Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/DESCRIPTION	(revision 2476)
@@ -0,0 +1,45 @@
+Package: quantreg
+Title: Quantile Regression
+Description: Estimation and inference methods for models of conditional quantiles: 
+  Linear and nonlinear parametric and non-parametric (total variation penalized) models 
+  for conditional quantiles of a univariate response and several methods for handling
+  censored survival data.  Portfolio selection methods based on expected shortfall
+  risk are also included.
+Version: 5.29
+Authors@R: c(
+    person("Roger", "Koenker",  role = c("cre","aut"), email =  "rkoenker@illinois.edu"),
+    person("Stephen", "Portnoy",  role = c("ctb"), 
+	comment = "Contributions to Censored QR code", email =  "sportnoy@illinois.edu"),
+    person(c("Pin", "Tian"), "Ng",  role = c("ctb"), 
+	comment = "Contributions to Sparse QR code", email =  "pin.ng@nau.edu"),
+    person("Achim", "Zeileis",  role = c("ctb"), 
+	comment = "Contributions to dynrq code essentially identical to his dynlm code", 
+	email =  "Achim.Zeileis@uibk.ac.at"),
+    person("Philip", "Grosjean",  role = c("ctb"), 
+	comment = "Contributions to nlrq code", email =  "phgrosjean@sciviews.org"),
+    person(c("Brian", "D"), "Ripley",  role = c("trl","ctb"), 
+	comment = "Initial (2001) R port from S (to my everlasting shame -- 
+	how could I have been so slow to adopt R!) and for numerous other 
+	suggestions and useful advice", email =  "ripley@stats.ox.ac.uk"))
+Maintainer: Roger Koenker <rkoenker@illinois.edu>
+Repository: CRAN
+Depends: R (>= 2.6), stats, SparseM
+Imports: methods, graphics, Matrix, MatrixModels
+Suggests: tripack, akima, MASS, survival, rgl, logspline, nor1mix,
+        Formula, zoo
+License: GPL (>= 2)
+URL: http://www.r-project.org
+NeedsCompilation: yes
+Packaged: 2016-09-03 19:53:41 UTC; roger
+Author: Roger Koenker [cre, aut],
+  Stephen Portnoy [ctb] (Contributions to Censored QR code),
+  Pin Tian Ng [ctb] (Contributions to Sparse QR code),
+  Achim Zeileis [ctb] (Contributions to dynrq code essentially identical
+    to his dynlm code),
+  Philip Grosjean [ctb] (Contributions to nlrq code),
+  Brian D Ripley [trl, ctb] (Initial (2001) R port from S (to my
+    everlasting shame -- how could I have been so slow to adopt R!) and
+    for numerous other suggestions and useful advice)
+Date/Publication: 2016-09-04 13:02:15
+Built: R 3.3.0; x86_64-apple-darwin13.4.0; 2016-09-05 09:53:13 UTC; unix
+Archs: quantreg.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/predemo.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/predemo.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/predemo.R	(revision 2476)
@@ -0,0 +1,70 @@
+# Demo for prediction and confidence intervals 
+
+par(ask = TRUE)
+# Classical Gaussian Version
+sub <- "Classical Gaussian Version"
+plot(cars$speed,cars$dist,xlim=c(0,27),ylim=c(-10,130), main = "Ezekiel Data",
+	sub = sub, xlab = "speed (mph)",ylab = "stopping distance (ft)")
+ss = seq(0,27,len=100)
+flm <- lm(dist ~ speed + I(speed^2),data = cars)
+cflm <- predict(flm,list(speed=ss), data = cars, interval = "confidence")
+pflm <- predict(flm,list(speed=ss), data = cars, interval = "prediction")
+matlines(ss, pflm,lty = c(1,2,2),col=c("black","red","red"))
+matlines(ss, cflm,lty = c(1,2,2),col=c("black","blue","blue"))
+
+# Now try several different ways to compute alternative bands based on QR
+fl=rq(dist~speed+I(speed^2),data=cars,tau= 0.25)
+fu=rq(dist~speed+I(speed^2),data=cars,tau= 0.75)
+
+# 1.  Covariance matrix estimation using "nid"
+sub <- "Covariance matrix estimation using nid"
+plot(cars$speed,cars$dist,xlim=c(0,27),ylim=c(-10,130), main = "Ezekiel Data",
+	sub = sub, xlab = "speed (mph)",ylab = "stopping distance (ft)")
+pl <- predict(fl,list(speed=ss),interval = "confidence",  se = "nid")
+pu <- predict(fu,list(speed=ss),interval = "confidence",  se = "nid")
+matlines(ss,pl,lty = c(1,2,0),  col=c("black","red","red"))
+matlines(ss,pu,lty = c(1,0,2),  col=c("black","red","red"))
+# 2.  Covariance matrix estimation using xy-bootstrap
+sub <- "Covariance matrix estimation using xy-bootstrap"
+plot(cars$speed,cars$dist,xlim=c(0,27),ylim=c(-10,130), main = "Ezekiel Data",
+	sub = sub, xlab = "speed (mph)",ylab = "stopping distance (ft)")
+pl <- predict(fl,list(speed=ss),interval = "confidence",  se = "boot",bsmethod = "xy")
+pu <- predict(fu,list(speed=ss),interval = "confidence",  se = "boot",bsmethod = "xy")
+matlines(ss,pl,lty = c(1,2,0),  col=c("black","red","red"))
+matlines(ss,pu,lty = c(1,0,2),  col=c("black","red","red"))
+# 3.  Covariance matrix estimation using weighted xy-bootstrap
+sub <- "Covariance matrix estimation using weighted xy-bootstrap"
+plot(cars$speed,cars$dist,xlim=c(0,27),ylim=c(-10,130), main = "Ezekiel Data",
+	sub = sub, xlab = "speed (mph)",ylab = "stopping distance (ft)")
+pl <- predict(fl,list(speed=ss),interval = "confidence",  se = "boot",bsmethod = "wxy")
+pu <- predict(fu,list(speed=ss),interval = "confidence",  se = "boot",bsmethod = "wxy")
+matlines(ss,pl,lty = c(1,2,0),  col=c("black","red","red"))
+matlines(ss,pu,lty = c(1,0,2),  col=c("black","red","red"))
+# 4.  Percentile method using xy-bootstrap
+sub <- "Percentile method using xy-bootstrap"
+plot(cars$speed,cars$dist,xlim=c(0,27),ylim=c(-10,130), main = "Ezekiel Data",
+	sub = sub, xlab = "speed (mph)",ylab = "stopping distance (ft)")
+pl <- predict(fl,list(speed=ss),interval = "confidence",
+       type="percentile", se = "boot", bsmethod = "xy")
+pu <- predict(fu,list(speed=ss),interval = "confidence",
+       type="percentile", se = "boot", bsmethod = "xy")
+matlines(ss,pl,lty = c(1,2,0),  col=c("black","red","red"))
+matlines(ss,pu,lty = c(1,0,2),  col=c("black","red","red"))
+# 5.  Direct method using "iid" covariance matrix
+sub <- "Direct method using iid covariance matrix"
+plot(cars$speed,cars$dist,xlim=c(0,27),ylim=c(-10,130), main = "Ezekiel Data",
+	sub = sub, xlab = "speed (mph)",ylab = "stopping distance (ft)")
+pl <- predict(fl,list(speed=ss),interval = "confidence", type="direct", se = "iid")
+pu <- predict(fu,list(speed=ss),interval = "confidence", type="direct", se = "iid")
+matlines(ss,pl,lty = c(1,2,0),  col=c("black","red","red"))
+matlines(ss,pu,lty = c(1,0,2),  col=c("black","red","red"))
+# 6.  Direct method using "nid" covariance matrix
+sub <- "Direct method using nid covariance matrix"
+plot(cars$speed,cars$dist,xlim=c(0,27),ylim=c(-10,130), main = "Ezekiel Data",
+	sub = sub, xlab = "speed (mph)",ylab = "stopping distance (ft)")
+pl <- predict(fl,list(speed=ss),interval = "confidence", type="direct", se = "nid")
+pu <- predict(fu,list(speed=ss),interval = "confidence", type="direct", se = "nid")
+matlines(ss,pl,lty = c(1,2,0),  col=c("black","red","red"))
+matlines(ss,pu,lty = c(1,0,2),  col=c("black","red","red"))
+
+par(ask = FALSE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/cpoint.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/cpoint.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/cpoint.R	(revision 2476)
@@ -0,0 +1,25 @@
+## Demo for a simple change point (broken-stick) problem
+
+x <- runif(200,0,10)
+u <- rnorm(200)/5
+y <- 1 + x - .5 * (x-3) * (x > 3) + u
+plot(y ~ x, cex= .5, col = "grey")
+
+
+z <- rqss(y ~ qss(x,lambda = 10), tau= .50)
+plot(z, col = "dark blue")
+
+#Now plot the fitted points and jump points in derivative
+
+eps <- 0.00001 # Zero Tolerance
+Nz <- abs(z$resid[1:200]) < eps
+Nj <- abs(z$resid[201:398]) > eps
+xx <- z$qss[[1]]$xyz[,1]
+yy <- z$coef[1] + z$qss[[1]]$xyz[,2]
+xj <- xx[3:200]
+yj <- yy[3:200]
+points(xx[Nz],yy[Nz],col="green")
+points(xj[Nj],yj[Nj],col="red")
+print(paste("Number of zero residuals:  ",sum(Nz)))
+print(paste("Number of jumps in slope:  ",sum(Nj)))
+legend(6,3,c("Derivative Jumps", "Zero residuals"),pch = "o", col=c("red","green"))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/hinged.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/hinged.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/hinged.R	(revision 2476)
@@ -0,0 +1,44 @@
+# A Demo of simple bivariate rqss fitting of a hinge function
+
+require(quantreg)
+
+## Make sure the demo does not ``die'' when rgl is not available:
+do.rgl <- interactive() && require(rgl)
+
+#generate the data
+
+n <- 1000
+x <- runif(n)
+y <- runif(n)
+z <- -abs(x-y)
+
+### Make an initial quite rough fit of the data
+fit <- rqss(z ~ qss(cbind(x,y),lambda = .005))
+print(summary(fit)$penalty)
+
+if(do.rgl) {
+    plot(fit, render = "rgl")
+    cat("Now orient the plot as desired:",
+	"Resize window,",
+	"mouse button 1 to change viewpoint,",
+	"mouse button 2 to zoom,",
+	"and hit return when ready",sep="\n")
+    scan()
+    rgl.bg(color="8")
+    cat("To try another value of lambda:",
+	"Type a positive number",
+	"To quit hit return", sep="\n")
+    repeat{
+	cat("lambda:  ")
+	lam <- scan(what = double(1))
+	if(length(lam)>0){
+		fit <- rqss(z ~ qss(cbind(x,y),lambda = lam))
+		rgl.clear()
+		plot(fit, render = "rgl")
+	} else 
+		break
+	}
+} else {
+    if(!interactive()) pdf(file = "hinge-demo.pdf")
+    plot(fit)
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/Frank.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/Frank.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/Frank.R	(revision 2476)
@@ -0,0 +1,46 @@
+## Demo of nonlinear quantile regression model based on Frank copula
+
+
+vFrank <- function(x, df, delta, u)
+    -log(1-(1-exp(-delta))/(1+exp(-delta*pt(x,df))*((1/u)-1)))/delta
+
+FrankModel <- function(x, delta, mu,sigma, df, tau) {
+    z <- qt(vFrank(x, df, delta, u = tau), df)
+    mu + sigma*z
+}
+
+n <- 200
+df <- 8
+delta <- 8
+
+set.seed(1989)
+
+x <- sort(rt(n,df))
+v <- vFrank(x, df, delta, u = runif(n))
+y <- qt(v, df)
+plot(x, y, pch="o", col="blue", cex = .25)
+Dat <- data.frame(x = x, y = y)
+
+us <- c(.25,.5,.75)
+for(i in 1:length(us)){
+    v <- vFrank(x, df, delta, u = us[i])
+    lines(x, qt(v,df))
+}
+
+cfMat <- matrix(0, 3, length(us))
+
+trace <- TRUE # a bit noisy ...
+trace <- FALSE
+for(i in 1:length(us)) {
+    tau <- us[i]
+    cat("tau = ", format(tau), ".. ")
+    fit <- nlrq(y ~ FrankModel(x, delta,mu,sigma, df = 8, tau = tau),
+                data = Dat, tau = tau,
+                start= list(delta=5, mu = 0, sigma = 1),
+                trace = trace)
+    lines(x, predict(fit, newdata=x), lty=2, col="red")
+    cfMat[i,] <- coef(fit)
+    cat("\n")
+}
+colnames(cfMat) <- names(coef(fit))
+cfMat
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/RB-r.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/RB-r.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/RB-r.R	(revision 2476)
@@ -0,0 +1,18 @@
+# Convert H_0:  R beta = r  to an exclusion restriction a la Section 3.7.3 of QR book
+# Note the typo in the definition of yt in that source!
+
+require(MASS) # For Null
+require(quantreg) # For Null
+X <- cbind(1, matrix(rnorm(500),100,5))
+y <- rnorm(100)
+R <- matrix(rnorm(18),3,6)
+r <- rep(1,3)
+R <- t(R)
+P <- Null(R)
+Xt <- t(lsfit(P,t(X),intercept = FALSE)$coef)
+Zt <- t(lsfit(R,t(X),intercept = FALSE)$coef)
+yt <- y - Zt %*% r
+f0 <- rq(yt ~ Xt - 1)
+f1 <- rq(yt ~ Xt + Zt - 1)
+T <- anova(f0,f1)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/KMvCRQ.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/KMvCRQ.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/KMvCRQ.R	(revision 2476)
@@ -0,0 +1,18 @@
+
+# Example Comparison of Kaplan-Meier vs crq fitting
+# The red crq estimate should overplot the black KM Survival Curve.
+require(quantreg)
+require(survival)
+n <- 100
+y <- rchisq(n,3)
+c <- rchisq(n,5)
+Y <- pmin(y,c)
+d <- (y < c)
+plot(survfit(Surv(Y,d)~1))
+f <- crq(Surv(Y,d)~1, method = "Portnoy", grid = "pivot")
+x <- f$sol[2,]
+p <- 1-f$sol[1,]
+p <- c(p,p[length(p)])
+par(col = "red")
+fs <- plot(stepfun(x, p),do.points = FALSE, add = TRUE)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/crquis.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/crquis.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/crquis.R	(revision 2476)
@@ -0,0 +1,18 @@
+# UIS example for the crq Peng-Hwang  method.
+
+data(uis)
+#estimate the Peng and Huang model using log(TIME) AFT specification
+fit <- crq(Surv(log(TIME), CENSOR) ~  ND1 + ND2 + IV3 +
+               TREAT + FRAC + RACE + AGE * SITE, method = "Portnoy", data = uis)
+Sfit <- summary(fit,1:19/20)
+PHit <- coxph(Surv(TIME, CENSOR) ~  ND1 + ND2 + IV3 +
+               TREAT + FRAC + RACE + AGE * SITE, data = uis)
+plot(Sfit, CoxPHit = PHit)
+formula <-  ~  ND1 + ND2 + IV3 + TREAT + FRAC + RACE + AGE * SITE -1
+X <- data.frame(model.matrix(formula,data=uis))
+newd <- as.list(apply(X,2,median))
+pred <- predict(fit, newdata=newd, stepfun = TRUE)
+plot(pred,do.points=FALSE,xlab = expression(tau), ylab = expression(Q(tau)),
+        lwd = 1.5, main= "Quantiles at Median Covariate Values")
+plot(rearrange(pred),add=TRUE,do.points=FALSE,col.vert ="red", col.hor="red")
+legend(.10,10,c("Raw","Rearranged"),lty = rep(1,2),col=c("black","red"))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/Polson.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/Polson.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/Polson.R	(revision 2476)
@@ -0,0 +1,15 @@
+# Toy rqss example based on Figure 2 of Polson and Scott (2016, JRSSB)
+# NB:  Solutions are piecewise linear, unlike those of Polson and Scott
+# whose ADMM procedure does only 30 iterations.
+dgp <- function(n) {
+    x <- 0:n/n
+    y <- rnorm(n+1, 5 * sin(2 * pi * x), 0.5 + exp(1.5 * sin(4 * pi * x))) 
+    data.frame(x = x, y = y)
+}
+D <- dgp(1000)
+plot(D$x, D$y, cex = .5)
+taus <- 1:9/10
+for(i in 1:length(taus))
+    plot(rqss(y ~ qss(x, lambda = 1/10), tau = taus[i], data = D), 
+	 rug = FALSE, add = TRUE)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/engel1.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/engel1.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/engel1.R	(revision 2476)
@@ -0,0 +1,23 @@
+## Demo for a Plot of Engel curve in sample space
+
+data(engel)
+
+plot(foodexp ~ income, data = engel, cex= .5, col = "blue",
+     xlab = "Household Income", ylab = "Food Expenditure")
+
+z <- rq(foodexp ~ income, tau= .50, data = engel)# "median line": L1 - regression
+abline(z, col = "dark blue")
+abline(lm(foodexp ~ income, data = engel), lty=2, col="red") #the dreaded ols line
+
+taus <- c(.05,.1,.25,.75,.90,.95)
+nt <- length(taus)
+
+for( i in 1:length(taus)) {
+    abline(rq(foodexp~income, tau=taus[i], data = engel), col="gray")
+}
+
+legend("bottomright",
+       c("L1 (tau = .50)", "OLS", paste("tau= ", formatC(rev(taus)))),
+       col = c("dark blue", "red", rep("gray", nt)),
+       lty = c(1,2, rep(1, nt)),
+       inset = 0.03)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/engel2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/engel2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/engel2.R	(revision 2476)
@@ -0,0 +1,37 @@
+
+#### Demo for a plot of two quantile functions of food expenditure
+
+###-- short version of the rq *VIGNETTE* --- use that!
+
+data(engel)
+## do *NOT* attach()
+
+## Poor is defined as at the .1 quantile of the sample distn
+## Rich is defined as at the .9 quantile of the sample distn
+x.poor <- quantile(engel[,"income"], .10)
+x.rich <- quantile(engel[,"foodexp"], .90)
+
+z <- rq(foodexp ~ income, tau= -1, data = engel)
+
+ps <- z$sol["tau",]
+coefs <- z$sol[4:5,]
+qs.poor <- c(c(1,x.poor) %*% coefs)
+qs.rich <- c(c(1,x.rich) %*% coefs)
+## now plot the two quantile functions to compare
+par(mfrow = c(1,2))
+plot(c(ps,ps),c(qs.poor,qs.rich),type="n",xlab=expression(tau),ylab="quantile")
+plot(stepfun(ps,c(qs.poor[1],qs.poor)),do.points=FALSE,add=TRUE)
+plot(stepfun(ps,c(qs.poor[1],qs.rich)),do.points=FALSE,add=TRUE,
+        col.hor = "gray", col.vert = "gray")
+## now plot associated conditional density estimates
+## weights from ps (process)
+ps.wts <- (c(0,diff(ps)) + c(diff(ps),0)) / 2
+ap <- akj(qs.poor, z=qs.poor, p = ps.wts)
+ar <- akj(qs.rich, z=qs.rich, p = ps.wts)
+plot(c(qs.poor,qs.rich), c(ap$dens,ar$dens), type="n",
+     xlab= "Food Expenditure", ylab= "Density")
+lines(qs.rich, ar$dens, col="gray")
+lines(qs.poor, ap$dens, col="black")
+legend("topright", c("poor","rich"), lty = c(1,1), col=c("black","gray"))
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/Mel.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/Mel.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/Mel.R	(revision 2476)
@@ -0,0 +1,39 @@
+#Analysis of the QAR(1) Melbourne Temperature Example
+require(splines)
+if(require(hdrcde)){
+  if(interactive()){ 
+    oldpar <- par(ask = TRUE)
+    x <- maxtemp[-3650]
+    y <- maxtemp[-1]
+    s <- (x<40)  #Delete a few (influential, ridiculously hot) days
+    x <- x[s]
+    y <- y[s]
+    z <- seq(10,36,length=100)
+
+	fit <- rq(y~ bs(x,knots=quantile(x,c(.05,.25,.5,.75,.95))), tau =  1:19/20)
+	par(cex=1,pty="s")
+	xlab <- "yesterday's max temperature"
+	ylab <- "today's max temperature"
+	plot(x,y,pch=".",xlab=xlab,ylab=ylab)
+	matlines(z,predict(fit, newdata = data.frame(x = z)), lty = 1)
+	abline(c(0,1),lty=3)
+	title("Melbourne QAR Model")
+
+	taus <- 1:199/200
+	xs <- c(11,16,21,25,30,35)
+	fit <- rq(y~ bs(x,knots=quantile(x,c(.05,.25,.5,.75,.95))), tau = taus)
+	Qy <- predict(fit,newdata = data.frame(x = xs))
+	par(mfrow = c(2,3))
+	for(i in 1:length(xs)){
+		Qyi <- Qy[i,-1]
+		fhat <- akj(Qyi,Qyi,diff(taus), h = 1)$dens
+		xlab <- "today's max temperature"
+		plot(Qyi,fhat,type="l",xlab=xlab,ylab="density")
+		abline(v=xs[i], col="red")
+		title(paste("Yesterday's Temp", format(round(xs[i]))))
+		}
+	par(oldpar)
+    }
+  else warning("Need hdrcde package to get data for this demo")
+  }
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/combos.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/combos.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/combos.R	(revision 2476)
@@ -0,0 +1,10 @@
+# Demo of combos functions
+H <- combos(20,3)
+if(!require("rgl",quietly=TRUE)){
+      warning("The package rgl is needed for plotting")
+     } else{
+      if(interactive()){
+         plot3d(t(H))
+         lines3d(t(H),col=rep(topo.colors(57),20))
+         }
+     }
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/cobar.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/cobar.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/cobar.R	(revision 2476)
@@ -0,0 +1,42 @@
+#### Demo for an rgl Animation of Cobar Ore fitting
+
+require(quantreg)
+
+## Make sure the demo does not ``die'' when rgl is not available:
+do.rgl <- interactive() && require(rgl)
+
+data(CobarOre)
+
+### Make an initial quite rough fit of the data
+fit <- rqss(z ~ qss(cbind(x,y), lambda = .01, ndum = 100),
+            data = CobarOre)
+dummies <- fit$qss[[1]]$dummies
+zcol <- CobarOre$z
+
+if(do.rgl) {
+    plot(fit, render = "rgl")
+    cat("Now orient the plot as needed:",
+	"Resize window,",
+	"mouse button 1 to change viewpoint,",
+	"mouse button 2 to zoom,",
+	"and hit return when ready",sep="\n")
+    scan()
+    rgl.bg(color="8")
+} else {
+    if(!interactive()) pdf(file = "cobar-demo.pdf")
+    plot(fit)
+}
+
+for(i in 1:20) {
+    fname <- paste("cobar",i,".png",sep="")
+    lam <- 2*i/100
+    fit <- rqss(z ~ qss(cbind(x,y), lambda = lam, dummies = dummies),
+                data = CobarOre)
+    if(do.rgl) {
+        rgl.clear()
+        plot(fit, render = "rgl", zcol = zcol)
+        rgl.snapshot(fname)
+    } else {
+        plot(fit, zcol = zcol)
+    }
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/Mammals.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/Mammals.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/Mammals.R	(revision 2476)
@@ -0,0 +1,26 @@
+require(quantreg)
+data(Mammals)
+     attach(Mammals)
+     x <- log(weight)
+     xx <- unique(x[order(x)])
+     y <- log(speed)
+     plot(x,y, xlab="Weight in log(Kg)", ylab="Speed in log(Km/hour)",type="n")
+     points(x[hoppers],y[hoppers],pch = "h", col="red")
+     points(x[specials],y[specials],pch = "s", col="blue")
+     others <- (!hoppers & !specials)
+     points(x[others],y[others], col="black",cex = .75)
+     taus <- c(.5, .9)
+     for(i in 1:length(taus)){
+        fit <- rqss(y ~ qss(x, lambda = 1, constraint = "C"),tau = taus[i])
+        plot(fit,title = "Running Speed of Mammals", add = TRUE, col = i, lwd = 1.5)
+        }
+     legend(4,2,c("Median", "0.9 Quantile"), lty = 1, col = 1:2, lwd = 1.5)
+     #Now plot confidence bands for the tau = .9 fit
+     plot(fit,title = "Running Speed of Mammals", band = "both", col = i, lwd = 1.5)
+     #Now plot slope of the tau = .9 line
+     xy <- fit$qss[[1]]$xyz
+     xx <- xy[,1]
+     yhat <- fit$coef[1] + xy[,2]
+     g <- diff(yhat)/diff(xx)
+     plot(xx[-1], g, main = "Fitted Slopes of Running Speed",
+          xlab="Weight in log(Kg)", ylab="dlog(Speed) /dlog(Weight)")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/arqss.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/arqss.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/arqss.R	(revision 2476)
@@ -0,0 +1,16 @@
+# A toy example to illustrate univariate smoothing with automatic lambda selection
+n <- 2000
+x <- 1:n/n
+noise <- rgamma(n,3,1)
+g0 <- function(x) sin(10*x)
+y <- g0(x)+noise
+arqss <- function(x,y,tau,g0 = NULL){
+    g <- function(lam,y,x,tau) AIC(rqss(y ~ qss(x, lambda = lam),tau = tau),k = -1)
+    lamstar <- optimize(g, interval = c(0.01, .5), x = x, y = y, tau = tau)
+    f <- rqss(y ~ qss(x, lambda = lamstar$min))
+    plot(f)
+    lines(x,g0(x)+qgamma(tau,3,1),col = "red")
+    text(.7,2,paste("lambda = ", round(lamstar$min,3)))
+}
+arqss(x,y,.5,g0)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/rqsslasso.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/rqsslasso.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/demo/rqsslasso.R	(revision 2476)
@@ -0,0 +1,14 @@
+#Toy rqss example with lasso shrinkage of linear covariate effects
+
+n <- 100
+p <- 9
+q <- 3
+beta <- c( rep(1,q), rep(0,p-q))
+w <- matrix(rnorm(n*p),n,p)
+x <- runif(n,0,10)
+z <- runif(n,0,10)
+y <- w %*% beta + sin(x) + (z^2)/50 + rnorm(n)/5
+d <- data.frame(w,x,y,z) 
+f <- rqss(y ~ w + qss(x,lambda = 3) + qss(z,lambda = 2),
+                method = "lasso", lambda = 3, data = d)
+plot(f, bands = "both", bandcol = c("lightsteelblue", "lightsteelblue4"))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/html/00Index.html	(revision 2476)
@@ -0,0 +1,441 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Quantile Regression</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Quantile Regression
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;quantreg&rsquo; version 5.29</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+<li><a href="../demo">Code demos</a>.  Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#G">G</a>
+<a href="#I">I</a>
+<a href="#K">K</a>
+<a href="#L">L</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#P">P</a>
+<a href="#Q">Q</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#U">U</a>
+<a href="#misc">misc</a>
+</p>
+
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="nlrq.html">AIC.nlrq</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+<tr><td style="width: 25%;"><a href="rq.object.html">AIC.rq</a></td>
+<td>Linear Quantile Regression Object</td></tr>
+<tr><td style="width: 25%;"><a href="rq.object.html">AIC.rqs</a></td>
+<td>Linear Quantile Regression Object</td></tr>
+<tr><td style="width: 25%;"><a href="rqss.object.html">AIC.rqss</a></td>
+<td>RQSS Objects and Summarization Thereof</td></tr>
+<tr><td style="width: 25%;"><a href="akj.html">akj</a></td>
+<td>Density Estimation using Adaptive Kernel method</td></tr>
+<tr><td style="width: 25%;"><a href="anova.rq.html">anova.rq</a></td>
+<td>Anova function for quantile regression fits</td></tr>
+<tr><td style="width: 25%;"><a href="anova.rq.html">anova.rqlist</a></td>
+<td>Anova function for quantile regression fits</td></tr>
+<tr><td style="width: 25%;"><a href="anova.rq.html">anova.rqs</a></td>
+<td>Anova function for quantile regression fits</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="bandwidth.rq.html">bandwidth.rq</a></td>
+<td>bandwidth selection for rq functions</td></tr>
+<tr><td style="width: 25%;"><a href="barro.html">barro</a></td>
+<td>Barro Data</td></tr>
+<tr><td style="width: 25%;"><a href="boot.crq.html">boot.crq</a></td>
+<td>Bootstrapping Censored Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="boot.rq.html">boot.rq</a></td>
+<td>Bootstrapping Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="boot.rq.html">boot.rq.mcmb</a></td>
+<td>Bootstrapping Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="boot.rq.html">boot.rq.pwy</a></td>
+<td>Bootstrapping Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="boot.rq.html">boot.rq.spwy</a></td>
+<td>Bootstrapping Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="boot.rq.html">boot.rq.wxy</a></td>
+<td>Bootstrapping Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="boot.rq.html">boot.rq.xy</a></td>
+<td>Bootstrapping Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="Bosco.html">Bosco</a></td>
+<td>Boscovich Data</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="FAQ.html">ChangeLog</a></td>
+<td>FAQ and ChangeLog of a package</td></tr>
+<tr><td style="width: 25%;"><a href="CobarOre.html">CobarOre</a></td>
+<td>Cobar Ore data</td></tr>
+<tr><td style="width: 25%;"><a href="crq.html">coef.crq</a></td>
+<td>Functions to fit censored quantile regression models</td></tr>
+<tr><td style="width: 25%;"><a href="nlrq.html">coef.nlrq</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+<tr><td style="width: 25%;"><a href="combos.html">combos</a></td>
+<td>Ordered Combinations</td></tr>
+<tr><td style="width: 25%;"><a href="critval.html">critval</a></td>
+<td>Hotelling Critical Values</td></tr>
+<tr><td style="width: 25%;"><a href="crq.html">crq</a></td>
+<td>Functions to fit censored quantile regression models</td></tr>
+<tr><td style="width: 25%;"><a href="crq.html">crq.fit.pen</a></td>
+<td>Functions to fit censored quantile regression models</td></tr>
+<tr><td style="width: 25%;"><a href="crq.html">crq.fit.por</a></td>
+<td>Functions to fit censored quantile regression models</td></tr>
+<tr><td style="width: 25%;"><a href="crq.html">crq.fit.por2</a></td>
+<td>Functions to fit censored quantile regression models</td></tr>
+<tr><td style="width: 25%;"><a href="crq.html">crq.fit.pow</a></td>
+<td>Functions to fit censored quantile regression models</td></tr>
+<tr><td style="width: 25%;"><a href="crq.html">Curv</a></td>
+<td>Functions to fit censored quantile regression models</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="nlrq.html">deviance.nlrq</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+<tr><td style="width: 25%;"><a href="dither.html">dither</a></td>
+<td>Function to randomly perturb a vector</td></tr>
+<tr><td style="width: 25%;"><a href="dynrq.html">dynrq</a></td>
+<td>Dynamic Linear Quantile Regression</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="dynrq.html">end.dynrq</a></td>
+<td>Dynamic Linear Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="engel.html">engel</a></td>
+<td>Engel Data</td></tr>
+<tr><td style="width: 25%;"><a href="nlrq.html">extractAIC.nlrq</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+<tr><td style="width: 25%;"><a href="rq.object.html">extractAIC.rq</a></td>
+<td>Linear Quantile Regression Object</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="FAQ.html">FAQ</a></td>
+<td>FAQ and ChangeLog of a package</td></tr>
+<tr><td style="width: 25%;"><a href="nlrq.html">fitted.nlrq</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+<tr><td style="width: 25%;"><a href="rqss.object.html">fitted.rqss</a></td>
+<td>RQSS Objects and Summarization Thereof</td></tr>
+<tr><td style="width: 25%;"><a href="nlrq.html">formula.nlrq</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+<tr><td style="width: 25%;"><a href="rq.object.html">formula.rq</a></td>
+<td>Linear Quantile Regression Object</td></tr>
+</table>
+
+<h2><a name="G">-- G --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="gasprice.html">gasprice</a></td>
+<td>Time Series of US Gasoline Prices</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="dynrq.html">index.dynrq</a></td>
+<td>Dynamic Linear Quantile Regression</td></tr>
+</table>
+
+<h2><a name="K">-- K --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="khmaladzeTest.html">KhmaladzeTest</a></td>
+<td>Tests of Location and Location Scale Shift Hypotheses for Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="khmaladzeTest.html">khmaladzize</a></td>
+<td>Tests of Location and Location Scale Shift Hypotheses for Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="kuantile.html">kselect</a></td>
+<td>Quicker Sample Quantiles</td></tr>
+<tr><td style="width: 25%;"><a href="kuantile.html">kuantile</a></td>
+<td>Quicker Sample Quantiles</td></tr>
+<tr><td style="width: 25%;"><a href="kuantile.html">kunique</a></td>
+<td>Quicker Sample Quantiles</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="latex.html">latex</a></td>
+<td>Make a latex version of an R object</td></tr>
+<tr><td style="width: 25%;"><a href="latex.summary.rqs.html">latex.summary.rqs</a></td>
+<td>Make a latex table from a table of rq results</td></tr>
+<tr><td style="width: 25%;"><a href="latex.table.html">latex.table</a></td>
+<td>Writes a latex formatted table to a file</td></tr>
+<tr><td style="width: 25%;"><a href="table.rq.html">latex.table.rq</a></td>
+<td>Table of Quantile Regression Results</td></tr>
+<tr><td style="width: 25%;"><a href="lm.fit.recursive.html">lm.fit.recursive</a></td>
+<td>Recursive Least Squares</td></tr>
+<tr><td style="width: 25%;"><a href="nlrq.html">logLik.nlrq</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+<tr><td style="width: 25%;"><a href="rq.object.html">logLik.rq</a></td>
+<td>Linear Quantile Regression Object</td></tr>
+<tr><td style="width: 25%;"><a href="rq.object.html">logLik.rqs</a></td>
+<td>Linear Quantile Regression Object</td></tr>
+<tr><td style="width: 25%;"><a href="rqss.object.html">logLik.rqss</a></td>
+<td>RQSS Objects and Summarization Thereof</td></tr>
+<tr><td style="width: 25%;"><a href="lprq.html">lprq</a></td>
+<td>locally polynomial quantile regression</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Mammals.html">Mammals</a></td>
+<td>Garland(1983) Data on Running Speed of Mammals</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="nlrq.html">nlrq</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+<tr><td style="width: 25%;"><a href="nlrq.control.html">nlrq.control</a></td>
+<td>Set control parameters for nlrq</td></tr>
+<tr><td style="width: 25%;"><a href="nlrq.html">nlrqModel</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Peirce.html">Peirce</a></td>
+<td>C.S. Peirce's Auditory Response Data</td></tr>
+<tr><td style="width: 25%;"><a href="plot.rqss.html">plot.qss1</a></td>
+<td>Plot Method for rqss Objects</td></tr>
+<tr><td style="width: 25%;"><a href="plot.rqss.html">plot.qss2</a></td>
+<td>Plot Method for rqss Objects</td></tr>
+<tr><td style="width: 25%;"><a href="plot.rq.process.html">plot.rq.process</a></td>
+<td>plot the coordinates of the quantile regression process</td></tr>
+<tr><td style="width: 25%;"><a href="plot.rqs.html">plot.rqs</a></td>
+<td>Visualizing sequences of quantile regressions</td></tr>
+<tr><td style="width: 25%;"><a href="plot.rqss.html">plot.rqss</a></td>
+<td>Plot Method for rqss Objects</td></tr>
+<tr><td style="width: 25%;"><a href="summary.crq.html">plot.summary.crqs</a></td>
+<td>Summary methods for Censored Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="plot.summary.rqs.html">plot.summary.rqs</a></td>
+<td>Visualizing sequences of quantile regression summaries</td></tr>
+<tr><td style="width: 25%;"><a href="plot.rqss.html">plot.summary.rqss</a></td>
+<td>Plot Method for rqss Objects</td></tr>
+<tr><td style="width: 25%;"><a href="table.rq.html">plot.table.rq</a></td>
+<td>Table of Quantile Regression Results</td></tr>
+<tr><td style="width: 25%;"><a href="crq.html">predict.crq</a></td>
+<td>Functions to fit censored quantile regression models</td></tr>
+<tr><td style="width: 25%;"><a href="crq.html">predict.crqs</a></td>
+<td>Functions to fit censored quantile regression models</td></tr>
+<tr><td style="width: 25%;"><a href="nlrq.html">predict.nlrq</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+<tr><td style="width: 25%;"><a href="predict.rqss.html">predict.qss1</a></td>
+<td>Predict from fitted nonparametric quantile regression smoothing spline models</td></tr>
+<tr><td style="width: 25%;"><a href="predict.rqss.html">predict.qss2</a></td>
+<td>Predict from fitted nonparametric quantile regression smoothing spline models</td></tr>
+<tr><td style="width: 25%;"><a href="predict.rq.html">predict.rq</a></td>
+<td>Quantile Regression Prediction</td></tr>
+<tr><td style="width: 25%;"><a href="predict.rq.html">predict.rq.process</a></td>
+<td>Quantile Regression Prediction</td></tr>
+<tr><td style="width: 25%;"><a href="predict.rq.html">predict.rqs</a></td>
+<td>Quantile Regression Prediction</td></tr>
+<tr><td style="width: 25%;"><a href="predict.rqss.html">predict.rqss</a></td>
+<td>Predict from fitted nonparametric quantile regression smoothing spline models</td></tr>
+<tr><td style="width: 25%;"><a href="anova.rq.html">print.anova.rq</a></td>
+<td>Anova function for quantile regression fits</td></tr>
+<tr><td style="width: 25%;"><a href="crq.html">print.crq</a></td>
+<td>Functions to fit censored quantile regression models</td></tr>
+<tr><td style="width: 25%;"><a href="dynrq.html">print.dynrq</a></td>
+<td>Dynamic Linear Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="dynrq.html">print.dynrqs</a></td>
+<td>Dynamic Linear Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="nlrq.html">print.nlrq</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+<tr><td style="width: 25%;"><a href="print.rq.html">print.rq</a></td>
+<td>Print an rq object</td></tr>
+<tr><td style="width: 25%;"><a href="print.rq.html">print.rqs</a></td>
+<td>Print an rq object</td></tr>
+<tr><td style="width: 25%;"><a href="rqss.object.html">print.rqss</a></td>
+<td>RQSS Objects and Summarization Thereof</td></tr>
+<tr><td style="width: 25%;"><a href="summary.crq.html">print.summary.crq</a></td>
+<td>Summary methods for Censored Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="summary.crq.html">print.summary.crqs</a></td>
+<td>Summary methods for Censored Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="dynrq.html">print.summary.dynrq</a></td>
+<td>Dynamic Linear Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="dynrq.html">print.summary.dynrqs</a></td>
+<td>Dynamic Linear Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="nlrq.html">print.summary.nlrq</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+<tr><td style="width: 25%;"><a href="print.summary.rq.html">print.summary.rq</a></td>
+<td>Print Quantile Regression Summary Object</td></tr>
+<tr><td style="width: 25%;"><a href="print.summary.rq.html">print.summary.rqs</a></td>
+<td>Print Quantile Regression Summary Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.rqss.html">print.summary.rqss</a></td>
+<td>Summary of rqss fit</td></tr>
+</table>
+
+<h2><a name="Q">-- Q --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="khmaladzeTest.html">qdensity</a></td>
+<td>Tests of Location and Location Scale Shift Hypotheses for Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="qrisk.html">qrisk</a></td>
+<td>Function to compute Choquet portfolio weights</td></tr>
+<tr><td style="width: 25%;"><a href="qss.html">qss</a></td>
+<td>Additive Nonparametric Terms for rqss Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="qss.html">qss1</a></td>
+<td>Additive Nonparametric Terms for rqss Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="qss.html">qss2</a></td>
+<td>Additive Nonparametric Terms for rqss Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="QTECox.html">QTECox</a></td>
+<td>Function to obtain QTE from a Cox model</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="ranks.html">ranks</a></td>
+<td>Quantile Regression Ranks</td></tr>
+<tr><td style="width: 25%;"><a href="rearrange.html">rearrange</a></td>
+<td>Rearrangement</td></tr>
+<tr><td style="width: 25%;"><a href="rqss.object.html">resid.rqss</a></td>
+<td>RQSS Objects and Summarization Thereof</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.nlrq.html">residuals.nlrq</a></td>
+<td>Return residuals of an nlrq object</td></tr>
+<tr><td style="width: 25%;"><a href="rq.html">rq</a></td>
+<td>Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="rq.fit.html">rq.fit</a></td>
+<td>Function to choose method for Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="rq.fit.br.html">rq.fit.br</a></td>
+<td>Quantile Regression Fitting by Exterior Point Methods</td></tr>
+<tr><td style="width: 25%;"><a href="rq.fit.fnb.html">rq.fit.fnb</a></td>
+<td>Quantile Regression Fitting via Interior Point Methods</td></tr>
+<tr><td style="width: 25%;"><a href="rq.fit.fnc.html">rq.fit.fnc</a></td>
+<td>Quantile Regression Fitting via Interior Point Methods</td></tr>
+<tr><td style="width: 25%;"><a href="rq.fit.hogg.html">rq.fit.hogg</a></td>
+<td>weighted quantile regression fitting</td></tr>
+<tr><td style="width: 25%;"><a href="rq.fit.lasso.html">rq.fit.lasso</a></td>
+<td>Lasso Penalized Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="rq.fit.pfn.html">rq.fit.pfn</a></td>
+<td>Preprocessing Algorithm for Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="rq.fit.scad.html">rq.fit.scad</a></td>
+<td>SCADPenalized Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="rq.fit.sfn.html">rq.fit.sfn</a></td>
+<td>Sparse Regression Quantile Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="rq.fit.sfnc.html">rq.fit.sfnc</a></td>
+<td>Sparse Constrained Regression Quantile Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="rq.object.html">rq.object</a></td>
+<td>Linear Quantile Regression Object</td></tr>
+<tr><td style="width: 25%;"><a href="rq.process.object.html">rq.process.object</a></td>
+<td>Linear Quantile Regression Process Object</td></tr>
+<tr><td style="width: 25%;"><a href="anova.rq.html">rq.test.anowar</a></td>
+<td>Anova function for quantile regression fits</td></tr>
+<tr><td style="width: 25%;"><a href="anova.rq.html">rq.test.rank</a></td>
+<td>Anova function for quantile regression fits</td></tr>
+<tr><td style="width: 25%;"><a href="rq.wfit.html">rq.wfit</a></td>
+<td>Function to choose method for Weighted Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="rqProcess.html">rqProcess</a></td>
+<td>Compute Standardized Quantile Regression Process</td></tr>
+<tr><td style="width: 25%;"><a href="rqs.fit.html">rqs.fit</a></td>
+<td>Function to fit multiple response quantile regression models</td></tr>
+<tr><td style="width: 25%;"><a href="rqss.html">rqss</a></td>
+<td>Additive Quantile Regression Smoothing</td></tr>
+<tr><td style="width: 25%;"><a href="rqss.html">rqss.fit</a></td>
+<td>Additive Quantile Regression Smoothing</td></tr>
+<tr><td style="width: 25%;"><a href="rqss.object.html">rqss.object</a></td>
+<td>RQSS Objects and Summarization Thereof</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="sfn.control.html">sfn.control</a></td>
+<td>Set Control Parameters for Sparse Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="rq.fit.sfn.html">sfnMessage</a></td>
+<td>Sparse Regression Quantile Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="srisk.html">srisk</a></td>
+<td>Markowitz (Mean-Variance) Portfolio Optimization</td></tr>
+<tr><td style="width: 25%;"><a href="dynrq.html">start.dynrq</a></td>
+<td>Dynamic Linear Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="summary.crq.html">summary.crq</a></td>
+<td>Summary methods for Censored Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="summary.crq.html">summary.crqs</a></td>
+<td>Summary methods for Censored Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="dynrq.html">summary.dynrq</a></td>
+<td>Dynamic Linear Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="dynrq.html">summary.dynrqs</a></td>
+<td>Dynamic Linear Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="nlrq.html">summary.nlrq</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+<tr><td style="width: 25%;"><a href="summary.rq.html">summary.rcrqs</a></td>
+<td>Summary methods for Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="summary.rq.html">summary.rq</a></td>
+<td>Summary methods for Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="summary.rq.html">summary.rqs</a></td>
+<td>Summary methods for Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="summary.rqss.html">summary.rqss</a></td>
+<td>Summary of rqss fit</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="table.rq.html">table.rq</a></td>
+<td>Table of Quantile Regression Results</td></tr>
+<tr><td style="width: 25%;"><a href="nlrq.html">tau.nlrq</a></td>
+<td>Function to compute nonlinear quantile regression estimates</td></tr>
+<tr><td style="width: 25%;"><a href="dynrq.html">time.dynrq</a></td>
+<td>Dynamic Linear Quantile Regression</td></tr>
+<tr><td style="width: 25%;"><a href="qss.html">triogram.fidelity</a></td>
+<td>Additive Nonparametric Terms for rqss Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="qss.html">triogram.penalty</a></td>
+<td>Additive Nonparametric Terms for rqss Fitting</td></tr>
+</table>
+
+<h2><a name="U">-- U --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="uis.html">uis</a></td>
+<td>UIS Drug Treatment study data</td></tr>
+<tr><td style="width: 25%;"><a href="rqss.html">untangle.specials</a></td>
+<td>Additive Quantile Regression Smoothing</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="rqss.html">[.terms</a></td>
+<td>Additive Quantile Regression Smoothing</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/TODO
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/TODO	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/TODO	(revision 2476)
@@ -0,0 +1,11 @@
+# To Do List 
+
+1.  Return full covariance matrix for multiple quantile cases, and perhaps expand 
+anova.rq to do more general testing.  (Portnoy:  January, 2012)
+
+2.  Add option for mfrow and mfcol in plot.rqss (Ng:  January, 2012)  
+
+3.  Add error for models with lasso when there aren't coefs to penalize, see example in
+tests/tong/test2.R.
+
+4.  Allow predict.rqs to do confidence bands see tests/fischer/test.R  August 30 2016.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/index.html	(revision 2476)
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'quantreg'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/quantreg/doc/rq.pdf">quantreg::rq</a></td>
+<td></td><td valign="top">Quantile Regression</td>
+<td valign="top"><a href="../../../library/quantreg/doc/rq.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/quantreg/doc/rq.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/quantreg/doc/rq.R">R code</a></td></tr>
+</table>
+<h2>Other files in the <span class="samp">doc</span> directory</h2>
+<table width="100%">
+<col style="width: 24%;" />
+<col style="width: 50%;" />
+<col style="width: 24%;" />
+<tr><td></td><td><span class="samp"><a href="abbrev.bib">abbrev.bib</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="book.bib">book.bib</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="crq.pdf">crq.pdf</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="engelcoef.pdf">engelcoef.pdf</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="rq-Frankplot.pdf">rq-Frankplot.pdf</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="rq-cobar.pdf">rq-cobar.pdf</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="rq-engellogplot.pdf">rq-engellogplot.pdf</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="rq-engelplot.pdf">rq-engelplot.pdf</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="rq-eqfs.pdf">rq-eqfs.pdf</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="rq-mammals.pdf">rq-mammals.pdf</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="rq-mcycle1.pdf">rq-mcycle1.pdf</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="rq-regspline.pdf">rq-regspline.pdf</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="rqss.pdf">rqss.pdf</a></span></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-cobar.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-cobar.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-mammals.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-mammals.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-regspline.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-regspline.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-engelplot.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-engelplot.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq.R	(revision 2476)
@@ -0,0 +1,297 @@
+### R code from vignette source 'rq.Rnw'
+
+###################################################
+### code chunk number 1: R options
+###################################################
+options(width = 60)
+options(SweaveHooks = list(fig = function() par(mar=c(3,3,1,0.5),mgp = c(2,1,0))))
+
+
+###################################################
+### code chunk number 2: rq.Rnw:126-127
+###################################################
+library(quantreg)
+
+
+###################################################
+### code chunk number 3: rq.Rnw:137-139 (eval = FALSE)
+###################################################
+## help(package="quantreg")
+## help(rq)
+
+
+###################################################
+### code chunk number 4: rq.Rnw:183-185
+###################################################
+data(engel)
+fit1 <- rq(foodexp ~ income, tau = .5, data = engel)
+
+
+###################################################
+### code chunk number 5: rq.Rnw:197-198
+###################################################
+fit1
+
+
+###################################################
+### code chunk number 6: rq.Rnw:204-205
+###################################################
+summary(fit1)
+
+
+###################################################
+### code chunk number 7: rq.Rnw:213-215
+###################################################
+r1 <- resid(fit1)
+c1 <- coef(fit1)
+
+
+###################################################
+### code chunk number 8: rq.Rnw:269-270
+###################################################
+summary(fit1,se = "nid")
+
+
+###################################################
+### code chunk number 9: engelplot
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+library(quantreg)
+data(engel)
+attach(engel)
+plot(income,foodexp,cex=.25,type="n",xlab="Household Income", ylab="Food Expenditure")
+points(income,foodexp,cex=.5,col="blue")
+abline(rq(foodexp~income,tau=.5),col="blue")
+abline(lm(foodexp~income),lty=2,col="red") #the dreaded ols line
+taus <- c(.05,.1,.25,.75,.90,.95)
+for( i in 1:length(taus)){
+        abline(rq(foodexp~income,tau=taus[i]),col="gray")
+        }
+
+
+###################################################
+### code chunk number 10: engelcoef
+###################################################
+xx <- income - mean(income)
+fit1 <- summary(rq(foodexp~xx,tau=2:98/100))
+fit2 <- summary(rq(foodexp~xx,tau=c(.05, .25, .5, .75, .95)))
+
+
+###################################################
+### code chunk number 11: engelcoefplot
+###################################################
+pdf("engelcoef.pdf",width=6.5,height=3.5)
+plot(fit1,mfrow = c(1,2))
+dev.off()
+
+
+###################################################
+### code chunk number 12: engeltable
+###################################################
+latex(fit2, caption="Engel's Law", transpose=TRUE)
+
+
+###################################################
+### code chunk number 13: rqProcess
+###################################################
+z <- rq(foodexp~income,tau=-1)
+
+
+###################################################
+### code chunk number 14: eqfs
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+x.poor <- quantile(income,.1) #Poor is defined as at the .1 quantile of the sample distn
+x.rich <- quantile(income,.9) #Rich is defined as at the .9 quantile of the sample distn
+ps <- z$sol[1,]
+qs.poor <- c(c(1,x.poor)%*%z$sol[4:5,])
+qs.rich <- c(c(1,x.rich)%*%z$sol[4:5,])
+#now plot the two quantile functions to compare
+par(mfrow = c(1,2))
+plot(c(ps,ps),c(qs.poor,qs.rich), type="n",
+     xlab = expression(tau), ylab = "quantile")
+plot(stepfun(ps,c(qs.poor[1],qs.poor)), do.points=FALSE, add=TRUE)
+plot(stepfun(ps,c(qs.poor[1],qs.rich)), do.points=FALSE, add=TRUE,
+     col.hor = "gray", col.vert = "gray")
+## now plot associated conditional density estimates
+## weights from ps (process)
+ps.wts <- (c(0,diff(ps)) + c(diff(ps),0)) / 2
+ap <- akj(qs.poor, z=qs.poor, p = ps.wts)
+ar <- akj(qs.rich, z=qs.rich, p = ps.wts)
+plot(c(qs.poor,qs.rich),c(ap$dens,ar$dens),type="n",
+     xlab= "Food Expenditure", ylab= "Density")
+lines(qs.rich, ar$dens, col="gray")
+lines(qs.poor, ap$dens, col="black")
+legend("topright", c("poor","rich"), lty = c(1,1), col=c("black","gray"))
+
+
+###################################################
+### code chunk number 15: engellogplot
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+plot(income,foodexp,log="xy",xlab="Household Income", ylab="Food Expenditure")
+taus <- c(.05,.1,.25,.75,.90,.95)
+abline(rq(log10(foodexp)~log10(income),tau=.5),col="blue")
+abline(lm(log10(foodexp)~log10(income)),lty = 3,col="red")
+for( i in 1:length(taus)){
+       abline(rq(log10(foodexp)~log10(income),tau=taus[i]),col="gray")
+       }
+
+
+###################################################
+### code chunk number 16: rq.Rnw:550-553
+###################################################
+fit1 <- rq(foodexp~income,tau=.25)
+fit2 <- rq(foodexp~income,tau=.50)
+fit3 <- rq(foodexp~income,tau=.75)
+
+
+###################################################
+### code chunk number 17: rq.Rnw:563-564
+###################################################
+anova(fit1, fit2, fit3)
+
+
+###################################################
+### code chunk number 18: gastest
+###################################################
+source("gasprice.R")
+x <- gasprice
+n <- length(x)
+p <- 5 # lag length
+X <- cbind(x[(p-1):(n-1)], x[(p-2):(n-2)], x[(p-3):(n-3)], x[(p-4):(n-4)])
+y <- x[p:n]
+T1 <- KhmaladzeTest(y ~ X,taus = -1, nullH="location")
+T2 <- KhmaladzeTest(y ~ X,taus = 10:290/300, nullH="location",se="ker")
+
+
+###################################################
+### code chunk number 19: Frank
+###################################################
+	n <- 200
+	df <- 8
+	delta <- 8
+	set.seed(4003)
+	x <- sort(rt(n,df))
+	u <- runif(n)
+	v <- -log(1-(1-exp(-delta))/(1+exp(-delta*pt(x,df))*((1/u)-1)))/delta
+	y <- qt(v,df)
+
+
+###################################################
+### code chunk number 20: Frankplot
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+	plot(x,y,col="blue",cex = .25)
+	us <- c(.25,.5,.75)
+	for(i in 1:length(us)){
+		u <- us[i]
+		v <- -log(1-(1-exp(-delta))/
+			(1+exp(-delta*pt(x,df))*((1/u)-1)))/delta
+		lines(x,qt(v,df))
+		}
+	Dat <- NULL
+	Dat$x <- x
+	Dat$y <- y
+	deltas <- matrix(0,3,length(us))
+	FrankModel <- function(x,delta,mu,sigma,df,tau){
+        	z <- qt(-log(1-(1-exp(-delta))/
+			(1+exp(-delta*pt(x,df))*((1/tau)-1)))/delta,df)
+		mu + sigma*z
+		}
+	for(i in 1:length(us)){
+		tau = us[i]
+		fit <- nlrq(y~FrankModel(x,delta,mu,sigma,df=8,tau=tau),
+			data=Dat,tau= tau, start=list(delta=5,
+			mu = 0, sigma = 1),trace=TRUE)
+		lines(x, predict(fit, newdata=x), lty=2, col="green")
+		deltas[i,] <- coef(fit)
+		}
+
+
+###################################################
+### code chunk number 21: lprq
+###################################################
+"lprq" <-
+function(x, y, h, m=50 , tau=.5)
+{
+        xx <- seq(min(x),max(x),length=m)
+        fv <- xx
+        dv <- xx
+        for(i in 1:length(xx)) {
+                z <- x - xx[i]
+                wx <- dnorm(z/h)
+                r <- rq(y~z, weights=wx, tau=tau, ci=FALSE)
+                fv[i] <- r$coef[1.]
+                dv[i] <- r$coef[2.]
+        }
+        list(xx = xx, fv = fv, dv = dv)
+}
+
+
+###################################################
+### code chunk number 22: mcycle1
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+library(MASS)
+data(mcycle)
+attach(mcycle)
+plot(times,accel,xlab = "milliseconds", ylab = "acceleration")
+hs <- c(1,2,3,4)
+for(i in hs){
+        h = hs[i]
+        fit <- lprq(times,accel,h=h,tau=.5)
+        lines(fit$xx,fit$fv,lty=i)
+        }
+legend(45,-70,c("h=1","h=2","h=3","h=4"),lty=1:length(hs))
+
+
+###################################################
+### code chunk number 23: regspline
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+library(splines)
+plot(times,accel,xlab = "milliseconds", ylab = "acceleration",type="n")
+points(times,accel,cex = .75)
+X <- model.matrix(accel ~ bs(times, df=15))
+for(tau in 1:3/4){
+	fit <- rq(accel ~ bs(times, df=15), tau=tau, data=mcycle)
+	accel.fit <- X %*% fit$coef
+	lines(times,accel.fit)
+	}
+
+
+###################################################
+### code chunk number 24: nprq
+###################################################
+data(Mammals)
+attach(Mammals)
+library(MatrixModels)
+library(Matrix)
+
+
+###################################################
+### code chunk number 25: mammals
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+x <- log(weight)
+y <- log(speed)
+plot(x,y, xlab="Weight in log(Kg)", ylab="Speed in log(Km/hour)",type="n")
+points(x[hoppers],y[hoppers],pch = "h", col="red")
+points(x[specials],y[specials],pch = "s", col="blue")
+others <- (!hoppers & !specials)
+points(x[others],y[others], col="black",cex = .75)
+fit <- rqss(y ~ qss(x, lambda = 1),tau = .9)
+plot(fit)
+
+
+###################################################
+### code chunk number 26: cobar
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+data(CobarOre)
+fit <- rqss(z ~ qss(cbind(x,y), lambda = .01, ndum=100),data = CobarOre)
+plot(fit, axes = FALSE, xlab = "", ylab = "")
+rm(list=ls())
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-engellogplot.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-engellogplot.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/book.bib
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/book.bib	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/book.bib	(revision 2476)
@@ -0,0 +1,5405 @@
+@article{AAP.76,
+  author = {Aigner, D. J. and Amemiya, T. and Poirier, D. J.},
+  title = {On the estimation of production frontiers:
+   {M}aximum likelihood estimation of the parameters of a discontinuous density function},
+   year = {1976},
+   journal = {International Economic Review},
+    volume = {17},
+   pages = {377--396}
+}
+@article{weiss.91,
+    author = {Weiss, Andrew A.},
+    title = {Estimating nonlinear dynamic models using least absolute error estimation},
+   year = {1991},
+   journal = {Econometric Theory},
+    volume = {7},
+    pages = {46--68},
+}
+
+@article{Karl.90,
+   author = {Karlsen, Hans Arnfinn},
+   title = {Existence of moments in a stationary stochastic difference equation},
+   year = {1990},
+   journal = {Advances in Applied Probability},
+  volume = {22},
+   pages = {129--146}
+}
+@article{Brandt.86,
+   author = {Brandt, Andreas},
+   title = {The stochastic equation ${Y}_{n+1}={A}_n{Y}_n+{B}_n$ with stationary
+	      coefficients},
+   year = {1986},
+  journal = {Advances in Applied Probability},
+  volume = {18},
+ pages = {211--220},
+}
+
+@article{Pour.86,
+   author = {Pourahmadi, Mohsen},
+   title = {On stationarity of the solution of a doubly stochastic model},
+   year = {1986},
+  journal = {Journal of Time Series Analysis},
+   volume = {7},
+  pages = {123--131},
+}
+
+@article{Tj.86,
+      author = {Tj�stheim, Dag},
+          title = {Some doubly stochastic time series models},
+	      year = {1986},
+	          journal = {Journal of Time Series Analysis},
+		      volume = {7},
+		          pages = {51--72},
+			      keywords = {prediction; Nonlinear
+				filter; Stationarity}
+}
+@book{NQ.82,
+      author = {Nicholls, Des F. and Quinn, Barry G.},
+          title = {Random coefficient autoregressive models: {A}n
+	    introduction},
+	      year = {1982},
+	          pages = {154},
+		      publisher = {Springer-Verlag Inc}
+}
+
+@article{HL.00,
+      author = {Hunter, David R. and Lange, Kenneth},
+          title = {Quantile regression via an {MM} algorithm},
+	      year = {2000},
+	          journal = {Journal of Computational and Graphical
+		    Statistics},
+		      volume = {9},
+		          number = {1},
+			      pages = {60--77},
+}
+
+@BOOK{Arrow59,
+          author={K. Arrow and M. Hoffenberg},
+	          title={A Time Series Analysis of Interindustry
+		    Demands},
+		          year={1959},
+			          publisher={North-Holland},
+				          address={Amsterdam}
+					          }
+@article{FT.28,
+	Author = {Fisher, R.A. and L.H.C. Tippett},
+	Title = { Limiting forms of the frequency distributions of the 
+		largest or smallest member of a sample},
+	Journal = {Proc. Cambridge Philos. Soc.},
+	Volume = {24},
+	Pages = {180--190},
+	Year = {1928}
+	}
+@article{FR.94,
+      author = {Feigin, Paul D. and Resnick, Sidney I.},
+          title = {Limit distributions for linear programming time
+	    series estimators},
+	      year = {1994},
+	          journal = {Stochastic Processes and their
+		    Applications},
+		      volume = {51},
+		          pages = {135--165},
+			      keywords = {Yule-Walker; Autoregressive
+				process}
+}
+@article{FR.97,
+      author = {Feigin, Paul D. and Resnick, Sidney I.},
+          title = {Linear programming estimators and bootstrapping for
+	    heavy tailed phenomena},
+	      year = {1997},
+	          journal = {Advances in Applied Probability},
+		      volume = {29},
+		          pages = {759--805},
+			      keywords = {Poisson process;
+				Autoregressive process; Time series}
+}
+@article{Gnedenko.43,
+	Author = {Gnedenko, B.V.},
+	Title = { Sur la distribution limite du terme maximum d'une s\'erie al\'eatoire},
+	Journal = {Ann. Math.},
+	Volume = {44},
+	Pages = {423--453},
+	Year = {1943}
+	}
+@article{FR.64,
+	Author = {Fox, M. and H. Rubin}, 
+	Title = {Admissibility of Quantile Estimates of a Single Location Parameter},
+      	Journal = {Annals of Mathematical Statistics},
+	Volume =  {35}, 
+	Year = 1964, 
+	Pages = { 1019--1030}
+	}
+@article{ADEH.99,
+	Author = { Artzner,P. and  F. Delbaen and J.-M. Eber and D. Heath}, 
+	Title = {Coherent Measures of Risk},
+      	Journal = {Math. Finance},
+	Volume =  {9}, 
+	Year = 1999, 
+	Pages = { 203--228}
+	}
+
+@book{Gauss.09,
+	author="Gauss, Carl F.",
+	title="Theoria Motus Corporum Celestium",
+	publisher="Perthes et Besser",
+	address="Hamburg",
+	year="1809",
+	note="Translated, 1857, as {\em Theory of Motion of the Heavenly
+	Bodies Moving about the Sun in Conic Sections\/}, trans.\ C. H.
+	Davis.  Boston, Little, Brown.  Reprinted, 1963; New York, Dover."
+	}
+@unpublished{KMa.04,
+	Author = {Koenker, R. and L. Ma},
+	Title = {Quantile Regression for Recursive Structural Models},
+	Note = {preprint},
+	Year = 2004
+	}
+@book{Lapack,
+	Author = {Anderson, E. et al.},
+	Title = {Lapack User's Guide},
+	Publisher ={SIAM},
+	Year = {1995}
+	}
+@article{Renegar.88,
+	Author = { Renegar, J.}, 
+	Title = { A polynomial-time algorithm based on Newton's method
+		for linear programming}, 
+      	Journal = {Math. Programming}, 
+	Volume =  {40}, 
+	Year = 1988, 
+	Pages = {59--93}
+	}
+
+@incollection{R.1931,
+            Author = {Ramsey, F.P.},
+            Title = {Truth and Probability},
+	    Booktitle = {The Foundations of Mathematics and Other 
+		Logical Essays},
+            Year = 1931,
+            Publisher = {Harcourt Brace}
+	}
+
+@article{M.78,
+            Author = {Major, Peter},
+            Title = {On the Invariance Principle for Sums of Independent
+                    Identically Distributed Random Variables},
+            Year = 1978,
+            Journal = {Journal of Multivariate Analysis},
+            Volume = 8,
+            Pages = {487--517},
+            Keywords = {Weak convergence}
+        }
+@article{S.04,
+            Author = {Spearman, C.},
+            Title = {The proof and measurement of association between 
+		two things},
+            Year = 1904,
+            Journal = {Amer. J. Psych.},
+            Volume = 15,
+            Pages = {72--101},
+        }
+@article{K.38,
+            Author = {Kendall, M.},
+            Title = {A New Measure of Rank Correlation},
+            Year = 1938,
+            Journal = {Biometrika},
+            Volume = 30,
+            Pages = {81--93},
+        }
+@article{S.86,
+            Author = {Schmeidler, D.},
+            Title = {Integral representation without additivity},
+            Year = 1986,
+            Journal = {Proceedings of Am Math Society},
+            Volume = 97,
+            Pages = {255--261},
+        }
+@article{DDGKV,
+            Author = {Dhaene, J. and M Denuit  and M.J. Goovaerts and 
+		R. Kaas and D. Vyncke},
+            Title = {The concept of comonotonicity in acturial science
+		and finance: theory and applications},
+	    Journal = {Insurance: Mathematics and Economics},
+	    Volume = {31},
+	    Pages = {3--33, 133--161},
+	    Year = {2002}
+	}	
+@article{Chau.96,
+      author = {Chaudhuri, Probal},
+          title = {On a geometric notion of quantiles for multivariate data},
+	      year = {1996},
+	          journal = {Journal of the American Statistical Association},
+		      volume = {91},
+		          pages = {862--872},
+		}
+
+@unpublished{KDVGD,
+            Author = {Kaas, R. and J. Dhaene and D Vyncke and 
+		M.J. Goovaerts and M. Denuit},
+            Title = {A Simple Geometric Proof that comonotonic risks have 
+		the largest convex sum},
+            Year = 2001,
+            Note = {preprint},
+        }
+@article{AB.01,
+      author = {Andrews, Donald W. K. and Buchinsky, Moshe},
+          title = {Evaluation of a three-step method for choosing the
+	    number of bootstrap repetitions},
+	      year = {2001},
+	          journal = {Journal of Econometrics},
+		      volume = {103},
+		          number = {1-2},
+			      pages = {345--386},
+			          keywords = {coefficient of excess
+				    kurtosis; Confidence interval;
+				    Density estimation; Hypothesis
+				      test; $P$-value; Quantile;
+				    Simulation; standard error
+				      estimate}
+}
+
+
+@article{AB.00,
+      author = {Andrews, Donald W. K. and Buchinsky, Moshe},
+          title = {A three-step method for choosing the number of
+	    bootstrap repetitions},
+	      year = {2000},
+	          journal = {Econometrica},
+		      volume = {68},
+		          number = {1},
+			      pages = {23--51},
+			          keywords = {Bias correction;
+				    Confidence interval; Hypothesis
+				      test; $P$-value; Simulation;
+				    standard error estimate}
+}
+
+
+	
+@article{BF.81,
+            Author = {Bickel, Peter J. and Freedman, David A.},
+            Title = {Some Asymptotic Theory for the Bootstrap},
+            Year = 1981,
+            Journal = {The Annals of Statistics},
+            Volume = 9,
+            Pages = {1196--1217},
+            Keywords = {Resampling}
+        }
+@article{M.72,
+            Author = {Mallows, C. L.},
+            Title = {A Note on Asymptotic Joint Normality},
+            Year = 1972,
+            Journal = {The Annals of Mathematical Statistics},
+            Volume = 43,
+            Pages = {508--515}
+        }
+
+@article{Starmer,
+	Author = { Starmer, C.},
+	Title = {Developments in Non-expected Utility Theory:  The Hunt 
+		for a Descriptive Theory of Choice under Risk},
+      	Journal = {J. of Economic Literature},
+	Volume =  {38}, 
+	Year = 2000, 
+	Pages = { 332--382}
+	}
+@article{D.90,
+	Author = { Denneberg, D.}, 
+	Title = {Premium Calculation:  Why standard deviation
+	should be replaced by absolute deviation},
+	Journal = {ASTIN Bulletin},
+	Volume =  {20}, 
+	Pages = { 181--190},
+	Year ={1990}
+	}
+@article{B.1738,
+	Author = { Bernoulli, D.}, 
+	Title = {Specimen theoriae novae de mensura sortis},
+	Journal= {Commentarii Academiae Scientiarum Imperialis Petropolitanae},
+	Year ={1738},
+	Volume = {5},
+	Pages = {175-192},
+	Note = {translated by  L. Sommer in {\it Econometrica}, {22}, 23-36}
+	}
+@article{dF.1937,
+	Author = { de Finetti, B.}, 
+	Title = {La pr\'evision ses lois logiques, ses sources subjectives},
+	Journal= {Annals de l'Instutute Henri Poincar\'e},
+	Year ={1937},
+	Volume = {7},
+	Pages = {1-68},
+	Note = {translated by  H.E. Kyburg in 
+		{\it Studies in Subjective Probability},
+		H.E. Kyburg and H.E. Smokler, (eds.), Wiley, 1964}
+	}
+@book{Knuth.LP,
+	Author = {Knuth, D. E.}, 
+	Title = {Literate Programming},
+	Publisher = {Center for the Study of Language and Information},
+	Year ={1992}
+	}
+@book{ACP3,
+	Author = {Knuth, D. E.}, 
+	Title = {The Art of Computer Programming.  Volume III: Sorting
+	and Searching},
+	Edition = {2},
+	Publisher = {Addison-Wesley},
+	Year ={1998}
+	}
+@book{Berman,
+	Author = {Berman, A.}, 
+	Title = {Cones, Matrices and Mathematical Programming},
+	Publisher = {Springer},
+	Year ={1973}
+	}
+@book{C.98,
+	Author = { Chambers, J. M.}, 
+	Title = {Programming with Data: A Guide to the S Language},
+	Publisher = {Springer},
+	Year ={1998}
+	}
+@book{S.54,
+	Author = { Savage, L.J.}, 
+	Title = {Foundations of Statistics},
+	Publisher = {Wiley},
+	Year ={1954}
+	}
+@book{vNM,
+	Author = { von Neumann, J. and Morgenstern, O.}, 
+	Title = {Theory of Games and Economic Behavior},
+	Publisher = {Princeton},
+	Year ={1944}
+	}
+@book{F.1982,
+	Author = { Fishburn, P.}, 
+	Title = {Foundations of Expected Utility Theory},
+	Publisher = {D. Reidel},
+	Year ={1982}
+	}
+@book{Fishburn,
+	Author = { Fishburn, P.}, 
+	Title = {Nonlinear Preference  and Utility Theory},
+	Publisher = {Johns Hopkins Press},
+	Year ={1988}
+	}
+@book{W.89,
+	Author = { Wakker, P.}, 
+	Title = {Additive Representations of Preferences:  A New 
+		Foundation of Decision Analysis},
+	Publisher = {Kluwer Academic Publishers},
+	Year ={1989}
+	}
+@book{Q.93,
+	Author = { Quiggin, J.}, 
+	Title = {Generalized Expected Utility Theory},
+	Publisher = {Kluwer Academic Publishers},
+	Year ={1993}
+	}
+@book{D.94,
+	Author = { Denneberg, D.}, 
+	Title = {Non-Additive Measure and Integral },
+	Publisher = {Kluwer Academic Publishers},
+	Year ={1994}
+	}
+
+@article{K.01,
+	Author = { Kusuoka, S.}, 
+	Title = {On Law Invariant Coherent Risk Measures },
+      	Journal = { Advances in Math. Econ.},
+	Volume =  {3}, 
+	Year = 2001, 
+	Pages = { 83--95}
+	}
+@article{C.54,
+	Author = {Choquet, G.}, 
+	Title = {Theory of Capacities},
+      	Journal = { Annales de L'Institute Fourier},
+	Volume = {V},
+	Pages = { 131--295},
+	Year = {1954}
+	}
+@article{Gajdos,
+	Author = { Gajdos, T.}, 
+	Title = {Measuring Inequalities without Linearity in Envy:
+		Choquet Integrals for Symmetric Capacities},
+      	Journal = { J. Econ. Theory},
+	Note = {forthcoming},
+	Year = {2002}
+	}
+
+@article{Hobson,
+	Author = { Hobson, D. G.}, 
+	Title = {Robust Hedging of the Lookback Option},
+      	Journal = { Finance and Stochastics},
+	Volume =  {2}, 
+	Year = 1998, 
+	Pages = { 329--347}
+	}
+@article{H.98,
+	Author = { Hurlimann, W.},
+	Title = {On Stop-Loss Order and the Distortion Pricing Principle},
+      	Journal = {ASTIN Bulletin},
+	Volume =  {28}, 
+	Year = 1998, 
+	Pages = { 119--134}
+	}
+@article{KG.01,
+        Author = {Koenker, R. and Geling, O.},
+        Title = {Reappraising Medfly Longevity:  A quantile regression
+                survival analysis},
+        Journal = {J. of Am. Stat. Assoc.},
+        Pages = {458--468},
+        Volume = 96,
+        Year = 2001
+}
+@article{E.61,
+	Author = {Ellsberg, D.},
+	Title = {Risk, Ambiguity and Savage Axioms},
+      	Journal = {Quarterly J. Econ.},
+	Volume =  {75}, 
+	Year = 1961, 
+	Pages = { 643--669}
+	}
+@article{Q.81,
+	Author = { Quiggin, J.}, 
+	Title = {Risk Perception and Risk Aversion among Australian Farmers},
+      	Journal = {Aust. J. of Ag. Econ.},
+	Volume =  {25}, 
+	Year = 1981, 
+	Pages = { 160--169}
+	}
+@article{BP.00,
+	Author = { Bleichrodt, H. and J.L. Pinto}, 
+	Title = {A parameter-Free Elicitation of the Probability Weighting Function in Medical Decision Analysis},
+      	Journal = {Management Science},
+	Volume =  {46}, 
+	Year = 2000, 
+	Pages = { 1485--1496}
+	}
+@article{FS.48,
+	Author = { Friedman, M. and L.J. Savage}, 
+	Title = {The utility analysis of choices involving risk},
+      	Journal = {J. Political Economy},
+	Volume =  {56}, 
+	Year = 1979, 
+	Pages = { 279--304}
+	}
+@article{TK.92,
+	Author = { Tversky, A. and D Kahneman}, 
+	Title = {Advances in Prospect Theory:  Cumulative Representation
+		of Uncertainty},
+      	Journal = {J. Risk and Uncertainty},
+	Volume =  {5}, 
+	Year = 1992, 
+	Pages = { 297--323}
+	}
+@article{WT.93,
+	Author = { Wakker, P. and A. Tversky}, 
+	Title = {An Axiomatization of Cumulative Prospect Theory},
+      	Journal = {J. Risk and Uncertainty},
+	Volume =  {7}, 
+	Year = 1993, 
+	Pages = { 147--176}
+	}
+@article{KT.79,
+	Author = { Kahneman, D. and A. Tversky}, 
+	Title = {Prospect theory:  An analysis of decision under risk},
+      	Journal = {Econometrica},
+	Volume =  {47}, 
+	Year = 1979, 
+	Pages = { 263--291}
+	}
+@article{Y.87,
+	Author = { Yaari, M.}, 
+	Title = {The Dual Theory of Choice under Risk},
+      	Journal = {Econometrica},
+	Volume =  {55}, 
+	Year = 1987, 
+	Pages = { 95--115}
+	}
+@article{S.89,
+	Author = { Schmeidler, D.}, 
+	Title = {Subjective Probability and Expected Utility without Additivity},
+      	Journal = {Econometrica},
+	Volume =  {57}, 
+	Year = 1989, 
+	Pages = { 571--587}
+	}
+@article{JK.01,
+	Author = {Jaschke, S. and U. K\"uchler},
+	Title = {Coherent Risk Measure and Good Deal Bounds},
+	Journal = { Finance and Stochastics},
+        Volume =  {5},
+	Year = {2001},
+        Pages = { 181--200}
+	}
+@article{T.02,
+	Author = {Tasche, D.},
+	Title = {Expected Shortfall and Beyond}, 
+	Journal = {Journal of Banking and Finance},
+        Volume =  {26},
+	Year = {2002},
+        Pages = { 1519--1533}
+	}
+@article{AT.01,
+	Author = {Acerbi, C. and D. Tasche},
+	Title = {Expected Shortfall:  A Natural coherent alternative
+		to Value at Risk},
+	Journal = {Economic Notes}, 
+	Volume = {31},
+	Pages = {379--388},
+	Year = {2002},
+	}
+@article{Jones.94,
+      author = {Jones, M. C.},
+          title = {Expectiles and ${M}$-quantiles are quantiles},
+	      year = {1994},
+	          journal = {Statistics and  Probability Letters},
+		      volume = {20},
+		          pages = {149--153},
+			      keywords = {Location parameter}
+}
+@article{BJ.99,
+	Author = {Britten-Jones, M.},
+	Title = {The sampling error in estimation of mean variance efficient
+		portfolio weights},
+	Journal = {J. of Finance},
+	Year = {1999},
+	Volume = {54},
+	Pages = {655--671}
+	}
+@article{RU.00,
+	Author = {Rockafellar, R.T. and S. Uryasev},
+	Title ={Optimization of conditional VaR},
+	Year = {2000},
+	Volume = {2},
+	Journal = {J. of Risk},
+	Pages = {21--41}
+	}
+@article{Rosenblatt.58,
+	Author = {Rosenblatt, F.},
+	Title = {The perceptron: a probablistic model for information 
+		storage and retrieval in the brain}, 
+	Journal = {Psychological  Review}, 
+	Volume = {65},
+	Pages = {386--408}, 
+	Year = 1958,
+	}
+@mastersthesis{Laine,
+	Author = {Laine, B.},
+	Title = { Depth Contours as Multivariate Quantiles: A Directional Approach},
+	School = {Universit\'e Libre de Bruxelles},
+	Year = 2001
+	}
+@unpublished{Kiwiel.04,
+	Author = {Kiwiel, K.C.},
+	title = {Improved Randomized Selection},
+	note = {preprint},
+	Year = 2004
+}
+@unpublished{BS.02,
+	Author = {Bouy\'{e}, E. and M. Salmon },
+	title = {Dynamic Copula Quantile Regressions and Tail Area
+		Dynamic Dependence in Forex Markets},
+	note = {preprint},
+	Year = 2002
+}
+
+@article{Abadie.02,
+	Author = {Abadie, A.},
+	title = {Bootstrap Tests for Distributional Treatment Effects
+	  in Instrumental Variable Models},
+	Journal = { JASA},
+	Volume = {97},
+	pages = {284--292},
+	Year = 2002
+}
+@article{ChernHan:04,
+  	Author = {Chernozhukov, V. and C. Hansen},
+	Title = {An IV Model of Quantile Treatment Effects},
+	Journal = { Econometrica},
+	Note = {forthcoming},
+	Year = 2004
+	}
+
+@article{aai:02,
+	Author = {Abadie, A. and J. Angrist and G. Imbens},
+	title = {Instrumental Variables Estimates of Subsidized
+	  Training on the Quantile of Trainee Earnings},
+	Journal = { Econometrica},
+	Volume = {70},
+	pages = {91--117},
+	Year = 2002
+}
+
+@article{Abre.01,
+	Author = {Abreveya, J.},
+	Title = {The effects of demographics and maternal behavior on the
+		distribution of birth outcomes},
+	Journal = EE,
+	Volume = 26,
+	Pages = {247-257},
+	Year = 2001,
+	}
+@unpublished{IN.02,
+	Author = {Imbens, G. and W. Newey}, 
+	Title = {Identification and Estimation of Triangular Simultaneous
+		Equations Models Without Additivity}, 
+	Note = {preprint},	
+	Year = 2002
+	}
+@article{BL.75,
+    Author = {Bickel, P. J. and Lehmann, E. L.},
+    Title = {Descriptive Statistics for Nonparametric Models. {I}I:
+            {L}ocation},
+    Year = 1975,
+    Journal = {The Annals of Statistics},
+    Volume = 3,
+    Pages = {1045--1069},
+    Keywords = {Robustness; Efficiency; Order statistics; Trimmed mean;
+               Rank test; Huber's maximum likelihood estimator;
+               Heavy-tailed distributions; Tukey model}
+}   
+ 
+@article{BickSak,
+	Author = {Bickel, P. and Sakov, A.},
+	Title = {An {E}dgeworth expansion for the $m$ out of $n$ bootstrapped
+		median},
+	Journal = StPrLet,
+	Year = 2000,
+	}
+@unpublished{BickSak.99,
+	Author = {Bickel, P. and Sakov, A.},
+	Title = {On the choice of $m$ in the $m$ out of $n$ bootstrap
+		in estimation problems},
+	Note = {preprint},
+	Year = 1999,
+	}
+@book{Vapnik.95,
+    Publisher = {Springer:Brln:NY},
+    Pages = 188,
+    Author = {Vapnik, V. N.},
+    Title = {The Nature of Statistical Learning Theory},
+    Year = 1995
+}
+@book{Ripley.96,
+    Publisher = {Cambridge},
+    Author = {Ripley, B.D.},
+    Title = {Pattern Recognition and Neural Networks},
+    Year = 1996
+}
+@book{Brownlee,
+    Publisher = {Wiley:  New York},
+    Author = {Brownlee, K.A.},
+    Title = {Statistical Theory and Methodology in Science and Engineering},
+    Year = 1965
+}
+
+
+@article{abadie.97,
+	Author = {Abadie, A.},
+	Title = {Changes in {S}panish Labor Income Structure during the 1980's: 
+		A Quantile Regression Approach}, 
+	Journal = { Investigaciones Economicas}, 
+	Volume = 21, 
+	Pages = {253--272}, 
+	Year = 1997
+}
+
+@article{ai.94,
+	author =  {Imbens, G.W. and J.D. Angrist },
+	title = {Identification and Estimation of Local Average 
+			Treatment Effects}, 
+	journal = {Econometrica}, 
+	Volume = 62, 
+	Pages = {467-475},
+	Year = 1994
+}
+
+ 
+@article{air.96,
+	author = {Angrist, J.D. and  G.W. Imbens and D. B. Rubin},
+	title = {Identification of Causal Effects Using Instrumental Variables},
+	journal = JASA, 
+	Volume = 91,
+	Pages = {444--472},
+	Year = 1996
+}
+
+@article{amem.82,
+    Journal = Econmtca,
+    Volume = 50,
+    Pages = {689--712},
+    Author = {Amemiya, Takeshi},
+    Title = {Two Stage Least Absolute Deviations Estimators},
+    Year = 1982
+}
+
+
+
+
+@article{amma.93,
+    Journal = JASA,
+    Volume = 88,
+    Pages = {505--514},
+    Keywords = {Eigenvalue; $M$-estimator},
+    Author = {Ammann, Larry P.},
+    Title = {Robust Singular Value Decompositions: {A} New Approach to
+            Projection Pursuit},
+    Year = 1993
+}
+
+@article{hamp:1974,
+    Author = {Hampel, Frank R.},
+    Title = {The Influence Curve and Its Role in Robust Estimation},
+    Year = 1974,
+    Journal = {Journal of the American Statistical Association},
+    Volume = 69,
+    Pages = {383--393},
+    Keywords = {Trimmed mean; Huberizing; von Mises functional; Jackknife;
+               $U$-statistic; Winsorized mean; $M$-estimator}
+} 
+@article{rous:1984,
+    Author = {Rousseeuw, Peter J.}, 
+    Title = {Least Median of Squares Regression},
+    Year = 1984,
+    Journal = {Journal of the American Statistical Association},
+    Volume = 79,
+    Pages = {871--880},
+    Keywords = {Outlier; Robust regression; Breakdown point}
+}
+@inproceedings{DH.83,
+    Author = {Donoho, David L. and Huber, Peter J.},
+    Title = {The Notion of Breakdown Point},
+    Year = 1983,
+    Booktitle  = {A Festschrift for Erich L. Lehmann},
+    Publisher = {Wadsworth (Belmont, CA)},
+    Pages = {157--184}
+}
+@book{Pstudy,
+    Author = {Andrews, D. F. and Bickel, P. J. and Hampel, F. R. and Huber,
+             P. J. and Rogers, W. H. and Tukey, J. W. },
+    Title = {Robust Estimates of Location: {S}urvey and Advances},
+    Publisher = {Princeton},
+    Year = 1974,
+}  
+ 
+@article{A.93,
+    Journal = Econmtca,
+    Volume = 61,
+    Year = 1993,
+    Pages = {821--856},
+    Author = {Andrews, Donald W. K.},
+    Title = {Tests for Parameter Instability and Structural Change With
+            Unknown Change Point},
+}
+@book{BS.83,
+          Author = {Bloomfield, P. and Steiger, W. S.},
+          Title = {Least Absolute Deviations. {T}heory, Applications and
+                  Algorithms},
+          Year = 1983,
+          Publisher = {Birkh\"auser},
+          Pages = {349}
+      }
+
+
+@article{arcones.96,
+    Journal = ET,
+    Volume = 12,
+    Pages = {257--283},
+    Author = {Arcones, M.A.},
+    Title = { The {B}ahadur-{K}iefer representation of $L_p$ regression estimators},
+    Year = 1996,
+}
+
+
+@article{AS.99,
+	Journal = JPE,
+	Volume = 107,
+	Pages = {65-105},
+	Author = {Aggarwal, R.K. and Samwick, A.A.},
+	Title = {The other side of the trade-off:  The impact of Risk on
+			Executive compensation},
+	Year = 1999
+}
+
+@article{babu.89,
+    Journal = ProbFields,
+    Volume = 83,
+    Pages = {547--580},
+    Author = {Babu, G.J.},
+    Title = {Strong represention for LAD estimators in linear models},
+    Year = 1989
+}
+
+
+@unpublished{Bai.98,
+	Author = {Bai, J.},
+	Title = {Testing parametric conditional distributions of dynamic
+		models },
+	Note = {preprint},
+	Year = 1998
+}
+
+
+@article{BaiHe,   
+    Author = {Bai, Zhi-Dong and He, Xuming},
+    Title = {Asymptotic Distributions of the Maximal Depth Estimators for
+            Regression and Multivariate Location},
+    Year = 1999,
+    Journal = {The Annals of Statistics},
+    Volume = 27,
+    Number = 5,
+    Pages = {1616--1637},
+    Keywords = {[62G35 (MSC1991)]; [62F12 (MSC1991)]; [62J05 (MSC1991)];
+               [62H12 (MSC1991)]; [Asymptotic distribution]; [consistency];
+               [estimator]; [median]; [multivariate location]; [regression
+               depth]; Robustness}
+} 
+
+
+@article{Banach,
+	Author = {Banach, S.},
+	Title = {Sur un classe de fonctions d'ensemble},
+	Journal = {Fund. Math.},
+	Volume = {6},
+	Pages = {170--188},
+	Year = 1924
+}
+
+
+
+
+@article{wu:1986,
+    Author = {Wu, C. F. J.},
+    Title = {Jackknife, Bootstrap and Other Resampling Methods in
+            Regression Analysis},
+    Year = 1986,
+    Journal = {The Annals of Statistics},
+    Volume = 14,
+    Pages = {1261--1295},
+    Keywords = {Robustness; $M$-regression; Generalized linear model; Note}
+}
+
+      @article{chen:wu:zhao:1995,
+          Author = {Chen, X. R. and Wu, Y. and Zhao, L. C.},
+          Title = {A Necessary Condition for the Consistency of $L_1$ Estimates
+                  in Linear Models},
+          Year = 1995,
+          Journal = {Sankhy\=a, Series A, Indian Journal of Statistics},
+          Volume = 57,
+          Pages = {384--392}
+      }
+
+
+
+      @article{koen:bass:1984,
+          Author = {Koenker, Roger W. and Bassett, Gilbert W.},
+          Title = {Four (pathological) Examples in Asymptotic Statistics (Corr:
+                  93V47 P88)},
+          Year = 1984,
+          Journal = {The American Statistician},
+          Volume = 38,
+          Pages = {209--212},
+          Keywords = {[Teacher's Corner]; Pedagogy; Linear model; Median; Least
+                     absolute values}
+      }
+@article {Gon.92,
+	Author = {Gonzago, C.C.},
+	Year = 1992,
+	Title = { Path-following methods for linear programming},
+	Journal = { SIAM Review},
+	Volume = { 34},
+	Pages = {167-224},
+	}
+@inproceedings {G.94,
+	Author = {Gutenbrunner, C.},
+	Year = 1994,
+	Title = { Tests for heteroscedasticity based on regression 
+		quantiles and regression rank scores},
+	booktitle = {Asymptotic Statistics:  Proceedings of the 
+		Fifth Prague Symposium},
+	editor = {Mandl, P. and \Huskova }, 
+	Publisher = {Physica-Verlag:  Heidelberg},
+	}
+@article {J.99,
+	Author = { Jure\v{c}kov\'a, J.},
+	Title ={Regression rank-scores tests against heavy-tailed alternatives},
+	Journal = {Bernoulli},
+	Volume = {5},
+	Year = 1999
+	}
+@article{mm.99,
+    Author = {Mizera, Ivan and Muller, C. H.},
+    Title = {Breakdown Points and Variation Exponents of Robust
+            $M$-estimators in Linear Models},
+    Year = 1999,
+    Journal = {The Annals of Statistics},
+    Volume = 27,
+    Pages = {1164--1177}
+}
+ @article{hjkp.90,
+    Author = {He, X. and Jure\v{c}kov\'a, J. and Koenker, R. and Portnoy, S.},
+    Title = {Tail Behavior of Regression Estimators and Their Breakdown Points},
+    Year = 1990,
+    Journal = {Econometrica},
+    Volume = 58,
+    Pages = {1195--1214},
+    Keywords = {Robustness}
+}
+@article{J.81,
+    Author = {Jure\v{c}kov\'a, J.},
+    Title = {Tail-behavior of Location Estimators},
+    Year = 1981,
+    Journal = {The Annals of Statistics},
+    Volume = 9,
+    Pages = {578--585},
+    Keywords = {Sample mean; $L$-estimator; Trimmed mean; $M$-estimator;
+               Median; Hodges-Lehmann estimator}
+}  
+
+@article {AC.68,
+	Author = {Aigner, D. and Chu, S.F.},
+	Year = 1968,
+	Title = { On estimating the industry production function},
+	Journal = AER,
+	Pages = {826--839},
+	Volume = 58,
+	}
+@article {GJ.92,
+	Author = {Gutenbrunner, C. and  Jure\v{c}kov\'a, J.},
+	Year = 1992,
+	Title = { Regression quantile and regression rank score 
+		process in the linear model and derived statistics},
+	Journal = {Ann. Statist.},
+	Volume = { 20},
+	Pages = {305-330},
+	}
+@article {GJKP.94,
+	Author = {Gutenbrunner, C. and   Jure\v{c}kov\'a, J. and  
+		Koenker, R. and Portnoy, S},
+	Year = 1993,
+	Title = { Tests of linear hypotheses based on regression rank scores},
+	Journal = {J. of Nonparametric Statistics},
+	Volume = {2},
+	Pages = {307-33},
+	}
+@book {Greene,
+	Author = {Greene, W.H.},
+	Title = {Econometric Analysis},
+	Publisher = {Prentice Hall},
+	Edition = {3},
+	Year = 1997
+}
+
+@inproceedings{H.65,
+	Author = {H\'{a}jek, J.},
+	Title = { Extension of the Kolmogorov-Smirnov test to regression 
+		alternatives},
+	Booktitle = {Bernoulli-Bayes-Laplace:  Proceedings of an International
+		Research Seminar},
+	Editor = { Neyman, J. and LeCam, L.},
+	Publisher = SV,
+	Year = 1965,
+	}
+		
+@article{Sheynin.73,
+	Author = { Sheynin, O.B.}, 
+	Title = {R.J. Boscovich's work on probability}, 
+	Journal = {Archive for History of Exact Sciences}, 
+	Volume = {9}, 
+	Pages =  {306--324},
+	Year = 1973,
+	}
+@article{Harter.74,
+	Author = { Harter, H. L.},
+	Title = {The method of least squares and some alternatives},
+	Journal = {International Statistical Review},
+	Volume = {42},
+	Pages = { 147-174, 235-264}, 
+	Year = 1974
+	}
+@article{Harter.75,
+	Author = { Harter, H. L.}, 
+	Title = {The method of least squares and some alternatives},
+	Journal = {International Statistical Review},
+	Volume = {43},
+	Pages = {1-44, 125-190, 269-272},
+	Year = 1975
+	}
+
+
+
+
+@book {Smith.87,
+	Author = {Smith, J.R.},
+	Year = 1987,
+	title = { From Plane to Spheroid: Determining the Figure of 
+		the Earth from 3000 Bc to the 18th Century Lapland and 
+		Peruvian Survey Expeditions},
+	publisher = {Landmark Enterprises},
+	}
+@book {HS.67,
+	Author = {H\'{a}jek, J. and \v{S}id\'{a}k, Z. },
+	Year = 1967,
+	title = { Theory of Rank Tests},
+	publisher = {Academia, Prague},
+	}
+@Manual{Rcore,
+         title = {R: A language and environment for statistical computing},
+	 author  = {{R Development Core Team}},
+         year  = 2003,
+         note  = {http://www.R-project.org}
+}
+@ARTICLE{Leisch,
+    AUTHOR = {Friedrich Leisch},
+      TITLE = {Sweave, Part {II}: Package Vignettes},
+        JOURNAL = {R News},
+	  YEAR = 2003,
+	    VOLUME = 3,
+	      NUMBER = 2,
+	        PAGES = {21--24},
+		  MONTH = {October},
+		    URL = {http://CRAN.R-project.org/doc/Rnews/}
+}
+
+@article{IG,
+    Author = {Ihaka, R. and R. Gentleman},
+    Title = {R: A Language for Data Analysis and Graphics},
+    Year = 1996,
+    Journal = JCGS,
+    Volume = {5},
+    Pages = {299--314}
+}           
+@Book{Dalgaard.02,
+    author =       "Peter Dalgaard",
+    title =        "Introductory Statistics with {R}",
+    publisher =    {Springer-Verlag},
+    year =         2002,
+}
+,
+  }
+
+@Book{VR,
+    author =       {Venables, W.N. and B. D. Ripley},
+      title =        {Modern applied statistics with {S-PLUS}},
+        publisher =    {Springer-Verlag},
+	    edition =      "Fourth",
+	        year =         "2002",
+}
+
+@article{Stigler.84,
+    Author = {Stigler, S.},
+    Title = {Boscovich, Simpson and a 1760 manuscript note on fitting
+    a linear relation},
+    Year = 1984,
+    Journal = {Biometrika},
+    Volume = {71},
+    Pages = {615--620}
+}           
+@article{Stigler.45,
+    Author = {Stigler, G.},
+    Title = {The Cost of Subsistence},
+    Year = 1945,
+    Journal = {J. Farm Econ},
+    Volume = {37},
+    Pages = {1249--1258}
+}           
+@article{Shamir.93,
+	Author = {Shamir, R.}, 
+	Year = {1993},
+	Title = {Probabilistic analysis in linear programming}, 
+	Journal = {Statistical Science},
+	Volume = {8},
+	Pages= {57--64}
+	}
+
+
+@book{stig:1986,
+    Author = {Stigler, Stephen M.},
+    Title = {The History of Statistics: {T}he Measurement of Uncertainty
+            Before 1900},
+    Year = 1986,
+    Publisher = {Harvard University Press},
+    Pages = {432}
+}           
+@article{stig.77,
+    Author = {Stigler, Stephen M.},
+    Title = {Do Robust Estimators Work With Real Data? },
+    Year = 1977,
+    Journal = {The Annals of Statistics},
+    Volume = 5,
+    Pages = {1055--1077},
+} 
+
+@article {SM.83,
+	Author = {Sheather, S.J. and J.S. Maritz },
+	Year = {1983},  
+	Title = {An estimate of the asymptotic standard error of the sample median},  
+	Journal = {Australian J. of Statistics},
+	Volume = {25}, 
+	Pages = {109--122}
+	}
+
+
+@article {SH.88,
+	Author = {Hall, P. and  S. Sheather },
+	Year = 1988,
+	Title = { On the distribution of a studentized quantile},
+	Journal = JRSS-B,
+	Volume = { 50},
+	Pages = {381-391},
+	}
+@article {HKS,
+	Author = {Hansen, M. and C.  Kooperberg and S. Sardy},
+	Year = 1996,
+	Title = { Triogram Models},
+	Journal = JASA,
+	note = {forthcoming}
+	}
+@article {HK.97,
+	Author = {Hasan, M.N. and R. Koenker},
+	Title = { Robust rank tests  of the  unit root hypothesis},
+	Journal = { Eonometrica},
+	Volume = 65,
+	Pages = {133-161},
+	Year = 1997
+	}
+
+
+@article{he:shao:1996,
+          Author = {He, Xuming and Shao, Qi-Man},
+          Title = {A General {B}ahadur Representation of $M$-estimators and Its
+                  Application to Linear Regression With Nonstochastic Designs},
+          Year = 1996,
+          Journal = {The Annals of Statistics},
+          Volume = 24,
+          Pages = {2608--2630}
+      }
+
+
+
+@article {HK.92,
+	Author = {Hendricks, W. and Koenker, R.},
+	Year = 1991,
+	Title = { Hierarchical spline models for conditional quantiles  and the demand for electricity },
+	Journal =  JASA,
+	Volume = { 87}, 
+	Pages = {58-68},
+	}
+@article {Herce.96,
+	Author = {Herc\'{e}, M.},
+	Year = 1996,
+	Title = { Asymptotic theory of LAD estimation in a unit root process with finite variance},
+	Journal = { Econometric Theory},
+	Volume = { 12}, 
+	Pages = {129-154},
+	}
+@article {thomp.04,
+	Author = { Thompson, S.},
+	Title = { Robust tests of the unit root hypothesis should not be modified},
+	Journal = { Econometric Theory},
+	Volume = {20}, 
+	Pages = {360--381},
+	Year =2004 
+	}
+@unpublished {HP.92,
+	Author = {Honor\'e, B.E. and J.L. Powell},
+	Year = 1992,
+	Title = { Pairwise Difference Estimators of Censored and Truncated Regression Models},
+	note = {preprint},
+	}
+@unpublished {PHK.00,
+	Author = {Honor\'e, B.E. and Powell, J.L. and Khan, S.}, 
+	Title = { Quantile regression under random censoring},
+	Year = 2000,
+	note ={preprint}
+	}
+@book {Hub.81,
+	Author = {Huber, P.J.},
+	Year = 1981,
+	title = { Robust Statistics},
+	Publisher = {New York:  Wiley},
+	}
+@article{bass:88,
+    Journal = CmpStDA,
+    Volume = 6,
+    Pages = {353--359},
+    Keywords = {Breakdown point},
+    Author = {Bassett, Gilbert W.},
+    Title = {A Property of the Observations Fit By the Extreme Regression
+            Quantiles},
+    Year = 1988
+}
+
+@article{KFu,
+    Author = {Knight, K. and Fu, W.},
+    Title = {Asymptotics for Lasso-type Estimators},
+    Year = 2000,
+    Journal = {The Annals of Statistics},
+    Volume = 28,
+    Pages = {1356--1378},
+}
+@article{Rogers.01,
+    author = {Rogers, Alan J.},
+    title = {Least absolute deviations regression under nonstandard conditions},
+    year = {2001},
+    journal = {Econometric Theory},
+    volume = {17},
+    number = {4},
+    pages = {820--852},
+    keywords = {Ridge regression; Shrinkage estimators}
+}
+@article{knig:1998,
+          Author = {Knight, Keith},
+          Title = {Limiting Distributions for $L_1$ Regression Estimators Under
+                  General Conditions},
+          Year = 1998,
+          Journal = {The Annals of Statistics},
+          Volume = 26,
+          Pages = {755--770}
+      }
+@article{bass:koen:1986,
+          Author = {Bassett, Gilbert W. and Koenker, Roger W.},
+          Title = {Strong Consistency of Regression Quantiles and Related
+                  Empirical Processes},
+          Year = 1986,
+          Journal = {Econometric Theory},
+          Volume = 2,
+          Pages = {191--201},
+          Keywords = {Glivenko-Cantelli theorem}
+      }
+
+
+
+@article{bass:koen.78,
+    Journal = JASA,
+    Volume = 73,
+    Pages = {618--622},
+    Keywords = {Linear model},
+    Author = {Bassett, Gilbert  and Koenker, Roger},
+    Title = {Asymptotic Theory of Least Absolute Error Regression},
+    Year = 1978
+}
+@article{KB.01,
+	Author = {Koenker, R. and Bilias, Y.},
+	Title = {Quantile Regression for Duration Data:  A Reappraisal of the
+		Pennsylvania Reemployment Bonus Experiments},
+	Journal = EE,
+	Volume = 26,
+	Year = 2001,
+	Pages = {199-220},
+	}
+	
+@article{BassChen,
+    	Author = {Bassett, G.  and Chen, H.},
+	Title = {Quantile Style:  Return-Based Attribution Using Regression
+		Quantiles}, 
+	Journal = EE,
+	Volume = 26,
+	Pages = {293-305},
+	Year = 2001,
+	}
+	
+
+
+@inproceedings{Stein.56,
+	Author = { Stein, C. M.},
+        Year = 	{1956}, 
+	Title = {Inadmissibility of the usual estimator of the
+		mean of a multivariate normal distribution}, 
+	Booktitle = {Proceedings of the Third
+		Berkeley Symposium on Mathematical Statistics and Probability},
+	Publisher = {University of California Press}
+}
+@unpublished{ACFV,
+	Author = {Angrist, J. and V. Chernozhukov and I. Fernandez},
+	Title =	{Quantile Regression under Misspecification},
+	Note = {preprint},
+	Year = 2003 
+}
+@article{BCY.00,
+	Author = {Bilias, Y. and Chen, S. and Ying, Z.},
+	Title =	{Simple resampling methods for censored regression quantiles},
+	Journal = JEx,
+	Volume = 99,
+	Pages = {373--386},
+	Year = 2000 
+}
+
+@article{BD.90,
+	Journal = StPrLet,
+	Volume = 9,
+	Pages = {241-51},
+	Author = {Beirlant, J. and Deheuvels, P.},
+	Title = {On the approximation of {P-P} and {Q-Q} plot processes by
+		Brownian Bridges },
+	Year = 1990 
+}
+
+@inproceedings{bern:eps.92,
+	Author = {Bern, M. and  Eppstein, D.},
+	Title = { Mesh generation and optimal triangulation},
+	Booktitle = { Computing in Euclidean Geometry},
+	Pages = { 23--90},
+	Editor = { Du, D.Z. and Hwang, F.K.},
+	Publisher = {World Scientific Publishing},
+	Year = 1992,
+}
+
+
+
+
+@article{BH.98,
+	Author = {Buchinsky, M. and Hahn, J.Y.}, 
+	Title = {An alternative estimator for censored quantile regression}, 
+	Journal = {Econometrica}, 
+	Volume = {66}, 
+	Pages = {653--71},
+	Year = 1998
+}
+
+@article{blomgren.98,
+	journal = {IEEE Trans. Image Proc.},
+	title = { Color TV:  Total variation methods for restoration of
+	vector valued images},
+	author = {Blomgren, P. and Chan, T.F.},
+	Volume = {7},
+	pages = {304--309},
+	year = 1998,
+}
+
+
+@article{Bowley,
+	Author = {Bowley, A.L.}, 
+	Title = {Applications to wage statistics and other groups},
+	Journal = {J. of the Royal Stat. Soc.}, 
+	Volume = {65},  
+	Pages = {331--342},
+	Year = 1902 
+}
+
+ 
+
+@article{Careyetal,
+	Author = {Carey, J.R. and Liedo, P. and Orozco, D.  and  Vaupel, J.W.}, 
+	Title = {Slowing of mortality rates at older ages in large Medfly 
+		cohorts},
+	Journal = {Science}, 
+	Volume = {258}, 
+	Pages = {457-61},
+	Year = 1992
+}
+
+@unpublished{CD.99,
+	Author = {Candes, E. J. and Donoho, D.L.},
+	Title = {Ridgelets:  a key to higher-dimensional intermittency?},
+	Note = {preprint},
+	Year = 	1999
+	}
+@article{cds.94,
+    Journal = JNnparSt,
+    Volume = 3,
+    Pages = {317--321},
+    Keywords = {Proportional hazard},
+    Author = {Chaudhuri, Probal and Doksum, Kjell and Samarov, Alex},
+    Title = {Regression Estimators Based on Conditional Quantiles},
+    Year = 1994
+}
+
+
+
+@unpublished {Chay,
+	Author = {Chay, K.Y.},
+	Year = 1995,
+	Title = { Evaluating the impact of the Civil Rights Act of 1964 of 1964
+	on the Economic Status of Black Men Using Censored Longitudinal,
+	Earnings Data},
+	note = {preprint}
+	}
+@inproceedings{Cox.62,
+	Author = {Cox, D.R.},
+	Title = {Comment on L.J. Savage's lecture "Subjective Probability and 
+			Statistical Practice"},
+  	Booktitle = {The Foundations of Statistical Inference},
+	Editor = {Barnard, G.A. and D.R. Cox},
+	Publisher = {London: Methuen},
+	Year = 1962
+	}
+@article {Cox.72,
+	Author = {Cox, D.R.},
+	Year = 1972,
+	Title = { Regression Models with Life Tables},
+	Journal = { J. of the Royal Statistical Society (B)},
+	Volume = { 34},
+	Pages = {187-220},
+	}
+@article {CsR.84,
+	Author = {\Csorgo, M. and \Revesz, P.},
+	Year = 1984,
+	Title = { Two approaches to constructing simultaneous confidence bounds for quantiles},
+	Journal = {Prob.  Math. Statist},
+	Volume = { 4},
+	Pages = {221-236},
+	}
+@article {Ef.91a,
+	Author = {Efron, B.},
+	Year = 1991,
+	Title = { Regression percentiles using asymmetric squared error loss },
+	Journal = { Statistica Sinica},
+	Volume = { 1},
+	Pages = {93-125},
+	}
+
+@article{cds.97,
+	Journal = AnlsStat,
+	Volume = 25,
+	Pages = {715--744},
+	Author = {Chaudhuri, P. and Doksum, K. and Samarov, A.}, 
+	Title = {On average derivitive quantile regression},
+	Year = 1997,
+}
+
+    
+@article{HM.88,
+    Author = {Hall, Peter and Martin, Michael A.},
+    Title = {Exact Convergence Rate of Bootstrap Quantile Variance
+            Estimator},
+    Year = 1988,
+    Journal = {Probability Theory and Related Fields},
+    Volume = 80,
+    Pages = {261--268}, 
+    Keywords = {Kernel estimator}
+} 
+
+@book {BSiM,
+	Author = {Barro, R. J. and X. Sala{-}i{-}Martin},
+	title = { Economic Growth},
+	Publisher = {McGraw-Hill:  New York},
+	Year = 1995,
+	}
+@article {BR.74,
+	Author = {Barrodale, I. and F. Roberts},
+	Title = { Solution of an overdetermined system of equations in the $\ell_1$ norm},
+	Journal = { Communications of the ACM}, 
+	Volume = { 17},
+	Pages = {319-320},
+	Year = 1974
+	}
+@article{BC.80,
+	Author = {Bartels, R. and A. Conn},
+	Title = { Linearly constrained discrete $\ell_1$ problems},
+	Journal = { Transactions of the ACM on Mathematical Software},
+	Volume = { 6},
+	Pages = {594-608},
+	Year = 1980,
+	}
+@unpublished{Sakata.98,
+	Author = {Sakata, S.},
+	Title = {Instrumental variable estimation based on mean absolute 
+		deviations},
+	Note = {preprint},
+	Year = 1998
+}
+
+@article{Wood.03,
+	Author = {Wood, S.},
+	Title = { Thin Plate Regression Splines},
+	Journal = JRSS-B,
+	Volume = 65,
+	Pages = {95--114},
+	Year = 2003,
+	}
+@book{OBSC,
+        Author = {Okabe, A. and B Boots and K Sugihara and S.N. Chiu},
+        Title = {Spatial Tesselations},
+        Publisher = {Wiley},
+        Year = 2000
+}
+@article{HH.85,
+            Author = {Hartigan, J. and P. Hartigan},
+            Title = {The dip test of unimodality},
+            Year = 1985,
+            Journal = {The Annals of Statistics},
+            Volume = 13,
+            Pages = {70--84},
+        }
+
+@article{MW.00,
+        Author = {Meyer, M. and M. Woodroofe},
+        Title = {On the degrees of freedom in shape-restricted regression},
+        Journal = AnlsStat,
+        Volume = {28},
+        Year ={2000},
+        Pages ={1083--1104}
+        }
+
+@article{DK.01,
+            Author = {Davies, P.L. and A. Kovac},
+            Title = {Local extremes, runs, strings and multiresolution},
+            Year = 2001,
+            Journal = {The Annals of Statistics},
+            Volume = 29,
+            Pages = {1--65},
+            Note = {with discussion},
+            Keywords = {Nonparametric estimation; Penalized least squares}
+        }
+@unpublished {Bed.96,
+	Author = {Bedard, K.},
+	Title = { School Quality and the Distribution of Male Earnings in {C}anada},
+	note = {preprint},
+	Year = 1996,
+	}
+@article {BYW,
+	Journal = CmpStDA,
+	Volume = { 19},
+	Pages = {613--630},
+	Author = {Bosch, Ronald J. and Ye, Yinyu and Woodworth, George G.},
+	Title = { A Convergent Algorithm for Quantile Regression With Smoothing
+	Splines},
+	Year = 1995,
+	}	
+@article {Bu.94,
+	Author = {Buchinsky, M.},
+	Title = { Changes in {US} Wage Structure 1963-87: 
+		An Application of Quantile Regression},
+	Journal = {Econometrica},
+	Volume = { 62},
+	Pages = {405-458},
+	Year = 1994,
+	}	
+@article {Bu.98,
+	Author = {Buchinsky, M.},
+	Title = {Recent Advances in Quantile Regression Models:
+		A practical guide for empirical research},
+	Journal = JHumRec,
+	Volume = { 33},
+	Pages = {88-126},
+	Year = 1998,
+	}
+@article {Bu.97,
+	Author = {Buchinsky, M.},
+	Title = {Women's return to education in the {U.S.}:  
+		Exploration by Quantile Regression},
+	Journal = JApEx,
+	Volume = { 13},
+	Pages = {1-30},
+	Year = 1997,
+}
+@article {Bu.01,
+	Author = {Buchinsky, M.},
+	Title = {Quantile regression with sample selection:
+		Estimating women's return to education in the U.S.},
+	Journal = EE,
+	Volume = 26,
+	Year = 2000,
+}
+
+@article{CG.98,
+	Journal = JEH,
+	Volume = 58,
+	Pages = {468-93},
+	Author = { Conley, T.G. and Galenson, D.W},
+	Title = {Nativity and Wealth in Mid-Nineteenth-Century Cities },
+	Year = 1998
+}
+
+@article{Chaud.91,
+    Journal = JMA,
+    Volume = 39,
+    Pages = {246--269},
+    Author = {Chaudhuri, Probal},
+    Title = {Global Nonparametric Estimation of Conditional Quantile
+            Functions and Their Derivatives},
+    Year = 1991
+}
+@article{chau:1991,
+    Author = {Chaudhuri, Probal},
+    Title = {Nonparametric Estimates of Regression Quantiles and Their
+            Local {B}ahadur Representation},
+    Year = 1991,
+    Journal = {The Annals of Statistics},
+    Volume = 19,
+    Pages = {760--777}
+}
+
+
+@article{CH.02,
+	Author = {Chernozhukov, V. and Hong, H.},
+	Title = {3~Step Censored Quantile Regression},
+	Journal = JASA,
+	Volume = 97,
+	Year = {2002},
+	Pages = {872--897}
+	}
+@article{CU.01,
+	Author = {Chernozhukov, V. and Umantsev, L.},
+	Title = {Conditional Value at Risk: Aspects of Modeling and Estimation},
+	Journal = EE,
+	Volume = 26,
+	Year = {2001},
+	Pages = {271-292}
+	}
+
+@article{Wiens.03,
+  	Author = {Wiens, D.P.},
+	Title = {Badly Weighted Least Squares -- Solution},
+	Journal = {Econometric Theory},
+	Volume = {19},
+	Pages = {701--703},
+	Year = 2003
+	  }
+@article{Daniels.54,
+	Author = {Daniels, H.E.},
+	Title = {Saddlepoint approximations in Statistics},
+	Journal = {Annals of Mathematical Statistics},
+	Volume = {25},
+	Pages = {631-650},
+	Year = {1954}
+}
+@unpublished{dJdWvD,
+	Author = { de Jongh, P.J. and T. de Wet, and P.J.U. van Deventer},
+	Title = {Saddlepoint Approximations for the Distributions of Regression
+			Quantiles},
+	Note = {preprint},
+	Year = {2003}
+}
+@article{van:1970,
+    author = {van Eeden, C.},
+    title = {Efficiency-robust estimation of location},
+    year = {1970},
+    journal = {The Annals of Mathematical Statistics},
+    volume = {41},
+    pages = {172--181}
+}
+@article{Sack:1975,
+    author = {Sacks, J.},
+    title = {An asymptotically efficient sequence of estimators of a location parameter},
+    year = {1975},
+    journal = {The Annals of Statistics},
+    volume = {3},
+    pages = {285--298},
+    keywords = {Adaptive estimation; Order statistics}
+}
+@article{Bera:1974,
+    author = {Beran, R.},
+    title = {Asymptotically efficient adaptive rank estimates in location models},
+    year = {1974},
+    journal = {The Annals of Statistics},
+    volume = {2},
+    pages = {63--74}
+}
+@article{Ston:1975,
+    author = {Stone, C. J.},
+    title = {Adaptive maximum likelihood estimators of a location parameter},
+    year = {1975},
+    journal = {The Annals of Statistics},
+    volume = {3},
+    pages = {267--284}
+}
+
+@book{Pf.82,
+	Author = {Pfanzagl, J.},
+	Title = { Contributions to a General Asymptotic Statistical Theory},
+	Publisher = {New York: Springer},
+	Year = {1982}
+}
+@inproceedings{Pf.76,
+	Author = {Pfanzagl, J.},
+	Title = { Investigating the Quantile of an Unknown Distribution},
+	Booktitle = {Contributions to Applied Statistics},
+	Editor = {Zeigler, W.J.},
+	Publisher = {Boston: Birkh\'auser},
+	Year = {1976}
+}
+@article{Spady.91,
+    author = {Spady, Richard H.},
+    title = {Saddlepoint approximations for regression models},
+    year = {1991},
+    journal = {Biometrika},
+    volume = {78},
+    pages = {879--889},
+    keywords = {Estimating equation; $L_1$ regression}
+}
+@unpublished{Chern.05,
+	Author = {Chernozhukov, V.},
+	Title ={Inference for Extremal Conditional Quantile Models},
+	Note = {preprint},
+	Year = 2004
+}
+@article{Chern.04,
+	Author = {Chernozhukov, V.},
+	Title ={Extremal Quantile Regression},
+    	Journal = {The Annals of Statistics},
+	Note = {forthcoming},
+	Year = 2004
+}
+@unpublished{Chern.99,
+	Author = {Chernozhukov, V.},
+	Title ={Nonparametric extreme regression quantiles},
+	Note = {preprint},
+	Year = 1999
+}
+
+@article{Cole,
+	Author = {Cole, T.J.},
+	Title = {Fitting smoothed centile curves to reference data, with
+		discussion},
+	Journal = JRSSA,
+	Volume = 151,
+	Pages = {385-418},
+	Year = 1988
+}
+
+@article{HBG.96,
+    Author = {Hyndman, Rob J. and Bashtannyk, David M. and Grunwald, Gary
+             K.},
+    Title = {Estimating and Visualizing Conditional Densities},
+    Year = 1996,
+    Journal = {Journal of Computational and Graphical Statistics},
+    Volume = 5,
+    Pages = {315--336},
+   }
+@article{CTS.99,
+	Author = {Cade, B.S. and Terrell, J.W. and Schroeder, R.L.},
+	Title = { Estimating effects of limiting factors with regression
+		quantiles},
+	Journal = {Ecology},
+	Volume = {80},
+	Pages = {311-323},
+	Year = 1999
+}
+
+@article{Bjerkedal.60,
+    Journal = {American Journal of Hygiene}, 
+    Volume = 72,
+    Pages = {130--148},
+    Author = {Bjerkedal, T.},
+    Title = {Acquisition of resistance in Guinea pigs infected with 
+		different doses of virulent tubercle bacilli},
+    Year = 1960
+}
+@article{D.74,
+    Journal = AnlsStat,
+    Volume = 2,
+    Pages = {267--277},
+    Keywords = {Shift function},
+    Author = {Doksum, Kjell},
+    Title = {Empirical Probability Plots and Statistical Inference for
+            Nonlinear Models in the Two-sample Case},
+    Year = 1974
+}
+
+
+
+      @article{jure:proc:1994,
+          Author = {Jure\v{c}kov\'a, Jana and Proch\'azka, Bohum\'{\i}r},
+          Title = {Regression Quantiles and Trimmed Least Squares Estimator in
+                  Nonlinear Regression Model},
+          Year = 1994,
+          Journal = {Journal of Nonparametric Statistics},
+          Volume = 3,
+          Pages = {201--222},
+          Keywords = {Asymptotic theory}
+      }
+
+@inproceedings{BM.51,
+    Author = {Brown, G. W. and Mood, A. M.},
+    Title = {On Median Tests for Linear Hypotheses},
+    Year = 1951,
+    Booktitle  = {Proceedings of the Second Berkeley Symposium on
+                 Mathematical Statistics and Probability},
+    Publisher = {University of California Press (Berkeley)},
+    Pages = {159--166},
+    Keywords = {Analysis of variance; Friedman test; Interaction;
+               Asymptotics}  
+}  
+  
+@book{Dantzig.51,
+	Author = {Dantzig, G.},
+	Title = { Linear Programming and Extensions},
+          Year = 1951,
+          Publisher= {Princeton},
+      }
+@book{AB.57,
+	Author = {Aitchison, J. and Brown, J.A.C.},
+	Title = { The Lognormal Distribution},
+          Year = 1957,
+          Publisher= {Cambridge U. Press},
+      }
+
+@book{ferg:1996,
+          Author = {Ferguson, T. S.},
+          Title = {A Course in Large Sample Theory},
+          Year = 1996,
+          Publisher = {Chapman \& Hall},
+          Pages = {245}
+      }
+@book{ferguson:1967,
+          Author = {Ferguson, T. S.},
+          Title = {Mathematical Statistics: A Decision Theoretic Approach },
+          Year = 1967,
+          Publisher = {Academic Press},
+      }
+@book{geer:2000,
+          Author = {van de Geer, S.},
+          Title = {Empirical Processes in M-Estimation},
+          Year = 2000,
+          Publisher= {Cambridge U. Press},
+      }
+@article{MvG.97,
+    Author = {Mammen, Enno and van de Geer, Sara},
+    Title = {Locally Adaptive Regression Splines},
+    Year = 1997,
+    Journal = {The Annals of Statistics},
+    Volume = 25,
+    Pages = {387--413},
+    Keywords = {Nonparametric estimation; Penalized least squares}
+}
+
+@article{rams:1988,
+          Author = {Ramsay, J. O.},
+          Title = {Monotone Regression Splines in Action (C/R: P442-461)},
+          Year = 1988,
+          Journal = {Statistical Science},
+          Volume = 3,
+          Pages = {425--441},
+          Keywords = {Nonlinear regression; Principal components; Dose-response
+                     curve; Polynomial regression}
+      }
+
+
+
+
+
+@article{DCS.98,
+	Author = {Donoho, D. and Chen, S.S. and Saunders, M},
+	Title = {Atomic decomposition by basis pursuit},
+	Journal = {SIAM J. of Scientific Computing},
+	Volume = {20},
+	Pages = {33--61},
+	Year = 1998,
+}
+
+
+@article{ron.85,
+           Author = {Ronchetti, Elvezio},
+           Title = {Robust Model Selection in Regression},
+           Year = 1985,
+           Journal = {Statistics \& Probability Letters},
+           Volume = 3,
+           Pages = {21--23},
+           Keywords = {Akaike information criterion}
+       }
+@article {Kiefer:1959,
+        Author = {Kiefer, J.},
+        Year = 1959,
+        Title = { K-sample analogues of the {Kolmogorov-Smirnov} and
+                {C}ram\'{e}r-von {M}ises tests},
+        Journal = {Ann. Math. Statist},
+        Volume = {30},
+        Pages = {420-447},
+        }
+
+
+@article{delong:1981,
+    Journal = CommStA,
+    Volume = 10,
+    Pages = {2197--2213},
+    Keywords = {Kolmogorov test; Repeated significance testing; Stopping
+               time; Wiener process},
+    Author = {DeLong, David M.},
+    Title = {Crossing Probabilities for a Square Root Boundary By a
+            {B}essel Process (Corr: {V}12 P1699)},
+    Year = 1981
+}
+@article{He.97,
+    author = {He, Xuming},
+    title = {Quantile curves without crossing},
+    year = {1997},
+    journal = {The American Statistician},
+    volume = {51},
+    pages = {186--192},
+    keywords = {Statistical Computing and Graphics; Linear model; Regression quantile; Smoothing; Spline}
+}
+
+
+
+
+@unpublished{Donoho.99,
+	Author = {Donoho, D. L.},
+	Title = {Ridge functions and orthonormal ridgelets},
+	Note = {preprint}, 
+	Year = 	1999
+}
+
+@article{durb.75,
+    Journal = Biomtrka,
+    Volume = 62,
+    Pages = {5--22},
+    Keywords = {Composite hypothesis; Goodness of fit; Nuisance parameters;
+               Sample distribution function},
+    Author = {Durbin, J.},
+    Title = {{K}olmogorov-{S}mirnov Tests When Parameters Are Estimated With
+            Applications to Tests of Exponentiality and Tests on Spacings},
+    Year = 1975
+}
+
+
+
+@book{Durbin.73,
+	Author = {Durbin, J.},
+	Title = {Distribution theory for tests based on the sample distribution
+		function},
+	Publisher = {SIAM},
+	Year = 1973
+}
+
+@book{ET.93,
+      author = {Efron, Bradley and Tibshirani, Robert},
+          title = {An introduction to the bootstrap},
+	      year = {1993},
+	          pages = {436},
+		      publisher = {Chapman \& Hall Ltd}
+}
+
+
+@book{efro:1982,
+          Author = {Efron, B.},
+          Title = {The Jacknife, the Bootstrap and Other Resampling Plans},
+          Year = 1982,
+	  Publisher = {SIAM},
+}
+@article{efro:1979,
+          Author = {Efron, B.},
+          Title = {Bootstrap Methods: {A}nother Look At the Jackknife},
+          Year = 1979,
+          Journal = {The Annals of Statistics},
+          Volume = 7,
+          Pages = {1--26},
+          Keywords = {Resampling; Subsample values; Nonparametric estimation;
+                     Error rate; Discriminant analysis; Nonlinear regression;
+                     Lectures, Wald}
+      }
+
+@article{ef.91b,
+    Journal = JASA,
+    Volume = 87,
+    Pages = {98--107},
+    Keywords = {Regression},
+    Author = {Efron, Bradley},
+    Title = {Poisson Overdispersion Estimates Based on the Method of
+            Asymmetric Maximum Likelihood},
+    Year = 1992
+}
+
+
+
+@article {E.82,
+	Author = {Engle, R. F.},
+	Year = 1982,
+	Title = { Autoregressive conditional heteroscedasticity with 
+		estimates of the variance of United Kingdom inflation},
+	Journal = {Econometrica},
+	Volume = { 50},
+	Pages = {987-1007},
+	}
+
+@article{Taylor.99,
+	Author = {Taylor, J.},
+	Title = {A Quantile Regression Approach to Estimating the 
+		Distribution of Multiperiod Returns},
+	Journal = {Journal of Derivatives},
+	Pages = {64-78},
+	Year = 1999,
+	}
+@article{EidSho,
+	Journal = EL,
+	Volume = 58,
+	Pages = {345-50},
+	Author = {Eide, E. and Showalter, M.H.},
+	Title = {The Effect of School Quality on Student Performance: A
+               Quantile Regression Approach },
+	Year = 1998
+}
+
+@unpublished{EM.99,
+	Author = {Engle, R.F. and Manganelli, S.},
+	Title = {CaViaR:  Conditional Autoregressive Value at Risk by
+		Regression Quantiles },
+	Note = {preprint},
+	Year = 1999
+}
+
+@article{engl:hols:rupp.88,
+    Journal = ScandJSt,
+    Volume = 15,
+    Pages = {147--159},
+    Keywords = {Robust estimation; Strong mixing},
+    Author = {Englund, Jan-Eric and Holst, Ulla and Ruppert, David},
+    Title = {Recursive $M$-estimators of Location and Scale for Dependent
+            Sequences},
+    Year = 1988
+}
+
+
+
+
+
+@article{ES.98,
+	Author ={Eide, E. and M.H. Showalter},
+	Title = {The effect of school quality on student performance:
+A quantile regression approach},
+	Journal = EcLet,
+	Volume ={58},
+	Pages = {345-350},
+	Year = 1998,
+	}
+@inproceedings{Huber.67,
+	Author = {Huber, P.},
+	Title = {Behavior of maximum likelihood estimates under nonstandard conditions},
+	Booktitle = {Proc. 5th Berkeley Sympt. Math. Statist. Prob.},
+	Publisher = {Prentice-Hall: New York},
+	Year = 1967,
+	}
+@inproceedings{Efron.67,
+	Author = {Efron,B.},
+	Title = {The Two Sample Problem with Censored Data},
+	Booktitle = {Proc. 5th Berkeley Sympt. Math. Statist. Prob.},
+	Publisher = {Prentice-Hall: New York},
+	Year = 1967,
+	}
+@inproceedings{Cizek,
+	Author = {Cizek, P.},
+	Title = {Quantile regression},
+	Booktitle = {XploRe Application Guide},
+	Editor = {\Hardle, W. and Hlavka, Z. and  Klinke, S.}, 
+	Publisher = {Springer-Verlag: Heidelberg},
+	Year = 2000,
+	}
+
+@inproceedings{F.1997,
+	author = {Fitzenberger,  B.},
+	title = {Computational aspects of censorted quantile regression},
+	booktitle = {$L_1$-Statistical Procedures and Related Topics},
+	series = {IMS Lecture Notes-Monograph Series},
+	editor = {Dodge, Y.},
+	Year = 1997
+}
+
+@article{FG.96,
+	Author = {Fenton, V.M. and A.R. Gallant},
+	Title = { Qualitative and Asymptotic Performance of SNP Density
+		Estimators},
+	Journal = JEx,
+	Volume = {74},
+	Pages = {77 -118},
+	Year = 1996
+	}
+@article{MTY.93,
+	Author = {Mizuno, S. and  M.J. Todd and Y. Ye},
+	Year = {1993},
+	Title = { On adaptive-step primal dual interior point algorithms 
+		for linear programming},
+	Journal = {Mathematics of Operations Research}, 
+	Volume = {18}, 
+	Pages = {964--981},
+	}
+
+@article{SSZ.91,
+	Author = {Sonnevend, G. and  J. Stoer and G. Zhao},
+	Year = {1991},
+	Title = {On the complexity of following the central path of linear 
+		programs by linear extrapolation II}, 
+	Journal = {Mathematical Programming}, 
+	Volume = {52}, 
+	Pages = {527--553},
+	}
+
+@book{BCW.88,
+	Author = {Becker, R.A. and Chambers, J.M. and Wilks, A.R.},
+	Title = {The New S Language:  A Programming Environment for Data
+		Analysis and Graphics},
+	Publisher = {Wadsworth: Pacific Grove},
+	Year = 1988,
+	}
+@book{FM,
+	Author = {Fiacco, A.V. and G.P. McCormick},
+	Title = {  Nonlinear Programming: Sequential Unconstrained 
+		Minimization Techniques},
+	Publisher = {Wiley:  New York},
+	Year = 1968,
+	}
+@book{F.99,
+	Author = {Fitzenberger, B.},
+	Title = {Wages and employment across skill groups},
+	Publisher = {Physica-Verlag: Heidleberg},
+	Year =1999,
+	}
+@inproceedings {Fitz.96,
+	Author = {Fitzenberger, B.},
+	Year = 1996,
+	Title = { A Guide to Censored Quantile Regressions},
+	Editor = {C.R. Rao and G.S. Maddala}, 
+	Booktitle = { Handbook of Statistics},
+	Publisher = {North-Holland:  New York}
+	}
+@article {Fr.56,
+	Author = {Frisch, R.},
+	Year = 1956,
+	Title = { La R\'{e}solution des probl\`{e}mes de programme lin\`{e}aire par la m\`{e}thode du potential logarithmique},
+	Journal = {Cahiers du Seminaire d'Econometrie},
+	Volume = { 4},
+	Pages = {7-20},
+	}
+@article {Gew.89,
+	Author = {Geweke, J.},
+	Year = 1989,
+	Title = { Exact predictive densities for linear models with ARCH disturbances},
+	Journal = { J. of Econometrics},
+	Volume = { 40},
+	Pages = {63-86},
+	}
+@book{Nazareth,
+	Author = {Nazareth, J.L.},
+	Year = 1994,
+	Title = {The Newton-Cauchy Framework: 
+		A Unified Approach to Unconstrained Nonlinear Minimization},
+	Publisher = {Springer},
+	}
+@book{GMW,
+	Author = {Gill, P. and  Murray, W. and Wright, M.},
+	Year = 1991,
+	Title = { Numerical Linear Algebra and Optimization},
+	Publisher = {Westview Press},
+	}
+@article {GMSTW,
+	Author = {Gill, P. and  Murray, W. and  Saunders, M. and  
+		Tomlin, T. and Wright, M.},
+	Year = 1986,
+	Title = { On projected Newton barrier methods for linear programming 
+		and an equivalence to Karmarker's projective method},
+	Journal = { Mathematical Programming},
+	Volume = { 36},
+	Pages = {183-209},
+	}
+@unpublished {Gin.94,
+	Author = {Ginther, D.},
+	Year = 1994,
+	Title = { A Nonparametric analysis of the {U.S.} earnings distribution},
+	note = {preprint}
+	}
+@article {Gold,
+	Author = {Goldberg, P.K.},
+	Year = 1996,
+	Title = { Dealer Price Discrimination in New Car Purchases Evidence from the Consumer Expenditure Survey},
+	Journal = {Journal of Political Economy},
+	Volume = { 104},
+	Pages = {622-654},
+	}
+@inproceedings{gold:1983,
+          Author = {Goldberger, A. S.},
+          Title = {Abnormal Selection Bias},
+          Year = 1983,
+          Booktitle  = {Studies in Econometrics, Time Series, and Multivariate
+                       Statistics},
+          Publisher = {Academic (New York; London)},
+          Pages = {67--84}
+      }
+
+
+@article{FR.75,
+	Author = { Floyd, R.W. and Rivest, R.L.}, 
+	Title = { Expected Time Bounds for Selection},
+	Journal = {Communications of the ACM}, 
+	Volume = {18}, 
+	Pages= {165-173},
+	Year = 1975
+}
+
+
+
+
+@article{Frisch.56,
+	Author = {Frisch, R.},
+	Title = {La R\'{e}solution des probl\`{e}mes de programme 
+		lin\'{e}aire par la m\'{e}thode du potential logarithmique},
+	Journal = {Cahiers du S\'{e}minaire d'Econometrie}, 
+	Volume = {4}, 
+	Pages = {7-20},
+	Year = 1956
+}
+
+@article{FYI.20,
+	Author = {Edgeworth, F.Y.},
+	Title = {The Element of Chance in Competitive Examinations},
+	Journal = {JRSS}, 
+	Volume = {53}, 
+	Pages = { 644--663},
+	Year = 1920
+}
+@article{FYI.23,
+	Author = {Edgeworth, F.Y.},
+	Title = {On the use of medians for reducing observations relating 
+		to several quantities},
+	Journal = {Philosophical Magazine}, 
+	Volume = {46}, 
+	Pages = { 1074--1088},
+	Year = 1923
+}
+
+@article{Wagner.59,
+	Author = {Wagner, H.M.},
+	Title = {Linear programming techniques for regression analysis},
+	Journal = {Journal of American  Statistical Association}, 
+	Volume = {54}, 
+	Pages = {206-212},
+	Year = 1959
+	}
+
+
+@article{CCF.55,
+	Author = {Charnes, A. and W.W. Cooper and R.O. Ferguson}, 
+	Title = {Optimal estimation of executive compensation by linear programming},
+	Journal = {Management Science}, 
+	Volume = {1}, 
+	Pages = {138--151},
+	Year = 1955
+	}
+
+
+@article{FYI.88,
+	Author = {Edgeworth, F.Y.},
+	Title = {On a new method of reducing observations relating to several quantities}, 
+	Journal = {Philosophical Magazine}, 
+	Volume = {25}, 
+	Pages = { 184--191},
+	Year = 1888
+}
+
+
+
+@inproceedings{G.97,
+	author = {Gutenbrunner,  C.},
+	title = {Regression Rank Statistics},
+	booktitle = {$L_1$-Statistical Procedures and Related Topics},
+	series = {IMS Lecture Notes-Monograph Series},
+	editor = {Dodge, Y.},
+	Year = 1997
+}
+
+
+
+@article{gjkp.93,
+    Journal = JNnparSt,
+    Volume = 2,
+    Pages = {307--331},
+    Keywords = {Quantile},
+    Author = {Gutenbrunner, C. and Jure\v{c}kov\'a, J. and Koenker, R. and
+             Portnoy, S.},
+    Title = {Tests of Linear Hypotheses Based on Regression Rank Scores},
+    Year = 1993
+}
+
+
+@book{gree:silv.94,
+    Publisher = {ChapmnHall:Lnd},
+    Pages = 182,
+    Author = {Green, P. J. and Silverman, B. W.},
+    Title = {Nonparametric Regression and Generalized Linear Models: {A}
+            Roughness Penalty Approach},
+    Year = 1994
+}
+
+
+@unpublished{GT.97,
+	Author = {Gallant, A.R. and G. Tauchen},
+	Title = { The Relative Efficiency of Method of Moments Estimators},
+	Note = {preprint},
+	Year = 1997
+	}
+@inproceedings{H.97,
+	author = {\Huskova,  M.},
+	title = {$L_1$ test procedures for detection of change},
+	booktitle = {$L_1$-Statistical Procedures and Related Topics},
+	series = {IMS Lecture Notes-Monograph Series},
+	editor = {Dodge, Y.},
+	Year = 1997
+}
+
+
+@article{Hahn,
+	Author = {Hahn, J.},
+	Title = {Bootstrapping quantile regression models},
+	Journal = ET,
+	Volume = 11,
+	Pages = {105-121},
+	Year = 1995,
+	}
+@article {Bu.95,
+	Author = {Buchinsky, M.},
+	Year = 1995,
+	Title = { Quantile Regression, the Box-Cox Transformation Model 
+		and {U.S.} Wage Structure 1963-1987 },
+	Journal = {J. of Econometrics},
+	Volume = { 65},
+	Pages = {109-154},
+	}
+
+@article{buch.1995,
+           Author = {Buchinsky, M.},
+           Title = {Estimating the Asymptotic Covariance Matrix for Quantile
+                   Regression Models. {A} {M}onte {C}arlo Study},
+           Year = 1995,
+           Journal = {Journal of Econometrics},
+           Volume = 68,
+           Pages = {303--338},
+           Keywords = {Bootstrap; Kernel estimator}
+       }
+
+
+@unpublished {Bu.96,
+	Author = {Buchinsky, M.},
+	Year = 1996,
+	Title = { Women's `return to education' in the {U.S.}:
+	Exploration by Quantile Regression with Nonparametric Sample,
+	Selection Correction},
+	note = {preprint} ,
+	}
+@inproceedings {Ch.94,
+	Author = {Chamberlain, G.},
+	Year = 1994,
+	Title = { Quantile regression, censoring and the structure of wages},
+	Booktitle = {  Advances in Econometrics},
+	Editor = {Sims, C.} , 
+	Publisher = {Elsevier:  New York},
+	}
+@unpublished {Chak.99,
+	Author = {Chakraborty, B.},
+	Title = { On multivariate quantile regression},
+	Note = {preprint},
+	Year = 1999
+	}
+@unpublished {Chak,
+	Author = {Chakraborty, B.},
+	Year = 1996,
+	Title = { On multivariate median regression},
+	note = {forthcoming in {\it Bernoulli}}
+	}
+@article {CC,
+	Author = {Chakraborty, B. and Chaudhuri, P.},
+	Year = 1995,
+	Title = { On an adaptive transformation-retransformation estimate of multivariate location},
+	Journal = { J. of the Royal Statistical Society (B) },
+	Note = {forthcoming}
+	}
+@article {Chd.96,
+	Author = {Chaudhuri, P.},
+	Year = 1996,
+	Title = { On a geometric notion of quantiles for multivariate data},
+	Journal = {J. of the American Statistical Association},
+	Volume = { 91},
+	Pages = {862-872},
+	}
+@inproceedings{Chd.92,
+        Author = {Chaudhuri, P.},
+        Year = 1992,
+        Title = {Generalized regression quantiles:  
+		Forming a useful toolkit for robust linear regression},
+        Booktitle =  {Proceedings of the Second, International Conference 
+		on Statistical Data Analysis based on the $L_1$ norm and related methods},
+        Publisher = {North-Holland:  New York},
+	}
+@article {F.37,
+	Author = {Friedman, M.},
+	Year = 1937,
+	Title = {The use of ranks to avoid the assumption of normality
+		implicit in the analysis of variance},
+	Journal = {J. of the American Statistical Association},
+	Volume = {32},
+	Pages = {675--701},
+	}
+@article{Spear.04,
+	Author = {Spearman, C.}, 
+	Year = {1904}, 
+	Title = {The proof and measurement of association between two things}, 
+	Journal = {Am. J. Psychol.},
+	Volume = {15}, 
+	Pages = {72--101},
+	}
+@article{CS.58,
+	Author = {Chernoff, H. and I.R. Savage},
+	Year = {1958},
+	Title = {Asymptotic normality and efficiency of certain non-parametric 
+		test statistics}, 
+	Journal = {Ann. Math. Stat.}, 
+	Volume = {29}, 
+	Pages = {972--994},
+	}
+@article{HL.56,
+	Author = {Hodges, J.L. and Lehmann, E.L.},
+	Year = {1956},
+	Title = {The efficiency of some nonparametric competitors of the t-test}, 
+	Journal = {Ann. Math. Stat.}, 
+	Volume = {27}, 
+	Pages = {324--335},
+	}
+
+@article{Hoef.48,
+	Author = {Hoeffding, W.},
+	Year = {1948}, 
+	Title = {A class of statistics with asymptotically normal distributioni}, 
+	Journal = {Annals of Math. Stat.}, 
+	Volume = {19}, 
+	Pages = {293--325},
+	}
+
+@article{HP.36,
+	Author = {Hotelling, H. and Pabst, M.R.}, 
+	Year = {1936},
+	Title = { Rank correlation and tests of significance involving no 
+		assumption of normality}, 
+	Journal = {Annals of Math. Stat}, 
+	Volume = {7}, 
+	Pages = {29--43},
+	}
+@article{han.87,
+ 	Author = {Han, A.K.},
+	Title = { Nonparametric analysis of a generalized regression model},
+	Journal = JEx,
+	Volume = 35,
+	Pages = {303-318},
+	Year = 1987
+	}
+@article{HarelPuri,
+	Author = {Harel, Michel, Puri, Madan L.},
+	Title = {Autoregression quantiles and related rank score processes 
+		for generalized random coefficient autoregressive process},
+	Journal = JSPI,
+	Volume = 68,
+	Pages = {271-294},
+	Year = 1998
+}
+
+@article{hast:stue.89,
+    Journal = JASA,
+    Volume = 84,
+    Pages = {502--516},
+    Keywords = {Errors in variables; Principal components},
+    Author = {Hastie, Trevor and Stuetzle, Werner},
+    Title = {Principal Curves},
+    Year = 1989
+}
+
+@article{heckman.96,
+	author =  {Heckman, J.J.}, 
+	title = {Randomization as an Instrumental Variable}, 
+	journal = {The Review of Economics and Statistics}, 
+	Pages = {336--340},
+	Volume = {78},
+	Year = 1996
+}
+
+
+@article{heck.79,
+          Author = {Heckman, James J.},
+          Title = {Sample Selection Bias As a Specification Error},
+          Year = 1979,
+          Journal = {Econometrica},
+          Volume = 47,
+          Pages = {153--161}
+      }
+ 
+@article{KHM,
+	Author = {Kocherginsky, M. and  X. He and Y. Mu},
+	Title = {Practical Confidence Intervals for Regression
+	  Quantiles},
+	Journal = {J. of Comp. and Graphical Stat.},
+	Note = {forthcoming},
+	Year = 2004
+}
+@article{HeHu,
+	Author = {He, X. and Hu, F.},
+	Title = {Markov chain marginal bootstrap},
+	Journal = JASA,
+	Volume = 97,
+	Pages = {783--795},
+	Year = 2002
+}
+
+
+@article{HKS.98,
+	Pages = {101-119},
+	Journal = JASA,
+	Volume = 93,
+	Title = {Triogram Models},
+	Author = {Hansen, M. and Kooperberg, C. and Sardy, S.},
+	Year = 1998
+}
+
+
+
+@article{HN.99,
+    Journal = {Computational Statistics},
+    Volume = 14,
+    Pages = {315--337},
+    Author = {He, X. and Ng, P.},
+    Title = {COBS: qualitatively constrained smoothing via linear programming},
+    Year = 1999
+	}
+
+@article{sidd.60,
+	Author = {Siddiqui, M.}, 
+	Title = {Distribution of Quantiles from a Bivariate Population},
+	Journal = {Journal of Research of the National Bureau of Standards},
+	Volume = 64, 
+	Pages= {145--150},
+	Year = 1960,
+	}
+
+
+@article{bofi:1975,
+          Author = {Bofinger, E.},
+          Title = {Estimation of a Density Function Using Order Statistics},
+          Year = 1975,
+          Journal = {The Australian Journal of Statistics},
+          Volume = 17,
+          Pages = {1--7}
+      }
+
+
+@article{HNP.98,
+    Journal = JRSS-B,
+    Volume = 60,
+    Pages = {537--550},
+    Author = {He, X. and Ng, P. and Portnoy, S.},
+    Title = {Bivariate quantile smoothing splines},
+    Year = 1998
+}
+
+
+
+
+
+@inproceedings{hols.85,
+    Booktitle  = ContProbSt,
+    Pages = {  179-- 188},
+    Author = {Holst, U.},
+    Title = {Recursive Estimation of Quantiles },
+    Editor = {G. Lindgren},	
+    Year = 1985
+}
+
+
+
+@article{hols.87,
+    Journal = SqtlAnly,
+    Volume = 6,
+    Pages = {219--237},
+    Keywords = {Stochastic approximation},
+    Author = {Holst, U.},
+    Title = {Recursive Estimation of Quantiles Using Recursive Kernel
+            Density Estimators},
+    Year = 1987
+}
+
+
+@article{hono:powe.94,
+    Journal = JEx,
+    Volume = 64,
+    Pages = {241--278},
+    Keywords = {Semiparametric model; $M$-estimator},
+    Author = {Honor\'e, Bo E. and Powell, J. L.},
+    Title = {Pairwise Difference Estimators of Censored and Truncated
+            Regression Models},
+    Year = 1994
+}
+@book{Doornik,
+	Author = {Doornik, J.A.},
+	Title ={Ox:  An object oriented matrix programming language},
+	Publisher = {Thompson:  London},
+	Year = 1996,
+	}
+
+@article{horo,
+	Author = {Horowitz, J.},
+	Title = {A Smoothed Maximum Score Estimator for the Binary 
+		Response Model},
+	Journal = Econmtca,
+	Volume = {60},
+	Pages = {505-531},
+	Year = 1992
+	}
+@article{guilbaud.79,
+    Author = {Guilbaud, Oliver},
+    Title = {Interval Estimation of the Median of a General Distribution},
+    Year = 1979,
+    Journal = {Scandinavian Journal of Statistics},
+    Volume = 6,
+    Pages = {29--36},  
+}  
+@article{horo.97,
+	Author = {Horowitz, J.},
+	Title =	{Bootstrap methods for median regression models},
+	Journal = Econmtca,
+	Volume = {66},
+	Pages = {1327-1352},
+	Year = 1998
+	}
+@inproceedings{HP:97,
+	Author = {He, X. and S. Portnoy},
+	Title = {Asymptotics of the Deepest Line},
+	Booktitle = {Applied Statistical Science III:  Nonparametric
+	  Statistics and Related Topics},
+	Editor = {Ahmed, S. E. and M. Ahsanullah and B.K. Sinha}, 
+	Year = 1998
+	}
+@article{HSS.98,
+	Author={Holm, S. and  Svensson, E. and Stromland, K. },
+      	Title = {Fitting age related reference intervals to ocular axial 
+		length in children using a four-parameter curve family},
+      	Journal ={ Biometrical J.},
+	Volume =  40, 
+	Pages = {281-293},
+	Year = 1998 
+}
+
+@article{hzjkp,
+    Journal = EnvrMtrc,
+    Volume = 8,
+    Pages = {651--660},
+    Keywords = {Autoregression},
+    Author = {Hallin, Marc and Zahaf, Toufik and Jure\v{c}kov\'a, Jana and
+             Kalvova, Jaroslava and Picek, Jan},
+    Title = {Non-parametric Tests in {A}R Models With Applications to
+            Climatic Data},
+    Year = 1997
+}
+
+
+
+      @article{jure:sen:1984,
+          Author = { Jure\v{c}kov\'a, Jana and Sen, Pranab Kumar},
+          Title = {On Adaptive Scale-equivariant $M$-estimators in Linear Models},
+          Year = 1984,
+          Journal = {Statistics \& Decisions Supplement Issue},
+          Volume = 1,
+          Pages = {31--46},
+          Keywords = {Regression quantile}
+      }
+
+
+
+@article{J.77,
+          Author = {Jure\v{c}kov\'a, Jana},
+          Title = {Asymptotic Relations of $M$-estimates and $R$-estimates in
+                  Linear Regression Model},
+          Year = 1977,
+          Journal = {The Annals of Statistics},
+          Volume = 5,
+          Pages = {464--472}
+      }
+
+@article{Jur.91,
+	Author = { Jure\v{c}kov\'a, J.},
+	Year = 1991,
+	Title = { Tests of {K}olmogorov-{S}mirnov type based on 
+		regression rank scores},
+	Journal = { Transactions of the 11th Prague Conference on Information Theory and Statistical Decision Functions},
+	editor = {Visek, J.A.} , 
+	Publisher = {Academia:  Prague},
+	}
+@article {Karm,
+	Author = {Karmarker, N.},
+	Year = 1984,
+	Title = { A new polynomial time algorithm for linear programming},
+	Journal = { Combinatorica},
+	Volume = { 4},
+	Pages = {373-395},
+	}
+@article{Bahadur.66,
+    author = {Bahadur, R. R.},
+    title = {A note on quantiles in large samples},
+    year = {1966},
+    journal = {The Annals of Mathematical Statistics},
+    volume = {37},
+    pages = {577--580}
+}
+
+@article{Kiefer.67,
+    author = {Kiefer, J.},
+    title = {On {B}ahadur's representation of sample quantiles},
+    year = {1967},
+    journal = {The Annals of Mathematical Statistics},
+    volume = {38},
+    pages = {1323--1342},
+}
+
+@article {Kfr.59,
+	Author = {Kiefer, J.},
+	Year = 1959,
+	Title = { K-sample analogues of the {Kolmogorov-Smirnov} and 
+		{C}ram\'{e}r-von {M}ises tests},
+	Journal = {Ann. Math. Statist},
+	Volume = { 30}, 
+	Pages = {420-447},
+	}
+
+
+
+      @article{DD.97,
+          Author = {Davis, Richard A. and Dunsmuir, William T. M.},
+          Title = {Least Absolute Deviation Estimation for Regression With 
+			{A}RMA Errors},
+          Year = 1997,
+          Journal = {Journal of Theoretical Probability},
+          Volume = 10,
+          Pages = {481--497},
+          Keywords = {Central limit theorem}
+      }
+
+
+@article{HJ.99,
+	Author = {Hallin, M. and  Jure\v{c}kov\'a, J.},
+	Title = {Optimal tests for autoregressive models based 
+		on autoregression rank scores},
+          Journal = {The Annals of Statistics},
+          Volume = 27,
+          Pages = {1385--1414},
+	  Year = 1999,
+	}
+@article{mize:well:1998,
+          Author = {Mizera, Ivan and Wellner, Jon A.},
+          Title = {Necessary and Sufficient Conditions for Weak Consistency of
+                  the Median of Independent But Not Identically Distributed
+                  Random Variables},
+          Year = 1998,
+          Journal = {The Annals of Statistics},
+          Volume = 26,
+          Pages = {672--691},
+          Keywords = {Empirical distribution}
+      }
+
+@unpublished {eBH.99,
+	Title = {$L_1$ Estimation in linear models with heterogeneous 
+		white noise},
+	Author = { El Bantli, F. and Hallin, M.},
+	Note = {preprint},
+	Year = 1999
+	}
+
+
+@unpublished {mizera.99,
+	Author = {Mizera, I.},
+	Title = {On continuity:  another look at qualitative robustness},
+	Note = {preprint},
+	Year = 1999 ,
+	}
+@article {smirnov.52,
+	Author = {Smirnov, N. V.},
+	Title = {Limit Distributions for the Terms of a Variational Series},
+	Year = 1952,
+	Journal = {AMS Translations},
+	Volume = {67},
+	}
+
+@article{elli:1998,
+          Author = {Ellis, Steven P.},
+          Title = {Instability of Least Squares, Least Absolute Deviation and
+                  Least Median of Squares Linear Regression (Disc: P344-350)},
+          Year = 1998,
+          Journal = {Statistical Science},
+          Volume = 13,
+          Pages = {337--344},
+          Keywords = {Collinearity}
+      }
+         
+@article{Chappell.89,
+    Author = {Chappell, Rick},
+    Title = {Fitting best lines to data, with applications to allometry},
+    Year = 1989,
+    Journal = {J. Theor. Biology},
+    Volume = 138,
+    Pages = {235--256}
+}
+    
+
+@article {KP.00,
+	Author = {Koenker, R. and  S. Portnoy},
+	Title = { Some pathological regression 
+		asymptotics under stable conditions},
+	Journal = { Stat. and Prob. Letters},
+	Volume = { 50},
+	Pages = {219--228},
+	Year = 2000
+	}
+@article {KNP.94,
+	Author = {Koenker, R. and  P. Ng and S. Portnoy},
+	Title = { Quantile Smoothing Splines},
+	Journal = { Biometrika},
+	Volume = { 81},
+	Pages = {673-80},
+	Year = 1994
+	}
+@article {KMSW.94,
+	Author = {Koenker, R. and J.A.F. Machado and C. Skeels and A.H. Welsh.},
+	Title = { A note on Amemiya's form of the weighted least squares 
+			estimator},
+	Journal = { Australian Journal of Statistics},
+	Volume = { 35},
+	Pages = {155-174},
+	Year = 1994,
+	}
+@article {KMSW.93,
+	Author = {Koenker, R.  and J.A.F. Machado and  C. Skeels and A.H.Welsh},
+	Title = { Momentary Lapses:  Moment expansions and the robustness 
+		of minimum distance estimators},
+	Journal = { Econometric Theory},
+	Volumme = {10},
+	Pages = {172-197},
+	Year = 1995,
+	}
+
+      @article{mach:1993,
+          Author = {Machado, Jos\'e A. F.},
+          Title = {Robust Model Selection and $M$-estimation},
+          Year = 1993,
+          Journal = {Econometric Theory},
+          Volume = 9,
+          Pages = {478--493},
+          Keywords = {Schwarz information criterion}
+      }
+
+
+/
+@article {KPark.96,
+	Author = {Koenker, R. and B.J. Park },
+	Year = 1996,
+	Title = { An interior point algorithm for nonlinear quantile regression},
+	Journal = { Journal of Econometrics},
+	Volume = { 71},
+	Pages = {265-283},
+	}
+@article{jww:88,
+    Journal = JASA,
+    Volume = 83,
+    Pages = {805--810},
+    Keywords = {Influence function; Robust regression},
+    Author = {de Jongh, P. J. and de Wet, T. and Welsh, A. H.},
+    Title = {Mallows-type Bounded-influence-regression Trimmed Means},
+    Year = 1988
+}
+@article{W.87,
+    author = {Welsh, A. H.},
+    title = {The trimmed mean in the linear model},
+    year = {1987},
+    journal = {The Annals of Statistics},
+    volume = {15},
+    pages = {20--36},
+}
+
+@article{AJ.85,
+    Author = {Antoch, Jaromir and \Jureckova, J.},
+    Title = {Trimmed Least Squares Estimator Resistant to Leverage Points},
+    Year = 1985,
+    Journal = {Computational Statistics},
+    Volume = 2,
+    Pages = {329--339},
+    Keywords = {Robust estimation}
+} 
+
+@inproceedings{K.1997,
+	author = {Koenker, R.},
+	title = {$\ell_1$ computation: an interior monologue},
+	booktitle = {$L_1$-Statistical Procedures and Related Topics},
+	series = {IMS Lecture Notes-Monograph Series},
+	editor = {Dodge, Y.},
+	Year = 1997
+}
+
+
+@article{Kahn.98,
+	Journal = {Economica},
+	Volume = 65,
+	Pages = {507-34},
+	Author = {Kahn, L.M.},
+	Title = {Collective Bargaining and the Interindustry Wage
+               Structure: International Evidence },
+	Year = 1998
+}
+
+@article{khma.81,
+    Journal = ThProbAp,
+    Volume = 26,
+    Pages = {240--257},
+    Author = {Khmaladze, E. V. },
+    Title = {Martingale Approach in the Theory of Goodness-of-fit Tests},
+    Year = 1981
+}
+
+
+
+@book{King,
+	Author = {King, G.},
+	Title = {A Solution to the Ecological Inference Problem},
+	Publisher = {Harvard:  Cambridge},
+	Year = 1997,
+	}
+@article{KK.01,
+	Author = {Knight, K.},
+	Title = {Limiting distributions of linear programming estimators},
+    	Journal = {Extremes},
+	Pages = {87--103},
+	Year =2001 
+	}
+@unpublished{KK.02,
+	Author = {Knight, K.},
+	Title = {On the second order behaviour of the bootstrap 
+	  of $L_1$ regression estimators},
+	Note = {preprint},
+	Year = 2002 
+	}
+
+@article{Stukel.88,
+    Author = {Stukel, T. A.},
+    Title = {Generalized Logistic Models},
+    Year = 1988,
+    Journal = {Journal of the American Statistical Association},
+    Volume = 83,
+    Pages = {426--431},
+    Keywords = {Binary response; Dose-response; GLIM}
+}  
+@article{Kordas.02,
+	Author = {Kordas, G.},
+	Title = {Binary Regression Quantiles},
+	Journal = {Journal of Applied Econometrics},
+	Note = {forthcoming},
+	Year = 2004,
+	}
+@article{belluzzo,
+	Author = {Belluzzo, W.},
+	Title = {Semiparametric Approaches to Welfare Evaluations in Binary Response Models},
+	Journal = {Journal of Business and Economic Statistics},
+	Note = {forthcoming},
+	Year = 2004,
+	}
+
+@article{KM.94,
+	Author = {Koul, H.L. and Mukherjee, K.},
+	Year = 1994,
+	Title = {Regression  quantiles and related processes under long range dependent errors},
+	Journal = { J. Mult. Anal},
+	Volume = { 51}, 
+	Pages = {318-337},
+	}
+@book {Leh.59,
+	Author = {Lehmann, E.},
+	Year = 1959,
+	Title = {Testing Statistical Hypotheses},
+	Publisher = {Wiley:  New York},
+	}
+@book {Leh.83,
+	Author = {Lehmann, E.},
+	Year = 1983,
+	Title = {  Theory of Point Estimation},
+	Publisher = {Wiley:  New York},
+	}
+@article {Liu,
+	Author = {Liu, R.Y},
+	Year = 1990 ,
+	Title = { On a notion of data depth based on random simplices},
+	Journal = { Annals of Statistics},
+	Volume = { 36},
+	Pages = {405-411},
+	}
+@article {LMS.94,
+	Author = {Lustig, I.J. and  Marsden, R.E. and Shanno, D.F.},
+	Year = 1994,
+	Title = { Interior point methods for linear programming:  computational state of the art with discussion},
+	Journal = { ORSA J. on Computing},
+	Volume = { 6},
+	Pages = {1-36},
+	}
+@article {MW.47,
+	Author = {Mann, H.B. and  Whitney, D.R.},
+	Year = 1947,
+	Title = { On a test of whether one of two random variables is stochastically larger
+		than the other},
+	Journal = { Annals of Math Stat},
+	Volume = { 18},
+	Pages = {50--60},
+	}
+@article {MBM.95,
+	Author = {Manning, W. and  L. Blumberg and L.H. Moulton},
+	Year = 1995,
+	Title = { The demand for alcohol:  the differential response to price},
+	Journal = { Journal of Health Economics},
+	Volume = { 14},
+	Pages = {123-148},
+	}
+@article {M.75,
+	Author = {Manski, C.F. },
+	Year = 1975,
+	Title = {Maximum score estimation of the stochastic utility model of choice},
+	Journal = { J. of Eonometrics},
+	Volume = { 3},
+	Pages = {205-228},
+	}
+@article {M.85,
+	Author = {Manski, C.F.},
+	Year = 1985,
+	Title = { Semiparametric analysis of discrete response asymptotic properties of the maximum score estimator},
+	Journal = { J. of Eonometrics},
+	Volume = { 27},
+	Pages = {313--333},
+	}
+@inproceedings {Matz,
+	Author = {Matzkin, R.},
+	Year = 1994,
+	Title = { Restrictions of economic theory in nonparametric models},
+	Booktitle = { Handbook of Econometrics},
+	editor = {Engle, R.F. and McFadden, D.L.} ,
+	Publisher = {North-Holland:  New York},
+	}
+@inproceedings{Mcf.89,
+          author = {McFadden, D.},
+	          title = {Testing for stochastic dominance},
+		          booktitle = {Studies in the Economics of
+			    Uncertainty in honor of
+			                      Josef Hadar},
+			          editor = {Fomby, T.B. and T.K. Seo},
+				          publisher = {Springer: New
+					    York},
+					          year = {1989},
+						          }
+@book {Mard,
+	Author = {Marden, J.I.},
+	Year = 1995,
+	title = {  Analysing and Modeling Rank Data},
+	Publisher = {Chapman-Hall:  New York},
+	}
+@book {Silverman,
+	Author = {Silverman, B.},
+	Year = 1986,
+	title = {  Density Estimation for Statistics and Data Analysis},
+	Publisher = {Chapman-Hall:  New York},
+	}
+@article {Rao.47,
+	Author = {Rao, C.R.},
+	Year = 1947,
+	Title = { Large-sample test of statistical hypotheses concerning several parameters
+		with applications to problems of estimation},
+	Journal = { Proc. Camb. Phil. Soc.},
+	Volume = { 44},
+	Pages = {50--57},
+	}
+@article {Gonzaga,
+	Author = {Gonzaga, C.C.}, 
+	Year = {1992},
+	Title = {Path-following methods for linear programming},
+	Journal = {SIAM Review}, 
+	Volume = {34}, 
+	Pages = {167--224},
+	}
+@article {Meh.92,
+	Author = {Mehrotra, S.},
+	Year = 1992,
+	Title = { On the implementation of a primal-dual interior point method},
+	Journal = { SIAM J. of Optimization},
+	Volume = { 2},
+	Pages = {575-601},
+	}
+@article {EAVD.79,
+	Author = {El-Attar, R.A.  and M. Vidyasagar and S.R.K. Dutta},
+	Year = 1979,
+	Title = { An Algorithm for $\ell_1$-norm minimization with an 
+		application to nonlinear $\ell_1$ approximation},
+	Journal = { SIAM J. of Numerical Analysis},
+	Volume = { 16},
+	Pages = {70--86},
+	}
+@inproceedings{KleeMinty.72,
+	Author = {Klee, V. and  G.J. Minty},
+	Year = 1972,
+	Title = { How Good is the Simplex Algorithm},
+	Booktitle = {Inequalities III},
+	Editor = {Shisha, O.},
+	Publisher = {Academic Press}
+	}
+@article {Mek.86,
+	Author = {Meketon, M.S},
+	Year = 1986,
+	Title = { Least Absolute Value Regression},
+	Journal = {Bell Labs Technical Report},
+	}
+@book {Gal,
+	Author = {G\'{a}l, T.},
+	Year = 1995,
+	Title = { Postoptimal analyses, parametric programming, 
+		and related topics : degeneracy, 
+		multicriteria decision making, redundancy},
+	Publisher = {de Gruyter}
+	}
+@book {Mosler.02,
+	Author = {Mosler, K.},
+	Year = 2002,
+	Title = {  Multivariate Dispersion, Central Regions and Depth:  
+		The Lift Zonoid Approach},
+	Publisher = {Springer},
+	}
+@article{M.46,
+	Author = {Mosteller, F.},
+	Year = 1946,
+	Title = { On some useful ``inefficient'' statistics},
+	Journal = {Annals of Mathematical Statistics},
+	Volume = 17,
+	Pages = {377--408}
+	}
+@book {MT.77,
+	Author = {Mosteller, F. and Tukey, J.W.},
+	Year = 1977,
+	Title = {  Data Analysis and Regression:  A Second Course in Statistics},
+	Publisher = {Addison-Wesley, Reading Mass},
+	}
+@inproceedings {Nev.75,
+	Author = {Nevel'son, M.B.},
+	Year = 1975,
+	Title = { On the Properties of the recursive estimates for a
+	functional of an unknown distribution function},
+	Booktitle = {  Limit Theorems of Probability Theory},
+	Editor ={P. \Revesz },
+	Series =  {Colloquia Mathematica Societatis Janos Bolyai},
+	Volume = { 11},
+	}
+@article {NP.87,
+	Author = {Newey, W.K. and J. L. Powell },
+	Year = 1987,
+	Title = { Asymmetric least squares estimation and testing},
+	Journal = { Econometrica},
+	Volume = { 55},  
+	Pages = {819-847},
+	}
+@article {NON,
+	Author = {Ninimaa, A. and Oja, H. and Nyblom, J.},
+	Year = 1992,
+	Title = { The {O}ja Bivariate Median},
+	Journal = { Applied Statistics},
+	Volume = { 41},
+	Pages = {611-17},
+	}
+@article {Oja.83,
+	Author = {Oja, H.},
+	Year = 1983, 
+	Title = { Descriptive statistics for multivariate distributions},
+	Journal =  StPrLet,
+	Volume = { 1},
+	Pages = {327-332},
+	}
+@article{DHY.93b,
+      author = {De Angelis, D. and Hall, Peter and Young, G. A.},
+          title = {A note on coverage error of bootstrap confidence
+	    intervals for quantiles},
+	      year = {1993},
+	          journal = {Mathematical Proceedings of the Cambridge
+		    Philosophical Society},
+		      volume = {114},
+		          pages = {517--531}
+}
+
+@article{DHY.93,
+           Author = {De Angelis, D. and Hall, Peter and Young, G. A.},
+           Title = {Analytical and Bootstrap Approximations to Estimator
+                   Distributions in $L^1$ Regression},
+           Year = 1993,
+           Journal = {Journal of the American Statistical Association},
+           Volume = 88,
+           Pages = {1310--1316},
+           Keywords = {Edgeworth expansion}
+       }
+
+@article{janas.93,
+           Author = {Janas, Daniel},
+           Title = {A Smoothed Bootstrap Estimator for a Studentized Sample
+                   Quantile},
+           Year = 1993,
+           Journal = {Annals of the Institute of Statistical Mathematics},
+           Volume = 45,
+           Pages = {317--329},
+           Keywords = {Kernel estimator}
+       }
+
+
+
+@article {Parz.79,
+	Author = {Parzen, E.},
+	Year = {1979},
+	Title = {Nonparametric statistical data modeling},
+	Journal = {Journal of the American Statistical Association}, 
+	Volume = {74}, 
+	Pages = {105--121},
+	}
+
+
+@article {PWY.94,
+	Author = {Parzen, M. I.  and L.J. Wei and Z. Ying},
+	Title = { A resampling method based on pivotal estimating functions},
+	Journal = { Biometrika},
+	Volume = { 81},
+	Pages = {341-350},
+	Year = 1994,
+	}
+@article {Per.89,
+	Author = {Perron, P.},
+	Title = { The Great Crash, the Oil Price Shock, and the Unit-Root Hypothesis},
+	Year = 1989,
+	Journal = { Econometrica},
+	Volume = { 57},
+	Pages = {1361-1401},
+	}
+@article{RR.97,
+    Author = {Robins, James M. and Ritov, Ya'acov},
+    Title = {Toward a Curse of Dimensionality Appropriate (CODA) Asymptotic
+            Theory for Semi-parametric Models},
+    Year = 1997,
+    Journal = {Statistics in Medicine},
+    Volume = 16,
+    Pages = {285--319},
+    Keywords = {Randomization}
+} 
+
+@article{MS.89,
+	Author = {Mumford, D. and J. Shah},
+	Title = { Optimal approximation by piecewise smooth functions and associated
+		variational problems},
+	Journal = {Comm.  Pure Appl. Math.},
+	Volume = 42,
+	Pages = {577--685},
+	Year = 1989, 
+	}
+@article{BC.00,
+	Author = {Bourdin, B. and A. Chambolle},
+	Title = { Implementation of an adaptive finite-element approximation of the
+		Mumford Shah functional},
+	Journal = {Numerische Mathematik},
+	Volume = 85,
+	Pages = {609--646},
+	Year = 2000
+	}
+@article{bennett.83,
+    Author = {Bennett, Steve},
+    Title = {Analysis of Survival Data By the Proportional Odds Model},
+    Year = 1983,
+    Journal = {Statistics in Medicine},
+    Volume = 2,
+    Pages = {273--277},
+    Keywords = {Censored sample}
+}  
+
+@article{P.03,
+	Author = {Portnoy, S.},
+	Year = 2003,
+	Journal = JASA,
+	Title = { Censored Quantile Regression},
+    	Volume = 98,
+    	Pages = {1001--1012},
+	}
+@inproceedings {P.84,
+	Author = {Portnoy, S.},
+	Year = 1984,
+	Title = { Tightness of the sequence of empiric cdf processes defined from regression fractiles} ,
+	Booktitle = {  Robust and Nonlinear Time Series Analysis},
+	editor = {Franke, J. and  W. Hardle  and Martin, D. } ,
+	Publisher = {Springer-Verlag:  New York},
+	}
+@article {P.89,
+	Author = {Portnoy, S.},
+	Year = 1989,
+	Title = { Asymptotic behavior of the number of regression quantile 
+		breakpoints},
+	Journal = { SIAM J. Science Statistical Computing,},
+	Volume = { 12},
+	Pages = {867-883},
+	}
+
+
+
+
+@article{shen:1998,
+          Author = {Shen, Xiaotong},
+          Title = {On the Methods of Penalization},
+          Year = 1998,
+          Journal = {Statistica Sinica},
+          Volume = 8,
+          Pages = {337--357},
+      }
+
+@article{port:1997,
+          Author = {Portnoy, Stephen},
+          Title = {Local Asymptotics for Quantile Smoothing Splines},
+          Year = 1997,
+          Journal = {The Annals of Statistics},
+          Volume = 25,
+          Pages = {414--434},
+          Keywords = {Nonparametric regression}
+      }
+   
+@article{WM.90,
+    Author = {Welsh, A. H. and Morrison, H. L.},
+    Title = {Robust $L$ Estimation of Scale With An Application in
+            Astronomy},
+    Year = 1990,
+    Journal = {Journal of the American Statistical Association},
+    Volume = 85,
+    Pages = {729--743},
+    Keywords = {Trimmed estimator}
+}  
+@article{hast:load:1993,
+    Author = {Hastie, T. J.  and Loader, C.},
+    Title = {Local Regression: {A}utomatic Kernel Carpentry}, 
+    Year = 1993, 
+    Journal = {Statistical Science},
+    Volume = 8,
+    Pages = {120--129},
+    Keywords = {Loess; Smoothing}
+}   
+@book{HT.90,
+    Author = {Hastie, Trevor and R.J. Tibshirani},
+    Title = {Beneralized Additive Models},
+    Year = 1990,
+    Publisher = {Chapman \& Hall},
+}   
+@book{RC.88,
+    Author = {Carroll, Raymond J. and Ruppert, David},
+    Title = {Transformation and Weighting in Regression},
+    Year = 1988,
+    Publisher = {Chapman \& Hall},
+}   
+ 
+@article{PK.89,
+          Author = {Portnoy, Stephen and Koenker, Roger},
+          Title = {Adaptive $L$-estimation for Linear Models 
+		(Corr: {V}18 P986)},
+          Year = 1989,
+          Journal = {The Annals of Statistics},
+          Volume = 17,
+          Pages = {362--381},
+          Keywords = {Regression quantile; Density estimation}
+      }
+@unpublished {PR.95,
+	Author = {Poterba, J.M. and K.S. Rueben },
+	Year = 1995,
+	Title = { The Distribution of Public Sector Wage Premia:  
+	New Evidence Using Quantile Regression Methods},
+	note = {NBER Working paper \#4734},
+	}
+@inproceedings {Pow.89,
+	Author = {Powell, J. L.},
+	Year = 1991,
+	Title = { Estimation of monotonic regression models under 
+		quantile restrictions},
+	Booktitle = { Nonparametric and Semiparametric Methods in Econometrics},
+	editor = {Barnett, W.A. and  Powell, J.L. and Tauchen, G.}  ,
+	publisher = {Cambridge U. Press:  Cambridge},
+	}
+@article{Rogers.92,
+	Author = {Rogers, W.},
+	Title = {Quantile regression standard errors},
+	Journal = STB,
+	Volume = {9},
+	Pages = {16--19},
+	Year = 1992
+	}
+@article{Rogers.93,
+	Author = {Rogers, W.},
+	Title = {Calculation of quantile regression standard errors},
+	Journal = STB,
+	Volume = {13},
+	Pages = {18--19},
+	Year = 1993
+	}
+@article{Kolmogorov.31,
+	Author = {Kolmogorov, A. N.},
+	Title = {The method of the median in the theory of errors},
+	Journal = MatSb, 
+	note = {Reprinted in {\it Selected Works of A.N. Kolmogorov}, vol II,
+		A.N. Shiryayev, (ed), Kluwer:  Dordrecht},
+	year = 1931
+	}
+
+
+@inproceedings {Pow.94,
+	Author = {Powell, J. L. },
+	Year = 1994,  
+	Title = { Estimation of semiparametric models},
+	Booktitle = { Handbook of Econometrics},
+	Volume = 4,
+	editor ={ Engle, R.F. and McFadden, D.L. },
+	publisher = {North-Holland:  New York},
+	}
+
+@article{B.75,
+          Author = {Bickel, P. J.},
+          Title = {One-step {H}uber Estimates in the Linear Model},
+          Year = 1975,
+          Journal = {Journal of the American Statistical Association},
+          Volume = 70,
+          Pages = {428--434},
+          Keywords = {Robust estimator; $M$-estimator; Monte Carlo; Asymptotic
+                     efficiency; Gauss-Newton approximation}
+      }
+@article{bick:1976,
+          Author = {Bickel, Peter J.},
+          Title = {Another Look At Robustness; 
+		{A} Review of Reviews and Some New
+                  Developments (C/R: P158-168)},
+          Year = 1976,
+          Journal = {Scandinavian Journal of Statistics},
+          Volume = 3,
+          Pages = {145--158},
+          Keywords = {Nonparametric; Descriptive statistics; Linear model;
+                     Heteroscedasticity; Additivity; Nonlinearity}
+      }
+
+
+
+
+      @article{port:1985,
+          Author = {Portnoy, Stephen},
+          Title = {Asymptotic Behavior of $M$ Estimators of $p$ Regression
+                  Parameters When $p^2/n$ Is Large: {I}I. {N}ormal Approximation
+                  (Corr: 91V19 P2282)},
+          Year = 1985,
+          Journal = {The Annals of Statistics},
+          Volume = 13,
+          Pages = {1403--1417},
+          Keywords = {Linear model; Robustness}
+      }
+
+      @article{port:1984,
+          Author = {Portnoy, Stephen},
+          Title = {Asymptotic Behavior of $M$-estimators of $p$ Regression
+                  Parameters When $p^2/n$ Is Large. {I}. {C}onsistency},
+          Year = 1984,
+          Journal = {The Annals of Statistics},
+          Volume = 12,
+          Pages = {1298--1309},
+          Keywords = {Linear model; Robustness}
+      }
+
+
+      @article{AMY,
+          Author = {Adrover, J. and Yohai, Victor J. and Maronna, Ricardo A.},
+          Title = {Robust Regression Quantiles},
+          Year = 2004,
+          Journal = {J of Stat. Planning and Inference},
+          Volume = 120,
+          Pages = {187--202},
+      }
+      @article{YM.79,
+          Author = {Yohai, Victor J. and Maronna, Ricardo A.},
+          Title = {Asymptotic Behavior of $M$-estimators for the Linear Model},
+          Year = 1979,
+          Journal = {The Annals of Statistics},
+          Volume = 7,
+          Pages = {258--268},
+          Keywords = {Robust estimation; Consistency}
+      }
+
+
+
+@article {RC.80,
+	Author = {Ruppert, D. and Carroll, R.J.  },
+	Year = 1980,
+	Title = { Trimmed least squares estimation in the linear model},
+	Journal = { Journal of the American Statistical Association},
+	Volume = { 75},
+	Pages = {828-838},
+	}
+@book {Natan.74,
+	Author = { Natanson, I.P.},
+	Title = { Theory of functions of a real variable},
+	Publisher = {Ungar},
+	Year = 1974,
+	}
+
+@book {Serf.80,
+	Author = {Serfling, R.J.},
+	Year = 1980,
+	title = {  Approximation Theorems of Mathematical Statistics},
+	Publisher = {New York:  Wiley},
+	}
+@article {serf.04,
+	Author = {Serfling, R.J.},
+	Year = 2004,
+	title = {  Nonparametric multivariate descriptive measures
+	  based on spatial quantiles}, 
+	    Journal = {Journal of Statistical Planning and Inference},
+	   Volume =  {123}, 
+	   Pages = {259--278},
+	}
+@article {Small.90,
+	Author = {Small, C.G. },
+	Year = 1990,
+	Title = { A survey of multidimensional medians},
+	Journal = { International Statistical Review},
+	Volume = { 58},
+	Pages = {263-277},
+	}
+@article {Sil.85,
+	Author = {Silverman, B.W. },
+	Year = 1985,
+	Title = { Some aspects of the spline smoothing approach to nonparametric regression  curve fitting (with discussion)},
+	Journal =  JRSS-B,
+	Volume = { 47},
+	Pages = {1-52},
+	}
+@article{Stone.82,
+    Author = {Stone, Charles J.},
+    Title = {Optimal Global Rates of Convergence for Nonparametric
+            Regression},
+    Year = 1982,
+    Journal = {The Annals of Statistics},
+    Volume = 10,
+    Pages = {1040--1053}
+}  
+@article{HS.89,
+    Author = {\Hardle, Wolfgang and Stoker, Thomas M.},
+    Title = {Investigating Smooth Multiple Regression By the Method of
+            Average Derivatives},
+    Year = 1989,
+    Journal = {Journal of the American Statistical Association},
+    Volume = 84,
+    Pages = {986--995},
+    Keywords = {GLIM; Kernel estimator; Nonparametric estimator} 
+} 
+
+@article {St.77,
+	Author = {Stone, C. },
+	Year = 1977,
+	Title = { Consistent Nonparametric Regression, with discussion},
+	Journal = { Annals of Statistics},
+	Volume = { 5},
+	Pages = {595-645},
+	}
+@article {SHKT,
+	Author = {Stone, C.J. and  M. Hansen and  C. Kooperberg  and Y.K. Truong },
+	Title = { Polynomial Splines and their Tensor Products in Extended Linear Modeling, with discussion},
+	Journal = {Annals of Statistics},
+	Volume = {25},
+	Pages = {1371-1470},
+	Year = 1997,
+	}
+@article {Trg.89,
+	Author = {Troung, Y.K. },
+	Year = 1989 ,
+	Title = { Asymptotic properties of kernel estimators based on local medians},
+	Journal = { Annals of Statistics},
+	Volume = { 17},
+	Pages = {606-617},
+	}
+@book {Gu.02,
+	Author = {Gu, C. },
+	Year = 2002 ,
+	Title = { Smoothing Spline ANOVA Models},
+	publisher = {Springer}, 
+	}
+@book {W.90,
+	Author = {Wahba, G. },
+	Year = 1990 ,
+	Title = { Spline Models for Observational Data},
+	publisher = {CBMS-NSF Regional Conference Series in Applied Mathematics}, 
+	volume= {59},
+	}
+@unpublished {Wang.93,
+	Author = {Wang, Y. },
+	Year = 1994,
+	Title = { The $L_2$ risk of the isotonic estimator},
+	note ={preprint},
+	}
+
+
+@article{koen:port.87,
+    Journal = JASA,
+    Volume = 82,
+    Pages = {851--857},
+    Keywords = {Regression; Quantile; Robustness},
+    Author = {Koenker, Roger and Portnoy, Stephen},
+    Title = {$L$-estimation for Linear Models},
+    Year = 1987
+}
+
+
+@article{kolt,
+	Journal = AnlsStat,
+	Volume = 25,
+	Pages = {435-477},
+	Author = { Koltchinskii, V.I.},
+	Title = {M-estimation, convexity, and quantiles},
+	Year = 1997,
+}
+
+@article{KS.95,
+	Author = {Koul, H.L. and Saleh, A.K.M.E.},
+	Year = 1995,
+	Title = { Autoregression quantiles and related rank score processes},
+	Journal = { Annals of Statistics},
+	Volume = { 23},
+	Pages = {670-689},
+	}
+
+@article{KS.99,
+    Journal = AnlsStat,
+    Volume = 27,
+    Pages = {204--236},
+    Author = {Koul, H. and Stute, W.},
+    Title = {Nonparametric Model Checks for Time Series},
+    Year = 1999
+}
+
+@book{Hett.84,
+        Author = {Hettmansperger,T.P.},
+        Title = {Statistical Inference based on Ranks},
+        Year = 1984,
+        Publisher = {Wiley},
+}
+@book{L.74,
+        Author = {Lehmann, E.L.},
+        Title = {Nonparametrics: Statistical Methods based on Ranks},
+        Year = 1974,
+        Publisher = {Holden-Day},
+}
+
+ 
+@book{Lamp.94,
+	Author = {Lamport, L.},
+	Title =  {\LaTeX},
+	Publisher = {Addison-Wesley},
+	Year = 1994,
+	}
+
+@article{lee.03,
+  	Author = {Lee, S.},
+	Title = {Efficient semiparametric estimation of a partially
+	  linear quantile regression model},
+	Journal = {ET},
+	Pages = {1--31},
+	Year =  2003,
+	}
+@article{HeLiang,
+      author = {He, X. and Liang, H.},
+          title = {Quantile regression estimates for a class of linear
+	    and partially linear errors-in-variables models},
+	      year = {2000},
+	          journal = {Statistica Sinica},
+		      volume = {10},
+		          number = {1},
+			      pages = {129--140},
+}
+
+@article{lee:schac.80,
+	Author = { Lee, D.T.  and Schacter, B.J.},
+	Journal = {International Journal of Computer and Information Sciences},
+	Title = { Two algorithms for constructing a Delaunay triangulation}, 
+	Volume = {9},
+	Pages = { 219 -- 242},
+	Year = 1980, 
+}
+
+
+@article{LFMZ.97,
+	Author = {Lipsitz, S.R. and G.M. Fitzmaurice and G. Molenberghs
+		and Zhao, L.P.},
+	Title = {Quantile regression methods for longitudinal data with
+		Drop-outs:  Application CD4 cell counts of patients 
+		infected with HIV},
+	Journal = ApStat,
+	Pages ={463-476},
+	Year = 1997,
+	}
+@article{LHS.97,
+	Author = {Lassere, M. and  Houssein, D. and Scott, D. },
+      	Title = {Reference curves of radiographic damage in patients with 
+		rheumatoid arthritis: Application of quantile regression 
+		and fractional polynomials},
+      	Journal = { J. Rheumatology},
+	Volume =  24, 
+	Pages = {1288-1294},
+	Year =   1997 
+}
+
+
+
+@article{mans.75,
+    Journal = JEx,
+    Volume = 3,
+    Pages = {205--228},
+    Author = {Manski, Charles F.},
+    Title = {Maximum Score Estimation of the Stochastic Utility Model of
+            Choice},
+    Year = 1975
+}
+
+
+
+@article{mans.85,
+    Journal = JEx,
+    Volume = 27,
+    Pages = {313--333},
+    Author = {Manski, Charles F.},
+    Title = {Semiparametric Analysis of Discrete Response: {A}symptotic
+            Properties of the Maximum Score Estimator},
+    Year = 1985
+}
+
+
+
+@article{manski.97,
+	author =  {Manski, C.F.}, 
+	title = {Monotone Treatment Response}, 
+	journal = {Econometrica}, 
+	volume = 65, 
+	Pages = {1311--1334},
+	Year = 1997
+}
+
+ 
+@article{mark:horo.95,
+    Journal = CandJSt,
+    Volume = 23,
+    Pages = {369--381},
+    Keywords = {Influence function},
+    Author = {Markatou, Marianthi and Horowitz, Joel L.},
+    Title = {Robust Scale Estimation in the Error-components Model Using
+            the Empirical Characteristic Function},
+    Year = 1995
+}
+
+@article{marr:wand.92,
+    Journal = AnlsStat,
+    Volume = 20,
+    Pages = {712--736},
+    Keywords = {Kernel estimator; Mixture of distributions},
+    Author = {Marron, J. S. and Wand, M. P.},
+    Title = {Exact Mean Integrated Squared Error},
+    Year = 1992
+}
+
+
+
+@article{meinguet.79,
+	Journal = ZAMP,
+	Pages = {292-304},
+	Volume = 30,
+	Title = {Multivariate interpolation at arbitrary points made simple},
+	Author = { Meinguet, J.},
+	Year = 1979
+}
+
+@article{KN.04,
+	Author = {Koenker, R. and P. Ng},
+	Title = {Inequality Constrained Quantile Regression},
+	Journal = {Journal of  Applied Econometrics},
+	Year = {2004},
+	note = {forthcoming?}
+}
+@article{NP.93,
+	Author = {Ng, E.G. and B.W. Peyton},
+	Title = {Block sparse Cholesky algorithms on advanced
+	  uniprocessor computers},
+	Journal = {SIAM J. Sci. Computing},
+	Volume = 14,
+	Pages = {1034--1056},
+	Year = 1993
+}
+@article{KN.03,
+	Author = {Koenker, R. and P. Ng},
+	Title = {SparseM:  A Sparse Linear Algebra Package for R},
+	Journal = {Journal of Statistical Software},
+	Volume = 8,
+	Year = 2003
+}
+@unpublished{KM.05,
+	Author = {Koenker, R. and I. Mizera},
+	Title = {Penalized Voronograms},
+	Note = {vapor-print},
+	Year = 2004
+}
+@article{KM.04,
+	Author = {Koenker, R. and I. Mizera},
+	Title = {Penalized Triograms:  Total Variation Regularization for Bivariate Smoothing},
+	Journal = JRSS-B,
+	Volume = 66,
+	Pages = {145--163},
+	Year = 2004
+}
+@unpublished{Miz.98,
+	Author = {Mizera, I},
+	Title = {On depth and deep points:  a calculus},
+	Note = {preprint},
+	Year = 1998
+}
+
+@unpublished{mizera.98,
+	Title = {Variations on Variations},
+	Author = {Mizera, I.},
+	Note = {personal communication},
+	Year = 1998,
+}
+
+@book{Koop.37,
+	Author = {Koopmans, T.C.},
+	Title = {Linear Regression Analysis of Economic Time Series},
+	Year = 1937,
+	Publisher = {Netherlands Economic Institute: Haarlem},
+	}
+
+@article{Levin.01,
+	Author = {Levin, J.},
+	Title = {For whom the reductions count:  
+		A quantile regression analysis of
+		effects of class size on scholastic acheivement},
+	Journal = EE,
+	Volume = 26,
+	Pages = {221-246}, 
+	Year = 2001
+	}
+@article{LGH.01,
+	Author = { Garcia, J. and  Hernandez, P.J. and Lopez, A.},
+	Title = {How wide is the gap?  An investigation of gender wage 
+		differences using quantile regression},
+	Journal = EE,
+	Volume = 26,
+	Pages ={149-167},
+	Year = 2001
+	}
+@unpublished{MSS.02,
+	Author = {Machado, J.A.F. and Santos~Silva, J.M.C.},
+	Title = {Quantiles for Counts},
+	Note = {preprint},
+	Year = 2002
+}
+@article{Goldie,
+    Author = {Goldie, Charles M.},
+    Title = {Convergence Theorems for Empirical {L}orenz Curves and Their Inverses},
+    Year = 1977,
+    Journal = {Advances in Applied Probability},
+    Volume = 9,
+    Pages = {765--791},
+}  
+@article{Stevens.50,
+    Author = {Stevens, W.L.},
+    Title = {Fiducial Limits of the Parameter of a Discontinuous Distribution},
+    Year = 1950,
+    Journal = {Biometrika},
+    Volume = 37,
+    Pages = {117--129},
+}  
+
+@article{MM.01,
+	Author = {Machado, J.A.F. and Mata, J.},
+	Title = {Counterfactual decomposition of changes in wage distributions
+		using quantile regression}, 
+	Journal = EE,
+	Volume = 26,
+	Pages = {115-134},
+	Year = 2001
+}
+
+@article{Mont.98,
+	Journal = {Estudios de Economia},
+	Volume = 25,
+	Pages = {71-98},
+	Author = {Montenegro, C.E.},
+	Title = {The Structure of Wages in {C}hile 1960-1996: An Application
+               of Quantile Regression },
+	Year = 1998
+}
+
+@article{mt:86,
+    Journal = JEx,
+    Volume = 32,
+    Pages = {85--108},
+    Keywords = {Binary response; Logit model},
+    Author = {Manski, Charles F. and Thompson, T. Scott},
+    Title = {Operational Characteristics of Maximum Score Estimation},
+    Year = 1986
+}
+
+
+@article{mukh.00,
+    Author = {Mukherjee, K.},
+	Title = {Linearization of randomly weighted empiricals under long
+		range dependence with applications to nonlinear regression
+		quantiles},
+	Journal = ET,
+	Volume = 16,
+	Pages = { 301--323},
+	Year = 2000,
+	}
+
+
+@book{koul:1992,
+          Author = {Koul, Hira L.},
+          Title = {Weighted Empiricals and Linear Models},
+          Year = 1992,
+          Publisher = {Institute of Mathematical Statistics},
+          Pages = {264},
+          Keywords = {Regression; Autoregressive model; Rank statistic; Minimum
+                     distance estimator}
+      }
+
+
+@article{newe:powe.90,
+    Journal = ET,
+    Volume = 6,
+    Pages = {295--317},
+    Author = {Newey, Whitney K. and Powell, J. L.},
+    Title = {Efficient Estimation of Linear and Type {I} Censored
+            Regression Models Under Conditional Quantile Restrictions},
+    Year = 1990
+}
+
+
+
+@article{niin:oja.95,
+    Journal = JRSS-B,
+    Volume = 57,
+    Pages = {565--574},
+    Keywords = {Breakdown point},
+    Author = {Niinimaa, A. and Oja, H.},
+    Title = {On the Influence Functions of Certain Bivariate Medians},
+    Year = 1995
+}
+
+@article{Beran.03,
+    Pages = {175--184},
+    Author = {Beran, R. },
+	Year = {2003},
+	Title = {Impact of the Bootstrap on Statistical Algorithms and
+	Theory},
+	Journal = {Statistical Science}, 
+	}
+@article{BH.93,
+    Volume = 55,
+    Pages = {643--652},
+    Author = {Beran, R. and Hall, P.},
+	Year = {1993},
+	Title = {Interpolated nonparametric prediction intervals and confidence intervals},
+	Journal = {J. Royal Stat. Soc. (B)}, 
+	}
+@article{W.23,
+    Volume = 41,
+    Pages = {63--75},
+    Author = {Whittaker, E.},
+	Year = {1923},
+	Title = {On a new method of graduation},
+	Journal = {Proc. Edinburgh Math. Soc.}, 
+	}
+
+@article{niin:oja:tabl.90,
+    Journal = StPrLet,
+    Volume = 10,
+    Pages = {325--328},
+    Author = {Niinimaa, A. and Oja, H. and Tableman, Mara},
+    Title = {The Finite-sample Breakdown Point of the {O}ja Bivariate
+            Median and of the Corresponding Half-samples Version},
+    Year = 1990
+}
+
+
+
+@article{NS.97,
+    Journal = StPrLet,
+    Volume = 32,
+    Pages = {249--259},
+    Keywords = {Distribution-free test},
+    Author = {Nikabadze, A. and Stute, W.},
+    Title = {Model Checks Under Random Censorship},
+    Year = 1997
+}
+
+@article{oja:niin.85,
+    Journal = JRSS-B,
+    Volume = 47,
+    Pages = {372--377},
+    Keywords = {Robust estimation; Spatial median},
+    Author = {Oja, H. and Niinimaa, A.},
+    Title = {Asymptotic Properties of the Generalized Median in the Case of
+            Multivariate Normality},
+    Year = 1985
+}
+
+
+
+@inproceedings{P.1997,
+	author = {Portnoy, S.},
+	title = {On computation of regression quantiles},
+	booktitle = {$L_1$-Statistical Procedures and Related Topics},
+	series = {IMS Lecture Notes-Monograph Series},
+	editor = {Dodge, Y.},
+	Year = 1997
+}
+@inproceedings{ZRC.93,
+	author = {Zhao,L. and Rao, C.R. and Chen, X.},
+	title = {A note on the consistency of M-estimates in linear models},
+	booktitle = {Stochastic Processes},
+	editor = {Cambanis, S.},
+	pages = {359--367},
+	Year = 1993
+}
+
+@article{Chesher.03,
+    Author = {Chesher, A.},
+    Title = {Identification in Nonseparable Models},
+    Journal = {Econometrica},
+    Volume = {71},
+    Pages = {1405--1441},
+    Year = 2003,
+}
+@unpublished{Chesher.04,
+    Author = {Chesher, A.},
+    Title = {Nonparametric Identification under Discrete Variation},
+    Note = {CEMMAP Working Paper},
+    Year = 2004,
+}
+
+@unpublished{BKK.03,
+    Author = {Bassett, G. and R. Koenker and G. Kordas},
+    Title = {Pessimistic Portfolio Allocation and Choquet Expected Utility},
+    Note = {preprint},
+    Year = 2003,
+}
+@book{K.05,
+    Author = {Koenker, R.},
+    Title = {Quantile Regression },
+    Publisher = {Cambridge U. Press},
+    Year = 2005,
+}
+@article{K.2005,
+    Author = {Koenker, R.},
+    Title = {Quantile Regression for Longitudinal Data},
+    Journal = {Journal of Multivariate Analysis},
+    Note = {forthcoming},
+    Year = 2005,
+}
+@inproceedings{BlunPow.01,
+    Author = {Blundell, R. and J.L.  Powell},
+    Title = {Endogeneity in Nonparametric and Semiparametric Regression Models},
+    Booktitle = {Advances in Economics and Econometrics: Theory and
+      Applications},
+    Publisher = {Cambridge U. Press},
+    Year = 2003,
+}
+
+@article{Wright.34,
+    Author = {Wright, S.},
+    Volume = 5,
+    Pages = {161--215},
+    Title = {The Method of Path Coefficients},
+    Journal = {The Annals of Mathematical Statistics},
+    Year = 1934
+}
+@article{Working.27,
+    Title = {What do Statistical Demand Curves Show?},
+    Volume = 41,
+    Pages = {212--235},
+    Author = {Working, E.J.},
+    Journal= {Quarterly Journal of Economics},
+    Year = 1927
+}
+@article{Powell.83,
+    Journal = Econmtca,
+    Volume = 51,
+    Pages = {1569--1576},
+    Author = {Powell, J. L.},
+    Title = {The Asymptotic Normality of Two-stage Least Absolute Deviations Estimators},
+    Year = 1983
+}
+
+
+@phdthesis{Park.92,
+	Author = {Park, B.J.},
+	Title = {Quantile regression and the duration of unemployment},
+	School = {U. of Illinois},
+	Year = 1992
+}
+@article{KB.78,
+	Author = {Koenker, R. and Bassett, G. },
+	Year = 1978,
+	Title = { Regression Quantiles}, 
+	Journal = { Econometrica},
+	Volume = { 46}, 
+	Pages = {33-50}
+	}
+@article{BK.82,
+	Author = {Bassett, G. and R. Koenker},
+	Year = 1982,
+	Title = {An empirical quantile function for linear models with iid errors},
+	Journal = {Journal of the American Statistical Association},
+	Volume = {77}, 
+	Pages = {407--415},
+	}
+@article{KB.82,
+	Author = {Koenker, R. and Bassett, G},
+	Year = 1982,
+	Title = { Tests of linear hypotheses and l$_1$ estimation},
+	Journal = { Econometrica},
+	Volume = { 50}, 
+	Pages = {1577-1584}
+	}
+ 
+@article{W.45,
+	Author = {Wilcoxon, F.}, 
+	Year = {1945},
+	Title = { Individual comparisons by ranking methods}, 
+	Journal = {Biometrics}, 
+	Volume = {1}, 
+	Pages = {80--83},
+	}
+@article{BKS.71,
+	Author = {Boneva, L.I. and D. Kendall and I. Stefanov}, 
+	Year = {1971}, 
+	Title = {Spline transformations:
+		three new diagnostic aids for the statistical Data-analyst},
+        Journal = {Journal of the Royal Statistical Society. Series B}, 
+	Volume = {33}, 
+	Pages= {1--71},
+	}
+
+@article{KB.82b,
+	Author = {Koenker, R. and Bassett, G.},
+	Year = 1982 ,
+	Title = { Robust tests for heteroscedasticity based on regression quantiles},
+	Journal = { Econometrica}, 
+	Volume = { 50},
+	Pages = {43-61}
+	}
+@article{KO.87,
+	Author = {Koenker, R. and d'Orey, V.},
+	Year = 1987,
+	Title = { Computing Regression Quantiles},
+	Journal = { Applied Statistics},
+	Volume = { 36}, 
+	Pages = {383-393}
+	}
+@article{KO.93,
+	Author = {Koenker, R. and d'Orey, V.},
+	Year = 1993,
+	Title = { A Remark on Computing Regression Quantiles},
+	Journal = { Applied Statistics},
+	Volume = { 36}, 
+	Pages = {383-393}
+	}
+@article{KS.94,
+	Author = {Koenker, R. and Schorfheide, F.},
+	Year = 1994,
+	Title = { Quantile Smoothing Splines for global temperature change},
+	Journal = { Climatic Change},
+	Volume = { 28},
+	Pages = {395-404},
+	}
+@inproceedings{K.94,
+	Author = {Koenker, R.},
+	Year = 1994 ,
+	Title = { Confidence intervals for regression quantiles},
+	editor = {Mandl P. and \Huskova, M.},
+	Booktitle = { Asymptotic Statistics:  Proceedings of the 
+		5th Prague Symposium on Asymptotic Statistics},
+	Publisher = {Physica-Verlag:  Heidleberg},
+	}
+@inproceedings {K.96,
+	Author = {Koenker, R.},
+	Year = 1996,
+	Title = { Rank Tests for Linear Models},
+	editor = {C.R. Rao and G.S. Maddala} ,
+	booktitle = {Handbook of Statistics},
+	Publisher = {North-Holland:  New York},
+	}
+@inproceedings {M.93,
+	Author = {Manski, C.},
+	Year = 1993,
+	Title = { The Selection Problem in Eocnometrics and Statistics},
+	editor = {G.S. Maddala, C.R. Rao and H.D. Vinod} ,
+	booktitle = {Handbook of Statistics},
+	Publisher = {Elsevier:  New York},
+	}
+@article {KP.90,
+	Author = {Koenker, R.W. and Portnoy, S.},
+	Year = 1990,
+	Title = { M Estimation of multivariate regressions},
+	Journal = {J. of American Statistical Association},
+	Volume = { 85},
+	Pages = {1060-68},
+	}
+@article {KM.96,
+	Author = {Koenker, R. and Machado, J.A.F.},
+	Year = 1996,
+	Title = { {GMM} inference when the number of moment conditions is large},
+	note = {preprint}
+	}
+@article {Kgef,
+        Author = {Koenker, R.},
+        Title = {Galton, {E}dgeworth, {F}risch and Prospects for Quantile
+                Regression in Econometrics},
+        Journal = {J. Econometrics},
+        Volume = {95},
+        Pages = {347--374},
+        Year = 2000,
+}
+@unpublished{KX.03,
+	Author = {Koenker, R. and Z. Xiao},
+	Title = {Quantile autoregression},
+	Note = {preprint},
+	Year = 2003,
+	}
+@article {KX.04,
+	Author = {Koenker, R. and Xiao, Z.},
+	Title = {Unit Root Quantile Autoregression Inference},
+	Journal = {JASA},
+	Note = {forthcoming},
+	Year = 2004,
+	}
+@article{BDT.01,
+      author = {Breidt, F. Jay and Davis, Richard A. and Trindade, A.
+	Alexandre},
+          title = {Least absolute deviation estimation for all-pass
+	    time series models},
+	      year = {2001},
+	          journal = {The Annals of Statistics},
+		      volume = {29},
+		          number = {4},
+			      pages = {919--946},
+			          keywords = {62M10 (MSC2000); 62E20
+				    (MSC2000); 62F10 (MSC2000);
+				    Laplacian density; noncausal;
+				    noninvertible; nonminimum phase;
+				    White noise}
+}
+
+@article{KX.02,
+	Author = {Koenker, R. and Xiao, Z.},
+	Title = {Inference on the quantile regression process},
+	Journal = {Econometrica},
+	Pages = {1583--1612},
+	Volume = 70,
+	Year = 2002,
+	}
+@unpublished{Kgon.99,
+	Author = {Koenker, R.},
+	Title = {Penalized Triograms Or Pragmatic Goniolatry},
+	Note = {Paper presented in a conference in honor of G. Judge},
+	Year = 1999
+}
+
+@article{KM.99,
+	Author = {Koenker, R. and Machado, J.A.F.},
+	Title = {Goodness of fit and related inference processes for quantile
+		regression},
+	Journal = JASA,
+	Pages = {1296-1310},
+	Volume = 94,
+	Year = 1999
+	}
+@unpublished{MM.97,
+	Author = {Machado, J.A.F. and Mata, J.},
+	Year = 1997,
+	Title = { Earnings functions in {P}ortugal 1982-94: Evidence from
+quantile regressions},
+	note = {preprint}
+	}
+
+@article{MM.00,
+	Author = {Machado, J.A.F. and Mata, J.},
+	Year = 2000,
+	Title ={Box-Cox Quantile regression and the distribution of firm sizes},
+	Journal = {Journal of Applied Econometrics},
+	Pages = {253-274},
+	}
+
+@unpublished{FK.97,
+	Author = {Fitzenberger, B. and C. Kurz },
+	Year = 1997,
+	Title = { New insights on earnings trends across skill groups
+and industries in {W}est {G}ermany},
+	note = {preprint}
+	}
+
+@unpublished{tannuri.00,
+	Author = {Tannuri, M.},
+	Title = {Are the assimilation processes of low and high income 
+		immigrants distinct? A Quantile Regression Approach},
+	Note = {preprint},
+	Year = 2000,
+	}
+
+@unpublished{BF.98,
+	Author = {B\"uttner, T. and Fitzenberger, B. },
+	Year = 1998,
+	Title = { Central Wage Bargaining and Local Wage Flexibility:
+		Evidence from the Entire Wage Distribution},
+	note = {preprint}
+	}
+@article{FHMS,
+	Author = {Fitzenberger, B. and Hujer, R. and MaCurdy, T.E. 
+		and Schnabel, R.},
+	Title = {Testing for uniform wage trends in West-Germany:
+		A cohort analysis using quantile regressions for censored data},
+	Journal = EE,
+	Volume = 26,
+	Year = 2001,
+	}
+@article{zhao.99,
+	Author = {Zhao, Q.},
+	Year = 1999,
+	Title = { Asymptotically efficient median regression in the presence of heteroscedasticity of unknown form},	
+	Journal = { Econometric Theory},
+	Volume = 17,
+	Pages = {765--784},
+	Note = { forthcoming},
+	}
+@article {KZ.94,
+	Author = {Koenker, R.W. and Zhao, Q.},
+	Year = 1994,
+	Title = { L-Estimation for linear heteroscedastic models},
+	Journal = { J. of Nonparametric Statistics},
+	Volume = { 3},
+	Pages = {223-235},
+	}
+@article {KZ.96,
+	Author = {Koenker, R.W. and Zhao, Q. },
+	Title = { Conditional quantile estimation and interence for ARCH models},
+	Journal = { Econometric Theory},
+	Volume = {12},
+	Pages = {793-813},
+	Year = 1996,
+	}
+@article{phil.91,
+    Journal = ET,
+    Volume = 7,
+    Pages = {450--463},
+    Keywords = {Least absolute deviation; Regression},
+    Author = {Phillips, P. C. B.},
+    Title = {A Shortcut to {L}AD Estimator Asymptotics},
+    Year = 1991
+}
+
+
+@inproceedings{pinkus.97,
+    Booktitle  = {Surface fitting and multiresolution methods},
+    Pages = {  1-- 14},
+    Author = {Pinkus, A.},
+    Title = {Approximating by Ridge Functions},
+    Editor = { M\'ehaut\'e, A. and Rabut, C. and Schumaker, L.L.},
+    Year = 1997
+}
+
+@inproceedings{pinkus:97,
+	Author = {Pinkus, A.},
+	Title = {Approximating by Ridge Functions},
+	Booktitle = {Surface Fitting and Multiresolution Methods},
+	Editor = { LeM\'ehaut\'e, A. and Rabut, C. and Schumaker, L.L.},
+	Publisher = {Vanderbilt U. Press},
+	Year = 1997
+	}
+@article{Dikin,
+	Author = {Dikin, I.I.},
+	Title = {Iterative solution of problems of linear and quadratic programming}, 
+	Journal = {Soviet Mat. Dokl.}, 
+	Volume = {8}, 
+	Pages = {674--675},
+	Year = 1967, 
+	}
+@article{VMF.86,
+	Author = { Vanderbei, R.J.and  M.J. Meketon and B.A. Freedman},
+	Year = {1986},
+	Title = {A modification of Karmarkar's linear programming algorithm},
+	Journal = {Algorithmica}, 
+	Volume = {1}, 
+	Pages = {395--407},
+	}
+@article{Zhang.92,
+	Author = {Zhang, Y.},
+	Year = {1992}, 
+	Title = {Primal-dual interior point approach for computing $\ell_1$-solutions 
+		and $\ell_\infty$-solutions of overdetermined linear systems}, 
+	Journal = {J. Optimization Theory and Applications}, 
+	Volume = {77}, 
+	Pages = {323--341},  
+	}
+
+@article{PJ.99,
+	Author = {Portnoy, S. and  Jure\v{c}kov\'a, J.},
+	Title = {On extreme regression quantiles},
+	Journal = {Extremes},
+	Volume = 2,
+	Pages = {227-243},
+	Year = 1999
+}
+
+
+@article{PK.1997,
+	author = {Portnoy, S. and R. Koenker},
+	title = {The {G}aussian Hare and the {L}aplacian Tortoise:
+		Computability of squared-error versus absolute-error estimators,
+		with discusssion},
+	journal = StatSci,
+	volume = 12,
+	pages = {279--300},
+	Year = 1997
+}
+
+@article{poll.91,
+    Journal = ET,
+    Volume = 7,
+    Pages = {186--199},
+    Keywords = {Autoregressive model; Cauchy distribution},
+    Author = {Pollard, David},
+    Title = {Asymptotics for Least Absolute Deviation Regression
+            Estimators},
+    Note = {Asymptotics under weaker design conditions.},
+    Year = 1991
+}
+
+      @article{mart:1982,
+          Author = {Martin, R. Douglas},
+          Title = {The {C}ramer-Rao Bound and Robust $M$-estimates for
+                  Autoregressions},
+          Year = 1982,
+          Journal = {Biometrika},
+          Volume = 69,
+          Pages = {437--442},
+          Keywords = {Time series}
+      }
+
+
+
+      @article{knig:1991,
+          Author = {Knight, Keith},
+          Title = {Limit Theory for $M$-estimates in An Integrated Infinite
+                  Variance Process},
+          Year = 1991,
+          Journal = {Econometric Theory},
+          Volume = 7,
+          Pages = {200--212},
+          Keywords = {Least squares}
+      }
+
+
+
+      @article{knig:1989,
+          Author = {Knight, Keith},
+          Title = {Limit Theory for Autoregressive-parameter Estimates in An
+                  Infinite-variance Random Walk},
+          Year = 1989,
+          Journal = {The Canadian Journal of Statistics},
+          Volume = 17,
+          Pages = {261--278},
+          Keywords = {$M$-estimator}
+      }
+
+      @article{DKL.92,
+          Author = {Davis, Richard A. and Knight, Keith and Liu, Jian},
+          Title = {$M$-estimation for Autoregressions With Infinite Variance},
+          Year = 1992,
+          Journal = {Stochastic Processes and their Applications},
+          Volume = 40,
+          Pages = {145--180},
+          Keywords = {Least absolute deviation; Stable distribution; Limit
+                     theorem}
+      }
+
+
+
+
+
+@article{port.91,
+    Journal = JMA,
+    Volume = 38,
+    Pages = {100--113},
+    Keywords = {ARMA process},
+    Author = {Portnoy, Stephen},
+    Title = {Asymptotic Behavior of Regression Quantiles in Non-stationary,
+            Dependent Cases},
+    Year = 1991
+}
+
+
+
+@article{powe.86,
+    Journal = JEx,
+    Volume = 32,
+    Pages = {143--155},
+    Keywords = {Semiparametric estimation; Nonlinear model},
+    Author = {Powell, J. L.},
+    Title = {Censored Regression Quantiles},
+    Year = 1986
+}
+
+@book{Dhrymes.70,
+	Author = {Dhrymes, P.},
+	Title = {Econometrics: Statistical Foundations and Applications},
+	Publisher = {Harper \& Row: New York},
+	Year = 1970,
+}
+
+@book{pynchon.97,
+	Author = {Pynchon, T.},
+	Title = {Mason and Dixon},
+	Publisher = {Henry Holt},
+	Year = 1997,
+}
+
+@article{reinsch.67,
+	Author = {Reinsch, C.},
+	Title = {Smoothing by spline functions},
+	Journal = {Numerische Matematik},
+	Pages ={177-183},
+	Year = 1967
+}
+
+
+
+
+@article{Huber.64,
+    Author = {Huber, Peter J.},
+    Title = {Robust Estimation of a Location Parameter},
+    Year = 1964,
+    Journal = {The Annals of Mathematical Statistics},
+    Volume = 35,
+    Pages = {73--101}
+}   
+
+@article{hube:1973,
+          Author = {Huber, Peter J.},
+          Title = {Robust Regression: {A}symptotics, Conjectures and {M}onte
+                  {C}arlo},
+          Year = 1973,
+          Journal = {The Annals of Statistics},
+          Volume = 1,
+          Pages = {799--821},
+          Keywords = {Lectures, Wald}
+      }
+@article{Wald.40,
+    Author = {Wald, A.},
+    Title = {The fitting of straight lines if both variables are subject to error},
+    Journal = {Annals of Mathematical Statistics},
+    Year = 1940,
+	}
+
+@book{RL.87, 
+    Author = {Rousseeuw, Peter J. and Leroy, Annick M.},
+    Title = {Robust Regression and Outlier Detection},
+    Year = 1987,
+    Publisher = {Wiley},
+    Pages = {329},
+    Keywords = {Breakdown point; Regression diagnostic; Least median of
+               squares}
+}
+@article{vrhs.02,
+    Author = {Van Aelst, Stefan and Rousseeuw, Peter J. and Hubert, Mia and
+             Struyf, Anja},
+    Title = {The Deepest Regression Method},
+    Year = 2002,
+    Journal = {Journal of Multivariate Analysis},
+    Volume = 81,
+    Number = 1,
+    Pages = {138--166},
+    Keywords = {[regression depth]; [algorithm]; [inference];
+               Michaelis-Menten model of enzyme kinetics; linear
+               regression; robustness and adaptive procedures}
+} 
+
+@article{M.02,
+	Author = {Mizera, I. }, 
+	Title = {On Depth and Deep Points: A Calculus }, 
+        Journal = {The Annals of Statistics},
+	Volume = 30,
+	Pages = {1681--1736},
+	Year =  2002 
+	}
+@article{RH.99,
+	Author = {Rousseeuw, P.J. and Hubert, M.}, 
+	Title = {Regression Depth}, 
+	Journal = JASA,
+	Volume = 94,
+	Pages = {388--433},
+	Year = 1999  
+	}
+@ARTICLE{Duc76,
+        author={J. Duchon},
+        title={Interpolation des fonctions de deux variables suivant
+                le principe de la flexion des plaques minces},
+        journal={ R.A.I.R.O., Analyse num{\'e}rique},
+        volume={10},
+        pages={1-13},
+        year={1976}
+}
+@INCOLLECTION{Duc77,
+        author={J. Duchon},
+        title={Splines minimizing rotation-invariant semi-norms in
+                Sobolev spaces},
+        booktitle={Constructive Theory of Functions of Several Variables, Oberwolfach 1976},
+        publisher={Springer},
+        address={Berlin},
+        pages={85-100},
+        series={Lecture Notes in Mathematics 571},
+        year={1977}
+}
+@article{ober:1982,
+    Author = {Oberhofer, Walter},
+    Title = {The Consistency of Nonlinear Regression Minimizing the
+            $L_1$-norm},
+    Year = 1982,
+    Journal = {The Annals of Statistics},
+    Volume = 10,  
+    Pages = {316--319}
+}
+
+@article{rippa.92,
+	Author = {Rippa, S.},
+	Title = { Long and thin triangles acn be good for linear interpolation},
+	Journal = { SIAM J. Numer. Anal.},
+	Pages = { 257--270},
+	Volume = {29},
+	Year = 1992,
+}
+
+@article{rock.83,
+    Journal = Biomtrka,
+    Volume = 70,
+    Pages = {421--431},
+    Keywords = {Biweight estimate; Huber estimate; Least squares; Outlier;
+               Random effects model; Variance components},
+    Author = {Rocke, David M.},
+    Title = {Robust Statistical Analysis of Interlaboratory Studies},
+    Year = 1983
+}
+
+
+@book{Rockafellar,
+	Author =  {Rockafellar, T.},
+	Title = {Convex Analysis},
+	Publisher = {Princeton},
+	Year = 1970
+}
+
+@book{RS,
+	Author =  {Ramsay, J.O. and B.W. Silverman},
+	Title = {Functional Data Analysis},
+	Publisher = {Springer},
+	Year = 1997
+}
+
+@article{rupp.85,
+    Journal = AnlsStat,
+    Volume = 13,
+    Pages = {236--245},
+    Keywords = {Stochastic approximation},
+    Author = {Ruppert, David},
+    Title = {A {N}ewton-Raphson Version of the Multivariate {R}obbins-Monro
+            Procedure},
+    Year = 1985
+}
+
+
+
+
+@article{S.97,
+    Journal = {AnlsStat},
+    Volume = 25,
+    Pages = {613--641},
+    Author = {Stute, W.},
+    Title = {Nonparametric Model Checks for Regression},
+    Year = 1997
+}
+
+@article{schw.78,
+    Journal = AnlsStat,
+    Volume = 6,
+    Pages = {461--464},
+    Keywords = {Akaike information criteria; Asymptotics},
+    Author = {Schwarz, Gideon},
+    Title = {Estimating the Dimension of a Model},
+    Year = 1978
+}
+
+
+@article{OW.71,
+	Journal = {Computer Journal},
+	Author = { Osborne, M.R. and Watson, G.A.},
+	Title = {On an algorithm for discrete nonlinear l1  approximation},
+	Volume = 14,
+	Pages = { 184--188},
+	Year = 1971,
+	}
+@article{OPT.00,
+	Journal = JCGS,
+	Author = { Osborne, M.R. and Presnell, B. and Turlach, B.A.},
+	Title = {On the Lasso and its Dual},
+	Volume = 9,
+	Pages = { 319--337},
+	Year = 2000,
+	}
+
+      @article{fran:frie:1993,
+          Author = {Frank, Ildiko E. and Friedman, Jerome H.},
+          Title = {A Statistical View of Some Chemometrics Regression Tools
+                  (Disc: P136-148)},
+          Year = 1993,
+          Journal = {Technometrics},
+          Volume = 35,
+          Pages = {109--135},
+          Keywords = {Ridge regression; Partial least squares; Principal
+                     component regression; Variable selection}
+      }
+@article{FS.81,
+    Author = {Friedman, Jerome H. and Stuetzle, Werner},
+    Title = {Projection Pursuit Regression}, 
+    Year = 1981,
+    Journal = {Journal of the American Statistical Association},
+    Volume = 76,
+    Pages = {817--823},
+    Keywords = {Nonparametric regression; Smoothing}
+}
+ 
+@book{Hardle.90,
+    Author = {\Hardle, Wolfgang},
+    Title = {Applied Nonparametric Regression},
+    Year = 1990,
+    Publisher = {Cambridge University Press},
+}
+
+@book{fan:gijb:1996,
+    Author = {Fan, Jianqing and Gijbels, Irene},
+    Title = {Local Polynomial Modelling and Its Applications},
+    Year = 1996,
+    Publisher = {Chapman \& Hall},
+    Pages = {341}
+}   
+
+
+
+
+
+
+@article{SHKT.97,
+	Journal = {Annals of Statistics},
+	Pages = {1371--1470},
+	Volume = 25,
+	Title = {Polynomial splines and their tensor products in extended
+	linear modeling},
+	Author = {Stone, C. and Hansen, M. and Kooperberg, C. and Troung, Y.K.},
+	Year = 1997
+}
+
+
+@article{SJS.98,
+	Author = {Scharf, F.S., F. Jaunes and M. Sutherland},
+	title ={Inferrring ecological relationships from the edges of
+scatter diagrams:  Comparison of regression techniques},
+	journal = {Ecology},
+	volume = {79},
+	pages = {448-460},
+	year = 1998,
+	}
+@article{SM.98,
+	Author = {Schultz, T.P. and Mwabu, G.},
+	Title = {Labor unions and the distribution of wages and employment
+			in {South Africa}},
+	Journal = ILRR,
+	Volume = 51,
+	Pages = {680-703},
+	Year = 1998
+}
+
+@book{Small,
+	Author = {Small, C.G.},
+	Title = {The Statistical Theory of Shape},
+	Publisher = {Springer},
+	Year = 1997
+}
+
+@article{smit.94,
+    Journal = Biomtrka,
+    Volume = 81,
+    Pages = {173--183},
+    Keywords = {Maximum likelihood; Linear programming},
+    Author = {Smith, Richard L.},
+    Title = {Nonregular Regression},
+    Year = 1994
+}
+
+
+
+@book{Stoker,
+	Author = {Stoker, T.M.},
+	Title = {Lectures on Semiparametric Econometrics},
+	Publisher = {CORE Foundation:  Louvain},
+	Year = 1992,
+	}
+@article{ston.94,
+    Journal = AnlsStat,
+    Volume = 22,
+    Pages = {118--171},
+    Keywords = {Density estimation; Regression; Generalized linear model},
+    Author = {Stone, Charles J.},
+    Title = {The Use of Polynomial Splines and Their Tensor Products in
+            Multivariate Function Estimation (Disc: P171-184)},
+    Year = 1994
+}
+
+
+
+@book{SW,
+	Author = {Shorack, G. R. and Wellner, J.A},
+	Title = {  Empirical Processes with Applications to Statistics},
+	Publisher = {Wiley:  New York},
+	Year = 1986,
+	}
+@article{subr:1972,
+    Author = {Subrahmanyam, M.},
+    Title = {A Property of Simple Least Squares Estimates},
+    Year = 1972,
+    Journal = {Sankhy\=a, Series B, Indian Journal of Statistics},
+    Volume = 34,
+    Pages = {355--356},
+    Keywords = {Regression}
+}
+@article{Theil.50,
+	Author = {Theil, H.},
+	Title = {A rank-invariant method of linear and polynomial
+		regression analysis, I-III}, 
+	Journal = {Ned. Akad. Wetenschappen (Series A)}, 
+	Volume = {53}, 
+	Pages = {386--02, 521--25, 1397--1412},
+	Year = 1950
+}
+
+ 
+@article{tibs.96,
+    Journal = JRSS-B,
+    Volume = 58,
+    Pages = {267--288},
+    Keywords = {Subset selection},
+    Author = {Tibshirani, Robert},
+    Title = {Regression Shrinkage and Selection Via the Lasso},
+    Year = 1996
+}
+
+@inproceedings{dickey.74,
+	Author = {Dickey, J.},
+	Title = {Bayesian alternatives to the F-test and least squares 
+		estimate in the normal linear model},
+	Booktitle = {Studies in Bayesian econometrics and statistics},
+	Editor = {Fienberg, S.I. and Zellner, A.},
+	Publisher = {North-Holland},
+	Year = 	1974
+	}
+
+
+@misc{turner.96,
+	Author = {Turner, R.},
+	Title = {Splus Functions for Delaunay triangulation}, 
+	Note = {{\tt http://www.stat.cmu.edu/S}},
+	Year = 1996,
+}
+
+@book{Frisch.34,
+	Author = {Frisch, R.},
+	Title = {Statistical Confluence Analysis by Means of Complete Regression
+		Systems},
+	Publisher = {Universitetets {\O}konomiske Institutt: Oslo},
+	Year = 1934,
+	}
+@article{AHS.01,
+	Author = { Arias, O. and Hallock, K. and Sosa-Escudero, W.},
+	Title = { Indidividual heterogeneity in the returns to schooling:
+	instrumental variables quantile regression using Twins data},
+	Pages = {7-40},
+	Volume =26,
+	Journal = {Empirical Economics},
+	Year = 2001
+	}
+ 
+@article{VH.99,
+	Journal = AER,
+	Volume = 89,
+	Pages = {1010--27},
+	Author = {Viscusi, W.K. and Hamilton, J.T.},
+	Title = {Are Risk Regulators Rational? Evidence from Hazardous 
+		Waste Cleanup Decisions },
+	Year = 1999
+}
+@article{VB.95,
+	Journal = JLS,
+	Volume = 24,
+	Pages = {463-90},
+	Author = {Viscusi, W.K. and Born, P.},
+	Title = {Medical Malpractice Insurance in the Wake of Liability
+               Reform},
+	Year = 1995
+}
+@article{KBT,
+      author = {Bassett, Gilbert W., Jr. and Tam, Mo-Yin S. and
+	Knight, Keith},
+          title = {Quantile models and estimators for data analysis},
+	      year = {2002},
+	          journal = {Metrika},
+		      volume = {55},
+			      pages = {17--26},
+	}
+
+@unpublished{Morillo,
+	Author = {Morillo, D.},
+	Title = {Income mobility with nonparametric quantiles: A comparison
+		of the U.S. and Germany},
+	Year = 2000,
+	Note = {preprint}
+	}
+@book{Hardy,
+	Author = {Hardy, G.H.},
+	Title = {A Course of Pure Mathematics},
+	Publisher = {Cambridge:  Baltimore},
+	Edition = {10},
+	Year = 1952,
+	}
+@book{deaton.97,
+	Author = {Deaton, A.},
+	Title = {The Analysis of Household Surveys},
+	Publisher = {Johns Hopkins:  Baltimore},
+	Year = 1997,
+	}
+@article{Mueller,
+	Author = {Mueller, R.E.},
+	Title = {Public and Private Wage Differentials in Canada Revisited},
+	Journal = {Industrial Relations},
+	Volume = {39},
+	Pages = {375-400},
+	Year = 2000,
+	}
+
+@article{Trede,
+	Author = {Trede, M.},
+	Title = {Making Mobility Visible:  A Graphical Device},
+	Journal = EL,
+	Pages = {77--82},
+	Volume = {59},
+	Year = 1998,
+}
+@article{GMM.00,
+	Author = {Gosling, A. and  Machin, S. and Meghir, C.},
+	Title = {The changing distribution of male wages in the U.K.},
+	Journal = {Review of Economic Studies},
+	Volume = {67},
+	Pages = {635--666},
+	Year = 2000 
+	}
+
+@article{hill:1975,
+    Author = {Hill, Bruce M.},
+    Title = {A Simple General Approach to Inference About the Tail of a
+            Distribution},
+    Year = 1975,
+    Journal = {The Annals of Statistics},
+    Volume = 3,
+    Pages = {1163--1174}, 
+    Keywords = {Bayes inference; Order statistics}
+}
+@inproceedings{GMM.96,
+	Author = {Gosling, A. and  Machin, S. and Meghir, C.},
+	Editor = {Hills, J.},
+	Title = {What Has Happened to the Wages of Men since 1966?},
+	Booktitle = { New inequalities: The changing distribution of income and 		wealth in the United Kingdom},
+	Year = 1996
+	}
+
+@Article{engel.1857,
+	  author = {Engel, E.},
+	  title = {Die Produktions- und Konsumptionsverh\"{a}ltnisse des 
+	    K\"{o}nigreichs Sachsen},
+	  Journal =  {Zeitschrift des Statistischen Bureaus des K\"{o}niglich
+	    S\"{a}chsischen Ministeriums des Innern},
+	   year = 1857,
+	    volume = 8,
+	    pages = {1--54}
+}
+@article {zhao.00,
+	Author ={Zhao, Q.},
+	Title = {Asymptotically efficient median regression in the presence of 
+		heteroscedasticity of unknown form},
+	Journal = JEx,
+	Note = {forthcoming},
+	Year = 2000
+	}
+@unpublished {HjP.93,
+	Author = { Hj{\o}rt, N.L. and Pollard, D.},
+	Title = { Asymptotics for minimizers of convex processes},
+	Note = {Statistical Research Report},
+	Institution = {U. of Oslo},
+	year = 1993,
+	}
+
+@article{wahb.75,
+    Journal = {Numerische Matematik},
+    Volume = 24,
+    Pages = {383-393},
+    Author = {Wahba, Grace},
+    Title = {Smoothing Noisy Data by Spline Functions},
+    Year = 1975
+}
+
+
+
+@book{wahba.90,
+	Author = {Wahba, G.},
+	Title = {Spline Models for Observational Data},
+	Publisher = {SIAM},
+	Year = 1990
+}
+
+@article{wels:1989,
+          Author = {Welsh, A. H.},
+          Title = {On $M$-processes and $M$-estimation (Corr: {V}18 P1500)},
+          Year = 1989,
+          Journal = {The Annals of Statistics},
+          Volume = 17,
+          Pages = {337--361},
+          Keywords = {Robust estimation; Regression quantile}
+      }
+
+
+
+@article{koen:1988,
+          Author = {Koenker, Roger},
+          Title = {Asymptotic Theory and Econometric Practice},
+          Year = 1988,
+          Journal = {Journal of Applied Econometrics},
+          Volume = 3,
+          Pages = {139--147}
+      }
+
+@unpublished{K.1995,
+          Author = {Koenker, R. },
+          Title = {Quantile Regression Software},
+          Year = 1995, 
+	Note = {{\tt www.econ.uiuc.edu/$\sim$roger/research/rq/\\rq.html}}
+      }
+@unpublished{KH.01,
+          Author = {Koenker, R. and Hallock, K.},
+          Title = {Quantile Regression: An Introduction},
+          Year = 2000, 
+	Note = {{\tt www.econ.uiuc.edu/$\sim$roger/research/intro/intro.html}}
+      }
+
+
+
+
+@article{wels.96,
+    Journal = {StSinica},
+    Volume = 6,
+    Pages = {347--366},
+    Keywords = {$M$-estimator; Nonparametric regression},
+    Author = {Welsh, A. H.},
+    Title = {Robust Estimation of Smooth Regression and Spread Functions
+            and Their Derivatives},
+    Year = 1996
+}
+
+@inproceedings {Wel.87,
+	Author = {Welsh, A.H},
+	Year = 1987,
+	Title = { Kernel estimates of the sparsity function},
+	Booktitle =  {Statistical Data Analysis Based on the $L_1$-norm and Related, Methods},
+	Editor = {Y. Dodge}, 
+	Publisher =  {Elsevier:  New York},
+	Pages = {369-377},
+	}
+@article {Wolak,
+	Author = {Wolak, F. A. },
+	Year = 1987,
+	Title = { An exact test for multiple inequality and equality constraints in the linear regression model},
+	Journal = { Journal of the American Statistical Association},
+	Volume = { 82},
+	Pages = {782-793},
+	}
+@article {W.92,
+	Author = {Wright, M.H. },
+	Year = 1992,
+	Title = { Interior Methods for constrained optimization},
+	Journal = { Acta Numerica},
+	Pages = {341-407},
+	}
+
+@article{Yang.99,
+	Author = {Yang, S.},
+	Title = {Censored median regression using weighted empirical
+		survival and hazard functions},
+	Journal = JASA,
+	Volume = 94,
+	Pages = {137--145},
+	Year = 1999
+}
+
+@article{YJW.92,
+    Journal = JASA,
+    Volume = 90,
+    Pages = {178--184},
+    Keywords = {Accelerated failure time; Censored data; Least absolute
+               deviation},
+    Author = {Ying, Z. and Jung, S. H. and Wei, L. J.},
+    Title = {Survival Analysis With Median Regression Models},
+    Year = 1995
+}
+
+
+
+@inproceedings{Z.97,
+	author = {Zwanzig,  S.},
+	title = {On $L_1$ norm estimators in nonlinear regression and in 
+			nonlinear errors in variables models},
+	booktitle = {$L_1$-Statistical Procedures and Related Topics},
+	series = {IMS Lecture Notes-Monograph Series},
+	editor = {Dodge, Y.},
+	Year = 1997
+}
+
+@article{ZP.96,
+	Author = {Zhou, K.Q. and S.L. Portnoy},
+	Year = 1996,
+	Title = { Direct use of regression quantiles to construct confidence 
+		sets in linear models},
+	Journal = { Annals of Statistics},
+	Volume = { 24},
+	Pages = {287-306},
+	}
+
+@book{ABGK.94,
+    Author = {Andersen, P.K. O. Borgan, R. Gill and N. Keiding},
+    Title = {Statistical Models Based on Counting Processes},
+    Publisher = {Springer:Berlin},
+    Year = 1994
+}
+
+@article{CDDK.92,
+        Author = {Corson, W., P. Decker, S. Dunstan and S. Keransky },
+        Title = {Pennsylvania`reemployment bonus' demonstration:  Final 
+report},
+        Journal = {Unemployment Insurance occasional Paper, US Dept of Labor, Employment and Training Administration, Washington, D.C. },
+        Volume = {92},
+        Year = 1992
+}
+
+@article{nair:1982,
+    Author = {Nair, Vijayan N.},       
+    Title = {Q-Q Plots With Confidence Bands for Comparing Several
+            Populations},
+    Year = 1982,
+    Journal = {Scandinavian Journal of Statistics},
+    Volume = 9,
+    Pages = {193--200},
+    Keywords = {Goodness-of-fit; Quantile plot}
+}  
+
+@article{hogg:1975,
+    Author = {Hogg, R. V.},
+    Title = {Estimates of Percentile Regression Lines Using Salary Data},
+    Year = 1975,
+    Journal = {Journal of the American Statistical Association},
+    Volume = 70,
+    Pages = {56--59},  
+    Keywords = {Brown-Mood test; Normality test; Variance, assumed equality
+               of}
+}  
+
+@unpublished{Hogg.79,
+	Author = {Hogg, R. V.},
+	note = {private communication},
+	year = 1979, 
+}
+@unpublished{DA.02,
+	Author = {Doksum, K. and R. Aaberge},
+	Title = { Lorenz, Gini, Bonferroni and Quantile Regression},
+	note = {preprint},
+	year = 2002
+	}
+@article{DS.76,
+        Author = {Doksum, K and G.L. Sievers},
+        Title = {Plotting with confidence:  Graphical comparisons of 
+two populations },
+        Journal = {Biometrika},
+        Volume = 63,
+        Pages = {421-434},
+        Year = 1976
+}
+
+@article{DG.90,
+        Author = {Doksum, K. and M. Gasko},
+        Title = {On a correspondence between models in binary regression and survival analysis },
+        Journal = { Intl. Stat. Rev.},
+        Volume = 58,
+        Pages = {243--252},
+        Year = 1990
+}
+
+@article{HN.87,
+        Author = {Horowitz, J.L. and G.R. Neumann},
+        Title = {Semiparametric estimation of employment duration models },
+        Journal = { Econometric Reviews},
+        Volume = 6,
+        Pages = {5--40},
+        Year = 1987
+}
+@inproceedings{Tukey.75,
+	author = {Tukey, J.},
+	year = {1975}, 
+	title = {Mathematics and Picturing Data},
+	editor = {James, R.},
+	booktitle = {Proceedings of the 1974 Congress of Mathematicians}, 
+	volume = {2}, 
+	pages = {523--531}
+}
+@article{T.65,
+	author = {Tukey, J.},
+	year = {1965}, 
+	title = {What part of the sample contains the information?},
+	journal = {Proc. Natl Academy}, 
+	volume = {53}, 
+	pages = {127--134}
+}
+@article{O.73,
+	author = {Oaxaca, R.},
+	year = 1973}, 
+	title = {Male-Female Wage Differentials in Urban Labor Markets},
+	journal = {International Economic Review}, 
+	volume = {14}, 
+	pages = {693--709}
+}
+
+
+@article{MTL,
+         Author = {McGill, Robert and Tukey, John W. and Larsen, Wayne A.},
+         Title = {Variations of {B}ox Plots},
+         Year = 1978,
+         Journal = {The American Statistician},
+         Volume = 32,
+         Pages = {12--16},
+         Keywords = {Exploratory data analysis; Graphics}
+     }
+
+
+
+@book{Meyer.01,
+    Publisher = {Am. Math. Soc.},
+    Author = {Meyer, Y.},
+    Title = {Oscillating Patterns in Image Processing and Nonlinear
+      Evolution Equations},
+    Year = 2001
+}
+@book{Horo.98,
+    Publisher = {Springer: Berlin},
+    Author = {Horowitz, J.},
+    Title = {Semiparametric Methods in Econometrics},
+    Year = 1989
+}
+
+@article{Meyer.95,
+        Author = {Meyer, B.},
+        Title = {Lessons from the U.S. unemployment insurance experiments},
+        Journal = { Journal of Economic Literature},
+        Volume = 33,
+        Pages = {91-131},
+        Year = 1985
+}
+
+
+@article{Meyer.96,
+        Author = {Meyer, B.},
+        Title = {What we have learned from the {I}llinois reemployment bonus experiment},
+        Journal = { Journal of Labor Economics},
+        Volume = 14,
+        Pages = {26-51},
+        Year = 1986
+}
+
+@article{WS.87,
+        Author = {Woodbury, S.A. and R.G. },
+        Title = {Bonuses to workers and employers to reduce unemployment:
+Randomized trails in {I}llinois},
+        Journal = { American Economic Review},
+        Volume = 77,
+        Pages = {513-530},
+        Year = 1987
+}
+
+@article{Robinson.91,
+	Author = { Robinson, G.K.}, 
+	Title = {That BLUP is a Good Thing:  The Estimation of Random Effects},
+      	Journal = {Statistical Science},
+	Volume =  {6}, 
+	Year = 1991, 
+	Pages = {15--31}
+	}
+@article{Henderson.50,
+	Author = {Henderson, C.R.},
+	Title = {Estimation of Genetic Parameters (Abstract)},
+      	Journal = {Annals of Mathematical Statistics},
+	Year = {1950},
+	Volume =  {21}, 
+	Pages = {309--310}
+	}
+@article{K.84,
+        Author = {Koenker, R.},
+        Title = {A Note on L-estimators for Linear Models},
+        Journal = {Stat and Prob Letters},
+        Volume = {2},
+        Pages = {323--325},
+        Year = {1984}
+        }
+@article{KW.01,
+	Author = { Ke, C. and Y. Wang},
+	Title = {Semiparametric nonlinear mixed-effects models and their
+		applications, (with discussion)},
+        Journal = { Journal of the American Statistical Association},
+        Volume = { 96},
+        Pages = {1272--1298},
+        Year = {2001}
+	}
+@article{WS.60,
+	Author = {Strotz, R. and H. Wold},
+	Title = {A Triptych on Causal Systems},
+	Journal = {Econometrica},
+	Year = {1960},
+	Volume = {28},
+	Pages = {417--463}
+	}
+@article{Nerlove.71,
+	Author = {Nerlove, M.},
+	Title = {Note on error components models },
+	Journal = {Econometrica},
+	Year = {1971},
+	Volume = {39},
+	Pages = {383--396}
+	}
+@article{LS.72,
+	Author = {Lindley, D.V. and A.F.M. Smith},
+	Title = {Bayes Estimates for the Linear Model},
+	Journal = {JRSSB},
+	Volume = {34},
+	Pages = {1--41},
+	Year = {1972}
+	}
+@article {G.62,
+        Author = {Goldberger, A.S.},
+        Year = 1962 ,
+        Title = { Best linear unbiased prediction in the generalized linear
+		regression model},
+        Journal = { Journal of the American Statistical Association},
+        Volume = { 57},
+        Pages = {369--375}
+        }
+@book{Rao.73,
+	Author = {Rao, C.R.},
+	Title = {Linear Statistical Inference and its Applications},
+	Publisher = {Wiley},
+	Year = {1973}
+	}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-mcycle1.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-mcycle1.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-eqfs.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-eqfs.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq.Rnw	(revision 2476)
@@ -0,0 +1,930 @@
+%\VignetteIndexEntry{Quantile Regression}
+%\VignetteDepends{quantreg,MASS,SparseM,tripack}
+%\VignettePackage{quantreg}
+\documentclass{amsart}
+\usepackage{natbib}
+\newcommand{\Robject}[1]{{\texttt{#1}}}
+\newcommand{\Rfunction}[1]{{\texttt{#1}}}
+\newcommand{\Rpackage}[1]{{\texttt{#1}}}
+\newcommand{\Rclass}[1]{{\textit{#1}}}
+\newcommand{\Rmethod}[1]{{\textit{#1}}}
+\newcommand{\Rfunarg}[1]{{\textit{#1}}}
+\newcommand{\R}{{\normalfont\textsf{R }}{}}
+\renewcommand{\S}{{\normalfont\textsf{S }}{}}
+
+\title{Quantile Regression in R: A Vignette}
+\thanks{Version:  \today}
+\author{Roger Koenker}
+
+\begin{document}
+\bibliographystyle{plainnat}
+\begin{abstract}
+Quantile regression is an evolving body of statistical
+methods for estimating and drawing inferences about conditional
+quantile functions.  An implementation of these methods in the
+\R language is available in the package \Rpackage{quantreg}.
+This vignette offers a brief tutorial introduction to
+the package.  \R and the package \Rpackage{quantreg} are open-source
+software projects and can be freely downloaded from CRAN:
+\texttt{http://cran.r-project.org}.
+\end{abstract}
+
+\maketitle
+
+\pagestyle{myheadings}
+\markboth{\sc Quantile Regression in R}{\sc Roger Koenker}
+
+<<label=R options,echo=FALSE>>=
+options(width = 60)
+options(SweaveHooks = list(fig = function() par(mar=c(3,3,1,0.5),mgp = c(2,1,0))))
+@
+
+
+\section{Introduction}
+
+
+
+
+Beran's (2003) \nocite{Beran.03} provocative definition
+of statistics as ``the study of algorithms for data analysis'' elevates
+computational considerations to the  forefront of the field.  It is
+apparent that the evolutionary success of statistical methods is to a significant degree
+determined by considerations of computational convenience.
+As a result,
+design and dissemination of statistical software has become an integral
+part of statistical research.
+Algorithms are no longer the exclusive purview of
+the numerical analyst, or the proto-industrial software firm;
+they are an essential part of the artisanal research process.
+Fortunately, modern computing has also transformed the software development
+process and greatly facilitated collaborative research;
+the massive collective international effort represented by the \R project
+exceeds the most idealistic Marxist imagination.
+
+Algorithms have been a crucial part of the research challenge of quantile regression
+methods from their inception in the 18th century.  \citet*{Stigler.84}  describes an
+amusing episode in 1760 in which the itinerant Croatian Jesuit Rudjer Boscovich sought
+computational advice in London  regarding his nascent method for  median regression.
+Ironically, a fully satisfactory answer to Boscovich's
+questions only emerged with dawn of modern computing.  The discovery of the simplex method
+and subsequent developments in linear programming have made quantile regression methods
+competitive with traditional least squares methods in terms of their
+computational effort.  These computational developments have also
+played a critical role in encouraging a deeper appreciation of the
+statistical advantages of these methods.
+
+Since the early 1980's I have been developing software for quantile regression:
+initially for the S language of Chambers and Becker (1984), later for its
+commercial manifestation Splus, and since 1999 for the splendid open source
+dialect \R, initiated by \citet*{IG} and sustained by the \citet*{Rcore}.
+Although there is now some functionality for quantile regression in most of the
+major commercial statistical packages, I have a natural predilection
+for the \R
+environment and the software that I have developed for \R.  In what follows, I
+have tried to provide a brief tutorial introduction to this environment for
+quantile regression.
+
+\section{What is a vignette? }
+
+This document was written in the Sweave format of \citet*{Leisch}.
+Sweave is an implementation designed for \R of the literate programming style
+advocated by \citet*{Knuth.LP}.  The format permits a natural interplay between code
+written in {\R}, the output of that code, and commentary on the code.
+Sweave documents are preprocessed by \R to produce a \LaTeX~
+document that may then be processed by conventional methods.  Many
+\R packages now have Sweave vignettes describing their basic
+functionality.  Examples of vignettes can be found for many of the
+\R packages including this one for the \texttt{quantreg} packages in
+the source distribution directory \texttt{inst/doc}.
+
+\section{Getting Started}
+
+I will not attempt to provide another  introduction to \R.  There are already
+several excellent resources intended to accomplish this task.  The
+books of \citet*{Dalgaard.02} and \citet*{VR} are particularly recommended.
+The CRAN website link to contributed documentation
+also offers excellent  introductions in several languages.
+
+\R is a open source software project and can be freely downloaded from the CRAN
+website along with its associated documentation.  For unix-based operating systems
+it is usual to download and build \R from source, but binary versions are available
+for most computing platforms and can be easily installed.  Once \R is running the
+installation of additional packages is quite straightward.
+To install the quantile regression package from \R one simply types,
+
+\vspace{2mm}
+\noindent
+\texttt{> install.packages("quantreg")}
+
+\vspace{2mm}
+\noindent
+Provided that your machine has a proper internet connection and you
+have write permission in the appropriate system directories,
+the installation of the package should proceed automatically.
+Once the \texttt{quantreg} package is installed, it needs
+to be made accessible to the current \R session by the command,
+<<results = hide>>=
+library(quantreg)
+@
+These procedures provide access to an enormous variety
+of specialized \texttt{packages} for statistical  analysis.
+As we proceed a variety of other packages will be called upon.
+
+Online help facilities are available in two modalities.  If you know
+precisely what you are
+looking for, and would simply  like to check the details
+of a particular command you can, for example, try:
+<<eval=FALSE>>=
+help(package="quantreg")
+help(rq)
+@
+The former command gives a brief summary of the available commands in the package, and
+the latter requests more detailed information about a specific command.
+An convenient shorthand for the latter command is to type simply
+\texttt{?rq}.
+More generally one can initiate a web-browser help session with the command,
+
+\vspace{2mm}
+\noindent
+\texttt{> help.start()}
+
+\vspace{2mm}
+\noindent
+and navigate as desired.  The browser approach is better adapted to exploratory
+inquiries, while the command line approach is better suited to confirmatory ones.
+
+A valuable feature of \R help files is that the examples used to illustrate commands
+are executable, so they can be pasted into an \R session, or run as a group with
+a command like,
+
+\vspace{2mm}
+\noindent
+\texttt{> example(rq)}
+
+\vspace{2mm}
+\noindent
+The examples for the basic \texttt{rq} command include an analysis of the
+Brownlee stackloss data:  first the median regression, then the first quantile
+regression is computed, then the full quantile regression process.  A curious
+feature of this often analysed data set, but one that is very
+difficult to find without quantile regresion fitting,  is the fact the 8 of the 21
+points fall exactly on a hyperplane in 4-space.
+
+The second example in the \texttt{rq} helpfile computes
+a weighted univariate median using randomly generated data.  The original
+\citet*{engel.1857} data on the relationship between food expenditure and household
+income is considered in the third example.  The data is plotted and then six
+fitted quantile regression lines are superimposed on the scatterplot.
+The final example illustrates the imposition of inequality constraints on the quantile
+regression coefficients using a simulated data set.
+
+Let's consider the median regression results for the Engel example in somewhat more
+detail.  Executing,
+<<>>=
+data(engel)
+fit1 <- rq(foodexp ~ income, tau = .5, data = engel)
+@
+assigns the output of the median regression computation to the object \texttt{fit1}.
+In the command \texttt{rq()} there are also
+many options.  The first argument is a ``formula'' that specifies the model that
+is desired.  In this case we wanted to fit a simple bivariate linear model
+so the formula is just \texttt{y $\sim$ x}, if we had two covariates we could say,
+e.g. \texttt{y $\sim$ x+z}.  Factor variables, that is variables
+taking only a few discrete values, are treated specially by the formula
+processing and result in a group of indicator (dummy) variables.
+
+If we would like to see a concise summary of the result we can simply type,
+<<>>=
+fit1
+@
+By convention for all the \R linear model fitting routines,
+we see only the estimated coefficients and some
+information about the model being estimated.  To obtain a more
+detailed evaluation of the fitted model, we can use,
+<<>>=
+summary(fit1)
+@
+The resulting table gives the estimated intercept and slope in the first column
+and confidence intervals for these parameters in the second and third columns.
+By default, these confidence intervals are computed by the rank inversion method
+described in \citet*{K.05}, Section 3.4.5.
+To extract the residuals or the coefficients of the
+fitted relationship we can write,
+<<>>=
+r1 <- resid(fit1)
+c1 <- coef(fit1)
+@
+They can then be easily used in subsequent calculations.
+
+\section{Object Orientation}
+
+A brief digression on the role of object orientation in \R is perhaps
+worthwhile at this juncture.  Expressions in \R manipulate objects,
+objects may be data in the form of vectors, matrices  or higher order
+arrays, but objects may also be functions, or more complex collections
+of objects.  Objects have a class and this clsss identifier helps to
+recognize their special features and enables functions to act on them
+appropriately.
+Thus, for example, the function \texttt{summary} when operating on an
+object of class \texttt{rq} as produced by the function \texttt{rq}
+can act quite differently on the object than it would if the object
+were of another class, say \texttt{lm}  indicating that it was the
+product of least squares fitting.  Summary of a data structure like
+a matrix or data.frame would have yet another intent and outcome.  In
+the earlier dialects of \S and \R methods for various classes were
+distinguished by appending the class name to the method separated by
+a ``.''.  Thus, the function \texttt{summary.rq} would summarize an \texttt{rq}
+object, and \texttt{summary.lm} would summarize an \texttt{lm}
+object.  In either case the main objective of the summary is
+to produce some inferential  evidence to accompany the point estimates
+of parameters.  Likewise, plotting of various classes of \R objects
+can be carried out by the expression \texttt{plot(x)} with the
+expectation that the plot command will recognize the class of the
+object \texttt{x} and proceed accordingly.  More recently,
+\citet*{C.98} has introduced an elegant elaboration of the
+class, method-dispatch framework for \S and \R.
+
+Assignment of objects
+is usually accomplished by the operator \texttt{<-}, and once assigned
+these new objects are available for the duration of the \R session, or
+until they are explicitly removed from the session.
+\R is an open source language so {\it all} of the source files describing
+the functionality of the language are ultimately accessible to the
+individual user, and users are free to modify and extend the
+functionality of the language in any way they see fit.  To accomplish
+this one needs to be able to find functions and modify them.  This
+takes us somewhat beyond the intended tutorial scope of this vignette,
+however suffice it to say that most of the functions of the
+\texttt{quantreg} package you will find used below, can be viewed
+by simple typing the name of the function perhaps concatenated with
+a class name.
+
+\section{Formal Inference}
+
+There are several alternative methods of  conducting inference about quantile
+regression coefficients.  As an alternative to the rank-inversion
+confidence intervals, one can obtain a more conventional looking
+table of coefficients, standard errors, t-statistics, and p-values
+using the \texttt{summary} function:
+<<>>=
+summary(fit1,se = "nid")
+@
+The standard errors reported in this table are computed as described in Section 3.2.3
+for the quantile regression sandwich formula,
+and using the Hall-Sheather bandwidth rule.  To obtain
+the Powell kernel version of the covariance matrix estimate, one specifies the option
+\texttt{se="ker"} in the \texttt{summary} command.  It is also possible to control the
+bandwidths employed with the \texttt{bandwidth} option.
+Another option available in \texttt{summary.rq} is
+to compute bootstrapped standard errors.  This is accomplished by
+specifying the option \texttt{se="boot"}.  There are currently three
+flavors of the bootstrap available:  the standard $xy$-pair bootstrap,
+the \citet*{PWY.94} version, and the Markov chain marginal bootstrap
+of \citet*{HeHu} and \citet*{KHM}.  There is also the ability
+to specify  $m$ out $n$ versions of the bootstrap in which the sample
+size of the bootstrap samples is different from (typically smaller
+than) the original sample size.  This ``subsampling'' approach has a
+number of advantages, not the least of which is that it can be
+considerably faster than the full $n$ out of $n$ version.
+By default \texttt{summary}
+also produces components estimating the full covariance matrix of the estimated
+parameters and its constituent pieces.  For further details,
+see the documentation for \texttt{summary.rq}.  In the case of the
+bootstrap methods the full matrix of bootstrap replications is also
+available.
+
+There are several options to the basic fitting routine \texttt{rq}.  An important option
+that controls the choice of the algorithm used in the fitting is \texttt{method}.
+The default is \texttt{method = "br"} which invokes a variant of the
+\citet*{BR.74} simplex algorithm
+described in \citet*{KO.87}.  For problems with more than a few thousand observations it
+is worthwhile considering \texttt{method = "fn"}  which invokes the Frisch-Newton algorithm
+described in \citet*{PK.1997}.   Rather than traversing around the
+exterior of the constraint set like the simplex method, the interior
+point approach embodied in the Frisch-Newton algorithm burrows from
+within the constraint set toward the exterior.  Instead of taking
+steepest descent steps at each intersection of exterior edges, it
+takes Newton steps based on a log-barrier Lagrangian form of the
+objective function.  Special forms of Frisch-Newton are available for
+problems that include linear inequality constraints and for problems
+with sparse design matrices.
+For extremely large problems with plausibly exchangeable
+observations  \texttt{method = "pfn"} implements a version of
+the Frisch-Newton algorithm with
+a preprocessing step that can further speed things up considerably.
+
+In problems of moderate size where the default simplex option is quite practical,
+the parametric programming approach to finding the rank inversion
+confidence intervals can be rather slow.  In such cases it may be
+advantageous to try one of the other inference methods based on
+estimation of the asymptotic covariance matrix, or to consider
+the bootstrap.  Both approaches are described in more detail below.
+
+To provide a somewhat more elaborate visualization of the Engel  example consider
+an example that superimposes several estimated conditional quantile
+functions on the Engel data  scatterplot.
+In the resulting figure the median regression line appears as a solid (blue)
+line, and the least squares line as a dashed (red) line.  The other quantile
+regression lines appear in grey.  Note that the plotting of the  fitted
+lines is easily accomplished by the convention that the command \texttt{abline}
+looks for a pair of coefficients, which if found are treated as the slope and
+intercept of the plotted line.  There are many options that can be used to
+further fine tune the plot.  Looping over the quantiles is also conveniently
+handled by {\R}'s \texttt{for} syntax.
+
+\begin{figure}
+\begin{center}
+<<label=engelplot,fig=TRUE>>=
+library(quantreg)
+data(engel)
+attach(engel)
+plot(income,foodexp,cex=.25,type="n",xlab="Household Income", ylab="Food Expenditure")
+points(income,foodexp,cex=.5,col="blue")
+abline(rq(foodexp~income,tau=.5),col="blue")
+abline(lm(foodexp~income),lty=2,col="red") #the dreaded ols line
+taus <- c(.05,.1,.25,.75,.90,.95)
+for( i in 1:length(taus)){
+        abline(rq(foodexp~income,tau=taus[i]),col="gray")
+        }
+@
+\end{center}
+\caption{Scatterplot and Quantile Regression Fit of the Engel Food
+Expenditure Data:  The plot shows a scatterplot of the Engel data
+on food expenditure vs household income for a sample of 235 19th
+century working class Belgian households.  Superimposed on the
+plot are the $\{ .05 , .1, .25, .75, .90, .95\}$ quantile regression
+lines in gray, the median fit in solid black, and the least squares
+estimate of the conditional mean function as the dashed (red) line.}
+\end{figure}
+
+
+
+Often it is useful to compute quantile regressions on a discrete set
+of $\tau$'s; this can be accomplished by specifying  \texttt{tau}
+as a vector in \texttt{rq}:
+<<label=engelcoef>>=
+xx <- income - mean(income)
+fit1 <- summary(rq(foodexp~xx,tau=2:98/100))
+fit2 <- summary(rq(foodexp~xx,tau=c(.05, .25, .5, .75, .95)))
+@
+The results can be summarized as a plot.
+<<label=engelcoefplot, results = hide>>=
+pdf("engelcoef.pdf",width=6.5,height=3.5)
+plot(fit1,mfrow = c(1,2))
+dev.off()
+@
+or by producing a latex-formatted table.
+<<label=engeltable>>=
+latex(fit2, caption="Engel's Law", transpose=TRUE)
+@
+
+The \texttt{pdf} command preceding the plot tells \R that
+instructions for the plotting should be written in encapsulated
+pdf format and placed in  the file
+\texttt{engelcoef.pdf}.  Such files are then conveniently
+included in \LaTeX~  documents, for example.  The \texttt{dev.off()}
+command closes the current pdf device and concludes the figure.
+The horizontal lines in the coefficient plots represent the least
+squares fit and its associated confidence interval.
+
+In the one-sample
+setting we know that integrating the quantile function over the
+entire domain [0,1] yields the mean of the (sample) distribution,
+\[
+\mu = \int_{-\infty}^\infty x dF(x) = \int_0^1 F^{-1} (t)dt.
+\]
+Similarly, in the coefficient plots we may expect to see that integrating
+individual coefficients yields roughly mean
+effect as estimated by the associated least squares coefficient.
+One should be cautious, however,  about this interpretation in very
+heterogeneous situations.  For the Engel data, note that the least
+squares intercept is significantly above any of the fitted quantile
+regression curves in our initial scatter plot.  The least squares
+fit is strongly affected by the two outlying observations with
+relatively low food expenditure; their attraction tilts the fitted
+line so its intercept drawn upward.  In fact, the intercept for the
+Engel model is difficult to interpret since it asks us to consider
+food expenditure for households with zero income.  Centering the
+covariate observations so they have mean zero, as we have done prior to
+computing \texttt{fit1} for the coefficient plot restores a reasonable
+interpretation of the intercept parameter.   After centering the
+least squares estimate of the intercept is a prediction of mean
+food expenditure for a household with mean income, and the quantile
+regression intercept, $\hat \alpha (\tau)$ is a prediction  of the
+$\tau$th quantile of food expenditure for households with mean income.
+In the terminology of Tukey, the ``intercept'' has become a ``centercept.''
+
+\begin{figure}
+\begin{center}
+\resizebox{\textwidth}{!}
+{\includegraphics{engelcoef.pdf}}
+\end{center}
+\caption{Engel Coefficient Plots:    the slope and intercept of the
+estimated linear quantile regression linear for the Engel food
+expenditure data are plotted as a function of $\tau$.  Note that
+the household income variable has been centered at its mean value
+for this plot, so the intercept is really a centercept and  estimates
+the quantile function of food expenditure conditional on mean income.}
+\end{figure}
+
+\input{fit2.tex}
+
+The \texttt{latex} command produces a \LaTeX~ formatted table that can be easily
+included in  documents.  In many instances the plotted form of
+the results will provide a more economical and informative display.
+It should again be stressed that since the quantile regression functions
+and indeed all of \R is open source, users can always modify the available
+functions to achieve special effects required for a particular
+application.  When such modifications appear to be of general
+applicability, it is desirable to communicate them to the package
+author, so they could be shared with the larger community.
+
+
+If we want to see {\it all} the distinct quantile regression solutions
+for a particular model application we can specify a tau outside the range [0,1], e.g.
+<<label=rqProcess>>=
+z <- rq(foodexp~income,tau=-1)
+@
+This form of the function carries out the parametric programming steps
+required to find the entire sample path of the quantile regression
+process.  The returned object is of class \texttt{rq.process}
+and has several components:
+the primal solution in \texttt{z\$sol}, and the dual solution
+in \texttt{ z\$dsol}.   In interactive mode typing the name of an \R object
+causes the program to print the object in some reasonably intelligible
+manner determined by the print method designated for the object's class.
+Again, plotting is often a more informative means of display and
+so there is a special \texttt{plot} method for objects of class
+\texttt{rq.process}.
+
+Estimating the conditional quantile functions of
+\texttt{y} at a specific values of \texttt{x} is also quite easy.
+In the following code we plot the estimated empirical quantile
+functions  of food expenditure for households that are at the
+10th percentile of the sample income distribution,
+and the 90th percentile.
+In the right panel we plot corresponding density
+estimates for the two groups.  The density estimates employ the
+adaptive kernel method proposed by \citet*{Silverman} and implemented
+in the \texttt{quantreg} function  \texttt{akj}.  This function
+is particularly convenient since it permits unequal mass to be
+associated with the observations such as those produced by the quantile
+regression process.
+\begin{figure}
+\begin{center}
+<<label=eqfs,fig=TRUE,height = 3 >>=
+x.poor <- quantile(income,.1) #Poor is defined as at the .1 quantile of the sample distn
+x.rich <- quantile(income,.9) #Rich is defined as at the .9 quantile of the sample distn
+ps <- z$sol[1,]
+qs.poor <- c(c(1,x.poor)%*%z$sol[4:5,])
+qs.rich <- c(c(1,x.rich)%*%z$sol[4:5,])
+#now plot the two quantile functions to compare
+par(mfrow = c(1,2))
+plot(c(ps,ps),c(qs.poor,qs.rich), type="n",
+     xlab = expression(tau), ylab = "quantile")
+plot(stepfun(ps,c(qs.poor[1],qs.poor)), do.points=FALSE, add=TRUE)
+plot(stepfun(ps,c(qs.poor[1],qs.rich)), do.points=FALSE, add=TRUE,
+     col.hor = "gray", col.vert = "gray")
+## now plot associated conditional density estimates
+## weights from ps (process)
+ps.wts <- (c(0,diff(ps)) + c(diff(ps),0)) / 2
+ap <- akj(qs.poor, z=qs.poor, p = ps.wts)
+ar <- akj(qs.rich, z=qs.rich, p = ps.wts)
+plot(c(qs.poor,qs.rich),c(ap$dens,ar$dens),type="n",
+     xlab= "Food Expenditure", ylab= "Density")
+lines(qs.rich, ar$dens, col="gray")
+lines(qs.poor, ap$dens, col="black")
+legend("topright", c("poor","rich"), lty = c(1,1), col=c("black","gray"))
+@
+\end{center}
+\caption{Estimated conditional quantile and density functions for food
+expenditure based on the Engel data:  Two estimates are presented one
+for relatively poor households with income of
+\Sexpr{format(round(x.poor,2))} Belgian francs, and the other for
+relatively affluent households with
+\Sexpr{format(round(x.rich,2))} Belgian francs.}
+\end{figure}
+
+Thus far we have only  considered  Engel functions that are
+linear in form, and the scatterplot as well as the formal testing has revealed a strong
+tendency for the dispersion of food expenditure to increase with household income.
+This is a particularly common form of heteroscedasticity.  If one looks more carefully
+at the fitting, one sees interesting departures from symmetry that would not be likely
+to be revealed by the typical textbook testing for heteroscedasticity.
+One common remedy for symptoms like these would be to reformulate the model
+in log linear terms.  It is interesting to compare what happens after
+the log transformation with what we have already seen.
+\begin{figure}
+\begin{center}
+<<label=engellogplot,fig=TRUE>>=
+plot(income,foodexp,log="xy",xlab="Household Income", ylab="Food Expenditure")
+taus <- c(.05,.1,.25,.75,.90,.95)
+abline(rq(log10(foodexp)~log10(income),tau=.5),col="blue")
+abline(lm(log10(foodexp)~log10(income)),lty = 3,col="red")
+for( i in 1:length(taus)){
+       abline(rq(log10(foodexp)~log10(income),tau=taus[i]),col="gray")
+       }
+@
+\end{center}
+\caption{Quantile regression estimates for a log-linear
+version of the Engel food expenditure model.}
+\end{figure}
+
+Note that the flag \texttt{log="xy"} produces a plot with log-log axes, and for
+convenience of axis labeling these logarithms are base 10, so the subsequent fitting
+is also specified as base 10 logs for plotting purposes, even though base 10 logarithms
+are {\it unnatural} and would never be used in reporting numerical results.
+This looks much more like a classical iid error regression model, although again some
+departure from symmetry is visible.  An interesting exercise would be  to conduct some
+formal testing for departures from the iid assumption of the type already considered
+above.
+\section{More on Testing}
+
+Now let's consider some other forms of formal testing.
+A natural first question is:   do the estimated quantile regression
+relationships conform to the location shift hypothesis that assumes
+that all of the conditional quantile functions have the same slope
+parameters.  To begin, suppose we just estimate
+the quartile fits for the Engel data and look at the default output:
+
+<<>>=
+fit1 <- rq(foodexp~income,tau=.25)
+fit2 <- rq(foodexp~income,tau=.50)
+fit3 <- rq(foodexp~income,tau=.75)
+@
+
+Recall that \texttt{rq} just produces coefficient estimates and
+\texttt{summary} is needed to evaluate the precision of the estimates.
+This is fine for judging whether covariates are significant at particular quantiles
+but suppose that we wanted to test that the slopes were the same at
+the  three quartiles?
+This is done with the \texttt{anova} command as follows:
+
+<<>>=
+anova(fit1, fit2, fit3)
+@
+This is an example of a general class of tests proposed in \citet*{KB.82b}.
+It may be instructive to look at the code for the command \texttt{anova.rq} to see how this
+test is carried out.  The Wald approach is used and the asymptotic covariance matrix
+is estimated using the approach of \citet*{HK.92}.
+It also illustrates a  general syntax for testing in \R adapted to
+the present situation.
+
+If you have estimated two models with different covariate
+specifications, but the same $\tau$
+then \texttt{anova(f0,f1)} tests whether the more restricted model is preferred.
+Note that this requires that the models with fits say \texttt{f0} and \texttt{f1}
+are nested.  The procedure \texttt{anova.rq} attempts to check whether
+the fitted models are nested, but this is not foolproof.
+These tests can be carried out either as Wald tests based on the
+estimated joint asymptotic covariance matrix of the coefficients, or
+using the rank test approach described in \citet*{GJKP.94}.
+A variety of other options are described in the documentation of the
+function \texttt{anova.rq}.
+
+
+\section{Inference on the Quantile Regression Process}
+In least squares estimation of linear models it is implicitly assumed
+that we are able to model the effects of the covariates as a pure
+location shift, or somewhat more generally as a location and scale
+shift of the response distribution.  In the simplest case of a single
+binary treatment effect this amounts to assuming that the treatment
+and control distributions differ by a location shift, or a
+location-scale shift.  Tests of these hypotheses in the two sample
+model can be conducted using the conventional two-sample Kolmogorov
+Smirnov statistic, but the appearance of unknown nuisance parameters
+greatly complicates the limiting distribution theory.  Similar
+problems persist in the extension of these tests to the general
+quantile regression setting.  Using an approach introduced by
+\citet*{khma.81}, \citet*{KX.02} consider general forms
+of such tests.  The tests can be viewed as a generalization of
+the simple tests of equality of slopes across quantiles described
+in the previous section.
+
+In this section we briefly describe how to implement these tests in \R.
+The application considered is the quantile autoregression (QAR) model
+for weekly U.S. gasoline prices considered in \citet*{KX.06}.  The
+data consists of 699 weekly  observations running from August 1990 to
+February, 2004.  The model considered is a QAR(4) model utilizing four
+lags.  We are interested in testing whether the classical location-shift
+AR(4) is a plausible alternative to the QAR(4) specification, that is
+whether the four QAR lag coefficients are constant with respect to $tau$.
+
+To carry out the test we can either compute the test using the full
+quantile regression process or on a moderately fine grid of taus:
+
+<<label=gastest>>=
+data(gasprice)
+x <- gasprice
+n <- length(x)
+p <- 5 # lag length
+X <- cbind(x[(p-1):(n-1)], x[(p-2):(n-2)], x[(p-3):(n-3)], x[(p-4):(n-4)])
+y <- x[p:n]
+T1 <- KhmaladzeTest(y ~ X,taus = -1, nullH="location")
+T2 <- KhmaladzeTest(y ~ X,taus = 10:290/300, nullH="location",se="ker")
+@
+When \texttt{taus} contains elements outside of the the
+interval $(0,1)$ then the process is standardized by a
+simple form of the covariance matrix that assumes iid error.
+In the second version of the test Powell's kernel form of
+the sandwich formula estimate is used, see \texttt{summary.rq}.
+The function \texttt{KhmaladzeTest} computes both a joint
+test that {\it all} the covariate effects satisfy the null
+hypothesis, and a coefficient by coefficient version of the
+test.  In this example the former component, \texttt{T1\$Tn}
+is \Sexpr{format(round(T1$Tn,2))}.  This test has a 1
+percent critical value of 5.56,  so the test weakly
+rejects the null.  For the Powell form the standardization
+the corresponding test statistic is more decisive, taking
+the value \Sexpr{format(round(T2$Tn,2))}.
+
+Tests of the location-scale shift form of the null hypothesis
+can be easily  done by making the appropriate change in the
+\texttt{nullH} argument of the function.
+
+\section{Nonlinear Quantile Regression}
+
+Quantile regression models with response functions that are nonlinear
+in parameters can be estimated with the function \texttt{nlrq}.  For
+such models the specification of the model formula is somewhat more
+esoteric than for ordinary linear models, but follows the conventions
+of the \R command \texttt{nls} for nonlinear least squares estimation.
+
+To illustrate the use of \texttt{nlrq} consider the problem of
+estimating the quantile functions of the Frank copula model introduced
+in \citet*{K.05}, Section 8.4.  We begin by setting some parameters
+and generating data from the Frank model:
+
+<<label = Frank>>=
+	n <- 200
+	df <- 8
+	delta <- 8
+	set.seed(4003)
+	x <- sort(rt(n,df))
+	u <- runif(n)
+	v <- -log(1-(1-exp(-delta))/(1+exp(-delta*pt(x,df))*((1/u)-1)))/delta
+	y <- qt(v,df)
+@
+We plot the observations, superimpose three conditional quantile
+functions, and then estimate the same three quantile functions and
+plot their estimated curves as the dashed curves.
+\begin{figure}
+\begin{center}
+<<label = Frankplot, results = hide, height = 4, eval = TRUE, fig=TRUE>>=
+	plot(x,y,col="blue",cex = .25)
+	us <- c(.25,.5,.75)
+	for(i in 1:length(us)){
+		u <- us[i]
+		v <- -log(1-(1-exp(-delta))/
+			(1+exp(-delta*pt(x,df))*((1/u)-1)))/delta
+		lines(x,qt(v,df))
+		}
+	Dat <- NULL
+	Dat$x <- x
+	Dat$y <- y
+	deltas <- matrix(0,3,length(us))
+	FrankModel <- function(x,delta,mu,sigma,df,tau){
+        	z <- qt(-log(1-(1-exp(-delta))/
+			(1+exp(-delta*pt(x,df))*((1/tau)-1)))/delta,df)
+		mu + sigma*z
+		}
+	for(i in 1:length(us)){
+		tau = us[i]
+		fit <- nlrq(y~FrankModel(x,delta,mu,sigma,df=8,tau=tau),
+			data=Dat,tau= tau, start=list(delta=5,
+			mu = 0, sigma = 1),trace=TRUE)
+		lines(x, predict(fit, newdata=x), lty=2, col="green")
+		deltas[i,] <- coef(fit)
+		}
+@
+\end{center}
+\caption{Nonlinear Conditional Quantile Estimation of the Frank Copula
+Model:  The solid curves are the true conditional quantile functions
+and the corresponding estimated curves are indicated by the dashed
+curves.}
+\end{figure}
+
+\section{Nonparametric Quantile Regression}
+
+
+Nonparametric quantile regression is initially
+most easily considered within a locally polynomial framework.
+Locally linear fitting is carried out by the following function:
+<<label=lprq>>=
+"lprq" <-
+function(x, y, h, m=50 , tau=.5)
+{
+        xx <- seq(min(x),max(x),length=m)
+        fv <- xx
+        dv <- xx
+        for(i in 1:length(xx)) {
+                z <- x - xx[i]
+                wx <- dnorm(z/h)
+                r <- rq(y~z, weights=wx, tau=tau, ci=FALSE)
+                fv[i] <- r$coef[1.]
+                dv[i] <- r$coef[2.]
+        }
+        list(xx = xx, fv = fv, dv = dv)
+}
+@
+If you study the function a bit you will see that it is simply a matter
+of computing a quantile regression fit at each of $m$ equally spaced $x$-values
+distributed over the support of the observed $x$ points.  The function value estimates
+are returned as \texttt{fv} and the first derivative estimates at the $m$ points
+are returned as \texttt{dv}.  As usual you can specify $\tau$, but now you also
+need to specify a bandwidth \texttt{h}.
+
+Let's begin by exploring the effect of the \texttt{h} argument for
+fitting the motorcycle data.
+\begin{figure}
+\begin{center}
+<<label=mcycle1,fig=TRUE>>=
+library(MASS)
+data(mcycle)
+attach(mcycle)
+plot(times,accel,xlab = "milliseconds", ylab = "acceleration")
+hs <- c(1,2,3,4)
+for(i in 1:length(hs)){
+        h = hs[i]
+        fit <- lprq(times,accel,h=h,tau=.5)
+        lines(fit$xx,fit$fv,lty=i)
+        }
+legend(45,-70,c("h=1","h=2","h=3","h=4"),lty=1:length(hs))
+@
+\end{center}
+\caption{Estimation of a locally linear median regression
+model for the motorcycle data:  four distinct bandwidths}
+\end{figure}
+
+Fitting derivatives, of course,  requires somewhat larger bandwidth
+and larger sample size to achieve the same precision as function fitting.
+It is a straightforward exercise to adapt the function \texttt{lprq}
+so that it does locally quadratic rather than locally linear fitting.
+
+Another simple, yet quite general, strategy for nonparametric quantile regression
+uses regression splines.  The function \texttt{bs()} in the
+package \texttt{splines} gives a very flexible way to construct B-spline basis
+expansions.  For example you can fit a new motorcycle model like this:
+
+\begin{figure}
+\begin{center}
+<<label = regspline, fig=TRUE>>=
+library(splines)
+plot(times,accel,xlab = "milliseconds", ylab = "acceleration",type="n")
+points(times,accel,cex = .75)
+X <- model.matrix(accel ~ bs(times, df=15))
+for(tau in 1:3/4){
+	fit <- rq(accel ~ bs(times, df=15), tau=tau, data=mcycle)
+	accel.fit <- X %*% fit$coef
+	lines(times,accel.fit)
+	}
+@
+\end{center}
+\caption{B-spline estimates of the three conditional quartile
+functions of the motorcycle data}
+\end{figure}
+
+The fitted conditional quantile functions do  reasonably well except
+in the region beyond 50 milliseconds where the data is so sparse that
+all the quantile curve want to coalesce.
+
+This procedure fits a piecewise cubic polynomial with 15 knots
+(breakpoints in the third derivative) arranged at  quantiles of the $x$'s.
+(You can also explicitly specify the knot sequence and the order
+of the spline using the optional arguments to \texttt{bs}.)
+In this instance we have estimated three quartile curves for the
+B-spline model;  a salient feature of this example is the quite
+dramatic variable in variability over the time scale.  There is
+essentially no variability for the first few milliseconds, but quite
+substantial variability after the crash.
+One advantage of the B-spline approach is that it is very easy to add a partially
+linear model component.  If there were another covariate, say z,
+it could be added as a parametric component using the usual \texttt{formula} syntax,
+
+\vspace{2mm}
+\noindent
+\texttt{> fit <- rq(y~bs(x,df=5)+z,tau=.33)}
+
+\vspace{2mm}
+\noindent
+Another appealing approach to nonparametric smoothing involves penalty
+methods. \citet*{KNP.94}  describe total variation penalty methods
+for fitting univariate functions;  \citet*{KM.04},
+extend to approach to bivariate function estimation.
+Again, partially linear models are easily adapted, and there are also easy ways to impose
+monotonicity and convexity on the fitted functions.
+In some applications it is desirable to consider models that involve
+nonparametric fitting with several covariates.  A tractable approach
+that has been explored by many authors is to build additive models.
+This approach is available in \R for least squares fitting of smoothing
+spline components in the \texttt{mgcv} and \texttt{gss} packages.
+A prototype package for quantile regression models of this type is
+available using the \texttt{rqss} function of the \texttt{quantreg}
+package.
+
+The function \texttt{rqss} offers a formula interface to
+nonparametric quantile regression fitting with total variation
+roughness penalties.  Consider the running speed of mammals example
+from Section 7.  The objective is to estimate a model for the
+upper envelope of the scatterplot, a model that would reflect
+best evolutionary practice in mammalian ambulatory efficiency.
+In contrast to the least squares analysis
+of \citet*{Chappell.89} where they are omitted,
+no special allowance is made for the ``specials'' indicated by
+the plotting character \texttt{s} or ``hoppers'' indicated by
+\texttt{h}.
+The data is plotted on a (natural) log scale, the model is fit using
+$\lambda = 1$ as the penalty parameter, and the fitted curve
+is plotted using a special plotting function  that understands
+the structure of the objects returned from \texttt{rqss}.
+The estimated turning point of the piecewise linear
+fitted function occurs at a weight of about 40 Kg.
+
+<<label = nprq, results = hide>>=
+data(Mammals)
+attach(Mammals)
+@
+\begin{figure}
+\begin{center}
+<<label = mammals, fig=TRUE>>=
+library(MatrixModels)
+library(Matrix)
+x <- log(weight)
+y <- log(speed)
+plot(x,y, xlab="Weight in log(Kg)", ylab="Speed in log(Km/hour)",type="n")
+points(x[hoppers],y[hoppers],pch = "h", col="red")
+points(x[specials],y[specials],pch = "s", col="blue")
+others <- (!hoppers & !specials)
+points(x[others],y[others], col="black",cex = .75)
+fit <- rqss(y ~ qss(x, lambda = 1),tau = .9)
+plot(fit)
+@
+\end{center}
+\caption{Maximal Running Speed of Terrestial Mammals:  The figure
+illustrates the relationship between adult body mass and maximal
+running speed for 107 species of terrestial mammals. The piecewise
+linear curve is an estimate of the .90 conditional quantile function
+estimated subject to a constraint on the total variation of the
+function gradient.}
+\end{figure}
+
+Bivariate nonparametric fitting using the triogram methods described
+in Section 7 can be handled in a similar manner.
+If we consider the Cobar mining data from \citet*{gree:silv.94}
+\begin{figure}
+\begin{center}
+<<label = cobar, fig = TRUE >>=
+data(CobarOre)
+fit <- rqss(z ~ qss(cbind(x,y), lambda = .01, ndum=100),data = CobarOre)
+plot(fit, axes = FALSE, xlab = "", ylab = "")
+rm(list=ls())
+@
+\end{center}
+\caption{Contour plot of a triogram fit of the Cobar mining data.}
+\end{figure}
+
+The \texttt{qss} term in this case case requires both $x$ and $y$
+components.  In addition one needs to specify a smoothing parameter
+$\lambda$, and  the parameter \texttt{ndum} may be used to specify
+the number of artificial vertices introduced into the fitting
+procedure in addition to the actual observations.  These artificial
+vertices contribute to the penalty term, but not to the fidelity.
+
+By default the fit is rendered as a contour plot, but there are also
+two forms of perspective plots.  A conventional \R \texttt{persp} plot
+can be obtained by passing option \texttt{render = "persp"} to the
+plot command.  More adventurous \R~gonauts are encouraged to explore
+the option \texttt{render = "rgl"}, which produces a perspective
+plot in the dynamic graphics interface to the open GL library provided
+by the package \texttt{rgl}.  Of course this package must be
+installed.  A demonstration of how to create animations of
+\texttt{rqss} triogram output using \texttt{rgl} is available by
+running the command \texttt{demo(cobar)}.
+
+Another advantage of the penalty approach embodied in \texttt{rqss}
+is that it is straightforward to impose additional qualitative
+constraints on the fitted functions.  Univariate functions can be
+constrained to be monotone and/or convex or concave.  Bivariate
+functions can be constrained to be either convex or concave.
+This functionality is implemented by simply imposing nonnegativity
+constraints on certain linear combinations of model parameters
+and illustrates one of many possible applications for such constraints.
+An interesting open research problem involves formal inference on such
+constraints.
+
+\section{Conclusion}
+
+A few of the capabilities of the \R \texttt{quantreg}
+package have been described.  Inevitably, new applications will
+demand new features and reveal unforseen bugs.  In either case I hope
+that users will send me their comments and suggestions.
+This document will be periodically updated and the current version
+will be made available in the \R distribution of \texttt{quantreg}.
+See the \R command \texttt{vignette()} for details on how to find
+and view vignettes from within \R.
+
+
+
+
+\bibliography{abbrev,book}
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-Frankplot.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq-Frankplot.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rq.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/abbrev.bib
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/abbrev.bib	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/abbrev.bib	(revision 2476)
@@ -0,0 +1,41 @@
+@string{Econmtca = "Econometrica"}
+@string{ContProbSt = "Contributions to Prob. and Stat. in Honour of Gunar Blom"}
+@string{StPrLet = "Stat. and Prob. Letters"}
+@string{STB = "Stata Technical Bulletin"}
+@string{StatSci = "Stat. Science"}
+@string{SqtlAnly = "Sequential Analysis"}
+@string{AnlsStat = "Annals of Stat."}
+@string{AnlsMStat = "Annals of Math. Stat."}
+@string{JEL = "J. of Economic Lit."}
+@string{EL = "Economics Letters"}
+@string{EE = "Empirical Economics"}
+@string{JLS = "J. of Legal Studies"}
+@string{JPE = "J. of Political Economy"}
+@string{JEH = "J. of Economic History"}
+@string{AER = "American Economic Review"}
+@string{ILRR = "Ind. and Labor Relations Rev."}
+@string{CandJSt = "Canadian J. of Stat."}
+@string{ScandJSt = "Scand. J. of Stat."}
+@string{CmpStDA = "Comp. Stat. and Data Anal."}
+@string{ET = "Econometric Theory"}
+@string{EnvrMtrc = "Environmetrics"}
+@string{JHumRec = "J. of Human Resources"}
+@string{EcLet = "Economics Letters"}
+@string{JASA = "J. of Am. Stat. Assoc."}
+@string{JMA = "J. Mult. Analysis."}
+@string{JEx = "J. Econometrics"}
+@string{JAPEx = "J. Applied Econometrics"}
+@string{AsymptStat5 = "Asymptotic Statistics:  Proceedings of the 5th Prague
+	Symposium"}
+@string{Biomtrka = "Biometrika"}
+@string{MatSb = "Matematiceskii Sbornik"}
+@string{JRSS-B = "J. Royal Stat. Soc. (B)"}
+@string{JRSSA = "J. Royal Stat. Soc. (A)"}
+@string{ApStat = "Applied  Stat."}
+@string{ProbFields = "Prob. Theory and Related Fields"}
+@string{ThProbAp = "Theory of Prob. and its Apps"}
+@string{JNnparSt = "J. of Nonparametric Stat."}
+@string{JCGS = "J. of Computation and Graphical Stat."}
+@string{CommStA = "Communications in  Stat. (A)"}
+@string{SV = "Springer-Verlag"}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/crq.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/crq.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/engelcoef.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/engelcoef.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rqss.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/doc/rqss.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/demo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/demo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/ChangeLog
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/ChangeLog	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/ChangeLog	(revision 2476)
@@ -0,0 +1,1346 @@
+Recent Revision History (For older revision history diff the code ;-))
+
+3.04 September 19 2001  
+
+1.  ci set to F if p==1 to prevent seg fault identified by Marcel Wolbers.
+
+3.05 December 21 2001  
+
+1. "iid" case in summary.rq fixed to update call to l1fit 
+2. documentation and consistency checking updates to conform with R1.4.0
+
+
+3.06 March 5 2002  
+
+1.  Added LEGAL directory to clarify the licensing arrangement with Splus/
+Insightful Corp.
+
+3.07 March  2002
+
+1.  Expanded table.rq to use method="fn", and adapted plot.table.rq to
+use the polygon strategy of recent papers for the confidence band.
+
+2.  Adapted the old version of latex.table and latex.table.rq to use
+output of table.rq to make latex tables from the output array.  This
+eventually could be updated to fit better into the expected R version
+of Frank Harrell's Hmisc.  (The function latex.table is a slightly
+hacked version of Frank's old latex.table function for Splus.)
+
+3.  Added argument transpose to allow the tables to be flipped so that
+row dimension is quantiles rather than coefs.
+
+4.  Added error checking for tau+/-h outside (0,1) in summary.rq 
+
+5.  Revised rq.fit.fn and rqfn.[rf] to simplify the calling sequence
+basically to move the initialization into the R function.  (This is
+in preparation for a new version that will incorporate inequality constraints.)
+
+6.  Also relaxed upper bound constraints so that they could be specified
+in rq.fit.fn rather than assumed to take the value one.
+
+7.  Added a (long awaited) anova function for rq to do F test like inference
+for both nested models for a single quantile and tests of equality of slope
+coefficients across identical models estimated at several quantiles.
+These new functions are (for the moment) in the R directory as anova.R.
+
+3.08 May 22 2002
+
+1.  Fixed a bug in anova.rqlist ndf = (p-1)*(m-1) not p*(m-1).
+
+3.09 May 27 2002
+
+1.  Added new functions rq.fit.fnb and rq.fit.fnc and associated fortran
+and ratfor code.  The former is a slightly revised version of rq.fit.fn
+the interior point algorithm for computing rq;  it should have exactly
+the same functionality as the prior version, but _might_ work somewhat
+more efficiently on some problems.  The new function rq.fit.fnc
+is an interior point method for fitting rq problems subject to inequality
+constraints on the coefficients.  The algorithm is a modified version
+of the interior point method used for unconstrained problems and should
+be described in detail (eventually) in a paper with Pin Ng.
+
+3.10 July 4 2002
+
+1.  Revised slightly the rq.fit.fnb function and the related ratfor/fortran
+code to enable it to start at a (dual) point  that doesn't satisfy the
+equality constraints.  And attempted to fix the many places that used T/F
+rather than TRUE/FALSE in preparation for R-1.6.0 (at the suggestion of
+Kurt Hornik.)
+
+3.11 July 10 2002
+
+1.  Fixed a few more T/F's at Kurt's behest, and changed some _ to <- in
+the examples.  And added PACKAGE = "quantreg") to the .Fortran calls.
+
+3.12 Nov 1, 2002.  
+
+1.  fixed two generic inconsistencies Kurt found in table.R.
+
+3.13 December 18 2002
+
+1.  Fixed bug in summary.rq when se=iid found by Xuming.
+ 
+3.14 December 30 2002
+
+1.  Added a graphics example to rq.Rd using the Engel data and added the data set 
+
+3.15 January 22 2003 
+
+1. Fixed a typo in the akj.Rd file and added a reference.
+
+3.16 February 6 2003 
+
+1.  Fixed a generic method mismatch in the latex family prompted by Kurt's notice
+that R CMD check quantreg produced a warning in R 1.7.0.  Now seems to check cleanly
+in the devel version of 1.7.0 installed today.
+
+3.17 February 17 2003 
+
+1.  Removed the last of the _ assignments in the example files.
+
+3.18 March 4 2003 
+
+1.  Fixed a documentation bug in rq.fit.br the entry for alpha was changed from:
+
+ alpha: the nominal coverage probability for the confidence intervals            
+
+to
+
+ alpha: the nominal noncoverage probability for the confidence intervals            
+
+3.19 March 25 2003 
+
+1.  Added src/Makevars file in accordance with Brian's email request, see R email folder.
+
+3.20 April 27 2003 
+
+1.  Found a bug in the fn family of fortran/ratfor functions.  When the initial
+least squares start produced a residual which was a hard zero, then the
+initial value of Q had a NaN value and this caused the function to return
+with all NaN coef values.  This was altered to make z and w = eps when
+this happens.
+
+2.  When interp=FALSE in rq.fit.br the tcrit flag was broken.
+
+3.  added names to coef return when CI= FALSE in rq.fit.br
+
+
+3.30  August 13 2003
+
+1.  added several bootstrapping methods to summary.rq including the MCMB
+approach of He and Hu based on code by Xuming He and Maria Kocherginsky.
+
+2.  added n choose m subsampling for the xy pair version of the bootstrap.
+
+3.31  August 25 2003
+
+1.  fixed a bug in anova.rqlist that messed up the checking for an intercept
+found by Juan de la Garza.
+
+3.33  January 09  2004
+
+1.  Fixed a bug in ranks() found by Brian Cade involving the tau score function.
+
+3.35  March 09  2004
+
+1.  Changed the default behavior of rq to produce only the point estimates and
+residuals when 0 < tau < 1, instead of automatically producing the rank inversion
+confidence interval table.  The latter is now available from summary.rq by 
+specifying se="rank".  (This is actually the default option in summary.rq when
+the sample size is less than 1001.
+
+2.  Altered anova.rq slightly to accomodate its use for two sample rank tests --
+this task was simplified somewhat by (1.).
+
+3.36 June 9, 2004
+
+1.  Scoping problem in summary.rq made data invisible when formula
+variables were specified using data=blot in rq().  This entailed a
+somewhat extensive updating of rq and summary.rq in accordance with
+the "Notes on model-fitting" white paper on the R developer page.
+Thanks for that! to the anon author.  Now rather than passing x,y
+a model object is passed indicating how the model should be 
+reconstructed.  As a byproduct, the lowest level fitting routines
+no longer return x,y,  thus saving some memory.
+
+2.  added a error check to boot.rq to prevent users from calling with
+tau outside (0,1).  Calls with   tau = 1 produced a rather nasty memory
+overwrite as experienced by Alexis Diamond, debugging required some interesting 
+adventures with gc().
+
+3.  Major revision of the code to do inference on the rq process based
+on the Khmaladze approach.  See khmaladze.test for further details.
+In the process discovered a minor bug the resulted in problem with the
+Joint test statistic.  (Two missing commas!)
+
+3.50  July 17, 2004
+
+1.  The function table.rq was made defunct, replaced by the more
+direct ability to specify multiple taus in rq().  When a vector of
+taus is specified, rq() returns an object of class rqs, and
+summary.rqs produces output for each tau.  There are plot and latex
+methods for objects of class summary.rqs.
+
+2.  The Solaris f95 compiler choked on the & in column 1 of akj.f, so
+this has been moved to col 6.  
+
+3.60  September 20, 2004
+
+1.  The choice of bandwidth was corrected for the "ker" method in
+summary.rq() to account for the scale of the residual vector.  Thanks
+to Victor Chernozhukov for pointing this out!
+
+
+2.  On a 64bit gentoo linux system the statement 
+
+	data one/1.d0/
+
+set one = equal to zero...so I have systematically changed all data
+statements to parameter statements.  This seems to be a general problem
+that was created by gcc 3.4.  On the updating note that several of the
+.f files were preprocessed by a new ratfor processor.  See the README
+file in the src/ratfor directory for further details.  This bug in g77
+was reported to the gnu folks and a patch was forthcoming with about
+48 hours.  If only American foreign policy could respond so efficiently
+to their snafus.
+
+3.70  October 1, 2004
+
+1.  The nprq and nlrq packages for nonparametric and nonlinear QR
+were folded into quantreg.  The revision file for nlrq is reproduced
+below:
+
+  This is a package for estimating nonlinear in parameters quantile regression models.
+  The algorithm is originally based on an Splus implementation of Koenker and
+  Park (1996, J. Econometrics).   The interface to model specification a la nls()
+  was very kindly provided by Philippe Grosjean.  It was originally submitted to
+  CRAN in May, 2001.
+  
+  Version 0.1-4 (May, 2004)
+  
+  `       o Added method argument to nlrq() to be passed to optim() at the suggestion of
+                  James Rogers (Pfizer)
+
+See the documentation files for rqss() and friends for further details on the 
+nonparametric functionality.  There is a strong dependence of the rqss fitting
+functions on the SparseM package, and some use of tripack, and akima packages
+as well.  Finally, the demo for the triogram fitting included in the demo
+directory wants the rgl package.
+
+
+2.  Brian Cade sent an example for forensic exam, which revealed that
+the call to model.weights failed to work properly in summary.rq
+This is now fixed using model.weights(object$model).
+
+3.71  November 18, 2004
+
+1.  The translation of boot.r and penalty.r were updated using the SEM
+ratfor compiler so that their continuation characters appeared in col6
+not col1  -- to comply with our local switch to Sun compilers on ysidro
+and with the other code in the package.  (Isn't fortran wonderful?)
+Now that we are back to gcc this isn't needed here, but might save some
+one else some consternation.  
+
+3.72  November 27, 2004
+
+1.  Reference to nls package was removed (thanks Kurt) since it has
+now been merged into stats.  Also upped Depends to R >= 1.9.0.
+
+3.73  December 1, 2004
+
+1.  Fixed a small bug in summary.rqs which had appended olscoefs for
+no apparent reason, and this caused a printing error.
+
+2.  Fixed large bug in anova.rqlist in which chi-squared statistic
+was divided by numerator degrees of freedom (ndf) when this had already
+been done in rq.test.rank, and modified the way that the score function
+specification was passed.
+
+3.  Also fixed a printing glitch in the anova.rq procedure by adding
+an explicit print method for such objects.
+
+3.74  February 24, 2005
+
+1.  Fixed bug reported by Steve Portnoy in summary.rq.  The  se="iid"
+option was broken after the switch from a matrix valued coef object
+to a vector one.
+
+3.75  March 11, 2005
+
+1.  Fixed bug reported by Jose Machado in predict.qss2.  Further work
+is needed to integrate these methods for qss2 and qss1 objects into
+a upper level predict.rqss function, but this will have to wait.
+
+3.76  March 17, 2005
+
+1.  Jan deLeeuw reported that the warnings for rqbr.f had turned into
+errors in g77 4.0 -- some hand editing of the ratfor translation fixed
+this, but it is depressing to think that there isn't now an automatic
+way to get from the ratfor.  See the README file in the ratfor directory
+for gory details.
+
+3.77  April 28, 2005
+
+1.  Cleaned up a few unescaped % signs in the .Rd files at the request of Kurt.
+
+3.78  May 2, 2005
+
+1.  Finally added back in the vignette just in time for the first copies of QR
+from CUP.
+
+3.79  May 2, 2005
+
+1.  Fixed 3 problems identified by Gabor Grothendieck having to do with rq
+interaction with fitted() and residuals() and na.action.
+
+3.80  May 11, 2005
+
+1.  Added predict method for rq and a subset argument.
+
+3.81  May 14, 2005
+
+1.  Added a flag to enable anova.rq to allow computation of separate tests on each of the
+slope parameters for equality across quantiles.
+
+2.  Fixed reference to Engel (1857) in the vignette.
+
+3.82  May 15, 2005
+
+1.  Added a formula.rq function that seems to be necessary to make formula updating
+work.  
+
+3.82  May 20, 2005
+
+1.  Modified initial bandwidth in akj() to insure default starting value, this
+had produced a rather mysterious bug that was only apparent on a few machines
+due to (essentially)  trying to check whether double(0) <= 0.
+
+2.  Modified predict.qss1 to fix a problem with non-unique x observations.
+This needs further work, ideally a predict.rqss function that would dispatch
+pieces of the prediction problem to the right lower level prediction function.
+
+3.83  Nov 23 2005
+
+1.  Added a "cen" method to rq that fits the Powell censored regression
+model using the Fitzenberger algorithm.  This is very beta for the moment
+and needs to have some inference methods written, before it is terribly
+useful.  A related project will add Portnoy's CRQ method as well.
+
+2.  Fixed a bug in the predict.qss1 function that made it invisible.
+
+3.  Fixed several bugs in the rank testing with anova.rqlist in response
+to a report from Brian Cade.  In particular, to enable rank tests with
+weighted QR.
+
+3.84  Nov 28, 2005
+
+1.  One (last?) bug fix for rq.test.rank which for weighted data introduced
+a faulty intercept.  Again, thanks to Brian Cade for the report.
+
+2.  Changed tau checking to not allow tau either 0 or 1 in an effort to
+discourage these values, which seems to have dire consequences on some
+machines, cf email of Andrew Clausen regarding segfault on Debian.
+
+3.  Added summary.fcrq and summary.fcrqs to provide some basic inference
+on the Powell censored regression estimator.
+
+3.85  Feb 11, 2006
+
+1.  Revised predict method for rqss objects motivated by an inquiry by
+Denis Chabot.
+
+2.  Added a note to explain that the default se method in summary.rq was
+sample size dependent.
+
+3.86 March 16, 2006
+
+1.  Revised rq to allow taus to be 0 or 1 when there multiple taus.
+
+3.89 March 31, 2006
+
+1.  Changed summary.rq so that call to rq.fit.fn is to rq.fit.fnb based
+on an example provided by Nantachai Kantanantha.  The former called 
+produced NaN's for the coef vector, while the latter agreed with rq.fit.br.
+This deserves some more attention at a later point.
+
+2.  Added function kuantile which implements the O(n) algorithm of Floyd
+and Rivest for computing univariate quantiles.
+
+3.90 May 17 2006
+
+1.  Major revision of the rqProcess and KhmaladzeTest functions.
+
+2006-08-14  Martin Maechler  <maechler@stat.math.ethz.ch>
+
+	* tests/rq.R (stopifnot): regression tests added.
+
+	* man/plot.Rd: improve; notably plot.qss2() arguments
+
+	* man/predict.rqss.Rd: no rm(.) in example; improve
+
+2006-08-12  Martin Maechler  <maechler@stat.math.ethz.ch>
+
+	* R/quantreg.R (akj): 'iker2' is never used; add a check for
+		length(p) == length(x) [vignette did not fulfill this and
+		gave spuriously wrong results because of initialize memory
+		in .Fortran("arj" ...) !
+	* inst/doc/rq.Rnw: fix the akj() weights
+	* man/akj.Rd: no 'iker2'; cleanup
+
+2006-08-11  Martin Maechler  <maechler@stat.math.ethz.ch>
+
+	* tests/run-demos.R: one simple test suite ..
+
+	* demo/cobar.R: make sure this also works when 'rgl' does not
+	* demo/Frank.R: clean up a bit
+	* demo/engel1.R: nicer; + legend
+	* demo/engel2.R: is incomplete => if(FALSE) { .. } for the moment
+	         FIXME: use vignette !
+
+	* man/engel.Rd: added somewhat interesting example.
+
+	* src/chlfct.c (chlfct): eliminate goto; correct timing also when
+	error; more comments (timewd, etc)
+
+	* R/sfn.R (rq.fit.sfn, rq.fit.sfnc): only keep what's needed from
+	.Fortran(). Save one (sparse) matrix multiplication
+
+2006-08-09  Martin Maechler  <maechler@stat.math.ethz.ch>
+
+	* src/srqfn.c:    new from src/srqfn.f ...
+	* src/srqfnc.c:   new from src/srqfnc.f ...
+
+2006-08-05  Martin Maechler  <maechler@stat.math.ethz.ch>
+
+	* src/cholesky.c: new from src/cholesky.f which must be renamed
+
+3.91  Sept 11, 2006
+
+1.  Removed Makevars from src directory which seemed to be causing
+some difficulties with multiple definitions of symbols for gfortran.
+
+4.00 Sept 11, 2006
+
+1.  Implements some suggested fixes by Martin Maechler.  See detailed
+entries of Martin above.
+
+4.02 Oct 21,  2006
+
+1.  Fixed problem with olscoef plotting in plot.summary.rqs.
+
+2.  Changed variable names in the engel  data and examples to avoid
+long-standing problems of masking x,y names.  Thanks to Marc Schwartz
+for pointing this out.
+
+4.03 Nov 18, 2006
+
+1.  Fixed memory problem with rq.fit.fnc when n2 > n1, the vector u was
+being used as a scratch array but had insufficient space.
+
+2.  Fixed rqProcess bug with "location-scale" option noted by Alvaro Novo.
+
+4.04 Dec 19, 2006
+
+1.  Removed [.terms from rqss.R  at the advice of BDR.
+
+2.  Added a summary.nlrq function to bootstrap se's.  This is highly
+experimental at this stage.
+
+4.04 Jan 15, 2007
+
+1.  Modified penalty.r so that it checks to ensure that all triogram quadralaterals
+have the same orientation, this was a longstanding bug that prevented that convexity
+and concavity constraints from properly working.  Still needs further checking....
+
+2.  Some mostly cosmetic changes were made in rq1.f in the course of debugging an
+apparent problem in boot.rq.xy which eventually turned out to be caused by a rank
+deficient X matrix.  Some attempt was made to improve the reporting of this, but
+I'm afraid there are some inherent problems in the BR code that makes it difficult
+to recognize this sort of problem.
+
+3.  Added a residual  vector to the object returned from rqss.fit to conform with
+general R practice and also because it was needed to do some exploration of the
+number of exactly fit points in an example of Xuming He.
+
+4.  Added a demo called cpoint.R that illustrates how rqss can be used for a
+simple broken stick piecewise linear median regression problem.
+
+4.06 Feb 1, 2007
+
+1.  Fixed legend ordering problem in rq.fit.fcen.Rd.
+
+2.  Fixed a call to as.matrix.csr(diag(n)) in rqss to avoid creating a dense matrix.
+
+3.  Added summary.rqss logLik.rqss and AIC.rqss functions
+
+4.  Fixed etime bug in Cholesky.c according to a patch kindly 
+provided by Simon Urbanek.
+
+4.07 April 17, 2007
+
+1.  Added two new methods for fitting:  rq.fit.lasso and rq.fit.scad. 
+
+2.  Added ... to a call to plot from plot.summary.rqs suggested by Tyler Smith.
+
+3.  Added the Peirce dataset and my attempt to reproduce the Wilson and Hilferty
+analysis of it.
+
+4.08 July 1, 2007
+
+1.  Modified predict.rqs and added predict.rq.process to produce stepfun objects.
+
+2.  Added a function "rearrange"  to do rearrangement of stepfun objects a la
+Chernozhukov, Fernandez-Val and Galichon.
+
+4.09 August 7, 2007
+
+1.  Modified plot.summary.rqs according to a proposal by Achim Zeileis to 
+improve default mfrow choice and tone down the colors to grey scale for better
+plotting.  Also added a plot.rqs function
+
+2.  Changed predict.rqs and predict.rq.process so that the stepfun version
+is an option and the default is still returning a matrix.
+
+4.10 September 12, 2007
+
+1.  Modified rearrange according to suggestions by Ivan Fernandez-Val and 
+Victor Chernozhukov to acommodate right and left continuous stepfuns.
+
+2.  Cleaned up some Rd files that improperly documented methods.
+
+4.11 Jan 15, 2008
+
+1.  Fixed summary.nlrq problem with coef/coefficient duplication
+
+2.  Fixed rqss problem with models without any qss terms
+Thanks to Hiroyuki Kawakatsu for pointing this out.
+
+3.  Fixed summary.nlrq to pass ... to boot.rq and updated man file
+
+4.  Fixed typo in demo/hinged.R pointed out by Brian Ripley
+
+
+4.16 Jan 15 2008 
+
+1.  Revised the formula handling for the Fitzenberger/Powell estimator and
+replaced the old rq1 fortran routine with an even more stripped down version
+from the  crq package.  (This seems to have eliminated a memory leak problem.)
+This is now called via crq() not rq().
+
+2.  Added the Peng-Huang estimator as a option to crq().  This is preliminary
+step toward also folding in the crq package.
+
+3.  Fixed problem with crq FP method which required a new (bastardized) version
+of Surv called FSurv to accommodate fixed censoring times.
+
+4.  Incorporated crq package into quantreg and rationalized the interface to
+all crq functionality. Insert of revision history of crq:
+
+   Version 0.3  Oct 2007
+
+   1.  Fixed a bug in the boot.crq which led to double weighting in the bootstrap.
+
+   Version 0.4  Nov 2007
+
+   1.  Modified summary.crq (at the suggestion of S. Portnoy) to:
+
+        a.)  make .95 coverage the default rather than .90
+        b.)  center intervals at betahat(tau) rather than median of bootstraps
+
+5.  Cleaned up the boot.whatever code to call rq1 in a consistent way as a prelude
+to investigating other bs methosd for crq.
+
+6.  Replaced Fitzenberger's qrcens fortran subroutine with a new version that
+was written from scratch along the lines of the pure R implementation of Barrodale
+and Roberts.
+
+7.  Reworked the naming conventions for the crq methods.  Note that FSurv is
+now Curv.
+
+8.  Added an option to the Powell method to compute the full global optimum
+by pivoting through all the possible h's.  This entailed a new function combos()
+that produces an ordered version of combn() output.
+
+4.17 Feb 22 2008
+
+1.  boot.r had a wayward comma, 
+
+2.  added start options for powell method.
+
+3.  Thanks to Robert McGehee for a report that g77 on his fedora system didn't
+like the ordering of the integer declarations in my fortran.  Integers used
+as variable dimensions should be declared integer BEFORE they are used as
+dimensions in other arrays.  (Picky, picky.  Sometimes I wonder whether this
+is a conspiracy by the C-conspiracy to stamp out fortran altogether.)
+
+4.18 Feb 23 2008
+
+1.  Revised the rho, logLik and AIC functionality of rq(), so it is
+easier to extract these values.
+
+2.  Revised predict.rqss and friends to fix a problem with variable names
+as suggested by Kyle Jennings.  Further work is needed:  print methods for
+rqss objects would be nice.
+
+3.  Changes to predict.rqs as suggested by Achim Zeileis. 
+
+4.19 Mar 31 2008
+
+1.  Added extractAIC method for rq objects.
+
+2.  Added singularity check for rq.fit.br since Gabor G pointed out that
+the checking otherwise isn't really reliable and when it fails, R may crash.
+(Still open question:  should I provide some automagic aliasing for such situations?)
+
+4.20  July 17, 2008
+
+1.  Added a reference for rq.fit.scad.
+
+2.  Added crq.pdf as a pseudo-vignette, pseudo because it isn't sweaved.
+
+3  Fixed a bug in rq.fit.lasso  for tau != .5. And for rq.fit.scad.    
+
+4. Fixed bug in plot.summary.rqs and plot.rqs when OLS=FALSE.  Thanks to Jim
+Kossin UW-Madison for reporting this.
+
+5.  Modified both rq.fit.lasso and rq.fit.scad to allow a vector of lambdas to
+be passed thereby allowing users to fine tune the style of l1 shrinkage.  In
+particular, to exempt some covariate effects from shrinkage by setting some
+elements of lambda = 0.  In prior versions only the intercept was exempt and
+all slopes were shrunken equally.
+
+6.  Removed the function rq.fit.fn and made all  invocations of method "fn"
+fitting call rqfnb version of the fortran algorithm.  This was precepitated
+by finding that the earlier version of this alg had trouble with problems in
+which there were observations (x,y) = (0,0).  Such observations shouldn't
+affect the solution, obviously, but on yzzy (my ppc mac desktop) they weren't
+so innocuous.  This eventually was attributed to the fact that the initial
+setting of the dual variables was perhaps not feasible.  The "fnb" version of
+the algorithm relaxed this requirement and seems to be generally more robust.
+
+7.  Modified the class structure for lassorq(s) scadrq(s), etc. objects so that they
+inherit  from rq, rqs objects and therefore can use AIC evaluation for those
+methods.  Note that there is a edfThresh option for AIC to determine how to
+evaluate the effective degrees of freedom when using the lasso and scad
+penalty methods.
+
+4.22  Spetember 17 2008
+
+1.  Fixed bug in summary.crq  which for the Bilias, Chen Ying bootstrap of the
+Powell estimator produced the wrong sample selection.  Thanks to  Ajay Shah
+for pointing out the problem.
+
+2.  Fixed  bug in rq.test.rank which computed the denominator degrees of
+freedom incorrectly.  (Thanks to Xuming He for pointing this out.)
+
+3.  Added a weighted bootstrap option to boot.rq a la Bose and Chatterjee
+using unit exponential weights.  (This is a prelude to implementing another
+option for anova.rq using the approach of Chen, Ying, Zhang and Zhao
+(Biometrika, 2008).
+
+4.  Made a distinct version of rq1.f  called rq0.f for use in the
+bootstrapping routines.  So now rq1.f is used exclusively by crq, while
+rq0.f is used exclusively by boot.rq.:
+ 
+5.  Implemented the test proposed by Chen, Ying, Zhang and Zhao (2008) based
+on drop in the value of the objective function.  (This uses the same
+resampling scheme as the Bose and Chatterjee GBS to compute a reference distn
+for the test the statistic.
+
+4.23  October 13 2008
+
+1.  added the line:
+
+	fstcol = 1;
+
+in cholesky.c  which seemed to have been lost in MM's conversion to C.
+Thanks to to Kurt for pointing this out.  (rather scary  -- what?)
+
+2.  A major extension of the function predict.rq was made to provide confidence 
+intervals for the predictions.  This is now possible using a variety of methods,
+including percentile bootstrap and Portnoy and Zhou's "direct method".
+These methods can be used to construct prediction intervals as well.
+A more systematic study to compare the efficacy of these methods would be
+useful.  A demo file has also been added to illustrate the useage of these
+predict methods:  try demo(predemo).  Thanks to Ivan Mizera for several
+contributions to this extension.
+
+4.24  October 20 2008
+
+1.  Added an argument to nlrq.control called InitialStepSize that allows the
+user to control the starting value used by optim to compute a step size given
+a Meketon step.  For some work on the AR(1) Clayton copula  model, it seems
+that the only prudent value is  0.  Default value  remains 1.
+
+2.  Changed rq.fit.lasso to fix a bug when p=2,  as suggested by Gal
+Goldshtein, and in rq.fit.scad.
+
+3.  Fixed a bug in predict.rq that involved factors.  Fix required adding an
+xlevels object to the fitted rq object as in lm.  Thanks to Sandy Weisberg for
+pointing out the bug.
+
+4.25  January 6, 2009
+
+1.  Fixed buglet in latex.table diagnosed by Gert van Valkenhoef.
+2.  Fixed several .Rd files formatting identified by the new Rdversion 2
+parser.
+
+4.26  February 2, 2009
+
+1.  fixed rq.fit.pfn buglet for cases in which m > n.
+2.  Fixed Qhat at 0 and 1 in the sol array as suggested by Steve Portnoy.
+3.  Fixed logLik.rqs to have the right df attribute when pen = 0.  Thanks
+to Brian Cade for pointing out this omission.
+4.  Fixed some issues with plot.rqss:  added an "add"  option so that one
+can either initiate a new plot, or add to an old plot, added a par(ask =TRUE)
+when there are multiple qss terms.  Added title and better axis labels using
+names of the qss variables.
+
+4.28  April 12, 2009
+
+1.  Fixed (I hope) an environmental issue in rqss:  when data was specified in
+rqss, the eval of the qss formulas failed to find the lambda values.  This
+seems to be resolved by defining pf <- parent.frame(), and then adding enclos
+= pf to the eval call.  But at the suggestion of Duncan Murdoch and Peter
+Dalgaard I'm using instead pf <- enviroment(formula).  Thanks to both for
+their help with this.
+
+2.  Added Boscovich data to the data directory with an example in the
+documentation file  (Bosco.Rd).
+
+4.30 May 10, 2009
+
+1.  Motivated by some trouble with rqss, I've reverted to the .f version of
+cholesky.c originally used before MM provided the .c version.  This has
+somewhat reduced  the frequency of occurance of the dreaded ierr=17.
+
+2.  rq.test.ranks and friends have been modified to allow trimmed Wilcoxon
+score functions.
+
+3.  In .First.Lib cat was replaced by packageStartMessage() at the suggestion
+of BDR.
+
+4.34 June 3 2009
+
+1.  Added option in rqss to use lasso penalization for the linear covariate
+effects.  See also the file rqsslasso.R in the demo directory.
+
+2.  Deleted the component tausplit from the output of crq.fit.por which seemed
+to do nothing useful, and had a potentially dangerous sideeffect.
+
+3.  Added coef names for rqss objects
+
+4.  Fixed rqss so that when no qss terms appear the fitting still by rq.fit.sfn
+and weighting can be handled. 
+
+4.35 June 27  2009
+
+1.  Some fixups of rqss to handle models without any qss terms.
+
+2.  Added a function dither() to facilitate dithering.
+
+3.  Portnoy's bug fix  to crq.fit.por to handle cases without censoring.
+
+4.  Minor changes to plot.rqss to handle ask parameter.
+
+4.36  July 10 2009
+
+1.  Fixed bug in rq() that prevented contrasts from being properly propagated
+forward to summary.rqs when there were multiple taus.   Thanks (yet again!)
+to Brian Cade for the bug report.
+
+2.  Added two new functions in tools.R FAQ and ChangeLog to facilitate looking
+at those two files for packages that have such files in the package inst
+directory.  
+
+3.  A very primative print method for rqss objects was added, summary.rqss
+needs some adaptation to provide better info for lasso fitting, etc and then
+a better print method could be written.
+
+4.37  July 24 2009
+
+1.  Fixed computation of residual and fitted.value components in rq.wfit,
+thanks to V�clav Varva#ovsk�  for point this out.
+
+2.  At the suggestion of Steve Portnoy the default grid spacing in crq.fit.por
+was  modified to reduce the number of grid points.
+
+4.38 August 3 2009
+
+1.  Removed a comma in an .Rd file, at the prodding of Kurt.
+
+2.  Fixed a bug in summary.rqss which led to a miscalculation of the edf
+in cases when there was a lasso effect.  This involved passed the number
+of rows of the lasso constraint matrix forward as part of the fit object.
+
+4.42  August 24, 2009
+
+1.  Added a demo for the Melbourne temperature data.
+
+2.  Made some extensive changes in plot.rqss and summary.rqss to implement
+confidence bands and summary coef tables for rqss.  
+
+3.  Added a faux vignette about rqss fitting and a function to read such
+objects.
+
+4.  Minor mod of coef.crq to deal with a zero index problem identified by
+Portnoy.
+
+5.  An experimental option to add uniform confidence bands for 1d rqss
+components based on Hotelling tubes has been added.  Further work is needed
+to evaluate the performance of these bands, which will be eventually added
+to the rqss vignette.
+
+6.  Fixed yet another missing drop = FALSE in summary.crq.
+
+7.  Added an iid argument to rq.test.rank, and the option (when iid = FALSE)
+to do the nid version of the rank test, only when the score function is the
+special tau specific one.  (I don't think that nid makes much sense
+otherwise.)
+
+8.  rq.fit.br modified so that it optionally returns dual vector, and
+rq.test.rank modified to use this vector when rank test uses tau-score
+function.  This avoids computing the whole rq process in such cases.
+
+9.  Added a reference to the Peirce.Rd file.
+
+4.43  October 17 2009
+
+1.  Fix bug in predict.rq so rdf were found, thanks to Richard Berk for
+report.
+
+2.  Added set.seed(1989) for  Frank demo, after Kurt reported that it choked
+on a random realization.
+
+4.44  October 17 2009
+
+1.  latex.table was producing two captions... why didn't I see this earlier?
+
+2.  pwy bootstrap method was badly centered for prediction intervals, this was
+eventually traced to a mistaken inequality in boot.rq.  Thanks to Richard Berk
+(Wharton) for pointing out the original anomaly.
+
+4.45  January 12 2010
+
+1.  Added 3 score functions to "ranks" for the work on the Jana Festschrift
+paper.
+
+2.  Added shading option for plot.rqss confidence bands.  Color of these
+bands is hard coded to grey scale and this probably should be fixed.
+
+3.  Modified plot.rqss to (optionally) plot and return both pointwise and
+uniform bands.
+
+4.  Added titles option for plot.rqss  bands.
+
+5.  In plot.rqss the eigenvalue decomposition once in a while produced
+negative eigenvalues which then caused havoc.  I replaced E$values with
+pmin(0,E$values).
+
+4.46  March 15 2010
+
+1.  Added select argument to plot.rqss to plot subset of qss objects.
+
+2.  Commented out a line in latex.table at the suggestion of David Epstein,
+Warwick.
+
+4.47  April 21 2010
+
+1.  Updated mcmb.c to fix a problem with the 64bit version, thanks to Garth
+Tarr for pointing this out.
+
+2.  Updated the references for rearrange manpage and fixed an ambiguity in the
+summary.rq manpage.
+
+3.  Fixed a bug in predict.rqss having to do with name wrangling:  when qss
+terms had a variable name specified for lambda, this got carried along for the
+ride and caused problems with name matching for newdata.  Fix entailed
+adapting the mcgv interpret.gam to do something similar for rqss.
+Thanks to Ivan Mizera for pointing out the original problem.  
+
+4.48  May 21 2010
+
+1.  Added error message to alert users that summary.rq doesn't know how to
+deal with lasso'd fitting.  Thanks to Richard Berk (U. Penn) for pointed this out.
+
+2.  Fixed summary.rqss problem that made models without qss terms choke.
+
+3.  Changed predict.rqss so that confidence intervals for the prediction can
+be returned.  
+
+4.  Modified the fix in 4.47.3 to avoid using interpret.rqss.  This avoids
+calling qss twice for each fit, and returns a fake.formula directly from
+rqss that can then be used by predict.rqss.  Involved some semi-fancy
+footwork to deal with the formula wrangling, but seems cleaner than the
+prior approach (which had the unfortunate additional flaw that it didn't
+work as intended).
+
+5.  Fixed a bug in predict.qss1 by adding the argument include.lowest = TRUE
+in the call to cut.  This (seems to) allow newdata values equal to the minimum
+of those used in the fitting.  Prior version produced NAs in such
+circumstances and generated a god-awful error message when new() was called
+to construct the design matrix for the predicted observations.  Thanks again
+to Richard Berk for the example that led to this fix.
+
+4.50  May 26 2010
+
+1.  Added fitted() and resid() methods for rqss objects.
+
+2.  Fixed bug in powell.f -- failure to declare ddot double precision which 
+(curiously) caused example(crq) to produce something insane in 64bit R, even
+though in 32bit R it was ok.
+
+3.  Updated some references in rq.fit.sfn.Rd as suggested by Ott Toomet.
+
+4.51  Sept 25 2010
+
+1.  Fixed the vignette fiasco thanks to help from Bob Obenchain.  See inst/doc
+for the dummy Rnw files to enable one to make non-Sweave vignettes.
+
+2.  Fixed bug in predict.rq.process pointed out by Stephen Wegland (Mayo).
+
+4.52  Sept 28 2010
+
+1.  Revert to my old Makefile processing of rq.tex, after Kurt reported
+infinite loop in the texi2pdf step in Vienna.
+
+4.53  Sept 28 2010
+
+1.  Changed run-tests.R in tests directory to conform to a suggestion of BDR
+
+4.54
+
+1.  Added sentence to summary.rq.Rd to make it easier to find how to change
+coverage probability for rank based confidence intervals.  Thanks to Jochem
+Kail for this suggestion.
+
+2.  Modified definition of S in summary.crq to fix a problem with bootstrap inference.
+Thanks to Xianghua Luo for this suggestion.
+
+3.  Fixed vignette call to plot.summary.rqs... thanks to Jan Henckens.
+
+4.  Fixed call to latex.table to pass optional ... args.  Thanks to Jan
+Henckens, again.
+
+5.  Fixed rqss problem to pass optional space allocation arguments.  Thanks
+to Jungmo Yoon for noticing this problem.
+
+4.55
+
+1.  Fixed bug in rq.wfit to allow fitted values to be computed when tau = -1.
+Thanks to Brian Cade for this report.
+
+2.  Fixed bug in rqss that prevented models without qss terms to be estimated.
+
+4.56
+
+1.  Cleanup and compression of vignettes for Kurt.
+
+4.57
+
+1.  Slight change  in summary.rq to clarify default behavior 
+
+2.  Compactification of rqss0.pdf
+
+4.58
+
+1.  bug fix in summary.crq for cases with only one tau.
+
+4.59
+
+1.  bug fix in predict.rqss for cases without any qss terms.
+
+4.60
+
+1.  bug fix in rqss lasso rhs.  Thanks to Stefan Bache for reporting this.
+This also affects rq.fit.panel as posted on my webpages, which as been
+modified accordingly.
+
+4.61
+
+1.  Moved non-R data files to extdata directory and fixed some problems with the
+vignettes, as requested by Kurt.
+
+4.64  
+
+1.  Added an option to predict.rqs and predict.rq.process to allow one
+to predict conditional dfs rather than just conditional qfs.
+
+4.65  
+
+1.  rqss fitting now passes a list called control that contains various
+parameter for rq.fit.sfn(c) functions.
+
+4.66  
+
+1.  rqss now allows partially linear part  of X to be made sparsely thanks to
+maodel.Matrix from the Matrix package.
+
+2.  Typo introduced by the 4.65 change that caused cobs to seg.fault
+corrected.
+
+4.68
+
+1. Added demo for the Mammal plot.
+
+2.  Added warning for specifying a vector of taus in rqss indicating that only
+the first element will be used.  (Thanks to Hadley Wickham for pointing out
+that this used to generate a rather mysterious error message.)
+
+4.69
+
+1.  Added an experimental new function dynrq() modeled after dynlm() by Achim
+Zeileis, which is intended to make formula specification for dynamic models
+involving time series data simpler and more natural.
+
+4.70
+
+1.  Added NAMESPACE file kindly provided by BDR.
+
+Now that there is a namespace it is somewhat more difficult to debug using
+old fashioned work habits.  A trick suggested by Martin Maechler is the
+following:
+
+	example(source) # needed to define function sourceDir
+	sourceDir("<quantreghomedir>/quantreg/R")
+
+This has the effect of putting all of the R functions in the global workspace
+where they can be edited and changed at will. 
+
+4.71
+
+1.  Kurt's new gfortran found an error in the crq.f code:  det in the call to
+dgemi wasn't dimensioned, but it was supposed to be a 2-vector. Now fixed.
+
+2.  Added a new wild bootstrap option to boot.rq based on Xuming's forthcoming
+Biometrika paper.  For the moment only the two point weight distribution is
+implemented, but stay tuned for a smoother variant.
+
+4.72
+
+1.  Added a demo to illustrate automatic lambda selection for univariate rqss
+fitting.  This is based on a test problem in a recent paper by Oh and Nychka.
+
+2.  Changed the default bootstrap method in boot.crq from xy-pair to Bose,
+at the urging of Steve Portnoy.
+
+4.73
+
+1.  Changed the default score function in anova.rqlist to score = "tau"  as
+suggested by a question from Mo Dang-Arnoux (Grenoble).
+
+4.74
+
+1.  Altered taus in rq() so that any tau == 0 or tau == 1  are replaced by
+values strictly in (0,1).  As noted by Christophe Rolphe under some exotic
+circumstances this produced crashes from rq.fit.br.
+
+2.  Clarified the documentation for summary.rq to indicated that when se ==
+"boot" you can't get separate Hinv and J components only the full sandwich cov
+component.
+
+3.  Fixed the license designation to explicitly reflect the ambiguity of the
+status of the cholesky.f code.
+
+4.75  
+
+1.  Fixed the documentation for qss where convexity was imposed by "V" not
+"U".
+
+4.77
+
+1.  Removed the LICENSE file that had described some uncertainties with respect to
+the license status of the code in src/cholesky.f.  These uncertainties have
+now been resolved by the original authors, Esmond Ng and Barry Peyton,
+declaring their code to be open source, and thus the quantreg package can now
+be considered fully  GPL.
+
+2.  Commented out some vestigial write and printf calls in mcmb.c and cholesky.f.
+
+4.78
+
+1.  Fixed a bug in summary.crq which failed to check whether censoring in the
+Powell method was "right" or "left" before calling boot.rq.
+
+4.79
+
+1.  Added logLik and AIC functions for the nlrq class.
+
+4.80
+
+1.  added optional se argument to anova.rqlist so one can specify "ker" 
+standard errors.
+
+4.81
+
+1.  modified crq to allow left censoring for both Portnoy and Peng-Huang
+methods.
+
+2.  added tsp to the object returned by crq.fit.por to facilitate conputing
+the weights used by the Portnoy method.  Eventually, there should be some
+further documentation of this.
+
+4.83  
+
+1.  modified rq1.f to fix a dimension problem for the workspace, and added
+a new argument to control the maximum number of simplex iterations.  This
+was needed to fix problems encountering severe degeneracy, which induced 
+the possibility of an (essentially?) infinite loop.  A fixed 100000 limit
+is currently implemented, with a warning when exceeded that users might
+want to consider dithering the response variable.
+
+2.  added a few lines in summary.crq and print.summary.crq to provide the
+number of NA replications in the bootstrap simulation for each of the
+requested taus.
+
+3.  Modified the documentation files to mention the above changes and also
+to mention that the grid for the Portnoy method is equally spaced.
+
+4.84
+
+1.  Removed wayward files in ratfor directory
+
+2.  replaced call to dqrls in rq.fit.br by call to R qr function.
+
+4.85
+
+1.  Changed example for uis data in crq.Rd to Peng from Portnoy.
+
+4.86
+
+1.  Changed crq.f so that it stopped the tau iteration whenever IFT = 9
+"simplex iteration limit exceeded" occurs.
+
+4.90
+
+1.  Reverted to earlier code for rq1.f and crq.f  pending resolution of
+strange disparity between results for R CMD check for osx and windoz.
+in versions 4.85-8 demo(KMvCRQ) produced errors on windows that were
+irreproducible on osx.
+
+4.91
+
+1.  Tried to clarify documentation for summary.rqs  concerning changes
+in the level of the confidence intervals when the rank method is being used.
+
+2.  Increased the default number of iterations in rq.fit.fnc.
+
+4.91
+
+1.  Added a drop = FALSE in nas definition of summary.crq to preserve the
+matrix structure there.
+
+4.93 
+
+1.  Fixed several bugs in the crq code for left censored data.  Thanks to
+Brian Cade as always for bringing this to my attention.
+
+4.94
+
+1.  Moved UIS crq example from man directory to demos to save check time as
+advised by Uwe Ligges.
+
+4.95
+
+1. Bug in summary.crq when ctype == "left"  and some specified taus weren't
+estimable -- upper quantiles from bootstrap were deleted, but it was the lower
+ones that should have been.
+
+2.  BIG in crq.f was changed from 1.d37 to 1.d17  which "fixes" a segfault
+condition in an example of Brian Cade's, but I have no frigging idea why.
+
+4.96
+
+For left censoring the idea of reversing the order of the taus in the solution
+array turned out to cause all sorts of havoc in my interpolation scheme for
+coef.crq....  so I've reverted to the usual ordering.
+
+4.97
+
+1. Yet another modification of coef.crq.  This time I've decided to eliminate the
+midpoint interpolation scheme that was originally motivated by the pivoting
+method for the Portnoy crq estimator, and go back to conventional linear
+interpolation.  This is more consistent with the default grid methods that are
+now being used and was endorsed at coffee by Steve.  This change was again
+stimulated by Brian Cade's careful checking of anomalies in crq output.
+
+2.  Added drop = FALSE for the coef object returned from crq.fit.[por,pen],
+to hangle the case in which there is only one column of the solution, which
+hopefully is a very rare occurrence.
+
+3.  Changed Curv to return a type object, to fix a bug introduced into the 
+Powell methods when I added ctype for left censoring for Portnoy and
+PengHuang.  Thanks to Mike Smithson for reporting this.
+
+4.98
+
+1.  Fixed a plethora of places that the new dimension checking for fortran
+arrays identified issues.  
+
+5.00 
+
+1.  Fixed several places with excessive line lengths in the .Rd files.
+
+2.  Purged the econometrica.bst bib style, as requested by Brian R.
+
+5.04
+
+1.  Fixed logLik.nlrq bug as noted by Erin Graham.
+2.  Changed the default bootstrap method for crq objects to the delete-d 
+jackknife method proposed recently by Portnoy.  This seems to work better
+especially when, as is ofter the case the process is "defective."
+3.  Fixed predict.crq so it would return fitted values when newdata was
+omitted, bug report by Carles Forn� Izquierdo.
+
+5.05
+
+1.  BDR suggested a fix to dynrq to avoid a ":::" usage.  This led to
+some adventures in environments that eventually led to inclusion of a model
+component in the first element of dynrqs objects so that plotting of
+summary.dynrqs objects could find the appropriate design matrix.
+
+2.  And in addition the Description file was augmented with a greatly
+expanded authors component -- which should have been done years ago
+but was greatly facilitated by the (relatively) new person() function.
+
+5.07 
+
+1.  Bug fix in predict.rq:  when mofn < n and percentile method the
+interval needed to be recentered and rescaled, not enough to just 
+rescale B matrix.
+
+5.08
+
+1.  Incorporated my qrisk package for portfolio selection into quantreg.
+This includes the function rq.fit.hogg() that does what Zou and Yuan
+call composite quantile regression, or more accurately a generalized 
+version of this.
+
+5.13  
+
+1.  Fixed several namespace problems identified by BR.
+2.  Fixed bug in qrisk code to convert data.frame X to matrix.
+
+5.16
+
+1.  Fixed bug in rq.fit.lasso whose .Fortran call had an extra argument.
+2.  Fixed bug in rq.fit.pfn to correct behavior when m > n.  Pointed out by
+Ivan Diaz (Google).  Cause of this was rather pathological but 
+((p-1)*n)^/2/3 > n can happen when p is large as it tends to be these days.
+
+5.17
+
+1.  Added anova.rqs at the suggestion of Jon Peck (IBM).  This just takes
+rq() output from a multiple tau command and converts it to something that 
+anova.rqlist can understand.  Peck is writing something on the SPSS <-> R
+interface, so I was curious to see what is going on with that.  The answer
+seems to be not too much, but there is a very annoying article here:
+http://www.ibm.com/developerworks/library/ba-call-r-spss/  --
+ugly hacks indeed!  It does make me wonder why I've spent part of my weekend
+making this extension just to accommodate a commercial implementation by IBM
+that enables SPSS to call quantreg.
+
+2.  Fixed a bug in rq.test.rank which produced the wrong p-value for the
+chi-squared version of the test.
+
+3.  Added various importFrom directives in NAMESPACE in accordance with
+Kurt's July 2015 suggestions.
+
+4.  Removed calls to crq.fit.por2 provisionally while we resolve some
+problems with the code for this new procedure.
+
+5.18
+
+1.  Added a couple of further importFrom directives in NAMESPACE at
+Kurt's suggestion.
+
+2.  Added some further cautionary verbiage about the dangers of using
+rank inversion for large problems at the suggestion of Jon Peck (IBM).
+
+5.19
+
+1.  Changed the printing of the number of NAs in the crq bootstrap functions
+so that it also reported "out of" number of bootstrap replications.
+
+2.  Changed the coef matrix for the Powell crq method so that it conformed 
+to the other methods to facilitate plotting as requested by Vladimir Pazitka.
+
+3.  Changed the eps in summary.rq from .Machine$double.eps^(2/3) to
+.Machine$double.eps^(1/2).  This will reduce (somewhat) the likelihood
+of getting one or two influential f_i's that dominate a covariance matrix
+estimate.
+
+4.  Introduced the Portnoy2 method for crq, which still should be considered
+experimental.  It is a pure R rewriting of the original algorithm that
+iterates on a fixed grid.  
+
+5.20
+
+1.  Added FAW to the rq.Rd see also list at the suggestion of Terry Therneau.
+
+5.21
+
+1.  Allowed ... to be passed in plot.summary.crqs.
+
+2.  Fixed namespace bug in dynrq, and added an Edgeworth wacky AR(1) example
+to dynrq.Rd.
+
+3.  Fixed rqss bug about length of residual vector
+
+
+5.23
+
+1.  Added a "cluster" option for summary.rq() when using the bootstrap option
+this option implements the wild gradient bootstrap method of Hagemann (2016).
+See boot.rq for further details.  [Needs further testing.]
+
+2.  Added a sfn method for rq models, and in the process modified somewhat
+the return object for both rq.fit.sfn and rq.fit.sfnc so that it is compatible
+with other rq.fit objects.
+
+5.24
+
+1.  Reverted to the old fortran versions of srqfn.f and srqfnc.f, ie removed
+Martin Maechler's C versions, in preparation for some new sparse forms of the
+bootstrapping functions.  Made a couple of slight changes in the return object 
+for these functions.
+
+2.  Fixed a sign error in the cluster option pointed out in an email of
+Andreas on May 9 2016.  
+
+3.  Added jackknife option to boot.rq for the proposal of Portnoy.
+
+4.  Adapted boot.rq and friends so that when there are multiple taus
+summary.rqs reuses the same randomization  for each of the taus to facilitate
+joint inference with the bootstrap realizations.
+
+5.25
+
+1.  When method = "sfn"  store model$x in sparse form.  Then when
+bootstrapping use method = "sfn" rather than the usual "br" method.
+
+2.  When using the "cluster" option for bootstrap allow "sfn" as above.
+
+3.  When na.action = "omit"  and length(fit$na.action) > 0, then omit
+these values from the strata indicator "cluster".  This would seem to
+help bring together the survey package and quantreg as desired by
+email correspondance with donald706.
+
+5.26
+
+1.  Fixed long line per Kurt's suggestion.
+
+2.  Added some comments about method "sfn" in the man page for rq.
+
+5.27
+
+1.  removed lines that cat'd taus from rqprocess in the khmal.R
+
+2.  fixed environment problem in nlrq, according to suggestion of 
+Vaidotas Zemlys-Balevicius email August 9 2016.
+
+5.28 
+
+1.  Cleaned up the fortran source a bit in accordance with Kurt's mandate
+of late August 2016.  There are still some offensive items mainly in crq.f
+that should be dealt with, but I wasn't able to dig into this at the moment.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/FAQ
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/FAQ	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/FAQ	(revision 2476)
@@ -0,0 +1,133 @@
+              The Quantreg FAQ
+
+
+1.  [Non-uniqueness of Solutions] "The estimation of regression quantiles is 
+a linear programming problem.  And the optimal solution may not be unique. 
+However, rq() provides a single solution.
+My question is what are the additional constraints to get the single solution? 
+Because when we do the research, we can write our own routine in different 
+software like in SAS to estimate quantile regression, does that mean people 
+will get different solutions?"
+
+   From ?rq.fit.fn:
+
+   eps: tolerance parameter for convergence.  In cases of multiple
+          optimal solutions there may be some discrepancy between
+          solutions produced by method '"fn"' and method '"br"'.  This
+          is due to the fact that '"fn"' tends to converge to a point
+          near the centroid of the solution set, while '"br"' stops at
+          a vertex of the set. 
+
+
+   There is already facility for doing QR in SAS and it is based _very_closely_ 
+   on my R package and uses essentially the same algorithms.
+
+2.  [Non-uniqueness redux] "And all these solutions is [sic] correct?  
+Or do we need additional constraints to get the same solutions as derived in R?" 
+
+   Yes, they are all correct.  Just as any number between the two central order 
+   statistics is "a median" when the sample size is even and the order statistics 
+   are distinct.  The main point here is that the differences between solutions are 
+   of order 1/n and the inherent uncertainty about the estimates is of order 1/sqrt(n) so 
+   the former variability is essentially irrelevant.
+
+3.  [Basic Obervations]  "How can we identify the cases (data pairs) that belong to 
+different quantiles in a scatterplot?   It seems that they must be identified by 
+the code in the process of analyzing the quantile means, but I've been unable to 
+figure out how to find and extract them." 
+
+   For a given fit:
+
+	f <- rq(y ~ x +z, tau = .4)
+	h <- which(abs(f$resid) < tol)
+
+   will recover the indices of the observations that have
+   zero  residuals.  Of course you need to specify tol
+   which I would  recommend to be something like:
+   
+	   tol <- .Machine$double.eps^(2/3)
+   
+   If f has p fitted parameters then h should have p elements.
+   If this isn't  the case then you might need to experiment with tol a bit.
+
+4.  [R^2]  "I am currently trying to caculate the coefficient of determination for 
+different quantile regression models. For example, how do you calculate 
+the the sum of the weighted absolute deviations in the models ..."
+
+   R-squared is evil, that is why there isn't an automated way to compute
+   something similar for quantile regression  in the quantreg package.  
+   But if you insist use:
+
+	R1 <- 1 - f1$rho/f0$rho
+
+   Provided that f0 is nested within f1 and the taus are the same, 0 <= R1 <= 1.
+   If you want to test f1 vs f0 then use anova(f1,f0)
+
+   For further details see: Koenker R. and Jose A.F. Machado.  Goodness 
+   of Fit and Related Inference Processes for Quantile Regression 
+   J. of Am Stat. Assoc, (1999), 94, 1296-1310. 
+
+4a.  [R^2 redux]  "I am very interested in the coefficient of determination for   
+different quantile regression models.  And, I have f1, but don't know what is f0, 
+so that I failed to run R1  in your FAQ 4.  Could you please help me solve my question?"
+
+    f0 could be any nested fit, but usually it would be rq(y ~ 1, ...) a model
+    with only an intercept that returned unconditional quantile estimates.
+
+5.  [Singular Designs]  "R crashes in some cases when fitting models with rq()."
+
+   This happened in some earlier versions of the package when the design matrix
+   was singular.  This is now checked more carefully, and shouldn't happen in
+   versions 4.17 or later.  Eventually, I may try to treat singular designs in
+   a way that is more compatible with lm().
+
+6.  [Confidence Intervals]  "Why does summary(rq(...)) sometimes produce a
+table with upper and lower confidence limits, and sometimes a table with standard
+errors?"
+
+   There are several methods for computing standard errors and confidence limits.
+   By default on small problems (n < 1001)  summary uses the rank inversion method,
+   which produces (potentially asymmetric) confidence intervals,while for larger 
+   problems the default is to estimate the asymptotic covariance matrix and
+   report standard errors of the parameter estimates.
+
+7. [Non-positive fis]  "What does the message "Non-positive fis" mean?
+
+   When method ="nid" is used in summary local density estimates are made at
+   each x_i value, in some cases these estimates can be negative and if so
+   they are set to zero.  This is generally harmless, leading to a somewhat
+   conservative (larger) estimate of the standard errors, however if the 
+   reported number of non-positive fis is large relative to the sample size
+   then it is an indication of misspecification of the model.  
+
+8.  [rq vs lm fits]  In the Engel example in ?rq both rq fits and the least
+squares fit are plotted -- what should we expect to see in such a comparison?
+
+   In the classical linear regression model with iid error we could integrate
+   betahat(tau) over [0,1] and should get something quite similar to the
+   least squares estimate.  In the one-sample model this is exact:  averaging
+   the order statistics is equivalent to averaging the unordered original
+   observations.  In non-iid error situations this is more complicated but
+   generally one sees that least squares coefs look roughly like some sort
+   of average of their corresponding rq coefficients when averaged over tau.
+
+10.  [AIC and pseudo likelihoods]  In  quantreg of R package, rq.object  can compute 
+AIC (Akaile's An Information Criterion).but, AIC=-2L/n+2k/n ,where L is log-likelihood, 
+k represents the number of parameters in the model ,n is the number of observation.
+We know likelihood base on distribution,but quantile regression can not assume 
+specific distribution,this is AIC maybe not compute accurately, or AIC maybe 
+can not calculate.Why do rq.object can compute AIC? 
+
+   This is discussed many places in the literature.  Yes, it is not a "real"  
+   likelihood, only a pseudo likelihood, but then the Gaussian likelihood is 
+   usually not a real likelihood either most of the time....
+
+11.  I would like to know why the equivariance property is so important in the quantile 
+regression model. I have read a lot of article about it; but I don't really get the idea.
+
+    As a basic philosophical matter it really isn't that important,  the nearest star
+    is very far away and we will all die, but in math the idea that functions commute:
+    in the QR case that Q_h(Y) = h(Q_Y) is  interesting, and it doesn't hold if you 
+    replace Q by E.
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/INDEX	(revision 2476)
@@ -0,0 +1,81 @@
+Bosco                   Boscovich Data
+CobarOre                Cobar Ore data
+FAQ                     FAQ and ChangeLog of a package
+KhmaladzeTest           Tests of Location and Location Scale Shift
+                        Hypotheses for Linear Models
+Mammals                 Garland(1983) Data on Running Speed of Mammals
+Peirce                  C.S. Peirce's Auditory Response Data
+QTECox                  Function to obtain QTE from a Cox model
+akj                     Density Estimation using Adaptive Kernel method
+anova.rq                Anova function for quantile regression fits
+bandwidth.rq            bandwidth selection for rq functions
+barro                   Barro Data
+boot.crq                Bootstrapping Censored Quantile Regression
+boot.rq                 Bootstrapping Quantile Regression
+combos                  Ordered Combinations
+critval                 Hotelling Critical Values
+crq                     Functions to fit censored quantile regression
+                        models
+dither                  Function to randomly perturb a vector
+dynrq                   Dynamic Linear Quantile Regression
+engel                   Engel Data
+gasprice                Time Series of US Gasoline Prices
+kuantile                Quicker Sample Quantiles
+latex                   Make a latex version of an R object
+latex.summary.rqs       Make a latex table from a table of rq results
+latex.table             Writes a latex formatted table to a file
+lm.fit.recursive        Recursive Least Squares
+lprq                    locally polynomial quantile regression
+nlrq                    Function to compute nonlinear quantile
+                        regression estimates
+nlrq.control            Set control parameters for nlrq
+plot.rq.process         plot the coordinates of the quantile regression
+                        process
+plot.rqs                Visualizing sequences of quantile regressions
+plot.rqss               Plot Method for rqss Objects
+plot.summary.rqs        Visualizing sequences of quantile regression
+                        summaries
+predict.rq              Quantile Regression Prediction
+predict.rqss            Predict from fitted nonparametric quantile
+                        regression smoothing spline models
+print.rq                Print an rq object
+print.summary.rq        Print Quantile Regression Summary Object
+qrisk                   Function to compute Choquet portfolio weights
+qss                     Additive Nonparametric Terms for rqss Fitting
+ranks                   Quantile Regression Ranks
+rearrange               Rearrangement
+residuals.nlrq          Return residuals of an nlrq object
+rq                      Quantile Regression
+rq.fit                  Function to choose method for Quantile
+                        Regression
+rq.fit.br               Quantile Regression Fitting by Exterior Point
+                        Methods
+rq.fit.fnb              Quantile Regression Fitting via Interior Point
+                        Methods
+rq.fit.fnc              Quantile Regression Fitting via Interior Point
+                        Methods
+rq.fit.hogg             weighted quantile regression fitting
+rq.fit.lasso            Lasso Penalized Quantile Regression
+rq.fit.pfn              Preprocessing Algorithm for Quantile Regression
+rq.fit.scad             SCADPenalized Quantile Regression
+rq.fit.sfn              Sparse Regression Quantile Fitting
+rq.fit.sfnc             Sparse Constrained Regression Quantile Fitting
+rq.object               Linear Quantile Regression Object
+rq.process.object       Linear Quantile Regression Process Object
+rq.wfit                 Function to choose method for Weighted Quantile
+                        Regression
+rqProcess               Compute Standardized Quantile Regression
+                        Process
+rqs.fit                 Function to fit multiple response quantile
+                        regression models
+rqss                    Additive Quantile Regression Smoothing
+rqss.object             RQSS Objects and Summarization Thereof
+sfn.control             Set Control Parameters for Sparse Fitting
+srisk                   Markowitz (Mean-Variance) Portfolio
+                        Optimization
+summary.crq             Summary methods for Censored Quantile
+                        Regression
+summary.rq              Summary methods for Quantile Regression
+summary.rqss            Summary of rqss fit
+table.rq                Table of Quantile Regression Results
+uis                     UIS Drug Treatment study data
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/help/quantreg.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/help/quantreg.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/help/quantreg.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/help/quantreg.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/help/AnIndex	(revision 2476)
@@ -0,0 +1,150 @@
+AIC.nlrq	nlrq
+AIC.rq	rq.object
+AIC.rqs	rq.object
+AIC.rqss	rqss.object
+akj	akj
+anova.rq	anova.rq
+anova.rqlist	anova.rq
+anova.rqs	anova.rq
+bandwidth.rq	bandwidth.rq
+barro	barro
+boot.crq	boot.crq
+boot.rq	boot.rq
+boot.rq.mcmb	boot.rq
+boot.rq.pwy	boot.rq
+boot.rq.spwy	boot.rq
+boot.rq.wxy	boot.rq
+boot.rq.xy	boot.rq
+Bosco	Bosco
+ChangeLog	FAQ
+CobarOre	CobarOre
+coef.crq	crq
+coef.nlrq	nlrq
+combos	combos
+critval	critval
+crq	crq
+crq.fit.pen	crq
+crq.fit.por	crq
+crq.fit.por2	crq
+crq.fit.pow	crq
+Curv	crq
+deviance.nlrq	nlrq
+dither	dither
+dynrq	dynrq
+end.dynrq	dynrq
+engel	engel
+extractAIC.nlrq	nlrq
+extractAIC.rq	rq.object
+FAQ	FAQ
+fitted.nlrq	nlrq
+fitted.rqss	rqss.object
+formula.nlrq	nlrq
+formula.rq	rq.object
+gasprice	gasprice
+index.dynrq	dynrq
+KhmaladzeTest	khmaladzeTest
+khmaladzize	khmaladzeTest
+kselect	kuantile
+kuantile	kuantile
+kunique	kuantile
+latex	latex
+latex.summary.rqs	latex.summary.rqs
+latex.table	latex.table
+latex.table.rq	table.rq
+lm.fit.recursive	lm.fit.recursive
+logLik.nlrq	nlrq
+logLik.rq	rq.object
+logLik.rqs	rq.object
+logLik.rqss	rqss.object
+lprq	lprq
+Mammals	Mammals
+nlrq	nlrq
+nlrq.control	nlrq.control
+nlrqModel	nlrq
+Peirce	Peirce
+plot.qss1	plot.rqss
+plot.qss2	plot.rqss
+plot.rq.process	plot.rq.process
+plot.rqs	plot.rqs
+plot.rqss	plot.rqss
+plot.summary.crqs	summary.crq
+plot.summary.rqs	plot.summary.rqs
+plot.summary.rqss	plot.rqss
+plot.table.rq	table.rq
+predict.crq	crq
+predict.crqs	crq
+predict.nlrq	nlrq
+predict.qss1	predict.rqss
+predict.qss2	predict.rqss
+predict.rq	predict.rq
+predict.rq.process	predict.rq
+predict.rqs	predict.rq
+predict.rqss	predict.rqss
+print.anova.rq	anova.rq
+print.crq	crq
+print.dynrq	dynrq
+print.dynrqs	dynrq
+print.nlrq	nlrq
+print.rq	print.rq
+print.rqs	print.rq
+print.rqss	rqss.object
+print.summary.crq	summary.crq
+print.summary.crqs	summary.crq
+print.summary.dynrq	dynrq
+print.summary.dynrqs	dynrq
+print.summary.nlrq	nlrq
+print.summary.rq	print.summary.rq
+print.summary.rqs	print.summary.rq
+print.summary.rqss	summary.rqss
+qdensity	khmaladzeTest
+qrisk	qrisk
+qss	qss
+qss1	qss
+qss2	qss
+QTECox	QTECox
+ranks	ranks
+rearrange	rearrange
+resid.rqss	rqss.object
+residuals.nlrq	residuals.nlrq
+rq	rq
+rq.fit	rq.fit
+rq.fit.br	rq.fit.br
+rq.fit.fnb	rq.fit.fnb
+rq.fit.fnc	rq.fit.fnc
+rq.fit.hogg	rq.fit.hogg
+rq.fit.lasso	rq.fit.lasso
+rq.fit.pfn	rq.fit.pfn
+rq.fit.scad	rq.fit.scad
+rq.fit.sfn	rq.fit.sfn
+rq.fit.sfnc	rq.fit.sfnc
+rq.object	rq.object
+rq.process.object	rq.process.object
+rq.test.anowar	anova.rq
+rq.test.rank	anova.rq
+rq.wfit	rq.wfit
+rqProcess	rqProcess
+rqs.fit	rqs.fit
+rqss	rqss
+rqss.fit	rqss
+rqss.object	rqss.object
+sfn.control	sfn.control
+sfnMessage	rq.fit.sfn
+srisk	srisk
+start.dynrq	dynrq
+summary.crq	summary.crq
+summary.crqs	summary.crq
+summary.dynrq	dynrq
+summary.dynrqs	dynrq
+summary.nlrq	nlrq
+summary.rcrqs	summary.rq
+summary.rq	summary.rq
+summary.rqs	summary.rq
+summary.rqss	summary.rqss
+table.rq	table.rq
+tau.nlrq	nlrq
+time.dynrq	dynrq
+triogram.fidelity	qss
+triogram.penalty	qss
+uis	uis
+untangle.specials	rqss
+[.terms	rqss
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/Bosco.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/Bosco.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/barro.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/barro.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/Mammals.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/Mammals.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/Peirce.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/Peirce.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/engel.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/engel.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/CobarOre.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/CobarOre.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/gasprice.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/gasprice.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/uis.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/data/uis.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/libs/quantreg.so.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/libs/quantreg.so.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/libs/quantreg.so.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.quantreg.so</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/libs/quantreg.so.dSYM/Contents/Resources/DWARF/quantreg.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/libs/quantreg.so.dSYM/Contents/Resources/DWARF/quantreg.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/libs/quantreg.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/libs/quantreg.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/NAMESPACE	(revision 2476)
@@ -0,0 +1,96 @@
+useDynLib("quantreg")
+import(Matrix)
+importFrom('SparseM', t, chol, backsolve, as.matrix.csr)
+importFrom('MatrixModels', model.Matrix)
+importClassesFrom('MatrixModels', dsparseModelMatrix)
+importClassesFrom('SparseM', matrix.csr)
+
+# Export all names
+exportPattern(".")
+
+importFrom("grDevices", "dev.interactive", "devAskNewPage", "gray",
+     "n2mfrow", "terrain.colors")
+importFrom("graphics", "abline", "contour", "lines", "matlines",
+     "matplot", "par", "persp", "plot", "points", "polygon", "title")
+importFrom("methods", "as", "hasArg", "new")
+importFrom("utils", "flush.console", "modifyList")
+importFrom("stats", ".checkMFClasses", ".getXlevels", "AIC", "approx",
+     "as.formula", "as.ts", "coef", "coefficients", "cycle",
+     "model.matrix", "model.response",
+     "delete.response", "dnorm", "end", "fitted", "formula",
+     "frequency", "getInitial", "hat", "is.empty.model",
+     "is.stepfun", "knots", "lag", "lm", "lm.fit", "lm.wfit",
+     "logLik", "lsfit", "median", "model.extract", "model.frame",
+     "model.weights", "na.omit", "na.pass", "numericDeriv",
+     "optim", "pchisq", "pf", "pnorm", "predict", "printCoefmat",
+     "pt", "qnorm", "qt", "quantile", "reformulate", "relevel",
+     "resid", "residuals", "rexp", "runif", "setNames", "start",
+     "stepfun", "supsmu", "terms", "uniroot", "var")
+
+S3method(AIC, nlrq)
+S3method(AIC, rq)
+S3method(AIC, rqs)
+S3method(AIC, rqss)
+S3method(anova, rq)
+S3method(anova, rqlist)
+S3method(anova, rqs)
+S3method(coef, crq)
+S3method(coef, nlrq)
+S3method(deviance, nlrq)
+S3method(extractAIC, nlrq)
+S3method(extractAIC, rq)
+S3method(fitted, nlrq)
+S3method(fitted, rqss)
+S3method(formula, nlrq)
+S3method(formula, rq)
+S3method(latex, summary.rqs)
+S3method(latex, table)
+S3method(latex, table.rq)
+S3method(logLik, nlrq)
+S3method(logLik, rq)
+S3method(logLik, rqs)
+S3method(logLik, rqss)
+S3method(plot, qss1)
+S3method(plot, qss2)
+S3method(plot, rq.process)
+S3method(plot, rqs)
+S3method(plot, rqss)
+S3method(plot, summary.crqs)
+S3method(plot, summary.rqs)
+S3method(plot, summary.rqss)
+S3method(plot, table.rq)
+S3method(predict, crq)
+S3method(predict, crqs)
+S3method(predict, nlrq)
+S3method(predict, qss1)
+S3method(predict, qss2)
+S3method(predict, rq)
+S3method(predict, rq.process)
+S3method(predict, rqs)
+S3method(predict, rqss)
+S3method(print, anova.rq)
+S3method(print, crq)
+S3method(print, dynrq)
+S3method(print, dynrqs)
+S3method(print, nlrq)
+S3method(print, rq)
+S3method(print, rqs)
+S3method(print, rqss)
+S3method(print, summary.crq)
+S3method(print, summary.crqs)
+S3method(print, summary.dynrq)
+S3method(print, summary.dynrqs)
+S3method(print, summary.nlrq)
+S3method(print, summary.rq)
+S3method(print, summary.rqs)
+S3method(print, summary.rqss)
+S3method(residuals, nlrq)
+S3method(end, dynrq)
+S3method(start, dynrq)
+S3method(summary, crq)
+S3method(summary, crqs)
+S3method(summary, dynrqs)
+S3method(summary, nlrq)
+S3method(summary, rq)
+S3method(summary, rqs)
+S3method(summary, rqss)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/R/quantreg.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/R/quantreg.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/R/quantreg
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/R/quantreg	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/R/quantreg	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/R/quantreg.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/quantreg/R/quantreg.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/DESCRIPTION	(revision 2476)
@@ -0,0 +1,181 @@
+Package: knitr
+Type: Package
+Title: A General-Purpose Package for Dynamic Report Generation in R
+Version: 1.15.1
+Date: 2016-11-22
+Authors@R: c(
+    person("Yihui", "Xie", email = "xie@yihui.name", role = c("aut", "cre")),
+    person("Adam", "Vogt", role = "ctb"),
+    person("Alastair", "Andrew", role = "ctb"),
+    person("Alex", "Zvoleff", role = "ctb"),
+    person("Andre", "Simon", role = "ctb", comment = "the CSS files under inst/themes/ were derived from the Highlight package http://www.andre-simon.de"),
+    person("Aron", "Atkins", role = "ctb"),
+    person("Aaron", "Wolen", role = "ctb"),
+    person("Ashley", "Manton", role = "ctb"),
+    person("Ben", "Baumer", role = "ctb"),
+    person("Brian", "Diggs", role = "ctb"),
+    person("Cassio", "Pereira", role = "ctb"),
+    person("David", "Robinson", role = "ctb"),
+    person("Donald", "Arseneau", role = c("ctb", "cph"), comment = "the framed package at inst/misc/framed.sty"),
+    person("Doug", "Hemken", role = "ctb"),
+    person("Duncan", "Murdoch", role = "ctb"),
+    person("Fabian", "Hirschmann", role = "ctb"),
+    person("Fitch", "Simeon", role = "ctb"),
+    person(c("Frank", "E", "Harrell", "Jr"), role = "ctb", comment = "the Sweavel package at inst/misc/Sweavel.sty"),
+    person("Gregoire", "Detrez", role = "ctb"),
+    person("Hadley", "Wickham", role = "ctb"),
+    person("Heewon", "Jeon", role = "ctb"),
+    person("Henrik", "Bengtsson", role = "ctb"),
+    person("Hiroaki", "Yutani", role = "ctb"),
+    person("Jake", "Burkhead", role = "ctb"),
+    person("James", "Manton", role = "ctb"),
+    person("Jared", "Lander", role = "ctb"),
+    person("Jason", "Punyon", role = "ctb"),
+    person("Jeff", "Arnold", role = "ctb"),
+    person("Jeremy", "Ashkenas", role = c("ctb", "cph"), comment = "the CSS file at inst/misc/docco-classic.css"),
+    person("Jeremy", "Stephens", role = "ctb"),
+    person("Jim", "Hester", role = "ctb"),
+    person("Joe", "Cheng", role = "ctb"),
+    person("Johannes", "Ranke", role = "ctb"),
+    person("John", "Honaker", role = "ctb"),
+    person("John", "Muschelli", role = "ctb"),
+    person("Jonathan", "Keane", role = "ctb"),
+    person("JJ", "Allaire", role = "ctb"),
+    person("Johan", "Toloe", role = "ctb"),
+    person("Joseph", "Larmarange", role = "ctb"),
+    person("Julien", "Barnier", role = "ctb"),
+    person("Kaiyin", "Zhong", role = "ctb"),
+    person("Kamil", "Slowikowski", role = "ctb"),
+    person(c("Kevin", "K."), "Smith", role = "ctb"),
+    person("Kirill", "Mueller", role = "ctb"),
+    person("Kohske", "Takahashi", role = "ctb"),
+    person("Michael", "Friendly", role = "ctb"),
+    person("Michal", "Bojanowski", role = "ctb"),
+    person("Michel", "Kuhlmann", role = "ctb"),
+    person("Nacho", "Caballero", role = "ctb"),
+    person("Nick", "Salkowski", role = "ctb"),
+    person("Noam", "Ross", role = "ctb"),
+    person("Qiang", "Li", role = "ctb"),
+    person("Ramnath", "Vaidyanathan", role = "ctb"),
+    person("Richard", "Cotton", role = "ctb"),
+    person("Robert", "Krzyzanowski", role = "ctb"),
+    person("Romain", "Francois", role = "ctb"),
+    person("Scott", "Kostyshak", role = "ctb"),
+    person("Sebastian", "Meyer", role = "ctb"),
+    person("Sietse", "Brouwer", role = "ctb"),
+    person(c("Simon", "de"), "Bernard", role = "ctb"),
+    person("Taiyun", "Wei", role = "ctb"),
+    person("Thibaut", "Assus", role = "ctb"),
+    person("Thibaut", "Lamadon", role = "ctb"),
+    person("Thomas", "Leeper", role = "ctb"),
+    person("Tom", "Torsney-Weir", role = "ctb"),
+    person("Trevor", "Davis", role = "ctb"),
+    person("Viktoras", "Veitas", role = "ctb"),
+    person("Weicheng", "Zhu", role = "ctb"),
+    person("Wush", "Wu", role = "ctb"),
+    person("Zachary", "Foster", role = "ctb")
+    )
+Maintainer: Yihui Xie <xie@yihui.name>
+Description: Provides a general-purpose tool for dynamic report generation in R
+    using Literate Programming techniques.
+Depends: R (>= 3.1.0)
+Imports: evaluate (>= 0.10), digest, highr, markdown, stringr (>= 0.6),
+        yaml, methods, tools
+Suggests: formatR, testit, rgl (>= 0.95.1201), codetools, rmarkdown,
+        htmlwidgets (>= 0.7), webshot, tikzDevice (>= 0.10), png, jpeg,
+        XML, RCurl, DBI (>= 0.4-1), tibble
+License: GPL
+URL: http://yihui.name/knitr/
+BugReports: https://github.com/yihui/knitr/issues
+VignetteBuilder: knitr
+SystemRequirements: Package vignettes based on R Markdown v2 require
+        Pandoc (http://pandoc.org). The function rst2pdf() and
+        vignettes based on reStructuredText require rst2pdf
+        (https://github.com/rst2pdf/rst2pdf).
+Collate: 'block.R' 'cache.R' 'utils.R' 'citation.R' 'hooks-html.R'
+        'plot.R' 'defaults.R' 'concordance.R' 'engine.R' 'highlight.R'
+        'themes.R' 'header.R' 'hooks-asciidoc.R' 'hooks-chunk.R'
+        'hooks-extra.R' 'hooks-latex.R' 'hooks-md.R' 'hooks-rst.R'
+        'hooks-textile.R' 'hooks.R' 'output.R' 'package.R' 'pandoc.R'
+        'params.R' 'parser.R' 'pattern.R' 'rocco.R' 'spin.R' 'table.R'
+        'template.R' 'utils-base64.R' 'utils-conversion.R'
+        'utils-rd2html.R' 'utils-sweave.R' 'utils-upload.R'
+        'utils-vignettes.R' 'zzz.R'
+RoxygenNote: 5.0.1
+NeedsCompilation: no
+Packaged: 2016-11-22 05:33:02 UTC; yihui
+Author: Yihui Xie [aut, cre],
+  Adam Vogt [ctb],
+  Alastair Andrew [ctb],
+  Alex Zvoleff [ctb],
+  Andre Simon [ctb] (the CSS files under inst/themes/ were derived from
+    the Highlight package http://www.andre-simon.de),
+  Aron Atkins [ctb],
+  Aaron Wolen [ctb],
+  Ashley Manton [ctb],
+  Ben Baumer [ctb],
+  Brian Diggs [ctb],
+  Cassio Pereira [ctb],
+  David Robinson [ctb],
+  Donald Arseneau [ctb, cph] (the framed package at inst/misc/framed.sty),
+  Doug Hemken [ctb],
+  Duncan Murdoch [ctb],
+  Fabian Hirschmann [ctb],
+  Fitch Simeon [ctb],
+  Frank E Harrell Jr [ctb] (the Sweavel package at inst/misc/Sweavel.sty),
+  Gregoire Detrez [ctb],
+  Hadley Wickham [ctb],
+  Heewon Jeon [ctb],
+  Henrik Bengtsson [ctb],
+  Hiroaki Yutani [ctb],
+  Jake Burkhead [ctb],
+  James Manton [ctb],
+  Jared Lander [ctb],
+  Jason Punyon [ctb],
+  Jeff Arnold [ctb],
+  Jeremy Ashkenas [ctb, cph] (the CSS file at
+    inst/misc/docco-classic.css),
+  Jeremy Stephens [ctb],
+  Jim Hester [ctb],
+  Joe Cheng [ctb],
+  Johannes Ranke [ctb],
+  John Honaker [ctb],
+  John Muschelli [ctb],
+  Jonathan Keane [ctb],
+  JJ Allaire [ctb],
+  Johan Toloe [ctb],
+  Joseph Larmarange [ctb],
+  Julien Barnier [ctb],
+  Kaiyin Zhong [ctb],
+  Kamil Slowikowski [ctb],
+  Kevin K. Smith [ctb],
+  Kirill Mueller [ctb],
+  Kohske Takahashi [ctb],
+  Michael Friendly [ctb],
+  Michal Bojanowski [ctb],
+  Michel Kuhlmann [ctb],
+  Nacho Caballero [ctb],
+  Nick Salkowski [ctb],
+  Noam Ross [ctb],
+  Qiang Li [ctb],
+  Ramnath Vaidyanathan [ctb],
+  Richard Cotton [ctb],
+  Robert Krzyzanowski [ctb],
+  Romain Francois [ctb],
+  Scott Kostyshak [ctb],
+  Sebastian Meyer [ctb],
+  Sietse Brouwer [ctb],
+  Simon de Bernard [ctb],
+  Taiyun Wei [ctb],
+  Thibaut Assus [ctb],
+  Thibaut Lamadon [ctb],
+  Thomas Leeper [ctb],
+  Tom Torsney-Weir [ctb],
+  Trevor Davis [ctb],
+  Viktoras Veitas [ctb],
+  Weicheng Zhu [ctb],
+  Wush Wu [ctb],
+  Zachary Foster [ctb]
+Repository: CRAN
+Date/Publication: 2016-11-22 09:36:46
+Built: R 3.3.2; ; 2016-11-23 12:29:51 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/demo/gwidgets.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/demo/gwidgets.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/demo/gwidgets.R	(revision 2476)
@@ -0,0 +1,4 @@
+# for installation, see https://github.com/jverzani/gWidgetsWWW2
+library(gWidgetsWWW2)
+options(device.ask.default = FALSE)
+load_app(system.file('misc', 'gWidgetsWWW2-knitr.R', package = 'knitr'))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/demo/notebook.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/demo/notebook.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/demo/notebook.R	(revision 2476)
@@ -0,0 +1,3 @@
+# for installation, see https://github.com/rstudio/shiny
+library(shiny)
+runApp(system.file('shiny', package = 'knitr'))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/molokai.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/molokai.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/molokai.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #272822;
+}
+.num {
+  color: #AE81FF;
+}
+.str {
+  color: #E6DB74;
+}
+.com {
+  color: #75715E;
+}
+.opt {
+  color: #F8F8F2;
+}
+.std {
+  color: #F8F8F2;
+}
+.kwa {
+  color: #F92672;
+  font-weight: bold;
+}
+.kwb {
+  color: #66D9EF;
+}
+.kwc {
+  color: #95f067;
+}
+.kwd {
+  color: #25faac;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/molokai.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/denim.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/denim.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/denim.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #000038;
+}
+.num {
+  color: #33FF33;
+}
+.str {
+  color: #CCCC99;
+}
+.com {
+  color: #999999;
+}
+.opt {
+  color: #FFFFFF;
+}
+.std {
+  color: #FFFFFF;
+}
+.kwa {
+  color: #FFFFCC;
+}
+.kwb {
+  color: #33FF99;
+}
+.kwc {
+  color: #33FF99;
+}
+.kwd {
+  color: #9966cc;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/denim.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greyscale0.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greyscale0.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greyscale0.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #333333;
+}
+.str {
+  color: #333333;
+}
+.com {
+  font-style: italic;
+  color: #4D4D4D;
+}
+.opt {
+  color: #1A1A1A;
+}
+.std {
+  color: #1A1A1A;
+}
+.kwa {
+  color: #1A1A1A;
+}
+.kwb {
+  color: #1A1A1A;
+}
+.kwc {
+  color: #333333;
+}
+.kwd {
+  font-weight: bold;
+  color: #1A1A1A;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greyscale0.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greyscale1.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greyscale1.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greyscale1.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #4D4D4D;
+}
+.str {
+  color: #4D4D4D;
+}
+.com {
+  font-style: italic;
+  color: #808080;
+}
+.opt {
+  color: #1A1A1A;
+}
+.std {
+  color: #1A1A1A;
+}
+.kwa {
+  color: #1A1A1A;
+}
+.kwb {
+  color: #1A1A1A;
+}
+.kwc {
+  color: #4D4D4D;
+}
+.kwd {
+  font-weight: bold;
+  color: #1A1A1A;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greyscale1.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greyscale2.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greyscale2.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greyscale2.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #666666;
+}
+.str {
+  color: #666666;
+}
+.com {
+  font-style: italic;
+  color: #B3B3B3;
+}
+.opt {
+  color: #1A1A1A;
+}
+.std {
+  color: #1A1A1A;
+}
+.kwa {
+  color: #1A1A1A;
+}
+.kwb {
+  color: #1A1A1A;
+}
+.kwc {
+  color: #666666;
+}
+.kwd {
+  font-weight: bold;
+  color: #1A1A1A;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greyscale2.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/acid.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/acid.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/acid.css	(revision 2476)
@@ -0,0 +1,34 @@
+.background {
+  color: #eeeeee;
+}
+.num {
+  color: #800080;
+  font-weight: bold;
+}
+.str {
+  color: #a68500;
+}
+.com {
+  color: #ff8000;
+}
+.opt {
+  color: #ff0080;
+  font-weight: bold;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #bb7977;
+  font-weight: bold;
+}
+.kwb {
+  color: #8080c0;
+  font-weight: bold;
+}
+.kwc {
+  color: #0080c0;
+}
+.kwd {
+  color: #004466;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/acid.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/vampire.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/vampire.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/vampire.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #000000;
+}
+.num {
+  color: #aaff00;
+}
+.str {
+  color: #bb00ff;
+}
+.com {
+  color: #ababab;
+  font-style: italic;
+}
+.opt {
+  color: #F3E651;
+}
+.std {
+  color: #ff0000;
+}
+.kwa {
+  color: #ffffff;
+  font-weight: bold;
+}
+.kwb {
+  color: #F35E1E;
+  font-weight: bold;
+}
+.kwc {
+  color: #ffffff;
+}
+.kwd {
+  color: #ffcc33;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/vampire.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/rdark.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/rdark.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/rdark.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #1e2426;
+}
+.num {
+  color: #8ae234;
+}
+.str {
+  color: #8ae234;
+}
+.com {
+  color: #656763;
+}
+.opt {
+  color: #babdb6;
+}
+.std {
+  color: #babdb6;
+}
+.kwa {
+  color: #729fcf;
+}
+.kwb {
+  color: #e3e7df;
+}
+.kwc {
+  color: #cfa272;
+}
+.kwd {
+  color: #9ebd77;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/rdark.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/matrix.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/matrix.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/matrix.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #000000;
+}
+.num {
+  color: #55ff55;
+}
+.str {
+  color: #ccff33;
+}
+.com {
+  color: #226622;
+}
+.opt {
+  color: #44cc44;
+}
+.std {
+  color: #44cc44;
+}
+.kwa {
+  color: #55ff55;
+  font-weight: bold;
+}
+.kwb {
+  color: #aaff54;
+  font-weight: bold;
+}
+.kwc {
+  color: #48d990;
+}
+.kwd {
+  color: #54ffaa;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/matrix.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/nuvola.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/nuvola.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/nuvola.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #F9F5F9;
+}
+.num {
+  color: #00C226;
+}
+.str {
+  color: #B91F49;
+}
+.com {
+  color: #3F6B5B;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #F06F00;
+}
+.kwb {
+  color: #0000ff;
+}
+.kwc {
+  color: #08f000;
+  font-weight: bold;
+}
+.kwd {
+  color: #e800f0;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/nuvola.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/relaxedgreen.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/relaxedgreen.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/relaxedgreen.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #000000;
+}
+.num {
+  color: #0099dd;
+}
+.str {
+  color: #0099dd;
+}
+.com {
+  color: #00a594;
+}
+.opt {
+  color: #aaaaaa;
+}
+.std {
+  color: #aaaaaa;
+}
+.kwa {
+  color: #ac0000;
+}
+.kwb {
+  color: #559955;
+}
+.kwc {
+  color: #00abab;
+}
+.kwd {
+  color: #ededed;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/relaxedgreen.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/dusk.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/dusk.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/dusk.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #1f3048;
+}
+.num {
+  color: #cdb7b5;
+}
+.str {
+  color: #9ac0cd;
+}
+.com {
+  color: #708090;
+}
+.opt {
+  color: #fffff0;
+}
+.std {
+  color: #fffff0;
+}
+.kwa {
+  color: #f0e68c;
+}
+.kwb {
+  color: #ffdead;
+}
+.kwc {
+  color: #8bf0b3;
+}
+.kwd {
+  color: #8bf0e6;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/dusk.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/oxygenated.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/oxygenated.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/oxygenated.css	(revision 2476)
@@ -0,0 +1,34 @@
+.background {
+  color: #0f0f0f;
+}
+.num {
+  color: #0099CC;
+}
+.str {
+  color: #FFCC00;
+  font-weight: bold;
+}
+.com {
+  color: #00CC33;
+}
+.opt {
+  color: #ff0099;
+  font-weight: bold;
+}
+.std {
+  color: #FFFF66;
+  font-weight: bold;
+}
+.kwa {
+  color: #99aaff;
+  font-weight: bold;
+}
+.kwb {
+  color: #66ff99;
+}
+.kwc {
+  color: #ff99ff;
+}
+.kwd {
+  color: #33ddee;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/oxygenated.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/olive.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/olive.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/olive.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #333300;
+}
+.num {
+  color: #ffddad;
+}
+.str {
+  color: #afff2f;
+}
+.com {
+  color: #bdb66b;
+}
+.opt {
+  color: #D9D9C3;
+}
+.std {
+  color: #D9D9C3;
+}
+.kwa {
+  color: #8fbc8f;
+  font-weight: bold;
+}
+.kwb {
+  color: #daa520;
+}
+.kwc {
+  color: #21d948;
+}
+.kwd {
+  color: #D9D9C3;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/olive.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bright.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bright.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bright.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #32ba06;
+}
+.str {
+  color: #1861a7;
+}
+.com {
+  color: #006633;
+}
+.opt {
+  color: #555555;
+}
+.std {
+  color: #330066;
+}
+.kwa {
+  color: #ff3030;
+}
+.kwb {
+  color: #F48C23;
+}
+.kwc {
+  color: #0000ff;
+}
+.kwd {
+  color: #d11ced;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bright.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/easter.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/easter.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/easter.css	(revision 2476)
@@ -0,0 +1,34 @@
+.background {
+  color: #fff9b9;
+}
+.num {
+  color: #e11a70;
+}
+.str {
+  color: #ca4be3;
+}
+.com {
+  color: #1ea411;
+  font-style: italic;
+}
+.opt {
+  color: #fa4700;
+}
+.std {
+  color: #2C7B34;
+}
+.kwa {
+  color: #1d45d6;
+  font-weight: bold;
+}
+.kwb {
+  color: #ed0f55;
+  font-weight: bold;
+}
+.kwc {
+  color: #26aae7;
+  font-weight: bold;
+}
+.kwd {
+  color: #1d45d6;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/easter.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/default.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/default.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/default.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #F5F5F5;
+}
+.num {
+  color: #AF0F91;
+}
+.str {
+  color: #317ECC;
+}
+.com {
+  color: #AD95AF;
+  font-style: italic;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #585858;
+}
+.kwa {
+  color: #295F94;
+  font-weight: bold;
+}
+.kwb {
+  color: #B05A65;
+}
+.kwc {
+  color: #55aa55;
+}
+.kwd {
+  color: #BC5A65;
+  font-weight: bold;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/default.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/whitengrey.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/whitengrey.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/whitengrey.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #bb00ff;
+}
+.str {
+  color: #008800;
+}
+.com {
+  color: #1326a2;
+  font-style: italic;
+}
+.opt {
+  color: #696969;
+}
+.std {
+  color: #696969;
+}
+.kwa {
+  color: #696969;
+  font-weight: bold;
+}
+.kwb {
+  color: #696969;
+}
+.kwc {
+  color: #696969;
+  font-weight: bold;
+}
+.kwd {
+  color: #000000;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/whitengrey.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-xcode.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-xcode.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-xcode.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #2300ff;
+}
+.str {
+  color: #c00000;
+}
+.com {
+  color: #007f1c;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #8f0055;
+}
+.kwb {
+  color: #8f0055;
+}
+.kwc {
+  color: #8f0055;
+}
+.kwd {
+  color: #000000;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-xcode.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkslategray.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkslategray.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkslategray.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #2f4f4f;
+}
+.num {
+  color: #ff6347;
+}
+.str {
+  color: #7fffd4;
+}
+.com {
+  color: #da70d6;
+}
+.opt {
+  color: #f5deb3;
+}
+.std {
+  color: #f5deb3;
+}
+.kwa {
+  color: #4682b4;
+  font-weight: bold;
+}
+.kwb {
+  color: #98fb98;
+  font-weight: bold;
+}
+.kwc {
+  color: #b57847;
+}
+.kwd {
+  color: #b3caf5;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkslategray.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/nightshimmer.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/nightshimmer.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/nightshimmer.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #103040;
+}
+.num {
+  color: #00ffff;
+}
+.str {
+  color: #00ffff;
+}
+.com {
+  color: #507080;
+}
+.opt {
+  color: #e0eee0;
+}
+.std {
+  color: #e0eee0;
+}
+.kwa {
+  color: #90ee90;
+}
+.kwb {
+  color: #add8e6;
+}
+.kwc {
+  color: #cc99ff;
+}
+.kwd {
+  color: #ff9999;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/nightshimmer.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/anotherdark.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/anotherdark.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/anotherdark.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #323232;
+}
+.num {
+  color: #ffa0a0;
+}
+.str {
+  color: #ffa0a0;
+}
+.com {
+  color: #ffa500;
+}
+.opt {
+  color: #dedede;
+}
+.std {
+  color: #dedede;
+}
+.kwa {
+  color: #f0e68c;
+}
+.kwb {
+  color: #bdb66b;
+}
+.kwc {
+  color: #8b95f0;
+}
+.kwd {
+  color: #f25252;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/anotherdark.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/manxome.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/manxome.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/manxome.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #000000;
+}
+.num {
+  color: #00ffff;
+}
+.str {
+  color: #00ffff;
+}
+.com {
+  color: #00ff00;
+}
+.opt {
+  color: #ffff00;
+}
+.std {
+  color: #cccccc;
+}
+.kwa {
+  color: #00aaaa;
+}
+.kwb {
+  color: #f70000;
+}
+.kwc {
+  color: #5500ab;
+}
+.kwd {
+  color: #00aaaa;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/manxome.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkspectrum.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkspectrum.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkspectrum.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #2A2A2A;
+}
+.num {
+  color: #fce94f;
+}
+.str {
+  color: #fce94f;
+}
+.com {
+  color: #8a8a8a;
+}
+.opt {
+  color: #efefef;
+}
+.std {
+  color: #efefef;
+}
+.kwa {
+  color: #ffffff;
+  font-weight: bold;
+}
+.kwb {
+  color: #8ae234;
+  font-weight: bold;
+}
+.kwc {
+  color: #34e3e3;
+}
+.kwd {
+  color: #efefef;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkspectrum.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/freya.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/freya.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/freya.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #2a2a2a;
+}
+.num {
+  color: #afe091;
+}
+.str {
+  color: #afe091;
+}
+.com {
+  color: #c2b680;
+}
+.opt {
+  color: #dcdccc;
+}
+.std {
+  color: #dcdccc;
+}
+.kwa {
+  color: #e0af91;
+  font-weight: bold;
+}
+.kwb {
+  color: #dabfa5;
+  font-weight: bold;
+}
+.kwc {
+  color: #d792e0;
+}
+.kwd {
+  color: #a6e1ff;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/freya.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/clarity.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/clarity.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/clarity.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #1F3055;
+}
+.num {
+  color: #b3ee3a;
+}
+.str {
+  color: #cccccc;
+}
+.com {
+  color: #9e9e9e;
+}
+.opt {
+  color: #b2dfee;
+}
+.std {
+  color: #b2dfee;
+}
+.kwa {
+  color: #cd919e;
+}
+.kwb {
+  color: #ff4400;
+}
+.kwc {
+  color: #9ecc91;
+}
+.kwd {
+  color: #edc1b2;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/clarity.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-eclipse.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-eclipse.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-eclipse.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #000000;
+}
+.str {
+  color: #0000ff;
+}
+.com {
+  color: #717ab3;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #7f0055;
+  font-weight: bold;
+}
+.kwb {
+  color: #7f0055;
+  font-weight: bold;
+}
+.kwc {
+  color: #7f0055;
+  font-weight: bold;
+}
+.kwd {
+  color: #000000;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-eclipse.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bluegreen.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bluegreen.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bluegreen.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #061A3E;
+}
+.num {
+  color: #72A5E4;
+  font-weight: bold;
+}
+.str {
+  color: #72A5E4;
+  font-weight: bold;
+}
+.com {
+  color: #DABEA2;
+  font-style: italic;
+}
+.opt {
+  color: #ffffff;
+}
+.std {
+  color: #ffffff;
+}
+.kwa {
+  color: #7E75B5;
+}
+.kwb {
+  color: #A9EE8A;
+}
+.kwc {
+  color: #b5768d;
+}
+.kwd {
+  color: #76b57e;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bluegreen.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/lucretia.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/lucretia.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/lucretia.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #001C42;
+}
+.num {
+  color: #63759C;
+}
+.str {
+  color: #E7F3B5;
+}
+.com {
+  color: #944D39;
+}
+.opt {
+  color: #6A7969;
+}
+.std {
+  color: #de9d7c;
+}
+.kwa {
+  color: #907fd4;
+}
+.kwb {
+  color: #29a655;
+}
+.kwc {
+  color: #427142;
+}
+.kwd {
+  color: #A59A39;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/lucretia.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/golden.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/golden.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/golden.css	(revision 2476)
@@ -0,0 +1,34 @@
+.background {
+  color: #000000;
+}
+.num {
+  color: #ffffff;
+}
+.str {
+  color: #ff0000;
+}
+.com {
+  color: #978345;
+  font-style: italic;
+}
+.opt {
+  color: #ababab;
+}
+.std {
+  color: #ddbb00;
+}
+.kwa {
+  color: #ffed8a;
+  font-weight: bold;
+}
+.kwb {
+  color: #ffed8a;
+}
+.kwc {
+  color: #dedede;
+  font-weight: bold;
+}
+.kwd {
+  color: #ddbb00;
+  font-weight: bold;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/golden.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/tabula.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/tabula.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/tabula.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #004A41;
+}
+.num {
+  color: #00A7F7;
+}
+.str {
+  color: #00DF00;
+}
+.com {
+  color: #00C5E7;
+}
+.opt {
+  color: #71D289;
+}
+.std {
+  color: #71D289;
+}
+.kwa {
+  color: #DEDE00;
+  font-weight: bold;
+}
+.kwb {
+  color: #F269E4;
+}
+.kwc {
+  color: #ffffff;
+}
+.kwd {
+  color: #ff7f00;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/tabula.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/night.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/night.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/night.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #303040;
+}
+.num {
+  color: #b8b8c8;
+}
+.str {
+  color: #f0f0f8;
+}
+.com {
+  color: #e0e070;
+}
+.opt {
+  color: #f0f0f8;
+}
+.std {
+  color: #f0f0f8;
+}
+.kwa {
+  color: #00d8f8;
+}
+.kwb {
+  color: #bbaaff;
+}
+.kwc {
+  color: #9d00f7;
+}
+.kwd {
+  color: #cc66cc;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/night.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/zellner.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/zellner.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/zellner.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #ff0066;
+}
+.str {
+  color: #ff00ff;
+}
+.com {
+  color: #ff0000;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #a52a2a;
+}
+.kwb {
+  color: #0000ff;
+}
+.kwc {
+  color: #225f2d;
+}
+.kwd {
+  color: #000000;
+  font-weight: bold;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/zellner.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-emacs.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-emacs.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-emacs.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #000000;
+}
+.str {
+  color: #bd8d8b;
+}
+.com {
+  color: #ac2020;
+  font-style: italic;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #9c20ee;
+  font-weight: bold;
+}
+.kwb {
+  color: #208920;
+}
+.kwc {
+  color: #0000ff;
+}
+.kwd {
+  color: #000000;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-emacs.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/solarized-dark.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/solarized-dark.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/solarized-dark.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #002b36;
+}
+.num {
+  color: #dc322f;
+}
+.str {
+  color: #dc322f;
+}
+.com {
+  color: #586e75;
+}
+.opt {
+  color: #93a1a1;
+}
+.std {
+  color: #839496;
+}
+.kwa {
+  color: #cb4b16;
+}
+.kwb {
+  color: #859900;
+}
+.kwc {
+  color: #cb4b16;
+}
+.kwd {
+  color: #93a1a1;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/solarized-dark.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/navy.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/navy.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/navy.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #000035;
+}
+.num {
+  color: #f87ff4;
+}
+.str {
+  color: #ff7f66;
+}
+.com {
+  color: #ffbb00;
+  font-style: italic;
+}
+.opt {
+  color: #ffffff;
+}
+.std {
+  color: #008bff;
+}
+.kwa {
+  color: #f8c50b;
+  font-weight: bold;
+}
+.kwb {
+  color: #e1e72f;
+}
+.kwc {
+  color: #13d8ef;
+}
+.kwd {
+  color: #ffffff;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/navy.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/biogoo.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/biogoo.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/biogoo.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #d6d6d6;
+}
+.num {
+  color: #b85d00;
+}
+.str {
+  color: #d10000;
+}
+.com {
+  color: #0000c3;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #00007f;
+}
+.kwb {
+  color: #540054;
+  font-weight: bold;
+}
+.kwc {
+  color: #005400;
+}
+.kwd {
+  color: #002a54;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/biogoo.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/earendel.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/earendel.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/earendel.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #a8660d;
+}
+.str {
+  color: #a8660d;
+}
+.com {
+  color: #558817;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #2239a8;
+  font-weight: bold;
+}
+.kwb {
+  color: #8c1d69;
+  font-weight: bold;
+}
+.kwc {
+  color: #a89222;
+  font-weight: bold;
+}
+.kwd {
+  color: #a8227b;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/earendel.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-gedit.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-gedit.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-gedit.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #FF00FF;
+}
+.str {
+  color: #FF00FF;
+}
+.com {
+  color: #003CFF;
+}
+.opt {
+  color: #3A3935;
+}
+.std {
+  color: #3A3935;
+}
+.kwa {
+  color: #A52A35;
+}
+.kwb {
+  color: #2E8B57;
+}
+.kwc {
+  color: #572e8c;
+}
+.kwd {
+  color: #3A3935;
+  font-weight: bold;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-gedit.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-jedit.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-jedit.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-jedit.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #ff0000;
+}
+.str {
+  color: #ff00cc;
+}
+.com {
+  color: #cc0000;
+}
+.opt {
+  color: #000000;
+  font-weight: bold;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #009966;
+  font-weight: bold;
+}
+.kwb {
+  color: #009966;
+  font-weight: bold;
+}
+.kwc {
+  color: #0099ff;
+}
+.kwd {
+  color: #9966ff;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-jedit.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-msvs2008.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-msvs2008.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-msvs2008.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #000000;
+}
+.str {
+  color: #a31515;
+}
+.com {
+  color: #008000;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #0000ff;
+}
+.kwb {
+  color: #0000ff;
+}
+.kwc {
+  color: #2b91af;
+}
+.kwd {
+  color: #000000;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-msvs2008.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkbone.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkbone.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkbone.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #000000;
+}
+.num {
+  color: #d0e080;
+}
+.str {
+  color: #d0e080;
+}
+.com {
+  color: #606080;
+}
+.opt {
+  color: #cccccc;
+}
+.std {
+  color: #a0a0c0;
+}
+.kwa {
+  color: #8090f0;
+}
+.kwb {
+  color: #e0e0ff;
+}
+.kwc {
+  color: #7ff0a6;
+}
+.kwd {
+  color: #9fbfaf;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkbone.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/rand01.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/rand01.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/rand01.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #0da344;
+}
+.str {
+  color: #2b83ba;
+}
+.com {
+  color: #ababab;
+  font-style: italic;
+}
+.opt {
+  color: #0000de;
+}
+.std {
+  color: #121b28;
+}
+.kwa {
+  color: #0a7f6d;
+  font-weight: bold;
+}
+.kwb {
+  color: #c42638;
+  font-weight: bold;
+}
+.kwc {
+  color: #e12f76;
+}
+.kwd {
+  color: #2ac749;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/rand01.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/rootwater.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/rootwater.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/rootwater.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #151b1d;
+}
+.num {
+  color: #77dd88;
+}
+.str {
+  color: #77dd88;
+}
+.com {
+  color: #656565;
+}
+.opt {
+  color: #babdb6;
+}
+.std {
+  color: #babdb6;
+}
+.kwa {
+  color: #8fffff;
+}
+.kwb {
+  color: #ffffff;
+}
+.kwc {
+  color: #ff8f8f;
+}
+.kwd {
+  color: #ededed;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/rootwater.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-nedit.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-nedit.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-nedit.css	(revision 2476)
@@ -0,0 +1,35 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #006400;
+}
+.str {
+  color: #006400;
+}
+.com {
+  color: #000000;
+  font-style: italic;
+}
+.opt {
+  color: #000000;
+  font-weight: bold;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #000000;
+  font-weight: bold;
+}
+.kwb {
+  color: #a52a2a;
+  font-weight: bold;
+}
+.kwc {
+  color: #dda0dd;
+  font-weight: bold;
+}
+.kwd {
+  color: #000000;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-nedit.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bipolar.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bipolar.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bipolar.css	(revision 2476)
@@ -0,0 +1,35 @@
+.background {
+  color: #0f020a;
+}
+.num {
+  color: #0083c9;
+}
+.str {
+  color: #eba236;
+}
+.com {
+  color: #35d6e5;
+  font-style: italic;
+}
+.opt {
+  color: #e3d922;
+}
+.std {
+  color: #d62b9a;
+}
+.kwa {
+  color: #20c79d;
+  font-weight: bold;
+}
+.kwb {
+  color: #1d9617;
+  font-weight: bold;
+}
+.kwc {
+  color: #72d42c;
+  font-weight: bold;
+}
+.kwd {
+  color: #81e535;
+  font-weight: bold;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bipolar.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-kwrite.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-kwrite.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-kwrite.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #E0EAEE;
+}
+.num {
+  color: #B07E00;
+}
+.str {
+  color: #BF0303;
+}
+.com {
+  color: #838183;
+  font-style: italic;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #000000;
+  font-weight: bold;
+}
+.kwb {
+  color: #0057AE;
+}
+.kwc {
+  color: #000000;
+  font-weight: bold;
+}
+.kwd {
+  color: #010181;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-kwrite.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bclear.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bclear.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bclear.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #1094a0;
+}
+.str {
+  color: #1094a0;
+}
+.com {
+  color: #969696;
+}
+.opt {
+  color: #323232;
+}
+.std {
+  color: #323232;
+}
+.kwa {
+  color: #3b6ac8;
+}
+.kwb {
+  color: #a00050;
+}
+.kwc {
+  color: #00a150;
+}
+.kwd {
+  color: #c73a69;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/bclear.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/fruit.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/fruit.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/fruit.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #f8f8f8;
+}
+.num {
+  color: #8016ff;
+}
+.str {
+  color: #ff6633;
+}
+.com {
+  color: #ff4080;
+}
+.opt {
+  color: #404040;
+}
+.std {
+  color: #404040;
+}
+.kwa {
+  color: #f030d0;
+}
+.kwb {
+  color: #0070e6;
+}
+.kwc {
+  color: #30f050;
+}
+.kwd {
+  color: #b030f0;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/fruit.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-vim-dark.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-vim-dark.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-vim-dark.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #000000;
+}
+.num {
+  color: #ff0000;
+}
+.str {
+  color: #ff0000;
+}
+.com {
+  color: #0000ff;
+}
+.opt {
+  color: #ffffff;
+}
+.std {
+  color: #ffffff;
+}
+.kwa {
+  color: #B26818;
+}
+.kwb {
+  color: #00ff00;
+}
+.kwc {
+  color: #B26818;
+}
+.kwd {
+  color: #ffffff;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-vim-dark.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/neon.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/neon.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/neon.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #303030;
+}
+.num {
+  color: #92d4ff;
+}
+.str {
+  color: #92d4ff;
+}
+.com {
+  color: #c0c0c0;
+}
+.opt {
+  color: #f0f0f0;
+}
+.std {
+  color: #f0f0f0;
+}
+.kwa {
+  color: #dcdc78;
+}
+.kwb {
+  color: #60f0a8;
+}
+.kwc {
+  color: #7979db;
+}
+.kwd {
+  color: #db79aa;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/neon.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-flashdevelop.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-flashdevelop.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-flashdevelop.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #0000ff;
+  font-weight: bold;
+}
+.str {
+  color: #a31515;
+}
+.com {
+  color: #606060;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #0000ff;
+}
+.kwb {
+  color: #0000ff;
+}
+.kwc {
+  color: #2b91af;
+}
+.kwd {
+  color: #2b91af;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-flashdevelop.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/seashell.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/seashell.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/seashell.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #fff5ee;
+}
+.num {
+  color: #ff1493;
+}
+.str {
+  color: #ff1493;
+}
+.com {
+  color: #2929cc;
+}
+.opt {
+  color: #676767;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #2e8b57;
+  font-weight: bold;
+}
+.kwb {
+  color: #2e8b57;
+  font-weight: bold;
+}
+.kwc {
+  color: #696969;
+  font-weight: bold;
+}
+.kwd {
+  color: #00008f;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/seashell.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/solarized-light.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/solarized-light.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/solarized-light.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #fdf6e3;
+}
+.num {
+  color: #dc322f;
+}
+.str {
+  color: #dc322f;
+}
+.com {
+  color: #93a1a1;
+}
+.opt {
+  color: #586e75;
+}
+.std {
+  color: #657b83;
+}
+.kwa {
+  color: #cb4b16;
+}
+.kwb {
+  color: #859900;
+}
+.kwc {
+  color: #cb4b16;
+}
+.kwd {
+  color: #586e75;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/solarized-light.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/kellys.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/kellys.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/kellys.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #2a2b2f;
+}
+.num {
+  color: #d1c79e;
+}
+.str {
+  color: #d1c79e;
+}
+.com {
+  color: #67686b;
+}
+.opt {
+  color: #e1e0e5;
+}
+.std {
+  color: #e1e0e5;
+}
+.kwa {
+  color: #62acce;
+  font-weight: bold;
+}
+.kwb {
+  color: #e6ac32;
+}
+.kwc {
+  color: #cf8563;
+}
+.kwd {
+  color: #bb63cf;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/kellys.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/moria.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/moria.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/moria.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #202020;
+}
+.num {
+  color: #87df71;
+}
+.str {
+  color: #87df71;
+}
+.com {
+  color: #d0d0a0;
+}
+.opt {
+  color: #d0d0d0;
+}
+.std {
+  color: #d0d0d0;
+}
+.kwa {
+  color: #7ec0ee;
+  font-weight: bold;
+}
+.kwb {
+  color: #f09479;
+  font-weight: bold;
+}
+.kwc {
+  color: #87ed7e;
+}
+.kwd {
+  color: #e47eed;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/moria.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/autumn.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/autumn.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/autumn.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #fff4e8;
+}
+.num {
+  color: #00884c;
+}
+.str {
+  color: #00884c;
+}
+.com {
+  color: #ff5050;
+}
+.opt {
+  color: #404040;
+}
+.std {
+  color: #404040;
+}
+.kwa {
+  color: #80a030;
+}
+.kwb {
+  color: #b06c58;
+}
+.kwc {
+  color: #30a188;
+}
+.kwd {
+  color: #990000;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/autumn.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/breeze.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/breeze.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/breeze.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #005c70;
+}
+.num {
+  color: #60ffff;
+}
+.str {
+  color: #60ffff;
+}
+.com {
+  color: #c8d0d0;
+}
+.opt {
+  color: #ffffff;
+}
+.std {
+  color: #ffffff;
+}
+.kwa {
+  color: #ffff80;
+}
+.kwb {
+  color: #80ffa0;
+}
+.kwc {
+  color: #7f7fff;
+}
+.kwd {
+  color: #ff7fff;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/breeze.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-vim.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-vim.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-vim.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #ff0000;
+}
+.str {
+  color: #ff0000;
+}
+.com {
+  color: #0000ff;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #B26818;
+}
+.kwb {
+  color: #00ff00;
+}
+.kwc {
+  color: #B26818;
+}
+.kwd {
+  color: #000000;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-vim.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/camo.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/camo.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/camo.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #232323;
+}
+.num {
+  color: #d2691e;
+}
+.str {
+  color: #ffe4b5;
+}
+.com {
+  color: #d2b48c;
+}
+.opt {
+  color: #ffe4c4;
+}
+.std {
+  color: #ffe4c4;
+}
+.kwa {
+  color: #f0e68c;
+}
+.kwb {
+  color: #cdc673;
+}
+.kwc {
+  color: #c7f08b;
+}
+.kwd {
+  color: #ffc7c4;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/camo.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/leo.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/leo.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/leo.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #000000;
+}
+.num {
+  color: #ff875f;
+}
+.str {
+  color: #ffd7d7;
+}
+.com {
+  color: #a8a8a8;
+  font-style: italic;
+}
+.opt {
+  color: #ffffff;
+}
+.std {
+  color: #ffffff;
+}
+.kwa {
+  color: #00d700;
+}
+.kwb {
+  color: #5fafff;
+}
+.kwc {
+  color: #006bd6;
+}
+.kwd {
+  color: #d600d6;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/leo.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/moe.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/moe.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/moe.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #f6f6f6;
+}
+.num {
+  color: #880022;
+}
+.str {
+  color: #aa4400;
+}
+.com {
+  color: #ff8800;
+}
+.opt {
+  color: #000000;
+  font-weight: bold;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #661111;
+  font-weight: bold;
+}
+.kwb {
+  color: #000066;
+  font-weight: bold;
+}
+.kwc {
+  color: #000066;
+}
+.kwd {
+  color: #004466;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/moe.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greenlcd.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greenlcd.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greenlcd.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #003000;
+}
+.num {
+  color: #3399cc;
+}
+.str {
+  color: #dfdfdf;
+}
+.com {
+  color: #888888;
+  font-style: italic;
+}
+.opt {
+  color: #2fe7a9;
+}
+.std {
+  color: #00bb00;
+}
+.kwa {
+  color: #00ed00;
+  font-weight: bold;
+}
+.kwb {
+  color: #00ed00;
+}
+.kwc {
+  color: #beef13;
+}
+.kwd {
+  color: #c0ff73;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/greenlcd.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/zenburn.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/zenburn.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/zenburn.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #1f1f1f;
+}
+.num {
+  color: #dca3a3;
+  font-weight: bold;
+}
+.str {
+  color: #cc9393;
+}
+.com {
+  color: #7f9f7f;
+  font-style: italic;
+}
+.opt {
+  color: #dcdccc;
+}
+.std {
+  color: #dcdccc;
+}
+.kwa {
+  color: #e3ceab;
+}
+.kwb {
+  color: #dfdfbf;
+  font-weight: bold;
+}
+.kwc {
+  color: #aae3b2;
+}
+.kwd {
+  color: #aabfe3;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/zenburn.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkblue.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkblue.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkblue.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #000040;
+}
+.num {
+  color: #42cad9;
+}
+.str {
+  color: #ffa0a0;
+}
+.com {
+  color: #80a0ff;
+}
+.opt {
+  color: #bababa;
+}
+.std {
+  color: #ffffff;
+}
+.kwa {
+  color: #e2e825;
+}
+.kwb {
+  color: #60ff60;
+}
+.kwc {
+  color: #e88d25;
+}
+.kwd {
+  color: #e825e2;
+  font-weight: bold;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkblue.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/ekvoli.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/ekvoli.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/ekvoli.css	(revision 2476)
@@ -0,0 +1,34 @@
+.background {
+  color: #001535;
+}
+.num {
+  color: #87c6f0;
+  font-style: italic;
+}
+.str {
+  color: #87c6f0;
+  font-style: italic;
+}
+.com {
+  color: #9590d5;
+  font-style: italic;
+}
+.opt {
+  color: #dedede;
+}
+.std {
+  color: #dedede;
+}
+.kwa {
+  color: #ffffff;
+  font-weight: bold;
+}
+.kwb {
+  color: #90bfd0;
+}
+.kwc {
+  color: #9fd190;
+}
+.kwd {
+  color: #d1909e;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/ekvoli.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/andes.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/andes.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/andes.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #0f0f0f;
+}
+.num {
+  color: #dfaf87;
+}
+.str {
+  color: #ffff77;
+}
+.com {
+  color: #33ff00;
+}
+.opt {
+  color: #ff00cc;
+}
+.std {
+  color: #f0f0f0;
+}
+.kwa {
+  color: #66aaff;
+}
+.kwb {
+  color: #66ff99;
+}
+.kwc {
+  color: #cc9966;
+}
+.kwd {
+  color: #ff99aa;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/andes.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/dante.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/dante.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/dante.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #000000;
+}
+.num {
+  color: #ee0000;
+}
+.str {
+  color: #cd2626;
+}
+.com {
+  color: #008b8b;
+}
+.opt {
+  color: #cdaf96;
+}
+.std {
+  color: #cdaf96;
+}
+.kwa {
+  color: #cdad00;
+}
+.kwb {
+  color: #66cd00;
+}
+.kwc {
+  color: #cc0085;
+}
+.kwd {
+  color: #cccccc;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/dante.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/print.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/print.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/print.css	(revision 2476)
@@ -0,0 +1,36 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #000000;
+}
+.str {
+  color: #000000;
+}
+.com {
+  color: #666666;
+  font-style: italic;
+}
+.opt {
+  color: #000000;
+  font-weight: bold;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #000000;
+  font-weight: bold;
+}
+.kwb {
+  color: #000000;
+  font-weight: bold;
+}
+.kwc {
+  color: #000000;
+  font-weight: bold;
+}
+.kwd {
+  color: #000000;
+  font-weight: bold;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/print.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/pablo.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/pablo.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/pablo.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #000000;
+}
+.num {
+  color: #00ffff;
+}
+.str {
+  color: #00ffff;
+}
+.com {
+  color: #808080;
+}
+.opt {
+  color: #ff0000;
+}
+.std {
+  color: #ffffff;
+}
+.kwa {
+  color: #c0c000;
+  font-weight: bold;
+}
+.kwb {
+  color: #00c000;
+  font-weight: bold;
+}
+.kwc {
+  color: #3939bf;
+  font-weight: bold;
+}
+.kwd {
+  color: #21ffc0;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/pablo.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/candy.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/candy.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/candy.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #000000;
+}
+.num {
+  color: #90d0ff;
+}
+.str {
+  color: #90d0ff;
+}
+.com {
+  color: #c0c0d0;
+  font-style: italic;
+}
+.opt {
+  color: #f0f0f8;
+}
+.std {
+  color: #f0f0f8;
+}
+.kwa {
+  color: #ffa0ff;
+}
+.kwb {
+  color: #ffc864;
+}
+.kwc {
+  color: #ffffa1;
+}
+.kwd {
+  color: #ff5c33;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/candy.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/zmrok.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/zmrok.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/zmrok.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #141414;
+}
+.num {
+  color: #FACE43;
+}
+.str {
+  color: #D9FF77;
+}
+.com {
+  color: #888888;
+}
+.opt {
+  color: #F8F8F8;
+}
+.std {
+  color: #F8F8F8;
+}
+.kwa {
+  color: #A56A30;
+  font-weight: bold;
+}
+.kwb {
+  color: #C7CA87;
+}
+.kwc {
+  color: #30a630;
+}
+.kwd {
+  color: #3b84cc;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/zmrok.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/blacknblue.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/blacknblue.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/blacknblue.css	(revision 2476)
@@ -0,0 +1,33 @@
+.background {
+  color: #000000;
+}
+.num {
+  color: #cc3366;
+}
+.str {
+  color: #cfc631;
+}
+.com {
+  color: #c47b6a;
+  font-style: italic;
+}
+.opt {
+  color: #ccc6c6;
+}
+.std {
+  color: #22a0d6;
+}
+.kwa {
+  color: #1ededc;
+  font-weight: bold;
+}
+.kwb {
+  color: #c06cf8;
+  font-weight: bold;
+}
+.kwc {
+  color: #00ff99;
+}
+.kwd {
+  color: #1ceddc;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/blacknblue.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/tcsoft.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/tcsoft.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/tcsoft.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #FFFFFF;
+}
+.num {
+  color: #666666;
+}
+.str {
+  color: #666666;
+}
+.com {
+  color: #000099;
+  font-style: italic;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #FF9900;
+}
+.kwb {
+  color: #FF9900;
+  font-weight: bold;
+}
+.kwc {
+  color: #0066ff;
+}
+.kwd {
+  color: #ff00e5;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/tcsoft.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-anjuta.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-anjuta.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-anjuta.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #008800;
+}
+.str {
+  color: #ddbb00;
+}
+.com {
+  color: #ff0000;
+  font-style: italic;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #000080;
+  font-weight: bold;
+}
+.kwb {
+  color: #000080;
+}
+.kwc {
+  color: #0000ff;
+}
+.kwd {
+  color: #000000;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-anjuta.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/peaksea.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/peaksea.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/peaksea.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #e0e0e0;
+}
+.num {
+  color: #907000;
+}
+.str {
+  color: #007068;
+}
+.com {
+  color: #606000;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #2060a8;
+}
+.kwb {
+  color: #0850a0;
+}
+.kwc {
+  color: #a86920;
+}
+.kwd {
+  color: #20a825;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/peaksea.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkness.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkness.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkness.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #000000;
+}
+.num {
+  color: #619de7;
+}
+.str {
+  color: #abab00;
+  font-weight: bold;
+}
+.com {
+  color: #008888;
+}
+.opt {
+  color: #ff00ff;
+}
+.std {
+  color: #ffffff;
+}
+.kwa {
+  color: #ffff00;
+  font-weight: bold;
+}
+.kwb {
+  color: #00ff00;
+}
+.kwc {
+  color: #26e0e7;
+}
+.kwd {
+  color: #f34627;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/darkness.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/baycomb.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/baycomb.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/baycomb.css	(revision 2476)
@@ -0,0 +1,31 @@
+.background {
+  color: #11121a;
+}
+.num {
+  color: #4580b4;
+}
+.str {
+  color: #5c78f0;
+}
+.com {
+  color: #349d58;
+}
+.opt {
+  color: #b0b0b0;
+}
+.std {
+  color: #a0b4e0;
+}
+.kwa {
+  color: #fca8ad;
+}
+.kwb {
+  color: #0490e8;
+  font-weight: bold;
+}
+.kwc {
+  color: #a9fcf7;
+}
+.kwd {
+  color: #b4e09f;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/baycomb.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/xoria256.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/xoria256.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/xoria256.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #1c1c1c;
+}
+.num {
+  color: #dfaf87;
+}
+.str {
+  color: #ffffaf;
+}
+.com {
+  color: #808080;
+}
+.opt {
+  color: #d0d0d0;
+}
+.std {
+  color: #d0d0d0;
+}
+.kwa {
+  color: #87afdf;
+}
+.kwb {
+  color: #87de8c;
+}
+.kwc {
+  color: #deb787;
+}
+.kwd {
+  color: #de87da;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/xoria256.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/aiseered.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/aiseered.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/aiseered.css	(revision 2476)
@@ -0,0 +1,32 @@
+.background {
+  color: #600000;
+}
+.num {
+  color: #88ddee;
+}
+.str {
+  color: #ffcc88;
+}
+.com {
+  color: #ffffff;
+  font-style: italic;
+}
+.opt {
+  color: #ffcc33;
+}
+.std {
+  color: #f08080;
+}
+.kwa {
+  color: #eeff99;
+  font-weight: bold;
+}
+.kwb {
+  color: #88ffaa;
+}
+.kwc {
+  color: #aa99ff;
+}
+.kwd {
+  color: #f0b77f;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/aiseered.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-matlab.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-matlab.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-matlab.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #ffffff;
+}
+.num {
+  color: #000000;
+}
+.str {
+  color: #800000;
+}
+.com {
+  color: #000000;
+}
+.opt {
+  color: #000000;
+}
+.std {
+  color: #000000;
+}
+.kwa {
+  color: #0000ff;
+}
+.kwb {
+  color: #000000;
+}
+.kwc {
+  color: #0000ff;
+}
+.kwd {
+  color: #000000;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/edit-matlab.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/navajo-night.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/navajo-night.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/navajo-night.css	(revision 2476)
@@ -0,0 +1,34 @@
+.background {
+  color: #35536f;
+}
+.num {
+  color: #3fffa7;
+}
+.str {
+  color: #3fffa7;
+}
+.com {
+  color: #e7e77f;
+}
+.opt {
+  color: #ffffff;
+}
+.std {
+  color: #ffffff;
+}
+.kwa {
+  color: #5ad5d5;
+  font-weight: bold;
+}
+.kwb {
+  color: #d174a8;
+  font-weight: bold;
+}
+.kwc {
+  color: #98d65a;
+  font-weight: bold;
+}
+.kwd {
+  color: #ffffff;
+  font-weight: bold;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/navajo-night.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/orion.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/orion.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/orion.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #1E1616;
+}
+.num {
+  color: #9C928C;
+}
+.str {
+  color: #635D63;
+}
+.com {
+  color: #C4674A;
+}
+.opt {
+  color: #7B94AD;
+}
+.std {
+  color: #C4B1A8;
+}
+.kwa {
+  color: #49d4d6;
+}
+.kwb {
+  color: #BA1919;
+}
+.kwc {
+  color: #7B2421;
+}
+.kwd {
+  color: #AD5139;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/orion.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/maroloccio.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/maroloccio.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/maroloccio.css	(revision 2476)
@@ -0,0 +1,30 @@
+.background {
+  color: #1a202a;
+}
+.num {
+  color: #8b8b00;
+}
+.str {
+  color: #5B5BD0;
+}
+.com {
+  color: #006666;
+}
+.opt {
+  color: #8b9aaa;
+}
+.std {
+  color: #8b9aaa;
+}
+.kwa {
+  color: #9966cc;
+}
+.kwb {
+  color: #ffcc00;
+}
+.kwc {
+  color: #cc6666;
+}
+.kwd {
+  color: #99cc66;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/maroloccio.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/fine_blue.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/fine_blue.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/fine_blue.css	(revision 2476)
@@ -0,0 +1,35 @@
+.background {
+  color: #f8f8f8;
+}
+.num {
+  color: #2020ff;
+}
+.str {
+  color: #2020ff;
+}
+.com {
+  color: #ff00c0;
+  font-style: italic;
+}
+.opt {
+  color: #404048;
+}
+.std {
+  color: #404048;
+}
+.kwa {
+  color: #008858;
+  font-weight: bold;
+}
+.kwb {
+  color: #7040ff;
+  font-weight: bold;
+}
+.kwc {
+  color: #87002f;
+  font-weight: bold;
+}
+.kwd {
+  color: #404048;
+  font-weight: bold;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/themes/fine_blue.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/demo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/demo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/help/AnIndex	(revision 2476)
@@ -0,0 +1,105 @@
+knitr-package	knitr-package
+all_labels	all_labels
+all_patterns	all_patterns
+all_rcpp_labels	all_labels
+asis_output	asis_output
+clean_cache	clean_cache
+combine_words	combine_words
+current_input	current_input
+dep_auto	dep_auto
+dep_prev	dep_prev
+engine_output	engine_output
+extract_raw_output	raw_output
+fig_chunk	fig_chunk
+fig_path	fig_path
+hook_ffmpeg_html	hook_animation
+hook_movecode	hook_document
+hook_optipng	chunk_hook
+hook_pdfcrop	chunk_hook
+hook_plot_asciidoc	hook_plot
+hook_plot_custom	chunk_hook
+hook_plot_html	hook_plot
+hook_plot_md	hook_plot
+hook_plot_rst	hook_plot
+hook_plot_tex	hook_plot
+hook_plot_textile	hook_plot
+hook_pngquant	chunk_hook
+hook_purl	chunk_hook
+hook_r2swf	hook_animation
+hook_scianimator	hook_animation
+image_uri	image_uri
+imgur_upload	imgur_upload
+include_app	include_url
+include_graphics	include_graphics
+include_url	include_url
+inline_expr	inline_expr
+kable	kable
+knit	knit
+knit2html	knit2html
+knit2pdf	knit2pdf
+knit2wp	knit2wp
+knitr	knitr-package
+knit_child	knit_child
+knit_engines	knit_engines
+knit_exit	knit_exit
+knit_expand	knit_expand
+knit_filter	knit_filter
+knit_global	knit_global
+knit_hooks	knit_hooks
+knit_meta	knit_meta
+knit_meta_add	knit_meta
+knit_params	knit_params
+knit_params_yaml	knit_params_yaml
+knit_patterns	knit_patterns
+knit_print	knit_print
+knit_rd	knit_rd
+knit_rd_all	knit_rd
+knit_theme	knit_theme
+knit_watch	knit_watch
+load_cache	load_cache
+normal_print	knit_print
+opts_chunk	opts_chunk
+opts_current	opts_chunk
+opts_hooks	opts_hooks
+opts_knit	opts_knit
+opts_template	opts_template
+pandoc	pandoc
+pat_asciidoc	pat_fun
+pat_brew	pat_fun
+pat_html	pat_fun
+pat_md	pat_fun
+pat_rnw	pat_fun
+pat_rst	pat_fun
+pat_tex	pat_fun
+pat_textile	pat_fun
+plot_crop	plot_crop
+purl	knit
+rand_seed	rand_seed
+raw_output	raw_output
+read_chunk	read_chunk
+read_demo	read_chunk
+read_rforge	read_rforge
+render_asciidoc	output_hooks
+render_html	output_hooks
+render_jekyll	output_hooks
+render_latex	output_hooks
+render_listings	output_hooks
+render_markdown	output_hooks
+render_rst	output_hooks
+render_sweave	output_hooks
+render_textile	output_hooks
+restore_raw_output	raw_output
+rocco	rocco
+rst2pdf	rst2pdf
+set_alias	set_alias
+set_header	set_header
+set_parent	set_parent
+spin	spin
+spin_child	spin_child
+stitch	stitch
+stitch_rhtml	stitch
+stitch_rmd	stitch
+Sweave2knitr	Sweave2knitr
+vignette_engines	vignette_engines
+wrap_rmd	wrap_rmd
+write_bib	write_bib
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/help/knitr.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/help/knitr.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/help/knitr.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/help/knitr.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/www/ace-shiny.js
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/www/ace-shiny.js	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/www/ace-shiny.js	(revision 2476)
@@ -0,0 +1,63 @@
+var editor = ace.edit("notebook");
+editor.setTheme("ace/theme/tomorrow");
+editor.getSession().setMode('ace/mode/markdown');
+editor.getSession().setUseWrapMode(true);
+editor.getSession().setTabSize(2);
+editor.getSession().setFoldStyle('markbegin');
+
+editor.getSession().on('change', function(e) {
+  $('#nbSrc').val(editor.getValue()).change();
+});
+editor.getSession().selection.on('changeSelection', function(e) {
+  var s = editor.session.getTextRange(editor.getSelectionRange());
+  if (s == '') s = editor.getValue();
+  $('#nbSrc').val(s).change();
+});
+editor.commands.addCommand({
+  name: 'insertChunk',
+  bindKey: 'Ctrl-Alt-I',
+  exec: function(editor) {
+    editor.insert('```{r}\n\n```\n');
+    editor.navigateUp(2);
+  }
+});
+editor.commands.addCommand({
+  name: 'compileNotebook',
+  bindKey: 'F4|Ctrl-Shift-H',
+  exec: function(editor) {
+    $('#proxy button').trigger('click');
+  }
+});
+
+$(document).ready(function() {
+  // may pass a url as a query string after ? in the url
+  var h = window.location.search.substring(1);
+  function setSrc(msg) {
+    if (msg) {
+      alert('unable to read URL ' + h + '\n\nusing default R Markdown example');
+    }
+    $('#nbSrc').val(editor.getValue());
+    $('#proxy button').trigger('click');
+  }
+  var w = Math.max($(window).width()/2, 300);
+  $('#notebook').width(w - 10);
+  $('#nbOut').css('left', w + 10 + 'px');
+  if (h) {
+    $.get(h, {}, function(res) {
+      var data = res.data, str = data.content;
+      if (typeof(str) != 'string') return(setSrc(true));
+      if (data.encoding == 'base64') {
+        str = str.replace(/\n/g, '');
+        str = decodeURIComponent(escape(window.atob( str )));
+      }
+      if (str) {
+        editor.setValue(str);
+        editor.gotoLine(1);
+        setSrc(false);
+      } else setSrc(true);
+    }, 'jsonp')
+    .error(function() {
+      setSrc(true);
+    });
+  } else setSrc(false);
+})

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/www/ace-shiny.js
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/www/ace-shiny.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/www/ace-shiny.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/www/ace-shiny.css	(revision 2476)
@@ -0,0 +1,24 @@
+#proxy {
+  position: absolute;
+  top: 0;
+  right: 0;
+  display: none;
+}
+
+#notebook {
+  position: absolute;
+  width: 600px;
+  top: 0;
+  left: 0;
+  bottom: 0;
+}
+
+#nbOut {
+  position: absolute;
+  left: 620px;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  padding-right: 5px;
+  overflow-y: scroll;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/www/ace-shiny.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/server.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/server.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/server.R	(revision 2476)
@@ -0,0 +1,20 @@
+library(shiny)
+library(knitr)
+options(device.ask.default = FALSE)
+
+shinyServer(function(input, output) {
+
+  output$nbOut = reactive({
+    src = input$nbSrc
+    if (length(src) == 0L || src == '') return('Nothing to show yet...')
+    owd = setwd(tempdir()); on.exit(setwd(owd))
+    opts_knit$set(root.dir = owd)
+
+    paste(knit2html(text = src, fragment.only = TRUE, quiet = TRUE),
+          '<script>',
+          '// highlight code blocks',
+          "$('#nbOut pre code').each(function(i, e) {hljs.highlightBlock(e)});",
+          'MathJax.Hub.Queue(["Typeset", MathJax.Hub]); // update MathJax expressions',
+          '</script>', sep = '\n')
+  })
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/ui.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/ui.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/shiny/ui.R	(revision 2476)
@@ -0,0 +1,27 @@
+library(shiny)
+
+# div nbSrc takes source code from div notebook (via Ace editor), and div nbOut
+# holds results from knitr
+shinyUI(
+  bootstrapPage(
+    tags$head(
+      tags$title('An R Notebook in Shiny'),
+      tags$script(src = 'http://ajaxorg.github.io/ace/build/src-min-noconflict/ace.js',
+                  type = 'text/javascript', charset = 'utf-8'),
+      tags$link(rel = 'stylesheet', type = 'text/css', href = 'ace-shiny.css'),
+      tags$script(src = '//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/highlight.min.js', type = 'text/javascript'),
+      tags$script(src = '//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/languages/r.min.js', type = 'text/javascript'),
+      tags$link(rel = 'stylesheet', type = 'text/css',
+                href = '//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/styles/github.min.css'),
+      tags$script(src = '//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML',
+                  type = 'text/javascript')
+    ),
+    div(id = 'notebook', title = 'Compile notebook: F4\nInsert chunk: Ctrl+Alt+I',
+        paste(c('This is an example taken from the **knitr** package. Press `F4` or `Ctrl+Shift+H` to compile it, and `Ctrl+Alt+I` to insert a code chunk.', '',
+                readLines(system.file('examples', 'knitr-minimal.Rmd', package = 'knitr'))), collapse = '\n')),
+    tags$textarea(id = 'nbSrc', style = 'display: none;'),
+    tags$script(src = 'ace-shiny.js', type = 'text/javascript'),
+    htmlOutput('nbOut'),
+    div(id = 'proxy', submitButton('Knit Notebook'))
+  )
+)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr-template.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr-template.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr-template.Rnw	(revision 2476)
@@ -0,0 +1,60 @@
+\documentclass{article}
+\usepackage[sc]{mathpazo}
+\renewcommand{\sfdefault}{lmss}
+\renewcommand{\ttdefault}{lmtt}
+\usepackage[T1]{fontenc}
+\usepackage{geometry}
+\geometry{verbose,tmargin=2.5cm,bmargin=2.5cm,lmargin=2.5cm,rmargin=2.5cm}
+\setcounter{secnumdepth}{2}
+\setcounter{tocdepth}{2}
+\usepackage[unicode=true,pdfusetitle,
+ bookmarks=true,bookmarksnumbered=true,bookmarksopen=true,bookmarksopenlevel=2,
+ breaklinks=false,pdfborder={0 0 1},backref=false,colorlinks=false]
+ {hyperref}
+\hypersetup{
+ pdfstartview={XYZ null null 1}}
+
+\makeatletter
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
+\renewcommand{\textfraction}{0.05}
+\renewcommand{\topfraction}{0.8}
+\renewcommand{\bottomfraction}{0.8}
+\renewcommand{\floatpagefraction}{0.75}
+
+\makeatother
+
+\begin{document}
+
+<<setup,include=FALSE,cache=FALSE>>=
+options(width=90)
+opts_chunk$set(out.width = '.6\\linewidth')
+.knitr.title = if (exists('.knitr.title')) paste('\\title{', .knitr.title, '}', sep = '') else ''
+.knitr.author = if (nzchar(.knitr.title) && exists('.knitr.author')) {
+  paste('\\author{', .knitr.author, '%\n',
+        '\\thanks{This report is automatically generated with the R package \\textbf{knitr}
+        (version ', packageVersion('knitr'), ').}}', sep = '')
+} else ''
+@
+
+\Sexpr{.knitr.title}
+
+\Sexpr{.knitr.author}
+
+\Sexpr{if (nzchar(.knitr.title)) '\\maketitle'}
+The results below are generated from an R script.
+
+<<%sCHUNK_LABEL_HERE>>=
+@
+
+The R session information (including the OS info, R version and all
+packages used):
+
+<<session-info, cache=FALSE>>=
+sessionInfo()
+Sys.time()
+@
+<<clean-up, include=FALSE>>=
+rm(.knitr.author); rm(.knitr.author)
+@
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr.sty
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr.sty	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr.sty	(revision 2476)
@@ -0,0 +1,25 @@
+\usepackage{framed}
+\makeatletter
+\newenvironment{kframe}{%
+ \def\at@end@of@kframe{}%
+ \ifinner\ifhmode%
+  \def\at@end@of@kframe{\end{minipage}}%
+  \begin{minipage}{\columnwidth}%
+ \fi\fi%
+ \def\FrameCommand##1{\hskip\@totalleftmargin \hskip-\fboxsep
+ \colorbox{shadecolor}{##1}\hskip-\fboxsep
+     % There is no \\@totalrightmargin, so:
+     \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
+ \MakeFramed {\advance\hsize-\width
+   \@totalleftmargin\z@ \linewidth\hsize
+   \@setminipage}}%
+ {\par\unskip\endMakeFramed%
+ \at@end@of@kframe}
+\makeatother
+
+\definecolor{shadecolor}{rgb}{.97, .97, .97}
+\definecolor{messagecolor}{rgb}{0, 0, 0}
+\definecolor{warningcolor}{rgb}{1, 0, 1}
+\definecolor{errorcolor}{rgb}{1, 0, 0}
+\newenvironment{knitrout}{}{} % an empty environment to be redefined in TeX
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/datatables.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/datatables.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/datatables.html	(revision 2476)
@@ -0,0 +1,6 @@
+<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.3/css/jquery.dataTables.css">
+<script type="text/javascript" charset="utf8" src="//code.jquery.com/jquery-2.1.1.min.js"></script>
+<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.3/js/jquery.dataTables.js"></script>
+<style type="text/css">
+p{clear:both;}
+</style>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/datatables.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/docco-classic.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/docco-classic.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/docco-classic.html	(revision 2476)
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>#!title#</title>
+    <meta charset="utf-8">
+    <meta name="generator" content="knitr" />
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/7.3/styles/github.min.css">
+#!mathjax#
+<style type="text/css">
+#!markdown_css#
+</style>
+#!header#
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/7.3/highlight.min.js"></script>
+<script type="text/javascript">
+hljs.LANGUAGES.r=function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[a.HCM,{b:b,l:b,k:{keyword:"function if in break next repeat else for return switch while try tryCatch|10 stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...|10",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[a.BE],r:0},{cN:"string",b:"'",e:"'",c:[a.BE],r:0}]}}(hljs);
+</script>
+    <script>hljs.initHighlightingOnLoad();</script>
+    <script src="https://yihui.github.io/media/js/center-images.js"></script>
+  </head>
+  <body>
+    <div id="container">
+      <table><!--table start-->
+#!html_output#
+      </table><!--table end-->
+    </div>
+  <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
+  <script src="https://yihui.github.io/knitr/js/docco-resize.js"></script>
+  </body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/docco-classic.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/stitch-test.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/stitch-test.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/stitch-test.R	(revision 2476)
@@ -0,0 +1,8 @@
+## title: A test script for the function stitch()
+## author: Yihui Xie
+set.seed(1121)
+(x = rnorm(20))
+mean(x);var(x)
+boxplot(x)
+hist(x, main = '')
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/vignette.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/vignette.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/vignette.css	(revision 2476)
@@ -0,0 +1,240 @@
+body {
+  background-color: #fff;
+  margin: 1em auto;
+  max-width: 800px;
+  overflow: visible;
+  padding-left: 2em;
+  padding-right: 2em;
+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-size: 14px;
+  line-height: 20px;
+}
+
+#header {
+  text-align: center;
+}
+
+#TOC {
+  clear: both;
+  margin: 0 0 10px 0;
+  padding: 4px;
+  border: 1px solid #CCCCCC;
+  border-radius: 5px;
+  background-color: #f6f6f6;
+  font-size: 13px;
+  line-height: 1.3;
+}
+  #TOC .toctitle {
+    font-weight: bold;
+    font-size: 15px;
+    margin-left: 5px;
+  }
+
+  #TOC ul {
+    padding-left: 40px;
+    margin-left: -1.5em;
+    margin-top: 5px;
+    margin-bottom: 5px;
+  }
+  #TOC ul ul {
+    margin-left: -2em;
+  }
+  #TOC li {
+    line-height: 16px;
+  }
+
+table:not([class]) {
+  margin: auto;
+  min-width: 40%;
+  border-width: 1px;
+  border-color: #DDDDDD;
+  border-style: outset;
+  border-collapse: collapse;
+}
+table[summary="R argblock"] {
+  width: 100%;
+  border: none;
+}
+table:not([class]) th {
+  border-width: 2px;
+  padding: 5px;
+  border-style: inset;
+}
+table:not([class]) td {
+  border-width: 1px;
+  border-style: inset;
+  line-height: 18px;
+  padding: 5px 5px;
+}
+table:not([class]), table:not([class]) th, table:not([class]) td {
+  border-left-style: none;
+  border-right-style: none;
+}
+table:not([class]) tr.odd {
+  background-color: #f7f7f7;
+}
+
+p {
+  margin: 0.5em 0;
+}
+
+blockquote {
+  background-color: #f6f6f6;
+  padding: 13px;
+  padding-bottom: 1px;
+}
+
+hr {
+  border-style: solid;
+  border: none;
+  border-top: 1px solid #777;
+  margin: 28px 0;
+}
+
+dl {
+  margin-left: 0;
+}
+  dl dd {
+    margin-bottom: 13px;
+    margin-left: 13px;
+  }
+  dl dt {
+    font-weight: bold;
+  }
+
+ul {
+  margin-top: 0;
+}
+  ul li {
+    list-style: circle outside;
+  }
+  ul ul {
+    margin-bottom: 0;
+  }
+
+pre, code {
+  background-color: #f5f5f5;
+  border-radius: 3px;
+  color: #333;
+}
+pre {
+  overflow-x: auto;
+  border-radius: 3px;
+  margin: 5px 0 10px 0;
+  padding: 10px;
+}
+pre:not([class]) {
+  background-color: white;
+  border: #f5f5f5 1px solid;
+}
+pre:not([class]) code {
+  color: #444;
+  background-color: white;
+}
+code {
+  font-family: monospace;
+  font-size: 90%;
+}
+p > code, li > code {
+  padding: 2px 4px;
+  color: #d14;
+  border: 1px solid #e1e1e8;
+  white-space: inherit;
+}
+div.figure {
+  text-align: center;
+}
+table > caption, div.figure p.caption {
+  font-style: italic;
+}
+table > caption span, div.figure p.caption span {
+  font-style: normal;
+  font-weight: bold;
+}
+p {
+  margin: 0 0 10px;
+}
+table:not([class]) {
+  margin: auto auto 10px auto;
+}
+
+img:not([class]) {
+  background-color: #FFFFFF;
+  padding: 2px;
+  border-radius: 3px;
+  border: 1px solid #CCCCCC;
+  margin: 0 5px;
+  max-width: 100%;
+}
+
+h1 {
+  margin-top: 0;
+  font-size: 35px;
+  line-height: 40px;
+}
+
+h2 {
+  border-bottom: 4px solid #f5f5f5;
+  padding-top: 10px;
+  padding-bottom: 2px;
+  font-size: 145%;
+}
+
+h3 {
+  border-bottom: 2px solid #f5f5f5;
+  padding-top: 10px;
+  font-size: 120%;
+}
+
+h4 {
+  border-bottom: 1px solid #f5f5f5;
+  margin-left: 8px;
+  font-size: 105%;
+}
+
+h5, h6 {
+  border-bottom: 1px solid #ccc;
+  font-size: 105%;
+}
+
+a {
+  color: #0033dd;
+  text-decoration: none;
+}
+  a:hover {
+    color: #6666ff; }
+  a:visited {
+    color: #800080; }
+  a:visited:hover {
+    color: #BB00BB; }
+  a[href^="http:"] {
+    text-decoration: underline; }
+  a[href^="https:"] {
+    text-decoration: underline; }
+
+div.r-help-page {
+  background-color: #f9f9f9;
+  border-bottom: #ddd 1px solid;
+  margin-bottom: 10px;
+  padding: 10px;
+}
+div.r-help-page:hover {
+  background-color: #f4f4f4;
+}
+
+/* Class described in https://benjeffrey.com/posts/pandoc-syntax-highlighting-css
+   Colours from https://gist.github.com/robsimmons/1172277 */
+
+code > span.kw { color: #555; font-weight: bold; } /* Keyword */
+code > span.dt { color: #902000; } /* DataType */
+code > span.dv { color: #40a070; } /* DecVal (decimal values) */
+code > span.bn { color: #d14; } /* BaseN */
+code > span.fl { color: #d14; } /* Float */
+code > span.ch { color: #d14; } /* Char */
+code > span.st { color: #d14; } /* String */
+code > span.co { color: #888888; font-style: italic; } /* Comment */
+code > span.ot { color: #007020; } /* OtherToken */
+code > span.al { color: #ff0000; font-weight: bold; } /* AlertToken */
+code > span.fu { color: #900; font-weight: bold; } /* Function calls */
+code > span.er { color: #a61717; background-color: #e3d2d2; } /* ErrorTok */
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/vignette.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/framed.sty
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/framed.sty	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/framed.sty	(revision 2476)
@@ -0,0 +1,548 @@
+% framed.sty   v 0.96    2011/10/22
+% Copyright (C) 1992-2011 by Donald Arseneau  (asnd@triumf.ca)
+% These macros may be freely transmitted, reproduced, or modified
+% for any purpose provided that this notice is left intact.
+% 
+%====================== Begin Instructions =======================
+%
+%                       framed.sty
+%                       ~~~~~~~~~~
+% Create framed, shaded, or differently highlighted regions that can 
+% break across pages.  The environments defined are 
+%   framed     - ordinary frame box (\fbox) with edge at margin
+%   oframed    - framed with open top/bottom at page breaks
+%   shaded     - shaded background (\colorbox) bleeding into margin
+%   shaded*    - shaded background (\colorbox) with edge at margin
+%   snugshade  - shaded with tight fit around text (esp. in lists)
+%   snugshade* - like snugshade with shading edge at margin
+%   leftbar    - thick vertical line in left margin
+% 
+% to be used like
+% \begin{framed}
+%  copious text
+% \end{framed}
+%
+% But the more general purpose of this package is to facilitate the
+% definition of new environments that take multi-line material,
+% wrap it with some non-breakable formatting (some kind of box or
+% decoration) and allow page breaks in the material.  Such environments
+% are defined to declare (or use) \FrameCommand for applying the boxy 
+% decoration, and \MakeFramed{settings} ... \endMakeFramed wrapped
+% around the main text argument (environment body).
+%
+% The "framed" environment uses "\fbox", by default, as its "\FrameCommand"
+% with the additional settings "\fboxrule=\FrameRule" and "\fboxsep=\FrameSep".
+% You can change these lengths (using "\setlength") and you can change 
+% the definition of "\FrameCommand" to use much fancier boxes.  
+%
+% In fact, the "shaded" environment just redefines \FrameCommand to be
+% "\colorbox{shadecolor}" (and you have to define the color `"shadecolor"':
+% "\definecolor{shadecolor}...").
+%
+% Although the intention is for other packages to define the varieties
+% of decoration, a command "\OpenFbox" is defined for frames with open 
+% tops or bottoms, and used for the "oframed" environment.  This facility
+% is based on a more complex and capable command "\CustomFBox" which can
+% be used for a wider range of frame styles.  One such style of a title-bar
+% frame with continuation marks is provided as an example.  It is used by
+% the "titled-frame" environment.  To make use of "titled-frame" in your
+% document, or the "\TitleBarFrame" command in your own environment
+% definitions, you must define the colors TFFrameColor (for the frame)
+% and a contrasting TFTitleColor (for the title text).
+%
+% A page break is allowed, and even encouraged, before the framed
+% environment.  If you want to attach some text (a box title) to the
+% frame, then the text should be inserted by \FrameCommand so it cannot
+% be separated from the body.
+%
+% The contents of the framed regions are restricted: 
+% Floats, footnotes, marginpars and head-line entries will be lost.
+% (Some of these may be handled in a later version.)
+% This package will not work with the page breaking of multicol.sty,
+% or other systems that perform column-balancing.
+%
+% The MakeFramed environment does the work.  Its `settings' argument
+% should contain any adjustments to the text width (via a setting of
+% "\hsize"). Here, the parameter "\width" gives the measured extra width
+% added by the frame, so a common setting is "\advance\hsize-\width"
+% which reduces the width of the text just enough that the outer edge
+% of the frame aligns with the margins.  The `settings' should also
+% include a `restore' command -- "\@parboxrestore" or "\FrameRestore"
+% or something similar; for instance, the snugshade environment uses
+% settings to eliminate list indents and vertical space, but uses
+% "\hspace" in "\FrameCommand" to reproduce the list margin ouside the
+% shading.
+%
+% There are actually four variants of "\FrameCommand" to allow different
+% formatting for each part of an environment broken over pages.  Unbroken
+% text is adorned by "\FrameCommand", whereas split text first uses 
+% "\FirstFrameCommand", possibly followed by "\MidFrameCommand", and
+% finishing with "\LastFrameCommand".  The default definitions for 
+% these three just invokes "\FrameCommand", so that all portions are
+% framed the same way.  See the oframe environment for use of distinct
+% First/Mid/Last frames.
+%
+% Expert commands:
+% \MakeFramed, \endMakeFramed: the "MakeFramed" environment
+% \FrameCommand: command to draw the frame around its argument
+% \FirstFrameCommand: the frame for the first part of a split environment
+% \LastFrameCommand: for the last portion
+% \MidFrameCommand: for any intermediate segments
+% \FrameRestore: restore some text settings, but fewer than \@parboxrestore
+% \FrameRule: length register; \fboxrule for default "framed".
+% \FrameSep: length register; \fboxsep for default "framed".
+% \FrameHeightAdjust: macro; height of frame above baseline at top of page
+% \OuterFrameSep: vertical space before and after the framed env. Defaults to "\topsep"
+%
+% This is still a `pre-production' version because I can think of many
+% features/improvements that should be made.  Also, a detailed manual needs
+% to be written.  Nevertheless, starting with version 0.5 it should be bug-free.
+%
+% ToDo: 
+% Test more varieties of list 
+% Improve and correct documentation
+% Propagation of \marks
+% Handle footnotes (how??) floats (?) and marginpars.
+% Stretchability modification.
+% Make inner contents height/depth influence placement.
+%======================== End Instructions ========================
+
+\ProvidesPackage{framed}[2011/10/22 v 0.96: 
+   framed or shaded text with page breaks]
+
+\newenvironment{framed}% using default \FrameCommand
+  {\MakeFramed {\advance\hsize-\width \FrameRestore}}%
+  {\endMakeFramed}
+
+\newenvironment{shaded}{%
+  \def\FrameCommand{\fboxsep=\FrameSep \colorbox{shadecolor}}%
+  \MakeFramed {\FrameRestore}}%
+ {\endMakeFramed}
+
+\newenvironment{shaded*}{%
+  \def\FrameCommand{\fboxsep=\FrameSep \colorbox{shadecolor}}%
+  \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+
+\newenvironment{leftbar}{%
+  \def\FrameCommand{\vrule width 3pt \hspace{10pt}}%
+  \MakeFramed {\advance\hsize-\width \FrameRestore}}%
+ {\endMakeFramed}
+
+% snugshde:  Shaded environment that 
+%  -- uses the default \fboxsep instead of \FrameSep
+%  -- leaves the text indent unchanged (shading bleeds out)
+%  -- eliminates possible internal \topsep glue (\@setminipage)
+%  -- shrinks inside the margins for lists
+%  An \item label will tend to hang outside the shading, thanks to
+%  the small \fboxsep.
+
+\newenvironment{snugshade}{%
+  \def\FrameCommand##1{\hskip\@totalleftmargin \hskip-\fboxsep
+  \colorbox{shadecolor}{##1}\hskip-\fboxsep
+      % There is no \@totalrightmargin, so:
+      \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
+  \MakeFramed {\advance\hsize-\width 
+    \@totalleftmargin\z@ \linewidth\hsize
+    \@setminipage}%
+ }{\par\unskip\@minipagefalse\endMakeFramed}
+
+\newenvironment{snugshade*}{%
+  \def\FrameCommand##1{\hskip\@totalleftmargin 
+  \colorbox{shadecolor}{##1}%
+      % There is no \@totalrightmargin, so:
+      \hskip-\linewidth \hskip-\@totalleftmargin \hskip\columnwidth}%
+  \MakeFramed {\advance\hsize-\width 
+    \@totalleftmargin\z@ \linewidth\hsize
+    \advance\labelsep\fboxsep
+    \@setminipage}%
+ }{\par\unskip\@minipagefalse\endMakeFramed}
+
+\newenvironment{oframed}{% open (top or bottom) framed
+  \def\FrameCommand{\OpenFBox\FrameRule\FrameRule}%
+  \def\FirstFrameCommand{\OpenFBox\FrameRule\z@}%
+  \def\MidFrameCommand{\OpenFBox\z@\z@}%
+  \def\LastFrameCommand{\OpenFBox\z@\FrameRule}%
+  \MakeFramed {\advance\hsize-\width \FrameRestore}%
+  }{\endMakeFramed}
+
+% A simplified entry to \CustomFBox with two customized parameters:
+% the thicknesses of the top and bottom rules.  Perhaps we want to
+% use less \fboxsep on the open edges?
+
+\def\OpenFBox#1#2{\fboxsep\FrameSep
+   \CustomFBox{}{}{#1}{#2}\FrameRule\FrameRule}
+
+% \CustomFBox is like an amalgamation of \fbox and \@frameb@x,
+% so it can be used by an alternate to \fbox or \fcolorbox, but
+% it has more parameters for various customizations.
+% Parameter #1 is inserted (in vmode) right after the top rule 
+% (useful for a title or assignments), and #2 is similar, but
+% inserted right above the bottom rule.
+% The thicknesses of the top, bottom, left, and right rules are
+% given as parameters #3,#4,#5,#6 respectively.  They should be
+% \fboxrule or \z@ (or some other thickness).
+% The text argument is #7.
+% An instance of this can be used for the frame of \fcolorbox by
+% locally defining \fbox before \fcolorbox; e.g.,
+% \def\fbox{\CustomFBox{}{}\z@\z@\fboxrule\fboxrule}\fcolorbox
+%
+% Do we need to use different \fboxsep on different sides too?
+%
+\long\def\CustomFBox#1#2#3#4#5#6#7{%
+  \leavevmode\begingroup
+  \setbox\@tempboxa\hbox{%
+    \color@begingroup
+      \kern\fboxsep{#7}\kern\fboxsep
+    \color@endgroup}%
+  \hbox{%
+    % Here we calculate and shift for the depth.  Done in
+    % a group because one of the arguments might be \@tempdima
+    % (we could use \dimexpr instead without grouping).
+    \begingroup
+      \@tempdima#4\relax
+      \advance\@tempdima\fboxsep
+      \advance\@tempdima\dp\@tempboxa
+    \expandafter\endgroup\expandafter
+    \lower\the\@tempdima\hbox{%
+      \vbox{%
+        \hrule\@height#3\relax
+        #1%
+        \hbox{%
+          \vrule\@width#5\relax
+          \vbox{%
+            \vskip\fboxsep % maybe these should be parameters too
+            \copy\@tempboxa
+            \vskip\fboxsep}%
+          \vrule\@width#6\relax}%
+        #2%
+        \hrule\@height#4\relax}%
+    }%
+  }%
+  \endgroup
+}
+
+
+% A particular type of titled frame with continuation marks.  
+% Parameter #1 is the title, repeated on each page.
+\newenvironment{titled-frame}[1]{%
+  \def\FrameCommand{\fboxsep8pt\fboxrule2pt
+     \TitleBarFrame{\textbf{#1}}}%
+  \def\FirstFrameCommand{\fboxsep8pt\fboxrule2pt
+     \TitleBarFrame[$\blacktriangleright$]{\textbf{#1}}}%
+  \def\MidFrameCommand{\fboxsep8pt\fboxrule2pt
+     \TitleBarFrame[$\blacktriangleright$]{\textbf{#1\ (cont)}}}%
+  \def\LastFrameCommand{\fboxsep8pt\fboxrule2pt
+     \TitleBarFrame{\textbf{#1\ (cont)}}}%
+  \MakeFramed{\advance\hsize-20pt \FrameRestore}}%
+%  note: 8 + 2 + 8 + 2 = 20.  Don't use \width because the frame title
+%  could interfere with the width measurement.
+ {\endMakeFramed}
+
+% \TitleBarFrame[marker]{title}{contents}
+% Frame with a label at top, optional continuation marker at bottom right.
+% Frame color is TFFrameColor and title color is a contrasting TFTitleColor; 
+% both need to be defined before use.  The frame itself use \fboxrule and
+% \fboxsep.  If the title is omitted entirely, the title bar is omitted
+% (use a blank space to force a blank title bar).
+% 
+\newcommand\TitleBarFrame[3][]{\begingroup
+  \ifx\delimiter#1\delimiter
+    \let\TF@conlab\@empty
+  \else
+    \def\TF@conlab{% continuation label
+     \nointerlineskip
+     \smash{\rlap{\kern\wd\@tempboxa\kern\fboxrule\kern\fboxsep #1}}}%
+  \fi
+  \let\TF@savecolor\current@color
+  \textcolor{TFFrameColor}{%
+  \CustomFBox
+    {\TF@Title{#2}}{\TF@conlab}%
+    \fboxrule\fboxrule\fboxrule\fboxrule
+    {\let\current@color\TF@savecolor\set@color #3}%
+  }\endgroup
+}
+
+% The title bar for \TitleBarFrame
+\newcommand\TF@Title[1]{%
+  \ifx\delimiter#1\delimiter\else
+  \kern-0.04pt\relax
+  \begingroup
+  \setbox\@tempboxa\vbox{%
+   \kern0.8ex
+   \hbox{\kern\fboxsep\textcolor{TFTitleColor}{#1}\vphantom{Tj)}}%
+   \kern0.8ex}%
+  \hrule\@height\ht\@tempboxa
+  \kern-\ht\@tempboxa
+  \box\@tempboxa
+  \endgroup
+  \nointerlineskip 
+  \kern-0.04pt\relax
+  \fi
+}
+
+\chardef\FrameRestore=\catcode`\| % for debug
+\catcode`\|=\catcode`\% % (debug: insert space after backslash)
+
+\newlength\OuterFrameSep \OuterFrameSep=\maxdimen \relax
+
+\def\MakeFramed#1{\par
+ % apply default \OuterFrameSep = \topsep
+ \ifdim\OuterFrameSep=\maxdimen \OuterFrameSep\topsep \fi
+ % measure added width and height; call result \width and \height
+ \fb@sizeofframe\FrameCommand
+ \let\width\fb@frw \let\height\fb@frh
+ % insert pre-penalties and skips
+ \begingroup
+ \skip@\lastskip
+ \if@nobreak\else 
+    \penalty9999 % updates \page parameters
+    \ifdim\pagefilstretch=\z@ \ifdim\pagefillstretch=\z@
+       % not infinitely stretchable, so encourage a page break here
+       \edef\@tempa{\the\skip@}%
+       \ifx\@tempa\zero@glue \penalty-30
+       \else \vskip-\skip@ \penalty-30 \vskip\skip@
+    \fi\fi\fi
+    \penalty\z@
+    % Give a stretchy breakpoint that will always be taken in preference
+    % to the \penalty 9999 used to update page parameters.  The cube root
+    % of 10000/100 indicates a multiplier of 0.21545, but the maximum 
+    % calculated badness is really 8192, not 10000, so the multiplier
+    % is 0.2301. 
+    \advance\skip@ \z@ plus-.5\baselineskip
+    \advance\skip@ \z@ plus-.231\height
+    \advance\skip@ \z@ plus-.231\skip@
+    \advance\skip@ \z@ plus-.231\OuterFrameSep
+    \vskip-\skip@ \penalty 1800 \vskip\skip@
+ \fi
+ \addvspace{\OuterFrameSep}%
+ \endgroup
+ % clear out pending page break
+ \penalty\@M \vskip 2\baselineskip \vskip\height
+ \penalty9999 \vskip -2\baselineskip \vskip-\height
+ \penalty9999 % updates \pagetotal
+|\message{After clearout, \pagetotal=\the\pagetotal, \pagegoal=\the\pagegoal. }%
+ \fb@adjheight 
+ \setbox\@tempboxa\vbox\bgroup
+   #1% Modifications to \hsize (can use \width and \height)
+   \textwidth\hsize \columnwidth\hsize
+}
+
+\def\endMakeFramed{\par
+     \kern\z@
+     \hrule\@width\hsize\@height\z@ % possibly bad
+     \penalty-100 % (\hrule moves depth into height)
+ \egroup
+%%%   {\showoutput\showbox\@tempboxa}%
+ \begingroup 
+   \fb@put@frame\FrameCommand\FirstFrameCommand
+ \endgroup
+ \@minipagefalse % In case it was set and not cleared
+}
+
+% \fb@put@frame takes the contents of \@tempboxa and puts all, or a piece,
+% of it on the page with a frame (\FrameCommand, \FirstFrameCommand,
+% \MidFrameCommand, or \LastFrameCommand).  It recurses until all of 
+% \@tempboxa has been used up. (\@tempboxa must have zero depth.)
+% #1 = attempted framing command, if no split
+% #2 = framing command if split
+% First iteration: Try to fit with \FrameCommand. If it does not fit,
+% split for \FirstFrameCommand.
+% Later iteration: Try to fit with \LastFrameCommand. If it does not
+% fit, split for \MidFrameCommand.
+\def\fb@put@frame#1#2{\relax
+ \ifdim\pagegoal=\maxdimen \pagegoal\vsize \fi
+|   \message{=============== Entering putframe ====================^^J
+|     \pagegoal=\the\pagegoal,  \pagetotal=\the\pagetotal. }%
+ \ifinner
+   \fb@putboxa#1%
+   \fb@afterframe
+ \else
+  \dimen@\pagegoal \advance\dimen@-\pagetotal % natural space left on page
+  \ifdim\dimen@<2\baselineskip % Too little room on page
+|   \message{Page has only \the\dimen@\space room left; eject. }%
+    \eject \fb@adjheight \fb@put@frame#1#2%
+  \else % there's appreciable room left on the page
+     \fb@sizeofframe#1%
+|    \message{\string\pagetotal=\the\pagetotal,
+|        \string\pagegoal=\the\pagegoal,
+|        \string\pagestretch=\the\pagestretch,
+|        \string\pageshrink=\the\pageshrink,
+|        \string\fb@frh=\the\fb@frh. \space}
+|    \message{^^JBox of size \the\ht\@tempboxa\space}%
+     \begingroup % temporarily set \dimen@ to be...
+     \advance\dimen@.8\pageshrink  % maximum space available on page
+     \advance\dimen@-\fb@frh\relax % max space available for frame's contents
+%%% LOOKS SUBTRACTED AND ADDED, SO DOUBLE ACCOUNTING!
+     \expandafter\endgroup
+     % expand \ifdim, then restore \dimen@ to real room left on page
+     \ifdim\dimen@>\ht\@tempboxa % whole box does fit
+|       \message{fits in \the\dimen@. }%
+        % ToDo: Change this to use vsplit anyway to capture the marks
+        % MERGE THIS WITH THE else CLAUSE!!!
+        \fb@putboxa#1%
+        \fb@afterframe
+     \else % box must be split
+|       \message{must be split to fit in \the\dimen@. }%
+        % update frame measurement to use \FirstFrameCommand or \MidFrameCommand
+        \fb@sizeofframe#2%
+        \setbox\@tempboxa\vbox{% simulate frame and flexiblity of the page:
+           \vskip \fb@frh \@plus\pagestretch \@minus.8\pageshrink
+           \kern137sp\kern-137sp\penalty-30
+           \unvbox\@tempboxa}%
+        \edef\fb@resto@set{\boxmaxdepth\the\boxmaxdepth 
+                           \splittopskip\the\splittopskip}%
+        \boxmaxdepth\z@ \splittopskip\z@
+|       \message{^^JPadded box of size \the\ht\@tempboxa\space split to \the\dimen@}%
+        % Split box here
+        \setbox\tw@\vsplit\@tempboxa to\dimen@
+|       \toks99\expandafter{\splitfirstmark}%
+|       \toks98\expandafter{\splitbotmark}%
+|       \message{Marks are: \the\toks99, \the\toks98. }%
+        \setbox\tw@\vbox{\unvbox\tw@}% natural-sized
+|       \message{Natural height of split box is \the\ht\tw@, leaving 
+|          \the\ht\@tempboxa\space remainder. }%
+        % If the split-to size > (\vsize-\topskip), then set box to full size.
+        \begingroup
+        \advance\dimen@\topskip
+        \expandafter\endgroup
+        \ifdim\dimen@>\pagegoal
+|         \message{Frame is big -- Use up the full column. }%
+          \dimen@ii\pagegoal
+          \advance\dimen@ii -\topskip
+          \advance\dimen@ii \FrameHeightAdjust\relax
+        \else  % suspect this is implemented incorrectly:
+          % If the split-to size > feasible room_on_page, rebox it smaller.
+          \advance\dimen@.8\pageshrink
+          \ifdim\ht\tw@>\dimen@
+|           \message{Box too tall; rebox it to \the\dimen@. }%
+            \dimen@ii\dimen@
+          \else % use natural size
+            \dimen@ii\ht\tw@
+          \fi
+        \fi
+        % Re-box contents to desired size \dimen@ii
+        \advance\dimen@ii -\fb@frh
+        \setbox\tw@\vbox to\dimen@ii \bgroup
+        % remove simulated frame and page flexibility:
+        \vskip -\fb@frh \@plus-\pagestretch \@minus-.8\pageshrink
+        \unvbox\tw@ \unpenalty\unpenalty
+        \ifdim\lastkern=-137sp % whole box went to next page
+|          \message{box split at beginning! }%
+           % need work here???
+           \egroup \fb@resto@set \eject % (\vskip for frame size was discarded) 
+           \fb@adjheight
+           \fb@put@frame#1#2% INSERTED ???
+        \else % Got material split off at the head
+           \egroup \fb@resto@set
+           \ifvoid\@tempboxa % it all fit after all
+|             \message{box split at end! }%
+              \setbox\@tempboxa\box\tw@
+              \fb@putboxa#1%
+              \fb@afterframe
+           \else % it really did split
+|             \message{box split as expected. Its reboxed height is \the\ht\tw@. }%
+              \ifdim\wd\tw@>\z@
+                \wd\tw@\wd\@tempboxa
+                \centerline{#2{\box\tw@}}%  ??? \centerline bad idea
+              \else
+|               \message{Zero width means likely blank. Don't frame it (guess)}%
+                \box\tw@
+              \fi
+              \hrule \@height\z@ \@width\hsize
+              \eject
+              \fb@adjheight
+              \fb@put@frame\LastFrameCommand\MidFrameCommand
+  \fi\fi\fi\fi\fi
+}
+
+\def\fb@putboxa#1{%
+  \ifvoid\@tempboxa
+    \PackageWarning{framed}{Boxa is void -- discard it. }%
+  \else
+|   \message{Frame and place boxa. }%
+|   %{\showoutput\showbox\@tempboxa}%
+    \centerline{#1{\box\@tempboxa}}%
+  \fi
+}
+
+\def\fb@afterframe{%
+    \nointerlineskip \null %{\showoutput \showlists}
+    \penalty-30 \vskip\OuterFrameSep \relax
+}
+
+% measure width and height added by frame (#1 = frame command)
+% call results \fb@frw and \fb@frh
+% todo: a mechanism to handle wide frame titles 
+\newdimen\fb@frw
+\newdimen\fb@frh
+\def\fb@sizeofframe#1{\begingroup
+ \setbox\z@\vbox{\vskip-5in \hbox{\hskip-5in 
+   #1{\hbox{\vrule \@height 4.7in \@depth.3in \@width 5in}}}%
+   \vskip\z@skip}%
+|  \message{Measuring frame addition for \string#1 in \@currenvir\space 
+|    gives ht \the\ht\z@\space and wd \the\wd\z@. }%
+|  %{\showoutput\showbox\z@}%
+ \global\fb@frw\wd\z@ \global\fb@frh\ht\z@
+ \endgroup
+}
+
+\def\fb@adjheight{%
+  \vbox to\FrameHeightAdjust{}% get proper baseline skip from above.
+  \penalty\@M \nointerlineskip
+  \vskip-\FrameHeightAdjust
+  \penalty\@M} % useful for tops of pages
+
+\edef\zero@glue{\the\z@skip}
+
+\catcode`\|=\FrameRestore
+
+% Provide configuration commands:
+\providecommand\FrameCommand{%
+ \setlength\fboxrule{\FrameRule}\setlength\fboxsep{\FrameSep}%
+ \fbox}
+\@ifundefined{FrameRule}{\newdimen\FrameRule \FrameRule=\fboxrule}{}
+\@ifundefined{FrameSep} {\newdimen\FrameSep  \FrameSep =3\fboxsep}{}
+\providecommand\FirstFrameCommand{\FrameCommand}
+\providecommand\MidFrameCommand{\FrameCommand}
+\providecommand\LastFrameCommand{\FrameCommand}
+
+% Height of frame above first baseline when frame starts a page:
+\providecommand\FrameHeightAdjust{6pt}
+
+% \FrameRestore has parts of \@parboxrestore, performing a similar but 
+% less complete restoration of the default layout.  See how it is used in
+% the "settings" argument of \MakeFrame.  Though not a parameter, \hsize 
+% should be set to the desired total line width available inside the
+% frame before invoking \FrameRestore.  
+\def\FrameRestore{%
+   \let\if@nobreak\iffalse
+   \let\if@noskipsec\iffalse
+   \let\-\@dischyph
+   \let\'\@acci\let\`\@accii\let\=\@acciii
+   %  \message{FrameRestore:
+   %    \@totalleftmargin=\the \@totalleftmargin,
+   %    \rightmargin=\the\rightmargin, 
+   %    \@listdepth=\the\@listdepth.  }%
+   % Test if we are in a list (or list-like paragraph)
+   \ifnum \ifdim\@totalleftmargin>\z@ 1\fi  
+          \ifdim\rightmargin>\z@ 1\fi
+          \ifnum\@listdepth>\z@ 1\fi 0>\z@
+     %     \message{In a list: \linewidth=\the\linewidth, \@totalleftmargin=\the\@totalleftmargin,
+     %       \parshape=\the\parshape, \columnwidth=\the\columnwidth, \hsize=\the\hsize, 
+     %       \labelwidth=\the\labelwidth. }%
+     \@setminipage % snug fit around the item.  I would like this to be non-global.
+     % Now try to propageate changes of width from \hsize to list parameters.
+     % This is deficient, but a more advanced way to indicate modification to text 
+     % dimensions is not (yet) provided; in particular, no separate left/right
+     % adjustment.
+     \advance\linewidth-\columnwidth \advance\linewidth\hsize
+     \parshape\@ne \@totalleftmargin \linewidth
+   \else % Not in list
+     \linewidth=\hsize
+     %\message{No list, set \string\linewidth=\the\hsize. }%
+   \fi
+   \sloppy
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr.css	(revision 2476)
@@ -0,0 +1,30 @@
+.knitr .inline {
+  background-color: #f7f7f7;
+  border:solid 1px #B0B0B0;
+}
+.error {
+	font-weight: bold;
+	color: #FF0000;
+}
+.warning {
+	font-weight: bold;
+}
+.message {
+	font-style: italic;
+}
+.source, .output, .warning, .error, .message {
+	padding: 0 1em;
+  border:solid 1px #F7F7F7;
+}
+.source {
+  background-color: #F7F7F7;
+}
+.rimage .left {
+  text-align: left;
+}
+.rimage .right {
+  text-align: right;
+}
+.rimage .center {
+  text-align: center;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/toggleR.js
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/toggleR.js	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/toggleR.js	(revision 2476)
@@ -0,0 +1,16 @@
+// toggle visibility of R source blocks in R Markdown output
+function toggle_R() {
+  var x = document.getElementsByClassName('r');
+  if (x.length == 0) return;
+  function toggle_vis(o) {
+    var d = o.style.display;
+    o.style.display = (d == 'block' || d == '') ? 'none':'block';
+  }
+
+  for (i = 0; i < x.length; i++) {
+    var y = x[i];
+    if (y.tagName.toLowerCase() === 'pre') toggle_vis(y);
+  }
+}
+
+document.write('<button type="button" onclick="toggle_R();" style="position: absolute; top: 0; right: 0;">Hide/Show Source</button>')

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/toggleR.js
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr-template.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr-template.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr-template.Rmd	(revision 2476)
@@ -0,0 +1,20 @@
+`r if (exists('.knitr.title')) I(paste('#', .knitr.title, sep = ''))`
+
+`r if (exists('.knitr.author')) I(.knitr.author)`
+
+This report was automatically generated with the R package **knitr**
+(version `r packageVersion('knitr')`).
+
+```{r %sCHUNK_LABEL_HERE}
+```
+
+The R session information (including the OS info, R version and all
+packages used):
+
+```{r session-info, cache=FALSE}
+sessionInfo()
+Sys.time()
+```{r clean-up, include=FALSE}
+if (exists('.knitr.title')) rm(.knitr.author)
+if (exists('.knitr.author')) rm(.knitr.author)
+```
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/tweak_bib.csv
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/tweak_bib.csv	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/tweak_bib.csv	(revision 2476)
@@ -0,0 +1,44 @@
+"package","author"
+"BiplotGUI","Anthony la Grange and  N. J. le Roux and P.J. Rousseeuw and I. Ruts and J. W. Tukey"
+"CircStats","Ulric Lund and Claudio Agostinelli"
+"ElemStatLearn","Kjetil Halvorsen"
+"Fahrmeir","Kjetil Halvorsen"
+"Hmisc","Harrell, Jr., Frank E"
+"Hmisc","Frank E. {Harrell, Jr.}"
+"R2SWF","Yixuan Qiu and Yihui Xie and Cameron Bracken"
+"R2WinBUGS","Andrew Gelman and Sibylle Sturtz and Uwe Ligges and Gregor Gorjanc and Jouni Kerman"
+"RODBC","Brian Ripley and Michael Lapsley"
+"RgoogleMaps","Markus Loecher"
+"Sleuth2","F. L. Ramsey and D. W. Schafer and Jeannie Sifneos and Berwin A. Turlach"
+"ade4","Stéphane Dray and Anne-Béatrice Dufour and Jean Thioulouse and Thibaut Jombart and Sandrine Pavoine and Jean R. Lobry and Sébastien Ollier and Aurélie Siberchicot and Daniel Chessel"
+"akima","H. Akima and Albrecht Gebhardt and Thomas Petzoldt and Martin Maechler"
+"ash","David W. Scott and Albrecht Gebhardt and Stephen Kaluzny"
+"bcpa","Jose Claudio Faria and Clarice Garcia Borges Demetrio"
+"bitops","Steve Dutky and Martin Maechler"
+"cacheSweave","Roger D. Peng"
+"cat","Ted Harding and Fernando Tusell and Joseph L. Schafer"
+"contrast","Max Kuhn and Steve Weston and Jed Wing and James Forester"
+"date","Terry Therneau and Thomas Lumley and Kjetil Halvorsen and Kurt Hornik"
+"digest","Dirk Eddelbuettel"
+"epiR","Mark Stevenson and Telmo Nunes and Cord Heuer and Jonathon Marshall and Javier Sanchez and Ron Thornton and Jeno Reiczigel and Jim Robison-Cox and Paola Sebastiani and Peter Solymos"
+"flashClust","Fionn Murtagh and {R development team} and Peter Langfelder"
+"foreach","{Revolution Analytics} and Steve Weston}"
+"fortunes","Achim Zeileis and the R community"
+"gWidgets","John Verzani"
+"gee","Vincent J Carey and Thomas Lumley and Brian Ripley"
+"gmodels","Gregory R. Warnes andBen Bolker and Thomas Lumley and Randall C Johnson and Randall C. Johnson"
+"hexbin","Dan Carr and Nicholas Lewin-Koh and Martin Maechler"
+"leaps","Thomas Lumley"
+"mapproj","Doug McIlroy and Ray Brownrigg and Thomas P Minka and Roger Bivand"
+"maps","Ray Brownrigg"
+"mathgraph","Patrick J. Burns and Nick Efthymiou and Claus Dethlefsen"
+"oz","Bill Venables and Kurt Hornik"
+"pbivnorm","Alan Genz and Brenton Kenkel"
+"pscl","Simon Jackman and Alex Tahk and Achim Zeileis and Christina Maimone and Jim Fearon"
+"quadprog","Berwin A. Turlach and Andreas Weingessel"
+"randomForest","Leo Breiman and Adele Cutler and Andy Liaw and Matthew Wiener"
+"rgl","Daniel Adler and Duncan Murdoch"
+"rms","Frank E. {Harrell, Jr.}"
+"robustbase","Valentin Todorov and Andreas Ruckstuhl and Matias Salibian-Barrera and Tobias Verbeke and Manuel Koller and Martin Maechler"
+"sm","Adrian Bowman and Adelchi Azzalini"
+"tuneR","Uwe Ligges"
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/Sweavel.sty
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/Sweavel.sty	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/Sweavel.sty	(revision 2476)
@@ -0,0 +1,60 @@
+% Source: http://biostat.mc.vanderbilt.edu/wiki/pub/Main/SweaveTemplate/Sweavel.sty
+% Author: Frank Harrell (with slight tweaks by Yihui Xie)
+% Usage: \usepackage{Sweavel}
+% To change size of R code and output, use e.g.: \def\Sweavesize{\normalsize}
+% To change just the size of output, use e.g.: \def\Routsize{\smaller[2]}
+% To change colors of R code, output, and commands, use e.g.:
+% \def\Rcolor{\color{black}}
+% \def\Routcolor{\color{green}}
+% \def\Rcommentcolor{\color{red}}
+% To change background color or R code and/or output, use e.g.:
+% \def\Rbackground{\color{white}}
+% \def\Routbackground{\color{white}}
+% To use rgb specifications use \color[rgb]{ , , }
+% To use gray scale use e.g. \color[gray]{0.5}
+% If you change any of these after the first chunk is produced, the
+% changes will have effect only for the next chunk.
+
+
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{Sweavel}{}  % substitute for Sweave.sty using
+                             % listings package with relsize
+\RequirePackage{listings,fancyvrb,color,relsize}
+
+\providecommand{\Sweavesize}{\smaller}
+\providecommand{\Routsize}{\Sweavesize}
+
+\providecommand{\Rcolor}{\color[rgb]{0, 0.5, 0.5}}
+\providecommand{\Routcolor}{\color[rgb]{0.461, 0.039, 0.102}}
+\providecommand{\Rcommentcolor}{\color[rgb]{0.101, 0.043, 0.432}}
+
+\providecommand{\Rbackground}{\color[gray]{0.91}}
+\providecommand{\Routbackground}{\color[gray]{0.935}}
+% Can specify \color[gray]{1} for white background or just \color{white}
+
+\lstdefinestyle{Rstyle}{fancyvrb=false,escapechar=`,language=R,%
+                        basicstyle={\Rcolor\Sweavesize},% some want \ttfamily too
+                        backgroundcolor=\Rbackground,%
+                        showstringspaces=false,%
+                        keywordstyle=\Rcolor,%
+                        commentstyle={\Rcommentcolor\ttfamily\itshape},%
+                        literate={<-}{{$\leftarrow$}}2{<<-}{{$\twoheadleftarrow$}}2{~}{{$\sim$}}1{<=}{{$\leq$}}2{>=}{{$\geq$}}2{^}{{$^{\scriptstyle\wedge}$}}1,%
+                        alsoother={$},%
+                        alsoletter={.<-},%
+                        otherkeywords={!,!=,~,$,*,\&,\%/\%,\%*\%,\%\%,<-,<<-,/},%
+                        escapeinside={(*}{*)}}%
+% Other options of interest:
+% frame=single,framerule=0.1pt,framesep=1pt,rulecolor=\color{blue},
+% numbers=left,numberstyle=\tiny,stepnumber=1,numbersep=7pt,
+% keywordstyle={\bf\Rcolor}
+
+\lstdefinestyle{Routstyle}{fancyvrb=false,literate={~}{{$\sim$}}1{R^2}{{$R^{2}$}}2{^}{{$^{\scriptstyle\wedge}$}}1{R-squared}{{$R^{2}$}}2,%
+ frame=single,framerule=0.2pt,framesep=1pt,basicstyle=\Routcolor\Routsize\ttfamily,%
+ backgroundcolor=\Routbackground}
+
+\newenvironment{Schunk}{}{}
+\lstnewenvironment{Sinput}{\lstset{style=Rstyle}}{}
+\lstnewenvironment{Scode}{\lstset{style=Rstyle}}{}
+\lstnewenvironment{Soutput}{\lstset{style=Routstyle}}{}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr-template.Rhtml
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr-template.Rhtml	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/knitr-template.Rhtml	(revision 2476)
@@ -0,0 +1,34 @@
+<!--begin.rcode setup,include=FALSE,cache=FALSE
+    options(width=90)
+    if (!exists('.knitr.title')) .knitr.title = 'A Report Generated by knitr'
+    .knitr.author = if (exists('.knitr.author')) paste('by', .knitr.author) else ''
+    end.rcode-->
+<!DOCTYPE html>
+<html>
+<head>
+  <script src="http://yihui.name/media/js/center-images.js"></script>
+  <title><!--rinline I(.knitr.title) --></title>
+</head>
+<body>
+
+  <p>This report is automatically generated with the R
+    package <a href="http://yihui.name/knitr"><strong>knitr</strong></a>
+    (version <!--rinline packageVersion('knitr') -->)
+    <!--rinline I(.knitr.author) -->.</p>
+
+<!--begin.rcode %sCHUNK_LABEL_HERE
+    end.rcode-->
+
+  <p>The R session information (including the OS info, R version and all
+    packages used):</p>
+
+<!--begin.rcode session-info, cache=FALSE
+    sessionInfo()
+    Sys.time()
+    end.rcode-->
+<!--begin.rcode clean-up, include=FALSE
+    rm(.knitr.author); rm(.knitr.author)
+end.rcode-->
+
+</body>
+</html>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/vignette.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/vignette.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/vignette.html	(revision 2476)
@@ -0,0 +1,20 @@
+<script type="text/javascript">
+window.onload = function() {
+  var i, fig = 1, caps = document.getElementsByClassName('caption');
+  for (i = 0; i < caps.length; i++) {
+    var cap = caps[i];
+    if (cap.parentElement.className !== 'figure' || cap.nodeName !== 'P')
+      continue;
+    cap.innerHTML = '<span>Figure ' + fig + ':</span> ' + cap.innerHTML;
+    fig++;
+  }
+  fig = 1;
+  caps = document.getElementsByTagName('caption');
+  for (i = 0; i < caps.length; i++) {
+    var cap = caps[i];
+    if (cap.parentElement.nodeName !== 'TABLE') continue;
+    cap.innerHTML = '<span>Table ' + fig + ':</span> ' + cap.innerHTML;
+    fig++;
+  }
+}
+</script>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/vignette.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/R.css	(revision 2476)
@@ -0,0 +1,55 @@
+* {
+	font-family: "Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Arial, sans-serif;
+	font-size: 14px;
+}
+body {
+  padding: 0 5px; 
+  margin: 0 auto; 
+  width: 80%;
+  max-width: 60em; /* 960px */
+}
+
+h1, h2, h3, h4, h5, h6 {
+	color: #666;
+}
+h1, h2 {
+	text-align: center;
+}
+h1 {
+	font-size: x-large;
+}
+h2, h3 {
+	font-size: large;
+}
+h4, h6 {
+	font-style: italic;
+}
+h3 {
+	border-left: solid 5px #ddd;
+	padding-left: 5px;
+	font-variant: small-caps;
+}
+
+p img {
+	display: block;
+	margin: auto;
+}
+
+span, code, pre {
+	font-family: Monaco, "Lucida Console", "Courier New", Courier, monospace;
+}
+span.acronym {}
+span.env {
+	font-style: italic;
+}
+span.file {}
+span.option {}
+span.pkg {
+	font-weight: bold;
+}
+span.samp{}
+
+dt, p code {
+	background-color: #F7F7F7;
+}
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/gWidgetsWWW2-knitr.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/gWidgetsWWW2-knitr.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/gWidgetsWWW2-knitr.R	(revision 2476)
@@ -0,0 +1,15 @@
+library(gWidgetsWWW2)
+w = gwindow('An R Notebook')
+sb = gstatusbar('Powered by Rook, gWidgetsWWW2 and knitr', container = w)
+g = gframe('An R Notebook based on knitr', use.scrollwindow = TRUE,
+           horizontal = FALSE, container = w)
+gbutton('Knit', container = g, handler = function(h, ...) {
+  library(knitr)
+  svalue(g3) = try(knit2html(text = svalue(g1), fragment.only = TRUE))
+})
+g0 = ggroup(container = g)
+code = readLines(system.file('examples', 'knitr-minimal.Rmd', package = 'knitr'))
+# g1 = gtext(code, container = g, use.codemirror = TRUE, width = 500)
+g1 = gtext(code, container = g0, width = 500, height = 500)
+g2 = ggroup(cont = g0, expand = TRUE)
+g3 = ghtml('results here', container = g2)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/tikz2pdf.tex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/tikz2pdf.tex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/tikz2pdf.tex	(revision 2476)
@@ -0,0 +1,11 @@
+\documentclass{article}
+\include{preview}
+\usepackage[pdftex,active,tightpage]{preview}
+\usepackage{amsmath}
+\usepackage{tikz}
+\usetikzlibrary{matrix}
+\begin{document}
+\begin{preview}
+%% TIKZ_CODE %%
+\end{preview}
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/docco-classic.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/docco-classic.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/docco-classic.css	(revision 2476)
@@ -0,0 +1,124 @@
+/* Derived from the Docco package by Jeremy Ashkenas: https://github.com/jashkenas/docco/ */
+body {
+    font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
+    height:100%;
+    font-size: 16px;
+    line-height: 24px;
+    color: #30404f;
+    margin: 0;
+    padding: 0;
+}
+
+h1, h2, h3, h4, h5, h6 {
+    color: #112233;
+    line-height: 1em;
+    font-weight: normal;
+    margin: 0 0 15px 0;
+}
+
+p {
+    margin: 0 0 15px 0;
+    font-size:17px;
+}
+
+#footer p{
+    margin:0;
+    font-size:12px;
+    text-align: center;
+}
+
+a{
+    color:#0088cc;
+    text-decoration:none;
+}
+
+a:hover,a:focus{
+    color:#005580;
+    text-decoration:underline;
+}
+
+#container {
+    position: relative;
+    margin: 0;
+    height:100%;
+}
+
+body > #container { height: auto; min-height: 100%; }
+
+table{
+    width:100%;
+    border: 0;
+    outline: 0;
+}
+
+td.docs{
+    width: 50%;
+    text-align: left;
+    vertical-align: top;
+    padding: 10px 25px 1px 50px;
+}
+
+
+td.code{
+    background: #f5f5ff;
+    padding: 10px 25px 1px 50px;
+    overflow-x: hidden;
+    vertical-align: top;
+}
+
+code{
+    font-size:12px;
+    margin: 0;
+    padding: 0;
+}
+
+td.docs code{
+    background: #f8f8ff;
+    border: 1px solid #dedede;
+    font-size: 80%;
+    padding: 0 0.2em;
+}
+
+td.docs img{
+  max-width: 100%;
+}
+
+pre code{
+    padding:2px 4px;
+    background:#f5f5ff;
+}
+
+td.code pre code{
+    line-height: 18px;
+}
+
+.pilwrap {
+    position: relative;
+}
+.pilcrow {
+    font: 12px Arial;
+    text-decoration: none;
+    color: rgb(69, 69, 69);
+    position: absolute;
+    top: 3px;
+    left: -20px;
+    padding: 1px 2px;
+    opacity: 0;
+}
+
+td.docs:hover .pilcrow {
+    opacity: 1;
+}
+
+blockquote {
+    border-left: 4px solid #DDD;
+    padding: 0 15px;
+    color: #777;
+}
+div.handler{
+      width: 5px;
+      padding: 0;
+      cursor: col-resize;
+      position: absolute;
+      z-index: 5;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/docco-classic.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/docco-template.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/docco-template.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/docco-template.html	(revision 2476)
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<title>#!title#</title>
+<link rel="stylesheet" media="all" href="https://jashkenas.github.io/docco/resources/linear/public/stylesheets/normalize.css" />
+<link rel="stylesheet" media="all" href="https://jashkenas.github.io/docco/resources/linear/docco.css" />
+<link href='https://yihui.github.io/media/css/docco-linear.css' rel='stylesheet' type='text/css'>
+<style type="text/css">
+img{display:block;margin:auto;}
+.container{width:auto;max-width:920px;}
+.page{width:auto;max-width:800px;}
+.page pre{width:100%;max-width:768px;}
+pre, code{font-size:90%;}
+</style>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/highlight.min.js"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/languages/r.min.js"></script>
+<script>hljs.initHighlightingOnLoad();</script>
+<script src="https://yihui.github.io/media/js/center-images.js"></script>
+#!mathjax#
+#!header#
+</head>
+
+<body>
+  <div class="container">
+    <div class="page">
+#!html_output#
+      <div class="fleur">h</div>
+    </div>
+  </div>
+</body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/misc/docco-template.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/NAMESPACE	(revision 2476)
@@ -0,0 +1,128 @@
+S3method("$",knitr_strict_list)
+S3method(knit_print,default)
+S3method(knit_print,knit_asis)
+S3method(knit_print,knitr_kable)
+S3method(print,knitr_kable)
+S3method(process_group,block)
+S3method(process_group,inline)
+S3method(process_tangle,block)
+S3method(process_tangle,inline)
+S3method(wrap,character)
+S3method(wrap,default)
+S3method(wrap,error)
+S3method(wrap,html_screenshot)
+S3method(wrap,knit_asis)
+S3method(wrap,knit_embed_url)
+S3method(wrap,knit_image_paths)
+S3method(wrap,list)
+S3method(wrap,message)
+S3method(wrap,recordedplot)
+S3method(wrap,source)
+S3method(wrap,warning)
+export(Sweave2knitr)
+export(all_labels)
+export(all_patterns)
+export(all_rcpp_labels)
+export(asis_output)
+export(clean_cache)
+export(combine_words)
+export(current_input)
+export(dep_auto)
+export(dep_prev)
+export(engine_output)
+export(extract_raw_output)
+export(fig_chunk)
+export(fig_path)
+export(hook_ffmpeg_html)
+export(hook_movecode)
+export(hook_optipng)
+export(hook_pdfcrop)
+export(hook_plot_asciidoc)
+export(hook_plot_custom)
+export(hook_plot_html)
+export(hook_plot_md)
+export(hook_plot_rst)
+export(hook_plot_tex)
+export(hook_plot_textile)
+export(hook_pngquant)
+export(hook_purl)
+export(hook_r2swf)
+export(hook_scianimator)
+export(image_uri)
+export(imgur_upload)
+export(include_app)
+export(include_graphics)
+export(include_url)
+export(inline_expr)
+export(kable)
+export(knit)
+export(knit2html)
+export(knit2pdf)
+export(knit2wp)
+export(knit_child)
+export(knit_engines)
+export(knit_exit)
+export(knit_expand)
+export(knit_filter)
+export(knit_global)
+export(knit_hooks)
+export(knit_meta)
+export(knit_meta_add)
+export(knit_params)
+export(knit_params_yaml)
+export(knit_patterns)
+export(knit_print)
+export(knit_rd)
+export(knit_rd_all)
+export(knit_theme)
+export(knit_watch)
+export(load_cache)
+export(normal_print)
+export(opts_chunk)
+export(opts_current)
+export(opts_hooks)
+export(opts_knit)
+export(opts_template)
+export(pandoc)
+export(pat_asciidoc)
+export(pat_brew)
+export(pat_html)
+export(pat_md)
+export(pat_rnw)
+export(pat_rst)
+export(pat_tex)
+export(pat_textile)
+export(plot_crop)
+export(purl)
+export(rand_seed)
+export(raw_output)
+export(read_chunk)
+export(read_demo)
+export(read_rforge)
+export(render_asciidoc)
+export(render_html)
+export(render_jekyll)
+export(render_latex)
+export(render_listings)
+export(render_markdown)
+export(render_rst)
+export(render_sweave)
+export(render_textile)
+export(restore_raw_output)
+export(rocco)
+export(rst2pdf)
+export(set_alias)
+export(set_header)
+export(set_parent)
+export(spin)
+export(spin_child)
+export(stitch)
+export(stitch_rhtml)
+export(stitch_rmd)
+export(wrap_rmd)
+export(write_bib)
+import(grDevices)
+import(graphics)
+import(methods)
+import(stats)
+import(utils)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/R/knitr
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/R/knitr	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/R/knitr	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/R/knitr.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/R/knitr.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/R/knitr.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/R/knitr.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/html/00Index.html	(revision 2476)
@@ -0,0 +1,337 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: A General-Purpose Package for Dynamic Report Generation in R</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> A General-Purpose Package for Dynamic Report Generation in R
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;knitr&rsquo; version 1.15.1</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+<li><a href="../demo">Code demos</a>.  Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="# "> </a>
+<a href="#A">A</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#H">H</a>
+<a href="#I">I</a>
+<a href="#K">K</a>
+<a href="#L">L</a>
+<a href="#N">N</a>
+<a href="#O">O</a>
+<a href="#P">P</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#V">V</a>
+<a href="#W">W</a>
+</p>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="knitr-package.html">knitr-package</a></td>
+<td>A general-purpose tool for dynamic report generation in R</td></tr>
+</table>
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="all_labels.html">all_labels</a></td>
+<td>Get all chunk labels in a document</td></tr>
+<tr><td style="width: 25%;"><a href="all_patterns.html">all_patterns</a></td>
+<td>All built-in patterns</td></tr>
+<tr><td style="width: 25%;"><a href="all_labels.html">all_rcpp_labels</a></td>
+<td>Get all chunk labels in a document</td></tr>
+<tr><td style="width: 25%;"><a href="asis_output.html">asis_output</a></td>
+<td>Mark an R object with a special class</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="clean_cache.html">clean_cache</a></td>
+<td>Clean cache files that are probably no longer needed</td></tr>
+<tr><td style="width: 25%;"><a href="combine_words.html">combine_words</a></td>
+<td>Combine multiple words into a single string</td></tr>
+<tr><td style="width: 25%;"><a href="current_input.html">current_input</a></td>
+<td>Query the current input filename</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="dep_auto.html">dep_auto</a></td>
+<td>Build automatic dependencies among chunks</td></tr>
+<tr><td style="width: 25%;"><a href="dep_prev.html">dep_prev</a></td>
+<td>Make later chunks depend on previous chunks</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="engine_output.html">engine_output</a></td>
+<td>An output wrapper for language engine output</td></tr>
+<tr><td style="width: 25%;"><a href="raw_output.html">extract_raw_output</a></td>
+<td>Mark character strings as raw output that should not be converted</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="fig_chunk.html">fig_chunk</a></td>
+<td>Obtain the figure filenames for a chunk</td></tr>
+<tr><td style="width: 25%;"><a href="fig_path.html">fig_path</a></td>
+<td>Path for figure files</td></tr>
+</table>
+
+<h2><a name="H">-- H --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="hook_animation.html">hook_ffmpeg_html</a></td>
+<td>Hooks to create animations in HTML output</td></tr>
+<tr><td style="width: 25%;"><a href="hook_document.html">hook_movecode</a></td>
+<td>Some potentially useful document hooks</td></tr>
+<tr><td style="width: 25%;"><a href="chunk_hook.html">hook_optipng</a></td>
+<td>Built-in chunk hooks to extend knitr</td></tr>
+<tr><td style="width: 25%;"><a href="chunk_hook.html">hook_pdfcrop</a></td>
+<td>Built-in chunk hooks to extend knitr</td></tr>
+<tr><td style="width: 25%;"><a href="hook_plot.html">hook_plot_asciidoc</a></td>
+<td>Default plot hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="chunk_hook.html">hook_plot_custom</a></td>
+<td>Built-in chunk hooks to extend knitr</td></tr>
+<tr><td style="width: 25%;"><a href="hook_plot.html">hook_plot_html</a></td>
+<td>Default plot hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="hook_plot.html">hook_plot_md</a></td>
+<td>Default plot hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="hook_plot.html">hook_plot_rst</a></td>
+<td>Default plot hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="hook_plot.html">hook_plot_tex</a></td>
+<td>Default plot hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="hook_plot.html">hook_plot_textile</a></td>
+<td>Default plot hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="chunk_hook.html">hook_pngquant</a></td>
+<td>Built-in chunk hooks to extend knitr</td></tr>
+<tr><td style="width: 25%;"><a href="chunk_hook.html">hook_purl</a></td>
+<td>Built-in chunk hooks to extend knitr</td></tr>
+<tr><td style="width: 25%;"><a href="hook_animation.html">hook_r2swf</a></td>
+<td>Hooks to create animations in HTML output</td></tr>
+<tr><td style="width: 25%;"><a href="hook_animation.html">hook_scianimator</a></td>
+<td>Hooks to create animations in HTML output</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="image_uri.html">image_uri</a></td>
+<td>Encode an image file to a data URI</td></tr>
+<tr><td style="width: 25%;"><a href="imgur_upload.html">imgur_upload</a></td>
+<td>Upload an image to imgur.com</td></tr>
+<tr><td style="width: 25%;"><a href="include_url.html">include_app</a></td>
+<td>Embed a URL as an HTML iframe or a screenshot in 'knitr' documents</td></tr>
+<tr><td style="width: 25%;"><a href="include_graphics.html">include_graphics</a></td>
+<td>Embed external images in 'knitr' documents</td></tr>
+<tr><td style="width: 25%;"><a href="include_url.html">include_url</a></td>
+<td>Embed a URL as an HTML iframe or a screenshot in 'knitr' documents</td></tr>
+<tr><td style="width: 25%;"><a href="inline_expr.html">inline_expr</a></td>
+<td>Wrap code using the inline R expression syntax</td></tr>
+</table>
+
+<h2><a name="K">-- K --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="kable.html">kable</a></td>
+<td>Create tables in LaTeX, HTML, Markdown and reStructuredText</td></tr>
+<tr><td style="width: 25%;"><a href="knit.html">knit</a></td>
+<td>Knit a document</td></tr>
+<tr><td style="width: 25%;"><a href="knit2html.html">knit2html</a></td>
+<td>Convert markdown to HTML using knit() and markdownToHTML()</td></tr>
+<tr><td style="width: 25%;"><a href="knit2pdf.html">knit2pdf</a></td>
+<td>Convert Rnw or Rrst files to PDF using knit() and texi2pdf() or rst2pdf()</td></tr>
+<tr><td style="width: 25%;"><a href="knit2wp.html">knit2wp</a></td>
+<td>Knit an R Markdown document and post it to WordPress</td></tr>
+<tr><td style="width: 25%;"><a href="knitr-package.html">knitr</a></td>
+<td>A general-purpose tool for dynamic report generation in R</td></tr>
+<tr><td style="width: 25%;"><a href="knit_child.html">knit_child</a></td>
+<td>Knit a child document</td></tr>
+<tr><td style="width: 25%;"><a href="knit_engines.html">knit_engines</a></td>
+<td>Engines of other languages</td></tr>
+<tr><td style="width: 25%;"><a href="knit_exit.html">knit_exit</a></td>
+<td>Exit knitting early</td></tr>
+<tr><td style="width: 25%;"><a href="knit_expand.html">knit_expand</a></td>
+<td>A simple macro preprocessor for templating purposes</td></tr>
+<tr><td style="width: 25%;"><a href="knit_filter.html">knit_filter</a></td>
+<td>Spell check filter for source documents</td></tr>
+<tr><td style="width: 25%;"><a href="knit_global.html">knit_global</a></td>
+<td>The global environment in which code chunks are evaluated</td></tr>
+<tr><td style="width: 25%;"><a href="knit_hooks.html">knit_hooks</a></td>
+<td>Hooks for R code chunks, inline R code and output</td></tr>
+<tr><td style="width: 25%;"><a href="knit_meta.html">knit_meta</a></td>
+<td>Metadata about objects to be printed</td></tr>
+<tr><td style="width: 25%;"><a href="knit_meta.html">knit_meta_add</a></td>
+<td>Metadata about objects to be printed</td></tr>
+<tr><td style="width: 25%;"><a href="knit_params.html">knit_params</a></td>
+<td>Extract knit parameters from a document</td></tr>
+<tr><td style="width: 25%;"><a href="knit_params_yaml.html">knit_params_yaml</a></td>
+<td>Extract knit parameters from YAML text</td></tr>
+<tr><td style="width: 25%;"><a href="knit_patterns.html">knit_patterns</a></td>
+<td>Patterns to match and extract R code in a document</td></tr>
+<tr><td style="width: 25%;"><a href="knit_print.html">knit_print</a></td>
+<td>A custom printing function</td></tr>
+<tr><td style="width: 25%;"><a href="knit_rd.html">knit_rd</a></td>
+<td>Knit package documentation</td></tr>
+<tr><td style="width: 25%;"><a href="knit_rd.html">knit_rd_all</a></td>
+<td>Knit package documentation</td></tr>
+<tr><td style="width: 25%;"><a href="knit_theme.html">knit_theme</a></td>
+<td>Syntax highlighting themes</td></tr>
+<tr><td style="width: 25%;"><a href="knit_watch.html">knit_watch</a></td>
+<td>Watch an input file continuously and knit it when it is updated</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="load_cache.html">load_cache</a></td>
+<td>Load the cache database of a code chunk</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="knit_print.html">normal_print</a></td>
+<td>A custom printing function</td></tr>
+</table>
+
+<h2><a name="O">-- O --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="opts_chunk.html">opts_chunk</a></td>
+<td>Default and current chunk options</td></tr>
+<tr><td style="width: 25%;"><a href="opts_chunk.html">opts_current</a></td>
+<td>Default and current chunk options</td></tr>
+<tr><td style="width: 25%;"><a href="opts_hooks.html">opts_hooks</a></td>
+<td>Hooks for code chunk options</td></tr>
+<tr><td style="width: 25%;"><a href="opts_knit.html">opts_knit</a></td>
+<td>Options for the knitr package</td></tr>
+<tr><td style="width: 25%;"><a href="opts_template.html">opts_template</a></td>
+<td>Template for creating reusable chunk options</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="pandoc.html">pandoc</a></td>
+<td>A Pandoc wrapper to convert documents to other formats</td></tr>
+<tr><td style="width: 25%;"><a href="pat_fun.html">pat_asciidoc</a></td>
+<td>Set regular expressions to read input documents</td></tr>
+<tr><td style="width: 25%;"><a href="pat_fun.html">pat_brew</a></td>
+<td>Set regular expressions to read input documents</td></tr>
+<tr><td style="width: 25%;"><a href="pat_fun.html">pat_html</a></td>
+<td>Set regular expressions to read input documents</td></tr>
+<tr><td style="width: 25%;"><a href="pat_fun.html">pat_md</a></td>
+<td>Set regular expressions to read input documents</td></tr>
+<tr><td style="width: 25%;"><a href="pat_fun.html">pat_rnw</a></td>
+<td>Set regular expressions to read input documents</td></tr>
+<tr><td style="width: 25%;"><a href="pat_fun.html">pat_rst</a></td>
+<td>Set regular expressions to read input documents</td></tr>
+<tr><td style="width: 25%;"><a href="pat_fun.html">pat_tex</a></td>
+<td>Set regular expressions to read input documents</td></tr>
+<tr><td style="width: 25%;"><a href="pat_fun.html">pat_textile</a></td>
+<td>Set regular expressions to read input documents</td></tr>
+<tr><td style="width: 25%;"><a href="plot_crop.html">plot_crop</a></td>
+<td>Crop a plot (remove the edges) using PDFCrop or ImageMagick</td></tr>
+<tr><td style="width: 25%;"><a href="knit.html">purl</a></td>
+<td>Knit a document</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="rand_seed.html">rand_seed</a></td>
+<td>An unevaluated expression to return .Random.seed if exists</td></tr>
+<tr><td style="width: 25%;"><a href="raw_output.html">raw_output</a></td>
+<td>Mark character strings as raw output that should not be converted</td></tr>
+<tr><td style="width: 25%;"><a href="read_chunk.html">read_chunk</a></td>
+<td>Read chunks from an external script</td></tr>
+<tr><td style="width: 25%;"><a href="read_chunk.html">read_demo</a></td>
+<td>Read chunks from an external script</td></tr>
+<tr><td style="width: 25%;"><a href="read_rforge.html">read_rforge</a></td>
+<td>Read source code from R-Forge</td></tr>
+<tr><td style="width: 25%;"><a href="output_hooks.html">render_asciidoc</a></td>
+<td>Set output hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="output_hooks.html">render_html</a></td>
+<td>Set output hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="output_hooks.html">render_jekyll</a></td>
+<td>Set output hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="output_hooks.html">render_latex</a></td>
+<td>Set output hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="output_hooks.html">render_listings</a></td>
+<td>Set output hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="output_hooks.html">render_markdown</a></td>
+<td>Set output hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="output_hooks.html">render_rst</a></td>
+<td>Set output hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="output_hooks.html">render_sweave</a></td>
+<td>Set output hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="output_hooks.html">render_textile</a></td>
+<td>Set output hooks for different output formats</td></tr>
+<tr><td style="width: 25%;"><a href="raw_output.html">restore_raw_output</a></td>
+<td>Mark character strings as raw output that should not be converted</td></tr>
+<tr><td style="width: 25%;"><a href="rocco.html">rocco</a></td>
+<td>Knit R Markdown using the classic Docco style</td></tr>
+<tr><td style="width: 25%;"><a href="rst2pdf.html">rst2pdf</a></td>
+<td>A wrapper for rst2pdf</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="set_alias.html">set_alias</a></td>
+<td>Set aliases for chunk options</td></tr>
+<tr><td style="width: 25%;"><a href="set_header.html">set_header</a></td>
+<td>Set the header information</td></tr>
+<tr><td style="width: 25%;"><a href="set_parent.html">set_parent</a></td>
+<td>Specify the parent document of child documents</td></tr>
+<tr><td style="width: 25%;"><a href="spin.html">spin</a></td>
+<td>Spin goat's hair into wool</td></tr>
+<tr><td style="width: 25%;"><a href="spin_child.html">spin_child</a></td>
+<td>Spin a child R script</td></tr>
+<tr><td style="width: 25%;"><a href="stitch.html">stitch</a></td>
+<td>Automatically create a report based on an R script and a template</td></tr>
+<tr><td style="width: 25%;"><a href="stitch.html">stitch_rhtml</a></td>
+<td>Automatically create a report based on an R script and a template</td></tr>
+<tr><td style="width: 25%;"><a href="stitch.html">stitch_rmd</a></td>
+<td>Automatically create a report based on an R script and a template</td></tr>
+<tr><td style="width: 25%;"><a href="Sweave2knitr.html">Sweave2knitr</a></td>
+<td>Convert Sweave to knitr documents</td></tr>
+</table>
+
+<h2><a name="V">-- V --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="vignette_engines.html">vignette_engines</a></td>
+<td>Package vignette engines</td></tr>
+</table>
+
+<h2><a name="W">-- W --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="wrap_rmd.html">wrap_rmd</a></td>
+<td>Wrap long lines in Rmd files</td></tr>
+<tr><td style="width: 25%;"><a href="write_bib.html">write_bib</a></td>
+<td>Generate BibTeX bibliography databases for R packages</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-refcard.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-refcard.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-refcard.Rmd	(revision 2476)
@@ -0,0 +1,76 @@
+---
+output:
+  pdf_document:
+    highlight: null
+    number_sections: yes
+    template: assets/template-refcard.tex
+---
+
+<!--
+%\VignetteEngine{knitr::rmarkdown}
+%\VignetteIndexEntry{knitr Reference Card}
+-->
+
+# Chunk Options
+
+`opts_chunk` controls global chunk options, e.g.
+`opts_chunk$set(tidy = FALSE)`, which can be overridden by local chunk
+options. See all options at <http://yihui.name/knitr/options>; some
+frequently used options:
+
+eval
+:   whether to evaluate the chunk
+
+echo
+:   whether to echo source code
+
+results
+:   `'markup'`, `'asis'`, `'hold'`, `'hide'`
+
+tidy
+:   whether to reformat R code
+
+cache
+:   whether to cache results
+
+fig.width, fig.height, out.width, out.height
+:   device and output size of figures
+
+include
+:   whether to include the chunk results in output
+
+child
+:   filenames of child documents
+
+engine
+:   language name (R, python, ...)
+
+
+# Functions
+
+`knit()`
+:   the main function in this package; knit input document and write
+    output
+
+`purl()`
+:   extract R code from an input document
+
+`spin()`
+:   spin goat's hair (an R script with roxygen comments) into wool (a
+    literate programming document to be passed to `knit()`)
+
+`stitch()`
+:   insert an R script into a template and compile the document
+
+`knit_hooks$set()`
+:   set or reset chunk and output [hooks](http://yihui.name/knitr/hooks)
+
+# Resources
+
+-   homepage: <http://yihui.name/knitr>
+-   development repository: <https://github.com/yihui/knitr>
+    ([CRAN](http://cran.rstudio.com/package=knitr),
+    [Rforge](http://rforge.net/knitr))
+-   examples: <https://github.com/yihui/knitr-examples>
+-   stackoverflow: <http://stackoverflow.com/tags/knitr/>
+-   mailing list: <https://groups.google.com/group/knitr>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-html.Rhtml
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-html.Rhtml	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-html.Rhtml	(revision 2476)
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html>
+<!--
+%\VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{An R HTML Vignette with knitr}
+-->
+<head>
+<meta charset="utf-8">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<style type="text/css">
+body,td{width:800px;margin:auto;}
+</style>
+  <title>An R HTML vignette with knitr</title>
+</head>
+<!--begin.rcode setup, include=FALSE
+library(knitr)
+# to base64 encode images
+opts_knit$set(upload.fun = image_uri)
+end.rcode-->
+
+<body>
+
+<p>This is an R HTML vignette. The file extension is <code>*.Rhtml</code>, and
+it has to include a special comment to tell R that this file needs to be
+compiled by <strong>knitr</strong>:</p>
+
+<pre>&lt;!--
+%\VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{The Title of Your Vignette}
+--&gt;
+</pre>
+
+<p>Now you can write R code chunks:</p>
+
+<!--begin.rcode cars-demo
+summary(cars)
+fit=lm(dist~speed, data=cars)
+summary(fit)
+end.rcode-->
+
+<p>You can also embed plots, for example:</p>
+
+<!--begin.rcode cars-plot, fig.width=7, fig.height=6, fig.align='center'
+par(mar=c(4,4,.1,.1))
+plot(cars, pch=19)
+end.rcode-->
+
+<p>For package vignettes, you need to encode images in base64 strings using the
+<code>knitr::image_uri()</code> function so that the image files are no longer
+needed after the vignette is compiled. For example, you can add this chunk in
+the beginning of a vignette:</p>
+
+<!--begin.rcode setup, eval=FALSE
+end.rcode-->
+
+</body>
+</html>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-linear.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-linear.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-linear.Rmd	(revision 2476)
@@ -0,0 +1,57 @@
+<!--
+%\VignetteEngine{knitr::docco_linear}
+%\VignetteIndexEntry{R Markdown with the Docco Linear Style}
+-->
+
+# R Markdown with the Docco Linear Style
+
+This is an example of Markdown vignettes using the [Docco style](http://jashkenas.github.io/docco/).
+
+## Docco
+
+To use the Docco style for Markdown vignettes in an R package, you need to
+
+- add `*.Rmd` files under the `vignettes` directory
+- add `Suggests: knitr` and `VignetteBuilder: knitr` to the `DESCRIPTION` file
+- specify the vignette engine `\VignetteEngine{knitr::docco_linear}` in the `Rmd` files (inside HTML comments)
+
+After building and installing the package, you can view vignettes via
+
+```r
+browseVignettes(package = 'Your_Package')
+```
+
+## Examples
+
+Below are some code chunks as examples.
+
+```{r hello, results='asis'}
+cat('_hello_ **markdown**!', '\n')
+```
+
+Normally you do not need any chunk options.
+
+```{r}
+1+1
+10:1
+rnorm(5)^2
+strsplit('hello, markdown vignettes', '')
+```
+
+Feel free to draw beautiful plots and write math $P(X>x)=\alpha/2$.
+
+```{r}
+n=300; set.seed(123)
+par(mar=c(4,4,.1,.1))
+plot(rnorm(n), rnorm(n), pch=21, cex=5*runif(n), col='white', bg='gray')
+```
+
+## How does it work
+
+The **markdown** package (>= v0.6.2) supports custom HTML templates, and the `docco` engine in **knitr** uses a custom template to compile Markdown to HTML:
+
+```{r header, eval=FALSE}
+knit2html(..., markdown.HTML.template = system.file('misc', 'docco-template.html', package='knitr'))
+```
+
+That is it.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-intro.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-intro.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-intro.R	(revision 2476)
@@ -0,0 +1,14 @@
+## ----show-off, tidy=TRUE-------------------------------------------------
+options(digits=4)
+rnorm(20)
+fit=lm(dist~speed, data=cars)
+b=coef(fit)
+
+## ----results='asis', echo=FALSE------------------------------------------
+knitr::kable(summary(fit)$coefficients, caption='Regression coefficients.')
+
+## ----graphics, fig.cap='A scatterplot with a regression line.'-----------
+par(mar=c(4, 4, 1, .1))
+plot(cars, pch = 20)
+abline(fit, col = 'red')
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_print.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_print.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_print.R	(revision 2476)
@@ -0,0 +1,122 @@
+## ----normal-print, comment=''--------------------------------------------
+head(mtcars)
+
+## ------------------------------------------------------------------------
+library(knitr)
+knit_print  # an S3 generic function
+methods(knit_print)
+getS3method('knit_print', 'default')  # the default method
+normal_print
+
+## ----collapse=TRUE-------------------------------------------------------
+knit_print(1:10)
+knit_print(head(mtcars))
+
+## ------------------------------------------------------------------------
+library(knitr)
+# define a method for objects of the class data.frame
+knit_print.data.frame = function(x, ...) {
+  res = paste(c('', '', kable(x)), collapse = '\n')
+  asis_output(res)
+}
+
+## ----knit-print----------------------------------------------------------
+1 + 1
+head(letters)
+list(a = 1, b = 9:4)
+head(mtcars)
+cat('This is cool.')
+
+## ----eval=FALSE, tidy=FALSE----------------------------------------------
+#  knit_print.classA = function(x, ...) {
+#    # ignore options and inline
+#  }
+#  knit_print.classB = function(x, options, ...) {
+#    # use the chunk option out.height
+#    asis_output(paste(
+#      '<iframe src="http://yihui.name" height="', options$out.height, '"></iframe>',
+#    ))
+#  }
+#  knit_print.classC = function(x, inline = FALSE, ...) {
+#    # different output according to inline=TRUE/FALSE
+#    if (inline) {
+#      'inline output for classC'
+#    } else {
+#      'chunk output for classC'
+#    }
+#  }
+#  knit_print.classD = function(x, options, inline = FALSE, ...) {
+#    # use both options and inline
+#  }
+
+## ------------------------------------------------------------------------
+dummy_print = function(x, ...) {
+  cat("I do not know what to print!")
+  # this function implicitly returns an invisible NULL
+}
+
+## ----knit-print, render=dummy_print, collapse=TRUE-----------------------
+1 + 1
+head(letters)
+list(a = 1, b = 9:4)
+head(mtcars)
+cat('This is cool.')
+
+## ------------------------------------------------------------------------
+1 + 1
+invisible(1 + 1)
+invisible(head(mtcars))
+x = 1:10  # invisibly returns 1:10
+
+## ----eval=FALSE, tidy=FALSE----------------------------------------------
+#  # pseudo code
+#  knit_print.ggvis = function(x, ...) {
+#    res = ggvis::print_this_object(x)
+#    knitr::asis_output(res, meta = list(
+#      ggvis = list(
+#        version = '0.1.0',
+#        js  = system.file('www', 'js',  'ggvis.js',  package = 'ggvis'),
+#        css = system.file('www', 'www', 'ggvis.css', package = 'ggvis')
+#      )
+#    ))
+#  }
+
+## ----tidy=FALSE----------------------------------------------------------
+library(knitr)
+knit_print.foo = function(x, ...) {
+  res = paste('**This is a `foo` object**:', x)
+  asis_output(res, meta = list(
+    js  = system.file('www', 'shared', 'shiny.js',  package = 'shiny'),
+    css = system.file('www', 'shared', 'shiny.css', package = 'shiny')
+  ))
+}
+
+## ------------------------------------------------------------------------
+new_foo = function(x) structure(x, class = 'foo')
+new_foo('hello')
+
+## ------------------------------------------------------------------------
+str(knit_meta(clean = FALSE))
+
+## ------------------------------------------------------------------------
+new_foo('world')
+
+## ------------------------------------------------------------------------
+knit_print.bar = function(x, ...) {
+  asis_output(x, meta = list(head = '<script>console.log("bar!")</script>'))
+}
+new_bar = function(x) structure(x, class = 'bar')
+new_bar('**hello** world!')
+new_bar('hello **world**!')
+
+## ------------------------------------------------------------------------
+str(knit_meta())
+str(knit_meta()) # empty now, because clean = TRUE by default
+
+## ------------------------------------------------------------------------
+knitr::asis_output
+
+## ----clean-up, include=FALSE---------------------------------------------
+# R compiles all vignettes in the same session, which can be bad
+rm(list = ls(all = TRUE))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-intro.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-intro.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-intro.html	(revision 2476)
@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+
+<meta charset="utf-8">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="pandoc" />
+
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<meta name="author" content="Yihui Xie" />
+
+<meta name="date" content="2016-11-21" />
+
+<title>Not An Introduction to knitr</title>
+
+
+
+<style type="text/css">code{white-space: pre;}</style>
+<style type="text/css">
+div.sourceCode { overflow-x: auto; }
+table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
+  margin: 0; padding: 0; vertical-align: baseline; border: none; }
+table.sourceCode { width: 100%; line-height: 100%; }
+td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; }
+td.sourceCode { padding-left: 5px; }
+code > span.kw { color: #007020; font-weight: bold; } /* Keyword */
+code > span.dt { color: #902000; } /* DataType */
+code > span.dv { color: #40a070; } /* DecVal */
+code > span.bn { color: #40a070; } /* BaseN */
+code > span.fl { color: #40a070; } /* Float */
+code > span.ch { color: #4070a0; } /* Char */
+code > span.st { color: #4070a0; } /* String */
+code > span.co { color: #60a0b0; font-style: italic; } /* Comment */
+code > span.ot { color: #007020; } /* Other */
+code > span.al { color: #ff0000; font-weight: bold; } /* Alert */
+code > span.fu { color: #06287e; } /* Function */
+code > span.er { color: #ff0000; font-weight: bold; } /* Error */
+code > span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
+code > span.cn { color: #880000; } /* Constant */
+code > span.sc { color: #4070a0; } /* SpecialChar */
+code > span.vs { color: #4070a0; } /* VerbatimString */
+code > span.ss { color: #bb6688; } /* SpecialString */
+code > span.im { } /* Import */
+code > span.va { color: #19177c; } /* Variable */
+code > span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
+code > span.op { color: #666666; } /* Operator */
+code > span.bu { } /* BuiltIn */
+code > span.ex { } /* Extension */
+code > span.pp { color: #bc7a00; } /* Preprocessor */
+code > span.at { color: #7d9029; } /* Attribute */
+code > span.do { color: #ba2121; font-style: italic; } /* Documentation */
+code > span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
+code > span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
+code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
+</style>
+
+
+
+<link href="data:text/css;charset=utf-8,body%20%7B%0Abackground%2Dcolor%3A%20%23fff%3B%0Amargin%3A%201em%20auto%3B%0Amax%2Dwidth%3A%20800px%3B%0Aoverflow%3A%20visible%3B%0Apadding%2Dleft%3A%202em%3B%0Apadding%2Dright%3A%202em%3B%0Afont%2Dfamily%3A%20%22Helvetica%20Neue%22%2C%20Helvetica%2C%20Arial%2C%20sans%2Dserif%3B%0Afont%2Dsize%3A%2014px%3B%0Aline%2Dheight%3A%2020px%3B%0A%7D%0A%23header%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0A%23TOC%20%7B%0Aclear%3A%20both%3B%0Amargin%3A%200%200%2010px%200%3B%0Apadding%3A%204px%3B%0Aborder%3A%201px%20solid%20%23CCCCCC%3B%0Aborder%2Dradius%3A%205px%3B%0Abackground%2Dcolor%3A%20%23f6f6f6%3B%0Afont%2Dsize%3A%2013px%3B%0Aline%2Dheight%3A%201%2E3%3B%0A%7D%0A%23TOC%20%2Etoctitle%20%7B%0Afont%2Dweight%3A%20bold%3B%0Afont%2Dsize%3A%2015px%3B%0Amargin%2Dleft%3A%205px%3B%0A%7D%0A%23TOC%20ul%20%7B%0Apadding%2Dleft%3A%2040px%3B%0Amargin%2Dleft%3A%20%2D1%2E5em%3B%0Amargin%2Dtop%3A%205px%3B%0Amargin%2Dbottom%3A%205px%3B%0A%7D%0A%23TOC%20ul%20ul%20%7B%0Amargin%2Dleft%3A%20%2D2em%3B%0A%7D%0A%23TOC%20li%20%7B%0Aline%2Dheight%3A%2016px%3B%0A%7D%0Atable%3Anot%28%5Bclass%5D%29%20%7B%0Amargin%3A%20auto%3B%0Amin%2Dwidth%3A%2040%25%3B%0Aborder%2Dwidth%3A%201px%3B%0Aborder%2Dcolor%3A%20%23DDDDDD%3B%0Aborder%2Dstyle%3A%20outset%3B%0Aborder%2Dcollapse%3A%20collapse%3B%0A%7D%0Atable%5Bsummary%3D%22R%20argblock%22%5D%20%7B%0Awidth%3A%20100%25%3B%0Aborder%3A%20none%3B%0A%7D%0Atable%3Anot%28%5Bclass%5D%29%20th%20%7B%0Aborder%2Dwidth%3A%202px%3B%0Apadding%3A%205px%3B%0Aborder%2Dstyle%3A%20inset%3B%0A%7D%0Atable%3Anot%28%5Bclass%5D%29%20td%20%7B%0Aborder%2Dwidth%3A%201px%3B%0Aborder%2Dstyle%3A%20inset%3B%0Aline%2Dheight%3A%2018px%3B%0Apadding%3A%205px%205px%3B%0A%7D%0Atable%3Anot%28%5Bclass%5D%29%2C%20table%3Anot%28%5Bclass%5D%29%20th%2C%20table%3Anot%28%5Bclass%5D%29%20td%20%7B%0Aborder%2Dleft%2Dstyle%3A%20none%3B%0Aborder%2Dright%2Dstyle%3A%20none%3B%0A%7D%0Atable%3Anot%28%5Bclass%5D%29%20tr%2Eodd%20%7B%0Abackground%2Dcolor%3A%20%23f7f7f7%3B%0A%7D%0Ap%20%7B%0Amargin%3A%200%2E5em%200%3B%0A%7D%0Ablockquote%20%7B%0Abackground%2Dcolor%3A%20%23f6f6f6%3B%0Apadding%3A%2013px%3B%0Apadding%2Dbottom%3A%201px%3B%0A%7D%0Ahr%20%7B%0Aborder%2Dstyle%3A%20solid%3B%0Aborder%3A%20none%3B%0Aborder%2Dtop%3A%201px%20solid%20%23777%3B%0Amargin%3A%2028px%200%3B%0A%7D%0Adl%20%7B%0Amargin%2Dleft%3A%200%3B%0A%7D%0Adl%20dd%20%7B%0Amargin%2Dbottom%3A%2013px%3B%0Amargin%2Dleft%3A%2013px%3B%0A%7D%0Adl%20dt%20%7B%0Afont%2Dweight%3A%20bold%3B%0A%7D%0Aul%20%7B%0Amargin%2Dtop%3A%200%3B%0A%7D%0Aul%20li%20%7B%0Alist%2Dstyle%3A%20circle%20outside%3B%0A%7D%0Aul%20ul%20%7B%0Amargin%2Dbottom%3A%200%3B%0A%7D%0Apre%2C%20code%20%7B%0Abackground%2Dcolor%3A%20%23f5f5f5%3B%0Aborder%2Dradius%3A%203px%3B%0Acolor%3A%20%23333%3B%0A%7D%0Apre%20%7B%0Aoverflow%2Dx%3A%20auto%3B%0Aborder%2Dradius%3A%203px%3B%0Amargin%3A%205px%200%2010px%200%3B%0Apadding%3A%2010px%3B%0A%7D%0Apre%3Anot%28%5Bclass%5D%29%20%7B%0Abackground%2Dcolor%3A%20white%3B%0Aborder%3A%20%23f5f5f5%201px%20solid%3B%0A%7D%0Apre%3Anot%28%5Bclass%5D%29%20code%20%7B%0Acolor%3A%20%23444%3B%0Abackground%2Dcolor%3A%20white%3B%0A%7D%0Acode%20%7B%0Afont%2Dfamily%3A%20monospace%3B%0Afont%2Dsize%3A%2090%25%3B%0A%7D%0Ap%20%3E%20code%2C%20li%20%3E%20code%20%7B%0Apadding%3A%202px%204px%3B%0Acolor%3A%20%23d14%3B%0Aborder%3A%201px%20solid%20%23e1e1e8%3B%0Awhite%2Dspace%3A%20inherit%3B%0A%7D%0Adiv%2Efigure%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Atable%20%3E%20caption%2C%20div%2Efigure%20p%2Ecaption%20%7B%0Afont%2Dstyle%3A%20italic%3B%0A%7D%0Atable%20%3E%20caption%20span%2C%20div%2Efigure%20p%2Ecaption%20span%20%7B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20bold%3B%0A%7D%0Ap%20%7B%0Amargin%3A%200%200%2010px%3B%0A%7D%0Atable%3Anot%28%5Bclass%5D%29%20%7B%0Amargin%3A%20auto%20auto%2010px%20auto%3B%0A%7D%0Aimg%3Anot%28%5Bclass%5D%29%20%7B%0Abackground%2Dcolor%3A%20%23FFFFFF%3B%0Apadding%3A%202px%3B%0Aborder%2Dradius%3A%203px%3B%0Aborder%3A%201px%20solid%20%23CCCCCC%3B%0Amargin%3A%200%205px%3B%0Amax%2Dwidth%3A%20100%25%3B%0A%7D%0Ah1%20%7B%0Amargin%2Dtop%3A%200%3B%0Afont%2Dsize%3A%2035px%3B%0Aline%2Dheight%3A%2040px%3B%0A%7D%0Ah2%20%7B%0Aborder%2Dbottom%3A%204px%20solid%20%23f5f5f5%3B%0Apadding%2Dtop%3A%2010px%3B%0Apadding%2Dbottom%3A%202px%3B%0Afont%2Dsize%3A%20145%25%3B%0A%7D%0Ah3%20%7B%0Aborder%2Dbottom%3A%202px%20solid%20%23f5f5f5%3B%0Apadding%2Dtop%3A%2010px%3B%0Afont%2Dsize%3A%20120%25%3B%0A%7D%0Ah4%20%7B%0Aborder%2Dbottom%3A%201px%20solid%20%23f5f5f5%3B%0Amargin%2Dleft%3A%208px%3B%0Afont%2Dsize%3A%20105%25%3B%0A%7D%0Ah5%2C%20h6%20%7B%0Aborder%2Dbottom%3A%201px%20solid%20%23ccc%3B%0Afont%2Dsize%3A%20105%25%3B%0A%7D%0Aa%20%7B%0Acolor%3A%20%230033dd%3B%0Atext%2Ddecoration%3A%20none%3B%0A%7D%0Aa%3Ahover%20%7B%0Acolor%3A%20%236666ff%3B%20%7D%0Aa%3Avisited%20%7B%0Acolor%3A%20%23800080%3B%20%7D%0Aa%3Avisited%3Ahover%20%7B%0Acolor%3A%20%23BB00BB%3B%20%7D%0Aa%5Bhref%5E%3D%22http%3A%22%5D%20%7B%0Atext%2Ddecoration%3A%20underline%3B%20%7D%0Aa%5Bhref%5E%3D%22https%3A%22%5D%20%7B%0Atext%2Ddecoration%3A%20underline%3B%20%7D%0Adiv%2Er%2Dhelp%2Dpage%20%7B%0Abackground%2Dcolor%3A%20%23f9f9f9%3B%0Aborder%2Dbottom%3A%20%23ddd%201px%20solid%3B%0Amargin%2Dbottom%3A%2010px%3B%0Apadding%3A%2010px%3B%0A%7D%0Adiv%2Er%2Dhelp%2Dpage%3Ahover%20%7B%0Abackground%2Dcolor%3A%20%23f4f4f4%3B%0A%7D%0A%0Acode%20%3E%20span%2Ekw%20%7B%20color%3A%20%23555%3B%20font%2Dweight%3A%20bold%3B%20%7D%20%0Acode%20%3E%20span%2Edt%20%7B%20color%3A%20%23902000%3B%20%7D%20%0Acode%20%3E%20span%2Edv%20%7B%20color%3A%20%2340a070%3B%20%7D%20%0Acode%20%3E%20span%2Ebn%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Efl%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Ech%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Est%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Eco%20%7B%20color%3A%20%23888888%3B%20font%2Dstyle%3A%20italic%3B%20%7D%20%0Acode%20%3E%20span%2Eot%20%7B%20color%3A%20%23007020%3B%20%7D%20%0Acode%20%3E%20span%2Eal%20%7B%20color%3A%20%23ff0000%3B%20font%2Dweight%3A%20bold%3B%20%7D%20%0Acode%20%3E%20span%2Efu%20%7B%20color%3A%20%23900%3B%20font%2Dweight%3A%20bold%3B%20%7D%20%0Acode%20%3E%20span%2Eer%20%7B%20color%3A%20%23a61717%3B%20background%2Dcolor%3A%20%23e3d2d2%3B%20%7D%20%0A" rel="stylesheet" type="text/css" />
+
+</head>
+
+<body>
+
+
+
+
+<h1 class="title toc-ignore">Not An Introduction to knitr</h1>
+<h4 class="author"><em>Yihui Xie</em></h4>
+<h4 class="date"><em>2016-11-21</em></h4>
+
+
+
+<p>The <strong>knitr</strong> package <span class="citation">(Xie 2016)</span> is an alternative tool to Sweave based on a different design with more features. This document is not an introduction, but only serves as a placeholder to guide you to the real manuals, which are available on the package website <a href="http://yihui.name/knitr" class="uri">http://yihui.name/knitr</a><a href="#fn1" class="footnoteRef" id="fnref1"><sup>1</sup></a>, and remember to read the help pages of functions in this package. There is a book <span class="citation">(Xie 2015)</span> for this package, but it may not be useful to those who prefer digging out information on the web.</p>
+<p>Anyway, here is a code chunk that shows you can compile vignettes with <strong>knitr</strong> as well using R 3.0.x, which supports non-Sweave vignettes:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">options</span>(<span class="dt">digits =</span> <span class="dv">4</span>)
+<span class="kw">rnorm</span>(<span class="dv">20</span>)</code></pre></div>
+<pre><code>##  [1] -0.980131  0.338629 -0.865409  0.158610 -0.396432  2.177146  1.117703
+##  [8]  0.118996  0.961367 -0.381617  1.125110 -0.281236 -0.399513  1.859193
+## [15]  0.418742 -1.364225 -0.008645  0.254989  0.385174  0.816111</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">fit =<span class="st"> </span><span class="kw">lm</span>(dist ~<span class="st"> </span>speed, <span class="dt">data =</span> cars)
+b =<span class="st"> </span><span class="kw">coef</span>(fit)</code></pre></div>
+<table>
+<caption>Regression coefficients.</caption>
+<thead>
+<tr class="header">
+<th></th>
+<th align="right">Estimate</th>
+<th align="right">Std. Error</th>
+<th align="right">t value</th>
+<th align="right">Pr(&gt;|t|)</th>
+</tr>
+</thead>
+<tbody>
+<tr class="odd">
+<td>(Intercept)</td>
+<td align="right">-17.579</td>
+<td align="right">6.7584</td>
+<td align="right">-2.601</td>
+<td align="right">0.0123</td>
+</tr>
+<tr class="even">
+<td>speed</td>
+<td align="right">3.932</td>
+<td align="right">0.4155</td>
+<td align="right">9.464</td>
+<td align="right">0.0000</td>
+</tr>
+</tbody>
+</table>
+<p>The fitted regression equation is <span class="math inline">\(Y=-17.5791+3.9324x\)</span>.</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">par</span>(<span class="dt">mar =</span> <span class="kw">c</span>(<span class="dv">4</span>, <span class="dv">4</span>, <span class="dv">1</span>, <span class="fl">0.1</span>))
+<span class="kw">plot</span>(cars, <span class="dt">pch =</span> <span class="dv">20</span>)
+<span class="kw">abline</span>(fit, <span class="dt">col =</span> <span class="st">&quot;red&quot;</span>)</code></pre></div>
+<div class="figure">
+<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAPACAYAAAD0ZtPZAAAEDWlDQ1BJQ0MgUHJvZmlsZQAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VVBg/m8AAEAASURBVHgB7N0JvFR13T/w79wLyK6gmAgECriFCgZaZrn1uPRYKe6okCihPC6Z5r7nkkLhRkq5t/hYWuESmak8aqaYtIArLogbiEugCAr3zv+eM8p/ELnMhZl75859n9drXpw553d+y/s3vqIP55xfJlu3hY0AAQIECBAgQIAAAQIECBAgQIAAAQIVKFBVgWMyJAIECBAgQIAAAQIECBAgQIAAAQIECKQCAlA/BAIECBAgQIAAAQIECBAgQIAAAQIEKlZAAFqxU2tgBAgQIECAAAECBAgQIECAAAECBAgIQP0GCBAgQIAAAQIECBAgQIAAAQIECBCoWAEBaMVOrYERIECAAAECBAgQIECAAAECBAgQICAA9RsgQIAAAQIECBAgQIAAAQIECBAgQKBiBQSgFTu1BkaAAAECBAgQIECAAAECBAgQIECAgADUb4AAAQIECBAgQIAAAQIECBAgQIAAgYoVEIBW7NQaGAECBAgQIECAAAECBAgQIECAAAECAlC/AQIECBAgQIAAAQIECBAgQIAAAQIEKlZAAFqxU2tgBAgQIECAAAECBAgQIECAAAECBAgIQP0GCBAgQIAAAQIECBAgQIAAAQIECBCoWAEBaMVOrYERIECAAAECBAgQIECAAAECBAgQICAA9RsgQIAAAQIECBAgQIAAAQIECBAgQKBiBQSgFTu1BkaAAAECBAgQIECAAAECBAgQIECAgADUb4AAAQIECBAgQIAAAQIECBAgQIAAgYoVEIBW7NQaGAECBAgQIECAAAECBAgQIECAAAECAlC/AQIECBAgQIAAAQIECBAgQIAAAQIEKlZAAFqxU2tgBAgQIECAAAECBAgQIECAAAECBAgIQP0GCBAgQIAAAQIECBAgQIAAAQIECBCoWAEBaMVOrYERIECAAAECBAgQIECAAAECBAgQICAA9RsgQIAAAQIECBAgQIAAAQIECBAgQKBiBQSgFTu1BkaAAAECBAgQIECAAAECBAgQIECAgADUb4AAAQIECBAgQIAAAQIECBAgQIAAgYoVEIBW7NQaGAECBAgQIECAAAECBAgQIECAAAECAlC/AQIECBAgQIAAAQIECBAgQIAAAQIEKlZAAFqxU2tgBAgQIECAAAECBAgQIECAAAECBAgIQP0GCBAgQIAAAQIECBAgQIAAAQIECBCoWAEBaMVOrYERIECAAAECBAgQIECAAAECBAgQICAA9RsgQIAAAQIECBAgQIAAAQIECBAgQKBiBQSgFTu1BkaAAAECBAgQIECAAAECBAgQIECAgADUb4AAAQIECBAgQIAAAQIECBAgQIAAgYoVEIBW7NQaGAECBAgQIECAAAECBAgQIECAAAECAlC/AQIECBAgQIAAAQIECBAgQIAAAQIEKlZAAFqxU2tgBAgQIECAAAECBAgQIECAAAECBAgIQP0GCBAgQIAAAQIECBAgQIAAAQIECBCoWIFWFTsyAysLgXfffTcuuOCCeP/998uiPzpBgAABAgQIECBAgAABAgQIECBQ2QJ9+vSJU089NTKZTDrQTLZuq+whG11TClx//fVxxBFHNGUXtE2AAAECBAgQIECAAAECBAgQINDCBGbOnBn9+vVLR+0O0BY2+Y093KVLl6ZNfvWrX41DDz20sZvXHgECBAgQIECAAAECBAgQIECAQAsSOOecc2LOnDmxZMmSZaMWgC6jsFNKgc033zy++93vlrIJdRMgQIAAAQIECBAgQIAAAQIECLRwgfHjx6cBaD6DADRfoxH2Fy1aFK+88kosXLgw/dTU1ETnzp1j7bXXTj/rrrtuI/RCEwQIECBAgAABAgQIECBAgAABAgRahoAAtBHmeerUqXH11VfHgw8+GLNmzYra2tqVttqtW7fYbrvtYvvtt4/DDz88Nthgg5WWdYIAAQIECBAgQIAAAQIECBAgQIAAgfoFquo/7eyaCNx2220xZMiQNNC88cYb48UXX6w3/EzamjdvXtx1111x+umnR7Ji1VFHHRXz589fk264lgABAgQIECBAgAABAgQIECBAgECLFXAHaImm/tprr41Ro0YtV3v79u2jd+/e0bNnz+jUqVO0bds2qqurY/HixZE8Gj937tyYPXt2+mdy4YcffhgTJ06MRx55JCZPnhw9evRYrj5fCBAgQIAAAQIECBAgQIAAAQIECBCoX0AAWr/Pap1N7vwcPXp0em0Seo4ZMyYOPPDAGDRoUBp4rqrS1157Le65554YN25cPP300zF9+vQYOnRoPPbYY6u61HkCBAgQIECAAAECBAgQIECAAAECBPIEPAKfh1Gs3RNPPDF91L1jx45x//33x9ixY2Pw4MEFhZ9JH5I7PUeOHBnTpk2LXXfdNe1W8h7RJFi1ESBAgAABAgQIECBAgAABAgQIECBQuIAAtHCrgkq++uqr6WPsSeHrrrsuff9nQRd+RqHkEflJkyZFr1690rPJvo0AAQIECBAgQIAAAQIECBAgQIAAgcIFBKCFWxVUMnlfZ7K1adMm9tprr4Kuqa9Qhw4dYvfdd0+LPPfcc/UVdY4AAQIECBAgQIAAAQIECBAgQIAAgU8JCEA/BbKmX5M7QJOta9eukbz/sxhb9+7d02qShZJsBAgQIECAAAECBAgQIECAAAECBAgULiAALdyqoJJ9+/ZNy82ZMydmzZpV0DWrKjRlypS0SLKIko0AAQIECBAgQIAAAQIECBAgQIAAgcIFBKCFWxVUcuDAgVFVlWM97rjjYunSpQVdt7JCN9xwQzz88MPp6WQhJRsBAgQIECBAgAABAgQIECBAgAABAoULCEALtyqoZO/evWPEiBFp2TvvvDP23nvveOqppwq6Nr9Q8rh7snr8kUceGdlsNtZff/0YOnRofhH7BAgQIECAAAECBAgQIECAAAECBAisQqDVKs47vRoCF154YXrX5syZM+Puu+9OP1tssUXsuOOOkTwin4SknTp1inbt2kWrVq1i8eLFkQSec+fOTVeQf+KJJ+Khhx6K+fPnp60nZW699dbo0aPHavTGJQQIECBAgAABAgQIECBAgAABAgRaroAAtARznyxalKwGv88++yx7fD25C3R17gTt0qVLXHXVVbHTTjuVoKeqJECAAAECBAgQIECAAAECBAgQIFDZAh6BL9H8rrfeeuldnJMnT46dd945vdOzIU31798/zjjjjHj22Wdj2LBhDblUWQIECBAgQIAAAQIECBAgQIAAAQIEPhZwB2iJfwp77LFHJJ/kEffk0fbkM2/evPTx9gULFsRHH30UHTp0iI4dO6bv+UwelR8wYED069evxD1TPQECBAgQIECAAAECBAgQIECAAIHKFxCANtIcJ+/73GGHHdJPIzWpGQIECBAgQIAAAQIECBAgQIAAAQItXsAj8C3+JwCAAAECBAgQIECAAAECBAgQIECAQOUKuAO0keY2edS9devWkclkGtTikiVL0tXhk4s6d+6cfhpUgcIECBAgQIAAAQIECBAgQIAAAQIEWrCAO0BLOPlvvfVW/M///E8MHDgwfcdnsqL717/+9bjgggvSd4IW0vS///3v6NWrV/oZP358IZcoQ4AAAQIECBAgQIAAAQIECBAgQIDAxwIC0BL9FO69997Ycsst46c//Wn861//iuROzvnz58d9990XZ511Vmy99dbx17/+tUStq5YAAQIECBAgQIAAAQIECBAgQKCxBJLc55prromvfe1r6SLXPXv2jG9+85sxadKkxuqCduoREIDWg7O6p1555ZXYZ599Ys6cOcuq6N27d3Tq1GnZ95kzZ6b/USR3g9oIECBAgAABAgQIECBAgAABAgSap0CS/3z5y1+Oo48+Oh566KGYN29evPbaa3HXXXfF3nvvHQceeGAkr0a0NZ2AALQE9ieccEIsXLgwrfmQQw6JN998M2bNmpXeATp16tTYZZdd0nO1tbXp3aBnn312CXqhSgIECBAgQIAAAQIECBAgQIAAgVIK1NTUxLe+9a144oknVtrMb37zmzj22GNXet6J0gsIQIts/MYbb8Ttt9+e1rrffvvFL3/5y+jWrVv6PVkAaciQIelj8FdeeWVUVeX4f/jDH8all15a5J6ojgABAgQIECBAgAABAgQIECBAoJQCN998czz++OOrbOJnP/tZTJ8+fZXlFCiNgFXgi+z69NNPL6uxvlDzmGOOic997nNx6KGHprdBn3rqqelCRwcffPCy65ty54UXXoilS5eucRfyXwOwxpWpgAABAgQIECBAgAABAgQIECBQRgK33nprwb1J7gRN1ouxNb6AALTI5s8++2xaY7Li+0YbbVRv7fvvv39UV1dH8mfyOPx3vvOd6N69e+y00071Xlfqkz/60Y/itNNOK2ozf/zjH4tan8oIECBAgAABAgQIECBAgAABAk0tkKzxUujWkLKF1qlcYQIC0MKcCi71yUtt27dvX9A1Q4cOjZ/85Cfxve99L70TNPn+t7/9LTbddNOCri9Foa222iq+8IUvFOUO0Ndffz3ee++9UnRTnQQIECBAgAABAgQIECBAgACBJhVYa621Cm6/IWULrlTBggQEoAUxFV6of//+aeFkta/58+fH2muvvcqLjz/++Hj55Zdj/Pjx8e6778Y3vvGNePTRR5e9O3SVFRS5QNJ+8inGljzi/6tf/So6duxYjOrUQYAAAQIECBAgQIAAAQIECBAoG4HBgwdH/usQ6+tYUtbWNAIWQSqy+ycBaFJtstBRodu4ceNi3333TYu/+OKLsccee6QBaqHXK0eAAAECBAgQIECAAAECBAgQINC4AqNHjy6owU6dOkW5rPtSUIcrrJAAtMgT2q9fv9h2223TWi+44IIo9GW4yYrwyYrxX/7yl9Nrp02blu4X+q8IRR6G6ggQIECAAAECBAgQIECAAAECBFYh8JWvfCWOPfbYVZSKmDBhQqy33nqrLKdAaQQEoEV2zWQy8eMf/zit9cMPP4yDDjoovvrVr8bJJ58cTz75ZL2ttW3bNu64445I3sGZbEn4OWLEiHqvcZIAAQIECBAgQIAAAQIECBAgQKDpBC677LI466yzolWrFd80uc4666SvBjzssMOaroNajhVnBsoaC+ywww5x8cUXx5lnnhk1NTXx8MMPp5/kztBkcaH6tuRfAx544IHYc889Y+rUqenq8J+Uz2azn+z6kwABAgQIECBAgAABAgQIECBAoAwEkqd6zz///DjiiCPi9ttvj2eeeSZat24dgwYNiv322y+SENTWtAIC0BL5n3rqqZEEoUcdddSyOz833HDDglrr2rVrGpgm/4Jw3nnnxcKFCwu6TiECBAgQIECAAAECBAgQIECAAIGmEejdu3d8//vfb5rGtVqvgEfg6+VZs5NJADpjxox4/fXX45ZbbonNNtus4AqTfyn4wQ9+kP6rwfDhw6Nv375RXV1d8PUKEiBAgAABAgQIECBAgAABAgQIECAQHoFvjB9B9+7d03eBrk5bPXv2jJtuuml1LnUNAQIECBAgQIAAAQIECBAgQIAAgRYv4A7QFv8TAECAAAECBAgQIECAAAECBAgQIECgcgUEoJU7t0ZGgAABAgQIECBAgAABAgQIECBAoMULCEBb/E8AAAECBAgQIECAAAECBAgQIECAAIHKFRCAVu7cGhkBAgQIECBAgAABAgQIECBAgACBFi8gAG3xPwEABAgQIECAAAECBAgQIECAAAECBCpXQABauXNrZAQIECBAgAABAgQIECBAgAABAgRavECrFi9QZICxY8fGJZdcUuRac9WdfPLJkXxsBAgQIECAAAECBAgQIECAAAECBAgUJiAALcyp4FKLFy+Ot99+u+DyDSm4aNGihhRXlgABAgQIECBAgAABAgQIECBAgECLFxCAFvkncNJJJ8X8+fNj/PjxUVtbm9bevn376NKlyxq31KlTpzWuQwUECBAgQIAAAQIECBAgQIAAAQIEWpKAALTIs92uXbsYN25cbLXVVjFy5MioqamJJACdOnVqbLjhhkVuTXUECBAgQIAAAQIECBAgQIAAAQIECNQnYBGk+nTW4Nzw4cPj6quvTmt466234rDDDlt2R+gaVOtSAgQIECBAgAABAgQIECBAgAABAgQaICAAbQBWQ4uOGjUq9txzz/Sy+++/P30svqF1KE+AAAECBAgQIECAAAECBAgQIECAwOoLCEBX366gKydOnBifvLvzoosuivfee6+g6xQiQIAAAQIECBAgQIAAAQIECBAgQGDNBQSga25Ybw29evWKSy65JC3zzjvvxIQJE+ot7yQBAgQIECBAgAABAgQIECBAgAABAsUTsAhS8SxXWtNRRx0VCxYsSO/+TBZJshEgQIAAAQIECBAgQIAAAQIECBAg0DgCAtBGcM5kMnHKKac0QkuaIECAAAECBAgQIECAAAECBAgQIEAgX8Aj8Pka9gkQIECAAAECBAgQIECAAAECBAgQqCgBAWhFTafBECBAgAABAgQIECBAgAABAgQIECCQLyAAzdewT4AAAQIECBAgQIAAAQIECBAgQIBARQkIQCtqOg2GAAECBAgQIECAAAECBAgQIECAAIF8AQFovoZ9AgQIECBAgAABAgQIECBAgAABAgQqSkAAWlHTaTAECBAgQIAAAQIECBAgQIAAAQIECOQLCEDzNewTIECAAAECBAgQIECAAAECBAgQIFBRAgLQippOgyFAgAABAgQIECBAgAABAgQIECBAIF9AAJqvYZ8AAQIECBAgQIAAAQIECBAgQIAAgYoSEIBW1HQaDAECBAgQIECAAAECBAgQIECAAAEC+QIC0HwN+wQIECBAgAABAgQIECBAgAABAgQIVJSAALSiptNgCBAgQIAAAQIECBAgQIAAAQIECBDIFxCA5mvYJ0CAAAECBAgQIECAAAECBAgQIECgogQEoBU1nQZDgAABAgQIECBAgAABAgQIECBAgEC+gAA0X8M+AQIECBAgQIAAAQIECBAgQIAAAQIVJSAArajpNBgCBAgQIECAAAECBAgQIECAAAECBPIFBKD5GvYJECBAgAABAgQIECBAgAABAgQIEKgoAQFoRU2nwRAgQIAAAQIECBAgQIAAAQIECBAgkC8gAM3XsE+AAAECBAgQIECAAAECBAgQIECAQEUJCEArajoNhgABAgQIECBAgAABAgQIECBAgACBfAEBaL6GfQIECBAgQIAAAQIECBAgQIAAAQIEKkpAAFpR02kwBAgQIECAAAECBAgQIECAAAECBAjkCwhA8zXsEyBAgAABAgQIECBAgAABAgQIECBQUQIC0IqaToMhQIAAAQIECBAgQIAAAQIECBAgQCBfQACar2GfAAECBAgQIECAAAECBAgQIECAAIGKEhCAVtR0GgwBAgQIECBAgAABAgQIECBAgAABAvkCAtB8DfsECBAgQIAAAQIECBAgQIAAAQIECFSUgAC0oqbTYAgQIECAAAECBAgQIECAAAECBAgQyBcQgOZr2CdAgAABAgQIECBAgAABAgQIECBAoKIEBKAVNZ0GQ4AAAQIECBAgQIAAAQIECBAgQIBAvoAANF/DPgECBAgQIECAAAECBAgQIECAAAECFSUgAK2o6TQYAgQIECBAgAABAgQIECBAgAABAgTyBQSg+Rr2CRAgQIAAAQIECBAgQIAAAQIECBCoKAEBaEVNp8EQIECAAAECBAgQIECAAAECBAgQIJAvIADN17BPgAABAgQIECBAgAABAgQIECBAgEBFCQhAK2o6DYYAAQIECBAgQIAAAQIECBAgQIAAgXwBAWi+hn0CBAgQIECAAAECBAgQIECAAAECBCpKQABaUdNpMAQIECBAgAABAgQIECBAgAABAgQI5AsIQPM17BMgQIAAAQIECBAgQIAAAQIECBAgUFECAtCKmk6DIUCAAAECBAgQIECAAAECBAgQIEAgX0AAmq9hnwABAgQIECBAgAABAgQIECBAgACBihIQgFbUdBoMAQIECBAgQIAAAQIECBAgQIAAAQL5AgLQfA37BAgQIECAAAECBAgQIECAAAECBAhUlIAAtKKm02AIECBAgAABAgQIECBAgAABAgQIEMgXEIDma9gnQIAAAQIECBAgQIAAAQIECBAgQKCiBASgFTWdBkOAAAECBAgQIECAAAECBAgQIECAQL6AADRfwz4BAgQIECBAgAABAgQIECBAgAABAhUlIACtqOk0GAIECBAgQIAAAQIECBAgQIAAAQIE8gUEoPka9gkQIECAAAECBAgQIECAAAECBAgQqCgBAWhFTafBECBAgAABAgQIECBAgAABAgQIECCQLyAAzdewT4AAAQIECBAgQIAAAQIECBAgQIBARQkIQCtqOg2GAAECBAgQIECAAAECBAgQIECAAIF8AQFovoZ9AgQIECBAgAABAgQIECBAgAABAgQqSkAAWlHTaTAECBAgQIAAAQIECBAgQIAAAQIECOQLCEDzNewTIECAAAECBAgQIECAAAECBAgQIFBRAgLQippOgyFAgAABAgQIECBAgAABAgQIECBAIF9AAJqvYZ8AAQIECBAgQIAAAQIECBAgQIAAgYoSEIBW1HQaDAECBAgQIECAAAECBAgQIECAAAEC+QIC0HwN+wQIECBAgAABAgQIECBAgAABAgQIVJSAALSiptNgCBAgQIAAAQIECBAgQIAAAQIECBDIFxCA5mvYJ0CAAAECBAgQIECAAAECBAgQIECgogQEoBU1nQZDgAABAgQIECBAgAABAgQIECBAgEC+gAA0X8M+AQIECBAgQIAAAQIECBAgQIAAAQIVJSAArajpNBgCBAgQIECAAAECBAgQIECAAAECBPIFBKD5GvYJECBAgAABAgQIECBAgAABAgQIEKgoAQFoRU2nwRAgQIAAAQIECBAgQIAAAQIECBAgkC8gAM3XsE+AAAECBAgQIECAAAECBAgQIECAQEUJCEArajoNhgABAgQIECBAgAABAgQIECBAgACBfAEBaL6GfQIECBAgQIAAAQIECBAgQIAAAQIEKkpAAFpR02kwBAgQIECAAAECBAgQIECAAAECBAjkC7TK/2K/9AKLFi2KV155JRYuXJh+ampqonPnzrH22munn3XXXbf0ndACAQIECBAgQIAAAQIECBAgQIAAgRYiIABthImeOnVqXH311fHggw/GrFmzora2dqWtduvWLbbbbrvYfvvt4/DDD48NNthgpWWdIECAAAECBAgQIECAAAECBAgQIECgfgGPwNfvs0Znb7vtthgyZEgaaN54443x4osv1ht+Jo3Nmzcv7rrrrjj99NOjT58+cdRRR8X8+fPXqB8uJkCAAAECBAgQIECAAAECBAgQINBSBdwBWqKZv/baa2PUqFHL1d6+ffvo3bt39OzZMzp16hRt27aN6urqWLx4cSSPxs+dOzdmz56d/plc+OGHH8bEiRPjkUceicmTJ0ePHj2Wq88XAgQIECBAgAABAgQIECBAgAABAgTqFxCA1u+zWmeTOz9Hjx6dXpuEnmPGjIkDDzwwBg0alAaeq6r0tddei3vuuSfGjRsXTz/9dEyfPj2GDh0ajz322KoudZ4AAQIECBAgQIAAAQIECBAgQIAAgTwBj8DnYRRr98QTT0wfde/YsWPcf//9MXbs2Bg8eHBB4WfSh+ROz5EjR8a0adNi1113TbuVvEc0CVZtBAgQIECAAAECBAgQIECAAAECBAgULiAALdyqoJKvvvpq+hh7Uvi6665L3/9Z0IWfUSh5RH7SpEnRq1ev9GyybyNAgAABAgQIECBAgAABAgQIECBAoHABAWjhVgWVTN7XmWxt2rSJvfbaq6Br6ivUoUOH2H333dMizz33XH1FnSNAgAABAgQIECBAgAABAgQIECBA4FMCAtBPgazp1+QO0GTr2rVrJO//LMbWvXv3tJpkoSQbAQIECBAgQIAAAQIECBAgQIAAAQKFCwhAC7cqqGTfvn3TcnPmzIlZs2YVdM2qCk2ZMiUtkiyiZCNAgAABAgQIECBAgAABAgQIECBAoHABAWjhVgWVHDhwYFRV5ViPO+64WLp0aUHXrazQDTfcEA8//HB6OllIyUaAAAECBAgQIECAAAECBAgQIECAQOECAtDCrQoq2bt37xgxYkRa9s4774y99947nnrqqYKuzS+UPO6erB5/5JFHRjabjfXXXz+GDh2aX8Q+AQIECBAgQIAAAQIECBAgQIAAAQKrEGi1ivNOr4bAhRdemN61OXPmzLj77rvTzxZbbBE77rhjJI/IJyFpp06dol27dtGqVatYvHhxJIHn3Llz0xXkn3jiiXjooYdi/vz5aetJmVtvvTV69OixGr1xCQECBAgQIECAAAECBAgQIECAAIGWKyAALcHcJ4sWJavB77PPPsseX0/uAl2dO0G7dOkSV111Vey0004l6KkqCRAgQIAAAQIECBAgQIAAAQIECFS2gEfgSzS/6623XnoX5+TJk2PnnXdO7/RsSFP9+/ePM844I5599tkYNmxYQy5VlgABAgQIECBAgAABAgQIECBAgACBjwXcAVrin8Iee+wRySd5xD15tD35zJs3L328fcGCBfHRRx9Fhw4domPHjul7PpNH5QcMGBD9+vUrcc9UT4AAAQIECBAgQIAAAQIECBAgQKDyBQSgjTTHyfs+d9hhh/TTSE1qhgABAgQIECBAgAABAgQIECBAgECLF/AIfIv/CQAgQIAAAQIECBAgQIAAAQIECBAgULkC7gBt5LlNHoV/5ZVXYuHChemnpqYmOnfuHGuvvXb6WXfddRu5R5ojQIAAAQIECBAgQIAAAQIECBAgULkCAtBGmNupU6fG1VdfHQ8++GDMmjUramtrV9pqt27dYrvttovtt98+Dj/88Nhggw1WWtYJAgQIECBAgAABAgQIECBAgAABAgTqF/AIfP0+a3T2tttuiyFDhqSB5o033hgvvvhiveFn0liyQNJdd90Vp59+evTp0yeOOuqodMGkNeqIiwkQIECAAAECBAgQIECAAAECBAi0UAF3gJZo4q+99toYNWrUcrW3b98+evfuHT179oxOnTpF27Zto7q6OhYvXpyuEj937tyYPXt2JH8m24cffhgTJ06MRx55JCZPnhw9evRYrj5fCBAgQIAAAQIECBAgQIAAAQIECBCoX0AAWr/Pap1N7vwcPXp0em0Seo4ZMyYOPPDAGDRoUBp4rqrS1157Le65554YN25cPP300zF9+vQYOnRoPPbYY6u61HkCBAgQIECAAAECBAgQIECAAAECBPIEPAKfh1Gs3RNPPDF91L1jx45x//33x9ixY2Pw4MEFhZ9JH5I7PUeOHBnTpk2LXXfdNe1W8h7RJFi1ESBAgAABAgQIECBAgAABAgQIECBQuIA7QAu3Kqjkq6++mj7GnhS+7rrr0vd/FnThZxRKHpGfNGlSbL755unK8cn+fvvt9xkli3toxowZcdlll8XSpUvXuOK//e1vaR3J4/w2AgQIECBAgAABAgQIECBAgAABAo0tIAAtsnjyvs5ka9OmTey1115rXHuHDh1i9913j+Sdos8999wa11dIBb/85S/T8LaQsoWWmT9/fqFFlSNAgAABAgQIECBAgAABAgQIECBQNAEBaNEocxUld4AmW9euXSN5/2cxtu7du6fVLFq0qBjVrbKOZAX6Lbfcsih3gCaLOCV3ga633nqrbFcBAgQIECBAgAABAgQIECBAgAABAsUWEIAWWbRv375pjXPmzIlZs2ZFnz591riFKVOmpHUkiyg1xta5c+c45JBDitLUvffemwagVVVeN1sUUJUQIECAAAECBAgQIECAAAECBAg0SEAq1SCuVRceOHBgfBL2HXfccWt8F+UNN9wQDz/8cNpwspCSjQABAgQIECBAgAABAgQIECBAgACBwgUEoIVbFVSyd+/eMWLEiLTsnXfeGXvvvXc89dRTBV2bXyh53D1ZPf7II4+MbDYb66+/fgwdOjS/iH0CBAgQIECAAAECBAgQIECAAAECBFYh4BH4VQCtzukLL7wwvWtz5syZcffdd6efLbbYInbcccdIHpFPQtJOnTpFu3btolWrVrF48eJIAs+5c+emK8g/8cQT8dBDD8UnCwclZW699dbo0aPH6nTHNQQIECBAgAABAgQIECBAgAABAgRarIAAtARTnyxalKwGv88++yx7fD25C3R17gTt0qVLXHXVVbHTTjuVoKeqJECAAAECBAgQIECAAAECBAgQIFDZAh6BL9H8JqueJ3dxTp48OXbeeef0Ts+GNNW/f/8444wz4tlnn41hw4Y15FJlCRAgQIAAAQIECBAgQIAAAQIECBD4WMAdoCX+Keyxxx6RfJJH3JNH25PPvHnz0sfbFyxYEB999FF06NAhOnbsmL7nM3lUfsCAAdGvX78S90z1BAgQIECAAAECBAgQIECAAAECBCpfQADaSHOcvO9zhx12SD+N1KRmCBAgQIAAAQIECBAgQIAAAQIECLR4AY/At/ifAAACBAgQIECAAAECBAgQIECAAAEClSsgAK3cuTUyAgQIECBAgAABAgQIECBAgAABAi1eQADa4n8CAAgQIECAAAECBAgQIECAAAECBAhUroAAtHLn1sgIECBAgAABAgQIECBAgAABAgQItHgBAWiL/wkAIECAAAECBAgQIECAAAECBAgQIFC5AgLQyp1bIyNAgAABAgQIECBAgAABAgQIECDQ4gVatXiBIgOMHTs2LrnkkiLXmqvu5JNPjuRjI0CAAAECBAgQIECAAAECBAgQIECgMAEBaGFOBZdavHhxvP322wWXb0jBRYsWNaS4sgQIECBAgAABAgQIECBAgAABAgRavIAAtMg/gZNOOinmz58f48ePj9ra2rT29u3bR5cuXda4pU6dOq1xHSogQIAAAQIECBAgQIAAAQIECBAg0JIEBKBFnu127drFuHHjYquttoqRI0dGTU1NJAHo1KlTY8MNNyxya6ojQIAAAQIECBAgQIAAAQIECBAgQKA+AYsg1aezBueGDx8eV199dVrDW2+9FYcddtiyO0LXoFqXEiBAgAABAgQIECBAgAABAgQIECDQAAEBaAOwGlp01KhRseeee6aX3X///elj8Q2tQ3kCBAgQIECAAAECBAgQIECAAAECBFZfQAC6+nYFXTlx4sT45N2dF110Ubz33nsFXacQAQIECBAgQIAAAQIECBAgQIAAAQJrLiAAXXPDemvo1atXXHLJJWmZd955JyZMmFBveScJECBAgAABAgQIECBAgAABAgQIECiegEWQime50pqOOuqoWLBgQXr3Z7JIko0AAQIECBAgQIAAAQIECBAgQIAAgcYREIA2gnMmk4lTTjmlEVrSBAECBAgQIECAAAECBAgQIECAAAEC+QIegc/XsE+AAAECBAgQIECAAAECBAgQIECAQEUJCEArajoNhgABAgQIECBAgAABAgQIECBAgACBfAEBaL6GfQIECBAgQIAAAQIECBAgQIAAAQIEKkpAAFpR02kwBAgQIECAAAECBAgQIECAAAECBAjkCwhA8zXsEyBAgAABAgQIECBAgAABAgQIECBQUQIC0IqaToMhQIAAAQIECBAgQIAAAQIECBAgQCBfQACar2GfAAECBAgQIECAAAECBAgQIECAAIGKEhCAVtR0GgwBAgQIECBAgAABAgQIECBAgAABAvkCAtB8DfsECBAgQIAAAQIECBAgQIAAAQIECFSUgAC0oqbTYAgQIECAAAECBAgQIECAAAECBAgQyBdolf/FPgECBAgQIECAAAECBAgQIECAAAECqyfwn//8J1544YVo3bp1bLLJJtG2bdvVq8hVRRVwB2hROVVGgAABAgQIECBAgAABAgQIECDQ0gSeeeaZ+Na3vhXrrbdeDB48OLbeeutYd91146ijjoq33nqrpXGU3XgFoGU3JTpEgAABAgQIECBAgAABAgQIECDQXASmTJmShp533nln1NTULOv2Bx98EBMnTowhQ4bE7Nmzlx230/gCAtDGN9ciAQIECBAgQIAAAQIECBAgQIBABQi8/fbbMXTo0Fi4cOFKRzNr1qzYf//9I5vNrrSME6UVEICW1lftBAgQIECAAAECBAgQIECAAAECFSpw5ZVXxrvvvrvK0U2dOjUmT568ynIKlEZAAFoaV7USIECAAAECBAgQIECAAAECBAhUuMCf/vSngkfYkLIFV6pgQQIC0IKYFCJAgAABAgQIECBAgAABAgQIECCwvMCcOXOWP1DPtzfeeKOes06VUkAAWkpddRMgQIAAAQIECBAgQIAAAQIECFSsQLLSe6FbskK8rWkEBKBN465VAgQIECBAgAABAgQIECBAgACBZi6w6667FjyCXXbZpeCyChZXQABaXE+1ESBAgAABAgQIECBAgAABAgQItBCB4cOHFzTStm3bxj777FNQWYWKLyAALb6pGgkQIECAAAECBAgQIECAAAECBFqAwO9///uCRrl48eL4y1/+UlBZhYovIAAtvqkaCRAgQIAAAQIECBAgQIAAAQIEWoDAH//4x4JHOXny5ILLKlhcAQFocT3VRoAAAQIECBAgQIAAAQIECBAg0EIEGrKy++uvv95CVMpvmALQ8psTPSJAgAABAgQIECBAgAABAgQIEGgGAl27di24lw1ZMb7gShUsSEAAWhCTQgQIECBAgAABAgQIECBAgAABAgSWF9h5552XP1DPt4aUracap1ZDQAC6GmguIUCAAAECBAgQIECAAAECBAgQIHD88cfHWmuttUqIfv36xdChQ1dZToHSCAhAS+OqVgIECBAgQIAAAQIECBAgQIAAgQoX+PznPx833HBDVFWtPGLr3Llz/Pa3v43WrVtXuEb5Dm/ls1O+fdYzAgQIECBAgAABAgQIECBAgAABAmUhcPDBB8ef//zn2GKLLVboz6677hpTp06NgQMHrnDOgcYTaNV4TWmJAAECBAgQIECAAAECBAgQIECAQOUJJEHnk08+Gf/617/imWeeSe/2HDRoUGy00UaVN9hmOCIBaDOcNF0mQIAAAQIECBAgQIAAAQIECBAoP4Gtt946ko+tvAQ8Al9e86E3BAgQIECAAAECBAgQIECAAAECBAgUUUAAWkRMVREgQIAAAQIECBAgQIAAAQIECBAgUF4CAtDymg+9IUCAAAECBAgQIECAAAECBAgQIECgiAIC0CJiqooAAQIECBAgQIAAAQIECBAgQIAAgfISEICW13zoDQECBAgQIECAAAECBAgQIECAAAECRRQQgBYRU1UECBAgQIAAAQIECBAgQIAAAQIECJSXgAC0vOZDbwgQIECAAAECBAgQIECAAAECBAgQKKKAALSImKoiQIAAAQIECBAgQIAAAQIECBAgQKC8BASg5TUfekOAAAECBAgQIECAAAECBAgQIECAQBEFBKBFxFQVAQIECBAgQIAAAQIECBAgQIAAAQLlJSAALa/50BsCBAgQIECAAAECBAgQIECAAAECBIooIAAtIqaqCBAgQIAAAQIECBAgQIAAAQIECBAoLwEBaHnNh94QIECAAAECBAgQIECAAAECBAgQIFBEAQFoETFVRYAAAQIECBAgQIAAAQIECBAgQIBAeQkIQMtrPvSGAAECBAgQIECAAAECBAgQIECAAIEiCghAi4ipKgIECBAgQIAAAQIECBAgQIAAAQIEyktAAFpe86E3BAgQIECAAAECBAgQIECAAAECBAgUUUAAWkRMVREgQIAAAQIECBAgQIAAAQIECBAgUF4CAtDymg+9IUCAAAECBAgQIECAAAECBAgQIECgiAIC0CJiqooAAQIECBAgQIAAAQIECBAgQIAAgfISEICW13zoDQECBAgQIECAAAECBAgQIECAAAECRRQQgBYRU1UECBAgQIAAAQIECBAgQIAAAQIECJSXgAC0vOZDbwgQIECAAAECBAgQIECAAAECBAgQKKKAALSImKoiQIAAAQIECBAgQIAAAQIECBAgQKC8BASg5TUfekOAAAECBAgQIECAAAECBAgQIECAQBEFBKBFxFQVAQIECBAgQIAAAQIECBAgQIAAAQLlJSAALa/50BsCBAgQIECAAAECBAgQIECAAAECBIooIAAtIqaqCBAgQIAAAQIECBAgQIAAAQIECBAoLwEBaHnNh94QIECAAAECBAgQIECAAAECBAgQKCuB2trasupPQzsjAG2omPIECBAgQIAAAQIECBAgQIAAAQIEKlzgtttui1122SU6dOgQrVq1in79+sUpp5wSb7/9drMbuQC02U2ZDhMgQIAAAQIECBAgQIAAAQIECBAojcDSpUtj2LBhsf/++8cDDzwQH3zwQWSz2XjhhRfi0ksvjQEDBsQ//vGP0jReoloFoCWCVS0BAgQIECBAgAABAgQIECBAgACB5iZw2mmnxS233LLSbs+ZMyf++7//O955552Vlim3EwLQcpsR/SFAgAABAgQIECBAgAABAgQIECDQBAKzZ8+O8ePHr7LlN954I8aNG7fKcuVSQABaLjOhHwQIECBAgAABAgQIECBAgAABAgSaUOCOO+6Impqagnpw++23F1SuHAoJQMthFvSBAAECBAgQIECAAAECBAgQIECAQBMLvPTSSwX3oCFlC660RAUFoCWCVS0BAgQIECBAgAABAgQI5ASWLFkSP/3pT2O77baLjh07pp8vf/nLcc0110Sy2IaNAAECBMpDoH379gV3pCFlC660RAVblahe1RIgQIAAAQIECBAgQIAAgXjrrbfim9/8Zjz66KPLaSTfk88vfvGLuPPOO6Nr167LnfeFAAECBBpf4Etf+lLBjTakbMGVlqigO0BLBKtaAgQIECBAgAABAgQIEIg44IADVgg/810eeeSROOigg/IP2SdAgACBJhLYbbfdon///gW1fswxxxRUrhwKCUDLYRb0gQABAgQIECBAgAABAhUoMGnSpHjggQdWObJ77703/vjHP66ynAIECBAgUFqB1q1bx8033xxrrbVWvQ2NHDky9tprr3rLlNNJAWg5zYa+ECBAgAABAgQIECBAoIIEbrvttoJH05CyBVeqIAECBAg0WCB5tH3KlCmx6aabrnBtmzZt4qyzzoqf//znK5wrlwNfWPRhfPpNpt4BWi6zox8ECBAgQIAAAQIECBCoMIEXXnih4BE1pGzBlSpIgAABAqslkISgM2bMiPvuuy8ee+yx+OCDD6Jv377pXZ/du3dfrTpLfVH2709E7SlnxP++/HoMiMxyzQlAl+PwhQABAgQIECBAgAABAgSKJdCQFYLbtWtXrGbVQ4AAAQJFEGjVqlXsvvvu6acI1ZWkiuzSpZG95daoPe/CiBdeTNv4IJOJt7LZ5drzCPxyHL4QIECAAAECBAgQIECAQLEEtt1224Kr2m677QouqyABAgQItGyB7IIFUXvt9VHTu3/UDj8iF35u8LnInPz92LXf5+PtT/EIQD8F4isBAgQIECBAgAABAgQIFEfgyCOPjGRBjVVtyTvlkgU1bAQIECBAoD6B7CuvRO0FF0dNj42idtSYiNffiNiwe1T95NKonv18VF9yUbxfvWLcueKR+lpxjgABAgQIECBAgAABAgQIFCiw8cYbx9ixY1dZevz48dG7d+9VllOAAAECBFqmQPall6Lmf46Pmo02jdqzzot4f2HENgOj6k93RKvXXoqqE46LTD3/4CYAbZm/G6MmQIAAAQIECBAgQIBAowgcf/zxce2110bnzp1XaG+dddaJG264IcaMqbuLx0aAAAECBD4lkP3bo1Gz825Rs/Hmkf3pxPRs5r/3iOp/To1WTzwaVbvv9qkrPvurRZA+28VRAgQIECBAgAABAgQIECiSwBFHHBH77rtvTJo0KV1VOFO3QMWAAQPi29/+dqy99tpFakU1BAgQIFAJAtklSyJ71x+j9oyzI55+NjekTh0jc8B+UXXeWZHp0aPBwxSANpjMBQQIECBAgAABAgQIECDQUIHkbs8RI0Y09DLlCRAgQKCFCGT/85//v6L73Ddzo+6xYWS+c1hUnXJSZDp1Wm0JAehq063ehYsWLYpX6l7YunDhwvRTU1OTPgqS/Ktn8ll33XVXr2JXESBAgAABAgQIECBAgAABAgQIEGhmAtlZs6L2hpsjO258xAeLcr3v/fmoOul7kTl6dGSqq9d4RALQNSZcdQVTp06Nq6++Oh588MGYlUxqbe1KL+rWrVtst912sf3228fhhx8eG2ywwUrLOkGAAAECBAgQIECAAAECBAgQIECgOQpkZz4ftXWhZ/bn10VkPx7BdkOi6qLzo2qXnYs6JIsgFZVz+cpuu+22GDJkSBpo3njjjfHiiy/WG34mV8+bNy/uuuuuOP3006NPnz5x1FFHxfz585ev2DcCBAgQIECAAAECBAgQIECAAAECzVAg+9DDsXSHnaNmkwGR/Vld+NmqVWS+vVdUz5gWrR59qOjhZ0LkDtAS/VCSVQ5HjRq1XO3t27eP3r17R8+ePaNT3XsL2rZtG9V1t/EuXrw4kkfj586dG7Nnz07/TC788MMPY+LEifHII4/E5MmTo8dqvOR1uQ74QoAAAQIECBAgQIAAAQIECBAgQKCRBbJ1GVd20p1Re+Y5ETNfyLW+dufIHHRAVJ17ZmRK/AS0ALQEE57c+Tl69Oi05iT0HDNmTBx44IExaNCgNPBcVZOvvfZa3HPPPTFu3Lh4+umnY/r06TF06NB47LHHVnWp8wQIECBAgAABAgQIECBAgAABAgTKQiD79tuR/dX/Ru0PL4p46+1cn+re75kubHTyiZGpy80aYxOAlkD5xBNPTB9179ixY/zlL39JH4FvSDPJnZ4jR46MYcOGxV577RX33XdfJO8RTYLV/fbbryFVKUuAAAECBAgQIECAAAECBAgQIECgUQWyz9e93/P6myI7/oqIxR/m2u7XN7ew0agjIlPVuG/lbNzWGpW6aRp79dVX08fYk9avu+66Boef+b1OHpGfNGlS9OrVKz2c7NsIECBAgAABAgQIECBAgAABAgQIlKNA9qmno2bkd3Pv97x4bC783GH7qH7wL9Fq5pNRNXpUo4efiZMAtMi/luR9ncnWpk2b9O7NNa2+Q4cOsfvuu6fVPPfcc2tanesJECBAgAABAgQIECBAgAABAgQIFE0gm81G7f0PxNIvfTVqvjAosjfcHNG6dWT22yeqn/l3tHro/sh8dYeitbc6FXkEfnXU6rkmuQM02bp27RrJ+z+LsXXv3j2tJlkoyUaAAAECBAgQIECAAAECBAgQIECgqQWydTlV9veTovas8yJefCnXna5dIjPsoKg6+/TIdOvW1F1c1r4AdBlFcXb69u2bVjRnzpyYNWtW9OnTZ40rnjJlSlpHsoiSjQABAgQIECBAgAABAgQIECBAgEBTCWTffDOyv7wlai+4OOLd/+S6sfFGUTVyRGS+f3xk2rVrqq6ttF0B6EppVu/EwIEDo6ruRa61tbVx3HHHxe9+97to1Wr1mW+44YZ4+OGH084MHjx49TrlKgIECBAgQIAAAQIECBAgQIAAAQJrIJB99rmovfb6yF4xIeKjJbmaNtukbmGjEyIz8juRyWTWoPbSXuodoEX27d27d4wYMSKt9c4774y99947nnrqqQa3kjzuPnbs2DjyyCMjeZfC+uuvH0OHDm1wPS4gQIAAAQIECBBYc4HFixfHFVdcEbvssktsvPHGsdVWW8XRRx8dM2bMWPPK1UCAAAECBAgQKGOB7L/+HTWHHR41m20V2XGXRSxZEpmdvhbVj0yJVk//O6qOOLysw8+EdvVvTSzjiWnqrl144YXpXZszZ86Mu+++O/1sscUWseOOO0byiHwSknbq1Cna1d0SnNwdmvyFOgk8586dm64g/8QTT8RDDz0U8+fPT4eSlLn11lujR48eTT007RMgQIAAAQIEWpzAs88+G9/85jcj+btd/jZ9+vSYOHFi/OhHP4qTTz45/5R9AgQIECBAgECzFsjWPdmcvfcvUXvGORFP/CM3lrZrRWafb0fVD8+JzMevgGwugxSAlmCmkkWLktXg99lnn2WPryd3ga7OnaBdunSJq666KnbaaacS9FSVBAgQIECAAAEC9Qm8++67sdtuu6X/SP1Z5ZIndU455ZRYb731YuTIkZ9VxDECBAgQIECAQLMRyC5cGNnbfhe1Z58fMfuVXL+7rReZQw+OqjNPi0zdot/NcfMIfIlmLflLcHIX5+TJk2PnnXdu8HtA+/fvH2eccUYkdxwMGzasRL1ULQECBAgQIECAQH0Cl1xyyUrDz/zrTjrppHj//ffzD9knQIAAAQIECDQbgewbb0TtJeOipsdGUfudUbnwc5N+UXXJhVH9ygtR/ZOxzTb8TCbBHaAl/inusccekXySR9yTR9uTz7x589LH2xcsWBAfffRRdOjQITp27Ji+5zN5VH7AgAHRr1+/Eves/uqTPi5durT+QgWcTcZtI0CAAAECBAg0V4FbbrmloK4nd4r++c9/9s72grQUIkCAAAECBMpFIPvaa1E7bnxkr7o6YmlNrltbfiFd2Khq+KHl0s017ocAdI0JC6sged/nDjvskH4Ku6LpSo0fPz6+//3vF7UD77zzTlHrUxkBAgQIECBAoNQCyT/kzp49u+BmnnnmmYLLKkiAAAECBAgQaEqB7BPT0vd7Zu+5N9eNqkxk/mvXqLro/MgM/mJTdq0kbQtAS8LavCtNFmnq1atXUe4A/c9//pPe/dq6devmjaL3BAgQIECAQIsTqK6ubtCY/X2nQVwKEyBAgAABAo0skK2piezke+qCz7Mj/j0j13r7dpHZd5+oOv/syPTp08g9arzmBKCNZ11vS8nj5jNmzIgXXngh2rdvH9tss0187nOfq/eaUp0cOnRo0R7fOvTQQ+NXv/pVuup9qfqrXgIECBAgQIBAKQTatGmTvpoo+TtaIdugQYMKKaYMAQIECBAgQKBRBbLvvRfZW38btedeEPHa67m2P7d+ZIYfElWnnxKZddZp1P40RWMC0BKrJ3dATps2LV3MaMMNN0wXROrcufNyrf7iF7+Ic889N1588cXljvepS95/+tOfxp577rnccV8IECBAgAABAgQaR+DII4+M733ve6tsLHl/+0477bTKcgoQIECAAAECBBpLIPvqq5G98RdRe+mPI977eLHGDbun7/fMHHN0ZFrQ07pWgS/Rry65o/PMM8+MddddN3bdddcYM2ZM7L333pGEmkng+cl28cUXx/Dhw1cIP5Pzs2bNim984xtxzDHHRDab/eQSfxIgQIAAAQIECDSSQPJ3uK985Sv1tpY8Kv/zn/88WrVyb0G9UE4SIECAAAECjSKQrcuTao75XtT02SRqzzovF35uMzCq/jgpWr32UlSdcFyLCj8TdH9LK8FPLwk/d95553j44YdXqD1ZIfQ73/lOdOnSJf2cfvrpaZlMJpMukDRw4MA07PznP/+57PoJEybE1ltvHaNGjVqhPgcIECBAgAABAgRKJ5C81/Puu++OESNGxKRJk1ZoqFu3buk/brv7cwUaBwgQIECAAIFGFsg++lhuYaP7p+Rarq6KzDd2j6oL6xY2Grh1I/emvJoTgJZgPi6//PJl4WWnTp1iv/32i4033jh9DP43v/lNfPTRR3HSSSfF5z//+bT15M+bbrpphcem/vznP6d/2Z4zZ06ccsop8e1vfzvWX3/9EvRYlQQIECBAgAABAisTWHvtteMPf/hDPPLII/H73/8+fUon+Tve9ttvHwcddFB07NhxZZc6ToAAAQIECBAoqUB2yZLI3j05t7DRU8/k2urYITIH7BdV550VmZ49S9p+c6k8U/dotWerizhbCxYsiB49esT7778fm2yySdxzzz3pY++fNDF9+vTnsVJMAABAAElEQVT07tC33347PZQ8MvXoo4/G4MGDPymy3J/33XdffP3rX0+PjR07Ng1OlytQ5l8+WQRps802i6effrrMe6t7BAgQIECAAAECBAgQIECAAIHyF8jWrTmT/d/fRO15F0bMmZvrcI8NIzPi0Kg69QeRqfvH2pa6bb755vHMM8/EU089Fcl+snkHaJF/DU8++WQafibVXn/99cuFn8mxLbfcMi655JJkN92GDRu20vAzKZC8P/S//uu/0rLJxNkIECBAgAABAgQIECBAgAABAgRapkD25Zej5twfRk2PjaL26ONy4efne0XVFT+O6lnPRXXyuHsLDj9X9qsQgK5MZjWPfxJSJu/4XNkL83ffffdltW+77bbL9le2s80226SnPql7ZeUcJ0CAAAECBAgQIECAAAECBAgQqDyB7Mzno2b0/0TNxptFNrnr84NFEdsOjqp7745WL8+MqmP/JzIWZFzpxHsH6EppVu/E/Pnz0ws7d+680gry3xOVBKWr2pLH5JMteazeRoAAAQIECBAgQIAAAQIECBAg0DIEsg89HDVnnBPx0F9zA25VHZlv7hlVF5wXmQFfaBkIRRilALQIiPlVbLrppunX2bNnx1tvvRXrrbde/ul0f9q0acuOzZgxY9n+ynamTJmSnvrkvQUrK+c4AQIECBAgQIAAAQIECBAgQIBA8xbIfvhhZO+4K2rPOjfi2Zm5wazdOTIHHRBV55wRme7dm/cAm6D3HoEvMvonIWWyttSJJ564Qu1L6lbnOu2005Yd//Wvfx3Jwkkr22bNmhWPP/54enqLLbZYWTHHCRAgQIAAAQIECBAgQIAAAQIEmrFA9p13ovbKCVHTq2/UHnBILvyse79npi70rH7tpai+5irh52rOrwB0NeFWdtnGG28ce+21V3r65ptvjm9/+9vxwAMPxMyZM+MPf/hDJO/8nDp1aqyzzjrRt2/fSO4UPfLII+ODDz5YocoXXnghdtxxx0hC06qqqmX1rlDQAQIECBAgQIAAAQIECBAgQIAAgWYpkK3Lf2rOODu3sNFxdTfTzXsrou/GUXX1FVH90rNRfe5ZkenQoVmOrVw67RH4EszEFVdcEffdd18sWrQo7rjjjvTz6WZOOumk6FS3Ktfxxx8fv/3tbyN5LP6YY46JrbbaKn10/sEHH0yPv/nmm+mlo0ePjiFDhny6Gt8JECBAgAABAgQIECBAgAABAgSaoUD26Weidtz4yN5wU0T24wF85ct1K7nXvd9zx681wxGVb5cFoCWYm4022iiS93Yecsgh8fzzz6/QwgEHHBCnnnpqLF68OG666aY0/Ezu9jzhhBNWKJsc2GyzzeLiiy/+zHMOEiBAgAABAgQIECBAgAABAgQINA+B5JWJ2Sn/F7XJwkZ/eyzX6Tat6xY2+u/cwkab5daWaR6jaT69FICWaK6SR93/+c9/xi9/+ct44oknIgk4e/bsGfvtt1/6KHsmk4kOdbcv/+lPf4okEP1koaP87iRlxowZE5deemm0b98+/5R9AgQIECBAgAABAgQIECBAgACBZiKQrbsJLvu7P0Tt2edHvPBirtdd1onMsIOi6uzTI7P++s1kJM2zmwLQEs5bEnAmj67Xt3Xr1i19R2gSgCaPzSdBaZcuXWLgwIHxpS99Kbbccsv6LneOAAECBAgQIECAAAECBAgQIECgTAWy8+ZF9he/jtoLfxTxzru5Xm7UJ6pGjojMid+LTLt2ZdrzyuqWALRM5nOnnXaK5GMjQIAAAQIECBAgQIAAAQIECBBo3gLZ52ZG7bXXR/aKCREffpQbzGabRNVJJ0Rm5HcieerX1ngCAtDGs9YSAQIECBAgQIAAAQIEWqzA448/HjfffHM8+eSTqUHytNvw4cPji1/8Yos1MXACBCpPIPvv6bmFjeru+ky3upwzs9PXoipZ2Gj7L1fegJvJiASgzWSidJMAAQIECBAgQIAAAQLNUWDJkiVx3HHHxTXXXLNc9x944IG44oor4phjjonx48dHq1b+7+lyQL4QINBsBLK1tZH9y325hY3+Pi3X77ZrRWbvb0XVD8+JTL9+zWYsldpR/wtTqTNrXAQIECBAgAABAgQIECgDgWOPPTYmTpy40p5cddVV6bkrr7xypWWcIECAQDkKZD/4ILK3/S63sNHLs3NdXG/dyBx6cFSdeVpk1l23HLvdIvtU1SJHbdAECBAgQIAAAQIECBAgUHKBqVOn1ht+ftKBJASdNu3ju6Y+OehPAgQIlKlAds6cqL30x1HTY6OoHXFkRBJ+9u8bVT+6IKpffTGqx48TfpbZ3LkDtMwmRHcIECBAgAABAgQIECBQKQI33XRTwUNJ3g+6zTbbFFxeQQIECDS2QPa113Lv95xQ90qPJUtzzQ/YIl3YqGrEYY3dHe01QEAA2gAsRQkQIECAAAECBAgQIECgcIHp06cXXLghZQuuVEECBAgUQSD7xLSoPevcyE7+c662qkxkvr5LbmGjbYcUoQVVlFpAAFpqYfUTIECAAAECBAgQIECAAAECBAg0K4FsTU1k//TnqD3znIh//jvX9/btIrPvPlF13lmR2WijZjWelt5Z7wBt6b8A4ydAgAABAgQIECBAgECJBAYMGFBwzQ0pW3ClChIgQKCBAtn334/a626Imj6bRO1e++TCz8+tH5kfnJB7v+fN1ws/G2haDsUFoOUwC/pAgAABAgQIECBAgACBChQYMWJEwaMaPnx4wWUVJECAQLEF0vd7XvijqNmwT9QeeXTEq69FbL5pVP34kqie/XxUX3pxZLp0KXaz6mskAQFoI0FrhgABAgQIECBAgAABAi1NYLvttotRo0atcthjxoyJL37xi6sspwABAgSKLZB9+eWoOfaE3B2fZ54b8d77EYO2jqpf3RitnvpXVH3/+Mi0aVPsZtXXyALeAdrI4JojQIAAAQIECBAgQIBASxKYMGFCZDKZ+NnPfvaZwz766KPj8ssv/8xzDhIgQKBUAtnHpta937NuYaO/3J9roroqMnvuFlUXnBeZbQaVqln1NpGAALSJ4DVLgAABAgQIECBAgACBliDQunXrmDhxYowcOTJuvvnmmDFjRhqIJu/8TB6RHzLECsot4XdgjATKQSC7ZElk756crugeM57Kdaljh8jsv29uYaNevcqhm/pQAgEBaAlQVUmAAAECBAgQIECAAAECywskj8MnHxsBAgQaWyA7f35kb7k1as+/KOKNObnmN+wemRGHRtWpP4hM586N3SXtNbKAALSRwTVHgAABAgQIECBAgAABAgQIECBQeoHs7NlRe/1NkR03PmLhB7kGP98rqk76XmSOHh2ZVmKx0s9CebRgpstjHvSCAAECBAgQIECAAAECBAgQIECgCALZ55+P2nGXRfbn10XUZnM1bjs4qn54TlTt9l9FaEEVzU1AANrcZkx/CRAgQIAAAQIECBAgQIAAAQIEVhDIPvzXqElWcv+/h3LnWlVHZq89cgsbbTlghfIOtBwBAWjLmWsjJUCAAAECBAgQIECAAAECBAhUlED2o48ie8dduYWNnnkuN7bOnSJz0AFRdc4Zkdlww4oar8GsnoAAdPXcXEWAAAECBAgQIECAAAECBAgQINBEAtl3343sr26J2h9eHPHmvFwvevWMzOHDo+oH349Mx45N1DPNlqOAALQcZ0WfCBAgQIAAAQIECBAgQIAAAQIEVhDIvvhibmGjn1wesWhx7vzGG+UWNvrukZGprl7hGgcICED9BggQIECAAAECBAgQIECAAAECBMpaIPv0M3ULG42P7A03RXy8rlFs/6W693ueG1U771TWfde5phcQgDb9HOgBAQIECBAgQIAAAQIECBAgQIDApwSy2Wxkp/xf1CYLGz3yaO5s61aR+dZeUXX+OZHZYvNPXeErgc8WEIB+toujBAgQIECAAAECBAgQIECAAAECTSCQXbw4sr+fFLVnnx/x/Au5HqyzdmQOOTiqzjotMp/7XBP0SpPNWUAA2pxnT98JECBAgAABAgQIECBAgAABAhUikH3rrcj+4tdRe+GPIt5+JzeqPr2j6ojvROb7x0emffsKGalhNLaAALSxxbVHgAABAgQIECBAgAABAgQIECCwTCA78/movfb6yF5+VcSHH+WOb9q/bmGjEyIzsi78rKpaVtYOgdUREICujpprCBAgQIAAAQIECBAgQIAAAQIE1kggO31GbmGjm3/1/+vZ8atRfcG5kdnhK///mD0CayggAF1DQJcTIECAAAECBAgQIECAAAECBAgUJpCtrY3sfffnFjaa+vfcRWu1icze38otbLRJ/8IqUopAAwQEoA3AUpQAAQIECBAgQIAAAQIECBAgQKDhAtkPPojsbb+L2nMviHhpVq6CdbtG5tC6hY3OrFvYaL31Gl6pKwgUKCAALRBKMQIECBAgQIAAAQIECBAgQIAAgYYJZOfOjexNv4zaH42NePc/uYv79c0tbPS9YyPTtm3DKlSawGoICEBXA80lBAgQIECAAAECBAgQIECAAAECKxfIPv1M1P78ushOuCbioyW5ggO2yC1sNPzQyGQyK7/YGQJFFhCAFhlUdQQIECBAgAABAgQIECBAgACBliqQnfaP3MJGt/wmR1CXc2a+vktUXVC3sNF227ZUFuNuYgEBaBNPgOYJECBAgAABAgQIECBAgAABAs1ZIFtTE9l77q1b2OiciH/8KzeUdm0js+8+UXXeWZHZeOPmPDx9rwABAWgFTKIhECBAgAABAgQIECBAgAABAgQaWyD7/vuR/c1tuYWNXnk11/z63SIz/JCoOu3kyHTt2thd0h6BzxQQgH4mi4MECBAgQIAAAQIECBAgQIAAAQKfJZB9/fXI3viLqL1kXMSC93JFNu0fVaOOiMyxYyLTps1nXeYYgSYTEIA2Gb2GCRAgQIAAAQIECBAgQIAAAQLNRyD78st17/e8LLLX/CxiaU2u4wO3Shc2qjrk4OYzED1tcQIC0BY35QZMgAABAgQIECBAgAABAgQIEChcIPvY1Kg967zI3ntf7qKqTGT22C23sNEXtym8IiUJNJGAALSJ4DVLgAABAgQIECBAgAABAgQIEChXgezSpZG9e3Jd8HluxPQnc93s0D4yB+wXVeecEZnevcu16/pFYAUBAegKJA4QIECAAAECBAgQIECAAAECBFqmQHbBgsjecmvUnn9RxOtv5BC6bxCZ7xwWVaecFJm1126ZMAWM+pVXXonbb789nnnmmWjdunUMGjQo9t1331ibWQF6pS0iAC2tr9oJECBAgAABAgQIECBAgAABAmUvkK0L77LX31T3js/xEe8vzPW3V8/0/Z6Zo78bmbpAz/bZAtlsNs4777y46KKLYsmSJcsVOumkk2LChAlx8MHekbocTCN/EYA2MrjmCBAgQIAAAQIECBAgQIAAAQLlIpB94YXcwkY/vy6ipjbXrSFfjKofnhNVu+9WLt0s636ccMIJcfnll39mH999990YNmxY1NTUxKGHHvqZZRwsvUBV6ZvQAgECBAgQIECAAAECBAgQIECAQDkJZP/6SNTsvFvU9PtC3aruP4/I1C1s9M1vRPU/p0arqX8VfhY4WY888shKw8/8KsaMGRNvv/12/iH7jSggAG1EbE0RIECAAAECBAgQIECAAAECBJpKIPvRR1F72+9i6RZbR80Ou0R2yoMRnTpGZtTIqJ71XFTf8bvIbL1VU3WvWbZ7zTXXFNTv9957L2655ZaCyipUfAGPwBffVI0ECBAgQIAAAQIECBAgQIAAgbIRyNY9hp391S1Re8GPIua+metXzx6ROXx4VP3g+5Hp1Kls+trcOvL3v/+94C4//vjjBZdVsLgCAtDieqqNAAECBAgQIECAAAECBAgQIFAWAtmXXora626M7PgrIj5YlOvTxhvVLWz0vch898jIVFeXRT+bcycWL15ccPc//PDDgssqWFwBAWhxPdVGgAABAgQIECBAgAABAgQIEGhSgewzz6aruWdvuCmiNpvry/Zfyi1stMvOTdq3Smu8f//+8VJd0FzIlpS1NY2Ad4A2jbtWCRAgQIAAAQIECBAgQIAAAQJFE8hms1E75f9i6Vd3iZrNt45s3Z2fUXeHZ2bot6N6xrRo9dcpUSX8LJr3JxUdeOCBn+yu8s/9999/lWUUKI2AALQ0rmolQIAAAQIECBAgQIAAAQIECJRcIFv3WHXt//4majbbMmp33j3i4Uci1lk7MmNGR/Xs56P69lsj84UtSt6PltrA8OHDY/Dgwasc/qhRo2KrrSwwtUqoEhUQgJYIVrUECBAgQIAAAQIECBAgQIAAgVIJZN9+O2ovuzJqem4ctQcPj3ju+Yjen4+q88+O6ldfjOoJl0dmgw1K1bx6PxZo1apV3HHHHTFo0KCVmuy3335x5ZVXrvS8E6UX8A7Q0htrgQABAgQIECBAgAABAgQIECBQFIHs889H7bU3RPbyqyIWf7yozib96hY2OiEyRxwemSr3uhUFugGVdO/ePR599NG49tpr49e//nU8++yz0bp16zQUTe783HvvvRtQm6KlEBCAlkJVnQQIECBAgAABAgQIECBQ0QK1tbVx//33x8MPPxwLFiyI3r17x1577RV9+/at6HEbXNMJZKfPyC1s9ItfRXy8rlF8bYeo/uE5kfnaV5uuY1pOBdq0aRNjxoxJP0jKT0AAWn5zokcECBAgQIAAAQIECBAgUMYC06dPj0MPPTT+/e9/L9fLE044IUaPHh2XXXZZrLXWWsud84XA6ggkCxtl/3Jf1J51XsRjj+eqWKtNZPb+VlSdd3ZkNt1kdap1DYEWJyAAbXFTbsAECBAgQIAAAQIECBAgsLoCTz31VHzlK1+J9957b4UqkrDqmmuuiZdffjnuvPPOugW4q1co4wCBQgSyixZF9rbfRe25F0S8+FLukq5dInPYsKg649TIdOtWSDXKECDwsYAXQ/gpECBAgAABAgQIECBAgACBAgVGjhz5meFn/uWTJ09O3wWYf8w+gUIEsm++GbVjf5Jb2Gj4Ebnws+/GUXXxD3MLG132Y+FnIZDKEPiUgAD0UyC+EiBAgAABAgQIECBAgACBzxL4+9//Ho899thnnVrh2IQJE1Y45gCBlQlk/x97dwEnVdX/cfx7Z5ZuaemUDgVUBEQxMBABA4MSCVEfQUIkJBQThIdHBRFpVBAkxAQRkBADVBokJJQSBaR37v3PuePyJzZml42Z2c95PfvszL3nnvs777vC8psTGzfJ172XfMXKyO7VRzr0l1S5ojzjx8i7ZZ08vXvKypIlrss5jgACCQgwBT4BIE4jgAACCCCAAAIIIIAAAgggYASCTX6aumad0BP+acxZSFoZDkocAs7qnwIbG703LVDDkqxGN8hjNja69po4ruIwAggkVoAEaGLFqI8AAggggAACCCCAAAIIIJAuBY4fP56ofpv6JEATRZYuKjs+n5wvF/g3Nhoo/bg60OfMmWS1aObf2Ki/rDJl0oUDnUQgNQVIgKamNvdCAAEEEEAAAQQQQAABBBAIW4EyiUhM5c6dW5dddlnY9pXAk1/AOXZMzrQPZQ8aIu3cFbhB/nyyWj8kz7O9ZOXNm/w3pUUEEHAFSIDyg4AAAggggAACCCCAAAIIIIBAEAI333yzcuTIkeAmSKapFi1ayLL885kp6V7A+eMPOeMnyX51mHT4SMCjfFl5OrSX9WQXWZkypXsjABBIaQE2QUppYdpHAAEEEEAAAQQQQAABBBCICAGT/Bw8eHCCfcmVK5eee+65BOtRIbIFnJ075fvP0/KVKCe774BA8rNGNXmmjFfUprXy9OhG8jOyfwToXQgJMAI0hB4GoSCAAAIIIIAAAggggAACCIS2QNeuXbV7924NG+YfzRdLyZMnj+bMmaPixYvHcpZD6UHA+e572c8NlvPF/EB3PZasxrfIM/g5WbVrpQcC+ohAyAkwAjTkHgkBIYAAAggggAACCCCAAAIIhLLA0KFD9dVXX6lJkyYyCc+oqCiVLl1a3bp10/r161W/fv1QDp/YUkDAiY6WPXeeomvUlu/q+oHkZ9Ysstq2knfrBnk/m0vyMwXcaRKBYAUYARqsFPUQQAABBBBAAAEEEEAAAQQQ+FfgxhtvlPmipG8B58gROR9Mlz34RWnP7wGMQgXdxKfnmR6y/JthJVdxHEcrVqzQ8uXL9c8//6hUqVK67bbbVKBAgeS6Be0gELECJEAj9tHSMQQQQAABBBBAAAEEEEAAAQQQSAkBx78MgjNuouyhw6Wj/wRuUamCPB0fldWlk6wMGZL1tmZkcevWrfXjjz+e124m/wZKvXr10sCBA+XxMMn3PBzeIHCOAAnQczB4iQACCCCAAAIIIIAAAggggAACCMQl4Gzd6k96jpDzzruSzw5Uq3Wlu6GR5/5747rsko6vW7dOdevW1RH/aNMLy6lTp/T888/rt99+08SJEy88zXsEEPhXgI8H+FFAAAEEEEAAAQQQQAABBBBAAAEE4hFwli2Xr1Fj+cpWljP6Hbemdedt8q5eqajvlyulkp9m2rsZ+Rlb8vPccCdNmqSZM2eee4jXCCBwjgAJ0HMweIkAAggggAACCCCAAAIIIIAAAggYAefMGdkzZym6Sk356t0oZ+EiKUd2WR0ekXf7Jnk/niWrRvUUxVq2bJlWrVoV1D1GjhwZVD0qIZAeBZgCnx6fOn1GAAEEEEAAAQQQQAABBBBAAIFYBZy//5Yz9X3ZL7ws7d0XqFPkclmPtHGnuls5c8Z6XUocNJseBVvM5khmxKhlWcFeQj0E0o0ACdB086jpKAIIIIAAAggggAACCCCAAAIIxCXg7Ngh+90Jcob7R1IeOx6oVqqkP+nZVZbZ3Cgq9VMoR48ejSvci45HR0fr9OnTMhsjURBA4HyB1P+v9/z78w4BBBBAAAEEEEAAAQQQQAABBBBIMwFn02Z3N3dn3ATJdgJxXHu1PIOfk+emRmkWl7lxqVKlgr5/oUKFSH4GrUXF9CZAAjS9PXH6iwACCCCAAAIIIIAAAggggAACchYvka//IOmbZQGNDFGymt7uT3wOkFWlckgI3X777cqYMaM7sjOhgJo1a5ZQFc4jkG4F2AQp3T56Oo4AAggggAACCCCAAAIIIIBA+hJwTp2S/cF0RVeoKl/DWwLJz1w5ZT3WUd7ftsj70fSQSX6aJ1OwYEH16NEjwYeUO3du9enTJ8F6VEAgvQowAjS9Pnn6jQACCCCAAAIIIIAAAggggEA6EXAOHZIzaarsF1+RDhwM9Lp4MXnat5X19FOysmcPWYnBgwfrt99+09SpU2ON0SQ/58yZo6JFi8Z6noMIICAxApSfAgQQQAABBBBAAAEEEEAAAQQQiEgBZ+tW+Xr3la9oadndegaSn+XLyjPmTXm3bZTnub4hnfw0D8Xr9WrKlCmaNm2arrvuOve9OW5Gh3bu3Flr1qxRgwYNzCEKAgjEIZCkEaBnzpzRsmWBNTLq1q3rrkcRR/sXHf7www+1fv16Va9eXXffffdF5zmAAAIIIIAAAggggAACCCCAAAKpL/Dnn39q/vz52rNnj/LkyeMm1cqWLZv6gSTDHZ216wIbG02aIv27r5Ea1JPXv7GRdX14Jgvvu+8+mS/btnXKP5U/S5YsySBFEwikD4EkJUAP+YeO33DDDa7QH3/8IbPTWLClffv2Onr0qDp06EACNFg06iGAAAIIIIAAAggggAACCCCQQgLR0dHq37+/Xn/99Ys22zEDl95++20VKFAghe6efM06jiPnq4WynxssrVgZaDhjBll33yXPIH/is8IVyXezNGzJ4/GQ/ExDf24dngJJSoAmtasnTpyQ+TLFfLJEQQABBBBAAAEEEEAAAQQQQACBtBMwownvuecedw3J2KKYPXu2fvnlF3377bfKnz9/bFXS/JjjzzM4M2fJHviCtHVbIJ48uWW1elCevr1lhUHyNs0RCQCBCBdIMAH60Ucf6ffffz+PwYzgjCnjx49Xjhw5Yt7G+d0Mz/7ss89kPlkypXLlynHW5QQCCCCAAAIIIIAAAggggAACCKS8gBndaTbQia9s27ZNTzzxhLsGZXz1Uvucc+CAnIlTZL/8mn+U1aHA7UuXkufRdrKeekJW1qypHRL3QwCBEBVIMAHq8/n05JNPxhl+nz594jwX34mrr746vtOcQwABBBBAAAEEEEAAAQQQQACBFBYYPnx4UHeYPn26hg0bFhI7jTubNst+5105b4ySTp0OxF+pgjw9uslq00qWf4o4BQEEEDhXIME/Fe69917dfPPN515zya979+6tO+6445LboQEEEEAAAQQQQAABBBBAAAEEEEiawP79+7Vly5agL47ZDDnoC5K5orP6J/keaiNfhWpyhv1X/gVLZd3YUN6lCxW17id52rUh+ZnM5jSHQKQIJDgC1HR07NixWrhw4dk+HzlyRE899ZT7fsSIEcqVK9fZc7G9sCxLmTNnVvbs2d2p7yVLloytGscQQAABBBBAAAEEEEAAAQQQQCCVBA4fPpyoO5lcQGoXx79GqfPFfP/GRoOkH1YFbp85k6wWzeQZ0E9WubKpHRL3QwCBMBQIKgFavHhxtW3b9mz39u3bdzYBev/99ydqF/izjfACAQQQQAABBBBAAAEEEEAAAQTSTODyyy+X1+uVWfoumGJyA6lVnGPH5EyfIXvwi9KO3wK3zZfXP8X9YXl695SVL19qhcJ9EEAgAgSCSoBe2E+z6ZEZ+WlKzpw5LzzNewQQQAABBBBAAAEEEEAAAQQQCHGBbNmy6aabbtIXX3yRYKTm3/4NGjRIsN6lVnD27pUzfpLsV4dJf/87QrVcGXk6Pirricdk+WeXUhBAAIHECiQpAZrVv5NazBT4xN6Q+ggggAACCCCAAAIIIIAAAgggEBoCzz//vBYsWJDgKNCBAwcqS5YsKRa0s2697DFj5YwaI52JDtynetXAxkYPPSCztB4FAQQQSKpAgpsgBdOw4zg6c+bMRVU3bNjg7hLXpEkTtW7dWrNnz5apS0EAAQQQQAABBBBAAAEEEEAAgbQXqF27tsaNG6eoqLjHR3Xq1EndunVLkWCd73+Q7/6H5KtypZyRb8mfiZV1683yrvxGUT99L8/DD5L8TBF5GkUgfQlcUgL0999/14ABA1S6dGl9/fXX58mZT5CqVq2qHj16aN68eZo8ebKaNWt23lqi513AGwQQQAABBBBAAAEEEEAAAQQQSHUBM2Dpu+++U9OmTZUxY8az97/66qv14YcfavTo0WePJccLx5/ktD/+RNE168hXp55/rc+ZUtYs7vqe3l/Xy/v5x7Lq1E6OW9EGAggg4ArE/RFPAkCnTp1S48aNtWbNGrfm1q1bz16xa9cutWzZMtYh9JMmTVL16tX19NNPn63PCwQQQAABBBBAAAEEEEAAAQQQSDuBmjVrurM2o6OjdfDgQeXOnVuZk3m9TefoUTnvT5P9/EvS7j2BzhYsIKttK3me6SErT560A+DOCCAQ0QJJHgHap0+fs8lPsxaHx/P/TZlPh/78808XrkaNGlq6dKm7psiVV17pHuvVq5fWrVsX0bB0DgEEEEAAAQQQQAABBBBAAIFwEzBT4QsVKpSsyU9nzx7/bu5D5CtaWnanJwLJz4pXyDP8NXl3/irvy0NIfobbDwrxIhBmAkkaAerzD1d/88033a6apObYsWNlPi2KKR988EHMS3ctkZhzZlp8yZIldeTIETcpWrly5bP10suLEydOyIyQPXbsmPtlLM1uerly5XK/8ubNm14o6CcCCCCAAAIIIIAAAggggEAECzjbtskeOkLOO+9K0b5AT2td6W5s5Ln/3gjuOV1DAIFQE0hSAtRMdzdT4E3p3bv3ecnPTZs2aZv/DzlTrrjiivPO5fEPZ7/nnnvcpOiqVavcOunh/8xaKqNGjdKSJUu0Y8cO2bYdZ7fz588vs85K3bp11a5dO/eTtzgrcwIBBBBAAAEEEEAAAQQQQACBEBNwlq+QPeB5OQsWBiLzemTdeZs8g56TdeX/D54KsbAJBwEEIljg/+etJ6KT69evd2t7vV7dfPPN51352WefnX1/2223nX0d88KMADVl9erV7vdI/r8ZM2bI7KhnEpoTJkxwE8PxJT+NxYEDB9xNo8wSA8aqc+fOOnz4cCQz0TcEEEAAAQQQQAABBBBAAIEwF3DOnJH90WxFV71SvutuCCQ/s2eT9Wg7ebdtlPfjWSQ/w/wZEz4C4SyQpBGgO3fudPtcpEgRd2HkcwHOTYDeeuut555yX5/x/6FoillYOZKLWRagQ4cO53Uxa9asKlGihIoWLaocOXK4a6qYJPLJkydlpsbv27dPxtZ8N8WMsn377be1fPlyGVfjTUEAAQQQQAABBBBAAAEEEEAgVAQc/4AdZ+r7sl94WfpjbyCsywvLeqSNO9Xd8i/3RkEAAQTSWiBJCVCTwDNl//7958VvknhmmrcpZre466+//rzz5s3GjRvdY8WLF7/oXKQcMCM/O3Xq5HbHJD27dOmi+++/310OwCQ8Eyp7/AtEf/HFFxo6dKg2bNjgbjbVvHlzrVy5MqFLOY8AAggggAACCCCAAAIIIIBAigs4v/0m+90Jcl7/r3TseOB+JUv4k55dZXV8VFaGDCkeAzdAAAEEghVI0hT4smXLuu2bkYtmY6OYMm3aNHc0o3l/ww03KEuWLDGn3O/bt2/X7Nmz3delSpU671wkvenevbu7zmf27Nm1cOFCvfbaa6pVq5aCSX4aBzPS85FHHpFZJ7VRo0YujVlH1CRWKQgggAACCCCAAAIIIIAAAgiklYCzabN8HR6Tr0xFOc+/FEh+XlNHni8+VtT2TfI8/hjJz7R6ONwXAQTiFEhSArRq1aqqWLGi22j79u01d+5cvffee3r66afP3qhVq1ZnX5sXK1as0E033aSYKfBt2rQ573ykvNm9e7c7jd30591333XX/0xq38wo2jlz5qhYsWJuE+Y1BQEEEEAAAQQQQAABBBBAAIHUFnAWL1F0w5vlq1BNztjxkmXJuruJvD9/r6gVS+S55fz9QVI7Pu6HAAIIxCeQpASo5f+D7rnnnnPbNWtWNm3aVA899JD++usv91iDBg3UokWLs/dt2LChu6t5zO7wd911l2rUqHH2fCS9MOt1mpIxY0bdeeedl9y1bNmyKWYt1c2bN19yezSAAAIIIIAAAggggAACCCCAQDACzunTsqd9qOiK1eRreIu0+BspZw5Zj3WUd8dmeWd9KKta1WCaog4CCCCQpgJJWgPURNyyZUt3kx6z0U/MqE5z3IwMNdPcTQIwpuQ6Z9FjkxScMmVKzKmI+25GgJpy2WWXyaz/mRylcOHCbjNmjVUKAggggAACCCCAAAIIIIAAAikp4Bw6JGfye7JffMW/+ceBwK2KFZXHv6O79fRTsvzLvVEQQACBcBJIcgLUdNJMY7/lllu0ePFi7dixw133s3bt2vJ4zh9YakZ7Oo7jbgT0wAMPXHQ+nMASirVMmTJulb1797omJUuWTOiSBM8vWrTIrVOzZs0E61IBAQQQQAABBBBAAAEEEEAAgaQIONu2yX5nnJz/viGdOBloolyZwG7u7f3JzyA29U3KfbkGAQQQSGmBS0qAmuDM6EQzGjS+MmjQoPhOR9Q5k+w1CWDbtvWf//xHH330kaKiks48fvx4LV261DUyGylREEAAAQQQQAABBNJGwPx+9/3337sfcpvNLq+++mrly5cvbYLhrggggEAyCjjr1sseOlzOpCmS7QRarn+dPIP6y3NDw2S8E00hgAACaSNw/lDNtIkhou5aokQJd2Ss6dTHH3+su+++W+vXr090H810d7N7/KOPPuqOni1QoICaN2+e6Ha4AAEEEEAAAQQQQODSBcwSTsWLF9c111zjfvhvlnUqWLCgWrdurT///PPSb0ALCCCAQCoLmFma9lcLFX1dQ/mqXClnwmT5R+/Iure5vOtWK2rJVyQ/U/mZcDsEEEg5gaQPTUy5mMK+5SFDhrijNrds2aJPPvnE/apUqZKuv/56mSnyJkmaI0cOZcmSxR0devLkSZmE5759+9wd5H/88Ud98803Onz4sGthRpBOmzZNRYoUCXsbOoAAAggggAACCISbwIABAzR48OCLwjYjQidPnqwVK1Zo2bJlMh9YUxBAAIFQF3D8//50Znwke9AQ6detgXDz5Jb18IPy9Oklq1ChUO8C8SGAAAKJFog3AWqmX3fr1s1t1CTwYnY4379/v8qXL5/om517Qe/evWW+IrGYZQGMVbNmzc5OXzejQJMyEjRPnjx644031LBhw0ikok8IIIAAAggggEBICyxcuDDW5Oe5Qf/666/urJ25c+eee5jXCCCAQEgJOAcPuqM87VeGSgf/HbleqmRgY6OuT8pKpk18Q6rTBIMAAgj8KxBvAvT06dNnRyEeOXLkLJoZKh8zOvHswUS+OHXqVCKvCK/qZj0oM4rz888/16uvvuq+jo6ODroT5cqV03333aennnpK+fPnD/o6KiKAAAIIIIAAAggkn8Arr/h3QA6imKWPzIfdZtAABQEEEAglAWfzFtljxsp5c7R08t9/h1eqENjYqE0rWRdsYhxKsRMLAgggkFwC8SZAzTTtmF3Mz51+7fXv/BZzPKmB5M6dO6mXhtV1jRs3lvkyU9zN1HbzdeDAATeBbJLKJsmcLVs2mYX0zbQp80tzlSpVVLZs2TTrp5m6P2rUKCUmYRtXsD/88IN7yvSTggACCCCAAAIIhJOA+dB/0aJFQYf89ddfkwANWouKCCCQ0gLOTz8HNjZ67wPJ7Gtk+f93Y0N3YyOr3nUpfXvaRwABBEJKIN4E6IMPPijzdWExoxu3b99+4WHexyNg1vusV6+e+xVPtZA49c4772j48OHJGsvff/+drO3RGAIIIIAAAgggkNIC//zzj/thdbD3YTOkYKWohwACKSXg+Ncmdr6cL3vA89J3gcEoypRRVotm8gzoJ6t8uZS6Ne0igAACIS0QbwI0pCMnuBQT6NWrl0qVKpUsI0AnTZokMwo0b968KRYvDSOAAAIIIIAAAikhYGZDmVk6JhEaTDHrwFMQQACBtBBwjh+XM32G7MEvStt3BELIe5msNg/L07unLJZVS4vHwj0RQCCEBEiAhsjD+Ouvv7Ru3TodO3ZMxYoVc3eLz5QpU5pEZ0b4PvbYY8ly75UrV7oJULNsAgUBBBBAAAEEEAg3AbOU0YwZMxIM27Is3XLLLQnWowICCCCQnALOvn1yxk+S/eow6a9/Z92VLSNPx/aynuwiK3Pm5LwdbSGAAAJhK+AJ28jDIPCD/l32/ve//+m2227Td999d1HEZ86c0csvv6zLL79cl112merXr++uF1q5cmUVKlRIHTt2lFmPk4IAAggggAACCCCQNgL9+vVTVFTCYwbat2+vEiVKpE2Q3BUBBNKdgLNho3xdu8tXvKzsZ/sHkp/Vqsgz6V15N6+Vp+fTJD/T3U8FHUYAgfgE4v1tbtWqVfr000/juz7J5xo0aCDzFanF7ADfsmVL/f77724XO3XqdF5XzWhPc37t2rXnHY95Y9bMNGtxTpkyRcOGDUu2EZkx7fMdAQQQQAABBBBAIGGB6tWru7+TmQSn7V9bL7ZiPsT+73//G9spjiGAAALJKuB8/0NgY6PpMwPteixZt9wU2NjomquT9V40hgACCESSQLwJ0O+//179+/s/TUqBMnDgwIhNgJrE8Y033njeGppmx/eYYqa5N2/eXJs3b3YPmSlTNWrUUPny5ZUnTx5t3bpVP//8s/bv3+/uHt+lSxd3/alWrVrFNMF3BBBAAAEEEEAAgVQSaNu2rcqVK6c+ffpoyZIlZ+9aoEABPfnkkzLrp2fMmPHscV4ggAACySng+HxyPv1c9kD/xkarfgo0nSWzrPvukee5PrJKl07O29EWAgggEJEC8SZAI7LHqdCprl27nk1+mqRl7969ValSpbN37t69+9nkZ7Vq1TR69Ghde+21Z8+bF6dOnXJHEgwaNEjH/QtamxGkZg2q/CxefZ4TbxBAAAEEEEAAgdQQuO6667R48WKZnd5/++03mQ2SypTxr7PnYUWp1PDnHgikRwHHvwGb8/402S+8LO3cFSAokF9Wu9by9Oouy7+MGgUBBBBAIDiBeBOgt956q2bPnh1nS9OnT9d7773nnje7hj/++OOqUKGCihYtKrORzt69e91fEBcuXKixY8e6ST0zjWjatGnuGpdxNhzGJ9asWSMz/d2Udu3aady4cef1xuf/9G7y5MnusYIFC2r+/PkyowcuLGYDJDOaoHjx4nrggQfckaDG8Nlnn72wKu8RQAABBBBAAAEEUkkgb968Ml8UBBBAIKUEHP8yas67E2QPGyEd/ncmYYXy8nTqIOuxjrLSaLPclOov7SKAAAKpIRBvArRkyZIyX7EVk+SL2RHz9ddfd6f/XLhAfJEiRXTVVVe5072feeYZNW3aVKtXr3YTezNn/rtmSWyNh/GxjRs3utGbae1Dhw69qCcbNmxwR3SaE2YaVWzJz3MvMuuEmrVATRLZjDogAXquDq8RQAABBBBAAAEEEEAAgcgQcLZv96/vOULOmLFStC/QqatqytOjmzwt74uMTtILBBBAII0Ekjxn56GHHtLp06f19NNPq1u3bgnujlmsWDHNmjVLuXPn1ty5c2VGj0ZiMVOiTDEjN83O7heW7f6/1GJKnTp1Yl7G+91MuTIlpu14K3MSAQQQQAABBBBAAAEEEEAgbAScFd/Kd+ud8pWuKOettyXHkXVHY3l/WK6oH1aQ/AybJ0mgCCAQygJJSoCaTXp27QqsQWKSn8GWEiVKyEyrN2XZsmXBXhZW9cqWLevGu2fPHv31118XxV6rVq2LjiV0wCwlYEpCo0UTaofzCCCAAAIIIIAAAggggAACaS/gREfLnjVH0dWukq9uQzlfLpCyZZXVvq28WzfIO2+2rKuuTPtAiQABBBCIEIEkJUCXLl3qdt+s82nW+0xMidkM6Ntvv03MZWFTNybBGe3/C+3jjz++KO7ChQsrJkn63XffXXT+wgOO/9O/Tz75xD1slhOgIIAAAggggAACCCCAAAIIhKeAc/iw7LdGy1einOzm90tr1kmFC8nq+4y8e7bLO3a0LP/AIQoCCCCAQPIKJCkBajbyMcXsgnnY/wd4YorZJMiULFmyJOaysKlrEsImyWnKCy+8oN/9C1hfWFq0aOEeeumll1zDC8+f+/7VV18920ZMcvXc87xGAAEEEEAAAQQQQAABBBAIbQFn5075nhskX9HSsh/vKv3+h1Slkjz/e13e37bI+8IgWblyhXYniA4BBBAIY4EkJUDLlSvndtmMTvzggw+C7r6ZOv/ll1+69StWrBj0deFW8Y033nBD3rJli+rXr69PP/30vC4MGTJEd999t8zU9jvvvFMxGyedW+nMmTPq1KmTevfu7R6uUKGC7rrrrnOr8BoBBBBAAAEEEEAAAQQQQCCEBZzNW+Tr2MW/vmcFOc+/JP1zTLqmjjwz3lfUmlXyPNFFVoYMIdwDQkMAAQQiQyDeXeDj6uK1114rs56n2ZSna9euMsm566+/Pq7q7vHdu3e7Sb8jR4647zt06BBv/XA+2bx5c3enezN6c9u2bbrjjjtUu3ZtNW7c2HUyo0RHjhzpjv785ptvVL16dd1yyy2qXLmy222zPMD3339/drf4rFmzasaMGcqePXs4sxA7AggggAACCCCAAAIIIJAuBJwl38ge+IKcrxcH+hvllXV3E3kG9pdVvVq6MKCTCCCAQCgJJCkBGhUVpb59+6pjx446efKkGjZsqNtuu02dO3dW6dKl3XVBTdLObJRkkqSzZ8/WmDFjdOrUKbfv99xzj4LdAT2UsBITy4svvqgTJ07ozTfflG3bbkLTJDWff/75i5o5ffq05s2b535deNI4Tpgw4Wxy9MLzvEcAAQQQQAABBBBAAAEEEEh7Acf/7zpn9lx/4tP/b74NmwIB5cwh68GW8vjX+LQSuX9G2veICBBAAIHIEUhSAtR034zgXLt2rTuS0bz/7LPP3C/zOr5iRo9OmjQpvioRcc7r9bo2bdq00fDhwzVnzhz9888/QffNrJHatGlTdx3RMmXKBH0dFRFAAAEEEEAAAQQQQAABBFJPwPnrLzmT35P94ivSvv2BGxctIs+j7WQ9/ZSsHDlSLxjuhAACCCAQq0CSE6CmtREjRqhmzZp69tln3fUsY73DvwczZszormfZp08fZcqUKb6qEXXO7Nw+ZcoUdzr7ihUr3KTxunXrdODAATchapKiGfxrvuTw/6WYO3dumbVRq1atqhtuuEE5c+aMKAs6gwACCCCAAAIIIIAAAghEioCzfbvsd8bJ+a9/D4jjJwLdKltGnh5dZbX3Jz/9MycpCCCAAAKhIXBJfyJblqW2bdvqvvvu04IFC9zNfjZs2KD9+/e7U+MLFizoToc3a1+aTX/y5csXGr1OgyjMVPZGjRq5X2lwe26JAAIIIIAAAggggAACCKS5wN9//61NmwLTw81eErnCcOdzZ9162UOHy5k0RbKdgGm9uv71PfvJ0+jGNDe+1ADMPhZ79uxRnjx53AE6ZnYjBQEEEAh3gUtKgMZ03iT3zA7l7FIeI8J3BBBAAAEEEEAAAQQQQACBGAGTVOvZs6e7NJjP53MPm70lzECZ1157TSVLloypGpLfHceRs/Brd2MjLV0eiDFDlKzm/25sVLlSSMadmKA++ugj9evXT2ZQU0zJnz+/unXr5j4787woCCCAQLgKeMI1cOJGAAEEEEAAAQQQQAABBBAIfYEff/xRZmkwk2CLSX6aqKOjozVjxgz33E8//RSSHXH8m/7aU9+Xr0JV2TfdLjf5mTuXrCe7yPvbFnk/fF9WBCQ/Bw0apBYtWpyX/DQPxCzdZpaxu+OOO2Q276UggAAC4SpAAjRcnxxxI4AAAggggAACCCCAAAIhLnDixAl3lKeZ+h5XOXTokJo1a+YuoxZXndQ+7hw8KHvYCPmKl5X9cDtp869SyRLyDBkk7+5t8o58XVbhwqkdVorcz2xoPHDgwHjb/vLLL9W/f/9463ASAQQQCGUBEqCh/HSIDQEEEEAAAQQQQAABBBAIY4Hx48dr9+7dCfZgx44dmjx5coL1UrqC8+uv8vXsLV+xMrJ79PYPgTwoVbxCnndHy/vrenn6PCMrW7aUDiNV2x88eHBQ9zObIB8+fDioulRCAAEEQk2ABGioPRHiQQABBBBAAAEEEEAAAQQiROCLL74IuieJqRt0o0FWdH7+Rb5W7eQrX0XO0BHSqVOybrhe3sXzFbX+Z3keaSsrAjcDMgnNb7/9NiglMwV+8eLFQdWlEgIIIBBqAqxiHGpPhHgQQAABBBBAAAEEEEAAgQgR2LdvX9A92bt3b9B1k6OiY9ty5i+QPeB5aeX3gSYzZfRvbHS3PAP6ybqifHLcJqTbSMzzMR1J7WcU0ngEhwACYSVAAjSsHhfBIoAAAggggAACCCCAAALhI2B2EQ+2JKZusG3GVs85flzO9Bmyn39J2rY9UCXvZbJaPyRP756yChSI7bKIPJZY88TWj0g0OoUAAmEpwBT4sHxsBI0AAggggAACCCCAAAIIhL5Ao0aNgg7ypptuCrpuUio6+/fLfvm1wPqe7ToGkp9lSsvzyhB5d22V9/XX0lXy0xjmyZNHV155ZVCcUVFRatCgQVB1qYQAAgiEmgAJ0FB7IsSDAAIIIIAAAggggAACCESIQPv27VUgiBGVhf07qrdt2zZFeu1s3CRf1+6BHd2f9e9kfugvqVoVeSa9K++WdfL06i4rS5YUuXc4NNqnT5+gwuzcubPy5s0bVF0qIYAAAqEmQAI01J4I8SCAAAIIIIAAAggggAACESKQI0cOzZgxQ1mzZo2zR9mzZ3frZEvm3dWdH36Ur+XD8lWsLue/b0r+TXysW26Sd/kiRf38gzytHpJlWXHGlV5OtGjRQl27do23u3Xr1tWrr74abx1OIoAAAqEsQAI0lJ8OsSGAAAIIIIAAAggggAACYS5Qv359rVy5UjfeeONFPTHT3s05k2BLjuL4fLLnfaroWtfKV/s6OdNmSFkyu+t7ejevlfeLebKuvSY5bhVRbQwfPlzvvvuuihQpcl6/svhHxvbs2VNfffWVzGsKAgggEK4CbIIUrk+OuBFAAAEEEEAAAQQQuESBU6dOadu2bbL9u2GXLl2aBMclenJ53AJVqlRxk2i7du3SunXr3JGX5tiFCbe4W4j/jPPPP3I+mC77hZel33YGKufPJ6td68AUd6Zuxw/oP/vII4+4yxD89NNP2r17t7s+aK1atfhzIUE5KlyqwL59+/THH3+4SywUK1bsUpvjegRiFSABGisLBxFAAAEEEEAAAQQQiFyB/f7NYPr166f33ntPx44dczuaOXNm3XPPPXrxxRfFP0Aj99mndc/Mz1Zy/nw5/qSJ8+4E2UOHS4ePBLp3RTl5OnWQ1aWTrEyZ0rrLYXV/j8fjbooU7MZIYdU5gg05gXnz5mnAgAFatWrV2djKlCmjZ555Rh06dDh7jBcIJIcACdDkUKQNBBBAAAEEEEAAAQTCRGDLli264YYbtGfPnvMiPnnypKZMmaLPP/9c8+fPV40aNc47zxsEQknAWbtO9uh35IwZK52JDoR2ZQ15enST1fI+1vYMpYdFLAjEIjB48GA3+Xnhqa1bt6pjx45avHixJk+ezH/LFwLxPskCrAGaZDouRAABBBBAAAEEEEAgvAR8/vURmzdvflHy89xeHDx4UE2bNtWJEyfOPcxrBEJCwFnxrXwt7pev6lVy3hwt+X+mrdtvlfe7pYr68Vt5HrifhElIPCmCQCBugY8//jjW5Oe5V0ydOlVDhw499xCvEbgkARKgl8THxQgggAACCCCAAAIIhI/Ahx9+qLVr1yYY8M6dO90NURKsSAUEUkHAiY6WPWuOomvUlq9uQzkfzZGyZZXVvq28WzfI+8kcWbVrpUIk3AIBBJJDwEx7D6YMGTJEZq1qCgLJIUACNDkUaQMBBBBAAAEEEEAAgTAQ+PTTT4OOMjF1g26UiggkQsA5ckT2qLflK1ledvP7pZ/XSIUKyur7jLy7t8k7drSskiUT0SJVEUAgrQX27t2r1atXBxXG4cOHtWLFiqDqUgmBhARYAzQhIc4jgAACCCCAAAIIIBAhAr///nvQPUlM3aAbpSICQQg4/p3i7bHj5QwfKR39J3BF5YrydPZvbNTxUVkZMwbRClUQQCAUBRL7d0ti64din4kpNARIgIbGcyAKBBBAAAEEEEAAAQRSXCBv3rxB3yMxdYNulIoIxCPgbPnV3c3dGTdBivYFal5d293YyHNP83iu5BQCCISLQGL/bkls/XBxIM7UF2AKfOqbc0cEEEAAAQQQQAABBNJEwOz+HmxJTN1g26QeArEJON8sla9RY/nKV/Hv6v6uW8Vqeqe8q75V1LffiORnbGocQyA8BUqUKKFSpUoFFXxG/2jvunXrBlWXSggkJEACNCEhziOAAAIIIIAAAgggECECrVq1UqFChRLsTc6cOdW5c+cE61EBgaQKOKdPy/5wpqKr1JSvwU1yFi6ScmSX1elRebdtlHf2DFk1ayS1ea5DAIEQFnjmmWeCiq5Lly7KkSNHUHWphEBCAiRAExLiPAIIIIAAAggggAACESKQLVs2TZ8+XVmyZImzRxkyZNDUqVOVL1++OOtwAoGkCjh//y175JvylSgn+76HpHUbpCKXyxrQN7Cx0eg3ZBUrltTmuQ4BBMJAoGPHjmrZsmW8kV577bV68cUX463DSQQSI0ACNDFa1EUAAQQQQAABBBBAIMwF6tev7+6qG9u0wpo1a2rx4sW68847Jt1/DQAAQABJREFUw7yXhB9qAs6OHfL16S9f0dKyn+ou7d0nlS0jz6iR8u7YLO/A/rL8I48pCCAQ+QKWZbkftL388ssyMw7OLeZDuKeeekpfffVVvB/WnXsNrxEIRoBNkIJRog4CCCCAAAIIIIAAAhEkUL16dS1btkybN2/WL7/8Itu2VblyZfcrgrpJV0JAwFm/IbCx0cTJku0EIqpXVx7/iE/PTY1CIEJCuFDg+PHj2rt3r3Lnzq3LLrvswtO8RyBZBDwej8xUeJPsXL58uf744w+ZDY/Mh3MXJkWT5YY0ku4FSICm+x8BABBAAAEEEEAAAQTSq0D58uVlvigIJKeA4zhyvl4ke9AQacnSQNMZomQ1b+JPfPaTVaVyct6OtpJJwCShBgwYoIULF7ofiphmq1Spop49e6p169bJdBeaQeB8gcyZM+vGG288/yDvEEgBAabApwAqTSKAAAIIIIAAAggggAAC6U3AOXVK9nsfyFexmuxGtwWSn7lyynriscA09w/fJ/kZoj8Ub7/9tszyGAsWLDib/DShrl27Vm3atHEToCaxTUEAAQTCVYARoOH65IgbAQQQQAABBBBAAAEEEAgBAefPP+VMnCL75dekAwcDEZUoLk+HR2Q99YSs7NlDIEpCiEvALIdhdts2S2HEVSZPnqxKlSqpd+/ecVXhOAIIIBDSAowADenHQ3AIIIAAAggggAACCCCAQGgKOFu3ytfrWfmKlZHd/ZlA8rNCeXnGjpJ36wZ5+vYm+Rmaj+68qJ577rl4k58xlYcMGSKzPigFAQQQCEcBEqDh+NSIGQEEEEAAAQQQQAABBBBIIwHn51/ka9VOvnKV5bw2XDpxUlbDBvIu+lJRG36Rp307WV5vGkXHbRMj8M8//2jRokVBXWLqLl68OKi6VEIAAQRCTYAp8KH2RIgHAQQQQAABBBBAAAEEEAgxAXdjoy/nBzY2WrEyEF2mjLKaNZXnub6yKlYIsYgJJxgBs/N2fFPfL2xj165dFx7iPQIIIBAWAiRAw+IxESQCCCCAAAIIIIAAAgggkPoCzokTcqbPkP38S9LWbYEALssjq83D8jzTQ1bBgqkfFHdMNoHcuXMnqq08efIkqj6VEUAAgVARIAEaKk+COBBAAAEEEEAAAQQQQACBEBFw9u+XM36S7Ndel/48FIiqdCl5Oj3q7upuZc0aIpESxqUI5M+fXxUqVNDGjRuDaqZevXpB1aMSAgggEGoCrAEaak+EeBBAAAEEEEAAAQQQQACBNBJwNm2Wr1sP+YqXld27XyD5WbWyPBPHyrtlnTy9uovkZxo9nBS6bY8ePYJq+eGHH1bhwoWDqkslBBBAINQESICG2hMhHgQQQAABBBBAAAEEEEAglQWcH1fJ90Ar+SpWkzPiDen0aVk3N5J36UJF/fKjPK0fluXhn4+p/FhS5XaPPPKIWrZsGe+9zCjRkSNHxluHkwgggEAoC/A3WCg/HWJDAAEEEEAAAQQQQAABBFJIwPH5ZH/ymaLrXCdfrbpyPvhQypRJVqsH5d20Vt4vP5F1Xd0UujvNhoqAZVmaOnWqBg8erKyxLG3w4IMPavny5WL9z1B5YsSBAAJJEWAN0KSocQ0CCCCAAAIIIIAAAgggkAoCZofuQ4cOKUeOHP7cZKZkuaNz7Jic96fJHvKKtOO3QJv58spq1zowxT1fvmS5D42Ej4DHP7q3f//+6tq1qxYtWqTdu3e7Cc8GDRro8ssvD5+OECkCCCAQhwAJ0DhgOIwAAggggAACCCCAAAIIpJXA+vXrNWjQIM2bN0/Hjx93w6hTp466deuW4HTluGJ29u6VM3a87GEjpL8PB6qVL+vf2KiDrC6dZGXOHNelHE8nAibR3qRJk3TSW7qJAALpSYAEaHp62vQVAQQQQAABBBBAAAEEQl7go48+kpl2fOrUqfNi/e677/TAAw/o888/17hx42RG7QVTnHXrZY8aI+edd/1re54JXHJlDXl6dJPV8j6ZKdAUBBBAAAEEIlmABGgkP136hgACCCCAAAIIIIAAAmElsG7duliTn+d2YuLEiSpXrpz69u177uGLXjvfrpQ9dLicmbMD5zyWrNtvlWdAP1l1al9UnwMIIIAAAghEqkBwHxlGau/pFwIIIIAAAggggAACCCAQQgIDBw68aORnbOG9+OKLOnz432ns51RwoqNlz56r6Jp15Lv2+kDyM2sWWY+0kffX9fJ+Mofk5zlevEQAAQQQSB8CJEDTx3OmlwgggAACCCCAAAIIIBDiAtH+5KVZ8zOYYtYFXbBgwdmqztGjskePka90BdnN7pN++kUqWEBWn17y7t4m77tvyypV6mx9XiCAAAIIIJCeBJgCn56eNn1FAAEEEEAAAQQQQACBkBU4cOCATp48GXR8O3fulOPfrdv2b2zkDB8pHTkauLbiFfI81lGW2dwoY8ag26MiAggggAACkSpAAjRSnyz9QgABBBBAAAEEEEAAgbASyJkzZ9DxVpOlW+Z8Il+vflK0L3BdnVruxkaee1sE3Q4VEUAAAQQQSA8CTIFPD0+ZPiKAAAIIIIAAAggggEDIC2TLlk01atSIN856/sTnR4rSj8qoKxYvlRxH1l13yPvjCkWtXCqSn/HycRIBBBBAIJ0KkABNpw+ebiOAAAIIIIAAAggggEDoCXTr1u2ioMy0vRbyaLUy6Gt/4rOJvDrh9fqnuD8q77aN8s6ZKevKmhddxwEEEEAAAQQQCAiQAOUnAQEEEEAAAQQQQAABBBAIEYFWrVqpZcuWbjRmQvzj/sTnNn/S8wN/8rOK//XvcjQ8e2Yd+eUHeUe/Iat48RCJnDAQQAABBBAIXQHWAA3dZ0NkCCCAAAIIIIAAAgggkM4ELMvS5CEvquOuP1Rz2bfK/m//18jWaPm066YbNWb8eBUpWjSdydBdBBBAAAEEki5AAjTpdlyJAAIIIIAAAggggAACCCSbgLNho+yhw6WJk1XfZ7vtHixfTsuuqaWDda/RU/Xrq1KlSsl2PxpCIC6BU6dOKVOmTHGd5jgCCCAQdgJMgQ+7R0bACCCAAAIIIIAAAgggEEkC9teLFN3wZvkq1ZAzbqLk8chqcbe8P3+vQpvWqMXE8erUqRPJz0h66CHYly1btqht27bKly+fMmfOrKxZs6px48b66quvQjBaQkIAAQQSJ0ACNHFe1EYAAQQQQAABBBBAAAEELlnA8Y+ws9+fpuiK1WTf2Fha/I2UK6esxzvLu32TvDM+kFWt6iXfhwYQCEZg1qxZqlatmiZOnKg///zTveTEiRP64osvdNNNN6l3797BNEMdBBBAIGQFmAIfso+GwBBAAAEEEEAAAQQQQCDSBJxDh+RMmCz7laHS/gOB7hUvJk+HR2Q99YSsHDkircv0J8QFfvnlFz3wwAMy097jKq+88opKly6tjh07xlWF4wgggEBICzACNKQfD8EhgAACCCCAAAIIIIBAJAg427bJ1+tZ+YqVkd39mUDys0J5ed55S95tG+Xp9yzJz0h40GHYh379+sWb/IzpUp8+fXT69OmYt3xHAAEEwkqABGhYPS6CRQABBBBAAAEEEEAAgXAScH5ZI1/rR+QrV1nOa/4Njo6fkNWwgTwLP1fUhl/kedQ/8tPrDacuEWsECZhp7p9//nlQPTJT45csWRJUXSohgAACoSbAFPhQeyLEgwACCCCAAAIIIIAAAmEt4DiOnPkLZA8aIi3/NtCXjBlkNb9bnv59ZFWqGNb9I/jIEdizZ4/OnDkTdIe2b98edF0qIoAAAqEkQAI0lJ4GsSCAAAIIIIAAAggggEDYCjgnT8qZPkP2Cy9JW7YG+pEnt6w2D8vzTA9ZhQqFbd8IPDIFsmfPnqiOJbZ+ohqnMgIIIJCCAiRAUxCXphFAAAEEEEAAAQQQQCDyBZwDB+SMnyT7tdelg4EdtFWqpDydHpX1ZBdZWbNGPgI9DEuBQv6kfMmSJbVjx46g4r/22muDqkclBBBAINQEWAM01J4I8SCAAAIIIIAAAggggEBYCDibt8j3dE/5ipeV/UzfQPKzSiV5Jrwj76/rA6M+SX6GxbNMz0E++eSTQXW/SZMmbrI0qMpUQgABBEJMgARoiD0QwkEAAQQQQAABBBBAAIHQFnB+XCXfA63kq1BVzvD/yb+FtqybbpT3m68UtWaVPG1ayfLwT63QfopEFyPwn//8R40aNYp5G+v3woULa9SoUbGe4yACCCAQDgL8rRwOT4kYEUAAAQQQQAABBBBAIE0FHNuW/clnir66nny16sr54EMpUyZZDz8g78Y18s7/VFa969I0Rm6OQFIEoqKiNG/ePHXq1EmeWBL3DRs21LfffqsiRYokpXmuQQABBEJCgDVAQ+IxEAQCCCCAAAIIIIAAAgiEooBz/Lic96fJHvKKtH1HIMR8eWW1ay1Pz6dl5c8fimETEwKJEsicObNGjx6tZ599Vp999pl2796tPHny6Prrr1etWrUS1RaVEUAAgVAUIAEaik+FmBBAAAEEEEAAgTAX+PHHH/Xaa69p0aJFOnTokDty6Pbbb1evXr1UokSJMO8d4acHAWfvXjnvTpA9bIT019+BLpctI89jHWWZryxZ0gMDfYxHwPz5NmLECC1btkxHjhxR8eLF1bRpU/Xs2VMFCxaM58rQPWX+fO7cuXPoBkhkCCCAQBIFmAKfRDguQwABBBBAAAEEEIhdYNiwYapdu7amTZumffv26cyZM+4Ow2+99ZYqVarkTrWM/UqOIpD2As76DfI92U2+EuVk9xsYSH7WrC7P1Anybl4rz9NPkfxM+8eU5hE888wzuuGGGzRnzhwdPHhQp0+f1q+//irz55/5c84kRSkIIIAAAqEjQAI0dJ4FkSCAAAIIIIAAAmEv8OGHH6pHjx5yHCfWvhz3Tye+9957tWbNmljPcxCBtBJwVn4n370PyFe5ppw3/Ju9REfLuu0WeVcsVtSqlfI82FKWZaVVeNw3hARGjhypV199Nc6IzKj3O++8U7t27YqzDicQQAABBFJXgARo6npzNwQQQAABBBBAIGIFbP8mMd27d0+wfydPnlSfPn0SrEcFBFJawPH5ZM/5WNFXXSPfNQ3kzJglZc3iru/p3bJO3k/nyrrm6pQOg/bDSODo0aPq379/ghH//fffGjx4cIL1qIAAAgggkDoCJEBTx5m7IIAAAggggAACES+wcuXKoEc8mU02TCKBgkBaCDj+nz179Bj5SleQffe90qqfpAL5ZT3bU95dW+UdN0ZW6dJpERr3DHGBBQsWuOt9BhPmzJkz4xwNH8z11EEAAQQQSD4BNkFKPktaQgABBBBAAAEE0rXA1q1bg+6/zz/ybufOnapcuXLQ11ARgUsVcPbskf3OODkj/icdPhJorkJ5/8ZGnWR1elRWpkyXeguuj3ABs85nsOWvv/5yN4HLmzdvsJdQDwEEEEAghQRIgKYQLM0igAACCCCAAALpTSBLInfFzpo1a3ojor9pJOD8skb2W2/LGTdBOhMdiKJOLXl6dJN1T3PW9kyj5xKOt03sn1uJrR+OJsSMAAIIhIMACdBweErEiAACCCCAAAIIhIFAnTp1go6yQIECKlGiRND1qYhAUgScpctkDx0uZ868wOVej6y77pDnub6yrroyKU1yTToXSMyfc1WqVFFiPxhK57x0HwEEEEgxAdYATTFaGkYAAQQQQAABBNKXQLFixdSkSZOgOt25c2d5PPwqGhQWlRIl4Jw5I3vGR4quXku++o0Cyc/s2WR1bC/v1g3yzplJ8jNRolQ+V6B27doyX8GUxx9/PJhq1EEAAQQQSAUBfutMBWRugQACCCCAAAIIpBeBN998U2Z0Z3ylVq1a6t27d3xVOIdAogWcw4dlv/GWfKWukH3vg9Iva6XChWQ91yewsdHbb8pi1HGiXbngYoFx48Ype/bsF58458itt96qDh06nHOElwgggAACaSlAAjQt9bk3AggggAACCCAQYQJmFOiKFSt09dVXx9qze++9V2YXZaaFxsrDwSQIOP7NtHz9BshXtLTsJ5+W9vwuVakkz1v/lfe3LfIOek5W7txJaJlLEIhdwExtX7p0aaybuFmW5SY+Z8+eLa/XG3sDHEUAAQQQSHUB1gBNdXJuiAACCCCAAAIIRLZA6dKl9e2332rx4sVatGiRuwvy5Zdfrttvv11Vq1aN7M7Tu1QTcDZslD1shJwJkySfHbhv3WvcjY08zZqmWhzcKH0KVK9eXT///LP7gY5Jhh45csRd19gsA1KuXLn0iUKvEUAAgRAWIAEawg+H0BBAAAEEEEAAgXAWuP7662W+KAgkp4D99SI5z78k5+vFgWajvLKaNw1sbFS9WnLeirYQiFfAjPA0U93NFwUBBBBAILQFSICG9vMhOgQQQAABBBBAAAEE0r2Ac/q0nJmzZL/wkrR+Y8AjZw5ZrR6Sp3cPWUWLpnsjABBAAAEEEEAgbgESoHHbcAYBBBBAAAEEEEAAAQTSUMD56y//FPfJsl8dJu3dF4ikWFF5/Du6W089IStHjjSMjlsjgAACCCCAQLgIkAANlydFnAgggAACCCCAAAIIpBMBZ/t22aPfkfPGKOn4iUCvryjnru9ptW0tK4p/xqSTHwW6iQACCCCAQLII8JtDsjDSCAIIIIAAAggggAACCFyqgLNmreyhw+VMeU+ynUBz19eXp/+z8jS68VKb53oEEEAAAQQQSKcCJEDT6YOn2wgggAACCCCAAAIIhIKA4zhyFnwle/CL0tLlgZAyZpDl38nd07+PrMqVQiFMYkAAAQQQQACBMBYgARrGD4/QEUAAAQQQQAABBBAIVwHn5Ek5H84MbGy0+ddAN3LnktXmYXme8W9sVLhwuHaNuBFAAAEEEEAgxARIgIbYAyEcBBBAAAEEEEAAAQQiWcA5eFDOuInuVHcdOBjoaskS8nR6VNaTXWRlyxbJ3advCCCAAAIIIJAGAiRA0wCdWyKAAAIIIIAAAgggkN4EnC2/yh71tpxRY6STpwLdr1JJnu5dZbV6SJbXm95I6C8CCCCAAAIIpJIACdBUguY2CCCAAAIIIIAAAgikRwFn1erAxkYfTJfMvkaW/3833ehubGQ1qJ8eSegzAggggAACCKSyAAnQVAbndggggAACCCCAAAIIRLqAY9tyPv9S9vP+jY2+/S7Q3UwZZd3bQp5+z8q6onykE9A/BBBAAAEEEAghARKgIfQwCAUBBBBAAAEEEEAAgXAWcI4fl+Mf6WkPeUXatj3QlbyXyWrXWp6eT8sqUCCcu0fsCCCAAAIIIBCmAiRAw/TBETYCCCCAAAIIIIAAAqEi4OzbJ+fdCbKHjZAO/RUIq0xpeR7rKKtLJ1lZsoRKqMSRhgJz587VxIkTtXbtWjeKqlWrqm3btrrzzjvTMCpujQACCCCQHgRIgKbyUz5x4oR27dqlY8eOuV8+n085c+ZUrly53K+8efOmckTcDgEEEEAAAQQQQACBpAk4Gzb6NzYaI2fMWOnU6UAjNarJ06ObrAful+XxJK1hroooAfNvnwcffFAmAXpu2bx5s2bOnKlmzZpp6tSpykKi/FweXiOAAAIIJKMACdBkxIyrqe+++06jRo3SkiVLtGPHDtn+NZHiKvnz59fVV1+tunXrql27dipUqFBcVTmOAAIIIIAAAggggECaCDgrvwtsbDRzVmBjI48lq/Et8jzXR9a116RJTNw0dAXatGlzUfLz3GhnzZqlRx55RO+///65h3mNAAIIIIBAsgnwkWyyUV7c0IwZM1S7dm03oTlhwgRt27Yt3uSnaeHAgQOaN2+e+vTpo5IlS6pz5846fPjwxY1zBAEEEEAAAQQQQACBVBRw/DOX7DkfK7rWtfJd00DODH/yM3NmWW1bybtpjbyfzSX5mYrPI1xutXDhQneUZ0LxfvDBB+6AkYTqcR4BBBBAAIGkCDACNClqQVwzduxYdejQ4byaWbNmVYkSJVS0aFHlyJHD//tiZnm9Xp08eVJmavw+/9pJO3fudL+bC0+dOqW3335by5cv12effaYiRYqc1x5vEEAAAQQQQAABBBBIaQHnn3/kTH1f9kuvSb/tDNyuQH5Z7dvK072rLJZwSulHENbtv/fee0HHb0aANmjQIOj6VEQAAQQQQCBYARKgwUolop4Z+dmpUyf3CpP07NKli+6//37VrFnTTXgm1NSePXv0xRdfaOjQodqwYYPWrFmj5s2ba+XKlQldynkEEEAAAQQQQAABBJJFwPn9dznvjJM94n/S3//OSLqinDxdOsvq9KisTJmS5T40EtkCGzduDLqDiakbdKNURAABBBBAwC9AAjQFfgy6d+/uTnXPnj27FixY4E6BT8xtzEhPswaOWSjc7Ij41VdfyawjahKr99xzT2Kaoi4CCCCAAAIIIIAAAokScNauk/3maP+u7uOlM9GBa2tfFdjY6N4WsiwrUe1ROX0LZMiQIWiAqCj+eRo0FhURQAABBBIlwBqgieJKuPLu3bvdaeym5rvvvpvo5Oe5dzBT5OfMmaNixYq5h81rCgIIIIAAAggggAACKSHgLFsuX7N75at6lZzR78j/ib6sJrfL+91SRX23TJ777iH5mRLwEd6mmQUXbElM3WDbpB4CCCCAAAJGgARoMv8cmPU6TcmYMaM7evNSm8+WLZtuvfVWt5nNmzdfanNcjwACCCCAAAIIIIDAWQEnOlq2fyf36Bq15at3o5zZH0vZssrq8Ii8v66Xd+5HsmrXOlufFwgkVsDMbAtm1LDH41G7du0S2zz1EUAAAQQQCEqABGhQTMFXMiNATbnssstk1v9MjlK4cGG3GbNREgUBBBBAAAEEEEAAgUsVcI4ckf3GW/KVukL2PQ9IP6+RChWU1f9ZeXdtlXfMW7JKlrzU23A9AqpSpYqeffbZBCX69++vihUrJliPCggggAACCCRFgEVWkqIWzzVlypRxz+7du1c7duxQyWT4xXHRokVum0wJiQeeUwgggAACCCCAAAIJCji7dsl+e6yckW9KR/8J1K9c0b+xUSdZj/pH6vlnMVEQSG6BF154wZ0hZ75H+0cdn1vMGqEDBgxQ3759zz3MawQQQAABBJJVgARosnJKNWrUkJm+YfvXTPrPf/6jjz76SJeymPf48eO1dOlSN8patZh+lMyPi+YQQAABBBBAAIF0IeCs/imwsdHEyVK0L9Dnute4Gxt5mjVNFwZ0Mu0EzBR4k+Rs3bq13n//fa1du9YNpmrVqnrggQeSZdBI2vWOOyOAAAIIhIMACdBkfkolSpRQmzZtZBKXH3/8se6++269+uqrqlSpUqLuZKa7v/HGG+rdu7ccx1GBAgXUvHnzRLVBZQQQQAABBBBAAIH0LWAvWixn6HA5n3wegIjyymreVJ5+z8qqWSOicH7//XeNGjVKS5Ys0d9//62iRYuqSZMm7rqSmTJlCru+nj59WhMnTtTcuXPdTVZz5cqlevXq6bHHHju7SWq4dapUqVLq06dPuIVNvAgggAACESBg+ZNrTgT0I6S68Mcff+j666/Xli1bzsZlEqDmmJkib5KkOXLkUJYsWdzRoSdPnpRJeO7bt8/95ebHH3/UN998o8OHD7vXmxGk8+fPV8OGDc+2Fy4vHn74YU2dOlUVKlTQhg0bwiVs4kQAAQQQQAABBMJWwPEnzpyPZst+4SVp3b+/f+XILqvVQ/L07iGrWLGw7VtcgZtRhe3bt3d/p76wTtmyZd0kYjitL2n+HXHXXXdp48aNF3ZHJpk7ZswYdzTlRSc5gAACCCCAAALumtLm79D169efXV+aEaAp8INhNi0yu8E3a9bs7PR1g26+Elvy5MnjjgQNx+RnYvtKfQQQQAABBBBAAIGkCzj+UY/OhMmyXx0m/bE30FDRIvJ0bC/rqSdk5cyZ9MZD+MovvvhCDz30kDtrKrYwf/31V910001avXq1O6sqtjqhdOzQoUNuvDt37ow1rFOnTrkzzsy/E8wIVwoCCCCAAAIIJCzALvAJGyWpRr58+dxRnJ999pluuOGGRK8DWq5cOXch8E2bNunBBx9MUgxchAACCCCAAAIIIBD5Ao5/401f777yFS0tu1vPQPKzelV5xrwp7/ZN8vTvE7HJT7Pu/uOPPx5n8jPm6Zvp8YMGDYp5G9LfhwwZ4s4KSyjIJ554QmfOnEmoGucRQAABBBBAwC/ACNAU/jFo3LixzJeZ4m6mtpuvAwcOuNPbjxw5IrO2T7Zs2ZQ9e3b3E2kzVb5KlSoyU3XSsphp+T7fvwvkX0IgF+7yeAlNcSkCCCCAAAIIIIDAOQLOmrWyh42QM+U9yWcHzjSoF9jYqMkd59SM3JcrVqzQ1q1bg+rge++9p5EjR8rr9QZVPy0qmdXJpkyZEtStzQhRs95po0aNgqpPJQQQQAABBNKzAAnQVHr6Zr1Ps2i5+Qr1Mnr0aHdx9eSM0yxET0EAAQQQQAABBBC4NAGTIHMWfOVf3/NlacnSQGMZomS1aBbY2KhqlUu7QZhdnZglpszvo2atfrM5UqiWP//8U/v37w86PNN/EqBBc1ERAQQQQCAdC5AATccPP66u5/SvD2V2mUyO0ZsxI0k9HlZbiMub4wgggAACCCCAQEICjn/dR2f6DNlD/InPTf9utJk7l6w2D8vTq7usyy9PqImIPJ/Y3zFDefSneUCJ7U9i60fkDwGdQgABBBBAIAgBEqBBIKVWFTN9Z9euXe7tzI7xlmWl1q3Pu49ZczS51h2N2QXeJFUpCCCAAAIIIIAAAokTcPwjAp1xE2UPHS7tPxC4uERxeTp3kPXEY7L8yyil51KtWrWgu1+gQAEVKlQo6PppUfGyyy5zR6ju3r07qNtXr149qHpUQgABBBBAIL0LMCwvhH4C3njjDXfDJLNpUnKsvxlCXSMUBBBAAAEEEEAAgUQIOP6dy33de8lXrIzsXn0Cyc/KFeUZP0berRvk6d0z3Sc/DWetWrVUtWrVoGTbtm2bZgMMggrw30rt2rULqvoVV1yhunXrBlWXSggggAACCKR3ARKg6f0ngP4jgAACCCCAAAIIhIyAs/on+R5qI98VVeW8PlLyb0xpNbpBnq+/UNTa1fK0bS0rhDfxSW1IM2Pq7bffVoYMGeK9dfny5dWnjz+RHAalV69eqly5cryRRkVFuf1mCny8TJxEAAEEEEDgrABT4M9SJM8Ls7j63r17k9TYoUOHzl63adOmi3aozJcvn8wXBQEEEEAAAQQQQCByBBzblvPFfNnPvyitWBnoWKaMsu5pLk/f3rIqVoiczqZAT6699lp98skn7hJOBw8evOgOderU0cyZM9017i86GYIHsvuXNZg/f77uueceLV++/KIIzTT5yZMnyyyZRUEAAQQQQACB4ARIgAbnFHStadOmqXPnzkHXj6tilSoX7+A5cOBADRgwIK5LOI4AAggggAACCCAQRgLOiRNyPpju39joFWnrtkDkl+WR1a61PD2fllWwYBj1Jm1Dvfnmm2XW0zeJwSVLlsgMSjC7vTdp0kRNmzYNi6nv5woWLlxYS5cu1bx58zR37lzt3LnTTeDWq1dPrVu3Vu7cuc+tzmsEEEAAAQQQSECABGgCQJxGAAEEEEAAAQQQQCA5BZz9++WMHS/79f9Kf/47A6h0KXke6yirSydZWbMm5+3STVtm083HH3/c/YqETpvp/SaBa74oCCCAAAIIIHBpAiRAL83voqtvv/12XXfddVq2bNnZc9dcc41Klix59n1cL1atWqXNmze7p++77z5duKZPbKNC42qL4wgggAACCCCAAAKhJeBs2iz7zdFyxoyVTp0OBFejmjzdu8p6sKUsD8vzh9YTIxoEEEAAAQQQiBQBEqDJ/CSLFSumxYsX6+WXX5aZsh4dHa1169apU6dOMjtPxle6det2NgE6depUmcXNKQgggAACCCCAAALhLeB8973socPlzPhIcvx9sfz/a3yLPP3863texy7e4f10iR4BBBBAAAEEwkGAj5lT4Cl5/Ttz9u3bVytWrJDZcfLo0aNq166dmjdvrtgWZk+BEGgSAQQQQAABBBBAIA0FHJ9P9tx5iq5znXxX15fzoT/5mTmzrLat5N20Vt7P5pL8TMPnw60RQAABBBBAIH0JkABNweddq1YtrV692h39aW4za9YsmWnsZjFzCgIIIIAAAggggEDkCTjHjsn2T3H3la0ku+k90vc/SvnzyerdQ96dv8o7/h1Z5cpGXsfpEQIIIIAAAgggEMICJEBT+OFk9S9iP3r0aHf3xvz582vfvn3uQuZmSvwx/y/IFAQQQAABBBBAAIHwF3D++EP24CHyFS0tu9MT0o7fpPJl5RkxNJD4fOkFWfnyhX9H6QECCCCAAAIIIBCGAiRAU+mhmd0b16xZozvuuMO945gxY1S9enV3mnwqhcBtEEAAAQQQQAABBJJZwFm3Xr4u/5GvZHnZA56X/j4s1bpSng8my7txjTxPPSHLP/WdggACCCCAAAIIIJB2AiRAU9G+YMGC7vT3t956S1myZNHWrVtVv3599evXT2fOnEnFSLgVAggggAACCCCAwKUIOMuWy9fsXvmqXCln1Bj5d76Udedt8q78RlHfL5fn/ntlWf7djigIIIAAAggggAACaS5AAjQNHsFjjz3mrg161VVXyedfIH/IkCG65pprtGXLljSIhlsigAACCCCAAAIIBCPg+JOc9sxZiq5ZR756N8qZ/bGUNYusR9vJ++t6eT+eJatO7WCaog4CCCCAAAIIIIBAKgpEpeK9uNU5AldccYU7/X3AgAF65ZVXtGrVqnPO8hIBBBBAAAEEEEAgVASco0flTJoi+5Vh0q7dgbAKFZTV4RF5uv1HVp48oRIqcSCAAAIIIIAAAgjEIkACNBaU1DqUIUMGvfjii7rtttvUqlUr/fabf7F8CgIIIIAAAggggEBICDi7d8t+e6yckW9KR44GYqpUQZ7HO/tHfT4iK2PGkIiTIBBAAAEEEEAAAQTiFyABGr9Pqpw164D+8ssvevnll3Xo0CH3nh4PqxOkCj43QQABBBBAAAEELhBwfv5F9huj5EyY5F/b0xc4e+3V8vToJk/zuy+ozVsEEEAAAQQQQACBUBcgARoiTyhnzpzuaNAQCYcwEEAAAQQQQACBdCfgLF4ie+hwOfM+C/Td65HV7C55+j0r68qamj9/vmZ16eLO2smePbvq1q2r1q1bKw9T4NPdzwodRsAIHD58WJMnT9bSpUt15MgRlShRQk2bNlXjxo0BQgABBBAIMQESoCH2QAgHAQQQQAABBBBAIPUEnDNn5Hw0W/YLL0lr1wdunCO7rIcflKd3D1nFi+vPP//UA7fc4iZAz41s+vTpGjhwoMaPH6+772Zk6Lk2vEYg0gU++eQT9wOQmBl8Mf0dPXq0GjZsqGnTpqlAgQIxh/mOAAIIIJDGAsyzTuMHwO0RQAABBBBAAAEEUl/A+ftv2SP+J1/J8rJbtgokP4tcLs+g/vLu2irvWyPd5OepU6fc9drN6M/Yyt/+dlq0aKEvv/wyttMcQwCBCBT4+uuv3ZGeFyY/Y7q6aNEi3eL/0OT48eMxh/iOAAIIIJDGAiRA0/gBcHsEEEAAAQQQQACB1BNw/JtO+nr3la9YGdndekq//yFVqyLP22/Iu32TPM/1lZUr19mA/ve//+n7778/+z62F7Ztq1OnTjrjH01KQQCByBbw+Xzuf+/me3zl559/1uuvvx5fFc4hgAACCKSiAAnQVMTmVggggAACCCCAAAJpI+CsXSdf20flK1NRzivDpH+OSQ3qyTN3pqJ+/kGejo/KypDhouDGjRt30bHYDuzYsUMLFy6M7RTHEEAgggS++eYbbdmyJageBfvnR1CNUQkBBBBA4JIESIBeEh8XI4AAAggggAACCISqgOM4shd8peiGN8tX9So5E6dIHv/GRve1kPfn7xW1eIE8Te6IM/zTp09rw4YNcZ6/8IQZ8UVBAIHIFkjMf+fbt2/X0aNHIxuE3iGAAAJhIsAmSGHyoAgTAQQQQAABBBBAIDgBx79up/PhTNlDXpY2bg5clCunrDYPy9Oru6wiRYJqKKEprhc2ktj6F17PewQQCH2BxP53ntj6oS9AhAgggEB4CpAADc/nRtQIIIDA/7F3J3A21f8fx9/n3LEvWQtZs4SQFCJLRVGpkEoSESEiWVr/v37txUiWVKKUtGiRJdqURGUXsiWE0iL7bu45/3PujR+Z5dyZOzN3eZ3Hb35z7zmf812e3xHzud/z/SKAAAIIIPAvAXvnTtmvvi4rcbj0x5/Bq2XLyOzZXUafXjIKFPjXHam/zZMnj8qXLy/38XYvR7Vq1byEEYMAAlEsUL16dc+tL1mypAoVKuQ5nkAEEEAAgcwT4BH4zLOlZAQQQAABBBBAAIEsELB//ln+gfcFNzYa9EAw+VmntsxXX5bv5zUyHxgccvLzeLM7dux4/GWq34sXLx7Y9TnVIC4igEDUC1x22WVyE5teDq///fBSFjEIIIAAAhkTIAGaMT/uRgABBBBAAAEEEMgmAXvZcvk73i5/lRqyh42QDh6ScfmlMmdOVcKS72V26SwjIWMPPA0aNEiVKlVKs4fDhw9X3rx504wjAAEEolsgV65cGjlyZJqdcGePP/CA84EMBwIIIIBARAiQAI2IYaARCCCAAAIIIIAAAl4EAhsbzfpUSY0uk7/OxbInvSM5SU6jw83y/bhMvtmfyLyqhZeiPMUULFhQn332mWrUqJFsfIJT9+jRo3Xrrbcme52TCCAQewLt2rXT2LFjlSNHjmQ7V7Vq1cB/NwoXLpzsdU4igAACCGS9QMY+Es/69lIjAggggAACCCCAQBwK2IcOyX5nsqynh0g//RwUKFxIRtfOMgf2l1GiRKapVKhQQUuXLtUbb7yhKVOmBNYELeCsJ9qwYUP16tXL0wzRTGscBSOAQLYIdO/eXc2bN9eLL76oefPmae/evSpXrpyuv/563X777cqZM2e2tItKEUAAAQSSFyABmrwLZxFAAAEEEIgpAXcX2qlTp2r27NnasWOHSjjJopYtWwa+DMOIqb7SmcgQOHjwYODxzy+++EL79u2Tu0bmzTffrMGDB4fUQPuvv2SPe03Wc84j7jv+Dt5bobzMu3rI6HWnjHz5QiovvcHuTK877rgj8JXeMrgPAQRiS8D9cGTIEOdDGQ4EEEAAgYgXIAEa8UNEAxFAAAEEEMiYwOrVq3XjjTfK/X7y4a5hVr9+fU2ePFlly5Y9+RKvEciQwNtvv63OnTvr2LFjJ8rZunVrYBblU089pTlz5qh27donriX3wl7/k6wXXpQ9drx0+Egw5PyawdmeHdrLMFnJKTk3ziGAAAIIIIAAAgicLsC/HE834QwCCCCAAAIxI7Bp0yY1btz4tOTn8Q4uWLBATZs2DcwKPX6O7whkRGDmzJnq0KHDKcnPk8vbs2eP6tWrpy1btpx8+sRre9Fi+W++Vf6qNWWPHCMdOSKjxRXyfTNbCcsXyezYgeTnCS1eIIAAAggggAACCHgRIAHqRYkYBBBAAAEEolSgX79+2rlzZ6qt37x5sx566KFUY7iIgFcBL5sBuTND27Rpc6JI27JkTf9YSfUbyV+vkezJH0jOTstG547yrV0p3yfTZTS65EQ8LxBAAAEEEEAAAQQQCEWABGgoWsQigAACCCAQRQLbt2/X9OnTPbV44sSJOuRsMsOBQEYE3DVmd+/e7amIZcuW6fDff8t6Zbz8larLuu4GaeFiqVhRGfcNkG/LBvkmjJNRpbKn8ghCAAEEEEAAAQQQQCAlAdYATUmG8wgggAACCES5wPLlyz33wE1+rlu3Ls11GT0XSGBcCnz88cee+n2WE9XdNmWXP1fW/v3BeypXdDY26imjRzcZefJ4KocgBBBAAAEEEEAAAQS8CJAA9aJEDAIIIIAAAlEocPTo0ZBaffKGNSHdSDAC/wgcPnw4VYtqMnSXfOoqUzmd13KTnxfVkTngHhk3tWNtz1T1uIgAAggggAACCCCQXgEegU+vHPchgAACCCAQ4QJVq1b13ELT2VG7UqVKnuMJRCA5gYYNGyZ3Wg2cZOd7StAKJ+3Z00mAup/Afyy/9s2aqoRF38psfxPJz2TlOIkAAggggAACCCAQDgESoOFQpAwEEEAAAQQiUODcc8/VBRdc4KllLVu2VOHChT3FEoRASgLu7u85cuQIXPY5/9/amem5QDk010l8tnYSnwdly1nxU9V0VHeXKanCLVukVBTnEUAAAQQQQAABBBAImwAJ0LBRUhACCCCAAAKRJzBixAj5fG4qKuUjb968Gjp0aMoBXEHAo4A7k/jJ++93ZnmaWu8kPd9zkp/OA+76w0l8PqkklXcSnz2d7xud8iZMmOCxVMIQQAABBBBAAAEEEMiYAAnQjPlxNwIIIIAAAhEt0LhxY73zzjvKk8KmMoUKFdK0adNUvXr1iO4HjYt8AfvXX+X/z6PqP/IljXISn2Wdx97XylJfHdM5TuLzv87Mz11ONwzD0JgxY3T55ZdHfqdoIQIIIIAAAggggEBMCLAJUkwMI51AAAEEEEAgZYF27dqpfv36GjlypGbPnq0dO3aoRIkSch9779u3r4oVK5byzVxBIA0Be8VKWaNflD3hDelYUjD64npae3UL3fbBe1q7bp38x44pX+7cqlevnsaPH68KFSqkUSqXEUAAAQQQQAABBBAInwAJ0PBZUhICCCCAAAIRK1CmTBkec4/Y0YnOhtlfz5WVOFz2jFnBDvhMGa2vlfnQ/TIuulA1nLPL/u+h6OwcrY5KAb/fr5kzZ2ru3LnavXu3SpcurWuvvVZ16tSJyv64jV6+fLmmT5+uLVu26IwzzlCjRo3UqlUrJSTwa1zUDmqEN3zx4sWaMWOGfnVm9btrgzdp0kRXXXVVmsvpRHi3aB4CCCAQ2IQTBgQQQAABBBBAAAEE0hSwnZmc9ocfyXrqWWnFqmB8/nwyOnaQef9AGeXKpVkGAQhkhsAPP/ygW265RWvWrDml+P/+97+64YYbAjOP3QRitBz79+9X9+7dA0uYnNzmYcOGqUqVKnrrrbd04YUXnnyJ1whkSMD90KBLly766KOPTinHXSP8vPPOC/ws1qjhfrTFgQACCESnAB8dRue40WoEEEAAAQQQQCDLBOw9e5xH3CfKGvqc9OtvwXpLlZTZo5uMvr1lOGvJciCQXQJu0tNd73jfvn3JNuGDDz7Qtm3b9PXXXytXrlzJxkTSyaNHjwZm3M2bNy/ZZq1fv15NmzbVt99+q1q1aiUbw0kEQhE4dOiQmjdvriVLliR7248//hiYfbxw4cJAAj7ZIE4igAACES7AJkgRPkA0DwEEEEAAAQQQyC4B23ns1v/Aw/KXqSjrnoHB5GeN6jJfHi3f5vUy//MQyc/sGhzqPSHgzpRMKfl5PGjBggVyZ09GwzF69GillPw83v4DBw6oW7dux9/yHYEMCQwZMiTF5Ofxgvc4H4T16NHj+Fu+I4AAAlEnQAI06oaMBiOAAAIIIIAAApkrYC9dJn+X7vJXrCb7mURp336p8SUyp76vhJVLZd7pzPzMkSNzG0HpCHgQWLVqlebPn+8hUnr55Zc9xWV30EsvveSpCYsWLUozaeWpIILiWsC2bY0dO9aTwZw5c7TO2diOAwEEEIhGARKg0ThqtBkBBBBAAAEEEAizgPtLsDX7S/mvuk7+CxsEHnl3qzBubCvf8oVKmDtb5nWtwlwrxSGQMQF3wxavh7uR0J9//uk1PFvi3Fl2P/30k+e63SQoBwIZEfjtt9/kfnk9Qvkz57VM4hBAAIGsEGAN0KxQpg4EEEAAAQQQQCBCBWxnvUH7vQ+CGxutXhtsZcECMjrfJnPwvTKcnbQ5EIhUgcOHD4fUtFDjQyo8DMGhtu/IkSNhqJUi4lkg1J+5UOPj2Za+I4BAZAmQAI2s8aA1CCCAAAIIIIBAlgjYu3bJHj9B1rDnpd//CNZZprTMnt1l3H2XjAIFsqQdVIJARgQqV67s+fa8efOqZMmSnuOzI7B48eJyd6t3Z4J6OULpv5fyiIk/gdLOh1y5c+eW18QmP3Px9zNCjxGIFQEegY+VkaQfCCCAAAIIIICABwF70yb5B94X3Nho0APB5GftWjLHvyTfxrUyH7yP5KcHR0IiQ6BJkyYqUaKEp8a0bdtWOSJ87VrTNHXjjTd66k/RokV12WWXeYolCIGUBHLlyqXWrVundPmU86VKlVLDhg1POccbBBBAIFoESIBGy0jRTgQQQAABBBBAIAMC9vIf5O94u/yVqsseNkI6cFDG5ZfKnDlVCcsWyux6u4wEHg7KADG3ZoOAm9D0sru7O6vysccey4YWhl7lI488oiJFiqR5o7tzd548edKMIwCBtAQef/xxFfAw63/48OFK4O+JtDi5jgACESpAAjRCB4ZmIYAAAggggAACGRUIbGz0yadKany5/BfUlz3pHTm/vcrocLN8q5bKN/sTmVe1yGg13I9Atgp06NBBQ4cOlWEYybbDTSbOmDFDFSpUSPZ6pJ10H0meOXOm3MfhUzqeeOIJde3aNaXLnEcgJIFKlSpp+vTpKly4cLL3uX+23OTnTTfdlOx1TiKAAALRIMDH/NEwSrQRAQQQQAABBBAIQcB2Noax35ks6+kh0voNwTsLnSGja2eZA/vLiPB1EEPoKqEIBAQGDhyo5s2bB5I0c+fO1e7du+UmEq+99lr1798/1WRiJBLWr19fa9euDfRn2rRpcnewd2exNmrUSPfcc48uuuiiSGw2bYpigaZNmwZ+5p577rnABwbbtm0LJETd8/fee69q1aoVxb2j6QgggIBkODMDbCAQyCyBjh07atKkSapatarWrFmTWdVQLgIIIIAAAgg4AvaOHbLHvSbrOecR9792BE3Kl5N5Vw8Z7le+fDghgAACCCCAAAIIIBDTAtWqVQt8qLN69Wq5r92DGaAxPeR0DgEEEEAAAQTiQcD+aYOsF16UPXa8dOhwsMu1agRne3ZoL8PniwcG+ogAAggggAACCCCAQLICJECTZeEkAggggAACCCAQ+QL2osWyhj0ve/L7zvRPp73OEojGlc1lPuTs5N6kceR3gBYigAACCCCAAAIIIJAFAiRAswCZKhBAAAEEEEAAgXAJ2JYl++NZsp56Vvp+YbDYXDll3HyjzAedxOe5VcJVFeUggAACCCCAAAIIIBATAiRAY2IY6QQCCCCAAAIIxLqAffCgs4v727KeSZQ2bgp2t2gRGd26yLy3n4wzz4x1AvqHAAIIIIAAAggggEC6BEiApouNmxBAAAEEEEAAgawRsP/4I7C2p/X8KGnnrmCllSrK7N1TRo9uMvLkyZqGUAsCCCCAAAIIIIAAAlEqQAI0SgeOZiOAAAIIIIBAbAvYa9bKGu1sbDT+NenI0WBnL7wguLHRTe1kmGZsA9A7BBBAAAEEEEAAAQTCJEACNEyQFIMAAggggAACCIRDwP7ue1mJw2VPmRrc2Mg0ZFzT0tnY6H4ZDS4ORxWUgQACCCCAAAIIIIBAXAmQAI2r4aazCCCAAAIIIBCJArbfL3vaDFlPPiMtWRZsYp7cMjq0l3n/QBmVKkVis2kTAggggAACCCCAAAJRIUACNCqGiUYigAACCCCAQCwK2Pv3y544Sdazw6RftgS7eGZxGd27yuzfV0bRorHYbfqEAAIIIIAAAggggECWCpAAzVJuKkMAAQQQQAABBJwn23/7TdZLr8geNUbavSdIcm5lmX16Obu6d5WROzdMCCCAAAIIIIAAAgggECYBEqBhgqQYBBBAAAEEEEAgLQF75SpZTtLTnvCGdCwpGH5xPZkD7pFxQxsZhpFWEVxHAAEEEEAAAQQQQACBEAVIgIYIRjgCCCCAAAIIRIbAjh07NGvWLG3cuFH58uXTxRdfrEsuuSQik4j23G+CGxtNnxnE85kyWl8r88H7ZNS9KHDu2LFjmj17tpYvX66kpCRVrVpVLVu2VP78+SMDnFYggAACCCCAAAIIIBClAiRAo3TgaDYCCCCAAALxKmDbtp588snA1+HDh09hqF27tl5//XXVqlXrlPPZ8cZ2EpruTu7WU89KP6wMNiFfXhm33SrzvgEyypc/0awvvvhCd955pzZt2nTinPuicOHCSkxMVNeuXU85zxsEEEAAAQQQQAABBBDwLkAC1LsVkQgggAACCCAQAQI9e/bU2LFjk22JO3uyYcOGmj9/vs4///xkYzL7pL13r/OI+0RZQ5+Ttv0arK5kCZk9usno21uGk9Q8+ZgxY4auv/56WZZ18unA6127dumOO+7Qzp07NXDgwNOucwIBBBBAAAEEEEAAAQTSFjDTDiECAQQQQAABBBCIDAE3WZhS8vN4Cw8cOKCOHTsmm1A8HpMZ3+2tW+V/8P/kL32OrH4DgsnP86rJfGmUfJvXy3zk4dOSn3udZOntt9+eZlvvu+8+rV69OjOaTZkIIIAAAggggAACCMS8AAnQmB9iOogAAggggEDsCIwcOdJTZ1atWqWvvvrKU2xGg+xly+Xveqf851SV/fRQad9+qVFDmR+9p4RVy5yZn91l5MyZbDVvvfWW/v7772SvnXzSnR06ZoyzYzwHAggggAACCCCAAAIIhCxAAjRkMm5AAAEEEEAAgewS+O677zxX/e2333qOTU+gNftL+a+6Tv46F8t+7Y1AEUa7NvIt/V4J33wp8/pr0yw2lDaGEptmxQQggAACCCCAAAIIIBBHAqwBGkeDTVcRQAABBBCIZgF3FqT7eLvXY/9+ZyZmmA/76FHZ730g6+kh0o9rgqUXyC+j820yB98ro0yZkGoMpY379u0LqWyCEUAAAQQQQAABBBBAIChAApSfBAQQQAABBBCICgHTNFWuXDlt3rzZU3vLn7TLuqcbUgmync2I7FdflzXseWn778HI0mfL7HWnjD69ZBQsmMrdKV8KpY0VKlRIuSCuIIAAAggggAACCCCAQIoCPAKfIg0XEEAAAQQQQCDSBFq3bu2pST6fT61atfIUm1qQ7SRb/YPul79MRVkD7w8mP8+vKXP8S/JtXCvzwfvSnfx0623Tpk1q1Z9yLZTYU27kDQIIIIAAAggggAACcS5AAjTOfwDoPgIIIIAAAtEkcP/996to0aJpNrlfv34qE+Lj6CcXav+wQv7bushfqbrsRGfW54GDMi5rKvPjj5SwfJHMrrfLyJHj5FvS9bpx48a69tq01wqtWrWqunbtmq46uAkBBBBAAAEEEEAAgXgXIAEa7z8B9B8BBBBAAIEoEjjrrLM0ffp0FSlSJMVWt2vXTs8++2yK11O6YNu2rE8/U1LT5vLXrif7zbcl57F745ab5FuxWL4vP5V5dcuUbk/3+TfeeEMNGzZM8f5zzjkn0OdcuXKlGMMFBBBAAAEEEEAAAQQQSFmABGjKNlxBAAEEEEAAgQgUaNCggVauXKnevXurRIkSgRa664NefPHFevPNNzV58mQlJHhf5tw+fFjW6xPlr1ZLVsvrpLnzpEJnyOh/t3yb18v31hsyatbINIlChQppzpw5GjFihGrWrHmiHnfNz4ceekhLly5VpUqVTpznBQIIIIAAAggggAACCIQmYDizHezQbiEaAe8CHTt21KRJk+Q+urdmzT+75Xq/nUgEEEAAgTAKbNmyRV999ZV27NgRSBw2b95c7ozKaD8OHTokd3akmwQN5bD//lv2K6/KGj5S+vOv4K3lysq8q4cM9yt//lCKC1tsUlKS/H5/oE9hKzSbCtq0aVMgubtz506dffbZatasmYoXL55Nrcl4tXv37tUXX3wR2IirQIECgZm75513XsYLzqYS3J+z+fPna8WKFbIsS25fmjRpohxhWN4hm7pEtQgggAACCCCAgKpVq6a1a9dq9erVgdcuicFYIX0AAEAASURBVPfpEQAigAACCCCAQFQK7NmzR3369AnMjjy5A+5GQT179lRiYqJy58598qWoep0nT56Q2mtv2CBr9Iuyx46XDh0O3nvhBTL79pZx6y0yHJfsPNzZq6HMYM3OtqZU999OcrlXr1567733TglxE2t9+/bV008/HVVJNne+wJAhQ/T444/rwIEDp/TJTeqOGzdO5cuXP+V8pL9xPwxx//yvX7/+lKaWLVtWo0eP9rQ27Sk38gYBBBBAAAEEEIhggdCmSkRwR2gaAggggAACCJwusG/fvsCMLvfR8H8f7uyvF154QVdddZWOHTv278sx995evET+9h3lP7em7BEvSM6j78aVzWV+NkMJi7+T2aljtic/YwF9165dgZmR/05+un1zf86GDRum66+/PjDLNVr66yYK3Q24/p38dNs/e/Zs1atXT+5s12g53HV0r7jiitOSn2773Zni1113nSZOnBgt3aGdCCCAAAIIIIBAmgIkQNMkIgABBBBAAIHoFXCTNu7jrakd7vqT6dk0KLUyI+Wa7TzWa82YqaSGTeWve4nsd9+XM/VQRqdb5ftxuXyfzpB5RfNIaW5MtKNfv37JJtZO7tysWbM0atSok09F7OuPPvpIY8eOTbV9f/31l26//fZUYyLlopug7tSpU5oJ6DvvvFPbtm2LlGbTDgQQQAABBBBAIEMCJEAzxMfNCCCAAAIIRK6AO/vzlVde8dRAdwMed0ZorBy2sy6oNe7VwGxP69q20ncLpCKFZQy+V75ffpLv9fEyqlWNle5GTD/cRGBys42Ta+Dw4cOTOx1x55577jlPbZo7d66WLFniKTY7g15//XXt3r07zSYcdmZIv/TSS2nGEYAAAggggAACCESDAAnQaBgl2ogAAggggEA6BBYuXOj50XZ3Y6R169alo5bIusX+809ZTzwtf5mKsrrfJW34WTqngsznhsi39Wf5nn1KRgxs/BRZ6v9rzbfffiuv+2u6j1q7X5F8uBsDuX3yesybN89raLbFffPNN57rjob+eO4MgQgggAACCCAQ1wIJcd17Oo8AAggggEAMC7ibH4VyhBofStmZHWuvXRfc2MiZ9akjR4PV1aktc2B/GTffKCPEHeIzu72xWn6oP0PuruqRfBw8eDCkmdGh9j87+h6KeTT0JzsMqRMBBBBAAAEEok+ABGj0jRktRgABBBBAwJOAu5tzKEeo8aGUnVmx9nffyxr2vOwPP5JspxbTkHF1C5kP3ifjkoaZVS3lpiAQys+QYRgqXbp0CiVFxun8+fOrcOHCctfN9HKE0n8v5WVGTChtDCU2M9pKmQgggAACCCCAQLgEeAQ+XJKUgwACCCCAQIQJ1KlTx3OC6cILL9TZZ58dYT1Ivjm2s1apNWWqkupdIn/DS2V/4CQ/c+eW0bWzfGtXyvfxVJKfydNl+tmGDRuqaNGinupp0qSJChUq5Ck2O4PcHdG9HDmczbVatmzpJTRbY7z2x21kKLHZ2ikqRwABBBBAAAEE0hAgAZoGEJcRQAABBBCIVgHTeez7ySef9NT8p556ylNcdgbZBw7IevFl+StVl9X2ZmmRs+FM8WIyHrpPvi0b5Bv/sozKlbKziXFfd86cOfXYY4+l6eD+bD7xxBNpxkVCwMMPP6y8efOm2ZR77rlHJUqUSDMuuwPcpGaDBg3SbEb16tUDu8WnGUgAAggggAACCCAQBQIkQKNgkGgiAggggAAC6RXo1KmTHnjggRRvdx9Dfv7553XllVemGJPdF+zt2+V/5DH5S58j665+0uZfpCqVZI56Lpj4fOJRGcWKZXczqf8fgbvuukt9+/ZN0cNNfr788stq1KhRijGRdKFSpUqaPHmy8uTJk2Kz2rZtq2j4EMHtgPtn/v3335eb4EzpKF++vKZOnSp3VisHAggggAACCCAQCwIkQGNhFOkDAggggAACqQi4iZmZM2fKfeTYTX64R0JCglq0aCF3R+h+/ZykYgQe9o+r5e/RW/7yVWQ/5sxQ3e1s6lS/rsz33go86m72uUuG8+g7R+QJjBgxQlOmTDllpqGbTLvmmmv0/fffq1u3bpHX6FRa5LZ72bJlat++/SmzQc8//3yNHz8+kFB0/0xFy1GqVCktWLBA//d//3fKMhlnnXWWBg4cqKVLl8pN/HIggAACCCCAAAKxImDYzhErnaEfkSfQsWNHTZo0SVWrVtWaNWsir4G0CAEEEIgzgSNHjgQ2dHHXaYzU2V32N/NkJQ6XPe3j4Oj4TBmtrg5ubFSvbkyP2MqVK7V8+XIlJSUF/u6sX7++3BmT0XwcPnxYu3fvVjFnlm40JQlTMvc7a9Du2LFD7gZJ+fLlSyksqs67mzxZluV5/dao6hyNRQABBBBAAIG4E6hWrZrWrl2r1atXy33tHtHzUXXcDRcdRgABBBBAIPwCuXLlish1Cm0n4Wc7GxtZTz0rLV8R7Hi+vDI6dpB53wAZFSqEHyOCSnSTnj169NDChQtPaVXFihU1atQoXXXVVaecj6Y3uZ1ZutGwNqZXU5/PJ3emZCwd7k73HAgggAACCCCAQCwLkACN5dGlbwgggAACCES4gL13r+zXJ8oaOlzaui3Y2hJnyejRTWbf3jKKFInwHmS8ed9++62aN2+uQ4cOnVbYzz//HHhsfMKECWxIc5oOJxBAAAEEEEAAAQQQ8CZAAtSbE1EIIIAAAgggEEYBe9s2WWNelv3CS9LefcGSq1eVebezrmeXzjKcmarxcLiPh7vrSiaX/Dzef3e1ou7du6tp06YqV67c8dN8RwABBBBAAAEEEEAAAY8C0b2olMdOEoYAAggggAACkSFg/7BC/q53yl/hXNlPDw0mPxs1lDllsnyrlsnseWfcJD/dEXnnnXe0devWNAfn6NGjgUfh0wwkAAEEEEAAAQQQQAABBE4TYAboaSScQAABBBBAAIFwC1hffiXb3dho1mfBohN8Mtq1kfnAYBl1Lgh3dVFT3ty5cz239euvv/YcSyACCCCAAAIIIIAAAgj8T4AE6P8seIUAAggggAACYRSwnVmL9vsfynp6iLRqdbDkAvlldL5N5qD+MsqWDWNt0VmUu/u21yOUWK9lEocAAggggAACCCCAQDwIkACNh1GmjwgggAACCGShgL17t+xXX5c17Hnpt+3Bms8uJbOX83h7n14yzjgjC1sT2VWdffbZnhtYunRpz7EEIoAAAggggAACCCCAwP8EWAP0fxa8QgABBBBAAIEMCNi//CL/4AfkL1NR1oD7gsnPWjVkjntRvk3rZD50P8nPf/m2atXqX2dSfhtKbMqlcAUBBBBAAAEEEEAAgfgTYAZo/I05PUYAAQQQQCCsAvbiJbJGviD7rXckvxUo27i0iYyB/WVec1VY64q1wlq2bKlGjRpp3rx5qXbNnSnas2fPVGO4iAACCCCAAAIIIIAAAskLMAM0eRfOIoAAAggggEAqArZty/r0M/mvuFr+upfInviWZJoy2t8o3w+L5PvqM5KfqfidfGny5MmqWrXqyadOeV2sWDFNmzZN+fPnP+U8bxBAAAEEEEAAAQQQQMCbAAlQb05EIYAAAggggIAjYB85Iuv1ifJXP19Wy+tkf/GldEZBGff0CTzm7nt7ooxaNbEKQaBkyZJasGCBBg8erOLFi5+4M1++fLr99tu1bNky1alT58R5XiCAAAIIIIAAAggggEBoAjwCH5oX0QgggEDYBA4dOqTvvvtOf/75p84880w1aNBAefLkCVv5FIRAOAXsnTtlv/KqrOEjpT/+DBZdtozM3j1luJsbFSgQzurirqyCBQvq2Wef1dNPP61ff/1Vx44dU5kyZZQjR464s6DDCCCAAAIIIIAAAgiEW4AEaLhFKQ8BBBBIQyApKUmPP/64hg0bpgMHDpyIdmd7DRw4UA8//LASEvjP8wkYXmSrgP3zz7JGvyh77Hjp4KFgW+rUltmvj4wO7WXwsxrW8TGdZQTcxCcHAggggAACCCCAAAIIhE+A37DDZ+mpJHfG19atWwNJDzfx4ff75c76OOOMMwJfRYsW9VQOQQggEJ0C7p/566+/XjNnzjytA+5/Ex599FEtWrQosN6fz+c7LYYTCGSVgL1kqazE4bInvy9ZtmQ4/7uimbOx0T0yr7wiq5pBPQgggAACCCCAAAIIIIBAhgVIgGaYMO0CFi5cqBdffFFz587V5s2bZVnBHXKTu9Nd+6t+/fpq2LChunTpohIlSiQXxjkEEIhSAfcR1+SSnyd3x70+ZMgQPfDAAyef5jUCmS5gO38/2bM+lfX0EGn+d8H6cuaQcfONMu8fJKN6tUxvAxUggAACCCCAAAIIIIAAAuEWYBOkcIueVN7777+vunXrBhKaEyZM0MaNG1NNfrq3/vXXX5oxY4YefPBBlS9fXj179tSePXtOKpWXCCAQrQLuo++JiYmemu/GufEcCGSFgO08nWCNf03+qjVltWoTTH4WLiRjUH/5fvlJvjdeJfmZFQNBHQgggAACCCCAAAIIIJApAswAzRRWady4cerevfsppefNm1flypVT6dKlVcDZLCJ37txyH3E9fPiw3Efj//jjD23ZsiXw3b3xiLPT7ssvv6xvv/1Ws2bN0tlnn31KebxBAIHoEvjhhx+0a9cuT43e6Ww4s2LFCnZ+9qRFUHoFbOdDN/vlcbJGjJZ2/B0spkJ5mX16yejRTYazLi0HAggggAACCCCAAAIIIBDtAiRAM2EE3ZmfPXr0CJTsJj3vuusu3XzzzbrgggsCCc+0qnR3f/30008DM8XWrFmjlStXqm3btlqwYEFat3IdAQQiWODvv/9JMHlsY6jxHoslDAHZ63+SNfIF2c6sTx0+EhS54HyZA/sHHnc3WH+WnxIEEEAAAQQQQAABBBCIIQEegc+EwRwwYEDgUff8+fPryy+/1NChQ3XRRRd5Sn66zXFnenbt2lVLly5Vs2bNAi101xF1E6scCCAQvQIlS5YMqfGhxodUOMFxKWB/v0D+du0Dj7rbL7zkPmog4+oW8s39QglLF8h0d3Un+RmXPxt0GgEEEEAAAQQQQACBWBYgARrm0d22bVvgMXa32PHjxwfW/0xvFe4j8lOnTlWZMmUCRbivORBAIHoFatSoceLPc1q9cP/cn3feeWmFcR2BNAVsv1/WR9OUVL+R/A2ayv7gIylXLhldO8u3dqV8H0+V0bhRmuUQgAACCCCAAAIIIIAAAghEqwAJ0DCPnLtep3vkzJlTrVq1ynDp+Zz111q0aBEoZ/369RkujwIQQCD7BAzD0COPPOKpAf/973/lxnMgkF4B+8ABWS+Nlb/yebLa3CQtXCwVKyrjwcHybdkg3/iXZVSpnN7iuQ8BBBBAAAEEEEAAAQQQiBoB1gAN81C5M0Ddo0iRInLX/wzHcfwxWHejJA4EEIhugTvuuCOwvMWYMWNS7Ejv3r0Dy2CkGMAFBFIRsH//3Ul8viLbWeNTu3YHIytXlHn3XTK6dZWRJ08qd3MJAQQQQAABBBBAAAEEEIg9AWaAhnlMK1asGCjxd+cX0M2bN4el9Dlz5gTKcTdR4kAAgegXeOGFFzRx4kSde+65p3TGfe+eHz3a2ZGbA4EQBezVa+Tv2Uf+cpVlP/pkMPlZ7yKZkycFHnU37+5N8jNEU8IRQAABBBBAAAEEEEAgNgSYARrmcaxdu7ZM0wxsgtS3b199+OGHSkhIP/Nrr72mefPmBVrpbqTEgQACsSHQsWNHuV9bt27VH3/8obPOOsvz+qCxIUAvwiVgfzNP1rDnZU+bIdlOqaYh47prZD4wWMbF9cNVDeVkkcBff/2llStXKikpSVWrVlXZsmWzqGaqiVcB9++gVatWBf7tWr169cBmnPFqQb8RQAABBBBAIHYFmAEa5rEtV66cOnfuHCh1+vTpat26tVavXh1yLe7j7u7u8d26dZNt2zrzzDPVtm3bkMvhBgQQiGwBd7Mj98ON45udRXZraV2kCNhOcsx67wMlXXix/E2ay57qJD+dR9uNO++Qb/0q+aZ+QPIzUgbLYzt++eWXwN/z7ochzZo1C6z/7f6bonHjxlqyZInHUghDwLvAhg0bAuvVlyhRQs2bN9eVV16p0qVL6/LLLw8k4b2XRCQCCCCAAAIIIBD5AoaTXHPni3CEUWD79u1q2rSpfvrppxOlup+ou+fcR+TdX2gKFCjg/K6aJzA79PDhw3ITnu4n8Fu2bAn8ovPNN99oz549gfvdGaSff/65Lr300hPlRcsLd4bbpEmTArNY1qxZEy3Npp0IIIBARArY+/bJnvCGrMTnpS1bg20860wZPbvL7Os84u6sP80RfQI//vhj4N8If//9d7KNdzdWnDJliq6++upkr3MSgVAF3KS6m2g//m/Nf9/v/ht15syZUflvz3/3hfcIIIAAAgggEH8C1apV09q1awMTEt3X7pH+Z7Pjz89zj91Ni9zd4Nu0aXPi8XV3Fmh6ZoIWLlw4sB5gNCY/PYMRiAACCCCQqoD966+yxrws+4WXpD17g7HVzg0mPbt0lpErV6r3czFyBdxH3du1a6eUkp9uy48ePar27dvLnbHnPhHCgUBGBNwP3t2fuZSSn27Z7gfzboz7M1eoUKGMVMe9CCCAAAIIIIBARAjwCHwmDUOxYsXkzuKcNWuWLrvsspDXAa1cubIeeughrVu3Th06dMikVlIsAggggEAkC9grVsp/Rw/5K5wr+6khweTnJQ1kTpks34/LZfa8k+RnJA+gh7a5a4W7n06ndexzZv+yQVpaSlz3IvDWW2952qjTTcqPHTvWS5HEIIAAAggggAACES/ADNBMHqKWLVvK/XI/SXcfN3K/3A0O3E/d9+7dG5jVkS9fPuXPnz8wq8N9VL5GjRqqVKlSJrcs5eLdx/BfffXVwAYMKUd5u7J8+fJAoDvDhQMBBBBAwJuA9dUc2YnDZc/8NHiDz5RxQ2uZ9w+ScdGF3gohKioEvvjiC8/tdGMfe+wxz/EEIpCcgLusktfD/ZkbPHiw13DiEEAAAQQQQACBiBUgAZpFQ+OupdSoUaPAVxZVme5qRo0apcTExHTfn9yNO3fuTO405xBAAAEE/hGwjx2T/f6Hsp4ZKq1YFTybP5+MzrfJHNRfhrN+NEfsCfz555+eOxVKrOdCCYw7AfeDeK8HP3NepYhDAAEEEEAAgUgXIAEa6SOUDe3r37+/3Ef4wzFr87333tMPP/ygImzMkQ0jSZUIIBANArbzRID96uuyhjkbG/36W7DJpUrK7OU83t6nlwzW34uGYUx3G91d370eocR6LZO4+BMI5ecolNj4k6THCCCAAAIIIBBNAiRAs2i03A0McuTIIcMwQqrxmDMjyN0d3j0KFiwY+AqpgHQElypVSvfdd1867jz9FnfndzcB6u5kz4EAAggg8D8B21luxBr9ouyXXpH27Q9eqHlecGOjTh1lODt/c8S+wJVXXul5nUU3lgOBjAq4P0fuOqBejhYtWngJIwYBBBBAAAEEEIh4ATZBysQh2rFjh3r37q3atWsH1vh0d3Rv3ry5nnjiicCaoF6qXrFihcqUKRP4Gj58uJdbiEEAAQQQiGABe+ky+Tt1lb9iNdlDnf+uO8lP49ImMqd/qIQVS2R260ryM4LHL9xNa926tWrWrJlmse6/Ifr06ZNmHAEIpCVwyy23eFpr3p392b1797SK4zoCCCCAAAIIIBAVAiRAM2mY3AXm3V9oxowZE5gB6c7kdDc+mj17tv7v//5P559/vubPn59JtVMsAggggEAkCdi2Leuzz+W/8hr5L2wge6Iz+8p5IsBof6N8yxfK99VnMltdHUlNpi1ZJODz+fT++++rRIkSKdboriPuLilTtGjRFGO4gIBXgZzO7PIPP/ww1Z+nAgUKBGLc7xwIIIAAAggggEAsCJAAzYRR3Lp1q9q0aaPff//9ROnlnM0rTv5H5E8//aQmTZoEZoOeCOIFAggggEBMCdhHjsh64035a1wgq8W1sj+f7axnUkDGPX3k27hWvrcnyji/Vkz1mc6ELlClShUtWbJEt956a2C5nJNLuOKKK7RgwQI1a9bs5NO8RiBDAu6H9O7P3I03Oh/COEn444e7VNM111yjRYsWqWHDhsdP8x0BBBBAAAEEEIh6ARZmzIQhdDcROnDgQKBk95cZ99H14sWLy50BtHjxYt1///368ssvZVlWYDaouz7oY489lgktoUgEEEAAgewQsHfulD3uNVnDR0q/B9dxVpnSMnv3lOFubuSs6Zwdh/v30Nq1a+Uu0eLOOKxcuXJ2NIM6kxFw199+8803A0+OrF69Wu6TI+eee67OPPPMZKI5hUDGBdwP5ydPnqzdu3fL/Zlz/11atWrVwEaYGS+dEhBAAAEEEEAAgcgSIAEa5vHYvn27Pvjgg0Cp7dq1C/wyc7wK91P1unXrBh6DHz16tPr16xf4x+bjjz8eWCN08ODBx0P5jgACCCAQhQL2xo3BjY3GjpcOHAz24ILzZfbrI+PWW2Rk04ZwbuLT/XvnmWee0W+//XZC9pxzztEjjzyiTp06nTjHi+wVcDc8vPjii7O3EdQeVwKFChVitmdcjTidRQABBBBAID4FSICGedzdXc+PH0OGDDn+8rTv7kYG7uLyHTt2lDsD1J0V6m525C5Mz4EAAgggEF0C7sZGVuJw2ZPfl/xWoPFG88tlDLxHZovs3bnbndXl/t3izvT697HRSdh27tw58HTCyJHObFUOBBBAAAEEEEAAAQQQQCAGBVgDNMyDum7dukCJ7m6tFSpUSLV0d92lt99+W6ZpBh6Pv/322zVnzpxU7+EiAggggEBkCAQ2Nvp4lpIaXx7c2OhtJ8HorKVndLxFvlVL5ft8ZrYnP12pYcOGJZv8PFlx1KhRpzyxcPI1XiOAAAIIIIAAAggggAAC0S5AAjTMI+jO5nSPvHnzeiq5bdu2eu655wKx7r3u++NJVE8FEIQAAgggkKUC9uHDssa/Jn/VmrJatZHmfSsVLhSY7enbvF6+ia/JOK96lrYppcrcdSSfeuqplC6fcv7RRx895T1vEEAAAQQQQAABBBBAAIFYESABGuaRPL6hxK+//qo9e/Z4Kt1dC9TdOMk9du3apauvvlp//fWXp3sJQgABBBDIGgHb2TjIevIZ+ctWktWtl7R+g1S+nMxhz8q39Wf5hj4jo2TJrGmMx1oWLlwY2ODES/iGDRvkPhLPgQACCCCAAAIIIIAAAgjEmgAJ0DCP6PEEqFus+0ih1yMxMVE33HBDINz9BbRly5aeE6he6yAOAQQQQCB0AfunDfLf3T+Y+Hz4v9JfO6S6F8qcNEG+Datl3ttPRr58oRecBXf88cc/O9B7rCvUeI/FZmqYu6P9okWLArtYJyUlZWpdFI4AAggggAACCCCAAALRKUACNMzjVqlSJdWrVy9Q6hNPPKF3333XUw3uOqBvvvmmGjRoEIhfunRp4PXJmyp5KoggBBBAAIGwCNgLFsp/4y2BR93t0S9KzqPvxlVXypw9SwkL58vs0F6Gs+ZnJB/FihULqXmhxodUeJiDFyxYoEsvvVTFixcP/L173nnnBV4/+OCDOnjwYJhrozgEEEAAAQQQQAABBBCIZgESoGEePcMwAhtOuMUeOXJE7du3V+PGjTV48GD9+OOPqdaWO3duTZs2TbVq1QrEuclPd3deDgQQQACBrBGwnR3TranTldSgifwXN5H9/hQpZ04ZXTrJt/oH+WZOk3n5ZVnTmDDUUr9+feXPn99TSeXKldPJTzF4uimbgt555x01atRIX3/99Skt2L17t55++unA37tel6E5pQDeIIAAAggggAACCCCAQEwKkADNhGF1fylzfwHz/TMzaN68eRo6dKi8zOZ0Z9989dVXJ2aRWs4v48cPd8dhDgQQQACB8AvYzoxB6+VX5K98nqzWN0rfL5SKFpHxwCD5fvlJvlfHyqh6bvgrzuQSc+XKpQEDBniq5YEHHvAUl91B7kaB7oeDqT3u7j5Fceedd2Z3U6kfAQQQQAABBBBAAAEEIkSABGgmDcT999+vOXPmyH0k7/hRqlSp4y9T/V6kSBG5SdMhQ4YoX4SuK5dqB7iIAAIIRImA7ayR6f/v4/KXqSir593Sxk1SpYoyRwwLbmz01OMyzjwzSnqTfDMffvjhwLrSyV8Nnr3tttvUo0eP1EIi5pr7AePRo0fTbM/kyZMD64KmGUgAAggggAACCCCAAAIIxLwACdBMHGJ3JuiqVav022+/6e2331bVqlU915YjRw4NGjRIa9euVadOnVSxYsUTM0o9F0IgAggggECyAvaatfL37CN/ucqyH31S2rkruLHRu2/Kt26lzL69ZeTJk+y90XYyISFB06dP16OPPqoCBQqc0nz3qYPnn39er7/++innI/nNJ5984rl5ocR6LpRABBBAAAEEEEAAAQQQiDqBhKhrcRQ2uGTJkoG1QNPT9NKlS0fVL6bp6SP3IIBA7Ajs3btXv/zyi/I4ycMKFSpE3Ac39rz5shKHy542Q3JXFTENGdddI/P+QTIaXBw7A/GvnrhJ0P/85z9yn05YvHix3J3TS5QooQsvvDDixuhfTT/lrbssTCg71W/fvv2U+3mDAAIIIIAAAggggAAC8SlAAjQ+x51eI4AAAmEVcGe7u8k1d8ad3+8PlF20aNHAOowPPfRQti7nYTvtsadMlfXMUGnJsmC/8+SWcdutMgf1l1GpUlgtIrmwnM6GTg0bNozkJqbaNtM05S4Ts3PnzlTjjl+Mpl3tj7eZ7wgggAACCCCAAAIIIBB+AR6BD78pJSKAAAJxJTBz5kzVrVtXH3/88Ynkpwvw999/BzaEu+SSSzwnrMIJZ+/fL2v0GPkrVpN1Y4dg8vPM4jL+82Bwfc+XX4ir5Gc4bbOzrMsvv9xz9aHEei6UQAQQQAABBBBAAAEEEIg6ARKgUTdkNBgBBBCIHIFt27bp5ptv1uHDh1Ns1A8//KAuXbqkeD3cF2xn3WX/w48ENza6+17ply3SuZVljhkR3NH90f/IcGanckSnwODBg2UYRpqNb9asWSAxn2YgAQgggAACCCCAAAIIIBDzAiRAY36I6SACCCCQeQJDhw7VfmemZVrHtGnTtGTJkrTCMnTdXrlK/m495S9fRfaTz0q790gNL5b54bvyrVkhs1cPGblzZ6gObs5+AXe2cWJiYqoNKVu2rN54441UY7iIAAIIIIAAAggggAAC8SNAAjR+xpqeIoAAAmEXcB9/93qEEuu1TDfO+mqO/K1ay1/rItnjJzgnLBltr5dv4TwlzJ8js831nmYMhlInsdkrcO+99+rDDz/UOeecc0pD3DVCO3TooEWLFqlUqVKnXOMNAggggAACCCCAAAIIxK8AmyDF79jTcwQQQCDDAr85j5t7PUKJTatM+9gx2e9/KOtZZybgDyuD4fnyyuh8W3Bjo/Ll0yqC61Eu0KZNG7Vu3VrLly/Xxo0blTdv3sAj72x8FOUDS/MRQAABBBBAAAEEEMgEARKgmYBKkQgggEC8CLg7vR88eNBTd93YjB723r2BWZ7WcyOkbb8GiytZQuZdzuPtvXvKKFw4o1VwfxQJuGuBXnDBBYGvKGo2TUUAAQQQQAABBBBAAIEsFiABmsXgVIcAAgjEksBll13mea1FNza9h711q7Oj+4uyXxwr7ftnzdHzqsm8524ZnTrKyJkzvUVzHwIIIIAAAggggAACCCCAQIwLsAZojA8w3UMAAQQyU2DAgAFy111M67jooot0+eWXpxV22nV72XL5O98h/zlVZQ95Lpj8bNpY5vQPlbBqmcxuXUl+nqbGCQQQQAABBBBAAAEEEEAAgZMF0v6t9eRoXiOAAAIIIHCSQK1atTRihPM4eipH8eLF9fbbb4e0EZH1+Rfyt2glf52LZb8xKVC6cXM7+ZZ+r4Q5n8tsdXUqNXIJAQQQQAABBBBAAAEEEEAAgf8JkAD9nwWvEEAAAQTSIdCnTx9NmTJFFSpUOO3ua6+9VosXL1alSpVOu/bvE/bRo7ImTlJSjQtkXdlK9mdfSAULyOjXW76Na+V7500ZF9T+9228RwABBBBAAAEEEEAAAQQQQCBVAdYATZWHiwgggAACXgTc3bivv/76QLJzw4YNyp07d2BH7tKlS6d5u71rl+xxr8kaPlLa/nswvvTZMt1NjdzNjQoWTLMMAhCIFQHbtrV9+3YlJSWpVKlSSkjgn2qxMrb0AwEEEEAAAQQQQCD7BPhXdfbZUzMCCCAQUwLujtx169YNfHnpmL1pk6xRY2SPHS8d+Gcn+fNrBjc2uvUWGTlyeCmGGARiQmDfvn165pln9Oqrr+r334MfBBQoUEA333yzHn300UAyNCY6SicQQAABBBBAAAEEEMgGARKg2YBOlQgggEA8C9iLFgdme9qT35f8VoDCaH65jAH9ZLZsEc809D1OBdyEZ7NmzbR69epTBNyk6Lhx4zR16lR99tlnql2bJSBOAeINAggggAACCCCAAAIeBUiAeoQiDAEEEEAg/QLuY732rE9lJw6X/dXXwYJy5pBxy80yBw+QUbNG+gvnTgSiXMCd5fnv5OfJXfrrr7/krqe7du1a5cuX7+RLvEYAAQQQQAABBBBAAAEPAmyC5AGJEAQQQACB9AnYhw/LenWC/NVqybqmdTD5WegMGQPvkW/TOvkmvkbyM3203BUjAp9++qnmzp2bZm+2bduml156Kc04AhBAAAEEEEAAAQQQQOB0ARKgp5twBgEEEEAggwL233/LeupZ+ctVlnVHT2ndT1K5sjITn5Fv68/yDX1GhrPBCwcC8S4wY8YMzwShxHoulEAEEEAAAQQQQAABBOJAgEfg42CQ6SICCCCQVQK2swO8NdLZ2Gjcq9Khw8FqL6oT3Nio/U0yfL6sagr1IBAVAu7MTq9HKLFeyyQOAQQQQAABBBBAAIF4ECABGg+jTB8RQACBTBawFy6S5a7v+cEUybIlw/lfyysDj7qbzS7P5NopHoHoFShUqJDnxocS67lQAhFAAAEEEEAAAQQQiAMBHoGPg0GmiwgggEBmCNiWJWvqdCU1bCp//cay3/tQyuFsbHT7bfL9uFy+WdNE8jMz5CkzlgSaNGniuTuhxHoulEAEEEAAAQQQQAABBOJAgARoHAwyXUQAAQTCKWAfPCjr5VfkP7emrNY3St8tkIoUlnH/QPl++Um+116RUa1qOKukLARiVqB9+/Yq5WE93Jw5c6pPnz4x60DHEEAAAQQQQAABBBDITAEegc9MXcpGAAEEYkjA/vNP2S+OlTVqjPT3zmDPKp4js29vGd26yMibN4Z6S1cQyBqBPHny6N1339UVV1yhw4f/WTc3mardHeArVKiQzBVOIYAAAggggAACCCCAQFoCzABNS4jrCCCAQJwL2GvXyd/r7uCO7v99Ipj8rHuhzHfflG/9qmAClORnnP+U0P2MCDRq1Ejz58/XhRdeeFox5cuX1/Tp09WlS5fTrnECAQQQQAABBBBAAAEEvAkwA9SbE1EIIIBA3AnY878NbmzkrPMpZ18jmYaMa6+Wed9AGZc0jDsPOoxAZgrUqVNHixcv1vLly7Vs2TIlJSWpatWqatiwoXw+X2ZWTdkIIIAAAggggAACCMS8AAnQmB9iOogAAgh4F7D9ftkfTZP1bKK0aEnwxjy5ZXTsIHPQvTIqV/JeGJEIIBCyQO3ateV+cSCAAAIIIIAAAggggED4BEiAhs+SkhBAAIGoFbD375f9+kRnxufz0uZfgv0oXkxGz+7BR9yLFYvavtFwBBBAAAEEEEAAAQQQQACB+BYgARrf40/vEUAgzgXs7dtlvfCS7DEvS7t2BzWqVJLZr4+MrrfLyJ07zoXoPgIIIIAAAggggAACCCCAQLQLkACN9hGk/QgggEA6BOxVP8p6fpTsiZOko8eCJTSoL3NgfxltrpdhGOkolVsQQAABBBBAAAEEEEAAAQQQiDwBEqCRNya0CAEEEMg0AWvO17ITh8v++JNgHT5TRtvrgxsb1aubafVSMAIIIIAAAggggAACCCCAAALZJUACNLvkqRcBBBDIIgHb2U3afv/D4MZGy1cEa82XV0bn22QO6CfjnHOyqCVUgwACCCCAAAIIIIAAAggggEDWC5AAzXpzakQAAQSyRMDeu1f2q6/Lem6EtHVbsM4SZ8m8q4eM3j1lFCmSJe2gEgQQQAABBBBAAAEEEEAAAQSyU4AEaHbqUzcCCCCQCQL2tm2yRr8o+8Wx0t59wRqqV5V5z90yOnWUkStXJtRKkQgggAACCCCAAAIIIIAAAghEpgAJ0MgcF1qFAAIIhCxgL/8huLHRW+9Ix5KC9zdpFNzYqNXVbGwUsig3IIAAAggggAACCCCAAAIIxIIACdBYGEX6gAACcS1gff6F7GEjZH/6edAhwSfjphuCGxvVuSCubeg8AggggAACCCCAAAIIIIAAAiRA+RlAAAEEolDAPnpU9rvvyRoyTFq1OtiDAvlldOnkbGx0j4yyZaOwVzQZAQQQQAABBBBAAAEEEEAAgfALkAANvyklRrnAkSNHlIs1EqN8FGO3+fbu3bJfeTXwqLt+2x7s6NmlZPbpJaPXnTLOOCN2O59NPbMsS36/Xzly5MimFlAtAggggAACCCCAAAIIIIBARgTMjNzMvQjEisDKlSt1yy23qHDhwsqdO7cKFCig1q1b67vvvouVLtKPKBewf/lF/gGD5S9TUdbgBxVIftaqIfO1sfJtWifz/kEkP8M4xm7Cc9y4capbt65y5swZ+KpYsaIeeugh7XaS0BwIIIAAAggggAACCCCAAALRI0ACNHrGipZmksCECRNUp04dvfPOOycSG/v379fUqVPVsGFDJSYmZlLNFItA2gL24iXy39pZ/orVZD83Utp/QEazy2TOmqqEHxbLvL2TDGYmpg0ZQsTBgwd11VVXqXv37lq8eHFg9qd7+8aNG/XUU0/p/PPP19q1a0MokVAEEEAAAQQQQAABBBBAAIHsFCABmp361J3tAt98843uuOMOJSX9s2N2Mi0aNGiQPvzww2SucAqBzBGwbVvWrE/lb9ZS/rqXyH7rXck0ZdzaXr4fFsn3xSyZLVtkTuWUqh49eujzz//ZUCoZjy1btuiaa66RmyjlQAABBBBAAAEEEEAAAQQQiHwBEqCRP0a0MBMF7rvvPrnr+6V1DB48WG5SigOBzBSwnfVnrddel7/6+bKuvl72l3OkMwrKGNAv8Ji7780JMmrVzMwmxH3Zy5cv15tvvpmmgzsbdMyYMWnGEYAAAggggAACCCCAAAIIIJD9AiRAs38MaEE2Cfz++++e1/j8+eeftWLFimxqKdXGuoD999+ynh4if7nKsrr2kNaul8qWkTn0afm2/ixf4rMyzj471hkion9Tpkzx3A5mhnumIhABBBBAAAEEEEAAAQQQyFYBdoHPVn4qz06BzZs3h1T9pk2bAmv/hXQTwQikImA7iXVrxAuyx78mHTwUjKxTW2b/vjLa3yQjgf9Ep8KXKZfcP+dej1BivZZJHAIIIIAAAggggAACCCCAQPgF+O06/KaUGCUC+fLlC6mlocaHVDjBcSVgL1wkK3G47A+c2YaWs7SC4fyv5ZWBR93N5s3iyiLSOps/f37PTQol1nOhBCKAAAIIIIAAAggggAACCIRdgEfgw05KgdEiUK1aNZ1xxhmemuvz+VS3bl1PsQQhkJyA7aw1a02boaRGl8lfv7Hs95yNtZzd243bb5Nv1TL5Zk0Tyc/k5LL2XIMGDTxXGEqs50IJRAABBBBAAAEEEEAAAQQQCLsACdCwk1JgtAgkOI8X9+rVy1NzO3XqpEKFCnmKJQiBkwXsQ4dkjR0nf9Wasq5vJ83/TipSWMb9A+XbvF6+116RUb3aybfwOhsFbrjhBpUoUcJTC/r06eMpjiAEEEAAAQQQQAABBBBAAIHsFSABmr3+1J7NAv/5z3900UUXpdqKSpUqKTExMdUYLiLwbwH7r79kPfak/GUryerhJMp++lk6p4LM5xPl27JBvqefkOEx0fbvsnmfeQJ58+bVxIkT5X5Aktrx0EMPqV69eqmFcA0BBBBAAAEEEEAAAQQQQCBCBEiARshA0IzsEciTJ49mz56tDh06JNuAa665RvPnz1eRIkWSvc5JBP4tYK9bL/9dfYOJz0cel3b8LdW7SOY7E+Vbv0pmvz4yQlx/9t918D5zBZo3b64vvvhCFStWPK0id93PESNG6IknnjjtGicQQAABBBBAAAEEEEAAAQQiUyD1KS6R2WZahUBYBQoWLKhJkybpkUce0Weffabff/9dxYoVU7NmzVSzZs2w1kVhsStgf/tdcGOjj6ZJzr5GgY2NWl0lc2B/GU2bxG7HY7RnTZs21Zo1awIfkCxZskRHjx5VlSpV5H4ownIYMTrodAsBBBBAAAEEEEAAAQRiVoAEaMwOLR0LVcBNbrhfHAh4FbD9ftlOwtMaMkxauDh4W+5cMjp2kDnoXhlVKnstirgIFMjhbFLVsmXLwFcENo8mIYAAAggggAACCCCAAAIIeBQgAeoRijAEEEDguIB94IDsCW/IGjZC2rQ5eLpYURk9u8vs21tG8eLHQ/mOAAIIIIAAAggggAACCCCAAALZLEACNJsHgOoRQCB6BGxneQTrhZdkO1/atTvY8MoVZd5zt4wunWU4a8pyIIAAAggggAACCCCAAAIIIIBAZAmQAI2s8aA1CCAQgQL26jWyho+U/cab0tFjwRY2qB9c37P1dTJM9pOLwGGjSQgggAACCCCAAAIIIIAAAggEBEiA8oOAAAIIpCBgfz03uLHRx7OCGxuZhow218kcPEDGxfVTuIvTCCCAAAIIIIAAAggggAACCCAQSQIkQCNpNGgLAghku4CdlCT7gynBjY2WLg+2J28eGZ1vkzmgn4yKFbO9jTQAAQQQQAABBBBAAAEEEEAAAQS8C5AA9W5FJAIIxLCAvW+f7Fdfl/Wcs7HRlq3Bnp51psy7esjo00tGkSIx3Hu6hgACCCCAAAIIIIAAAggggEDsCpAAjd2xpWcIIOBBwP71V1mjxsh+6RVpz97gHdXODW5s5Mz6NHLl8lAKIQgggAACCCCAAAIIIIAAAgggEKkCJEAjdWRoFwIIZKqAvWJlYLan/dY70rGkYF2NLwlubHTtNTIMI1Prp3AEEEAAAQQQQAABBBBAAAEEEMgaARKgWeNMLQggECEC1hezZSc+L/vTz4Mt8pkybrpB5qB7ZVx0YYS0kmYggAACCCCAAAIIIIAAAggggEC4BEiAhkuSchBAIGIF7GPHZL/7nqyhz0krVgXbmT+fjK6dZd7rbGxUrlzEtp2GIYAAAggggAACCCCAAAIIIIBAxgRIgGbMj7sRQCCCBew9e2S/8qqs50dJv/4WbGmpkjLdTY163SmjUKEIbj1NQwABBBBAAAEEEEAAAQQQQACBcAiQAA2HImUggEBECdhbtsga+YLsseOlffuDbat5nsz+fWXceouMnDkjqr00BgEEEEAAAQQQQAABBBBAAAEEMk+ABGjm2VIyAghksYC9ZKms4SMDj7sryR+o3bj8UhkD+8u8qkUWt4bqEEAAAQQQQAABBBBAAAEEEEAgEgRIgEbCKNAGBBBIt4Bt27I/+Uz2MGdjo9lfBcvJkSCjw80yBw+QcX6tdJfNjQgggAACCCCAAAIIIIAAAgggEP0CJECjfwzpAQJxKWAfOSL7rXdkJQ6XVq8NGhQsIKNbl+Cj7qVLx6ULnUYAAQQQQAABBBBAAAEEEEAAgVMFSICe6sE7BBCIcAF7507ZL48LrPGp3/8ItrZMaZl9e8u48w4ZBQtGeA9oHgIIIIAAAggggAACCCCAAAIIZKUACdCs1KYuBBBIt4C9caOsEaNlj58gHTgYLOeC82Xe209G+5tkJPCfs3TjciMCCCCAAAIIIIAAAggggAACMSxAxiCGB5euIRALAvaChbKeGyH7gymS3wp0yWhxhbOx0T0ymzeLhS7SBwQQQAABBBBAAAEEEEAAAQQQyEQBEqCZiEvRCCCQPoHAxkYzZgbX95w7L1hIzhwyOnaQOeheGedVT1/B3IUAAggggAACCCCAAAIIIIAAAnEnQAI07oacDiMQuQL24cOyJ04KJj7Xbwg2tHChwNqeZr8+MkqWjNzG0zIEEEAAAQQQQAABBBBAAAEEEIhIARKgETksNAqB+BKwd+yQ/eJYWaPGSH/tCHa+fDkFkp7du8rIly++QOgtAggggAACCCCAAAIIIIAAAgiETYAEaNgoKQgBBEIVsH/aIGv4SNkT3pAOHQ7eXvfC4MZGN94gw+cLtUjiEUAAAQQQQAABBBBAAAEEEEAAgVMESICewsEbBBDICgH72+8Cj7nbU6dLli0Zzv9aXSVjgLOx0aVNs6IJ1IEAAggggAACCCCAAAIIIIAAAnEiQAI0TgaabiKQ3QK2Zcn+aJqsoc9J3y8MNid3ruDGRk7i06h6bnY3MUvr//PPPzVq1Ch9/vnn+uOPP3TWWWfpiiuu0N13360zzzwzS9tCZQgggAACCCCAAAIIIIAAAgjEsgAJ0FgeXfqGQAQI2AcPBh5xt4aNkDZuCraoaBEZve6UefddMuIw2Tdr1iy1b99ee/fuPTFCmzdv1oIFCzRy5Ei9++67atmy5YlrvEAAAQQQQAABBBBAAAEEEEAAgfQLkABNvx13IoBAKgK2M6vReuEl2c6Xdu4KRlaqKPMeZzf3rrfLyJMnlbtj99LSpUvVpk0bHTlyJNlOuknR1q1b67vvvtMFF1yQbAwnEUAAAQQQQAABBBBAAAEEEEDAuwAJUO9WRCKAgAcBe83a4MZGb7wpHTkavOPiejIH9pfR5noZpumhlNgNuffee1NMfh7vtZscdeO++uqr46f4jgACCCCAAAIIIIAAAggggAAC6RQgAZpOOG5DAIFTBey53wQ3NpoxU3L2NZJpyGh9rczBA2Q0uPjU4Dh99+uvv+rrr7/21Ps5c+bot99+U6lSpTzFE4QAAggggAACCCCAAAIIIIAAAskLkABN3oWzCCDgQcBOSpL9wZTgxkZLlgXvyJtHRqeOMgf0k1GpkodS4idk3bp1IXXWjScBGhIZwQgggAACCCCAAAIIIIAAAgicJkAC9DQSTiCAQFoC9v79ssdPCDzqrl+2BMPPLC7zrh4y+vSSUbRoWkXE5fUcOXKE1O+EBP4THRIYwQgggAACCCCAAAIIIIAAAggkI8Bv18mgcAoBBJIXsJ1Hsq1RY2S/9Iq0e08wqGoVmf37BmZ9GrlzJ38jZwMCNWrUkM/nk9/vT1PEjatZs2aacQQggAACCCCAAAIIIIAAAggggEDqAvG9G0nqNlxFAIF/BOyVq+Tv0l3+8lVkP5MYTH42vkTm1PflW/2DzDu7ieRn2j8uhQsXVrt27dIOdCJuvPFGFSpUyFMsQQgggAACCCCAAAIIIIAAAgggkLIACdCUbbiCQNwLWLO/lP+q6+SvdZHsCRMly5JxY1v5Fs5TwtzZMq9rJcMw4t4pFIDExESdddZZqd7iXnfjOBBAAAEEEEAAAQQQQAABBBBAIOMCJEAzbkgJCMSUgH3smKxJbyupdl1Zza+W/clnUr68Mu6+S74Nq+Wb/JaMuhfFVJ+zsjOlS5fW3LlzU3y83X3s3b1+9tlnZ2WzqAsBBBBAAAEEEEAAAQQQQACBmBVgDdCYHVo6hkBoAvaePbLHvSbr+VHStl+DN5csIdPd1KjXnTKcx7c5wiNQpUoVLVu2TFOnTtXnn3+uP//8U2eeeaauvPJKXXfddYF1QsNTE6UggAACCCCAAAIIIIAAAggggAAJUH4GEHAE9ju7mr/yyiv65JNP9Pvvv6tYsWJq1qyZevbsqSJFisS0kb11q6wRo2WPHS/t2x/s63nVZN7bT0bHDjJy5ozp/mdX59xNjtq2bRv4yq42UC8CCCCAAAIIIIAAAggggAAC8SBAAjQeRpk+piqwYMECtWnTRtu3bz8l7ssvv9TQoUP17rvvBmbmnXIxBt7Yy5bLGva87Hffk5KCu5IblzWVMbC/zKtbxkAP6QICCCCAAAIIIIAAAggggAACCCAgsQYoPwVxLfDzzz+rRYsWpyU/j6Ps3r078EjykiVLjp+K6u+2bcv65FP5m18lf52LZU96J9Afo8PN8i39Xr4vPyX5GdUjTOMRQAABBBBAAAEEEEAAAQQQQODfAswA/bcI7+NKYNCgQdrjrH2Z2nHkyBH17dtX8+fPTy0soq/ZR4/KfusdWYnDpR/XBNtasICMbl1k3nO3jDJlIrr9NA4BBBBAAAEEEEAAAQQQQAABBBBIrwAJ0PTKcV/UC7iJz2nTpnnqx7fffquNGzfqnHPO8RQfKUH2rl2yXx4na+QL0vbfg80qfbbMvr1l9Ogmo2DBSGkq7UAAAQQQQAABBBBAAAEEEEAAAQQyRYAEaKawUmg0CKxfv15+f3DtSy/tXb16ddQkQO1Nm4IbGzm7uuvAwWD3zq8pc8A9MtrfJCNHDi9dJgYBBBBAAAEEEEAAAQQQQAABBBCIegESoFE/hHQgvQLuLtyhHKYZ+Uvm2osWBzc2ev9DyW8Fumdc2dzZ2OgemVc0D6W7xCKAAAIIIIAAAggggAACCCCAAAIxIUACNCaGkU6kR6BKlSrKmTOnjjrrY3o5atas6SUsy2PcjY3sGTMDiU99/U2w/pw5ZNx6i0xnR3ejZo0sbxMVIoAAAggggAACCCCAAAIIIIAAApEiEPlT2iJFinbEnED+/Pl10003eerXFVdcoTIRtlGQffiwrFfGy1+tlqzrblAg+VnoDBmD75Vv0zr5Xh9P8tPT6BKEAAIIIIAAAggggAACCCCAAAKxLMAM0FgeXfqWpsCzzz6rzz//XH/88UeKsQUKFNDIkSNTvJ7VF+wdO2S/OFbW6BelP/8KVl+ubHA3d2dXd8NJ7HIggAACCCCAAAIIIIAAAggggAACCAQFSIBm8U/CoUOHtHXrVh04cCDw5W7CU9DZifuMM84IfBUtWjSLWxTf1ZUqVUpz5sxR27ZttWbNmtMwypYtq/fee09Vq1Y97VpWn7A3bJA1fJTs116XDh0OVn9RneDGRjfeICPENU2zuv3UhwACCCCAAAIIIIAAAggggAACCGSHwP+3dx/wUVTrw8efTQJIUaSD1ACKonSkiRcUpYmCShHwioLIBRW4wFX/NpR7QaVfRBFFihVQUUSaBRUUBBQVkCIiXboU6ZDsm+fknbmbzSbZQLLZmfmdj2FnZ87OnPM9ZjP77CkEQCOgvmLFCpkwYYIsXrxYtm7dKomJyYvThLp0sWLFpH79+tKoUSO57777pGTJkqGysS8LBTS4uXr1apkxY4YsXLhQ9uzZI0WLFpVmzZpJ165d5aKLLsrCq2X+VP5l30niyDHi/+hjkUS/iC/pv1taJi1s9E+Jadok8yfkFQgggAACCCCAAAIIIIAAAggggICHBHxJC6gkRVRI2SHw/vvviw6x/v7778/r9Hny5JF7773XnEN7iDox3X333fL222+bHpShelg6sU6RKLM/KUjunz1HEkeMFlm2PPmSeXKL7+4uyT0+r8r5HqmRcOAaCCCAAAIIIIAAAggggAACCCCAQGYErrrqKtmwYYOsW7dOdFsTPUAzI5iJvJMmTZKePXumeEW+fPmkfPnyUqZMGdF5JbVnYWzSsOVTSYvZ6NB4nYdy+/bt9nyUp0+flokTJ8rSpUtl/vz5Urp06RTn44n7BPwnToh/2puSODppztHfNidXsHAh8fV+QGIe7iO+EiXcV2lqhAACCCCAAAIIIIAAAggggAACCGSjAAHQbMDVnp+9evUyZ9agZ58+faRTp05Sq1YtE/DM6JK7du0yQ7FHjhxp5qVcs2aNmaODsVYmAAA1FElEQVRy+fL/3xMwoxNw3HEC/n37JPGlV8Sf9CMH/0wuf6WKSQsbPSS+7veKL+n/IxICCCCAAAIIIIAAAggggAACCCCAQOYFYjL/El6RkcDAgQPNPJ8FklbjXrRokYwYMULq1q0bVvBTz609Pbt37y6rVq0y81DqPp1HVAOrJHcJ+DdslIQH+khC+cvFP2RYcvCzQT2Jee8dif11rcQ8lNTrk+Cnuxqd2iCAAAIIIIAAAggggAACCCCAQEQFCIBmMffOnTvNMHY97euvv24WNDrfS+gQ+dmzZ0vZsmXNKXSb5A4B/+IlknDbHZJQtYb4X5sscuaM+NrdKrFLvpC4ZYslpv0d4ovh19MdrU0tEEAAAQQQQAABBBBAAAEEEEAgJwWIsGSxvs7XqSl37tzSpk2bCz57/vz5pUWLFuY8v/766wWfL5wTTJ06VXQBJp2f9EJ/dAEkTUeOHAnn0q7O409IkMSZ78u5etdJQpObxT9nniRNBCu+f/SU2A1rJPbD98TX+DpXG1A5BBBAAAEEEEAAAQQQQAABBBBAINICzAGaxeLaA1RT4cKFRef/zIpUqlQpcxpdKCkSKSEpUKc/iUkrkWdV0kWfvJr8x46Jf/I0SRyTtLDR1m3JDMWKSsyD/xCf/hQt6lUa6o0AAggggAACCCCAAAIIIIAAAghkuwA9QLOYuFKlSuaMe/bska1bt2bJ2b/66itzHl1EKRKpR48ecvbsWRMEtYKh5/s4YcIEU+SmTZtGouhRdQ3/7t2S8PhTklCusiT2G5gc/LyissS88qLEbv9NYgY/SfAzqlqMwiCAAAIIIIAAAggggAACCCCAgBsF6AGaxa1as2ZNiUmau1F7T/bt21dmzZolcXHnzzxlyhT55ptvTCl1IaVIJZ/PJ/pzoUktvJb8a3+RxNH/Ff/b7ybN7Xk2ufqNG0nMoH+K77Y2WeLqNVPqiwACCCCAAAIIIIAAAggggAACCJyvgPeiU+crFebrypcvL926dTO558yZI+3atZN169aF+er/ZdPh7rp6/P333y9+v1+KFy8ud9xxx/8ysBV1AomLvpSE1rdJQrU64p/yhiR1oRVf+9sldvkSiVuySGLa3krwM+pajQIhgAACCCCAAAIIIIAAAggggIDbBc6/a6LbZS6gfkOHDjW9Njdt2iRz5841P1WrVpUmTZqIDpHXIKnOiZk3b17TO/TUqVOiAc+9e/eaFeR/+OEHWbJkib1wkPYgnTFjhpQuXfoCSsVLs0PAf+6c+Ge8J4kjx4j8tDr5Evnzie++bhIzoK/44uOz47KcEwEEEEAAAQQQQAABBBBAAAEEEEAgTAECoGFCZSabLlqkq8Hffvvt9vB17QV6Pj1BCxUqJOPHjxcvzqGZGfNI5/UfPSr+1yZL4n/Hi+zYmXz5kiUk5qHe4uv9gPiSFsEiIYAAAggggAACCCCAAAIIIIAAAgjkvAAB0Gxqg6JJK3trL84FCxbI8OHDzfa5pN6C4abLL79cOnbsKP369ZNixYqF+zLyZbOAf+dOE/T0v/q6yNG/kq9W9UqJGdhffF07iy9PnmwuAadHAAEEEEAAAQQQQAABBBBAAAEEEMiMAAHQzGidR96WLVuK/ugQdx3arj/79+83w9uPJvUiPHPmjOTPn18KFChg5vnUofLXXHONVK5c+TyuxkuyS8D/08+SOGqsGe4uZ5MD2b4bmohPFzZq1YK5PbMLnvMigAACCCCAAAIIIIAAAggggAACFyhAAPQCAcN9uc732bhxY/MT7mvIl/MCiQs/Ff/IpMDn54uSCxMXK77OHZNXdK9dK+cLSAkQQAABBBBAAAEEEEAAAQQQQAABBNIVIACaLg8HvSjgT+qV6393RvLCRmvXJRNcXEB8998nMf0fFl+5cl5koc4IIIAAAggggAACCCCAAAIIIICAIwUIgDqy2Sh0dgj4Dx8W/8RJkjjuJZE/didfovRlEtP3QfH1ul98BQtmx2U5JwIIIIAAAggggAACCCCAAAIIIIBANgoQAM1GXE7tDAH/1q2SOPZF8b8+VeTY8eRCV78meWGjzp3ElyuXMypCKRFAAAEEEEAAAQQQQAABBBBAAAEEUgkQAE1Fwg6vCPi//8EMc/e/P0skIdFU23dzs6SFjfpLTPObvcJAPRFAAAEEEEAAAQQQQAABBBBAAAFXCxAAdXXzUrlgAb/fL/6585Pn9/x6SfLhXHHi69o5ucdn9WrBL+E5AggggAACCCCAAAIIIIAAAggggICDBQiAOrjxKHr4Av7Tp8X/5tuSOGqsyIZfk19Y8BIzt6eZ47N06fBPRk4EEEAAAQQQQAABBBBAAAEEEEAAAccIEAB1TFM5u6CLFy+WXr16RbwS+U+dkuvXbZQmv2yQS06eMtf/s0B++fKaq+TbK6+Q04cPigwZEvFyRfKC8+fPF+35WqBAgUhelmshgECUCpw9e1YOHTokRYoUkdjY2CgtJcVCAIFIChw9elQSExPl0ksvjeRluRYCCESpgL4fHDhwQAomLQKbJ0+eKC0lxUIAgUgKnDhxQvRzROvWrR3xGWLPnj2peHxJgRF/qr3sQCCLBN555x3p2rVrFp0t/NNoqK+a+OSKpB8ryn8gad8aSZTfwz8NORFAAAEEEEAAAQQQQAABBBBAAAEEHCiwfft2KVu2rCm5FRtyYDUoshMEOnbsaIp57NixqChu66goReQKsX//fnnyySdN78+2bdtG7sJcCQEEolZg1apVsn79eqldu7ZcddVVUVtOCoYAApETmD59uiQkJMhdd93liF4dkZPhSgh4U+D333+XZcuWScWKFaVhw4beRKDWCCCQQmDBggVy8OBBeeyxxyQ+Pj7FsWh9UqFCBTv4qWWkB2i0thTlQiALBPTmpVKlSubmZfPmzVlwRk6BAAJOFxg0aJCMGjVKRo4cKQMHDnR6dSg/AghkgUC+fPnk5MmTosPb8ubNmwVn5BQIIOBkgWnTpsm9994r3bp1k6lTpzq5KpQdAQSySKB+/fqyYsUKWb58udSrVy+LzhrZ08RE9nJcDQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQiJwAAdDIWXMlBBBAAAEEEEAAAQQQQAABBBBAAAEEEIiwAAHQCINzOQQQQAABBBBAAAEEEEAAAQQQQAABBBCInAAB0MhZcyUEEEAAAQQQQAABBBBAAAEEEEAAAQQQiLAAAdAIg3M5BBBAAAEEEEAAAQQQQAABBBBAAAEEEIicAAHQyFlzJQQQQAABBBBAAAEEEEAAAQQQQAABBBCIsAAB0AiDczkEEEAAAQQQQAABBBBAAAEEEEAAAQQQiJwAAdDIWXMlBBBAAAEEEEAAAQQQQAABBBBAAAEEEIiwAAHQCINzOQQQQAABBBBAAAEEEEAAAQQQQAABBBCInAAB0MhZcyUEEEAAAQQQQAABBBBAAAEEEEAAAQQQiLAAAdAIg3M5BBBAAAEEEEAAAQQQQAABBBBAAAEEEIicAAHQyFlzJQQQQAABBBBAAAEEEEAAAQQQQAABBBCIsAAB0AiDczkEEEAAAQQQQAABBBBAAAEEEEAAAQQQiJwAAdDIWXMlBBBAAAEEEEAAAQQQQAABBBBAAAEEEIiwAAHQCINzOQQQQAABBBBAAAEEEEAAAQQQQAABBBCInAAB0MhZcyUEEEAAAQQQQAABBBBAAAEEEEAAAQQQiLAAAdAIg3M5BCIpEBcXZy5nPUby2lwLAQSiU8B6P7Aeo7OUlAoBBCIpoO8HPp9PYmNjI3lZroUAAlEqYN0jWI9RWkyKhQACERSw3g+sxwheOssuFftMUsqys3EiBBCIKoGCBQtK/vz5pUuXLlKlSpWoKhuFQQCBnBGoVKmS5M6dW3r16mXeH3KmFFwVAQSiSaBcuXLSvHlzqV+/fjQVi7IggEAOCZQvX178fr+5VyhevHgOlYLLIoBANAnEx8eLfo7o0KGDxMQ4sy+lL+mNzR9NqJQFAQQQQAABBBBAAAEEEEAAAQQQQAABBBDIKgFnhm2zqvacBwEEEEAAAQQQQAABBBBAAAEEEEAAAQRcLUAA1NXNS+UQQAABBBBAAAEEEEAAAQQQQAABBBDwtgABUG+3P7VHAAEEEEAAAQQQQAABBBBAAAEEEEDA1QIEQF3dvFQOAQQQQAABBBBAAAEEEEAAAQQQQAABbwsQAPV2+1N7BBBAAAEEEEAAAQQQQAABBBBAAAEEXC1AANTVzUvlEEAAAQQQQAABBBBAAAEEEEAAAQQQ8LYAAVBvtz+1RwABBBBAAAEEEEAAAQQQQAABBBBAwNUCBEBd3bxUDgEEEEAAAQQQQAABBBBAAAEEEEAAAW8LEAD1dvtTewQQQAABBBBAAAEEEEAAAQQQQAABBFwtQADU1c1L5RBAAAEEEEAAAQQQQAABBBBAAAEEEPC2AAFQb7c/tUcAAQQQQAABBBBAAAEEEEAAAQQQQMDVAgRAXd28VA4BBBBAAAEEEEAAAQQQQAABBBBAAAFvCxAA9Xb7U3sEEEAAAQQQQAABBBBAAAEEEEAAAQRcLUAA1NXNS+UQQAABBBBAAAEEEEAAAQQQQAABBBDwtgABUG+3P7VHAAEEEEAAAQQQQAABBBBAAAEEEEDA1QIEQF3dvFQOAQQQQAABBBBAAAEEEEAAAQQQQAABbwsQAPV2+1N7BBBAAAEEEEAAAQQQQAABBBBAAAEEXC1AANTVzUvlEEAAAQQQQAABBBBAAAEEEEAAAQQQ8LYAAVBvtz+1RwABBBBAAAEEEEAAAQQQQAABBBBAwNUCBEBd3bxUDgEEEEAAAQQQQAABBBBAAAEEEEAAAW8LEAD1dvtTewQQQAABBBBAAAEEEEAAAQQQQAABBFwtQADU1c1L5RBAAAEEEEAAAQQQQAABBBBAAAEEEPC2AAFQb7c/tUcAAQQQQAABBBBAAAEEEEAAAQQQQMDVAgRAXd28VA4BBBBAAAEEEEAAAQQQQAABBBBAAAFvCxAA9Xb7U3sEEEAAAQQQQAABBBBAAAEEEEAAAQRcLRDn6tpROQQ8JjBnzhyZO3duWLXOly+fjB49Oqy8ZEIAAWcJtGrVShYsWCAvvviiPPTQQ2EVfvPmzfLcc8/JDz/8ILpdpkwZadSokVx33XXSsWNHyZ8/f1jnIRMCCESfwNKlS+X666+XQoUKyYEDBzIsYGJionnv0Mdwkr5H3HjjjeFkJQ8CCOSAwMGDB819v/6N37Rpk+zevVvi4+OlSpUq5r3hwQcflNy5c2dYsoSEBJk6daq8++675jxHjx6VevXqmXuF1q1bS926dTM8BxkQQCA6BDRu8M4775jfZX1f0PcAfU+46qqrpHfv3lKzZs10C+rEewWfPymlWysOIoCAYwTuuusumTFjRljlLViwoBw+fDisvGRCAAHnCLz88suiH2Q0hRsAHTlypDz++ONy9uzZkBVt2LCh+XJFgyckBBBwlsChQ4ekQYMG8uuvv0qRIkXCCoBu2LDBfAAKt6ZjxoyR/v37h5udfAggEEGBcePGyeDBg9O979egxyuvvCJNmzZNs2S7du2Sli1bytq1a0PmiYuLkylTpsjdd98d8jg7EUAgOgR+//136dWrl3z++edpFig2NtZ8nhg2bFianSCceK9AD9A0m5wDCDhP4Mcff3ReoSkxAghkmYB+i/vwww9n6nz6YeVf//qXec1FF10knTp1Eg147tixQz755BP5+eefZdmyZdKkSRP57LPPpESJEpk6P5kRQCDnBLR3VosWLUzwMzOl4H4iM1rkRSB6Bd5++23p16+fXUAdIaK9wS+77DL57bffZNasWbJu3TrZuHGjaA/O77//XqpWrWrntzb0vUSPW8FP7Rl26623SunSpWXx4sXy4YcfysmTJ+Wee+6RI0eO2F/EWq/nEQEEokPg1KlT0q5dO1mzZo0pUPHixaVr167m9/7EiRNmJJh+njh37pzolyfaYWratGkhC+/EewV6gIZsSnYi4DyB48ePyyWXXCLaFf2mm26SN998M91KxMTEiL7hkRBAwPkC+qFDe3fotBY6PM1KGfUA3b9/v5QvX958aNFe4bNnzzaBTuv12iNUP8xMnz7d7OrTp4+89NJL1mEeEUAgigX0i4sePXrI+vXr7VKG2wP00UcfleHDh5vX6XQaNWrUsM8RakPvP3RqHRICCESPwJYtW8zv7l9//SW5cuWSmTNnmsBHYAn17/zAgQPNiBHdr4HNFStWmPyB+QYNGiSjRo0yu3TKC/2cEThk/ptvvpE2bdqY4Kf2BN22bZsJsgaeg20EEMh5AZ0ay7qX1y9INdhZuHDhFAXTzg96bO/evWb/e++9J+3bt0+RR5848V6BRZBSNSM7EHCmwOrVq03wU0uvQ91KliyZ7g/BT2e2M6VGIFhAe15ocGLEiBEpgp/B+UI9Hzt2rAl+6rEXXnghRfBT9+kHJu09cu211+pTeeONN0Q/SJEQQCB6BfQLUR2O3rhx4xTBz8yU+KeffjLZNZChvb8zuqcg+JkZXfIiEBkB/fLS+putIz2011dw0r/zOoWF9Xdef/dXrVqVItuff/4pEydONPvKlSuXKvipB/T95q233jJ5tOfYq6++arb5BwEEokdAfzenJs3hq0mntdKencHBTz2mnysCf4dff/113Z0qOfFegQBoqmZkBwLOFLDegLT0derUcWYlKDUCCIQtoFN461yfOl+XTlyu6corr8zUEPjJkyeb11188cVy3333me3gf7S3+IABA8zuY8eOmSBocB6eI4BAdAgsX75cqlWrJv/973/Nl6L6+6vz+2oAMzPJuqe4+uqrRafGICGAgPMEvv76a7vQDzzwgL0dvKFz/d1555327uAAqPb+0r//mv7xj3+k6PlpvyhpQ3uA6lyimjR4kta84iYD/yCAQMQFdIoL/ZJUU9u2bdOd1kp/n60FUIPfE6yCO/FegQCo1Xo8IuBwgcA5OAiAOrwxKT4CYQjodBe64JG1lqEOddXVXQOHqvp8vjTPtHXrVtmzZ485rj28AoeyBb+oWbNmYp1Le4SSEEAgOgV03l4d9qpJ5/jTBQ6GDh0q2pNTk/V7bJ6k8c8ff/wh+/btM0e5n0gDid0IOEBAv/jQUWEalNSem+mlUqVK2Yd37txpb+uGTqdhpebNm1ubIR91Gi5Nusr8l19+GTIPOxFAIGcEdC7fm2++WfTLzYz+vgdOl6dTZp0+fTpFoZ16r5B8N5SiKjxBAAEnCljfwOjQ9rJly5oqaGBk+/btUqBAAbPyqxPrRZkRQCB9Af0w8vTTT8t1112Xfsago9999529R+f8Si8VK1ZM9MOR3uxYCyCkl59jCCCQcwI6z6f22tZ5vnRuzswm635CX1e3bl375doDTOcDq1ChgmiPMRICCES3gDXUNZxS6px/Vqpevbq1aR6t+wUNiAQfS5Ex6Ungl7B6v5BRwDT49TxHAIHsE9Dfx3B/J3UxM+0soUm/RMmTJ4/Ztv5x6r0CPUCtFuQRAQcL6KIn1kpu+m3O0qVLpWXLlqLDWvWDStGiRc03vx06dJDNmzc7uKYUHQEELAH9IKIfShYuXJjp4Keewxo2r9vx8fH6kG6yeo/ofGIaCCUhgED0CejiJPqBRYe9n0/wU2sU+KHmiiuuMD1I9T1Cz1e5cmXzpWq9evXMoilWD/Tok6BECCAQroD+XQ8c3aG/34FJV4vXpCu+65yh6SXrXkHzbNiwIb2sHEMAgSgW0GksrL/xwe8JWmyn3ivQAzSK/6ejaAiEK7Bx40Y5deqUya6rMIbqCbZjxw7Rn/nz55uVXXU1ZxICCDhXQIey1q9f/7wroMNgrFSiRAlrM81H7QVqJV0QQYfXkhBAILoEdP7PC02BH2ruuOMOCXyv0HPr/cbKlSvNz6xZs8yCCuXLl7/Qy/J6BBDIIYF///vf9mrPuvJz4JeiOl+gdrTQdD73CjlUJS6LAAIXIKBTWOj0OZq0w0WoOYSdeq9AAPQC/sfgpQhEi0Dg/J/6La5OWKxz+jVNWhxF5//RISgffPCB6f2pNzK6cIqu/Na5c+doqQLlQACBCAvo0BYr5c2b19pM8zEwz4kTJ9LMxwEEEHC2QOA9hQY/dXG1G2+8URo2bGjmBl2xYoXMnDnT9Az56quvzMInOv9wevMIO1uE0iPgXgEdJj9ixAhTQe3l/dprr6WoLPcKKTh4goDrBfR3vlWrVmL97vfr1y9k5yqn3isQAHX9/8JU0AsCgd/A6PCUTz/9VKpWrZqi6oMHD5b+/fvbNzZ9+/YVnag8sFdXihfwBAEEXC2gX5ZYKZxVngPn/iEAasnxiIC7BPR9IXCqHJ1LdOTIkakWT9IvUnW4vS6kpl+yDhs2TJ555hl3YVAbBFwuMGfOHOnZs6ddyzFjxtjrCFg7uVewJHhEwP0CJ0+eNKvDW3MCW9PgBNfcyfcKzAEa3Jo8R8CBAr169ZL333/ffIOrQ+CDg59apXz58smECROkVq1apoYHDhwQvdEhIYCANwUC5/E6d+5chgiBecIJmGZ4QjIggEDUCWgvTl05ftKkSTJt2jQZNWpUquCnFvr666+Xl19+2S6/BkB1kSQSAgg4Q0B7ft55551i/W1/6qmnpHv37qkKz71CKhJ2IOBKAY0NNGvWTL7++mtTP53Pd8GCBRI4AsyquJPvFegBarUijwg4WEAXJdCfjJKu2qo9NNq2bWuyBvYczei1HEcAAXcJFChQwK6QNYewvSPERmCeggULhsjBLgQQcLqA9vTW4e7hpNtvv918qarD4M6ePSvr1q2TUAslhHMu8iCAQOQEnn322RQ9tnWUmH4+CJW4Vwilwj4E3CWgC53psHdrwTOdB/iLL75IMR9wYI2dfK9AD9DAlmQbAQ8I1KhRw66ltXK8vYMNBBDwjEDgCtHBi5yEQgjME/jaUHnZhwAC3hDgnsIb7Uwt3SGgvT21l6cV7NSOEa+88or9PFQtL774Ynt34H2AvTNoIzAP9wpBODxFIAoFvvvuO2nUqJEd/KxTp44sW7YszeDn+VQhmu4VCICeTwvyGgQcLFCmTBl7ONvBgwcdXBOKjgACFyJQqVIl++U7duywt9PasPLExcVJkSJF0srGfgQQ8JCADpGzkg6fIyGAQHQKaGCydevWMmXKFFNAXTD1o48+Ep1GK72kw18vu+wyk8W6D0gvf2AeXYiVhAAC0Svw4YcfmlEf+/fvN4XU9wgdAl+iRIksLXQ03SsQAM3SpuVkCOSMgN7UaJf1cHp06o2J3+83Bb388stzpsBcFQEEclwgcK5ga8hLWoXS4a3btm0zh6tVqybMAZqWFPsRcLaA9hDbvXu3rF69WsL5ktR6X9Ba62IJJAQQiD4B/XLib3/7m3z22WemcKVKlTJBjjZt2oRVWOt+QT9vWIGStF64adMm+9C1115rb7OBAALRJTBx4kRp37696MJHmnr37i0ff/yx6JcjGSUn3ysQAM2odTmOQJQL6Cps2htLg5n169eXwHn6QhVd5+iy0pVXXmlt8ogAAh4T0OEo1sruixcvTrf2K1askNOnT5s8+j5DQgABdwo88cQTpreXvj+MHz8+w0pyT5EhERkQyFGBw4cPS/PmzcVa1fmaa66R5cuXiw5zDTcF/t3P6H5hyZIl9mkDX2fvZAMBBHJcQBdB04BnYmKiGRmqCx7qwoY6LUY4ycn3CgRAw2lh8iAQxQI6N491g6Hf4Ohqbeml4cOH24dvu+02e5sNBBDwloAubNCyZUtT6bVr14ouZJJWeuONN+xD4fYYsV/ABgIIOEbg5ptvtsuqw2OtESP2zoCNL7/8UlauXGn2VKlShR6gATZsIhAtAhrksP6+a49MHd5atmzZTBVPe4lZ6c0337Q2Uz1u377dXkG6bt26WT6MNtUF2YEAApkW0Hv+nj17mr/vMTExosHQAQMGZOo8Tr5XIACaqaYmMwLRKWCt6q6l69evnxw6dChkQV988UX7xqRWrVrSpUuXkPnYiQAC3hC4//777YrqPGDaUyQ4zZs3z54zTHuO6PxAJAQQcKdA48aN7Tl+f/rpJxkzZkzIiu7bt08efPBB+9gLL7wQds8R+0VsIIBAtgroKs7Tp08319Bh7zq8tXDhwpm+Zs2aNe0eo3qOt956K9U5tBOG3lPolDmaHn300VR52IEAAjkv0KdPH9Eh7JoGDx4s99xzT6YL5eR7BV/SN7vJkwFmutq8AAEEokVA38SaNm0q3377rSlS5cqVZfTo0XLDDTeYufr0m56xY8fKtGnTzHGdv2/hwoVmPqBoqQPlQACBrBF4/fXXzYcQPZsOYQ0MUoS6QqtWreye4/ohR4fB6GqQOv/fBx98IIMGDTIfaPRbYv3gc8stt4Q6DfsQQCCKBbTH186dO6Vo0aIZzuGnX3poT2/9iKC/99qDbODAgVKhQgXzWu352b9/f9mzZ4+psX4pMnfu3CiuPUVDwHsCZ86ckerVq8vGjRtN5XWO3nDn/m/RooU8/PDDKdCslaKt94UhQ4aYjhS6uKoOqdchsdbw+AYNGpjPJPr+QUIAgegR0BFd3bp1MwXS308dCebz+cIqoMYRAhdBdeq9AgHQsJqbTAhEv8CuXbtMwDNw8nF9Q8uVK5foTZCV9EPQrFmzRIemkBBAwH0CmQ2A/vnnn9K5c2f59NNPbQx937B6cVg7tSeYBj1ICCDgPIHMBEC1ds8//7w8+eSTkpCQYFdWvzwNnmdcgyT6hWtcXJydjw0EEMh5Ae3oYE1zk9nS9OjRQyZNmpTqZTNnzpTu3bvL8ePH7WPB9wvaCWPZsmXmyxY7ExsIIBAVAg0bNhT9MuN8ki6krF94BCYn3ivwtUxgC7KNgIMFSpcuLdrTU+f4LFiwoKmJfktrBT+LFSsmHTp0kO+//57gp4PbmaIjkNUCOhxu/vz58vjjj9tD4wKDn7rqu/buIviZ1fKcD4HoFXjsscdk1apV5otVq5RW8FODndqzTHuDjBs3juCnBcQjAlEk8Msvv2R5aTp27GiCJ9qJwlosxbpfyJ07t7lP0OCK9jQnIYBA9AkELlyYFaVz4r0CPUCzouU5BwJRJqArum3bts0Me9E5eWrXri3ly5ePslJSHAQQiEaBLVu2mAUT8ubNaxY1iY+PN8Ngo7GslAkBBLJf4OjRo+Z+YvPmzeZeQqfK0PcHEgIIeFfgxIkTovME68JHFStWFF0IzeqA4V0Vao6AdwWccq9AANS7/49ScwQQQAABBBBAAAEEEEAAAQQQQAABBFwvwBB41zcxFUQAAQQQQAABBBBAAAEEEEAAAQQQQMC7AgRAvdv21BwBBBBAAAEEEEAAAQQQQAABBBBAAAHXCxAAdX0TU0EEEEAAAQQQQAABBBBAAAEEEEAAAQS8K0AA1LttT80RQAABBBBAAAEEEEAAAQQQQAABBBBwvQABUNc3MRVEAAEEEEAAAQQQQAABBBBAAAEEEEDAuwIEQL3b9tQcAQQQQAABBBBAAAEEEEAAAQQQQAAB1wsQAHV9E1NBBBBAAAEEEEAAAQQQQAABBBBAAAEEvCtAANS7bU/NEUAAAQQQQAABBBBAAAEEEEAAAQQQcL0AAVDXNzEVRAABBBBAAAEEEEAAAQQQQAABBBBAwLsCBEC92/bUHAEEEEAAAQQQQAABBBBAAAEEEEAAAdcLEAB1fRNTQQQQQAABBBBAAAEEEEAAAQQQQAABBLwrQADUu21PzRFAAAEEEEAAAQQQQAABBBBAAAEEEHC9AAFQ1zcxFUQAAQQQQAABBBBAAAEEEEAAAQQQQMC7AgRAvdv21BwBBBBAAAEEEEAAAQQQQAABBBBAAAHXCxAAdX0TU0EEEEAAAQQQQAABBBBAAAEEEEAAAQS8K0AA1LttT80RQAABBBBAAAEEEEAAAQQQQAABBBBwvQABUNc3MRVEAAEEEEAAAQQQQAABBBBAAAEEEEDAuwIEQL3b9tQcAQQQQAABBBBAAAEEEEAAAQQQQAAB1wsQAHV9E1NBBBBAAAEEEEAAAQQQQAABBBBAAAEEvCtAANS7bU/NEUAAAQQQQAABBBBAAAEEEEAAAQQQcL0AAVDXNzEVRAABBBBAAAEEEEAAAQQQQAABBBBAwLsCBEC92/bUHAEEEEAAAQQQQAABBBBAAAEEEEAAAdcLEAB1fRNTQQQQQAABBBBAAAEEEEAAAQQQQAABBLwrQADUu21PzRFAAAEEEEAAAQQQQAABBBBAAAEEEHC9AAFQ1zcxFUQAAQQQQAABBBBAAAEEEEAAAQQQQMC7AgRAvdv21BwBBBBAAAEEEEAAAQQQQAABBBBAAAHXCxAAdX0TU0EEEEAAAQQQQAABBBBAAAEEEEAAAQS8K0AA1LttT80RQAABBBBAAAEEEEAAAQQQQAABBBBwvQABUNc3MRVEAAEEEEAAAQQQQAABBBBAAAEEEEDAuwIEQL3b9tQcAQQQQAABBBBAAAEEEEAAAQQQQAAB1wsQAHV9E1NBBBBAAAEEEEAAAQQQQAABBBBAAAEEvCtAANS7bU/NEUAAAQQQQAABBBBAAAEEEEAAAQQQcL0AAVDXNzEVRAABBBBAAAEEEEAAAQQQQAABBBBAwLsCBEC92/bUHAEEEEAAAQQQQAABBBBAAAEEEEAAAdcLEAB1fRNTQQQQQAABBBBAAAEEEEAAAQQQQAABBLwrQADUu21PzRFAAAEEEEAAAQQQQAABBBBAAAEEEHC9AAFQ1zcxFUQAAQQQQAABBBBAAAEEEEAAAQQQQMC7AgRAvdv21BwBBBBAAAEEEEAAAQQQQAABBBBAAAHXCxAAdX0TU0EEEEAAAQQQQAABBBBAAAEEEEAAAQS8K0AA1LttT80RQAABBBBAAAEEEEAAAQQQQAABBBBwvQABUNc3MRVEAAEEEEAAAQQQQAABBBBAAAEEEEDAuwIEQL3b9tQcAQQQQAABBBBAAAEEEEAAAQQQQAAB1wsQAHV9E1NBBBBAAAEEEEAAAQQQQAABBBBAAAEEvCtAANS7bU/NEUAAAQQQQAABBBBAAAEEEEAAAQQQcL0AAVDXNzEVRAABBBBAAAEEEEAAAQQQQAABBBBAwLsCBEC92/bUHAEEEEAAAQQQQAABBBBAAAEEEEAAAdcLEAB1fRNTQQQQQAABBBBAAAEEEEAAAQQQQAABBLwrQADUu21PzRFAAAEEEEAAAQQQQAABBBBAAAEEEHC9AAFQ1zcxFUQAAQQQQAABBBBAAAEEEEAAAQQQQMC7AgRAvdv21BwBBBBAAAEEEEAAAQQQQAABBBBAAAHXCxAAdX0TU0EEEEAAAQQQQAABBBBAAAEEEEAAAQS8K0AA1LttT80RQAABBBBAAAEEEEAAAQQQQAABBBBwvQABUNc3MRVEAAEEEEAAAQQQQCBrBW666SYpWbKklClTJmtPzNkQQAABBBBAAIFsEIjLhnNySgQQQAABBBBAAAEEEHCxwMGDB2Xv3r0SF8fHCRc3M1VDAAEEEEDANQL0AHVNU1IRBBBAAAEEEEAAAQQQQAABBBBAAAEEEAgWIAAaLMJzBBBAAAEEEEAAAQQQQAABBBBAAAEEEHCNAAFQ1zQlFUEAAQQQQAABBBBAAAEEEEAAAQQQQACBYAECoMEiPEcAAQQQQAABBBBAAAEEEEAAAQQQQAAB1wgwa7lrmpKKIIAAAggggAACCGRGICEhQd5//32ZMWOG/Pbbb7Jz504pV66cVK1a1fx069ZNypYtG/KU//d//yeHDh2S2rVrywMPPCDr1q2Td999V7799ltZvXq1WSG9evXq0rdvX2nQoEHIcwTv/Omnn0x59PHnn3+WPHnySM2aNc3P/fffb84Z/Jrg52fPnpXJkyfLypUrRc+zbds2qVKlijmHrtzerl274JeEfP7LL7/I2LFjzXnURU2uv/566dKli1x99dUhX8NOBBBAAAEEEEAgWgV8/qQUrYWjXAgggAACCCCAAAIIZIfAgQMHpGnTpqKBvrTSpZdeKi+99JIJ+gXn0cCoBgbbt29vgpy33nqrHDlyJDibed69e3d59dVXJTY2NuTxxMREef755+WZZ54RDWCGSsWKFZPXXntN2rZtG+qw2bd+/Xrp2rWr/Pjjj2nm6dSpk0yYMEEKFSqUZp4nnnhCnnvuOQn1MaFAgQIyffp0efLJJ02AVVeBT6vMaV6AAwgggAACCCCAQIQFCIBGGJzLIYAAAggggAACCOSswLlz5+Rvf/ubLFu2zBTkuuuuEw1gFi9eXNauXSsLFiwwPTqtUn700UepAo9WALRixYqye/duOXnypDRr1kzuvPNOueyyy2Tp0qUm0PjXX3+Z02hg8q233rJOmeLxlltukXnz5pl9efPmlc6dO5sem6dOnZIVK1aIXl/LrGn06NHyz3/+02wH/vP1119Lq1atTDl0f926daVFixZSoUIFu04bN240LylfvrzpYVqwYMHAU5jtRx55REaMGGG2Y2Ji5Pbbb5dGjRrJ0aNHZdGiRbJkyRITyL3ooovk+PHjQgA0FSE7EEAAAQQQQCAKBQiARmGjUCQEEEAAAQQQQACB7BPQwKcG9TQ9/PDDMm7cuFQXGz58uDz66KNm/2233SazZ89OkccKgFo7dUj80KFDxefzWbtM4FGDm9u3bzf7Fi5cKM2bN7eP64b2ptSAp6YaNWrIe++9J5dffrl5bv2zePFi6dChg+zbt0/y588vv/76qwmyWsc1OKpD5a3erBrAHDBggGgA00oaTO3du7dMnTrV7NIgqgZTA9OaNWukVq1aolMDXHLJJaZsGlQNTCNHjjQu2mtVk/ZqtYKzgfnYRgABBBBAAAEEokngf3dF0VQqyoIAAggggAACCCCAQDYJfPPNN/aZtcdmqKRzd+p8oNor9PDhw3L69OlQ2cy+G264QYYNG5Yi+KkHrrnmGhkzZoz9uiFDhtjbunHixAnRHpeatOfnzJkzUwU/9Zj2Vn3zzTd10/S6tAKzZkfSP6+88ood/NTh9oMGDUoR/NR82mNzypQp0rBhQ/Oy8ePHy4YNG8y29Y/WQYOfmp5++mnTo9Q6Zj3quf/+979bT3lEAAEEEEAAAQQcIUAA1BHNRCERQAABBBBAAAEEskpAh6hbSYOHoYKbGjD8/fffZe/evaLDy3VBorTSs88+m9YhM4TcWjRIe57q3KNWmjNnjuzYscM81aDiFVdcYR1K9ag9R63z6GJLZ86csfPoPKVW+s9//mNthnzUnqGadN7Od955x86jvTh16L+mwoULS69evexjwRva2zWwd2nwcZ4jgAACCCCAAALRJkAANNpahPIggAACCCCAAAIIZKuABhOtoeo6BF1Xax88eLCZE9TqAakFSGvRosDC6UJJujp6WkmvYw2312HjOoemlXQou5V0HtKMUr169UwWLeOWLVvsbQ3UaoqPj5dSpUqZ7bT+sc6hxzdt2mRn01Xntaerpjp16ogudpRW0lXlK1eunNZh9iOAAAIIIIAAAlEnEBd1JaJACCCAAAIIIIAAAghko4CuqK69JnX+Tw0maiBSh6frj/Z+1ABp69atzcJHOhdmekkXFMooBebRBZOsFBiA1KHljz/+uHUo5KMuRGQlfa0GIrdt22b3Bv3jjz+kTJkyVpYMHwOvH1iucM6heQIDuBlejAwIIIAAAggggEAOChAAzUF8Lo0AAggggAACCCCQMwK6IJDO8Tlw4ECxVkfXkvz5559m8R/tGarD4DVI+txzz6XZG1TPkVEqWbKkneXgwYP29m+//WZv79+/394OZ2Pz5s0mW+A5dCj/rl27wnm5yWOdQ58EXj9wioC0TqaLQJEQQAABBBBAAAGnCBAAdUpLUU4EEEAAAQQQQACBLBXQFdr1Z8WKFTJv3jwzB+bKlSvFWuFcV07XFdV/+OEH0fk68+XLl+r6upBRRilw3k8dMm8lXdHdSs8884wUKVLEeprhozVkPvAcOrw9MwsU5cqVy77OxRdfbG9bQ+HtHSE2WPk9BAq7EEAAAQQQQCBqBQiARm3TUDAEEEAAAQQQQACBSAho4FB/NAipPUA/++wz0YWGPv74Y/H7/bJo0SKzr23btqmKs3379lT7gncE5gnsDaqLHn3++ecmu16/VatWwS/N8HnwwkkPPfRQhq8JlSGwXIHlDZVX9+nQexICCCCAAAIIIOAUARZBckpLUU4EEEAAAQQQQACBLBHQXps//vijfPrpp6nOp3OAdurUST766CMz9N3KYK2Qbj23HnUV95MnT1pPQz6uXbvW3l+3bl17OzB4uWrVKnt/Whta5uXLl5uV6TUwq0nnM7V6la5Zs8as7p7W63W/1n3hwoVm2H9guXWF+bi45L4R69atM4HftM6j1w4cPp9WPvYjgAACCCCAAALRIkAANFpagnIggAACCCCAAAIIRESgRo0aUrt2bWnTpo0ELiwUfPGWLVvauzTQGSrpMPmJEyeGOmT26fD6xYsXm+2aNWualdqtzA0aNLA25eWXX5a//vrLfh68ocFK7SGqr9HemuvXr7ezWOfRPC+++KK9P9SGllXrdeWVV8q9995rZylUqJDccMMN5rkGN2fNmmUfC9744IMPJHDRpODjPEcAAQQQQAABBKJNgABotLUI5UEAAQQQQAABBBDIVoH27dub8589e1aGDh2a5rXmzp1rH9PgZVrphRdekFAB0mPHjomu7m6l4OHp9evXlw4dOpjDuoL7gAEDzKr0Vv7Ax0ceecT0/NR9N910k1StWtU+rNePjY01zwcPHiy//PKLfSxwQxd7Cqxv3759Aw/Lgw8+aD9/4oknZN++ffZza0OnCHjqqaespzwigAACCCCAAAKOECAA6ohmopAIIIAAAggggAACWSXQo0cPKVCggDnd8OHDpWfPnqLDvjUgqgsg6RyYTz/9tGgwUZPm7dOnj9kO9c+ePXukTp06MnPmTNFV3o8fP27m9mzYsKEsWbLEvKRx48bSvXv3VC8fNWqUvbjSpEmTpEmTJvLVV1+ZnqkJCQmiw9q7dOki48ePN6/VhZiGDRuW4jzVq1e3y6dBVx1mP3LkSNm0aZMZyq6LGk2ZMsX08LRWodcgsLWQknUynePUmudUg6V6ntmzZ8uRI0dMeTQgrPXcsGGD+Hw+62U8IoAAAggggAACUS/gS5rDJ3kCoagvKgVEAAEEEEAAAQQQQCBrBHRV93bt2tkrvutZY2JiTE9KDYRaKT4+3swHqkHGwFS2bFnZuXOn6OrpuoDRF198YQ5rYFDPo8FLK2kgVAOJOl9nqKSLLN13330m8God1/Nor87A1dZ11XZdmClwaL6VX4Ou2oP01VdftXaZx9y5c8uZM2dS7NMepJ988onkyZMnxX59olMC3HHHHXZ9dJ/WR5MGhzXpUHyttwZ8dd7QQC+TgX8QQAABBBBAAIEoE6AHaJQ1CMVBAAEEEEAAAQQQyH6BW2+9VXR+Tg2CWr0ZNcBnBfN0ns277rpLVq5cKcHBz8DSaRBRF0jS4OMll1xielxawc/ixYvLkCFDzCryaQU/9Vw33nij6EJJvXr1Ep2LU5P2UbCCnxoIveeee8zQ9lDBT82fP39+MxepLuxUrVo1e0h8YPCzUqVKMnnyZJk/f37I4KeeR+swb94808tUy69JXfRHr3Fv0ryhukCU9kQlIYAAAggggAACThGgB6hTWopyIoAAAggggAACCGSLwKFDh2Tbtm2mB6b2aKxVq5aUKlUq3WtZPUCLFi0q+/fvN3k1SLh69WqzQrr2HNWV1UP1skz3xEkHdT5QDYhqr86KFSuaH+1xmZmkizPpUHUdBq/BVz1PmTJl7N6c4Zzr9OnTJui6ZcsWqVChgujiUdZK8eG8njwIIIAAAggggEC0CBAAjZaWoBwIIIAAAggggAACjhEIFQB1TOEpKAIIIIAAAggg4DEBhsB7rMGpLgIIIIAAAggggAACCCCAAAIIIIAAAl4SIADqpdamrggggAACCCCAAAIIIIAAAggggAACCHhMgACoxxqc6iKAAAIIIIAAAggggAACCCCAAAIIIOAlAQKgXmpt6ooAAggggAACCCCAAAIIIIAAAggggIDHBOI8Vl+qiwACCCCAAAIIIIDABQuMGzdOTpw4cV6rvF/wxTkBAggggAACCCCAQKYE/h+O0Y6U21bw+wAAAABJRU5ErkJggg==" alt="A scatterplot with a regression line." width="672" />
+<p class="caption">
+A scatterplot with a regression line.
+</p>
+</div>
+<div id="references" class="section level2 unnumbered">
+<h2>References</h2>
+<div id="refs" class="references">
+<div id="ref-xie2013">
+<p>Xie, Yihui. 2015. <em>Dynamic Documents with R and Knitr</em>. 2nd ed. Boca Raton, Florida: Chapman; Hall/CRC. <a href="http://yihui.name/knitr/" class="uri">http://yihui.name/knitr/</a>.</p>
+</div>
+<div id="ref-R-knitr">
+<p>———. 2016. <em>Knitr: A General-Purpose Package for Dynamic Report Generation in R</em>. <a href="http://yihui.name/knitr/" class="uri">http://yihui.name/knitr/</a>.</p>
+</div>
+</div>
+</div>
+<div class="footnotes">
+<hr />
+<ol>
+<li id="fn1"><p>e.g. the <a href="http://yihui.name/knitr/demo/manual/">main manual</a> and the <a href="http://yihui.name/knitr/demo/graphics/">graphics manual</a><a href="#fnref1">↩</a></p></li>
+</ol>
+</div>
+
+<script type="text/javascript">
+window.onload = function() {
+  var i, fig = 1, caps = document.getElementsByClassName('caption');
+  for (i = 0; i < caps.length; i++) {
+    var cap = caps[i];
+    if (cap.parentElement.className !== 'figure' || cap.nodeName !== 'P')
+      continue;
+    cap.innerHTML = '<span>Figure ' + fig + ':</span> ' + cap.innerHTML;
+    fig++;
+  }
+  fig = 1;
+  caps = document.getElementsByTagName('caption');
+  for (i = 0; i < caps.length; i++) {
+    var cap = caps[i];
+    if (cap.parentElement.nodeName !== 'TABLE') continue;
+    cap.innerHTML = '<span>Table ' + fig + ':</span> ' + cap.innerHTML;
+    fig++;
+  }
+}
+</script>
+
+
+<!-- dynamically load mathjax for compatibility with self-contained -->
+<script>
+  (function () {
+    var script = document.createElement("script");
+    script.type = "text/javascript";
+    script.src  = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
+    document.getElementsByTagName("head")[0].appendChild(script);
+  })();
+</script>
+
+</body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-intro.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_print.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_print.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_print.html	(revision 2476)
@@ -0,0 +1,441 @@
+<!DOCTYPE html>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+
+<meta charset="utf-8">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="pandoc" />
+
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<meta name="author" content="Yihui Xie" />
+
+<meta name="date" content="2016-11-21" />
+
+<title>Custom Print Methods</title>
+
+
+
+<style type="text/css">code{white-space: pre;}</style>
+<style type="text/css">
+div.sourceCode { overflow-x: auto; }
+table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
+  margin: 0; padding: 0; vertical-align: baseline; border: none; }
+table.sourceCode { width: 100%; line-height: 100%; }
+td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; }
+td.sourceCode { padding-left: 5px; }
+code > span.kw { color: #007020; font-weight: bold; } /* Keyword */
+code > span.dt { color: #902000; } /* DataType */
+code > span.dv { color: #40a070; } /* DecVal */
+code > span.bn { color: #40a070; } /* BaseN */
+code > span.fl { color: #40a070; } /* Float */
+code > span.ch { color: #4070a0; } /* Char */
+code > span.st { color: #4070a0; } /* String */
+code > span.co { color: #60a0b0; font-style: italic; } /* Comment */
+code > span.ot { color: #007020; } /* Other */
+code > span.al { color: #ff0000; font-weight: bold; } /* Alert */
+code > span.fu { color: #06287e; } /* Function */
+code > span.er { color: #ff0000; font-weight: bold; } /* Error */
+code > span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
+code > span.cn { color: #880000; } /* Constant */
+code > span.sc { color: #4070a0; } /* SpecialChar */
+code > span.vs { color: #4070a0; } /* VerbatimString */
+code > span.ss { color: #bb6688; } /* SpecialString */
+code > span.im { } /* Import */
+code > span.va { color: #19177c; } /* Variable */
+code > span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
+code > span.op { color: #666666; } /* Operator */
+code > span.bu { } /* BuiltIn */
+code > span.ex { } /* Extension */
+code > span.pp { color: #bc7a00; } /* Preprocessor */
+code > span.at { color: #7d9029; } /* Attribute */
+code > span.do { color: #ba2121; font-style: italic; } /* Documentation */
+code > span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
+code > span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
+code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
+</style>
+
+
+
+<link href="data:text/css;charset=utf-8,body%20%7B%0Abackground%2Dcolor%3A%20%23fff%3B%0Amargin%3A%201em%20auto%3B%0Amax%2Dwidth%3A%20800px%3B%0Aoverflow%3A%20visible%3B%0Apadding%2Dleft%3A%202em%3B%0Apadding%2Dright%3A%202em%3B%0Afont%2Dfamily%3A%20%22Helvetica%20Neue%22%2C%20Helvetica%2C%20Arial%2C%20sans%2Dserif%3B%0Afont%2Dsize%3A%2014px%3B%0Aline%2Dheight%3A%2020px%3B%0A%7D%0A%23header%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0A%23TOC%20%7B%0Aclear%3A%20both%3B%0Amargin%3A%200%200%2010px%200%3B%0Apadding%3A%204px%3B%0Aborder%3A%201px%20solid%20%23CCCCCC%3B%0Aborder%2Dradius%3A%205px%3B%0Abackground%2Dcolor%3A%20%23f6f6f6%3B%0Afont%2Dsize%3A%2013px%3B%0Aline%2Dheight%3A%201%2E3%3B%0A%7D%0A%23TOC%20%2Etoctitle%20%7B%0Afont%2Dweight%3A%20bold%3B%0Afont%2Dsize%3A%2015px%3B%0Amargin%2Dleft%3A%205px%3B%0A%7D%0A%23TOC%20ul%20%7B%0Apadding%2Dleft%3A%2040px%3B%0Amargin%2Dleft%3A%20%2D1%2E5em%3B%0Amargin%2Dtop%3A%205px%3B%0Amargin%2Dbottom%3A%205px%3B%0A%7D%0A%23TOC%20ul%20ul%20%7B%0Amargin%2Dleft%3A%20%2D2em%3B%0A%7D%0A%23TOC%20li%20%7B%0Aline%2Dheight%3A%2016px%3B%0A%7D%0Atable%3Anot%28%5Bclass%5D%29%20%7B%0Amargin%3A%20auto%3B%0Amin%2Dwidth%3A%2040%25%3B%0Aborder%2Dwidth%3A%201px%3B%0Aborder%2Dcolor%3A%20%23DDDDDD%3B%0Aborder%2Dstyle%3A%20outset%3B%0Aborder%2Dcollapse%3A%20collapse%3B%0A%7D%0Atable%5Bsummary%3D%22R%20argblock%22%5D%20%7B%0Awidth%3A%20100%25%3B%0Aborder%3A%20none%3B%0A%7D%0Atable%3Anot%28%5Bclass%5D%29%20th%20%7B%0Aborder%2Dwidth%3A%202px%3B%0Apadding%3A%205px%3B%0Aborder%2Dstyle%3A%20inset%3B%0A%7D%0Atable%3Anot%28%5Bclass%5D%29%20td%20%7B%0Aborder%2Dwidth%3A%201px%3B%0Aborder%2Dstyle%3A%20inset%3B%0Aline%2Dheight%3A%2018px%3B%0Apadding%3A%205px%205px%3B%0A%7D%0Atable%3Anot%28%5Bclass%5D%29%2C%20table%3Anot%28%5Bclass%5D%29%20th%2C%20table%3Anot%28%5Bclass%5D%29%20td%20%7B%0Aborder%2Dleft%2Dstyle%3A%20none%3B%0Aborder%2Dright%2Dstyle%3A%20none%3B%0A%7D%0Atable%3Anot%28%5Bclass%5D%29%20tr%2Eodd%20%7B%0Abackground%2Dcolor%3A%20%23f7f7f7%3B%0A%7D%0Ap%20%7B%0Amargin%3A%200%2E5em%200%3B%0A%7D%0Ablockquote%20%7B%0Abackground%2Dcolor%3A%20%23f6f6f6%3B%0Apadding%3A%2013px%3B%0Apadding%2Dbottom%3A%201px%3B%0A%7D%0Ahr%20%7B%0Aborder%2Dstyle%3A%20solid%3B%0Aborder%3A%20none%3B%0Aborder%2Dtop%3A%201px%20solid%20%23777%3B%0Amargin%3A%2028px%200%3B%0A%7D%0Adl%20%7B%0Amargin%2Dleft%3A%200%3B%0A%7D%0Adl%20dd%20%7B%0Amargin%2Dbottom%3A%2013px%3B%0Amargin%2Dleft%3A%2013px%3B%0A%7D%0Adl%20dt%20%7B%0Afont%2Dweight%3A%20bold%3B%0A%7D%0Aul%20%7B%0Amargin%2Dtop%3A%200%3B%0A%7D%0Aul%20li%20%7B%0Alist%2Dstyle%3A%20circle%20outside%3B%0A%7D%0Aul%20ul%20%7B%0Amargin%2Dbottom%3A%200%3B%0A%7D%0Apre%2C%20code%20%7B%0Abackground%2Dcolor%3A%20%23f5f5f5%3B%0Aborder%2Dradius%3A%203px%3B%0Acolor%3A%20%23333%3B%0A%7D%0Apre%20%7B%0Aoverflow%2Dx%3A%20auto%3B%0Aborder%2Dradius%3A%203px%3B%0Amargin%3A%205px%200%2010px%200%3B%0Apadding%3A%2010px%3B%0A%7D%0Apre%3Anot%28%5Bclass%5D%29%20%7B%0Abackground%2Dcolor%3A%20white%3B%0Aborder%3A%20%23f5f5f5%201px%20solid%3B%0A%7D%0Apre%3Anot%28%5Bclass%5D%29%20code%20%7B%0Acolor%3A%20%23444%3B%0Abackground%2Dcolor%3A%20white%3B%0A%7D%0Acode%20%7B%0Afont%2Dfamily%3A%20monospace%3B%0Afont%2Dsize%3A%2090%25%3B%0A%7D%0Ap%20%3E%20code%2C%20li%20%3E%20code%20%7B%0Apadding%3A%202px%204px%3B%0Acolor%3A%20%23d14%3B%0Aborder%3A%201px%20solid%20%23e1e1e8%3B%0Awhite%2Dspace%3A%20inherit%3B%0A%7D%0Adiv%2Efigure%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Atable%20%3E%20caption%2C%20div%2Efigure%20p%2Ecaption%20%7B%0Afont%2Dstyle%3A%20italic%3B%0A%7D%0Atable%20%3E%20caption%20span%2C%20div%2Efigure%20p%2Ecaption%20span%20%7B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20bold%3B%0A%7D%0Ap%20%7B%0Amargin%3A%200%200%2010px%3B%0A%7D%0Atable%3Anot%28%5Bclass%5D%29%20%7B%0Amargin%3A%20auto%20auto%2010px%20auto%3B%0A%7D%0Aimg%3Anot%28%5Bclass%5D%29%20%7B%0Abackground%2Dcolor%3A%20%23FFFFFF%3B%0Apadding%3A%202px%3B%0Aborder%2Dradius%3A%203px%3B%0Aborder%3A%201px%20solid%20%23CCCCCC%3B%0Amargin%3A%200%205px%3B%0Amax%2Dwidth%3A%20100%25%3B%0A%7D%0Ah1%20%7B%0Amargin%2Dtop%3A%200%3B%0Afont%2Dsize%3A%2035px%3B%0Aline%2Dheight%3A%2040px%3B%0A%7D%0Ah2%20%7B%0Aborder%2Dbottom%3A%204px%20solid%20%23f5f5f5%3B%0Apadding%2Dtop%3A%2010px%3B%0Apadding%2Dbottom%3A%202px%3B%0Afont%2Dsize%3A%20145%25%3B%0A%7D%0Ah3%20%7B%0Aborder%2Dbottom%3A%202px%20solid%20%23f5f5f5%3B%0Apadding%2Dtop%3A%2010px%3B%0Afont%2Dsize%3A%20120%25%3B%0A%7D%0Ah4%20%7B%0Aborder%2Dbottom%3A%201px%20solid%20%23f5f5f5%3B%0Amargin%2Dleft%3A%208px%3B%0Afont%2Dsize%3A%20105%25%3B%0A%7D%0Ah5%2C%20h6%20%7B%0Aborder%2Dbottom%3A%201px%20solid%20%23ccc%3B%0Afont%2Dsize%3A%20105%25%3B%0A%7D%0Aa%20%7B%0Acolor%3A%20%230033dd%3B%0Atext%2Ddecoration%3A%20none%3B%0A%7D%0Aa%3Ahover%20%7B%0Acolor%3A%20%236666ff%3B%20%7D%0Aa%3Avisited%20%7B%0Acolor%3A%20%23800080%3B%20%7D%0Aa%3Avisited%3Ahover%20%7B%0Acolor%3A%20%23BB00BB%3B%20%7D%0Aa%5Bhref%5E%3D%22http%3A%22%5D%20%7B%0Atext%2Ddecoration%3A%20underline%3B%20%7D%0Aa%5Bhref%5E%3D%22https%3A%22%5D%20%7B%0Atext%2Ddecoration%3A%20underline%3B%20%7D%0Adiv%2Er%2Dhelp%2Dpage%20%7B%0Abackground%2Dcolor%3A%20%23f9f9f9%3B%0Aborder%2Dbottom%3A%20%23ddd%201px%20solid%3B%0Amargin%2Dbottom%3A%2010px%3B%0Apadding%3A%2010px%3B%0A%7D%0Adiv%2Er%2Dhelp%2Dpage%3Ahover%20%7B%0Abackground%2Dcolor%3A%20%23f4f4f4%3B%0A%7D%0A%0Acode%20%3E%20span%2Ekw%20%7B%20color%3A%20%23555%3B%20font%2Dweight%3A%20bold%3B%20%7D%20%0Acode%20%3E%20span%2Edt%20%7B%20color%3A%20%23902000%3B%20%7D%20%0Acode%20%3E%20span%2Edv%20%7B%20color%3A%20%2340a070%3B%20%7D%20%0Acode%20%3E%20span%2Ebn%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Efl%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Ech%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Est%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Eco%20%7B%20color%3A%20%23888888%3B%20font%2Dstyle%3A%20italic%3B%20%7D%20%0Acode%20%3E%20span%2Eot%20%7B%20color%3A%20%23007020%3B%20%7D%20%0Acode%20%3E%20span%2Eal%20%7B%20color%3A%20%23ff0000%3B%20font%2Dweight%3A%20bold%3B%20%7D%20%0Acode%20%3E%20span%2Efu%20%7B%20color%3A%20%23900%3B%20font%2Dweight%3A%20bold%3B%20%7D%20%0Acode%20%3E%20span%2Eer%20%7B%20color%3A%20%23a61717%3B%20background%2Dcolor%3A%20%23e3d2d2%3B%20%7D%20%0A" rel="stylesheet" type="text/css" />
+
+</head>
+
+<body>
+
+
+
+
+<h1 class="title toc-ignore">Custom Print Methods</h1>
+<h4 class="author"><em>Yihui Xie</em></h4>
+<h4 class="date"><em>2016-11-21</em></h4>
+
+
+<div id="TOC">
+<ul>
+<li><a href="#customize-printing">Customize Printing</a></li>
+<li><a href="#a-low-level-explanation">A Low-level Explanation</a><ul>
+<li><a href="#the-render-option">The <code>render</code> option</a></li>
+<li><a href="#metadata">Metadata</a></li>
+<li><a href="#for-package-authors">For package authors</a></li>
+</ul></li>
+</ul>
+</div>
+
+<p>Before <strong>knitr</strong> v1.6, printing objects in R code chunks basically emulates the R console. For example, a data frame is printed like this<a href="#fn1" class="footnoteRef" id="fnref1"><sup>1</sup></a>:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">head</span>(mtcars)</code></pre></div>
+<pre><code>                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
+Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
+Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
+Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
+Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
+Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
+Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1</code></pre>
+<p>The text representation of the data frame above may look very familiar with most R users, but for reporting purposes, it may not be satisfactory – often times we want to see a table representation instead. That is the problem that the chunk option <code>render</code> and the S3 generic function <code>knit_print()</code> try to solve.</p>
+<div id="customize-printing" class="section level2">
+<h2>Customize Printing</h2>
+<p>After we evaluate each R expression in a code chunk, there is an object returned. For example, <code>1 + 1</code> returns <code>2</code>. This object is passed to the chunk option <code>render</code>, which is a function with two arguments, <code>x</code> and <code>options</code>, or <code>x</code> and <code>...</code>. The default value for the <code>render</code> option is <code>knit_print</code>, an S3 function in <strong>knitr</strong>:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">library</span>(knitr)
+knit_print  <span class="co"># an S3 generic function</span></code></pre></div>
+<pre><code>## function (x, ...) 
+## {
+##     if (need_screenshot(x, ...)) {
+##         html_screenshot(x)
+##     }
+##     else {
+##         UseMethod(&quot;knit_print&quot;)
+##     }
+## }
+## &lt;environment: namespace:knitr&gt;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">methods</span>(knit_print)</code></pre></div>
+<pre><code>##  [1] knit_print.data.frame*     knit_print.default*       
+##  [3] knit_print.grouped_df*     knit_print.html*          
+##  [5] knit_print.knit_asis*      knit_print.knitr_kable*   
+##  [7] knit_print.rowwise_df*     knit_print.shiny.tag*     
+##  [9] knit_print.shiny.tag.list* knit_print.tbl_sql*       
+## see '?methods' for accessing help and source code</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">getS3method</span>(<span class="st">&quot;knit_print&quot;</span>, <span class="st">&quot;default&quot;</span>)  <span class="co"># the default method</span></code></pre></div>
+<pre><code>## function (x, ..., inline = FALSE) 
+## {
+##     if (inline) 
+##         x
+##     else normal_print(x)
+## }
+## &lt;environment: namespace:knitr&gt;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">normal_print</code></pre></div>
+<pre><code>## function (x, ...) 
+## if (isS4(x)) methods::show(x) else print(x)
+## &lt;environment: namespace:evaluate&gt;</code></pre>
+<p>As we can see, <code>knit_print()</code> has a <code>default</code> method, which is basically <code>print()</code> or <code>show()</code>, depending on whether the object is an S4 object. This means it does nothing special when printing R objects:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">knit_print</span>(<span class="dv">1</span>:<span class="dv">10</span>)
+##  [1]  1  2  3  4  5  6  7  8  9 10
+<span class="kw">knit_print</span>(<span class="kw">head</span>(mtcars))
+##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
+## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
+## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
+## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
+## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
+## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
+## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1</code></pre></div>
+<p>S3 generic functions are extensible in the sense that we can define custom methods for them. A method <code>knit_print.foo()</code> will be applied to the object that has the class <code>foo</code>. Here is quick example of how we can print data frames as tables:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">library</span>(knitr)
+<span class="co"># define a method for objects of the class data.frame</span>
+knit_print.data.frame =<span class="st"> </span>function(x, ...) {
+    res =<span class="st"> </span><span class="kw">paste</span>(<span class="kw">c</span>(<span class="st">&quot;&quot;</span>, <span class="st">&quot;&quot;</span>, <span class="kw">kable</span>(x)), <span class="dt">collapse =</span> <span class="st">&quot;</span><span class="ch">\n</span><span class="st">&quot;</span>)
+    <span class="kw">asis_output</span>(res)
+}</code></pre></div>
+<p>We expect the print method to return a character vector, or an object that can be coerced into a character vector. In the example above, the <code>kable()</code> function returns a character vector, which we pass to the <code>asis_output()</code> function so that later <strong>knitr</strong> knows that this result needs no special treatment (just write it as is), otherwise it depends on the chunk option <code>results</code> (<code>= 'asis'</code> / <code>'markup'</code> / <code>'hide'</code>) how a normal character vector should be written. The function <code>asis_output()</code> has the same effect as <code>results = 'asis'</code>, but saves us the effort to provide this chunk option explicitly. Now we check how the printing behavior is changed. We print a number, a character vector, a list, a data frame, and write a character value using <code>cat()</code> in the chunk below:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="dv">1</span> +<span class="st"> </span><span class="dv">1</span></code></pre></div>
+<pre><code>## [1] 2</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">head</span>(letters)</code></pre></div>
+<pre><code>## [1] &quot;a&quot; &quot;b&quot; &quot;c&quot; &quot;d&quot; &quot;e&quot; &quot;f&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">list</span>(<span class="dt">a =</span> <span class="dv">1</span>, <span class="dt">b =</span> <span class="dv">9</span>:<span class="dv">4</span>)</code></pre></div>
+<pre><code>## $a
+## [1] 1
+## 
+## $b
+## [1] 9 8 7 6 5 4</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">head</span>(mtcars)</code></pre></div>
+<table>
+<thead>
+<tr class="header">
+<th></th>
+<th align="right">mpg</th>
+<th align="right">cyl</th>
+<th align="right">disp</th>
+<th align="right">hp</th>
+<th align="right">drat</th>
+<th align="right">wt</th>
+<th align="right">qsec</th>
+<th align="right">vs</th>
+<th align="right">am</th>
+<th align="right">gear</th>
+<th align="right">carb</th>
+</tr>
+</thead>
+<tbody>
+<tr class="odd">
+<td>Mazda RX4</td>
+<td align="right">21.0</td>
+<td align="right">6</td>
+<td align="right">160</td>
+<td align="right">110</td>
+<td align="right">3.90</td>
+<td align="right">2.620</td>
+<td align="right">16.46</td>
+<td align="right">0</td>
+<td align="right">1</td>
+<td align="right">4</td>
+<td align="right">4</td>
+</tr>
+<tr class="even">
+<td>Mazda RX4 Wag</td>
+<td align="right">21.0</td>
+<td align="right">6</td>
+<td align="right">160</td>
+<td align="right">110</td>
+<td align="right">3.90</td>
+<td align="right">2.875</td>
+<td align="right">17.02</td>
+<td align="right">0</td>
+<td align="right">1</td>
+<td align="right">4</td>
+<td align="right">4</td>
+</tr>
+<tr class="odd">
+<td>Datsun 710</td>
+<td align="right">22.8</td>
+<td align="right">4</td>
+<td align="right">108</td>
+<td align="right">93</td>
+<td align="right">3.85</td>
+<td align="right">2.320</td>
+<td align="right">18.61</td>
+<td align="right">1</td>
+<td align="right">1</td>
+<td align="right">4</td>
+<td align="right">1</td>
+</tr>
+<tr class="even">
+<td>Hornet 4 Drive</td>
+<td align="right">21.4</td>
+<td align="right">6</td>
+<td align="right">258</td>
+<td align="right">110</td>
+<td align="right">3.08</td>
+<td align="right">3.215</td>
+<td align="right">19.44</td>
+<td align="right">1</td>
+<td align="right">0</td>
+<td align="right">3</td>
+<td align="right">1</td>
+</tr>
+<tr class="odd">
+<td>Hornet Sportabout</td>
+<td align="right">18.7</td>
+<td align="right">8</td>
+<td align="right">360</td>
+<td align="right">175</td>
+<td align="right">3.15</td>
+<td align="right">3.440</td>
+<td align="right">17.02</td>
+<td align="right">0</td>
+<td align="right">0</td>
+<td align="right">3</td>
+<td align="right">2</td>
+</tr>
+<tr class="even">
+<td>Valiant</td>
+<td align="right">18.1</td>
+<td align="right">6</td>
+<td align="right">225</td>
+<td align="right">105</td>
+<td align="right">2.76</td>
+<td align="right">3.460</td>
+<td align="right">20.22</td>
+<td align="right">1</td>
+<td align="right">0</td>
+<td align="right">3</td>
+<td align="right">1</td>
+</tr>
+</tbody>
+</table>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">cat</span>(<span class="st">&quot;This is cool.&quot;</span>)</code></pre></div>
+<pre><code>## This is cool.</code></pre>
+<p>We see all objects except the data frame were printed “normally”<a href="#fn2" class="footnoteRef" id="fnref2"><sup>2</sup></a>. The data frame was printed as a real table. Note you do not have to use <code>kable()</code> to create tables – there are many other options such as <strong>xtable</strong>. Just make sure the print method returns a character string.</p>
+<p>In the future, I may provide a companion package with <strong>knitr</strong> that includes appropriate printing methods so that users only need to load this package to get attractive printed results. A major factor to consider when defining a printing method is the output format. For example, the table syntax can be entirely different when the output is LaTeX vs when it is Markdown.</p>
+<p>It is strongly recommended that your S3 method has a <code>...</code> argument, so that your method can safely ignore arguments that are passed to <code>knit_print()</code> but not defined in your method. At the moment, a <code>knit_print()</code> method can have two optional arguments:</p>
+<ul>
+<li>the <code>options</code> argument takes a list of the current chunk options;</li>
+<li>the <code>inline</code> argument indicates if the method is called in code chunks or inline R code;</li>
+</ul>
+<p>Depending on your application, you may optionally use these arguments. Here are some examples:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">knit_print.classA =<span class="st"> </span>function(x, ...) {
+  <span class="co"># ignore options and inline</span>
+}
+knit_print.classB =<span class="st"> </span>function(x, options, ...) {
+  <span class="co"># use the chunk option out.height</span>
+  <span class="kw">asis_output</span>(<span class="kw">paste</span>(
+    <span class="st">'&lt;iframe src=&quot;http://yihui.name&quot; height=&quot;'</span>, options$out.height, <span class="st">'&quot;&gt;&lt;/iframe&gt;'</span>,
+  ))
+}
+knit_print.classC =<span class="st"> </span>function(x, <span class="dt">inline =</span> <span class="ot">FALSE</span>, ...) {
+  <span class="co"># different output according to inline=TRUE/FALSE</span>
+  if (inline) {
+    <span class="st">'inline output for classC'</span>
+  } else {
+    <span class="st">'chunk output for classC'</span>
+  }
+}
+knit_print.classD =<span class="st"> </span>function(x, options, <span class="dt">inline =</span> <span class="ot">FALSE</span>, ...) {
+  <span class="co"># use both options and inline</span>
+}</code></pre></div>
+</div>
+<div id="a-low-level-explanation" class="section level2">
+<h2>A Low-level Explanation</h2>
+<p>You can skip this section if you do not care about the low-level implementation details.</p>
+<div id="the-render-option" class="section level3">
+<h3>The <code>render</code> option</h3>
+<p>As mentioned before, the chunk option <code>render</code> is a function that defaults to <code>knit_print()</code>. We can certainly use other render functions. For example, we create a dummy function that always says “I do not know what to print” no matter what objects it receives:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">dummy_print =<span class="st"> </span>function(x, ...) {
+    <span class="kw">cat</span>(<span class="st">&quot;I do not know what to print!&quot;</span>)
+    <span class="co"># this function implicitly returns an invisible NULL</span>
+}</code></pre></div>
+<p>Now we use the chunk option <code>render = dummy_print</code>:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="dv">1</span> +<span class="st"> </span><span class="dv">1</span>
+## I do not know what to print!
+<span class="kw">head</span>(letters)
+## I do not know what to print!
+<span class="kw">list</span>(<span class="dt">a =</span> <span class="dv">1</span>, <span class="dt">b =</span> <span class="dv">9</span>:<span class="dv">4</span>)
+## I do not know what to print!
+<span class="kw">head</span>(mtcars)
+## I do not know what to print!
+<span class="kw">cat</span>(<span class="st">&quot;This is cool.&quot;</span>)
+## This is cool.</code></pre></div>
+<p>Note the <code>render</code> function is only applied to visible objects. There are cases in which the objects returned are invisible, e.g. those wrapped in <code>invisible()</code>.</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="dv">1</span> +<span class="st"> </span><span class="dv">1</span></code></pre></div>
+<pre><code>## [1] 2</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">invisible</span>(<span class="dv">1</span> +<span class="st"> </span><span class="dv">1</span>)
+<span class="kw">invisible</span>(<span class="kw">head</span>(mtcars))
+x =<span class="st"> </span><span class="dv">1</span>:<span class="dv">10</span>  <span class="co"># invisibly returns 1:10</span></code></pre></div>
+</div>
+<div id="metadata" class="section level3">
+<h3>Metadata</h3>
+<p>The print function can have a side effect of passing “metadata” about objects to <strong>knitr</strong>, and <strong>knitr</strong> will collect this information as it prints objects. The motivation of collecting metadata is to store external dependencies of the objects to be printed. Normally we print an object only to obtain a text representation, but there are cases that can be more complicated. For example, a <a href="http://ggvis.rstudio.com/"><strong>ggvis</strong></a> graph requires external JavaScript and CSS dependencies such as <code>ggvis.js</code>. The graph itself is basically a fragment of JavaScript code, which will not work unless the required libraries are loaded (in the HTML header). Therefore we need to collect the dependencies of an object beside printing the object itself.</p>
+<p>One way to specify the dependencies is through the <code>meta</code> argument of <code>asis_output()</code>. Here is a pseudo example:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># pseudo code</span>
+knit_print.ggvis =<span class="st"> </span>function(x, ...) {
+  res =<span class="st"> </span>ggvis::<span class="kw">print_this_object</span>(x)
+  knitr::<span class="kw">asis_output</span>(res, <span class="dt">meta =</span> <span class="kw">list</span>(
+    <span class="dt">ggvis =</span> <span class="kw">list</span>(
+      <span class="dt">version =</span> <span class="st">'0.1.0'</span>,
+      <span class="dt">js  =</span> <span class="kw">system.file</span>(<span class="st">'www'</span>, <span class="st">'js'</span>,  <span class="st">'ggvis.js'</span>,  <span class="dt">package =</span> <span class="st">'ggvis'</span>),
+      <span class="dt">css =</span> <span class="kw">system.file</span>(<span class="st">'www'</span>, <span class="st">'www'</span>, <span class="st">'ggvis.css'</span>, <span class="dt">package =</span> <span class="st">'ggvis'</span>)
+    )
+  ))
+}</code></pre></div>
+<p>Then when <strong>knitr</strong> prints a <strong>ggvis</strong> object, the <code>meta</code> information will be collected and stored. After knitting is done, we can obtain a list of all the dependencies via <code>knit_meta()</code>. It is very likely that there are duplicate entries in the list, and it is up to the package authors to clean them up, and process the metadata list in their own way (e.g. write the dependencies into the HTML header). We give a few more quick and dirty examples below to see how <code>knit_meta()</code> works.</p>
+<p>Now we define a print method for <code>foo</code> objects:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">library</span>(knitr)
+knit_print.foo =<span class="st"> </span>function(x, ...) {
+  res =<span class="st"> </span><span class="kw">paste</span>(<span class="st">'**This is a `foo` object**:'</span>, x)
+  <span class="kw">asis_output</span>(res, <span class="dt">meta =</span> <span class="kw">list</span>(
+    <span class="dt">js  =</span> <span class="kw">system.file</span>(<span class="st">'www'</span>, <span class="st">'shared'</span>, <span class="st">'shiny.js'</span>,  <span class="dt">package =</span> <span class="st">'shiny'</span>),
+    <span class="dt">css =</span> <span class="kw">system.file</span>(<span class="st">'www'</span>, <span class="st">'shared'</span>, <span class="st">'shiny.css'</span>, <span class="dt">package =</span> <span class="st">'shiny'</span>)
+  ))
+}</code></pre></div>
+<p>See what happens when we print <code>foo</code> objects:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">new_foo =<span class="st"> </span>function(x) <span class="kw">structure</span>(x, <span class="dt">class =</span> <span class="st">&quot;foo&quot;</span>)
+<span class="kw">new_foo</span>(<span class="st">&quot;hello&quot;</span>)</code></pre></div>
+<p><strong>This is a <code>foo</code> object</strong>: hello</p>
+<p>Check the metadata now:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">str</span>(<span class="kw">knit_meta</span>(<span class="dt">clean =</span> <span class="ot">FALSE</span>))</code></pre></div>
+<pre><code>## List of 2
+##  $ js : chr &quot;/Users/yihui/R/shiny/www/shared/shiny.js&quot;
+##  $ css: chr &quot;/Users/yihui/R/shiny/www/shared/shiny.css&quot;
+##  - attr(*, &quot;knit_meta_id&quot;)= chr [1:2] &quot;unnamed-chunk-9&quot; &quot;unnamed-chunk-9&quot;</code></pre>
+<p>Another <code>foo</code> object:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">new_foo</span>(<span class="st">&quot;world&quot;</span>)</code></pre></div>
+<p><strong>This is a <code>foo</code> object</strong>: world</p>
+<p>Similarly for <code>bar</code> objects:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">knit_print.bar =<span class="st"> </span>function(x, ...) {
+    <span class="kw">asis_output</span>(x, <span class="dt">meta =</span> <span class="kw">list</span>(<span class="dt">head =</span> <span class="st">&quot;&lt;script&gt;console.log(</span><span class="ch">\&quot;</span><span class="st">bar!</span><span class="ch">\&quot;</span><span class="st">)&lt;/script&gt;&quot;</span>))
+}
+new_bar =<span class="st"> </span>function(x) <span class="kw">structure</span>(x, <span class="dt">class =</span> <span class="st">&quot;bar&quot;</span>)
+<span class="kw">new_bar</span>(<span class="st">&quot;**hello** world!&quot;</span>)</code></pre></div>
+<p><strong>hello</strong> world!</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">new_bar</span>(<span class="st">&quot;hello **world**!&quot;</span>)</code></pre></div>
+<p>hello <strong>world</strong>!</p>
+<p>The final version of the metadata, and clean it up:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">str</span>(<span class="kw">knit_meta</span>())</code></pre></div>
+<pre><code>## List of 6
+##  $ js  : chr &quot;/Users/yihui/R/shiny/www/shared/shiny.js&quot;
+##  $ css : chr &quot;/Users/yihui/R/shiny/www/shared/shiny.css&quot;
+##  $ js  : chr &quot;/Users/yihui/R/shiny/www/shared/shiny.js&quot;
+##  $ css : chr &quot;/Users/yihui/R/shiny/www/shared/shiny.css&quot;
+##  $ head: chr &quot;&lt;script&gt;console.log(\&quot;bar!\&quot;)&lt;/script&gt;&quot;
+##  $ head: chr &quot;&lt;script&gt;console.log(\&quot;bar!\&quot;)&lt;/script&gt;&quot;
+##  - attr(*, &quot;knit_meta_id&quot;)= chr [1:6] &quot;unnamed-chunk-9&quot; &quot;unnamed-chunk-9&quot; &quot;unnamed-chunk-11&quot; &quot;unnamed-chunk-11&quot; ...</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">str</span>(<span class="kw">knit_meta</span>())  <span class="co"># empty now, because clean = TRUE by default</span></code></pre></div>
+<pre><code>##  list()</code></pre>
+</div>
+<div id="for-package-authors" class="section level3">
+<h3>For package authors</h3>
+<p>If you are implementing a custom print method in your own package, here are two hints:</p>
+<ol style="list-style-type: decimal">
+<li><code>knit_print()</code> is an S3 generic function in <strong>knitr</strong>, so in theory you need to import it in your namespace via <code>importFrom(knitr, knit_print)</code>, but due to the “lack of rigor” of the S3 system, you can choose not to import <strong>knitr</strong>, and just do <code>export(knit_print.foo)</code> in the namespace, then R will find the S3 “method” after your package is attached via <code>library()</code>, because it is essentially a normal R function;</li>
+<li><p><code>asis_output()</code> is simply a function that marks an object with the class <code>knit_asis</code>, and you do not have to import this function to your package, either – just let your print method return <code>structure(x, class = 'knit_asis')</code>, and if there are additional metadata, just put it in the <code>knit_meta</code> attribute; here is the source code of this function:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">knitr::asis_output</code></pre></div>
+<pre><code>## function (x, meta = NULL, cacheable = NA) 
+## {
+##     structure(x, class = &quot;knit_asis&quot;, knit_meta = meta, knit_cacheable = cacheable)
+## }
+## &lt;environment: namespace:knitr&gt;</code></pre></li>
+</ol>
+<p>If you are worried about possible future changes in <code>asis_output()</code>, you can put <strong>knitr</strong> in the <code>Suggests</code> field in DESCRIPTION, and use <code>knitr::asis_output()</code>, so that you can avoid the “hard” dependency on <strong>knitr</strong>.</p>
+</div>
+</div>
+<div class="footnotes">
+<hr />
+<ol>
+<li id="fn1"><p>Note R prints an object without an explicit <code>print()</code> call when it is <em>visible</em>; see <code>?invisible</code><a href="#fnref1">↩</a></p></li>
+<li id="fn2"><p>The two hashes <code>##</code> were from the chunk option <code>comment</code>; you can turn them off by <code>comment = ''</code>.<a href="#fnref2">↩</a></p></li>
+</ol>
+</div>
+
+<script type="text/javascript">
+window.onload = function() {
+  var i, fig = 1, caps = document.getElementsByClassName('caption');
+  for (i = 0; i < caps.length; i++) {
+    var cap = caps[i];
+    if (cap.parentElement.className !== 'figure' || cap.nodeName !== 'P')
+      continue;
+    cap.innerHTML = '<span>Figure ' + fig + ':</span> ' + cap.innerHTML;
+    fig++;
+  }
+  fig = 1;
+  caps = document.getElementsByTagName('caption');
+  for (i = 0; i < caps.length; i++) {
+    var cap = caps[i];
+    if (cap.parentElement.nodeName !== 'TABLE') continue;
+    cap.innerHTML = '<span>Table ' + fig + ':</span> ' + cap.innerHTML;
+    fig++;
+  }
+}
+</script>
+
+
+<!-- dynamically load mathjax for compatibility with self-contained -->
+<script>
+  (function () {
+    var script = document.createElement("script");
+    script.type = "text/javascript";
+    script.src  = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
+    document.getElementsByTagName("head")[0].appendChild(script);
+  })();
+</script>
+
+</body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_print.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_expand.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_expand.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_expand.Rmd	(revision 2476)
@@ -0,0 +1,61 @@
+<!--
+%\VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{Templating with knit_expand()}
+-->
+
+# Demos of `knit_expand()`
+
+A few simple examples:
+
+```{r}
+library(knitr)
+knit_expand(text = 'The value of pi is {{pi}}.')
+knit_expand(text = 'The value of a is {{a}}, so a + 1 is {{a+1}}.', a = rnorm(1))
+knit_expand(text = 'The area of a circle with radius {{r}} is {{pi*r^2}}', r = 5)
+```
+
+Any number of variables:
+
+```{r}
+knit_expand(text = 'a is {{a}} and b is {{b}}, with my own pi being {{pi}} instead of {{base::pi}}', a=1, b=2, pi=3)
+```
+
+Custom delimiter `<% %>`:
+
+```{r}
+knit_expand(text = 'I do not like curly braces, so use % with <> instead: a is <% a %>.', a = 8, delim = c("<%", "%>"))
+```
+
+The pyexpander delimiter:
+
+```{r}
+knit_expand(text = 'hello $(LETTERS[24]) and $(pi)!', delim = c("$(", ")"))
+```
+
+Arbitrary R code:
+
+```{r}
+knit_expand(text = 'you cannot see the value of x {{x=rnorm(1)}}but it is indeed created: x = {{x}}')
+res = knit_expand(text = c(' x | x^2', '{{x=1:5;paste(sprintf("%2d | %3d", x, x^2), collapse = "\n")}}'))
+cat(res)
+```
+
+The m4 example: <http://en.wikipedia.org/wiki/M4_(computer_language)>
+
+```{r}
+res = knit_expand(text = c('{{i=0;h2=function(x){i<<-i+1;sprintf("<h2>%d. %s</h2>", i, x)} }}<html>',
+'{{h2("First Section")}}', '{{h2("Second Section")}}', '{{h2("Conclusion")}}', '</html>'))
+cat(res)
+```
+
+Build regression models based on a template; loop through all variables in `mtcars`:
+
+```{r results='hide'}
+src = lapply(names(mtcars)[-1], function(i) {
+knit_expand(text=c("# Regression on {{i}}", '```{r lm-{{i}}}', 'lm(mpg~{{i}}, data=mtcars)', '```'))
+})
+# knit the source
+res = knit_child(text = unlist(src))
+res = paste('<pre><code>', gsub('^\\s*|\\s*$', '', res), '</code></pre>', sep = '')
+```
+`r res`
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/datatables.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/datatables.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/datatables.Rmd	(revision 2476)
@@ -0,0 +1,45 @@
+<!--
+%\VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{Display Tables with the JavaScript Library DataTables}
+-->
+
+# jQuery DataTables
+
+We can use the JavaScript library [**DataTables**](http://www.datatables.net) to generate enhanced tables in HTML. In the example below, we create a table for the `mtcars` data:
+
+```{r cool, results='asis'}
+library(knitr)
+kable(mtcars, 'html', table.attr='id="mtcars_table"')
+```
+
+Note we assigned an `id` to the table, and next we use the **DataTables** library to tweak the table.
+
+```js
+<script type="text/javascript">
+	$(document).ready(function() {
+		$('#mtcars_table').DataTable();
+	} );
+</script>
+```
+
+<script type="text/javascript">
+  $(document).ready(function() {
+		$('#mtcars_table').DataTable();
+	} );
+</script>
+
+Since this is a Markdown vignette, we need to add the JavaScript libraries as well as some additional CSS files to the HTML header, and this can be done via:
+
+```{r}
+options(markdown.HTML.header = system.file('misc', 'datatables.html', package = 'knitr'))
+```
+
+The file `datatables.html` under the `misc` directory of **knitr** was added to the HTML output.
+
+By comparison, below is an ordinary table:
+
+```{r boring, results='asis'}
+kable(head(mtcars), 'html')
+```
+
+This vignette is only a toy example. I'd recommend you to use the **DT** package instead: https://github.com/rstudio/DT
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-classic.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-classic.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-classic.Rmd	(revision 2476)
@@ -0,0 +1,20 @@
+<!--
+%\VignetteEngine{knitr::docco_classic}
+%\VignetteIndexEntry{R Markdown with the Docco Classic Style}
+-->
+
+# R Markdown with the Docco Classic Style
+
+```{r setup, echo=FALSE, results='asis'}
+x = readLines('docco-linear.Rmd')[-(1:7)]
+x = gsub('linear', 'classic', x)
+i = grep('^knit2html[(][.]{3}', x)
+x[i - 1] = '```{r}'
+x[i] = 'head(knitr::rocco, 5)'
+library(knitr)
+cat(knit_child(text = x, quiet = TRUE), sep = '\n')
+```
+
+You probably have noticed that you can adjust the widths of the two columns
+using your cursor. What is more, press `T` on your keyboard, and see what
+happens.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-markdown.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-markdown.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-markdown.Rmd	(revision 2476)
@@ -0,0 +1,60 @@
+<!--
+%\VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{An R Markdown Vignette with knitr}
+-->
+```{r setup, include=FALSE}
+library(knitr)
+```
+
+This is an example of Markdown vignettes in R. Before R 3.0.0, only Sweave/PDF vignettes were supported in R. Markdown is gaining popularity over the years due to its simplicity, and R 3.0.0 starts to support package vignettes written in R Markdown.
+
+> Please note this example is for [R Markdown v1](http://rmarkdown.rstudio.com/authoring_migrating_from_v1.html) only. If you use [R Markdown v2](http://rmarkdown.rstudio.com/), you should use the vignette engine `knitr::rmarkdown` instead of `knitr::knitr`.
+
+## Package vignettes
+
+To enable Markdown vignettes in an R package, you need to
+
+- add `*.Rmd` files under the `vignettes` directory
+- add `VignetteBuilder: knitr` to the `DESCRIPTION` file
+- specify the vignette engine `\VignetteEngine{knitr::knitr}` in the `Rmd` files (inside HTML comments)
+
+## View vignettes
+
+And R will load the **knitr** package to build these vignettes to HTML files, and you can see them when you open the HTML help:
+
+```{r eval=FALSE}
+help(package = 'YourPackage', help_type = 'html')
+# or see a standalone list of vignettes
+browseVignettes('YourPackage')
+```
+
+## Examples
+
+Below are some code chunks as examples.
+
+```{r hello, results='asis'}
+if (TRUE) cat('_hello_ **markdown**!', '\n')
+```
+
+Normally you do not need any chunk options.
+
+```{r test, collapse=TRUE}
+1+1
+10:1
+rnorm(5)^2
+strsplit('hello, markdown vignettes', '')
+```
+
+Feel free to draw beautiful plots and write math $P(X>x)=\alpha/2$.
+
+```{r}
+n=300; set.seed(123)
+par(mar=c(4,4,.1,.1))
+plot(rnorm(n), rnorm(n), pch=21, cex=5*runif(n), col='white', bg='gray')
+```
+
+You can use your own CSS file instead of the built-in style in the **markdown** package -- just set the option `markdown.HTML.stylesheet`, e.g.
+
+```{r css, eval=FALSE}
+options(markdown.HTML.stylesheet = 'path/to/a/custom/style.css')
+```
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-html.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-html.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-html.R	(revision 2476)
@@ -0,0 +1,19 @@
+## ----setup, include=FALSE------------------------------------------------
+library(knitr)
+# to base64 encode images
+opts_knit$set(upload.fun = image_uri)
+
+## ----cars-demo-----------------------------------------------------------
+summary(cars)
+fit=lm(dist~speed, data=cars)
+summary(fit)
+
+## ----cars-plot, fig.width=7, fig.height=6, fig.align='center'------------
+par(mar=c(4,4,.1,.1))
+plot(cars, pch=19)
+
+## ----setup, eval=FALSE---------------------------------------------------
+#  library(knitr)
+#  # to base64 encode images
+#  opts_knit$set(upload.fun = image_uri)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-html.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-html.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-html.html	(revision 2476)
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html>
+<!--
+%\VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{An R HTML Vignette with knitr}
+-->
+<head>
+<style type="text/css">
+.knitr .inline {
+  background-color: #f7f7f7;
+  border:solid 1px #B0B0B0;
+}
+.error {
+	font-weight: bold;
+	color: #FF0000;
+}
+.warning {
+	font-weight: bold;
+}
+.message {
+	font-style: italic;
+}
+.source, .output, .warning, .error, .message {
+	padding: 0 1em;
+  border:solid 1px #F7F7F7;
+}
+.source {
+  background-color: #f5f5f5;
+}
+.rimage .left {
+  text-align: left;
+}
+.rimage .right {
+  text-align: right;
+}
+.rimage .center {
+  text-align: center;
+}
+.hl.num {
+  color: #AF0F91;
+}
+.hl.str {
+  color: #317ECC;
+}
+.hl.com {
+  color: #AD95AF;
+  font-style: italic;
+}
+.hl.opt {
+  color: #000000;
+}
+.hl.std {
+  color: #585858;
+}
+.hl.kwa {
+  color: #295F94;
+  font-weight: bold;
+}
+.hl.kwb {
+  color: #B05A65;
+}
+.hl.kwc {
+  color: #55aa55;
+}
+.hl.kwd {
+  color: #BC5A65;
+  font-weight: bold;
+}
+</style>
+<meta charset="utf-8">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<style type="text/css">
+body,td{width:800px;margin:auto;}
+</style>
+  <title>An R HTML vignette with knitr</title>
+</head>
+
+
+<body>
+
+<p>This is an R HTML vignette. The file extension is <code>*.Rhtml</code>, and
+it has to include a special comment to tell R that this file needs to be
+compiled by <strong>knitr</strong>:</p>
+
+<pre>&lt;!--
+%\VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{The Title of Your Vignette}
+--&gt;
+</pre>
+
+<p>Now you can write R code chunks:</p>
+
+<div class="chunk" id="cars-demo"><div class="rcode"><div class="source"><pre class="knitr r"><span class="hl kwd">summary</span><span class="hl std">(cars)</span>
+</pre></div>
+<div class="output"><pre class="knitr r">##      speed           dist    
+##  Min.   : 4.0   Min.   :  2  
+##  1st Qu.:12.0   1st Qu.: 26  
+##  Median :15.0   Median : 36  
+##  Mean   :15.4   Mean   : 43  
+##  3rd Qu.:19.0   3rd Qu.: 56  
+##  Max.   :25.0   Max.   :120
+</pre></div>
+<div class="source"><pre class="knitr r"><span class="hl std">fit</span> <span class="hl kwb">=</span> <span class="hl kwd">lm</span><span class="hl std">(dist</span> <span class="hl opt">~</span> <span class="hl std">speed,</span> <span class="hl kwc">data</span> <span class="hl std">= cars)</span>
+<span class="hl kwd">summary</span><span class="hl std">(fit)</span>
+</pre></div>
+<div class="output"><pre class="knitr r">## 
+## Call:
+## lm(formula = dist ~ speed, data = cars)
+## 
+## Residuals:
+##    Min     1Q Median     3Q    Max 
+## -29.07  -9.53  -2.27   9.21  43.20 
+## 
+## Coefficients:
+##             Estimate Std. Error t value Pr(&gt;|t|)    
+## (Intercept)  -17.579      6.758   -2.60    0.012 *  
+## speed          3.932      0.416    9.46  1.5e-12 ***
+## ---
+## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+## 
+## Residual standard error: 15.4 on 48 degrees of freedom
+## Multiple R-squared:  0.651,	Adjusted R-squared:  0.644 
+## F-statistic: 89.6 on 1 and 48 DF,  p-value: 1.49e-12
+</pre></div>
+</div></div>
+
+<p>You can also embed plots, for example:</p>
+
+<div class="chunk" id="cars-plot"><div class="rcode"><div class="source"><pre class="knitr r"><span class="hl kwd">par</span><span class="hl std">(</span><span class="hl kwc">mar</span> <span class="hl std">=</span> <span class="hl kwd">c</span><span class="hl std">(</span><span class="hl num">4</span><span class="hl std">,</span> <span class="hl num">4</span><span class="hl std">,</span> <span class="hl num">0.1</span><span class="hl std">,</span> <span class="hl num">0.1</span><span class="hl std">))</span>
+<span class="hl kwd">plot</span><span class="hl std">(cars,</span> <span class="hl kwc">pch</span> <span class="hl std">=</span> <span class="hl num">19</span><span class="hl std">)</span>
+</pre></div>
+</div><div class="rimage center"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfgAAAGwCAYAAABFI3d+AAAEDWlDQ1BJQ0MgUHJvZmlsZQAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VVBg/m8AAEAASURBVHgB7d0HmBRF2sDxd8ksrIQFJAiCIFFyRpQkghJEEBVRBBU5CZ4gosKph6LeiSCYgEM8EAwISpCkJAMi3IFkSSqSJeewpP32re9mmJ2ZDTM7M93T+6/nWXamY9WvmH2nq6urYhKTkpAQQAABBBBAwFEC2RxVmhQK06VLFzlw4IDExsamsAWLEUAAAQQQcIbA4cOHZcWKFZIpAvzFixdl2rRpEh8f74zaoxQIIIAAAgikINC2bVuzJksK61mMAAIIIIAAAlEsQICP4soj6wgggAACCKQkYKsAf+zYMbl06VJKeWU5AggggAACCKRTwPIAP336dKlTp47kzJlTChYsKLly5ZLSpUtL79695eTJk+ksBpshgAACCCCAgKeApQF+4cKF0r9/fxk2bJjs379fLl++LKdOnZLFixdLjhw5pEOHDp555TUCCCCAAAIIpFPA0gC/YMECGTx4sLRu3dpcvWfJkkVy584tZcuWlREjRsjOnTtFm+1JCCCAAAIIIBCYgKUBvkaNGuZq/cqVKz65Xr9+vRw6dEji4uJ81rEAAQQQQAABBFIXsPQ5+I4dO8qcOXPMPfe6deuaq/iEhATZt2+faIAfN26cZMtmaRZT12MtAggggAACNhWwNHrmyZNHpk6dKuvWrZMtW7aYJnltoi9RooS0bNmSq3eb/qchWwgggAAC9hewNMC7eKpXry76453Onj3L8LLeKLxHAAEEELCFwObNm+Xpp582F6fFixeXKVOmyLXXXmuLvGkmLL0Hrxl45ZVXzBW7dqzTR+ZcSXvU6xU+CQEEEEAAAbsJaB+xypUry/z58+WXX36RRYsWyc033yx//vmnbbJq6RX8Tz/9JNqTXoE2bdpkvgkdPXpUHn/88YCBdu3aJSlNjEdP/IA52QEBBBBAIBWBoUOHSkxMTLK4o09+ad+xl156KZU9I7fK0gA/e/Zs6du3r1SrVs38NG7cWPRHB7y5++67A1J4+eWXUxwF78cffwzoWGyMAAIIIIBAagIHDx5MFtx1Wx2JVa/s7ZIsDfB633358uWi07lqKlmypOlVf/vtt0u+fPkCMvrggw9S3H7u3LkprmMFAggggAACgQrccccdpgVaB2dzpezZs4vGL7skS+/Bt2nTRr777jtp2LCh26Nq1aoyY8YMd9B3r+AFAggggAACNhHo3r27NG3a1FyMxsbGmr5kenu5ffv2NsmhWDsfvA5io4/IrVy5MhlIgwYNZMOGDTJq1Khky3mDAAIIIICAHQT0/rveZl66dKkcOXLEBHjPi1Vb5DGpY1qiHTISzjwULlzYPGcfHx8fztNwbAQQQAABBCwXaNu2rbndbWkTveUKZAABBBBAAAGHCljayU47v2lTfGrpueeeS2016xBAAAEEEEDAj4ClAV7vYbz66quik87oo3IkBBBAAAEEEAiNgKUB/s477zSdFB555BHzuAEj14WmUjkKAggggAAClt+Db9asmTz22GOyYsUKagMBBBBAAAEEQiRg6RW8qwxDhgxxveQ3AggggAACCIRAwPIr+BCUgUMggAACCCCAgJcAAd4LhLcIIIAAAgg4QYAA74RapAwIIIAAAgh4CRDgvUB4iwACCCCAgBMECPBOqEXKgAACCCCAgJcAAd4LhLcIIIAAAgg4QYAA74RapAwIIIAAAgh4CRDgvUB4iwACCCCAgBMECPBOqEXKgAACCCCAgJcAAd4LhLcIIIAAAgg4QYAA74RapAwIIIAAAgh4CRDgvUB4iwACCCCAgBMECPBOqEXKgAACCCCAgJcAAd4LhLcIIIAAAgg4QYAA74RapAwIIIAAAgh4CRDgvUB4iwACCCCAgBMECPBOqEXKgAACCCCAgJcAAd4LhLcIIIAAAgg4QYAA74RapAwIIIAAAgh4CRDgvUB4iwACCCCAgBMECPBOqEXKgAACCCCAgJcAAd4LhLcIIIAAAgg4QYAA74RapAwIIIAAAgh4CRDgvUB4iwACCCCAgBMECPBOqEXKgAACCCCAgJcAAd4LhLcIIIAAAgg4QYAA74RapAwIIIAAAgh4CRDgvUB4iwACCCCAgBMECPBOqEXKgAACCCCAgJcAAd4LhLcIIIAAAgg4QYAA74RapAwIIIAAAgh4CRDgvUB4iwACCCCAgBMECPBOqEXKgAACCCCAgJcAAd4LhLcIIIAAAgg4QYAA74RapAwIIIAAAgh4CRDgvUB4iwACCCCAgBMECPBOqEXKgAACCCCAgJcAAd4LhLcIIIAAAgg4QcBWAf7YsWNy6dIlJ7hSBgQQQAABBCwVsDzAT58+XerUqSM5c+aUggULSq5cuaR06dLSu3dvOXnypKU4nBwBBBBAAIFoFbA0wC9cuFD69+8vw4YNk/3798vly5fl1KlTsnjxYsmRI4d06NAhWl3JNwIIIIAAApYKWBrgFyxYIIMHD5bWrVubq/csWbJI7ty5pWzZsjJixAjZuXOnaLM9CQEEEEAAAQQCE7A0wNeoUcNcrV+5csUn1+vXr5dDhw5JXFyczzoWIIAAAggggEDqAtlSXx3etR07dpQ5c+aYe+5169Y1V/EJCQmyb98+0QA/btw4yZbN0iyGF4CjI4AAAgggECYBS6Nnnjx5ZOrUqbJu3TrZsmWLaZLXJvoSJUpIy5YtuXoPU6VzWAQQQAAB5wtYGuBdvNWrVxf90fvt2iTPVbtLht8IIIAAAggEJ2DpPXjNMo/JBVdx7IUAAggggEBqApZewbsekxs/frzUq1dP8ufPL6578O+88455TG7JkiWp5d+9rl+/fikOknP69Gn3drxAAAEEEEAgMwjEJCYlqwr69NNPS7ly5eSJJ57wyYI+E1++fHlZtWqVFChQwGe994KtW7dKSkVp1KiRbN++XeLj47134z0CCCCAAAKOEmjbtq3pwG7pFbw+Jjdr1izp1auX6DPwninQx+QqVKjguXuy11mzZk32njcIIIAAAgg4XcDSAM9jck7/70X5EEAAAQSsErA0wPOYnFXVznkRQAABBJwuYGmAd+G6HpNzvec3AggggAACCGRMwNIAP3fuXNmwYUOqJXjuuedSXc9KBBBAAAEEEPAVsDTAx8TEyKuvvira2a5atWq+uWMJAggggAACCAQlYGmAv/POO2X27NnyyCOPiM4sp/fkSQgggAACCCCQcYHkz6Zl/HgBH6FZs2by2GOPyYoVKwLelx0QQAABBBBAwL+ApVfwriwNGTLE9ZLfCCCAAAIIIBACAcuv4ENQBg6BAAIIIIAAAl4CBHgvEN4igAACCCDgBAECvBNqkTIggAACCCDgJUCA9wLhLQIIIIAAAk4QIMA7oRYpAwIIIIAAAl4CBHgvEN4igAACCCDgBAECvBNqkTIggAACCCDgJUCA9wLhLQIIIIAAAukR2LZtm7Rr184Mtd66dWs5dOhQenaL2Da2GOgmYqXlRAgggAACCIRA4PDhw1KhQgX3kTZu3CgNGzaU5cuXS5EiRdzLrXzBFbyV+pwbAQQQQCAqBYYOHSo6YZorJSYmys6dO2XMmDGuRZb/JsBbXgVkAAEEEEAg2gQOHjwoGtQ906VLl2zVTE+A96wdXiOAAAIIIJAOgbp16/rdSqc/t0siwNulJsgHAggggEDUCPz2229+87p7926/y61YSIC3Qp1zIoAAAghEtcCxY8f85v/48eN+l1uxkABvhTrnRAABBBCIaoG77rpL8ubNm6wMWbNmlTvuuCPZMivf8JiclfqcGwEEEEAgKgW6dOkiX3/9tcycOVOyZMkicXFx0qNHD9Hn4e2SCPB2qQnygQACCCAQVQITJ06U//znP6bn/HXXXSfVq1e3Vf4J8LaqDjKDAAIIIBBNAvXq1bNtdrkHb9uqIWMIIIAAAggEL0CAD96OPRFAAAEEELCtAAHetlVDxhBAAAEEEAhegAAfvB17IoAAAgggYFsBArxtq4aMIYAAAgggELwAAT54O/ZEAAEEEEDAtgIEeNtWDRlDAAEEEEAgeAECfPB27IkAAggggIBtBQjwtq0aMoYAAggggEDwAgT44O3YEwEEEEAAAdsKEOBtWzVkDAEEEEAAgeAFCPDB27EnAggggAACthVgshnbVg0ZQwABBBDITAKHDh2ShQsXyoULF6RJkyZSpkyZDBWfAJ8hPnZGAAEEEEAg4wI7duwwc8nv2bNHLl26ZIL8smXL5Oabbw764DTRB03HjggggAACCIRGoHHjxrJt2zY5e/asCe561Mcff1yOHDkS9Am4gg+ajh0RQACB9At8++238sMPP0iBAgXkkUcekdjY2PTvzJaOF8iVK5dPGU+ePCnbt2+X+Ph4n3XpWUCAT48S2yCAAAIZEHjhhRdkzJgx5mosZ86c8uSTT8r+/fvl2muvzcBR2dVJAjExMT7FOXfunOTPn99neXoX0ESfXim2QwABBIIQWL16tYwcOdLd1JqQkGCO8vTTTwdxNHZxqsBzzz0nBQsWdBdPr+jvvPNOqVixontZoC+4gg9UjO0RQACBAAR+/fVXn60TExPl559/9lnOgswr8Nhjj5mm+NGjR5tOdvfff7/06dMnQyAE+AzxsTMCCCCQuoA2scbFxZnOU55b5smTx/MtrxGQu+++2/yEioIm+lBJchwEEEDAj8Dtt99uHnXKmzeve23x4sXlo48+cr/nBQLhEOAKPhyqHBMBBBD4n4B2nvriiy9k+PDh8s0335hm2CFDhkilSpUwQiCsAjFJ94ISw3oGGxy8cOHCsmXLlqAfNbBBEcgCAggggAAC6RJo27atzJkzR2iiTxcXGyGAAAIIIBBdArYK8MeOHTO9B6OLkNwigAACCCBgPwHLA/z06dOlTp06ooM/6DOA+uxf6dKlpXfv3qKj+JAQQAABBBBAIHABSwO8zprTv39/GTZsmBnV6fLly3Lq1ClZvHix5MiRQzp06BB4idgDAQQQQAABBKy9B79gwQIZPHiwmUFHr96zZMkiuXPnlrJly8qIESNk586dos32JAQQsIfAypUrpVWrVqbVTVvZLl68aI+MkQsEEPARsPQxuRo1asisWbOkV69eJrh75m79+vWic+PqABEkBBCwXmDt2rXSvn17OXjwoMnMpk2bzEQY8+fPl2zZLP1TYj0OOUDAhgKWfio7duxouvLrPfe6deuae/A6TvO+fftEA/y4cePS/YdD79en9MRfSsttWB9kCQHbCvTs2dMd3DWT58+fl3Xr1sncuXPlrrvusm2+yRgCmVXA0gCvQzVOnTrV/JHQ59S1SV6b6HVoR73/HsjV+6OPPppic6He1ychgEDGBHRmK++kn60TJ054L+Y9AgjYQMDSAK/l1yb6f//739KwYUPRIH3bbbfJxo0bzbI33njD3OtLj9O0adNS3EwHuiEhgEDGBBo3bixbt25N9iirdoytVq1axg7M3gggEBYBS3vRr1mzRnSKvDZt2pghHPUPyMMPP2yuCHRmnRdffDEsheagCCAQuMA///lP0fHUtWUta9asZi7zf/zjH6J9aUgIIGA/AUuHqtXxmKtUqSIPPPCAaIedFi1amMflXBPf16pVS7799lu55pprMiTHULUZ4mNnBNwC2mteW8vOnDkjNWvWTHcLm/sAvEAAgbALuIaqtbSJXpv29FE5nSJPO+ocOXLE3IfXTndHjx41g95kNLiHXZITIJCJBLJnz26+kGeiIlNUBKJWwNImen3k5vDhw1KgQAEzdaKOaqdXBV26dJH69etL165doxaWjCOAAAIIIGClgKVX8Npj/quvvjJX7vHx8cZh0aJF8tNPP4ne7ytVqpSVNpwbAQQQQACBqBWwNMC71FzBXd/Xrl3b/LjW8RsBBBBAAAEEAhewtIk+8OyyBwIIIBCdAhcuXJDffvst2WBB0VkSch0tAgT4aKkp8okAAlErsGPHDmnWrJkZ5+Omm26Sp556KsWRN6O2kGTcdgK2aKK3nQoZQgABBEIkoCP93XDDDcmONmbMGClfvryZFjvZCt4gEEIBruBDiMmhEEAAAW+B77//3gy/7blcm+t1BE8SAuEUIMCHU5djI4BAphe4cuWKX4NLly75Xc5CBEIlQIAPlSTHQQABBPwI6BDc3hNn6XsdbYyEQDgFuAcfTl2OjQACmV5AHwNeuHCh6NDbOmy2DsV93333ycsvv5zpbQAIrwABPry+HB0BBBCQChUqmFE7tTe9TtjDIF78p4iEAAE+EsqcAwEEMr2AjtxZuXLlTO8AQOQEuAcfOWvOhAACCCCAQMQECPARo+ZECCCAAAIIRE6AAB85a86EAAIIIIBAxAQI8BGj5kQIIIAAAghEToAAHzlrzoQAAggggEDEBAjwEaPmRAgggAACCEROgAAfOWvOhAACCCCAQMQECPARo+ZECCCAAAIIRE6AAB85a86EAAIIIIBAxAQYyS5i1JwIAQQQQMBJAjrt76RJk2T37t1SsWJF6dKli5lrwC5lJMDbpSbIBwIIIIBA1AhcvnzZBPXDhw/LqVOnJDY2Vt566y1ZsWKFZM2a1RbloIneFtVAJhBAAAEEoklAg/m+fftMcNd8nz17VrZt2yaTJ0+2TTEI8LapCjKCAAIIIBAtAj///LMkJCQky+7Jkydl7dq1yZZZ+YYAb6U+50YAAQQQiEoBnfI3e/bsyfKeM2dOKVGiRLJlVr4hwFupz7kRQAABBKJS4JlnnpFLly5Jtmz/35UtR44cogH+r3/9q23KQ4C3TVWQEQQQQCB9Anv37pW+ffvK3XffLcOHD5crV66kb0e2CplAfHy8nDlzRvr16yft27eXQYMGyZ49e0QDvV1STGJSsktmwpWPwoULy5YtW0QrhIQAAghEs8CxY8ekVq1asmvXLhPY9aqxbNmysm7dOvfVZDSXj7xnXKBt27YyZ84c4Qo+45YcAQEEEIiYgF4xuoK7nlQ7emlv7s8//zxieeBE0SFAgI+OeiKXCCCAgBHYv3+/T5P88ePH5cCBAwghkEyAAJ+MgzcIIICAvQWqV6/u03s7b968Uq5cOXtnnNxFXIAAH3FyTogAAggEL/DSSy+ZAJ8rVy5zkPz580vTpk2lXbt2wR+UPR0pwFC1jqxWCoUAAk4VyJcvn2hHu/fee0+0ub5u3bpyzz33OLW4snjxYhk6dKicOHFC6tevL++//z6dCdNZ2wT4dEKxGQIIIGAXAX0Uq3///nbJTtjysXDhQunatascOnTInEOHgtUvNTNnzrTNeO9hK3wIDkwTfQgQOQQCCCCAQOgFnnzySXdw16OfP39eVq1aZa7qQ3825x2RAO+8OqVECCCAgCMELl686FOOc+fOiY75TkpbgACfthFbIIAAAghYINC4cWOfpvjTp09LtWrVLMhN9J2SAB99dUaOEUAAgUwhMGrUKMmdO7dox0Idsa9YsWLy73//W8qXL58pyp/RQtLJLqOC7I8AAghEscCFCxdk8ODBMnv2bNHXt9xyi0ycONHnytmKIuojgEeOHJFZs2aZ+db1iYHKlStbkZWoPCcBPiqrjUwjgAACoRFo06aNfPvtt2ZmND3iwYMHpWDBgjJ69OjQnCCDR9EnBjp37pzBo2TO3f020es3Ju+kle5vufd2vEcAAQQQiA6BP/74Q3755Rd3cNdcaye2r776yoxvHx2lIJcpCSQL8PoIgv7oqEiu1/r77Nmzoo8raKWTEEAAAQScIaAT1fib3lSnn9V1pOgWSBbgtalGOzRs3LjR/NbX+qPjHP/444/SqFGj6C4tuUcAAQQQcAuUKVNGrr/+evd71wvtqV6qVCnXW35HqUCyAL9o0SLR5w67dOlifutr/bl06ZLs3r2bnotRWslkGwEEEPAnoFfvn332mRn6VXuolyhRQho0aCBbt261RSc7f3lmWfoFknWyi4mJMRX9ySefiN6bKV26tLk/oxPH33nnnXLTTTel/8hsiQACCCBge4GiRYvKqVOnZM2aNaIxoEaNGuKayMb2mSeDqQoku4J3bTlw4EDp3r27uQfTvHlz0zyvzfd6FU9CAAEEEHCWgAb0hg0bmqt3grtz6tZvgJ86darpUKez+BQoUMA8g6gD/msTfjiTzpCktwNICCCAAAIIIJAxAZ8An5iYaIKsdqzTgQ86depkzqADIMTFxWXsbH72nj59utSpU8eMUqTPXuq3R7010Lt3b8Yb9uPFIgQQQAABBNIj4BPg9R6MdrJo166d6XyhHe4mTJggH330kbRo0SI9x0z3NjoVoE55OGzYMDMF4OXLl829IG050M4fHTp0SPex2BABBBBAAAEErgr4BHhd9fHHH8s999xjmuSrVKkixYsXl59//tk011/dNeOvFixYYIZIbN26tRk5KUuWLOaxvLJly8qIESNk586dos32JAQQsI+APjKrX8737dtnn0yREwQQ8BFI1ovetTY2NtZ0snO9v+OOO1wvQ/pbe2vqGMO9evUSDe6eaf369WYe4HDcFvA8D68RQCB9AtrC9uCDD8qyZcvMmOWHDh2S+fPnS6tWrdJ3ALZCAIGICrgD/MqVK02gXbt2rTRp0sQ0mXvn5O233xa92g5V6tixo+gjeHrPXScR0HvwOnqSXhlogB83bpx5bC9U5+M4CCAQvECfPn3MF3IdytSVevToYZ6y0QFTSAggYC8Bd4DXGXp0Gj5N77zzjhngxjurN9xwg/eiDL3PkyePaI/9devWyZYtW0yTvI6cp4MttGzZMqBOfS+88EKKPfDPnDmToXyyMwIIiAnknsFdTU6cOCE//fSTEOD5H4KA/QTcAV6bwmvWrGlyWK1atYjmtHr16qI/rqTDJGov/kCSdgrU8ZP9pTFjxvhbzDIEEAhAwN9nUjvD+hvLPIDDsikCCIRJwB3gV61aJY8//niqp3njjTfktttuS3WbQFbqM+9vvvmm2eW5554zHevGjh0rO3bsMKMp6Yh65cuXT9ch69Wrl+J22bNnT3EdKxBAIH0CzzzzjPTs2VOOHj1qdtAnbrR1rG3btuk7AFshgEBEBdwB/sYbb3TP//vhhx/K3r17TYca7dG+dOlSmTJlilSsWDGkmfv6669l3rx5MnnyZNmwYYO55+46j/bk16tyHROZhAAC1gtonxkN6PplXL80165dW/QLOSOfWV835AABfwIxSQPbJHqv0E5v+licdnpzJX1eXZvRdQjbUCU9pg6PeO+998rLL79s/mg8//zz7sNXrVpVlixZIoULF3YvC+aF7q/3+OPj44PZnX0QQAABBBCIGgFtVdMO7MmfTftf9rNmzSp//vlnssLoFXahQoWSLcvoG528RpvhtePOrbfeKjrAjWuo2s2bN5tn4AnKGVVmfwQQQACBzCjgbqL3LLxeReujco0bNzaD3OigFjo3cCjvv+v59BEbbf7XwXT0Mbldu3aZHvQa+PUxOe0c5/18vGc+eY0AAggggAAC/gX8NtHrptpEr83j2qGmVq1aZtjYbNn8fh/wf+QAlurV+vLly2XPnj1musKSJUuKzl5XpEiRAI6S8qY00adswxoEEEAAAWcJuJroU4zYGtT1JxKpUqVKoj8kBBBAAAEEEAiNQIoBPjSH5ygIIIAAAiowd+5cM7+Htij27dtXrrnmGtvA6GBjM2bMMC2oDzzwgOhTVaToF0ixiT76i3a1BDTRX7XgFQIIRF5Ap7/+9NNP5fjx42b4be1MrH2O9Hak1UmnBdc5Bk6dOuXOiva7CnWfK/fBeRF2AVcTvd9e9GE/OydAAAEEMomADuWrY31ocNekwV0HCRowYIDlAjpb50MPPZQsuGum9BHmkydPWp4/MpAxAQJ8xvzYGwEEEEhVQDsPew+jrcOP6NgcVqeDBw/6HR/k7NmzcvjwYauzx/kzKECAzyAguyOAAAKpCehYHv7ut+tkW1YnHcxMxz3xTnplX6BAAe/FvI8yAQJ8lFUY2UUAgegSaN68uTRo0CDZpDzXXXed6HDcViftn6RDD3smHXr4rbfeIsB7okTpa3rRR2nFkW0EnCCgQU6njNaZ6jTQRHomy0gZag/18ePHi86/oSOCDhw4UHSeDzukRx991PSanzhxoukboMOR33LLLXbIWsjzoLdGtJxffPGFaVV56aWXpEKFCiE/j10OSC96u9QE+UAgkwnoo2L6x1YnsNGkA1uNGzfODKqVySgoboQEtEOhftny/D+nE5y1bNkyQjmIzGnoRR8ZZ86CAAJ+BHT0Sr16d/2h1U20w9eQIUP8bM0iBDIuoKOz6lgE3v/nnn322Ywf3KZH4B68TSuGbCHgZAEdAjs2NtaniOfPn/dZxgIEQiHgGoPA+1gnTpzwXuSY9wR4x1QlBUEgegSuv/56vwHeNZtk9JSEnEaLgE6Ypn09vFPOnDm9FznmPQHeMVVJQRCIHgHtRf7aa6+5M6yPapUuXdp0QnMv5AUCIRQoV66c6EyprqSTp2lHx3nz5rkWOe43vegdV6UUCIHoEOjcubOsWrVKFixYILlz55Z7771XNPCTIiugPcvfeecdM9qetqB06dJFBg0aFNlMROhsPXv2lKpVq8o333xjruZ13P2iRYtG6OyRPw0BPvLmnBEBBP4nULt2bdEfknUCGvS0J3lCQoLJxO+//y7aF+LFF1+0LlNhPLOOSaA/mSHRRJ8ZapkyIoAAAn4Edu/eLbNmzXIHd91Ex6DXxxf379/vZw8WRZMAAT6aaou8IoAAAiEUOH36tPgbMleb7T0fJwvhKTlUBAUI8BHE5lQIIICAnQS0Y6MOV+ud9JEyO0xl650v3gcmQIAPzIutEUAAAccIaOdG15j4+fLlE/3Rx8m086OTHx9zTAWmURA62aUBxGoEEMh8Ajq9qz7Gp/eiL168aCZe0XndNSA6LZUvX16OHDkiy5YtE22a13HodZY5UvQLEOCjvw4pAQIIhFhgwIABMmHCBNF71Jr27t0rHTt2lDlz5vidXjXEp4/44TSgt2/fPuLn5YThFaCJPry+HB0BBKJQQGcbcwV3zf7ly5dl06ZNouOZkxCIFgECfLTUFPlEAIGICegoZ95Jgzxj5Xur8N7OAgR4O9cOeUMAAUsEmjZt6tMUv2/fPqlRo4Yl+eGkCAQjQIAPRo19EEDA0QLvvvuu6IQ4xYoVkxIlSkjNmjXljz/+kLi4OEeWW1snfv31V/OjHe1IzhDwbYdyRrkoBQIIIBC0gA7+sn37dlm7dq1plq9WrZrfmciCPoGNdtSR67p27Wr6GGigj4mJkY0bNzq2vDaiD3tWCPBhJ+YECCAQjQJZsmSRWrVqRWPW051nvVqvVKmS6O0HV9IA3717d5k2bZoJ9q7l/I4+AZroo6/OyDECCCAQEoEdO3ZI9uzZkx1Lg/6aNWuSBf1kG/AmagQI8FFTVWQUAQQQCK1A1qxZfToT6hl0cB+9kidFtwABPrrrj9wjgAACQQtoR8I6deqI3o5wJQ361157rRQvXty1iN9RKsA9+CitOLKNQHoFtHf01q1bzTjjjRs3Tu9ubGdzgeXLl8uxY8ekQoUKUq5cuaBzq8PxbtmyRU6cOGGu5nWo2rFjxwZ9PHa0jwAB3j51QU4QCLnA5MmT5cUXX5RTp06Zcca109iCBQv8NsuG/OQcMGwCPXr0kIULF5oe/jri3ujRo6VXr15BnU/H11+3bp0cOHDA7K9X7yRnCFxtl3FGeSgFAgj8T0A7SnXr1s08v62TiRw9elR+/PFHGTVqFEZRLDB8+HDRoXR1fHyt14SEBPnb3/5mZoDLSLE0sBPcMyJov30J8ParE3KEQEgEdHYw745S586dkxkzZoTk+BzEGoF58+aZFhnPs2ug/+677zwX8RoBIcDznwABhwrExsZKrly5fEqXN29en2UsiB6B/Pnz+2RW527XwXlICHgKEOA9NXiNgIMEOnXqJGXKlElWosKFC5t5zpMt5E1UCQwaNMinKV0nwdHR6EgIeAoQ4D01eI2AgwT0Sm/JkiVSu3ZtE+h1opRJkyY5fnQ2B1Wh36I0bNhQPvvsM1On+gWuXbt2smfPHseOk+8XgYXpEqAXfbqY2AiB6BTQTlOrVq2KzsyT6xQFdLa733//PcX1rEBABbiC5/8BAggggAACDhQgwDuwUikSAggggAACBHj+DyCAAAIIIOBAAQK8AyuVIiGAAAIIIEAnO/4PIIAAAhEQ+PLLL83wsvHx8TJw4EDx9zx7BLLBKTKRAAE+E1U2RUUAAWsEdOx4HUHQNaHLq6++anrBe49TYE3uOKtTBWiid2rNUi4EELCFgM76pmPHa3DXdPnyZfN7wIAB5jf/IBAuAVsFeJ368NKlS+EqK8dFAAEEIi6gg9C4grrnybdt2+b5ltcIhFzA8gA/ffp0qVOnjuhYygULFjRjZ5cuXVp69+4tJ0+eDHmBOSACCCAQSQEdbChfvnw+pyxQoIDPMhYgEEoBSwO8zmfcv39/GTZsmOzfv998y9V5qxcvXiw5cuSQDh06hLKsHAsBBBCIuECTJk3k1ltvNX/T9OQ6w1+pUqXk448/jnheOGHmErA0wC9YsEAGDx4srVu3NlfvWbJkkdy5c0vZsmVlxIgRsnPnTtFmexICCCCQloBOmfrXv/5VWrZsKU888YScPXs2rV1SXf/DDz9Ix44dpVWrVjJmzJhUt01rpY4d/8EHH8gDDzwg/fr1M1O7Xn/99WntxnoEMiRgaS96nfxi1qxZ0qtXL9Hg7pnWr18vhw4dYgIFTxReI4CAXwGd515nysuaNavpx7N06VIz0c6PP/4ohQoV8rtPagtnz54tjz32mPkbpNutWLFCtm/fLiNHjkxtt1TXPfTQQ6I/JAQiJZA8qkbqrP87j3471g+k3nPXqS179uwp3bp1k9tuu818ax43bpxky2bpd5AIi3A6BBAIRuCNN94wfytcnXS1U9uOHTtk1KhRwRzOXHToBYYraX8gfY5dLzxICESLgKXRM0+ePDJ16lRZt26dbNmyxTTJaxN9iRIlTDNbXFxcuh21We7ixYt+t3c9nuJ3JQsRQCDqBbSnuvfnX9/r8mBSbGysz24XLlyQo0eP+ixnAQJ2FbA0wLtQqlevLvrjSgcPHgy4aV477KWUtOmOhAACzhWoX7++uVjQTrqulCtXLmnQoIHrbUC/tROc93Ss2h9I+weREIgWAUub6P0h6bfuG2+80d8qliGAAAJ+BXSkuMqVK0vevHnNen0ErWrVqqap3e8OaSwcP3682SJ79uym17s+wqud5EqWLJnGnqxGwD4Cll7BP/PMM+ZD482h38Jdz4jSi95bh/cIIOAtoH15tCPctGnTzL13V78efSQtmFSuXDnRXvna+/3MmTPmlqF2CiYhEE0Clgb4QYMGiY7mlJCQYB6L02/fegVfs2ZNWbt2bTQ5klcEELCBQOfOnUOWC71q1wG3SAhEq4ClTfR6b1wfk9Pe9Pp86N69e0WfDdVH5vQ3z4lG638r8o0AAgggYLWApVfwrsI//vjj0qxZM3n44YelcePGrsX8RgABBBBAAIEgBSy9gvfMs3as+/77782Y9HSy85ThNQIIIIAAAoEL2CbAa9Z1UJtXXnlFVq1aFXhJ2AMBBBBAAAEE3AK2CvDuXPECAQRsKfDee++ZZ8HLlCljJkzZt2+fLfPp9EzpRDUVKlQwdVG8eHEzUJjTy0z5AhewxT34wLPNHgggEGmBDz/8UF544YVkE0DpRCzLli3zOx1qpPOXWc737bffylNPPSWHDx92F7lNmzaik+NosCch4BLgCt4lwW8EEEhVQGdU8x6XQoeCXbJkSar7sTK0AjrhjWdw16NrPcyZMye0J+JoUS9AgI/6KqQACERGQCdw8U46uYuO0U6KnMD58+d9Tqb14G+5z4YsyFQCBPhMVd0UFoHgBe677z7zlIvnEU6fPi233HKL5yJeh1lAxwzRSbk805UrV8xoe57LeI0AAZ7/A5lSQIcfXb16dabonKTTpk6ZMkX03m1G0sCBA800zjpA1XXXXWfGeldD7vtmRDXwfbt37y76o8N5az1UrFhRvv76a6lUqVLgB2MPRwvEJCYlR5cwqXD6B0mno42Pj3d6USlfOgR+/fVX0atRne9bm5erVasmc+fOFZ1YxGlp9OjRokNCa/O6XuXddNNNGZ7TfNOmTaLzRWhgyZ8/v9PIoqY8Osz38ePHRcfdL1KkSNTkm4yGX6Bt27amTwYBPvzWnMFGAvoH0TWRkStbOXLkEJ34aNiwYa5Fjvitnd9atGjhUxadeU17xJMQQMCZAq4ATxO9M+uXUqUgsHz5cp+WHL2K/+KLL1LYI3oXT5gwwW/mZ86c6Xc5CxFAwFkCBHhn1SelSUMgZ86colOLeicn3qnSsvpL/srvbzuWIYBAdAsQ4KO7/sh9gAINGjQwI7B57hYXFyddunTxXOSI13379jXDP3sWRudH79Onj+ciXiOAgEMFGMnOoRVLsfwL5MmTR+bNmye1atUyV/I6NfGjjz4qgwcP9r9DFC/VMup0zHo/Tq/aNbjrI1Z///vfo7hUqWf9559/NtNOa6ez+vXrp75xGmv1ufLvvvtOEhISzLGuvfbaNPaI3tUnTpyQlStXmgI0atRI8ubNG72FIeduAQK8m4IXmUVAn6r4448/5ODBg+Z5Yif3BL/zzjvl5MmTok8OaNBz8iNtAwYMkGnTpok+m6+3XO69917517/+FdR/aw14avfbb7/JxYsX5ejRo7JmzRqpUaNGUMez8076Wbj99ttNj3x101Hydu/ebR7Bs3O+yVvaAvSiT9uILRBAwOYCM2bMMAFdR3RzpWuuucY8LdCpUyfXonT/1kcn9XFAfbTQlfQ5cx13v2DBgq5FUf9bWyn0C69+KfJMOnjRokWLRJ8wIUWfAL3oo6/OyDECCKQgMH/+fPEM7rqZtlzMnj07hT1SX6xX8J7BXbfWRyzXr1+f+o5RtlYHQfL3hUWv4Hft2hVlpSG73gJ0svMW4T0CCESdgI5toP0pPJP2OQh2cCt/V64a8J12b1r7pHi7qeG5c+ccV1bP/xuZ5XXyT0RmKTXlRAABRwn07t3b556x3k9+9tlngyqnTsfq2TdDRzksVqyY1KlTJ6jj2XWnUqVKSceOHUUDvSvplxvtf1C0aFHXIn5HqQCd7KK04sg2AghcFbj++uvNtLXasU6b5ksnDd86atQoCbbnuz5KqFfs7777rumwp/c0X3/99asndNCr4cOHm46ECxcuNI9VduvWTZ5++mkHlTDzFoVOdpm37ik5AggggIADBehk58BKpUgIIIAAAgi4BLgH75LgNwIIIIAAAg4SIMA7qDIpCgIIIIAAAi4BArxLgt8IIIAAAgg4SIBe9A6qTIpijYAOivLWW2+Z4T11/PcnnnjC77PF6c2djqc+efJkM3BL165dRSfIISGAAAKBCtCLPlAxtkfAQ0AnItHZ6HRQFZ1XPleuXHLjjTeKBuls2QL//vzVV1/JfffdZwYacZ1mypQpooGehAACCKRHgF706VFiGwTSEPjb3/5mnpPW4K5Jx/beuXOnfPzxx2ns6btan99++OGHkwV33Wro0KFy6NAh3x1YggACCKQiwD34VHBYhUBaAlu3bvU7Bvrvv/+e1q4+63Wscx1y1Tvplwed+Y6EAAIIBCJAgA9Ei20R8BKoXLmy6DCmnkmH/SxXrpznonS91uCeO3dun22PHTtmpnr1WcECBBBAIBUBAnwqOKxCIC0BHetcJ+twBXmdjOSGG26QBx98MK1dfdbrvfw33ngj2XL9svD222+bKT2TreANAgggkIYAAT4NIFY7T0CnFdVAqnNet27dOkNTgOpVt/aif+GFF+Sxxx4THdd79erVptNdMHI6yYfOQz5gwADRCU90fHC9Lx9sOnPmjJlwpXHjxtK+fXvZu3dvsIcy+61Zs0buuusuufnmm+X555/3mVI1kIPrZDBjx46Vpk2bSqtWreTbb78NZHe2RQCBtASSPmSOT4UKFUo8fPiw48tJAdMnkBTsEpOawhOTPhvmp0iRIomLFi1K385RtFXSF5nEpMlWEpNmB3OXtUSJEom//PJLUKVImgs9MWmGMfexYmNjE5O+ICXqeYJJSa0cyepBP6effvppMIdiHwQQ8BBo06aNeccVfFrfgFjvKAG9SkwKcMl6qmsHtueee85R5dTCfPLJJ6JX8K4e/rpMr+C1tSGY1LNnT/nzzz/du549e9Y8Djh//nz3svS+2Lhxo8ybNy9ZPSR9CZeXXnopvYdgOwQQSEOAAJ8GEKudJaCPoiV9tfUp1NGjR32WRfsCLdPp06d9iuEZpH1WprJAvyx4J/XUToCBJn1iIGfOnD67Xbx40WcZCxBAIDgBAnxwbuwVpQIVKlQwA9N4Zl8HqQl23nDP49jtddWqVX0652lQrV27dlBZrV+/vmTNmtVnX32SINCkTxlop0Lv5O/Ll/c2vEcAgfQJEODT58RWDhHQAK+D02jSwJ50H1k0QM2ePdshJbxajObNm0vnzp3dj95dc801okPpvvnmm1c3CuCVdkxMup8v2rNfU+HChU1Hu2C+MCTdy5dRo0aZ4+iXBv3ioSMALl261CzjHwQQyLgAQ9Vm3JAjRKGA9nRftmyZuYrs1KmT5MuXzxaluHLliowcOVImTZpk7p03adJExowZ4/fKOb0ZXrJkiWzYsMEMoqPD4PprGk/vsfR+vo7Sp08O1KtXTxo1apTeXf1ut3nzZtH86fP/OrxmUodHv9uxEAEE0i/gGqqWAJ9+M7ZEIOwC2pHto48+cneM0xaGHj16yLvvvhv2c3MCBBBwhoArwNNE74z6pBQOEDhw4IDoZDOevd61p/rcuXMlmKFvHUBCERBAIAMCBPgM4LErAqEU0Ilq/A1Vq832GuhJCCCAQCACBPhAtNgWgTAKJA1CI6VLl/Y5gz6nH8zY9j4HYgECCGQqAQJ8pqrutAurwSSY55rTPjJbpCWg88e7ppnVHur6oz3LtSOazjNPQgABBAIRyBbIxmzrXAEdEEXHUv/vf/8rOtiIPjqm94Ndk6g4t+T2Klnx4sVNc/zy5cvNOO/aU90uPfztJUVuEEAgLQECfFpCmWC93uOtXr26/PHHH+7JQ/RKvn///vTetqD+9T58ixYtLDgzp0QAAScJ2KqJXpuGdaYvUmQFtm/fbnpua6B3pYSEBFmwYIHokKIkBBBAAIHoE7A8wE+fPl3q1KljBt8oWLCgudeoHY169+4tOs41KfwC+liWvyFI9cvW5cuXw58BzoAAAgggEHIBSwO8znWtzcDDhg2T/fv3m2By6tQpWbx4sRkSs0OHDiEvMAf0FdDhW8uUKZNshQZ8Hdo0Pj4+2XLeIIAAAghEh4Cl9+C1CXjw4MGSNKe0W0vvP5YtW1ZGjBgh5cuXNz26CxQo4F7Pi9AL6Pji2pKiLSfaiqLBvUaNGu4e3aE/I0dMTUBbTXQ6VZ14RTs7av04NZ07d86UVctYrVo1Mz+AU8tKuRCItIClAV6DyKxZs6RXr16SJUvyxoT169fLoUOH/M44FWmkzHA+vVLX6UX1frw+rqXPXXvXSWZwsLqMelvq3nvvlS1btpgWLZ0jfffu3VKoUCGrsxby8+vc9DoPwL59+0xZdRKbNWvWuCezCfkJOSACmUzA0gDfsWNHmTNnjrlyrFu3rrl61M5d+oHXAD9u3DgTbDJZnVhWXH0kLpipPy3LsMNOrJ0cq1SpInv27ElWsvvvv1/mz5/vqEcW9cr9uuuuS1ZObTnq06ePTJw4Mdly3iCAQHAClgZ4/cY+depUWbdunbli2blzpxmqU0f0atmyZUBX7zoFZkodwvSPCQkBuwvoF1t/nR1/++03+fXXX6VSpUp2L0K686efeX3mX8vsSvr5/f77711v+Y0AAhkUsDTAu/Kuz2Drj3fS8bd1Nq30JL1/5/mYl+c+/v5oeq7nNQJ2END70P7+r+rAQ04bcEjLqreCvBOPyXqL8B6B4AV8P2HBHyuoPV955RUZO3aseTzun//8p9xzzz3mOPptXq/wtaNRetLtt9+e4mZO7qSUYqFZEXUCOhd6q1at5MMPPxS9VaVJA74ud9pY9PqF/qabbhK9D+9qedMv86l9jqOuQskwAhYLWBrgf/rpJzOYit5f3LRpkzz99NOmo9fjjz9uMQund7rAjh07zLC8+iVSg6q/q0krDEaPHm061WkTtn4xbdq0qSNHE9QvLtOmTZP69euLPhqr77t06SJDhw61gp1zIuBIAUsD/OzZs6Vv377m8RhtYm/cuLH50Ue17r77bkeCUyjrBXR+9b/85S9mICUN7Pq0gN7n1uf+rU7aFK9zAGSGpFfsGzZsyAxFpYwIWCKQ/Nm0CGdBm+n0Kt6VSpYsaXrV9+vXT5YsWeJazG8EQiawa9cuadu2rempro+k6aOBOkTyU089FbJzcCAEEEDADgKWBvg2bdrId999Jw0bNnRbVK1aVWbMmGGa69wLeYFAiAT0OWvvgZP0HrD+Pww2aefOmTNnmnvnS5cuDfYw7IcAAgiEVMDSJvq4uDjziNzKlSuTFapBgwam6W7UqFHJlvMGgYwK6D33nDlz+hwmJibGZ1l6FmgnUL2PrPf0tSVAR2LU59Y/+OCD9OzONggggEDYBCy9gneVSv9AeqdixYqJ9qonIRBKgWbNmplheD2frNBR/P7xj38EdRodUlkHZTpy5Ih5TPPMmTOmBUrv85MQQAABKwVsEeCtBODc4RHQK1u91aKB86OPPkpxjILwnD3lo2pvbR0euX379nLjjTeamQzHjx/vfjwz5T39r9G+Ijobn2fS+/rLly/3XMRrBBBAIOICljbRR7y0nDBiAjoSod7v1mCnzeIvv/yyeRTSX/N4xDL1vxPp1bs+ohWKVLRoUZ/DaBn12XUSAgggYKUAV/BW6jv03J9++qm5gtXgrkmbrXVI0nfeecdxJR4yZIjo0x+upC0E2ulOJ1AiIYAAAlYKEOCt1HfouVevXi3e4//re89HIp1SdJ3aWJvjdbCcevXqyaOPPir79+83IzM6pYyUAwEEolOAJvrorDdb51onEdHe5J5BXq9svWcPs3UhAsiclmvBggUB7MGmCCCAQPgFuIIPv3GmO0PPnj2lfPnyZqhVLbyOFKfPmr/66quZzoICI4AAAlYJEOCtknfweXV8g//85z+iIxJq07UGfL0HnzdvXgeXOnRF03EhnnjiCdE5GX744YfQHZgjIYBAphKgiT5TVXfkCqs91d98883IndAhZ5o+fbo89NBDcv78eVMifYRPZ5fr0aOHQ0pIMRBAIFICXMFHSprzIJCGgI6Nr73vXcHdtflrr70mBw4ccL3lNwIIIJAuAQJ8upjYCIHwC+hQt/nz5/c50aVLl+TQoUM+y1mAAAIIpCZAgE9Nh3UIRFCgUKFCZlAg71Nq4Pc3oI73drxHAAEEPAUI8J4avEbAQgEd8U/HtvdM2mFx7NixosGfhAACCAQiQCe7QLTYFoEwC+gQv1u3bpVJkyaZEfE6duwodevWDfNZOTwCCDhRgADvxFqlTFEtoGMIMGZAVFchmUfAFgI00duiGsgEAggggAACoRUgwIfWk6MhgAACCCBgCwECvC2qgUwggAACCCAQWgECfGg9ORoCCCCAAAK2ECDAp1INiYmJMnz4cKlcubLccMMNctddd8nFixdT2YNV4RLQIVsrVaokpUuXlqZNmyabqS5c5+S4CCCAQDQL0Is+ldrr37+/TJgwQU6fPm220glTHnnkEZk8eXIqe7Eq1AJvv/22vPTSS3L8+HFz6L1790qHDh1k7ty5ki0b/4VD7c3xEEDAGQJcwadSj59//rk7uOtmCQkJsmzZMtmwYUMqe7Eq1AIjR450B3c9tg7dunHjRvnxxx9DfSqOhwACCDhGgACfSlXmypXLZ60GFw30pMgJ6Hzy3klvlZw7d857Me8RQAABBP4n4PuXExq3QJUqVSQmJsb9Xl9oM73eCyZFTqBZs2aSNWvWZCfUyVdq166dbBlvEEAAAQSuChDgr1r4vJo4caLExsbKtddeK0WKFJGKFSvKtm3b/E4I4rMzC0ImMHr0aClevLipg8KFC0u5cuVk5cqVoq9JCCCAAAL+Beih5N/FLI2Pj5ejR4/KihUrTLN8vXr1JF++fKnswapwCOTNm1d27Nhh+j/oXOm1atUiuIcDmmMigICjBAjwaVRnjhw55NZbb01jK1aHW0Cb6Js0aRLu03B8BBBAwDECNNE7piopCAIIIIAAAlcFCPBXLXiFAAIIIICAYwQI8I6pSgqCAAIIIIDAVQEC/FULXiGAAAIIIOAYAQK8Y6qSgiCAAAIIIHBVgAB/1YJXCCCAAAIIOEaAAO+YqqQgCCCAAAIIXBUgwF+14BUCCCCAAAKOESDAO6YqKQgCCCCAAAJXBRjJ7qpFpn+1f/9+Mxysjt7XvHlziYuLy/QmACCAAALRKkCAj9aaC3G+16xZI+3atZOTJ0+KTs964sQJ2blzp5QqVSrEZ+JwCCCAAAKREKCJPhLKNj+HBvX69evL3r175dSpUya4a5a7desmOu86CQEEEEAg+gQI8NFXZyHP8fbt26Vo0aI+x921a5fovOskBBBAAIHoEyDAR1+dhTzHOh2rztbmnU6fPi25c+f2Xsx7BBBAAIEoECDAR0ElhTuLFSpUkPbt20uePHncp9J57/v16ycFChRwL+MFAggggED0CNDJLo262rFjh8yYMUPOnj0rbdq0kZo1a6axR3SuHjVqlLlanz9/vvndq1cv6dGjR3QWhlwjgAACCEhMYlJyukPhwoVly5YtEh8fH1BR161bZ65s9+zZI1euXDH7zpw5U+66666AjsPGCCCAAAIIREqgbdu2MmfOHKGJPhXx1q1bi3Y0cwV33fTZZ5+VP//8M5W9WIUAAggggID1AgT4VOogNjbWZ6021e/evdtnOQsQQAABBBCwkwABPpXayJ49u89afWa8YMGCPstZgAACCCCAgJ0ECPCp1MYrr7ySbK32Mu/Tp4+ULVs22XLeIIAAAgggYDcBW/WiP3bsmBn/PFs2e2Src+fOsnr1ahk5cqTpRf/AAw/IPffcY7c6JD8IIIAAAgj4CFh+BT99+nSpU6eO5MyZ0zR958qVS0qXLi29e/c246L75DjCC2rVqiVTpkyRL7/8kuAeYXtOhwACCCAQvIClAX7hwoXSv39/GTZsmOhMZpcvXzZjoS9evFh0RrMOHToEXzL2RAABBBBAIBMLWNoWvmDBAhk8eLDo42iupEOj6j3uESNGSPny5UWb7dMzmlrLli1TnBhFh1wlIYAAAgggkJkELA3wNWrUkFmzZomOmqZTlHqm9evXm4lO0jsnubYGpJS4b56SDMsRQAABBJwqYGmA79ixoxltR++5161b19yDT0hIkH379okG+HHjxoldOtw59T8A5UIAAQQQcKaApQFeHzubOnWq6JCwOpTszp07zTjoJUqUEG1yT+/VuzOrhlIhgAACCCAQvIClAd6V7erVq4v+kBBAAAEEEEAgNALJb3yH5pgcBQEEEEAAAQQsFiDAW1wBnB4BBBBAAIFwCNiiiT4cBfM8ps4Gd/HiRTly5IjnYl4jgAACCCDgOAEdU0ZTpgjw+jx9z549zWh5dqjJb775RnQiG+9HA+2Qt8yUBx0fQUdO5EkNa2tdZ2jUOtDBrUjWCZw/f15iYmJs83fSOglrz3zhwgXJnz+/ebIs2Jzo/ppiEpNSsAdhv+AEOnXqJOPHj2dWuuD4QrZX37595YknnpAqVaqE7JgcKHABHcmyYcOG0qJFi8B3Zo+QCUyYMMEE9wcffDBkx+RAgQvMnTtXNm/eLAMHDgx8Z689uAfvBcJbBBBAAAEEnCBAgHdCLVIGBBBAAAEEvAQI8F4gvEUAAQQQQMCffJ7MAAAK9ElEQVQJAgR4J9QiZUAAAQQQQMBLgADvBcJbBBBAAAEEnCBAgLegFvUROX0chWStgD6axaOK1taBnj1r1qzUg/XVYOpB64JkrYD+TQpVPfCYnLV1ydkRQAABBBAIiwBX8GFh5aAIIIAAAghYK0CAt9afsyOAAAIIIBAWAQJ8WFg5KAIIIIAAAtYKEOCt9efsCCCAAAIIhEWAAB8WVg6KAAIIIICAtQIEeGv9OTsCCCCAAAJhESDAh4WVgyKAAAIIIGCtAAHeWn/OjgACCCCAQFgECPBhYeWgdhVITEyUy5cv2zV7mSZf1EOmqWoKaqEAAT6C+KtWrZJSpUol+9m7d28Ec5C5T3XlyhW59957Zfjw4ckgXn/9dalWrZqUKVNG9DUpvAIp1UPdunWTfTbGjRsX3oxk4qN/+umn0rx5c6levbo8+OCDsnnzZrcGnwc3Rdhf/PLLL9KlSxdTDy1atJCpU6e6zzl06NBkn4f27du716X7RdI3aVKEBMaMGZP4yCOPJJ45c8b9k/THLkJnz9ynSfpyldi4cePEAgUKJCb9AXNjfP7554k333xz4vHjxxP379+fmPQHL3HevHnu9bwIrUBK9XD48GFTN6dPn3Z/Ni5evBjak3M0I6D/z6+99trEP//807z/8MMPE2+//Xbzms9DZP+TtGzZMnHSpEnmpEkXe4lFihRx10vSF7DEOXPmuD8P586dCzhzXMGn+6tQxjdcu3at1K9fXw4ePCiHDh2S2NhYJp3JOGu6jpD0IZInn3zSfFv23GHBggXmCiZfvnxStGhRs37GjBmem/A6hAIp1YN+NmrXri1Jf8Fk+/btkiNHDtHJgEihF9AWlKRALklB3hxcr+KXL19uXvN5CL13SkfUeujdu7f7b1Lx4sUlLi5Ofv75Z7PLunXrpEGDBubzcOnSJcmVK1dKh0pxOQE+RZrQr9A/Ym+++aYkfVuW0qVLy7PPPhv6k3BEvwJvv/22dO7c2Wfdrl27pFixYu7lGuQPHDjgfs+L0AqkVA/62di0aZPUqVNHGjVqJPXq1ZOkVpXQnpyjGQENJLfeeqtb41//+pe0adPGvOfz4GYJ+wudNa5Dhw6is4tqWrx4sRw7dkwaNmwou3fvlpMnT0qTJk1M3ZQsWVKWLFkScJ4I8AGTBb+DXqFMmDBBtm3bZr6lvfPOO+ZKPvgjsmdGBY4cOSJ58uRxH0ZbVZJuobjf8yIyAvrF6qmnnpItW7aYP25aD3qVSQqvwAcffCBfffWVufDQM/F5CK93SkfXmPDQQw/Ju+++K/nz55ek5nh5+OGHZdmyZbJz5055+umng+ofRIBPSTwMy9977z255ZZbzJFr1qwpSfd+5csvvwzDmThkegUKFSpkvim7ttdvzXqFQ4qsQNeuXWXQoEHmpAULFpRu3boR4MNcBdqJ8W9/+5ssWrRIrrvuOnM2Pg9hRvdzeP1S27RpU3nxxRfdzfXly5eX8ePHm2Cvc8NrU/73338f8AUhAd4PeDgWnT9/XrRXpP52pbNnz0rhwoVdb/ltgYD+YdNvyK70xx9/iDaHkSIr8PHHH8t///tf90n1CobPhpsj5C+0L8Tf//53E9wrVarkPj6fBzdFRF78/vvvctttt8mQIUPkL3/5i/ucestq4sSJ7vcJCQmmX4reow8kEeAD0crAttpBQu+haBO9ppUrV8qaNWvM/fgMHJZdMyigj83pB2nfvn2iwf2zzz6Tu+++O4NHZfdABfTe4+DBgyWp57xpJp48ebIE9VhQoCfOhNvv2LFD+vTpY/6va2vV0aNHzY9S8HmI7H8IbZbX1it9VM5VDxcuXDBfbrVTsPaJ0HE7tOlevwgE2tGOAB/B+tTnSz/55BPR5pfWrVubYJ83b94I5oBTeQu0atXK9N6uUqWK6dyiHzbt6EWKrED37t1Fm4f1arJcuXLmueBOnTpFNhOZ5Gzvv/++6WeizcLx8fHuH21R5PMQuf8E2mKlTy+88cYb7jrQ+tAxCkqUKGFaWDSo33DDDTJ//nyf8TvSk9MYfbAuPRuyTegE9JuadqTQXpQkewjovfecOXOaH3vkKHPmQoOMJu1kR7JOgM+DdfaeZ9bwrPFCA38wiQAfjBr7IIAAAgggYHMBLiFtXkFkDwEEEEAAgWAECPDBqLEPAggggAACNhcgwNu8gsgeAggggAACwQgQ4INRYx8EEEAAAQRsLkCAt3kFkT0EEEAAAQSCESDAB6PGPggggAACCNhcgABv8woiewgggAACCAQjQIAPRo19EEAAAQQQsLkAAd7mFUT2EEAAAQQQCEaAAB+MGvsggAACCCBgcwECvM0riOwhgAACCCAQjAABPhg19kEAAQQQQMDmAgR4m1cQ2UMAAQQQQCAYAQJ8MGrsgwACCCCAgM0FCPA2ryCyhwACCCCAQDACBPhg1NgHAQQQQAABmwsQ4G1eQWQPAQQQQACBYAQI8MGosQ8CCCCAAAI2FyDA27yCyB4CmVGgX79+8vrrr2fGolNmBEImQIAPGSUHQgABBBBAwD4CBHj71AU5QcB2Atu2bZMGDRpIXFyc1KpVS3766SeTx+HDh8vQoUOldu3aUqpUKXnhhRfceT906JB07NhR8ufPL9WrV5fvv//eve67774zy3SdbnP48GGzLjExUQYMGCDFihWTW265Rfbs2ePehxcIIBCcAAE+ODf2QiBTCAwePFjat28vBw8elB49ekifPn1MuTWIv/nmm/Lqq6/K4sWLZebMmTJlyhSz7pFHHpF8+fLJli1b5KmnnjL76Qrdp127dvLMM8/I5s2bzTauZvj333/ffBFYunSpOce8efPMsfgHAQSCFyDAB2/Hngg4XiBbtmyyevVq2bp1qwm8K1eudJe5SZMm0rp1a7nxxhulS5cu8uWXX8rRo0dFg/OgQYMkNjZWOnXqJMWLF5f169eb9VWqVDFfGPLkySNDhgwx2+oBdd/u3btLxYoV5f777zctA+4T8QIBBIISIMAHxcZOCGQOgZEjR8rFixelXr16UqlSJfn888/dBW/YsKH7tTbV//7776ZpPSYmRpo3by4VKlQwP7/++qssX77crNuwYYN7uTbFHz9+XPbu3Su//fZbsqCutwVICCCQMYFsGdudvRFAwMkCegX/xRdfyKlTp2TSpEnSrVs3c9WuZdbA7UobN26U0qVLmytwbZ7XQF6oUCGzWpvmddnXX38tjRo1km+++ca1m+zbt8/cd9f7+L/88ou4vjTol4XChQu7t+MFAggELsAVfOBm7IFAphHQZvMPPvhAChYsKF27dpWcOXOKdojTtGjRIhOgT5w4YZrYW7ZsKTly5JAWLVrIe++9J1euXJE///xTKleubO7H33bbbaJN/GvWrDH76z17beLX7XQfbR04c+aM7Ny5M1nHPLMx/yCAQMACXMEHTMYOCGQegVdeeUUeffRRefvtt01HO+0577oyL1mypNSsWVOyZMkirVq1kt69exuY559/Xu677z758MMPJWvWrDJw4ECpVq2aWffaa6+ZXvIlSpSQ3Llzy9ixY8022pmvc+fO5n6+bli/fn2zPf8ggEDwAjFJ38b//+t48MdgTwQQcLjAsWPHzKNy2mSvSTvR6dW8Ph6XkJBg1nkTaNO8fhnQe/Ke6fLly+bee3x8vOdi81pbA/LmzWuCvs9KFiCAQEACXMEHxMXGCGROgQIFCvgtuDbJ64+/lNI9dL2q9xfc9Rh6r56EAAKhEfg/ooO99Ph2L+IAAAAASUVORK5CYII=" title="plot of chunk cars-plot" alt="plot of chunk cars-plot" class="plot" /></div></div>
+
+<p>For package vignettes, you need to encode images in base64 strings using the
+<code>knitr::image_uri()</code> function so that the image files are no longer
+needed after the vignette is compiled. For example, you can add this chunk in
+the beginning of a vignette:</p>
+
+<div class="chunk" id="setup"><div class="rcode"><div class="source"><pre class="knitr r"><span class="hl kwd">library</span><span class="hl std">(knitr)</span>
+<span class="hl com"># to base64 encode images</span>
+<span class="hl std">opts_knit</span><span class="hl opt">$</span><span class="hl kwd">set</span><span class="hl std">(</span><span class="hl kwc">upload.fun</span> <span class="hl std">= image_uri)</span>
+</pre></div>
+</div></div>
+
+</body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-html.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-linear.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-linear.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-linear.R	(revision 2476)
@@ -0,0 +1,17 @@
+## ----hello, results='asis'-----------------------------------------------
+cat('_hello_ **markdown**!', '\n')
+
+## ------------------------------------------------------------------------
+1+1
+10:1
+rnorm(5)^2
+strsplit('hello, markdown vignettes', '')
+
+## ------------------------------------------------------------------------
+n=300; set.seed(123)
+par(mar=c(4,4,.1,.1))
+plot(rnorm(n), rnorm(n), pch=21, cex=5*runif(n), col='white', bg='gray')
+
+## ----header, eval=FALSE--------------------------------------------------
+#  knit2html(..., markdown.HTML.template = system.file('misc', 'docco-template.html', package='knitr'))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-intro.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-intro.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-intro.Rmd	(revision 2476)
@@ -0,0 +1,43 @@
+---
+title: "Not An Introduction to knitr"
+author: "Yihui Xie"
+date: "`r Sys.Date()`"
+bibliography:
+  - ../inst/examples/knitr-packages.bib
+  - ../inst/examples/knitr-manual.bib
+vignette: >
+  %\VignetteEngine{knitr::rmarkdown}
+  %\VignetteIndexEntry{Not an Introduction to knitr}
+output: knitr:::html_vignette
+---
+
+The **knitr** package [@R-knitr] is an alternative tool to Sweave based on a
+different design with more features. This document is not an introduction,
+but only serves as a placeholder to guide you to the real manuals, which are
+available on the package website <http://yihui.name/knitr>^[e.g. the [main
+manual](http://yihui.name/knitr/demo/manual/) and the [graphics
+manual](http://yihui.name/knitr/demo/graphics/)], and remember to read the help pages of
+functions in this package. There is a book [@xie2013] for this package, but
+it may not be useful to those who prefer digging out information on the web.
+
+Anyway, here is a code chunk that shows you can compile vignettes with
+**knitr** as well using R 3.0.x, which supports non-Sweave vignettes:
+
+```{r show-off, tidy=TRUE}
+options(digits=4)
+rnorm(20)
+fit=lm(dist~speed, data=cars)
+b=coef(fit)
+```{r results='asis', echo=FALSE}
+knitr::kable(summary(fit)$coefficients, caption='Regression coefficients.')
+```
+
+The fitted regression equation is $Y=`r b[1]`+`r b[2]`x$.
+
+```{r graphics, fig.cap='A scatterplot with a regression line.'}
+par(mar=c(4, 4, 1, .1))
+plot(cars, pch = 20)
+abline(fit, col = 'red')
+```
+
+## References
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-linear.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-linear.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-linear.html	(revision 2476)
@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<title>R Markdown with the Docco Linear Style</title>
+<link rel="stylesheet" media="all" href="https://jashkenas.github.io/docco/resources/linear/public/stylesheets/normalize.css" />
+<link rel="stylesheet" media="all" href="https://jashkenas.github.io/docco/resources/linear/docco.css" />
+<link href='https://yihui.github.io/media/css/docco-linear.css' rel='stylesheet' type='text/css'>
+<style type="text/css">
+img{display:block;margin:auto;}
+.container{width:auto;max-width:920px;}
+.page{width:auto;max-width:800px;}
+.page pre{width:100%;max-width:768px;}
+pre, code{font-size:90%;}
+</style>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/highlight.min.js"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/languages/r.min.js"></script>
+<script>hljs.initHighlightingOnLoad();</script>
+<script src="https://yihui.github.io/media/js/center-images.js"></script>
+<!-- MathJax scripts -->
+<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
+</script>
+
+
+</head>
+
+<body>
+  <div class="container">
+    <div class="page">
+<!--
+%\VignetteEngine{knitr::docco_linear}
+%\VignetteIndexEntry{R Markdown with the Docco Linear Style}
+-->
+
+<h1>R Markdown with the Docco Linear Style</h1>
+
+<p>This is an example of Markdown vignettes using the <a href="http://jashkenas.github.io/docco/">Docco style</a>.</p>
+
+<h2>Docco</h2>
+
+<p>To use the Docco style for Markdown vignettes in an R package, you need to</p>
+
+<ul>
+<li>add <code>*.Rmd</code> files under the <code>vignettes</code> directory</li>
+<li>add <code>Suggests: knitr</code> and <code>VignetteBuilder: knitr</code> to the <code>DESCRIPTION</code> file</li>
+<li>specify the vignette engine <code>\VignetteEngine{knitr::docco_linear}</code> in the <code>Rmd</code> files (inside HTML comments)</li>
+</ul>
+
+<p>After building and installing the package, you can view vignettes via</p>
+
+<pre><code class="r">browseVignettes(package = &#39;Your_Package&#39;)
+</code></pre>
+
+<h2>Examples</h2>
+
+<p>Below are some code chunks as examples.</p>
+
+<pre><code class="r">cat(&quot;_hello_ **markdown**!&quot;, &quot;\n&quot;)
+</code></pre>
+
+<p><em>hello</em> <strong>markdown</strong>! </p>
+
+<p>Normally you do not need any chunk options.</p>
+
+<pre><code class="r">1 + 1
+</code></pre>
+
+<pre><code>## [1] 2
+</code></pre>
+
+<pre><code class="r">10:1
+</code></pre>
+
+<pre><code>##  [1] 10  9  8  7  6  5  4  3  2  1
+</code></pre>
+
+<pre><code class="r">rnorm(5)^2
+</code></pre>
+
+<pre><code>## [1] 2.36677 0.01204 0.26160 0.04578 0.03464
+</code></pre>
+
+<pre><code class="r">strsplit(&quot;hello, markdown vignettes&quot;, &quot;&quot;)
+</code></pre>
+
+<pre><code>## [[1]]
+##  [1] &quot;h&quot; &quot;e&quot; &quot;l&quot; &quot;l&quot; &quot;o&quot; &quot;,&quot; &quot; &quot; &quot;m&quot; &quot;a&quot; &quot;r&quot; &quot;k&quot; &quot;d&quot; &quot;o&quot; &quot;w&quot; &quot;n&quot; &quot; &quot; &quot;v&quot;
+## [18] &quot;i&quot; &quot;g&quot; &quot;n&quot; &quot;e&quot; &quot;t&quot; &quot;t&quot; &quot;e&quot; &quot;s&quot;
+</code></pre>
+
+<p>Feel free to draw beautiful plots and write math \(P(X>x)=\alpha/2\).</p>
+
+<pre><code class="r">n = 300
+set.seed(123)
+par(mar = c(4, 4, 0.1, 0.1))
+plot(rnorm(n), rnorm(n), pch = 21, cex = 5 * runif(n), col = &quot;white&quot;, bg = &quot;gray&quot;)
+</code></pre>
+
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfgAAAH4CAYAAACmKP9/AAAEDWlDQ1BJQ0MgUHJvZmlsZQAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VVBg/m8AAEAASURBVHgB7N15rC1ZVT/wg6IgyIygyPCglaGZm6EHenjdzdztRIyRRBMVojHxD5RoMA6JMUYx0WDU6C9G/zHRGEkM2MzYdEPTDKJo0woo4gMURZkUHMDpdz+l67FfvRp21akz3btWcu85p4Y9rL1rfde0d93hf45olZQcSA4kB5IDyYHkwLHiwB2PVW96OvP85z9/9bGPfWx1l7vcpeeKPJwcSA4kB5IDyYHjwYGPf/zjq7e//e2rEwHw//Ef/7H63d/93dV97nOf4zF62YvkQHIgOZAcSA70cOD6669vznxRz/k8nBxIDiQHkgPJgeTAAXMgAf6ABy+bnhxIDiQHkgPJgT4OJMD3cSaPJweSA8mB5EBy4IA5kAB/wIOXTU8OJAeSA8mB5EAfBxLg+ziTx5MDyYHkQHIgOXDAHEiAP+DBy6YnB5IDyYHkQHKgjwMJ8H2cyePJgeRAciA5kBw4YA6ciHXwBzw+2fTkwFY48O///u+rz33uc6t//ud/Xvl+5zvfeXW3u91tdac73Wn1ZV/2ZVtpQ1aSHEgOLMuBBPhl+ZmlJQcOigM2gfrkJz+5eu9737v6p3/6p/Pafve733114YUXru5973uvvuRLvuS883kgOZAc2F8OpIt+f8cmW5Yc2CgHgPvf/M3fNFtadoG7yln0trx0HQs/KTmQHDgcDiTAH85YZUuTA4tx4L//+79Xn/70p1e33XZbVZmuA/L/9V//VXV9XpQcSA7sngMJ8Lsfg2xBcmDrHPjXf/3X1bve9a5J9b7//e9fuS8pOZAcOAwOJMAfxjhlK5MDi3LgH/7hH1af//znJ5XJpf93f/d3q3zD9CS25cXJgZ1xIAF+Z6zPipMDu+EAYP/7v//7WZV77fJUxWBWRXlTciA5sDYHEuDXZmEWkBw4LA6Io88FafdlHP6wxjtbe3I5kAB/csc+e36COXCHO9xhVu/dN/feWRXmTcmB5MBsDiTAz2Zd3pgcOEwO3PGOd2w2sJnTehvffPEXf/GcW/Oe5EByYMscSIDfMsOzuuTArjlgw5oHPOABs5rxlV/5lasv/dIvnXVv3pQcSA5slwMJ8Nvld9a25xw4KRni973vfVdf/uVfPmk0bFkL4JOSA8mBw+BAblV7GOOUrdwQBySM/du//VuzXauNX/y+613vurr//e+/ustd7nJst2cF1o9+9KObtfA1SXPi7pdddlnuS7+heZjFJgc2wYEE+E1wNcs8CA7YevUjH/nIygYu//mf/3lOm+3NfurUqdXjHve4Y5lUBrBZ8ddff/3qhhtuGMyMF3O/6KKLGtf8F31ROv3OmSj5IzmwxxxIgN/jwcmmbY4DNm350Ic+1Lxkpa+WM2fONMD3yEc+srHm+6471OOS7WxZe8UVV6z+4i/+YvWJT3xida973av5k0yHALpjLP5MrjvUkc52n1QOJMCf1JE/4f3+1Kc+NQjuwR4WPmDzRrXj+DY1AH6Pe9xj9YQnPKF5mYwNcOxW55WxrHyvjeXdEHvP18bGrMjP5MBhcCAB/jDGKVu5IAeA1/ve977qEj/84Q+vLrjggmMJ8MEE4Qp707ffKvcv//IvjWVvB7tLLrkkLs/P5EBy4AA4kAG1AxikbOKyHJBUxoKvJW7sKdfXlrsv1wF3r4Rtg3vZPgB/yy235MtmSqbk9+TAnnMgAX7PByibtzwHxN+n0nF9ixplR5IhS32MxOjlLVB4kpIDyYH950AC/P6PUbZwYQ5ILptKx3VzF9a7mHstffSjH23i87XX53XJgeTA7jiQAL873mfNO+KAxDLJY1NIIloX2RjnkDfHYcHLSailz372swfd39p+5nXJgePAgQT44zCK2YdJHLAE7Ku+6quq77nb3e7Wm0Eu09zfoVJ7/X9NP9JFX8OlvCY5sHsOJMDvfgyyBVvmgGVvD3vYw1aAe4yA91Of+tRegB+7f9/PTw094F2uh9/3Uc32JQf+lwMJ8DkTTiQH7MN+8cUXD+7HDsiA+1R3/iExVB9tZFNL9773vVdzchhqy8/rkgPJgeU4kAC/HC+zpAPjgD3nL7300tXDH/7wxpoHXLG5ywMf+MBmh7ev+IqvONaARnl5xCMeUT1yj3rUo/JtctXcyguTA7vlwPR04t22N2tPDizKAS+UAXCnjvadj9gykD9J7z1nlT/mMY9Z3X777YO8feITn1gV1hgsJE8mB5IDW+NAAvzWWJ0V7SsHZNWf5G1YbcH74Ac/eHX3u9999e53v7t5u145VjwdLPf73e9+x9qbUfY5vycHjgMHEuCPwyhmH5IDa3IAyHu73OWXX97sVmdjH54MHg5/XPl+JyUHkgOHw4EE+MMZq2xpcmCjHCgBfaMVZeHJgeTAVjiQSXZbYXNWkhxIDiQHkgPJge1yIAF+u/zO2pIDyYHkQHIgObAVDiTAb4XNWUlyIDmQHEgOJAe2y4EE+O3yO2tLDiQHkgPJgeTAVjiQAL8VNmclyYHkQHIgOZAc2C4HEuC3y++sLTmQHEgOJAeSA1vhQAL8VticlSQHkgPJgeRAcmC7HEiA3y6/s7bkQHIgOZAcSA5shQMJ8Fthc1aSHEgOJAeSA8mB7XIgAX67/M7akgPJgeRAciA5sBUOJMBvhc1ZSXIgOZAcSA4kB7bLgQT47fI7a0sOJAeSA8mB5MBWOJAvm9kKm7OS48yB//mf/1n9+7//+9n3yevrHe94x+ad8se539m35EByYL85kAC/3+OTrdtzDnit6t/8zd+sPvrRj64++9nPrv7rv/6rAfd73OMeqwc96EGr+9///s2rVve8G9m85EBy4BhyIAH+GA5qdmk7HADo73znO1ef+cxnzqnwP//zP1ef+MQnmr8HPvCBqyc96UnnnM8fyYHkQHJgGxxIgN8Gl7OOY8eBz3/+86u3ve1tKxb8ELHuAf7jHve41Zd92ZcNXZrnkgPJgeTAohzIJLtF2ZmFnQQOAPfbb799FNyDF3//93/fuPH/+7//Ow7lZ3IgOZAc2DgHEuA3zuKs4LhxAMD/7d/+7aRufehDH2oS8SbdlBcnB5IDyYE1OJAAvwbz8taTyYFPfepT52TM13DhX/7lX1YUg6TkQHIgObAtDiTAb4vTWc+x4cBY3L2vo5bS1ZBld0nJgeRAcmBdDux1kh1Bepe73GXdPub9yYFFOfAlX/Ils8qzNr6PLK9j5cdyuy//8i9fPfjBD1596Zd+abPsru++PJ4cSA4kB/o4sHML/id/8idXX/3VX7264IILVi9/+cvPtpPAu+td73r2d35JDuyCA7GJDfClcHKz3/Oe95zclDvc4Q696+Fl2UvAe/Ob37x6//vf38T3fd54440r93kWkpIDyYHkwFQO9JsUU0uacb1lRq997WtXr3nNa1Z/9md/tnrxi1+8+uQnP7n67u/+7smlPe95z1v9x3/8R+d9N910U+fxPJgcGOLA5z73udXHPvax1ZkzZxrr+ou+6ItWNrB57GMfu/qar/ma1Qc+8IGh2885d6973WvVZ/lTGoB5G8j99mxcccUVTb3nFJg/kgPJgeTACAd2CvCvfOUrV9/3fd/XrBG2Tvjyyy9v/u5973uvvumbvmmk6eee/s3f/M1VX+zy1KlT516cv5IDIxygLNqs5t3vfvc5V4qj/+M//uPqmmuuWVEAPvKRj5xzvu/HhRde2Lt17Qc/+MHzwD3KAfLquPvd795Y83E8P5MDyYHkwBgHdgrwj3/841e33nrr6vnPf37TTlt73nDDDatnPvOZky2WIXc+N2dScmAKB4D7H/7hH3bewp3OK3TxxRevrHHv8xzFzRdddFHvfAbgY0l7wgPq/OIv/uIoMj+TA8mB5MAoB3Yag7/uuutWN9988+rSSy8921Duz9/7vd87C/pnT+SX5MCWOMAyH3O/x3a0tqHtA9473/nOqyc+8Ymrr/zKr+xNlOP2d90QOe+6pORAciA5MIUDO7Xg73a3u63+9E//dPWOd7zjnDZfcsklq/e85z2rl73sZecczx/JgW1wAHizmsfon/7pn1YPe9jDVqdPn27c9vJHxNNlvgN1yXi2px0CZ94lnitx/r4Q00Mf+tB0z48NRp5PDiQHzuPATgE+WsPV2aav+qqvWr30pS9tH87fyYGNcwDo9lnlZeWu8WdJm7+HPOQhZ13pU8JCFN2nPe1pq1tuuaUsvvku1j9m4Z93Ux7YGgfkZERypDHPZY1bY31WVMGBvQD4inbmJcmBrXGAkJYtP2bFexVsaZ37Xv6ubbD18eoD5kID//Zv/9ZY/tbBA/e+7Pva8uM6cXz5AiUgKXtofX7cm5/nckAYR57GX/3VX614cvD0Tne60+orvuIrVo95zGMaoJ+i5J1bev5KDizDgQT4ZfiYpRwjDgC8r/3ar139wz/8Q/MmuK6uWfZ2n/vcp+vUrGPqZMlLPAUWPANzlIWuylmZlBX75wMj4CQcoE4bSVFUANNYOKGr7JN4jJJku+J2Eia+enugVRbyinLlw0mcHfvV5wT4/RqPbM2ecADYEtLyQ9p7yN/3vvdtkuc28frXuV6ALrbJJQDo73vf+1Yf//jHuy5Z/fM//3OzEoDXglJj06lN9Kuz8gM8SDGi+L3rXe/qbT2gB/6XXXZZ7sTZy6U8sQ0OJMBvg8tZx8FxgAUtSc4mMwQ6i82x+93vfivW+76DIKXEtreSWGvI9Tab0lfAlNTNAeETuwyOEY+JJZSSMJOSA7viQAL8rjif9e49B1jTkUDHcjuUmCoXMuu9FtzLgeBevulojf+Tn/zkpu/lufy+asInn/nMZ6pYQVmSR5E5DlXsyos2wIFcXLsBpmaRx48DhwLu4UJ+wxveMHsQuPX/5E/+JN9f38FBilMtlQmNtffkdcmBJTmQAL8kN7Os5MCOOcCFLOa+LskQF7enMCR9gQNTVjTIqk/r/Qu8y2/b50AC/PZ5njUeIw7E0jOf+0B/93d/t/rsZz+7SFPEmmvfYb9IhQdQCMCWg1FDD3jAA6r2U6gpK69JDszhQMbg53At7znRHLCMjaUcVq6saVnokvIk4UnAm2LpLcVMYGwp3FJEUZAstu8JhUv1t6Yc+xI88pGPXHkT5hAB9yWXUQ7VleeSA30cSIDv40weTw50cACI2lbWhjSxYUxcBlz//M//fGVr2Uc96lFbd89qj/j5kiTpzrLApC9wwNsun/rUp67+6I/+6Lw54Cr8espTnvKFG/JbcmBHHEiA3xHjs9rD44AEq/e+972rD3/4w72NF7P2+lfry71oxkYy2yJJXUuHCljxsfHOtvqx7/Vw0/PUXHnllau//uu/bpZQ4pGYO8vdNttJyYF94EAC/D6MwjFqA4Bh5QK6AAYZ6ISfdeSHSsATcA+Be9k3CWq33XZbA/L6vg3Cb8SN7GU3dlLDcyEE7WGNT02ao9QY00Meu03wHj/w17a09hDAV8AvVJOUHNgXDiTA78tIHHg7gIu4NBAEJGK3ASZiuLZCveCCCxqL9hAzi72zvWaDk3IYP/axj628YW5bFp11+0BHjNgmK8YCQOO/F+E8/OEPX731rW89Oy5lW/u+A7Kltsztq+OQj+NP5igc8gge77YnwB/v8d1K71gwLEQbq/jeJsDP8rWzmtikLORdJKG121X7mwVrj/FQWGrvc51+i8luo788BVdfffXqxhtvXJWbsfCo2InvCU94wuqxj31s8yrm2r7Y6Cet9ykjvvy15h8vjE90HDxiy3MpS+ziQAJ8F1fyWDUHwg1vb+4x0GBNyj5+9KMf3ViU2wC96o4MXEhpkTE/hwAr9/42+or/t9566zngXrbZ5jUXXnhh402xy1oNZYJdDZc2c014xT70oQ81WwgDeceEAWTo88p4Z0KGBTbD/+NQagL8cRjFHfZB1vZUt689z1mG4sSHQCynLs9ETdvdN6b41JRTcw1FQnhkiLju8b0G4LmejVPS9jkQSiWlrD33KMpCRh/5yEea1Rr2uz/EsNf2uXryasyNbk7emC/WY4LHrmnhOpxSsOVkXPeHQFyic93Uc++bwxdCf4zwvDbpz9vlJOztigAZBVIugTCD3yeB9NOc80a6Nri3+29Vh3fS409ScqDNgQT4NkfydzUHwsqovqG4UIz4UIQS66gWFIsuNl8B5LaS1GrCAPrCzTtG97jHPRpLf1tt72qPtr7lLW9pcgZe97rXNaGHbXlDutqzrWMUNf2t7Ssl2w6GcxTtbfUp69kNBxLgd8P3Y1Grtd7rCBWJeYdAgNN70ueQ9dJzlYOp9d31rncdrcsmLcZtiJTjNbm7zA5nxb797W8/Rxl5z3veM2rRDvXrEM7p91/8xV+c0++adrvnUBTmmv7kNctwIAF+GT6eyFLWdbHXuJT3hbGW+U2NR1MMTp06tTULnrfg8Y9/fC/LWOV22BOH7yN9tEvbLi13bVN/OzxAUdp1u/r4ttRxXrE5ii9wtzQ1KTlQciABvuRGfp/EgXXjy4eUGMSatcRsSpsvv/zyre5kB/xkvV977bXnWfKyrp/0pCc1CZFdlp57JWtdcsklzVp6MeBdkvZYtx8vdqGcXHzxxVtZjbDLfvOIyZafQ0u9ZGhO3XnPfnIgs+j3c1wOolXrunC3uY3rugwFeNzb11133erVr351s/Str0zgBIzwZ10lqK+OvuO8Buq0jSqLjss3LGHLrcR1XQNIfBoD4P/ABz5w7zYh0jYKh9UB2+ZjH383fdx4zaW5isHc+vK+/edAAvz+j9HetpA71xrcsUzfrg4AzLlrrIHULixM1jtgFJ/+y7/8y2ZJWmkNO69Pj3jEIxp3/hRrv4tHc49RMIBjW4GyZpqVXiZvAU6u713ws6Z/5le5zhsA4mvsv1BTxiFdQ+maS+sq3HPrzfv2lwMJ8Ps7NnvfMsAg+cwLN6bS/e9//3ME95T7dwlGwBNQPu5xj2sUG9YlBYdg9geM1hHSU/gw9VrAuCulY2pb+67Xfmv95UR0kbEwJuYIRWbfFZh2H8wv4Yg5bwWMcEa7zPx9cjmQAH9yx37tnhO2LEJJW1MS7txnv/RtZZev3dGOAvTBX9L2OdDl+eFJkZxmS2HgyF1N0WLVUiYf9KAHNR4NALrP5Jnw7oKpAC98VHo69rmP2bbtcWC/Z/v2+JA1zeSAJVXizRHnHSuG0L300ksbK3js2jyfHOjiQNuDI7nMpjDez+4FP8Ce9c6aB5SWkNltkWW/Toy7qy1LH6OAUEZ4iWoJP7zVrvYZrC03rzt8DiTAH/4Y7rQHhIs3mJ0+fbrXbRoN5EKkDHBB7rslFW3Oz/3mACAH7t7aN0RA//Wvf33zToF19m4YqmOpc3InvJSpnUPRVb7nz7JGz2BScqDNgfQxtjmSvydzgJDhWrQMi8X0t3/7tytWFTcptyFBJVZ/z3vec6ebp0zuWN6w1xwwv7zBcGzjnugEYGflS5KcYiHH/dv8lMB61VVXrW677bbmeeqqG6h7eZBVECdllUEXH/JYPwcS4Pt5k2cmcgDI27mNwOEOJVBZ6tzyhyiAAAiXLgVGH/wl7Q8HbHdsi9YpZF7au92eBvs8J805yrFkTu8E0E/LHq0ekFfghUGUgMycnzL6J+/aBPiTN+Yb7zHBuc/Cc4wB3L5cuu9+97ub96gTtgTqRRddNHZrnt8SByiPPEVzyJv0KG81LvA55S95D5D3J6ylz7EyYMk6sqzjy4EE+OM7ttmzmRwgRL3kpFwZ4NWcwg5PfvKTDwIYZnb9YG5jibPg55BxBZaHRpm3cmgjtvv2JsDvfgyyBXvEAYLf++pLcI/mfepTn2pcpRdccEEcqvrkVmUxKtOf71yrLEhhDdnPvARJ9RwwTnM2WIoaKAibIO3i/TGexjZBeRNczjJrOZAAX8upvO5EcEDMfShpC8iz8GsBWdzUFrHcyV0v15EoZS8Ba7VzmVP9FAOcXNdzaRP5FBQ5a/El/iHxcxvyHHK4ai5/87794EAC/H6Mw4ltRbhK98XSIYyHgIPlXYI7S5AlyX3vj4LAcgPcNsIB7v4I/y6iTPzJn/xJk5xof4CkOg4AaDz+xCc+UXdDcZUx3MR8M8aW7MVY++7FP4cQ6y/Yk1+PEQcS4I/RYB5CV4Chv09/+tNNApvvLGKgaJ28pXSRWLSL/gD4U0eveP3oRz96XvXOhXueEGed20TF1qn60SZZzpGc94EPfKDpb/ua+C3x6+abb25i/DYPShrmAICeu02ylR7m29JE2QtwVzbl1dxOSg7sigMJ8Lvi/Amrl/ADiO9///tXwCws9zYbCG5uTVvZsnyGrOn2vUv9pmRIpmNZx85n2nH11Vc3S+WAOZf7n//5n58931U3ix6wA2z3sujstNZHlJ7bb7999YQnPGEjANRX76Eep0DZ1nXKUjmWPyVtE25zZVt+9573vKdh6eMf//gcx0OdXMek3Qnwx2Qg97kbko6sPf7gBz/YC+zRfsAPBFnFYtPWAG8b5Alqlvfpo935ZGpzyQMT7WCh2XvfBiS1RLGxixrgdr84bR8pm9u+72UqffedxOOs8Ec/+tFN4iLlaIyETJ773OeOzsGxcvrOmx8PfvCDGy+UcbaZTr6voI9beXwbHMitarfB5RNcB0EnK50l22e1d7HHte5h0VIQtk0sPJY3oJcA5zugp3hYHz+VWP2SrygtY8l0Z86cGfQMTK37uF7P/W1c7PhmnIZI3N2Wrjwym4i/R90A3YtfKGhj4xz35GdyYFMcSAt+U5zNcpvlYBLMvOFrLll/TiA/6lGP2rm70xK39773vXO70vCDhf7ABz6wUV76CrKvOoVgH60/oRZ/wFX7NhHL7uNL+3iZ7Mgdzno211jz+McTA2SBv3j9ppLr2u3K38mBfeFAAvy+jMQxawcAkKi2DiAGSygJdvKS/FYK9Ti/rU+udXH1dQgAsSSHwhXWye9jchZPiqRCShcPCyv1kksuWYcdi90LyMXjvUo2FBCF88SkJb0Ym7OgA+NAuugPbMAOpbmsXXH3pYi7vmsd+VLlj5UDNLoy68fua58HjF7IY8VAHwH3KeGMvnKWPM4iFmr567/+68bNrX1yJW688cadjku7j6x2yZlc9/4S3Nscyt8niQMJ8CdptLfYV65oyWVLEXBX5q4IwA1tgDOlXcoBPn20j655/e8KtUhCtPlPUnIgObB/HEgX/f6NycG3iIt5ytKl2g4rUyx1KatMAmC4w7n+Wc4+xZW7llEBuSWIN0A8uI9YoNzhS7/SVH/96VtX//ra47j7+mgpvvSVv4/HjWH0e2jO7GPbs00nhwMJ8CdnrLfWU5nK3NBLkzKHgKa2PqDOihbbl5AlnMDlLJkP8FoHL2FL3L9MIlsy/j8UYxdHlmin/iWWCOqf/AEKElBSpsQzMfQhRaPkZySsda1o0N6TQuafeSgXwdwB9BROKy0kguJTUnJgXziQAL8vI3GM2gG8CL6lieKwTmzavYD9fe97X+eGM84LK/izkY0dzwhtW6KGlRYb36zTN0pDWH/tcoAv4LWJjmz7dQFeX/74j/+4URjKuoA9YH7a055WHu79DsQuv/zyJuZejoH7a5WE3sIP5ARwtzXuO97xjnPmofCR3AQ5CZIOl/a8HAh7spl7yIGMwe/hoOxjk4YsznZ7l7Cy22XG77llA2bC+a1vfWsnuEf55acd91zPshcXH0qMK+8b+66cvnj+hRde2OQasLrXJZ4KYMQb0EWs+ptuuqkqVwIPKCZ25Hv4wx/erOe/7LLLzu6531X+cTsGyO1GWCo4ZR+dt0fCEmNXlpvfkwNzOZAW/FzOHfP7CDGCSgKVP2AhMYwrksU2ZLUBg03RnLIpJxSDd77znWc3kAFWNiQR7xaP1j8u13ZogWLwqle9agXMHvCAB3Qmmk3pa7i6uwD+EY94RNMWoYOpMfJ2G/T5zNGGOWPvTNdf9dkaeIy3lBw7+vFqnDTyPMQKgqG+e1bwfOj5GLo/zyUHluRAAvyS3DwmZQG7D3/4w6u//Mu/PM/VLvbIArWWG1h1ARGgcG5pNz2A6apvjO3c1LfccstZcLebHPc0i966duAP8K2zB4zW7pdtB/Jvf/vbV1dccUWjFPRZxGPtcF4dVgOUHhHu74c+9KFNGOCP/uiPmmL0tbympuzyGmNYu+qAa7lmh72y/JP2XUiFAlhDPCPCO0nJgV1zYHOm1q57lvXP4gBgs35dDLgEubIwVsof/MEfNAKvy10JhDcRh1TmVIAHzixUgIfseCamDkj1E7gRyGLutpIlxO1X3s7UJ+Bdy3qd2obgHY8B5QjwsvD8tte+94ZTNPA8iGeBy1eYoC9eH9eWn5QCiXDGjtJgr/YHPehBg8vyXN81jmW5J/07vtaGh2qvO+k8zf5vngMJ8Jvn8cHUQMhb68xyHyPAyeXNOm4Ta9iuYkuTzG9lTyHgBeAR6xm4e0tcnxDmuRC3BoxtIJecB3if8pSnnHdurE3q5QFAF110UaMo6A9XvSQ4u8Mh3g9Z/NrKC0KpAP59ylZz09E/57nbeR+0358391Fc9INiIgTQxT/egqRhDhgLY19Dm1Bua+rNa5IDbQ7kk93myAn+DQy54GuJZSku+ZjHPOac+K2McwDPQlbmEgSYxMCnLlUDesCPgOY2vfXWW0ebw8IGyPINyt3rKDXc8/p26aWXNopCzda1suJZ03Z964uJA3blWucv90H4QN2OU1C0xbI5INPmgeuNm+vabn1eAF6JM0fxeFn5V1555erNb37zWY8GZigXf5L6OUAJsnRyLOyBj8Y7KTmwDxxIgN+HUdiTNrDGpwIyC5ObuZ1U5PfXfM3XNG+DW6J7yqq1oKI+YBfxcq5xQNdnucc98alfBHoJ8M4BXiDMvQ7keTwIfWGLkljN4vysdO3wjvC+7GrgwWOA97wLXS55ngVJjrLsAUgAMq+L0IL2jpG2AnweBPVoD2VBVnyU11WGdlGUeBuMK0XJ9W1Fo+ve43TMmPOE9L1fAT+e8YxnTPbuHCceZV/2iwMJ8Ps1HjttTZ91OdQowr8rfsvyBISAj5t4HXrIQx7SWJ/KnELaFaAKmLrCCX3lAcK20uJa/aUkAGUKB+WG5a2e4IVz/vQdMANG4Bzb0wJwlr/26ZOlZ9z/4abva5P2W6b12Mc+tuGt6/rW9PeVQeFh7QMqS7q8oz7a1XUP5URuQNk2LujTp0+fOIDnRZKMaG8C+/Lz6ASZK3Ip8GvqPI0y8jM5sDQHEuCX5ugBlzcW5+3qGpAi1LpIohrLlCCssTC7ymCtSoybYy1qV7TN/V2KSFedjrm2q84oL+5zjaVjwF3ugvP6K6mP10BYQeyb8hSWOaBwj2O+UwJKAI2y+z55A1jQgObMket9KvFC8CzYpEYoos961w8v+Wm3Tbu5+S+++OJOJWhqew7peoqbpEXzMsYUuFOSfHbNmUPqX7b1eHEgAf54jedavZnqAlcZcBiyWAi9Jz3pSY3FE8lutY0UM2ZpzhWa3OSxExxwbWfGD7XDtZF5X17X1V/t475lWbOw/fYdGOgzl25bucAzCgAPAOXA7/Y1Zb3t7zwMXS9/aV/X99u9PCx94O4+POsbMy57/DG+2yBtKS1m7R5q+ybbZF6VHplN1pVlJwfW4UAC/DrcO2b3ApypQAPYANkQEcRixwCbu7cdr27fqx2uZ10GQLevqfkNaJXFQlYnb4KkwBoSP+9qZ/CoXQahf5/73KfZqpQnRJ1DL9wB5ixpf0D+mmuuaXaVK0GsXUf5W6b9lITI8l7fI/lwDKCHlI7afIZ23bW/8YIiY6mgPAdhEO0x37Sbd8Q4UUyHlMza+vK65MBx48CwZD5uvc3+DHKAuxgIA6dakvxWA8KuIYxtkMPy+8d//Mcm6S3CAoQ28HQN63mKtT3UVqAL6IGDuLds9jGQBx7csJYBlqScoQxpIA94rbEfAveyTN+59rWP1S9hbghUXY9Xrhm7zrVDxHNAieoj9ciwN1ZtMp5LjVG7bL8Bu1UYQhBd/TSW2kV5NAclRG6yPV1tzGPJgX3nQAL8vo/QFttHWLImCc/IPh+q3os1hgCi694Ab8BBcIcVCBw3YYVRWsSbAa54sgxydfYpMVyvEs9uu+22szHz6IelasrrI8oKd/wUcI+yuMzxX1vbmftxTXy6LhSjODbnM3IC+u4F4vIf7AJIGSjp2c9+9tn8hvL4Et/Nv3e9613nbRvcVXbwnEIwN1ejq9w8lhw4DhyYlpZ8HHqcfRjkgOQvG7KwpPuIJctq4p6vsd77ygHowMrfJsBdvdoXe7xz+YqRs+pZy6xx7l2gTVFh3QsNAOn2XvEUEPu1D/UXMJ2ZkfQW/KF08KCMWaKAeUjRiPLGPsfqoYCp55nPfGZjIRtvCojlgXi5iTHj3akF97J/cgVsJ8wTkpQcSA78LwfSgs+Z0MkBlq7Md0vcWEcsJeBGyJ862mXNUinAfAhEabEZD/e3LHfLw4C8P4AKqICmmLv14V3WsYzxoeVkAI+HoJ1lP4U/PAtizdaZ93kYlOc6f8C3KxGwpk4KSxvglak8iorcAJ/6o9/i3ZQhYx73serF8vHX3Fh3Pqjb2ChzDonVGwOJmcILScmBk86BfApO+gzo6b84NCAn2IEXQc9yByrA4ZBIe/UDkAMQFAluNf2gHIitD4EGBUGZ61Ik3Q0BvDqEUCgoY+78vvbIdwhANraUOGEC+QldSgPgRPgAQN1/5shbYTtcJLeCYlIzN0KZsq7funKeAmMD2Ocup2wacfSPJW/fhKmho7g/P5MDx4kDCfDHaTQ30BeW2ZBbegNVbqRIfQDyAEgmP0AbI0oOMOOWDjDsu4fV3wWMfdf3HQd66h0jwC5XACCyvKeScANljfJmhz/74de4t137tre9bXXVVVedBXd12/gF+I+1XX2UF9cjioP1+MaHwrAu4QWvEw8ThTQpOXCSOZAAf5JH/4T1nQVu1zlAxFoFBDYraZMEQNu3sgJZl942x+pkZQJFrmplhava/V1u/Xa5tb+B4Bhxj4cCcvvtt49dfs55igEABIbCElYL1NRZFkKZ4Zrnxkd4NuThiHvxSXZ8EKXCRjq8Rfi8BFF6lDembCxRV5aRHNhnDiTA7/PoZNsW5wCQFlO2WsDSKiAHZHyy7oEWsKMASLYLACsbwjKkJLhfZj0gUe5SVGN5xpvhIodA1n8NSY7kyeCRmAvu6uGav/baa5slgZQe5Y55OdwXYZ4yK58ihedLKUnGjGKWlBw46RxIgD/pM+CE9h8gh4UH1BErnevbBjJD7moxa+Doj+VqA50oa112UjLGAN4a/QsuuOCsxQzkgWyfQqJNvA6UGh4MQKx/EgqnWu7RP31/wxve0IQvxN5rwzi8HhI4eQ2APMWAklSzLDPqLj/xi7LlT7/8No4+k5IDJ50DCfAnfQZk/xsOsB4/+MEPnhNXrmGNxDDLs7xFTOIZ4FuHrFIQ5+4ioMVrIHxQusMBG6tc/XILYtc3ighAlUPAa0EJoTw47pr2UsCuOoeOqQvPeDu8hnZolUFZDovdUkxWtj75m+oBcY+tdikswiwUBMDOE0PZEdvHE23yOyk5cBI5kAB/Ekc9+3wOB4C77PXICD/nZMUPQCUOzpJdF+DDwpYhH3F/AA6klc8SB25dBMD9uVebAHnXtSznMwsktEUbtJPCwKtQS23Qbf8eKofSYr8CwG7XwC4vhCVzYv14JlFSzkEXL4bqyXPJgUPnQAL8oY/gMW8/8AVILLE+wFqHBcqUlAUo1iG713mpjnZOeS1tWSd3PyAHYDbhYY2yuAFTrQs8yhuyiPF0Xes96olPPIxQQRyb8qmP3Ox93osoi+fCxjs2w6lZIgjoWffXXXddowiUno8oMz+TA8eVA8tlBh1XDmW/dsoBwHHjjTeuXvOa15y3XeoSDROLnmu5l/WzmFnFlp/NsRRZ6U9+8pPPutFZtKx1FvlUcC/b1fW9K3Gw67opx5TZZUnXlkGpYW0PEb5657qEwhpwj7K069WvfnXjXaHQJSUHTgoHEuBPykgfYD9ZsCHICeklNpJps4FreSnA8/ITbQTUU0CeVWmnvCn3tPsx5fcS6/Xb9fEKBM0BUZ6KsRfGiKlzy1OkppL22clwKHlyapl5fXJg3zmwUxf9q171qtV73vOeQR695CUvGTwfJyX79AkWQJF0eBwAeDKuveyEJQsAliSuf2vhlyTgI4kMyHtL3Fh2OFe87HZrwPWR5U5J4BGQXR7Z4Uu2UdlLU/nsja0C6Ktb/8XLY7fB8jpzAcCvE0oROpEQiN9DbSQvKEGSCIUyKIAUBF4WKy6ML+8Kz0q6/MtRyu/7xoGdAryH7Kd+6qeaHbm43tahn/3Zn+11EabWvg5nd3svwX7ZZZf1Km/rtI4gn7vv+VC9dmrzMhuJYABC4p3YsmQ0BBhkvMuYB7Z2dbMdLuuUUuA4YAeaQAmI+AP+Q8A01Kby3JSEtvK+oe9LAJ28AUmG3PV4pZ0+8Uu/8WedMID289hYZkiZaJOy8Zux4LoYr/Z1fmsTBcxWu/IugP+hkblHkfFpruGxP305xP4cGv+30d6dAvxzn/vc1Stf+crVd33Xd61e+9rXNg/K3E7/6q/+au+tr3jFK3rP5Yn95gCBQ5huglhlm/DuUCgJTJ4HiXPA/NTRzmr64bh6AT8g8SmxznEg6Turn5IQrnTHWY4AxdIw4LQOoMa6/yV5OpTdX1sPgGU1s7J5NErFnNW9RCiFslV6MIC4ev3Zx/7MkQemPN/XdvfZgY8HyN73xsWYUEooKPtM5h9FRvslIfpu/iFzlILJW+KNkl2K0D73Ldt2Lgd2CvCacvXVV69e+MIXNmuJ7YyVlBzYFgcI9U2QcsP64yEY8xIIPQBzgN+VRa48x/1Z+mVzGArDXEucEAfIwHQpkiA3tz3aoP8A1iZDXUoX6x4wLUHK8UdhAOjA2SZBXbwfq48y4AU9FLXLL7+82cDH+FDspuZUlO0CusrGU0v8jJnvQ6sjxtrqvDGXVArcA9TL+8xb3gt/vEg2cfK5jkJZlp/ft8uBnQO87v7Ij/zIdnudtSUHjjiwrrDsY6JyCU8gyn1LOBPeYv7czKVgjbepiTvXWI7A/n3ve18jqMWr51iL7rGkDZguQREf522ZQ3gD3IFsH+HpUgqZcnhI/DEwbr311lngXrZV3sRb3/rWxmUvmc9qCvkVNcCoPQAd8ConlMOyfHF/ngIhjHWsassLa/dqoPB4sdBTnvKUxpqv6UvZ5vy+ew5kFv3uxyBb8H8cAHwsOa5ZfwRdCYZLMwrwboK4NwlhQp71AwBDQBOWYsCOcbm7thbcy7YCJ0Afbvzy3Nh3YMlrsA5QlHU89KEPbZSZ8ljtd+PLWhwCd2WZC+t4CMr24D0wtSMgULb6YQkSVohyvZ3P77H5G56bt7zlLSt7KXSBu7bxEEhItmsiD0eNMlj2ieVue+BacI971fOHf/iHTV+m1hll5OfuOLAXFvzuup817wMHCDXuUoKeACL0gJBEH1YQIGQNL534o44lXdXKY1X7ZCl1ucApFdzr3p9OYMoK73JJ14wLq1eclIt5qvUM3Llf1d8FQngNCI1F1/loH8UlQgwsUSA8pS0UOa/vHSPX8YasS7wXxoWSJdcBCC9JwjGscNa2fkXGfVcdPBfc+5SCWgL0f/AHf9AsqxQGqCHjIrRDgZhD5imvhNf6biJ/Y06b8p46DqQFX8envGoDHAAcBCILlgUjg5zA5cZ23HeW3U033dRsBbtEkpVucJVTJLggbeu6FF166aUNILK0usBdPZQZrnECF9gMgWdNu/BHf6YSJUTcXLZ/m2w5a5mfc9dcc02v5QxwubgpM8aIpQesgBDwqiHjUNN+YCz5a10y3uYWxYiCtAlSbmw13LdMklJnvk8B92grZYc1zq1fQ647c5RrsA4ZI2XMVUbXqTvvnc+BBPj5vMs71+AAqwDAin+y3MeIS5p7slaodZVHOLGuANGb3/zmZnka78AUi7OrXMe4e7l6veSkhmQvE+7c+OvUT5GYq/iw0sXivfiFtY70g3Uv9opP3jjn/fHt+KvELx6AN73pTQ2gsxKBmT7dfPPNZxWyIQXGeMRGRmM8AzD6apXBXNJH3g5tskPipsDK3Danxctl2eNNm4D0OgoGXrD+u8ou69JXPNamdYkHYE5IaN168/75HEiAn8+7vHMNDhDYALsv5thVNHB/xzve0Vj4XeeHjhHmLDd1hlVFSLI2gdw6BBC5S1nlUwgIENCsyXWIAB8C0qGygby2A3n5AKz60mVOIfIXbRRi8C56f7wH+NcmYEIhE99mofeBkONTxl+ZXOttZaNdf99vS+0olfpLwdokKR/PAGK7//jDGp7S9662KmPM+6H+pfrqeaGYJB0OBxLgD2esjk1LCQlu3TkCjvtectnUeykHrNK2sAUaLK11YotAca5FyMLjRViH9K3WJd5VD8sW6D3+8Y9vMv7b1h7lAVix2Fnz6hNWMRZDBHyAPIWqzXf3KXeKFc1TYY38E5/4xMn5GLFW3XjzmGwaqPRd//C2rXwB3SUS+/COAjVErjFeS1GXQrdU2VnO8hxIgF+epyeuRAKL8BUzZyHR9NtCrWSK68YEU3l9+zuLdQxcynuAH6WgC2QIYjFx8WYJd3PIRjas3DmED5QLMfG5RIgP8bu2XNa5vABAH8QVb5c9fMJ3bnsgWwvMlAVeF2PebiNLfGpmPDexdnhzn7aNEYDloRF64JngbTE/t0Hq0UZtKAnvlgJKimVbISvrosyso/yVZfm+ZFntsvP38hzILPrleXqiSmQJybDlBgwBTohKOAMW7cx3lvcS+78rA7DWAKM6hywmSgl381VXXdVYnFOFL8VgqkehnCSEJnAFonMIgKwTx2/XyVqXZEdpY9mLqePRXAJAYvmysEtQBvDqqsnBKOs29uadMIE2mnsUpZh/rjUHlS1hkAVLIcRjbaGQboPUIzGw/QwsCZLmHcVV37oIT8yPWoWsq4zyWFtZKc/l9/3jQAL8/o3JXrSIQCCgQmgCEEKkjH8SllztEdOOhhO+XvF6ySWXNEK2FAqEW/v6uG/KJ4tQ+wjyMSLgu6z38j4AZmtZoAEMJDCNgTbL20Y1BPiQFVXW0/XdvesANNBsg0hXPTXH5Clwq1OejJvd9cb4UFOuecTLocyYU+aS8AjlaioAmUNA/fTp082SNPcbY5/mKcWPd0B9lqo5p14u+ql11fSv6xr1APh1xrar3PJY8LI8pl7Konms/54RitAStMRSxSXakWXUcSABvo5PJ+YqggHYcYMSoGHtEJqsOQLZEiC/uTyHwBr4s4rb8e0lLBhldAm3roGKPnSdK48RiGLLMrUj1owXXK3qCyWHkAOAAEomtE/8mBvXde86PJEctwSI4FPsbmfslyLt4yZnqUtEVA/g4flwnCJo2ddUHhgnXiL8GyK8oQABevX62waps6ttSylj+qD86A9F0Vw1JykyFDO5B5SMJQBeu0sPzDZ4mHWsx4EE+PX4d2zuJhxYb0CbddwmwpclDPgBvUSnMdcqqwlQlABfC8rt+tu/wyJrH+/63SVku65zjPXDBayfXLzecuh7eC4ITUKUZUshQPgB8OcAPIEJ8PRnDuHt3NyBdn3a0TX27eum/LZRUezWVwK475RJCqLzXjz1xje+sTohTL8jKbC2PZQBSsGccaqto7yOQhHzpjzOu6D9S4Au/gJ484eHRCikDPXgrzAFwF+XQrFft5y8f3scSIDfHq93VhPwJrx9EqxAjODxRzjQzFmqlpDVAA1FAMjVuG5LYYMBrCn11tRTMsx9gJSQYUFzv+oPYe37UCyei9L9U5QL1+KV+9Rj85o+AopeMEIRmEoy6Ocm6KnLznk1YYqadunHFB6NlclylLx409EmOHjYR/hmPwTKFEve/BwiSpGdAKcm6JkjlLapORZDbRk612ftUjQA87oAb27qD37JMenaFZES6lmz0mOd5XJ4J3y1pPdhiHd5bhkOJMAvw8e9LMWDD4jjtZAEWynAgTsXqb3Ea8E9OgrcCdgxoG6DD0EBoCkJtUQ42Q6VsgAMZQ4H+LLOgT4rkEAthb6+EnD6zcIeCid0tYW1xzpmAbHGZJB3kb7ghzZMAXkKi41XZJnPIYBIwC9B5srS1rsxAzpD4B5tB1D6Ijv+tttuO8cKjWuM9amjbX65ned6LcwP95qDSy4fizbGpzr6PEeeAf3wXI49P1Fe1yc+6A/lXDisj89c9jZU4k3z3MwhSyTxLOmwOJAAf1jjVd1alq0Hmyu576Em1IGjuPNUQUOoEMhDQpK2D1hLYr0A7FqAt7zJPXZIC5d4WR7QB+CS4ljDBBkwBu7aCJTdD6SnADxhZlMVVpJ+sLhYjUIYXZaX9sk8x1MKyBgB99NHCWISzAC1l5NMGQMAsc6mL+32mSNLuq7xnKemdpy1h3KEx/hiTI23NinLeFDgfI+Yc7sPtb8pnXJJancdrC23vE752tpH+iNBM3Ie+q7rOw7Y3W/OcMv3gbv78ZEycdFFFzXPeo3nrazXs2OupfVecuUwvifAH8Y4TWolqz2Wrg3dCGgJ0ClCOMojjMVA1dW3BO2Zz3zmea5zgMmyo3yMCRoCCYCz6GoIsAJxS/SAAcsYcAlPEHIXXnhhA9BjZbG+nv70pzfWJ7ekeCnhRmgDZgCPb5QI1ph+KB9YX3zxxc0e4xSr0ltS1skzQGDG8jO/JfWdOdqZbMyKJti1g/tb34DouhTtpMQACuC6LuFhlyI0VG7wVRu8hU97NkHGjPVrDvYpv+vUa0yUr54+oqTwnJk7xn0KmYvPfvazG2XSPKvhc+TLeGc9pdd8HSP94JWyA2CC+xi39vP8+tJhP/t1YltFYNDo+0C3ZAzrem78Vz233377CoizPiWmhRUBELn0/O4CIBYUy9z9fcQ6AWbKnkIENmBnFWtHZIN7sYdjMrZ5LIB+FwEW8XRLxYAtBcYrXllj+uMPAMarPVlQ2uk+ygC+sHiEPlxDkFJSuGv1m9dDmX/2Z3/WfGoD4UthYJVz2VNS/EXehHv1hbeFgqFcfTh9ZOm2QyBdfeo7pk78Ub92hwvcmLFu1wF6ZUwFT94Pf/EOcuCyKcI3wMUjszQpl4IzRuZUuL61IxStofu0OzxFxoxlXkvG2Zzy7JmXYvK8XG3SLgokRdwcsfKBUqnuIa9Eu5z8vXsOJMDvfgwWa4EHXjJYDbhHgo4HHeiwAgDRFPLwv+51r2usFWAD7CJpjyBQRxdF7B8AcG23iXDUprmxaUJMuQStGHAQTwDLmecBeAFRPGNpaS8ADXALwecayksAdtc72PGNF4RF6DqeB+WwzAG/uvTVdQQ5gG+T+3ldADjFi7IAcAl997qHMgZ4gSASHhGOmEruN3YsuTaIAwzC3VviwsMwtXzX4yvFZwqxEiNMUQN2U8puX2sOmguUuHWSz9rlUtCUq/waMk8AqTHnAaJwhaJc3g9cza3IP/BsmRc1lnhZjvIpzQA7wl/mgLkZz4G2u67MyKcgez4kdVI2p45t2Yb8vj0OJMBvj9cbr8nDDozGCHiyFgl5gsMDG78JmS4BU5ZJuAAuYEQoE+YEczveXt7T/k5AsHSBOaUkBLvrCLEzR27LaAfB83Vf93UN4IersV1e+zehBQCBbHkPABNeAGL6oP3qoRQ4F8Belkfg4etQJn1cbxtXYAzk8cd9U15CA+j96f8YGb85ZPxkrffdT6nxznHC3HyocQG324H/8iGMXYxj+5r2b2NiHChmAGjTRKnj1aE01fB7rD2A3bhPJYoc8OQp8hzgP55TxLTRPPWceGZKxWHOuGgb5UkOAF5Tej0DFA3HHeubFxRMni3jysPmnqT95kCO0H6PT3XrPJiE8ZjlI64p3utBbVuSHtxnPOMZzS50rIMuogwQwM7T8oEoAQGUCCMKQy25j8VDMSBkCRDCBTCWyUeuQ2G51pbPkyHxrgT4KMe5Gk+HPAUgxbpGBKwytVmcP9pE2Gk74cwidD2BXQtuTeET/0XdU25jqbHc+4R4lAU8eCQoW8IJU0m/Wceszpo12JQOFiWe+o7n2yBAB+TN5xrluK9Nnitel3UIgPsD5ngwRsZyDkUIAbiTF1PKcT0547mnAHrmk/aXAwnw+zs2k1rGih6LpxNmNqjxLvSuh5r7meAnqLri4x5m7m3XtetiFQO9K6+8shEaNQJKBwEmoU7IUlIIEMBQgpfjr3jFKybxw8XAljDTljHFp69w7lMCDQErcWF911/WflluxMn1Jaww1lktaafr8cR4UpZYtcrFe6CnPvwgYB2fSsZd22qIAiQRjPJSelhq7nUNYMeL+N586flnXpkHocz1XLaRw/juhTrmr9BOn3LbVbn2UkzMjW2D3RwliGdEWIebvpy7XX0bOmZszVX5KpSSpP3kQAL8fo7L5FaxpsfIww24u8A97mW1WYtMGQAiQYS8JUzicu24bVyjDfagd91U8AFqLBd0psI9HXUOfRJgEQse6nNfGfpA0eDpYK0gVk9fWaxef9z03LUEcE2MnAuW4uBaQMr6xQv384woT7na4hggMT76ZowoArXCXnm1hH/6ri19Yz5Ulvbh13Oe85xGyTK32gQk8Nbc3AW4R3vwlDLDO4PfFLih+DZlxJgBdvw3f5eiWuV4KrBqo3kZlvu67eV14+Ha1GqHdduX969WCfDHZBbUCG5CieAaI0ANbEqAJ4C5MMcEPaHowbckLSwEgmVKvG6KBTXWlwDFrusAFxAnKAEkYAXe+uBTqIC1y9WOv10JgV3lqpOSwtKWJQ08upQCdQqLOA/82iEWIE6AinfymgTgAE7jIJte250nuGvCI1N56/p1wEtbX/Oa1zTg6W1yvB6UFfOBYsNqnqKgdPF7qWPGw3zgwRKaoGxpKyXHd202Z4wLZSTmzVL1Ty1nqhJNGeEd65qLU+uO681ZcsUcTto/DiTA79+YTG4RIAUmY0RQ17haXdO2CAlioFVDYt6sG4DIGiEMgSXriDAfEwZLWnKEMsAN0i9xf20B6IAS7wLI9JNwdw8+4BlgrQX3qMcnAFYfN7W4dyg8cc1ll13WuPv7lgJSsGzgQyhfc801q7e85S3nude1nZBVl/X/eDdkAQKoKWSsgPQ65H7ufnyV4LnvhH+hLAGvfaVQkroSQ7vaTFmMXJKu83OOMQY8H2PP9Jyy8571OZAAvz4Pd14CgdQG5K5G0dwJrjGBDQSASkmslbHErLg+lI0y1gv0gaSYMpcsD0FffJpltwThCcCL9gB1MXXtkjg21B+CXZa/Ty7NucTroc+y+YEwIpiBvvojvj9UPgEaWe36UnpW4j5CngIgPDIEShQt9dcoesYc/7rqi3prPs2n2Eug5vq8po4DQPXU0WoYYbMxMic892PP/lg5Xed5Ba0CqJFBXffnsc1xIAF+c7zdask17jrABmiG3PlAFwhY91oSi5Y1W+PiHXrQtUEGv8QkCXDApk0AvhaE4l5AxGsATCkx2gmgWOksdsfwqNxgJu7t+gSqFCKgrIx1CC8tn6I0RdwWwE5Z5x+xfVZw3+YsrrEnOTDtmw9AgeJS45GQeBZKydz+AxbtMRZJy3KAYs8q97yMWfHmw1h4bW7ryBOKQ1rxczm4ufu2sxZlc+3Pkv+PAx50QDbknmVFs6bEfbsIMEuIsh68dGu7lhXXBxrtslw3ZvVZBsdd2BUPpGSwtmuJ9WDpn74r1xpvLvFbbrmlAXTtwRvn2ksD++pQFsHZXi3Qd/3Q8eijHcgoLsrkep9KwFb8dwgsCXFKTHgt2nVQ0k4dWX3i9kMElAM8upSwoXvjnDEMj8LQvIzr83M6ByiuvEFDc0Kpzsc8nF7L8B3KXVcJHq4hz87lQAL8XM7t0X1AIuppAABAAElEQVSsVcAF6GwdS4h3kYeQuxnYSf5iXbkWoMqEJdSBD3BoW+GOS7SrIQlffWvMgQUlw6dsZaDbdhuyxln4NcCiz661OuDMUY5AW7GI5DhWrzX+Q+7rsm+8GKz4Gld2eV/Xd3UCOG206Y2y5yoOPCDyBIaIIjdk0bG0JJJZLdEOh/hNEcFX84IycMUVVzShjZrx0C5lmEuWZNYqhUP9yXPDHDCfKFLGq48855sCYcZAO7+krx15fLscON8/ut36s7YFOACQWawIWLKc+rLlPYxvetObGrBmxRH2jnHvctsSAgCa+1xZyvbwshQAC6AaiklTHigLXbFlrmFWodgzoQTgY5/r9lIbliqr3FazfcIDcLqGpd5nsQZ7KRzW//Ne8By0lYq4Lj7xZShGH9eNfQI4CXJi6HhM0OJh20MyVk6c188xa821VjIA2r5rgUFspYu/2kOxotgZ6yDtlS/BXW9OCDPYyAdvKJbmi2tifph7FLhDd9fih3FqK7rBl3361EbPkyRL7yjocsXrj3HaBMWc3kTZWeZ6HEiAX49/e3M3YURQs7LH1sQTypK/+nbu4uIFuCy8NkBYasOSs21rGY93jGIgBg5I29YCYGUVepGIc4QS4FNG11IbQoMycN11161e9apXdYK8hDntGAP3GCR8AfT64C1cQ6T+da13Zei3Pd2BO9LvdcoNIB5qu3M8BHjbHr/yPmNWa2EDf3+uN84UpFLxUpbz5uGuKRQW7cBvf2OEr1zNwNEciTlFWSmVlpqyxuraxHlzjULnZUo8OEJAPFBB+qYvmyDK3L7yZRP9PaQyE+APabR62uoBu/7668+6Zdd9eQZQsI69CxwIcdY19yuhQdCzBllwBCPruA3u7mEtAroABdfEpjgSw7jW21af+whe66etAy8z+50DNpSRKcSzweofA3j1dvV/Sl36TMiW7nKgq+1zCa/HvA/Kxmf1GhcKxbp9KdsLTEorvzy3q+8xF4Uw9BuPzDGKBw+E5XnmVxcYmXv2IRDiKZXW6AtviPvs2iZJct/6Hu30qW2njsIq5h4eUFiE7/DBubF5X5blO88A/lHclENJ9myUxLM3FB4or83v2+VAAvx2+b2R2jy8iPVMQEm6mbtblQfVu6bbIB0N93CzDlj/seEHACEk++5RJsEb4B5luZ6rF/iwOrS/bQECE5Y/b4I6ADQBDtzHPBVRT/lJ6LHO3B9WdXk+vgMM9c4l/RCu6Fp3DPQJxTntB1TyFmqIcAdIQjLGinW3jnJRU+e2rzGW+AiE+/IawlNlzK1CwBPWrLmMR+985ztHE9DMBzkUEh29U32fydwD5v4AdBCAdqwm9KQMSr75gq94xZNhS2EeulIRMs/Tgg8u79dnAvx+jcfarfFAeuDEp9/+9rdPcgd7+CVYAd6+BxZAAkZgPQSQZUfco2xCowR5vwkgQpqgJTT6LIGwvgBjCJeapV5lO+K79owBneQ87nXK0xyXun4RqOHqjbp9EpjCD1MBHkAB6tL1Wpbb/g6UjOXFF1/cxF/7xrR936H8pvABXcphDZmvPD6sdUBlLlmq2DVGfeUZOwqTJELjcUjkGTp1ZN135ce0+6F/ntXI7XGeouQ5pSjim+dIKM+cTNpPDowHp/az3dmqAQ4AL8Irsp/HBLvrgRlXOCt66HoPvQd7CgFkFryd24KAe8QLAagy266/uLb81DYWv78xkC7vK7/zCozVpZ88BXN3XuPW7Ntv4GMf+1gDDng9hax80C7tryE8pqCYC9pTe19N2bu+BrgDn1pwL9sL6AEUfrDmpxKQK9+VPvX+XV3v2ZF/MgbI5gsqwT3abAktBUk55he5sWT4J+rJz2U4kBb8Mnzcu1I8zIS67GexQ5aHGHZYdYQbq5ol6YGm3dcAAIDxN5Vs9qKOq666qgF7QkZ7YkOdPvf+UD21S97aZWhHjdVGmLFk5BaMKQRddVBqukhf5RSwIi3fo0iMkWvlVuiz9gO4MZoqePGk7a3gUalRpChx7jU3CH7zz72+L03mMLc6oJ1L2nrDDTesHvvYxzaJqVM39PE8Gd85CsLcNi9xn2deDgoFpz3WUT7vkxUufeS5tczS5k1kTNL+ciABfn/HZpGWEc7+AIPs5xDCBDDrzucUcr3yauJ47XJlvBP6gAeYlJ4AZU5tC8VkqgsdH/CgBuBdy81OQZoaDqAs9QlQfAHQ9qDnxThzlNzl9ZtdSg4B6i1nrE65D6z4GkVMHWX81e8uUqc+8ioAOe5/YA2YjZXMbCszuGKBQ0nGD9iyogGeOUER0j5KSNwr3j1V2SjrKb+rz9LJdcA9ytNWLnuAp9+1Iae4X9zfHGzzJc5v4zOUMvNJ+42J5wj/hRB8GkfPCTKu2iwUJ7m1a466f0ihdY6Cbm5Gudvoa9YxnQMJ8NN5drB3ELy14EDwE9hhKQI7QhoQE9hzBSwBVAJ7MJMwUvYUIrxqt12Ncl0fSVdxrO8Tr1jvhBlgnZKxj39jCguwsusexYungEvfMUIXrwliwpQnIVYQKLPGg0KQjwE8cGCpASr1lqQOx4C3P+Mv6UrIQhuAifvc39UegIl3PDSUA65cZUwd43abtCV4UZ6b+50yw+Us+W7K+KqP56ULIOe2xXgY75Kf5qC50PaEeDbxQdvlcnQph9rhXslxlETzGP+VKYHUunlu+PbYU/iMFaWvizyrlJp1xrKr3Dy2PAcS4Jfn6cGXSMgQXF5eEpYuQWG3LFYZgUHQLkmW9YwBYrs+gopgBjY1oM2tqA7A00UsEpv/hEDFB0oES5sVL9xhY54x74V2EYI1yXCUHWWeObLi8Vbd7tcnFjVhW5L2tAVyeT6+A+IhAWx8ga+6a0hfuHWtZgAUFJNacMNvYGR1hwTQoXYNtQXfKRVLk9AHJcv8loBWM27aAIhdCwznkjlmjK0OwScKNb4qm3VMmTaW+OY7oBcakFxY007PL+8QJVHc3DNg/JRNgbQiwDnL5yg7iDcGP5xvJ4Kam3Jppj6rc/mT963HgQT49fh3LO/2oNt5rRTgBIVNaq688srGIiOkQyCsywSCa24sjyURW6JaPlZaP9EuQokCATz7Xs0KOCMmTsAhVo8331177bWNi57AAwIsG8KYBUdAI4IXqMtpsAEPIYp/fTsKNjcV/5QT9RaHz/mqjfpXw3cKif52EaWC8lAL7mUZ3OO8GWLPgKOWtNuSQQA21Lah8gBaeJSGrptzzphSXoB9DXBGHTXKVlzb/tQXFjhwjXlUXuOY5y6WAZpX/ig5U9qoTPwH5Mq6+uqrm2qAtHlqh0KAbj6b1xQOCrNn3fOCNzwEnlFKWo13quxHft8dBxLgd8f7va2ZICjBPRrqGAFw6mipDaHQ91azuL72k/t2nTgmAOd6FysGqFzdQCxiyFzVLEg5AH0U/SlBVsybkKWAsJr0nWIDCHgOnAvBrA0EJlAN64bl5Xhc01d37XHl9SXulWXgw5B7Xhk1rxgtyyy/y0eQYAUMpwIccMJDytMUSx6oLO01KvsE+IDtmSNPSpuMp7Yax/Zz0Xadt+/t+q0vQlzc420PTdf1jgFo7aOYUTjN5aFEuL5yeIbe8IY3NEsneYyQOQro/VHcKJDqo1zwWnk+/XYdJTPpcDiQAH84Y7W1lnbFyKNyDz+Bx91HwMyNxUd53P1itHMEZZThkwAGaqwMQjisDGAv43rM6mV9l+AeZQMxFqusd2209FBdNeBEGFIEpu4eFnWXn4Qr4Tv0HgDXW3qnvX3WOzf3uooZ/hp71mTtpjtlXygIPB0BMOW5vu/Gb6rV2ldW13HWdFvJNC95fgCfZyISyli6lGC8pPxNJc+PcMdU5Ug92gGgJQYahzlKj3ol2NkfoR1eMMcpxiW1f5fn8vt+c2BaCvV+9yVbN5MDLBOafVgnLMU+IvQQYSgTFzDOJS5vQmZJq4CAAr4AzicBVrPenEIARNvkWFjg3lo3pb8AgaW6hICkULG8h0BB2yggAKmPgNISQEnxMX5zFDO8pjCxEGvJGEy5vrbc8jpKhLEy5pbPAXdAbsMormqKope5eFaEhSgpU+aDutz7xje+cXAcyzZ1ffecCneYE22A7rq+6xiFRlLhpnnaVXce2x4HEuC3x+u9rYlAs/1kWCgsK1Zgm9rrXgk37kKCfirF9rNzAGJKXYBe3HBs21meCG7+NhHkLDaWuPM1lntZBrClCAVvy3O132OZmpBBH0V+AFdqSeVv32uSEcv7+74DGWA1FArou9dxcd0p4KLtoWgNlbvOOeV7FihJvnODG/uSKAHCQNzrcgmmzAf3SmxcIo9AWXIgTh2Fy+aSMWgn0c0tK+/bTw4kwO/nuGy1VYTZc5/73LMWPFAkOCSUcaGzZAAd6x1QscD8BThb4iVOVwNiymYdAb0hS3NJBnCjyhaWidxHBC+LSKIdq4irX4IdlyiXqv5NEeZRDx4BX2/Fq+FP3BefeC+zn+XYBXC8H5QxY6DdgFBcl+uWK15SHEsNsDu+hPUebeMNWMf7AmBqCR+B7yZJ+ea9fI2xMAaA5ebGg1oC7DwCSxEvirk5R8GONsiJGPIKxXX5eZgcyBj8YY7boq0OwVkCkO9hOaqMIAEQgJBV4zdXvj8AypoBoIQ2wUOYEYIEM2AE5sCKksC97/5tk4Qhlry4cVuosUjtMS6bmFs9lBh8sLRoHTe7MpRneZFlWJL1xgjPtAN/IzENz4wVJQk/xeQJdyDrHIuYdSnG3WUdU1i6lISxtvSdx7OYO33XDB1nPSqjnHd917vGvOE12AThH57zSgHuGqL8CTXwbLmXchVKb/t+fD9zlMDnmiVJ0p1QwVxLXN6JfqyjqC3ZnyxrWQ4kwC/Lz2NXGsFKOAGM9lukJFoBGnF0gjH+gCTBHcIsQJ4Q3CURYlztBCKgYH0BekKO1YZ86qs+DFn8U/sBQIAxMKAgxQYlJRC7hhWufeqnOOGdYxSE4KfrIlYc7aBMUQT89ZExce9SpCz1ziW8rwV4cwf/apSjOe3BY22R5xB8HitH/ymswBXQ4oXwlnlDCSt5bZy7kjjH6hg7r728DuuQMuYuU12n3rx38xxIgN88jw++Bhq+d7cTgG1iqUtCsisWgEfAZx2Lt13Hkr9D6BK24YkQWxcy0L9NKyOUDJ4MngR8BSbq1S7WsM82OIxZVxQwmfpD4I6HQKadKb4Ob5W1zioKSkstGRd8m5O1X1OHREzjUOsh0B6xet4q+0MECYUYB1sQA82Yb8Z5idh71BOf2oyPnjfzaQ5RUKyIiLbOKSPv2U8OLKfO72f/slVrcoBVYmkWQdJHXPcs0lrLp6+cmuPqUB+rg7VNIA+1ratMLlihBtagkIIlSz5ZiazmbXga1MH7QSli9QEDv+eELwCH/owRQT6WbDhWRpwHBhLs2klocb7mk3cIUNYS3qwTb+6rR194TFCtR8L1+t716lWKlDllngYpd1PPh/rWUah5UpYM3USf83P3HEgLfvdjsNctIJhqhDiLmKAZszbX6ay2ALNyDTGrN5YsjQGz+23x2dUfSWxCDazENhHMIQR9hrBWXwCyfu/CAtI27uEaAU0Z0mZt1Y91iMUrYW+KFd6uL0IQ2mXuaBug6ptDjsuH4DFaklivFC3tqV1XzjU/lIiHv8qSm4LW4dNYX82BKYpSuzxt25Ty0a4rf2+XAwnw2+X3wdXmwa+xkAHMpoUEQSQPoKxHvSxyCWSyzYcStgAzKzYS/QAKwagMAOOcVQMhLB0Xp+d2BaLc0WXdMZgRNwcUAF+52yJu2dq4tLbLmwA6FJ25hD+njuK+U9+w167POHC5Cy8EX3kFTp8+3YxJVwIfC17dEtaWIGNXLneTWGqsx4giMpZBbz6ZsxS/Tc6JyJMZa3Pfee2LOd93TR4/TA6ki/4wx21rrfbwA60xYl0NgevY/e3zbYsHAFt7HEDQvh7YjFmlyqQIAAnfWY52uiOoxb1ZcdyqFBpl2avdC3dkSruur26WrGtvvvnmxmVbumbb7Vz6t35Mib0aI/2nyMwlb5XT53WW3AE8cwbvubslP1oVoD+vfvWre2P7gJUVD4jXJfP69JEyITQSJIRR/o7j7U9zYcxjo49xjc9NgTw+js39dvvL3zwXSz67Zdn5fbccSAt+t/zf+9oBn6xgIDdEU/cWVxZhTjABqABaVjNhQ8hGTFobgC5A7iNlAdZI9CuvAyLi9SzFLvd8XGsjGUKYm16ftYnVX0vaoAzhCsCBtmEZdVm6TeWtf/gKGO1Db8kgkJIkNoWMMxCk+KxDygF6xhaP8Q54x2ZClvsBHufbBNAkRZqTNbkH7fv9Nk+U0Sagb6WDMMDQ2FNuKEpDmfHlKgzzinciVmu06537mwfC/Ma/uSTcso15Ord9ed98DiTAz+fdibiTEOZ6BsRnetyihPKU5C3AQigR4pLz+oA7wFb5BP2YEAprKQaG0ONWlyTIXYqUSYgDRed5Bkrrh1C3GQm3PBCyC56NYmrCFFGvOm1HaqMgRPHQdn3wB8iWspiU0wWC0ZbyUwiDMgWchDWe9rSnNVa0/vZ5J+J+fLN8D6Dccssto9fHfV2fABqoANEuvjqP98719c1YR0gGyHeV01W3YzwFNi7SlzYZJwmPNn6y53ufN0Z9Nmzy2twuD4owQrnXvjG3kdLSAC/MMaRktPvX/q2/ZTvb5/P3YXPgDkcP9rI7L+whPzwEtP0pILSH3dhpk4BhxEvDsmFhca8SZoRyDbHQgS3QrXXxEo5c66yut771rZ3VuOaqq65qrD4XaCNrnVtf21lTNo0B7JQLAhpIaDeQ1CYKR3spk7fM+QPYXYK8szH/dxCAsJTtY06RQLwSBD2lCf+WIFuWShIcIqAWrnUKjnACXlCetFNCGPAplR3lOcdSdT+w1ZfacetqD0WBYmEb2DFgAsLi40MeCvMJCMeb1voAWb3kgLmqjzwX+GHsnWsTsagsqyvwxti71viZ85QA7fJnTuqLe8wn4YauZ8K8o9Sss7SwbKe6KKDGZIqCU5aBJzwZnp+k48OB66+/fnXDDTesEuCPz5huvCeECEHnk+ZPuBEybcs5GhIWst8BjhFLnyOQCGQgw8Xc1ktNaG3SFvU6/5rXvKZxSQOnWBLXBQAEN0EHeAlf8fSyfdza/rzgA6BMIYqF+ikaJbGaKCRLkD4BjhJ48QI4AyKArm94gP/i7wBRwh0+AS3WOQUY/0KBw2tgaEkikKNg2RYX/8u6avsARGwFTJHiIakhYAnozbMhMubaqu2Rle8Y8I5Qj3HmfSg9RnYXpPjhVx8p03zAG2W0FQ48dR4vXYNv7WuibH1vz4U4F0oI74Y2owhZ+cRzioQ/fZOLYOzX2f5W/839pOPFgQT44zWee9UblgqLWDYyYCe4CC0AwpMCLOZSvAqV25yQAzoEnfLDEhM75zrl5iWQAXbbMu2qn3AGyKxrS/FKkHdMXZZGEd4A06c+6u8Q2QQIP9p5DGKy3i0PiNchwAK8AYc26QOhTfhHbkP0BT94DgL4gQWwDf447w8ZOzwuCQ94JfC0Nnvf/RQa1jiA8zeFvBoV/4dAuK88wGi+mXveBmccSjIGNqUZUyDKe9b5TlmQC1LOBfw2ZhQvXhQKFTAvlUlz25gZ15gvFAueEOM/h8xhYYa03udwb7/vSYDf7/E52NYRTCw8QqpNrJKnP/3pDXjOBXlC3otjWKXAB6CVwhlQiS8DBN+7NiJpt6v9mzULjLg+A/hcA2hYS0D5zFE+AkvQS14s3WsDR1mmpD3liRVz+ZbEumfVritkATjeAF0Aqp7wmpT1ld8Bi7aFh4NV3wb08vr4TkHg2ne/8AAloY+AEivcPUI8Q3zqK8NYG/M5IQ0g+NrXvrYBcUph2/NgTgoZqGNbBOR5ingT9En4STgJ/0MRG2qLNnt1sXIonDVj1i6PwiOZcA5P22Xl7/3jQAL8/o3JwbeIcLrpppvOi2OXHWOJADRWTJcSUF7b950VA2S5QtvEohZfdU2fK7R9T9dvLnngJ1cgLClWKG8B0KDEIPFpMVnX9REgFOckiF1XKg3u4apfN9FJmygflgvWgETZVkqShDXAwSKM/pbXdH2P2DyrPtzi6uYJoXSxNPWVlQzM5gBR1AuEudKnEhBElB9zrq3wmYvGDw+2SZQvSpg5bMzmPAu8WeaofIopY25crrnmmm12N+vaMgcC4HMd/JYZf1yrI0iBQztJrd1f17HkWHVziZXaFUsHctzNLHDW9zpEUdAX1m0QKwv4BWg4TrB2KRpxT1zDjc/S5Vlo01SXdft+/QYSU7P9oxx94l3A02uvvfZsqCPO932yxtXJYyKezwqmJChHn7yqFqi6bh1wV//c7HMKpT9KFiWGYshb4o+yFqGWvj5u6rj6zS0Kxxxw1y68N26AvjZ8QSnjdUo6GRzIZXInY5w33ksWSS1QcU8SSABhLH7d13AufsKqJG1gnXAb11qh5f3t79a02wYX2IeFpF7udjFT1qn4unj9GAE97uFTR1ncAKdUEli/ygdCU0kbgLuQwbpE8dIumdkSCqPPY+XitVg//lO+SsACZI6vS5QtseZaIOuqD39ZvPI1kLbN4XlX2VOPGTdK6NC+DDVlmuvmE4/T0PMXCo75t81wRE0f8prNcaBTotCWLbuhIXpwxR5pvrTdpORAFwdYkbWA4H4CW/xvLsCbl8CIcAuiOHAHA7wlSPmsT67hyBlQLwBTD2VC9nqNdaksQpYVrzxKQxAABJJTwQa/AXuAu/ZQenwCL65y5eIx3mi3cRoiSg0gFWOfykc8YbGXxHLXjnUJb9YB96hfOVP5HPcu9RlJkVOSFIfqNv7ks/GlOJQkB4KnwJ/nbduhiLIt+X37HDgH4Amvn/7pn1795m/+ZpNdKTZF2/uVX/mV5mEXJ/y5n/u5jN9sf5z2vsapFrPr1xH8oVCUAA9EWclzs4q7mExoiucHwANLz0SN1V6WFy5qFlsb4Ln454COvnLRei5ZZgCwzIpXp3K11zWeZwqLWH0bCMq2SvbiuQDYZEINudaYGIOS/C7HqDw35ftxsjrNoTKLfgofuq71LAmReFmSOeG5ouDhWSShLqEcddWdx/abA2cB3taTL33pS1ff+73fu/rJn/zJzodSjPVnf/ZnV7/927+9+rVf+7X97lm2bqscGItDtxvj+nVctwGYUW64b8s1znFunU/lAc8gVvMcKwjQAkCu+nbmMvCdWqayuNSFC8S9gTJlpE14rE7Az7oG8lzwLPU+CxIvuX7lC3jma4iLOJSg8nr8AzRAvg3+5XVj39fZO3+s7G2f500xJkuShD37RBjfpORAcOAswFsPaeebIXIN677GJTlUTp47fhwAUNzDLMQxIuxlXrM25hLAbHsAWCnrgEhXW7os0DkeAiAHZNvlafMc8GKBiyezBsd2sYt+BXAD4mc961lNElxf3NYzTrHRbnUMkZAAJaPPpR9ekL66hsp2jgI0VYEcK3NX5ymmZXhmqXaw4nlbjMMuiQJcKu67zHPYJR/2pe6zAO8hqqU5y1Vqy87rDpMDAN7GMlzQYwBIUQQybSt8Ss8pCKXrF1AC/E27IpU/1r92P9wTCo3vwEpMFPD5BKJTSP0UBSDfB6pD5RHAdvmTW0Mg971wxnHP+tBOaRQta7Ijdt9Vr/t5DZSnvqlknXi518HU+/fpeuO2tJcp+ufZM592QRQMCvsHPvCBcxRZ6+3tRGiOT/VS7aIfx63OzuwXa1avvvrqZgMGS0niz4YRScmBLg4AW8AjdjsEss7T6rmUu4j7mruXe5iwAoxdxOptW/CAswT9rvumHlMeoRxEUA3Fr+O68lPWNqEeMXHlKccabC72qW0G0Dwl68RxAa01+ZYr9ll9LEJJWn1EYF933XXNeu6u8EDch1+WL+pve8zimr5Py/baqyX6rj2E4+ZAOZ+WbDM+T1U+l6gfuBt/uBG7IjoW437T0d4YzjuWtF0OnLXgy2q/4zu+Y/WCF7xgdfr06XOSfwijpHkcMLnFTT3gHkLC8Ti5r/QHGABuyT4+gZA+AzAeIoDtd2wSU3ISsMvcxhPCAIj57kUv+CV+LHaJgGOXx8nxPrAq65rynYJRru2XTDbVAuNKDytZG/XDVq/+JPCxULm5WcM1hDfuXZeUQyCL23YpC+LE2ttF2mrLWmMpwWuMGAnmgQ1WCPwxS54iwPIzB6YqQGNtWeK8OYl/nmuWM2WIgkkZ4W3o49smAXiTZQ/xTAhH0mkfgDvuvN0Iu57bobLz3HocOE+imCQE0Ete8pJBS2y9ak/W3QQlFyZBGNYfocVS5a6uFez7zjXgqi8Ss/QNoBPQhDmBZ9mlOHSbnGPdAa0AwrjmzNESIG5iHiXAQJACiy4BSskgYOe40aO+9ifrmwAPUn5XMlmcb39SCAj+SGjzu8w9cFy82+Yj+jkGZniJJxSlJUhc3DgZu1KRUTZL0/i1iVJy6ig+bz7XxJPDqyNXgLJD0MdYt/th/uB5vD1wX56NUNApdxTQWJevfXhnXpibdk80hraBjeeh5B/FZVN9Ms+GvGdlO5b6bj7arKcP3KMe5634MBc21f+oKz+/wIHzAN4EkYDzG7/xG6tv//Zv73zAv3B7fqvhgP2iWUolEZ4ylQl3m6X0uaLLe/b9O8HGCkdicSXx/tDe2wBPKNmq1Ss3S+Ar78WjG2+8sbHoZAtzz3cJMpYTAez8FBAu6yq/6w/BTTlD2mqcahIJXU+Q6XdpbQNHik5JlGovQgFqgLMLVHl+WEoUxBpQLcsf+46nYqVtgHdfWIUUKsBLcdMGQn3Mk8ErwQqnuNjUhfLmz5ptMXkWsDqBvP4ZP6CI7108GOvHJs7rPwVdHsGZAcUKcNtBkcKuj7aPpbQ5RvEM0jd9rJ1DcV/N5y6sY2NI4amh8MwlwNdwa5lrOmPwBO0LX/jC5qH3gMZfxuCnMd3kZ822wb0shfDg5gzLvjx3iN8JaUlXLPJSSAM54AjASuIepgD1gXtc6zwBaymQOroI6BOe4sqlUO26tuaYpEFgGu5keQEs3gC9oTIIfC/WoWiEBwDQAbO+rHSgaa60rSHzCMBwc5onffcPtWfonPbxLLRJH0IBo4QCZX3Af39dPDYGgIb73lvaKAQEuvuCKDmOCcv4bgMtvAWGxq+cN3HPLj6NA1CifEpmbHsbyjZRUIy17XmFqp761Kc2W/jG2Me1eDZn1UTc3/cZfO87v6njnoXanILa6zbV1pNY7nkWPCb8xE/8xOpHfuRHzuNHxuDPY8ngAQIhrL+hC1m1AKwPuIbu3cdzrBQCm/Am4Ag+IMUdDaAB/e233940nVVYu8zL/XgKdPqIpQkAKRkAcy5F8llY30CL4I7fIVBj1zi/KQIsUq5a1jhLPZQ7508dKTdjWe/aDAyVi/RX/oE179pAIVyalNkV8jAfhesooNoPiMkALn1t1F/tM7YEvXFXDhAr53L0XfudozjsOwFsbaVUTQEmSoHkRbkj5rrcBi8aKuesOY8/Syr1nrUxxUjbYrzM0xg391GstNEY+qslY+v6tlLadf+Ucrvuz2PTOXAW4E1KE89DzPrqIxOEJf8N3/ANfZfMPs5tNSXZaHZFW7qRoK+x9jQHeHlIjwsR4oSGP1YcAUAYEJqsduPMjU+QThGg3MJDmd3qcB7fuUtrN2op+c6S9Ay8+tWvbtpNIVEWNzPL0z70riEkKTAxzgQllz6PFyWjdF263/we81TgBSWCBYw3votdIrwLb0LZ3nW/Gxtlt8kYaa92IImT3PmW13HpAwTjW0NtK77mninX4Is/8w6QmAfrkDF929veNmlulvUZM0om/hjTEuCBOwVgztws64jv+mzO9QE8IDdXzxx5wIQP+hQLbYQBPFeeobLNUVf7M+Z8TdjIs9HXxna5+XsZDpwFeC66H/zBH2we3G/91m9t3GseSmSCEDS///u/v/qt3/qt1Yte9KJlaj8q5eUvf/nqZ37mZ5rJrh6ChpLx3Oc+tzk+JMwXa8SGCpoCXPp+XIkA8hfkIQeQxrbtwoxr+j5reErAAydCnluZ9dsn1Mp6tJF1KhHs9a9/fQMYwF1iECtWu1llPC5csX1gqz79cy1AdB/LlhJdQ8IAEgmBROkBorSsC1xd9SuzSxElkNs5E/jIquWCBvK7tMq0mSIFtMJLRGbxFJAhQgAhw7r63XdMH3lfauZaXxmO87xItms/2+YZpZfCFCtDhsoZO8fbZJ62CX8oxLxGNaElxhug9sfYMH89R13KX9SFv5QVYzBkxeuz8uaMR9SVn9M5cBbgTRJb0L75zW9u3PNeAekBp23KlqWNWvPq/FKg+4Y3vGH1/d///c22twSGB9MkMxl/8Rd/cfWN3/iNTXJVTbeU0ydwx5KBasqfc02X27OvnFpLqO/+QzxubhHCU6j2etYH4CJ0WOMEELDtcnEDKS5noBAuaXOJNcNaJZyUQWCy4sdi4K5TF6/M6aOlpgS8OG4tUQhYXACgJICDZ0sTXrXBjCD2nFNW2qR/kgKBF6AaAoD2vfEbf/Has66/5AtPAV7XkHE1DpSN9vON7wwSOQBkylQlhOelrdjUtKl9jT6SnQCwTWSDZEN8NNZzCf9jCWJZBv7og/BXjXJb3us7HpqzVjx45oZ4SAmQUKgv4e0pyzM/yPcp8rC8P7/P58Adjh7W/+m63QTxkHBVcRduYnBe/OIXNzE9+9+3Sf0e+lA02ufbvyVqdU0u111xxRWNO5jFsU0CJrJp2xp8uw2ACBAspTi1y9/n34SPN7KZZ2ME3IxlLcgrzzwCAIQ20PJnXAhfgkeZPrnPgQ1hq3yxZpa8eR/AIzRFAZ1CxpZ7nqu7tMaHyiCw8YNVWhLwIyiBWs9jW15e/Z1y49ko8wNO/V8yJLduH+ElAOhK0Ou7x/Hg501Hyx4pVaxPCob+GQ9/QH8IVIzrG9/4xlHwoqABQeXVEKXBfDFHKGk1ruehcs2tK6+8svPZNobmBz7UzP92PbxNXbIZb9Rrt8Ix2dMus/1b++QQ8EgZ7z7yPOEbhdCzpF48ZyRScMg2bUraDgeuv/76Zuv53hEjkAhFk5B7EhE8rJqlyMP3ile8YvU93/M952nu3Jm0SNphDXH/9NHQxOy7Z4njBJVkK+/WHiJu5E0oUEN17ss5PBI/BFpjZL64fgoRKgAIf4EzoU0QEUBAhUAnnJwHcgQmYeQ34YZcc+uttw6Cu3nqj1AjYNVF0KlDrFXbPTtlXL6rH+YqqzPi7uU1gNFz6byylyLtKkMlFBxJkmLQQ4RvXNks0Zp4bZSFN5IPKVEUiJAzcR4PuYgp+MC/bdUbD+vNayxTz57xrAV4/eHtcb1VEORQrWIW7S8/zQVj1qW8x/wCoMbbSokaxU3beFwf9rCHdT4PPCOep3XBXT+0h5Fl8yogH20u++h7zFvhrNIbREkbUtTa5eTvZTnQCfA//uM/vvrlX/7lZjlHqXV5Vewzn/nMxVrwvOc9r9EyWAtcPASNh58l5cH6f//v/w1qjYs1ZEMFEUy0bA8JId/18AI3SVsn+SEArBHn7uKR4bnssssaYGsL+9qhIxT9AWGCDziVdSnX+XK+K5uAtl9Bl2vfeVa+pEFCDeiav8aSUmFes8y42v0BzTGAZ/EA2z5vFAXFfFkK4AEzhYG3Dun/ox/96Ka/2gLshogSDsCGAB5P9EfZeAwkXC+PoYuMDwVA3XJxwiKNa41Fbf+NMSVizIJUp4z3WPVgPF/5ylc21isrvkaZiPa1P/FniCgxFEvzRdyea50S0yZz1xI74E4Bbc9V17uP7MTzpQgPGXm8NWOhxAT0pbi+TDmdAP/rv/7rjatl0y5tk+V3fud3GgvXw0UImrgE2DOe8Yxq630ZVmymFAKNG5IQ1T/WI2EXVpLjJxnccV3/KUKEsHlAeBO4juMPSw9gLsUnY+Kvhgj2PguOd4ZiYMlfl0BWPvC3hlx8EhHSQwIfD0p3LSFO8cUHcwYPPDc13oCmwpF/QAWoAVFWmLi635QMyucYwCsegGpf21OGJ8oCkAATz/HMMxBewaHmuedVr3pVYz0KIwTZ+GgKxXwiW/qIwideXhJgYw0D4HUAvuZe40qhkuth7hsP98W48FyZCxSjPiVXe/G69MaU/Vnnu7ZQPnhKuxSLdcrOezfHgU6AF7PyEG4a4KNbJrW/40rx8AIpDy9yLB+UL4x4uPi4ewl2RGDhUy0Yf6G05b4B42hPWSqPA6HHpTtE3K4ELhc9axcwDwE8Qe46c4N3gLILZIAU4W3+ABxKD0utBjz62gfcgR73MOAAvgA9rFj3USr6vBdRLotTu9oAT/HhjQvSN9fFHghxfOgT8LqeizgAemqfjZ+5NES8CuZZe6z1v50LMVRO17kpzzkeBh8pg1OIQgWEN0U8WZbQmX9Jh8GBToD/pV/6peaBes5znnPODlS2rhUvTprHAZr31BjyvJoO9y6A7m+bRPh3xRYd77JgWeWur91IB6AL0QDQsYxpwl3/KQSUbDHktruVm583iJIxN0taPFXyn8RBigQvEwFegpl6WOZjAA9wATcwRL7H0qxyHNWpfKA9hXg0KEkB8PFZWwbg7hrf8n4KDiXiTW9601llwLbLXOI13oayrPb3bQGiuTU2v9ptm/LbuFE+t9WfKW3La7s50AnwP/ADP9DE4bhNS3fQFE20u7o8mhzYDw6Ucd0+4S+U0rYWPQM8XFOFPiucpTu2TannTXIZgByK14vF64OsekpA6dYf4rC+8gp4tq08oUhQQLq8Afpeq5BSAigDCMCfOXLbt4n3oit5sH1d12/AxUIFMpSRWuVKWTyRAHyI8J3i4G13XPXhOZKpP2b9D5XrXPBl7Lp1zmtjqZytU9bQveYd/m9bCR9qU57r50AnwHsIuel26Rrtb3KeSQ5M5wDQ8ccCAbasYkJfzFt81/f2fCc028KdsGZZK2sqEY6AtY+AKeH5lre8pSqOKhYN3FmawFg4oM/9D9j105Il/aQQcEfzLLSVmGgfBadP+Ylr4rN0bQNi97YJKEzlW7iseRm8b5wiAYTxqR0zb9fnN4VMUlppqHRd55i6eCHwBy/Nk65+9N3fdZybvUu5wAfKSvBY+1xX086uevC/b+y7rp97DP/VlQA/l4Pbva8T4K+99tpmjakM1qTkwCFzgDACOPFHiAI6QE+JPXNkaRKqrPL2sizg0AZ9eRRDlvUQrwhgAh2QtN3UgJQL3/KmKUlSgNrmOwAQ0GsvYAoACdACNIQz5Z0noQa4CPF2O/v6VyoC5ffyesfH6nUNi9sYUb4QT4VxtJxMaEJfJADqp78hIsumgJG5YIkeD8FYW4fqjXOWspUhBeNizIyDvAr8VafESXOQMhKhjiij5lM5fYpazf2113iO2kpv7b153fY50AnwJopd6+JBi2a97GUvWz372c+On/mZHDiHAx58c4cQ851gZZXuKrTD0pZ01F7mROACRDudxXpqYB/LsghLwAhsCHux6SB90r+5hD9dwCk+DVC6Yv41dXHP+gPwYqSnjhLoACOvAUDHC7+nkHIoQjVUKkL4q49AuSS/XQckusiYyG/QVvVauleWAdS1iRKEX8ITAL/L7a9+OQbmnrGcQgBWMllXuVPKoaAIyYTCoy/mYju8Y9wpf/4kJZqXY8vRutoxdXy7yhg71qf0qNsffu/qeR9r+0k83znzf/iHfzjfJncSZ8MafQaK4qQ2xSCgESFLWLG4fN82WWfdZQ0DGEvfWOKsQgJXmwlgy7IABwuSYLZ0CWBRWAg3n3PdqNF/ZZSkHt6DvnXh5bVj3ykf+sWytSIBUM4R/PooHNG1VW1XG0pAotTJ8m/HyVmu4vBllr6yALBNtPDBqgSehi6yhDKIMmNc8O300S6QxtO4mmcME4oZoJ4zVgAKwJsTAHkOaZu9G8I97/ng9hcSGSJ1WlJpDpY8HbrHObzbBrCW/DTX8NxYmG9l2Iuyhv+7eO7HeHWSzncC/Ld8y7es7BPv4Uk6ORwAPGF9s7TKh7mGC95TUGr4AFM8WSKXmOk2BJB2Aghu6y5wL/sBcCSaARfZ6NpOEPtuS9xor/azvP0muENhYR2X/S3L7vsOzEoPACCKjWX6gK2vrKHj+qH/ALXWCi/L4y6mKNT0DxAFr5ThO1ezNpRWsHaQKazUUHJca4msc6WnpGxL33fgEjkIVvdoqzk7dd52lW+cKX+UirIPXde2j7lXRn4JbsZ2bElllAMsp64512eK1abj8OqgTFBEKH+UljYZX3yzsZO5XXp32tfm781yoBPgCWOaZgL8Zpm/T6UDY0I2XuEqHgwcSiHV116aO8u9DwwINhbxFIukr66x44BD8hW3dA0BMSAbS7jE2FlvwJtlohxAFUS44Yu/SPSqtfJYxBQFFqbvQDSsnL7NdKLeOZ8AXn+mAjwlRDJg7Xp1vMOjcNFqK8uVFc+SY7Hrt/HXb/wFYMBdjLy9Xn5qX7nyAQ5FAbguRUBTDN2n9npGxgjfIpRgriBz0hzpez66ynS9nArzo4aA6JSQSk2ZXdfEfLWNsRyCIaKwmYNTvRFDZea5aRzoBHhxo2/+5m9uBB/hF/TzP//zq2c961nxMz/3nAMECqEUgoXg7gJs52n+4tFBXgDDKqKFl9ZZnC8/CfehZCdtoARsA+ABCQtiCgFAQEQgW0IGbPsUBMLaOX/6IysdiJbu4766CWzgri4COQAAbwDU0iRkMrYsr12nsZZ/w03MQh4j4Kc/6jKHKD4BsvoYypA55lqEZ/gILIDz1PHqahOFzBjYaS3c4l3XTT3GYtVe8wJgmSv6Gc+U8vRXPykuvDtti9XzMQaG7Xbh/ZTQirlkrDehKJZto8xZwlnbH3KB8g/kY16U5eX3zXKgE+B/9Ed/dPVDP/RD59WcFv15LNm7AwQnkCOEWE4+CRjClbAijIGMhw3gIy5jrs42ccERGmNWBOESwrtdRvwOMIvfm/okeKe6uoGThCh/3PMAt4bcJ34vmYvVNgTywL0Ev7J8ba6xDst7ar4bd8oH3psXY0T5o9RR9Gq9EixWyg43NmXQvOoS5OX8MA/xi4ek1m091nbnAbC5HRsR1dxTcw2lB3DzarHojRfwxVPn9A2ox/PULtP1ZVimfb7v99Q5oY2e1anzv6/+9nF9lZPSzq1oX9f+zYrnVfMMlPOgfV3+Xp4DnQBvP2qTUoaqiUmDzYFZnvlLlwiYrI32AAKfNok5s3SM5amjLGsWB7ceQWW821RrQQAGrlcCu4sI9CWtqq46ymNTBSOhqI3eGDdHEAtniTUCuK44suPi/BSvPtrE8wXYjatEx7C6uoDe+FH8hAw88+ZIDeEbgKfkKNe9iCIzRpQP4aCliVIqHDSmlM6p1xh1KS9jZQHGtlU/do/zXd62ofvMYc/0kkpTWZ+QFA9GrVwo7/Vc8IJsYlzKevL7uRzoBHjaOBe9icIN6WHknvda16T95ADw4O6sEZqEvpgiQe6VmASJh7dtgRIWNULGNVyjFIgut646tmXBq4cyUWuFG01WGQ/GHHCP2QBYKMaUHCAALCk9eEPA86bwEPCoOF9ae87X8Dnqqv1Upj8CmQKCN8bcXGGJSYTzGzjHpjm1fANYT3va05pkxpJvQJ4FaRvdITBk1eHF0kSx5VHYJyAx1hSoWsUJT8yVco7U8IkCQuGKTXpq7qm9xjNFHlCC55AQlHmyT+Mypx+Hds//BsVarf7u7/7u1dd93dc1E1IS0utf//rVT/zETzQZx61L8+cecIBQppTVgHvZXMLwda97XRP/5T4jlAECwUL4szprgYci6FXCBFm4K4GIpUIUik1YqGVf4rv21liQcb0cE4KnNqYY97U/eQ2AuP7iG8Dk6raK4Oabb26sW6CmLopQ6WXQZgJ9aeKdAe7axX3LwjPOxiN4pD3WlVMOa8GdsDdXWO7AtE2sPF6kvvL0vSv7ul3O3N/cwfq1T2Se4X8t8bDN8XoBUGGWqcrBWLskMDL01uHrkAdrrP48P48DnRa8pUMEf7iVaOrf+Z3f2QgrllrS/nCAAAfuLPI55KGz/torTWn/3JssOqAzBZTjWoI/wItlOkWozWl/+x7tZpGzpMMdzZLmHtQWc7v0MojZ9oUW2mWP/bZJjbrj1bBxvXYAd394zFuiTsqQ9rKsfQeySxJQAXZi0ohFbb74TfkQn3d+ClEMKAksdUDeRwBcn/S3TeYHJWdTpGxgFPJrU/VMKRfv5Wp41ihYQxR8i2dq6Nquc+a7JX6S2/BhXVIWuTB3E6aof6zfcV1+LseBTgv+MY95TKOdl9VY42yQk/aLA8BqXWuI+0wmM4HCAmCNzxWO7nO/v3XAnfWnXSxhCV88SVy/NQKL5UqYIm246qqrmjKUc/poU5SyXQCoywqdM8qsGyDOWu4jfAbuxq3Mk9BmgnkpAii8AvJnADFAxztCFvDHBkRDbvSyLfpEuefZYZ3XKEXCFqUyFeVReLqOx/l1P82dfQMTzxa+WxY4ZJlTvljgQ9eM8YdiTXGltM99jtWhzZY6ypyniK7TJuWte78ykqZxoNOC/97v/d7VM57xjEYYShBizRM+X//1Xz+t9Lx6oxwgKJdyR1peA+x2HSNj3QFJ+QDc5mGFYyRgZt2wICkQfXF918n+f8pTntKAm8x4CkKUwQoVDxVTpDQsCQZAGw+H4ssSjrQNSAJhglSbZWlbX7wECROwZLUjsp7t0kfZ8SxrI+EtV4AShedAl0cHP8L7EoqHceDqn2LFqR9/20rEkvzu41WNIth376aOA0l8vfzyy8/yklLInY7PwN3YrAPK0XZlKov3VS7VlHFThvAaQ4+XR5uROaNtc9z0wL09D5pC899GOdAJ8BLsxIC8K5qQfclLXrL6tm/7tup47EZbnIWf5QBhPPXBPXtz6wtBTMDvEuCBO/Dr22BFf8+cOdOAtsQ9oNMH8gQcICE03RfZ7bGTGje5Nbr6vSQBlhCIQ+XyGriOsAyPAoHsudPHdUif8UV5Ae5Rnj47jigWvBqURIKc4hMgpB/aRmGhbM3lE48FsFBXqaxFezb12TcvNlVfbbn4AMzNQ2MtZKKtgLNm3tTW4zp1USAlfxp384q86FN+PDPmgHYZs5iXUac2UpzneAwp5ksoLtGW/KzjQCfAey3jj/3YjzUWBiF5ww03rF760peufuEXfiFfNlPH161cZWw8uEsRK5drbxdE0AGDPnAv2wR0JH5yM/clpxEmQkri2lyM1xy9YhRgsVRZrACWAGTpLknKrLFQKR0EfQl62kzwU3RYy3OIG1geBO8At7r+Rayc14NHLkg9+MDKH/I4xPVzPhkIyqZIUCDxRp4CUCv7PqfsoXuA1T6T/m/LZa0e84Ji5xkwDsJfkQRJqTMXzQ/fSyA2XuaqP7KG8mhumTu1pH5et30fk9r+HNJ1nU/Bd3zHd6xe8IIXrE4fxSvLQeHSS9ofDnj4AONSNNdKW6J+oF2COwHIgiBIuiwOQoplaZ/4UiCVbXE/wBR+AJjKKfvIYmpbKeX9c74rjxIxRhQB9fssiRsTQPOkSJ6cQqwkz6g+srSUTQGy+6SQBCFvzkSd+IGPmyTlc9Vbhx9E8dI/Y74JwkPzJ+lcDgBvf4B8LJ/KPDE+kikp3jFPzDHPnLBX13N5bo3/G3f3BtJNKnPtOg/5Nz6ReT6NVTyrc/t0HsArmKbGLZ8PyVy2HuZ9u3oICRNuvxAYJjYh4jeL86abburMumZJsEL6AN4oKIv1INYcCW7uYcm4z8MEBJfwhHheuLoll40RgANEXW0H/JHcJOt/bAkfS138Xt0UjFIo6L8/yXFtMt5LKojt8v1Wftv1DPBZk5sCeGV38bWrfXnsfA54PijEFOi2pe6ZM548YvJFhjw/5qWEwa45cH6tJ/sIWed5EC4ji8hEihiPCfnkGZ5D5wE8IUXj/43f+I3Vt3/7t+eDMoerW7qHIPdnMixBu4q/A9twI+vH1Vdf3cSOgT6wZNFaq90WNgDKfQTJEBFIYc0DOgLHPHe/B4fFvQTAAxauzzHQ1B4xTm7RPiUaQLGy7OHNIhc71c5Su9dvIRVzwHnCgeXuGOWhBPo+/tRc03dvzXHltxVHIRJK19wwxFi9hGLpeRy7Ps9/gQNc8fbTGFqyadwoAcI/5rswjzkaSjNgolALje1KpnyhR/v/zTNNiSfjSlnuOeFBEYqM/JipvTkP4BVAK3vhC1+4etGLXtSsH45CX/ayl2UMPpixB5+EJ+2uxiVc01yTaBcEEAmHIPMvEnlotSw+gsJnm2qtQEBuqZiEo7Zb/tRRUhFwJLTWIeGAms2GvKedu7wP3Ms2aKs/Y0MQ4BVtX74Et7sM6ZIHvBSUAxuTqKNL83e/sgiTrvNl/et+V345tsoLq4+SM+admFq/54GilTSdA8aJQl3zwprIY6GEmptW4Bhr84o73/zclTyZ3vPd3UH5/f/t3XnwLFV1B/BWcUUUFYOg4EOfIIsIKLLDY1NZTKmx4pKKWimNSco1aiqGJGapVEzU6B9qKkVpXBI10YqJiqL4AJFdIfBUVBB4glGUCIJxR837tN4f/fr1zHT3dM/0zJxTNb+ZXy93+d7b93vOuefephyNWz3jxV+WqBqnmj6vlQT/mte8JjvttNO2qXXMwW8DyVwPGPhpyV0QPAKdl7aN6IpkZ4DQmUX9GrAFZXEXVkldCxQxWppWtialqd7I2Z7ybcVUAhe5JVAf//jHtyE16aojVzrLnRVkAJR33Tp4uH3sSTGOGA3UlJm0bj25q1ln7rOiAMasfdbWuLTa4pHuk36av03HfLNMLFPUd6vapHjtpN+eA3VJKwGkp73LUwOT0lnl84hZnEQdck84wZkHreh9S+d884rxQM1rXCmWZai/PRsIfJIY/8Q/dELwv/mbv5mdddZZ+aA3KeM4Pz8EEIblXh5KD+g0wnVtoJyHIDgkRJMlgu0sgzNoG0Q2btw4sn4IpI6kwb6oSLgP6SEZDw6SrzN/Xs6PkmVjHe3AKmWhs65ZOchW2siH69hv9eNSF11sMxJ1qONS5mHYtGlTbUI2f69N9RH1lC8LPwncWV68F30JazrtQVDMg1LB+oN5MQCveE2d3+rGHQxv+BsIYawdGCSUqdT2ddJb1WuQcRNyr4MTj5sdNr05sE7/rpPmsl3D++bZnCS8bXWmI8vpVFrwHhrWjIcvZNgI0I5ZuNMMkgjGVq51LcmuEUF0yDx5IriQ7cEwSZS37bI+igNXMdIzj4gMEDBCsMd6cS5sXDlo1Z4Xm0Ept3lxAUhIjRfCXLi0kHN6wU9KzzF71VMIKAmTiAgpFgk6pTPuG+HxFHiZTtnSgred7ihXZTf6uDTrnlMfBD9q2sJxipH5eHO+yqFN4egzSUxBwL8c0a0uBk5YmZKBLdJPAnefFC/hGfKhDJUVwHTPMn8jGP3EM9G18MLxbvHEhWyLQJV3a9urfnlEf20qlQRvsLXZjQfIJ4k3ygnACxkOAgZRRGJAa2OJIVdBbZPIpc8aJ0+EwcDAW1cQchuvA/ct6yJt33rIIYfk1gulFtEjXC5kwUOurRIWORcz8kaeiZAoDche9DBvQFJaqtJwTPr2DOfKRESjCEb6bdqXV4R1lrwjxXIY0EVFU1DavsugmF75N+8AL8YoDF1P6WBIUDCVEZ6sPWWjJPF0pDn7YvoUB1MQFKRRypjjsLWXurIQWIhbKCs7lFz9QH8qKgPFPJf1N4LXTn2ItjclpK3mZUD0Ua+u0mzi2UhTbU3yriT4P/3TP83+6I/+aJt0wqLfBpJBHDAoWVbGeizvXDaugO5DLEMQFhRSNCDXsSRY2uaz2w7GKSrf4I+I04DPqlQWUxY8IxQnmrMpEAMUixy5GBQNXFXu52QRsY4vFQWDsgAAQABJREFUv/zyifVBRDwJ3PXyrhL5VxFd1bXFYxQGVgICVQ95SSu5BsUCpNfcVikBxbSa/KY4sq4pP1XC80JBSl4U3okiURvMuPBhCE/tUvQyqA/MivdU5eNY8mJoO/2ryhKCx9lnn51v5es5mqfCO6oefRz3rLVRHJuUxfSJZ2lU326S1rJdy7NhXKnTj4vGdl0cKgneAx+yWAgYkNI8OpI3KI4Sgz7rN81RjrIaR93fx3GdXAc+6aSTcgt4nNXHekbMSKSpGNxFrCIL87TIL5F7SgvRwRCmlqiw9tNDyKpn7U6KeWApIg1WuQFukigXsuWulldZDMRFgiufL/+PpJAgrHhF3E8ZkjYFhddHu7OQeU5YWKYmkieinF6T/+VBWbMSoqrMXLbI27TSKKXFfVzsPqzvo48+Om83aZty0FfEGNQR2GpTHpoqci+mYRdPea2KS1nfqFJSi5hM+xvm457nadNf5PuNYTxoaSvtUXUxjtSNNyqmUUnwxQvi9+IgoLMgboMnUkIYHi6DtoHRedMvOgtrpq312xciymMgOOqoo3KrOgWppfyQlcFeHZW/qSAN1lyyVJHgOBe6Bwp+kx6+UeWgDLBU6xC8NBCih31U3Vi14xQ3abiGkqDsys07Mco6kI8ANZY0RcfSuuJ0g/SaSiJ3pMH9XxZ9j2XPs1FXmUDyiIiyxaWpn2i3Op6elD9lK7V7Olb1vWouZX2jyTxwFWZ1jsHe8xayNQL6siBEMmqcoZDz7rWRIPg2qA34HlYZV5iPwRSpGQgdZ5G2mceZZXWVEZHb3EbZDbiIQLmTkuK7jRjkKT1J5CWPUYIkKUpthRXPWq0rrFmegSqCV3/TEqZVkLL2hY3yJY+CAdTmIwixTtCUgd299olPngPxB4LWxuEyqj7Id9999809F1UbpfCYrNviOWhC7ikvyhLlg3dRu/k0Ef1/lKJTTodyov6wXnYxNtRVtKbBok1/mia/RbrX887jpb8h+aTEe54ow6bG0xjetF5B8E0RW6DrDYJVZLEIVdC5fboSZChwriiswnH4INVpBibpN1WoeAyq3MOwYGkTrmbKgPalQJx88sn5/LE4DAFkTV2uiN58tkEGHocffnhu+VMU6gplkiWC2ItKVPF+U0jm0tsSCo8Or4B0WD4+k6ZK5I/c1auupap8TbwDxTou4u9Z1HUWeSwi9qnMnmVErm8bq+DlmU/9PF3X9Lu7EbRpznF9IFADAYOtQTx1+KaEmbJAtuW5dkRomRbir7LuPGgesLbi3qZkppyjhKvOJjqprNJmgdP4WbZIuim5F/Oyxh7Jm+LhrhfgZtoAsVI8Ur7u4UXh4TAfblDiURinULLe4TlN+eRrysE0k+kmnoxRbk3XJlEfUrctpK0uqyLqqm36lGmeoz7LNaS0tYPnqEsJgu8SzUirMwRYztzPNt9I5KLzs1hZi02J3uBenoNFjFy/pgMuu+yybcqObBM5bHOyxgEut6YeANZmlVBylLFIsuk6ljayG6ccpGsnffMO8CCIHYCx3yldGMrfQEThSpZxkQxFS8O5bP0j+GnJXdm1makWfYECwpMxbic+11n+xnpXXuVWXrEclBOWvWMUFtcoI0Wqaf+ahOtQz6s3DJr206b16Zq4mua/qtcHwa9qyw+43siMtW1JU1EM7I6LDt9vv/0azZGWyT2lywK23E5gn6hs8+YGfNapSG1El4gh3VP3271NSY31WCVVCkrxOkRHoaAMTSPqbv7eXHyag2bdcbsLFoQjMkCAKWgzBT1yKSIL3gTf3OmUMdch+FFL5pqWV7raRkxCiq63GqAsYjksA9V+ykCRS54HigJMfRC+oD39y29KHRzc14VQkChG8h7Vvl3k0yYN5aHQTBNrMilffSEs+Eko9XM+CL4fXCPVlggYCFl/lmyNEmRjwEDMdS2tcXO1lsQZ1Ll+WaAGdtYcZQIBUCiarhVWPuQ2rh5V9UNaVYJ4EC4ir5I23oKqdBzjkqfoyFNbIHyEWBSk5eO6zb9aZgcn9XYf65q3xTvtkSdlp5xGMb0mv7WNdkkxGohbOZRVmfQJwUmIC7m4lmLCW6NuiLwoyuva5PpXX+8toNg411bUV5n016QUwQROqext0+7qPkqH8pTjU7pKXzqUsaEpNl3Wb8hpBcEPuXU6LpuBzkCDRA2EaTD2XZcoOy7SNskZFOts1oNU1q1bV7vcBrJxYuD3KQvLxjy971HkWr7H/6xYlmYT1yeSGTXwax+R7uU4AnlRTrjSm5TPfeMkWe11rG7Kk+uQqDIazH3sMpfItMs5Xv23KJQbHwqVfLR1sr4pAwL7ENioMjiO/H20gWBG8QyIj+ehjUiTcsNDVBQeHTjpu5SPIQilUv+hJPUh6jqNotRHmVYlzSD4FWhpxG6gNeAgMeSexIOHIFiuXJrz1rQNfsXypXJWfXMZK3MdaavAJIIQoW55VyKscXnaNEYdmlpFXN0GWe2lHcplNmd8yimnZJ/61KfWMGIdWR/uGLdyF2I+XxnqkHsxP/2LgqIvUdKKWFECKJJ127aYbvk3bEYRRvG4trPkr0opKqeZ/udtUO+nPOUpOTkjYcpDE0HuYkfK5J7SECiorSxpLJY3ne/rW7mSgi8PSpD84anP1nmrWdOyiXUw3RUyHwSC4OeD+8xyNaBu3mLtGnw94GVxDFH60LRZq5Os3XIaXf7fxI1LGagr01hLrC7kbt7fmnFuVwRYFsoG60+56u6yltJgKSJHgyz8kayIdqSYrFG/Wa/iBRCmwVn7nnvuubWXgKX8Rn3Li+Vax4tSlQZr2f3lWAD/sxKbkG1V+o5RSBMmo65pQ+4pLRh/5CMfyZ8F+DYlePeMIveUhykfz1vfwWeeb8+UPpxiKJTPcf3Hc6FdTGlQFI0VrptWWdRX1Y/SGjI/BILg54d97zkjAVakOcU64uE2MFoiNQ0h1slr1DVNPAhNymgwQ8Btg4lYo+bT7TRnm1zucAOlgVCZuTlZR5ZtNQ2sY6lTHixTIwjGvK3ocINucQcw5F+0iLRZl655LmqEULS+R7VV1XF9DsbKXAx8gwkPxLQErx0nuc2VQZ+fJi9tYE+BNu9q0Cc8R+PE+WlJdFz60qZo6h/65KipIteYmuBx0IcteUT2vAxNFOhiWfRRb1Sk5HihEwXJ3gpJqSheG7/7RWD8xGS/eUfqPSLgAWdtNrXEaO/2CDdIzkNYNLT/OmLOta4YZFjF0whCt5GLF9UgYO50ZUBmCIwC0IbcKQzm68vKhwHWSoJxAy3C61KQcFUsQpM8KJWsN8pCEiSCmKe1WBHQJIuactI0KDKVs/jNS4MctXtTGRVLkdKZdD5d1+YbkcL7wgsv3OYlPePS42Wh1Nj7gMI5KuBzXBrOcfdLg9eQ8knROuOMMyYqPZPSjfPNEQiCb47ZQtzBQmhK7qliBrWyizWd6/vb4C1Qa5KkzVUmXZfOJ9dzeV47nW/yTXkyV8tCNYjBmiuSS71J+lyj5vaVjWu7SigRyGqUtTctYZbzVP42hFZMx6BO8TjmmGPy3bkoQQifImS3rraib5gCGUeOSBmWLPAuhCLXZNpInso3ycvgfF1Ftkk9KOb6JSV0nGI4Lk3KgbHD6gSrH5oIpU578wAURbtM41EpphW/6yMQLvr6WC3Uldy7TQYme4gbdDzQZ555Zq6Bc2lzt81SEAPyRjLchlXCEkeMTQUZIhgR0l0Ja5dCkvZeNyjynIyLoEd05qm52pXJ5jKjCFw5pZfWmpfLTUnoUhD8KHdu3Xzcn+pj+9rkmqXIaDtt21T5VK4nPelJa+mOKou0uyQS9eDVqhvMqVwpaC29tbBcVnUx9TLNs6WeyByJe85ha8qKEkT5lEdVnEi5LKP+p6SJO6G01nkLnz4tuNJSQ5h5jsv596HQjCp/HP8lAkHwS9gTDKgCweqKSGyE88lPfjLf4QsJIleDSJN57rr5TbrOIGWNu2Aq83i8CSwyZWEdpDXVrmsiBlT15EZvgs+4PChFBjTpsrQNishYHIMBjrvYtwHYwI/Uk5XFBUoxYDGNE/U3iCt/OUYBBnCZNOc7Lv3iOW0uj7Zz8NIqllG9ixY34mGFIwTTD3UsbfUzjZEUhWJ5y79hO42Corz6XdrlLpVPGxbrUc63/L/6efXxuVsCIItTLxQya+yTAlS+b9L/2kd6PEf6cSpfug++ys7Fzvugn7fNSx+giNkJUB+lOOlnqR3kpT6eSYqqvgg/5ykG5t+TeGbFr4TMFoEg+NniPZPcDEZNB7k0CCERbjYDZXnwmEnhf5UJbT9tJ6o+aWBjWRhImpJ7Krv7eCvUb1pLD0HbSe3ss8/OCTHt/iawiWJi0ENO6gJLAzKyZg3yUrDy68wVq7/yio0wcBctP/WxeYpzXYgBXLmbxhIU83b/ODKEB6XSagAEIi91LIt0KEs+xcDC8nXF/9u6paXB6tQ3EFSKOHcMWVPktPe4ehXL4T6CHPXdpDhN03cRLmta2UaJ516/4qanqMPYO+7bPsu8ATxIvFQIWjslhQEWo/CgZGzYsCGfLtGO67ZM0YTMHoEg+Nlj3nuOHkCDVF1BdFynT3ziE3OX36WXXlo54NZNr8vrEpH7ToN80UJsk5cBx/uVBcWJNxgnrjVYydtgBluDtYFOtPE555yzFsVur/gUZY9oDIyIGakrM2I3UDrGcjd41hGEKD9eFYM874ByEWSPAAU1TUNuqRymdhBDHcUj3VP+1pdYd+MElhRJShE8YKFu+i2rEKmqmw+yRFBFxWZU2m2JTNqUNW1WXnVCqWQJm35RN+1RVyh4Pl0I71BdxQsO6sHzY+mrFRqJmJuWRV9N69mT4lJOQ9qUwxQzAjMKkefGOUovS9//6ZkupxH/d49AEHz3mM49RQ/hpAG2XEgDQFqm5RwC4W4bioyzFtqUUd1MAyBd7s5yvAKLjWVsMDfPjoAM1AYoxGSQgrPNSrgvEaNrKAzIgALBbY+wDHAGXOkgs6YbyMjPgElYZgZulmZSdJRL5HJ57/62uMiPS3XS1EFV+vCh+NQV/dTHfbBCEkiMZa9N4KYNED7lSb8cR5ijLMpJ5eFRoeiWyb14n01zYG6eeZYCB32mLrkXy4ZYzY1TTNpOS1Fo9QVtVCXOJ+woaUmQfVEE3vHciMugxLVtq2Ka8Xs8AkHw4/FZyLMGRAP0OFfepIohviaWyqT0hngeSSfLBEGnAckxFp1obJYzYmF9IHADHUsZGbnGIGXgQ+b2X4e5uU9WD4tPHtLgQmeBs1iRhEGxrsgbsSdhrTsmT4qKcvjfvGdRSUvX1/1Wjw1b3KqEwiBITNnrirKkF83UvSddh9gtr4NbVZ5wR1b6JcWMV6Wqf44ioZTPqG/Eg8AnCWWQApSUq0nXT3ueckgx5HZvK3DV7/RxOLcRno0q74W2gol2qyMUAW0pYJKyW9WGddKJa+ohMNsQ6Xpliqs6QICVMY0FjuRW4eFLAxTiWLdlnpAL3Twmd7tBn7vaACtgiAVioKUIsFRY1QZN7myR+Vz+yBbJse5THIRBFTlRClhRLKq6wrLUDspQFApD0evgGoqIOdc27c5CtqkLQiFIzPzxKJdssSx+yxOJSKdp/rDkfVCnKnIv5iVWxG5/lKyEb/G88nINNxEeAWTjM0nkP6mMk9Jocl4bl5ecNbnftfqdPuqZbiv6fBkfSqrnoS65p7x5ZazUobQqW0h/CATB94ftXFM2aHExt5G0XK7NvYt2D0Izh41cWN8scm5a1rABzbwnqyMR37j6IRxWOrKnHBD3IfVECmlu27zoJDEgK4f0yvmb108eh5QOkqeoHHHEEWv5p3OjvtWXEmPZFrdpImeKin4gLVHl40SelAFKZVOlEElQppq6n8/dEp3Ok1EkHfjznvBmNBFKQWqfSffVvW5SOnXPq1Oankn3wJgHQx+DfWqzdL7qmyKqPdsKJbXYB5E0Ytd2bURanq1yH26TVtwzGoFw0Y/GZqHPGAS4jA0OTQZP86EsuVUIhGEF2jOeFcLyNAB6A9qJJ56YRysjizYiXXOmlnYhyqJ7XXrml81DOi/a3uBbHDxZoNzvvs8666yR5ENxMMjLIwmyMj3Di6DtxQSYWlAmgzLhXubKRoSUCPPaVZa6YzBhmUtLfqxtpKyf6CO8BhSDcfPiqWzlb+QlKlz92wjFR95JmUL28KQUKWvRwzEufeWo299dV4dQx+XX5FzRc6PdLDFE6jwJrF/HtJ/6JuWxKv3kmtdu6ttU9M9iH9WfKFjTiP5IsTaVNaspj2nKu4j3BsEvYqvVLLNBnMv2ggsu2MbFW5WEh58l19QKq0prEY4VLUfueWRoGdrmLe70tuSe6m3w5dZHjtqhrGTxEhioESQL2qDrHm3ASuRNEAMwzoXJ+kG2VeSKiHxYetJO5J7Kh7wNqnXIKqVFcUCiBnr3sf6rFIOUx6RvSsO0OFOWKGfKSGCH7EyD1H3hD3zUKxHnuHJTiGZJRoiUwBoRIvFyIKA+c+SRR+Y4wGOUqGdbgpdmsa+Yk6+rQI0qj+P6OeVjlpiOK8+ynQuCX7YWraiPgUGgDfdx0aWZLmUBGrhY/G3mUFM6i/JtQGH9JdI16LGCWIPc8QiiC0GqArfsuseKRmhFYYX5wF8ZkKX2MRDXEQNs0aqqukeaVQpA1bWTjilnVwMxxYUiNa2w/rUngkeCSBoJCsSjONWdv6bcuV4cRdUzopwUHOlOo9Q0ra/2lZ+XtSBv/bMs+ou9GCiTpuXUpUom9ZWqe9Ix2CbR7xBzV8KDpt2KCkRXaa96Onf69lYdiSWuP/IyeNkb3C5afnMBCyhDPscee2y+VrY4B7uscCAWrsUiibNyWcO+DTZdCosSkfEQjBKKgEGT+7suuUvLfdMM2qPKM4vjPA9F9/M0eWpLOFA+xDYgI1au6QX9vY5Q9igGJ598cmWQnmkAaRWJrk66017j2TWVYpqnityL6VtBYYniKAWEEjlKeSmmU/VbOdJUkGeoy7lz2LctV1VZ49idCNyplt15LH4tIQIeeq5iH9a6AXEVNWbWXvnFLixcgx+iKLuyu+gKiEwgH+9I2YqfJn1tuqhtiCS6cPHCD9lQpEwtiVs45ZRT8mkpQVyU2BTrkDw2ozBHoKxfAYNc49oKxqxLfaQr78Wo/KuO8xqQokJadZ1jSFKZlbdcV/0bQVOs2ghlqVj/LgmZUqs/hHSPQBB895guRIqLSgzTgEupMedbHpwQA8XHqzL7Ei5NlliXBM8tnayqcrkNmkivaOFrcwP9rK3Qctn83+WArp5JMUvWK1J3nKgzooQ9ojQtgujco+2RtxUA2sdvaVAU/D9vQarKRDGtI64rEnG6h3eqbTCjNCioqa8V+1RKf5rvrtObpizLdm8Q/LK16BzqY7A2YHpQ/UYgBk6fIQliZzUqXxr8lQ8BsNiKx7out8GV56RLsVZd2ZPA3gDPnUuh4PJXX0SGtCgEvAg2LEF44xSElGZf34ksukhfWmWFFckViU5fVF/1pvzARH91b+qvXZSl6zSU2ScpLpPSd11ZeYINgh4XgDcuXZhRgJNIryqfdL7ptz7cZX9omv8yXx8Ev8ytO4O6IZTNW+aYzV+miF8Pv7XTlisZZOsOTl0XF6ErHxe5deMGEeURjGQ3Le5Yg70Bi1XXpygHHLocGMVRpIERmQuiFExZpag4BgMfEdBw4L4Wxc9CnLXAoaxotS2D8kurjsALYS6KKK/5b253bTxJXKd9i7JuS/wH74W2byqeDUs6i5hpO4qiwNEuRJmLimoXaUYav0Sg3lMRaAUCIxAQjV6eH2RBsCBF9tqT3fxdIqIRyXR+2GBmjS3FoyzKItp4w4YN2ac//emcEBFw38KaNlDWGagnlQWmBn6WqDloO8E1SZfHxTIyZGBp5KwHWBY1t3F5j4BJ9a46X1R0qs4v+jEKjPXv2mqcO1uAHUUuKdrqnVbHeBbbSHpfQ/FeyqG8uiJ47UeRCOkegYii7x7TlUgRQVgCVib3YuUR/SWXXNLKciim0+a3AKsqcpcWUty8xeuAFG0Ik6YW2uTT5B6DL+unC0lWFcvM1q1NyL2Yv6kDrxNtY90V02n6m0JhYJ9WkA1rctnFdIzlrqOEwic40L7wSZC7z8aNGyu9Oum6Ud/2EkhbJRevQcbSres1Kd5b/q3c8/AglcuxrP8HwS9ry/ZcL4Qyar1tMWtucltalucFi9d0+ZslbmOfOgFFIo2VbVYeBqRGuZhWbMajzIncKVvTiHRsytNWSWibt6VniGsaSYrONGkswr3IVOwEr5PgP4oNZdHcOBK2hwUrXV/QNwQZ8pBY19/m2Vu/fn2e5ijPDu9Rk3cqjMKYh6Do/h91XRxvh0C46NvhtvJ3Ndnowny3ue5ZaOrK1WR9NRexuWgDZt/C0vRhLRsg5Wm6wADMrUoZEr2dggGrysNVa0B3DQ9K3aVm8pG3NuAeT/m6X3m4+a0i8K75WWChbspCWeHlUZ+mYm6Zq1hdlkl4lCiqFC+xIalfIGyELoYkKXWpr+g/9regMCXL2nLQpgqltke6lIlR5A5rygX8lbE851+3Ley+Z++NkP4QCILvD9ulTdkA1MTaMxiNmzvsCij5tNn6lALSt5vXoGvw5GZl+RiQDeIGYOcQPnJXBxYat3tZiWKludfgyntSZw7UgG8JWLL45YkUfOSLNAzU2sc6cIQyy+VhysW13JTk1UkQ57LN3WoXSqf4iOJcumeEIqMPpB0nJz03vBui5+3Pry8lpaDqPn3PlImgS32xjtJEQeMpsKlQcWqgKv3ysX333Tcn96GttCmXc9H/D4Jf9BacQ/kNqk2sPA/xLAjeHHcTxSNBh9hYkn0KokXmXq4ivyrLm5KBuNTD4GyagefDvf5HxrA08Bu0x4lBmmcCiYtFMACPs+YM1qxhggiatO+4ckw6h0jUTzBmcfvgUfe5Prmkl43ceXK0r3ckVD0v2k/gqOsoetpsnGh7EeoUIW1KueOp0X/0MXnpc6xov7nK6xB7MU/XJ6XTdBcFZZzIb6+99sqVSHmG9ItAEHy/+C5t6qy8cSRj8DVwG4Sso50VYSDEpmLgI5b2NXHvN8lHUBICK1vlxTS4O32Q89FHH52xcrhk/V8czA3Q4xQZ7lWWmCVzdaPUYWCZHWWAq5flN6s245FI88a8KQI3xUcki1NfShvPKBdMkNeyiTY977zzKsm9WFeud8SqnWA3SVyjD/l4FrsWioE5ex4A/ZvL3rQPstd2XP3GAs8AJVU5QmaDwPI9JbPBbeVzofXTxhFSURARC8sDzVowaBmsWaOupxh44F3XtQWWBpNE2MVyjfuNyJQTKfZB8MgJHuMUomL5ELiAKa/tRXxlq2qckoDckaDgqjbKjkHZXDxy5TWoQyDFsk/zW5/QBrwYqeysVvX30U5lLKbJb0j3ssqbBKNu3rIKxFJPys4QRD/Rz320IQ9BUTzzYbEXEZnN7yD42eC8dLkYjBGQiPXkbuaqYwWzHLmEDVplsZuWQYD1IYq6ywhaAwgibUrw3JiInQKCINsGDZXrmv7nKmcZH3/88fmSpTpL0hCceekjjjgid7OmtBAwxalKlF2bfOxjH5voKq26v3iMlchNrOzaum+hUCAF9UPqLHSkoX+sAjFo7/L+8eMwdz2ldCgEXywrRWxW3p9ivvF7WwSC4LfFJI7URMDAf+KJJ+Ykj1wQuvnDKmIvJongrFOnDCCwrgQRsGqaEDSrn6IhUIhlbL6SBd3Vznbm9ilArHfu8n322Se3kA3OkwTZed2pyPYU0QzbsnUknWQ5nXnmmVOTeypXsihFVaf807kuvikQlDEueW/x4+UpxgnIUx/RphS3ImkkHLT5Mlj1sEhTEnWxTYp13evjutVDYLnWl6xe+821xiwsg6vXaCJKJDmJ3IsFZjWfc845nW6ywqXNRVhXEC4iRbgGWEFM5r5Z89OKJW3mHNM7ySk2LGPzlXUF+VE4ilIkwXScpW0OvSlJpPtHfXMFN7EsR6VTPk5JoYhdeOGFucJj7r1cL1aq+ltRQCGEAyJ0nb7Gw5GWkZXTn+f/iaybtIV7mnoq+lC65olb5N09AnO14M8444w8qnhctf74j/943Ok4N2cEDLaIWgBZG+FuZvVzLXfhCmblIWiKxiRL3hzzui1LxBAJS5sb3dIzke6WbilXnQ1zyvWm7JiuYFXbJc7gnQRZCjYS7ITU6oh6mEaQrk95XpwS4Xgf8QPKh0zl30X7SI9CpU7iBIrYODdKeD8oA9oFqVOUiKA0fYcHaQiiL2mHFAhnrTdlZlJQILIW11JW5kbViWKtf4UEAuMQmCvBG5T+5m/+JjvggANy1+i4gsa5YSLAxTrta1aRqgF/3Ray7cLdat6WW5t7l5u5PGgaGK0lFsxl4PVByIiXYqBOrG1pcB1zrxu46wgPAsvd/Zs2baokMASAlOsSvOvkT3lh5YlCLt7LelfPvgSh+nRB8BRCSl0Tck/14mW59NJLc2VMWVKsBTyHQPCUFWW0K2CS//qv/8pXROgX40S7Ck7V3+qIvhsWfB2kVvuauRL8ySefnH34wx/Ofud3ficzdzhNwIiBua41sNpN3l3t4S2grou5QG5s67C7WkKDDCkM0lQ+HwolYjAw+vZ/knTO/0XLyG8uf2vXKSGIruh6pZAoMwvXXD5MuMrHWf7SaEJI8ktTH/KzEuHGG2/Mi04podD04UZP2Pi2sQ6FaZIlWryn6jdlC0m3fVYpTvrcui1tK2CTN8M0yxCEElal7OoPYgiK/a2qvJQ+iuekTWO0tw2Tmrr0q/KMY8uNwFwJHrTHHnts9oIXvCCfZxNl3Fae8pSnjAwuMqCGdI8A0kR8XQgSM3h3RfDKlMh3mjQRCMXTBylztyKnYpAcS5JVyoouLxuswkZdm1hfZTJkDRrckQZCGLdsTv6UHVhQEup6Isrl5mVx7zQEL38YtS1DKlPy9piKSUpVOjfPbxj7lEVbTyJ397jO6hIEbpqoSsSG2D1umnaoSjeOLScCcyd4sJ522mlTo2tp0CgxCIR0jwCyq7Ndat2cDdzaqs5gWDfNLq9DlD4Iivu9rXJjcE4WeZ3yGfiLxKEMNhWBFUteOxSFUsJzwSKkmJjzlp98fSghLH6KQTmwrZhO8Tclpu61xfuKvyk2k5SR4vXjfgu+e8xjHrNNPMK4e/o+R+lSpnPPPXcNK56iJrskah8eIx4hXhNKr7bT5hRM3ptpFNa+MYj0h4XAIAi+CMnpp5+ez4dOY80X04vf/SHQhWu+WDruW2TVxPWIbJEPLw1LNwWDGRD7EoMwK6utKBvSrSvqVLT45S8Sf/OWCHdSTMsmN4jAHD1XdnnNPEVBMBeiQCQCCylWdaSsSKR7ED/spT1OOdO+ad483dv2m3JFYRga2SH0U089NQ86pWiZV4dPUUGbVGdtLQiTh0bbwlabN3kuJuUR51cDgcERvKhYD24Q/PA7YBMrtE5tDIRNrERkYR42zUenPAyqAjf7EoM1C7qcb8rPwI7EKR9VpGjwbjJnbp69iiC8WEc5tIM8rVdHCLwLo5Qv+PK6+LDuzWUjfMsDJ0lqb3XyjFKqxBpoBySEgCgjphCUxwcxJeWkzvTFpDKk85QFeQ5N1Jew5KeVhOG06cT9q4vA4Ah+dZti8WretUXRZEBDMFdeeWWlyzcF/omCZ1H1IUgRmZXjOxAm9zjSQ3RIuBg0pY6sZ2WvI9zsVWvy1V8eSBepHHXUUbnFLqCrrogjEBS2Ycs7xuUx6iUnKT1lR9Lm0dWrSnlJ1wrIgwWFgiIBr6KnIV03zXffBK9+PCD6kw2QkiU9TZnj3kBglghsGxEyy9wr8vKSjaFExVYULw4VEOCmHueSLVxa6yeSSRbQpBtYjuPmc51rO0c+KW/nKQ76adGytjzOMVHiCPzTn/507gbnNk8iMIz7HEFPEthaq181HZAUC+nY6c3/Tci9mLc5Y3O94zbgSfX8zGc+kxPeOHKXtqVrFAbfFANtQVnpUrrse1Xlojypr7lwe3YUAyurro9jgcDQEBgcwb/whS/MjjvuuKHhFOWpQAAZdzloc0XXEZZUnXljJJ/cynXSbXoNV3vaxc+9iPyTn/zk2jSDciJPbnTeDuvVLburu2b9yU9+cu4FqCoXFzUxFeD3f//3f1ddVvuYzWxY2qPWayu3aYUmVrj6I0fuf2SsnE12GRxX+K6Vy6q8igqkuvCYhAQCi4TA4Ah+kcBb9bIil7qkPAkr1nuVpVp1n8F2kgXpPtc0mdOvymvcMZapSHbucQFRCKxcrkQMlj+x+i+66KJxSebnWMsHHXRQTorjPBquS5v5TEy0xgXIWPxClSD+5DWoOj/uGGVMMB+h7MBtWlHvNLc/bVqj7jeVIh/it6mXkEBgkRCIOfhFaq0BllXEdlW09qSiIkTWPyWBdWcgrTtfjtjM6VoqNU6auPzHpTPuHLJCfrZLRe5Ip7jOW1kRg28WsDKVI9sdEw3uXvVyPSzGESFliAeBa70r17Hy8UIoQ7mMCK7tdsTwM2cvZkGdtPu00ycUhXHKz7g2q3sOxoceemiOb9/KRN0yxXWBQBMEguCboNXxtaw70c6sTKTAnYwIkJ7vWbghp60SIrLO14s/6rjD1WmvvfbKA5bMz5pLh4N5aYN2XaLnObDfd9liTvWBH2u073nalB8ctOMTn/jE3E2vPZGZ1SCIyAdxIznz5uqONBA7yx9Ru8c3a5cChPhdUxXMiIRdL50uRTsg4CLBK7dyTeuiFiNgdYO6TUPwvCbSmIVoQ1iHBAKLiEAQ/BxaLbltWTWsUK5Px5IgJYMKEkN6SGBWRJXK0OSbBWsu2h7c40geUXE9m4Muzm+mvBxD8HVeIQsTuyBu3Lix0g3/uMc9buZrpCkVSP6YY47JSZyihqCLljhFIB0TXc99PUpJoRTwkNitTn2L6ZgvR/Dc6l0KYhe0l0QZWPXTWO8pLQqCvq5OxZUF6Xydb31IICNFMSQQCATGIxAEPx6fzs8KUvJCCYFHo1yryN5A6MP9zeI1KFZZcp0XsEWCSAAxc2d6iUhVvVxz2GGHrb0adFQ2LFLR5wi6uCd8+Xpkh0CtuoCl5VtwY/UKZmPhFQmxfH9f/yN5ZOxTJax36+ftvT8pYA3xu1Z/QWqUvdQH1F0eo9a7V+Vd55jySTuJpYaUkGmt95Se9lUPfbrO2vt0n2/lMhUSFnURlfgdCIxGIAh+NDadnzGgI+yqF1KMyixFSCMsBMb6G6IgU3PCSJyLmWei6ObljXCMC3iS2ITF4G/tcSK0qnvkyeXtxRuJLF0/7p6qdGZ1TBm9mS69H75uvu6z7I7FbtoB0ak7palr4YFI3iLudG2RAuS6yIurXz+mhPFmeBZS241Ln+KW3PuUqJBAIBCYjED3I8TkPFfyCtaYwbIJuReBOuecc/L3nBvgh0pgiIHrmEuZmzfNKfumoFgXXVdYjay8OnUdMqmn+iIxlnhTck/3+7ZrH4zXbdlARp0RXZoWKF43zW9Kg7TT/ul1l/TVzZOHgMjDkjnz/fJg2Vd5fkz/sPgpiBSCkEAgEKiPQBB8faymulIw2YUXXjhVGpQDFqsgoyEL0jEY+ygvYc1XDeCj6mEun7U3zk0/6t4hHlf/adeqqxeSR4wwRvbc9HDqSrQZhYzFzHvk/67c88rIQ5CEF0I+tnVF/PKVp7anADjnGha/75DlQ0DbJo/R8tVu/jUKgp9BG5gntZFIFyIdA9+iBRnVccOW8THgL4Nof8RsMJtWWO9IV1pc9TwjXRK89HhPTKewnJEvrwPvUxfCQ1Ae0JF3iluQP+HxohTJG+mrqykb/R75hywHAuW+sBy1Gk4tYjJrBm1hAG7ycpFxRZJOly/tGJdXl+faDMoG9WUQnos6sQd16ipqnrVLYUKMozamqZNW+RqDrTiKVFarPHiNrAoQRNmFUE7qDOoUgQsuuCBfbaG/c+GfffbZuaIxbqVGF2WMNLZGgNelC+V061Tjv1kgEATfM8oeDtZQl2LgLbo6u0y7r7QM2E3c7U2v76vc06ZrYGQRdyXI7cwzz8wtW2nz5lhh0YWIm6BApnlyaVJOPvGJT2T22e8iet2c+iTFzZTAuefe+U71Yt3s89/1yoFi+vE7y9ufUrV58+Z8VYzYmcsvvzz3Qn7729/OPSqLNv6saruGi77nludmLkaTd5Gdh0+6i+SmV1YEctVVV9WCwNrroa4YqFWBX12knbpybxfzlaa0kaVgRBZum2mQlCYX+c4771z5lrs0xeDFN+IIprGg9QHxA+MEeYx6ZrjulUcwZ0i3COg/vI2mk8ZtRORZtgpC4KN+EzJcBMY/acMt98KUzGDVtcXBwlo0DdqgLjgMcU8SlqJ1323c+pPSnvV5ZNh1+6uDPpCI1oBroyFejzbi/hNPPDHffKZovRfTMvBTLKfxFiCEul6ccUF1484Vyxy/6yOgj4p38Pa8ceQuRdeauhE0TMlctLGoPiqLf2UQ/AzasOv5q0V9oMy/Wsv8iEc8YiTqVgjYzKQtWY1MeI4n+miv1KdM19hB0DQQkp7k/i7DwAITvHb++efn2waXzxf/57JF8HXm0Iv3+a09vXCnjlfGNbbHrZL0/oKqc3GsHQK8IoJ3bf2c+lWdlEzfiIso78RZ5964ZjYItFP5Z1O2pcjFYNi1JSq9NoPsEABlyRvoEYUNVERII0DkL2pbFDWLcllEO/WhrKRNaD73uc/lUAmMM+Daec6Wv3bAG6dYKJMAPYRZN0qedW9+nIfFoF5XtLk9+uta3vo3pUP5i/ErrH9v7gvpDgFuedsG24CrjegT4iJscNVFjEabMsQ9oxEIgh+NTSdnWCPmC5sMiJMyll7XSsOkPLs8z8r0QS5p3hjh1CWALsvSd1rqRXnh3u5KzJVzk5Y3DuJaNXdtKsSAi/TN1buWO19ZKE/2JvCx8Y6thVMb1Cmf9JsQvDY1fUAmzb0X89e/KSumdOTJ06C/sDAXVbkt1m8ov/VLlvs0on/xAGivph6kafKNeycjEAQ/GaOprjDAcTcWLZGpEtxyswHeYL3oYsBf9gEBUZl2EH3clXh166hBmUVlZzi4mh9NxAjrFA9AEWC1pTn8JuViwae16pPuU8699947VwiakHtKN7nqR7nr03Xx3Q4BfaWr/RmsFDH1tuzPczuk53fX4rPE/LCrnbO1xSwnmu604gHqak3ytGWZxf3ctIhokT0WFDID6TiXeR0sWc4sb0vNWLKsWyTONW+nRNMdSVi5IutHRaOn65p+awv5+pa+4LtivXgrKADrtmzIo6wx4DdFeHbXI3ht2JVs3hKjoe2XwfjoCpN5pxMEP4MWQO6WMnlhyLQiHYPoKgjiYDHCbZED77QXwvOimTZCQTRfjlQRuVe3cqsjcVauuWmWsmMGWaQOuz6mPFjiPvvuu28eyS+f9DGwpzLFIN+mpWd7T9rQqKtc7aFA4Yy27wrR6dMJgp8ew4kpGBC5Gc15Vr0HfWICv7rAMiPBaW3cnXXzGNJ1iOPzn/98vmwHaZmDXUQx4NkoxjRNEy+O+yh0vrnUR83js8IQO0Vg/fr1OcGzzvoIVpSmAD4KR1tFk/eBMkIB6UMJWcQ+Musya4Ou92egjEs3ZDgIxDK5GbWFgVFkcNsXxRi8BSv1MWjPCILG2SA275g//PDDFz5CV2Dk4x//+NpTDZQ4kfJc4DwYo8i9CCqLzI5jFCHKIFd+12KaQDwBZZUCVhQeBoqFDwIfNdiz8q2hNqUw6ppiuvG7ewS0nTbqWvSBkOEgEAQ/w7YQ8MTVLMq5ibDaDzrooCa3LNW1lCJkv8iC1MxPnnzyyRPXgiN3ig0ibbN8ybIlrnxBbl16e7SBrXGtCLG0DpFzyVI+rr/++nyXO8v25G9tPu8LRSAthUztJyBLGuoWBJ9Qme23/ujTtfSRZtdlXKX0FnvUXMCWMkh617YtOy0tGfcSGhaY7UERg7nWkMVGgDua5cQjIehu1HSNbUCRn01s2oqdxo444ohcmfSCmi5EcJ0IfHUw5cQlK2IfYVcRtWsRP6+TqQbBhtz6FLbjjz8+P96lAtJFHVclDbgzOLoUY1u0Z5eITp9WEPz0GDZOQWSxQY41xAJibbGCuMw8JNygyB2pr5JLvjGQC3iDAVB0+YEHHpjPlSNA7Z/m5rW3tm8bkFeERDAeN7+5f7uVTSOpz9qL3jbCCJ2bvY5LVt1MM6g3pUMfr7tl7TRljnvHI2Dab9Ryy/F3Vp81nkVMRTU28zoaBD8v5LfkazD3Qeghq4VAIkzeGYodokTCyO8rX/lKLeKchBg3uDl80ztc5lVW9qQ0nDdo2zjHi4K8H57LnfepqSjPuVveEnfIIYdEn28KXg/XI2T90FRLF8KrI72Q4SAQc/DDaYsoyQoiYH0/V6nBluXOwu9yUxzR95QIAZpt3KfInRdg85YofeWkiLQh99S0lAPKBsUjZL4IMC6s7uhCpCWwM+bgu0CzuzSC4LvDMlIKBKZGwLx2l9HNlhciZSSPqCkSdcU9th+lcJhnF7Rnbn9aQe68FF3Wc9oyreL9lDcBv13MxVue2UU6q9gOfdY5CL5PdCPtQKAhAn1YtlywrHcucsFuPubDq4QFhthtnGPrUZZ7Wvfu5UDTzuWnPAUQ1ln6l66P734QQMqPe9zjai/frCqFaRuKQhsPUVV6caw7BGIOvjssI6VAYGoEuiLQYkFY8AI2kbcX1JgrtVGNwZ3LnCXtnOkCUe6UDBHwKcqfpWf6oMuALPEAAgnFn4g7mJXY1teeBCG/REC7U/Ys3/z4xz+eB/02wcZqIH1JHwkZHgKze7KGV/coUSDQOQJWRdghjFsbkTSd4+yD7Ay+BnKv40XS3O0+LC4kn/JE9KYIyhvYIIC0/W2XgNmYZ9Zbm1JgKDxBSHe2JCy0uUBKyzfrxIAIpkPulnQGlndiObRfQfBDa5Eoz8IigDi4nS+66KK1OnBFi2KvOz/Zx/KxFNlM4eBK5WonBvU6UwLuY/l2LZbPwWyWEm7karThYmpGX6WgmppJrxpOd7iGx8V+BmnuPvBM6AzzOwh+mO0SpVpABFijRXJXBVaqjWZsWFRHWJhc5V0FoBmQk4Ul3Uc96lG5671J+tz7fc2XI/kmgX91MIxr2iNAGUTgtjvWRyiBpo0QuX7kW8Q8j1DI8BGIILvht1GUcEEQMBBWWaSs5Lpr0JGpaPWuxNIlA3ISHgJL5pJbPh0f921Qr1v+celUnesr3aq84lh9BNLyTf2FZU9R5MmhgAa518dx3lcGwY9pAdYF16T5Rx+/441JYwBb8VMsHINgWQQh1R0Uk5WdrO5yWk3+NxhzpRbzRtYC5gRVyauOUFyaKAR10kzX1C1Duj6+A4FAoD4C4aIvYcWiEFls7lSwiW1EU9CRgZIma5vZ9LrMLgbiUhEW8l9LsXy8upQihEjMO++000757lYs02UXhHrCCSdkZ511Vt6H1NcSIoTaRCgJlqjZpGYaMS2gTGVB1vr0kUcemQfdWQY3TrRrleIy7p465/SRVegXdbCIawKBPhAIgi+gas7J0iCRpEi+LMjfWmKfNK/KQlplKwRRwANmllaVhVJkWZb9yxG+QX1ZRV31kaOPPjrvP4jUnGZT69f1CB6xtn1RDMXCWwhH4e04ZdWLj0RC26/ei49S4BvFNSlo0nG8y2Vy+oDo/FCQl/VpiHoNAYEg+F+1AjekQe6KK66o1S4CqjZt2pQPwpZCpUjlWjcvyUXmm3k4LrnkkpEboCA8S7IEm1mGg1RGkc4ywILk9YVp+4N5cyTNcqY8NZF999033za0juLJgvbRLvp0iiFQD+SbLGy/zcfWibqvW1bL9orxAXXvi+sCgUCgHgLLa07Vq39+FSuU9VKX3ItJ23LThh1NopKL9y/yb16Oiy++eCS5F+uGPFzbVzR2Ma9l+c2SX7duXfaEJzyhVqS5t4PZlYyymjawqYtFUkxY7T5c+4ncpYGI664EqJMnZYFnICQQCAT6QyAs+C3YGgwvv/zy1ihzXRqsRJuuinDZUoiSxVen3lzOrFGvSp3Wwq2T3zJcg2RT3xLoyRtCSaJQImXnkSVyd8y8vesonoceemh+vOkUQRVu8pKH5VOU4WllVHzAtOnG/YFAIHAnAitvwbPeN2/Z1AH5tBVpIK5VsuIpRW0GejEO02Ddto0W/T4WNTc6Qk9BnnYSS+uV9T9TRsg9iamT4v/peNtvVjzlTDmmkaOOOipfCkhpCAkEAoH+EFh5C54lWmdrxklNgOy4oevMe05KaxHOi1doK4LxpiWJtnkv8n033XRTo8h68Q8seW77ort9Ggx4C4499tjs/PPPz+MqmqYlPsDGNqvynDTFJ64PBLpEYOUteC7mLuaFzXt2kU6XjdtXWjCzH0Bb6WPb07ZlWZT7KI/c801FcGMfniWWvEj/ugGTSP3xj398vrw0yL1pK8b1gUA7BFbegp+GqMqQc1uvgrAMTUu0lSbz9m3zWLb7KJC8TU0F1u7tWkT3e6WsaQJTXPY/KEfYi7wXlyJa3vangvdCAoFAYHYIrDzBI6uuZBrS66oMs0hH0NY0y5v62DRlFvWedx5tFaO2902qr35gLbu19OIqPEvp27n0iYDKSUjG+UCgHwRWnuC7mpvUPKs0kInsZrm1kS73Wm+T/yLewxWur7bxEnXZx6uwY6kn6zyUtyqE4lggMB8EVn4O3uDX1Zwga2ZVxJyqgKumYtvWaaz/pvkty/WUR9HzTYWLHAH3KTwEFA+fWCHRJ9KRdiDQDIEg+C0Eb7/0aQW5d6UoTFuWWdxv2ZbtZ5uIZVH7779/EHwT0H51Lexsi8zt3UTsstinQiWAT/Dfeeedl23cuLHVZlFN6hPXBgKBQH0EVp7gkbJo4Gml74F02vL1cT/F6IADDqiVNBdzeUc2c7asPsvmLAET8NjXfHGtQg78Iu7vJkqVfm06pM/15tbZX3bZZbnlLgZFO5577rlTrbIYeDNE8QKBhUGgmTmwMNVqVlBrskX6eoNcG7HZSN8DaZty9X0P5QhuiMeudqOWv/FuICY7oRXdxa6/9NJL15YXsk5POumknOSL1/Vdj6Gnb4kcSxlRi33gqj/77LPHvqNdu1hzXncZWxsMlKtqn3wvH6K4Vb3Jrk0+cU8gEAi0QyAIfgtu5uERkPlDy32aiHloO3OtqiBlxH344Yfnu6bZAMfAj4zMG++66675xiblwd6SryK5w89yrjPOOCM75phjYiOcX+GBLK+++ur8jX28G4LZTHMcccQR+SY21rkXV2+Yc/cqY2/w65PcV7W/R70DgUVCIAj+V61l4ERS3I11LXmWv807uJr7dIMOvUOpO/x8rHdO666R/yhcEHzVxkDIipK16jvdIXPkTQkqEjiXuF3kDjrooHx6RN9j3buGosrzYc59FO5d9iX5rdvyMhzlLIpASkGYIYFAIDBfBILgC/gbFK3pZf3Y4rO8cUe6lDXqHdqs07Jlmq5Z1W8Y1gk2REyjpEhoo65Z9uNc3J/97Ge3Ivdinb0ciQvePPs8l6aZmtqwYUN20UUX5Yqd6SovuQnvQbG14ncgMB8EguBLuLN+zF9yOyeXPaJHSAZSAxhL1XUxiJXAa/Av/Fh5ZSuegkBxWnX5+te/PjHg8IYbbsj76jyVzOQ1OProo/NnhNcmnotV771R/6EgEARf0RJIxqDps0qvgK2AordDCJ7lZ2kVa5UghuOOO66zF6P0VvieEzbFUectcIIUh+DtMC1A6Q0JBAKBYSEQBD+s9liZ0lCiCMsvBYqJtkf8qx5BD5s6VnCda1amQ0VFA4FAYBsEguC3gSQOzAoBRJYi7WeV5yLkQ8Gxx8CkV/IKRFx1ZWgR2jPKGAjMC4GV3+hmXsBHvoHAOASsRpgUif7Yxz62113qxpUvzgUCgcDwEQiCH34bRQlXEAFz2nb+q4qQ5/k45JBDgtxXsF9ElQOBJgiEi74JWnFtIDBDBGyiZEMbrnrb+Qqoc8w72H2LWA8JBAKBQGAUAjFCjEImjgcCA0DASg57LtidDsHHMrQBNEoUIRBYEASC4BekoaKYq41AWOur3f5R+0CgDQIxB98GtbgnEAgEAoFAIBAYOAJhwQ+8gYZePC+W4Tq2o9kyrctWLxvOFLfUTcv6hrQ0Tfns61/c8Ia1b/lhSCAQCKw2AkHwq93+U9XeFr6bNm3Kt/QV8Y3k6+xDP1WmPd6M0L2T/lvf+lb27W9/O99hz3bFXvyCNG3CY+25V7Z6oYr/56nUKKsXI/nY8jeVU9nsUe87iL7HDhNJBwIDRyAIfuANNNTisXCLr3v91Kc+lR122GGZl48smrCCbft67bXXZjfeeGPlHvDe2OaDSBGq4Lf169fn++Yj+lkLcvfCmfLrjSkpIu59BOc96lGPCpKfdeNEfoHAQBAY9Bx82qN8IFhFMQoIJLIrHNrmtaHFc0P9nV7LesEFF2SbN2+uJPeqsiPYz3/+89nnPve53INRdU1fx+Qt3zK5l/OjsFx33XW5YlI+F/8HAoHA8iMwd4L/67/+6/yNWKyND37wg2uIG3irNvlYuyB+zBUB89APfvCD18pgfnqPPfZY+38RfiRyv+SSS/J57DZlto++V6WOerVwmzTH3cPbYF38LbfcMu6ytXPXXHPNzMq2lmn8WAkEPD+UTYZYOQ5kJQBYgErO1UVvYDzzzDOzj3/849kXv/jF7JWvfGU+cP3u7/7uAkC32kXklj788MOzK664In/AH/3oRy/UxiuIEil75zq39jRy22235Rb1wQcf3LtSaiD1Ktm6op6mHbzIZ57xAnXLG9cNHwFxKd526HXFniHTdeJvvGJ7t912y98suMixOMNvgfolnCvBf/jDH85e/OIXZ/vvv3/+OfLIIzMf71x/2tOeVr8WceXcEHjMYx6TR3Av2gNtzv3iiy+emtwT8Eiekmp/+D4D20TLN/UWKJtBeB6xAgmf+F4OBFjsX/jCF7Z5ERIr/rvf/W52/fXXZwcddFAei7NoY8JytNDWtZgrwRsML7zwwuzZz352Xira30c/+tHsiU98Ym5xbF3U8f+96U1vGjl/qlOG9IMAV/2Qlo3VqSWL3dw0a7hL+eY3v5nvOOdFMX1KU4+DeAmWfEggMA0C+hGPnRUmo4QCKj7E2L7rrrvmlv2oa+N4/wjMleBPOeWU7G//9m/z6GvuesIi/NCHPpSdeuqpjWrPRVxcC1y8edEIqFj2+N09Aoide7EPMeed3mvfR/rStGSvCcnPY48C87Mknr0choX/oz1Z5+PIvVjJK6+8MnfVL+KqmmI9Fv33XAne6zB1BEFORTn00EPzCOU3v/nNxcNjf5900kkjzxvgQgKBhIBBKhFQOtbVt6C7Pt3h3J6msOoOtOplkJ3HMxBz/l31qvmnY979q1/9aqOCXH311bmy2+eUVaMCreDFc4+ih7lXXyY5/fTTs40bN+abifzd3/1dOhzfgUAnCHAz2simT0HyfQmitolNXXG9jXmscpilsNxnnecs67dqedn/wbPTRKz0aOJpapJ2XFsPgUEQfLGo5513XvalL32peCh+BwKdIWCQ6nt/BcFGo6aLuqiIHer22WefiUkh2GOPPbb3yP6JBZnygr68LVMWa6Vub/PMiPtoqhSsFKgzqOzgCH4GdY4sVhgBgw53Y59ijr9PUmKVr1u3LjvwwANHWsmu4RnjJh+aqxw2LLu6gX/hCeizt9ZLu20sxdD6Xr3aLs9Vc52Dr4Lx6KOPzrfYrDoXxwKBLhDo07pWPunXJa+29TEXz/Vub3zr3NNSOPOdNiASwXyf+9xnMOTOkrOa5aabbsrLiuQt21NOdRi3hC9Iom0vqXefttEe+pTCo6AAABm+SURBVCys9a0y5vpSU6EUtFUMmuYV11cjMDiCf+ELX1hd0jgaCHSEgMGrTwvboFYeIDsq+lbJGIh33HHHnCAN0hQL+Q4tqAmxC7j62te+to3i45igwSOOOCI/F4SwVRP39g8vFre7eBRTSv5H8FZoIHNLPYsvVHKMEtZkaamNb/TRkPkhMDiCnx8UkfMqIIAAvSimz7lBg6GBclYyRFJPdeeKtwGQF/SMEsFYn/jEJ/LlshSWkP4Q0O8FzIlzGvUuA0GivEIUxT333DP3FCF3Ly7y/oU6Ylplr732msvqjTrlW5VrYg5+VVo66pkjYG7aOvU+pbhHf5/5DD1tXhIv8BlH7qkOlhZedtllvQdApvxW8Zv1banb+eefP5Lci7iw6hG6Zcyse9MpYj/qyOMe97jcs1Tn2rimPwSC4PvDNlIeIAJcwOau+xKWuznlkCx353LN1xVb8Pa9hLFuWZbtOpa7TZi0R9P4EPEd55xzTr6/w7777pvtt99+Y4M7DzjggDwOZJZerGVrr67qMzs/YlcljnQCgSkRYMFzo7dZ+jMpa8rD0ObAJ5W5r/NeSNJ0KsR2vw996EPDtdtho2gDlrvtmduKdzfYgtbKjIc//OE5gWurFNzJM2befqeddsqnwGYRg9K2Lqt0XxD8KrV21DVHwBy8+US7KHYpvAPr16+f6fx7l+XvOi2k0FS4hc3bI4yQbhDgGWm6C11VzubupWMPBl4qH21lKoa1HgGSVajN91i46OeLf+Q+BwQEAD3kIQ/JrY0us/c+hO23377LJBc6rVi/Pv/mozAJqOtqaahVD0XFDbHzWAW5z7+tq0oQBF+FShxbegREBZsr7CrgzqYz3oYYA92dXcc0SFNBFjF32xS10dcLrLv55ptHX9DwjPl7JN/nMtOGRYrLxyAQBD8GnDi13Aiwtjds2JC/jGWamu6xxx55hHHMvW+NIhdu03XQYhjCPb81jtP81yW5p3KkFyql/+N7uAgEwQ+3baJkM0LAu6sFdjUV1rplQ9b7htW5LXq8JI985CO3PTHiiLdLCtQK6QYBVvatt97aTWKFVMzpd+XyLyQbP3tAIILsegA1klwsBLiS999//2z33XfPlxKN2gAk1QqZszQF1PEChFs+IbP1N1xEXCOEr3/961ufLP0Hx+OOO650NP6dBgEBcPYX6Fq46cNF3zWq/aQXBN8PrpHqgiHALey96ebkDYp2V2P9mMNkrSArioBNbFiaMVdcr4FTrMN973vf7Ctf+UrlGmxb1VpbnbbarZdyXDUJAUTcl6XddC39pLLG+X4QCILvB9dIdUERQNw+SJxFzwoymFnXG274do1KOeKq5/WwkY318XC1XNExWFMEQrpFAO5NYyDqlkDaIcNHIAh++G0UJZwTApZ59TVAzqlKc8uWcpTWTrMqKU1BEv02h75Leep6d0DKWGxk02/bdZV6BNl1hWSkEwgEArUQQA5B7rWgmvqiPoIWvRAoFN+pm2YmCQTBzwTmyCQQCAQCgdkjIHhR/EOXInAyCL5LRPtLK1z0/WEbKQcCg0GAW9yuZr7tTS4KmiVtoE7fMWgPprk6K4g4Bzss2ke+CxFkGq/07QLJ2aQRBD8bnCOXQGAuCFgR4KU63u9tgxL7iZcjq82pGrQFFfpGCiHLg8CDHvSgfFvmScs/J9XYtAplIQIiJyE1nPNB8MNpiyhJINAZAkjc+vMvf/nLmbd+jRNLAW+66ab8IxBu7733zixdix3lxqG2OOcQsm2ZWfHf/e53WxVcwOmTn/zkka+JbZVo3NQ7AjEH3zvEkUEgMFsELEFjrZ1//vkTyb1cMkvYLrnkkvzVotIJWQ4EzMUfc8wxrbZlZrkffPDBsfJhAbtCWPAL2GhR5EBgFALm1u0/ftlll02125hNaX74wx/mLtlw2Y9Ce/GOs+RvuOGG/LWvdRQ4mz9xy9sAKpbGLV57B8EvXptFiQOBSgSsLWeBT0vuKXFEYP36nnvumW/+k47H9+IiQFmzxbJ3L9g++Nvf/nb++te0pS1XvB0bxWKIljdlEy9RWtz2DoJf3LaLkgcCWyFgzp17vct9wq+77rq1Xf3CgtsK7oX9h8vd0jkvSVq35WVJqb9QEBG8D1KPvQoWtonXCh4EvwZF/AgEFhcBS9+uueaafClc17UQqLfTTjt1vp6663JGes0QQOQREd8Ms0W7OoLsFq3ForyBQAUC5sv/53/+p+LM9Iesn5c2Cy8kEAgEFgeBIPjFaasoaSBQiQDi/cY3vrHN+vbKi1seRPCW04UEAoHA4iAQBL84bRUlDQQqEWBhi5zvU2yQYxogJBAIBBYHgSD4xWmrKGkgUImAIKnvf//7lee6PIjkQwKBQGBxEAiCX5y2ipIGAiMRYMX3LaL0QwKBQGBxEAiCX5y2ipIGApUIpGVOlSc7PBgu+g7BjKQCgRkgEAQ/A5Aji0CgTwRmtV453jbXZytG2oFA9wgEwXePaaQYCMwcgVmQrx3OQgKBQGBxEAiCX5y2ipIGApUIsOBnQb477LBDZf5xMBAIBIaJQBD8MNslShUI1EbAa12987tPsYd5vD62T4Qj7UCgewSC4LvHNFIMBGaKgD3iH/awh/Wa5y677BIvHekV4Ug8EOgegSD47jGNFAOBmSPARe/Vnn2IKQBvFptVMF8fdYg0A4FVRCAIfhVbPeq8dAh4+9fee+/dCwl7vej222+/dJhFhQKBZUcgCH7ZWzjqtzIICILbf//9O63vrrvuGtZ7p4hGYoHA7BCI18XODuvIKRDIEbjjjjvyF7fceuutmbfACV7bcccd81d3TvP6Ti70hzzkIdk+++yTXXXVVVOj/YAHPCA7+OCDp04nEggEAoH5IBAEPx/cI9cVRQChf/WrX802b968zdvfRMIffvjhOTIC59oIZWHdunUZa/7SSy9t/YrXnXfeOXvMYx7TpghxTyAQCAwEgXajyEAKH8UIBBYJAVvKbtq0Kbvuuuu2IXf1+M53vpNt3Lgxt+qnqZdNb3baaafssMMOy+53v/s1Ssq9PAAHHHBAzLs3Qi4uDgSGh0BY8MNrkyjREiKA3K+//vrspptuGlu7H/zgB7nlfeihh2bWnreV7bbbLnvwgx+cSYficMMNN2SmBEwPVAmL31K43XbbLc+3KmL+Jz/5SR7EV3WuKs04FggEAvNFIAh+vvhH7iuCwI9+9KPcNV+nurfffnv23e9+dyqCT/lQEqyRR/Zp7p8S4cUxiNqcvyV2FAKR+OOmBi677LJM0J3PLLbGTXWI70AgEGiHQBB8O9zirkCgEQIIvskrXb/5zW/mAXN3uctdGuUz6mLk7WO5W5td75T/5ptvzuf0+95UZ1Qd4nggEAg0QyAIvhlecXUg0AoB7u0m4npufZb1EEQ5fv3Xfz1LbvohlCnKEAgEAuMRiCC78fjE2UCgEwSa7uPu+iHNdSdFo2k9OgEvEgkEAoFWCATBt4ItbgoEmiFgLpyLvK5Yz96Ve75unnFdIBAILBcCQfDL1Z5Rm4EigNx33333WqUT0W7jm5BAIBAIBKZBYBgTfNPUIO4NBBYAAe52G9CIXt+8ZZObUSKq/bjjjht1Oo4HAoFAIFAbgSD42lDFhYHAdAhYjmZ3OPPZ11577Ta7zLHa7SUvuG5I8+/T1TruDgQCgXkhEAQ/L+Qj35VEwDrzPffcM99QxgY01qRz3z/wgQ/M16NPsxf9SgIalQ4EAoGRCATBj4QmTgQC/SBgkxifptvI9lOaSDUQCASWFYEIslvWlo16BQKBQCAQCKw0AkHwK938UflAIBAIBAKBZUUgCH5ZWzbqFQgEAoFAILDSCATBr3TzR+UDgUAgEAgElhWBIPhlbdmoVyAQCHSOwC9+8YvO04wEA4G+EAiC7wvZSDcQCASWDoHYPnjpmnSpKxQEv9TNG5ULBAKBQCAQWFUEguBXteWj3oFAIBAIBAJLjUAQ/FI3b1QuEAgEAoFAYFURCIJf1ZaPegcCgUAgEAgsNQJB8EvdvFG5QCAQCAQCgVVFIAh+VVs+6h0IBAKBQCCw1AgEwS9180blAoFAIBAIBFYVgUES/K233rqq7RH1DgQCgUAgEAgEOkFg7gT/kY98JHve856X/fM//3P2jW98I9tvv/3yd2OvX78+27RpUyeVjEQCgUAgEAgEAoFVQ2CuBH/eeedlr3jFKzJk/sY3vjE74YQTsuc+97nZTTfdlP3+7/9+9ld/9Ver1h5R30AgEAgEAoFAoBME5krwH/3oR7PXvva12Z/92Z9lH/jABzKu+Ve96lXZzjvvnL3yla/Mrr766uz222/vpKKRSCAQCAQCgUAgsEoIzJXg99prrzU3/N5775297W1vy+56118W6ZZbbsl+9rOfZTvssMMqtUfUNRAIBAKBQCAQ6ASB7TpJpWUiT3/607MTTzwxe/7zn5+9853vzJ72tKflKX3605/OnvGMZ2SnnXZaVvflDtL56U9/WlmS733ve5XH42AgEAgEAoFAILCsCMyV4B/wgAdkn/3sZ7NrrrlmK3x333337OKLL84e+chHbnV83D9nnXXWyNMUCeT/ne98Z+Q1cSIQCAQCgUAgEFgGBHi/yVwJXgFY6HvuuaefuZx++unZIx7xiOz4449Ph6b+lv4LX/jC7J73vOfUaXWdwFVXXZXdeOON2b3uda+uk16q9H7+859n3//+92PKpkar3nbbbdn973//Gleu9iU8e9tvv/3atOBqozG69j/60Y/ycXqI4+foUs/+zB133JHd/e53z44++ujZZ17Kcccdd8yPzJ3gS+XKRNb/+Mc/7pTgX/e615WzGcz/73//+zMD8ote9KLBlGmIBaEEmbJ597vfPcTiDapMGzZsyM4999xBlWmIhXnOc56Tr97ZZZddhli8wZTprW99ax74bNo0ZDQCV1xxRfaud70re9Ob3jT6ohmfmWuQ3YzrGtkFAoFAIBAIBAIrg8DgLHjujSZz7yvTUlHRQCAQCAQCgUCgAQKDI3hz5SGBQCAQCAQCgUAgMB0C4aKfDr+4OxAIBAKBQCAQGCQCQfCDbJYoVCAQCAQCgUAgMB0CQfDT4Tf13Xe7290yn5DxCFhOud12g5tRGl/oOZ21VCdkMgL6U92NtCantrxXGJ/SDqPLW8vpawajoY1Rd/nFFpm+apFCIBAIBAKBQCAQCAwJgbDgh9QaUZZAIBAIBAKBQKAjBILgOwIykgkEAoFAIBAIBIaEQBD8kFojyhIIBAKBQCAQCHSEQBB8R0BGMoFAIBAIBAKBwJAQCIIfUmtEWQKBQCAQCAQCgY4QCILvCMhIJhAIBAKBQCAQGBICQfBDao0oSyAQCAQCgUAg0BECQfAdARnJBAKBQCAQCAQCQ0IgCH5IrRFlqYXAHXfckcX+TLWgiosmIPDTn/50whVxOhBYXASC4OfcdgaYV7/61dnjH//4/POa17wm+8lPfjLnUg03+xtvvDF7+MMfnl133XXDLeScSnbuuedmRx55ZLbHHntkT3va07Jbb711TiVZjGzf9773ZYcddthiFHYOpbzqqquyZz/72dljH/vY7Pjjj8/+7d/+bQ6lGH6WP/vZz7JXvOIV2YEHHpjts88+2Zve9KbBFDoIfs5N8a53vSu79tprs4suuij/eKje/e53z7lUw8z+7W9/e3bsscdmN9988zALOMdS/e///m/2nOc8J3vb296WXX311TnJv/KVr5xjiYabNcXnxS9+cfayl70sPEFjmunlL395dtJJJ2VXXnll9p73vCd76Utfmn3rW98ac8dqnnrrW9+a3XDDDdlll12Wffazn83e8IY3ZBdffPEgwAiCn3Mz0I5f//rXZ14Q4kMDvOCCC+ZcquFlz6vx7//+79nHPvaxbMcddxxeAedcos997nPZ3nvvne2///55P3rJS16S/cd//MecSzXM7Ddu3Jjd5z73ySjXIdUI/PznP8/+4A/+ILfgXbHrrrtmO+ywQ3b55ZdX37DCR1/0ohdl73znO/MX8njhjLGKVT8ECYKfcyscfPDB2SMf+ci8FN///vez9773vdmpp54651INL/t73OMe2Sc+8Ylszz33HF7hBlAiFsQuu+yyVpKdd945u+2227If//jHa8fixy8ReMYznpH9/d//fXbve987IBmBAKJ66lOfmiuLLqEU8XzElMa2gN3znvfMlZ/3v//92VFHHZWdcsopg8EpCH7b9prLEVrfs571rAzh/8Zv/MZcyhCZLi4C3/nOd7Ltt99+rQKJvH7wgx+sHYsfgUAbBEz5/PZv/3b2lre8JbxnYwD06mEeWN60L33pS2OunN2pIPjZYZ3n9MAHPjBjjfqceeaZ+THk/vSnPz1367DgQ7KsCqfAZTQCO+20U3b77bevXfC9730vu9e97pU94AEPWDsWPwKBpgh8+ctfzjZs2JD9+Z//+Zq7vmkaq3L9M5/5zDx+6ogjjsiVoSHUe7shFGKVynDOOeeszc+sX78+s+SL5W7O5kMf+lBO/KuEx6i6lnEadV0c/yUCD3vYw7LNmzevweH3brvttvZ//AgEmiJgpcoJJ5yQnXbaadnv/d7vNb19Za5/xzveke27777ZIYccktfZ7w9/+MODqH8Q/IybQVBdUd785jfnUfSsee5UH9b9fe973+JlK/e7jNPKAdCwwscdd1z2/Oc/P58rtVTujW98Y0z1NMQwLt8aAW753/qt38ot91tuuSU/aVwyPoXciQAPLA/HGWeckf3f//1fbsWLXxiChIt+zq2A4Ddt2pRHqT7oQQ/KfLh6QgKBJggI9DFHamARtGm/AJZXSCDQBgHLvS688MI8GDGNS77tHRCyNQLPfe5zM1NkVrGIobJnwKte9aqtL5rTf3fZsiPYL+aUd2QbCAQCHSNgysf8e8y9dwxsJBcITEDAKiiK9nbbDccxHgQ/odHidCAQCAQCgUAgsIgIhIt+EVstyhwIBAKBQCAQCExAIAh+AkBxOhAIBAKBQCAQWEQEguAXsdWizIFAIBAIBAKBwAQEguAnABSnA4FAIBAIBAKBRUQgCH4RWy3KHAgEAoFAIBAITEAgCH4CQHE6EAgEAoFAIBBYRASC4Bex1aLMgUAgEAgEAoHABASC4CcAFKcDgUAgEAgEAoFFRCAIfhFbLcocCAQCgUAgEAhMQCAIfgJAcToQCAQCgUAgEFhEBILgF7HVosyBQCAQCAQCgcAEBILgJwAUpwOBQCAQCAQCgUVEIAh+EVstyhwIBAKBQCAQCExAIAh+AkBxOhAIBAKBQCAQWEQEguAXsdWizIFAIBAIBAKBwAQEguAnABSnA4FAIBAIBAKBRUQgCH4RWy3KHAgEAoFAIBAITEAgCH4CQHE6EAgEZoPATTfdNDajH//4x9mtt9469po4GQgEAnciEAR/JxbxKxAIBOaEwAUXXJC95S1vGZv7L37xi+y5z31udscdd4y9Lk4GAoHALxG4y5aH5hcBRiAQCAQC80Lg5z//efakJz0p+8///M9s++23H1uM973vfdm3vvWt7OUvf/nY6+JkIBAIZFlY8NELAoEVR+DKK6/Mnv/852cnn3xy9uhHPzq75JJLsuc973nZy172suxBD3pQdsABB2SbNm3KUULGb33rW7MDDzwwe+hDH5r95V/+ZeYYOfbYY7PXve512c4775ydeeaZ2fHHH5+dfvrp2R577JGne+GFF2Z/+Id/mP3ar/1a9uxnPzv73ve+l9/37ne/O9t9993XyN1973znO7P169dnu+yyS/a2t70tv86fpz71qdnrX//67Lbbbls7Fj8CgUCgGoEg+Gpc4mggsDII/PCHP8z+5V/+JXvCE56QveENb8juete75v8/8IEPzL7whS9khx12WPYnf/InOR7I9h//8R+zf/qnf8o+8IEPZP/6r/+aveMd78jPffWrX83OPvvs7O1vf3uuAFx77bXZBz/4wewzn/lMdsopp2QnnHBCdt/73je74oorsq9//evZWWedld933nnnZRs2bMh/++O+9773vdlHP/rRXEF4xStesUbo9773vbO99tprTeFYuyl+BAKBwDYIBMFvA0kcCARWD4F73ete2V/8xV9kp556al75+93vftlrX/va3IJ+1rOelW3evDk/jnhf8IIX5MrA4Ycfnlv+73nPe9YA4zqXBiuevPSlL80e9rCHZc985jPzufNXv/rV2a677podc8wx2cUXX5xf85WvfCX3BuT//OqP63gTpHX/+98/+8Y3vrF2mufAPSGBQCAwHoEg+PH4xNlAYCUQQMJF4UZPYl48BbZ97Wtfyy36dI51XyTf3XbbLZ3Kv5E5YXn7vcMOO+T/3+Me91hLk/JQzM8FSUHwW/4//elP/czFtddff336N74DgUBgBAJB8COAicOBwCohcLe73W2r6t7lLnfZ6v/0z0477ZR98YtfTP9mn//857NHPOIRa/+X09luu+3Wzo36Yf79m9/85lanR+XvItc+/OEP3+r6+CcQCAS2RSAIfltM4kggEAiMQEC0u0h2QW633HJLPg9/xBFHjLi63uH9998/u+aaa+pdvOUq1z72sY+tfX1cGAisKgJB8Kva8lHvQKAFAoLt7nnPe65FxrOkUwBei+TyW5D1VVddVet2UwWC+fbbb79a18dFgcAqIxDr4Fe59aPugUBLBG6//fbs7ne/ez633jKJtdtuvvnm7NBDD80j4+usg//Yxz6WFQP71hKKH4FAILAVAkHwW8ER/wQCgcA8EPiHf/iHXGF4yUteMjb7o446Kp8iKAcFjr0pTgYCK4rA/wMI+YgW4tvsvAAAAABJRU5ErkJggg==" alt="plot of chunk unnamed-chunk-2"/></p>
+
+<h2>How does it work</h2>
+
+<p>The <strong>markdown</strong> package (&gt;= v0.6.2) supports custom HTML templates, and the <code>docco</code> engine in <strong>knitr</strong> uses a custom template to compile Markdown to HTML:</p>
+
+<pre><code class="r">knit2html(..., markdown.HTML.template = system.file(&quot;misc&quot;, &quot;docco-template.html&quot;, 
+    package = &quot;knitr&quot;))
+</code></pre>
+
+<p>That is it.</p>
+
+      <div class="fleur">h</div>
+    </div>
+  </div>
+</body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-linear.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_print.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_print.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_print.Rmd	(revision 2476)
@@ -0,0 +1,211 @@
+---
+title: "Custom Print Methods"
+author: "Yihui Xie"
+date: '`r Sys.Date()`'
+vignette: >
+  %\VignetteEngine{knitr::rmarkdown}
+  %\VignetteIndexEntry{Custom Print Methods}
+output:
+  knitr:::html_vignette:
+    toc: yes
+---
+
+Before **knitr** v1.6, printing objects in R code chunks basically emulates the R console. For example, a data frame is printed like this^[Note R prints an object without an explicit `print()` call when it is _visible_; see `?invisible`]:
+
+```{r normal-print, comment=''}
+head(mtcars)
+```
+
+The text representation of the data frame above may look very familiar with most R users, but for reporting purposes, it may not be satisfactory -- often times we want to see a table representation instead. That is the problem that the chunk option `render` and the S3 generic function `knit_print()` try to solve.
+
+## Customize Printing
+
+After we evaluate each R expression in a code chunk, there is an object returned. For example, `1 + 1` returns `2`. This object is passed to the chunk option `render`, which is a function with two arguments, `x` and `options`, or `x` and `...`. The default value for the `render` option is `knit_print`, an S3 function in **knitr**:
+
+```{r}
+library(knitr)
+knit_print  # an S3 generic function
+methods(knit_print)
+getS3method('knit_print', 'default')  # the default method
+normal_print
+```
+
+As we can see, `knit_print()` has a `default` method, which is basically `print()` or `show()`, depending on whether the object is an S4 object. This means it does nothing special when printing R objects:
+
+```{r collapse=TRUE}
+knit_print(1:10)
+knit_print(head(mtcars))
+```
+
+S3 generic functions are extensible in the sense that we can define custom methods for them. A method `knit_print.foo()` will be applied to the object that has the class `foo`. Here is quick example of how we can print data frames as tables:
+
+```{r}
+library(knitr)
+# define a method for objects of the class data.frame
+knit_print.data.frame = function(x, ...) {
+  res = paste(c('', '', kable(x)), collapse = '\n')
+  asis_output(res)
+}
+```
+
+We expect the print method to return a character vector, or an object that can be coerced into a character vector. In the example above, the `kable()` function returns a character vector, which we pass to the `asis_output()` function so that later **knitr** knows that this result needs no special treatment (just write it as is), otherwise it depends on the chunk option `results` (`= 'asis'` / `'markup'` / `'hide'`) how a normal character vector should be written. The function `asis_output()` has the same effect as `results = 'asis'`, but saves us the effort to provide this chunk option explicitly. Now we check how the printing behavior is changed. We print a number, a character vector, a list, a data frame, and write a character value using `cat()` in the chunk below:
+
+```{r knit-print}
+1 + 1
+head(letters)
+list(a = 1, b = 9:4)
+head(mtcars)
+cat('This is cool.')
+```
+
+We see all objects except the data frame were printed "normally"^[The two hashes `##` were from the chunk option `comment`; you can turn them off by `comment = ''`.]. The data frame was printed as a real table. Note you do not have to use `kable()` to create tables -- there are many other options such as **xtable**. Just make sure the print method returns a character string.
+
+In the future, I may provide a companion package with **knitr** that includes appropriate printing methods so that users only need to load this package to get attractive printed results. A major factor to consider when defining a printing method is the output format. For example, the table syntax can be entirely different when the output is LaTeX vs when it is Markdown.
+
+It is strongly recommended that your S3 method has a `...` argument, so that your method can safely ignore arguments that are passed to `knit_print()` but not defined in your method. At the moment, a `knit_print()` method can have two optional arguments:
+
+- the `options` argument takes a list of the current chunk options;
+- the `inline` argument indicates if the method is called in code chunks or inline R code;
+
+Depending on your application, you may optionally use these arguments. Here are some examples:
+
+```{r eval=FALSE, tidy=FALSE}
+knit_print.classA = function(x, ...) {
+  # ignore options and inline
+}
+knit_print.classB = function(x, options, ...) {
+  # use the chunk option out.height
+  asis_output(paste(
+    '<iframe src="http://yihui.name" height="', options$out.height, '"></iframe>',
+  ))
+}
+knit_print.classC = function(x, inline = FALSE, ...) {
+  # different output according to inline=TRUE/FALSE
+  if (inline) {
+    'inline output for classC'
+  } else {
+    'chunk output for classC'
+  }
+}
+knit_print.classD = function(x, options, inline = FALSE, ...) {
+  # use both options and inline
+}
+```
+
+## A Low-level Explanation
+
+You can skip this section if you do not care about the low-level implementation details.
+
+### The `render` option
+
+As mentioned before, the chunk option `render` is a function that defaults to `knit_print()`. We can certainly use other render functions. For example, we create a dummy function that always says "I do not know what to print" no matter what objects it receives:
+
+```{r}
+dummy_print = function(x, ...) {
+  cat("I do not know what to print!")
+  # this function implicitly returns an invisible NULL
+}
+```
+
+Now we use the chunk option `render = dummy_print`:
+
+```{r knit-print, render=dummy_print, collapse=TRUE}
+```
+
+Note the `render` function is only applied to visible objects. There are cases in which the objects returned are invisible, e.g. those wrapped in `invisible()`.
+
+```{r}
+1 + 1
+invisible(1 + 1)
+invisible(head(mtcars))
+x = 1:10  # invisibly returns 1:10
+```
+
+### Metadata
+
+The print function can have a side effect of passing "metadata" about objects to **knitr**, and **knitr** will collect this information as it prints objects. The motivation of collecting metadata is to store external dependencies of the objects to be printed. Normally we print an object only to obtain a text representation, but there are cases that can be more complicated. For example, a [**ggvis** ](http://ggvis.rstudio.com/) graph requires external JavaScript and CSS dependencies such as `ggvis.js`. The graph itself is basically a fragment of JavaScript code, which will not work unless the required libraries are loaded (in the HTML header). Therefore we need to collect the dependencies of an object beside printing the object itself.
+
+One way to specify the dependencies is through the `meta` argument of `asis_output()`. Here is a pseudo example:
+
+```{r eval=FALSE, tidy=FALSE}
+# pseudo code
+knit_print.ggvis = function(x, ...) {
+  res = ggvis::print_this_object(x)
+  knitr::asis_output(res, meta = list(
+    ggvis = list(
+      version = '0.1.0',
+      js  = system.file('www', 'js',  'ggvis.js',  package = 'ggvis'),
+      css = system.file('www', 'www', 'ggvis.css', package = 'ggvis')
+    )
+  ))
+}
+```
+
+Then when **knitr** prints a **ggvis** object, the `meta` information will be collected and stored. After knitting is done, we can obtain a list of all the dependencies via `knit_meta()`. It is very likely that there are duplicate entries in the list, and it is up to the package authors to clean them up, and process the metadata list in their own way (e.g. write the dependencies into the HTML header). We give a few more quick and dirty examples below to see how `knit_meta()` works.
+
+Now we define a print method for `foo` objects:
+
+```{r tidy=FALSE}
+library(knitr)
+knit_print.foo = function(x, ...) {
+  res = paste('**This is a `foo` object**:', x)
+  asis_output(res, meta = list(
+    js  = system.file('www', 'shared', 'shiny.js',  package = 'shiny'),
+    css = system.file('www', 'shared', 'shiny.css', package = 'shiny')
+  ))
+}
+```
+
+See what happens when we print `foo` objects:
+
+```{r}
+new_foo = function(x) structure(x, class = 'foo')
+new_foo('hello')
+```
+
+Check the metadata now:
+
+```{r}
+str(knit_meta(clean = FALSE))
+```
+
+Another `foo` object:
+
+```{r}
+new_foo('world')
+```
+
+Similarly for `bar` objects:
+
+```{r}
+knit_print.bar = function(x, ...) {
+  asis_output(x, meta = list(head = '<script>console.log("bar!")</script>'))
+}
+new_bar = function(x) structure(x, class = 'bar')
+new_bar('**hello** world!')
+new_bar('hello **world**!')
+```
+
+The final version of the metadata, and clean it up:
+
+```{r}
+str(knit_meta())
+str(knit_meta()) # empty now, because clean = TRUE by default
+```
+
+### For package authors
+
+If you are implementing a custom print method in your own package, here are two hints:
+
+1. `knit_print()` is an S3 generic function in **knitr**, so in theory you need to import it in your namespace via `importFrom(knitr, knit_print)`, but due to the "lack of rigor" of the S3 system, you can choose not to import **knitr**, and just do `export(knit_print.foo)` in the namespace, then R will find the S3 "method" after your package is attached via `library()`, because it is essentially a normal R function;
+1. `asis_output()` is simply a function that marks an object with the class `knit_asis`, and you do not have to import this function to your package, either -- just let your print method return `structure(x, class = 'knit_asis')`, and if there are additional metadata, just put it in the `knit_meta` attribute; here is the source code of this function:
+    ```{r}
+    knitr::asis_output
+    ```
+
+If you are worried about possible future changes in `asis_output()`, you can put **knitr** in the `Suggests` field in DESCRIPTION, and use `knitr::asis_output()`, so that you can avoid the "hard" dependency on **knitr**.
+
+```{r clean-up, include=FALSE}
+# R compiles all vignettes in the same session, which can be bad
+rm(list = ls(all = TRUE))
+```
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-refcard.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-refcard.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/datatables.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/datatables.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/datatables.R	(revision 2476)
@@ -0,0 +1,10 @@
+## ----cool, results='asis'------------------------------------------------
+library(knitr)
+kable(mtcars, 'html', table.attr='id="mtcars_table"')
+
+## ------------------------------------------------------------------------
+options(markdown.HTML.header = system.file('misc', 'datatables.html', package = 'knitr'))
+
+## ----boring, results='asis'----------------------------------------------
+kable(head(mtcars), 'html')
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_expand.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_expand.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_expand.R	(revision 2476)
@@ -0,0 +1,63 @@
+## ------------------------------------------------------------------------
+library(knitr)
+knit_expand(text = 'The value of pi is {{pi}}.')
+knit_expand(text = 'The value of a is {{a}}, so a + 1 is {{a+1}}.', a = rnorm(1))
+knit_expand(text = 'The area of a circle with radius {{r}} is {{pi*r^2}}', r = 5)
+
+## ------------------------------------------------------------------------
+knit_expand(text = 'a is {{a}} and b is {{b}}, with my own pi being {{pi}} instead of {{base::pi}}', a=1, b=2, pi=3)
+
+## ------------------------------------------------------------------------
+knit_expand(text = 'I do not like curly braces, so use % with <> instead: a is <% a %>.', a = 8, delim = c("<%", "%>"))
+
+## ------------------------------------------------------------------------
+knit_expand(text = 'hello $(LETTERS[24]) and $(pi)!', delim = c("$(", ")"))
+
+## ------------------------------------------------------------------------
+knit_expand(text = 'you cannot see the value of x {{x=rnorm(1)}}but it is indeed created: x = {{x}}')
+res = knit_expand(text = c(' x | x^2', '{{x=1:5;paste(sprintf("%2d | %3d", x, x^2), collapse = "\n")}}'))
+cat(res)
+
+## ------------------------------------------------------------------------
+res = knit_expand(text = c('{{i=0;h2=function(x){i<<-i+1;sprintf("<h2>%d. %s</h2>", i, x)} }}<html>',
+'{{h2("First Section")}}', '{{h2("Second Section")}}', '{{h2("Conclusion")}}', '</html>'))
+cat(res)
+
+## ----lm-cyl--------------------------------------------------------------
+lm(mpg~cyl, data=mtcars)
+
+## ----lm-disp-------------------------------------------------------------
+lm(mpg~disp, data=mtcars)
+
+## ----lm-hp---------------------------------------------------------------
+lm(mpg~hp, data=mtcars)
+
+## ----lm-drat-------------------------------------------------------------
+lm(mpg~drat, data=mtcars)
+
+## ----lm-wt---------------------------------------------------------------
+lm(mpg~wt, data=mtcars)
+
+## ----lm-qsec-------------------------------------------------------------
+lm(mpg~qsec, data=mtcars)
+
+## ----lm-vs---------------------------------------------------------------
+lm(mpg~vs, data=mtcars)
+
+## ----lm-am---------------------------------------------------------------
+lm(mpg~am, data=mtcars)
+
+## ----lm-gear-------------------------------------------------------------
+lm(mpg~gear, data=mtcars)
+
+## ----lm-carb-------------------------------------------------------------
+lm(mpg~carb, data=mtcars)
+
+## ----results='hide'------------------------------------------------------
+src = lapply(names(mtcars)[-1], function(i) {
+knit_expand(text=c("# Regression on {{i}}", '```{r lm-{{i}}}', 'lm(mpg~{{i}}, data=mtcars)', '```'))
+})
+# knit the source
+res = knit_child(text = unlist(src))
+res = paste('<pre><code>', gsub('^\\s*|\\s*$', '', res), '</code></pre>', sep = '')
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-classic.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-classic.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-classic.R	(revision 2476)
@@ -0,0 +1,26 @@
+## ----hello, results='asis'-----------------------------------------------
+cat('_hello_ **markdown**!', '\n')
+
+## ------------------------------------------------------------------------
+1+1
+10:1
+rnorm(5)^2
+strsplit('hello, markdown vignettes', '')
+
+## ------------------------------------------------------------------------
+n=300; set.seed(123)
+par(mar=c(4,4,.1,.1))
+plot(rnorm(n), rnorm(n), pch=21, cex=5*runif(n), col='white', bg='gray')
+
+## ------------------------------------------------------------------------
+head(knitr::rocco, 5)
+
+## ----setup, echo=FALSE, results='asis'-----------------------------------
+x = readLines('docco-linear.Rmd')[-(1:7)]
+x = gsub('linear', 'classic', x)
+i = grep('^knit2html[(][.]{3}', x)
+x[i - 1] = '```{r}'
+x[i] = 'head(knitr::rocco, 5)'
+library(knitr)
+cat(knit_child(text = x, quiet = TRUE), sep = '\n')
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-markdown.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-markdown.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-markdown.R	(revision 2476)
@@ -0,0 +1,25 @@
+## ----setup, include=FALSE------------------------------------------------
+library(knitr)
+
+## ----eval=FALSE----------------------------------------------------------
+#  help(package = 'YourPackage', help_type = 'html')
+#  # or see a standalone list of vignettes
+#  browseVignettes('YourPackage')
+
+## ----hello, results='asis'-----------------------------------------------
+if (TRUE) cat('_hello_ **markdown**!', '\n')
+
+## ----test, collapse=TRUE-------------------------------------------------
+1+1
+10:1
+rnorm(5)^2
+strsplit('hello, markdown vignettes', '')
+
+## ------------------------------------------------------------------------
+n=300; set.seed(123)
+par(mar=c(4,4,.1,.1))
+plot(rnorm(n), rnorm(n), pch=21, cex=5*runif(n), col='white', bg='gray')
+
+## ----css, eval=FALSE-----------------------------------------------------
+#  options(markdown.HTML.stylesheet = 'path/to/a/custom/style.css')
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/datatables.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/datatables.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/datatables.html	(revision 2476)
@@ -0,0 +1,827 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+
+<title>jQuery DataTables</title>
+
+<script type="text/javascript">
+window.onload = function() {
+  var imgs = document.getElementsByTagName('img'), i, img;
+  for (i = 0; i < imgs.length; i++) {
+    img = imgs[i];
+    // center an image if it is the only element of its parent
+    if (img.parentElement.childElementCount === 1)
+      img.parentElement.style.textAlign = 'center';
+  }
+};
+</script>
+
+<!-- Styles for R syntax highlighter -->
+<style type="text/css">
+   pre .operator,
+   pre .paren {
+     color: rgb(104, 118, 135)
+   }
+
+   pre .literal {
+     color: #990073
+   }
+
+   pre .number {
+     color: #099;
+   }
+
+   pre .comment {
+     color: #998;
+     font-style: italic
+   }
+
+   pre .keyword {
+     color: #900;
+     font-weight: bold
+   }
+
+   pre .identifier {
+     color: rgb(0, 0, 0);
+   }
+
+   pre .string {
+     color: #d14;
+   }
+</style>
+
+<!-- R syntax highlighter -->
+<script type="text/javascript">
+var hljs=new function(){function m(p){return p.replace(/&/gm,"&amp;").replace(/</gm,"&lt;")}function f(r,q,p){return RegExp(q,"m"+(r.cI?"i":"")+(p?"g":""))}function b(r){for(var p=0;p<r.childNodes.length;p++){var q=r.childNodes[p];if(q.nodeName=="CODE"){return q}if(!(q.nodeType==3&&q.nodeValue.match(/\s+/))){break}}}function h(t,s){var p="";for(var r=0;r<t.childNodes.length;r++){if(t.childNodes[r].nodeType==3){var q=t.childNodes[r].nodeValue;if(s){q=q.replace(/\n/g,"")}p+=q}else{if(t.childNodes[r].nodeName=="BR"){p+="\n"}else{p+=h(t.childNodes[r])}}}if(/MSIE [678]/.test(navigator.userAgent)){p=p.replace(/\r/g,"\n")}return p}function a(s){var r=s.className.split(/\s+/);r=r.concat(s.parentNode.className.split(/\s+/));for(var q=0;q<r.length;q++){var p=r[q].replace(/^language-/,"");if(e[p]){return p}}}function c(q){var p=[];(function(s,t){for(var r=0;r<s.childNodes.length;r++){if(s.childNodes[r].nodeType==3){t+=s.childNodes[r].nodeValue.length}else{if(s.childNodes[r].nodeName=="BR"){t+=1}else{if(s.childNodes[r].nodeType==1){p.push({event:"start",offset:t,node:s.childNodes[r]});t=arguments.callee(s.childNodes[r],t);p.push({event:"stop",offset:t,node:s.childNodes[r]})}}}}return t})(q,0);return p}function k(y,w,x){var q=0;var z="";var s=[];function u(){if(y.length&&w.length){if(y[0].offset!=w[0].offset){return(y[0].offset<w[0].offset)?y:w}else{return w[0].event=="start"?y:w}}else{return y.length?y:w}}function t(D){var A="<"+D.nodeName.toLowerCase();for(var B=0;B<D.attributes.length;B++){var C=D.attributes[B];A+=" "+C.nodeName.toLowerCase();if(C.value!==undefined&&C.value!==false&&C.value!==null){A+='="'+m(C.value)+'"'}}return A+">"}while(y.length||w.length){var v=u().splice(0,1)[0];z+=m(x.substr(q,v.offset-q));q=v.offset;if(v.event=="start"){z+=t(v.node);s.push(v.node)}else{if(v.event=="stop"){var p,r=s.length;do{r--;p=s[r];z+=("</"+p.nodeName.toLowerCase()+">")}while(p!=v.node);s.splice(r,1);while(r<s.length){z+=t(s[r]);r++}}}}return z+m(x.substr(q))}function j(){function q(x,y,v){if(x.compiled){return}var u;var s=[];if(x.k){x.lR=f(y,x.l||hljs.IR,true);for(var w in x.k){if(!x.k.hasOwnProperty(w)){continue}if(x.k[w] instanceof Object){u=x.k[w]}else{u=x.k;w="keyword"}for(var r in u){if(!u.hasOwnProperty(r)){continue}x.k[r]=[w,u[r]];s.push(r)}}}if(!v){if(x.bWK){x.b="\\b("+s.join("|")+")\\s"}x.bR=f(y,x.b?x.b:"\\B|\\b");if(!x.e&&!x.eW){x.e="\\B|\\b"}if(x.e){x.eR=f(y,x.e)}}if(x.i){x.iR=f(y,x.i)}if(x.r===undefined){x.r=1}if(!x.c){x.c=[]}x.compiled=true;for(var t=0;t<x.c.length;t++){if(x.c[t]=="self"){x.c[t]=x}q(x.c[t],y,false)}if(x.starts){q(x.starts,y,false)}}for(var p in e){if(!e.hasOwnProperty(p)){continue}q(e[p].dM,e[p],true)}}function d(B,C){if(!j.called){j();j.called=true}function q(r,M){for(var L=0;L<M.c.length;L++){if((M.c[L].bR.exec(r)||[null])[0]==r){return M.c[L]}}}function v(L,r){if(D[L].e&&D[L].eR.test(r)){return 1}if(D[L].eW){var M=v(L-1,r);return M?M+1:0}return 0}function w(r,L){return L.i&&L.iR.test(r)}function K(N,O){var M=[];for(var L=0;L<N.c.length;L++){M.push(N.c[L].b)}var r=D.length-1;do{if(D[r].e){M.push(D[r].e)}r--}while(D[r+1].eW);if(N.i){M.push(N.i)}return f(O,M.join("|"),true)}function p(M,L){var N=D[D.length-1];if(!N.t){N.t=K(N,E)}N.t.lastIndex=L;var r=N.t.exec(M);return r?[M.substr(L,r.index-L),r[0],false]:[M.substr(L),"",true]}function z(N,r){var L=E.cI?r[0].toLowerCase():r[0];var M=N.k[L];if(M&&M instanceof Array){return M}return false}function F(L,P){L=m(L);if(!P.k){return L}var r="";var O=0;P.lR.lastIndex=0;var M=P.lR.exec(L);while(M){r+=L.substr(O,M.index-O);var N=z(P,M);if(N){x+=N[1];r+='<span class="'+N[0]+'">'+M[0]+"</span>"}else{r+=M[0]}O=P.lR.lastIndex;M=P.lR.exec(L)}return r+L.substr(O,L.length-O)}function J(L,M){if(M.sL&&e[M.sL]){var r=d(M.sL,L);x+=r.keyword_count;return r.value}else{return F(L,M)}}function I(M,r){var L=M.cN?'<span class="'+M.cN+'">':"";if(M.rB){y+=L;M.buffer=""}else{if(M.eB){y+=m(r)+L;M.buffer=""}else{y+=L;M.buffer=r}}D.push(M);A+=M.r}function G(N,M,Q){var R=D[D.length-1];if(Q){y+=J(R.buffer+N,R);return false}var P=q(M,R);if(P){y+=J(R.buffer+N,R);I(P,M);return P.rB}var L=v(D.length-1,M);if(L){var O=R.cN?"</span>":"";if(R.rE){y+=J(R.buffer+N,R)+O}else{if(R.eE){y+=J(R.buffer+N,R)+O+m(M)}else{y+=J(R.buffer+N+M,R)+O}}while(L>1){O=D[D.length-2].cN?"</span>":"";y+=O;L--;D.length--}var r=D[D.length-1];D.length--;D[D.length-1].buffer="";if(r.starts){I(r.starts,"")}return R.rE}if(w(M,R)){throw"Illegal"}}var E=e[B];var D=[E.dM];var A=0;var x=0;var y="";try{var s,u=0;E.dM.buffer="";do{s=p(C,u);var t=G(s[0],s[1],s[2]);u+=s[0].length;if(!t){u+=s[1].length}}while(!s[2]);if(D.length>1){throw"Illegal"}return{r:A,keyword_count:x,value:y}}catch(H){if(H=="Illegal"){return{r:0,keyword_count:0,value:m(C)}}else{throw H}}}function g(t){var p={keyword_count:0,r:0,value:m(t)};var r=p;for(var q in e){if(!e.hasOwnProperty(q)){continue}var s=d(q,t);s.language=q;if(s.keyword_count+s.r>r.keyword_count+r.r){r=s}if(s.keyword_count+s.r>p.keyword_count+p.r){r=p;p=s}}if(r.language){p.second_best=r}return p}function i(r,q,p){if(q){r=r.replace(/^((<[^>]+>|\t)+)/gm,function(t,w,v,u){return w.replace(/\t/g,q)})}if(p){r=r.replace(/\n/g,"<br>")}return r}function n(t,w,r){var x=h(t,r);var v=a(t);var y,s;if(v){y=d(v,x)}else{return}var q=c(t);if(q.length){s=document.createElement("pre");s.innerHTML=y.value;y.value=k(q,c(s),x)}y.value=i(y.value,w,r);var u=t.className;if(!u.match("(\\s|^)(language-)?"+v+"(\\s|$)")){u=u?(u+" "+v):v}if(/MSIE [678]/.test(navigator.userAgent)&&t.tagName=="CODE"&&t.parentNode.tagName=="PRE"){s=t.parentNode;var p=document.createElement("div");p.innerHTML="<pre><code>"+y.value+"</code></pre>";t=p.firstChild.firstChild;p.firstChild.cN=s.cN;s.parentNode.replaceChild(p.firstChild,s)}else{t.innerHTML=y.value}t.className=u;t.result={language:v,kw:y.keyword_count,re:y.r};if(y.second_best){t.second_best={language:y.second_best.language,kw:y.second_best.keyword_count,re:y.second_best.r}}}function o(){if(o.called){return}o.called=true;var r=document.getElementsByTagName("pre");for(var p=0;p<r.length;p++){var q=b(r[p]);if(q){n(q,hljs.tabReplace)}}}function l(){if(window.addEventListener){window.addEventListener("DOMContentLoaded",o,false);window.addEventListener("load",o,false)}else{if(window.attachEvent){window.attachEvent("onload",o)}else{window.onload=o}}}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=n;this.initHighlighting=o;this.initHighlightingOnLoad=l;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="\\b(0[xX][a-fA-F0-9]+|(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.ER="(?![\\s\\S])";this.BE={b:"\\\\.",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.inherit=function(r,s){var p={};for(var q in r){p[q]=r[q]}if(s){for(var q in s){p[q]=s[q]}}return p}}();hljs.LANGUAGES.cpp=function(){var a={keyword:{"false":1,"int":1,"float":1,"while":1,"private":1,"char":1,"catch":1,"export":1,virtual:1,operator:2,sizeof:2,dynamic_cast:2,typedef:2,const_cast:2,"const":1,struct:1,"for":1,static_cast:2,union:1,namespace:1,unsigned:1,"long":1,"throw":1,"volatile":2,"static":1,"protected":1,bool:1,template:1,mutable:1,"if":1,"public":1,friend:2,"do":1,"return":1,"goto":1,auto:1,"void":2,"enum":1,"else":1,"break":1,"new":1,extern:1,using:1,"true":1,"class":1,asm:1,"case":1,typeid:1,"short":1,reinterpret_cast:2,"default":1,"double":1,register:1,explicit:1,signed:1,typename:1,"try":1,"this":1,"switch":1,"continue":1,wchar_t:1,inline:1,"delete":1,alignof:1,char16_t:1,char32_t:1,constexpr:1,decltype:1,noexcept:1,nullptr:1,static_assert:1,thread_local:1,restrict:1,_Bool:1,complex:1},built_in:{std:1,string:1,cin:1,cout:1,cerr:1,clog:1,stringstream:1,istringstream:1,ostringstream:1,auto_ptr:1,deque:1,list:1,queue:1,stack:1,vector:1,map:1,set:1,bitset:1,multiset:1,multimap:1,unordered_set:1,unordered_map:1,unordered_multiset:1,unordered_multimap:1,array:1,shared_ptr:1}};return{dM:{k:a,i:"</",c:[hljs.CLCM,hljs.CBLCLM,hljs.QSM,{cN:"string",b:"'\\\\?.",e:"'",i:"."},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},hljs.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:a,r:10,c:["self"]}]}}}();hljs.LANGUAGES.r={dM:{c:[hljs.HCM,{cN:"number",b:"\\b0[xX][0-9a-fA-F]+[Li]?\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\b\\d+(?:[eE][+\\-]?\\d*)?L\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\b\\d+\\.(?!\\d)(?:i\\b)?",e:hljs.IMMEDIATE_RE,r:1},{cN:"number",b:"\\b\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"keyword",b:"(?:tryCatch|library|setGeneric|setGroupGeneric)\\b",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\.\\.\\.",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\.\\.\\d+(?![\\w.])",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\b(?:function)",e:hljs.IMMEDIATE_RE,r:2},{cN:"keyword",b:"(?:if|in|break|next|repeat|else|for|return|switch|while|try|stop|warning|require|attach|detach|source|setMethod|setClass)\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"literal",b:"(?:NA|NA_integer_|NA_real_|NA_character_|NA_complex_)\\b",e:hljs.IMMEDIATE_RE,r:10},{cN:"literal",b:"(?:NULL|TRUE|FALSE|T|F|Inf|NaN)\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"identifier",b:"[a-zA-Z.][a-zA-Z0-9._]*\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"operator",b:"<\\-(?!\\s*\\d)",e:hljs.IMMEDIATE_RE,r:2},{cN:"operator",b:"\\->|<\\-",e:hljs.IMMEDIATE_RE,r:1},{cN:"operator",b:"%%|~",e:hljs.IMMEDIATE_RE},{cN:"operator",b:">=|<=|==|!=|\\|\\||&&|=|\\+|\\-|\\*|/|\\^|>|<|!|&|\\||\\$|:",e:hljs.IMMEDIATE_RE,r:0},{cN:"operator",b:"%",e:"%",i:"\\n",r:1},{cN:"identifier",b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[hljs.BE],r:0},{cN:"string",b:"'",e:"'",c:[hljs.BE],r:0},{cN:"paren",b:"[[({\\])}]",e:hljs.IMMEDIATE_RE,r:0}]}};
+hljs.initHighlightingOnLoad();
+</script>
+
+
+
+<style type="text/css">
+body, td {
+   font-family: sans-serif;
+   background-color: white;
+   font-size: 13px;
+}
+
+body {
+  max-width: 800px;
+  margin: auto;
+  padding: 1em;
+  line-height: 20px;
+}
+
+tt, code, pre {
+   font-family: 'DejaVu Sans Mono', 'Droid Sans Mono', 'Lucida Console', Consolas, Monaco, monospace;
+}
+
+h1 {
+   font-size:2.2em;
+}
+
+h2 {
+   font-size:1.8em;
+}
+
+h3 {
+   font-size:1.4em;
+}
+
+h4 {
+   font-size:1.0em;
+}
+
+h5 {
+   font-size:0.9em;
+}
+
+h6 {
+   font-size:0.8em;
+}
+
+a:visited {
+   color: rgb(50%, 0%, 50%);
+}
+
+pre, img {
+  max-width: 100%;
+}
+pre {
+  overflow-x: auto;
+}
+pre code {
+   display: block; padding: 0.5em;
+}
+
+code {
+  font-size: 92%;
+  border: 1px solid #ccc;
+}
+
+code[class] {
+  background-color: #F8F8F8;
+}
+
+table, td, th {
+  border: none;
+}
+
+blockquote {
+   color:#666666;
+   margin:0;
+   padding-left: 1em;
+   border-left: 0.5em #EEE solid;
+}
+
+hr {
+   height: 0px;
+   border-bottom: none;
+   border-top-width: thin;
+   border-top-style: dotted;
+   border-top-color: #999999;
+}
+
+@media print {
+   * {
+      background: transparent !important;
+      color: black !important;
+      filter:none !important;
+      -ms-filter: none !important;
+   }
+
+   body {
+      font-size:12pt;
+      max-width:100%;
+   }
+
+   a, a:visited {
+      text-decoration: underline;
+   }
+
+   hr {
+      visibility: hidden;
+      page-break-before: always;
+   }
+
+   pre, blockquote {
+      padding-right: 1em;
+      page-break-inside: avoid;
+   }
+
+   tr, img {
+      page-break-inside: avoid;
+   }
+
+   img {
+      max-width: 100% !important;
+   }
+
+   @page :left {
+      margin: 15mm 20mm 15mm 10mm;
+   }
+
+   @page :right {
+      margin: 15mm 10mm 15mm 20mm;
+   }
+
+   p, h2, h3 {
+      orphans: 3; widows: 3;
+   }
+
+   h2, h3 {
+      page-break-after: avoid;
+   }
+}
+</style>
+
+<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.3/css/jquery.dataTables.css">
+<script type="text/javascript" charset="utf8" src="//code.jquery.com/jquery-2.1.1.min.js"></script>
+<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.3/js/jquery.dataTables.js"></script>
+<style type="text/css">
+p{clear:both;}
+</style>
+
+</head>
+
+<body>
+<!--
+%\VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{Display Tables with the JavaScript Library DataTables}
+-->
+
+<h1>jQuery DataTables</h1>
+
+<p>We can use the JavaScript library <a href="http://www.datatables.net"><strong>DataTables</strong></a> to generate enhanced tables in HTML. In the example below, we create a table for the <code>mtcars</code> data:</p>
+
+<pre><code class="r">library(knitr)
+kable(mtcars, &quot;html&quot;, table.attr = &quot;id=\&quot;mtcars_table\&quot;&quot;)
+</code></pre>
+
+<table id="mtcars_table">
+ <thead>
+  <tr>
+   <th style="text-align:left;">   </th>
+   <th style="text-align:right;"> mpg </th>
+   <th style="text-align:right;"> cyl </th>
+   <th style="text-align:right;"> disp </th>
+   <th style="text-align:right;"> hp </th>
+   <th style="text-align:right;"> drat </th>
+   <th style="text-align:right;"> wt </th>
+   <th style="text-align:right;"> qsec </th>
+   <th style="text-align:right;"> vs </th>
+   <th style="text-align:right;"> am </th>
+   <th style="text-align:right;"> gear </th>
+   <th style="text-align:right;"> carb </th>
+  </tr>
+ </thead>
+<tbody>
+  <tr>
+   <td style="text-align:left;"> Mazda RX4 </td>
+   <td style="text-align:right;"> 21.0 </td>
+   <td style="text-align:right;"> 6 </td>
+   <td style="text-align:right;"> 160.0 </td>
+   <td style="text-align:right;"> 110 </td>
+   <td style="text-align:right;"> 3.90 </td>
+   <td style="text-align:right;"> 2.620 </td>
+   <td style="text-align:right;"> 16.46 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 4 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Mazda RX4 Wag </td>
+   <td style="text-align:right;"> 21.0 </td>
+   <td style="text-align:right;"> 6 </td>
+   <td style="text-align:right;"> 160.0 </td>
+   <td style="text-align:right;"> 110 </td>
+   <td style="text-align:right;"> 3.90 </td>
+   <td style="text-align:right;"> 2.875 </td>
+   <td style="text-align:right;"> 17.02 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 4 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Datsun 710 </td>
+   <td style="text-align:right;"> 22.8 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 108.0 </td>
+   <td style="text-align:right;"> 93 </td>
+   <td style="text-align:right;"> 3.85 </td>
+   <td style="text-align:right;"> 2.320 </td>
+   <td style="text-align:right;"> 18.61 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 1 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Hornet 4 Drive </td>
+   <td style="text-align:right;"> 21.4 </td>
+   <td style="text-align:right;"> 6 </td>
+   <td style="text-align:right;"> 258.0 </td>
+   <td style="text-align:right;"> 110 </td>
+   <td style="text-align:right;"> 3.08 </td>
+   <td style="text-align:right;"> 3.215 </td>
+   <td style="text-align:right;"> 19.44 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 1 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Hornet Sportabout </td>
+   <td style="text-align:right;"> 18.7 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 360.0 </td>
+   <td style="text-align:right;"> 175 </td>
+   <td style="text-align:right;"> 3.15 </td>
+   <td style="text-align:right;"> 3.440 </td>
+   <td style="text-align:right;"> 17.02 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 2 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Valiant </td>
+   <td style="text-align:right;"> 18.1 </td>
+   <td style="text-align:right;"> 6 </td>
+   <td style="text-align:right;"> 225.0 </td>
+   <td style="text-align:right;"> 105 </td>
+   <td style="text-align:right;"> 2.76 </td>
+   <td style="text-align:right;"> 3.460 </td>
+   <td style="text-align:right;"> 20.22 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 1 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Duster 360 </td>
+   <td style="text-align:right;"> 14.3 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 360.0 </td>
+   <td style="text-align:right;"> 245 </td>
+   <td style="text-align:right;"> 3.21 </td>
+   <td style="text-align:right;"> 3.570 </td>
+   <td style="text-align:right;"> 15.84 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 4 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Merc 240D </td>
+   <td style="text-align:right;"> 24.4 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 146.7 </td>
+   <td style="text-align:right;"> 62 </td>
+   <td style="text-align:right;"> 3.69 </td>
+   <td style="text-align:right;"> 3.190 </td>
+   <td style="text-align:right;"> 20.00 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 2 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Merc 230 </td>
+   <td style="text-align:right;"> 22.8 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 140.8 </td>
+   <td style="text-align:right;"> 95 </td>
+   <td style="text-align:right;"> 3.92 </td>
+   <td style="text-align:right;"> 3.150 </td>
+   <td style="text-align:right;"> 22.90 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 2 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Merc 280 </td>
+   <td style="text-align:right;"> 19.2 </td>
+   <td style="text-align:right;"> 6 </td>
+   <td style="text-align:right;"> 167.6 </td>
+   <td style="text-align:right;"> 123 </td>
+   <td style="text-align:right;"> 3.92 </td>
+   <td style="text-align:right;"> 3.440 </td>
+   <td style="text-align:right;"> 18.30 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 4 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Merc 280C </td>
+   <td style="text-align:right;"> 17.8 </td>
+   <td style="text-align:right;"> 6 </td>
+   <td style="text-align:right;"> 167.6 </td>
+   <td style="text-align:right;"> 123 </td>
+   <td style="text-align:right;"> 3.92 </td>
+   <td style="text-align:right;"> 3.440 </td>
+   <td style="text-align:right;"> 18.90 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 4 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Merc 450SE </td>
+   <td style="text-align:right;"> 16.4 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 275.8 </td>
+   <td style="text-align:right;"> 180 </td>
+   <td style="text-align:right;"> 3.07 </td>
+   <td style="text-align:right;"> 4.070 </td>
+   <td style="text-align:right;"> 17.40 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 3 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Merc 450SL </td>
+   <td style="text-align:right;"> 17.3 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 275.8 </td>
+   <td style="text-align:right;"> 180 </td>
+   <td style="text-align:right;"> 3.07 </td>
+   <td style="text-align:right;"> 3.730 </td>
+   <td style="text-align:right;"> 17.60 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 3 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Merc 450SLC </td>
+   <td style="text-align:right;"> 15.2 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 275.8 </td>
+   <td style="text-align:right;"> 180 </td>
+   <td style="text-align:right;"> 3.07 </td>
+   <td style="text-align:right;"> 3.780 </td>
+   <td style="text-align:right;"> 18.00 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 3 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Cadillac Fleetwood </td>
+   <td style="text-align:right;"> 10.4 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 472.0 </td>
+   <td style="text-align:right;"> 205 </td>
+   <td style="text-align:right;"> 2.93 </td>
+   <td style="text-align:right;"> 5.250 </td>
+   <td style="text-align:right;"> 17.98 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 4 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Lincoln Continental </td>
+   <td style="text-align:right;"> 10.4 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 460.0 </td>
+   <td style="text-align:right;"> 215 </td>
+   <td style="text-align:right;"> 3.00 </td>
+   <td style="text-align:right;"> 5.424 </td>
+   <td style="text-align:right;"> 17.82 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 4 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Chrysler Imperial </td>
+   <td style="text-align:right;"> 14.7 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 440.0 </td>
+   <td style="text-align:right;"> 230 </td>
+   <td style="text-align:right;"> 3.23 </td>
+   <td style="text-align:right;"> 5.345 </td>
+   <td style="text-align:right;"> 17.42 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 4 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Fiat 128 </td>
+   <td style="text-align:right;"> 32.4 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 78.7 </td>
+   <td style="text-align:right;"> 66 </td>
+   <td style="text-align:right;"> 4.08 </td>
+   <td style="text-align:right;"> 2.200 </td>
+   <td style="text-align:right;"> 19.47 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 1 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Honda Civic </td>
+   <td style="text-align:right;"> 30.4 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 75.7 </td>
+   <td style="text-align:right;"> 52 </td>
+   <td style="text-align:right;"> 4.93 </td>
+   <td style="text-align:right;"> 1.615 </td>
+   <td style="text-align:right;"> 18.52 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 2 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Toyota Corolla </td>
+   <td style="text-align:right;"> 33.9 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 71.1 </td>
+   <td style="text-align:right;"> 65 </td>
+   <td style="text-align:right;"> 4.22 </td>
+   <td style="text-align:right;"> 1.835 </td>
+   <td style="text-align:right;"> 19.90 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 1 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Toyota Corona </td>
+   <td style="text-align:right;"> 21.5 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 120.1 </td>
+   <td style="text-align:right;"> 97 </td>
+   <td style="text-align:right;"> 3.70 </td>
+   <td style="text-align:right;"> 2.465 </td>
+   <td style="text-align:right;"> 20.01 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 1 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Dodge Challenger </td>
+   <td style="text-align:right;"> 15.5 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 318.0 </td>
+   <td style="text-align:right;"> 150 </td>
+   <td style="text-align:right;"> 2.76 </td>
+   <td style="text-align:right;"> 3.520 </td>
+   <td style="text-align:right;"> 16.87 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 2 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> AMC Javelin </td>
+   <td style="text-align:right;"> 15.2 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 304.0 </td>
+   <td style="text-align:right;"> 150 </td>
+   <td style="text-align:right;"> 3.15 </td>
+   <td style="text-align:right;"> 3.435 </td>
+   <td style="text-align:right;"> 17.30 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 2 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Camaro Z28 </td>
+   <td style="text-align:right;"> 13.3 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 350.0 </td>
+   <td style="text-align:right;"> 245 </td>
+   <td style="text-align:right;"> 3.73 </td>
+   <td style="text-align:right;"> 3.840 </td>
+   <td style="text-align:right;"> 15.41 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 4 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Pontiac Firebird </td>
+   <td style="text-align:right;"> 19.2 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 400.0 </td>
+   <td style="text-align:right;"> 175 </td>
+   <td style="text-align:right;"> 3.08 </td>
+   <td style="text-align:right;"> 3.845 </td>
+   <td style="text-align:right;"> 17.05 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 2 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Fiat X1-9 </td>
+   <td style="text-align:right;"> 27.3 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 79.0 </td>
+   <td style="text-align:right;"> 66 </td>
+   <td style="text-align:right;"> 4.08 </td>
+   <td style="text-align:right;"> 1.935 </td>
+   <td style="text-align:right;"> 18.90 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 1 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Porsche 914-2 </td>
+   <td style="text-align:right;"> 26.0 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 120.3 </td>
+   <td style="text-align:right;"> 91 </td>
+   <td style="text-align:right;"> 4.43 </td>
+   <td style="text-align:right;"> 2.140 </td>
+   <td style="text-align:right;"> 16.70 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 5 </td>
+   <td style="text-align:right;"> 2 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Lotus Europa </td>
+   <td style="text-align:right;"> 30.4 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 95.1 </td>
+   <td style="text-align:right;"> 113 </td>
+   <td style="text-align:right;"> 3.77 </td>
+   <td style="text-align:right;"> 1.513 </td>
+   <td style="text-align:right;"> 16.90 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 5 </td>
+   <td style="text-align:right;"> 2 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Ford Pantera L </td>
+   <td style="text-align:right;"> 15.8 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 351.0 </td>
+   <td style="text-align:right;"> 264 </td>
+   <td style="text-align:right;"> 4.22 </td>
+   <td style="text-align:right;"> 3.170 </td>
+   <td style="text-align:right;"> 14.50 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 5 </td>
+   <td style="text-align:right;"> 4 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Ferrari Dino </td>
+   <td style="text-align:right;"> 19.7 </td>
+   <td style="text-align:right;"> 6 </td>
+   <td style="text-align:right;"> 145.0 </td>
+   <td style="text-align:right;"> 175 </td>
+   <td style="text-align:right;"> 3.62 </td>
+   <td style="text-align:right;"> 2.770 </td>
+   <td style="text-align:right;"> 15.50 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 5 </td>
+   <td style="text-align:right;"> 6 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Maserati Bora </td>
+   <td style="text-align:right;"> 15.0 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 301.0 </td>
+   <td style="text-align:right;"> 335 </td>
+   <td style="text-align:right;"> 3.54 </td>
+   <td style="text-align:right;"> 3.570 </td>
+   <td style="text-align:right;"> 14.60 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 5 </td>
+   <td style="text-align:right;"> 8 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Volvo 142E </td>
+   <td style="text-align:right;"> 21.4 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 121.0 </td>
+   <td style="text-align:right;"> 109 </td>
+   <td style="text-align:right;"> 4.11 </td>
+   <td style="text-align:right;"> 2.780 </td>
+   <td style="text-align:right;"> 18.60 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 2 </td>
+  </tr>
+</tbody>
+</table>
+
+<p>Note we assigned an <code>id</code> to the table, and next we use the <strong>DataTables</strong> library to tweak the table.</p>
+
+<pre><code class="js">&lt;script type=&quot;text/javascript&quot;&gt;
+    $(document).ready(function() {
+        $(&#39;#mtcars_table&#39;).DataTable();
+    } );
+&lt;/script&gt;
+</code></pre>
+
+<script type="text/javascript">
+  $(document).ready(function() {
+        $('#mtcars_table').DataTable();
+    } );
+</script>
+
+<p>Since this is a Markdown vignette, we need to add the JavaScript libraries as well as some additional CSS files to the HTML header, and this can be done via:</p>
+
+<pre><code class="r">options(markdown.HTML.header = system.file(&quot;misc&quot;, &quot;datatables.html&quot;, package = &quot;knitr&quot;))
+</code></pre>
+
+<p>The file <code>datatables.html</code> under the <code>misc</code> directory of <strong>knitr</strong> was added to the HTML output.</p>
+
+<p>By comparison, below is an ordinary table:</p>
+
+<pre><code class="r">kable(head(mtcars), &quot;html&quot;)
+</code></pre>
+
+<table>
+ <thead>
+  <tr>
+   <th style="text-align:left;">   </th>
+   <th style="text-align:right;"> mpg </th>
+   <th style="text-align:right;"> cyl </th>
+   <th style="text-align:right;"> disp </th>
+   <th style="text-align:right;"> hp </th>
+   <th style="text-align:right;"> drat </th>
+   <th style="text-align:right;"> wt </th>
+   <th style="text-align:right;"> qsec </th>
+   <th style="text-align:right;"> vs </th>
+   <th style="text-align:right;"> am </th>
+   <th style="text-align:right;"> gear </th>
+   <th style="text-align:right;"> carb </th>
+  </tr>
+ </thead>
+<tbody>
+  <tr>
+   <td style="text-align:left;"> Mazda RX4 </td>
+   <td style="text-align:right;"> 21.0 </td>
+   <td style="text-align:right;"> 6 </td>
+   <td style="text-align:right;"> 160 </td>
+   <td style="text-align:right;"> 110 </td>
+   <td style="text-align:right;"> 3.90 </td>
+   <td style="text-align:right;"> 2.620 </td>
+   <td style="text-align:right;"> 16.46 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 4 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Mazda RX4 Wag </td>
+   <td style="text-align:right;"> 21.0 </td>
+   <td style="text-align:right;"> 6 </td>
+   <td style="text-align:right;"> 160 </td>
+   <td style="text-align:right;"> 110 </td>
+   <td style="text-align:right;"> 3.90 </td>
+   <td style="text-align:right;"> 2.875 </td>
+   <td style="text-align:right;"> 17.02 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 4 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Datsun 710 </td>
+   <td style="text-align:right;"> 22.8 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 108 </td>
+   <td style="text-align:right;"> 93 </td>
+   <td style="text-align:right;"> 3.85 </td>
+   <td style="text-align:right;"> 2.320 </td>
+   <td style="text-align:right;"> 18.61 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 4 </td>
+   <td style="text-align:right;"> 1 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Hornet 4 Drive </td>
+   <td style="text-align:right;"> 21.4 </td>
+   <td style="text-align:right;"> 6 </td>
+   <td style="text-align:right;"> 258 </td>
+   <td style="text-align:right;"> 110 </td>
+   <td style="text-align:right;"> 3.08 </td>
+   <td style="text-align:right;"> 3.215 </td>
+   <td style="text-align:right;"> 19.44 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 1 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Hornet Sportabout </td>
+   <td style="text-align:right;"> 18.7 </td>
+   <td style="text-align:right;"> 8 </td>
+   <td style="text-align:right;"> 360 </td>
+   <td style="text-align:right;"> 175 </td>
+   <td style="text-align:right;"> 3.15 </td>
+   <td style="text-align:right;"> 3.440 </td>
+   <td style="text-align:right;"> 17.02 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 2 </td>
+  </tr>
+  <tr>
+   <td style="text-align:left;"> Valiant </td>
+   <td style="text-align:right;"> 18.1 </td>
+   <td style="text-align:right;"> 6 </td>
+   <td style="text-align:right;"> 225 </td>
+   <td style="text-align:right;"> 105 </td>
+   <td style="text-align:right;"> 2.76 </td>
+   <td style="text-align:right;"> 3.460 </td>
+   <td style="text-align:right;"> 20.22 </td>
+   <td style="text-align:right;"> 1 </td>
+   <td style="text-align:right;"> 0 </td>
+   <td style="text-align:right;"> 3 </td>
+   <td style="text-align:right;"> 1 </td>
+  </tr>
+</tbody>
+</table>
+
+<p>This vignette is only a toy example. I&#39;d recommend you to use the <strong>DT</strong> package instead: <a href="https://github.com/rstudio/DT">https://github.com/rstudio/DT</a></p>
+
+</body>
+
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/datatables.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_expand.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_expand.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_expand.html	(revision 2476)
@@ -0,0 +1,457 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+
+<title>Demos of <code>knit_expand()</code></title>
+
+<script type="text/javascript">
+window.onload = function() {
+  var imgs = document.getElementsByTagName('img'), i, img;
+  for (i = 0; i < imgs.length; i++) {
+    img = imgs[i];
+    // center an image if it is the only element of its parent
+    if (img.parentElement.childElementCount === 1)
+      img.parentElement.style.textAlign = 'center';
+  }
+};
+</script>
+
+<!-- Styles for R syntax highlighter -->
+<style type="text/css">
+   pre .operator,
+   pre .paren {
+     color: rgb(104, 118, 135)
+   }
+
+   pre .literal {
+     color: #990073
+   }
+
+   pre .number {
+     color: #099;
+   }
+
+   pre .comment {
+     color: #998;
+     font-style: italic
+   }
+
+   pre .keyword {
+     color: #900;
+     font-weight: bold
+   }
+
+   pre .identifier {
+     color: rgb(0, 0, 0);
+   }
+
+   pre .string {
+     color: #d14;
+   }
+</style>
+
+<!-- R syntax highlighter -->
+<script type="text/javascript">
+var hljs=new function(){function m(p){return p.replace(/&/gm,"&amp;").replace(/</gm,"&lt;")}function f(r,q,p){return RegExp(q,"m"+(r.cI?"i":"")+(p?"g":""))}function b(r){for(var p=0;p<r.childNodes.length;p++){var q=r.childNodes[p];if(q.nodeName=="CODE"){return q}if(!(q.nodeType==3&&q.nodeValue.match(/\s+/))){break}}}function h(t,s){var p="";for(var r=0;r<t.childNodes.length;r++){if(t.childNodes[r].nodeType==3){var q=t.childNodes[r].nodeValue;if(s){q=q.replace(/\n/g,"")}p+=q}else{if(t.childNodes[r].nodeName=="BR"){p+="\n"}else{p+=h(t.childNodes[r])}}}if(/MSIE [678]/.test(navigator.userAgent)){p=p.replace(/\r/g,"\n")}return p}function a(s){var r=s.className.split(/\s+/);r=r.concat(s.parentNode.className.split(/\s+/));for(var q=0;q<r.length;q++){var p=r[q].replace(/^language-/,"");if(e[p]){return p}}}function c(q){var p=[];(function(s,t){for(var r=0;r<s.childNodes.length;r++){if(s.childNodes[r].nodeType==3){t+=s.childNodes[r].nodeValue.length}else{if(s.childNodes[r].nodeName=="BR"){t+=1}else{if(s.childNodes[r].nodeType==1){p.push({event:"start",offset:t,node:s.childNodes[r]});t=arguments.callee(s.childNodes[r],t);p.push({event:"stop",offset:t,node:s.childNodes[r]})}}}}return t})(q,0);return p}function k(y,w,x){var q=0;var z="";var s=[];function u(){if(y.length&&w.length){if(y[0].offset!=w[0].offset){return(y[0].offset<w[0].offset)?y:w}else{return w[0].event=="start"?y:w}}else{return y.length?y:w}}function t(D){var A="<"+D.nodeName.toLowerCase();for(var B=0;B<D.attributes.length;B++){var C=D.attributes[B];A+=" "+C.nodeName.toLowerCase();if(C.value!==undefined&&C.value!==false&&C.value!==null){A+='="'+m(C.value)+'"'}}return A+">"}while(y.length||w.length){var v=u().splice(0,1)[0];z+=m(x.substr(q,v.offset-q));q=v.offset;if(v.event=="start"){z+=t(v.node);s.push(v.node)}else{if(v.event=="stop"){var p,r=s.length;do{r--;p=s[r];z+=("</"+p.nodeName.toLowerCase()+">")}while(p!=v.node);s.splice(r,1);while(r<s.length){z+=t(s[r]);r++}}}}return z+m(x.substr(q))}function j(){function q(x,y,v){if(x.compiled){return}var u;var s=[];if(x.k){x.lR=f(y,x.l||hljs.IR,true);for(var w in x.k){if(!x.k.hasOwnProperty(w)){continue}if(x.k[w] instanceof Object){u=x.k[w]}else{u=x.k;w="keyword"}for(var r in u){if(!u.hasOwnProperty(r)){continue}x.k[r]=[w,u[r]];s.push(r)}}}if(!v){if(x.bWK){x.b="\\b("+s.join("|")+")\\s"}x.bR=f(y,x.b?x.b:"\\B|\\b");if(!x.e&&!x.eW){x.e="\\B|\\b"}if(x.e){x.eR=f(y,x.e)}}if(x.i){x.iR=f(y,x.i)}if(x.r===undefined){x.r=1}if(!x.c){x.c=[]}x.compiled=true;for(var t=0;t<x.c.length;t++){if(x.c[t]=="self"){x.c[t]=x}q(x.c[t],y,false)}if(x.starts){q(x.starts,y,false)}}for(var p in e){if(!e.hasOwnProperty(p)){continue}q(e[p].dM,e[p],true)}}function d(B,C){if(!j.called){j();j.called=true}function q(r,M){for(var L=0;L<M.c.length;L++){if((M.c[L].bR.exec(r)||[null])[0]==r){return M.c[L]}}}function v(L,r){if(D[L].e&&D[L].eR.test(r)){return 1}if(D[L].eW){var M=v(L-1,r);return M?M+1:0}return 0}function w(r,L){return L.i&&L.iR.test(r)}function K(N,O){var M=[];for(var L=0;L<N.c.length;L++){M.push(N.c[L].b)}var r=D.length-1;do{if(D[r].e){M.push(D[r].e)}r--}while(D[r+1].eW);if(N.i){M.push(N.i)}return f(O,M.join("|"),true)}function p(M,L){var N=D[D.length-1];if(!N.t){N.t=K(N,E)}N.t.lastIndex=L;var r=N.t.exec(M);return r?[M.substr(L,r.index-L),r[0],false]:[M.substr(L),"",true]}function z(N,r){var L=E.cI?r[0].toLowerCase():r[0];var M=N.k[L];if(M&&M instanceof Array){return M}return false}function F(L,P){L=m(L);if(!P.k){return L}var r="";var O=0;P.lR.lastIndex=0;var M=P.lR.exec(L);while(M){r+=L.substr(O,M.index-O);var N=z(P,M);if(N){x+=N[1];r+='<span class="'+N[0]+'">'+M[0]+"</span>"}else{r+=M[0]}O=P.lR.lastIndex;M=P.lR.exec(L)}return r+L.substr(O,L.length-O)}function J(L,M){if(M.sL&&e[M.sL]){var r=d(M.sL,L);x+=r.keyword_count;return r.value}else{return F(L,M)}}function I(M,r){var L=M.cN?'<span class="'+M.cN+'">':"";if(M.rB){y+=L;M.buffer=""}else{if(M.eB){y+=m(r)+L;M.buffer=""}else{y+=L;M.buffer=r}}D.push(M);A+=M.r}function G(N,M,Q){var R=D[D.length-1];if(Q){y+=J(R.buffer+N,R);return false}var P=q(M,R);if(P){y+=J(R.buffer+N,R);I(P,M);return P.rB}var L=v(D.length-1,M);if(L){var O=R.cN?"</span>":"";if(R.rE){y+=J(R.buffer+N,R)+O}else{if(R.eE){y+=J(R.buffer+N,R)+O+m(M)}else{y+=J(R.buffer+N+M,R)+O}}while(L>1){O=D[D.length-2].cN?"</span>":"";y+=O;L--;D.length--}var r=D[D.length-1];D.length--;D[D.length-1].buffer="";if(r.starts){I(r.starts,"")}return R.rE}if(w(M,R)){throw"Illegal"}}var E=e[B];var D=[E.dM];var A=0;var x=0;var y="";try{var s,u=0;E.dM.buffer="";do{s=p(C,u);var t=G(s[0],s[1],s[2]);u+=s[0].length;if(!t){u+=s[1].length}}while(!s[2]);if(D.length>1){throw"Illegal"}return{r:A,keyword_count:x,value:y}}catch(H){if(H=="Illegal"){return{r:0,keyword_count:0,value:m(C)}}else{throw H}}}function g(t){var p={keyword_count:0,r:0,value:m(t)};var r=p;for(var q in e){if(!e.hasOwnProperty(q)){continue}var s=d(q,t);s.language=q;if(s.keyword_count+s.r>r.keyword_count+r.r){r=s}if(s.keyword_count+s.r>p.keyword_count+p.r){r=p;p=s}}if(r.language){p.second_best=r}return p}function i(r,q,p){if(q){r=r.replace(/^((<[^>]+>|\t)+)/gm,function(t,w,v,u){return w.replace(/\t/g,q)})}if(p){r=r.replace(/\n/g,"<br>")}return r}function n(t,w,r){var x=h(t,r);var v=a(t);var y,s;if(v){y=d(v,x)}else{return}var q=c(t);if(q.length){s=document.createElement("pre");s.innerHTML=y.value;y.value=k(q,c(s),x)}y.value=i(y.value,w,r);var u=t.className;if(!u.match("(\\s|^)(language-)?"+v+"(\\s|$)")){u=u?(u+" "+v):v}if(/MSIE [678]/.test(navigator.userAgent)&&t.tagName=="CODE"&&t.parentNode.tagName=="PRE"){s=t.parentNode;var p=document.createElement("div");p.innerHTML="<pre><code>"+y.value+"</code></pre>";t=p.firstChild.firstChild;p.firstChild.cN=s.cN;s.parentNode.replaceChild(p.firstChild,s)}else{t.innerHTML=y.value}t.className=u;t.result={language:v,kw:y.keyword_count,re:y.r};if(y.second_best){t.second_best={language:y.second_best.language,kw:y.second_best.keyword_count,re:y.second_best.r}}}function o(){if(o.called){return}o.called=true;var r=document.getElementsByTagName("pre");for(var p=0;p<r.length;p++){var q=b(r[p]);if(q){n(q,hljs.tabReplace)}}}function l(){if(window.addEventListener){window.addEventListener("DOMContentLoaded",o,false);window.addEventListener("load",o,false)}else{if(window.attachEvent){window.attachEvent("onload",o)}else{window.onload=o}}}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=n;this.initHighlighting=o;this.initHighlightingOnLoad=l;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="\\b(0[xX][a-fA-F0-9]+|(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.ER="(?![\\s\\S])";this.BE={b:"\\\\.",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.inherit=function(r,s){var p={};for(var q in r){p[q]=r[q]}if(s){for(var q in s){p[q]=s[q]}}return p}}();hljs.LANGUAGES.cpp=function(){var a={keyword:{"false":1,"int":1,"float":1,"while":1,"private":1,"char":1,"catch":1,"export":1,virtual:1,operator:2,sizeof:2,dynamic_cast:2,typedef:2,const_cast:2,"const":1,struct:1,"for":1,static_cast:2,union:1,namespace:1,unsigned:1,"long":1,"throw":1,"volatile":2,"static":1,"protected":1,bool:1,template:1,mutable:1,"if":1,"public":1,friend:2,"do":1,"return":1,"goto":1,auto:1,"void":2,"enum":1,"else":1,"break":1,"new":1,extern:1,using:1,"true":1,"class":1,asm:1,"case":1,typeid:1,"short":1,reinterpret_cast:2,"default":1,"double":1,register:1,explicit:1,signed:1,typename:1,"try":1,"this":1,"switch":1,"continue":1,wchar_t:1,inline:1,"delete":1,alignof:1,char16_t:1,char32_t:1,constexpr:1,decltype:1,noexcept:1,nullptr:1,static_assert:1,thread_local:1,restrict:1,_Bool:1,complex:1},built_in:{std:1,string:1,cin:1,cout:1,cerr:1,clog:1,stringstream:1,istringstream:1,ostringstream:1,auto_ptr:1,deque:1,list:1,queue:1,stack:1,vector:1,map:1,set:1,bitset:1,multiset:1,multimap:1,unordered_set:1,unordered_map:1,unordered_multiset:1,unordered_multimap:1,array:1,shared_ptr:1}};return{dM:{k:a,i:"</",c:[hljs.CLCM,hljs.CBLCLM,hljs.QSM,{cN:"string",b:"'\\\\?.",e:"'",i:"."},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},hljs.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:a,r:10,c:["self"]}]}}}();hljs.LANGUAGES.r={dM:{c:[hljs.HCM,{cN:"number",b:"\\b0[xX][0-9a-fA-F]+[Li]?\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\b\\d+(?:[eE][+\\-]?\\d*)?L\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\b\\d+\\.(?!\\d)(?:i\\b)?",e:hljs.IMMEDIATE_RE,r:1},{cN:"number",b:"\\b\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"keyword",b:"(?:tryCatch|library|setGeneric|setGroupGeneric)\\b",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\.\\.\\.",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\.\\.\\d+(?![\\w.])",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\b(?:function)",e:hljs.IMMEDIATE_RE,r:2},{cN:"keyword",b:"(?:if|in|break|next|repeat|else|for|return|switch|while|try|stop|warning|require|attach|detach|source|setMethod|setClass)\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"literal",b:"(?:NA|NA_integer_|NA_real_|NA_character_|NA_complex_)\\b",e:hljs.IMMEDIATE_RE,r:10},{cN:"literal",b:"(?:NULL|TRUE|FALSE|T|F|Inf|NaN)\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"identifier",b:"[a-zA-Z.][a-zA-Z0-9._]*\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"operator",b:"<\\-(?!\\s*\\d)",e:hljs.IMMEDIATE_RE,r:2},{cN:"operator",b:"\\->|<\\-",e:hljs.IMMEDIATE_RE,r:1},{cN:"operator",b:"%%|~",e:hljs.IMMEDIATE_RE},{cN:"operator",b:">=|<=|==|!=|\\|\\||&&|=|\\+|\\-|\\*|/|\\^|>|<|!|&|\\||\\$|:",e:hljs.IMMEDIATE_RE,r:0},{cN:"operator",b:"%",e:"%",i:"\\n",r:1},{cN:"identifier",b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[hljs.BE],r:0},{cN:"string",b:"'",e:"'",c:[hljs.BE],r:0},{cN:"paren",b:"[[({\\])}]",e:hljs.IMMEDIATE_RE,r:0}]}};
+hljs.initHighlightingOnLoad();
+</script>
+
+
+
+<style type="text/css">
+body, td {
+   font-family: sans-serif;
+   background-color: white;
+   font-size: 13px;
+}
+
+body {
+  max-width: 800px;
+  margin: auto;
+  padding: 1em;
+  line-height: 20px;
+}
+
+tt, code, pre {
+   font-family: 'DejaVu Sans Mono', 'Droid Sans Mono', 'Lucida Console', Consolas, Monaco, monospace;
+}
+
+h1 {
+   font-size:2.2em;
+}
+
+h2 {
+   font-size:1.8em;
+}
+
+h3 {
+   font-size:1.4em;
+}
+
+h4 {
+   font-size:1.0em;
+}
+
+h5 {
+   font-size:0.9em;
+}
+
+h6 {
+   font-size:0.8em;
+}
+
+a:visited {
+   color: rgb(50%, 0%, 50%);
+}
+
+pre, img {
+  max-width: 100%;
+}
+pre {
+  overflow-x: auto;
+}
+pre code {
+   display: block; padding: 0.5em;
+}
+
+code {
+  font-size: 92%;
+  border: 1px solid #ccc;
+}
+
+code[class] {
+  background-color: #F8F8F8;
+}
+
+table, td, th {
+  border: none;
+}
+
+blockquote {
+   color:#666666;
+   margin:0;
+   padding-left: 1em;
+   border-left: 0.5em #EEE solid;
+}
+
+hr {
+   height: 0px;
+   border-bottom: none;
+   border-top-width: thin;
+   border-top-style: dotted;
+   border-top-color: #999999;
+}
+
+@media print {
+   * {
+      background: transparent !important;
+      color: black !important;
+      filter:none !important;
+      -ms-filter: none !important;
+   }
+
+   body {
+      font-size:12pt;
+      max-width:100%;
+   }
+
+   a, a:visited {
+      text-decoration: underline;
+   }
+
+   hr {
+      visibility: hidden;
+      page-break-before: always;
+   }
+
+   pre, blockquote {
+      padding-right: 1em;
+      page-break-inside: avoid;
+   }
+
+   tr, img {
+      page-break-inside: avoid;
+   }
+
+   img {
+      max-width: 100% !important;
+   }
+
+   @page :left {
+      margin: 15mm 20mm 15mm 10mm;
+   }
+
+   @page :right {
+      margin: 15mm 10mm 15mm 20mm;
+   }
+
+   p, h2, h3 {
+      orphans: 3; widows: 3;
+   }
+
+   h2, h3 {
+      page-break-after: avoid;
+   }
+}
+</style>
+
+
+
+</head>
+
+<body>
+<!--
+%\VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{Templating with knit_expand()}
+-->
+
+<h1>Demos of <code>knit_expand()</code></h1>
+
+<p>A few simple examples:</p>
+
+<pre><code class="r">library(knitr)
+knit_expand(text = &quot;The value of pi is {{pi}}.&quot;)
+</code></pre>
+
+<pre><code>## [1] &quot;The value of pi is 3.14159265358979.&quot;
+</code></pre>
+
+<pre><code class="r">knit_expand(text = &quot;The value of a is {{a}}, so a + 1 is {{a+1}}.&quot;, a = rnorm(1))
+</code></pre>
+
+<pre><code>## [1] &quot;The value of a is 0.703623490875254, so a + 1 is 1.70362349087525.&quot;
+</code></pre>
+
+<pre><code class="r">knit_expand(text = &quot;The area of a circle with radius {{r}} is {{pi*r^2}}&quot;, r = 5)
+</code></pre>
+
+<pre><code>## [1] &quot;The area of a circle with radius 5 is 78.5398163397448&quot;
+</code></pre>
+
+<p>Any number of variables:</p>
+
+<pre><code class="r">knit_expand(text = &quot;a is {{a}} and b is {{b}}, with my own pi being {{pi}} instead of {{base::pi}}&quot;, 
+    a = 1, b = 2, pi = 3)
+</code></pre>
+
+<pre><code>## [1] &quot;a is 1 and b is 2, with my own pi being 3 instead of 3.14159265358979&quot;
+</code></pre>
+
+<p>Custom delimiter <code>&lt;% %&gt;</code>:</p>
+
+<pre><code class="r">knit_expand(text = &quot;I do not like curly braces, so use % with &lt;&gt; instead: a is &lt;% a %&gt;.&quot;, 
+    a = 8, delim = c(&quot;&lt;%&quot;, &quot;%&gt;&quot;))
+</code></pre>
+
+<pre><code>## [1] &quot;I do not like curly braces, so use % with &lt;&gt; instead: a is 8.&quot;
+</code></pre>
+
+<p>The pyexpander delimiter:</p>
+
+<pre><code class="r">knit_expand(text = &quot;hello $(LETTERS[24]) and $(pi)!&quot;, delim = c(&quot;$(&quot;, &quot;)&quot;))
+</code></pre>
+
+<pre><code>## [1] &quot;hello X and 3.14159265358979!&quot;
+</code></pre>
+
+<p>Arbitrary R code:</p>
+
+<pre><code class="r">knit_expand(text = &quot;you cannot see the value of x {{x=rnorm(1)}}but it is indeed created: x = {{x}}&quot;)
+</code></pre>
+
+<pre><code>## [1] &quot;you cannot see the value of x but it is indeed created: x = 1.53456091566555&quot;
+</code></pre>
+
+<pre><code class="r">res = knit_expand(text = c(&quot; x | x^2&quot;, &quot;{{x=1:5;paste(sprintf(\&quot;%2d | %3d\&quot;, x, x^2), collapse = \&quot;\n\&quot;)}}&quot;))
+cat(res)
+</code></pre>
+
+<pre><code>##  x | x^2
+##  1 |   1
+##  2 |   4
+##  3 |   9
+##  4 |  16
+##  5 |  25
+</code></pre>
+
+<p>The m4 example: <a href="http://en.wikipedia.org/wiki/M4_(computer_language)">http://en.wikipedia.org/wiki/M4_(computer_language)</a></p>
+
+<pre><code class="r">res = knit_expand(text = c(&quot;{{i=0;h2=function(x){i&lt;&lt;-i+1;sprintf(\&quot;&lt;h2&gt;%d. %s&lt;/h2&gt;\&quot;, i, x)} }}&lt;html&gt;&quot;, 
+    &quot;{{h2(\&quot;First Section\&quot;)}}&quot;, &quot;{{h2(\&quot;Second Section\&quot;)}}&quot;, &quot;{{h2(\&quot;Conclusion\&quot;)}}&quot;, 
+    &quot;&lt;/html&gt;&quot;))
+cat(res)
+</code></pre>
+
+<pre><code>## &lt;html&gt;
+## &lt;h2&gt;1. First Section&lt;/h2&gt;
+## &lt;h2&gt;2. Second Section&lt;/h2&gt;
+## &lt;h2&gt;3. Conclusion&lt;/h2&gt;
+## &lt;/html&gt;
+</code></pre>
+
+<p>Build regression models based on a template; loop through all variables in <code>mtcars</code>:</p>
+
+<pre><code class="r">src = lapply(names(mtcars)[-1], function(i) {
+    knit_expand(text = c(&quot;# Regression on {{i}}&quot;, &quot;```{r lm-{{i}}}&quot;, &quot;lm(mpg~{{i}}, data=mtcars)&quot;, 
+        &quot;```&quot;))
+})
+# knit the source
+res = knit_child(text = unlist(src))
+res = paste(&quot;&lt;pre&gt;&lt;code&gt;&quot;, gsub(&quot;^\\s*|\\s*$&quot;, &quot;&quot;, res), &quot;&lt;/code&gt;&lt;/pre&gt;&quot;, sep = &quot;&quot;)
+</code></pre>
+
+<pre><code># Regression on cyl
+
+```r
+lm(mpg ~ cyl, data = mtcars)
+```
+
+```
+## 
+## Call:
+## lm(formula = mpg ~ cyl, data = mtcars)
+## 
+## Coefficients:
+## (Intercept)          cyl  
+##       37.88        -2.88
+```
+# Regression on disp
+
+```r
+lm(mpg ~ disp, data = mtcars)
+```
+
+```
+## 
+## Call:
+## lm(formula = mpg ~ disp, data = mtcars)
+## 
+## Coefficients:
+## (Intercept)         disp  
+##     29.5999      -0.0412
+```
+# Regression on hp
+
+```r
+lm(mpg ~ hp, data = mtcars)
+```
+
+```
+## 
+## Call:
+## lm(formula = mpg ~ hp, data = mtcars)
+## 
+## Coefficients:
+## (Intercept)           hp  
+##     30.0989      -0.0682
+```
+# Regression on drat
+
+```r
+lm(mpg ~ drat, data = mtcars)
+```
+
+```
+## 
+## Call:
+## lm(formula = mpg ~ drat, data = mtcars)
+## 
+## Coefficients:
+## (Intercept)         drat  
+##       -7.52         7.68
+```
+# Regression on wt
+
+```r
+lm(mpg ~ wt, data = mtcars)
+```
+
+```
+## 
+## Call:
+## lm(formula = mpg ~ wt, data = mtcars)
+## 
+## Coefficients:
+## (Intercept)           wt  
+##       37.29        -5.34
+```
+# Regression on qsec
+
+```r
+lm(mpg ~ qsec, data = mtcars)
+```
+
+```
+## 
+## Call:
+## lm(formula = mpg ~ qsec, data = mtcars)
+## 
+## Coefficients:
+## (Intercept)         qsec  
+##       -5.11         1.41
+```
+# Regression on vs
+
+```r
+lm(mpg ~ vs, data = mtcars)
+```
+
+```
+## 
+## Call:
+## lm(formula = mpg ~ vs, data = mtcars)
+## 
+## Coefficients:
+## (Intercept)           vs  
+##       16.62         7.94
+```
+# Regression on am
+
+```r
+lm(mpg ~ am, data = mtcars)
+```
+
+```
+## 
+## Call:
+## lm(formula = mpg ~ am, data = mtcars)
+## 
+## Coefficients:
+## (Intercept)           am  
+##       17.15         7.24
+```
+# Regression on gear
+
+```r
+lm(mpg ~ gear, data = mtcars)
+```
+
+```
+## 
+## Call:
+## lm(formula = mpg ~ gear, data = mtcars)
+## 
+## Coefficients:
+## (Intercept)         gear  
+##        5.62         3.92
+```
+# Regression on carb
+
+```r
+lm(mpg ~ carb, data = mtcars)
+```
+
+```
+## 
+## Call:
+## lm(formula = mpg ~ carb, data = mtcars)
+## 
+## Coefficients:
+## (Intercept)         carb  
+##       25.87        -2.06
+```</code></pre>
+
+</body>
+
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knit_expand.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-classic.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-classic.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-classic.html	(revision 2476)
@@ -0,0 +1,226 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>R Markdown with the Docco Classic Style</title>
+    <meta charset="utf-8">
+    <meta name="generator" content="knitr" />
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/7.3/styles/github.min.css">
+<!-- MathJax scripts -->
+<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
+</script>
+
+<style type="text/css">
+/* Derived from the Docco package by Jeremy Ashkenas: https://github.com/jashkenas/docco/ */
+body {
+    font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
+    height:100%;
+    font-size: 16px;
+    line-height: 24px;
+    color: #30404f;
+    margin: 0;
+    padding: 0;
+}
+
+h1, h2, h3, h4, h5, h6 {
+    color: #112233;
+    line-height: 1em;
+    font-weight: normal;
+    margin: 0 0 15px 0;
+}
+
+p {
+    margin: 0 0 15px 0;
+    font-size:17px;
+}
+
+#footer p{
+    margin:0;
+    font-size:12px;
+    text-align: center;
+}
+
+a{
+    color:#0088cc;
+    text-decoration:none;
+}
+
+a:hover,a:focus{
+    color:#005580;
+    text-decoration:underline;
+}
+
+#container {
+    position: relative;
+    margin: 0;
+    height:100%;
+}
+
+body > #container { height: auto; min-height: 100%; }
+
+table{
+    width:100%;
+    border: 0;
+    outline: 0;
+}
+
+td.docs{
+    width: 50%;
+    text-align: left;
+    vertical-align: top;
+    padding: 10px 25px 1px 50px;
+}
+
+
+td.code{
+    background: #f5f5ff;
+    padding: 10px 25px 1px 50px;
+    overflow-x: hidden;
+    vertical-align: top;
+}
+
+code{
+    font-size:12px;
+    margin: 0;
+    padding: 0;
+}
+
+td.docs code{
+    background: #f8f8ff;
+    border: 1px solid #dedede;
+    font-size: 80%;
+    padding: 0 0.2em;
+}
+
+td.docs img{
+  max-width: 100%;
+}
+
+pre code{
+    padding:2px 4px;
+    background:#f5f5ff;
+}
+
+td.code pre code{
+    line-height: 18px;
+}
+
+.pilwrap {
+    position: relative;
+}
+.pilcrow {
+    font: 12px Arial;
+    text-decoration: none;
+    color: rgb(69, 69, 69);
+    position: absolute;
+    top: 3px;
+    left: -20px;
+    padding: 1px 2px;
+    opacity: 0;
+}
+
+td.docs:hover .pilcrow {
+    opacity: 1;
+}
+
+blockquote {
+    border-left: 4px solid #DDD;
+    padding: 0 15px;
+    color: #777;
+}
+div.handler{
+      width: 5px;
+      padding: 0;
+      cursor: col-resize;
+      position: absolute;
+      z-index: 5;
+}
+</style>
+
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/7.3/highlight.min.js"></script>
+<script type="text/javascript">
+hljs.LANGUAGES.r=function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[a.HCM,{b:b,l:b,k:{keyword:"function if in break next repeat else for return switch while try tryCatch|10 stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...|10",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[a.BE],r:0},{cN:"string",b:"'",e:"'",c:[a.BE],r:0}]}}(hljs);
+</script>
+    <script>hljs.initHighlightingOnLoad();</script>
+    <script src="https://yihui.github.io/media/js/center-images.js"></script>
+  </head>
+  <body>
+    <div id="container">
+      <table><!--table start-->
+<tr id="row1"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row1">&para;</a></div><!--
+%\VignetteEngine{knitr::docco_classic}
+%\VignetteIndexEntry{R Markdown with the Docco Classic Style}
+-->
+
+<h1>R Markdown with the Docco Classic Style</h1>
+
+<p>This is an example of Markdown vignettes using the <a href="http://jashkenas.github.io/docco/">Docco style</a>.</p>
+
+<h2>Docco</h2>
+
+<p>To use the Docco style for Markdown vignettes in an R package, you need to</p>
+
+<ul>
+<li>add <code>*.Rmd</code> files under the <code>vignettes</code> directory</li>
+<li>add <code>Suggests: knitr</code> and <code>VignetteBuilder: knitr</code> to the <code>DESCRIPTION</code> file</li>
+<li>specify the vignette engine <code>\VignetteEngine{knitr::docco_classic}</code> in the <code>Rmd</code> files (inside HTML comments)</li>
+</ul>
+
+</td><td class="code"></td></tr><tr id="row2"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row2">&para;</a></div><p>After building and installing the package, you can view vignettes via</p></td><td class="code"><pre><code class="r">browseVignettes(package = &#39;Your_Package&#39;)
+</code></pre></td></tr><tr id="row3"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row3">&para;</a></div>
+
+<h2>Examples</h2>
+
+</td><td class="code"></td></tr><tr id="row4"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row4">&para;</a></div><p>Below are some code chunks as examples.</p></td><td class="code"><pre><code class="r">cat(&quot;_hello_ **markdown**!&quot;, &quot;\n&quot;)
+</code></pre></td></tr><tr id="row5"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row5">&para;</a></div>
+
+<p><em>hello</em> <strong>markdown</strong>! </p>
+
+</td><td class="code"></td></tr><tr id="row6"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row6">&para;</a></div><p>Normally you do not need any chunk options.</p></td><td class="code"><pre><code class="r">1 + 1
+</code></pre>
+<pre><code>## [1] 2
+</code></pre>
+<pre><code class="r">10:1
+</code></pre>
+<pre><code>##  [1] 10  9  8  7  6  5  4  3  2  1
+</code></pre>
+<pre><code class="r">rnorm(5)^2
+</code></pre>
+<pre><code>## [1] 2.36677 0.01204 0.26160 0.04578 0.03464
+</code></pre>
+<pre><code class="r">strsplit(&quot;hello, markdown vignettes&quot;, &quot;&quot;)
+</code></pre>
+<pre><code>## [[1]]
+##  [1] &quot;h&quot; &quot;e&quot; &quot;l&quot; &quot;l&quot; &quot;o&quot; &quot;,&quot; &quot; &quot; &quot;m&quot; &quot;a&quot; &quot;r&quot; &quot;k&quot; &quot;d&quot; &quot;o&quot; &quot;w&quot; &quot;n&quot; &quot; &quot; &quot;v&quot;
+## [18] &quot;i&quot; &quot;g&quot; &quot;n&quot; &quot;e&quot; &quot;t&quot; &quot;t&quot; &quot;e&quot; &quot;s&quot;
+</code></pre></td></tr><tr id="row7"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row7">&para;</a></div>
+
+<p>Feel free to draw beautiful plots and write math \(P(X>x)=\alpha/2\).</p>
+
+</td><td class="code"></td></tr><tr id="row8"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row8">&para;</a></div><p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfgAAAH4CAYAAACmKP9/AAAEDWlDQ1BJQ0MgUHJvZmlsZQAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VVBg/m8AAEAASURBVHgB7N15rC1ZVT/wg6IgyIygyPCglaGZm6EHenjdzdztRIyRRBMVojHxD5RoMA6JMUYx0WDU6C9G/zHRGEkM2MzYdEPTDKJo0woo4gMURZkUHMDpdz+l67FfvRp21akz3btWcu85p4Y9rL1rfde0d93hf45olZQcSA4kB5IDyYHkwLHiwB2PVW96OvP85z9/9bGPfWx1l7vcpeeKPJwcSA4kB5IDyYHjwYGPf/zjq7e//e2rEwHw//Ef/7H63d/93dV97nOf4zF62YvkQHIgOZAcSA70cOD6669vznxRz/k8nBxIDiQHkgPJgeTAAXMgAf6ABy+bnhxIDiQHkgPJgT4OJMD3cSaPJweSA8mB5EBy4IA5kAB/wIOXTU8OJAeSA8mB5EAfBxLg+ziTx5MDyYHkQHIgOXDAHEiAP+DBy6YnB5IDyYHkQHKgjwMJ8H2cyePJgeRAciA5kBw4YA6ciHXwBzw+2fTkwFY48O///u+rz33uc6t//ud/Xvl+5zvfeXW3u91tdac73Wn1ZV/2ZVtpQ1aSHEgOLMuBBPhl+ZmlJQcOigM2gfrkJz+5eu9737v6p3/6p/Pafve733114YUXru5973uvvuRLvuS883kgOZAc2F8OpIt+f8cmW5Yc2CgHgPvf/M3fNFtadoG7yln0trx0HQs/KTmQHDgcDiTAH85YZUuTA4tx4L//+79Xn/70p1e33XZbVZmuA/L/9V//VXV9XpQcSA7sngMJ8Lsfg2xBcmDrHPjXf/3X1bve9a5J9b7//e9fuS8pOZAcOAwOJMAfxjhlK5MDi3LgH/7hH1af//znJ5XJpf93f/d3q3zD9CS25cXJgZ1xIAF+Z6zPipMDu+EAYP/7v//7WZV77fJUxWBWRXlTciA5sDYHEuDXZmEWkBw4LA6Io88FafdlHP6wxjtbe3I5kAB/csc+e36COXCHO9xhVu/dN/feWRXmTcmB5MBsDiTAz2Zd3pgcOEwO3PGOd2w2sJnTehvffPEXf/GcW/Oe5EByYMscSIDfMsOzuuTArjlgw5oHPOABs5rxlV/5lasv/dIvnXVv3pQcSA5slwMJ8Nvld9a25xw4KRni973vfVdf/uVfPmk0bFkL4JOSA8mBw+BAblV7GOOUrdwQBySM/du//VuzXauNX/y+613vurr//e+/ustd7nJst2cF1o9+9KObtfA1SXPi7pdddlnuS7+heZjFJgc2wYEE+E1wNcs8CA7YevUjH/nIygYu//mf/3lOm+3NfurUqdXjHve4Y5lUBrBZ8ddff/3qhhtuGMyMF3O/6KKLGtf8F31ROv3OmSj5IzmwxxxIgN/jwcmmbY4DNm350Ic+1Lxkpa+WM2fONMD3yEc+srHm+6471OOS7WxZe8UVV6z+4i/+YvWJT3xida973av5k0yHALpjLP5MrjvUkc52n1QOJMCf1JE/4f3+1Kc+NQjuwR4WPmDzRrXj+DY1AH6Pe9xj9YQnPKF5mYwNcOxW55WxrHyvjeXdEHvP18bGrMjP5MBhcCAB/jDGKVu5IAeA1/ve977qEj/84Q+vLrjggmMJ8MEE4Qp707ffKvcv//IvjWVvB7tLLrkkLs/P5EBy4AA4kAG1AxikbOKyHJBUxoKvJW7sKdfXlrsv1wF3r4Rtg3vZPgB/yy235MtmSqbk9+TAnnMgAX7PByibtzwHxN+n0nF9ixplR5IhS32MxOjlLVB4kpIDyYH950AC/P6PUbZwYQ5ILptKx3VzF9a7mHstffSjH23i87XX53XJgeTA7jiQAL873mfNO+KAxDLJY1NIIloX2RjnkDfHYcHLSailz372swfd39p+5nXJgePAgQT44zCK2YdJHLAE7Ku+6quq77nb3e7Wm0Eu09zfoVJ7/X9NP9JFX8OlvCY5sHsOJMDvfgyyBVvmgGVvD3vYw1aAe4yA91Of+tRegB+7f9/PTw094F2uh9/3Uc32JQf+lwMJ8DkTTiQH7MN+8cUXD+7HDsiA+1R3/iExVB9tZFNL9773vVdzchhqy8/rkgPJgeU4kAC/HC+zpAPjgD3nL7300tXDH/7wxpoHXLG5ywMf+MBmh7ev+IqvONaARnl5xCMeUT1yj3rUo/JtctXcyguTA7vlwPR04t22N2tPDizKAS+UAXCnjvadj9gykD9J7z1nlT/mMY9Z3X777YO8feITn1gV1hgsJE8mB5IDW+NAAvzWWJ0V7SsHZNWf5G1YbcH74Ac/eHX3u9999e53v7t5u145VjwdLPf73e9+x9qbUfY5vycHjgMHEuCPwyhmH5IDa3IAyHu73OWXX97sVmdjH54MHg5/XPl+JyUHkgOHw4EE+MMZq2xpcmCjHCgBfaMVZeHJgeTAVjiQSXZbYXNWkhxIDiQHkgPJge1yIAF+u/zO2pIDyYHkQHIgObAVDiTAb4XNWUlyIDmQHEgOJAe2y4EE+O3yO2tLDiQHkgPJgeTAVjiQAL8VNmclyYHkQHIgOZAc2C4HEuC3y++sLTmQHEgOJAeSA1vhQAL8VticlSQHkgPJgeRAcmC7HEiA3y6/s7bkQHIgOZAcSA5shQMJ8Fthc1aSHEgOJAeSA8mB7XIgAX67/M7akgPJgeRAciA5sBUOJMBvhc1ZSXIgOZAcSA4kB7bLgQT47fI7a0sOJAeSA8mB5MBWOJAvm9kKm7OS48yB//mf/1n9+7//+9n3yevrHe94x+ad8se539m35EByYL85kAC/3+OTrdtzDnit6t/8zd+sPvrRj64++9nPrv7rv/6rAfd73OMeqwc96EGr+9///s2rVve8G9m85EBy4BhyIAH+GA5qdmk7HADo73znO1ef+cxnzqnwP//zP1ef+MQnmr8HPvCBqyc96UnnnM8fyYHkQHJgGxxIgN8Gl7OOY8eBz3/+86u3ve1tKxb8ELHuAf7jHve41Zd92ZcNXZrnkgPJgeTAohzIJLtF2ZmFnQQOAPfbb799FNyDF3//93/fuPH/+7//Ow7lZ3IgOZAc2DgHEuA3zuKs4LhxAMD/7d/+7aRufehDH2oS8SbdlBcnB5IDyYE1OJAAvwbz8taTyYFPfepT52TM13DhX/7lX1YUg6TkQHIgObAtDiTAb4vTWc+x4cBY3L2vo5bS1ZBld0nJgeRAcmBdDux1kh1Bepe73GXdPub9yYFFOfAlX/Ils8qzNr6PLK9j5cdyuy//8i9fPfjBD1596Zd+abPsru++PJ4cSA4kB/o4sHML/id/8idXX/3VX7264IILVi9/+cvPtpPAu+td73r2d35JDuyCA7GJDfClcHKz3/Oe95zclDvc4Q696+Fl2UvAe/Ob37x6//vf38T3fd54440r93kWkpIDyYHkwFQO9JsUU0uacb1lRq997WtXr3nNa1Z/9md/tnrxi1+8+uQnP7n67u/+7smlPe95z1v9x3/8R+d9N910U+fxPJgcGOLA5z73udXHPvax1ZkzZxrr+ou+6ItWNrB57GMfu/qar/ma1Qc+8IGh2885d6973WvVZ/lTGoB5G8j99mxcccUVTb3nFJg/kgPJgeTACAd2CvCvfOUrV9/3fd/XrBG2Tvjyyy9v/u5973uvvumbvmmk6eee/s3f/M1VX+zy1KlT516cv5IDIxygLNqs5t3vfvc5V4qj/+M//uPqmmuuWVEAPvKRj5xzvu/HhRde2Lt17Qc/+MHzwD3KAfLquPvd795Y83E8P5MDyYHkwBgHdgrwj3/841e33nrr6vnPf37TTlt73nDDDatnPvOZky2WIXc+N2dScmAKB4D7H/7hH3bewp3OK3TxxRevrHHv8xzFzRdddFHvfAbgY0l7wgPq/OIv/uIoMj+TA8mB5MAoB3Yag7/uuutWN9988+rSSy8921Duz9/7vd87C/pnT+SX5MCWOMAyH3O/x3a0tqHtA9473/nOqyc+8Ymrr/zKr+xNlOP2d90QOe+6pORAciA5MIUDO7Xg73a3u63+9E//dPWOd7zjnDZfcsklq/e85z2rl73sZecczx/JgW1wAHizmsfon/7pn1YPe9jDVqdPn27c9vJHxNNlvgN1yXi2px0CZ94lnitx/r4Q00Mf+tB0z48NRp5PDiQHzuPATgE+WsPV2aav+qqvWr30pS9tH87fyYGNcwDo9lnlZeWu8WdJm7+HPOQhZ13pU8JCFN2nPe1pq1tuuaUsvvku1j9m4Z93Ux7YGgfkZERypDHPZY1bY31WVMGBvQD4inbmJcmBrXGAkJYtP2bFexVsaZ37Xv6ubbD18eoD5kID//Zv/9ZY/tbBA/e+7Pva8uM6cXz5AiUgKXtofX7cm5/nckAYR57GX/3VX614cvD0Tne60+orvuIrVo95zGMaoJ+i5J1bev5KDizDgQT4ZfiYpRwjDgC8r/3ar139wz/8Q/MmuK6uWfZ2n/vcp+vUrGPqZMlLPAUWPANzlIWuylmZlBX75wMj4CQcoE4bSVFUANNYOKGr7JN4jJJku+J2Eia+enugVRbyinLlw0mcHfvV5wT4/RqPbM2ecADYEtLyQ9p7yN/3vvdtkuc28frXuV6ALrbJJQDo73vf+1Yf//jHuy5Z/fM//3OzEoDXglJj06lN9Kuz8gM8SDGi+L3rXe/qbT2gB/6XXXZZ7sTZy6U8sQ0OJMBvg8tZx8FxgAUtSc4mMwQ6i82x+93vfivW+76DIKXEtreSWGvI9Tab0lfAlNTNAeETuwyOEY+JJZSSMJOSA7viQAL8rjif9e49B1jTkUDHcjuUmCoXMuu9FtzLgeBevulojf+Tn/zkpu/lufy+asInn/nMZ6pYQVmSR5E5DlXsyos2wIFcXLsBpmaRx48DhwLu4UJ+wxveMHsQuPX/5E/+JN9f38FBilMtlQmNtffkdcmBJTmQAL8kN7Os5MCOOcCFLOa+LskQF7enMCR9gQNTVjTIqk/r/Qu8y2/b50AC/PZ5njUeIw7E0jOf+0B/93d/t/rsZz+7SFPEmmvfYb9IhQdQCMCWg1FDD3jAA6r2U6gpK69JDszhQMbg53At7znRHLCMjaUcVq6saVnokvIk4UnAm2LpLcVMYGwp3FJEUZAstu8JhUv1t6Yc+xI88pGPXHkT5hAB9yWXUQ7VleeSA30cSIDv40weTw50cACI2lbWhjSxYUxcBlz//M//fGVr2Uc96lFbd89qj/j5kiTpzrLApC9wwNsun/rUp67+6I/+6Lw54Cr8espTnvKFG/JbcmBHHEiA3xHjs9rD44AEq/e+972rD3/4w72NF7P2+lfry71oxkYy2yJJXUuHCljxsfHOtvqx7/Vw0/PUXHnllau//uu/bpZQ4pGYO8vdNttJyYF94EAC/D6MwjFqA4Bh5QK6AAYZ6ISfdeSHSsATcA+Be9k3CWq33XZbA/L6vg3Cb8SN7GU3dlLDcyEE7WGNT02ao9QY00Meu03wHj/w17a09hDAV8AvVJOUHNgXDiTA78tIHHg7gIu4NBAEJGK3ASZiuLZCveCCCxqL9hAzi72zvWaDk3IYP/axj628YW5bFp11+0BHjNgmK8YCQOO/F+E8/OEPX731rW89Oy5lW/u+A7Kltsztq+OQj+NP5igc8gge77YnwB/v8d1K71gwLEQbq/jeJsDP8rWzmtikLORdJKG121X7mwVrj/FQWGrvc51+i8luo788BVdfffXqxhtvXJWbsfCo2InvCU94wuqxj31s8yrm2r7Y6Cet9ykjvvy15h8vjE90HDxiy3MpS+ziQAJ8F1fyWDUHwg1vb+4x0GBNyj5+9KMf3ViU2wC96o4MXEhpkTE/hwAr9/42+or/t9566zngXrbZ5jUXXnhh402xy1oNZYJdDZc2c014xT70oQ81WwgDeceEAWTo88p4Z0KGBTbD/+NQagL8cRjFHfZB1vZUt689z1mG4sSHQCynLs9ETdvdN6b41JRTcw1FQnhkiLju8b0G4LmejVPS9jkQSiWlrD33KMpCRh/5yEea1Rr2uz/EsNf2uXryasyNbk7emC/WY4LHrmnhOpxSsOVkXPeHQFyic93Uc++bwxdCf4zwvDbpz9vlJOztigAZBVIugTCD3yeB9NOc80a6Nri3+29Vh3fS409ScqDNgQT4NkfydzUHwsqovqG4UIz4UIQS66gWFIsuNl8B5LaS1GrCAPrCzTtG97jHPRpLf1tt72qPtr7lLW9pcgZe97rXNaGHbXlDutqzrWMUNf2t7Ssl2w6GcxTtbfUp69kNBxLgd8P3Y1Grtd7rCBWJeYdAgNN70ueQ9dJzlYOp9d31rncdrcsmLcZtiJTjNbm7zA5nxb797W8/Rxl5z3veM2rRDvXrEM7p91/8xV+c0++adrvnUBTmmv7kNctwIAF+GT6eyFLWdbHXuJT3hbGW+U2NR1MMTp06tTULnrfg8Y9/fC/LWOV22BOH7yN9tEvbLi13bVN/OzxAUdp1u/r4ttRxXrE5ii9wtzQ1KTlQciABvuRGfp/EgXXjy4eUGMSatcRsSpsvv/zyre5kB/xkvV977bXnWfKyrp/0pCc1CZFdlp57JWtdcsklzVp6MeBdkvZYtx8vdqGcXHzxxVtZjbDLfvOIyZafQ0u9ZGhO3XnPfnIgs+j3c1wOolXrunC3uY3rugwFeNzb11133erVr351s/Str0zgBIzwZ10lqK+OvuO8Buq0jSqLjss3LGHLrcR1XQNIfBoD4P/ABz5w7zYh0jYKh9UB2+ZjH383fdx4zaW5isHc+vK+/edAAvz+j9HetpA71xrcsUzfrg4AzLlrrIHULixM1jtgFJ/+y7/8y2ZJWmkNO69Pj3jEIxp3/hRrv4tHc49RMIBjW4GyZpqVXiZvAU6u713ws6Z/5le5zhsA4mvsv1BTxiFdQ+maS+sq3HPrzfv2lwMJ8Ps7NnvfMsAg+cwLN6bS/e9//3ME95T7dwlGwBNQPu5xj2sUG9YlBYdg9geM1hHSU/gw9VrAuCulY2pb+67Xfmv95UR0kbEwJuYIRWbfFZh2H8wv4Yg5bwWMcEa7zPx9cjmQAH9yx37tnhO2LEJJW1MS7txnv/RtZZev3dGOAvTBX9L2OdDl+eFJkZxmS2HgyF1N0WLVUiYf9KAHNR4NALrP5Jnw7oKpAC98VHo69rmP2bbtcWC/Z/v2+JA1zeSAJVXizRHnHSuG0L300ksbK3js2jyfHOjiQNuDI7nMpjDez+4FP8Ce9c6aB5SWkNltkWW/Toy7qy1LH6OAUEZ4iWoJP7zVrvYZrC03rzt8DiTAH/4Y7rQHhIs3mJ0+fbrXbRoN5EKkDHBB7rslFW3Oz/3mACAH7t7aN0RA//Wvf33zToF19m4YqmOpc3InvJSpnUPRVb7nz7JGz2BScqDNgfQxtjmSvydzgJDhWrQMi8X0t3/7tytWFTcptyFBJVZ/z3vec6ebp0zuWN6w1xwwv7zBcGzjnugEYGflS5KcYiHH/dv8lMB61VVXrW677bbmeeqqG6h7eZBVECdllUEXH/JYPwcS4Pt5k2cmcgDI27mNwOEOJVBZ6tzyhyiAAAiXLgVGH/wl7Q8HbHdsi9YpZF7au92eBvs8J805yrFkTu8E0E/LHq0ekFfghUGUgMycnzL6J+/aBPiTN+Yb7zHBuc/Cc4wB3L5cuu9+97ub96gTtgTqRRddNHZrnt8SByiPPEVzyJv0KG81LvA55S95D5D3J6ylz7EyYMk6sqzjy4EE+OM7ttmzmRwgRL3kpFwZ4NWcwg5PfvKTDwIYZnb9YG5jibPg55BxBZaHRpm3cmgjtvv2JsDvfgyyBXvEAYLf++pLcI/mfepTn2pcpRdccEEcqvrkVmUxKtOf71yrLEhhDdnPvARJ9RwwTnM2WIoaKAibIO3i/TGexjZBeRNczjJrOZAAX8upvO5EcEDMfShpC8iz8GsBWdzUFrHcyV0v15EoZS8Ba7VzmVP9FAOcXNdzaRP5FBQ5a/El/iHxcxvyHHK4ai5/87794EAC/H6Mw4ltRbhK98XSIYyHgIPlXYI7S5AlyX3vj4LAcgPcNsIB7v4I/y6iTPzJn/xJk5xof4CkOg4AaDz+xCc+UXdDcZUx3MR8M8aW7MVY++7FP4cQ6y/Yk1+PEQcS4I/RYB5CV4Chv09/+tNNApvvLGKgaJ28pXSRWLSL/gD4U0eveP3oRz96XvXOhXueEGed20TF1qn60SZZzpGc94EPfKDpb/ua+C3x6+abb25i/DYPShrmAICeu02ylR7m29JE2QtwVzbl1dxOSg7sigMJ8Lvi/Amrl/ADiO9///tXwCws9zYbCG5uTVvZsnyGrOn2vUv9pmRIpmNZx85n2nH11Vc3S+WAOZf7n//5n58931U3ix6wA2z3sujstNZHlJ7bb7999YQnPGEjANRX76Eep0DZ1nXKUjmWPyVtE25zZVt+9573vKdh6eMf//gcx0OdXMek3Qnwx2Qg97kbko6sPf7gBz/YC+zRfsAPBFnFYtPWAG8b5Alqlvfpo935ZGpzyQMT7WCh2XvfBiS1RLGxixrgdr84bR8pm9u+72UqffedxOOs8Ec/+tFN4iLlaIyETJ773OeOzsGxcvrOmx8PfvCDGy+UcbaZTr6voI9beXwbHMitarfB5RNcB0EnK50l22e1d7HHte5h0VIQtk0sPJY3oJcA5zugp3hYHz+VWP2SrygtY8l0Z86cGfQMTK37uF7P/W1c7PhmnIZI3N2Wrjwym4i/R90A3YtfKGhj4xz35GdyYFMcSAt+U5zNcpvlYBLMvOFrLll/TiA/6lGP2rm70xK39773vXO70vCDhf7ABz6wUV76CrKvOoVgH60/oRZ/wFX7NhHL7uNL+3iZ7Mgdzno211jz+McTA2SBv3j9ppLr2u3K38mBfeFAAvy+jMQxawcAkKi2DiAGSygJdvKS/FYK9Ti/rU+udXH1dQgAsSSHwhXWye9jchZPiqRCShcPCyv1kksuWYcdi90LyMXjvUo2FBCF88SkJb0Ym7OgA+NAuugPbMAOpbmsXXH3pYi7vmsd+VLlj5UDNLoy68fua58HjF7IY8VAHwH3KeGMvnKWPM4iFmr567/+68bNrX1yJW688cadjku7j6x2yZlc9/4S3Nscyt8niQMJ8CdptLfYV65oyWVLEXBX5q4IwA1tgDOlXcoBPn20j655/e8KtUhCtPlPUnIgObB/HEgX/f6NycG3iIt5ytKl2g4rUyx1KatMAmC4w7n+Wc4+xZW7llEBuSWIN0A8uI9YoNzhS7/SVH/96VtX//ra47j7+mgpvvSVv4/HjWH0e2jO7GPbs00nhwMJ8CdnrLfWU5nK3NBLkzKHgKa2PqDOihbbl5AlnMDlLJkP8FoHL2FL3L9MIlsy/j8UYxdHlmin/iWWCOqf/AEKElBSpsQzMfQhRaPkZySsda1o0N6TQuafeSgXwdwB9BROKy0kguJTUnJgXziQAL8vI3GM2gG8CL6lieKwTmzavYD9fe97X+eGM84LK/izkY0dzwhtW6KGlRYb36zTN0pDWH/tcoAv4LWJjmz7dQFeX/74j/+4URjKuoA9YH7a055WHu79DsQuv/zyJuZejoH7a5WE3sIP5ARwtzXuO97xjnPmofCR3AQ5CZIOl/a8HAh7spl7yIGMwe/hoOxjk4YsznZ7l7Cy22XG77llA2bC+a1vfWsnuEf55acd91zPshcXH0qMK+8b+66cvnj+hRde2OQasLrXJZ4KYMQb0EWs+ptuuqkqVwIPKCZ25Hv4wx/erOe/7LLLzu6531X+cTsGyO1GWCo4ZR+dt0fCEmNXlpvfkwNzOZAW/FzOHfP7CDGCSgKVP2AhMYwrksU2ZLUBg03RnLIpJxSDd77znWc3kAFWNiQR7xaP1j8u13ZogWLwqle9agXMHvCAB3Qmmk3pa7i6uwD+EY94RNMWoYOpMfJ2G/T5zNGGOWPvTNdf9dkaeIy3lBw7+vFqnDTyPMQKgqG+e1bwfOj5GLo/zyUHluRAAvyS3DwmZQG7D3/4w6u//Mu/PM/VLvbIArWWG1h1ARGgcG5pNz2A6apvjO3c1LfccstZcLebHPc0i966duAP8K2zB4zW7pdtB/Jvf/vbV1dccUWjFPRZxGPtcF4dVgOUHhHu74c+9KFNGOCP/uiPmmL0tbympuzyGmNYu+qAa7lmh72y/JP2XUiFAlhDPCPCO0nJgV1zYHOm1q57lvXP4gBgs35dDLgEubIwVsof/MEfNAKvy10JhDcRh1TmVIAHzixUgIfseCamDkj1E7gRyGLutpIlxO1X3s7UJ+Bdy3qd2obgHY8B5QjwsvD8tte+94ZTNPA8iGeBy1eYoC9eH9eWn5QCiXDGjtJgr/YHPehBg8vyXN81jmW5J/07vtaGh2qvO+k8zf5vngMJ8Jvn8cHUQMhb68xyHyPAyeXNOm4Ta9iuYkuTzG9lTyHgBeAR6xm4e0tcnxDmuRC3BoxtIJecB3if8pSnnHdurE3q5QFAF110UaMo6A9XvSQ4u8Mh3g9Z/NrKC0KpAP59ylZz09E/57nbeR+0358391Fc9INiIgTQxT/egqRhDhgLY19Dm1Bua+rNa5IDbQ7kk93myAn+DQy54GuJZSku+ZjHPOac+K2McwDPQlbmEgSYxMCnLlUDesCPgOY2vfXWW0ebw8IGyPINyt3rKDXc8/p26aWXNopCzda1suJZ03Z964uJA3blWucv90H4QN2OU1C0xbI5INPmgeuNm+vabn1eAF6JM0fxeFn5V1555erNb37zWY8GZigXf5L6OUAJsnRyLOyBj8Y7KTmwDxxIgN+HUdiTNrDGpwIyC5ObuZ1U5PfXfM3XNG+DW6J7yqq1oKI+YBfxcq5xQNdnucc98alfBHoJ8M4BXiDMvQ7keTwIfWGLkljN4vysdO3wjvC+7GrgwWOA97wLXS55ngVJjrLsAUgAMq+L0IL2jpG2AnweBPVoD2VBVnyU11WGdlGUeBuMK0XJ9W1Fo+ve43TMmPOE9L1fAT+e8YxnTPbuHCceZV/2iwMJ8Ps1HjttTZ91OdQowr8rfsvyBISAj5t4HXrIQx7SWJ/KnELaFaAKmLrCCX3lAcK20uJa/aUkAGUKB+WG5a2e4IVz/vQdMANG4Bzb0wJwlr/26ZOlZ9z/4abva5P2W6b12Mc+tuGt6/rW9PeVQeFh7QMqS7q8oz7a1XUP5URuQNk2LujTp0+fOIDnRZKMaG8C+/Lz6ASZK3Ip8GvqPI0y8jM5sDQHEuCX5ugBlzcW5+3qGpAi1LpIohrLlCCssTC7ymCtSoybYy1qV7TN/V2KSFedjrm2q84oL+5zjaVjwF3ugvP6K6mP10BYQeyb8hSWOaBwj2O+UwJKAI2y+z55A1jQgObMket9KvFC8CzYpEYoos961w8v+Wm3Tbu5+S+++OJOJWhqew7peoqbpEXzMsYUuFOSfHbNmUPqX7b1eHEgAf54jedavZnqAlcZcBiyWAi9Jz3pSY3FE8lutY0UM2ZpzhWa3OSxExxwbWfGD7XDtZF5X17X1V/t475lWbOw/fYdGOgzl25bucAzCgAPAOXA7/Y1Zb3t7zwMXS9/aV/X99u9PCx94O4+POsbMy57/DG+2yBtKS1m7R5q+ybbZF6VHplN1pVlJwfW4UAC/DrcO2b3ApypQAPYANkQEcRixwCbu7cdr27fqx2uZ10GQLevqfkNaJXFQlYnb4KkwBoSP+9qZ/CoXQahf5/73KfZqpQnRJ1DL9wB5ixpf0D+mmuuaXaVK0GsXUf5W6b9lITI8l7fI/lwDKCHlI7afIZ23bW/8YIiY6mgPAdhEO0x37Sbd8Q4UUyHlMza+vK65MBx48CwZD5uvc3+DHKAuxgIA6dakvxWA8KuIYxtkMPy+8d//Mcm6S3CAoQ28HQN63mKtT3UVqAL6IGDuLds9jGQBx7csJYBlqScoQxpIA94rbEfAveyTN+59rWP1S9hbghUXY9Xrhm7zrVDxHNAieoj9ciwN1ZtMp5LjVG7bL8Bu1UYQhBd/TSW2kV5NAclRG6yPV1tzGPJgX3nQAL8vo/QFttHWLImCc/IPh+q3os1hgCi694Ab8BBcIcVCBw3YYVRWsSbAa54sgxydfYpMVyvEs9uu+22szHz6IelasrrI8oKd/wUcI+yuMzxX1vbmftxTXy6LhSjODbnM3IC+u4F4vIf7AJIGSjp2c9+9tn8hvL4Et/Nv3e9613nbRvcVXbwnEIwN1ejq9w8lhw4DhyYlpZ8HHqcfRjkgOQvG7KwpPuIJctq4p6vsd77ygHowMrfJsBdvdoXe7xz+YqRs+pZy6xx7l2gTVFh3QsNAOn2XvEUEPu1D/UXMJ2ZkfQW/KF08KCMWaKAeUjRiPLGPsfqoYCp55nPfGZjIRtvCojlgXi5iTHj3akF97J/cgVsJ8wTkpQcSA78LwfSgs+Z0MkBlq7Md0vcWEcsJeBGyJ862mXNUinAfAhEabEZD/e3LHfLw4C8P4AKqICmmLv14V3WsYzxoeVkAI+HoJ1lP4U/PAtizdaZ93kYlOc6f8C3KxGwpk4KSxvglak8iorcAJ/6o9/i3ZQhYx73serF8vHX3Fh3Pqjb2ChzDonVGwOJmcILScmBk86BfApO+gzo6b84NCAn2IEXQc9yByrA4ZBIe/UDkAMQFAluNf2gHIitD4EGBUGZ61Ik3Q0BvDqEUCgoY+78vvbIdwhANraUOGEC+QldSgPgRPgAQN1/5shbYTtcJLeCYlIzN0KZsq7funKeAmMD2Ocup2wacfSPJW/fhKmho7g/P5MDx4kDCfDHaTQ30BeW2ZBbegNVbqRIfQDyAEgmP0AbI0oOMOOWDjDsu4fV3wWMfdf3HQd66h0jwC5XACCyvKeScANljfJmhz/74de4t137tre9bXXVVVedBXd12/gF+I+1XX2UF9cjioP1+MaHwrAu4QWvEw8ThTQpOXCSOZAAf5JH/4T1nQVu1zlAxFoFBDYraZMEQNu3sgJZl942x+pkZQJFrmplhava/V1u/Xa5tb+B4Bhxj4cCcvvtt49dfs55igEABIbCElYL1NRZFkKZ4Zrnxkd4NuThiHvxSXZ8EKXCRjq8Rfi8BFF6lDembCxRV5aRHNhnDiTA7/PoZNsW5wCQFlO2WsDSKiAHZHyy7oEWsKMASLYLACsbwjKkJLhfZj0gUe5SVGN5xpvhIodA1n8NSY7kyeCRmAvu6uGav/baa5slgZQe5Y55OdwXYZ4yK58ihedLKUnGjGKWlBw46RxIgD/pM+CE9h8gh4UH1BErnevbBjJD7moxa+Doj+VqA50oa112UjLGAN4a/QsuuOCsxQzkgWyfQqJNvA6UGh4MQKx/EgqnWu7RP31/wxve0IQvxN5rwzi8HhI4eQ2APMWAklSzLDPqLj/xi7LlT7/8No4+k5IDJ50DCfAnfQZk/xsOsB4/+MEPnhNXrmGNxDDLs7xFTOIZ4FuHrFIQ5+4ioMVrIHxQusMBG6tc/XILYtc3ighAlUPAa0EJoTw47pr2UsCuOoeOqQvPeDu8hnZolUFZDovdUkxWtj75m+oBcY+tdikswiwUBMDOE0PZEdvHE23yOyk5cBI5kAB/Ekc9+3wOB4C77PXICD/nZMUPQCUOzpJdF+DDwpYhH3F/AA6klc8SB25dBMD9uVebAHnXtSznMwsktEUbtJPCwKtQS23Qbf8eKofSYr8CwG7XwC4vhCVzYv14JlFSzkEXL4bqyXPJgUPnQAL8oY/gMW8/8AVILLE+wFqHBcqUlAUo1iG713mpjnZOeS1tWSd3PyAHYDbhYY2yuAFTrQs8yhuyiPF0Xes96olPPIxQQRyb8qmP3Ox93osoi+fCxjs2w6lZIgjoWffXXXddowiUno8oMz+TA8eVA8tlBh1XDmW/dsoBwHHjjTeuXvOa15y3XeoSDROLnmu5l/WzmFnFlp/NsRRZ6U9+8pPPutFZtKx1FvlUcC/b1fW9K3Gw67opx5TZZUnXlkGpYW0PEb5657qEwhpwj7K069WvfnXjXaHQJSUHTgoHEuBPykgfYD9ZsCHICeklNpJps4FreSnA8/ITbQTUU0CeVWmnvCn3tPsx5fcS6/Xb9fEKBM0BUZ6KsRfGiKlzy1OkppL22clwKHlyapl5fXJg3zmwUxf9q171qtV73vOeQR695CUvGTwfJyX79AkWQJF0eBwAeDKuveyEJQsAliSuf2vhlyTgI4kMyHtL3Fh2OFe87HZrwPWR5U5J4BGQXR7Z4Uu2UdlLU/nsja0C6Ktb/8XLY7fB8jpzAcCvE0oROpEQiN9DbSQvKEGSCIUyKIAUBF4WKy6ML+8Kz0q6/MtRyu/7xoGdAryH7Kd+6qeaHbm43tahn/3Zn+11EabWvg5nd3svwX7ZZZf1Km/rtI4gn7vv+VC9dmrzMhuJYABC4p3YsmQ0BBhkvMuYB7Z2dbMdLuuUUuA4YAeaQAmI+AP+Q8A01Kby3JSEtvK+oe9LAJ28AUmG3PV4pZ0+8Uu/8WedMID289hYZkiZaJOy8Zux4LoYr/Z1fmsTBcxWu/IugP+hkblHkfFpruGxP305xP4cGv+30d6dAvxzn/vc1Stf+crVd33Xd61e+9rXNg/K3E7/6q/+au+tr3jFK3rP5Yn95gCBQ5huglhlm/DuUCgJTJ4HiXPA/NTRzmr64bh6AT8g8SmxznEg6Turn5IQrnTHWY4AxdIw4LQOoMa6/yV5OpTdX1sPgGU1s7J5NErFnNW9RCiFslV6MIC4ev3Zx/7MkQemPN/XdvfZgY8HyN73xsWYUEooKPtM5h9FRvslIfpu/iFzlILJW+KNkl2K0D73Ldt2Lgd2CvCacvXVV69e+MIXNmuJ7YyVlBzYFgcI9U2QcsP64yEY8xIIPQBzgN+VRa48x/1Z+mVzGArDXEucEAfIwHQpkiA3tz3aoP8A1iZDXUoX6x4wLUHK8UdhAOjA2SZBXbwfq48y4AU9FLXLL7+82cDH+FDspuZUlO0CusrGU0v8jJnvQ6sjxtrqvDGXVArcA9TL+8xb3gt/vEg2cfK5jkJZlp/ft8uBnQO87v7Ij/zIdnudtSUHjjiwrrDsY6JyCU8gyn1LOBPeYv7czKVgjbepiTvXWI7A/n3ve18jqMWr51iL7rGkDZguQREf522ZQ3gD3IFsH+HpUgqZcnhI/DEwbr311lngXrZV3sRb3/rWxmUvmc9qCvkVNcCoPQAd8ConlMOyfHF/ngIhjHWsassLa/dqoPB4sdBTnvKUxpqv6UvZ5vy+ew5kFv3uxyBb8H8cAHwsOa5ZfwRdCYZLMwrwboK4NwlhQp71AwBDQBOWYsCOcbm7thbcy7YCJ0Afbvzy3Nh3YMlrsA5QlHU89KEPbZSZ8ljtd+PLWhwCd2WZC+t4CMr24D0wtSMgULb6YQkSVohyvZ3P77H5G56bt7zlLSt7KXSBu7bxEEhItmsiD0eNMlj2ieVue+BacI971fOHf/iHTV+m1hll5OfuOLAXFvzuup817wMHCDXuUoKeACL0gJBEH1YQIGQNL534o44lXdXKY1X7ZCl1ucApFdzr3p9OYMoK73JJ14wLq1eclIt5qvUM3Llf1d8FQngNCI1F1/loH8UlQgwsUSA8pS0UOa/vHSPX8YasS7wXxoWSJdcBCC9JwjGscNa2fkXGfVcdPBfc+5SCWgL0f/AHf9AsqxQGqCHjIrRDgZhD5imvhNf6biJ/Y06b8p46DqQFX8envGoDHAAcBCILlgUjg5zA5cZ23HeW3U033dRsBbtEkpVucJVTJLggbeu6FF166aUNILK0usBdPZQZrnECF9gMgWdNu/BHf6YSJUTcXLZ/m2w5a5mfc9dcc02v5QxwubgpM8aIpQesgBDwqiHjUNN+YCz5a10y3uYWxYiCtAlSbmw13LdMklJnvk8B92grZYc1zq1fQ647c5RrsA4ZI2XMVUbXqTvvnc+BBPj5vMs71+AAqwDAin+y3MeIS5p7slaodZVHOLGuANGb3/zmZnka78AUi7OrXMe4e7l6veSkhmQvE+7c+OvUT5GYq/iw0sXivfiFtY70g3Uv9opP3jjn/fHt+KvELx6AN73pTQ2gsxKBmT7dfPPNZxWyIQXGeMRGRmM8AzD6apXBXNJH3g5tskPipsDK3Danxctl2eNNm4D0OgoGXrD+u8ou69JXPNamdYkHYE5IaN168/75HEiAn8+7vHMNDhDYALsv5thVNHB/xzve0Vj4XeeHjhHmLDd1hlVFSLI2gdw6BBC5S1nlUwgIENCsyXWIAB8C0qGygby2A3n5AKz60mVOIfIXbRRi8C56f7wH+NcmYEIhE99mofeBkONTxl+ZXOttZaNdf99vS+0olfpLwdokKR/PAGK7//jDGp7S9662KmPM+6H+pfrqeaGYJB0OBxLgD2esjk1LCQlu3TkCjvtectnUeykHrNK2sAUaLK11YotAca5FyMLjRViH9K3WJd5VD8sW6D3+8Y9vMv7b1h7lAVix2Fnz6hNWMRZDBHyAPIWqzXf3KXeKFc1TYY38E5/4xMn5GLFW3XjzmGwaqPRd//C2rXwB3SUS+/COAjVErjFeS1GXQrdU2VnO8hxIgF+epyeuRAKL8BUzZyHR9NtCrWSK68YEU3l9+zuLdQxcynuAH6WgC2QIYjFx8WYJd3PIRjas3DmED5QLMfG5RIgP8bu2XNa5vABAH8QVb5c9fMJ3bnsgWwvMlAVeF2PebiNLfGpmPDexdnhzn7aNEYDloRF64JngbTE/t0Hq0UZtKAnvlgJKimVbISvrosyso/yVZfm+ZFntsvP38hzILPrleXqiSmQJybDlBgwBTohKOAMW7cx3lvcS+78rA7DWAKM6hywmSgl381VXXdVYnFOFL8VgqkehnCSEJnAFonMIgKwTx2/XyVqXZEdpY9mLqePRXAJAYvmysEtQBvDqqsnBKOs29uadMIE2mnsUpZh/rjUHlS1hkAVLIcRjbaGQboPUIzGw/QwsCZLmHcVV37oIT8yPWoWsq4zyWFtZKc/l9/3jQAL8/o3JXrSIQCCgQmgCEEKkjH8SllztEdOOhhO+XvF6ySWXNEK2FAqEW/v6uG/KJ4tQ+wjyMSLgu6z38j4AZmtZoAEMJDCNgTbL20Y1BPiQFVXW0/XdvesANNBsg0hXPTXH5Clwq1OejJvd9cb4UFOuecTLocyYU+aS8AjlaioAmUNA/fTp082SNPcbY5/mKcWPd0B9lqo5p14u+ql11fSv6xr1APh1xrar3PJY8LI8pl7Konms/54RitAStMRSxSXakWXUcSABvo5PJ+YqggHYcYMSoGHtEJqsOQLZEiC/uTyHwBr4s4rb8e0lLBhldAm3roGKPnSdK48RiGLLMrUj1owXXK3qCyWHkAOAAEomtE/8mBvXde86PJEctwSI4FPsbmfslyLt4yZnqUtEVA/g4flwnCJo2ddUHhgnXiL8GyK8oQABevX62waps6ttSylj+qD86A9F0Vw1JykyFDO5B5SMJQBeu0sPzDZ4mHWsx4EE+PX4d2zuJhxYb0CbddwmwpclDPgBvUSnMdcqqwlQlABfC8rt+tu/wyJrH+/63SVku65zjPXDBayfXLzecuh7eC4ITUKUZUshQPgB8OcAPIEJ8PRnDuHt3NyBdn3a0TX27eum/LZRUezWVwK475RJCqLzXjz1xje+sTohTL8jKbC2PZQBSsGccaqto7yOQhHzpjzOu6D9S4Au/gJ484eHRCikDPXgrzAFwF+XQrFft5y8f3scSIDfHq93VhPwJrx9EqxAjODxRzjQzFmqlpDVAA1FAMjVuG5LYYMBrCn11tRTMsx9gJSQYUFzv+oPYe37UCyei9L9U5QL1+KV+9Rj85o+AopeMEIRmEoy6Ocm6KnLznk1YYqadunHFB6NlclylLx409EmOHjYR/hmPwTKFEve/BwiSpGdAKcm6JkjlLapORZDbRk612ftUjQA87oAb27qD37JMenaFZES6lmz0mOd5XJ4J3y1pPdhiHd5bhkOJMAvw8e9LMWDD4jjtZAEWynAgTsXqb3Ea8E9OgrcCdgxoG6DD0EBoCkJtUQ42Q6VsgAMZQ4H+LLOgT4rkEAthb6+EnD6zcIeCid0tYW1xzpmAbHGZJB3kb7ghzZMAXkKi41XZJnPIYBIwC9B5srS1rsxAzpD4B5tB1D6Ijv+tttuO8cKjWuM9amjbX65ned6LcwP95qDSy4fizbGpzr6PEeeAf3wXI49P1Fe1yc+6A/lXDisj89c9jZU4k3z3MwhSyTxLOmwOJAAf1jjVd1alq0Hmyu576Em1IGjuPNUQUOoEMhDQpK2D1hLYr0A7FqAt7zJPXZIC5d4WR7QB+CS4ljDBBkwBu7aCJTdD6SnADxhZlMVVpJ+sLhYjUIYXZaX9sk8x1MKyBgB99NHCWISzAC1l5NMGQMAsc6mL+32mSNLuq7xnKemdpy1h3KEx/hiTI23NinLeFDgfI+Yc7sPtb8pnXJJancdrC23vE752tpH+iNBM3Ie+q7rOw7Y3W/OcMv3gbv78ZEycdFFFzXPeo3nrazXs2OupfVecuUwvifAH8Y4TWolqz2Wrg3dCGgJ0ClCOMojjMVA1dW3BO2Zz3zmea5zgMmyo3yMCRoCCYCz6GoIsAJxS/SAAcsYcAlPEHIXXnhhA9BjZbG+nv70pzfWJ7ekeCnhRmgDZgCPb5QI1ph+KB9YX3zxxc0e4xSr0ltS1skzQGDG8jO/JfWdOdqZbMyKJti1g/tb34DouhTtpMQACuC6LuFhlyI0VG7wVRu8hU97NkHGjPVrDvYpv+vUa0yUr54+oqTwnJk7xn0KmYvPfvazG2XSPKvhc+TLeGc9pdd8HSP94JWyA2CC+xi39vP8+tJhP/t1YltFYNDo+0C3ZAzrem78Vz233377CoizPiWmhRUBELn0/O4CIBYUy9z9fcQ6AWbKnkIENmBnFWtHZIN7sYdjMrZ5LIB+FwEW8XRLxYAtBcYrXllj+uMPAMarPVlQ2uk+ygC+sHiEPlxDkFJSuGv1m9dDmX/2Z3/WfGoD4UthYJVz2VNS/EXehHv1hbeFgqFcfTh9ZOm2QyBdfeo7pk78Ub92hwvcmLFu1wF6ZUwFT94Pf/EOcuCyKcI3wMUjszQpl4IzRuZUuL61IxStofu0OzxFxoxlXkvG2Zzy7JmXYvK8XG3SLgokRdwcsfKBUqnuIa9Eu5z8vXsOJMDvfgwWa4EHXjJYDbhHgo4HHeiwAgDRFPLwv+51r2usFWAD7CJpjyBQRxdF7B8AcG23iXDUprmxaUJMuQStGHAQTwDLmecBeAFRPGNpaS8ADXALwecayksAdtc72PGNF4RF6DqeB+WwzAG/uvTVdQQ5gG+T+3ldADjFi7IAcAl997qHMgZ4gSASHhGOmEruN3YsuTaIAwzC3VviwsMwtXzX4yvFZwqxEiNMUQN2U8puX2sOmguUuHWSz9rlUtCUq/waMk8AqTHnAaJwhaJc3g9cza3IP/BsmRc1lnhZjvIpzQA7wl/mgLkZz4G2u67MyKcgez4kdVI2p45t2Yb8vj0OJMBvj9cbr8nDDozGCHiyFgl5gsMDG78JmS4BU5ZJuAAuYEQoE+YEczveXt7T/k5AsHSBOaUkBLvrCLEzR27LaAfB83Vf93UN4IersV1e+zehBQCBbHkPABNeAGL6oP3qoRQ4F8Belkfg4etQJn1cbxtXYAzk8cd9U15CA+j96f8YGb85ZPxkrffdT6nxznHC3HyocQG324H/8iGMXYxj+5r2b2NiHChmAGjTRKnj1aE01fB7rD2A3bhPJYoc8OQp8hzgP55TxLTRPPWceGZKxWHOuGgb5UkOAF5Tej0DFA3HHeubFxRMni3jysPmnqT95kCO0H6PT3XrPJiE8ZjlI64p3utBbVuSHtxnPOMZzS50rIMuogwQwM7T8oEoAQGUCCMKQy25j8VDMSBkCRDCBTCWyUeuQ2G51pbPkyHxrgT4KMe5Gk+HPAUgxbpGBKwytVmcP9pE2Gk74cwidD2BXQtuTeET/0XdU25jqbHc+4R4lAU8eCQoW8IJU0m/Wceszpo12JQOFiWe+o7n2yBAB+TN5xrluK9Nnitel3UIgPsD5ngwRsZyDkUIAbiTF1PKcT0547mnAHrmk/aXAwnw+zs2k1rGih6LpxNmNqjxLvSuh5r7meAnqLri4x5m7m3XtetiFQO9K6+8shEaNQJKBwEmoU7IUlIIEMBQgpfjr3jFKybxw8XAljDTljHFp69w7lMCDQErcWF911/WflluxMn1Jaww1lktaafr8cR4UpZYtcrFe6CnPvwgYB2fSsZd22qIAiQRjPJSelhq7nUNYMeL+N586flnXpkHocz1XLaRw/juhTrmr9BOn3LbVbn2UkzMjW2D3RwliGdEWIebvpy7XX0bOmZszVX5KpSSpP3kQAL8fo7L5FaxpsfIww24u8A97mW1WYtMGQAiQYS8JUzicu24bVyjDfagd91U8AFqLBd0psI9HXUOfRJgEQse6nNfGfpA0eDpYK0gVk9fWaxef9z03LUEcE2MnAuW4uBaQMr6xQv384woT7na4hggMT76ZowoArXCXnm1hH/6ri19Yz5Ulvbh13Oe85xGyTK32gQk8Nbc3AW4R3vwlDLDO4PfFLih+DZlxJgBdvw3f5eiWuV4KrBqo3kZlvu67eV14+Ha1GqHdduX969WCfDHZBbUCG5CieAaI0ANbEqAJ4C5MMcEPaHowbckLSwEgmVKvG6KBTXWlwDFrusAFxAnKAEkYAXe+uBTqIC1y9WOv10JgV3lqpOSwtKWJQ08upQCdQqLOA/82iEWIE6AinfymgTgAE7jIJte250nuGvCI1N56/p1wEtbX/Oa1zTg6W1yvB6UFfOBYsNqnqKgdPF7qWPGw3zgwRKaoGxpKyXHd202Z4wLZSTmzVL1Ty1nqhJNGeEd65qLU+uO681ZcsUcTto/DiTA79+YTG4RIAUmY0RQ17haXdO2CAlioFVDYt6sG4DIGiEMgSXriDAfEwZLWnKEMsAN0i9xf20B6IAS7wLI9JNwdw8+4BlgrQX3qMcnAFYfN7W4dyg8cc1ll13WuPv7lgJSsGzgQyhfc801q7e85S3nude1nZBVl/X/eDdkAQKoKWSsgPQ65H7ufnyV4LnvhH+hLAGvfaVQkroSQ7vaTFmMXJKu83OOMQY8H2PP9Jyy8571OZAAvz4Pd14CgdQG5K5G0dwJrjGBDQSASkmslbHErLg+lI0y1gv0gaSYMpcsD0FffJpltwThCcCL9gB1MXXtkjg21B+CXZa/Ty7NucTroc+y+YEwIpiBvvojvj9UPgEaWe36UnpW4j5CngIgPDIEShQt9dcoesYc/7rqi3prPs2n2Eug5vq8po4DQPXU0WoYYbMxMic892PP/lg5Xed5Ba0CqJFBXffnsc1xIAF+c7zdask17jrABmiG3PlAFwhY91oSi5Y1W+PiHXrQtUEGv8QkCXDApk0AvhaE4l5AxGsATCkx2gmgWOksdsfwqNxgJu7t+gSqFCKgrIx1CC8tn6I0RdwWwE5Z5x+xfVZw3+YsrrEnOTDtmw9AgeJS45GQeBZKydz+AxbtMRZJy3KAYs8q97yMWfHmw1h4bW7ryBOKQ1rxczm4ufu2sxZlc+3Pkv+PAx50QDbknmVFs6bEfbsIMEuIsh68dGu7lhXXBxrtslw3ZvVZBsdd2BUPpGSwtmuJ9WDpn74r1xpvLvFbbrmlAXTtwRvn2ksD++pQFsHZXi3Qd/3Q8eijHcgoLsrkep9KwFb8dwgsCXFKTHgt2nVQ0k4dWX3i9kMElAM8upSwoXvjnDEMj8LQvIzr83M6ByiuvEFDc0Kpzsc8nF7L8B3KXVcJHq4hz87lQAL8XM7t0X1AIuppAABAAElEQVSsVcAF6GwdS4h3kYeQuxnYSf5iXbkWoMqEJdSBD3BoW+GOS7SrIQlffWvMgQUlw6dsZaDbdhuyxln4NcCiz661OuDMUY5AW7GI5DhWrzX+Q+7rsm+8GKz4Gld2eV/Xd3UCOG206Y2y5yoOPCDyBIaIIjdk0bG0JJJZLdEOh/hNEcFX84IycMUVVzShjZrx0C5lmEuWZNYqhUP9yXPDHDCfKFLGq48855sCYcZAO7+krx15fLscON8/ut36s7YFOACQWawIWLKc+rLlPYxvetObGrBmxRH2jnHvctsSAgCa+1xZyvbwshQAC6AaiklTHigLXbFlrmFWodgzoQTgY5/r9lIbliqr3FazfcIDcLqGpd5nsQZ7KRzW//Ne8By0lYq4Lj7xZShGH9eNfQI4CXJi6HhM0OJh20MyVk6c188xa821VjIA2r5rgUFspYu/2kOxotgZ6yDtlS/BXW9OCDPYyAdvKJbmi2tifph7FLhDd9fih3FqK7rBl3361EbPkyRL7yjocsXrj3HaBMWc3kTZWeZ6HEiAX49/e3M3YURQs7LH1sQTypK/+nbu4uIFuCy8NkBYasOSs21rGY93jGIgBg5I29YCYGUVepGIc4QS4FNG11IbQoMycN11161e9apXdYK8hDntGAP3GCR8AfT64C1cQ6T+da13Zei3Pd2BO9LvdcoNIB5qu3M8BHjbHr/yPmNWa2EDf3+uN84UpFLxUpbz5uGuKRQW7cBvf2OEr1zNwNEciTlFWSmVlpqyxuraxHlzjULnZUo8OEJAPFBB+qYvmyDK3L7yZRP9PaQyE+APabR62uoBu/7668+6Zdd9eQZQsI69CxwIcdY19yuhQdCzBllwBCPruA3u7mEtAroABdfEpjgSw7jW21af+whe66etAy8z+50DNpSRKcSzweofA3j1dvV/Sl36TMiW7nKgq+1zCa/HvA/Kxmf1GhcKxbp9KdsLTEorvzy3q+8xF4Uw9BuPzDGKBw+E5XnmVxcYmXv2IRDiKZXW6AtviPvs2iZJct/6Hu30qW2njsIq5h4eUFiE7/DBubF5X5blO88A/lHclENJ9myUxLM3FB4or83v2+VAAvx2+b2R2jy8iPVMQEm6mbtblQfVu6bbIB0N93CzDlj/seEHACEk++5RJsEb4B5luZ6rF/iwOrS/bQECE5Y/b4I6ADQBDtzHPBVRT/lJ6LHO3B9WdXk+vgMM9c4l/RCu6Fp3DPQJxTntB1TyFmqIcAdIQjLGinW3jnJRU+e2rzGW+AiE+/IawlNlzK1CwBPWrLmMR+985ztHE9DMBzkUEh29U32fydwD5v4AdBCAdqwm9KQMSr75gq94xZNhS2EeulIRMs/Tgg8u79dnAvx+jcfarfFAeuDEp9/+9rdPcgd7+CVYAd6+BxZAAkZgPQSQZUfco2xCowR5vwkgQpqgJTT6LIGwvgBjCJeapV5lO+K79owBneQ87nXK0xyXun4RqOHqjbp9EpjCD1MBHkAB6tL1Wpbb/g6UjOXFF1/cxF/7xrR936H8pvABXcphDZmvPD6sdUBlLlmq2DVGfeUZOwqTJELjcUjkGTp1ZN135ce0+6F/ntXI7XGeouQ5pSjim+dIKM+cTNpPDowHp/az3dmqAQ4AL8Irsp/HBLvrgRlXOCt66HoPvQd7CgFkFryd24KAe8QLAagy266/uLb81DYWv78xkC7vK7/zCozVpZ88BXN3XuPW7Ntv4GMf+1gDDng9hax80C7tryE8pqCYC9pTe19N2bu+BrgDn1pwL9sL6AEUfrDmpxKQK9+VPvX+XV3v2ZF/MgbI5gsqwT3abAktBUk55he5sWT4J+rJz2U4kBb8Mnzcu1I8zIS67GexQ5aHGHZYdYQbq5ol6YGm3dcAAIDxN5Vs9qKOq666qgF7QkZ7YkOdPvf+UD21S97aZWhHjdVGmLFk5BaMKQRddVBqukhf5RSwIi3fo0iMkWvlVuiz9gO4MZoqePGk7a3gUalRpChx7jU3CH7zz72+L03mMLc6oJ1L2nrDDTesHvvYxzaJqVM39PE8Gd85CsLcNi9xn2deDgoFpz3WUT7vkxUufeS5tczS5k1kTNL+ciABfn/HZpGWEc7+AIPs5xDCBDDrzucUcr3yauJ47XJlvBP6gAeYlJ4AZU5tC8VkqgsdH/CgBuBdy81OQZoaDqAs9QlQfAHQ9qDnxThzlNzl9ZtdSg4B6i1nrE65D6z4GkVMHWX81e8uUqc+8ioAOe5/YA2YjZXMbCszuGKBQ0nGD9iyogGeOUER0j5KSNwr3j1V2SjrKb+rz9LJdcA9ytNWLnuAp9+1Iae4X9zfHGzzJc5v4zOUMvNJ+42J5wj/hRB8GkfPCTKu2iwUJ7m1a466f0ihdY6Cbm5Gudvoa9YxnQMJ8NN5drB3ELy14EDwE9hhKQI7QhoQE9hzBSwBVAJ7MJMwUvYUIrxqt12Ncl0fSVdxrO8Tr1jvhBlgnZKxj39jCguwsusexYungEvfMUIXrwliwpQnIVYQKLPGg0KQjwE8cGCpASr1lqQOx4C3P+Mv6UrIQhuAifvc39UegIl3PDSUA65cZUwd43abtCV4UZ6b+50yw+Us+W7K+KqP56ULIOe2xXgY75Kf5qC50PaEeDbxQdvlcnQph9rhXslxlETzGP+VKYHUunlu+PbYU/iMFaWvizyrlJp1xrKr3Dy2PAcS4Jfn6cGXSMgQXF5eEpYuQWG3LFYZgUHQLkmW9YwBYrs+gopgBjY1oM2tqA7A00UsEpv/hEDFB0oES5sVL9xhY54x74V2EYI1yXCUHWWeObLi8Vbd7tcnFjVhW5L2tAVyeT6+A+IhAWx8ga+6a0hfuHWtZgAUFJNacMNvYGR1hwTQoXYNtQXfKRVLk9AHJcv8loBWM27aAIhdCwznkjlmjK0OwScKNb4qm3VMmTaW+OY7oBcakFxY007PL+8QJVHc3DNg/JRNgbQiwDnL5yg7iDcGP5xvJ4Kam3Jppj6rc/mT963HgQT49fh3LO/2oNt5rRTgBIVNaq688srGIiOkQyCsywSCa24sjyURW6JaPlZaP9EuQokCATz7Xs0KOCMmTsAhVo8331177bWNi57AAwIsG8KYBUdAI4IXqMtpsAEPIYp/fTsKNjcV/5QT9RaHz/mqjfpXw3cKif52EaWC8lAL7mUZ3OO8GWLPgKOWtNuSQQA21Lah8gBaeJSGrptzzphSXoB9DXBGHTXKVlzb/tQXFjhwjXlUXuOY5y6WAZpX/ig5U9qoTPwH5Mq6+uqrm2qAtHlqh0KAbj6b1xQOCrNn3fOCNzwEnlFKWo13quxHft8dBxLgd8f7va2ZICjBPRrqGAFw6mipDaHQ91azuL72k/t2nTgmAOd6FysGqFzdQCxiyFzVLEg5AH0U/SlBVsybkKWAsJr0nWIDCHgOnAvBrA0EJlAN64bl5Xhc01d37XHl9SXulWXgw5B7Xhk1rxgtyyy/y0eQYAUMpwIccMJDytMUSx6oLO01KvsE+IDtmSNPSpuMp7Yax/Zz0Xadt+/t+q0vQlzc420PTdf1jgFo7aOYUTjN5aFEuL5yeIbe8IY3NEsneYyQOQro/VHcKJDqo1zwWnk+/XYdJTPpcDiQAH84Y7W1lnbFyKNyDz+Bx91HwMyNxUd53P1itHMEZZThkwAGaqwMQjisDGAv43rM6mV9l+AeZQMxFqusd2209FBdNeBEGFIEpu4eFnWXn4Qr4Tv0HgDXW3qnvX3WOzf3uooZ/hp71mTtpjtlXygIPB0BMOW5vu/Gb6rV2ldW13HWdFvJNC95fgCfZyISyli6lGC8pPxNJc+PcMdU5Ug92gGgJQYahzlKj3ol2NkfoR1eMMcpxiW1f5fn8vt+c2BaCvV+9yVbN5MDLBOafVgnLMU+IvQQYSgTFzDOJS5vQmZJq4CAAr4AzicBVrPenEIARNvkWFjg3lo3pb8AgaW6hICkULG8h0BB2yggAKmPgNISQEnxMX5zFDO8pjCxEGvJGEy5vrbc8jpKhLEy5pbPAXdAbsMormqKope5eFaEhSgpU+aDutz7xje+cXAcyzZ1ffecCneYE22A7rq+6xiFRlLhpnnaVXce2x4HEuC3x+u9rYlAs/1kWCgsK1Zgm9rrXgk37kKCfirF9rNzAGJKXYBe3HBs21meCG7+NhHkLDaWuPM1lntZBrClCAVvy3O132OZmpBBH0V+AFdqSeVv32uSEcv7+74DGWA1FArou9dxcd0p4KLtoWgNlbvOOeV7FihJvnODG/uSKAHCQNzrcgmmzAf3SmxcIo9AWXIgTh2Fy+aSMWgn0c0tK+/bTw4kwO/nuGy1VYTZc5/73LMWPFAkOCSUcaGzZAAd6x1QscD8BThb4iVOVwNiymYdAb0hS3NJBnCjyhaWidxHBC+LSKIdq4irX4IdlyiXqv5NEeZRDx4BX2/Fq+FP3BefeC+zn+XYBXC8H5QxY6DdgFBcl+uWK15SHEsNsDu+hPUebeMNWMf7AmBqCR+B7yZJ+ea9fI2xMAaA5ebGg1oC7DwCSxEvirk5R8GONsiJGPIKxXX5eZgcyBj8YY7boq0OwVkCkO9hOaqMIAEQgJBV4zdXvj8AypoBoIQ2wUOYEYIEM2AE5sCKksC97/5tk4Qhlry4cVuosUjtMS6bmFs9lBh8sLRoHTe7MpRneZFlWJL1xgjPtAN/IzENz4wVJQk/xeQJdyDrHIuYdSnG3WUdU1i6lISxtvSdx7OYO33XDB1nPSqjnHd917vGvOE12AThH57zSgHuGqL8CTXwbLmXchVKb/t+fD9zlMDnmiVJ0p1QwVxLXN6JfqyjqC3ZnyxrWQ4kwC/Lz2NXGsFKOAGM9lukJFoBGnF0gjH+gCTBHcIsQJ4Q3CURYlztBCKgYH0BekKO1YZ86qs+DFn8U/sBQIAxMKAgxQYlJRC7hhWufeqnOOGdYxSE4KfrIlYc7aBMUQT89ZExce9SpCz1ziW8rwV4cwf/apSjOe3BY22R5xB8HitH/ymswBXQ4oXwlnlDCSt5bZy7kjjH6hg7r728DuuQMuYuU12n3rx38xxIgN88jw++Bhq+d7cTgG1iqUtCsisWgEfAZx2Lt13Hkr9D6BK24YkQWxcy0L9NKyOUDJ4MngR8BSbq1S7WsM82OIxZVxQwmfpD4I6HQKadKb4Ob5W1zioKSkstGRd8m5O1X1OHREzjUOsh0B6xet4q+0MECYUYB1sQA82Yb8Z5idh71BOf2oyPnjfzaQ5RUKyIiLbOKSPv2U8OLKfO72f/slVrcoBVYmkWQdJHXPcs0lrLp6+cmuPqUB+rg7VNIA+1ratMLlihBtagkIIlSz5ZiazmbXga1MH7QSli9QEDv+eELwCH/owRQT6WbDhWRpwHBhLs2klocb7mk3cIUNYS3qwTb+6rR194TFCtR8L1+t716lWKlDllngYpd1PPh/rWUah5UpYM3USf83P3HEgLfvdjsNctIJhqhDiLmKAZszbX6ay2ALNyDTGrN5YsjQGz+23x2dUfSWxCDazENhHMIQR9hrBWXwCyfu/CAtI27uEaAU0Z0mZt1Y91iMUrYW+KFd6uL0IQ2mXuaBug6ptDjsuH4DFaklivFC3tqV1XzjU/lIiHv8qSm4LW4dNYX82BKYpSuzxt25Ty0a4rf2+XAwnw2+X3wdXmwa+xkAHMpoUEQSQPoKxHvSxyCWSyzYcStgAzKzYS/QAKwagMAOOcVQMhLB0Xp+d2BaLc0WXdMZgRNwcUAF+52yJu2dq4tLbLmwA6FJ25hD+njuK+U9+w167POHC5Cy8EX3kFTp8+3YxJVwIfC17dEtaWIGNXLneTWGqsx4giMpZBbz6ZsxS/Tc6JyJMZa3Pfee2LOd93TR4/TA6ki/4wx21rrfbwA60xYl0NgevY/e3zbYsHAFt7HEDQvh7YjFmlyqQIAAnfWY52uiOoxb1ZcdyqFBpl2avdC3dkSruur26WrGtvvvnmxmVbumbb7Vz6t35Mib0aI/2nyMwlb5XT53WW3AE8cwbvubslP1oVoD+vfvWre2P7gJUVD4jXJfP69JEyITQSJIRR/o7j7U9zYcxjo49xjc9NgTw+js39dvvL3zwXSz67Zdn5fbccSAt+t/zf+9oBn6xgIDdEU/cWVxZhTjABqABaVjNhQ8hGTFobgC5A7iNlAdZI9CuvAyLi9SzFLvd8XGsjGUKYm16ftYnVX0vaoAzhCsCBtmEZdVm6TeWtf/gKGO1Db8kgkJIkNoWMMxCk+KxDygF6xhaP8Q54x2ZClvsBHufbBNAkRZqTNbkH7fv9Nk+U0Sagb6WDMMDQ2FNuKEpDmfHlKgzzinciVmu06537mwfC/Ma/uSTcso15Ord9ed98DiTAz+fdibiTEOZ6BsRnetyihPKU5C3AQigR4pLz+oA7wFb5BP2YEAprKQaG0ONWlyTIXYqUSYgDRed5Bkrrh1C3GQm3PBCyC56NYmrCFFGvOm1HaqMgRPHQdn3wB8iWspiU0wWC0ZbyUwiDMgWchDWe9rSnNVa0/vZ5J+J+fLN8D6Dccssto9fHfV2fABqoANEuvjqP98719c1YR0gGyHeV01W3YzwFNi7SlzYZJwmPNn6y53ufN0Z9Nmzy2twuD4owQrnXvjG3kdLSAC/MMaRktPvX/q2/ZTvb5/P3YXPgDkcP9rI7L+whPzwEtP0pILSH3dhpk4BhxEvDsmFhca8SZoRyDbHQgS3QrXXxEo5c66yut771rZ3VuOaqq65qrD4XaCNrnVtf21lTNo0B7JQLAhpIaDeQ1CYKR3spk7fM+QPYXYK8szH/dxCAsJTtY06RQLwSBD2lCf+WIFuWShIcIqAWrnUKjnACXlCetFNCGPAplR3lOcdSdT+w1ZfacetqD0WBYmEb2DFgAsLi40MeCvMJCMeb1voAWb3kgLmqjzwX+GHsnWsTsagsqyvwxti71viZ85QA7fJnTuqLe8wn4YauZ8K8o9Sss7SwbKe6KKDGZIqCU5aBJzwZnp+k48OB66+/fnXDDTesEuCPz5huvCeECEHnk+ZPuBEybcs5GhIWst8BjhFLnyOQCGQgw8Xc1ktNaG3SFvU6/5rXvKZxSQOnWBLXBQAEN0EHeAlf8fSyfdza/rzgA6BMIYqF+ikaJbGaKCRLkD4BjhJ48QI4AyKArm94gP/i7wBRwh0+AS3WOQUY/0KBw2tgaEkikKNg2RYX/8u6avsARGwFTJHiIakhYAnozbMhMubaqu2Rle8Y8I5Qj3HmfSg9RnYXpPjhVx8p03zAG2W0FQ48dR4vXYNv7WuibH1vz4U4F0oI74Y2owhZ+cRzioQ/fZOLYOzX2f5W/839pOPFgQT44zWee9UblgqLWDYyYCe4CC0AwpMCLOZSvAqV25yQAzoEnfLDEhM75zrl5iWQAXbbMu2qn3AGyKxrS/FKkHdMXZZGEd4A06c+6u8Q2QQIP9p5DGKy3i0PiNchwAK8AYc26QOhTfhHbkP0BT94DgL4gQWwDf447w8ZOzwuCQ94JfC0Nnvf/RQa1jiA8zeFvBoV/4dAuK88wGi+mXveBmccSjIGNqUZUyDKe9b5TlmQC1LOBfw2ZhQvXhQKFTAvlUlz25gZ15gvFAueEOM/h8xhYYa03udwb7/vSYDf7/E52NYRTCw8QqpNrJKnP/3pDXjOBXlC3otjWKXAB6CVwhlQiS8DBN+7NiJpt6v9mzULjLg+A/hcA2hYS0D5zFE+AkvQS14s3WsDR1mmpD3liRVz+ZbEumfVritkATjeAF0Aqp7wmpT1ld8Bi7aFh4NV3wb08vr4TkHg2ne/8AAloY+AEivcPUI8Q3zqK8NYG/M5IQ0g+NrXvrYBcUph2/NgTgoZqGNbBOR5ingT9En4STgJ/0MRG2qLNnt1sXIonDVj1i6PwiOZcA5P22Xl7/3jQAL8/o3JwbeIcLrpppvOi2OXHWOJADRWTJcSUF7b950VA2S5QtvEohZfdU2fK7R9T9dvLnngJ1cgLClWKG8B0KDEIPFpMVnX9REgFOckiF1XKg3u4apfN9FJmygflgvWgETZVkqShDXAwSKM/pbXdH2P2DyrPtzi6uYJoXSxNPWVlQzM5gBR1AuEudKnEhBElB9zrq3wmYvGDw+2SZQvSpg5bMzmPAu8WeaofIopY25crrnmmm12N+vaMgcC4HMd/JYZf1yrI0iBQztJrd1f17HkWHVziZXaFUsHctzNLHDW9zpEUdAX1m0QKwv4BWg4TrB2KRpxT1zDjc/S5Vlo01SXdft+/QYSU7P9oxx94l3A02uvvfZsqCPO932yxtXJYyKezwqmJChHn7yqFqi6bh1wV//c7HMKpT9KFiWGYshb4o+yFqGWvj5u6rj6zS0Kxxxw1y68N26AvjZ8QSnjdUo6GRzIZXInY5w33ksWSS1QcU8SSABhLH7d13AufsKqJG1gnXAb11qh5f3t79a02wYX2IeFpF7udjFT1qn4unj9GAE97uFTR1ncAKdUEli/ygdCU0kbgLuQwbpE8dIumdkSCqPPY+XitVg//lO+SsACZI6vS5QtseZaIOuqD39ZvPI1kLbN4XlX2VOPGTdK6NC+DDVlmuvmE4/T0PMXCo75t81wRE0f8prNcaBTotCWLbuhIXpwxR5pvrTdpORAFwdYkbWA4H4CW/xvLsCbl8CIcAuiOHAHA7wlSPmsT67hyBlQLwBTD2VC9nqNdaksQpYVrzxKQxAABJJTwQa/AXuAu/ZQenwCL65y5eIx3mi3cRoiSg0gFWOfykc8YbGXxHLXjnUJb9YB96hfOVP5HPcu9RlJkVOSFIfqNv7ks/GlOJQkB4KnwJ/nbduhiLIt+X37HDgH4Amvn/7pn1795m/+ZpNdKTZF2/uVX/mV5mEXJ/y5n/u5jN9sf5z2vsapFrPr1xH8oVCUAA9EWclzs4q7mExoiucHwANLz0SN1V6WFy5qFlsb4Ln454COvnLRei5ZZgCwzIpXp3K11zWeZwqLWH0bCMq2SvbiuQDYZEINudaYGIOS/C7HqDw35ftxsjrNoTKLfgofuq71LAmReFmSOeG5ouDhWSShLqEcddWdx/abA2cB3taTL33pS1ff+73fu/rJn/zJzodSjPVnf/ZnV7/927+9+rVf+7X97lm2bqscGItDtxvj+nVctwGYUW64b8s1znFunU/lAc8gVvMcKwjQAkCu+nbmMvCdWqayuNSFC8S9gTJlpE14rE7Az7oG8lzwLPU+CxIvuX7lC3jma4iLOJSg8nr8AzRAvg3+5XVj39fZO3+s7G2f500xJkuShD37RBjfpORAcOAswFsPaeebIXIN677GJTlUTp47fhwAUNzDLMQxIuxlXrM25hLAbHsAWCnrgEhXW7os0DkeAiAHZNvlafMc8GKBiyezBsd2sYt+BXAD4mc961lNElxf3NYzTrHRbnUMkZAAJaPPpR9ekL66hsp2jgI0VYEcK3NX5ymmZXhmqXaw4nlbjMMuiQJcKu67zHPYJR/2pe6zAO8hqqU5y1Vqy87rDpMDAN7GMlzQYwBIUQQybSt8Ss8pCKXrF1AC/E27IpU/1r92P9wTCo3vwEpMFPD5BKJTSP0UBSDfB6pD5RHAdvmTW0Mg971wxnHP+tBOaRQta7Ijdt9Vr/t5DZSnvqlknXi518HU+/fpeuO2tJcp+ufZM592QRQMCvsHPvCBcxRZ6+3tRGiOT/VS7aIfx63OzuwXa1avvvrqZgMGS0niz4YRScmBLg4AW8AjdjsEss7T6rmUu4j7mruXe5iwAoxdxOptW/CAswT9rvumHlMeoRxEUA3Fr+O68lPWNqEeMXHlKccabC72qW0G0Dwl68RxAa01+ZYr9ll9LEJJWn1EYF933XXNeu6u8EDch1+WL+pve8zimr5Py/baqyX6rj2E4+ZAOZ+WbDM+T1U+l6gfuBt/uBG7IjoW437T0d4YzjuWtF0OnLXgy2q/4zu+Y/WCF7xgdfr06XOSfwijpHkcMLnFTT3gHkLC8Ti5r/QHGABuyT4+gZA+AzAeIoDtd2wSU3ISsMvcxhPCAIj57kUv+CV+LHaJgGOXx8nxPrAq65rynYJRru2XTDbVAuNKDytZG/XDVq/+JPCxULm5WcM1hDfuXZeUQyCL23YpC+LE2ttF2mrLWmMpwWuMGAnmgQ1WCPwxS54iwPIzB6YqQGNtWeK8OYl/nmuWM2WIgkkZ4W3o49smAXiTZQ/xTAhH0mkfgDvuvN0Iu57bobLz3HocOE+imCQE0Ete8pJBS2y9ak/W3QQlFyZBGNYfocVS5a6uFez7zjXgqi8Ss/QNoBPQhDmBZ9mlOHSbnGPdAa0AwrjmzNESIG5iHiXAQJACiy4BSskgYOe40aO+9ifrmwAPUn5XMlmcb39SCAj+SGjzu8w9cFy82+Yj+jkGZniJJxSlJUhc3DgZu1KRUTZL0/i1iVJy6ig+bz7XxJPDqyNXgLJD0MdYt/th/uB5vD1wX56NUNApdxTQWJevfXhnXpibdk80hraBjeeh5B/FZVN9Ms+GvGdlO5b6bj7arKcP3KMe5634MBc21f+oKz+/wIHzAN4EkYDzG7/xG6tv//Zv73zAv3B7fqvhgP2iWUolEZ4ylQl3m6X0uaLLe/b9O8HGCkdicSXx/tDe2wBPKNmq1Ss3S+Ar78WjG2+8sbHoZAtzz3cJMpYTAez8FBAu6yq/6w/BTTlD2mqcahIJXU+Q6XdpbQNHik5JlGovQgFqgLMLVHl+WEoUxBpQLcsf+46nYqVtgHdfWIUUKsBLcdMGQn3Mk8ErwQqnuNjUhfLmz5ptMXkWsDqBvP4ZP6CI7108GOvHJs7rPwVdHsGZAcUKcNtBkcKuj7aPpbQ5RvEM0jd9rJ1DcV/N5y6sY2NI4amh8MwlwNdwa5lrOmPwBO0LX/jC5qH3gMZfxuCnMd3kZ822wb0shfDg5gzLvjx3iN8JaUlXLPJSSAM54AjASuIepgD1gXtc6zwBaymQOroI6BOe4sqlUO26tuaYpEFgGu5keQEs3gC9oTIIfC/WoWiEBwDQAbO+rHSgaa60rSHzCMBwc5onffcPtWfonPbxLLRJH0IBo4QCZX3Af39dPDYGgIb73lvaKAQEuvuCKDmOCcv4bgMtvAWGxq+cN3HPLj6NA1CifEpmbHsbyjZRUIy17XmFqp761Kc2W/jG2Me1eDZn1UTc3/cZfO87v6njnoXanILa6zbV1pNY7nkWPCb8xE/8xOpHfuRHzuNHxuDPY8ngAQIhrL+hC1m1AKwPuIbu3cdzrBQCm/Am4Ag+IMUdDaAB/e233940nVVYu8zL/XgKdPqIpQkAKRkAcy5F8llY30CL4I7fIVBj1zi/KQIsUq5a1jhLPZQ7508dKTdjWe/aDAyVi/RX/oE179pAIVyalNkV8jAfhesooNoPiMkALn1t1F/tM7YEvXFXDhAr53L0XfudozjsOwFsbaVUTQEmSoHkRbkj5rrcBi8aKuesOY8/Syr1nrUxxUjbYrzM0xg391GstNEY+qslY+v6tlLadf+Ucrvuz2PTOXAW4E1KE89DzPrqIxOEJf8N3/ANfZfMPs5tNSXZaHZFW7qRoK+x9jQHeHlIjwsR4oSGP1YcAUAYEJqsduPMjU+QThGg3MJDmd3qcB7fuUtrN2op+c6S9Ay8+tWvbtpNIVEWNzPL0z70riEkKTAxzgQllz6PFyWjdF263/we81TgBSWCBYw3votdIrwLb0LZ3nW/Gxtlt8kYaa92IImT3PmW13HpAwTjW0NtK77mninX4Is/8w6QmAfrkDF929veNmlulvUZM0om/hjTEuCBOwVgztws64jv+mzO9QE8IDdXzxx5wIQP+hQLbYQBPFeeobLNUVf7M+Z8TdjIs9HXxna5+XsZDpwFeC66H/zBH2we3G/91m9t3GseSmSCEDS///u/v/qt3/qt1Yte9KJlaj8q5eUvf/nqZ37mZ5rJrh6ChpLx3Oc+tzk+JMwXa8SGCpoCXPp+XIkA8hfkIQeQxrbtwoxr+j5reErAAydCnluZ9dsn1Mp6tJF1KhHs9a9/fQMYwF1iECtWu1llPC5csX1gqz79cy1AdB/LlhJdQ8IAEgmBROkBorSsC1xd9SuzSxElkNs5E/jIquWCBvK7tMq0mSIFtMJLRGbxFJAhQgAhw7r63XdMH3lfauZaXxmO87xItms/2+YZpZfCFCtDhsoZO8fbZJ62CX8oxLxGNaElxhug9sfYMH89R13KX9SFv5QVYzBkxeuz8uaMR9SVn9M5cBbgTRJb0L75zW9u3PNeAekBp23KlqWNWvPq/FKg+4Y3vGH1/d///c22twSGB9MkMxl/8Rd/cfWN3/iNTXJVTbeU0ydwx5KBasqfc02X27OvnFpLqO/+QzxubhHCU6j2etYH4CJ0WOMEELDtcnEDKS5noBAuaXOJNcNaJZyUQWCy4sdi4K5TF6/M6aOlpgS8OG4tUQhYXACgJICDZ0sTXrXBjCD2nFNW2qR/kgKBF6AaAoD2vfEbf/Has66/5AtPAV7XkHE1DpSN9vON7wwSOQBkylQlhOelrdjUtKl9jT6SnQCwTWSDZEN8NNZzCf9jCWJZBv7og/BXjXJb3us7HpqzVjx45oZ4SAmQUKgv4e0pyzM/yPcp8rC8P7/P58Adjh7W/+m63QTxkHBVcRduYnBe/OIXNzE9+9+3Sf0e+lA02ufbvyVqdU0u111xxRWNO5jFsU0CJrJp2xp8uw2ACBAspTi1y9/n34SPN7KZZ2ME3IxlLcgrzzwCAIQ20PJnXAhfgkeZPrnPgQ1hq3yxZpa8eR/AIzRFAZ1CxpZ7nqu7tMaHyiCw8YNVWhLwIyiBWs9jW15e/Z1y49ko8wNO/V8yJLduH+ElAOhK0Ou7x/Hg501Hyx4pVaxPCob+GQ9/QH8IVIzrG9/4xlHwoqABQeXVEKXBfDFHKGk1ruehcs2tK6+8svPZNobmBz7UzP92PbxNXbIZb9Rrt8Ix2dMus/1b++QQ8EgZ7z7yPOEbhdCzpF48ZyRScMg2bUraDgeuv/76Zuv53hEjkAhFk5B7EhE8rJqlyMP3ile8YvU93/M952nu3Jm0SNphDXH/9NHQxOy7Z4njBJVkK+/WHiJu5E0oUEN17ss5PBI/BFpjZL64fgoRKgAIf4EzoU0QEUBAhUAnnJwHcgQmYeQ34YZcc+uttw6Cu3nqj1AjYNVF0KlDrFXbPTtlXL6rH+YqqzPi7uU1gNFz6byylyLtKkMlFBxJkmLQQ4RvXNks0Zp4bZSFN5IPKVEUiJAzcR4PuYgp+MC/bdUbD+vNayxTz57xrAV4/eHtcb1VEORQrWIW7S8/zQVj1qW8x/wCoMbbSokaxU3beFwf9rCHdT4PPCOep3XBXT+0h5Fl8yogH20u++h7zFvhrNIbREkbUtTa5eTvZTnQCfA//uM/vvrlX/7lZjlHqXV5Vewzn/nMxVrwvOc9r9EyWAtcPASNh58l5cH6f//v/w1qjYs1ZEMFEUy0bA8JId/18AI3SVsn+SEArBHn7uKR4bnssssaYGsL+9qhIxT9AWGCDziVdSnX+XK+K5uAtl9Bl2vfeVa+pEFCDeiav8aSUmFes8y42v0BzTGAZ/EA2z5vFAXFfFkK4AEzhYG3Dun/ox/96Ka/2gLshogSDsCGAB5P9EfZeAwkXC+PoYuMDwVA3XJxwiKNa41Fbf+NMSVizIJUp4z3WPVgPF/5ylc21isrvkaZiPa1P/FniCgxFEvzRdyea50S0yZz1xI74E4Bbc9V17uP7MTzpQgPGXm8NWOhxAT0pbi+TDmdAP/rv/7rjatl0y5tk+V3fud3GgvXw0UImrgE2DOe8Yxq630ZVmymFAKNG5IQ1T/WI2EXVpLjJxnccV3/KUKEsHlAeBO4juMPSw9gLsUnY+Kvhgj2PguOd4ZiYMlfl0BWPvC3hlx8EhHSQwIfD0p3LSFO8cUHcwYPPDc13oCmwpF/QAWoAVFWmLi635QMyucYwCsegGpf21OGJ8oCkAATz/HMMxBewaHmuedVr3pVYz0KIwTZ+GgKxXwiW/qIwideXhJgYw0D4HUAvuZe40qhkuth7hsP98W48FyZCxSjPiVXe/G69MaU/Vnnu7ZQPnhKuxSLdcrOezfHgU6AF7PyEG4a4KNbJrW/40rx8AIpDy9yLB+UL4x4uPi4ewl2RGDhUy0Yf6G05b4B42hPWSqPA6HHpTtE3K4ELhc9axcwDwE8Qe46c4N3gLILZIAU4W3+ABxKD0utBjz62gfcgR73MOAAvgA9rFj3USr6vBdRLotTu9oAT/HhjQvSN9fFHghxfOgT8LqeizgAemqfjZ+5NES8CuZZe6z1v50LMVRO17kpzzkeBh8pg1OIQgWEN0U8WZbQmX9Jh8GBToD/pV/6peaBes5znnPODlS2rhUvTprHAZr31BjyvJoO9y6A7m+bRPh3xRYd77JgWeWur91IB6AL0QDQsYxpwl3/KQSUbDHktruVm583iJIxN0taPFXyn8RBigQvEwFegpl6WOZjAA9wATcwRL7H0qxyHNWpfKA9hXg0KEkB8PFZWwbg7hrf8n4KDiXiTW9601llwLbLXOI13oayrPb3bQGiuTU2v9ptm/LbuFE+t9WfKW3La7s50AnwP/ADP9DE4bhNS3fQFE20u7o8mhzYDw6Ucd0+4S+U0rYWPQM8XFOFPiucpTu2TannTXIZgByK14vF64OsekpA6dYf4rC+8gp4tq08oUhQQLq8Afpeq5BSAigDCMCfOXLbt4n3oit5sH1d12/AxUIFMpSRWuVKWTyRAHyI8J3i4G13XPXhOZKpP2b9D5XrXPBl7Lp1zmtjqZytU9bQveYd/m9bCR9qU57r50AnwHsIuel26Rrtb3KeSQ5M5wDQ8ccCAbasYkJfzFt81/f2fCc028KdsGZZK2sqEY6AtY+AKeH5lre8pSqOKhYN3FmawFg4oM/9D9j105Il/aQQcEfzLLSVmGgfBadP+Ylr4rN0bQNi97YJKEzlW7iseRm8b5wiAYTxqR0zb9fnN4VMUlppqHRd55i6eCHwBy/Nk65+9N3fdZybvUu5wAfKSvBY+1xX086uevC/b+y7rp97DP/VlQA/l4Pbva8T4K+99tpmjakM1qTkwCFzgDACOPFHiAI6QE+JPXNkaRKqrPL2sizg0AZ9eRRDlvUQrwhgAh2QtN3UgJQL3/KmKUlSgNrmOwAQ0GsvYAoACdACNIQz5Z0noQa4CPF2O/v6VyoC5ffyesfH6nUNi9sYUb4QT4VxtJxMaEJfJADqp78hIsumgJG5YIkeD8FYW4fqjXOWspUhBeNizIyDvAr8VafESXOQMhKhjiij5lM5fYpazf2113iO2kpv7b153fY50AnwJopd6+JBi2a97GUvWz372c+On/mZHDiHAx58c4cQ851gZZXuKrTD0pZ01F7mROACRDudxXpqYB/LsghLwAhsCHux6SB90r+5hD9dwCk+DVC6Yv41dXHP+gPwYqSnjhLoACOvAUDHC7+nkHIoQjVUKkL4q49AuSS/XQckusiYyG/QVvVauleWAdS1iRKEX8ITAL/L7a9+OQbmnrGcQgBWMllXuVPKoaAIyYTCoy/mYju8Y9wpf/4kJZqXY8vRutoxdXy7yhg71qf0qNsffu/qeR9r+0k83znzf/iHfzjfJncSZ8MafQaK4qQ2xSCgESFLWLG4fN82WWfdZQ0DGEvfWOKsQgJXmwlgy7IABwuSYLZ0CWBRWAg3n3PdqNF/ZZSkHt6DvnXh5bVj3ykf+sWytSIBUM4R/PooHNG1VW1XG0pAotTJ8m/HyVmu4vBllr6yALBNtPDBqgSehi6yhDKIMmNc8O300S6QxtO4mmcME4oZoJ4zVgAKwJsTAHkOaZu9G8I97/ng9hcSGSJ1WlJpDpY8HbrHObzbBrCW/DTX8NxYmG9l2Iuyhv+7eO7HeHWSzncC/Ld8y7es7BPv4Uk6ORwAPGF9s7TKh7mGC95TUGr4AFM8WSKXmOk2BJB2Aghu6y5wL/sBcCSaARfZ6NpOEPtuS9xor/azvP0muENhYR2X/S3L7vsOzEoPACCKjWX6gK2vrKHj+qH/ALXWCi/L4y6mKNT0DxAFr5ThO1ezNpRWsHaQKazUUHJca4msc6WnpGxL33fgEjkIVvdoqzk7dd52lW+cKX+UirIPXde2j7lXRn4JbsZ2bElllAMsp64512eK1abj8OqgTFBEKH+UljYZX3yzsZO5XXp32tfm781yoBPgCWOaZgL8Zpm/T6UDY0I2XuEqHgwcSiHV116aO8u9DwwINhbxFIukr66x44BD8hW3dA0BMSAbS7jE2FlvwJtlohxAFUS44Yu/SPSqtfJYxBQFFqbvQDSsnL7NdKLeOZ8AXn+mAjwlRDJg7Xp1vMOjcNFqK8uVFc+SY7Hrt/HXb/wFYMBdjLy9Xn5qX7nyAQ5FAbguRUBTDN2n9npGxgjfIpRgriBz0hzpez66ynS9nArzo4aA6JSQSk2ZXdfEfLWNsRyCIaKwmYNTvRFDZea5aRzoBHhxo2/+5m9uBB/hF/TzP//zq2c961nxMz/3nAMECqEUgoXg7gJs52n+4tFBXgDDKqKFl9ZZnC8/CfehZCdtoARsA+ABCQtiCgFAQEQgW0IGbPsUBMLaOX/6IysdiJbu4766CWzgri4COQAAbwDU0iRkMrYsr12nsZZ/w03MQh4j4Kc/6jKHKD4BsvoYypA55lqEZ/gILIDz1PHqahOFzBjYaS3c4l3XTT3GYtVe8wJgmSv6Gc+U8vRXPykuvDtti9XzMQaG7Xbh/ZTQirlkrDehKJZto8xZwlnbH3KB8g/kY16U5eX3zXKgE+B/9Ed/dPVDP/RD59WcFv15LNm7AwQnkCOEWE4+CRjClbAijIGMhw3gIy5jrs42ccERGmNWBOESwrtdRvwOMIvfm/okeKe6uoGThCh/3PMAt4bcJ34vmYvVNgTywL0Ev7J8ba6xDst7ar4bd8oH3psXY0T5o9RR9Gq9EixWyg43NmXQvOoS5OX8MA/xi4ek1m091nbnAbC5HRsR1dxTcw2lB3DzarHojRfwxVPn9A2ox/PULtP1ZVimfb7v99Q5oY2e1anzv6/+9nF9lZPSzq1oX9f+zYrnVfMMlPOgfV3+Xp4DnQBvP2qTUoaqiUmDzYFZnvlLlwiYrI32AAKfNok5s3SM5amjLGsWB7ceQWW821RrQQAGrlcCu4sI9CWtqq46ymNTBSOhqI3eGDdHEAtniTUCuK44suPi/BSvPtrE8wXYjatEx7C6uoDe+FH8hAw88+ZIDeEbgKfkKNe9iCIzRpQP4aCliVIqHDSmlM6p1xh1KS9jZQHGtlU/do/zXd62ofvMYc/0kkpTWZ+QFA9GrVwo7/Vc8IJsYlzKevL7uRzoBHjaOBe9icIN6WHknvda16T95ADw4O6sEZqEvpgiQe6VmASJh7dtgRIWNULGNVyjFIgut646tmXBq4cyUWuFG01WGQ/GHHCP2QBYKMaUHCAALCk9eEPA86bwEPCoOF9ae87X8Dnqqv1Upj8CmQKCN8bcXGGJSYTzGzjHpjm1fANYT3va05pkxpJvQJ4FaRvdITBk1eHF0kSx5VHYJyAx1hSoWsUJT8yVco7U8IkCQuGKTXpq7qm9xjNFHlCC55AQlHmyT+Mypx+Hds//BsVarf7u7/7u1dd93dc1E1IS0utf//rVT/zETzQZx61L8+cecIBQppTVgHvZXMLwda97XRP/5T4jlAECwUL4szprgYci6FXCBFm4K4GIpUIUik1YqGVf4rv21liQcb0cE4KnNqYY97U/eQ2AuP7iG8Dk6raK4Oabb26sW6CmLopQ6WXQZgJ9aeKdAe7axX3LwjPOxiN4pD3WlVMOa8GdsDdXWO7AtE2sPF6kvvL0vSv7ul3O3N/cwfq1T2Se4X8t8bDN8XoBUGGWqcrBWLskMDL01uHrkAdrrP48P48DnRa8pUMEf7iVaOrf+Z3f2QgrllrS/nCAAAfuLPI55KGz/torTWn/3JssOqAzBZTjWoI/wItlOkWozWl/+x7tZpGzpMMdzZLmHtQWc7v0MojZ9oUW2mWP/bZJjbrj1bBxvXYAd394zFuiTsqQ9rKsfQeySxJQAXZi0ohFbb74TfkQn3d+ClEMKAksdUDeRwBcn/S3TeYHJWdTpGxgFPJrU/VMKRfv5Wp41ihYQxR8i2dq6Nquc+a7JX6S2/BhXVIWuTB3E6aof6zfcV1+LseBTgv+MY95TKOdl9VY42yQk/aLA8BqXWuI+0wmM4HCAmCNzxWO7nO/v3XAnfWnXSxhCV88SVy/NQKL5UqYIm246qqrmjKUc/poU5SyXQCoywqdM8qsGyDOWu4jfAbuxq3Mk9BmgnkpAii8AvJnADFAxztCFvDHBkRDbvSyLfpEuefZYZ3XKEXCFqUyFeVReLqOx/l1P82dfQMTzxa+WxY4ZJlTvljgQ9eM8YdiTXGltM99jtWhzZY6ypyniK7TJuWte78ykqZxoNOC/97v/d7VM57xjEYYShBizRM+X//1Xz+t9Lx6oxwgKJdyR1peA+x2HSNj3QFJ+QDc5mGFYyRgZt2wICkQfXF918n+f8pTntKAm8x4CkKUwQoVDxVTpDQsCQZAGw+H4ssSjrQNSAJhglSbZWlbX7wECROwZLUjsp7t0kfZ8SxrI+EtV4AShedAl0cHP8L7EoqHceDqn2LFqR9/20rEkvzu41WNIth376aOA0l8vfzyy8/yklLInY7PwN3YrAPK0XZlKov3VS7VlHFThvAaQ4+XR5uROaNtc9z0wL09D5pC899GOdAJ8BLsxIC8K5qQfclLXrL6tm/7tup47EZbnIWf5QBhPPXBPXtz6wtBTMDvEuCBO/Dr22BFf8+cOdOAtsQ9oNMH8gQcICE03RfZ7bGTGje5Nbr6vSQBlhCIQ+XyGriOsAyPAoHsudPHdUif8UV5Ae5Rnj47jigWvBqURIKc4hMgpB/aRmGhbM3lE48FsFBXqaxFezb12TcvNlVfbbn4AMzNQ2MtZKKtgLNm3tTW4zp1USAlfxp384q86FN+PDPmgHYZs5iXUac2UpzneAwp5ksoLtGW/KzjQCfAey3jj/3YjzUWBiF5ww03rF760peufuEXfiFfNlPH161cZWw8uEsRK5drbxdE0AGDPnAv2wR0JH5yM/clpxEmQkri2lyM1xy9YhRgsVRZrACWAGTpLknKrLFQKR0EfQl62kzwU3RYy3OIG1geBO8At7r+Rayc14NHLkg9+MDKH/I4xPVzPhkIyqZIUCDxRp4CUCv7PqfsoXuA1T6T/m/LZa0e84Ji5xkwDsJfkQRJqTMXzQ/fSyA2XuaqP7KG8mhumTu1pH5et30fk9r+HNJ1nU/Bd3zHd6xe8IIXrE4fxSvLQeHSS9ofDnj4AONSNNdKW6J+oF2COwHIgiBIuiwOQoplaZ/4UiCVbXE/wBR+AJjKKfvIYmpbKeX9c74rjxIxRhQB9fssiRsTQPOkSJ6cQqwkz6g+srSUTQGy+6SQBCFvzkSd+IGPmyTlc9Vbhx9E8dI/Y74JwkPzJ+lcDgBvf4B8LJ/KPDE+kikp3jFPzDHPnLBX13N5bo3/G3f3BtJNKnPtOg/5Nz6ReT6NVTyrc/t0HsArmKbGLZ8PyVy2HuZ9u3oICRNuvxAYJjYh4jeL86abburMumZJsEL6AN4oKIv1INYcCW7uYcm4z8MEBJfwhHheuLoll40RgANEXW0H/JHcJOt/bAkfS138Xt0UjFIo6L8/yXFtMt5LKojt8v1Wftv1DPBZk5sCeGV38bWrfXnsfA54PijEFOi2pe6ZM548YvJFhjw/5qWEwa45cH6tJ/sIWed5EC4ji8hEihiPCfnkGZ5D5wE8IUXj/43f+I3Vt3/7t+eDMoerW7qHIPdnMixBu4q/A9twI+vH1Vdf3cSOgT6wZNFaq90WNgDKfQTJEBFIYc0DOgLHPHe/B4fFvQTAAxauzzHQ1B4xTm7RPiUaQLGy7OHNIhc71c5Su9dvIRVzwHnCgeXuGOWhBPo+/tRc03dvzXHltxVHIRJK19wwxFi9hGLpeRy7Ps9/gQNc8fbTGFqyadwoAcI/5rswjzkaSjNgolALje1KpnyhR/v/zTNNiSfjSlnuOeFBEYqM/JipvTkP4BVAK3vhC1+4etGLXtSsH45CX/ayl2UMPpixB5+EJ+2uxiVc01yTaBcEEAmHIPMvEnlotSw+gsJnm2qtQEBuqZiEo7Zb/tRRUhFwJLTWIeGAms2GvKedu7wP3Ms2aKs/Y0MQ4BVtX74Et7sM6ZIHvBSUAxuTqKNL83e/sgiTrvNl/et+V345tsoLq4+SM+admFq/54GilTSdA8aJQl3zwprIY6GEmptW4Bhr84o73/zclTyZ3vPd3UH5/f/t3XnwLFV1B/BWcUUUFYOg4EOfIIsIKLLDY1NZTKmx4pKKWimNSco1aiqGJGapVEzU6B9qKkVpXBI10YqJiqL4AJFdIfBUVBB4glGUCIJxR837tN4f/fr1zHT3dM/0zJxTNb+ZXy93+d7b93vOuefephyNWz3jxV+WqBqnmj6vlQT/mte8JjvttNO2qXXMwW8DyVwPGPhpyV0QPAKdl7aN6IpkZ4DQmUX9GrAFZXEXVkldCxQxWppWtialqd7I2Z7ybcVUAhe5JVAf//jHtyE16aojVzrLnRVkAJR33Tp4uH3sSTGOGA3UlJm0bj25q1ln7rOiAMasfdbWuLTa4pHuk36av03HfLNMLFPUd6vapHjtpN+eA3VJKwGkp73LUwOT0lnl84hZnEQdck84wZkHreh9S+d884rxQM1rXCmWZai/PRsIfJIY/8Q/dELwv/mbv5mdddZZ+aA3KeM4Pz8EEIblXh5KD+g0wnVtoJyHIDgkRJMlgu0sgzNoG0Q2btw4sn4IpI6kwb6oSLgP6SEZDw6SrzN/Xs6PkmVjHe3AKmWhs65ZOchW2siH69hv9eNSF11sMxJ1qONS5mHYtGlTbUI2f69N9RH1lC8LPwncWV68F30JazrtQVDMg1LB+oN5MQCveE2d3+rGHQxv+BsIYawdGCSUqdT2ddJb1WuQcRNyr4MTj5sdNr05sE7/rpPmsl3D++bZnCS8bXWmI8vpVFrwHhrWjIcvZNgI0I5ZuNMMkgjGVq51LcmuEUF0yDx5IriQ7cEwSZS37bI+igNXMdIzj4gMEDBCsMd6cS5sXDlo1Z4Xm0Ept3lxAUhIjRfCXLi0kHN6wU9KzzF71VMIKAmTiAgpFgk6pTPuG+HxFHiZTtnSgred7ihXZTf6uDTrnlMfBD9q2sJxipH5eHO+yqFN4egzSUxBwL8c0a0uBk5YmZKBLdJPAnefFC/hGfKhDJUVwHTPMn8jGP3EM9G18MLxbvHEhWyLQJV3a9urfnlEf20qlQRvsLXZjQfIJ4k3ygnACxkOAgZRRGJAa2OJIVdBbZPIpc8aJ0+EwcDAW1cQchuvA/ct6yJt33rIIYfk1gulFtEjXC5kwUOurRIWORcz8kaeiZAoDche9DBvQFJaqtJwTPr2DOfKRESjCEb6bdqXV4R1lrwjxXIY0EVFU1DavsugmF75N+8AL8YoDF1P6WBIUDCVEZ6sPWWjJPF0pDn7YvoUB1MQFKRRypjjsLWXurIQWIhbKCs7lFz9QH8qKgPFPJf1N4LXTn2ItjclpK3mZUD0Ua+u0mzi2UhTbU3yriT4P/3TP83+6I/+aJt0wqLfBpJBHDAoWVbGeizvXDaugO5DLEMQFhRSNCDXsSRY2uaz2w7GKSrf4I+I04DPqlQWUxY8IxQnmrMpEAMUixy5GBQNXFXu52QRsY4vFQWDsgAAQABJREFUv/zyifVBRDwJ3PXyrhL5VxFd1bXFYxQGVgICVQ95SSu5BsUCpNfcVikBxbSa/KY4sq4pP1XC80JBSl4U3okiURvMuPBhCE/tUvQyqA/MivdU5eNY8mJoO/2ryhKCx9lnn51v5es5mqfCO6oefRz3rLVRHJuUxfSJZ2lU326S1rJdy7NhXKnTj4vGdl0cKgneAx+yWAgYkNI8OpI3KI4Sgz7rN81RjrIaR93fx3GdXAc+6aSTcgt4nNXHekbMSKSpGNxFrCIL87TIL5F7SgvRwRCmlqiw9tNDyKpn7U6KeWApIg1WuQFukigXsuWulldZDMRFgiufL/+PpJAgrHhF3E8ZkjYFhddHu7OQeU5YWKYmkieinF6T/+VBWbMSoqrMXLbI27TSKKXFfVzsPqzvo48+Om83aZty0FfEGNQR2GpTHpoqci+mYRdPea2KS1nfqFJSi5hM+xvm457nadNf5PuNYTxoaSvtUXUxjtSNNyqmUUnwxQvi9+IgoLMgboMnUkIYHi6DtoHRedMvOgtrpq312xciymMgOOqoo3KrOgWppfyQlcFeHZW/qSAN1lyyVJHgOBe6Bwp+kx6+UeWgDLBU6xC8NBCih31U3Vi14xQ3abiGkqDsys07Mco6kI8ANZY0RcfSuuJ0g/SaSiJ3pMH9XxZ9j2XPs1FXmUDyiIiyxaWpn2i3Op6elD9lK7V7Olb1vWouZX2jyTxwFWZ1jsHe8xayNQL6siBEMmqcoZDz7rWRIPg2qA34HlYZV5iPwRSpGQgdZ5G2mceZZXWVEZHb3EbZDbiIQLmTkuK7jRjkKT1J5CWPUYIkKUpthRXPWq0rrFmegSqCV3/TEqZVkLL2hY3yJY+CAdTmIwixTtCUgd299olPngPxB4LWxuEyqj7Id9999809F1UbpfCYrNviOWhC7ikvyhLlg3dRu/k0Ef1/lKJTTodyov6wXnYxNtRVtKbBok1/mia/RbrX887jpb8h+aTEe54ow6bG0xjetF5B8E0RW6DrDYJVZLEIVdC5fboSZChwriiswnH4INVpBibpN1WoeAyq3MOwYGkTrmbKgPalQJx88sn5/LE4DAFkTV2uiN58tkEGHocffnhu+VMU6gplkiWC2ItKVPF+U0jm0tsSCo8Or4B0WD4+k6ZK5I/c1auupap8TbwDxTou4u9Z1HUWeSwi9qnMnmVErm8bq+DlmU/9PF3X9Lu7EbRpznF9IFADAYOtQTx1+KaEmbJAtuW5dkRomRbir7LuPGgesLbi3qZkppyjhKvOJjqprNJmgdP4WbZIuim5F/Oyxh7Jm+LhrhfgZtoAsVI8Ur7u4UXh4TAfblDiURinULLe4TlN+eRrysE0k+kmnoxRbk3XJlEfUrctpK0uqyLqqm36lGmeoz7LNaS0tYPnqEsJgu8SzUirMwRYztzPNt9I5KLzs1hZi02J3uBenoNFjFy/pgMuu+yybcqObBM5bHOyxgEut6YeANZmlVBylLFIsuk6ljayG6ccpGsnffMO8CCIHYCx3yldGMrfQEThSpZxkQxFS8O5bP0j+GnJXdm1makWfYECwpMxbic+11n+xnpXXuVWXrEclBOWvWMUFtcoI0Wqaf+ahOtQz6s3DJr206b16Zq4mua/qtcHwa9qyw+43siMtW1JU1EM7I6LDt9vv/0azZGWyT2lywK23E5gn6hs8+YGfNapSG1El4gh3VP3271NSY31WCVVCkrxOkRHoaAMTSPqbv7eXHyag2bdcbsLFoQjMkCAKWgzBT1yKSIL3gTf3OmUMdch+FFL5pqWV7raRkxCiq63GqAsYjksA9V+ykCRS54HigJMfRC+oD39y29KHRzc14VQkChG8h7Vvl3k0yYN5aHQTBNrMilffSEs+Eko9XM+CL4fXCPVlggYCFl/lmyNEmRjwEDMdS2tcXO1lsQZ1Ll+WaAGdtYcZQIBUCiarhVWPuQ2rh5V9UNaVYJ4EC4ir5I23oKqdBzjkqfoyFNbIHyEWBSk5eO6zb9aZgcn9XYf65q3xTvtkSdlp5xGMb0mv7WNdkkxGohbOZRVmfQJwUmIC7m4lmLCW6NuiLwoyuva5PpXX+8toNg411bUV5n016QUwQROqext0+7qPkqH8pTjU7pKXzqUsaEpNl3Wb8hpBcEPuXU6LpuBzkCDRA2EaTD2XZcoOy7SNskZFOts1oNU1q1bV7vcBrJxYuD3KQvLxjy971HkWr7H/6xYlmYT1yeSGTXwax+R7uU4AnlRTrjSm5TPfeMkWe11rG7Kk+uQqDIazH3sMpfItMs5Xv23KJQbHwqVfLR1sr4pAwL7ENioMjiO/H20gWBG8QyIj+ehjUiTcsNDVBQeHTjpu5SPIQilUv+hJPUh6jqNotRHmVYlzSD4FWhpxG6gNeAgMeSexIOHIFiuXJrz1rQNfsXypXJWfXMZK3MdaavAJIIQoW55VyKscXnaNEYdmlpFXN0GWe2lHcplNmd8yimnZJ/61KfWMGIdWR/uGLdyF2I+XxnqkHsxP/2LgqIvUdKKWFECKJJ127aYbvk3bEYRRvG4trPkr0opKqeZ/udtUO+nPOUpOTkjYcpDE0HuYkfK5J7SECiorSxpLJY3ne/rW7mSgi8PSpD84anP1nmrWdOyiXUw3RUyHwSC4OeD+8xyNaBu3mLtGnw94GVxDFH60LRZq5Os3XIaXf7fxI1LGagr01hLrC7kbt7fmnFuVwRYFsoG60+56u6yltJgKSJHgyz8kayIdqSYrFG/Wa/iBRCmwVn7nnvuubWXgKX8Rn3Li+Vax4tSlQZr2f3lWAD/sxKbkG1V+o5RSBMmo65pQ+4pLRh/5CMfyZ8F+DYlePeMIveUhykfz1vfwWeeb8+UPpxiKJTPcf3Hc6FdTGlQFI0VrptWWdRX1Y/SGjI/BILg54d97zkjAVakOcU64uE2MFoiNQ0h1slr1DVNPAhNymgwQ8Btg4lYo+bT7TRnm1zucAOlgVCZuTlZR5ZtNQ2sY6lTHixTIwjGvK3ocINucQcw5F+0iLRZl655LmqEULS+R7VV1XF9DsbKXAx8gwkPxLQErx0nuc2VQZ+fJi9tYE+BNu9q0Cc8R+PE+WlJdFz60qZo6h/65KipIteYmuBx0IcteUT2vAxNFOhiWfRRb1Sk5HihEwXJ3gpJqSheG7/7RWD8xGS/eUfqPSLgAWdtNrXEaO/2CDdIzkNYNLT/OmLOta4YZFjF0whCt5GLF9UgYO50ZUBmCIwC0IbcKQzm68vKhwHWSoJxAy3C61KQcFUsQpM8KJWsN8pCEiSCmKe1WBHQJIuactI0KDKVs/jNS4MctXtTGRVLkdKZdD5d1+YbkcL7wgsv3OYlPePS42Wh1Nj7gMI5KuBzXBrOcfdLg9eQ8knROuOMMyYqPZPSjfPNEQiCb47ZQtzBQmhK7qliBrWyizWd6/vb4C1Qa5KkzVUmXZfOJ9dzeV47nW/yTXkyV8tCNYjBmiuSS71J+lyj5vaVjWu7SigRyGqUtTctYZbzVP42hFZMx6BO8TjmmGPy3bkoQQifImS3rraib5gCGUeOSBmWLPAuhCLXZNpInso3ycvgfF1Ftkk9KOb6JSV0nGI4Lk3KgbHD6gSrH5oIpU578wAURbtM41EpphW/6yMQLvr6WC3Uldy7TQYme4gbdDzQZ555Zq6Bc2lzt81SEAPyRjLchlXCEkeMTQUZIhgR0l0Ja5dCkvZeNyjynIyLoEd05qm52pXJ5jKjCFw5pZfWmpfLTUnoUhD8KHdu3Xzcn+pj+9rkmqXIaDtt21T5VK4nPelJa+mOKou0uyQS9eDVqhvMqVwpaC29tbBcVnUx9TLNs6WeyByJe85ha8qKEkT5lEdVnEi5LKP+p6SJO6G01nkLnz4tuNJSQ5h5jsv596HQjCp/HP8lAkHwS9gTDKgCweqKSGyE88lPfjLf4QsJIleDSJN57rr5TbrOIGWNu2Aq83i8CSwyZWEdpDXVrmsiBlT15EZvgs+4PChFBjTpsrQNishYHIMBjrvYtwHYwI/Uk5XFBUoxYDGNE/U3iCt/OUYBBnCZNOc7Lv3iOW0uj7Zz8NIqllG9ixY34mGFIwTTD3UsbfUzjZEUhWJ5y79hO42Corz6XdrlLpVPGxbrUc63/L/6efXxuVsCIItTLxQya+yTAlS+b9L/2kd6PEf6cSpfug++ys7Fzvugn7fNSx+giNkJUB+lOOlnqR3kpT6eSYqqvgg/5ykG5t+TeGbFr4TMFoEg+NniPZPcDEZNB7k0CCERbjYDZXnwmEnhf5UJbT9tJ6o+aWBjWRhImpJ7Krv7eCvUb1pLD0HbSe3ss8/OCTHt/iawiWJi0ENO6gJLAzKyZg3yUrDy68wVq7/yio0wcBctP/WxeYpzXYgBXLmbxhIU83b/ODKEB6XSagAEIi91LIt0KEs+xcDC8nXF/9u6paXB6tQ3EFSKOHcMWVPktPe4ehXL4T6CHPXdpDhN03cRLmta2UaJ516/4qanqMPYO+7bPsu8ATxIvFQIWjslhQEWo/CgZGzYsCGfLtGO67ZM0YTMHoEg+Nlj3nuOHkCDVF1BdFynT3ziE3OX36WXXlo54NZNr8vrEpH7ToN80UJsk5cBx/uVBcWJNxgnrjVYydtgBluDtYFOtPE555yzFsVur/gUZY9oDIyIGakrM2I3UDrGcjd41hGEKD9eFYM874ByEWSPAAU1TUNuqRymdhBDHcUj3VP+1pdYd+MElhRJShE8YKFu+i2rEKmqmw+yRFBFxWZU2m2JTNqUNW1WXnVCqWQJm35RN+1RVyh4Pl0I71BdxQsO6sHzY+mrFRqJmJuWRV9N69mT4lJOQ9qUwxQzAjMKkefGOUovS9//6ZkupxH/d49AEHz3mM49RQ/hpAG2XEgDQFqm5RwC4W4bioyzFtqUUd1MAyBd7s5yvAKLjWVsMDfPjoAM1AYoxGSQgrPNSrgvEaNrKAzIgALBbY+wDHAGXOkgs6YbyMjPgElYZgZulmZSdJRL5HJ57/62uMiPS3XS1EFV+vCh+NQV/dTHfbBCEkiMZa9N4KYNED7lSb8cR5ijLMpJ5eFRoeiWyb14n01zYG6eeZYCB32mLrkXy4ZYzY1TTNpOS1Fo9QVtVCXOJ+woaUmQfVEE3vHciMugxLVtq2Ka8Xs8AkHw4/FZyLMGRAP0OFfepIohviaWyqT0hngeSSfLBEGnAckxFp1obJYzYmF9IHADHUsZGbnGIGXgQ+b2X4e5uU9WD4tPHtLgQmeBs1iRhEGxrsgbsSdhrTsmT4qKcvjfvGdRSUvX1/1Wjw1b3KqEwiBITNnrirKkF83UvSddh9gtr4NbVZ5wR1b6JcWMV6Wqf44ioZTPqG/Eg8AnCWWQApSUq0nXT3ueckgx5HZvK3DV7/RxOLcRno0q74W2gol2qyMUAW0pYJKyW9WGddKJa+ohMNsQ6Xpliqs6QICVMY0FjuRW4eFLAxTiWLdlnpAL3Twmd7tBn7vaACtgiAVioKUIsFRY1QZN7myR+Vz+yBbJse5THIRBFTlRClhRLKq6wrLUDspQFApD0evgGoqIOdc27c5CtqkLQiFIzPzxKJdssSx+yxOJSKdp/rDkfVCnKnIv5iVWxG5/lKyEb/G88nINNxEeAWTjM0nkP6mMk9Jocl4bl5ecNbnftfqdPuqZbiv6fBkfSqrnoS65p7x5ZazUobQqW0h/CATB94ftXFM2aHExt5G0XK7NvYt2D0Izh41cWN8scm5a1rABzbwnqyMR37j6IRxWOrKnHBD3IfVECmlu27zoJDEgK4f0yvmb108eh5QOkqeoHHHEEWv5p3OjvtWXEmPZFrdpImeKin4gLVHl40SelAFKZVOlEElQppq6n8/dEp3Ok1EkHfjznvBmNBFKQWqfSffVvW5SOnXPq1Oankn3wJgHQx+DfWqzdL7qmyKqPdsKJbXYB5E0Ytd2bURanq1yH26TVtwzGoFw0Y/GZqHPGAS4jA0OTQZP86EsuVUIhGEF2jOeFcLyNAB6A9qJJ56YRysjizYiXXOmlnYhyqJ7XXrml81DOi/a3uBbHDxZoNzvvs8666yR5ENxMMjLIwmyMj3Di6DtxQSYWlAmgzLhXubKRoSUCPPaVZa6YzBhmUtLfqxtpKyf6CO8BhSDcfPiqWzlb+QlKlz92wjFR95JmUL28KQUKWvRwzEufeWo299dV4dQx+XX5FzRc6PdLDFE6jwJrF/HtJ/6JuWxKv3kmtdu6ttU9M9iH9WfKFjTiP5IsTaVNaspj2nKu4j3BsEvYqvVLLNBnMv2ggsu2MbFW5WEh58l19QKq0prEY4VLUfueWRoGdrmLe70tuSe6m3w5dZHjtqhrGTxEhioESQL2qDrHm3ASuRNEAMwzoXJ+kG2VeSKiHxYetJO5J7Kh7wNqnXIKqVFcUCiBnr3sf6rFIOUx6RvSsO0OFOWKGfKSGCH7EyD1H3hD3zUKxHnuHJTiGZJRoiUwBoRIvFyIKA+c+SRR+Y4wGOUqGdbgpdmsa+Yk6+rQI0qj+P6OeVjlpiOK8+ynQuCX7YWraiPgUGgDfdx0aWZLmUBGrhY/G3mUFM6i/JtQGH9JdI16LGCWIPc8QiiC0GqArfsuseKRmhFYYX5wF8ZkKX2MRDXEQNs0aqqukeaVQpA1bWTjilnVwMxxYUiNa2w/rUngkeCSBoJCsSjONWdv6bcuV4cRdUzopwUHOlOo9Q0ra/2lZ+XtSBv/bMs+ou9GCiTpuXUpUom9ZWqe9Ix2CbR7xBzV8KDpt2KCkRXaa96Onf69lYdiSWuP/IyeNkb3C5afnMBCyhDPscee2y+VrY4B7uscCAWrsUiibNyWcO+DTZdCosSkfEQjBKKgEGT+7suuUvLfdMM2qPKM4vjPA9F9/M0eWpLOFA+xDYgI1au6QX9vY5Q9igGJ598cmWQnmkAaRWJrk66017j2TWVYpqnityL6VtBYYniKAWEEjlKeSmmU/VbOdJUkGeoy7lz2LctV1VZ49idCNyplt15LH4tIQIeeq5iH9a6AXEVNWbWXvnFLixcgx+iKLuyu+gKiEwgH+9I2YqfJn1tuqhtiCS6cPHCD9lQpEwtiVs45ZRT8mkpQVyU2BTrkDw2ozBHoKxfAYNc49oKxqxLfaQr78Wo/KuO8xqQokJadZ1jSFKZlbdcV/0bQVOs2ghlqVj/LgmZUqs/hHSPQBB895guRIqLSgzTgEupMedbHpwQA8XHqzL7Ei5NlliXBM8tnayqcrkNmkivaOFrcwP9rK3Qctn83+WArp5JMUvWK1J3nKgzooQ9ojQtgujco+2RtxUA2sdvaVAU/D9vQarKRDGtI64rEnG6h3eqbTCjNCioqa8V+1RKf5rvrtObpizLdm8Q/LK16BzqY7A2YHpQ/UYgBk6fIQliZzUqXxr8lQ8BsNiKx7out8GV56RLsVZd2ZPA3gDPnUuh4PJXX0SGtCgEvAg2LEF44xSElGZf34ksukhfWmWFFckViU5fVF/1pvzARH91b+qvXZSl6zSU2ScpLpPSd11ZeYINgh4XgDcuXZhRgJNIryqfdL7ptz7cZX9omv8yXx8Ev8ytO4O6IZTNW+aYzV+miF8Pv7XTlisZZOsOTl0XF6ErHxe5deMGEeURjGQ3Le5Yg70Bi1XXpygHHLocGMVRpIERmQuiFExZpag4BgMfEdBw4L4Wxc9CnLXAoaxotS2D8kurjsALYS6KKK/5b253bTxJXKd9i7JuS/wH74W2byqeDUs6i5hpO4qiwNEuRJmLimoXaUYav0Sg3lMRaAUCIxAQjV6eH2RBsCBF9tqT3fxdIqIRyXR+2GBmjS3FoyzKItp4w4YN2ac//emcEBFw38KaNlDWGagnlQWmBn6WqDloO8E1SZfHxTIyZGBp5KwHWBY1t3F5j4BJ9a46X1R0qs4v+jEKjPXv2mqcO1uAHUUuKdrqnVbHeBbbSHpfQ/FeyqG8uiJ47UeRCOkegYii7x7TlUgRQVgCVib3YuUR/SWXXNLKciim0+a3AKsqcpcWUty8xeuAFG0Ik6YW2uTT5B6DL+unC0lWFcvM1q1NyL2Yv6kDrxNtY90V02n6m0JhYJ9WkA1rctnFdIzlrqOEwic40L7wSZC7z8aNGyu9Oum6Ud/2EkhbJRevQcbSres1Kd5b/q3c8/AglcuxrP8HwS9ry/ZcL4Qyar1tMWtucltalucFi9d0+ZslbmOfOgFFIo2VbVYeBqRGuZhWbMajzIncKVvTiHRsytNWSWibt6VniGsaSYrONGkswr3IVOwEr5PgP4oNZdHcOBK2hwUrXV/QNwQZ8pBY19/m2Vu/fn2e5ijPDu9Rk3cqjMKYh6Do/h91XRxvh0C46NvhtvJ3Ndnowny3ue5ZaOrK1WR9NRexuWgDZt/C0vRhLRsg5Wm6wADMrUoZEr2dggGrysNVa0B3DQ9K3aVm8pG3NuAeT/m6X3m4+a0i8K75WWChbspCWeHlUZ+mYm6Zq1hdlkl4lCiqFC+xIalfIGyELoYkKXWpr+g/9regMCXL2nLQpgqltke6lIlR5A5rygX8lbE851+3Ley+Z++NkP4QCILvD9ulTdkA1MTaMxiNmzvsCij5tNn6lALSt5vXoGvw5GZl+RiQDeIGYOcQPnJXBxYat3tZiWKludfgyntSZw7UgG8JWLL45YkUfOSLNAzU2sc6cIQyy+VhysW13JTk1UkQ57LN3WoXSqf4iOJcumeEIqMPpB0nJz03vBui5+3Pry8lpaDqPn3PlImgS32xjtJEQeMpsKlQcWqgKv3ysX333Tcn96GttCmXc9H/D4Jf9BacQ/kNqk2sPA/xLAjeHHcTxSNBh9hYkn0KokXmXq4ivyrLm5KBuNTD4GyagefDvf5HxrA08Bu0x4lBmmcCiYtFMACPs+YM1qxhggiatO+4ckw6h0jUTzBmcfvgUfe5Prmkl43ceXK0r3ckVD0v2k/gqOsoetpsnGh7EeoUIW1KueOp0X/0MXnpc6xov7nK6xB7MU/XJ6XTdBcFZZzIb6+99sqVSHmG9ItAEHy/+C5t6qy8cSRj8DVwG4Sso50VYSDEpmLgI5b2NXHvN8lHUBICK1vlxTS4O32Q89FHH52xcrhk/V8czA3Q4xQZ7lWWmCVzdaPUYWCZHWWAq5flN6s245FI88a8KQI3xUcki1NfShvPKBdMkNeyiTY977zzKsm9WFeud8SqnWA3SVyjD/l4FrsWioE5ex4A/ZvL3rQPstd2XP3GAs8AJVU5QmaDwPI9JbPBbeVzofXTxhFSURARC8sDzVowaBmsWaOupxh44F3XtQWWBpNE2MVyjfuNyJQTKfZB8MgJHuMUomL5ELiAKa/tRXxlq2qckoDckaDgqjbKjkHZXDxy5TWoQyDFsk/zW5/QBrwYqeysVvX30U5lLKbJb0j3ssqbBKNu3rIKxFJPys4QRD/Rz320IQ9BUTzzYbEXEZnN7yD42eC8dLkYjBGQiPXkbuaqYwWzHLmEDVplsZuWQYD1IYq6ywhaAwgibUrw3JiInQKCINsGDZXrmv7nKmcZH3/88fmSpTpL0hCceekjjjgid7OmtBAwxalKlF2bfOxjH5voKq26v3iMlchNrOzaum+hUCAF9UPqLHSkoX+sAjFo7/L+8eMwdz2ldCgEXywrRWxW3p9ivvF7WwSC4LfFJI7URMDAf+KJJ+Ykj1wQuvnDKmIvJongrFOnDCCwrgQRsGqaEDSrn6IhUIhlbL6SBd3Vznbm9ilArHfu8n322Se3kA3OkwTZed2pyPYU0QzbsnUknWQ5nXnmmVOTeypXsihFVaf807kuvikQlDEueW/x4+UpxgnIUx/RphS3ImkkHLT5Mlj1sEhTEnWxTYp13evjutVDYLnWl6xe+821xiwsg6vXaCJKJDmJ3IsFZjWfc845nW6ywqXNRVhXEC4iRbgGWEFM5r5Z89OKJW3mHNM7ySk2LGPzlXUF+VE4ilIkwXScpW0OvSlJpPtHfXMFN7EsR6VTPk5JoYhdeOGFucJj7r1cL1aq+ltRQCGEAyJ0nb7Gw5GWkZXTn+f/iaybtIV7mnoq+lC65olb5N09AnO14M8444w8qnhctf74j/943Ok4N2cEDLaIWgBZG+FuZvVzLXfhCmblIWiKxiRL3hzzui1LxBAJS5sb3dIzke6WbilXnQ1zyvWm7JiuYFXbJc7gnQRZCjYS7ITU6oh6mEaQrk95XpwS4Xgf8QPKh0zl30X7SI9CpU7iBIrYODdKeD8oA9oFqVOUiKA0fYcHaQiiL2mHFAhnrTdlZlJQILIW11JW5kbViWKtf4UEAuMQmCvBG5T+5m/+JjvggANy1+i4gsa5YSLAxTrta1aRqgF/3Ray7cLdat6WW5t7l5u5PGgaGK0lFsxl4PVByIiXYqBOrG1pcB1zrxu46wgPAsvd/Zs2baokMASAlOsSvOvkT3lh5YlCLt7LelfPvgSh+nRB8BRCSl0Tck/14mW59NJLc2VMWVKsBTyHQPCUFWW0K2CS//qv/8pXROgX40S7Ck7V3+qIvhsWfB2kVvuauRL8ySefnH34wx/Ofud3ficzdzhNwIiBua41sNpN3l3t4S2grou5QG5s67C7WkKDDCkM0lQ+HwolYjAw+vZ/knTO/0XLyG8uf2vXKSGIruh6pZAoMwvXXD5MuMrHWf7SaEJI8ktTH/KzEuHGG2/Mi04podD04UZP2Pi2sQ6FaZIlWryn6jdlC0m3fVYpTvrcui1tK2CTN8M0yxCEElal7OoPYgiK/a2qvJQ+iuekTWO0tw2Tmrr0q/KMY8uNwFwJHrTHHnts9oIXvCCfZxNl3Fae8pSnjAwuMqCGdI8A0kR8XQgSM3h3RfDKlMh3mjQRCMXTBylztyKnYpAcS5JVyoouLxuswkZdm1hfZTJkDRrckQZCGLdsTv6UHVhQEup6Isrl5mVx7zQEL38YtS1DKlPy9piKSUpVOjfPbxj7lEVbTyJ397jO6hIEbpqoSsSG2D1umnaoSjeOLScCcyd4sJ522mlTo2tp0CgxCIR0jwCyq7Ndat2cDdzaqs5gWDfNLq9DlD4Iivu9rXJjcE4WeZ3yGfiLxKEMNhWBFUteOxSFUsJzwSKkmJjzlp98fSghLH6KQTmwrZhO8Tclpu61xfuKvyk2k5SR4vXjfgu+e8xjHrNNPMK4e/o+R+lSpnPPPXcNK56iJrskah8eIx4hXhNKr7bT5hRM3ptpFNa+MYj0h4XAIAi+CMnpp5+ez4dOY80X04vf/SHQhWu+WDruW2TVxPWIbJEPLw1LNwWDGRD7EoMwK6utKBvSrSvqVLT45S8Sf/OWCHdSTMsmN4jAHD1XdnnNPEVBMBeiQCQCCylWdaSsSKR7ED/spT1OOdO+ad483dv2m3JFYRga2SH0U089NQ86pWiZV4dPUUGbVGdtLQiTh0bbwlabN3kuJuUR51cDgcERvKhYD24Q/PA7YBMrtE5tDIRNrERkYR42zUenPAyqAjf7EoM1C7qcb8rPwI7EKR9VpGjwbjJnbp69iiC8WEc5tIM8rVdHCLwLo5Qv+PK6+LDuzWUjfMsDJ0lqb3XyjFKqxBpoBySEgCgjphCUxwcxJeWkzvTFpDKk85QFeQ5N1Jew5KeVhOG06cT9q4vA4Ah+dZti8WretUXRZEBDMFdeeWWlyzcF/omCZ1H1IUgRmZXjOxAm9zjSQ3RIuBg0pY6sZ2WvI9zsVWvy1V8eSBepHHXUUbnFLqCrrogjEBS2Ycs7xuUx6iUnKT1lR9Lm0dWrSnlJ1wrIgwWFgiIBr6KnIV03zXffBK9+PCD6kw2QkiU9TZnj3kBglghsGxEyy9wr8vKSjaFExVYULw4VEOCmHueSLVxa6yeSSRbQpBtYjuPmc51rO0c+KW/nKQ76adGytjzOMVHiCPzTn/507gbnNk8iMIz7HEFPEthaq181HZAUC+nY6c3/Tci9mLc5Y3O94zbgSfX8zGc+kxPeOHKXtqVrFAbfFANtQVnpUrrse1Xlojypr7lwe3YUAyurro9jgcDQEBgcwb/whS/MjjvuuKHhFOWpQAAZdzloc0XXEZZUnXljJJ/cynXSbXoNV3vaxc+9iPyTn/zk2jSDciJPbnTeDuvVLburu2b9yU9+cu4FqCoXFzUxFeD3f//3f1ddVvuYzWxY2qPWayu3aYUmVrj6I0fuf2SsnE12GRxX+K6Vy6q8igqkuvCYhAQCi4TA4Ah+kcBb9bIil7qkPAkr1nuVpVp1n8F2kgXpPtc0mdOvymvcMZapSHbucQFRCKxcrkQMlj+x+i+66KJxSebnWMsHHXRQTorjPBquS5v5TEy0xgXIWPxClSD+5DWoOj/uGGVMMB+h7MBtWlHvNLc/bVqj7jeVIh/it6mXkEBgkRCIOfhFaq0BllXEdlW09qSiIkTWPyWBdWcgrTtfjtjM6VoqNU6auPzHpTPuHLJCfrZLRe5Ip7jOW1kRg28WsDKVI9sdEw3uXvVyPSzGESFliAeBa70r17Hy8UIoQ7mMCK7tdsTwM2cvZkGdtPu00ycUhXHKz7g2q3sOxoceemiOb9/KRN0yxXWBQBMEguCboNXxtaw70c6sTKTAnYwIkJ7vWbghp60SIrLO14s/6rjD1WmvvfbKA5bMz5pLh4N5aYN2XaLnObDfd9liTvWBH2u073nalB8ctOMTn/jE3E2vPZGZ1SCIyAdxIznz5uqONBA7yx9Ru8c3a5cChPhdUxXMiIRdL50uRTsg4CLBK7dyTeuiFiNgdYO6TUPwvCbSmIVoQ1iHBAKLiEAQ/BxaLbltWTWsUK5Px5IgJYMKEkN6SGBWRJXK0OSbBWsu2h7c40geUXE9m4Muzm+mvBxD8HVeIQsTuyBu3Lix0g3/uMc9buZrpCkVSP6YY47JSZyihqCLljhFIB0TXc99PUpJoRTwkNitTn2L6ZgvR/Dc6l0KYhe0l0QZWPXTWO8pLQqCvq5OxZUF6Xydb31IICNFMSQQCATGIxAEPx6fzs8KUvJCCYFHo1yryN5A6MP9zeI1KFZZcp0XsEWCSAAxc2d6iUhVvVxz2GGHrb0adFQ2LFLR5wi6uCd8+Xpkh0CtuoCl5VtwY/UKZmPhFQmxfH9f/yN5ZOxTJax36+ftvT8pYA3xu1Z/QWqUvdQH1F0eo9a7V+Vd55jySTuJpYaUkGmt95Se9lUPfbrO2vt0n2/lMhUSFnURlfgdCIxGIAh+NDadnzGgI+yqF1KMyixFSCMsBMb6G6IgU3PCSJyLmWei6ObljXCMC3iS2ITF4G/tcSK0qnvkyeXtxRuJLF0/7p6qdGZ1TBm9mS69H75uvu6z7I7FbtoB0ak7palr4YFI3iLudG2RAuS6yIurXz+mhPFmeBZS241Ln+KW3PuUqJBAIBCYjED3I8TkPFfyCtaYwbIJuReBOuecc/L3nBvgh0pgiIHrmEuZmzfNKfumoFgXXVdYjay8OnUdMqmn+iIxlnhTck/3+7ZrH4zXbdlARp0RXZoWKF43zW9Kg7TT/ul1l/TVzZOHgMjDkjnz/fJg2Vd5fkz/sPgpiBSCkEAgEKiPQBB8faymulIw2YUXXjhVGpQDFqsgoyEL0jEY+ygvYc1XDeCj6mEun7U3zk0/6t4hHlf/adeqqxeSR4wwRvbc9HDqSrQZhYzFzHvk/67c88rIQ5CEF0I+tnVF/PKVp7anADjnGha/75DlQ0DbJo/R8tVu/jUKgp9BG5gntZFIFyIdA9+iBRnVccOW8THgL4Nof8RsMJtWWO9IV1pc9TwjXRK89HhPTKewnJEvrwPvUxfCQ1Ae0JF3iluQP+HxohTJG+mrqykb/R75hywHAuW+sBy1Gk4tYjJrBm1hAG7ycpFxRZJOly/tGJdXl+faDMoG9WUQnos6sQd16ipqnrVLYUKMozamqZNW+RqDrTiKVFarPHiNrAoQRNmFUE7qDOoUgQsuuCBfbaG/c+GfffbZuaIxbqVGF2WMNLZGgNelC+V061Tjv1kgEATfM8oeDtZQl2LgLbo6u0y7r7QM2E3c7U2v76vc06ZrYGQRdyXI7cwzz8wtW2nz5lhh0YWIm6BApnlyaVJOPvGJT2T22e8iet2c+iTFzZTAuefe+U71Yt3s89/1yoFi+vE7y9ufUrV58+Z8VYzYmcsvvzz3Qn7729/OPSqLNv6saruGi77nludmLkaTd5Gdh0+6i+SmV1YEctVVV9WCwNrroa4YqFWBX12knbpybxfzlaa0kaVgRBZum2mQlCYX+c4771z5lrs0xeDFN+IIprGg9QHxA+MEeYx6ZrjulUcwZ0i3COg/vI2mk8ZtRORZtgpC4KN+EzJcBMY/acMt98KUzGDVtcXBwlo0DdqgLjgMcU8SlqJ1323c+pPSnvV5ZNh1+6uDPpCI1oBroyFejzbi/hNPPDHffKZovRfTMvBTLKfxFiCEul6ccUF1484Vyxy/6yOgj4p38Pa8ceQuRdeauhE0TMlctLGoPiqLf2UQ/AzasOv5q0V9oMy/Wsv8iEc8YiTqVgjYzKQtWY1MeI4n+miv1KdM19hB0DQQkp7k/i7DwAITvHb++efn2waXzxf/57JF8HXm0Iv3+a09vXCnjlfGNbbHrZL0/oKqc3GsHQK8IoJ3bf2c+lWdlEzfiIso78RZ5964ZjYItFP5Z1O2pcjFYNi1JSq9NoPsEABlyRvoEYUNVERII0DkL2pbFDWLcllEO/WhrKRNaD73uc/lUAmMM+Daec6Wv3bAG6dYKJMAPYRZN0qedW9+nIfFoF5XtLk9+uta3vo3pUP5i/ErrH9v7gvpDgFuedsG24CrjegT4iJscNVFjEabMsQ9oxEIgh+NTSdnWCPmC5sMiJMyll7XSsOkPLs8z8r0QS5p3hjh1CWALsvSd1rqRXnh3u5KzJVzk5Y3DuJaNXdtKsSAi/TN1buWO19ZKE/2JvCx8Y6thVMb1Cmf9JsQvDY1fUAmzb0X89e/KSumdOTJ06C/sDAXVbkt1m8ov/VLlvs0on/xAGivph6kafKNeycjEAQ/GaOprjDAcTcWLZGpEtxyswHeYL3oYsBf9gEBUZl2EH3clXh166hBmUVlZzi4mh9NxAjrFA9AEWC1pTn8JuViwae16pPuU8699947VwiakHtKN7nqR7nr03Xx3Q4BfaWr/RmsFDH1tuzPczuk53fX4rPE/LCrnbO1xSwnmu604gHqak3ytGWZxf3ctIhokT0WFDID6TiXeR0sWc4sb0vNWLKsWyTONW+nRNMdSVi5IutHRaOn65p+awv5+pa+4LtivXgrKADrtmzIo6wx4DdFeHbXI3ht2JVs3hKjoe2XwfjoCpN5pxMEP4MWQO6WMnlhyLQiHYPoKgjiYDHCbZED77QXwvOimTZCQTRfjlQRuVe3cqsjcVauuWmWsmMGWaQOuz6mPFjiPvvuu28eyS+f9DGwpzLFIN+mpWd7T9rQqKtc7aFA4Yy27wrR6dMJgp8ew4kpGBC5Gc15Vr0HfWICv7rAMiPBaW3cnXXzGNJ1iOPzn/98vmwHaZmDXUQx4NkoxjRNEy+O+yh0vrnUR83js8IQO0Vg/fr1OcGzzvoIVpSmAD4KR1tFk/eBMkIB6UMJWcQ+Musya4Ou92egjEs3ZDgIxDK5GbWFgVFkcNsXxRi8BSv1MWjPCILG2SA275g//PDDFz5CV2Dk4x//+NpTDZQ4kfJc4DwYo8i9CCqLzI5jFCHKIFd+12KaQDwBZZUCVhQeBoqFDwIfNdiz8q2hNqUw6ppiuvG7ewS0nTbqWvSBkOEgEAQ/w7YQ8MTVLMq5ibDaDzrooCa3LNW1lCJkv8iC1MxPnnzyyRPXgiN3ig0ibbN8ybIlrnxBbl16e7SBrXGtCLG0DpFzyVI+rr/++nyXO8v25G9tPu8LRSAthUztJyBLGuoWBJ9Qme23/ujTtfSRZtdlXKX0FnvUXMCWMkh617YtOy0tGfcSGhaY7UERg7nWkMVGgDua5cQjIehu1HSNbUCRn01s2oqdxo444ohcmfSCmi5EcJ0IfHUw5cQlK2IfYVcRtWsRP6+TqQbBhtz6FLbjjz8+P96lAtJFHVclDbgzOLoUY1u0Z5eITp9WEPz0GDZOQWSxQY41xAJibbGCuMw8JNygyB2pr5JLvjGQC3iDAVB0+YEHHpjPlSNA7Z/m5rW3tm8bkFeERDAeN7+5f7uVTSOpz9qL3jbCCJ2bvY5LVt1MM6g3pUMfr7tl7TRljnvHI2Dab9Ryy/F3Vp81nkVMRTU28zoaBD8v5LfkazD3Qeghq4VAIkzeGYodokTCyO8rX/lKLeKchBg3uDl80ztc5lVW9qQ0nDdo2zjHi4K8H57LnfepqSjPuVveEnfIIYdEn28KXg/XI2T90FRLF8KrI72Q4SAQc/DDaYsoyQoiYH0/V6nBluXOwu9yUxzR95QIAZpt3KfInRdg85YofeWkiLQh99S0lAPKBsUjZL4IMC6s7uhCpCWwM+bgu0CzuzSC4LvDMlIKBKZGwLx2l9HNlhciZSSPqCkSdcU9th+lcJhnF7Rnbn9aQe68FF3Wc9oyreL9lDcBv13MxVue2UU6q9gOfdY5CL5PdCPtQKAhAn1YtlywrHcucsFuPubDq4QFhthtnGPrUZZ7Wvfu5UDTzuWnPAUQ1ln6l66P734QQMqPe9zjai/frCqFaRuKQhsPUVV6caw7BGIOvjssI6VAYGoEuiLQYkFY8AI2kbcX1JgrtVGNwZ3LnCXtnOkCUe6UDBHwKcqfpWf6oMuALPEAAgnFn4g7mJXY1teeBCG/REC7U/Ys3/z4xz+eB/02wcZqIH1JHwkZHgKze7KGV/coUSDQOQJWRdghjFsbkTSd4+yD7Ay+BnKv40XS3O0+LC4kn/JE9KYIyhvYIIC0/W2XgNmYZ9Zbm1JgKDxBSHe2JCy0uUBKyzfrxIAIpkPulnQGlndiObRfQfBDa5Eoz8IigDi4nS+66KK1OnBFi2KvOz/Zx/KxFNlM4eBK5WonBvU6UwLuY/l2LZbPwWyWEm7karThYmpGX6WgmppJrxpOd7iGx8V+BmnuPvBM6AzzOwh+mO0SpVpABFijRXJXBVaqjWZsWFRHWJhc5V0FoBmQk4Ul3Uc96lG5671J+tz7fc2XI/kmgX91MIxr2iNAGUTgtjvWRyiBpo0QuX7kW8Q8j1DI8BGIILvht1GUcEEQMBBWWaSs5Lpr0JGpaPWuxNIlA3ISHgJL5pJbPh0f921Qr1v+celUnesr3aq84lh9BNLyTf2FZU9R5MmhgAa518dx3lcGwY9pAdYF16T5Rx+/441JYwBb8VMsHINgWQQh1R0Uk5WdrO5yWk3+NxhzpRbzRtYC5gRVyauOUFyaKAR10kzX1C1Duj6+A4FAoD4C4aIvYcWiEFls7lSwiW1EU9CRgZIma5vZ9LrMLgbiUhEW8l9LsXy8upQihEjMO++000757lYs02UXhHrCCSdkZ511Vt6H1NcSIoTaRCgJlqjZpGYaMS2gTGVB1vr0kUcemQfdWQY3TrRrleIy7p465/SRVegXdbCIawKBPhAIgi+gas7J0iCRpEi+LMjfWmKfNK/KQlplKwRRwANmllaVhVJkWZb9yxG+QX1ZRV31kaOPPjrvP4jUnGZT69f1CB6xtn1RDMXCWwhH4e04ZdWLj0RC26/ei49S4BvFNSlo0nG8y2Vy+oDo/FCQl/VpiHoNAYEg+F+1AjekQe6KK66o1S4CqjZt2pQPwpZCpUjlWjcvyUXmm3k4LrnkkpEboCA8S7IEm1mGg1RGkc4ywILk9YVp+4N5cyTNcqY8NZF999033za0juLJgvbRLvp0iiFQD+SbLGy/zcfWibqvW1bL9orxAXXvi+sCgUCgHgLLa07Vq39+FSuU9VKX3ItJ23LThh1NopKL9y/yb16Oiy++eCS5F+uGPFzbVzR2Ma9l+c2SX7duXfaEJzyhVqS5t4PZlYyymjawqYtFUkxY7T5c+4ncpYGI664EqJMnZYFnICQQCAT6QyAs+C3YGgwvv/zy1ihzXRqsRJuuinDZUoiSxVen3lzOrFGvSp3Wwq2T3zJcg2RT3xLoyRtCSaJQImXnkSVyd8y8vesonoceemh+vOkUQRVu8pKH5VOU4WllVHzAtOnG/YFAIHAnAitvwbPeN2/Z1AH5tBVpIK5VsuIpRW0GejEO02Ddto0W/T4WNTc6Qk9BnnYSS+uV9T9TRsg9iamT4v/peNtvVjzlTDmmkaOOOipfCkhpCAkEAoH+EFh5C54lWmdrxklNgOy4oevMe05KaxHOi1doK4LxpiWJtnkv8n033XRTo8h68Q8seW77ort9Ggx4C4499tjs/PPPz+MqmqYlPsDGNqvynDTFJ64PBLpEYOUteC7mLuaFzXt2kU6XjdtXWjCzH0Bb6WPb07ZlWZT7KI/c801FcGMfniWWvEj/ugGTSP3xj398vrw0yL1pK8b1gUA7BFbegp+GqMqQc1uvgrAMTUu0lSbz9m3zWLb7KJC8TU0F1u7tWkT3e6WsaQJTXPY/KEfYi7wXlyJa3vangvdCAoFAYHYIrDzBI6uuZBrS66oMs0hH0NY0y5v62DRlFvWedx5tFaO2902qr35gLbu19OIqPEvp27n0iYDKSUjG+UCgHwRWnuC7mpvUPKs0kInsZrm1kS73Wm+T/yLewxWur7bxEnXZx6uwY6kn6zyUtyqE4lggMB8EVn4O3uDX1Zwga2ZVxJyqgKumYtvWaaz/pvkty/WUR9HzTYWLHAH3KTwEFA+fWCHRJ9KRdiDQDIEg+C0Eb7/0aQW5d6UoTFuWWdxv2ZbtZ5uIZVH7779/EHwT0H51Lexsi8zt3UTsstinQiWAT/Dfeeedl23cuLHVZlFN6hPXBgKBQH0EVp7gkbJo4Gml74F02vL1cT/F6IADDqiVNBdzeUc2c7asPsvmLAET8NjXfHGtQg78Iu7vJkqVfm06pM/15tbZX3bZZbnlLgZFO5577rlTrbIYeDNE8QKBhUGgmTmwMNVqVlBrskX6eoNcG7HZSN8DaZty9X0P5QhuiMeudqOWv/FuICY7oRXdxa6/9NJL15YXsk5POumknOSL1/Vdj6Gnb4kcSxlRi33gqj/77LPHvqNdu1hzXncZWxsMlKtqn3wvH6K4Vb3Jrk0+cU8gEAi0QyAIfgtu5uERkPlDy32aiHloO3OtqiBlxH344Yfnu6bZAMfAj4zMG++66675xiblwd6SryK5w89yrjPOOCM75phjYiOcX+GBLK+++ur8jX28G4LZTHMcccQR+SY21rkXV2+Yc/cqY2/w65PcV7W/R70DgUVCIAj+V61l4ERS3I11LXmWv807uJr7dIMOvUOpO/x8rHdO666R/yhcEHzVxkDIipK16jvdIXPkTQkqEjiXuF3kDjrooHx6RN9j3buGosrzYc59FO5d9iX5rdvyMhzlLIpASkGYIYFAIDBfBILgC/gbFK3pZf3Y4rO8cUe6lDXqHdqs07Jlmq5Z1W8Y1gk2REyjpEhoo65Z9uNc3J/97Ge3Ivdinb0ciQvePPs8l6aZmtqwYUN20UUX5Yqd6SovuQnvQbG14ncgMB8EguBLuLN+zF9yOyeXPaJHSAZSAxhL1XUxiJXAa/Av/Fh5ZSuegkBxWnX5+te/PjHg8IYbbsj76jyVzOQ1OProo/NnhNcmnotV771R/6EgEARf0RJIxqDps0qvgK2AordDCJ7lZ2kVa5UghuOOO66zF6P0VvieEzbFUectcIIUh+DtMC1A6Q0JBAKBYSEQBD+s9liZ0lCiCMsvBYqJtkf8qx5BD5s6VnCda1amQ0VFA4FAYBsEguC3gSQOzAoBRJYi7WeV5yLkQ8Gxx8CkV/IKRFx1ZWgR2jPKGAjMC4GV3+hmXsBHvoHAOASsRpgUif7Yxz62113qxpUvzgUCgcDwEQiCH34bRQlXEAFz2nb+q4qQ5/k45JBDgtxXsF9ElQOBJgiEi74JWnFtIDBDBGyiZEMbrnrb+Qqoc8w72H2LWA8JBAKBQGAUAjFCjEImjgcCA0DASg57LtidDsHHMrQBNEoUIRBYEASC4BekoaKYq41AWOur3f5R+0CgDQIxB98GtbgnEAgEAoFAIBAYOAJhwQ+8gYZePC+W4Tq2o9kyrctWLxvOFLfUTcv6hrQ0Tfns61/c8Ia1b/lhSCAQCKw2AkHwq93+U9XeFr6bNm3Kt/QV8Y3k6+xDP1WmPd6M0L2T/lvf+lb27W9/O99hz3bFXvyCNG3CY+25V7Z6oYr/56nUKKsXI/nY8jeVU9nsUe87iL7HDhNJBwIDRyAIfuANNNTisXCLr3v91Kc+lR122GGZl48smrCCbft67bXXZjfeeGPlHvDe2OaDSBGq4Lf169fn++Yj+lkLcvfCmfLrjSkpIu59BOc96lGPCpKfdeNEfoHAQBAY9Bx82qN8IFhFMQoIJLIrHNrmtaHFc0P9nV7LesEFF2SbN2+uJPeqsiPYz3/+89nnPve53INRdU1fx+Qt3zK5l/OjsFx33XW5YlI+F/8HAoHA8iMwd4L/67/+6/yNWKyND37wg2uIG3irNvlYuyB+zBUB89APfvCD18pgfnqPPfZY+38RfiRyv+SSS/J57DZlto++V6WOerVwmzTH3cPbYF38LbfcMu6ytXPXXHPNzMq2lmn8WAkEPD+UTYZYOQ5kJQBYgErO1UVvYDzzzDOzj3/849kXv/jF7JWvfGU+cP3u7/7uAkC32kXklj788MOzK664In/AH/3oRy/UxiuIEil75zq39jRy22235Rb1wQcf3LtSaiD1Ktm6op6mHbzIZ57xAnXLG9cNHwFxKd526HXFniHTdeJvvGJ7t912y98suMixOMNvgfolnCvBf/jDH85e/OIXZ/vvv3/+OfLIIzMf71x/2tOeVr8WceXcEHjMYx6TR3Av2gNtzv3iiy+emtwT8Eiekmp/+D4D20TLN/UWKJtBeB6xAgmf+F4OBFjsX/jCF7Z5ERIr/rvf/W52/fXXZwcddFAei7NoY8JytNDWtZgrwRsML7zwwuzZz352Xira30c/+tHsiU98Ym5xbF3U8f+96U1vGjl/qlOG9IMAV/2Qlo3VqSWL3dw0a7hL+eY3v5nvOOdFMX1KU4+DeAmWfEggMA0C+hGPnRUmo4QCKj7E2L7rrrvmlv2oa+N4/wjMleBPOeWU7G//9m/z6GvuesIi/NCHPpSdeuqpjWrPRVxcC1y8edEIqFj2+N09Aoide7EPMeed3mvfR/rStGSvCcnPY48C87Mknr0choX/oz1Z5+PIvVjJK6+8MnfVL+KqmmI9Fv33XAne6zB1BEFORTn00EPzCOU3v/nNxcNjf5900kkjzxvgQgKBhIBBKhFQOtbVt6C7Pt3h3J6msOoOtOplkJ3HMxBz/l31qvmnY979q1/9aqOCXH311bmy2+eUVaMCreDFc4+ih7lXXyY5/fTTs40bN+abifzd3/1dOhzfgUAnCHAz2simT0HyfQmitolNXXG9jXmscpilsNxnnecs67dqedn/wbPTRKz0aOJpapJ2XFsPgUEQfLGo5513XvalL32peCh+BwKdIWCQ6nt/BcFGo6aLuqiIHer22WefiUkh2GOPPbb3yP6JBZnygr68LVMWa6Vub/PMiPtoqhSsFKgzqOzgCH4GdY4sVhgBgw53Y59ijr9PUmKVr1u3LjvwwANHWsmu4RnjJh+aqxw2LLu6gX/hCeizt9ZLu20sxdD6Xr3aLs9Vc52Dr4Lx6KOPzrfYrDoXxwKBLhDo07pWPunXJa+29TEXz/Vub3zr3NNSOPOdNiASwXyf+9xnMOTOkrOa5aabbsrLiuQt21NOdRi3hC9Iom0vqXefttEe+pTCo6AAABm+SURBVCys9a0y5vpSU6EUtFUMmuYV11cjMDiCf+ELX1hd0jgaCHSEgMGrTwvboFYeIDsq+lbJGIh33HHHnCAN0hQL+Q4tqAmxC7j62te+to3i45igwSOOOCI/F4SwVRP39g8vFre7eBRTSv5H8FZoIHNLPYsvVHKMEtZkaamNb/TRkPkhMDiCnx8UkfMqIIAAvSimz7lBg6GBclYyRFJPdeeKtwGQF/SMEsFYn/jEJ/LlshSWkP4Q0O8FzIlzGvUuA0GivEIUxT333DP3FCF3Ly7y/oU6Ylplr732msvqjTrlW5VrYg5+VVo66pkjYG7aOvU+pbhHf5/5DD1tXhIv8BlH7qkOlhZedtllvQdApvxW8Zv1banb+eefP5Lci7iw6hG6Zcyse9MpYj/qyOMe97jcs1Tn2rimPwSC4PvDNlIeIAJcwOau+xKWuznlkCx353LN1xVb8Pa9hLFuWZbtOpa7TZi0R9P4EPEd55xzTr6/w7777pvtt99+Y4M7DzjggDwOZJZerGVrr67qMzs/YlcljnQCgSkRYMFzo7dZ+jMpa8rD0ObAJ5W5r/NeSNJ0KsR2vw996EPDtdtho2gDlrvtmduKdzfYgtbKjIc//OE5gWurFNzJM2befqeddsqnwGYRg9K2Lqt0XxD8KrV21DVHwBy8+US7KHYpvAPr16+f6fx7l+XvOi2k0FS4hc3bI4yQbhDgGWm6C11VzubupWMPBl4qH21lKoa1HgGSVajN91i46OeLf+Q+BwQEAD3kIQ/JrY0us/c+hO23377LJBc6rVi/Pv/mozAJqOtqaahVD0XFDbHzWAW5z7+tq0oQBF+FShxbegREBZsr7CrgzqYz3oYYA92dXcc0SFNBFjF32xS10dcLrLv55ptHX9DwjPl7JN/nMtOGRYrLxyAQBD8GnDi13Aiwtjds2JC/jGWamu6xxx55hHHMvW+NIhdu03XQYhjCPb81jtP81yW5p3KkFyql/+N7uAgEwQ+3baJkM0LAu6sFdjUV1rplQ9b7htW5LXq8JI985CO3PTHiiLdLCtQK6QYBVvatt97aTWKFVMzpd+XyLyQbP3tAIILsegA1klwsBLiS999//2z33XfPlxKN2gAk1QqZszQF1PEChFs+IbP1N1xEXCOEr3/961ufLP0Hx+OOO650NP6dBgEBcPYX6Fq46cNF3zWq/aQXBN8PrpHqgiHALey96ebkDYp2V2P9mMNkrSArioBNbFiaMVdcr4FTrMN973vf7Ctf+UrlGmxb1VpbnbbarZdyXDUJAUTcl6XddC39pLLG+X4QCILvB9dIdUERQNw+SJxFzwoymFnXG274do1KOeKq5/WwkY318XC1XNExWFMEQrpFAO5NYyDqlkDaIcNHIAh++G0UJZwTApZ59TVAzqlKc8uWcpTWTrMqKU1BEv02h75Leep6d0DKWGxk02/bdZV6BNl1hWSkEwgEArUQQA5B7rWgmvqiPoIWvRAoFN+pm2YmCQTBzwTmyCQQCAQCgdkjIHhR/EOXInAyCL5LRPtLK1z0/WEbKQcCg0GAW9yuZr7tTS4KmiVtoE7fMWgPprk6K4g4Bzss2ke+CxFkGq/07QLJ2aQRBD8bnCOXQGAuCFgR4KU63u9tgxL7iZcjq82pGrQFFfpGCiHLg8CDHvSgfFvmScs/J9XYtAplIQIiJyE1nPNB8MNpiyhJINAZAkjc+vMvf/nLmbd+jRNLAW+66ab8IxBu7733zixdix3lxqG2OOcQsm2ZWfHf/e53WxVcwOmTn/zkka+JbZVo3NQ7AjEH3zvEkUEgMFsELEFjrZ1//vkTyb1cMkvYLrnkkvzVotIJWQ4EzMUfc8wxrbZlZrkffPDBsfJhAbtCWPAL2GhR5EBgFALm1u0/ftlll02125hNaX74wx/mLtlw2Y9Ce/GOs+RvuOGG/LWvdRQ4mz9xy9sAKpbGLV57B8EvXptFiQOBSgSsLWeBT0vuKXFEYP36nnvumW/+k47H9+IiQFmzxbJ3L9g++Nvf/nb++te0pS1XvB0bxWKIljdlEy9RWtz2DoJf3LaLkgcCWyFgzp17vct9wq+77rq1Xf3CgtsK7oX9h8vd0jkvSVq35WVJqb9QEBG8D1KPvQoWtonXCh4EvwZF/AgEFhcBS9+uueaafClc17UQqLfTTjt1vp6663JGes0QQOQREd8Ms0W7OoLsFq3ForyBQAUC5sv/53/+p+LM9Iesn5c2Cy8kEAgEFgeBIPjFaasoaSBQiQDi/cY3vrHN+vbKi1seRPCW04UEAoHA4iAQBL84bRUlDQQqEWBhi5zvU2yQYxogJBAIBBYHgSD4xWmrKGkgUImAIKnvf//7lee6PIjkQwKBQGBxEAiCX5y2ipIGAiMRYMX3LaL0QwKBQGBxEAiCX5y2ipIGApUIpGVOlSc7PBgu+g7BjKQCgRkgEAQ/A5Aji0CgTwRmtV453jbXZytG2oFA9wgEwXePaaQYCMwcgVmQrx3OQgKBQGBxEAiCX5y2ipIGApUIsOBnQb477LBDZf5xMBAIBIaJQBD8MNslShUI1EbAa12987tPsYd5vD62T4Qj7UCgewSC4LvHNFIMBGaKgD3iH/awh/Wa5y677BIvHekV4Ug8EOgegSD47jGNFAOBmSPARe/Vnn2IKQBvFptVMF8fdYg0A4FVRCAIfhVbPeq8dAh4+9fee+/dCwl7vej222+/dJhFhQKBZUcgCH7ZWzjqtzIICILbf//9O63vrrvuGtZ7p4hGYoHA7BCI18XODuvIKRDIEbjjjjvyF7fceuutmbfACV7bcccd81d3TvP6Ti70hzzkIdk+++yTXXXVVVOj/YAHPCA7+OCDp04nEggEAoH5IBAEPx/cI9cVRQChf/WrX802b968zdvfRMIffvjhOTIC59oIZWHdunUZa/7SSy9t/YrXnXfeOXvMYx7TpghxTyAQCAwEgXajyEAKH8UIBBYJAVvKbtq0Kbvuuuu2IXf1+M53vpNt3Lgxt+qnqZdNb3baaafssMMOy+53v/s1Ssq9PAAHHHBAzLs3Qi4uDgSGh0BY8MNrkyjREiKA3K+//vrspptuGlu7H/zgB7nlfeihh2bWnreV7bbbLnvwgx+cSYficMMNN2SmBEwPVAmL31K43XbbLc+3KmL+Jz/5SR7EV3WuKs04FggEAvNFIAh+vvhH7iuCwI9+9KPcNV+nurfffnv23e9+dyqCT/lQEqyRR/Zp7p8S4cUxiNqcvyV2FAKR+OOmBi677LJM0J3PLLbGTXWI70AgEGiHQBB8O9zirkCgEQIIvskrXb/5zW/mAXN3uctdGuUz6mLk7WO5W5td75T/5ptvzuf0+95UZ1Qd4nggEAg0QyAIvhlecXUg0AoB7u0m4npufZb1EEQ5fv3Xfz1LbvohlCnKEAgEAuMRiCC78fjE2UCgEwSa7uPu+iHNdSdFo2k9OgEvEgkEAoFWCATBt4ItbgoEmiFgLpyLvK5Yz96Ve75unnFdIBAILBcCQfDL1Z5Rm4EigNx33333WqUT0W7jm5BAIBAIBKZBYBgTfNPUIO4NBBYAAe52G9CIXt+8ZZObUSKq/bjjjht1Oo4HAoFAIFAbgSD42lDFhYHAdAhYjmZ3OPPZ11577Ta7zLHa7SUvuG5I8+/T1TruDgQCgXkhEAQ/L+Qj35VEwDrzPffcM99QxgY01qRz3z/wgQ/M16NPsxf9SgIalQ4EAoGRCATBj4QmTgQC/SBgkxifptvI9lOaSDUQCASWFYEIslvWlo16BQKBQCAQCKw0AkHwK938UflAIBAIBAKBZUUgCH5ZWzbqFQgEAoFAILDSCATBr3TzR+UDgUAgEAgElhWBIPhlbdmoVyAQCHSOwC9+8YvO04wEA4G+EAiC7wvZSDcQCASWDoHYPnjpmnSpKxQEv9TNG5ULBAKBQCAQWFUEguBXteWj3oFAIBAIBAJLjUAQ/FI3b1QuEAgEAoFAYFURCIJf1ZaPegcCgUAgEAgsNQJB8EvdvFG5QCAQCAQCgVVFIAh+VVs+6h0IBAKBQCCw1AgEwS9180blAoFAIBAIBFYVgUES/K233rqq7RH1DgQCgUAgEAgEOkFg7gT/kY98JHve856X/fM//3P2jW98I9tvv/3yd2OvX78+27RpUyeVjEQCgUAgEAgEAoFVQ2CuBH/eeedlr3jFKzJk/sY3vjE74YQTsuc+97nZTTfdlP3+7/9+9ld/9Ver1h5R30AgEAgEAoFAoBME5krwH/3oR7PXvva12Z/92Z9lH/jABzKu+Ve96lXZzjvvnL3yla/Mrr766uz222/vpKKRSCAQCAQCgUAgsEoIzJXg99prrzU3/N5775297W1vy+56118W6ZZbbsl+9rOfZTvssMMqtUfUNRAIBAKBQCAQ6ASB7TpJpWUiT3/607MTTzwxe/7zn5+9853vzJ72tKflKX3605/OnvGMZ2SnnXZaVvflDtL56U9/WlmS733ve5XH42AgEAgEAoFAILCsCMyV4B/wgAdkn/3sZ7NrrrlmK3x333337OKLL84e+chHbnV83D9nnXXWyNMUCeT/ne98Z+Q1cSIQCAQCgUAgEFgGBHi/yVwJXgFY6HvuuaefuZx++unZIx7xiOz4449Ph6b+lv4LX/jC7J73vOfUaXWdwFVXXZXdeOON2b3uda+uk16q9H7+859n3//+92PKpkar3nbbbdn973//Gleu9iU8e9tvv/3atOBqozG69j/60Y/ycXqI4+foUs/+zB133JHd/e53z44++ujZZ17Kcccdd8yPzJ3gS+XKRNb/+Mc/7pTgX/e615WzGcz/73//+zMD8ote9KLBlGmIBaEEmbJ597vfPcTiDapMGzZsyM4999xBlWmIhXnOc56Tr97ZZZddhli8wZTprW99ax74bNo0ZDQCV1xxRfaud70re9Ob3jT6ohmfmWuQ3YzrGtkFAoFAIBAIBAIrg8DgLHjujSZz7yvTUlHRQCAQCAQCgUCgAQKDI3hz5SGBQCAQCAQCgUAgMB0C4aKfDr+4OxAIBAKBQCAQGCQCQfCDbJYoVCAQCAQCgUAgMB0CQfDT4Tf13Xe7290yn5DxCFhOud12g5tRGl/oOZ21VCdkMgL6U92NtCantrxXGJ/SDqPLW8vpawajoY1Rd/nFFpm+apFCIBAIBAKBQCAQCAwJgbDgh9QaUZZAIBAIBAKBQKAjBILgOwIykgkEAoFAIBAIBIaEQBD8kFojyhIIBAKBQCAQCHSEQBB8R0BGMoFAIBAIBAKBwJAQCIIfUmtEWQKBQCAQCAQCgY4QCILvCMhIJhAIBAKBQCAQGBICQfBDao0oSyAQCAQCgUAg0BECQfAdARnJBAKBQCAQCAQCQ0IgCH5IrRFlqYXAHXfckcX+TLWgiosmIPDTn/50whVxOhBYXASC4OfcdgaYV7/61dnjH//4/POa17wm+8lPfjLnUg03+xtvvDF7+MMfnl133XXDLeScSnbuuedmRx55ZLbHHntkT3va07Jbb711TiVZjGzf9773ZYcddthiFHYOpbzqqquyZz/72dljH/vY7Pjjj8/+7d/+bQ6lGH6WP/vZz7JXvOIV2YEHHpjts88+2Zve9KbBFDoIfs5N8a53vSu79tprs4suuij/eKje/e53z7lUw8z+7W9/e3bsscdmN9988zALOMdS/e///m/2nOc8J3vb296WXX311TnJv/KVr5xjiYabNcXnxS9+cfayl70sPEFjmunlL395dtJJJ2VXXnll9p73vCd76Utfmn3rW98ac8dqnnrrW9+a3XDDDdlll12Wffazn83e8IY3ZBdffPEgwAiCn3Mz0I5f//rXZ14Q4kMDvOCCC+ZcquFlz6vx7//+79nHPvaxbMcddxxeAedcos997nPZ3nvvne2///55P3rJS16S/cd//MecSzXM7Ddu3Jjd5z73ySjXIdUI/PznP8/+4A/+ILfgXbHrrrtmO+ywQ3b55ZdX37DCR1/0ohdl73znO/MX8njhjLGKVT8ECYKfcyscfPDB2SMf+ci8FN///vez9773vdmpp54651INL/t73OMe2Sc+8Ylszz33HF7hBlAiFsQuu+yyVpKdd945u+2227If//jHa8fixy8ReMYznpH9/d//fXbve987IBmBAKJ66lOfmiuLLqEU8XzElMa2gN3znvfMlZ/3v//92VFHHZWdcsopg8EpCH7b9prLEVrfs571rAzh/8Zv/MZcyhCZLi4C3/nOd7Ltt99+rQKJvH7wgx+sHYsfgUAbBEz5/PZv/3b2lre8JbxnYwD06mEeWN60L33pS2OunN2pIPjZYZ3n9MAHPjBjjfqceeaZ+THk/vSnPz1367DgQ7KsCqfAZTQCO+20U3b77bevXfC9730vu9e97pU94AEPWDsWPwKBpgh8+ctfzjZs2JD9+Z//+Zq7vmkaq3L9M5/5zDx+6ogjjsiVoSHUe7shFGKVynDOOeeszc+sX78+s+SL5W7O5kMf+lBO/KuEx6i6lnEadV0c/yUCD3vYw7LNmzevweH3brvttvZ//AgEmiJgpcoJJ5yQnXbaadnv/d7vNb19Za5/xzveke27777ZIYccktfZ7w9/+MODqH8Q/IybQVBdUd785jfnUfSsee5UH9b9fe973+JlK/e7jNPKAdCwwscdd1z2/Oc/P58rtVTujW98Y0z1NMQwLt8aAW753/qt38ot91tuuSU/aVwyPoXciQAPLA/HGWeckf3f//1fbsWLXxiChIt+zq2A4Ddt2pRHqT7oQQ/KfLh6QgKBJggI9DFHamARtGm/AJZXSCDQBgHLvS688MI8GDGNS77tHRCyNQLPfe5zM1NkVrGIobJnwKte9aqtL5rTf3fZsiPYL+aUd2QbCAQCHSNgysf8e8y9dwxsJBcITEDAKiiK9nbbDccxHgQ/odHidCAQCAQCgUAgsIgIhIt+EVstyhwIBAKBQCAQCExAIAh+AkBxOhAIBAKBQCAQWEQEguAXsdWizIFAIBAIBAKBwAQEguAnABSnA4FAIBAIBAKBRUQgCH4RWy3KHAgEAoFAIBAITEAgCH4CQHE6EAgEAoFAIBBYRASC4Bex1aLMgUAgEAgEAoHABASC4CcAFKcDgUAgEAgEAoFFRCAIfhFbLcocCAQCgUAgEAhMQCAIfgJAcToQCAQCgUAgEFhEBILgF7HVosyBQCAQCAQCgcAEBILgJwAUpwOBQCAQCAQCgUVEIAh+EVstyhwIBAKBQCAQCExAIAh+AkBxOhAIBAKBQCAQWEQEguAXsdWizIFAIBAIBAKBwAQEguAnABSnA4FAIBAIBAKBRUQgCH4RWy3KHAgEAoFAIBAITEAgCH4CQHE6EAgEZoPATTfdNDajH//4x9mtt9469po4GQgEAnciEAR/JxbxKxAIBOaEwAUXXJC95S1vGZv7L37xi+y5z31udscdd4y9Lk4GAoHALxG4y5aH5hcBRiAQCAQC80Lg5z//efakJz0p+8///M9s++23H1uM973vfdm3vvWt7OUvf/nY6+JkIBAIZFlY8NELAoEVR+DKK6/Mnv/852cnn3xy9uhHPzq75JJLsuc973nZy172suxBD3pQdsABB2SbNm3KUULGb33rW7MDDzwwe+hDH5r95V/+ZeYYOfbYY7PXve512c4775ydeeaZ2fHHH5+dfvrp2R577JGne+GFF2Z/+Id/mP3ar/1a9uxnPzv73ve+l9/37ne/O9t9993XyN1973znO7P169dnu+yyS/a2t70tv86fpz71qdnrX//67Lbbbls7Fj8CgUCgGoEg+Gpc4mggsDII/PCHP8z+5V/+JXvCE56QveENb8juete75v8/8IEPzL7whS9khx12WPYnf/InOR7I9h//8R+zf/qnf8o+8IEPZP/6r/+aveMd78jPffWrX83OPvvs7O1vf3uuAFx77bXZBz/4wewzn/lMdsopp2QnnHBCdt/73je74oorsq9//evZWWedld933nnnZRs2bMh/++O+9773vdlHP/rRXEF4xStesUbo9773vbO99tprTeFYuyl+BAKBwDYIBMFvA0kcCARWD4F73ete2V/8xV9kp556al75+93vftlrX/va3IJ+1rOelW3evDk/jnhf8IIX5MrA4Ycfnlv+73nPe9YA4zqXBiuevPSlL80e9rCHZc985jPzufNXv/rV2a677podc8wx2cUXX5xf85WvfCX3BuT//OqP63gTpHX/+98/+8Y3vrF2mufAPSGBQCAwHoEg+PH4xNlAYCUQQMJF4UZPYl48BbZ97Wtfyy36dI51XyTf3XbbLZ3Kv5E5YXn7vcMOO+T/3+Me91hLk/JQzM8FSUHwW/4//elP/czFtddff336N74DgUBgBAJB8COAicOBwCohcLe73W2r6t7lLnfZ6v/0z0477ZR98YtfTP9mn//857NHPOIRa/+X09luu+3Wzo36Yf79m9/85lanR+XvItc+/OEP3+r6+CcQCAS2RSAIfltM4kggEAiMQEC0u0h2QW633HJLPg9/xBFHjLi63uH9998/u+aaa+pdvOUq1z72sY+tfX1cGAisKgJB8Kva8lHvQKAFAoLt7nnPe65FxrOkUwBei+TyW5D1VVddVet2UwWC+fbbb79a18dFgcAqIxDr4Fe59aPugUBLBG6//fbs7ne/ez633jKJtdtuvvnm7NBDD80j4+usg//Yxz6WFQP71hKKH4FAILAVAkHwW8ER/wQCgcA8EPiHf/iHXGF4yUteMjb7o446Kp8iKAcFjr0pTgYCK4rA/wMI+YgW4tvsvAAAAABJRU5ErkJggg==" alt="plot of chunk unnamed-chunk-2"/></p></td><td class="code"><pre><code class="r">n = 300
+set.seed(123)
+par(mar = c(4, 4, 0.1, 0.1))
+plot(rnorm(n), rnorm(n), pch = 21, cex = 5 * runif(n), col = &quot;white&quot;, bg = &quot;gray&quot;)
+</code></pre></td></tr><tr id="row9"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row9">&para;</a></div><h2>How does it work</h2>
+
+</td><td class="code"></td></tr><tr id="row10"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row10">&para;</a></div><p>The <strong>markdown</strong> package (&gt;= v0.6.2) supports custom HTML templates, and the <code>docco</code> engine in <strong>knitr</strong> uses a custom template to compile Markdown to HTML:</p></td><td class="code"><pre><code class="r">head(knitr::rocco, 5)
+</code></pre>
+<pre><code>##                                                                                   
+## 1 function (input, ...)                                                           
+## 2 {                                                                               
+## 3     out = knit2html(input, ..., stylesheet = system.file(&quot;misc&quot;,                
+## 4         &quot;docco-classic.css&quot;, package = &quot;knitr&quot;), template = system.file(&quot;misc&quot;, 
+## 5         &quot;docco-classic.html&quot;, package = &quot;knitr&quot;))
+</code></pre></td></tr><tr id="row11"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row11">&para;</a></div>
+
+<p>That is it.</p>
+
+<p>You probably have noticed that you can adjust the widths of the two columns
+using your cursor. What is more, press <code>T</code> on your keyboard, and see what
+happens.</p>
+</td><td class="code"></td></tr>
+      </table><!--table end-->
+    </div>
+  <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
+  <script src="https://yihui.github.io/knitr/js/docco-resize.js"></script>
+  </body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/docco-classic.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/index.html	(revision 2476)
@@ -0,0 +1,68 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'knitr'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/knitr/doc/knit_print.html">knitr::knit_print</a></td>
+<td></td><td valign="top">Custom Print Methods</td>
+<td valign="top"><a href="../../../library/knitr/doc/knit_print.html">HTML</a></td>
+<td valign="top"><a href="../../../library/knitr/doc/knit_print.Rmd">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/knitr/doc/knit_print.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/knitr/doc/knitr-intro.html">knitr::knitr-intro</a></td>
+<td></td><td valign="top">Not an Introduction to knitr</td>
+<td valign="top"><a href="../../../library/knitr/doc/knitr-intro.html">HTML</a></td>
+<td valign="top"><a href="../../../library/knitr/doc/knitr-intro.Rmd">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/knitr/doc/knitr-intro.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/knitr/doc/knitr-refcard.pdf">knitr::knitr-refcard</a></td>
+<td></td><td valign="top">knitr Reference Card</td>
+<td valign="top"><a href="../../../library/knitr/doc/knitr-refcard.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/knitr/doc/knitr-refcard.Rmd">source</a></td>
+<td valign="top" style="white-space: nowrap"></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/knitr/doc/datatables.html">knitr::datatables</a></td>
+<td></td><td valign="top">Display Tables with the JavaScript Library DataTables</td>
+<td valign="top"><a href="../../../library/knitr/doc/datatables.html">HTML</a></td>
+<td valign="top"><a href="../../../library/knitr/doc/datatables.Rmd">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/knitr/doc/datatables.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/knitr/doc/knit_expand.html">knitr::knit_expand</a></td>
+<td></td><td valign="top">Templating with knit_expand()</td>
+<td valign="top"><a href="../../../library/knitr/doc/knit_expand.html">HTML</a></td>
+<td valign="top"><a href="../../../library/knitr/doc/knit_expand.Rmd">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/knitr/doc/knit_expand.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/knitr/doc/knitr-html.html">knitr::knitr-html</a></td>
+<td></td><td valign="top">An R HTML Vignette with knitr</td>
+<td valign="top"><a href="../../../library/knitr/doc/knitr-html.html">HTML</a></td>
+<td valign="top"><a href="../../../library/knitr/doc/knitr-html.Rhtml">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/knitr/doc/knitr-html.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/knitr/doc/knitr-markdown.html">knitr::knitr-markdown</a></td>
+<td></td><td valign="top">An R Markdown Vignette with knitr</td>
+<td valign="top"><a href="../../../library/knitr/doc/knitr-markdown.html">HTML</a></td>
+<td valign="top"><a href="../../../library/knitr/doc/knitr-markdown.Rmd">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/knitr/doc/knitr-markdown.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/knitr/doc/docco-classic.html">knitr::docco-classic</a></td>
+<td></td><td valign="top">R Markdown with the Docco Classic Style</td>
+<td valign="top"><a href="../../../library/knitr/doc/docco-classic.html">HTML</a></td>
+<td valign="top"><a href="../../../library/knitr/doc/docco-classic.Rmd">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/knitr/doc/docco-classic.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/knitr/doc/docco-linear.html">knitr::docco-linear</a></td>
+<td></td><td valign="top">R Markdown with the Docco Linear Style</td>
+<td valign="top"><a href="../../../library/knitr/doc/docco-linear.html">HTML</a></td>
+<td valign="top"><a href="../../../library/knitr/doc/docco-linear.Rmd">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/knitr/doc/docco-linear.R">R code</a></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-markdown.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-markdown.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-markdown.html	(revision 2476)
@@ -0,0 +1,277 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+
+<title>Package vignettes</title>
+
+<script type="text/javascript">
+window.onload = function() {
+  var imgs = document.getElementsByTagName('img'), i, img;
+  for (i = 0; i < imgs.length; i++) {
+    img = imgs[i];
+    // center an image if it is the only element of its parent
+    if (img.parentElement.childElementCount === 1)
+      img.parentElement.style.textAlign = 'center';
+  }
+};
+</script>
+
+<!-- Styles for R syntax highlighter -->
+<style type="text/css">
+   pre .operator,
+   pre .paren {
+     color: rgb(104, 118, 135)
+   }
+
+   pre .literal {
+     color: #990073
+   }
+
+   pre .number {
+     color: #099;
+   }
+
+   pre .comment {
+     color: #998;
+     font-style: italic
+   }
+
+   pre .keyword {
+     color: #900;
+     font-weight: bold
+   }
+
+   pre .identifier {
+     color: rgb(0, 0, 0);
+   }
+
+   pre .string {
+     color: #d14;
+   }
+</style>
+
+<!-- R syntax highlighter -->
+<script type="text/javascript">
+var hljs=new function(){function m(p){return p.replace(/&/gm,"&amp;").replace(/</gm,"&lt;")}function f(r,q,p){return RegExp(q,"m"+(r.cI?"i":"")+(p?"g":""))}function b(r){for(var p=0;p<r.childNodes.length;p++){var q=r.childNodes[p];if(q.nodeName=="CODE"){return q}if(!(q.nodeType==3&&q.nodeValue.match(/\s+/))){break}}}function h(t,s){var p="";for(var r=0;r<t.childNodes.length;r++){if(t.childNodes[r].nodeType==3){var q=t.childNodes[r].nodeValue;if(s){q=q.replace(/\n/g,"")}p+=q}else{if(t.childNodes[r].nodeName=="BR"){p+="\n"}else{p+=h(t.childNodes[r])}}}if(/MSIE [678]/.test(navigator.userAgent)){p=p.replace(/\r/g,"\n")}return p}function a(s){var r=s.className.split(/\s+/);r=r.concat(s.parentNode.className.split(/\s+/));for(var q=0;q<r.length;q++){var p=r[q].replace(/^language-/,"");if(e[p]){return p}}}function c(q){var p=[];(function(s,t){for(var r=0;r<s.childNodes.length;r++){if(s.childNodes[r].nodeType==3){t+=s.childNodes[r].nodeValue.length}else{if(s.childNodes[r].nodeName=="BR"){t+=1}else{if(s.childNodes[r].nodeType==1){p.push({event:"start",offset:t,node:s.childNodes[r]});t=arguments.callee(s.childNodes[r],t);p.push({event:"stop",offset:t,node:s.childNodes[r]})}}}}return t})(q,0);return p}function k(y,w,x){var q=0;var z="";var s=[];function u(){if(y.length&&w.length){if(y[0].offset!=w[0].offset){return(y[0].offset<w[0].offset)?y:w}else{return w[0].event=="start"?y:w}}else{return y.length?y:w}}function t(D){var A="<"+D.nodeName.toLowerCase();for(var B=0;B<D.attributes.length;B++){var C=D.attributes[B];A+=" "+C.nodeName.toLowerCase();if(C.value!==undefined&&C.value!==false&&C.value!==null){A+='="'+m(C.value)+'"'}}return A+">"}while(y.length||w.length){var v=u().splice(0,1)[0];z+=m(x.substr(q,v.offset-q));q=v.offset;if(v.event=="start"){z+=t(v.node);s.push(v.node)}else{if(v.event=="stop"){var p,r=s.length;do{r--;p=s[r];z+=("</"+p.nodeName.toLowerCase()+">")}while(p!=v.node);s.splice(r,1);while(r<s.length){z+=t(s[r]);r++}}}}return z+m(x.substr(q))}function j(){function q(x,y,v){if(x.compiled){return}var u;var s=[];if(x.k){x.lR=f(y,x.l||hljs.IR,true);for(var w in x.k){if(!x.k.hasOwnProperty(w)){continue}if(x.k[w] instanceof Object){u=x.k[w]}else{u=x.k;w="keyword"}for(var r in u){if(!u.hasOwnProperty(r)){continue}x.k[r]=[w,u[r]];s.push(r)}}}if(!v){if(x.bWK){x.b="\\b("+s.join("|")+")\\s"}x.bR=f(y,x.b?x.b:"\\B|\\b");if(!x.e&&!x.eW){x.e="\\B|\\b"}if(x.e){x.eR=f(y,x.e)}}if(x.i){x.iR=f(y,x.i)}if(x.r===undefined){x.r=1}if(!x.c){x.c=[]}x.compiled=true;for(var t=0;t<x.c.length;t++){if(x.c[t]=="self"){x.c[t]=x}q(x.c[t],y,false)}if(x.starts){q(x.starts,y,false)}}for(var p in e){if(!e.hasOwnProperty(p)){continue}q(e[p].dM,e[p],true)}}function d(B,C){if(!j.called){j();j.called=true}function q(r,M){for(var L=0;L<M.c.length;L++){if((M.c[L].bR.exec(r)||[null])[0]==r){return M.c[L]}}}function v(L,r){if(D[L].e&&D[L].eR.test(r)){return 1}if(D[L].eW){var M=v(L-1,r);return M?M+1:0}return 0}function w(r,L){return L.i&&L.iR.test(r)}function K(N,O){var M=[];for(var L=0;L<N.c.length;L++){M.push(N.c[L].b)}var r=D.length-1;do{if(D[r].e){M.push(D[r].e)}r--}while(D[r+1].eW);if(N.i){M.push(N.i)}return f(O,M.join("|"),true)}function p(M,L){var N=D[D.length-1];if(!N.t){N.t=K(N,E)}N.t.lastIndex=L;var r=N.t.exec(M);return r?[M.substr(L,r.index-L),r[0],false]:[M.substr(L),"",true]}function z(N,r){var L=E.cI?r[0].toLowerCase():r[0];var M=N.k[L];if(M&&M instanceof Array){return M}return false}function F(L,P){L=m(L);if(!P.k){return L}var r="";var O=0;P.lR.lastIndex=0;var M=P.lR.exec(L);while(M){r+=L.substr(O,M.index-O);var N=z(P,M);if(N){x+=N[1];r+='<span class="'+N[0]+'">'+M[0]+"</span>"}else{r+=M[0]}O=P.lR.lastIndex;M=P.lR.exec(L)}return r+L.substr(O,L.length-O)}function J(L,M){if(M.sL&&e[M.sL]){var r=d(M.sL,L);x+=r.keyword_count;return r.value}else{return F(L,M)}}function I(M,r){var L=M.cN?'<span class="'+M.cN+'">':"";if(M.rB){y+=L;M.buffer=""}else{if(M.eB){y+=m(r)+L;M.buffer=""}else{y+=L;M.buffer=r}}D.push(M);A+=M.r}function G(N,M,Q){var R=D[D.length-1];if(Q){y+=J(R.buffer+N,R);return false}var P=q(M,R);if(P){y+=J(R.buffer+N,R);I(P,M);return P.rB}var L=v(D.length-1,M);if(L){var O=R.cN?"</span>":"";if(R.rE){y+=J(R.buffer+N,R)+O}else{if(R.eE){y+=J(R.buffer+N,R)+O+m(M)}else{y+=J(R.buffer+N+M,R)+O}}while(L>1){O=D[D.length-2].cN?"</span>":"";y+=O;L--;D.length--}var r=D[D.length-1];D.length--;D[D.length-1].buffer="";if(r.starts){I(r.starts,"")}return R.rE}if(w(M,R)){throw"Illegal"}}var E=e[B];var D=[E.dM];var A=0;var x=0;var y="";try{var s,u=0;E.dM.buffer="";do{s=p(C,u);var t=G(s[0],s[1],s[2]);u+=s[0].length;if(!t){u+=s[1].length}}while(!s[2]);if(D.length>1){throw"Illegal"}return{r:A,keyword_count:x,value:y}}catch(H){if(H=="Illegal"){return{r:0,keyword_count:0,value:m(C)}}else{throw H}}}function g(t){var p={keyword_count:0,r:0,value:m(t)};var r=p;for(var q in e){if(!e.hasOwnProperty(q)){continue}var s=d(q,t);s.language=q;if(s.keyword_count+s.r>r.keyword_count+r.r){r=s}if(s.keyword_count+s.r>p.keyword_count+p.r){r=p;p=s}}if(r.language){p.second_best=r}return p}function i(r,q,p){if(q){r=r.replace(/^((<[^>]+>|\t)+)/gm,function(t,w,v,u){return w.replace(/\t/g,q)})}if(p){r=r.replace(/\n/g,"<br>")}return r}function n(t,w,r){var x=h(t,r);var v=a(t);var y,s;if(v){y=d(v,x)}else{return}var q=c(t);if(q.length){s=document.createElement("pre");s.innerHTML=y.value;y.value=k(q,c(s),x)}y.value=i(y.value,w,r);var u=t.className;if(!u.match("(\\s|^)(language-)?"+v+"(\\s|$)")){u=u?(u+" "+v):v}if(/MSIE [678]/.test(navigator.userAgent)&&t.tagName=="CODE"&&t.parentNode.tagName=="PRE"){s=t.parentNode;var p=document.createElement("div");p.innerHTML="<pre><code>"+y.value+"</code></pre>";t=p.firstChild.firstChild;p.firstChild.cN=s.cN;s.parentNode.replaceChild(p.firstChild,s)}else{t.innerHTML=y.value}t.className=u;t.result={language:v,kw:y.keyword_count,re:y.r};if(y.second_best){t.second_best={language:y.second_best.language,kw:y.second_best.keyword_count,re:y.second_best.r}}}function o(){if(o.called){return}o.called=true;var r=document.getElementsByTagName("pre");for(var p=0;p<r.length;p++){var q=b(r[p]);if(q){n(q,hljs.tabReplace)}}}function l(){if(window.addEventListener){window.addEventListener("DOMContentLoaded",o,false);window.addEventListener("load",o,false)}else{if(window.attachEvent){window.attachEvent("onload",o)}else{window.onload=o}}}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=n;this.initHighlighting=o;this.initHighlightingOnLoad=l;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="\\b(0[xX][a-fA-F0-9]+|(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.ER="(?![\\s\\S])";this.BE={b:"\\\\.",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.inherit=function(r,s){var p={};for(var q in r){p[q]=r[q]}if(s){for(var q in s){p[q]=s[q]}}return p}}();hljs.LANGUAGES.cpp=function(){var a={keyword:{"false":1,"int":1,"float":1,"while":1,"private":1,"char":1,"catch":1,"export":1,virtual:1,operator:2,sizeof:2,dynamic_cast:2,typedef:2,const_cast:2,"const":1,struct:1,"for":1,static_cast:2,union:1,namespace:1,unsigned:1,"long":1,"throw":1,"volatile":2,"static":1,"protected":1,bool:1,template:1,mutable:1,"if":1,"public":1,friend:2,"do":1,"return":1,"goto":1,auto:1,"void":2,"enum":1,"else":1,"break":1,"new":1,extern:1,using:1,"true":1,"class":1,asm:1,"case":1,typeid:1,"short":1,reinterpret_cast:2,"default":1,"double":1,register:1,explicit:1,signed:1,typename:1,"try":1,"this":1,"switch":1,"continue":1,wchar_t:1,inline:1,"delete":1,alignof:1,char16_t:1,char32_t:1,constexpr:1,decltype:1,noexcept:1,nullptr:1,static_assert:1,thread_local:1,restrict:1,_Bool:1,complex:1},built_in:{std:1,string:1,cin:1,cout:1,cerr:1,clog:1,stringstream:1,istringstream:1,ostringstream:1,auto_ptr:1,deque:1,list:1,queue:1,stack:1,vector:1,map:1,set:1,bitset:1,multiset:1,multimap:1,unordered_set:1,unordered_map:1,unordered_multiset:1,unordered_multimap:1,array:1,shared_ptr:1}};return{dM:{k:a,i:"</",c:[hljs.CLCM,hljs.CBLCLM,hljs.QSM,{cN:"string",b:"'\\\\?.",e:"'",i:"."},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},hljs.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:a,r:10,c:["self"]}]}}}();hljs.LANGUAGES.r={dM:{c:[hljs.HCM,{cN:"number",b:"\\b0[xX][0-9a-fA-F]+[Li]?\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\b\\d+(?:[eE][+\\-]?\\d*)?L\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\b\\d+\\.(?!\\d)(?:i\\b)?",e:hljs.IMMEDIATE_RE,r:1},{cN:"number",b:"\\b\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"keyword",b:"(?:tryCatch|library|setGeneric|setGroupGeneric)\\b",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\.\\.\\.",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\.\\.\\d+(?![\\w.])",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\b(?:function)",e:hljs.IMMEDIATE_RE,r:2},{cN:"keyword",b:"(?:if|in|break|next|repeat|else|for|return|switch|while|try|stop|warning|require|attach|detach|source|setMethod|setClass)\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"literal",b:"(?:NA|NA_integer_|NA_real_|NA_character_|NA_complex_)\\b",e:hljs.IMMEDIATE_RE,r:10},{cN:"literal",b:"(?:NULL|TRUE|FALSE|T|F|Inf|NaN)\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"identifier",b:"[a-zA-Z.][a-zA-Z0-9._]*\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"operator",b:"<\\-(?!\\s*\\d)",e:hljs.IMMEDIATE_RE,r:2},{cN:"operator",b:"\\->|<\\-",e:hljs.IMMEDIATE_RE,r:1},{cN:"operator",b:"%%|~",e:hljs.IMMEDIATE_RE},{cN:"operator",b:">=|<=|==|!=|\\|\\||&&|=|\\+|\\-|\\*|/|\\^|>|<|!|&|\\||\\$|:",e:hljs.IMMEDIATE_RE,r:0},{cN:"operator",b:"%",e:"%",i:"\\n",r:1},{cN:"identifier",b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[hljs.BE],r:0},{cN:"string",b:"'",e:"'",c:[hljs.BE],r:0},{cN:"paren",b:"[[({\\])}]",e:hljs.IMMEDIATE_RE,r:0}]}};
+hljs.initHighlightingOnLoad();
+</script>
+
+<!-- MathJax scripts -->
+<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
+</script>
+
+
+<style type="text/css">
+body, td {
+   font-family: sans-serif;
+   background-color: white;
+   font-size: 13px;
+}
+
+body {
+  max-width: 800px;
+  margin: auto;
+  padding: 1em;
+  line-height: 20px;
+}
+
+tt, code, pre {
+   font-family: 'DejaVu Sans Mono', 'Droid Sans Mono', 'Lucida Console', Consolas, Monaco, monospace;
+}
+
+h1 {
+   font-size:2.2em;
+}
+
+h2 {
+   font-size:1.8em;
+}
+
+h3 {
+   font-size:1.4em;
+}
+
+h4 {
+   font-size:1.0em;
+}
+
+h5 {
+   font-size:0.9em;
+}
+
+h6 {
+   font-size:0.8em;
+}
+
+a:visited {
+   color: rgb(50%, 0%, 50%);
+}
+
+pre, img {
+  max-width: 100%;
+}
+pre {
+  overflow-x: auto;
+}
+pre code {
+   display: block; padding: 0.5em;
+}
+
+code {
+  font-size: 92%;
+  border: 1px solid #ccc;
+}
+
+code[class] {
+  background-color: #F8F8F8;
+}
+
+table, td, th {
+  border: none;
+}
+
+blockquote {
+   color:#666666;
+   margin:0;
+   padding-left: 1em;
+   border-left: 0.5em #EEE solid;
+}
+
+hr {
+   height: 0px;
+   border-bottom: none;
+   border-top-width: thin;
+   border-top-style: dotted;
+   border-top-color: #999999;
+}
+
+@media print {
+   * {
+      background: transparent !important;
+      color: black !important;
+      filter:none !important;
+      -ms-filter: none !important;
+   }
+
+   body {
+      font-size:12pt;
+      max-width:100%;
+   }
+
+   a, a:visited {
+      text-decoration: underline;
+   }
+
+   hr {
+      visibility: hidden;
+      page-break-before: always;
+   }
+
+   pre, blockquote {
+      padding-right: 1em;
+      page-break-inside: avoid;
+   }
+
+   tr, img {
+      page-break-inside: avoid;
+   }
+
+   img {
+      max-width: 100% !important;
+   }
+
+   @page :left {
+      margin: 15mm 20mm 15mm 10mm;
+   }
+
+   @page :right {
+      margin: 15mm 10mm 15mm 20mm;
+   }
+
+   p, h2, h3 {
+      orphans: 3; widows: 3;
+   }
+
+   h2, h3 {
+      page-break-after: avoid;
+   }
+}
+</style>
+
+
+
+</head>
+
+<body>
+<!--
+%\VignetteEngine{knitr::knitr}
+%\VignetteIndexEntry{An R Markdown Vignette with knitr}
+-->
+
+<p>This is an example of Markdown vignettes in R. Before R 3.0.0, only Sweave/PDF vignettes were supported in R. Markdown is gaining popularity over the years due to its simplicity, and R 3.0.0 starts to support package vignettes written in R Markdown.</p>
+
+<blockquote>
+<p>Please note this example is for <a href="http://rmarkdown.rstudio.com/authoring_migrating_from_v1.html">R Markdown v1</a> only. If you use <a href="http://rmarkdown.rstudio.com/">R Markdown v2</a>, you should use the vignette engine <code>knitr::rmarkdown</code> instead of <code>knitr::knitr</code>.</p>
+</blockquote>
+
+<h2>Package vignettes</h2>
+
+<p>To enable Markdown vignettes in an R package, you need to</p>
+
+<ul>
+<li>add <code>*.Rmd</code> files under the <code>vignettes</code> directory</li>
+<li>add <code>VignetteBuilder: knitr</code> to the <code>DESCRIPTION</code> file</li>
+<li>specify the vignette engine <code>\VignetteEngine{knitr::knitr}</code> in the <code>Rmd</code> files (inside HTML comments)</li>
+</ul>
+
+<h2>View vignettes</h2>
+
+<p>And R will load the <strong>knitr</strong> package to build these vignettes to HTML files, and you can see them when you open the HTML help:</p>
+
+<pre><code class="r">help(package = &quot;YourPackage&quot;, help_type = &quot;html&quot;)
+# or see a standalone list of vignettes
+browseVignettes(&quot;YourPackage&quot;)
+</code></pre>
+
+<h2>Examples</h2>
+
+<p>Below are some code chunks as examples.</p>
+
+<pre><code class="r">if (TRUE) cat(&quot;_hello_ **markdown**!&quot;, &quot;\n&quot;)
+</code></pre>
+
+<p><em>hello</em> <strong>markdown</strong>! </p>
+
+<p>Normally you do not need any chunk options.</p>
+
+<pre><code class="r">1 + 1
+## [1] 2
+10:1
+##  [1] 10  9  8  7  6  5  4  3  2  1
+rnorm(5)^2
+## [1] 0.006997 0.029490 0.059141 0.001653 1.833117
+strsplit(&quot;hello, markdown vignettes&quot;, &quot;&quot;)
+## [[1]]
+##  [1] &quot;h&quot; &quot;e&quot; &quot;l&quot; &quot;l&quot; &quot;o&quot; &quot;,&quot; &quot; &quot; &quot;m&quot; &quot;a&quot; &quot;r&quot; &quot;k&quot; &quot;d&quot; &quot;o&quot; &quot;w&quot; &quot;n&quot; &quot; &quot; &quot;v&quot;
+## [18] &quot;i&quot; &quot;g&quot; &quot;n&quot; &quot;e&quot; &quot;t&quot; &quot;t&quot; &quot;e&quot; &quot;s&quot;
+</code></pre>
+
+<p>Feel free to draw beautiful plots and write math \(P(X>x)=\alpha/2\).</p>
+
+<pre><code class="r">n = 300
+set.seed(123)
+par(mar = c(4, 4, 0.1, 0.1))
+plot(rnorm(n), rnorm(n), pch = 21, cex = 5 * runif(n), col = &quot;white&quot;, bg = &quot;gray&quot;)
+</code></pre>
+
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfgAAAH4CAYAAACmKP9/AAAEDWlDQ1BJQ0MgUHJvZmlsZQAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VVBg/m8AAEAASURBVHgB7N15rC1ZVT/wg6IgyIygyPCglaGZm6EHenjdzdztRIyRRBMVojHxD5RoMA6JMUYx0WDU6C9G/zHRGEkM2MzYdEPTDKJo0woo4gMURZkUHMDpdz+l67FfvRp21akz3btWcu85p4Y9rL1rfde0d93hf45olZQcSA4kB5IDyYHkwLHiwB2PVW96OvP85z9/9bGPfWx1l7vcpeeKPJwcSA4kB5IDyYHjwYGPf/zjq7e//e2rEwHw//Ef/7H63d/93dV97nOf4zF62YvkQHIgOZAcSA70cOD6669vznxRz/k8nBxIDiQHkgPJgeTAAXMgAf6ABy+bnhxIDiQHkgPJgT4OJMD3cSaPJweSA8mB5EBy4IA5kAB/wIOXTU8OJAeSA8mB5EAfBxLg+ziTx5MDyYHkQHIgOXDAHEiAP+DBy6YnB5IDyYHkQHKgjwMJ8H2cyePJgeRAciA5kBw4YA6ciHXwBzw+2fTkwFY48O///u+rz33uc6t//ud/Xvl+5zvfeXW3u91tdac73Wn1ZV/2ZVtpQ1aSHEgOLMuBBPhl+ZmlJQcOigM2gfrkJz+5eu9737v6p3/6p/Pafve733114YUXru5973uvvuRLvuS883kgOZAc2F8OpIt+f8cmW5Yc2CgHgPvf/M3fNFtadoG7yln0trx0HQs/KTmQHDgcDiTAH85YZUuTA4tx4L//+79Xn/70p1e33XZbVZmuA/L/9V//VXV9XpQcSA7sngMJ8Lsfg2xBcmDrHPjXf/3X1bve9a5J9b7//e9fuS8pOZAcOAwOJMAfxjhlK5MDi3LgH/7hH1af//znJ5XJpf93f/d3q3zD9CS25cXJgZ1xIAF+Z6zPipMDu+EAYP/7v//7WZV77fJUxWBWRXlTciA5sDYHEuDXZmEWkBw4LA6Io88FafdlHP6wxjtbe3I5kAB/csc+e36COXCHO9xhVu/dN/feWRXmTcmB5MBsDiTAz2Zd3pgcOEwO3PGOd2w2sJnTehvffPEXf/GcW/Oe5EByYMscSIDfMsOzuuTArjlgw5oHPOABs5rxlV/5lasv/dIvnXVv3pQcSA5slwMJ8Nvld9a25xw4KRni973vfVdf/uVfPmk0bFkL4JOSA8mBw+BAblV7GOOUrdwQBySM/du//VuzXauNX/y+613vurr//e+/ustd7nJst2cF1o9+9KObtfA1SXPi7pdddlnuS7+heZjFJgc2wYEE+E1wNcs8CA7YevUjH/nIygYu//mf/3lOm+3NfurUqdXjHve4Y5lUBrBZ8ddff/3qhhtuGMyMF3O/6KKLGtf8F31ROv3OmSj5IzmwxxxIgN/jwcmmbY4DNm350Ic+1Lxkpa+WM2fONMD3yEc+srHm+6471OOS7WxZe8UVV6z+4i/+YvWJT3xida973av5k0yHALpjLP5MrjvUkc52n1QOJMCf1JE/4f3+1Kc+NQjuwR4WPmDzRrXj+DY1AH6Pe9xj9YQnPKF5mYwNcOxW55WxrHyvjeXdEHvP18bGrMjP5MBhcCAB/jDGKVu5IAeA1/ve977qEj/84Q+vLrjggmMJ8MEE4Qp707ffKvcv//IvjWVvB7tLLrkkLs/P5EBy4AA4kAG1AxikbOKyHJBUxoKvJW7sKdfXlrsv1wF3r4Rtg3vZPgB/yy235MtmSqbk9+TAnnMgAX7PByibtzwHxN+n0nF9ixplR5IhS32MxOjlLVB4kpIDyYH950AC/P6PUbZwYQ5ILptKx3VzF9a7mHstffSjH23i87XX53XJgeTA7jiQAL873mfNO+KAxDLJY1NIIloX2RjnkDfHYcHLSailz372swfd39p+5nXJgePAgQT44zCK2YdJHLAE7Ku+6quq77nb3e7Wm0Eu09zfoVJ7/X9NP9JFX8OlvCY5sHsOJMDvfgyyBVvmgGVvD3vYw1aAe4yA91Of+tRegB+7f9/PTw094F2uh9/3Uc32JQf+lwMJ8DkTTiQH7MN+8cUXD+7HDsiA+1R3/iExVB9tZFNL9773vVdzchhqy8/rkgPJgeU4kAC/HC+zpAPjgD3nL7300tXDH/7wxpoHXLG5ywMf+MBmh7ev+IqvONaARnl5xCMeUT1yj3rUo/JtctXcyguTA7vlwPR04t22N2tPDizKAS+UAXCnjvadj9gykD9J7z1nlT/mMY9Z3X777YO8feITn1gV1hgsJE8mB5IDW+NAAvzWWJ0V7SsHZNWf5G1YbcH74Ac/eHX3u9999e53v7t5u145VjwdLPf73e9+x9qbUfY5vycHjgMHEuCPwyhmH5IDa3IAyHu73OWXX97sVmdjH54MHg5/XPl+JyUHkgOHw4EE+MMZq2xpcmCjHCgBfaMVZeHJgeTAVjiQSXZbYXNWkhxIDiQHkgPJge1yIAF+u/zO2pIDyYHkQHIgObAVDiTAb4XNWUlyIDmQHEgOJAe2y4EE+O3yO2tLDiQHkgPJgeTAVjiQAL8VNmclyYHkQHIgOZAc2C4HEuC3y++sLTmQHEgOJAeSA1vhQAL8VticlSQHkgPJgeRAcmC7HEiA3y6/s7bkQHIgOZAcSA5shQMJ8Fthc1aSHEgOJAeSA8mB7XIgAX67/M7akgPJgeRAciA5sBUOJMBvhc1ZSXIgOZAcSA4kB7bLgQT47fI7a0sOJAeSA8mB5MBWOJAvm9kKm7OS48yB//mf/1n9+7//+9n3yevrHe94x+ad8se539m35EByYL85kAC/3+OTrdtzDnit6t/8zd+sPvrRj64++9nPrv7rv/6rAfd73OMeqwc96EGr+9///s2rVve8G9m85EBy4BhyIAH+GA5qdmk7HADo73znO1ef+cxnzqnwP//zP1ef+MQnmr8HPvCBqyc96UnnnM8fyYHkQHJgGxxIgN8Gl7OOY8eBz3/+86u3ve1tKxb8ELHuAf7jHve41Zd92ZcNXZrnkgPJgeTAohzIJLtF2ZmFnQQOAPfbb799FNyDF3//93/fuPH/+7//Ow7lZ3IgOZAc2DgHEuA3zuKs4LhxAMD/7d/+7aRufehDH2oS8SbdlBcnB5IDyYE1OJAAvwbz8taTyYFPfepT52TM13DhX/7lX1YUg6TkQHIgObAtDiTAb4vTWc+x4cBY3L2vo5bS1ZBld0nJgeRAcmBdDux1kh1Bepe73GXdPub9yYFFOfAlX/Ils8qzNr6PLK9j5cdyuy//8i9fPfjBD1596Zd+abPsru++PJ4cSA4kB/o4sHML/id/8idXX/3VX7264IILVi9/+cvPtpPAu+td73r2d35JDuyCA7GJDfClcHKz3/Oe95zclDvc4Q696+Fl2UvAe/Ob37x6//vf38T3fd54440r93kWkpIDyYHkwFQO9JsUU0uacb1lRq997WtXr3nNa1Z/9md/tnrxi1+8+uQnP7n67u/+7smlPe95z1v9x3/8R+d9N910U+fxPJgcGOLA5z73udXHPvax1ZkzZxrr+ou+6ItWNrB57GMfu/qar/ma1Qc+8IGh2885d6973WvVZ/lTGoB5G8j99mxcccUVTb3nFJg/kgPJgeTACAd2CvCvfOUrV9/3fd/XrBG2Tvjyyy9v/u5973uvvumbvmmk6eee/s3f/M1VX+zy1KlT516cv5IDIxygLNqs5t3vfvc5V4qj/+M//uPqmmuuWVEAPvKRj5xzvu/HhRde2Lt17Qc/+MHzwD3KAfLquPvd795Y83E8P5MDyYHkwBgHdgrwj3/841e33nrr6vnPf37TTlt73nDDDatnPvOZky2WIXc+N2dScmAKB4D7H/7hH3bewp3OK3TxxRevrHHv8xzFzRdddFHvfAbgY0l7wgPq/OIv/uIoMj+TA8mB5MAoB3Yag7/uuutWN9988+rSSy8921Duz9/7vd87C/pnT+SX5MCWOMAyH3O/x3a0tqHtA9473/nOqyc+8Ymrr/zKr+xNlOP2d90QOe+6pORAciA5MIUDO7Xg73a3u63+9E//dPWOd7zjnDZfcsklq/e85z2rl73sZecczx/JgW1wAHizmsfon/7pn1YPe9jDVqdPn27c9vJHxNNlvgN1yXi2px0CZ94lnitx/r4Q00Mf+tB0z48NRp5PDiQHzuPATgE+WsPV2aav+qqvWr30pS9tH87fyYGNcwDo9lnlZeWu8WdJm7+HPOQhZ13pU8JCFN2nPe1pq1tuuaUsvvku1j9m4Z93Ux7YGgfkZERypDHPZY1bY31WVMGBvQD4inbmJcmBrXGAkJYtP2bFexVsaZ37Xv6ubbD18eoD5kID//Zv/9ZY/tbBA/e+7Pva8uM6cXz5AiUgKXtofX7cm5/nckAYR57GX/3VX614cvD0Tne60+orvuIrVo95zGMaoJ+i5J1bev5KDizDgQT4ZfiYpRwjDgC8r/3ar139wz/8Q/MmuK6uWfZ2n/vcp+vUrGPqZMlLPAUWPANzlIWuylmZlBX75wMj4CQcoE4bSVFUANNYOKGr7JN4jJJku+J2Eia+enugVRbyinLlw0mcHfvV5wT4/RqPbM2ecADYEtLyQ9p7yN/3vvdtkuc28frXuV6ALrbJJQDo73vf+1Yf//jHuy5Z/fM//3OzEoDXglJj06lN9Kuz8gM8SDGi+L3rXe/qbT2gB/6XXXZZ7sTZy6U8sQ0OJMBvg8tZx8FxgAUtSc4mMwQ6i82x+93vfivW+76DIKXEtreSWGvI9Tab0lfAlNTNAeETuwyOEY+JJZSSMJOSA7viQAL8rjif9e49B1jTkUDHcjuUmCoXMuu9FtzLgeBevulojf+Tn/zkpu/lufy+asInn/nMZ6pYQVmSR5E5DlXsyos2wIFcXLsBpmaRx48DhwLu4UJ+wxveMHsQuPX/5E/+JN9f38FBilMtlQmNtffkdcmBJTmQAL8kN7Os5MCOOcCFLOa+LskQF7enMCR9gQNTVjTIqk/r/Qu8y2/b50AC/PZ5njUeIw7E0jOf+0B/93d/t/rsZz+7SFPEmmvfYb9IhQdQCMCWg1FDD3jAA6r2U6gpK69JDszhQMbg53At7znRHLCMjaUcVq6saVnokvIk4UnAm2LpLcVMYGwp3FJEUZAstu8JhUv1t6Yc+xI88pGPXHkT5hAB9yWXUQ7VleeSA30cSIDv40weTw50cACI2lbWhjSxYUxcBlz//M//fGVr2Uc96lFbd89qj/j5kiTpzrLApC9wwNsun/rUp67+6I/+6Lw54Cr8espTnvKFG/JbcmBHHEiA3xHjs9rD44AEq/e+972rD3/4w72NF7P2+lfry71oxkYy2yJJXUuHCljxsfHOtvqx7/Vw0/PUXHnllau//uu/bpZQ4pGYO8vdNttJyYF94EAC/D6MwjFqA4Bh5QK6AAYZ6ISfdeSHSsATcA+Be9k3CWq33XZbA/L6vg3Cb8SN7GU3dlLDcyEE7WGNT02ao9QY00Meu03wHj/w17a09hDAV8AvVJOUHNgXDiTA78tIHHg7gIu4NBAEJGK3ASZiuLZCveCCCxqL9hAzi72zvWaDk3IYP/axj628YW5bFp11+0BHjNgmK8YCQOO/F+E8/OEPX731rW89Oy5lW/u+A7Kltsztq+OQj+NP5igc8gge77YnwB/v8d1K71gwLEQbq/jeJsDP8rWzmtikLORdJKG121X7mwVrj/FQWGrvc51+i8luo788BVdfffXqxhtvXJWbsfCo2InvCU94wuqxj31s8yrm2r7Y6Cet9ykjvvy15h8vjE90HDxiy3MpS+ziQAJ8F1fyWDUHwg1vb+4x0GBNyj5+9KMf3ViU2wC96o4MXEhpkTE/hwAr9/42+or/t9566zngXrbZ5jUXXnhh402xy1oNZYJdDZc2c014xT70oQ81WwgDeceEAWTo88p4Z0KGBTbD/+NQagL8cRjFHfZB1vZUt689z1mG4sSHQCynLs9ETdvdN6b41JRTcw1FQnhkiLju8b0G4LmejVPS9jkQSiWlrD33KMpCRh/5yEea1Rr2uz/EsNf2uXryasyNbk7emC/WY4LHrmnhOpxSsOVkXPeHQFyic93Uc++bwxdCf4zwvDbpz9vlJOztigAZBVIugTCD3yeB9NOc80a6Nri3+29Vh3fS409ScqDNgQT4NkfydzUHwsqovqG4UIz4UIQS66gWFIsuNl8B5LaS1GrCAPrCzTtG97jHPRpLf1tt72qPtr7lLW9pcgZe97rXNaGHbXlDutqzrWMUNf2t7Ssl2w6GcxTtbfUp69kNBxLgd8P3Y1Grtd7rCBWJeYdAgNN70ueQ9dJzlYOp9d31rncdrcsmLcZtiJTjNbm7zA5nxb797W8/Rxl5z3veM2rRDvXrEM7p91/8xV+c0++adrvnUBTmmv7kNctwIAF+GT6eyFLWdbHXuJT3hbGW+U2NR1MMTp06tTULnrfg8Y9/fC/LWOV22BOH7yN9tEvbLi13bVN/OzxAUdp1u/r4ttRxXrE5ii9wtzQ1KTlQciABvuRGfp/EgXXjy4eUGMSatcRsSpsvv/zyre5kB/xkvV977bXnWfKyrp/0pCc1CZFdlp57JWtdcsklzVp6MeBdkvZYtx8vdqGcXHzxxVtZjbDLfvOIyZafQ0u9ZGhO3XnPfnIgs+j3c1wOolXrunC3uY3rugwFeNzb11133erVr351s/Str0zgBIzwZ10lqK+OvuO8Buq0jSqLjss3LGHLrcR1XQNIfBoD4P/ABz5w7zYh0jYKh9UB2+ZjH383fdx4zaW5isHc+vK+/edAAvz+j9HetpA71xrcsUzfrg4AzLlrrIHULixM1jtgFJ/+y7/8y2ZJWmkNO69Pj3jEIxp3/hRrv4tHc49RMIBjW4GyZpqVXiZvAU6u713ws6Z/5le5zhsA4mvsv1BTxiFdQ+maS+sq3HPrzfv2lwMJ8Ps7NnvfMsAg+cwLN6bS/e9//3ME95T7dwlGwBNQPu5xj2sUG9YlBYdg9geM1hHSU/gw9VrAuCulY2pb+67Xfmv95UR0kbEwJuYIRWbfFZh2H8wv4Yg5bwWMcEa7zPx9cjmQAH9yx37tnhO2LEJJW1MS7txnv/RtZZev3dGOAvTBX9L2OdDl+eFJkZxmS2HgyF1N0WLVUiYf9KAHNR4NALrP5Jnw7oKpAC98VHo69rmP2bbtcWC/Z/v2+JA1zeSAJVXizRHnHSuG0L300ksbK3js2jyfHOjiQNuDI7nMpjDez+4FP8Ce9c6aB5SWkNltkWW/Toy7qy1LH6OAUEZ4iWoJP7zVrvYZrC03rzt8DiTAH/4Y7rQHhIs3mJ0+fbrXbRoN5EKkDHBB7rslFW3Oz/3mACAH7t7aN0RA//Wvf33zToF19m4YqmOpc3InvJSpnUPRVb7nz7JGz2BScqDNgfQxtjmSvydzgJDhWrQMi8X0t3/7tytWFTcptyFBJVZ/z3vec6ebp0zuWN6w1xwwv7zBcGzjnugEYGflS5KcYiHH/dv8lMB61VVXrW677bbmeeqqG6h7eZBVECdllUEXH/JYPwcS4Pt5k2cmcgDI27mNwOEOJVBZ6tzyhyiAAAiXLgVGH/wl7Q8HbHdsi9YpZF7au92eBvs8J805yrFkTu8E0E/LHq0ekFfghUGUgMycnzL6J+/aBPiTN+Yb7zHBuc/Cc4wB3L5cuu9+97ub96gTtgTqRRddNHZrnt8SByiPPEVzyJv0KG81LvA55S95D5D3J6ylz7EyYMk6sqzjy4EE+OM7ttmzmRwgRL3kpFwZ4NWcwg5PfvKTDwIYZnb9YG5jibPg55BxBZaHRpm3cmgjtvv2JsDvfgyyBXvEAYLf++pLcI/mfepTn2pcpRdccEEcqvrkVmUxKtOf71yrLEhhDdnPvARJ9RwwTnM2WIoaKAibIO3i/TGexjZBeRNczjJrOZAAX8upvO5EcEDMfShpC8iz8GsBWdzUFrHcyV0v15EoZS8Ba7VzmVP9FAOcXNdzaRP5FBQ5a/El/iHxcxvyHHK4ai5/87794EAC/H6Mw4ltRbhK98XSIYyHgIPlXYI7S5AlyX3vj4LAcgPcNsIB7v4I/y6iTPzJn/xJk5xof4CkOg4AaDz+xCc+UXdDcZUx3MR8M8aW7MVY++7FP4cQ6y/Yk1+PEQcS4I/RYB5CV4Chv09/+tNNApvvLGKgaJ28pXSRWLSL/gD4U0eveP3oRz96XvXOhXueEGed20TF1qn60SZZzpGc94EPfKDpb/ua+C3x6+abb25i/DYPShrmAICeu02ylR7m29JE2QtwVzbl1dxOSg7sigMJ8Lvi/Amrl/ADiO9///tXwCws9zYbCG5uTVvZsnyGrOn2vUv9pmRIpmNZx85n2nH11Vc3S+WAOZf7n//5n58931U3ix6wA2z3sujstNZHlJ7bb7999YQnPGEjANRX76Eep0DZ1nXKUjmWPyVtE25zZVt+9573vKdh6eMf//gcx0OdXMek3Qnwx2Qg97kbko6sPf7gBz/YC+zRfsAPBFnFYtPWAG8b5Alqlvfpo935ZGpzyQMT7WCh2XvfBiS1RLGxixrgdr84bR8pm9u+72UqffedxOOs8Ec/+tFN4iLlaIyETJ773OeOzsGxcvrOmx8PfvCDGy+UcbaZTr6voI9beXwbHMitarfB5RNcB0EnK50l22e1d7HHte5h0VIQtk0sPJY3oJcA5zugp3hYHz+VWP2SrygtY8l0Z86cGfQMTK37uF7P/W1c7PhmnIZI3N2Wrjwym4i/R90A3YtfKGhj4xz35GdyYFMcSAt+U5zNcpvlYBLMvOFrLll/TiA/6lGP2rm70xK39773vXO70vCDhf7ABz6wUV76CrKvOoVgH60/oRZ/wFX7NhHL7uNL+3iZ7Mgdzno211jz+McTA2SBv3j9ppLr2u3K38mBfeFAAvy+jMQxawcAkKi2DiAGSygJdvKS/FYK9Ti/rU+udXH1dQgAsSSHwhXWye9jchZPiqRCShcPCyv1kksuWYcdi90LyMXjvUo2FBCF88SkJb0Ym7OgA+NAuugPbMAOpbmsXXH3pYi7vmsd+VLlj5UDNLoy68fua58HjF7IY8VAHwH3KeGMvnKWPM4iFmr567/+68bNrX1yJW688cadjku7j6x2yZlc9/4S3Nscyt8niQMJ8CdptLfYV65oyWVLEXBX5q4IwA1tgDOlXcoBPn20j655/e8KtUhCtPlPUnIgObB/HEgX/f6NycG3iIt5ytKl2g4rUyx1KatMAmC4w7n+Wc4+xZW7llEBuSWIN0A8uI9YoNzhS7/SVH/96VtX//ra47j7+mgpvvSVv4/HjWH0e2jO7GPbs00nhwMJ8CdnrLfWU5nK3NBLkzKHgKa2PqDOihbbl5AlnMDlLJkP8FoHL2FL3L9MIlsy/j8UYxdHlmin/iWWCOqf/AEKElBSpsQzMfQhRaPkZySsda1o0N6TQuafeSgXwdwB9BROKy0kguJTUnJgXziQAL8vI3GM2gG8CL6lieKwTmzavYD9fe97X+eGM84LK/izkY0dzwhtW6KGlRYb36zTN0pDWH/tcoAv4LWJjmz7dQFeX/74j/+4URjKuoA9YH7a055WHu79DsQuv/zyJuZejoH7a5WE3sIP5ARwtzXuO97xjnPmofCR3AQ5CZIOl/a8HAh7spl7yIGMwe/hoOxjk4YsznZ7l7Cy22XG77llA2bC+a1vfWsnuEf55acd91zPshcXH0qMK+8b+66cvnj+hRde2OQasLrXJZ4KYMQb0EWs+ptuuqkqVwIPKCZ25Hv4wx/erOe/7LLLzu6531X+cTsGyO1GWCo4ZR+dt0fCEmNXlpvfkwNzOZAW/FzOHfP7CDGCSgKVP2AhMYwrksU2ZLUBg03RnLIpJxSDd77znWc3kAFWNiQR7xaP1j8u13ZogWLwqle9agXMHvCAB3Qmmk3pa7i6uwD+EY94RNMWoYOpMfJ2G/T5zNGGOWPvTNdf9dkaeIy3lBw7+vFqnDTyPMQKgqG+e1bwfOj5GLo/zyUHluRAAvyS3DwmZQG7D3/4w6u//Mu/PM/VLvbIArWWG1h1ARGgcG5pNz2A6apvjO3c1LfccstZcLebHPc0i966duAP8K2zB4zW7pdtB/Jvf/vbV1dccUWjFPRZxGPtcF4dVgOUHhHu74c+9KFNGOCP/uiPmmL0tbympuzyGmNYu+qAa7lmh72y/JP2XUiFAlhDPCPCO0nJgV1zYHOm1q57lvXP4gBgs35dDLgEubIwVsof/MEfNAKvy10JhDcRh1TmVIAHzixUgIfseCamDkj1E7gRyGLutpIlxO1X3s7UJ+Bdy3qd2obgHY8B5QjwsvD8tte+94ZTNPA8iGeBy1eYoC9eH9eWn5QCiXDGjtJgr/YHPehBg8vyXN81jmW5J/07vtaGh2qvO+k8zf5vngMJ8Jvn8cHUQMhb68xyHyPAyeXNOm4Ta9iuYkuTzG9lTyHgBeAR6xm4e0tcnxDmuRC3BoxtIJecB3if8pSnnHdurE3q5QFAF110UaMo6A9XvSQ4u8Mh3g9Z/NrKC0KpAP59ylZz09E/57nbeR+0358391Fc9INiIgTQxT/egqRhDhgLY19Dm1Bua+rNa5IDbQ7kk93myAn+DQy54GuJZSku+ZjHPOac+K2McwDPQlbmEgSYxMCnLlUDesCPgOY2vfXWW0ebw8IGyPINyt3rKDXc8/p26aWXNopCzda1suJZ03Z964uJA3blWucv90H4QN2OU1C0xbI5INPmgeuNm+vabn1eAF6JM0fxeFn5V1555erNb37zWY8GZigXf5L6OUAJsnRyLOyBj8Y7KTmwDxxIgN+HUdiTNrDGpwIyC5ObuZ1U5PfXfM3XNG+DW6J7yqq1oKI+YBfxcq5xQNdnucc98alfBHoJ8M4BXiDMvQ7keTwIfWGLkljN4vysdO3wjvC+7GrgwWOA97wLXS55ngVJjrLsAUgAMq+L0IL2jpG2AnweBPVoD2VBVnyU11WGdlGUeBuMK0XJ9W1Fo+ve43TMmPOE9L1fAT+e8YxnTPbuHCceZV/2iwMJ8Ps1HjttTZ91OdQowr8rfsvyBISAj5t4HXrIQx7SWJ/KnELaFaAKmLrCCX3lAcK20uJa/aUkAGUKB+WG5a2e4IVz/vQdMANG4Bzb0wJwlr/26ZOlZ9z/4abva5P2W6b12Mc+tuGt6/rW9PeVQeFh7QMqS7q8oz7a1XUP5URuQNk2LujTp0+fOIDnRZKMaG8C+/Lz6ASZK3Ip8GvqPI0y8jM5sDQHEuCX5ugBlzcW5+3qGpAi1LpIohrLlCCssTC7ymCtSoybYy1qV7TN/V2KSFedjrm2q84oL+5zjaVjwF3ugvP6K6mP10BYQeyb8hSWOaBwj2O+UwJKAI2y+z55A1jQgObMket9KvFC8CzYpEYoos961w8v+Wm3Tbu5+S+++OJOJWhqew7peoqbpEXzMsYUuFOSfHbNmUPqX7b1eHEgAf54jedavZnqAlcZcBiyWAi9Jz3pSY3FE8lutY0UM2ZpzhWa3OSxExxwbWfGD7XDtZF5X17X1V/t475lWbOw/fYdGOgzl25bucAzCgAPAOXA7/Y1Zb3t7zwMXS9/aV/X99u9PCx94O4+POsbMy57/DG+2yBtKS1m7R5q+ybbZF6VHplN1pVlJwfW4UAC/DrcO2b3ApypQAPYANkQEcRixwCbu7cdr27fqx2uZ10GQLevqfkNaJXFQlYnb4KkwBoSP+9qZ/CoXQahf5/73KfZqpQnRJ1DL9wB5ixpf0D+mmuuaXaVK0GsXUf5W6b9lITI8l7fI/lwDKCHlI7afIZ23bW/8YIiY6mgPAdhEO0x37Sbd8Q4UUyHlMza+vK65MBx48CwZD5uvc3+DHKAuxgIA6dakvxWA8KuIYxtkMPy+8d//Mcm6S3CAoQ28HQN63mKtT3UVqAL6IGDuLds9jGQBx7csJYBlqScoQxpIA94rbEfAveyTN+59rWP1S9hbghUXY9Xrhm7zrVDxHNAieoj9ciwN1ZtMp5LjVG7bL8Bu1UYQhBd/TSW2kV5NAclRG6yPV1tzGPJgX3nQAL8vo/QFttHWLImCc/IPh+q3os1hgCi694Ab8BBcIcVCBw3YYVRWsSbAa54sgxydfYpMVyvEs9uu+22szHz6IelasrrI8oKd/wUcI+yuMzxX1vbmftxTXy6LhSjODbnM3IC+u4F4vIf7AJIGSjp2c9+9tn8hvL4Et/Nv3e9613nbRvcVXbwnEIwN1ejq9w8lhw4DhyYlpZ8HHqcfRjkgOQvG7KwpPuIJctq4p6vsd77ygHowMrfJsBdvdoXe7xz+YqRs+pZy6xx7l2gTVFh3QsNAOn2XvEUEPu1D/UXMJ2ZkfQW/KF08KCMWaKAeUjRiPLGPsfqoYCp55nPfGZjIRtvCojlgXi5iTHj3akF97J/cgVsJ8wTkpQcSA78LwfSgs+Z0MkBlq7Md0vcWEcsJeBGyJ862mXNUinAfAhEabEZD/e3LHfLw4C8P4AKqICmmLv14V3WsYzxoeVkAI+HoJ1lP4U/PAtizdaZ93kYlOc6f8C3KxGwpk4KSxvglak8iorcAJ/6o9/i3ZQhYx73serF8vHX3Fh3Pqjb2ChzDonVGwOJmcILScmBk86BfApO+gzo6b84NCAn2IEXQc9yByrA4ZBIe/UDkAMQFAluNf2gHIitD4EGBUGZ61Ik3Q0BvDqEUCgoY+78vvbIdwhANraUOGEC+QldSgPgRPgAQN1/5shbYTtcJLeCYlIzN0KZsq7funKeAmMD2Ocup2wacfSPJW/fhKmho7g/P5MDx4kDCfDHaTQ30BeW2ZBbegNVbqRIfQDyAEgmP0AbI0oOMOOWDjDsu4fV3wWMfdf3HQd66h0jwC5XACCyvKeScANljfJmhz/74de4t137tre9bXXVVVedBXd12/gF+I+1XX2UF9cjioP1+MaHwrAu4QWvEw8ThTQpOXCSOZAAf5JH/4T1nQVu1zlAxFoFBDYraZMEQNu3sgJZl942x+pkZQJFrmplhava/V1u/Xa5tb+B4Bhxj4cCcvvtt49dfs55igEABIbCElYL1NRZFkKZ4Zrnxkd4NuThiHvxSXZ8EKXCRjq8Rfi8BFF6lDembCxRV5aRHNhnDiTA7/PoZNsW5wCQFlO2WsDSKiAHZHyy7oEWsKMASLYLACsbwjKkJLhfZj0gUe5SVGN5xpvhIodA1n8NSY7kyeCRmAvu6uGav/baa5slgZQe5Y55OdwXYZ4yK58ihedLKUnGjGKWlBw46RxIgD/pM+CE9h8gh4UH1BErnevbBjJD7moxa+Doj+VqA50oa112UjLGAN4a/QsuuOCsxQzkgWyfQqJNvA6UGh4MQKx/EgqnWu7RP31/wxve0IQvxN5rwzi8HhI4eQ2APMWAklSzLDPqLj/xi7LlT7/8No4+k5IDJ50DCfAnfQZk/xsOsB4/+MEPnhNXrmGNxDDLs7xFTOIZ4FuHrFIQ5+4ioMVrIHxQusMBG6tc/XILYtc3ighAlUPAa0EJoTw47pr2UsCuOoeOqQvPeDu8hnZolUFZDovdUkxWtj75m+oBcY+tdikswiwUBMDOE0PZEdvHE23yOyk5cBI5kAB/Ekc9+3wOB4C77PXICD/nZMUPQCUOzpJdF+DDwpYhH3F/AA6klc8SB25dBMD9uVebAHnXtSznMwsktEUbtJPCwKtQS23Qbf8eKofSYr8CwG7XwC4vhCVzYv14JlFSzkEXL4bqyXPJgUPnQAL8oY/gMW8/8AVILLE+wFqHBcqUlAUo1iG713mpjnZOeS1tWSd3PyAHYDbhYY2yuAFTrQs8yhuyiPF0Xes96olPPIxQQRyb8qmP3Ox93osoi+fCxjs2w6lZIgjoWffXXXddowiUno8oMz+TA8eVA8tlBh1XDmW/dsoBwHHjjTeuXvOa15y3XeoSDROLnmu5l/WzmFnFlp/NsRRZ6U9+8pPPutFZtKx1FvlUcC/b1fW9K3Gw67opx5TZZUnXlkGpYW0PEb5657qEwhpwj7K069WvfnXjXaHQJSUHTgoHEuBPykgfYD9ZsCHICeklNpJps4FreSnA8/ITbQTUU0CeVWmnvCn3tPsx5fcS6/Xb9fEKBM0BUZ6KsRfGiKlzy1OkppL22clwKHlyapl5fXJg3zmwUxf9q171qtV73vOeQR695CUvGTwfJyX79AkWQJF0eBwAeDKuveyEJQsAliSuf2vhlyTgI4kMyHtL3Fh2OFe87HZrwPWR5U5J4BGQXR7Z4Uu2UdlLU/nsja0C6Ktb/8XLY7fB8jpzAcCvE0oROpEQiN9DbSQvKEGSCIUyKIAUBF4WKy6ML+8Kz0q6/MtRyu/7xoGdAryH7Kd+6qeaHbm43tahn/3Zn+11EabWvg5nd3svwX7ZZZf1Km/rtI4gn7vv+VC9dmrzMhuJYABC4p3YsmQ0BBhkvMuYB7Z2dbMdLuuUUuA4YAeaQAmI+AP+Q8A01Kby3JSEtvK+oe9LAJ28AUmG3PV4pZ0+8Uu/8WedMID289hYZkiZaJOy8Zux4LoYr/Z1fmsTBcxWu/IugP+hkblHkfFpruGxP305xP4cGv+30d6dAvxzn/vc1Stf+crVd33Xd61e+9rXNg/K3E7/6q/+au+tr3jFK3rP5Yn95gCBQ5huglhlm/DuUCgJTJ4HiXPA/NTRzmr64bh6AT8g8SmxznEg6Turn5IQrnTHWY4AxdIw4LQOoMa6/yV5OpTdX1sPgGU1s7J5NErFnNW9RCiFslV6MIC4ev3Zx/7MkQemPN/XdvfZgY8HyN73xsWYUEooKPtM5h9FRvslIfpu/iFzlILJW+KNkl2K0D73Ldt2Lgd2CvCacvXVV69e+MIXNmuJ7YyVlBzYFgcI9U2QcsP64yEY8xIIPQBzgN+VRa48x/1Z+mVzGArDXEucEAfIwHQpkiA3tz3aoP8A1iZDXUoX6x4wLUHK8UdhAOjA2SZBXbwfq48y4AU9FLXLL7+82cDH+FDspuZUlO0CusrGU0v8jJnvQ6sjxtrqvDGXVArcA9TL+8xb3gt/vEg2cfK5jkJZlp/ft8uBnQO87v7Ij/zIdnudtSUHjjiwrrDsY6JyCU8gyn1LOBPeYv7czKVgjbepiTvXWI7A/n3ve18jqMWr51iL7rGkDZguQREf522ZQ3gD3IFsH+HpUgqZcnhI/DEwbr311lngXrZV3sRb3/rWxmUvmc9qCvkVNcCoPQAd8ConlMOyfHF/ngIhjHWsassLa/dqoPB4sdBTnvKUxpqv6UvZ5vy+ew5kFv3uxyBb8H8cAHwsOa5ZfwRdCYZLMwrwboK4NwlhQp71AwBDQBOWYsCOcbm7thbcy7YCJ0Afbvzy3Nh3YMlrsA5QlHU89KEPbZSZ8ljtd+PLWhwCd2WZC+t4CMr24D0wtSMgULb6YQkSVohyvZ3P77H5G56bt7zlLSt7KXSBu7bxEEhItmsiD0eNMlj2ieVue+BacI971fOHf/iHTV+m1hll5OfuOLAXFvzuup817wMHCDXuUoKeACL0gJBEH1YQIGQNL534o44lXdXKY1X7ZCl1ucApFdzr3p9OYMoK73JJ14wLq1eclIt5qvUM3Llf1d8FQngNCI1F1/loH8UlQgwsUSA8pS0UOa/vHSPX8YasS7wXxoWSJdcBCC9JwjGscNa2fkXGfVcdPBfc+5SCWgL0f/AHf9AsqxQGqCHjIrRDgZhD5imvhNf6biJ/Y06b8p46DqQFX8envGoDHAAcBCILlgUjg5zA5cZ23HeW3U033dRsBbtEkpVucJVTJLggbeu6FF166aUNILK0usBdPZQZrnECF9gMgWdNu/BHf6YSJUTcXLZ/m2w5a5mfc9dcc02v5QxwubgpM8aIpQesgBDwqiHjUNN+YCz5a10y3uYWxYiCtAlSbmw13LdMklJnvk8B92grZYc1zq1fQ647c5RrsA4ZI2XMVUbXqTvvnc+BBPj5vMs71+AAqwDAin+y3MeIS5p7slaodZVHOLGuANGb3/zmZnka78AUi7OrXMe4e7l6veSkhmQvE+7c+OvUT5GYq/iw0sXivfiFtY70g3Uv9opP3jjn/fHt+KvELx6AN73pTQ2gsxKBmT7dfPPNZxWyIQXGeMRGRmM8AzD6apXBXNJH3g5tskPipsDK3Danxctl2eNNm4D0OgoGXrD+u8ou69JXPNamdYkHYE5IaN168/75HEiAn8+7vHMNDhDYALsv5thVNHB/xzve0Vj4XeeHjhHmLDd1hlVFSLI2gdw6BBC5S1nlUwgIENCsyXWIAB8C0qGygby2A3n5AKz60mVOIfIXbRRi8C56f7wH+NcmYEIhE99mofeBkONTxl+ZXOttZaNdf99vS+0olfpLwdokKR/PAGK7//jDGp7S9662KmPM+6H+pfrqeaGYJB0OBxLgD2esjk1LCQlu3TkCjvtectnUeykHrNK2sAUaLK11YotAca5FyMLjRViH9K3WJd5VD8sW6D3+8Y9vMv7b1h7lAVix2Fnz6hNWMRZDBHyAPIWqzXf3KXeKFc1TYY38E5/4xMn5GLFW3XjzmGwaqPRd//C2rXwB3SUS+/COAjVErjFeS1GXQrdU2VnO8hxIgF+epyeuRAKL8BUzZyHR9NtCrWSK68YEU3l9+zuLdQxcynuAH6WgC2QIYjFx8WYJd3PIRjas3DmED5QLMfG5RIgP8bu2XNa5vABAH8QVb5c9fMJ3bnsgWwvMlAVeF2PebiNLfGpmPDexdnhzn7aNEYDloRF64JngbTE/t0Hq0UZtKAnvlgJKimVbISvrosyso/yVZfm+ZFntsvP38hzILPrleXqiSmQJybDlBgwBTohKOAMW7cx3lvcS+78rA7DWAKM6hywmSgl381VXXdVYnFOFL8VgqkehnCSEJnAFonMIgKwTx2/XyVqXZEdpY9mLqePRXAJAYvmysEtQBvDqqsnBKOs29uadMIE2mnsUpZh/rjUHlS1hkAVLIcRjbaGQboPUIzGw/QwsCZLmHcVV37oIT8yPWoWsq4zyWFtZKc/l9/3jQAL8/o3JXrSIQCCgQmgCEEKkjH8SllztEdOOhhO+XvF6ySWXNEK2FAqEW/v6uG/KJ4tQ+wjyMSLgu6z38j4AZmtZoAEMJDCNgTbL20Y1BPiQFVXW0/XdvesANNBsg0hXPTXH5Clwq1OejJvd9cb4UFOuecTLocyYU+aS8AjlaioAmUNA/fTp082SNPcbY5/mKcWPd0B9lqo5p14u+ql11fSv6xr1APh1xrar3PJY8LI8pl7Konms/54RitAStMRSxSXakWXUcSABvo5PJ+YqggHYcYMSoGHtEJqsOQLZEiC/uTyHwBr4s4rb8e0lLBhldAm3roGKPnSdK48RiGLLMrUj1owXXK3qCyWHkAOAAEomtE/8mBvXde86PJEctwSI4FPsbmfslyLt4yZnqUtEVA/g4flwnCJo2ddUHhgnXiL8GyK8oQABevX62waps6ttSylj+qD86A9F0Vw1JykyFDO5B5SMJQBeu0sPzDZ4mHWsx4EE+PX4d2zuJhxYb0CbddwmwpclDPgBvUSnMdcqqwlQlABfC8rt+tu/wyJrH+/63SVku65zjPXDBayfXLzecuh7eC4ITUKUZUshQPgB8OcAPIEJ8PRnDuHt3NyBdn3a0TX27eum/LZRUezWVwK475RJCqLzXjz1xje+sTohTL8jKbC2PZQBSsGccaqto7yOQhHzpjzOu6D9S4Au/gJ484eHRCikDPXgrzAFwF+XQrFft5y8f3scSIDfHq93VhPwJrx9EqxAjODxRzjQzFmqlpDVAA1FAMjVuG5LYYMBrCn11tRTMsx9gJSQYUFzv+oPYe37UCyei9L9U5QL1+KV+9Rj85o+AopeMEIRmEoy6Ocm6KnLznk1YYqadunHFB6NlclylLx409EmOHjYR/hmPwTKFEve/BwiSpGdAKcm6JkjlLapORZDbRk612ftUjQA87oAb27qD37JMenaFZES6lmz0mOd5XJ4J3y1pPdhiHd5bhkOJMAvw8e9LMWDD4jjtZAEWynAgTsXqb3Ea8E9OgrcCdgxoG6DD0EBoCkJtUQ42Q6VsgAMZQ4H+LLOgT4rkEAthb6+EnD6zcIeCid0tYW1xzpmAbHGZJB3kb7ghzZMAXkKi41XZJnPIYBIwC9B5srS1rsxAzpD4B5tB1D6Ijv+tttuO8cKjWuM9amjbX65ned6LcwP95qDSy4fizbGpzr6PEeeAf3wXI49P1Fe1yc+6A/lXDisj89c9jZU4k3z3MwhSyTxLOmwOJAAf1jjVd1alq0Hmyu576Em1IGjuPNUQUOoEMhDQpK2D1hLYr0A7FqAt7zJPXZIC5d4WR7QB+CS4ljDBBkwBu7aCJTdD6SnADxhZlMVVpJ+sLhYjUIYXZaX9sk8x1MKyBgB99NHCWISzAC1l5NMGQMAsc6mL+32mSNLuq7xnKemdpy1h3KEx/hiTI23NinLeFDgfI+Yc7sPtb8pnXJJancdrC23vE752tpH+iNBM3Ie+q7rOw7Y3W/OcMv3gbv78ZEycdFFFzXPeo3nrazXs2OupfVecuUwvifAH8Y4TWolqz2Wrg3dCGgJ0ClCOMojjMVA1dW3BO2Zz3zmea5zgMmyo3yMCRoCCYCz6GoIsAJxS/SAAcsYcAlPEHIXXnhhA9BjZbG+nv70pzfWJ7ekeCnhRmgDZgCPb5QI1ph+KB9YX3zxxc0e4xSr0ltS1skzQGDG8jO/JfWdOdqZbMyKJti1g/tb34DouhTtpMQACuC6LuFhlyI0VG7wVRu8hU97NkHGjPVrDvYpv+vUa0yUr54+oqTwnJk7xn0KmYvPfvazG2XSPKvhc+TLeGc9pdd8HSP94JWyA2CC+xi39vP8+tJhP/t1YltFYNDo+0C3ZAzrem78Vz233377CoizPiWmhRUBELn0/O4CIBYUy9z9fcQ6AWbKnkIENmBnFWtHZIN7sYdjMrZ5LIB+FwEW8XRLxYAtBcYrXllj+uMPAMarPVlQ2uk+ygC+sHiEPlxDkFJSuGv1m9dDmX/2Z3/WfGoD4UthYJVz2VNS/EXehHv1hbeFgqFcfTh9ZOm2QyBdfeo7pk78Ub92hwvcmLFu1wF6ZUwFT94Pf/EOcuCyKcI3wMUjszQpl4IzRuZUuL61IxStofu0OzxFxoxlXkvG2Zzy7JmXYvK8XG3SLgokRdwcsfKBUqnuIa9Eu5z8vXsOJMDvfgwWa4EHXjJYDbhHgo4HHeiwAgDRFPLwv+51r2usFWAD7CJpjyBQRxdF7B8AcG23iXDUprmxaUJMuQStGHAQTwDLmecBeAFRPGNpaS8ADXALwecayksAdtc72PGNF4RF6DqeB+WwzAG/uvTVdQQ5gG+T+3ldADjFi7IAcAl997qHMgZ4gSASHhGOmEruN3YsuTaIAwzC3VviwsMwtXzX4yvFZwqxEiNMUQN2U8puX2sOmguUuHWSz9rlUtCUq/waMk8AqTHnAaJwhaJc3g9cza3IP/BsmRc1lnhZjvIpzQA7wl/mgLkZz4G2u67MyKcgez4kdVI2p45t2Yb8vj0OJMBvj9cbr8nDDozGCHiyFgl5gsMDG78JmS4BU5ZJuAAuYEQoE+YEczveXt7T/k5AsHSBOaUkBLvrCLEzR27LaAfB83Vf93UN4IersV1e+zehBQCBbHkPABNeAGL6oP3qoRQ4F8Belkfg4etQJn1cbxtXYAzk8cd9U15CA+j96f8YGb85ZPxkrffdT6nxznHC3HyocQG324H/8iGMXYxj+5r2b2NiHChmAGjTRKnj1aE01fB7rD2A3bhPJYoc8OQp8hzgP55TxLTRPPWceGZKxWHOuGgb5UkOAF5Tej0DFA3HHeubFxRMni3jysPmnqT95kCO0H6PT3XrPJiE8ZjlI64p3utBbVuSHtxnPOMZzS50rIMuogwQwM7T8oEoAQGUCCMKQy25j8VDMSBkCRDCBTCWyUeuQ2G51pbPkyHxrgT4KMe5Gk+HPAUgxbpGBKwytVmcP9pE2Gk74cwidD2BXQtuTeET/0XdU25jqbHc+4R4lAU8eCQoW8IJU0m/Wceszpo12JQOFiWe+o7n2yBAB+TN5xrluK9Nnitel3UIgPsD5ngwRsZyDkUIAbiTF1PKcT0547mnAHrmk/aXAwnw+zs2k1rGih6LpxNmNqjxLvSuh5r7meAnqLri4x5m7m3XtetiFQO9K6+8shEaNQJKBwEmoU7IUlIIEMBQgpfjr3jFKybxw8XAljDTljHFp69w7lMCDQErcWF911/WflluxMn1Jaww1lktaafr8cR4UpZYtcrFe6CnPvwgYB2fSsZd22qIAiQRjPJSelhq7nUNYMeL+N586flnXpkHocz1XLaRw/juhTrmr9BOn3LbVbn2UkzMjW2D3RwliGdEWIebvpy7XX0bOmZszVX5KpSSpP3kQAL8fo7L5FaxpsfIww24u8A97mW1WYtMGQAiQYS8JUzicu24bVyjDfagd91U8AFqLBd0psI9HXUOfRJgEQse6nNfGfpA0eDpYK0gVk9fWaxef9z03LUEcE2MnAuW4uBaQMr6xQv384woT7na4hggMT76ZowoArXCXnm1hH/6ri19Yz5Ulvbh13Oe85xGyTK32gQk8Nbc3AW4R3vwlDLDO4PfFLih+DZlxJgBdvw3f5eiWuV4KrBqo3kZlvu67eV14+Ha1GqHdduX969WCfDHZBbUCG5CieAaI0ANbEqAJ4C5MMcEPaHowbckLSwEgmVKvG6KBTXWlwDFrusAFxAnKAEkYAXe+uBTqIC1y9WOv10JgV3lqpOSwtKWJQ08upQCdQqLOA/82iEWIE6AinfymgTgAE7jIJte250nuGvCI1N56/p1wEtbX/Oa1zTg6W1yvB6UFfOBYsNqnqKgdPF7qWPGw3zgwRKaoGxpKyXHd202Z4wLZSTmzVL1Ty1nqhJNGeEd65qLU+uO681ZcsUcTto/DiTA79+YTG4RIAUmY0RQ17haXdO2CAlioFVDYt6sG4DIGiEMgSXriDAfEwZLWnKEMsAN0i9xf20B6IAS7wLI9JNwdw8+4BlgrQX3qMcnAFYfN7W4dyg8cc1ll13WuPv7lgJSsGzgQyhfc801q7e85S3nude1nZBVl/X/eDdkAQKoKWSsgPQ65H7ufnyV4LnvhH+hLAGvfaVQkroSQ7vaTFmMXJKu83OOMQY8H2PP9Jyy8571OZAAvz4Pd14CgdQG5K5G0dwJrjGBDQSASkmslbHErLg+lI0y1gv0gaSYMpcsD0FffJpltwThCcCL9gB1MXXtkjg21B+CXZa/Ty7NucTroc+y+YEwIpiBvvojvj9UPgEaWe36UnpW4j5CngIgPDIEShQt9dcoesYc/7rqi3prPs2n2Eug5vq8po4DQPXU0WoYYbMxMic892PP/lg5Xed5Ba0CqJFBXffnsc1xIAF+c7zdask17jrABmiG3PlAFwhY91oSi5Y1W+PiHXrQtUEGv8QkCXDApk0AvhaE4l5AxGsATCkx2gmgWOksdsfwqNxgJu7t+gSqFCKgrIx1CC8tn6I0RdwWwE5Z5x+xfVZw3+YsrrEnOTDtmw9AgeJS45GQeBZKydz+AxbtMRZJy3KAYs8q97yMWfHmw1h4bW7ryBOKQ1rxczm4ufu2sxZlc+3Pkv+PAx50QDbknmVFs6bEfbsIMEuIsh68dGu7lhXXBxrtslw3ZvVZBsdd2BUPpGSwtmuJ9WDpn74r1xpvLvFbbrmlAXTtwRvn2ksD++pQFsHZXi3Qd/3Q8eijHcgoLsrkep9KwFb8dwgsCXFKTHgt2nVQ0k4dWX3i9kMElAM8upSwoXvjnDEMj8LQvIzr83M6ByiuvEFDc0Kpzsc8nF7L8B3KXVcJHq4hz87lQAL8XM7t0X1AIuppAABAAElEQVSsVcAF6GwdS4h3kYeQuxnYSf5iXbkWoMqEJdSBD3BoW+GOS7SrIQlffWvMgQUlw6dsZaDbdhuyxln4NcCiz661OuDMUY5AW7GI5DhWrzX+Q+7rsm+8GKz4Gld2eV/Xd3UCOG206Y2y5yoOPCDyBIaIIjdk0bG0JJJZLdEOh/hNEcFX84IycMUVVzShjZrx0C5lmEuWZNYqhUP9yXPDHDCfKFLGq48855sCYcZAO7+krx15fLscON8/ut36s7YFOACQWawIWLKc+rLlPYxvetObGrBmxRH2jnHvctsSAgCa+1xZyvbwshQAC6AaiklTHigLXbFlrmFWodgzoQTgY5/r9lIbliqr3FazfcIDcLqGpd5nsQZ7KRzW//Ne8By0lYq4Lj7xZShGH9eNfQI4CXJi6HhM0OJh20MyVk6c188xa821VjIA2r5rgUFspYu/2kOxotgZ6yDtlS/BXW9OCDPYyAdvKJbmi2tifph7FLhDd9fih3FqK7rBl3361EbPkyRL7yjocsXrj3HaBMWc3kTZWeZ6HEiAX49/e3M3YURQs7LH1sQTypK/+nbu4uIFuCy8NkBYasOSs21rGY93jGIgBg5I29YCYGUVepGIc4QS4FNG11IbQoMycN11161e9apXdYK8hDntGAP3GCR8AfT64C1cQ6T+da13Zei3Pd2BO9LvdcoNIB5qu3M8BHjbHr/yPmNWa2EDf3+uN84UpFLxUpbz5uGuKRQW7cBvf2OEr1zNwNEciTlFWSmVlpqyxuraxHlzjULnZUo8OEJAPFBB+qYvmyDK3L7yZRP9PaQyE+APabR62uoBu/7668+6Zdd9eQZQsI69CxwIcdY19yuhQdCzBllwBCPruA3u7mEtAroABdfEpjgSw7jW21af+whe66etAy8z+50DNpSRKcSzweofA3j1dvV/Sl36TMiW7nKgq+1zCa/HvA/Kxmf1GhcKxbp9KdsLTEorvzy3q+8xF4Uw9BuPzDGKBw+E5XnmVxcYmXv2IRDiKZXW6AtviPvs2iZJct/6Hu30qW2njsIq5h4eUFiE7/DBubF5X5blO88A/lHclENJ9myUxLM3FB4or83v2+VAAvx2+b2R2jy8iPVMQEm6mbtblQfVu6bbIB0N93CzDlj/seEHACEk++5RJsEb4B5luZ6rF/iwOrS/bQECE5Y/b4I6ADQBDtzHPBVRT/lJ6LHO3B9WdXk+vgMM9c4l/RCu6Fp3DPQJxTntB1TyFmqIcAdIQjLGinW3jnJRU+e2rzGW+AiE+/IawlNlzK1CwBPWrLmMR+985ztHE9DMBzkUEh29U32fydwD5v4AdBCAdqwm9KQMSr75gq94xZNhS2EeulIRMs/Tgg8u79dnAvx+jcfarfFAeuDEp9/+9rdPcgd7+CVYAd6+BxZAAkZgPQSQZUfco2xCowR5vwkgQpqgJTT6LIGwvgBjCJeapV5lO+K79owBneQ87nXK0xyXun4RqOHqjbp9EpjCD1MBHkAB6tL1Wpbb/g6UjOXFF1/cxF/7xrR936H8pvABXcphDZmvPD6sdUBlLlmq2DVGfeUZOwqTJELjcUjkGTp1ZN135ce0+6F/ntXI7XGeouQ5pSjim+dIKM+cTNpPDowHp/az3dmqAQ4AL8Irsp/HBLvrgRlXOCt66HoPvQd7CgFkFryd24KAe8QLAagy266/uLb81DYWv78xkC7vK7/zCozVpZ88BXN3XuPW7Ntv4GMf+1gDDng9hax80C7tryE8pqCYC9pTe19N2bu+BrgDn1pwL9sL6AEUfrDmpxKQK9+VPvX+XV3v2ZF/MgbI5gsqwT3abAktBUk55he5sWT4J+rJz2U4kBb8Mnzcu1I8zIS67GexQ5aHGHZYdYQbq5ol6YGm3dcAAIDxN5Vs9qKOq666qgF7QkZ7YkOdPvf+UD21S97aZWhHjdVGmLFk5BaMKQRddVBqukhf5RSwIi3fo0iMkWvlVuiz9gO4MZoqePGk7a3gUalRpChx7jU3CH7zz72+L03mMLc6oJ1L2nrDDTesHvvYxzaJqVM39PE8Gd85CsLcNi9xn2deDgoFpz3WUT7vkxUufeS5tczS5k1kTNL+ciABfn/HZpGWEc7+AIPs5xDCBDDrzucUcr3yauJ47XJlvBP6gAeYlJ4AZU5tC8VkqgsdH/CgBuBdy81OQZoaDqAs9QlQfAHQ9qDnxThzlNzl9ZtdSg4B6i1nrE65D6z4GkVMHWX81e8uUqc+8ioAOe5/YA2YjZXMbCszuGKBQ0nGD9iyogGeOUER0j5KSNwr3j1V2SjrKb+rz9LJdcA9ytNWLnuAp9+1Iae4X9zfHGzzJc5v4zOUMvNJ+42J5wj/hRB8GkfPCTKu2iwUJ7m1a466f0ihdY6Cbm5Gudvoa9YxnQMJ8NN5drB3ELy14EDwE9hhKQI7QhoQE9hzBSwBVAJ7MJMwUvYUIrxqt12Ncl0fSVdxrO8Tr1jvhBlgnZKxj39jCguwsusexYungEvfMUIXrwliwpQnIVYQKLPGg0KQjwE8cGCpASr1lqQOx4C3P+Mv6UrIQhuAifvc39UegIl3PDSUA65cZUwd43abtCV4UZ6b+50yw+Us+W7K+KqP56ULIOe2xXgY75Kf5qC50PaEeDbxQdvlcnQph9rhXslxlETzGP+VKYHUunlu+PbYU/iMFaWvizyrlJp1xrKr3Dy2PAcS4Jfn6cGXSMgQXF5eEpYuQWG3LFYZgUHQLkmW9YwBYrs+gopgBjY1oM2tqA7A00UsEpv/hEDFB0oES5sVL9xhY54x74V2EYI1yXCUHWWeObLi8Vbd7tcnFjVhW5L2tAVyeT6+A+IhAWx8ga+6a0hfuHWtZgAUFJNacMNvYGR1hwTQoXYNtQXfKRVLk9AHJcv8loBWM27aAIhdCwznkjlmjK0OwScKNb4qm3VMmTaW+OY7oBcakFxY007PL+8QJVHc3DNg/JRNgbQiwDnL5yg7iDcGP5xvJ4Kam3Jppj6rc/mT963HgQT49fh3LO/2oNt5rRTgBIVNaq688srGIiOkQyCsywSCa24sjyURW6JaPlZaP9EuQokCATz7Xs0KOCMmTsAhVo8331177bWNi57AAwIsG8KYBUdAI4IXqMtpsAEPIYp/fTsKNjcV/5QT9RaHz/mqjfpXw3cKif52EaWC8lAL7mUZ3OO8GWLPgKOWtNuSQQA21Lah8gBaeJSGrptzzphSXoB9DXBGHTXKVlzb/tQXFjhwjXlUXuOY5y6WAZpX/ig5U9qoTPwH5Mq6+uqrm2qAtHlqh0KAbj6b1xQOCrNn3fOCNzwEnlFKWo13quxHft8dBxLgd8f7va2ZICjBPRrqGAFw6mipDaHQ91azuL72k/t2nTgmAOd6FysGqFzdQCxiyFzVLEg5AH0U/SlBVsybkKWAsJr0nWIDCHgOnAvBrA0EJlAN64bl5Xhc01d37XHl9SXulWXgw5B7Xhk1rxgtyyy/y0eQYAUMpwIccMJDytMUSx6oLO01KvsE+IDtmSNPSpuMp7Yax/Zz0Xadt+/t+q0vQlzc420PTdf1jgFo7aOYUTjN5aFEuL5yeIbe8IY3NEsneYyQOQro/VHcKJDqo1zwWnk+/XYdJTPpcDiQAH84Y7W1lnbFyKNyDz+Bx91HwMyNxUd53P1itHMEZZThkwAGaqwMQjisDGAv43rM6mV9l+AeZQMxFqusd2209FBdNeBEGFIEpu4eFnWXn4Qr4Tv0HgDXW3qnvX3WOzf3uooZ/hp71mTtpjtlXygIPB0BMOW5vu/Gb6rV2ldW13HWdFvJNC95fgCfZyISyli6lGC8pPxNJc+PcMdU5Ug92gGgJQYahzlKj3ol2NkfoR1eMMcpxiW1f5fn8vt+c2BaCvV+9yVbN5MDLBOafVgnLMU+IvQQYSgTFzDOJS5vQmZJq4CAAr4AzicBVrPenEIARNvkWFjg3lo3pb8AgaW6hICkULG8h0BB2yggAKmPgNISQEnxMX5zFDO8pjCxEGvJGEy5vrbc8jpKhLEy5pbPAXdAbsMormqKope5eFaEhSgpU+aDutz7xje+cXAcyzZ1ffecCneYE22A7rq+6xiFRlLhpnnaVXce2x4HEuC3x+u9rYlAs/1kWCgsK1Zgm9rrXgk37kKCfirF9rNzAGJKXYBe3HBs21meCG7+NhHkLDaWuPM1lntZBrClCAVvy3O132OZmpBBH0V+AFdqSeVv32uSEcv7+74DGWA1FArou9dxcd0p4KLtoWgNlbvOOeV7FihJvnODG/uSKAHCQNzrcgmmzAf3SmxcIo9AWXIgTh2Fy+aSMWgn0c0tK+/bTw4kwO/nuGy1VYTZc5/73LMWPFAkOCSUcaGzZAAd6x1QscD8BThb4iVOVwNiymYdAb0hS3NJBnCjyhaWidxHBC+LSKIdq4irX4IdlyiXqv5NEeZRDx4BX2/Fq+FP3BefeC+zn+XYBXC8H5QxY6DdgFBcl+uWK15SHEsNsDu+hPUebeMNWMf7AmBqCR+B7yZJ+ea9fI2xMAaA5ebGg1oC7DwCSxEvirk5R8GONsiJGPIKxXX5eZgcyBj8YY7boq0OwVkCkO9hOaqMIAEQgJBV4zdXvj8AypoBoIQ2wUOYEYIEM2AE5sCKksC97/5tk4Qhlry4cVuosUjtMS6bmFs9lBh8sLRoHTe7MpRneZFlWJL1xgjPtAN/IzENz4wVJQk/xeQJdyDrHIuYdSnG3WUdU1i6lISxtvSdx7OYO33XDB1nPSqjnHd917vGvOE12AThH57zSgHuGqL8CTXwbLmXchVKb/t+fD9zlMDnmiVJ0p1QwVxLXN6JfqyjqC3ZnyxrWQ4kwC/Lz2NXGsFKOAGM9lukJFoBGnF0gjH+gCTBHcIsQJ4Q3CURYlztBCKgYH0BekKO1YZ86qs+DFn8U/sBQIAxMKAgxQYlJRC7hhWufeqnOOGdYxSE4KfrIlYc7aBMUQT89ZExce9SpCz1ziW8rwV4cwf/apSjOe3BY22R5xB8HitH/ymswBXQ4oXwlnlDCSt5bZy7kjjH6hg7r728DuuQMuYuU12n3rx38xxIgN88jw++Bhq+d7cTgG1iqUtCsisWgEfAZx2Lt13Hkr9D6BK24YkQWxcy0L9NKyOUDJ4MngR8BSbq1S7WsM82OIxZVxQwmfpD4I6HQKadKb4Ob5W1zioKSkstGRd8m5O1X1OHREzjUOsh0B6xet4q+0MECYUYB1sQA82Yb8Z5idh71BOf2oyPnjfzaQ5RUKyIiLbOKSPv2U8OLKfO72f/slVrcoBVYmkWQdJHXPcs0lrLp6+cmuPqUB+rg7VNIA+1ratMLlihBtagkIIlSz5ZiazmbXga1MH7QSli9QEDv+eELwCH/owRQT6WbDhWRpwHBhLs2klocb7mk3cIUNYS3qwTb+6rR194TFCtR8L1+t716lWKlDllngYpd1PPh/rWUah5UpYM3USf83P3HEgLfvdjsNctIJhqhDiLmKAZszbX6ay2ALNyDTGrN5YsjQGz+23x2dUfSWxCDazENhHMIQR9hrBWXwCyfu/CAtI27uEaAU0Z0mZt1Y91iMUrYW+KFd6uL0IQ2mXuaBug6ptDjsuH4DFaklivFC3tqV1XzjU/lIiHv8qSm4LW4dNYX82BKYpSuzxt25Ty0a4rf2+XAwnw2+X3wdXmwa+xkAHMpoUEQSQPoKxHvSxyCWSyzYcStgAzKzYS/QAKwagMAOOcVQMhLB0Xp+d2BaLc0WXdMZgRNwcUAF+52yJu2dq4tLbLmwA6FJ25hD+njuK+U9+w167POHC5Cy8EX3kFTp8+3YxJVwIfC17dEtaWIGNXLneTWGqsx4giMpZBbz6ZsxS/Tc6JyJMZa3Pfee2LOd93TR4/TA6ki/4wx21rrfbwA60xYl0NgevY/e3zbYsHAFt7HEDQvh7YjFmlyqQIAAnfWY52uiOoxb1ZcdyqFBpl2avdC3dkSruur26WrGtvvvnmxmVbumbb7Vz6t35Mib0aI/2nyMwlb5XT53WW3AE8cwbvubslP1oVoD+vfvWre2P7gJUVD4jXJfP69JEyITQSJIRR/o7j7U9zYcxjo49xjc9NgTw+js39dvvL3zwXSz67Zdn5fbccSAt+t/zf+9oBn6xgIDdEU/cWVxZhTjABqABaVjNhQ8hGTFobgC5A7iNlAdZI9CuvAyLi9SzFLvd8XGsjGUKYm16ftYnVX0vaoAzhCsCBtmEZdVm6TeWtf/gKGO1Db8kgkJIkNoWMMxCk+KxDygF6xhaP8Q54x2ZClvsBHufbBNAkRZqTNbkH7fv9Nk+U0Sagb6WDMMDQ2FNuKEpDmfHlKgzzinciVmu06537mwfC/Ma/uSTcso15Ord9ed98DiTAz+fdibiTEOZ6BsRnetyihPKU5C3AQigR4pLz+oA7wFb5BP2YEAprKQaG0ONWlyTIXYqUSYgDRed5Bkrrh1C3GQm3PBCyC56NYmrCFFGvOm1HaqMgRPHQdn3wB8iWspiU0wWC0ZbyUwiDMgWchDWe9rSnNVa0/vZ5J+J+fLN8D6Dccssto9fHfV2fABqoANEuvjqP98719c1YR0gGyHeV01W3YzwFNi7SlzYZJwmPNn6y53ufN0Z9Nmzy2twuD4owQrnXvjG3kdLSAC/MMaRktPvX/q2/ZTvb5/P3YXPgDkcP9rI7L+whPzwEtP0pILSH3dhpk4BhxEvDsmFhca8SZoRyDbHQgS3QrXXxEo5c66yut771rZ3VuOaqq65qrD4XaCNrnVtf21lTNo0B7JQLAhpIaDeQ1CYKR3spk7fM+QPYXYK8szH/dxCAsJTtY06RQLwSBD2lCf+WIFuWShIcIqAWrnUKjnACXlCetFNCGPAplR3lOcdSdT+w1ZfacetqD0WBYmEb2DFgAsLi40MeCvMJCMeb1voAWb3kgLmqjzwX+GHsnWsTsagsqyvwxti71viZ85QA7fJnTuqLe8wn4YauZ8K8o9Sss7SwbKe6KKDGZIqCU5aBJzwZnp+k48OB66+/fnXDDTesEuCPz5huvCeECEHnk+ZPuBEybcs5GhIWst8BjhFLnyOQCGQgw8Xc1ktNaG3SFvU6/5rXvKZxSQOnWBLXBQAEN0EHeAlf8fSyfdza/rzgA6BMIYqF+ikaJbGaKCRLkD4BjhJ48QI4AyKArm94gP/i7wBRwh0+AS3WOQUY/0KBw2tgaEkikKNg2RYX/8u6avsARGwFTJHiIakhYAnozbMhMubaqu2Rle8Y8I5Qj3HmfSg9RnYXpPjhVx8p03zAG2W0FQ48dR4vXYNv7WuibH1vz4U4F0oI74Y2owhZ+cRzioQ/fZOLYOzX2f5W/839pOPFgQT44zWee9UblgqLWDYyYCe4CC0AwpMCLOZSvAqV25yQAzoEnfLDEhM75zrl5iWQAXbbMu2qn3AGyKxrS/FKkHdMXZZGEd4A06c+6u8Q2QQIP9p5DGKy3i0PiNchwAK8AYc26QOhTfhHbkP0BT94DgL4gQWwDf447w8ZOzwuCQ94JfC0Nnvf/RQa1jiA8zeFvBoV/4dAuK88wGi+mXveBmccSjIGNqUZUyDKe9b5TlmQC1LOBfw2ZhQvXhQKFTAvlUlz25gZ15gvFAueEOM/h8xhYYa03udwb7/vSYDf7/E52NYRTCw8QqpNrJKnP/3pDXjOBXlC3otjWKXAB6CVwhlQiS8DBN+7NiJpt6v9mzULjLg+A/hcA2hYS0D5zFE+AkvQS14s3WsDR1mmpD3liRVz+ZbEumfVritkATjeAF0Aqp7wmpT1ld8Bi7aFh4NV3wb08vr4TkHg2ne/8AAloY+AEivcPUI8Q3zqK8NYG/M5IQ0g+NrXvrYBcUph2/NgTgoZqGNbBOR5ingT9En4STgJ/0MRG2qLNnt1sXIonDVj1i6PwiOZcA5P22Xl7/3jQAL8/o3JwbeIcLrpppvOi2OXHWOJADRWTJcSUF7b950VA2S5QtvEohZfdU2fK7R9T9dvLnngJ1cgLClWKG8B0KDEIPFpMVnX9REgFOckiF1XKg3u4apfN9FJmygflgvWgETZVkqShDXAwSKM/pbXdH2P2DyrPtzi6uYJoXSxNPWVlQzM5gBR1AuEudKnEhBElB9zrq3wmYvGDw+2SZQvSpg5bMzmPAu8WeaofIopY25crrnmmm12N+vaMgcC4HMd/JYZf1yrI0iBQztJrd1f17HkWHVziZXaFUsHctzNLHDW9zpEUdAX1m0QKwv4BWg4TrB2KRpxT1zDjc/S5Vlo01SXdft+/QYSU7P9oxx94l3A02uvvfZsqCPO932yxtXJYyKezwqmJChHn7yqFqi6bh1wV//c7HMKpT9KFiWGYshb4o+yFqGWvj5u6rj6zS0Kxxxw1y68N26AvjZ8QSnjdUo6GRzIZXInY5w33ksWSS1QcU8SSABhLH7d13AufsKqJG1gnXAb11qh5f3t79a02wYX2IeFpF7udjFT1qn4unj9GAE97uFTR1ncAKdUEli/ygdCU0kbgLuQwbpE8dIumdkSCqPPY+XitVg//lO+SsACZI6vS5QtseZaIOuqD39ZvPI1kLbN4XlX2VOPGTdK6NC+DDVlmuvmE4/T0PMXCo75t81wRE0f8prNcaBTotCWLbuhIXpwxR5pvrTdpORAFwdYkbWA4H4CW/xvLsCbl8CIcAuiOHAHA7wlSPmsT67hyBlQLwBTD2VC9nqNdaksQpYVrzxKQxAABJJTwQa/AXuAu/ZQenwCL65y5eIx3mi3cRoiSg0gFWOfykc8YbGXxHLXjnUJb9YB96hfOVP5HPcu9RlJkVOSFIfqNv7ks/GlOJQkB4KnwJ/nbduhiLIt+X37HDgH4Amvn/7pn1795m/+ZpNdKTZF2/uVX/mV5mEXJ/y5n/u5jN9sf5z2vsapFrPr1xH8oVCUAA9EWclzs4q7mExoiucHwANLz0SN1V6WFy5qFlsb4Ln454COvnLRei5ZZgCwzIpXp3K11zWeZwqLWH0bCMq2SvbiuQDYZEINudaYGIOS/C7HqDw35ftxsjrNoTKLfgofuq71LAmReFmSOeG5ouDhWSShLqEcddWdx/abA2cB3taTL33pS1ff+73fu/rJn/zJzodSjPVnf/ZnV7/927+9+rVf+7X97lm2bqscGItDtxvj+nVctwGYUW64b8s1znFunU/lAc8gVvMcKwjQAkCu+nbmMvCdWqayuNSFC8S9gTJlpE14rE7Az7oG8lzwLPU+CxIvuX7lC3jma4iLOJSg8nr8AzRAvg3+5XVj39fZO3+s7G2f500xJkuShD37RBjfpORAcOAswFsPaeebIXIN677GJTlUTp47fhwAUNzDLMQxIuxlXrM25hLAbHsAWCnrgEhXW7os0DkeAiAHZNvlafMc8GKBiyezBsd2sYt+BXAD4mc961lNElxf3NYzTrHRbnUMkZAAJaPPpR9ekL66hsp2jgI0VYEcK3NX5ymmZXhmqXaw4nlbjMMuiQJcKu67zHPYJR/2pe6zAO8hqqU5y1Vqy87rDpMDAN7GMlzQYwBIUQQybSt8Ss8pCKXrF1AC/E27IpU/1r92P9wTCo3vwEpMFPD5BKJTSP0UBSDfB6pD5RHAdvmTW0Mg971wxnHP+tBOaRQta7Ijdt9Vr/t5DZSnvqlknXi518HU+/fpeuO2tJcp+ufZM592QRQMCvsHPvCBcxRZ6+3tRGiOT/VS7aIfx63OzuwXa1avvvrqZgMGS0niz4YRScmBLg4AW8AjdjsEss7T6rmUu4j7mruXe5iwAoxdxOptW/CAswT9rvumHlMeoRxEUA3Fr+O68lPWNqEeMXHlKccabC72qW0G0Dwl68RxAa01+ZYr9ll9LEJJWn1EYF933XXNeu6u8EDch1+WL+pve8zimr5Py/baqyX6rj2E4+ZAOZ+WbDM+T1U+l6gfuBt/uBG7IjoW437T0d4YzjuWtF0OnLXgy2q/4zu+Y/WCF7xgdfr06XOSfwijpHkcMLnFTT3gHkLC8Ti5r/QHGABuyT4+gZA+AzAeIoDtd2wSU3ISsMvcxhPCAIj57kUv+CV+LHaJgGOXx8nxPrAq65rynYJRru2XTDbVAuNKDytZG/XDVq/+JPCxULm5WcM1hDfuXZeUQyCL23YpC+LE2ttF2mrLWmMpwWuMGAnmgQ1WCPwxS54iwPIzB6YqQGNtWeK8OYl/nmuWM2WIgkkZ4W3o49smAXiTZQ/xTAhH0mkfgDvuvN0Iu57bobLz3HocOE+imCQE0Ete8pJBS2y9ak/W3QQlFyZBGNYfocVS5a6uFez7zjXgqi8Ss/QNoBPQhDmBZ9mlOHSbnGPdAa0AwrjmzNESIG5iHiXAQJACiy4BSskgYOe40aO+9ifrmwAPUn5XMlmcb39SCAj+SGjzu8w9cFy82+Yj+jkGZniJJxSlJUhc3DgZu1KRUTZL0/i1iVJy6ig+bz7XxJPDqyNXgLJD0MdYt/th/uB5vD1wX56NUNApdxTQWJevfXhnXpibdk80hraBjeeh5B/FZVN9Ms+GvGdlO5b6bj7arKcP3KMe5634MBc21f+oKz+/wIHzAN4EkYDzG7/xG6tv//Zv73zAv3B7fqvhgP2iWUolEZ4ylQl3m6X0uaLLe/b9O8HGCkdicSXx/tDe2wBPKNmq1Ss3S+Ar78WjG2+8sbHoZAtzz3cJMpYTAez8FBAu6yq/6w/BTTlD2mqcahIJXU+Q6XdpbQNHik5JlGovQgFqgLMLVHl+WEoUxBpQLcsf+46nYqVtgHdfWIUUKsBLcdMGQn3Mk8ErwQqnuNjUhfLmz5ptMXkWsDqBvP4ZP6CI7108GOvHJs7rPwVdHsGZAcUKcNtBkcKuj7aPpbQ5RvEM0jd9rJ1DcV/N5y6sY2NI4amh8MwlwNdwa5lrOmPwBO0LX/jC5qH3gMZfxuCnMd3kZ822wb0shfDg5gzLvjx3iN8JaUlXLPJSSAM54AjASuIepgD1gXtc6zwBaymQOroI6BOe4sqlUO26tuaYpEFgGu5keQEs3gC9oTIIfC/WoWiEBwDQAbO+rHSgaa60rSHzCMBwc5onffcPtWfonPbxLLRJH0IBo4QCZX3Af39dPDYGgIb73lvaKAQEuvuCKDmOCcv4bgMtvAWGxq+cN3HPLj6NA1CifEpmbHsbyjZRUIy17XmFqp761Kc2W/jG2Me1eDZn1UTc3/cZfO87v6njnoXanILa6zbV1pNY7nkWPCb8xE/8xOpHfuRHzuNHxuDPY8ngAQIhrL+hC1m1AKwPuIbu3cdzrBQCm/Am4Ag+IMUdDaAB/e233940nVVYu8zL/XgKdPqIpQkAKRkAcy5F8llY30CL4I7fIVBj1zi/KQIsUq5a1jhLPZQ7508dKTdjWe/aDAyVi/RX/oE179pAIVyalNkV8jAfhesooNoPiMkALn1t1F/tM7YEvXFXDhAr53L0XfudozjsOwFsbaVUTQEmSoHkRbkj5rrcBi8aKuesOY8/Syr1nrUxxUjbYrzM0xg391GstNEY+qslY+v6tlLadf+Ucrvuz2PTOXAW4E1KE89DzPrqIxOEJf8N3/ANfZfMPs5tNSXZaHZFW7qRoK+x9jQHeHlIjwsR4oSGP1YcAUAYEJqsduPMjU+QThGg3MJDmd3qcB7fuUtrN2op+c6S9Ay8+tWvbtpNIVEWNzPL0z70riEkKTAxzgQllz6PFyWjdF263/we81TgBSWCBYw3votdIrwLb0LZ3nW/Gxtlt8kYaa92IImT3PmW13HpAwTjW0NtK77mninX4Is/8w6QmAfrkDF929veNmlulvUZM0om/hjTEuCBOwVgztws64jv+mzO9QE8IDdXzxx5wIQP+hQLbYQBPFeeobLNUVf7M+Z8TdjIs9HXxna5+XsZDpwFeC66H/zBH2we3G/91m9t3GseSmSCEDS///u/v/qt3/qt1Yte9KJlaj8q5eUvf/nqZ37mZ5rJrh6ChpLx3Oc+tzk+JMwXa8SGCpoCXPp+XIkA8hfkIQeQxrbtwoxr+j5reErAAydCnluZ9dsn1Mp6tJF1KhHs9a9/fQMYwF1iECtWu1llPC5csX1gqz79cy1AdB/LlhJdQ8IAEgmBROkBorSsC1xd9SuzSxElkNs5E/jIquWCBvK7tMq0mSIFtMJLRGbxFJAhQgAhw7r63XdMH3lfauZaXxmO87xItms/2+YZpZfCFCtDhsoZO8fbZJ62CX8oxLxGNaElxhug9sfYMH89R13KX9SFv5QVYzBkxeuz8uaMR9SVn9M5cBbgTRJb0L75zW9u3PNeAekBp23KlqWNWvPq/FKg+4Y3vGH1/d///c22twSGB9MkMxl/8Rd/cfWN3/iNTXJVTbeU0ydwx5KBasqfc02X27OvnFpLqO/+QzxubhHCU6j2etYH4CJ0WOMEELDtcnEDKS5noBAuaXOJNcNaJZyUQWCy4sdi4K5TF6/M6aOlpgS8OG4tUQhYXACgJICDZ0sTXrXBjCD2nFNW2qR/kgKBF6AaAoD2vfEbf/Has66/5AtPAV7XkHE1DpSN9vON7wwSOQBkylQlhOelrdjUtKl9jT6SnQCwTWSDZEN8NNZzCf9jCWJZBv7og/BXjXJb3us7HpqzVjx45oZ4SAmQUKgv4e0pyzM/yPcp8rC8P7/P58Adjh7W/+m63QTxkHBVcRduYnBe/OIXNzE9+9+3Sf0e+lA02ufbvyVqdU0u111xxRWNO5jFsU0CJrJp2xp8uw2ACBAspTi1y9/n34SPN7KZZ2ME3IxlLcgrzzwCAIQ20PJnXAhfgkeZPrnPgQ1hq3yxZpa8eR/AIzRFAZ1CxpZ7nqu7tMaHyiCw8YNVWhLwIyiBWs9jW15e/Z1y49ko8wNO/V8yJLduH+ElAOhK0Ou7x/Hg501Hyx4pVaxPCob+GQ9/QH8IVIzrG9/4xlHwoqABQeXVEKXBfDFHKGk1ruehcs2tK6+8svPZNobmBz7UzP92PbxNXbIZb9Rrt8Ix2dMus/1b++QQ8EgZ7z7yPOEbhdCzpF48ZyRScMg2bUraDgeuv/76Zuv53hEjkAhFk5B7EhE8rJqlyMP3ile8YvU93/M952nu3Jm0SNphDXH/9NHQxOy7Z4njBJVkK+/WHiJu5E0oUEN17ss5PBI/BFpjZL64fgoRKgAIf4EzoU0QEUBAhUAnnJwHcgQmYeQ34YZcc+uttw6Cu3nqj1AjYNVF0KlDrFXbPTtlXL6rH+YqqzPi7uU1gNFz6byylyLtKkMlFBxJkmLQQ4RvXNks0Zp4bZSFN5IPKVEUiJAzcR4PuYgp+MC/bdUbD+vNayxTz57xrAV4/eHtcb1VEORQrWIW7S8/zQVj1qW8x/wCoMbbSokaxU3beFwf9rCHdT4PPCOep3XBXT+0h5Fl8yogH20u++h7zFvhrNIbREkbUtTa5eTvZTnQCfA//uM/vvrlX/7lZjlHqXV5Vewzn/nMxVrwvOc9r9EyWAtcPASNh58l5cH6f//v/w1qjYs1ZEMFEUy0bA8JId/18AI3SVsn+SEArBHn7uKR4bnssssaYGsL+9qhIxT9AWGCDziVdSnX+XK+K5uAtl9Bl2vfeVa+pEFCDeiav8aSUmFes8y42v0BzTGAZ/EA2z5vFAXFfFkK4AEzhYG3Dun/ox/96Ka/2gLshogSDsCGAB5P9EfZeAwkXC+PoYuMDwVA3XJxwiKNa41Fbf+NMSVizIJUp4z3WPVgPF/5ylc21isrvkaZiPa1P/FniCgxFEvzRdyea50S0yZz1xI74E4Bbc9V17uP7MTzpQgPGXm8NWOhxAT0pbi+TDmdAP/rv/7rjatl0y5tk+V3fud3GgvXw0UImrgE2DOe8Yxq630ZVmymFAKNG5IQ1T/WI2EXVpLjJxnccV3/KUKEsHlAeBO4juMPSw9gLsUnY+Kvhgj2PguOd4ZiYMlfl0BWPvC3hlx8EhHSQwIfD0p3LSFO8cUHcwYPPDc13oCmwpF/QAWoAVFWmLi635QMyucYwCsegGpf21OGJ8oCkAATz/HMMxBewaHmuedVr3pVYz0KIwTZ+GgKxXwiW/qIwideXhJgYw0D4HUAvuZe40qhkuth7hsP98W48FyZCxSjPiVXe/G69MaU/Vnnu7ZQPnhKuxSLdcrOezfHgU6AF7PyEG4a4KNbJrW/40rx8AIpDy9yLB+UL4x4uPi4ewl2RGDhUy0Yf6G05b4B42hPWSqPA6HHpTtE3K4ELhc9axcwDwE8Qe46c4N3gLILZIAU4W3+ABxKD0utBjz62gfcgR73MOAAvgA9rFj3USr6vBdRLotTu9oAT/HhjQvSN9fFHghxfOgT8LqeizgAemqfjZ+5NES8CuZZe6z1v50LMVRO17kpzzkeBh8pg1OIQgWEN0U8WZbQmX9Jh8GBToD/pV/6peaBes5znnPODlS2rhUvTprHAZr31BjyvJoO9y6A7m+bRPh3xRYd77JgWeWur91IB6AL0QDQsYxpwl3/KQSUbDHktruVm583iJIxN0taPFXyn8RBigQvEwFegpl6WOZjAA9wATcwRL7H0qxyHNWpfKA9hXg0KEkB8PFZWwbg7hrf8n4KDiXiTW9601llwLbLXOI13oayrPb3bQGiuTU2v9ptm/LbuFE+t9WfKW3La7s50AnwP/ADP9DE4bhNS3fQFE20u7o8mhzYDw6Ucd0+4S+U0rYWPQM8XFOFPiucpTu2TannTXIZgByK14vF64OsekpA6dYf4rC+8gp4tq08oUhQQLq8Afpeq5BSAigDCMCfOXLbt4n3oit5sH1d12/AxUIFMpSRWuVKWTyRAHyI8J3i4G13XPXhOZKpP2b9D5XrXPBl7Lp1zmtjqZytU9bQveYd/m9bCR9qU57r50AnwHsIuel26Rrtb3KeSQ5M5wDQ8ccCAbasYkJfzFt81/f2fCc028KdsGZZK2sqEY6AtY+AKeH5lre8pSqOKhYN3FmawFg4oM/9D9j105Il/aQQcEfzLLSVmGgfBadP+Ylr4rN0bQNi97YJKEzlW7iseRm8b5wiAYTxqR0zb9fnN4VMUlppqHRd55i6eCHwBy/Nk65+9N3fdZybvUu5wAfKSvBY+1xX086uevC/b+y7rp97DP/VlQA/l4Pbva8T4K+99tpmjakM1qTkwCFzgDACOPFHiAI6QE+JPXNkaRKqrPL2sizg0AZ9eRRDlvUQrwhgAh2QtN3UgJQL3/KmKUlSgNrmOwAQ0GsvYAoACdACNIQz5Z0noQa4CPF2O/v6VyoC5ffyesfH6nUNi9sYUb4QT4VxtJxMaEJfJADqp78hIsumgJG5YIkeD8FYW4fqjXOWspUhBeNizIyDvAr8VafESXOQMhKhjiij5lM5fYpazf2113iO2kpv7b153fY50AnwJopd6+JBi2a97GUvWz372c+On/mZHDiHAx58c4cQ851gZZXuKrTD0pZ01F7mROACRDudxXpqYB/LsghLwAhsCHux6SB90r+5hD9dwCk+DVC6Yv41dXHP+gPwYqSnjhLoACOvAUDHC7+nkHIoQjVUKkL4q49AuSS/XQckusiYyG/QVvVauleWAdS1iRKEX8ITAL/L7a9+OQbmnrGcQgBWMllXuVPKoaAIyYTCoy/mYju8Y9wpf/4kJZqXY8vRutoxdXy7yhg71qf0qNsffu/qeR9r+0k83znzf/iHfzjfJncSZ8MafQaK4qQ2xSCgESFLWLG4fN82WWfdZQ0DGEvfWOKsQgJXmwlgy7IABwuSYLZ0CWBRWAg3n3PdqNF/ZZSkHt6DvnXh5bVj3ykf+sWytSIBUM4R/PooHNG1VW1XG0pAotTJ8m/HyVmu4vBllr6yALBNtPDBqgSehi6yhDKIMmNc8O300S6QxtO4mmcME4oZoJ4zVgAKwJsTAHkOaZu9G8I97/ng9hcSGSJ1WlJpDpY8HbrHObzbBrCW/DTX8NxYmG9l2Iuyhv+7eO7HeHWSzncC/Ld8y7es7BPv4Uk6ORwAPGF9s7TKh7mGC95TUGr4AFM8WSKXmOk2BJB2Aghu6y5wL/sBcCSaARfZ6NpOEPtuS9xor/azvP0muENhYR2X/S3L7vsOzEoPACCKjWX6gK2vrKHj+qH/ALXWCi/L4y6mKNT0DxAFr5ThO1ezNpRWsHaQKazUUHJca4msc6WnpGxL33fgEjkIVvdoqzk7dd52lW+cKX+UirIPXde2j7lXRn4JbsZ2bElllAMsp64512eK1abj8OqgTFBEKH+UljYZX3yzsZO5XXp32tfm781yoBPgCWOaZgL8Zpm/T6UDY0I2XuEqHgwcSiHV116aO8u9DwwINhbxFIukr66x44BD8hW3dA0BMSAbS7jE2FlvwJtlohxAFUS44Yu/SPSqtfJYxBQFFqbvQDSsnL7NdKLeOZ8AXn+mAjwlRDJg7Xp1vMOjcNFqK8uVFc+SY7Hrt/HXb/wFYMBdjLy9Xn5qX7nyAQ5FAbguRUBTDN2n9npGxgjfIpRgriBz0hzpez66ynS9nArzo4aA6JSQSk2ZXdfEfLWNsRyCIaKwmYNTvRFDZea5aRzoBHhxo2/+5m9uBB/hF/TzP//zq2c961nxMz/3nAMECqEUgoXg7gJs52n+4tFBXgDDKqKFl9ZZnC8/CfehZCdtoARsA+ABCQtiCgFAQEQgW0IGbPsUBMLaOX/6IysdiJbu4766CWzgri4COQAAbwDU0iRkMrYsr12nsZZ/w03MQh4j4Kc/6jKHKD4BsvoYypA55lqEZ/gILIDz1PHqahOFzBjYaS3c4l3XTT3GYtVe8wJgmSv6Gc+U8vRXPykuvDtti9XzMQaG7Xbh/ZTQirlkrDehKJZto8xZwlnbH3KB8g/kY16U5eX3zXKgE+B/9Ed/dPVDP/RD59WcFv15LNm7AwQnkCOEWE4+CRjClbAijIGMhw3gIy5jrs42ccERGmNWBOESwrtdRvwOMIvfm/okeKe6uoGThCh/3PMAt4bcJ34vmYvVNgTywL0Ev7J8ba6xDst7ar4bd8oH3psXY0T5o9RR9Gq9EixWyg43NmXQvOoS5OX8MA/xi4ek1m091nbnAbC5HRsR1dxTcw2lB3DzarHojRfwxVPn9A2ox/PULtP1ZVimfb7v99Q5oY2e1anzv6/+9nF9lZPSzq1oX9f+zYrnVfMMlPOgfV3+Xp4DnQBvP2qTUoaqiUmDzYFZnvlLlwiYrI32AAKfNok5s3SM5amjLGsWB7ceQWW821RrQQAGrlcCu4sI9CWtqq46ymNTBSOhqI3eGDdHEAtniTUCuK44suPi/BSvPtrE8wXYjatEx7C6uoDe+FH8hAw88+ZIDeEbgKfkKNe9iCIzRpQP4aCliVIqHDSmlM6p1xh1KS9jZQHGtlU/do/zXd62ofvMYc/0kkpTWZ+QFA9GrVwo7/Vc8IJsYlzKevL7uRzoBHjaOBe9icIN6WHknvda16T95ADw4O6sEZqEvpgiQe6VmASJh7dtgRIWNULGNVyjFIgut646tmXBq4cyUWuFG01WGQ/GHHCP2QBYKMaUHCAALCk9eEPA86bwEPCoOF9ae87X8Dnqqv1Upj8CmQKCN8bcXGGJSYTzGzjHpjm1fANYT3va05pkxpJvQJ4FaRvdITBk1eHF0kSx5VHYJyAx1hSoWsUJT8yVco7U8IkCQuGKTXpq7qm9xjNFHlCC55AQlHmyT+Mypx+Hds//BsVarf7u7/7u1dd93dc1E1IS0utf//rVT/zETzQZx61L8+cecIBQppTVgHvZXMLwda97XRP/5T4jlAECwUL4szprgYci6FXCBFm4K4GIpUIUik1YqGVf4rv21liQcb0cE4KnNqYY97U/eQ2AuP7iG8Dk6raK4Oabb26sW6CmLopQ6WXQZgJ9aeKdAe7axX3LwjPOxiN4pD3WlVMOa8GdsDdXWO7AtE2sPF6kvvL0vSv7ul3O3N/cwfq1T2Se4X8t8bDN8XoBUGGWqcrBWLskMDL01uHrkAdrrP48P48DnRa8pUMEf7iVaOrf+Z3f2QgrllrS/nCAAAfuLPI55KGz/torTWn/3JssOqAzBZTjWoI/wItlOkWozWl/+x7tZpGzpMMdzZLmHtQWc7v0MojZ9oUW2mWP/bZJjbrj1bBxvXYAd394zFuiTsqQ9rKsfQeySxJQAXZi0ohFbb74TfkQn3d+ClEMKAksdUDeRwBcn/S3TeYHJWdTpGxgFPJrU/VMKRfv5Wp41ihYQxR8i2dq6Nquc+a7JX6S2/BhXVIWuTB3E6aof6zfcV1+LseBTgv+MY95TKOdl9VY42yQk/aLA8BqXWuI+0wmM4HCAmCNzxWO7nO/v3XAnfWnXSxhCV88SVy/NQKL5UqYIm246qqrmjKUc/poU5SyXQCoywqdM8qsGyDOWu4jfAbuxq3Mk9BmgnkpAii8AvJnADFAxztCFvDHBkRDbvSyLfpEuefZYZ3XKEXCFqUyFeVReLqOx/l1P82dfQMTzxa+WxY4ZJlTvljgQ9eM8YdiTXGltM99jtWhzZY6ypyniK7TJuWte78ykqZxoNOC/97v/d7VM57xjEYYShBizRM+X//1Xz+t9Lx6oxwgKJdyR1peA+x2HSNj3QFJ+QDc5mGFYyRgZt2wICkQfXF918n+f8pTntKAm8x4CkKUwQoVDxVTpDQsCQZAGw+H4ssSjrQNSAJhglSbZWlbX7wECROwZLUjsp7t0kfZ8SxrI+EtV4AShedAl0cHP8L7EoqHceDqn2LFqR9/20rEkvzu41WNIth376aOA0l8vfzyy8/yklLInY7PwN3YrAPK0XZlKov3VS7VlHFThvAaQ4+XR5uROaNtc9z0wL09D5pC899GOdAJ8BLsxIC8K5qQfclLXrL6tm/7tup47EZbnIWf5QBhPPXBPXtz6wtBTMDvEuCBO/Dr22BFf8+cOdOAtsQ9oNMH8gQcICE03RfZ7bGTGje5Nbr6vSQBlhCIQ+XyGriOsAyPAoHsudPHdUif8UV5Ae5Rnj47jigWvBqURIKc4hMgpB/aRmGhbM3lE48FsFBXqaxFezb12TcvNlVfbbn4AMzNQ2MtZKKtgLNm3tTW4zp1USAlfxp384q86FN+PDPmgHYZs5iXUac2UpzneAwp5ksoLtGW/KzjQCfAey3jj/3YjzUWBiF5ww03rF760peufuEXfiFfNlPH161cZWw8uEsRK5drbxdE0AGDPnAv2wR0JH5yM/clpxEmQkri2lyM1xy9YhRgsVRZrACWAGTpLknKrLFQKR0EfQl62kzwU3RYy3OIG1geBO8At7r+Rayc14NHLkg9+MDKH/I4xPVzPhkIyqZIUCDxRp4CUCv7PqfsoXuA1T6T/m/LZa0e84Ji5xkwDsJfkQRJqTMXzQ/fSyA2XuaqP7KG8mhumTu1pH5et30fk9r+HNJ1nU/Bd3zHd6xe8IIXrE4fxSvLQeHSS9ofDnj4AONSNNdKW6J+oF2COwHIgiBIuiwOQoplaZ/4UiCVbXE/wBR+AJjKKfvIYmpbKeX9c74rjxIxRhQB9fssiRsTQPOkSJ6cQqwkz6g+srSUTQGy+6SQBCFvzkSd+IGPmyTlc9Vbhx9E8dI/Y74JwkPzJ+lcDgBvf4B8LJ/KPDE+kikp3jFPzDHPnLBX13N5bo3/G3f3BtJNKnPtOg/5Nz6ReT6NVTyrc/t0HsArmKbGLZ8PyVy2HuZ9u3oICRNuvxAYJjYh4jeL86abburMumZJsEL6AN4oKIv1INYcCW7uYcm4z8MEBJfwhHheuLoll40RgANEXW0H/JHcJOt/bAkfS138Xt0UjFIo6L8/yXFtMt5LKojt8v1Wftv1DPBZk5sCeGV38bWrfXnsfA54PijEFOi2pe6ZM548YvJFhjw/5qWEwa45cH6tJ/sIWed5EC4ji8hEihiPCfnkGZ5D5wE8IUXj/43f+I3Vt3/7t+eDMoerW7qHIPdnMixBu4q/A9twI+vH1Vdf3cSOgT6wZNFaq90WNgDKfQTJEBFIYc0DOgLHPHe/B4fFvQTAAxauzzHQ1B4xTm7RPiUaQLGy7OHNIhc71c5Su9dvIRVzwHnCgeXuGOWhBPo+/tRc03dvzXHltxVHIRJK19wwxFi9hGLpeRy7Ps9/gQNc8fbTGFqyadwoAcI/5rswjzkaSjNgolALje1KpnyhR/v/zTNNiSfjSlnuOeFBEYqM/JipvTkP4BVAK3vhC1+4etGLXtSsH45CX/ayl2UMPpixB5+EJ+2uxiVc01yTaBcEEAmHIPMvEnlotSw+gsJnm2qtQEBuqZiEo7Zb/tRRUhFwJLTWIeGAms2GvKedu7wP3Ms2aKs/Y0MQ4BVtX74Et7sM6ZIHvBSUAxuTqKNL83e/sgiTrvNl/et+V345tsoLq4+SM+admFq/54GilTSdA8aJQl3zwprIY6GEmptW4Bhr84o73/zclTyZ3vPd3UH5/f/t3XnwLFV1B/BWcUUUFYOg4EOfIIsIKLLDY1NZTKmx4pKKWimNSco1aiqGJGapVEzU6B9qKkVpXBI10YqJiqL4AJFdIfBUVBB4glGUCIJxR837tN4f/fr1zHT3dM/0zJxTNb+ZXy93+d7b93vOuefephyNWz3jxV+WqBqnmj6vlQT/mte8JjvttNO2qXXMwW8DyVwPGPhpyV0QPAKdl7aN6IpkZ4DQmUX9GrAFZXEXVkldCxQxWppWtialqd7I2Z7ybcVUAhe5JVAf//jHtyE16aojVzrLnRVkAJR33Tp4uH3sSTGOGA3UlJm0bj25q1ln7rOiAMasfdbWuLTa4pHuk36av03HfLNMLFPUd6vapHjtpN+eA3VJKwGkp73LUwOT0lnl84hZnEQdck84wZkHreh9S+d884rxQM1rXCmWZai/PRsIfJIY/8Q/dELwv/mbv5mdddZZ+aA3KeM4Pz8EEIblXh5KD+g0wnVtoJyHIDgkRJMlgu0sgzNoG0Q2btw4sn4IpI6kwb6oSLgP6SEZDw6SrzN/Xs6PkmVjHe3AKmWhs65ZOchW2siH69hv9eNSF11sMxJ1qONS5mHYtGlTbUI2f69N9RH1lC8LPwncWV68F30JazrtQVDMg1LB+oN5MQCveE2d3+rGHQxv+BsIYawdGCSUqdT2ddJb1WuQcRNyr4MTj5sdNr05sE7/rpPmsl3D++bZnCS8bXWmI8vpVFrwHhrWjIcvZNgI0I5ZuNMMkgjGVq51LcmuEUF0yDx5IriQ7cEwSZS37bI+igNXMdIzj4gMEDBCsMd6cS5sXDlo1Z4Xm0Ept3lxAUhIjRfCXLi0kHN6wU9KzzF71VMIKAmTiAgpFgk6pTPuG+HxFHiZTtnSgred7ihXZTf6uDTrnlMfBD9q2sJxipH5eHO+yqFN4egzSUxBwL8c0a0uBk5YmZKBLdJPAnefFC/hGfKhDJUVwHTPMn8jGP3EM9G18MLxbvHEhWyLQJV3a9urfnlEf20qlQRvsLXZjQfIJ4k3ygnACxkOAgZRRGJAa2OJIVdBbZPIpc8aJ0+EwcDAW1cQchuvA/ct6yJt33rIIYfk1gulFtEjXC5kwUOurRIWORcz8kaeiZAoDche9DBvQFJaqtJwTPr2DOfKRESjCEb6bdqXV4R1lrwjxXIY0EVFU1DavsugmF75N+8AL8YoDF1P6WBIUDCVEZ6sPWWjJPF0pDn7YvoUB1MQFKRRypjjsLWXurIQWIhbKCs7lFz9QH8qKgPFPJf1N4LXTn2ItjclpK3mZUD0Ua+u0mzi2UhTbU3yriT4P/3TP83+6I/+aJt0wqLfBpJBHDAoWVbGeizvXDaugO5DLEMQFhRSNCDXsSRY2uaz2w7GKSrf4I+I04DPqlQWUxY8IxQnmrMpEAMUixy5GBQNXFXu52QRsY4vFQWDsgAAQABJREFUv/zyifVBRDwJ3PXyrhL5VxFd1bXFYxQGVgICVQ95SSu5BsUCpNfcVikBxbSa/KY4sq4pP1XC80JBSl4U3okiURvMuPBhCE/tUvQyqA/MivdU5eNY8mJoO/2ryhKCx9lnn51v5es5mqfCO6oefRz3rLVRHJuUxfSJZ2lU326S1rJdy7NhXKnTj4vGdl0cKgneAx+yWAgYkNI8OpI3KI4Sgz7rN81RjrIaR93fx3GdXAc+6aSTcgt4nNXHekbMSKSpGNxFrCIL87TIL5F7SgvRwRCmlqiw9tNDyKpn7U6KeWApIg1WuQFukigXsuWulldZDMRFgiufL/+PpJAgrHhF3E8ZkjYFhddHu7OQeU5YWKYmkieinF6T/+VBWbMSoqrMXLbI27TSKKXFfVzsPqzvo48+Om83aZty0FfEGNQR2GpTHpoqci+mYRdPea2KS1nfqFJSi5hM+xvm457nadNf5PuNYTxoaSvtUXUxjtSNNyqmUUnwxQvi9+IgoLMgboMnUkIYHi6DtoHRedMvOgtrpq312xciymMgOOqoo3KrOgWppfyQlcFeHZW/qSAN1lyyVJHgOBe6Bwp+kx6+UeWgDLBU6xC8NBCih31U3Vi14xQ3abiGkqDsys07Mco6kI8ANZY0RcfSuuJ0g/SaSiJ3pMH9XxZ9j2XPs1FXmUDyiIiyxaWpn2i3Op6elD9lK7V7Olb1vWouZX2jyTxwFWZ1jsHe8xayNQL6siBEMmqcoZDz7rWRIPg2qA34HlYZV5iPwRSpGQgdZ5G2mceZZXWVEZHb3EbZDbiIQLmTkuK7jRjkKT1J5CWPUYIkKUpthRXPWq0rrFmegSqCV3/TEqZVkLL2hY3yJY+CAdTmIwixTtCUgd299olPngPxB4LWxuEyqj7Id9999809F1UbpfCYrNviOWhC7ikvyhLlg3dRu/k0Ef1/lKJTTodyov6wXnYxNtRVtKbBok1/mia/RbrX887jpb8h+aTEe54ow6bG0xjetF5B8E0RW6DrDYJVZLEIVdC5fboSZChwriiswnH4INVpBibpN1WoeAyq3MOwYGkTrmbKgPalQJx88sn5/LE4DAFkTV2uiN58tkEGHocffnhu+VMU6gplkiWC2ItKVPF+U0jm0tsSCo8Or4B0WD4+k6ZK5I/c1auupap8TbwDxTou4u9Z1HUWeSwi9qnMnmVErm8bq+DlmU/9PF3X9Lu7EbRpznF9IFADAYOtQTx1+KaEmbJAtuW5dkRomRbir7LuPGgesLbi3qZkppyjhKvOJjqprNJmgdP4WbZIuim5F/Oyxh7Jm+LhrhfgZtoAsVI8Ur7u4UXh4TAfblDiURinULLe4TlN+eRrysE0k+kmnoxRbk3XJlEfUrctpK0uqyLqqm36lGmeoz7LNaS0tYPnqEsJgu8SzUirMwRYztzPNt9I5KLzs1hZi02J3uBenoNFjFy/pgMuu+yybcqObBM5bHOyxgEut6YeANZmlVBylLFIsuk6ljayG6ccpGsnffMO8CCIHYCx3yldGMrfQEThSpZxkQxFS8O5bP0j+GnJXdm1makWfYECwpMxbic+11n+xnpXXuVWXrEclBOWvWMUFtcoI0Wqaf+ahOtQz6s3DJr206b16Zq4mua/qtcHwa9qyw+43siMtW1JU1EM7I6LDt9vv/0azZGWyT2lywK23E5gn6hs8+YGfNapSG1El4gh3VP3271NSY31WCVVCkrxOkRHoaAMTSPqbv7eXHyag2bdcbsLFoQjMkCAKWgzBT1yKSIL3gTf3OmUMdch+FFL5pqWV7raRkxCiq63GqAsYjksA9V+ykCRS54HigJMfRC+oD39y29KHRzc14VQkChG8h7Vvl3k0yYN5aHQTBNrMilffSEs+Eko9XM+CL4fXCPVlggYCFl/lmyNEmRjwEDMdS2tcXO1lsQZ1Ll+WaAGdtYcZQIBUCiarhVWPuQ2rh5V9UNaVYJ4EC4ir5I23oKqdBzjkqfoyFNbIHyEWBSk5eO6zb9aZgcn9XYf65q3xTvtkSdlp5xGMb0mv7WNdkkxGohbOZRVmfQJwUmIC7m4lmLCW6NuiLwoyuva5PpXX+8toNg411bUV5n016QUwQROqext0+7qPkqH8pTjU7pKXzqUsaEpNl3Wb8hpBcEPuXU6LpuBzkCDRA2EaTD2XZcoOy7SNskZFOts1oNU1q1bV7vcBrJxYuD3KQvLxjy971HkWr7H/6xYlmYT1yeSGTXwax+R7uU4AnlRTrjSm5TPfeMkWe11rG7Kk+uQqDIazH3sMpfItMs5Xv23KJQbHwqVfLR1sr4pAwL7ENioMjiO/H20gWBG8QyIj+ehjUiTcsNDVBQeHTjpu5SPIQilUv+hJPUh6jqNotRHmVYlzSD4FWhpxG6gNeAgMeSexIOHIFiuXJrz1rQNfsXypXJWfXMZK3MdaavAJIIQoW55VyKscXnaNEYdmlpFXN0GWe2lHcplNmd8yimnZJ/61KfWMGIdWR/uGLdyF2I+XxnqkHsxP/2LgqIvUdKKWFECKJJ127aYbvk3bEYRRvG4trPkr0opKqeZ/udtUO+nPOUpOTkjYcpDE0HuYkfK5J7SECiorSxpLJY3ne/rW7mSgi8PSpD84anP1nmrWdOyiXUw3RUyHwSC4OeD+8xyNaBu3mLtGnw94GVxDFH60LRZq5Os3XIaXf7fxI1LGagr01hLrC7kbt7fmnFuVwRYFsoG60+56u6yltJgKSJHgyz8kayIdqSYrFG/Wa/iBRCmwVn7nnvuubWXgKX8Rn3Li+Vax4tSlQZr2f3lWAD/sxKbkG1V+o5RSBMmo65pQ+4pLRh/5CMfyZ8F+DYlePeMIveUhykfz1vfwWeeb8+UPpxiKJTPcf3Hc6FdTGlQFI0VrptWWdRX1Y/SGjI/BILg54d97zkjAVakOcU64uE2MFoiNQ0h1slr1DVNPAhNymgwQ8Btg4lYo+bT7TRnm1zucAOlgVCZuTlZR5ZtNQ2sY6lTHixTIwjGvK3ocINucQcw5F+0iLRZl655LmqEULS+R7VV1XF9DsbKXAx8gwkPxLQErx0nuc2VQZ+fJi9tYE+BNu9q0Cc8R+PE+WlJdFz60qZo6h/65KipIteYmuBx0IcteUT2vAxNFOhiWfRRb1Sk5HihEwXJ3gpJqSheG7/7RWD8xGS/eUfqPSLgAWdtNrXEaO/2CDdIzkNYNLT/OmLOta4YZFjF0whCt5GLF9UgYO50ZUBmCIwC0IbcKQzm68vKhwHWSoJxAy3C61KQcFUsQpM8KJWsN8pCEiSCmKe1WBHQJIuactI0KDKVs/jNS4MctXtTGRVLkdKZdD5d1+YbkcL7wgsv3OYlPePS42Wh1Nj7gMI5KuBzXBrOcfdLg9eQ8knROuOMMyYqPZPSjfPNEQiCb47ZQtzBQmhK7qliBrWyizWd6/vb4C1Qa5KkzVUmXZfOJ9dzeV47nW/yTXkyV8tCNYjBmiuSS71J+lyj5vaVjWu7SigRyGqUtTctYZbzVP42hFZMx6BO8TjmmGPy3bkoQQifImS3rraib5gCGUeOSBmWLPAuhCLXZNpInso3ycvgfF1Ftkk9KOb6JSV0nGI4Lk3KgbHD6gSrH5oIpU578wAURbtM41EpphW/6yMQLvr6WC3Uldy7TQYme4gbdDzQZ555Zq6Bc2lzt81SEAPyRjLchlXCEkeMTQUZIhgR0l0Ja5dCkvZeNyjynIyLoEd05qm52pXJ5jKjCFw5pZfWmpfLTUnoUhD8KHdu3Xzcn+pj+9rkmqXIaDtt21T5VK4nPelJa+mOKou0uyQS9eDVqhvMqVwpaC29tbBcVnUx9TLNs6WeyByJe85ha8qKEkT5lEdVnEi5LKP+p6SJO6G01nkLnz4tuNJSQ5h5jsv596HQjCp/HP8lAkHwS9gTDKgCweqKSGyE88lPfjLf4QsJIleDSJN57rr5TbrOIGWNu2Aq83i8CSwyZWEdpDXVrmsiBlT15EZvgs+4PChFBjTpsrQNishYHIMBjrvYtwHYwI/Uk5XFBUoxYDGNE/U3iCt/OUYBBnCZNOc7Lv3iOW0uj7Zz8NIqllG9ixY34mGFIwTTD3UsbfUzjZEUhWJ5y79hO42Corz6XdrlLpVPGxbrUc63/L/6efXxuVsCIItTLxQya+yTAlS+b9L/2kd6PEf6cSpfug++ys7Fzvugn7fNSx+giNkJUB+lOOlnqR3kpT6eSYqqvgg/5ykG5t+TeGbFr4TMFoEg+NniPZPcDEZNB7k0CCERbjYDZXnwmEnhf5UJbT9tJ6o+aWBjWRhImpJ7Krv7eCvUb1pLD0HbSe3ss8/OCTHt/iawiWJi0ENO6gJLAzKyZg3yUrDy68wVq7/yio0wcBctP/WxeYpzXYgBXLmbxhIU83b/ODKEB6XSagAEIi91LIt0KEs+xcDC8nXF/9u6paXB6tQ3EFSKOHcMWVPktPe4ehXL4T6CHPXdpDhN03cRLmta2UaJ516/4qanqMPYO+7bPsu8ATxIvFQIWjslhQEWo/CgZGzYsCGfLtGO67ZM0YTMHoEg+Nlj3nuOHkCDVF1BdFynT3ziE3OX36WXXlo54NZNr8vrEpH7ToN80UJsk5cBx/uVBcWJNxgnrjVYydtgBluDtYFOtPE555yzFsVur/gUZY9oDIyIGakrM2I3UDrGcjd41hGEKD9eFYM874ByEWSPAAU1TUNuqRymdhBDHcUj3VP+1pdYd+MElhRJShE8YKFu+i2rEKmqmw+yRFBFxWZU2m2JTNqUNW1WXnVCqWQJm35RN+1RVyh4Pl0I71BdxQsO6sHzY+mrFRqJmJuWRV9N69mT4lJOQ9qUwxQzAjMKkefGOUovS9//6ZkupxH/d49AEHz3mM49RQ/hpAG2XEgDQFqm5RwC4W4bioyzFtqUUd1MAyBd7s5yvAKLjWVsMDfPjoAM1AYoxGSQgrPNSrgvEaNrKAzIgALBbY+wDHAGXOkgs6YbyMjPgElYZgZulmZSdJRL5HJ57/62uMiPS3XS1EFV+vCh+NQV/dTHfbBCEkiMZa9N4KYNED7lSb8cR5ijLMpJ5eFRoeiWyb14n01zYG6eeZYCB32mLrkXy4ZYzY1TTNpOS1Fo9QVtVCXOJ+woaUmQfVEE3vHciMugxLVtq2Ka8Xs8AkHw4/FZyLMGRAP0OFfepIohviaWyqT0hngeSSfLBEGnAckxFp1obJYzYmF9IHADHUsZGbnGIGXgQ+b2X4e5uU9WD4tPHtLgQmeBs1iRhEGxrsgbsSdhrTsmT4qKcvjfvGdRSUvX1/1Wjw1b3KqEwiBITNnrirKkF83UvSddh9gtr4NbVZ5wR1b6JcWMV6Wqf44ioZTPqG/Eg8AnCWWQApSUq0nXT3ueckgx5HZvK3DV7/RxOLcRno0q74W2gol2qyMUAW0pYJKyW9WGddKJa+ohMNsQ6Xpliqs6QICVMY0FjuRW4eFLAxTiWLdlnpAL3Twmd7tBn7vaACtgiAVioKUIsFRY1QZN7myR+Vz+yBbJse5THIRBFTlRClhRLKq6wrLUDspQFApD0evgGoqIOdc27c5CtqkLQiFIzPzxKJdssSx+yxOJSKdp/rDkfVCnKnIv5iVWxG5/lKyEb/G88nINNxEeAWTjM0nkP6mMk9Jocl4bl5ecNbnftfqdPuqZbiv6fBkfSqrnoS65p7x5ZazUobQqW0h/CATB94ftXFM2aHExt5G0XK7NvYt2D0Izh41cWN8scm5a1rABzbwnqyMR37j6IRxWOrKnHBD3IfVECmlu27zoJDEgK4f0yvmb108eh5QOkqeoHHHEEWv5p3OjvtWXEmPZFrdpImeKin4gLVHl40SelAFKZVOlEElQppq6n8/dEp3Ok1EkHfjznvBmNBFKQWqfSffVvW5SOnXPq1Oankn3wJgHQx+DfWqzdL7qmyKqPdsKJbXYB5E0Ytd2bURanq1yH26TVtwzGoFw0Y/GZqHPGAS4jA0OTQZP86EsuVUIhGEF2jOeFcLyNAB6A9qJJ56YRysjizYiXXOmlnYhyqJ7XXrml81DOi/a3uBbHDxZoNzvvs8666yR5ENxMMjLIwmyMj3Di6DtxQSYWlAmgzLhXubKRoSUCPPaVZa6YzBhmUtLfqxtpKyf6CO8BhSDcfPiqWzlb+QlKlz92wjFR95JmUL28KQUKWvRwzEufeWo299dV4dQx+XX5FzRc6PdLDFE6jwJrF/HtJ/6JuWxKv3kmtdu6ttU9M9iH9WfKFjTiP5IsTaVNaspj2nKu4j3BsEvYqvVLLNBnMv2ggsu2MbFW5WEh58l19QKq0prEY4VLUfueWRoGdrmLe70tuSe6m3w5dZHjtqhrGTxEhioESQL2qDrHm3ASuRNEAMwzoXJ+kG2VeSKiHxYetJO5J7Kh7wNqnXIKqVFcUCiBnr3sf6rFIOUx6RvSsO0OFOWKGfKSGCH7EyD1H3hD3zUKxHnuHJTiGZJRoiUwBoRIvFyIKA+c+SRR+Y4wGOUqGdbgpdmsa+Yk6+rQI0qj+P6OeVjlpiOK8+ynQuCX7YWraiPgUGgDfdx0aWZLmUBGrhY/G3mUFM6i/JtQGH9JdI16LGCWIPc8QiiC0GqArfsuseKRmhFYYX5wF8ZkKX2MRDXEQNs0aqqukeaVQpA1bWTjilnVwMxxYUiNa2w/rUngkeCSBoJCsSjONWdv6bcuV4cRdUzopwUHOlOo9Q0ra/2lZ+XtSBv/bMs+ou9GCiTpuXUpUom9ZWqe9Ix2CbR7xBzV8KDpt2KCkRXaa96Onf69lYdiSWuP/IyeNkb3C5afnMBCyhDPscee2y+VrY4B7uscCAWrsUiibNyWcO+DTZdCosSkfEQjBKKgEGT+7suuUvLfdMM2qPKM4vjPA9F9/M0eWpLOFA+xDYgI1au6QX9vY5Q9igGJ598cmWQnmkAaRWJrk66017j2TWVYpqnityL6VtBYYniKAWEEjlKeSmmU/VbOdJUkGeoy7lz2LctV1VZ49idCNyplt15LH4tIQIeeq5iH9a6AXEVNWbWXvnFLixcgx+iKLuyu+gKiEwgH+9I2YqfJn1tuqhtiCS6cPHCD9lQpEwtiVs45ZRT8mkpQVyU2BTrkDw2ozBHoKxfAYNc49oKxqxLfaQr78Wo/KuO8xqQokJadZ1jSFKZlbdcV/0bQVOs2ghlqVj/LgmZUqs/hHSPQBB895guRIqLSgzTgEupMedbHpwQA8XHqzL7Ei5NlliXBM8tnayqcrkNmkivaOFrcwP9rK3Qctn83+WArp5JMUvWK1J3nKgzooQ9ojQtgujco+2RtxUA2sdvaVAU/D9vQarKRDGtI64rEnG6h3eqbTCjNCioqa8V+1RKf5rvrtObpizLdm8Q/LK16BzqY7A2YHpQ/UYgBk6fIQliZzUqXxr8lQ8BsNiKx7out8GV56RLsVZd2ZPA3gDPnUuh4PJXX0SGtCgEvAg2LEF44xSElGZf34ksukhfWmWFFckViU5fVF/1pvzARH91b+qvXZSl6zSU2ScpLpPSd11ZeYINgh4XgDcuXZhRgJNIryqfdL7ptz7cZX9omv8yXx8Ev8ytO4O6IZTNW+aYzV+miF8Pv7XTlisZZOsOTl0XF6ErHxe5deMGEeURjGQ3Le5Yg70Bi1XXpygHHLocGMVRpIERmQuiFExZpag4BgMfEdBw4L4Wxc9CnLXAoaxotS2D8kurjsALYS6KKK/5b253bTxJXKd9i7JuS/wH74W2byqeDUs6i5hpO4qiwNEuRJmLimoXaUYav0Sg3lMRaAUCIxAQjV6eH2RBsCBF9tqT3fxdIqIRyXR+2GBmjS3FoyzKItp4w4YN2ac//emcEBFw38KaNlDWGagnlQWmBn6WqDloO8E1SZfHxTIyZGBp5KwHWBY1t3F5j4BJ9a46X1R0qs4v+jEKjPXv2mqcO1uAHUUuKdrqnVbHeBbbSHpfQ/FeyqG8uiJ47UeRCOkegYii7x7TlUgRQVgCVib3YuUR/SWXXNLKciim0+a3AKsqcpcWUty8xeuAFG0Ik6YW2uTT5B6DL+unC0lWFcvM1q1NyL2Yv6kDrxNtY90V02n6m0JhYJ9WkA1rctnFdIzlrqOEwic40L7wSZC7z8aNGyu9Oum6Ud/2EkhbJRevQcbSres1Kd5b/q3c8/AglcuxrP8HwS9ry/ZcL4Qyar1tMWtucltalucFi9d0+ZslbmOfOgFFIo2VbVYeBqRGuZhWbMajzIncKVvTiHRsytNWSWibt6VniGsaSYrONGkswr3IVOwEr5PgP4oNZdHcOBK2hwUrXV/QNwQZ8pBY19/m2Vu/fn2e5ijPDu9Rk3cqjMKYh6Do/h91XRxvh0C46NvhtvJ3Ndnowny3ue5ZaOrK1WR9NRexuWgDZt/C0vRhLRsg5Wm6wADMrUoZEr2dggGrysNVa0B3DQ9K3aVm8pG3NuAeT/m6X3m4+a0i8K75WWChbspCWeHlUZ+mYm6Zq1hdlkl4lCiqFC+xIalfIGyELoYkKXWpr+g/9regMCXL2nLQpgqltke6lIlR5A5rygX8lbE851+3Ley+Z++NkP4QCILvD9ulTdkA1MTaMxiNmzvsCij5tNn6lALSt5vXoGvw5GZl+RiQDeIGYOcQPnJXBxYat3tZiWKludfgyntSZw7UgG8JWLL45YkUfOSLNAzU2sc6cIQyy+VhysW13JTk1UkQ57LN3WoXSqf4iOJcumeEIqMPpB0nJz03vBui5+3Pry8lpaDqPn3PlImgS32xjtJEQeMpsKlQcWqgKv3ysX333Tcn96GttCmXc9H/D4Jf9BacQ/kNqk2sPA/xLAjeHHcTxSNBh9hYkn0KokXmXq4ivyrLm5KBuNTD4GyagefDvf5HxrA08Bu0x4lBmmcCiYtFMACPs+YM1qxhggiatO+4ckw6h0jUTzBmcfvgUfe5Prmkl43ceXK0r3ckVD0v2k/gqOsoetpsnGh7EeoUIW1KueOp0X/0MXnpc6xov7nK6xB7MU/XJ6XTdBcFZZzIb6+99sqVSHmG9ItAEHy/+C5t6qy8cSRj8DVwG4Sso50VYSDEpmLgI5b2NXHvN8lHUBICK1vlxTS4O32Q89FHH52xcrhk/V8czA3Q4xQZ7lWWmCVzdaPUYWCZHWWAq5flN6s245FI88a8KQI3xUcki1NfShvPKBdMkNeyiTY977zzKsm9WFeud8SqnWA3SVyjD/l4FrsWioE5ex4A/ZvL3rQPstd2XP3GAs8AJVU5QmaDwPI9JbPBbeVzofXTxhFSURARC8sDzVowaBmsWaOupxh44F3XtQWWBpNE2MVyjfuNyJQTKfZB8MgJHuMUomL5ELiAKa/tRXxlq2qckoDckaDgqjbKjkHZXDxy5TWoQyDFsk/zW5/QBrwYqeysVvX30U5lLKbJb0j3ssqbBKNu3rIKxFJPys4QRD/Rz320IQ9BUTzzYbEXEZnN7yD42eC8dLkYjBGQiPXkbuaqYwWzHLmEDVplsZuWQYD1IYq6ywhaAwgibUrw3JiInQKCINsGDZXrmv7nKmcZH3/88fmSpTpL0hCceekjjjgid7OmtBAwxalKlF2bfOxjH5voKq26v3iMlchNrOzaum+hUCAF9UPqLHSkoX+sAjFo7/L+8eMwdz2ldCgEXywrRWxW3p9ivvF7WwSC4LfFJI7URMDAf+KJJ+Ykj1wQuvnDKmIvJongrFOnDCCwrgQRsGqaEDSrn6IhUIhlbL6SBd3Vznbm9ilArHfu8n322Se3kA3OkwTZed2pyPYU0QzbsnUknWQ5nXnmmVOTeypXsihFVaf807kuvikQlDEueW/x4+UpxgnIUx/RphS3ImkkHLT5Mlj1sEhTEnWxTYp13evjutVDYLnWl6xe+821xiwsg6vXaCJKJDmJ3IsFZjWfc845nW6ywqXNRVhXEC4iRbgGWEFM5r5Z89OKJW3mHNM7ySk2LGPzlXUF+VE4ilIkwXScpW0OvSlJpPtHfXMFN7EsR6VTPk5JoYhdeOGFucJj7r1cL1aq+ltRQCGEAyJ0nb7Gw5GWkZXTn+f/iaybtIV7mnoq+lC65olb5N09AnO14M8444w8qnhctf74j/943Ok4N2cEDLaIWgBZG+FuZvVzLXfhCmblIWiKxiRL3hzzui1LxBAJS5sb3dIzke6WbilXnQ1zyvWm7JiuYFXbJc7gnQRZCjYS7ITU6oh6mEaQrk95XpwS4Xgf8QPKh0zl30X7SI9CpU7iBIrYODdKeD8oA9oFqVOUiKA0fYcHaQiiL2mHFAhnrTdlZlJQILIW11JW5kbViWKtf4UEAuMQmCvBG5T+5m/+JjvggANy1+i4gsa5YSLAxTrta1aRqgF/3Ray7cLdat6WW5t7l5u5PGgaGK0lFsxl4PVByIiXYqBOrG1pcB1zrxu46wgPAsvd/Zs2baokMASAlOsSvOvkT3lh5YlCLt7LelfPvgSh+nRB8BRCSl0Tck/14mW59NJLc2VMWVKsBTyHQPCUFWW0K2CS//qv/8pXROgX40S7Ck7V3+qIvhsWfB2kVvuauRL8ySefnH34wx/Ofud3ficzdzhNwIiBua41sNpN3l3t4S2grou5QG5s67C7WkKDDCkM0lQ+HwolYjAw+vZ/knTO/0XLyG8uf2vXKSGIruh6pZAoMwvXXD5MuMrHWf7SaEJI8ktTH/KzEuHGG2/Mi04podD04UZP2Pi2sQ6FaZIlWryn6jdlC0m3fVYpTvrcui1tK2CTN8M0yxCEElal7OoPYgiK/a2qvJQ+iuekTWO0tw2Tmrr0q/KMY8uNwFwJHrTHHnts9oIXvCCfZxNl3Fae8pSnjAwuMqCGdI8A0kR8XQgSM3h3RfDKlMh3mjQRCMXTBylztyKnYpAcS5JVyoouLxuswkZdm1hfZTJkDRrckQZCGLdsTv6UHVhQEup6Isrl5mVx7zQEL38YtS1DKlPy9piKSUpVOjfPbxj7lEVbTyJ397jO6hIEbpqoSsSG2D1umnaoSjeOLScCcyd4sJ522mlTo2tp0CgxCIR0jwCyq7Ndat2cDdzaqs5gWDfNLq9DlD4Iivu9rXJjcE4WeZ3yGfiLxKEMNhWBFUteOxSFUsJzwSKkmJjzlp98fSghLH6KQTmwrZhO8Tclpu61xfuKvyk2k5SR4vXjfgu+e8xjHrNNPMK4e/o+R+lSpnPPPXcNK56iJrskah8eIx4hXhNKr7bT5hRM3ptpFNa+MYj0h4XAIAi+CMnpp5+ez4dOY80X04vf/SHQhWu+WDruW2TVxPWIbJEPLw1LNwWDGRD7EoMwK6utKBvSrSvqVLT45S8Sf/OWCHdSTMsmN4jAHD1XdnnNPEVBMBeiQCQCCylWdaSsSKR7ED/spT1OOdO+ad483dv2m3JFYRga2SH0U089NQ86pWiZV4dPUUGbVGdtLQiTh0bbwlabN3kuJuUR51cDgcERvKhYD24Q/PA7YBMrtE5tDIRNrERkYR42zUenPAyqAjf7EoM1C7qcb8rPwI7EKR9VpGjwbjJnbp69iiC8WEc5tIM8rVdHCLwLo5Qv+PK6+LDuzWUjfMsDJ0lqb3XyjFKqxBpoBySEgCgjphCUxwcxJeWkzvTFpDKk85QFeQ5N1Jew5KeVhOG06cT9q4vA4Ah+dZti8WretUXRZEBDMFdeeWWlyzcF/omCZ1H1IUgRmZXjOxAm9zjSQ3RIuBg0pY6sZ2WvI9zsVWvy1V8eSBepHHXUUbnFLqCrrogjEBS2Ycs7xuUx6iUnKT1lR9Lm0dWrSnlJ1wrIgwWFgiIBr6KnIV03zXffBK9+PCD6kw2QkiU9TZnj3kBglghsGxEyy9wr8vKSjaFExVYULw4VEOCmHueSLVxa6yeSSRbQpBtYjuPmc51rO0c+KW/nKQ76adGytjzOMVHiCPzTn/507gbnNk8iMIz7HEFPEthaq181HZAUC+nY6c3/Tci9mLc5Y3O94zbgSfX8zGc+kxPeOHKXtqVrFAbfFANtQVnpUrrse1Xlojypr7lwe3YUAyurro9jgcDQEBgcwb/whS/MjjvuuKHhFOWpQAAZdzloc0XXEZZUnXljJJ/cynXSbXoNV3vaxc+9iPyTn/zk2jSDciJPbnTeDuvVLburu2b9yU9+cu4FqCoXFzUxFeD3f//3f1ddVvuYzWxY2qPWayu3aYUmVrj6I0fuf2SsnE12GRxX+K6Vy6q8igqkuvCYhAQCi4TA4Ah+kcBb9bIil7qkPAkr1nuVpVp1n8F2kgXpPtc0mdOvymvcMZapSHbucQFRCKxcrkQMlj+x+i+66KJxSebnWMsHHXRQTorjPBquS5v5TEy0xgXIWPxClSD+5DWoOj/uGGVMMB+h7MBtWlHvNLc/bVqj7jeVIh/it6mXkEBgkRCIOfhFaq0BllXEdlW09qSiIkTWPyWBdWcgrTtfjtjM6VoqNU6auPzHpTPuHLJCfrZLRe5Ip7jOW1kRg28WsDKVI9sdEw3uXvVyPSzGESFliAeBa70r17Hy8UIoQ7mMCK7tdsTwM2cvZkGdtPu00ycUhXHKz7g2q3sOxoceemiOb9/KRN0yxXWBQBMEguCboNXxtaw70c6sTKTAnYwIkJ7vWbghp60SIrLO14s/6rjD1WmvvfbKA5bMz5pLh4N5aYN2XaLnObDfd9liTvWBH2u073nalB8ctOMTn/jE3E2vPZGZ1SCIyAdxIznz5uqONBA7yx9Ru8c3a5cChPhdUxXMiIRdL50uRTsg4CLBK7dyTeuiFiNgdYO6TUPwvCbSmIVoQ1iHBAKLiEAQ/BxaLbltWTWsUK5Px5IgJYMKEkN6SGBWRJXK0OSbBWsu2h7c40geUXE9m4Muzm+mvBxD8HVeIQsTuyBu3Lix0g3/uMc9buZrpCkVSP6YY47JSZyihqCLljhFIB0TXc99PUpJoRTwkNitTn2L6ZgvR/Dc6l0KYhe0l0QZWPXTWO8pLQqCvq5OxZUF6Xydb31IICNFMSQQCATGIxAEPx6fzs8KUvJCCYFHo1yryN5A6MP9zeI1KFZZcp0XsEWCSAAxc2d6iUhVvVxz2GGHrb0adFQ2LFLR5wi6uCd8+Xpkh0CtuoCl5VtwY/UKZmPhFQmxfH9f/yN5ZOxTJax36+ftvT8pYA3xu1Z/QWqUvdQH1F0eo9a7V+Vd55jySTuJpYaUkGmt95Se9lUPfbrO2vt0n2/lMhUSFnURlfgdCIxGIAh+NDadnzGgI+yqF1KMyixFSCMsBMb6G6IgU3PCSJyLmWei6ObljXCMC3iS2ITF4G/tcSK0qnvkyeXtxRuJLF0/7p6qdGZ1TBm9mS69H75uvu6z7I7FbtoB0ak7palr4YFI3iLudG2RAuS6yIurXz+mhPFmeBZS241Ln+KW3PuUqJBAIBCYjED3I8TkPFfyCtaYwbIJuReBOuecc/L3nBvgh0pgiIHrmEuZmzfNKfumoFgXXVdYjay8OnUdMqmn+iIxlnhTck/3+7ZrH4zXbdlARp0RXZoWKF43zW9Kg7TT/ul1l/TVzZOHgMjDkjnz/fJg2Vd5fkz/sPgpiBSCkEAgEKiPQBB8faymulIw2YUXXjhVGpQDFqsgoyEL0jEY+ygvYc1XDeCj6mEun7U3zk0/6t4hHlf/adeqqxeSR4wwRvbc9HDqSrQZhYzFzHvk/67c88rIQ5CEF0I+tnVF/PKVp7anADjnGha/75DlQ0DbJo/R8tVu/jUKgp9BG5gntZFIFyIdA9+iBRnVccOW8THgL4Nof8RsMJtWWO9IV1pc9TwjXRK89HhPTKewnJEvrwPvUxfCQ1Ae0JF3iluQP+HxohTJG+mrqykb/R75hywHAuW+sBy1Gk4tYjJrBm1hAG7ycpFxRZJOly/tGJdXl+faDMoG9WUQnos6sQd16ipqnrVLYUKMozamqZNW+RqDrTiKVFarPHiNrAoQRNmFUE7qDOoUgQsuuCBfbaG/c+GfffbZuaIxbqVGF2WMNLZGgNelC+V061Tjv1kgEATfM8oeDtZQl2LgLbo6u0y7r7QM2E3c7U2v76vc06ZrYGQRdyXI7cwzz8wtW2nz5lhh0YWIm6BApnlyaVJOPvGJT2T22e8iet2c+iTFzZTAuefe+U71Yt3s89/1yoFi+vE7y9ufUrV58+Z8VYzYmcsvvzz3Qn7729/OPSqLNv6saruGi77nludmLkaTd5Gdh0+6i+SmV1YEctVVV9WCwNrroa4YqFWBX12knbpybxfzlaa0kaVgRBZum2mQlCYX+c4771z5lrs0xeDFN+IIprGg9QHxA+MEeYx6ZrjulUcwZ0i3COg/vI2mk8ZtRORZtgpC4KN+EzJcBMY/acMt98KUzGDVtcXBwlo0DdqgLjgMcU8SlqJ1323c+pPSnvV5ZNh1+6uDPpCI1oBroyFejzbi/hNPPDHffKZovRfTMvBTLKfxFiCEul6ccUF1484Vyxy/6yOgj4p38Pa8ceQuRdeauhE0TMlctLGoPiqLf2UQ/AzasOv5q0V9oMy/Wsv8iEc8YiTqVgjYzKQtWY1MeI4n+miv1KdM19hB0DQQkp7k/i7DwAITvHb++efn2waXzxf/57JF8HXm0Iv3+a09vXCnjlfGNbbHrZL0/oKqc3GsHQK8IoJ3bf2c+lWdlEzfiIso78RZ5964ZjYItFP5Z1O2pcjFYNi1JSq9NoPsEABlyRvoEYUNVERII0DkL2pbFDWLcllEO/WhrKRNaD73uc/lUAmMM+Daec6Wv3bAG6dYKJMAPYRZN0qedW9+nIfFoF5XtLk9+uta3vo3pUP5i/ErrH9v7gvpDgFuedsG24CrjegT4iJscNVFjEabMsQ9oxEIgh+NTSdnWCPmC5sMiJMyll7XSsOkPLs8z8r0QS5p3hjh1CWALsvSd1rqRXnh3u5KzJVzk5Y3DuJaNXdtKsSAi/TN1buWO19ZKE/2JvCx8Y6thVMb1Cmf9JsQvDY1fUAmzb0X89e/KSumdOTJ06C/sDAXVbkt1m8ov/VLlvs0on/xAGivph6kafKNeycjEAQ/GaOprjDAcTcWLZGpEtxyswHeYL3oYsBf9gEBUZl2EH3clXh166hBmUVlZzi4mh9NxAjrFA9AEWC1pTn8JuViwae16pPuU8699947VwiakHtKN7nqR7nr03Xx3Q4BfaWr/RmsFDH1tuzPczuk53fX4rPE/LCrnbO1xSwnmu604gHqak3ytGWZxf3ctIhokT0WFDID6TiXeR0sWc4sb0vNWLKsWyTONW+nRNMdSVi5IutHRaOn65p+awv5+pa+4LtivXgrKADrtmzIo6wx4DdFeHbXI3ht2JVs3hKjoe2XwfjoCpN5pxMEP4MWQO6WMnlhyLQiHYPoKgjiYDHCbZED77QXwvOimTZCQTRfjlQRuVe3cqsjcVauuWmWsmMGWaQOuz6mPFjiPvvuu28eyS+f9DGwpzLFIN+mpWd7T9rQqKtc7aFA4Yy27wrR6dMJgp8ew4kpGBC5Gc15Vr0HfWICv7rAMiPBaW3cnXXzGNJ1iOPzn/98vmwHaZmDXUQx4NkoxjRNEy+O+yh0vrnUR83js8IQO0Vg/fr1OcGzzvoIVpSmAD4KR1tFk/eBMkIB6UMJWcQ+Musya4Ou92egjEs3ZDgIxDK5GbWFgVFkcNsXxRi8BSv1MWjPCILG2SA275g//PDDFz5CV2Dk4x//+NpTDZQ4kfJc4DwYo8i9CCqLzI5jFCHKIFd+12KaQDwBZZUCVhQeBoqFDwIfNdiz8q2hNqUw6ppiuvG7ewS0nTbqWvSBkOEgEAQ/w7YQ8MTVLMq5ibDaDzrooCa3LNW1lCJkv8iC1MxPnnzyyRPXgiN3ig0ibbN8ybIlrnxBbl16e7SBrXGtCLG0DpFzyVI+rr/++nyXO8v25G9tPu8LRSAthUztJyBLGuoWBJ9Qme23/ujTtfSRZtdlXKX0FnvUXMCWMkh617YtOy0tGfcSGhaY7UERg7nWkMVGgDua5cQjIehu1HSNbUCRn01s2oqdxo444ohcmfSCmi5EcJ0IfHUw5cQlK2IfYVcRtWsRP6+TqQbBhtz6FLbjjz8+P96lAtJFHVclDbgzOLoUY1u0Z5eITp9WEPz0GDZOQWSxQY41xAJibbGCuMw8JNygyB2pr5JLvjGQC3iDAVB0+YEHHpjPlSNA7Z/m5rW3tm8bkFeERDAeN7+5f7uVTSOpz9qL3jbCCJ2bvY5LVt1MM6g3pUMfr7tl7TRljnvHI2Dab9Ryy/F3Vp81nkVMRTU28zoaBD8v5LfkazD3Qeghq4VAIkzeGYodokTCyO8rX/lKLeKchBg3uDl80ztc5lVW9qQ0nDdo2zjHi4K8H57LnfepqSjPuVveEnfIIYdEn28KXg/XI2T90FRLF8KrI72Q4SAQc/DDaYsoyQoiYH0/V6nBluXOwu9yUxzR95QIAZpt3KfInRdg85YofeWkiLQh99S0lAPKBsUjZL4IMC6s7uhCpCWwM+bgu0CzuzSC4LvDMlIKBKZGwLx2l9HNlhciZSSPqCkSdcU9th+lcJhnF7Rnbn9aQe68FF3Wc9oyreL9lDcBv13MxVue2UU6q9gOfdY5CL5PdCPtQKAhAn1YtlywrHcucsFuPubDq4QFhthtnGPrUZZ7Wvfu5UDTzuWnPAUQ1ln6l66P734QQMqPe9zjai/frCqFaRuKQhsPUVV6caw7BGIOvjssI6VAYGoEuiLQYkFY8AI2kbcX1JgrtVGNwZ3LnCXtnOkCUe6UDBHwKcqfpWf6oMuALPEAAgnFn4g7mJXY1teeBCG/REC7U/Ys3/z4xz+eB/02wcZqIH1JHwkZHgKze7KGV/coUSDQOQJWRdghjFsbkTSd4+yD7Ay+BnKv40XS3O0+LC4kn/JE9KYIyhvYIIC0/W2XgNmYZ9Zbm1JgKDxBSHe2JCy0uUBKyzfrxIAIpkPulnQGlndiObRfQfBDa5Eoz8IigDi4nS+66KK1OnBFi2KvOz/Zx/KxFNlM4eBK5WonBvU6UwLuY/l2LZbPwWyWEm7karThYmpGX6WgmppJrxpOd7iGx8V+BmnuPvBM6AzzOwh+mO0SpVpABFijRXJXBVaqjWZsWFRHWJhc5V0FoBmQk4Ul3Uc96lG5671J+tz7fc2XI/kmgX91MIxr2iNAGUTgtjvWRyiBpo0QuX7kW8Q8j1DI8BGIILvht1GUcEEQMBBWWaSs5Lpr0JGpaPWuxNIlA3ISHgJL5pJbPh0f921Qr1v+celUnesr3aq84lh9BNLyTf2FZU9R5MmhgAa518dx3lcGwY9pAdYF16T5Rx+/441JYwBb8VMsHINgWQQh1R0Uk5WdrO5yWk3+NxhzpRbzRtYC5gRVyauOUFyaKAR10kzX1C1Duj6+A4FAoD4C4aIvYcWiEFls7lSwiW1EU9CRgZIma5vZ9LrMLgbiUhEW8l9LsXy8upQihEjMO++000757lYs02UXhHrCCSdkZ511Vt6H1NcSIoTaRCgJlqjZpGYaMS2gTGVB1vr0kUcemQfdWQY3TrRrleIy7p465/SRVegXdbCIawKBPhAIgi+gas7J0iCRpEi+LMjfWmKfNK/KQlplKwRRwANmllaVhVJkWZb9yxG+QX1ZRV31kaOPPjrvP4jUnGZT69f1CB6xtn1RDMXCWwhH4e04ZdWLj0RC26/ei49S4BvFNSlo0nG8y2Vy+oDo/FCQl/VpiHoNAYEg+F+1AjekQe6KK66o1S4CqjZt2pQPwpZCpUjlWjcvyUXmm3k4LrnkkpEboCA8S7IEm1mGg1RGkc4ywILk9YVp+4N5cyTNcqY8NZF999033za0juLJgvbRLvp0iiFQD+SbLGy/zcfWibqvW1bL9orxAXXvi+sCgUCgHgLLa07Vq39+FSuU9VKX3ItJ23LThh1NopKL9y/yb16Oiy++eCS5F+uGPFzbVzR2Ma9l+c2SX7duXfaEJzyhVqS5t4PZlYyymjawqYtFUkxY7T5c+4ncpYGI664EqJMnZYFnICQQCAT6QyAs+C3YGgwvv/zy1ihzXRqsRJuuinDZUoiSxVen3lzOrFGvSp3Wwq2T3zJcg2RT3xLoyRtCSaJQImXnkSVyd8y8vesonoceemh+vOkUQRVu8pKH5VOU4WllVHzAtOnG/YFAIHAnAitvwbPeN2/Z1AH5tBVpIK5VsuIpRW0GejEO02Ddto0W/T4WNTc6Qk9BnnYSS+uV9T9TRsg9iamT4v/peNtvVjzlTDmmkaOOOipfCkhpCAkEAoH+EFh5C54lWmdrxklNgOy4oevMe05KaxHOi1doK4LxpiWJtnkv8n033XRTo8h68Q8seW77ort9Ggx4C4499tjs/PPPz+MqmqYlPsDGNqvynDTFJ64PBLpEYOUteC7mLuaFzXt2kU6XjdtXWjCzH0Bb6WPb07ZlWZT7KI/c801FcGMfniWWvEj/ugGTSP3xj398vrw0yL1pK8b1gUA7BFbegp+GqMqQc1uvgrAMTUu0lSbz9m3zWLb7KJC8TU0F1u7tWkT3e6WsaQJTXPY/KEfYi7wXlyJa3vangvdCAoFAYHYIrDzBI6uuZBrS66oMs0hH0NY0y5v62DRlFvWedx5tFaO2902qr35gLbu19OIqPEvp27n0iYDKSUjG+UCgHwRWnuC7mpvUPKs0kInsZrm1kS73Wm+T/yLewxWur7bxEnXZx6uwY6kn6zyUtyqE4lggMB8EVn4O3uDX1Zwga2ZVxJyqgKumYtvWaaz/pvkty/WUR9HzTYWLHAH3KTwEFA+fWCHRJ9KRdiDQDIEg+C0Eb7/0aQW5d6UoTFuWWdxv2ZbtZ5uIZVH7779/EHwT0H51Lexsi8zt3UTsstinQiWAT/Dfeeedl23cuLHVZlFN6hPXBgKBQH0EVp7gkbJo4Gml74F02vL1cT/F6IADDqiVNBdzeUc2c7asPsvmLAET8NjXfHGtQg78Iu7vJkqVfm06pM/15tbZX3bZZbnlLgZFO5577rlTrbIYeDNE8QKBhUGgmTmwMNVqVlBrskX6eoNcG7HZSN8DaZty9X0P5QhuiMeudqOWv/FuICY7oRXdxa6/9NJL15YXsk5POumknOSL1/Vdj6Gnb4kcSxlRi33gqj/77LPHvqNdu1hzXncZWxsMlKtqn3wvH6K4Vb3Jrk0+cU8gEAi0QyAIfgtu5uERkPlDy32aiHloO3OtqiBlxH344Yfnu6bZAMfAj4zMG++66675xiblwd6SryK5w89yrjPOOCM75phjYiOcX+GBLK+++ur8jX28G4LZTHMcccQR+SY21rkXV2+Yc/cqY2/w65PcV7W/R70DgUVCIAj+V61l4ERS3I11LXmWv807uJr7dIMOvUOpO/x8rHdO666R/yhcEHzVxkDIipK16jvdIXPkTQkqEjiXuF3kDjrooHx6RN9j3buGosrzYc59FO5d9iX5rdvyMhzlLIpASkGYIYFAIDBfBILgC/gbFK3pZf3Y4rO8cUe6lDXqHdqs07Jlmq5Z1W8Y1gk2REyjpEhoo65Z9uNc3J/97Ge3Ivdinb0ciQvePPs8l6aZmtqwYUN20UUX5Yqd6SovuQnvQbG14ncgMB8EguBLuLN+zF9yOyeXPaJHSAZSAxhL1XUxiJXAa/Av/Fh5ZSuegkBxWnX5+te/PjHg8IYbbsj76jyVzOQ1OProo/NnhNcmnotV771R/6EgEARf0RJIxqDps0qvgK2AordDCJ7lZ2kVa5UghuOOO66zF6P0VvieEzbFUectcIIUh+DtMC1A6Q0JBAKBYSEQBD+s9liZ0lCiCMsvBYqJtkf8qx5BD5s6VnCda1amQ0VFA4FAYBsEguC3gSQOzAoBRJYi7WeV5yLkQ8Gxx8CkV/IKRFx1ZWgR2jPKGAjMC4GV3+hmXsBHvoHAOASsRpgUif7Yxz62113qxpUvzgUCgcDwEQiCH34bRQlXEAFz2nb+q4qQ5/k45JBDgtxXsF9ElQOBJgiEi74JWnFtIDBDBGyiZEMbrnrb+Qqoc8w72H2LWA8JBAKBQGAUAjFCjEImjgcCA0DASg57LtidDsHHMrQBNEoUIRBYEASC4BekoaKYq41AWOur3f5R+0CgDQIxB98GtbgnEAgEAoFAIBAYOAJhwQ+8gYZePC+W4Tq2o9kyrctWLxvOFLfUTcv6hrQ0Tfns61/c8Ia1b/lhSCAQCKw2AkHwq93+U9XeFr6bNm3Kt/QV8Y3k6+xDP1WmPd6M0L2T/lvf+lb27W9/O99hz3bFXvyCNG3CY+25V7Z6oYr/56nUKKsXI/nY8jeVU9nsUe87iL7HDhNJBwIDRyAIfuANNNTisXCLr3v91Kc+lR122GGZl48smrCCbft67bXXZjfeeGPlHvDe2OaDSBGq4Lf169fn++Yj+lkLcvfCmfLrjSkpIu59BOc96lGPCpKfdeNEfoHAQBAY9Bx82qN8IFhFMQoIJLIrHNrmtaHFc0P9nV7LesEFF2SbN2+uJPeqsiPYz3/+89nnPve53INRdU1fx+Qt3zK5l/OjsFx33XW5YlI+F/8HAoHA8iMwd4L/67/+6/yNWKyND37wg2uIG3irNvlYuyB+zBUB89APfvCD18pgfnqPPfZY+38RfiRyv+SSS/J57DZlto++V6WOerVwmzTH3cPbYF38LbfcMu6ytXPXXHPNzMq2lmn8WAkEPD+UTYZYOQ5kJQBYgErO1UVvYDzzzDOzj3/849kXv/jF7JWvfGU+cP3u7/7uAkC32kXklj788MOzK664In/AH/3oRy/UxiuIEil75zq39jRy22235Rb1wQcf3LtSaiD1Ktm6op6mHbzIZ57xAnXLG9cNHwFxKd526HXFniHTdeJvvGJ7t912y98suMixOMNvgfolnCvBf/jDH85e/OIXZ/vvv3/+OfLIIzMf71x/2tOeVr8WceXcEHjMYx6TR3Av2gNtzv3iiy+emtwT8Eiekmp/+D4D20TLN/UWKJtBeB6xAgmf+F4OBFjsX/jCF7Z5ERIr/rvf/W52/fXXZwcddFAei7NoY8JytNDWtZgrwRsML7zwwuzZz352Xira30c/+tHsiU98Ym5xbF3U8f+96U1vGjl/qlOG9IMAV/2Qlo3VqSWL3dw0a7hL+eY3v5nvOOdFMX1KU4+DeAmWfEggMA0C+hGPnRUmo4QCKj7E2L7rrrvmlv2oa+N4/wjMleBPOeWU7G//9m/z6GvuesIi/NCHPpSdeuqpjWrPRVxcC1y8edEIqFj2+N09Aoide7EPMeed3mvfR/rStGSvCcnPY48C87Mknr0choX/oz1Z5+PIvVjJK6+8MnfVL+KqmmI9Fv33XAne6zB1BEFORTn00EPzCOU3v/nNxcNjf5900kkjzxvgQgKBhIBBKhFQOtbVt6C7Pt3h3J6msOoOtOplkJ3HMxBz/l31qvmnY979q1/9aqOCXH311bmy2+eUVaMCreDFc4+ih7lXXyY5/fTTs40bN+abifzd3/1dOhzfgUAnCHAz2simT0HyfQmitolNXXG9jXmscpilsNxnnecs67dqedn/wbPTRKz0aOJpapJ2XFsPgUEQfLGo5513XvalL32peCh+BwKdIWCQ6nt/BcFGo6aLuqiIHer22WefiUkh2GOPPbb3yP6JBZnygr68LVMWa6Vub/PMiPtoqhSsFKgzqOzgCH4GdY4sVhgBgw53Y59ijr9PUmKVr1u3LjvwwANHWsmu4RnjJh+aqxw2LLu6gX/hCeizt9ZLu20sxdD6Xr3aLs9Vc52Dr4Lx6KOPzrfYrDoXxwKBLhDo07pWPunXJa+29TEXz/Vub3zr3NNSOPOdNiASwXyf+9xnMOTOkrOa5aabbsrLiuQt21NOdRi3hC9Iom0vqXefttEe+pTCo6AAABm+SURBVCys9a0y5vpSU6EUtFUMmuYV11cjMDiCf+ELX1hd0jgaCHSEgMGrTwvboFYeIDsq+lbJGIh33HHHnCAN0hQL+Q4tqAmxC7j62te+to3i45igwSOOOCI/F4SwVRP39g8vFre7eBRTSv5H8FZoIHNLPYsvVHKMEtZkaamNb/TRkPkhMDiCnx8UkfMqIIAAvSimz7lBg6GBclYyRFJPdeeKtwGQF/SMEsFYn/jEJ/LlshSWkP4Q0O8FzIlzGvUuA0GivEIUxT333DP3FCF3Ly7y/oU6Ylplr732msvqjTrlW5VrYg5+VVo66pkjYG7aOvU+pbhHf5/5DD1tXhIv8BlH7qkOlhZedtllvQdApvxW8Zv1banb+eefP5Lci7iw6hG6Zcyse9MpYj/qyOMe97jcs1Tn2rimPwSC4PvDNlIeIAJcwOau+xKWuznlkCx353LN1xVb8Pa9hLFuWZbtOpa7TZi0R9P4EPEd55xzTr6/w7777pvtt99+Y4M7DzjggDwOZJZerGVrr67qMzs/YlcljnQCgSkRYMFzo7dZ+jMpa8rD0ObAJ5W5r/NeSNJ0KsR2vw996EPDtdtho2gDlrvtmduKdzfYgtbKjIc//OE5gWurFNzJM2befqeddsqnwGYRg9K2Lqt0XxD8KrV21DVHwBy8+US7KHYpvAPr16+f6fx7l+XvOi2k0FS4hc3bI4yQbhDgGWm6C11VzubupWMPBl4qH21lKoa1HgGSVajN91i46OeLf+Q+BwQEAD3kIQ/JrY0us/c+hO23377LJBc6rVi/Pv/mozAJqOtqaahVD0XFDbHzWAW5z7+tq0oQBF+FShxbegREBZsr7CrgzqYz3oYYA92dXcc0SFNBFjF32xS10dcLrLv55ptHX9DwjPl7JN/nMtOGRYrLxyAQBD8GnDi13Aiwtjds2JC/jGWamu6xxx55hHHMvW+NIhdu03XQYhjCPb81jtP81yW5p3KkFyql/+N7uAgEwQ+3baJkM0LAu6sFdjUV1rplQ9b7htW5LXq8JI985CO3PTHiiLdLCtQK6QYBVvatt97aTWKFVMzpd+XyLyQbP3tAIILsegA1klwsBLiS999//2z33XfPlxKN2gAk1QqZszQF1PEChFs+IbP1N1xEXCOEr3/961ufLP0Hx+OOO650NP6dBgEBcPYX6Fq46cNF3zWq/aQXBN8PrpHqgiHALey96ebkDYp2V2P9mMNkrSArioBNbFiaMVdcr4FTrMN973vf7Ctf+UrlGmxb1VpbnbbarZdyXDUJAUTcl6XddC39pLLG+X4QCILvB9dIdUERQNw+SJxFzwoymFnXG274do1KOeKq5/WwkY318XC1XNExWFMEQrpFAO5NYyDqlkDaIcNHIAh++G0UJZwTApZ59TVAzqlKc8uWcpTWTrMqKU1BEv02h75Leep6d0DKWGxk02/bdZV6BNl1hWSkEwgEArUQQA5B7rWgmvqiPoIWvRAoFN+pm2YmCQTBzwTmyCQQCAQCgdkjIHhR/EOXInAyCL5LRPtLK1z0/WEbKQcCg0GAW9yuZr7tTS4KmiVtoE7fMWgPprk6K4g4Bzss2ke+CxFkGq/07QLJ2aQRBD8bnCOXQGAuCFgR4KU63u9tgxL7iZcjq82pGrQFFfpGCiHLg8CDHvSgfFvmScs/J9XYtAplIQIiJyE1nPNB8MNpiyhJINAZAkjc+vMvf/nLmbd+jRNLAW+66ab8IxBu7733zixdix3lxqG2OOcQsm2ZWfHf/e53WxVcwOmTn/zkka+JbZVo3NQ7AjEH3zvEkUEgMFsELEFjrZ1//vkTyb1cMkvYLrnkkvzVotIJWQ4EzMUfc8wxrbZlZrkffPDBsfJhAbtCWPAL2GhR5EBgFALm1u0/ftlll02125hNaX74wx/mLtlw2Y9Ce/GOs+RvuOGG/LWvdRQ4mz9xy9sAKpbGLV57B8EvXptFiQOBSgSsLWeBT0vuKXFEYP36nnvumW/+k47H9+IiQFmzxbJ3L9g++Nvf/nb++te0pS1XvB0bxWKIljdlEy9RWtz2DoJf3LaLkgcCWyFgzp17vct9wq+77rq1Xf3CgtsK7oX9h8vd0jkvSVq35WVJqb9QEBG8D1KPvQoWtonXCh4EvwZF/AgEFhcBS9+uueaafClc17UQqLfTTjt1vp6663JGes0QQOQREd8Ms0W7OoLsFq3ForyBQAUC5sv/53/+p+LM9Iesn5c2Cy8kEAgEFgeBIPjFaasoaSBQiQDi/cY3vrHN+vbKi1seRPCW04UEAoHA4iAQBL84bRUlDQQqEWBhi5zvU2yQYxogJBAIBBYHgSD4xWmrKGkgUImAIKnvf//7lee6PIjkQwKBQGBxEAiCX5y2ipIGAiMRYMX3LaL0QwKBQGBxEAiCX5y2ipIGApUIpGVOlSc7PBgu+g7BjKQCgRkgEAQ/A5Aji0CgTwRmtV453jbXZytG2oFA9wgEwXePaaQYCMwcgVmQrx3OQgKBQGBxEAiCX5y2ipIGApUIsOBnQb477LBDZf5xMBAIBIaJQBD8MNslShUI1EbAa12987tPsYd5vD62T4Qj7UCgewSC4LvHNFIMBGaKgD3iH/awh/Wa5y677BIvHekV4Ug8EOgegSD47jGNFAOBmSPARe/Vnn2IKQBvFptVMF8fdYg0A4FVRCAIfhVbPeq8dAh4+9fee+/dCwl7vej222+/dJhFhQKBZUcgCH7ZWzjqtzIICILbf//9O63vrrvuGtZ7p4hGYoHA7BCI18XODuvIKRDIEbjjjjvyF7fceuutmbfACV7bcccd81d3TvP6Ti70hzzkIdk+++yTXXXVVVOj/YAHPCA7+OCDp04nEggEAoH5IBAEPx/cI9cVRQChf/WrX802b968zdvfRMIffvjhOTIC59oIZWHdunUZa/7SSy9t/YrXnXfeOXvMYx7TpghxTyAQCAwEgXajyEAKH8UIBBYJAVvKbtq0Kbvuuuu2IXf1+M53vpNt3Lgxt+qnqZdNb3baaafssMMOy+53v/s1Ssq9PAAHHHBAzLs3Qi4uDgSGh0BY8MNrkyjREiKA3K+//vrspptuGlu7H/zgB7nlfeihh2bWnreV7bbbLnvwgx+cSYficMMNN2SmBEwPVAmL31K43XbbLc+3KmL+Jz/5SR7EV3WuKs04FggEAvNFIAh+vvhH7iuCwI9+9KPcNV+nurfffnv23e9+dyqCT/lQEqyRR/Zp7p8S4cUxiNqcvyV2FAKR+OOmBi677LJM0J3PLLbGTXWI70AgEGiHQBB8O9zirkCgEQIIvskrXb/5zW/mAXN3uctdGuUz6mLk7WO5W5td75T/5ptvzuf0+95UZ1Qd4nggEAg0QyAIvhlecXUg0AoB7u0m4npufZb1EEQ5fv3Xfz1LbvohlCnKEAgEAuMRiCC78fjE2UCgEwSa7uPu+iHNdSdFo2k9OgEvEgkEAoFWCATBt4ItbgoEmiFgLpyLvK5Yz96Ve75unnFdIBAILBcCQfDL1Z5Rm4EigNx33333WqUT0W7jm5BAIBAIBKZBYBgTfNPUIO4NBBYAAe52G9CIXt+8ZZObUSKq/bjjjht1Oo4HAoFAIFAbgSD42lDFhYHAdAhYjmZ3OPPZ11577Ta7zLHa7SUvuG5I8+/T1TruDgQCgXkhEAQ/L+Qj35VEwDrzPffcM99QxgY01qRz3z/wgQ/M16NPsxf9SgIalQ4EAoGRCATBj4QmTgQC/SBgkxifptvI9lOaSDUQCASWFYEIslvWlo16BQKBQCAQCKw0AkHwK938UflAIBAIBAKBZUUgCH5ZWzbqFQgEAoFAILDSCATBr3TzR+UDgUAgEAgElhWBIPhlbdmoVyAQCHSOwC9+8YvO04wEA4G+EAiC7wvZSDcQCASWDoHYPnjpmnSpKxQEv9TNG5ULBAKBQCAQWFUEguBXteWj3oFAIBAIBAJLjUAQ/FI3b1QuEAgEAoFAYFURCIJf1ZaPegcCgUAgEAgsNQJB8EvdvFG5QCAQCAQCgVVFIAh+VVs+6h0IBAKBQCCw1AgEwS9180blAoFAIBAIBFYVgUES/K233rqq7RH1DgQCgUAgEAgEOkFg7gT/kY98JHve856X/fM//3P2jW98I9tvv/3yd2OvX78+27RpUyeVjEQCgUAgEAgEAoFVQ2CuBH/eeedlr3jFKzJk/sY3vjE74YQTsuc+97nZTTfdlP3+7/9+9ld/9Ver1h5R30AgEAgEAoFAoBME5krwH/3oR7PXvva12Z/92Z9lH/jABzKu+Ve96lXZzjvvnL3yla/Mrr766uz222/vpKKRSCAQCAQCgUAgsEoIzJXg99prrzU3/N5775297W1vy+56118W6ZZbbsl+9rOfZTvssMMqtUfUNRAIBAKBQCAQ6ASB7TpJpWUiT3/607MTTzwxe/7zn5+9853vzJ72tKflKX3605/OnvGMZ2SnnXZaVvflDtL56U9/WlmS733ve5XH42AgEAgEAoFAILCsCMyV4B/wgAdkn/3sZ7NrrrlmK3x333337OKLL84e+chHbnV83D9nnXXWyNMUCeT/ne98Z+Q1cSIQCAQCgUAgEFgGBHi/yVwJXgFY6HvuuaefuZx++unZIx7xiOz4449Ph6b+lv4LX/jC7J73vOfUaXWdwFVXXZXdeOON2b3uda+uk16q9H7+859n3//+92PKpkar3nbbbdn973//Gleu9iU8e9tvv/3atOBqozG69j/60Y/ycXqI4+foUs/+zB133JHd/e53z44++ujZZ17Kcccdd8yPzJ3gS+XKRNb/+Mc/7pTgX/e615WzGcz/73//+zMD8ote9KLBlGmIBaEEmbJ597vfPcTiDapMGzZsyM4999xBlWmIhXnOc56Tr97ZZZddhli8wZTprW99ax74bNo0ZDQCV1xxRfaud70re9Ob3jT6ohmfmWuQ3YzrGtkFAoFAIBAIBAIrg8DgLHjujSZz7yvTUlHRQCAQCAQCgUCgAQKDI3hz5SGBQCAQCAQCgUAgMB0C4aKfDr+4OxAIBAKBQCAQGCQCQfCDbJYoVCAQCAQCgUAgMB0CQfDT4Tf13Xe7290yn5DxCFhOud12g5tRGl/oOZ21VCdkMgL6U92NtCantrxXGJ/SDqPLW8vpawajoY1Rd/nFFpm+apFCIBAIBAKBQCAQCAwJgbDgh9QaUZZAIBAIBAKBQKAjBILgOwIykgkEAoFAIBAIBIaEQBD8kFojyhIIBAKBQCAQCHSEQBB8R0BGMoFAIBAIBAKBwJAQCIIfUmtEWQKBQCAQCAQCgY4QCILvCMhIJhAIBAKBQCAQGBICQfBDao0oSyAQCAQCgUAg0BECQfAdARnJBAKBQCAQCAQCQ0IgCH5IrRFlqYXAHXfckcX+TLWgiosmIPDTn/50whVxOhBYXASC4OfcdgaYV7/61dnjH//4/POa17wm+8lPfjLnUg03+xtvvDF7+MMfnl133XXDLeScSnbuuedmRx55ZLbHHntkT3va07Jbb711TiVZjGzf9773ZYcddthiFHYOpbzqqquyZz/72dljH/vY7Pjjj8/+7d/+bQ6lGH6WP/vZz7JXvOIV2YEHHpjts88+2Zve9KbBFDoIfs5N8a53vSu79tprs4suuij/eKje/e53z7lUw8z+7W9/e3bsscdmN9988zALOMdS/e///m/2nOc8J3vb296WXX311TnJv/KVr5xjiYabNcXnxS9+cfayl70sPEFjmunlL395dtJJJ2VXXnll9p73vCd76Utfmn3rW98ac8dqnnrrW9+a3XDDDdlll12Wffazn83e8IY3ZBdffPEgwAiCn3Mz0I5f//rXZ14Q4kMDvOCCC+ZcquFlz6vx7//+79nHPvaxbMcddxxeAedcos997nPZ3nvvne2///55P3rJS16S/cd//MecSzXM7Ddu3Jjd5z73ySjXIdUI/PznP8/+4A/+ILfgXbHrrrtmO+ywQ3b55ZdX37DCR1/0ohdl73znO/MX8njhjLGKVT8ECYKfcyscfPDB2SMf+ci8FN///vez9773vdmpp54651INL/t73OMe2Sc+8Ylszz33HF7hBlAiFsQuu+yyVpKdd945u+2227If//jHa8fixy8ReMYznpH9/d//fXbve987IBmBAKJ66lOfmiuLLqEU8XzElMa2gN3znvfMlZ/3v//92VFHHZWdcsopg8EpCH7b9prLEVrfs571rAzh/8Zv/MZcyhCZLi4C3/nOd7Ltt99+rQKJvH7wgx+sHYsfgUAbBEz5/PZv/3b2lre8JbxnYwD06mEeWN60L33pS2OunN2pIPjZYZ3n9MAHPjBjjfqceeaZ+THk/vSnPz1367DgQ7KsCqfAZTQCO+20U3b77bevXfC9730vu9e97pU94AEPWDsWPwKBpgh8+ctfzjZs2JD9+Z//+Zq7vmkaq3L9M5/5zDx+6ogjjsiVoSHUe7shFGKVynDOOeeszc+sX78+s+SL5W7O5kMf+lBO/KuEx6i6lnEadV0c/yUCD3vYw7LNmzevweH3brvttvZ//AgEmiJgpcoJJ5yQnXbaadnv/d7vNb19Za5/xzveke27777ZIYccktfZ7w9/+MODqH8Q/IybQVBdUd785jfnUfSsee5UH9b9fe973+JlK/e7jNPKAdCwwscdd1z2/Oc/P58rtVTujW98Y0z1NMQwLt8aAW753/qt38ot91tuuSU/aVwyPoXciQAPLA/HGWeckf3f//1fbsWLXxiChIt+zq2A4Ddt2pRHqT7oQQ/KfLh6QgKBJggI9DFHamARtGm/AJZXSCDQBgHLvS688MI8GDGNS77tHRCyNQLPfe5zM1NkVrGIobJnwKte9aqtL5rTf3fZsiPYL+aUd2QbCAQCHSNgysf8e8y9dwxsJBcITEDAKiiK9nbbDccxHgQ/odHidCAQCAQCgUAgsIgIhIt+EVstyhwIBAKBQCAQCExAIAh+AkBxOhAIBAKBQCAQWEQEguAXsdWizIFAIBAIBAKBwAQEguAnABSnA4FAIBAIBAKBRUQgCH4RWy3KHAgEAoFAIBAITEAgCH4CQHE6EAgEAoFAIBBYRASC4Bex1aLMgUAgEAgEAoHABASC4CcAFKcDgUAgEAgEAoFFRCAIfhFbLcocCAQCgUAgEAhMQCAIfgJAcToQCAQCgUAgEFhEBILgF7HVosyBQCAQCAQCgcAEBILgJwAUpwOBQCAQCAQCgUVEIAh+EVstyhwIBAKBQCAQCExAIAh+AkBxOhAIBAKBQCAQWEQEguAXsdWizIFAIBAIBAKBwAQEguAnABSnA4FAIBAIBAKBRUQgCH4RWy3KHAgEAoFAIBAITEAgCH4CQHE6EAgEZoPATTfdNDajH//4x9mtt9469po4GQgEAnciEAR/JxbxKxAIBOaEwAUXXJC95S1vGZv7L37xi+y5z31udscdd4y9Lk4GAoHALxG4y5aH5hcBRiAQCAQC80Lg5z//efakJz0p+8///M9s++23H1uM973vfdm3vvWt7OUvf/nY6+JkIBAIZFlY8NELAoEVR+DKK6/Mnv/852cnn3xy9uhHPzq75JJLsuc973nZy172suxBD3pQdsABB2SbNm3KUULGb33rW7MDDzwwe+hDH5r95V/+ZeYYOfbYY7PXve512c4775ydeeaZ2fHHH5+dfvrp2R577JGne+GFF2Z/+Id/mP3ar/1a9uxnPzv73ve+l9/37ne/O9t9993XyN1973znO7P169dnu+yyS/a2t70tv86fpz71qdnrX//67Lbbbls7Fj8CgUCgGoEg+Gpc4mggsDII/PCHP8z+5V/+JXvCE56QveENb8juete75v8/8IEPzL7whS9khx12WPYnf/InOR7I9h//8R+zf/qnf8o+8IEPZP/6r/+aveMd78jPffWrX83OPvvs7O1vf3uuAFx77bXZBz/4wewzn/lMdsopp2QnnHBCdt/73je74oorsq9//evZWWedld933nnnZRs2bMh/++O+9773vdlHP/rRXEF4xStesUbo9773vbO99tprTeFYuyl+BAKBwDYIBMFvA0kcCARWD4F73ete2V/8xV9kp556al75+93vftlrX/va3IJ+1rOelW3evDk/jnhf8IIX5MrA4Ycfnlv+73nPe9YA4zqXBiuevPSlL80e9rCHZc985jPzufNXv/rV2a677podc8wx2cUXX5xf85WvfCX3BuT//OqP63gTpHX/+98/+8Y3vrF2mufAPSGBQCAwHoEg+PH4xNlAYCUQQMJF4UZPYl48BbZ97Wtfyy36dI51XyTf3XbbLZ3Kv5E5YXn7vcMOO+T/3+Me91hLk/JQzM8FSUHwW/4//elP/czFtddff336N74DgUBgBAJB8COAicOBwCohcLe73W2r6t7lLnfZ6v/0z0477ZR98YtfTP9mn//857NHPOIRa/+X09luu+3Wzo36Yf79m9/85lanR+XvItc+/OEP3+r6+CcQCAS2RSAIfltM4kggEAiMQEC0u0h2QW633HJLPg9/xBFHjLi63uH9998/u+aaa+pdvOUq1z72sY+tfX1cGAisKgJB8Kva8lHvQKAFAoLt7nnPe65FxrOkUwBei+TyW5D1VVddVet2UwWC+fbbb79a18dFgcAqIxDr4Fe59aPugUBLBG6//fbs7ne/ez633jKJtdtuvvnm7NBDD80j4+usg//Yxz6WFQP71hKKH4FAILAVAkHwW8ER/wQCgcA8EPiHf/iHXGF4yUteMjb7o446Kp8iKAcFjr0pTgYCK4rA/wMI+YgW4tvsvAAAAABJRU5ErkJggg==" alt="plot of chunk unnamed-chunk-2"/></p>
+
+<p>You can use your own CSS file instead of the built-in style in the <strong>markdown</strong> package &ndash; just set the option <code>markdown.HTML.stylesheet</code>, e.g.</p>
+
+<pre><code class="r">options(markdown.HTML.stylesheet = &quot;path/to/a/custom/style.css&quot;)
+</code></pre>
+
+</body>
+
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/doc/knitr-markdown.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/INDEX	(revision 2476)
@@ -0,0 +1,84 @@
+Sweave2knitr            Convert Sweave to knitr documents
+all_labels              Get all chunk labels in a document
+all_patterns            All built-in patterns
+asis_output             Mark an R object with a special class
+clean_cache             Clean cache files that are probably no longer
+                        needed
+combine_words           Combine multiple words into a single string
+current_input           Query the current input filename
+dep_auto                Build automatic dependencies among chunks
+dep_prev                Make later chunks depend on previous chunks
+engine_output           An output wrapper for language engine output
+extract_raw_output      Mark character strings as raw output that
+                        should not be converted
+fig_chunk               Obtain the figure filenames for a chunk
+fig_path                Path for figure files
+hook_ffmpeg_html        Hooks to create animations in HTML output
+hook_movecode           Some potentially useful document hooks
+hook_pdfcrop            Built-in chunk hooks to extend knitr
+hook_plot_html          Default plot hooks for different output formats
+image_uri               Encode an image file to a data URI
+imgur_upload            Upload an image to imgur.com
+include_graphics        Embed external images in 'knitr' documents
+include_url             Embed a URL as an HTML iframe or a screenshot
+                        in 'knitr' documents
+inline_expr             Wrap code using the inline R expression syntax
+kable                   Create tables in LaTeX, HTML, Markdown and
+                        reStructuredText
+knit                    Knit a document
+knit2html               Convert markdown to HTML using knit() and
+                        markdownToHTML()
+knit2pdf                Convert Rnw or Rrst files to PDF using knit()
+                        and texi2pdf() or rst2pdf()
+knit2wp                 Knit an R Markdown document and post it to
+                        WordPress
+knit_child              Knit a child document
+knit_engines            Engines of other languages
+knit_exit               Exit knitting early
+knit_expand             A simple macro preprocessor for templating
+                        purposes
+knit_filter             Spell check filter for source documents
+knit_global             The global environment in which code chunks are
+                        evaluated
+knit_hooks              Hooks for R code chunks, inline R code and
+                        output
+knit_meta               Metadata about objects to be printed
+knit_params             Extract knit parameters from a document
+knit_params_yaml        Extract knit parameters from YAML text
+knit_patterns           Patterns to match and extract R code in a
+                        document
+knit_print              A custom printing function
+knit_rd                 Knit package documentation
+knit_theme              Syntax highlighting themes
+knit_watch              Watch an input file continuously and knit it
+                        when it is updated
+knitr-package           A general-purpose tool for dynamic report
+                        generation in R
+load_cache              Load the cache database of a code chunk
+opts_chunk              Default and current chunk options
+opts_hooks              Hooks for code chunk options
+opts_knit               Options for the knitr package
+opts_template           Template for creating reusable chunk options
+pandoc                  A Pandoc wrapper to convert documents to other
+                        formats
+pat_rnw                 Set regular expressions to read input documents
+plot_crop               Crop a plot (remove the edges) using PDFCrop or
+                        ImageMagick
+rand_seed               An unevaluated expression to return
+                        .Random.seed if exists
+read_chunk              Read chunks from an external script
+read_rforge             Read source code from R-Forge
+render_html             Set output hooks for different output formats
+rocco                   Knit R Markdown using the classic Docco style
+rst2pdf                 A wrapper for rst2pdf
+set_alias               Set aliases for chunk options
+set_header              Set the header information
+set_parent              Specify the parent document of child documents
+spin                    Spin goat's hair into wool
+spin_child              Spin a child R script
+stitch                  Automatically create a report based on an R
+                        script and a template
+vignette_engines        Package vignette engines
+wrap_rmd                Wrap long lines in Rmd files
+write_bib               Generate BibTeX bibliography databases for R
+                        packages
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/bin/knit
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/bin/knit	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/bin/knit	(revision 2476)
@@ -0,0 +1,33 @@
+#!/usr/bin/env Rscript
+
+local({
+  p = commandArgs(TRUE)
+  if (length(p) == 0L || any(c('-h', '--help') %in% p)) {
+    message('usage: knit input [input2 input3] [-n] [-o output output2 output3]
+    -h, --help        to print help messages
+    -n, --no-convert  do not convert tex to pdf, markdown to html, etc
+    -o                output filename(s) for knit()')
+    q('no')
+  }
+
+  library(knitr)
+  o = match('-o', p)
+  if (is.na(o)) output = NA else {
+    output = tail(p, length(p) - o)
+    p = head(p, o - 1L)
+  }
+  nc = c('-n', '--no-convert')
+  knit_fun = if (any(nc %in% p)) {
+    p = setdiff(p, nc)
+    knit
+  } else {
+    if (length(p) == 0L) stop('no input file provided')
+    if (grepl('\\.(R|S)(nw|tex)$', p[1])) {
+      function(x, ...) knit2pdf(x, ..., clean = TRUE)
+    } else {
+      if (grepl('\\.R(md|markdown)$', p[1])) knit2html else knit
+    }
+  }
+
+  mapply(knit_fun, p, output = output, MoreArgs = list(envir = globalenv()))
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/opencpu/apps/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/opencpu/apps/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/opencpu/apps/index.html	(revision 2476)
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+  <title>R Notebook: A knitr app on OpenCPU</title>
+  <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
+  <!-- Styles for R syntax highlighter -->
+  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/styles/github.min.css">
+  <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet">
+  <style type="text/css">
+    textarea {
+      font-size: 12px;
+      font-family: 'DejaVu Sans Mono', 'Droid Sans Mono', 'Lucida Console', Consolas, Monaco, monospace;
+      width: 99%;
+    }
+  </style>
+<!-- R syntax highlighter -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/highlight.min.js"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/languages/r.min.js"></script>
+<script>hljs.initHighlightingOnLoad();</script>
+
+</head>
+<body>
+<div class="container">
+<form action="https://public.opencpu.org/ocpu/library/base/R/identity/json" method="POST" id="knitForm">
+<textarea name="x" class="form-control" rows=10></textarea>
+<div><button type="button" class="btn btn-primary" id="knit"><span class="glyphicon glyphicon-play"></span> Convert</button></div>
+<!-- the knitting result will be rendered inside this div -->
+<div id="result"></div>
+</form>
+</div>
+<script>
+$('textarea[name="x"]').val('Start typing here...\n\n```{r test, fig.width=4, fig.height=4}\n# write R code here\npar(mar = c(4, 4, .1, .1))\nsmoothScatter(rnorm(500), rnorm(500))\n```\n\nThe value of pi is `r pi`.');
+
+$('#knit').click(function() {
+  $(this).attr('class', 'btn disabled');
+  $('#knitForm').submit();
+});
+/* attach a submit handler to the form */
+$('#knitForm').submit(function(event) {
+
+  /* stop form from submitting normally */
+  event.preventDefault();
+
+  /* get some values from elements on the page: */
+  var $form = $( this ),
+      term = $form.find('textarea[name="x"]').val().replace(/\\/g, '\\\\').replace(/"/g, '\\"'),
+      url = $form.attr('action'),
+      rcode = 'library(knitr)\n' +
+              'knit2html(text = "' + term + '", fragment.only = TRUE)';
+  /* Send the data using post and put the results in a div */
+  $.post(url, { x: rcode },
+    function( data ) {
+        $("#result").html(data[0]);
+        $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
+    })
+    .complete(function() {$('#knit').attr('class', 'btn btn-primary');})
+    .error(function() { alert("An error occurred!"); });
+});
+</script>
+
+</body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/opencpu/apps/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/CITATION	(revision 2476)
@@ -0,0 +1,45 @@
+citHeader("To cite the 'knitr' package in publications use:")
+
+year = sub('.*(2[[:digit:]]{3})-.*', '\\1', meta$Date, perl = TRUE)
+vers = paste('R package version', meta$Version)
+
+citEntry(
+  entry = 'manual',
+  title = paste('knitr:', meta$Title),
+  author = Filter(function(p) 'aut' %in% p$role, as.person(meta$Author)),
+  year = year,
+  note = vers,
+  url = meta$URL,
+  textVersion = paste('Yihui Xie (', year, '). knitr: ', meta$Title, '. ', vers, '.', sep = '')
+)
+
+citEntry(
+  entry = 'book',
+  title = 'Dynamic Documents with {R} and knitr',
+  author = 'Yihui Xie',
+  publisher = 'Chapman and Hall/CRC',
+  address = 'Boca Raton, Florida',
+  year = '2015',
+  edition = '2nd',
+  note = 'ISBN 978-1498716963',
+  url = meta$URL,
+  textVersion = paste('Yihui Xie (2015)', 'Dynamic Documents with R and knitr.',
+                      '2nd edition. Chapman and Hall/CRC. ISBN 978-1498716963')
+)
+
+citEntry(
+  entry = 'incollection',
+  booktitle = 'Implementing Reproducible Computational Research',
+  editor = 'Victoria Stodden and Friedrich Leisch and Roger D. Peng',
+  title = 'knitr: A Comprehensive Tool for Reproducible Research in {R}',
+  author = 'Yihui Xie',
+  publisher = 'Chapman and Hall/CRC',
+  year = '2014',
+  note = 'ISBN 978-1466561595',
+  url = 'http://www.crcpress.com/product/isbn/9781466561595',
+  textVersion = paste('Yihui Xie (2014)',
+                      'knitr: A Comprehensive Tool for Reproducible Research in R.',
+                      'In Victoria Stodden, Friedrich Leisch and Roger D. Peng, editors,',
+                      'Implementing Reproducible Computational Research.',
+                      'Chapman and Hall/CRC. ISBN 978-1466561595')
+)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-graphics.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-graphics.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-graphics.Rnw	(revision 2476)
@@ -0,0 +1,403 @@
+%% LyX 2.2.1 created this file.  For more info, see http://www.lyx.org/.
+%% Do not edit unless you really know what you are doing.
+\documentclass[nohyper,justified]{tufte-handout}
+\usepackage[T1]{fontenc}
+\usepackage{url}
+\usepackage[unicode=true,pdfusetitle,
+ bookmarks=true,bookmarksnumbered=true,bookmarksopen=true,bookmarksopenlevel=2,
+ breaklinks=true,pdfborder={0 0 1},backref=false,colorlinks=false]
+ {hyperref}
+\hypersetup{
+ pdfstartview=FitH}
+\usepackage{breakurl}
+
+\makeatletter
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
+
+\title{knitr Graphics Manual}
+\author{Yihui Xie}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
+\renewcommand{\textfraction}{0.05}
+\renewcommand{\topfraction}{0.8}
+\renewcommand{\bottomfraction}{0.8}
+\renewcommand{\floatpagefraction}{0.75}
+
+\usepackage[buttonsize=1em]{animate}
+
+\makeatother
+
+\begin{document}
+<<setup, include=FALSE, cache=FALSE>>=
+library(knitr)
+options(formatR.arrow=TRUE,width=50)
+opts_chunk$set(fig.path='figure/graphics-', cache.path='cache/graphics-', fig.align='center', dev='tikz', fig.width=5, fig.height=5, fig.show='hold', cache=TRUE, par=TRUE)
+knit_hooks$set(par=function(before, options, envir){
+if (before && options$fig.show!='none') par(mar=c(4,4,.1,.1),cex.lab=.95,cex.axis=.9,mgp=c(2,.7,0),tcl=-.3)
+}, crop=hook_pdfcrop)
+@
+\maketitle
+\begin{abstract}
+This manual shows features of graphics in the \textbf{knitr} package
+(version \Sexpr{packageVersion('knitr')}) in detail, including the
+graphical devices, plot recording, plot rearrangement, control of
+plot sizes, the tikz device, figure captions, animations and other
+types of plots such as \textbf{rgl} or GGobi plots.
+\end{abstract}
+Before reading this specific manual\footnote{\url{http://bit.ly/knitr-graphics-src} (Rnw source)},
+you must have finished the main manual\footnote{\url{http://bit.ly/knitr-main}}.
+
+\section{Graphical Devices}
+
+The \textbf{knitr} package comes with more than 20 built-in graphical
+devices, and you can specify them through the \texttt{dev} option.
+This document uses the global option \texttt{dev='tikz'}, i.e., the
+plots are recorded by the tikz device by default, but we can change
+the device locally. Since tikz will be used extensively throughout
+this manual and you will see plenty of tikz graphics later, now we
+first show a few other devices.
+
+<<test-plot, eval=FALSE>>=
+with(trees, symbols(Height, Volume, circles = Girth/16, inches = FALSE, bg = 'deeppink', fg = 'gray30'))
+@
+
+\begin{marginfigure}
+<<pdf-dev, ref.label='test-plot', dev='pdf', out.width='\\linewidth', echo=FALSE>>=
+@
+
+\caption{The default PDF device.\label{mar:pdf-dev}}
+\end{marginfigure}
+
+\begin{marginfigure}
+<<png-dev, ref.label='test-plot', dev='png', out.width='\\linewidth', echo=FALSE>>=
+@
+
+\caption{The PNG device.\label{mar:png-dev}}
+\end{marginfigure}
+
+Figure \ref{mar:pdf-dev} and \ref{mar:png-dev} show two standard
+devices in the \textbf{grDevices} package. We can also use devices
+in the \textbf{Cairo} or \textbf{cairoDevice} package, e.g., the chunk
+below uses the \emph{CairoPNG()} device in the \textbf{Cairo} package.
+
+<<cairo-png-dev, ref.label='test-plot', dev='CairoPNG', out.width='.5\\linewidth', echo=FALSE>>=
+@
+
+\section{Plot Recording}
+
+As mentioned in the main manual, \textbf{knitr} uses the \textbf{evaluate}
+package to record plots. There are two sources of plots: first, whenever
+\emph{plot.new()} or \emph{grid.newpage()} is called, \textbf{evaluate}
+will try to save a snapshot of the current plot\footnote{For technical details, see \texttt{?setHook} and \texttt{?recordPlot}};
+second, after each complete expression is evaluated, a snapshot is
+also saved. To speed up recording, the null graphical device \texttt{pdf(file
+= NULL)} is used. Figure \ref{fig:two-high} shows two expressions
+producing two high-level plots.
+
+\begin{figure}
+<<two-high, fig.width=3, fig.height=2.5, out.width='.49\\linewidth'>>=
+plot(cars)
+boxplot(cars$dist,xlab='dist')
+@
+
+\caption{Two high-level plots are captured. The key to arrange two plots side
+by side is to specify the \texttt{out.width} option so that each plot
+takes less than half of the line width. We do not have to use the
+\texttt{par(mfrow)} trick, and it may not work in some cases (e.g.
+to put base graphics and \textbf{ggplot2} side by side; recall Figure
+1 in the main manual).\label{fig:two-high}}
+\end{figure}
+
+Figure \ref{fig:low-plot-loop} shows another example of two R expressions,
+but the second expression only involves with low-level plotting changes.
+By default, low-level plot changes are discarded, but you can retain
+them with the option \texttt{fig.keep='all'}.
+
+\begin{figure}
+<<low-plot-loop, fig.width=3, fig.height=2.5, out.width='.49\\linewidth', fig.keep='all'>>=
+plot(0,0,type='n',ann=FALSE)
+for(i in seq(0, 2*pi,length=20)) {points(cos(i),sin(i))}
+@
+
+\caption{Two complete R expressions will produce at most two plots, as long
+as there are not multiple high-level plotting calls in each expression;
+option \texttt{fig.keep='all'} here.\label{fig:low-plot-loop}}
+\end{figure}
+
+Together with \texttt{fig.show='asis'}, we can show the process of
+plotting step by step like Figure \ref{fig:high-with-low}.
+
+\begin{figure}
+<<high-with-low, fig.width=3, fig.height=2.5, out.width='.5\\linewidth', fig.keep='all', fig.show='asis'>>=
+plot(cars)
+abline(lm(dist~speed, data=cars))  # a regression line
+@
+
+\caption{Low-level plot changes in base graphics can be recorded separately,
+and plots can be put in the places where they were produced.\label{fig:high-with-low}}
+\end{figure}
+
+A further note on plot recording: \textbf{knitr} examines all recorded
+plots (as R objects) and compares them sequentially; if the previous
+plot is a ``subset'' of the next plot (= previous plot + low-level
+changes), the previous plot will be removed when \texttt{fig.keep='high'}.
+If two successive plots are identical, the second one will be removed
+by default, so it might be a little bit surprising that the following
+chunk will only produce one plot by default\footnote{adapted from \url{https://github.com/yihui/knitr/issues/41}}:
+
+<<identical-plots,eval=FALSE>>=
+m = matrix(1:100, ncol = 10)
+image(m)
+image(m*2)  # exactly the same as previous plot
+@
+
+\section{Plot Rearrangement}
+
+We can rearrange the plots in chunks in several ways. They can be
+inserted right after the line(s) of R code which produced them, or
+accumulated till the end of the chunk. There is an example in the
+main manual demonstrating \texttt{fig.show='asis'} for two high-level
+plots, and Figure \ref{fig:high-with-low} in this manual also demonstrates
+this option for a high-level plot followed by a low-level change.
+
+Here is an example demonstrating the option \texttt{fig.keep='last'}
+(only the last plot is kept):
+
+\begin{figure}
+<<fig-last, fig.width=5.2, fig.height=3, out.width='.7\\linewidth', fig.keep='last', message=FALSE>>=
+library(ggplot2)
+pie <- ggplot(diamonds, aes(x = factor(1), fill = cut)) + xlab('cut') + geom_bar(width = 1) 
+pie + coord_polar(theta = "y") # a pie chart
+pie + coord_polar() # the bullseye chart 
+@
+
+\caption{Two plots were produced in this chunk, but only the last one is kept.
+This can be useful when we experiment with many plots, but only want
+the last result. (Adapted from the \textbf{ggplot2} website)}
+\end{figure}
+
+When multiple plots are produced by a code chunk, we may want to show
+them as an animation with the option \texttt{fig.show='animate'}.
+Figure \ref{fig:clock-animation} shows a simple clock animation;
+you may compare the code to Figure \ref{fig:high-with-low} to understand
+that high-level plots are always recorded, regardless of where they
+appeared.
+
+\begin{figure}
+<<clock-animation, fig.width=3, fig.height=3, out.width='.4\\linewidth', fig.show='animate', tidy=FALSE, crop=TRUE>>=
+par(mar = rep(3, 4))
+for (i in seq(pi/2, -4/3 * pi, length = 12)) {
+    plot(0, 0, pch = 20, ann = FALSE, axes = FALSE)
+    arrows(0, 0, cos(i), sin(i))
+    axis(1, 0, "VI"); axis(2, 0, "IX")
+    axis(3, 0, "XII"); axis(4, 0, "III"); box()
+}
+@
+
+\caption{A clock animation. You have to view it in Adobe Reader: click to play/pause;
+there are also buttons to speed up or slow down the animation.\label{fig:clock-animation}}
+\end{figure}
+
+We can also set the alignment of plots easily with the \texttt{fig.align}
+option; this document uses \texttt{fig.align='center'} as a global
+option, and we can also set plots to be left/right-aligned. Figure
+\ref{fig:maruko-plot} is an example of a left-aligned plot.
+
+\begin{figure}
+<<maruko-plot, fig.width=7, fig.height=4, out.width='.45\\linewidth', fig.align='left', crop=TRUE>>=
+stars(cbind(1:16,10*(16:1)),draw.segments=TRUE)
+@
+
+\caption{A left-aligned plot adapted from \texttt{?stars} (I call this the
+``Maruko'' plot, and it is one of my favorites; see \protect\url{http://en.wikipedia.org/wiki/Chibi_Maruko-chan}).\label{fig:maruko-plot}}
+\end{figure}
+
+
+\section{Plot Size}
+
+We have seen several examples in which two or more plots can be put
+side by side, and this is because the plots were resized in the output
+document; with the chunk option \texttt{out.width} less than half
+of the line width, \LaTeX{} will arrange two plots in one line; if
+it is less than $1/3$ of the line width, three plots can be put in
+one line. Of course we can also set it to be an absolute width like
+\texttt{3in} (3 inches). This option is used extensively in this document
+to control the size of plots in the output document.
+
+\section{The tikz Device}
+
+The main advantage of using tikz graphics is the consistency of styles
+between texts in plots and those in the main document. Since we can
+use native \LaTeX{} commands in plots, the styles of texts in plots
+can be very sophisticated (see Figure \ref{fig:math-formula-tt} for
+an example).
+
+\begin{figure}
+<<math-formula-tt, fig.width=6, fig.height=2, out.width='\\linewidth'>>=
+plot(0:1,0:1,type='n', ylab='origin of statistics', xlab='statistical presentation rocks with \\LaTeX{}')
+text(.5,c(.8,.5,.2), c('\\texttt{lm(y \\textasciitilde{} x)}', '$\\hat{\\beta}=(X^{\\prime}X)^{-1}X^{\\prime}y$',  '$(\\Omega,\\mathcal{F},\\mu)$'))
+@
+
+\caption{A plot created by \textbf{tikzDevice} with math expressions and typewriter
+fonts. Note the font style consistency \textendash{} we write the
+same expressions in \protect\LaTeX{} here: $\hat{\beta}=(X^{\prime}X)^{-1}X^{\prime}y$
+and $(\Omega,\mathcal{F},\mu)$; also \texttt{lm(y \textasciitilde{}
+x)}.\label{fig:math-formula-tt}}
+\end{figure}
+
+When using Xe\LaTeX{} instead of PDF\LaTeX{} to compile the document,
+we need to tell the \textbf{tikzDevice} package by setting the \texttt{tikzDefaultEngine}
+option before all plot chunks (preferably in the first chunk):
+
+<<xetex-tikz, eval=FALSE>>=
+options(tikzDefaultEngine='xetex')
+@
+
+This is useful and often necessary to compile tikz plots which contain
+(UTF8) multi-byte characters.
+
+\section{Figure Caption}
+
+If the chunk option \texttt{fig.cap} is not \texttt{NULL} or \texttt{NA},
+the plots will be put in a \texttt{figure} environment when the output
+format is \LaTeX{}, and this option is used to write a caption in
+this environment using \texttt{\textbackslash{}caption\{\}}. The other
+two related options are \texttt{fig.scap} and \texttt{fig.lp} which
+set the short caption and a prefix string for the figure label. The
+default short caption is extracted from the caption by truncating
+it at the first period or colon or semi-colon. The label is a combination
+of \texttt{fig.lp} and the chunk label. Because \texttt{figure} is
+a float environment, it can float away from the chunk output to other
+places such as the top or bottom of a page when the \TeX{} document
+is compiled.
+
+\section{Other Features}
+
+The \textbf{knitr} package can be extended with hook functions, and
+here I give a few examples illustrating the flexibility.
+
+\subsection{Cropping PDF Graphics}
+
+Some R users may have been suffering from the extra margins in R plots,
+especially in base graphics (\textbf{ggplot2} is much better in this
+aspect). The default graphical option \texttt{mar} is about \texttt{c(5,
+4, 4, 2)} (see \texttt{?par}), which is often too big. Instead of
+endlessly setting \texttt{par(mar)}, you may consider the program
+\texttt{pdfcrop}, which can crop the white margin automatically\footnote{\url{http://www.ctan.org/pkg/pdfcrop}}.
+In \textbf{knitr}, we can set up the hook \emph{hook\_pdfcrop()} to
+work with a chunk option, say, \texttt{crop}.
+
+<<crop-hook, cache=FALSE>>=
+knit_hooks$set(crop=hook_pdfcrop)
+@
+
+Now we compare two plots below. The first one is not cropped (Figure
+\ref{fig:pdf-nocrop}); then the same plot is produced but with a
+chunk option \texttt{crop=TRUE} which will call the cropping hook
+(Figure \ref{fig:pdf-crop}).
+
+\begin{figure}
+\begin{kframe}
+<<pdf-nocrop, fig.width=3.2, fig.height=3.2, out.width='.5\\linewidth'>>=
+par(mar=c(5,4,4,2),bg='white')  # large margin
+plot(lat~long,data=quakes,pch=20,col=rgb(0,0,0,.2))
+@
+\end{kframe}
+
+\caption{The original plot produced in R, with a large margin.\label{fig:pdf-nocrop}}
+\end{figure}
+
+\begin{figure}
+\begin{kframe}
+<<pdf-crop, ref.label='pdf-nocrop', echo=FALSE, fig.width=3.2, fig.height=3.2, out.width='.5\\linewidth', crop=TRUE>>=
+@
+\end{kframe}
+
+\caption{The cropped plot; it fits better in the document.\label{fig:pdf-crop}}
+\end{figure}
+
+As we can see, the white margins are gone. If we use \emph{par()},
+it might be hard and tedious to figure out a reasonable amount of
+margin in order that neither is any label cropped nor do we get a
+too large margin. My experience is that \texttt{pdfcrop} works well
+with base graphics, but barely works with \textbf{grid} graphics (therefore
+\textbf{lattice} and \textbf{ggplot2} are ruled out).
+
+\subsection{Manually Saved Plots}
+
+We have explained how R plots are recorded before. In some cases,
+it is not possible to capture plots by \emph{recordPlot()} (such as
+\textbf{rgl} plots), but we can save them using other functions. To
+insert these plots into the output, we need to set up a hook first
+like this (see \texttt{?hook\_plot\_custom} for details):
+
+<<custom-plot-hook, cache=FALSE>>=
+knit_hooks$set(custom.plot = hook_plot_custom)
+@
+
+Then we set the chunk option \texttt{custom.plot=TRUE}, and manually
+write plot files in the chunk. Here we show an example of capturing
+GGobi plots using the function \emph{ggobi\_display\_save\_picture()}
+in the \textbf{rggobi} package:
+
+<<ggobi-plot, custom.plot=TRUE, fig.ext='png', out.width='2.5in', results='hide', warning=FALSE>>=
+library(rggobi)
+ggobi(ggobi_find_file('data', 'flea.csv'))
+Sys.sleep(1)  # wait for snapshot
+ggobi_display_save_picture(path=fig_path('.png'))
+@
+
+One thing to note here is we have to make sure the plot filename is
+from \emph{fig\_path()}, which is a convenience function to return
+the figure path for the current chunk.
+
+We can do whatever normal R plots can do with this hook, and we give
+another example below to show how to work with animations.
+
+<<rgl-animation, custom.plot=TRUE, fig.ext='png', out.width='2.5in', fig.show='animate', fig.num=20, interval=.4,  aniopts='controls,autoplay', results='hide', warning=FALSE>>=
+library(animation) # adapted from demo('rgl_animation')
+data(pollen)
+uM = matrix(c(-0.37, -0.51, -0.77, 0, -0.73, 0.67, -0.1, 0, 0.57, 0.53, -0.63, 0, 0, 0, 0, 1), 4, 4)
+library(rgl)
+open3d(userMatrix = uM, windowRect = c(0, 0, 400, 400))
+plot3d(pollen[, 1:3])
+zm = seq(1, 0.05, length = 20)
+par3d(zoom = 1)  # change the zoom factor gradually later
+for (i in 1:length(zm)) {
+    par3d(zoom = zm[i]); Sys.sleep(.05)
+    rgl.snapshot(fig_path('png', number = i))
+}
+@
+
+\subsection{rgl Plots}
+
+With the hook \emph{hook\_rgl()}, we can easily save snapshots from
+the \textbf{rgl} package. We have shown an example in the main manual,
+and here we add some details. The rgl hook is a good example of taking
+care of details by carefully using the \texttt{options} argument in
+the hook; for example, we cannot directly set the width and height
+of rgl plots in \emph{rgl.snapshot()} or \emph{rgl.postscript()},
+so we make use of the options \texttt{fig.width}, \texttt{fig.height}
+and \texttt{dpi} to calculate the expected size of the window, then
+resize the current window by \emph{par3d()}, and finally save the
+plot.
+
+This hook is actually built upon \emph{hook\_plot\_custom()} \textendash{}
+first it saves the \textbf{rgl} snapshot, then it calls \emph{hook\_plot\_custom()}
+to write the output code.
+
+\appendix
+
+\section{How to Compile This Manual}
+
+This manual has a long chain of dependencies, so it may not be easy
+to compile. These packages are required (all of them are free software):
+\begin{description}
+\item [{R}] Cairo, ggplot2, tikzDevice, rgl, rggobi, animation (all available
+on CRAN except tikzDevice which is on R-Forge for the time being)
+\item [{\LaTeX{}}] animate, hyperref and the tufte-handout class
+\item [{Other}] GGobi, pdfcrop
+\end{description}
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-beamer.lyx
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-beamer.lyx	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-beamer.lyx	(revision 2476)
@@ -0,0 +1,438 @@
+#LyX 2.1 created this file. For more info see http://www.lyx.org/
+\lyxformat 474
+\begin_document
+\begin_header
+\textclass beamer
+\begin_preamble
+\usetheme{PaloAlto}
+\end_preamble
+\use_default_options true
+\begin_modules
+knitr
+\end_modules
+\maintain_unincluded_children false
+\language english
+\language_package none
+\inputencoding default
+\fontencoding global
+\font_roman default
+\font_sans default
+\font_typewriter default
+\font_math auto
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100
+\font_tt_scale 100
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize 10
+\spacing single
+\use_hyperref true
+\pdf_bookmarks true
+\pdf_bookmarksnumbered false
+\pdf_bookmarksopen false
+\pdf_bookmarksopenlevel 1
+\pdf_breaklinks false
+\pdf_pdfborder true
+\pdf_colorlinks false
+\pdf_backref false
+\pdf_pdfusetitle true
+\papersize default
+\use_geometry true
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\quotes_language english
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<setup, include=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(knitr)
+\end_layout
+
+\begin_layout Plain Layout
+
+opts_chunk$set(fig.path='figure/beamer-',fig.align='center',fig.show='hold',size='f
+ootnotesize')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Title
+\begin_inset Argument 1
+status collapsed
+
+\begin_layout Plain Layout
+knitr, Beamer, and FragileFrame
+\end_layout
+
+\end_inset
+
+A Minimal Demo of knitr with Beamer and Fragile Frames
+\end_layout
+
+\begin_layout Author
+Yihui Xie
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+I thank Richard E.
+ Goldberg for providing this demo.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Frame
+\begin_inset Argument 4
+status open
+
+\begin_layout Plain Layout
+Background
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+The 
+\series bold
+knitr
+\emph on
+ 
+\series default
+\emph default
+package allows you to embed R code and figures in LaTeX documents
+\end_layout
+
+\begin_deeper
+\begin_layout Itemize
+It has functionality similar to Sweave but looks nicer and gives you more
+ control
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+If you already have Sweave working in LyX, getting 
+\series bold
+knitr
+\series default
+ to work is trivial
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+Install the 
+\series bold
+knitr
+\series default
+ package in 
+\emph on
+R
+\end_layout
+
+\begin_layout Enumerate
+Read 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://yihui.name/knitr/demo/lyx/
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Itemize
+If you use Sweave or 
+\series bold
+knitr
+\series default
+ with Beamer in LyX, you must use the
+\emph on
+ FragileFrame
+\emph default
+ environment for the frames that contain R code chunks.
+ Let's see if 
+\series bold
+knitr
+\series default
+ works with Beamer in this small demo.
+ 
+\end_layout
+
+\end_deeper
+\begin_layout Section
+First Test
+\end_layout
+
+\begin_layout FragileFrame
+\begin_inset Argument 4
+status open
+
+\begin_layout Plain Layout
+First Test
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+OK, let's get started with just some text:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<echo=FALSE,results='hide'>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+# some setup
+\end_layout
+
+\begin_layout Plain Layout
+
+options(width=60)  # make the printing fit on the page
+\end_layout
+
+\begin_layout Plain Layout
+
+set.seed(1121)   # make the results repeatable
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\begin_layout Plain Layout
+
+<<>>= 
+\end_layout
+
+\begin_layout Plain Layout
+
+# create some random numbers
+\end_layout
+
+\begin_layout Plain Layout
+
+(x=rnorm(20))  
+\end_layout
+
+\begin_layout Plain Layout
+
+mean(x);var(x)  
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+BTW, the first element of 
+\family typewriter
+x
+\family default
+ is 
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+Sexpr{x[1]}
+\end_layout
+
+\end_inset
+
+.
+ (Did you notice the use of
+\family typewriter
+ 
+\backslash
+Sexpr{}
+\family default
+?)
+\end_layout
+
+\end_deeper
+\begin_layout Section
+Second Test
+\end_layout
+
+\begin_layout FragileFrame
+\begin_inset Argument 4
+status open
+
+\begin_layout Plain Layout
+Second Test
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Text is nice but let's see what happens if we make a couple of plots in
+ our chunk:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<boring-plots,fig.width=4,fig.height=4,out.width='.45
+\backslash
+
+\backslash
+linewidth'>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+par(las=1,mar=c(4,4,.1,.1))  # tick labels direction
+\end_layout
+
+\begin_layout Plain Layout
+
+boxplot(x) 
+\end_layout
+
+\begin_layout Plain Layout
+
+hist(x,main='',col="blue",probability=TRUE) 
+\end_layout
+
+\begin_layout Plain Layout
+
+lines(density(x),col="red")
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_deeper
+\begin_layout Section
+The Big Question
+\end_layout
+
+\begin_layout Frame
+\begin_inset Argument 4
+status open
+
+\begin_layout Plain Layout
+The Big Question
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+Do the above chunks work? You should be able to compile the LyX document
+ and get a nice-looking PDF slide presentation.
+ If not, time to double-check everything...
+\end_layout
+
+\end_deeper
+\end_body
+\end_document
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/README.md
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/README.md	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/README.md	(revision 2476)
@@ -0,0 +1,4 @@
+# knitr-examples
+
+To compile the `knitr-graphics` example, look at the bottom of the file
+[`knitr-graphics.lyx`](knitr-graphics.lyx) for its dependencies.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-packages.bib
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-packages.bib	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-packages.bib	(revision 2476)
@@ -0,0 +1,87 @@
+@Manual{R-animation,
+  title = {animation: A Gallery of Animations in Statistics and Utilities to Create
+Animations},
+  author = {Yihui Xie},
+  year = {2015},
+  note = {R package version 2.4},
+  url = {https://CRAN.R-project.org/package=animation},
+}
+@Manual{R-base,
+  title = {R: A Language and Environment for Statistical Computing},
+  author = {{R Core Team}},
+  organization = {R Foundation for Statistical Computing},
+  address = {Vienna, Austria},
+  year = {2016},
+  url = {https://www.R-project.org/},
+}
+@Manual{R-codetools,
+  title = {codetools: Code Analysis Tools for R},
+  author = {Luke Tierney},
+  year = {2016},
+  note = {R package version 0.2-15},
+  url = {https://CRAN.R-project.org/package=codetools},
+}
+@Manual{R-evaluate,
+  title = {evaluate: Parsing and Evaluation Tools that Provide More Details than the
+Default},
+  author = {Hadley Wickham},
+  year = {2016},
+  note = {R package version 0.10},
+  url = {https://github.com/hadley/evaluate},
+}
+@Manual{R-filehash,
+  title = {filehash: Simple Key-Value Database},
+  author = {Roger D. Peng},
+  year = {2015},
+  note = {R package version 2.3},
+  url = {https://CRAN.R-project.org/package=filehash},
+}
+@Manual{R-formatR,
+  title = {formatR: Format R Code Automatically},
+  author = {Yihui Xie},
+  year = {2016},
+  note = {R package version 1.4},
+  url = {https://CRAN.R-project.org/package=formatR},
+}
+@Manual{R-ggplot2,
+  title = {ggplot2: An Implementation of the Grammar of Graphics},
+  author = {Hadley Wickham and Winston Chang},
+  year = {2016},
+  note = {R package version 2.1.0},
+  url = {https://CRAN.R-project.org/package=ggplot2},
+}
+@Manual{R-highr,
+  title = {highr: Syntax Highlighting for R Source Code},
+  author = {Yixuan Qiu and Yihui Xie},
+  year = {2016},
+  note = {R package version 0.6},
+  url = {https://CRAN.R-project.org/package=highr},
+}
+@Manual{R-knitr,
+  title = {knitr: A General-Purpose Package for Dynamic Report Generation in R},
+  author = {Yihui Xie},
+  year = {2016},
+  note = {R package version 1.15},
+  url = {http://yihui.name/knitr/},
+}
+@Manual{R-MASS,
+  title = {MASS: Support Functions and Datasets for Venables and Ripley's MASS},
+  author = {Brian Ripley},
+  year = {2016},
+  note = {R package version 7.3-45},
+  url = {https://CRAN.R-project.org/package=MASS},
+}
+@Manual{R-rgl,
+  title = {rgl: 3D Visualization Using OpenGL},
+  author = {Daniel Adler and Duncan Murdoch},
+  year = {2016},
+  note = {R package version 0.96.0},
+  url = {https://CRAN.R-project.org/package=rgl},
+}
+@Manual{R-tikzDevice,
+  title = {tikzDevice: R Graphics Output in LaTeX Format},
+  author = {Charlie Sharpsteen and Cameron Bracken},
+  year = {2016},
+  note = {R package version 0.10-1},
+  url = {https://CRAN.R-project.org/package=tikzDevice},
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-graphics.lyx
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-graphics.lyx	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-graphics.lyx	(revision 2476)
@@ -0,0 +1,1997 @@
+#LyX 2.1 created this file. For more info see http://www.lyx.org/
+\lyxformat 474
+\begin_document
+\begin_header
+\textclass tufte-handout
+\begin_preamble
+\renewcommand{\textfraction}{0.05}
+\renewcommand{\topfraction}{0.8}
+\renewcommand{\bottomfraction}{0.8}
+\renewcommand{\floatpagefraction}{0.75}
+
+\usepackage[buttonsize=1em]{animate}
+\end_preamble
+\options justified
+\use_default_options true
+\begin_modules
+knitr
+\end_modules
+\maintain_unincluded_children false
+\language english
+\language_package none
+\inputencoding default
+\fontencoding global
+\font_roman default
+\font_sans default
+\font_typewriter default
+\font_math auto
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100
+\font_tt_scale 100
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref true
+\pdf_bookmarks true
+\pdf_bookmarksnumbered true
+\pdf_bookmarksopen true
+\pdf_bookmarksopenlevel 2
+\pdf_breaklinks true
+\pdf_pdfborder false
+\pdf_colorlinks false
+\pdf_backref false
+\pdf_pdfusetitle true
+\pdf_quoted_options "pdfstartview=FitH"
+\papersize default
+\use_geometry true
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 2
+\tocdepth 2
+\paragraph_separation indent
+\paragraph_indentation default
+\quotes_language english
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<setup, include=FALSE, cache=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(knitr)
+\end_layout
+
+\begin_layout Plain Layout
+
+options(formatR.arrow=TRUE,width=50)
+\end_layout
+
+\begin_layout Plain Layout
+
+opts_chunk$set(fig.path='figure/graphics-', cache.path='cache/graphics-',
+ fig.align='center', dev='tikz', fig.width=5, fig.height=5, fig.show='hold',
+ cache=TRUE, par=TRUE)
+\end_layout
+
+\begin_layout Plain Layout
+
+knit_hooks$set(par=function(before, options, envir){
+\end_layout
+
+\begin_layout Plain Layout
+
+if (before && options$fig.show!='none') par(mar=c(4,4,.1,.1),cex.lab=.95,cex.axis=.9,mg
+p=c(2,.7,0),tcl=-.3)
+\end_layout
+
+\begin_layout Plain Layout
+
+}, crop=hook_pdfcrop)
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Title
+knitr Graphics Manual
+\end_layout
+
+\begin_layout Author
+Yihui Xie
+\end_layout
+
+\begin_layout Abstract
+This manual shows features of graphics in the 
+\series bold
+knitr
+\series default
+ package (version 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+Sexpr{packageVersion('knitr')}
+\end_layout
+
+\end_inset
+
+) in detail, including the graphical devices, plot recording, plot rearrangement
+, control of plot sizes, the tikz device, figure captions, animations and
+ other types of plots such as 
+\series bold
+rgl
+\series default
+ or GGobi plots.
+\end_layout
+
+\begin_layout Standard
+Before reading this specific manual
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://bit.ly/knitr-graphics-src
+\end_layout
+
+\end_inset
+
+ (Rnw source)
+\end_layout
+
+\end_inset
+
+, you must have finished the main manual
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://bit.ly/knitr-main
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Graphical Devices
+\end_layout
+
+\begin_layout Standard
+The 
+\series bold
+knitr
+\series default
+ package comes with more than 20 built-in graphical devices, and you can
+ specify them through the 
+\family typewriter
+dev
+\family default
+ option.
+ This document uses the global option 
+\family typewriter
+dev='tikz'
+\family default
+, i.e., the plots are recorded by the tikz device by default, but we can change
+ the device locally.
+ Since tikz will be used extensively throughout this manual and you will
+ see plenty of tikz graphics later, now we first show a few other devices.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<test-plot, eval=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+with(trees, symbols(Height, Volume, circles = Girth/16, inches = FALSE,
+ bg = 'deeppink', fg = 'gray30'))
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float marginfigure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<pdf-dev, ref.label='test-plot', dev='pdf', out.width='
+\backslash
+
+\backslash
+linewidth', echo=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+The default PDF device.
+\begin_inset CommandInset label
+LatexCommand label
+name "mar:pdf-dev"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float marginfigure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<png-dev, ref.label='test-plot', dev='png', out.width='
+\backslash
+
+\backslash
+linewidth', echo=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+The PNG device.
+\begin_inset CommandInset label
+LatexCommand label
+name "mar:png-dev"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "mar:pdf-dev"
+
+\end_inset
+
+ and 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "mar:png-dev"
+
+\end_inset
+
+ show two standard devices in the 
+\series bold
+grDevices
+\series default
+ package.
+ We can also use devices in the 
+\series bold
+Cairo
+\series default
+ or 
+\series bold
+cairoDevice
+\series default
+ package, e.g., the chunk below uses the 
+\emph on
+CairoPNG()
+\emph default
+ device in the 
+\series bold
+Cairo
+\series default
+ package.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<cairo-png-dev, ref.label='test-plot', dev='CairoPNG', out.width='.5
+\backslash
+
+\backslash
+linewidth', echo=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Plot Recording
+\end_layout
+
+\begin_layout Standard
+As mentioned in the main manual, 
+\series bold
+knitr
+\series default
+ uses the 
+\series bold
+evaluate
+\series default
+ package to record plots.
+ There are two sources of plots: first, whenever 
+\emph on
+plot.new()
+\emph default
+ or 
+\emph on
+grid.newpage()
+\emph default
+ is called, 
+\series bold
+evaluate
+\series default
+ will try to save a snapshot of the current plot
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+For technical details, see 
+\family typewriter
+?setHook
+\family default
+ and 
+\family typewriter
+?recordPlot
+\end_layout
+
+\end_inset
+
+; second, after each complete expression is evaluated, a snapshot is also
+ saved.
+ To speed up recording, the null graphical device 
+\family typewriter
+pdf(file = NULL)
+\family default
+ is used.
+ Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:two-high"
+
+\end_inset
+
+ shows two expressions producing two high-level plots.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<two-high, fig.width=3, fig.height=2.5, out.width='.49
+\backslash
+
+\backslash
+linewidth'>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+plot(cars)
+\end_layout
+
+\begin_layout Plain Layout
+
+boxplot(cars$dist,xlab='dist')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+Two high-level plots are captured.
+ The key to arrange two plots side by side is to specify the 
+\family typewriter
+out.width
+\family default
+ option so that each plot takes less than half of the line width.
+ We do not have to use the 
+\family typewriter
+par(mfrow)
+\family default
+ trick, and it may not work in some cases (e.g.
+ to put base graphics and 
+\series bold
+ggplot2
+\series default
+ side by side; recall Figure 1 in the main manual).
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:two-high"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:low-plot-loop"
+
+\end_inset
+
+ shows another example of two R expressions, but the second expression only
+ involves with low-level plotting changes.
+ By default, low-level plot changes are discarded, but you can retain them
+ with the option 
+\family typewriter
+fig.keep='all'
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<low-plot-loop, fig.width=3, fig.height=2.5, out.width='.49
+\backslash
+
+\backslash
+linewidth', fig.keep='all'>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+plot(0,0,type='n',ann=FALSE)
+\end_layout
+
+\begin_layout Plain Layout
+
+for(i in seq(0, 2*pi,length=20)) {points(cos(i),sin(i))}
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+Two complete R expressions will produce at most two plots, as long as there
+ are not multiple high-level plotting calls in each expression; option 
+\family typewriter
+fig.keep='all'
+\family default
+ here.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:low-plot-loop"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Together with 
+\family typewriter
+fig.show='asis'
+\family default
+, we can show the process of plotting step by step like Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:high-with-low"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<high-with-low, fig.width=3, fig.height=2.5, out.width='.5
+\backslash
+
+\backslash
+linewidth', fig.keep='all', fig.show='asis'>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+plot(cars)
+\end_layout
+
+\begin_layout Plain Layout
+
+abline(lm(dist~speed, data=cars))  # a regression line
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+Low-level plot changes in base graphics can be recorded separately, and
+ plots can be put in the places where they were produced.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:high-with-low"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+A further note on plot recording: 
+\series bold
+knitr
+\series default
+ examines all recorded plots (as R objects) and compares them sequentially;
+ if the previous plot is a 
+\begin_inset Quotes eld
+\end_inset
+
+subset
+\begin_inset Quotes erd
+\end_inset
+
+ of the next plot (= previous plot + low-level changes), the previous plot
+ will be removed when 
+\family typewriter
+fig.keep='high'
+\family default
+.
+ If two successive plots are identical, the second one will be removed by
+ default, so it might be a little bit surprising that the following chunk
+ will only produce one plot by default
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+adapted from 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://github.com/yihui/knitr/issues/41
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<identical-plots,eval=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+m = matrix(1:100, ncol = 10)
+\end_layout
+
+\begin_layout Plain Layout
+
+image(m)
+\end_layout
+
+\begin_layout Plain Layout
+
+image(m*2)  # exactly the same as previous plot
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Plot Rearrangement
+\end_layout
+
+\begin_layout Standard
+We can rearrange the plots in chunks in several ways.
+ They can be inserted right after the line(s) of R code which produced them,
+ or accumulated till the end of the chunk.
+ There is an example in the main manual demonstrating 
+\family typewriter
+fig.show='asis'
+\family default
+ for two high-level plots, and Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:high-with-low"
+
+\end_inset
+
+ in this manual also demonstrates this option for a high-level plot followed
+ by a low-level change.
+\end_layout
+
+\begin_layout Standard
+Here is an example demonstrating the option 
+\family typewriter
+fig.keep='last'
+\family default
+ (only the last plot is kept):
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<fig-last, fig.width=5.2, fig.height=3, out.width='.7
+\backslash
+
+\backslash
+linewidth', fig.keep='last', message=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(ggplot2)
+\end_layout
+
+\begin_layout Plain Layout
+
+pie <- ggplot(diamonds, aes(x = factor(1), fill = cut)) + xlab('cut') +
+ geom_bar(width = 1) 
+\end_layout
+
+\begin_layout Plain Layout
+
+pie + coord_polar(theta = "y") # a pie chart
+\end_layout
+
+\begin_layout Plain Layout
+
+pie + coord_polar() # the bullseye chart 
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+Two plots were produced in this chunk, but only the last one is kept.
+ This can be useful when we experiment with many plots, but only want the
+ last result.
+ (Adapted from the 
+\series bold
+ggplot2
+\series default
+ website)
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+When multiple plots are produced by a code chunk, we may want to show them
+ as an animation with the option 
+\family typewriter
+fig.show='animate'
+\family default
+.
+ Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:clock-animation"
+
+\end_inset
+
+ shows a simple clock animation; you may compare the code to Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:high-with-low"
+
+\end_inset
+
+ to understand that high-level plots are always recorded, regardless of
+ where they appeared.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<clock-animation, fig.width=3, fig.height=3, out.width='.4
+\backslash
+
+\backslash
+linewidth', fig.show='animate', tidy=FALSE, crop=TRUE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+par(mar = rep(3, 4))
+\end_layout
+
+\begin_layout Plain Layout
+
+for (i in seq(pi/2, -4/3 * pi, length = 12)) {
+\end_layout
+
+\begin_layout Plain Layout
+
+    plot(0, 0, pch = 20, ann = FALSE, axes = FALSE)
+\end_layout
+
+\begin_layout Plain Layout
+
+    arrows(0, 0, cos(i), sin(i))
+\end_layout
+
+\begin_layout Plain Layout
+
+    axis(1, 0, "VI"); axis(2, 0, "IX")
+\end_layout
+
+\begin_layout Plain Layout
+
+    axis(3, 0, "XII"); axis(4, 0, "III"); box()
+\end_layout
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+A clock animation.
+ You have to view it in Adobe Reader: click to play/pause; there are also
+ buttons to speed up or slow down the animation.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:clock-animation"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+We can also set the alignment of plots easily with the 
+\family typewriter
+fig.align
+\family default
+ option; this document uses 
+\family typewriter
+fig.align='center'
+\family default
+ as a global option, and we can also set plots to be left/right-aligned.
+ Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:maruko-plot"
+
+\end_inset
+
+ is an example of a left-aligned plot.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<maruko-plot, fig.width=7, fig.height=4, out.width='.45
+\backslash
+
+\backslash
+linewidth', fig.align='left', crop=TRUE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+stars(cbind(1:16,10*(16:1)),draw.segments=TRUE)
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+A left-aligned plot adapted from 
+\family typewriter
+?stars
+\family default
+ (I call this the 
+\begin_inset Quotes eld
+\end_inset
+
+Maruko
+\begin_inset Quotes erd
+\end_inset
+
+ plot, and it is one of my favorites; see 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://en.wikipedia.org/wiki/Chibi_Maruko-chan
+\end_layout
+
+\end_inset
+
+).
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:maruko-plot"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Plot Size
+\end_layout
+
+\begin_layout Standard
+We have seen several examples in which two or more plots can be put side
+ by side, and this is because the plots were resized in the output document;
+ with the chunk option 
+\family typewriter
+out.width
+\family default
+ less than half of the line width, LaTeX will arrange two plots in one line;
+ if it is less than 
+\begin_inset Formula $1/3$
+\end_inset
+
+ of the line width, three plots can be put in one line.
+ Of course we can also set it to be an absolute width like 
+\family typewriter
+3in
+\family default
+ (3 inches).
+ This option is used extensively in this document to control the size of
+ plots in the output document.
+\end_layout
+
+\begin_layout Section
+The tikz Device
+\end_layout
+
+\begin_layout Standard
+The main advantage of using tikz graphics is the consistency of styles between
+ texts in plots and those in the main document.
+ Since we can use native LaTeX commands in plots, the styles of texts in
+ plots can be very sophisticated (see Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:math-formula-tt"
+
+\end_inset
+
+ for an example).
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<math-formula-tt, fig.width=6, fig.height=2, out.width='
+\backslash
+
+\backslash
+linewidth'>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+plot(0:1,0:1,type='n', ylab='origin of statistics', xlab='statistical presentati
+on rocks with 
+\backslash
+
+\backslash
+LaTeX{}')
+\end_layout
+
+\begin_layout Plain Layout
+
+text(.5,c(.8,.5,.2), c('
+\backslash
+
+\backslash
+texttt{lm(y 
+\backslash
+
+\backslash
+textasciitilde{} x)}', '$
+\backslash
+
+\backslash
+hat{
+\backslash
+
+\backslash
+beta}=(X^{
+\backslash
+
+\backslash
+prime}X)^{-1}X^{
+\backslash
+
+\backslash
+prime}y$',  '$(
+\backslash
+
+\backslash
+Omega,
+\backslash
+
+\backslash
+mathcal{F},
+\backslash
+
+\backslash
+mu)$'))
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+A plot created by 
+\series bold
+tikzDevice
+\series default
+ with math expressions and typewriter fonts.
+ Note the font style consistency -- we write the same expressions in LaTeX
+ here: 
+\begin_inset Formula $\hat{\beta}=(X^{\prime}X)^{-1}X^{\prime}y$
+\end_inset
+
+ and 
+\begin_inset Formula $(\Omega,\mathcal{F},\mu)$
+\end_inset
+
+; also 
+\family typewriter
+lm(y ~ x)
+\family default
+.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:math-formula-tt"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+When using XeLaTeX instead of PDFLaTeX to compile the document, we need
+ to tell the 
+\series bold
+tikzDevice
+\series default
+ package by setting the 
+\family typewriter
+tikzDefaultEngine
+\family default
+ option before all plot chunks (preferably in the first chunk):
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<xetex-tikz, eval=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+options(tikzDefaultEngine='xetex')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+This is useful and often necessary to compile tikz plots which contain (UTF8)
+ multi-byte characters.
+\end_layout
+
+\begin_layout Section
+Figure Caption
+\end_layout
+
+\begin_layout Standard
+If the chunk option 
+\family typewriter
+fig.cap
+\family default
+ is not 
+\family typewriter
+NULL
+\family default
+ or 
+\family typewriter
+NA
+\family default
+, the plots will be put in a 
+\family typewriter
+figure
+\family default
+ environment when the output format is LaTeX, and this option is used to
+ write a caption in this environment using 
+\family typewriter
+
+\backslash
+caption{}
+\family default
+.
+ The other two related options are 
+\family typewriter
+fig.scap
+\family default
+ and 
+\family typewriter
+fig.lp
+\family default
+ which set the short caption and a prefix string for the figure label.
+ The default short caption is extracted from the caption by truncating it
+ at the first period or colon or semi-colon.
+ The label is a combination of 
+\family typewriter
+fig.lp
+\family default
+ and the chunk label.
+ Because 
+\family typewriter
+figure
+\family default
+ is a float environment, it can float away from the chunk output to other
+ places such as the top or bottom of a page when the TeX document is compiled.
+\end_layout
+
+\begin_layout Section
+Other Features
+\end_layout
+
+\begin_layout Standard
+The 
+\series bold
+knitr
+\series default
+ package can be extended with hook functions, and here I give a few examples
+ illustrating the flexibility.
+\end_layout
+
+\begin_layout Subsection
+Cropping PDF Graphics
+\end_layout
+
+\begin_layout Standard
+Some R users may have been suffering from the extra margins in R plots,
+ especially in base graphics (
+\series bold
+ggplot2
+\series default
+ is much better in this aspect).
+ The default graphical option 
+\family typewriter
+mar
+\family default
+ is about 
+\family typewriter
+c(5, 4, 4, 2)
+\family default
+ (see 
+\family typewriter
+?par
+\family default
+), which is often too big.
+ Instead of endlessly setting 
+\family typewriter
+par(mar)
+\family default
+, you may consider the program 
+\family typewriter
+pdfcrop
+\family default
+, which can crop the white margin automatically
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://www.ctan.org/pkg/pdfcrop
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+.
+ In 
+\series bold
+knitr
+\series default
+, we can set up the hook 
+\emph on
+hook_pdfcrop()
+\emph default
+ to work with a chunk option, say, 
+\family typewriter
+crop
+\family default
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<crop-hook, cache=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+knit_hooks$set(crop=hook_pdfcrop)
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Now we compare two plots below.
+ The first one is not cropped (Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:pdf-nocrop"
+
+\end_inset
+
+); then the same plot is produced but with a chunk option 
+\family typewriter
+crop=TRUE
+\family default
+ which will call the cropping hook (Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:pdf-crop"
+
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{kframe}
+\end_layout
+
+\begin_layout Plain Layout
+
+<<pdf-nocrop, fig.width=3.2, fig.height=3.2, out.width='.5
+\backslash
+
+\backslash
+linewidth'>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+par(mar=c(5,4,4,2),bg='white')  # large margin
+\end_layout
+
+\begin_layout Plain Layout
+
+plot(lat~long,data=quakes,pch=20,col=rgb(0,0,0,.2))
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{kframe}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+The original plot produced in R, with a large margin.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:pdf-nocrop"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+begin{kframe}
+\end_layout
+
+\begin_layout Plain Layout
+
+<<pdf-crop, ref.label='pdf-nocrop', echo=FALSE, fig.width=3.2, fig.height=3.2,
+ out.width='.5
+\backslash
+
+\backslash
+linewidth', crop=TRUE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\begin_layout Plain Layout
+
+
+\backslash
+end{kframe}
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+The cropped plot; it fits better in the document.
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:pdf-crop"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+As we can see, the white margins are gone.
+ If we use 
+\emph on
+par()
+\emph default
+, it might be hard and tedious to figure out a reasonable amount of margin
+ in order that neither is any label cropped nor do we get a too large margin.
+ My experience is that 
+\family typewriter
+pdfcrop
+\family default
+ works well with base graphics, but barely works with 
+\series bold
+grid
+\series default
+ graphics (therefore 
+\series bold
+lattice
+\series default
+ and 
+\series bold
+ggplot2
+\series default
+ are ruled out).
+\end_layout
+
+\begin_layout Subsection
+Manually Saved Plots
+\end_layout
+
+\begin_layout Standard
+We have explained how R plots are recorded before.
+ In some cases, it is not possible to capture plots by 
+\emph on
+recordPlot()
+\emph default
+ (such as 
+\series bold
+rgl
+\series default
+ plots), but we can save them using other functions.
+ To insert these plots into the output, we need to set up a hook first like
+ this (see 
+\family typewriter
+?hook_plot_custom
+\family default
+ for details):
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<custom-plot-hook, cache=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+knit_hooks$set(custom.plot = hook_plot_custom)
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Then we set the chunk option 
+\family typewriter
+custom.plot=TRUE
+\family default
+, and manually write plot files in the chunk.
+ Here we show an example of capturing GGobi plots using the function 
+\emph on
+ggobi_display_save_picture()
+\emph default
+ in the 
+\series bold
+rggobi
+\series default
+ package:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<ggobi-plot, custom.plot=TRUE, fig.ext='png', out.width='2.5in', results='hide',
+ warning=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(rggobi)
+\end_layout
+
+\begin_layout Plain Layout
+
+ggobi(ggobi_find_file('data', 'flea.csv'))
+\end_layout
+
+\begin_layout Plain Layout
+
+Sys.sleep(1)  # wait for snapshot
+\end_layout
+
+\begin_layout Plain Layout
+
+ggobi_display_save_picture(path=fig_path('.png'))
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+One thing to note here is we have to make sure the plot filename is from
+ 
+\emph on
+fig_path()
+\emph default
+, which is a convenience function to return the figure path for the current
+ chunk.
+\end_layout
+
+\begin_layout Standard
+We can do whatever normal R plots can do with this hook, and we give another
+ example below to show how to work with animations.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<rgl-animation, custom.plot=TRUE, fig.ext='png', out.width='2.5in', fig.show='animat
+e', fig.num=20, interval=.4,  aniopts='controls,autoplay', results='hide',
+ warning=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(animation) # adapted from demo('rgl_animation')
+\end_layout
+
+\begin_layout Plain Layout
+
+data(pollen)
+\end_layout
+
+\begin_layout Plain Layout
+
+uM = matrix(c(-0.37, -0.51, -0.77, 0, -0.73, 0.67, -0.1, 0, 0.57, 0.53, -0.63, 0,
+ 0, 0, 0, 1), 4, 4)
+\end_layout
+
+\begin_layout Plain Layout
+
+library(rgl)
+\end_layout
+
+\begin_layout Plain Layout
+
+open3d(userMatrix = uM, windowRect = c(0, 0, 400, 400))
+\end_layout
+
+\begin_layout Plain Layout
+
+plot3d(pollen[, 1:3])
+\end_layout
+
+\begin_layout Plain Layout
+
+zm = seq(1, 0.05, length = 20)
+\end_layout
+
+\begin_layout Plain Layout
+
+par3d(zoom = 1)  # change the zoom factor gradually later
+\end_layout
+
+\begin_layout Plain Layout
+
+for (i in 1:length(zm)) {
+\end_layout
+
+\begin_layout Plain Layout
+
+    par3d(zoom = zm[i]); Sys.sleep(.05)
+\end_layout
+
+\begin_layout Plain Layout
+
+    rgl.snapshot(fig_path('png', number = i))
+\end_layout
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsection
+rgl Plots
+\end_layout
+
+\begin_layout Standard
+With the hook 
+\emph on
+hook_rgl()
+\emph default
+, we can easily save snapshots from the 
+\series bold
+rgl
+\series default
+ package.
+ We have shown an example in the main manual, and here we add some details.
+ The rgl hook is a good example of taking care of details by carefully using
+ the 
+\family typewriter
+options
+\family default
+ argument in the hook; for example, we cannot directly set the width and
+ height of rgl plots in 
+\emph on
+rgl.snapshot()
+\emph default
+ or 
+\emph on
+rgl.postscript()
+\emph default
+, so we make use of the options 
+\family typewriter
+fig.width
+\family default
+, 
+\family typewriter
+fig.height
+\family default
+ and 
+\family typewriter
+dpi
+\family default
+ to calculate the expected size of the window, then resize the current window
+ by 
+\emph on
+par3d()
+\emph default
+, and finally save the plot.
+\end_layout
+
+\begin_layout Standard
+This hook is actually built upon 
+\emph on
+hook_plot_custom()
+\emph default
+ -- first it saves the 
+\series bold
+rgl
+\series default
+ snapshot, then it calls 
+\emph on
+hook_plot_custom()
+\emph default
+ to write the output code.
+\end_layout
+
+\begin_layout Section
+\start_of_appendix
+How to Compile This Manual
+\end_layout
+
+\begin_layout Standard
+This manual has a long chain of dependencies, so it may not be easy to compile.
+ These packages are required (all of them are free software):
+\end_layout
+
+\begin_layout Description
+R Cairo, ggplot2, tikzDevice, rgl, rggobi, animation (all available on CRAN
+ except tikzDevice which is on R-Forge for the time being)
+\end_layout
+
+\begin_layout Description
+LaTeX animate, hyperref and the tufte-handout class
+\end_layout
+
+\begin_layout Description
+Other GGobi, pdfcrop
+\end_layout
+
+\end_body
+\end_document
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.Rrst
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.Rrst	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.Rrst	(revision 2476)
@@ -0,0 +1 @@
+See https://github.com/yihui/knitr-examples/blob/master/006-minimal.Rrst
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/upload-github.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/upload-github.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/upload-github.R	(revision 2476)
@@ -0,0 +1,79 @@
+rm(list = ls(all.names = TRUE))
+options(stringsAsFactors = FALSE)
+
+FILES = c(
+  list.files('.', '.pdf$'),
+  '../../../knitr-book2/DDR-Yihui-Xie-Chap1-3.pdf'
+)
+i = file.exists(FILES)
+if (!all(i)) stop('These files do not exist: ', paste(FILES[!i], collapse = ', '))
+
+counts = data.frame(file = basename(FILES), count = 0)
+if (file.exists('download_count.csv')) {
+  counts = rbind(counts, read.csv('download_count.csv'))
+  counts = counts[order(counts$file, counts$count, decreasing = TRUE), ]
+  counts = counts[!duplicated(counts$file), ]
+}
+rownames(counts) = FILES[match(basename(FILES), counts$file)]
+
+library(httr)
+token = Sys.getenv('GH_TOKEN', NA)
+if (is.na(token)) stop('GH_TOKEN not found')
+a = authenticate(token, "x-oauth-basic", "basic")
+GET = function(...) {
+  r = httr::GET(..., a)
+  stop_for_status(r)
+  r
+}
+DELETE = function(...) {
+  r = httr::DELETE(..., a)
+  stop_for_status(r)
+  r
+}
+POST = function(...) {
+  r = httr::POST(..., a)
+  stop_for_status(r)
+  r
+}
+
+r = GET('https://api.github.com/repos/yihui/knitr/releases')
+x = content(r, 'parsed')
+for (i in x) {
+  if (i$tag_name == 'doc') {
+    r_url = i$url
+    r_upload = i$upload_url
+    break
+  }
+}
+r = GET(r_url)
+x = content(r, 'parsed')
+# delete assets that already exist
+for (i in x$assets) {
+  j = match(i$name, counts$file)
+  if (is.na(j)) next
+  if (i$size == file.info(rownames(counts)[j])[, 'size']) {
+    FILES = setdiff(FILES, rownames(counts)[j])
+    message(i$name, ' probably not changed')
+    next
+  }
+  counts[j, 2] = counts[j, 2] + i$download_count
+  message('deleting ', i$name)
+  DELETE(i$url)
+  Sys.sleep(1)
+}
+
+# update download counts
+counts = counts[order(counts$file), , drop = FALSE]
+write.csv(counts, 'download_count.csv', row.names = FALSE)
+
+# upload files
+for (f in FILES) {
+  message('uploading ', f)
+  POST(
+    sub('{?name,label}', '', r_upload, fixed = TRUE),
+    query = list(name = basename(f)), body = upload_file(f, mime::guess_type(f))
+  )
+  Sys.sleep(1)
+}
+
+q('no')
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-manual.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-manual.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-manual.Rnw	(revision 2476)
@@ -0,0 +1,690 @@
+%% LyX 2.2.1 created this file.  For more info, see http://www.lyx.org/.
+%% Do not edit unless you really know what you are doing.
+\documentclass{article}
+\usepackage[sc]{mathpazo}
+\renewcommand{\sfdefault}{lmss}
+\renewcommand{\ttdefault}{lmtt}
+\usepackage[T1]{fontenc}
+\usepackage{geometry}
+\geometry{verbose,tmargin=2.5cm,bmargin=2.5cm,lmargin=2.5cm,rmargin=2.5cm}
+\setcounter{secnumdepth}{2}
+\setcounter{tocdepth}{2}
+\usepackage{url}
+\usepackage[authoryear]{natbib}
+\usepackage[unicode=true,pdfusetitle,
+ bookmarks=true,bookmarksnumbered=true,bookmarksopen=true,bookmarksopenlevel=2,
+ breaklinks=false,pdfborder={0 0 1},backref=false,colorlinks=false]
+ {hyperref}
+\hypersetup{
+ pdfstartview={XYZ null null 1}}
+\usepackage{breakurl}
+
+\makeatletter
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
+\providecommand{\LyX}{\texorpdfstring%
+  {L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
+  {LyX}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
+\renewcommand{\textfraction}{0.05}
+\renewcommand{\topfraction}{0.8}
+\renewcommand{\bottomfraction}{0.8}
+\renewcommand{\floatpagefraction}{0.75}
+
+\usepackage[buttonsize=1em]{animate}
+
+\makeatother
+
+\begin{document}
+<<setup, include=FALSE, cache=FALSE>>=
+library(knitr)
+## set global chunk options
+opts_chunk$set(fig.path='figure/manual-', cache.path='cache/manual-', fig.align='center', fig.show='hold', par=TRUE)
+## I use = but I can replace it with <-; set code/output width to be 68
+options(formatR.arrow=TRUE, width=68, digits=4)
+## tune details of base graphics (http://yihui.name/knitr/hooks)
+knit_hooks$set(par=function(before, options, envir){
+if (before && options$fig.show!='none') par(mar=c(4,4,.1,.1),cex.lab=.95,cex.axis=.9,mgp=c(2,.7,0),tcl=-.3)
+})
+@
+
+\title{knitr: A General-Purpose Tool for Dynamic Report Generation in R}
+
+\author{Yihui Xie}
+
+\maketitle
+The original paradigm of literate programming was brought forward
+mainly for software development, or specifically, to mix source code
+(for computer) and documentation (for human) together. Early systems
+include \href{http://www.literateprogramming.com/web.pdf}{WEB} and
+\href{http://www.cs.tufts.edu/~nr/noweb/}{Noweb}; Sweave \citep{leisch2002}
+was derived from the latter, but it is less focused on documenting
+software, instead it is mainly used for reproducible data analysis
+and generating statistical reports. The \textbf{knitr} package \citep{R-knitr}
+is following the steps of Sweave. For this manual, I assume readers
+have some background knowledge of Sweave to understand the technical
+details; for a reference of available options, hooks and demos, see
+the package homepage \url{http://yihui.name/knitr/}.
+
+\section{Hello World}
+
+A natural question is why to reinvent the wheel. The short answer
+is that extending Sweave by hacking \textsf{SweaveDrivers.R} in the
+\textbf{utils} package is a difficult job to me. Many features in
+\textbf{knitr} come naturally as users would have expected. Figure
+\ref{fig:cars-demo} is a simple demo of some features of \textbf{knitr}.
+
+\begin{figure}
+<<cars-demo,dev='tikz',fig.width=4,fig.height=2.8,out.width='.45\\textwidth',message=FALSE,cache=TRUE>>=
+fit=lm(dist~speed,data=cars) # linear regression
+par(mar=c(4, 4, 1, .1), mgp=c(2,1,0))
+with(cars,plot(speed,dist,panel.last=abline(fit)))
+text(10,100,'$Y = \\beta_0 + \\beta_1x + \\epsilon$')
+library(ggplot2)
+qplot(speed, dist, data=cars)+geom_smooth()
+@
+
+\caption{\label{fig:cars-demo}A simple demo of possible output in \textbf{knitr}:
+(1) multiple plots per chunk; (2) no need to \emph{print()} objects
+in \textbf{ggplot2}; (3) device size is $4\times2.8$ (inches) but
+output size is adjusted to \texttt{.45\textbackslash{}textwidth} in
+chunk options; (4) base graphics and \textbf{ggplot2} can sit side
+by side; (5) use the \emph{tikz()} device in \textbf{tikzDevice} by
+setting chunk option \texttt{dev='tikz'} (hence can write native \protect\LaTeX{}
+expressions in R plots); (6) code highlighting.}
+\end{figure}
+
+I would have chosen to hide the R code if this were a real report,
+but here I show the code just for the sake of demonstration. If we
+type \emph{qplot()} in R, we get a plot, and the same thing happens
+in \textbf{knitr}. If we draw two plots in the code, \textbf{knitr}
+will show two plots and we do not need to tell it how many plots are
+there in the code in advance. If we set \texttt{out.width='.49\textbackslash{}\textbackslash{}textwidth'}
+in chunk options, we get it in the final output document. If we say
+\texttt{fig.align='center'}, the plots are centered. That's it. Many
+enhancements and new features will be introduced later. If you come
+from the Sweave land, you can take a look at the page of transition
+first: \url{http://yihui.name/knitr/demo/sweave/}.
+
+\section{Design}
+
+The flow of processing an input file is similar to Sweave, and two
+major differences are that \textbf{knitr} provides more flexibility
+to the users to customize the processing, and has many built-in options
+such as the support to a wide range of graphics devices and cache.
+Below is a brief description of the process:
+\begin{enumerate}
+\item \textbf{knitr} takes an input file and automatically determines an
+appropriate set of \href{http://yihui.name/knitr/patterns}{patterns}
+to use if they are not provided in advance (e.g. \textsf{file.Rnw}
+will use \texttt{knit\_patterns\$get('rnw')});
+\item a set of output \href{http://yihui.name/knitr/hooks}{hooks} will
+also be set up automatically according to the filename extension (e.g.
+use \LaTeX{} environments or HTML elements to wrap up R results);
+\item the input file is read in and split into pieces consisting of R code
+chunks and normal texts; the former will be executed one after the
+other, and the latter may contain global chunk options or inline R
+code;
+\item for each chunk, the code is evaluated using the \textbf{evaluate}
+package \citep{R-evaluate}, and the results may be filtered according
+to chunk options (e.g. \texttt{echo=FALSE} will remove the R source
+code)
+
+\begin{enumerate}
+\item if \texttt{cache=TRUE} for this chunk, \textbf{knitr} will first check
+if there are previously cached results under the cache directory before
+really evaluating the chunk; if cached results exist and this code
+chunk has not been changed since last run (use MD5 sum to verify),
+the cached results will be (lazy-) loaded, otherwise new cache will
+be built; if a cached chunk depends on other chunks (see the \texttt{dependson}
+\href{http://yihui.name/knitr/options}{option}) and any one of these
+chunks has changed, this chunk must be forcibly updated (old cache
+will be purged)
+\item there are six types of possible output from \textbf{evaluate}, and
+their classes are \texttt{character} (normal text output), \texttt{source}
+(source code), \texttt{warning}, \texttt{message}, \texttt{error}
+and \texttt{recordedplot}; an internal S3 generic function \emph{wrap()}
+is used to deal with different types of output, using output hooks
+defined in the object \texttt{knit\_hooks}
+\item note plots are recorded as R objects before they are really saved
+to files, so graphics devices will not be opened unless plots have
+really been produced in a chunk
+\item a code chunk is evaluated in a separate empty environment with the
+global environment as its parent, and all the objects in this environment
+after the evaluation will be saved if \texttt{cache=TRUE}
+\item chunk hooks can be run before and/or after a chunk
+\end{enumerate}
+\item for normal texts, \textbf{knitr} will find inline R code (e.g. in
+\texttt{\textbackslash{}Sexpr\{\}}) and evaluate it; the output is
+wrapped by the \texttt{inline} hook;
+\end{enumerate}
+The hooks play important roles in \textbf{knitr}: this package makes
+almost everything accessible to the users. Consider the following
+extremely simple example which may demonstrate this freedom:
+
+<<simple-example>>=
+1+1
+@
+
+There are two parts in the final output: the source code \texttt{1
++ 1} and the output \texttt{{[}1{]} 2}; the comment characters \texttt{\#\#}
+are from the default chunk option \texttt{comment}. Users may define
+a hook function for the source code like this to use the \texttt{lstlisting}
+environment:
+
+<<hook-source, eval=FALSE>>=
+knit_hooks$set(source = function(x, options) {
+paste('\\begin{lstlisting}\n', x, '\\end{lstlisting}\n', sep = '')
+})
+@
+
+Similarly we can put other types of output into other environments.
+There is no need to hack at \textsf{Sweave.sty} for \textbf{knitr}
+and you can put the output in any environments. What is more, the
+output hooks make \textbf{knitr} ready for other types of output,
+and a typical one is HTML (there are built-in hooks). The website
+has provided many examples demonstrating the flexibility of the output.
+
+\section{Features}
+
+The \textbf{knitr} package borrowed features such as tikz graphics
+and cache from \textbf{pgfSweave} and \textbf{cacheSweave} respectively,
+but the implementations are different. New features like code reference
+from an external R script as well as output customization are also
+introduced. The feature of hook functions in Sweave is re-implemented
+and hooks have new usage now. There are several other small features
+which are motivated from my everyday use of Sweave. For example, a
+progress bar is provided when knitting a file so we roughly know how
+long we still need to wait; output from inline R code (e.g. \texttt{\textbackslash{}Sexpr\{x{[}1{]}\}})
+is automatically formatted in \TeX{} math notation (like \Sexpr{123456789})
+if the result is numeric. You may check out a number of specific manuals
+dedicated to specific features such as graphics in the website: \url{http://yihui.name/knitr/demos}.
+
+\subsection{Code Decoration}
+
+The \textbf{highr} package \citep{R-highr} is used to highlight R
+code, and the \textbf{formatR} package \citep{R-formatR} is used
+to reformat R code (like \texttt{keep.source=FALSE} in Sweave but
+will also try to retain comments). For \LaTeX{} output, the \textbf{framed}
+package is used to decorate code chunks with a light gray background.
+If this \LaTeX{} package is not found in the system, a version will
+be copied directly from \textbf{knitr}. The prompt characters are
+removed by default because they mangle the R source code in the output
+and make it difficult to copy R code. The R output is masked in comments
+by default based on the same rationale. It is easy to revert to the
+output with prompts (set option \texttt{prompt=TRUE}), and you will
+quickly realize the inconvenience to the readers if they want to copy
+and run the code in the output document:
+
+<<stupid-prompts, prompt=TRUE, comment=NA, highlight=FALSE>>=
+x=rnorm(5)
+x
+var(x)
+@
+
+The example below shows the effect of \texttt{tidy=TRUE/FALSE}:
+
+<<tidy-no, eval=FALSE, tidy=FALSE>>=
+## option tidy=FALSE
+for(k in 1:10){j=cos(sin(k)*k^2)+3;print(j-5)}
+@
+<<tidy-yes, eval=FALSE, tidy=TRUE>>=
+## option tidy=TRUE
+for(k in 1:10){j=cos(sin(k)*k^2)+3;print(j-5)}
+@
+
+Note \texttt{=} is replaced by \texttt{<-} because \texttt{options('formatR.arrow')}
+was set to be \texttt{TRUE} in this document; see the documentation
+of \emph{tidy.source()} in \textbf{formatR} for details.
+
+Many highlighting themes can be used in \textbf{knitr}, which are
+borrowed from the \textbf{highlight} package by \href{http://www.andre-simon.de/}{Andre Simon}\footnote{not the R package mentioned before; for a preview of these themes,
+see \url{http://www.andre-simon.de/dokuwiki/doku.php?id=theme_examples}}; it is also possible to use themes from \url{http://www.eclipsecolorthemes.org/}
+by providing a theme id to \textbf{knitr}\footnote{many thanks to \href{https://github.com/ramnathv}{Ramnath Vaidyanathan}
+for the work on themes}. See \texttt{?knit\_theme} for details.
+
+\subsection{Graphics}
+
+Graphics is an important part of reports, and several enhancements
+have been made in \textbf{knitr}. For example, grid graphics may not
+need to be explicitly printed as long as the same code can produce
+plots in R (in some cases, however, they have to be printed, e.g.
+in a loop, because you have to do so in an R terminal).
+
+\subsubsection{Graphical Devices}
+
+Over a long time, a frequently requested feature for Sweave was the
+support for other graphics devices, which has been implemented since
+R 2.13.0. Instead of using logical options like \texttt{png} or \texttt{jpeg}
+(this list can go on and on), \textbf{knitr} uses a single option
+\texttt{dev} (like \texttt{grdevice} in Sweave) which has support
+for more than 20 devices. For instance, \texttt{dev='png'} will use
+the \emph{png()} device, and \texttt{dev='CairoJPEG'} uses the \emph{CairoJPEG()}
+device in the \textbf{Cairo} package (it has to be installed first,
+of course). If none of these devices is satisfactory, you can provide
+the name of a customized device function, which must have been defined
+before it is called.
+
+\subsubsection{Plot Recording}
+
+As mentioned before, all the plots in a code chunk are first recorded
+as R objects and then ``replayed'' inside a graphical device to
+generate plot files. The \textbf{evaluate} package will record plots
+per \emph{expression} basis, in other words, the source code is split
+into individual complete expressions and \textbf{evaluate} will examine
+possible plot changes in snapshots after each single expression has
+been evaluated. For example, the code below consists of three expressions,
+out of which two are related to drawing plots, therefore \textbf{evaluate}
+will produce two plots by default:
+
+<<low-level-plots, fig.keep='all', dev='tikz', fig.width=2.5, fig.height=2.5, out.width='.3\\textwidth', cache=TRUE>>=
+par(mar=c(3,3,.1,.1))
+plot(1:10, ann=FALSE,las=1)
+text(5,9,'mass $\\rightarrow$ energy\n$E=mc^2$')
+@
+
+This brings a significant difference with traditional tools in R for
+dynamic report generation, since low-level plotting changes can also
+be recorded. The option \texttt{fig.keep} controls which plots to
+keep in the output; \texttt{fig.keep='all'} will keep low-level changes
+as separate plots; by default (\texttt{fig.keep='high'}), \textbf{knitr}
+will merge low-level plot changes into the previous high-level plot,
+like most graphics devices do. This feature may be useful for teaching
+R graphics step by step. Note, however, low-level plotting commands
+in a single expression (a typical case is a loop) will not be recorded
+accumulatively, but high-level plotting commands, regardless of where
+they are, will always be recorded. For example, this chunk will only
+produce 2 plots instead of 21 plots because there are 2 complete expressions:
+
+<<low-plot-loop, eval=FALSE>>=
+plot(0,0,type='n',ann=FALSE)
+for(i in seq(0, 2*pi,length=20)) points(cos(i),sin(i))
+@
+
+But this will produce 20 plots as expected:
+
+<<high-plot-loop, eval=FALSE>>=
+for(i in seq(0, 2*pi,length=20)) {plot(cos(i),sin(i),xlim=c(-1,1),ylim=c(-1,1))}
+@
+
+As I showed in the beginning of this manual, it is straightforward
+to let \textbf{knitr} keep all the plots in a chunk and insert them
+into the output document, so we no longer need the \texttt{cat('\textbackslash{}\textbackslash{}includegraphics\{\}')}
+trick.
+
+We can discard all previous plots and keep the last one only by \texttt{fig.keep='last'},
+or keep only the first plot by \texttt{fig.keep='first'}, or discard
+all plots by \texttt{fig.keep='none'}.
+
+\subsubsection{Plot Rearrangement}
+
+The option \texttt{fig.show} can decide whether to hold all plots
+while evaluating the code and ``flush'' all of them to the end of
+a chunk (\texttt{fig.show='hold'}), or just insert them to the place
+where they were created (by default \texttt{fig.show='asis'}). Here
+is an example of \texttt{fig.show='asis'}:
+
+<<fig-hold, fig.show='asis', dev='pdf', fig.width=6, fig.height=4, out.width='.35\\linewidth'>>=
+contour(volcano)  # contour lines
+filled.contour(volcano)  # fill contour plot with colors
+@
+
+Beside \texttt{hold} and \texttt{asis}, the option \texttt{fig.show}
+can take a third value: \texttt{animate}, which makes it possible
+to insert animations into the output document. In \LaTeX{}, the package
+\textbf{animate} is used to put together image frames as an animation.
+For animations to work, there must be more than one plot produced
+in a chunk. The option \texttt{interval} controls the time interval
+between animation frames; by default it is 1 second. Note you have
+to add \texttt{\textbackslash{}usepackage\{animate\}} in the \LaTeX{}
+preamble, because \textbf{knitr} will not add it automatically. Animations
+in the PDF output can only be viewed in Adobe Reader.
+
+As a simple demonstration, here is a \href{http://en.wikipedia.org/wiki/Mandelbrot_set}{Mandelbrot animation}
+taken from the \textbf{animation} package \citep{R-animation}; note
+the PNG device is used because PDF files are too large. You should
+be able to see the animation immediately with Acrobat Reader since
+it was set to play automatically:
+
+<<animate-demo, fig.show='animate', dev='png', out.width='.45\\linewidth', interval=.5, aniopts='controls,loop,autoplay',  cache=TRUE>>=
+library(animation)
+demo('Mandelbrot', echo = FALSE, package = 'animation')
+@
+
+\subsubsection{Plot Size}
+
+The \texttt{fig.width} and \texttt{fig.height} options specify the
+size of plots in the graphics device, and the real size in the output
+document can be different (see \texttt{out.width} and \texttt{out.height}).
+When there are multiple plots per chunk, it is possible to arrange
+more than one plot per line in \LaTeX{} \textendash{} just specify
+\texttt{out.width} to be less than half of the current line width,
+e.g. \texttt{out.width='.49\textbackslash{}\textbackslash{}linewidth'}.
+
+\subsubsection{The tikz Device}
+
+Beside PDF, PNG and other traditional R graphical devices, \textbf{knitr}
+has special support to tikz graphics via the \textbf{tikzDevice} package
+\citep{R-tikzDevice}, which is similar to \textbf{pgfSweave}. If
+we set the chunk option \texttt{dev='tikz'}, the \emph{tikz()} device
+in \textbf{tikzDevice} will be used to save plots. Options \texttt{sanitize}
+and \texttt{external} are related to the tikz device: see the documentation
+of \emph{tikz()} for details. Note \texttt{external=TRUE} in \textbf{knitr}
+has a different meaning with \textbf{pgfSweave} \textendash{} it means
+\texttt{standAlone=TRUE} in \emph{tikz()}, and the tikz graphics output
+will be compiled to PDF \emph{immediately} after it is created, so
+the ``externalization'' does not depend on the \textbf{tikz} package;
+to maintain consistency in (font) styles, \textbf{knitr} will read
+the preamble of the input document and use it in the tikz device.
+At the moment, I'm not sure if this is a faithful way to externalize
+tikz graphics, but I have not seen any problems so far. The assumption
+to make, however, is that you declare all the styles in the preamble;
+\textbf{knitr} is agnostic of \emph{local} style changes in the body
+of the document.
+
+Below is an example taken from StackOverflow\footnote{\url{http://stackoverflow.com/q/8190087/559676}};
+we usually have to write R code like this to obtain a math expression
+$\mathrm{d}\mathbf{x}_{t}=\alpha[(\theta-\mathbf{x}_{t})\mathrm{d}t+4]\mathrm{d}B_{t}$
+in R graphics:
+
+<<math-expr-R, eval=FALSE>>=
+qplot(1:10, 1:10) + opts(title = substitute(paste(d * 
+    bolditalic(x)[italic(t)] == alpha * (theta - bolditalic(x)[italic(t)]) * 
+    d * italic(t) + lambda * d * italic(B)[italic(t)]), list(lambda = 4))) 
+@
+
+With the tikz device, it is both straightforward and more beautiful: 
+
+<<math-expr-tikz, dev='tikz', fig.width=5, fig.height=3, out.width='.55\\linewidth', cache=TRUE, message=FALSE>>=
+library(ggplot2)
+qplot(1:10, 1:10) + 
+labs(title = sprintf('$\\mathrm{d}\\mathbf{x}_{t} = \\alpha[(\\theta - \\mathbf{x}_{t})\\mathrm{d}t + %d]\\mathrm{d}B_{t}$', 4))
+@
+
+The advantage of tikz graphics is the consistency of styles\footnote{Users are encouraged to read the vignette of \textbf{tikzDevice},
+which is the most beautiful vignette I have ever seen in R packages:
+\url{http://cran.r-project.org/web/packages/tikzDevice/vignettes/tikzDevice.pdf}}, and one disadvantage is that \LaTeX{} may not be able to handle
+too large tikz files (it can run out of memory). For example, an R
+plot with tens of thousands of graphical elements may fail to compile
+in \LaTeX{} if we use the tikz device. In such cases, we can switch
+to the PDF or PNG device, or reconsider our decision on the type of
+plots, e.g., a scatter plot with millions of points is usually difficult
+to read, and a contour plot or a hexagon plot showing the 2D density
+can be a better alternative (they are smaller in size).
+
+The graphics manual contains more detailed information and you can
+check it out in the \href{http://yihui.name/knitr/demo/graphics/}{website}.
+
+\subsection{Cache}
+
+The feature of cache is not a new idea \textendash{} both \textbf{cacheSweave}
+and \textbf{weaver} have implemented it based on Sweave, with the
+former using \textbf{filehash} and the latter using \textsf{.RData}
+images; \textbf{cacheSweave} also supports lazy-loading of objects
+based on \textbf{filehash}. The \textbf{knitr} package directly uses
+internal base R functions to save (\emph{tools:::makeLazyLoadDB()})
+and lazy-load objects (\emph{lazyLoad()}). These functions are either
+undocumented or marked as internal, but as far as I understand, they
+are the tools to implement lazy-loading for packages. The \textbf{cacheSweave}
+vignette has clearly explained lazy-loading, and roughly speaking,
+lazy-loading means an object will not be really loaded into memory
+unless it is really used somewhere. This is very useful for cache;
+sometimes we read a large object and cache it, then take a subset
+for analysis and this subset is also cached; in the future, the initial
+large object will not be loaded into R if our computation is only
+based on the object of its subset.
+
+The paths of cache files are determined by the chunk option \texttt{cache.path};
+by default all cache files are created under a directory \textsf{cache}
+relative to the current working directory, and if the option value
+contains a directory (e.g. \texttt{cache.path='cache/abc-'}), cache
+files will be stored under that directory (automatically created if
+it does not exist). The cache is invalidated and purged on any changes
+to the code chunk, including both the R code and chunk options\footnote{One exception is the \texttt{include} option, which is not cached
+because \texttt{include=TRUE/FALSE} does not affect code evaluation;
+meanwhile, the value \texttt{getOption('width')} is also cached, so
+if you change this option, the cache will also be invalidated (this
+option affects the width of text output)}; this means previous cache files of this chunk are removed (filenames
+are identified by the chunk label). Unlike \textbf{pgfSweave}, cache
+files will never accumulate since old cache files will always be removed
+in \textbf{knitr}. Unlike \textbf{weaver} or \textbf{cacheSweave},
+\textbf{knitr} will try to preserve these side-effects:
+\begin{enumerate}
+\item printed results: meaning that any output of a code chunk will be loaded
+into the output document for a cached chunk, although it is not really
+evaluated. The reason is \textbf{knitr} also cache the output of a
+chunk as a character string. Note this means graphics output is also
+cached since it is part of the output. It has been a pain for me for
+a long time to have to lose output to gain cache;
+\item loaded packages: after the evaluation of each cached chunk, the list
+of packages used in the current R session is written to a file under
+the cache path named \textsf{\_\_packages}; next time if a cached
+chunk needs to be rebuilt, these packages will be loaded first. The
+reasons for caching package names are, it can be slow to load some
+packages, and a package might be loaded in a previous cached chunk
+which is not available to the next cached chunk when only the latter
+needs to be rebuilt. Note this only applies to cached chunks, and
+for uncached chunks, you must always use \emph{library()} to load
+packages explicitly;
+\end{enumerate}
+Although \textbf{knitr} tries to keep some side-effects, there are
+still other types of side-effects like setting \emph{par()} or \emph{options()}
+which are not cached. Users should be aware of these special cases,
+and make sure to clearly separate the code which is not meant to be
+cached to other chunks which are not cached, e.g., set all global
+options in the first chunk of a document and do not cache that chunk.
+
+Sometimes a cached chunk may need to use objects from other cached
+chunks, which can bring a serious problem \textendash{} if objects
+in previous chunks have changed, this chunk will not be aware of the
+changes and will still use old cached results, unless there is a way
+to detect such changes from other chunks. There is an option called
+\texttt{dependson} in \textbf{cacheSweave} which does this job. We
+can explicitly specify which other chunks this chunk depends on by
+setting an option like \texttt{dependson='chunkA;chunkB'} or equivalently
+\texttt{dependson=c('chunkA', 'chunkB')}. Each time the cache of a
+chunk is rebuilt, all other chunks which depend on this chunk will
+lose cache, hence their cache will be rebuilt as well.
+
+Another way to specify the dependencies among chunks is to use the
+chunk option \texttt{autodep} and the function \emph{dep\_auto()}.
+This is an experimental feature borrowed from \textbf{weaver} which
+frees us from setting chunk dependencies manually. The basic idea
+is, if a latter chunk uses any objects created from a previous chunk,
+the latter chunk is said to depend on the previous one. The function
+\emph{findGlobals()} in the \textbf{codetools} package is used to
+find out all global objects in a chunk, and according to its documentation,
+the result is an approximation. Global objects roughly mean the ones
+which are not created locally, e.g. in the expression \texttt{function()
+\{y <- x\}}, \texttt{x} should be a global object, whereas \texttt{y}
+is local. Meanwhile, we also need to save the list of objects created
+in each cached chunk, so that we can compare them to the global objects
+in latter chunks. For example, if chunk A created an object \texttt{x}
+and chunk B uses this object, chunk B must depend on A, i.e. whenever
+A changes, B must also be updated. When \texttt{autodep=TRUE}, \textbf{knitr}
+will write out the names of objects created in a cached chunk as well
+as those global objects in two files named \textsf{\_\_objects} and
+\textsf{\_\_globals} respectively; later we can use the function \emph{dep\_auto()}
+to analyze the object names to figure out the dependencies automatically.
+See \url{http://yihui.name/knitr/demo/cache/} for examples.
+
+Yet another way to specify dependencies is \emph{dep\_prev()}: this
+is a conservative approach which sets the dependencies so that a cached
+chunk will depend on all its previous chunks, i.e. whenever a previous
+chunk is updated, all later chunks will be updated accordingly.
+
+\subsection{Code Externalization}
+
+It can be more convenient to write R code in a separate file, rather
+than mixing it into a \LaTeX{} document; for example, we can run
+R code successively in a pure R script from one chunk to the other
+without jumping through other texts. Since I prefer using \LyX{}
+to write reports, Sweave is even more inconvenient because I have
+to recompile the whole document each time, even if I only want to
+know the results of a single chunk. Therefore \textbf{knitr} introduced
+the feature of code externalization to a separate R script. Currently
+the setting is like this: the R script also uses chunk labels (marked
+in the form \texttt{\#\# -{}-{}-{}- chunk-label} by default); if the
+code chunk in the input document is empty, \textbf{knitr} will match
+its label with the label in the R script to input external R code.
+For example, suppose this is a code chunk labelled as \texttt{Q1}
+in an R script named \textsf{homework1-xie.R} which is under the same
+directory as the Rnw document:
+
+<<ext-r-code, eval=FALSE>>=
+## ---- Q1 ---------------------
+gcd = function(m, n) {
+    while ((r <- m %% n) != 0) {
+       m = n; n = r
+    }
+    n
+}
+@
+
+In the Rnw document, we can first read the script using the function
+\emph{read\_chunk()}:
+
+<<read-chunk, eval=FALSE>>=
+read_chunk('homework1-xie.R')
+@
+
+This is usually done in an early chunk, and we can use the chunk \texttt{Q1}
+later in the Rnw document:
+
+<<use-ext-chunk, echo=FALSE, comment=NA>>=
+cat('<<Q1, echo=TRUE, tidy=TRUE>>=','@',sep='\n')
+@
+
+Different documents can read the same R script, so the R code can
+be reusable across different input documents.
+
+\subsection{Evaluation of Chunk Options\label{subsec:conditional}}
+
+By default \textbf{knitr} uses a new syntax to parse chunk options:
+it treats them as function arguments instead of a text string to be
+split to obtain option values. This gives the user much more power
+than the old syntax; we can pass arbitrary R objects to chunk options
+besides simple ones like \texttt{TRUE}/\texttt{FALSE}, numbers and
+character strings. The page \url{http://yihui.name/knitr/demo/sweave/}
+has given two examples to show the advantages of the new syntax. Here
+we show yet another useful application.
+
+Before \textbf{knitr} 0.3, there was a feature named ``conditional
+evaluation''\footnote{request from \url{https://plus.google.com/u/0/116405544829727492615/posts/43WrRUffjzK}}.
+The idea is, instead of setting chunk options \texttt{eval} and \texttt{echo}
+to be \texttt{TRUE} or \texttt{FALSE} (constants), their values can
+be controlled by global variables in the current R session. This enables
+\textbf{knitr} to conditionally evaluate code chunks according to
+variables. For example, here we assign \texttt{TRUE} to a variable
+\texttt{dothis}:
+
+<<cond-variable>>=
+dothis=TRUE
+@
+
+In the next chunk, we set chunk options \texttt{eval=dothis} and \texttt{echo=!dothis},
+both are valid R expressions since the variable \texttt{dothis} exists.
+As we can see, the source code is hidden, but it was indeed evaluated:
+
+<<cond-out1, eval=dothis, echo=!dothis>>=
+print('you cannot see my source because !dothis is FALSE')
+@
+
+Then we set \texttt{eval=dothis} and \texttt{echo=dothis} for another
+chunk:
+
+<<cond-out2,eval=dothis,echo=dothis>>=
+dothis
+@
+
+If we change the value of \texttt{dothis} to \texttt{FALSE}, neither
+of the above chunks will be evaluated any more. Therefore we can control
+many chunks with a single variable, and present results selectively.
+
+This old feature requires \textbf{knitr} to treat \texttt{eval} and
+\texttt{echo} specially, and we can easily see that it is no longer
+necessary with the new syntax: \texttt{eval=dothis} will tell R to
+find the variable \texttt{dothis} automatically just like we call
+a function \texttt{foobar(eval = dothis)}. What is more, all options
+will be evaluated as R expressions unless they are already constants
+which do not need to be evaluated, so this old feature has been generalized
+to all other options naturally.
+
+\subsection{Customization}
+
+The \textbf{knitr} package is ready for customization. Both the patterns
+and hooks can be customized; see the package website for details.
+Here I show an example on how to save \textbf{rgl} plots \citep{R-rgl}
+using a customized hook function. First we define a hook named \texttt{rgl}
+using the function \emph{hook\_rgl()} in \textbf{rgl}:
+
+<<rgl-demo>>=
+library(rgl)
+knit_hooks$set(rgl = hook_rgl)
+head(hook_rgl)  # the hook function is defined as this
+@
+
+Then we only have to set the chunk option \texttt{rgl=TRUE}:
+
+<<fancy-rgl, rgl=TRUE, dev='png', fig.width=5, fig.height=5, out.width='2in', message=FALSE, warning=FALSE, cache=TRUE>>=
+library(rgl)
+demo('bivar', package='rgl', echo=FALSE) 
+par3d(zoom=.7)
+@
+
+Due to the flexibility of output hooks, \textbf{knitr} supports several
+different output formats. The implementation is fairly easy, e.g.,
+for \LaTeX{} we put R output in \texttt{verbatim} environments, and
+in HTML, it is only a matter of putting output in \texttt{div} layers.
+These are simply character string operations. Many demos in \url{http://yihui.name/knitr/demos}
+show this idea clearly. This manual did not cover all the features
+of \textbf{knitr}, and users are encouraged to thumb through the website
+to know more possible features.
+
+\section{Editors}
+
+You can use any text editors to write the source documents, but some
+have built-in support for \textbf{knitr}. Both RStudio (\url{http://www.rstudio.org})
+and \LyX{} (\url{http://www.lyx.org}) have full support for \textbf{knitr},
+and you can compile the document to PDF with just one click. See \url{http://yihui.name/knitr/demo/rstudio/}
+and \url{http://yihui.name/knitr/demo/lyx/} respectively. It is also
+possible to support other editors like \href{http://yihui.name/knitr/demo/eclipse/}{Eclipse},
+\href{http://yihui.name/knitr/demo/editors/}{Texmaker and WinEdt};
+see the demo list in the website for configuration instructions.
+
+\section*{About This Document}
+
+This manual was written in \LyX{} and compiled with \textbf{knitr}
+(version \Sexpr{packageVersion('knitr')}). The \LyX{} source and
+the Rnw document exported from \LyX{} can be found under these directories:
+
+<<source-location, eval=FALSE>>=
+system.file('examples', 'knitr-manual.lyx', package='knitr')  # lyx source
+system.file('examples', 'knitr-manual.Rnw', package='knitr')  # Rnw source
+@
+
+You can use the function \emph{knit()} to knit the Rnw document (remember
+to put the two \textsf{.bib} files under the same directory), and
+you need to make sure all the R packages used in this document are
+installed:
+
+<<required-packages, eval=FALSE>>=
+install.packages(c('animation', 'rgl', 'tikzDevice', 'ggplot2'))
+@
+
+Feedback and comments on this manual and the package are always welcome.
+Bug reports and feature requests can be sent to \url{https://github.com/yihui/knitr/issues},
+and questions can be delivered to the \href{mailto:knitr@googlegroups.com}{mailing list}
+\url{https://groups.google.com/group/knitr}.
+
+% when knitr is updated, this chunk will be updated; why?
+<<auto-bib, version=packageVersion('knitr'), echo=FALSE, cache=TRUE, message=FALSE, warning=FALSE>>=
+# write all packages in the current session to a bib file
+write_bib(c(.packages(), 'evaluate', 'formatR', 'highr'), file = 'knitr-packages.bib')
+@
+
+\bibliographystyle{jss}
+\bibliography{knitr-manual,knitr-packages}
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/download_count.csv
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/download_count.csv	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/download_count.csv	(revision 2476)
@@ -0,0 +1,10 @@
+"file","count"
+"DDR-Yihui-Xie-Chap1-3.pdf",14977
+"knitr-beamer.pdf",4343
+"knitr-graphics.pdf",21614
+"knitr-listings.pdf",906
+"knitr-manual.pdf",39178
+"knitr-minimal.pdf",12695
+"knitr-subfloats.pdf",218
+"knitr-themes.pdf",2883
+"knitr-twocolumn.pdf",533
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.brew
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.brew	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.brew	(revision 2476)
@@ -0,0 +1 @@
+See https://github.com/yihui/knitr-examples/blob/master/004-minimal.brew
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knit-all.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knit-all.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knit-all.R	(revision 2476)
@@ -0,0 +1,45 @@
+#!/usr/bin/env Rscript
+
+if (!nzchar(Sys.which('lyx')) || system('lyx -version') != 0L) q()
+
+call_lyx = function(file) {
+  res = sapply(sprintf('lyx -e %s %s', c('knitr', 'r', 'pdf2'), file),
+               system, ignore.stdout = TRUE, USE.NAMES = FALSE)
+  unlink(sub('\\.lyx$', '.R', file))
+  stopifnot(identical(res, integer(3L)))
+}
+
+for (i in list.files(pattern = '\\.lyx$')) {
+  message(i)
+  call_lyx(i)
+  flush.console()
+}
+
+knit_script = normalizePath('../bin/knit', mustWork = TRUE)
+knit_cmd = function(file) {
+  paste('Rscript', shQuote(knit_script), shQuote(file))
+}
+test_cmd = function(cmd) {
+  stopifnot(identical(system(cmd, ignore.stdout = TRUE), 0L))
+}
+
+for (i in list.files(pattern = '\\.Rmd')) {
+  message(i)
+  cmd = if (i == 'knitr-minimal.Rmd') {
+    sprintf("Rscript -e 'library(knitr);opts_knit$set(base.url=\"http://animation.r-forge.r-project.org/ideas/\");knit(\"%s\")'", i)
+  } else knit_cmd(i)
+  test_cmd(cmd)
+  flush.console()
+}
+
+test_cmd(sprintf("Rscript -e 'library(knitr);spin(\"knitr-spin.R\", precious=TRUE)'"))
+
+setwd('child')
+for (i in c('knitr-main.Rnw', 'knitr-parent.Rnw')) {
+  test_cmd(knit_cmd(i))
+}
+unlink('*.tex')
+test_cmd(knit_cmd('knitr-main.Rmd'))
+setwd('..')
+
+file.remove('child/knitr-main.html')
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-manual.lyx
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-manual.lyx	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-manual.lyx	(revision 2476)
@@ -0,0 +1,2986 @@
+#LyX 2.1 created this file. For more info see http://www.lyx.org/
+\lyxformat 474
+\begin_document
+\begin_header
+\textclass article
+\begin_preamble
+\renewcommand{\textfraction}{0.05}
+\renewcommand{\topfraction}{0.8}
+\renewcommand{\bottomfraction}{0.8}
+\renewcommand{\floatpagefraction}{0.75}
+
+\usepackage[buttonsize=1em]{animate}
+\end_preamble
+\use_default_options true
+\begin_modules
+knitr
+\end_modules
+\maintain_unincluded_children false
+\language english
+\language_package none
+\inputencoding default
+\fontencoding global
+\font_roman palatino
+\font_sans lmss
+\font_typewriter lmtt
+\font_math auto
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc true
+\font_osf false
+\font_sf_scale 100
+\font_tt_scale 100
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref true
+\pdf_bookmarks true
+\pdf_bookmarksnumbered true
+\pdf_bookmarksopen true
+\pdf_bookmarksopenlevel 2
+\pdf_breaklinks false
+\pdf_pdfborder false
+\pdf_colorlinks false
+\pdf_backref false
+\pdf_pdfusetitle true
+\pdf_quoted_options "pdfstartview={XYZ null null 1}"
+\papersize default
+\use_geometry true
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine natbib
+\cite_engine_type authoryear
+\biblio_style plainnat
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\leftmargin 2.5cm
+\topmargin 2.5cm
+\rightmargin 2.5cm
+\bottommargin 2.5cm
+\secnumdepth 2
+\tocdepth 2
+\paragraph_separation indent
+\paragraph_indentation default
+\quotes_language english
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<setup, include=FALSE, cache=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(knitr)
+\end_layout
+
+\begin_layout Plain Layout
+
+## set global chunk options
+\end_layout
+
+\begin_layout Plain Layout
+
+opts_chunk$set(fig.path='figure/manual-', cache.path='cache/manual-', fig.align='ce
+nter', fig.show='hold', par=TRUE)
+\end_layout
+
+\begin_layout Plain Layout
+
+## I use = but I can replace it with <-; set code/output width to be 68
+\end_layout
+
+\begin_layout Plain Layout
+
+options(formatR.arrow=TRUE, width=68, digits=4)
+\end_layout
+
+\begin_layout Plain Layout
+
+## tune details of base graphics (http://yihui.name/knitr/hooks)
+\end_layout
+
+\begin_layout Plain Layout
+
+knit_hooks$set(par=function(before, options, envir){
+\end_layout
+
+\begin_layout Plain Layout
+
+if (before && options$fig.show!='none') par(mar=c(4,4,.1,.1),cex.lab=.95,cex.axis=.9,mg
+p=c(2,.7,0),tcl=-.3)
+\end_layout
+
+\begin_layout Plain Layout
+
+})
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Title
+knitr: A General-Purpose Tool for Dynamic Report Generation in R
+\end_layout
+
+\begin_layout Author
+Yihui Xie
+\end_layout
+
+\begin_layout Standard
+The original paradigm of literate programming was brought forward mainly
+ for software development, or specifically, to mix source code (for computer)
+ and documentation (for human) together.
+ Early systems include 
+\begin_inset CommandInset href
+LatexCommand href
+name "WEB"
+target "http://www.literateprogramming.com/web.pdf"
+
+\end_inset
+
+ and 
+\begin_inset CommandInset href
+LatexCommand href
+name "Noweb"
+target "http://www.cs.tufts.edu/~nr/noweb/"
+
+\end_inset
+
+; Sweave 
+\begin_inset CommandInset citation
+LatexCommand citep
+key "leisch2002"
+
+\end_inset
+
+ was derived from the latter, but it is less focused on documenting software,
+ instead it is mainly used for reproducible data analysis and generating
+ statistical reports.
+ The 
+\series bold
+knitr
+\series default
+ package 
+\begin_inset CommandInset citation
+LatexCommand citep
+key "R-knitr"
+
+\end_inset
+
+ is following the steps of Sweave.
+ For this manual, I assume readers have some background knowledge of Sweave
+ to understand the technical details; for a reference of available options,
+ hooks and demos, see the package homepage 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://yihui.name/knitr/
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Hello World
+\end_layout
+
+\begin_layout Standard
+A natural question is why to reinvent the wheel.
+ The short answer is that extending Sweave by hacking 
+\family sans
+SweaveDrivers.R
+\family default
+ in the 
+\series bold
+utils
+\series default
+ package is a difficult job to me.
+ Many features in 
+\series bold
+knitr
+\series default
+ come naturally as users would have expected.
+ Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:cars-demo"
+
+\end_inset
+
+ is a simple demo of some features of 
+\series bold
+knitr
+\series default
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<cars-demo,dev='tikz',fig.width=4,fig.height=2.8,out.width='.45
+\backslash
+
+\backslash
+textwidth',message=FALSE,cache=TRUE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+fit=lm(dist~speed,data=cars) # linear regression
+\end_layout
+
+\begin_layout Plain Layout
+
+par(mar=c(4, 4, 1, .1), mgp=c(2,1,0))
+\end_layout
+
+\begin_layout Plain Layout
+
+with(cars,plot(speed,dist,panel.last=abline(fit)))
+\end_layout
+
+\begin_layout Plain Layout
+
+text(10,100,'$Y = 
+\backslash
+
+\backslash
+beta_0 + 
+\backslash
+
+\backslash
+beta_1x + 
+\backslash
+
+\backslash
+epsilon$')
+\end_layout
+
+\begin_layout Plain Layout
+
+library(ggplot2)
+\end_layout
+
+\begin_layout Plain Layout
+
+qplot(speed, dist, data=cars)+geom_smooth()
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption Standard
+
+\begin_layout Plain Layout
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:cars-demo"
+
+\end_inset
+
+A simple demo of possible output in 
+\series bold
+knitr
+\series default
+: (1) multiple plots per chunk; (2) no need to 
+\emph on
+print()
+\emph default
+ objects in 
+\series bold
+ggplot2
+\series default
+; (3) device size is 
+\begin_inset Formula $4\times2.8$
+\end_inset
+
+ (inches) but output size is adjusted to 
+\family typewriter
+.45
+\backslash
+textwidth
+\family default
+ in chunk options; (4) base graphics and 
+\series bold
+ggplot2
+\series default
+ can sit side by side; (5) use the 
+\emph on
+tikz()
+\emph default
+ device in 
+\series bold
+tikzDevice
+\series default
+ by setting chunk option 
+\family typewriter
+dev='tikz'
+\family default
+ (hence can write native LaTeX expressions in R plots); (6) code highlighting.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+I would have chosen to hide the R code if this were a real report, but here
+ I show the code just for the sake of demonstration.
+ If we type 
+\emph on
+qplot()
+\emph default
+ in R, we get a plot, and the same thing happens in 
+\series bold
+knitr
+\series default
+.
+ If we draw two plots in the code, 
+\series bold
+knitr
+\series default
+ will show two plots and we do not need to tell it how many plots are there
+ in the code in advance.
+ If we set 
+\family typewriter
+out.width='.49
+\backslash
+
+\backslash
+textwidth'
+\family default
+ in chunk options, we get it in the final output document.
+ If we say 
+\family typewriter
+fig.align='center'
+\family default
+, the plots are centered.
+ That's it.
+ Many enhancements and new features will be introduced later.
+ If you come from the Sweave land, you can take a look at the page of transition
+ first: 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://yihui.name/knitr/demo/sweave/
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Section
+Design
+\end_layout
+
+\begin_layout Standard
+The flow of processing an input file is similar to Sweave, and two major
+ differences are that 
+\series bold
+knitr
+\series default
+ provides more flexibility to the users to customize the processing, and
+ has many built-in options such as the support to a wide range of graphics
+ devices and cache.
+ Below is a brief description of the process:
+\end_layout
+
+\begin_layout Enumerate
+
+\series bold
+knitr
+\series default
+ takes an input file and automatically determines an appropriate set of
+ 
+\begin_inset CommandInset href
+LatexCommand href
+name "patterns"
+target "http://yihui.name/knitr/patterns"
+
+\end_inset
+
+ to use if they are not provided in advance (e.g.
+ 
+\family sans
+file.Rnw
+\family default
+ will use 
+\family typewriter
+knit_patterns$get('rnw')
+\family default
+);
+\end_layout
+
+\begin_layout Enumerate
+a set of output 
+\begin_inset CommandInset href
+LatexCommand href
+name "hooks"
+target "http://yihui.name/knitr/hooks"
+
+\end_inset
+
+ will also be set up automatically according to the filename extension (e.g.
+ use LaTeX environments or HTML elements to wrap up R results);
+\end_layout
+
+\begin_layout Enumerate
+the input file is read in and split into pieces consisting of R code chunks
+ and normal texts; the former will be executed one after the other, and
+ the latter may contain global chunk options or inline R code;
+\end_layout
+
+\begin_layout Enumerate
+for each chunk, the code is evaluated using the 
+\series bold
+evaluate
+\series default
+ package 
+\begin_inset CommandInset citation
+LatexCommand citep
+key "R-evaluate"
+
+\end_inset
+
+, and the results may be filtered according to chunk options (e.g.
+ 
+\family typewriter
+echo=FALSE
+\family default
+ will remove the R source code)
+\end_layout
+
+\begin_deeper
+\begin_layout Enumerate
+if 
+\family typewriter
+cache=TRUE
+\family default
+ for this chunk, 
+\series bold
+knitr
+\series default
+ will first check if there are previously cached results under the cache
+ directory before really evaluating the chunk; if cached results exist and
+ this code chunk has not been changed since last run (use MD5 sum to verify),
+ the cached results will be (lazy-) loaded, otherwise new cache will be
+ built; if a cached chunk depends on other chunks (see the 
+\family typewriter
+dependson
+\family default
+ 
+\begin_inset CommandInset href
+LatexCommand href
+name "option"
+target "http://yihui.name/knitr/options"
+
+\end_inset
+
+) and any one of these chunks has changed, this chunk must be forcibly updated
+ (old cache will be purged)
+\end_layout
+
+\begin_layout Enumerate
+there are six types of possible output from 
+\series bold
+evaluate
+\series default
+, and their classes are 
+\family typewriter
+character
+\family default
+ (normal text output), 
+\family typewriter
+source
+\family default
+ (source code), 
+\family typewriter
+warning
+\family default
+, 
+\family typewriter
+message
+\family default
+, 
+\family typewriter
+error
+\family default
+ and 
+\family typewriter
+recordedplot
+\family default
+; an internal S3 generic function 
+\emph on
+wrap()
+\emph default
+ is used to deal with different types of output, using output hooks defined
+ in the object 
+\family typewriter
+knit_hooks
+\end_layout
+
+\begin_layout Enumerate
+note plots are recorded as R objects before they are really saved to files,
+ so graphics devices will not be opened unless plots have really been produced
+ in a chunk
+\end_layout
+
+\begin_layout Enumerate
+a code chunk is evaluated in a separate empty environment with the global
+ environment as its parent, and all the objects in this environment after
+ the evaluation will be saved if 
+\family typewriter
+cache=TRUE
+\end_layout
+
+\begin_layout Enumerate
+chunk hooks can be run before and/or after a chunk
+\end_layout
+
+\end_deeper
+\begin_layout Enumerate
+for normal texts, 
+\series bold
+knitr
+\series default
+ will find inline R code (e.g.
+ in 
+\family typewriter
+
+\backslash
+Sexpr{}
+\family default
+) and evaluate it; the output is wrapped by the 
+\family typewriter
+inline
+\family default
+ hook;
+\end_layout
+
+\begin_layout Standard
+The hooks play important roles in 
+\series bold
+knitr
+\series default
+: this package makes almost everything accessible to the users.
+ Consider the following extremely simple example which may demonstrate this
+ freedom:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<simple-example>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+1+1
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+There are two parts in the final output: the source code 
+\family typewriter
+1 + 1
+\family default
+ and the output 
+\family typewriter
+[1] 2
+\family default
+; the comment characters 
+\family typewriter
+##
+\family default
+ are from the default chunk option 
+\family typewriter
+comment
+\family default
+.
+ Users may define a hook function for the source code like this to use the
+ 
+\family typewriter
+lstlisting
+\family default
+ environment:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<hook-source, eval=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+knit_hooks$set(source = function(x, options) {
+\end_layout
+
+\begin_layout Plain Layout
+
+paste('
+\backslash
+
+\backslash
+begin{lstlisting}
+\backslash
+n', x, '
+\backslash
+
+\backslash
+end{lstlisting}
+\backslash
+n', sep = '')
+\end_layout
+
+\begin_layout Plain Layout
+
+})
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Similarly we can put other types of output into other environments.
+ There is no need to hack at 
+\family sans
+Sweave.sty
+\family default
+ for 
+\series bold
+knitr
+\series default
+ and you can put the output in any environments.
+ What is more, the output hooks make 
+\series bold
+knitr
+\series default
+ ready for other types of output, and a typical one is HTML (there are built-in
+ hooks).
+ The website has provided many examples demonstrating the flexibility of
+ the output.
+\end_layout
+
+\begin_layout Section
+Features
+\end_layout
+
+\begin_layout Standard
+The 
+\series bold
+knitr
+\series default
+ package borrowed features such as tikz graphics and cache from 
+\series bold
+pgfSweave
+\series default
+ and 
+\series bold
+cacheSweave
+\series default
+ respectively, but the implementations are different.
+ New features like code reference from an external R script as well as output
+ customization are also introduced.
+ The feature of hook functions in Sweave is re-implemented and hooks have
+ new usage now.
+ There are several other small features which are motivated from my everyday
+ use of Sweave.
+ For example, a progress bar is provided when knitting a file so we roughly
+ know how long we still need to wait; output from inline R code (e.g.
+ 
+\family typewriter
+
+\backslash
+Sexpr{x[1]}
+\family default
+) is automatically formatted in TeX math notation (like 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+Sexpr{123456789}
+\end_layout
+
+\end_inset
+
+) if the result is numeric.
+ You may check out a number of specific manuals dedicated to specific features
+ such as graphics in the website: 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://yihui.name/knitr/demos
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+Code Decoration
+\end_layout
+
+\begin_layout Standard
+The 
+\series bold
+highr
+\series default
+ package 
+\begin_inset CommandInset citation
+LatexCommand citep
+key "R-highr"
+
+\end_inset
+
+ is used to highlight R code, and the 
+\series bold
+formatR
+\series default
+ package 
+\begin_inset CommandInset citation
+LatexCommand citep
+key "R-formatR"
+
+\end_inset
+
+ is used to reformat R code (like 
+\family typewriter
+keep.source=FALSE
+\family default
+ in Sweave but will also try to retain comments).
+ For LaTeX output, the 
+\series bold
+framed
+\series default
+ package is used to decorate code chunks with a light gray background.
+ If this LaTeX package is not found in the system, a version will be copied
+ directly from 
+\series bold
+knitr
+\series default
+.
+ The prompt characters are removed by default because they mangle the R
+ source code in the output and make it difficult to copy R code.
+ The R output is masked in comments by default based on the same rationale.
+ It is easy to revert to the output with prompts (set option 
+\family typewriter
+prompt=TRUE
+\family default
+), and you will quickly realize the inconvenience to the readers if they
+ want to copy and run the code in the output document:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<stupid-prompts, prompt=TRUE, comment=NA, highlight=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+x=rnorm(5)
+\end_layout
+
+\begin_layout Plain Layout
+
+x
+\end_layout
+
+\begin_layout Plain Layout
+
+var(x)
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The example below shows the effect of 
+\family typewriter
+tidy=TRUE/FALSE
+\family default
+:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<tidy-no, eval=FALSE, tidy=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+## option tidy=FALSE
+\end_layout
+
+\begin_layout Plain Layout
+
+for(k in 1:10){j=cos(sin(k)*k^2)+3;print(j-5)}
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\begin_layout Plain Layout
+
+<<tidy-yes, eval=FALSE, tidy=TRUE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+## option tidy=TRUE
+\end_layout
+
+\begin_layout Plain Layout
+
+for(k in 1:10){j=cos(sin(k)*k^2)+3;print(j-5)}
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Note 
+\family typewriter
+=
+\family default
+ is replaced by 
+\family typewriter
+<-
+\family default
+ because 
+\family typewriter
+options('formatR.arrow')
+\family default
+ was set to be 
+\family typewriter
+TRUE
+\family default
+ in this document; see the documentation of 
+\emph on
+tidy.source()
+\emph default
+ in 
+\series bold
+formatR
+\series default
+ for details.
+\end_layout
+
+\begin_layout Standard
+Many highlighting themes can be used in 
+\series bold
+knitr
+\series default
+, which are borrowed from the 
+\series bold
+highlight
+\series default
+ package by 
+\begin_inset CommandInset href
+LatexCommand href
+name "Andre Simon"
+target "http://www.andre-simon.de/"
+
+\end_inset
+
+
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+not the R package mentioned before; for a preview of these themes, see 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://www.andre-simon.de/dokuwiki/doku.php?id=theme_examples
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+; it is also possible to use themes from 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://www.eclipsecolorthemes.org/
+\end_layout
+
+\end_inset
+
+ by providing a theme id to 
+\series bold
+knitr
+\series default
+
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+many thanks to 
+\begin_inset CommandInset href
+LatexCommand href
+name "Ramnath Vaidyanathan"
+target "https://github.com/ramnathv"
+
+\end_inset
+
+ for the work on themes
+\end_layout
+
+\end_inset
+
+.
+ See 
+\family typewriter
+?knit_theme
+\family default
+ for details.
+\end_layout
+
+\begin_layout Subsection
+Graphics
+\end_layout
+
+\begin_layout Standard
+Graphics is an important part of reports, and several enhancements have
+ been made in 
+\series bold
+knitr
+\series default
+.
+ For example, grid graphics may not need to be explicitly printed as long
+ as the same code can produce plots in R (in some cases, however, they have
+ to be printed, e.g.
+ in a loop, because you have to do so in an R terminal).
+\end_layout
+
+\begin_layout Subsubsection
+Graphical Devices
+\end_layout
+
+\begin_layout Standard
+Over a long time, a frequently requested feature for Sweave was the support
+ for other graphics devices, which has been implemented since R 2.13.0.
+ Instead of using logical options like 
+\family typewriter
+png
+\family default
+ or 
+\family typewriter
+jpeg
+\family default
+ (this list can go on and on), 
+\series bold
+knitr
+\series default
+ uses a single option 
+\family typewriter
+dev
+\family default
+ (like 
+\family typewriter
+grdevice
+\family default
+ in Sweave) which has support for more than 20 devices.
+ For instance, 
+\family typewriter
+dev='png'
+\family default
+ will use the 
+\emph on
+png()
+\emph default
+ device, and 
+\family typewriter
+dev='CairoJPEG'
+\family default
+ uses the 
+\emph on
+CairoJPEG()
+\emph default
+ device in the 
+\series bold
+Cairo
+\series default
+ package (it has to be installed first, of course).
+ If none of these devices is satisfactory, you can provide the name of a
+ customized device function, which must have been defined before it is called.
+\end_layout
+
+\begin_layout Subsubsection
+Plot Recording
+\end_layout
+
+\begin_layout Standard
+As mentioned before, all the plots in a code chunk are first recorded as
+ R objects and then 
+\begin_inset Quotes eld
+\end_inset
+
+replayed
+\begin_inset Quotes erd
+\end_inset
+
+ inside a graphical device to generate plot files.
+ The 
+\series bold
+evaluate
+\series default
+ package will record plots per 
+\emph on
+expression
+\emph default
+ basis, in other words, the source code is split into individual complete
+ expressions and 
+\series bold
+evaluate
+\series default
+ will examine possible plot changes in snapshots after each single expression
+ has been evaluated.
+ For example, the code below consists of three expressions, out of which
+ two are related to drawing plots, therefore 
+\series bold
+evaluate
+\series default
+ will produce two plots by default:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<low-level-plots, fig.keep='all', dev='tikz', fig.width=2.5, fig.height=2.5,
+ out.width='.3
+\backslash
+
+\backslash
+textwidth', cache=TRUE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+par(mar=c(3,3,.1,.1))
+\end_layout
+
+\begin_layout Plain Layout
+
+plot(1:10, ann=FALSE,las=1)
+\end_layout
+
+\begin_layout Plain Layout
+
+text(5,9,'mass $
+\backslash
+
+\backslash
+rightarrow$ energy
+\backslash
+n$E=mc^2$')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+This brings a significant difference with traditional tools in R for dynamic
+ report generation, since low-level plotting changes can also be recorded.
+ The option 
+\family typewriter
+fig.keep
+\family default
+ controls which plots to keep in the output; 
+\family typewriter
+fig.keep='all'
+\family default
+ will keep low-level changes as separate plots; by default (
+\family typewriter
+fig.keep='high'
+\family default
+), 
+\series bold
+knitr
+\series default
+ will merge low-level plot changes into the previous high-level plot, like
+ most graphics devices do.
+ This feature may be useful for teaching R graphics step by step.
+ Note, however, low-level plotting commands in a single expression (a typical
+ case is a loop) will not be recorded accumulatively, but high-level plotting
+ commands, regardless of where they are, will always be recorded.
+ For example, this chunk will only produce 2 plots instead of 21 plots because
+ there are 2 complete expressions:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<low-plot-loop, eval=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+plot(0,0,type='n',ann=FALSE)
+\end_layout
+
+\begin_layout Plain Layout
+
+for(i in seq(0, 2*pi,length=20)) points(cos(i),sin(i))
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+But this will produce 20 plots as expected:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<high-plot-loop, eval=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+for(i in seq(0, 2*pi,length=20)) {plot(cos(i),sin(i),xlim=c(-1,1),ylim=c(-1,1))}
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+As I showed in the beginning of this manual, it is straightforward to let
+ 
+\series bold
+knitr
+\series default
+ keep all the plots in a chunk and insert them into the output document,
+ so we no longer need the 
+\family typewriter
+cat('
+\backslash
+
+\backslash
+includegraphics{}')
+\family default
+ trick.
+\end_layout
+
+\begin_layout Standard
+We can discard all previous plots and keep the last one only by 
+\family typewriter
+fig.keep='last'
+\family default
+, or keep only the first plot by 
+\family typewriter
+fig.keep='first'
+\family default
+, or discard all plots by 
+\family typewriter
+fig.keep='none'
+\family default
+.
+\end_layout
+
+\begin_layout Subsubsection
+Plot Rearrangement
+\end_layout
+
+\begin_layout Standard
+The option 
+\family typewriter
+fig.show
+\family default
+ can decide whether to hold all plots while evaluating the code and 
+\begin_inset Quotes eld
+\end_inset
+
+flush
+\begin_inset Quotes erd
+\end_inset
+
+ all of them to the end of a chunk (
+\family typewriter
+fig.show='hold'
+\family default
+), or just insert them to the place where they were created (by default
+ 
+\family typewriter
+fig.show='asis'
+\family default
+).
+ Here is an example of 
+\family typewriter
+fig.show='asis'
+\family default
+:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<fig-hold, fig.show='asis', dev='pdf', fig.width=6, fig.height=4, out.width='.35
+\backslash
+
+\backslash
+linewidth'>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+contour(volcano)  # contour lines
+\end_layout
+
+\begin_layout Plain Layout
+
+filled.contour(volcano)  # fill contour plot with colors
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Beside 
+\family typewriter
+hold
+\family default
+ and 
+\family typewriter
+asis
+\family default
+, the option 
+\family typewriter
+fig.show
+\family default
+ can take a third value: 
+\family typewriter
+animate
+\family default
+, which makes it possible to insert animations into the output document.
+ In LaTeX, the package 
+\series bold
+animate
+\series default
+ is used to put together image frames as an animation.
+ For animations to work, there must be more than one plot produced in a
+ chunk.
+ The option 
+\family typewriter
+interval
+\family default
+ controls the time interval between animation frames; by default it is 1
+ second.
+ Note you have to add 
+\family typewriter
+
+\backslash
+usepackage{animate}
+\family default
+ in the LaTeX preamble, because 
+\series bold
+knitr
+\series default
+ will not add it automatically.
+ Animations in the PDF output can only be viewed in Adobe Reader.
+\end_layout
+
+\begin_layout Standard
+As a simple demonstration, here is a 
+\begin_inset CommandInset href
+LatexCommand href
+name "Mandelbrot animation"
+target "http://en.wikipedia.org/wiki/Mandelbrot_set"
+
+\end_inset
+
+ taken from the 
+\series bold
+animation
+\series default
+ package 
+\begin_inset CommandInset citation
+LatexCommand citep
+key "R-animation"
+
+\end_inset
+
+; note the PNG device is used because PDF files are too large.
+ You should be able to see the animation immediately with Acrobat Reader
+ since it was set to play automatically:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<animate-demo, fig.show='animate', dev='png', out.width='.45
+\backslash
+
+\backslash
+linewidth', interval=.5, aniopts='controls,loop,autoplay',  cache=TRUE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(animation)
+\end_layout
+
+\begin_layout Plain Layout
+
+demo('Mandelbrot', echo = FALSE, package = 'animation')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Subsubsection
+Plot Size
+\end_layout
+
+\begin_layout Standard
+The 
+\family typewriter
+fig.width
+\family default
+ and 
+\family typewriter
+fig.height
+\family default
+ options specify the size of plots in the graphics device, and the real
+ size in the output document can be different (see 
+\family typewriter
+out.width
+\family default
+ and 
+\family typewriter
+out.height
+\family default
+).
+ When there are multiple plots per chunk, it is possible to arrange more
+ than one plot per line in LaTeX -- just specify 
+\family typewriter
+out.width
+\family default
+ to be less than half of the current line width, e.g.
+ 
+\family typewriter
+out.width='.49
+\backslash
+
+\backslash
+linewidth'
+\family default
+.
+\end_layout
+
+\begin_layout Subsubsection
+The tikz Device
+\end_layout
+
+\begin_layout Standard
+Beside PDF, PNG and other traditional R graphical devices, 
+\series bold
+knitr
+\series default
+ has special support to tikz graphics via the 
+\series bold
+tikzDevice
+\series default
+ package 
+\begin_inset CommandInset citation
+LatexCommand citep
+key "R-tikzDevice"
+
+\end_inset
+
+, which is similar to 
+\series bold
+pgfSweave
+\series default
+.
+ If we set the chunk option 
+\family typewriter
+dev='tikz'
+\family default
+, the 
+\emph on
+tikz()
+\emph default
+ device in 
+\series bold
+tikzDevice
+\series default
+ will be used to save plots.
+ Options 
+\family typewriter
+sanitize
+\family default
+ and 
+\family typewriter
+external
+\family default
+ are related to the tikz device: see the documentation of 
+\emph on
+tikz()
+\emph default
+ for details.
+ Note 
+\family typewriter
+external=TRUE
+\family default
+ in 
+\series bold
+knitr
+\series default
+ has a different meaning with 
+\series bold
+pgfSweave
+\series default
+ -- it means 
+\family typewriter
+standAlone=TRUE
+\family default
+ in 
+\emph on
+tikz()
+\emph default
+, and the tikz graphics output will be compiled to PDF 
+\emph on
+immediately
+\emph default
+ after it is created, so the 
+\begin_inset Quotes eld
+\end_inset
+
+externalization
+\begin_inset Quotes erd
+\end_inset
+
+ does not depend on the 
+\series bold
+tikz
+\series default
+ package; to maintain consistency in (font) styles, 
+\series bold
+knitr
+\series default
+ will read the preamble of the input document and use it in the tikz device.
+ At the moment, I'm not sure if this is a faithful way to externalize tikz
+ graphics, but I have not seen any problems so far.
+ The assumption to make, however, is that you declare all the styles in
+ the preamble; 
+\series bold
+knitr
+\series default
+ is agnostic of 
+\emph on
+local
+\emph default
+ style changes in the body of the document.
+\end_layout
+
+\begin_layout Standard
+Below is an example taken from StackOverflow
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://stackoverflow.com/q/8190087/559676
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+; we usually have to write R code like this to obtain a math expression
+ 
+\begin_inset Formula $\mathrm{d}\mathbf{x}_{t}=\alpha[(\theta-\mathbf{x}_{t})\mathrm{d}t+4]\mathrm{d}B_{t}$
+\end_inset
+
+ in R graphics:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<math-expr-R, eval=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+qplot(1:10, 1:10) + opts(title = substitute(paste(d * 
+\end_layout
+
+\begin_layout Plain Layout
+
+    bolditalic(x)[italic(t)] == alpha * (theta - bolditalic(x)[italic(t)])
+ * 
+\end_layout
+
+\begin_layout Plain Layout
+
+    d * italic(t) + lambda * d * italic(B)[italic(t)]), list(lambda = 4)))
+ 
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+With the tikz device, it is both straightforward and more beautiful: 
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<math-expr-tikz, dev='tikz', fig.width=5, fig.height=3, out.width='.55
+\backslash
+
+\backslash
+linewidth', cache=TRUE, message=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(ggplot2)
+\end_layout
+
+\begin_layout Plain Layout
+
+qplot(1:10, 1:10) + 
+\end_layout
+
+\begin_layout Plain Layout
+
+labs(title = sprintf('$
+\backslash
+
+\backslash
+mathrm{d}
+\backslash
+
+\backslash
+mathbf{x}_{t} = 
+\backslash
+
+\backslash
+alpha[(
+\backslash
+
+\backslash
+theta - 
+\backslash
+
+\backslash
+mathbf{x}_{t})
+\backslash
+
+\backslash
+mathrm{d}t + %d]
+\backslash
+
+\backslash
+mathrm{d}B_{t}$', 4))
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The advantage of tikz graphics is the consistency of styles
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+Users are encouraged to read the vignette of 
+\series bold
+tikzDevice
+\series default
+, which is the most beautiful vignette I have ever seen in R packages: 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://cran.r-project.org/web/packages/tikzDevice/vignettes/tikzDevice.pdf
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+, and one disadvantage is that LaTeX may not be able to handle too large
+ tikz files (it can run out of memory).
+ For example, an R plot with tens of thousands of graphical elements may
+ fail to compile in LaTeX if we use the tikz device.
+ In such cases, we can switch to the PDF or PNG device, or reconsider our
+ decision on the type of plots, e.g., a scatter plot with millions of points
+ is usually difficult to read, and a contour plot or a hexagon plot showing
+ the 2D density can be a better alternative (they are smaller in size).
+\end_layout
+
+\begin_layout Standard
+The graphics manual contains more detailed information and you can check
+ it out in the 
+\begin_inset CommandInset href
+LatexCommand href
+name "website"
+target "http://yihui.name/knitr/demo/graphics/"
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Subsection
+Cache
+\end_layout
+
+\begin_layout Standard
+The feature of cache is not a new idea -- both 
+\series bold
+cacheSweave
+\series default
+ and 
+\series bold
+weaver
+\series default
+ have implemented it based on Sweave, with the former using 
+\series bold
+filehash
+\series default
+ and the latter using 
+\family sans
+.RData
+\family default
+ images; 
+\series bold
+cacheSweave
+\series default
+ also supports lazy-loading of objects based on 
+\series bold
+filehash
+\series default
+.
+ The 
+\series bold
+knitr
+\series default
+ package directly uses internal base R functions to save (
+\emph on
+tools:::makeLazyLoadDB()
+\emph default
+) and lazy-load objects (
+\emph on
+lazyLoad()
+\emph default
+).
+ These functions are either undocumented or marked as internal, but as far
+ as I understand, they are the tools to implement lazy-loading for packages.
+ The 
+\series bold
+cacheSweave
+\series default
+ vignette has clearly explained lazy-loading, and roughly speaking, lazy-loading
+ means an object will not be really loaded into memory unless it is really
+ used somewhere.
+ This is very useful for cache; sometimes we read a large object and cache
+ it, then take a subset for analysis and this subset is also cached; in
+ the future, the initial large object will not be loaded into R if our computati
+on is only based on the object of its subset.
+\end_layout
+
+\begin_layout Standard
+The paths of cache files are determined by the chunk option 
+\family typewriter
+cache.path
+\family default
+; by default all cache files are created under a directory 
+\family sans
+cache
+\family default
+ relative to the current working directory, and if the option value contains
+ a directory (e.g.
+ 
+\family typewriter
+cache.path='cache/abc-'
+\family default
+), cache files will be stored under that directory (automatically created
+ if it does not exist).
+ The cache is invalidated and purged on any changes to the code chunk, including
+ both the R code and chunk options
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+One exception is the 
+\family typewriter
+include
+\family default
+ option, which is not cached because 
+\family typewriter
+include=TRUE/FALSE
+\family default
+ does not affect code evaluation; meanwhile, the value 
+\family typewriter
+getOption('width')
+\family default
+ is also cached, so if you change this option, the cache will also be invalidate
+d (this option affects the width of text output)
+\end_layout
+
+\end_inset
+
+; this means previous cache files of this chunk are removed (filenames are
+ identified by the chunk label).
+ Unlike 
+\series bold
+pgfSweave
+\series default
+, cache files will never accumulate since old cache files will always be
+ removed in 
+\series bold
+knitr
+\series default
+.
+ Unlike 
+\series bold
+weaver
+\series default
+ or 
+\series bold
+cacheSweave
+\series default
+, 
+\series bold
+knitr
+\series default
+ will try to preserve these side-effects:
+\end_layout
+
+\begin_layout Enumerate
+printed results: meaning that any output of a code chunk will be loaded
+ into the output document for a cached chunk, although it is not really
+ evaluated.
+ The reason is 
+\series bold
+knitr
+\series default
+ also cache the output of a chunk as a character string.
+ Note this means graphics output is also cached since it is part of the
+ output.
+ It has been a pain for me for a long time to have to lose output to gain
+ cache;
+\end_layout
+
+\begin_layout Enumerate
+loaded packages: after the evaluation of each cached chunk, the list of
+ packages used in the current R session is written to a file under the cache
+ path named 
+\family sans
+__packages
+\family default
+; next time if a cached chunk needs to be rebuilt, these packages will be
+ loaded first.
+ The reasons for caching package names are, it can be slow to load some
+ packages, and a package might be loaded in a previous cached chunk which
+ is not available to the next cached chunk when only the latter needs to
+ be rebuilt.
+ Note this only applies to cached chunks, and for uncached chunks, you must
+ always use 
+\emph on
+library()
+\emph default
+ to load packages explicitly;
+\end_layout
+
+\begin_layout Standard
+Although 
+\series bold
+knitr
+\series default
+ tries to keep some side-effects, there are still other types of side-effects
+ like setting 
+\emph on
+par()
+\emph default
+ or 
+\emph on
+options()
+\emph default
+ which are not cached.
+ Users should be aware of these special cases, and make sure to clearly
+ separate the code which is not meant to be cached to other chunks which
+ are not cached, e.g., set all global options in the first chunk of a document
+ and do not cache that chunk.
+\end_layout
+
+\begin_layout Standard
+Sometimes a cached chunk may need to use objects from other cached chunks,
+ which can bring a serious problem -- if objects in previous chunks have
+ changed, this chunk will not be aware of the changes and will still use
+ old cached results, unless there is a way to detect such changes from other
+ chunks.
+ There is an option called 
+\family typewriter
+dependson
+\family default
+ in 
+\series bold
+cacheSweave
+\series default
+ which does this job.
+ We can explicitly specify which other chunks this chunk depends on by setting
+ an option like 
+\family typewriter
+dependson='chunkA;chunkB'
+\family default
+ or equivalently 
+\family typewriter
+dependson=c('chunkA', 'chunkB')
+\family default
+.
+ Each time the cache of a chunk is rebuilt, all other chunks which depend
+ on this chunk will lose cache, hence their cache will be rebuilt as well.
+\end_layout
+
+\begin_layout Standard
+Another way to specify the dependencies among chunks is to use the chunk
+ option 
+\family typewriter
+autodep
+\family default
+ and the function 
+\emph on
+dep_auto()
+\emph default
+.
+ This is an experimental feature borrowed from 
+\series bold
+weaver
+\series default
+ which frees us from setting chunk dependencies manually.
+ The basic idea is, if a latter chunk uses any objects created from a previous
+ chunk, the latter chunk is said to depend on the previous one.
+ The function 
+\emph on
+findGlobals()
+\emph default
+ in the 
+\series bold
+codetools
+\series default
+ package is used to find out all global objects in a chunk, and according
+ to its documentation, the result is an approximation.
+ Global objects roughly mean the ones which are not created locally, e.g.
+ in the expression 
+\family typewriter
+function() {y <- x}
+\family default
+, 
+\family typewriter
+x
+\family default
+ should be a global object, whereas 
+\family typewriter
+y
+\family default
+ is local.
+ Meanwhile, we also need to save the list of objects created in each cached
+ chunk, so that we can compare them to the global objects in latter chunks.
+ For example, if chunk A created an object 
+\family typewriter
+x
+\family default
+ and chunk B uses this object, chunk B must depend on A, i.e.
+ whenever A changes, B must also be updated.
+ When 
+\family typewriter
+autodep=TRUE
+\family default
+, 
+\series bold
+knitr
+\series default
+ will write out the names of objects created in a cached chunk as well as
+ those global objects in two files named 
+\family sans
+__objects
+\family default
+ and 
+\family sans
+__globals
+\family default
+ respectively; later we can use the function 
+\emph on
+dep_auto()
+\emph default
+ to analyze the object names to figure out the dependencies automatically.
+ See 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://yihui.name/knitr/demo/cache/
+\end_layout
+
+\end_inset
+
+ for examples.
+\end_layout
+
+\begin_layout Standard
+Yet another way to specify dependencies is 
+\emph on
+dep_prev()
+\emph default
+: this is a conservative approach which sets the dependencies so that a
+ cached chunk will depend on all its previous chunks, i.e.
+ whenever a previous chunk is updated, all later chunks will be updated
+ accordingly.
+\end_layout
+
+\begin_layout Subsection
+Code Externalization
+\end_layout
+
+\begin_layout Standard
+It can be more convenient to write R code in a separate file, rather than
+ mixing it into a LaTeX document; for example, we can run R code successively
+ in a pure R script from one chunk to the other without jumping through
+ other texts.
+ Since I prefer using LyX to write reports, Sweave is even more inconvenient
+ because I have to recompile the whole document each time, even if I only
+ want to know the results of a single chunk.
+ Therefore 
+\series bold
+knitr
+\series default
+ introduced the feature of code externalization to a separate R script.
+ Currently the setting is like this: the R script also uses chunk labels
+ (marked in the form 
+\family typewriter
+## ---- chunk-label
+\family default
+ by default); if the code chunk in the input document is empty, 
+\series bold
+knitr
+\series default
+ will match its label with the label in the R script to input external R
+ code.
+ For example, suppose this is a code chunk labelled as 
+\family typewriter
+Q1
+\family default
+ in an R script named 
+\family sans
+homework1-xie.R
+\family default
+ which is under the same directory as the Rnw document:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<ext-r-code, eval=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+## ---- Q1 ---------------------
+\end_layout
+
+\begin_layout Plain Layout
+
+gcd = function(m, n) {
+\end_layout
+
+\begin_layout Plain Layout
+
+    while ((r <- m %% n) != 0) {
+\end_layout
+
+\begin_layout Plain Layout
+
+       m = n; n = r
+\end_layout
+
+\begin_layout Plain Layout
+
+    }
+\end_layout
+
+\begin_layout Plain Layout
+
+    n
+\end_layout
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+In the Rnw document, we can first read the script using the function 
+\emph on
+read_chunk()
+\emph default
+:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<read-chunk, eval=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+read_chunk('homework1-xie.R')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+This is usually done in an early chunk, and we can use the chunk 
+\family typewriter
+Q1
+\family default
+ later in the Rnw document:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<use-ext-chunk, echo=FALSE, comment=NA>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+cat('<<Q1, echo=TRUE, tidy=TRUE>>=','@',sep='
+\backslash
+n')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Different documents can read the same R script, so the R code can be reusable
+ across different input documents.
+\end_layout
+
+\begin_layout Subsection
+Evaluation of Chunk Options
+\begin_inset CommandInset label
+LatexCommand label
+name "sub:conditional"
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+By default 
+\series bold
+knitr
+\series default
+ uses a new syntax to parse chunk options: it treats them as function arguments
+ instead of a text string to be split to obtain option values.
+ This gives the user much more power than the old syntax; we can pass arbitrary
+ R objects to chunk options besides simple ones like 
+\family typewriter
+TRUE
+\family default
+/
+\family typewriter
+FALSE
+\family default
+, numbers and character strings.
+ The page 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://yihui.name/knitr/demo/sweave/
+\end_layout
+
+\end_inset
+
+ has given two examples to show the advantages of the new syntax.
+ Here we show yet another useful application.
+\end_layout
+
+\begin_layout Standard
+Before 
+\series bold
+knitr
+\series default
+ 0.3, there was a feature named 
+\begin_inset Quotes eld
+\end_inset
+
+conditional evaluation
+\begin_inset Quotes erd
+\end_inset
+
+
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+request from 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://plus.google.com/u/0/116405544829727492615/posts/43WrRUffjzK
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+.
+ The idea is, instead of setting chunk options 
+\family typewriter
+eval
+\family default
+ and 
+\family typewriter
+echo
+\family default
+ to be 
+\family typewriter
+TRUE
+\family default
+ or 
+\family typewriter
+FALSE
+\family default
+ (constants), their values can be controlled by global variables in the
+ current R session.
+ This enables 
+\series bold
+knitr
+\series default
+ to conditionally evaluate code chunks according to variables.
+ For example, here we assign 
+\family typewriter
+TRUE
+\family default
+ to a variable 
+\family typewriter
+dothis
+\family default
+:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<cond-variable>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+dothis=TRUE
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+In the next chunk, we set chunk options 
+\family typewriter
+eval=dothis
+\family default
+ and 
+\family typewriter
+echo=!dothis
+\family default
+, both are valid R expressions since the variable 
+\family typewriter
+dothis
+\family default
+ exists.
+ As we can see, the source code is hidden, but it was indeed evaluated:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<cond-out1, eval=dothis, echo=!dothis>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+print('you cannot see my source because !dothis is FALSE')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Then we set 
+\family typewriter
+eval=dothis
+\family default
+ and 
+\family typewriter
+echo=dothis
+\family default
+ for another chunk:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<cond-out2,eval=dothis,echo=dothis>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+dothis
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+If we change the value of 
+\family typewriter
+dothis
+\family default
+ to 
+\family typewriter
+FALSE
+\family default
+, neither of the above chunks will be evaluated any more.
+ Therefore we can control many chunks with a single variable, and present
+ results selectively.
+\end_layout
+
+\begin_layout Standard
+This old feature requires 
+\series bold
+knitr
+\series default
+ to treat 
+\family typewriter
+eval
+\family default
+ and 
+\family typewriter
+echo
+\family default
+ specially, and we can easily see that it is no longer necessary with the
+ new syntax: 
+\family typewriter
+eval=dothis
+\family default
+ will tell R to find the variable 
+\family typewriter
+dothis
+\family default
+ automatically just like we call a function 
+\family typewriter
+foobar(eval = dothis)
+\family default
+.
+ What is more, all options will be evaluated as R expressions unless they
+ are already constants which do not need to be evaluated, so this old feature
+ has been generalized to all other options naturally.
+\end_layout
+
+\begin_layout Subsection
+Customization
+\end_layout
+
+\begin_layout Standard
+The 
+\series bold
+knitr
+\series default
+ package is ready for customization.
+ Both the patterns and hooks can be customized; see the package website
+ for details.
+ Here I show an example on how to save 
+\series bold
+rgl
+\series default
+ plots 
+\begin_inset CommandInset citation
+LatexCommand citep
+key "R-rgl"
+
+\end_inset
+
+ using a customized hook function.
+ First we define a hook named 
+\family typewriter
+rgl
+\family default
+ using the function 
+\emph on
+hook_rgl()
+\emph default
+ in 
+\series bold
+rgl
+\series default
+:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<rgl-demo>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(rgl)
+\end_layout
+
+\begin_layout Plain Layout
+
+knit_hooks$set(rgl = hook_rgl)
+\end_layout
+
+\begin_layout Plain Layout
+
+head(hook_rgl)  # the hook function is defined as this
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Then we only have to set the chunk option 
+\family typewriter
+rgl=TRUE
+\family default
+:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<fancy-rgl, rgl=TRUE, dev='png', fig.width=5, fig.height=5, out.width='2in',
+ message=FALSE, warning=FALSE, cache=TRUE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(rgl)
+\end_layout
+
+\begin_layout Plain Layout
+
+demo('bivar', package='rgl', echo=FALSE) 
+\end_layout
+
+\begin_layout Plain Layout
+
+par3d(zoom=.7)
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Due to the flexibility of output hooks, 
+\series bold
+knitr
+\series default
+ supports several different output formats.
+ The implementation is fairly easy, e.g., for LaTeX we put R output in 
+\family typewriter
+verbatim
+\family default
+ environments, and in HTML, it is only a matter of putting output in 
+\family typewriter
+div
+\family default
+ layers.
+ These are simply character string operations.
+ Many demos in 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://yihui.name/knitr/demos
+\end_layout
+
+\end_inset
+
+ show this idea clearly.
+ This manual did not cover all the features of 
+\series bold
+knitr
+\series default
+, and users are encouraged to thumb through the website to know more possible
+ features.
+\end_layout
+
+\begin_layout Section
+Editors
+\end_layout
+
+\begin_layout Standard
+You can use any text editors to write the source documents, but some have
+ built-in support for 
+\series bold
+knitr
+\series default
+.
+ Both RStudio (
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://www.rstudio.org
+\end_layout
+
+\end_inset
+
+) and LyX (
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://www.lyx.org
+\end_layout
+
+\end_inset
+
+) have full support for 
+\series bold
+knitr
+\series default
+, and you can compile the document to PDF with just one click.
+ See 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://yihui.name/knitr/demo/rstudio/
+\end_layout
+
+\end_inset
+
+ and 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://yihui.name/knitr/demo/lyx/
+\end_layout
+
+\end_inset
+
+ respectively.
+ It is also possible to support other editors like 
+\begin_inset CommandInset href
+LatexCommand href
+name "Eclipse"
+target "http://yihui.name/knitr/demo/eclipse/"
+
+\end_inset
+
+, 
+\begin_inset CommandInset href
+LatexCommand href
+name "Texmaker and WinEdt"
+target "http://yihui.name/knitr/demo/editors/"
+
+\end_inset
+
+; see the demo list in the website for configuration instructions.
+\end_layout
+
+\begin_layout Section*
+About This Document
+\end_layout
+
+\begin_layout Standard
+This manual was written in LyX and compiled with 
+\series bold
+knitr
+\series default
+ (version 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+Sexpr{packageVersion('knitr')}
+\end_layout
+
+\end_inset
+
+).
+ The LyX source and the Rnw document exported from LyX can be found under
+ these directories:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<source-location, eval=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+system.file('examples', 'knitr-manual.lyx', package='knitr')  # lyx source
+\end_layout
+
+\begin_layout Plain Layout
+
+system.file('examples', 'knitr-manual.Rnw', package='knitr')  # Rnw source
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+You can use the function 
+\emph on
+knit()
+\emph default
+ to knit the Rnw document (remember to put the two 
+\family sans
+.bib
+\family default
+ files under the same directory), and you need to make sure all the R packages
+ used in this document are installed:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<required-packages, eval=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+install.packages(c('animation', 'rgl', 'tikzDevice', 'ggplot2'))
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Feedback and comments on this manual and the package are always welcome.
+ Bug reports and feature requests can be sent to 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://github.com/yihui/knitr/issues
+\end_layout
+
+\end_inset
+
+, and questions can be delivered to the 
+\begin_inset CommandInset href
+LatexCommand href
+name "mailing list"
+target "knitr@googlegroups.com"
+type "mailto:"
+
+\end_inset
+
+ 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://groups.google.com/group/knitr
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+% when knitr is updated, this chunk will be updated; why?
+\end_layout
+
+\begin_layout Plain Layout
+
+<<auto-bib, version=packageVersion('knitr'), echo=FALSE, cache=TRUE, message=FAL
+SE, warning=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+# write all packages in the current session to a bib file
+\end_layout
+
+\begin_layout Plain Layout
+
+write_bib(c(.packages(), 'evaluate', 'formatR', 'highr'), file = 'knitr-packages.b
+ib')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset CommandInset bibtex
+LatexCommand bibtex
+bibfiles "knitr-manual,knitr-packages"
+options "jss"
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-themes.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-themes.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-themes.Rnw	(revision 2476)
@@ -0,0 +1,126 @@
+%% LyX 2.2.1 created this file.  For more info, see http://www.lyx.org/.
+%% Do not edit unless you really know what you are doing.
+\documentclass[nohyper,justified]{tufte-handout}
+\usepackage[T1]{fontenc}
+\usepackage{url}
+
+\makeatletter
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
+
+\title{Customizing Syntax Highlighting Themes}
+\author{Yihui Xie \& Ramnath Vaidyanathan}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
+\renewcommand{\textfraction}{0.05}
+\renewcommand{\topfraction}{0.8}
+\renewcommand{\bottomfraction}{0.8}
+\renewcommand{\floatpagefraction}{0.75}
+
+\usepackage[breaklinks=true,pdfstartview=FitH]{hyperref}
+
+\makeatother
+
+\begin{document}
+<<setup, include=FALSE, cache=FALSE>>=
+library(knitr)
+opts_chunk$set(fig.path='figure/theme-', cache.path='cache/theme-', cache=TRUE)
+options(formatR.arrow=TRUE,width=78)
+knit_hooks$set(par=function(before, options, envir){if (before) par(mar=c(4,4,.1,.1),cex.lab=.95,cex.axis=.9,mgp=c(2,.7,0),tcl=-.3)})
+@
+<<solarized-theme, cache=FALSE, echo=FALSE>>=
+thm = knit_theme$get("solarized-dark")
+knit_theme$set(thm)
+@
+\maketitle
+\begin{abstract}
+This manual\footnote{source code at \url{https://github.com/yihui/knitr/blob/master/inst/examples/knitr-themes.Rnw}}
+shows how to customize syntax highlighting of source code using themes.
+It walks the user through the basics of syntax highlighting in \textbf{knitr},
+and the use of built-in themes.
+\end{abstract}
+The \textbf{knitr} package uses the \textbf{highr} package to highlight
+source code in a document. In short, the \textbf{highr} package parses
+the source code, tokenizes it into grammar symbols, and formats their
+appearance using CSS or \LaTeX{} commands. 
+
+\section{Usage}
+
+We can use the object \texttt{knit\_theme} to set / get a theme. See
+\texttt{?knit\_theme} for the usage. For example, we set the theme
+of this document to be \texttt{solarized-dark}:
+
+<<solarized-theme>>=
+@
+
+\section{Built-in Themes}
+
+\begin{margintable}
+<<eclipse-css, comment=NA, echo=FALSE>>=
+cat(c(readLines('../themes/edit-eclipse.css', n=30),'...'),sep='\n')
+@
+\end{margintable}
+
+The listing on the right shows the CSS file for one of the themes,
+\texttt{edit-eclipse}, which was adapted from Andre Simon's excellent
+highlighter\footnote{\url{http://www.andre-simon.de/}}. The \textbf{knitr}
+package comes pre-loaded with a number of themes based on this highlighter.
+Here is list of all available code themes\footnote{For a preview of all themes, see \url{https://gist.github.com/yihui/3422133}}:
+
+<<all-themes>>=
+knit_theme$get()
+@
+
+Shown below is how the \texttt{solarized-dark} theme looks like when
+applied to R code:
+
+<<demo-code, eval = FALSE>>=
+library(XML)
+library(plyr)
+library(reshape)
+# SCRAPE THE DATA FROM WEB 
+
+base_url = "http://www.mlsoccer.com/stats/%s/reg"
+years    = 1996:2010
+options(width = 40)
+
+#' Function to save data for each year
+save_data = function(y){
+  url  = sprintf(base_url, y)
+  tab  = readHTMLTable(url, header = FALSE, stringsAsFactors = FALSE);
+  pos  = max(grep("United", tab));
+  tab  = tab[[pos]];
+  tab$year   = y;
+  return(tab)            
+}
+	
+team.list  = llply(years, save_data);
+mls        = merge_recurse(team.list);
+@
+
+\section{Misc}
+
+One thing to consider is the foreground color of plots when we use
+dark themes; we need to make it lighter, otherwise the graphical elements
+will be difficult to be read. We can access the foreground color of
+the theme in the list returned by \texttt{knit\_theme\$get(theme)},
+e.g., for this document:
+
+<<fg-color>>=
+## the object thm is from the first chunk
+thm$foreground  # foreground color
+thm$background  # background color
+@
+
+When we make plots, we may use these colors, e.g.
+
+<<plot-color, fig.width=6, fig.height=4, out.width='.8\\linewidth', par=TRUE>>=
+## can design a chunk hook to set foreground color automatically
+fgcolor=thm$foreground
+par(fg=fgcolor, col.axis=fgcolor, col.lab=fgcolor)
+plot(rnorm(100),pch=19)
+@
+
+Of course, we do not need to worry about these colors when we use
+a white background for the plots.
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-spin.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-spin.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-spin.Rmd	(revision 2476)
@@ -0,0 +1,50 @@
+This is a special R script which can be used to generate a report. You can
+write normal text in roxygen comments.
+
+First we set up some options (you do not have to do this):
+
+```{r setup, include=FALSE}
+library(knitr)
+opts_chunk$set(fig.path = 'figure/silk-')
+```
+
+The report begins here.
+
+```{r test-a, cache=FALSE}
+# boring examples as usual
+set.seed(123)
+x = rnorm(5)
+mean(x)
+```
+
+You can use the special syntax {{code}} to embed inline expressions, e.g.
+`r mean(x) + 2`
+is the mean of x plus 2.
+The code itself may contain braces, but these are not checked.  Thus,
+perfectly valid (though very strange) R code such as `{{2 + 3}} - {{4 - 5}}`
+can lead to errors because `2 + 3}} - {{4 - 5` will be treated as inline code.
+
+Now we continue writing the report. We can draw plots as well.
+
+```{r test-b, fig.width=5, fig.height=5}
+par(mar = c(4, 4, .1, .1)); plot(x)
+```
+
+Actually you do not have to write chunk options, in which case knitr will use
+default options. For example, the code below has no options attached:
+
+```{r }
+var(x)
+quantile(x)
+```
+
+And you can also write two chunks successively like this:
+
+```{r test-chisq5}
+sum(x^2) # chi-square distribution with df 5
+```{r test-chisq4}
+sum((x - mean(x))^2) # df is 4 now
+```
+
+Done. Call spin('knitr-spin.R') to make silk from sow's ear now and knit a
+lovely purse.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.Rnw	(revision 2476)
@@ -0,0 +1,53 @@
+%% LyX 2.2.1 created this file.  For more info, see http://www.lyx.org/.
+%% Do not edit unless you really know what you are doing.
+\documentclass{article}
+\usepackage[sc]{mathpazo}
+\usepackage[T1]{fontenc}
+\usepackage{geometry}
+\geometry{verbose,tmargin=2.5cm,bmargin=2.5cm,lmargin=2.5cm,rmargin=2.5cm}
+\setcounter{secnumdepth}{2}
+\setcounter{tocdepth}{2}
+\usepackage{url}
+\usepackage[unicode=true,pdfusetitle,
+ bookmarks=true,bookmarksnumbered=true,bookmarksopen=true,bookmarksopenlevel=2,
+ breaklinks=false,pdfborder={0 0 1},backref=false,colorlinks=false]
+ {hyperref}
+\hypersetup{
+ pdfstartview={XYZ null null 1}}
+\usepackage{breakurl}
+\begin{document}
+<<setup, include=FALSE, cache=FALSE>>=
+library(knitr)
+# set global chunk options
+opts_chunk$set(fig.path='figure/minimal-', fig.align='center', fig.show='hold')
+options(formatR.arrow=TRUE,width=90)
+@
+
+\title{A Minimal Demo of knitr}
+
+\author{Yihui Xie}
+
+\maketitle
+You can test if \textbf{knitr} works with this minimal demo. OK, let's
+get started with some boring random numbers:
+
+<<boring-random>>=
+set.seed(1121)
+(x=rnorm(20))
+mean(x);var(x)
+@
+
+The first element of \texttt{x} is \Sexpr{x[1]}. Boring boxplots
+and histograms recorded by the PDF device:
+
+<<boring-plots, fig.width=4, fig.height=4, out.width='.4\\linewidth'>>=
+## two plots side by side (option fig.show='hold')
+par(mar=c(4,4,.1,.1),cex.lab=.95,cex.axis=.9,mgp=c(2,.7,0),tcl=-.3,las=1)
+boxplot(x)
+hist(x,main='')
+@
+
+Do the above chunks work? You should be able to compile the \TeX{}
+document and get a PDF file like this one: \url{https://github.com/yihui/knitr/releases/download/doc/knitr-minimal.pdf}.
+The Rnw source of this document is at \url{https://github.com/yihui/knitr/blob/master/inst/examples/knitr-minimal.Rnw}.
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-twocolumn.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-twocolumn.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-twocolumn.Rnw	(revision 2476)
@@ -0,0 +1,65 @@
+%% LyX 2.2.1 created this file.  For more info, see http://www.lyx.org/.
+%% Do not edit unless you really know what you are doing.
+\documentclass[twocolumn]{article}
+\usepackage[sc]{mathpazo}
+\usepackage[T1]{fontenc}
+\usepackage{geometry}
+\geometry{verbose,tmargin=3cm,bmargin=3cm,lmargin=3cm,rmargin=3cm}
+\setcounter{secnumdepth}{2}
+\setcounter{tocdepth}{2}
+\setlength{\parskip}{\bigskipamount}
+\setlength{\parindent}{0pt}
+\usepackage{url}
+\usepackage[unicode=true,pdfusetitle,
+ bookmarks=true,bookmarksnumbered=true,bookmarksopen=true,bookmarksopenlevel=2,
+ breaklinks=false,pdfborder={0 0 1},backref=false,colorlinks=false]
+ {hyperref}
+\hypersetup{
+ pdfstartview={XYZ null null 1}}
+\usepackage{breakurl}
+
+\makeatletter
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
+\renewcommand{\textfraction}{0.05}
+\renewcommand{\topfraction}{0.8}
+\renewcommand{\bottomfraction}{0.8}
+\renewcommand{\floatpagefraction}{0.75}
+
+\makeatother
+
+\begin{document}
+<<setup, include=FALSE, cache=FALSE>>=
+library(knitr)
+opts_chunk$set(fig.path='figure/twocolumn-', fig.align='center', fig.show='hold')
+render_listings()
+@
+
+\title{Using knitr in A Two-column Document}
+
+\author{Yihui Xie}
+
+\maketitle
+We can use the \texttt{figure{*}} environment in \LaTeX{} so that
+figures can span over two columns. Because the output hooks use the
+\textbf{framed} package which does not work well with the \texttt{figure{*}}
+environment, we can either modify the output hooks or use other packages
+like \textbf{listings}. For example,
+
+<<chunk-hook, echo=2, tidy=TRUE, tidy.opts=list(width.cutoff=30)>>=
+<<setup>>
+@
+
+\begin{figure*}
+<<boring-plots, fig.width=5, fig.height=5, out.width='.45\\linewidth'>>=
+x=rnorm(100)
+par(mar=c(4,4,.1,.1))
+boxplot(x)
+hist(x,main='')
+@
+
+\caption{Two plots spanning over two columns.}
+\end{figure*}
+
+The output PDF file will be like: \url{https://github.com/yihui/knitr/releases/download/doc/knitr-twocolumn.pdf}.
+The Rnw source of this document is at \url{https://github.com/yihui/knitr/blob/master/inst/examples/knitr-twocolumn.Rnw}.
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-themes.lyx
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-themes.lyx	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-themes.lyx	(revision 2476)
@@ -0,0 +1,610 @@
+#LyX 2.1 created this file. For more info see http://www.lyx.org/
+\lyxformat 474
+\begin_document
+\begin_header
+\textclass tufte-handout
+\begin_preamble
+\renewcommand{\textfraction}{0.05}
+\renewcommand{\topfraction}{0.8}
+\renewcommand{\bottomfraction}{0.8}
+\renewcommand{\floatpagefraction}{0.75}
+
+\usepackage[breaklinks=true,pdfstartview=FitH]{hyperref}
+\end_preamble
+\options justified
+\use_default_options true
+\begin_modules
+knitr
+\end_modules
+\maintain_unincluded_children false
+\language english
+\language_package none
+\inputencoding default
+\fontencoding global
+\font_roman default
+\font_sans default
+\font_typewriter default
+\font_math auto
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100
+\font_tt_scale 88
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\pdf_author "Ramnath Vaidyanathan"
+\pdf_bookmarks true
+\pdf_bookmarksnumbered true
+\pdf_bookmarksopen true
+\pdf_bookmarksopenlevel 1
+\pdf_breaklinks false
+\pdf_pdfborder true
+\pdf_colorlinks true
+\pdf_backref false
+\pdf_pdfusetitle true
+\pdf_quoted_options "citecolor = blue, linkcolor = magenta, urlcolor = green"
+\papersize default
+\use_geometry true
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\leftmargin 1in
+\topmargin 1in
+\rightmargin 1in
+\bottommargin 1in
+\secnumdepth 2
+\tocdepth 2
+\paragraph_separation indent
+\paragraph_indentation default
+\quotes_language english
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<setup, include=FALSE, cache=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(knitr)
+\end_layout
+
+\begin_layout Plain Layout
+
+opts_chunk$set(fig.path='figure/theme-', cache.path='cache/theme-', cache=TRUE)
+\end_layout
+
+\begin_layout Plain Layout
+
+options(formatR.arrow=TRUE,width=78)
+\end_layout
+
+\begin_layout Plain Layout
+
+knit_hooks$set(par=function(before, options, envir){if (before) par(mar=c(4,4,.1,.
+1),cex.lab=.95,cex.axis=.9,mgp=c(2,.7,0),tcl=-.3)})
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\begin_layout Plain Layout
+
+<<solarized-theme, cache=FALSE, echo=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+thm = knit_theme$get("solarized-dark")
+\end_layout
+
+\begin_layout Plain Layout
+
+knit_theme$set(thm)
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Title
+Customizing Syntax Highlighting Themes
+\end_layout
+
+\begin_layout Author
+Yihui Xie & Ramnath Vaidyanathan
+\end_layout
+
+\begin_layout Abstract
+This manual
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+source code at 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://github.com/yihui/knitr/blob/master/inst/examples/knitr-themes.Rnw
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+ shows how to customize syntax highlighting of source code using themes.
+ It walks the user through the basics of syntax highlighting in 
+\series bold
+knitr
+\series default
+, and the use of built-in themes.
+\end_layout
+
+\begin_layout Standard
+The 
+\series bold
+knitr
+\series default
+ package uses the 
+\series bold
+highr
+\series default
+ package to highlight source code in a document.
+ In short, the 
+\series bold
+highr
+\series default
+ package parses the source code, tokenizes it into grammar symbols, and
+ formats their appearance using CSS or LaTeX commands.
+ 
+\end_layout
+
+\begin_layout Section
+Usage
+\end_layout
+
+\begin_layout Standard
+We can use the object 
+\family typewriter
+knit_theme
+\family default
+ to set / get a theme.
+ See 
+\family typewriter
+?knit_theme
+\family default
+ for the usage.
+ For example, we set the theme of this document to be 
+\family typewriter
+solarized-dark
+\family default
+:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<solarized-theme>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Built-in Themes
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float margintable
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<eclipse-css, comment=NA, echo=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+cat(c(readLines('../themes/edit-eclipse.css', n=30),'...'),sep='
+\backslash
+n')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The listing on the right shows the CSS file for one of the themes, 
+\family typewriter
+edit-eclipse
+\family default
+, which was adapted from Andre Simon's excellent highlighter
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://www.andre-simon.de/
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+.
+ The 
+\series bold
+knitr
+\series default
+ package comes pre-loaded with a number of themes based on this highlighter.
+ Here is list of all available code themes
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+For a preview of all themes, see 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://gist.github.com/yihui/3422133
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<all-themes>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+knit_theme$get()
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Shown below is how the 
+\family typewriter
+solarized-dark
+\family default
+ theme looks like when applied to R code:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<demo-code, eval = FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(XML)
+\end_layout
+
+\begin_layout Plain Layout
+
+library(plyr)
+\end_layout
+
+\begin_layout Plain Layout
+
+library(reshape)
+\end_layout
+
+\begin_layout Plain Layout
+
+# SCRAPE THE DATA FROM WEB 
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\begin_layout Plain Layout
+
+base_url = "http://www.mlsoccer.com/stats/%s/reg"
+\end_layout
+
+\begin_layout Plain Layout
+
+years    = 1996:2010
+\end_layout
+
+\begin_layout Plain Layout
+
+options(width = 40)
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\begin_layout Plain Layout
+
+#' Function to save data for each year
+\end_layout
+
+\begin_layout Plain Layout
+
+save_data = function(y){
+\end_layout
+
+\begin_layout Plain Layout
+
+  url  = sprintf(base_url, y)
+\end_layout
+
+\begin_layout Plain Layout
+
+  tab  = readHTMLTable(url, header = FALSE, stringsAsFactors = FALSE);
+\end_layout
+
+\begin_layout Plain Layout
+
+  pos  = max(grep("United", tab));
+\end_layout
+
+\begin_layout Plain Layout
+
+  tab  = tab[[pos]];
+\end_layout
+
+\begin_layout Plain Layout
+
+  tab$year   = y;
+\end_layout
+
+\begin_layout Plain Layout
+
+  return(tab)            
+\end_layout
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\begin_layout Plain Layout
+
+	
+\end_layout
+
+\begin_layout Plain Layout
+
+team.list  = llply(years, save_data);
+\end_layout
+
+\begin_layout Plain Layout
+
+mls        = merge_recurse(team.list);
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Section
+Misc
+\end_layout
+
+\begin_layout Standard
+One thing to consider is the foreground color of plots when we use dark
+ themes; we need to make it lighter, otherwise the graphical elements will
+ be difficult to be read.
+ We can access the foreground color of the theme in the list returned by
+ 
+\family typewriter
+knit_theme$get(theme)
+\family default
+, e.g., for this document:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<fg-color>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+## the object thm is from the first chunk
+\end_layout
+
+\begin_layout Plain Layout
+
+thm$foreground  # foreground color
+\end_layout
+
+\begin_layout Plain Layout
+
+thm$background  # background color
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+When we make plots, we may use these colors, e.g.
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<plot-color, fig.width=6, fig.height=4, out.width='.8
+\backslash
+
+\backslash
+linewidth', par=TRUE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+## can design a chunk hook to set foreground color automatically
+\end_layout
+
+\begin_layout Plain Layout
+
+fgcolor=thm$foreground
+\end_layout
+
+\begin_layout Plain Layout
+
+par(fg=fgcolor, col.axis=fgcolor, col.lab=fgcolor)
+\end_layout
+
+\begin_layout Plain Layout
+
+plot(rnorm(100),pch=19)
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Of course, we do not need to worry about these colors when we use a white
+ background for the plots.
+\end_layout
+
+\end_body
+\end_document
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.lyx
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.lyx	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.lyx	(revision 2476)
@@ -0,0 +1,264 @@
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
+\begin_document
+\begin_header
+\textclass article
+\use_default_options true
+\begin_modules
+knitr
+\end_modules
+\maintain_unincluded_children false
+\language english
+\language_package none
+\inputencoding default
+\fontencoding global
+\font_roman palatino
+\font_sans default
+\font_typewriter default
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc true
+\font_osf false
+\font_sf_scale 100
+\font_tt_scale 100
+
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref true
+\pdf_bookmarks true
+\pdf_bookmarksnumbered true
+\pdf_bookmarksopen true
+\pdf_bookmarksopenlevel 2
+\pdf_breaklinks false
+\pdf_pdfborder false
+\pdf_colorlinks false
+\pdf_backref false
+\pdf_pdfusetitle true
+\pdf_quoted_options "pdfstartview={XYZ null null 1}"
+\papersize default
+\use_geometry true
+\use_amsmath 1
+\use_esint 1
+\use_mhchem 1
+\use_mathdots 1
+\cite_engine basic
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\use_refstyle 1
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\leftmargin 2.5cm
+\topmargin 2.5cm
+\rightmargin 2.5cm
+\bottommargin 2.5cm
+\secnumdepth 2
+\tocdepth 2
+\paragraph_separation indent
+\paragraph_indentation default
+\quotes_language english
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<setup, include=FALSE, cache=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(knitr)
+\end_layout
+
+\begin_layout Plain Layout
+
+# set global chunk options
+\end_layout
+
+\begin_layout Plain Layout
+
+opts_chunk$set(fig.path='figure/minimal-', fig.align='center', fig.show='hold')
+\end_layout
+
+\begin_layout Plain Layout
+
+options(formatR.arrow=TRUE,width=90)
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Title
+A Minimal Demo of knitr
+\end_layout
+
+\begin_layout Author
+Yihui Xie
+\end_layout
+
+\begin_layout Standard
+You can test if 
+\series bold
+knitr
+\series default
+ works with this minimal demo.
+ OK, let's get started with some boring random numbers:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<boring-random>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+set.seed(1121)
+\end_layout
+
+\begin_layout Plain Layout
+
+(x=rnorm(20))
+\end_layout
+
+\begin_layout Plain Layout
+
+mean(x);var(x)
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The first element of 
+\family typewriter
+x
+\family default
+ is 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+Sexpr{x[1]}
+\end_layout
+
+\end_inset
+
+.
+ Boring boxplots and histograms recorded by the PDF device:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<boring-plots, fig.width=4, fig.height=4, out.width='.4
+\backslash
+
+\backslash
+linewidth'>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+## two plots side by side (option fig.show='hold')
+\end_layout
+
+\begin_layout Plain Layout
+
+par(mar=c(4,4,.1,.1),cex.lab=.95,cex.axis=.9,mgp=c(2,.7,0),tcl=-.3,las=1)
+\end_layout
+
+\begin_layout Plain Layout
+
+boxplot(x)
+\end_layout
+
+\begin_layout Plain Layout
+
+hist(x,main='')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Do the above chunks work? You should be able to compile the TeX document
+ and get a PDF file like this one: 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://github.com/yihui/knitr/releases/download/doc/knitr-minimal.pdf
+\end_layout
+
+\end_inset
+
+.
+ The Rnw source of this document is at 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://github.com/yihui/knitr/blob/master/inst/examples/knitr-minimal.Rnw
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\end_body
+\end_document
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-listings.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-listings.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-listings.Rnw	(revision 2476)
@@ -0,0 +1,106 @@
+%% LyX 2.2.1 created this file.  For more info, see http://www.lyx.org/.
+%% Do not edit unless you really know what you are doing.
+\documentclass{article}
+\usepackage[sc]{mathpazo}
+\usepackage[T1]{fontenc}
+\usepackage{geometry}
+\geometry{verbose,tmargin=2.5cm,bmargin=2.5cm,lmargin=2.5cm,rmargin=2.5cm}
+\usepackage{url}
+\usepackage[unicode=true,pdfusetitle,
+ bookmarks=true,bookmarksnumbered=true,bookmarksopen=true,bookmarksopenlevel=2,
+ breaklinks=false,pdfborder={0 0 1},backref=false,colorlinks=false]
+ {hyperref}
+\hypersetup{
+ pdfstartview={XYZ null null 1}}
+\usepackage{breakurl}
+\usepackage{listings}
+\lstset{language=R}
+\begin{document}
+<<setup, include=FALSE, cache=FALSE>>=
+library(knitr)
+opts_chunk$set(fig.path = 'figure/listings-')
+options(formatR.arrow = TRUE)
+render_listings()
+@
+
+\title{Using listings with knitr}
+
+\author{Yihui Xie}
+
+\maketitle
+To use the \textbf{listings} package with \textbf{knitr}, all you
+need to do is to call a function in your first setup chunk (that chunk
+should be hidden from the output with \texttt{include=FALSE} and should
+not be cached):
+
+% I just want to echo the 2nd line
+<<setup, echo=2>>=
+@
+
+This function modifies the output hooks and header information so
+that the output is written in \textbf{listings} environments, which
+are kindly provided by Frank Harrell and can be found in \url{https://github.com/yihui/knitr/blob/master/inst/misc/Sweavel.sty}.
+Of course you have to install the \textbf{listings} package if your
+\LaTeX{} toolset does not include this package.
+
+Now we can see how the results look like with our new settings:
+
+<<boring-random>>=
+set.seed(1121)  # for reproducibility
+options(width=85)
+x=rnorm(20)
+x
+mean(x)
+sqrt(-1)  # this will give you a warning message
+@
+
+Another chunk:
+
+<<rgl-hook-demo,eval=FALSE>>=
+hook_rgl = function(before, options, envir) {
+    ## after a chunk has been evaluated
+    if (before || !require('rgl') || rgl.cur() == 0) return()  # no active device
+    name = paste(valid_prefix(options$fig.path), options$label, sep = '')
+    par3d(windowRect = 100 + options$dpi * c(0, 0, options$width, options$height))
+    Sys.sleep(.05) # need time to respond to window size change
+
+    fmt = opts_knit$get('out.format')
+    if (fmt %in% c('html', 'markdown', 'gfm', 'jekyll')) options$dev = 'png'
+
+    ## support 3 formats: eps, pdf and png (default)
+    switch(options$dev,
+           postscript = rgl.postscript(paste(name, '.eps', sep = ''), fmt = 'eps'),
+           pdf = rgl.postscript(paste(name, '.pdf', sep = ''), fmt = 'pdf'),
+           rgl.snapshot(paste(name, '.png', sep = ''), fmt = 'png'))
+
+    if (fmt == 'html') return(.plot.hook.html(c(name, 'png'), options))
+    if (fmt %in% c('markdown', 'gfm', 'jekyll'))
+        return(.plot.hook.markdown(c(name, 'png'), options))
+
+    paste(ifelse(options$align == 'center', '\\centering{}', ''), '\\includegraphics[',
+          sprintf('width=%s', options$out.width), ']{', name, '}\n', sep = '')
+}
+@
+
+Well, we can do crazier things with \textbf{knitr}. Here we use the
+\texttt{fig.cap} option to write plots into the \texttt{figure} environment
+automatically, and the caption is generated from data dynamically
+(see Figure \ref{fig:boxplot-ex}):
+
+% set an option first
+<<eval-opts, echo=FALSE>>=
+opts_knit$set(eval.after = 'fig.cap') # evaluate fig.cap after the chunk
+
+<<boxplot-ex, fig.height=2, out.width='.8\\linewidth', fig.cap=sprintf('This is a boxplot; the median is %.2f.', median(x))>>=
+par(mar=c(4,4,.1,.1))
+boxplot(x, horizontal=TRUE)
+@
+
+As we know, \texttt{figure} is a float environment, so it has floated
+away from the R code to the top of this page. This should not be surprising
+to \LaTeX{} users.
+
+You should be able to compile the \TeX{} document and get a PDF file
+like this one: \url{https://github.com/yihui/knitr/releases/download/doc/knitr-listings.pdf}.
+For more information about out hooks, see \url{http://yihui.name/knitr/hooks}.
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-twocolumn.lyx
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-twocolumn.lyx	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-twocolumn.lyx	(revision 2476)
@@ -0,0 +1,269 @@
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
+\begin_document
+\begin_header
+\textclass article
+\begin_preamble
+\renewcommand{\textfraction}{0.05}
+\renewcommand{\topfraction}{0.8}
+\renewcommand{\bottomfraction}{0.8}
+\renewcommand{\floatpagefraction}{0.75}
+\end_preamble
+\use_default_options true
+\begin_modules
+knitr
+\end_modules
+\maintain_unincluded_children false
+\language english
+\language_package none
+\inputencoding default
+\fontencoding global
+\font_roman palatino
+\font_sans default
+\font_typewriter default
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc true
+\font_osf false
+\font_sf_scale 100
+\font_tt_scale 100
+
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref true
+\pdf_bookmarks true
+\pdf_bookmarksnumbered true
+\pdf_bookmarksopen true
+\pdf_bookmarksopenlevel 2
+\pdf_breaklinks false
+\pdf_pdfborder false
+\pdf_colorlinks false
+\pdf_backref false
+\pdf_pdfusetitle true
+\pdf_quoted_options "pdfstartview={XYZ null null 1}"
+\papersize default
+\use_geometry true
+\use_amsmath 1
+\use_esint 1
+\use_mhchem 1
+\use_mathdots 1
+\cite_engine basic
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\use_refstyle 1
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\leftmargin 3cm
+\topmargin 3cm
+\rightmargin 3cm
+\bottommargin 3cm
+\secnumdepth 2
+\tocdepth 2
+\paragraph_separation skip
+\defskip bigskip
+\quotes_language english
+\papercolumns 2
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<setup, include=FALSE, cache=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(knitr)
+\end_layout
+
+\begin_layout Plain Layout
+
+opts_chunk$set(fig.path='figure/twocolumn-', fig.align='center', fig.show='hold')
+\end_layout
+
+\begin_layout Plain Layout
+
+render_listings()
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Title
+Using knitr in A Two-column Document
+\end_layout
+
+\begin_layout Author
+Yihui Xie
+\end_layout
+
+\begin_layout Standard
+We can use the 
+\family typewriter
+figure*
+\family default
+ environment in LaTeX so that figures can span over two columns.
+ Because the output hooks use the 
+\series bold
+framed
+\series default
+ package which does not work well with the 
+\family typewriter
+figure*
+\family default
+ environment, we can either modify the output hooks or use other packages
+ like 
+\series bold
+listings
+\series default
+.
+ For example,
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<chunk-hook, echo=2, tidy=TRUE, tidy.opts=list(width.cutoff=30)>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+<<setup>>
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide true
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<boring-plots, fig.width=5, fig.height=5, out.width='.45
+\backslash
+
+\backslash
+linewidth'>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+x=rnorm(100)
+\end_layout
+
+\begin_layout Plain Layout
+
+par(mar=c(4,4,.1,.1))
+\end_layout
+
+\begin_layout Plain Layout
+
+boxplot(x)
+\end_layout
+
+\begin_layout Plain Layout
+
+hist(x,main='')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+Two plots spanning over two columns.
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+The output PDF file will be like: 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://github.com/yihui/knitr/releases/download/doc/knitr-twocolumn.pdf
+\end_layout
+
+\end_inset
+
+.
+ The Rnw source of this document is at 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://github.com/yihui/knitr/blob/master/inst/examples/knitr-twocolumn.Rnw
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\end_body
+\end_document
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-input.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-input.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-input.Rnw	(revision 2476)
@@ -0,0 +1,19 @@
+\documentclass{article}
+
+\begin{document}
+
+<<test-main>>=
+options(width = 60)
+summary(iris)
+@
+
+Let's see how to work with child documents in knitr. Below we input
+the file \textsf{knitr-input-child.Rnw}:
+
+<<child-demo, child='knitr-input-child.Rnw'>>=
+@
+% Or alternatively, use knit_child('knitr-input-child.Rnw') in \Sexpr
+
+Done!
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-minimal.Rmd	(revision 2476)
@@ -0,0 +1,59 @@
+# A Minimal Example for Markdown
+
+This is a minimal example of using **knitr** to produce an _HTML_ page from _Markdown_.
+
+## R code chunks
+
+```{r setup}
+# set global chunk options: images will be 7x5 inches
+knitr::opts_chunk$set(fig.width=7, fig.height=5)
+options(digits = 4)
+```
+
+Now we write some code chunks in this markdown file:
+
+```{r computing}
+x <- 1+1 # a simple calculator
+set.seed(123)
+rnorm(5)  # boring random numbers
+```
+
+We can also produce plots:
+
+```{r graphics}
+par(mar = c(4, 4, .1, .1))
+with(mtcars, {
+  plot(mpg~hp, pch=20, col='darkgray')
+  lines(lowess(hp, mpg))
+})
+```
+
+## Inline code
+
+Inline R code is also supported, e.g. the value of `x` is `r x`, and 2 &times; &pi;
+= `r 2*pi`.
+
+## Math
+
+LaTeX math as usual: $f(\alpha, \beta) \propto x^{\alpha-1}(1-x)^{\beta-1}$.
+
+## Misc
+
+You can indent code chunks so they can nest within other environments such as lists.
+
+1. the area of a circle with radius x
+    ```{r foo}
+    pi * x^2
+    ```
+2. OK, that is great
+
+To compile me, use
+
+```{r compile, eval=FALSE}
+library(knitr)
+knit('knitr-minimal.Rmd')
+```
+
+## Conclusion
+
+Markdown is super easy to write. Go to **knitr** [homepage](http://yihui.name/knitr) for details.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-subfloats.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-subfloats.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-subfloats.Rnw	(revision 2476)
@@ -0,0 +1,71 @@
+%% LyX 2.2.1 created this file.  For more info, see http://www.lyx.org/.
+%% Do not edit unless you really know what you are doing.
+\documentclass{article}
+\usepackage[T1]{fontenc}
+\usepackage[latin9]{inputenc}
+\usepackage{url}
+
+\makeatletter
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
+\providecommand{\LyX}{L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
+\renewcommand{\textfraction}{0.05}
+\renewcommand{\topfraction}{0.8}
+\renewcommand{\bottomfraction}{0.8}
+\renewcommand{\floatpagefraction}{0.75}
+
+\@ifundefined{showcaptionsetup}{}{%
+ \PassOptionsToPackage{caption=false}{subfig}}
+\usepackage{subfig}
+\makeatother
+
+\begin{document}
+<<setup, include=FALSE>>=
+library(knitr)
+opts_chunk$set(fig.path='figure/subfloats-')
+@
+
+\title{Using subfloats in \LyX{} with knitr}
+
+\author{Yihui Xie}
+
+\maketitle
+If you insert a float figure inside a float figure in \LyX{}, you
+will get subfloats. To make sure the two subfloats can stand side
+by side, you have to:
+\begin{enumerate}
+\item remove new lines between the two subfloat environments in \LyX{}
+(if you are not sure if there are blank lines between them, check
+the \LaTeX{} source);
+\item use the chunk option \texttt{echo=FALSE} to hide the R source code
+in the output;
+\item set \texttt{out.width} to be less than half of the linewidth if you
+do not want the sub figures to exceed the page margin;
+\item most importantly, leave a blank line in the beginning of the subfloat
+environment, so that \texttt{<\textcompwordmark{}<>\textcompwordmark{}>=}
+starts in a new line and \textbf{knitr} can recognize it;
+\end{enumerate}
+Figure \ref{fig:knitr-subfloat} is an example.
+
+This document was compiled with \textbf{knitr} \Sexpr{packageVersion('knitr')}.
+Rnw source at \url{https://github.com/yihui/knitr/blob/master/inst/examples/knitr-subfloats.Rnw}.
+
+\begin{figure}
+\subfloat[this is a subfloat]{
+<<test-subfloat, echo=FALSE, out.width='.45\\linewidth'>>=
+plot(1)
+@
+
+}\subfloat[another float]{
+<<test-another, echo=FALSE, out.width='.45\\linewidth'>>=
+plot(rnorm(100))
+@
+
+}
+
+\caption{one figure with 2 sub figures\label{fig:knitr-subfloat}}
+\end{figure}
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-listings.lyx
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-listings.lyx	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-listings.lyx	(revision 2476)
@@ -0,0 +1,517 @@
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
+\begin_document
+\begin_header
+\textclass article
+\use_default_options true
+\begin_modules
+knitr
+\end_modules
+\maintain_unincluded_children false
+\language english
+\language_package none
+\inputencoding default
+\fontencoding global
+\font_roman palatino
+\font_sans default
+\font_typewriter default
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc true
+\font_osf false
+\font_sf_scale 100
+\font_tt_scale 100
+
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref true
+\pdf_bookmarks true
+\pdf_bookmarksnumbered true
+\pdf_bookmarksopen true
+\pdf_bookmarksopenlevel 2
+\pdf_breaklinks false
+\pdf_pdfborder false
+\pdf_colorlinks false
+\pdf_backref false
+\pdf_pdfusetitle true
+\pdf_quoted_options "pdfstartview={XYZ null null 1}"
+\papersize default
+\use_geometry true
+\use_amsmath 1
+\use_esint 1
+\use_mhchem 1
+\use_mathdots 1
+\cite_engine basic
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\use_refstyle 1
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\leftmargin 2.5cm
+\topmargin 2.5cm
+\rightmargin 2.5cm
+\bottommargin 2.5cm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\quotes_language english
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\listings_params "language=R"
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<setup, include=FALSE, cache=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(knitr)
+\end_layout
+
+\begin_layout Plain Layout
+
+opts_chunk$set(fig.path = 'figure/listings-')
+\end_layout
+
+\begin_layout Plain Layout
+
+options(formatR.arrow = TRUE)
+\end_layout
+
+\begin_layout Plain Layout
+
+render_listings()
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Title
+Using listings with knitr
+\end_layout
+
+\begin_layout Author
+Yihui Xie
+\end_layout
+
+\begin_layout Standard
+To use the 
+\series bold
+listings
+\series default
+ package with 
+\series bold
+knitr
+\series default
+, all you need to do is to call a function in your first setup chunk (that
+ chunk should be hidden from the output with 
+\family typewriter
+include=FALSE
+\family default
+ and should not be cached):
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+% I just want to echo the 2nd line
+\end_layout
+
+\begin_layout Plain Layout
+
+<<setup, echo=2>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+This function modifies the output hooks and header information so that the
+ output is written in 
+\series bold
+listings
+\series default
+ environments, which are kindly provided by Frank Harrell and can be found
+ in 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://github.com/yihui/knitr/blob/master/inst/misc/Sweavel.sty
+\end_layout
+
+\end_inset
+
+.
+ Of course you have to install the 
+\series bold
+listings
+\series default
+ package if your LaTeX toolset does not include this package.
+\end_layout
+
+\begin_layout Standard
+Now we can see how the results look like with our new settings:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<boring-random>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+set.seed(1121)  # for reproducibility
+\end_layout
+
+\begin_layout Plain Layout
+
+options(width=85)
+\end_layout
+
+\begin_layout Plain Layout
+
+x=rnorm(20)
+\end_layout
+
+\begin_layout Plain Layout
+
+x
+\end_layout
+
+\begin_layout Plain Layout
+
+mean(x)
+\end_layout
+
+\begin_layout Plain Layout
+
+sqrt(-1)  # this will give you a warning message
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Another chunk:
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<rgl-hook-demo,eval=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+hook_rgl = function(before, options, envir) {
+\end_layout
+
+\begin_layout Plain Layout
+
+    ## after a chunk has been evaluated
+\end_layout
+
+\begin_layout Plain Layout
+
+    if (before || !require('rgl') || rgl.cur() == 0) return()  # no active
+ device
+\end_layout
+
+\begin_layout Plain Layout
+
+    name = paste(valid_prefix(options$fig.path), options$label, sep = '')
+\end_layout
+
+\begin_layout Plain Layout
+
+    par3d(windowRect = 100 + options$dpi * c(0, 0, options$width, options$height
+))
+\end_layout
+
+\begin_layout Plain Layout
+
+    Sys.sleep(.05) # need time to respond to window size change
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\begin_layout Plain Layout
+
+    fmt = opts_knit$get('out.format')
+\end_layout
+
+\begin_layout Plain Layout
+
+    if (fmt %in% c('html', 'markdown', 'gfm', 'jekyll')) options$dev = 'png'
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\begin_layout Plain Layout
+
+    ## support 3 formats: eps, pdf and png (default)
+\end_layout
+
+\begin_layout Plain Layout
+
+    switch(options$dev,
+\end_layout
+
+\begin_layout Plain Layout
+
+           postscript = rgl.postscript(paste(name, '.eps', sep = ''), fmt
+ = 'eps'),
+\end_layout
+
+\begin_layout Plain Layout
+
+           pdf = rgl.postscript(paste(name, '.pdf', sep = ''), fmt = 'pdf'),
+\end_layout
+
+\begin_layout Plain Layout
+
+           rgl.snapshot(paste(name, '.png', sep = ''), fmt = 'png'))
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\begin_layout Plain Layout
+
+    if (fmt == 'html') return(.plot.hook.html(c(name, 'png'), options))
+\end_layout
+
+\begin_layout Plain Layout
+
+    if (fmt %in% c('markdown', 'gfm', 'jekyll'))
+\end_layout
+
+\begin_layout Plain Layout
+
+        return(.plot.hook.markdown(c(name, 'png'), options))
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\begin_layout Plain Layout
+
+    paste(ifelse(options$align == 'center', '
+\backslash
+
+\backslash
+centering{}', ''), '
+\backslash
+
+\backslash
+includegraphics[',
+\end_layout
+
+\begin_layout Plain Layout
+
+          sprintf('width=%s', options$out.width), ']{', name, '}
+\backslash
+n', sep = '')
+\end_layout
+
+\begin_layout Plain Layout
+
+}
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Well, we can do crazier things with 
+\series bold
+knitr
+\series default
+.
+ Here we use the 
+\family typewriter
+fig.cap
+\family default
+ option to write plots into the 
+\family typewriter
+figure
+\family default
+ environment automatically, and the caption is generated from data dynamically
+ (see Figure 
+\begin_inset ERT
+status collapsed
+
+\begin_layout Plain Layout
+
+
+\backslash
+ref{fig:boxplot-ex}
+\end_layout
+
+\end_inset
+
+):
+\end_layout
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+% set an option first
+\end_layout
+
+\begin_layout Plain Layout
+
+<<eval-opts, echo=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+opts_knit$set(eval.after = 'fig.cap') # evaluate fig.cap after the chunk
+\end_layout
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\begin_layout Plain Layout
+
+<<boxplot-ex, fig.height=2, out.width='.8
+\backslash
+
+\backslash
+linewidth', fig.cap=sprintf('This is a boxplot; the median is %.2f.', median(x))>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+par(mar=c(4,4,.1,.1))
+\end_layout
+
+\begin_layout Plain Layout
+
+boxplot(x, horizontal=TRUE)
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+As we know, 
+\family typewriter
+figure
+\family default
+ is a float environment, so it has floated away from the R code to the top
+ of this page.
+ This should not be surprising to LaTeX users.
+\end_layout
+
+\begin_layout Standard
+You should be able to compile the TeX document and get a PDF file like this
+ one: 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://github.com/yihui/knitr/releases/download/doc/knitr-listings.pdf
+\end_layout
+
+\end_inset
+
+.
+ For more information about out hooks, see 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+http://yihui.name/knitr/hooks
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\end_body
+\end_document
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-manual.bib
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-manual.bib	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-manual.bib	(revision 2476)
@@ -0,0 +1,20 @@
+@inproceedings{leisch2002,
+  title={Sweave: Dynamic Generation of Statistical Reports Using Literate Data Analysis},
+  author={Leisch, F.},
+  booktitle={COMPSTAT 2002 Proceedings in Computational Statistics},
+  number={69},
+  pages={575--580},
+  year={2002},
+  organization={Physica Verlag, Heidelberg}
+}
+
+@book{xie2013,
+  title = {Dynamic Documents with {R} and knitr},
+  author = {Yihui Xie},
+  publisher = {Chapman and Hall/CRC},
+  address = {Boca Raton, Florida},
+  year = {2015},
+  edition = {2nd},
+  note = {ISBN 978-1498716963},
+  url = {http://yihui.name/knitr/}
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-spin.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-spin.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-spin.R	(revision 2476)
@@ -0,0 +1,51 @@
+#' This is a special R script which can be used to generate a report. You can
+#' write normal text in roxygen comments.
+#'
+#' First we set up some options (you do not have to do this):
+
+#+ setup, include=FALSE
+library(knitr)
+opts_chunk$set(fig.path = 'figure/silk-')
+
+#' The report begins here.
+
+#+ test-a, cache=FALSE
+# boring examples as usual
+set.seed(123)
+x = rnorm(5)
+mean(x)
+
+#' You can use the special syntax {{code}} to embed inline expressions, e.g.
+{{mean(x) + 2}}
+#' is the mean of x plus 2.
+#' The code itself may contain braces, but these are not checked.  Thus,
+#' perfectly valid (though very strange) R code such as `{{2 + 3}} - {{4 - 5}}`
+#' can lead to errors because `2 + 3}} - {{4 - 5` will be treated as inline code.
+#'
+#' Now we continue writing the report. We can draw plots as well.
+
+#+ test-b, fig.width=5, fig.height=5
+par(mar = c(4, 4, .1, .1)); plot(x)
+
+#' Actually you do not have to write chunk options, in which case knitr will use
+#' default options. For example, the code below has no options attached:
+
+var(x)
+quantile(x)
+
+#' And you can also write two chunks successively like this:
+
+#+ test-chisq5
+sum(x^2) # chi-square distribution with df 5
+#+ test-chisq4
+sum((x - mean(x))^2) # df is 4 now
+
+#' Done. Call spin('knitr-spin.R') to make silk from sow's ear now and knit a
+#' lovely purse.
+
+# /* you can write comments between /* and */ like C comments (the preceding #
+# is optional)
+Sys.sleep(60)
+# */
+
+# /* there is no inline comment; you have to write block comments */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-spin.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-spin.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-spin.html	(revision 2476)
@@ -0,0 +1,270 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+
+<title></title>
+
+<script type="text/javascript">
+window.onload = function() {
+  var imgs = document.getElementsByTagName('img'), i, img;
+  for (i = 0; i < imgs.length; i++) {
+    img = imgs[i];
+    // center an image if it is the only element of its parent
+    if (img.parentElement.childElementCount === 1)
+      img.parentElement.style.textAlign = 'center';
+  }
+};
+</script>
+
+<!-- Styles for R syntax highlighter -->
+<style type="text/css">
+   pre .operator,
+   pre .paren {
+     color: rgb(104, 118, 135)
+   }
+
+   pre .literal {
+     color: #990073
+   }
+
+   pre .number {
+     color: #099;
+   }
+
+   pre .comment {
+     color: #998;
+     font-style: italic
+   }
+
+   pre .keyword {
+     color: #900;
+     font-weight: bold
+   }
+
+   pre .identifier {
+     color: rgb(0, 0, 0);
+   }
+
+   pre .string {
+     color: #d14;
+   }
+</style>
+
+<!-- R syntax highlighter -->
+<script type="text/javascript">
+var hljs=new function(){function m(p){return p.replace(/&/gm,"&amp;").replace(/</gm,"&lt;")}function f(r,q,p){return RegExp(q,"m"+(r.cI?"i":"")+(p?"g":""))}function b(r){for(var p=0;p<r.childNodes.length;p++){var q=r.childNodes[p];if(q.nodeName=="CODE"){return q}if(!(q.nodeType==3&&q.nodeValue.match(/\s+/))){break}}}function h(t,s){var p="";for(var r=0;r<t.childNodes.length;r++){if(t.childNodes[r].nodeType==3){var q=t.childNodes[r].nodeValue;if(s){q=q.replace(/\n/g,"")}p+=q}else{if(t.childNodes[r].nodeName=="BR"){p+="\n"}else{p+=h(t.childNodes[r])}}}if(/MSIE [678]/.test(navigator.userAgent)){p=p.replace(/\r/g,"\n")}return p}function a(s){var r=s.className.split(/\s+/);r=r.concat(s.parentNode.className.split(/\s+/));for(var q=0;q<r.length;q++){var p=r[q].replace(/^language-/,"");if(e[p]){return p}}}function c(q){var p=[];(function(s,t){for(var r=0;r<s.childNodes.length;r++){if(s.childNodes[r].nodeType==3){t+=s.childNodes[r].nodeValue.length}else{if(s.childNodes[r].nodeName=="BR"){t+=1}else{if(s.childNodes[r].nodeType==1){p.push({event:"start",offset:t,node:s.childNodes[r]});t=arguments.callee(s.childNodes[r],t);p.push({event:"stop",offset:t,node:s.childNodes[r]})}}}}return t})(q,0);return p}function k(y,w,x){var q=0;var z="";var s=[];function u(){if(y.length&&w.length){if(y[0].offset!=w[0].offset){return(y[0].offset<w[0].offset)?y:w}else{return w[0].event=="start"?y:w}}else{return y.length?y:w}}function t(D){var A="<"+D.nodeName.toLowerCase();for(var B=0;B<D.attributes.length;B++){var C=D.attributes[B];A+=" "+C.nodeName.toLowerCase();if(C.value!==undefined&&C.value!==false&&C.value!==null){A+='="'+m(C.value)+'"'}}return A+">"}while(y.length||w.length){var v=u().splice(0,1)[0];z+=m(x.substr(q,v.offset-q));q=v.offset;if(v.event=="start"){z+=t(v.node);s.push(v.node)}else{if(v.event=="stop"){var p,r=s.length;do{r--;p=s[r];z+=("</"+p.nodeName.toLowerCase()+">")}while(p!=v.node);s.splice(r,1);while(r<s.length){z+=t(s[r]);r++}}}}return z+m(x.substr(q))}function j(){function q(x,y,v){if(x.compiled){return}var u;var s=[];if(x.k){x.lR=f(y,x.l||hljs.IR,true);for(var w in x.k){if(!x.k.hasOwnProperty(w)){continue}if(x.k[w] instanceof Object){u=x.k[w]}else{u=x.k;w="keyword"}for(var r in u){if(!u.hasOwnProperty(r)){continue}x.k[r]=[w,u[r]];s.push(r)}}}if(!v){if(x.bWK){x.b="\\b("+s.join("|")+")\\s"}x.bR=f(y,x.b?x.b:"\\B|\\b");if(!x.e&&!x.eW){x.e="\\B|\\b"}if(x.e){x.eR=f(y,x.e)}}if(x.i){x.iR=f(y,x.i)}if(x.r===undefined){x.r=1}if(!x.c){x.c=[]}x.compiled=true;for(var t=0;t<x.c.length;t++){if(x.c[t]=="self"){x.c[t]=x}q(x.c[t],y,false)}if(x.starts){q(x.starts,y,false)}}for(var p in e){if(!e.hasOwnProperty(p)){continue}q(e[p].dM,e[p],true)}}function d(B,C){if(!j.called){j();j.called=true}function q(r,M){for(var L=0;L<M.c.length;L++){if((M.c[L].bR.exec(r)||[null])[0]==r){return M.c[L]}}}function v(L,r){if(D[L].e&&D[L].eR.test(r)){return 1}if(D[L].eW){var M=v(L-1,r);return M?M+1:0}return 0}function w(r,L){return L.i&&L.iR.test(r)}function K(N,O){var M=[];for(var L=0;L<N.c.length;L++){M.push(N.c[L].b)}var r=D.length-1;do{if(D[r].e){M.push(D[r].e)}r--}while(D[r+1].eW);if(N.i){M.push(N.i)}return f(O,M.join("|"),true)}function p(M,L){var N=D[D.length-1];if(!N.t){N.t=K(N,E)}N.t.lastIndex=L;var r=N.t.exec(M);return r?[M.substr(L,r.index-L),r[0],false]:[M.substr(L),"",true]}function z(N,r){var L=E.cI?r[0].toLowerCase():r[0];var M=N.k[L];if(M&&M instanceof Array){return M}return false}function F(L,P){L=m(L);if(!P.k){return L}var r="";var O=0;P.lR.lastIndex=0;var M=P.lR.exec(L);while(M){r+=L.substr(O,M.index-O);var N=z(P,M);if(N){x+=N[1];r+='<span class="'+N[0]+'">'+M[0]+"</span>"}else{r+=M[0]}O=P.lR.lastIndex;M=P.lR.exec(L)}return r+L.substr(O,L.length-O)}function J(L,M){if(M.sL&&e[M.sL]){var r=d(M.sL,L);x+=r.keyword_count;return r.value}else{return F(L,M)}}function I(M,r){var L=M.cN?'<span class="'+M.cN+'">':"";if(M.rB){y+=L;M.buffer=""}else{if(M.eB){y+=m(r)+L;M.buffer=""}else{y+=L;M.buffer=r}}D.push(M);A+=M.r}function G(N,M,Q){var R=D[D.length-1];if(Q){y+=J(R.buffer+N,R);return false}var P=q(M,R);if(P){y+=J(R.buffer+N,R);I(P,M);return P.rB}var L=v(D.length-1,M);if(L){var O=R.cN?"</span>":"";if(R.rE){y+=J(R.buffer+N,R)+O}else{if(R.eE){y+=J(R.buffer+N,R)+O+m(M)}else{y+=J(R.buffer+N+M,R)+O}}while(L>1){O=D[D.length-2].cN?"</span>":"";y+=O;L--;D.length--}var r=D[D.length-1];D.length--;D[D.length-1].buffer="";if(r.starts){I(r.starts,"")}return R.rE}if(w(M,R)){throw"Illegal"}}var E=e[B];var D=[E.dM];var A=0;var x=0;var y="";try{var s,u=0;E.dM.buffer="";do{s=p(C,u);var t=G(s[0],s[1],s[2]);u+=s[0].length;if(!t){u+=s[1].length}}while(!s[2]);if(D.length>1){throw"Illegal"}return{r:A,keyword_count:x,value:y}}catch(H){if(H=="Illegal"){return{r:0,keyword_count:0,value:m(C)}}else{throw H}}}function g(t){var p={keyword_count:0,r:0,value:m(t)};var r=p;for(var q in e){if(!e.hasOwnProperty(q)){continue}var s=d(q,t);s.language=q;if(s.keyword_count+s.r>r.keyword_count+r.r){r=s}if(s.keyword_count+s.r>p.keyword_count+p.r){r=p;p=s}}if(r.language){p.second_best=r}return p}function i(r,q,p){if(q){r=r.replace(/^((<[^>]+>|\t)+)/gm,function(t,w,v,u){return w.replace(/\t/g,q)})}if(p){r=r.replace(/\n/g,"<br>")}return r}function n(t,w,r){var x=h(t,r);var v=a(t);var y,s;if(v){y=d(v,x)}else{return}var q=c(t);if(q.length){s=document.createElement("pre");s.innerHTML=y.value;y.value=k(q,c(s),x)}y.value=i(y.value,w,r);var u=t.className;if(!u.match("(\\s|^)(language-)?"+v+"(\\s|$)")){u=u?(u+" "+v):v}if(/MSIE [678]/.test(navigator.userAgent)&&t.tagName=="CODE"&&t.parentNode.tagName=="PRE"){s=t.parentNode;var p=document.createElement("div");p.innerHTML="<pre><code>"+y.value+"</code></pre>";t=p.firstChild.firstChild;p.firstChild.cN=s.cN;s.parentNode.replaceChild(p.firstChild,s)}else{t.innerHTML=y.value}t.className=u;t.result={language:v,kw:y.keyword_count,re:y.r};if(y.second_best){t.second_best={language:y.second_best.language,kw:y.second_best.keyword_count,re:y.second_best.r}}}function o(){if(o.called){return}o.called=true;var r=document.getElementsByTagName("pre");for(var p=0;p<r.length;p++){var q=b(r[p]);if(q){n(q,hljs.tabReplace)}}}function l(){if(window.addEventListener){window.addEventListener("DOMContentLoaded",o,false);window.addEventListener("load",o,false)}else{if(window.attachEvent){window.attachEvent("onload",o)}else{window.onload=o}}}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=n;this.initHighlighting=o;this.initHighlightingOnLoad=l;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="\\b(0[xX][a-fA-F0-9]+|(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.ER="(?![\\s\\S])";this.BE={b:"\\\\.",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.inherit=function(r,s){var p={};for(var q in r){p[q]=r[q]}if(s){for(var q in s){p[q]=s[q]}}return p}}();hljs.LANGUAGES.cpp=function(){var a={keyword:{"false":1,"int":1,"float":1,"while":1,"private":1,"char":1,"catch":1,"export":1,virtual:1,operator:2,sizeof:2,dynamic_cast:2,typedef:2,const_cast:2,"const":1,struct:1,"for":1,static_cast:2,union:1,namespace:1,unsigned:1,"long":1,"throw":1,"volatile":2,"static":1,"protected":1,bool:1,template:1,mutable:1,"if":1,"public":1,friend:2,"do":1,"return":1,"goto":1,auto:1,"void":2,"enum":1,"else":1,"break":1,"new":1,extern:1,using:1,"true":1,"class":1,asm:1,"case":1,typeid:1,"short":1,reinterpret_cast:2,"default":1,"double":1,register:1,explicit:1,signed:1,typename:1,"try":1,"this":1,"switch":1,"continue":1,wchar_t:1,inline:1,"delete":1,alignof:1,char16_t:1,char32_t:1,constexpr:1,decltype:1,noexcept:1,nullptr:1,static_assert:1,thread_local:1,restrict:1,_Bool:1,complex:1},built_in:{std:1,string:1,cin:1,cout:1,cerr:1,clog:1,stringstream:1,istringstream:1,ostringstream:1,auto_ptr:1,deque:1,list:1,queue:1,stack:1,vector:1,map:1,set:1,bitset:1,multiset:1,multimap:1,unordered_set:1,unordered_map:1,unordered_multiset:1,unordered_multimap:1,array:1,shared_ptr:1}};return{dM:{k:a,i:"</",c:[hljs.CLCM,hljs.CBLCLM,hljs.QSM,{cN:"string",b:"'\\\\?.",e:"'",i:"."},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},hljs.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:a,r:10,c:["self"]}]}}}();hljs.LANGUAGES.r={dM:{c:[hljs.HCM,{cN:"number",b:"\\b0[xX][0-9a-fA-F]+[Li]?\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\b\\d+(?:[eE][+\\-]?\\d*)?L\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\b\\d+\\.(?!\\d)(?:i\\b)?",e:hljs.IMMEDIATE_RE,r:1},{cN:"number",b:"\\b\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"keyword",b:"(?:tryCatch|library|setGeneric|setGroupGeneric)\\b",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\.\\.\\.",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\.\\.\\d+(?![\\w.])",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\b(?:function)",e:hljs.IMMEDIATE_RE,r:2},{cN:"keyword",b:"(?:if|in|break|next|repeat|else|for|return|switch|while|try|stop|warning|require|attach|detach|source|setMethod|setClass)\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"literal",b:"(?:NA|NA_integer_|NA_real_|NA_character_|NA_complex_)\\b",e:hljs.IMMEDIATE_RE,r:10},{cN:"literal",b:"(?:NULL|TRUE|FALSE|T|F|Inf|NaN)\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"identifier",b:"[a-zA-Z.][a-zA-Z0-9._]*\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"operator",b:"<\\-(?!\\s*\\d)",e:hljs.IMMEDIATE_RE,r:2},{cN:"operator",b:"\\->|<\\-",e:hljs.IMMEDIATE_RE,r:1},{cN:"operator",b:"%%|~",e:hljs.IMMEDIATE_RE},{cN:"operator",b:">=|<=|==|!=|\\|\\||&&|=|\\+|\\-|\\*|/|\\^|>|<|!|&|\\||\\$|:",e:hljs.IMMEDIATE_RE,r:0},{cN:"operator",b:"%",e:"%",i:"\\n",r:1},{cN:"identifier",b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[hljs.BE],r:0},{cN:"string",b:"'",e:"'",c:[hljs.BE],r:0},{cN:"paren",b:"[[({\\])}]",e:hljs.IMMEDIATE_RE,r:0}]}};
+hljs.initHighlightingOnLoad();
+</script>
+
+
+
+<style type="text/css">
+body, td {
+   font-family: sans-serif;
+   background-color: white;
+   font-size: 13px;
+}
+
+body {
+  max-width: 800px;
+  margin: auto;
+  padding: 1em;
+  line-height: 20px;
+}
+
+tt, code, pre {
+   font-family: 'DejaVu Sans Mono', 'Droid Sans Mono', 'Lucida Console', Consolas, Monaco, monospace;
+}
+
+h1 {
+   font-size:2.2em;
+}
+
+h2 {
+   font-size:1.8em;
+}
+
+h3 {
+   font-size:1.4em;
+}
+
+h4 {
+   font-size:1.0em;
+}
+
+h5 {
+   font-size:0.9em;
+}
+
+h6 {
+   font-size:0.8em;
+}
+
+a:visited {
+   color: rgb(50%, 0%, 50%);
+}
+
+pre, img {
+  max-width: 100%;
+}
+pre {
+  overflow-x: auto;
+}
+pre code {
+   display: block; padding: 0.5em;
+}
+
+code {
+  font-size: 92%;
+  border: 1px solid #ccc;
+}
+
+code[class] {
+  background-color: #F8F8F8;
+}
+
+table, td, th {
+  border: none;
+}
+
+blockquote {
+   color:#666666;
+   margin:0;
+   padding-left: 1em;
+   border-left: 0.5em #EEE solid;
+}
+
+hr {
+   height: 0px;
+   border-bottom: none;
+   border-top-width: thin;
+   border-top-style: dotted;
+   border-top-color: #999999;
+}
+
+@media print {
+   * {
+      background: transparent !important;
+      color: black !important;
+      filter:none !important;
+      -ms-filter: none !important;
+   }
+
+   body {
+      font-size:12pt;
+      max-width:100%;
+   }
+
+   a, a:visited {
+      text-decoration: underline;
+   }
+
+   hr {
+      visibility: hidden;
+      page-break-before: always;
+   }
+
+   pre, blockquote {
+      padding-right: 1em;
+      page-break-inside: avoid;
+   }
+
+   tr, img {
+      page-break-inside: avoid;
+   }
+
+   img {
+      max-width: 100% !important;
+   }
+
+   @page :left {
+      margin: 15mm 20mm 15mm 10mm;
+   }
+
+   @page :right {
+      margin: 15mm 10mm 15mm 20mm;
+   }
+
+   p, h2, h3 {
+      orphans: 3; widows: 3;
+   }
+
+   h2, h3 {
+      page-break-after: avoid;
+   }
+}
+</style>
+
+
+
+</head>
+
+<body>
+<p>This is a special R script which can be used to generate a report. You can
+write normal text in roxygen comments.</p>
+
+<p>First we set up some options (you do not have to do this):</p>
+
+<p>The report begins here.</p>
+
+<pre><code class="r"># boring examples as usual
+set.seed(123)
+x = rnorm(5)
+mean(x)
+</code></pre>
+
+<pre><code>## [1] 0.1935703
+</code></pre>
+
+<p>You can use the special syntax {{code}} to embed inline expressions, e.g.
+2.1935703
+is the mean of x plus 2.
+The code itself may contain braces, but these are not checked.  Thus,
+perfectly valid (though very strange) R code such as <code>{{2 + 3}} - {{4 - 5}}</code>
+can lead to errors because <code>2 + 3}} - {{4 - 5</code> will be treated as inline code.</p>
+
+<p>Now we continue writing the report. We can draw plots as well.</p>
+
+<pre><code class="r">par(mar = c(4, 4, 0.1, 0.1))
+plot(x)
+</code></pre>
+
+<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAFoCAYAAAB65WHVAAAEDWlDQ1BJQ0MgUHJvZmlsZQAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VVBg/m8AACJBSURBVHgB7d0LcBXVHcfxfzBAQogEIg8JRhhKoKaSoCClAjE8OpBSi1HqMLZgowwlztCilKEgjw6ojIVhbCmCtaWhtIJiFUhCOjS0Be0EWmwD5TGDliCQRAIJEpBnQjmn5LU5CRe6N2eT/e7MNXfP7j33v58Tfm7O3XtvyLXri7AggAACCHhOINRzFQWhoIkTJ8pnn30m7dq1C0LvdIkAAgi4K3Dq1CnJy8sTXwT0lStX5J133pHo6Gh3FekNAQQQCILAuHHjdK+tgtA3XSKAAAIIuCBAQLuASBcIIIBAMAQI6GCo0icCCCDgggAB7QIiXSCAAALBECCgg6FKnwgggIALAgS0C4h0gQACCARDwBeX2QUDjj79LXDkyBHJzs6WixcvyogRI2TAgAH+BuHogyLAGXRQWOm0JQvk5+fLs88+K506dZLevXvLAw88IFu3bm3Jh8yxWRLgDNoSPE/bfAW+/e1vy5YtWyQuLk4fxMmTJ2XKlCn6LLpbt27N98Co3HMCnjuDVn8ylpaWeg6KghCoEkhMTKwOZ9XWuXNn6du3rxw7dqxqF34i4IqA1YDOyMiQFStW6AOprKyU6dOnS/fu3SUmJkbGjh0rBw8edOUg6QQBNwXKyspEnTVXLRUVFfL+++/rKY+qNn4i4IaA1YAuKiqqPutQc3i7du2SnTt3impPTk6WCRMmuHGM9IGAqwLTpk2Trl27yu7du0XNRw8fPlwmTZqk56NdfSI6872AZ+agN23apM+g4+Pj9aDMmjVL3nzzTVGf6nTXXXf5fqAA8I7AY489Jnv27JHf/e53cuHCBZk5c6aoNhYE3BawHtCHDx+WAwcOyNChQ6WwsLD6+E6fPi2hoaF8Al21CHe8JKCu3FA3FgSCKWB1imPIkCE6hMePHy9Tp06VefPmifpoUPU5qH369JG0tDQJCQkJ5vHTNwIIIOBZAatn0ElJSaJuajl37pzs379fWrdurV8oVCFddRmTZ/UoDAEEEAiigNWArn1c7du3l8GDB+um2NhYOXv2rH6nVkpKSu3dGrx/5swZaejbu7744osGH8cGBBBAwKsCngloJ1BBQYGe4iguLnZuMq6rKRI1PWJacnNzTc20IYAAAp4W8GxA9+/fXwINZyW8YcOGBqHVGwlYEEAAgeYmYPVFwuaGRb0IIIBAUwoQ0E2pzXMhgAACtyBgdYojKytL9u3b12i5s2fPbnQ7GxFAAIGWKmA1oNU1zi+99JKoD59Rc84sCCCAAAI1AlYDWl1Ct3nzZn21Rk5OjkRERNRUxj0EEEDA5wLW56DVhyKpDz9Xb0xhQQABBBCoEbB6Bl1Vxty5c6vu8hMBBBBA4IaA9TNoRgIBBBBAwCxAQJtdaEUAAQSsCxDQ1oeAAhBAAAGzAAFtdqEVAQQQsC5AQFsfAgpAAAEEzAIEtNmFVgQQQMC6AAFtfQgoAAEEEDALENBmF1oRQAAB6wIEtPUhoAAEEEDALEBAm11oRQABBKwLENDWh4ACEEAAAbMAAW12oRUBBBCwLkBAWx8CCkAAAQTMAgS02YVWBBBAwLoAAW19CCgAAQQQMAsQ0GYXWhFAAAHrAgS09SGgAAQQQMAsQECbXWhFAAEErAsQ0NaHgAIQQAABswABbXahFQEEELAuQEBbHwIKQAABBMwCBLTZhVYEEEDAugABbX0IKAABBBAwCxDQZhdaEUAAAesCBLT1IaAABBBAwCxAQJtdaEUAAQSsCxDQ1oeAAhBAAAGzAAFtdqEVAQQQsC5AQFsfAgpAAAEEzAIEtNmFVgQQQMC6AAFtfQgoAAEEEDALENBmF1oRQAAB6wIEtPUhoAAEEEDALEBAm11oRQABBKwLENDWh4ACEEAAAbMAAW12oRUBBBCwLkBAWx8CCkAAAQTMAgS02YVWBBBAwLoAAW19CCgAAQQQMAsQ0GYXWhFAAAHrAgS09SGgAAQQQMAsQECbXWhFAAEErAsQ0NaHgAIQQAABswABbXahFQEEELAuQEBbHwIKQAABBMwCBLTZhVYEEEDAugABbX0IKAABBBAwCxDQZhdaEUAAAesCBLT1IaAABBBAwCzgqYAuKyuTq1evmiulFQEEEPCZgPWA3rhxowwcOFDatm0rnTp1krCwMOnZs6ekp6fL2bNnfTYcHC4CCCBQI2A1oLdt2yYzZsyQxYsXS1FRkVRUVEh5ebnk5uZKmzZtZPz48TWVcg8BBBDwmYDVgM7JyZE5c+bImDFj9Nlzq1atJDw8XHr37i3Lli2To0ePipr2YEEAAQT8KGA1oBMTE/XZcmVlZT37vXv3SklJiURGRtbbRgMCCCDgB4FQmweZmpoqmZmZes550KBB+iz60qVLUlhYKCqgV69eLaGhVku0ycNzI4CAzwWspl9ERIRs2LBB8vPz5dChQ3pKQ01xxMTEyOjRozl79vkvJ4ePgN8FrAZ0FX5CQoKoW+1FXcGRnZ0tKSkptZsbvL9p0yYxTZWoB6izchYEEECguQl4IqBNaAUFBZKWlibFxcWmzfXajh8/rq8CqbfhekNDwW3alzYEEEDAKwIh164vXikmWHV07txZT6FER0cH6ynoFwEEEHBNYNy4cfr1OatXcbh2NHSEAAIItEABAroFDiqHhAACLUPA6hx0VlaW7Nu3r1HJ2bNnN7qdjQgggEBLFbAa0CEhIfLSSy+JesNK//79W6oxx4UAAgjcloDVgFaX0G3evFlfraHe9q2ui2ZBAAEEEPifgPU56OTkZHn22WclLy+PMUEAAQQQqCVg9Qy6qo65c+dW3eUnAggggMANAetn0IwEAggggIBZgIA2u9CKAAIIWBcgoK0PAQUggAACZgEC2uxCKwIIIGBdgIC2PgQUgAACCJgFCGizC60IIICAdQEC2voQUAACCCBgFiCgzS60IoAAAtYFCGjrQ0ABCCCAgFmAgDa70IoAAghYFyCgrQ8BBSCAAAJmAQLa7EIrAgggYF2AgLY+BBSAAAIImAUIaLMLrQgggIB1AQLa+hBQAAIIIGAWIKDNLrQigAAC1gUIaOtDQAEIIICAWYCANrvQigACCFgXIKCtDwEFIIAAAmYBAtrsQisCCCBgXYCAtj4EFIAAAgiYBQhoswutCCCAgHUBAtr6EFAAAgggYBYgoM0utCKAAALWBQho60NAAQgggIBZgIA2u9CKAAIIWBcgoK0PAQUggAACZgEC2uxCKwIIIGBdgIC2PgQUgAACCJgFCGizC60IIICAdQEC2voQUAACCCBgFiCgzS60IoAAAtYFCGjrQ0ABCCCAgFmAgDa70IoAAghYFyCgrQ8BBSCAAAJmAQLa7EIrAgggYF2AgLY+BBSAAAIImAUIaLMLrQgggIB1AQLa+hBQAAIIIGAWIKDNLrQigAAC1gUIaOtDQAEIIICAWYCANrvQigACCFgXIKCtDwEFIIAAAmYBAtrsQisCCCBgXYCAtj4EFIAAAgiYBQhoswutCCCAgHUBAtr6EFAAAgggYBYgoM0utCKAAALWBQho60NAAQgggIBZwHMBffHiRSktLTVXSysCCCDgIwGrAZ2RkSErVqzQ3JWVlTJ9+nTp3r27xMTEyNixY+XgwYM+GgoOFQEEEKgrYDWgi4qK5NixY7qirVu3yq5du2Tnzp2i2pOTk2XChAl1q2UNAQQQ8JGA1YCu7bxp0yZ9Bh0fHy9RUVEya9YsuXz5spw6dar2btxHAAEEfCNgPaAPHz4sBw4ckKFDh0phYWE1/OnTpyU0NFSio6Or27iDAAII+EnAGNBqbvjatWt1HN59913Jzc2t0/b/rgwZMkSH8Pjx42Xq1Kkyb948uXLliuTl5UmfPn0kLS1NQkJC/t+n4fEIIIBAsxQINVX91ltvibqtXbtWwsPD9dTD9u3bRc0Tu7kkJSWJuqnl3Llzsn//fmndurV+oVCFdFxcnJtPR18IIIBAsxIwBnRWVpYsWrRIHnzwQWnTpo18/etfl3//+98SGRkZtINr3769DB48WPcfGxsrZ8+elezsbElJSQnoOZ9//nm5evWqcV8V/iwIIIBAcxMwBrSa3lBnsmq6Qf1U0wxNPdVQUFCgpziKi4sDMn3mmWdEXapnWn7729+ammlDAAEEPC1gDOhRo0bpOejdu3dLx44d9RTH/fffr6c4+vXr1yQH1L9/fwk0nFVB6uqPhhb1YiMLAggg0NwEjC8STp48Wf785z+LmmpQ0xpr1qyRpUuXyokTJ4J6fGVlZQ1OUwT1iekcAQQQ8KCAMaC/973vSatWdTc9/vjjMnLkSNcPYePGjTJw4EBp27atdOrUScLCwqRnz56Snp6u56Fdf0I6RAABBJqJQN0UbuKit23bJjNmzJDFixfrdw9WVFRIeXm5vpxPvTipLr9jQQABBPwqYDWgc3JyZM6cOTJmzBh99qzO2tVlfb1795Zly5bJ0aNHRU17sCCAAAJ+FLAa0ImJifps2XT1xd69e6WkpCSol/b5ccA5ZgQQaD4CVi9vSE1NlczMTD3nPGjQIH0WfenSJf2WbxXQq1ev1u80bD6cVIoAAgi4J2A1oCMiImTDhg2Sn58vhw4d0lMaaopDfdzo6NGjOXt2b5zpCQEEmqGA1YCu8kpISBB1Y0EAAQQQqBGwOgddUwb3EEAAAQScAgS0U4R1BBBAwCMCBLRHBoIyEEAAAacAAe0UYR0BBBDwiAAB7ZGBoAwEEEDAKUBAO0VYRwABBDwiQEB7ZCAoAwEEEHAKENBOEdYRQAABjwgQ0B4ZCMpAAAEEnAIEtFOEdQQQQMAjAgS0RwaCMhBAAAGnAAHtFGEdAQQQ8IgAAe2RgaAMBBBAwClAQDtFWEcAAQQ8IkBAe2QgKAMBBBBwChDQThHWEUAAAY8IENAeGQjKQAABBJwCBLRThHUEEEDAIwIEtEcGgjIQQAABpwAB7RRhHQEEEPCIAAHtkYGgDAQQQMApQEA7RVhHAAEEPCJAQHtkICgDAQQQcAoQ0E4R1hFAAAGPCBDQHhkIykAAAQScAgS0U4R1BBBAwCMCBLRHBoIyEEAAAacAAe0UYR0BBBDwiAAB7ZGBoAwEEEDAKUBAO0VYRwABBDwiQEB7ZCAoAwEEEHAKENBOEdYRQAABjwgQ0B4ZCMpAAAEEnAIEtFOEdQQQQMAjAgS0RwaCMhBAAAGnQKizgXUEEEAAAfcEzp8/L2vWrJEzZ85Ir1695Kmnngq4c86gA6ZiRwQQQODWBK5cuSJ9+vSRc+fOycMPPyzr1q2TlJQUqaioCKgjAjogJnZCAAEEbl1g2bJl+ox59uzZkpycLFu3bpUvfelL8s477wTUGQEdEBM7IYAAArcucPz4cXnmmWfqPFCdQZ84caJOW0MrBHRDMrQjgAAC/6dAx44dJS8vr04v7777rqj2QBZeJAxEiX0QQACB2xCYPn26dOnSRUpLS2X06NGyceNG+fDDD2XVqlUB9cYZdEBM7IQAAgjcukDnzp1FXcVx9uxZ+dWvfiWdOnWSjz76SO64446AOuMMOiAmdkIAAQRuT6Bdu3aycOHC23owZ9C3xcaDEEDAKXDhwgUdRGPHjpVx48bVm3t17s/6zQUI6JsbsQcCCNxEoLKyUgYOHChXr16V9evXi7q8bMGCBbJ9+/abPJLNjQkQ0I3psA0BBAISyMrK0gG9ePFi6dChg/Tt21d+/vOfy8qVKwN6PDuZBQhoswutCCBwCwLqnXKDBg2q84h77rlHPv/88zptrNyagKcCuqysTP+JdGuHwN4IIGBbICEhQbZs2SLq33DVoqY67r777qpVft6GgPWAVtcFqrmrtm3b6ktQwsLCpGfPnpKenq4vTbmNY+IhCCDQxAL33XefPP3009K1a1d54403ZM6cOZKZmSmrV69u4kpa1tNZDeht27bJjBkzRM1bFRUV6Q8QKS8vl9zcXGnTpo2MHz++ZWlzNAi0YIGJEyfqa3zVydaDDz4ov//97yU8PLwFH3HwD83qddA5OTn6/7RjxoypPlI1oL1799avAsfFxek/mQJ9W2R1J9xBAAErAl/5yldE3VjcEbB6Bp2YmKjPltUlOs5l7969UlJSIpGRkc5NrCOAAAK+ELB6Bp2amqrnqdScs3oFWL0N8tKlS1JYWCgqoNX8VWio1RJ98UvAQSKAgDcFrKZfRESEbNiwQfLz8+XQoUNy9OhRPWcVExOjP1iEs2dv/tJQFQIINI2A1YCuOkR1iY66sSCAAAII1Ah4IqBryqm5pz796YMPPtBfD1PT2vA99VF+6utlTAsXy5tUaEMAAa8LeDagCwoKJC0tTYqLiwMyVJfsNbSoj/xjQQABBJqbgNWrOJxYtd9J2L9//4DD2dkP6wgggEBLELAe0LyTsCX8GnEMCCAQDAGrAc07CYMxpPSJAAItRcBqQNd+J6G6BrpVq1b6MruqdxKqy+5qf/hKS0HnOBBAAIFABKwGNO8kDGSI2AcBBPwqYPUqDt5J6NdfO44bAQQCEbAa0LyTMJAhYh8EEPCrgNWArkLnnYRVEvxEAAEEagSszkHXlME9BBBAAAGnAAHtFGEdAQQQ8IgAAe2RgaAMBBBAwClAQDtFWEcAAQQ8IkBAe2QgKAMBBBBwChDQThHWEUAAAY8IENAeGQjKQAABBJwCBLRThHUEEEDAIwIEtEcGgjIQQAABpwAB7RRhHQEEEPCIAAHtkYGgDAQQQMApQEA7RVhHAAEEPCJAQHtkICgDAQQQcAoQ0E4R1hFAAAGPCBDQHhkIykAAAQScAgS0U4R1BBBAwCMCBLRHBoIyEEAAAaeAJ75RxVkU694S2L17t5SWlkrPnj2lX79+3iqOahBowQKcQbfgwXXj0J5//nn52c9+Jvv27ZORI0fKypUr3eiWPhBAIAABzqADQPLrLmvXrpX33ntPjhw5ogmee+45SUlJkfvvv1+GDRvmVxaOG4EmE+AMusmom98Tffjhh7Jly5bqwtu1ayfqjFq1syCAQPAFCOjgGzfbZwgPD5eysrI69R8/flxUOwsCCARfgIAOvnGzfYbJkyfLggUL5OOPP9bHkJOTI2qaY9KkSc32mCgcgeYkwBx0cxqtJq51wIABsmTJEpk4caJERUVJjx495D//+Y907NixiSvh6RDwpwAB7c9xD/ioH3roIfn73/8e8P7siAAC7gkwxeGeJT0hgAACrgoQ0K5y0hkCCCDgngAB7Z4lPSGAAAKuChDQrnLSGQIIIOCeAAHtniU9IYAAAq4KENCuctIZAggg4J4AAe2eJT0hgAACrgoQ0K5y0hkCCCDgngAB7Z4lPSGAAAKuChDQrnLSGQIIIOCeAAHtniU9IYAAAq4KENCuctIZAggg4J4AAe2eJT0hgAACrgoQ0K5y0hkCCCDgngAB7Z4lPSGAAAKuChDQrnLSGQIIIOCeAAHtniU9IYAAAq4KENCuctIZAggg4J4AAe2eJT0hgAACrgoQ0K5y0hkCCCDgngAB7Z4lPSGAAAKuCnguoC9evCilpaWuHiSdIYAAAs1RwGpAZ2RkyIoVK7RbZWWlTJ8+Xbp37y4xMTEyduxYOXjwYHM0pWYEEEDAFQGrAV1UVCTHjh3TB7J161bZtWuX7Ny5U1R7cnKyTJgwwZWDpBMEEECgOQpYDejaYJs2bdJn0PHx8RIVFSWzZs2Sy5cvy6lTp2rvxn0EEEDANwLWA/rw4cNy4MABGTp0qBQWFlbDnz59WkJDQyU6Orq6jTsIIICAnwSsBvSQIUN0CI8fP16mTp0q8+bNkytXrkheXp706dNH0tLSJCQkxE/jwbEigAAC1QKh1fcs3ElKShJ1U8u5c+dk//790rp1a/1CoQrpuLg4C1XxlAgggIA3BKyeQdcmaN++vQwePFg3xcbGSrdu3SQ7O7v2LtxHAAEEfCXgmYB2qhcUFOgpDmc76wgggIBfBKxOcTSG3L9/fykuLm5slzrbysrK5Nq1a3XaqlbUNdYsCCCAQHMT8FRAq5CNjIzULxzeKuS0adP0C4ymx6kXHlkQQACB5iZgPaA3btwoS5YskX379unrnu+44w7p0aOHpKSk6PY777wzINP169c3uN8TTzzR4DY2IIAAAl4VsDoHvW3bNpkxY4YsXrxYv3uwoqJCysvLJTc3V9q0aSPq8jsWBBBAwK8CVgM6JydH5syZI2PGjJFOnTpJq1atJDw8XHr37i3Lli2To0ePipr2YEEAAQT8KGA1oBMTE/XZsulFvL1790pJSYmek/bjwHDMCCCAgNU56NTUVMnMzJSePXvKoEGD9Fn0pUuX9Fu+VUCvXr36tl4wvJ1hVW+UUXPh6gOb1NUgL774ojzyyCO30xWPQQABBFwRsBrQERERsmHDBsnPz5dDhw7pKQ01xaE+bnT06NFNdvas5r4TEhJk8uTJsnnzZn15X9VVIaoOFgQQQMCGgNUpjqoDVuH45JNP6k+wCwsLkw4dOjRZOKsa1Fn8iBEjZP78+XoOvFevXrJy5UpZtWpVVYn8RAABBJpcwBMBXfuod+zY0eQf1P/FF1+IemNM7eXuu++WM2fO1G7iPgIIINCkAp4L6CY9+htP9sADD4j6POraX7W1bt06uffee22Uw3MigAACWsDqHLRpDIYPH64vszNtC1Zb3759JT09Xbp06SLLly+X48eP6/nwNWvWBOsp6RcBBBC4qYDnAnrKlCk3LToYO6grStTHnX700UeiPk1v0aJF+s0ywXgu+kQAAQQCEfBcQAdSdLD2UWfS6saCAAIIeEGAOWgvjAI1IIAAAgYBAtqAQhMCCCDgBQEC2gujQA0IIICAQYCANqDQhAACCHhBgID2wihQAwIIIGAQ8MVVHOrT8tS3qpw+fdpAQBMCCCDgLQH1+UBq8UVAx8XFibq+um3btjcdBfVlASEhIaK+2YWlRuDzzz/Xn5FS08K9y5cvi/qHpD7gi6VGQH3pRrt27fg3VEOi76lPzPzGN77haDWvRkVF6Q0h1z9a0/xNq+bHtfjWp59+Wn7yk5/wNm/HSKuPXv3LX/7iaPX3alZWlv7cmJkzZ/obwnH0/BtygNxYvZ1/Q8xBmy1pRQABBKwLENDWh4ACEEAAAbMAAW12oRUBBBCwLkBAWx8CCkAAAQTMAgS02YVWBBBAwLoAAe0YgtDQUH2ZnaPZ96utW7f2vYEToFWrVlxK5kS5vs6/IQPK9abb+TfEZXZmS1oRQAAB6wKcQVsfAgpAAAEEzAIEtNmFVgQQQMC6AAFtfQgoAAEEEDALENBmF1oRQAAB6wIEtPUhoAAEEEDALEBAm11oRQABBKwLENDWh4ACEEAAAbMAAW12oRUBBBCwLkBAG4ZAffsKCwIIIGBbgIB2jMBbb70lQ4YMcbT6d1V5jBgxQhISEuQ73/mO/oB6/2r878jVt6jMmDFDBgwYIPfdd58sX77c7yR1jv/s2bP6Cy/+9Kc/1Wn364r6ApDY2Njq26OPPhowhS++8ioQjbKyMpk3b568/fbbcs899wTykBa/T3FxsQ6i/Px86dq1q6xZs0Z++MMfyh//+McWf+yNHeAvfvEL+fTTT2XPnj1y4cIFUV+ppv6n/tWvfrWxh/lmm/odUSHN8j+BHTt2yOuvvy7Jycm6QX2GS6BL4HsG2mMz3U99F6H6HrWMjIxmegTul62+bFf9D0uFs1rUWfTf/vY395+omfU4depU+c1vfiPqH5q6VX03YTM7jKCU+/7770tYWJj+n1ZQnqAZdqpOcNT/vA8fPixXr17VPoEeBgF9Q+qJJ56QV199lS8ArfWb0717dxk+fHh1yxtvvBHwl15WP6gF3lFfPhwZGSnr16+XYcOGaROmxUROnjwpixYtkiVLlrTAUb+9Qzp27Jj+ayIpKUn/nqi/zrdv3x5wZwR0wFT+3vHNN9+ULVu2yNKlS/0NUevo1be/qznof/zjH8zNX3dRf1mo+dY777yzlpK/76opsMmTJ8sHH3wgR48elRdeeEFeeeWVgFEI6ICp/Lvj6tWr5cUXXxT1ok+PHj38C+E48ieffFLWrl0rDz/8sKxYscKx1V+r6q+JTz75RB90ZmamnDlzRvLy8qSgoMBfEI6jVa9P/PKXv5SoqCj92eHp6emi5qRLSkoce5pXCWizC603BNSc/MKFC3U4f/nLX8blusCvf/1r2bVrV7VFfHy8nl+sbvDhnfLycmnfvr28/PLL+lZYWCjqCiD114Wfl3/961/69Yoqg0uXLkmbNm30FFlVW2M/CejGdHy+7ciRI/Lcc8/puVY1H11aWqpvPmfRLwrOnz9fv+CjzhTVWfQjjzzia5YpU6boF5DVi8jqpqZ+XnvtNVGv7fh56dy5s0yfPl1f9aMuz1R/aY0aNSrgFwq5zM7Pvz03OfaVK1fK+fPn64WPalNXvPh1mTRpkuzcuVOq/qJITU2VmTNn+pWD425EICYmRv8FqkJZnT137NhRNm7c2Mgj6m7iK6/qerCGQMAC6n9U6ooO9R18LAg0JnDt2jX912d0dHRju9XbRkDXI6EBAQQQ8IYAc9DeGAeqQAABBOoJEND1SGhAAAEEvCFAQHtjHKgCAQQQqCdAQNcjoQEBBBDwhgAB7Y1xoAoEEECgngABXY+EBgQQQMAbAgS0N8aBKhBAAIF6AgR0PRIaEEAAAW8IENDeGAeqQAABBOoJEND1SGhAAAEEvCFAQHtjHKgCAQQQqCdAQNcjoQEBBBDwhgAB7Y1xoAoEEECgngABXY+EBgQQQMAbAgS0N8aBKhBAAIF6AgR0PRIaEEAAAW8IENDeGAeqQAABBOoJEND1SGhAAAEEvCFAQHtjHKjCsoD60tf09PRbrqJbt27yySef3PLjeAACgQgQ0IEosQ8CCCBgQYCAtoDOU3pb4Kc//aksW7ZMkpKSJCoqSiZOnCgXLlzQRX/66acyduxYueuuu+QHP/iBVFZWVh/MX//6V0lISNCPSU1NlVOnTon6NufHH39cVq5cWf34AQMGyJEjR6ofxx0EGhIgoBuSod23AiUlJbJkyRL58Y9/LPn5+bJnzx55++23tcd3v/td6dOnj26/ePGiqH3Von5+85vflB/96Edy8OBB6dChg7zyyisSEhIiL7zwgsydO1c+++wzmTZtmg74Xr166cfxHwQaEyCgG9Nhm28FHnvsMRkzZozce++9Mnr0aCkoKJDS0lLZsWOHDtuYmBiZP39+tc8f/vAHiY+Pl0cffVQiIiL0PtnZ2Xr71772NX0WXtXPggULqh/HHQQaEwhtbCPbEPCrQJcuXaoPXQXu1atX5eOPP5YePXpI165d9TYV0uqmluPHj8u+ffukb9++er3qPydOnND7qBchX3/9dXnttdekbdu2VZv5iUCjApxBN8rDRr8KqKkJ5xIbGyuFhYVy5swZven8+fNy8uRJff+hhx4SdaZcVFRUfVNTI927d9fbFy5cKCNHjtRTJ2VlZc6uWUfAKEBAG1loRKC+gLqkrl+/fpKRkaE3rl+/Xq5cuaLvjxo1Snbt2iX//Oc/9fq6dev0FIl6ETEnJ0dyc3PlvffeE7WfOptmQSAQAaY4AlFiHwRuCKgXC7/1rW/pqzzU/LQ6q1ZLeHi4vPzyyzJs2DA9paHWV61aJeqFxO9///uyfPlyiYyMlKVLl+qQf+qpp2TEiBE3euUHAmaBkOuXAV0zb6IVAQQaEjh9+rRER0fX21xRUaGnQEzb6u1MAwI3ESCgbwLEZgQQQMCWwH8BBpMcJ89IDMMAAAAASUVORK5CYII=" alt="plot of chunk test-b"/></p>
+
+<p>Actually you do not have to write chunk options, in which case knitr will use
+default options. For example, the code below has no options attached:</p>
+
+<pre><code class="r">var(x)
+</code></pre>
+
+<pre><code>## [1] 0.6577564
+</code></pre>
+
+<pre><code class="r">quantile(x)
+</code></pre>
+
+<pre><code>##          0%         25%         50%         75%        100% 
+## -0.56047565 -0.23017749  0.07050839  0.12928774  1.55870831
+</code></pre>
+
+<p>And you can also write two chunks successively like this:</p>
+
+<pre><code class="r">sum(x^2)  # chi-square distribution with df 5
+</code></pre>
+
+<pre><code>## [1] 2.818373
+</code></pre>
+
+<pre><code class="r">sum((x - mean(x))^2)  # df is 4 now
+</code></pre>
+
+<pre><code>## [1] 2.631026
+</code></pre>
+
+<p>Done. Call spin(&#39;knitr-spin.R&#39;) to make silk from sow&#39;s ear now and knit a
+lovely purse.</p>
+
+</body>
+
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-spin.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-subfloats.lyx
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-subfloats.lyx	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-subfloats.lyx	(revision 2476)
@@ -0,0 +1,332 @@
+#LyX 2.0 created this file. For more info see http://www.lyx.org/
+\lyxformat 413
+\begin_document
+\begin_header
+\textclass article
+\begin_preamble
+\renewcommand{\textfraction}{0.05}
+\renewcommand{\topfraction}{0.8}
+\renewcommand{\bottomfraction}{0.8}
+\renewcommand{\floatpagefraction}{0.75}
+\end_preamble
+\use_default_options true
+\begin_modules
+knitr
+\end_modules
+\maintain_unincluded_children false
+\language english
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman default
+\font_sans default
+\font_typewriter default
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100
+\font_tt_scale 100
+
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_amsmath 1
+\use_esint 1
+\use_mhchem 1
+\use_mathdots 1
+\cite_engine basic
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\use_refstyle 1
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\quotes_language english
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Standard
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+<<setup, include=FALSE>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+library(knitr)
+\end_layout
+
+\begin_layout Plain Layout
+
+opts_chunk$set(fig.path='figure/subfloats-')
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Title
+Using subfloats in LyX with knitr
+\end_layout
+
+\begin_layout Author
+Yihui Xie
+\end_layout
+
+\begin_layout Standard
+If you insert a float figure inside a float figure in LyX, you will get
+ subfloats.
+ To make sure the two subfloats can stand side by side, you have to:
+\end_layout
+
+\begin_layout Enumerate
+remove new lines between the two subfloat environments in LyX (if you are
+ not sure if there are blank lines between them, check the LaTeX source);
+\end_layout
+
+\begin_layout Enumerate
+use the chunk option 
+\family typewriter
+echo=FALSE
+\family default
+ to hide the R source code in the output;
+\end_layout
+
+\begin_layout Enumerate
+set 
+\family typewriter
+out.width
+\family default
+ to be less than half of the linewidth if you do not want the sub figures
+ to exceed the page margin;
+\end_layout
+
+\begin_layout Enumerate
+most importantly, leave a blank line in the beginning of the subfloat environmen
+t, so that 
+\family typewriter
+<<>>=
+\family default
+ starts in a new line and 
+\series bold
+knitr
+\series default
+ can recognize it;
+\end_layout
+
+\begin_layout Standard
+Figure 
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "fig:knitr-subfloat"
+
+\end_inset
+
+ is an example.
+\end_layout
+
+\begin_layout Standard
+This document was compiled with 
+\series bold
+knitr
+\series default
+ 
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+Sexpr{packageVersion('knitr')}
+\end_layout
+
+\end_inset
+
+.
+ Rnw source at 
+\begin_inset Flex URL
+status collapsed
+
+\begin_layout Plain Layout
+
+https://github.com/yihui/knitr/blob/master/inst/examples/knitr-subfloats.Rnw
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Standard
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\begin_layout Plain Layout
+
+<<test-subfloat, echo=FALSE, out.width='.45
+\backslash
+
+\backslash
+linewidth'>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+plot(1)
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+this is a subfloat
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\begin_inset Float figure
+wide false
+sideways false
+status open
+
+\begin_layout Plain Layout
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+\end_layout
+
+\begin_layout Plain Layout
+
+<<test-another, echo=FALSE, out.width='.45
+\backslash
+
+\backslash
+linewidth'>>=
+\end_layout
+
+\begin_layout Plain Layout
+
+plot(rnorm(100))
+\end_layout
+
+\begin_layout Plain Layout
+
+@
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+another float
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Caption
+
+\begin_layout Plain Layout
+one figure with 2 sub figures
+\begin_inset CommandInset label
+LatexCommand label
+name "fig:knitr-subfloat"
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_inset
+
+
+\end_layout
+
+\end_body
+\end_document
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-input-child.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-input-child.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-input-child.Rnw	(revision 2476)
@@ -0,0 +1,9 @@
+This chunk below is from the child document.
+
+<<test-child, out.width='2in', fig.show='asis'>>=
+1+1
+rnorm(5)
+plot(1)
+boxplot(1:10)
+str(mtcars)
+@
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-child.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-child.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-child.Rmd	(revision 2476)
@@ -0,0 +1,7 @@
+Hi, there. I'm a child.
+
+```{r test-child}
+options(digits = 4)
+1+1
+dnorm(0)
+```
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/sub/knitr-child-c.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/sub/knitr-child-c.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/sub/knitr-child-c.Rnw	(revision 2476)
@@ -0,0 +1,5 @@
+\section{Child in a sub directory}
+
+<<test-d>>=
+1+1 # child d
+@
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-main.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-main.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-main.Rmd	(revision 2476)
@@ -0,0 +1,10 @@
+You can also use the `child` option to include child documents in markdown.
+
+```{r test-main, child='knitr-child.Rmd'}
+```
+
+You can continue your main document below, of course.
+
+```{r test-another}
+pmax(1:10, 5)
+```
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-child-a.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-child-a.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-child-a.Rnw	(revision 2476)
@@ -0,0 +1,7 @@
+\section{Child via the \texttt{child} option}
+
+This chunk below is from the chunk option \texttt{child}.
+
+<<test-a>>=
+1+1 # child a
+@
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-child-b.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-child-b.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-child-b.Rnw	(revision 2476)
@@ -0,0 +1,5 @@
+\section{Another child via the \texttt{child} option}
+
+<<test-b>>=
+1+1 # child b
+@
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-main.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-main.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-main.Rnw	(revision 2476)
@@ -0,0 +1,15 @@
+\documentclass{article}
+\usepackage{mathpazo}
+\begin{document}
+This main document has several children.
+
+<<test-main>>=
+1+1
+@
+<<test-child, child=c('knitr-child-a.Rnw', 'knitr-child-b.Rnw')>>=
+@
+
+<<test-child-dir, child='sub/knitr-child-c.Rnw'>>=
+@
+
+\end{document}
\ No newline at end of file
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-parent.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-parent.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/child/knitr-parent.Rnw	(revision 2476)
@@ -0,0 +1,15 @@
+\section{Child can specify its parents}
+
+<<setup, include=FALSE>>=
+set_parent('knitr-main.Rnw')
+@
+
+My parent is \textsf{knitr-main.Rnw}.
+
+<<test-e>>=
+1+1
+@
+
+I'm not a complete LaTeX document, but you can compile me nonetheless. I'll
+borrow the preamble from my parent.
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-latex.Rtex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-latex.Rtex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-latex.Rtex	(revision 2476)
@@ -0,0 +1 @@
+See https://github.com/yihui/knitr-examples/blob/master/005-latex.Rtex
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/Sweavel.sty
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/Sweavel.sty	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/Sweavel.sty	(revision 2476)
@@ -0,0 +1,60 @@
+% Source: http://biostat.mc.vanderbilt.edu/wiki/pub/Main/SweaveTemplate/Sweavel.sty
+% Author: Frank Harrell (with slight tweaks by Yihui Xie)
+% Usage: \usepackage{Sweavel}
+% To change size of R code and output, use e.g.: \def\Sweavesize{\normalsize}
+% To change just the size of output, use e.g.: \def\Routsize{\smaller[2]}
+% To change colors of R code, output, and commands, use e.g.:
+% \def\Rcolor{\color{black}}
+% \def\Routcolor{\color{green}}
+% \def\Rcommentcolor{\color{red}}
+% To change background color or R code and/or output, use e.g.:
+% \def\Rbackground{\color{white}}
+% \def\Routbackground{\color{white}}
+% To use rgb specifications use \color[rgb]{ , , }
+% To use gray scale use e.g. \color[gray]{0.5}
+% If you change any of these after the first chunk is produced, the
+% changes will have effect only for the next chunk.
+
+
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{Sweavel}{}  % substitute for Sweave.sty using
+                             % listings package with relsize
+\RequirePackage{listings,fancyvrb,color,relsize}
+
+\providecommand{\Sweavesize}{\smaller}
+\providecommand{\Routsize}{\Sweavesize}
+
+\providecommand{\Rcolor}{\color[rgb]{0, 0.5, 0.5}}
+\providecommand{\Routcolor}{\color[rgb]{0.461, 0.039, 0.102}}
+\providecommand{\Rcommentcolor}{\color[rgb]{0.101, 0.043, 0.432}}
+
+\providecommand{\Rbackground}{\color[gray]{0.91}}
+\providecommand{\Routbackground}{\color[gray]{0.935}}
+% Can specify \color[gray]{1} for white background or just \color{white}
+
+\lstdefinestyle{Rstyle}{fancyvrb=false,escapechar=`,language=R,%
+                        basicstyle={\Rcolor\Sweavesize},% some want \ttfamily too
+                        backgroundcolor=\Rbackground,%
+                        showstringspaces=false,%
+                        keywordstyle=\Rcolor,%
+                        commentstyle={\Rcommentcolor\ttfamily\itshape},%
+                        literate={<-}{{$\leftarrow$}}2{<<-}{{$\twoheadleftarrow$}}2{~}{{$\sim$}}1{<=}{{$\leq$}}2{>=}{{$\geq$}}2{^}{{$^{\scriptstyle\wedge}$}}1,%
+                        alsoother={$},%
+                        alsoletter={.<-},%
+                        otherkeywords={!,!=,~,$,*,\&,\%/\%,\%*\%,\%\%,<-,<<-,/},%
+                        escapeinside={(*}{*)}}%
+% Other options of interest:
+% frame=single,framerule=0.1pt,framesep=1pt,rulecolor=\color{blue},
+% numbers=left,numberstyle=\tiny,stepnumber=1,numbersep=7pt,
+% keywordstyle={\bf\Rcolor}
+
+\lstdefinestyle{Routstyle}{fancyvrb=false,literate={~}{{$\sim$}}1{R^2}{{$R^{2}$}}2{^}{{$^{\scriptstyle\wedge}$}}1{R-squared}{{$R^{2}$}}2,%
+ frame=single,framerule=0.2pt,framesep=1pt,basicstyle=\Routcolor\Routsize\ttfamily,%
+ backgroundcolor=\Routbackground}
+
+\newenvironment{Schunk}{}{}
+\lstnewenvironment{Sinput}{\lstset{style=Rstyle}}{}
+\lstnewenvironment{Scode}{\lstset{style=Rstyle}}{}
+\lstnewenvironment{Soutput}{\lstset{style=Routstyle}}{}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-beamer.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-beamer.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/examples/knitr-beamer.Rnw	(revision 2476)
@@ -0,0 +1,120 @@
+%% LyX 2.2.1 created this file.  For more info, see http://www.lyx.org/.
+%% Do not edit unless you really know what you are doing.
+\documentclass[10pt]{beamer}
+\usepackage[T1]{fontenc}
+\setcounter{secnumdepth}{3}
+\setcounter{tocdepth}{3}
+\usepackage{url}
+\ifx\hypersetup\undefined
+  \AtBeginDocument{%
+    \hypersetup{unicode=true,pdfusetitle,
+ bookmarks=true,bookmarksnumbered=false,bookmarksopen=false,
+ breaklinks=false,pdfborder={0 0 0},pdfborderstyle={},backref=false,colorlinks=false}
+  }
+\else
+  \hypersetup{unicode=true,pdfusetitle,
+ bookmarks=true,bookmarksnumbered=false,bookmarksopen=false,
+ breaklinks=false,pdfborder={0 0 0},pdfborderstyle={},backref=false,colorlinks=false}
+\fi
+\usepackage{breakurl}
+
+\makeatletter
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
+\providecommand{\LyX}{\texorpdfstring%
+  {L\kern-.1667em\lower.25em\hbox{Y}\kern-.125emX\@}
+  {LyX}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Textclass specific LaTeX commands.
+ % this default might be overridden by plain title style
+ \newcommand\makebeamertitle{\frame{\maketitle}}%
+ % (ERT) argument for the TOC
+ \AtBeginDocument{%
+   \let\origtableofcontents=\tableofcontents
+   \def\tableofcontents{\@ifnextchar[{\origtableofcontents}{\gobbletableofcontents}}
+   \def\gobbletableofcontents#1{\origtableofcontents}
+ }
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
+\usetheme{PaloAlto}
+
+\makeatother
+
+\begin{document}
+<<setup, include=FALSE>>=
+library(knitr)
+opts_chunk$set(fig.path='figure/beamer-',fig.align='center',fig.show='hold',size='footnotesize')
+@
+
+\title[knitr, Beamer, and FragileFrame]{A Minimal Demo of knitr with Beamer and Fragile Frames}
+
+\author{Yihui Xie\thanks{I thank Richard E. Goldberg for providing this demo.}}
+\makebeamertitle
+\begin{frame}{Background}
+
+\begin{itemize}
+\item The \textbf{knitr}\textbf{\emph{ }}package allows you to embed R code
+and figures in \LaTeX{} documents
+
+\begin{itemize}
+\item It has functionality similar to Sweave but looks nicer and gives you
+more control
+\end{itemize}
+\item If you already have Sweave working in \LyX{}, getting \textbf{knitr}
+to work is trivial
+
+\begin{enumerate}
+\item Install the \textbf{knitr} package in \emph{R}
+\item Read \url{http://yihui.name/knitr/demo/lyx/}
+\end{enumerate}
+\item If you use Sweave or \textbf{knitr} with Beamer in \LyX{}, you must
+use the\emph{ FragileFrame} environment for the frames that contain
+R code chunks. Let's see if \textbf{knitr} works with Beamer in this
+small demo. 
+\end{itemize}
+\end{frame}
+
+\section{First Test}
+\begin{frame}[fragile]{First Test}
+
+OK, let's get started with just some text:
+
+<<echo=FALSE,results='hide'>>=
+# some setup
+options(width=60)  # make the printing fit on the page
+set.seed(1121)   # make the results repeatable
+@
+
+<<>>= 
+# create some random numbers
+(x=rnorm(20))  
+mean(x);var(x)  
+@
+
+BTW, the first element of \texttt{x} is \Sexpr{x[1]}. (Did you notice
+the use of\texttt{ \textbackslash{}Sexpr\{\}}?)
+\end{frame}
+
+\section{Second Test}
+\begin{frame}[fragile]{Second Test}
+
+Text is nice but let's see what happens if we make a couple of plots
+in our chunk:
+
+<<boring-plots,fig.width=4,fig.height=4,out.width='.45\\linewidth'>>=
+par(las=1,mar=c(4,4,.1,.1))  # tick labels direction
+boxplot(x) 
+hist(x,main='',col="blue",probability=TRUE) 
+lines(density(x),col="red")
+@
+\end{frame}
+
+\section{The Big Question}
+\begin{frame}{The Big Question}
+
+Do the above chunks work? You should be able to compile the \LyX{}
+document and get a nice-looking PDF slide presentation. If not, time
+to double-check everything...
+\end{frame}
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/NEWS.Rd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/NEWS.Rd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/knitr/NEWS.Rd	(revision 2476)
@@ -0,0 +1,9 @@
+\name{NEWS}
+\title{News for Package 'knitr'}
+
+\section{CHANGES IN knitr VERSION 999.999}{
+  \itemize{
+    \item This NEWS file is only a placeholder. The version 999.999 does not really
+    exist. Please read the NEWS on Github: \url{https://github.com/yihui/knitr/releases}
+  }
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/FactoMineR/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/FactoMineR/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/FactoMineR/CITATION	(revision 2476)
@@ -0,0 +1,23 @@
+bibentry(bibtype = "Article",
+  title        = "{FactoMineR}: A Package for Multivariate Analysis",
+  author       = c(person(given = "S\\'ebastien",
+                          family = "L\\^e"),
+                   person(given = "Julie",
+                          family = "Josse"),
+                   person(given = "Fran\\c{c}ois",
+                          family = "Husson",
+						  email = "josse@agrocampus-ouest.fr")),
+  journal      = "Journal of Statistical Software",
+  year         = "2008",
+  volume       = "25",
+  number       = "1",
+  pages        = "1--18",
+  doi          = "10.18637/jss.v025.i01",
+
+  header       = "To cite FactoMineR in publications use:",
+  textVersion  =
+  paste("Sebastien Le, Julie Josse, Francois Husson (2008).",
+        "FactoMineR: An R Package for Multivariate Analysis.",
+        "Journal of Statistical Software, 25(1), 1-18.",
+        "10.18637/jss.v025.i01")
+)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/FactoMineR/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/FactoMineR/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/FactoMineR/NAMESPACE	(revision 2476)
@@ -0,0 +1,48 @@
+export(FAMD,AovSum,autoLab,CA,CaGalt,catdes,coeffRV,condes,coord.ellipse,descfreq,dimdesc,DMFA,ellipseCA,estim_ncp,GPA,graph.var,HCPC,HMFA,MCA,MFA,PCA,plot.CA,plot.CaGalt,plot.catdes,plot.DMFA,plot.FAMD,plot.GPA,plot.HCPC,plot.HMFA,plot.MCA,plot.MFA,plot.PCA,plotellipses,plotGPApartial,plotMFApartial,predict.CA,predict.FAMD,predict.MCA,predict.PCA,prefpls,print.AovSum,print.CA,print.CaGalt,print.FAMD,print.GPA,print.HCPC,print.HMFA,print.MCA,print.MFA,print.PCA,reconst,RegBest,simule,svd.triplet,summary.CA,summary.CaGalt,summary.FAMD,summary.MCA,summary.MFA,summary.PCA,tab.disjonctif,tab.disjonctif.prop,textual,write.infile)
+importFrom(stats,aggregate,aov,as.formula,as.hclust,chisq.test,cor,cov,cov.wt,cutree,dhyper,fitted.values,kmeans,lm,na.exclude,na.omit,pchisq,pgamma,pf,phyper,pnorm,printCoefmat,pt,qchisq,qnorm,rect.hclust,rmultinom,rnorm,runif,sd,summary.lm,vcov)
+importFrom(utils,modifyList)
+importFrom(graphics,abline,arrows,barplot,contour,image,layout,legend,lines,locator,par,points,plot,strheight,strwidth,text)
+importFrom(grDevices,dev.new,dev.off,rgb,col2rgb,xy.coords,palette,terrain.colors)
+importFrom(leaps,leaps)
+importFrom(MASS,ginv)
+importFrom(lattice,xyplot,ltext,llines,lpoints,panel.xyplot,panel.grid,trellis.par.get)
+importFrom(scatterplot3d,scatterplot3d)
+importFrom(cluster,agnes)
+importFrom(flashClust,hclust)
+importFrom(knitr,knit)
+
+S3method(plot, CA)
+S3method(plot, CaGalt)
+S3method(plot, catdes)
+S3method(plot, DMFA)
+S3method(plot, FAMD)
+S3method(plot, GPA)
+S3method(plot, HCPC)
+S3method(plot, HMFA)
+S3method(plot, MCA)
+S3method(plot, MFA)
+S3method(plot, PCA)
+
+S3method(print, AovSum)
+S3method(print, CA)
+S3method(print, CaGalt)
+S3method(print, FAMD)
+S3method(print, GPA)
+S3method(print, HCPC)
+S3method(print, HMFA)
+S3method(print, MCA)
+S3method(print, MFA)
+S3method(print, PCA)
+
+S3method(predict, CA)
+S3method(predict, FAMD)
+S3method(predict, MCA)
+S3method(predict, PCA)
+
+S3method(summary, CA)
+S3method(summary, CaGalt)
+S3method(summary, FAMD)
+S3method(summary, MCA)
+S3method(summary, MFA)
+S3method(summary, PCA)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/FactoMineR/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/FactoMineR/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/FactoMineR/DESCRIPTION	(revision 2476)
@@ -0,0 +1,20 @@
+Package: FactoMineR
+Version: 1.35
+Date: 2017-02-20
+Title: Multivariate Exploratory Data Analysis and Data Mining
+Author: Francois Husson, Julie Josse, Sebastien Le, Jeremy Mazet
+Maintainer: Francois Husson <francois.husson@agrocampus-ouest.fr>
+Depends: R (>= 3.3.0)
+Imports:
+        car,cluster,ellipse,flashClust,graphics,grDevices,lattice,leaps,MASS,scatterplot3d,stats,knitr,utils
+Suggests: missMDA
+Description: Exploratory data analysis methods to summarize, visualize and describe datasets. The main principal component methods are available, those with the largest potential in terms of applications: principal component analysis (PCA) when variables are quantitative, correspondence analysis (CA) and multiple correspondence analysis (MCA) when variables are categorical, Multiple Factor Analysis when variables are structured in groups, etc. and hierarchical cluster analysis.
+License: GPL (>= 2)
+URL: http://factominer.free.fr
+Encoding: latin1
+VignetteBuilder: knitr
+NeedsCompilation: no
+Packaged: 2017-02-20 12:32:55 UTC; husson
+Repository: CRAN
+Date/Publication: 2017-02-20 15:12:05
+Built: R 3.3.2; ; 2017-02-21 12:09:06 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/FactoMineR/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/FactoMineR/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/FactoMineR/INDEX	(revision 2476)
@@ -0,0 +1,115 @@
+AovSum                  Analysis of variance with the contrasts sum
+                        (the sum of the coefficients is 0)
+CA                      Correspondence Analysis (CA)
+CaGalt                  Correspondence Analysis on Generalised
+                        Aggregated Lexical Table (CaGalt)
+DMFA                    Dual Multiple Factor Analysis (DMFA)
+FAMD                    Factor Analysis for Mixed Data
+FactoMineR-package      Multivariate Exploratory Data Analysis and Data
+                        Mining with R
+GPA                     Generalised Procrustes Analysis
+HCPC                    Hierarchical Clustering on Principle Components
+                        (HCPC)
+HMFA                    Hierarchical Multiple Factor Analysis
+JO                      Number of medals in athletism during olympic
+                        games per country
+MCA                     Multiple Correspondence Analysis (MCA)
+MFA                     Multiple Factor Analysis (MFA)
+PCA                     Principal Component Analysis (PCA)
+RegBest                 Select variables in multiple linear regression
+autoLab                 Function to better position the labels on the
+                        graphs
+catdes                  Categories description
+children                Children (data)
+coeffRV                 Calculate the RV coefficient and test its
+                        significance
+condes                  Continuous variable description
+coord.ellipse           Construct confidence ellipses
+decathlon               Performance in decathlon (data)
+descfreq                Description of frequencies
+dimdesc                 Dimension description
+ellipseCA               Draw confidence ellipses in CA
+estim_ncp               Estimate the number of components in Principal
+                        Component Analysis
+footsize                footsize
+geomorphology           geomorphology(data)
+graph.var               Make graph of variables
+health                  health (data)
+hobbies                 hobbies (data)
+milk                    milk
+mortality               The cause of mortality in France in 1979 and
+                        2006
+plot.CA                 Draw the Correspondence Analysis (CA) graphs
+plot.CaGalt             Draw the Correspondence Analysis on Generalised
+                        Aggregated Lexical Table (CaGalt) graphs
+plot.DMFA               Draw the Dual Multiple Factor Analysis (DMFA)
+                        graphs
+plot.FAMD               Draw the Multiple Factor Analysis for Mixt Data
+                        graphs
+plot.GPA                Draw the General Procrustes Analysis (GPA) map
+plot.HCPC               Plots for Hierarchical Classification on
+                        Principle Components (HCPC) results
+plot.HMFA               Draw the Hierarchical Multiple Factor Analysis
+                        (HMFA) graphs
+plot.MCA                Draw the Multiple Correspondence Analysis (MCA)
+                        graphs
+plot.MFA                Draw the Multiple Factor Analysis (MFA) graphs
+plot.PCA                Draw the Principal Component Analysis (PCA)
+                        graphs
+plot.catdes             Plots for description of clusters (catdes)
+plotGPApartial          Draw an interactive General Procrustes Analysis
+                        (GPA) map
+plotMFApartial          Plot an interactive Multiple Factor Analysis
+                        (MFA) graph
+plotellipses            Draw confidence ellipses around the categories
+poison                  Poison
+poison.text             Poison
+poulet                  Genomic data for chicken
+predict.CA              Predict projection for new rows with
+                        Correspondence Analysis
+predict.FAMD            Predict projection for new rows with Factor
+                        Analysis of Mixed Data
+predict.MCA             Predict projection for new rows with Multiple
+                        Correspondence Analysis
+predict.MFA             Predict projection for new rows with Multiple
+                        Factor Analysis
+predict.PCA             Predict projection for new rows with Principal
+                        Component Analysis
+prefpls                 Scatter plot and additional variables with
+                        quality of representation contour lines
+print.AovSum            Print the AovSum results
+print.CA                Print the Correspondance Analysis (CA) results
+print.CaGalt            Print the Correspondence Analysis on
+                        Generalised Aggregated Lexical Table (CaGalt)
+                        results
+print.FAMD              Print the Multiple Factor Analysis of mixt Data
+                        (FAMD) results
+print.GPA               Print the Generalized Procrustes Analysis (GPA)
+                        results
+print.HCPC              Print the Hierarchical Clustering on Principal
+                        Components (HCPC) results
+print.HMFA              Print the Hierarchical Multiple Factor Analysis
+                        results
+print.MCA               Print the Multiple Correspondance Analysis
+                        (MCA) results
+print.MFA               Print the Multiple Factor Analysis results
+print.PCA               Print the Principal Component Analysis (PCA)
+                        results
+reconst                 Reconstruction of the data from the PCA, CA or
+                        MFA results
+senso                   senso
+simule                  Simulate by bootstrap
+summary.CA              Printing summeries of ca objects
+summary.CaGalt          Printing summaries of CaGalt objects
+summary.FAMD            Printing summeries of FAMD objects
+summary.MCA             Printing summeries of MCA objects
+summary.MFA             Printing summaries of MFA objects
+summary.PCA             Printing summeries of PCA objects
+svd.triplet             Singular Value Decomposition of a Matrix
+tab.disjonctif          Make a disjonctif table
+tab.disjonctif.prop     Make a disjunctive table when missing values
+                        are present
+tea                     tea (data)
+textual                 Text mining
+wine                    Wine
+write.infile            Print in a file
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/INDEX	(revision 2476)
@@ -0,0 +1,33 @@
+car.test.frame          Automobile Data from 'Consumer Reports' 1990
+car90                   Automobile Data from 'Consumer Reports' 1990
+cu.summary              Automobile Data from 'Consumer Reports' 1990
+kyphosis                Data on Children who have had Corrective Spinal
+                        Surgery
+labels.rpart            Create Split Labels For an Rpart Object
+meanvar.rpart           Mean-Variance Plot for an Rpart Object
+na.rpart                Handles Missing Values in an Rpart Object
+path.rpart              Follow Paths to Selected Nodes of an Rpart
+                        Object
+plot.rpart              Plot an Rpart Object
+plotcp                  Plot a Complexity Parameter Table for an Rpart
+                        Fit
+post.rpart              PostScript Presentation Plot of an Rpart Object
+predict.rpart           Predictions from a Fitted Rpart Object
+print.rpart             Print an Rpart Object
+printcp                 Displays CP table for Fitted Rpart Object
+prune.rpart             Cost-complexity Pruning of an Rpart Object
+residuals.rpart         Residuals From a Fitted Rpart Object
+rpart                   Recursive Partitioning and Regression Trees
+rpart.control           Control for Rpart Fits
+rpart.exp               Initialization function for exponential fitting
+rpart.object            Recursive Partitioning and Regression Trees
+                        Object
+rsq.rpart               Plots the Approximate R-Square for the
+                        Different Splits
+snip.rpart              Snip Subtrees of an Rpart Object
+solder                  Soldering of Components on Printed-Circuit
+                        Boards
+stagec                  Stage C Prostate Cancer
+summary.rpart           Summarize a Fitted Rpart Object
+text.rpart              Place Text on a Dendrogram Plot
+xpred.rpart             Return Cross-Validated Predictions
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/help/rpart.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/help/rpart.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/help/rpart.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/help/rpart.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/help/AnIndex	(revision 2476)
@@ -0,0 +1,32 @@
+car.test.frame	car.test.frame
+car90	car90
+cu.summary	cu.summary
+kyphosis	kyphosis
+labels.rpart	labels.rpart
+meanvar	meanvar.rpart
+meanvar.rpart	meanvar.rpart
+na.rpart	na.rpart
+path.rpart	path.rpart
+plot.rpart	plot.rpart
+plotcp	plotcp
+post	post.rpart
+post.rpart	post.rpart
+pred.rpart	rpart-internal
+predict.rpart	predict.rpart
+print.rpart	print.rpart
+printcp	printcp
+prune	prune.rpart
+prune.rpart	prune.rpart
+residuals.rpart	residuals.rpart
+rpart	rpart
+rpart.control	rpart.control
+rpart.exp	rpart.exp
+rpart.matrix	rpart-internal
+rpart.object	rpart.object
+rsq.rpart	rsq.rpart
+snip.rpart	snip.rpart
+solder	solder
+stagec	stagec
+summary.rpart	summary.rpart
+text.rpart	text.rpart
+xpred.rpart	xpred.rpart
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/NAMESPACE	(revision 2476)
@@ -0,0 +1,23 @@
+useDynLib(rpart, .registration = TRUE, .fixes = "C_")
+
+export(meanvar, na.rpart, path.rpart, plotcp, post, printcp, prune,
+       prune.rpart, rpart, rpart.control, rsq.rpart, snip.rpart, xpred.rpart)
+export(rpart.exp)  # needed for one of the tests
+
+importFrom(grDevices, col2rgb, dev.cur, dev.off, postscript)
+importFrom(graphics, abline, axis, box, identify, legend, lines, mtext,
+           par, plot, polygon, segments, text, title)
+import(stats)
+
+S3method(labels, rpart)
+S3method(meanvar, rpart)
+S3method(model.frame, rpart)
+S3method(plot, rpart)
+S3method(post, rpart)
+S3method(predict, rpart)
+S3method(print, rpart)
+S3method(prune, rpart)
+S3method(residuals, rpart)
+S3method(summary, rpart)
+S3method(text, rpart)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/NEWS.Rd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/NEWS.Rd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/NEWS.Rd	(revision 2476)
@@ -0,0 +1,132 @@
+\name{NEWS}
+\title{NEWS file for the rpart package}
+
+\section{Changes in version 4.1-0}{
+  \itemize{
+    \item The C and R code has been reformatted for legibility.
+    
+    \item The old compatibility function \code{rpconvert()} has been removed.
+    
+    \item The cross-validation functions allow for user interrupt at the
+    end of evaluating each split.
+    
+    \item Variable \code{Reliability} in data set \code{car90} is
+    corrected to be an ordered factor, as documented.
+
+    \item Surrogate splits are now considered only if they send two or
+    more cases \emph{with non-zero weight} each way.  For
+    numeric/ordinal variables the restriction to non-zero weights is
+    new: for categorical variables this is a new restriction.
+
+    \item Surrogate splits which improve only by rounding error over the
+    default split are no longer returned.  Where weights and missing
+    values are present, the \code{splits} component for some of these
+    was not returned correctly.
+  }
+}
+
+
+\section{Changes in version 4.0-3}{
+  \itemize{
+    \item A fit of class \samp{"rpart"} now contains a component for
+    variable \sQuote{importance}, which is reported by the
+    \code{summary()} method.
+
+    \item The \code{text()} method gains a \code{minlength} argument,
+    like the \code{labels()} method.  This adds finer control: the
+    default remains \code{pretty = NULL}, \code{minlength = 1L}.
+
+    \item The handling of fits with zero and fractional weights has been
+    corrected: the results may be slightly different (or even
+    substantially different when the proportion of zero weights is
+    large).
+
+    \item Some memory leaks have been plugged.
+
+    \item There is a second vignette, \file{longintro.Rnw}, a version of
+    the original Mayo Tecnical Report on \pkg{rpart}.
+  }
+}
+
+\section{Changes in version 4.0-2}{
+  \itemize{
+    \item Added dataset \code{car90}, a corrected version of the
+    S-PLUS dataset \code{car.all} (used with permission).
+
+    \item This version does not use \code{paste0{}} and so works
+    with \R 2.14.x.
+  }
+}
+    
+\section{Changes in version 4.0-1}{
+  \itemize{
+    
+    \item Merged in a set of Splus code changes that had accumulated at
+    Mayo over the course of a decade. The primary one is a change in how
+    indexing is done in the underlying C code, which leads to a major
+    speed increase for large data sets.  Essentially, for the lower
+    leaves all our time used to be eaten up by bookkeeping, and this was
+    replaced by a different approach.  The primary routine also uses
+    \code{.Call{}} so as to be more memory efficient.
+    
+    \item The other major change was an error for asymmetric loss
+    matrices, prompted by a user query.  With L=loss asymmetric, the
+    altered priors were computed incorrectly -- they were using L'
+    instead of L.  Upshot -- the tree would not not necessarily choose
+    optimal splits for the given loss matrix.  Once chosen, splits were
+    evaluated correctly.  The printed \dQuote{improvement} values are of
+    course the wrong ones as well.  It is interesting that for my little
+    test case, with L quite asymmetric, the early splits in the tree are
+    unchanged -- a good split still looks good.
+	
+    \item Add the \code{return.all} argument to \code{xpred.rpart()}.
+
+    \item Added a set of formal tests, i.e., cases with known answers to
+    which we can compare.
+    
+    \item Add a \file{usercode} vignette, explaining how to add user defined
+    splitting functions.
+    
+    \item The class method now also returns the node probability.
+    
+    \item Add the \code{stagec} data set, used in some tests.
+    
+    \item The \code{plot.rpart} routine needs to store a value that will
+    be visible to the \code{rpartco} routine at a later time.  This is
+    now done in an environment in the namespace.
+  }
+}
+
+\section{Changes in version 3.1-55}{
+  \itemize{
+    \item Force use of registered symbols in R >= 2.16.0
+    \item Update Polish translations.
+    \item Work on message formats.
+  }
+}
+
+\section{Changes in version 3.1-54}{
+  \itemize{
+    \item Add Polish translations
+  }
+}
+
+\section{Changes in version 3.1-53}{
+  \itemize{
+    \item \code{rpart}, \code{rpart.matrix}: allow backticks in formulae.
+    \item \file{tests/backtick.R}: regession test
+  }
+}
+
+\section{Changes in version 3.1-52}{
+  \itemize{
+    \item \file{src/xval.c}: ensure unused code is not compiled in.
+  }
+}
+
+\section{Changes in version 3.1-51}{
+  \itemize{
+    \item  Change description of \samp{margin} in \code{?plot.rpart}
+    as suggested by Bill Venables.
+  }
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble2.Rout.save	(revision 2476)
@@ -0,0 +1,87 @@
+
+R version 2.15.0 (2012-03-30)
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> #
+> # Test weights in a regression problem
+> #
+> library(rpart)
+> mystate <- data.frame(state.x77, region=factor(state.region))
+> names(mystate) <- c("population","income" , "illiteracy","life" ,
++        "murder", "hs.grad", "frost",     "area",      "region")
+> 
+> xgrp <- rep(1:10,5)
+> fit4 <- rpart(income ~ population + region + illiteracy +life + murder +
++                         hs.grad + frost , mystate,
++                    control=rpart.control(minsplit=10, xval=xgrp))
+> wts <- rep(3, nrow(mystate))
+> fit4b <-  rpart(income ~ population + region + illiteracy +life + murder +
++                         hs.grad + frost , mystate,
++                    control=rpart.control(minsplit=10, xval=xgrp), weights=wts)
+> fit4b$frame$wt   <- fit4b$frame$wt/3
+> fit4b$frame$dev  <- fit4b$frame$dev/3
+> fit4b$cptable[,5] <- fit4b$cptable[,5] * sqrt(3)
+> temp <- c('frame', 'where', 'splits', 'csplit', 'cptable')
+> all.equal(fit4[temp], fit4b[temp])  
+[1] TRUE
+> 
+> 
+> # Next is a very simple case, but worth keeping
+> dummy <- data.frame(y=1:10, x1=c(10:4, 1:3), x2=c(1,3,5,7,9,2,4,6,8,0))
+> 
+> xx1 <- rpart(y ~ x1 + x2, dummy, minsplit=4, xval=0)
+> xx2 <- rpart(y ~ x1 + x2, dummy, weights=rep(2,10), minsplit=4, xval=0)
+> 
+> all.equal(xx1$frame$dev, c(82.5, 10, 2, .5, 10, .5, 2))
+[1] TRUE
+> all.equal(xx2$frame$dev, c(82.5, 10, 2, .5, 10, .5, 2)*2)
+[1] TRUE
+> 
+> # Now for a set of non-equal weights
+> #  We need to set maxcompete=3 because there just happens to be, in one
+> #  of the lower nodes, an exact tie between variables "life" and "murder".
+> #  Round off error causes fit5 to choose one and fit5b the other.
+> # Later -- cut it back to maxdepth=3 for the same reason (a tie).
+> #
+> nn <- nrow(mystate)
+> wts <- rep(1:5, length=nn)
+> temp <- rep(1:nn, wts)             #row replicates
+> xgrp <- rep(1:10, length=nn)
+> xgrp2<- rep(xgrp, wts)
+> tempc <- rpart.control(minsplit=2, xval=xgrp2, maxsurrogate=0,
++ 		       maxcompete=3, maxdepth=3)
+> #  Direct: replicate rows in the data set, and use unweighted
+> fit5 <-  rpart(income ~ population + region + illiteracy +life + murder +
++                         hs.grad + frost , data=mystate[temp,], control=tempc)
+> #  Weighted
+> tempc <- rpart.control(minsplit=2, xval=xgrp, maxsurrogate=0,
++ 		       maxcompete=3, maxdepth=3)
+> fit5b <-  rpart(income ~ population + region + illiteracy +life + murder +
++                         hs.grad + frost , data=mystate, control=tempc,
++                         weights=wts)
+> all.equal(fit5$frame[-2],  fit5b$frame[-2])  # the "n" component won't match
+[1] TRUE
+> all.equal(fit5$cptable,    fit5b$cptable)
+[1] TRUE
+> all.equal(fit5$splits[,-1],fit5b$splits[,-1]) 
+[1] TRUE
+> all.equal(fit5$csplit,    fit5b$csplit)
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  0.283   0.064   0.394 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble3.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble3.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble3.Rout.save	(revision 2476)
@@ -0,0 +1,166 @@
+
+R version 2.15.2 (2012-10-26) -- "Trick or Treat"
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> #
+> # The treble test for classification trees
+> #  
+> #
+> library(rpart)
+> xgrp <- rep(1:10,length=nrow(cu.summary))
+> carfit <- rpart(Country ~ Reliability + Price + Mileage + Type,
++ 		 method='class', data=cu.summary, 
++ 		 control=rpart.control(xval=xgrp))
+> 
+> carfit2 <- rpart(Country ~ Reliability + Price + Mileage + Type,
++ 		 method='class', data=cu.summary, 
++ 		 weight=rep(3,nrow(cu.summary)),
++ 		 control=rpart.control(xval=xgrp))
+> 
+> all.equal(carfit$frame$wt,    carfit2$frame$wt/3)
+[1] TRUE
+> all.equal(carfit$frame$dev,   carfit2$frame$dev/3)
+[1] TRUE
+> all.equal(carfit$frame[,5:7], carfit2$frame[,5:7])
+[1] TRUE
+> all.equal(carfit$frame$yval2[,12:21], carfit2$frame$yval2[,12:21])
+[1] TRUE
+> all.equal(carfit[c('where', 'csplit')],
++ 	  carfit2[c('where', 'csplit')])
+[1] TRUE
+> xx <- carfit2$splits
+> xx[,'improve'] <- xx[,'improve'] / ifelse(xx[,5]> 0,1,3) # surrogate?
+> all.equal(xx, carfit$splits)
+[1] TRUE
+> all.equal(as.vector(carfit$cptable), 
++ 	  as.vector(carfit2$cptable%*% diag(c(1,1,1,1,sqrt(3)))))
+[1] TRUE
+> 
+> summary(carfit2)
+Call:
+rpart(formula = Country ~ Reliability + Price + Mileage + Type, 
+    data = cu.summary, weights = rep(3, nrow(cu.summary)), method = "class", 
+    control = rpart.control(xval = xgrp))
+  n= 117 
+
+          CP nsplit rel error    xerror       xstd
+1 0.23529412      0 1.0000000 1.0000000 0.04530958
+2 0.02941176      1 0.7647059 0.8088235 0.04583685
+3 0.02205882      3 0.7058824 0.9117647 0.04583685
+4 0.01000000      5 0.6617647 0.9558824 0.04563477
+
+Variable importance
+Reliability       Price        Type 
+         49          30          21 
+
+Node number 1: 117 observations,    complexity param=0.2352941
+  predicted class=USA        expected loss=0.5811966  P(node) =1
+    class counts:     3     3     6    33    93    27    15     9    15   147
+   probabilities: 0.009 0.009 0.017 0.094 0.265 0.077 0.043 0.026 0.043 0.419 
+  left son=2 (33 obs) right son=3 (84 obs)
+  Primary splits:
+      Reliability splits as  RRRLL,       improve=44.777630, (32 missing)
+      Type        splits as  LRRLRR,      improve=11.246350, (0 missing)
+      Price       < 6923    to the left,  improve=10.448720, (0 missing)
+      Mileage     < 22.5    to the right, improve= 6.084489, (57 missing)
+  Surrogate splits:
+      Type  splits as  RRRLRR,      agree=0.706, adj=0.138, (32 split)
+      Price < 6665    to the left,  agree=0.682, adj=0.069, (0 split)
+
+Node number 2: 33 observations,    complexity param=0.02205882
+  predicted class=Japan      expected loss=0.4545455  P(node) =0.2820513
+    class counts:     3     0     0     3    54    27     3     3     0     6
+   probabilities: 0.030 0.000 0.000 0.030 0.545 0.273 0.030 0.030 0.000 0.061 
+  left son=4 (9 obs) right son=5 (24 obs)
+  Primary splits:
+      Price       < 13202   to the right, improve=7.621212, (0 missing)
+      Type        splits as  R-LRLL,      improve=5.621212, (0 missing)
+      Reliability splits as  RRRRL,       improve=5.406404, (4 missing)
+      Mileage     < 23.5    to the left,  improve=3.915966, (9 missing)
+  Surrogate splits:
+      Type splits as  R-LRLL, agree=0.879, adj=0.556, (0 split)
+
+Node number 3: 84 observations,    complexity param=0.02941176
+  predicted class=USA        expected loss=0.4404762  P(node) =0.7179487
+    class counts:     0     3     6    30    39     0    12     6    15   141
+   probabilities: 0.000 0.012 0.024 0.119 0.155 0.000 0.048 0.024 0.060 0.560 
+  left son=6 (30 obs) right son=7 (54 obs)
+  Primary splits:
+      Price       < 16668.5 to the right, improve=10.403170, (0 missing)
+      Type        splits as  RRRLRR,      improve= 6.025974, (0 missing)
+      Mileage     < 22.5    to the right, improve= 3.132611, (48 missing)
+      Reliability splits as  RLLLL,       improve= 2.195489, (28 missing)
+  Surrogate splits:
+      Type splits as  RLLRRR, agree=0.714, adj=0.2, (0 split)
+
+Node number 4: 9 observations
+  predicted class=Japan      expected loss=0.1111111  P(node) =0.07692308
+    class counts:     0     0     0     3    24     0     0     0     0     0
+   probabilities: 0.000 0.000 0.000 0.111 0.889 0.000 0.000 0.000 0.000 0.000 
+
+Node number 5: 24 observations,    complexity param=0.02205882
+  predicted class=Japan      expected loss=0.5833333  P(node) =0.2051282
+    class counts:     3     0     0     0    30    27     3     3     0     6
+   probabilities: 0.042 0.000 0.000 0.000 0.417 0.375 0.042 0.042 0.000 0.083 
+  left son=10 (7 obs) right son=11 (17 obs)
+  Primary splits:
+      Price   < 7038    to the left,  improve=4.836134, (0 missing)
+      Type    splits as  R--LR-,      improve=1.966667, (0 missing)
+      Mileage < 30.5    to the right, improve=1.716667, (6 missing)
+
+Node number 6: 30 observations,    complexity param=0.02941176
+  predicted class=USA        expected loss=0.6333333  P(node) =0.2564103
+    class counts:     0     3     3    24    12     0     0     0    15    33
+   probabilities: 0.000 0.033 0.033 0.267 0.133 0.000 0.000 0.000 0.167 0.367 
+  left son=12 (10 obs) right son=13 (20 obs)
+  Primary splits:
+      Type        splits as  LRR-L-,      improve=6.6000000, (0 missing)
+      Price       < 30511   to the right, improve=5.3739130, (0 missing)
+      Reliability splits as  RRLLL,       improve=0.3333333, (12 missing)
+  Surrogate splits:
+      Price < 19422.5 to the left,  agree=0.767, adj=0.3, (0 split)
+
+Node number 7: 54 observations
+  predicted class=USA        expected loss=0.3333333  P(node) =0.4615385
+    class counts:     0     0     3     6    27     0    12     6     0   108
+   probabilities: 0.000 0.000 0.019 0.037 0.167 0.000 0.074 0.037 0.000 0.667 
+
+Node number 10: 7 observations
+  predicted class=Japan      expected loss=0.2857143  P(node) =0.05982906
+    class counts:     0     0     0     0    15     3     3     0     0     0
+   probabilities: 0.000 0.000 0.000 0.000 0.714 0.143 0.143 0.000 0.000 0.000 
+
+Node number 11: 17 observations
+  predicted class=Japan/USA  expected loss=0.5294118  P(node) =0.1452991
+    class counts:     3     0     0     0    15    24     0     3     0     6
+   probabilities: 0.059 0.000 0.000 0.000 0.294 0.471 0.000 0.059 0.000 0.118 
+
+Node number 12: 10 observations
+  predicted class=Germany    expected loss=0.5  P(node) =0.08547009
+    class counts:     0     0     0    15     3     0     0     0     9     3
+   probabilities: 0.000 0.000 0.000 0.500 0.100 0.000 0.000 0.000 0.300 0.100 
+
+Node number 13: 20 observations
+  predicted class=USA        expected loss=0.5  P(node) =0.1709402
+    class counts:     0     3     3     9     9     0     0     0     6    30
+   probabilities: 0.000 0.050 0.050 0.150 0.150 0.000 0.000 0.000 0.100 0.500 
+
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.188   0.012   0.196 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble4.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble4.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble4.Rout.save	(revision 2476)
@@ -0,0 +1,84 @@
+
+R version 2.15.2 (2012-10-26) -- "Trick or Treat"
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> #
+> # Treble test for class trees with 2 outcomes
+> #
+> # fit1 and fit1b failed equality because .7 and .3 are not easily represented
+> # in binary.  Thus a complelxity param was 4e-17 (basically 0, but enough
+> # to cause a split where it shouldn't be). Eric Lunde 2005-08-03
+> library(rpart)
+> control <- rpart.control(maxsurrogate=0, cp=1e-15, xval=0)
+> 
+> fit1 <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis, 
++               control=control,
++               parms=list(prior=c(.7,.3), 
++                 loss=matrix(c(0,1,2,0),nrow=2,ncol=2)))
+> wts <- rep(3, nrow(kyphosis))
+> fit1b <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis, 
++                control=control,
++ 	       weights=wts,
++                parms=list(prior=c(.7,.3), 
++                  loss=matrix(c(0,1,2,0),nrow=2,ncol=2)))
+> fit1b$frame$wt   <- fit1b$frame$wt/3
+> fit1b$frame$dev  <- fit1b$frame$dev/3
+> fit1b$frame$yval2[,2:3] <- fit1b$frame$yval2[,2:3]/3
+> fit1b$splits[,3] <- fit1b$splits[,3]/3
+> fit1b$variable.importance <- fit1b$variable.importance/3
+> all.equal(fit1[-3], fit1b[-3])   #all but the "call"
+[1] TRUE
+> 
+> # Now for a set of non-equal weights
+> nn <- nrow(kyphosis)
+> pseudo <- double(nn)
+> pseudo[1] <- pi/6
+> for (i in 2:nn) pseudo[i] <- 4*pseudo[i-1]*(1-pseudo[i-1])
+> 
+> wts <-  rep(1:7, length=nn)
+> temp <- rep(1:nn, wts)             #row replicates
+> xgrp <- rep(1:10, length=nn)[order(pseudo)]
+> xgrp2<- rep(xgrp, wts)
+> 
+> # The cp value stops one last split where the two predictors are
+> #  completely equal in importance (perfect surrogates), but the
+> #  weighted and unweighted pick a different one due to round off error
+> tempc <- rpart.control(minsplit=2, xval=xgrp2, maxsurrogate=0, cp=.039)
+> #  Direct: replicate rows in the data set, and use unweighted
+> fit2 <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis[temp,], 
++                control=tempc, 
++                parms=list(prior=c(.7,.3), 
++                           loss=matrix(c(0,1,2,0),nrow=2,ncol=2)))
+> #  Weighted
+> tempc <- rpart.control(minsplit=2, xval=xgrp, maxsurrogate=0, cp=.039)
+> fit2b <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis, 
++                control=tempc, weights=wts,
++                parms=list(prior=c(.7,.3), 
++                           loss=matrix(c(0,1,2,0),nrow=2,ncol=2)))
+> 
+> all.equal(fit2$frame[,-2],  fit2b$frame[,-2])  # the "n" component won't match
+[1] TRUE
+> all.equal(fit2$cptable, fit2b$cptable)
+[1] TRUE
+> all.equal(fit2$splits[,-1],fit2b$splits[,-1]) 
+[1] TRUE
+> all.equal(fit2$csplit,    fit2b$csplit)
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  0.200   0.032   0.218 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/cptest.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/cptest.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/cptest.Rout.save	(revision 2476)
@@ -0,0 +1,44 @@
+
+R version 2.15.0 (2012-03-30)
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> library(rpart)
+> mystate <- data.frame(state.x77, region=factor(state.region))
+> names(mystate) <- c("population","income" , "illiteracy","life" ,
++        "murder", "hs.grad", "frost",     "area",      "region")
+> #
+> # This little test came out of a query that cp did not scale
+> #  with the data size.  It does
+> #
+> # tdata = 20 copies of "mystate"  
+> # trees with tdata and trees with mystate should be the same (they are)
+> #  except for the n's
+> tdata <- rbind(mystate, mystate, mystate, mystate, mystate)
+> tdata <- rbind(tdata, tdata, tdata, tdata)
+> tfit1 <- rpart(income ~ population + illiteracy + murder + hs.grad + region,
++                data = mystate, method = "anova", xval=0, cp=.089)
+> tfit2 <- rpart(income ~ population + illiteracy + murder + hs.grad + region,
++                data = tdata, method='anova', xval=0, cp=.089, 
++                minsplit=400, minbucket=140)
+> 
+> all.equal(tfit1$splits[,-1], tfit2$splits[,-1])
+[1] TRUE
+>  
+> 
+> proc.time()
+   user  system elapsed 
+  0.237   0.049   0.324 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/xpred1.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/xpred1.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/xpred1.Rout.save	(revision 2476)
@@ -0,0 +1,54 @@
+
+R version 2.15.0 (2012-03-30)
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> #
+> # Test out the "return.all" argument of xpred
+> #   this is a very small test case for debugging
+> #
+> library(rpart)
+> 
+> tdata <- data.frame(y=1:12, x1= 12:1, x2=c(1,1,5,5,4,4,9,9,7,7,3,3))
+> xgrp <- rep(1:3, length=12)
+> 
+> fit1 <- rpart(y ~ x1 + x2, tdata, minsplit=6)
+> xfit1 <- xpred.rpart(fit1, xval=xgrp, return.all=T)
+> 
+> xfit2 <- array(0, dim=dim(xfit1))
+> cplist <- as.numeric(dimnames(xfit1)[[2]])
+> 
+> for (i in 1:3) {
++     tfit <- rpart(y ~ x1+x2, tdata, subset=(xgrp !=i), minsplit=6)
++     # xvals are actually done on the absolute risk (node's risk /n), not on
++     #   the rescaled risk ((node risk)/ (top node risk)) which is the basis
++     #   for the printed CP.  To get the right answer we need to rescale.
++     cp2 <- cplist * (fit1$frame$dev[1] / fit1$frame$n[1]) / 
++                     (tfit$frame$dev[1] / tfit$frame$n[1])
++ 
++     for (j in 1:length(cp2)) {
++         tfit2 <- prune(tfit, cp=cp2[j])
++         temp <- predict(tfit2, newdata=tdata[xgrp==i,], type='matrix')
++         xfit2[xgrp==i, j] <- temp
++         }
++     }
+> 
+> all.equal(xfit1, xfit2, check.attributes=FALSE)
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  0.264   0.070   0.367 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/xpred2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/xpred2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/xpred2.Rout.save	(revision 2476)
@@ -0,0 +1,58 @@
+
+R version 2.15.0 (2012-03-30)
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> #
+> # Test out the "return.all" argument of xpred
+> #  The data set has the virtue of continuous, categorical, and missings
+> #
+> library(rpart)
+> require(survival)
+Loading required package: survival
+Loading required package: splines
+> 
+> fit1 <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
++                 stagec,  method='poisson')
+> 
+> xgrp <- rep(1:3, length=nrow(stagec))  # explicitly set the xval groups
+> 
+> xfit1 <- xpred.rpart(fit1, xval=xgrp, return.all=T)
+> xfit2 <- array(0, dim=dim(xfit1))
+> cplist <- as.numeric(dimnames(xfit1)[[2]])
+> 
+> for (i in 1:3) {
++     tfit <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
++                 stagec,  method='poisson', subset=(xgrp !=i))
++     # xvals are actually done on the absolute risk (node's risk /n), not on
++     #   the rescaled risk ((node risk)/ (top node risk)) which is the basis
++     #   for the printed CP.  To get the right answer we need to rescale.
++     cp2 <- cplist * (fit1$frame$dev[1] / fit1$frame$n[1]) / 
++                     (tfit$frame$dev[1] / tfit$frame$n[1])
++ 
++     for (j in 1:length(cp2)) {
++         tfit2 <- prune(tfit, cp=cp2[j])
++         temp <- predict(tfit2, newdata=stagec[xgrp==i,], type='matrix')
++         xfit2[xgrp==i, j,] <- temp
++         }
++     }
+> 
+> all.equal(xfit1, xfit2, check.attributes=FALSE)
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  0.449   0.072   0.558 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/cost.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/cost.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/cost.Rout.save	(revision 2476)
@@ -0,0 +1,51 @@
+
+R version 2.15.0 (2012-03-30)
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> library(rpart)
+> require(survival)
+Loading required package: survival
+Loading required package: splines
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> #
+> # Check out using costs
+> #
+> fit1 <- rpart(Surv(time, status) ~ age + sex + ph.ecog + ph.karno + pat.karno
++ 	      + meal.cal + wt.loss, data=lung,
++ 	      maxdepth=1, maxcompete=6, xval=0)
+> 
+> fit2 <- rpart(Surv(time, status) ~ age + sex + ph.ecog + ph.karno + pat.karno
++ 	      + meal.cal + wt.loss, data=lung,
++ 	      maxdepth=1, maxcompete=6, xval=0, cost=(1+ 1:7/10))
+> 
+> temp1 <- fit1$splits[1:7,]
+> temp2 <- fit2$splits[1:7,]
+> temp3 <- c('age', 'sex', 'ph.ecog', 'ph.karno', 'pat.karno', 'meal.cal',
++ 	   'wt.loss')
+> indx1 <- match(temp3, dimnames(temp1)[[1]])
+> indx2 <- match(temp3, dimnames(temp2)[[1]])
+> aeq(temp1[indx1,1], temp2[indx2,1])             #same n's ?
+[1] TRUE
+> aeq(temp1[indx1,3], temp2[indx2,3]*(1+ 1:7/10)) #scaled importance
+[1] TRUE
+> 
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.288   0.067   0.407 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/testall.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/testall.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/testall.Rout.save	(revision 2476)
@@ -0,0 +1,944 @@
+
+R Under development (unstable) (2012-11-27 r61172) -- "Unsuffered Consequences"
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-apple-darwin11.4.2/x86_64 (64-bit)
+
+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.
+
+> # 
+> # This is a set of tests, with printout, that tries
+> #  to exercise all of the splitting rules
+> # It's less formal than the others in this directory, but covers
+> #  more.
+> # For all of the cross-validations I set xgroups explicitly, so as
+> #  to avoid any changes in random number allocation of the groups.
+> 
+> library(rpart)
+> require(survival)
+Loading required package: survival
+Loading required package: splines
+> options(digits=4)  #avoid trivial rounding changes across R versions
+> 
+> # 
+> #
+> # Survival, using the stagec data
+> #
+> #   Time to progression in years
+> #   status  1=progressed, 0= censored
+> #   age
+> #   early endocrine therapy   1=no 2=yes
+> #   % of cells in g2 phase, from flow cytometry
+> #   tumor grade (Farrow) 1,2,3,4
+> #   Gleason score (competing grading system)
+> #   ploidy
+> xgroup <- rep(1:10, length=nrow(stagec))
+> fit1 <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
++ 		stagec, method="poisson",
++               control=rpart.control(usesurrogate=0, cp=0, xval=xgroup))
+> fit1
+n= 146 
+
+node), split, n, deviance, yval
+      * denotes terminal node
+
+  1) root 146 193.400 0.058490  
+    2) grade< 2.5 61  46.000 0.021270  
+      4) g2< 11.36 33   9.303 0.007174  
+        8) g2>=6.545 26   1.847 0.004462 *
+        9) g2< 6.545 7   5.883 0.027860 *
+      5) g2>=11.36 27  27.880 0.044870  
+       10) g2>=14.37 15  12.430 0.030940 *
+       11) g2< 14.37 12  13.690 0.067870 *
+    3) grade>=2.5 85 122.600 0.094400  
+      6) age>=56.5 75 104.700 0.082840  
+       12) g2>=22.77 12  14.830 0.039530 *
+       13) g2< 22.77 57  76.110 0.100300  
+         26) gleason< 7.5 41  55.810 0.076860  
+           52) g2< 13.47 23  26.800 0.050830  
+            104) g2>=11.52 7   5.289 0.030820 *
+            105) g2< 11.52 16  20.270 0.063870 *
+           53) g2>=13.47 18  25.520 0.112300 *
+         27) gleason>=7.5 16  15.190 0.164400 *
+      7) age< 56.5 10  11.420 0.196900 *
+> summary(fit1)
+Call:
+rpart(formula = Surv(pgtime, pgstat) ~ age + eet + g2 + grade + 
+    gleason + ploidy, data = stagec, method = "poisson", control = rpart.control(usesurrogate = 0, 
+    cp = 0, xval = xgroup))
+  n= 146 
+
+        CP nsplit rel error xerror    xstd
+1 0.128372      0    1.0000 1.0120 0.06329
+2 0.052298      1    0.8716 0.9220 0.07170
+3 0.045608      3    0.7670 0.9728 0.07846
+4 0.026442      4    0.7214 0.9732 0.08052
+5 0.018049      5    0.6950 0.9725 0.08388
+6 0.009068      6    0.6769 0.9698 0.08532
+7 0.008132      7    0.6679 0.9920 0.08795
+8 0.006412      8    0.6597 0.9853 0.08800
+9 0.000000      9    0.6533 1.0077 0.08952
+
+Variable importance
+  grade      g2 gleason  ploidy     age     eet 
+     27      27      23      12      10       1 
+
+Node number 1: 146 observations,    complexity param=0.1284
+  events=54,  estimated rate=0.05849 , mean deviance=1.325 
+  left son=2 (61 obs) right son=3 (85 obs)
+  Primary splits:
+      grade   < 2.5   to the left,  improve=24.880, (0 missing)
+      gleason < 5.5   to the left,  improve=21.630, (3 missing)
+      ploidy  splits as  LRR,       improve=13.020, (0 missing)
+      g2      < 13.2  to the left,  improve=11.450, (7 missing)
+      age     < 53.5  to the right, improve= 2.484, (0 missing)
+  Surrogate splits:
+      gleason < 5.5   to the left,  agree=0.863, adj=0.672, (0 split)
+      ploidy  splits as  LRR,       agree=0.644, adj=0.148, (0 split)
+      g2      < 9.945 to the left,  agree=0.630, adj=0.115, (0 split)
+      age     < 66.5  to the right, agree=0.589, adj=0.016, (0 split)
+
+Node number 2: 61 observations,    complexity param=0.04561
+  events=9,  estimated rate=0.02127 , mean deviance=0.7542 
+  left son=4 (33 obs) right son=5 (27 obs), 1 observation remains
+  Primary splits:
+      g2      < 11.36 to the left,  improve=8.9650, (1 missing)
+      ploidy  splits as  LRL,       improve=7.4700, (0 missing)
+      age     < 68.5  to the right, improve=3.9560, (0 missing)
+      gleason < 5.5   to the left,  improve=1.8010, (3 missing)
+      eet     < 1.5   to the left,  improve=0.5444, (1 missing)
+  Surrogate splits:
+      ploidy splits as  LR-,       agree=0.917, adj=0.815, (0 split)
+      age    < 65.5  to the left,  agree=0.617, adj=0.148, (0 split)
+
+Node number 3: 85 observations,    complexity param=0.0523
+  events=45,  estimated rate=0.0944 , mean deviance=1.442 
+  left son=6 (75 obs) right son=7 (10 obs)
+  Primary splits:
+      age     < 56.5  to the right, improve=7.3190, (0 missing)
+      g2      < 22.76 to the right, improve=6.8420, (6 missing)
+      gleason < 8.5   to the left,  improve=4.8530, (0 missing)
+      ploidy  splits as  LLR,       improve=1.7320, (0 missing)
+      eet     < 1.5   to the right, improve=0.9628, (1 missing)
+
+Node number 4: 33 observations,    complexity param=0.008132
+  events=1,  estimated rate=0.007174 , mean deviance=0.2819 
+  left son=8 (26 obs) right son=9 (7 obs)
+  Primary splits:
+      g2      < 6.545 to the right, improve=3.1310, (0 missing)
+      age     < 62.5  to the right, improve=1.3520, (0 missing)
+      eet     < 1.5   to the left,  improve=0.6605, (0 missing)
+      gleason < 5.5   to the right, improve=0.4889, (2 missing)
+  Surrogate splits:
+      grade < 1.5   to the right, agree=0.848, adj=0.286, (0 split)
+
+Node number 5: 27 observations,    complexity param=0.009068
+  events=8,  estimated rate=0.04487 , mean deviance=1.033 
+  left son=10 (15 obs) right son=11 (12 obs)
+  Primary splits:
+      g2      < 14.37 to the right, improve=1.820, (0 missing)
+      gleason < 5.5   to the left,  improve=1.698, (1 missing)
+      age     < 62.5  to the left,  improve=1.136, (0 missing)
+  Surrogate splits:
+      ploidy  splits as  RL-,       agree=0.741, adj=0.417, (0 split)
+      age     < 65    to the left,  agree=0.630, adj=0.167, (0 split)
+      gleason < 5.5   to the left,  agree=0.630, adj=0.167, (0 split)
+
+Node number 6: 75 observations,    complexity param=0.0523
+  events=37,  estimated rate=0.08284 , mean deviance=1.397 
+  left son=12 (12 obs) right son=13 (57 obs), 6 observations remain
+  Primary splits:
+      g2      < 22.76 to the right, improve=4.8580, (6 missing)
+      gleason < 7.5   to the left,  improve=4.1030, (0 missing)
+      age     < 69.5  to the left,  improve=2.7250, (0 missing)
+      ploidy  splits as  LRR,       improve=0.7858, (0 missing)
+      eet     < 1.5   to the right, improve=0.1992, (1 missing)
+
+Node number 7: 10 observations
+  events=8,  estimated rate=0.1969 , mean deviance=1.142 
+
+Node number 8: 26 observations
+  events=0,  estimated rate=0.004462 , mean deviance=0.07105 
+
+Node number 9: 7 observations
+  events=1,  estimated rate=0.02786 , mean deviance=0.8404 
+
+Node number 10: 15 observations
+  events=3,  estimated rate=0.03094 , mean deviance=0.8289 
+
+Node number 11: 12 observations
+  events=5,  estimated rate=0.06787 , mean deviance=1.141 
+
+Node number 12: 12 observations
+  events=4,  estimated rate=0.03953 , mean deviance=1.236 
+
+Node number 13: 57 observations,    complexity param=0.02644
+  events=30,  estimated rate=0.1003 , mean deviance=1.335 
+  left son=26 (41 obs) right son=27 (16 obs)
+  Primary splits:
+      gleason < 7.5   to the left,  improve=5.40700, (0 missing)
+      g2      < 13.2  to the left,  improve=4.46300, (0 missing)
+      ploidy  splits as  LRR,       improve=3.49400, (0 missing)
+      age     < 69.5  to the left,  improve=3.12800, (0 missing)
+      eet     < 1.5   to the left,  improve=0.04903, (1 missing)
+  Surrogate splits:
+      grade < 3.5   to the left,  agree=0.772, adj=0.187, (0 split)
+
+Node number 26: 41 observations,    complexity param=0.01805
+  events=18,  estimated rate=0.07686 , mean deviance=1.361 
+  left son=52 (23 obs) right son=53 (18 obs)
+  Primary splits:
+      g2      < 13.48 to the left,  improve=3.57000, (0 missing)
+      ploidy  splits as  LRR,       improve=3.05800, (0 missing)
+      age     < 65.5  to the left,  improve=0.68120, (0 missing)
+      eet     < 1.5   to the left,  improve=0.09244, (0 missing)
+      gleason < 6.5   to the right, improve=0.01761, (0 missing)
+  Surrogate splits:
+      eet < 1.5   to the right, agree=0.634, adj=0.167, (0 split)
+      age < 58.5  to the right, agree=0.585, adj=0.056, (0 split)
+
+Node number 27: 16 observations
+  events=12,  estimated rate=0.1644 , mean deviance=0.9493 
+
+Node number 52: 23 observations,    complexity param=0.006412
+  events=7,  estimated rate=0.05083 , mean deviance=1.165 
+  left son=104 (7 obs) right son=105 (16 obs)
+  Primary splits:
+      g2      < 11.52 to the right, improve=1.41100, (0 missing)
+      age     < 62.5  to the right, improve=1.24600, (0 missing)
+      gleason < 6.5   to the left,  improve=0.02047, (0 missing)
+  Surrogate splits:
+      age    < 71    to the right, agree=0.826, adj=0.429, (0 split)
+      ploidy splits as  RLR,       agree=0.739, adj=0.143, (0 split)
+
+Node number 53: 18 observations
+  events=11,  estimated rate=0.1123 , mean deviance=1.418 
+
+Node number 104: 7 observations
+  events=1,  estimated rate=0.03082 , mean deviance=0.7555 
+
+Node number 105: 16 observations
+  events=6,  estimated rate=0.06387 , mean deviance=1.267 
+
+> 
+> fit2 <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
++ 		stagec, xval=xgroup)
+> fit2
+n= 146 
+
+node), split, n, deviance, yval
+      * denotes terminal node
+
+ 1) root 146 192.100 1.0000  
+   2) grade< 2.5 61  44.800 0.3634  
+     4) g2< 11.36 33   9.117 0.1230 *
+     5) g2>=11.36 28  27.600 0.7346  
+      10) gleason< 5.5 20  14.300 0.5304 *
+      11) gleason>=5.5 8  11.090 1.3070 *
+   3) grade>=2.5 85 122.400 1.6150  
+     6) age>=56.5 75 103.100 1.4260  
+      12) gleason< 7.5 50  66.120 1.1410  
+        24) g2< 13.47 24  27.200 0.8007 *
+        25) g2>=13.47 26  36.790 1.4570  
+          50) g2>=17.91 15  20.330 0.9790 *
+          51) g2< 17.91 11  13.460 2.1710 *
+      13) gleason>=7.5 25  33.490 2.0310  
+        26) g2>=15.29 10  11.590 1.2160 *
+        27) g2< 15.29 15  18.940 2.7050 *
+     7) age< 56.5 10  13.770 3.1820 *
+> summary(fit2)
+Call:
+rpart(formula = Surv(pgtime, pgstat) ~ age + eet + g2 + grade + 
+    gleason + ploidy, data = stagec, xval = xgroup)
+  n= 146 
+
+       CP nsplit rel error xerror    xstd
+1 0.12946      0    1.0000 1.0100 0.07108
+2 0.04206      1    0.8705 0.8919 0.07420
+3 0.02920      2    0.8285 0.9239 0.08004
+4 0.01799      3    0.7993 0.9293 0.08292
+5 0.01541      4    0.7813 0.9866 0.09214
+6 0.01335      5    0.7659 1.0007 0.09161
+7 0.01151      7    0.7392 0.9983 0.09065
+8 0.01000      8    0.7277 1.0130 0.09176
+
+Variable importance
+  grade gleason      g2  ploidy     age     eet 
+     27      25      22      13      11       2 
+
+Node number 1: 146 observations,    complexity param=0.1295
+  events=54,  estimated rate=1 , mean deviance=1.316 
+  left son=2 (61 obs) right son=3 (85 obs)
+  Primary splits:
+      grade   < 2.5   to the left,  improve=24.920, (0 missing)
+      gleason < 5.5   to the left,  improve=21.350, (3 missing)
+      ploidy  splits as  LRR,       improve=13.790, (0 missing)
+      g2      < 13.2  to the left,  improve=12.310, (7 missing)
+      age     < 58.5  to the right, improve= 2.684, (0 missing)
+  Surrogate splits:
+      gleason < 5.5   to the left,  agree=0.863, adj=0.672, (0 split)
+      ploidy  splits as  LRR,       agree=0.644, adj=0.148, (0 split)
+      g2      < 9.945 to the left,  agree=0.630, adj=0.115, (0 split)
+      age     < 66.5  to the right, agree=0.589, adj=0.016, (0 split)
+
+Node number 2: 61 observations,    complexity param=0.04206
+  events=9,  estimated rate=0.3634 , mean deviance=0.7344 
+  left son=4 (33 obs) right son=5 (28 obs)
+  Primary splits:
+      g2      < 11.36 to the left,  improve=8.9620, (1 missing)
+      ploidy  splits as  LRL,       improve=7.5850, (0 missing)
+      age     < 68.5  to the right, improve=4.1380, (0 missing)
+      gleason < 5.5   to the left,  improve=1.6410, (3 missing)
+      eet     < 1.5   to the left,  improve=0.5961, (1 missing)
+  Surrogate splits:
+      ploidy splits as  LR-,       agree=0.917, adj=0.815, (0 split)
+      age    < 65.5  to the left,  agree=0.617, adj=0.148, (1 split)
+
+Node number 3: 85 observations,    complexity param=0.0292
+  events=45,  estimated rate=1.615 , mean deviance=1.44 
+  left son=6 (75 obs) right son=7 (10 obs)
+  Primary splits:
+      age     < 56.5  to the right, improve=6.3380, (0 missing)
+      g2      < 22.76 to the right, improve=4.7180, (6 missing)
+      gleason < 8.5   to the left,  improve=4.2190, (0 missing)
+      ploidy  splits as  LRR,       improve=1.5590, (0 missing)
+      eet     < 1.5   to the right, improve=0.8558, (1 missing)
+
+Node number 4: 33 observations
+  events=1,  estimated rate=0.123 , mean deviance=0.2763 
+
+Node number 5: 28 observations,    complexity param=0.01151
+  events=8,  estimated rate=0.7346 , mean deviance=0.9858 
+  left son=10 (20 obs) right son=11 (8 obs)
+  Primary splits:
+      gleason < 5.5   to the left,  improve=2.090, (1 missing)
+      age     < 67.5  to the right, improve=1.639, (0 missing)
+      g2      < 14.37 to the right, improve=1.437, (1 missing)
+
+Node number 6: 75 observations,    complexity param=0.01799
+  events=37,  estimated rate=1.426 , mean deviance=1.374 
+  left son=12 (50 obs) right son=13 (25 obs)
+  Primary splits:
+      gleason < 7.5   to the left,  improve=3.5210, (0 missing)
+      g2      < 23.48 to the right, improve=3.3340, (6 missing)
+      age     < 69.5  to the left,  improve=2.2120, (0 missing)
+      ploidy  splits as  LRR,       improve=1.1190, (0 missing)
+      eet     < 1.5   to the right, improve=0.1528, (1 missing)
+  Surrogate splits:
+      grade < 3.5   to the left,  agree=0.733, adj=0.2, (0 split)
+
+Node number 7: 10 observations
+  events=8,  estimated rate=3.182 , mean deviance=1.377 
+
+Node number 10: 20 observations
+  events=4,  estimated rate=0.5304 , mean deviance=0.7149 
+
+Node number 11: 8 observations
+  events=4,  estimated rate=1.307 , mean deviance=1.387 
+
+Node number 12: 50 observations,    complexity param=0.01335
+  events=21,  estimated rate=1.141 , mean deviance=1.322 
+  left son=24 (24 obs) right son=25 (26 obs)
+  Primary splits:
+      g2      < 13.48 to the left,  improve=1.87000, (3 missing)
+      ploidy  splits as  LRR,       improve=1.45100, (0 missing)
+      age     < 62.5  to the right, improve=0.79680, (0 missing)
+      gleason < 6.5   to the left,  improve=0.02209, (0 missing)
+      eet     < 1.5   to the right, improve=0.01274, (0 missing)
+  Surrogate splits:
+      age     < 66.5  to the right, agree=0.596, adj=0.174, (3 split)
+      eet     < 1.5   to the right, agree=0.553, adj=0.087, (0 split)
+      gleason < 6.5   to the left,  agree=0.553, adj=0.087, (0 split)
+
+Node number 13: 25 observations,    complexity param=0.01541
+  events=16,  estimated rate=2.031 , mean deviance=1.339 
+  left son=26 (10 obs) right son=27 (15 obs)
+  Primary splits:
+      g2     < 15.29 to the right, improve=3.893000, (3 missing)
+      age    < 68.5  to the left,  improve=1.327000, (0 missing)
+      ploidy splits as  RLR,       improve=0.858700, (0 missing)
+      eet    < 1.5   to the right, improve=0.001483, (1 missing)
+  Surrogate splits:
+      ploidy  splits as  RLR,       agree=0.727, adj=0.4, (3 split)
+      gleason < 8.5   to the right, agree=0.636, adj=0.2, (0 split)
+      age     < 57.5  to the left,  agree=0.591, adj=0.1, (0 split)
+      eet     < 1.5   to the left,  agree=0.591, adj=0.1, (0 split)
+
+Node number 24: 24 observations
+  events=7,  estimated rate=0.8007 , mean deviance=1.133 
+
+Node number 25: 26 observations,    complexity param=0.01335
+  events=14,  estimated rate=1.457 , mean deviance=1.415 
+  left son=50 (15 obs) right son=51 (11 obs)
+  Primary splits:
+      g2      < 17.92 to the right, improve=3.170000, (2 missing)
+      age     < 64.5  to the left,  improve=0.971200, (0 missing)
+      eet     < 1.5   to the right, improve=0.961700, (0 missing)
+      gleason < 6.5   to the left,  improve=0.005796, (0 missing)
+  Surrogate splits:
+      age     < 65.5  to the left,  agree=0.708, adj=0.364, (2 split)
+      eet     < 1.5   to the right, agree=0.667, adj=0.273, (0 split)
+      gleason < 6.5   to the right, agree=0.625, adj=0.182, (0 split)
+
+Node number 26: 10 observations
+  events=5,  estimated rate=1.216 , mean deviance=1.159 
+
+Node number 27: 15 observations
+  events=11,  estimated rate=2.705 , mean deviance=1.263 
+
+Node number 50: 15 observations
+  events=6,  estimated rate=0.979 , mean deviance=1.356 
+
+Node number 51: 11 observations
+  events=8,  estimated rate=2.171 , mean deviance=1.224 
+
+> 
+> 
+> #
+> # Continuous y variable
+> #  Use deterministic xgroups: the first group is the 1st, 11th, 21st, etc
+> #  smallest obs, the second is 2, 12, 22, ...
+> 
+> mystate <- data.frame(state.x77, region=factor(state.region))
+> names(mystate) <- c("population","income" , "illiteracy","life" ,
++        "murder", "hs.grad", "frost",     "area",      "region")
+> 
+> xvals <- 1:nrow(mystate)
+> xvals[order(mystate$income)] <- rep(1:10, length=nrow(mystate))
+> 
+> fit4 <- rpart(income ~ population + region + illiteracy +life + murder +
++ 			hs.grad + frost , mystate,
++ 		   control=rpart.control(minsplit=10, xval=xvals))
+> 
+> summary(fit4)
+Call:
+rpart(formula = income ~ population + region + illiteracy + life + 
+    murder + hs.grad + frost, data = mystate, control = rpart.control(minsplit = 10, 
+    xval = xvals))
+  n= 50 
+
+       CP nsplit rel error xerror   xstd
+1 0.42831      0    1.0000 1.0157 0.2265
+2 0.13514      1    0.5717 0.5948 0.1747
+3 0.06458      2    0.4365 0.7005 0.1802
+4 0.05485      3    0.3720 0.8606 0.2299
+5 0.05346      4    0.3171 0.8494 0.2297
+6 0.02479      5    0.2637 0.8289 0.2644
+7 0.01940      6    0.2389 0.8196 0.2641
+8 0.01394      7    0.2195 0.8196 0.2641
+9 0.01000      8    0.2055 0.8117 0.2640
+
+Variable importance
+   hs.grad       life illiteracy     murder     region population      frost 
+        28         22         13         12         12          9          5 
+
+Node number 1: 50 observations,    complexity param=0.4283
+  mean=4436, MSE=3.7e+05 
+  left son=2 (10 obs) right son=3 (40 obs)
+  Primary splits:
+      hs.grad    < 44.3  to the left,  improve=0.4283, (0 missing)
+      illiteracy < 1.55  to the right, improve=0.3249, (0 missing)
+      region     splits as  RLRR,      improve=0.2285, (0 missing)
+      murder     < 11.55 to the right, improve=0.2012, (0 missing)
+      life       < 68.9  to the left,  improve=0.1672, (0 missing)
+  Surrogate splits:
+      illiteracy < 1.55  to the right, agree=0.90, adj=0.5, (0 split)
+      life       < 69.26 to the left,  agree=0.90, adj=0.5, (0 split)
+      region     splits as  RLRR,      agree=0.88, adj=0.4, (0 split)
+      murder     < 11.55 to the right, agree=0.88, adj=0.4, (0 split)
+      frost      < 81    to the left,  agree=0.82, adj=0.1, (0 split)
+
+Node number 2: 10 observations,    complexity param=0.0194
+  mean=3640, MSE=6.688e+04 
+  left son=4 (7 obs) right son=5 (3 obs)
+  Primary splits:
+      population < 3990  to the left,  improve=0.53670, (0 missing)
+      frost      < 55    to the left,  improve=0.30250, (0 missing)
+      illiteracy < 2.2   to the right, improve=0.29240, (0 missing)
+      hs.grad    < 40.8  to the right, improve=0.14540, (0 missing)
+      murder     < 12.85 to the left,  improve=0.08289, (0 missing)
+
+Node number 3: 40 observations,    complexity param=0.1351
+  mean=4635, MSE=2.477e+05 
+  left son=6 (34 obs) right son=7 (6 obs)
+  Primary splits:
+      life       < 70.26 to the right, improve=0.25230, (0 missing)
+      murder     < 10    to the left,  improve=0.16790, (0 missing)
+      hs.grad    < 60.95 to the left,  improve=0.12350, (0 missing)
+      illiteracy < 0.75  to the left,  improve=0.11520, (0 missing)
+      population < 659   to the right, improve=0.08106, (0 missing)
+  Surrogate splits:
+      population < 613.5 to the right, agree=0.875, adj=0.167, (0 split)
+      murder     < 11.2  to the left,  agree=0.875, adj=0.167, (0 split)
+      hs.grad    < 64.55 to the left,  agree=0.875, adj=0.167, (0 split)
+
+Node number 4: 7 observations
+  mean=3516, MSE=3.844e+04 
+
+Node number 5: 3 observations
+  mean=3929, MSE=1.361e+04 
+
+Node number 6: 34 observations,    complexity param=0.06458
+  mean=4530, MSE=1.69e+05 
+  left son=12 (12 obs) right son=13 (22 obs)
+  Primary splits:
+      population < 1374  to the left,  improve=0.20790, (0 missing)
+      life       < 70.41 to the left,  improve=0.19010, (0 missing)
+      frost      < 33.5  to the right, improve=0.10930, (0 missing)
+      illiteracy < 0.75  to the left,  improve=0.08942, (0 missing)
+      hs.grad    < 59.7  to the left,  improve=0.06429, (0 missing)
+  Surrogate splits:
+      frost      < 152   to the right, agree=0.794, adj=0.417, (0 split)
+      life       < 70.41 to the left,  agree=0.735, adj=0.250, (0 split)
+      murder     < 2     to the left,  agree=0.706, adj=0.167, (0 split)
+      region     splits as  RRRL,      agree=0.676, adj=0.083, (0 split)
+      illiteracy < 1.85  to the right, agree=0.676, adj=0.083, (0 split)
+
+Node number 7: 6 observations
+  mean=5230, MSE=2.768e+05 
+
+Node number 12: 12 observations,    complexity param=0.05485
+  mean=4276, MSE=1.942e+05 
+  left son=24 (3 obs) right son=25 (9 obs)
+  Primary splits:
+      population < 994.5 to the right, improve=0.4355, (0 missing)
+      life       < 71.89 to the left,  improve=0.2955, (0 missing)
+      frost      < 172.5 to the left,  improve=0.2333, (0 missing)
+      illiteracy < 0.75  to the left,  improve=0.1965, (0 missing)
+      murder     < 2.55  to the right, improve=0.1847, (0 missing)
+  Surrogate splits:
+      life < 70.47 to the left,  agree=0.833, adj=0.333, (0 split)
+
+Node number 13: 22 observations,    complexity param=0.05346
+  mean=4668, MSE=1.01e+05 
+  left son=26 (4 obs) right son=27 (18 obs)
+  Primary splits:
+      hs.grad    < 52.05 to the left,  improve=0.44500, (0 missing)
+      region     splits as  RLLR,      improve=0.35050, (0 missing)
+      life       < 71.56 to the left,  improve=0.12220, (0 missing)
+      murder     < 5.65  to the right, improve=0.10520, (0 missing)
+      population < 2980  to the left,  improve=0.06276, (0 missing)
+  Surrogate splits:
+      region splits as  RLRR, agree=0.864, adj=0.25, (0 split)
+
+Node number 24: 3 observations
+  mean=3772, MSE=3.261e+04 
+
+Node number 25: 9 observations
+  mean=4444, MSE=1.353e+05 
+
+Node number 26: 4 observations
+  mean=4218, MSE=2.77e+04 
+
+Node number 27: 18 observations,    complexity param=0.02479
+  mean=4768, MSE=6.236e+04 
+  left son=54 (8 obs) right son=55 (10 obs)
+  Primary splits:
+      region     splits as  RRLR,      improve=0.4086, (0 missing)
+      illiteracy < 1     to the left,  improve=0.3653, (0 missing)
+      murder     < 3.05  to the left,  improve=0.1805, (0 missing)
+      hs.grad    < 52.75 to the right, improve=0.1507, (0 missing)
+      population < 2412  to the left,  improve=0.1427, (0 missing)
+  Surrogate splits:
+      illiteracy < 1     to the left,  agree=0.833, adj=0.625, (0 split)
+      frost      < 108.5 to the right, agree=0.833, adj=0.625, (0 split)
+      life       < 72.31 to the right, agree=0.778, adj=0.500, (0 split)
+      murder     < 3.05  to the left,  agree=0.778, adj=0.500, (0 split)
+      hs.grad    < 59.95 to the left,  agree=0.667, adj=0.250, (0 split)
+
+Node number 54: 8 observations
+  mean=4590, MSE=1.009e+04 
+
+Node number 55: 10 observations,    complexity param=0.01394
+  mean=4911, MSE=5.832e+04 
+  left son=110 (7 obs) right son=111 (3 obs)
+  Primary splits:
+      frost      < 109   to the left,  improve=0.4423, (0 missing)
+      population < 2820  to the left,  improve=0.3546, (0 missing)
+      hs.grad    < 57.05 to the right, improve=0.3103, (0 missing)
+      region     splits as  RL-L,      improve=0.2564, (0 missing)
+      illiteracy < 1.2   to the right, improve=0.1921, (0 missing)
+  Surrogate splits:
+      life < 71.94 to the left,  agree=0.8, adj=0.333, (0 split)
+
+Node number 110: 7 observations
+  mean=4806, MSE=2.969e+04 
+
+Node number 111: 3 observations
+  mean=5156, MSE=3.914e+04 
+
+> 
+> 
+> #
+> # Check out xpred.rpart
+> #
+> meany <- mean(mystate$income)
+> xpr <- xpred.rpart(fit4, xval=xvals)
+> xpr2 <- (xpr - mystate$income)^2
+> risk0 <- mean((mystate$income - meany)^2)
+> xpmean <- as.vector(apply(xpr2, 2, mean))   #kill the names
+> all.equal(xpmean/risk0, as.vector(fit4$cptable[,'xerror']))
+[1] TRUE
+> 
+> xpstd <- as.vector(apply((sweep(xpr2, 2, xpmean))^2, 2, sum))
+> xpstd <- sqrt(xpstd)/(50*risk0)
+> all.equal(xpstd, as.vector(fit4$cptable[,'xstd']))
+[1] TRUE
+> 
+> #
+> # recreate subset #3 of the xval
+> #
+> tfit4 <- rpart(income ~ population + region + illiteracy +life + murder +
++ 			hs.grad + frost , mystate,  subset=(xvals!=3),
++ 		   control=rpart.control(minsplit=10, xval=0))
+> tpred <- predict(tfit4, mystate[xvals==3,])
+> all.equal(tpred, xpr[xvals==3,ncol(xpr)])
+[1] TRUE
+> 
+> # How much does this differ from the "real" formula, more complex,
+> #   found on page 309 of Breiman et al. ?
+> #xtemp <- (xpr2/outer(rep(1,50),xpmean)) -  ((mystate$income - meany)^2)/risk0
+> #real.se<- xpmean* sqrt(apply(xtemp^2,2,sum))/(risk0*50)
+> 
+> 
+> # Simple yes/no classification model
+> fit5 <- rpart(factor(pgstat) ~  age + eet + g2+grade+gleason +ploidy,
++ 	  stagec, xval=xgroup)
+> 
+> fit5
+n= 146 
+
+node), split, n, loss, yval, (yprob)
+      * denotes terminal node
+
+ 1) root 146 54 0 (0.6301 0.3699)  
+   2) grade< 2.5 61  9 0 (0.8525 0.1475) *
+   3) grade>=2.5 85 40 1 (0.4706 0.5294)  
+     6) g2< 13.2 40 17 0 (0.5750 0.4250)  
+      12) ploidy=diploid,tetraploid 31 11 0 (0.6452 0.3548)  
+        24) g2>=11.84 7  1 0 (0.8571 0.1429) *
+        25) g2< 11.84 24 10 0 (0.5833 0.4167)  
+          50) g2< 11 17  5 0 (0.7059 0.2941) *
+          51) g2>=11 7  2 1 (0.2857 0.7143) *
+      13) ploidy=aneuploid 9  3 1 (0.3333 0.6667) *
+     7) g2>=13.2 45 17 1 (0.3778 0.6222)  
+      14) g2>=17.91 22  8 0 (0.6364 0.3636)  
+        28) age>=62.5 15  4 0 (0.7333 0.2667) *
+        29) age< 62.5 7  3 1 (0.4286 0.5714) *
+      15) g2< 17.91 23  3 1 (0.1304 0.8696) *
+> 
+> fit6 <- rpart(factor(pgstat) ~  age + eet + g2+grade+gleason +ploidy,
++ 		stagec, parm=list(prior=c(.5,.5)), xval=xgroup)
+> summary(fit6)
+Call:
+rpart(formula = factor(pgstat) ~ age + eet + g2 + grade + gleason + 
+    ploidy, data = stagec, parms = list(prior = c(0.5, 0.5)), 
+    xval = xgroup)
+  n= 146 
+
+       CP nsplit rel error xerror    xstd
+1 0.39855      0    1.0000 1.2081 0.09381
+2 0.02335      1    0.6014 0.6679 0.07684
+3 0.02275      3    0.5548 0.8378 0.08445
+4 0.01892      5    0.5093 0.8857 0.08585
+5 0.01530      7    0.4714 0.8857 0.08585
+6 0.01000      9    0.4408 0.8639 0.08599
+
+Variable importance
+     g2   grade gleason  ploidy     age     eet 
+     28      26      20      18       6       2 
+
+Node number 1: 146 observations,    complexity param=0.3986
+  predicted class=0  expected loss=0.5  P(node) =1
+    class counts:    92    54
+   probabilities: 0.500 0.500 
+  left son=2 (61 obs) right son=3 (85 obs)
+  Primary splits:
+      grade   < 2.5   to the left,  improve=12.490, (0 missing)
+      gleason < 5.5   to the left,  improve=10.510, (3 missing)
+      ploidy  splits as  LRR,       improve= 9.018, (0 missing)
+      g2      < 13.2  to the left,  improve= 8.281, (7 missing)
+      age     < 58.5  to the right, improve= 1.520, (0 missing)
+  Surrogate splits:
+      gleason < 5.5   to the left,  agree=0.863, adj=0.672, (0 split)
+      ploidy  splits as  LRR,       agree=0.644, adj=0.148, (0 split)
+      g2      < 9.945 to the left,  agree=0.630, adj=0.115, (0 split)
+      age     < 66.5  to the right, agree=0.589, adj=0.016, (0 split)
+
+Node number 2: 61 observations,    complexity param=0.0153
+  predicted class=0  expected loss=0.2277  P(node) =0.3659
+    class counts:    52     9
+   probabilities: 0.772 0.228 
+  left son=4 (33 obs) right son=5 (28 obs)
+  Primary splits:
+      g2      < 11.36 to the left,  improve=3.5470, (1 missing)
+      ploidy  splits as  LRL,       improve=3.2970, (0 missing)
+      age     < 68.5  to the right, improve=1.2020, (0 missing)
+      gleason < 5.5   to the left,  improve=0.6474, (3 missing)
+      eet     < 1.5   to the left,  improve=0.1910, (1 missing)
+  Surrogate splits:
+      ploidy splits as  LR-,       agree=0.917, adj=0.815, (0 split)
+      age    < 65.5  to the left,  agree=0.617, adj=0.148, (1 split)
+
+Node number 3: 85 observations,    complexity param=0.02335
+  predicted class=1  expected loss=0.3429  P(node) =0.6341
+    class counts:    40    45
+   probabilities: 0.343 0.657 
+  left son=6 (40 obs) right son=7 (45 obs)
+  Primary splits:
+      g2      < 13.2  to the left,  improve=1.96800, (6 missing)
+      ploidy  splits as  LRR,       improve=1.84100, (0 missing)
+      age     < 56.5  to the right, improve=1.32300, (0 missing)
+      gleason < 8.5   to the left,  improve=1.26900, (0 missing)
+      eet     < 1.5   to the right, improve=0.09632, (1 missing)
+  Surrogate splits:
+      ploidy  splits as  LRL,       agree=0.962, adj=0.914, (6 split)
+      age     < 68.5  to the right, agree=0.608, adj=0.114, (0 split)
+      gleason < 6.5   to the left,  agree=0.582, adj=0.057, (0 split)
+
+Node number 4: 33 observations
+  predicted class=0  expected loss=0.05055  P(node) =0.1832
+    class counts:    32     1
+   probabilities: 0.949 0.051 
+
+Node number 5: 28 observations,    complexity param=0.0153
+  predicted class=0  expected loss=0.4053  P(node) =0.1828
+    class counts:    20     8
+   probabilities: 0.595 0.405 
+  left son=10 (20 obs) right son=11 (8 obs)
+  Primary splits:
+      gleason < 5.5   to the left,  improve=1.1580, (1 missing)
+      age     < 67.5  to the right, improve=1.1420, (0 missing)
+      g2      < 14.37 to the right, improve=0.8086, (1 missing)
+
+Node number 6: 40 observations,    complexity param=0.02335
+  predicted class=1  expected loss=0.4426  P(node) =0.2824
+    class counts:    23    17
+   probabilities: 0.443 0.557 
+  left son=12 (7 obs) right son=13 (33 obs)
+  Primary splits:
+      g2      < 11.84 to the right, improve=1.42400, (5 missing)
+      ploidy  splits as  LLR,       improve=1.31000, (0 missing)
+      gleason < 7.5   to the left,  improve=0.86340, (0 missing)
+      age     < 61.5  to the right, improve=0.57940, (0 missing)
+      eet     < 1.5   to the left,  improve=0.05363, (0 missing)
+  Surrogate splits:
+      ploidy splits as  RLR, agree=0.857, adj=0.286, (5 split)
+
+Node number 7: 45 observations,    complexity param=0.02275
+  predicted class=1  expected loss=0.2627  P(node) =0.3517
+    class counts:    17    28
+   probabilities: 0.263 0.737 
+  left son=14 (22 obs) right son=15 (23 obs)
+  Primary splits:
+      g2      < 17.91 to the right, improve=4.07900, (1 missing)
+      age     < 62.5  to the right, improve=0.66100, (0 missing)
+      gleason < 7.5   to the left,  improve=0.16170, (0 missing)
+      eet     < 1.5   to the right, improve=0.09922, (1 missing)
+  Surrogate splits:
+      age     < 61.5  to the right, agree=0.614, adj=0.190, (1 split)
+      eet     < 1.5   to the right, agree=0.591, adj=0.143, (0 split)
+      grade   < 3.5   to the right, agree=0.545, adj=0.048, (0 split)
+      gleason < 6.5   to the right, agree=0.545, adj=0.048, (0 split)
+
+Node number 10: 20 observations
+  predicted class=0  expected loss=0.2987  P(node) =0.124
+    class counts:    16     4
+   probabilities: 0.701 0.299 
+
+Node number 11: 8 observations
+  predicted class=1  expected loss=0.3699  P(node) =0.05878
+    class counts:     4     4
+   probabilities: 0.370 0.630 
+
+Node number 12: 7 observations
+  predicted class=0  expected loss=0.2212  P(node) =0.04187
+    class counts:     6     1
+   probabilities: 0.779 0.221 
+
+Node number 13: 33 observations,    complexity param=0.01892
+  predicted class=1  expected loss=0.3841  P(node) =0.2405
+    class counts:    17    16
+   probabilities: 0.384 0.616 
+  left son=26 (25 obs) right son=27 (8 obs)
+  Primary splits:
+      g2      < 11    to the left,  improve=1.06300, (5 missing)
+      ploidy  splits as  L-R,       improve=0.73950, (0 missing)
+      gleason < 6.5   to the left,  improve=0.57220, (0 missing)
+      age     < 62.5  to the right, improve=0.13320, (0 missing)
+      eet     < 1.5   to the left,  improve=0.05492, (0 missing)
+  Surrogate splits:
+      age < 70.5  to the left,  agree=0.821, adj=0.286, (5 split)
+
+Node number 14: 22 observations,    complexity param=0.02275
+  predicted class=0  expected loss=0.4933  P(node) =0.1502
+    class counts:    14     8
+   probabilities: 0.507 0.493 
+  left son=28 (15 obs) right son=29 (7 obs)
+  Primary splits:
+      age     < 62.5  to the right, improve=0.976400, (0 missing)
+      g2      < 23.48 to the right, improve=0.284300, (1 missing)
+      gleason < 7.5   to the left,  improve=0.003765, (0 missing)
+  Surrogate splits:
+      gleason < 6.5   to the right, agree=0.773, adj=0.286, (0 split)
+
+Node number 15: 23 observations
+  predicted class=1  expected loss=0.08092  P(node) =0.2015
+    class counts:     3    20
+   probabilities: 0.081 0.919 
+
+Node number 26: 25 observations,    complexity param=0.01892
+  predicted class=1  expected loss=0.4276  P(node) =0.1779
+    class counts:    14    11
+   probabilities: 0.428 0.572 
+  left son=52 (17 obs) right son=53 (8 obs)
+  Primary splits:
+      ploidy  splits as  L-R,       improve=2.157000, (0 missing)
+      gleason < 6.5   to the left,  improve=1.972000, (0 missing)
+      age     < 61.5  to the right, improve=0.971800, (0 missing)
+      g2      < 7.65  to the right, improve=0.404500, (4 missing)
+      eet     < 1.5   to the left,  improve=0.002614, (0 missing)
+  Surrogate splits:
+      eet < 1.5   to the right, agree=0.72, adj=0.125, (0 split)
+      g2  < 4.33  to the right, agree=0.72, adj=0.125, (0 split)
+
+Node number 27: 8 observations
+  predicted class=1  expected loss=0.2605  P(node) =0.0626
+    class counts:     3     5
+   probabilities: 0.260 0.740 
+
+Node number 28: 15 observations
+  predicted class=0  expected loss=0.3825  P(node) =0.09682
+    class counts:    11     4
+   probabilities: 0.617 0.383 
+
+Node number 29: 7 observations
+  predicted class=1  expected loss=0.3057  P(node) =0.05334
+    class counts:     3     4
+   probabilities: 0.306 0.694 
+
+Node number 52: 17 observations
+  predicted class=0  expected loss=0.4152  P(node) =0.1115
+    class counts:    12     5
+   probabilities: 0.585 0.415 
+
+Node number 53: 8 observations
+  predicted class=1  expected loss=0.1636  P(node) =0.06643
+    class counts:     2     6
+   probabilities: 0.164 0.836 
+
+> #
+> # Fit a classification model to the car data.
+> #  Now, since Reliability is an ordered category, this model doesn't
+> # make a lot of statistical sense, but it does test out some
+> # areas of the code that nothing else does
+> #
+> xcar <- rep(1:8, length=nrow(cu.summary))
+> carfit <- rpart(Reliability ~ Price + Country + Mileage + Type,
++ 		   method='class', data=cu.summary, xval=xcar)
+> 
+> summary(carfit)
+Call:
+rpart(formula = Reliability ~ Price + Country + Mileage + Type, 
+    data = cu.summary, method = "class", xval = xcar)
+  n=85 (32 observations deleted due to missingness)
+
+       CP nsplit rel error xerror    xstd
+1 0.30508      0    1.0000 1.0000 0.07200
+2 0.08475      1    0.6949 0.6949 0.07808
+3 0.05085      2    0.6102 0.7119 0.07813
+4 0.03390      3    0.5593 0.6780 0.07800
+5 0.01000      4    0.5254 0.6780 0.07800
+
+Variable importance
+Country    Type   Price 
+     66      22      12 
+
+Node number 1: 85 observations,    complexity param=0.3051
+  predicted class=average      expected loss=0.6941  P(node) =1
+    class counts:    18    12    26     8    21
+   probabilities: 0.212 0.141 0.306 0.094 0.247 
+  left son=2 (58 obs) right son=3 (27 obs)
+  Primary splits:
+      Country splits as  ---LRRLLLL, improve=15.220, (0 missing)
+      Type    splits as  RLLRLL,     improve= 4.288, (0 missing)
+      Price   < 11970 to the right,  improve= 3.200, (0 missing)
+      Mileage < 24.5  to the left,   improve= 2.476, (36 missing)
+
+Node number 2: 58 observations,    complexity param=0.08475
+  predicted class=average      expected loss=0.6034  P(node) =0.6824
+    class counts:    18    12    23     5     0
+   probabilities: 0.310 0.207 0.397 0.086 0.000 
+  left son=4 (9 obs) right son=5 (49 obs)
+  Primary splits:
+      Type    splits as  RRRRLR,     improve=3.187, (0 missing)
+      Price   < 11230 to the left,   improve=2.564, (0 missing)
+      Mileage < 24.5  to the left,   improve=1.802, (30 missing)
+      Country splits as  ---L--RLRL, improve=1.329, (0 missing)
+
+Node number 3: 27 observations
+  predicted class=Much better  expected loss=0.2222  P(node) =0.3176
+    class counts:     0     0     3     3    21
+   probabilities: 0.000 0.000 0.111 0.111 0.778 
+
+Node number 4: 9 observations
+  predicted class=Much worse   expected loss=0.2222  P(node) =0.1059
+    class counts:     7     0     2     0     0
+   probabilities: 0.778 0.000 0.222 0.000 0.000 
+
+Node number 5: 49 observations,    complexity param=0.05085
+  predicted class=average      expected loss=0.5714  P(node) =0.5765
+    class counts:    11    12    21     5     0
+   probabilities: 0.224 0.245 0.429 0.102 0.000 
+  left son=10 (27 obs) right son=11 (22 obs)
+  Primary splits:
+      Type    splits as  RLLR-L,     improve=2.880, (0 missing)
+      Mileage < 24.5  to the left,   improve=2.500, (25 missing)
+      Price   < 11470 to the right,  improve=2.424, (0 missing)
+      Country splits as  ---R--LRLR, improve=1.027, (0 missing)
+  Surrogate splits:
+      Price   < 11470 to the right,  agree=0.898, adj=0.773, (0 split)
+      Country splits as  ---R--RRRL, agree=0.755, adj=0.455, (0 split)
+
+Node number 10: 27 observations
+  predicted class=average      expected loss=0.4074  P(node) =0.3176
+    class counts:     7     4    16     0     0
+   probabilities: 0.259 0.148 0.593 0.000 0.000 
+
+Node number 11: 22 observations,    complexity param=0.0339
+  predicted class=worse        expected loss=0.6364  P(node) =0.2588
+    class counts:     4     8     5     5     0
+   probabilities: 0.182 0.364 0.227 0.227 0.000 
+  left son=22 (14 obs) right son=23 (8 obs)
+  Primary splits:
+      Country splits as  ---R--LRRL, improve=1.5190, (0 missing)
+      Price   < 8646  to the left,   improve=1.2720, (0 missing)
+      Type    splits as  L--R--,     improve=0.1909, (0 missing)
+  Surrogate splits:
+      Price < 13970 to the left,  agree=0.864, adj=0.625, (0 split)
+
+Node number 22: 14 observations
+  predicted class=worse        expected loss=0.5714  P(node) =0.1647
+    class counts:     4     6     1     3     0
+   probabilities: 0.286 0.429 0.071 0.214 0.000 
+
+Node number 23: 8 observations
+  predicted class=average      expected loss=0.5  P(node) =0.09412
+    class counts:     0     2     4     2     0
+   probabilities: 0.000 0.250 0.500 0.250 0.000 
+
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.480   0.039   0.504 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/backticks.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/backticks.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/backticks.R	(revision 2476)
@@ -0,0 +1,7 @@
+## allow backticks in rpart.matrix: see
+## https://stat.ethz.ch/pipermail/r-help/2012-May/314081.html
+
+library(rpart)
+Iris <- iris
+names(Iris) <- sub(".", " ", names(iris), fixed=TRUE)
+rpart(Species ~ `Sepal Length`, data = Iris)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble2.R	(revision 2476)
@@ -0,0 +1,58 @@
+#
+# Test weights in a regression problem
+#
+library(rpart)
+mystate <- data.frame(state.x77, region=factor(state.region))
+names(mystate) <- c("population","income" , "illiteracy","life" ,
+       "murder", "hs.grad", "frost",     "area",      "region")
+
+xgrp <- rep(1:10,5)
+fit4 <- rpart(income ~ population + region + illiteracy +life + murder +
+                        hs.grad + frost , mystate,
+                   control=rpart.control(minsplit=10, xval=xgrp))
+wts <- rep(3, nrow(mystate))
+fit4b <-  rpart(income ~ population + region + illiteracy +life + murder +
+                        hs.grad + frost , mystate,
+                   control=rpart.control(minsplit=10, xval=xgrp), weights=wts)
+fit4b$frame$wt   <- fit4b$frame$wt/3
+fit4b$frame$dev  <- fit4b$frame$dev/3
+fit4b$cptable[,5] <- fit4b$cptable[,5] * sqrt(3)
+temp <- c('frame', 'where', 'splits', 'csplit', 'cptable')
+all.equal(fit4[temp], fit4b[temp])  
+
+
+# Next is a very simple case, but worth keeping
+dummy <- data.frame(y=1:10, x1=c(10:4, 1:3), x2=c(1,3,5,7,9,2,4,6,8,0))
+
+xx1 <- rpart(y ~ x1 + x2, dummy, minsplit=4, xval=0)
+xx2 <- rpart(y ~ x1 + x2, dummy, weights=rep(2,10), minsplit=4, xval=0)
+
+all.equal(xx1$frame$dev, c(82.5, 10, 2, .5, 10, .5, 2))
+all.equal(xx2$frame$dev, c(82.5, 10, 2, .5, 10, .5, 2)*2)
+
+# Now for a set of non-equal weights
+#  We need to set maxcompete=3 because there just happens to be, in one
+#  of the lower nodes, an exact tie between variables "life" and "murder".
+#  Round off error causes fit5 to choose one and fit5b the other.
+# Later -- cut it back to maxdepth=3 for the same reason (a tie).
+#
+nn <- nrow(mystate)
+wts <- rep(1:5, length=nn)
+temp <- rep(1:nn, wts)             #row replicates
+xgrp <- rep(1:10, length=nn)
+xgrp2<- rep(xgrp, wts)
+tempc <- rpart.control(minsplit=2, xval=xgrp2, maxsurrogate=0,
+		       maxcompete=3, maxdepth=3)
+#  Direct: replicate rows in the data set, and use unweighted
+fit5 <-  rpart(income ~ population + region + illiteracy +life + murder +
+                        hs.grad + frost , data=mystate[temp,], control=tempc)
+#  Weighted
+tempc <- rpart.control(minsplit=2, xval=xgrp, maxsurrogate=0,
+		       maxcompete=3, maxdepth=3)
+fit5b <-  rpart(income ~ population + region + illiteracy +life + murder +
+                        hs.grad + frost , data=mystate, control=tempc,
+                        weights=wts)
+all.equal(fit5$frame[-2],  fit5b$frame[-2])  # the "n" component won't match
+all.equal(fit5$cptable,    fit5b$cptable)
+all.equal(fit5$splits[,-1],fit5b$splits[,-1]) 
+all.equal(fit5$csplit,    fit5b$csplit)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble3.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble3.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble3.R	(revision 2476)
@@ -0,0 +1,29 @@
+#
+# The treble test for classification trees
+#  
+#
+library(rpart)
+xgrp <- rep(1:10,length=nrow(cu.summary))
+carfit <- rpart(Country ~ Reliability + Price + Mileage + Type,
+		 method='class', data=cu.summary, 
+		 control=rpart.control(xval=xgrp))
+
+carfit2 <- rpart(Country ~ Reliability + Price + Mileage + Type,
+		 method='class', data=cu.summary, 
+		 weight=rep(3,nrow(cu.summary)),
+		 control=rpart.control(xval=xgrp))
+
+all.equal(carfit$frame$wt,    carfit2$frame$wt/3)
+all.equal(carfit$frame$dev,   carfit2$frame$dev/3)
+all.equal(carfit$frame[,5:7], carfit2$frame[,5:7])
+all.equal(carfit$frame$yval2[,12:21], carfit2$frame$yval2[,12:21])
+all.equal(carfit[c('where', 'csplit')],
+	  carfit2[c('where', 'csplit')])
+xx <- carfit2$splits
+xx[,'improve'] <- xx[,'improve'] / ifelse(xx[,5]> 0,1,3) # surrogate?
+all.equal(xx, carfit$splits)
+all.equal(as.vector(carfit$cptable), 
+	  as.vector(carfit2$cptable%*% diag(c(1,1,1,1,sqrt(3)))))
+
+summary(carfit2)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble4.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble4.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble4.R	(revision 2476)
@@ -0,0 +1,57 @@
+#
+# Treble test for class trees with 2 outcomes
+#
+# fit1 and fit1b failed equality because .7 and .3 are not easily represented
+# in binary.  Thus a complelxity param was 4e-17 (basically 0, but enough
+# to cause a split where it shouldn't be). Eric Lunde 2005-08-03
+library(rpart)
+control <- rpart.control(maxsurrogate=0, cp=1e-15, xval=0)
+
+fit1 <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis, 
+              control=control,
+              parms=list(prior=c(.7,.3), 
+                loss=matrix(c(0,1,2,0),nrow=2,ncol=2)))
+wts <- rep(3, nrow(kyphosis))
+fit1b <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis, 
+               control=control,
+	       weights=wts,
+               parms=list(prior=c(.7,.3), 
+                 loss=matrix(c(0,1,2,0),nrow=2,ncol=2)))
+fit1b$frame$wt   <- fit1b$frame$wt/3
+fit1b$frame$dev  <- fit1b$frame$dev/3
+fit1b$frame$yval2[,2:3] <- fit1b$frame$yval2[,2:3]/3
+fit1b$splits[,3] <- fit1b$splits[,3]/3
+fit1b$variable.importance <- fit1b$variable.importance/3
+all.equal(fit1[-3], fit1b[-3])   #all but the "call"
+
+# Now for a set of non-equal weights
+nn <- nrow(kyphosis)
+pseudo <- double(nn)
+pseudo[1] <- pi/6
+for (i in 2:nn) pseudo[i] <- 4*pseudo[i-1]*(1-pseudo[i-1])
+
+wts <-  rep(1:7, length=nn)
+temp <- rep(1:nn, wts)             #row replicates
+xgrp <- rep(1:10, length=nn)[order(pseudo)]
+xgrp2<- rep(xgrp, wts)
+
+# The cp value stops one last split where the two predictors are
+#  completely equal in importance (perfect surrogates), but the
+#  weighted and unweighted pick a different one due to round off error
+tempc <- rpart.control(minsplit=2, xval=xgrp2, maxsurrogate=0, cp=.039)
+#  Direct: replicate rows in the data set, and use unweighted
+fit2 <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis[temp,], 
+               control=tempc, 
+               parms=list(prior=c(.7,.3), 
+                          loss=matrix(c(0,1,2,0),nrow=2,ncol=2)))
+#  Weighted
+tempc <- rpart.control(minsplit=2, xval=xgrp, maxsurrogate=0, cp=.039)
+fit2b <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis, 
+               control=tempc, weights=wts,
+               parms=list(prior=c(.7,.3), 
+                          loss=matrix(c(0,1,2,0),nrow=2,ncol=2)))
+
+all.equal(fit2$frame[,-2],  fit2b$frame[,-2])  # the "n" component won't match
+all.equal(fit2$cptable, fit2b$cptable)
+all.equal(fit2$splits[,-1],fit2b$splits[,-1]) 
+all.equal(fit2$csplit,    fit2b$csplit)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble.Rout.save	(revision 2476)
@@ -0,0 +1,101 @@
+
+R Under development (unstable) (2014-01-25 r64879) -- "Unsuffered Consequences"
+Copyright (C) 2014 The R Foundation for Statistical Computing
+Platform: x86_64-apple-darwin13.0.0 (64-bit)
+
+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.
+
+> #
+> # Simplest weight test: treble the weights
+> #
+> #  By using the unshrunken estimates the weights will nearly cancel
+> #   out:  frame$wt, frame$dev, frame$yval2, and improvement will all
+> #   be threefold larger, other things will be the same.
+> # The improvement is the splits matrix, column 3, rows with n>0.  Other
+> #   rows are surrogate splits.
+> library(rpart)
+> require(survival)
+Loading required package: survival
+Loading required package: splines
+> 
+> tempc <- rpart.control(maxsurrogate=0, cp=0, xval=0)
+> fit1 <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
++                 stagec, control=tempc,
++                 method='poisson', parms=list(shrink=0))
+> wts <- rep(3, nrow(stagec))
+> fit1b <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
++                 stagec, control= tempc, parms=list(shrink=0),
++                 method='poisson', weights=wts)
+> fit1b$frame$wt   <- fit1b$frame$wt/3
+> fit1b$frame$dev  <- fit1b$frame$dev/3
+> fit1b$frame$yval2[,2] <- fit1b$frame$yval2[,2]/3
+> fit1b$splits[,3] <- fit1b$splits[,3]/3
+> zz <- match(c("call", "variable.importance"), names(fit1))
+> all.equal(fit1[-zz], fit1b[-zz])   #all but the "call" and importance
+[1] TRUE
+> all.equal(fit1b$variable.importance/fit1$variable.importance, rep(3,4),
++           check.attributes = FALSE)
+[1] TRUE
+> 
+> #
+> # Compare a pair of multiply weighted fits
+> #  In this one, the lengths of where and y won't match
+> # I have to set minsplit to the smallest possible, because otherwise
+> #  the replicated data set will sometimes have enough "n" to split, but
+> #  the weighted one won't.  Use of CP keeps the degenerate splits
+> #  (n=2, several covariates with exactly the same improvement) at bay.
+> # For larger trees, the weighted split will sometimes have fewer
+> #  surrogates, because of the "at least two obs" rule.
+> #
+> # Create a reproducable psuedo random order using the logisic attractor
+> pseudo <- double(nrow(stagec))
+> pseudo[1] <- pi/4
+> for (i in 2:nrow(stagec)) pseudo[i] <- 4*pseudo[i-1]*(1 - pseudo[i-1])
+> 
+> wts <- rep(1:5, length=nrow(stagec))
+> temp <- rep(1:nrow(stagec), wts)             #row replicates
+> xgrp <- rep(1:10, length=146)[order(pseudo)]
+> xgrp2<- rep(xgrp, wts)
+> #  Direct: replicate rows in the data set, and use unweighted
+> fit2 <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
++ 	      control=rpart.control(minsplit=2, xval=xgrp2, cp=.025),
++ 	      data=stagec[temp,], method='poisson')
+> 
+> #  Weighted
+> fit2b<- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
++ 	      control=rpart.control(minsplit=2, xval=xgrp, cp=.025),
++ 	      data=stagec, method='poisson', weight=wts)
+> 
+> all.equal(fit2$frame[-2],  fit2b$frame[-2])  # the "n" component won't match
+[1] TRUE
+> all.equal(fit2$cptable,    fit2b$cptable)
+[1] TRUE
+> #all.equal(fit2$splits[,-1],fit2b$splits[,-1]) #fails
+> toss <- c(49, 64)
+> all.equal(fit2$splits[-toss,-1],fit2b$splits[-toss,-1]) #ok
+[1] TRUE
+> all.equal(fit2$csplit,    fit2b$csplit)
+[1] TRUE
+> # Line 49 is a surrogate split in a group whose 2 smallest ages are
+> #  47 and 48.  The weighted fit won't split there because it wants to
+> #  send at least 2 obs to the left; the replicate fit thinks that there
+> #  are several 47's.
+> 
+> 
+> 
+> 
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.252   0.028   0.262 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/cptest.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/cptest.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/cptest.R	(revision 2476)
@@ -0,0 +1,21 @@
+library(rpart)
+mystate <- data.frame(state.x77, region=factor(state.region))
+names(mystate) <- c("population","income" , "illiteracy","life" ,
+       "murder", "hs.grad", "frost",     "area",      "region")
+#
+# This little test came out of a query that cp did not scale
+#  with the data size.  It does
+#
+# tdata = 20 copies of "mystate"  
+# trees with tdata and trees with mystate should be the same (they are)
+#  except for the n's
+tdata <- rbind(mystate, mystate, mystate, mystate, mystate)
+tdata <- rbind(tdata, tdata, tdata, tdata)
+tfit1 <- rpart(income ~ population + illiteracy + murder + hs.grad + region,
+               data = mystate, method = "anova", xval=0, cp=.089)
+tfit2 <- rpart(income ~ population + illiteracy + murder + hs.grad + region,
+               data = tdata, method='anova', xval=0, cp=.089, 
+               minsplit=400, minbucket=140)
+
+all.equal(tfit1$splits[,-1], tfit2$splits[,-1])
+ 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/usersplits.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/usersplits.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/usersplits.Rout.save	(revision 2476)
@@ -0,0 +1,173 @@
+
+R version 2.15.0 (2012-03-30)
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> # Any necessary setup
+> library(rpart)
+> options(na.action="na.omit")
+> options(digits=4) # to match earlier output
+> set.seed(1234)
+> 
+> mystate <- data.frame(state.x77, region=factor(state.region))
+> names(mystate) <- c("population","income" , "illiteracy","life" ,
++        "murder", "hs.grad", "frost",     "area",      "region")
+> #
+> # Test out the "user mode" functions, with an anova variant
+> #
+> 
+> # The 'evaluation' function.  Called once per node.
+> #  Produce a label (1 or more elements long) for labeling each node,
+> #  and a deviance.  The latter is
+> #	- of length 1
+> #       - equal to 0 if the node is "pure" in some sense (unsplittable)
+> #       - does not need to be a deviance: any measure that gets larger
+> #            as the node is less acceptable is fine.
+> #       - the measure underlies cost-complexity pruning, however
+> temp1 <- function(y, wt, parms) {
++     wmean <- sum(y*wt)/sum(wt)
++     rss <- sum(wt*(y-wmean)^2)
++     list(label= wmean, deviance=rss)
++     }
+> 
+> # The split function, where most of the work occurs.
+> #   Called once per split variable per node.
+> # If continuous=T
+> #   The actual x variable is ordered
+> #   y is supplied in the sort order of x, with no missings,
+> #   return two vectors of length (n-1):
+> #      goodness = goodness of the split, larger numbers are better.
+> #                 0 = couldn't find any worthwhile split
+> #        the ith value of goodness evaluates splitting obs 1:i vs (i+1):n
+> #      direction= -1 = send "y< cutpoint" to the left side of the tree
+> #                  1 = send "y< cutpoint" to the right
+> #         this is not a big deal, but making larger "mean y's" move towards
+> #         the right of the tree, as we do here, seems to make it easier to
+> #         read
+> # If continuos=F, x is a set of integers defining the groups for an
+> #   unordered predictor.  In this case:
+> #       direction = a vector of length m= "# groups".  It asserts that the
+> #           best split can be found by lining the groups up in this order
+> #           and going from left to right, so that only m-1 splits need to
+> #           be evaluated rather than 2^(m-1)
+> #       goodness = m-1 values, as before.
+> #
+> # The reason for returning a vector of goodness is that the C routine
+> #   enforces the "minbucket" constraint. It selects the best return value
+> #   that is not too close to an edge.
+> temp2 <- function(y, wt, x, parms, continuous) {
++     # Center y
++     n <- length(y)
++     y <- y- sum(y*wt)/sum(wt)
++ 
++     if (continuous) {
++ 	# continuous x variable
++ 	temp <- cumsum(y*wt)[-n]
++ 
++ 	left.wt  <- cumsum(wt)[-n]
++ 	right.wt <- sum(wt) - left.wt
++ 	lmean <- temp/left.wt
++ 	rmean <- -temp/right.wt
++ 	goodness <- (left.wt*lmean^2 + right.wt*rmean^2)/sum(wt*y^2)
++ 	list(goodness= goodness, direction=sign(lmean))
++ 	}
++     else {
++ 	# Categorical X variable
++ 	ux <- sort(unique(x))
++ 	wtsum <- tapply(wt, x, sum)
++ 	ysum  <- tapply(y*wt, x, sum)
++ 	means <- ysum/wtsum
++ 
++ 	# For anova splits, we can order the categories by their means
++ 	#  then use the same code as for a non-categorical
++ 	ord <- order(means)
++ 	n <- length(ord)
++ 	temp <- cumsum(ysum[ord])[-n]
++ 	left.wt  <- cumsum(wtsum[ord])[-n]
++ 	right.wt <- sum(wt) - left.wt
++ 	lmean <- temp/left.wt
++ 	rmean <- -temp/right.wt
++ 	list(goodness= (left.wt*lmean^2 + right.wt*rmean^2)/sum(wt*y^2),
++ 	     direction = ux[ord])
++ 	}
++     }
+> 
+> # The init function:
+> #   fix up y to deal with offsets
+> #   return a dummy parms list
+> #   numresp is the number of values produced by the eval routine's "label"
+> #   numy is the number of columns for y
+> #   summary is a function used to print one line in summary.rpart
+> # In general, this function would also check for bad data, see rpart.poisson
+> #   for instace.
+> temp3 <- function(y, offset, parms, wt) {
++     if (!is.null(offset)) y <- y-offset
++     list(y=y, parms=0, numresp=1, numy=1,
++ 	      summary= function(yval, dev, wt, ylevel, digits ) {
++ 		  paste("  mean=", format(signif(yval, digits)),
++ 			", MSE=" , format(signif(dev/wt, digits)),
++ 			sep='')
++ 	     })
++     }
+> 
+> 
+> alist <- list(eval=temp1, split=temp2, init=temp3)
+> 
+> fit1 <- rpart(income ~population +illiteracy  + murder + hs.grad + region,
++ 	     mystate, control=rpart.control(minsplit=10, xval=0),
++ 	     method=alist)
+> 
+> fit2 <- rpart(income ~population +illiteracy + murder + hs.grad + region,
++ 	     mystate, control=rpart.control(minsplit=10, xval=0),
++ 	      method='anova')
+> 
+> # Other than their call statement, and a longer "functions" component in
+> #  fit1, fit1 and fit2 should be identical.
+> all.equal(fit1$frame, fit2$frame)
+[1] TRUE
+> all.equal(fit1$splits, fit2$splits)
+[1] TRUE
+> all.equal(fit1$csplit, fit2$csplit)
+[1] TRUE
+> all.equal(fit1$where, fit2$where)
+[1] TRUE
+> all.equal(fit1$cptable, fit2$cptable)
+[1] TRUE
+> 
+> # Now try xpred on it
+> xvtemp <- rep(1:5, length=50)
+> xp1 <- xpred.rpart(fit1, xval=xvtemp)
+> xp2 <- xpred.rpart(fit2, xval=xvtemp)
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> aeq(xp1, xp2)
+[1] TRUE
+> 
+> fit3 <- rpart(income ~population +illiteracy + murder + hs.grad + region,
++ 	     mystate, control=rpart.control(minsplit=10, xval=xvtemp),
++ 	      method='anova')
+> zz <- apply((mystate$income - xp1)^2,2, sum)
+> aeq(zz/fit1$frame$dev[1], fit3$cptable[,4])  #reproduce xerror
+[1] TRUE
+> 
+> zz2 <- sweep((mystate$income-xp1)^2,2, zz/nrow(xp1))
+> zz2 <- sqrt(apply(zz2^2, 2, sum))/ fit1$frame$dev[1]
+> aeq(zz2, fit3$cptable[,5])          #reproduce se(xerror)
+[1] TRUE
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.322   0.064   0.419 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/rescale.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/rescale.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/rescale.Rout.save	(revision 2476)
@@ -0,0 +1,52 @@
+
+R version 2.15.0 (2012-03-30)
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> #
+> # Test out the rescaling done for Surv objects
+> #
+> library(rpart)
+> require(survival)
+Loading required package: survival
+Loading required package: splines
+> 
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> tdata <- data.frame(time=c(1,4,3,2,5,7,8,9,4), status=c(0,1,1,0,0,1,1,0,1),
++ 		    x=1:9)
+> fit2 <- rpart.exp(Surv(tdata$time, tdata$status), NULL, wt=rep(1,9))
+> 
+> #
+> # Here is what it should be, in order
+> #    for the intervals (0,3], (3,4], (4,7], (7,9]
+> deaths <- c( 1, 2,  1, 1)
+> pyears <- c(24, 6, 10, 3)
+> rate   <- deaths/pyears
+> cumhaz <- cumsum(c(0, rate*c(3,1,3,2)))
+> 
+> aeq(fit2$y[,2], tdata$status)
+[1] TRUE
+> aeq(fit2$y[,1], approx(c(0,3,4,7,9), cumhaz, tdata$time)$y)
+[1] TRUE
+> 
+> 
+> 
+>  
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.260   0.063   0.387 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/priors.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/priors.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/priors.Rout.save	(revision 2476)
@@ -0,0 +1,97 @@
+
+R version 2.15.0 (2012-03-30)
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> #
+> # A hard-core test of losses and priors
+> #  Simple data set where I know what the answers must be
+> #
+> library(rpart)
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> dummy <- c(3,1,4,1,5,9,2,6,5,3,5,8,9,7,9)/5
+> pdata <- data.frame(y=factor(rep(1:3, 5)),
++                     x1 = 1:15,
++                     x2 = c(1:6, 1:6, 1:3),
++                     x3 = (rep(1:3, 5) + dummy)*10)
+> 
+> pdata$x3[c(1,5,10)] <- NA
+> pdata$y[15] <- 1     # make things unbalanced
+> 
+> pfit <- rpart(y ~ x1 + x2 + x3, pdata,
++               cp=0, xval=0, minsplit=5, maxdepth=1,
++               parms=list(prior=c(.2, .3, .5), 
++                          loss =matrix(c(0,2,2,2,0,6,1,1,0), 3,3,byrow=T)))
+> 
+> #
+> # See section 12.1 of the report for these numbers
+> #
+> 
+> ntot   <- c(6,5,4)
+> phat   <- c(6,5,4)/15   # observed class probabilities
+> prior  <- c(.2, .3, .5) # priors
+> aprior <- c(4,12,5)/21  # altered priors
+> lmat   <- matrix(c(0,1,2, 2,0,1, 2,6,0), ncol=3)  #loss matrix
+> 
+> gini <- function(p) 1-sum(p^2)
+> loss <- function(n, class)  sum(n * lmat[,class])
+> 
+> phat <- function(n, ntot=c(6,5,4), prior=c(.2, .3, .5)) {
++     n*prior/ntot
++     }
+> 
+> # Are the losses correct?
+> # Class counts for the two children are (4,4,0) and (2,1,4), when
+> #   using surrogates
+> aeq(pfit$frame$dev/15, c(loss(prior,2), loss(phat(c(4,4,0)),2), 
++                                  loss(phat(c(2,1,4)),3)))
+[1] TRUE
+> # Node probabilities?
+> aeq(pfit$frame$yval2[,8] , 
++     c(1, sum(phat(c(4,4,0))), sum(phat(c(2,1,4)))))
+[1] TRUE
+> 
+> aeq(pfit$frame$yval2[,5:7] , rbind(prior, 
++                                    phat(c(4,4,0))/ sum(phat(c(4,4,0))), 
++                                    phat(c(2,1,4))/ sum(phat(c(2,1,4)))))
+[1] TRUE
+> 
+> # Now the node and class probs, under altered priors
+> phat2 <- function(n, ntot=c(6,5,4), prior=aprior) {
++     n*prior/ntot
++     }
+> 
+> # Use these to create the gini losses, base data, and for the best
+> #  splits on variables 1, 2, 3
+> gfun <- function(n) {  #The gini loss for a node, given the counts
++     temp <- phat2(n)
++     sum(temp) * gini(temp/sum(temp))
++     }
+>            
+> # These are in order x3, x2, x1 (best split to worst)
+> # Note that for x3, missing values cause the "parent" to be viewed as
+> #   having 12 obs instead of 15.
+> # Each line is gini(parent) - gini(children)
+> aeq(pfit$splits[1:3, 3],
++     15* c(gfun(c(4,4,4)) - (gfun(c(3,4,0)) +  gfun(c(1,0,4))),
++           gfun(c(6,5,4)) - (gfun(c(6,5,2)) +  gfun(c(0,0,2))),
++           gfun(c(6,5,4)) - (gfun(c(4,4,4)) +  gfun(c(2,1,0)))))
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  0.211   0.059   0.315 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/xpred1.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/xpred1.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/xpred1.R	(revision 2476)
@@ -0,0 +1,31 @@
+#
+# Test out the "return.all" argument of xpred
+#   this is a very small test case for debugging
+#
+library(rpart)
+
+tdata <- data.frame(y=1:12, x1= 12:1, x2=c(1,1,5,5,4,4,9,9,7,7,3,3))
+xgrp <- rep(1:3, length=12)
+
+fit1 <- rpart(y ~ x1 + x2, tdata, minsplit=6)
+xfit1 <- xpred.rpart(fit1, xval=xgrp, return.all=T)
+
+xfit2 <- array(0, dim=dim(xfit1))
+cplist <- as.numeric(dimnames(xfit1)[[2]])
+
+for (i in 1:3) {
+    tfit <- rpart(y ~ x1+x2, tdata, subset=(xgrp !=i), minsplit=6)
+    # xvals are actually done on the absolute risk (node's risk /n), not on
+    #   the rescaled risk ((node risk)/ (top node risk)) which is the basis
+    #   for the printed CP.  To get the right answer we need to rescale.
+    cp2 <- cplist * (fit1$frame$dev[1] / fit1$frame$n[1]) / 
+                    (tfit$frame$dev[1] / tfit$frame$n[1])
+
+    for (j in 1:length(cp2)) {
+        tfit2 <- prune(tfit, cp=cp2[j])
+        temp <- predict(tfit2, newdata=tdata[xgrp==i,], type='matrix')
+        xfit2[xgrp==i, j] <- temp
+        }
+    }
+
+all.equal(xfit1, xfit2, check.attributes=FALSE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/xpred2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/xpred2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/xpred2.R	(revision 2476)
@@ -0,0 +1,33 @@
+#
+# Test out the "return.all" argument of xpred
+#  The data set has the virtue of continuous, categorical, and missings
+#
+library(rpart)
+require(survival)
+
+fit1 <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
+                stagec,  method='poisson')
+
+xgrp <- rep(1:3, length=nrow(stagec))  # explicitly set the xval groups
+
+xfit1 <- xpred.rpart(fit1, xval=xgrp, return.all=T)
+xfit2 <- array(0, dim=dim(xfit1))
+cplist <- as.numeric(dimnames(xfit1)[[2]])
+
+for (i in 1:3) {
+    tfit <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
+                stagec,  method='poisson', subset=(xgrp !=i))
+    # xvals are actually done on the absolute risk (node's risk /n), not on
+    #   the rescaled risk ((node risk)/ (top node risk)) which is the basis
+    #   for the printed CP.  To get the right answer we need to rescale.
+    cp2 <- cplist * (fit1$frame$dev[1] / fit1$frame$n[1]) / 
+                    (tfit$frame$dev[1] / tfit$frame$n[1])
+
+    for (j in 1:length(cp2)) {
+        tfit2 <- prune(tfit, cp=cp2[j])
+        temp <- predict(tfit2, newdata=stagec[xgrp==i,], type='matrix')
+        xfit2[xgrp==i, j,] <- temp
+        }
+    }
+
+all.equal(xfit1, xfit2, check.attributes=FALSE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/testall.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/testall.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/testall.R	(revision 2476)
@@ -0,0 +1,106 @@
+# 
+# This is a set of tests, with printout, that tries
+#  to exercise all of the splitting rules
+# It's less formal than the others in this directory, but covers
+#  more.
+# For all of the cross-validations I set xgroups explicitly, so as
+#  to avoid any changes in random number allocation of the groups.
+
+library(rpart)
+require(survival)
+options(digits=4)  #avoid trivial rounding changes across R versions
+
+# 
+#
+# Survival, using the stagec data
+#
+#   Time to progression in years
+#   status  1=progressed, 0= censored
+#   age
+#   early endocrine therapy   1=no 2=yes
+#   % of cells in g2 phase, from flow cytometry
+#   tumor grade (Farrow) 1,2,3,4
+#   Gleason score (competing grading system)
+#   ploidy
+xgroup <- rep(1:10, length=nrow(stagec))
+fit1 <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
+		stagec, method="poisson",
+              control=rpart.control(usesurrogate=0, cp=0, xval=xgroup))
+fit1
+summary(fit1)
+
+fit2 <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
+		stagec, xval=xgroup)
+fit2
+summary(fit2)
+
+
+#
+# Continuous y variable
+#  Use deterministic xgroups: the first group is the 1st, 11th, 21st, etc
+#  smallest obs, the second is 2, 12, 22, ...
+
+mystate <- data.frame(state.x77, region=factor(state.region))
+names(mystate) <- c("population","income" , "illiteracy","life" ,
+       "murder", "hs.grad", "frost",     "area",      "region")
+
+xvals <- 1:nrow(mystate)
+xvals[order(mystate$income)] <- rep(1:10, length=nrow(mystate))
+
+fit4 <- rpart(income ~ population + region + illiteracy +life + murder +
+			hs.grad + frost , mystate,
+		   control=rpart.control(minsplit=10, xval=xvals))
+
+summary(fit4)
+
+
+#
+# Check out xpred.rpart
+#
+meany <- mean(mystate$income)
+xpr <- xpred.rpart(fit4, xval=xvals)
+xpr2 <- (xpr - mystate$income)^2
+risk0 <- mean((mystate$income - meany)^2)
+xpmean <- as.vector(apply(xpr2, 2, mean))   #kill the names
+all.equal(xpmean/risk0, as.vector(fit4$cptable[,'xerror']))
+
+xpstd <- as.vector(apply((sweep(xpr2, 2, xpmean))^2, 2, sum))
+xpstd <- sqrt(xpstd)/(50*risk0)
+all.equal(xpstd, as.vector(fit4$cptable[,'xstd']))
+
+#
+# recreate subset #3 of the xval
+#
+tfit4 <- rpart(income ~ population + region + illiteracy +life + murder +
+			hs.grad + frost , mystate,  subset=(xvals!=3),
+		   control=rpart.control(minsplit=10, xval=0))
+tpred <- predict(tfit4, mystate[xvals==3,])
+all.equal(tpred, xpr[xvals==3,ncol(xpr)])
+
+# How much does this differ from the "real" formula, more complex,
+#   found on page 309 of Breiman et al. ?
+#xtemp <- (xpr2/outer(rep(1,50),xpmean)) -  ((mystate$income - meany)^2)/risk0
+#real.se<- xpmean* sqrt(apply(xtemp^2,2,sum))/(risk0*50)
+
+
+# Simple yes/no classification model
+fit5 <- rpart(factor(pgstat) ~  age + eet + g2+grade+gleason +ploidy,
+	  stagec, xval=xgroup)
+
+fit5
+
+fit6 <- rpart(factor(pgstat) ~  age + eet + g2+grade+gleason +ploidy,
+		stagec, parm=list(prior=c(.5,.5)), xval=xgroup)
+summary(fit6)
+#
+# Fit a classification model to the car data.
+#  Now, since Reliability is an ordered category, this model doesn't
+# make a lot of statistical sense, but it does test out some
+# areas of the code that nothing else does
+#
+xcar <- rep(1:8, length=nrow(cu.summary))
+carfit <- rpart(Reliability ~ Price + Country + Mileage + Type,
+		   method='class', data=cu.summary, xval=xcar)
+
+summary(carfit)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/cost.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/cost.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/cost.R	(revision 2476)
@@ -0,0 +1,25 @@
+library(rpart)
+require(survival)
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+#
+# Check out using costs
+#
+fit1 <- rpart(Surv(time, status) ~ age + sex + ph.ecog + ph.karno + pat.karno
+	      + meal.cal + wt.loss, data=lung,
+	      maxdepth=1, maxcompete=6, xval=0)
+
+fit2 <- rpart(Surv(time, status) ~ age + sex + ph.ecog + ph.karno + pat.karno
+	      + meal.cal + wt.loss, data=lung,
+	      maxdepth=1, maxcompete=6, xval=0, cost=(1+ 1:7/10))
+
+temp1 <- fit1$splits[1:7,]
+temp2 <- fit2$splits[1:7,]
+temp3 <- c('age', 'sex', 'ph.ecog', 'ph.karno', 'pat.karno', 'meal.cal',
+	   'wt.loss')
+indx1 <- match(temp3, dimnames(temp1)[[1]])
+indx2 <- match(temp3, dimnames(temp2)[[1]])
+aeq(temp1[indx1,1], temp2[indx2,1])             #same n's ?
+aeq(temp1[indx1,3], temp2[indx2,3]*(1+ 1:7/10)) #scaled importance
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/treble.R	(revision 2476)
@@ -0,0 +1,72 @@
+#
+# Simplest weight test: treble the weights
+#
+#  By using the unshrunken estimates the weights will nearly cancel
+#   out:  frame$wt, frame$dev, frame$yval2, and improvement will all
+#   be threefold larger, other things will be the same.
+# The improvement is the splits matrix, column 3, rows with n>0.  Other
+#   rows are surrogate splits.
+library(rpart)
+require(survival)
+
+tempc <- rpart.control(maxsurrogate=0, cp=0, xval=0)
+fit1 <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
+                stagec, control=tempc,
+                method='poisson', parms=list(shrink=0))
+wts <- rep(3, nrow(stagec))
+fit1b <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
+                stagec, control= tempc, parms=list(shrink=0),
+                method='poisson', weights=wts)
+fit1b$frame$wt   <- fit1b$frame$wt/3
+fit1b$frame$dev  <- fit1b$frame$dev/3
+fit1b$frame$yval2[,2] <- fit1b$frame$yval2[,2]/3
+fit1b$splits[,3] <- fit1b$splits[,3]/3
+zz <- match(c("call", "variable.importance"), names(fit1))
+all.equal(fit1[-zz], fit1b[-zz])   #all but the "call" and importance
+all.equal(fit1b$variable.importance/fit1$variable.importance, rep(3,4),
+          check.attributes = FALSE)
+
+#
+# Compare a pair of multiply weighted fits
+#  In this one, the lengths of where and y won't match
+# I have to set minsplit to the smallest possible, because otherwise
+#  the replicated data set will sometimes have enough "n" to split, but
+#  the weighted one won't.  Use of CP keeps the degenerate splits
+#  (n=2, several covariates with exactly the same improvement) at bay.
+# For larger trees, the weighted split will sometimes have fewer
+#  surrogates, because of the "at least two obs" rule.
+#
+# Create a reproducable psuedo random order using the logisic attractor
+pseudo <- double(nrow(stagec))
+pseudo[1] <- pi/4
+for (i in 2:nrow(stagec)) pseudo[i] <- 4*pseudo[i-1]*(1 - pseudo[i-1])
+
+wts <- rep(1:5, length=nrow(stagec))
+temp <- rep(1:nrow(stagec), wts)             #row replicates
+xgrp <- rep(1:10, length=146)[order(pseudo)]
+xgrp2<- rep(xgrp, wts)
+#  Direct: replicate rows in the data set, and use unweighted
+fit2 <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
+	      control=rpart.control(minsplit=2, xval=xgrp2, cp=.025),
+	      data=stagec[temp,], method='poisson')
+
+#  Weighted
+fit2b<- rpart(Surv(pgtime, pgstat) ~ age + eet + g2+grade+gleason +ploidy,
+	      control=rpart.control(minsplit=2, xval=xgrp, cp=.025),
+	      data=stagec, method='poisson', weight=wts)
+
+all.equal(fit2$frame[-2],  fit2b$frame[-2])  # the "n" component won't match
+all.equal(fit2$cptable,    fit2b$cptable)
+#all.equal(fit2$splits[,-1],fit2b$splits[,-1]) #fails
+toss <- c(49, 64)
+all.equal(fit2$splits[-toss,-1],fit2b$splits[-toss,-1]) #ok
+all.equal(fit2$csplit,    fit2b$csplit)
+# Line 49 is a surrogate split in a group whose 2 smallest ages are
+#  47 and 48.  The weighted fit won't split there because it wants to
+#  send at least 2 obs to the left; the replicate fit thinks that there
+#  are several 47's.
+
+
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/usersplits.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/usersplits.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/usersplits.R	(revision 2476)
@@ -0,0 +1,143 @@
+# Any necessary setup
+library(rpart)
+options(na.action="na.omit")
+options(digits=4) # to match earlier output
+set.seed(1234)
+
+mystate <- data.frame(state.x77, region=factor(state.region))
+names(mystate) <- c("population","income" , "illiteracy","life" ,
+       "murder", "hs.grad", "frost",     "area",      "region")
+#
+# Test out the "user mode" functions, with an anova variant
+#
+
+# The 'evaluation' function.  Called once per node.
+#  Produce a label (1 or more elements long) for labeling each node,
+#  and a deviance.  The latter is
+#	- of length 1
+#       - equal to 0 if the node is "pure" in some sense (unsplittable)
+#       - does not need to be a deviance: any measure that gets larger
+#            as the node is less acceptable is fine.
+#       - the measure underlies cost-complexity pruning, however
+temp1 <- function(y, wt, parms) {
+    wmean <- sum(y*wt)/sum(wt)
+    rss <- sum(wt*(y-wmean)^2)
+    list(label= wmean, deviance=rss)
+    }
+
+# The split function, where most of the work occurs.
+#   Called once per split variable per node.
+# If continuous=T
+#   The actual x variable is ordered
+#   y is supplied in the sort order of x, with no missings,
+#   return two vectors of length (n-1):
+#      goodness = goodness of the split, larger numbers are better.
+#                 0 = couldn't find any worthwhile split
+#        the ith value of goodness evaluates splitting obs 1:i vs (i+1):n
+#      direction= -1 = send "y< cutpoint" to the left side of the tree
+#                  1 = send "y< cutpoint" to the right
+#         this is not a big deal, but making larger "mean y's" move towards
+#         the right of the tree, as we do here, seems to make it easier to
+#         read
+# If continuos=F, x is a set of integers defining the groups for an
+#   unordered predictor.  In this case:
+#       direction = a vector of length m= "# groups".  It asserts that the
+#           best split can be found by lining the groups up in this order
+#           and going from left to right, so that only m-1 splits need to
+#           be evaluated rather than 2^(m-1)
+#       goodness = m-1 values, as before.
+#
+# The reason for returning a vector of goodness is that the C routine
+#   enforces the "minbucket" constraint. It selects the best return value
+#   that is not too close to an edge.
+temp2 <- function(y, wt, x, parms, continuous) {
+    # Center y
+    n <- length(y)
+    y <- y- sum(y*wt)/sum(wt)
+
+    if (continuous) {
+	# continuous x variable
+	temp <- cumsum(y*wt)[-n]
+
+	left.wt  <- cumsum(wt)[-n]
+	right.wt <- sum(wt) - left.wt
+	lmean <- temp/left.wt
+	rmean <- -temp/right.wt
+	goodness <- (left.wt*lmean^2 + right.wt*rmean^2)/sum(wt*y^2)
+	list(goodness= goodness, direction=sign(lmean))
+	}
+    else {
+	# Categorical X variable
+	ux <- sort(unique(x))
+	wtsum <- tapply(wt, x, sum)
+	ysum  <- tapply(y*wt, x, sum)
+	means <- ysum/wtsum
+
+	# For anova splits, we can order the categories by their means
+	#  then use the same code as for a non-categorical
+	ord <- order(means)
+	n <- length(ord)
+	temp <- cumsum(ysum[ord])[-n]
+	left.wt  <- cumsum(wtsum[ord])[-n]
+	right.wt <- sum(wt) - left.wt
+	lmean <- temp/left.wt
+	rmean <- -temp/right.wt
+	list(goodness= (left.wt*lmean^2 + right.wt*rmean^2)/sum(wt*y^2),
+	     direction = ux[ord])
+	}
+    }
+
+# The init function:
+#   fix up y to deal with offsets
+#   return a dummy parms list
+#   numresp is the number of values produced by the eval routine's "label"
+#   numy is the number of columns for y
+#   summary is a function used to print one line in summary.rpart
+# In general, this function would also check for bad data, see rpart.poisson
+#   for instace.
+temp3 <- function(y, offset, parms, wt) {
+    if (!is.null(offset)) y <- y-offset
+    list(y=y, parms=0, numresp=1, numy=1,
+	      summary= function(yval, dev, wt, ylevel, digits ) {
+		  paste("  mean=", format(signif(yval, digits)),
+			", MSE=" , format(signif(dev/wt, digits)),
+			sep='')
+	     })
+    }
+
+
+alist <- list(eval=temp1, split=temp2, init=temp3)
+
+fit1 <- rpart(income ~population +illiteracy  + murder + hs.grad + region,
+	     mystate, control=rpart.control(minsplit=10, xval=0),
+	     method=alist)
+
+fit2 <- rpart(income ~population +illiteracy + murder + hs.grad + region,
+	     mystate, control=rpart.control(minsplit=10, xval=0),
+	      method='anova')
+
+# Other than their call statement, and a longer "functions" component in
+#  fit1, fit1 and fit2 should be identical.
+all.equal(fit1$frame, fit2$frame)
+all.equal(fit1$splits, fit2$splits)
+all.equal(fit1$csplit, fit2$csplit)
+all.equal(fit1$where, fit2$where)
+all.equal(fit1$cptable, fit2$cptable)
+
+# Now try xpred on it
+xvtemp <- rep(1:5, length=50)
+xp1 <- xpred.rpart(fit1, xval=xvtemp)
+xp2 <- xpred.rpart(fit2, xval=xvtemp)
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+aeq(xp1, xp2)
+
+fit3 <- rpart(income ~population +illiteracy + murder + hs.grad + region,
+	     mystate, control=rpart.control(minsplit=10, xval=xvtemp),
+	      method='anova')
+zz <- apply((mystate$income - xp1)^2,2, sum)
+aeq(zz/fit1$frame$dev[1], fit3$cptable[,4])  #reproduce xerror
+
+zz2 <- sweep((mystate$income-xp1)^2,2, zz/nrow(xp1))
+zz2 <- sqrt(apply(zz2^2, 2, sum))/ fit1$frame$dev[1]
+aeq(zz2, fit3$cptable[,5])          #reproduce se(xerror)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/data.stagec
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/data.stagec	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/data.stagec	(revision 2476)
@@ -0,0 +1,146 @@
+  6.130047    0   64     2  10.26     2     4     1
+  9.374401    0   62     1     NA     3     8     3
+  5.240246    1   59     2   9.99     3     7     1
+  3.162217    1   62     2   3.57     2     4     1
+  1.908282    1   64     2  22.56     4     8     2
+  4.848733    0   69     1   6.14     3     7     1
+  5.790554    0   75     2  13.69     2    NA     2
+  7.304585    0   71     2     NA     3     7     3
+  3.655030    1   73     2  11.77     3     6     1
+ 15.87132     0   64     2  27.27     3     7     2
+  6.299794    0   65     2  19.34     3     7     2
+  2.910335    1   58     2  14.82     4     8     2
+  1.527720    1   70     2  10.22     3     8     1
+ 14.46132     0   67     2  15.66     2     6     2
+  4.238193    1   66     2  17.79     3     7     2
+  1.738535    1   74     2  11.11     3     8     1
+  5.004791    0   70     2  11.44     2     5     1
+ 13.17727     0   57     2  14.78     2     4     2
+ 10.87200     0   63     2  54.93     3     8     2
+ 12.98015     0   65     2  24.58     3     7     2
+ 11.37303     0   62     2  27.79     2     5     2
+  2.647501    1   72     2  14.86     3     6     2
+  9.812457    0   64     1  10.51     2     5     1
+  3.411362    1   67    NA  14.22     2     6     2
+  7.638603    1   64     2  15.28     2     5     2
+  4.799452    1   70     2  16.91     3     6     2
+  3.674195    1   58     1  17.87     3     7     2
+ 13.89185     0   57     2  12.13     3     6     1
+  4.881587    1   54     1  17.25     2     5     2
+ 15.92060     0   61     1  16.53     3     7     2
+  2.850102    1   68     2  17.49     2     4     2
+  9.273100    0   64     1   3.85     3     6     3
+  6.510609    0   70     1   7.88     2     6     1
+  1.686516    0   64     2  16.64     2     5     2
+  6.932238    0   66     2  13.19     3     7     2
+  5.492128    0   61     2   9.42     2     5     1
+  5.719370    0   70     2  22.79     2     5     2
+  4.076659    1   63     2  11.37     2     6     1
+  0.3066393   1   59     2   3.77     3     6     3
+  1.095140    1   66     1  13.76     3     6     2
+  7.783710    0   53     2  14.52     2     5     2
+  2.023271    1   62     2   7.55     3     7     1
+  7.301847    0   69     2   8.46     2     5     1
+ 13.54688     0   63     2   7.66     3     7     1
+ 11.71800     0   61     2   8.40     2     5     1
+  8.657084    0   70     1   4.43     1     3     1
+  3.356605    0   61     2  10.37     3     7     1
+  6.275154    0   62     2  10.82     2     6     1
+ 10.61738     0   55     2   7.81     2     5     1
+  9.253935    0   61     2  11.23     2     5     1
+  7.906913    0   63     2  13.99     3     6     2
+  4.936345    0   67     2   6.41     2     5     1
+ 13.40725     0   59     2  16.05     2     5     2
+ 17.69199     0   58     2  22.97     3     6     2
+  1.026694    1   61     1   2.40     4    10     1
+  0.2546201   1   47     2  11.92     4    10     1
+ 13.07049     0   65     2     NA     3     6     2
+ 16.70088     0   56     2   5.29     1     3     1
+  4.479124    0   63     2   5.75     2     5     1
+  3.438740    1   69     1   7.64     3     8     3
+  2.376454    1   50     1  16.81     3     7     2
+  6.784394    0   70     2  29.56     2     5     2
+  2.997946    1   55     1  13.35     3     6     3
+ 10.36276     0   55     2   8.10     2     5     1
+ 11.77002     0   62     1  12.62     2     5     1
+  8.049281    1   66     2  14.14     2     5     2
+  5.664613    0   71     1  10.16     2     6     1
+  6.053388    0   63     2  17.21     2     5     2
+  5.201916    0   54     2  11.35     2     6     1
+  6.228610    0   65     2  11.35     2     5     1
+ 11.36481     0   59     2   7.61     2     5     1
+  6.986995    1   61     2  20.82     3     6     2
+  6.464065    0   65     1  12.93     3     7     1
+  0.5366188   1   57     1  21.75     3     7     2
+  6.067077    0   69     2   8.58     2     6     1
+  5.111567    1   53     1  14.94     3     7     2
+  3.660506    1   48     2  17.16     3     7     2
+ 12.16974     0   57     2  23.62     3     8     2
+  7.707049    1   63     2  16.06     3     9     2
+  7.028062    0   52     2   7.15     2     7     1
+  7.230663    1   57     2  13.21     3     8     2
+  4.350444    1   62     2  11.35     3     6     1
+  6.694045    0   54     2   8.11     2     4     1
+  6.765229    1   67     2  11.18     3     7     1
+  5.185489    1   65     2  24.84     3     7     2
+  8.662559    0   67     2   7.67     3     6     1
+ 10.79808     0   72     1   6.68     2    NA     1
+  2.614647    1   66     2  15.23     3     8     2
+ 10.87474     0   72     2   6.80     2     5     1
+  5.637234    1   60     2  14.58     3     7     2
+ 10.09993     0   70     2  13.17     2     6     2
+  7.208761    0   63     1   9.76     2     5     1
+ 10.17659     0   64     1   7.61     2    NA     1
+  7.718001    1   62     2  38.05     3     7     2
+  2.696783    1   61     1  13.87     3     6     2
+  1.949349    1   64     2  21.20     3     7     2
+  3.630390    0   64     1  17.96     3     7     2
+  8.229979    0   68     2  27.14     3     9     2
+  9.174537    0   62     1   6.74     2     5     1
+  6.121834    0   69     2  11.21     3     8     1
+  8.698151    0   59     2  20.22     3     6     2
+  7.411362    1   66     1  15.35     3     8     2
+  1.645448    1   53     1  16.79     3     9     2
+  8.353182    0   59     2   8.76     2     6     1
+  4.717317    1   58     2  13.23     2     6     2
+  5.746748    0   61     2  34.01     2     7     2
+  3.156741    1   65    NA  14.68     3     8     2
+  4.944558    0   67     1  17.95     3     8     2
+  3.449692    1   57     1  23.34     3     8     2
+  0.9883642   1   55     2  10.25     3     7     3
+  5.445585    1   57     2     NA     3     8     3
+  4.654346    0   57     1  15.10     3     7     2
+  6.264202    0   68     1  26.55     2     6     2
+  6.967830    0   67     2   7.78     2     6     1
+  1.522245    1   60     1     NA     4     9     3
+  7.055441    0   63     2  21.20     3     7     2
+  6.045174    0   69     2   7.93     3     6     1
+  3.843942    0   54     2  10.58     3     8     1
+  6.516084    0   66     2   5.92     2     5     1
+  3.112936    0   59     2   5.08     3     7     1
+  6.795345    0   62     2  13.10     3     8     2
+  6.669404    0   73     1  41.31     3     8     2
+  5.749486    1   65     2  11.29     3     7     1
+  1.516769    1   67     2  14.02     3     7     2
+  5.169062    0   75     2  12.46     3     7     1
+  1.253935    1   70     2  13.69     3     8     2
+  6.160164    0   59     2  12.06     2     5     1
+  6.480492    0   73     2  13.01     3     6     1
+  1.163586    1   66     2  13.21     2     6     2
+  5.697467    0   66     2  10.43     3     5     1
+  3.397672    1   65     2     NA     3     7     3
+  5.629021    0   66     1  13.33     2     5     2
+  5.971252    0   66     2  37.49     3     7     2
+  5.119781    0   59     2  11.69     3     7     1
+  6.004106    0   52     2   9.90     2     4     1
+  5.368925    0   68     2  13.01     2     5     1
+  2.431211    0   63     2   4.81     3     8     1
+  4.235455    0   67     2  14.71     2     5     2
+  5.541409    0   59     1   9.01     2     5     1
+  5.363449    0   57     1  10.90     3     6     1
+  8.180698    0   62     2  10.72     3     7     1
+ 10.20123     0   63     2   5.14     2     5     1
+  2.450376    1   73     2  46.92     4     9     2
+  7.898699    0   68     2     NA     2     5     3
+  5.634496    0   51     2   9.59     3     6     1
+  2.058863    1   56     2   9.01     3     7     1
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/priors.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/priors.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/priors.R	(revision 2476)
@@ -0,0 +1,71 @@
+#
+# A hard-core test of losses and priors
+#  Simple data set where I know what the answers must be
+#
+library(rpart)
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+dummy <- c(3,1,4,1,5,9,2,6,5,3,5,8,9,7,9)/5
+pdata <- data.frame(y=factor(rep(1:3, 5)),
+                    x1 = 1:15,
+                    x2 = c(1:6, 1:6, 1:3),
+                    x3 = (rep(1:3, 5) + dummy)*10)
+
+pdata$x3[c(1,5,10)] <- NA
+pdata$y[15] <- 1     # make things unbalanced
+
+pfit <- rpart(y ~ x1 + x2 + x3, pdata,
+              cp=0, xval=0, minsplit=5, maxdepth=1,
+              parms=list(prior=c(.2, .3, .5), 
+                         loss =matrix(c(0,2,2,2,0,6,1,1,0), 3,3,byrow=T)))
+
+#
+# See section 12.1 of the report for these numbers
+#
+
+ntot   <- c(6,5,4)
+phat   <- c(6,5,4)/15   # observed class probabilities
+prior  <- c(.2, .3, .5) # priors
+aprior <- c(4,12,5)/21  # altered priors
+lmat   <- matrix(c(0,1,2, 2,0,1, 2,6,0), ncol=3)  #loss matrix
+
+gini <- function(p) 1-sum(p^2)
+loss <- function(n, class)  sum(n * lmat[,class])
+
+phat <- function(n, ntot=c(6,5,4), prior=c(.2, .3, .5)) {
+    n*prior/ntot
+    }
+
+# Are the losses correct?
+# Class counts for the two children are (4,4,0) and (2,1,4), when
+#   using surrogates
+aeq(pfit$frame$dev/15, c(loss(prior,2), loss(phat(c(4,4,0)),2), 
+                                 loss(phat(c(2,1,4)),3)))
+# Node probabilities?
+aeq(pfit$frame$yval2[,8] , 
+    c(1, sum(phat(c(4,4,0))), sum(phat(c(2,1,4)))))
+
+aeq(pfit$frame$yval2[,5:7] , rbind(prior, 
+                                   phat(c(4,4,0))/ sum(phat(c(4,4,0))), 
+                                   phat(c(2,1,4))/ sum(phat(c(2,1,4)))))
+
+# Now the node and class probs, under altered priors
+phat2 <- function(n, ntot=c(6,5,4), prior=aprior) {
+    n*prior/ntot
+    }
+
+# Use these to create the gini losses, base data, and for the best
+#  splits on variables 1, 2, 3
+gfun <- function(n) {  #The gini loss for a node, given the counts
+    temp <- phat2(n)
+    sum(temp) * gini(temp/sum(temp))
+    }
+           
+# These are in order x3, x2, x1 (best split to worst)
+# Note that for x3, missing values cause the "parent" to be viewed as
+#   having 12 obs instead of 15.
+# Each line is gini(parent) - gini(children)
+aeq(pfit$splits[1:3, 3],
+    15* c(gfun(c(4,4,4)) - (gfun(c(3,4,0)) +  gfun(c(1,0,4))),
+          gfun(c(6,5,4)) - (gfun(c(6,5,2)) +  gfun(c(0,0,2))),
+          gfun(c(6,5,4)) - (gfun(c(4,4,4)) +  gfun(c(2,1,0)))))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/rescale.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/rescale.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/rescale.R	(revision 2476)
@@ -0,0 +1,26 @@
+#
+# Test out the rescaling done for Surv objects
+#
+library(rpart)
+require(survival)
+
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+tdata <- data.frame(time=c(1,4,3,2,5,7,8,9,4), status=c(0,1,1,0,0,1,1,0,1),
+		    x=1:9)
+fit2 <- rpart.exp(Surv(tdata$time, tdata$status), NULL, wt=rep(1,9))
+
+#
+# Here is what it should be, in order
+#    for the intervals (0,3], (3,4], (4,7], (7,9]
+deaths <- c( 1, 2,  1, 1)
+pyears <- c(24, 6, 10, 3)
+rate   <- deaths/pyears
+cumhaz <- cumsum(c(0, rate*c(3,1,3,2)))
+
+aeq(fit2$y[,2], tdata$status)
+aeq(fit2$y[,1], approx(c(0,3,4,7,9), cumhaz, tdata$time)$y)
+
+
+
+ 
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/backticks.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/backticks.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/tests/backticks.Rout.save	(revision 2476)
@@ -0,0 +1,39 @@
+
+R version 2.15.0 (2012-03-30)
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> ## allow backticks in rpart.matrix: see
+> ## https://stat.ethz.ch/pipermail/r-help/2012-May/314081.html
+> 
+> library(rpart)
+> Iris <- iris
+> names(Iris) <- sub(".", " ", names(iris), fixed=TRUE)
+> rpart(Species ~ `Sepal Length`, data = Iris)
+n= 150 
+
+node), split, n, loss, yval, (yprob)
+      * denotes terminal node
+
+1) root 150 100 setosa (0.33333333 0.33333333 0.33333333)  
+  2) Sepal Length< 5.45 52   7 setosa (0.86538462 0.11538462 0.01923077) *
+  3) Sepal Length>=5.45 98  49 virginica (0.05102041 0.44897959 0.50000000)  
+    6) Sepal Length< 6.15 43  15 versicolor (0.11627907 0.65116279 0.23255814) *
+    7) Sepal Length>=6.15 55  16 virginica (0.00000000 0.29090909 0.70909091) *
+> 
+> proc.time()
+   user  system elapsed 
+  0.234   0.064   0.328 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/DESCRIPTION	(revision 2476)
@@ -0,0 +1,31 @@
+Package: rpart
+Priority: recommended
+Version: 4.1-10
+Date: 2015-06-29
+Authors@R: c(person("Terry", "Therneau", role = "aut",
+	             email = "therneau@mayo.edu"),
+             person("Beth", "Atkinson", role = "aut",	
+	             email = "atkinson@mayo.edu"),
+             person("Brian", "Ripley", role = c("aut", "trl", "cre"),
+                    email = "ripley@stats.ox.ac.uk",
+		    comment = "author of initial R port"))
+Description: Recursive partitioning for classification, 
+  regression and survival trees.  An implementation of most of the 
+  functionality of the 1984 book by Breiman, Friedman, Olshen and Stone.
+Title: Recursive Partitioning and Regression Trees
+Depends: R (>= 2.15.0), graphics, stats, grDevices
+Suggests: survival
+License: GPL-2 | GPL-3
+LazyData: yes
+ByteCompile: yes
+Note: Maintainers are not available to give advice on using a package
+        they did not author.
+NeedsCompilation: yes
+Packaged: 2015-06-29 09:13:49 UTC; ripley
+Author: Terry Therneau [aut],
+  Beth Atkinson [aut],
+  Brian Ripley [aut, trl, cre] (author of initial R port)
+Maintainer: Brian Ripley <ripley@stats.ox.ac.uk>
+Repository: CRAN
+Date/Publication: 2015-06-29 17:14:14
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:33:56 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/index.html	(revision 2476)
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'rpart'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/rpart/doc/longintro.pdf">rpart::longintro</a></td>
+<td></td><td valign="top">Introduction to Rpart</td>
+<td valign="top"><a href="../../../library/rpart/doc/longintro.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/rpart/doc/longintro.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/rpart/doc/longintro.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/rpart/doc/usercode.pdf">rpart::usercode</a></td>
+<td></td><td valign="top">User Written Split Functions</td>
+<td valign="top"><a href="../../../library/rpart/doc/usercode.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/rpart/doc/usercode.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/rpart/doc/usercode.R">R code</a></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/longintro.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/longintro.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/longintro.R	(revision 2476)
@@ -0,0 +1,317 @@
+### R code from vignette source 'longintro.Rnw'
+
+###################################################
+### code chunk number 1: longintro.Rnw:38-43
+###################################################
+options(continue = "  ", width = 60)
+options(SweaveHooks=list(fig=function() par(mar = c(4.1, 4.1, 0.1, 1.1))))
+pdf.options(pointsize = 10)
+par(xpd = NA)  #stop clipping
+library(rpart)
+
+
+###################################################
+### code chunk number 2: impurity
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+ptemp <- seq(0, 1, length = 101)[2:100]
+gini <- 2* ptemp *(1-ptemp)
+inform <- -(ptemp*log(ptemp) + (1-ptemp)*log(1-ptemp))
+sgini <- gini *max(inform)/max(gini)
+matplot(ptemp, cbind(gini, inform, sgini), type = 'l', lty = 1:3,
+        xlab = "P", ylab = "Impurity", col = 1)
+legend(.3, .2, c("Gini", "Information", "rescaled Gini"),
+       lty = 1:3, col = 1, bty = 'n')
+
+
+###################################################
+### code chunk number 3: gini1
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+progstat <- factor(stagec$pgstat, levels = 0:1, labels = c("No", "Prog"))
+cfit  <- rpart(progstat ~  age + eet + g2 + grade + gleason + ploidy,
+               data = stagec, method = 'class')
+print(cfit)
+par(mar = rep(0.1, 4))
+plot(cfit)
+text(cfit)
+
+
+###################################################
+### code chunk number 4: summary(cfit3
+###################################################
+
+
+
+###################################################
+### code chunk number 5: longintro.Rnw:468-472
+###################################################
+temp <- with(stagec, table(cut(grade, c(0, 2.5, 4)),
+                          cut(gleason, c(2, 5.5, 10)),
+                          exclude = NULL))
+temp
+
+
+###################################################
+### code chunk number 6: dig1
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+set.seed(1953)  # An auspicious year
+n <- 200
+y <- rep(0:9, length = 200)
+temp <- c(1,1,1,0,1,1,1,
+          0,0,1,0,0,1,0,
+          1,0,1,1,1,0,1,
+          1,0,1,1,0,1,1,
+          0,1,1,1,0,1,0,
+          1,1,0,1,0,1,1,
+          0,1,0,1,1,1,1,
+          1,0,1,0,0,1,0,
+          1,1,1,1,1,1,1,
+          1,1,1,1,0,1,0)
+
+lights <- matrix(temp, 10, 7, byrow = TRUE)    # The true light pattern 0-9
+temp1 <- matrix(rbinom(n*7, 1, 0.9), n, 7) # Noisy lights
+temp1 <- ifelse(lights[y+1, ] == 1, temp1, 1-temp1)
+temp2 <- matrix(rbinom(n*17, 1, 0.5), n, 17) # Random lights
+x <- cbind(temp1, temp2)
+
+dfit <- rpart(y ~ x, method='class',
+              control = rpart.control(xval = 10, minbucket = 2, cp = 0))
+printcp(dfit)
+
+fit9 <- prune(dfit, cp = 0.02)
+par(mar = rep(0.1, 4))
+plot(fit9, branch = 0.3, compress = TRUE)
+text(fit9)
+
+
+###################################################
+### code chunk number 7: longintro.Rnw:810-813
+###################################################
+printcp(cfit)
+
+summary(cfit, cp = 0.06)
+
+
+###################################################
+### code chunk number 8: cars
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+fit1 <- rpart(Reliability ~ Price + Country + Mileage + Type,
+                data = cu.summary, parms = list(split = 'gini'))
+fit2 <- rpart(Reliability ~ Price + Country + Mileage + Type,
+                data = cu.summary, parms = list(split = 'information'))
+
+par(mfrow = c(1,2), mar = rep(0.1, 4))
+plot(fit1, margin = 0.05);  text(fit1, use.n = TRUE, cex = 0.8)
+plot(fit2, margin = 0.05);  text(fit2, use.n = TRUE, cex = 0.8)
+
+
+###################################################
+### code chunk number 9: longintro.Rnw:999-1000
+###################################################
+summary(fit1, cp = 0.06)
+
+
+###################################################
+### code chunk number 10: longintro.Rnw:1004-1008
+###################################################
+fit3 <- rpart(Reliability ~ Price + Country + Mileage + Type,
+                data=cu.summary, parms=list(split='information'),
+              maxdepth=2)
+summary(fit3)
+
+
+###################################################
+### code chunk number 11: kyphos
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+lmat <- matrix(c(0,3, 4,0), nrow = 2, ncol = 2, byrow = FALSE)
+fit1 <- rpart(Kyphosis ~  Age + Number + Start, data = kyphosis)
+
+fit2 <- rpart(Kyphosis ~  Age + Number + Start, data = kyphosis,
+              parms = list(prior = c(0.65, 0.35)))
+fit3 <- rpart(Kyphosis ~  Age + Number + Start, data = kyphosis,
+              parms = list(loss = lmat))
+
+par(mfrow = c(1, 3), mar = rep(0.1, 4))
+plot(fit1);  text(fit1, use.n = TRUE, all = TRUE, cex = 0.8)
+plot(fit2);  text(fit2, use.n = TRUE, all = TRUE, cex = 0.8)
+plot(fit3);  text(fit3, use.n = TRUE, all = TRUE, cex = 0.8)
+
+
+###################################################
+### code chunk number 12: longintro.Rnw:1211-1215
+###################################################
+cars <- car90[, -match(c("Rim", "Tires", "Model2"), names(car90))]
+carfit <- rpart(Price/1000 ~ ., data=cars)
+carfit
+printcp(carfit)
+
+
+###################################################
+### code chunk number 13: longintro.Rnw:1218-1219
+###################################################
+temp <- carfit$cptable
+
+
+###################################################
+### code chunk number 14: longintro.Rnw:1243-1244
+###################################################
+summary(carfit, cp = 0.1)
+
+
+###################################################
+### code chunk number 15: anova2
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+par(mfrow=c(1,2))
+rsq.rpart(carfit)
+par(mfrow=c(1,1))
+
+
+###################################################
+### code chunk number 16: anova3
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+plot(predict(carfit), jitter(resid(carfit)))
+temp <- carfit$frame[carfit$frame$var == '<leaf>',]
+axis(3, at = temp$yval, as.character(row.names(temp)))
+mtext('leaf number', side = 3, line = 3)
+abline(h = 0, lty = 2)
+
+
+###################################################
+### code chunk number 17: longintro.Rnw:1316-1322
+###################################################
+cfit2 <- rpart(pgstat ~ age + eet + g2 + grade + gleason + ploidy,
+               data = stagec)
+
+printcp(cfit2)
+
+print(cfit2, cp = 0.03)
+
+
+###################################################
+### code chunk number 18: longintro.Rnw:1492-1496
+###################################################
+sfit <- rpart(skips ~ Opening + Solder + Mask + PadType + Panel,
+              data = solder, method = 'poisson',
+              control = rpart.control(cp = 0.05, maxcompete = 2))
+sfit
+
+
+###################################################
+### code chunk number 19: longintro.Rnw:1507-1508
+###################################################
+summary(sfit, cp = 0.1)
+
+
+###################################################
+### code chunk number 20: poisson1
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+par(mar = rep(0.1, 4))
+plot(sfit)
+text(sfit, use.n = TRUE, min = 3)
+
+fit.prune <- prune(sfit, cp = 0.10)
+plot(fit.prune)
+text(fit.prune, use.n = TRUE, min = 2)
+
+
+###################################################
+### code chunk number 21: longintro.Rnw:1555-1558
+###################################################
+require(survival)
+temp <- coxph(Surv(pgtime, pgstat) ~ 1, stagec)
+newtime <- predict(temp, type = 'expected')
+
+
+###################################################
+### code chunk number 22: exp3
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+require(survival)
+pfit <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2 + grade +
+               gleason + ploidy, data = stagec)
+print(pfit)
+
+pfit2 <- prune(pfit, cp = 0.016)
+par(mar = rep(0.2, 4))
+plot(pfit2, uniform = TRUE, branch = 0.4, compress = TRUE)
+text(pfit2, use.n = TRUE)
+
+
+###################################################
+### code chunk number 23: exp4
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+temp <- snip.rpart(pfit2, 6)
+km <- survfit(Surv(pgtime, pgstat) ~ temp$where, stagec)
+plot(km, lty = 1:4, mark.time = FALSE,
+     xlab = "Years", ylab = "Progression")
+legend(10, 0.3, paste('node', c(4,5,6,7)), lty = 1:4)
+
+
+###################################################
+### code chunk number 24: plots1
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+fit <- rpart(pgstat ~  age + eet + g2 + grade + gleason + ploidy,
+             stagec, control = rpart.control(cp = 0.025))
+par(mar = rep(0.2, 4))
+plot(fit)
+text(fit)
+
+
+###################################################
+### code chunk number 25: plots2
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+par(mar = rep(0.2, 4))
+plot(fit, uniform = TRUE)
+text(fit, use.n = TRUE, all = TRUE)
+
+
+###################################################
+### code chunk number 26: plots3
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+par(mar = rep(0.2, 4))
+plot(fit, branch = 0)
+text(fit, use.n = TRUE)
+
+
+###################################################
+### code chunk number 27: plots4
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+par(mar = rep(0.2, 4))
+plot(fit, branch = 0.4,uniform = TRUE, compress = TRUE)
+text(fit, all = TRUE, use.n = TRUE)
+
+
+###################################################
+### code chunk number 28: plots5
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+par(mar = rep(0.2, 4))
+plot(fit, uniform = TRUE, branch = 0.2, compress = TRUE, margin = 0.1)
+text(fit, all = TRUE, use.n = TRUE, fancy = TRUE, cex= 0.9)
+
+
+###################################################
+### code chunk number 29: longintro.Rnw:1780-1788
+###################################################
+carfit <- rpart(Price/1000 ~ ., cars)
+carfit$cptable
+
+price2 <-  cars$Price[!is.na(cars$Price)]/1000
+temp <- xpred.rpart(carfit)
+errmat <- price2 - temp
+abserr <- colMeans(abs(errmat))
+rbind(abserr, relative=abserr/mean(abs(price2-mean(price2))))
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/usercode.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/usercode.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/usercode.Rnw	(revision 2476)
@@ -0,0 +1,510 @@
+\documentclass{article}
+\usepackage[pdftex]{graphicx}
+\usepackage{Sweave}
+\usepackage{amsmath}
+\addtolength{\textwidth}{1in}
+\addtolength{\oddsidemargin}{-.5in}
+\setlength{\evensidemargin}{\oddsidemargin}
+
+\SweaveOpts{keep.source=TRUE, fig=FALSE}
+%\VignetteIndexEntry{User Written Split Functions}
+%\VignetteDepends{rpart}
+% Ross Ihaka suggestions
+\DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em}
+\DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em}
+\fvset{listparameters={\setlength{\topsep}{0pt}}}
+\renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}}
+
+\newcommand{\myfig}[1]{\resizebox{\textwidth}{!}
+                        {\includegraphics{#1.pdf}}}
+\title{User written splitting functions for RPART}
+\author{Terry Therneau \\Mayo Clinic}
+
+\begin{document}
+\maketitle
+<<echo=FALSE>>=
+options(continue="  ", width=60)
+options(SweaveHooks=list(fig=function() par(mar=c(5.1, 4.1, .3, 1.1))))
+@
+\section{Splitting functions}
+The rpart code was written in a modular fashion with the idea that the C
+code would be extended to include more splitting functions.
+As a consequence all of the splitting functions are coordinated through a
+single structure in the file \texttt{func\_table.h}, shown below:
+\begin{verbatim}
+static struct {
+    int  (*init_split)();
+    void (*choose_split)();
+    void (*eval)();
+    double (*error)();
+} func_table [] = {
+    {anovainit,   anova,   anovass,    anovapred},
+    {poissoninit, poisson, poissondev, poissonpred},
+    {giniinit, gini, ginidev, ginipred},
+    {usersplit_init, usersplit, usersplit_eval, usersplit_pred}
+};
+
+#define NUM_METHODS 4  /*size of the above structure */
+\end{verbatim}
+Adding a new splitting method requires the definition of four functions which
+initialize, choose a split, compute the predicted value or values for a node,
+and
+compute a prediction error for a new observation assigned to the node.
+The last of these is used only in cross-validation.
+
+To add new splitting rules to the main routine
+four new C functions need to be defined, the
+\texttt{func\_table.h} file expanded, the R function \texttt{rpart} updated to
+recognize the new
+option (it calls the C routine with the row number of func\_table),
+and finally an initialization function written.
+See the \texttt{rpart.class}, \texttt{rpart.anova}, and \texttt{rpart.exp}
+functions for examples of the latter.
+The lion's share of the code, which deals with all the necessary bookkeeping,
+remains unchanged.
+
+An easier route is to add a user defined splitting rules as a set of R functions.
+The resulting code will be considerably slower than the built-in functions;
+nevertheless this allows an easy way to extend \texttt{rpart}, and to
+test out new
+ideas with less effort than additions to the C base.
+For user defined splits only the first three functions are defined,
+and cross-validation does not happen automatically.
+(User defined methods are many times slower than the built in ones, so
+it may be preferable to skip cross-validation during the initial evaluation
+of a model.)
+
+\section{Anova function}
+As the first illustration we show how to add anova splitting as a user-written
+addition.
+This method is also one of those built into the C code, so we can also
+check the correctness of the results.
+
+\subsection{Initialization function}
+<<>>=
+itemp <- function(y, offset, parms, wt) {
+    if (is.matrix(y) && ncol(y) > 1)
+       stop("Matrix response not allowed")
+    if (!missing(parms) && length(parms) > 0)
+        warning("parameter argument ignored")
+    if (length(offset)) y <- y - offset
+    sfun <- function(yval, dev, wt, ylevel, digits ) {
+		  paste("  mean=", format(signif(yval, digits)),
+			", MSE=" , format(signif(dev/wt, digits)),
+			sep = '')
+    }
+    environment(sfun) <- .GlobalEnv
+    list(y = c(y), parms = NULL, numresp = 1, numy = 1, summary = sfun)
+}
+@
+
+On input the function will be called with
+\begin{description}
+  \item[y] the response value as found in the formula.
+    Note that rpart will normally
+    have removed any observations with a missing response.
+  \item[offset] the offset term, if any, found on the right hand side of the formula
+  \item[parms] the vector or list (if any) supplied by the user as a
+    \texttt{parms} argument to the call.
+  \item[wt] the weight vector from the call, if any
+  \end{description}
+
+The last two arguments are optional.
+The initialization function needs to perform any data checks,
+deal with the offset
+vector if present, and return a list containing
+\begin{description}
+  \item[y] the value of the response, possibly updated
+  \item[numy] the number of columns of y
+  \item[numresp] the length of the prediction vector for each node
+  \item[summary] optional: a function which will produce a 1--3 line summary for the
+    node, to be used by \texttt{summary.rpart}.
+  \item[print] optional: a function which will produce a one line summary for
+    the \texttt{print} function.
+  \item[text] optional: a function which will produce a short label for the node,
+    used by the \texttt{plot} function.
+  \end{description}
+
+The parameters vector can contain whatever might be appropriate for
+the method, e.g. the variance of a prior distribution.
+The vector of parameters passed forward need not be he same as the set
+passed into the routine.
+In anova splitting there are no extra parameters.
+
+  The summary function will be called with arguments which are
+  \begin{itemize}
+    \item yval= the response value for the node
+    \item dev = the deviance for the node
+    \item wt = the sum of weights at the node (number of observations)
+    \item ylevel = the levels of y, if y is categorical
+    \item digits = the current setting for digits
+  \end{itemize}
+It should return a character vector.
+The text function will be called with these arguments plus two more
+\begin{itemize}
+  \item n= the number of observations in the node
+  \item use.n = TRUE/FALSE, see the help page for \texttt{text.rpart}
+\end{itemize}
+The print function is called only with yval, ylevels, and digits.
+
+The only puzzling line may be \texttt{environment(sfun) <- .GlobalEnv}.
+R ensures that any function can access variables that are \emph{not}
+passed in as arguments via a mechanism called environments.
+As a trivial example
+<<>>=
+temp <- 4
+fun1 <- function(x) {
+    q <- 15
+    z <- 10
+    fun2 <- function(y) y + z + temp
+    fun2(x^2)
+}
+fun1(5)
+@
+The definition of fun2 essentially contains a copy of \texttt{z} (and
+\texttt{q} as well) to ensure that this works.
+The exception to this is objects at the top level such as
+\texttt{temp} above; the user is responsible
+for the retention of those via their answer to the ``save'' question at
+the end of an R session.
+
+The consequence of this is that the summary function created by a
+call to itemp will by default have copies of all of the external variables
+that it \emph{might} make use of, in this case all of the input arguments.
+The summary function is in fact self-contained and makes reference only to
+its input arguments (doing otherwise is bad programming, in my
+opinion) and so needs none of these.
+Setting the environment of the function to \texttt{.GlobalEnv} in essence
+tells R to treat the function as though it had been defined at top level,
+i.e., the input prompt, and thus not attach these extraneous copies.
+I first became aware of this issue when using a huge data set, and found that
+the saved output of the fit took up an inordinate amount of disk space due
+to data copies attached to the summary function.
+
+Do not take this as a critique of R environments in general.
+The rules governing them need to be responsive to a large ensemble of
+conditions; in this particular case the results are not ideal but in the main
+they are the best compromise possible.
+
+\subsection{Evaluation function}
+The evaluation function is called once per node.
+It needs to produce a deviance for the node along with a vector to be
+used as a label for the node.
+<<>>=
+etemp <- function(y, wt, parms) {
+    wmean <- sum(y*wt)/sum(wt)
+    rss <- sum(wt*(y-wmean)^2)
+    list(label = wmean, deviance = rss)
+}
+@
+
+As an example of a longer label, the gini splitting method for
+categorical outcomes returns both the chosen group and the full vector
+of estimated group probabilities.
+The deviance value that is returned does not need to be an actual
+deviance associated with a log-likelihood, any impurity measure for
+the node will work.
+However, the pruning algorithm used during tree construction will be most
+efficient if the value 0 corresponds to a perfectly pure node.
+(The pruning code decides when a branch would be futile and further
+computations on it can thus be avoided.)
+
+\subsection{Splitting function}
+The splitting function is where the work lies.
+It will be called once for every covariate at each potential split.
+The input arguments are
+\begin{description}
+  \item[y] vector or matrix of response values
+  \item[wt] vector of weights
+  \item[x] vector of x values
+  \item[parms] vector of user parameters, passed forward
+  \item[continuous] if TRUE the x variable should be treated as continuous
+  \end{description}
+
+The data will have been subset to include only the non-missing subset
+of x and y at the node, and if x is continuous all values will be in the
+sorted order of the x variable.
+If x is continuous the routine should return two vectors each of
+length $n-1$, where $n$ is the length of x:
+\begin{description}
+  \item[goodness] the utility of the split, where larger numbers are
+    better.  A value of 0 signifies that no worthwhile split could be
+    found (for instance if y were a constant).  The $i$th value of
+    goodness compares a split of observations 1 to $i$ versus $i+1$ to $n$.
+    \item[direction]  A vector of the same length with values of -1
+      and +1, where -1 suggests that values with y $<$ cutpoint be
+      sent to the left side of the tree, and a value of +1 that values
+      with y $<$ cutpoint be sent to the right.
+      This is not critical, but sending larger values of y to the
+      right, as is done in the code below, seems to make the final tree
+      easier to read.
+\end{description}
+
+The reason for returning an entire vector of goodness values is that
+the parent code is responsible for handling the minimum node size
+constraint, and also for dealing with ties.  When x is continuous the
+split routine actually has no reason to look at x.
+
+<<>>=
+stemp <- function(y, wt, x, parms, continuous)
+{
+    # Center y
+    n <- length(y)
+    y <- y- sum(y*wt)/sum(wt)
+
+    if (continuous) {
+        # continuous x variable
+        temp <- cumsum(y*wt)[-n]
+        left.wt  <- cumsum(wt)[-n]
+        right.wt <- sum(wt) - left.wt
+        lmean <- temp/left.wt
+        rmean <- -temp/right.wt
+        goodness <- (left.wt*lmean^2 + right.wt*rmean^2)/sum(wt*y^2)
+        list(goodness = goodness, direction = sign(lmean))
+    } else {
+        # Categorical X variable
+        ux <- sort(unique(x))
+        wtsum <- tapply(wt, x, sum)
+        ysum  <- tapply(y*wt, x, sum)
+        means <- ysum/wtsum
+
+        # For anova splits, we can order the categories by their means
+        #  then use the same code as for a non-categorical
+        ord <- order(means)
+        n <- length(ord)
+        temp <- cumsum(ysum[ord])[-n]
+        left.wt  <- cumsum(wtsum[ord])[-n]
+        right.wt <- sum(wt) - left.wt
+        lmean <- temp/left.wt
+        rmean <- -temp/right.wt
+        list(goodness= (left.wt*lmean^2 + right.wt*rmean^2)/sum(wt*y^2),
+             direction = ux[ord])
+    }
+}
+@
+
+The code above does the computations for all the split points at once
+ by making use of two tricks. The first is to center the y values
+at zero (so the grand mean is zero), and the second takes advantage of the
+many ways to write the ``effect'' sum of squares for a simple two
+group anova.
+The key identity is
+\begin{equation}
+  \sum (y_i - c)^2 = \sum (y_i - \overline y)^2 +  n(c - \overline y)^2
+\end{equation}
+If you have an old enough statistics book, this is used to show that
+for a 1-way anova the between groups sum of squares $SS_B$ is
+\begin{equation}
+  SS_B = n_l(\overline y_l - \overline y)^2 +
+  n_r(\overline y_r - \overline y)^2 \label{ssb}
+\end{equation}
+where $n_l$ is the number of observations in the left group,
+$\overline y_l$ the
+mean of $y$ in the left group, $\overline y$ the overall mean,
+and $n_r$ $\overline y_r$ the corresponding terms for the right hand group.
+
+Centering at zero makes $\overline y$ zero in \eqref{ssb}, and the terms
+then can be computed for all splits at once using the cumsum function.
+Extension of the formulas to case weights is left as an exercise for
+the reader.
+
+If the predictor variable x is categorical with $k$ classes then there are
+potentially $2^{k-1} -1$ different ways to split the node.
+However, for most splitting rules the optimal rule can be found by first
+ordering the groups by their average y value and then using the
+usual splitting rule on this ordered variable.
+For user mode rules this is assumed to be the case.
+The variable x is supplied as integer values 1, 2, \ldots, k.
+On return the direction vector should have $k$ values giving the ordering
+of the groups, and the goodness vector $k-1$ values giving the utility of
+the splits.
+
+
+\subsection{Test}
+We can test the above code to make sure that it gives the same answer as
+the built-in anova splitting method.
+<<>>=
+library(rpart)
+mystate <- data.frame(state.x77, region=state.region)
+names(mystate) <- casefold(names(mystate)) #remove mixed case
+ulist <- list(eval = etemp, split = stemp, init = itemp)
+fit1 <- rpart(murder ~ population + illiteracy + income + life.exp +
+              hs.grad + frost + region, data = mystate,
+              method = ulist, minsplit = 10)
+fit2 <- rpart(murder ~ population + illiteracy + income + life.exp +
+              hs.grad + frost + region, data = mystate,
+              method = 'anova', minsplit = 10, xval = 0)
+all.equal(fit1$frame, fit2$frame)
+all.equal(fit1$splits, fit2$splits)
+all.equal(fit1$csplit, fit2$csplit)
+all.equal(fit1$where, fit2$where)
+all.equal(fit1$cptable, fit2$cptable)
+@
+The all.equal test can't be done on fit1 vs fit2 as a whole since their
+\texttt{call} component will differ.
+
+\section{Cross validation}
+To do cross-validation on user written rules one needs to use the
+\texttt{xpred.rpart} routine.
+This routine returns the predicted value(s) for each observation,
+predicted from a fit that did not include that observation.
+The result is a matrix with one row per subject and one column for
+each complexity parameter value.
+As an example we will replicate the cross-validation results
+for the anova model above.
+In order to get the same groupings we fix the xval group membership
+in advance.
+<<>>=
+xgroup <- rep(1:10, length = nrow(mystate))
+xfit <- xpred.rpart(fit1, xgroup)
+xerror <- colMeans((xfit - mystate$murder)^2)
+
+fit2b <-  rpart(murder ~ population + illiteracy + income + life.exp +
+                hs.grad + frost + region, data = mystate,
+                method = 'anova', minsplit = 10, xval = xgroup)
+topnode.error <- (fit2b$frame$dev/fit2b$frame$wt)[1]
+
+xerror.relative <- xerror/topnode.error
+all.equal(xerror.relative, fit2b$cptable[, 4], check.attributes = FALSE)
+@
+
+
+
+
+
+\begin{figure}
+  \myfig{usercode-fig1}
+  \caption{Goodness of split for predicting income from illiteracy, using
+    the state data.}
+  \label{fig:state}
+\end{figure}
+
+<<fig1, echo=FALSE, fig=TRUE, include=FALSE>>=
+tdata <- mystate[order(mystate$illiteracy), ]
+n <- nrow(tdata)
+temp <- stemp(tdata$income, wt = rep(1, n), tdata$illiteracy,
+              parms = NULL, continuous = TRUE)
+xx <- (tdata$illiteracy[-1] + tdata$illiteracy[-n])/2
+plot(xx, temp$goodness, xlab = "Illiteracy cutpoint",
+     ylab = "Goodness of split")
+lines(smooth.spline(xx, temp$goodness, df = 4), lwd = 2, lty = 2)
+@
+
+\subsection{Smoothed anova}
+For any particular covariate consider a plot of
+x= split point vs y= goodness of split;
+figure \ref{fig:state} shows an example for the state data
+set, along with a smoothed curve.
+The plot points are very erratic.
+At one time we entertained the idea that a more stable split
+point would be found by finding the maximum value for a
+smoothed version of the plot.
+Exactly how to smooth is of course a major issue in such an
+endeavor.
+
+Modification of the anova splitting routine to test this
+is quite easy --- simply add a few lines to the stemp routine:
+\begin{verbatim}
+ ...
+    	goodness= (left.wt*lmean^2 + right.wt*rmean^2)/sum(wt*y^2)
+	rx <- rank(x[-1])  #use only the ranks of x, to preserve invariance
+	fit <- smooth.spline(rx, goodness, df=4)
+	list(goodness= predict(fit, rx)$y, direction=sign(lmean))
+        }
+   else {
+...
+\end{verbatim}
+
+\section{Alternating logistic regression}
+Chen \cite{Chen07} used a mixed logistic regression model to
+fit clinical and genetic marker data.
+\begin{equation}
+  E(y) = \frac{e^{\eta_1 + \eta_2}}{1+e^{\eta_1 + \eta_2}}
+  \end{equation}
+where $\eta_1 = X\beta$ is a standard linear predictor based
+on clinical variables $X$ and $\eta_2$ is based on a tree model
+using a set of genetic markers $Z$.
+The solution was computed using alternate steps of an ordinary
+logistic regression on $X$ treating $\eta_2$ as an offset,
+and an rpart fit for $Z$ treating $\eta_1$ as an offset.
+
+For many splitting rules the initialization function can take
+care of offset terms once and for all by modifying the y
+vector, but this is not the case for logistic regression.
+In order to make the offset visible to the splitting function
+we create a 2 column ``response'' consisting of the original
+y vector in the first column and the offset in the second.
+<<>>=
+loginit <- function(y, offset, parms, wt)
+{
+    if (is.null(offset)) offset <- 0
+    if (any(y != 0 & y != 1)) stop ('response must be 0/1')
+
+    sfun <- function(yval, dev, wt, ylevel, digits ) {
+		  paste("events=",  round(yval[,1]),
+			", coef= ", format(signif(yval[,2], digits)),
+			", deviance=" , format(signif(dev, digits)),
+			sep = '')}
+    environment(sfun) <- .GlobalEnv
+    list(y = cbind(y, offset), parms = 0, numresp = 2, numy = 2,
+         summary = sfun)
+    }
+
+logeval <- function(y, wt, parms)
+{
+    tfit <- glm(y[,1] ~ offset(y[,2]), binomial, weight = wt)
+    list(label= c(sum(y[,1]), tfit$coef), deviance = tfit$deviance)
+}
+@
+The evaluation function returns the number of positive responses
+along with the fitted coefficient.
+
+The splitting function attempts every possible logistic regression.
+A much faster version could almost certainly be written based on
+a score test, however.
+<<>>=
+logsplit <- function(y, wt, x, parms, continuous)
+{
+    if (continuous) {
+	# continuous x variable: do all the logistic regressions
+	n <- nrow(y)
+	goodness <- double(n-1)
+	direction <- goodness
+	temp <- rep(0, n)
+	for (i in 1:(n-1)) {
+	    temp[i] <- 1
+            if (x[i] != x[i+1]) {
+                tfit <- glm(y[,1] ~ temp + offset(y[,2]), binomial, weight = wt)
+                goodness[i] <- tfit$null.deviance - tfit$deviance
+                direction[i] <- sign(tfit$coef[2])
+            }
+        }
+    } else {
+	# Categorical X variable
+	# First, find out what order to put the categories in, which
+	#  will be the order of the coefficients in this model
+	tfit <- glm(y[,1] ~ factor(x) + offset(y[,2]) - 1, binomial, weight = wt)
+	ngrp <- length(tfit$coef)
+	direction <- rank(rank(tfit$coef) + runif(ngrp, 0, 0.1)) #break ties
+        # breaking ties -- if 2 groups have exactly the same p-hat, it
+        #  does not matter which order I consider them in.  And the calling
+        #  routine wants an ordering vector.
+        #
+	xx <- direction[match(x, sort(unique(x)))] #relabel from small to large
+	goodness <- double(length(direction) - 1)
+	for (i in 1:length(goodness)) {
+	    tfit <- glm(y[,1] ~ I(xx > i) + offset(y[,2]), binomial, weight = wt)
+	    goodness[i] <- tfit$null.deviance - tfit$deviance
+        }
+    }
+    list(goodness=goodness, direction=direction)
+}
+@
+\begin{thebibliography}{9}
+\bibitem{Chen07} Chen J, Yu K, Hsing A and Therneau TM.
+  \emph{A partially linear tree-based regression model for assessing complex
+        joint gene-gene and gene-environment effects},
+Genet Epidemiol, 2007(3), 238-51.
+\end{thebibliography}
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/longintro.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/longintro.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/longintro.Rnw	(revision 2476)
@@ -0,0 +1,1986 @@
+\documentclass[11pt]{article}
+\usepackage[pdftex]{graphicx}
+\usepackage{Sweave}
+\usepackage{amsmath}
+\addtolength{\textwidth}{1in}
+\addtolength{\oddsidemargin}{-.5in}
+\setlength{\evensidemargin}{\oddsidemargin}
+
+\SweaveOpts{keep.source=TRUE, fig=FALSE}
+%\VignetteIndexEntry{Introduction to Rpart}
+%\VignetteDepends{rpart}
+%\VignetteDepends{survival}
+% Ross Ihaka suggestions
+\DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em}
+\DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em}
+\fvset{listparameters={\setlength{\topsep}{0pt}}}
+\renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}}
+
+\SweaveOpts{engine=R,eps=FALSE,pdf=TRUE, width=7, height=4.5}
+\newcommand{\myfig}[1]{\resizebox{\textwidth}{!}
+                        {\includegraphics{#1.pdf}}}
+\def\tree{\texttt{tree}}
+\def\rpart{\texttt{rpart}}
+\def\splus{S-Plus}
+\newcommand{\Co}[1]{\texttt{#1}}
+
+\title {An Introduction to Recursive Partitioning\\
+        Using the RPART Routines}
+\author{Terry M. Therneau \\
+        Elizabeth J. Atkinson\\
+        Mayo Foundation }
+\date{\today}
+
+\begin{document}
+\maketitle
+\tableofcontents
+<<echo=FALSE>>=
+options(continue = "  ", width = 60)
+options(SweaveHooks=list(fig=function() par(mar = c(4.1, 4.1, 0.1, 1.1))))
+pdf.options(pointsize = 10)
+par(xpd = NA)  #stop clipping
+library(rpart)
+@
+
+\section{Introduction}
+   This document is a modification of a technical report from the
+Mayo Clinic Division of Biostatistics \cite{Therneau97},
+which was itself an expansion of an earlier Stanford report
+\cite{Therneau83}.
+It is intended to give a short overview of
+the methods found in the {\rpart} routines, which implement many of the
+ideas found in the CART (Classification and Regression Trees) book and
+programs of Breiman, Friedman, Olshen and Stone \cite{Breiman83}.
+Because CART is the trademarked name of a particular software
+implementation of these ideas, and \emph{tree} has been used
+for the {\splus} routines of Clark and Pregibon~\cite{Clark92}
+ a different acronym
+--- Recursive PARTitioning or rpart --- was chosen.
+It is somewhat humorous that this label ``rpart'' has now become more
+common than the original and more descriptive ``cart'',
+a testament to the
+influence of freely available software.
+
+The {\rpart} programs build classification or regression models of a very
+general structure using a two stage procedure; the resulting models can
+be represented as binary trees.  An example is some preliminary data
+gathered at Stanford on revival of cardiac arrest patients by
+paramedics.  The goal is to predict which patients can be successfully
+revived in the
+field on the basis of fourteen variables known at or near the time of
+paramedic arrival, e.g., sex, age, time from attack to first care, etc.
+Since some patients who are not revived on site are later successfully
+resuscitated at the hospital, early identification of these ``recalcitrant''
+cases is of considerable clinical interest.
+
+
+\begin{figure}
+\begin{picture}(350, 160)(-40,0)
+\thicklines
+\put(120,160){\phantom{2}24 revived}
+\put(120,150){144 not revived}
+\put(150,130){\line( 2,-1){89}}
+\put(150,130){\line(-2,-1){89}}
+\put(50,  70){$X_1=1$}
+\put(50,  60){22 / 13}
+\put(210, 70){$X_1=$2, 3 or 4}
+\put(220, 60){2 / 131}
+\put(60, 54) {\line(-2,-1){45}}
+\put(60, 54) {\line( 2,-1){45}}
+\put(240, 54){\line( 2,-1){45}}
+\put(240, 54){\line(-2,-1){45}}
+\put( 5,10){$X_2=1$}
+\put( 5, 0){20 / 5}
+\put( 90,10){$X_2=$2 or 3}
+\put( 95, 0){2 / 8}
+\put(185,10){$X_3=$1}
+\put(185, 0){2 / 31}
+\put(270,10){$X_3=$2 or 3}
+\put(275, 0){0 / 100}
+\end{picture}
+\caption{Revival data}
+\label{revival}
+\end{figure}
+
+The resultant model separated the patients into four groups  as shown in
+figure \ref{revival}, where
+\begin{tabbing}
+\qquad \qquad \= $X1 $ = \= initial heart rhythm  \\
+        \> \> 1= VF/VT  2=EMD  3=Asystole  4=Other \\ \\
+ \> $X_2 $ = initial response to defibrillation \\
+ \> \>1=Improved  2=No change  3=Worse \\ \\
+\> $X_3 $ = initial response to drugs \\
+ \> \> 1=Improved  2=No change  3=Worse
+\end{tabbing}
+
+The other 11 variables did not appear in the final model.
+This procedure seems to work especially well for variables such as
+$X_1 $ ,
+where there is a definite ordering, but spacings are not necessarily equal.
+
+The tree is built by the following process: first the single variable
+is found which best splits the data into two groups (`best' will be defined
+later).  The data is separated, and then this process is applied
+{\em separately}
+to each sub-group, and so on recursively until the subgroups either reach
+a minimum size (5 for this data) or until no improvement can be made.
+
+The resultant model is, with a certainty, too complex, and the question
+arises as it does with all stepwise procedures of when to stop.  The
+second stage of the procedure consists of using cross-validation to
+trim back the full tree.  In the medical example above the
+full tree had ten terminal regions.  A cross validated estimate of risk
+was computed for a nested set of sub trees; this final model was that sub tree
+with the lowest estimate of risk.
+
+\section{Notation}
+The partitioning method can be applied to many different kinds of
+data.  We will start by looking at the classification problem,
+which is one of the more instructive cases (but also has the
+most complex equations).
+The sample population consists of $n$ observations from $C$ classes.  A given
+model will break these observations into $k$ terminal groups;
+to each of these groups is assigned a predicted class.
+In an actual application, most parameters will be estimated from
+the data, such estimates are given by $\approx$ formulae.
+
+\begin{quote}
+\begin{tabbing}
+$\pi_i $\qquad\qquad \=$i=1,2,...,C$ \qquad prior probabilities of each class \\
+\\
+$L(i,j)$ \> $i=1,2,...,C$ \quad Loss matrix for incorrectly classifying \\
+\> an $i$ as a $j$.  $L(i,i)\equiv 0 $ \\
+\\
+$A$   \>some node of the tree \\
+\> Note that A represents both a set of individuals in  \\
+\> the sample data, and, via the tree that produced it, \\
+\> a classification rule for future data.            \\
+\\
+$\tau(x)$ \> true class of an observation $ x$, where $x$ is the \\
+ \> vector of predictor variables \\
+\\
+$\tau( A ) $ \>
+ the class assigned to A, if A were to be taken as a \\
+\> final node  \\
+\\
+$n_i, \,n_A$ \>
+number of observations in the sample that are class $i$, \\
+ \>  number of obs in node $A$ \\
+\\
+$P(A)    $ \>probability of $A$ (for future observations) \\
+        \>$=\sum_{i=1}^C \pi_i \,P\{ x \in A \mid \tau( x) =i \}$ \\
+        \>$ \approx \sum_{i=1}^C \pi_i n_{iA} / n_i $ \\
+\\
+$p(i|A)$ \> $P\{ \tau( x) =i \mid  x \in A \} $  (for future observations) \\
+        \>$= \pi_i  P \{  x \in A\mid\tau( x)=i\} /P \{  x \in A\} $ \\
+        \>$ \approx \pi_i  (n_{iA} / n_i) /\sum \pi_i  (n_{iA} / n_i$ )\\
+\\
+$R(A) $ \>risk of $A$      \\
+ \> $= \sum_{i=1}^C     p(i|A)  L(i, \tau(A)) $ \\
+ \>    where $\tau(A) $ is chosen to minimize this risk \\
+\\
+$R(T)$     \>risk of a model (or tree) T \\
+ \>$ =\sum_{j=1}^k P(A_j) R(A_j)  $ \\
+ \>    where $A_j $ are the terminal nodes of the tree \\
+\end{tabbing}
+\end{quote}
+
+If $L(i,j)=1$ for all $i \ne j$, and we set the prior probabilities
+$\pi$ equal to the observed class frequencies in the sample
+then $p(i|A)= n_{iA}/n_A$ and
+$R(T)$ is the proportion  misclassified.
+\section{Building the tree}
+\subsection{Splitting criteria}
+
+If we split a node $A$ into two sons $A_L $ and $A_R $
+(left and right sons), we will have
+$$
+P(A_L )  r(A_L )+ P(A_R )  r(A_R ) \le P(A)  r(A)
+$$
+(this is proven in \cite{Breiman83}).
+Using this, one obvious way to build a tree is
+to choose that split which maximizes $\Delta r$, the decrease in risk.
+There are defects with this, however, as the following example shows:
+\begin{quote}
+Suppose losses are equal and that the data is 80\% class 1's, and that some
+trial split results in $A_L $ being 54\% class 1's and
+$A_R $ being 100\% class 1's.
+Since the minimum risk prediction for both the left and right son is
+$\tau (A_L ) = \tau (A_R ) =1$, this split will
+have $ \Delta r=0$, yet
+scientifically this is a very informative division of the sample.
+In real data with such a majority, the first few splits very often can
+do no better than this.
+\end{quote}
+
+A more serious defect is that the risk reduction is essentially linear.
+If there were two competing splits, one separating the data into groups
+of 85\% and 50\% purity respectively, and the other into 70\%-70\%, we would
+usually prefer the former, if for no other reason than because it better
+sets things up for the next splits.
+
+One way around both of these problems is to use look-ahead rules; but
+these are computationally very expensive.  Instead {\rpart} uses one of
+several measures of impurity, or diversity, of a node.  Let $f$ be some
+impurity function and define the impurity of a node A as
+$$
+I(A)= \sum_{i=1}^C f(p_{iA} )
+$$
+where $p_{iA} $ is the proportion of those in $A$ that belong to class
+$i$ for future samples.
+Since we would like $I(A)$ =0 when $A$ is pure, $f$ must be concave with
+$f(0)=f(1)=0$.
+
+Two candidates for $f$ are the information index $f(p)=-p\log(p)$ and
+the Gini
+index $f(p)=p(1-p)$.  We then use that split with maximal impurity
+reduction
+$$
+\Delta I =p(A)I(A)-p(A_L )I(A_L )-p(A_R )I(A_R )
+$$
+The two impurity functions are plotted in figure (\ref{ginip}),
+along with a rescaled version of the Gini measure.
+For the two class problem the measures differ only slightly, and
+will nearly always choose the same split point.
+\begin{figure}
+  \myfig{longintro-impurity}
+  \caption{Comparison of Gini and Information impurity for two groups.}
+  \label{ginip}
+\end{figure}
+<<impurity, echo=FALSE, fig=TRUE, include=FALSE>>=
+ptemp <- seq(0, 1, length = 101)[2:100]
+gini <- 2* ptemp *(1-ptemp)
+inform <- -(ptemp*log(ptemp) + (1-ptemp)*log(1-ptemp))
+sgini <- gini *max(inform)/max(gini)
+matplot(ptemp, cbind(gini, inform, sgini), type = 'l', lty = 1:3,
+        xlab = "P", ylab = "Impurity", col = 1)
+legend(.3, .2, c("Gini", "Information", "rescaled Gini"),
+       lty = 1:3, col = 1, bty = 'n')
+@
+
+Another convex criteria not quite of the above class is twoing for which
+$$
+I(A)=\min_{C_1C_2} [f(p_{C_1} )+f(p_{C_2} )]
+$$
+where $C_1 $,$C_2 $ is some partition of the $C$ classes into
+two disjoint sets.  If $C=2$ twoing is equivalent to the usual impurity index
+for $f$.
+Surprisingly, twoing can be calculated almost as efficiently as the
+usual impurity index.
+One potential advantage of twoing is that the output may give the user
+additional insight concerning the structure of the data.  It can be viewed
+as the partition of $C$ into two superclasses which are in some sense the
+most dissimilar for those observations in $A$.
+For certain problems there may be a natural ordering of the response
+categories (e.g. level of education), in which case ordered twoing can be
+naturally defined, by restricting $C_1$ to be an interval $[1,2,\ldots,k]$
+of classes.
+Twoing is not part of {\rpart}.
+
+\subsection{Incorporating losses}
+
+One salutatory aspect of the risk reduction criteria not found
+in the impurity measures is inclusion of the loss function.  Two different
+ways of extending the impurity criteria
+to also include losses
+are implemented in CART, the
+generalized Gini index and altered priors.
+The {\rpart} software implements only the altered priors method.
+
+\subsubsection{Generalized Gini index}
+
+The Gini index has the following interesting interpretation.  Suppose
+an object is selected at random from one of C classes according to the
+probabilities $(p_1 ,p_2 ,...,p_C ) $
+and is randomly assigned to a class using the same distribution.  The
+probability of misclassification is
+$$
+\sum_ i \sum_ {j \ne i} p_i p_j =
+\sum_ i \sum_ j p_i p_j - \sum_ i p_i^2
+= \sum_ i 1- p_i^2 = \hbox{Gini index for $p$}
+$$
+Let $L(i,j)$ be the loss of assigning class $j$ to an object which actually
+belongs to class $i$.  The expected cost of misclassification is
+$\sum \sum L(i,j)p_i p_j $.  This suggests defining a
+{\em generalized Gini} index of impurity by
+$$
+G(  p) = \sum_ i \sum_ j  L(i,j)p_i p_j
+$$
+
+The corresponding splitting criterion appears to be promising for applications
+involving variable misclassification costs.  But there are several
+reasonable objections to it.  First, $G(  p) $ is not necessarily a
+concave function of $ p$, which was the motivating factor behind
+impurity measures.  More seriously, $G$ symmetrizes the loss
+matrix before using it.  To see this note that
+$$
+G(  p) = (1/2) \sum \sum [L(i,j)+L(j,i)] \, p_i p_j
+$$
+In particular, for two-class problems, $G$ in effect ignores the
+loss matrix.
+
+
+\subsubsection{Altered priors}
+
+Remember the definition of $R(A)$
+\begin{eqnarray*}
+  R(A)  &\equiv& \sum_{i=1}^C  p_{iA}L(i, \tau (A)) \\
+          &=& \sum_{i=1}^C  \pi_i L(i, \tau (A))
+                (n_{iA} / n_i )( n / n_A )
+\end{eqnarray*}
+Assume there exists $\tilde \pi $ and $\tilde L $ be such that
+$$
+ \tilde \pi_i \tilde L (i,j) = \pi_i L(i,j)\qquad \forall i,j  \in C
+$$
+Then $R(A)$ is unchanged under the new losses and priors.  If $\tilde L$
+is proportional to the zero-one loss matrix then the priors $\tilde \pi$
+should be used in the splitting criteria.  This is possible only if $L$ is
+of the form
+$$
+   L(i,j) = \left\{ \begin{array}{ll}
+               L_i      &  i \ne j \\
+
+               0        &  i=j
+\end{array} \right .
+$$
+in which case
+$$
+\tilde \pi_i   = \frac{\pi_i   L_i } { \sum_j \pi_j L_j }
+$$
+This is always possible when $C=2$,
+and hence altered priors are exact for the two class problem.
+For arbitrary loss matrix of dimension $C> 2$,
+ {\rpart} uses the above formula with
+$L_i = \sum_ j L(i,j)$.
+
+
+A second justification for altered priors is this.  An impurity index
+$I(A) = \sum f(p_i )$ has its maximum at $p_1= p_2 =\ldots =
+p_C = 1/C$.   If a problem had, for instance, a misclassification
+loss for class 1 which was twice the loss for a class 2 or 3
+observation, one would wish I(A) to have its maximum at $p_1 =$1/5,
+$p_2 = p_3 =$2/5, since this is the worst possible set of proportions
+on which to decide a node's class.  The altered priors technique does
+exactly this, by shifting the $p_i $.
+
+Two final notes
+\begin{itemize}
+\item When altered priors are used, they affect only the choice of split.
+The ordinary losses and priors are used to compute the risk of the node.
+The altered priors simply help the impurity rule choose splits that
+are likely to be ``good'' in terms of the risk.
+\item The argument for altered priors is valid for both the Gini and
+information splitting rules.
+\end{itemize}
+
+\subsection{Example: Stage C prostate cancer (\Co{class} method)}
+\begin{figure}
+  \myfig{longintro-gini1}
+  \caption{Classification tree for the Stage C data}
+  \label{fgini1}
+\end{figure}
+
+This first example is based on a data set of 146 stage C prostate
+cancer patients \cite{Nativ88}.
+The main clinical endpoint of interest is whether the
+disease recurs after initial surgical removal of the prostate, and
+the time interval to that progression (if any).
+The endpoint in this example is \Co{status}, which takes
+on the value 1 if the disease has progressed and 0 if not.
+Later we'll analyze
+the data using the \Co{exp} method, which will take into account
+time to progression.  A short description of each of the variables is
+listed below.  The main predictor variable of interest in
+this study was DNA ploidy, as determined by flow cytometry.
+For diploid and tetraploid tumors, the flow cytometry method was
+also able to estimate the percent of  tumor cells in a $G_2$ (growth)
+stage of their cell cycle; $G_2$\% is systematically missing
+for most aneuploid tumors.
+
+The variables in the data set are
+\begin{center}
+\begin{tabular}{ll}
+ pgtime & time to progression, or last follow-up free of progression \\
+ pgstat  & status at last follow-up (1=progressed, 0=censored)\\
+ age & age at diagnosis \\
+ eet & early endocrine therapy (1=no, 0=yes) \\
+ ploidy & diploid/tetraploid/aneuploid DNA pattern \\
+ g2 & \% of cells in $G_2$ phase \\
+ grade & tumor grade (1-4) \\
+ gleason & Gleason grade (3-10) \\
+\end{tabular}
+\end{center}
+
+
+The model is fit by using the {\rpart} function.  The first
+argument of the function is a model formula,
+with the $\sim$ symbol standing for ``is modeled as''.
+The \Co{print} function gives an abbreviated output, as for other S models.
+The \Co{plot} and \Co{text} command plot the tree and then label the
+plot, the result is shown in figure \ref{fgini1}.
+<<gini1, fig=TRUE, include=FALSE>>=
+progstat <- factor(stagec$pgstat, levels = 0:1, labels = c("No", "Prog"))
+cfit  <- rpart(progstat ~  age + eet + g2 + grade + gleason + ploidy,
+               data = stagec, method = 'class')
+print(cfit)
+par(mar = rep(0.1, 4))
+plot(cfit)
+text(cfit)
+@
+
+\begin{itemize}
+\item The creation of a labeled factor variable as the response
+improves the labeling of the printout.
+\item We have explicitly directed the routine to treat \Co{progstat} as
+a categorical variable by asking for \Co{method='class'}.
+(Since \Co{progstat} is a factor this would have been the default choice).
+Since no optional classification
+parameters are specified the routine will use the Gini
+rule for splitting, prior probabilities that are proportional
+to the observed data frequencies, and 0/1 losses.
+\item The child nodes of node $x$ are always $2x$ and $2x+1$, to help
+in navigating the printout (compare the printout to figure \ref{fgini1}).
+\item Other items in the list are the definition of the split used
+to create a node,
+the number of subjects at the node,
+the loss or error at the node (for this example, with proportional
+priors and unit losses this will be the number misclassified),
+and the predicted class for the node.
+\item * indicates that the node is terminal.
+\item Grades 1 and 2 go to the left, grades 3 and 4 go to the right.
+The tree is arranged so that the branches with the largest
+``average class'' go to the right.
+\end{itemize}
+
+\subsection{Variable importance}
+The long form of the printout for the stage C data, obtained with the
+summary function, contains further information on the surrogates.
+The \texttt{cp} option of the summary function instructs it to prune
+the printout, but it does not prune the tree.
+<<summary(cfit3, cp = 0.06)>>=
+@
+For each node up to 5 surrogate splits (default) will be printed,
+but only those whose utility is greater than the baseline ``go with the
+majority'' surrogate.
+The first surrogate for the first split is based on the following
+table:
+<<>>=
+temp <- with(stagec, table(cut(grade, c(0, 2.5, 4)),
+                          cut(gleason, c(2, 5.5, 10)),
+                          exclude = NULL))
+temp
+@
+The surrogate sends \Sexpr{sum(diag(temp))} of the \Sexpr{sum(temp)}
+observations the correct direction for an agreement of
+\Sexpr{round(sum(diag(temp))/sum(temp), 3)}.
+The majority rule gets \Sexpr{zz <-max(cfit$frame$n[2:3]); zz} correct, and
+the adjusted agreement is (\Sexpr{sum(diag(temp))} - \Sexpr{zz})/
+(\Sexpr{sum(temp)} - \Sexpr{zz}).
+
+A variable may appear in the tree many times, either as a primary or a
+surrogate variable.
+An overall measure of variable importance is the sum of the goodness of split
+measures for each split for which it was the primary variable, plus
+goodness * (adjusted agreement) for all splits in which it was a surrogate.
+In the printout these are scaled to sum to 100 and the rounded values are shown,
+omitting any variable whose proportion is less than 1\%.
+Imagine two variables which were essentially duplicates of each other;
+if we did not count surrogates they would split the importance with neither
+showing up as strongly as it should.
+
+
+\section{Pruning the tree}
+\subsection{Definitions}
+We have  built a complete tree, possibly quite large and/or
+complex, and must now decide how much of that model to retain.  In
+stepwise regression, for instance, this issue is addressed sequentially
+and the fit is stopped when the F test fails to achieve some level
+$\alpha $.
+
+Let $T_1$, $T_2$,....,$T_k$ be the terminal nodes of a tree T.
+Define
+\begin{quote}
+     $|T|$ = number of terminal nodes \\
+     risk of $T$ = $R(T)$ = $\sum_{i=1}^k P(T_i )R(T_i )$
+\end{quote}
+In comparison to regression, $|T|$ is analogous to the degrees of freedom
+and $R(T)$ to the residual sum of squares.
+
+Now let $\alpha$ be some number between 0 and $\infty$ which measures
+the 'cost' of adding another variable to the model; $\alpha$ will be called a
+complexity parameter.   Let $R(T_0)$ be the risk for the zero split tree.
+Define
+$$
+R_\alpha (T) =R(T) + \alpha |T|
+\label{cp1}
+$$
+to be the cost for the tree, and define $T_\alpha $ to be that
+sub tree of the full model which has minimal cost.  Obviously $T_0 $
+= the full model and $T_\infty $ = the model with no splits at all.
+The following results are shown in \cite{Breiman83}.
+\begin{enumerate}
+\item If $T_1 $ and $T_2 $ are sub trees of $T$ with
+$R_\alpha (T_1 )= R_\alpha (T_2 ) $,
+then either $T_1 $ is a sub tree of $T_2 $ or $T_2 $ is
+a sub tree of $T_1 $;  hence either $|T_1| < |T_2|$ or
+$|T_2| < |T_1|$.
+\item If $\alpha > \beta$ then either $T_\alpha  = T_\beta $ or
+$T_\alpha $ is a strict sub tree of $T_\beta $.
+\item Given some set of numbers $\alpha_1 ,\alpha_2 ,\ldots,\alpha_m $;
+both $T_{\alpha_1} ,\ldots,T_{\alpha_m} $ and
+$R(T_{\alpha_1} )$, $\ldots$, $R(T_{\alpha_m} )$
+can be computed efficiently.
+\end{enumerate}
+Using the first result, we can uniquely define $T_\alpha$ as the smallest
+tree $T$ for which $R_\alpha (T) $ is minimized.
+
+Since any sequence of nested trees based on $T$ has at most
+$|T|$ members, result 2 implies that all possible values of $\alpha$
+can be grouped into $m$ intervals, $m \le |T| $
+\begin{eqnarray*}
+        I_1 &=& [0, \alpha_1 ]     \\
+        I_2 &=& ( \alpha_1 , \alpha_2 ]      \\
+         \vdots \\
+        I_m &=&  ( \alpha_{m-1} , \infty]
+\end{eqnarray*}
+where all $\alpha \in  I_i $ share the same minimizing sub tree.
+
+\subsection{Cross-validation}
+Cross-validation is used to choose a best value for
+$\alpha$ by the following steps:
+\begin{enumerate}
+   \item \begin{tabbing}
+         \= Fit the full model on the data set \\
+         \> compute $I_1 ,I_2,...,I_m$ \\
+         \> set \=  $\beta_1=0      $ \\
+         \>     \>  $\beta_2=\sqrt {\alpha_1 \alpha_2 }   $         \\
+         \>     \>      $\beta_3=\sqrt {\alpha_2 \alpha_3 }    $     \\
+         \>     \>      $\vdots $                                  \\
+         \>     \>      $\beta_{m-1} = \sqrt {\alpha_{m-2} \alpha_{m-1} } $ \\
+         \>     \>      $\beta_m=\infty$                             \\
+         \> each $\beta_i $ is a `typical value' for its $I_i $        \\
+   \end{tabbing}
+   \item Divide the data set into $s$ groups $G_1 ,G_2 ,...,G_s $
+     each of size $s/n$, and for each group separately:
+     \begin{itemize}
+     \item fit a full model on the data set `everyone except $G_i $'
+       and determine $T_{\beta_1} , T_{\beta_2} ,...,T_{\beta_m} $
+       for this reduced data set,
+     \item compute the predicted class for each observation in $G_i$,
+       under each of the models $T_{\beta_j}$ for $1 \le j \le m$,
+     \item from this compute the risk for each subject.
+     \end{itemize}
+   \item
+     Sum over the $G_i $ to get an estimate of risk for each
+     $\beta_j $.
+     For that $\beta$ (complexity parameter) with smallest risk
+     compute $T_\beta $ for the full data set, this is
+     chosen as the best trimmed tree.
+\end{enumerate}
+
+In actual practice, we may use instead the 1-SE rule.  A plot of $\beta$
+versus risk often has an initial sharp drop followed by a relatively flat
+plateau and then a slow rise.  The choice of $\beta$ among those
+models on the
+plateau can be essentially random.  To avoid this, both an estimate of the
+risk and its standard error are computed during the cross-validation.  Any
+risk within one standard error of the achieved minimum is marked as
+being equivalent to the minimum (i.e. considered to be part of the flat
+plateau).  Then the simplest model, among all those ``tied'' on the
+plateau, is chosen.
+
+In the usual definition of cross-validation we would have taken $s=n$ above, i.e.,
+each of the $G_i $ would contain exactly one observation, but for
+moderate $n$ this is computationally prohibitive.  A value of $s = 10$ has
+been found to be sufficient, but users can vary this if they wish.
+
+In Monte-Carlo trials, this method of pruning has proven very reliable for
+screening out `pure noise' variables in the data set.
+
+\subsection{Example: The Stochastic Digit Recognition Problem}
+
+This example is found in section 2.6 of \cite{Breiman83}, and
+used as a running example throughout much of their book.
+Consider the segments of an unreliable digital readout
+\begin{center}
+\begin{picture}(350,160)(-100,0)
+\put(27,120){1}
+\put(10,115){\line(1,0){40}}
+\put(10, 75){\line(1,0){40}}
+\put(10, 35){\line(1,0){40}}
+\put(10, 35){\line(0,1){80}}
+\put(50, 35){\line(0,1){80}}
+\put(27, 23){7}
+\put(27, 80){4}
+\put(0 , 50){5}
+\put(0,  90){2}
+\put(60, 90){3}
+\put(60, 50){6}
+\end{picture}
+\end{center}
+where each light is correct with probability 0.9, e.g., if the true digit is
+a 2, the lights 1, 3, 4, 5, and 7 are on with probability 0.9 and lights
+2 and 6 are on with probability 0.1.  Construct test data where
+$Y\in \{0,1,...,9\}$, each with proportion 1/10 and the $X_i$, $i=1,\ldots,7$
+are i.i.d. Bernoulli variables with parameter depending on Y.
+$X_8 - X_{24} $
+are generated as i.i.d Bernoulli $P\{X_i =1\} =.5 $, and are
+independent of Y.  They correspond to embedding the readout in a larger
+rectangle of random lights.
+
+\begin{figure}
+  \myfig{longintro-dig1}
+  \caption{Optimally pruned tree for the stochastic digit recognition data}
+  \label{figdig}
+\end{figure}
+
+
+A sample of size 200 was generated accordingly and the
+procedure applied using the Gini index (see 3.2.1) to build the tree.
+The S code to compute the simulated data and the fit are shown below.
+<<dig1, fig=TRUE, include=FALSE>>=
+set.seed(1953)  # An auspicious year
+n <- 200
+y <- rep(0:9, length = 200)
+temp <- c(1,1,1,0,1,1,1,
+          0,0,1,0,0,1,0,
+          1,0,1,1,1,0,1,
+          1,0,1,1,0,1,1,
+          0,1,1,1,0,1,0,
+          1,1,0,1,0,1,1,
+          0,1,0,1,1,1,1,
+          1,0,1,0,0,1,0,
+          1,1,1,1,1,1,1,
+          1,1,1,1,0,1,0)
+
+lights <- matrix(temp, 10, 7, byrow = TRUE)    # The true light pattern 0-9
+temp1 <- matrix(rbinom(n*7, 1, 0.9), n, 7) # Noisy lights
+temp1 <- ifelse(lights[y+1, ] == 1, temp1, 1-temp1)
+temp2 <- matrix(rbinom(n*17, 1, 0.5), n, 17) # Random lights
+x <- cbind(temp1, temp2)
+
+dfit <- rpart(y ~ x, method='class',
+              control = rpart.control(xval = 10, minbucket = 2, cp = 0))
+printcp(dfit)
+
+fit9 <- prune(dfit, cp = 0.02)
+par(mar = rep(0.1, 4))
+plot(fit9, branch = 0.3, compress = TRUE)
+text(fit9)
+@
+
+This table differs from that in section 3.5 of \cite{Breiman83} in
+several ways, the last two of which are substantive.
+\begin{itemize}
+\item The actual values are different, of course, because of different
+random number generators in the two runs.
+\item The complexity table is printed from the smallest tree (no splits) to the
+largest one (28 splits).
+We find it easier to compare one tree to another when they start at
+the same place.
+\item The number of splits is listed, rather than the number of nodes.
+The number of nodes is always 1 + the number of splits.
+\item For easier reading, the error columns have been scaled so that the
+first node has an error of 1.  Since in this example the model with no
+splits must make 180/200 misclassifications, multiply columns 3-5 by
+180 to get a result in terms of absolute error.
+(Computations are done on the absolute error scale, and printed on
+relative scale).
+\item The complexity parameter column has been similarly scaled.
+\end{itemize}
+
+Looking at the table, we see that the best tree has 10 terminal
+nodes (9 splits), based on cross-validation.
+This sub tree is extracted with a call to \Co{prune} and saved in \Co{fit9}.
+The pruned tree is shown in figure \ref{figdig}.
+Two options have been used in the plot.  The \Co{compress} option
+tries to narrow the printout by vertically overlapping portions
+of the plot.
+The \Co{branch} option controls the shape of the branches that
+connect a node to its children.
+
+The largest tree, with 35 terminal nodes, correctly classifies 170/200 = 85\%
+of the observations, but uses several of the random predictors in
+doing so and seriously over fits the data.
+If the number of observations per terminal node (minbucket)
+had been set to 1 instead of
+2, then every observation would be classified correctly in the final model,
+many in terminal nodes of size 1.
+
+\section{Missing data}
+\subsection{Choosing the split}
+
+Missing values are one of the curses of statistical models and analysis.
+Most procedures deal with them by refusing to deal with them --
+incomplete observations are tossed out.   \texttt{Rpart} is somewhat more
+ambitious.   Any observation with values for the dependent variable and
+at least one independent variable will participate in the modeling.
+
+
+The quantity to be maximized is still
+$$
+\Delta I = p(A)I(A)-p(A_L )I(A_L ) - p(A_R ) I(A_R)
+$$
+The leading term is the same for all variables and splits irrespective of
+missing data, but the right two terms are somewhat modified.  Firstly, the
+impurity indices $I(A_R )$ and $I (A_L )$ are calculated only over
+the observations which are not missing a particular predictor.  Secondly,
+the two probabilities $p(A_L )$ and $p(A_R )$ are also calculated
+only over the relevant observations, but they are then adjusted so that
+they sum to $p(A)$.  This entails some extra bookkeeping as the tree is
+built, but ensures that the terminal node probabilities sum to 1.
+
+In the extreme case of a variable for which only 2 observations are
+non-missing, the impurity of the two sons will both be zero when splitting
+on that variable.  Hence $\Delta I $ will be maximal, and this `almost all
+missing' coordinate is guaranteed to be chosen as best; the method is
+certainly flawed in this extreme case.  It is difficult to say whether this
+bias toward missing coordinates carries through to the non-extreme cases,
+however, since a more complete variable also affords for itself more possible
+values at which to split.
+
+\subsection{Surrogate variables}
+
+Once a splitting variable and a split point for it have been decided,
+what {\em is}
+to be done with observations missing that variable?  One approach is to
+estimate the missing datum using the other independent variables; {\rpart}
+uses a variation of this to define
+{\em surrogate} variables.
+
+As an example, assume that the split (age $<$40, age $\ge $40) has
+been chosen.  The surrogate variables are found by re-applying the
+partitioning algorithm (without recursion) to predict the two categories
+`age $<$40' vs. `age $\ge $40' using the other independent variables.
+
+%$$
+%\begin{tabular}{l|r|r|}
+%   &  & \multicolumn{2}{c}{Age $<$ 40} \\
+%   &  & True & False \\ \hline
+%   Other X $<$ cutpoint & True & True Positive & False Positive \\ \cline{3-4}
+%                  & False & False Negative & True Negative \\ \hline
+%\end{tabular}
+%$$
+
+For each predictor an optimal split point and a misclassification error
+are computed.  (Losses and priors do not enter in --- none are defined for
+the age groups --- so the risk is simply \#misclassified / n.)  Also evaluated
+is the blind rule `go with the majority' which has misclassification
+error $\min(p, 1-p)$ where
+\begin{center}
+                        $p$ = (\# in A with age $<$ 40) / $n_A $.
+\end{center}
+The surrogates are ranked, and any variables which do no better than the
+blind rule are discarded from the list.
+
+Assume that the majority of subjects have age $\le$ 40 and that there is
+another variable $x$ which is uncorrelated to
+age; however, the subject with the largest value of $x$ is also over
+40 years of age.  Then the surrogate variable
+$x < \max$ versus $x \ge \max$ will have one less error that the
+blind rule,
+sending 1 subject to the right and $n-1$ to the left.
+A continuous variable that is completely unrelated to age has probability
+$1-p^2$ of generating such a
+trim-one-end surrogate by chance alone.  For this reason
+the {\rpart} routines impose one more constraint during the construction
+of the surrogates: a candidate split must send at least 2 observations to
+the left and at least 2 to the right.
+
+Any observation which is missing the split variable is then classified using
+the first surrogate variable, or if missing that, the second surrogate
+is used, and etc.  If an observation is missing all the surrogates the blind
+rule is used.  Other strategies for these `missing everything' observations
+can be convincingly argued, but there should be few or no observations
+of this type (we hope).
+
+\subsection{Example: Stage C prostate cancer (cont.)}
+Let us return to the stage C prostate cancer data of the
+earlier example.
+For a more detailed listing of the rpart object, we use the \Co{summary}
+function. It includes the information from the CP table (not repeated below),
+plus information about each node.  It is easy to print a
+sub tree based on a different cp value using the \Co{cp} option.
+Any value between 0.0555 and 0.1049 would produce the same
+result as is listed below, that is, the tree with 3 splits.
+Because the printout is long, the \Co{file} option of \Co{summary.rpart}
+is often useful.
+
+<<>>=
+printcp(cfit)
+
+summary(cfit, cp = 0.06)
+@
+
+\begin{itemize}
+\item There are 54 progressions (class 1) and 94 non-progressions, so
+the first node has an expected loss of $54/146 \approx 0.37$.
+(The computation is this simple only for the default priors and losses).
+\item Grades 1 and 2 go to the left, grades 3 and 4 to the right.
+The tree is arranged so that the ``more severe'' nodes go to the
+right.
+\item  The improvement is $n$ times the change in impurity index.
+In this instance, the largest improvement is for the variable \Co{grade},
+with an improvement of 10.36.
+The next best choice is Gleason score, with an improvement of 8.4.
+The actual values of the improvement are not so important, but their
+relative size gives an indication of the comparative utility of the
+variables.
+\item Ploidy is a categorical variable, with values of
+diploid, tetraploid, and aneuploid, in that order.
+(To check the order, type \Co{table(stagec\$ploidy)}).
+All three possible splits were attempted:
+aneuploid+diploid vs. tetraploid, aneuploid+tetraploid vs. diploid,
+and aneuploid vs. diploid + tetraploid.
+The best split sends diploid to the right and the others to the left.
+\item The 2 by 2 table of  diploid/non-diploid vs grade= 1-2/3-4 has
+64\% of the observations on the diagonal. \\
+$$
+\begin{tabular}{r|rr}
+   & 1-2 & 3-4 \\ \hline
+diploid & 38 & 29 \\
+tetraploid & 22 & 46 \\
+aneuploid & 1 & 10
+\end{tabular}
+$$
+\item For node 3, the primary split variable is missing on 6 subjects.
+All 6 are split based on the first surrogate, ploidy.  Diploid and
+aneuploid tumors are sent to the left, tetraploid to the right.
+As a surrogate,
+eet was no better than 45/85 (go with the majority), and was not retained.
+$$
+\begin{tabular}{l|c|c|}
+    & g2 $<$ 13.2 & g2 $>$ 13.2 \\ \hline
+   Diploid/aneuploid &  71 & 1 \\
+       Tetraploid    &   3 & 64 \\
+\end{tabular}
+$$
+\end{itemize}
+
+\section{Further options}
+\subsection{Program options}
+
+The central fitting function is {\rpart}, whose main arguments are
+\begin{itemize}
+\item \Co{formula}: the model formula, as in \Co{lm} and other S
+model fitting functions.  The right hand side may contain both
+continuous and categorical (factor) terms.  If the outcome $y$ has more
+than two levels, then categorical predictors must be fit by exhaustive
+enumeration, which can take a very long time.
+\item \Co{data, weights, subset}: as for other S models.  Weights are
+not yet supported, and will be ignored if present.
+\item \Co{method}: the type of splitting rule to use.  Options
+at this point are classification, anova, Poisson, and exponential.
+\item \Co{parms}: a list of method specific optional parameters.
+For classification, the
+list can contain any of: the vector of prior probabilities
+(component \Co{prior}), the loss matrix (component \Co{loss})
+or the splitting index (component \Co{split}).
+The priors must be positive and sum to 1.  The loss matrix must have
+zeros on the diagonal and positive off-diagonal elements.
+The splitting index can be \Co{"gini"} or \Co{"information"}.
+\item \Co{na.action}: the action for missing values.  The default action
+for rpart is \Co{na.rpart}, this default is not overridden by the
+\Co{options(na.action)} global option.  The default action removes only
+those rows for which either the response $y$ or \emph{all} of the predictors
+are missing.
+This ability to retain partially missing observations is perhaps the single
+most useful feature of {\rpart} models.
+\item \Co{control}: a list of control parameters, usually the result of
+the \Co{rpart.control} function.  The list must contain
+\begin{itemize}
+\item \Co{minsplit}: The minimum number of observations in a node for which
+the routine will even try to compute a split.  The default is 20.
+This parameter can save computation time, since smaller nodes
+are almost always pruned away by cross-validation.
+\item \Co{minbucket}: The minimum number of observations in a terminal node.
+This defaults to \Co{minsplit/3}.
+\item \Co{maxcompete}: It is often useful in the printout to see not only
+the variable that gave the best split at a node, but also the second, third,
+etc best.  This parameter controls the number that will be printed.  It has
+no effect on computational time, and a small effect on the amount of
+memory used.  The default is 4.
+\item \Co{xval}: The number of cross-validations to be done.  Usually set to
+zero during exploratory phases of the analysis.  A value of 10, for instance,
+increases the compute time to 11-fold over a value of 0.
+\item \Co{maxsurrogate}: The maximum number of surrogate variables to retain
+at each node.  (No surrogate that does worse than ``go with the majority''
+is printed or used).  Setting this to zero will cut the computation time in
+half, and set \Co{usesurrogate} to zero.  The default is 5.
+Surrogates give different information than competitor splits.  The competitor
+list asks ``which other splits would have as many correct classifications'',
+surrogates ask ``which other splits would classify the same subjects in the
+same way'', which is a harsher criteria.
+\item \Co{usesurrogate}: A value of usesurrogate=2, the default, splits
+subjects in the way described previously.  This is similar to CART.
+If the value is 0, then a subject who is missing the primary split variable
+does not progress further down the tree.  A value of 1 is intermediate:
+all surrogate variables except ``go with the majority'' are used to
+send a case further down the tree.
+\item \Co{cp}: The threshold complexity parameter.
+\end{itemize}
+\end{itemize}
+
+The complexity parameter \Co{cp} is, like \Co{minsplit}, an advisory parameter,
+but is considerably more useful.  It is specified according to the
+formula
+$$
+   R_{cp}(T) \equiv R(T) + cp* |T| * R(T_1)
+$$
+where $T_1$ is the tree with no splits, $|T|$ is the
+number of splits for a tree, and $R$ is the risk.
+This scaled version is much more user friendly than the original
+CART formula (\ref{cp1}) since it is unit less.
+A value of \Co{cp = 1} will always result in a tree with no splits.
+For regression models (see next section) the scaled cp has a very
+direct interpretation: if any split does not increase the overall
+${\rm R}^2$ of the model by at least $cp$
+(where ${\rm R}^2$ is the usual linear-models definition)
+then that split is decreed to be, a priori, not worth pursuing.
+The program does not split said branch any further, and
+saves considerable computational effort.
+The default value of .01 has been reasonably successful at
+`pre-pruning' trees so that the cross-validation step need only
+remove 1 or 2 layers, but it sometimes over prunes,
+particularly for large data sets.
+
+
+\subsection{Example: Consumer Report Auto Data}
+A second example using the \Co{class} method demonstrates the outcome
+for a response with multiple ($>2$) categories.  We also explore
+the difference between Gini and information splitting rules.
+The dataset cu.summary contains a collection of variables from the April,
+1990 Consumer Reports summary on 117 cars. For our purposes, car
+Reliability will be treated as the response. The variables are:
+$$
+\begin{tabular}{ll}
+Reliability & an ordered factor (contains NAs): \\
+   & Much worse $<$ worse $<$ average $<$ better
+$<$ Much Better \\
+Price & numeric: list price in dollars, with standard equipment\\
+Country & factor: country where car manufactured \\
+Mileage & numeric: gas mileage in miles/gallon, contains NAs \\
+Type & factor: Small, Sporty, Compact, Medium, Large, Van \\
+\end{tabular}
+$$
+In the analysis we are treating reliability as an unordered outcome.
+Nodes potentially can be classified as Much worse, worse, average,
+better, or Much better, though there are none that are labeled as
+just ``better''.  The 32 cars with missing response (listed as NA)
+were not used in the analysis.
+Two fits are made, one using the Gini index and the other the
+information index.
+
+\begin{figure}[tb]
+  \myfig{longintro-cars}
+  \caption{Displays the rpart-based model relating automobile
+    Reliability to car type, price, and country of origin. The figure
+    on the left uses the \texttt{gini} splitting
+    index and the figure on the right uses the \texttt{information} splitting
+    index.}
+  \label{ginifig5}
+\end{figure}
+
+<<cars, fig=TRUE, include=FALSE>>=
+fit1 <- rpart(Reliability ~ Price + Country + Mileage + Type,
+                data = cu.summary, parms = list(split = 'gini'))
+fit2 <- rpart(Reliability ~ Price + Country + Mileage + Type,
+                data = cu.summary, parms = list(split = 'information'))
+
+par(mfrow = c(1,2), mar = rep(0.1, 4))
+plot(fit1, margin = 0.05);  text(fit1, use.n = TRUE, cex = 0.8)
+plot(fit2, margin = 0.05);  text(fit2, use.n = TRUE, cex = 0.8)
+@
+Due to the wide labels at the bottom, we had to increase the figure space
+slightly and decrease the character size in order to avoid truncation at the
+left and right edges.
+Details for the first two splits in the Gini tree are
+<<>>=
+summary(fit1, cp = 0.06)
+@
+
+And for the information splitting the first split is
+<<>>=
+fit3 <- rpart(Reliability ~ Price + Country + Mileage + Type,
+                data=cu.summary, parms=list(split='information'),
+              maxdepth=2)
+summary(fit3)
+@
+
+The first 3 countries (Brazil, England, France) had only one or two
+cars in the listing, all of which were missing the reliability
+variable.  There are no entries for these countries in the first node,
+leading to the $-$ symbol for the rule.
+The information measure has larger ``improvements'', consistent with
+the difference in scaling between the information and Gini criteria
+shown in figure 2, but the relative merits of different splits are
+fairly stable.
+
+  The two rules do not choose the same primary split at node 2.
+The data at this point are
+\begin{center}
+\begin{tabular}{rcccccc}
+&Compact & Large & Medium &Small & Sporty & Van \\
+ Much worse &     2 &   2  &   4  &  2 &    7 & 1 \\
+      worse &     5 &   0  &   4  &  3 &    0 & 0 \\
+    average &     3 &   5  &   8  &  2 &    2 & 3 \\
+     better &     2 &   0  &   0  &  3 &    0 & 0 \\
+Much better &     0 &   0  &   0  &  0 &    0 & 0
+\end{tabular}
+\end{center}
+Since there are 6 different categories, all $2^5 = 32$ different
+combinations were explored, and as it turns out there are several
+with a nearly identical improvement.  The Gini and information
+criteria make different ``random'' choices from this set of near
+ties. For the Gini index, \emph{Sporty vs others} and
+\emph{Compact/Small vs others} have improvements of 3.19 and 3.12,
+respectively.
+For the information index, the improvements are
+6.21 versus 9.28.
+Thus the Gini index picks the first rule and information the second.
+Interestingly, the two splitting criteria arrive at exactly the
+same final nodes, for the full tree, although by different paths.
+(Compare the class counts of the terminal nodes).
+
+We have said that for a categorical predictor with $m$ levels,
+all $2^{m-1}$ different possible splits are tested..
+   When there are a large number of categories for the predictor,
+the computational burden of evaluating all of these subsets can become
+large.
+For instance, the call \Co{rpart(Reliability ~ ., data=car90)}
+does not return for a \emph{long,} long time: one of the predictors
+in that data set is an unordered factor with 30 levels!
+Luckily, for any ordered outcome there is a computational
+shortcut that allows the program to find the best split using
+only $m-1$ comparisons.  This includes the classification method
+when there are only two categories, along with the
+anova and Poisson methods to be introduced later.
+
+
+\subsection{Example: Kyphosis data}
+
+A third \Co{class} method example explores
+the parameters \Co{prior} and \Co{loss}.
+The dataset kyphosis has 81 rows representing data on 81 children who
+have had corrective spinal surgery. The variables are:
+$$
+\begin{tabular}{ll}
+Kyphosis & factor: postoperative deformity is present/absent \\
+Age & numeric: age of child in months \\
+Number & numeric: number of vertebrae involved in operation \\
+Start & numeric: beginning of the range of vertebrae involved \\
+\end{tabular}
+$$
+
+\begin{figure}
+  \myfig{longintro-kyphos}
+  \caption{Displays the rpart-based models for the
+    presence/absence of kyphosis.  The figure
+    on the left uses the default {prior} (0.79,0.21) and {loss}; the
+    middle figure uses the user-defined {prior} (0.65,0.35) and default
+    {loss}; and the third figure uses the default {prior} and the
+    user-defined {loss} $L(1,2)=3,\, L(2,1)=2$).}
+  \label{kyphfig}
+\end{figure}
+
+<<kyphos, fig=TRUE, include=FALSE>>=
+lmat <- matrix(c(0,3, 4,0), nrow = 2, ncol = 2, byrow = FALSE)
+fit1 <- rpart(Kyphosis ~  Age + Number + Start, data = kyphosis)
+
+fit2 <- rpart(Kyphosis ~  Age + Number + Start, data = kyphosis,
+              parms = list(prior = c(0.65, 0.35)))
+fit3 <- rpart(Kyphosis ~  Age + Number + Start, data = kyphosis,
+              parms = list(loss = lmat))
+
+par(mfrow = c(1, 3), mar = rep(0.1, 4))
+plot(fit1);  text(fit1, use.n = TRUE, all = TRUE, cex = 0.8)
+plot(fit2);  text(fit2, use.n = TRUE, all = TRUE, cex = 0.8)
+plot(fit3);  text(fit3, use.n = TRUE, all = TRUE, cex = 0.8)
+@
+
+This example shows how even the initial split changes depending on the
+prior and loss that are specified.  The first and third fits have the
+same initial split (Start $< 8.5$), but the improvement differs.  The
+second fit splits Start at 12.5 which moves 46 people to the left
+instead of 62.
+
+  Looking at the leftmost tree, we see that the sequence of
+splits on the left hand branch yields only a single node classified
+as {\em present}.   For any loss greater than 4 to 3, the routine will
+instead classify this node as {\em absent}, and the entire left side of
+the tree collapses, as seen in the right hand figure.
+This is not unusual --- the most common effect of alternate loss
+matrices is to change the amount of pruning in the tree, more pruning in
+some branches and less in others, rather than to change the
+choice of splits.
+
+The first node from the default tree is
+\begin{verbatim}
+
+ Node number 1: 81 observations,    complexity param=0.1765
+  predicted class= absent  expected loss= 0.2099
+     class counts:  64 17
+    probabilities:  0.7901 0.2099
+  left son=2 (62 obs) right son=3 (19 obs)
+  Primary splits:
+      Start  < 8.5  to the right, improve=6.762, (0 missing)
+      Number < 5.5  to the left,  improve=2.867, (0 missing)
+      Age    < 39.5 to the left,  improve=2.250, (0 missing)
+  Surrogate splits:
+      Number < 6.5  to the left,  agree=0.8025, (0 split)
+\end{verbatim}
+
+
+The fit using the prior (0.65,0.35) is
+\begin{Verbatim}
+Node number 1: 81 observations,    complexity param=0.302
+  predicted class= absent  expected loss= 0.35
+     class counts:  64 17
+    probabilities:  0.65 0.35
+  left son=2 (46 obs) right son=3 (35 obs)
+  Primary splits:
+      Start  < 12.5 to the right, improve=10.900, (0 missing)
+      Number < 4.5  to the left,  improve= 5.087, (0 missing)
+      Age    < 39.5 to the left,  improve= 4.635, (0 missing)
+  Surrogate splits:
+      Number < 3.5  to the left,  agree=0.6667, (0 split)
+\end{Verbatim}
+
+And first split under 4/3 losses is
+
+\begin{Verbatim}
+Node number 1: 81 observations,    complexity param=0.01961
+  predicted class= absent  expected loss= 0.6296
+     class counts:  64 17
+    probabilities:  0.7901 0.2099
+  left son=2 (62 obs) right son=3 (19 obs)
+  Primary splits:
+      Start  < 8.5  to the right, improve=5.077, (0 missing)
+      Number < 5.5  to the left,  improve=2.165, (0 missing)
+      Age    < 39.5 to the left,  improve=1.535, (0 missing)
+  Surrogate splits:
+      Number < 6.5  to the left,  agree=0.8025, (0 split)
+\end{Verbatim}
+
+
+
+\section{Regression}
+\label{method}
+\subsection{Definition}
+
+Up to this point the classification problem has been used to define and
+motivate our formulae.  However, the partitioning procedure is quite
+general and can be extended by specifying 5 ``ingredients'':
+\begin{itemize}
+\item A splitting criterion, which is used to decide which variable
+gives the best split.
+For classification this was either the Gini or log-likelihood function.
+In the \Co{anova} method the splitting criteria is
+$SS_T - (SS_L + SS_R)$, where
+ $SS_T = \sum(y_i - \bar y)^2$
+is the sum of squares for the node, and $SS_R$, $SS_L$ are the
+sums of squares for the right and left son, respectively.
+This is equivalent to choosing the split to maximize the between-groups
+sum-of-squares in a simple analysis of variance.  This rule is
+identical to the regression option for {\tree}.
+\item A summary statistic or vector, which is used to describe a
+node.  The first element of the vector is considered to be the
+fitted value.  For the anova method this is the mean of the node;
+for classification the response is the predicted class followed by
+the vector of class probabilities.
+\item The error of a node.  This will be the variance of $y$ for anova,
+and the predicted loss for classification.
+\item The prediction error for a new observation, assigned to the node.
+For anova this is $(y_{new} - \bar y)$.
+\item Any necessary initialization.
+\end{itemize}
+
+The \Co{anova} method leads to regression trees; it is the
+default method if $y$ a simple numeric vector, i.e., not a
+factor, matrix, or survival object.
+
+\subsection{Example: Consumer Report car data}
+The dataset \Co{car90} contains a collection of variables from the
+April, 1990 Consumer Reports; it has 34 variables on 111 cars.
+We've excluded 3 variables: tire size and model name because they are factors
+with a very large number of levels whose printout does not fit well in
+this report's page size, and  rim size because it is too good a predictor of
+price and leads to a less interesting illustration.  (Tiny cars are cheaper
+and have small rims.)
+<<>>=
+cars <- car90[, -match(c("Rim", "Tires", "Model2"), names(car90))]
+carfit <- rpart(Price/1000 ~ ., data=cars)
+carfit
+printcp(carfit)
+@
+
+<<echo=FALSE>>=
+temp <- carfit$cptable
+@
+\begin{itemize}
+\item The relative error is $1-{\rm R}^2$, similar to linear regression.
+The xerror is related to the PRESS statistic.
+The first split appears to improve the fit the most.
+The last split adds little improvement to the apparent error,
+and increases the cross-validated error.
+\item The 1-SE rule would choose a tree with 3 splits.
+\item This is a case where the default cp value of .01 may
+have over pruned the tree, since the cross-validated error
+is barely at a minimum.  A rerun with the cp threshold at .001
+gave little change, however.
+\item For any CP value between Sexpr{round(temp[3,1],2)} and
+  \Sexpr{round(temp[2,1],2)} the best
+model has one split;
+for any CP value between \Sexpr{round(temp[4,1],2)} and
+\Sexpr{round(temp[3,1],2)} the best model is with
+2 splits; and so on.
+\end{itemize}
+
+The \Co{print} and \Co{summary} commands also recognizes the \Co{cp} option, which
+allows the user to look at only the top few splits.
+
+<<>>=
+summary(carfit, cp = 0.1)
+@
+
+The first split on displacement partitions the
+\Sexpr{carfit$frame$n[1]} observations into groups of
+\Sexpr{carfit$frame$n[2]} and \Sexpr{carfit$frame$n[3]}
+(nodes 2 and 3) with mean prices of
+\Sexpr{round(carfit$frame$yval[2])} and
+\Sexpr{round(carfit$frame$yval[3])}
+
+\begin{itemize}
+\item The improvement listed is the percent change in SS for this split,
+i.e., $1 - (SS_{right} + SS_{left})/SS_{parent}$, which is the gain in
+$R^2$ for the fit.
+\item The data set has displacement of the engine in both cubic inches
+(Disp) and liters (Disp2).  The second is a perfect surrogate split for
+the first, obviously.
+\item The weight and displacement are very closely related,
+as shown by the surrogate split agreement of 91\%.
+\item Not all the countries are represented in node 3, e.g., there are no
+larger cars from Brazil.
+This is indicated by a \Co{-} in the list of split directions.
+\end{itemize}
+
+
+\begin{figure}
+  \myfig{longintro-anova2}
+  \caption{Both plots were obtained using the function
+    \Co{rsq.rpart(fit3)}. The figure on the left shows that the first split
+    offers the most information.  The figure on the right suggests that
+    the tree should be pruned to include only 1 or 2 splits.}
+  \label{anovafig2}
+\end{figure}
+<<anova2, fig=TRUE, include=FALSE, echo=FALSE>>=
+par(mfrow=c(1,2))
+rsq.rpart(carfit)
+par(mfrow=c(1,1))
+@
+Other plots can be used to help determine the best cp value for this
+model. The function \Co{rsq.rpart} plots the jackknifed error versus
+the number of splits.  Of interest is the smallest error, but any
+number of splits within the ``error bars'' (1-SE rule) are considered
+a reasonable number of splits (in this case, 1 or 2 splits seem to be
+sufficient).  As is often true with modeling, simpler is often
+better. Another useful plot is the ${\rm R}^2$ versus number of
+splits.  The (1 - apparent error) and (1 - relative error) show how much
+is gained with additional splits.  This plot highlights the
+differences between the ${\rm R}^2$ values.
+
+\begin{figure}
+  \myfig{longintro-anova3}
+  \caption{This plot shows the (observed-expected) cost of cars
+    versus the predicted cost of cars based on the nodes/leaves in which the cars
+    landed. There appears to be more variability in node 7 than in some of
+    the other leaves.}
+  \label{anovafig3}
+\end{figure}
+Finally, it is possible to look at the residuals from this model, just
+as with a regular linear regression fit, as shown in
+figure \ref{anovafig3} produced by the following.
+<<anova3, fig=TRUE, include=FALSE>>=
+plot(predict(carfit), jitter(resid(carfit)))
+temp <- carfit$frame[carfit$frame$var == '<leaf>',]
+axis(3, at = temp$yval, as.character(row.names(temp)))
+mtext('leaf number', side = 3, line = 3)
+abline(h = 0, lty = 2)
+@
+
+\subsection{Example: Stage C data (\Co{anova} method)}
+The stage C prostate cancer data of the earlier section can also
+be fit using the anova method, by treating the status variable
+as though it were continuous.
+<<>>=
+cfit2 <- rpart(pgstat ~ age + eet + g2 + grade + gleason + ploidy,
+               data = stagec)
+
+printcp(cfit2)
+
+print(cfit2, cp = 0.03)
+@
+
+If this tree is compared to the earlier results, we see that it
+has chosen exactly the same variables and split points as before.
+The only addition is further splitting of node 2, the upper left
+``No'' of figure \ref{fgini1}.  This is no accident, for the two
+class case the Gini splitting rule reduces to $2p(1-p)$, which is
+the variance of a node.
+
+The two methods differ in their evaluation and pruning, however.
+Note that nodes 4 and 5, the two children of node 2, contain
+2/40 and 7/21 progressions, respectively.  For classification
+purposes both nodes have the same predicted value (No) and the
+split will be discarded since the error (\# of misclassifications)
+with and without the split is identical.
+In the regression context the two predicted values of .05 and .33
+{\em are} different --- the split has identified a nearly pure
+subgroup of significant size.
+
+ This setup is known as \emph{odds regression}, and may be a more
+sensible way to evaluate a split when the emphasis of the model
+is on understanding/explanation rather than on prediction error
+per se.  Extension of this rule to the multiple class problem
+is appealing, but has not yet been implemented in {\rpart}.
+
+
+
+\section{Poisson regression}
+\subsection{Definition}
+The Poisson splitting method attempts to extend {{\rpart}} models to
+event rate data.
+The model in this case is
+$$
+        \lambda = f(x)
+$$
+where $\lambda$ is an event rate and $x$ is some set of predictors.  As an
+example consider hip fracture rates.  For each county in the United States
+we can obtain
+\begin{itemize}
+\item number of fractures in patients age 65 or greater (from Medicare files)
+\item population of the county (US census data)
+\item potential predictors such as
+\begin{itemize}
+\item socio-economic indicators
+\item number of days below freezing
+\item ethnic mix
+\item physicians/1000 population
+\item etc.
+\end{itemize}
+\end{itemize}
+
+Such data would usually be approached by using Poisson regression; can we
+find a tree based analogue?
+  In adding criteria for rates regression to this ensemble, the guiding
+principle was the following: the between groups sum-of-squares is not a
+very robust measure, yet tree based regression works fairly well for this
+data.
+So do the simplest (statistically valid) thing possible.
+
+Let $c_i$ be the observed event count for observation $i$, $t_i$ be the
+observation time, and $x_{ij}, j=1,\ldots,p$ be the predictors.
+The $y$ variable for the program will be a 2 column matrix.
+
+Splitting criterion: The likelihood ratio test for two Poisson groups
+$$
+   D_{\hbox{parent}} - \left( D_{\hbox{left son}} + D_{\hbox{right son}}
+        \right )
+$$
+
+Summary statistics:  The observed event rate and the number of events.
+\begin{eqnarray*}
+\hat\lambda &=& \frac{\hbox{\# events}}{\hbox{total time}}
+                = \frac{\sum c_i}{\sum t_i} \\
+\end{eqnarray*}
+
+Error of a node: The within node deviance.
+$$
+D = \sum \left[ c_i \log \left(\frac{c_i}{\hat\lambda t_i} \right)
+                    - (c_i - \hat\lambda t_i) \right]
+$$
+
+Prediction error: The deviance contribution for a new observation, using
+$\hat \lambda$ of the node as the predicted rate.
+
+\subsection{Improving the method}
+There is a problem with the criterion just proposed, however:
+cross-validation of a model often produces an infinite value for the
+deviance.  The simplest case where this occurs is easy to understand.
+Assume that some terminal node of the tree has 20 subjects, but only 1 of
+the 20 has experienced any events.  The cross-validated error (deviance)
+estimate for that node will have one subset --- the one where the subject
+with an event is left out --- which has $\hat\lambda=0$.
+When we use the prediction for the 10\% of subjects who were set aside,
+the deviance contribution of the subject with an event is
+$$
+\ldots + c_i \log(c_i / 0) + \ldots
+$$
+which is infinite since $c_i >0$.  The problem is that when $\hat\lambda=0$
+the occurrence of an event is infinitely improbable, and, using the deviance
+measure, the corresponding model is then infinitely bad.
+
+One might expect this phenomenon to be fairly rare, but unfortunately it is
+not so.  One given of tree-based modeling is that a right-sized model is
+arrived at by purposely over-fitting the data and then pruning back the
+branches.  A program that aborts due to a numeric exception during the first
+stage is uninformative to say the least.
+Of more concern is that this edge effect does not seem to be limited to
+the pathological case detailed above.  Any near approach to the boundary value
+$\lambda=0$ leads to large values of the deviance, and the procedure
+tends to discourage any final node with a small number of events.
+
+An ad hoc solution is to use the revised estimate
+$$
+   \hat{\hat \lambda} = \max \left(\hat\lambda, \frac{k}{\sum t_i} \right)
+$$
+where $k$ is 1/2 or 1/6.
+That is, pure nodes are given a partial event.
+(This is similar to the starting estimates used in
+the GLM program for a Poisson regression.)  This is unsatisfying, however, and
+we propose instead using a shrinkage estimate.
+
+Assume that the true rates $\lambda_j$ for the leaves of the tree are
+random values from a Gamma$(\mu, \sigma)$ distribution.  Set
+$\mu$ to the observed overall event rate $\sum c_i / \sum t_i$, and
+let the user choose as a prior the coefficient of variation
+$k =\sigma / \mu$.  A value of $k=0$ represents extreme pessimism
+(``the leaf nodes will all give the same result''), whereas $k=\infty$
+represents
+extreme optimism.  The Bayes estimate of the event rate for a node works out
+to be
+$$
+  \hat \lambda_k = \frac{\alpha + \sum c_i}{\beta + \sum t_i},
+$$
+where $\alpha= 1/k^2$ and $\beta = \alpha/ \hat\lambda$.
+
+This estimate is scale invariant, has a simple interpretation, and
+shrinks least those nodes with a large amount of information.  In practice,
+a value of $k=10$ does essentially no shrinkage.
+For \Co{method='poisson'}, the optional parameters list is the single
+number $k$, with a default value of 1.
+
+\subsection{Example: solder data}
+The solder data frame, as explained in the S help file, is a
+dataset with 900 observations which are the results of an
+experiment varying 5 factors relevant to the wave-soldering procedure
+for mounting components on printed circuit boards.  The response
+variable, skips, is a count of how many solder skips appeared to a
+visual inspection.  The other variables are listed below:
+
+$$
+\begin{tabular}{ll}
+Opening & factor: amount of clearance around
+the mounting pad (S $<$ M $<$ L) \\
+Solder & factor: amount of solder used (Thin $<$ Thick) \\
+Mask & factor: Type of solder mask used (5 possible) \\
+PadType & factor: Mounting pad used (10 possible) \\
+Panel & factor: panel (1, 2 or 3) on board being counted \\
+\end{tabular}
+$$
+
+In this call, the \Co{rpart.control} options are modified:
+\Co{maxcompete = 2} means that only 2 other competing splits are
+listed (default is 4); \Co{cp = .05} means that a smaller
+tree will be built initially (default is .01).
+The $y$ variable for Poisson partitioning may be a two column
+matrix containing the observation time in column 1 and the
+number of events in column 2, or it may be a vector of event
+counts alone.
+
+<<>>=
+sfit <- rpart(skips ~ Opening + Solder + Mask + PadType + Panel,
+              data = solder, method = 'poisson',
+              control = rpart.control(cp = 0.05, maxcompete = 2))
+sfit
+@
+\begin{itemize}
+\item The response value is the expected event rate
+(with a time variable), or in this case the expected number of skips.
+The values are shrunk towards the global estimate of 5.53 skips/observation.
+\item The deviance is the same as the null deviance (sometimes called the
+residual deviance) that you'd get when calculating a Poisson glm model
+for the given subset of data.
+\end{itemize}
+
+<<>>=
+summary(sfit, cp = 0.1)
+@
+
+\begin{itemize}
+\item The improvement is ${\rm Deviance_{parent} - (Deviance_{left} +
+Deviance_{right})}$, which is the likelihood ratio test
+for comparing two Poisson samples.
+\item The cross-validated error has been found to be
+overly pessimistic when describing how much the error
+is improved by each split.  This is likely an effect of the
+boundary effect mentioned earlier, but more research is needed.
+\item The variation xstd is not as useful, given the bias of xerror.
+\end{itemize}
+
+\begin{figure}
+  \myfig{longintro-poisson1}
+  \caption{The first figure shows the solder data, fit with the
+    \Co{poisson} method, using a \Co{cp} value of 0.05.  The second figure
+    shows the same fit, but with a \Co{cp} value of 0.10.  The function
+    \Co{prune.rpart} was used to produce the smaller tree.}
+  \label{poissonfig1}
+\end{figure}
+<<poisson1, fig=TRUE, include=FALSE>>=
+par(mar = rep(0.1, 4))
+plot(sfit)
+text(sfit, use.n = TRUE, min = 3)
+
+fit.prune <- prune(sfit, cp = 0.10)
+plot(fit.prune)
+text(fit.prune, use.n = TRUE, min = 2)
+@
+
+The \Co{use.n = TRUE} option specifies that number of events / total N should be
+listed along with the predicted rate (number of events/person-years).
+The function \Co{prune} trims the tree \Co{fit} to the \Co{cp} value
+$0.10$.  The same tree could have been created by specifying
+\Co{cp = 0.10} in the original call to {\rpart}.
+
+\subsection{Example: Stage C Prostate cancer, survival method}
+One special case of the Poisson model is of particular interest
+for medical consulting (such as the authors do).
+Assume that we have survival data, i.e., each subject has either 0 or 1 event.
+Further, assume that the time values have been pre-scaled so as to
+fit an exponential model.  That is, stretch the time axis so that a
+Kaplan-Meier plot of the data will be a straight line when plotted on
+the logarithmic scale.
+An approximate way to do this is
+<<>>=
+require(survival)
+temp <- coxph(Surv(pgtime, pgstat) ~ 1, stagec)
+newtime <- predict(temp, type = 'expected')
+@
+and then do the analysis using the \Co{newtime} variable.
+(This replaces each time value by $\Lambda(t)$, where $\Lambda$ is the
+cumulative hazard function).
+
+A slightly more sophisticated version of this which we
+will call \emph{exponential scaling}
+gives a straight line curve for log(survival) under a
+parametric exponential model.
+The only difference from the approximate scaling above is that
+a subject who is censored between observed death times
+will receive ``credit'' for the intervening interval, i.e.,
+we assume the baseline hazard to be linear between observed deaths.
+If the data is pre-scaled in this way, then the
+Poisson model above is equivalent to the \emph{local full likelihood}
+tree model of LeBlanc and Crowley \cite{Leblanc92}.
+They show that this model is more efficient than the earlier suggestion
+of Therneau et al. \cite{Therneau90} to use the martingale residuals
+from a Cox model as input to a regression tree (anova method).
+Exponential scaling or method='exp' is
+the default if $y$ is a \Co{Surv} object.
+
+Let us again return to the stage C cancer example.
+Besides
+the variables explained previously, we will use pgtime, which is time
+to tumor progression.
+<<exp3, fig=TRUE, include=FALSE>>=
+require(survival)
+pfit <- rpart(Surv(pgtime, pgstat) ~ age + eet + g2 + grade +
+               gleason + ploidy, data = stagec)
+print(pfit)
+
+pfit2 <- prune(pfit, cp = 0.016)
+par(mar = rep(0.2, 4))
+plot(pfit2, uniform = TRUE, branch = 0.4, compress = TRUE)
+text(pfit2, use.n = TRUE)
+@
+Note that the primary split on grade is the same as when
+status was used as a dichotomous endpoint,
+but that the splits thereafter differ.
+
+Suppose that we wish to simplify this tree, so that only
+four splits remain.
+Looking at the table of complexity parameters, we see that
+\Co{prune(fit, cp = 0.016)} would give the desired result,
+which is shown in figure \ref{expfig3}.
+From the figure node 4 (leftmost terminal) has only 1 event
+for 33 subjects, a relative death rate of .133 times the
+overall rate, and is defined by grade = 1--2 and
+g2 $<$ 11.36.
+\begin{figure}
+  \myfig{longintro-exp3}
+  \caption{Survival fit to the stage C prostate data.}
+    \label{expfig3}
+\end{figure}
+
+For a final summary of the model, it can be helpful to plot the
+probability of survival based on the final bins in which the subjects
+landed. To create new variables based on the rpart groupings,
+using the \Co{where} component of the fit, as
+shown in figure \ref{expfig4}.
+We'll further prune the tree down to four nodes by removing the
+split at node 6.
+\begin{figure}
+  \myfig{longintro-exp4}
+  \caption{Survival plot based on snipped rpart object.  The
+    probability of tumor progression is greatest in node 8, which has
+    patients who are older and have a higher initial tumor grade. }
+  \label{expfig4}
+\end{figure}
+<<exp4, fig=TRUE, include=FALSE>>=
+temp <- snip.rpart(pfit2, 6)
+km <- survfit(Surv(pgtime, pgstat) ~ temp$where, stagec)
+plot(km, lty = 1:4, mark.time = FALSE,
+     xlab = "Years", ylab = "Progression")
+legend(10, 0.3, paste('node', c(4,5,6,7)), lty = 1:4)
+@
+
+\subsection{Open issues}
+The default value of the shrinkage parameter $k$ is 1.  This corresponds
+to prior coefficient of variation of 1 for the estimated $\lambda_j$.
+We have not nearly enough experience to decide if this is a good value.
+(It does stop the $\log(0)$ message though).
+
+Cross-validation does not work very well.  The procedure gives very
+conservative results, and quite often declares the no-split tree to
+be the best.  This may be another artifact of the edge effect.
+
+\section{Plotting options}
+\label{plotsect}
+
+This section examines the various options that are available when
+plotting an rpart object.  For simplicity, the same model (data from
+Example 1) will be used throughout.
+You have doubtless already noticed the use of \texttt{par(mar =)}
+in the examples.
+The plot function for rpart uses the general \texttt{plot} function
+to set up the plot region.  By default, this leaves space for
+axes, legends or titles on the bottom, left, and top.
+Room for axes is not needed in general for rpart plots, and
+for this report we also do not have top titles.
+For the small plots in this report it was important to use all of
+the page, so we reset these for each plot.
+(Due to the way that Sweave works each plot is a separate
+environment, so the par() parameters do not endure from plot
+to plot.)
+
+The simplest labeled plot is called by using \Co{plot} and \Co{text}
+without changing any of the defaults.  This is useful for a first
+look, but sometimes you'll want more information about each of the
+nodes.
+
+\begin{figure}
+  \myfig{longintro-plots1}
+  \caption{\Co {plot(fit); text(fit)}}
+  \label{plotfig1}
+\end{figure}
+
+<<plots1, fig=TRUE, include=FALSE>>=
+fit <- rpart(pgstat ~  age + eet + g2 + grade + gleason + ploidy,
+             stagec, control = rpart.control(cp = 0.025))
+par(mar = rep(0.2, 4))
+plot(fit)
+text(fit)
+@
+\begin{figure}
+  \myfig{longintro-plots2}
+  \caption{\Co {plot(fit, uniform = TRUE); text(fit,use.n = TRUE,all = TRUE)}}
+  \label{plotfig2}
+\end{figure}
+
+The next plot has uniform stem lengths (\Co{uniform = TRUE}), has extra
+information (\Co{use.n = TRUE}) specifying number of subjects at each node,
+and has labels on all the nodes, not just the terminal nodes (\Co{all = TRUE}).
+<<plots2, fig=TRUE, include=FALSE>>=
+par(mar = rep(0.2, 4))
+plot(fit, uniform = TRUE)
+text(fit, use.n = TRUE, all = TRUE)
+@
+
+\begin{figure}
+  \myfig{longintro-plots3}
+  \caption{\Co{plot(fit, branch=0); text(fit,use.n = TRUE)}}
+  \label{plotfig3}
+\end{figure}
+
+Fancier plots can be created by modifying the \Co{branch} option,
+which controls the shape of branches that connect a node to its
+children. The default for the plots is to have square shouldered trees
+(\Co{branch = 1.0}).  This can be taken to the other extreme with
+no shoulders at all (\Co{branch=0}).
+<<plots3, fig=TRUE, include=FALSE>>=
+par(mar = rep(0.2, 4))
+plot(fit, branch = 0)
+text(fit, use.n = TRUE)
+@
+
+\begin{figure}
+  \myfig{longintro-plots4}
+  \caption{\Co{plot(fit, branch = 0.4, uniform = TRUE, compress = TRUE)}}
+  \label{plotfig4}
+\end{figure}
+
+These options can be combined with others to create the plot that fits your
+particular needs.
+The default plot may be inefficient in it's use of space: the terminal
+nodes will always lie at x-coordinates of 1,2,\ldots.
+ The \Co{compress} option attempts to improve this by overlapping some nodes.
+It has little effect on figure \ref{plotfig4}, but in figure \ref{figdig}
+it allows the lowest branch to ``tuck under'' those above.
+If you want to play around with the
+spacing with compress, try using \Co{nspace} which regulates the space
+between a terminal node and a split.
+
+<<plots4, fig=TRUE, include=FALSE>>=
+par(mar = rep(0.2, 4))
+plot(fit, branch = 0.4,uniform = TRUE, compress = TRUE)
+text(fit, all = TRUE, use.n = TRUE)
+@
+
+\begin{figure}
+  \myfig{longintro-plots5}
+  \caption{Fancier plot}
+  \label{plotfig5}
+\end{figure}
+
+Several of these options were combined into a function called
+\Co{post.rpart}, whose default action of creating a .ps file
+in the current directory is now rather dated.
+Identical results to the function can be obtained by the collection
+of options shown below, the result is displayed in figure \ref{plotfig5}.
+The code is essentially
+<<plots5, fig=TRUE, include=FALSE>>=
+par(mar = rep(0.2, 4))
+plot(fit, uniform = TRUE, branch = 0.2, compress = TRUE, margin = 0.1)
+text(fit, all = TRUE, use.n = TRUE, fancy = TRUE, cex= 0.9)
+@
+The \Co{fancy} option of \Co{text} creates the ellipses and
+rectangles, and moves the splitting rule to the midpoints of
+the branches.
+\Co{Margin} shrinks the plotting region
+slightly so that the \Co{text} boxes don't run over the edge of the
+plot.
+The \Co{branch} option makes the lines exit the ellipse
+at a ``good'' angle.
+A separate package \texttt{rpart.plot} carries these ideas much further.
+
+
+\section{Other functions}
+A more general approach to cross-validation can be gained using the
+\Co{xpred.rpart} function.
+Given an rpart fit, a vector of $k$ complexity parameters,
+and the desired number of cross-validation groups,
+this function returns an $n$ by $k$ matrix containing the
+predicted value $\hat y_{(-i)}$ for each subject, from the model
+that was fit without that subject.
+The $cp$ vector defaults to the geometric mean of the $cp$
+sequence for the pruned tree on the full data set.
+
+Here is an example that uses the mean absolute deviation for
+continuous data rather than the usual mean square error.
+<<>>=
+carfit <- rpart(Price/1000 ~ ., cars)
+carfit$cptable
+
+price2 <-  cars$Price[!is.na(cars$Price)]/1000
+temp <- xpred.rpart(carfit)
+errmat <- price2 - temp
+abserr <- colMeans(abs(errmat))
+rbind(abserr, relative=abserr/mean(abs(price2-mean(price2))))
+@
+We see that on the absolute error scale the relative error
+improvement is not quite so large,
+though this could be expected given that the optimal split was
+not chosen to minimize absolute error.
+
+
+\section{Test Cases}
+\subsection{Classification}
+  The definitions for classification trees can get the most complex,
+especially with respect to priors and loss matrices.
+In this section we lay out a simple example, in great detail.
+(This was done to debug the S functions.)
+
+\begin{table}
+\centering
+\begin{tabular} {r|rrrrrrrr}
+y & 1& 2 &  3 &  1 & 2 &3 &  1 &  2 \\
+x1& 1 &2 &  3 &  4 & 5& 6 &  7 &  8 \\
+x2& 1 &2 &  3 &  4 & 5& 6 &  1 &  2 \\
+x3&NA &22&  38&  12&NA& 48&  14&  32 \\
+\multicolumn{2}{c}{} \\  % tricky way to get a blank line with no vertical bar
+y&  3  &  1 &   2 &   3 &   1 &  2  & 1 \\
+x1& 9 &  10 &  11 &  12 &  13 & 14 & 15 \\
+x2& 3 &   4 &   5 &   6 &   1 &  2 &  3 \\
+x3& 40&  NA &   30&  46 &  28 & 34 & 48 \\
+\end{tabular}
+\caption{Data set for the classification test case}
+\label{datatab}
+\end{table}
+
+
+Let $n=15$, and the data be as given in table \ref{datatab}.
+The loss matrix is defined as
+$$
+L = \begin{array}{ccc}
+        0 &  2 &  2 \\
+        2 &  0 &  6 \\
+        1 &  1 &  0 \\ \end{array}
+$$
+where rows represent the true class and columns the assigned class.
+Thus the error in mistakenly calling a class 2 observation a 3 is quite
+large in this data set.
+The prior probabilities for the study are assumed to be
+$\pi = .2, .3, .5$,
+so class 1 is most prevalent in the input data ($n_i$=6, 5, and 4 observations,
+respectively), but class 3 the most prevalent in the external population.
+
+Splits are chosen using the Gini index with altered priors,
+as defined in equation (4.15) of Breiman et al \cite{Breiman83}.
+\begin{eqnarray*}
+        \tilde\pi_1 &=& \pi_1(0+2+2) / \sum \tilde \pi_i = 4/21 \\
+        \tilde\pi_2 &=& \pi_2(2+0+6) / \sum \tilde \pi_i = 12/21 \\
+        \tilde\pi_3 &=& \pi_3(1+1+0) / \sum \tilde \pi_i = 5/21\\
+\end{eqnarray*}
+
+For a given node $T$, the Gini impurity will be
+$\sum_j p(j|T)[1-p(j|T)] = 1- \sum p(j|T)^2$,
+where $p(j|T)$ is the expected proportion of class $j$ in the node:
+$$
+ p(j|T) = \tilde\pi_j [n_i(T)/n_i ]/ \sum p(i|T)
+$$.
+
+Starting with the top node,
+for each possible predicted class we have the following loss
+$$
+\begin{tabular}{cc}
+  predicted class &    E(loss)\\
+         1       &     .2*0 + .3*2 + .5*1 = 1.1 \\
+         2       &     .2*2 + .3*0 + .5*1 = 0.9 \\
+         3       &     .2*2 + .3*6 + .5*0 = 2.2 \\
+\end{tabular}
+$$
+The best choice is class 2, with an expected loss of 0.9.
+The Gini impurity for the node, using altered priors, is
+$G = 1 - (16+144+25)/21^2 = 256/441 \approx .5805$.
+
+Assume that variable $x1$ is split at 12.5, which is, as it turns out,
+the optimal split point for that variable under the constraint that
+at least 2 observations are in each terminal node.
+Then the right node will have class counts of
+(4,4,4) and the left node of (2,1,0).
+For the right node (node 3 in the tree) \\
+\begin{tabular}{rcl}
+$P(R)$ &=&.2(4/6) + .3(4/5) + .5(4/4)= 131/150 \\
+&=& \mbox{probability of the node (in the population)} \\
+$p(i|R)$ &=& (.2(4/6), .3(4/5), .5(4/4))/$P(R)$ \\
+$\widetilde P(R)$ &=& (4/21)(4/6) + (12/21)(4/5) + (5/21)(4/4)
+           = 259/315=37/45 \\
+$\tilde p(i|R)$&=& [(4/21)(4/6), (12/21)(4/5),  (5/21)(4/4)] (45/37) \\
+$G(R)$&=&  $1 - \sum \tilde p(i|R)^2 \approx .5832$
+\end{tabular}
+
+For the left node (node 2) \\
+\begin{tabular}{rcl}
+$P(L)$ &=&.2(2/6) + .3(1/5) + .5(0/4)= 19/150 \\
+$p(i|L)$ &=& (.4/3, .3/5, 0)/ $P(L)$ = (10/19, 9/19, 0) \\
+$\widetilde P(L)$ &=& $1- \widetilde P(R) =8/45$ \\
+$\tilde p(i|L)$ &=& [(4/21)(2/6), (12/21)(1/5),  (5/21)(0/4)]/
+        $\widetilde P(L)$\\
+$G(L)$ &=&$ 1 -  \sum \tilde p(i|L)^2 \approx  .459$ \\
+\end{tabular}
+
+The total improvement for the split involves the
+change in impurity between the parent and the two child nodes
+$$
+ n(G - [\widetilde P(L)* G(L) + \widetilde P(R)* G(R)] )
+           \approx .2905
+$$
+where $n=15$ is the total sample size.
+
+For variable $x2$ the best split occurs at 5.5, splitting the data
+into left and right nodes with class counts of (2,2,1) and
+(4,3,3), respectively.
+Computations just exactly like the above give an improvement of
+1.912.
+
+ For variable $x3$ there are 3 missing values, and the computations are
+similar to what would be found for a node further down the tree with
+only 12/15 observations.
+The best split point is at 3.6, giving class counts of
+(3,4,0) and (1,0,4) in the left and right nodes, respectively.
+
+For the right node (node 3 in the tree)\\
+\begin{tabular}{rcl}
+$\widetilde P(R)$ &=& (4/21)(3/6) + (12/21)(4/5) + (5/21)(0/4) = 174/315\\
+$\tilde p(i|R)$&=& [(4/21)(3/6), (12/21)(4/5),  (5/21)(0/4)] (315/174) \\
+                 &=& (5/29, 24/29, 0) \\
+$G(R)$&=&  $1 - (25+576)/29^2 = 240/841      approx .2854$
+\end{tabular}
+
+For the left node (node 2) \\
+\begin{tabular}{rcl}
+$\widetilde P(L)$ &=& (4/21)(1/6) +(12/21)(0/5) + (5/21)(4/4)= 85/315\\
+$\tilde p(i|L)$ &=& [(4/21)(1/6), (12/21)(0/5),  (5/21)(4/4)] (315/85) \\
+                &=& (2/17, 0, 15/17)\\
+$G(L)$ &=&$ 1 -  (4 + 225)/17^2 = 60/289   \approx  .2076$ \\
+\end{tabular}
+
+The overall impurity for the node involves only 12 of the 15
+observations, giving the following values for the top node:\\
+\begin{tabular}{rcl}
+$\widetilde P(T)$ &=& 174/315 + 85/315 = 259/315\\
+$\tilde p(i|T)$ &=&  [(4/21)(4/6), (12/21)(4/5),  (5/21)(4/4)] (315/259) \\
+        &=& (40/259, 144/259, 75/259) \\
+$G(T)$& =& $1- (40^2 + 144^2 + 75^2)/259^2 = 39120/67081$
+\end{tabular}
+
+The total improvement for the split involves the impurity $G$ of all three
+nodes, weighted by the probabilities of the nodes under the alternate priors.
+$$
+ 15* \{(259/315)(39120/67081)  - [(174/315)(240/841) + (85/315)(60/289)]\}
+         \approx 3.9876
+$$
+As is true in general with the rpart routines, variables with missing
+values are penalized with respect to choosing a split -- a factor of
+259/315 or about 12/15 in the case of $x3$ at the top node.
+Table \ref{tab:cutpoint} shows the statistics for all of the cutpoints
+of $x3$.
+
+\begin{table}
+\centering
+\begin{tabular}{c | rrrrr}
+Cutpoint& $P(L)$ & $P(R)$ & $G(L)$ & $G(R)$ & $\Delta I$\\ \hline
+1.3 & 0.03 & 0.97 & 0.00 & 0.56 & 0.55\\
+1.8 & 0.06 & 0.94 & 0.00 & 0.53 & 1.14\\
+2.5 & 0.18 & 0.82 & 0.46 & 0.57 & 0.45\\
+2.9 & 0.21 & 0.79 & 0.50 & 0.53 & 0.73\\
+3.1 & 0.32 & 0.68 & 0.42 & 0.56 & 1.01\\
+3.3 & 0.44 & 0.56 & 0.34 & 0.52 & 1.96\\
+3.6 & 0.55 & 0.45 & 0.29 & 0.21 & 3.99\\
+3.9 & 0.61 & 0.39 & 0.41 & 0.26 & 2.64\\
+4.3 & 0.67 & 0.33 & 0.48 & 0.33 & 1.56\\
+4.7 & 0.73 & 0.27 & 0.53 & 0.45 & 0.74\\
+4.8 & 0.79 & 0.21 & 0.56 & 0.00 & 0.55\\
+\end{tabular}
+\caption{Cut points and statistics for variable $x3$, top node}
+\label{tab:cutpoint}
+\end{table}
+
+ Because $x3$ has missing values, the next step is choice of a surrogate
+split.  Priors and losses currently play no role in the computations for
+selecting surrogates.  For all the prior computations, the effect of
+priors is identical to that of adding case weights to the observations
+such that the apparent frequencies are equal to the chosen priors;
+since surrogate computations do account for case weights, one could argue
+that they should also then make use of priors.
+The argument has not yet been found compelling enough to add this to the
+code.
+
+  Note to me: the cp is not correct for usesurrogate=0.  The error
+after a split is not (left error + right error) -- it also needs to
+have a term (parent error for those obs that weren't split).
+
+\bibliographystyle{plain}
+\bibliography{refer}
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/usercode.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/usercode.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/longintro.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/longintro.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/usercode.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/usercode.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/rpart/doc/usercode.R	(revision 2476)
@@ -0,0 +1,207 @@
+### R code from vignette source 'usercode.Rnw'
+
+###################################################
+### code chunk number 1: usercode.Rnw:26-28
+###################################################
+options(continue="  ", width=60)
+options(SweaveHooks=list(fig=function() par(mar=c(5.1, 4.1, .3, 1.1))))
+
+
+###################################################
+### code chunk number 2: usercode.Rnw:85-99
+###################################################
+itemp <- function(y, offset, parms, wt) {
+    if (is.matrix(y) && ncol(y) > 1)
+       stop("Matrix response not allowed")
+    if (!missing(parms) && length(parms) > 0)
+        warning("parameter argument ignored")
+    if (length(offset)) y <- y - offset
+    sfun <- function(yval, dev, wt, ylevel, digits ) {
+		  paste("  mean=", format(signif(yval, digits)),
+			", MSE=" , format(signif(dev/wt, digits)),
+			sep = '')
+    }
+    environment(sfun) <- .GlobalEnv
+    list(y = c(y), parms = NULL, numresp = 1, numy = 1, summary = sfun)
+}
+
+
+###################################################
+### code chunk number 3: usercode.Rnw:155-163
+###################################################
+temp <- 4
+fun1 <- function(x) {
+    q <- 15
+    z <- 10
+    fun2 <- function(y) y + z + temp
+    fun2(x^2)
+}
+fun1(5)
+
+
+###################################################
+### code chunk number 4: usercode.Rnw:194-199
+###################################################
+etemp <- function(y, wt, parms) {
+    wmean <- sum(y*wt)/sum(wt)
+    rss <- sum(wt*(y-wmean)^2)
+    list(label = wmean, deviance = rss)
+}
+
+
+###################################################
+### code chunk number 5: usercode.Rnw:249-284
+###################################################
+stemp <- function(y, wt, x, parms, continuous)
+{
+    # Center y
+    n <- length(y)
+    y <- y- sum(y*wt)/sum(wt)
+
+    if (continuous) {
+        # continuous x variable
+        temp <- cumsum(y*wt)[-n]
+        left.wt  <- cumsum(wt)[-n]
+        right.wt <- sum(wt) - left.wt
+        lmean <- temp/left.wt
+        rmean <- -temp/right.wt
+        goodness <- (left.wt*lmean^2 + right.wt*rmean^2)/sum(wt*y^2)
+        list(goodness = goodness, direction = sign(lmean))
+    } else {
+        # Categorical X variable
+        ux <- sort(unique(x))
+        wtsum <- tapply(wt, x, sum)
+        ysum  <- tapply(y*wt, x, sum)
+        means <- ysum/wtsum
+
+        # For anova splits, we can order the categories by their means
+        #  then use the same code as for a non-categorical
+        ord <- order(means)
+        n <- length(ord)
+        temp <- cumsum(ysum[ord])[-n]
+        left.wt  <- cumsum(wtsum[ord])[-n]
+        right.wt <- sum(wt) - left.wt
+        lmean <- temp/left.wt
+        rmean <- -temp/right.wt
+        list(goodness= (left.wt*lmean^2 + right.wt*rmean^2)/sum(wt*y^2),
+             direction = ux[ord])
+    }
+}
+
+
+###################################################
+### code chunk number 6: usercode.Rnw:327-342
+###################################################
+library(rpart)
+mystate <- data.frame(state.x77, region=state.region)
+names(mystate) <- casefold(names(mystate)) #remove mixed case
+ulist <- list(eval = etemp, split = stemp, init = itemp)
+fit1 <- rpart(murder ~ population + illiteracy + income + life.exp +
+              hs.grad + frost + region, data = mystate,
+              method = ulist, minsplit = 10)
+fit2 <- rpart(murder ~ population + illiteracy + income + life.exp +
+              hs.grad + frost + region, data = mystate,
+              method = 'anova', minsplit = 10, xval = 0)
+all.equal(fit1$frame, fit2$frame)
+all.equal(fit1$splits, fit2$splits)
+all.equal(fit1$csplit, fit2$csplit)
+all.equal(fit1$where, fit2$where)
+all.equal(fit1$cptable, fit2$cptable)
+
+
+###################################################
+### code chunk number 7: usercode.Rnw:358-369
+###################################################
+xgroup <- rep(1:10, length = nrow(mystate))
+xfit <- xpred.rpart(fit1, xgroup)
+xerror <- colMeans((xfit - mystate$murder)^2)
+
+fit2b <-  rpart(murder ~ population + illiteracy + income + life.exp +
+                hs.grad + frost + region, data = mystate,
+                method = 'anova', minsplit = 10, xval = xgroup)
+topnode.error <- (fit2b$frame$dev/fit2b$frame$wt)[1]
+
+xerror.relative <- xerror/topnode.error
+all.equal(xerror.relative, fit2b$cptable[, 4], check.attributes = FALSE)
+
+
+###################################################
+### code chunk number 8: fig1
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+tdata <- mystate[order(mystate$illiteracy), ]
+n <- nrow(tdata)
+temp <- stemp(tdata$income, wt = rep(1, n), tdata$illiteracy,
+              parms = NULL, continuous = TRUE)
+xx <- (tdata$illiteracy[-1] + tdata$illiteracy[-n])/2
+plot(xx, temp$goodness, xlab = "Illiteracy cutpoint",
+     ylab = "Goodness of split")
+lines(smooth.spline(xx, temp$goodness, df = 4), lwd = 2, lty = 2)
+
+
+###################################################
+### code chunk number 9: usercode.Rnw:438-458
+###################################################
+loginit <- function(y, offset, parms, wt)
+{
+    if (is.null(offset)) offset <- 0
+    if (any(y != 0 & y != 1)) stop ('response must be 0/1')
+
+    sfun <- function(yval, dev, wt, ylevel, digits ) {
+		  paste("events=",  round(yval[,1]),
+			", coef= ", format(signif(yval[,2], digits)),
+			", deviance=" , format(signif(dev, digits)),
+			sep = '')}
+    environment(sfun) <- .GlobalEnv
+    list(y = cbind(y, offset), parms = 0, numresp = 2, numy = 2,
+         summary = sfun)
+    }
+
+logeval <- function(y, wt, parms)
+{
+    tfit <- glm(y[,1] ~ offset(y[,2]), binomial, weight = wt)
+    list(label= c(sum(y[,1]), tfit$coef), deviance = tfit$deviance)
+}
+
+
+###################################################
+### code chunk number 10: usercode.Rnw:466-502
+###################################################
+logsplit <- function(y, wt, x, parms, continuous)
+{
+    if (continuous) {
+	# continuous x variable: do all the logistic regressions
+	n <- nrow(y)
+	goodness <- double(n-1)
+	direction <- goodness
+	temp <- rep(0, n)
+	for (i in 1:(n-1)) {
+	    temp[i] <- 1
+            if (x[i] != x[i+1]) {
+                tfit <- glm(y[,1] ~ temp + offset(y[,2]), binomial, weight = wt)
+                goodness[i] <- tfit$null.deviance - tfit$deviance
+                direction[i] <- sign(tfit$coef[2])
+            }
+        }
+    } else {
+	# Categorical X variable
+	# First, find out what order to put the categories in, which
+	#  will be the order of the coefficients in this model
+	tfit <- glm(y[,1] ~ factor(x) + offset(y[,2]) - 1, binomial, weight = wt)
+	ngrp <- length(tfit$coef)
+	direction <- rank(rank(tfit$coef) + runif(ngrp, 0, 0.1)) #break ties
+        # breaking ties -- if 2 groups have exactly the same p-hat, it
+        #  does not matter which order I consider them in.  And the calling
+        #  routine wants an ordering vector.
+        #
+	xx <- direction[match(x, sort(unique(x)))] #relabel from small to large
+	goodness <- double(length(direction) - 1)
+	for (i in 1:length(goodness)) {
+	    tfit <- glm(y[,1] ~ I(xx > i) + offset(y[,2]), binomial, weight = wt)
+	    goodness[i] <- tfit$null.deviance - tfit$deviance
+        }
+    }
+    list(goodness=goodness, direction=direction)
+}
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/NAMESPACE	(revision 2476)
@@ -0,0 +1,40 @@
+# Generated by roxygen2 (4.0.2): do not edit by hand
+
+S3method("[",fseq)
+S3method("[[",fseq)
+S3method(print,fseq)
+export("%$%")
+export("%<>%")
+export("%>%")
+export("%T>%")
+export("n'est pas")
+export(add)
+export(and)
+export(debug_fseq)
+export(debug_pipe)
+export(divide_by)
+export(divide_by_int)
+export(equals)
+export(extract)
+export(extract2)
+export(freduce)
+export(functions)
+export(inset)
+export(inset2)
+export(is_greater_than)
+export(is_in)
+export(is_less_than)
+export(is_weakly_greater_than)
+export(is_weakly_less_than)
+export(mod)
+export(multiply_by)
+export(multiply_by_matrix)
+export(not)
+export(or)
+export(raise_to_power)
+export(set_colnames)
+export(set_names)
+export(set_rownames)
+export(subtract)
+export(undebug_fseq)
+export(use_series)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/R/magrittr.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/R/magrittr.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/R/magrittr
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/R/magrittr	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/R/magrittr	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/R/magrittr.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/R/magrittr.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/LICENSE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/LICENSE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/LICENSE	(revision 2476)
@@ -0,0 +1,2 @@
+YEAR: 2014
+COPYRIGHT HOLDER: Stefan Milton Bache and Hadley Wickham
\ No newline at end of file
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/DESCRIPTION	(revision 2476)
@@ -0,0 +1,23 @@
+Package: magrittr
+Type: Package
+Title: A Forward-Pipe Operator for R
+Version: 1.5
+Author: Stefan Milton Bache <stefan@stefanbache.dk> and
+    Hadley Wickham <h.wickham@gmail.com>
+Maintainer: Stefan Milton Bache <stefan@stefanbache.dk>
+Description: Provides a mechanism for chaining commands with a
+    new forward-pipe operator, %>%. This operator will forward a
+    value, or the result of an expression, into the next function
+    call/expression. There is flexible support for the type
+    of right-hand side expressions. For more information, see
+    package vignette.
+    To quote Rene Magritte, "Ceci n'est pas un pipe."
+Suggests: testthat, knitr
+VignetteBuilder: knitr
+License: MIT + file LICENSE
+ByteCompile: Yes
+Packaged: 2014-11-22 08:50:53 UTC; shb
+NeedsCompilation: no
+Repository: CRAN
+Date/Publication: 2014-11-22 19:15:57
+Built: R 3.3.0; ; 2016-05-04 14:03:40 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/html/00Index.html	(revision 2476)
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: A Forward-Pipe Operator for R</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> A Forward-Pipe Operator for R
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;magrittr&rsquo; version 1.5</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="magrittr.html">magrittr-package</a></td>
+<td>magrittr - Ceci n'est pas un pipe</td></tr>
+<tr><td style="width: 25%;"><a href="exposition.html">%$%</a></td>
+<td>magrittr exposition pipe-operator</td></tr>
+<tr><td style="width: 25%;"><a href="compound.html">%&lt;&gt;%</a></td>
+<td>magrittr compound assignment pipe-operator</td></tr>
+<tr><td style="width: 25%;"><a href="pipe.html">%&gt;%</a></td>
+<td>magrittr forward-pipe operator</td></tr>
+<tr><td style="width: 25%;"><a href="tee.html">%T&gt;%</a></td>
+<td>magrittr tee operator</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">add</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">and</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="debug_fseq.html">debug_fseq</a></td>
+<td>Debugging function for functional sequences.</td></tr>
+<tr><td style="width: 25%;"><a href="debug_pipe.html">debug_pipe</a></td>
+<td>Debugging function for magrittr pipelines.</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">divide_by</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">divide_by_int</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">equals</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">extract</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">extract2</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="freduce.html">freduce</a></td>
+<td>Apply a list of functions sequentially</td></tr>
+<tr><td style="width: 25%;"><a href="functions.html">functions</a></td>
+<td>Extract the function list from a functional sequence.</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">inset</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">inset2</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">is_greater_than</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">is_in</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">is_less_than</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">is_weakly_greater_than</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">is_weakly_less_than</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="magrittr.html">magrittr</a></td>
+<td>magrittr - Ceci n'est pas un pipe</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">mod</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">multiply_by</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">multiply_by_matrix</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">n'est pas</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">not</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">or</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="print.fseq.html">print.fseq</a></td>
+<td>Print method for functional sequence.</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">raise_to_power</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">set_colnames</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">set_names</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">set_rownames</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">subtract</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="debug_fseq.html">undebug_fseq</a></td>
+<td>Debugging function for functional sequences.</td></tr>
+<tr><td style="width: 25%;"><a href="aliases.html">use_series</a></td>
+<td>Aliases</td></tr>
+<tr><td style="width: 25%;"><a href="fseq.html">[.fseq</a></td>
+<td>Extract function(s) from a functional sequence.</td></tr>
+<tr><td style="width: 25%;"><a href="fseq.html">[[.fseq</a></td>
+<td>Extract function(s) from a functional sequence.</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/magrittr.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/magrittr.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/magrittr.R	(revision 2476)
@@ -0,0 +1,78 @@
+## ----, echo = FALSE, message = FALSE-------------------------------------
+library(magrittr)
+options(scipen = 3)
+knitr::opts_chunk$set(
+  comment = NA,
+  error   = FALSE,
+  tidy    = FALSE)
+
+## ------------------------------------------------------------------------
+library(magrittr)
+
+car_data <- 
+  mtcars %>%
+  subset(hp > 100) %>%
+  aggregate(. ~ cyl, data = ., FUN = . %>% mean %>% round(2)) %>%
+  transform(kpl = mpg %>% multiply_by(0.4251)) %>%
+  print
+
+## ------------------------------------------------------------------------
+car_data <- 
+  transform(aggregate(. ~ cyl, 
+                      data = subset(mtcars, hp > 100), 
+                      FUN = function(x) round(mean(x, 2))), 
+            kpl = mpg*0.4251)
+
+## ----, eval = FALSE------------------------------------------------------
+#  car_data %>%
+#  (function(x) {
+#    if (nrow(x) > 2)
+#      rbind(head(x, 1), tail(x, 1))
+#    else x
+#  })
+
+## ------------------------------------------------------------------------
+car_data %>%
+{ 
+  if (nrow(.) > 0)
+    rbind(head(., 1), tail(., 1))
+  else .
+}
+
+## ------------------------------------------------------------------------
+1:10 %>% (substitute(f(), list(f = sum)))
+
+## ----, fig.keep='none'---------------------------------------------------
+rnorm(200) %>%
+matrix(ncol = 2) %T>%
+plot %>% # plot usually does not return anything. 
+colSums
+
+## ----, eval = FALSE------------------------------------------------------
+#  iris %>%
+#    subset(Sepal.Length > mean(Sepal.Length)) %$%
+#    cor(Sepal.Length, Sepal.Width)
+#  
+#  data.frame(z = rnorm(100)) %$%
+#    ts.plot(z)
+
+## ----, eval = FALSE------------------------------------------------------
+#  iris$Sepal.Length %<>% sqrt
+
+## ------------------------------------------------------------------------
+rnorm(1000)    %>%
+multiply_by(5) %>%
+add(5)         %>%
+{ 
+   cat("Mean:", mean(.), 
+       "Variance:", var(.), "\n")
+   head(.)
+}
+
+## ----, results = 'hide'--------------------------------------------------
+rnorm(100) %>% `*`(5) %>% `+`(5) %>% 
+{
+  cat("Mean:", mean(.), "Variance:", var(.),  "\n")
+  head(.)
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/index.html	(revision 2476)
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'magrittr'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/magrittr/doc/magrittr.html">magrittr::magrittr</a></td>
+<td></td><td valign="top">Introducing magrittr</td>
+<td valign="top"><a href="../../../library/magrittr/doc/magrittr.html">HTML</a></td>
+<td valign="top"><a href="../../../library/magrittr/doc/magrittr.Rmd">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/magrittr/doc/magrittr.R">R code</a></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/magrittr.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/magrittr.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/magrittr.Rmd	(revision 2476)
@@ -0,0 +1,212 @@
+<!--
+%\VignetteEngine{knitr}
+%\VignetteIndexEntry{Introducing magrittr}
+-->
+
+```{r, echo = FALSE, message = FALSE}
+library(magrittr)
+options(scipen = 3)
+knitr::opts_chunk$set(
+  comment = NA,
+  error   = FALSE,
+  tidy    = FALSE)
+```
+
+![magrittr-pipe](magrittr.jpg)
+
+*This version: November, 2014. Stefan Milton Bache* 
+
+# Abstract
+
+*The magrittr* (to be pronounced with a sophisticated french accent) is
+a package with two aims: to decrease development time and to improve 
+readability and maintainability of code. Or even shortr: to make your code smokin' (puff puff)!
+
+To archive its humble aims, *magrittr* (remember the accent) provides a new 
+"pipe"-like operator, `%>%`, with which you may pipe a value forward into an 
+expression or function call; something along the lines of ` x %>% f `, rather
+than ` f(x)`. This is not an unknown feature
+elsewhere; a prime example is the `|>` operator used extensively in `F#`
+(to say the least) and indeed this -- along with Unix pipes -- served as a 
+motivation for developing the magrittr package.
+
+This vignette describes the main features of *magrittr* and demonstrates
+some features which has been added since the initial release.
+
+# Introduction and basics
+
+At first encounter, you may wonder whether an operator such as `%>%`  can really 
+be all that beneficial; but as you may notice, it semantically changes your 
+code in a way that makes it more intuitive to both read and write.
+
+Consider the following example, in which the `mtcars` dataset shipped with
+R is munged a little.
+```{r}
+library(magrittr)
+
+car_data <- 
+  mtcars %>%
+  subset(hp > 100) %>%
+  aggregate(. ~ cyl, data = ., FUN = . %>% mean %>% round(2)) %>%
+  transform(kpl = mpg %>% multiply_by(0.4251)) %>%
+  print
+```
+We start with a value, here `mtcars` (a `data.frame`). Based on this, we 
+first extract a subset, then  we aggregate the information based on the number 
+of cylinders, and then we transform the dataset by adding a variable
+for kilometers per liter as supplement to miles per gallon. Finally we print
+the result before assigning it.
+Note how the code is arranged in the logical
+order of how you think about the task: data->transform->aggregate, which
+is also the same order as the code will execute. It's like a recipe -- easy to
+read, easy to follow!
+
+A horrific alternative would be to write
+```{r}
+car_data <- 
+  transform(aggregate(. ~ cyl, 
+                      data = subset(mtcars, hp > 100), 
+                      FUN = function(x) round(mean(x, 2))), 
+            kpl = mpg*0.4251)
+```
+There is a lot more clutter with parentheses, and the mental task of deciphering
+the code is more challenging---in particular if you did not write it yourself.
+
+Note also how "building" a function on the fly for use in `aggregate` is very
+simple in *magrittr*: rather than an actual value as left-hand side in 
+pipeline, just use the placeholder. This is also very useful in R's 
+`*apply` family of functions.
+
+Granted: you may make the second example better, perhaps throw in a few temporary
+variables (which is often avoided to some degree when using *magrittr*),
+but one often sees cluttered lines like the ones presented. 
+
+And here is another selling point. Suppose I want to quickly want to add
+another step somewhere in the process. This is very easy in the
+to do in the pipeline version, but a little more challenging in the 
+"standard" example.
+
+The combined example shows a few neat features of the pipe (which it is not):
+
+1. By default the left-hand side (LHS) will be *piped in* as the first argument of 
+the function appearing on the right-hand side (RHS). This is the case in the 
+`subset` and `transform` expressions.
+2. `%>%` may be used in a nested fashion, e.g. it may appear in expressions within 
+arguments. This is used in the `mpg` to `kpl` conversion.
+3. When the LHS is needed at a position other than the first, one can use
+the dot,`'.'`, as placeholder. This is used in the `aggregate` expression.
+4. The dot in e.g. a formula is *not* confused with a placeholder, which is
+utilized in the `aggregate` expression.
+5. Whenever only *one* argument is needed, the LHS, then one can omit the
+empty parentheses. This is used in the call to `print` (which also returns its
+argument). Here, `LHS %>% print()`, or even `LHS %>% print(.)` would also work.
+6. A pipeline with a dot (`.`) as LHS will create a unary function. This is
+used to define the aggregator function.
+
+One feature, which was not utilized above is piping into *anonymous functions*,
+or *lambdas*. This is possible using standard function definitions, e.g.
+```{r, eval = FALSE}
+car_data %>%
+(function(x) {
+  if (nrow(x) > 2) 
+    rbind(head(x, 1), tail(x, 1))
+  else x
+})
+```
+However, *magrittr* also allows a short-hand notation:
+```{r}
+car_data %>%
+{ 
+  if (nrow(.) > 0)
+    rbind(head(., 1), tail(., 1))
+  else .
+}
+```
+Since all right-hand sides are really "body expressions" of unary functions, this
+is only the natural extension the simple right-hand side expressions. Of course
+longer and more complex functions can be made using this approach.
+
+In the first example the anonymous function is enclosed in parentheses.
+Whenever you want to use a function- or call-generating statement as right-hand side, 
+parentheses are used to evaluate the right-hand side before piping takes place.
+
+Another, less useful example is:
+```{r}
+1:10 %>% (substitute(f(), list(f = sum)))
+```
+
+# Additional pipe operators
+*magrittr* also provides three related pipe operators. These are not as
+common as `%>%` but they become useful in special cases. 
+
+The "tee" operator, `%T>%` works like `%>%`, except it returns the left-hand
+side value, and not the result of the right-hand side operation.
+This is useful when a step in a pipeline is used for its side-effect (printing,
+plotting, logging, etc.). As an example (where the actual plot is omitted here):
+```{r, fig.keep='none'}
+rnorm(200) %>%
+matrix(ncol = 2) %T>%
+plot %>% # plot usually does not return anything. 
+colSums
+```
+
+The "exposition" pipe operator, `%$%` exposes the names within the left-hand side
+object to the right-hand side expression. Essentially, it is a short-hand for 
+using the `with` functions (and the same left-hand side objects are accepted).
+This operator is handy when functions do not themselves have a data argument, as for 
+example `lm` and `aggregate` do. Here are a few examples as illustration:
+
+```{r, eval = FALSE}
+iris %>%
+  subset(Sepal.Length > mean(Sepal.Length)) %$%
+  cor(Sepal.Length, Sepal.Width)
+   
+data.frame(z = rnorm(100)) %$% 
+  ts.plot(z)
+```
+
+Finally, the compound assignment pipe operator `%<>%` can be used as the first pipe
+in a chain. The effect will be that the result of the pipeline is assigned to the 
+left-hand side object, rather than returning the result as usual. It is essentially
+shorthand notation for expressions like `foo <- foo %>% bar %>% baz`, which
+boils down to `foo %<>% bar %>% baz`. Another example is
+
+```{r, eval = FALSE}
+iris$Sepal.Length %<>% sqrt
+```
+
+The `%<>%` can be used whenever `expr <- ...` makes sense, e.g. 
+
+* `x %<>% foo %>% bar`
+* `x[1:10] %<>% foo %>% bar`
+* `x$baz %<>% foo %>% bar`
+
+# Aliases
+
+In addition to the `%>%`-operator, *magrittr* provides some aliases for other
+operators which make operations such as addition or multiplication fit well 
+into the *magrittr*-syntax. As an example, consider:
+```{r}
+rnorm(1000)    %>%
+multiply_by(5) %>%
+add(5)         %>%
+{ 
+   cat("Mean:", mean(.), 
+       "Variance:", var(.), "\n")
+   head(.)
+}
+```
+which could be written in more compact form as
+```{r, results = 'hide'}
+rnorm(100) %>% `*`(5) %>% `+`(5) %>% 
+{
+  cat("Mean:", mean(.), "Variance:", var(.),  "\n")
+  head(.)
+}
+```
+To see a list of the aliases, execute e.g. `?multiply_by`. 
+
+# Development
+The *magrittr* package is also available in a development version at the
+GitHub development page:
+[github.com/smbache/magrittr](http://github.com/smbache/magrittr).
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/magrittr.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/magrittr.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/magrittr.html	(revision 2476)
@@ -0,0 +1,443 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+
+<title>Abstract</title>
+
+<script type="text/javascript">
+window.onload = function() {
+  var imgs = document.getElementsByTagName('img'), i, img;
+  for (i = 0; i < imgs.length; i++) {
+    img = imgs[i];
+    // center an image if it is the only element of its parent
+    if (img.parentElement.childElementCount === 1)
+      img.parentElement.style.textAlign = 'center';
+  }
+};
+</script>
+
+<!-- Styles for R syntax highlighter -->
+<style type="text/css">
+   pre .operator,
+   pre .paren {
+     color: rgb(104, 118, 135)
+   }
+
+   pre .literal {
+     color: #990073
+   }
+
+   pre .number {
+     color: #099;
+   }
+
+   pre .comment {
+     color: #998;
+     font-style: italic
+   }
+
+   pre .keyword {
+     color: #900;
+     font-weight: bold
+   }
+
+   pre .identifier {
+     color: rgb(0, 0, 0);
+   }
+
+   pre .string {
+     color: #d14;
+   }
+</style>
+
+<!-- R syntax highlighter -->
+<script type="text/javascript">
+var hljs=new function(){function m(p){return p.replace(/&/gm,"&amp;").replace(/</gm,"&lt;")}function f(r,q,p){return RegExp(q,"m"+(r.cI?"i":"")+(p?"g":""))}function b(r){for(var p=0;p<r.childNodes.length;p++){var q=r.childNodes[p];if(q.nodeName=="CODE"){return q}if(!(q.nodeType==3&&q.nodeValue.match(/\s+/))){break}}}function h(t,s){var p="";for(var r=0;r<t.childNodes.length;r++){if(t.childNodes[r].nodeType==3){var q=t.childNodes[r].nodeValue;if(s){q=q.replace(/\n/g,"")}p+=q}else{if(t.childNodes[r].nodeName=="BR"){p+="\n"}else{p+=h(t.childNodes[r])}}}if(/MSIE [678]/.test(navigator.userAgent)){p=p.replace(/\r/g,"\n")}return p}function a(s){var r=s.className.split(/\s+/);r=r.concat(s.parentNode.className.split(/\s+/));for(var q=0;q<r.length;q++){var p=r[q].replace(/^language-/,"");if(e[p]){return p}}}function c(q){var p=[];(function(s,t){for(var r=0;r<s.childNodes.length;r++){if(s.childNodes[r].nodeType==3){t+=s.childNodes[r].nodeValue.length}else{if(s.childNodes[r].nodeName=="BR"){t+=1}else{if(s.childNodes[r].nodeType==1){p.push({event:"start",offset:t,node:s.childNodes[r]});t=arguments.callee(s.childNodes[r],t);p.push({event:"stop",offset:t,node:s.childNodes[r]})}}}}return t})(q,0);return p}function k(y,w,x){var q=0;var z="";var s=[];function u(){if(y.length&&w.length){if(y[0].offset!=w[0].offset){return(y[0].offset<w[0].offset)?y:w}else{return w[0].event=="start"?y:w}}else{return y.length?y:w}}function t(D){var A="<"+D.nodeName.toLowerCase();for(var B=0;B<D.attributes.length;B++){var C=D.attributes[B];A+=" "+C.nodeName.toLowerCase();if(C.value!==undefined&&C.value!==false&&C.value!==null){A+='="'+m(C.value)+'"'}}return A+">"}while(y.length||w.length){var v=u().splice(0,1)[0];z+=m(x.substr(q,v.offset-q));q=v.offset;if(v.event=="start"){z+=t(v.node);s.push(v.node)}else{if(v.event=="stop"){var p,r=s.length;do{r--;p=s[r];z+=("</"+p.nodeName.toLowerCase()+">")}while(p!=v.node);s.splice(r,1);while(r<s.length){z+=t(s[r]);r++}}}}return z+m(x.substr(q))}function j(){function q(x,y,v){if(x.compiled){return}var u;var s=[];if(x.k){x.lR=f(y,x.l||hljs.IR,true);for(var w in x.k){if(!x.k.hasOwnProperty(w)){continue}if(x.k[w] instanceof Object){u=x.k[w]}else{u=x.k;w="keyword"}for(var r in u){if(!u.hasOwnProperty(r)){continue}x.k[r]=[w,u[r]];s.push(r)}}}if(!v){if(x.bWK){x.b="\\b("+s.join("|")+")\\s"}x.bR=f(y,x.b?x.b:"\\B|\\b");if(!x.e&&!x.eW){x.e="\\B|\\b"}if(x.e){x.eR=f(y,x.e)}}if(x.i){x.iR=f(y,x.i)}if(x.r===undefined){x.r=1}if(!x.c){x.c=[]}x.compiled=true;for(var t=0;t<x.c.length;t++){if(x.c[t]=="self"){x.c[t]=x}q(x.c[t],y,false)}if(x.starts){q(x.starts,y,false)}}for(var p in e){if(!e.hasOwnProperty(p)){continue}q(e[p].dM,e[p],true)}}function d(B,C){if(!j.called){j();j.called=true}function q(r,M){for(var L=0;L<M.c.length;L++){if((M.c[L].bR.exec(r)||[null])[0]==r){return M.c[L]}}}function v(L,r){if(D[L].e&&D[L].eR.test(r)){return 1}if(D[L].eW){var M=v(L-1,r);return M?M+1:0}return 0}function w(r,L){return L.i&&L.iR.test(r)}function K(N,O){var M=[];for(var L=0;L<N.c.length;L++){M.push(N.c[L].b)}var r=D.length-1;do{if(D[r].e){M.push(D[r].e)}r--}while(D[r+1].eW);if(N.i){M.push(N.i)}return f(O,M.join("|"),true)}function p(M,L){var N=D[D.length-1];if(!N.t){N.t=K(N,E)}N.t.lastIndex=L;var r=N.t.exec(M);return r?[M.substr(L,r.index-L),r[0],false]:[M.substr(L),"",true]}function z(N,r){var L=E.cI?r[0].toLowerCase():r[0];var M=N.k[L];if(M&&M instanceof Array){return M}return false}function F(L,P){L=m(L);if(!P.k){return L}var r="";var O=0;P.lR.lastIndex=0;var M=P.lR.exec(L);while(M){r+=L.substr(O,M.index-O);var N=z(P,M);if(N){x+=N[1];r+='<span class="'+N[0]+'">'+M[0]+"</span>"}else{r+=M[0]}O=P.lR.lastIndex;M=P.lR.exec(L)}return r+L.substr(O,L.length-O)}function J(L,M){if(M.sL&&e[M.sL]){var r=d(M.sL,L);x+=r.keyword_count;return r.value}else{return F(L,M)}}function I(M,r){var L=M.cN?'<span class="'+M.cN+'">':"";if(M.rB){y+=L;M.buffer=""}else{if(M.eB){y+=m(r)+L;M.buffer=""}else{y+=L;M.buffer=r}}D.push(M);A+=M.r}function G(N,M,Q){var R=D[D.length-1];if(Q){y+=J(R.buffer+N,R);return false}var P=q(M,R);if(P){y+=J(R.buffer+N,R);I(P,M);return P.rB}var L=v(D.length-1,M);if(L){var O=R.cN?"</span>":"";if(R.rE){y+=J(R.buffer+N,R)+O}else{if(R.eE){y+=J(R.buffer+N,R)+O+m(M)}else{y+=J(R.buffer+N+M,R)+O}}while(L>1){O=D[D.length-2].cN?"</span>":"";y+=O;L--;D.length--}var r=D[D.length-1];D.length--;D[D.length-1].buffer="";if(r.starts){I(r.starts,"")}return R.rE}if(w(M,R)){throw"Illegal"}}var E=e[B];var D=[E.dM];var A=0;var x=0;var y="";try{var s,u=0;E.dM.buffer="";do{s=p(C,u);var t=G(s[0],s[1],s[2]);u+=s[0].length;if(!t){u+=s[1].length}}while(!s[2]);if(D.length>1){throw"Illegal"}return{r:A,keyword_count:x,value:y}}catch(H){if(H=="Illegal"){return{r:0,keyword_count:0,value:m(C)}}else{throw H}}}function g(t){var p={keyword_count:0,r:0,value:m(t)};var r=p;for(var q in e){if(!e.hasOwnProperty(q)){continue}var s=d(q,t);s.language=q;if(s.keyword_count+s.r>r.keyword_count+r.r){r=s}if(s.keyword_count+s.r>p.keyword_count+p.r){r=p;p=s}}if(r.language){p.second_best=r}return p}function i(r,q,p){if(q){r=r.replace(/^((<[^>]+>|\t)+)/gm,function(t,w,v,u){return w.replace(/\t/g,q)})}if(p){r=r.replace(/\n/g,"<br>")}return r}function n(t,w,r){var x=h(t,r);var v=a(t);var y,s;if(v){y=d(v,x)}else{return}var q=c(t);if(q.length){s=document.createElement("pre");s.innerHTML=y.value;y.value=k(q,c(s),x)}y.value=i(y.value,w,r);var u=t.className;if(!u.match("(\\s|^)(language-)?"+v+"(\\s|$)")){u=u?(u+" "+v):v}if(/MSIE [678]/.test(navigator.userAgent)&&t.tagName=="CODE"&&t.parentNode.tagName=="PRE"){s=t.parentNode;var p=document.createElement("div");p.innerHTML="<pre><code>"+y.value+"</code></pre>";t=p.firstChild.firstChild;p.firstChild.cN=s.cN;s.parentNode.replaceChild(p.firstChild,s)}else{t.innerHTML=y.value}t.className=u;t.result={language:v,kw:y.keyword_count,re:y.r};if(y.second_best){t.second_best={language:y.second_best.language,kw:y.second_best.keyword_count,re:y.second_best.r}}}function o(){if(o.called){return}o.called=true;var r=document.getElementsByTagName("pre");for(var p=0;p<r.length;p++){var q=b(r[p]);if(q){n(q,hljs.tabReplace)}}}function l(){if(window.addEventListener){window.addEventListener("DOMContentLoaded",o,false);window.addEventListener("load",o,false)}else{if(window.attachEvent){window.attachEvent("onload",o)}else{window.onload=o}}}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=n;this.initHighlighting=o;this.initHighlightingOnLoad=l;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="\\b(0[xX][a-fA-F0-9]+|(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.ER="(?![\\s\\S])";this.BE={b:"\\\\.",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.inherit=function(r,s){var p={};for(var q in r){p[q]=r[q]}if(s){for(var q in s){p[q]=s[q]}}return p}}();hljs.LANGUAGES.cpp=function(){var a={keyword:{"false":1,"int":1,"float":1,"while":1,"private":1,"char":1,"catch":1,"export":1,virtual:1,operator:2,sizeof:2,dynamic_cast:2,typedef:2,const_cast:2,"const":1,struct:1,"for":1,static_cast:2,union:1,namespace:1,unsigned:1,"long":1,"throw":1,"volatile":2,"static":1,"protected":1,bool:1,template:1,mutable:1,"if":1,"public":1,friend:2,"do":1,"return":1,"goto":1,auto:1,"void":2,"enum":1,"else":1,"break":1,"new":1,extern:1,using:1,"true":1,"class":1,asm:1,"case":1,typeid:1,"short":1,reinterpret_cast:2,"default":1,"double":1,register:1,explicit:1,signed:1,typename:1,"try":1,"this":1,"switch":1,"continue":1,wchar_t:1,inline:1,"delete":1,alignof:1,char16_t:1,char32_t:1,constexpr:1,decltype:1,noexcept:1,nullptr:1,static_assert:1,thread_local:1,restrict:1,_Bool:1,complex:1},built_in:{std:1,string:1,cin:1,cout:1,cerr:1,clog:1,stringstream:1,istringstream:1,ostringstream:1,auto_ptr:1,deque:1,list:1,queue:1,stack:1,vector:1,map:1,set:1,bitset:1,multiset:1,multimap:1,unordered_set:1,unordered_map:1,unordered_multiset:1,unordered_multimap:1,array:1,shared_ptr:1}};return{dM:{k:a,i:"</",c:[hljs.CLCM,hljs.CBLCLM,hljs.QSM,{cN:"string",b:"'\\\\?.",e:"'",i:"."},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},hljs.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:a,r:10,c:["self"]}]}}}();hljs.LANGUAGES.r={dM:{c:[hljs.HCM,{cN:"number",b:"\\b0[xX][0-9a-fA-F]+[Li]?\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\b\\d+(?:[eE][+\\-]?\\d*)?L\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\b\\d+\\.(?!\\d)(?:i\\b)?",e:hljs.IMMEDIATE_RE,r:1},{cN:"number",b:"\\b\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"keyword",b:"(?:tryCatch|library|setGeneric|setGroupGeneric)\\b",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\.\\.\\.",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\.\\.\\d+(?![\\w.])",e:hljs.IMMEDIATE_RE,r:10},{cN:"keyword",b:"\\b(?:function)",e:hljs.IMMEDIATE_RE,r:2},{cN:"keyword",b:"(?:if|in|break|next|repeat|else|for|return|switch|while|try|stop|warning|require|attach|detach|source|setMethod|setClass)\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"literal",b:"(?:NA|NA_integer_|NA_real_|NA_character_|NA_complex_)\\b",e:hljs.IMMEDIATE_RE,r:10},{cN:"literal",b:"(?:NULL|TRUE|FALSE|T|F|Inf|NaN)\\b",e:hljs.IMMEDIATE_RE,r:1},{cN:"identifier",b:"[a-zA-Z.][a-zA-Z0-9._]*\\b",e:hljs.IMMEDIATE_RE,r:0},{cN:"operator",b:"<\\-(?!\\s*\\d)",e:hljs.IMMEDIATE_RE,r:2},{cN:"operator",b:"\\->|<\\-",e:hljs.IMMEDIATE_RE,r:1},{cN:"operator",b:"%%|~",e:hljs.IMMEDIATE_RE},{cN:"operator",b:">=|<=|==|!=|\\|\\||&&|=|\\+|\\-|\\*|/|\\^|>|<|!|&|\\||\\$|:",e:hljs.IMMEDIATE_RE,r:0},{cN:"operator",b:"%",e:"%",i:"\\n",r:1},{cN:"identifier",b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[hljs.BE],r:0},{cN:"string",b:"'",e:"'",c:[hljs.BE],r:0},{cN:"paren",b:"[[({\\])}]",e:hljs.IMMEDIATE_RE,r:0}]}};
+hljs.initHighlightingOnLoad();
+</script>
+
+
+
+<style type="text/css">
+body, td {
+   font-family: sans-serif;
+   background-color: white;
+   font-size: 13px;
+}
+
+body {
+  max-width: 800px;
+  margin: auto;
+  padding: 1em;
+  line-height: 20px;
+}
+
+tt, code, pre {
+   font-family: 'DejaVu Sans Mono', 'Droid Sans Mono', 'Lucida Console', Consolas, Monaco, monospace;
+}
+
+h1 {
+   font-size:2.2em;
+}
+
+h2 {
+   font-size:1.8em;
+}
+
+h3 {
+   font-size:1.4em;
+}
+
+h4 {
+   font-size:1.0em;
+}
+
+h5 {
+   font-size:0.9em;
+}
+
+h6 {
+   font-size:0.8em;
+}
+
+a:visited {
+   color: rgb(50%, 0%, 50%);
+}
+
+pre, img {
+  max-width: 100%;
+}
+pre {
+  overflow-x: auto;
+}
+pre code {
+   display: block; padding: 0.5em;
+}
+
+code {
+  font-size: 92%;
+  border: 1px solid #ccc;
+}
+
+code[class] {
+  background-color: #F8F8F8;
+}
+
+table, td, th {
+  border: none;
+}
+
+blockquote {
+   color:#666666;
+   margin:0;
+   padding-left: 1em;
+   border-left: 0.5em #EEE solid;
+}
+
+hr {
+   height: 0px;
+   border-bottom: none;
+   border-top-width: thin;
+   border-top-style: dotted;
+   border-top-color: #999999;
+}
+
+@media print {
+   * {
+      background: transparent !important;
+      color: black !important;
+      filter:none !important;
+      -ms-filter: none !important;
+   }
+
+   body {
+      font-size:12pt;
+      max-width:100%;
+   }
+
+   a, a:visited {
+      text-decoration: underline;
+   }
+
+   hr {
+      visibility: hidden;
+      page-break-before: always;
+   }
+
+   pre, blockquote {
+      padding-right: 1em;
+      page-break-inside: avoid;
+   }
+
+   tr, img {
+      page-break-inside: avoid;
+   }
+
+   img {
+      max-width: 100% !important;
+   }
+
+   @page :left {
+      margin: 15mm 20mm 15mm 10mm;
+   }
+
+   @page :right {
+      margin: 15mm 10mm 15mm 20mm;
+   }
+
+   p, h2, h3 {
+      orphans: 3; widows: 3;
+   }
+
+   h2, h3 {
+      page-break-after: avoid;
+   }
+}
+</style>
+
+
+
+</head>
+
+<body>
+<!--
+%\VignetteEngine{knitr}
+%\VignetteIndexEntry{Introducing magrittr}
+-->
+
+<p><img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAVUDIAMBEQACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP7Ua/kU/TwoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAPkj9sr9t/4A/sK/DE/Ev46eJpLP8AtF7qz8GeBtBWzv8Ax/8AEPVrNbd7rTfCGhXN7YJdJYLd2r6zrF/e6doOhx3dl/a+q2cuoadDd9OBwNfH1fZYeF9nUnO6hSTvZ1JJO21oRSu7NxUrO0znGmryfourtrp6dex/IL+0N/wcb/twfEvU7q3+Bem/Dv8AZr8KQ6zBf6PJpPh3TPij8QpdMj0s2lzonijxL8SdN1XwTqdpc6nJLq8dx4e+GHhLVLQxafpzandQW1/Nq32WG4awFJJ4h1MVPltK7dOHNdNShGk41E4xvC0qkk7t2V1bhli6ktYJRWzvFtrzcneNl1sk7fh5J8N/+Dgj/gpl4H8RtrXif4n+AfjJprafc2Q8IfEj4ReBNL8OpczyW8kWrrc/CLS/hZ4sOoWQikjton8TvpLx3dybzTLyVLWW22q8O5VUjyQpVKDTT5qNablbX3bVvawtLr7reis1rdLE1lKzfN5SUbL1UFdLVby1P6l/+Cbf/BYT4Gf8FAA3gK60mT4N/tC6fp91qN58Lda1mLWNM8VadYvM13q/w38U/ZNLfxElpYpDqOtaDf6TpWv6Kkt21vba9oul3niV/k80ybE5d77/ANowzdlWjHllC+0asLu13ZRcW4y0d4z5YnZSrxq6fDPXRO9/SWnNbS9tvxP11ryjUKACgAoAKACgAoAKACgAoAKACgAoAKACgD5I/bK/bf8AgD+wr8MT8S/jp4mks/7Re6s/BngbQVs7/wAf/EPVrNbd7rTfCGhXN7YJdJYLd2r6zrF/e6doOhx3dl/a+q2cuoadDd9OBwNfH1fZYeF9nUnO6hSTvZ1JJO21oRSu7NxUrO0znGmryfourtrp6dex/IL+0N/wcb/twfEvU7q3+Bem/Dv9mvwpDrMF/o8mk+HdM+KPxCl0yPSzaXOieKPEvxJ03VfBOp2lzqckurx3Hh74YeEtUtDFp+nNqd1BbX82rfZYbhrAUkniHUxU+W0rt04c101KEaTjUTjG8LSqSTu3ZXVuGWLqS1glFbO8W2vNyd42XWyTt+Hknw3/AODgj/gpl4H8RtrXif4n+AfjJprafc2Q8IfEj4ReBNL8OpczyW8kWrrc/CLS/hZ4sOoWQikjton8TvpLx3dybzTLyVLWW22q8O5VUjyQpVKDTT5qNablbX3bVvawtLr7reis1rdLE1lKzfN5SUbL1UFdLVby1P6l/wDgm3/wWE+Bn/BQAN4CutJk+Df7Qun6fdajefC3WtZi1jTPFWnWLzNd6v8ADfxT9k0t/ESWlikOo61oN/pOla/oqS3bW9tr2i6XeeJX+TzTJsTl3vv/AGjDN2VaMeWUL7Rqwu7XdlFxbjLR3jPlidlKvGrp8M9dE739Jac1tL22/E/XWvKNQoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgCvfX1npdje6nqFxFZ2GnWlzf313O4jgtbO0he4uZ5nf7sUMMbvI7cKisTwKVm3FL3m2klp7z6O9vnp5W8w/zOv+Ci/wC2N4s/bi/ap+IPxY1LUtSn8E22r3nhX4O+GriZpLXwz8N9IvJbbQbeytECxW2oeIAD4l19kEks+uavdx/aZra2s0i/T8twUMBhKdJJKo4qdeaSvOq1eV31Ufgj/diutzy605VJyelneMV/LHrda25l7y1W3qn/AEZ/8E9v+Dd/4VW3gHw58UP27YPEHjHxz4n0pNSj+A+ieJNU8J+EvBVjqto7WVl408ReErzTPGOu+M7KOS0vLm38PeJfD2g6HqKXWj3SeLoEW/PzWY8R1nUnSy/lhSg2vrEoqc6rT1dOM04QpvVJyjKUlaS5Fo+qnhVyp1byb+y7RSu3rprfXe6fr0+tP2hf+Dd/9gz4leCp7D4HaL4s/Zx8e2VtfyaL4m0Lxr40+IXh/UdQnihWzh8aeGfid4k8VXV/o9m8TlIfCGu+C9TL3Ty3Op3scMNnXHhuJMwpVb4iUMVTduanKnSpSS0+CdJQipPXSUZLR2SVmVPC0nFqPNBvqm2vnFya+WnkfxgfEz4c/Hf9hD9pnU/BfiGefwD8cPgR410rU9O1vw9ffaIIdS082ev+FfFnhvUXhh+36JrenT6XrmkveWcElzpt7Ha6xplncm+02H7elVw+Y4VVIpVMPiISTjJdHeMoSWylF3i7Nq6vGTVmcDUqU0mrSi7Wju18Sklrs7vS3TpY/wBHD9hH9pu0/bD/AGTvgx+0HHDY2ereOPC/l+L9L07zDa6R468OX134b8Z6dbRz/wCkQ2cfiHS9Qn01bjdI2mTWU2+ZJEmk/M8ww0sFjK+H1apz9xt2c6ckpQbvp8LV+XrfWL0frU5c8Iy7r3v8S0fdbn1rXOMKACgD8aP+C13/AAUF8e/sI/s9+Ek+DU1lp3xn+NHiTUPDnhDxRqVhpWsweC9G8N2lpqXirxRbaFrVtfabrGrRjUdG0jS7bVNPvdKtptZa/v7e6+xwWN57GR5bDH4mft7uhRjz1IJyjzubtCHNBpxWkpNpqTtpZttZV6jpxXL8UnZPfltu7fd95/H78FP+CuX/AAUQ+B3jNfF+kftQfE74gxzXWnya14Q+NfiXWPi/4M13T7LU4NSn0ZtJ8cX2qXXhi11Xym0/UNT8Aaj4P8TrplxNa6b4g00+VLF9lXyfLcRT5JYSlT0fLKhGNGcW18V6aSm1ulUU4X1cWcEK9RSvzN31UZSUoy/u3d+XTorSbestj+qz9hf/AIL9fsvftIQaX4K/aFm0v9l34vPFDbtdeK9ZU/BjxXdRWE895e6L8Q79LW28EvK9jdT/ANhfERtMtbU3uj6FovjHxprFzIo+Rx/D2Lwl6mGvi6O9oQtXpq7tzUdXO90r0rNtSlKNONzsp4mEvdl7kvP4X8+nbXRv3YykfverKy7lwysAyspBV1IyCCOCCOQR16jnr4Z0DaACgAoAKACgAoAr319Z6XY3up6hcRWdhp1pc399dzuI4LWztIXuLmeZ3+7FDDG7yO3CorE8ClZtxS95tpJae8+jvb56eVvMP8zr/gov+2N4s/bi/ap+IPxY1LUtSn8E22r3nhX4O+GriZpLXwz8N9IvJbbQbeytECxW2oeIAD4l19kEks+uavdx/aZra2s0i/T8twUMBhKdJJKo4qdeaSvOq1eV31Ufgj/diutzy605VJyelneMV/LHrda25l7y1W3qn/Rn/wAE9v8Ag3f+FVt4B8OfFD9u2DxB4x8c+J9KTUo/gPoniTVPCfhLwVY6raO1lZeNPEXhK80zxjrvjOyjktLy5t/D3iXw9oOh6il1o90ni6BFvz81mPEdZ1J0sv5YUoNr6xKKnOq09XTjNOEKb1ScoylJWkuRaPqp4VcqdW8m/su0Urt66a313un69PrT9oX/AIN3/wBgz4leCp7D4HaL4s/Zx8e2VtfyaL4m0Lxr40+IXh/UdQnihWzh8aeGfid4k8VXV/o9m8TlIfCGu+C9TL3Ty3Op3scMNnXHhuJMwpVb4iUMVTduanKnSpSS0+CdJQipPXSUZLR2SVmVPC0nFqPNBvqm2vnFya+WnkfxgfEz4c/Hf9hD9pnU/BfiGefwD8cPgR410rU9O1vw9ffaIIdS082ev+FfFnhvUXhh+36JrenT6XrmkveWcElzpt7Ha6xplncm+02H7elVw+Y4VVIpVMPiISTjJdHeMoSWylF3i7Nq6vGTVmcDUqU0mrSi7Wju18Sklrs7vS3TpY/0cP2Ef2m7T9sP9k74MftBxw2Nnq3jjwv5fi/S9O8w2ukeOvDl9d+G/GenW0c/+kQ2cfiHS9Qn01bjdI2mTWU2+ZJEmk/M8ww0sFjK+H1apz9xt2c6ckpQbvp8LV+XrfWL0frU5c8Iy7r3v8S0fdbn1rXOMKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD5+/a3/ALc/4ZT/AGmP+EZ+0/8ACSf8M/8Axi/4R/7H5f2n+2/+Fd+Iv7M+z+b+58/7b5Pleb8u/bv+XNa4S31zDc/8P6zQve3w+2pXty+9tf8AC5NS/JU/m5ZcvrZ2213P83H9hb/hFP8AhtL9lH/hOfL/AOET/wCGifhB/bXnfZvsv2X/AITzQ9v2/wC2fuf7M+0eV/au75vsH2nyf3u2v03MOf6jjPZ35/q1blte9/Zy2trft5nl0/4sObb93zWtfdfFfW381vs2uf6h9flp6wUAfwz/APByz/wj/wDw3L8N/wCy/sH9tf8ADOHhH/hJvs2z7V9t/wCE8+I/9mf2lt+fzv7I+x/Z9/zfZPJ/5Z7a+64X5vqNa/Nb61Llva1vZUr2t/evfz20ODF8vtYX/k19b6X+Vvwvoft1/wAG6H9sf8O7Lf8AtH7R9g/4Xd8Tf7A83b5f9meX4c+1fZMfN9n/ALb/ALW3+Zx9p+07eK8PiO39pStv7Gjzeuv/ALbY3wn8Bf4n+bP3erwToCgAoA/NT/gqR/wTt0j/AIKKfAiw8C2viyLwH8T/AIe6ve+LvhZ4pv7We/8ADw1q601rG+8M+LbS1Ivk8OeJoUtba61fTI7rVPDt5a2Gt2mma7FY3XhzWfRynMnllf2jh7SnUiqdaCajLli2+eDel4atR0unytxupRzrU/aRsnaS1T6Xvs99H36b2fwv+Cj9rD9hn9p/9inxWfDP7QPwv1nwvYXd/dWXhnx3p6/238NvGqW014I5/C3jXT1k0q6ubqztP7WPhzUX0vxlpOnXNpL4h8N6LPOLcff4TH4PHQ9ph6sZtKLnTelWmnZ/vIP3kk38SvBtPllK1zzqlOpCVpJLpF2aTultLou0U+b+ZPVnyXXcUfp7+w9/wVy/a9/Ycl0nw54T8XD4lfBaznhW6+CfxLuL3WfC9lpxvDcXsfgPVfPGu/Dm+kS41GS1XQLs+FX1e/bWPEPg/wATTQpEfJx+T4LH3lOCpV2tK9K0Zt209pH4aqdlfmXO4x5Yzigp1503ZO8d+VrTW9uVfEl/hVlbVS+I/sc/YW/4LHfsi/tvJo/hSz8QH4L/ABx1BbWzk+DfxM1Kws7zW9Wkt9MM8Pw08YKbfQPiHay6nf3OnaRp8A0Px/qEWk3+r3vw90jTBBcS/F5hkuLwHPNxVegry9vSTajq7+1p6ypPlSbcuemudRU57Pup1oVNL8sv5X+j1i9dN76bKx+rteWahQAUAFABQB8/ftb/ANuf8Mp/tMf8Iz9p/wCEk/4Z/wDjF/wj/wBj8v7T/bf/AArvxF/Zn2fzf3Pn/bfJ8rzfl37d/wAua1wlvrmG5/4f1mhe9vh9tSvbl97a/wCFyal+Sp/Nyy5fWzttruf5uP7C3/CKf8Npfso/8Jz5f/CJ/wDDRPwg/trzvs32X7L/AMJ5oe37f9s/c/2Z9o8r+1d3zfYPtPk/vdtfpuYc/wBRxns78/1aty2ve/s5bW1v28zy6f8AFhzbfu+a1r7r4r62/mt9m1z/AFD6/LT1goA/hn/4OWf+Ef8A+G5fhv8A2X9g/tr/AIZw8I/8JN9m2favtv8AwnnxH/sz+0tvz+d/ZH2P7Pv+b7J5P/LPbX3XC/N9RrX5rfWpct7Wt7Kle1v717+e2hwYvl9rC/8AJr630v8AK34X0P26/wCDdD+2P+Hdlv8A2j9o+wf8Lu+Jv9gebt8v+zPL8OfavsmPm+z/ANt/2tv8zj7T9p28V4fEdv7Slbf2NHm9df8A22xvhP4C/wAT/Nn7vV4J0BQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAV76xs9Usb3TNQt4ryw1G0ubC+tJ0EkF1Z3cL29zBMj/eimhkdJEbhkZgeDSu04te60009PdfRWv8tPK3kH+Zn/AMFDf2OPG/7Dv7UXj74S6/pl1b+Ep9Z1DxR8IPEyRzJp3in4a6nqNxP4bv7G7fAOpaNbkaB4isw7yad4g0y9jV57NrK9u/0/LcbTx2Ep1ote0UVCvBbwqpLnTXVSfvQdruMls7peTVg6VR325m4vTVa2XTv772fk9H/Rt/wT3/4OIvhZL4C8L/C/9uo+I/Cfjjw3py6UPj1oPhy/8V+EPF2n6VY3H2PU/HPh3wxBf+MtD8X3qwWenXE3hfwx4n0XXNUmn1m6HhGzd7SL5jMuGqzqTq5fyzpyd/q8pKE4Sk1dU3O1OUEruN505R+H33dnZTxS5Uqt4tfadpJ2vpprey6J69j64/aF/wCDiD9gz4a+Cp7/AOB2teLP2jvHt7bX8ei+GdC8FeNPh74f07UIIoWs5vGnib4neG/Ct1YaPePK4SbwhoXjTUw9q8VzpllHNDeVy4bhvMKtW2IjDC01bmqSqUqsmtPghSc4uS11lKK1dm1ZFTxVJRbjzTa6JNL5ycUvnr5H8XnxK+Ifx0/br/aY1Txnr8N34/8Ajf8AHjxzp9hp2iaFbSLFLqeqzWuieGPCfhqxubm5fT9B0Owj07QtFgur6f8As/RtPgk1LUZ3iur6T7elTw+X4ZQjanh8PTcnKT7XlOU2rXlJ+9JpK8pO3RLhbnVldu8pSb6dLRSi11jf3el9fX/Rx/YP/Zgs/wBjn9k/4Ofs+xz2l7q/gzw15/jHU7F7iSz1bx54jurjxD4z1Cya6czGxk8QajfQ6aGEe3TobNRBD/q1/NcwxbxuMr4nVKc7wTs5ezj7sVp15YpPazvrI9SnDkpxh0itfV6v8fxPrDUNQsNJsL3U9TvLTTdM020udQ1HUdQuYbOw0+wtIXuLy9vb24kjt7WztbeOSa5uZpI4YIY3lldUVmHHaTasm22kkldydmkopNyk23dJ/gUec/C/45fBT44WWral8FvjD8Lvi/p2g3VvY65qHwv+IPhPx/ZaNe3kbz2drq114T1fVrfTrm5gjkmt7e8khlmjjd41ZFYjSph69BpV6NWi5pNKpCpTc0tLr2kU2k9pRfa4lKM/hkpf4Wnt6Hp1SMKAOe8ZeC/BnxE8L6v4L+IPhHwz468G+IIFs9d8J+MdC0vxN4a1q0SaK5S21bQtbtb3S9RhS4ghuEhvLWaNbiGKZVEkaMFCU4TjOEqlOotYzhLknGW14zg007K7SeyvZdW0mrSSafRq6+5n8v37cn/Bt54Q8R/2z8Qf2F/FkfgbWWSW+k+A/wARtVv9S8GXzw2sH+heAviDd/2h4j8NXU7Wtw0Gk+OG8UaZqGsasFbxf4K0Cyjt4vq8BxNOPLTx8PaRen1ilFRktXrUpq0JKzVnDkajH4akmcVXCp2dJ2tqoPSN/JrVfO/+JXufyj/G/wCAXxn/AGbfHmofDL47fDXxX8MPG2nGdzo3ijTHtU1Kyg1C90v+2/DmqxmfRvFfhu6vdOvodM8U+GdR1fw5rH2WaXS9TvIR5h+toYihiqaqYerCrTdveg7tNpPlkvihNJrmhNRlG+tmcU4zi7TTTvf3um90lflcdF7yXLb7l5HW5sfuZ+wr/wAF5P2qv2Vl0fwL8Xp7j9pr4LWSW1jb6P411eS3+J/hHTon1Jj/AMIj8TJrfUNR1S1jbULdjoPj+38VWkel6HpXhvwpqPgbT/OnrwMw4ewmL5qlG2Grt3bjG9KT/v0rpJ7+9TcNZOU1Ueg6eJqU7qX7yHdrZeTezV9nfVKC5bH9hn7Hf/BRb9k79ubRftXwL+JFtL4vtLB9R1/4SeMEt/C/xY8M28IsPtlxfeFJry6GsaVYSapp1reeKfB2oeKfB0V/dRaaviJ78S20fxeNyzGYCSWIpvlbsq0L1KM2uayU7JRvq1Capz0vytO5306sKvwv3v5HpNfLtqtVePS59vVyFhQAUAV76xs9Usb3TNQt4ryw1G0ubC+tJ0EkF1Z3cL29zBMj/eimhkdJEbhkZgeDSu04te60009PdfRWv8tPK3kH+Zn/AMFDf2OPG/7Dv7UXj74S6/pl1b+Ep9Z1DxR8IPEyRzJp3in4a6nqNxP4bv7G7fAOpaNbkaB4isw7yad4g0y9jV57NrK9u/0/LcbTx2Ep1ote0UVCvBbwqpLnTXVSfvQdruMls7peTVg6VR325m4vTVa2XTv772fk9H/Rt/wT3/4OIvhZL4C8L/C/9uo+I/Cfjjw3py6UPj1oPhy/8V+EPF2n6VY3H2PU/HPh3wxBf+MtD8X3qwWenXE3hfwx4n0XXNUmn1m6HhGzd7SL5jMuGqzqTq5fyzpyd/q8pKE4Sk1dU3O1OUEruN505R+H33dnZTxS5Uqt4tfadpJ2vpprey6J69j64/aF/wCDiD9gz4a+Cp7/AOB2teLP2jvHt7bX8ei+GdC8FeNPh74f07UIIoWs5vGnib4neG/Ct1YaPePK4SbwhoXjTUw9q8VzpllHNDeVy4bhvMKtW2IjDC01bmqSqUqsmtPghSc4uS11lKK1dm1ZFTxVJRbjzTa6JNL5ycUvnr5H8XnxK+Ifx0/br/aY1Txnr8N34/8Ajf8AHjxzp9hp2iaFbSLFLqeqzWuieGPCfhqxubm5fT9B0Owj07QtFgur6f8As/RtPgk1LUZ3iur6T7elTw+X4ZQjanh8PTcnKT7XlOU2rXlJ+9JpK8pO3RLhbnVldu8pSb6dLRSi11jf3el9fX/Rx/YP/Zgs/wBjn9k/4Ofs+xz2l7q/gzw15/jHU7F7iSz1bx54jurjxD4z1Cya6czGxk8QajfQ6aGEe3TobNRBD/q1/NcwxbxuMr4nVKc7wTs5ezj7sVp15YpPazvrI9SnDkpxh0itfV6v8fxPrDUNQsNJsL3U9TvLTTdM020udQ1HUdQuYbOw0+wtIXuLy9vb24kjt7WztbeOSa5uZpI4YIY3lldUVmHHaTasm22kkldydmkopNyk23dJ/gUec/C/45fBT44WWral8FvjD8Lvi/p2g3VvY65qHwv+IPhPx/ZaNe3kbz2drq114T1fVrfTrm5gjkmt7e8khlmjjd41ZFYjSph69BpV6NWi5pNKpCpTc0tLr2kU2k9pRfa4lKM/hkpf4Wnt6Hp1SMKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAPkT9s79hr9n39u74aQ/Dn47eGrm7bR7i91HwR458O3MWlePPh9rF9bLa3moeF9bktbyFYL+GK2XWNA1ix1bwzrTWWmXOp6RdXmj6PdWHTgcdicvq+1w7S5klUpyj+7qRTulOPMtd+VxanG796KlJOKlKFVWnG/ZrRr0fy1WzsuyP5Cf2hv8Ag3I/bg+Gmp3Vx8C9S+Hf7SnhSbWYLDR49J8RaZ8LviFFpkmlm7udb8UeGviTqWleCdMtLbU45dIjt/D3xP8AFuqXZl0/UW0y1gub+HSfssNxLgKqSxCqYWfLeV06kOa6SjCVJSqNyjed5U4pWau7K/FLCVI6Qakt3eTTfk4u0bPrZt2/H5bn/wCCL/7aPgq5s5v2jrj9nj9j/wAHaibiz0v4lftKftL/AAc8LeBtU8QRQm7g8J6bc+DPFPj/AMQXniO/sYb/AFG0tYvD7Wgs9K1Ca7vrXy4ln63nmBkv9mWJxlRaulhcLXnUUf52pQglBOybve7VkzP6tNL3rU13qTiouXa0W9+97n3h+yt+1R/wSX/4JX2V341+F+r/ABN/by/ap1Xwrr0Ft8TdK+HNz8K/hx4Ov2kuIIfBeg/8LPfTfEPgux16Braz1zx5oHhr4p6tf6el9NbDTNP1Sfwa/Bi8Hm+bNQrKnl+EjOP7r2qrVJq2tSSp3jUcXdxpylSinbdrnNqc6FK7jepNRlry8iW9lZ6p/wAzUX+PKcV+0D/wcj/tn/EaTVdO+Bfg74Y/s4+Hp7jSLjR9Tg01fi18TdLFnaxDVrO88TeN7KL4danY6zfi4nXb8HNPv9O0+S2sYNQku7ebVL28NwzgaVpYidXEytNSV/Y0nf4LQpfvU4Rsk/bu7u7WaipniqjV4xUVtpaTX/b17f8Aknl1Px88afF39r79tvx5o3h7xj45+PH7TXjzUdY8Tar4P8Ctf+MviTe2Oo60h1jxNH8O/h5p39pWnh2yks9LW5uNG8FaDpul6fpGj20MNjbaXpNvFbexCjgsBTk4U8PhaajCE6loUlJR0gqtV2cmm7KVRttyerc3fBynNqMnKo/etFXa6300vbl6dtPh97+lr/ggj/wTq/bN/Z7+OPiL9ob42+ENd+Cfwx8QfCK68P6b4L8T6tbWPi7x9q3iDWdLvNMOufD6zu7rWPC8Hg+HRb+8vY/iDY+GfEdpqOq6PBo2k39rd69caZ8xxBmeCxNCOGoTjXqKqpOpBNwpxUWny1HFRm586S9m5xajK7Ukk+zDU6kZOclKK5ErSd5Su76rpbzs9Vb7SP6w6+UOsKACgAoA8a+PH7OfwN/ad8C3Xw2+Pvwy8KfFDwbcPLPDpviWw8y70fUJrO5sDrPhbXbSS08Q+EfEMdheXdpa+I/CuqaPrlrb3VxFa6jAk8obShicRhaiq4erOnNac1N/FFNXhUjK8ZR5km4z5k+XVBOEai5ZJNef6PdeqP5P/wBuX/g3A8e+EX1Tx9+w14ok+JXhzdPdXHwQ+IWq6XpHxB0tGn09Ut/BPje5Gl+FfGNlF9p1S6On+Kz4P1jS9I0m0tLfWPHuv6gRX12A4mpztDHw9lLRKvTi5U3dtfvKa5pwl7trw5ouUruNOMbHDVwsk+ak72+y97vTR7N/4rPzelv5kPGXgrxl8OvE2r+CviD4S8TeBfGXh+4Wz17wl4z0HVfDPibRLqSCO6jttY0HW7Wx1XTbh7a5gnSG8tIpGgmimRTHIjN9TCpCrCNSnOFSErOM4SjOEle14yi2nrdLzRyNPms0/dtaMrRk16pdPW+9tblPw/4g17wnrmi+KfCut6v4Y8TeHNTsNc8PeIdA1K90bXdB1vS7qK+0vWNG1fTprbUNL1TTb2CG8sdQsbiC7s7qGK4t5o5Y0cOSjUjKE4xnCScZRklKLTVpQlF3TTWjTVmtGEW1Ju9mrzTja8ZdVr+K8lqf0e/sOf8ABxh8aPhKmjeAf2xvD178e/AdpHDYw/E7w0mmaX8a9Es7a0MMB1a0uZdL8KfE1V8i0t/O1S68IeKZHudS1zXfGXim+MVjJ8zj+GaFbmqYNqhUeqpTu6Em3q4u3PS3bdnOGijGENzqpYqS0qR5o91rK/XbR/epW968uv8AXb+zz+1F+z/+1d4K/wCE/wD2e/ip4V+J3hlHSHUTolzLb634eupjciCw8XeFNVg07xX4Q1G5W0muLOw8TaNpN1eWSJqFlDPp81vcyfG4jC4jB1PZ4mjOnO6s5J8sldawmpOE0rtN05TV9JNNtHdGcai5otNd1+q3XzPdqzGFAHyJ+2d+w1+z7+3d8NIfhz8dvDVzdto9xe6j4I8c+HbmLSvHnw+1i+tltbzUPC+tyWt5CsF/DFbLrGgaxY6t4Z1prLTLnU9IurzR9HurDpwOOxOX1fa4dpcySqU5R/d1Ip3SnHmWu/K4tTjd+9FSknFSlCqrTjfs1o16P5arZ2XZH8hP7Q3/AAbkftwfDTU7q4+BepfDv9pTwpNrMFho8ek+ItM+F3xCi0yTSzd3Ot+KPDXxJ1LSvBOmWltqccukR2/h74n+LdUuzLp+otplrBc38Ok/ZYbiXAVUliFUws+W8rp1Ic10lGEqSlUblG87ypxSs1d2V+KWEqR0g1Jbu8mm/Jxdo2fWzbt+Py3P/wAEX/20fBVzZzftHXH7PH7H/g7UTcWel/Er9pT9pf4OeFvA2qeIIoTdweE9NufBninx/wCILzxHf2MN/qNpaxeH2tBZ6VqE13fWvlxLP1vPMDJf7MsTjKi1dLC4WvOoo/ztShBKCdk3e92rJmf1aaXvWprvUnFRcu1ot7973PvD9lb9qj/gkv8A8Er7K78a/C/V/ib+3l+1TqvhXXoLb4m6V8Obn4V/DjwdftJcQQ+C9B/4We+m+IfBdjr0DW1nrnjzQPDXxT1a/wBPS+mthpmn6pP4NfgxeDzfNmoVlTy/CRnH917VVqk1bWpJU7xqOLu405SpRTtu1zm1OdCldxvUmoy15eRLeys9U/5mov8AHlOK/aB/4OR/2z/iNJqunfAvwd8Mf2cfD09xpFxo+pwaavxa+JuliztYhq1neeJvG9lF8OtTsdZvxcTrt+Dmn3+nafJbWMGoSXdvNql7eG4ZwNK0sROriZWmpK/saTv8FoUv3qcI2Sft3d3drNRUzxVRq8YqK20tJr/t69v/ACTy6n4+eNPi7+19+23480bw94x8c/Hj9prx5qOseJtV8H+BWv8Axl8Sb2x1HWkOseJo/h38PNO/tK08O2Ulnpa3Nxo3grQdN0vT9I0e2hhsbbS9Jt4rb2IUcFgKcnCnh8LTUYQnUtCkpKOkFVquzk03ZSqNtuT1bm74OU5tRk5VH71oq7XW+ml7cvTtp8Pvf0tf8EEf+CdX7Zv7Pfxx8RftDfG3whrvwT+GPiD4RXXh/TfBfifVrax8XePtW8Qazpd5ph1z4fWd3dax4Xg8Hw6Lf3l7H8QbHwz4jtNR1XR4NG0m/tbvXrjTPmOIMzwWJoRw1Cca9RVVJ1IJuFOKi0+Wo4qM3PnSXs3OLUZXakkn2YanUjJzkpRXIlaTvKV3fVdLednqrfaR/WHXyh1hQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAHkHx4/aB+Df7Mfw31f4ufHfx7pHw6+H2iz2dpea7qkWo3ry3+oS+VY6ZpGi6JZ6nr2v6tdFZJLfSdB0vUtSkt7e6ultTa2lzNFeHw2IxNWNHD05Vakr2WifKnreUmoxitW5SaXwrm2CUoxXNJ2j+X9eh/PT8e/wDg5u+BHhmW40n9nL4A/EH4r3cN14m02bxT8Stb0n4VeFR9iZLXwx4k8O6bpcPj/wAU+KdE1mYXGo3ek+I7L4X65aaellbzC31HULuLRfpMPwtiKmuLxFOirQtCnF1p661IycvZwhKOiTi6sW03slzcs8XFaqLe6TeibtdNbtp+dvLS9vw//aB/4Lr/APBRr4+W+oaTa/FjSvgV4W1XS9N02+8O/s/eHl8DXH2jTdTOqHWdP+IOr6h4r+L+g6rfyJa2mpDw98RtJ0q60y0Gn/2YltqGsJqXuYbh/LMO1J0XiJxd4yxMudWslyunFQoyS1avTum73uo255YivPe8VslGPL+PvTj8vS+l18SfDb9nv9sX9tvxpqPiT4ffDT43/tE+K/Enii00rxV8SJbDxL4tsR4p1KGFrdviH8WPEDy+H9CuZLQQzTar438Uabbw2Kx3F1eRWqiQd9XE4LA0+WpVoYaEYOUKV403yLf2dKPvySf/AD7g2npa6MVGdV3UZScneT1lr0u5WjbfeXW3kfVY/wCCaXhT4Q31lb/tz/tt/s3fsoXzXuraL4g+GXhm81n9qn9oTwR4htY3u9Js/G3wn+BKaxo3hzSNd0tE1aHXdQ+I0UNra32lwTWb6tetptvyf2nOum8vwGKxispxqyUMJhqkbqMnGtiOWUpQ25VTu2mr2VzT2SX8WcIL7UY+/NS/vKK93mstE13ufrP+x3+zr/wbmReIrfR9Z/acf47+OI9K0PW5L79pTVfiL8A/hpZat4alifVp/Dyav4O+C3g66t/EWoXkDt4C8e+L/iPdXWl2aWNpFqFvBr1zf+RjcTxLyOSw3sKb5o/7NGliKrUtua068k4xX8SnCkoyd3vFLopxwrf8Tnla/wC8vFe71j7sFrrpd21a+0f1f/DP4W/Cj4ReGV8MfBr4c/Dz4YeDrq8m1seHvhl4P8N+CfDFxqGoRW63GrrpPhXT9O0ua8vYLe1Wa/Fu09zDBbB5WWGPb8jVqVqs1OvVqVZpct6s5VJ2V+WKlN30Tel9NbtrbsSUVaKSXZJJfh/Xmd/UgFABQAUAFABQAUAfn1/wUU+A37A/xV+C2s+Jv26rXwB4Y8J+GtK1G00X4wazqVt4T+Ing+7l07U722sfh94rtEbxFq2tyyR3Wq6R8N7S08Uaf4y1rT7S3u/A/imWOLT378uxGY0K8Y5e6k5zmr0IpzpTV0r1YfCoXa56rcHTi3apC13nVVNxbqWSS+LZr0e9+y1u+jP87f8AaG0H4BeG/ix4q0j9mf4gfED4mfCC01LUY/DXir4k+CNN8DeIbm1j1bUYbNI7HT9e1d9a006RFpd1beJtU0X4e6zq011dfb/hv4Se3Wzb9Hw0sRKlCWKp06VZpc0KVR1Ip2V9XFcj5rpwUqkVZWqTbuea+RSfs23B3tLlafpfZebulptF6ni1dBZ6x8DPif8AGz4SfE3wt4s/Z78XeO/B/wAVjqen6T4Yuvh3d6nF4j1m91HUrFbTwyul6WJX8T2Wv6hHZWV34RvrPVNL8Sbo9Lv9K1G3uPssmOIpUK1KcMTCnOjZuaqpcsUk7zu/gcVd86acN1JWuZQc1ZpuOj5eVK/psua/b7W/Q/0Of+CafxL/AOChnxK+Dtjqv7efwd8C/DzWfsdofC/iK31ibw58U/F2nHRfDc1nqfxB+DGn6LqXh3wbqupT3Wu3GsTf8Jb4K1iw1a3OgS/BHwtZ20Or3/5vmlLLaVdrL69SrG754uLlSg+aV1Tr8ylNLljFRUJxafN7ebtE9Si6rj+9SXZ6pvRfFG1ovfS67OEev2N8eP2gfg3+zH8N9X+Lnx38e6R8Ovh9os9naXmu6pFqN68t/qEvlWOmaRouiWep69r+rXRWSS30nQdL1LUpLe3urpbU2tpczRcWHw2IxNWNHD05Vakr2WifKnreUmoxitW5SaXwrm2NJSjFc0naP5f16H89Px7/AODm74EeGZbjSf2cvgD8Qfivdw3XibTZvFPxK1vSfhV4VH2JktfDHiTw7pulw+P/ABT4p0TWZhcajd6T4jsvhfrlpp6WVvMLfUdQu4tF+kw/C2Iqa4vEU6KtC0KcXWnrrUjJy9nCEo6JOLqxbTeyXNyzxcVqot7pN6Ju101u2n528tL2/D/9oH/guv8A8FGvj5b6hpNr8WNK+BXhbVdL03Tb7w7+z94eXwNcfaNN1M6odZ0/4g6vqHiv4v6Dqt/IlraakPD3xG0nSrrTLQaf/ZiW2oawmpe5huH8sw7UnReInF3jLEy51ayXK6cVCjJLVq9O6bve6jbnliK897xWyUY8v4+9OPy9L6XXxJ8Nv2e/2xf22/Gmo+JPh98NPjf+0T4r8SeKLTSvFXxIlsPEvi2xHinUoYWt2+IfxY8QPL4f0K5ktBDNNqvjfxRptvDYrHcXV5FaqJB31cTgsDT5alWhhoRg5QpXjTfIt/Z0o+/JJ/8APuDaelroxUZ1XdRlJyd5PWWvS7laNt95dbeR9Vj/AIJpeFPhDfWVv+3P+23+zd+yhfNe6toviD4ZeGbzWf2qf2hPBHiG1je70mz8bfCf4EprGjeHNI13S0TVodd1D4jRQ2trfaXBNZvq162m2/J/ac66by/AYrGKynGrJQwmGqRuoyca2I5ZSlDblVO7aavZXNPZJfxZwgvtRj781L+8or3eay0TXe5+s/7Hf7Ov/BuZF4it9H1n9px/jv44j0rQ9bkvv2lNV+IvwD+Gllq3hqWJ9Wn8PJq/g74LeDrq38RaheQO3gLx74v+I91daXZpY2kWoW8GvXN/5GNxPEvI5LDewpvmj/s0aWIqtS25rTryTjFfxKcKSjJ3e8UuinHCt/xOeVr/ALy8V7vWPuwWuul3bVr7R/V/8M/hb8KPhF4ZXwx8Gvhz8PPhh4OurybWx4e+GXg/w34J8MXGoahFbrcauuk+FdP07S5ry9gt7VZr8W7T3MMFsHlZYY9vyNWpWqzU69WpVmly3qzlUnZX5YqU3fRN6X01u2tuxJRVopJdkkl+H9eZ39SAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAfm3/wVQ/YL1L/goR+zQPhN4Z8a2fgjx74T8X6f8Q/Ad9rrX3/CHaj4g03StY0T+xPGQ0211DUrfRtQ07Xb9E1XTtP1K/0a/W01CPS9Ujin0669DKsestxXtpU3VhOEqdRRtzpNxlzQvZc94pW0jLVXjzXWdak6kbRlZp3X8vz/AK8up+GvwA/4Ng9aln03VP2pv2ldLsbaHU9Rj1fwN8AdAu9Un1LR/sBXSbrTfir8RbDSI9E1P+1JRNqNjdfBrxBa/YbU21tqX2jUTd6X72J4qjqsJhrysuWpiJLSTfvJ0qbfNppdV4u7vJJLXmjhP+fkl5qKt6a6LTzg/u0X7W/AT/gjR/wTn/Z/s7X+yv2dPC3xQ8QpokWh6p4s+PAPxg1DXNlzFdtrFx4Y8Wpc/DXQ9ellhjWTU/BfgXwtItuHtIkhtbi5hm8PEZ1mWJbviZ0ouXMoYf8AcxjpZx54JVZRe372pPVPqkn0Qw1GH2E/OXv3+T08rpI/F3/gtt/wWD8ZeF/F+vfsXfsj+LbjwXF4QZtD+OPxY8JXlxpniVdetjLbXfwn8EanaxW8vhqy8PKkK+MfEeiXY1i+1Yjwnp93othoviCLxR7eRZNGpCOOxkfaKfvYejNXhyy972tRP43L/l3GSUVH3mpOS5MMRXkpOnTklbRv7Tk9opX0tpeXd2srSv8Azk/s3fsWftUfteapeaX+zn8E/GPxLXTHng1XX7KLT9B8E6PeW9muoHTNa+IPiy/0LwLo+r3Fmyz2Gjap4itNU1NWX+zbS7LBT9NicbhMEk8TXp0rrSLvOpJXteMIc1SUU95KMkurRyRhUqL3Yttd3ePqudOO3970319V/aC/4Jf/ALev7Lfg/wD4WD8bf2b/ABd4b8ERee2o+KtA1jwX8SND8PQ27WsbXXi2/wDhh4m8ZQeDrCWW9traz1HxU2j2N9dym0sLi4ukkiGOGzbLsXP2dHEwlPT3JKdKUr3soe0jFTdk3aHM0tWki5UqtNXnGShpZxs+XvzcrlZd781+9z6n/wCCU3/BWv4mfsNeOfDvw2+Imva14x/ZM13VntfEfgy6MmqXfwyfWrwTXHjf4ciQtd6cLO/mm1XxD4Rs5BoviOG51a7i06PxRd22rJyZtlFLHU51KMYwxkVeM1oqtl8FVLRtq3LN+9FqKvyXQ6Fd0m4uzgl7y6rX4lt3XNF6v/Fof6Bmha5o/ifRdH8SeHdTsta0HxBplhrWhaxplyl5p2q6PqlrFfadqVhdwM0NzZ3tnPDc208LNHNDKkiZVgT+dSjKLlGV4STcZRcbe+nZqS+y+bSSas1tpt6erNGrAKACgAoAxPFPivwv4G8O6z4w8beJNA8IeEvDthPqviDxR4p1fTvD/h3QtLtVD3Oo6zreq3Nnpml2FunNxeXtzBbwr80jqOamEJ1JRhCM5Tk1CMIRcpSb25YpO7ejUVFSXXSwNpK7ailu3ov6+4/mt/bl/wCDjf4WfDd9U8AfsU+GbL40eMIGns7v4u+NbXV9K+EmjXMU+nhz4Z8PRyaR4u+IztH/AG1Yvey3Xgnw7ZX0Glazo+oePNFu5LevqMBw1Wq2njpPDw91qlTlGVacdfjlaUKX2Xy2qSacoyVOSuctXFcukI8701b0W+y+J6J9l5s/kp/aC/ad+P37VXjVviD+0J8VPFfxR8UBJIbGfX7uGHSdBtJBD59h4V8LaVb6b4V8H6ZcSW6XNxpfhbRdG0+5vfNv57aS9nnnk+ww2Ew+Dp+zw1KFKG75U25PvOcm5zava85SaVknZJHFKpKo7zcm/Ldro4xei9YttW001XhldBoftF+wv/wQ4/a1/bBg0vxv40tT+zb8FNQigu7Tx18RtAv7jxf4p0+8sZ7yyvvAPwwa50TV9b024ZtLlTX/ABJqvgzw1qGkap/afhjWPFE9jc6ZXhY/P8Hgm6dN/Wq609nSl7kHezjOraUYtL7MFNxlpNU7qTulQqSd3eMbbvdu26V39ztFN+7zbn9kH7Gv/BNL9kj9hfTUf4L/AA8jvvH8trLZ6r8ZPHsln4p+KurQ3LSG4tk8QmxsbHwxptxA8Npe6L4G0fwtompx2Vlc6vYahqULX8nxmNzTGY9r29W1O7aoU7wopLZ8t25tNpqU5TkrtXtouynRp0/gVn/M9X9/T5WW596Vwmh+bf8AwVQ/YL1L/goR+zQPhN4Z8a2fgjx74T8X6f8AEPwHfa619/wh2o+INN0rWNE/sTxkNNtdQ1K30bUNO12/RNV07T9Sv9Gv1tNQj0vVI4p9OuvQyrHrLcV7aVN1YThKnUUbc6TcZc0L2XPeKVtIy1V4811nWpOpG0ZWad1/L8/68up+GvwA/wCDYPWpZ9N1T9qb9pXS7G2h1PUY9X8DfAHQLvVJ9S0f7AV0m6034q/EWw0iPRNT/tSUTajY3Xwa8QWv2G1Ntbal9o1E3el+9ieKo6rCYa8rLlqYiS0k37ydKm3zaaXVeLu7ySS15o4T/n5Jeairemui084P7tF+1vwE/wCCNH/BOf8AZ/s7X+yv2dPC3xQ8QpokWh6p4s+PAPxg1DXNlzFdtrFx4Y8Wpc/DXQ9ellhjWTU/BfgXwtItuHtIkhtbi5hm8PEZ1mWJbviZ0ouXMoYf9zGOlnHnglVlF7fvak9U+qSfRDDUYfYT85e/f5PTyukj8Xf+C23/AAWD8ZeF/F+vfsXfsj+LbjwXF4QZtD+OPxY8JXlxpniVdetjLbXfwn8EanaxW8vhqy8PKkK+MfEeiXY1i+1Yjwnp93othoviCLxR7eRZNGpCOOxkfaKfvYejNXhyy972tRP43L/l3GSUVH3mpOS5MMRXkpOnTklbRv7Tk9opX0tpeXd2srSv/OT+zd+xZ+1R+15ql5pf7OfwT8Y/EtdMeeDVdfsotP0HwTo95b2a6gdM1r4g+LL/AELwLo+r3Fmyz2Gjap4itNU1NWX+zbS7LBT9NicbhMEk8TXp0rrSLvOpJXteMIc1SUU95KMkurRyRhUqL3Yttd3ePqudOO3970319V/aC/4Jf/t6/st+D/8AhYPxt/Zv8XeG/BEXntqPirQNY8F/EjQ/D0Nu1rG114tv/hh4m8ZQeDrCWW9traz1HxU2j2N9dym0sLi4ukkiGOGzbLsXP2dHEwlPT3JKdKUr3soe0jFTdk3aHM0tWki5UqtNXnGShpZxs+XvzcrlZd781+9z6n/4JTf8Fa/iZ+w1458O/Db4ia9rXjH9kzXdWe18R+DLoyapd/DJ9avBNceN/hyJC13pws7+abVfEPhGzkGi+I4bnVruLTo/FF3basnJm2UUsdTnUoxjDGRV4zWiq2XwVUtG2rcs370Woq/JdDoV3Sbi7OCXvLqtfiW3dc0Xq/8AFof6Bmha5o/ifRdH8SeHdTsta0HxBplhrWhaxplyl5p2q6PqlrFfadqVhdwM0NzZ3tnPDc208LNHNDKkiZVgT+dSjKLlGV4STcZRcbe+nZqS+y+bSSas1tpt6erNGrAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDyf4//EZvg/8AAv4z/FhIhPN8NPhZ8QPHcFsZIYvtFx4R8KaprtvbLJcKYFe4msY4Y/MVlLyKGVgdrVQpKtiKFG2lWtThzXd05z5ZS010unorX+QpO0ZO3Rv7lc/zF/gZ8OfEH7UX7Svwu+GOo6/dv4i+Ofxd8N+HNd8V6hN9svxdeOPFEEXiHxNezXT7r+9gS9v9YmErPNf3KMn72WYBv1PEVY4TC1aqiuXD0ZSjBKytTh7kElsrpLyX3nkxip1Ek/ilGMnrb3m3JrXTZLe3TzP9PD4JfBX4cfs7/CzwV8GPhL4bsPCvgLwHottouiaXZQxRPL5Sl73VtUmjjRtS17XL97nWNf1m5D3ur6ze3moXk0lzcyOfyytXq4mtUr1pSlOcpOTfXty9oxVoxi3ZRSs/dPXjFRShFWUfv9b93u31ep6Xd2lrf2tzY31tBe2N7BNaXlndwx3Nrd2tzG0NxbXNvMrwz280LyRTQypJHJHIyOrKxFQm0004ppXTW6k+q8vzA/zr/wDgtF+yD4O/Y8/ba8TeFPhppkOg/DL4meF9G+Lngrw5ZxPFp/hW38RahrOka74a01Xlk26Xp/ibQNWuNIt4hHbadpF7YaTbIsVhgfo+R42eNwEJ1W3VpTdGberk4xjKMnb7ThKPM3q2nJ2uebiIKE1Z20c1HXXrb0vG/n66n9Yv/BBb4tav8Vf+Cb3wrtNdu3vtQ+FfiPxt8KI7qVSkjaL4e1Yat4ZtS2QkiaX4c8QaXotu6gYttPgSTdNHJK/yHENKNHMq0orSpGnWtteUl7/y5oufe7l037MM70Yc2ttN+i1j/wCS6fI/ZCvINgoASWWOKN5ZXjjjjjaSSSRgkccaBmd3dmCoiKCzMxAUAkkAUAfgr+3F/wAF/v2Wf2cE1jwR8AJLT9qH4u28ctqtz4U1dIfgx4ZvpLSCW3uNZ+I1ql5B4xaAX9vdDSPhzHrdjePaanoOreMPB2swHZ7mA4exeJtUxF8JSet5xvXmru8Y0nZwWllKryyV1KMJx0fPVxMIPlj+8m+3wr59e6t06pH8fv7Xv7fv7U/7cHiQ6z8fPiXqGq+H7TU59T8M/DDw+JPD3wr8GSGbVGsv7A8G2s8lrc6jpllrV9o1t4u8S3HiHx3daM8en6x4q1OKJMfaYLLsJgI8uHpJSatOrL3q1S9m71Hqk3FScIqNPm1jBHFKpOrL3n7vS2lut4xevbVqT7S6nxtXcUfo9+xH/wAErf2uv267uz1b4b+CW8G/CV5wt/8AG/4kJf8Ah74emJLjU7S6j8KSmzn1b4h6jbXui6lpVzZ+CtN1iz0XWRZWXi7VPC8F/BfV5ePzfB5enGrU9pWvpQpWlU6Ne01UaUUpJ81RpuN3CM3oTSoTqK8Vyx195r06/atbeNnGW9j+xv8AYc/4Ip/sg/sYvovjHUdF/wCF/fHHS5bPUIfin8TtKsZbDw5rNjcaZfWuo/Db4e+bqPh7wVdafqukWuraLr15ceKfiBol3LeR6f46TT7k2KfF47PcZjueHN7DDar2VKTvKLTT9rUTUppptOKUYS0vTurnfSw8KevxS7vZekdVH4VZ6tW3P19ryTYKACgAoAKAPJ/j/wDEZvg/8C/jP8WEiE83w0+FnxA8dwWxkhi+0XHhHwpqmu29sslwpgV7iaxjhj8xWUvIoZWB2tVCkq2IoUbaVa1OHNd3TnPllLTXS6eitf5Ck7Rk7dG/uVz/ADF/gZ8OfEH7UX7Svwu+GOo6/dv4i+Ofxd8N+HNd8V6hN9svxdeOPFEEXiHxNezXT7r+9gS9v9YmErPNf3KMn72WYBv1PEVY4TC1aqiuXD0ZSjBKytTh7kElsrpLyX3nkxip1Ek/ilGMnrb3m3JrXTZLe3TzP9PD4JfBX4cfs7/CzwV8GPhL4bsPCvgLwHottouiaXZQxRPL5Sl73VtUmjjRtS17XL97nWNf1m5D3ur6ze3moXk0lzcyOfyytXq4mtUr1pSlOcpOTfXty9oxVoxi3ZRSs/dPXjFRShFWUfv9b93u31ep6Xd2lrf2tzY31tBe2N7BNaXlndwx3Nrd2tzG0NxbXNvMrwz280LyRTQypJHJHIyOrKxFQm0004ppXTW6k+q8vzA/zr/+C0X7IPg79jz9trxN4U+GmmQ6D8MviZ4X0b4ueCvDlnE8Wn+FbfxFqGs6RrvhrTVeWTbpen+JtA1a40i3iEdtp2kXthpNsixWGB+j5HjZ43AQnVbdWlN0Zt6uTjGMoydvtOEo8zeracna55uIgoTVnbRzUddetvS8b+frqf1i/wDBBb4tav8AFX/gm98K7TXbt77UPhX4j8bfCiO6lUpI2i+HtWGreGbUtkJIml+HPEGl6LbuoGLbT4Ek3TRySv8AIcQ0o0cyrSitKkada215SXv/AC5oufe7l037MM70Yc2ttN+i1j/5Lp8j9kK8g2CgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA8n+P/AMOW+MHwL+M/wnSUQTfEv4WfEDwJBcmOGX7PceLvCmqaFb3Kx3DCBnt5r6OaPzGVQ8almUDctUKqo4ihWvpSrU58tnduE+aUdNdbJaO1/kKSvGSv0a+9WP8AMX+BnxG8Qfsu/tK/C74najoF2niL4GfF3w34j13wpqEP2O/N14H8UQS+IfDN7DdJusL2dLK/0eYyqk1hcuz/ALqWEFf1PEUo4vC1aSkuXEUZRjNO6tUh7k01urtPzX3HkxkoVE0vhlGUlrb3W1JLTXdPa3XyP9PT4K/Gf4bftC/DDwf8Y/hJ4p0/xj4A8c6RDq+ha1psocMrnyrzTdQtyRPput6RfR3Gla5o17HDqOjaraXem6jbwXdrJEv5XXoVcPUlQrQcalN8sovTvaz3cZK/LJaSvFrRtHrRkpJSi7ppWf8Aw/Xunt956Pd3drYWtzfX1zBZWNlBNd3l5dzR21raWttG01xc3NxMyQwW8MKSSzTSvHHHHGzuyqpNSk20kottWSW7kui8vyGf51//AAWi/a+8Hfth/tteJvFfw01OHXvhl8M/C+jfCPwV4js5Xl0/xVb+HdQ1nV9d8S6azxR7tL1DxNr+rW+kXERkttR0iysNWtnaK/yf0fI8FPBYCEKqaq1ZutNPRxcoxjGLt9pQjHmT1Tbi72PNxE1Oasr6OClrp0v6Xlby9dD+sX/ggt8JdX+FX/BN74V3eu2j2OofFTxH42+K8drKxeRdF8Q6sNJ8M3RXBSNNU8OeH9L1q3RSc22oQPJtmkkiT5DiGrGtmVaMXpTjTo33tKK9/wCXNJw73Uum3ZhlajDm0vrt0ekf/JdfmfshXkGx8Uft7/t3fCb/AIJ//BKf4ufEu01TxJqer6g/hv4dfD7QJLeDWfHXjCSyuLu304X13utdC0GxhhN74m8S3MF6NG0wM1hpWva3PpHh/VevLsvq5jW9hSaXKuarUk5JU480U2ktW+kIK3M95RipSUVKipR5pXfRJf18Pd9Oz2P4Vv24f+CtX7Xf7c8uqeHfGfi5fh38F7y4b7L8EfhrNe6J4Qu7KG9gvbAeOdQaZ9c+I2oW8thpl7IfEl7J4ctdbsF1nwz4U8MSytbr99gMoweA5ZQh7WulriKtpTvJNNU1tSTu17q5pRfLOc3qefUrzqaN2j1iraa9ej/lvLRy96MUt/zJr1QPrL9kz9hz9pr9tfxgnhP9n/4aat4ltLW/s7PxR481FJNH+GvgaO6kj3XXi3xndxHTLGWCzlk1OPQLA6n4v1ixtLo+G/Dmt3UJtW48Zj8Lgoc2Jqxi2nKFNa1alukILV+9Zcz5YRbXNKK1Jp06km4x9691JvWKt3lv5Wdnropan9f/AOw1/wAG+37NH7PsGieOP2mG079pz4tRW9rdS6BrGntH8CvC2pSWlqbuz07wZfL5/wARhZXb6nYprPxCQ6HrWnvY6gvw28M6vbq8fxmP4ixWJcqeFvhaSTTcX+/nduz9otaV0k+WleUW2vazWh20sLCGsvelZL+6vl121vvvZXsf0BW1tbWVtb2dnbwWlpaQRW1ra20ccNtbW0MYigtraCILFDBDEqxxRRqscUaqiLtwD8+22224ttXbe7kur8vyOgfTAKACgAoAKACgDyf4/wDw5b4wfAv4z/CdJRBN8S/hZ8QPAkFyY4Zfs9x4u8KapoVvcrHcMIGe3mvo5o/MZVDxqWZQNy1QqqjiKFa+lKtTny2d24T5pR011slo7X+QpK8ZK/Rr71Y/zF/gZ8RvEH7Lv7Svwu+J2o6Bdp4i+Bnxd8N+I9d8KahD9jvzdeB/FEEviHwzew3SbrC9nSyv9HmMqpNYXLs/7qWEFf1PEUo4vC1aSkuXEUZRjNO6tUh7k01urtPzX3HkxkoVE0vhlGUlrb3W1JLTXdPa3XyP9PT4K/Gf4bftC/DDwf8AGP4SeKdP8Y+APHOkQ6voWtabKHDK58q803ULckT6brekX0dxpWuaNexw6jo2q2l3puo28F3ayRL+V16FXD1JUK0HGpTfLKL072s93GSvyyWkrxa0bR60ZKSUou6aVn/w/Xunt956Pd3drYWtzfX1zBZWNlBNd3l5dzR21raWttG01xc3NxMyQwW8MKSSzTSvHHHHGzuyqpNSk20kottWSW7kui8vyGf51/8AwWi/a+8Hfth/tteJvFfw01OHXvhl8M/C+jfCPwV4js5Xl0/xVb+HdQ1nV9d8S6azxR7tL1DxNr+rW+kXERkttR0iysNWtnaK/wAn9HyPBTwWAhCqmqtWbrTT0cXKMYxi7faUIx5k9U24u9jzcRNTmrK+jgpa6dL+l5W8vXQ/rF/4ILfCXV/hV/wTe+Fd3rto9jqHxU8R+NvivHaysXkXRfEOrDSfDN0VwUjTVPDnh/S9at0UnNtqEDybZpJIk+Q4hqxrZlWjF6U406N97Sivf+XNJw73Uum3ZhlajDm0vrt0ekf/ACXX5n7IV5BsFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAfyP8A/Bbv/gjt428Q+NPEn7Zf7Jvg688XHxRNLq3x1+EPhexutQ8VJ4kleaa++KngzSIJJ7jxFba8WiXxp4Z0e0/tqw1hT4rsbPWrHWfEUnhj67Ic5pxpxwOLmocmmHrTvGHL9mjNy1jy/wDLucnyte43FxjzceIoyfNKC5lJe9Dqpfzq+9+q3uuZXu7fzjfs3ftp/tUfsh6peap+zn8bPGPw0XU3nn1XQLKXT9e8E6xeXFmunnU9a+H3iyw13wLrGr29mqwWGs6p4du9U0xVX+zbu0Khh9LicFhMaksTQp1bLSTvCpFXvaM4ctSMW94qUU+qZyRnUpr3ZNN91aPoudqO3930209V/aC/4Kgft6/tSeD/APhX3xt/aQ8XeJPBEvnrqPhXQNH8F/DfQ/EMNw1rI1r4tsPhh4Z8GweMbCKWytrmz07xUusWNjdxG7sLe3unklOOGynLsJP2lHDQjPT35OdWUbXs4e0lJQdm1eHK2tG2i5VatRWnKThpZRsubvzcqjdd78tu1z6n/wCCU3/BJT4mfty+OfDvxJ+Img614O/ZM0LVnuvEfjO6Eml3fxNfRbwQ3Hgj4cmQLd6iLy/hm0rxD4us4zovhyG21a0i1GTxRaW2kvyZtm9LA0506MozxklaMFqqV18dVrRNK3LB+9JuLtyXY6FB1W5Oyg17z6vX4Vv2XNJ6r/Fqf6BmhaHo/hjRdH8N+HdMstF0Hw/plhouhaPplslnp2laPpdrFY6dpthaQKsNtZ2VnBDbW0EKrHDDEkaYVQB+dSlKTlKV5ybcpScr++3duT+0+bWTbsltpv6eqNGrA/BX/gv9+xj8Xf2qv2cfh34y+Cnh7XPHfi/4E+LNa1vUfh14btdQ1XxF4n8KeL7DTtM1e78NaFp4mm1/XdBu9J0q7i0q1s7jVLjSJ9ZOlbp0NjqHu8PY6jhMVWjXlGFPEQjFVZNKMKkHe02/hUlpfRc3Kpd1hiYSnFOKbcXsnZu/bv8ApvHU/ie+Bv7Nfx7/AGlfGy/Dz4EfCbxr8TvFyTWsWoaf4b0aaW08OpeXq6dDqHi/XLr7LoHgvRBfMtrPr3izVNF0W0kO27v4tpx9zXxWHwtP2tetTpw1s5PWVtWoRXNKpK32YKUn0RwRjKo7JNvWyjf3fKUlolps1dXVz+q79h//AINu/BPhuPSvHn7dHitfiBrbwx3UfwL+HGr6po3grTmntbtDa+N/iHZNpPivxNeW/wBqspzp3gk+D9O0zWtKkjHijxvoV48cnyOP4mqSvTy+Hs47LEVFGVR3a/h02pQilZu8nNuP2KTR1UsIlrUaa/kj8OvdvV99LP3Vq0j+nnwX4G8FfDXwvpHgj4deEPDPgPwZ4fgkttD8JeDtB0zwz4a0a3luJruaDTND0S1stMsIpru4ubqZbS2iSW6nmnkDSyyO3y85zqznUqSlUnLV1Jy55ydnG/NJtvRJavodqSStFJLskkvuj6HSUCCgAoAKACgAoAKACgAoA/kf/wCC3f8AwR28beIfGniT9sv9k3wdeeLj4oml1b46/CHwvY3WoeKk8SSvNNffFTwZpEEk9x4itteLRL408M6Paf21Yawp8V2NnrVjrPiKTwx9dkOc04044HFzUOTTD1p3jDl+zRm5ax5f+Xc5Pla9xuLjHm48RRk+aUFzKS96HVS/nV979Vvdcyvd2/nG/Zu/bT/ao/ZD1S81T9nP42eMfhoupvPPqugWUun694J1i8uLNdPOp618PvFlhrvgXWNXt7NVgsNZ1Tw7d6ppiqv9m3doVDD6XE4LCY1JYmhTq2WkneFSKve0Zw5akYt7xUop9UzkjOpTXuyab7q0fRc7Udv7vptp6r+0F/wVA/b1/ak8H/8ACvvjb+0h4u8SeCJfPXUfCugaP4L+G+h+IYbhrWRrXxbYfDDwz4Ng8Y2EUtlbXNnp3ipdYsbG7iN3YW9vdPJKccNlOXYSftKOGhGenvyc6so2vZw9pKSg7Nq8OVtaNtFyq1aitOUnDSyjZc3fm5VG6735bdrn1P8A8Epv+CSnxM/bl8c+HfiT8RNB1rwd+yZoWrPdeI/Gd0JNLu/ia+i3ghuPBHw5MgW71EXl/DNpXiHxdZxnRfDkNtq1pFqMnii0ttJfkzbN6WBpzp0ZRnjJK0YLVUrr46rWiaVuWD96TcXbkux0KDqtydlBr3n1evwrfsuaT1X+LU/0DNC0PR/DGi6P4b8O6ZZaLoPh/TLDRdC0fTLZLPTtK0fS7WKx07TbC0gVYbazsrOCG2toIVWOGGJI0wqgD86lKUnKUrzk25Sk5X99u7cn9p82sm3ZLbTf09UaNWAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAfEn7QP8AwTa/YX/ai1OXXvjZ+zV8OvEnii81ca7qfjLQbbVvhx468QamtgNLSXxR45+GWp+DvF3iqCOxSKCKw8R61qljGbe1ljtVntbaSLsw+Z4/CpxoYqrCCTioSkqsIx39yFVThTe0rxinZvX3mTKlSn8UU332b66tWb1113PL/ht/wRy/4Jn/AAp8RnxV4V/ZJ8B6jqh0+6037P8AEfWfHnxk8Prb3UlvLJMnhH4u+LvHHhSLUUe2jNrrCaKurWStNFY3sEV3dJNpUzvM6y9nPGVEvddqSp0JaXd+alCnO1mrw5rPW6lZEKhRX/LtW7O8o/8AgMm0tz9KYooreKOCCOOGGGNIoYYkWOKKKNQkcccaARrGsYCoigKqgKoCgA+eajqACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAPiT9oH/gm1+wv+1FqcuvfGz9mr4deJPFF5q413U/GWg22rfDjx14g1NbAaWkvijxz8MtT8HeLvFUEdikUEVh4j1rVLGM29rLHarPa20kXZh8zx+FTjQxVWEEnFQlJVYRjv7kKqnCm9pXjFOzevvMmVKlP4opvvs311as3rrrueX/Db/gjl/wTP+FPiM+KvCv7JPgPUdUOn3Wm/Z/iPrPjz4yeH1t7qS3lkmTwj8XfF3jjwpFqKPbRm11hNFXVrJWmisb2CK7ukm0qZ3mdZeznjKiXuu1JU6EtLu/NShTnazV4c1nrdSsiFQor/l2rdneUf/AZNpbn6UxRRW8UcEEccMMMaRQwxIscUUUahI4440AjWNYwFRFAVVAVQFAB881HUAFABQAUAFABQAUAFABQAUAFABQB+Av/AAUS/wCC5v8AwwP+0jqX7Pf/AAy6fix/Z3hDwp4r/wCEv/4XZ/wgnnf8JPbT3H2D+wP+FR+MvLFj5Gz7V/bT/aA+/wCy2+3a3v5bkH9oYVYn617K8503D2PtFam0vidaO99Vy6a6t6nPVxPsp8nJfSLb57aP+7Z367bH7k/DXxh/wsL4c+APHx07+x/+E58F+FfGH9k/a/7Q/sz/AISbQrDWf7O+3i1s/tv2L7b9mN19itftPlCb7Jbb/KTwasHTqVKd+b2dSUL2tfkly3s3onbmSu7Pq+vTF8yT7pP79Py/zOxpCCgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgD+Qf/AILO/wDBLn9uz9rD9tvXPi98APgZ/wAJ98Pbv4cfD/QrfxD/AMLN+DvhbzNW0WxvYdUtP7J8afEHw5rifZZJI1899MFtNnNvNKgYj7DIc3y/B4CFHE4hQqqtUbXs68/dbVnz06co6/yt32vdnFiKNSpUU4x5krXd4Ltbdo/qs+CHh3WfCHwW+EPhLxFZ/wBneIPC/wAL/h/4e13T/tFpd/YtZ0XwppWmanZ/arGe6srn7Ne208X2i0ubi1mCCS3mlhKSN8hXlGdetKNnGdWpKLakrxlU3SdnG6lazim/tM7YpKKT6JL8P6/U9MpAFABQAUAfiN/wX9+Ofxd+A37C+l+IPgz8Q/F3wv8AE3ij46eAfCGo+LPAniHWPCfiuDQJdC8beJrmy0vxJoN7p+saUL3UfDGlxX0ljeRPeacLvTLgyWV7cwv7fDtCjiMe416UK0IUKslCpGE4cylGClytOF0pu143Tt1SMMTJxpXi2m5pXUuV2s3v02/D5n6A/sBfEDxd8VP2Jf2V/iJ481m68R+NPF/wM+HeteJvEF8we/1vWrnw7ZfbdVv5es9/fyJ9qv7k/NcXUs07/NIa87MKcKWPxlKnFRpxxFWMIraMFJ2Se1lso6WWtjSk26cG3zNxV5d/627n1xXKWFABQAUAFAD3YqjsOqqxXPTIDN83v9KRofzFf8G/v7WP7RX7RXxb/bd0z43fFzxv8TdM0/UvB/jDw7p3jLxFq3iGy8Iah4h8T+PrfVNO8G2+rXl6vhbwy8FvYwW/hjRfsmh2MdhZJZWFusR3/UcR4PD4ejgJYalTpNxnCThGMXNRp0mnNRUeed205yblq7vvwYWc5Sqqcm2mnFSWyu17vRLTbRdV1P6cq+YOsKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDP1vXNF8L6LrHiTxLrGl+HvDvh/TL/XNe8Qa5qFppOi6Jouk2st9qer6xqd/NbWOm6Zptlbz3uoX17PFa2drDLcXMkcUbuJipzlGMY80m+VJJuUpSduWFuZt3aSS1b0j1QbavZav0PEvh5+1p+yt8XfE8Pgv4T/tL/s/fE/xjdWt3fW3hP4efGb4c+NvE1xZafEJ7+8g0Hw54k1PU5rWyh/fXdxHatHaxfvJnROa3rYTGUaftK2FxNKEXrOrQq0oJ7pXlFJtrRJStLXoJThJ2Uoya3Skm/wke+1kM8f+KX7Rf7PfwMu9IsPjX8d/g18Hr3xBb3V3oVl8Uvif4I8AXet2lk8MN7caRb+LNc0ibUbe0muLeG6lslljge4hSdkMiBro4XE4iMnQw9euotJujSqTUZbJSlCMmm7O3Ne/Kgcox+OcY37tL8zs/AXxE+H/AMVfC+n+OPhf478HfEjwVqz3iaV4v8BeKND8YeF9Tk0+9n0+/XT/ABB4evtR0m7exv7a5sbxba7ka2vLee1mCTRSIsVKc6M/Z1KU6U4W9ypCUKium17rXNqnGSutU29baJNPVNSXdO6+9XOtoGFABQA4kAMSxGOSScAAYwTxnNAHyVL+35+wjBJJDN+2r+yVDNC7xSxS/tH/AAcjkikjYpJHJG/jIMjqwIdGAZXDAgEEV2f2fj/+gHGf+E1b/wCQI9rR/wCfsP8AwKP/AMkfQ3gL4ifD/wCKvhfT/HHwv8d+DviR4K1Z7xNK8X+AvFGh+MPC+pyafez6ffrp/iDw9fajpN29jf21zY3i213I1teW89rMEmikReOpTnRn7OpSnSnC3uVIShUV02vda5tU4yV1qm3rbSk09U1Jd07r71c62gYUAFABQAUAfLusftz/ALEnhzWNW8PeIP2xf2WNB1/QdSvtG1vQ9Z/aE+Emmaxo2saXdTWOp6Tq2mX3i6C907UtPvYLiyvrG9ghurS6hlt7iKOWN0HRHL8wlFSjgcZKMkpRlDDVnGUbKzT5OVprVNWjKPvRJ9rSWjqQTX99f5nuvgL4ifD/AOKvhfT/ABx8L/Hfg74keCtWe8TSvF/gLxRofjDwvqcmn3s+n366f4g8PX2o6TdvY39tc2N4ttdyNbXlvPazBJopEXnqU50Z+zqUp0pwt7lSEoVFdNr3WubVOMldapt620aaeqaku6d196udbQMKACgAoAKACgAoA53xn418G/Drwzq/jX4g+LfDPgTwb4ft1u9e8W+Mde0vwx4Y0S0eeK1S71fXtburHStNt3uZoLZZ768hjaeaKMMXkjUqNOdWcaUITqzk2oxhHnnJ2vyxjFOV7a3iuyvdjbSV20kt29EeY/DL9qH9mj4167d+F/g3+0R8C/i34nsNMm1y+8PfDL4t+APHuu2WiW91Z2Nzq93pHhXxBqmoW+lwXupafZzahNbpaRXV9aW7SrLcwo+tbCYqglOvh8TRpt8qdWjOEXJp2ipTiruSi3a90k5NqxKnCekZxk/Jp/ime4VmMKACgAoAKACgAoAKACgAoA/nv/4OVv8AkwHwR/2c58P/AP1APivXv8Nf8jN/9glb/wBOUDmxn8Ff4o/+3H6R/wDBML/lHl+xp/2b38Nv/Ufta4M1/wCRljv+wqt/6WzSh/Bp/wCBH3bXnmoUAFABQAUANf8A1b/7j/8AoJoKXT5/kfyCf8Gyv/Jaf25P+wN8M/8A1KviJX2fFP8ABwH+Kr/6boHn4T45/wCH/wByTP6/a+MO4KACgAoAKACgAoAKACgDwD4hftbfsqfCPxNc+Cvir+01+z78MvGVlBZ3d54S+IXxn+HHgrxPaWmoQi6sLq50HxJ4k03VILe+tnS4s55bNI7mBlkiLxsCdaOCxlamqlLCYmpC7SnSoVasJNWi1FxTV1pF62XoxOcIu0pQi+zkk/xke2eH/EGg+LNC0bxR4W1vSPEvhnxHpdhrnh/xF4f1Kz1nQ9e0TVbWK+0zV9G1fTpbrT9U0vUrKeC90/ULC4ns7y1miubeaSORHOMoyhKUJxlCpFyjJSXK4yjJxacXZqSas002tIyZW+q1Xf8Ar+rGnTEFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAHzD+2h+zT/w2B+zN8VP2c/8AhYOs/C7/AIWXpOn6Z/wm2i6f/bFxpf8AZ+t6ZrXk3uif2pof9uaNqP8AZn9m6zpB1nS/t+m3Vzb/AGyDfuG+CxP1LF0cV7KNb2Um3Sk+RaxcVaTUuSWq5Zcj1UXZdZnDni435b/a7Wf4/cfwlf8ABUb/AIJa/wDDs+4+Crf8L0/4XX/wtn/hNZsD4Y/8K3/sD/hC38LNt/5KF49/tU6n/wAJH1/4lv2L7J0u/tGYf0HKc3/tX6x/s/sPZci/iqrze0c9P4UP5X3vfW3KeZiKHsVH3nJNy0tZR2t1fXfv6n2p8PPhX+3v/wAHAXxCvPE/jbxu/wACv2PfhlqSaZ4egax1HW/AXhfVNP0iaz07RvBPhSC48NL8Wviklpe+b4u8Z69qukJoOmazfRxajodheeGfAN7wVq2X8N0lCnT+sYyqryu0qk03dynNKfsaF1eFOKlzcq+Jqc1slVxLu3yQttvHfSy0vK1+Zy2i7eS+vf2rP+DbbwP4H+E+q+P/ANjP4x/F+7+MPgK3uPFlj4V+KuseEdRt/GP9ixx38eleEfEXgvwb4BvPBni1DbT3Wg6hqK69p9/qiWGl3E3h6KeXxBZ8WD4nqVKyp46hQVCpaDnRjJOHMkk5xqTqRqwvJqVuV2u1e7i9J4VKN4SldWdny+93acVFp2utH5evxv4M/wCDgD9qKH9jjwr+zd4Y0LxF4p/bLm1+3+G2h/G++sYfFOrX/gyVNPsPDd+mi30mr6p4z+Ot9qM8/hhrrVdHns79YdP8SX7eIvFeo30a99Xh3CfXamKqSjDA8rqyw91BKau5rmXKoYdL37QnzJ3prkgk3lHFz5FHllz83LzWb09N3Po9Nve1eh9ifs2/8G5WpfFjRbr4u/8ABQj4/wDxYuvi58RIIvEWs+FPh74h0TU/F2ha1qLi7upviL8WfiDpHxFXxt4lltpEttZs9J0K3tNN1WGZrXxl4ptHimHDiuJlRkqOW4aiqNL3Y1KsZKMoq6iqVGnKl7OLesW5Jtb06bNY4VO8qkm5PXR+8tOsur331a6s+Q/jl8Dfj7/wb7ftXfDj41/BXx/4i+JP7MXxX1qbS9X0vVoobCXxN4f0XUXvNQ+FHxKtrIf8I7eeMNO8Nai2qeBfiFY6fopu9TGt6lpXh7RLSz13RLjsw+Iw/EeDqYetThSxdKKcJK7UJS0Vak370YuaSqUnzWSipSlLlkRKMsNJSg24N3e+sYrSLXw81tpabLR6o/tc8CeNfDvxJ8EeDviF4RvU1Pwp468L6D4x8NajEY3W/wBC8TaXaazpN2pikljxcWN9byAJJKo3YDsBk/DTpulUnTmrTpzcJrpzQ5oSivSzdv8AM707pSWzV18/+HOmoEfk7/wVPh/4Kn3vhz4YaV/wTYi8PRrqN94li+Lmope/Cqw8eWds1ha23huLRrz4zXlv4VtfD04u9Xm1O98PRHxzZ6zY6DLpd5Z6f/aK3Pq5T/ZClV/tPm0SVFNVXB6ycuZUE5uTsrKX7uUXK6va2dX2tl7Ll2lzXtfpy/F03vbXY/H5f+Def9tX9odl1r9tf/goSde8SeHETTvBUvmfFf8Aaelt9EvCbvVLd9c+K3in4UXvhQ/b1iZdM0ix1ywvmLXk93BLEsMvs/6y4DD+5gMt5Yt3q/wcK3JaKXLRhWU9LazcZK1ktNeb6pUlbnrPmXrUX4uNvxPraL/g2R/YSEUYn+Ln7Wsk4jQTSReN/g7BFJKFAkZIX+BU7RRs+WSNp5miUhWlkILnm/1px/8Az4wP/gqt/wDNBX1Kl/NU++P/AMgfGvx5/wCCD37SX7GV9rP7TH/BNr9pPx/q3ijwM66tpvw6vjbeFPi23hKzt7C71rTrHxv4fvLDwb8V5bvUbKXUdS8Aa54H8FaL4i8ORNoItfFusx2uj+IeuhxBhcco4TNMLTjCp7rqq9SjzNNRbpyTlRUU7KpGpUmned4RvKMzw04N1KU3zJ7bS5debWN0277OK0VtWtf1t/4I9/8ABTgft/8Awn1nwz8SLax0X9pD4OwabafEWz06EWOn+N9DvAbTS/iPo+mrFFFpct/e21zp/ivQLPfZ6NriQ3lkun6T4g0nSbDyM6ylZbWjKk3LC4jWi3q6clr7OTW9k4uEnZzjZO7i296Fb2qknpKLs+qfZ/5rp8z9iq8Y2CgD5w/ay/ar+En7GXwP8V/Hf4y6vJZeGfDyJZ6Xo1gbZ/EfjfxVeRXD6J4L8JWNzcW0eoeINZe2naJJJ4LPT9PtdR1vVrqw0XS9Rv7XbCYOtjcRDD0F+8e8m3y04LlUqs7N2jG63d5OSjaUmlKZzUIuUtl+L7LzZ/JHo2nf8FQ/+C+vjDXtRuPFK/AP9i7T/EkNjPpq3ms6Z8I9OsbfWNCnbRLHQ9NWz1v9oz4m6Db6bF4n+1eKJrXwtoviW2uYrXXPhJaeI9G0VvspPKuHIK0PrOOdNu9ouq+aMry5neOFpSb5LQTnKDi5Ks4ymcX77Evdxpb6P3ej5bWvJ9XzaN9IXSP0e8If8GxH7Hll4Z0e28f/AB3/AGlfE/jGC22a/r3g/UPhd4H8M6neebIftGj+FNa+G3xC1TQ7XyTFH9jvfGniGbzUkm+3BJVgh8yXFePc5unh8LCCfuxmq1Sdl0lONWipO1veVON77PQ2jhIW1lJu+qVlH5RSflu5bHyn8aP+CDP7V37G+s6l+0N/wTY/aU8a6/4k8MSXF7ZfD+eRPAXxek8KW95ot8PDtn4r0W+h8C/GFru6s5NQ8ReD/Efhv4f6Dr+maVDpdvonirVLq20O766HEWDxyWGzPDU4058q9ov3lHnaaUnCS9pQsnyxnTnUmm23Kmk5LOeGnD3qMneNtNp27XWjvu04pPz2PIfjl/wV/P7X/wDwTN/aZ/Zq/aX0iw+G37W/gpPh7a+UbGXw3pfxYj8NfFzwZb+IHtfDuoeVceF/iZ4fFrPP4z8DIq206W2o+IfDVppumW2q+GfCm9DJvqWaYTFYWXtcFU9q9+d0eelJx5pJWnSd1yVLczTUZSbanOZV+ejKNTSdnbopWa6X0lZ3cfnF9I+Q/wDBPz/gg/8A8N0/sxeEP2kP+Gqf+FW/8JXrXjHR/wDhDf8AhR3/AAm/2D/hE/EuoeHvtH/CQn4weEDc/bvsP2wwf2HbfZfN+z+bcmPz32zLiB5fi54VYL23JGEuf6x7P44KXLb6vO1r2+J3+LTcmlhva01L2lrybty3V7LrzrbVd/uP6/P2Fv2T4/2Jv2Z/AP7OkfxK8SfFdfBb65cHxd4js10pZJNc1i71iWw8P+Hl1LWh4Z8N2Ut3INO0Ntb1lreSS6uJNQla6KxfF4/GfX8TUxKpU6PteRciu17sVG8naPtKjtrLljfRfZO6nD2UVBNu3V/oui8j65rmLP5dfjx/wbVQfGb41fFb4uW/7bGuaLH8TviD4s8enSPEfwKTxtremTeK9ZvNbuLK/wDFifGfwuuvS2txeywx6gPD+lNLCkW+2Dqzv9RQ4o+r4elQWAg/YUoU+aOJ9nF8kYxTUHQnyXX95+8tzkng+aTkqr3ctY3euq15ldX6W79z8pdA/Yh/4d+f8FmP2MvgCfid/wALbz8Svgb43/4Sw+C/+EC48R+Kb2D+zP7B/wCEs8Z8Wf8AZO/7b/bP+kfaNv2SDysyexLMP7SyTHYn2fsv3WIp8iq+0dowvfm5KW7ltyaW30OeNL2WIhFO9nBt2stVbu930/S5/Rr/AMFP/wDgtB8Jf2EotR+FXw2tdI+MH7UU+mu6+EBdvL4J+Fj3dtDLpWo/Fi90y8tdQa+uormLVdP+H2h3dr4i1TSoludX1XwZp2reHtW1b5nKcirY/wDe1XKhhL/Ha9SrZv8Ag3TVlazqTi0nolUcZRXZWxEKWnxT7dI+cv8AJXfpofjp8HP+CSv/AAUO/wCCoOv6R+0V/wAFC/jl4u+GPgvUmbUfDHhzxZZvq3xJk0O8uvD8t3YeB/hJFNofgf4GeGPEWlQaisV7d29trMOv6VY6zqXwr8Q6fq0etT+3XzjLMqUsLltCFWqtJzg+WlzJO3tK1nUxFSEnGyTceWTiqycVEwjQqVveqyaXRSs217u1rKKfba+qiviXvH7Uf/Bt9pnw58CL8T/2C/jR8YpvjV8OWk8XaP4R+JXiDwp/avivVdGutN1DRY/h54/8E+HPhs/w+8Z6UbTULzRLnVbTWLPWNcfRbX+2fBUVtca1JzYXid1ansMwoUHRq+5KdKM/cUovmdWnUnV9pSle00nFxXM1GpdRKnhLK9KUudK9m4q9vhs0lyuP5pbfEv1k/wCCP3xw/bN+MP7OGqaX+238JfiN8P8A4lfDPxLb+EdE8YfE7wR4i+Hnij4qeGG0e2v7TXNW8PeJdK0e7vdX0WSRtI1PxTY2aaf4ixbST+b4htdfvLvyM6w+BoYrmwFWlUpVqbnKFKpGrTozUrOKlCU0oS+LkbvGzb91xS3oynKP7yLTTa5mmm1fez17a9dT9Xq8o1PnT9rz9nz/AIas/Zr+L37PP/Ce6/8ADH/ha3hSTw3/AMJv4bg+16howN7Z3+250z7dpn9t6Bqn2L+yfFPh4arpX/CQeGb7V9F/tPT/ALf9si3weJ+qYqhiPZxquhUdT2cn8dr6tpWjL3ueEvsTUJWdrEzjzwlC9uZWuun9bNddUfzUf8QsJ/6PrP8A4jF/+ULX1H+t3/UH/wCXn/3ucX1Ff8/f/JP/ALc/Lv8A4Kif8EhP+HbfgL4X+N/+Ghf+Fz/8LJ8Xav4U/sr/AIVN/wAK6/sX+ytFGrfbvtn/AAszx1/aPn7vs/2X7JYGL/W/aX/1NetlWc/2nUrU/qzoezhGd/be0cry5bW9lDfe936EVaHsUnzc7b5XdWunZW3dr6a7+Z/d7+zZ/wAm6/AL/sivws/9QbQq+BxP+84j/r/V/wDTkj0o/DH/AAfoz2msACgAoA/FH/gp3/wR0/4eO/E74ffEs/tN+IPhB/wgvgq58Hf8Ine/Dv8A4WX4am87WJ9W/tvQ7P8A4WH4C/4RzVb77R9k1+T/AIm39twaboPzWP8AZe269rKc6/sulOl9UjiPaVFPnVZU56x+GT9lU50t435eVOT15rLCtQdVp+0cNOW1ua+t+6t/l6s/nB/4KW/8EUP+HeHwC0P45/8ADTP/AAuD+2fib4f+HI8Lj4Nf8K++zf27oHivXP7Z/tv/AIWt41877L/wjH2X+z/7Ii8/7d5/26H7MILj6jKs+/tPEvD/AFP6vy0Z1ef2/PfllGPLy+xpb8978ytba7ajyVsO6UObn5/fWigovVOTfNeTW2/y8j6T/Zf/AODcv/hpD9nf4M/Hv/hsf/hDP+FufDzw148/4RT/AIZ6/wCEj/4R8eIdPivv7L/t3/heGhf2sLMy+V9u/sfTftG3f9igzsHLi+JvquIr0PqKqeyqyp87xCjzcrtpH6vK19rc2ndWLhhHKMZ+05dG+Xk5uV917/z9ddj3f/iFhP8A0fWf/EYv/wAoWub/AFu/6g//AC8/+9w+or/n7/5J/wDbh/xCwn/o+s/+Ixf/AJQtH+t3/UH/AOXn/wB7h9RX/P3/AMk/+3P6Tv2O/wBnP/hkn9mn4S/s6f8ACwfEPxS/4Vf4dl0P/hOPE0Bsr7VzPqmoar5Nnpf9oap/Yfh7SP7Q/sfwtoH9q6qdB8OafpOj/wBpX4svtUvzGOxX13E1sV7NUVVlzuEHdRSio6u3vSlbmnKy5puUtG0jthD2cYwTuoq1z6UrnKPmf9sr9nD/AIa5/Zp+K37Ox+IWv/C3/hZmhQ6P/wAJp4ctv7RutL8jU7DU/Iv9I/tDSP7e0DVPsR0vxFoP9r6UdZ0S8vtO/tG0+0faE3wOK+pYqhiPZKt7KXN7KpK10lJOXMlPlevuy5XaSTs0rE1I88XC/Lfqv617WZ/Nm/8AwawlVZv+G7M7ULbf+GYsZwCduf8Ahob3/wAnr9R/rd/1B/8Al5/97nF9RX/P3/yT/wC3PyC/4Jk/8EvP+HjPjT45eEP+F5f8Kc/4UxZ+G7v+0f8AhWf/AAsL/hJP+Eh1XxFpXl/ZP+FgeB/7HNn/AGB9o3/adW8/7UYdsHkeZN7WaZv/AGbSw8/q/t/buat7X2XJywi9/Z1Oa/P2XK+6ZlSo+2c1zcnKkrWb5kur+G/3prQ/X/8A4hYT/wBH1n/xGL/8oWvF/wBbv+oP/wAvP/vc1+or/n7/AOSf/bh/xCwn/o+s/wDiMX/5QtH+t3/UH/5ef/e4fUV/z9/8k/8Atz9OP+CYP/BHf/h3B8S/iN8R/wDhprxF8YP+E98E2fgz/hErX4e/8Kz8LQGDW7bWv7e1uwPxB8e/8JJrlj9kFh4but2kf2DZav4njA1D+3P9C8vNc7/tSlRpfVI0PZ1HU55Vfazd4tcsX7Knyp3vUjrdxp7KN5dFCh7Ft87nzK1rW+7V9ND9qq8Q3CgD86f+CmP/AAT6t/8Agoz8FfCnwjl+Met/BqTwn8QbHx7b6tY+GU8baJqk1rous6I1jrvhNvEnhFr6SK31mebSdQj8QWzaVMbgtbXaXUiL6OV5j/ZmInX9hGvz03T5ef2c9XGd4z5JWs4rSzuuqszOtS9tFR5nCzvtdPdaq8e/c/m3/am/4N0P+GaP2dPjH8fv+GxP+E1Hwk8Ba543/wCET/4Z9Hhz/hIP7Ft/P/s3+3v+F3a9/ZX2n/V/bf7H1Lyfv/ZJeBX0+E4m+tYuhhvqKp+2nGHP9Z5rczSbt9Xj8PRc6e2u5x1MJyRnPnvpzcqi0pf+TSvr/wADy/R7/gg18ZPhf8AP+CVfjv4s/GTxtonw++Hfg/48fEu/1/xNr07xWlsraD8PYbW0tLeCOa/1bWdTvHh0/RdC0i0vta1zU7m10vSLC91C6t7aTyuIaFbE5xTo0ISq1pYako047y96pdtuyjBK0pSk+VJNycbSZthpqNC8nZRlLmb9V/wD4V+Nf/BRf9vr/grx8Xbv9m//AIJyeGvHPwf+CVi1tH4s8Y2usf8ACHeKbvR9QvhGPFfxg+JukXVwnw48JfZrK7GnfD3wTqV7r/im1i8RafPJ8RZryw8MaL6NDLMuyWisVmcqdes7+zpyjzwUltDD0pKPtaiur1KlowtFr2dvaSzlWq13y0U4wu03onfo5PZLXZe87S30S+nvgh/wbB/A6y8GW7ftIftCfFbxL8QryOwuryL4Ip4Q8D+DPD00mmWn9qaFb3Hj3wb8Qtc8ZR2es/b1sfFclt4EbUdNNobjwZpFyJg3JiOLK7m/quGo06UbpKvz1KknraTUJ0oxvG143qpO7VVxLjg4296U2/7vKo/NOLTt/NpeydkfPvwY/Zm/4KY/8Eef2yfA/gX4IaB8S/2r/wBkv4s+KNCXxKngvwV4n1DwFfaXrN9ovh/xLrHjTQdKk8T2XwQ+JPhSF7S7svGt7qqaJr2h6Zp8t7rGr6HZ+JvDOgdVfE5VneBqVMRKlg8bRhJL2lSKqJxUpRjTlLkeIpVFdOCXNCTdoRk4uUxhWw80oJ1KcnrZO1vdTbWvLJO+vVdrNR/sOr4w7QoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAP5Hf+Do9BJd/sWRvuCyD42ISMZAaX4Xr3BGcHjKkZ7V9dwn8WP/AO4P/pFQ4cd8NP1l+h/Tx+zd8Gvh3+z98Cvhj8IfhV4etfDPgjwd4R0ey0vT7dU86eee1jvdU1rVbpUjbUdd17VLi71jXNUnX7RqWq311eSndMRXyuKr1MTiKtatJ1Kk5Tbbe+tuVLpCCSjG+iXKlfRndGKjFRirJL+vv6ntVZgfxef8EMPgt8O/Hv8AwU6/at8deK9Bg1XWfghdfEfX/hxBKkJ0vQ/EGu/E2/8ADEuuR2BgZX1HTNEuL6z0WUOkWmvfz3cUP26DT7mx+14gr1qeU4OnTk+XEKlGrteUY0lPlv2crc3e1ndJxfDhop1qjf2eay63bTcn93u+SP7Q6+KO4/nP/wCDmiGF/wBib4TzPFG8sP7SnhvyZWRWki3/AA9+JKyeU5G5PMUBXCH5kADZBr6PhX/fpf8AYK//AE5ROXGfwv8At9fqfqV/wTEllm/4J5/sZyTSSSyf8M8/DNN8rtI+2Pw5ZRxruYk7Y40EaDIVUVVXCrhfIzb3cyx3Lq3iaunpKdn+Gy7eZpQ/g0/8KPuauM2CgAoAKACgD+Pz/gl9DF4c/wCC+v7cWgaFFHpWjPeftWWL6bZIsVr9jt/jT4ZvYLZIwMJFFdQRToE2gOi9gQfsM1/ecO4CU/iawmsviu6FSz+5pf0jho6Yusl8Lc0/Vy/O9/L8D+wOvjzuCgD+OL/gqBrHjb/gpR/wVs+Ef/BPjwvrF/pnwt+E2r6boXiSbTZ5JYbfUL7Qbfx78Y/HcsMYu9Pk1nw74KhTwp4djv7Vo7PWtMurOae1TXL9E+0ymNPKsnrZlKC9tVjzQut0pOnQp82kuV1LTlrdpp8r5UcNW9avCkrNRvdfK7k+mmyT+XxH9dHwz+G3gj4OfD/wd8Lfhv4e0/wn4F8B6Dp/hvwxoGmxJBZ6fpmmxLDEp2gNcXc7h7vUL6cyXmo6hcXWoXs095czzSfF1KtSvUnWqydSdWTnUltJtrTTqtGlHZKyj7qO5JRSSVorRL+t/wCtztaACgD+QT/g5I/YZ8PeHpPBn7cvw70eHS7rxRrtj8NvjnZabZxxWupa1cWF7deB/iHdCGNfL1C7ttLu/CPiG/uGZb6SPwYqLHeG+mvfseGMwcvaZfVlpCPtcO+b3lFNKpSirbKTU4pvT95srW4sZSS5aqtZySn6bJ/o+r93sfqv/wAG/n/KMX4Rf9jn8Yf/AFZPiCvH4i/5G9X/AK94b/1HNcH/AAV6y/Nn7SV4x0BQAUAfw1/8F2dd+J/hr/grR8Ptb+CbeIo/i7ZfDH4L/wDCtT4Q0yTW/Fb+NLrXfFdr4eh8M6XDZ6hcX+vz6lPBDpFta2VzePqEluLOI3XlY+74ejRqZPVjiOX2DrVva87cYezUYOSm+ZWiknzNtK176HnYl2rpw5ue0LW1fW/Lpv3/AMm0frd/wSp/4Ip6R8CrjTP2ov20LG1+Jv7UOt3reMNK8IeJ7q18X6F8Jddv7ttUGvazfXM+p2njf4vC8kOqXXiee4vtN8L647XHhybUNcsLXxg/jZxnjxCeEwTlSwiXJz004SrRWnLGyvTo/wAsNHOOk2ouUDehh+Rc9S7nvZ68r79U5efTZdz+iavnTqCgAoAKACgAoA/l8/4Og/8Akgn7L/8A2V/xd/6hi19Zwn/vOL/68Q/9OHHjvgh/18f5H9DX7Nn/ACbr8Av+yK/Cz/1BtCr5rE/7ziP+v9X/ANOSOyPwx/wfoz2msACgAoAKAP57/wDg5W/5MB8Ef9nOfD//ANQD4r17/DX/ACM3/wBglb/05QObGfwV/ij/AO3H6R/8Ewv+UeX7Gn/Zvfw2/wDUfta4M1/5GWO/7Cq3/pbNKH8Gn/gR92155qFABQAUAFADX/1b/wC4/wD6CaCl0+f5H8gn/Bsr/wAlp/bk/wCwN8M//Uq+IlfZ8U/wcB/iq/8ApugefhPjn/h/9yTP6/a+MO4KACgAoAKACgD4I/4Kl/8AKOr9sf8A7IP43/8ATc1d+T/8jLBf9hUP/S2Z4j+BP/DL8z+LD/gnD+wh+1L/AMFIbfw78Iv+Es8V+Cv2LvhR461fxT4u8VTxAeEtM8a69p2mLrWneCtIcW9p4x+Kmr6Jb6Zam7u2v4PAvh+8h1DWJ7O11fSdD8U/cZpmODyxyrckKmPq04whBfE6cW+V1JauNFSvLlVnUaaSbi5Q8+jTqVuWKbVNO8nfTmfVbXkt/wC7pdfzf3mfs1/sw/BP9kf4W6N8H/gR4H0zwX4R0oLcXstvEk2v+K9caGG3vfFfjPXzGL/xL4m1FLeJLnVNQdzBaQWek6bDYaJpumabZfn2KxdbG1pV68/azntf4YR6U4R2pw00S+1dyvJ6+nGEaa5YK0fzfd92e9ViMKACgAoAKACgAoAM+wpWf8z/AA/yH/Wy/wAgz7Ciz/ml/wCS/wCQf1sv8gz7Ciz/AJpf+S/5B/Wy/wAgz7Ciz/ml/wCS/wCQf1sv8gppW6t+tv0SEFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQB/JB/wdE/8f37FX/XT41/+jfhbX2HCm+N/wANH8qxxY7aH+KX6H9Ynhb/AJFnw3/2L2kf+m6CvkJ/H/2/L8pHb2NukB/Ih/wQB/5SCf8ABQb/AK8/FP8A6uy8r7HiH/kXZb/27/6ZOLC/HW/xS/NH9d9fHHafzpf8HMv/ACZH8Lv+zkvDP/qvfiTX0fC3+/Vf+wat/wCnIHLjP4X/AG+v1P1A/wCCYX/KPL9jT/s3v4bf+o/a15ma/wDIyx3/AGFVv/S2a0P4NP8AwI+7a881P5zf+Co3/Bb6X4AeONS/ZR/Yx0Gx+J/7R73sng3xR4zbT5vFGhfDfxhqjx6Pp/g/wf4X09Zm+IfxXtL+6xLptys/hnwz4gi03QtW0nxrqkviHwtof0WUZD9ZprGY2bp4W3tIR0hKrFPmc5Tl/CotLp781eUHT92cuariOVqnTXNN6N9m3ayTa5pXXon0ex8FaH/wS2/4LR/t86eNf/bG/af1r4V/Dfx/4h0XVfFPw1+JHxD8R6vdQ6RBpmkappPinQ/2a/hmtp8G9FurSaWOGDwdretfDLxHpfiHTdVm1rSNHvdl5qHpSzfI8vbjgcJGtVpxkoVaVKMVzNyUoSxVVSrzTi/jjGrTcXCMJTWiydHEVfjqJRb1V3/4Fyr3b91dI9F/4hYT/wBH1n/xGL/8oWsv9bv+oP8A8vP/AL3F9RX/AD9/8k/+3NF/+CBf/BQD9njSoNI/Yp/4KR6hoem+Ir+71Lx5o76/8af2XtKa+tbaxtdG1GC1+E3if4uweLtQnga8tbufWbXQJtKtrOzjtbjVEvJY9Pn/AFiy3EScsflibjFKnPlo4uXK23JN1oUVBaJx5ZPmbaaVtaeGqx/h1t/i+OH+HVOd7fLTS58y/wDBEXwd8Rvh7/wWJ+O/gP4weJ5PGvxV8H+Bvj94a+Ini+XXtY8UyeJ/Gei/EDwhp/iLX28SeIIYNd106tqkFzff2trNtb6pf+cbm+hiuZJI1689qUquS4epRh7OjOphp0ocsafJTlCbjHkj7sd0uWOivZaE4dP6xNSleSUovW/M73ab62fXbTZOx/bXXw53hQB/HV/wTPZdW/4OAP2xr7xPLNPrdnrH7V8mltfIPtC38PxM0rSljTzZbd4Gt/D0t9bQwxQT7LNWiWGKFfNi+yzPTh3AqFuRxwl7b29lLrrdOVm3ff0OGjb61U5vi9/vveH/ANtv/kf2K18adwUAFAH49/8ABei2024/4JgfH5tRWAta6r8J7nTmuJAjR6kvxY8HwwtbHehedopriIRqHMkckqFGV2Fetw83HNcLy9YVU/RUZf5v9dDHEfwJ/wCH/wBuOf8A+Dfz/lGL8Iv+xz+MP/qyfEFXxF/yN6v/AF7w3/qOTg/4K9Zfmz9pK8Y6AoAKAP5EP2/f+ViH9jP/AK/f2Z//AFM/EtfY5X/yTOO/w4j/ANNxOCf++U/Rfkz+u+vjjvCgAoAKACgAoAKAP5fP+DoP/kgn7L//AGV/xd/6hi19Zwn/ALzi/wDrxD/04ceO+CH/AF8f5H9DX7Nn/JuvwC/7Ir8LP/UG0KvmsT/vOI/6/wBX/wBOSOyPwx/wfoz2msACgAoAKAP57/8Ag5W/5MB8Ef8AZznw/wD/AFAPivXv8Nf8jN/9glb/ANOUDmxn8Ff4o/8Atx+kf/BML/lHl+xp/wBm9/Db/wBR+1rgzX/kZY7/ALCq3/pbNKH8Gn/gR92155qFABQAUAFADX/1b/7j/wDoJoKXT5/kfyCf8Gyv/Jaf25P+wN8M/wD1KviJX2fFP8HAf4qv/pugefhPjn/h/wDckz+v2vjDuCgAoAKACgAoA+CP+Cpf/KOr9sf/ALIP43/9NzV35P8A8jLBf9hUP/S2Z4j+BP8Awy/M/P3/AINuv+UeOp/9nDfEv/1H/ANenxN/yMl/2D0//S6pjg/4P/bz/Q/fmvnTqCgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA/kg/4Oif+P79ir/rp8a//Rvwtr7DhTfG/wCGj+VY4sdtD/FL9D+sTwt/yLPhv/sXtI/9N0FfIT+P/t+X5SO3sbdID+RD/ggD/wApBP8AgoN/15+Kf/V2XlfY8Q/8i7Lf+3f/AEycWF+Ot/il+aP676+OO0/nS/4OZf8AkyP4Xf8AZyXhn/1XvxJr6Phb/fqv/YNW/wDTkDlxn8L/ALfX6n6gf8Ewv+UeX7Gn/Zvfw2/9R+1rzM1/5GWO/wCwqt/6WzWh/Bp/4Ee+/tQfEnUvg/8As2fHz4r6NGJda+HHwc+JPjbRYzja2s+HPCGr6tpfmcjEQvrS3MpzuEQdlDNhTyYal7fFYejJe5Vr0qc/8LnH/NrRGk5NRk9rJv52uvxP5oP+Daz9m3wX4yh+OX7afju1g8Y/Fex8fXfw18E63ro/tPUPCs+oaBZ+JfiB4qs5byOTyvEvi+PxXY6NNr0Ux1WHR4tf0yOeKw8SatDffUcUYqcPq+ApycKLpqpUhHRVLScaUHa/uQUHLl25uV6OnG3JhI35py1d0l5XjGUn87627y+f9Z9fJHYFACTzw28M1zczRW9vbxSXFxcXEiRRW8USGSWaaWQqsUMSqzySOyoiKWYgAms0uis204pRa103fn3eyQj+OX/glh4q8N+N/wDgvT+2J4w8Ha9o/inwp4nP7U+ueHPEmgahbaroevaJqXxW8NXWnatpGqWUk1nqOm39pJHc2V9aTS211byRzwSSROr19tm0Jw4dwNKrGUJw+qRnCSleMlSknGSeqaejT1Td/ThotPFTe6bm0+6b1+7Zdtb6n9jdfGneFAH8an7bV/qP/BML/guF4E/a41Kyuv8AhTHx2vYfF+vXdrbFo/7A8UaTF8O/jTZW6INQub/WfC99ND8RFsYYreW7k1XRLG38iO5Eq/aYBLNshqYK8fb4dcqTa+KDVWg3tHlqL91zWe0n0SOGovZYlVPsyV5LrZ6S8tLp3v066n9jmg65o/ijRNH8SeHtSsda8P8AiHSrDXNE1jTbiO807VtH1a0hv9M1OwuoWMVzZX9lcwXVrcRM0csEkciMVbI+HlGVOUotSjKL5ZR5eVwmnZpx1d04pSjZvW+ux3avUv1oAUAfys/8HKv7Yvh3Tvh54B/Yr8Ja3aX/AIw8Ta9pfxP+LdlabLmXw54U0OKdvA2h6nOJStjqPijWrg+JEsDH/aEOl+HdNvrgW2na7p7al9VwvgZOrUx84tQhF0aL+HmlLl9pJWdmoRahfa8mteV248ZNWjTTs27vyUVovm9dPe0631/QL/g38/5Ri/CL/sc/jD/6snxBXncRf8jer/17w3/qOaYP+CvWX5s/aSvGOgKACgD+RD9v3/lYh/Yz/wCv39mf/wBTPxLX2OV/8kzjv8OI/wDTcTgn/vlP0X5M/rvr447woAKACgAoAKACgD+Xz/g6D/5IJ+y//wBlf8Xf+oYtfWcJ/wC84v8A68Q/9OHHjvgh/wBfH+R/Q1+zZ/ybr8Av+yK/Cz/1BtCr5rE/7ziP+v8AV/8ATkjsj8Mf8H6M9prAAoAKACgD+e//AIOVv+TAfBH/AGc58P8A/wBQD4r17/DX/Izf/YJW/wDTlA5sZ/BX+KP/ALcfpH/wTC/5R5fsaf8AZvfw2/8AUfta4M1/5GWO/wCwqt/6WzSh/Bp/4EfdteeahQAUAFABQA1/9W/+4/8A6CaCl0+f5H8gn/Bsr/yWn9uT/sDfDP8A9Sr4iV9nxT/BwH+Kr/6boHn4T45/4f8A3JM/r9r4w7goAKACgAoAKAPgj/gqX/yjq/bH/wCyD+N//Tc1d+T/APIywX/YVD/0tmeI/gT/AMMvzPz9/wCDbr/lHjqf/Zw3xL/9R/wDXp8Tf8jJf9g9P/0uqY4P+D/28/0P35r506goAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA8y+NPxq+F/wCzv8MvFXxj+M3i618DfDfwVaW974k8S31pqmox2MN3fW2m2ccWmaHY6nrWqXl9f3trZWWnaTpt9qF3czRw21rK7YqqFGtiakKFGHtKtRtRgnFXsm3ZyairWbbnZJaSYpSUU5Sdkt2fxZf8F6P27v2U/wBtC7/Zel/Zo+Kn/CyY/hy3xQbxk3/CD/Ebwd/Y48RS+A20bjx94O8KtqP2xdF1M/8AEqF95H2bF19nM1v5v3XD+XYzA/W1iqPsva+zUV7SlPm5VU5v4c52tzLtfmdt2efiqlOtyKm+a13LRrTu21Fdz+nz9mH/AIKn/sE/tJeLvBvwQ+DX7QNh4p+KOqeHi2l+Fb7wF8VfBkuqSaBo63eq2mm6r468C+GtC1DULW0trq8XTbTVJdQuLS0vLq0tp4LS4kj+TxeUZjhYTxFfDctFNXnz0Z2blyxf7upOSTbVnJWTaTceZHbCtTm1GErt7xs09PVL8T9Hq880P4cv+CUH7Zn7Nn7GP7cX7cPi39pX4j/8K38P+Mb7xl4d8Oah/wAIf498Yf2jrNr8X7/U7mz+y+AfC3im8tNllE8xuL+2tbQ7fLSdpiIz93m+BxWOy/L4YWl7WUFCUlz04WjKiknzVJ009dbRbflc87DzjCrVcna90tG/t6vRP0v6n9kv7Pn7RvwW/ao+GmnfGH4BeObX4g/DvVr/AFbSbPX7XS/EGgyrqehXj2OqaffaF4q0nQvEOl3VtOocQ6npNk89rLa6haCawvLS5m+IxOFr4Sr7DEU3Rqxs2nyydpK6lGUJSjaXe7u9HrdHoxlGa5ou69GtvJ2f/BPw6/4OZf8AkyP4Xf8AZyXhn/1XvxJr3+Fv9+q/9g1b/wBOQOXGfwv+31+p3v8AwTO/4Ko/sD6X+zb+x1+zBqn7QWn6V8brb4c/Dj4XXHhHVfAXxV0yxg8efYbTSk0CXxrfeBbbwEry6myWNtfv4oGlXNzLDFbX0rTRB881yjMXisdilhm8O6lWtGaqUX+7vJ83s/aSqbatKndLdMqlVpcsKaneVkrO7d+utuX8bn7jeP8AwVonxJ8B+Nfh34lh+0+HfHvhLxH4L163xu+0aN4o0a70TVIgGxzJZ306jkDJ6r1rwIVZ0qlOqlyunKNSMr/DKE1Jet2o6dfPp0SXMmn1TT+a5fzP4sv2Nf2i/iP/AMEIf2w/in+y7+1b4Z1rUvgN8S9Q0nUpPGPhywmujFaW0t7YeDPjh4Gt5o4R4p8Lalp8txoXxA8P6dKNd02406aCzW88T+CZvCHiD7nG4elxDgaOLwc4/WaatySdm27Oph6jTXJNNqVGTtFprmtCopx4KcnhpunOL5XrzK228Zruvsvtu9dD+pTwJ/wU4/4J6fEbwtpnjHw/+2b+znp+k6ubz7JaeO/ij4W+F3imL7DfXGmzHVPA/wATb/wj430TfcWkkln/AGz4dsBqFk9tqdh9p0y9s7uf5KplGY0puEsFinOPLd06NStDVJ6VKSnTldPVqTs3K9mml2qrTkr8y+bSf3Ss/wADxr4+f8Fof+Ccf7P9rdrqX7RXhn4q+Il0AeINM8K/ALd8YbrXo2vLmxTSrTxd4Ue4+Fuja80lrPN/Y3jHx/4YuobMW97cCG1v9Oku98LkWaYpq2GqUY35XPE/uFFcqfPKEuWtNXlfmhTmubmS95NqJYijH7Sbte0fetbe7Wia7Nr8j8APjR+3D/wUI/4LbeJ9W/Zu/Yw+E+t/Cb9myTUF0f4ha3PqkttbajoWp6h5VlqXx3+KcNkul+G9El0W2fV/+FQeCItX1vWI18S6fF/wtsWOlxWH0VDLsuyKmsXjq0a2K+KlG2qlbVYegn783J8vt6ijGK5H+6u2+adSriJclNcsLq7+7Sb6O/2dNn8R8t/8E0viL8E/+CY//BUD426N+0l8VYtE8F/CnQvjR8EJviBbeCvGmsW+ueJ9J8aeHdOtJbfw14M0nxlr9jDqqeH9RuojNFNbWkcaxXd6sskXm9uawr5rlOHnhaPPUrToYj2bqU48sJU5NtznKEXbmS7vou+dGUKNeUZu6jzQTUZaNOzSiuZvSPXa3zP7Bf2af+Cl/wCw/wDtf+Or74a/s8/HbT/HnjrT9CuvE03hq78FfEvwTfT6LY3NrbXt1pjfELwZ4UttZezkvbZ7qx0ia+v7e2d72a1Wzgmnj+JxWV5jgqaqYnD+zpuSp86qUqiTs2k/ZVZON7OzlpJuzkn7p3RrU5u0ZXb1taS/O3T7z7mrjND4g/4KCfsK/Df/AIKAfADVvg744n/4R/xJp1y/iX4XfEO2tPtmo+APHEFnPa2mpfZBPatq2gahBPJpvifw9JdQRatpspmt57DWtP0bV9N7MuzCrluJhXp+8mvZ1qbdvaU27ta83vJxbpvWz6uPMnFWmqkeV6dU+z+e67rqfzG/s6ft6/trf8ETPHUP7Jf7bfwq8R/EP9nq21O7g8C6tpU809zpmi293p93qfiL9n3x3rMWneHviF4K+w6xDfX3w41y50S80PWtR07T73VfhpqieItD1H6rE5dgM+p/XsDWjSxLSVWLVk5JNJYmnG8qdS8bKrFSvFNxVW0Zx441amHl7OqpOPTTd+78DWj0dmuj6pto/b7wf/wX4/4Je+J/DOj69rXx08S/D3U9TtftF74L8YfBr4v3vibw/L50kf2HWLrwB4L8ceDp7ry0WYPoHizXLLypox9s84SwxeDLhzNYVJKOHhVs2lVhXoKEr9YxqVKU2u7cIy121OiOJotfFJd04SvHXrZNX72Z8JftYf8ABx98Pjb6h8MP2C/hj4z+LPxU1/Vh4S8KfEbxr4ZudK8Ftf6jcaba6PqvgT4eQz3HxE+IGranNdXml6R4e8T6N8OprXWv7MvJtP8AE1p52g3noYPherdVcxqUqNFXnOlTmpVbKLc1Uqr91SSsnKUJVU43TcH75FTFLanFt7JtO3yWjb7p2+bTR+Znxc/4Jf8Axt8EfsKftVf8FB/259S1m8/aV8fSeCdV8H+DNcvrW88QeGB41+KHg6317xn8RRbwtb6d4y1XSLp9J8P+CtOngtvAfh+7ubDW7O08QPD4f8HerRzajUzDB5bgFBYam6kZzimoz9nTnywpX1dNS96VR61JKLi3H3p4ujJQnUqfE/h5t4pv4n5q+iurJ662Uf6D/wDg38/5Ri/CL/sc/jD/AOrJ8QV83xF/yN6v/XvDf+o50YP+CvWX5s/aSvGOg4X4pfFHwD8FPh54v+K/xT8TWPg74eeBNEuvEPivxLqKXUttpelWYG+UWthbXeo391PK8VrYaZplnealql/Pb6fptnd31zb20hQo1K9WFGjBzq1JKNOCs5XdurdlHW8m5WSbeii5CbUE23ZLd9j8yv8Ah+1/wSq/6OmH/hj/ANoz/wCc/Xsf6v5x/wBAT/8ACjCf/NBj9bw/8/8A5LL/AOQP5yv2vv26f2Vvij/wWa/Zl/aw8C/FL+2/gB8Pbr4GSeL/AB9/whHxF0w6Qng7xLrmoeIz/wAIvrHhDT/Gl8NOtLy2m/4lfhy9N35nlWAupUeNfpcFgMZQyPFYOdHlxNX6xyU3UpPm5oRUffhOVNXae7Wu9jlnVg8RGon7seS7s76cykuXl5vP4bdX0P6Nf+H7X/BKr/o6Yf8Ahj/2jP8A5z9fNf6v5x/0BP8A8KMJ/wDNB1fW8P8Az/8Aksv/AJAP+H7X/BKr/o6Yf+GP/aM/+c/R/q/nH/QE/wDwown/AM0B9bw/8/8A5LL/AOQPuX9mf9rn9nX9sXwZqvxA/Zw+Jen/ABL8LaFr0vhnWru30bxR4Y1DSdbitLW/+yaj4e8Z6H4b8R2aT2d5BNZ3s+kpYagnnfYbu4a1uRD5uLwWKwFRU8XTdKco88VJ0580U5K6lCUotRau1GV1r7qukbRqRmrxd1s91/5K7SPoqsRhQB+ff7QH/BVT9gX9lv4lan8Hvjl+0Fp/g/4j6JYaZqOseGLPwD8VvG0ukQazbC902PU9Q8A+A/FGj2GoXNi8V9/ZN1qEWpw2V1ZXlzZxW19Zyzd2HynMcXS9vh8M50pNqM3UoU+Zx0elSpCbUW7cyXRpPmi75yr06b5JStLTSzf5RZ4p/wAP2v8AglV/0dMP/DH/ALRn/wA5+ur/AFfzj/oCf/hRhP8A5oI+t4f+f/yWX/yB+Df/AAXk/wCChf7H37Z/wi+Avhf9mr4vf8LK13wV8R/EeveJbH/hAPif4O/s7Sb/AMMrp9pd/afH3grwtZ3nm3qtCILC4u7mP/WSwpF89e9w7lmMwNfEzxND2UKlKMab9pRmnJTu1aFWo1pu3FR2fQ58TUp1IpRn8MnfRrZbK6V9beX4H7K/BD/gtz/wTB8IfBb4Q+EvEX7Tf9neIPC/wv8AAHh3XdO/4Uv+0Jd/YdZ0TwrpOmanZ/arH4T3Nlc/Zr22nh+0Wd1cWs2wSW88kDJI3iVsgzaderJYNOM6tSUX7fDK8ZVG07OsnG6ls4pu3vM6I4ijGCTnsor4ZN6x8l2PT/8Ah+1/wSq/6OmH/hj/ANoz/wCc/Uf6v5x/0BP/AMKMJ/8ANAfW8P8Az/8Aksv/AJA+8v2bv2pvgF+134Am+KH7OvxG0/4k+CbXXL7w1eapaaV4i8P3mna5pqW091peqeH/ABdo+geI9LuRbXlne241DSbZL2xu7a+snuLSeKV/MxWFxOCqexxVJ0ajippOSknFptNShOUbXTT5ZSs1JOxrCcaivF3V2vtLX0dme+1kUFAH5y/8FXf2P9Y/bY/Ys+I/wk8HRW0/xJ0e50v4k/C+C7lht4tQ8beDftckOgi7uZILWyn8U6Hfa54YtL29mhsLO91m3ur6aG0hmmj9DJ8bHAY6lWnf2Uk6VRr/AJ9VLNyUbptQfLNqOtopavRZ14e0pSivi3Xqunz2+f3fhZ/wSd/4LK+AP2Wfhu/7Ff7elr4u+EmofBHUdc8N+C/HepeDfFGqSaLp9pqV69/8MPiX4R0TSNR8b6D4k8Ka1Jc2Ghala+H9Qs59JkGjeIIfDU/hmDUfE3v5xkk8ZU/tDLnCssQoyqU1UguZtJe1pSlNUpwnHWSk00/fjz87UOahXVNeyq3i4PlTt02s47ppvz+XLp/Rqv8AwUC/YNZdw/ba/ZHIYAjd+0f8HFbBHGVbxkGU9MqwDAgAgHivnf7NzH/oAxv/AIS1/wD5WdXtaP8Az9h/4HH/AOSPkf43f8FzP+Ca3wVHiuwHx2b4ueLPCjafGfCPwR8K6/47PiSTUDpzlPCnxDe00f4LaythZah9t1C4/wCFoQWsC2Oo6atxLr9sNGk6qGQZrX5H7D2MJ39+vONPk3+Ok3OtG8o2S9i2rr3eWXMRPEUYXXNdpXtFN39JP3N9N/LfQ/KTUP8Agun+2v8AtkfG3w/8Jv8Agmv+ypA+n2PiOwv9V1T4iadd+ONe1nwpBr+nR29/8QDoWoaP4H+CfgrU4pH0jxdeXXiXxJdW5v7ceGviHouqm2a49dZBgcDQlWzXGNtxaXsmqcYVORpqnzKVSvNfHBKEFup05R5rY/Wak5JUYfa6u65bat20gk99Xe/utn9YtobprW2a+jt4bxreE3kVpNJc2sV0Y1NwltcTQWs89uk25YZpbW2kljCu8EDMY1+QvFt2vbom7NK/u3V9JPdat/3tjsJqYDiAQwKk54IIyCDjAPOc0AfxC3Wv/Fb/AIIKf8FMPG/i3Wfh/rvir9k/473+vx2EmiwRxQeKvhbq+uW3iOCLwZqd9JFpP/CzfgvqV9b6feeGtWvtO/tSx8y2urrQtF8caH4ttvuVGjxFldOEakYYvD8t+Z3lCtCPJeolefsqyUmpwvyvVKTpyhLg1w1VtpunLs97tvRd4X2X4qV1/Tp8JP8Agq3/AME7fjJ4VHi3w7+1z8FvC1sl2NPvNF+LfjTSPgx4qs9QFhp+oXFufDXxTuPCerajaWy38Vqdf0O31bwvd38F9Z6Zrt9Np94IvlK2T5lQnySwVebs7SpUpV4PVqMvaUYzSlKyfLKUJpNNxV0dca9KSupxXq+V6d07fft2Jfif/wAFWP8AgnL8ItHsNc8V/ti/BDVrLUdSXSbeD4YeLE+N2sR3T2lzeCW/8PfBiDx9r+lab5drKjazqmmWejJdtbWLX3228tbecpZPmlWTjTwOIi0ry9rBYeHKpLVSrunG7Tb5U3K13aycgdejDepHto+f8I3Z+Qf7S3/By98HtEh1Pwp+yB8F/GXxb8atqes6BonjX4nWv/CG/DqeeOZLXw34m0Dwpo2o6h8RvG+l61clpR4Z12D4QeIEtWtFluLXUJ57C09nC8K15JTxleNGm1GUqdJ+1rJbzpynJKlTcVpzp4iF21y21eE8ZHanGUnsm7pa7NLd3/lbi2tt7n65f8Ey/iV+218Wv2cj41/br+HelfDb4l6p418QzeEdIj8P3ngvxTcfDu4Fpd6TJ428DXk9xP4V1XT9TuNY0PS7S9XTdauvDWlaNea/o/8Aaklzr/iHx80p4ClivZ5fWlVpxppTlzKpD2qupezqWSqRaUZNq8VUcoxlyuMVvRdWUb1VZ3dujt5rW33vTsfoTXAaHwX+0d/wU+/YW/ZK+If/AAqj4/8Ax5sfA/xCXRNO8Qz+GrXwJ8UvG1zY6Vq5m/s2TU7vwB4H8V6dpl1eQ27XUOmajeWuptp8lpqBsxZX9lPcduFynH42l7bDYd1KSlyxqOpRpq8OynUptpX5dFvdXumo5yrU6btKVn0XK391k7/cfmT+31/wWL/4Jx/Gv9jD9pX4T/DL9ov/AISb4gfED4SeKvDHhHQP+FRfHbRv7X1vUrMRWVh/aviD4Y6Xomn+bL8oudT1Kys4+stxGvNevl2S5pQxuFrVcLyU6deE5y9th5KKUtXaNXmeutknLXYyqYijKEoqV27xUeSfS1949mfH/wDwRM/4Kc/sPfsi/sa33wo/aG+N3/CvvH03xl8ceK49C/4Vr8XvFm7QNY0bwhaadf8A9qeB/APiXRR9ouNKv4/sjaiL2HyN01tEksLSdme5Tj8bjVWw+H9rD2FOHOqtKD5ozm3G1SpCel105dry1M8PWpQp2crNNytaTt8N9k+vn+TP17/4ftf8Eqv+jph/4Y/9oz/5z9eP/q/nH/QE/wDwown/AM0G31vD/wA//ksv/kDrPAv/AAWm/wCCZXxH8Z+F/AHhH9qCwu/FPjTXdL8M+HbTVfhf8b/C2n3et6zdxWGmWl34h8VfDXRvDmkJdXk8MIvNY1bT7CF5F866RTms6mRZpTpzqTwjUKa55ONbDT5VFczcYxqylK21oxb8tSliKLaSnq9FpNLT+81b9D9Q68s1CgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA82+Mvwa+GX7QXw08V/B34yeD7Dxz8OPG1guneJvDGoTX9pFewQ3MF9aywahpN5p+saVqFjfW1tfafq2kahYapp15bwXlheW9zDHKroV6uGqQr4efs6tOV4VE00mlbVW5bNNpxkmtVGzjaylFSTjJXT3XT8D82f8AhxL/AMEqv+jWR/4fD9oz/wCfBXr/AOsGcf8AQa//AAnwn/zOY/VMP/J/5NL/AOTPZ/gF/wAEpv2Av2X/AIl6R8Yvgh+z5p/hH4kaBa6nZ6H4nv8Ax98WPGsujJrFnJp+oz6dpvjzx54o0ay1GewmuLFdVt9Oj1O3tLq8tra7hhu7lJebE5xmGLpSoYjEOVOTvKCp0abnyu6T9nCEmr2a1tKUU2tIlwoUqb5oxs1s7t+XVs/QiuA0Pyn8Q/8ABEH/AIJf+Ktf1vxRrv7MRv8AXfEusanrus33/C6f2hbX7bq2sXs+oajd/ZrL4s29nb+feXM03kWtvBbQ7/LgiihVEX0459msFGCxdo048sYqjhm1GKsld0W3ZRfvOV77oydCi3zcmsk0/elr+J95fs/fs7fBj9ln4Z6V8HfgJ4Esfh78OtFvtW1Ky0C01HW9amfUtcv5dR1TUNQ1zxRqmt+I9Zvrm4l8oXer6tf3FtYwWWmW0kOm6fY2lv5+IxGIxVWdevN1asoxTk1GLtHSKUaajGKS6RirtO+rblrGMYLliml2v/nr9xzv7TP7Jn7P37YvgfS/hx+0d4B/4WL4L0TxNa+L9M0YeKvG3hI23iGx07UtKttRGo+BPEnhjVJvLsNX1GD7Jc30ti/2jzZLZ5oYJItMLi8Tgajq4Wp7KpKm4c3JTkmm02mqinreKd0r6P3mTKnGouWSut92vykrnyV8PP8AgjD/AME0PhX458J/EjwT+zFp9h4w8Ea9pvifwxqOq/E/42eK7Gw13SLlLzTNQm8P+LfiRrfhzU3sbyKK7tY9W0m/t47mCG4EIkijdOurnuaVacqVTF+5Ui4TXsqEHyzTTTlCnGS5ktfeT5fd10IWHoppqGq1Ws2lf+63b9D9Pa801PDP2g/2YvgB+1X4Jf4eftC/Crwp8UfCwkeaxt9ftJotX0K7lMIm1Dwp4q0q50/xV4Q1O4ihS2n1XwtrWj6jcWRlsJbuSynngk0w2LxODqOrhqs6M9W3F6NdpwcXCatqlOM7PdXFKEaicZpNef6PdfI/GnxV/wAG1f8AwT78Q+I9Z1vSPGH7TXgXTNUv572y8H+FfiL4EvPDnhy3lbKaVo1143+FHjHxbPYWw+WCTxF4p13VGXi61K4PzV7cOKcyjGMZQwk2tHKdKopOXRyVOtCDb1+GEFb4UtEc8sJTk1rJWvonGy+9N/eesfBb/g32/wCCb3wkuWv/ABB4G+IXx21KHW9J1vSr341fEK7urbRpNJkSZNNXw78M9P8Ahj4S8QaJf3CRyarpfjbw/wCKrbUI1axmB0ya6sp8q3EeaVY2jUpUPccZRw9HWV9U+atKpOMlH/n3KElvvZjhhKMd05P+9L9FZfJpn7HeC/BHgv4b+GNH8EfDvwh4X8BeC9AhlttC8I+CtB0rwt4Y0S3uLma9nt9H0HQ7Sx0rTYZry4ubuWK0tIUkubiedwZZZXbxalSpVlOpVnOrUkrudWXPNu1ryk23ayS32X39KSSskko7JaL+vuPzo+I//BGj/gmx8W/H/jX4o/EL9m/+3/HPxC8T614x8Ya3/wALg+PWlf2v4k8RajPqmsaj/ZmifFHTdH0/7ZfXM8/2PTNPsrC33mO1tYIQka+lSzvM6FKnQpYrlp0oRpwh7DDz5YxS5Vd0XKSSW7u5PRvtjLD0pNycbtttvmnu1r8L7L0PVP2af+CaH7D/AOyB46vviV+zz8CdP8B+OtQ0K68MzeJbvxr8S/G19Bot9c2tze2umL8QvGfiu20Z7ySytkur7SIbG/uLZHsprprOeaCTHFZpmONpqnicR7SmpKpyKnSppuzSb9lSi5Wu7KWkWruLfvDjRpwd4xs1pe8n+d+n3H3NXGaBQByHj/4cfDz4r+F77wP8U/Afgz4l+CtUlsrjUvB/j7wvofjLwvqM+nXcOoafPe+HvEVjqGlXcthf29ve2UlxaSPa3cENzDsliR1dOrUozVSjUqUai0U6cpQlG6s/fg1a6aT11XurUbSatJJp9Grr7pep+aWs/wDBDn/glnr2r6trl9+yppsF9rGpX2rXkGjfFX47+HNHhutRupry4i0nw94e+KGmaBoGmxyzPHY6Noel6do2l2ohsdMsbSyggt4/Vjn2bxiorGNqK93mo4eUrJWjeUqLm29byleV735n7xj9XovT2a++SXySdk/O1z61/Z6/Yc/ZF/ZShsf+Gf8A9nz4bfDvVtPsdV0uHxnaaGuufEmfS9b1AanqWl6j8U/FMuufEfWNLuLtIGGnav4pvbG2t7SxsrWCCysLG3g4sRmGNxl1icTUrRbT9m5KFP3VZNUYctKMkv5YK97ySbbVRpwp/DFLV67vXzd3+J8W/wDBduaGH/gl9+0T50scXm3Pwrhi8x1TzJn+LngjZFHkjfI4B2ouWbBwDgV6GQf8jXD+lf8A9MVCMT/Bn/h/U53/AIIA2s9v/wAEwvgy8ybFuvFvxgubdtyN5sB+JvieEPgMxHzwyrh9r/LnbtKknEMk81rW6QoKX+J0qdv1/UjB/wAFes/zZ+zdeMdJwvxS+F3gH41/Dzxf8KPin4ZsfGPw88d6JdeHvFfhrUXuorbVNKvAN8QurC5tNRsLqCVIrqw1PTLyz1LS7+C31DTby0vra3uYyhWqUKsK1GbhVpyUqc1ZSurdGrOOlpJxs0mtVJxE0pppq6e67n5lf8OJf+CVX/RrI/8AD4ftGf8Az4K9j/WDOP8AoNf/AIT4T/5nMfqmH/k/8ml/8mH/AA4l/wCCVX/RrI/8Ph+0Z/8APgo/1gzj/oNf/hPhP/mcPqmH/k/8ml/8mH/DiX/glV/0ayP/AA+H7Rn/AM+Cj/WDOP8AoNf/AIT4T/5nD6ph/wCT/wAml/8AJh/w4l/4JVf9Gsj/AMPh+0Z/8+Cj/WDOP+g1/wDhPhP/AJnD6ph/5P8AyaX/AMmfcv7M/wCyN+zr+x14M1X4f/s4fDTT/hp4W13XpfE2tWlvrPijxPqGra3LaWth9r1HxD4z1zxJ4jvEgs7OCGzsp9Wew09PO+w2lu11cmbzcXjcVj6iqYuo6s4x5IuSpw5YtydlGEYxSk3ZuMbvX3nZM2jTjBWirLd7v/yZ3kfRVYjCgD8+/wBoD/glX+wL+1J8StT+MPxy/Z90/wAYfEfW7DTNO1jxPZ+Pvit4Jl1eDRrYWWmyanp/gHx54X0e/wBQtrFIrH+1rrT5dTmsrWys7m8ltrGzih7sPm2Y4Sl7DD4lwpRbcYOnQqcrlq9alOc0pNX5U+raXNJ2zlQp1HzyjeWmt2vykjxT/hxL/wAEqv8Ao1kf+Hw/aM/+fBXV/rBnH/Qa/wDwnwn/AMzkfVMP/J/5NL/5MP8AhxL/AMEqv+jWR/4fD9oz/wCfBR/rBnH/AEGv/wAJ8J/8zh9Uw/8AJ/5NL/5MP+HEv/BKr/o1kf8Ah8P2jP8A58FH+sGcf9Br/wDCfCf/ADOH1TD/AMn/AJNL/wCTD/hxL/wSq/6NZH/h8P2jP/nwUf6wZx/0Gv8A8J8J/wDM4fVMP/J/5NL/AOTPvL9m79ln4BfsieAJvhf+zr8OdP8Aht4JutcvvEt5pdpqviLxBeajrmpJbQXWqap4g8Xaxr/iPVLk21nZ2VudQ1a5SysbS2sbJLe0giiTzMVisTjantsVVdaooqCbiopRSaSUYQjG122+WMbtybuawhGmrRVldv7T19XdnvtZFBQAUAfEn7U3/BOP9jL9sy7i1r4+/BDw/wCJPGVrYXFhY/EPQr7W/BHj2CKSy+xWRvvFHg7UtEvfE9toaBZ9B0fxkfEfh/TLjzHg0nZdXkdz24TNMbgUoYbEOnByTdKSjUh3fLCakoOW0pU+WXL9rRWipSp1Lc8U332f3rfbW90flj/xDKfsFf8ARWf2uv8AwvPg1/8AOEr2P9acw/584P8A8AxH/wA0nP8AUqX81T74/wDyB9LfBn/ggj/wTV+EcOhz6n8JPEnxq8R+H/EUXiS08U/Gbx/4h1ma6ltbq2vLHR9c8GeDpvA3wq8R+HLWW2CS6Nr3w+1G21i2nubHxCdYtJjAOKvxFmtVS/fRoRlHlcKFOMbNppuNWXta0ZNt2caqcW00ou7NY4ajH7Lm0+a83d/hZNfLzP1m8BfDv4f/AAq8L6f4H+F/gTwd8N/BWkvePpXhDwF4X0Pwf4X0yTUL2fUL9tP8P+HrHTtJtHvr+5ub68a2tI2uby4nupi80sjt49SpOtP2lSrOrOdvfqTlOo7Jpe83zaJRirvRJrS+uqSWiSiuyVl9ysdbQMKACgDzr4sfB34VfHfwPq/w1+MvgDwn8SvAeuRldQ8M+MNGs9Z04ziKaK31GzW6jkn0vWtPE0k2ka9pctnrOjXZjvtLvrO8iinSqVevh6katCc6dSKVpxk49000tHF396L5ozWnK1docVJWkk12kfir8Rf+DcD/AIJ2+NvEkmueGrv4/wDwg0uSztLZfBnw7+Juj6n4bhmt1ZZtQjuviz4I+KXi83l+WEl2k3iuawRkUWNjZIXRvepcT5nThaaw+I3kp1aUufW+lqU6ELRvp7l31uzneFpt3XNDyjKyfro3p6jfh5/wbff8E7/BXiaDXvEl5+0D8XdMgtbu3k8F/EP4maJpnhm6luYvLhvp7n4T+Bfhh4xW509/39ott4st7N5eL+zvYf3IVXifM6kVGmsNS1TdSnSk6kWulq1SpDX7V4OXblBYWmpa80/KUrpemif4n6o/s8/sSfsl/spWtlF+z78APht8N9RsdM1PRR4v0/Q49W+JF7o2s6r/AG3f6TrXxS8SPrHxH8QabLqMdvIljrvinUbW1gsdMsbSKCw0zTra18fE47F4t/7TiatVOSkoOSjSUox5Vy0Vy0ouzTTjC8m+aTesnvGnCHwxS6XtrborvV26XZ9QVgMKAPgv9o7/AIJg/sLfta/EP/ha/wAf/gNY+OPiE2iad4en8S2vjv4peCbm+0rSDN/Zsep2ngDxx4U07U7qzhuGtYdT1GzutTXT47TTzeGysLKC37cLm2PwVL2OGxDp0nLmjTdOjUV59nOnUaTtzaPe7tdtyzlRp1HeUbvo+Zr7rNW+88E/4cS/8Eqv+jWR/wCHw/aM/wDnwV1/6wZx/wBBr/8ACfCf/M5H1TD/AMn/AJNL/wCTD/hxL/wSq/6NZH/h8P2jP/nwUf6wZx/0Gv8A8J8J/wDM4fVMP/J/5NL/AOTD/hxL/wAEqv8Ao1kf+Hw/aM/+fBR/rBnH/Qa//CfCf/M4fVMP/J/5NL/5M6zwL/wRZ/4JlfDjxn4X8f8AhH9l+wtPFPgvXdL8TeHbvVfih8b/ABTp9prejXcV/pl3d+HvFXxK1nw5q6Wt5BDMLPWNJ1CwmeNfOtXUYrOpnuaVKc6c8W3CouSSjRw0OZSXK1GUaUZRvveMk/PQpYeimmoarVaza1/ut2/Q/UOvLNQoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgCO7u7SxtLm/v7m3srGyt5ru8vLuaO2tLS0to2mubm5uZmSGG3hhSSWaaWREiRGd2VFJqEndaNtuyS953lsktlJL5W730D+O7/gsN+3Te/8FDPin8NP+Cc37DEsnxf0u/8AHljdeMfFHguZdQ8NfEbxpYwznSdK0HXtPuJtO1H4Z+AbOXU/Ffi/xlcH/hFvtOmw+IYL4aF4S/tq8+1yTL1llGrmmP8A3FqfLCnUvzUqbtzOUXG6q1G1CENZ2fLbmlyrir1FWao0/e7tfDzdHzX2ju3t9x/UR+x/+zzpX7KH7MnwV/Z70meyvh8MfA2maHq+q6fbNZ2eueK5y+qeMvEMFq4EsMev+LNQ1nWEjuC06LehZneQEn5PG4j65i6+Jd17SrzRTabjC1qcZSteypqMLL3e1+nXCPJGMf5VZev/AA/9M+jaxKCgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAFVtxkGwjy3VQfXMaOGHcDdIVx6oSB8wrKEufnWq5JKPNa104QqN9lfmav036q7atbpdX9NX/AJXErUQUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAH5Af8FR/2P/8AgoL+1Dq3whvf2Kv2tP8AhnnR/COneK7bx14d/wCFn/FX4QDX9T1O50aXSNa/4SH4SeH/ABFqfibybW0ubH+xvEMdnY6Bs+2aRJcXGuaosHr5Rjcuwirxx+E+sym4OnL2dGvyqz5o8tWUeRczTUkm5aKVopGNanVm4OlPl5d1zSjfbrG915NadN2fk5/w6U/4Lxf9JMz/AOJm/tkf/O3r2f7Z4c/6Fr/8I8D/APLTm9hiv+f6/wDBlT/Iy9T/AOCGn/BWH45S6R4E/ah/4KF6V4r+D0+qxanr1rqfxv8A2kvjrLpt3YWl5/Zmr6P8NfiH4d8F+F9b1W3upRbRSXni3QJbO1u7u5t72R0WyuxcQZPh+aphMtcK9rRaw+Gw902lyzq0ZVKkE1qrQk20k12r6vXlpUq3j1tOUvwcV+DV182fvV+wP/wTK/Zt/wCCfXhaSD4X6LP4o+Keu6PBpfjz42eL47W48b+JovtEV/e6TpKwp9i8FeDZNSjtp4PCmgBFuo9N0OXxVqni3W9HttdPz2Y5risym/bS5KMZ3pUIXjTg7JKXR1Ku655aRXNyKEZOL6aVGNJaat7zl8T+fReX33P0MrgNAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAdx6E5GT3ycAZPtgAduAPWpcV72i11etrtJK7fokuqsl1AbVAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAPIUqQQDkYIPIIP3gV7Af59wBlABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAlxcQWsMtzdTw21vAjSTXFw6QwwxqMtJLLIyrGijlmchAvLHNTGLlaKi3J3ioxvd27JNOW/V97a7hFY39hqdrDfabeWuoWVwGeC8sriG7tZ1V2jZobi3aSKQK6MrFHYB1ZSOCAShKN4yi4zXxRmn7vW7Tu4+71T676aBNVAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAoBP6/oM0XS6/59tvUDz+w+K3wx1X4gat8KdM+IPg3UPiXoOlW2t634DsvEelXXizSdKvHljt73UNCgun1G1ikaFiRNbq8cbwTSKkNzbSS7zw2Ip0YYidCrCjUScKkoOMZRkk1Nc1m6bTXLUtySd1GTkmkk1K9pRfK7Ss07NWunbZq6unqjvyMVgmnt/XX8hhQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQB8O/t9ft5/CX9gf4K3/xK8fy2uu+ML91t/hr8L4tah0rWfHmp219py3splBkubHwvo0N2s3iHUkj80QE2tnHPNI5j+r4W4blnNf6xiZwo5fRnGNSU+Z+1mpRdWioKUJQXsW7VozXs5zpzh7SUJqn4+bZmsHH2VJOeKnG8Yx+xo+SbdpL41H3HFqcYyUuWLUn+Gvw9/ZZ/4KLf8FfbeT4//tK/HfxR+y78BfFHiC7vfh98E/COnXun2954Fuo45LDUNO0H7Vp8gt7tBCf7U8RTW+rXKhBG8qxOY/o854kyLBzlSy3KcucqkU6io4PDU4q3wRqOFKPM/fbilGbindpOa5+bBRzDF4dSdapSTaipyqVHNxT5ZuKu3Jq27lG705rqUj47+Lmi/tW/8EFv2i/hfr3gH4x658cv2evipqOtzXWjeJNSvvI8Yab4S1Y2njnwxrnh2XUJNP0nx14X0p4tR0nW9ODpqCXA2XiXQmjiMRXy/ijKquKo5Rl+XV6U3TqSwmGwtCanFXTU6NOM+WzaXOlKSi70+TR92XU2swjg6mKrT51Nwc5VZRf7yUH8ejlFxfN70oxly8rbuj+0L4cePfDvxS8AeCPiX4Qu1v8Awr8QfCfh/wAZeH7tSrGbR/EmlWusWDSKu4JMLa7jjniJ3QzLJE4DowH5hUhKEqlOS5Zwk4t/Ds/i72bu13V+p6jTTa/r+tzrqYgoAKACgAoAKAPmj9qn9rz4E/sZfDy1+Jvx58VTeHdB1HWIvDuiWOmWNxrfiLxBrE9vcXg0/Q/D9kftupSxW9rJLcSonk2itEs00T3UKya0cPVr8/s1pGN5Sd1GPM9FdX996tLqoyatZk1akaUead10SVr/AHNo9L+DHxk+HX7QPwv8G/GP4T+IoPFHw/8AHej2+ueG9agjlg+0WkxaN0ntpkSa1uraeOW3uIZFyJIy0byxNDLJnUpTpzcZpKS30smraNPVyi+uvSzs4yTcKkakeeDuvxT7NdH/AMOtGr+mUhhQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAHxb+3T+3b8H/wBgL4Uad8U/i5DrGrr4i8Tab4P8IeEfC0dtdeJvE+uXglnuks7W4khjisNJsIftmo35MsdqJII5o4/Pjkf08pyfE5tVqU6DjCGHpe0qzlzPlb0hFRVnO7T6qKjGTbuoxly4vFrCqC5HUnVdqcIu1+VXm5Nq0YxTjb4pSlJJRSTkvePgJ8Wovjv8HPh78Yrbwj4m8C2fxF8OW3inTfC/jG1Ww8S6ZpOpNJJpLarZqcW02o6d9l1KOIklILyIZbh28mVouUf5ZOz6S1tzXal39dvRdJ61VjCgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgCbB+b2+Y+y5Iwevcge7HvipabT5U5WV3q9E2ldp7Ru0umrUftD/Xb8yGqEFABQAUAFABQAUAFAC4JGffHvn6f596L2/z6f8D56DDaf8/j36dqV/600vbR676/1pcF2nj37846Z647d/8A6xo5ulrPs2rv8en/AAwf19whGDjj8KYGD4q0zVtb8KeJtG0HWpfDeuavoGs6Xo3iG3iSe40HVdQ064tdP1qCBwUmm0u7kgv4o5Pkd7dUIIY1VOUYVqU5x54RnCU42TUoxnFtNN6pq8X0tJ3cVqTJNwmou0pRlGL1Vm1ZO61Vm91qt1qfgB/wTX/4I/fHT9k/9qa+/aV+Nfxo8K+LLzT9M+JHh6z03wzHr2ra546/4S+7iW38S+M/FHiEQXso+ztc6jb6YVkGmX+yzgto7XbKn0OaZ8sxwkcMqLh7PkhGWitGDU+i1d0l2s27u9nzYOlOjCpCorN1ZNNSUrx5YJP0fK7Xs7WbSvZf0PY3cj8vwyePQf5ya+bXuqzt5WX3erdrtL7jr/INp9QPx6/lnH1OBii68/ueml/1Wm/4gGwnpz+f59OAffFLmWl01fW7tb777+lwt/XT+v0DaehwPqf1+lPmXn92/ku77d+gg2n27fX8R1GOn1o5t9HdX6b27dHuAm04z/n/AD/nuKHJLvfXTS+lvPs727DDae+OTjuf5A/l15HFF9bWd/ltprq9tbadUwAjH+f8/X6U/wCv6/r8BCUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAHnfxd+K/g74I/DDx18XPH+ox6N4P+H/AIc1jxJrV1OyRk2+k28s0drahyBJd6lOkVnp8YBM9xcwKoO/FduU5dVzfMMLgMMpOriaihzRSk4Q056s71IXVNRcmueMpJOMFOTjGXNjcXTwWFq4qrZRpp2i24ucr2jCLUZO83s+VpL3pcsVKS/kT/Yl8K+LP+Cz/wDwUZ8VftSfH3w5cP8AAn4If2HqmmeDJXvW8N2CaNIB8KPhkgdZtPmmu2gHjfxiiLCdW02B9Iu5CSuP0DiPFrhvCrJcDXqupCKgqsqkqlRSk7zqTbknKWrsklCMnGKpxpxUF4GBwX1+u8diKcYRb/hwjyJyXS2jttzN6vdycvef9j2pzSaNoWo3OlaW1/NpekXk+m6JYrHC15NYWUkljpVooAihNzJFFZwYXZDvX5CoK1+bYaFOtXo061ZUaNSpCFWs0nGEZuMXUk5SiuWN/ebkrJNu9rP6WX7unL2cE+SD5IRTS91e7GKS8kkkvJH8O/jD4Q/8FBf+C0/7TM2qeNPA118O/AvgLxHrPgnf4k8O674Y8C/BLwkNVmtdT0y1mnkivPGHj2+sIb65uHt0lhuFksFLMkMIX9TqYrI+HcreAw84VeZOcoxUJVK01ZXekVJu0Yp6QhDliuSnFKPzWBeOlnX1yUHOEVGCdn7OjBXfKtbRirtxWjk+ZvmnJt/2y/DDwBoXwn+HHgH4YeGFaPw58OvBvhnwRoYcKJm0zwvo1lotnLcFAFe5mt7JZrmTnzbh5HYsWyfyqtUdapUqNWdScpWb5uWMm2op6c0UkorRaJaLY+p/E7SeaGCGWe4lSCGJPMlmldYoo1UZd5JHKxoijksxwM5LdqiMZTklGPNKUmoxinOTcrcqildt91F2tqIWKWKZBJDJHLG2QskTrIjbWwxDxkqdrKVODwwIPINN3Ts007P3WrPTzvb5AFAHnvxB+LXw0+FunWmqfEj4heCvh5bXU0FvZyeN/FOg+F7O7u7vfb2tnJeapcbEiNyw825ti6QGJpXka3jmWTalha9bmdKjUqwjdylTjKSvG0nytqKlPl+Cm2pS92KV2uV3W3XTTqvlfyflo/l2Oi65oviXSrLXfDmsaXr2ialF5+naxouoWmq6VfQBmjaWy1CymntbmISI6+ZbzSJvRkzvQgYVKdSjOVOrTnRqLl5qVSEoVI3s05JpS95NNXTbTUvhZJo0xnzh+0x+yJ+z7+194a8O+E/2gfAFp470jwpro8R+G0mv9S0y60jVzF9mmuLS70u7tJwtzbBbe5hlLwzw/LInetaGKrYZVFTfuVFHnjNJr93flbaakn709Ytp8ybTskZ1qUaySk5KzunF2f6r716HsPw++Hvgj4UeDdB+Hvw38L6R4M8E+GLP7BoHhrQ7VbPS9MtDLJOYbaBScBpp5ZpHkZ5JZZHkldnZs5VKk6s3UqTvLS7svsxd9Eklfuoq6t1ZpCKglGKsl0/4fXbqddQAUAFABQB5FcftC/AK08TR+DLr44fCC38YStsi8K3HxM8GQ+JZW/ux6FJra6o7deEtT/u12/2dmH/QBjf/AAlr/wDysj2tL/n7T/8ABkP8zm/jT+1n+zR+zr5UPxw+OHw3+Gt5Pt8jSvE3iawtdckDoJImj0OKSfWZEkRg0TrYlJASFZulTRy7H14upSwtaUE2ruPs4tqUozUXPlUpRlGUWoylaS97XUU69KDUZTXM+ivJ9Hryp2unpe11tc7z4WfGL4VfG/wvbeM/hD8QPCvxD8M3SRuuq+FdYs9Uhi87cYkvIoJDc6dNKsbtFb31vbTvEvmiMxkMcK+Gr4aXLXoyg3ez5bxlaN3yTScJ2UldqTV5NOz901TTV18J6LWYjL13xDoHhfTptY8Ta3o/h3SLd445tU13U7LSNOheZtkSS31/Pb20byuQkaySguxKqGPFKNOU37kZSur2inJ8qvfS0vdd1pp8mgLljqFhqtla6lpd7aalp17DHcWV/YXMN5ZXdvIN0c9rdW7yQTQy5yksUjow5ViOqs4O0k4uKfMmmm+Z3jo7y2vLyv6gfNX7Vv7Zf7On7FngKD4h/tD/ABE03wVpGo30el6BpKK+qeKfEuqPyLLQPDll5mpXzBcvJcmGGxjKvHJdrMUjfvwGV47MZJYempxvKLqylywjyxjK2l5c0uaKVovXl7NrKriKVF2nJqVk1FRbbTbV1ZW6O+unzV/hT9mL/guT+w/+1L8W9L+CvhnWPHXgDxt4ov2s/BD/ABM8KDw9oXjOTdEbbTtJ1dNRnij13UUMq2mmXSIrbEaG6umYwD0Mbw3jsBh44mbhOlZuUVzKSlfWME4uMow0lfmUmrpRTspZ4fFQxE/ZwTVS/wAO910tbq90rejZ+xFeEdJ8i/tt/tq/CL9g/wCC0nxp+Lsl/e6fceJdD8I+HvC2gLHc+J/E2ua5PII7fSbAkvNBYW0E13qNykcsdqgt1lC/aVevVyvJcRmtHH4ijOMKGW04VsU5czmoVPaRhywtaSlOk1PnnC17rmk+UidRQlCLTbm3bayUXG9+v2tEk+bbQ+pPDmu2fijw9oPiXTkuY9P8RaNpeu2Md5B9nvY7TVbGC/tUu7fL+RcrBOizwb5PKkDrubbk+Tyxu12XJ127f8Hc2nFwnKDabhKUW46puLa0bSdnbS6WnQ2HljiR2maONUVpXkkfYsccYJkZizbFjUENI7gbcA7xuyxFOpKFKnHnnUlH2UYxcqjd+XljG/vXlOKtGLnzcqjbVSiTUU5Skowim220opLVybeyilvdJJu+yt/Cj/wXY/av+H3x0/4KB/Dz4XeItZvfEP7O37N+k6FZeK38EXba8dY1TxXPZeJPiQdBt0CaBca1eeGotK8KxzQa9bXM0dhc2UyFfNQ/ruWZLDJeFsJmirVaea4ytUqVcJzODnTTcaNOaUYycY01FzhVTca1SpZpWS+fxGJVbGL2cv4a5I1Ivs3dprmvzSe8bXSju7n7n/sWf8FT/jv+2f8AF7wf4O+AX7DfiDwh+yxpE1tpHij4x+O9fmsU8P8AhywtI7fTx4fgtbGPQNWuZbe2c2Vja6zeziGJY0iupF3P+fZxkkcmqewq4l4iqovW9uZLRN8zqSk9Fz81Tdtyacme5Tre02i1+K76tdfw3s2fu7XiGgUAfjD/AMFJP+C0fwK/YTvbv4W+FrOD4zftEohNz4I0rUEi8LeCossGu/HHie1eWCK8R1+XwxpjvrVyrb91vgK/1OT8JY3M4qrL91QbfIo8sqlWMbKNSlJOUfZz1cKnvOpCKnSUqdSFVeHj89w2Cbpx9+aUW73ioN7xknyy54qylDSUXK0rSjKJ8j+Bf+DjjwR4m+Enh7WLT9lH40fET40Q6BqGu/EPwd8MbGZ/APhOy07VPsUt2njLWLWfVZE+yk3htX8MtOioQJWD/upq8L1Y5jLBQxOis05Q55Ju902pQSWias9m00+W8uyjj/arSClLW9pcsbdLaSkn0cXd7O+tl+mX/BOX/gpt8H/+CjXhDxbqfgnQdX+H3jz4f6hBZeM/h1r+padrd1ZW15FFJYa9omv6SkVhr/h6+kkktYdRht7RvtcEsMlqnyMfIzbK6mU4t4Ss+eSi3zKLS31jy3kla65b6u2i91X74tyveLi/VO/3f1+n6PX19Y6XY3mqape2em6ZptvPfajqOo3VvY2FlZW8TTXFze3l1JFb21vBGpklmlljRSo+bBwfPp0a+In7OhTlVqSTahTTnKSim3aKjLdaqKd27JXbaaqVIUo89ScYQTScpNKOrsrt7K7u3pa127Jn4HfEL/gsR8V/jh8SvGPwS/4Jjfsyaz+03rvg+2a51v4wazNLpnw5stPN0dO/tXR9HuJtC1PWLG7umV9C1l9STT7wqBe2EcTkV9BSyOGHalmdX2UVy3pw93bo5NJtNO7UVFxfwy6rgoZjTxMpRhejFXUalW3NJqK2he0bO7Sk3dJaJtpbH7Nn/BV/46eH/j74I/ZI/wCCj37N5/Zv+LnxMvLax+GPxF0OSS8+F/jjUNUUHSNJXUoNa8TaHFdarIFGjPZeJn+0o0huYIz5YR4zJb4RYnA05zUXLnguabacYRiox5m+SPLKVnzSk6j96yjGPZhJ/Wq+OhConHDJckLRbaUpNq61cpRaS+JWhHRNzm/ffDH/AAVy+E3jv/goVd/8E/Ph/wDDLxb4y1zQdS1nRPEvxX0XWtIn0LS9Z8L2QvPGqP4fYLPLoHhI7LCXXI9TVNQ1SWWCCJovKZLx/DdTLsDg8Vj5zw0sQp1J0/YudVaK0FevTi7QVlDli/aSmpVXFwVPhwmYrF4nGUaUb/V0lTblaE2tLu1NyjzSesvfSgo2gpqXtP1ir5s9M+RP26P2t/An7Fv7N3xC+NfjLVba01HTtGutK8BaKzwPqXijx9qsLWHhnSdL0+Vv9OKalPb32oJtMcWmW11JNhNob2eHsplm2ZUqUqbqYaD9piZK8YxpqMnGMpxlCSdWaUIqEvaJJzin7OTXHj8T9Ww8pRmo1ZWjSWjbldczs1JWjG7bat8KveSv8x/8EYtI+KZ/YW8D/EX4v/ELW/H/AIu+Ofibxb8ZgdW1JtUtfCmmeMdRBsfCOg3M01xOui6T9il+xwyTARpNsSCBg/mRnsY08dOgoqPsYxhKykunPaT2atLmj5yer+FdylF0MMkvejSTnJq0pSbb95/atHls99Wm3bT9V68kkKACgD+eD/gr3/wUg+NHwn+OfwD/AGNP2OfF1joXx38X+LvAepeOdXOmaZrselQeOdYh0n4deDZ7fU7aa2afxDI1zq/iG12yLZaIkDXyrmRF+2yfI/Y5VXzXHUKVSlV5IYeM40qq9nytyq05RqVIRc5TcI2cKkPY32nFR4sNUjmOPhhadWdKFJS9rNe1p++5tKnKNSEJXhGKlJNct6nLd8rb/oK8OQa3a+HtBtfE1/a6r4jttG0q38QapY24s7HUdbhsYI9Vv7O0wPsltdX6zXEFvgeRDIkO0bQtfDtxblKCajKTcU9+VPRN662uldv17dyvZX1dld+fU/Bn/gqZ/wAFEP2mvgn+1x+zJ+yX+x1rWgWvxE8ftoFx47t9d8O2PibSb9viV4jXwx4I0WYlJ5rY6bZ6d4g8S67a4VTp0mnyXEYMaY/RMkyung+GcXnNWEZvEzq0L+0cqbwseWLpzpxnKjKTnCpeUoOpGPNSl9uL83CYiOPzjFZdb3cJQpv3oqLjVknUlVjOUVOK5HBJqdmoKcHqpH78232gW8AvPJa7EMX2lrZXSBp9i+cYElZ5VhMpJiWR2dU2hizA5/O5deS9rytz8t78y5b293m9NObfU9E/k7/4LQ/8Fifiz8J/jjD+zx+yH8QG8Gy/B26htfjb470e10fVbjUfHXiPTIr7TPhm8OvQT2ulrotnbzpeara7Xj1HVV8xxLpyiL9m4O4Ly/HZRHF5hKi6uI5asHUhGThS5YypxSnUqR1vKbnBU52lGNSN6Z83icxqSx06MJzhCk5U2ozSTknaUnbke6UUpOdmpOLtLXV/Za/bO/4LKf8ABSH4J+APDf7P2hfDj4K+F9AstM8M/GH9sjxVb2l3feNPEM9vFNqjfDPw3dWbWWzT9N8mO41rw9aeLTaanNHJLcRTXStL87nmD4eyLGOmqMMVV5p1YU5r2kIOUI03GMEuSVObj7SEcQ5xpybdD2S5mvQTxdWq4RlJU4csZyuuZ+82pc17XSvd00pSSSnzaHSfAL9rP9vP9kD/AIKcfDL9gv8Aag/aE0T9q3wb8XNF8PX9j4kg0TSLLVtCHjmy1i88N39tq9paDUX+w3ujanJqNhe7VOlTWSZVEt5kWbYTAYzI1mlDLsNhZQjL36FGlRlC04ucakaCVOU06fL7/NOlepBOMnOLzyapVrVsyhWqupKhKEqb9pOcOSUeeM6XO9adSDTjJe7JOM1dcrP6ja/Pj2AoAKAFCk9P14/HPTv9aG7f18/0A+LP28P23Phb+wr8BvFHxV8datpt14pNlcWPw5+H0d5C/iTxp4ruopIdKtbTS42a8j0eO72PqmszpbaZbQxvE9/HOyhfpeHuGcXn1WM42pYKnW5K1Zyi5zdNQqTo0oKafNKNSmuapyxUZynH2kqcoLycyznDZdKOHm5SxNSHPTgo+6oycoKc5vTlbhPSPM24pS5VOMn/AD2fAL/gsJ/wVb/a/wDDGr/Df9nj9mPwJ4k+J2marHJrvxc0fTbpvC3gnSr+CF9M0/WrXxVfaR4XkvvPt76O9VRNNFG0FwjvFeWBk+xzDhHh3LcPLEYrGwouEnFUatetafuqUXCXM3Ofu1UoJqT5G+R2jJceHzLFYzFRpUZONP2MZzl7Lms1KSbTcNnp5qUbaNtP6d/ZS/4KP/t0/Cz9uTRP2Lf+CkmkeBLHXfH1j4ftvCur+DdP0CEWWu+LIGufB90t54ZlXS73QPFEkkOkwZa6vdOvbbUXvWijjhU/O5tkWVxyynmOWycFKlzwjNYqPtIRqTvO1eDmlJR/dXhCElGE1anU5n9Bl3NiqeNhKUalbCSu5RnTjyxjGLnBxVuZ2le0U2p+47OM4r+ktlPXPp1PPYDJxjn+h5r4q9tLPutLKy0sr/L709tr/r+tD8Uf+CwH/BTHxr+wZY/B7wn8JLHw7qXxD+JMviDxLrcmvaeusxaN8P8AwuLe1eS1so7hXh1bX9eu4bHSpriIQubC7hVmEsiV9tw1w5hsxweMzHHTp/V6anQpU1WtJzgo1KkpxptTptXpqmlOM5Jzc4eznSlPyMdiqscRRw9CUoTinVqN03acZJwhGLl7k4u83P3XaUYOMuaMkv0v/ZW8QfF3xh+zl8F/Fnx4h0G3+Lvif4f6B4i8cW/hq1ex0aDVdbtBqkUFtZySzG1mh0+6s47+BX8qLUVukhCRCNB8fiPZRxFeNKMoU1VnGCfPJ8sHyrWV5O6V1q3bVu9z06XM6cXN3la8n7qvfb4bK1tvLfU9y1HUdM0XTNR1nW9SsdG0bR7C91bV9X1O4W107S9L021lvdQ1G+uH4htbGzgmubiQqxSKNmClgFM0KNXE4ijh6Kj7SvUhSgpSirylKyTbdt2o73bfLFOUoirVY0KNStO/JShKpNxi2+WK5np2ST6pLVtpK6/ks8Z/8HIHjDw78evjCvgf4SaD8TvgWTd+G/glpvn3egeJ7jU9KuHsLfxnr94I21LUdF8XTCa/0bTLDS3e5sLSGXT5Xj1C3839TxnAWVYHB4WdfMKsq0qEa1e0KqcKkvaKVNc1JxkoWUqcoq7tFS5o86l89hM5rYlVKl0l7ZxjBUpe7CCpy7czck7SfM177cbWjbI0P4if8HDf7W4/4Wb4V0TWvgj4Yt4W1Lw/oV/Z6D8MtL1zSo0kv9Iawg14rrWvW17YSxEza3aaQZ22WMjJIkcNcMKfCsIU8JS+rVa1WrCkpVIVKtVVZyjTjFyrwlJJe5ytyVOC3tGMktXWxqpus1W5Ep1JNJxgqUYylOdoqMHLSUmk3OU3ZNyaR+sv/BH/AP4KJeOv23fAnxL8H/GzStB0z40/BTW9O0rW9Q8OrNb2PjDRb63MSa7Jp3kC10nUbPVra8s7yC3lFrdW1xp09pDuS8lb5jiLJf7LrQlTjanVi4yg3FxpztdRi1Ntxmk3bVQcZaxTUD36Sc8Lh8Smp060Lxnpq1q48t+ZaNO8kr373P2RdkjUvLLDBHGu6Sa5mit4IY1BLyzXE7Rw28EajfLNM8ccMYMkjogZq+epU6lWrToUoqVWtONKnFW5pzqSUKercYq8pWbk0r+oTlGnCdSbUYU4ynOWrtCKcpSslfRJva/bVn89v7XX/BZvxrqXxal/ZZ/4Jr/CR/2mvi7E7w+IfiDp1nf674Z8OfZr++sb59E0JF0sarbWc9n5NzrurXcWhyS+ZHZTSS206r+l4fgfCYLC08XneMpKcv3joU6zVNQTrKN3HkrSjJckrKMHGpC3NJSnGXztTOZzrQhRTp05xjKEpwi5tStrZOUYuMoTSTbvFt8qfIzwnUP+Cif/AAVw/Yo8SeCfiH/wUK+CHhOX9m3xd4h0bw74g17QND07S7z4eQ6vc4jupdS8P3kv2XVY1ElzNo+vW1yJbaZJLFriWQiKMZw1kWOwk6uT4v8A2nDKSlhFLEVbwjHn9so1m1aU6kouEZXvTbWsuZ+thKvtFG9RTqVZ2SSpRUm4xSu427NKU5L4Wn8KR/TR4W8VeHvHXhnw9408Jataa94X8WaLpviLw9rVg7PZaro2sWkV/pt/bM6o/lXVpPFKqyJHLHu8uWOORXRfzmdOdKcqdSLhUg7Si0007K1773VpJ7OLTTas33yi4ycZKzi2mt9U7PVb/j6m9UkhQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQB/M//wAHKX7Q0nhT4G/CL9nLS7m5hu/in4wPj7xZBbTSwNfeCPh0pkbTZGidVnt9R1u9tUmtpw8MrwQMyMyLj9J8OqVPDVsdnFSMZ/V4ewoSerpzdqlSS5m0m17NJxXMrTimlNp/P5zzYqvhsBa8GniKkWk1NtypU1tf3bVLq6jL2ivqk1+nH/BJP9mKz/Zd/Ye+EHhqe3tT408faLB8VfHupxWsMFzf6546hi1qztp3CJOY9H0O507TYLS4dhZNFcxRJErtHXwmbYqrjMxxeIq1qtZTr1HGVSpObhFWjyJzbainG7Ssr3lo1d/QRjGMVGKUYraMUkl6JWS/pn6UVwgFAHz5+1H+1B8KP2Qvg94l+Nfxh1yHSfDPh223w2MMsP8AbXiG9LKU0fw9YyOsmp6rMhZ4bWLltuHZVbcfVyLJq+e5hSwNCTpRqXdXEyh7WFGPLJxnOHPC6qNKEYqSerlZRptrlxmLhg6LqSXPJtKFNO0pu6UmrRlZRi3KTcbaJXvKN/5NR40/4KR/8Fy/GHjUeBPE93+z5+y54S1XSYtQ0eXxReeF/Btok7ta2kHiC/0mez8Q+KvEV9ZO97f2KXVzp/h53Z9sAPH6Iq+U8IZhl2GweAwOcVanM6k8XhMNiZ1Lu7u50eZ2la2nLokktLfP0auYTqvF4uVSlSvdQjKcaMWlyvljzNR0urvWT3euvV/8EKviH8W/hX+398Yf2Rj8XL34k/DHS/DvxKsdUki1bVdS8IXPi34Z6xpVhb6/4V0XX7y71LQrGKfUNS0qW7tZ4E17KvK8vkqyeLxthcJhaWAVLC0KMpRbk6NKnQk9r3cEtevvprms7XSt7+WYiWPw0sXOPItEqcfd3lFNLRra9trdtkfvh/wU3/4KH+Gv+CfXwb0jXrPS0+Ivxz8fatfaP8I/hyb0wQSXcSNdXviTxfbWAW6bwdodhLJawIltNdatqMMMUJa6gklPmZBw99eweIzupKn7DLq9GKwiTm8TUhGnUqOqql6UqE7qLhyyU5VKmlGNNe05MfjP9op4CheNerTcnKM5rkhUjOkpJRmn7Tm99SmnGm+WcYNtOH4TfF7/AIJCfFz4w/BD40ft3/8ABQH9p++8OfFe5+FWsfFfTvDel6HeeJdA+HVvb6Tc+IbHwhq0upmaTSYLKe6sdIg0zw0RDa26iCKCNLGWGL3MJxPhMdXoYCnk2Do+1qKHPQw+Dw8acftSSUI35Iqc5RVm+VQjeUomUMPicBCrWxGKqTUItv2k6tR3XuKLk7pNycLXel23ZRbXq/8AwbN+KfjJf6P8evCt9qWr3fwC8NWmhXeg6VfX73Wk+E/iRrdyk+p6fpKuRaWh1XR7e41G70zQ0j0rR4ItPtSiGaBa8fjR4N5nL6rKM1ZpuKWkbOy06XbaWqvfV3R7eU1oTyGtQq8tXG089xEVWnaeJlh40pJUlUknV9lGTh+7+BSask2m/wB+f27/ANp7Sv2Qf2V/i98cL6S2Oq+G/DM1v4J024uYIp/EnjPVt1joulabD5y3NxNbzyJqF4yR+Rb2ULStI3KV5fD2TVs2xlOpGmqmFw84zxMrRlFJRlOlF86ca0a0oOLhHmbg5Obhem3x43EKlTlTUuWrVg1T3b10lJcrTi4LVN2963LezS/Mv/ghR4T/AGk/E/wn8Y/tL/Hr4ufEPxLpXxTvptD8C/D3xHrGo3/h22sfD+q/aL74haPFdTvHDb69qTXWnaKlviOPR7ae1dFtxCj9HFGLwWIx8lg8Nh8MvtOjRpUk01rG0I2b167aNXd0tcHCdHCwo1bzqqScqk25Tas1bmfM2nfmtffbR3P3vr5s3CgAoA4j4ofErwj8Hfh54x+KXj2+l0vwb4E0C/8AEniLUILK71K4t9M06EyztBYWMU93dTPhY4YIEJaR13sse6Rao4eeJrUqELc9R2Sb5YJK7bb7Rje9k5NJKK5pJSUpKEXKXT/hkvm9PzP5vLnxb/wUW/4LP3ssPwn1XUv2KP2DbbV9V0HUfF97Hq2n/GH4uaeir+/XTQbFmgQqiGzt2tND80p5829lavs4f2Pw60qtOjmVecVLlq0adbRJxfslUUo0abfM/enztLldSbjFQ8uosfXklC9CKT153TXXWTjdyk7W0ioxdnypSZ+Of/BWD9iP4KfsV/F39nL9nf8AZjvPiF45+PXi7SJNS8b+LfGGu3msatrt54k1CDRPCWn2djo0lt/Y2oXaadeXkJRVLSvJPE7NIzn7Dh/N6kcu/tvNKdOWFlUmoRn+9hy05KnLm5rRcvaQq2aiko8sbNpyl5VaMq+aLLaFWpzxjGU2qjhrUjzp2jqlySgtZP3k3Z3jE/e79jz/AIIB/BDwdoz+Pf23NWvv2ovjV4x0bTH8WaZ4lvr2fwP4X1MwO95pmlSvez6z4jaylaOO31bVNRHlPFMsEdxA8dwfjs54wr4jMKlbLKNPD4ZO0YThanNK2saEOWEU/eUU4yfK02oT92HvvB06lOKlH2crK/suWEr26yit11s7XWl0fJn/AARi1Lw18P8A/gqj+3b8FvgRpl1afs7NpvjK68O6Vbf2/JpmhHwb8QNH0TSL2R9SuJreOWWO8utLt3CIfLkWBNo2oK4q/cYPLMPWhSjieSNStKjH3XVUHGdm0pyjeUuRy97l5b6tl4GSnhOZSnJe09x1WnU5LSsm9dbWulp20Z/WXXxJ0H4Kf8FYo/Ev7fVvYf8ABO39mbQdc8V+OrP4g+C/GPxw+Kv25tK+E/wJ8N6FHrjzaP4ouHjWHxn4v8QC7t44vCsJvoNK+zW0k6DUnkt7b6nIvqmCweJx+Pp4aUZyjToOaVWrPRua5HzKMU1GUOSMZTkqsqseSNKS8rEVp1MXSo4edRuEZe1jFSjTT5o2u1a9tVNyvBe4oNSc0/tbxV4w+Hn/AASf/wCCden3fiLWLrxfov7Ovws03w5or3TiDUfiF40lSSLSdKtEDMtr/wAJF4lvGW3t0fytM0sssZ8q0Fc2VZZHiPPY4anL6phKlSVSpVah/s+DpKEVUceZR55Pkp+65qE6vNapCLvtmGLlgMFVxFOn7apGypU25WnOTveTim+WK5pu7jzKPIpqUos/N3/gmp+xHrH7UP8AaX/BTX/gpHFo/wAT/iH8RrCXxf8ABvwZ4+8+bwB8F/hpIzXej+JW0K+nXSvDyy2kDQx+H7q22iDTnVYdl8Q3o4niXCSksoyTLK1HERi0p4SLpVLP7Tq0+Wbct3KUm5Su2+ZnmRwn1Ki6uOxEq9WUk3Oq5Tba1knzXSSjokrRjF2iklFL88v2l/Efwm/4Kaf8FY/2avAf7D/hDQLbQPg1e6XN8UPi94Z8OR+GPDviKz8BeOI/Eer+LLVtEsrYXemaRpukv8OdF1q/WXWbw3809ozJOyt7GbYnFZRw5gMuzenKpisdFuFatetiGop35alTmkvdWvvdG5PdvHhutKpnWPx95Tw0dKdGTcqSbWjjTb9nBOMrWjFR91tI/sz1zXNH8M6NqfiHxBqVlo2h6LZXOp6tquozxWtjp+n2cLXF1dXVzKypFDDEjM7MfugAZJAP51hMJicfiqOEwlGeIxOImqdGhTXvTm9/iUeWKTcpzl7kIKU5yUY3PpqlSFGnOrVkoU4RcpSeyS8lq29kkm5NpJNtI/hg/a6+Lf7Sn/BWX9pn4ofHn9mXwpceP/2ff2HtPsPGnw68H6tpkiaZ4m0fSNagtde1IrcedYap4h+Jq6bqWrQaIBNNp3w40t7vaLy+2v8Ar2JqYPIOHcHw1SdH+08xaWPr0eWE8S6spSjRq1Y0qdStRjOfs6MKyvyqEOXmdn5WX1+bFVM0xcZfUopuNKorxjRh8LlTbnFJRXPVadlKUpaQR/XP+wR+194I/bf/AGafA3xy8FWcOiG8gl8O+LvCUa7G8I+NNA22WvaHHG5WdNOguAr6V50SSfYniRy8ivt/H61Cvhqjo148lRW15Wrye7167+vm9D6HF0Pq9aSjJ1KUm3SqtfxI9XfZtXSltrrZKSR+WP8AwW5/4KPeHPhr8MviV+xZ8GYbzxp8ffHXw11jVfiXqOjaldaTonwE+FZhV73xh4u8RWEsT2mqaqQNO0nRYJluriKaYyqQ4jH3XBXDUsfiaWNxFWph6dNuVC3uznJRvGrdtShGOro+7GUpKNRSUF+8+SzrMbKWAox5pzUXVqJv3LS5uSCVrz91czu4xV42cm+T84v+Dd//AIJyfCT42+CviP8AtQfHz4e6D8SPC2meNLDwZ8HdH8X2ceoafJ4j8Kx/2t4i8e3dil1Cby+2a3peji18R2eq2n21NWkiYXMEmL4xzmvDFUsHha06TopTvTkk4Q1UY091FTer5XFppPZ6+xhsLQjg6dKdGn7a951oxUK/LZWXtYWmlfXSSaa6XP7K9M0vTNGsLXStH02x0nS7GIW9lpumWlvp9hZwLkrDbWdrHHBbxZORHGiICSwHJr4GtXq4irKriK1WvXnJSnVrVJ1a02rRTdSbk5NRXKl7yVktkdaUUrRSS7JWX3RLNIDkviH4H0r4l+BvFnw/1y917TdG8YaDqPh3UdR8L63feG/EVnaapbNbS3Wi6/pjx32lalArl7W9tnDQyohO9cqzo1Z0KsasLOUG2uZOyvFrWKcXs1onGSb0erFOEakXCaU4tq6aTTs01dNNPVdUz+Cub9lj4R/tgf8ABWXRv2T/ANnbwve6P+z38M/EM3gfxR4in1LVta8X+JvC3wluBqPxe+J+v+K/Fc895rmt6vr5XwtbXOp3El9ZW8iabocixuIa/ZMVj62U8Pe8508eqabqQlONdTna0FVpuU48s2ouabil71lFHxOBy6GPxTx2IhTlguaUIU6sY+ylF3s+Wa5b1Fq0kpLaTv7z/rJ/a/8AGn7OP/BMD9gz4xa78OvAPhP4a6NH4N1fwh4H8JeEtH022l8U+PfE9he6T4Yj1IXIe78RvbX17/aWpXesS6pcf2faTxzOUZSPz7JFjs4zejiK+Lqz+r1aOKrV6jnO/sa1OaorlcFCVSVOLT0+GVVQnKFn72Z16OV4J+wpR9rV5qdGMJRhUUnCa9rzPmlL2XNu7u84w5o86PzA/wCDZ79mXW/BXwX+L/7Ufi2xa3vvjZq+jeCfA0pXyBN4J+HU2pw6xqcVrgFbfX/Ft3d3dvMoVJYLGDBl2ZXo43xeGx2eVMThal6NSHOqcU4wScrRlFRSjzOUbae89brVN+hg6dejQVLEJupHlvOb5pystLyu5WXm7N9Dyf8A4LW/tg/E39pv9ov4ff8ABLX9lfxPcwHxB4v0bwr8bbq2urnQ9N1Xx9rIW/0TwbrOsRv5o8NeENGz4n8UypGbOR2k0u5EqlS/0vDWD/sfJK+OzCEaNTF1IVaUnZ1YUPZx9ipS5VKDk3Ukoqb92acuScpxXi14f2jmtKNOUqmHw8HSnTetKdRzfPKMG/eStCPPZXcdLxUZH9GX7G37Jnwy/Yt+B/hT4I/C7RdGtRodjb3XiTxOumWtpqnxF8W305uPFPjPxLqMEEdzqV1NcZn059TmuLlZsSI+4GSvh8TmEsfiOWrN1tXpVk5rXS9pX012d76Ws9vR9lhJ1nhqcYwqSsvciotcutra3veTcko6csdbXPyG/wCDlrSvDS/sP/DjxpdXT6b8U/B/7Qng26+G3iuyby/Fkmq3Gm6tJdjw/PF5c72Vm8ULpE9xGkbIjBQyg191wc/rX767lhbfwm37N3dr8jtDr27bfZ8rEzng+aWCnJ86XO4NxdTf4+VJytd/G5W6WvdeD/8ABt1+yJqeieCvid+2r8QZ7rVfEnxR1fXPA3gGTXYZ59Wj0jT9ZN/448ZrNeJIkb+MvEQWKDULOd7q9tLLUI71/JlTz/E44zz+1MwjSpyl7CjrCkpt0YXurQp35YPSTdlG61s3e3s4XLsPhK9Svh580asLabPWL5m76yVrbbPd63/qNmuILdGluJ4YIkjlmd5nSJI4oV3TSszuu2OJP3krk7I1w7kDmvh4Up1JxhTjKpOU4qMYpylKc58sIxhFSvKUmoxUUpSk0o6tndKUYJylKMYpNtyaSSSu227JJJNtvRJXZ/K34k0LT/8AguH/AMFH9R0ddQ1TV/2Bf2MLU22sT2D3Nlo/xP8AH2sR6/p1r/Y17+633mpX9pPdxXrxw3mleFtLmh3p/bRin/R1XjwhkdNpp51iJOc8NUs1GUkr8yUnFqlBRp3TjCclB3j7TmXjSprMpOWvslJqM4pc3s46rlUoxtKfxxcvh57NTjFo6H/gh98ZvGH7Pv7Tf7U//BLT4reK/wC2I/hL4k8W658D5tQkvJLibTdB8U6raeINBsDNJJEkUuiy2HiXT7RFjij0a03Q4QBH83ibBUngMszWlLneJpr2lRv3qkZxTjOo5fvJST5UlK0oqUrrSTfp4TEKrh40pW9rhpSpy2bSi+Vxb11jJacrcL8zW7b/AKhK+KNgoA8K/ag8W/FPwJ8APiv4w+Cem+ENU+KHhzwXrWs+Fbfxzq39j+FrWfT7bzrzWdXutjh7PQbH7Rq81tI0MV39kFs0uZljk7cpoUMXmWDw2Jc40a+Jp0JqPM1KVSSjGm3FOUI1JyUJShZ2bfPD448uPrVKGDxFaioudOnKpq17sIK9SaT0k6cbys9PKTtCX8f/APwRG+DPxA/bK/4KAeJ/2vPjPqFx4/PwlS4+I2v+PtSjaZfEvxh8UtcaV4Vnsb2NXW1NjYwaxren6dNIixaNHBHbqkKqlfqHiTi1lkMFkeXcv9nSpObrQ932yi9ny250lJX3Suk76KXj8OYephqEnUlzzkrSqSvOb5lreT1d7N3+7Sx/bTrGraXoGkavr+t39rpWjaDpWpa3rGp3sogtNP0vSLKfUdQvJ5DnbDbWdtNK2ASQmFyxAr8lwuHq4uvSwtCClWrTjTpQ56cFOpK3JT5pyilOUkqcE2lKTUVukvfq1YUac6tS6hBc03GMpuMbq8uWKcuWK96TSdopu1kfyW/8EoLW5/4KBf8ABUX9pH9vPxXYC/8AB3w0utVfwGtwk1/Y6fr2tXU3hP4cQWn2x3Wxm0z4d6RqOsQSW5MsV1d5UBbmdj+n8aVp5Hl2C4bpynFQopVE2vehBKPtKkYxUJVJLTmcVbmco2krng5Bh62Gr5jjqlNc+bqWIhV5W3SpynHmpwm7uMZRco8l9Yc2+rP6Pf20f2q/AX7FH7MnxS/aD8dXNvbweE9Eu7bwfYtHFM2t/EXW7a9g8IaZ9gb59Qt5NU36hqcGGieztLhrgPmNZPlOD8tw2aZvGljkp4OFN1q/NOhFU1TaUak41L1pUIt8s4UIy56sqFLE8tCdRv0cyqyo0IxpzdKdWbjGSjU+1d1FFxXJGpJXadSSko+0nTvOB/AF8ffhB4z1XW/2X/hZrttPc/tRftf3zftB/Ge+lmuFfVG+P/iPT9M+DXgu9soCZ9PvNF8L3+r/ABL1i1uT8un+IINPaMLahR+tQruGRZk4ScXHl5HFuModfcUfhfuvVNae6fMZVS+uZlbDWxEOb4WudaO65k9P5en8qfS3+ir8Jfht4R+Bfwl8D/DHwvYaP4e8J/DjwfpHh+3jsbaz0rTYrfRdOjj1DVbhYY7W3SfULqO61XVb+VElu7y5u7+8ZriaZ2/BcXXrY/F1K7lUqVa9aTpxblUm/aTfs6UV78paOMKdON7W5YvY+0gvZ04qTV4wXPK+jaiuaTk7N3abcpavd6n8gn7F3iPU/wBvH/gvZ44+OP2m/vfCHwx8QePfGfh67US3lvp/gr4faafht4CszdOdkMF5qt35gii8qESTTyRwlnKv9/xDXlgMgy3K4QjCP1dUqvs4Kiq0uX36tRQbUqk5tznzOU223Ko3dnjZBCq62b4yo5OWJq6RnNz5I1HaNJOWslShFQpuyShBKMUkj+0Urjr/AJxX5xd/yv74/wCZ7v3/AHL/ADEppvs1936Ni/r+tQoA5jxr/wAJr/wiWvf8K4/4Rb/hOjp8w8L/APCbf2t/wig1Y7fIOvjQSusHTvveaNPIuCQApGSaFyc8XUUuTXm5OXntrfl5tH/eT6PTW4ne3u25ul7289tfuP4H/wDgqH8Jfjt4l/bp8J/CH4ifHKT9pn9p7xVYeGtN8WTaDo5sfh34C1r4m3ttpnw/+Fvw68NlxPZaX4S8OGHxBrVzLAuqyC4lNyquiA/v1Cth8HwvhMbSToQlhaTw8W25Kk6EVBNpyd1G0XzNtu7vNWv+fTwdTFZxVdlOUas4Tfu25/az5rX5HZybXw8tntsz+3D9j79lv4d/sc/AfwV8EfhzpNlYWugaLp0PifWrZc6h4z8TC2gbWvEWs3kkMd1ezXuqLPLaR3jSmzsUtbZDGIQo/DsfmWNzCvUqYirOcZJxjDnaj7NzVRxlHZ3nCLd3K7jCTb5Yxh91hsLRw0Ixpwjzac07LmcknFe81eyjKSjropSvrKTl/NRDruif8FEP+C+GheI/A0kNx8Pv2dtQ8OzX+vok81r4hh/Z3b7fBdr56IBb6h421a98K2wSNoLq20yK7g+0WLG7f73PoYXK+FsqwUsTOrja1Bc8J0qrcZzlOUqaqezhH2dKP8O7XuRir810fN5HPFYrNc1x6jKhgpVJYejGMopVXDklzygpyknVjNVJtxjHnuo2sf11Xl3a6fZX2o3kot7HTLC+1K/nZXZbax060lvb65dUV5ClvawzTSBFLeXExUMQK/N6NCriasKFGm6tSrK1OEUruTV95NKNrNtysle7aVz6mrVpUKcq1WahTgrzk03ZaLZJt6tKyV23ZXP4bPCU2q/8Fbv+Cyk+v3tpqWt/Bvw945tZlhjlig0q1/Z9+EM92NJtJUuvs3kT+LfFsa6pc4tRd3i3kKSW0kgK1+t55lFbhzhOhGjWbVRwlUaaV5V3ThOfJzSfLOq2+VN8rm43UL28HL5fXMTPFVI29pJ2i7XioRXLB+7HmiouKU7Lntdrmuf3NIqxoI41EcaKqIqgBFRQFUKqgBQBtVQoAAIwDjNfj97O73fT18100Tcm3onotj6P+v6+/wDqx/Jr/wAFzf8Agqhp+ojxZ+wl8Dby3vdLkWOy/aE+JWlai8kQS21GJNQ+FWiy2wMXl2VxDHF8RtVt7h5NJkubDQ7n7LFNqLyfsXA/Cc8Ov7bzCPvUsDLGRoTjTvRoTnOEasnzTm5yhTdoRhTq01UqwqU3zxS+NzTN44iq8FTSdCWIjRVWE3JYmUIQqSUIwScYRlKUZOfNGbpwq03GNnP3j/ghp/wTX+D2m/ArwD+2N8XvAtv4q+L/AI61DWNf+Hf/AAkbRX2ieC/BkM7aR4cvNM8OK0mm2+uzLaajKtzdpN9gtp7KPTooPslpeN8xxZxbXzXESoYWSp4anDk9pCMozqKE6jSbmoyjFqS5uWPPdJKUV8X0GCwGHo04Siua9204tRU/hbaau3aKSeq+1u1y/oh/wVu/bY039i79k3xRq2l3lu/xY+K0eofDL4V6X5jNcWesa9ps1neeMLmCIeeNL8Lw3Ud47Ao8ly0XkNK1vNGeXg3I55nmmFxFTlWDwldVJ1JOKvUo8lSnF/vIydpShV0U4yUXCUYuUVLzuIMxhh8LWwUZNYnFUXGCSk7U6rnTbUuSVNc3LODc5wa5lODbi3H80/8Ag2s+DesaH8Kfj98cdV0bVdL0rx/4n8LeDPA11qFukC6zpHgzTr648Sa1HK7y3l6NQ8Q6mrJdT+SfKgjjCNtDr1cdYyNTMvYU5KVOE5Sg7O9leEG7taOTmmnHVqL00PSymM6WW4PDzbbp0lJtq1pzcoyV7e9pCMvidufpdH13/wAF1/2w/EP7M/7Jdt8Ofh1fHTvib+0vqet/D3T9Wtpgt/oHgTSNIj1P4gXWnR/LKdZ8Q6VdQeFtAmjdvJvtTlZ0BMcqdXAH1TA18TnmNSqrBp0YUXC8U5005SblTqJy96PK6Mo1YpSUvcqRjU58dUlicbg8lp0+etmFOrKmrxSm6TTlHmckoOEU5P2jjGaa5JOUJI9l/wCCQf7CHhj9ib9mbwnqd3obj42fGbwn4U8X+P8AVtQ0xZNS8Pf2haQ6poHhGziLQ3SWei29yLvx2ovfOudS1GVxAy7JG8/iXMqeMx0qlR1alHEpVKKgqnLCnKpNKKhZyi+eMn7yTakrb2PNp5bGjTlKMoznCc7KVouPI/ZyWurtNT5XGNr05XlJNJfM/wDwXk/au+GnhL9mrUf2RNOktfG/x9+Omv8AgzStF8HWBa/1zwrYWvjOHWJNb8RSGTU49LutS1eyi0jwlptxGt9d6JqGox2n2kxXaWvvcM5VhstrYjiClVm6MsvWBWDqqUYyrQlVrOpyzT5XKniKcbtctoq3wu3nTzGtTxGDhDmlyYuMqnJF6QkoLm0jZ67qN5WUWlezP1O/Y2+FGt/Az9lH9nn4ReJbu6vfEngD4R+CPD/iKW9cSTx6/b6JayazZBxwbfTdSmudOssYAs7SAYGMD86x+I+tYzE17RSqVW0oyUopJKK5WtGmkpK11ro2rH31WaqTlNJpS11TTem7TUWubezV1ez2PpWuQzCgAoAKACgAoAKACgAoAKACgAoAKACgAoASBpHijMwVZ9kfnRo25EmMStIucngF/lyxJVkOSpBMy5eaSTXKrxu3aST2T7tqzv5MFey51Z2V0tk7a2+f/BFqgCgAoAKACgAoAKACgAoAKACgAoAq6pqmnaJp19rGsX1ppulaZaXF9f6heyrb2lpZ20bS3NzcTylVhiiRWd3YjGB26KnTqVpRo0qdStUm0o06a55ydlJRhCCu9E3olom+wqlSFKEqlSUYQirylJ2SXr66Jbt2S1Z/nsf8FMv2xtJ/bs/bvsNS8M300nwV8KeMNC+Dvw0hmt1KarZnxZ4fsPGviJoZS0djb+INfu7+9SUKGu7TT4TPJN5CEft9PL1knBkMRRf1jMuW1XDP3/aSk38UWvfUINU6LnFyVKEFa0T5jJcRPNs7qTo0fcvKNNcsW1DopK8kpN3qVEpNc8pS+0mf6EWjaVBoml2Gk2yxrbaVp+n6VaMibGFnp1pFbQBgoCqQEfaifu0VgAAS1fh8pOU5zaiuepKTStpztc0eu0nttayv0Pqn/V/0/Uv1RIUAfw//APBQP4ieMv8Agqd/wU/0P9kLwbr2p23wr+F2uv4P1DUBfwt4Y8LTeB4n1D4zfFa8tbWeyvLb7PblNI8M3ZuYrm3vkHkSxyFlP6+sLLgnKXg68VmGOqy55V8sS+s3eydSg+a6VlpOUU1ZOyVvlcEp5nmijmEp4amowpuPPJwbjGKlJKSilGck6nK42XNZ3a5n9Dftg/8ABVj4K/s//BrSv2B/+CXfhi71nWbXRI/ALfE3wbpFxbaHpl94ngOmanF4GtZIZLnxt8UvHTk/bvFkawXGn7m+0X3Td52RZXDAYmeb5zVlUpZom8u+sN1VhbqLf1X2jkqD0V1Q5Lto9TNKlPEweEwUI1akklzcqlKSi24pWjdpXnyrWKcnazckvvX/AIIb/wDBMv4g/sg+FfFnx2+PEFnZ/HT4vaB4d0mx8N3twNe8SfD7wS19L4lv9J8X6iiwj/hOPEst5pt5rVraXDwaNdweVNHcSy3NtXzfFWb086xmHeGU+WnH2cYqFoyqSny2pJW522pQUoxWrtFy1OvAUZ4XCRpVJWSvJpvSK0vrslpf7r6nw38E9Ni/4KW/8FzviZ8RfEjtq/wg/ZK1KTU/C+ianGl5pk4+GGpL4O8OMtjNJPYNHrPjKe4124gVGE8Nu1y6zNGZB62cYmpkOUYPJ6LlQxM6EninQqShKpOd5VHKa5Zziqk3KCnF292C5ErQ8TLqbxea47HPWMZxjTk4xulFKMUtLp8is7P3t3fr/WX4t8I+GfHvhnWvBnjPQ9O8S+FfEmn3Gk67oGrW6XWnapp12oWe1u4JDh43BUg5DI6K6MrqrD4CnUqUKka1Gbp1ISTp1I7waUotJel16ystUfRVaVOvTlSqxU6c0lKLur2aa1TTVmk00001ocN8GPgd8Jv2cvh5pfww+Bnw68N/DnwJpFw91aeF/C9v9jsxc3s0K32oXF1cNLealfmCNI/tmp3M13JaWVlYCeK1tbWKCa06tWXtJt1JuT5pO6bVnta9vd0srrmsr9S6VKnC6UYUudyqTcY6SqyV3KUklKcpNJOpJcz3e1j+Xf8A4Kv+LNf/AOCgv/BSL9nr/gnX8KNYa78HfDu9upfiadJkj1TQ7TV9V077X4m1rWl0lVvoNO8LeFojpqzW9zJHb3ouZY3jWZlr9Ly91OEuHa6qUqNPG4mqpSjCNNSo0oRVKjh/awk04xip1YqElGnKtKnFcyc5eFUTzHGU6tGcnh6UOWGslCUr3nUSa0unGN3uoLTVJf1Y/D3wF4U+F/gTwh8OfAul2ui+EPBHh3SfDPhvS7KKCGC00nSLOKztFC20UETySRxCa5nWJTc3MktzITJLIW/NJSc5OUm5Obbbk277fzX13ato16I9/wBW2+71cvNvq2ddTEFABQAy6tba+tp7K9gt7yzvIJrW7tLqGO4trq2uI2iuLe4t5VeKe3mid4poZUaN4mZHRlbDQm4tSi3GUWmmnK9+a6aa15r6prVPRg0mrPVPRp7NGBrereHfh74P1rX75bTRPCngrw7qmuagLWC3tLPTNC0DT59Tvnht18m2ggtbK1mkCgRxIqDJRckaR9pXrQg25VK1SEFKUnJXm1Ti5Taulqmmru3bYU5KEZTknaMXJ23sld7+nc/is/4J9eHPGH/BUv8A4K0eK/2p/G0l1J4A+Fni2y+MEljqllHqmmQ6HoRfSPg/8Pwt8z24MJmbVL3TYgYrbNxfx2xdX3/qnF+Lw2VZRT4fw8YyhFKHK/sxTtKTvdSbs5ub1lJttuTucuU5XQWXwz2vVSzWvUUJU7NSi2tWmkuVKKk1tFWSX2T+pX/go/8AtWR/sZ/sefF3432wSTxXZaSnhX4dQSYMM3xC8WeZpvhl7iMMHe2s7jzdQn2EBFtAZMozq/yHCeSYfO8wq0sVW9nSw2HeJVqkITqTjOCjF05U5yqUXdxrRjyOKnT/AHibUJY5rjfqOElV2cm4KWto80ZK6krcsk9Y76pu1k2vyP8A+Db79nW58MfBX4xftUa8sdxqXx88Ww6B4Wu545JdSbw34MmvZPEetNeXEZkmTxj4w1Ge7upUuXkv7nQori8DSR28lTxfKUs8rxjXqVaNKEY0oyqSlCN3zPli2+W8VFaXe9/PfL4ypYSNF/Zle++tk1G/aN9Pmf0oV82dRS07R9I0f7cNI0vTtLGp6jd6xqK6dY29j/aGr3zI19qd99mii+16jeGKM3V9c+ZczlEM0rbARPvXs22kkk21om9lorK7bsrayk/iaBRjG/KkuZuTskrye7dlrJ2V29T+M7/g4Y/bk+Gfxc8bfs7fAv4SfEzS/it4A8KSa743+M3hDwVrcF3ouraj/bNtomk6Bq9zBvU61ZNpd29isazTWT3Vz5W1ppWf9d4XyiWV5LisTjV7OriK3Ny8ylalGlampOM5wbjJzb0T1tqkm/ncVmMMPnFH269phqVLlnQqJSpzm5NylOnJcsrxcY63TSTTV5MoafF/wVl/4LOL4c8GeHNB1L9j79i7QbZPD2mxWdtqfhXwn/wi2kvZadp8Mo1Qx+JPijqq2Nmlw1g1s+k23no0hiDhqupV4a4YoOsnSrZ9HlTiqUZ1lo2k58rnHmadpTnGOzlJdeaFPFZ1JVqsZU6Lcm6fM1Tu7bRT5W1bZbxta2x/Tp+xH/wT/wD2eP2DPAKeEvg34aSTxJqen2Vv42+JetQ29x408aXFqN7G9v1Rm07SBdb7q08PWMi6daTSF8SzATV+e8Q8SY/iTFQxWMcYxpRcKGGpSapUlN3agnsnaKcbQj7l1Fa3+gweCoYKEo0YQjztSk4QjC7S6pPXW7vo3ezvZH4w/wDBYX9sD4iftNfFrwd/wSr/AGKdauNW8e+Pta/sn9oTxBorTHTdLsDIvm+ANQ1iwm22Ok6dbb9Y+Jd3dSRQW+nCPQ5YnmNzG/1OTZbLh3LnxDXlOnmkYqWEws4unWwkF7WM6iftG+etS5G/3cKlGPPTfx1DxcVjJY/MKOAgpf2c3aviaU+aNacuVRhG0V7sJKScvaSjNtNLSLf7a/sNfscfDL9iH9nXwn8AfAMFhqM2j2ol8feKWtII9S8deMdRijn1fW9cA3OTLHNFbafZzDZa6OlnGkSh3aT4nMcxxePxax9WU6c3yToyU3F0lTvGE6U04vSpFvnjK6mml70dPo3SpuEqTpw9lUUoypOK9k4TXLKHs7cnJJXThyqLTemrP5L/ANkL/gorrf7EfxC/4KPfBv4XeGpPHvxO+Lv7RWv6Z+yt8LNI03zbS/8Ai34t+JnjHQ47i5W3Cwab4a0C3v7a71GNIhb+Vp0MEyeWg2foXEeR4WtGjj5TUYwnepOMU5VIcrTh7zjd80YPV3tGcYuDnKR52EzaWNpwy2rP2eIpKcacuaT5PaK0nBN2SbUWnbeCaVnrz/8AwUW/Z68Zfsafst/DX4U/ErxFF8Sf2/f+ChPj8a5+0h8R5NSn1a90/wAB+CdaFz4b+FXgK3Se7Nxb+IPEet6foUt60wtLuHTbm2Ky26Lu7sBinUyHOM6ouVOhQq+xoyi5x2hTnJRSSdNxlLk0ST5ebm15YeDGkqGc5Xg637ypVXNU9paq5e81abbl7RWSd3pq04q13/Y9+x1+zn4Z/ZP/AGaPhB8BfC2nwWFv4E8Iafa60YWSZtS8Xagh1Txfq095HGhvZNQ8Q3moyxTzGSUWf2W3MsiQKa/JcXiauMrzrVZNzm78z5nZbRSUm5ecto3bdkpWPsIpqMU73trd3d+uvlt6H0pWQwoA+C/+CnX7TL/slfsP/Hj4w6bdvaeMIPCzeEvhyILiS3u5/iB42lXw74YFnLA6TJPY3V7JrBaFkkjt9NnlUgoCPe4Xy6eYZxQgoQqU8LCWLrxko8rpUZ04/C01JOrUpRktY6tv4bPxuIJyWVYmnCU4VMQo4eEoOz993mm7pqMqUakXa+jty2bPyQ/4Nwf2S28F/CD4lfteeM7SW+8Z/GvXrrwv4O1/U43fUrzwR4eu1m8QeIIGu4Wmt4fGPjZtSujJbXQa8TTPMvEk/cyH1uM8ylXxccLSnNUlDnmk2qfXkvFPkunFyacV/wAu2npc2yiLhg4Jttcz5U9Ekla6XS7v/V7/ABd/wWw8e+KP23v+ClfwC/4J6eC9WuoPCvhPVvA3hjV/sNzcIkPxH+K94L3xFrzRiVYI7zwd8NLO6lsdSIW4027eaS3ni8x2r3Mmo0Mo4UqY2dKLxGLm8TOs4wlUjT1VGnGcKftPZqklUVJuXLWq1v5rLho0JZ1nOJqwblhsitCrTld0p1JWlUc6TvCT5/ccmkrQho7M/q90+x+Cv7Gf7O9rYwtpvw7+CPwG8CwwCSdoorfS/D+jRpGZ52VYRd6pqd5N511IqCXUdWv5JygedyPznBYHFZrjKWEwyjPEYj3UpyUNIq8ndyvJRinOUYKdRwjJxUmkj3MXioYajVxWIlLkprmnKznJ9EvVu0U5NRTavJLU/kG/4II6ZbftF/8ABVX48ftFa3Dea0NA8NfGX4oaDql9FbSzyal488b/ANkadcNZXAd/tkOj/NBcbfOji2okix4FfrPG2Minl2TX/eS0nt7z1b5/5tVu+q0XvHi5LFYfJXVcIOr7sfa2Tnd8v21eVnG9tUnpe2p/cK0j3xnSKO4kR/LR0LPGryRf6qR1yoZkx8jkMUxlSK/Ma2XSw2K07rVK3n8Ksut/L/Fyozw7WHr/AF2WumsndWvfS79b62t27/xA/wDBwZ+21b/tD/tCeDf2N/hDfadr/hf4EeI4bbxGNEkTVbbxh8dfG1qLTTPD2mX8BeO40XwnZ3VvFJMC8djqq6jIvlzSyk/r2S5NUyrhlVLezqL7cVyTs/7y13slr/e3PPyiUsyzhYFSk9I+7d2d10jt1tZWvdNq6s/66/2UPg1p37PP7NPwO+CelQTQQfDj4Z+FPDlwkwVZm1a30uCbXZ5QkcX7y51ubULh/MVpWaUmaSWffK/4hipc+Lry5lNe1nGM4PmUoxajGanrdTjZ3i7a3Wl2fZq1laEaat8EIqMY31sopJLX73rvc/DH/gr5/wAFJfHF5410n/gmr+xlfjW/2gvjBqen+A/iT4l0FlNx4OtPGNvJbx+BNAv4ZbuEeKfs9xJZ+Pr2CVV8M2uSJo5p5beD9S4Uy/LsoyrHZrnUMLP6/Sof2RXr4e9XDTo88/rdCeKo06tGdSbUqdSlCm+SnGpCrOLjI+dxuJxGLrrCUIVIKCqQre9Hlqc+jpyVKpUhJRirTbm/elNShDlal+p//BPT9kr4TfsF/BDTf2c/DHjDw/4k+JW6Xx/8WNQjvNLj8QeIPF2vQQNqWsJosXlaza+GLb7Oth4YW/t2eLS7ePLh5ZI0/N8yxWJzHGVMfiViZfXq0p0HXlOUGl+7caEpt0+SLi+eFNtRlzX0Wn0MaUIU51KdJRpUrKq6cLQg7XXPyLljKSd0nrK633f8rPwq8a698af+Dh66+IXwaafX9Kl/ai16B73Q4JrjTLn4XeENB/4RLx14uv7m3UbNMm03RdVtreW4Aje6ntvMw23H3/EeGlh+Gcmp1Uqc6WDhGcbxajWjQipJvmcJSjNOKcW4ttNPU8Lh2uq2NzqupudDnrxpc3Na9TmUZKE7ODaatonZ663if3R1+ZHvBQB+Nf8AwXk+MGtfCz/gnp450jw9qq6Pqnxg8Y+CPhPPch3huv8AhHvEmqNceJFtp4ijr52l6dLaXMaOouLO6ngkSSGSRa+58PMvljc2xVT2cZrC4SpNVW4/ucRUqRhTcf8Al5FypfWUnZwVm5NSdNvw8+mlhqNJv+NiIRlB3cKlKKcpKSs4tKp7Jq6v/LpzGl/wQz+AmnfBT9gT4eeIls7W38S/HW8vPi14jmjgRLhbbUAuj+FdGlmCqZLLRPD+mWyaZAxaKxhvpba3Ecf7tfO4tzKWPzKdOE5/V8NCMKdO6VKM5R5pSpxi2knGUY7Kzi7R6y9ehhvqqdOXxrd9tFaKs3Zfn1SseSf8F3P29/Cv7PH7MXir9nTwh4n0KT47/tCaRN4NXQRdedrPhH4aahGH8ZeL2jhYLaXrab5Wm6ZZ3pjbU7LUtQlRXt4iX97w1yt4jNauPrRjHDYbC1I060laarznTUalFNPl5YRqwnVTg+WTpw5ouoo+Pm06eOnHJqNV/Wq3LUqQpt+5R15faNNayk4zjCWyiqklFezcum/4ID/s43HwS/YV0DxfquhNoHib9oDxLd/Eq4s75IrS+g8J/ZotI8E2eoxAxRW1xb2FtdXIlc7TZ3kJ+WIxsPn+LsznnHEGMxDqSnF1FSo+0qvkgm17qnOXLTppvld7R05m7J29vSEfdSjSpQ5VThBtKFOMnalTpaqTk9VGMnLl5VC7TPlz9q+5sv8Agrr/AMFBPB37JHgvXZrr9jn9im+l8b/tO+NtG8s+HPGHxAt5h9s8EjVroPYtLYRQz+FYLuAXH2W3HijWY1+zwrI3tOVTIspweDw8HUx+OiqtalClWU8ROTqTw9Krh1NOq4Oo170aNZ07QqUqdSPs189yfX8bDHKcJYSi2ozlOE6UFFJTlCduRqXLdWc6fNJzjNxnd/Df/BNvTX/b5/4LX/GT9ponTr/4a/CPVNa+IPg+3tbNrWwttA8P2EPwn+BWkeHraOF7dIbXR/sXiQWrrFFBdWV5PahLtlY/R8YcmWZBlmW4atWlmWJhDDYigpTlVxPND2d68afK61appduMnKpJfE5JD4NjChhc4zCVGko5rNywX7uPJhqTlH2kcOm39Xp+zbSjDlVuW7krn9Ef/BWv9oTU/wBmf9gH9oP4jeHdSTS/GN94cs/Avgi5dJHx4k8dajDoETkJtEaQadc6jcCRXLh41KIF3MnwHB+Xf2jnWHp3p2oe0rzjJ6tQjyU5Q5VyucK9SlL3vZuKXOuaUEn35vXdDBVLKSdRxpxlHVXcryjOzi1GcIyjdXvdppJrm/Lj/g2x/ZbuvAHwP+J/7SviSOY6z8UvEtz4B8HTzyNI9x4K8Fz2smu6wsksZMsPiLx0NRlSaK4/ezaTcSzxySPHJWnFGLm6lLB1ZTqOj77lUlKbinzQhThJydlZTc4Wtf2burNrqwdN0qCT0u3JpaJt9Wtm9Lp67vuz+mWThkRmAcxLMIywEhhaSWFJ/LJ3+TLNb3EUc23y5Jbe4jRmeCVU+a9jVhTp1p05RpVnUVGo01Gq6bXtORv4owc0uaN1zXWklKMdlUpynOlGUXUpqDqRTu4e05nDm7OSi2le9tbJNXZUPXq16W/VMsM+wpWf80v/ACX/ACH/AFsv8jk/H/jzw38LvAfjP4k+L7mK08MeA/C+veL9cllnW2Dad4e0y41S4topmBVLq9W2+x2mc7rqeFMHdg+hlODWPzLB4OXM4160Iy5YylJwXNOol7OEnH3Iu9RrkpR/e1XCnCc1y43EfVcJiMRpelSlNXcYq+y30bTd1FXlN2hCLlJJ/wAj/wDwRg+GPjD9tH/goP8AHL/goZ490zd4Z8P+LvF/iuxTWrdJZZfiH8R7Oa38J2torM0cdx4I8DTvDGscYGnTLYuTBLJbK/2/FeYLDYSGT0JyUIUoUUuaUpclOXLLndRylNOmuWUpOo25b8zkzzcnw8ZUZYupH97VrTlf3V8UKbbUI25Ypt8qtZK1lorfuH/wWC/bOl/Y2/Y48aah4ZvrW1+Lfxjjm+EXwq851jurDVfEcPla74qtRIPLx4X0F7m6kJkicSXVsIfMmdI38zgLLlj87U6lKFXDYeDq1XL7M1JSo8jVWnKM3Kk3OfLUjKkqlKUbVVOOudzlHB+zg5e0qVEkotRUoJS51PmTUlZpqN4vn5Jxk+Rp/n3/AMG4/wCzcfCnwW+Jv7T2uWF5b6z8WdaHgfwlLqKGG8m8DeDrkzajqbiRTLKnifxNNLqiXDskspgYSRNtRhXHWaRxuZRw1KMY08LeCjFNOM1Ko1a/LfRxbdtdLvoaZPTjRwXJGKTnVdWenvKcqcIuN72tZJ27s+qf+C4H7b2n/swfsk+Ifhr4O8Z2Wj/HH4+3Vh8PfC1hZh7jxDo/hTVlu08beLB5Ecv2GztNBW4sQbma3kvHv91lFeNBIbX0vDrJKmNx8sdWwaq4LCxqSjiajoOMMVSjFRhCE/3692rKfPR5YqpSjG942ODO8VTly4GjWviZOHtKEHNNUql5XnNSVFNunD93U9/knzqPJNN+A/8ABux+yVa/DP8AZr1X9pzUbKSDxJ+0JFb2HhXT2Kzy6F8MfBdzd6baFL23uJkuZPEuq2M2sX7AD7P/AGfasZBI9wkXBxpm+LzXMP7MhedLCTny0qa55SlCM7yUYJyXLSlKT5bfu7SaXxHq4ShDDYeF2oKUIuT5kkubS19k9k9r203u9n/gpz/wVjOi3utfsQfsO22pfFX9qz4lNP8ADu48V+Do01XRvhvfa1Hb2l5p3hXWbS5bTde+J7Wl866cIZZfD3hrZd32oavDqtjDBb93D3CdXAw/t/OYYZYfB1l7PCSrOM1Ww7p1vbVqkKkaMaMFyOMHUqqopz9tCmqKjPz8djfreBm8BKclOToTapu81KmlKlGE4NyclUWseWSkvcb6/wAs8n7EHiKD9ufwF+xK3jqw8afFPxN4v8C+FvjR4ntLo6jofg/4leM7jS/GXxA8M2V2skza5p/g7w9DqFl8TtUEl3c6v4kNuLV7ue2kjH2tXiWl/ZWaYxp4enjMsdDCR5Jw9qoxnWUKdopXnCtzRc3FNu1+ZWXy+QZXOrjpvEylz4LGVXWpb2UFFSbaajP34zhzQbuld+67r/R68EeDtA+HXg/wn4A8K2I07wz4N8O6T4Z0K0jWBFtdK0KxttNsopPJSFXnaCBXlljgVJZfNlfy2cBvwFtyk2+ut3dy+K9117aPZ2Vu/wCi99FHd2Stu7+vXZ/qfxSf8FmPFfiX9sb/AIKmeFP2aPDk1x/Znga5+G/wO8LW1tHM1zD4p8cTLqfxA1xbIZa4ewg1Ty/tgVkt7aOKQSRWzQqP1rCQjknCOFxVNxp18avrVVwdWX8WnSjGSnOKtJ0qcHOnFckJc0VzL3n84vZY/Np052qewlKkuaEYuPs5SfJe1rKbklJ3fLZtJ7f2b/BX4SeEvgP8Jvh/8HPAloLPwp8O/DOm+GtJjCMrTx2UI+1306l5SLrVL97nU7tQ5jW6u5vK2x7APyqtWniK1StP4pycm2+Z2dlHW0U7RXKna+mqWqPooxUVGMVZJWSt0S/rzP46/wDgu1+0n4Q8Qf8ABRj4R+FdRv7bxH4D/Zk8NeDZ/Gul6BMl7INT1/xbD4t8WafcuGe1i1i20rTdHsrkRsZNOKCwvPIunETfpfD2Tc3D2Jr4uVTCxxFWpGHtI8rnLlhyyjBR51GcHHlnUteKvGTi4J/OVswhhuIcqxkVCcMBiMXTqzgnVlGlVwlDkbjHnk/37qwapx93kcppWbfufjH/AILhftzftjX2r/DD/gn1+y3q+gJqxuwnjfSdAvviP490XTdTLTW+r2+qQuPCHhDUEWbYtzqmpQ26aXFbrcrBHDAX9+nleRYDAU6+MxGHbpU4t+1el3OSiry05rvRK121G107cWLhj8QqPs1U9pUUpSp80PgnWqyuuRxSk4XlKDTlGUm3aOi+2/8Agmz/AMEb9V+EXjDSP2t/2zPELfEz9pqTUZPF+meF1vpNa0vwh4gmgEtrrGu69ql1NN4k8a21zNd3MIinh0Hw/dm2/sqaVYZDXwme8VPF4erl2BpqGFjKd6tOydWNnFxp8ySSajFKpKdrKyUdJv6LBYClh6MIyjGVRtTnOUdYzfLu9W7cqu+/No76/vDrnxE8BeHPE/hfwXr/AIy8NaN4u8aS3Fv4S8N6lrFjZa14hmtbe6vJodJ0+aZLi8kFvZXsqJDGzSi0uRCJDBLt+TpUK9SlUrQozlSpLmqVFH3YppNvu+W/NO3NyR9+bjFpna5RUlFtXley9N9tur87O1zsipHoR6jkfnWPNo3Z6brS/wCdttbXvt3RQbD/AJz/AEB69vXtRzLz2v8An8um+22uoCEEdf8APb+Yppp7f19wCUCCgAoAKACgAoAKACgAoAKACgAoAcFCFjtALnc5AALMAqBmI++cKq5OTtVeoAFTp/4H+Vvvtb8WH6jaoAoAKACgAoAKACgAoAKACgAoAcyhiuSflYMpDOnzJ90NtYbl9UbKtnDKeKiSuvt6Svo2n8rfEvJ6Xvqkik7dtVbVJ/nez81qujP5Nf8AgrP+3V8Y/wBqv4yXP/BNf9iK28W+I7q18Qap4Z+OV/4ft5rC58T6wHZk8Hf21bWtvbab4C0J2J17UnndNfRYoZvtfl+fL+q5Bl+X5DldLiZ16cs2UfaUsI1yxwqlCSnLkmnJV5py9vNtL3p06cYU+fn+TzWticdinllGNqa1nHrV5db1Hs6ateMdm7SlzSUeX8kf+ChX/BLD4q/8E5/Df7O/xFtNRm8cnxLoVgfilr9qkp0DR/jRo+sS6no2gaQT+7tdG1DSi1tJc3PkwT6izshkDLK/s8L5pDiWGZYSq/ZVIcsqUlJ8/LJaSjopwT95WTulG9r3T7ctw39h4mE4VJR5lfngnH3k2uXmTi5aWcrq/vNNPRv+0b9gP9uH4P8A7bnwb8O+LfAvjWw1Lx3pvhbQk+KHga5unj8V+EvFKQNpesS6jYtKsf8AZ2oX+nmewutMt/sKGV2e5N5fSxJ+U5vkeKyTE1cPWhVlQhU9lSxLjLlqNR0Tq3dpuKdo3g5ODlZtLl9916VdynTsouUmlGMYqKlJyUWopfC5NXk37vLFKKikfeEssUEbyzyRwxRqWkllZY41AzlpHc7FUY5LFQP5+TTp1Ks406cJ1Kk/dhTpxlOpJya+FKPPJ9eWza8iW1FNyaSW7bsl6t6I/ML9uD/grL+yV+xf4Z1mHXPiBpHj/wCKP2eez0T4afD7VLHxBrJ1SWI/Y5devNOmu7Tw9pfmspmvrpndQuI7dycj6jKOGMZiMZhv7SpVMDl6rXxGIrR5YunTk1OFOzV3UcXGM7xjyT9pD2kY8kvKxuYQWHqxwsnWxE6co0/Zv+HKUbKcprZw5ublSvzR5JcmrX8Wf/BPj9mjxB+3p+194s+FXiP4+eIvgM/xD0nx3r/j65hF3aeLvHuh+JfE6eJtV8C6THNNpYutfvrJt+rQ6g09hptor/2PHIFWNv0DOMVDKsJPFZdfFSgtaiTlJLRc0prmkox+Kcr3jTTlqkcNCjLFVFLE3hUu4xm7xne1kk3JO7dla60sktXb+2H4B/sA/sAf8E5/Csnj7RPCXg7wxeeH4UbVfjj8X9U0/WvF1qZXR3nXxZr6RW+hyXFwpmkbQrfS5JmaQztOqkr+aVsxzriB4bARc68KMX9VwdP3aNJJSTcYzly0YyTUX70Kbdo8qm1f2KVDDZfByWl9HUn71R3VuXmiuZp6tpX0u3otPyL/AG6v+Cxvjn9pzxJon7Hn/BKtPGfiz4i+N9ev9C8Q/FvQ9JbSGfRrKMjUIfh/fazFF/Z+mkgnWvGt2ulalpMKKulJE7XEk30mRZJgcsxyfElVYWrBRnSpSklGhNJv2k6l7SqU38PLNU4STqJ1KkKc6flY7Ma9W9DCUZyjJuLlKLvUTtG0YWuoy7NOUk7NR1jL5F/4IdePz+xj/wAFAP2hf2cP2m7yz8E/Erxlo114Eu7/AFvVI7mwufib4X8RHxPNby+JGBhvrLX7LVdXk0/Xp5pkvzYQr9pKKGGvGGX4nM6uX47LMPUx1LEYeTU6MJTqcsoqpFx5Y+0lzxUPcS5r7RTVn6GU4TBYXC46vUxihjfb0+fCSnalGLbi2o35adm4e+lZQTXW5/Vb8eP23/2Uv2a/Bcvjn4w/HP4e+GtJS4Sxtba116y8Q67qmoyBjHZ6R4c0KS+1vVJgUO8W1iUjyguJIWkjDfGUcjzarNQll+Ko6XlKvQrUIJK3N79Smm3Zxso80pJKVuXmZ1TxFKMZSU4ztsoOMpO7snyqWnd3klpa+x/OH+09/wAFXf2uP+Chfiyf9mj/AIJifDX4i+FtBvUurfxH8XW0u703x5NpjMklpr2nX0U0dh4E8FanaYt579tQl165MssCokEvkn7HJcnweUYl1c4qwjJKm71rRo0WpxlFw57pzjVUXCrJxkmouEYWd/GzKdXGUOSgpxu52ULupNNSjNWhrZwuqkIuV07NSXLbJ/4NqfhdbL8Yf2t/H3jG70zV/iT4GtvD/gDT2aWS+vbZdV17xFL4t1Wxv7l0udUt3m0zS7W+1fU5P7XvI7hIXeZWIEcfTX1qEcPNvDuVkoyvTTS9y8FJJ6Xkrx05FzST5Dvyek6WXx92PNOavJJXtZpavV3s3p2aersf1keMPiT8OfAE3h6Dx3448JeEbvxVrlh4c8J2fiLWrDTr3xF4h1SYWljpOhWd1Ks97ezmR1/dL5axiXzJVJCv8Vh8vxeKw9bE0ab9lh04zlfl55L2fNTgo35pqM1V5XZWg0n7TkhL0HLVKzd3ZtWtFWbu7taXSj7t2m4uyjeS7OuQAoAKACgD+e7/AIOFv205fgZ+zRpf7M/gyWaPx7+04bix8V6nbN5c3hb4L6HqWmJ4t8pd6ebcfESS6fwNA6vnT4JL25k/cyPn9F8PcuwdbGTzLMaNOrh8LOVOHtqbnDnlRSnoqypzXJUkpQrYWS5pUqlKopQko+FnbxE6SoUZygpqLm4SSbSk2k7UnOPvRjaUKyTSlGVOzTl71/wQx/ZK1H9mP9i7SfEHi7Q7TRviN8ftXX4qeI0t2DSp4cvLKKP4f2NyFVUWe20CZ70rGXRm1Uvu3SMB8TmeOqY6v7SpUnVlGKXNUlKc22+spNtqKSs+bfmu1a69uFL2V4Xk7act7qNui7+fyXS5+fv/AAc7+LfHmm/Dz9lfwlFcz6Z8K/Evjbxrc+INQs7eS5jl8UaRpekvpo1+MEwS2OnaXLeXWh2dzEy3urzzJCrTxrt+14JdJ5dncIO2KfsHzKEYzp05RlyctaNKNRxlKNSMoOrJR5U1Ck5VJVPGzWCqVqEKtOM6Tpzsprni5KS5rwk3HROPvcifv2cpJWj9jfAj/gp//wAE9/gR8IP2Xv2YP2UdY8VftHeIr7TfDXgHwj8MPgn4R1PWvFOmtNa/2jrXiPxiL200rTNDtn1G61C/1S8nuZUmvp55BLIj/aZPl8RkmYxq4irjZTgqbbdevVjVlWiny86bqyk1bklLnkpRTj7vLCXJ7ftoVZSlBRim9YxVlHTRW6XW/Ru9tz9068MBzKrqyOoZWBVlYB1ZXGCrA5UgqdpDcMMAmp1i003e6aadmmtY+8veTUveTj8OuiSA/i3/AOC0H/BNfwB+xB4p+C/7Zf7J/wAGHj+HWi+O7rUPjF4UsoLzxRo2meKn8Ry+KvD/AIh8QW12l3cp4S10SXHg27c/aItIuJ01q4kE87yt+k5Nm1XOcDUyypKf1mlaWs7+2pylZT5VZxmm4xqKMFBSlGUbKXJDzXhsNSxscViqNHFUpbxr0YVVCWvuqM4TST+KL1aSa6Jv+k/4Af8ABR39ir47/BrQvjF4f+OHwt8L6RHo+ntrWj+LPEuh+E9Y8G6munB7rQbnTdaubK5E2m+bcWkYsI54niZo4SGeSFPkcVw/mjzCbWDrYytVqVPZ4tQ9rUqJylNyrV3Hng5c7cpVHGMpuo05r3n6PNCEeVOMIxSSgtElFaJRXZaJJaI/Jn9un/gsl40+K3jCz/ZE/wCCUVlf/Gj4yeKJpdL174teFtGutR0vwnsjVrpfCf2yCGzljsi0kereOb8jQ9JVS+mteT7bhfp8oyHCZQ6WZ8SQpeyTcYYOtGlXg21yuVSKdSlUk3f2cHeCg41GvatRo/NYzG1swxayrDOvhcPUinVzOjOdOalzJxhQlDlqQtpzzVnNuUElTTlV7j4Y/wDBP/xr/wAE3f2C/wBqb9oHwAy/FX/goj46+GnivxX4v+Kv2i68Ua5Z+LbvUkvdS8N+BWvRcz3D6YZ9Sv78tdo/iLxRpdpb3n2nT1gFtnh84hxBxdhZ5n7uXYivL2mFn/u0qccPVnTcsPU/dSi5KnJXhJ/DKyaR04vCyweArzw8I0KiUHCOH/cqjevSXLShSio3lTc+eSei/dx5oylI/HD9mz9v7W/2C/gD8W/jHP8AtYXP7VH7U37UvgTSLzwD8G7Lxt4g8aeDPhbqE8epz3Xxj+N13eXbHwp43tbnzNNTwboKJGlpapaqqxxIqffYrh5Z3nC+sUMoy3IeEJL6jUpYPDUYZ/CMozlDFckIUsSqnKoz9vGsp0nKCXNJThcczrLKVgORPFxjJKu3esuaLjzRqte005uZWkkpRi9XdH2t/wAG+n7AmpeKPFHif/goT8f/AA9d3uv3Op6pafBaTxNp0lrc65rniC7vdd8efF660a+y9pdT6lq39neFLyS3eVl+06pbTx3NlayH4bjrPKGMxKwuXP2eGceadOivZ0l72lowUab51F8y7K0vjiysryWnl0VUqVpYzEyWuIxEnWrJJu372pzTvZLr6La7/wDgoKdJ8S/8F9v2XrL9ofxho3gf4IeDPCHgLX/Des+KdYs/DXhlrXwtZ654zaISanHLpt6ZvHlrbWurkIv2gTxfasyDct5dDG4vhaOHy+LcKvtXiKFNKNLEVYN0ozr06cY06s3ClCMp1IzqNRjzyqTUpvDmhHMcdKrRhUlhlRdHEOHPXw8K0YTmqFSblUpW55NRpyUeZq0VH3T9avGn/BXH4H+N/ix4N/Zn/YrubT9qb49+PL66s5X8GTzP8PPhdpFg+3WvGHxA8Tvai1XTdEtxLdG1sDM12VVI7gsJYR8lDKJYaXtMzjPDUoWbp3XPUUf70ZPlTfKrRvUktIqMuWS9ZYqnOcYUrzv1V42t25kruyb6Jdz9ca8g6QoA/k2/4L5/FTxN+0b+0t+zH/wTb+GM9zHq2p+KfCnjjxp/ZrytdXPiDxrcP4b8DWTJbENbS6LpMuseJZpZAZIbV7S4RlXYy/pvDNH+weGsVnkuWnHO3UpU6iUYSSwtWeHlecWnvSfvXV4KKekbrwb/AFjOq0KtKFTD4TDw/dTiqsKlWpFTdV0+W3M1KnSSfM2qacZaqMf6efgd8IvDHwD+D3w1+C3g1Cvhn4ZeDdC8H6VK6BZr2LRrGK2n1O8AeQG/1W7WfU79zJI017dzySSSM5dvzXEV5YirUxFS8p1Hdt3ctEuVJvV2SXvL+W/TT3lGMUowjGMUtIxXKl1skkku+x/IZ/wUc8JfG3/gnZ/wV7tf+Cg3hv4Laz8Z/hf4qtW8daXcXmmahd+HLXxLceCJ/APibwzf6zpkV9Bo+safbTSaj4ZvL2xW805blLu0MX2lZZP0XC5xhc+yyllNanDDclOFKcaKhTv7FKMZ/uqeHipSUVKUYUYQ95wUZRTieLhObJcXns4zt/bsoShy+5FzgoScXGLs7TT5k94vWPLJQPXdP8Tf8FFv+C8a6f4X1Pwpb/sofsL6d4q0y1+IetafdXr3/jf7BIZtW0LTbbU7eHV/HGvWU3lxRjyo/hto8xhTxLp+oytuMYfEZXwjUlUw9sXjp05OEp8rqOKlpHnUeShBy6qMZTcJPlqzjGKFTxmJxSeKpwqYSCUXQnTi6Dc7K86clJ1Wkk1zc6hdu9OEpHmfxm/Z++Nf/BBD9sC3/af/AGWvhtrfxs/ZR+IHhqPwlrllr0msX9/4OZDDNqWheLdc0L7RrMcOu3k0f/CBX1/JfQWGvsun3Bh0ZgB0UXlnFUo4nEYyphsZTc0pSqSWIpRU2oS5780Y1KcYzfs6k4U3eEaknBydxoyw+HWBd2p8rjy3lFytFTSbtzcrva6jJ2vyrmSXuWt/8FfP+CjP/BROwHwP/YJ/Zc1X4Oal4yhitta+NsniXWNbu/A+iXLeXd6q3jG48NWPhbwrJBJJHFb6ybabXFlMccL+Y4V9sRhsnyde0xGMWOa5rPFSeJlJxWiiqrqN6e8lFc07ysnolx4mlVx37vDuUIWi/ZxajGOurjypWvpzN6O6dlqfP/7bv/BITVf+CfPw1/Ze/aj+A2leLPj945+EvxI07xD+1JfXEV5rM/jPVdS1uLWLDxVD4dXz5LPww3iC7vNB8Qm0gN2+n3unX96WlZ4ocsBxU82hiMBisTPA00oTwtOGIqwjVpqPLNSgpKiqkJe/7ju4VPdjL2NSrL1cvwtDKqixUYU/rFoqeIjThCad/wDn6l7RRfNZX25Xd+/yH0D8X/8Agsl+23+2hYN8GP8AgnZ+yN8XvBfibxVo2n2et/EzWLE6lq3hua7Ltf8A9g6lcWWn+HfC0VqGKnxRfKb9AitCLcKMdOS8PcK5bL61mea0sXiouKWX4mnQ+r6xpxfPTqc6lN1FLlbm041I0uSVSDnLzszli8bhuTB1atCUnFudCdSFW0eZ8sZQknFcr9+yUm0neUbRX2x/wSM/4JEt+yQ837SH7ScsXjH9rHxWmryQGTVG16z+FuneIVZNXtLLWSQdf8V67GzDX/FF0Z765hcRz3MtwzG2+U4vz5ZvmNRYSrP+z6D5aGGhJrBKWibo4dS9iqaf2400pq8o3g1Kp2ZRhZYfLqNLEU19YavUqy/3izi0oyqfGnq21zJr3W+WSaPxC+P/AMJf+CmOhf8ABWP9pLU/gh4I+Kfif4neJ/EfjCx8G/EDSG1/R/Alt8M/Gmgxx6Pqy+LbjS7bw9aSeHvBs88GlackSDTPE1us9pFDdoGr6/D47hv6thZVsPgcRh8NTprCyxVClX9jBJKKUsQpuE/s1LyVRzupyc07+XhlmFF4ihUrYhrETlUr0IVZKlVnJucnOhB+yld80k1G1mmtNv6M/wDglh/wSq8Cf8E+/B174p8RapD8Q/2j/Hem/ZvG3j14Ej0/w5pd9dJrGoeCfBsZRZ/7Ik1vdqeqaxdEahrl+onuV+V5rn4vibiJ51iFTw6nSwNHSlS+CMpRbvP2cdKdN3i6cOWMkruonKUYU/ZwGChg4y5IU6Tq6zhSioRezjzcnLGUlrdtS6crXvOX6418wdwUAfkl/wAFqv2QfH/7YH7F+peHPhTpF94l+Ivwy8ceGPiroHhLSpxFq3jC00CS4tNd8O6HHJi3l1270zUJbjTROV2PaS+UfMZFP1/BOePJsdim0lSxOFkqk5TjD2cqF5xbdSqlKm4SquSjGpK7pysqcasl5ea4X6xTpVIqUqlGcuSKTlze0ST0SfvXjDlcmlFcy1k4o/G/9kn9tj/gr1cfCHwD+xZ+z/8Asb22heKfAnhyP4f6f8Z/iV4U8T+G9L8F6Tp7vbDxR4hufEdxP4Sv5tAa4jt/skdlN/bkiQCCM3LyNN7OY5Pw7TrVMbXx0mpq7pynFUueEElywpwVepNxgm4Kc3O8vdadlONxmKrpxy+bqzlvUd5T1927lUXLFK6jzfZ0u1Euf8FI/wDgjV418JfsQWnxM0jVfGX7U37Y0PxRsPHX7SPxIFlreu+Mvih4c1jSfEmm6novgnTobkajomg+E9U15LzTdLgkFvc6abhZ7O1I8lurhvi6i6WMyyWDw2GlWo82HxNKNKlO9NxXsY8lOMoWpNyUVOScIuySWvPVwTwmMo5qpQ56L/fyhBxnOKTalOqmpTTsrqSVpPRu9yhZf8FC/wDgqt+0p8LfhB+xZ+y7+y3qvwG8RS+E/DHwx8YfHKXwt4nsktfB9hoC+E7nxTZL4n0iO3+HWitZKJS/m/b1jAXiNQo3wb4Z4epTqYrCVq2Om5OeLxN6teLcql/ZSmn7NuNWUG6SjKrHlVV1ZxUjDM/a45ewwlSVenP3HSulCStG6mtFNXgpfv3PlcptSitF+sesfsfr/wAE4/8AglX+0D8OP2YtG1bx38abr4U69eeKfFdhZX+qeNPin8RPEsS6H4j8WPBNcXF9Nf22navqc+h26y+ZZQWlttAkRjXx2CzJY3iPBYmu5VMPRrynSjVlOdvZUp1KU9dpOrCFSy91O0W5NXfqyoQwuBnCEKcE4xUqcIKNJKTUZRVNe7azcXZe9u9EkvLf+DfX9jPxX+zP+y/4m+KfxN8Lav4S+J3x98Q2Gpxab4ktIrTxNpfw+8H20+n+GIr23T9/o8+p6vd+IdTm0tVgT7IujTlH2wbK4szTEYjOvbe0q08RhpQnCvGc41IVE4yhUp1bJwlTajKEoyvGezUr3MspRpYZU4KMaEbQpUIKMaVOMVqoQj7sFK+sVGOiT1TR94f8FRv2X9X/AGvP2IPjR8H/AApam++IEunaV4t+HdkxiWO88XeE9WtdUtbN5JSdpvdOTU7K3VMSSXNzCgfna/NwrmVDK84p4rE1ZUqPLOlNxUmpKbi1FyjOLp++k3JwqQtFwlGOlSGuOofWKPJyKpyzU7Nq2ikr8rjJT+JrlvF3s021yv8AnM/ZX/4Ku/tafsWfsweH/wBjDRP2DfiZ4n+OXwo1Pxn4R8Pa34n0TVLTw3Y/2h4k1DXbXT/E/hWy0xtQfXop/EE0jSQ6k2nsHjUKphUt9RPLcpzHNv7U+sxlQmqblR5KVaNWpHl99ur7Sn7OVFKm4RpRb0qwqxqWlHh+tVVTdJ8zkpP33KSml/LpaV1LW7l/cknHQ/av/gkx4B/bultfj3+0h+3xq+q2nxE+Pl98PtM8HfDLWbSw0m9+HPgv4ZT/ABEeCMeHtHlbS/Dtpr9749nks9Llgg8QCDS1ute8yS5tHr5viatlyxiy/KJwq5bgJ1lhalNuUJqt7NycZO/NrTUpSu3KUpOTcm2+nA0asHXrVl+8ruF248s5ez50nJdF71orSyVlFRUb/sPXzR6AoGTgUN2/r+vw17ID+fP/AIOIf2lrf4b/ALKfhr9nbQNauLbxp+0T4nNv4h07TZ1GoL8J/CdtJq+uyXCIPNsbPWtdg0nS476eSGCfyLy0hMridY/u+B8LSjiK+b4huFHDQrYenKVPnj7eUISlKnKPNUhUpU24Sajy1IV1FTVpp+PmknW5MH9mpy1J2lJPljKUVGStyyjKfK42leM6d5Rs4yX3H/wSR/Zym/Zm/Yb+E3hnVoo08W/EGG7+MfjR41RS2t/ERLTUrOFjFI6lrDwzD4f05lJVoWtGgZFaNhXzWfYqONzPE1KclKEJunCd568spNvllGLXLJ25X7suVSTs0enQpRo0oU4291avXf5n5Vf8HJ/wK+M3xE8D/AL4neBPCviXxZ4B+G3/AAsXTfHkXhmzv9Tm0SbxRp2mJpWvanYaRaajqUmnWz2BgkmNpFbxJNMz3aDzAn23AGYYXBQxNOrUo05zq1Je9KManJKlRhdQ5lJxUo2vGLSk7Ste54mbwrTxNFQpTlCVKMefaEZ89RuPO1ZSat7t1dWfp8Q+F/8Agvl8Uvh/+zl8IPgH+yx8ANH8E/EHwJ4B0TwFc+J7mW+8d2s2paNp50+2vPCHw20vT5YrO61i6lutQv7vVNQurt9QuvKWyR7OHy+z/VvL6eYYvOMVmNOv7StKVHDRqqjKClFN1Pa0qilzrm5KM4+yqUlBT5pzUasTMqmJw2HoYehTi5ShCc0mpxspSkouMuaCTkn7RLWStBr2a5X434d/4Is/8FFv2wvhd8R/2n/ixr19Y/F/xJF/b/hPwV8XNRu9L+InxWh1OSbVbn+2tVa+vP8AhA4NMF48XhTSTb6Qt3apbQXShHJrvq8b4HBuhlWAp4fD0pxVOc6LhClh2l7NRqPmjClGMacI8tmoKKT5YON+HDZdWlCWNcJyqOSqNSjNzqzm4tzikr1Ek+fmWk07RlJ3Ud74VeL/APgvL4m+G2kfsMeAfAfxS8DeH/A1tJ4MudRj+GWmfCzULPwol5dW18mt/GO8urLT0t3lu54rafw7PdC6tUja6mNwy29vp9U4eyGpDiKOKwOZYirGNSOHrVabp+3TVelUpOs40pVU6UJ0nRcp3hzUm3zM6albHV4ewhCrpLkcUuWajblanopKPv8ALK75XtKyuz9Q/hh+xX8Ov+CLn7Jnxb/bc+KusWHxD/bFTwPqeieF9Wivph4Z8PePfG4bSPDXhTwS9/DHd3+o3OrX76p4i8UX0TaxqaHWbXTFSFbU3PhYLNMZxlnVHK6VSOCwMsQ8wryUIybhR9k5R1lFQpylCnCDXPNS5Zy91ThG8RRoZXl8p1rv2jcIxXM1CpWpyTbcFKU3GEdY/A7Na6SPmP8A4N6v2Uda+KPxU+IX7e3xSubzXrvSr/X9B8FX+pWz3EusfE/xSkVz8T/F1zqzrJa6hd2FvfWelqxuBeJPO52/arTUIIDxHzbC16OAyHDRVN5fOTqTgre0UVKEJTenNaS57e8m6fvNcyUnw3GVGOLfs1y1oxUajTs7uPNyOzSbikpKXLK0ouztJx/r+yOcbsc4wccZzkDBwPx7c9cV+W+Tak/S9mlqn11tppfTq0j6Ly/rp/kfxPf8FPdB+LH/AATt/wCCq+gftzWnhnT/ABV4D8d+LbL4h+EZ9Xmms9J1PWbTw5b6H478DXt7GJ4NNvo7G3tJ9EuLieymkuZkllMNvPas/wCwZTicLn/DtHLq1WFL6pQjgp3qU1Ug6dFQjNRlZrnjL2kJ8rineF5OnKJ83DDSwOaYnEauniJSr8z25qnMnFJNydrRd7LdaHuXxw/4Ld/tKftySf8ADOH/AATx+B3jLwp4l8c6dDpOr+MZWh1zx9pi6lZomrWukTWJtPDvgWMJfj7J4u1y88yFrSa4tmtnEIm83D8JYbKOXMa2Lp4uGG56ju6VOlB04qbm4SqSa5Pji5ScY6P4ouZrVx2KrVHRhR5aMrLnT9+V5NOOr2at7sY8zaabak4nwf8Atj/8EpfjV/wTv+D/AOz/APta+I/FUnxi8fw/EK01H4/6VfWsnibwP4UvlubfXfCdlf63eM+reKNP1/UtP/4R/wAfa/rlvDpay3wa2uG0m0S9k748Tf6wznl+Ho08PToxhGj76jOurvmrOEoQ9nG9oJc85NJOpGDlY6MLgaeXV3mkoxr1lRhSeGey5ZTl7Ryk+VuSqcjtrdfaXvP9w/gN/wAF5f8Agm34a+Cul6rL4P1n4KeKrWwt4Ne+EXgH4W2DG5v7GSeCa68L3vhtrTQNf0WW6N1Jpd9ealb3hieRJEZh5s3h4jgfiLGVn7OvQxMYu1JVsUqdSFOUuez5lKirScvdUk2lzKMIWgq/tWhG8qlKvGc3zTjCi6iTbaS5orkv15VZXbavzXl8rftC/wDBwR8QvjdqWmfBL/gnv8IvF+nePPG1/JoWm+PPFunWWo+MoZLryvsk3hTwVpx1KPw/exMyNNr3ia7NrZbma1MUtu07+/gOCsJkFSGPzrE0q0IUqU4whZQpYulUdW1qNSrWqOPs6UYtKNJxlUjNT5+SHl4rN6uJjKlhqMoqTnGfNGSlODi48vvxjHVNtpc/92SceZ/dH/BOD/glZ47+FnxBs/2w/wBt34ia/wDGL9qi9S5v/D2jaz4jvPEeg/Cu71WIrqGpQ308zxaj4wukudR0+4ntF/suw026mtYGunupfs/yGdcQwxKrYLL6FGjhU/YxqQpxSlQSa9nTpOCjCDptQXu/De0Voz2cFQqRpqddyVSXNJxfxJySV5NN2k9W7O66tO8V+7ZbALfMQgJICszYHPCoCzE8BUXcxPA5xXyFm3a9m3Gz2jd6at2XZtt8qVr6Jt+hfr2XRNv7ldv0W+h/M5+zJ/wVX/bT/aA/4KVa58F7X4VyQ/ACPx3rXgrVvAb+ELqPxF8K/DuiXFzDD498VeJzaxSR3OpIDc+RJctZ3FtHbKkLMhjg+7zrIsvwWVUJ0ZU/bRoKriJqq9a82oztGpUkvelThGFOPPZySj70tfNy2rVxEq9Ws2oOU400+T3eSLlCHuwi5NOdubkV3K19Fb+mJuv+fU+wr4WO3X5u+uz17X0/q79ISmIKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA4rw98Mvhz4S8SeJvGfhjwH4N0Dxj41nF14x8VaJ4Z0jS/EHii5Cwgza3rFpZx6jqeZII5it7dTqZ1Nw2biSWV6detOnGnOrN04W5Kc6k3TjZWSUZNJNK9ny3SlpdaEqlTjOVVU6aqyXLKooRU5LR2crczV0nZtrRdjlfj/wDAL4XftOfCjxf8E/jF4eh8UfD/AMZ2kVpq9gxWG6iNtcw3NpqGlXzxPPpep2k8Ky2mo2nl3VvlxG0YdgevLMyxWT4yOOwVSPtaaqQ/5eezrwqKUXGpBSpudNu04QqfDOEJOPOrKatONam4TWjs+l4u+6bTSb1V10bXU/kL+LX/AAb8ftsfBnx9qHi79j34tp4k8Oww2174X1SPxtqPwu+KVrYWLzT2WgeIrmQ20etSWjTSzWtvcXVxHbyXLKojuXmiT9JwHG2S4qm6Gd4KVelVsqtHExWKpSTsvejVjKLSatJ1acbJXai42PIqUMfRpy+rTd7cylSk6UmttY3jNT5N4e9a/KpN6iy/8EvP+C6XxvmtfCPxY+O3iTTfCMFpHBFqPjP9oabUtJsrCQu6WY0vwpbL4hu7lW8wuTckQs580oZAG2xHGHDOE53lWAjScpOUlQoxo88m0uaXLGKk7Ll1WrWmyM/Y5hjL/WoyXm53+LXm95q7utVve3NZb/qz+xp/wb+/s4fATUND8f8Ax48Rav8AtDfFHT501Ga31b/RPhxHqCiVN82gTxSah4pMYMMsFzr94zI6SJJazoQT8nm3G2ZZnR+rKEMPhtf3cG+TWzUo0ouNKNnF/HGSndS913T78Jl1HC6qMZTXXlS2vre12/N7dF1PVv8Agof/AMEdfBX7XXinQfjl8EfH1z+zb+0p4TsNP06x8beFrNtO0TxNZ6OqW+j22uQ6CLS80S80e0MkWma94et/t9jCkVpbW8KF5hy5ZxPicHeniYLEUZTnOLil7SmpuUnGKfKpw5mlFSmvZxbir04whHerhlLWHI5WStVXPF2trrzNO2smk+Z76Ns+FNN/4N9Pjn8WdUtG/bC/b3+IfxV8PwRKW0/SbjxBqNxMVXKW9xaeMr3UvDspjI2/bzpUtwpyUU4UH2o8Z4XDy9rhstdSs3/ErulF6O6vNKpPzS5fJ2OOWXVK+tap7JvW1FyVvW3IndXulpfuft3+yL/wT6/Zc/Yl0Oew+Bvw8s9N8R6nbwwa98Qtb8vW/HmsiCKSMRy69exSTWNjulkK6XpqWlg48sXMNy0Ubr8VmGZ4zNMR9Zxtadeo0uWVWc5yt0TlOU5bO0p3W+luvpxhCNuWEY2/lil+S/r0PCP24v8AgkV+yt+3JrsPj7xdbeJPhv8AFe3jt4ZviT8MrjTtL13WrWzimhhttfsr6zutL1qWG3uJbe0vb6E3NtFJLGJ2jlcV7eUcXZtlEI0qdepVo0lajGpWrR9it4xptylFRik7RUFy82klGKgvPxGV0K9Z4iMp0asklUdN2jUir/HFcrb2u+a2m3M+Y+Pvhv8A8G337EXhbxTD4k+IXi/4x/F+CCTz18Pa/wCIdO8OaPe3GR+91abwtpmna3djaWH+javYvuIbzCFKt14vjjNsUlZQi9m5TqTfKr/ZvHW6unq00o2Wtpp5VTpv+NVS7U26bvtrrK68rb21sj9vPhF8EfhJ8BPCNp4E+DHw68J/DfwpZLCE0fwrpNtpkU5hTy47jUbmNGvtWvkiYxi91S5vLxlCRNcbANvyuKxuLxk41MXia2JqL3U6tSUuVPlTcU21HSCvypczV31a9KnShSjywioxWll83q3q9+r06H5PfFP/AIIpeAtU+NHj345/s3/tK/HT9kHxV8UjPeeP9O+EmqF9C1zWbqRpbvUlt5L/AEq5tRdSsZLiCO6YTyl5mdN+xfQ/tzEz9g60I1pUXeU5T1rWtyupveTXvOVmu0Ux8kFHkUYqH8nKuX/wG1jqf2c/+CNnwl+Enxe0D48fGn4zfF79rX4o+DLmC98Da58aNXnu9O8H3to2+zu9K0VdRvbRp7Fy0to0zERShW2sm6N+vH8S4jG0XRhRWFjJPm5ark1DqoxjTpqErONpauKuopStKIfsPXzowoAKACgD4e/a1/4Jz/sq/tt+JfAXi79oLwVqnibXfhxputaL4duNN8S6poUTaRr7xy3+m6pb2MiRanZNOjTrBcAx+a291dVjC+xl3EGNyrCVsHho0HCtW9tN1Yc8lLlpw91wlDk92ml714v3bKL575VaEK1udbK17K9tt2mfaGg6Fo/hfQ9H8MeHtPtdI0Dw7pOnaFoek2UQis9M0jSLOHT9M061iwVitbGyt4La3jBwkUSKeleLf3m9NVey5Ukk9LWtaNtbKNlrbs922223dt3be7b3bv8A5HhP7T/7KPwN/bE+GU/wm+Pfg9PFnhM6ppmv2TW97daRrWia5pM/2jTtX0PWbCSK806+tnLbJI3ZMt5gj86OCaLuwGZ43LpznhK0oqrGUKtPVQqQd+Xmipx1i/hkmpLWL0dSLznSp1WnOEZuGzlFNx7pPez6rZnk37I//BOX9kj9iGXXNQ+APwzj0bxJ4iTytX8Y+IdQu/E/i+5tMKDp667qhkurax+Ubre18mN8bGDR/LWuOzjH5hBU8TWtC7vGDklNraUuaVRu1lpdRulOSc4xkpp0YUY2jf5/8MvmfcFecaBQBl+IvD2g+LtA1rwr4p0bTfEPhvxHpl5ouv6DrNnBqWk6zpOoQNb3mmanYXSSW15Z3ULtHcW88bxyKcMv3RVYfE4jDTjWw1erh6qaUalKpKnOyknK0otNxaSvFqzt7yd9VKMakXGUVJPo1df8P5n4K/Fr/g2//YB+IPizUfFHhBPiH8H4dWvZL698M+DdZsb7wzC80haa20fTPEVhqY0qzfKhoElnLMrySSMWwv2GA45x+Cw3sXQp16t1y4pzcKyWm8uSpJzbV3yypq0klC6s+OeB5q3tfrGI5f8An06kpQTv9lKXKtNNU3re72P0c/Yo/wCCeH7M/wCwR4b1jR/gX4Tlh17xOlonizx34iuBrHjDXYrNVMOnNq08fnadoMMyrcW/h+waLToJlik8qSWGKRfBzXOcbnE4vE1GqUW/Z0Izm6UXa11FycOayknJRj7rasrs64U6cPgpwhpb3IRjp291L3dD7gngt7uGW3uoYbm3mjkimguIkmhkiljeGWKSKRSjxywyvFKjKVeN3UgqxB8lNxalFyjKLTTTle/NeLUlre+qa1T0ZTSas0mndNNXVmrPR902n5Nrqfjfd/8ABB7/AIJ7Xfxy/wCF0y/D7X0t214+KZvhPDrkUHwrudfNxNO01x4ei09bqXSSZ7jdoh1H7GZ55rnIMrxv9LW4uzivl8MunVgqEOVRdOCjFWVvdpq9OEnvzwjGC25E9DlWBoKXNytyu3dyd9725vistld363vqfsTp2nafpGn2Ok6TY2el6Vpdna6dpmmadbQWWn6dp9lAltaWNjaWyRW1pZWltFHb2trbxxwwwxxxRIkcaqPmW3d6ttu7b953lu29lJL5W7306j4l/bJ/4Jzfsp/t3xeFG/aF8C3et614Gh1K38JeKNC1i50LxDolvq7LLfWsFzEtxZ3FtNPGlwbbULK8hFx+98otkV7uU8R5rktOrSwNaNOnVmqk4yhzNTtGHPdODacYQTTbilD3dHK+FTDU6kuZudN8vLLklyqcbuVpqzTSlKUm9NW27mz+yb/wT+/ZV/YnsNSg+AHw0tPDmqazEINX8V6ldz614q1C0R/NjsX1W8OLLT1lLS/YdMt7G2eR98sMjCMryY7OMdmMk8VVc07e5GUuS8eaz9+U5u+ujlyRskkmmx0sPTo6xV3/ADO11forJf02fZVcBscP8UviZ4J+DHw68afFX4ka9aeG/A/gLw7qfijxJrN44WO10/S7aS4kWJTt869u3jSz061Dq11fXFvbKwaYEdmWZdWzXGUcFhfZwq1VPknW540lGnTnUblKEKs4xajy83I/ekou121nXrQw9KVWpdxjbSNnJtuySTaTet91om+h/KX/AMEevAviv9vT/gor+0H/AMFJ/ijo2rf8I34a1bUm+Hjaxbi3t08Q6z53h3wDpFqrOHu18CfC/TlFwIQ8Ol6veWiOsRuVWT9E42xtLBZPlWQ0VyU8PCXJTTk6dOC0nKKldNy5oqUm/aylOU+aUnJnm5WlUhUrTUZVZzbnU5YqcnzXXM4qOiaVo25UklFJaH9d2Fx0AAGAAMYGSAqgHAAAyBX5Z8NoxWu+u1u7/r9EesMmghuI5IZ4YriCRdksM0aSxSIeCskbhkdT3Rs7u4qoSnTcJ06kozTvGpCXJOD3vGUGpKV+qb2bBqLVmk1po0mtHdaPs0mvPUWGGK2iit7eKOCCCNIYYYUWKKGKJQkcUUaBUjjjRQiKnyovyqAAoqZzlKV3eUpNzlKbblOTabbbV229W3vu9N0RzWlrNDJbzW1vLbzx3EU8EsMckM0N2SbpJYmUpJHcsWNwjptmZyJQ2TVxlKMlKMpRcJKScXZqUV7slZcylG/utO6VraMrv/Wn9JEGm6VpejWosdH02x0uyV3kWz0yzt7G0WSY7nkFvaxxxB5G+ZmCbmOCxLZoqValWblVqSqO2rqzlOVtZW1k5Wu72a1vLpYiEIU1y04RhHe0IqKv3skuy+4uAAMSAAWOWIABY4C5PbO1VXJwcADkAUFEVrZ2llF9nsrWC0hyX8m1gjt4t7nLuY4ljTcTyz4yzcsTROc5tzqTlVnJ3lOcnKUm+vNJybfbW3oEYxguWMYxXaKSX3KyuSUAFABQAUAFABQAUAFAFqWaabHnSzS4YkeZI74ZgAxAJOCQgDH7xAAboCLr4rE4l8+KxFfFS3561WrWlZJL4qspdIpbq8UnvYmFKnSVqdOFNdoQjBaXtpFJaXf3sq1BROzM/LM7nAB3MS21QFUZYFsKoCgdAAAvAqZzqVJuUnKU3y3lOTlL3Ukub3pNpJRSelkktlYEktIpJdlpvq/vbvf/ADIKoAoAKACgALpGrvIyoiIXd3YKiIvzM7s3yhVUEkngde1NRnOUYwjKcpSUYwhFynOUtIxjFJuUpSaSSV30BtJNt2SV227JJau7eyt1P4pvFzTf8FY/+C3WoaFcynWPgt8NfF194cjtoyVsLX4P/By4WTW0s9QiWWGSfxf4sjaxs8pJa3FtaRTQCe2k8w/r+a4ynl/DEaEKUKFWLUeSDc4wlKFKMYQqWg3CE/cWkfdtaEErR8PLqCqKpWm5NyxM4+0lBRlNqEZS5lGTUZtNuV3Jc7erbV/7VoreC1hhtbWGK2treGOC3t4I0hhgghURxQxRRqqRRRxqqxxoqpGgVFUKoFfj927tttttttttu+7bbbvvfrv1Pd/r9BZI4Z4pYJ40mhmR4poZY0lilikUo8cscgKPG6MyujKVZSVYEEgmt7qTT0tbo073VrNPzTX3pCeqt33vrp2scPpPws+F2gTXtzoPw38BaLcahOLq+m0nwd4e06W+usr/AKTeSWenwvcz4Rf307SSZUEMMDFOpWlbmq1Gr7e1m7W2Su++unLbTtrLp0nvTg9LfCnby1+fz1O9LDtn8cAcdPXI7YPv3ORlyvvfXdt/ltddHpu7p7O/v8v67/1YcNpAOTu3NlcYULgYbeDkkncG+RdoVcMwYqraUbau7vFpxXw2XLyyvu22nFxSSSlzSbkorq9Fays7631unp6Wd9ddrXf8ev8AwXT/AGpbz9rv9oz4Zf8ABPD9nyG71fVPhx8S7DTfGIuNYtk0jxx8bdZ0u3tNH8LWEVqTbSWfgC3vr+71K/u5Els5tQM9jPKpJT9oyfLMNwvkTzqU6sMbjaFLmdSpQr06dqcpT+qywkG1TnOo1LnqVZSjCnJcjTb+SWJlnWOlhXGPsMNiatOEoxqU5SStdzVWSfNGKtK8IrmcrbpH9Mv7GH7Nmi/sjfszfCb4B6TNFe3HgjwzaxeI9XgXamueL9QH2/xPq4YrGzx3esT3P2aSSOOZ7OOAzr55kJ/IcZiJYzFV8ROTm51Jtc19uZ236dbdHvqko/VUqNPDwVOlG0V02volf/yVbWS2SVrH1HuHfJ/znH/68+vGMVyuN77Xe929bPTbbTy+e99P+D/wEeUfGP4HfB/9oPwXqHw8+Nnw78L/ABK8G6nG0d1ofijTYr2FCzRs0tjcgx32mXL+UivdaZdWd0Y1MRmMTuja0qtei+alUcJXvdd9dXH4ZNX91tKzbdr7y4xlbminba6Tt6X79TK+C/7OPwH/AGd9GbQfgj8J/BXw002SNIZ18MaLb2d7dwxRW8MUN9qz+bq1/FGlna7I7y9nUNCsgHmbmbbEYzF4tRjiMROpGKSUHZU7rmtL2UVGnzrnkubl5uWTi3a1hRjF3SSbvd2111a9G9baK6PVtd0PQvFGj6h4f8S6LpXiHQdWtms9V0TXdNs9X0fU7R8F7XUNN1CG4s7y3kZVLwXEMsTFQWQnGOam50pRnSnKnOLdpQk4SXNo+WUWnHS67te63yjdno9U+j2+7XyZ+XOtf8ETf+Camu+Mn8a3X7OOj211Pdfa7nQ9O17xHZeGbiUqqup0uHUw9tDKVZ2gsLqzijZ2+zrCm1F+lw/Fud4XDPD061KV+b9/VpydaLcVFOLUvZ+6kuVSpyhdXlGV3fGNCMNKcpwjzcziuVpuyT1lGU1dLW0lbo09T7P+Cv7I37Mf7Oif8WS+CHw++Hdxggalomg2760A8P2eRRr1+bzWgssOI5lF+FnQKsyvtUjyMXmeY42/1nF1qydrxlLlg/e5neEEoPyvF26FqlSjLnUI81klJq8tL21d2t3qn1PosnPbH+f8964Vsv0/4ZfkaADwR+XTv1/kP/19E1qn9+r2/J2u9PxXU/r+t/yMPTvC/hfRtU1jXNI8N6DpeteIZI59f1jTtH0+x1TXJ4VKQy6xf2sEd3qckSkrHJezTvGpIRlGKuVStNRhOrOUKaUYRlOU0oxTSSUtIpK1lFaarZiSjG9opXbbslrJ7t2Su31e5uEg8gY9fTPt+H+cVCv1/Nvour8/897jEpiCgAoAKACgAoAKACgAoAKACgAoAeu4D5gueOEYsD0BOSqjhiQMjGAG4JZRHV8tklay3klvZqzf/bt35SWwDKsAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA+V/20/2TfB/7bn7PXi/9nbx14n8U+EPDni+60O8utb8IS2Mer28ug6pbapBGFv7a6t5raeS32yw7Y23eXIHxGY5PQyjM6uUYv63Tpxm3CVOcZSlF8smqjcZpSUZKcYvmcZRceaNk2pLHEUIYin7OeykpLRNXUWtU99JS7a29C7+x7+yf8Ov2LPgboHwI+Gd3q2p+H9F1TXNbu9c1wwnWNf1rX71ry/1PUfs4ESTugtbVI0Zlit7WGNX2ooCzfM6mbY2pi6nNFtKNNTm6k4U4u8VduV7ucnaNoq/Lq7ylVGlGjTUIqMVe7UUlG7te1ku27V3u+x9N1wGgUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQB8af8FAv+Gibj9kX4y6P+yn4cvfEvx08TeH4fC3gyDT9T0vSrrTBr+oWmna3rkdxrF1ZWbtpmgzalIsH2qKd3ZXt/MljWJ/XyOrhaGZYevjKsaNKjzzvODmpT5XGEbRUmmnL2ilyt3gkrSaa5cZCpUw86dKPNKbimlKMWo8ycviaTuly2b15vI+Dv+CMP/BNvW/2L/hvr3xO+Muj3ml/tB/E+ObSdU0W/wBZ0rXZvBvgDT9UN3oWhXGoaNc6hp1xrOpXKza5qk9pqNwyJfW1ldtHe293bQ+txPnWHzB0cLgKvtMNTtUq1VGcHOt78fZqM4wajCPLKUmpc03Hlsqacoy6nVoYadKrFQ5sROqkuVtKUKcVdx2vy/DpbRtJ3R+3pOefz+vf8+tfJHcJQIKACgDI8RWWpal4c17TdF1E6PrWo6NqtjpGrhQ/9landWE8FhqXllXDmxupI7raUYHysbW+7VUpQhiKM6kOenCcJ1IpczlCM05R5W1GXMlaKk0m77bkzTlCcYu0pQklK9rSt7uq1WuqaXR+R/OZ/wAEvf8Agk38f/2ef2xPiD+0T+1hF4U8YXWn6d4k1D4c+M7TxefEWs+IfiB411u5bXPFmu6JLbvDYXkHh29urC0vGaG6hk+x/Z8C2G367OeJqmNwEMsoTU8P7spVOWcWrbxjzcsteSHNvGUXJdbLx8py6WD9vOpDknOvOUVeDTi6dOKl7jly/DJWunu2lfX+ktsZ4/z/AJ/D6V8ck1u7/wBWX4b+dz2xKYgoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgBRx/n/8AV/Ok1f5O/wDW/wCT9L2YwY5OaEmt3fV/1/XXbSyASmIKACgAoAcCB9c+gP8A9fgZwM9cdKTTbVraX16/LRrtrrpfQAJHHB/HBxnPtzjqM/8A16Erfe317+f49LjEJz/X35/z9OlMQlABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAH8oP/EYh/wAEzP8Aohv7df8A4bP4Af8A0Tlfov8AxDLiD/oKyb/wpxv/AM7jwv8AWHBf8+sV/wCA0v8A5cH/ABGIf8EzP+iG/t1/+Gz+AH/0TlH/ABDLiD/oKyb/AMKcb/8AO4P9YcF/z6xX/gNL/wCXB/xGIf8ABMz/AKIb+3X/AOGz+AH/ANE5R/xDLiD/AKCsm/8ACnG//O4P9YcF/wA+sV/4DS/+XB/xGIf8EzP+iG/t1/8Ahs/gB/8AROUf8Qy4g/6Csm/8Kcb/APO4P9YcF/z6xX/gNL/5cH/EYh/wTM/6Ib+3X/4bP4Af/ROUf8Qy4g/6Csm/8Kcb/wDO4P8AWHBf8+sV/wCA0v8A5cL/AMRiX/BM7I/4sZ+3Vtwcn/hWnwByDxgBf+Gm8EEbsncMYAAOSyn/ABDDPv8AoMyn/wAKsd/8wB/rDgf+feL/APAKX/y8T/iMQ/4Jmf8ARDf26/8Aw2fwA/8AonKP+IZcQf8AQVk3/hTjf/ncH+sOC/59Yr/wGl/8uD/iMQ/4Jmf9EN/br/8ADZ/AD/6Jyj/iGXEH/QVk3/hTjf8A53B/rDgv+fWK/wDAaX/y4P8AiMQ/4Jmf9EN/br/8Nn8AP/onKP8AiGXEH/QVk3/hTjf/AJ3B/rDgv+fWK/8AAaX/AMuD/iMQ/wCCZn/RDf26/wDw2fwA/wDonKP+IZcQf9BWTf8AhTjf/ncH+sOC/wCfWK/8Bpf/AC4P+IxD/gmZ/wBEN/br/wDDZ/AD/wCico/4hlxB/wBBWTf+FON/+dwf6w4L/n1iv/AaX/y4P+IxD/gmZ/0Q39uv/wANn8AP/onKP+IZcQf9BWTf+FON/wDncH+sOC/59Yr/AMBpf/Lg/wCIxD/gmZ/0Q39uv/w2fwA/+ico/wCIZcQf9BWTf+FON/8AncH+sOC/59Yr/wABpf8Ay4P+IxD/AIJmf9EN/br/APDZ/AD/AOico/4hlxB/0FZN/wCFON/+dwf6w4L/AJ9Yr/wGl/8ALg/4jEP+CZn/AEQ39uv/AMNn8AP/AKJyj/iGXEH/AEFZN/4U43/53B/rDgv+fWK/8Bpf/Lg/4jEP+CZn/RDf26//AA2fwA/+ico/4hlxB/0FZN/4U43/AOdwf6w4L/n1iv8AwGl/8uD/AIjEP+CZn/RDf26//DZ/AD/6Jyj/AIhlxB/0FZN/4U43/wCdwf6w4L/n1iv/AAGl/wDLg/4jEP8AgmZ/0Q39uv8A8Nn8AP8A6Jyj/iGXEH/QVk3/AIU43/53B/rDgv8An1iv/AaX/wAuD/iMQ/4Jmf8ARDf26/8Aw2fwA/8AonKP+IZcQf8AQVk3/hTjf/ncH+sOC/59Yr/wGl/8uD/iMQ/4Jmf9EN/br/8ADZ/AD/6Jyj/iGXEH/QVk3/hTjf8A53B/rDgv+fWK/wDAaX/y4P8AiMQ/4Jmf9EN/br/8Nn8AP/onKP8AiGXEH/QVk3/hTjf/AJ3B/rDgv+fWK/8AAaX/AMuD/iMQ/wCCZn/RDf26/wDw2fwA/wDonKP+IZcQf9BWTf8AhTjf/ncH+sOC/wCfWK/8Bpf/AC4P+IxD/gmZ/wBEN/br/wDDZ/AD/wCico/4hlxB/wBBWTf+FON/+dwf6w4L/n1iv/AaX/y4P+IxD/gmZ/0Q39uv/wANn8AP/onKP+IZcQf9BWTf+FON/wDncH+sOC/59Yr/AMBpf/Lg/wCIxD/gmZ/0Q39uv/w2fwA/+ico/wCIZcQf9BWTf+FON/8AncH+sOC/59Yr/wABpf8Ay4P+IxD/AIJmf9EN/br/APDZ/AD/AOico/4hlxB/0FZN/wCFON/+dwf6w4L/AJ9Yr/wGl/8ALg/4jEP+CZn/AEQ39uv/AMNn8AP/AKJyj/iGXEH/AEFZN/4U43/53B/rDgv+fWK/8Bpf/Lg/4jEP+CZn/RDf26//AA2fwA/+ico/4hlxB/0FZN/4U43/AOdwf6w4L/n1iv8AwGl/8uD/AIjEP+CZn/RDf26//DZ/AD/6Jyj/AIhlxB/0FZN/4U43/wCdwf6w4L/n1iv/AAGl/wDLg/4jEP8AgmZ/0Q39uv8A8Nn8AP8A6Jyj/iGXEH/QVk3/AIU43/53B/rDgv8An1iv/AaX/wAuD/iMQ/4Jmf8ARDf26/8Aw2fwA/8AonKP+IZcQf8AQVk3/hTjf/ncH+sOC/59Yr/wGl/8uD/iMQ/4Jmf9EN/br/8ADZ/AD/6Jyj/iGXEH/QVk3/hTjf8A53B/rDgv+fWK/wDAaX/y4P8AiMQ/4Jmf9EN/br/8Nn8AP/onKP8AiGXEH/QVk3/hTjf/AJ3B/rDgv+fWK/8AAaX/AMuD/iMQ/wCCZn/RDf26/wDw2fwA/wDonKP+IZcQf9BWTf8AhTjf/ncH+sOC/wCfWK/8Bpf/AC4P+IxD/gmZ/wBEN/br/wDDZ/AD/wCico/4hlxB/wBBWTf+FON/+dwf6w4L/n1iv/AaX/y4P+IxD/gmZ/0Q39uv/wANn8AP/onKP+IZcQf9BWTf+FON/wDncH+sOC/59Yr/AMBpf/Lg/wCIxD/gmZ/0Q39uv/w2fwA/+ico/wCIZcQf9BWTf+FON/8AncH+sOC/59Yr/wABpf8Ay4P+IxD/AIJmf9EN/br/APDZ/AD/AOico/4hlxB/0FZN/wCFON/+dwf6w4L/AJ9Yr/wGl/8ALg/4jEP+CZn/AEQ39uv/AMNn8AP/AKJyj/iGXEH/AEFZN/4U43/53B/rDgv+fWK/8Bpf/Lg/4jEP+CZn/RDf26//AA2fwA/+ico/4hlxB/0FZN/4U43/AOdwf6w4L/n1iv8AwGl/8uD/AIjEP+CZn/RDf26//DZ/AD/6Jyj/AIhlxB/0FZN/4U43/wCdwf6w4L/n1iv/AAGl/wDLg/4jEP8AgmZ/0Q39uv8A8Nn8AP8A6Jyj/iGXEH/QVk3/AIU43/53B/rDgv8An1iv/AaX/wAuD/iMQ/4Jmf8ARDf26/8Aw2fwA/8AonKP+IZcQf8AQVk3/hTjf/ncH+sOC/59Yr/wGl/8uD/iMQ/4Jmf9EN/br/8ADZ/AD/6Jyj/iGXEH/QVk3/hTjf8A53B/rDgv+fWK/wDAaX/y4P8AiMQ/4Jmf9EN/br/8Nn8AP/onKP8AiGXEH/QVk3/hTjf/AJ3B/rDgv+fWK/8AAaX/AMuD/iMQ/wCCZn/RDf26/wDw2fwA/wDonKP+IZcQf9BWTf8AhTjf/ncH+sOC/wCfWK/8Bpf/AC4P+IxD/gmZ/wBEN/br/wDDZ/AD/wCico/4hlxB/wBBWTf+FON/+dwf6w4L/n1iv/AaX/y4P+IxD/gmZ/0Q39uv/wANn8AP/onKP+IZcQf9BWTf+FON/wDncH+sOC/59Yr/AMBpf/Lg/wCIxD/gmZ/0Q39uv/w2fwA/+ico/wCIZcQf9BWTf+FON/8AncH+sOC/59Yr/wABpf8Ay4P+IxD/AIJmf9EN/br/APDZ/AD/AOico/4hlxB/0FZN/wCFON/+dwf6w4L/AJ9Yr/wGl/8ALg/4jEP+CZn/AEQ39uv/AMNn8AP/AKJyj/iGXEH/AEFZN/4U43/53B/rDgv+fWK/8Bpf/Lg/4jEP+CZn/RDf26//AA2fwA/+ico/4hlxB/0FZN/4U43/AOdwf6w4L/n1iv8AwGl/8uD/AIjEP+CZn/RDf26//DZ/AD/6Jyj/AIhlxB/0FZN/4U43/wCdwf6w4L/n1iv/AAGl/wDLg/4jEP8AgmZ/0Q39uv8A8Nn8AP8A6Jyj/iGXEH/QVk3/AIU43/53B/rDgv8An1iv/AaX/wAuD/iMQ/4Jmf8ARDf26/8Aw2fwA/8AonKP+IZcQf8AQVk3/hTjf/ncH+sOC/59Yr/wGl/8uD/iMQ/4Jmf9EN/br/8ADZ/AD/6Jyj/iGXEH/QVk3/hTjf8A53B/rDgv+fWK/wDAaX/y4P8AiMQ/4Jmf9EN/br/8Nn8AP/onKP8AiGXEH/QVk3/hTjf/AJ3B/rDgv+fWK/8AAaX/AMuD/iMQ/wCCZn/RDf26/wDw2fwA/wDonKP+IZcQf9BWTf8AhTjf/ncH+sOC/wCfWK/8Bpf/AC4P+IxD/gmZ/wBEN/br/wDDZ/AD/wCico/4hlxB/wBBWTf+FON/+dwf6w4L/n1iv/AaX/y4P+IxD/gmZ/0Q39uv/wANn8AP/onKP+IZcQf9BWTf+FON/wDncH+sOC/59Yr/AMBpf/Lg/wCIxD/gmZ/0Q39uv/w2fwA/+ico/wCIZcQf9BWTf+FON/8AncH+sOC/59Yr/wABpf8Ay4P+IxD/AIJmf9EN/br/APDZ/AD/AOico/4hlxB/0FZN/wCFON/+dwf6w4L/AJ9Yr/wGl/8ALg/4jEP+CZn/AEQ39uv/AMNn8AP/AKJyj/iGXEH/AEFZN/4U43/53B/rDgv+fWK/8Bpf/Lg/4jEP+CZn/RDf26//AA2fwA/+ico/4hlxB/0FZN/4U43/AOdwf6w4L/n1iv8AwGl/8uD/AIjEP+CZn/RDf26//DZ/AD/6Jyj/AIhlxB/0FZN/4U43/wCdwf6w4L/n1iv/AAGl/wDLg/4jEP8AgmZ/0Q39uv8A8Nn8AP8A6Jyj/iGXEH/QVk3/AIU43/53B/rDgv8An1iv/AaX/wAuD/iMQ/4Jmf8ARDf26/8Aw2fwA/8AonKP+IZcQf8AQVk3/hTjf/ncH+sOC/59Yr/wGl/8uD/iMQ/4Jm/9EN/bq/8ADZ/AD/6JyheGOf8AXF5P8sRjX/7z0H+sOC/59Yr/AMApf/LhP+IxD/gmb/0Q39ur/wANn8AP/onKf/EMc+/6C8o/8KMb/wDMAf6w4L/n1iv/AACl/wDLw/4jEP8Agmb/ANEN/bq/8Nn8AP8A6Jyj/iGOff8AQXlH/hRjf/mAP9YcF/z6xX/gFL/5eL/xGIf8EzP+iG/t1/8Ahs/gB/8AROUv+IZcQf8AQVk3/hTjf/ncH+sOC/59Yr/wGl/8uD/iMQ/4Jmf9EN/br/8ADZ/AD/6Jyj/iGXEH/QVk3/hTjf8A53B/rDgv+fWK/wDAaX/y4P8AiMQ/4Jmf9EN/br/8Nn8AP/onKP8AiGXEH/QVk3/hTjf/AJ3B/rDgv+fWK/8AAaX/AMuD/iMQ/wCCZn/RDf26/wDw2fwA/wDonKP+IZcQf9BWTf8AhTjf/ncH+sOC/wCfWK/8Bpf/AC4P+IxD/gmZ/wBEN/br/wDDZ/AD/wCico/4hlxB/wBBWTf+FON/+dwf6w4L/n1iv/AaX/y4P+IxD/gmZ/0Q39uv/wANn8AP/onKP+IZcQf9BWTf+FON/wDncH+sOC/59Yr/AMBpf/Lg/wCIxD/gmZ/0Q39uv/w2fwA/+ico/wCIZcQf9BWTf+FON/8AncH+sOC/59Yr/wABpf8Ay4P+IxD/AIJmf9EN/br/APDZ/AD/AOico/4hlxB/0FZN/wCFON/+dwf6w4L/AJ9Yr/wGl/8ALg/4jEP+CZn/AEQ39uv/AMNn8AP/AKJyj/iGXEH/AEFZN/4U43/53B/rDgv+fWK/8Bpf/Lg/4jEP+CZn/RDf26//AA2fwA/+ico/4hlxB/0FZN/4U43/AOdwf6w4L/n1iv8AwGl/8uD/AIjEP+CZn/RDf26//DZ/AD/6Jyj/AIhlxB/0FZN/4U43/wCdwf6w4L/n1iv/AAGl/wDLg/4jEP8AgmZ/0Q39uv8A8Nn8AP8A6Jyj/iGXEH/QVk3/AIU43/53B/rDgv8An1iv/AaX/wAuD/iMQ/4Jmf8ARDf26/8Aw2fwA/8AonKP+IZcQf8AQVk3/hTjf/ncH+sOC/59Yr/wGl/8uD/iMQ/4Jmf9EN/br/8ADZ/AD/6Jyj/iGXEH/QVk3/hTjf8A53B/rDgv+fWK/wDAaX/y4P8AiMQ/4Jmf9EN/br/8Nn8AP/onKP8AiGXEH/QVk3/hTjf/AJ3B/rDgv+fWK/8AAaX/AMuD/iMQ/wCCZn/RDf26/wDw2fwA/wDonKP+IZcQf9BWTf8AhTjf/ncH+sOC/wCfWK/8Bpf/AC4P+IxD/gmZ/wBEN/br/wDDZ/AD/wCico/4hlxB/wBBWTf+FON/+dwf6w4L/n1iv/AaX/y4T/iMQ/4Jm/8ARDf26v8Aw2fwA/8AonKf/EMc+/6C8o/8KMb/APMAf6w4L/n1iv8AwCl/8vD/AIjEP+CZv/RDf26v/DZ/AD/6Jyj/AIhjn3/QXlH/AIUY3/5gD/WHBf8APrFf+AUv/l4f8RiH/BM3/ohv7dX/AIbP4Af/AETlH/EMc+/6C8o/8KMb/wDMAf6w4L/n1iv/AACl/wDLw/4jEP8Agmb/ANEN/bq/8Nn8AP8A6Jyj/iGOff8AQXlH/hRjf/mAP9YcF/z6xX/gFL/5eH/EYh/wTN/6Ib+3V/4bP4Af/ROUf8Qxz7/oLyj/AMKMb/8AMAf6w4L/AJ9Yr/wCl/8ALxf+IxD/AIJm/wDRDf26v/DZ/AD/AOico/4hjn//AEF5R/4UY3/53h/rDgv+fWK/8Apf/Lg/4jEP+CZn/RDf26//AA2fwA/+icpf8Qy4g/6Csm/8Kcb/APO4P9YcF/z6xX/gNL/5cH/EYh/wTM/6Ib+3X/4bP4Af/ROUf8Qy4g/6Csm/8Kcb/wDO4P8AWHBf8+sV/wCA0v8A5cH/ABGIf8EzP+iG/t1/+Gz+AH/0TlH/ABDLiD/oKyb/AMKcb/8AO4P9YcF/z6xX/gNL/wCXB/xGIf8ABMz/AKIb+3X/AOGz+AH/ANE5R/xDLiD/AKCsm/8ACnG//O4P9YcF/wA+sV/4DS/+XB/xGIf8EzP+iG/t1/8Ahs/gB/8AROUf8Qy4g/6Csm/8Kcb/APO4P9YcF/z6xX/gNL/5cH/EYh/wTM/6Ib+3X/4bP4Af/ROUf8Qy4g/6Csm/8Kcb/wDO4P8AWHBf8+sV/wCA0v8A5cH/ABGIf8EzP+iG/t1/+Gz+AH/0TlH/ABDLiD/oKyb/AMKcb/8AO4P9YcF/z6xX/gNL/wCXH//Z" alt="magrittr-pipe"/></p>
+
+<p><em>This version: November, 2014. Stefan Milton Bache</em> </p>
+
+<h1>Abstract</h1>
+
+<p><em>The magrittr</em> (to be pronounced with a sophisticated french accent) is
+a package with two aims: to decrease development time and to improve 
+readability and maintainability of code. Or even shortr: to make your code smokin&#39; (puff puff)!</p>
+
+<p>To archive its humble aims, <em>magrittr</em> (remember the accent) provides a new 
+&ldquo;pipe&rdquo;-like operator, <code>%&gt;%</code>, with which you may pipe a value forward into an 
+expression or function call; something along the lines of <code>x %&gt;% f</code>, rather
+than <code>f(x)</code>. This is not an unknown feature
+elsewhere; a prime example is the <code>|&gt;</code> operator used extensively in <code>F#</code>
+(to say the least) and indeed this &ndash; along with Unix pipes &ndash; served as a 
+motivation for developing the magrittr package.</p>
+
+<p>This vignette describes the main features of <em>magrittr</em> and demonstrates
+some features which has been added since the initial release.</p>
+
+<h1>Introduction and basics</h1>
+
+<p>At first encounter, you may wonder whether an operator such as <code>%&gt;%</code>  can really 
+be all that beneficial; but as you may notice, it semantically changes your 
+code in a way that makes it more intuitive to both read and write.</p>
+
+<p>Consider the following example, in which the <code>mtcars</code> dataset shipped with
+R is munged a little.</p>
+
+<pre><code class="r">library(magrittr)
+
+car_data &lt;- 
+  mtcars %&gt;%
+  subset(hp &gt; 100) %&gt;%
+  aggregate(. ~ cyl, data = ., FUN = . %&gt;% mean %&gt;% round(2)) %&gt;%
+  transform(kpl = mpg %&gt;% multiply_by(0.4251)) %&gt;%
+  print
+</code></pre>
+
+<pre><code>  cyl   mpg  disp    hp drat   wt  qsec   vs   am gear carb    kpl
+1   4 25.90 108.0 111.0 3.94 2.15 17.75 1.00 1.00 4.50 2.00 11.010
+2   6 19.74 183.3 122.3 3.59 3.12 17.98 0.57 0.43 3.86 3.43  8.391
+3   8 15.10 353.1 209.2 3.23 4.00 16.77 0.00 0.14 3.29 3.50  6.419
+</code></pre>
+
+<p>We start with a value, here <code>mtcars</code> (a <code>data.frame</code>). Based on this, we 
+first extract a subset, then  we aggregate the information based on the number 
+of cylinders, and then we transform the dataset by adding a variable
+for kilometers per liter as supplement to miles per gallon. Finally we print
+the result before assigning it.
+Note how the code is arranged in the logical
+order of how you think about the task: data-&gt;transform-&gt;aggregate, which
+is also the same order as the code will execute. It&#39;s like a recipe &ndash; easy to
+read, easy to follow!</p>
+
+<p>A horrific alternative would be to write</p>
+
+<pre><code class="r">car_data &lt;- 
+  transform(aggregate(. ~ cyl, 
+                      data = subset(mtcars, hp &gt; 100), 
+                      FUN = function(x) round(mean(x, 2))), 
+            kpl = mpg*0.4251)
+</code></pre>
+
+<p>There is a lot more clutter with parentheses, and the mental task of deciphering
+the code is more challenging&mdash;in particular if you did not write it yourself.</p>
+
+<p>Note also how &ldquo;building&rdquo; a function on the fly for use in <code>aggregate</code> is very
+simple in <em>magrittr</em>: rather than an actual value as left-hand side in 
+pipeline, just use the placeholder. This is also very useful in R&#39;s 
+<code>*apply</code> family of functions.</p>
+
+<p>Granted: you may make the second example better, perhaps throw in a few temporary
+variables (which is often avoided to some degree when using <em>magrittr</em>),
+but one often sees cluttered lines like the ones presented. </p>
+
+<p>And here is another selling point. Suppose I want to quickly want to add
+another step somewhere in the process. This is very easy in the
+to do in the pipeline version, but a little more challenging in the 
+&ldquo;standard&rdquo; example.</p>
+
+<p>The combined example shows a few neat features of the pipe (which it is not):</p>
+
+<ol>
+<li>By default the left-hand side (LHS) will be <em>piped in</em> as the first argument of 
+the function appearing on the right-hand side (RHS). This is the case in the 
+<code>subset</code> and <code>transform</code> expressions.</li>
+<li><code>%&gt;%</code> may be used in a nested fashion, e.g. it may appear in expressions within 
+arguments. This is used in the <code>mpg</code> to <code>kpl</code> conversion.</li>
+<li>When the LHS is needed at a position other than the first, one can use
+the dot,<code>&#39;.&#39;</code>, as placeholder. This is used in the <code>aggregate</code> expression.</li>
+<li>The dot in e.g. a formula is <em>not</em> confused with a placeholder, which is
+utilized in the <code>aggregate</code> expression.</li>
+<li>Whenever only <em>one</em> argument is needed, the LHS, then one can omit the
+empty parentheses. This is used in the call to <code>print</code> (which also returns its
+argument). Here, <code>LHS %&gt;% print()</code>, or even <code>LHS %&gt;% print(.)</code> would also work.</li>
+<li>A pipeline with a dot (<code>.</code>) as LHS will create a unary function. This is
+used to define the aggregator function.</li>
+</ol>
+
+<p>One feature, which was not utilized above is piping into <em>anonymous functions</em>,
+or <em>lambdas</em>. This is possible using standard function definitions, e.g.</p>
+
+<pre><code class="r">car_data %&gt;%
+(function(x) {
+  if (nrow(x) &gt; 2) 
+    rbind(head(x, 1), tail(x, 1))
+  else x
+})
+</code></pre>
+
+<p>However, <em>magrittr</em> also allows a short-hand notation:</p>
+
+<pre><code class="r">car_data %&gt;%
+{ 
+  if (nrow(.) &gt; 0)
+    rbind(head(., 1), tail(., 1))
+  else .
+}
+</code></pre>
+
+<pre><code>  cyl mpg disp  hp drat wt qsec vs am gear carb    kpl
+1   4  26  108 111    4  2   18  1  1    4    2 11.053
+3   8  15  350 192    3  4   17  0  0    3    4  6.377
+</code></pre>
+
+<p>Since all right-hand sides are really &ldquo;body expressions&rdquo; of unary functions, this
+is only the natural extension the simple right-hand side expressions. Of course
+longer and more complex functions can be made using this approach.</p>
+
+<p>In the first example the anonymous function is enclosed in parentheses.
+Whenever you want to use a function- or call-generating statement as right-hand side, 
+parentheses are used to evaluate the right-hand side before piping takes place.</p>
+
+<p>Another, less useful example is:</p>
+
+<pre><code class="r">1:10 %&gt;% (substitute(f(), list(f = sum)))
+</code></pre>
+
+<pre><code>[1] 55
+</code></pre>
+
+<h1>Additional pipe operators</h1>
+
+<p><em>magrittr</em> also provides three related pipe operators. These are not as
+common as <code>%&gt;%</code> but they become useful in special cases. </p>
+
+<p>The &ldquo;tee&rdquo; operator, <code>%T&gt;%</code> works like <code>%&gt;%</code>, except it returns the left-hand
+side value, and not the result of the right-hand side operation.
+This is useful when a step in a pipeline is used for its side-effect (printing,
+plotting, logging, etc.). As an example (where the actual plot is omitted here):</p>
+
+<pre><code class="r">rnorm(200) %&gt;%
+matrix(ncol = 2) %T&gt;%
+plot %&gt;% # plot usually does not return anything. 
+colSums
+</code></pre>
+
+<pre><code>[1]  6.916 -1.605
+</code></pre>
+
+<p>The &ldquo;exposition&rdquo; pipe operator, <code>%$%</code> exposes the names within the left-hand side
+object to the right-hand side expression. Essentially, it is a short-hand for 
+using the <code>with</code> functions (and the same left-hand side objects are accepted).
+This operator is handy when functions do not themselves have a data argument, as for 
+example <code>lm</code> and <code>aggregate</code> do. Here are a few examples as illustration:</p>
+
+<pre><code class="r">iris %&gt;%
+  subset(Sepal.Length &gt; mean(Sepal.Length)) %$%
+  cor(Sepal.Length, Sepal.Width)
+
+data.frame(z = rnorm(100)) %$% 
+  ts.plot(z)
+</code></pre>
+
+<p>Finally, the compound assignment pipe operator <code>%&lt;&gt;%</code> can be used as the first pipe
+in a chain. The effect will be that the result of the pipeline is assigned to the 
+left-hand side object, rather than returning the result as usual. It is essentially
+shorthand notation for expressions like <code>foo &lt;- foo %&gt;% bar %&gt;% baz</code>, which
+boils down to <code>foo %&lt;&gt;% bar %&gt;% baz</code>. Another example is</p>
+
+<pre><code class="r">iris$Sepal.Length %&lt;&gt;% sqrt
+</code></pre>
+
+<p>The <code>%&lt;&gt;%</code> can be used whenever <code>expr &lt;- ...</code> makes sense, e.g. </p>
+
+<ul>
+<li><code>x %&lt;&gt;% foo %&gt;% bar</code></li>
+<li><code>x[1:10] %&lt;&gt;% foo %&gt;% bar</code></li>
+<li><code>x$baz %&lt;&gt;% foo %&gt;% bar</code></li>
+</ul>
+
+<h1>Aliases</h1>
+
+<p>In addition to the <code>%&gt;%</code>-operator, <em>magrittr</em> provides some aliases for other
+operators which make operations such as addition or multiplication fit well 
+into the <em>magrittr</em>-syntax. As an example, consider:</p>
+
+<pre><code class="r">rnorm(1000)    %&gt;%
+multiply_by(5) %&gt;%
+add(5)         %&gt;%
+{ 
+   cat(&quot;Mean:&quot;, mean(.), 
+       &quot;Variance:&quot;, var(.), &quot;\n&quot;)
+   head(.)
+}
+</code></pre>
+
+<pre><code>Mean: 5.04 Variance: 23.25 
+</code></pre>
+
+<pre><code>[1]  10.019 -10.231  -3.341  -4.997  -1.728   8.690
+</code></pre>
+
+<p>which could be written in more compact form as</p>
+
+<pre><code class="r">rnorm(100) %&gt;% `*`(5) %&gt;% `+`(5) %&gt;% 
+{
+  cat(&quot;Mean:&quot;, mean(.), &quot;Variance:&quot;, var(.),  &quot;\n&quot;)
+  head(.)
+}
+</code></pre>
+
+<p>To see a list of the aliases, execute e.g. <code>?multiply_by</code>. </p>
+
+<h1>Development</h1>
+
+<p>The <em>magrittr</em> package is also available in a development version at the
+GitHub development page:
+<a href="http://github.com/smbache/magrittr">github.com/smbache/magrittr</a>.</p>
+
+</body>
+
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/doc/magrittr.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/INDEX	(revision 2476)
@@ -0,0 +1,13 @@
+%$%                     magrittr exposition pipe-operator
+%<>%                    magrittr compound assignment pipe-operator
+%>%                     magrittr forward-pipe operator
+%T>%                    magrittr tee operator
+[[.fseq                 Extract function(s) from a functional sequence.
+debug_fseq              Debugging function for functional sequences.
+debug_pipe              Debugging function for magrittr pipelines.
+extract                 Aliases
+freduce                 Apply a list of functions sequentially
+functions               Extract the function list from a functional
+                        sequence.
+magrittr                magrittr - Ceci n'est pas un pipe
+print.fseq              Print method for functional sequence.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/help/magrittr.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/help/magrittr.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/help/AnIndex	(revision 2476)
@@ -0,0 +1,40 @@
+magrittr-package	magrittr
+%$%	exposition
+%<>%	compound
+%>%	pipe
+%T>%	tee
+add	aliases
+and	aliases
+debug_fseq	debug_fseq
+debug_pipe	debug_pipe
+divide_by	aliases
+divide_by_int	aliases
+equals	aliases
+extract	aliases
+extract2	aliases
+freduce	freduce
+functions	functions
+inset	aliases
+inset2	aliases
+is_greater_than	aliases
+is_in	aliases
+is_less_than	aliases
+is_weakly_greater_than	aliases
+is_weakly_less_than	aliases
+magrittr	magrittr
+mod	aliases
+multiply_by	aliases
+multiply_by_matrix	aliases
+n'est pas	aliases
+not	aliases
+or	aliases
+print.fseq	print.fseq
+raise_to_power	aliases
+set_colnames	aliases
+set_names	aliases
+set_rownames	aliases
+subtract	aliases
+undebug_fseq	debug_fseq
+use_series	aliases
+[.fseq	fseq
+[[.fseq	fseq
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/help/magrittr.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/magrittr/help/magrittr.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/R/codetools
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/R/codetools	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/R/codetools	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/R/codetools.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/R/codetools.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/R/codetools.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/R/codetools.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/tests/tests.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/tests/tests.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/tests/tests.R	(revision 2476)
@@ -0,0 +1,90 @@
+library(codetools)
+assert <- function(e)
+    if (! e) stop(paste("assertion failed:", deparse(substitute(e))))
+local({
+    st <- function(e) {
+        v <- NULL
+        write <- function(x)
+            v <<- paste(v, as.character(x), sep = "")
+        showTree(e, write = write)
+        v
+    }
+    assert(identical(st(quote(f(x))), "(f x)\n"))
+    assert(identical(st(quote((x+y)*z)), "(* (\"(\" (+ x y)) z)\n"))
+    assert(identical(st(quote(-3)), "(- 3)\n"))
+})
+assert(identical(constantFold(quote(3)), 3))
+assert(identical(constantFold(quote(1+2)), 3))
+assert(identical(constantFold(quote(1+2+x)), NULL))
+assert(identical(constantFold(quote(pi)), pi))
+assert(identical(constantFold(quote(pi), "pi"), NULL))
+assert(identical(constantFold(quote(pi), "pi", FALSE), FALSE))
+assert(identical(getAssignedVar(quote("v"<-x)), "v"))
+assert(identical(getAssignedVar(quote(v<-x)), "v"))
+assert(identical(getAssignedVar(quote(f(v)<-x)), "v"))
+assert(identical(getAssignedVar(quote(f(g(v,2),1)<-x)), "v"))
+assert(identical(findLocals(quote(x<-1)), "x"))
+assert(identical(findLocals(quote(f(x)<-1)), "x"))
+assert(identical(findLocals(quote(f(g(x,2),1)<-1)), "x"))
+assert(identical(findLocals(quote(x<-y<-1)), c("x","y")))
+assert(identical(findLocals(quote(local(x<-1,e))), "x"))
+assert(identical(findLocals(quote(local(x<-1))), character(0)))
+assert(identical(findLocals(quote({local<-1;local(x<-1)})), c("local", "x")))
+assert(identical(findLocals(quote(local(x<-1,e)), "local"), "x"))
+local({
+    f <- function (f, x, y) {
+        local <- f
+        local(x <- y)
+        x
+    }
+    assert(identical(findLocals(body(f)), c("local","x")))
+})
+local({
+    env <- new.env()
+    assign("local", 1, env)
+    assert(identical(findLocals(quote(local(x<-1,e)), env), "x"))
+})
+assert(identical(findLocals(quote(assign(x, 3))), character(0)))
+assert(identical(findLocals(quote(assign("x", 3))), "x"))
+assert(identical(findLocals(quote(assign("x", 3, 4))), character(0)))
+local({
+    f<-function() { x <- 1; y <- 2}
+    assert(identical(sort(findFuncLocals(formals(f),body(f))), c("x","y")))
+    f<-function(u = x <- 1) y <- 2
+    assert(identical(sort(findFuncLocals(formals(f),body(f))), c("x","y")))
+})
+assert(identical(flattenAssignment(quote(x)), list(NULL, NULL)))
+assert(identical(flattenAssignment(quote(f(x, 1))),
+                 list(list(quote(x)),
+                      list(quote("f<-"(x, 1, value = `*tmpv*`))))))
+assert(identical(flattenAssignment(quote(f(g(x, 2), 1))),
+                 list(list(quote(x), quote(g(`*tmp*`, 2))),
+                     list(quote("f<-"(`*tmp*`, 1, value = `*tmpv*`)),
+                          quote("g<-"(x, 2, value = `*tmpv*`))))))
+assert(identical(flattenAssignment(quote(f(g(h(x, 3), 2), 1))),
+                 list(list(quote(x),
+                           quote(h(`*tmp*`, 3)),
+                           quote(g(`*tmp*`, 2))),
+                     list(quote("f<-"(`*tmp*`, 1, value = `*tmpv*`)),
+                          quote("g<-"(`*tmp*`, 2, value = `*tmpv*`)),
+                          quote("h<-"(x, 3, value = `*tmpv*`))))))
+assert(identical(flattenAssignment(quote(f(g(h(k(x, 4), 3), 2), 1))),
+                 list(list(quote(x),
+                           quote(k(`*tmp*`, 4)),
+                           quote(h(`*tmp*`, 3)),
+                           quote(g(`*tmp*`, 2))),
+                     list(quote("f<-"(`*tmp*`, 1, value = `*tmpv*`)),
+                          quote("g<-"(`*tmp*`, 2, value = `*tmpv*`)),
+                          quote("h<-"(`*tmp*`, 3, value = `*tmpv*`)),
+                          quote("k<-"(x, 4, value = `*tmpv*`))))))
+if (getRversion() >= "2.13.0")
+    assert(identical(flattenAssignment(quote(base::diag(x))),
+                     list(list(quote(x)),
+                          list(quote(base::`diag<-`(x, value = `*tmpv*`))))))
+assert(! "y" %in% findGlobals(function() if (is.R()) x else y))
+assert(identical(findGlobals(function() if (FALSE) x), "if"))
+# **** need more test cases here
+assert(identical(sort(findGlobals(function(x) { z <- 1; x + y + z})),
+                 sort(c("<-", "{",  "+",  "y"))))
+
+assert(identical(findGlobals(function() Quote(x)), "Quote"))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/DESCRIPTION	(revision 2476)
@@ -0,0 +1,14 @@
+Package: codetools
+Version: 0.2-15
+Priority: recommended
+Author: Luke Tierney <luke-tierney@uiowa.edu>
+Description: Code analysis tools for R.
+Title: Code Analysis Tools for R
+Depends: R (>= 2.1)
+Maintainer: Luke Tierney <luke-tierney@uiowa.edu>
+License: GPL
+NeedsCompilation: no
+Packaged: 2016-10-05 12:32:32 UTC; luke
+Repository: CRAN
+Date/Publication: 2016-10-05 16:36:47
+Built: R 3.3.2; ; 2016-10-31 14:33:56 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/html/00Index.html	(revision 2476)
@@ -0,0 +1,64 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Code Analysis Tools for R</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Code Analysis Tools for R
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;codetools&rsquo; version 0.2-15</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="checkUsage.html">checkUsage</a></td>
+<td>Check R Code for Possible Problems</td></tr>
+<tr><td style="width: 25%;"><a href="checkUsage.html">checkUsageEnv</a></td>
+<td>Check R Code for Possible Problems</td></tr>
+<tr><td style="width: 25%;"><a href="checkUsage.html">checkUsagePackage</a></td>
+<td>Check R Code for Possible Problems</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">codetools</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">collectLocals</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">collectUsage</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">constantFold</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">findFuncLocals</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="findGlobals.html">findGlobals</a></td>
+<td>Find Global Functions and Variables Used by a Closure</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">findLocals</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">findLocalsList</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">flattenAssignment</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">getAssignedVar</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">isConstantValue</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">makeCodeWalker</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">makeConstantFolder</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">makeLocalsCollector</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">makeUsageCollector</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+<tr><td style="width: 25%;"><a href="showTree.html">showTree</a></td>
+<td>Print Lisp-Style Representation of R Expression</td></tr>
+<tr><td style="width: 25%;"><a href="codetools.html">walkCode</a></td>
+<td>Low Level Code Analysis Tools for R</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/INDEX	(revision 2476)
@@ -0,0 +1,5 @@
+checkUsage              Check R Code for Possible Problems
+codetools               Low Level Code Analysis Tools for R
+findGlobals             Find Global Functions and Variables Used by a
+                        Closure
+showTree                Print Lisp-Style Representation of R Expression
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/help/codetools.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/help/codetools.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/help/AnIndex	(revision 2476)
@@ -0,0 +1,20 @@
+checkUsage	checkUsage
+checkUsageEnv	checkUsage
+checkUsagePackage	checkUsage
+codetools	codetools
+collectLocals	codetools
+collectUsage	codetools
+constantFold	codetools
+findFuncLocals	codetools
+findGlobals	findGlobals
+findLocals	codetools
+findLocalsList	codetools
+flattenAssignment	codetools
+getAssignedVar	codetools
+isConstantValue	codetools
+makeCodeWalker	codetools
+makeConstantFolder	codetools
+makeLocalsCollector	codetools
+makeUsageCollector	codetools
+showTree	showTree
+walkCode	codetools
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/help/codetools.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/help/codetools.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/codetools/NAMESPACE	(revision 2476)
@@ -0,0 +1,18 @@
+export(walkCode,makeCodeWalker)
+
+export(showTree)
+
+export(makeConstantFolder,constantFold)
+export(isConstantValue)
+
+export(getAssignedVar)
+export(makeLocalsCollector,collectLocals)
+export(findLocals,findLocalsList)
+export(findFuncLocals)
+
+export(flattenAssignment)
+
+export(makeUsageCollector,collectUsage)
+export(findGlobals)
+
+export(checkUsage, checkUsageEnv, checkUsagePackage)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/R/nlme
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/R/nlme	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/R/nlme	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/R/nlme.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/R/nlme.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/R/nlme.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/R/nlme.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/LICENCE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/LICENCE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/LICENCE	(revision 2476)
@@ -0,0 +1,343 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
+
+---
+All the above is an exact copy of
+http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt  (on 2016-04-15)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/DESCRIPTION	(revision 2476)
@@ -0,0 +1,37 @@
+Package: nlme
+Version: 3.1-128
+Date: 2016-05-04
+Priority: recommended
+Title: Linear and Nonlinear Mixed Effects Models
+Authors@R: c(person("José", "Pinheiro", role = "aut", comment = "S version"),
+             person("Douglas", "Bates", role = "aut", comment = "up to 2007"),
+             person("Saikat", "DebRoy", role = "ctb", comment = "up to 2002"),
+             person("Deepayan", "Sarkar", role = "ctb", comment = "up to 2005"),
+             person("EISPACK authors", role = "ctb", comment = "src/rs.f"),
+	     person("Siem", "Heisterkamp", role = "ctb", comment = "Author fixed sigma"),
+             person("Bert", "Van Willigen",role = "ctb", comment = "Programmer fixed sigma"),
+	     person("R-core", email = "R-core@R-project.org",
+                    role = c("aut", "cre")))
+Description: Fit and compare Gaussian linear and nonlinear mixed-effects models.
+Depends: R (>= 3.0.2)
+Imports: graphics, stats, utils, lattice
+Suggests: Hmisc, MASS
+LazyData: yes
+ByteCompile: yes
+Encoding: UTF-8
+License: GPL (>= 2) | file LICENCE
+BugReports: http://bugs.r-project.org
+NeedsCompilation: yes
+Packaged: 2016-05-09 08:38:54 UTC; maechler
+Author: José Pinheiro [aut] (S version),
+  Douglas Bates [aut] (up to 2007),
+  Saikat DebRoy [ctb] (up to 2002),
+  Deepayan Sarkar [ctb] (up to 2005),
+  EISPACK authors [ctb] (src/rs.f),
+  Siem Heisterkamp [ctb] (Author fixed sigma),
+  Bert Van Willigen [ctb] (Programmer fixed sigma),
+  R-core [aut, cre]
+Maintainer: R-core <R-core@R-project.org>
+Repository: CRAN
+Date/Publication: 2016-05-10 11:40:55
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:34:10 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/mlbook/ch05.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/mlbook/ch05.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/mlbook/ch05.R	(revision 2476)
@@ -0,0 +1,15 @@
+library(nlme)
+# data(bdf)
+## Model with random slope for IQ.ver.cen
+## Compare with Table 5.1, p. 71.
+fm5 <- lme(langPOST ~ IQ.ver.cen + avg.IQ.ver.cen,
+           data = bdf, random = ~ IQ.ver.cen, method = "ML")
+summary(fm5)
+VarCorr(fm5)
+-2 * c(logLik(fm5))                     # deviance
+## Add centered class size and interaction
+## Compare with Table 5.2, p. 75
+fm6 <- update(fm5, langPOST ~ avg.IQ.ver.cen + IQ.ver.cen * grpSiz.cen)
+summary(fm6)
+VarCorr(fm6)
+-2 * c(logLik(fm6))                     # deviance
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/mlbook/README
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/mlbook/README	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/mlbook/README	(revision 2476)
@@ -0,0 +1,4 @@
+The scripts in this directory reproduce some of the examples from the book
+
+  Snijders, Tom and Bosker, Roel (1999), Multilevel Analysis: An
+    Introduction to Basic and Advanced Multilevel Modeling, Sage.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/mlbook/ch04.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/mlbook/ch04.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/mlbook/ch04.R	(revision 2476)
@@ -0,0 +1,26 @@
+library(nlme)
+# data(bdf)
+## Fit the null model
+## Compare with Table 4.1, p. 47
+fm1 <- lme(langPOST ~ 1, data = bdf, random = ~ 1 | schoolNR)
+VarCorr(fm1)
+-2*c(logLik(fm1))                       # deviance
+## Fit model with fixed IQ term and random intercept
+## Compare with Table 4.2, p. 49
+## From the results in Tables 4.2 and 4.4, it appears that
+##  maximum likelihood fits are used, not REML fits.
+fm2 <- update(fm1, langPOST ~ IQ.ver.cen)
+summary(fm2)
+VarCorr(fm2)
+-2 * c(logLik(fm2))                     # deviance
+## Purely fixed-effects model for comparison
+## Compare with Table 4.3, p. 51
+fm3 <- lm(langPOST ~ IQ.ver.cen, data = bdf)
+summary(fm3)
+-2 * c(logLik(fm3))                     # deviance
+## Model with average IQ for the school
+## Compare with Table 4.4, p. 55
+fm4 <- update(fm2, langPOST ~ IQ.ver.cen + avg.IQ.ver.cen)
+summary(fm4)
+VarCorr(fm4)
+-2 * c(logLik(fm4))                     # deviance
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/html/00Index.html	(revision 2476)
@@ -0,0 +1,1231 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Linear and Nonlinear Mixed Effects Models</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Linear and Nonlinear Mixed Effects Models
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;nlme&rsquo; version 3.1-128</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#G">G</a>
+<a href="#I">I</a>
+<a href="#L">L</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#O">O</a>
+<a href="#P">P</a>
+<a href="#Q">Q</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#U">U</a>
+<a href="#V">V</a>
+<a href="#W">W</a>
+<a href="#misc">misc</a>
+</p>
+
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="ACF.html">ACF</a></td>
+<td>Autocorrelation Function</td></tr>
+<tr><td style="width: 25%;"><a href="ACF.gls.html">ACF.gls</a></td>
+<td>Autocorrelation Function for gls Residuals</td></tr>
+<tr><td style="width: 25%;"><a href="ACF.lme.html">ACF.lme</a></td>
+<td>Autocorrelation Function for lme Residuals</td></tr>
+<tr><td style="width: 25%;"><a href="Alfalfa.html">Alfalfa</a></td>
+<td>Split-Plot Experiment on Varieties of Alfalfa</td></tr>
+<tr><td style="width: 25%;"><a href="allCoef.html">allCoef</a></td>
+<td>Extract Coefficients from a Set of Objects</td></tr>
+<tr><td style="width: 25%;"><a href="anova.gls.html">anova.gls</a></td>
+<td>Compare Likelihoods of Fitted Objects</td></tr>
+<tr><td style="width: 25%;"><a href="anova.lme.html">anova.lme</a></td>
+<td>Compare Likelihoods of Fitted Objects</td></tr>
+<tr><td style="width: 25%;"><a href="groupedData.html">as.data.frame.groupedData</a></td>
+<td>Construct a groupedData Object</td></tr>
+<tr><td style="width: 25%;"><a href="as.matrix.corStruct.html">as.matrix.corStruct</a></td>
+<td>Matrix of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="as.matrix.pdMat.html">as.matrix.pdMat</a></td>
+<td>Matrix of a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="as.matrix.reStruct.html">as.matrix.reStruct</a></td>
+<td>Matrices of an reStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="asOneFormula.html">asOneFormula</a></td>
+<td>Combine Formulas of a Set of Objects</td></tr>
+<tr><td style="width: 25%;"><a href="Assay.html">Assay</a></td>
+<td>Bioassay on Cell Culture Plate</td></tr>
+<tr><td style="width: 25%;"><a href="asTable.html">asTable</a></td>
+<td>Convert groupedData to a matrix</td></tr>
+<tr><td style="width: 25%;"><a href="asTable.html">asTable.groupedData</a></td>
+<td>Convert groupedData to a matrix</td></tr>
+<tr><td style="width: 25%;"><a href="augPred.html">augPred</a></td>
+<td>Augmented Predictions</td></tr>
+<tr><td style="width: 25%;"><a href="augPred.html">augPred.gls</a></td>
+<td>Augmented Predictions</td></tr>
+<tr><td style="width: 25%;"><a href="augPred.html">augPred.lme</a></td>
+<td>Augmented Predictions</td></tr>
+<tr><td style="width: 25%;"><a href="augPred.html">augPred.lmList</a></td>
+<td>Augmented Predictions</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="balancedGrouped.html">balancedGrouped</a></td>
+<td>Create a groupedData object from a matrix</td></tr>
+<tr><td style="width: 25%;"><a href="bdf.html">bdf</a></td>
+<td>Language scores</td></tr>
+<tr><td style="width: 25%;"><a href="BodyWeight.html">BodyWeight</a></td>
+<td>Rat weight over time for different diets</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Cefamandole.html">Cefamandole</a></td>
+<td>Pharmacokinetics of Cefamandole</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef.corAR1</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="corARMA.html">coef.corARMA</a></td>
+<td>ARMA(p,q) Correlation Structure</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef.corARMAd</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef.corCAR1</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef.corCompSymm</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef.corHF</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef.corIdent</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef.corLin</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef.corNatural</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef.corSpatial</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef.corSpher</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef.corStruct</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef.corSymm</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.gnls.html">coef.gnls</a></td>
+<td>Extract gnls Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.lme.html">coef.lme</a></td>
+<td>Extract lme Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.lmList.html">coef.lmList</a></td>
+<td>Extract lmList Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.modelStruct.html">coef.modelStruct</a></td>
+<td>Extract modelStruct Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.pdMat.html">coef.pdBlocked</a></td>
+<td>pdMat Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.pdMat.html">coef.pdCompSymm</a></td>
+<td>pdMat Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.pdMat.html">coef.pdDiag</a></td>
+<td>pdMat Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.pdMat.html">coef.pdIdent</a></td>
+<td>pdMat Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.pdMat.html">coef.pdMat</a></td>
+<td>pdMat Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.pdMat.html">coef.pdNatural</a></td>
+<td>pdMat Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.pdMat.html">coef.pdSymm</a></td>
+<td>pdMat Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.reStruct.html">coef.reStruct</a></td>
+<td>reStruct Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef.summary.nlsList</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.varFunc.html">coef.varComb</a></td>
+<td>varFunc Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.varFunc.html">coef.varConstPower</a></td>
+<td>varFunc Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.varFunc.html">coef.varExp</a></td>
+<td>varFunc Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.varFunc.html">coef.varFixed</a></td>
+<td>varFunc Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.varFunc.html">coef.varFunc</a></td>
+<td>varFunc Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.varFunc.html">coef.varIdent</a></td>
+<td>varFunc Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.varFunc.html">coef.varPower</a></td>
+<td>varFunc Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="Coef.html">coef&lt;-</a></td>
+<td>Assign Values to Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef&lt;-.corAR1</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef&lt;-.corARMA</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef&lt;-.corCAR1</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef&lt;-.corCompSymm</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef&lt;-.corHF</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef&lt;-.corIdent</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef&lt;-.corLin</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef&lt;-.corNatural</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef&lt;-.corSpatial</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef&lt;-.corSpher</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef&lt;-.corStruct</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.corStruct.html">coef&lt;-.corSymm</a></td>
+<td>Coefficients of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="coef.modelStruct.html">coef&lt;-.modelStruct</a></td>
+<td>Extract modelStruct Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.pdMat.html">coef&lt;-.pdBlocked</a></td>
+<td>pdMat Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.pdMat.html">coef&lt;-.pdMat</a></td>
+<td>pdMat Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.reStruct.html">coef&lt;-.reStruct</a></td>
+<td>reStruct Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.varFunc.html">coef&lt;-.varComb</a></td>
+<td>varFunc Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.varFunc.html">coef&lt;-.varConstPower</a></td>
+<td>varFunc Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.varFunc.html">coef&lt;-.varExp</a></td>
+<td>varFunc Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.varFunc.html">coef&lt;-.varFixed</a></td>
+<td>varFunc Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.varFunc.html">coef&lt;-.varIdent</a></td>
+<td>varFunc Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.varFunc.html">coef&lt;-.varPower</a></td>
+<td>varFunc Object Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="Coef.html">coefficients&lt;-</a></td>
+<td>Assign Values to Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="collapse.html">collapse</a></td>
+<td>Collapse According to Groups</td></tr>
+<tr><td style="width: 25%;"><a href="collapse.groupedData.html">collapse.groupedData</a></td>
+<td>Collapse a groupedData Object</td></tr>
+<tr><td style="width: 25%;"><a href="compareFits.html">compareFits</a></td>
+<td>Compare Fitted Objects</td></tr>
+<tr><td style="width: 25%;"><a href="comparePred.html">comparePred</a></td>
+<td>Compare Predictions</td></tr>
+<tr><td style="width: 25%;"><a href="comparePred.html">comparePred.gls</a></td>
+<td>Compare Predictions</td></tr>
+<tr><td style="width: 25%;"><a href="comparePred.html">comparePred.lme</a></td>
+<td>Compare Predictions</td></tr>
+<tr><td style="width: 25%;"><a href="comparePred.html">comparePred.lmList</a></td>
+<td>Compare Predictions</td></tr>
+<tr><td style="width: 25%;"><a href="corAR1.html">corAR1</a></td>
+<td>AR(1) Correlation Structure</td></tr>
+<tr><td style="width: 25%;"><a href="corARMA.html">corARMA</a></td>
+<td>ARMA(p,q) Correlation Structure</td></tr>
+<tr><td style="width: 25%;"><a href="corCAR1.html">corCAR1</a></td>
+<td>Continuous AR(1) Correlation Structure</td></tr>
+<tr><td style="width: 25%;"><a href="corClasses.html">corClasses</a></td>
+<td>Correlation Structure Classes</td></tr>
+<tr><td style="width: 25%;"><a href="corCompSymm.html">corCompSymm</a></td>
+<td>Compound Symmetry Correlation Structure</td></tr>
+<tr><td style="width: 25%;"><a href="corExp.html">corExp</a></td>
+<td>Exponential Correlation Structure</td></tr>
+<tr><td style="width: 25%;"><a href="corFactor.html">corFactor</a></td>
+<td>Factor of a Correlation Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="corFactor.corStruct.html">corFactor.compSymm</a></td>
+<td>Factor of a corStruct Object Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="corFactor.corStruct.html">corFactor.corAR1</a></td>
+<td>Factor of a corStruct Object Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="corFactor.corStruct.html">corFactor.corARMA</a></td>
+<td>Factor of a corStruct Object Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="corFactor.corStruct.html">corFactor.corCAR1</a></td>
+<td>Factor of a corStruct Object Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="corFactor.corStruct.html">corFactor.corNatural</a></td>
+<td>Factor of a corStruct Object Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="corFactor.corStruct.html">corFactor.corSpatial</a></td>
+<td>Factor of a corStruct Object Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="corFactor.corStruct.html">corFactor.corStruct</a></td>
+<td>Factor of a corStruct Object Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="corFactor.corStruct.html">corFactor.corSymm</a></td>
+<td>Factor of a corStruct Object Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="corGaus.html">corGaus</a></td>
+<td>Gaussian Correlation Structure</td></tr>
+<tr><td style="width: 25%;"><a href="corClasses.html">corIdent</a></td>
+<td>Correlation Structure Classes</td></tr>
+<tr><td style="width: 25%;"><a href="corLin.html">corLin</a></td>
+<td>Linear Correlation Structure</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.html">corMatrix</a></td>
+<td>Extract Correlation Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.corStruct.html">corMatrix.compSymm</a></td>
+<td>Matrix of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.corStruct.html">corMatrix.corAR1</a></td>
+<td>Matrix of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.corStruct.html">corMatrix.corARMA</a></td>
+<td>Matrix of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.corStruct.html">corMatrix.corCAR1</a></td>
+<td>Matrix of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.corStruct.html">corMatrix.corCompSymm</a></td>
+<td>Matrix of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.corStruct.html">corMatrix.corIdent</a></td>
+<td>Matrix of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.corStruct.html">corMatrix.corNatural</a></td>
+<td>Matrix of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.corStruct.html">corMatrix.corSpatial</a></td>
+<td>Matrix of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.corStruct.html">corMatrix.corStruct</a></td>
+<td>Matrix of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.corStruct.html">corMatrix.corSymm</a></td>
+<td>Matrix of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.pdMat.html">corMatrix.pdBlocked</a></td>
+<td>Extract Correlation Matrix from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.pdMat.html">corMatrix.pdCompSymm</a></td>
+<td>Extract Correlation Matrix from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.pdMat.html">corMatrix.pdDiag</a></td>
+<td>Extract Correlation Matrix from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.pdMat.html">corMatrix.pdIdent</a></td>
+<td>Extract Correlation Matrix from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.pdMat.html">corMatrix.pdMat</a></td>
+<td>Extract Correlation Matrix from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.pdMat.html">corMatrix.pdSymm</a></td>
+<td>Extract Correlation Matrix from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="corMatrix.reStruct.html">corMatrix.reStruct</a></td>
+<td>Extract Correlation Matrix from Components of an reStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="corNatural.html">corNatural</a></td>
+<td>General correlation in natural parameterization</td></tr>
+<tr><td style="width: 25%;"><a href="corRatio.html">corRatio</a></td>
+<td>Rational Quadratic Correlation Structure</td></tr>
+<tr><td style="width: 25%;"><a href="corSpatial.html">corSpatial</a></td>
+<td>Spatial Correlation Structure</td></tr>
+<tr><td style="width: 25%;"><a href="corSpher.html">corSpher</a></td>
+<td>Spherical Correlation Structure</td></tr>
+<tr><td style="width: 25%;"><a href="corClasses.html">corStruct</a></td>
+<td>Correlation Structure Classes</td></tr>
+<tr><td style="width: 25%;"><a href="corSymm.html">corSymm</a></td>
+<td>General Correlation Structure</td></tr>
+<tr><td style="width: 25%;"><a href="Covariate.html">covariate&lt;-</a></td>
+<td>Assign Covariate Values</td></tr>
+<tr><td style="width: 25%;"><a href="Covariate.varFunc.html">covariate&lt;-.varFunc</a></td>
+<td>Assign varFunc Covariate</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Dialyzer.html">Dialyzer</a></td>
+<td>High-Flux Hemodialyzer</td></tr>
+<tr><td style="width: 25%;"><a href="Dim.html">Dim</a></td>
+<td>Extract Dimensions from an Object</td></tr>
+<tr><td style="width: 25%;"><a href="Dim.corSpatial.html">Dim.corSpatial</a></td>
+<td>Dimensions of a corSpatial Object</td></tr>
+<tr><td style="width: 25%;"><a href="Dim.corStruct.html">Dim.corStruct</a></td>
+<td>Dimensions of a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Dim.html">Dim.default</a></td>
+<td>Extract Dimensions from an Object</td></tr>
+<tr><td style="width: 25%;"><a href="Dim.pdMat.html">Dim.pdCompSymm</a></td>
+<td>Dimensions of a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="Dim.pdMat.html">Dim.pdDiag</a></td>
+<td>Dimensions of a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="Dim.pdMat.html">Dim.pdIdent</a></td>
+<td>Dimensions of a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="Dim.pdMat.html">Dim.pdMat</a></td>
+<td>Dimensions of a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="Dim.pdMat.html">Dim.pdNatural</a></td>
+<td>Dimensions of a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="Dim.pdMat.html">Dim.pdSymm</a></td>
+<td>Dimensions of a pdMat Object</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Earthquake.html">Earthquake</a></td>
+<td>Earthquake Intensity</td></tr>
+<tr><td style="width: 25%;"><a href="ergoStool.html">ergoStool</a></td>
+<td>Ergometrics experiment with stool types</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Fatigue.html">Fatigue</a></td>
+<td>Cracks caused by metal fatigue</td></tr>
+<tr><td style="width: 25%;"><a href="fdHess.html">fdHess</a></td>
+<td>Finite difference Hessian</td></tr>
+<tr><td style="width: 25%;"><a href="fitted.glsStruct.html">fitted.glsStruct</a></td>
+<td>Calculate glsStruct Fitted Values</td></tr>
+<tr><td style="width: 25%;"><a href="fitted.gnlsStruct.html">fitted.gnlsStruct</a></td>
+<td>Calculate gnlsStruct Fitted Values</td></tr>
+<tr><td style="width: 25%;"><a href="fitted.lme.html">fitted.lme</a></td>
+<td>Extract lme Fitted Values</td></tr>
+<tr><td style="width: 25%;"><a href="fitted.lmeStruct.html">fitted.lmeStruct</a></td>
+<td>Calculate lmeStruct Fitted Values</td></tr>
+<tr><td style="width: 25%;"><a href="fitted.lmList.html">fitted.lmList</a></td>
+<td>Extract lmList Fitted Values</td></tr>
+<tr><td style="width: 25%;"><a href="fitted.nlmeStruct.html">fitted.nlmeStruct</a></td>
+<td>Calculate nlmeStruct Fitted Values</td></tr>
+<tr><td style="width: 25%;"><a href="fixed.effects.html">fixed.effects</a></td>
+<td>Extract Fixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="fixef.lmList.html">fixed.effects.lmList</a></td>
+<td>Extract lmList Fixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="fixed.effects.html">fixef</a></td>
+<td>Extract Fixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="fixef.lmList.html">fixef.lmList</a></td>
+<td>Extract lmList Fixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="formula.pdBlocked.html">formula.pdBlocked</a></td>
+<td>Extract pdBlocked Formula</td></tr>
+<tr><td style="width: 25%;"><a href="formula.pdMat.html">formula.pdMat</a></td>
+<td>Extract pdMat Formula</td></tr>
+<tr><td style="width: 25%;"><a href="formula.reStruct.html">formula.reStruct</a></td>
+<td>Extract reStruct Object Formula</td></tr>
+</table>
+
+<h2><a name="G">-- G --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="gapply.html">gapply</a></td>
+<td>Apply a Function by Groups</td></tr>
+<tr><td style="width: 25%;"><a href="Gasoline.html">Gasoline</a></td>
+<td>Refinery yield of gasoline</td></tr>
+<tr><td style="width: 25%;"><a href="getCovariate.html">getCovariate</a></td>
+<td>Extract Covariate from an Object</td></tr>
+<tr><td style="width: 25%;"><a href="getCovariate.corStruct.html">getCovariate.corSpatial</a></td>
+<td>Extract corStruct Object Covariate</td></tr>
+<tr><td style="width: 25%;"><a href="getCovariate.corStruct.html">getCovariate.corStruct</a></td>
+<td>Extract corStruct Object Covariate</td></tr>
+<tr><td style="width: 25%;"><a href="getCovariate.data.frame.html">getCovariate.data.frame</a></td>
+<td>Extract Data Frame Covariate</td></tr>
+<tr><td style="width: 25%;"><a href="getCovariate.varFunc.html">getCovariate.varFunc</a></td>
+<td>Extract varFunc Covariate</td></tr>
+<tr><td style="width: 25%;"><a href="getCovariateFormula.html">getCovariateFormula</a></td>
+<td>Extract Covariates Formula</td></tr>
+<tr><td style="width: 25%;"><a href="getData.html">getData</a></td>
+<td>Extract Data from an Object</td></tr>
+<tr><td style="width: 25%;"><a href="getData.gls.html">getData.gls</a></td>
+<td>Extract gls Object Data</td></tr>
+<tr><td style="width: 25%;"><a href="getData.gls.html">getData.gnls</a></td>
+<td>Extract gls Object Data</td></tr>
+<tr><td style="width: 25%;"><a href="getData.lme.html">getData.lme</a></td>
+<td>Extract lme Object Data</td></tr>
+<tr><td style="width: 25%;"><a href="getData.lmList.html">getData.lmList</a></td>
+<td>Extract lmList Object Data</td></tr>
+<tr><td style="width: 25%;"><a href="getData.lme.html">getData.nlme</a></td>
+<td>Extract lme Object Data</td></tr>
+<tr><td style="width: 25%;"><a href="getData.lme.html">getData.nls</a></td>
+<td>Extract lme Object Data</td></tr>
+<tr><td style="width: 25%;"><a href="getGroups.html">getGroups</a></td>
+<td>Extract Grouping Factors from an Object</td></tr>
+<tr><td style="width: 25%;"><a href="getGroups.corStruct.html">getGroups.corStruct</a></td>
+<td>Extract corStruct Groups</td></tr>
+<tr><td style="width: 25%;"><a href="getGroups.data.frame.html">getGroups.data.frame</a></td>
+<td>Extract Groups from a Data Frame</td></tr>
+<tr><td style="width: 25%;"><a href="getGroups.gls.html">getGroups.gls</a></td>
+<td>Extract gls Object Groups</td></tr>
+<tr><td style="width: 25%;"><a href="getGroups.lme.html">getGroups.lme</a></td>
+<td>Extract lme Object Groups</td></tr>
+<tr><td style="width: 25%;"><a href="getGroups.lmList.html">getGroups.lmList</a></td>
+<td>Extract lmList Object Groups</td></tr>
+<tr><td style="width: 25%;"><a href="getGroups.varFunc.html">getGroups.varFunc</a></td>
+<td>Extract varFunc Groups</td></tr>
+<tr><td style="width: 25%;"><a href="getGroupsFormula.html">getGroupsFormula</a></td>
+<td>Extract Grouping Formula</td></tr>
+<tr><td style="width: 25%;"><a href="getGroupsFormula.html">getGroupsFormula.default</a></td>
+<td>Extract Grouping Formula</td></tr>
+<tr><td style="width: 25%;"><a href="getGroupsFormula.html">getGroupsFormula.gls</a></td>
+<td>Extract Grouping Formula</td></tr>
+<tr><td style="width: 25%;"><a href="getGroupsFormula.html">getGroupsFormula.lme</a></td>
+<td>Extract Grouping Formula</td></tr>
+<tr><td style="width: 25%;"><a href="getGroupsFormula.html">getGroupsFormula.lmList</a></td>
+<td>Extract Grouping Formula</td></tr>
+<tr><td style="width: 25%;"><a href="getGroupsFormula.html">getGroupsFormula.reStruct</a></td>
+<td>Extract Grouping Formula</td></tr>
+<tr><td style="width: 25%;"><a href="getResponse.html">getResponse</a></td>
+<td>Extract Response Variable from an Object</td></tr>
+<tr><td style="width: 25%;"><a href="getResponse.html">getResponse.data.frame</a></td>
+<td>Extract Response Variable from an Object</td></tr>
+<tr><td style="width: 25%;"><a href="getResponseFormula.html">getResponseFormula</a></td>
+<td>Extract Formula Specifying Response Variable</td></tr>
+<tr><td style="width: 25%;"><a href="getVarCov.html">getVarCov</a></td>
+<td>Extract variance-covariance matrix</td></tr>
+<tr><td style="width: 25%;"><a href="getVarCov.html">getVarCov.gls</a></td>
+<td>Extract variance-covariance matrix</td></tr>
+<tr><td style="width: 25%;"><a href="getVarCov.html">getVarCov.lme</a></td>
+<td>Extract variance-covariance matrix</td></tr>
+<tr><td style="width: 25%;"><a href="gls.html">gls</a></td>
+<td>Fit Linear Model Using Generalized Least Squares</td></tr>
+<tr><td style="width: 25%;"><a href="glsControl.html">glsControl</a></td>
+<td>Control Values for gls Fit</td></tr>
+<tr><td style="width: 25%;"><a href="glsObject.html">glsObject</a></td>
+<td>Fitted gls Object</td></tr>
+<tr><td style="width: 25%;"><a href="glsStruct.html">glsStruct</a></td>
+<td>Generalized Least Squares Structure</td></tr>
+<tr><td style="width: 25%;"><a href="Glucose.html">Glucose</a></td>
+<td>Glucose levels over time</td></tr>
+<tr><td style="width: 25%;"><a href="Glucose2.html">Glucose2</a></td>
+<td>Glucose Levels Following Alcohol Ingestion</td></tr>
+<tr><td style="width: 25%;"><a href="gnls.html">gnls</a></td>
+<td>Fit Nonlinear Model Using Generalized Least Squares</td></tr>
+<tr><td style="width: 25%;"><a href="gnlsControl.html">gnlsControl</a></td>
+<td>Control Values for gnls Fit</td></tr>
+<tr><td style="width: 25%;"><a href="gnlsObject.html">gnlsObject</a></td>
+<td>Fitted gnls Object</td></tr>
+<tr><td style="width: 25%;"><a href="gnlsStruct.html">gnlsStruct</a></td>
+<td>Generalized Nonlinear Least Squares Structure</td></tr>
+<tr><td style="width: 25%;"><a href="groupedData.html">groupedData</a></td>
+<td>Construct a groupedData Object</td></tr>
+<tr><td style="width: 25%;"><a href="gsummary.html">gsummary</a></td>
+<td>Summarize by Groups</td></tr>
+<tr><td style="width: 25%;"><a href="Gun.html">Gun</a></td>
+<td>Methods for firing naval guns</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="IGF.html">IGF</a></td>
+<td>Radioimmunoassay of IGF-I Protein</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.html">Initialize</a></td>
+<td>Initialize Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.corStruct.html">Initialize.corAR1</a></td>
+<td>Initialize corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.corStruct.html">Initialize.corARMA</a></td>
+<td>Initialize corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.corStruct.html">Initialize.corCAR1</a></td>
+<td>Initialize corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.corStruct.html">Initialize.corCompSymm</a></td>
+<td>Initialize corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.corStruct.html">Initialize.corHF</a></td>
+<td>Initialize corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.corStruct.html">Initialize.corIdent</a></td>
+<td>Initialize corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.corStruct.html">Initialize.corLin</a></td>
+<td>Initialize corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.corStruct.html">Initialize.corNatural</a></td>
+<td>Initialize corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.corStruct.html">Initialize.corSpatial</a></td>
+<td>Initialize corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.corStruct.html">Initialize.corSpher</a></td>
+<td>Initialize corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.corStruct.html">Initialize.corStruct</a></td>
+<td>Initialize corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.corStruct.html">Initialize.corSymm</a></td>
+<td>Initialize corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.glsStruct.html">Initialize.glsStruct</a></td>
+<td>Initialize a glsStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="gnlsStruct.html">Initialize.gnlsStruct</a></td>
+<td>Generalized Nonlinear Least Squares Structure</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.lmeStruct.html">Initialize.lmeStruct</a></td>
+<td>Initialize an lmeStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.reStruct.html">Initialize.reStruct</a></td>
+<td>Initialize reStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.varFunc.html">Initialize.varComb</a></td>
+<td>Initialize varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.varFunc.html">Initialize.varConstPower</a></td>
+<td>Initialize varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.varFunc.html">Initialize.varExp</a></td>
+<td>Initialize varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.varFunc.html">Initialize.varFixed</a></td>
+<td>Initialize varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.varFunc.html">Initialize.varFunc</a></td>
+<td>Initialize varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.varFunc.html">Initialize.varIdent</a></td>
+<td>Initialize varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="Initialize.varFunc.html">Initialize.varPower</a></td>
+<td>Initialize varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="intervals.html">intervals</a></td>
+<td>Confidence Intervals on Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="intervals.gls.html">intervals.gls</a></td>
+<td>Confidence Intervals on gls Parameters</td></tr>
+<tr><td style="width: 25%;"><a href="intervals.lme.html">intervals.lme</a></td>
+<td>Confidence Intervals on lme Parameters</td></tr>
+<tr><td style="width: 25%;"><a href="intervals.lmList.html">intervals.lmList</a></td>
+<td>Confidence Intervals on lmList Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="isBalanced.html">isBalanced</a></td>
+<td>Check a Design for Balance</td></tr>
+<tr><td style="width: 25%;"><a href="isBalanced.html">isBalanced.groupedData</a></td>
+<td>Check a Design for Balance</td></tr>
+<tr><td style="width: 25%;"><a href="isInitialized.html">isInitialized</a></td>
+<td>Check if Object is Initialized</td></tr>
+<tr><td style="width: 25%;"><a href="isInitialized.html">isInitialized.pdBlocked</a></td>
+<td>Check if Object is Initialized</td></tr>
+<tr><td style="width: 25%;"><a href="isInitialized.html">isInitialized.pdMat</a></td>
+<td>Check if Object is Initialized</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="LDEsysMat.html">LDEsysMat</a></td>
+<td>Generate system matrix for LDEs</td></tr>
+<tr><td style="width: 25%;"><a href="lme.html">lme</a></td>
+<td>Linear Mixed-Effects Models</td></tr>
+<tr><td style="width: 25%;"><a href="lme.html">lme.formula</a></td>
+<td>Linear Mixed-Effects Models</td></tr>
+<tr><td style="width: 25%;"><a href="lme.groupedData.html">lme.groupedData</a></td>
+<td>LME fit from groupedData Object</td></tr>
+<tr><td style="width: 25%;"><a href="lme.lmList.html">lme.lmList</a></td>
+<td>LME fit from lmList Object</td></tr>
+<tr><td style="width: 25%;"><a href="lmeControl.html">lmeControl</a></td>
+<td>Specifying Control Values for lme Fit</td></tr>
+<tr><td style="width: 25%;"><a href="lmeObject.html">lmeObject</a></td>
+<td>Fitted lme Object</td></tr>
+<tr><td style="width: 25%;"><a href="lmeStruct.html">lmeStruct</a></td>
+<td>Linear Mixed-Effects Structure</td></tr>
+<tr><td style="width: 25%;"><a href="lmList.html">lmList</a></td>
+<td>List of lm Objects with a Common Model</td></tr>
+<tr><td style="width: 25%;"><a href="lmList.html">lmList.formula</a></td>
+<td>List of lm Objects with a Common Model</td></tr>
+<tr><td style="width: 25%;"><a href="lmList.groupedData.html">lmList.groupedData</a></td>
+<td>lmList Fit from a groupedData Object</td></tr>
+<tr><td style="width: 25%;"><a href="logDet.html">logDet</a></td>
+<td>Extract the Logarithm of the Determinant</td></tr>
+<tr><td style="width: 25%;"><a href="logDet.corStruct.html">logDet.corIdent</a></td>
+<td>Extract corStruct Log-Determinant</td></tr>
+<tr><td style="width: 25%;"><a href="logDet.corStruct.html">logDet.corStruct</a></td>
+<td>Extract corStruct Log-Determinant</td></tr>
+<tr><td style="width: 25%;"><a href="logDet.pdMat.html">logDet.pdBlocked</a></td>
+<td>Extract Log-Determinant from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="logDet.pdMat.html">logDet.pdCompSymm</a></td>
+<td>Extract Log-Determinant from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="logDet.pdMat.html">logDet.pdDiag</a></td>
+<td>Extract Log-Determinant from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="logDet.pdMat.html">logDet.pdIdent</a></td>
+<td>Extract Log-Determinant from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="logDet.pdMat.html">logDet.pdMat</a></td>
+<td>Extract Log-Determinant from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="logDet.pdMat.html">logDet.pdNatural</a></td>
+<td>Extract Log-Determinant from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="logDet.pdMat.html">logDet.pdSymm</a></td>
+<td>Extract Log-Determinant from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="logDet.reStruct.html">logDet.reStruct</a></td>
+<td>Extract reStruct Log-Determinants</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.corStruct.html">logLik.corStruct</a></td>
+<td>Extract corStruct Log-Likelihood</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.lme.html">logLik.gls</a></td>
+<td>Log-Likelihood of an lme Object</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.glsStruct.html">logLik.glsStruct</a></td>
+<td>Log-Likelihood of a glsStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.gnls.html">logLik.gnls</a></td>
+<td>Log-Likelihood of a gnls Object</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.gnlsStruct.html">logLik.gnlsStruct</a></td>
+<td>Log-Likelihood of a gnlsStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.lme.html">logLik.lme</a></td>
+<td>Log-Likelihood of an lme Object</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.lmeStruct.html">logLik.lmeStruct</a></td>
+<td>Log-Likelihood of an lmeStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.lmeStruct.html">logLik.lmeStructInt</a></td>
+<td>Log-Likelihood of an lmeStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.lmList.html">logLik.lmList</a></td>
+<td>Log-Likelihood of an lmList Object</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.reStruct.html">logLik.reStruct</a></td>
+<td>Calculate reStruct Log-Likelihood</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.varFunc.html">logLik.varComb</a></td>
+<td>Extract varFunc logLik</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.varFunc.html">logLik.varFunc</a></td>
+<td>Extract varFunc logLik</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Machines.html">Machines</a></td>
+<td>Productivity Scores for Machines and Workers</td></tr>
+<tr><td style="width: 25%;"><a href="MathAchieve.html">MathAchieve</a></td>
+<td>Mathematics achievement scores</td></tr>
+<tr><td style="width: 25%;"><a href="MathAchSchool.html">MathAchSchool</a></td>
+<td>School demographic data for MathAchieve</td></tr>
+<tr><td style="width: 25%;"><a href="Matrix.html">matrix&lt;-</a></td>
+<td>Assign Matrix Values</td></tr>
+<tr><td style="width: 25%;"><a href="Matrix.pdMat.html">matrix&lt;-.pdBlocked</a></td>
+<td>Assign Matrix to a pdMat or pdBlocked Object</td></tr>
+<tr><td style="width: 25%;"><a href="Matrix.pdMat.html">matrix&lt;-.pdMat</a></td>
+<td>Assign Matrix to a pdMat or pdBlocked Object</td></tr>
+<tr><td style="width: 25%;"><a href="Matrix.reStruct.html">matrix&lt;-.reStruct</a></td>
+<td>Assign reStruct Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="Meat.html">Meat</a></td>
+<td>Tenderness of meat</td></tr>
+<tr><td style="width: 25%;"><a href="Milk.html">Milk</a></td>
+<td>Protein content of cows' milk</td></tr>
+<tr><td style="width: 25%;"><a href="model.matrix.reStruct.html">model.matrix.reStruct</a></td>
+<td>reStruct Model Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="Muscle.html">Muscle</a></td>
+<td>Contraction of heart muscle sections</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Names.html">Names</a></td>
+<td>Names Associated with an Object</td></tr>
+<tr><td style="width: 25%;"><a href="Names.formula.html">Names.formula</a></td>
+<td>Extract Names from a formula</td></tr>
+<tr><td style="width: 25%;"><a href="Names.formula.html">Names.listForm</a></td>
+<td>Extract Names from a formula</td></tr>
+<tr><td style="width: 25%;"><a href="Names.pdBlocked.html">Names.pdBlocked</a></td>
+<td>Names of a pdBlocked Object</td></tr>
+<tr><td style="width: 25%;"><a href="Names.pdMat.html">Names.pdMat</a></td>
+<td>Names of a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="Names.reStruct.html">Names.reStruct</a></td>
+<td>Names of an reStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Names.html">Names&lt;-</a></td>
+<td>Names Associated with an Object</td></tr>
+<tr><td style="width: 25%;"><a href="Names.pdBlocked.html">Names&lt;-.pdBlocked</a></td>
+<td>Names of a pdBlocked Object</td></tr>
+<tr><td style="width: 25%;"><a href="Names.pdMat.html">Names&lt;-.pdMat</a></td>
+<td>Names of a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="Names.reStruct.html">Names&lt;-.reStruct</a></td>
+<td>Names of an reStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="needUpdate.html">needUpdate</a></td>
+<td>Check if Update is Needed</td></tr>
+<tr><td style="width: 25%;"><a href="needUpdate.modelStruct.html">needUpdate.corStruct</a></td>
+<td>Check if a modelStruct Object Needs Updating</td></tr>
+<tr><td style="width: 25%;"><a href="needUpdate.html">needUpdate.default</a></td>
+<td>Check if Update is Needed</td></tr>
+<tr><td style="width: 25%;"><a href="needUpdate.modelStruct.html">needUpdate.modelStruct</a></td>
+<td>Check if a modelStruct Object Needs Updating</td></tr>
+<tr><td style="width: 25%;"><a href="needUpdate.modelStruct.html">needUpdate.reStruct</a></td>
+<td>Check if a modelStruct Object Needs Updating</td></tr>
+<tr><td style="width: 25%;"><a href="needUpdate.html">needUpdate.varComb</a></td>
+<td>Check if Update is Needed</td></tr>
+<tr><td style="width: 25%;"><a href="needUpdate.html">needUpdate.varIdent</a></td>
+<td>Check if Update is Needed</td></tr>
+<tr><td style="width: 25%;"><a href="groupedData.html">nfGroupedData</a></td>
+<td>Construct a groupedData Object</td></tr>
+<tr><td style="width: 25%;"><a href="Nitrendipene.html">Nitrendipene</a></td>
+<td>Assay of nitrendipene</td></tr>
+<tr><td style="width: 25%;"><a href="nlme.html">nlme</a></td>
+<td>Nonlinear Mixed-Effects Models</td></tr>
+<tr><td style="width: 25%;"><a href="nlme.html">nlme.formula</a></td>
+<td>Nonlinear Mixed-Effects Models</td></tr>
+<tr><td style="width: 25%;"><a href="nlme.nlsList.html">nlme.nlsList</a></td>
+<td>NLME fit from nlsList Object</td></tr>
+<tr><td style="width: 25%;"><a href="nlmeControl.html">nlmeControl</a></td>
+<td>Control Values for nlme Fit</td></tr>
+<tr><td style="width: 25%;"><a href="nlmeObject.html">nlmeObject</a></td>
+<td>Fitted nlme Object</td></tr>
+<tr><td style="width: 25%;"><a href="nlmeStruct.html">nlmeStruct</a></td>
+<td>Nonlinear Mixed-Effects Structure</td></tr>
+<tr><td style="width: 25%;"><a href="nlsList.html">nlsList</a></td>
+<td>List of nls Objects with a Common Model</td></tr>
+<tr><td style="width: 25%;"><a href="nlsList.html">nlsList.formula</a></td>
+<td>List of nls Objects with a Common Model</td></tr>
+<tr><td style="width: 25%;"><a href="nlsList.selfStart.html">nlsList.selfStart</a></td>
+<td>nlsList Fit from a selfStart Function</td></tr>
+<tr><td style="width: 25%;"><a href="groupedData.html">nmGroupedData</a></td>
+<td>Construct a groupedData Object</td></tr>
+</table>
+
+<h2><a name="O">-- O --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Oats.html">Oats</a></td>
+<td>Split-plot Experiment on Varieties of Oats</td></tr>
+<tr><td style="width: 25%;"><a href="Orthodont.html">Orthodont</a></td>
+<td>Growth curve data on an orthdontic measurement</td></tr>
+<tr><td style="width: 25%;"><a href="Ovary.html">Ovary</a></td>
+<td>Counts of Ovarian Follicles</td></tr>
+<tr><td style="width: 25%;"><a href="Oxboys.html">Oxboys</a></td>
+<td>Heights of Boys in Oxford</td></tr>
+<tr><td style="width: 25%;"><a href="Oxide.html">Oxide</a></td>
+<td>Variability in Semiconductor Manufacturing</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="pairs.compareFits.html">pairs.compareFits</a></td>
+<td>Pairs Plot of compareFits Object</td></tr>
+<tr><td style="width: 25%;"><a href="pairs.lme.html">pairs.lme</a></td>
+<td>Pairs Plot of an lme Object</td></tr>
+<tr><td style="width: 25%;"><a href="pairs.lmList.html">pairs.lmList</a></td>
+<td>Pairs Plot of an lmList Object</td></tr>
+<tr><td style="width: 25%;"><a href="PBG.html">PBG</a></td>
+<td>Effect of Phenylbiguanide on Blood Pressure</td></tr>
+<tr><td style="width: 25%;"><a href="pdBlocked.html">pdBlocked</a></td>
+<td>Positive-Definite Block Diagonal Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdClasses.html">pdClasses</a></td>
+<td>Positive-Definite Matrix Classes</td></tr>
+<tr><td style="width: 25%;"><a href="pdCompSymm.html">pdCompSymm</a></td>
+<td>Positive-Definite Matrix with Compound Symmetry Structure</td></tr>
+<tr><td style="width: 25%;"><a href="pdConstruct.html">pdConstruct</a></td>
+<td>Construct pdMat Objects</td></tr>
+<tr><td style="width: 25%;"><a href="pdConstruct.pdBlocked.html">pdConstruct.pdBlocked</a></td>
+<td>Construct pdBlocked Objects</td></tr>
+<tr><td style="width: 25%;"><a href="pdConstruct.html">pdConstruct.pdCompSymm</a></td>
+<td>Construct pdMat Objects</td></tr>
+<tr><td style="width: 25%;"><a href="pdConstruct.html">pdConstruct.pdDiag</a></td>
+<td>Construct pdMat Objects</td></tr>
+<tr><td style="width: 25%;"><a href="pdConstruct.html">pdConstruct.pdIdent</a></td>
+<td>Construct pdMat Objects</td></tr>
+<tr><td style="width: 25%;"><a href="pdConstruct.html">pdConstruct.pdLogChol</a></td>
+<td>Construct pdMat Objects</td></tr>
+<tr><td style="width: 25%;"><a href="pdConstruct.html">pdConstruct.pdMat</a></td>
+<td>Construct pdMat Objects</td></tr>
+<tr><td style="width: 25%;"><a href="pdConstruct.html">pdConstruct.pdNatural</a></td>
+<td>Construct pdMat Objects</td></tr>
+<tr><td style="width: 25%;"><a href="pdConstruct.html">pdConstruct.pdSymm</a></td>
+<td>Construct pdMat Objects</td></tr>
+<tr><td style="width: 25%;"><a href="pdDiag.html">pdDiag</a></td>
+<td>Diagonal Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdFactor.html">pdFactor</a></td>
+<td>Square-Root Factor of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdFactor.html">pdFactor.pdBlocked</a></td>
+<td>Square-Root Factor of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdFactor.html">pdFactor.pdCompSymm</a></td>
+<td>Square-Root Factor of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdFactor.html">pdFactor.pdDiag</a></td>
+<td>Square-Root Factor of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdFactor.html">pdFactor.pdIdent</a></td>
+<td>Square-Root Factor of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdFactor.html">pdFactor.pdLogChol</a></td>
+<td>Square-Root Factor of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdFactor.html">pdFactor.pdMat</a></td>
+<td>Square-Root Factor of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdFactor.html">pdFactor.pdNatural</a></td>
+<td>Square-Root Factor of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdFactor.html">pdFactor.pdSymm</a></td>
+<td>Square-Root Factor of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdFactor.reStruct.html">pdFactor.reStruct</a></td>
+<td>Extract Square-Root Factor from Components of an reStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="pdIdent.html">pdIdent</a></td>
+<td>Multiple of the Identity Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdLogChol.html">pdLogChol</a></td>
+<td>General Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdMat.html">pdMat</a></td>
+<td>Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="pdMatrix.html">pdMatrix</a></td>
+<td>Extract Matrix or Square-Root Factor from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="pdMatrix.html">pdMatrix.pdBlocked</a></td>
+<td>Extract Matrix or Square-Root Factor from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="pdMatrix.html">pdMatrix.pdCompSymm</a></td>
+<td>Extract Matrix or Square-Root Factor from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="pdMatrix.html">pdMatrix.pdDiag</a></td>
+<td>Extract Matrix or Square-Root Factor from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="pdMatrix.html">pdMatrix.pdIdent</a></td>
+<td>Extract Matrix or Square-Root Factor from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="pdMatrix.html">pdMatrix.pdMat</a></td>
+<td>Extract Matrix or Square-Root Factor from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="pdMatrix.html">pdMatrix.pdNatural</a></td>
+<td>Extract Matrix or Square-Root Factor from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="pdMatrix.html">pdMatrix.pdSymm</a></td>
+<td>Extract Matrix or Square-Root Factor from a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="pdMatrix.reStruct.html">pdMatrix.reStruct</a></td>
+<td>Extract Matrix or Square-Root Factor from Components of an reStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="pdNatural.html">pdNatural</a></td>
+<td>General Positive-Definite Matrix in Natural Parametrization</td></tr>
+<tr><td style="width: 25%;"><a href="pdSymm.html">pdSymm</a></td>
+<td>General Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="Phenobarb.html">Phenobarb</a></td>
+<td>Phenobarbitol Kinetics</td></tr>
+<tr><td style="width: 25%;"><a href="phenoModel.html">phenoModel</a></td>
+<td>Model function for the Phenobarb data</td></tr>
+<tr><td style="width: 25%;"><a href="Pixel.html">Pixel</a></td>
+<td>X-ray pixel intensities over time</td></tr>
+<tr><td style="width: 25%;"><a href="plot.ACF.html">plot.ACF</a></td>
+<td>Plot an ACF Object</td></tr>
+<tr><td style="width: 25%;"><a href="plot.augPred.html">plot.augPred</a></td>
+<td>Plot an augPred Object</td></tr>
+<tr><td style="width: 25%;"><a href="plot.compareFits.html">plot.compareFits</a></td>
+<td>Plot a compareFits Object</td></tr>
+<tr><td style="width: 25%;"><a href="plot.gls.html">plot.gls</a></td>
+<td>Plot a gls Object</td></tr>
+<tr><td style="width: 25%;"><a href="plot.intervals.lmList.html">plot.intervals.lmList</a></td>
+<td>Plot lmList Confidence Intervals</td></tr>
+<tr><td style="width: 25%;"><a href="plot.lme.html">plot.lme</a></td>
+<td>Plot an lme or nls object</td></tr>
+<tr><td style="width: 25%;"><a href="plot.lmList.html">plot.lmList</a></td>
+<td>Plot an lmList Object</td></tr>
+<tr><td style="width: 25%;"><a href="plot.nffGroupedData.html">plot.nffGroupedData</a></td>
+<td>Plot an nffGroupedData Object</td></tr>
+<tr><td style="width: 25%;"><a href="plot.nfnGroupedData.html">plot.nfnGroupedData</a></td>
+<td>Plot an nfnGroupedData Object</td></tr>
+<tr><td style="width: 25%;"><a href="plot.lme.html">plot.nls</a></td>
+<td>Plot an lme or nls object</td></tr>
+<tr><td style="width: 25%;"><a href="plot.nmGroupedData.html">plot.nmGroupedData</a></td>
+<td>Plot an nmGroupedData Object</td></tr>
+<tr><td style="width: 25%;"><a href="pdMat.html">plot.pdMat</a></td>
+<td>Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="plot.ranef.lme.html">plot.ranef.lme</a></td>
+<td>Plot a ranef.lme Object</td></tr>
+<tr><td style="width: 25%;"><a href="plot.ranef.lmList.html">plot.ranef.lmList</a></td>
+<td>Plot a ranef.lmList Object</td></tr>
+<tr><td style="width: 25%;"><a href="simulate.lme.html">plot.simulate.lme</a></td>
+<td>Simulate Results from 'lme' Models</td></tr>
+<tr><td style="width: 25%;"><a href="plot.Variogram.html">plot.Variogram</a></td>
+<td>Plot a Variogram Object</td></tr>
+<tr><td style="width: 25%;"><a href="pooledSD.html">pooledSD</a></td>
+<td>Extract Pooled Standard Deviation</td></tr>
+<tr><td style="width: 25%;"><a href="predict.gls.html">predict.gls</a></td>
+<td>Predictions from a gls Object</td></tr>
+<tr><td style="width: 25%;"><a href="predict.gnls.html">predict.gnls</a></td>
+<td>Predictions from a gnls Object</td></tr>
+<tr><td style="width: 25%;"><a href="predict.lme.html">predict.lme</a></td>
+<td>Predictions from an lme Object</td></tr>
+<tr><td style="width: 25%;"><a href="predict.lmList.html">predict.lmList</a></td>
+<td>Predictions from an lmList Object</td></tr>
+<tr><td style="width: 25%;"><a href="predict.nlme.html">predict.nlme</a></td>
+<td>Predictions from an nlme Object</td></tr>
+<tr><td style="width: 25%;"><a href="anova.lme.html">print.anova.lme</a></td>
+<td>Compare Likelihoods of Fitted Objects</td></tr>
+<tr><td style="width: 25%;"><a href="compareFits.html">print.compareFits</a></td>
+<td>Compare Fitted Objects</td></tr>
+<tr><td style="width: 25%;"><a href="corNatural.html">print.corNatural</a></td>
+<td>General correlation in natural parameterization</td></tr>
+<tr><td style="width: 25%;"><a href="intervals.gls.html">print.intervals.gls</a></td>
+<td>Confidence Intervals on gls Parameters</td></tr>
+<tr><td style="width: 25%;"><a href="intervals.lme.html">print.intervals.lme</a></td>
+<td>Confidence Intervals on lme Parameters</td></tr>
+<tr><td style="width: 25%;"><a href="intervals.lmList.html">print.intervals.lmList</a></td>
+<td>Confidence Intervals on lmList Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="lmList.html">print.lmList</a></td>
+<td>List of lm Objects with a Common Model</td></tr>
+<tr><td style="width: 25%;"><a href="random.effects.html">print.ranef</a></td>
+<td>Extract Random Effects</td></tr>
+<tr><td style="width: 25%;"><a href="ranef.lme.html">print.ranef.lme</a></td>
+<td>Extract lme Random Effects</td></tr>
+<tr><td style="width: 25%;"><a href="reStruct.html">print.reStruct</a></td>
+<td>Random Effects Structure</td></tr>
+<tr><td style="width: 25%;"><a href="simulate.lme.html">print.simulate.lme</a></td>
+<td>Simulate Results from 'lme' Models</td></tr>
+<tr><td style="width: 25%;"><a href="summary.lme.html">print.summary.lme</a></td>
+<td>Summarize an lme Object</td></tr>
+<tr><td style="width: 25%;"><a href="print.summary.pdMat.html">print.summary.pdMat</a></td>
+<td>Print a summary.pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="print.varFunc.html">print.varComb</a></td>
+<td>Print a varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="VarCorr.html">print.VarCorr.lme</a></td>
+<td>Extract variance and correlation components</td></tr>
+<tr><td style="width: 25%;"><a href="getVarCov.html">print.VarCov</a></td>
+<td>Extract variance-covariance matrix</td></tr>
+<tr><td style="width: 25%;"><a href="print.varFunc.html">print.varFunc</a></td>
+<td>Print a varFunc Object</td></tr>
+</table>
+
+<h2><a name="Q">-- Q --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="qqnorm.gls.html">qqnorm.gls</a></td>
+<td>Normal Plot of Residuals from a gls Object</td></tr>
+<tr><td style="width: 25%;"><a href="qqnorm.lme.html">qqnorm.lm</a></td>
+<td>Normal Plot of Residuals or Random Effects from an lme Object</td></tr>
+<tr><td style="width: 25%;"><a href="qqnorm.lme.html">qqnorm.lme</a></td>
+<td>Normal Plot of Residuals or Random Effects from an lme Object</td></tr>
+<tr><td style="width: 25%;"><a href="qqnorm.lme.html">qqnorm.lmList</a></td>
+<td>Normal Plot of Residuals or Random Effects from an lme Object</td></tr>
+<tr><td style="width: 25%;"><a href="qqnorm.lme.html">qqnorm.nls</a></td>
+<td>Normal Plot of Residuals or Random Effects from an lme Object</td></tr>
+<tr><td style="width: 25%;"><a href="Quinidine.html">Quinidine</a></td>
+<td>Quinidine Kinetics</td></tr>
+<tr><td style="width: 25%;"><a href="quinModel.html">quinModel</a></td>
+<td>Model function for the Quinidine data</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Rail.html">Rail</a></td>
+<td>Evaluation of Stress in Railway Rails</td></tr>
+<tr><td style="width: 25%;"><a href="random.effects.html">random.effects</a></td>
+<td>Extract Random Effects</td></tr>
+<tr><td style="width: 25%;"><a href="ranef.lme.html">random.effects.lme</a></td>
+<td>Extract lme Random Effects</td></tr>
+<tr><td style="width: 25%;"><a href="ranef.lmList.html">random.effects.lmList</a></td>
+<td>Extract lmList Random Effects</td></tr>
+<tr><td style="width: 25%;"><a href="random.effects.html">ranef</a></td>
+<td>Extract Random Effects</td></tr>
+<tr><td style="width: 25%;"><a href="ranef.lme.html">ranef.lme</a></td>
+<td>Extract lme Random Effects</td></tr>
+<tr><td style="width: 25%;"><a href="ranef.lmList.html">ranef.lmList</a></td>
+<td>Extract lmList Random Effects</td></tr>
+<tr><td style="width: 25%;"><a href="RatPupWeight.html">RatPupWeight</a></td>
+<td>The weight of rat pups</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.html">recalc</a></td>
+<td>Recalculate Condensed Linear Model Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.corStruct.html">recalc.corAR1</a></td>
+<td>Recalculate for corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.corStruct.html">recalc.corARMA</a></td>
+<td>Recalculate for corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.corStruct.html">recalc.corCAR1</a></td>
+<td>Recalculate for corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.corStruct.html">recalc.corCompSymm</a></td>
+<td>Recalculate for corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.corStruct.html">recalc.corHF</a></td>
+<td>Recalculate for corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.corStruct.html">recalc.corIdent</a></td>
+<td>Recalculate for corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.corStruct.html">recalc.corNatural</a></td>
+<td>Recalculate for corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.corStruct.html">recalc.corSpatial</a></td>
+<td>Recalculate for corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.corStruct.html">recalc.corStruct</a></td>
+<td>Recalculate for corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.corStruct.html">recalc.corSymm</a></td>
+<td>Recalculate for corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.modelStruct.html">recalc.modelStruct</a></td>
+<td>Recalculate for a modelStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.reStruct.html">recalc.reStruct</a></td>
+<td>Recalculate for an reStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.varFunc.html">recalc.varFunc</a></td>
+<td>Recalculate for varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="recalc.varFunc.html">recalc.varIdent</a></td>
+<td>Recalculate for varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="Relaxin.html">Relaxin</a></td>
+<td>Assay for Relaxin</td></tr>
+<tr><td style="width: 25%;"><a href="Remifentanil.html">Remifentanil</a></td>
+<td>Pharmacokinetics of remifentanil</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.gls.html">residuals.gls</a></td>
+<td>Extract gls Residuals</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.glsStruct.html">residuals.glsStruct</a></td>
+<td>Calculate glsStruct Residuals</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.gls.html">residuals.gnls</a></td>
+<td>Extract gls Residuals</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.gnlsStruct.html">residuals.gnlsStruct</a></td>
+<td>Calculate gnlsStruct Residuals</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.lme.html">residuals.lme</a></td>
+<td>Extract lme Residuals</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.lmeStruct.html">residuals.lmeStruct</a></td>
+<td>Calculate lmeStruct Residuals</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.lmList.html">residuals.lmList</a></td>
+<td>Extract lmList Residuals</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.nlmeStruct.html">residuals.nlmeStruct</a></td>
+<td>Calculate nlmeStruct Residuals</td></tr>
+<tr><td style="width: 25%;"><a href="reStruct.html">reStruct</a></td>
+<td>Random Effects Structure</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="simulate.lme.html">simulate.lme</a></td>
+<td>Simulate Results from 'lme' Models</td></tr>
+<tr><td style="width: 25%;"><a href="solve.pdMat.html">solve.pdBlocked</a></td>
+<td>Calculate Inverse of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="solve.pdMat.html">solve.pdDiag</a></td>
+<td>Calculate Inverse of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="solve.pdMat.html">solve.pdIdent</a></td>
+<td>Calculate Inverse of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="solve.pdMat.html">solve.pdLogChol</a></td>
+<td>Calculate Inverse of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="solve.pdMat.html">solve.pdMat</a></td>
+<td>Calculate Inverse of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="solve.pdMat.html">solve.pdNatural</a></td>
+<td>Calculate Inverse of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="solve.pdMat.html">solve.pdSymm</a></td>
+<td>Calculate Inverse of a Positive-Definite Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="solve.reStruct.html">solve.reStruct</a></td>
+<td>Apply Solve to an reStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="Soybean.html">Soybean</a></td>
+<td>Growth of soybean plants</td></tr>
+<tr><td style="width: 25%;"><a href="splitFormula.html">splitFormula</a></td>
+<td>Split a Formula</td></tr>
+<tr><td style="width: 25%;"><a href="Spruce.html">Spruce</a></td>
+<td>Growth of Spruce Trees</td></tr>
+<tr><td style="width: 25%;"><a href="summary.corStruct.html">summary.corAR1</a></td>
+<td>Summarize a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.corStruct.html">summary.corARMA</a></td>
+<td>Summarize a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.corStruct.html">summary.corCAR1</a></td>
+<td>Summarize a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.corStruct.html">summary.corCompSymm</a></td>
+<td>Summarize a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.corStruct.html">summary.corExp</a></td>
+<td>Summarize a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.corStruct.html">summary.corGaus</a></td>
+<td>Summarize a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.corStruct.html">summary.corIdent</a></td>
+<td>Summarize a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.corStruct.html">summary.corLin</a></td>
+<td>Summarize a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.corStruct.html">summary.corNatural</a></td>
+<td>Summarize a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.corStruct.html">summary.corRatio</a></td>
+<td>Summarize a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.corStruct.html">summary.corSpher</a></td>
+<td>Summarize a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.corStruct.html">summary.corStruct</a></td>
+<td>Summarize a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.corStruct.html">summary.corSymm</a></td>
+<td>Summarize a corStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.gls.html">summary.gls</a></td>
+<td>Summarize a Generalized Least Squares 'gls' Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.lme.html">summary.lme</a></td>
+<td>Summarize an lme Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.lmList.html">summary.lmList</a></td>
+<td>Summarize an lmList Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.modelStruct.html">summary.modelStruct</a></td>
+<td>Summarize a modelStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.nlsList.html">summary.nlsList</a></td>
+<td>Summarize an nlsList Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.pdMat.html">summary.pdBlocked</a></td>
+<td>Summarize a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.pdMat.html">summary.pdCompSymm</a></td>
+<td>Summarize a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.pdMat.html">summary.pdDiag</a></td>
+<td>Summarize a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.pdMat.html">summary.pdIdent</a></td>
+<td>Summarize a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.pdMat.html">summary.pdLogChol</a></td>
+<td>Summarize a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.pdMat.html">summary.pdMat</a></td>
+<td>Summarize a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.pdMat.html">summary.pdNatural</a></td>
+<td>Summarize a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.pdMat.html">summary.pdSymm</a></td>
+<td>Summarize a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.modelStruct.html">summary.reStruct</a></td>
+<td>Summarize a modelStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.varFunc.html">summary.varComb</a></td>
+<td>Summarize varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.varFunc.html">summary.varConstPower</a></td>
+<td>Summarize varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.varFunc.html">summary.varExp</a></td>
+<td>Summarize varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.varFunc.html">summary.varFixed</a></td>
+<td>Summarize varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.varFunc.html">summary.varFunc</a></td>
+<td>Summarize varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.varFunc.html">summary.varIdent</a></td>
+<td>Summarize varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.varFunc.html">summary.varPower</a></td>
+<td>Summarize varFunc Object</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Tetracycline1.html">Tetracycline1</a></td>
+<td>Pharmacokinetics of tetracycline</td></tr>
+<tr><td style="width: 25%;"><a href="Tetracycline2.html">Tetracycline2</a></td>
+<td>Pharmacokinetics of tetracycline</td></tr>
+</table>
+
+<h2><a name="U">-- U --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="update.modelStruct.html">update.corStruct</a></td>
+<td>Update a modelStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="gls.html">update.gls</a></td>
+<td>Fit Linear Model Using Generalized Least Squares</td></tr>
+<tr><td style="width: 25%;"><a href="groupedData.html">update.groupedData</a></td>
+<td>Construct a groupedData Object</td></tr>
+<tr><td style="width: 25%;"><a href="lme.html">update.lme</a></td>
+<td>Linear Mixed-Effects Models</td></tr>
+<tr><td style="width: 25%;"><a href="lmList.html">update.lmList</a></td>
+<td>List of lm Objects with a Common Model</td></tr>
+<tr><td style="width: 25%;"><a href="update.modelStruct.html">update.modelStruct</a></td>
+<td>Update a modelStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="nlsList.html">update.nlsList</a></td>
+<td>List of nls Objects with a Common Model</td></tr>
+<tr><td style="width: 25%;"><a href="update.modelStruct.html">update.reStruct</a></td>
+<td>Update a modelStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="update.varFunc.html">update.varComb</a></td>
+<td>Update varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="update.varFunc.html">update.varConstPower</a></td>
+<td>Update varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="update.varFunc.html">update.varExp</a></td>
+<td>Update varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="update.varFunc.html">update.varExpon</a></td>
+<td>Update varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="update.varFunc.html">update.varFunc</a></td>
+<td>Update varFunc Object</td></tr>
+<tr><td style="width: 25%;"><a href="update.varFunc.html">update.varPower</a></td>
+<td>Update varFunc Object</td></tr>
+</table>
+
+<h2><a name="V">-- V --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="varClasses.html">varClasses</a></td>
+<td>Variance Function Classes</td></tr>
+<tr><td style="width: 25%;"><a href="varComb.html">varComb</a></td>
+<td>Combination of Variance Functions</td></tr>
+<tr><td style="width: 25%;"><a href="varConstPower.html">varConstPower</a></td>
+<td>Constant Plus Power Variance Function</td></tr>
+<tr><td style="width: 25%;"><a href="VarCorr.html">VarCorr</a></td>
+<td>Extract variance and correlation components</td></tr>
+<tr><td style="width: 25%;"><a href="VarCorr.html">VarCorr.lme</a></td>
+<td>Extract variance and correlation components</td></tr>
+<tr><td style="width: 25%;"><a href="VarCorr.html">VarCorr.pdBlocked</a></td>
+<td>Extract variance and correlation components</td></tr>
+<tr><td style="width: 25%;"><a href="VarCorr.html">VarCorr.pdMat</a></td>
+<td>Extract variance and correlation components</td></tr>
+<tr><td style="width: 25%;"><a href="varExp.html">varExp</a></td>
+<td>Exponential Variance Function</td></tr>
+<tr><td style="width: 25%;"><a href="varFixed.html">varFixed</a></td>
+<td>Fixed Variance Function</td></tr>
+<tr><td style="width: 25%;"><a href="varFunc.html">varFunc</a></td>
+<td>Variance Function Structure</td></tr>
+<tr><td style="width: 25%;"><a href="varIdent.html">varIdent</a></td>
+<td>Constant Variance Function</td></tr>
+<tr><td style="width: 25%;"><a href="Variogram.html">Variogram</a></td>
+<td>Calculate Semi-variogram</td></tr>
+<tr><td style="width: 25%;"><a href="Variogram.corExp.html">Variogram.corExp</a></td>
+<td>Calculate Semi-variogram for a corExp Object</td></tr>
+<tr><td style="width: 25%;"><a href="Variogram.corGaus.html">Variogram.corGaus</a></td>
+<td>Calculate Semi-variogram for a corGaus Object</td></tr>
+<tr><td style="width: 25%;"><a href="Variogram.corLin.html">Variogram.corLin</a></td>
+<td>Calculate Semi-variogram for a corLin Object</td></tr>
+<tr><td style="width: 25%;"><a href="Variogram.corRatio.html">Variogram.corRatio</a></td>
+<td>Calculate Semi-variogram for a corRatio Object</td></tr>
+<tr><td style="width: 25%;"><a href="Variogram.corSpatial.html">Variogram.corSpatial</a></td>
+<td>Calculate Semi-variogram for a corSpatial Object</td></tr>
+<tr><td style="width: 25%;"><a href="Variogram.corSpher.html">Variogram.corSpher</a></td>
+<td>Calculate Semi-variogram for a corSpher Object</td></tr>
+<tr><td style="width: 25%;"><a href="Variogram.default.html">Variogram.default</a></td>
+<td>Calculate Semi-variogram</td></tr>
+<tr><td style="width: 25%;"><a href="Variogram.gls.html">Variogram.gls</a></td>
+<td>Calculate Semi-variogram for Residuals from a gls Object</td></tr>
+<tr><td style="width: 25%;"><a href="Variogram.lme.html">Variogram.lme</a></td>
+<td>Calculate Semi-variogram for Residuals from an lme Object</td></tr>
+<tr><td style="width: 25%;"><a href="varPower.html">varPower</a></td>
+<td>Power Variance Function</td></tr>
+<tr><td style="width: 25%;"><a href="varWeights.html">varWeights</a></td>
+<td>Extract Variance Function Weights</td></tr>
+<tr><td style="width: 25%;"><a href="varWeights.glsStruct.html">varWeights.glsStruct</a></td>
+<td>Variance Weights for glsStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="varWeights.lmeStruct.html">varWeights.lmeStruct</a></td>
+<td>Variance Weights for lmeStruct Object</td></tr>
+<tr><td style="width: 25%;"><a href="varWeights.html">varWeights.varComb</a></td>
+<td>Extract Variance Function Weights</td></tr>
+<tr><td style="width: 25%;"><a href="varWeights.html">varWeights.varFunc</a></td>
+<td>Extract Variance Function Weights</td></tr>
+</table>
+
+<h2><a name="W">-- W --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Wafer.html">Wafer</a></td>
+<td>Modeling of Analog MOS Circuits</td></tr>
+<tr><td style="width: 25%;"><a href="Wheat.html">Wheat</a></td>
+<td>Yields by growing conditions</td></tr>
+<tr><td style="width: 25%;"><a href="Wheat2.html">Wheat2</a></td>
+<td>Wheat Yield Trials</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="groupedData.html">[.groupedData</a></td>
+<td>Construct a groupedData Object</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.pdMat.html">[.pdBlocked</a></td>
+<td>Subscript a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.pdMat.html">[.pdMat</a></td>
+<td>Subscript a pdMat Object</td></tr>
+<tr><td style="width: 25%;"><a href="reStruct.html">[.reStruct</a></td>
+<td>Random Effects Structure</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.pdMat.html">[&lt;-.pdMat</a></td>
+<td>Subscript a pdMat Object</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/INDEX	(revision 2476)
@@ -0,0 +1,303 @@
+ACF                     Autocorrelation Function
+ACF.gls                 Autocorrelation Function for gls Residuals
+ACF.lme                 Autocorrelation Function for lme Residuals
+Alfalfa                 Split-Plot Experiment on Varieties of Alfalfa
+allCoef                 Extract Coefficients from a Set of Objects
+anova.gls               Compare Likelihoods of Fitted Objects
+anova.lme               Compare Likelihoods of Fitted Objects
+as.matrix.corStruct     Matrix of a corStruct Object
+as.matrix.pdMat         Matrix of a pdMat Object
+as.matrix.reStruct      Matrices of an reStruct Object
+asOneFormula            Combine Formulas of a Set of Objects
+Assay                   Bioassay on Cell Culture Plate
+asTable                 Convert groupedData to a matrix
+augPred                 Augmented Predictions
+balancedGrouped         Create a groupedData object from a matrix
+bdf                     Language scores
+BIC                     Bayesian Information Criterion
+BIC.logLik              BIC of a logLik Object
+BodyWeight              Rat weight over time for different diets
+Cefamandole             Pharmacokinetics of Cefamandole
+coef<-                  Assign Values to Coefficients
+coef.corStruct          Coefficients of a corStruct Object
+coef.gnls               Extract gnls Coefficients
+coef.lme                Extract lme Coefficients
+coef.lmList             Extract lmList Coefficients
+coef.modelStruct        Extract modelStruct Object Coefficients
+coef.pdMat              pdMat Object Coefficients
+coef.reStruct           reStruct Object Coefficients
+coef.varFunc            varFunc Object Coefficients
+collapse                Collapse According to Groups
+collapse.groupedData    Collapse a groupedData Object
+compareFits             Compare Fitted Objects
+comparePred             Compare Predictions
+corAR1                  AR(1) Correlation Structure
+corARMA                 ARMA(p,q) Correlation Structure
+corCAR1                 Continuous AR(1) Correlation Structure
+corClasses              Correlation Structure Classes
+corCompSymm             Compound Symmetry Correlation Structure
+corExp                  Exponential Correlation Structure
+corFactor               Factor of a Correlation Matrix
+corFactor.corStruct     Factor of a corStruct Object Matrix
+corGaus                 Gaussian Correlation Structure
+corLin                  Linear Correlation Structure
+corMatrix               Extract Correlation Matrix
+corMatrix.corStruct     Matrix of a corStruct Object
+corMatrix.pdMat         Extract Correlation Matrix from a pdMat Object
+corMatrix.reStruct      Extract Correlation Matrix from Components of
+                        an reStruct Object
+corNatural              General correlation in natural parameterization
+corRatio                Rational Quadratic Correlation Structure
+corSpatial              Spatial Correlation Structure
+corSpher                Spherical Correlation Structure
+corSymm                 General Correlation Structure
+covariate<-             Assign Covariate Values
+covariate<-.varFunc     Assign varFunc Covariate
+Dialyzer                High-Flux Hemodialyzer
+Dim                     Extract Dimensions from an Object
+Dim.corSpatial          Dimensions of a corSpatial Object
+Dim.corStruct           Dimensions of a corStruct Object
+Dim.pdMat               Dimensions of a pdMat Object
+Earthquake              Earthquake Intensity
+ergoStool               Ergometrics experiment with stool types
+Fatigue                 Cracks caused by metal fatigue
+fdHess                  Finite difference Hessian
+fitted.glsStruct        Calculate glsStruct Fitted Values
+fitted.gnlsStruct       Calculate gnlsStruct Fitted Values
+fitted.lme              Extract lme Fitted Values
+fitted.lmeStruct        Calculate lmeStruct Fitted Values
+fitted.lmList           Extract lmList Fitted Values
+fitted.nlmeStruct       Calculate nlmeStruct Fitted Values
+fixed.effects           Extract Fixed Effects
+fixef.lmList            Extract lmList Fixed Effects
+formula.pdBlocked       Extract pdBlocked Formula
+formula.pdMat           Extract pdMat Formula
+formula.reStruct        Extract reStruct Object Formula
+gapply                  Apply a Function by Groups
+Gasoline                Refinery yield of gasoline
+getCovariate            Extract Covariate from an Object
+getCovariate.corStruct
+                        Extract corStruct Object Covariate
+getCovariate.data.frame
+                        Extract Data Frame Covariate
+getCovariateFormula     Extract Covariates Formula
+getCovariate.varFunc    Extract varFunc Covariate
+getData                 Extract Data from an Object
+getData.gls             Extract gls Object Data
+getData.lme             Extract lme Object Data
+getData.lmList          Extract lmList Object Data
+getGroups               Extract Grouping Factors from an Object
+getGroups.corStruct     Extract corStruct Groups
+getGroups.data.frame    Extract Groups from a Data Frame
+getGroupsFormula        Extract Grouping Formula
+getGroups.gls           Extract gls Object Groups
+getGroups.lme           Extract lme Object Groups
+getGroups.lmList        Extract lmList Object Groups
+getGroups.varFunc       Extract varFunc Groups
+getResponse             Extract Response Variable from an Object
+getResponseFormula      Extract Formula Specifying Response Variable
+getVarCov               Extract variance-covariance matrix
+gls                     Fit Linear Model Using Generalized Least
+                        Squares
+glsControl              Control Values for gls Fit
+glsObject               Fitted gls Object
+glsStruct               Generalized Least Squares Structure
+Glucose                 Glucose levels over time
+Glucose2                Glucose Levels Following Alcohol Ingestion
+gnls                    Fit Nonlinear Model Using Generalized Least
+                        Squares
+gnlsControl             Control Values for gnls Fit
+gnlsObject              Fitted gnls Object
+gnlsStruct              Generalized Nonlinear Least Squares Structure
+groupedData             Construct a groupedData Object
+gsummary                Summarize by Groups
+Gun                     Methods for firing naval guns
+IGF                     Radioimmunoassay of IGF-I Protein
+Initialize              Initialize Object
+Initialize.corStruct    Initialize corStruct Object
+Initialize.glsStruct    Initialize a glsStruct Object
+Initialize.lmeStruct    Initialize an lmeStruct Object
+Initialize.reStruct     Initialize reStruct Object
+Initialize.varFunc      Initialize varFunc Object
+intervals               Confidence Intervals on Coefficients
+intervals.gls           Confidence Intervals on gls Parameters
+intervals.lme           Confidence Intervals on lme Parameters
+intervals.lmList        Confidence Intervals on lmList Coefficients
+isBalanced              Check a Design for Balance
+isInitialized           Check if Object is Initialized
+LDEsysMat               Generate system matrix for LDEs
+lme                     Linear Mixed-Effects Models
+lmeControl              Control Values for lme Fit
+lme.groupedData         LME fit from groupedData Object
+lme.lmList              LME fit from lmList Object
+lmeObject               Fitted lme Object
+lmeScale                Scale for lme Optimization
+lmeStruct               Linear Mixed-Effects Structure
+lmList                  List of lm Objects with a Common Model
+lmList.groupedData      lmList Fit from a groupedData Object
+logDet                  Extract the Logarithm of the Determinant
+logDet.corStruct        Extract corStruct Log-Determinant
+logDet.pdMat            Extract Log-Determinant from a pdMat Object
+logDet.reStruct         Extract reStruct Log-Determinants
+logLik.corStruct        Extract corStruct Log-Likelihood
+logLik.glsStruct        Log-Likelihood of a glsStruct Object
+logLik.gnls             Log-Likelihood of a gnls Object
+logLik.gnlsStruct       Log-Likelihood of a gnlsStruct Object
+logLik.lme              Log-Likelihood of an lme Object
+logLik.lmeStruct        Log-Likelihood of an lmeStruct Object
+logLik.lmList           Log-Likelihood of an lmList Object
+logLik.reStruct         Calculate reStruct Log-Likelihood
+logLik.varFunc          Extract varFunc logLik
+Machines                Productivity Scores for Machines and Workers
+MathAchieve             Mathematics achievement scores
+MathAchSchool           School demographic data for MathAchieve
+matrix<-                Assign Matrix Values
+matrix<-.pdMat          Assign Matrix to a pdMat Object
+matrix<-.reStruct       Assign reStruct Matrices
+Meat                    Tenderness of meat
+Milk                    Protein content of cows' milk
+model.matrix.reStruct   reStruct Model Matrix
+Muscle                  Contraction of heart muscle sections
+Names                   Names Associated with an Object
+Names.formula           Extract Names from a formula
+Names.pdBlocked         Names of a pdBlocked Object
+Names.pdMat             Names of a pdMat Object
+Names.reStruct          Names of an reStruct Object
+needUpdate              Check if Update is Needed
+needUpdate.modelStruct
+                        Check if a modelStruct Object Needs Updating
+Nitrendipene            Assay of nitrendipene
+nlme                    Nonlinear Mixed-Effects Models
+nlmeControl             Control Values for nlme Fit
+nlme.nlsList            NLME fit from nlsList Object
+nlmeObject              Fitted nlme Object
+nlmeStruct              Nonlinear Mixed-Effects Structure
+nlsList                 List of nls Objects with a Common Model
+nlsList.selfStart       nlsList Fit from a selfStart Function
+Oats                    Split-plot Experiment on Varieties of Oats
+Orthodont               Growth curve data on an orthdontic measurement
+Ovary                   Counts of Ovarian Follicles
+Oxboys                  Heights of Boys in Oxford
+Oxide                   Variability in Semiconductor Manufacturing
+pairs.compareFits       Pairs Plot of compareFits Object
+pairs.lme               Pairs Plot of an lme Object
+pairs.lmList            Pairs Plot of an lmList Object
+PBG                     Effect of Phenylbiguanide on Blood Pressure
+pdBlocked               Positive-Definite Block Diagonal Matrix
+pdClasses               Positive-Definite Matrix Classes
+pdCompSymm              Positive-Definite Matrix with Compound Symmetry
+                        Structure
+pdConstruct             Construct pdMat Objects
+pdConstruct.pdBlocked   Construct pdBlocked Objects
+pdDiag                  Diagonal Positive-Definite Matrix
+pdFactor                Square-Root Factor of a Positive-Definite
+                        Matrix
+pdFactor.reStruct       Extract Square-Root Factor from Components of
+                        an reStruct Object
+pdIdent                 Multiple of the Identity Positive-Definite
+                        Matrix
+pdLogChol               General Positive-Definite Matrix
+pdMat                   Positive-Definite Matrix
+[.pdMat                 Subscript a pdMat Object
+pdMatrix                Extract Matrix or Square-Root Factor from a
+                        pdMat Object
+pdMatrix.reStruct       Extract Matrix or Square-Root Factor from
+                        Components of an reStruct Object
+pdNatural               General Positive-Definite Matrix in Natural
+                        Parametrization
+pdSymm                  General Positive-Definite Matrix
+Phenobarb               Phenobarbitol Kinetics
+phenoModel              Model function for the Phenobarb data
+Pixel                   X-ray pixel intensities over time
+plot.ACF                Plot an ACF Object
+plot.augPred            Plot an augPred Object
+plot.compareFits        Plot a compareFits Object
+plot.gls                Plot a gls Object
+plot.intervals.lmList   Plot lmList Confidence Intervals
+plot.lme                Plot an lme or nls object
+plot.lmList             Plot an lmList Object
+plot.nffGroupedData     Plot an nffGroupedData Object
+plot.nfnGroupedData     Plot an nfnGroupedData Object
+plot.nmGroupedData      Plot an nmGroupedData Object
+plot.ranef.lme          Plot a ranef.lme Object
+plot.ranef.lmList       Plot a ranef.lmList Object
+plot.Variogram          Plot a Variogram Object
+pooledSD                Extract Pooled Standard Deviation
+predict.gls             Predictions from a gls Object
+predict.gnls            Predictions from a gnls Object
+predict.lme             Predictions from an lme Object
+predict.lmList          Predictions from an lmList Object
+predict.nlme            Predictions from an nlme Object
+print.summary.pdMat     Print a summary.pdMat Object
+print.varFunc           Print a varFunc Object
+qqnorm.gls              Normal Plot of Residuals from a gls Object
+qqnorm.lme              Normal Plot of Residuals or Random Effects from
+                        an lme Object
+Quinidine               Quinidine Kinetics
+quinModel               Model function for the Quinidine data
+Rail                    Evaluation of Stress in Railway Rails
+random.effects          Extract Random Effects
+ranef.lme               Extract lme Random Effects
+ranef.lmList            Extract lmList Random Effects
+RatPupWeight            The weight of rat pups
+recalc                  Recalculate Condensed Linear Model Object
+recalc.corStruct        Recalculate for corStruct Object
+recalc.modelStruct      Recalculate for a modelStruct Object
+recalc.reStruct         Recalculate for an reStruct Object
+recalc.varFunc          Recalculate for varFunc Object
+Relaxin                 Assay for Relaxin
+Remifentanil            Pharmacokinetics of remifentanil
+residuals.gls           Extract gls Residuals
+residuals.glsStruct     Calculate glsStruct Residuals
+residuals.gnlsStruct    Calculate gnlsStruct Residuals
+residuals.lme           Extract lme Residuals
+residuals.lmeStruct     Calculate lmeStruct Residuals
+residuals.lmList        Extract lmList Residuals
+residuals.nlmeStruct    Calculate nlmeStruct Residuals
+reStruct                Random Effects Structure
+simulate.lme            Simulate results from lme models
+solve.pdMat             Calculate Inverse of a Positive-Definite Matrix
+solve.reStruct          Apply Solve to an reStruct Object
+Soybean                 Growth of soybean plants
+splitFormula            Split a Formula
+Spruce                  Growth of Spruce Trees
+summary.corStruct       Summarize a corStruct Object
+summary.gls             Summarize a gls Object
+summary.lme             Summarize an lme Object
+summary.lmList          Summarize an lmList Object
+summary.modelStruct     Summarize a modelStruct Object
+summary.nlsList         Summarize an nlsList Object
+summary.pdMat           Summarize a pdMat Object
+summary.varFunc         Summarize varFunc Object
+Tetracycline1           Pharmacokinetics of tetracycline
+Tetracycline2           Pharmacokinetics of tetracycline
+update.modelStruct      Update a modelStruct Object
+update.varFunc          Update varFunc Object
+varClasses              Variance Function Classes
+varComb                 Combination of Variance Functions
+varConstPower           Constant Plus Power Variance Function
+VarCorr                 Extract variance and correlation components
+varExp                  Exponential Variance Function
+varFixed                Fixed Variance Function
+varFunc                 Variance Function Structure
+varIdent                Constant Variance Function
+Variogram               Calculate Semi-variogram
+Variogram.corExp        Calculate Semi-variogram for a corExp Object
+Variogram.corGaus       Calculate Semi-variogram for a corGaus Object
+Variogram.corLin        Calculate Semi-variogram for a corLin Object
+Variogram.corRatio      Calculate Semi-variogram for a corRatio Object
+Variogram.corSpatial    Calculate Semi-variogram for a corSpatial
+                        Object
+Variogram.corSpher      Calculate Semi-variogram for a corSpher Object
+Variogram.default       Calculate Semi-variogram
+Variogram.gls           Calculate Semi-variogram for Residuals from a
+                        gls Object
+Variogram.lme           Calculate Semi-variogram for Residuals from an
+                        lme Object
+varPower                Power Variance Function
+varWeights              Extract Variance Function Weights
+varWeights.glsStruct    Variance Weights for glsStruct Object
+varWeights.lmeStruct    Variance Weights for lmeStruct Object
+Wafer                   Modeling of Analog MOS Circuits
+Wheat                   Yields by growing conditions
+Wheat2                  Wheat Yield Trials
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch08.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch08.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch08.R	(revision 2476)
@@ -0,0 +1,293 @@
+#-*- R -*-
+
+# initialization
+
+library(nlme)
+library(lattice)
+options(width = 65, digits = 5)
+options(contrasts = c(unordered = "contr.helmert", ordered = "contr.poly"))
+pdf(file = "ch08.pdf")
+
+# Chapter 8    Fitting Nonlinear Mixed-Effects Models
+
+# 8.1 Fitting Nonlinear Models in S with nls and nlsList
+
+## outer = ~1 is used to display all five curves in one panel
+plot(Orange, outer = ~1)
+logist <-
+   function(x, Asym, xmid, scal) Asym/(1 + exp(-(x - xmid)/scal))
+logist <- deriv(~Asym/(1+exp(-(x-xmid)/scal)),
+    c("Asym", "xmid", "scal"), function(x, Asym, xmid, scal){})
+Asym <- 180; xmid <- 700; scal <- 300
+logist(Orange$age[1:7], Asym, xmid, scal)
+fm1Oran.nls <- nls(circumference ~ logist(age, Asym, xmid, scal),
+   data = Orange, start = c(Asym = 170, xmid = 700, scal = 500))
+summary(fm1Oran.nls)
+plot(fm1Oran.nls)
+plot(fm1Oran.nls, Tree ~ resid(.), abline = 0)
+Orange.sortAvg <- sortedXyData("age", "circumference", Orange)
+Orange.sortAvg
+NLSstClosestX(Orange.sortAvg, 130)
+logistInit <- function(mCall, LHS, data) {
+    xy <- sortedXyData(mCall[["x"]], LHS, data)
+    if(nrow(xy) < 3) {
+        stop("Too few distinct input values to fit a logistic")
+    }
+    Asym <- max(abs(xy[,"y"]))
+    if (Asym != max(xy[,"y"])) Asym <- -Asym  # negative asymptote
+    xmid <- NLSstClosestX(xy, 0.5 * Asym)
+    scal <- NLSstClosestX(xy, 0.75 * Asym) - xmid
+    value <- c(Asym, xmid, scal)
+    names(value) <- mCall[c("Asym", "xmid", "scal")]
+    value
+}
+logist <- selfStart(logist, initial = logistInit)
+class(logist)
+logist <- selfStart(~ Asym/(1 + exp(-(x - xmid)/scal)),
+   initial = logistInit, parameters = c("Asym", "xmid", "scal"))
+getInitial(circumference ~ logist(age, Asym, xmid, scal), Orange)
+nls(circumference ~ logist(age, Asym, xmid, scal), Orange)
+getInitial(circumference ~ SSlogis(age,Asym,xmid,scal), Orange)
+nls(circumference ~ SSlogis(age, Asym, xmid, scal), Orange)
+fm1Oran.lis <-
+   nlsList(circumference ~ SSlogis(age, Asym, xmid, scal) | Tree,
+           data = Orange)
+fm1Oran.lis <- nlsList(SSlogis, Orange)
+fm1Oran.lis.noSS <-
+    nlsList(circumference ~ Asym/(1+exp(-(age-xmid)/scal)),
+             data = Orange,
+             start = c(Asym = 170, xmid = 700, scal = 500))
+fm1Oran.lis
+summary(fm1Oran.lis)
+plot(intervals(fm1Oran.lis), layout = c(3,1))
+plot(fm1Oran.lis, Tree ~ resid(.), abline = 0)
+Theoph[1:4,]
+fm1Theo.lis <- nlsList(conc ~ SSfol(Dose, Time, lKe, lKa, lCl),
+   data = Theoph)
+fm1Theo.lis
+plot(intervals(fm1Theo.lis), layout = c(3,1))
+pairs(fm1Theo.lis, id = 0.1)
+
+# 8.2 Fitting Nonlinear Mixed-Effects Models with nlme
+
+## no need to specify groups, as Orange is a groupedData object
+## random is omitted - by default it is equal to fixed
+(fm1Oran.nlme <-
+   nlme(circumference ~ SSlogis(age, Asym, xmid, scal),
+       data = Orange,
+       fixed = Asym + xmid + scal ~ 1,
+       start = fixef(fm1Oran.lis)))
+summary(fm1Oran.nlme)
+summary(fm1Oran.nls)
+pairs(fm1Oran.nlme)
+fm2Oran.nlme <- update(fm1Oran.nlme, random = Asym ~ 1)
+anova(fm1Oran.nlme, fm2Oran.nlme)
+plot(fm1Oran.nlme)
+## level = 0:1 requests fixed (0) and within-group (1) predictions
+plot(augPred(fm2Oran.nlme, level = 0:1),
+     layout = c(5,1))
+qqnorm(fm2Oran.nlme, abline = c(0,1))
+(fm1Theo.nlme <- nlme(fm1Theo.lis))
+try( intervals(fm1Theo.nlme, which="var-cov") ) ## failing: Non-positive definite...
+(fm2Theo.nlme <- update(fm1Theo.nlme,
+  random = pdDiag(lKe + lKa + lCl ~ 1)))
+fm3Theo.nlme <-
+  update(fm2Theo.nlme, random = pdDiag(lKa + lCl ~ 1))
+anova(fm1Theo.nlme, fm3Theo.nlme, fm2Theo.nlme)
+plot(fm3Theo.nlme)
+qqnorm(fm3Theo.nlme, ~ ranef(.))
+CO2
+plot(CO2, outer = ~Treatment*Type, layout = c(4,1))
+(fm1CO2.lis <- nlsList(SSasympOff, CO2))
+(fm1CO2.nlme <- nlme(fm1CO2.lis))
+(fm2CO2.nlme <- update(fm1CO2.nlme, random = Asym + lrc ~ 1))
+anova(fm1CO2.nlme, fm2CO2.nlme)
+plot(fm2CO2.nlme,id = 0.05,cex = 0.8,adj = -0.5)
+fm2CO2.nlmeRE <- ranef(fm2CO2.nlme, augFrame = TRUE)
+fm2CO2.nlmeRE
+class(fm2CO2.nlmeRE)
+plot(fm2CO2.nlmeRE, form = ~ Type * Treatment)
+contrasts(CO2$Type)
+contrasts(CO2$Treatment)
+fm3CO2.nlme <- update(fm2CO2.nlme,
+  fixed = list(Asym ~ Type * Treatment, lrc + c0 ~ 1),
+  start = c(32.412, 0, 0, 0, -4.5603, 49.344))
+summary(fm3CO2.nlme)
+anova(fm3CO2.nlme, Terms = 2:4)
+fm3CO2.nlmeRE <- ranef(fm3CO2.nlme, aug = TRUE)
+plot(fm3CO2.nlmeRE, form = ~ Type * Treatment)
+fm3CO2.fix <- fixef(fm3CO2.nlme)
+fm4CO2.nlme <- update(fm3CO2.nlme,
+  fixed = list(Asym + lrc ~ Type * Treatment, c0 ~ 1),
+  start = c(fm3CO2.fix[1:5], 0, 0, 0, fm3CO2.fix[6]))
+summary(fm4CO2.nlme)
+fm5CO2.nlme <- update(fm4CO2.nlme, random = Asym ~ 1)
+anova(fm4CO2.nlme, fm5CO2.nlme)
+CO2$type <- 2 * (as.integer(CO2$Type) - 1.5)
+CO2$treatment <- 2 * (as.integer(CO2$Treatment) - 1.5)
+fm1CO2.nls <- nls(uptake ~ SSasympOff(conc, Asym.Intercept +
+  Asym.Type * type + Asym.Treatment * treatment +
+  Asym.TypeTreatment * type * treatment, lrc.Intercept +
+  lrc.Type * type + lrc.Treatment * treatment +
+  lrc.TypeTreatment * type * treatment, c0), data = CO2,
+  start = c(Asym.Intercept = 32.371, Asym.Type = -8.0086,
+    Asym.Treatment = -4.2001, Asym.TypeTreatment = -2.7253,
+    lrc.Intercept = -4.5267, lrc.Type =  0.13112,
+    lrc.Treatment = 0.093928, lrc.TypeTreatment = 0.17941,
+    c0 = 50.126))
+anova(fm5CO2.nlme, fm1CO2.nls)
+# plot(augPred(fm5CO2.nlme, level = 0:1),  ## FIXME: problem with levels
+#      layout = c(6,2))  ## Actually a problem with contrasts.
+## This fit just ping-pongs.
+#fm1Quin.nlme <-
+#  nlme(conc ~ quinModel(Subject, time, conc, dose, interval,
+#                        lV, lKa, lCl),
+#       data = Quinidine, fixed = lV + lKa + lCl ~ 1,
+#       random = pdDiag(lV + lCl ~ 1), groups =  ~ Subject,
+#       start = list(fixed = c(5, -0.3, 2)),
+#       na.action = NULL, naPattern =  ~ !is.na(conc), verbose = TRUE)
+#fm1Quin.nlme
+#fm1Quin.nlmeRE <- ranef(fm1Quin.nlme, aug = TRUE)
+#fm1Quin.nlmeRE[1:3,]
+# plot(fm1Quin.nlmeRE, form = lCl ~  Age + Smoke + Ethanol +  ## FIXME: problem in max
+#      Weight + Race + Height + glyco + Creatinine + Heart,
+#      control = list(cex.axis = 0.7))
+#fm1Quin.fix <- fixef(fm1Quin.nlme)
+#fm2Quin.nlme <- update(fm1Quin.nlme,
+#  fixed = list(lCl ~ glyco, lKa + lV ~ 1),
+#  start = c(fm1Quin.fix[3], 0, fm1Quin.fix[2:1]))
+fm2Quin.nlme <-
+    nlme(conc ~ quinModel(Subject, time, conc, dose, interval,
+                          lV, lKa, lCl),
+         data = Quinidine, fixed = list(lCl ~ glyco, lV + lKa ~ 1),
+         random = pdDiag(diag(c(0.3,0.3)), form = lV + lCl ~ 1),
+         groups =  ~ Subject,
+         start = list(fixed = c(2.5, 0, 5.4, -0.2)),
+         na.action = NULL, naPattern =  ~ !is.na(conc))
+summary(fm2Quin.nlme)  # wrong values
+options(contrasts = c("contr.treatment", "contr.poly"))
+fm2Quin.fix <- fixef(fm2Quin.nlme)
+## subsequent fits don't work
+#fm3Quin.nlme <- update(fm2Quin.nlme,
+#  fixed = list(lCl ~ glyco + Creatinine, lKa + lV ~ 1),
+#  start = c(fm2Quin.fix[1:2], 0.2, fm2Quin.fix[3:4]))
+#summary(fm3Quin.nlme)
+#fm3Quin.fix <- fixef(fm3Quin.nlme)
+#fm4Quin.nlme <- update(fm3Quin.nlme,
+#  fixed = list(lCl ~ glyco + Creatinine + Weight, lKa + lV ~ 1),
+#  start = c(fm3Quin.fix[1:3], 0, fm3Quin.fix[4:5]))
+#summary(fm4Quin.nlme)
+## This fit just ping-pongs
+##fm1Wafer.nlmeR <-
+##    nlme(current ~ A + B * cos(4.5679 * voltage) +
+##         C * sin(4.5679 * voltage), data = Wafer,
+##         fixed = list(A ~ voltage + I(voltage^2), B + C ~ 1),
+##         random = list(Wafer = A ~ voltage + I(voltage^2),
+##         Site = pdBlocked(list(A~1, A~voltage+I(voltage^2)-1))),
+###  start = fixef(fm4Wafer), method = "REML", control = list(tolerance=1e-2))
+##         start = c(-4.255, 5.622, 1.258, -0.09555, 0.10434),
+##         method = "REML", control = list(tolerance = 1e-2))
+##fm1Wafer.nlmeR
+##fm1Wafer.nlme <- update(fm1Wafer.nlmeR, method = "ML")
+
+(fm2Wafer.nlme <-
+ nlme(current ~ A + B * cos(w * voltage + pi/4),
+      data = Wafer,
+      fixed = list(A ~ voltage + I(voltage^2), B + w ~ 1),
+      random = list(Wafer = pdDiag(list(A ~ voltage + I(voltage^2), B + w ~ 1)),
+      Site = pdDiag(list(A ~ voltage+I(voltage^2), B ~ 1))),
+      start = c(-4.255, 5.622, 1.258, -0.09555, 4.5679)))
+plot(fm2Wafer.nlme, resid(.) ~ voltage | Wafer,
+     panel = function(x, y, ...) {
+         panel.grid()
+         panel.xyplot(x, y)
+         panel.loess(x, y, lty = 2)
+         panel.abline(0, 0)
+     })
+## anova(fm1Wafer.nlme, fm2Wafer.nlme, test = FALSE)
+# intervals(fm2Wafer.nlme)
+
+# 8.3  Extending the Basic nlme Model
+
+#fm4Theo.nlme <- update(fm3Theo.nlme,
+#   weights = varConstPower(power = 0.1))
+# this fit is way off
+#fm4Theo.nlme
+#anova(fm3Theo.nlme, fm4Theo.nlme)
+#plot(fm4Theo.nlme)
+## xlim used to hide an unusually high fitted value and enhance
+## visualization of the heteroscedastic pattern
+# plot(fm4Quin.nlme, xlim = c(0, 6.2))
+#fm5Quin.nlme <- update(fm4Quin.nlme, weights = varPower())
+#summary(fm5Quin.nlme)
+#anova(fm4Quin.nlme, fm5Quin.nlme)
+#plot(fm5Quin.nlme, xlim = c(0, 6.2))
+var.nlme <- nlme(follicles ~ A + B * sin(2 * pi * w * Time) +
+                     C * cos(2 * pi * w *Time), data = Ovary,
+                     fixed = A + B + C + w ~ 1, random = pdDiag(A + B + w ~ 1),
+                                    #  start = c(fixef(fm5Ovar.lme), 1))
+                     start = c(12.18, -3.298, -0.862, 1))
+##fm1Ovar.nlme
+##ACF(fm1Ovar.nlme)
+##plot(ACF(fm1Ovar.nlme,  maxLag = 10), alpha = 0.05)
+##fm2Ovar.nlme <- update(fm1Ovar.nlme, correlation = corAR1(0.311))
+##fm3Ovar.nlme <- update(fm1Ovar.nlme, correlation = corARMA(p=0, q=2))
+##anova(fm2Ovar.nlme, fm3Ovar.nlme, test = FALSE)
+##intervals(fm2Ovar.nlme)
+##fm4Ovar.nlme <- update(fm2Ovar.nlme, random = A ~ 1)
+##anova(fm2Ovar.nlme, fm4Ovar.nlme)
+##if (interactive()) fm5Ovar.nlme <- update(fm4Ovar.nlme, correlation = corARMA(p=1, q=1))
+# anova(fm4Ovar.nlme, fm5Ovar.nlme)
+# plot(ACF(fm5Ovar.nlme,  maxLag = 10, resType = "n"),
+#        alpha = 0.05)
+# fm5Ovar.lmeML <- update(fm5Ovar.lme, method = "ML")
+# intervals(fm5Ovar.lmeML)
+# fm6Ovar.lmeML <- update(fm5Ovar.lmeML, random = ~1)
+# anova(fm5Ovar.lmeML, fm6Ovar.lmeML)
+# anova(fm6Ovar.lmeML, fm5Ovar.nlme)
+# intervals(fm5Ovar.nlme, which = "fixed")
+fm1Dial.lis <-
+  nlsList(rate ~ SSasympOff(pressure, Asym, lrc, c0) | QB,
+           data = Dialyzer)
+fm1Dial.lis
+plot(intervals(fm1Dial.lis))
+fm1Dial.gnls <- gnls(rate ~ SSasympOff(pressure, Asym, lrc, c0),
+  data = Dialyzer, params = list(Asym + lrc ~ QB, c0 ~ 1),
+  start = c(53.6, 8.6, 0.51, -0.26, 0.225))
+fm1Dial.gnls
+Dialyzer$QBcontr <- 2 * (Dialyzer$QB == 300) - 1
+fm1Dial.nls <-
+  nls(rate ~ SSasympOff(pressure, Asym.Int + Asym.QB * QBcontr,
+  lrc.Int + lrc.QB * QBcontr, c0), data = Dialyzer,
+  start = c(Asym.Int = 53.6, Asym.QB = 8.6, lrc.Int = 0.51,
+  lrc.QB = -0.26, c0 = 0.225))
+summary(fm1Dial.nls)
+logLik(fm1Dial.nls)
+plot(fm1Dial.gnls, resid(.) ~ pressure, abline = 0)
+fm2Dial.gnls <- update(fm1Dial.gnls,
+                       weights = varPower(form = ~ pressure))
+anova(fm1Dial.gnls, fm2Dial.gnls)
+ACF(fm2Dial.gnls, form = ~ 1 | Subject)
+plot(ACF(fm2Dial.gnls, form = ~ 1 | Subject), alpha = 0.05)
+fm3Dial.gnls <-
+ update(fm2Dial.gnls, corr = corAR1(0.716, form = ~ 1 | Subject))
+fm3Dial.gnls
+intervals(fm3Dial.gnls)
+anova(fm2Dial.gnls, fm3Dial.gnls)
+# restore two fitted models
+fm2Dial.lme <-
+  lme(rate ~(pressure + I(pressure^2) + I(pressure^3) + I(pressure^4))*QB,
+      Dialyzer, ~ pressure + I(pressure^2),
+      weights = varPower(form = ~ pressure))
+fm2Dial.lmeML <- update(fm2Dial.lme, method = "ML")
+fm3Dial.gls <-
+  gls(rate ~(pressure + I(pressure^2) + I(pressure^3) + I(pressure^4))*QB,
+      Dialyzer, weights = varPower(form = ~ pressure),
+      corr = corAR1(0.771, form = ~ 1 | Subject))
+fm3Dial.glsML <- update(fm3Dial.gls, method = "ML")
+anova( fm2Dial.lmeML, fm3Dial.glsML, fm3Dial.gnls, test = FALSE)
+
+# cleanup
+
+proc.time()
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/runme.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/runme.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/runme.R	(revision 2476)
@@ -0,0 +1,6 @@
+sdir <- system.file("scripts", package="nlme")
+for(f in list.files(sdir, pattern = "^ch.*[.]R$")) {
+    cat("\n",f,":\n------\n", sep='')
+    source(file.path(sdir, f), echo=TRUE)
+}
+## currently fails in   ch04.R : qqnorm(fm3Orth.lme, ~resid(.) | Sex)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch01.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch01.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch01.R	(revision 2476)
@@ -0,0 +1,141 @@
+#-*- R -*-
+
+library(nlme)
+pdf(file = 'ch01.pdf')
+options( width = 65, digits = 5 )
+options( contrasts = c(unordered = "contr.helmert", ordered = "contr.poly") )
+
+# Chapter 1    Linear Mixed-Effects Models: Basic Concepts and Examples
+
+# 1.1 A Simple Example of Random Effects
+
+Rail
+fm1Rail.lm <- lm( travel ~ 1, data = Rail )
+fm1Rail.lm
+fm2Rail.lm <- lm( travel ~ Rail - 1, data = Rail )
+fm2Rail.lm
+fm1Rail.lme <- lme(travel ~ 1, data = Rail, random = ~ 1 | Rail)
+summary( fm1Rail.lme )
+fm1Rail.lmeML <- update( fm1Rail.lme, method = "ML" )
+summary( fm1Rail.lmeML )
+plot( fm1Rail.lme )   # produces Figure 1.4
+intervals( fm1Rail.lme )
+anova( fm1Rail.lme )
+
+# 1.2 A Randomized Block Design
+
+plot.design( ergoStool )   # produces Figure 1.6
+contrasts( ergoStool$Type )
+ergoStool1 <- ergoStool[ ergoStool$Subject == "1", ]
+model.matrix( effort ~ Type, ergoStool1 )   # X matrix for Subject 1
+fm1Stool <-
+  lme(effort ~ Type, data = ergoStool, random = ~ 1 | Subject)
+summary( fm1Stool )
+anova( fm1Stool )
+options( contrasts = c( factor = "contr.treatment",
+                        ordered = "contr.poly" ) )
+contrasts( ergoStool$Type )
+fm2Stool <-
+  lme(effort ~ Type, data = ergoStool, random = ~ 1 | Subject)
+summary( fm2Stool )
+anova( fm2Stool )
+model.matrix( effort ~ Type - 1, ergoStool1 )
+fm3Stool <-
+ lme(effort ~ Type - 1, data = ergoStool, random = ~ 1 | Subject)
+summary( fm3Stool )
+anova( fm3Stool )
+intervals( fm1Stool )
+plot( fm1Stool,   # produces Figure 1.8
+      form = resid(., type = "p") ~ fitted(.) | Subject,
+      abline = 0 )
+
+# 1.3  Mixed-effects Models for Replicated, Blocked Designs
+
+with(Machines, interaction.plot( Machine, Worker, score, las = 1))   # Figure 1.10
+fm1Machine <-
+  lme( score ~ Machine, data = Machines, random = ~ 1 | Worker )
+fm1Machine
+fm2Machine <- update( fm1Machine, random = ~ 1 | Worker/Machine )
+fm2Machine
+anova( fm1Machine, fm2Machine )
+  ## delete selected rows from the Machines data
+MachinesUnbal <- Machines[ -c(2,3,6,8,9,12,19,20,27,33), ]
+  ## check that the result is indeed unbalanced
+table(MachinesUnbal$Machine, MachinesUnbal$Worker)
+fm1MachinesU <- lme( score ~ Machine, data = MachinesUnbal,
+  random = ~ 1 | Worker/Machine )
+fm1MachinesU
+intervals( fm1MachinesU )
+fm4Stool <- lme( effort ~ Type, ergoStool, ~ 1 | Subject/Type )
+if (interactive()) intervals( fm4Stool )
+(fm1Stool$sigma)^2
+(fm4Stool$sigma)^2 + 0.79621^2
+Machine1 <- Machines[ Machines$Worker == "1", ]
+model.matrix( score ~ Machine, Machine1 )   # fixed-effects X_i
+model.matrix( ~ Machine - 1, Machine1 )   # random-effects Z_i
+fm3Machine <- update( fm1Machine, random = ~Machine - 1 |Worker)
+summary( fm3Machine )
+anova( fm1Machine, fm2Machine, fm3Machine )
+
+# 1.4 An Analysis of Covariance Model
+
+names( Orthodont )
+levels( Orthodont$Sex )
+OrthoFem <- Orthodont[ Orthodont$Sex == "Female", ]
+fm1OrthF.lis <- lmList( distance ~ age, data = OrthoFem )
+coef( fm1OrthF.lis )
+intervals( fm1OrthF.lis )
+plot( intervals ( fm1OrthF.lis ) )   # produces Figure 1.12
+fm2OrthF.lis <- update( fm1OrthF.lis, distance ~ I( age - 11 ) )
+plot( intervals( fm2OrthF.lis ) )    # produces Figure 1.13
+fm1OrthF <-
+  lme( distance ~ age, data = OrthoFem, random = ~ 1 | Subject )
+summary( fm1OrthF )
+fm1OrthFM <- update( fm1OrthF, method = "ML" )
+summary( fm1OrthFM )
+fm2OrthF <- update( fm1OrthF, random = ~ age | Subject )
+anova( fm1OrthF, fm2OrthF )
+random.effects( fm1OrthF )
+ranef( fm1OrthFM )
+coef( fm1OrthF )
+plot( compareFits(coef(fm1OrthF), coef(fm1OrthFM)))   # Figure 1.15
+plot( augPred(fm1OrthF), aspect = "xy", grid = TRUE )   # Figure 1.16
+
+# 1.5  Models for Nested Classification Factors
+
+fm1Pixel <- lme( pixel ~ day + I(day^2), data = Pixel,
+  random = list( Dog = ~ day, Side = ~ 1 ) )
+intervals( fm1Pixel )
+plot( augPred( fm1Pixel ) )   # produces Figure 1.18
+VarCorr( fm1Pixel )
+summary( fm1Pixel )
+fm2Pixel <- update( fm1Pixel, random = ~ day | Dog)
+anova( fm1Pixel, fm2Pixel )
+fm3Pixel <- update( fm1Pixel, random = ~ 1 | Dog/Side )
+anova( fm1Pixel, fm3Pixel )
+fm4Pixel <- update( fm1Pixel, pixel ~ day + I(day^2) + Side )
+summary( fm4Pixel )
+
+# 1.6  A Split-Plot Experiment
+
+fm1Oats <- lme( yield ~ ordered(nitro) * Variety, data = Oats,
+  random = ~ 1 | Block/Variety )
+anova( fm1Oats )
+fm2Oats <- update( fm1Oats, yield ~ ordered(nitro) + Variety )
+anova( fm2Oats )
+summary( fm2Oats )
+fm3Oats <- update( fm1Oats, yield ~ ordered( nitro ) )
+summary( fm3Oats )
+fm4Oats <-
+  lme( yield ~ nitro, data = Oats, random = ~ 1 | Block/Variety )
+summary( fm4Oats )
+VarCorr( fm4Oats )
+intervals( fm4Oats )
+plot(augPred(fm4Oats), aspect = 2.5, layout = c(6, 3),
+     between = list(x = c(0, 0, 0.5, 0, 0))) # produces Figure 1.21
+
+# cleanup
+
+proc.time()
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch02.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch02.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch02.R	(revision 2476)
@@ -0,0 +1,68 @@
+#-*- R -*-
+
+library( nlme )
+options( width = 65, digits = 5 )
+options( contrasts = c(unordered = "contr.helmert",
+         ordered = "contr.poly") )
+pdf( file = 'ch02.pdf' )
+
+# Chapter 2    Theory and Computational Methods for Linear Mixed-Effects Models
+
+# 2.2   Likelihood Estimation for LME Models
+
+Xmat <- matrix( c(1, 1, 1, 1, 8, 10, 12, 14), ncol = 2 )
+Xmat
+Xqr <- qr( Xmat )               # creates a QR structure
+qr.R( Xqr )                     # returns R
+qr.Q( Xqr )                     # returns Q-truncated
+qr.Q( Xqr, complete = TRUE )    # returns the full Q
+
+fm1Rail.lme <- lme( travel ~ 1, data = Rail, random = ~ 1 | Rail,
+       control = list( msVerbose = TRUE ) )
+fm1Rail.lme <- lme( travel ~ 1, data = Rail, random = ~ 1 | Rail,
+   control = list( msVerbose = TRUE, niterEM = 0 ))
+
+fm1Machine <-
+  lme( score ~ Machine, data = Machines, random = ~ 1 | Worker )
+fm2Machine <- update( fm1Machine, random = ~ 1 | Worker/Machine )
+anova( fm1Machine, fm2Machine )
+
+OrthoFem <- Orthodont[ Orthodont$Sex == "Female", ]
+fm1OrthF <- lme( distance ~ age, data = OrthoFem,
+    random = ~ 1 | Subject )
+fm2OrthF <- update( fm1OrthF, random = ~ age | Subject )
+orthLRTsim <- simulate.lme( fm1OrthF, m2 = fm2OrthF, nsim = 1000 )
+plot( orthLRTsim, df = c(1, 2) )    # produces Figure 2.3
+
+machineLRTsim <- simulate.lme(fm1Machine, m2 = fm2Machine, nsim= 1000)
+plot( machineLRTsim, df = c(0, 1),      # produces Figure 2.4
+ layout = c(4,1), between = list(x = c(0, 0.5, 0)) )
+
+stoolLRTsim <-
+  simulate.lme( list(fixed = effort ~ 1, data = ergoStool,
+                     random = ~ 1 | Subject),
+                m2 = list(fixed = effort ~ Type),
+                method = "ML", nsim = 1000 )
+plot( stoolLRTsim, df = c(3, 4) )    # Figure 2.5
+data( PBIB, package = 'SASmixed' )
+pbibLRTsim <-
+    simulate.lme(list( fixed = response ~ 1, data = PBIB,
+                       random = ~ 1 | Block ),
+                 m2 = list(fixed = response ~ Treatment, data = PBIB,
+                           random = ~ 1 | Block),
+                 method = "ML", nsim = 1000 )
+plot( pbibLRTsim, df = c(14,16,18), weights = FALSE )    # Figure 2.6
+
+summary( fm2Machine )
+
+fm1PBIB <- lme(response ~ Treatment, data = PBIB, random = ~ 1 | Block)
+anova( fm1PBIB )
+fm2PBIB <- update( fm1PBIB, method = "ML" )
+fm3PBIB <- update( fm2PBIB, response ~ 1 )
+anova( fm2PBIB, fm3PBIB )
+anova( fm2Machine )
+
+# cleanup
+
+proc.time()
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch03.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch03.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch03.R	(revision 2476)
@@ -0,0 +1,116 @@
+#-*- R -*-
+
+# initialization
+
+library(nlme)
+options(width = 65, digits = 5)
+options(contrasts = c(unordered = "contr.helmert", ordered = "contr.poly"))
+pdf(file = 'ch03.pdf')
+
+# Chapter 3    Describing the Structure of Grouped Data
+
+# 3.1 The Display Formula and Its Components
+
+formula( Rail )
+formula( ergoStool )
+formula( Machines )
+formula( Orthodont )
+formula( Pixel )
+formula( Oats )
+table( Oxboys$Subject )
+table( getGroups( Oxboys ) )
+unique( table( getGroups( Oxboys ) ) )  # a more concise result
+unique( table( getCovariate( Oxboys ), getGroups( Oxboys ) ) )
+length( unique( getCovariate( Oxboys ) ) )
+unique( getGroups(Pixel, level = 1) )
+unique( getGroups(Pixel, level = 2) )
+Pixel.groups <- getGroups( Pixel, level = 1:2 )
+class( Pixel.groups )
+names( Pixel.groups )
+unique( Pixel.groups[["Side"]] )
+formula( PBG )
+PBG.log <- update( PBG, formula = deltaBP ~ log(dose) | Rabbit )
+formula(PBG.log)
+unique( getCovariate(PBG.log) )
+unique( getCovariate(PBG) )
+
+# 3.2 Constructing groupedData Objects
+
+# The next line is not from the book.
+# It is added to ensure that the file is available
+
+write.table( Oxboys, "oxboys.dat" )
+
+Oxboys.frm <- read.table( "oxboys.dat", header = TRUE )
+class( Oxboys.frm )        # check the class of the result
+dim( Oxboys.frm )          # check the dimensions
+Oxboys <- groupedData( height ~ age | Subject,
+   data = read.table("oxboys.dat", header = TRUE),
+   labels = list(x = "Centered age", y = "Height"),
+   units = list(y = "(cm)") )
+Oxboys                     # display the object
+unique( getGroups( Oxboys ) )
+plot( BodyWeight, outer = ~ Diet, aspect = 3 )  # Figure 3.3
+plot( BodyWeight, outer = TRUE, aspect = 3 )
+plot( Soybean, outer = ~ Year * Variety )       # Figure 6.10
+plot( Soybean, outer = ~ Variety * Year )
+gsummary( BodyWeight, invar = TRUE )
+plot( PBG, inner = ~ Treatment, scales = list(x = list(log = 2)))
+ergoStool.mat <- asTable( ergoStool )
+ergoStool.mat
+ergoStool.new <- balancedGrouped( effort ~ Type | Subject,
+                                   data = ergoStool.mat )
+ergoStool.new
+
+# 3.3 Controlling Trellis Graphics Presentations of Grouped Data
+
+plot(CO2, layout=c(6,2), between=list(x=c(0,0,0.5,0,0)))
+plot( Spruce, layout = c(7, 4, 3),
+       skip = c(rep(FALSE, 27), TRUE, rep(FALSE, 27), TRUE,
+                rep(FALSE, 12), rep(TRUE, 2), rep(FALSE,13)) )
+plot( Spruce, layout = c(9, 3, 3),
+       skip = c(rep(FALSE, 66), TRUE, TRUE, rep(FALSE, 13)) )
+unique( getCovariate(DNase) )
+log( unique(getCovariate(DNase)), 2 )
+plot( DNase, layout=c(6,2), scales = list(x=list(log=2)) )
+plot(Pixel, layout = c(4,5),
+     between = list(x = c(0, 0.5, 0), y = 0.5))
+plot( Pixel, displayLevel = 1 )
+plot( Wafer, display = 1, collapse = 1 )
+plot( Wafer, display = 1, collapse = 1,
+       FUN = function(x) sqrt(var(x)), layout = c(10,1) )
+
+# 3.4 Summaries
+
+sapply( ergoStool, data.class )
+gsummary( Theoph, inv = TRUE )
+gsummary( Theoph, omit = TRUE, inv = TRUE )
+is.null(gsummary(Theoph, inv = TRUE, omit = TRUE)) # invariants present
+is.null(gsummary(Oxboys, inv = TRUE, omit = TRUE)) # no invariants
+gsummary( Theoph )
+gsummary( Theoph, FUN = max, omit = TRUE )
+Quin.sum <- gsummary( Quinidine, omit = TRUE, FUN = mean )
+dim( Quin.sum )
+Quin.sum[1:10, ]
+Quinidine[Quinidine[["Subject"]] == 3, 1:8]
+Quin.sum1 <- gsummary( Quinidine, omit = TRUE )
+Quin.sum1[1:10, 1:7]
+summary( Quin.sum1 )
+summary( Quinidine )
+sum( ifelse(is.na(Quinidine[["conc"]]), 0, 1) )
+sum( !is.na(Quinidine[["conc"]]) )
+sum( !is.na(Quinidine[["dose"]]) )
+gapply( Quinidine, "conc", function(x) sum(!is.na(x)) )
+table( gapply(Quinidine, "conc", function(x) sum(!is.na(x))) )
+changeRecords <- gapply( Quinidine, FUN = function(frm)
+    any(is.na(frm[["conc"]]) & is.na(frm[["dose"]])) )
+changeRecords
+sort( as.numeric( names(changeRecords)[changeRecords] ) )
+Quinidine[29:31,]
+Quinidine[Quinidine[["Subject"]] == 4, ]
+
+# cleanup
+
+proc.time()
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch04.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch04.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch04.R	(revision 2476)
@@ -0,0 +1,202 @@
+#-*- R -*-
+
+# initialization
+
+library(nlme)
+library(lattice)
+options(width = 65, digits = 5)
+options(contrasts = c(unordered = "contr.helmert", ordered = "contr.poly"))
+pdf(file = 'ch04.pdf')
+
+# Chapter 4    Fitting Linear Mixed-Effects Models
+
+# 4.1 Fitting Linear Models in S with lm and lmList
+
+fm1Orth.lm <- lm(distance ~ age, Orthodont)
+fm1Orth.lm
+par(mfrow=c(2,2))
+plot(fm1Orth.lm)                               # Figure 4.1
+fm2Orth.lm <- update(fm1Orth.lm, formula = distance ~ Sex*age)
+summary(fm2Orth.lm)
+fm3Orth.lm <- update(fm2Orth.lm, formula = . ~ . - Sex)
+summary(fm3Orth.lm)
+bwplot(getGroups(Orthodont)~resid(fm2Orth.lm)) # Figure 4.2
+fm1Orth.lis <- lmList(distance ~ age | Subject, Orthodont)
+getGroupsFormula(Orthodont)
+fm1Orth.lis <- lmList(distance ~ age, Orthodont)
+formula(Orthodont)
+fm1Orth.lis <- lmList(Orthodont)
+fm1Orth.lis
+summary(fm1Orth.lis)
+pairs(fm1Orth.lis, id = 0.01, adj = -0.5)      # Figure 4.3
+fm2Orth.lis <- update(fm1Orth.lis, distance ~ I(age-11))
+intervals(fm2Orth.lis)
+plot(intervals(fm2Orth.lis))                   # Figure 4.5
+IGF
+plot(IGF)                                      # Figure 4.6
+fm1IGF.lis <- lmList(IGF)
+coef(fm1IGF.lis)
+plot(intervals(fm1IGF.lis))                    # Figure 4.7
+fm1IGF.lm <- lm(conc ~ age, data = IGF)
+summary(fm1IGF.lm)
+
+# 4.2 Fitting Linear Mixed-Effects Models with lme
+
+fm1Orth.lme <- lme(distance ~ I(age-11), data = Orthodont,
+                     random = ~ I(age-11) | Subject)
+fm1Orth.lme <- lme(distance ~ I(age-11), data = Orthodont)
+fm1Orth.lme <- lme(fm2Orth.lis)
+fm1Orth.lme
+fm2Orth.lme <- update(fm1Orth.lme, distance~Sex*I(age-11))
+summary(fm2Orth.lme)
+fitted(fm2Orth.lme, level = 0:1)
+resid(fm2Orth.lme, level = 1)
+resid(fm2Orth.lme, level = 1, type = "pearson")
+newOrth <- data.frame(Subject = rep(c("M11","F03"), c(3, 3)),
+                      Sex = rep(c("Male", "Female"), c(3, 3)),
+                      age = rep(16:18, 2))
+predict(fm2Orth.lme, newdata = newOrth)
+predict(fm2Orth.lme, newdata = newOrth, level = 0:1)
+fm2Orth.lmeM <- update(fm2Orth.lme, method = "ML")
+summary(fm2Orth.lmeM)
+compOrth <-
+      compareFits(coef(fm2Orth.lis), coef(fm1Orth.lme))
+compOrth
+
+plot(compOrth, mark = fixef(fm1Orth.lme)) # Figure 4.8
+## Figure 4.9
+plot(comparePred(fm2Orth.lis, fm1Orth.lme, length.out = 2),
+     layout = c(8,4), between = list(y = c(0, 0.5, 0)))
+plot(compareFits(ranef(fm2Orth.lme), ranef(fm2Orth.lmeM)),
+     mark = c(0, 0))
+fm4Orth.lm <- lm(distance ~ Sex * I(age-11), Orthodont)
+summary(fm4Orth.lm)
+anova(fm2Orth.lme, fm4Orth.lm)
+#fm1IGF.lme <- lme(fm1IGF.lis)
+#fm1IGF.lme
+#intervals(fm1IGF.lme)
+#summary(fm1IGF.lme)
+pd1 <- pdDiag(~ age)
+pd1
+formula(pd1)
+#fm2IGF.lme <- update(fm1IGF.lme, random = pdDiag(~age))
+(fm2IGF.lme <- lme(conc ~ age, IGF,
+                   random = pdDiag(~age)))
+#anova(fm1IGF.lme, fm2IGF.lme)
+anova(fm2IGF.lme)
+#update(fm1IGF.lme, random = list(Lot = pdDiag(~ age)))
+pd2 <- pdDiag(value = diag(2), form = ~ age)
+pd2
+formula(pd2)
+lme(conc ~ age, IGF, pdDiag(diag(2), ~age))
+fm4OatsB <- lme(yield ~ nitro, data = Oats,
+                 random =list(Block = pdCompSymm(~ Variety - 1)))
+summary(fm4OatsB)
+corMatrix(fm4OatsB$modelStruct$reStruct$Block)[1,2]
+fm4OatsC <- lme(yield ~ nitro, data = Oats,
+        random=list(Block=pdBlocked(list(pdIdent(~ 1),
+                                         pdIdent(~ Variety-1)))))
+summary(fm4OatsC)
+## establishing the desired parameterization for contrasts
+options(contrasts = c("contr.treatment", "contr.poly"))
+fm1Assay <- lme(logDens ~ sample * dilut, Assay,
+                random = pdBlocked(list(pdIdent(~ 1), pdIdent(~ sample - 1),
+                pdIdent(~ dilut - 1))))
+fm1Assay
+anova(fm1Assay)
+formula(Oxide)
+fm1Oxide <- lme(Thickness ~ 1, Oxide)
+fm1Oxide
+intervals(fm1Oxide, which = "var-cov")
+fm2Oxide <- update(fm1Oxide, random = ~ 1 | Lot)
+anova(fm1Oxide, fm2Oxide)
+coef(fm1Oxide, level = 1)
+coef(fm1Oxide, level = 2)
+ranef(fm1Oxide, level = 1:2)
+fm1Wafer <- lme(current ~ voltage + I(voltage^2), data = Wafer,
+                random = list(Wafer = pdDiag(~voltage + I(voltage^2)),
+                Site = pdDiag(~voltage + I(voltage^2))))
+summary(fm1Wafer)
+fitted(fm1Wafer, level = 0)
+resid(fm1Wafer, level = 1:2)
+newWafer <-
+    data.frame(Wafer = rep(1, 4), voltage = c(1, 1.5, 3, 3.5))
+predict(fm1Wafer, newWafer, level = 0:1)
+newWafer2 <- data.frame(Wafer = rep(1, 4), Site = rep(3, 4),
+                        voltage = c(1, 1.5, 3, 3.5))
+predict(fm1Wafer, newWafer2, level = 0:2)
+
+# 4.3 Examining a Fitted Model
+
+plot(fm2Orth.lme, Subject~resid(.), abline = 0)
+plot(fm2Orth.lme, resid(., type = "p") ~ fitted(.) | Sex,
+      id = 0.05, adj = -0.3)
+fm3Orth.lme <-
+  update(fm2Orth.lme, weights = varIdent(form = ~ 1 | Sex))
+fm3Orth.lme
+plot(fm3Orth.lme, distance ~ fitted(.),
+      id = 0.05, adj = -0.3)
+anova(fm2Orth.lme, fm3Orth.lme)
+qqnorm(fm3Orth.lme, ~resid(.) | Sex)
+plot(fm2IGF.lme, resid(., type = "p") ~ fitted(.) | Lot,
+      layout = c(5,2))
+qqnorm(fm2IGF.lme, ~ resid(.), id = 0.05, adj = -0.75)
+plot(fm1Oxide)
+qqnorm(fm1Oxide)
+plot(fm1Wafer, resid(.) ~ voltage | Wafer)
+plot(fm1Wafer, resid(.) ~ voltage | Wafer,
+      panel = function(x, y, ...) {
+                 panel.grid()
+                 panel.xyplot(x, y)
+                 panel.loess(x, y, lty = 2)
+                 panel.abline(0, 0)
+              })
+with(Wafer,
+     coef(lm(resid(fm1Wafer) ~ cos(4.19*voltage)+sin(4.19*voltage)-1)))
+nls(resid(fm1Wafer) ~ b3*cos(w*voltage) + b4*sin(w*voltage), Wafer,
+      start = list(b3 = -0.0519, b4 = 0.1304, w = 4.19))
+fm2Wafer <- update(fm1Wafer,
+      . ~ . + cos(4.5679*voltage) + sin(4.5679*voltage),
+      random = list(Wafer=pdDiag(~voltage+I(voltage^2)),
+             Site=pdDiag(~voltage+I(voltage^2))))
+summary(fm2Wafer)
+intervals(fm2Wafer)
+qqnorm(fm2Wafer)
+qqnorm(fm2Orth.lme, ~ranef(.), id = 0.10, cex = 0.7)
+pairs(fm2Orth.lme, ~ranef(.) | Sex,
+      id = ~ Subject == "M13", adj = -0.3)
+fm2IGF.lme
+c(0.00031074, 0.0053722)/abs(fixef(fm2IGF.lme))
+fm3IGF.lme <- update(fm2IGF.lme, random = ~ age - 1)
+anova(fm2IGF.lme, fm3IGF.lme)
+qqnorm(fm1Oxide, ~ranef(., level = 1), id=0.10)
+qqnorm(fm1Oxide, ~ranef(., level = 2), id=0.10)
+#fm3Wafer <- update(fm2Wafer,
+#              random = list(Wafer = ~voltage+I(voltage^2),
+#                            Site = pdDiag(~voltage+I(voltage^2))),
+#                   control = list(msVerbose = TRUE, msMaxIter = 200)
+#                   )
+#fm3Wafer
+#anova(fm2Wafer, fm3Wafer)
+#fm4Wafer <- update(fm2Wafer,
+#                   random = list(Wafer = ~ voltage + I(voltage^2),
+#                   Site = pdBlocked(list(~1,
+#                   ~voltage+I(voltage^2) - 1))),
+#                   control = list(msVerbose = TRUE,
+#                   msMaxIter = 200))
+#fm4Wafer
+#anova(fm3Wafer, fm4Wafer)
+#qqnorm(fm4Wafer, ~ranef(., level = 2), id = 0.05,
+#        cex = 0.7, layout = c(3, 1))
+
+# The next line is not in the book but is needed to get fm1Machine
+
+fm1Machine <-
+  lme(score ~ Machine, data = Machines, random = ~ 1 | Worker)
+
+(fm3Machine <- update(fm1Machine, random = ~Machine-1|Worker))
+
+# cleanup
+
+proc.time()
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch05.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch05.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch05.R	(revision 2476)
@@ -0,0 +1,193 @@
+#-*- R -*-
+
+# initialization
+
+library(nlme)
+options(width = 65, digits = 5)
+options(contrasts = c(unordered = "contr.helmert", ordered = "contr.poly"))
+pdf(file = "ch05.pdf")
+
+# Chapter 5    Extending the Basic Linear Mixed-Effects Models
+
+# 5.1 General Formulation of the Extended Model
+
+vf1Fixed <- varFixed(~ age)
+vf1Fixed <- Initialize(vf1Fixed, data = Orthodont)
+varWeights(vf1Fixed)
+vf1Ident <- varIdent(c(Female = 0.5), ~ 1 | Sex)
+vf1Ident <- Initialize(vf1Ident, Orthodont)
+varWeights(vf1Ident)
+vf2Ident <- varIdent(form =  ~ 1 | Sex, fixed = c(Female = 0.5))
+vf2Ident <- Initialize(vf2Ident, Orthodont)
+varWeights(vf2Ident)
+vf3Ident <- varIdent(form = ~ 1 | Sex * age)
+vf3Ident <- Initialize(vf3Ident, Orthodont)
+varWeights(vf3Ident)
+vf1Power <- varPower(1)
+formula(vf1Power)
+vf2Power <- varPower(fixed = 0.5)
+vf3Power <- varPower(form = ~ fitted(.) | Sex,
+  fixed = list(Male = 0.5, Female = 0))
+vf1Exp <- varExp(form = ~ age | Sex, fixed = c(Female = 0))
+vf1ConstPower <- varConstPower(power = 0.5,
+      fixed = list(const = 1))
+vf1Comb <- varComb(varIdent(c(Female = 0.5), ~ 1 | Sex),
+                     varExp(1, ~ age))
+vf1Comb <- Initialize(vf1Comb, Orthodont)
+varWeights(vf1Comb)
+fm1Dial.lme <-
+    lme(rate ~(pressure + I(pressure^2) + I(pressure^3) + I(pressure^4))*QB,
+        Dialyzer, ~ pressure + I(pressure^2))
+fm1Dial.lme
+plot(fm1Dial.lme, resid(.) ~ pressure, abline = 0)
+fm2Dial.lme <- update(fm1Dial.lme,
+                        weights = varPower(form = ~ pressure))
+fm2Dial.lme
+anova(fm1Dial.lme, fm2Dial.lme)
+plot(fm2Dial.lme, resid(., type = "p") ~ pressure,
+     abline = 0)
+intervals(fm2Dial.lme)
+plot(fm2Dial.lme, resid(.) ~ pressure|QB, abline = 0)
+fm3Dial.lme <- update(fm2Dial.lme,
+                      weights=varPower(form = ~ pressure | QB))
+fm3Dial.lme
+anova(fm2Dial.lme, fm3Dial.lme)
+fm4Dial.lme <- update(fm2Dial.lme,
+                      weights = varConstPower(form = ~ pressure))
+anova(fm2Dial.lme, fm4Dial.lme)
+plot(augPred(fm2Dial.lme), grid = TRUE)
+anova(fm2Dial.lme)
+anova(fm2Dial.lme, Terms = 8:10)
+options(contrasts = c("contr.treatment", "contr.poly"))
+fm1BW.lme <- lme(weight ~ Time * Diet, BodyWeight,
+                   random = ~ Time)
+fm1BW.lme
+fm2BW.lme <- update(fm1BW.lme, weights = varPower())
+fm2BW.lme
+anova(fm1BW.lme, fm2BW.lme)
+summary(fm2BW.lme)
+anova(fm2BW.lme, L = c("Time:Diet2" = 1, "Time:Diet3" = -1))
+cs1CompSymm <- corCompSymm(value = 0.3, form = ~ 1 | Subject)
+cs2CompSymm <- corCompSymm(value = 0.3, form = ~ age | Subject)
+cs1CompSymm <- Initialize(cs1CompSymm, data = Orthodont)
+corMatrix(cs1CompSymm)
+cs1Symm <- corSymm(value = c(0.2, 0.1, -0.1, 0, 0.2, 0),
+                   form = ~ 1 | Subject)
+cs1Symm <- Initialize(cs1Symm, data = Orthodont)
+corMatrix(cs1Symm)
+cs1AR1 <- corAR1(0.8, form = ~ 1 | Subject)
+cs1AR1 <- Initialize(cs1AR1, data = Orthodont)
+corMatrix(cs1AR1)
+cs1ARMA <- corARMA(0.4, form = ~ 1 | Subject, q = 1)
+cs1ARMA <- Initialize(cs1ARMA, data = Orthodont)
+corMatrix(cs1ARMA)
+cs2ARMA <- corARMA(c(0.8, 0.4), form = ~ 1 | Subject, p=1, q=1)
+cs2ARMA <- Initialize(cs2ARMA, data = Orthodont)
+corMatrix(cs2ARMA)
+spatDat <- data.frame(x = (0:4)/4, y = (0:4)/4)
+cs1Exp <- corExp(1, form = ~ x + y)
+cs1Exp <- Initialize(cs1Exp, spatDat)
+corMatrix(cs1Exp)
+cs2Exp <- corExp(1, form = ~ x + y, metric = "man")
+cs2Exp <- Initialize(cs2Exp, spatDat)
+corMatrix(cs2Exp)
+cs3Exp <- corExp(c(1, 0.2), form = ~ x + y, nugget = TRUE)
+cs3Exp <- Initialize(cs3Exp, spatDat)
+corMatrix(cs3Exp)
+fm1Ovar.lme <- lme(follicles ~ sin(2*pi*Time) + cos(2*pi*Time),
+                   data = Ovary, random = pdDiag(~sin(2*pi*Time)))
+fm1Ovar.lme
+ACF(fm1Ovar.lme)
+plot(ACF(fm1Ovar.lme,  maxLag = 10), alpha = 0.01)
+fm2Ovar.lme <- update(fm1Ovar.lme, correlation = corAR1())
+anova(fm1Ovar.lme, fm2Ovar.lme)
+if (interactive()) intervals(fm2Ovar.lme)
+fm3Ovar.lme <- update(fm1Ovar.lme, correlation = corARMA(q = 2))
+fm3Ovar.lme
+anova(fm2Ovar.lme, fm3Ovar.lme, test = F)
+fm4Ovar.lme <- update(fm1Ovar.lme,
+                       correlation = corCAR1(form = ~Time))
+anova(fm2Ovar.lme, fm4Ovar.lme, test = F)
+(fm5Ovar.lme <- update(fm1Ovar.lme,
+                       corr = corARMA(p = 1, q = 1)))
+anova(fm2Ovar.lme, fm5Ovar.lme)
+plot(ACF(fm5Ovar.lme,  maxLag = 10, resType = "n"), alpha = 0.01)
+Variogram(fm2BW.lme, form = ~ Time)
+plot(Variogram(fm2BW.lme, form = ~ Time, maxDist = 42))
+fm3BW.lme <- update(fm2BW.lme,
+                    correlation = corExp(form = ~ Time))
+intervals(fm3BW.lme)
+anova(fm2BW.lme, fm3BW.lme)
+fm4BW.lme <-
+      update(fm3BW.lme, correlation = corExp(form =  ~ Time,
+                        nugget = TRUE))
+anova(fm3BW.lme, fm4BW.lme)
+plot(Variogram(fm3BW.lme, form = ~ Time, maxDist = 42))
+plot(Variogram(fm3BW.lme, form = ~ Time, maxDist = 42,
+               resType = "n", robust = TRUE))
+fm5BW.lme <- update(fm3BW.lme, correlation = corRatio(form = ~ Time))
+fm6BW.lme <- update(fm3BW.lme, correlation = corSpher(form = ~ Time))
+fm7BW.lme <- update(fm3BW.lme, correlation = corLin(form = ~ Time))
+fm8BW.lme <- update(fm3BW.lme, correlation = corGaus(form = ~ Time))
+anova(fm3BW.lme, fm5BW.lme, fm6BW.lme, fm7BW.lme, fm8BW.lme)
+fm1Orth.gls <- gls(distance ~ Sex * I(age - 11), Orthodont,
+                   correlation = corSymm(form = ~ 1 | Subject),
+                   weights = varIdent(form = ~ 1 | age))
+fm1Orth.gls
+intervals(fm1Orth.gls)
+fm2Orth.gls <-
+   update(fm1Orth.gls, corr = corCompSymm(form = ~ 1 | Subject))
+anova(fm1Orth.gls, fm2Orth.gls)
+intervals(fm2Orth.gls)
+fm3Orth.gls <- update(fm2Orth.gls, weights = NULL)
+anova(fm2Orth.gls, fm3Orth.gls)
+plot(fm3Orth.gls, resid(., type = "n") ~ age | Sex)
+fm4Orth.gls <- update(fm3Orth.gls,
+                      weights = varIdent(form = ~ 1 | Sex))
+anova(fm3Orth.gls, fm4Orth.gls)
+qqnorm(fm4Orth.gls, ~resid(., type = "n"))
+# not in book but needed for the following command
+fm3Orth.lme <-
+    lme(distance~Sex*I(age-11), data = Orthodont,
+        random = ~ I(age-11) | Subject,
+        weights = varIdent(form = ~ 1 | Sex))
+anova(fm3Orth.lme, fm4Orth.gls, test = FALSE)
+fm1Dial.gls <-
+  gls(rate ~(pressure + I(pressure^2) + I(pressure^3) + I(pressure^4))*QB,
+      Dialyzer)
+plot(fm1Dial.gls, resid(.) ~ pressure, abline = 0)
+fm2Dial.gls <- update(fm1Dial.gls,
+                      weights = varPower(form = ~ pressure))
+anova(fm1Dial.gls, fm2Dial.gls)
+ACF(fm2Dial.gls, form = ~ 1 | Subject)
+plot(ACF(fm2Dial.gls, form = ~ 1 | Subject), alpha = 0.01)
+(fm3Dial.gls <- update(fm2Dial.gls,
+                      corr = corAR1(0.771, form = ~ 1 | Subject)))
+intervals(fm3Dial.gls)
+anova(fm2Dial.gls, fm3Dial.gls)
+anova(fm3Dial.gls, fm2Dial.lme, test = FALSE)
+fm1Wheat2 <- gls(yield ~ variety - 1, Wheat2)
+Variogram(fm1Wheat2, form = ~ latitude + longitude)
+plot(Variogram(fm1Wheat2, form = ~ latitude + longitude,
+      maxDist = 32), xlim = c(0,32))
+fm2Wheat2 <- update(fm1Wheat2, corr = corSpher(c(28, 0.2),
+                               form = ~ latitude + longitude,
+                               nugget = TRUE))
+fm2Wheat2
+fm3Wheat2 <- update(fm1Wheat2,
+                    corr = corRatio(c(12.5, 0.2),
+                    form = ~ latitude + longitude, nugget = TRUE))
+fm3Wheat2
+anova(fm2Wheat2, fm3Wheat2)
+anova(fm1Wheat2, fm3Wheat2)
+plot(Variogram(fm3Wheat2, resType = "n"))
+plot(fm3Wheat2, resid(., type = "n") ~ fitted(.), abline = 0)
+qqnorm(fm3Wheat2, ~ resid(., type = "n"))
+fm4Wheat2 <- update(fm3Wheat2, model = yield ~ variety)
+anova(fm4Wheat2)
+anova(fm3Wheat2, L = c(-1, 0, 1))
+
+# cleanup
+
+proc.time()
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch06.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch06.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/ch06.R	(revision 2476)
@@ -0,0 +1,100 @@
+#-*- R -*-
+
+# initialization
+
+library(nlme)
+options(width = 65, digits = 5)
+options(contrasts = c(unordered = "contr.helmert", ordered = "contr.poly"))
+pdf(file = "ch06.pdf")
+
+# Chapter 6    Nonlinear Mixed-Effects Models:
+#              Basic Concepts and Motivating Examples
+
+# 6.1 Indomethicin Kinetics
+
+plot(Indometh)
+fm1Indom.nls <- nls(conc ~ SSbiexp(time, A1, lrc1, A2, lrc2),
+  data = Indometh)
+summary(fm1Indom.nls)
+plot(fm1Indom.nls, Subject ~ resid(.), abline = 0)
+(fm1Indom.lis <- nlsList(conc ~ SSbiexp(time, A1, lrc1, A2, lrc2),
+                        data = Indometh))
+plot(intervals(fm1Indom.lis))
+(fm1Indom.nlme <- nlme(fm1Indom.lis,
+                      random = pdDiag(A1 + lrc1 + A2 + lrc2 ~ 1),
+                      control = list(tolerance = 0.0001)))
+fm2Indom.nlme <- update(fm1Indom.nlme,
+                        random = pdDiag(A1 + lrc1 + A2 ~ 1))
+anova(fm1Indom.nlme, fm2Indom.nlme)
+(fm3Indom.nlme <- update(fm2Indom.nlme, random = A1+lrc1+A2 ~ 1))
+fm4Indom.nlme <-
+    update(fm3Indom.nlme,
+           random = pdBlocked(list(A1 + lrc1 ~ 1, A2 ~ 1)))
+anova(fm3Indom.nlme, fm4Indom.nlme)
+anova(fm2Indom.nlme, fm4Indom.nlme)
+plot(fm4Indom.nlme, id = 0.05, adj = -1)
+qqnorm(fm4Indom.nlme)
+plot(augPred(fm4Indom.nlme, level = 0:1))
+summary(fm4Indom.nlme)
+
+# 6.3 Growth of Soybean Plants
+
+head(Soybean)
+plot(Soybean, outer = ~ Year * Variety)
+(fm1Soy.lis <- nlsList(weight ~ SSlogis(Time, Asym, xmid, scal),
+                       data = Soybean))
+(fm1Soy.nlme <- nlme(fm1Soy.lis))
+fm2Soy.nlme <- update(fm1Soy.nlme, weights = varPower())
+anova(fm1Soy.nlme, fm2Soy.nlme)
+plot(ranef(fm2Soy.nlme, augFrame = TRUE),
+     form = ~ Year * Variety, layout = c(3,1))
+soyFix <- fixef(fm2Soy.nlme)
+options(contrasts = c("contr.treatment", "contr.poly"))
+(fm3Soy.nlme <-
+ update(fm2Soy.nlme,
+        fixed = Asym + xmid + scal ~ Year,
+        start = c(soyFix[1], 0, 0, soyFix[2], 0, 0, soyFix[3], 0, 0)))
+anova(fm3Soy.nlme)
+# The following line is not in the book but needed to fit the model
+fm4Soy.nlme <-
+    nlme(weight ~ SSlogis(Time, Asym, xmid, scal),
+         data = Soybean,
+         fixed = list(Asym ~ Year*Variety, xmid ~ Year + Variety, scal ~ Year),
+         random = Asym ~ 1,
+         start = c(17, 0, 0, 0, 0, 0, 52, 0, 0, 0, 7.5, 0, 0),
+         weights = varPower(0.95), control = list(verbose = TRUE))
+# FIXME: An update doesn't work for the fixed argument when fixed is a list
+## p. 293-4 :
+summary(fm4Soy.nlme)
+plot(augPred(fm4Soy.nlme))# Fig 6.14, p. 295
+
+# 6.4 Clinical Study of Phenobarbital Kinetics
+
+(fm1Pheno.nlme <-
+ nlme(conc ~ phenoModel(Subject, time, dose, lCl, lV),
+      data = Phenobarb, fixed = lCl + lV ~ 1,
+      random = pdDiag(lCl + lV ~ 1), start = c(-5, 0),
+      na.action = NULL, naPattern = ~ !is.na(conc)))
+fm1Pheno.ranef <- ranef(fm1Pheno.nlme, augFrame = TRUE)
+# FIXME: these plots encounter difficulties
+plot(fm1Pheno.ranef, form = lCl ~ Wt + ApgarInd)
+plot(fm1Pheno.ranef, form = lV ~ Wt + ApgarInd)
+options(contrasts = c("contr.treatment", "contr.poly"))
+## This fit just ping-pongs
+##fm2Pheno.nlme <-
+##    update(fm1Pheno.nlme,
+##           fixed = list(lCl ~ Wt, lV ~ Wt + ApgarInd),
+##           start = c(-5.0935, 0, 0.34259, 0, 0),
+##           control = list(pnlsTol = 1e-4, maxIter = 500,
+##           msVerbose = TRUE))
+##summary(fm2Pheno.nlme)
+##fm3Pheno.nlme <-
+##    update(fm2Pheno.nlme,
+##           fixed = lCl + lV ~ Wt,
+##           start = fixef(fm2Pheno.nlme)[-5])
+##plot(fm3Pheno.nlme, conc ~ fitted(.), abline = c(0,1))
+
+# cleanup
+
+proc.time()
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/sims.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/scripts/sims.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/help/nlme.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/help/nlme.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/help/AnIndex	(revision 2476)
@@ -0,0 +1,542 @@
+ACF	ACF
+ACF.gls	ACF.gls
+ACF.lme	ACF.lme
+Alfalfa	Alfalfa
+allCoef	allCoef
+anova.gls	anova.gls
+anova.lme	anova.lme
+as.data.frame.groupedData	groupedData
+as.matrix.corStruct	as.matrix.corStruct
+as.matrix.pdMat	as.matrix.pdMat
+as.matrix.reStruct	as.matrix.reStruct
+asOneFormula	asOneFormula
+Assay	Assay
+asTable	asTable
+asTable.groupedData	asTable
+augPred	augPred
+augPred.gls	augPred
+augPred.lme	augPred
+augPred.lmList	augPred
+balancedGrouped	balancedGrouped
+bdf	bdf
+BodyWeight	BodyWeight
+Cefamandole	Cefamandole
+coef.corAR1	coef.corStruct
+coef.corARMA	corARMA
+coef.corARMAd	coef.corStruct
+coef.corCAR1	coef.corStruct
+coef.corCompSymm	coef.corStruct
+coef.corHF	coef.corStruct
+coef.corIdent	coef.corStruct
+coef.corLin	coef.corStruct
+coef.corNatural	coef.corStruct
+coef.corSpatial	coef.corStruct
+coef.corSpher	coef.corStruct
+coef.corStruct	coef.corStruct
+coef.corSymm	coef.corStruct
+coef.gnls	coef.gnls
+coef.lme	coef.lme
+coef.lmList	coef.lmList
+coef.modelStruct	coef.modelStruct
+coef.pdBlocked	coef.pdMat
+coef.pdCompSymm	coef.pdMat
+coef.pdDiag	coef.pdMat
+coef.pdIdent	coef.pdMat
+coef.pdMat	coef.pdMat
+coef.pdNatural	coef.pdMat
+coef.pdSymm	coef.pdMat
+coef.reStruct	coef.reStruct
+coef.summary.nlsList	coef.corStruct
+coef.varComb	coef.varFunc
+coef.varConstPower	coef.varFunc
+coef.varExp	coef.varFunc
+coef.varFixed	coef.varFunc
+coef.varFunc	coef.varFunc
+coef.varIdent	coef.varFunc
+coef.varPower	coef.varFunc
+coef<-	Coef
+coef<-.corAR1	coef.corStruct
+coef<-.corARMA	coef.corStruct
+coef<-.corCAR1	coef.corStruct
+coef<-.corCompSymm	coef.corStruct
+coef<-.corHF	coef.corStruct
+coef<-.corIdent	coef.corStruct
+coef<-.corLin	coef.corStruct
+coef<-.corNatural	coef.corStruct
+coef<-.corSpatial	coef.corStruct
+coef<-.corSpher	coef.corStruct
+coef<-.corStruct	coef.corStruct
+coef<-.corSymm	coef.corStruct
+coef<-.modelStruct	coef.modelStruct
+coef<-.pdBlocked	coef.pdMat
+coef<-.pdMat	coef.pdMat
+coef<-.reStruct	coef.reStruct
+coef<-.varComb	coef.varFunc
+coef<-.varConstPower	coef.varFunc
+coef<-.varExp	coef.varFunc
+coef<-.varFixed	coef.varFunc
+coef<-.varIdent	coef.varFunc
+coef<-.varPower	coef.varFunc
+coefficients<-	Coef
+collapse	collapse
+collapse.groupedData	collapse.groupedData
+compareFits	compareFits
+comparePred	comparePred
+comparePred.gls	comparePred
+comparePred.lme	comparePred
+comparePred.lmList	comparePred
+corAR1	corAR1
+corARMA	corARMA
+corCAR1	corCAR1
+corClasses	corClasses
+corCompSymm	corCompSymm
+corExp	corExp
+corFactor	corFactor
+corFactor.compSymm	corFactor.corStruct
+corFactor.corAR1	corFactor.corStruct
+corFactor.corARMA	corFactor.corStruct
+corFactor.corCAR1	corFactor.corStruct
+corFactor.corNatural	corFactor.corStruct
+corFactor.corSpatial	corFactor.corStruct
+corFactor.corStruct	corFactor.corStruct
+corFactor.corSymm	corFactor.corStruct
+corGaus	corGaus
+corIdent	corClasses
+corLin	corLin
+corMatrix	corMatrix
+corMatrix.compSymm	corMatrix.corStruct
+corMatrix.corAR1	corMatrix.corStruct
+corMatrix.corARMA	corMatrix.corStruct
+corMatrix.corCAR1	corMatrix.corStruct
+corMatrix.corCompSymm	corMatrix.corStruct
+corMatrix.corIdent	corMatrix.corStruct
+corMatrix.corNatural	corMatrix.corStruct
+corMatrix.corSpatial	corMatrix.corStruct
+corMatrix.corStruct	corMatrix.corStruct
+corMatrix.corSymm	corMatrix.corStruct
+corMatrix.pdBlocked	corMatrix.pdMat
+corMatrix.pdCompSymm	corMatrix.pdMat
+corMatrix.pdDiag	corMatrix.pdMat
+corMatrix.pdIdent	corMatrix.pdMat
+corMatrix.pdMat	corMatrix.pdMat
+corMatrix.pdSymm	corMatrix.pdMat
+corMatrix.reStruct	corMatrix.reStruct
+corNatural	corNatural
+corRatio	corRatio
+corSpatial	corSpatial
+corSpher	corSpher
+corStruct	corClasses
+corSymm	corSymm
+covariate<-	Covariate
+covariate<-.varFunc	Covariate.varFunc
+Dialyzer	Dialyzer
+Dim	Dim
+Dim.corSpatial	Dim.corSpatial
+Dim.corStruct	Dim.corStruct
+Dim.default	Dim
+Dim.pdCompSymm	Dim.pdMat
+Dim.pdDiag	Dim.pdMat
+Dim.pdIdent	Dim.pdMat
+Dim.pdMat	Dim.pdMat
+Dim.pdNatural	Dim.pdMat
+Dim.pdSymm	Dim.pdMat
+Earthquake	Earthquake
+ergoStool	ergoStool
+Fatigue	Fatigue
+fdHess	fdHess
+fitted.glsStruct	fitted.glsStruct
+fitted.gnlsStruct	fitted.gnlsStruct
+fitted.lme	fitted.lme
+fitted.lmeStruct	fitted.lmeStruct
+fitted.lmList	fitted.lmList
+fitted.nlmeStruct	fitted.nlmeStruct
+fixed.effects	fixed.effects
+fixed.effects.lmList	fixef.lmList
+fixef	fixed.effects
+fixef.lmList	fixef.lmList
+formula.pdBlocked	formula.pdBlocked
+formula.pdMat	formula.pdMat
+formula.reStruct	formula.reStruct
+gapply	gapply
+Gasoline	Gasoline
+getCovariate	getCovariate
+getCovariate.corSpatial	getCovariate.corStruct
+getCovariate.corStruct	getCovariate.corStruct
+getCovariate.data.frame	getCovariate.data.frame
+getCovariate.varFunc	getCovariate.varFunc
+getCovariateFormula	getCovariateFormula
+getData	getData
+getData.gls	getData.gls
+getData.gnls	getData.gls
+getData.lme	getData.lme
+getData.lmList	getData.lmList
+getData.nlme	getData.lme
+getData.nls	getData.lme
+getGroups	getGroups
+getGroups.corStruct	getGroups.corStruct
+getGroups.data.frame	getGroups.data.frame
+getGroups.gls	getGroups.gls
+getGroups.lme	getGroups.lme
+getGroups.lmList	getGroups.lmList
+getGroups.varFunc	getGroups.varFunc
+getGroupsFormula	getGroupsFormula
+getGroupsFormula.default	getGroupsFormula
+getGroupsFormula.gls	getGroupsFormula
+getGroupsFormula.lme	getGroupsFormula
+getGroupsFormula.lmList	getGroupsFormula
+getGroupsFormula.reStruct	getGroupsFormula
+getResponse	getResponse
+getResponse.data.frame	getResponse
+getResponseFormula	getResponseFormula
+getVarCov	getVarCov
+getVarCov.gls	getVarCov
+getVarCov.lme	getVarCov
+gls	gls
+glsApVar	gls-internal
+glsControl	glsControl
+glsEstimate	gls-internal
+glsObject	glsObject
+glsStruct	glsStruct
+Glucose	Glucose
+Glucose2	Glucose2
+gnls	gnls
+gnlsControl	gnlsControl
+gnlsObject	gnlsObject
+gnlsStruct	gnlsStruct
+groupedData	groupedData
+gsummary	gsummary
+Gun	Gun
+IGF	IGF
+Initialize	Initialize
+Initialize.corAR1	Initialize.corStruct
+Initialize.corARMA	Initialize.corStruct
+Initialize.corCAR1	Initialize.corStruct
+Initialize.corCompSymm	Initialize.corStruct
+Initialize.corHF	Initialize.corStruct
+Initialize.corIdent	Initialize.corStruct
+Initialize.corLin	Initialize.corStruct
+Initialize.corNatural	Initialize.corStruct
+Initialize.corSpatial	Initialize.corStruct
+Initialize.corSpher	Initialize.corStruct
+Initialize.corStruct	Initialize.corStruct
+Initialize.corSymm	Initialize.corStruct
+Initialize.glsStruct	Initialize.glsStruct
+Initialize.gnlsStruct	gnlsStruct
+Initialize.lmeStruct	Initialize.lmeStruct
+Initialize.reStruct	Initialize.reStruct
+Initialize.varComb	Initialize.varFunc
+Initialize.varConstPower	Initialize.varFunc
+Initialize.varExp	Initialize.varFunc
+Initialize.varFixed	Initialize.varFunc
+Initialize.varFunc	Initialize.varFunc
+Initialize.varIdent	Initialize.varFunc
+Initialize.varPower	Initialize.varFunc
+intervals	intervals
+intervals.gls	intervals.gls
+intervals.lme	intervals.lme
+intervals.lmList	intervals.lmList
+isBalanced	isBalanced
+isBalanced.groupedData	isBalanced
+isInitialized	isInitialized
+isInitialized.pdBlocked	isInitialized
+isInitialized.pdMat	isInitialized
+LDEsysMat	LDEsysMat
+lme	lme
+lme.formula	lme
+lme.groupedData	lme.groupedData
+lme.lmList	lme.lmList
+lmeControl	lmeControl
+lmeObject	lmeObject
+lmeStruct	lmeStruct
+lmList	lmList
+lmList.formula	lmList
+lmList.groupedData	lmList.groupedData
+logDet	logDet
+logDet.corIdent	logDet.corStruct
+logDet.corStruct	logDet.corStruct
+logDet.pdBlocked	logDet.pdMat
+logDet.pdCompSymm	logDet.pdMat
+logDet.pdDiag	logDet.pdMat
+logDet.pdIdent	logDet.pdMat
+logDet.pdMat	logDet.pdMat
+logDet.pdNatural	logDet.pdMat
+logDet.pdSymm	logDet.pdMat
+logDet.reStruct	logDet.reStruct
+logLik.corStruct	logLik.corStruct
+logLik.gls	logLik.lme
+logLik.glsStruct	logLik.glsStruct
+logLik.gnls	logLik.gnls
+logLik.gnlsStruct	logLik.gnlsStruct
+logLik.lme	logLik.lme
+logLik.lmeStruct	logLik.lmeStruct
+logLik.lmeStructInt	logLik.lmeStruct
+logLik.lmList	logLik.lmList
+logLik.reStruct	logLik.reStruct
+logLik.varComb	logLik.varFunc
+logLik.varFunc	logLik.varFunc
+Machines	Machines
+MathAchieve	MathAchieve
+MathAchSchool	MathAchSchool
+matrix<-	Matrix
+matrix<-.pdBlocked	Matrix.pdMat
+matrix<-.pdMat	Matrix.pdMat
+matrix<-.reStruct	Matrix.reStruct
+Meat	Meat
+Milk	Milk
+model.matrix.reStruct	model.matrix.reStruct
+Muscle	Muscle
+Names	Names
+Names.formula	Names.formula
+Names.listForm	Names.formula
+Names.pdBlocked	Names.pdBlocked
+Names.pdMat	Names.pdMat
+Names.reStruct	Names.reStruct
+Names<-	Names
+Names<-.pdBlocked	Names.pdBlocked
+Names<-.pdMat	Names.pdMat
+Names<-.reStruct	Names.reStruct
+needUpdate	needUpdate
+needUpdate.corStruct	needUpdate.modelStruct
+needUpdate.default	needUpdate
+needUpdate.modelStruct	needUpdate.modelStruct
+needUpdate.reStruct	needUpdate.modelStruct
+needUpdate.varComb	needUpdate
+needUpdate.varIdent	needUpdate
+nfGroupedData	groupedData
+Nitrendipene	Nitrendipene
+nlme	nlme
+nlme.formula	nlme
+nlme.nlsList	nlme.nlsList
+nlmeControl	nlmeControl
+nlmeObject	nlmeObject
+nlmeStruct	nlmeStruct
+nlsList	nlsList
+nlsList.formula	nlsList
+nlsList.selfStart	nlsList.selfStart
+nmGroupedData	groupedData
+Oats	Oats
+Orthodont	Orthodont
+Ovary	Ovary
+Oxboys	Oxboys
+Oxide	Oxide
+pairs.compareFits	pairs.compareFits
+pairs.lme	pairs.lme
+pairs.lmList	pairs.lmList
+PBG	PBG
+pdBlocked	pdBlocked
+pdClasses	pdClasses
+pdCompSymm	pdCompSymm
+pdConstruct	pdConstruct
+pdConstruct.pdBlocked	pdConstruct.pdBlocked
+pdConstruct.pdCompSymm	pdConstruct
+pdConstruct.pdDiag	pdConstruct
+pdConstruct.pdIdent	pdConstruct
+pdConstruct.pdLogChol	pdConstruct
+pdConstruct.pdMat	pdConstruct
+pdConstruct.pdNatural	pdConstruct
+pdConstruct.pdSymm	pdConstruct
+pdDiag	pdDiag
+pdFactor	pdFactor
+pdFactor.pdBlocked	pdFactor
+pdFactor.pdCompSymm	pdFactor
+pdFactor.pdDiag	pdFactor
+pdFactor.pdIdent	pdFactor
+pdFactor.pdLogChol	pdFactor
+pdFactor.pdMat	pdFactor
+pdFactor.pdNatural	pdFactor
+pdFactor.pdSymm	pdFactor
+pdFactor.reStruct	pdFactor.reStruct
+pdIdent	pdIdent
+pdLogChol	pdLogChol
+pdMat	pdMat
+pdMatrix	pdMatrix
+pdMatrix.pdBlocked	pdMatrix
+pdMatrix.pdCompSymm	pdMatrix
+pdMatrix.pdDiag	pdMatrix
+pdMatrix.pdIdent	pdMatrix
+pdMatrix.pdMat	pdMatrix
+pdMatrix.pdNatural	pdMatrix
+pdMatrix.pdSymm	pdMatrix
+pdMatrix.reStruct	pdMatrix.reStruct
+pdNatural	pdNatural
+pdSymm	pdSymm
+Phenobarb	Phenobarb
+phenoModel	phenoModel
+Pixel	Pixel
+plot.ACF	plot.ACF
+plot.augPred	plot.augPred
+plot.compareFits	plot.compareFits
+plot.gls	plot.gls
+plot.intervals.lmList	plot.intervals.lmList
+plot.lme	plot.lme
+plot.lmList	plot.lmList
+plot.nffGroupedData	plot.nffGroupedData
+plot.nfnGroupedData	plot.nfnGroupedData
+plot.nls	plot.lme
+plot.nmGroupedData	plot.nmGroupedData
+plot.pdMat	pdMat
+plot.ranef.lme	plot.ranef.lme
+plot.ranef.lmList	plot.ranef.lmList
+plot.simulate.lme	simulate.lme
+plot.Variogram	plot.Variogram
+pooledSD	pooledSD
+predict.gls	predict.gls
+predict.gnls	predict.gnls
+predict.lme	predict.lme
+predict.lmList	predict.lmList
+predict.nlme	predict.nlme
+print.anova.lme	anova.lme
+print.compareFits	compareFits
+print.corNatural	corNatural
+print.intervals.gls	intervals.gls
+print.intervals.lme	intervals.lme
+print.intervals.lmList	intervals.lmList
+print.lmList	lmList
+print.ranef	random.effects
+print.ranef.lme	ranef.lme
+print.reStruct	reStruct
+print.simulate.lme	simulate.lme
+print.summary.lme	summary.lme
+print.summary.pdMat	print.summary.pdMat
+print.varComb	print.varFunc
+print.VarCorr.lme	VarCorr
+print.VarCov	getVarCov
+print.varFunc	print.varFunc
+qqnorm.gls	qqnorm.gls
+qqnorm.lm	qqnorm.lme
+qqnorm.lme	qqnorm.lme
+qqnorm.lmList	qqnorm.lme
+qqnorm.nls	qqnorm.lme
+Quinidine	Quinidine
+quinModel	quinModel
+Rail	Rail
+random.effects	random.effects
+random.effects.lme	ranef.lme
+random.effects.lmList	ranef.lmList
+ranef	random.effects
+ranef.lme	ranef.lme
+ranef.lmList	ranef.lmList
+RatPupWeight	RatPupWeight
+recalc	recalc
+recalc.corAR1	recalc.corStruct
+recalc.corARMA	recalc.corStruct
+recalc.corCAR1	recalc.corStruct
+recalc.corCompSymm	recalc.corStruct
+recalc.corHF	recalc.corStruct
+recalc.corIdent	recalc.corStruct
+recalc.corNatural	recalc.corStruct
+recalc.corSpatial	recalc.corStruct
+recalc.corStruct	recalc.corStruct
+recalc.corSymm	recalc.corStruct
+recalc.modelStruct	recalc.modelStruct
+recalc.reStruct	recalc.reStruct
+recalc.varFunc	recalc.varFunc
+recalc.varIdent	recalc.varFunc
+Relaxin	Relaxin
+Remifentanil	Remifentanil
+residuals.gls	residuals.gls
+residuals.glsStruct	residuals.glsStruct
+residuals.gnls	residuals.gls
+residuals.gnlsStruct	residuals.gnlsStruct
+residuals.lme	residuals.lme
+residuals.lmeStruct	residuals.lmeStruct
+residuals.lmList	residuals.lmList
+residuals.nlmeStruct	residuals.nlmeStruct
+reStruct	reStruct
+simulate.lme	simulate.lme
+solve.pdBlocked	solve.pdMat
+solve.pdDiag	solve.pdMat
+solve.pdIdent	solve.pdMat
+solve.pdLogChol	solve.pdMat
+solve.pdMat	solve.pdMat
+solve.pdNatural	solve.pdMat
+solve.pdSymm	solve.pdMat
+solve.reStruct	solve.reStruct
+Soybean	Soybean
+splitFormula	splitFormula
+Spruce	Spruce
+summary.corAR1	summary.corStruct
+summary.corARMA	summary.corStruct
+summary.corCAR1	summary.corStruct
+summary.corCompSymm	summary.corStruct
+summary.corExp	summary.corStruct
+summary.corGaus	summary.corStruct
+summary.corIdent	summary.corStruct
+summary.corLin	summary.corStruct
+summary.corNatural	summary.corStruct
+summary.corRatio	summary.corStruct
+summary.corSpher	summary.corStruct
+summary.corStruct	summary.corStruct
+summary.corSymm	summary.corStruct
+summary.gls	summary.gls
+summary.lme	summary.lme
+summary.lmList	summary.lmList
+summary.modelStruct	summary.modelStruct
+summary.nlsList	summary.nlsList
+summary.pdBlocked	summary.pdMat
+summary.pdCompSymm	summary.pdMat
+summary.pdDiag	summary.pdMat
+summary.pdIdent	summary.pdMat
+summary.pdLogChol	summary.pdMat
+summary.pdMat	summary.pdMat
+summary.pdNatural	summary.pdMat
+summary.pdSymm	summary.pdMat
+summary.reStruct	summary.modelStruct
+summary.varComb	summary.varFunc
+summary.varConstPower	summary.varFunc
+summary.varExp	summary.varFunc
+summary.varFixed	summary.varFunc
+summary.varFunc	summary.varFunc
+summary.varIdent	summary.varFunc
+summary.varPower	summary.varFunc
+Tetracycline1	Tetracycline1
+Tetracycline2	Tetracycline2
+update.corStruct	update.modelStruct
+update.gls	gls
+update.groupedData	groupedData
+update.lme	lme
+update.lmList	lmList
+update.modelStruct	update.modelStruct
+update.nlsList	nlsList
+update.reStruct	update.modelStruct
+update.varComb	update.varFunc
+update.varConstPower	update.varFunc
+update.varExp	update.varFunc
+update.varExpon	update.varFunc
+update.varFunc	update.varFunc
+update.varPower	update.varFunc
+varClasses	varClasses
+varComb	varComb
+varConstPower	varConstPower
+VarCorr	VarCorr
+VarCorr.lme	VarCorr
+VarCorr.pdBlocked	VarCorr
+VarCorr.pdMat	VarCorr
+varExp	varExp
+varFixed	varFixed
+varFunc	varFunc
+varIdent	varIdent
+Variogram	Variogram
+Variogram.corExp	Variogram.corExp
+Variogram.corGaus	Variogram.corGaus
+Variogram.corLin	Variogram.corLin
+Variogram.corRatio	Variogram.corRatio
+Variogram.corSpatial	Variogram.corSpatial
+Variogram.corSpher	Variogram.corSpher
+Variogram.default	Variogram.default
+Variogram.gls	Variogram.gls
+Variogram.lme	Variogram.lme
+varPower	varPower
+varWeights	varWeights
+varWeights.glsStruct	varWeights.glsStruct
+varWeights.lmeStruct	varWeights.lmeStruct
+varWeights.varComb	varWeights
+varWeights.varFunc	varWeights
+Wafer	Wafer
+Wheat	Wheat
+Wheat2	Wheat2
+[.groupedData	groupedData
+[.pdBlocked	Extract.pdMat
+[.pdMat	Extract.pdMat
+[.reStruct	reStruct
+[<-.pdMat	Extract.pdMat
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/help/nlme.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/help/nlme.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/CITATION	(revision 2476)
@@ -0,0 +1,13 @@
+year <- sub("-.*", "", meta$Date)
+note <- sprintf("R package version %s", meta$Version)
+
+bibentry(bibtype = "Manual",
+         title = "{nlme}: Linear and Nonlinear Mixed Effects Models",
+         author = c(person("Jose", "Pinheiro"),
+                    person("Douglas", "Bates"),
+                    person("Saikat", "DebRoy"),
+                    person("Deepayan", "Sarkar"),
+                    person("R Core Team")),
+         year = year,
+         note = note,
+         url = "http://CRAN.R-project.org/package=nlme")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nlme/NAMESPACE	(revision 2476)
@@ -0,0 +1,479 @@
+useDynLib(nlme, .registration=TRUE)
+
+importFrom("graphics", pairs, par, plot)
+
+importFrom("stats",
+           AIC, BIC, anova, as.formula, asOneSidedFormula, coef, coefficients,
+           contr.SAS, contr.helmert, contr.poly, contr.sum, contr.treatment,
+           contrasts, "contrasts<-",
+           delete.response, dist, fitted, formula, lm, logLik,
+           mad, median, model.frame, model.matrix,
+           na.fail, na.omit, napredict, naresid,
+           nlm, nlminb, nls, nls.control, nobs, optim,
+           pchisq, pf, predict, pt,
+           qchisq, qf, qnorm, qqnorm, qt, quantile,
+           resid, residuals, rnorm, runif, simulate, setNames, terms,
+           update, update.formula, var, vcov)
+
+importFrom("utils", head, tail, capture.output)
+
+importFrom("lattice",
+           Rows, bwplot, dotplot, llines, lpoints, lsegments, ltext,
+           panel.abline, panel.bwplot, panel.dotplot,  panel.grid,
+           panel.histogram, panel.linejoin, panel.loess, panel.superpose,
+           panel.xyplot, splom, strip.default, trellis.par.get, xyplot)
+
+export(ACF, allCoef, asOneFormula, asTable, augPred, balancedGrouped,
+       "coef<-", "coefficients<-", collapse, compareFits,
+       comparePred, corAR1, corARMA, corCAR1, corCompSymm,
+       corExp, corFactor, corGaus, corIdent, corLin, corMatrix,
+       corNatural, corRatio, corSpatial, corSpher, corSymm,
+       "covariate<-", Dim, fdHess, fixed.effects, fixef, gapply,
+       getCovariate, getCovariateFormula, getData, getGroups,
+       getGroupsFormula, getResponse, getResponseFormula, getVarCov,
+       gls, glsControl, glsStruct, gnls, gnlsControl, gnlsStruct,
+       groupedData, gsummary, Initialize, intervals, isBalanced,
+       isInitialized, LDEsysMat, lme, lmeControl, lmeStruct,
+       lmList, logDet, "matrix<-", Names, "Names<-", needUpdate,
+       nfGroupedData, nlme, nlmeControl, nlmeStruct, nlsList,
+       nmGroupedData, pdBlocked, pdCompSymm, pdConstruct, pdDiag,
+       pdFactor, pdIdent, pdLogChol, pdMat, pdMatrix, pdNatural,
+       pdSymm, phenoModel, pooledSD, quinModel,
+       random.effects, ranef, recalc, reStruct, simulate.lme,
+       splitFormula, varComb, varConstPower, VarCorr, varExp,
+       varFixed, varFunc, varIdent, Variogram, varPower, varWeights)
+
+# called directly via do.call
+export(anova.lme, nlsList.formula, plot.lme)
+
+# needed as name stored in the call via match.call
+export(lme.formula, lme.lmList, lmList.formula, nlme.formula, nlme.nlsList)
+
+# exported for package rms
+export(glsApVar, glsEstimate)
+
+S3method("[", groupedData)
+S3method("[", pdBlocked)
+S3method("[", pdMat)
+S3method("[", reStruct)
+S3method("[<-", pdMat)
+S3method(ACF, gls)
+S3method(ACF, lme)
+S3method(anova, gls)
+S3method(anova, lme)
+S3method(as.data.frame, groupedData)
+S3method(as.matrix, corStruct)
+S3method(as.matrix, pdMat)
+S3method(as.matrix, reStruct)
+S3method(asTable, groupedData)
+S3method(augPred, gls)
+S3method(augPred, lme)
+S3method(augPred, lmList)
+S3method(coef, corAR1)
+S3method(coef, corARMA)
+S3method(coef, corCAR1)
+S3method(coef, corCompSymm)
+S3method(coef, corIdent)
+S3method(coef, corLin)
+S3method(coef, corNatural)
+S3method(coef, corSpatial)
+S3method(coef, corSpher)
+S3method(coef, corStruct)
+S3method(coef, corSymm)
+S3method(coef, gls)
+S3method(coef, gnls)
+S3method(coef, lme)
+S3method(coef, lmList)
+S3method(coef, modelStruct)
+S3method(coef, pdBlocked)
+S3method(coef, pdCompSymm)
+S3method(coef, pdDiag)
+S3method(coef, pdIdent)
+S3method(coef, pdMat)
+S3method(coef, pdNatural)
+S3method(coef, pdSymm)
+S3method(coef, reStruct)
+S3method(coef, summary.lme, getCTable)
+S3method(coef, summary.gls, getCTable)
+S3method(coef, summary.nlsList)
+S3method(coef, varComb)
+S3method(coef, varConstPower)
+S3method(coef, varExp)
+S3method(coef, varFixed)
+S3method(coef, varFunc)
+S3method(coef, varIdent)
+S3method(coef, varPower)
+S3method("coef<-", corAR1)
+S3method("coef<-", corARMA)
+S3method("coef<-", corCAR1)
+S3method("coef<-", corCompSymm)
+S3method("coef<-", corIdent)
+S3method("coef<-", corNatural)
+S3method("coef<-", corSpatial)
+S3method("coef<-", corStruct)
+S3method("coef<-", corSymm)
+S3method("coef<-", modelStruct)
+S3method("coef<-", pdBlocked)
+S3method("coef<-", pdMat)
+S3method("coef<-", reStruct)
+S3method("coef<-", varComb)
+S3method("coef<-", varConstPower)
+S3method("coef<-", varExp)
+S3method("coef<-", varFixed)
+S3method("coef<-", varIdent)
+S3method("coef<-", varPower)
+S3method(collapse, groupedData)
+S3method(comparePred, gls)
+S3method(comparePred, lme)
+S3method(comparePred, lmList)
+S3method(corFactor, compSymm)
+S3method(corFactor, corAR1)
+S3method(corFactor, corARMA)
+S3method(corFactor, corCAR1)
+S3method(corFactor, corNatural)
+S3method(corFactor, corSpatial)
+S3method(corFactor, corStruct)
+S3method(corFactor, corSymm)
+S3method(corMatrix, corAR1)
+S3method(corMatrix, corARMA)
+S3method(corMatrix, corCAR1)
+S3method(corMatrix, corCompSymm)
+S3method(corMatrix, corIdent)
+S3method(corMatrix, corNatural)
+S3method(corMatrix, corSpatial)
+S3method(corMatrix, corStruct)
+S3method(corMatrix, corSymm)
+S3method(corMatrix, pdBlocked)
+S3method(corMatrix, pdCompSymm)
+S3method(corMatrix, pdDiag)
+S3method(corMatrix, pdIdent)
+S3method(corMatrix, pdMat)
+S3method(corMatrix, reStruct)
+S3method("covariate<-", varFunc)
+S3method(Dim, corSpatial)
+S3method(Dim, corStruct)
+S3method(Dim, default)
+S3method(Dim, pdCompSymm)
+S3method(Dim, pdDiag)
+S3method(Dim, pdIdent)
+S3method(Dim, pdMat)
+S3method(Dim, pdNatural)
+S3method(Dim, pdSymm)
+S3method(fitted, gls)
+S3method(fitted, glsStruct)
+S3method(fitted, gnls)
+S3method(fitted, gnlsStruct)
+S3method(fitted, lme)
+S3method(fitted, lmeStruct)
+S3method(fitted, lmList)
+S3method(fitted, nlmeStruct)
+S3method(fixef, lme)
+S3method(fixef, lmList)
+S3method(formula, corStruct)
+S3method(formula, gls)
+S3method(formula, gnls)
+S3method(formula, groupedData)
+S3method(formula, lme)
+S3method(formula, lmList)
+S3method(formula, modelStruct)
+S3method(formula, nlme)
+S3method(formula, nlsList)
+S3method(formula, pdBlocked)
+S3method(formula, pdMat)
+S3method(formula, reStruct)
+S3method(formula, varComb)
+S3method(formula, varFunc)
+S3method(getCovariate, corSpatial)
+S3method(getCovariate, corStruct)
+S3method(getCovariate, data.frame)
+S3method(getCovariate, varFunc)
+S3method(getData, gls)
+S3method(getData, gnls)
+S3method(getData, lme)
+S3method(getData, lmList)
+S3method(getData, nlme)
+S3method(getData, nls)
+S3method(getGroups, corStruct)
+S3method(getGroups, data.frame)
+S3method(getGroups, gls)
+S3method(getGroups, lme)
+S3method(getGroups, lmList)
+S3method(getGroups, varFunc)
+S3method(getGroupsFormula, default)
+S3method(getGroupsFormula, gls)
+S3method(getGroupsFormula, lme)
+S3method(getGroupsFormula, lmList)
+S3method(getGroupsFormula, reStruct)
+S3method(getResponse, data.frame)
+S3method(getResponse, gls)
+S3method(getResponse, lme)
+S3method(getResponse, lmList)
+S3method(getVarCov, gls)
+S3method(getVarCov, lme)
+S3method(Initialize, corAR1)
+S3method(Initialize, corARMA)
+S3method(Initialize, corCAR1)
+S3method(Initialize, corCompSymm)
+S3method(Initialize, corIdent)
+S3method(Initialize, corLin)
+S3method(Initialize, corNatural)
+S3method(Initialize, corSpatial)
+S3method(Initialize, corSpher)
+S3method(Initialize, corStruct)
+S3method(Initialize, corSymm)
+S3method(Initialize, glsStruct)
+S3method(Initialize, gnlsStruct)
+S3method(Initialize, lmeStruct)
+S3method(Initialize, reStruct)
+S3method(Initialize, varComb)
+S3method(Initialize, varConstPower)
+S3method(Initialize, varExp)
+S3method(Initialize, varFixed)
+S3method(Initialize, varFunc)
+S3method(Initialize, varIdent)
+S3method(Initialize, varPower)
+S3method(intervals, gls)
+S3method(intervals, lme)
+S3method(intervals, lmList)
+S3method(isBalanced, groupedData)
+S3method(isInitialized, pdBlocked)
+S3method(isInitialized, pdMat)
+S3method(isInitialized, reStruct)
+S3method(lme, formula)
+S3method(lme, groupedData)
+S3method(lme, lmList)
+S3method(lmList, formula)
+S3method(lmList, groupedData)
+S3method(logDet, corIdent)
+S3method(logDet, corStruct)
+S3method(logDet, pdBlocked)
+S3method(logDet, pdCompSymm)
+S3method(logDet, pdDiag)
+S3method(logDet, pdIdent)
+S3method(logDet, pdMat)
+S3method(logDet, pdNatural)
+S3method(logDet, pdSymm)
+S3method(logDet, reStruct)
+S3method(logLik, corStruct)
+S3method(logLik, gls)
+S3method(logLik, glsStruct)
+S3method(logLik, gnls)
+S3method(logLik, gnlsStruct)
+S3method(logLik, lme)
+S3method(logLik, lmeStruct)
+S3method(logLik, lmeStructInt)
+S3method(logLik, lmList)
+S3method(logLik, reStruct)
+S3method(logLik, varComb)
+S3method(logLik, varFunc)
+S3method("matrix<-", pdBlocked)
+S3method("matrix<-", pdMat)
+S3method("matrix<-", reStruct)
+S3method(model.matrix, reStruct)
+S3method(Names, formula)
+S3method(Names, listForm)
+S3method(Names, pdBlocked)
+S3method(Names, pdMat)
+S3method(Names, reStruct)
+S3method("Names<-", pdBlocked)
+S3method("Names<-", pdMat)
+S3method("Names<-", reStruct)
+S3method(needUpdate, corStruct)
+S3method(needUpdate, default)
+S3method(needUpdate, modelStruct)
+S3method(needUpdate, reStruct)
+S3method(needUpdate, varComb)
+S3method(needUpdate, varIdent)
+S3method(nlme, formula)
+S3method(nlme, nlsList)
+S3method(nlsList, formula)
+S3method(nlsList, selfStart)
+S3method(nobs, gls)
+S3method(nobs, gnls)
+S3method(nobs, lme)
+S3method(pairs, compareFits)
+S3method(pairs, lme)
+S3method(pairs, lmList)
+S3method(pdConstruct, pdBlocked)
+S3method(pdConstruct, pdCompSymm)
+S3method(pdConstruct, pdDiag)
+S3method(pdConstruct, pdIdent)
+S3method(pdConstruct, pdLogChol)
+S3method(pdConstruct, pdMat)
+S3method(pdConstruct, pdNatural)
+S3method(pdConstruct, pdSymm)
+S3method(pdFactor, pdBlocked)
+S3method(pdFactor, pdCompSymm)
+S3method(pdFactor, pdDiag)
+S3method(pdFactor, pdIdent)
+S3method(pdFactor, pdLogChol)
+S3method(pdFactor, pdMat)
+S3method(pdFactor, pdNatural)
+S3method(pdFactor, pdSymm)
+S3method(pdFactor, reStruct)
+S3method(pdMatrix, pdBlocked)
+S3method(pdMatrix, pdCompSymm)
+S3method(pdMatrix, pdDiag)
+S3method(pdMatrix, pdIdent)
+S3method(pdMatrix, pdMat)
+S3method(pdMatrix, pdNatural)
+S3method(pdMatrix, pdSymm)
+S3method(pdMatrix, reStruct)
+S3method(plot, ACF)
+S3method(plot, augPred)
+S3method(plot, compareFits)
+S3method(plot, gls)
+S3method(plot, intervals.lmList)
+S3method(plot, lme)
+S3method(plot, lmList)
+S3method(plot, nffGroupedData)
+S3method(plot, nfnGroupedData)
+S3method(plot, nls)
+S3method(plot, nmGroupedData)
+S3method(plot, pdMat)
+S3method(plot, ranef.lme)
+S3method(plot, ranef.lmList)
+S3method(plot, simulate.lme)
+S3method(plot, Variogram)
+S3method(predict, gls)
+S3method(predict, gnls)
+S3method(predict, lme)
+S3method(predict, lmList)
+S3method(predict, nlme)
+S3method(print, anova.lme)
+S3method(print, compareFits)
+S3method(print, corNatural)
+S3method(print, correlation)
+S3method(print, corStruct)
+S3method(print, corSymm)
+S3method(print, gls)
+S3method(print, groupedData)
+S3method(print, intervals.gls)
+S3method(print, intervals.lme)
+S3method(print, intervals.lmList)
+S3method(print, lme)
+S3method(print, lmList)
+S3method(print, modelStruct)
+S3method(print, pdMat)
+S3method(print, ranef.lme)
+S3method(print, reStruct)
+S3method(print, simulate.lme)
+S3method(print, summary.corNatural)
+S3method(print, summary.corStruct)
+S3method(print, summary.corSymm)
+S3method(print, summary.gls)
+S3method(print, summary.lme)
+S3method(print, summary.lmList)
+S3method(print, summary.modelStruct)
+S3method(print, summary.pdMat)
+S3method(print, summary.varComb)
+S3method(print, summary.varFixed)
+S3method(print, summary.varFunc)
+S3method(print, varComb)
+S3method(print, VarCorr.lme)
+S3method(print, VarCov)
+S3method(print, varFunc)
+S3method(qqnorm, gls)
+S3method(qqnorm, lm)
+S3method(qqnorm, lme)
+S3method(qqnorm, lmList)
+S3method(qqnorm, nls)
+S3method(ranef, lme)
+S3method(ranef, lmList)
+S3method(recalc, corAR1)
+S3method(recalc, corARMA)
+S3method(recalc, corCAR1)
+S3method(recalc, corCompSymm)
+S3method(recalc, corIdent)
+S3method(recalc, corNatural)
+S3method(recalc, corSpatial)
+S3method(recalc, corStruct)
+S3method(recalc, corSymm)
+S3method(recalc, modelStruct)
+S3method(recalc, reStruct)
+S3method(recalc, varFunc)
+S3method(recalc, varIdent)
+S3method(residuals, gls)
+S3method(residuals, glsStruct)
+S3method(residuals, gnls)
+S3method(residuals, gnlsStruct)
+S3method(residuals, lme)
+S3method(residuals, lmeStruct)
+S3method(residuals, lmList)
+S3method(residuals, nlmeStruct)
+S3method(simulate, lme)
+S3method(solve, pdBlocked)
+S3method(solve, pdDiag)
+S3method(solve, pdIdent)
+S3method(solve, pdLogChol)
+S3method(solve, pdMat)
+S3method(solve, pdNatural)
+S3method(solve, pdSymm)
+S3method(solve, reStruct)
+S3method(summary, corAR1)
+S3method(summary, corARMA)
+S3method(summary, corCAR1)
+S3method(summary, corCompSymm)
+S3method(summary, corExp)
+S3method(summary, corGaus)
+S3method(summary, corIdent)
+S3method(summary, corLin)
+S3method(summary, corNatural)
+S3method(summary, corRatio)
+S3method(summary, corSpher)
+S3method(summary, corStruct)
+S3method(summary, corSymm)
+S3method(summary, gls)
+S3method(summary, lme)
+S3method(summary, lmList)
+S3method(summary, modelStruct)
+S3method(summary, nlsList)
+S3method(summary, pdBlocked)
+S3method(summary, pdCompSymm)
+S3method(summary, pdDiag)
+S3method(summary, pdIdent)
+S3method(summary, pdLogChol)
+S3method(summary, pdMat)
+S3method(summary, pdNatural)
+S3method(summary, pdSymm)
+S3method(summary, reStruct)
+S3method(summary, varComb)
+S3method(summary, varConstPower)
+S3method(summary, varExp)
+S3method(summary, varFixed)
+S3method(summary, varFunc)
+S3method(summary, varIdent)
+S3method(summary, varPower)
+S3method(update, corStruct)
+S3method(update, gls)
+S3method(update, gnls)
+S3method(update, groupedData)
+S3method(update, lme)
+S3method(update, lmList)
+S3method(update, modelStruct)
+S3method(update, nlme)
+S3method(update, nlsList)
+S3method(update, reStruct)
+S3method(update, varComb)
+S3method(update, varConstPower)
+S3method(update, varExp)
+S3method(update, varFunc)
+S3method(update, varPower)
+S3method(VarCorr, lme)
+S3method(VarCorr, pdBlocked)
+S3method(VarCorr, pdMat)
+S3method(Variogram, corExp)
+S3method(Variogram, corGaus)
+S3method(Variogram, corLin)
+S3method(Variogram, corRatio)
+S3method(Variogram, corSpatial)
+S3method(Variogram, corSpher)
+S3method(Variogram, default)
+S3method(Variogram, gls)
+S3method(Variogram, lme)
+S3method(varWeights, glsStruct)
+S3method(varWeights, lmeStruct)
+S3method(varWeights, varComb)
+S3method(varWeights, varFunc)
+S3method(vcov, gls)
+S3method(vcov, lme)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/NAMESPACE	(revision 2476)
@@ -0,0 +1,10 @@
+export(ellipse,plotcorr)
+S3method(ellipse,arima0)
+S3method(ellipse,default)
+S3method(ellipse,glm)
+S3method(ellipse,lm)
+S3method(ellipse,nls)
+S3method(ellipse,profile)
+S3method(ellipse,profile.glm)
+S3method(ellipse,profile.nls)
+S3method(pairs,profile)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/R/ellipse
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/R/ellipse	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/R/ellipse	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/R/ellipse.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/R/ellipse.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/R/ellipse.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/R/ellipse.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/DESCRIPTION	(revision 2476)
@@ -0,0 +1,24 @@
+Package: ellipse
+Version: 0.3-8
+Date: 2013-04-13
+Title: Functions for drawing ellipses and ellipse-like confidence
+        regions
+Author: Duncan Murdoch <murdoch@stats.uwo.ca> and E. D. Chow (porting
+        to R by Jesus M. Frias Celayeta <iosu@bureau.ucc.ie>)
+Maintainer: Duncan Murdoch <murdoch@stats.uwo.ca>
+Description: This package contains various routines for drawing
+        ellipses and ellipse-like confidence regions, implementing the
+        plots described in Murdoch and Chow (1996), A graphical display
+        of large correlation matrices, The American Statistician 50,
+        178-180. There are also routines implementing the profile plots
+        described in Bates and Watts (1988), Nonlinear Regression
+        Analysis and its Applications.
+Depends: R (>= 2.0.0),graphics,stats
+Suggests: MASS
+LazyLoad: yes
+License: GPL (>= 2)
+Packaged: 2013-04-13 14:23:12 UTC; murdoch
+NeedsCompilation: no
+Repository: CRAN
+Date/Publication: 2013-04-13 18:32:27
+Built: R 3.3.0; ; 2016-05-04 14:12:37 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/html/00Index.html	(revision 2476)
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Functions for drawing ellipses and ellipse-like confidence
+regions</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Functions for drawing ellipses and ellipse-like confidence
+regions
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;ellipse&rsquo; version 0.3-8</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="ellipse-package.html">ellipse-package</a></td>
+<td>Functions for drawing ellipses and ellipse-like confidence regions</td></tr>
+<tr><td style="width: 25%;"><a href="ellipse.html">ellipse</a></td>
+<td>Make an ellipse</td></tr>
+<tr><td style="width: 25%;"><a href="ellipse.arima0.html">ellipse.arima0</a></td>
+<td>Outline an approximate pairwise confidence region</td></tr>
+<tr><td style="width: 25%;"><a href="ellipse.html">ellipse.default</a></td>
+<td>Make an ellipse</td></tr>
+<tr><td style="width: 25%;"><a href="ellipse.glm.html">ellipse.glm</a></td>
+<td>Outline an approximate pairwise confidence region</td></tr>
+<tr><td style="width: 25%;"><a href="ellipse.lm.html">ellipse.lm</a></td>
+<td>Outline a pairwise confidence region for a linear model fit.</td></tr>
+<tr><td style="width: 25%;"><a href="ellipse.nls.html">ellipse.nls</a></td>
+<td>Outline an approximate pairwise confidence region</td></tr>
+<tr><td style="width: 25%;"><a href="ellipse.profile.html">ellipse.profile</a></td>
+<td>Pairwise profile sketch</td></tr>
+<tr><td style="width: 25%;"><a href="ellipse.profile.glm.html">ellipse.profile.glm</a></td>
+<td>Pairwise profile sketch for GLM profiles</td></tr>
+<tr><td style="width: 25%;"><a href="ellipse.profile.nls.html">ellipse.profile.nls</a></td>
+<td>Pairwise profile sketch</td></tr>
+<tr><td style="width: 25%;"><a href="pairs.profile.html">pairs.profile</a></td>
+<td>Profile pairs</td></tr>
+<tr><td style="width: 25%;"><a href="plotcorr.html">plotcorr</a></td>
+<td>Plot correlation matrix ellipses</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/INDEX	(revision 2476)
@@ -0,0 +1,16 @@
+ellipse                 Make an ellipse
+ellipse-package         Functions for drawing ellipses and ellipse-like
+                        confidence regions
+ellipse.arima0          Outline an approximate pairwise confidence
+                        region
+ellipse.glm             Outline an approximate pairwise confidence
+                        region
+ellipse.lm              Outline a pairwise confidence region for a
+                        linear model fit.
+ellipse.nls             Outline an approximate pairwise confidence
+                        region
+ellipse.profile         Pairwise profile sketch
+ellipse.profile.glm     Pairwise profile sketch for GLM profiles
+ellipse.profile.nls     Pairwise profile sketch
+pairs.profile           Profile pairs
+plotcorr                Plot correlation matrix ellipses
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/help/ellipse.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/help/ellipse.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/help/AnIndex	(revision 2476)
@@ -0,0 +1,12 @@
+ellipse-package	ellipse-package
+ellipse	ellipse
+ellipse.arima0	ellipse.arima0
+ellipse.default	ellipse
+ellipse.glm	ellipse.glm
+ellipse.lm	ellipse.lm
+ellipse.nls	ellipse.nls
+ellipse.profile	ellipse.profile
+ellipse.profile.glm	ellipse.profile.glm
+ellipse.profile.nls	ellipse.profile.nls
+pairs.profile	pairs.profile
+plotcorr	plotcorr
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/help/ellipse.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/ellipse/help/ellipse.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/NAMESPACE	(revision 2476)
@@ -0,0 +1,520 @@
+# Refer to all C/Fortran routines by their name prefixed by C_
+useDynLib(stats, .registration = TRUE, .fixes = "C_")
+
+import(graphics)
+importFrom(grDevices, as.graphicsAnnot, dev.cur, dev.flush, dev.hold,
+           dev.interactive, dev.new, dev.set, devAskNewPage,
+           extendrange, n2mfrow, palette, xy.coords)
+importFrom(utils, count.fields, flush.console, str, tail)
+
+export(.checkMFClasses, .getXlevels, .MFclass, .nknots.smspl,
+       acf, acf2AR, add.scope,
+       add1, addmargins, aggregate,aggregate.ts, AIC, alias, anova,
+       aov, approx, approxfun, ar, ar.burg, ar.mle, ar.ols, ar.yw,
+       arima, arima.sim, arima0, arima0.diag, ARMAacf, ARMAtoMA,
+       as.dendrogram, as.dist, as.formula, as.hclust, as.stepfun,
+       as.ts, asOneSidedFormula, ave, bandwidth.kernel, BIC, binomial,
+       biplot, Box.test, bw.bcv, bw.nrd, bw.nrd0, bw.SJ, bw.ucv, C,
+       cancor, case.names, ccf, cmdscale, coef, coefficients,
+       complete.cases, confint, confint.default, confint.lm, constrOptim,
+       contr.SAS, contr.helmert, contr.poly, contr.sum,
+       contr.treatment, contrasts, "contrasts<-", convolve,
+       cooks.distance, cophenetic, cor, cov, cov.wt, cov2cor,
+       covratio, cpgram, cutree, cycle, D, dbeta, dbinom, dcauchy,
+       dchisq, decompose, delete.response, deltat, dendrapply,
+       density, deriv, deriv3, deviance, dexp, df, df.kernel,
+       df.residual, dfbeta, dfbetas, dffits, dgamma, dgeom, dhyper,
+       diffinv, dist, dlnorm, dlogis, dmultinom, dnbinom, dnorm,
+       dpois, drop.scope, drop.terms, drop1, dsignrank, dt,
+       dummy.coef, dummy.coef.lm, dunif, dweibull, dwilcox, ecdf, eff.aovlist,
+       effects, embed, estVar, end, expand.model.frame, extractAIC,
+       factanal, factor.scope, family, fft, filter, fitted,
+       fitted.values, fivenum, formula, frequency, ftable, Gamma,
+       gaussian, get_all_vars, getCall, getInitial, glm, glm.control,
+       glm.fit, hasTsp, hat, hatvalues, hclust, heatmap, HoltWinters,
+       influence, influence.measures, integrate, interaction.plot,
+       inverse.gaussian, IQR, is.empty.model, is.leaf, is.mts,
+       is.stepfun, is.ts, is.tskernel, isoreg, KalmanForecast,
+       KalmanLike, KalmanRun, KalmanSmooth, kernapply, kernel, kmeans,
+       knots, ksmooth, lag, lag.plot, line, lm, lm.fit, .lm.fit,
+       lm.influence, lm.wfit, loadings, loess, loess.control,
+       loess.smooth, logLik, loglin, lowess, ls.diag, ls.print, lsfit,
+       mad, mahalanobis, make.link, makeARIMA, makepredictcall,
+       manova, mauchly.test, median, medpolish, model.extract,
+       model.frame, model.matrix, model.offset, model.response,
+       model.tables, model.weights, monthplot, mvfft, na.action,
+       na.contiguous, na.exclude, na.fail, na.omit, na.pass,
+       napredict, naprint, naresid, nextn, nlm, nlminb, nls,
+       nls.control, NLSstAsymptotic, NLSstClosestX, NLSstLfAsymptote,
+       NLSstRtAsymptote, nobs, numericDeriv, offset, optim, optimHess,
+       optimise, optimize, order.dendrogram, p.adjust,
+       p.adjust.methods, pacf, pairwise.table, pbeta, pbinom, pcauchy,
+       pchisq, pexp, pf, pgamma, pgeom, phyper, plclust, plnorm,
+       plogis, pnbinom, pnorm, poisson, poly, polym, power, ppoints,
+       ppois, ppr, PP.test, prcomp, predict, preplot, .preformat.ts, princomp,
+       printCoefmat, profile, proj, promax, psignrank, pt, ptukey,
+       punif, pweibull, pwilcox, qbeta, qbinom, qcauchy, qchisq, qexp,
+       qf, qgamma, qgeom, qhyper, qlnorm, qlogis, qnbinom, qnorm,
+       qpois, qqline, qqnorm, qqplot, qsignrank, qt, qtukey, quantile,
+       quasi, quasibinomial, quasipoisson, qunif, qweibull, qwilcox,
+       r2dtable, rbeta, rbinom, rcauchy, rchisq, read.ftable,
+       rect.hclust, reformulate, relevel, reorder, replications,
+       reshape, resid, residuals, rexp, rf, rgamma, rgeom, rhyper,
+       rlnorm, rlogis, rmultinom, rnbinom, rnorm, rpois, rsignrank,
+       rstandard, rstudent, rt, runif, runmed, rweibull, rwilcox,
+       rWishart, scatter.smooth, screeplot, sd, se.contrast,
+       selfStart, setNames, sigma, simulate, smooth, smooth.spline,
+       smoothEnds, sortedXyData, spec.ar, spec.pgram, spec.taper,
+       spectrum, spline, splinefun, splinefunH, SSD, SSasymp,
+       SSasympOff, SSasympOrig, SSbiexp, SSfol, SSfpl, SSgompertz,
+       SSlogis, SSmicmen, SSweibull, start, stat.anova, step, stepfun,
+       stl, StructTS, summary.manova, supsmu, symnum, termplot, terms,
+       time, toeplitz, ts, ts.intersect, ts.plot, ts.union, tsdiag,
+       tsp, "tsp<-", tsSmooth, TukeyHSD, uniroot, update, var,
+       variable.names, varimax, vcov, weighted.mean,
+       weighted.residuals, weights, window, "window<-", write.ftable,
+       xtabs, pbirthday, qbirthday)
+
+## from ctest
+export(ansari.test, bartlett.test, binom.test, chisq.test, cor.test,
+       fisher.test, fligner.test, friedman.test, kruskal.test,
+       ks.test, mantelhaen.test, mauchly.test, mcnemar.test,
+       mood.test, oneway.test, pairwise.prop.test, pairwise.t.test,
+       pairwise.wilcox.test, poisson.test, power.anova.test,
+       power.prop.test, power.t.test, prop.test, prop.trend.test,
+       quade.test, shapiro.test, t.test, var.test, wilcox.test)
+
+export(plot.spec.coherency, plot.spec.phase)
+
+
+## methods used by R itself.
+export(density.default, model.frame.default, plot.ecdf, plot.stepfun,
+       summary.aov, summary.lm, summary.stepfun, update.formula)
+
+## historical
+export(aggregate.data.frame, median.default, model.matrix.default,
+       model.matrix.lm, plot.ts, predict.glm, predict.lm,
+       residuals.glm, residuals.lm, summary.glm, terms.formula,
+       update.default)
+
+## model.matrix.lm: robustbase
+## residuals.glm: DAMisc, car, haplo.stats, lasso2, plsRbeta, plsRglm, rms, spgwr
+## residuals.lm: CADFest, robustbase
+## update.default: MuMIn, spatstat
+
+
+## register all the methods for generics elsewhere in case namespace is
+## loaded but not currently attached.
+S3method("[", acf)
+S3method("[", formula)
+S3method("[", terms)
+S3method("[", ts)
+S3method("[", tskernel)
+S3method("[<-", ts)
+S3method("[[", dendrogram)
+S3method(add1, default)
+S3method(add1, glm)
+S3method(add1, lm)
+S3method(add1, mlm)
+S3method(aggregate, data.frame)
+S3method(aggregate, default)
+S3method(aggregate, "formula")
+S3method(aggregate, ts)
+S3method(AIC, default)
+S3method(AIC, logLik)
+S3method(alias, formula)
+S3method(alias, lm)
+S3method(ansari.test, default)
+S3method(ansari.test, formula)
+S3method(ar.burg, default)
+S3method(ar.burg, mts)
+S3method(ar.yw, default)
+S3method(ar.yw, mts)
+S3method(as.data.frame, aovproj)
+S3method(as.data.frame, ftable)
+S3method(as.data.frame, logLik)
+S3method(as.dendrogram, dendrogram)
+S3method(as.dendrogram, hclust)
+S3method(as.dist, default)
+S3method(as.hclust, dendrogram)
+S3method(as.hclust, default)
+S3method(as.hclust, twins)
+S3method(as.matrix, dist)
+S3method(as.matrix, ftable)
+S3method(as.stepfun, default)
+S3method(as.stepfun, isoreg)
+S3method(as.table, ftable)
+S3method(as.ts, default)
+S3method(anova, glm)
+S3method(anova, glmlist)
+S3method(anova, lm)
+S3method(anova, lmlist)
+S3method(anova, loess)
+S3method(anova, mlm)
+S3method(anova, nls)
+S3method(bartlett.test, default)
+S3method(bartlett.test, formula)
+S3method(BIC, default)
+S3method(BIC, logLik)
+S3method(biplot, default)
+S3method(biplot, princomp)
+S3method(biplot, prcomp)
+S3method(case.names, default)
+S3method(case.names, lm)
+S3method(cbind, ts)
+S3method(coef, aov)
+S3method(coef, Arima)
+S3method(coef, default)
+S3method(coef, listof)
+S3method(coef, maov)
+S3method(coef, nls)
+S3method(confint, default)
+S3method(confint, glm)
+S3method(confint, lm)
+S3method(confint, nls)
+S3method(cooks.distance, glm)
+S3method(cooks.distance, lm)
+S3method(cophenetic, default)
+S3method(cophenetic, dendrogram)
+S3method(cor.test, default)
+S3method(cor.test, formula)
+S3method(cut, dendrogram)
+S3method(cycle, default)
+S3method(cycle, ts)
+S3method(deltat, default)
+S3method(density, default)
+S3method(deriv, default)
+S3method(deriv, formula)
+S3method(deriv3, default)
+S3method(deriv3, formula)
+S3method(deviance, default)
+S3method(deviance, glm)
+S3method(deviance, lm)
+S3method(deviance, mlm)
+S3method(deviance, nls)
+S3method(diffinv, default)
+S3method(diffinv, ts)
+S3method(diffinv, vector)
+S3method(df.residual, default)
+S3method(df.residual, nls)
+S3method(dfbeta, lm)
+S3method(dfbetas, lm)
+S3method(diff, ts)
+S3method(drop1, default)
+S3method(drop1, glm)
+S3method(drop1, lm)
+S3method(drop1, mlm)
+S3method(dummy.coef, aovlist)
+S3method(dummy.coef, lm)
+S3method(effects, glm)
+S3method(effects, lm)
+S3method(end, default)
+S3method(estVar, SSD)
+S3method(estVar, mlm)
+S3method(extractAIC, aov)
+S3method(extractAIC, coxph)
+S3method(extractAIC, glm)
+S3method(extractAIC, lm)
+S3method(extractAIC, negbin)
+S3method(extractAIC, survreg)
+S3method(family, glm)
+S3method(family, lm)
+S3method(fitted, default)
+S3method(fitted, isoreg)
+S3method(fitted, kmeans)
+S3method(fitted, nls)
+S3method(fitted, smooth.spline)
+S3method(fligner.test, default)
+S3method(fligner.test, formula)
+S3method(format, dist)
+S3method(format, ftable)
+S3method(formula, character)
+S3method(formula, data.frame)
+S3method(formula, default)
+S3method(formula, formula)
+S3method(formula, glm)
+S3method(formula, lm)
+S3method(formula, nls)
+S3method(formula, terms)
+S3method(frequency, default)
+S3method(friedman.test, default)
+S3method(friedman.test, formula)
+S3method(ftable, default)
+S3method(ftable, formula)
+S3method(getCall, default)
+S3method(getInitial, default)
+S3method(getInitial, formula)
+S3method(getInitial, selfStart)
+S3method(hatvalues, lm)
+S3method(identify, hclust)
+S3method(influence, glm)
+S3method(influence, lm)
+S3method(kernapply, default)
+S3method(kernapply, ts)
+S3method(kernapply, tskernel)
+S3method(kernapply, vector)
+S3method(knots, stepfun)
+S3method(kruskal.test, default)
+S3method(kruskal.test, formula)
+S3method(labels, dendrogram)
+S3method(labels, dist)
+S3method(labels, lm)
+S3method(labels, terms)
+S3method(lag, default)
+S3method(lines, isoreg)
+S3method(lines, stepfun)
+S3method(lines, ts)
+S3method(logLik, Arima)
+S3method(logLik, glm)
+S3method(logLik, lm)
+S3method(logLik, logLik)
+S3method(logLik, nls)
+S3method(makepredictcall, default)
+S3method(makepredictcall, poly)
+S3method(mauchly.test, SSD)
+S3method(mauchly.test, mlm)
+S3method(median, default)
+S3method(merge, dendrogram)
+S3method(model.frame, aovlist)
+S3method(model.frame, default)
+S3method(model.frame, glm)
+S3method(model.frame, lm)
+S3method(model.matrix, default)
+S3method(model.matrix, lm)
+S3method(model.tables, aov)
+S3method(model.tables, aovlist)
+S3method(monthplot, default)
+S3method(monthplot, stl)
+S3method(monthplot, StructTS)
+S3method(monthplot, ts)
+S3method(mood.test, default)
+S3method(mood.test, formula)
+S3method(na.action, default)
+S3method(na.contiguous, default)
+S3method(na.exclude, data.frame)
+S3method(na.exclude, default)
+S3method(na.fail, default)
+S3method(na.omit, data.frame)
+S3method(na.omit, default)
+S3method(na.omit, ts)
+S3method(napredict, default)
+S3method(napredict, exclude)
+S3method(naprint, default)
+S3method(naprint, exclude)
+S3method(naprint, omit)
+S3method(naresid, default)
+S3method(naresid, exclude)
+S3method(NLSstAsymptotic, sortedXyData)
+S3method(NLSstClosestX, sortedXyData)
+S3method(NLSstLfAsymptote, sortedXyData)
+S3method(NLSstRtAsymptote, sortedXyData)
+S3method(nobs, default)
+S3method(nobs, dendrogram)
+S3method(nobs, glm)
+S3method(nobs, lm)
+S3method(nobs, logLik)
+S3method(nobs, nls)
+S3method(Ops, ts)
+S3method(pacf, default)
+S3method(plot, acf)
+S3method(plot, decomposed.ts)
+S3method(plot, dendrogram)
+S3method(plot, density)
+S3method(plot, ecdf)
+S3method(plot, hclust)
+S3method(plot, HoltWinters)
+S3method(plot, isoreg)
+S3method(plot, lm)
+S3method(plot, medpolish)
+S3method(plot, mlm)
+S3method(plot, ppr)
+S3method(plot, prcomp)
+S3method(plot, princomp)
+S3method(plot, profile.nls)
+S3method(plot, spec)
+S3method(plot, stepfun)
+S3method(plot, stl)
+S3method(plot, ts)
+S3method(plot, tskernel)
+S3method(plot, TukeyHSD)
+S3method(ppr, default)
+S3method(ppr, formula)
+S3method(prcomp, default)
+S3method(prcomp, formula)
+S3method(predict, ar)
+S3method(predict, Arima)
+S3method(predict, arima0)
+S3method(predict, glm)
+S3method(predict, HoltWinters)
+S3method(predict, lm)
+S3method(predict, loess)
+S3method(predict, mlm)
+S3method(predict, poly)
+S3method(predict, ppr)
+S3method(predict, nls)
+S3method(predict, prcomp)
+S3method(predict, princomp)
+S3method(predict, smooth.spline)
+S3method(predict, smooth.spline.fit)
+S3method(predict, StructTS)
+S3method(princomp, default)
+S3method(princomp, formula)
+S3method(print, acf)
+S3method(print, anova)
+S3method(print, aov)
+S3method(print, aovlist)
+S3method(print, ar)
+S3method(print, Arima)
+S3method(print, arima0)
+S3method(print, dendrogram)
+S3method(print, density)
+S3method(print, dist)
+S3method(print, dummy_coef)
+S3method(print, dummy_coef_list)
+S3method(print, ecdf)
+S3method(print, factanal)
+S3method(print, family)
+S3method(print, formula)
+S3method(print, ftable)
+S3method(print, glm)
+S3method(print, hclust)
+S3method(print, HoltWinters)
+S3method(print, htest)
+S3method(print, infl)
+S3method(print, integrate)
+S3method(print, isoreg)
+S3method(print, kmeans)
+S3method(print, lm)
+S3method(print, loadings)
+S3method(print, loess)
+S3method(print, logLik)
+S3method(print, medpolish)
+S3method(print, mtable)
+S3method(print, nls)
+S3method(print, pairwise.htest)
+S3method(print, power.htest)
+S3method(print, ppr)
+S3method(print, prcomp)
+S3method(print, princomp)
+S3method(print, smooth.spline)
+S3method(print, stepfun)
+S3method(print, stl)
+S3method(print, StructTS)
+S3method(print, summary.aov)
+S3method(print, summary.aovlist)
+S3method(print, summary.ecdf)
+S3method(print, summary.glm)
+S3method(print, summary.lm)
+S3method(print, summary.loess)
+S3method(print, summary.manova)
+S3method(print, summary.nls)
+S3method(print, summary.ppr)
+S3method(print, summary.prcomp)
+S3method(print, summary.princomp)
+S3method(print, tables_aov)
+S3method(print, TukeyHSD)
+S3method(print, terms)
+S3method(print, ts)
+S3method(print, tskernel)
+S3method(print, tukeyline)
+S3method(print, tukeysmooth)
+S3method(print, xtabs)
+S3method(profile, nls)
+S3method(profiler, nls)
+S3method(proj, aov)
+S3method(proj, aovlist)
+S3method(proj, default)
+S3method(proj, lm)
+S3method(quade.test, default)
+S3method(quade.test, formula)
+S3method(qqnorm, default)
+S3method(qr, lm)
+S3method(quantile, default)
+S3method(quantile, ecdf)
+S3method(quantile, POSIXt)
+S3method(relevel, default)
+S3method(relevel, factor)
+S3method(relevel, ordered)
+S3method(reorder, default)
+S3method(reorder, dendrogram)
+S3method(residuals, default)
+S3method(residuals, glm)
+S3method(residuals, isoreg)
+S3method(residuals, HoltWinters)
+S3method(residuals, lm)
+S3method(residuals, nls)
+S3method(residuals, smooth.spline)
+S3method(residuals, tukeyline)
+S3method(rev, dendrogram)
+S3method(rstandard, glm)
+S3method(rstandard, lm)
+S3method(rstudent, glm)
+S3method(rstudent, lm)
+S3method(screeplot, default)
+S3method(se.contrast, aov)
+S3method(se.contrast, aovlist)
+S3method(selfStart, default)
+S3method(selfStart, formula)
+S3method(sigma, default)
+S3method(sigma, mlm)
+S3method(simulate, lm)
+S3method(sortedXyData, default)
+S3method(str, dendrogram)
+S3method(summary, aov)
+S3method(summary, aovlist)
+S3method(summary, ecdf)
+S3method(summary, glm)
+S3method(summary, infl)
+S3method(summary, lm)
+S3method(summary, loess)
+S3method(summary, manova)
+S3method(summary, mlm)
+S3method(summary, nls)
+S3method(summary, ppr)
+S3method(summary, prcomp)
+S3method(summary, princomp)
+S3method(summary, stepfun)
+S3method(summary, stl)
+S3method(summary, tukeysmooth)
+S3method(SSD, mlm)
+S3method(start, default)
+S3method(str, logLik)
+S3method(t, ts)
+S3method(t.test, default)
+S3method(t.test, formula)
+S3method(terms, default)
+S3method(terms, formula)
+S3method(terms, terms)
+S3method(time, default)
+S3method(time, ts)
+S3method(tsdiag, Arima)
+S3method(tsdiag, arima0)
+S3method(tsdiag, StructTS)
+S3method(tsSmooth, StructTS)
+S3method(TukeyHSD, aov)
+S3method(update, default)
+S3method(update, formula)
+S3method(var.test, default)
+S3method(var.test, formula)
+S3method(variable.names, default)
+S3method(variable.names, lm)
+S3method(vcov, Arima)
+S3method(vcov, glm)
+S3method(vcov, lm)
+S3method(vcov, summary.lm)
+S3method(vcov, summary.glm)
+S3method(vcov, mlm)
+S3method(vcov, nls)
+S3method(weighted.mean, Date)
+S3method(weighted.mean, default)
+S3method(weighted.mean, difftime)
+S3method(weighted.mean, POSIXct)
+S3method(weighted.mean, POSIXlt)
+S3method(weights, default)
+S3method(weights, glm)
+S3method(weights, nls)
+S3method(wilcox.test, default)
+S3method(wilcox.test, formula)
+S3method(window, default)
+S3method(window, ts)
+S3method("window<-", ts)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/R/stats
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/R/stats	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/R/stats	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/R/stats.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/R/stats.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/R/stats.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/R/stats.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/simulate.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/simulate.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/simulate.Rout.save	(revision 2476)
@@ -0,0 +1,411 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ## tests of the simulate.lm method, added Feb 2009
+> 
+> options(digits = 5)
+> 
+> ## cases should be named
+> load("hills.rda") # copied from package MASS
+> fit1 <- lm(time ~ dist, data = hills)
+> set.seed(1)
+> simulate(fit1, nsim = 3)
+                    sim_1    sim_2    sim_3
+Greenmantle        3.4841   7.7039  25.4746
+Carnethy          48.8068  37.2737  30.9745
+Craig Dunain      28.4665  43.9584  57.3295
+Ben Rha           89.4727  79.5895  38.9971
+Ben Lomond        68.3785  77.0326  36.7858
+Goatfell          45.4299  58.5197  67.6189
+Bens of Jura     138.1736 123.3906 119.6004
+Cairnpapple       59.8758  59.0504  45.1641
+Scolty            48.3017  47.9202  38.2951
+Traprain          39.0478  31.3974  33.3777
+Lairig Ghru      258.5807 214.2935 217.0639
+Dollar            44.5912  44.0871  34.1140
+Lomonds           61.9013  89.6352  97.8082
+Cairn Table        0.9461  42.9001  14.7382
+Eildon Two        55.0951  50.2295  44.4990
+Cairngorm         77.5672  86.4083  85.1081
+Seven Hills      111.4626  99.5722 133.0006
+Knock Hill        38.9856  26.9579  14.0804
+Black Hill        49.0344  10.1091  40.0303
+Creag Beag        52.8285  69.5738  46.3069
+Kildcon Hill      38.4895  59.6709   9.3243
+Meall Ant-Suidhe  39.9240  16.9877  48.4197
+Half Ben Nevis    46.6300  24.3056  68.2987
+Cow Hill         -27.8787  23.1894  25.7935
+N Berwick Law     32.5197  17.4555  51.8170
+Creag Dubh        27.3610  76.4071  39.6261
+Burnswark         42.0330  44.3590  19.6667
+Largo Law          7.4616  50.5758  25.3716
+Criffel           39.7654  49.8660  24.8692
+Acmony            45.1519  21.9790  27.3645
+Ben Nevis        105.5773  82.2313  66.0840
+Knockfarrel       43.0908   9.1228  45.9825
+Two Breweries    152.8438 174.3537 126.9294
+Cockleroi         31.5726  35.7046  35.7999
+Moffat Chase     134.2882 205.1244 148.7057
+> 
+> ## and weights should be taken into account
+> fit2 <- lm(time ~ -1 + dist + climb, hills[-18, ], weight = 1/dist^2)
+> coef(summary(fit2))
+       Estimate Std. Error t value   Pr(>|t|)
+dist  4.8999847  0.4737032 10.3440 9.8468e-12
+climb 0.0084718  0.0016869  5.0221 1.8636e-05
+> set.seed(1)
+> ( ys <- simulate(fit2, nsim = 3) )
+                   sim_1   sim_2   sim_3
+Greenmantle       15.754  13.355  18.247
+Carnethy          51.988  47.396  67.247
+Craig Dunain      30.614  34.000  40.672
+Ben Rha           58.825  42.959  36.719
+Ben Lomond        68.579  76.460  71.455
+Goatfell          55.088  71.287  53.926
+Bens of Jura     151.910 138.573 116.292
+Cairnpapple       41.841  34.234  38.413
+Scolty            34.958  35.733  28.443
+Traprain          32.564  39.177  34.915
+Lairig Ghru      209.113 130.333 157.652
+Dollar            43.936  36.921  37.675
+Lomonds           57.642  69.616  58.280
+Cairn Table       16.646  39.532  32.599
+Eildon Two        41.230  34.111  41.536
+Cairngorm         73.841  85.681  54.935
+Seven Hills       86.948  94.364  97.870
+Black Hill        35.952  27.000  32.437
+Creag Beag        37.808  34.432  39.509
+Kildcon Hill      19.520  12.910  16.075
+Meall Ant-Suidhe  33.970  36.271  31.514
+Half Ben Nevis    54.038  63.231  50.087
+Cow Hill          17.615  16.486  16.037
+N Berwick Law     12.152  15.778  24.416
+Creag Dubh        39.714  39.457  42.478
+Burnswark         35.747  35.141  41.549
+Largo Law         31.552  47.902  42.693
+Criffel           34.452  46.350  51.317
+Acmony            25.679  33.145  20.575
+Ben Nevis         91.620  86.634  78.946
+Knockfarrel       44.906  28.781  25.088
+Two Breweries    129.888 136.598 121.358
+Cockleroi         31.482  18.866  25.682
+Moffat Chase     138.983 177.836 141.436
+> for(i in seq_len(3))
++     print(coef(summary(update(fit2, ys[, i] ~ .))))
+       Estimate Std. Error t value   Pr(>|t|)
+dist  4.8759333  0.4295826 11.3504 9.3646e-13
+climb 0.0091824  0.0015298  6.0023 1.0781e-06
+       Estimate Std. Error t value   Pr(>|t|)
+dist  4.6969341  0.4406227   10.66 4.6417e-12
+climb 0.0099795  0.0015691    6.36 3.8442e-07
+       Estimate Std. Error t value   Pr(>|t|)
+dist  4.8215499   0.420077 11.4778 7.0162e-13
+climb 0.0090388   0.001496  6.0422 9.6065e-07
+> 
+> ## Poisson fit
+> load("anorexia.rda") # copied from package MASS
+> fit3 <- glm(Postwt ~ Prewt + Treat + offset(Prewt),
++             family = gaussian, data = anorexia)
+> coef(summary(fit3))
+            Estimate Std. Error t value   Pr(>|t|)
+(Intercept) 49.77111   13.39096  3.7168 0.00041011
+Prewt       -0.56554    0.16118 -3.5087 0.00080343
+TreatCont   -4.09707    1.89349 -2.1638 0.03399931
+TreatFT      4.56306    2.13334  2.1389 0.03603508
+> set.seed(1)
+> simulate(fit3, nsim = 8)
+     sim_1   sim_2   sim_3   sim_4   sim_5   sim_6   sim_7  sim_8
+1   76.364  84.997  72.948  78.581  83.762  62.645  70.046 87.655
+2   85.796  77.997  79.276  75.769  91.529  93.684  84.340 95.638
+3   79.726  76.809 100.122  90.039  82.835  81.123  89.696 75.979
+4   88.956  79.858  77.946  77.512  80.451  74.824  76.441 76.082
+5   81.905  76.512  70.629  67.511  81.309  78.424  85.830 87.696
+6   78.312  84.045  72.589  84.052  74.084  88.309  83.858 76.262
+7   87.004  84.121  86.744  79.204  96.013  88.336  79.083 65.958
+8   83.454  74.188  78.173  75.923  79.240  82.265  82.812 71.771
+9   84.710  76.723  78.472  72.621  86.034  76.696  77.664 73.942
+10  77.605  78.792  73.251  92.318  86.401  70.223  92.105 80.067
+11  89.938  87.609  69.008  77.078  79.035  76.676  79.261 76.571
+12  86.931  73.579  76.708  73.007  82.077  86.150  90.162 85.826
+13  76.661  85.140  87.974  82.372  87.232  75.252  82.427 78.048
+14  64.151  81.929  75.270  81.442  72.297  79.125  58.615 82.216
+15  84.154  83.722  66.643  69.424  90.060  68.155  66.771 73.749
+16  78.944  77.135  92.302  59.098  76.581  79.200  76.298 87.563
+17  82.577  85.272  85.657  78.221  94.233  83.589  84.343 77.545
+18  89.624  84.902  81.372  87.019  93.590  82.020  66.690 85.066
+19  87.943  78.426  89.599  81.795  82.791  81.068  88.923 76.038
+20  84.445  88.729  86.486  79.615  84.259  92.607  76.083 81.752
+21  89.233  90.918  78.499  86.734  75.671  88.142  77.567 82.487
+22  87.800  87.229  97.737  74.063  84.597  90.098  71.487 70.588
+23  80.777  91.330  78.478  87.911  87.540  73.815  70.112 79.251
+24  65.463  83.242  69.404  79.307  80.036  80.492  79.738 87.581
+25  81.411  68.177  76.078  82.021  73.917  85.144  80.640 81.841
+26  83.949  80.341  85.789  91.557  79.765  83.947  69.702 85.341
+27  83.658  76.200 100.851  86.305  84.495  69.886  77.737 76.425
+28  76.394  83.353  87.395  80.525  94.118  89.063  90.396 94.816
+29  81.843  80.851  88.369  93.295  81.802  71.887  82.018 85.732
+30  88.574  85.951  85.119  71.700  84.813  79.997 100.768 82.505
+31  93.966  78.128  82.154  80.683  75.454  93.724  93.178 95.943
+32  87.591  89.411  88.065  86.524  91.757  92.604  92.463 82.937
+33  93.707  86.434  96.498  89.842 100.128  98.619  91.036 93.118
+34  82.545  95.253  97.402  90.041  93.367  85.060  84.870 91.865
+35  75.353  89.964  92.132  85.913  90.648  84.194  80.037 89.165
+36  81.849  91.097  93.174  87.587  71.698  78.295  89.128 82.603
+37  83.949  89.381  78.108  86.214  90.064  97.816  97.030 83.781
+38  88.111 100.264  95.391  86.797  91.708  88.839  96.085 91.003
+39  92.769  80.657  86.627  89.946  82.627  80.103  79.418 88.676
+40  88.333  79.786  72.769  91.006  84.197  89.045  71.711 83.137
+41  79.035  90.178  83.819  63.414  74.154  87.681  79.418 89.384
+42  82.934  80.161  83.594  88.698  89.442  97.930  87.778 84.242
+43  90.825  84.515  96.182  88.577  83.679  81.754  95.389 81.075
+44  89.716  83.090  80.486  82.864  74.882  83.104  76.630 89.581
+45  83.067  85.640  84.871  94.510  85.309  84.969  90.416 72.509
+46  81.416  84.405  79.890  83.637  95.874  83.731  87.982 89.088
+47  89.853  90.757  86.073  85.324  84.976  84.750  95.640 90.776
+48  88.370  81.770  85.813  88.991  88.121  80.944  82.813 81.438
+49  83.831  81.084  79.509  96.615  91.220  94.676  82.122 76.819
+50  94.065  97.289  93.711  89.801  87.947  83.049  79.914 85.160
+51  88.740  84.464  77.532  83.016  83.503  83.253  82.351 96.777
+52  80.127  83.145  77.085  76.100  80.701  88.951  81.871 79.209
+53  88.863  85.784  96.540  84.173  91.644  94.332 102.886 70.212
+54  76.995  89.849  77.787  78.317  77.455  79.488 101.948 90.544
+55  97.743  87.230  90.618  85.936  89.461  84.197  86.580 84.245
+56 104.562  90.479  88.083  93.494  88.722  94.396  83.459 87.177
+57  87.962  85.768  93.382  84.580  74.720  97.627  76.757 82.044
+58  84.412  89.435 103.483 110.184  81.867  89.945  95.289 91.540
+59  94.153  90.597 101.249  91.266  96.569  80.198  82.567 95.071
+60  91.060  87.893  89.693  99.889  90.667 103.929 107.945 87.902
+61 105.676  92.626  72.970  72.943  94.523  98.931  82.737 84.683
+62  87.470  77.149 105.173  92.915 100.915  82.787  88.520 95.397
+63 100.074  97.400  99.915  86.075 105.545  94.806 121.849 93.533
+64  86.419  75.502  90.001  92.642  90.950  73.946  78.485 85.108
+65  84.122  87.208  89.215  92.087  91.960  93.284  91.455 84.941
+66  91.104  86.100  93.346  86.942  88.441 101.037  82.062 96.070
+67  77.408  85.453  88.856  99.244 101.014  78.578  92.429 83.066
+68  98.275  87.651  90.984  83.155  92.209  82.608  81.955 93.975
+69  91.681  77.253  87.819  86.560  82.422  86.137  91.151 96.234
+70 108.553 101.603  83.831  86.407  92.306  88.639  91.321 90.129
+71  95.016  80.079  98.591  87.035  78.307  77.509  83.441 97.618
+72  87.308  89.028 102.868  98.858  90.900  95.758  92.341 99.148
+> 
+> ## two-column binomial fit
+> ldose <- rep(0:5, 2)
+> numdead <- c(1, 4, 9, 13, 18, 20, 0, 2, 6, 10, 12, 16)
+> sex <- factor(rep(c("M", "F"), c(6, 6)))
+> SF <- cbind(numdead, numalive = 20 - numdead)
+> fit4 <- glm(SF ~ sex + ldose - 1, family = binomial)
+> coef(summary(fit4))
+      Estimate Std. Error z value   Pr(>|z|)
+sexF   -3.4732    0.46852 -7.4130 1.2344e-13
+sexM   -2.3724    0.38551 -6.1539 7.5579e-10
+ldose   1.0642    0.13108  8.1190 4.7015e-16
+> set.seed(1)
+> ( ys <- simulate(fit4, nsim = 3) )
+   sim_1.numdead sim_1.numalive sim_2.numdead sim_2.numalive sim_3.numdead
+1              1             19             2             18             1
+2              4             16             4             16             4
+3              9             11            10             10             4
+4             11              9            14              6            15
+5             19              1            17              3            16
+6             18              2            16              4            20
+7              2             18             0             20             0
+8              2             18             3             17             2
+9              5             15             7             13             4
+10             5             15             7             13             7
+11            15              5            13              7            12
+12            19              1            19              1            17
+   sim_3.numalive
+1              19
+2              16
+3              16
+4               5
+5               4
+6               0
+7              20
+8              18
+9              16
+10             13
+11              8
+12              3
+> for(i in seq_len(3))
++     print(coef(summary(update(fit4, ys[, i] ~ .))))
+      Estimate Std. Error z value   Pr(>|z|)
+sexF   -3.3079    0.45218 -7.3154 2.5656e-13
+sexM   -2.5067    0.39240 -6.3880 1.6812e-10
+ldose   1.0482    0.12869  8.1454 3.7800e-16
+      Estimate Std. Error z value   Pr(>|z|)
+sexF  -2.84478    0.40661 -6.9963 2.6289e-12
+sexM  -2.11845    0.35818 -5.9145 3.3286e-09
+ldose  0.90935    0.11578  7.8541 4.0273e-15
+      Estimate Std. Error z value   Pr(>|z|)
+sexF   -3.9838    0.52156 -7.6384 2.1996e-14
+sexM   -2.8717    0.43047 -6.6712 2.5376e-11
+ldose   1.1487    0.14102  8.1459 3.7655e-16
+> 
+> ## same via proportions
+> fit5 <- glm(numdead/20 ~ sex + ldose - 1, family = binomial,
++             weights = rep(20, 12))
+> set.seed(1)
+> ( ys <- simulate(fit5, nsim = 3) )
+   sim_1 sim_2 sim_3
+1   0.05  0.10  0.05
+2   0.20  0.20  0.20
+3   0.45  0.50  0.20
+4   0.55  0.70  0.75
+5   0.95  0.85  0.80
+6   0.90  0.80  1.00
+7   0.10  0.00  0.00
+8   0.10  0.15  0.10
+9   0.25  0.35  0.20
+10  0.25  0.35  0.35
+11  0.75  0.65  0.60
+12  0.95  0.95  0.85
+> for(i in seq_len(3))
++     print(coef(summary(update(fit5, ys[, i] ~ .))))
+      Estimate Std. Error z value   Pr(>|z|)
+sexF   -3.3079    0.45218 -7.3154 2.5656e-13
+sexM   -2.5067    0.39240 -6.3880 1.6812e-10
+ldose   1.0482    0.12869  8.1454 3.7800e-16
+      Estimate Std. Error z value   Pr(>|z|)
+sexF  -2.84478    0.40661 -6.9963 2.6289e-12
+sexM  -2.11845    0.35818 -5.9145 3.3286e-09
+ldose  0.90935    0.11578  7.8541 4.0273e-15
+      Estimate Std. Error z value   Pr(>|z|)
+sexF   -3.9838    0.52156 -7.6384 2.1996e-14
+sexM   -2.8717    0.43047 -6.6712 2.5376e-11
+ldose   1.1487    0.14102  8.1459 3.7655e-16
+> 
+> 
+> ## factor binomial fit
+> load("birthwt.rda") # copied from package MASS
+> bwt <- with(birthwt, {
++     race <- factor(race, labels = c("white", "black", "other"))
++     table(ptl)
++     ptd <- factor(ptl > 0)
++     table(ftv)
++     ftv <- factor(ftv)
++     levels(ftv)[-(1:2)] <- "2+"
++     data.frame(low = factor(low), age, lwt, race,
++                smoke = (smoke > 0), ptd, ht = (ht > 0), ui = (ui > 0), ftv)
++ })
+> fit6 <- glm(low ~ ., family = binomial, data = bwt)
+> coef(summary(fit6))
+             Estimate Std. Error  z value  Pr(>|z|)
+(Intercept)  0.823019  1.2447143  0.66121 0.5084769
+age         -0.037234  0.0387024 -0.96207 0.3360159
+lwt         -0.015653  0.0070804 -2.21075 0.0270532
+raceblack    1.192413  0.5359646  2.22480 0.0260948
+raceother    0.740685  0.4617443  1.60410 0.1086916
+smokeTRUE    0.755528  0.4250166  1.77764 0.0754623
+ptdTRUE      1.343763  0.4806207  2.79589 0.0051757
+htTRUE       1.913166  0.7207369  2.65446 0.0079436
+uiTRUE       0.680195  0.4643403  1.46486 0.1429580
+ftv1        -0.436380  0.4793936 -0.91027 0.3626779
+ftv2+        0.179009  0.4563778  0.39224 0.6948827
+> set.seed(1)
+> ys <- simulate(fit6, nsim = 3)
+> ys[1:10, ]
+   sim_1 sim_2 sim_3
+1      0     0     0
+2      0     0     0
+3      0     0     0
+4      1     0     1
+5      0     1     1
+6      1     0     1
+7      1     0     0
+8      0     0     0
+9      0     0     0
+10     0     0     1
+> for(i in seq_len(3))
++     print(coef(summary(update(fit6, ys[, i] ~ .))))
+             Estimate Std. Error  z value Pr(>|z|)
+(Intercept) -0.284354  1.2297301 -0.23123 0.817134
+age         -0.011485  0.0389166 -0.29513 0.767897
+lwt         -0.012314  0.0069041 -1.78353 0.074500
+raceblack    0.844051  0.5514350  1.53064 0.125857
+raceother    0.565993  0.4665978  1.21302 0.225122
+smokeTRUE    1.024337  0.4253416  2.40827 0.016028
+ptdTRUE      1.578045  0.4887012  3.22906 0.001242
+htTRUE       1.171556  0.7060321  1.65935 0.097045
+uiTRUE       0.384214  0.4835840  0.79451 0.426897
+ftv1        -0.790699  0.5271049 -1.50008 0.133594
+ftv2+        0.522245  0.4498448  1.16094 0.245665
+             Estimate Std. Error  z value   Pr(>|z|)
+(Intercept)  0.916922   1.433819  0.63950 5.2250e-01
+age          0.034662   0.041752  0.83019 4.0643e-01
+lwt         -0.036299   0.009577 -3.79021 1.5052e-04
+raceblack    2.588992   0.631372  4.10058 4.1211e-05
+raceother    1.073046   0.522576  2.05338 4.0036e-02
+smokeTRUE    0.710930   0.478870  1.48460 1.3765e-01
+ptdTRUE      0.679588   0.503299  1.35027 1.7693e-01
+htTRUE       1.988224   0.801811  2.47967 1.3151e-02
+uiTRUE       1.080176   0.489033  2.20880 2.7189e-02
+ftv1        -0.418153   0.549009 -0.76165 4.4627e-01
+ftv2+        0.657962   0.500605  1.31433 1.8873e-01
+              Estimate Std. Error   z value   Pr(>|z|)
+(Intercept)  1.4927579  1.2779154  1.168119 0.24275859
+age         -0.0986485  0.0415094 -2.376532 0.01747625
+lwt         -0.0088426  0.0070635 -1.251885 0.21061194
+raceblack    0.2106382  0.5622160  0.374657 0.70791549
+raceother    0.8608985  0.4814556  1.788116 0.07375727
+smokeTRUE    0.7884781  0.4449757  1.771958 0.07640158
+ptdTRUE      1.9686209  0.5435116  3.622040 0.00029229
+htTRUE       1.7835637  0.7279712  2.450047 0.01428375
+uiTRUE       1.4816743  0.5139743  2.882779 0.00394184
+ftv1        -0.7388479  0.5090637 -1.451386 0.14667244
+ftv2+       -0.0097438  0.4670024 -0.020865 0.98335371
+> 
+> ## This requires MASS::gamma.shape
+> if(!require("MASS")) q()
+Loading required package: MASS
+> 
+> ## gamma fit, from example(glm)
+> clotting <- data.frame(u = c(5,10,15,20,30,40,60,80,100),
++                        lot1 = c(118,58,42,35,27,25,21,19,18))
+> fit7 <- glm(lot1 ~ log(u), data = clotting, family = Gamma)
+> coef(summary(fit7))
+             Estimate Std. Error t value   Pr(>|t|)
+(Intercept) -0.016554 0.00092755 -17.847 4.2791e-07
+log(u)       0.015343 0.00041496  36.975 2.7512e-09
+> set.seed(1)
+> ( ys <- simulate(fit7, nsim = 3) )
+    sim_1   sim_2   sim_3
+1 119.451 118.552 123.140
+2  56.310  51.798  48.747
+3  42.193  39.456  40.843
+4  34.581  33.905  35.580
+5  26.208  26.971  27.210
+6  25.476  25.840  24.437
+7  22.287  22.151  21.375
+8  20.206  20.503  19.626
+9  18.224  19.094  17.952
+> for(i in seq_len(3))
++     print(coef(summary(update(fit7, ys[, i] ~ .))))
+             Estimate Std. Error t value   Pr(>|t|)
+(Intercept) -0.016008 0.00077887 -20.553 1.6197e-07
+log(u)       0.015044 0.00034611  43.465 8.9084e-10
+             Estimate Std. Error t value   Pr(>|t|)
+(Intercept) -0.015483 0.00050102 -30.903 9.5910e-09
+log(u)       0.014935 0.00021999  67.889 3.9547e-11
+             Estimate Std. Error t value   Pr(>|t|)
+(Intercept) -0.016850 0.00075120 -22.431 8.8554e-08
+log(u)       0.015569 0.00033659  46.256 5.7704e-10
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.160   0.017   0.168 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/offsets.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/offsets.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/offsets.R	(revision 2476)
@@ -0,0 +1,27 @@
+## tests of offsets, and prediction from them.
+
+load("anorexia.rda") # copied from package MASS
+
+## via formula
+fit1 <- lm(Postwt ~ Prewt + Treat + offset(Prewt), data = anorexia)
+summary(fit1)
+pred <- fitted(fit1)
+stopifnot(all.equal(predict(fit1, anorexia), pred))
+
+## via argument
+fit2 <- lm(Postwt ~ Prewt + Treat, data = anorexia, offset=Prewt)
+summary(fit2)
+stopifnot(all.equal(predict(fit2, anorexia), pred))
+
+## now spili into two parts
+anorexia$o1 <- 0.9*anorexia$Prewt
+anorexia$o2 <- 0.1*anorexia$Prewt
+fit3 <- lm(Postwt ~ Prewt + Treat + offset(o1) + offset(o2), data = anorexia)
+summary(fit3)
+stopifnot(all.equal(predict(fit3, anorexia), pred))
+
+fit4 <- lm(Postwt ~ Prewt + Treat + offset(o1), data = anorexia, offset = o2)
+summary(fit4)
+stopifnot(all.equal(predict(fit4, anorexia), pred))
+
+## using more than one offset failed in R 2.8.1
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/anorexia.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/anorexia.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/cmdscale.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/cmdscale.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/cmdscale.R	(revision 2476)
@@ -0,0 +1,10 @@
+## regression tests on cmdscale from R 2.13.0
+
+cmdsE <- cmdscale(eurodist, k = 20, eig = TRUE, x.ret = TRUE)
+utils::str(cmdsE)
+cmdsE2 <- cmdscale(eurodist, k = 20, add = TRUE, eig = TRUE, x.ret = TRUE)
+utils::str(cmdsE2)
+stopifnot(identical(rownames(cmdsE2$points), attr(eurodist, "Labels")))
+
+## the exact answers diff by platform, since eigenvalue calculations are
+## involved
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/glm.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/glm.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/glm.R	(revision 2476)
@@ -0,0 +1,7 @@
+## Example in which the fit for the null deviance fails to converge:
+# https://stat.ethz.ch/pipermail/r-help/2012-May/313161.html
+Y <- c(rep(0,35),1,2,0,6,8,16,43)
+beta <- 42:1
+cst <- lchoose(42, beta)
+tau <- (beta^2)/2
+fit <- glm(formula = Y ~ offset(cst) + beta + tau, family = poisson)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ks-test.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ks-test.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ks-test.Rout.save	(revision 2476)
@@ -0,0 +1,117 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ## some examples of the KS test
+> 
+> ## unrealistic one of PR#14561
+> ds1 <- c(1.7,2,3,3,4,4,5,5,6,6)
+> ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216)
+
+	One-sample Kolmogorov-Smirnov test
+
+data:  ds1
+D = 0.274, p-value = 0.4407
+alternative hypothesis: two-sided
+
+Warning message:
+In ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216) :
+  ties should not be present for the Kolmogorov-Smirnov test
+> # how on earth can sigma = 1.55216 be known?
+> 
+> # R >= 2.14.0 allows the equally invalid
+> ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216, exact = TRUE)
+
+	One-sample Kolmogorov-Smirnov test
+
+data:  ds1
+D = 0.274, p-value = 0.3715
+alternative hypothesis: two-sided
+
+Warning message:
+In ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216, exact = TRUE) :
+  ties should not be present for the Kolmogorov-Smirnov test
+> 
+> ## Try out the effects of rounding
+> set.seed(123)
+> ds2 <- rnorm(1000)
+> ks.test(ds2, "pnorm") # exact = FALSE is default for n = 1000
+
+	One-sample Kolmogorov-Smirnov test
+
+data:  ds2
+D = 0.019416, p-value = 0.8452
+alternative hypothesis: two-sided
+
+> ks.test(ds2, "pnorm", exact = TRUE)
+
+	One-sample Kolmogorov-Smirnov test
+
+data:  ds2
+D = 0.019416, p-value = 0.8379
+alternative hypothesis: two-sided
+
+> ## next two are still close
+> ks.test(round(ds2, 2), "pnorm")
+
+	One-sample Kolmogorov-Smirnov test
+
+data:  round(ds2, 2)
+D = 0.019169, p-value = 0.856
+alternative hypothesis: two-sided
+
+Warning message:
+In ks.test(round(ds2, 2), "pnorm") :
+  ties should not be present for the Kolmogorov-Smirnov test
+> ks.test(round(ds2, 2), "pnorm", exact = TRUE)
+
+	One-sample Kolmogorov-Smirnov test
+
+data:  round(ds2, 2)
+D = 0.019169, p-value = 0.8489
+alternative hypothesis: two-sided
+
+Warning message:
+In ks.test(round(ds2, 2), "pnorm", exact = TRUE) :
+  ties should not be present for the Kolmogorov-Smirnov test
+> # now D has doubled, but p-values remain similar (if very different from ds2)
+> ks.test(round(ds2, 1), "pnorm")
+
+	One-sample Kolmogorov-Smirnov test
+
+data:  round(ds2, 1)
+D = 0.03674, p-value = 0.1344
+alternative hypothesis: two-sided
+
+Warning message:
+In ks.test(round(ds2, 1), "pnorm") :
+  ties should not be present for the Kolmogorov-Smirnov test
+> ks.test(round(ds2, 1), "pnorm", exact = TRUE)
+
+	One-sample Kolmogorov-Smirnov test
+
+data:  round(ds2, 1)
+D = 0.03674, p-value = 0.1311
+alternative hypothesis: two-sided
+
+Warning message:
+In ks.test(round(ds2, 1), "pnorm", exact = TRUE) :
+  ties should not be present for the Kolmogorov-Smirnov test
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.142   0.019   0.148 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/hills.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/hills.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/nls.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/nls.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/nls.Rout.save	(revision 2476)
@@ -0,0 +1,706 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> #  File src/library/stats/tests/nls.R
+> #  Part of the R package, https://www.R-project.org
+> #
+> #  This program is free software; you can redistribute it and/or modify
+> #  it under the terms of the GNU General Public License as published by
+> #  the Free Software Foundation; either version 2 of the License, or
+> #  (at your option) any later version.
+> #
+> #  This program is distributed in the hope that it will be useful,
+> #  but WITHOUT ANY WARRANTY; without even the implied warranty of
+> #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+> #  GNU General Public License for more details.
+> #
+> #  A copy of the GNU General Public License is available at
+> #  https://www.R-project.org/Licenses/
+> 
+> ## tests of nls, especially of weighted fits
+> 
+> library(stats)
+> options(digits = 5) # to avoid trivial printed differences
+> options(useFancyQuotes = FALSE) # avoid fancy quotes in o/p
+> options(show.nls.convergence = FALSE) # avoid non-diffable output
+> options(warn = 1)
+> 
+> have_MASS <- requireNamespace('MASS', quietly = TRUE)
+> 
+> pdf("nls-test.pdf")
+> 
+> ## utility for comparing nls() results:  [TODO: use more often below]
+> .n <- function(r) r[names(r) != "call"]
+> 
+> ## selfStart.default() w/ no parameters:
+> logist <- deriv( ~Asym/(1+exp(-(x-xmid)/scal)), c("Asym", "xmid", "scal"),
++ 		function(x, Asym, xmid, scal){} )
+> logistInit <- function(mCall, LHS, data) {
++     xy <- sortedXyData(mCall[["x"]], LHS, data)
++     if(nrow(xy) < 3) stop("Too few distinct input values to fit a logistic")
++     Asym <- max(abs(xy[,"y"]))
++     if (Asym != max(xy[,"y"])) Asym <- -Asym  # negative asymptote
++     xmid <- NLSstClosestX(xy, 0.5 * Asym)
++     scal <- NLSstClosestX(xy, 0.75 * Asym) - xmid
++     setNames(c(Asym, xmid, scal),
++ 	     mCall[c("Asym", "xmid", "scal")])
++ }
+> logist <- selfStart(logist, initial = logistInit) ##-> Error in R 1.5.0
+> str(logist)
+function (x, Asym, xmid, scal)  
+ - attr(*, "initial")=function (mCall, LHS, data)  
+ - attr(*, "class")= chr "selfStart"
+> 
+> ## lower and upper in algorithm="port"
+> set.seed(123)
+> x <- runif(200)
+> a <- b <- 1; c <- -0.1
+> y <- a+b*x+c*x^2+rnorm(200, sd=0.05)
+> plot(x,y)
+> curve(a+b*x+c*x^2, add = TRUE)
+> nls(y ~ a+b*x+c*I(x^2), start = c(a=1, b=1, c=0.1), algorithm = "port")
+Nonlinear regression model
+  model: y ~ a + b * x + c * I(x^2)
+   data: parent.frame()
+      a       b       c 
+ 1.0058  0.9824 -0.0897 
+ residual sum-of-squares: 0.46
+
+Algorithm "port", convergence message: relative convergence (4)
+> (fm <- nls(y ~ a+b*x+c*I(x^2), start = c(a=1, b=1, c=0.1),
++            algorithm = "port", lower = c(0, 0, 0)))
+Nonlinear regression model
+  model: y ~ a + b * x + c * I(x^2)
+   data: parent.frame()
+   a    b    c 
+1.02 0.89 0.00 
+ residual sum-of-squares: 0.468
+
+Algorithm "port", convergence message: both X-convergence and relative convergence (5)
+> if(have_MASS) print(confint(fm))
+Waiting for profiling to be done...
+     2.5%    97.5%
+a 1.00875 1.037847
+b 0.84138 0.914645
+c      NA 0.042807
+> 
+> ## weighted nls fit: unsupported < 2.3.0
+> set.seed(123)
+> y <- x <- 1:10
+> yeps <- y + rnorm(length(y), sd = 0.01)
+> wts <- rep(c(1, 2), length = 10); wts[5] <- 0
+> fit0 <- lm(yeps ~ x, weights = wts)
+> summary(fit0, cor = TRUE)
+
+Call:
+lm(formula = yeps ~ x, weights = wts)
+
+Weighted Residuals:
+     Min       1Q   Median       3Q      Max 
+-0.01562 -0.00723 -0.00158  0.00403  0.02413 
+
+Coefficients:
+            Estimate Std. Error t value Pr(>|t|)    
+(Intercept)  0.00517    0.00764    0.68     0.52    
+x            0.99915    0.00119  841.38   <2e-16 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 0.0132 on 7 degrees of freedom
+Multiple R-squared:     1,	Adjusted R-squared:     1 
+F-statistic: 7.08e+05 on 1 and 7 DF,  p-value: <2e-16
+
+Correlation of Coefficients:
+  (Intercept)
+x -0.89      
+
+> cf0 <- coef(summary(fit0))[, 1:2]
+> fit <- nls(yeps ~ a + b*x, start = list(a = 0.12345, b = 0.54321),
++            weights = wts, trace = TRUE)
+112.14 :  0.12345 0.54321
+0.0012128 :  0.0051705 0.9991529
+> summary(fit, cor = TRUE)
+
+Formula: yeps ~ a + b * x
+
+Parameters:
+  Estimate Std. Error t value Pr(>|t|)    
+a  0.00517    0.00764    0.68     0.52    
+b  0.99915    0.00119  841.37   <2e-16 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 0.0132 on 7 degrees of freedom
+
+Correlation of Parameter Estimates:
+  a    
+b -0.89
+
+> stopifnot(all.equal(residuals(fit), residuals(fit0), tolerance = 1e-5,
++                     check.attributes = FALSE))
+> stopifnot(df.residual(fit) == df.residual(fit0))
+> cf1 <- coef(summary(fit))[, 1:2]
+> fit2 <- nls(yeps ~ a + b*x, start = list(a = 0.12345, b = 0.54321),
++             weights = wts, trace = TRUE, algorithm = "port")
+  0:     56.070572: 0.123450 0.543210
+  1:     6.3964587:  1.34546 0.700840
+  2: 0.00060639084: 0.00517053 0.999153
+  3: 0.00060639084: 0.00517051 0.999153
+> summary(fit2, cor = TRUE)
+
+Formula: yeps ~ a + b * x
+
+Parameters:
+  Estimate Std. Error t value Pr(>|t|)    
+a  0.00517    0.00764    0.68     0.52    
+b  0.99915    0.00119  841.38   <2e-16 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 0.0132 on 7 degrees of freedom
+
+Correlation of Parameter Estimates:
+  a    
+b -0.89
+
+Algorithm "port", convergence message: both X-convergence and relative convergence (5)
+
+> cf2 <- coef(summary(fit2))[, 1:2]
+> rownames(cf0) <- c("a", "b")
+> # expect relative errors ca 2e-08
+> stopifnot(all.equal(cf1, cf0, tolerance = 1e-6),
++           all.equal(cf1, cf0, tolerance = 1e-6))
+> stopifnot(all.equal(residuals(fit2), residuals(fit0), tolerance = 1e5,
++                     check.attributes = FALSE))
+> 
+> 
+> DNase1 <- subset(DNase, Run == 1)
+> DNase1$wts <- rep(8:1, each = 2)
+> fm1 <- nls(density ~ SSlogis(log(conc), Asym, xmid, scal),
++            data = DNase1, weights = wts)
+> summary(fm1)
+
+Formula: density ~ SSlogis(log(conc), Asym, xmid, scal)
+
+Parameters:
+     Estimate Std. Error t value Pr(>|t|)    
+Asym   2.3350     0.0966    24.2  3.5e-12 ***
+xmid   1.4731     0.0947    15.6  8.8e-10 ***
+scal   1.0385     0.0304    34.1  4.2e-14 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 0.0355 on 13 degrees of freedom
+
+> 
+> ## directly
+> fm2 <- nls(density ~ Asym/(1 + exp((xmid - log(conc))/scal)),
++            data = DNase1, weights = wts,
++            start = list(Asym = 3, xmid = 0, scal = 1))
+> summary(fm2)
+
+Formula: density ~ Asym/(1 + exp((xmid - log(conc))/scal))
+
+Parameters:
+     Estimate Std. Error t value Pr(>|t|)    
+Asym   2.3350     0.0966    24.2  3.5e-12 ***
+xmid   1.4731     0.0947    15.6  8.8e-10 ***
+scal   1.0385     0.0304    34.1  4.2e-14 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 0.0355 on 13 degrees of freedom
+
+> stopifnot(all.equal(coef(summary(fm2)), coef(summary(fm1)), tolerance = 1e-6))
+> stopifnot(all.equal(residuals(fm2), residuals(fm1), tolerance = 1e-5))
+> stopifnot(all.equal(fitted(fm2), fitted(fm1), tolerance = 1e-6))
+> fm2a <- nls(density ~ Asym/(1 + exp((xmid - log(conc)))),
++             data = DNase1, weights = wts,
++             start = list(Asym = 3, xmid = 0))
+> anova(fm2a, fm2)
+Analysis of Variance Table
+
+Model 1: density ~ Asym/(1 + exp((xmid - log(conc))))
+Model 2: density ~ Asym/(1 + exp((xmid - log(conc))/scal))
+  Res.Df Res.Sum Sq Df  Sum Sq F value Pr(>F)
+1     14     0.0186                          
+2     13     0.0164  1 0.00212    1.68   0.22
+> 
+> ## and without using weights
+> fm3 <- nls(~ sqrt(wts) * (density - Asym/(1 + exp((xmid - log(conc))/scal))),
++            data = DNase1, start = list(Asym = 3, xmid = 0, scal = 1))
+> summary(fm3)
+
+Formula: 0 ~ sqrt(wts) * (density - Asym/(1 + exp((xmid - log(conc))/scal)))
+
+Parameters:
+     Estimate Std. Error t value Pr(>|t|)    
+Asym   2.3350     0.0966    24.2  3.5e-12 ***
+xmid   1.4731     0.0947    15.6  8.8e-10 ***
+scal   1.0385     0.0304    34.1  4.2e-14 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 0.0355 on 13 degrees of freedom
+
+> stopifnot(all.equal(coef(summary(fm3)), coef(summary(fm1)), tolerance = 1e-6))
+> ft <- with(DNase1, density - fitted(fm3)/sqrt(wts))
+> stopifnot(all.equal(ft, fitted(fm1), tolerance = 1e-6))
+> # sign of residuals is reversed
+> r <- with(DNase1, -residuals(fm3)/sqrt(wts))
+> all.equal(r, residuals(fm1), tolerance = 1e-5)
+[1] TRUE
+> fm3a <- nls(~ sqrt(wts) * (density - Asym/(1 + exp((xmid - log(conc))))),
++             data = DNase1, start = list(Asym = 3, xmid = 0))
+> anova(fm3a, fm3)
+Analysis of Variance Table
+
+Model 1: 0 ~ sqrt(wts) * (density - Asym/(1 + exp((xmid - log(conc)))))
+Model 2: 0 ~ sqrt(wts) * (density - Asym/(1 + exp((xmid - log(conc))/scal)))
+  Res.Df Res.Sum Sq Df  Sum Sq F value Pr(>F)
+1     14     0.0186                          
+2     13     0.0164  1 0.00212    1.68   0.22
+> 
+> ## using conditional linearity
+> fm4 <- nls(density ~ 1/(1 + exp((xmid - log(conc))/scal)),
++            data = DNase1, weights = wts,
++            start = list(xmid = 0, scal = 1), algorithm = "plinear")
+> summary(fm4)
+
+Formula: density ~ 1/(1 + exp((xmid - log(conc))/scal))
+
+Parameters:
+     Estimate Std. Error t value Pr(>|t|)    
+xmid   1.4731     0.0947    15.6  8.8e-10 ***
+scal   1.0385     0.0304    34.1  4.2e-14 ***
+.lin   2.3350     0.0966    24.2  3.5e-12 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 0.0355 on 13 degrees of freedom
+
+> cf <- coef(summary(fm4))[c(3,1,2), ]
+> rownames(cf)[2] <- "Asym"
+> stopifnot(all.equal(cf, coef(summary(fm1)), tolerance = 1e-6,
++                     check.attributes = FALSE))
+> stopifnot(all.equal(residuals(fm4), residuals(fm1), tolerance = 1e-5))
+> stopifnot(all.equal(fitted(fm4), fitted(fm1), tolerance = 1e-6))
+> fm4a <- nls(density ~ 1/(1 + exp((xmid - log(conc)))),
++             data = DNase1, weights = wts,
++             start = list(xmid = 0), algorithm = "plinear")
+> anova(fm4a, fm4)
+Analysis of Variance Table
+
+Model 1: density ~ 1/(1 + exp((xmid - log(conc))))
+Model 2: density ~ 1/(1 + exp((xmid - log(conc))/scal))
+  Res.Df Res.Sum Sq Df  Sum Sq F value Pr(>F)
+1     14     0.0186                          
+2     13     0.0164  1 0.00212    1.68   0.22
+> 
+> ## using 'port'
+> fm5 <- nls(density ~ Asym/(1 + exp((xmid - log(conc))/scal)),
++            data = DNase1, weights = wts,
++            start = list(Asym = 3, xmid = 0, scal = 1),
++            algorithm = "port")
+> summary(fm5)
+
+Formula: density ~ Asym/(1 + exp((xmid - log(conc))/scal))
+
+Parameters:
+     Estimate Std. Error t value Pr(>|t|)    
+Asym   2.3350     0.0966    24.2  3.5e-12 ***
+xmid   1.4731     0.0947    15.6  8.8e-10 ***
+scal   1.0385     0.0304    34.1  4.2e-14 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 0.0355 on 13 degrees of freedom
+
+Algorithm "port", convergence message: relative convergence (4)
+
+> stopifnot(all.equal(coef(summary(fm5)), coef(summary(fm1)), tolerance = 1e-6))
+> stopifnot(all.equal(residuals(fm5), residuals(fm1), tolerance = 1e-5))
+> stopifnot(all.equal(fitted(fm5), fitted(fm1), tolerance = 1e-6))
+> 
+> ## check profiling
+> pfm1 <- profile(fm1)
+> pfm3 <- profile(fm3)
+> for(m in names(pfm1))
++     stopifnot(all.equal(pfm1[[m]], pfm3[[m]], tolerance = 1e-5))
+> pfm5 <- profile(fm5)
+> for(m in names(pfm1))
++     stopifnot(all.equal(pfm1[[m]], pfm5[[m]], tolerance = 1e-5))
+> if(have_MASS) {
++     print(c1 <- confint(fm1))
++     print(c4 <- confint(fm4, 1:2))
++     stopifnot(all.equal(c1[2:3, ], c4, tolerance = 1e-3))
++ }
+Waiting for profiling to be done...
+        2.5%  97.5%
+Asym 2.14936 2.5724
+xmid 1.28535 1.6966
+scal 0.97526 1.1068
+Waiting for profiling to be done...
+       2.5%  97.5%
+xmid 1.2866 1.6949
+scal 0.9757 1.1063
+> 
+> ## some low-dimensional examples
+> npts <- 1000
+> set.seed(1001)
+> x <- runif(npts)
+> b <- 0.7
+> y <- x^b+rnorm(npts, sd=0.05)
+> a <- 0.5
+> y2 <- a*x^b+rnorm(npts, sd=0.05)
+> c <- 1.0
+> y3 <- a*(x+c)^b+rnorm(npts, sd=0.05)
+> d <- 0.5
+> y4 <- a*(x^d+c)^b+rnorm(npts, sd=0.05)
+> m1 <- c(y ~ x^b, y2 ~ a*x^b, y3 ~ a*(x+exp(logc))^b)
+> s1 <- list(c(b=1), c(a=1,b=1), c(a=1,b=1,logc=0))
+> for(p in 1:3) {
++     fm <- nls(m1[[p]], start = s1[[p]])
++     print(fm)
++     if(have_MASS) print(confint(fm))
++     fm <- nls(m1[[p]], start = s1[[p]], algorithm = "port")
++     print(fm)
++     if(have_MASS) print(confint(fm))
++ }
+Nonlinear regression model
+  model: y ~ x^b
+   data: parent.frame()
+    b 
+0.695 
+ residual sum-of-squares: 2.39
+Waiting for profiling to be done...
+   2.5%   97.5% 
+0.68704 0.70281 
+Nonlinear regression model
+  model: y ~ x^b
+   data: parent.frame()
+    b 
+0.695 
+ residual sum-of-squares: 2.39
+
+Algorithm "port", convergence message: relative convergence (4)
+Waiting for profiling to be done...
+   2.5%   97.5% 
+0.68704 0.70281 
+Nonlinear regression model
+  model: y2 ~ a * x^b
+   data: parent.frame()
+    a     b 
+0.502 0.724 
+ residual sum-of-squares: 2.51
+Waiting for profiling to be done...
+     2.5%   97.5%
+a 0.49494 0.50893
+b 0.70019 0.74767
+Nonlinear regression model
+  model: y2 ~ a * x^b
+   data: parent.frame()
+    a     b 
+0.502 0.724 
+ residual sum-of-squares: 2.51
+
+Algorithm "port", convergence message: relative convergence (4)
+Waiting for profiling to be done...
+     2.5%   97.5%
+a 0.49494 0.50893
+b 0.70019 0.74767
+Nonlinear regression model
+  model: y3 ~ a * (x + exp(logc))^b
+   data: parent.frame()
+     a      b   logc 
+ 0.558  0.603 -0.176 
+ residual sum-of-squares: 2.44
+Waiting for profiling to be done...
+         2.5%   97.5%
+a     0.35006 0.66057
+b     0.45107 0.91473
+logc -0.64627 0.40946
+Nonlinear regression model
+  model: y3 ~ a * (x + exp(logc))^b
+   data: parent.frame()
+     a      b   logc 
+ 0.558  0.603 -0.176 
+ residual sum-of-squares: 2.44
+
+Algorithm "port", convergence message: relative convergence (4)
+Waiting for profiling to be done...
+         2.5%   97.5%
+a     0.35006 0.66057
+b     0.45107 0.91473
+logc -0.64627 0.40946
+> 
+> if(have_MASS) {
++     fm <- nls(y2~x^b, start=c(b=1), algorithm="plinear")
++     print(confint(profile(fm)))
++     fm <- nls(y3 ~ (x+exp(logc))^b, start=c(b=1, logc=0), algorithm="plinear")
++     print(confint(profile(fm)))
++ }
+   2.5%   97.5% 
+0.70019 0.74767 
+         2.5%   97.5%
+b     0.45105 0.91471
+logc -0.64625 0.40933
+> 
+> 
+> ## more profiling with bounds
+> op <- options(digits=3)
+> npts <- 10
+> set.seed(1001)
+> a <- 2
+> b <- 0.5
+> x <- runif(npts)
+> y <- a*x/(1+a*b*x) + rnorm(npts, sd=0.2)
+> gfun <- function(a,b,x) {
++     if(a < 0 || b < 0) stop("bounds violated")
++     a*x/(1+a*b*x)
++ }
+> m1 <- nls(y ~ gfun(a,b,x), algorithm = "port",
++           lower = c(0,0), start = c(a=1, b=1))
+> (pr1 <- profile(m1))
+$a
+      tau par.vals.a par.vals.b
+1  -3.869      0.706      0.000
+2  -3.114      0.802      0.000
+3  -0.863      1.124      0.000
+4   0.000      1.538      0.263
+5   0.590      1.952      0.446
+6   1.070      2.423      0.592
+7   1.534      3.082      0.737
+8   1.969      4.034      0.878
+9   2.376      5.502      1.014
+10  2.751      7.929      1.144
+11  3.090     12.263      1.264
+12  3.375     20.845      1.373
+
+$b
+     tau par.vals.a par.vals.b
+1 -0.673     1.2087     0.0272
+2  0.000     1.5381     0.2633
+3  0.707     2.0026     0.4994
+4  1.365     2.6295     0.7236
+5  1.994     3.5762     0.9522
+6  2.611     5.1820     1.1962
+7  3.225     8.2162     1.4614
+8  3.820    17.3946     1.7512
+
+attr(,"original.fit")
+Nonlinear regression model
+  model: y ~ gfun(a, b, x)
+   data: parent.frame()
+    a     b 
+1.538 0.263 
+ residual sum-of-squares: 0.389
+
+Algorithm "port", convergence message: relative convergence (4)
+attr(,"summary")
+
+Formula: y ~ gfun(a, b, x)
+
+Parameters:
+  Estimate Std. Error t value Pr(>|t|)  
+a    1.538      0.617    2.49    0.037 *
+b    0.263      0.352    0.75    0.476  
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 0.221 on 8 degrees of freedom
+
+Algorithm "port", convergence message: relative convergence (4)
+
+attr(,"class")
+[1] "profile.nls" "profile"    
+> if(have_MASS) print(confint(pr1))
+  2.5% 97.5%
+a 0.96  5.20
+b   NA  1.07
+> 
+> gfun <- function(a,b,x) {
++     if(a < 0 || b < 0 || a > 1.5 || b > 1) stop("bounds violated")
++     a*x/(1+a*b*x)
++ }
+> m2 <- nls(y ~ gfun(a,b,x), algorithm = "port",
++           lower = c(0, 0), upper=c(1.5, 1), start = c(a=1, b=1))
+> profile(m2)
+$a
+     tau par.vals.a par.vals.b
+1 -3.681      0.729      0.000
+2 -2.945      0.823      0.000
+3 -0.977      1.099      0.000
+4  0.000      1.500      0.243
+
+$b
+     tau par.vals.a par.vals.b
+1 -0.733    1.18200    0.00395
+2  0.000    1.50000    0.24263
+3  1.645    1.50000    0.48132
+4  2.154    1.50000    0.57869
+5  2.727    1.50000    0.70706
+6  3.288    1.50000    0.85748
+
+attr(,"original.fit")
+Nonlinear regression model
+  model: y ~ gfun(a, b, x)
+   data: parent.frame()
+    a     b 
+1.500 0.243 
+ residual sum-of-squares: 0.39
+
+Algorithm "port", convergence message: relative convergence (4)
+attr(,"summary")
+
+Formula: y ~ gfun(a, b, x)
+
+Parameters:
+  Estimate Std. Error t value Pr(>|t|)  
+a    1.500      0.598    2.51    0.036 *
+b    0.243      0.356    0.68    0.514  
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 0.221 on 8 degrees of freedom
+
+Algorithm "port", convergence message: relative convergence (4)
+
+attr(,"class")
+[1] "profile.nls" "profile"    
+> if(have_MASS) print(confint(m2))
+Waiting for profiling to be done...
+   2.5% 97.5%
+a 0.907    NA
+b    NA 0.611
+> options(op)
+> 
+> ## scoping problems
+> test <- function(trace=TRUE)
++ {
++     x <- seq(0,5,len=20)
++     n <- 1
++     y <- 2*x^2 + n + rnorm(x)
++     xy <- data.frame(x=x,y=y)
++     myf <- function(x,a,b,c) a*x^b+c
++     list(with.start=
++          nls(y ~ myf(x,a,b,n), data=xy, start=c(a=1,b=1), trace=trace),
++          no.start= ## cheap auto-init to 1
++ 	 suppressWarnings(
++ 	     nls(y ~ myf(x,A,B,n), data=xy)))
++ }
+> t1 <- test(); t1$with.start
+8291.9 :  1 1
+726.02 :  0.80544 2.42971
+552.85 :  1.290 2.129
+70.431 :  1.9565 1.9670
+26.555 :  1.9788 2.0064
+26.503 :  1.9798 2.0046
+26.503 :  1.9799 2.0046
+Nonlinear regression model
+  model: y ~ myf(x, a, b, n)
+   data: xy
+   a    b 
+1.98 2.00 
+ residual sum-of-squares: 26.5
+> ##__with.start:
+> ## failed to find n in 2.2.x
+> ## found wrong n in 2.3.x
+> ## finally worked in 2.4.0
+> ##__no.start: failed in 3.0.2
+> stopifnot(all.equal(.n(t1[[1]]), .n(t1[[2]])))
+> rm(a,b)
+> t2 <- test(FALSE)
+> stopifnot(all.equal(lapply(t1, .n),
++ 		    lapply(t2, .n), tolerance = 0.16))# different random error
+> 
+> 
+> ## list 'start'
+> set.seed(101)# (remain independent of above)
+> getExpmat <- function(theta, t)
++ {
++         conc <- matrix(nrow = length(t), ncol = length(theta))
++         for(i in 1:length(theta)) conc[, i] <- exp(-theta[i] * t)
++         conc
++ }
+> 
+> expsum <- as.vector(getExpmat(c(.05,.005), 1:100) %*% c(1,1))
+> expsumNoisy <- expsum + max(expsum) *.001 * rnorm(100)
+> expsum.df <-data.frame(expsumNoisy)
+> 
+> ## estimate decay rates, amplitudes with default Gauss-Newton
+> summary (nls(expsumNoisy ~ getExpmat(k, 1:100) %*% sp, expsum.df,
++              start = list(k = c(.6,.02), sp = c(1,2))))
+
+Formula: expsumNoisy ~ getExpmat(k, 1:100) %*% sp
+
+Parameters:
+    Estimate Std. Error t value Pr(>|t|)    
+k1  5.00e-02   2.73e-04     183   <2e-16 ***
+k2  4.97e-03   4.77e-05     104   <2e-16 ***
+sp1 1.00e+00   3.96e-03     253   <2e-16 ***
+sp2 9.98e-01   4.43e-03     225   <2e-16 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 0.00182 on 96 degrees of freedom
+
+> 
+> ## didn't work with port in 2.4.1
+> summary (nls(expsumNoisy ~ getExpmat(k, 1:100) %*% sp, expsum.df,
++              start = list(k = c(.6,.02), sp = c(1,2)),
++              algorithm = "port"))
+
+Formula: expsumNoisy ~ getExpmat(k, 1:100) %*% sp
+
+Parameters:
+    Estimate Std. Error t value Pr(>|t|)    
+k1  5.00e-02   2.73e-04     183   <2e-16 ***
+k2  4.97e-03   4.77e-05     104   <2e-16 ***
+sp1 1.00e+00   3.96e-03     253   <2e-16 ***
+sp2 9.98e-01   4.43e-03     225   <2e-16 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 0.00182 on 96 degrees of freedom
+
+Algorithm "port", convergence message: both X-convergence and relative convergence (5)
+
+> 
+> 
+> ## PR13540
+> 
+> x <- runif(200)
+> b0 <- c(rep(0,100),runif(100))
+> b1 <- 1
+> fac <- as.factor(rep(c(0,1), each = 100))
+> y <- b0 + b1*x + rnorm(200, sd=0.05)
+> # next failed in 2.8.1
+> fit <- nls(y~b0[fac] + b1*x, start = list(b0=c(1,1), b1=1),
++            algorithm ="port", upper = c(100, 100, 100))
+> # next did not "fail" in proposed fix:
+> fit <- nls(y~b0[fac] + b1*x, start = list(b0=c(1,1), b1=101),
++            algorithm ="port", upper = c(100, 100, 100),
++            control = list(warnOnly=TRUE))# warning ..
+Warning in nls(y ~ b0[fac] + b1 * x, start = list(b0 = c(1, 1), b1 = 101),  :
+  Convergence failure: initial par violates constraints
+> with(fit$convInfo, ## start par. violates constraints
++      stopifnot(isConv == FALSE, stopCode == 300))
+> 
+> proc.time()
+   user  system elapsed 
+  1.067   0.026   1.082 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/arimaML.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/arimaML.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/arimaML.R	(revision 2476)
@@ -0,0 +1,265 @@
+### PR#14682 : https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=14682
+##  ========
+## Subject:    getQ0() returns a non-positive covariance matrix
+## Date:       Tue, 20 Sep 2011 12:06:16 -0400
+## ReportedBy: raphaelrossignol@...
+
+## ...........
+
+## I tried to replace getQ0 in two ways. The first one is to compute first the
+## covariance matrix of (X_{t-1},...,X_{t-p},Z_t,...,Z_{t-q}) and this is achieved
+## through the method of difference equations
+## (eq. (3.3.8), (3.3.9), p.93 of Brockwell and Davis).
+## This way was apparently suggested by a referee to Gardner et al. paper (see
+## page 314 of their paper).
+
+Q0bis <- function(phi,theta, tol=.Machine$double.eps) {
+    ## Computes the initial covariance matrix for the state space representation
+    ## of Gardner et al.
+    p <- length(phi)
+    q <- length(theta)
+    r <- max(p,q+1)
+    ttheta <- c(1,theta,rep(0,r-q-1))
+
+    A1 <- matrix(0,r,p)
+    C <- (col(A1)+row(A1)-1)
+    B <- (C <= p) ## == (col(A1)+row(A1) <= p+1)
+    A1[B] <- phi[C[B]]
+
+    A2 <- matrix(0,r,q+1)
+    C <- (col(A2)+row(A2)-1)
+    B <- (C <= q+1)
+    A2[B] <- ttheta[C[B]]
+
+    A <- cbind(A1,A2)
+    if (p==0) {
+        S <- diag(q+1)
+    }
+    else {
+        ## Compute the autocovariance function of U, the AR part of X
+        r2 <- max(p+q, p+1)
+        tphi <- c(1,-phi)
+
+        C1 <- C2 <- matrix(0,r2,r2)
+        F <- row(C1)-col(C1)+1
+        E <- (1 <= F) & (F <= p+1)
+        C1[E] <- tphi[F[E]]
+
+        F <- col(C2)+row(C2)-1
+        E <- (F <= p+1) & col(C2) >= 2
+        C2[E] <- tphi[F[E]]
+
+        Gam <- C1 + C2
+        g <- matrix(0,r2,1)
+        g[1] <- 1
+        rU <- solve(Gam, g, tol=tol)
+        ##    ---------  --
+        SU <- toeplitz(rU[1:(p+q),1])
+        ## End of the difference equations method
+
+        ## Then, compute correlation matrix of X
+        A2 <- matrix(0,p,p+q)
+        C <- col(A2)-row(A2)+1
+        B <- (1 <= C) & (C <= q+1)
+        A2[B] <- ttheta[C[B]]
+        SX <- A2 %*% SU %*% t(A2)
+
+        ## Now, compute correlation matrix between X and Z
+        C1 <- matrix(0,q,q)
+        F <- row(C1)-col(C1)+1
+        E <- 1 <= F & F <= p+1
+        C1[E] <- tphi[F[E]]
+        g <- matrix(0,q,1)
+        if (q) {
+            g[1:q,1] <- ttheta[1:q]
+            rXZ <- forwardsolve(C1,g)
+        } else rXZ <- numeric()
+        SXZ <- matrix(0, p, q+1)
+        F <- col(SXZ)-row(SXZ)
+        E <- F >= 1
+        SXZ[E] <- rXZ[F[E]]
+        S <- rbind(cbind(  SX  ,   SXZ),
+                   cbind(t(SXZ), diag(q+1)))
+    }
+    A %*% S %*% t(A)
+    ## == 2 x 2 Block matrix product; A = [A1 | A2 ]
+    ## == A1 SX A1' + A1 SXZ A2' + (A1 SXZ A2')' + A2 A2'
+
+}## {Q0bis}
+
+## The second way is to resolve brutally the equation of Gardner et al. in the
+## form (12), page 314 of their paper.
+
+Q0ter <- function(phi,theta) {
+  p <- length(phi)
+  q <- length(theta)
+  r <- max(p,q+1)
+  T <- V <- matrix(0,r,r)
+  if (p) T[1:p,1] <- phi
+  if (r >= 2) T[1:(r-1),2:r] <- diag(r-1)
+  ttheta <- c(1,theta)
+  V[1:(q+1),1:(q+1)] <- ttheta %x% t(ttheta)
+  S <- diag(r*r) - T %x% T
+  Q0 <- solve(S, c(V))
+  matrix(Q0, ncol=r)
+}
+
+Q0.orig <- function(phi,theta) .Call(stats:::C_getQ0, phi, theta)
+
+Q0bisC <- function(phi,theta, tol=.Machine$double.eps)
+    .Call(stats:::C_getQ0bis, phi, theta, tol=tol)
+
+##' The k smallest eigenvalues of m
+EV.k <- function(m, k = 2) {
+    ev <- eigen(m, only.values=TRUE)$values
+    m <- length(ev)
+    ev[m:(m-k+1)]
+}
+
+chkQ0 <- function(phi,theta, tol=.Machine$double.eps^0.5,
+                  tolC=1e-15, strict=TRUE, doEigen=FALSE)
+{
+  Q0  <- Q0.orig(phi, theta)
+  Q0bis <- Q0bis(phi, theta)
+  Q0ter <- Q0ter(phi, theta)
+
+  eig <- if(doEigen) rbind("0" = EV.k(Q0), bis = EV.k(Q0bis), ter = EV.k(Q0ter))
+  ## else NULL
+
+  a.eq <- list(cRC = all.equal(Q0bis,Q0bisC(phi,theta), tol= tolC),
+               c12 = all.equal(Q0,   Q0bis, tol=tol),
+               c13 = all.equal(Q0,   Q0ter, tol=tol),
+               c23 = all.equal(Q0bis,Q0ter, tol=tol))
+  if(strict) do.call(stopifnot, a.eq)
+  invisible(list(Q0 = Q0, Q0bis = Q0bis, Q0ter = Q0ter,
+                 all.eq = a.eq, eigen = eig))
+}
+
+##' @title AR-phi corresponding to AR(1) + Seasonality(s)
+##' @param s: seasonality
+##' @param phi1, phis: phi[1], phi[s] .. defaults: close to non-stationarity
+mkPhi <- function(s, phi1 = 0.0001, phis = 0.99) {
+    stopifnot(length(s) > 0, s == as.integer(s), s >= 2,
+              length(phi1) == 1, is.numeric(phi1), length(phis) == 1)
+    c(phi1, rep(0, s-2), phis, -phi1*phis)
+}
+
+##--{end of function defs}-------------------------------------------------------
+
+## cases with p=0, q=0 :
+chkQ0(numeric(), numeric())
+chkQ0(   .5,     numeric())
+chkQ0(numeric(), .7)
+chkQ0(numeric(), c(.7, .2))
+
+chkQ <- function(s, theta) chkQ0(mkPhi(s=s), theta=theta, tol = 0, strict=FALSE)
+all.eq2num <- function(ae) as.numeric(sub(".* difference: ", '', ae))
+getN12 <- function(r) all.eq2num(r$all.eq$c12)
+ss <- setNames(,2:20)
+chk0 <- lapply(ss, chkQ, theta= numeric())
+chk1 <- lapply(ss, chkQ, theta= 0.75)
+chk2 <- lapply(ss, chkQ, theta= c(0.75, -0.5))
+chks <- list(q0 = chk0, q1 = chk1, q2 = chk2)
+## Quite platform dependent, in F19, 32 bit looks slightly better than 64:
+(re <- sapply(chks, function(C) sapply(C, getN12)))
+matplot(ss, re, type = "b", log="y", pch = paste(0:2))
+stopifnot(re[paste(2:7),] < 1e-7, # max(.) seen 9.626e-9
+          re < 0.9) # max(.) seen 0.395
+
+## The smallest few eigen values:
+round(t(sapply(lapply(chk1, `[[`, "Q0"), EV.k, k=3)), 3)
+ev3.0 <- lapply(chks, function(ck) t(sapply(lapply(ck, `[[`, "Q0"), EV.k, k=3)))
+lapply(ev3.0, round, digits=3) ## problem for q >= 1 (none for q=0)
+ev3.bis <- lapply(chks, function(ck) t(sapply(lapply(ck, `[[`, "Q0bis"), EV.k, k=3)))
+lapply(ev3.bis[-1], round, digits=3) ## all fine
+e1.bis <- sapply(ev3.bis, function(m) m[,1])
+min(e1.bis) # -7.1e-15 , -7.5e-15
+stopifnot(e1.bis > -1e-12)
+
+
+## Now Rossignol's example
+phi <- mkPhi(s = 12)
+theta <- 0.7
+true.cf <- c(ar1=phi[1], ma1=theta, sar1=phi[12])
+tt <- chkQ0(phi,theta, tol=0.50, doEigen=TRUE)
+tt$eigen
+
+out.0 <- makeARIMA(phi, theta, NULL)
+out.R <- makeARIMA(phi, theta, NULL, SSinit="Rossignol")
+
+set.seed(7)
+x <- arima.sim(1000,model=list(ar=phi,ma=theta))
+str(k0 <- KalmanLike(x, mod=out.0))
+str(kS <- KalmanLike(x, mod=out.R))
+stopifnot(sapply(kS, is.finite))
+
+ini.ph <- true.cf
+## Default  method = "CSS-ML" works fine
+fm1 <- arima(x, order= c(1,0,1), seasonal= list(period=12, order=c(1,0,0)),
+             include.mean=FALSE, init=ini.ph)
+stopifnot(all.equal(true.cf, coef(fm1), tol = 0.05))
+
+## Using  'ML'  seems "harder" :
+e1 <- try(
+arima(x, order= c(1,0,1), seasonal= list(period=12, order=c(1,0,0)),
+      include.mean=FALSE, init=ini.ph, method='ML')
+)
+## Error: NAs in 'phi'
+e2 <- try(
+arima(x, order= c(1,0,1), seasonal= list(period=12, order=c(1,0,0)),
+      include.mean=FALSE, init=ini.ph, method='ML', transform.pars=FALSE)
+)
+## Error in optim(init[mask], armafn, ..): initial value in 'vmmin' is not finite
+
+## MM: The new Q0 does *not* help here, really:
+e3 <- try(
+arima(x, order= c(1,0,1), seasonal= list(period=12, order=c(1,0,0)),
+      include.mean=FALSE, init=ini.ph, method='ML', SSinit = "Rossi")
+ )
+## actually fails still, but *not* transforming parameters works :
+fm2 <-
+arima(x, order= c(1,0,1), seasonal= list(period=12, order=c(1,0,0)),
+      include.mean=FALSE, init=ini.ph, method='ML', SSinit = "Rossi", transform.p=FALSE)
+
+stopifnot(all.equal(confint(fm1),
+                    confint(fm2), tol = 4e-4))
+
+###---------- PR#16278 --------------------------------------
+
+##  xreg  *and*  differentiation order d >= 1 :
+set.seed(0)
+n <- 5
+x <- cumsum(rnorm(n, sd=0.01))
+Vr <- var(diff(x))                 # 6.186e-5 : REML
+V. <- var(diff(x)) * (n-2) / (n-1) # 4.640e-5 : ML
+
+f00   <- arima0(x, c(0,1,0), method="ML", xreg=1:n)
+(fit1 <- arima (x, c(0,1,0), method="ML", xreg=1:n))
+stopifnot(all.equal(fit1$sigma2, V.), fit1$nobs == n-1,
+	  all.equal(fit1$loglik, 14.28, tol=4e-4),
+	  all.equal(f00$sigma2, fit1$sigma2),
+	  all.equal(f00$loglik, fit1$loglik))
+
+(fit2 <- arima (x, c(0,2,0), method="ML", xreg=(1:n)^2))
+stopifnot(all.equal(fit2$sigma2, 0.000109952342),
+          all.equal(fit2$loglik, 9.4163797), fit2$nobs == n-2)
+
+## "well"-fitting higher order model  {optim failed in R <= 3.0.1)
+n <- length(x. <- c(1:4,3:-2,2*(0:3),4:5,5:-4)/32)
+xr <- poly(x., 3)
+x. <- cumsum(cumsum(cumsum(x.))) + xr %*% 10^(0:2)
+(fit3 <- arima (x., c(0,3,0), method="ML", xreg = xr))
+stopifnot(fit3$ nobs == n-3,
+	  all.equal(fit3$ sigma2, 0.00859843, tol = 1e-6),
+	  all.equal(fit3$ loglik, 22.06043, tol = 1e-6),
+          all.equal(unname(coef(fit3)),
+                    c(0.70517, 9.9415, 100.106), tol = 1e-5))
+
+x.[5:6] <- NA
+(fit3N <- arima (x., c(0,3,0), method="ML", xreg = xr))
+stopifnot(fit3N$ nobs == n-3-2, # ==  #{obs} - d - #{NA}
+	  all.equal(fit3N$ sigma2, 0.009297345, tol = 1e-6),
+	  all.equal(fit3N$ loglik, 16.73918,    tol = 1e-6),
+	  all.equal(unname(coef(fit3N)),
+		    c(0.64904, 9.92660, 100.126), tol = 1e-5))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/simulate.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/simulate.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/simulate.R	(revision 2476)
@@ -0,0 +1,80 @@
+## tests of the simulate.lm method, added Feb 2009
+
+options(digits = 5)
+
+## cases should be named
+load("hills.rda") # copied from package MASS
+fit1 <- lm(time ~ dist, data = hills)
+set.seed(1)
+simulate(fit1, nsim = 3)
+
+## and weights should be taken into account
+fit2 <- lm(time ~ -1 + dist + climb, hills[-18, ], weight = 1/dist^2)
+coef(summary(fit2))
+set.seed(1)
+( ys <- simulate(fit2, nsim = 3) )
+for(i in seq_len(3))
+    print(coef(summary(update(fit2, ys[, i] ~ .))))
+
+## Poisson fit
+load("anorexia.rda") # copied from package MASS
+fit3 <- glm(Postwt ~ Prewt + Treat + offset(Prewt),
+            family = gaussian, data = anorexia)
+coef(summary(fit3))
+set.seed(1)
+simulate(fit3, nsim = 8)
+
+## two-column binomial fit
+ldose <- rep(0:5, 2)
+numdead <- c(1, 4, 9, 13, 18, 20, 0, 2, 6, 10, 12, 16)
+sex <- factor(rep(c("M", "F"), c(6, 6)))
+SF <- cbind(numdead, numalive = 20 - numdead)
+fit4 <- glm(SF ~ sex + ldose - 1, family = binomial)
+coef(summary(fit4))
+set.seed(1)
+( ys <- simulate(fit4, nsim = 3) )
+for(i in seq_len(3))
+    print(coef(summary(update(fit4, ys[, i] ~ .))))
+
+## same via proportions
+fit5 <- glm(numdead/20 ~ sex + ldose - 1, family = binomial,
+            weights = rep(20, 12))
+set.seed(1)
+( ys <- simulate(fit5, nsim = 3) )
+for(i in seq_len(3))
+    print(coef(summary(update(fit5, ys[, i] ~ .))))
+
+
+## factor binomial fit
+load("birthwt.rda") # copied from package MASS
+bwt <- with(birthwt, {
+    race <- factor(race, labels = c("white", "black", "other"))
+    table(ptl)
+    ptd <- factor(ptl > 0)
+    table(ftv)
+    ftv <- factor(ftv)
+    levels(ftv)[-(1:2)] <- "2+"
+    data.frame(low = factor(low), age, lwt, race,
+               smoke = (smoke > 0), ptd, ht = (ht > 0), ui = (ui > 0), ftv)
+})
+fit6 <- glm(low ~ ., family = binomial, data = bwt)
+coef(summary(fit6))
+set.seed(1)
+ys <- simulate(fit6, nsim = 3)
+ys[1:10, ]
+for(i in seq_len(3))
+    print(coef(summary(update(fit6, ys[, i] ~ .))))
+
+## This requires MASS::gamma.shape
+if(!require("MASS")) q()
+
+## gamma fit, from example(glm)
+clotting <- data.frame(u = c(5,10,15,20,30,40,60,80,100),
+                       lot1 = c(118,58,42,35,27,25,21,19,18))
+fit7 <- glm(lot1 ~ log(u), data = clotting, family = Gamma)
+coef(summary(fit7))
+set.seed(1)
+( ys <- simulate(fit7, nsim = 3) )
+for(i in seq_len(3))
+    print(coef(summary(update(fit7, ys[, i] ~ .))))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ts-tests.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ts-tests.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ts-tests.R	(revision 2476)
@@ -0,0 +1,149 @@
+#  File src/library/stats/tests/ts-tests.R
+#  Part of the R package, https://www.R-project.org
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  https://www.R-project.org/Licenses/
+
+## tests of time-series functionality
+
+.proctime00 <- proc.time()
+library(stats)
+
+pdf("ts-test.pdf")
+
+### ar
+ar(lh)
+ar(lh, method = "burg")
+ar(lh, method = "ols")
+ar(lh, FALSE, 4) # fit ar(4)
+ar.ols(lh)
+ar.ols(lh, FALSE, 4) # fit ar(4) by OLS
+
+ar(LakeHuron)
+ar(LakeHuron, method = "burg")
+ar(LakeHuron, method = "ols")
+ar(LakeHuron, method = "mle")
+
+ar(sunspot.year, method = "yw")
+ar(sunspot.year, method = "burg")
+ar(sunspot.year, method = "ols")
+ar(sunspot.year, method = "mle")
+
+
+### tests using presidents, contains missing values
+acf(presidents, na.action = na.pass)
+pacf(presidents, na.action = na.pass)
+## graphs in example(acf) suggest order 1 or 3
+(fit1 <- arima(presidents, c(1, 0, 0)))
+tsdiag(fit1)
+(fit3 <- arima(presidents, c(3, 0, 0)))  # smaller AIC
+tsdiag(fit3)
+
+## Short example for bug PR#15832:
+e <- rep(c(1.48e-6, 1.49e-6, 1.5e-6, 1.51e-6), c(2,3,9,7))
+stopifnot(abs(acf(e, plot=FALSE)$acf) <= 1)
+## Failed for R <= 3.2.0
+
+
+
+### tests of arima:
+arima(USAccDeaths, order = c(0,1,1), seasonal = list(order=c(0,1,1)))
+arima(USAccDeaths, order = c(0,1,1), seasonal = list(order=c(0,1,1)),
+      method = "CSS") # drops first 13 observations.
+
+## test fitting with NAs
+tmp <- LakeHuron
+trend <- time(LakeHuron) - 1920
+tmp[c(17, 45, 96)] <- NA
+arima(tmp, order=c(2,0,0), xreg=trend)
+arima(tmp, order=c(1,1,1), xreg=trend)
+trend[c(20, 67)] <- NA
+arima(tmp, order=c(2,0,0), xreg=trend)
+
+## tests of prediction
+predict(arima(lh, order=c(1,0,1)), n.ahead=5)
+predict(arima(lh, order=c(1,1,0)), n.ahead=5)
+predict(arima(lh, order=c(0,2,1)), n.ahead=5)
+
+## test of init
+arima(lh, order = c(1,0,1), init = c(0.5, 0.5, NA))
+arima(lh, order = c(1,0,1), init = c(0.5, 2, NA))
+try(arima(lh, order = c(1,0,1), init = c(2, NA, NA)))
+
+## test of fixed
+arima(lh, order = c(1,0,1), fixed = c(0.5, NA, NA), trans = FALSE)
+trend <- time(LakeHuron) - 1920
+arima(LakeHuron, order=c(2,0,0), xreg=trend)
+arima(x = LakeHuron, order = c(2, 0, 0), xreg = trend,
+      fixed = c(NA, NA, 580, -0.02))
+arima(x = LakeHuron, order = c(2, 0, 0), xreg = trend,
+      fixed = c(NA, NA, 580, 0))
+
+
+### model selection from WWWusage
+aics <- matrix(, 6, 6, dimnames=list(p=0:5, q=0:5))
+for(q in 1:5) aics[1, 1+q] <- arima(WWWusage, c(0,1,q),
+    optim.control = list(maxit = 500))$aic
+for(p in 1:5)
+   for(q in 0:5) aics[1+p, 1+q] <- arima(WWWusage, c(p,1,q),
+       optim.control = list(maxit = 500))$aic
+round(aics - min(aics, na.rm=TRUE), 2)
+
+
+
+### nottem
+nott <- window(nottem, end=c(1936,12))
+fit <- arima(nott,order=c(1,0,0), list(order=c(2,1,0), period=12))
+nott.fore <- predict(fit, n.ahead=36)
+ts.plot(nott, nott.fore$pred, nott.fore$pred+2*nott.fore$se,
+        nott.fore$pred-2*nott.fore$se, gpars=list(col=c(1,1,4,4)))
+
+
+### StructTS
+(fit <- StructTS(log10(UKgas), type = "BSM"))
+(fit <- StructTS(log10(UKgas), type = "BSM", fixed=c(0, NA, NA, NA)))
+(fit <- StructTS(log10(UKgas), type = "BSM", fixed=c(NA, 0, NA, NA)))
+(fit <- StructTS(log10(UKgas), type = "BSM", fixed=c(NA, NA, NA, 0)))
+
+### from AirPassengers
+## The classic `airline model', by full ML
+(fit <- arima(log10(AirPassengers), c(0, 1, 1),
+              seasonal = list(order=c(0, 1 ,1), period=12)))
+update(fit, method = "CSS")
+update(fit, x=window(log10(AirPassengers), start = 1954))
+pred <- predict(fit, n.ahead = 24)
+tl <- pred$pred - 1.96 * pred$se
+tu <- pred$pred + 1.96 * pred$se
+ts.plot(AirPassengers, 10^tl, 10^tu, log = "y", lty = c(1,2,2))
+
+## full ML fit is the same if the series is reversed, CSS fit is not
+ap0 <- rev(log10(AirPassengers))
+attributes(ap0) <- attributes(AirPassengers)
+arima(ap0, c(0, 1, 1), seasonal = list(order=c(0, 1 ,1), period=12))
+arima(ap0, c(0, 1, 1), seasonal = list(order=c(0, 1 ,1), period=12),
+      method = "CSS")
+
+## Structural Time Series
+ap <- log10(AirPassengers) - 2
+(fit <- StructTS(ap, type= "BSM"))
+par(mfrow=c(1,2))
+plot(cbind(ap, fitted(fit)), plot.type = "single")
+plot(cbind(ap, tsSmooth(fit)), plot.type = "single")
+
+## PR14925
+a <- ts(matrix(1:36, 12), start = 2000, freq = 12)
+b <- ts(matrix(1:48, 16), start = c(1999,9), freq = 12)
+window(a, start = c(2000,6)) <- window(b, start = c(2000,6), end = c(2000,12))
+## failed in R < 2.15.1
+
+cat('Time elapsed: ', proc.time() - .proctime00,'\n')
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/birthwt.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/birthwt.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ppr_test.csv
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ppr_test.csv	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ppr_test.csv	(revision 2476)
@@ -0,0 +1,443 @@
+"","","bady"
+"1",-0.0348207628376986,1,-0.542937988158036
+"2",-0.0191633397482220,2,-0.169266091065016
+"3",-0.0341944659141195,1,-0.275406839429961
+"4",0.0249905933641021,2,0.384150222915368
+"5",0.0155961395104161,2,0.2341732751562
+"6",-0.0792878444118122,2,-0.021997198276666
+"7",-0.0248000120604336,1,0.399971463068032
+"8",0.108914381123697,1,-0.623493578304602
+"9",0.00620168565673016,1,-0.402266282137639
+"10",-0.034507614375909,2,1.08390058914255
+"11",-0.0905611890362353,2,0.024273472328843
+"12",0.0459715403040008,1,-0.448251018679603
+"13",-0.00976888589453599,2,0.70163011189378
+"14",-0.0157187066685371,1,0.123718062829826
+"15",-6.12835790604833e-05,2,0.0929302960910126
+"16",0.107661787276539,1,0.0445186997621552
+"17",-0.0238605666750649,2,-0.268966040102523
+"18",0.0494161733836856,1,-0.244466585236197
+"19",-0.0194764882100115,2,-0.272492268970116
+"20",-0.0113346282034837,2,0.58637312706044
+"21",-0.043275771306016,2,-0.388224863429526
+"22",-0.0263657543693812,1,-0.439522809120621
+"23",0.00776742796567782,2,-0.354209517739221
+"24",-0.0473467013092799,1,-0.166859766555732
+"25",-0.0188501912864324,2,0.265535097126863
+"26",0.0046359433477825,1,0.342255739372447
+"27",-0.0961978613484469,2,0.328193133923304
+"28",-0.0435889197678055,2,-0.738100695537103
+"29",-0.0376390989938044,2,0.0492751978645918
+"30",-0.0958847128866574,1,0.846962244613297
+"31",-0.00757684666200928,2,-0.311395214189561
+"32",-0.0536096705450705,2,-0.197180299226387
+"33",-0.0129003705124313,1,0.770727634055679
+"34",-0.0899348921126563,2,-0.214099277802346
+"35",-0.0489124436182275,2,-0.328796268354374
+"36",-0.00413221358232442,1,-0.123798883552826
+"37",-0.0285577936019079,2,0.557326881019212
+"38",-0.0429626228442264,2,0.910078165810043
+"39",0.0754074957122168,1,0.0625474905222085
+"40",0.00620168565673016,1,-0.660060421124099
+"41",0.07321545647969,1,-0.648765887241763
+"42",-0.072711726714232,2,-0.291387183530275
+"43",-0.0235474182132754,1,-0.580764200095337
+"44",-0.0100820343563255,2,-0.213881238361436
+"45",0.0046359433477825,1,0.342219498341999
+"46",0.00150445872988718,1,-0.627738756029472
+"47",-0.0476598497710694,2,0.638490421487924
+"48",-0.0742774690231797,2,0.366998080026886
+"49",0.00588853719494063,1,-0.192002931323743
+"50",0.00620168565673016,1,-0.42703489754501
+"51",-0.0373259505320149,2,0.399143495901645
+"52",-0.029184090525487,1,0.259085862758254
+"53",0.0447189464568426,2,-0.52960117919881
+"54",0.0221722572079963,2,-0.358445653831134
+"55",0.0177881787429428,2,0.299979528574020
+"56",-0.0226079728279068,2,0.34651271103047
+"57",-0.0304366843726451,2,-1.28260529016723
+"58",-0.104339721354975,2,-0.469681693832029
+"59",-0.057993749010124,2,0.572875739287276
+"60",0.048476727998317,1,0.318516539900054
+"61",-0.0786615474882331,2,-0.51629774307693
+"62",-0.0273051997547498,1,-0.238363914682604
+"63",-0.0138398158977999,1,-0.278262054849107
+"64",0.0434663526096845,2,0.240351359037258
+"65",-0.0598726397808612,1,-0.439820093575709
+"66",0.0149698425868371,1,-0.089734626673025
+"67",0.0121515064307313,1,0.157744469530662
+"68",0.00839372488925688,1,-0.147761547457720
+"69",-0.0241737151368545,1,0.640629492509571
+"70",-0.0614383820898088,2,0.721507998029808
+"71",-0.00914258897095694,2,-0.391891463942708
+"72",0.0262431872112602,2,0.409309553303869
+"73",0.0487898764601065,1,0.218024247023677
+"74",0.05317395492516,1,-0.149519213731968
+"75",0.0171618818193638,1,-0.647105867961298
+"76",-0.00100072896442909,1,-0.711807768742965
+"77",-0.106844909049291,1,-0.0568622733771722
+"78",-0.0276183482165393,2,0.95979439504761
+"79",-0.0683276482491785,2,1.05882959546064
+"80",0.0199802179754696,2,0.202513236360187
+"81",0.0534871033869495,2,-0.160509136618631
+"82",0.0284352264437869,1,-0.585827752105968
+"83",0.0171618818193638,2,-0.346456582878112
+"84",-0.0529833736214915,2,0.597901713985014
+"85",-0.0301235359108556,2,-0.132649008239744
+"86",-0.00100072896442909,2,-0.289025947256112
+"87",-0.0150924097449580,1,-0.255121884845899
+"88",0.0162224364339952,2,-0.136854078336641
+"89",-0.0370128020702253,1,-0.677430950151256
+"90",-0.0160318551303266,2,0.0753389806448792
+"91",-0.0451546620767532,2,0.100243021636830
+"92",0.0647604480113727,2,-0.125255305348025
+"93",-0.0207290820571696,2,-1.0505758255551
+"94",-0.0154055582067476,2,0.16885039497003
+"95",-0.0135266674360104,2,-0.169309597945285
+"96",-0.0288709420636975,2,0.369854431600131
+"97",-0.0122740735888523,1,-0.566282851696723
+"98",0.0425269072243159,2,0.556556637552114
+"99",-0.0138398158977999,1,-0.343832598689341
+"100",0.0375165318356834,2,-0.268130829056743
+"101",0.0444057979950531,2,-0.365938550530639
+"102",-0.00037443204085002,1,-0.0311681764689511
+"103",0.0249905933641021,2,1.22944913120819
+"104",0.0707102687853738,1,0.201090437227192
+"105",-0.0172844489774848,2,-0.594182131644277
+"106",-0.0216685274425382,1,-0.488925578404151
+"107",-0.0348207628376986,2,0.400182859035963
+"108",0.0406480164535787,2,0.0155260921851867
+"109",-0.0558017097775973,1,0.1349613580299
+"110",0.0375165318356834,1,-0.604279409412377
+"111",-0.0401442866881206,1,0.0912229513254876
+"112",0.0102726156599941,2,-0.585827187420521
+"113",0.0196670695136800,2,0.821569273382661
+"114",0.0202933664372591,1,0.779534939715196
+"115",-0.0329418720669614,2,-0.0427576052327692
+"116",0.0494161733836856,1,0.34552055454062
+"117",0.0206065148990486,1,0.627600258862538
+"118",0.0315667110616823,2,0.560348866635563
+"119",0.0400217195299996,1,0.136561803275829
+"120",-0.0429626228442264,2,0.586659396678506
+"121",-0.0185370428246429,2,0.751858555892416
+"122",0.0215459602844172,2,-0.0346520027699464
+"123",0.0641341510877936,1,-0.475034031350191
+"124",0.198787989657293,1,-0.96267443600314
+"125",-0.0388916928409625,2,-0.446966403216099
+"126",-0.0636304213223356,1,-0.105229435869263
+"127",-0.0545491159304391,2,0.111213728568517
+"128",0.0137172487396789,1,-0.225021888807548
+"129",-0.005071658967693,2,0.192382971695893
+"130",0.0105857641217836,2,0.544550640526851
+"131",-0.00475851050590347,1,0.169227048178445
+"132",-0.0107083312799046,2,0.645013058812764
+"133",0.047850431074738,1,-0.0235134031161297
+"134",-0.0717722813288634,1,-0.0630297490026158
+"135",0.000251864882729031,2,-0.371022927651655
+"136",-0.0429626228442264,2,0.481214559043027
+"137",-0.068014499787389,2,0.00232117243748586
+"138",-0.0163450035921162,2,0.603296973022765
+"139",-0.03388131745233,1,0.689463397801391
+"140",-0.0489124436182275,2,0.584785784895232
+"141",-0.00131387742621863,1,-0.362779810283891
+"142",0.0572448849284239,2,0.810287091899672
+"143",0.0444057979950531,1,0.549297270778805
+"144",0.00682798258030921,2,-0.383606471237968
+"145",0.0506687672308438,1,0.0628969594709541
+"146",-0.0326287236051719,2,0.307802130858709
+"147",0.0315667110616823,1,-0.0491288740872056
+"148",0.0234248510551544,2,-0.886174605827197
+"149",0.0481635795365275,1,-0.353063829906177
+"150",-0.0204159335953801,1,-0.373480626840549
+"151",-0.0144661128213790,2,1.00020535625734
+"152",-0.0238605666750649,2,-0.37293648383054
+"153",0.0669524872438994,1,0.970846742038665
+"154",0.0162224364339952,1,-0.288023336074307
+"155",0.0262431872112602,1,0.234872138823723
+"156",0.0863676918748504,1,-0.124107339307035
+"157",-0.0357602082230672,2,-0.860582860820529
+"158",0.0428400556861055,1,-0.297747269417959
+"159",0.0168487333575743,2,0.109903610414647
+"160",0.00714113104209875,2,-0.206224671104973
+"161",-0.0132135189742209,2,-0.327867194019532
+"162",0.131461070372543,1,-0.213564690106344
+"163",-0.0113346282034837,2,0.188385676330015
+"164",0.00557538873315109,1,-0.628807957951394
+"165",-0.0135266674360104,2,0.669583796395588
+"166",-0.043275771306016,2,-0.343884620646265
+"167",-0.0708328359434948,1,-0.190185480431738
+"168",0.00150445872988718,2,-0.320328578790684
+"169",0.063194705702425,1,0.323386845722763
+"170",-0.0160318551303266,2,-0.466837070291079
+"171",-0.0150924097449580,1,-0.443407572986743
+"172",-0.0598726397808612,2,-0.134811390846991
+"173",0.0159092879722056,1,0.482090992234558
+"174",-0.0664487574784414,1,-0.0170463331877988
+"175",-0.0946321190394993,1,-0.190324801658185
+"176",-0.0263657543693812,2,0.133819910273860
+"177",0.0259300387494707,1,0.635173662501035
+"178",0.0184144756665219,2,0.00228391995819166
+"179",0.0162224364339952,2,-0.258437031861175
+"180",0.0412743133771578,2,0.0283400108555913
+"181",0.00588853719494063,1,-0.645215565877466
+"182",0.0500424703072647,2,-0.291670337298211
+"183",0.0891860280309562,1,-0.327065894289160
+"184",-0.00162702588800815,1,0.242737144450905
+"185",-0.0260526059075917,2,0.57810653696704
+"186",-0.0248000120604336,1,-0.541941213451622
+"187",0.0575580333902134,1,-0.633212087112255
+"188",-0.082106180567918,2,0.500496715369151
+"189",0.0707102687853738,2,-0.052842886971195
+"190",0.00307020103883484,2,-0.244280532233061
+"191",-0.005071658967693,2,1.13589518632790
+"192",-0.0761563597939169,1,0.516233237416555
+"193",0.0212328118226277,1,-0.120931696200069
+"194",0.0838625041805342,1,-0.298112413451003
+"195",-0.0495387405418066,2,-0.460823957234195
+"196",0.048476727998317,1,-0.53750964944165
+"197",0.0362639379885253,2,-0.222956248715534
+"198",0.0134041002778894,1,-0.534628063085933
+"199",-0.03388131745233,2,-0.00536312114999693
+"200",-0.0157187066685371,2,-0.601310067820068
+"201",0.0491030249218961,2,0.51371538232261
+"202",-0.00788999512379879,1,-0.443235207931272
+"203",0.0910649188016934,1,-0.0545450835543364
+"204",0.0566185880048449,1,0.159594834986961
+"205",-0.00726369820021974,1,0.817680352105999
+"206",-0.0470335528474903,2,-0.920940961348847
+"207",0.038455977221052,1,0.206785551831567
+"208",-0.0138398158977999,2,0.0786089094577416
+"209",0.0378296802974729,2,-0.517512336320252
+"210",-0.0166581520539057,1,-0.69987268730616
+"211",0.0472241341511589,2,0.594013625246057
+"212",-0.0166581520539057,2,-0.832652369978527
+"213",0.0312535625998928,2,-0.646413025368303
+"214",-0.00100072896442909,2,-0.440536367839533
+"215",-0.0811667351825494,2,-0.279369474909596
+"216",-0.0320024266815928,1,-0.0452140231102436
+"217",0.0741549018650587,1,0.137324260072112
+"218",0.0368902349121043,2,0.699084005257896
+"219",0.014343545663258,2,0.809085151068957
+"220",-0.0742774690231797,2,0.605749454506367
+"221",-0.0332550205287509,1,-0.124684466736664
+"222",0.000878161806308105,2,-0.181486885774829
+"223",-0.0476598497710694,1,1.04353748120419
+"224",-0.0601857882426507,2,0.288952596833982
+"225",-0.0413968805352788,2,-0.104429039490037
+"226",-0.0435889197678055,1,0.0800869382183447
+"227",-0.0248000120604336,1,-0.144169895377154
+"228",-0.0157187066685371,1,-0.0464432100385457
+"229",0.00808057642746734,2,0.478240259012026
+"230",-0.000687580502639557,1,-0.467440941086978
+"231",0.155886650392127,1,0.239431491079654
+"232",0.00870687335104641,2,0.2562547807972
+"233",0.0572448849284239,1,0.86860230418135
+"234",-0.034507614375909,2,-0.423459070947301
+"235",-0.0241737151368545,2,0.310211050362970
+"236",-0.034507614375909,1,-0.295906130057979
+"237",0.0707102687853738,2,-0.86617486548278
+"238",-0.00100072896442909,2,-0.121778887044718
+"239",-0.00757684666200928,1,0.776213597614415
+"240",0.0387691256828415,2,0.509279639297807
+"241",-0.00225332281158722,1,0.465384478561689
+"242",0.0274957810584184,1,0.469496518921371
+"243",-0.0677013513255995,1,-0.308746203780249
+"244",-0.0160318551303266,1,-0.46235848664352
+"245",-0.0489124436182275,1,0.205409229630935
+"246",-0.058620045933703,2,0.261398866276518
+"247",0.0509819156926333,2,-0.440149176757358
+"248",-0.0185370428246429,2,-0.340825239203231
+"249",0.128016437292858,2,0.273551295992088
+"250",0.0293746718291555,2,-0.0150998906400583
+"251",-0.039204841302752,2,0.576834918553312
+"252",0.0487898764601065,1,-0.205915937224996
+"253",0.0528608064633705,2,-0.553196865177558
+"254",0.0566185880048449,2,-0.543721288333984
+"255",-0.0122740735888523,1,0.522487158063439
+"256",-0.0194764882100115,2,0.463745159249026
+"257",-0.0197896366718010,2,0.841549445924151
+"258",-0.0235474182132754,1,-0.453687910246368
+"259",0.0528608064633705,1,-0.458440156334343
+"260",0.0129343775852051,2,-0.467864695867239
+"261",-0.0313761297580137,2,-0.472283529481048
+"262",-0.0257394574458021,2,-0.186430934773366
+"263",0.0174750302811533,1,0.321642638528018
+"264",-0.0326287236051719,1,0.352069267692134
+"265",-0.00976888589453599,1,0.02668959086612
+"266",-0.00287961973516629,1,-0.556132391455717
+"267",-0.0366996536084358,1,-0.387257292601137
+"268",0.0794784257154807,2,-0.324131357308187
+"269",0.0375165318356834,1,0.0827698839729645
+"270",-0.0103951828181151,2,-0.093755609745107
+"271",-0.0473467013092799,1,0.191572236429703
+"272",-0.0210422305189592,1,-0.259424141806862
+"273",-0.0664487574784414,2,0.29937915243771
+"274",0.0328193049088404,1,0.376184708733085
+"275",-0.00319276819695581,2,-0.683575654018569
+"276",-0.0154055582067476,1,-0.64142305877968
+"277",0.0916912157252725,2,0.811986459824865
+"278",-0.078035250564654,2,-0.298077785935728
+"279",0.0196670695136800,1,-0.0758214988112154
+"280",-0.0263657543693812,1,0.827132228117798
+"281",0.0105857641217836,1,0.689895342645724
+"282",-0.0304366843726451,1,-0.184184898826604
+"283",0.102964560349696,2,0.847194957424707
+"284",-0.0363865051466462,2,0.806409840008277
+"285",-0.0451546620767532,1,0.0827048684085705
+"286",0.0212328118226277,2,0.552824579772346
+"287",-0.0864902590329714,2,-0.354242885013583
+"288",0.125198101136752,2,0.653520053265854
+"289",0.0563054395430553,1,-0.235849267757233
+"290",0.05317395492516,1,-1.15340165541335
+"291",0.0168487333575743,1,0.961697254069715
+"292",0.0428400556861055,2,0.461276319877892
+"293",-0.0686407967109681,2,-0.0341884331315262
+"294",0.0425269072243159,2,0.19050070101563
+"295",0.0177881787429428,1,-0.320894539927312
+"296",-0.0129003705124313,1,-0.687711338067914
+"297",-0.024486863598644,2,-0.0112816932009854
+"298",-0.024486863598644,2,-0.628420721133336
+"299",-0.0755300628703378,1,0.108339202697929
+"300",-0.0219816759043277,1,-0.299121148314735
+"301",-0.0135266674360104,2,0.504288281290109
+"302",0.0300009687527346,1,-0.49674221648836
+"303",0.0271826325966288,2,-0.0648277245363391
+"304",0.0202933664372591,2,0.0653229380005493
+"305",0.116429944206646,1,1.09697612700141
+"306",0.0162224364339952,1,-0.0578323225188244
+"307",-0.0248000120604336,1,-0.716688114767039
+"308",0.0356376410649462,1,0.0874474382931314
+"309",-0.0814798836443389,2,0.128350908869302
+"310",0.0700839718617947,1,-0.114604975474514
+"311",0.0149698425868371,2,-0.62242646270281
+"312",0.0606895180081088,2,0.103579664573858
+"313",-0.0141529643595894,2,0.266005125434976
+"314",0.0196670695136800,1,-0.413634930912108
+"315",-0.00100072896442909,2,0.0151321906456678
+"316",0.0206065148990486,2,-0.0673849072308246
+"317",-0.0213553789807487,1,0.0135990739864607
+"318",0.0741549018650587,2,0.324087630938248
+"319",0.00870687335104641,2,-0.427399230946266
+"320",-0.0545491159304391,2,0.042775486747467
+"321",0.092004364187062,2,-0.605344789864081
+"322",0.0365770864503148,2,-0.204436152405274
+"323",-0.0360733566848567,1,-0.226138837001874
+"324",-0.00444536204411395,1,0.170709352903985
+"325",0.077912683406533,2,0.537519459868399
+"326",0.0566185880048449,2,-0.147282475494555
+"327",0.00119131026809764,1,-0.323430494775891
+"328",0.0249905933641021,2,0.108292017818686
+"329",-0.0232342697514859,2,-0.826538205190531
+"330",-0.029184090525487,1,0.24584441334714
+"331",0.0368902349121043,1,0.573723086073314
+"332",-0.0464072559239113,1,0.79656132242823
+"333",-0.0113346282034837,2,0.00946238474567895
+"334",-0.00162702588800815,1,-0.124520035965299
+"335",-0.0576806005483345,1,-0.259878130786406
+"336",-0.00663740127664067,2,0.0555307997381935
+"337",0.0894991764927457,2,0.555424791964305
+"338",0.00714113104209875,1,-0.636112973637205
+"339",0.0240511479787335,2,0.873339312894887
+"340",0.0566185880048449,2,-0.394814482694516
+"341",-0.00381906512053488,2,0.739017674428192
+"342",0.00119131026809764,1,0.708961041328093
+"343",0.0181013272047324,1,0.00403126578142898
+"344",0.00870687335104641,2,-0.276137519375382
+"345",0.0644472995495832,2,0.502910779173363
+"346",0.057871181852003,1,-0.0156541427576098
+"347",0.127390140369279,1,-0.461785423626198
+"348",-0.0125872220506418,1,-0.169076596135421
+"349",-0.0294972389872765,2,0.350512955716197
+"350",-0.0470335528474903,1,-0.124228415607815
+"351",-0.0175975974392743,1,-0.131461613178762
+"352",-0.0695802420963367,1,-0.205628872696091
+"353",-0.0971373067338155,1,-0.0878584523532161
+"354",-0.00319276819695581,2,-0.495971604169367
+"355",0.0888728795691667,1,0.453324913491325
+"356",-0.0216685274425382,1,-0.458564307257987
+"357",0.0162224364339952,1,-0.556629174086865
+"358",-0.0301235359108556,1,0.169271197644518
+"359",-0.0341944659141195,2,0.0657618936180249
+"360",0.0174750302811533,1,1.25141355432077
+"361",-0.0132135189742209,2,0.652499667425962
+"362",-0.0482861466946485,2,0.704038829561223
+"363",-0.0266789028311707,1,0.669786704168092
+"364",-0.0282446451401184,1,-0.825099908269144
+"365",0.00494909180957202,1,0.878493590561456
+"366",0.00526224027136155,2,0.460202718189125
+"367",0.0318798595234718,1,-0.281858889818106
+"368",0.033758750294209,1,-0.235429645519174
+"369",-0.0100820343563255,1,-0.749168455422644
+"370",-0.00381906512053488,2,0.0138580627952098
+"371",-0.0125872220506418,2,-0.222636705057443
+"372",-0.0191633397482220,1,-0.102899440319366
+"373",0.0127778033543103,1,-0.364792071375576
+"374",-0.0570543036247554,2,0.418437419922108
+"375",-0.0705196874817053,2,0.148241329965757
+"376",0.0224854056697859,1,0.430891807354808
+"377",0.130208476525385,2,-0.741549127948163
+"378",0.0447189464568426,1,0.684173593258704
+"379",0.0108989125835731,1,0.72101144786046
+"380",-0.115613065979398,2,-0.657949812502163
+"381",-0.0442152166913845,2,-0.896421924067635
+"382",-0.0257394574458021,1,0.0962925069688172
+"383",-0.072711726714232,2,-1.00276025631586
+"384",-0.0288709420636975,1,-0.157806820134940
+"385",0.0869939887984295,1,-0.445362055938887
+"386",-0.0611252336280193,1,0.84021857926248
+"387",-0.0175975974392743,2,-0.251533189535103
+"388",-0.0172844489774848,2,0.758893789787943
+"389",-0.005071658967693,1,-0.395976152709988
+"390",-0.0166581520539057,1,-0.362704477405226
+"391",-0.0232342697514859,1,0.240165673609364
+"392",-0.0504781859271752,2,-0.155741439704364
+"393",0.0365770864503148,1,0.0385290544410537
+"394",-0.0232342697514859,2,-0.238860553149526
+"395",-0.0545491159304391,2,0.293301706277455
+"396",-0.0216685274425382,2,0.831706790819527
+"397",-0.0542359674686496,1,-0.440514782297251
+"398",-0.0583068974719135,2,0.218870588212521
+"399",0.0321930079852613,2,0.500744829653927
+"400",0.0118383579689417,1,0.262479865365506
+"401",-0.0354470597612776,2,0.0459955002977468
+"402",-0.05392281900686,2,-0.0247330661767469
+"403",0.0202933664372591,1,0.170742902946737
+"404",-0.0238605666750649,2,0.199286515264368
+"405",-0.0279314966783289,2,1.08912576788426
+"406",-0.10089508827529,1,0.114498290097875
+"407",-0.0370128020702253,2,-0.0846106975545163
+"408",0.0397085710682101,2,-0.341931668571862
+"409",0.0193539210518905,2,0.161218178259627
+"410",0.0729023080179005,1,0.0829112288198928
+"411",0.0372033833738938,1,0.480091172076597
+"412",-0.0723985782524425,2,-0.182281092461526
+"413",0.0130909518160999,2,0.301199977328185
+"414",0.00714113104209875,2,0.0875330300958936
+"415",0.117056241130225,1,-0.464798937851476
+"416",0.0472241341511589,2,0.0928613558403242
+"417",0.0181013272047324,2,0.518938399652306
+"418",-0.00131387742621863,2,-0.915794067370554
+"419",0.0941964034195887,2,-0.0849758660905434
+"420",-0.0573674520865449,2,-0.557819575895558
+"421",0.0346981956795776,2,0.146580008210001
+"422",0.0450320949186321,1,0.180578242378216
+"423",0.0644472995495832,1,0.207776620969095
+"424",0.0735286049414796,1,-0.392666088043916
+"425",-0.00381906512053488,1,-0.627260070295178
+"426",-0.112794729823292,2,0.260190647274243
+"427",0.0688313780146366,1,-0.386184997207579
+"428",-0.062690975936967,1,-0.503984283937765
+"429",0.0215459602844172,1,0.297983166681027
+"430",0.0415874618389473,2,-0.126484961821684
+"431",0.0453452433804217,2,0.576267745573508
+"432",-0.0470335528474903,1,-0.461945840462522
+"433",0.0447189464568426,2,-0.484434347988346
+"434",0.0199802179754696,2,-0.180198683463334
+"435",0.0108989125835731,2,-0.556213330349359
+"436",0.0046359433477825,2,-0.47603482348101
+"437",-0.0470335528474903,2,-0.290496276509039
+"438",-0.00256647127337676,1,-0.174951863141946
+"439",0.0791652772536912,1,-0.0941605505892384
+"440",-0.0138398158977999,1,0.0900586677437571
+"441",0.0152829910486266,2,0.283684348322489
+"442",0.0278089295202079,2,-0.215872199044323
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ks-test.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ks-test.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ks-test.R	(revision 2476)
@@ -0,0 +1,22 @@
+## some examples of the KS test
+
+## unrealistic one of PR#14561
+ds1 <- c(1.7,2,3,3,4,4,5,5,6,6)
+ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216)
+# how on earth can sigma = 1.55216 be known?
+
+# R >= 2.14.0 allows the equally invalid
+ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216, exact = TRUE)
+
+## Try out the effects of rounding
+set.seed(123)
+ds2 <- rnorm(1000)
+ks.test(ds2, "pnorm") # exact = FALSE is default for n = 1000
+ks.test(ds2, "pnorm", exact = TRUE)
+## next two are still close
+ks.test(round(ds2, 2), "pnorm")
+ks.test(round(ds2, 2), "pnorm", exact = TRUE)
+# now D has doubled, but p-values remain similar (if very different from ds2)
+ks.test(round(ds2, 1), "pnorm")
+ks.test(round(ds2, 1), "pnorm", exact = TRUE)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/nls.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/nls.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/nls.R	(revision 2476)
@@ -0,0 +1,283 @@
+#  File src/library/stats/tests/nls.R
+#  Part of the R package, https://www.R-project.org
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  https://www.R-project.org/Licenses/
+
+## tests of nls, especially of weighted fits
+
+library(stats)
+options(digits = 5) # to avoid trivial printed differences
+options(useFancyQuotes = FALSE) # avoid fancy quotes in o/p
+options(show.nls.convergence = FALSE) # avoid non-diffable output
+options(warn = 1)
+
+have_MASS <- requireNamespace('MASS', quietly = TRUE)
+
+pdf("nls-test.pdf")
+
+## utility for comparing nls() results:  [TODO: use more often below]
+.n <- function(r) r[names(r) != "call"]
+
+## selfStart.default() w/ no parameters:
+logist <- deriv( ~Asym/(1+exp(-(x-xmid)/scal)), c("Asym", "xmid", "scal"),
+		function(x, Asym, xmid, scal){} )
+logistInit <- function(mCall, LHS, data) {
+    xy <- sortedXyData(mCall[["x"]], LHS, data)
+    if(nrow(xy) < 3) stop("Too few distinct input values to fit a logistic")
+    Asym <- max(abs(xy[,"y"]))
+    if (Asym != max(xy[,"y"])) Asym <- -Asym  # negative asymptote
+    xmid <- NLSstClosestX(xy, 0.5 * Asym)
+    scal <- NLSstClosestX(xy, 0.75 * Asym) - xmid
+    setNames(c(Asym, xmid, scal),
+	     mCall[c("Asym", "xmid", "scal")])
+}
+logist <- selfStart(logist, initial = logistInit) ##-> Error in R 1.5.0
+str(logist)
+
+## lower and upper in algorithm="port"
+set.seed(123)
+x <- runif(200)
+a <- b <- 1; c <- -0.1
+y <- a+b*x+c*x^2+rnorm(200, sd=0.05)
+plot(x,y)
+curve(a+b*x+c*x^2, add = TRUE)
+nls(y ~ a+b*x+c*I(x^2), start = c(a=1, b=1, c=0.1), algorithm = "port")
+(fm <- nls(y ~ a+b*x+c*I(x^2), start = c(a=1, b=1, c=0.1),
+           algorithm = "port", lower = c(0, 0, 0)))
+if(have_MASS) print(confint(fm))
+
+## weighted nls fit: unsupported < 2.3.0
+set.seed(123)
+y <- x <- 1:10
+yeps <- y + rnorm(length(y), sd = 0.01)
+wts <- rep(c(1, 2), length = 10); wts[5] <- 0
+fit0 <- lm(yeps ~ x, weights = wts)
+summary(fit0, cor = TRUE)
+cf0 <- coef(summary(fit0))[, 1:2]
+fit <- nls(yeps ~ a + b*x, start = list(a = 0.12345, b = 0.54321),
+           weights = wts, trace = TRUE)
+summary(fit, cor = TRUE)
+stopifnot(all.equal(residuals(fit), residuals(fit0), tolerance = 1e-5,
+                    check.attributes = FALSE))
+stopifnot(df.residual(fit) == df.residual(fit0))
+cf1 <- coef(summary(fit))[, 1:2]
+fit2 <- nls(yeps ~ a + b*x, start = list(a = 0.12345, b = 0.54321),
+            weights = wts, trace = TRUE, algorithm = "port")
+summary(fit2, cor = TRUE)
+cf2 <- coef(summary(fit2))[, 1:2]
+rownames(cf0) <- c("a", "b")
+# expect relative errors ca 2e-08
+stopifnot(all.equal(cf1, cf0, tolerance = 1e-6),
+          all.equal(cf1, cf0, tolerance = 1e-6))
+stopifnot(all.equal(residuals(fit2), residuals(fit0), tolerance = 1e5,
+                    check.attributes = FALSE))
+
+
+DNase1 <- subset(DNase, Run == 1)
+DNase1$wts <- rep(8:1, each = 2)
+fm1 <- nls(density ~ SSlogis(log(conc), Asym, xmid, scal),
+           data = DNase1, weights = wts)
+summary(fm1)
+
+## directly
+fm2 <- nls(density ~ Asym/(1 + exp((xmid - log(conc))/scal)),
+           data = DNase1, weights = wts,
+           start = list(Asym = 3, xmid = 0, scal = 1))
+summary(fm2)
+stopifnot(all.equal(coef(summary(fm2)), coef(summary(fm1)), tolerance = 1e-6))
+stopifnot(all.equal(residuals(fm2), residuals(fm1), tolerance = 1e-5))
+stopifnot(all.equal(fitted(fm2), fitted(fm1), tolerance = 1e-6))
+fm2a <- nls(density ~ Asym/(1 + exp((xmid - log(conc)))),
+            data = DNase1, weights = wts,
+            start = list(Asym = 3, xmid = 0))
+anova(fm2a, fm2)
+
+## and without using weights
+fm3 <- nls(~ sqrt(wts) * (density - Asym/(1 + exp((xmid - log(conc))/scal))),
+           data = DNase1, start = list(Asym = 3, xmid = 0, scal = 1))
+summary(fm3)
+stopifnot(all.equal(coef(summary(fm3)), coef(summary(fm1)), tolerance = 1e-6))
+ft <- with(DNase1, density - fitted(fm3)/sqrt(wts))
+stopifnot(all.equal(ft, fitted(fm1), tolerance = 1e-6))
+# sign of residuals is reversed
+r <- with(DNase1, -residuals(fm3)/sqrt(wts))
+all.equal(r, residuals(fm1), tolerance = 1e-5)
+fm3a <- nls(~ sqrt(wts) * (density - Asym/(1 + exp((xmid - log(conc))))),
+            data = DNase1, start = list(Asym = 3, xmid = 0))
+anova(fm3a, fm3)
+
+## using conditional linearity
+fm4 <- nls(density ~ 1/(1 + exp((xmid - log(conc))/scal)),
+           data = DNase1, weights = wts,
+           start = list(xmid = 0, scal = 1), algorithm = "plinear")
+summary(fm4)
+cf <- coef(summary(fm4))[c(3,1,2), ]
+rownames(cf)[2] <- "Asym"
+stopifnot(all.equal(cf, coef(summary(fm1)), tolerance = 1e-6,
+                    check.attributes = FALSE))
+stopifnot(all.equal(residuals(fm4), residuals(fm1), tolerance = 1e-5))
+stopifnot(all.equal(fitted(fm4), fitted(fm1), tolerance = 1e-6))
+fm4a <- nls(density ~ 1/(1 + exp((xmid - log(conc)))),
+            data = DNase1, weights = wts,
+            start = list(xmid = 0), algorithm = "plinear")
+anova(fm4a, fm4)
+
+## using 'port'
+fm5 <- nls(density ~ Asym/(1 + exp((xmid - log(conc))/scal)),
+           data = DNase1, weights = wts,
+           start = list(Asym = 3, xmid = 0, scal = 1),
+           algorithm = "port")
+summary(fm5)
+stopifnot(all.equal(coef(summary(fm5)), coef(summary(fm1)), tolerance = 1e-6))
+stopifnot(all.equal(residuals(fm5), residuals(fm1), tolerance = 1e-5))
+stopifnot(all.equal(fitted(fm5), fitted(fm1), tolerance = 1e-6))
+
+## check profiling
+pfm1 <- profile(fm1)
+pfm3 <- profile(fm3)
+for(m in names(pfm1))
+    stopifnot(all.equal(pfm1[[m]], pfm3[[m]], tolerance = 1e-5))
+pfm5 <- profile(fm5)
+for(m in names(pfm1))
+    stopifnot(all.equal(pfm1[[m]], pfm5[[m]], tolerance = 1e-5))
+if(have_MASS) {
+    print(c1 <- confint(fm1))
+    print(c4 <- confint(fm4, 1:2))
+    stopifnot(all.equal(c1[2:3, ], c4, tolerance = 1e-3))
+}
+
+## some low-dimensional examples
+npts <- 1000
+set.seed(1001)
+x <- runif(npts)
+b <- 0.7
+y <- x^b+rnorm(npts, sd=0.05)
+a <- 0.5
+y2 <- a*x^b+rnorm(npts, sd=0.05)
+c <- 1.0
+y3 <- a*(x+c)^b+rnorm(npts, sd=0.05)
+d <- 0.5
+y4 <- a*(x^d+c)^b+rnorm(npts, sd=0.05)
+m1 <- c(y ~ x^b, y2 ~ a*x^b, y3 ~ a*(x+exp(logc))^b)
+s1 <- list(c(b=1), c(a=1,b=1), c(a=1,b=1,logc=0))
+for(p in 1:3) {
+    fm <- nls(m1[[p]], start = s1[[p]])
+    print(fm)
+    if(have_MASS) print(confint(fm))
+    fm <- nls(m1[[p]], start = s1[[p]], algorithm = "port")
+    print(fm)
+    if(have_MASS) print(confint(fm))
+}
+
+if(have_MASS) {
+    fm <- nls(y2~x^b, start=c(b=1), algorithm="plinear")
+    print(confint(profile(fm)))
+    fm <- nls(y3 ~ (x+exp(logc))^b, start=c(b=1, logc=0), algorithm="plinear")
+    print(confint(profile(fm)))
+}
+
+
+## more profiling with bounds
+op <- options(digits=3)
+npts <- 10
+set.seed(1001)
+a <- 2
+b <- 0.5
+x <- runif(npts)
+y <- a*x/(1+a*b*x) + rnorm(npts, sd=0.2)
+gfun <- function(a,b,x) {
+    if(a < 0 || b < 0) stop("bounds violated")
+    a*x/(1+a*b*x)
+}
+m1 <- nls(y ~ gfun(a,b,x), algorithm = "port",
+          lower = c(0,0), start = c(a=1, b=1))
+(pr1 <- profile(m1))
+if(have_MASS) print(confint(pr1))
+
+gfun <- function(a,b,x) {
+    if(a < 0 || b < 0 || a > 1.5 || b > 1) stop("bounds violated")
+    a*x/(1+a*b*x)
+}
+m2 <- nls(y ~ gfun(a,b,x), algorithm = "port",
+          lower = c(0, 0), upper=c(1.5, 1), start = c(a=1, b=1))
+profile(m2)
+if(have_MASS) print(confint(m2))
+options(op)
+
+## scoping problems
+test <- function(trace=TRUE)
+{
+    x <- seq(0,5,len=20)
+    n <- 1
+    y <- 2*x^2 + n + rnorm(x)
+    xy <- data.frame(x=x,y=y)
+    myf <- function(x,a,b,c) a*x^b+c
+    list(with.start=
+         nls(y ~ myf(x,a,b,n), data=xy, start=c(a=1,b=1), trace=trace),
+         no.start= ## cheap auto-init to 1
+	 suppressWarnings(
+	     nls(y ~ myf(x,A,B,n), data=xy)))
+}
+t1 <- test(); t1$with.start
+##__with.start:
+## failed to find n in 2.2.x
+## found wrong n in 2.3.x
+## finally worked in 2.4.0
+##__no.start: failed in 3.0.2
+stopifnot(all.equal(.n(t1[[1]]), .n(t1[[2]])))
+rm(a,b)
+t2 <- test(FALSE)
+stopifnot(all.equal(lapply(t1, .n),
+		    lapply(t2, .n), tolerance = 0.16))# different random error
+
+
+## list 'start'
+set.seed(101)# (remain independent of above)
+getExpmat <- function(theta, t)
+{
+        conc <- matrix(nrow = length(t), ncol = length(theta))
+        for(i in 1:length(theta)) conc[, i] <- exp(-theta[i] * t)
+        conc
+}
+
+expsum <- as.vector(getExpmat(c(.05,.005), 1:100) %*% c(1,1))
+expsumNoisy <- expsum + max(expsum) *.001 * rnorm(100)
+expsum.df <-data.frame(expsumNoisy)
+
+## estimate decay rates, amplitudes with default Gauss-Newton
+summary (nls(expsumNoisy ~ getExpmat(k, 1:100) %*% sp, expsum.df,
+             start = list(k = c(.6,.02), sp = c(1,2))))
+
+## didn't work with port in 2.4.1
+summary (nls(expsumNoisy ~ getExpmat(k, 1:100) %*% sp, expsum.df,
+             start = list(k = c(.6,.02), sp = c(1,2)),
+             algorithm = "port"))
+
+
+## PR13540
+
+x <- runif(200)
+b0 <- c(rep(0,100),runif(100))
+b1 <- 1
+fac <- as.factor(rep(c(0,1), each = 100))
+y <- b0 + b1*x + rnorm(200, sd=0.05)
+# next failed in 2.8.1
+fit <- nls(y~b0[fac] + b1*x, start = list(b0=c(1,1), b1=1),
+           algorithm ="port", upper = c(100, 100, 100))
+# next did not "fail" in proposed fix:
+fit <- nls(y~b0[fac] + b1*x, start = list(b0=c(1,1), b1=101),
+           algorithm ="port", upper = c(100, 100, 100),
+           control = list(warnOnly=TRUE))# warning ..
+with(fit$convInfo, ## start par. violates constraints
+     stopifnot(isConv == FALSE, stopCode == 300))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ig_glm.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ig_glm.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ig_glm.R	(revision 2476)
@@ -0,0 +1,68 @@
+## some tests of inverse-gaussian GLMs based on a file supplied by
+## David Firth, Feb 2009.
+
+options(digits=5)
+have_MASS <- requireNamespace('MASS', quietly = TRUE)
+
+##  Data from Whitmore, G A (1986), Inverse Gaussian Ratio Estimation.
+##  Applied Statistics 35(1), 8-15.
+##
+##  A "real, but disguised" set of data (Whitmore, 1986, p8).
+##
+##  For each of 20 products, x is projected sales and y is actual sales.
+
+x <- c(5959, 3534, 2641, 1965, 1738, 1182, 667, 613, 610, 549,
+       527, 353, 331, 290, 253, 193, 156, 133, 122, 114)
+y <- c(5673, 3659, 2565, 2182, 1839, 1236, 918, 902, 756, 500,
+       487, 463, 225, 257, 311, 212, 166, 123, 198, 99)
+
+## Whitmore's model (2.4) is
+
+fit <- glm(y ~ x - 1, weights = x^2,
+           family = inverse.gaussian(link = "identity"),
+           epsilon = 1e-12)
+fit
+coef(summary(fit))
+##  Alternatively, use the explicit formula that's available for the MLE
+##  in this example.  It's just a ratio estimate:
+(beta.exact <- sum(y)/sum(x))
+stopifnot(all.equal(beta.exact, as.vector(coef(fit))))
+## and for a confidence interval via confint
+if(have_MASS) {
+    ci <- confint(fit, 1, level = 0.95)
+    print(ci)
+}
+## and via asymptotic normality
+sterr <- coef(summary(fit))[, "Std. Error"]
+coef(fit) + (1.96 * sterr * c(-1, 1))
+
+## David suggested the use of an inverse link
+
+fit2 <- glm(y ~ I(1/x) - 1, weights = x^2,
+            family = inverse.gaussian(link = "inverse"),
+            epsilon = 1e-12)
+coef(summary(fit2))
+## which gives the same CIs both ways
+if(have_MASS) {
+    ci1 <- rev(1/(confint(fit2, 1, level = 0.95)))
+    print(ci1)
+    sterr <- (summary(fit2)$coefficients)[, "Std. Error"]
+    ci2 <- 1/(coef(fit2) - (1.96 * sterr * c(-1, 1)))
+    print(ci2)
+    stopifnot(all.equal(as.vector(ci), as.vector(ci1), tolerance = 1e-5),
+              all.equal(as.vector(ci), ci2, tolerance = 1e-3))
+}
+##  because the log likelihood for 1/beta is exactly quadratic.
+
+##  The approximate intervals above differ slightly from the exact
+##  confidence interval given in Whitmore (1986) -- as is to be
+##  expected (they are based on asymptotic approximations, not the
+##  exact pivot).
+
+
+## Now simulate from this model
+if(requireNamespace("SuppDists")) {
+    print( ys <- simulate(fit, nsim = 3, seed = 1) )
+    for(i in seq_len(3))
+        print(coef(summary(update(fit, ys[, i] ~ .))))
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/drop1-polr.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/drop1-polr.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/drop1-polr.R	(revision 2476)
@@ -0,0 +1,30 @@
+### Test calling drop1.default() "deep down" -- via
+### correct formula environment
+
+library(stats)
+if(!require(MASS)) q()
+
+regr <- function(formula, data, ...)
+{
+    lform <- formula(formula)
+    d1 <- data
+    i.polr(lform, d1, ...)
+}
+
+i.polr <- function(form, data, ...)
+{
+    lfo <- form
+    d2 <- data
+    environment(lfo) <- environment()
+    lreg <- polr(lfo, data = d2, ...)
+    do.drop(lreg, lreg1$coef, ltesttype = "Chisq")
+}
+
+do.drop <- function(lreg, lcoeftab, ltesttype)
+    drop1(lreg, test = ltesttype, scope = terms(lreg), trace = FALSE)
+
+m  <- polr(Sat ~ Infl + Type + Cont, data = housing)
+rr <- regr(formula(m), data = housing)
+dr1 <- drop1(m)
+stopifnot(is.data.frame(rr),
+	  all.equal(rr[-(3:4)], dr1, check.attributes = FALSE))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/NLSstClosest.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/NLSstClosest.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/NLSstClosest.R	(revision 2476)
@@ -0,0 +1,12 @@
+## PR#14384
+
+sXY <- structure(list(x = c(0, 24, 27, 48, 51, 72, 75, 96, 99),
+                      y = c(4.98227, 6.38021, 6.90309, 7.77815, 7.64345, 7.23045, 7.27875, 7.11394, 6.95424)),
+                 .Names = c("x", "y"), row.names = c(NA, 9L),
+                 class = c("sortedXyData", "data.frame"))
+a <- NLSstLfAsymptote(sXY)
+d <- NLSstRtAsymptote(sXY)
+z <- NLSstClosestX(sXY, (a+d)/2)
+stopifnot(!is.na(z))
+## early versions gave NaN
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ppr.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ppr.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/ppr.R	(revision 2476)
@@ -0,0 +1,6 @@
+## example from PR#13571: should fail, not crash.
+
+require("stats")
+bad <- as.matrix(read.csv("ppr_test.csv"))
+try(ppr(bad[,-3], bad[, 3], nterms=1))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/smooth.spline.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/smooth.spline.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/smooth.spline.R	(revision 2476)
@@ -0,0 +1,15 @@
+## moved from ?smooth.spline, quite system-specific.
+y18 <- c(1:3,5,4,7:3,2*(2:5),rep(10,4))
+xx  <- seq(1,length(y18), len=201)
+s2. <- smooth.spline(y18, cv = TRUE,
+                     control = list(trace=TRUE, tol=1e-6,low= -3,maxit=20))
+s2. ## i386-Linux: Df ~= (even! > ) 18 : interpolating -- much smaller PRESS
+## {others, e.g., may end quite differently!}
+plot(y18)
+lines(predict(s2., xx), col = 4)
+mtext(deparse(s2.$call,200), side= 1, line= -1, cex= 0.8, col= 4)
+
+(sdf8 <- smooth.spline(y18, df = 8, control=list(trace=TRUE)))
+sdf8$df - 8
+
+try(smooth.spline(y18, spar = 50)) #>> error : spar 'way too large'
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/glm.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/glm.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/glm.Rout.save	(revision 2476)
@@ -0,0 +1,32 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ## Example in which the fit for the null deviance fails to converge:
+> # https://stat.ethz.ch/pipermail/r-help/2012-May/313161.html
+> Y <- c(rep(0,35),1,2,0,6,8,16,43)
+> beta <- 42:1
+> cst <- lchoose(42, beta)
+> tau <- (beta^2)/2
+> fit <- glm(formula = Y ~ offset(cst) + beta + tau, family = poisson)
+Warning messages:
+1: glm.fit: algorithm did not converge 
+2: In glm(formula = Y ~ offset(cst) + beta + tau, family = poisson) :
+  fitting to calculate the null deviance did not converge -- increase 'maxit'?
+> 
+> proc.time()
+   user  system elapsed 
+  0.141   0.015   0.145 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/nafns.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/nafns.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/tests/nafns.R	(revision 2476)
@@ -0,0 +1,135 @@
+#  File src/library/stats/tests/nafns.R
+#  Part of the R package, https://www.R-project.org
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  https://www.R-project.org/Licenses/
+
+## Tests of functions handling NAs in fits
+## These functions were introduced in 1.3.0.
+## They are used by lm and glm in base R, and by
+## packages MASS, rpart and survival.
+
+## Comparison strictness is set at 256eps, increased from 100eps for v.2.1.0
+## May look lenient, but notice that the Ozone levels that are being modeled
+## can be more than 100.
+
+dim(airquality)
+nd <- airquality[c(6,25:27), ]
+
+sm <- function(x) cat("length", length(x), "with", sum(is.na(x)), "NAs\n")
+
+# default is to omit some rows
+fit <- lm(Ozone ~ ., data=airquality, na.action=na.omit)
+summary(fit)
+sm(fitted(fit))
+sm(resid(fit))
+sm(predict(fit))
+(pp <- predict(fit, nd))
+
+fit2 <- lm(Ozone ~ ., data=airquality, na.action=na.exclude)
+summary(fit2) # same as before
+sm(fitted(fit2))
+sm(resid(fit2))
+sm(predict(fit2))
+(pp2 <- predict(fit2, nd))
+
+## same as before: napredict is only applied to predictions on the
+## original data, following Therneau's original code (and S-PLUS).
+## However, as from R 1.8.0 there is a separate na.action arg to predict.lm()
+stopifnot(all.equal(pp, pp2))
+
+## should fail
+try(fit3 <- lm(Ozone ~ ., data=airquality, na.action=na.fail))
+
+## more precise tests.
+f1 <- fitted(fit)
+f2 <- fitted(fit2)
+common <- match(names(f1), names(f2))
+stopifnot(max(abs(f1 - f2[common])) <= 256*.Machine$double.eps)
+stopifnot(all(is.na(f2[-common])))
+
+r1 <- resid(fit)
+r2 <- resid(fit2)
+common <- match(names(r1), names(r2))
+stopifnot(max(abs(r1 - r2[common])) <= 256*.Machine$double.eps)
+stopifnot(all(is.na(r2[-common])))
+
+p1 <- predict(fit)
+p2 <- predict(fit2)
+common <- match(names(p1), names(p2))
+stopifnot(max(abs(p1 - p2[common])) <= 256*.Machine$double.eps)
+stopifnot(all(is.na(p2[-common])))
+
+
+### now try out glm
+gfit <- glm(Ozone ~ ., data=airquality, na.action=na.omit)
+summary(gfit)
+sm(fitted(gfit))
+sm(resid(gfit))
+sm(predict(gfit))
+predict(gfit, nd)
+(pp <- predict(gfit, nd))
+
+gfit2 <- glm(Ozone ~ ., data=airquality, na.action=na.exclude)
+summary(gfit2) # same as before
+sm(fitted(gfit2))
+sm(resid(gfit2))
+sm(predict(gfit2))
+(pp2 <- predict(gfit2, nd))
+stopifnot(all.equal(pp, pp2))
+
+## more precise tests.
+f1 <- fitted(gfit)
+f2 <- fitted(gfit2)
+common <- match(names(f1), names(f2))
+stopifnot(max(abs(f1 - f2[common])) <= 256*.Machine$double.eps)
+stopifnot(all(is.na(f2[-common])))
+
+r1 <- resid(gfit)
+r2 <- resid(gfit2)
+common <- match(names(r1), names(r2))
+stopifnot(max(abs(r1 - r2[common])) <= 256*.Machine$double.eps)
+stopifnot(all(is.na(r2[-common])))
+
+p1 <- predict(gfit)
+p2 <- predict(gfit2)
+common <- match(names(p1), names(p2))
+stopifnot(max(abs(p1 - p2[common])) <= 256*.Machine$double.eps)
+stopifnot(all(is.na(p2[-common])))
+
+## tests of diagnostic measures.
+x <- 1:10
+y <- c(rnorm(9),NA)
+fit <- lm(y ~ x, na.action=na.exclude)
+fit2 <- lm(y ~ x, subset=-10)
+
+lm.influence(fit2); lm.influence(fit)
+
+rstandard(fit2); rstandard(fit)
+rstudent(fit2); rstudent(fit)
+
+dffits(fit2); dffits(fit)
+
+dfbetas(fit2); dfbetas(fit)
+
+covratio(fit2); covratio(fit)
+
+cooks.distance(fit2); cooks.distance(fit)
+
+(inf <- influence.measures(fit))
+(inf2 <- influence.measures(fit2))
+
+summary(inf)
+summary(inf2)
+
+plot(fit)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/DESCRIPTION	(revision 2476)
@@ -0,0 +1,12 @@
+Package: stats
+Version: 3.3.2
+Priority: base
+Title: The R Stats Package
+Author: R Core Team and contributors worldwide
+Maintainer: R Core Team <R-core@r-project.org>
+Description: R statistical functions.
+License: Part of R 3.3.2
+Imports: utils, grDevices, graphics
+Suggests: MASS, Matrix, SuppDists, methods, stats4
+NeedsCompilation: yes
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:32:31 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/demo/glm.vr.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/demo/glm.vr.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/demo/glm.vr.R	(revision 2476)
@@ -0,0 +1,24 @@
+#  Copyright (C) 1997-2009 The R Core Team
+
+#### -*- R -*-
+require(stats)
+Fr <- c(68,42,42,30, 37,52,24,43,
+	66,50,33,23, 47,55,23,47,
+	63,53,29,27, 57,49,19,29)
+
+Temp <- gl(2, 2, 24, labels = c("Low", "High"))
+Soft <- gl(3, 8, 24, labels = c("Hard","Medium","Soft"))
+M.user <- gl(2, 4, 24, labels = c("N", "Y"))
+Brand <- gl(2, 1, 24, labels = c("X", "M"))
+
+detg <- data.frame(Fr,Temp, Soft,M.user, Brand)
+detg.m0 <- glm(Fr ~ M.user*Temp*Soft + Brand, family = poisson, data = detg)
+summary(detg.m0)
+
+detg.mod <- glm(terms(Fr ~ M.user*Temp*Soft + Brand*M.user*Temp,
+                      keep.order = TRUE),
+		family = poisson, data = detg)
+summary(detg.mod)
+summary(detg.mod, correlation = TRUE, symbolic.cor = TRUE)
+
+anova(detg.m0, detg.mod)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/demo/lm.glm.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/demo/lm.glm.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/demo/lm.glm.R	(revision 2476)
@@ -0,0 +1,144 @@
+### Examples from: "An Introduction to Statistical Modelling"
+###			By Annette Dobson
+###
+### == with some additions ==
+
+#  Copyright (C) 1997-2015 The R Core Team
+
+require(stats); require(graphics)
+
+## Plant Weight Data (Page 9)
+ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
+trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
+group <- gl(2,10, labels=c("Ctl","Trt"))
+weight <- c(ctl,trt)
+anova  (lm(weight~group))
+summary(lm(weight~group -1))
+
+
+## Birth Weight Data (Page 14)
+age <- c(40, 38, 40, 35, 36, 37, 41, 40, 37, 38, 40, 38,
+	 40, 36, 40, 38, 42, 39, 40, 37, 36, 38, 39, 40)
+birthw <- c(2968, 2795, 3163, 2925, 2625, 2847, 3292, 3473, 2628, 3176,
+	    3421, 2975, 3317, 2729, 2935, 2754, 3210, 2817, 3126, 2539,
+	    2412, 2991, 2875, 3231)
+sex <- gl(2,12, labels=c("M","F"))
+plot(age, birthw, col=as.numeric(sex), pch=3*as.numeric(sex),
+     main="Dobson's Birth Weight Data")
+lines(lowess(age[sex=='M'], birthw[sex=='M']), col=1)
+lines(lowess(age[sex=='F'], birthw[sex=='F']), col=2)
+legend("topleft", levels(sex), col=1:2, pch=3*(1:2), lty=1, bty="n")
+
+summary(l1 <- lm(birthw ~ sex + age),    correlation=TRUE)
+summary(l0 <- lm(birthw ~ sex + age -1), correlation=TRUE)
+anova(l1,l0)
+summary(li <- lm(birthw ~ sex + sex:age -1), correlation=TRUE)
+anova(li,l0)
+
+summary(zi <- glm(birthw ~ sex + age, family=gaussian()))
+summary(z0 <- glm(birthw ~ sex + age - 1, family=gaussian()))
+anova(zi, z0)
+
+summary(z.o4 <- update(z0, subset = -4))
+summary(zz <- update(z0, birthw ~ sex+age-1 + sex:age))
+anova(z0,zz)
+
+## Poisson Regression Data (Page 42)
+x <- c(-1,-1,0,0,0,0,1,1,1)
+y <- c(2,3,6,7,8,9,10,12,15)
+summary(glm(y~x, family=poisson(link="identity")))
+
+
+## Calorie Data (Page 45)
+calorie <- data.frame(
+    carb = c(33,40,37,27,30,43,34,48,30,38,
+	     50,51,30,36,41,42,46,24,35,37),
+    age	 = c(33,47,49,35,46,52,62,23,32,42,
+	     31,61,63,40,50,64,56,61,48,28),
+    wgt	 = c(100, 92,135,144,140,101, 95,101, 98,105,
+	     108, 85,130,127,109,107,117,100,118,102),
+    prot = c(14,15,18,12,15,15,14,17,15,14,
+	     17,19,19,20,15,16,18,13,18,14))
+summary(lmcal <- lm(carb~age+wgt+prot, data= calorie))
+
+
+## Extended Plant Data (Page 59)
+ctl <-	c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
+trtA <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
+trtB <- c(6.31,5.12,5.54,5.50,5.37,5.29,4.92,6.15,5.80,5.26)
+group <- gl(3, length(ctl), labels=c("Ctl","A","B"))
+weight <- c(ctl,trtA,trtB)
+anova(lmwg <- lm(weight~group))
+summary(lmwg)
+coef(lmwg)
+coef(summary(lmwg))#- incl.  std.err,  t- and P- values.
+
+
+## Fictitious Anova Data (Page 64)
+y <- c(6.8,6.6,5.3,6.1,7.5,7.4,7.2,6.5,7.8,9.1,8.8,9.1)
+a <- gl(3,4)
+b <- gl(2,2, length(a))
+anova(z <- lm(y~a*b))
+
+
+## Achievement Scores (Page 70)
+y <- c(6,4,5,3,4,3,6, 8,9,7,9,8,5,7, 6,7,7,7,8,5,7)
+x <- c(3,1,3,1,2,1,4, 4,5,5,4,3,1,2, 3,2,2,3,4,1,4)
+m <- gl(3,7)
+anova(z <- lm(y~x+m))
+
+
+## Beetle Data (Page 78)
+dose <- c(1.6907, 1.7242, 1.7552, 1.7842, 1.8113, 1.8369, 1.861, 1.8839)
+x <- c( 6, 13, 18, 28, 52, 53, 61, 60)
+n <- c(59, 60, 62, 56, 63, 59, 62, 60)
+dead <- cbind(x, n-x)
+summary(     glm(dead ~ dose, family=binomial(link=logit)))
+summary(     glm(dead ~ dose, family=binomial(link=probit)))
+summary(z <- glm(dead ~ dose, family=binomial(link=cloglog)))
+anova(z, update(z, dead ~ dose -1))
+
+
+## Anther Data (Page 84)
+## Note that the proportions below are not exactly
+## in accord with the sample sizes quoted below.
+## In particular, the last value, 5/9, should have been 0.556 instead of 0.555:
+n <- c(102,  99,   108,	 76,   81,   90)
+p <- c(0.539,0.525,0.528,0.724,0.617,0.555)
+x <- round(n*p)
+## x <- n*p
+y <- cbind(x,n-x)
+f <- rep(c(40,150,350),2)
+(g <- gl(2,3))
+summary(glm(y ~ g*f, family=binomial(link="logit")))
+summary(glm(y ~ g + f, family=binomial(link="logit")))
+## The "final model"
+summary(glm.p84 <- glm(y~g,  family=binomial(link="logit")))
+op <- par(mfrow = c(2,2), oma = c(0,0,1,0))
+plot(glm.p84) # well ?
+par(op)
+
+## Tumour Data (Page 92)
+counts <- c(22,2,10,16,54,115,19,33,73,11,17,28)
+type <- gl(4,3,12,labels=c("freckle","superficial","nodular","indeterminate"))
+site <- gl(3,1,12,labels=c("head/neck","trunk","extremities"))
+data.frame(counts,type,site)
+summary(z <- glm(counts ~ type + site, family=poisson()))
+
+## Randomized Controlled Trial (Page 93)
+counts <- c(18,17,15, 20,10,20, 25,13,12)
+outcome   <- gl(3, 1, length(counts))
+treatment <- gl(3, 3)
+summary(z <- glm(counts ~ outcome + treatment, family=poisson()))
+
+## Peptic Ulcers and Blood Groups
+counts <- c(579, 4219, 911, 4578, 246, 3775, 361, 4532, 291, 5261, 396, 6598)
+group <- gl(2, 1, 12, labels=c("cases","controls"))
+blood <- gl(2, 2, 12, labels=c("A","O"))
+city  <- gl(3, 4, 12, labels=c("London","Manchester","Newcastle"))
+cbind(group, blood, city, counts) # gives internal codes for the factors
+
+summary(z1 <- glm(counts ~ group*(city + blood), family=poisson()))
+summary(z2 <- glm(counts ~ group*city + blood, family=poisson()),
+        correlation = TRUE)
+anova(z2, z1, test = "Chisq")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/demo/nlm.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/demo/nlm.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/demo/nlm.R	(revision 2476)
@@ -0,0 +1,97 @@
+#  Copyright (C) 1997-2009 The R Core Team
+
+### Helical Valley Function
+### Page 362 Dennis + Schnabel
+
+require(stats); require(graphics)
+
+theta <- function(x1,x2) (atan(x2/x1) + (if(x1 <= 0) pi else 0))/ (2*pi)
+## but this is easier :
+theta <- function(x1,x2) atan2(x2, x1)/(2*pi)
+
+f <- function(x) {
+    f1 <- 10*(x[3] - 10*theta(x[1],x[2]))
+    f2 <- 10*(sqrt(x[1]^2+x[2]^2)-1)
+    f3 <- x[3]
+    return(f1^2+f2^2+f3^2)
+}
+
+## explore surface {at x3 = 0}
+x <- seq(-1, 2, length.out=50)
+y <- seq(-1, 1, length.out=50)
+z <- apply(as.matrix(expand.grid(x, y)), 1, function(x) f(c(x, 0)))
+contour(x, y, matrix(log10(z), 50, 50))
+str(nlm.f <- nlm(f, c(-1,0,0), hessian = TRUE))
+points(rbind(nlm.f$estim[1:2]), col = "red", pch = 20)
+
+### the Rosenbrock banana valley function
+
+fR <- function(x)
+{
+    x1 <- x[1]; x2 <- x[2]
+    100*(x2 - x1*x1)^2 + (1-x1)^2
+}
+
+## explore surface
+fx <- function(x)
+{   ## `vectorized' version of fR()
+    x1 <- x[,1]; x2 <- x[,2]
+    100*(x2 - x1*x1)^2 + (1-x1)^2
+}
+x <- seq(-2, 2, length.out=100)
+y <- seq(-0.5, 1.5, length.out=100)
+z <- fx(expand.grid(x, y))
+op <- par(mfrow = c(2,1), mar = 0.1 + c(3,3,0,0))
+contour(x, y, matrix(log10(z), length(x)))
+
+str(nlm.f2 <- nlm(fR, c(-1.2, 1), hessian = TRUE))
+points(rbind(nlm.f2$estim[1:2]), col = "red", pch = 20)
+
+## Zoom in :
+rect(0.9, 0.9, 1.1, 1.1, border = "orange", lwd = 2)
+x <- y <- seq(0.9, 1.1, length.out=100)
+z <- fx(expand.grid(x, y))
+contour(x, y, matrix(log10(z), length(x)))
+mtext("zoomed in");box(col = "orange")
+points(rbind(nlm.f2$estim[1:2]), col = "red", pch = 20)
+par(op)
+
+
+fg <- function(x)
+{
+    gr <- function(x1, x2) {
+        c(-400*x1*(x2 - x1*x1)-2*(1-x1), 200*(x2 - x1*x1))
+    }
+    x1 <- x[1]; x2 <- x[2]
+    res<- 100*(x2 - x1*x1)^2 + (1-x1)^2
+    attr(res, "gradient") <- gr(x1, x2)
+    return(res)
+}
+
+nlm(fg, c(-1.2, 1), hessian = TRUE)
+
+## or use deriv to find the derivatives
+
+fd <- deriv(~ 100*(x2 - x1*x1)^2 + (1-x1)^2, c("x1", "x2"))
+fdd <- function(x1, x2) {}
+body(fdd) <- fd
+nlm(function(x) fdd(x[1], x[2]), c(-1.2,1), hessian = TRUE)
+
+
+fgh <- function(x)
+{
+    gr <- function(x1, x2)
+        c(-400*x1*(x2 - x1*x1) - 2*(1-x1), 200*(x2 - x1*x1))
+    h <- function(x1, x2) {
+        a11 <- 2 - 400*x2 + 1200*x1*x1
+        a21 <- -400*x1
+        matrix(c(a11, a21, a21, 200), 2, 2)
+    }
+    x1 <- x[1]; x2 <- x[2]
+    res<- 100*(x2 - x1*x1)^2 + (1-x1)^2
+    attr(res, "gradient") <- gr(x1, x2)
+    attr(res, "hessian") <- h(x1, x2)
+    return(res)
+}
+
+nlm(fgh, c(-1.2,1), hessian = TRUE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/demo/smooth.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/demo/smooth.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/demo/smooth.R	(revision 2476)
@@ -0,0 +1,39 @@
+### This used to be in   example(smooth) before we had package-specific demos
+#  Copyright (C) 1997-2009 The R Core Team
+
+require(stats); require(graphics); require(datasets)
+op <- par(mfrow = c(1,1))
+
+## The help(smooth) examples:
+example(smooth, package="stats")
+
+## Didactical investigation:
+
+showSmooth <- function(x, leg.x = 1, leg.y = max(x)) {
+  ss <- cbind(x, "3c"  = smooth(x, "3", end="copy"),
+                 "3"   = smooth(x, "3"),
+                 "3Rc" = smooth(x, "3R", end="copy"),
+                 "3R"  = smooth(x, "3R"),
+              sm = smooth(x))
+  k <- ncol(ss) - 1
+  n <- length(x)
+  slwd <- c(1,1,4,1,3,2)
+  slty <- c(0, 2:(k+1))
+  matplot(ss, main = "Tukey Smoothers", ylab = "y ;  sm(y)",
+          type= c("p",rep("l",k)), pch= par("pch"), lwd= slwd, lty= slty)
+  legend(leg.x, leg.y,
+         c("Data",       "3   (copy)", "3  (Tukey)",
+                 "3R  (copy)", "3R (Tukey)", "smooth()"),
+         pch= c(par("pch"),rep(-1,k)), col=1:(k+1), lwd= slwd, lty= slty)
+  ss
+}
+
+## 4 simple didactical examples, showing different steps in smooth():
+
+for(x in list(c(4, 6, 2, 2, 6, 3, 6, 6, 5, 2),
+              c(3, 2, 1, 4, 5, 1, 3, 2, 4, 5, 2),
+              c(2, 4, 2, 6, 1, 1, 2, 6, 3, 1, 6),
+              x1))
+    print(t(showSmooth(x)))
+
+par(op)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/html/00Index.html	(revision 2476)
@@ -0,0 +1,1335 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: The R Stats Package</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> The R Stats Package
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;stats&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../demo">Code demos</a>.  Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="# "> </a>
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#G">G</a>
+<a href="#H">H</a>
+<a href="#I">I</a>
+<a href="#K">K</a>
+<a href="#L">L</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#O">O</a>
+<a href="#P">P</a>
+<a href="#Q">Q</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#U">U</a>
+<a href="#V">V</a>
+<a href="#W">W</a>
+<a href="#X">X</a>
+<a href="#misc">misc</a>
+</p>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="stats-package.html">stats-package</a></td>
+<td>The R Stats Package</td></tr>
+</table>
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="acf.html">acf</a></td>
+<td>Auto- and Cross- Covariance and -Correlation Function Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="acf2AR.html">acf2AR</a></td>
+<td>Compute an AR Process Exactly Fitting an ACF</td></tr>
+<tr><td style="width: 25%;"><a href="factor.scope.html">add.scope</a></td>
+<td>Compute Allowed Changes in Adding to or Dropping from a Formula</td></tr>
+<tr><td style="width: 25%;"><a href="add1.html">add1</a></td>
+<td>Add or Drop All Possible Single Terms to a Model</td></tr>
+<tr><td style="width: 25%;"><a href="addmargins.html">addmargins</a></td>
+<td>Puts Arbitrary Margins on Multidimensional Tables or Arrays</td></tr>
+<tr><td style="width: 25%;"><a href="aggregate.html">aggregate</a></td>
+<td>Compute Summary Statistics of Data Subsets</td></tr>
+<tr><td style="width: 25%;"><a href="AIC.html">AIC</a></td>
+<td>Akaike's An Information Criterion</td></tr>
+<tr><td style="width: 25%;"><a href="alias.html">alias</a></td>
+<td>Find Aliases (Dependencies) in a Model</td></tr>
+<tr><td style="width: 25%;"><a href="anova.html">anova</a></td>
+<td>Anova Tables</td></tr>
+<tr><td style="width: 25%;"><a href="anova.glm.html">anova.glm</a></td>
+<td>Analysis of Deviance for Generalized Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="anova.lm.html">anova.lm</a></td>
+<td>ANOVA for Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="anova.mlm.html">anova.mlm</a></td>
+<td>Comparisons between Multivariate Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="ansari.test.html">ansari.test</a></td>
+<td>Ansari-Bradley Test</td></tr>
+<tr><td style="width: 25%;"><a href="aov.html">aov</a></td>
+<td>Fit an Analysis of Variance Model</td></tr>
+<tr><td style="width: 25%;"><a href="approxfun.html">approx</a></td>
+<td>Interpolation Functions</td></tr>
+<tr><td style="width: 25%;"><a href="approxfun.html">approxfun</a></td>
+<td>Interpolation Functions</td></tr>
+<tr><td style="width: 25%;"><a href="ar.html">ar</a></td>
+<td>Fit Autoregressive Models to Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="ar.html">ar.burg</a></td>
+<td>Fit Autoregressive Models to Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="ar.html">ar.burg.default</a></td>
+<td>Fit Autoregressive Models to Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="ar.html">ar.mle</a></td>
+<td>Fit Autoregressive Models to Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="ar.ols.html">ar.ols</a></td>
+<td>Fit Autoregressive Models to Time Series by OLS</td></tr>
+<tr><td style="width: 25%;"><a href="ar.html">ar.yw</a></td>
+<td>Fit Autoregressive Models to Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="ar.html">ar.yw.default</a></td>
+<td>Fit Autoregressive Models to Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="arima.html">arima</a></td>
+<td>ARIMA Modelling of Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="arima.sim.html">arima.sim</a></td>
+<td>Simulate from an ARIMA Model</td></tr>
+<tr><td style="width: 25%;"><a href="arima0.html">arima0</a></td>
+<td>ARIMA Modelling of Time Series - Preliminary Version</td></tr>
+<tr><td style="width: 25%;"><a href="ARMAacf.html">ARMAacf</a></td>
+<td>Compute Theoretical ACF for an ARMA Process</td></tr>
+<tr><td style="width: 25%;"><a href="ARMAtoMA.html">ARMAtoMA</a></td>
+<td>Convert ARMA Process to Infinite MA Process</td></tr>
+<tr><td style="width: 25%;"><a href="dendrogram.html">as.dendrogram</a></td>
+<td>General Tree Structures</td></tr>
+<tr><td style="width: 25%;"><a href="dist.html">as.dist</a></td>
+<td>Distance Matrix Computation</td></tr>
+<tr><td style="width: 25%;"><a href="formula.html">as.formula</a></td>
+<td>Model Formulae</td></tr>
+<tr><td style="width: 25%;"><a href="as.hclust.html">as.hclust</a></td>
+<td>Convert Objects to Class hclust</td></tr>
+<tr><td style="width: 25%;"><a href="dendrogram.html">as.hclust.dendrogram</a></td>
+<td>General Tree Structures</td></tr>
+<tr><td style="width: 25%;"><a href="dist.html">as.matrix.dist</a></td>
+<td>Distance Matrix Computation</td></tr>
+<tr><td style="width: 25%;"><a href="stepfun.html">as.stepfun</a></td>
+<td>Step Functions - Creation and Class</td></tr>
+<tr><td style="width: 25%;"><a href="ts.html">as.ts</a></td>
+<td>Time-Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="asOneSidedFormula.html">asOneSidedFormula</a></td>
+<td>Convert to One-Sided Formula</td></tr>
+<tr><td style="width: 25%;"><a href="ave.html">ave</a></td>
+<td>Group Averages Over Level Combinations of Factors</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="kernel.html">bandwidth.kernel</a></td>
+<td>Smoothing Kernel Objects</td></tr>
+<tr><td style="width: 25%;"><a href="bartlett.test.html">bartlett.test</a></td>
+<td>Bartlett Test of Homogeneity of Variances</td></tr>
+<tr><td style="width: 25%;"><a href="Beta.html">Beta</a></td>
+<td>The Beta Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="AIC.html">BIC</a></td>
+<td>Akaike's An Information Criterion</td></tr>
+<tr><td style="width: 25%;"><a href="binom.test.html">binom.test</a></td>
+<td>Exact Binomial Test</td></tr>
+<tr><td style="width: 25%;"><a href="Binomial.html">Binomial</a></td>
+<td>The Binomial Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="family.html">binomial</a></td>
+<td>Family Objects for Models</td></tr>
+<tr><td style="width: 25%;"><a href="biplot.html">biplot</a></td>
+<td>Biplot of Multivariate Data</td></tr>
+<tr><td style="width: 25%;"><a href="biplot.princomp.html">biplot.princomp</a></td>
+<td>Biplot for Principal Components</td></tr>
+<tr><td style="width: 25%;"><a href="box.test.html">Box.test</a></td>
+<td>Box-Pierce and Ljung-Box Tests</td></tr>
+<tr><td style="width: 25%;"><a href="bandwidth.html">bw.bcv</a></td>
+<td>Bandwidth Selectors for Kernel Density Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="bandwidth.html">bw.nrd</a></td>
+<td>Bandwidth Selectors for Kernel Density Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="bandwidth.html">bw.nrd0</a></td>
+<td>Bandwidth Selectors for Kernel Density Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="bandwidth.html">bw.SJ</a></td>
+<td>Bandwidth Selectors for Kernel Density Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="bandwidth.html">bw.ucv</a></td>
+<td>Bandwidth Selectors for Kernel Density Estimation</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="zC.html">C</a></td>
+<td>Sets Contrasts for a Factor</td></tr>
+<tr><td style="width: 25%;"><a href="cancor.html">cancor</a></td>
+<td>Canonical Correlations</td></tr>
+<tr><td style="width: 25%;"><a href="case.names.html">case.names</a></td>
+<td>Case and Variable Names of Fitted Models</td></tr>
+<tr><td style="width: 25%;"><a href="case.names.html">case.names.lm</a></td>
+<td>Case and Variable Names of Fitted Models</td></tr>
+<tr><td style="width: 25%;"><a href="Cauchy.html">Cauchy</a></td>
+<td>The Cauchy Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="ts.html">cbind.ts</a></td>
+<td>Time-Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="acf.html">ccf</a></td>
+<td>Auto- and Cross- Covariance and -Correlation Function Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="chisq.test.html">chisq.test</a></td>
+<td>Pearson's Chi-squared Test for Count Data</td></tr>
+<tr><td style="width: 25%;"><a href="Chisquare.html">Chisquare</a></td>
+<td>The (non-central) Chi-Squared Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="cmdscale.html">cmdscale</a></td>
+<td>Classical (Metric) Multidimensional Scaling</td></tr>
+<tr><td style="width: 25%;"><a href="coef.html">coef</a></td>
+<td>Extract Model Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="coef.html">coefficients</a></td>
+<td>Extract Model Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="complete.cases.html">complete.cases</a></td>
+<td>Find Complete Cases</td></tr>
+<tr><td style="width: 25%;"><a href="confint.html">confint</a></td>
+<td>Confidence Intervals for Model Parameters</td></tr>
+<tr><td style="width: 25%;"><a href="constrOptim.html">constrOptim</a></td>
+<td>Linearly Constrained Optimization</td></tr>
+<tr><td style="width: 25%;"><a href="contrast.html">contr.helmert</a></td>
+<td>(Possibly Sparse) Contrast Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="contrast.html">contr.poly</a></td>
+<td>(Possibly Sparse) Contrast Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="contrast.html">contr.SAS</a></td>
+<td>(Possibly Sparse) Contrast Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="contrast.html">contr.sum</a></td>
+<td>(Possibly Sparse) Contrast Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="contrast.html">contr.treatment</a></td>
+<td>(Possibly Sparse) Contrast Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="contrasts.html">contrasts</a></td>
+<td>Get and Set Contrast Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="convolve.html">convolve</a></td>
+<td>Convolution of Sequences via FFT</td></tr>
+<tr><td style="width: 25%;"><a href="influence.measures.html">cooks.distance</a></td>
+<td>Regression Deletion Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="influence.measures.html">cooks.distance.lm</a></td>
+<td>Regression Deletion Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="cophenetic.html">cophenetic</a></td>
+<td>Cophenetic Distances for a Hierarchical Clustering</td></tr>
+<tr><td style="width: 25%;"><a href="cor.html">cor</a></td>
+<td>Correlation, Variance and Covariance (Matrices)</td></tr>
+<tr><td style="width: 25%;"><a href="cor.test.html">cor.test</a></td>
+<td>Test for Association/Correlation Between Paired Samples</td></tr>
+<tr><td style="width: 25%;"><a href="cor.html">cov</a></td>
+<td>Correlation, Variance and Covariance (Matrices)</td></tr>
+<tr><td style="width: 25%;"><a href="cov.wt.html">cov.wt</a></td>
+<td>Weighted Covariance Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="cor.html">cov2cor</a></td>
+<td>Correlation, Variance and Covariance (Matrices)</td></tr>
+<tr><td style="width: 25%;"><a href="influence.measures.html">covratio</a></td>
+<td>Regression Deletion Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="cpgram.html">cpgram</a></td>
+<td>Plot Cumulative Periodogram</td></tr>
+<tr><td style="width: 25%;"><a href="dendrogram.html">cut.dendrogram</a></td>
+<td>General Tree Structures</td></tr>
+<tr><td style="width: 25%;"><a href="cutree.html">cutree</a></td>
+<td>Cut a Tree into Groups of Data</td></tr>
+<tr><td style="width: 25%;"><a href="time.html">cycle</a></td>
+<td>Sampling Times of Time Series</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="deriv.html">D</a></td>
+<td>Symbolic and Algorithmic Derivatives of Simple Expressions</td></tr>
+<tr><td style="width: 25%;"><a href="Beta.html">dbeta</a></td>
+<td>The Beta Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Binomial.html">dbinom</a></td>
+<td>The Binomial Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Cauchy.html">dcauchy</a></td>
+<td>The Cauchy Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Chisquare.html">dchisq</a></td>
+<td>The (non-central) Chi-Squared Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="decompose.html">decompose</a></td>
+<td>Classical Seasonal Decomposition by Moving Averages</td></tr>
+<tr><td style="width: 25%;"><a href="delete.response.html">delete.response</a></td>
+<td>Modify Terms Objects</td></tr>
+<tr><td style="width: 25%;"><a href="time.html">deltat</a></td>
+<td>Sampling Times of Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="dendrapply.html">dendrapply</a></td>
+<td>Apply a Function to All Nodes of a Dendrogram</td></tr>
+<tr><td style="width: 25%;"><a href="dendrogram.html">dendrogram</a></td>
+<td>General Tree Structures</td></tr>
+<tr><td style="width: 25%;"><a href="density.html">density</a></td>
+<td>Kernel Density Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="deriv.html">deriv</a></td>
+<td>Symbolic and Algorithmic Derivatives of Simple Expressions</td></tr>
+<tr><td style="width: 25%;"><a href="deriv.html">deriv3</a></td>
+<td>Symbolic and Algorithmic Derivatives of Simple Expressions</td></tr>
+<tr><td style="width: 25%;"><a href="deviance.html">deviance</a></td>
+<td>Model Deviance</td></tr>
+<tr><td style="width: 25%;"><a href="Exponential.html">dexp</a></td>
+<td>The Exponential Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Fdist.html">df</a></td>
+<td>The F Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="kernel.html">df.kernel</a></td>
+<td>Smoothing Kernel Objects</td></tr>
+<tr><td style="width: 25%;"><a href="df.residual.html">df.residual</a></td>
+<td>Residual Degrees-of-Freedom</td></tr>
+<tr><td style="width: 25%;"><a href="influence.measures.html">dfbeta</a></td>
+<td>Regression Deletion Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="influence.measures.html">dfbetas</a></td>
+<td>Regression Deletion Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="influence.measures.html">dffits</a></td>
+<td>Regression Deletion Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="GammaDist.html">dgamma</a></td>
+<td>The Gamma Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Geometric.html">dgeom</a></td>
+<td>The Geometric Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Hypergeometric.html">dhyper</a></td>
+<td>The Hypergeometric Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="ts-methods.html">diff.ts</a></td>
+<td>Methods for Time Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="diffinv.html">diffinv</a></td>
+<td>Discrete Integration: Inverse of Differencing</td></tr>
+<tr><td style="width: 25%;"><a href="dist.html">dist</a></td>
+<td>Distance Matrix Computation</td></tr>
+<tr><td style="width: 25%;"><a href="Distributions.html">distribution</a></td>
+<td>Distributions in the stats package</td></tr>
+<tr><td style="width: 25%;"><a href="Distributions.html">Distributions</a></td>
+<td>Distributions in the stats package</td></tr>
+<tr><td style="width: 25%;"><a href="Distributions.html">distributions</a></td>
+<td>Distributions in the stats package</td></tr>
+<tr><td style="width: 25%;"><a href="Lognormal.html">dlnorm</a></td>
+<td>The Log Normal Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Logistic.html">dlogis</a></td>
+<td>The Logistic Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Multinom.html">dmultinom</a></td>
+<td>The Multinomial Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="NegBinomial.html">dnbinom</a></td>
+<td>The Negative Binomial Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Normal.html">dnorm</a></td>
+<td>The Normal Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Poisson.html">dpois</a></td>
+<td>The Poisson Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="factor.scope.html">drop.scope</a></td>
+<td>Compute Allowed Changes in Adding to or Dropping from a Formula</td></tr>
+<tr><td style="width: 25%;"><a href="delete.response.html">drop.terms</a></td>
+<td>Modify Terms Objects</td></tr>
+<tr><td style="width: 25%;"><a href="add1.html">drop1</a></td>
+<td>Add or Drop All Possible Single Terms to a Model</td></tr>
+<tr><td style="width: 25%;"><a href="SignRank.html">dsignrank</a></td>
+<td>Distribution of the Wilcoxon Signed Rank Statistic</td></tr>
+<tr><td style="width: 25%;"><a href="TDist.html">dt</a></td>
+<td>The Student t Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="dummy.coef.html">dummy.coef</a></td>
+<td>Extract Coefficients in Original Coding</td></tr>
+<tr><td style="width: 25%;"><a href="dummy.coef.html">dummy.coef.lm</a></td>
+<td>Extract Coefficients in Original Coding</td></tr>
+<tr><td style="width: 25%;"><a href="Uniform.html">dunif</a></td>
+<td>The Uniform Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Weibull.html">dweibull</a></td>
+<td>The Weibull Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Wilcoxon.html">dwilcox</a></td>
+<td>Distribution of the Wilcoxon Rank Sum Statistic</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="ecdf.html">ecdf</a></td>
+<td>Empirical Cumulative Distribution Function</td></tr>
+<tr><td style="width: 25%;"><a href="eff.aovlist.html">eff.aovlist</a></td>
+<td>Compute Efficiencies of Multistratum Analysis of Variance</td></tr>
+<tr><td style="width: 25%;"><a href="effects.html">effects</a></td>
+<td>Effects from Fitted Model</td></tr>
+<tr><td style="width: 25%;"><a href="embed.html">embed</a></td>
+<td>Embedding a Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="start.html">end</a></td>
+<td>Encode the Terminal Times of Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="aov.html">Error</a></td>
+<td>Fit an Analysis of Variance Model</td></tr>
+<tr><td style="width: 25%;"><a href="SSD.html">estVar</a></td>
+<td>SSD Matrix and Estimated Variance Matrix in Multivariate Models</td></tr>
+<tr><td style="width: 25%;"><a href="expand.model.frame.html">expand.model.frame</a></td>
+<td>Add new variables to a model frame</td></tr>
+<tr><td style="width: 25%;"><a href="Exponential.html">Exponential</a></td>
+<td>The Exponential Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="extractAIC.html">extractAIC</a></td>
+<td>Extract AIC from a Fitted Model</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="factanal.html">factanal</a></td>
+<td>Factor Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="factor.scope.html">factor.scope</a></td>
+<td>Compute Allowed Changes in Adding to or Dropping from a Formula</td></tr>
+<tr><td style="width: 25%;"><a href="family.html">family</a></td>
+<td>Family Objects for Models</td></tr>
+<tr><td style="width: 25%;"><a href="glm.summaries.html">family.glm</a></td>
+<td>Accessing Generalized Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="lm.summaries.html">family.lm</a></td>
+<td>Accessing Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="Fdist.html">FDist</a></td>
+<td>The F Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="fft.html">fft</a></td>
+<td>Fast Discrete Fourier Transform (FFT)</td></tr>
+<tr><td style="width: 25%;"><a href="filter.html">filter</a></td>
+<td>Linear Filtering on a Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="fisher.test.html">fisher.test</a></td>
+<td>Fisher's Exact Test for Count Data</td></tr>
+<tr><td style="width: 25%;"><a href="kmeans.html">fitted.kmeans</a></td>
+<td>K-Means Clustering</td></tr>
+<tr><td style="width: 25%;"><a href="fitted.values.html">fitted.values</a></td>
+<td>Extract Model Fitted Values</td></tr>
+<tr><td style="width: 25%;"><a href="fivenum.html">fivenum</a></td>
+<td>Tukey Five-Number Summaries</td></tr>
+<tr><td style="width: 25%;"><a href="fligner.test.html">fligner.test</a></td>
+<td>Fligner-Killeen Test of Homogeneity of Variances</td></tr>
+<tr><td style="width: 25%;"><a href="dist.html">format.dist</a></td>
+<td>Distance Matrix Computation</td></tr>
+<tr><td style="width: 25%;"><a href="read.ftable.html">format.ftable</a></td>
+<td>Manipulate Flat Contingency Tables</td></tr>
+<tr><td style="width: 25%;"><a href="formula.html">formula</a></td>
+<td>Model Formulae</td></tr>
+<tr><td style="width: 25%;"><a href="lm.summaries.html">formula.lm</a></td>
+<td>Accessing Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="formula.nls.html">formula.nls</a></td>
+<td>Extract Model Formula from nls Object</td></tr>
+<tr><td style="width: 25%;"><a href="time.html">frequency</a></td>
+<td>Sampling Times of Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="friedman.test.html">friedman.test</a></td>
+<td>Friedman Rank Sum Test</td></tr>
+<tr><td style="width: 25%;"><a href="ftable.html">ftable</a></td>
+<td>Flat Contingency Tables</td></tr>
+<tr><td style="width: 25%;"><a href="ftable.formula.html">ftable.formula</a></td>
+<td>Formula Notation for Flat Contingency Tables</td></tr>
+</table>
+
+<h2><a name="G">-- G --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="family.html">Gamma</a></td>
+<td>Family Objects for Models</td></tr>
+<tr><td style="width: 25%;"><a href="GammaDist.html">GammaDist</a></td>
+<td>The Gamma Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="family.html">gaussian</a></td>
+<td>Family Objects for Models</td></tr>
+<tr><td style="width: 25%;"><a href="Geometric.html">Geometric</a></td>
+<td>The Geometric Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="update.html">getCall</a></td>
+<td>Update and Re-fit a Model Call</td></tr>
+<tr><td style="width: 25%;"><a href="getInitial.html">getInitial</a></td>
+<td>Get Initial Parameter Estimates</td></tr>
+<tr><td style="width: 25%;"><a href="model.frame.html">get_all_vars</a></td>
+<td>Extracting the Model Frame from a Formula or Fit</td></tr>
+<tr><td style="width: 25%;"><a href="glm.html">glm</a></td>
+<td>Fitting Generalized Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="glm.control.html">glm.control</a></td>
+<td>Auxiliary for Controlling GLM Fitting</td></tr>
+</table>
+
+<h2><a name="H">-- H --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="tsp.html">hasTsp</a></td>
+<td>Tsp Attribute of Time-Series-like Objects</td></tr>
+<tr><td style="width: 25%;"><a href="influence.measures.html">hat</a></td>
+<td>Regression Deletion Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="influence.measures.html">hatvalues</a></td>
+<td>Regression Deletion Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="hclust.html">hclust</a></td>
+<td>Hierarchical Clustering</td></tr>
+<tr><td style="width: 25%;"><a href="heatmap.html">heatmap</a></td>
+<td>Draw a Heat Map</td></tr>
+<tr><td style="width: 25%;"><a href="HoltWinters.html">HoltWinters</a></td>
+<td>Holt-Winters Filtering</td></tr>
+<tr><td style="width: 25%;"><a href="Hypergeometric.html">Hypergeometric</a></td>
+<td>The Hypergeometric Distribution</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="identify.hclust.html">identify.hclust</a></td>
+<td>Identify Clusters in a Dendrogram</td></tr>
+<tr><td style="width: 25%;"><a href="lm.influence.html">influence</a></td>
+<td>Regression Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="influence.measures.html">influence.measures</a></td>
+<td>Regression Deletion Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="integrate.html">integrate</a></td>
+<td>Integration of One-Dimensional Functions</td></tr>
+<tr><td style="width: 25%;"><a href="interaction.plot.html">interaction.plot</a></td>
+<td>Two-way Interaction Plot</td></tr>
+<tr><td style="width: 25%;"><a href="family.html">inverse.gaussian</a></td>
+<td>Family Objects for Models</td></tr>
+<tr><td style="width: 25%;"><a href="IQR.html">IQR</a></td>
+<td>The Interquartile Range</td></tr>
+<tr><td style="width: 25%;"><a href="is.empty.html">is.empty.model</a></td>
+<td>Test if a Model's Formula is Empty</td></tr>
+<tr><td style="width: 25%;"><a href="dendrogram.html">is.leaf</a></td>
+<td>General Tree Structures</td></tr>
+<tr><td style="width: 25%;"><a href="ts.html">is.mts</a></td>
+<td>Time-Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="stepfun.html">is.stepfun</a></td>
+<td>Step Functions - Creation and Class</td></tr>
+<tr><td style="width: 25%;"><a href="ts.html">is.ts</a></td>
+<td>Time-Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="kernel.html">is.tskernel</a></td>
+<td>Smoothing Kernel Objects</td></tr>
+<tr><td style="width: 25%;"><a href="isoreg.html">isoreg</a></td>
+<td>Isotonic / Monotone Regression</td></tr>
+</table>
+
+<h2><a name="K">-- K --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="KalmanLike.html">KalmanForecast</a></td>
+<td>Kalman Filtering</td></tr>
+<tr><td style="width: 25%;"><a href="KalmanLike.html">KalmanLike</a></td>
+<td>Kalman Filtering</td></tr>
+<tr><td style="width: 25%;"><a href="KalmanLike.html">KalmanRun</a></td>
+<td>Kalman Filtering</td></tr>
+<tr><td style="width: 25%;"><a href="KalmanLike.html">KalmanSmooth</a></td>
+<td>Kalman Filtering</td></tr>
+<tr><td style="width: 25%;"><a href="kernapply.html">kernapply</a></td>
+<td>Apply Smoothing Kernel</td></tr>
+<tr><td style="width: 25%;"><a href="kernel.html">kernel</a></td>
+<td>Smoothing Kernel Objects</td></tr>
+<tr><td style="width: 25%;"><a href="kmeans.html">kmeans</a></td>
+<td>K-Means Clustering</td></tr>
+<tr><td style="width: 25%;"><a href="stepfun.html">knots</a></td>
+<td>Step Functions - Creation and Class</td></tr>
+<tr><td style="width: 25%;"><a href="kruskal.test.html">kruskal.test</a></td>
+<td>Kruskal-Wallis Rank Sum Test</td></tr>
+<tr><td style="width: 25%;"><a href="ks.test.html">ks.test</a></td>
+<td>Kolmogorov-Smirnov Tests</td></tr>
+<tr><td style="width: 25%;"><a href="ksmooth.html">ksmooth</a></td>
+<td>Kernel Regression Smoother</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="order.dendrogram.html">labels.dendrogram</a></td>
+<td>Ordering or Labels of the Leaves in a Dendrogram</td></tr>
+<tr><td style="width: 25%;"><a href="dist.html">labels.dist</a></td>
+<td>Distance Matrix Computation</td></tr>
+<tr><td style="width: 25%;"><a href="lm.summaries.html">labels.lm</a></td>
+<td>Accessing Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="terms.html">labels.terms</a></td>
+<td>Model Terms</td></tr>
+<tr><td style="width: 25%;"><a href="lag.html">lag</a></td>
+<td>Lag a Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="lag.plot.html">lag.plot</a></td>
+<td>Time Series Lag Plots</td></tr>
+<tr><td style="width: 25%;"><a href="line.html">line</a></td>
+<td>Robust Line Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="plot.isoreg.html">lines.isoreg</a></td>
+<td>Plot Method for isoreg Objects</td></tr>
+<tr><td style="width: 25%;"><a href="plot.stepfun.html">lines.stepfun</a></td>
+<td>Plot Step Functions</td></tr>
+<tr><td style="width: 25%;"><a href="plot.ts.html">lines.ts</a></td>
+<td>Plotting Time-Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="listof.html">listof</a></td>
+<td>A Class for Lists of (Parts of) Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="lm.html">lm</a></td>
+<td>Fitting Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="lmfit.html">lm.fit</a></td>
+<td>Fitter Functions for Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="lm.influence.html">lm.influence</a></td>
+<td>Regression Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="lmfit.html">lm.wfit</a></td>
+<td>Fitter Functions for Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="loadings.html">loadings</a></td>
+<td>Print Loadings in Factor Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="loess.html">loess</a></td>
+<td>Local Polynomial Regression Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="loess.control.html">loess.control</a></td>
+<td>Set Parameters for Loess</td></tr>
+<tr><td style="width: 25%;"><a href="scatter.smooth.html">loess.smooth</a></td>
+<td>Scatter Plot with Smooth Curve Fitted by Loess</td></tr>
+<tr><td style="width: 25%;"><a href="Logistic.html">Logistic</a></td>
+<td>The Logistic Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.html">logLik</a></td>
+<td>Extract Log-Likelihood</td></tr>
+<tr><td style="width: 25%;"><a href="loglin.html">loglin</a></td>
+<td>Fitting Log-Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="Lognormal.html">Lognormal</a></td>
+<td>The Log Normal Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="lowess.html">lowess</a></td>
+<td>Scatter Plot Smoothing</td></tr>
+<tr><td style="width: 25%;"><a href="ls.diag.html">ls.diag</a></td>
+<td>Compute Diagnostics for 'lsfit' Regression Results</td></tr>
+<tr><td style="width: 25%;"><a href="ls.print.html">ls.print</a></td>
+<td>Print 'lsfit' Regression Results</td></tr>
+<tr><td style="width: 25%;"><a href="lsfit.html">lsfit</a></td>
+<td>Find the Least Squares Fit</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="mad.html">mad</a></td>
+<td>Median Absolute Deviation</td></tr>
+<tr><td style="width: 25%;"><a href="mahalanobis.html">mahalanobis</a></td>
+<td>Mahalanobis Distance</td></tr>
+<tr><td style="width: 25%;"><a href="make.link.html">make.link</a></td>
+<td>Create a Link for GLM Families</td></tr>
+<tr><td style="width: 25%;"><a href="KalmanLike.html">makeARIMA</a></td>
+<td>Kalman Filtering</td></tr>
+<tr><td style="width: 25%;"><a href="makepredictcall.html">makepredictcall</a></td>
+<td>Utility Function for Safe Prediction</td></tr>
+<tr><td style="width: 25%;"><a href="poly.html">makepredictcall.poly</a></td>
+<td>Compute Orthogonal Polynomials</td></tr>
+<tr><td style="width: 25%;"><a href="manova.html">manova</a></td>
+<td>Multivariate Analysis of Variance</td></tr>
+<tr><td style="width: 25%;"><a href="mantelhaen.test.html">mantelhaen.test</a></td>
+<td>Cochran-Mantel-Haenszel Chi-Squared Test for Count Data</td></tr>
+<tr><td style="width: 25%;"><a href="mauchly.test.html">mauchly.test</a></td>
+<td>Mauchly's Test of Sphericity</td></tr>
+<tr><td style="width: 25%;"><a href="mcnemar.test.html">mcnemar.test</a></td>
+<td>McNemar's Chi-squared Test for Count Data</td></tr>
+<tr><td style="width: 25%;"><a href="median.html">median</a></td>
+<td>Median Value</td></tr>
+<tr><td style="width: 25%;"><a href="medpolish.html">medpolish</a></td>
+<td>Median Polish (Robust Twoway Decomposition) of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="dendrogram.html">merge.dendrogram</a></td>
+<td>General Tree Structures</td></tr>
+<tr><td style="width: 25%;"><a href="model.extract.html">model.extract</a></td>
+<td>Extract Components from a Model Frame</td></tr>
+<tr><td style="width: 25%;"><a href="model.frame.html">model.frame</a></td>
+<td>Extracting the Model Frame from a Formula or Fit</td></tr>
+<tr><td style="width: 25%;"><a href="model.matrix.html">model.matrix</a></td>
+<td>Construct Design Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="model.extract.html">model.offset</a></td>
+<td>Extract Components from a Model Frame</td></tr>
+<tr><td style="width: 25%;"><a href="model.extract.html">model.response</a></td>
+<td>Extract Components from a Model Frame</td></tr>
+<tr><td style="width: 25%;"><a href="model.tables.html">model.tables</a></td>
+<td>Compute Tables of Results from an Aov Model Fit</td></tr>
+<tr><td style="width: 25%;"><a href="model.extract.html">model.weights</a></td>
+<td>Extract Components from a Model Frame</td></tr>
+<tr><td style="width: 25%;"><a href="monthplot.html">monthplot</a></td>
+<td>Plot a Seasonal or other Subseries from a Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="mood.test.html">mood.test</a></td>
+<td>Mood Two-Sample Test of Scale</td></tr>
+<tr><td style="width: 25%;"><a href="Multinom.html">Multinomial</a></td>
+<td>The Multinomial Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="fft.html">mvfft</a></td>
+<td>Fast Discrete Fourier Transform (FFT)</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="na.action.html">na.action</a></td>
+<td>NA Action</td></tr>
+<tr><td style="width: 25%;"><a href="na.contiguous.html">na.contiguous</a></td>
+<td>Find Longest Contiguous Stretch of non-NAs</td></tr>
+<tr><td style="width: 25%;"><a href="na.fail.html">na.exclude</a></td>
+<td>Handle Missing Values in Objects</td></tr>
+<tr><td style="width: 25%;"><a href="na.fail.html">na.fail</a></td>
+<td>Handle Missing Values in Objects</td></tr>
+<tr><td style="width: 25%;"><a href="na.fail.html">na.omit</a></td>
+<td>Handle Missing Values in Objects</td></tr>
+<tr><td style="width: 25%;"><a href="ts-methods.html">na.omit.ts</a></td>
+<td>Methods for Time Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="na.fail.html">na.pass</a></td>
+<td>Handle Missing Values in Objects</td></tr>
+<tr><td style="width: 25%;"><a href="nafns.html">napredict</a></td>
+<td>Adjust for Missing Values</td></tr>
+<tr><td style="width: 25%;"><a href="naprint.html">naprint</a></td>
+<td>Adjust for Missing Values</td></tr>
+<tr><td style="width: 25%;"><a href="nafns.html">naresid</a></td>
+<td>Adjust for Missing Values</td></tr>
+<tr><td style="width: 25%;"><a href="NegBinomial.html">NegBinomial</a></td>
+<td>The Negative Binomial Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="nextn.html">nextn</a></td>
+<td>Highly Composite Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="nlm.html">nlm</a></td>
+<td>Non-Linear Minimization</td></tr>
+<tr><td style="width: 25%;"><a href="nlminb.html">nlminb</a></td>
+<td>Optimization using PORT routines</td></tr>
+<tr><td style="width: 25%;"><a href="nls.html">nls</a></td>
+<td>Nonlinear Least Squares</td></tr>
+<tr><td style="width: 25%;"><a href="nls.control.html">nls.control</a></td>
+<td>Control the Iterations in nls</td></tr>
+<tr><td style="width: 25%;"><a href="NLSstAsymptotic.html">NLSstAsymptotic</a></td>
+<td>Fit the Asymptotic Regression Model</td></tr>
+<tr><td style="width: 25%;"><a href="NLSstClosestX.html">NLSstClosestX</a></td>
+<td>Inverse Interpolation</td></tr>
+<tr><td style="width: 25%;"><a href="NLSstLfAsymptote.html">NLSstLfAsymptote</a></td>
+<td>Horizontal Asymptote on the Left Side</td></tr>
+<tr><td style="width: 25%;"><a href="NLSstRtAsymptote.html">NLSstRtAsymptote</a></td>
+<td>Horizontal Asymptote on the Right Side</td></tr>
+<tr><td style="width: 25%;"><a href="nobs.html">nobs</a></td>
+<td>Extract the Number of Observations from a Fit.</td></tr>
+<tr><td style="width: 25%;"><a href="dendrogram.html">nobs.dendrogram</a></td>
+<td>General Tree Structures</td></tr>
+<tr><td style="width: 25%;"><a href="Normal.html">Normal</a></td>
+<td>The Normal Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="numericDeriv.html">numericDeriv</a></td>
+<td>Evaluate Derivatives Numerically</td></tr>
+</table>
+
+<h2><a name="O">-- O --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="offset.html">offset</a></td>
+<td>Include an Offset in a Model Formula</td></tr>
+<tr><td style="width: 25%;"><a href="oneway.test.html">oneway.test</a></td>
+<td>Test for Equal Means in a One-Way Layout</td></tr>
+<tr><td style="width: 25%;"><a href="ts.html">Ops.ts</a></td>
+<td>Time-Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="optim.html">optim</a></td>
+<td>General-purpose Optimization</td></tr>
+<tr><td style="width: 25%;"><a href="optim.html">optimHess</a></td>
+<td>General-purpose Optimization</td></tr>
+<tr><td style="width: 25%;"><a href="optimize.html">optimise</a></td>
+<td>One Dimensional Optimization</td></tr>
+<tr><td style="width: 25%;"><a href="optimize.html">optimize</a></td>
+<td>One Dimensional Optimization</td></tr>
+<tr><td style="width: 25%;"><a href="order.dendrogram.html">order.dendrogram</a></td>
+<td>Ordering or Labels of the Leaves in a Dendrogram</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="p.adjust.html">p.adjust</a></td>
+<td>Adjust P-values for Multiple Comparisons</td></tr>
+<tr><td style="width: 25%;"><a href="p.adjust.html">p.adjust.methods</a></td>
+<td>Adjust P-values for Multiple Comparisons</td></tr>
+<tr><td style="width: 25%;"><a href="acf.html">pacf</a></td>
+<td>Auto- and Cross- Covariance and -Correlation Function Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="pairwise.prop.test.html">pairwise.prop.test</a></td>
+<td>Pairwise comparisons for proportions</td></tr>
+<tr><td style="width: 25%;"><a href="pairwise.t.test.html">pairwise.t.test</a></td>
+<td>Pairwise t tests</td></tr>
+<tr><td style="width: 25%;"><a href="pairwise.table.html">pairwise.table</a></td>
+<td>Tabulate p values for pairwise comparisons</td></tr>
+<tr><td style="width: 25%;"><a href="pairwise.wilcox.test.html">pairwise.wilcox.test</a></td>
+<td>Pairwise Wilcoxon Rank Sum Tests</td></tr>
+<tr><td style="width: 25%;"><a href="Beta.html">pbeta</a></td>
+<td>The Beta Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Binomial.html">pbinom</a></td>
+<td>The Binomial Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="birthday.html">pbirthday</a></td>
+<td>Probability of coincidences</td></tr>
+<tr><td style="width: 25%;"><a href="Cauchy.html">pcauchy</a></td>
+<td>The Cauchy Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Chisquare.html">pchisq</a></td>
+<td>The (non-central) Chi-Squared Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Exponential.html">pexp</a></td>
+<td>The Exponential Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Fdist.html">pf</a></td>
+<td>The F Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="GammaDist.html">pgamma</a></td>
+<td>The Gamma Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Geometric.html">pgeom</a></td>
+<td>The Geometric Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Hypergeometric.html">phyper</a></td>
+<td>The Hypergeometric Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="stats-deprecated.html">plclust</a></td>
+<td>Deprecated Functions in Package 'stats'</td></tr>
+<tr><td style="width: 25%;"><a href="Lognormal.html">plnorm</a></td>
+<td>The Log Normal Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Logistic.html">plogis</a></td>
+<td>The Logistic Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="plot.acf.html">plot.acf</a></td>
+<td>Plot Autocovariance and Autocorrelation Functions</td></tr>
+<tr><td style="width: 25%;"><a href="decompose.html">plot.decomposed.ts</a></td>
+<td>Classical Seasonal Decomposition by Moving Averages</td></tr>
+<tr><td style="width: 25%;"><a href="dendrogram.html">plot.dendrogram</a></td>
+<td>General Tree Structures</td></tr>
+<tr><td style="width: 25%;"><a href="plot.density.html">plot.density</a></td>
+<td>Plot Method for Kernel Density Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="ecdf.html">plot.ecdf</a></td>
+<td>Empirical Cumulative Distribution Function</td></tr>
+<tr><td style="width: 25%;"><a href="hclust.html">plot.hclust</a></td>
+<td>Hierarchical Clustering</td></tr>
+<tr><td style="width: 25%;"><a href="plot.HoltWinters.html">plot.HoltWinters</a></td>
+<td>Plot function for HoltWinters objects</td></tr>
+<tr><td style="width: 25%;"><a href="plot.isoreg.html">plot.isoreg</a></td>
+<td>Plot Method for isoreg Objects</td></tr>
+<tr><td style="width: 25%;"><a href="plot.lm.html">plot.lm</a></td>
+<td>Plot Diagnostics for an lm Object</td></tr>
+<tr><td style="width: 25%;"><a href="plot.ppr.html">plot.ppr</a></td>
+<td>Plot Ridge Functions for Projection Pursuit Regression Fit</td></tr>
+<tr><td style="width: 25%;"><a href="prcomp.html">plot.prcomp</a></td>
+<td>Principal Components Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="princomp.html">plot.princomp</a></td>
+<td>Principal Components Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="plot.profile.nls.html">plot.profile.nls</a></td>
+<td>Plot a profile.nls Object</td></tr>
+<tr><td style="width: 25%;"><a href="plot.spec.html">plot.spec</a></td>
+<td>Plotting Spectral Densities</td></tr>
+<tr><td style="width: 25%;"><a href="plot.spec.html">plot.spec.coherency</a></td>
+<td>Plotting Spectral Densities</td></tr>
+<tr><td style="width: 25%;"><a href="plot.stepfun.html">plot.stepfun</a></td>
+<td>Plot Step Functions</td></tr>
+<tr><td style="width: 25%;"><a href="stlmethods.html">plot.stl</a></td>
+<td>Methods for STL Objects</td></tr>
+<tr><td style="width: 25%;"><a href="plot.ts.html">plot.ts</a></td>
+<td>Plotting Time-Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="kernel.html">plot.tskernel</a></td>
+<td>Smoothing Kernel Objects</td></tr>
+<tr><td style="width: 25%;"><a href="NegBinomial.html">pnbinom</a></td>
+<td>The Negative Binomial Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Normal.html">pnorm</a></td>
+<td>The Normal Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Poisson.html">Poisson</a></td>
+<td>The Poisson Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="family.html">poisson</a></td>
+<td>Family Objects for Models</td></tr>
+<tr><td style="width: 25%;"><a href="poisson.test.html">poisson.test</a></td>
+<td>Exact Poisson tests</td></tr>
+<tr><td style="width: 25%;"><a href="poly.html">poly</a></td>
+<td>Compute Orthogonal Polynomials</td></tr>
+<tr><td style="width: 25%;"><a href="poly.html">polym</a></td>
+<td>Compute Orthogonal Polynomials</td></tr>
+<tr><td style="width: 25%;"><a href="power.html">power</a></td>
+<td>Create a Power Link Object</td></tr>
+<tr><td style="width: 25%;"><a href="power.anova.test.html">power.anova.test</a></td>
+<td>Power Calculations for Balanced One-Way Analysis of Variance Tests</td></tr>
+<tr><td style="width: 25%;"><a href="power.prop.test.html">power.prop.test</a></td>
+<td>Power Calculations for Two-Sample Test for Proportions</td></tr>
+<tr><td style="width: 25%;"><a href="power.t.test.html">power.t.test</a></td>
+<td>Power calculations for one and two sample t tests</td></tr>
+<tr><td style="width: 25%;"><a href="pp.test.html">PP.test</a></td>
+<td>Phillips-Perron Test for Unit Roots</td></tr>
+<tr><td style="width: 25%;"><a href="ppoints.html">ppoints</a></td>
+<td>Ordinates for Probability Plotting</td></tr>
+<tr><td style="width: 25%;"><a href="Poisson.html">ppois</a></td>
+<td>The Poisson Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="ppr.html">ppr</a></td>
+<td>Projection Pursuit Regression</td></tr>
+<tr><td style="width: 25%;"><a href="prcomp.html">prcomp</a></td>
+<td>Principal Components Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="predict.html">predict</a></td>
+<td>Model Predictions</td></tr>
+<tr><td style="width: 25%;"><a href="ar.html">predict.ar</a></td>
+<td>Fit Autoregressive Models to Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="predict.arima.html">predict.Arima</a></td>
+<td>Forecast from ARIMA fits</td></tr>
+<tr><td style="width: 25%;"><a href="arima0.html">predict.arima0</a></td>
+<td>ARIMA Modelling of Time Series - Preliminary Version</td></tr>
+<tr><td style="width: 25%;"><a href="predict.glm.html">predict.glm</a></td>
+<td>Predict Method for GLM Fits</td></tr>
+<tr><td style="width: 25%;"><a href="predict.HoltWinters.html">predict.HoltWinters</a></td>
+<td>Prediction Function for Fitted Holt-Winters Models</td></tr>
+<tr><td style="width: 25%;"><a href="predict.lm.html">predict.lm</a></td>
+<td>Predict method for Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="predict.loess.html">predict.loess</a></td>
+<td>Predict Loess Curve or Surface</td></tr>
+<tr><td style="width: 25%;"><a href="predict.nls.html">predict.nls</a></td>
+<td>Predicting from Nonlinear Least Squares Fits</td></tr>
+<tr><td style="width: 25%;"><a href="poly.html">predict.poly</a></td>
+<td>Compute Orthogonal Polynomials</td></tr>
+<tr><td style="width: 25%;"><a href="prcomp.html">predict.prcomp</a></td>
+<td>Principal Components Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="princomp.html">predict.princomp</a></td>
+<td>Principal Components Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="predict.smooth.spline.html">predict.smooth.spline</a></td>
+<td>Predict from Smoothing Spline Fit</td></tr>
+<tr><td style="width: 25%;"><a href="StructTS.html">predict.StructTS</a></td>
+<td>Fit Structural Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="preplot.html">preplot</a></td>
+<td>Pre-computations for a Plotting Object</td></tr>
+<tr><td style="width: 25%;"><a href="princomp.html">princomp</a></td>
+<td>Principal Components Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="aov.html">print.aov</a></td>
+<td>Fit an Analysis of Variance Model</td></tr>
+<tr><td style="width: 25%;"><a href="ar.html">print.ar</a></td>
+<td>Fit Autoregressive Models to Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="arima0.html">print.arima0</a></td>
+<td>ARIMA Modelling of Time Series - Preliminary Version</td></tr>
+<tr><td style="width: 25%;"><a href="dendrogram.html">print.dendrogram</a></td>
+<td>General Tree Structures</td></tr>
+<tr><td style="width: 25%;"><a href="dist.html">print.dist</a></td>
+<td>Distance Matrix Computation</td></tr>
+<tr><td style="width: 25%;"><a href="ecdf.html">print.ecdf</a></td>
+<td>Empirical Cumulative Distribution Function</td></tr>
+<tr><td style="width: 25%;"><a href="formula.html">print.formula</a></td>
+<td>Model Formulae</td></tr>
+<tr><td style="width: 25%;"><a href="read.ftable.html">print.ftable</a></td>
+<td>Manipulate Flat Contingency Tables</td></tr>
+<tr><td style="width: 25%;"><a href="hclust.html">print.hclust</a></td>
+<td>Hierarchical Clustering</td></tr>
+<tr><td style="width: 25%;"><a href="HoltWinters.html">print.HoltWinters</a></td>
+<td>Holt-Winters Filtering</td></tr>
+<tr><td style="width: 25%;"><a href="print.power.htest.html">print.htest</a></td>
+<td>Print Methods for Hypothesis Tests and Power Calculation Objects</td></tr>
+<tr><td style="width: 25%;"><a href="integrate.html">print.integrate</a></td>
+<td>Integration of One-Dimensional Functions</td></tr>
+<tr><td style="width: 25%;"><a href="kmeans.html">print.kmeans</a></td>
+<td>K-Means Clustering</td></tr>
+<tr><td style="width: 25%;"><a href="loadings.html">print.loadings</a></td>
+<td>Print Loadings in Factor Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="print.power.htest.html">print.power.htest</a></td>
+<td>Print Methods for Hypothesis Tests and Power Calculation Objects</td></tr>
+<tr><td style="width: 25%;"><a href="prcomp.html">print.prcomp</a></td>
+<td>Principal Components Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="princomp.html">print.princomp</a></td>
+<td>Principal Components Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="stepfun.html">print.stepfun</a></td>
+<td>Step Functions - Creation and Class</td></tr>
+<tr><td style="width: 25%;"><a href="StructTS.html">print.StructTS</a></td>
+<td>Fit Structural Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="summary.aov.html">print.summary.aov</a></td>
+<td>Summarize an Analysis of Variance Model</td></tr>
+<tr><td style="width: 25%;"><a href="summary.glm.html">print.summary.glm</a></td>
+<td>Summarizing Generalized Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="summary.lm.html">print.summary.lm</a></td>
+<td>Summarizing Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="summary.manova.html">print.summary.manova</a></td>
+<td>Summary Method for Multivariate Analysis of Variance</td></tr>
+<tr><td style="width: 25%;"><a href="summary.nls.html">print.summary.nls</a></td>
+<td>Summarizing Non-Linear Least-Squares Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="prcomp.html">print.summary.prcomp</a></td>
+<td>Principal Components Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="summary.princomp.html">print.summary.princomp</a></td>
+<td>Summary method for Principal Components Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="print.ts.html">print.ts</a></td>
+<td>Printing and Formatting of Time-Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="xtabs.html">print.xtabs</a></td>
+<td>Cross Tabulation</td></tr>
+<tr><td style="width: 25%;"><a href="printCoefmat.html">printCoefmat</a></td>
+<td>Print Coefficient Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="profile.html">profile</a></td>
+<td>Generic Function for Profiling Models</td></tr>
+<tr><td style="width: 25%;"><a href="profile.nls.html">profile.nls</a></td>
+<td>Method for Profiling nls Objects</td></tr>
+<tr><td style="width: 25%;"><a href="proj.html">proj</a></td>
+<td>Projections of Models</td></tr>
+<tr><td style="width: 25%;"><a href="varimax.html">promax</a></td>
+<td>Rotation Methods for Factor Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="prop.test.html">prop.test</a></td>
+<td>Test of Equal or Given Proportions</td></tr>
+<tr><td style="width: 25%;"><a href="prop.trend.test.html">prop.trend.test</a></td>
+<td>Test for trend in proportions</td></tr>
+<tr><td style="width: 25%;"><a href="SignRank.html">psignrank</a></td>
+<td>Distribution of the Wilcoxon Signed Rank Statistic</td></tr>
+<tr><td style="width: 25%;"><a href="TDist.html">pt</a></td>
+<td>The Student t Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Tukey.html">ptukey</a></td>
+<td>The Studentized Range Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Uniform.html">punif</a></td>
+<td>The Uniform Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Weibull.html">pweibull</a></td>
+<td>The Weibull Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Wilcoxon.html">pwilcox</a></td>
+<td>Distribution of the Wilcoxon Rank Sum Statistic</td></tr>
+</table>
+
+<h2><a name="Q">-- Q --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Beta.html">qbeta</a></td>
+<td>The Beta Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Binomial.html">qbinom</a></td>
+<td>The Binomial Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="birthday.html">qbirthday</a></td>
+<td>Probability of coincidences</td></tr>
+<tr><td style="width: 25%;"><a href="Cauchy.html">qcauchy</a></td>
+<td>The Cauchy Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Chisquare.html">qchisq</a></td>
+<td>The (non-central) Chi-Squared Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Exponential.html">qexp</a></td>
+<td>The Exponential Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Fdist.html">qf</a></td>
+<td>The F Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="GammaDist.html">qgamma</a></td>
+<td>The Gamma Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Geometric.html">qgeom</a></td>
+<td>The Geometric Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Hypergeometric.html">qhyper</a></td>
+<td>The Hypergeometric Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Lognormal.html">qlnorm</a></td>
+<td>The Log Normal Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Logistic.html">qlogis</a></td>
+<td>The Logistic Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="NegBinomial.html">qnbinom</a></td>
+<td>The Negative Binomial Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Normal.html">qnorm</a></td>
+<td>The Normal Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Poisson.html">qpois</a></td>
+<td>The Poisson Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="qqnorm.html">qqline</a></td>
+<td>Quantile-Quantile Plots</td></tr>
+<tr><td style="width: 25%;"><a href="qqnorm.html">qqnorm</a></td>
+<td>Quantile-Quantile Plots</td></tr>
+<tr><td style="width: 25%;"><a href="qqnorm.html">qqplot</a></td>
+<td>Quantile-Quantile Plots</td></tr>
+<tr><td style="width: 25%;"><a href="SignRank.html">qsignrank</a></td>
+<td>Distribution of the Wilcoxon Signed Rank Statistic</td></tr>
+<tr><td style="width: 25%;"><a href="TDist.html">qt</a></td>
+<td>The Student t Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Tukey.html">qtukey</a></td>
+<td>The Studentized Range Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="quade.test.html">quade.test</a></td>
+<td>Quade Test</td></tr>
+<tr><td style="width: 25%;"><a href="quantile.html">quantile</a></td>
+<td>Sample Quantiles</td></tr>
+<tr><td style="width: 25%;"><a href="ecdf.html">quantile.ecdf</a></td>
+<td>Empirical Cumulative Distribution Function</td></tr>
+<tr><td style="width: 25%;"><a href="family.html">quasi</a></td>
+<td>Family Objects for Models</td></tr>
+<tr><td style="width: 25%;"><a href="family.html">quasibinomial</a></td>
+<td>Family Objects for Models</td></tr>
+<tr><td style="width: 25%;"><a href="family.html">quasipoisson</a></td>
+<td>Family Objects for Models</td></tr>
+<tr><td style="width: 25%;"><a href="Uniform.html">qunif</a></td>
+<td>The Uniform Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Weibull.html">qweibull</a></td>
+<td>The Weibull Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Wilcoxon.html">qwilcox</a></td>
+<td>Distribution of the Wilcoxon Rank Sum Statistic</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="r2dtable.html">r2dtable</a></td>
+<td>Random 2-way Tables with Given Marginals</td></tr>
+<tr><td style="width: 25%;"><a href="Beta.html">rbeta</a></td>
+<td>The Beta Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Binomial.html">rbinom</a></td>
+<td>The Binomial Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Cauchy.html">rcauchy</a></td>
+<td>The Cauchy Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Chisquare.html">rchisq</a></td>
+<td>The (non-central) Chi-Squared Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="read.ftable.html">read.ftable</a></td>
+<td>Manipulate Flat Contingency Tables</td></tr>
+<tr><td style="width: 25%;"><a href="rect.hclust.html">rect.hclust</a></td>
+<td>Draw Rectangles Around Hierarchical Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="delete.response.html">reformulate</a></td>
+<td>Modify Terms Objects</td></tr>
+<tr><td style="width: 25%;"><a href="relevel.html">relevel</a></td>
+<td>Reorder Levels of Factor</td></tr>
+<tr><td style="width: 25%;"><a href="reorder.factor.html">reorder</a></td>
+<td>Reorder Levels of a Factor</td></tr>
+<tr><td style="width: 25%;"><a href="reorder.dendrogram.html">reorder.dendrogram</a></td>
+<td>Reorder a Dendrogram</td></tr>
+<tr><td style="width: 25%;"><a href="replications.html">replications</a></td>
+<td>Number of Replications of Terms</td></tr>
+<tr><td style="width: 25%;"><a href="reshape.html">reshape</a></td>
+<td>Reshape Grouped Data</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.html">resid</a></td>
+<td>Extract Model Residuals</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.html">residuals</a></td>
+<td>Extract Model Residuals</td></tr>
+<tr><td style="width: 25%;"><a href="glm.summaries.html">residuals.glm</a></td>
+<td>Accessing Generalized Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="HoltWinters.html">residuals.HoltWinters</a></td>
+<td>Holt-Winters Filtering</td></tr>
+<tr><td style="width: 25%;"><a href="lm.summaries.html">residuals.lm</a></td>
+<td>Accessing Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="line.html">residuals.tukeyline</a></td>
+<td>Robust Line Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="dendrogram.html">rev.dendrogram</a></td>
+<td>General Tree Structures</td></tr>
+<tr><td style="width: 25%;"><a href="Exponential.html">rexp</a></td>
+<td>The Exponential Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Fdist.html">rf</a></td>
+<td>The F Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="GammaDist.html">rgamma</a></td>
+<td>The Gamma Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Geometric.html">rgeom</a></td>
+<td>The Geometric Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Hypergeometric.html">rhyper</a></td>
+<td>The Hypergeometric Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Lognormal.html">rlnorm</a></td>
+<td>The Log Normal Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Logistic.html">rlogis</a></td>
+<td>The Logistic Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Multinom.html">rmultinom</a></td>
+<td>The Multinomial Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="NegBinomial.html">rnbinom</a></td>
+<td>The Negative Binomial Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Normal.html">rnorm</a></td>
+<td>The Normal Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Poisson.html">rpois</a></td>
+<td>The Poisson Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="SignRank.html">rsignrank</a></td>
+<td>Distribution of the Wilcoxon Signed Rank Statistic</td></tr>
+<tr><td style="width: 25%;"><a href="influence.measures.html">rstandard</a></td>
+<td>Regression Deletion Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="influence.measures.html">rstudent</a></td>
+<td>Regression Deletion Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="TDist.html">rt</a></td>
+<td>The Student t Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Uniform.html">runif</a></td>
+<td>The Uniform Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="runmed.html">runmed</a></td>
+<td>Running Medians - Robust Scatter Plot Smoothing</td></tr>
+<tr><td style="width: 25%;"><a href="Weibull.html">rweibull</a></td>
+<td>The Weibull Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="Wilcoxon.html">rwilcox</a></td>
+<td>Distribution of the Wilcoxon Rank Sum Statistic</td></tr>
+<tr><td style="width: 25%;"><a href="rWishart.html">rWishart</a></td>
+<td>Random Wishart Distributed Matrices</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="makepredictcall.html">SafePrediction</a></td>
+<td>Utility Function for Safe Prediction</td></tr>
+<tr><td style="width: 25%;"><a href="scatter.smooth.html">scatter.smooth</a></td>
+<td>Scatter Plot with Smooth Curve Fitted by Loess</td></tr>
+<tr><td style="width: 25%;"><a href="screeplot.html">screeplot</a></td>
+<td>Screeplots</td></tr>
+<tr><td style="width: 25%;"><a href="sd.html">sd</a></td>
+<td>Standard Deviation</td></tr>
+<tr><td style="width: 25%;"><a href="se.contrast.html">se.contrast</a></td>
+<td>Standard Errors for Contrasts in Model Terms</td></tr>
+<tr><td style="width: 25%;"><a href="se.contrast.html">se.contrast.aov</a></td>
+<td>Standard Errors for Contrasts in Model Terms</td></tr>
+<tr><td style="width: 25%;"><a href="selfStart.html">selfStart</a></td>
+<td>Construct Self-starting Nonlinear Models</td></tr>
+<tr><td style="width: 25%;"><a href="setNames.html">setNames</a></td>
+<td>Set the Names in an Object</td></tr>
+<tr><td style="width: 25%;"><a href="shapiro.test.html">shapiro.test</a></td>
+<td>Shapiro-Wilk Normality Test</td></tr>
+<tr><td style="width: 25%;"><a href="sigma.html">sigma</a></td>
+<td>Extract Residual Standard Deviation 'Sigma'</td></tr>
+<tr><td style="width: 25%;"><a href="SignRank.html">SignRank</a></td>
+<td>Distribution of the Wilcoxon Signed Rank Statistic</td></tr>
+<tr><td style="width: 25%;"><a href="simulate.html">simulate</a></td>
+<td>Simulate Responses</td></tr>
+<tr><td style="width: 25%;"><a href="smooth.html">smooth</a></td>
+<td>Tukey's (Running Median) Smoothing</td></tr>
+<tr><td style="width: 25%;"><a href="smooth.spline.html">smooth.spline</a></td>
+<td>Fit a Smoothing Spline</td></tr>
+<tr><td style="width: 25%;"><a href="smoothEnds.html">smoothEnds</a></td>
+<td>End Points Smoothing (for Running Medians)</td></tr>
+<tr><td style="width: 25%;"><a href="sortedXyData.html">sortedXyData</a></td>
+<td>Create a 'sortedXyData' Object</td></tr>
+<tr><td style="width: 25%;"><a href="spectrum.html">spec</a></td>
+<td>Spectral Density Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="spec.ar.html">spec.ar</a></td>
+<td>Estimate Spectral Density of a Time Series from AR Fit</td></tr>
+<tr><td style="width: 25%;"><a href="spec.pgram.html">spec.pgram</a></td>
+<td>Estimate Spectral Density of a Time Series by a Smoothed Periodogram</td></tr>
+<tr><td style="width: 25%;"><a href="spec.taper.html">spec.taper</a></td>
+<td>Taper a Time Series by a Cosine Bell</td></tr>
+<tr><td style="width: 25%;"><a href="spectrum.html">spectrum</a></td>
+<td>Spectral Density Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="splinefun.html">spline</a></td>
+<td>Interpolating Splines</td></tr>
+<tr><td style="width: 25%;"><a href="splinefun.html">splinefun</a></td>
+<td>Interpolating Splines</td></tr>
+<tr><td style="width: 25%;"><a href="splinefun.html">splinefunH</a></td>
+<td>Interpolating Splines</td></tr>
+<tr><td style="width: 25%;"><a href="SSasymp.html">SSasymp</a></td>
+<td>Self-Starting Nls Asymptotic Regression Model</td></tr>
+<tr><td style="width: 25%;"><a href="SSasympOff.html">SSasympOff</a></td>
+<td>Self-Starting Nls Asymptotic Regression Model with an Offset</td></tr>
+<tr><td style="width: 25%;"><a href="SSasympOrig.html">SSasympOrig</a></td>
+<td>Self-Starting Nls Asymptotic Regression Model through the Origin</td></tr>
+<tr><td style="width: 25%;"><a href="SSbiexp.html">SSbiexp</a></td>
+<td>Self-Starting Nls Biexponential model</td></tr>
+<tr><td style="width: 25%;"><a href="SSD.html">SSD</a></td>
+<td>SSD Matrix and Estimated Variance Matrix in Multivariate Models</td></tr>
+<tr><td style="width: 25%;"><a href="SSfol.html">SSfol</a></td>
+<td>Self-Starting Nls First-order Compartment Model</td></tr>
+<tr><td style="width: 25%;"><a href="SSfpl.html">SSfpl</a></td>
+<td>Self-Starting Nls Four-Parameter Logistic Model</td></tr>
+<tr><td style="width: 25%;"><a href="SSgompertz.html">SSgompertz</a></td>
+<td>Self-Starting Nls Gompertz Growth Model</td></tr>
+<tr><td style="width: 25%;"><a href="SSlogis.html">SSlogis</a></td>
+<td>Self-Starting Nls Logistic Model</td></tr>
+<tr><td style="width: 25%;"><a href="SSmicmen.html">SSmicmen</a></td>
+<td>Self-Starting Nls Michaelis-Menten Model</td></tr>
+<tr><td style="width: 25%;"><a href="SSweibull.html">SSweibull</a></td>
+<td>Self-Starting Nls Weibull Growth Curve Model</td></tr>
+<tr><td style="width: 25%;"><a href="start.html">start</a></td>
+<td>Encode the Terminal Times of Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="stat.anova.html">stat.anova</a></td>
+<td>GLM Anova Statistics</td></tr>
+<tr><td style="width: 25%;"><a href="stats-package.html">stats</a></td>
+<td>The R Stats Package</td></tr>
+<tr><td style="width: 25%;"><a href="stats-deprecated.html">stats-deprecated</a></td>
+<td>Deprecated Functions in Package 'stats'</td></tr>
+<tr><td style="width: 25%;"><a href="step.html">step</a></td>
+<td>Choose a model by AIC in a Stepwise Algorithm</td></tr>
+<tr><td style="width: 25%;"><a href="stepfun.html">stepfun</a></td>
+<td>Step Functions - Creation and Class</td></tr>
+<tr><td style="width: 25%;"><a href="stl.html">stl</a></td>
+<td>Seasonal Decomposition of Time Series by Loess</td></tr>
+<tr><td style="width: 25%;"><a href="dendrogram.html">str.dendrogram</a></td>
+<td>General Tree Structures</td></tr>
+<tr><td style="width: 25%;"><a href="StructTS.html">StructTS</a></td>
+<td>Fit Structural Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="summary.aov.html">summary.aov</a></td>
+<td>Summarize an Analysis of Variance Model</td></tr>
+<tr><td style="width: 25%;"><a href="ecdf.html">summary.ecdf</a></td>
+<td>Empirical Cumulative Distribution Function</td></tr>
+<tr><td style="width: 25%;"><a href="summary.glm.html">summary.glm</a></td>
+<td>Summarizing Generalized Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="summary.lm.html">summary.lm</a></td>
+<td>Summarizing Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="summary.manova.html">summary.manova</a></td>
+<td>Summary Method for Multivariate Analysis of Variance</td></tr>
+<tr><td style="width: 25%;"><a href="summary.nls.html">summary.nls</a></td>
+<td>Summarizing Non-Linear Least-Squares Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="prcomp.html">summary.prcomp</a></td>
+<td>Principal Components Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="summary.princomp.html">summary.princomp</a></td>
+<td>Summary method for Principal Components Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="stepfun.html">summary.stepfun</a></td>
+<td>Step Functions - Creation and Class</td></tr>
+<tr><td style="width: 25%;"><a href="supsmu.html">supsmu</a></td>
+<td>Friedman's SuperSmoother</td></tr>
+<tr><td style="width: 25%;"><a href="symnum.html">symnum</a></td>
+<td>Symbolic Number Coding</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="t.test.html">t.test</a></td>
+<td>Student's t-Test</td></tr>
+<tr><td style="width: 25%;"><a href="ts.html">t.ts</a></td>
+<td>Time-Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="TDist.html">TDist</a></td>
+<td>The Student t Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="termplot.html">termplot</a></td>
+<td>Plot Regression Terms</td></tr>
+<tr><td style="width: 25%;"><a href="terms.html">terms</a></td>
+<td>Model Terms</td></tr>
+<tr><td style="width: 25%;"><a href="terms.formula.html">terms.formula</a></td>
+<td>Construct a terms Object from a Formula</td></tr>
+<tr><td style="width: 25%;"><a href="terms.object.html">terms.object</a></td>
+<td>Description of Terms Objects</td></tr>
+<tr><td style="width: 25%;"><a href="time.html">time</a></td>
+<td>Sampling Times of Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="time.html">time.default</a></td>
+<td>Sampling Times of Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="toeplitz.html">toeplitz</a></td>
+<td>Form Symmetric Toeplitz Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="ts.html">ts</a></td>
+<td>Time-Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="ts.union.html">ts.intersect</a></td>
+<td>Bind Two or More Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="ts.plot.html">ts.plot</a></td>
+<td>Plot Multiple Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="ts.union.html">ts.union</a></td>
+<td>Bind Two or More Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="tsdiag.html">tsdiag</a></td>
+<td>Diagnostic Plots for Time-Series Fits</td></tr>
+<tr><td style="width: 25%;"><a href="tsp.html">tsp</a></td>
+<td>Tsp Attribute of Time-Series-like Objects</td></tr>
+<tr><td style="width: 25%;"><a href="tsSmooth.html">tsSmooth</a></td>
+<td>Use Fixed-Interval Smoothing on Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="Tukey.html">Tukey</a></td>
+<td>The Studentized Range Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="TukeyHSD.html">TukeyHSD</a></td>
+<td>Compute Tukey Honest Significant Differences</td></tr>
+</table>
+
+<h2><a name="U">-- U --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Uniform.html">Uniform</a></td>
+<td>The Uniform Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="uniroot.html">uniroot</a></td>
+<td>One Dimensional Root (Zero) Finding</td></tr>
+<tr><td style="width: 25%;"><a href="update.html">update</a></td>
+<td>Update and Re-fit a Model Call</td></tr>
+<tr><td style="width: 25%;"><a href="update.formula.html">update.formula</a></td>
+<td>Model Updating</td></tr>
+</table>
+
+<h2><a name="V">-- V --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="cor.html">var</a></td>
+<td>Correlation, Variance and Covariance (Matrices)</td></tr>
+<tr><td style="width: 25%;"><a href="var.test.html">var.test</a></td>
+<td>F Test to Compare Two Variances</td></tr>
+<tr><td style="width: 25%;"><a href="case.names.html">variable.names</a></td>
+<td>Case and Variable Names of Fitted Models</td></tr>
+<tr><td style="width: 25%;"><a href="case.names.html">variable.names.lm</a></td>
+<td>Case and Variable Names of Fitted Models</td></tr>
+<tr><td style="width: 25%;"><a href="varimax.html">varimax</a></td>
+<td>Rotation Methods for Factor Analysis</td></tr>
+<tr><td style="width: 25%;"><a href="vcov.html">vcov</a></td>
+<td>Calculate Variance-Covariance Matrix for a Fitted Model Object</td></tr>
+<tr><td style="width: 25%;"><a href="vcov.html">vcov.lme</a></td>
+<td>Calculate Variance-Covariance Matrix for a Fitted Model Object</td></tr>
+<tr><td style="width: 25%;"><a href="vcov.html">vcov.summary.lm</a></td>
+<td>Calculate Variance-Covariance Matrix for a Fitted Model Object</td></tr>
+</table>
+
+<h2><a name="W">-- W --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Weibull.html">Weibull</a></td>
+<td>The Weibull Distribution</td></tr>
+<tr><td style="width: 25%;"><a href="weighted.mean.html">weighted.mean</a></td>
+<td>Weighted Arithmetic Mean</td></tr>
+<tr><td style="width: 25%;"><a href="weighted.mean.html">weighted.mean.default</a></td>
+<td>Weighted Arithmetic Mean</td></tr>
+<tr><td style="width: 25%;"><a href="weighted.residuals.html">weighted.residuals</a></td>
+<td>Compute Weighted Residuals</td></tr>
+<tr><td style="width: 25%;"><a href="weights.html">weights</a></td>
+<td>Extract Model Weights</td></tr>
+<tr><td style="width: 25%;"><a href="glm.html">weights.glm</a></td>
+<td>Fitting Generalized Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="wilcox.test.html">wilcox.test</a></td>
+<td>Wilcoxon Rank Sum and Signed Rank Tests</td></tr>
+<tr><td style="width: 25%;"><a href="Wilcoxon.html">Wilcoxon</a></td>
+<td>Distribution of the Wilcoxon Rank Sum Statistic</td></tr>
+<tr><td style="width: 25%;"><a href="window.html">window</a></td>
+<td>Time Windows</td></tr>
+<tr><td style="width: 25%;"><a href="read.ftable.html">write.ftable</a></td>
+<td>Manipulate Flat Contingency Tables</td></tr>
+</table>
+
+<h2><a name="X">-- X --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="xtabs.html">xtabs</a></td>
+<td>Cross Tabulation</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="checkMFClasses.html">.checkMFClasses</a></td>
+<td>Functions to Check the Type of Variables passed to Model Frames</td></tr>
+<tr><td style="width: 25%;"><a href="checkMFClasses.html">.getXlevels</a></td>
+<td>Functions to Check the Type of Variables passed to Model Frames</td></tr>
+<tr><td style="width: 25%;"><a href="lmfit.html">.lm.fit</a></td>
+<td>Fitter Functions for Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="checkMFClasses.html">.MFclass</a></td>
+<td>Functions to Check the Type of Variables passed to Model Frames</td></tr>
+<tr><td style="width: 25%;"><a href="smooth.spline.html">.nknots.smspl</a></td>
+<td>Fit a Smoothing Spline</td></tr>
+<tr><td style="width: 25%;"><a href="print.ts.html">.preformat.ts</a></td>
+<td>Printing and Formatting of Time-Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="acf.html">[.acf</a></td>
+<td>Auto- and Cross- Covariance and -Correlation Function Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="formula.html">[.formula</a></td>
+<td>Model Formulae</td></tr>
+<tr><td style="width: 25%;"><a href="delete.response.html">[.terms</a></td>
+<td>Modify Terms Objects</td></tr>
+<tr><td style="width: 25%;"><a href="ts.html">[.ts</a></td>
+<td>Time-Series Objects</td></tr>
+<tr><td style="width: 25%;"><a href="dendrogram.html">[[.dendrogram</a></td>
+<td>General Tree Structures</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/Meta/demo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/Meta/demo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/COPYRIGHTS.modreg
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/COPYRIGHTS.modreg	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/COPYRIGHTS.modreg	(revision 2476)
@@ -0,0 +1,43 @@
+The following files are based on the work of others.
+
+src/ppr.f
+  J. H. Friedman's (1984) SMART package.
+  Converted to double precision and interface to smoothing splines by
+  B. D. Ripley.
+
+src/bsplvd.f
+src/bvalue.f
+src/bvalus.f
+src/qsbart.f
+src/sbart.f
+src/sgram.f
+src/sinerp.f
+src/sslvrg.f
+src/stxwx.f
+  From the public domain source of the package GAMFIT by T. Hastie and
+  R. Tibshirani, converted to double precision and with consistency
+  changes to the calls to bvalue. 
+  Originally derived from http://lib.stat.cmu.edu/general/gamfit (now defunct).
+
+src/loessc.c
+src/loessf.f
+  From the cloess package on netlib (section a).  The following
+  statement applies to these files:
+
+    The authors of this software are Cleveland, Grosse, and Shyu.
+    Copyright (c) 1989, 1992 by AT&T.
+    Permission to use, copy, modify, and distribute this software for
+    any purpose without fee is hereby granted, provided that this entire
+    notice is included in all copies of any software which is or
+    includes a copy or modification of this software and in all copies
+    of the supporting documentation for such software.
+    THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
+    IMPLIED WARRANTY.  IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE
+    ANY REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE
+    MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR
+    PURPOSE.
+
+  The files are unchanged apart from the insertion of that statement.
+
+All other files are copyright the R Core Team and/or B. D. Ripley.
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/INDEX	(revision 2476)
@@ -0,0 +1,345 @@
+.checkMFClasses         Functions to Check the Type of Variables passed
+                        to Model Frames
+AIC                     Akaike's An Information Criterion
+ARMAacf                 Compute Theoretical ACF for an ARMA Process
+ARMAtoMA                Convert ARMA Process to Infinite MA Process
+Beta                    The Beta Distribution
+Binomial                The Binomial Distribution
+Box.test                Box-Pierce and Ljung-Box Tests
+C                       Sets Contrasts for a Factor
+Cauchy                  The Cauchy Distribution
+Chisquare               The (non-central) Chi-Squared Distribution
+Distributions           Distributions in the stats package
+Exponential             The Exponential Distribution
+FDist                   The F Distribution
+GammaDist               The Gamma Distribution
+Geometric               The Geometric Distribution
+HoltWinters             Holt-Winters Filtering
+Hypergeometric          The Hypergeometric Distribution
+IQR                     The Interquartile Range
+KalmanLike              Kalman Filtering
+Logistic                The Logistic Distribution
+Lognormal               The Log Normal Distribution
+Multinomial             The Multinomial Distribution
+NLSstAsymptotic         Fit the Asymptotic Regression Model
+NLSstClosestX           Inverse Interpolation
+NLSstLfAsymptote        Horizontal Asymptote on the Left Side
+NLSstRtAsymptote        Horizontal Asymptote on the Right Side
+NegBinomial             The Negative Binomial Distribution
+Normal                  The Normal Distribution
+PP.test                 Phillips-Perron Test for Unit Roots
+Poisson                 The Poisson Distribution
+SSD                     SSD Matrix and Estimated Variance Matrix in
+                        Multivariate Models
+SSasymp                 Self-Starting Nls Asymptotic Regression Model
+SSasympOff              Self-Starting Nls Asymptotic Regression Model
+                        with an Offset
+SSasympOrig             Self-Starting Nls Asymptotic Regression Model
+                        through the Origin
+SSbiexp                 Self-Starting Nls Biexponential model
+SSfol                   Self-Starting Nls First-order Compartment Model
+SSfpl                   Self-Starting Nls Four-Parameter Logistic Model
+SSgompertz              Self-Starting Nls Gompertz Growth Model
+SSlogis                 Self-Starting Nls Logistic Model
+SSmicmen                Self-Starting Nls Michaelis-Menten Model
+SSweibull               Self-Starting Nls Weibull Growth Curve Model
+SignRank                Distribution of the Wilcoxon Signed Rank
+                        Statistic
+StructTS                Fit Structural Time Series
+TDist                   The Student t Distribution
+Tukey                   The Studentized Range Distribution
+TukeyHSD                Compute Tukey Honest Significant Differences
+Uniform                 The Uniform Distribution
+Weibull                 The Weibull Distribution
+Wilcoxon                Distribution of the Wilcoxon Rank Sum Statistic
+acf                     Auto- and Cross- Covariance and -Correlation
+                        Function Estimation
+acf2AR                  Compute an AR Process Exactly Fitting an ACF
+add1                    Add or Drop All Possible Single Terms to a
+                        Model
+addmargins              Puts Arbitrary Margins on Multidimensional
+                        Tables or Arrays
+aggregate               Compute Summary Statistics of Data Subsets
+alias                   Find Aliases (Dependencies) in a Model
+anova                   Anova Tables
+anova.glm               Analysis of Deviance for Generalized Linear
+                        Model Fits
+anova.lm                ANOVA for Linear Model Fits
+anova.mlm               Comparisons between Multivariate Linear Models
+ansari.test             Ansari-Bradley Test
+aov                     Fit an Analysis of Variance Model
+approxfun               Interpolation Functions
+ar                      Fit Autoregressive Models to Time Series
+ar.ols                  Fit Autoregressive Models to Time Series by OLS
+arima                   ARIMA Modelling of Time Series
+arima.sim               Simulate from an ARIMA Model
+arima0                  ARIMA Modelling of Time Series - Preliminary
+                        Version
+as.hclust               Convert Objects to Class hclust
+asOneSidedFormula       Convert to One-Sided Formula
+ave                     Group Averages Over Level Combinations of
+                        Factors
+bartlett.test           Bartlett Test of Homogeneity of Variances
+binom.test              Exact Binomial Test
+biplot                  Biplot of Multivariate Data
+biplot.princomp         Biplot for Principal Components
+bw.nrd0                 Bandwidth Selectors for Kernel Density
+                        Estimation
+cancor                  Canonical Correlations
+case.names              Case and Variable Names of Fitted Models
+chisq.test              Pearson's Chi-squared Test for Count Data
+cmdscale                Classical (Metric) Multidimensional Scaling
+coef                    Extract Model Coefficients
+complete.cases          Find Complete Cases
+confint                 Confidence Intervals for Model Parameters
+constrOptim             Linearly Constrained Optimization
+contr.helmert           (Possibly Sparse) Contrast Matrices
+contrasts               Get and Set Contrast Matrices
+convolve                Convolution of Sequences via FFT
+cophenetic              Cophenetic Distances for a Hierarchical
+                        Clustering
+cor                     Correlation, Variance and Covariance (Matrices)
+cor.test                Test for Association/Correlation Between Paired
+                        Samples
+cov.wt                  Weighted Covariance Matrices
+cpgram                  Plot Cumulative Periodogram
+cutree                  Cut a Tree into Groups of Data
+decompose               Classical Seasonal Decomposition by Moving
+                        Averages
+delete.response         Modify Terms Objects
+dendrapply              Apply a Function to All Nodes of a Dendrogram
+dendrogram              General Tree Structures
+density                 Kernel Density Estimation
+deriv                   Symbolic and Algorithmic Derivatives of Simple
+                        Expressions
+deviance                Model Deviance
+df.residual             Residual Degrees-of-Freedom
+diff.ts                 Methods for Time Series Objects
+diffinv                 Discrete Integration: Inverse of Differencing
+dist                    Distance Matrix Computation
+dummy.coef              Extract Coefficients in Original Coding
+ecdf                    Empirical Cumulative Distribution Function
+eff.aovlist             Compute Efficiencies of Multistratum Analysis
+                        of Variance
+effects                 Effects from Fitted Model
+embed                   Embedding a Time Series
+expand.model.frame      Add new variables to a model frame
+extractAIC              Extract AIC from a Fitted Model
+factanal                Factor Analysis
+factor.scope            Compute Allowed Changes in Adding to or
+                        Dropping from a Formula
+family                  Family Objects for Models
+family.glm              Accessing Generalized Linear Model Fits
+family.lm               Accessing Linear Model Fits
+fft                     Fast Discrete Fourier Transform (FFT)
+filter                  Linear Filtering on a Time Series
+fisher.test             Fisher's Exact Test for Count Data
+fitted                  Extract Model Fitted Values
+fivenum                 Tukey Five-Number Summaries
+fligner.test            Fligner-Killeen Test of Homogeneity of
+                        Variances
+formula                 Model Formulae
+formula.nls             Extract Model Formula from nls Object
+friedman.test           Friedman Rank Sum Test
+ftable                  Flat Contingency Tables
+ftable.formula          Formula Notation for Flat Contingency Tables
+getInitial              Get Initial Parameter Estimates
+glm                     Fitting Generalized Linear Models
+glm.control             Auxiliary for Controlling GLM Fitting
+hclust                  Hierarchical Clustering
+heatmap                 Draw a Heat Map
+identify.hclust         Identify Clusters in a Dendrogram
+influence.measures      Regression Deletion Diagnostics
+integrate               Integration of One-Dimensional Functions
+interaction.plot        Two-way Interaction Plot
+is.empty.model          Test if a Model's Formula is Empty
+isoreg                  Isotonic / Monotone Regression
+kernapply               Apply Smoothing Kernel
+kernel                  Smoothing Kernel Objects
+kmeans                  K-Means Clustering
+kruskal.test            Kruskal-Wallis Rank Sum Test
+ks.test                 Kolmogorov-Smirnov Tests
+ksmooth                 Kernel Regression Smoother
+lag                     Lag a Time Series
+lag.plot                Time Series Lag Plots
+line                    Robust Line Fitting
+listof                  A Class for Lists of (Parts of) Model Fits
+lm                      Fitting Linear Models
+lm.fit                  Fitter Functions for Linear Models
+lm.influence            Regression Diagnostics
+loadings                Print Loadings in Factor Analysis
+loess                   Local Polynomial Regression Fitting
+loess.control           Set Parameters for Loess
+logLik                  Extract Log-Likelihood
+loglin                  Fitting Log-Linear Models
+lowess                  Scatter Plot Smoothing
+ls.diag                 Compute Diagnostics for 'lsfit' Regression
+                        Results
+ls.print                Print 'lsfit' Regression Results
+lsfit                   Find the Least Squares Fit
+mad                     Median Absolute Deviation
+mahalanobis             Mahalanobis Distance
+make.link               Create a Link for GLM Families
+makepredictcall         Utility Function for Safe Prediction
+manova                  Multivariate Analysis of Variance
+mantelhaen.test         Cochran-Mantel-Haenszel Chi-Squared Test for
+                        Count Data
+mauchly.test            Mauchly's Test of Sphericity
+mcnemar.test            McNemar's Chi-squared Test for Count Data
+median                  Median Value
+medpolish               Median Polish (Robust Twoway Decomposition) of
+                        a Matrix
+model.extract           Extract Components from a Model Frame
+model.frame             Extracting the Model Frame from a Formula or
+                        Fit
+model.matrix            Construct Design Matrices
+model.tables            Compute Tables of Results from an Aov Model Fit
+monthplot               Plot a Seasonal or other Subseries from a Time
+                        Series
+mood.test               Mood Two-Sample Test of Scale
+na.action               NA Action
+na.contiguous           Find Longest Contiguous Stretch of non-NAs
+na.fail                 Handle Missing Values in Objects
+naprint                 Adjust for Missing Values
+naresid                 Adjust for Missing Values
+nextn                   Highly Composite Numbers
+nlm                     Non-Linear Minimization
+nlminb                  Optimization using PORT routines
+nls                     Nonlinear Least Squares
+nls.control             Control the Iterations in nls
+nobs                    Extract the Number of Observations from a Fit.
+numericDeriv            Evaluate Derivatives Numerically
+offset                  Include an Offset in a Model Formula
+oneway.test             Test for Equal Means in a One-Way Layout
+optim                   General-purpose Optimization
+optimize                One Dimensional Optimization
+order.dendrogram        Ordering or Labels of the Leaves in a
+                        Dendrogram
+p.adjust                Adjust P-values for Multiple Comparisons
+pairwise.prop.test      Pairwise comparisons for proportions
+pairwise.t.test         Pairwise t tests
+pairwise.table          Tabulate p values for pairwise comparisons
+pairwise.wilcox.test    Pairwise Wilcoxon Rank Sum Tests
+plot.HoltWinters        Plot function for HoltWinters objects
+plot.acf                Plot Autocovariance and Autocorrelation
+                        Functions
+plot.density            Plot Method for Kernel Density Estimation
+plot.isoreg             Plot Method for isoreg Objects
+plot.lm                 Plot Diagnostics for an lm Object
+plot.ppr                Plot Ridge Functions for Projection Pursuit
+                        Regression Fit
+plot.profile.nls        Plot a profile.nls Object
+plot.spec               Plotting Spectral Densities
+plot.stepfun            Plot Step Functions
+plot.stl                Methods for STL Objects
+plot.ts                 Plotting Time-Series Objects
+poisson.test            Exact Poisson tests
+poly                    Compute Orthogonal Polynomials
+power                   Create a Power Link Object
+power.anova.test        Power Calculations for Balanced One-Way
+                        Analysis of Variance Tests
+power.prop.test         Power Calculations for Two-Sample Test for
+                        Proportions
+power.t.test            Power calculations for one and two sample t
+                        tests
+ppoints                 Ordinates for Probability Plotting
+ppr                     Projection Pursuit Regression
+prcomp                  Principal Components Analysis
+predict                 Model Predictions
+predict.Arima           Forecast from ARIMA fits
+predict.HoltWinters     Prediction Function for Fitted Holt-Winters
+                        Models
+predict.glm             Predict Method for GLM Fits
+predict.lm              Predict method for Linear Model Fits
+predict.loess           Predict Loess Curve or Surface
+predict.nls             Predicting from Nonlinear Least Squares Fits
+predict.smooth.spline   Predict from Smoothing Spline Fit
+preplot                 Pre-computations for a Plotting Object
+princomp                Principal Components Analysis
+print.power.htest       Print Methods for Hypothesis Tests and Power
+                        Calculation Objects
+print.ts                Printing and Formatting of Time-Series Objects
+printCoefmat            Print Coefficient Matrices
+profile                 Generic Function for Profiling Models
+profile.nls             Method for Profiling nls Objects
+proj                    Projections of Models
+prop.test               Test of Equal or Given Proportions
+prop.trend.test         Test for trend in proportions
+qbirthday               Probability of coincidences
+qqnorm                  Quantile-Quantile Plots
+quade.test              Quade Test
+quantile                Sample Quantiles
+r2dtable                Random 2-way Tables with Given Marginals
+rWishart                Random Wishart Distributed Matrices
+read.ftable             Manipulate Flat Contingency Tables
+rect.hclust             Draw Rectangles Around Hierarchical Clusters
+relevel                 Reorder Levels of Factor
+reorder.default         Reorder Levels of a Factor
+reorder.dendrogram      Reorder a Dendrogram
+replications            Number of Replications of Terms
+reshape                 Reshape Grouped Data
+residuals               Extract Model Residuals
+runmed                  Running Medians - Robust Scatter Plot Smoothing
+scatter.smooth          Scatter Plot with Smooth Curve Fitted by Loess
+screeplot               Screeplots
+sd                      Standard Deviation
+se.contrast             Standard Errors for Contrasts in Model Terms
+selfStart               Construct Self-starting Nonlinear Models
+setNames                Set the Names in an Object
+shapiro.test            Shapiro-Wilk Normality Test
+sigma                   Extract Residual Standard Deviation 'Sigma'
+simulate                Simulate Responses
+smooth                  Tukey's (Running Median) Smoothing
+smooth.spline           Fit a Smoothing Spline
+smoothEnds              End Points Smoothing (for Running Medians)
+sortedXyData            Create a 'sortedXyData' Object
+spec.ar                 Estimate Spectral Density of a Time Series from
+                        AR Fit
+spec.pgram              Estimate Spectral Density of a Time Series by a
+                        Smoothed Periodogram
+spec.taper              Taper a Time Series by a Cosine Bell
+spectrum                Spectral Density Estimation
+splinefun               Interpolating Splines
+start                   Encode the Terminal Times of Time Series
+stat.anova              GLM Anova Statistics
+stats-deprecated        Deprecated Functions in Package 'stats'
+stats-package           The R Stats Package
+step                    Choose a model by AIC in a Stepwise Algorithm
+stepfun                 Step Functions - Creation and Class
+stl                     Seasonal Decomposition of Time Series by Loess
+summary.aov             Summarize an Analysis of Variance Model
+summary.glm             Summarizing Generalized Linear Model Fits
+summary.lm              Summarizing Linear Model Fits
+summary.manova          Summary Method for Multivariate Analysis of
+                        Variance
+summary.nls             Summarizing Non-Linear Least-Squares Model Fits
+summary.princomp        Summary method for Principal Components
+                        Analysis
+supsmu                  Friedman's SuperSmoother
+symnum                  Symbolic Number Coding
+t.test                  Student's t-Test
+termplot                Plot Regression Terms
+terms                   Model Terms
+terms.formula           Construct a terms Object from a Formula
+terms.object            Description of Terms Objects
+time                    Sampling Times of Time Series
+toeplitz                Form Symmetric Toeplitz Matrix
+ts                      Time-Series Objects
+ts.plot                 Plot Multiple Time Series
+ts.union                Bind Two or More Time Series
+tsSmooth                Use Fixed-Interval Smoothing on Time Series
+tsdiag                  Diagnostic Plots for Time-Series Fits
+tsp                     Tsp Attribute of Time-Series-like Objects
+uniroot                 One Dimensional Root (Zero) Finding
+update                  Update and Re-fit a Model Call
+update.formula          Model Updating
+var.test                F Test to Compare Two Variances
+varimax                 Rotation Methods for Factor Analysis
+vcov                    Calculate Variance-Covariance Matrix for a
+                        Fitted Model Object
+weighted.mean           Weighted Arithmetic Mean
+weighted.residuals      Compute Weighted Residuals
+weights                 Extract Model Weights
+wilcox.test             Wilcoxon Rank Sum and Signed Rank Tests
+window                  Time Windows
+xtabs                   Cross Tabulation
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/SOURCES.ts
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/SOURCES.ts	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/SOURCES.ts	(revision 2476)
@@ -0,0 +1,17 @@
+package bats by
+Martyn Plummer <plummer@iarc.fr>,
+Paul Gilbert <pgilbert@bank-banque-canada.ca>
+
+package tseries and ar.ols by
+Adrian Trapletti <A.Trapletti@ci.tuwien.ac.at>
+
+stl code on netlib, presumably by the authors of 
+
+     R.B. Cleveland, W.S. Cleveland, J.E. McRae, and I. Terpenning,
+     STL: A Seasonal-Trend Decomposition Procedure Based on Loess, 
+     Statistics Research Report, AT&T Bell Laboratories.
+
+Fortran package ts by B.D. Ripley, 1977--82, including starma.c which is
+based on Applied Statistics Algorithm AS154 and AS182.
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/help/stats.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/help/stats.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/help/AnIndex	(revision 2476)
@@ -0,0 +1,765 @@
+stats-package	stats-package
+.checkMFClasses	checkMFClasses
+.getXlevels	checkMFClasses
+.lm.fit	lmfit
+.MFclass	checkMFClasses
+.nknots.smspl	smooth.spline
+.preformat.ts	print.ts
+acf	acf
+acf2AR	acf2AR
+add.scope	factor.scope
+add1	add1
+add1.default	add1
+add1.glm	add1
+add1.lm	add1
+addmargins	addmargins
+aggregate	aggregate
+aggregate.data.frame	aggregate
+aggregate.default	aggregate
+aggregate.formula	aggregate
+aggregate.ts	aggregate
+AIC	AIC
+alias	alias
+alias.formula	alias
+alias.lm	alias
+anova	anova
+anova.glm	anova.glm
+anova.lm	anova.lm
+anova.lmlist	anova.lm
+anova.mlm	anova.mlm
+anovalist.lm	stats-defunct
+ansari.test	ansari.test
+ansari.test.default	ansari.test
+ansari.test.formula	ansari.test
+aov	aov
+approx	approxfun
+approxfun	approxfun
+ar	ar
+ar.burg	ar
+ar.burg.default	ar
+ar.burg.mts	ar
+ar.mle	ar
+ar.ols	ar.ols
+ar.yw	ar
+ar.yw.default	ar
+ar.yw.mts	ar
+arima	arima
+arima.sim	arima.sim
+arima0	arima0
+arima0.diag	stats-defunct
+ARMAacf	ARMAacf
+ARMAtoMA	ARMAtoMA
+as.dendrogram	dendrogram
+as.dendrogram.dendrogram	dendrogram
+as.dendrogram.hclust	dendrogram
+as.dist	dist
+as.dist.default	dist
+as.formula	formula
+as.hclust	as.hclust
+as.hclust.default	as.hclust
+as.hclust.dendrogram	dendrogram
+as.hclust.twins	as.hclust
+as.matrix.dist	dist
+as.stepfun	stepfun
+as.ts	ts
+as.ts.default	ts
+asOneSidedFormula	asOneSidedFormula
+ave	ave
+bandwidth.kernel	kernel
+bartlett.test	bartlett.test
+bartlett.test.default	bartlett.test
+bartlett.test.formula	bartlett.test
+Beta	Beta
+BIC	AIC
+binom.test	binom.test
+Binomial	Binomial
+binomial	family
+biplot	biplot
+biplot.default	biplot
+biplot.prcomp	biplot.princomp
+biplot.princomp	biplot.princomp
+Box.test	box.test
+bw.bcv	bandwidth
+bw.nrd	bandwidth
+bw.nrd0	bandwidth
+bw.SJ	bandwidth
+bw.ucv	bandwidth
+C	zC
+cancor	cancor
+case.names	case.names
+case.names.lm	case.names
+Cauchy	Cauchy
+cbind.ts	ts
+ccf	acf
+chisq.test	chisq.test
+Chisquare	Chisquare
+clearNames	stats-defunct
+cmdscale	cmdscale
+coef	coef
+coefficients	coef
+complete.cases	complete.cases
+confint	confint
+confint.default	confint
+confint.lm	confint
+constrOptim	constrOptim
+contr.helmert	contrast
+contr.poly	contrast
+contr.SAS	contrast
+contr.sum	contrast
+contr.treatment	contrast
+contrasts	contrasts
+contrasts<-	contrasts
+convolve	convolve
+cooks.distance	influence.measures
+cooks.distance.glm	influence.measures
+cooks.distance.lm	influence.measures
+cophenetic	cophenetic
+cophenetic.default	cophenetic
+cophenetic.dendrogram	cophenetic
+cor	cor
+cor.test	cor.test
+cor.test.default	cor.test
+cor.test.formula	cor.test
+cov	cor
+cov.wt	cov.wt
+cov2cor	cor
+covratio	influence.measures
+cpgram	cpgram
+cut.dendrogram	dendrogram
+cutree	cutree
+cycle	time
+D	deriv
+dbeta	Beta
+dbinom	Binomial
+dcauchy	Cauchy
+dchisq	Chisquare
+decompose	decompose
+delete.response	delete.response
+deltat	time
+dendrapply	dendrapply
+dendrogram	dendrogram
+density	density
+density.default	density
+deriv	deriv
+deriv.default	deriv
+deriv.formula	deriv
+deriv3	deriv
+deriv3.default	deriv
+deriv3.formula	deriv
+deviance	deviance
+dexp	Exponential
+df	Fdist
+df.kernel	kernel
+df.residual	df.residual
+dfbeta	influence.measures
+dfbeta.lm	influence.measures
+dfbetas	influence.measures
+dfbetas.lm	influence.measures
+dffits	influence.measures
+dgamma	GammaDist
+dgeom	Geometric
+dhyper	Hypergeometric
+diff.ts	ts-methods
+diffinv	diffinv
+diffinv.default	diffinv
+diffinv.ts	diffinv
+dist	dist
+distribution	Distributions
+Distributions	Distributions
+distributions	Distributions
+dlnorm	Lognormal
+dlogis	Logistic
+dmultinom	Multinom
+dnbinom	NegBinomial
+dnchisq	stats-defunct
+dnorm	Normal
+dpois	Poisson
+drop.scope	factor.scope
+drop.terms	delete.response
+drop1	add1
+drop1.default	add1
+drop1.glm	add1
+drop1.lm	add1
+dsignrank	SignRank
+dt	TDist
+dummy.coef	dummy.coef
+dummy.coef.aovlist	dummy.coef
+dummy.coef.lm	dummy.coef
+dunif	Uniform
+dweibull	Weibull
+dwilcox	Wilcoxon
+ecdf	ecdf
+eff.aovlist	eff.aovlist
+effects	effects
+effects.glm	effects
+effects.lm	effects
+embed	embed
+end	start
+Error	aov
+estVar	SSD
+expand.model.frame	expand.model.frame
+Exponential	Exponential
+extractAIC	extractAIC
+factanal	factanal
+factor.scope	factor.scope
+family	family
+family.glm	glm.summaries
+family.lm	lm.summaries
+FDist	Fdist
+fft	fft
+filter	filter
+fisher.test	fisher.test
+fitted	fitted.values
+fitted.default	fitted.values
+fitted.kmeans	kmeans
+fitted.values	fitted.values
+fivenum	fivenum
+fligner.test	fligner.test
+fligner.test.default	fligner.test
+fligner.test.formula	fligner.test
+format.dist	dist
+format.ftable	read.ftable
+formula	formula
+formula.data.frame	formula
+formula.default	formula
+formula.formula	formula
+formula.lm	lm.summaries
+formula.nls	formula.nls
+formula.terms	formula
+frequency	time
+friedman.test	friedman.test
+friedman.test.default	friedman.test
+friedman.test.formula	friedman.test
+ftable	ftable
+ftable.default	ftable
+ftable.formula	ftable.formula
+Gamma	family
+GammaDist	GammaDist
+gaussian	family
+Geometric	Geometric
+getCall	update
+getCall.default	update
+getInitial	getInitial
+getInitial.default	getInitial
+getInitial.formula	getInitial
+getInitial.selfStart	getInitial
+get_all_vars	model.frame
+glm	glm
+glm.control	glm.control
+glm.fit	glm
+glm.fit.null	stats-defunct
+hasTsp	tsp
+hat	influence.measures
+hatvalues	influence.measures
+hatvalues.lm	influence.measures
+hclust	hclust
+heatmap	heatmap
+HoltWinters	HoltWinters
+Hypergeometric	Hypergeometric
+identify.hclust	identify.hclust
+influence	lm.influence
+influence.glm	lm.influence
+influence.lm	lm.influence
+influence.measures	influence.measures
+integrate	integrate
+interaction.plot	interaction.plot
+inverse.gaussian	family
+IQR	IQR
+is.empty.model	is.empty
+is.leaf	dendrogram
+is.mts	ts
+is.stepfun	stepfun
+is.ts	ts
+is.tskernel	kernel
+isoreg	isoreg
+KalmanForecast	KalmanLike
+KalmanLike	KalmanLike
+KalmanRun	KalmanLike
+KalmanSmooth	KalmanLike
+kernapply	kernapply
+kernapply.default	kernapply
+kernapply.ts	kernapply
+kernapply.tskernel	kernapply
+kernapply.vector	kernapply
+kernel	kernel
+kmeans	kmeans
+knots	stepfun
+kruskal.test	kruskal.test
+kruskal.test.default	kruskal.test
+kruskal.test.formula	kruskal.test
+ks.test	ks.test
+ksmooth	ksmooth
+labels.dendrogram	order.dendrogram
+labels.dist	dist
+labels.lm	lm.summaries
+labels.terms	terms
+lag	lag
+lag.default	lag
+lag.plot	lag.plot
+line	line
+lines.isoreg	plot.isoreg
+lines.stepfun	plot.stepfun
+lines.ts	plot.ts
+listof	listof
+lm	lm
+lm.fit	lmfit
+lm.fit.null	stats-defunct
+lm.influence	lm.influence
+lm.wfit	lmfit
+lm.wfit.null	stats-defunct
+loadings	loadings
+loess	loess
+loess.control	loess.control
+loess.smooth	scatter.smooth
+Logistic	Logistic
+logLik	logLik
+logLik.lm	logLik
+loglin	loglin
+Lognormal	Lognormal
+lowess	lowess
+ls.diag	ls.diag
+ls.print	ls.print
+lsfit	lsfit
+mad	mad
+mahalanobis	mahalanobis
+make.link	make.link
+makeARIMA	KalmanLike
+makepredictcall	makepredictcall
+makepredictcall.default	makepredictcall
+makepredictcall.poly	poly
+manova	manova
+mantelhaen.test	mantelhaen.test
+mauchley.test	stats-defunct
+mauchly.test	mauchly.test
+mauchly.test.mlm	mauchly.test
+mauchly.test.SSD	mauchly.test
+mcnemar.test	mcnemar.test
+median	median
+median.default	median
+medpolish	medpolish
+merge.dendrogram	dendrogram
+model.extract	model.extract
+model.frame	model.frame
+model.frame.aovlist	model.frame
+model.frame.default	model.frame
+model.frame.glm	model.frame
+model.frame.lm	model.frame
+model.matrix	model.matrix
+model.matrix.default	model.matrix
+model.matrix.lm	model.matrix
+model.offset	model.extract
+model.response	model.extract
+model.tables	model.tables
+model.tables.aov	model.tables
+model.tables.aovlist	model.tables
+model.weights	model.extract
+monthplot	monthplot
+monthplot.default	monthplot
+monthplot.stl	monthplot
+monthplot.StructTS	monthplot
+monthplot.ts	monthplot
+mood.test	mood.test
+mood.test.default	mood.test
+mood.test.formula	mood.test
+Multinomial	Multinom
+mvfft	fft
+na.action	na.action
+na.action.default	na.action
+na.contiguous	na.contiguous
+na.contiguous.default	na.contiguous
+na.exclude	na.fail
+na.exclude.data.frame	na.fail
+na.exclude.default	na.fail
+na.fail	na.fail
+na.fail.default	na.fail
+na.omit	na.fail
+na.omit.data.frame	na.fail
+na.omit.default	na.fail
+na.omit.ts	ts-methods
+na.pass	na.fail
+napredict	nafns
+napredict.default	nafns
+napredict.exclude	nafns
+naprint	naprint
+naprint.default	naprint
+naprint.exclude	naprint
+naprint.omit	naprint
+naresid	nafns
+naresid.default	nafns
+naresid.exclude	nafns
+NegBinomial	NegBinomial
+nextn	nextn
+nlm	nlm
+nlminb	nlminb
+nls	nls
+nls.control	nls.control
+NLSstAsymptotic	NLSstAsymptotic
+NLSstAsymptotic.sortedXyData	NLSstAsymptotic
+NLSstClosestX	NLSstClosestX
+NLSstClosestX.sortedXyData	NLSstClosestX
+NLSstLfAsymptote	NLSstLfAsymptote
+NLSstLfAsymptote.sortedXyData	NLSstLfAsymptote
+NLSstRtAsymptote	NLSstRtAsymptote
+NLSstRtAsymptote.sortedXyData	NLSstRtAsymptote
+nobs	nobs
+nobs.default	nobs
+nobs.dendrogram	dendrogram
+Normal	Normal
+numericDeriv	numericDeriv
+offset	offset
+oneway.test	oneway.test
+Ops.ts	ts
+optim	optim
+optimHess	optim
+optimise	optimize
+optimize	optimize
+order.dendrogram	order.dendrogram
+p.adjust	p.adjust
+p.adjust.methods	p.adjust
+pacf	acf
+pacf.default	acf
+pairwise.prop.test	pairwise.prop.test
+pairwise.t.test	pairwise.t.test
+pairwise.table	pairwise.table
+pairwise.wilcox.test	pairwise.wilcox.test
+pbeta	Beta
+pbinom	Binomial
+pbirthday	birthday
+pcauchy	Cauchy
+pchisq	Chisquare
+pexp	Exponential
+pf	Fdist
+pgamma	GammaDist
+pgeom	Geometric
+phyper	Hypergeometric
+plclust	stats-deprecated
+plnorm	Lognormal
+plogis	Logistic
+plot.acf	plot.acf
+plot.decomposed.ts	decompose
+plot.dendrogram	dendrogram
+plot.density	plot.density
+plot.ecdf	ecdf
+plot.hclust	hclust
+plot.HoltWinters	plot.HoltWinters
+plot.isoreg	plot.isoreg
+plot.lm	plot.lm
+plot.mts	stats-defunct
+plot.ppr	plot.ppr
+plot.prcomp	prcomp
+plot.princomp	princomp
+plot.profile.nls	plot.profile.nls
+plot.spec	plot.spec
+plot.spec.coherency	plot.spec
+plot.spec.phase	plot.spec
+plot.stepfun	plot.stepfun
+plot.stl	stlmethods
+plot.ts	plot.ts
+plot.tskernel	kernel
+pnbinom	NegBinomial
+pnchisq	stats-defunct
+pnorm	Normal
+Poisson	Poisson
+poisson	family
+poisson.test	poisson.test
+poly	poly
+polym	poly
+power	power
+power.anova.test	power.anova.test
+power.prop.test	power.prop.test
+power.t.test	power.t.test
+PP.test	pp.test
+ppoints	ppoints
+ppois	Poisson
+ppr	ppr
+ppr.default	ppr
+ppr.formula	ppr
+prcomp	prcomp
+prcomp.default	prcomp
+prcomp.formula	prcomp
+predict	predict
+predict.ar	ar
+predict.Arima	predict.arima
+predict.arima0	arima0
+predict.glm	predict.glm
+predict.HoltWinters	predict.HoltWinters
+predict.lm	predict.lm
+predict.loess	predict.loess
+predict.nls	predict.nls
+predict.poly	poly
+predict.prcomp	prcomp
+predict.princomp	princomp
+predict.smooth.spline	predict.smooth.spline
+predict.StructTS	StructTS
+preplot	preplot
+princomp	princomp
+princomp.default	princomp
+princomp.formula	princomp
+print.aov	aov
+print.aovlist	aov
+print.ar	ar
+print.arima0	arima0
+print.coefmat	stats-defunct
+print.dendrogram	dendrogram
+print.dist	dist
+print.ecdf	ecdf
+print.factanal	loadings
+print.formula	formula
+print.ftable	read.ftable
+print.hclust	hclust
+print.HoltWinters	HoltWinters
+print.htest	print.power.htest
+print.integrate	integrate
+print.kmeans	kmeans
+print.loadings	loadings
+print.power.htest	print.power.htest
+print.prcomp	prcomp
+print.princomp	princomp
+print.stepfun	stepfun
+print.StructTS	StructTS
+print.summary.aov	summary.aov
+print.summary.aovlist	summary.aov
+print.summary.glm	summary.glm
+print.summary.lm	summary.lm
+print.summary.manova	summary.manova
+print.summary.nls	summary.nls
+print.summary.prcomp	prcomp
+print.summary.princomp	summary.princomp
+print.ts	print.ts
+print.xtabs	xtabs
+printCoefmat	printCoefmat
+profile	profile
+profile.nls	profile.nls
+proj	proj
+proj.aov	proj
+proj.aovlist	proj
+proj.default	proj
+proj.lm	proj
+promax	varimax
+prop.test	prop.test
+prop.trend.test	prop.trend.test
+psignrank	SignRank
+pt	TDist
+ptukey	Tukey
+punif	Uniform
+pweibull	Weibull
+pwilcox	Wilcoxon
+qbeta	Beta
+qbinom	Binomial
+qbirthday	birthday
+qcauchy	Cauchy
+qchisq	Chisquare
+qexp	Exponential
+qf	Fdist
+qgamma	GammaDist
+qgeom	Geometric
+qhyper	Hypergeometric
+qlnorm	Lognormal
+qlogis	Logistic
+qnbinom	NegBinomial
+qnchisq	stats-defunct
+qnorm	Normal
+qpois	Poisson
+qqline	qqnorm
+qqnorm	qqnorm
+qqnorm.default	qqnorm
+qqplot	qqnorm
+qsignrank	SignRank
+qt	TDist
+qtukey	Tukey
+quade.test	quade.test
+quade.test.default	quade.test
+quade.test.formula	quade.test
+quantile	quantile
+quantile.default	quantile
+quantile.ecdf	ecdf
+quasi	family
+quasibinomial	family
+quasipoisson	family
+qunif	Uniform
+qweibull	Weibull
+qwilcox	Wilcoxon
+r2dtable	r2dtable
+rbeta	Beta
+rbinom	Binomial
+rcauchy	Cauchy
+rchisq	Chisquare
+read.ftable	read.ftable
+rect.hclust	rect.hclust
+reformulate	delete.response
+relevel	relevel
+relevel.default	relevel
+relevel.factor	relevel
+relevel.ordered	relevel
+reorder	reorder.factor
+reorder.default	reorder.factor
+reorder.dendrogram	reorder.dendrogram
+replications	replications
+reshape	reshape
+reshapeLong	stats-defunct
+reshapeWide	stats-defunct
+resid	residuals
+residuals	residuals
+residuals.glm	glm.summaries
+residuals.HoltWinters	HoltWinters
+residuals.lm	lm.summaries
+residuals.tukeyline	line
+rev.dendrogram	dendrogram
+rexp	Exponential
+rf	Fdist
+rgamma	GammaDist
+rgeom	Geometric
+rhyper	Hypergeometric
+rlnorm	Lognormal
+rlogis	Logistic
+rmultinom	Multinom
+rnbinom	NegBinomial
+rnchisq	stats-defunct
+rnorm	Normal
+rpois	Poisson
+rsignrank	SignRank
+rstandard	influence.measures
+rstandard.glm	influence.measures
+rstandard.lm	influence.measures
+rstudent	influence.measures
+rstudent.glm	influence.measures
+rstudent.lm	influence.measures
+rt	TDist
+runif	Uniform
+runmed	runmed
+rweibull	Weibull
+rwilcox	Wilcoxon
+rWishart	rWishart
+SafePrediction	makepredictcall
+scatter.smooth	scatter.smooth
+screeplot	screeplot
+screeplot.default	screeplot
+sd	sd
+se.contrast	se.contrast
+se.contrast.aov	se.contrast
+se.contrast.aovlist	se.contrast
+selfStart	selfStart
+selfStart.default	selfStart
+selfStart.formula	selfStart
+setNames	setNames
+shapiro.test	shapiro.test
+sigma	sigma
+sigma.default	sigma
+sigma.mlm	sigma
+SignRank	SignRank
+simulate	simulate
+smooth	smooth
+smooth.spline	smooth.spline
+smoothEnds	smoothEnds
+sortedXyData	sortedXyData
+sortedXyData.default	sortedXyData
+spec	spectrum
+spec.ar	spec.ar
+spec.pgram	spec.pgram
+spec.taper	spec.taper
+spectrum	spectrum
+spline	splinefun
+splinefun	splinefun
+splinefunH	splinefun
+SSasymp	SSasymp
+SSasympOff	SSasympOff
+SSasympOrig	SSasympOrig
+SSbiexp	SSbiexp
+SSD	SSD
+SSfol	SSfol
+SSfpl	SSfpl
+SSgompertz	SSgompertz
+SSlogis	SSlogis
+SSmicmen	SSmicmen
+SSweibull	SSweibull
+start	start
+stat.anova	stat.anova
+stats	stats-package
+stats-defunct	stats-defunct
+stats-deprecated	stats-deprecated
+step	step
+stepfun	stepfun
+stl	stl
+str.dendrogram	dendrogram
+StructTS	StructTS
+summary.aov	summary.aov
+summary.aovlist	summary.aov
+summary.ecdf	ecdf
+summary.glm	summary.glm
+summary.lm	summary.lm
+summary.manova	summary.manova
+summary.mlm	summary.lm
+summary.nls	summary.nls
+summary.prcomp	prcomp
+summary.princomp	summary.princomp
+summary.stepfun	stepfun
+supsmu	supsmu
+symnum	symnum
+t.test	t.test
+t.test.default	t.test
+t.test.formula	t.test
+t.ts	ts
+TDist	TDist
+termplot	termplot
+terms	terms
+terms.formula	terms.formula
+terms.object	terms.object
+time	time
+time.default	time
+toeplitz	toeplitz
+ts	ts
+ts.intersect	ts.union
+ts.plot	ts.plot
+ts.union	ts.union
+tsdiag	tsdiag
+tsdiag.Arima	tsdiag
+tsdiag.arima0	tsdiag
+tsdiag.StructTS	tsdiag
+tsp	tsp
+tsp<-	tsp
+tsSmooth	tsSmooth
+tsSmooth.StructTS	tsSmooth
+Tukey	Tukey
+TukeyHSD	TukeyHSD
+Uniform	Uniform
+uniroot	uniroot
+update	update
+update.default	update
+update.formula	update.formula
+var	cor
+var.test	var.test
+var.test.default	var.test
+var.test.formula	var.test
+variable.names	case.names
+variable.names.lm	case.names
+varimax	varimax
+vcov	vcov
+vcov.glm	vcov
+vcov.gls	vcov
+vcov.lm	vcov
+vcov.lme	vcov
+vcov.summary.glm	vcov
+vcov.summary.lm	vcov
+Weibull	Weibull
+weighted.mean	weighted.mean
+weighted.mean.default	weighted.mean
+weighted.residuals	weighted.residuals
+weights	weights
+weights.default	weights
+weights.glm	glm
+wilcox.test	wilcox.test
+wilcox.test.default	wilcox.test
+wilcox.test.formula	wilcox.test
+Wilcoxon	Wilcoxon
+window	window
+window.default	window
+window.ts	window
+window<-	window
+window<-.ts	window
+write.ftable	read.ftable
+xtabs	xtabs
+[.acf	acf
+[.formula	formula
+[.terms	delete.response
+[.ts	ts
+[[.dendrogram	dendrogram
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/help/stats.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/help/stats.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/libs/stats.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats/libs/stats.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/R/utils.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/R/utils.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/R/utils.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/R/utils.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/R/sysdata.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/R/sysdata.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/R/utils
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/R/utils	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/R/utils	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/R/sysdata.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/R/sysdata.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/DESCRIPTION	(revision 2476)
@@ -0,0 +1,11 @@
+Package: utils
+Version: 3.3.2
+Priority: base
+Title: The R Utils Package
+Author: R Core Team and contributors worldwide
+Maintainer: R Core Team <R-core@r-project.org>
+Description: R utility functions.
+License: Part of R 3.3.2
+Suggests: methods, XML
+NeedsCompilation: yes
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:32:09 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/html/00Index.html	(revision 2476)
@@ -0,0 +1,653 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: The R Utils Package</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> The R Utils Package
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;utils&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="# "> </a>
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#G">G</a>
+<a href="#H">H</a>
+<a href="#I">I</a>
+<a href="#L">L</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#O">O</a>
+<a href="#P">P</a>
+<a href="#Q">Q</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#U">U</a>
+<a href="#V">V</a>
+<a href="#W">W</a>
+<a href="#X">X</a>
+<a href="#Z">Z</a>
+<a href="#misc">misc</a>
+</p>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="utils-package.html">utils-package</a></td>
+<td>The R Utils Package</td></tr>
+</table>
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="adist.html">adist</a></td>
+<td>Approximate String Distances</td></tr>
+<tr><td style="width: 25%;"><a href="alarm.html">alarm</a></td>
+<td>Alert the User</td></tr>
+<tr><td style="width: 25%;"><a href="apropos.html">apropos</a></td>
+<td>Find Objects by (Partial) Name</td></tr>
+<tr><td style="width: 25%;"><a href="aregexec.html">aregexec</a></td>
+<td>Approximate String Match Positions</td></tr>
+<tr><td style="width: 25%;"><a href="getAnywhere.html">argsAnywhere</a></td>
+<td>Retrieve an R Object, Including from a Namespace</td></tr>
+<tr><td style="width: 25%;"><a href="person.html">as.character.person</a></td>
+<td>Persons</td></tr>
+<tr><td style="width: 25%;"><a href="person.html">as.person</a></td>
+<td>Persons</td></tr>
+<tr><td style="width: 25%;"><a href="person.html">as.personList</a></td>
+<td>Persons</td></tr>
+<tr><td style="width: 25%;"><a href="relist.html">as.relistable</a></td>
+<td>Allow Re-Listing an unlist()ed Object</td></tr>
+<tr><td style="width: 25%;"><a href="roman.html">as.roman</a></td>
+<td>Roman Numerals</td></tr>
+<tr><td style="width: 25%;"><a href="aspell.html">aspell</a></td>
+<td>Spell Check Interface</td></tr>
+<tr><td style="width: 25%;"><a href="aspell-utils.html">aspell-utils</a></td>
+<td>Spell Check Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="aspell-utils.html">aspell_package_C_files</a></td>
+<td>Spell Check Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="aspell-utils.html">aspell_package_Rd_files</a></td>
+<td>Spell Check Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="aspell-utils.html">aspell_package_R_files</a></td>
+<td>Spell Check Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="aspell-utils.html">aspell_package_vignettes</a></td>
+<td>Spell Check Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="aspell-utils.html">aspell_write_personal_dictionary_file</a></td>
+<td>Spell Check Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="getFromNamespace.html">assignInMyNamespace</a></td>
+<td>Utility functions for Developing Namespaces</td></tr>
+<tr><td style="width: 25%;"><a href="getFromNamespace.html">assignInNamespace</a></td>
+<td>Utility functions for Developing Namespaces</td></tr>
+<tr><td style="width: 25%;"><a href="available.packages.html">available.packages</a></td>
+<td>List Available Packages at CRAN-like Repositories</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="BATCH.html">BATCH</a></td>
+<td>Batch Execution of R</td></tr>
+<tr><td style="width: 25%;"><a href="bibentry.html">bibentry</a></td>
+<td>Bibliography Entries</td></tr>
+<tr><td style="width: 25%;"><a href="browseEnv.html">browseEnv</a></td>
+<td>Browse Objects in Environment</td></tr>
+<tr><td style="width: 25%;"><a href="browseURL.html">browseURL</a></td>
+<td>Load URL into an HTML Browser</td></tr>
+<tr><td style="width: 25%;"><a href="browseVignettes.html">browseVignettes</a></td>
+<td>List Vignettes in an HTML Browser</td></tr>
+<tr><td style="width: 25%;"><a href="bug.report.html">bug.report</a></td>
+<td>Send a Bug Report</td></tr>
+<tr><td style="width: 25%;"><a href="PkgUtils.html">build</a></td>
+<td>Utilities for Building and Checking Add-on Packages</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="person.html">c.person</a></td>
+<td>Persons</td></tr>
+<tr><td style="width: 25%;"><a href="capture.output.html">capture.output</a></td>
+<td>Send Output to a Character String or File</td></tr>
+<tr><td style="width: 25%;"><a href="changedFiles.html">changedFiles</a></td>
+<td>Detect which files have changed</td></tr>
+<tr><td style="width: 25%;"><a href="PkgUtils.html">check</a></td>
+<td>Utilities for Building and Checking Add-on Packages</td></tr>
+<tr><td style="width: 25%;"><a href="mirrorAdmin.html">checkCRAN</a></td>
+<td>Managing Repository Mirrors</td></tr>
+<tr><td style="width: 25%;"><a href="chooseBioCmirror.html">chooseBioCmirror</a></td>
+<td>Select a Bioconductor Mirror</td></tr>
+<tr><td style="width: 25%;"><a href="chooseCRANmirror.html">chooseCRANmirror</a></td>
+<td>Select a CRAN Mirror</td></tr>
+<tr><td style="width: 25%;"><a href="citation.html">CITATION</a></td>
+<td>Citing R and R Packages in Publications</td></tr>
+<tr><td style="width: 25%;"><a href="citation.html">citation</a></td>
+<td>Citing R and R Packages in Publications</td></tr>
+<tr><td style="width: 25%;"><a href="cite.html">cite</a></td>
+<td>Cite a bibliography entry.</td></tr>
+<tr><td style="width: 25%;"><a href="cite.html">citeNatbib</a></td>
+<td>Cite a bibliography entry.</td></tr>
+<tr><td style="width: 25%;"><a href="citEntry.html">citEntry</a></td>
+<td>Bibliography Entries (Older Interface)</td></tr>
+<tr><td style="width: 25%;"><a href="citEntry.html">citFooter</a></td>
+<td>Bibliography Entries (Older Interface)</td></tr>
+<tr><td style="width: 25%;"><a href="citEntry.html">citHeader</a></td>
+<td>Bibliography Entries (Older Interface)</td></tr>
+<tr><td style="width: 25%;"><a href="close.socket.html">close.socket</a></td>
+<td>Close a Socket</td></tr>
+<tr><td style="width: 25%;"><a href="txtProgressBar.html">close.txtProgressBar</a></td>
+<td>Text Progress Bar</td></tr>
+<tr><td style="width: 25%;"><a href="combn.html">combn</a></td>
+<td>Generate All Combinations of n Elements, Taken m at a Time</td></tr>
+<tr><td style="width: 25%;"><a href="compareVersion.html">compareVersion</a></td>
+<td>Compare Two Package Version Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="COMPILE.html">COMPILE</a></td>
+<td>Compile Files for Use with R</td></tr>
+<tr><td style="width: 25%;"><a href="rcompgen.html">completion</a></td>
+<td>A Completion Generator for R</td></tr>
+<tr><td style="width: 25%;"><a href="contrib.url.html">contrib.url</a></td>
+<td>Find Appropriate Paths in CRAN-like Repositories</td></tr>
+<tr><td style="width: 25%;"><a href="count.fields.html">count.fields</a></td>
+<td>Count the Number of Fields per Line</td></tr>
+<tr><td style="width: 25%;"><a href="create.post.html">create.post</a></td>
+<td>Ancillary Function for Preparing Emails and Postings</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="data.html">data</a></td>
+<td>Data Sets</td></tr>
+<tr><td style="width: 25%;"><a href="dataentry.html">data.entry</a></td>
+<td>Spreadsheet Interface for Entering Data</td></tr>
+<tr><td style="width: 25%;"><a href="dataentry.html">dataentry</a></td>
+<td>Spreadsheet Interface for Entering Data</td></tr>
+<tr><td style="width: 25%;"><a href="dataentry.html">de</a></td>
+<td>Spreadsheet Interface for Entering Data</td></tr>
+<tr><td style="width: 25%;"><a href="debugger.html">debugger</a></td>
+<td>Post-Mortem Debugging</td></tr>
+<tr><td style="width: 25%;"><a href="demo.html">demo</a></td>
+<td>Demonstrations of R Functionality</td></tr>
+<tr><td style="width: 25%;"><a href="download.file.html">download.file</a></td>
+<td>Download File from the Internet</td></tr>
+<tr><td style="width: 25%;"><a href="download.packages.html">download.packages</a></td>
+<td>Download Packages from CRAN-like Repositories</td></tr>
+<tr><td style="width: 25%;"><a href="debugger.html">dump.frames</a></td>
+<td>Post-Mortem Debugging</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="edit.html">edit</a></td>
+<td>Invoke a Text Editor</td></tr>
+<tr><td style="width: 25%;"><a href="edit.data.frame.html">edit.data.frame</a></td>
+<td>Edit Data Frames and Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="vignette.html">edit.vignette</a></td>
+<td>View, List or Get R Source of Package Vignettes</td></tr>
+<tr><td style="width: 25%;"><a href="edit.html">emacs</a></td>
+<td>Invoke a Text Editor</td></tr>
+<tr><td style="width: 25%;"><a href="example.html">example</a></td>
+<td>Run an Examples Section from the Online Help</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="file.edit.html">file.edit</a></td>
+<td>Edit One or More Files</td></tr>
+<tr><td style="width: 25%;"><a href="changedFiles.html">fileSnapshot</a></td>
+<td>Detect which files have changed</td></tr>
+<tr><td style="width: 25%;"><a href="filetest.html">file_test</a></td>
+<td>Shell-style Tests on Files</td></tr>
+<tr><td style="width: 25%;"><a href="apropos.html">find</a></td>
+<td>Find Objects by (Partial) Name</td></tr>
+<tr><td style="width: 25%;"><a href="findLineNum.html">findLineNum</a></td>
+<td>Find the Location of a Line of Source Code, or Set a Breakpoint There.</td></tr>
+<tr><td style="width: 25%;"><a href="fix.html">fix</a></td>
+<td>Fix an Object</td></tr>
+<tr><td style="width: 25%;"><a href="getFromNamespace.html">fixInNamespace</a></td>
+<td>Utility functions for Developing Namespaces</td></tr>
+<tr><td style="width: 25%;"><a href="flush.console.html">flush.console</a></td>
+<td>Flush Output to A Console</td></tr>
+<tr><td style="width: 25%;"><a href="object.size.html">format.object_size</a></td>
+<td>Report the Space Allocated for an Object</td></tr>
+<tr><td style="width: 25%;"><a href="person.html">format.person</a></td>
+<td>Persons</td></tr>
+<tr><td style="width: 25%;"><a href="format.html">formatOL</a></td>
+<td>Format Unordered and Ordered Lists</td></tr>
+<tr><td style="width: 25%;"><a href="format.html">formatUL</a></td>
+<td>Format Unordered and Ordered Lists</td></tr>
+</table>
+
+<h2><a name="G">-- G --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="getAnywhere.html">getAnywhere</a></td>
+<td>Retrieve an R Object, Including from a Namespace</td></tr>
+<tr><td style="width: 25%;"><a href="chooseBioCmirror.html">getBioCmirrors</a></td>
+<td>Select a Bioconductor Mirror</td></tr>
+<tr><td style="width: 25%;"><a href="chooseCRANmirror.html">getCRANmirrors</a></td>
+<td>Select a CRAN Mirror</td></tr>
+<tr><td style="width: 25%;"><a href="getFromNamespace.html">getFromNamespace</a></td>
+<td>Utility functions for Developing Namespaces</td></tr>
+<tr><td style="width: 25%;"><a href="getParseData.html">getParseData</a></td>
+<td>Get detailed parse information from object.</td></tr>
+<tr><td style="width: 25%;"><a href="getParseData.html">getParseText</a></td>
+<td>Get detailed parse information from object.</td></tr>
+<tr><td style="width: 25%;"><a href="getS3method.html">getS3method</a></td>
+<td>Get an S3 Method</td></tr>
+<tr><td style="width: 25%;"><a href="sourceutils.html">getSrcDirectory</a></td>
+<td>Source Reference Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="sourceutils.html">getSrcFilename</a></td>
+<td>Source Reference Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="sourceutils.html">getSrcLocation</a></td>
+<td>Source Reference Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="sourceutils.html">getSrcref</a></td>
+<td>Source Reference Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="txtProgressBar.html">getTxtProgressBar</a></td>
+<td>Text Progress Bar</td></tr>
+<tr><td style="width: 25%;"><a href="glob2rx.html">glob2rx</a></td>
+<td>Change Wildcard or Globbing Pattern into Regular Expression</td></tr>
+<tr><td style="width: 25%;"><a href="globalVariables.html">globalVariables</a></td>
+<td>Declarations Used in Checking a Package</td></tr>
+</table>
+
+<h2><a name="H">-- H --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="head.html">head</a></td>
+<td>Return the First or Last Part of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="help.html">help</a></td>
+<td>Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="help.request.html">help.request</a></td>
+<td>Send a Post to R-help</td></tr>
+<tr><td style="width: 25%;"><a href="help.search.html">help.search</a></td>
+<td>Search the Help System</td></tr>
+<tr><td style="width: 25%;"><a href="help.start.html">help.start</a></td>
+<td>Hypertext Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="savehistory.html">history</a></td>
+<td>Load or Save or Display the Commands History</td></tr>
+<tr><td style="width: 25%;"><a href="hsearch-utils.html">hsearch_db</a></td>
+<td>Help Search Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="hsearch-utils.html">hsearch_db_concepts</a></td>
+<td>Help Search Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="hsearch-utils.html">hsearch_db_keywords</a></td>
+<td>Help Search Utilities</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="INSTALL.html">INSTALL</a></td>
+<td>Install Add-on Packages</td></tr>
+<tr><td style="width: 25%;"><a href="install.packages.html">install.packages</a></td>
+<td>Install Packages from Repositories or Local Files</td></tr>
+<tr><td style="width: 25%;"><a href="installed.packages.html">installed.packages</a></td>
+<td>Find Installed Packages</td></tr>
+<tr><td style="width: 25%;"><a href="relist.html">is.relistable</a></td>
+<td>Allow Re-Listing an unlist()ed Object</td></tr>
+<tr><td style="width: 25%;"><a href="isS3method.html">isS3method</a></td>
+<td>Is 'method' the Name of an S3 Method?</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="recover.html">limitedLabels</a></td>
+<td>Browsing after an Error</td></tr>
+<tr><td style="width: 25%;"><a href="LINK.html">LINK</a></td>
+<td>Create Executable Programs</td></tr>
+<tr><td style="width: 25%;"><a href="savehistory.html">loadhistory</a></td>
+<td>Load or Save or Display the Commands History</td></tr>
+<tr><td style="width: 25%;"><a href="localeToCharset.html">localeToCharset</a></td>
+<td>Select a Suitable Encoding Name from a Locale Name</td></tr>
+<tr><td style="width: 25%;"><a href="ls_str.html">ls.str</a></td>
+<td>List Objects and their Structure</td></tr>
+<tr><td style="width: 25%;"><a href="ls_str.html">lsf.str</a></td>
+<td>List Objects and their Structure</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="maintainer.html">maintainer</a></td>
+<td>Show Package Maintainer</td></tr>
+<tr><td style="width: 25%;"><a href="make.packages.html.html">make.packages.html</a></td>
+<td>Update HTML Package List</td></tr>
+<tr><td style="width: 25%;"><a href="make.socket.html">make.socket</a></td>
+<td>Create a Socket Connection</td></tr>
+<tr><td style="width: 25%;"><a href="memory.size.html">memory.size</a></td>
+<td>Report on Memory Allocation</td></tr>
+<tr><td style="width: 25%;"><a href="menu.html">menu</a></td>
+<td>Menu Interaction Function</td></tr>
+<tr><td style="width: 25%;"><a href="methods.html">methods</a></td>
+<td>List Methods for S3 Generic Functions or Classes</td></tr>
+<tr><td style="width: 25%;"><a href="mirrorAdmin.html">mirror2html</a></td>
+<td>Managing Repository Mirrors</td></tr>
+<tr><td style="width: 25%;"><a href="mirrorAdmin.html">mirrorAdmin</a></td>
+<td>Managing Repository Mirrors</td></tr>
+<tr><td style="width: 25%;"><a href="modifyList.html">modifyList</a></td>
+<td>Recursively Modify Elements of a List</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="update.packages.html">new.packages</a></td>
+<td>Compare Installed Packages with CRAN-like Repositories</td></tr>
+<tr><td style="width: 25%;"><a href="news.html">news</a></td>
+<td>Build and Query R or Package News Information</td></tr>
+<tr><td style="width: 25%;"><a href="nsl.html">nsl</a></td>
+<td>Look up the IP Address by Hostname</td></tr>
+</table>
+
+<h2><a name="O">-- O --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="object.size.html">object.size</a></td>
+<td>Report the Space Allocated for an Object</td></tr>
+<tr><td style="width: 25%;"><a href="update.packages.html">old.packages</a></td>
+<td>Compare Installed Packages with CRAN-like Repositories</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="package.skeleton.html">package.skeleton</a></td>
+<td>Create a Skeleton for a New Source Package</td></tr>
+<tr><td style="width: 25%;"><a href="packageDescription.html">packageDescription</a></td>
+<td>Package Description</td></tr>
+<tr><td style="width: 25%;"><a href="packageName.html">packageName</a></td>
+<td>Find package associated with an environment.</td></tr>
+<tr><td style="width: 25%;"><a href="packageStatus.html">packageStatus</a></td>
+<td>Package Management Tools</td></tr>
+<tr><td style="width: 25%;"><a href="packageDescription.html">packageVersion</a></td>
+<td>Package Description</td></tr>
+<tr><td style="width: 25%;"><a href="page.html">page</a></td>
+<td>Invoke a Pager on an R Object</td></tr>
+<tr><td style="width: 25%;"><a href="person.html">person</a></td>
+<td>Persons</td></tr>
+<tr><td style="width: 25%;"><a href="person.html">personList</a></td>
+<td>Persons</td></tr>
+<tr><td style="width: 25%;"><a href="edit.html">pico</a></td>
+<td>Invoke a Text Editor</td></tr>
+<tr><td style="width: 25%;"><a href="bibentry.html">print.bibentry</a></td>
+<td>Bibliography Entries</td></tr>
+<tr><td style="width: 25%;"><a href="toLatex.html">print.Bibtex</a></td>
+<td>Converting R Objects to BibTeX or LaTeX</td></tr>
+<tr><td style="width: 25%;"><a href="browseVignettes.html">print.browseVignettes</a></td>
+<td>List Vignettes in an HTML Browser</td></tr>
+<tr><td style="width: 25%;"><a href="changedFiles.html">print.changedFiles</a></td>
+<td>Detect which files have changed</td></tr>
+<tr><td style="width: 25%;"><a href="getAnywhere.html">print.getAnywhere</a></td>
+<td>Retrieve an R Object, Including from a Namespace</td></tr>
+<tr><td style="width: 25%;"><a href="help.search.html">print.hsearch</a></td>
+<td>Search the Help System</td></tr>
+<tr><td style="width: 25%;"><a href="toLatex.html">print.Latex</a></td>
+<td>Converting R Objects to BibTeX or LaTeX</td></tr>
+<tr><td style="width: 25%;"><a href="ls_str.html">print.ls_str</a></td>
+<td>List Objects and their Structure</td></tr>
+<tr><td style="width: 25%;"><a href="methods.html">print.MethodsFunction</a></td>
+<td>List Methods for S3 Generic Functions or Classes</td></tr>
+<tr><td style="width: 25%;"><a href="news.html">print.news_db</a></td>
+<td>Build and Query R or Package News Information</td></tr>
+<tr><td style="width: 25%;"><a href="object.size.html">print.object_size</a></td>
+<td>Report the Space Allocated for an Object</td></tr>
+<tr><td style="width: 25%;"><a href="packageDescription.html">print.packageDescription</a></td>
+<td>Package Description</td></tr>
+<tr><td style="width: 25%;"><a href="data.html">print.packageIQR</a></td>
+<td>Data Sets</td></tr>
+<tr><td style="width: 25%;"><a href="packageStatus.html">print.packageStatus</a></td>
+<td>Package Management Tools</td></tr>
+<tr><td style="width: 25%;"><a href="person.html">print.person</a></td>
+<td>Persons</td></tr>
+<tr><td style="width: 25%;"><a href="sessionInfo.html">print.sessionInfo</a></td>
+<td>Collect Information About the Current R Session</td></tr>
+<tr><td style="width: 25%;"><a href="make.socket.html">print.socket</a></td>
+<td>Create a Socket Connection</td></tr>
+<tr><td style="width: 25%;"><a href="vignette.html">print.vignette</a></td>
+<td>View, List or Get R Source of Package Vignettes</td></tr>
+<tr><td style="width: 25%;"><a href="process.events.html">process.events</a></td>
+<td>Trigger event handling</td></tr>
+<tr><td style="width: 25%;"><a href="prompt.html">prompt</a></td>
+<td>Produce Prototype of an R Documentation File</td></tr>
+<tr><td style="width: 25%;"><a href="promptData.html">promptData</a></td>
+<td>Generate Outline Documentation for a Data Set</td></tr>
+<tr><td style="width: 25%;"><a href="prompt.html">promptImport</a></td>
+<td>Produce Prototype of an R Documentation File</td></tr>
+<tr><td style="width: 25%;"><a href="promptPackage.html">promptPackage</a></td>
+<td>Generate a Shell for Documentation of a Package</td></tr>
+</table>
+
+<h2><a name="Q">-- Q --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Question.html">Question</a></td>
+<td>Documentation Shortcuts</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="rcompgen.html">rc.settings</a></td>
+<td>A Completion Generator for R</td></tr>
+<tr><td style="width: 25%;"><a href="rcompgen.html">rcompgen</a></td>
+<td>A Completion Generator for R</td></tr>
+<tr><td style="width: 25%;"><a href="read.DIF.html">read.DIF</a></td>
+<td>Data Input from Spreadsheet</td></tr>
+<tr><td style="width: 25%;"><a href="read.fortran.html">read.fortran</a></td>
+<td>Read Fixed-Format Data in a Fortran-like Style</td></tr>
+<tr><td style="width: 25%;"><a href="read.fwf.html">read.fwf</a></td>
+<td>Read Fixed Width Format Files</td></tr>
+<tr><td style="width: 25%;"><a href="read.socket.html">read.socket</a></td>
+<td>Read from or Write to a Socket</td></tr>
+<tr><td style="width: 25%;"><a href="read.table.html">read.table</a></td>
+<td>Data Input</td></tr>
+<tr><td style="width: 25%;"><a href="citation.html">readCitationFile</a></td>
+<td>Citing R and R Packages in Publications</td></tr>
+<tr><td style="width: 25%;"><a href="recover.html">recover</a></td>
+<td>Browsing after an Error</td></tr>
+<tr><td style="width: 25%;"><a href="relist.html">relist</a></td>
+<td>Allow Re-Listing an unlist()ed Object</td></tr>
+<tr><td style="width: 25%;"><a href="REMOVE.html">REMOVE</a></td>
+<td>Remove Add-on Packages</td></tr>
+<tr><td style="width: 25%;"><a href="remove.packages.html">remove.packages</a></td>
+<td>Remove Installed Packages</td></tr>
+<tr><td style="width: 25%;"><a href="removeSource.html">removeSource</a></td>
+<td>Remove Stored Source from a Function.</td></tr>
+<tr><td style="width: 25%;"><a href="RHOME.html">RHOME</a></td>
+<td>R Home Directory</td></tr>
+<tr><td style="width: 25%;"><a href="Rprof.html">Rprof</a></td>
+<td>Enable Profiling of R's Execution</td></tr>
+<tr><td style="width: 25%;"><a href="Rprofmem.html">Rprofmem</a></td>
+<td>Enable Profiling of R's Memory Use</td></tr>
+<tr><td style="width: 25%;"><a href="Rscript.html">Rscript</a></td>
+<td>Scripting Front-End for R</td></tr>
+<tr><td style="width: 25%;"><a href="RShowDoc.html">RShowDoc</a></td>
+<td>Show R Manuals and Other Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="RSiteSearch.html">RSiteSearch</a></td>
+<td>Search for Key Words or Phrases in Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="rtags.html">rtags</a></td>
+<td>An Etags-like Tagging Utility for R</td></tr>
+<tr><td style="width: 25%;"><a href="Rtangle.html">Rtangle</a></td>
+<td>R Driver for Stangle</td></tr>
+<tr><td style="width: 25%;"><a href="Rtangle.html">RtangleSetup</a></td>
+<td>R Driver for Stangle</td></tr>
+<tr><td style="width: 25%;"><a href="RweaveLatex.html">RweaveLatex</a></td>
+<td>R/LaTeX Driver for Sweave</td></tr>
+<tr><td style="width: 25%;"><a href="RweaveLatex.html">RweaveLatexSetup</a></td>
+<td>R/LaTeX Driver for Sweave</td></tr>
+<tr><td style="width: 25%;"><a href="INSTALL.html">R_INSTALL_TAR</a></td>
+<td>Install Add-on Packages</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="savehistory.html">savehistory</a></td>
+<td>Load or Save or Display the Commands History</td></tr>
+<tr><td style="width: 25%;"><a href="select.list.html">select.list</a></td>
+<td>Select Items from a List</td></tr>
+<tr><td style="width: 25%;"><a href="sessionInfo.html">sessionInfo</a></td>
+<td>Collect Information About the Current R Session</td></tr>
+<tr><td style="width: 25%;"><a href="findLineNum.html">setBreakpoint</a></td>
+<td>Find the Location of a Line of Source Code, or Set a Breakpoint There.</td></tr>
+<tr><td style="width: 25%;"><a href="setRepositories.html">setRepositories</a></td>
+<td>Select Package Repositories</td></tr>
+<tr><td style="width: 25%;"><a href="txtProgressBar.html">setTxtProgressBar</a></td>
+<td>Text Progress Bar</td></tr>
+<tr><td style="width: 25%;"><a href="SHLIB.html">SHLIB</a></td>
+<td>Build Shared Object/DLL for Dynamic Loading</td></tr>
+<tr><td style="width: 25%;"><a href="stack.html">stack</a></td>
+<td>Stack or Unstack Vectors from a Data Frame or List</td></tr>
+<tr><td style="width: 25%;"><a href="Sweave.html">Stangle</a></td>
+<td>Automatic Generation of Reports</td></tr>
+<tr><td style="width: 25%;"><a href="str.html">str</a></td>
+<td>Compactly Display the Structure of an Arbitrary R Object</td></tr>
+<tr><td style="width: 25%;"><a href="str.html">strOptions</a></td>
+<td>Compactly Display the Structure of an Arbitrary R Object</td></tr>
+<tr><td style="width: 25%;"><a href="packageStatus.html">summary.packageStatus</a></td>
+<td>Package Management Tools</td></tr>
+<tr><td style="width: 25%;"><a href="summaryRprof.html">summaryRprof</a></td>
+<td>Summarise Output of R Sampling Profiler</td></tr>
+<tr><td style="width: 25%;"><a href="globalVariables.html">suppressForeignCheck</a></td>
+<td>Declarations Used in Checking a Package</td></tr>
+<tr><td style="width: 25%;"><a href="Sweave.html">Sweave</a></td>
+<td>Automatic Generation of Reports</td></tr>
+<tr><td style="width: 25%;"><a href="Sweave.html">SweaveSyntaxLatex</a></td>
+<td>Automatic Generation of Reports</td></tr>
+<tr><td style="width: 25%;"><a href="Sweave.html">SweaveSyntaxNoweb</a></td>
+<td>Automatic Generation of Reports</td></tr>
+<tr><td style="width: 25%;"><a href="SweaveSyntConv.html">SweaveSyntConv</a></td>
+<td>Convert Sweave Syntax</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="head.html">tail</a></td>
+<td>Return the First or Last Part of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="tar.html">tar</a></td>
+<td>Create a Tar Archive</td></tr>
+<tr><td style="width: 25%;"><a href="savehistory.html">timestamp</a></td>
+<td>Load or Save or Display the Commands History</td></tr>
+<tr><td style="width: 25%;"><a href="toLatex.html">toBibtex</a></td>
+<td>Converting R Objects to BibTeX or LaTeX</td></tr>
+<tr><td style="width: 25%;"><a href="person.html">toBibtex.person</a></td>
+<td>Persons</td></tr>
+<tr><td style="width: 25%;"><a href="toLatex.html">toLatex</a></td>
+<td>Converting R Objects to BibTeX or LaTeX</td></tr>
+<tr><td style="width: 25%;"><a href="sessionInfo.html">toLatex.sessionInfo</a></td>
+<td>Collect Information About the Current R Session</td></tr>
+<tr><td style="width: 25%;"><a href="txtProgressBar.html">txtProgressBar</a></td>
+<td>Text Progress Bar</td></tr>
+<tr><td style="width: 25%;"><a href="type.convert.html">type.convert</a></td>
+<td>Type Conversion on Character Variables</td></tr>
+</table>
+
+<h2><a name="U">-- U --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="relist.html">unlist.relistable</a></td>
+<td>Allow Re-Listing an unlist()ed Object</td></tr>
+<tr><td style="width: 25%;"><a href="stack.html">unstack</a></td>
+<td>Stack or Unstack Vectors from a Data Frame or List</td></tr>
+<tr><td style="width: 25%;"><a href="untar.html">untar</a></td>
+<td>Extract or List Tar Archives</td></tr>
+<tr><td style="width: 25%;"><a href="unzip.html">unzip</a></td>
+<td>Extract or List Zip Archives</td></tr>
+<tr><td style="width: 25%;"><a href="update.packages.html">update.packages</a></td>
+<td>Compare Installed Packages with CRAN-like Repositories</td></tr>
+<tr><td style="width: 25%;"><a href="packageStatus.html">update.packageStatus</a></td>
+<td>Package Management Tools</td></tr>
+<tr><td style="width: 25%;"><a href="packageStatus.html">upgrade.packageStatus</a></td>
+<td>Package Management Tools</td></tr>
+<tr><td style="width: 25%;"><a href="url.show.html">url.show</a></td>
+<td>Display a text URL</td></tr>
+<tr><td style="width: 25%;"><a href="URLencode.html">URLdecode</a></td>
+<td>Encode or Decode a (partial) URL</td></tr>
+<tr><td style="width: 25%;"><a href="URLencode.html">URLencode</a></td>
+<td>Encode or Decode a (partial) URL</td></tr>
+<tr><td style="width: 25%;"><a href="utils-package.html">utils</a></td>
+<td>The R Utils Package</td></tr>
+<tr><td style="width: 25%;"><a href="utils-deprecated.html">utils-deprecated</a></td>
+<td>Deprecated Functions in Package 'utils'</td></tr>
+</table>
+
+<h2><a name="V">-- V --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="edit.html">vi</a></td>
+<td>Invoke a Text Editor</td></tr>
+<tr><td style="width: 25%;"><a href="View.html">View</a></td>
+<td>Invoke a Data Viewer</td></tr>
+<tr><td style="width: 25%;"><a href="vignette.html">vignette</a></td>
+<td>View, List or Get R Source of Package Vignettes</td></tr>
+<tr><td style="width: 25%;"><a href="vignette.html">vignettes</a></td>
+<td>View, List or Get R Source of Package Vignettes</td></tr>
+</table>
+
+<h2><a name="W">-- W --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="read.socket.html">write.socket</a></td>
+<td>Read from or Write to a Socket</td></tr>
+<tr><td style="width: 25%;"><a href="write.table.html">write.table</a></td>
+<td>Data Output</td></tr>
+<tr><td style="width: 25%;"><a href="browseEnv.html">wsbrowser</a></td>
+<td>Browse Objects in Environment</td></tr>
+</table>
+
+<h2><a name="X">-- X --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="edit.html">xedit</a></td>
+<td>Invoke a Text Editor</td></tr>
+<tr><td style="width: 25%;"><a href="edit.html">xemacs</a></td>
+<td>Invoke a Text Editor</td></tr>
+</table>
+
+<h2><a name="Z">-- Z --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="zip.html">zip</a></td>
+<td>Create Zip archives</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="person.html">$.person</a></td>
+<td>Persons</td></tr>
+<tr><td style="width: 25%;"><a href="rcompgen.html">.DollarNames</a></td>
+<td>A Completion Generator for R</td></tr>
+<tr><td style="width: 25%;"><a href="roman.html">.romans</a></td>
+<td>Roman Numerals</td></tr>
+<tr><td style="width: 25%;"><a href="methods.html">.S3methods</a></td>
+<td>List Methods for S3 Generic Functions or Classes</td></tr>
+<tr><td style="width: 25%;"><a href="Question.html">?</a></td>
+<td>Documentation Shortcuts</td></tr>
+<tr><td style="width: 25%;"><a href="help.search.html">??</a></td>
+<td>Search the Help System</td></tr>
+<tr><td style="width: 25%;"><a href="getAnywhere.html">[.getAnywhere</a></td>
+<td>Retrieve an R Object, Including from a Namespace</td></tr>
+<tr><td style="width: 25%;"><a href="person.html">[.person</a></td>
+<td>Persons</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/INDEX	(revision 2476)
@@ -0,0 +1,146 @@
+BATCH                   Batch Execution of R
+COMPILE                 Compile Files for Use with R
+INSTALL                 Install Add-on Packages
+LINK                    Create Executable Programs
+Question                Documentation Shortcuts
+REMOVE                  Remove Add-on Packages
+RHOME                   R Home Directory
+RShowDoc                Show R Manuals and Other Documentation
+RSiteSearch             Search for Key Words or Phrases in
+                        Documentation
+Rprof                   Enable Profiling of R's Execution
+Rprofmem                Enable Profiling of R's Memory Use
+Rscript                 Scripting Front-End for R
+Rtangle                 R Driver for Stangle
+RweaveLatex             R/LaTeX Driver for Sweave
+SHLIB                   Build Shared Object/DLL for Dynamic Loading
+Sweave                  Automatic Generation of Reports
+SweaveSyntConv          Convert Sweave Syntax
+URLencode               Encode or Decode a (partial) URL
+View                    Invoke a Data Viewer
+adist                   Approximate String Distances
+alarm                   Alert the User
+apropos                 Find Objects by (Partial) Name
+aregexec                Approximate String Match Positions
+as.roman                Roman Numerals
+aspell                  Spell Check Interface
+aspell-utils            Spell Check Utilities
+available.packages      List Available Packages at CRAN-like
+                        Repositories
+bibentry                Bibliography Entries
+browseEnv               Browse Objects in Environment
+browseURL               Load URL into an HTML Browser
+browseVignettes         List Vignettes in an HTML Browser
+bug.report              Send a Bug Report
+build                   Utilities for Building and Checking Add-on
+                        Packages
+capture.output          Send Output to a Character String or File
+changedFiles            Detect which files have changed
+chooseBioCmirror        Select a Bioconductor Mirror
+chooseCRANmirror        Select a CRAN Mirror
+citEntry                Bibliography Entries (Older Interface)
+citation                Citing R and R Packages in Publications
+cite                    Cite a bibliography entry.
+close.socket            Close a Socket
+combn                   Generate All Combinations of n Elements, Taken
+                        m at a Time
+compareVersion          Compare Two Package Version Numbers
+contrib.url             Find Appropriate Paths in CRAN-like
+                        Repositories
+count.fields            Count the Number of Fields per Line
+create.post             Ancillary Function for Preparing Emails and
+                        Postings
+data                    Data Sets
+dataentry               Spreadsheet Interface for Entering Data
+debugger                Post-Mortem Debugging
+demo                    Demonstrations of R Functionality
+download.file           Download File from the Internet
+download.packages       Download Packages from CRAN-like Repositories
+edit                    Invoke a Text Editor
+edit.data.frame         Edit Data Frames and Matrices
+example                 Run an Examples Section from the Online Help
+file.edit               Edit One or More Files
+file_test               Shell-style Tests on Files
+findLineNum             Find the Location of a Line of Source Code, or
+                        Set a Breakpoint There.
+fix                     Fix an Object
+flush.console           Flush Output to A Console
+formatUL                Format Unordered and Ordered Lists
+getAnywhere             Retrieve an R Object, Including from a
+                        Namespace
+getFromNamespace        Utility functions for Developing Namespaces
+getParseData            Get detailed parse information from object.
+getS3method             Get an S3 Method
+getSrcFilename          Source Reference Utilities
+glob2rx                 Change Wildcard or Globbing Pattern into
+                        Regular Expression
+globalVariables         Declarations Used in Checking a Package
+head                    Return the First or Last Part of an Object
+help                    Documentation
+help.request            Send a Post to R-help
+help.search             Search the Help System
+help.start              Hypertext Documentation
+hsearch_db              Help Search Utilities
+install.packages        Install Packages from Repositories or Local
+                        Files
+installed.packages      Find Installed Packages
+isS3method              Is 'method' the Name of an S3 Method?
+localeToCharset         Select a Suitable Encoding Name from a Locale
+                        Name
+ls.str                  List Objects and their Structure
+maintainer              Show Package Maintainer
+make.packages.html      Update HTML Package List
+make.socket             Create a Socket Connection
+memory.size             Report on Memory Allocation
+menu                    Menu Interaction Function
+methods                 List Methods for S3 Generic Functions or
+                        Classes
+mirrorAdmin             Managing Repository Mirrors
+modifyList              Recursively Modify Elements of a List
+news                    Build and Query R or Package News Information
+nsl                     Look up the IP Address by Hostname
+object.size             Report the Space Allocated for an Object
+package.skeleton        Create a Skeleton for a New Source Package
+packageDescription      Package Description
+packageName             Find package associated with an environment.
+packageStatus           Package Management Tools
+page                    Invoke a Pager on an R Object
+person                  Persons
+process.events          Trigger event handling
+prompt                  Produce Prototype of an R Documentation File
+promptData              Generate Outline Documentation for a Data Set
+promptPackage           Generate a Shell for Documentation of a Package
+rcompgen                A Completion Generator for R
+read.DIF                Data Input from Spreadsheet
+read.fortran            Read Fixed-Format Data in a Fortran-like Style
+read.fwf                Read Fixed Width Format Files
+read.socket             Read from or Write to a Socket
+read.table              Data Input
+recover                 Browsing after an Error
+relist                  Allow Re-Listing an unlist()ed Object
+remove.packages         Remove Installed Packages
+removeSource            Remove Stored Source from a Function.
+rtags                   An Etags-like Tagging Utility for R
+savehistory             Load or Save or Display the Commands History
+select.list             Select Items from a List
+sessionInfo             Collect Information About the Current R Session
+setRepositories         Select Package Repositories
+stack                   Stack or Unstack Vectors from a Data Frame or
+                        List
+str                     Compactly Display the Structure of an Arbitrary
+                        R Object
+summaryRprof            Summarise Output of R Sampling Profiler
+tar                     Create a Tar Archive
+toLatex                 Converting R Objects to BibTeX or LaTeX
+txtProgressBar          Text Progress Bar
+type.convert            Type Conversion on Character Variables
+untar                   Extract or List Tar Archives
+unzip                   Extract or List Zip Archives
+update.packages         Compare Installed Packages with CRAN-like
+                        Repositories
+url.show                Display a text URL
+utils-deprecated        Deprecated Functions in Package 'utils'
+utils-package           The R Utils Package
+vignette                View, List or Get R Source of Package Vignettes
+write.table             Data Output
+zip                     Create Zip archives
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/iconvlist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/iconvlist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/iconvlist	(revision 2476)
@@ -0,0 +1,141 @@
+ANSI_X3.4-1968 ANSI_X3.4-1986 ASCII CP367 IBM367 ISO-IR-6 ISO646-US ISO_646.IRV:1991 US US-ASCII CSASCII
+UTF-8 UTF8
+UTF-8-MAC UTF8-MAC
+ISO-10646-UCS-2 UCS-2 CSUNICODE
+UCS-2BE UNICODE-1-1 UNICODEBIG CSUNICODE11
+UCS-2LE UNICODELITTLE
+ISO-10646-UCS-4 UCS-4 CSUCS4
+UCS-4BE
+UCS-4LE
+UTF-16
+UTF-16BE
+UTF-16LE
+UTF-32
+UTF-32BE
+UTF-32LE
+UNICODE-1-1-UTF-7 UTF-7 CSUNICODE11UTF7
+UCS-2-INTERNAL
+UCS-2-SWAPPED
+UCS-4-INTERNAL
+UCS-4-SWAPPED
+C99
+JAVA
+CP819 IBM819 ISO-8859-1 ISO-IR-100 ISO8859-1 ISO_8859-1 ISO_8859-1:1987 L1 LATIN1 CSISOLATIN1
+ISO-8859-2 ISO-IR-101 ISO8859-2 ISO_8859-2 ISO_8859-2:1987 L2 LATIN2 CSISOLATIN2
+ISO-8859-3 ISO-IR-109 ISO8859-3 ISO_8859-3 ISO_8859-3:1988 L3 LATIN3 CSISOLATIN3
+ISO-8859-4 ISO-IR-110 ISO8859-4 ISO_8859-4 ISO_8859-4:1988 L4 LATIN4 CSISOLATIN4
+CYRILLIC ISO-8859-5 ISO-IR-144 ISO8859-5 ISO_8859-5 ISO_8859-5:1988 CSISOLATINCYRILLIC
+ARABIC ASMO-708 ECMA-114 ISO-8859-6 ISO-IR-127 ISO8859-6 ISO_8859-6 ISO_8859-6:1987 CSISOLATINARABIC
+ECMA-118 ELOT_928 GREEK GREEK8 ISO-8859-7 ISO-IR-126 ISO8859-7 ISO_8859-7 ISO_8859-7:1987 ISO_8859-7:2003 CSISOLATINGREEK
+HEBREW ISO-8859-8 ISO-IR-138 ISO8859-8 ISO_8859-8 ISO_8859-8:1988 CSISOLATINHEBREW
+ISO-8859-9 ISO-IR-148 ISO8859-9 ISO_8859-9 ISO_8859-9:1989 L5 LATIN5 CSISOLATIN5
+ISO-8859-10 ISO-IR-157 ISO8859-10 ISO_8859-10 ISO_8859-10:1992 L6 LATIN6 CSISOLATIN6
+ISO-8859-11 ISO8859-11 ISO_8859-11
+ISO-8859-13 ISO-IR-179 ISO8859-13 ISO_8859-13 L7 LATIN7
+ISO-8859-14 ISO-CELTIC ISO-IR-199 ISO8859-14 ISO_8859-14 ISO_8859-14:1998 L8 LATIN8
+ISO-8859-15 ISO-IR-203 ISO8859-15 ISO_8859-15 ISO_8859-15:1998 LATIN-9
+ISO-8859-16 ISO-IR-226 ISO8859-16 ISO_8859-16 ISO_8859-16:2001 L10 LATIN10
+KOI8-R CSKOI8R
+KOI8-U
+KOI8-RU
+CP1250 MS-EE WINDOWS-1250
+CP1251 MS-CYRL WINDOWS-1251
+CP1252 MS-ANSI WINDOWS-1252
+CP1253 MS-GREEK WINDOWS-1253
+CP1254 MS-TURK WINDOWS-1254
+CP1255 MS-HEBR WINDOWS-1255
+CP1256 MS-ARAB WINDOWS-1256
+CP1257 WINBALTRIM WINDOWS-1257
+CP1258 WINDOWS-1258
+850 CP850 IBM850 CSPC850MULTILINGUAL
+862 CP862 IBM862 CSPC862LATINHEBREW
+866 CP866 IBM866 CSIBM866
+MAC MACINTOSH MACROMAN CSMACINTOSH
+MACCENTRALEUROPE
+MACICELAND
+MACCROATIAN
+MACROMANIA
+MACCYRILLIC
+MACUKRAINE
+MACGREEK
+MACTURKISH
+MACHEBREW
+MACARABIC
+MACTHAI
+HP-ROMAN8 R8 ROMAN8 CSHPROMAN8
+NEXTSTEP
+ARMSCII-8
+GEORGIAN-ACADEMY
+GEORGIAN-PS
+KOI8-T
+CP154 CYRILLIC-ASIAN PT154 PTCP154 CSPTCP154
+MULELAO-1
+CP1133 IBM-CP1133
+ISO-IR-166 TIS-620 TIS620 TIS620-0 TIS620.2529-1 TIS620.2533-0 TIS620.2533-1
+CP874 WINDOWS-874
+VISCII VISCII1.1-1 CSVISCII
+TCVN TCVN-5712 TCVN5712-1 TCVN5712-1:1993
+ISO-IR-14 ISO646-JP JIS_C6220-1969-RO JP CSISO14JISC6220RO
+JISX0201-1976 JIS_X0201 X0201 CSHALFWIDTHKATAKANA
+ISO-IR-87 JIS0208 JIS_C6226-1983 JIS_X0208 JIS_X0208-1983 JIS_X0208-1990 X0208 CSISO87JISX0208
+ISO-IR-159 JIS_X0212 JIS_X0212-1990 JIS_X0212.1990-0 X0212 CSISO159JISX02121990
+CN GB_1988-80 ISO-IR-57 ISO646-CN CSISO57GB1988
+CHINESE GB_2312-80 ISO-IR-58 CSISO58GB231280
+CN-GB-ISOIR165 ISO-IR-165
+ISO-IR-149 KOREAN KSC_5601 KS_C_5601-1987 KS_C_5601-1989 CSKSC56011987
+EUC-JP EUCJP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE CSEUCPKDFMTJAPANESE
+MS_KANJI SHIFT-JIS SHIFT_JIS SJIS CSSHIFTJIS
+CP932
+ISO-2022-JP CSISO2022JP
+ISO-2022-JP-1
+ISO-2022-JP-2 CSISO2022JP2
+CN-GB EUC-CN EUCCN GB2312 CSGB2312
+GBK
+CP936 MS936 WINDOWS-936
+GB18030
+ISO-2022-CN CSISO2022CN
+ISO-2022-CN-EXT
+HZ HZ-GB-2312
+EUC-TW EUCTW CSEUCTW
+BIG-5 BIG-FIVE BIG5 BIGFIVE CN-BIG5 CSBIG5
+CP950
+BIG5-HKSCS:1999
+BIG5-HKSCS:2001
+BIG5-HKSCS BIG5-HKSCS:2004 BIG5HKSCS
+EUC-KR EUCKR CSEUCKR
+CP949 UHC
+CP1361 JOHAB
+ISO-2022-KR CSISO2022KR
+CP856
+CP922
+CP943
+CP1046
+CP1124
+CP1129
+CP1161 IBM-1161 IBM1161 CSIBM1161
+CP1162 IBM-1162 IBM1162 CSIBM1162
+CP1163 IBM-1163 IBM1163 CSIBM1163
+DEC-KANJI
+DEC-HANYU
+437 CP437 IBM437 CSPC8CODEPAGE437
+CP737
+CP775 IBM775 CSPC775BALTIC
+852 CP852 IBM852 CSPCP852
+CP853
+855 CP855 IBM855 CSIBM855
+857 CP857 IBM857 CSIBM857
+CP858
+860 CP860 IBM860 CSIBM860
+861 CP-IS CP861 IBM861 CSIBM861
+863 CP863 IBM863 CSIBM863
+CP864 IBM864 CSIBM864
+865 CP865 IBM865 CSIBM865
+869 CP-GR CP869 IBM869 CSIBM869
+CP1125
+EUC-JISX0213
+SHIFT_JISX0213
+ISO-2022-JP-3
+BIG5-2003
+ISO-IR-230 TDS565
+ATARI ATARIST
+RISCOS-LATIN1
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/utils/NAMESPACE	(revision 2476)
@@ -0,0 +1,174 @@
+# Refer to all C routines by their name prefixed by C_
+useDynLib(utils, .registration = TRUE, .fixes = "C_")
+
+export("?", .DollarNames, .S3methods, .romans,
+       CRAN.packages, Rprof, Rprofmem, RShowDoc,
+       RSiteSearch, URLdecode, URLencode, View, adist, alarm, apropos,
+       aregexec, argsAnywhere, assignInMyNamespace, assignInNamespace,
+       as.roman, as.person, as.personList, as.relistable, aspell,
+       aspell_package_C_files, aspell_package_R_files,
+       aspell_package_Rd_files, aspell_package_vignettes,
+       aspell_write_personal_dictionary_file, available.packages,
+       browseEnv, browseURL, browseVignettes, bug.report,
+       capture.output, changedFiles, checkCRAN, chooseBioCmirror, chooseCRANmirror,
+       citation, cite, citeNatbib, citEntry, citHeader, citFooter,
+       close.socket, combn, compareVersion, contrib.url, count.fields,
+       create.post, data, data.entry, dataentry, de, de.ncols,
+       de.restore, de.setup, debugger, demo, download.file,
+       download.packages, dump.frames, edit, emacs, example,
+       file_test, file.edit, fileSnapshot, find, fix, fixInNamespace, findLineNum,
+       flush.console, formatOL, formatUL, getAnywhere, getCRANmirrors,
+       getFromNamespace, getParseData, getParseText, getS3method,
+       getSrcDirectory, getSrcFilename, getSrcLocation, getSrcref, # getRcode,
+       glob2rx, globalVariables, head, head.matrix, help,
+       help.request, help.search, help.start, history,
+       install.packages, installed.packages, is.relistable, isS3method,
+       limitedLabels, loadhistory, localeToCharset, ls.str, lsf.str,
+       maintainer, make.packages.html, make.socket, memory.limit,
+       memory.size, menu, methods, mirror2html, modifyList,
+       new.packages, news, object.size, old.packages,
+       package.skeleton, packageDescription, packageName,
+       packageVersion, packageStatus, page, person, personList, pico,
+       process.events, prompt, promptData, promptImport, promptPackage,
+       rc.getOption, rc.options, rc.settings, rc.status,
+       readCitationFile, read.DIF, read.csv, read.csv2, read.delim,
+       read.delim2, read.fwf, read.fortran, read.socket, read.table,
+       recover, relist, remove.packages, removeSource, rtags,
+       savehistory, select.list, sessionInfo, setBreakpoint,
+       setRepositories, stack, str, strOptions, summaryRprof,
+       suppressForeignCheck, tail, tail.matrix, tar, timestamp,
+       toBibtex, toLatex, type.convert, unstack, untar, unzip,
+       update.packageStatus, update.packages, upgrade, url.show, vi,
+       vignette, write.csv, write.csv2, write.socket, write.table,
+       xedit, xemacs, zip)
+
+export(txtProgressBar, getTxtProgressBar, setTxtProgressBar)
+
+export("hsearch_db", "hsearch_db_concepts", "hsearch_db_keywords")
+
+S3method("[", getAnywhere)
+S3method("[", roman)
+S3method(Ops, roman)
+S3method(as.character, person)
+S3method(as.character, roman)
+S3method(as.person, default)
+S3method(as.personList, default)
+S3method(as.personList, person)
+S3method(close, txtProgressBar)
+S3method(edit, data.frame)
+S3method(edit, default)
+S3method(edit, matrix)
+S3method(edit, vignette)
+S3method(format, "aspell")
+S3method(format, "news_db")
+S3method(format, "object_size")
+S3method(format, "roman")
+S3method(getRcode, vignette)
+S3method(head, data.frame)
+S3method(head, default)
+S3method(head, "function")
+S3method(head, matrix)
+S3method(head, ftable)
+S3method(head, table)
+S3method(print, "aspell")
+S3method(print, "aspell_inspect_context")
+S3method(print, Bibtex)
+S3method(print, changedFiles)
+S3method(print, fileSnapshot)
+S3method(print, findLineNumResult)
+S3method(print, getAnywhere)
+S3method(print, "help_files_with_topic")
+S3method(print, hsearch)
+S3method(print, "hsearch_db")
+S3method(print, Latex)
+S3method(print, "ls_str")
+S3method(print, MethodsFunction)
+S3method(print, "news_db")
+S3method(print, "object_size")
+S3method(print, packageDescription)
+S3method(print, packageIQR)
+S3method(print, packageStatus)
+S3method(print, roman)
+S3method(print, sessionInfo)
+S3method(print, socket)
+S3method(print, summary.packageStatus)
+S3method(print, vignette)
+S3method(print, browseVignettes)
+S3method(prompt, data.frame)
+S3method(prompt, default)
+S3method(relist, default)
+S3method(relist, factor)
+S3method(relist, list)
+S3method(relist, matrix)
+S3method(rep, roman)
+S3method(stack, data.frame)
+S3method(stack, default)
+S3method(str, POSIXt)
+S3method(str, Date)
+S3method(str, data.frame)
+S3method(str, default)
+S3method(summary, aspell)
+S3method(summary, packageStatus)
+S3method(tail, data.frame)
+S3method(tail, default)
+S3method(tail, "function")
+S3method(tail, matrix)
+S3method(tail, ftable)
+S3method(tail, table)
+S3method(toBibtex, person)
+S3method(toLatex, sessionInfo)
+S3method(unlist, relistable)
+S3method(unstack, data.frame)
+S3method(unstack, default)
+S3method(upgrade, packageStatus)
+## can't register update.packageStatus as update is in stats
+## and would create a cycle, i.e., can NOT use anything from stats
+
+export("bibentry")
+S3method("$", "bibentry")
+S3method("$", "person")
+S3method("$<-", "bibentry")
+S3method("$<-", "person")
+S3method("[", "bibentry")
+S3method("[", "person")
+S3method("[[", "bibentry")
+S3method("[[", "person")
+S3method("c", "bibentry")
+S3method("c", "person")
+S3method("format", "bibentry")
+S3method("format", "person")
+S3method("print", "bibentry")
+S3method("print", "citation")
+S3method("print", "person")
+S3method("rep", "bibentry")
+S3method("sort", "bibentry")
+S3method("toBibtex", "bibentry")
+S3method("unique", "bibentry")
+
+S3method(.DollarNames, default)
+S3method(.DollarNames, list)
+S3method(.DollarNames, environment)
+
+export(Rtangle, RtangleSetup, RweaveLatex, RweaveLatexSetup, Stangle,
+       Sweave, SweaveSyntConv, SweaveSyntaxLatex, SweaveSyntaxNoweb,
+       RtangleWritedoc, RweaveChunkPrefix, RweaveEvalWithOpt,
+       RweaveTryStop, SweaveHooks, RweaveLatexWritedoc,
+       RweaveLatexOptions, RweaveLatexFinish,
+       makeRweaveLatexCodeRunner)
+
+if(tools:::.OStype() == "unix") {
+export(nsl)
+}
+
+if(tools:::.OStype() == "windows") {
+export(DLL.version, Filters, choose.dir, choose.files, getClipboardFormats,
+       getIdentification, getWindowsHandle, getWindowsHandles, getWindowTitle,
+       loadRconsole, readClipboard,
+       readRegistry, setStatusBar, setWindowTitle, shortPathName,
+       win.version, winDialog, winDialogString, winMenuAdd,
+       winMenuAddItem, winMenuDel, winMenuDelItem, winMenuNames,
+       winMenuItems, writeClipboard, zip.unpack,
+       winProgressBar, getWinProgressBar, setWinProgressBar,
+       setInternet2, arrangeWindows)
+S3method(close, winProgressBar)
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/R/lme4.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/R/lme4.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/R/lme4.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/R/lme4.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/R/sysdata.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/R/sysdata.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/R/lme4
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/R/lme4	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/R/lme4	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/R/sysdata.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/R/sysdata.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/DESCRIPTION	(revision 2476)
@@ -0,0 +1,44 @@
+Package: lme4
+Version: 1.1-12
+Title: Linear Mixed-Effects Models using 'Eigen' and S4
+Authors@R: c(person("Douglas","Bates", role="aut"),
+    person("Martin","Maechler", role="aut"),
+    person("Ben","Bolker",email="bbolker+lme4@gmail.com", role=c("aut","cre")),
+    person("Steven","Walker",role="aut"),
+    person("Rune Haubo Bojesen","Christensen", role="ctb"),
+    person("Henrik","Singmann", role="ctb"),
+    person("Bin", "Dai", role="ctb"),
+    person("Gabor", "Grothendieck", role="ctb"),
+    person("Peter", "Green", role="ctb"))
+Contact: LME4 Authors <lme4-authors@lists.r-forge.r-project.org>
+Description: Fit linear and generalized linear mixed-effects models.
+    The models and their components are represented using S4 classes and
+    methods.  The core computational algorithms are implemented using the
+    'Eigen' C++ library for numerical linear algebra and 'RcppEigen' "glue".
+Depends: R (>= 3.0.2), Matrix (>= 1.1.1), methods, stats
+LinkingTo: Rcpp (>= 0.10.5), RcppEigen
+Imports: graphics, grid, splines, utils, parallel, MASS, lattice, nlme
+        (>= 3.1-123), minqa (>= 1.1.15), nloptr (>= 1.0.4)
+Suggests: knitr, boot, PKPDmodels, MEMSS, testthat (>= 0.8.1), ggplot2,
+        mlmRev, optimx (>= 2013.8.6), gamm4, pbkrtest, HSAUR2, numDeriv
+VignetteBuilder: knitr
+LazyData: yes
+License: GPL (>= 2)
+URL: https://github.com/lme4/lme4/ http://lme4.r-forge.r-project.org/
+BugReports: https://github.com/lme4/lme4/issues
+NeedsCompilation: yes
+Packaged: 2016-04-16 03:11:44 UTC; bolker
+Author: Douglas Bates [aut],
+  Martin Maechler [aut],
+  Ben Bolker [aut, cre],
+  Steven Walker [aut],
+  Rune Haubo Bojesen Christensen [ctb],
+  Henrik Singmann [ctb],
+  Bin Dai [ctb],
+  Gabor Grothendieck [ctb],
+  Peter Green [ctb]
+Maintainer: Ben Bolker <bbolker+lme4@gmail.com>
+Repository: CRAN
+Date/Publication: 2016-04-16 20:40:11
+Built: R 3.3.0; x86_64-apple-darwin13.4.0; 2016-05-05 12:10:45 UTC; unix
+Archs: lme4.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/html/00Index.html	(revision 2476)
@@ -0,0 +1,550 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Linear Mixed-Effects Models using 'Eigen' and S4</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Linear Mixed-Effects Models using 'Eigen' and S4
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;lme4&rsquo; version 1.1-12</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="# "> </a>
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#G">G</a>
+<a href="#H">H</a>
+<a href="#I">I</a>
+<a href="#L">L</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#O">O</a>
+<a href="#P">P</a>
+<a href="#Q">Q</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#U">U</a>
+<a href="#V">V</a>
+<a href="#W">W</a>
+<a href="#X">X</a>
+<a href="#misc">misc</a>
+</p>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="lme4-package.html">lme4-package</a></td>
+<td>Linear, generalized linear, and nonlinear mixed models</td></tr>
+</table>
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="merMod-class.html">anova.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="Arabidopsis.html">Arabidopsis</a></td>
+<td>Arabidopsis clipping/fertilization data</td></tr>
+<tr><td style="width: 25%;"><a href="profile-methods.html">as.data.frame.thpr</a></td>
+<td>Profile method for merMod objects</td></tr>
+<tr><td style="width: 25%;"><a href="VarCorr.html">as.data.frame.VarCorr.merMod</a></td>
+<td>Extract Variance and Correlation Components</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">as.function.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="bootMer.html">bootMer</a></td>
+<td>Model-based (Semi-)Parametric Bootstrap for Mixed Models</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="cake.html">cake</a></td>
+<td>Breakage Angle of Chocolate Cakes</td></tr>
+<tr><td style="width: 25%;"><a href="cbpp.html">cbpp</a></td>
+<td>Contagious bovine pleuropneumonia</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">coef.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="confint.merMod.html">confint.merMod</a></td>
+<td>Compute Confidence Intervals for Parameters of a [ng]lmer Fit</td></tr>
+<tr><td style="width: 25%;"><a href="convergence.html">convergence</a></td>
+<td>Assessing Convergence for Fitted Models</td></tr>
+<tr><td style="width: 25%;"><a href="vcconv.html">cov2sdcor</a></td>
+<td>Convert between representations of (co-)variance structures</td></tr>
+<tr><td style="width: 25%;"><a href="vcconv.html">Cv_to_Sv</a></td>
+<td>Convert between representations of (co-)variance structures</td></tr>
+<tr><td style="width: 25%;"><a href="vcconv.html">Cv_to_Vv</a></td>
+<td>Convert between representations of (co-)variance structures</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="plots.thpr.html">densityplot.thpr</a></td>
+<td>Mixed-Effects Profile Plots (Regular / Density / Pairs)</td></tr>
+<tr><td style="width: 25%;"><a href="devcomp.html">devcomp</a></td>
+<td>Extract the deviance component list</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">deviance.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">df.residual.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="ranef.html">dotplot.ranef.mer</a></td>
+<td>Extract the modes of the random effects</td></tr>
+<tr><td style="width: 25%;"><a href="drop1.merMod.html">drop1.merMod</a></td>
+<td>Drop all possible single fixed-effect terms from a mixed effect model</td></tr>
+<tr><td style="width: 25%;"><a href="dummy.html">dummy</a></td>
+<td>Dummy variables (experimental)</td></tr>
+<tr><td style="width: 25%;"><a href="Dyestuff.html">Dyestuff</a></td>
+<td>Yield of dyestuff by batch</td></tr>
+<tr><td style="width: 25%;"><a href="Dyestuff.html">Dyestuff2</a></td>
+<td>Yield of dyestuff by batch</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="expandDoubleVerts.html">expandDoubleVerts</a></td>
+<td>Expand terms with "||" notation into separate "|" terms</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">extractAIC.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="factorize.html">factorize</a></td>
+<td>Attempt to convert grouping variables to factors</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">family.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="findbars.html">findbars</a></td>
+<td>Determine random-effects expressions from a formula</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">fitted.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="fixef.html">fixed.effects</a></td>
+<td>Extract fixed-effects estimates</td></tr>
+<tr><td style="width: 25%;"><a href="fixef.html">fixef</a></td>
+<td>Extract fixed-effects estimates</td></tr>
+<tr><td style="width: 25%;"><a href="fixef.html">fixef.merMod</a></td>
+<td>Extract fixed-effects estimates</td></tr>
+<tr><td style="width: 25%;"><a href="utilities.html">formatVC</a></td>
+<td>Print and Summary Method Utilities for Mixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">formula.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="fortify.html">fortify</a></td>
+<td>add information to data based on a fitted model</td></tr>
+<tr><td style="width: 25%;"><a href="fortify.html">fortify.merMod</a></td>
+<td>add information to data based on a fitted model</td></tr>
+</table>
+
+<h2><a name="G">-- G --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="getME.html">getL</a></td>
+<td>Extract or Get Generalized Components from a Fitted Mixed Effects Model</td></tr>
+<tr><td style="width: 25%;"><a href="getME.html">getL-method</a></td>
+<td>Extract or Get Generalized Components from a Fitted Mixed Effects Model</td></tr>
+<tr><td style="width: 25%;"><a href="getME.html">getME</a></td>
+<td>Extract or Get Generalized Components from a Fitted Mixed Effects Model</td></tr>
+<tr><td style="width: 25%;"><a href="getME.html">getME.merMod</a></td>
+<td>Extract or Get Generalized Components from a Fitted Mixed Effects Model</td></tr>
+<tr><td style="width: 25%;"><a href="GHrule.html">GHrule</a></td>
+<td>Univariate Gauss-Hermite quadrature rule</td></tr>
+<tr><td style="width: 25%;"><a href="modular.html">glFormula</a></td>
+<td>Modular Functions for Mixed Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="glmer.html">glmer</a></td>
+<td>Fitting Generalized Linear Mixed-Effects Models</td></tr>
+<tr><td style="width: 25%;"><a href="glmer.nb.html">glmer.nb</a></td>
+<td>Fitting Negative Binomial GLMMs</td></tr>
+<tr><td style="width: 25%;"><a href="lmerControl.html">glmerControl</a></td>
+<td>Control of Mixed Model Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="glmerLaplaceHandle.html">glmerLaplaceHandle</a></td>
+<td>Handle for 'glmerLaplace'</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">glmerMod-class</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="glmFamily.html">glmFamily</a></td>
+<td>Generator object for the 'glmFamily' class</td></tr>
+<tr><td style="width: 25%;"><a href="glmFamily-class.html">glmFamily-class</a></td>
+<td>Class '"glmFamily"' - a reference class for 'family'</td></tr>
+<tr><td style="width: 25%;"><a href="lmResp.html">glmResp</a></td>
+<td>Generator objects for the response classes</td></tr>
+<tr><td style="width: 25%;"><a href="lmResp-class.html">glmResp-class</a></td>
+<td>Reference Classes for Response Modules, '"(lm|glm|nls|lmer)Resp"'</td></tr>
+<tr><td style="width: 25%;"><a href="golden-class.html">golden</a></td>
+<td>Class '"golden"' and Generator for Golden Search Optimizer Class</td></tr>
+<tr><td style="width: 25%;"><a href="golden-class.html">golden-class</a></td>
+<td>Class '"golden"' and Generator for Golden Search Optimizer Class</td></tr>
+<tr><td style="width: 25%;"><a href="GQdk.html">GQdk</a></td>
+<td>Sparse Gaussian / Gauss-Hermite Quadrature grid</td></tr>
+<tr><td style="width: 25%;"><a href="GQdk.html">GQN</a></td>
+<td>Sparse Gaussian / Gauss-Hermite Quadrature grid</td></tr>
+<tr><td style="width: 25%;"><a href="grouseticks.html">grouseticks</a></td>
+<td>Data on red grouse ticks from Elston et al. 2001</td></tr>
+<tr><td style="width: 25%;"><a href="grouseticks.html">grouseticks_agg</a></td>
+<td>Data on red grouse ticks from Elston et al. 2001</td></tr>
+</table>
+
+<h2><a name="H">-- H --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="hatvalues.merMod.html">hatvalues.merMod</a></td>
+<td>Diagonal elements of the hat matrix</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="InstEval.html">InstEval</a></td>
+<td>University Lecture/Instructor Evaluations by Students at ETH</td></tr>
+<tr><td style="width: 25%;"><a href="isREML.html">isGLMM</a></td>
+<td>Check characteristics of models</td></tr>
+<tr><td style="width: 25%;"><a href="isREML.html">isGLMM.merMod</a></td>
+<td>Check characteristics of models</td></tr>
+<tr><td style="width: 25%;"><a href="isREML.html">isLMM</a></td>
+<td>Check characteristics of models</td></tr>
+<tr><td style="width: 25%;"><a href="isREML.html">isLMM.merMod</a></td>
+<td>Check characteristics of models</td></tr>
+<tr><td style="width: 25%;"><a href="isNested.html">isNested</a></td>
+<td>Is f1 nested within f2?</td></tr>
+<tr><td style="width: 25%;"><a href="isREML.html">isNLMM</a></td>
+<td>Check characteristics of models</td></tr>
+<tr><td style="width: 25%;"><a href="isREML.html">isNLMM.merMod</a></td>
+<td>Check characteristics of models</td></tr>
+<tr><td style="width: 25%;"><a href="isREML.html">isREML</a></td>
+<td>Check characteristics of models</td></tr>
+<tr><td style="width: 25%;"><a href="isREML.html">isREML.merMod</a></td>
+<td>Check characteristics of models</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="modular.html">lFormula</a></td>
+<td>Modular Functions for Mixed Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="utilities.html">llikAIC</a></td>
+<td>Print and Summary Method Utilities for Mixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="lme4-package.html">lme4</a></td>
+<td>Linear, generalized linear, and nonlinear mixed models</td></tr>
+<tr><td style="width: 25%;"><a href="lmer.html">lmer</a></td>
+<td>Fit Linear Mixed-Effects Models</td></tr>
+<tr><td style="width: 25%;"><a href="lmerControl.html">lmerControl</a></td>
+<td>Control of Mixed Model Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">lmerMod-class</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="lmResp.html">lmerResp</a></td>
+<td>Generator objects for the response classes</td></tr>
+<tr><td style="width: 25%;"><a href="lmResp-class.html">lmerResp-class</a></td>
+<td>Reference Classes for Response Modules, '"(lm|glm|nls|lmer)Resp"'</td></tr>
+<tr><td style="width: 25%;"><a href="lmList.html">lmList</a></td>
+<td>Fit List of lm Objects with a Common Model</td></tr>
+<tr><td style="width: 25%;"><a href="lmList4-class.html">lmList4-class</a></td>
+<td>Class "lmList4" of 'lm' Objects on Common Model</td></tr>
+<tr><td style="width: 25%;"><a href="lmResp.html">lmResp</a></td>
+<td>Generator objects for the response classes</td></tr>
+<tr><td style="width: 25%;"><a href="lmResp-class.html">lmResp-class</a></td>
+<td>Reference Classes for Response Modules, '"(lm|glm|nls|lmer)Resp"'</td></tr>
+<tr><td style="width: 25%;"><a href="profile-methods.html">log.thpr</a></td>
+<td>Profile method for merMod objects</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">logLik.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="profile-methods.html">logProf</a></td>
+<td>Profile method for merMod objects</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="pvalues.html">mcmcsamp</a></td>
+<td>Getting p-values for fitted models</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">merMod-class</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="merPredD.html">merPredD</a></td>
+<td>Generator object for the 'merPredD' class</td></tr>
+<tr><td style="width: 25%;"><a href="merPredD-class.html">merPredD-class</a></td>
+<td>Class '"merPredD"' - a Dense Predictor Reference Class</td></tr>
+<tr><td style="width: 25%;"><a href="utilities.html">methTitle</a></td>
+<td>Print and Summary Method Utilities for Mixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="mkSimulationTemplate.html">mkDataTemplate</a></td>
+<td>Make templates suitable for guiding mixed model simulations</td></tr>
+<tr><td style="width: 25%;"><a href="mkdevfun.html">mkdevfun</a></td>
+<td>Create Deviance Evaluation Function from Predictor and Response Module</td></tr>
+<tr><td style="width: 25%;"><a href="modular.html">mkGlmerDevfun</a></td>
+<td>Modular Functions for Mixed Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="modular.html">mkLmerDevfun</a></td>
+<td>Modular Functions for Mixed Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="mkMerMod.html">mkMerMod</a></td>
+<td>Create a 'merMod' Object</td></tr>
+<tr><td style="width: 25%;"><a href="mkSimulationTemplate.html">mkParsTemplate</a></td>
+<td>Make templates suitable for guiding mixed model simulations</td></tr>
+<tr><td style="width: 25%;"><a href="mkRespMod.html">mkRespMod</a></td>
+<td>Create an lmerResp, glmResp or nlsResp instance</td></tr>
+<tr><td style="width: 25%;"><a href="mkReTrms.html">mkReTrms</a></td>
+<td>Make Random Effect Terms: Create Z, Lambda, Lind, etc.</td></tr>
+<tr><td style="width: 25%;"><a href="mkVarCorr.html">mkVarCorr</a></td>
+<td>Make Variance and Correlation Matrices from 'theta'</td></tr>
+<tr><td style="width: 25%;"><a href="vcconv.html">mlist2vec</a></td>
+<td>Convert between representations of (co-)variance structures</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">model.frame.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">model.matrix.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="modular.html">modular</a></td>
+<td>Modular Functions for Mixed Model Fits</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="glmer.nb.html">negative.binomial</a></td>
+<td>Fitting Negative Binomial GLMMs</td></tr>
+<tr><td style="width: 25%;"><a href="NelderMead-class.html">NelderMead</a></td>
+<td>Class '"NelderMead"' of Nelder-Mead optimizers and its Generator</td></tr>
+<tr><td style="width: 25%;"><a href="NelderMead-class.html">NelderMead-class</a></td>
+<td>Class '"NelderMead"' of Nelder-Mead optimizers and its Generator</td></tr>
+<tr><td style="width: 25%;"><a href="Nelder_Mead.html">Nelder_Mead</a></td>
+<td>Nelder-Mead Optimization of Parameters, Possibly (Box) Constrained</td></tr>
+<tr><td style="width: 25%;"><a href="ngrps.html">ngrps</a></td>
+<td>Number of Levels of a Factor or a "merMod" Model</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">ngrps.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="nlformula.html">nlformula</a></td>
+<td>Manipulate a Nonlinear Model Formula</td></tr>
+<tr><td style="width: 25%;"><a href="nlmer.html">nlmer</a></td>
+<td>Fitting Nonlinear Mixed-Effects Models</td></tr>
+<tr><td style="width: 25%;"><a href="lmerControl.html">nlmerControl</a></td>
+<td>Control of Mixed Model Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">nlmerMod-class</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="nloptwrap.html">nlminbwrap</a></td>
+<td>Wrappers for additional optimizers</td></tr>
+<tr><td style="width: 25%;"><a href="nloptwrap.html">nloptwrap</a></td>
+<td>Wrappers for additional optimizers</td></tr>
+<tr><td style="width: 25%;"><a href="lmResp.html">nlsResp</a></td>
+<td>Generator objects for the response classes</td></tr>
+<tr><td style="width: 25%;"><a href="lmResp-class.html">nlsResp-class</a></td>
+<td>Reference Classes for Response Modules, '"(lm|glm|nls|lmer)Resp"'</td></tr>
+<tr><td style="width: 25%;"><a href="nobars.html">nobars</a></td>
+<td>Omit terms separated by vertical bars in a formula</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">nobs</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">nobs.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+</table>
+
+<h2><a name="O">-- O --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="modular.html">optimizeGlmer</a></td>
+<td>Modular Functions for Mixed Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="modular.html">optimizeLmer</a></td>
+<td>Modular Functions for Mixed Model Fits</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Pastes.html">Pastes</a></td>
+<td>Paste strength by batch and cask</td></tr>
+<tr><td style="width: 25%;"><a href="Penicillin.html">Penicillin</a></td>
+<td>Variation in penicillin testing</td></tr>
+<tr><td style="width: 25%;"><a href="lmList.html">plot.lmList</a></td>
+<td>Fit List of lm Objects with a Common Model</td></tr>
+<tr><td style="width: 25%;"><a href="plot.lmList4.html">plot.lmList4</a></td>
+<td>plots for lmList4 objects</td></tr>
+<tr><td style="width: 25%;"><a href="plot.lmList4.html">plot.lmList4.confint</a></td>
+<td>plots for lmList4 objects</td></tr>
+<tr><td style="width: 25%;"><a href="plot.merMod.html">plot.merMod</a></td>
+<td>diagnostic plots for merMod fits</td></tr>
+<tr><td style="width: 25%;"><a href="predict.merMod.html">predict.merMod</a></td>
+<td>Predictions from a model at new data values</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">print.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">print.summary.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="VarCorr.html">print.VarCorr.merMod</a></td>
+<td>Extract Variance and Correlation Components</td></tr>
+<tr><td style="width: 25%;"><a href="profile-methods.html">profile-methods</a></td>
+<td>Profile method for merMod objects</td></tr>
+<tr><td style="width: 25%;"><a href="profile-methods.html">profile.merMod</a></td>
+<td>Profile method for merMod objects</td></tr>
+<tr><td style="width: 25%;"><a href="pvalues.html">pvalues</a></td>
+<td>Getting p-values for fitted models</td></tr>
+</table>
+
+<h2><a name="Q">-- Q --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="plot.merMod.html">qqmath.merMod</a></td>
+<td>diagnostic plots for merMod fits</td></tr>
+<tr><td style="width: 25%;"><a href="ranef.html">qqmath.ranef.mer</a></td>
+<td>Extract the modes of the random effects</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="ranef.html">ranef</a></td>
+<td>Extract the modes of the random effects</td></tr>
+<tr><td style="width: 25%;"><a href="ranef.html">ranef.merMod</a></td>
+<td>Extract the modes of the random effects</td></tr>
+<tr><td style="width: 25%;"><a href="refit.html">refit</a></td>
+<td>Refit a (merMod) Model with a Different Response</td></tr>
+<tr><td style="width: 25%;"><a href="refit.html">refit.merMod</a></td>
+<td>Refit a (merMod) Model with a Different Response</td></tr>
+<tr><td style="width: 25%;"><a href="refitML.html">refitML</a></td>
+<td>Refit a Model by Maximum Likelihood Criterion</td></tr>
+<tr><td style="width: 25%;"><a href="refitML.html">refitML.merMod</a></td>
+<td>Refit a Model by Maximum Likelihood Criterion</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">REMLcrit</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="rePos.html">rePos</a></td>
+<td>Generator object for the rePos (random-effects positions) class</td></tr>
+<tr><td style="width: 25%;"><a href="rePos-class.html">rePos-class</a></td>
+<td>Class '"rePos"'</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.merMod.html">residuals.glmResp</a></td>
+<td>residuals of merMod objects</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.merMod.html">residuals.lmResp</a></td>
+<td>residuals of merMod objects</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.merMod.html">residuals.merMod</a></td>
+<td>residuals of merMod objects</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="vcconv.html">sdcor2cov</a></td>
+<td>Convert between representations of (co-)variance structures</td></tr>
+<tr><td style="width: 25%;"><a href="lmList4-class.html">show-method</a></td>
+<td>Class "lmList4" of 'lm' Objects on Common Model</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">show-method</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">show.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">show.summary.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="sigma.html">sigma</a></td>
+<td>Extract Residual Standard Deviation 'Sigma'</td></tr>
+<tr><td style="width: 25%;"><a href="sigma.html">sigma.merMod</a></td>
+<td>Extract Residual Standard Deviation 'Sigma'</td></tr>
+<tr><td style="width: 25%;"><a href="simulate.merMod.html">simulate.formula</a></td>
+<td>Simulate Responses From 'merMod' Object</td></tr>
+<tr><td style="width: 25%;"><a href="simulate.merMod.html">simulate.merMod</a></td>
+<td>Simulate Responses From 'merMod' Object</td></tr>
+<tr><td style="width: 25%;"><a href="sleepstudy.html">sleepstudy</a></td>
+<td>Reaction times in a sleep deprivation study</td></tr>
+<tr><td style="width: 25%;"><a href="plots.thpr.html">splom.thpr</a></td>
+<td>Mixed-Effects Profile Plots (Regular / Density / Pairs)</td></tr>
+<tr><td style="width: 25%;"><a href="subbars.html">subbars</a></td>
+<td>"Sub[stitute] Bars"</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">summary.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">summary.summary.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="vcconv.html">Sv_to_Cv</a></td>
+<td>Convert between representations of (co-)variance structures</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="merMod-class.html">terms.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="troubleshooting.html">troubleshooting</a></td>
+<td>Troubleshooting</td></tr>
+</table>
+
+<h2><a name="U">-- U --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="merMod-class.html">update.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="modular.html">updateGlmerDevfun</a></td>
+<td>Modular Functions for Mixed Model Fits</td></tr>
+</table>
+
+<h2><a name="V">-- V --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="VarCorr.html">VarCorr</a></td>
+<td>Extract Variance and Correlation Components</td></tr>
+<tr><td style="width: 25%;"><a href="VarCorr.html">VarCorr.merMod</a></td>
+<td>Extract Variance and Correlation Components</td></tr>
+<tr><td style="width: 25%;"><a href="varianceProf.html">varianceProf</a></td>
+<td>Transform Profile to the variance scale</td></tr>
+<tr><td style="width: 25%;"><a href="vcconv.html">vcconv</a></td>
+<td>Convert between representations of (co-)variance structures</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">vcov.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="merMod-class.html">vcov.summary.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+<tr><td style="width: 25%;"><a href="vcconv.html">vec2mlist</a></td>
+<td>Convert between representations of (co-)variance structures</td></tr>
+<tr><td style="width: 25%;"><a href="vcconv.html">vec2STlist</a></td>
+<td>Convert between representations of (co-)variance structures</td></tr>
+<tr><td style="width: 25%;"><a href="VerbAgg.html">VerbAgg</a></td>
+<td>Verbal Aggression item responses</td></tr>
+<tr><td style="width: 25%;"><a href="vcconv.html">Vv_to_Cv</a></td>
+<td>Convert between representations of (co-)variance structures</td></tr>
+</table>
+
+<h2><a name="W">-- W --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="merMod-class.html">weights.merMod</a></td>
+<td>Class "merMod" of Fitted Mixed-Effect Models</td></tr>
+</table>
+
+<h2><a name="X">-- X --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="plots.thpr.html">xyplot.thpr</a></td>
+<td>Mixed-Effects Profile Plots (Regular / Density / Pairs)</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="lmerControl.html">.makeCC</a></td>
+<td>Control of Mixed Model Fitting</td></tr>
+<tr><td style="width: 25%;"><a href="utilities.html">.prt.aictab</a></td>
+<td>Print and Summary Method Utilities for Mixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="utilities.html">.prt.call</a></td>
+<td>Print and Summary Method Utilities for Mixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="utilities.html">.prt.family</a></td>
+<td>Print and Summary Method Utilities for Mixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="utilities.html">.prt.grps</a></td>
+<td>Print and Summary Method Utilities for Mixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="utilities.html">.prt.methTit</a></td>
+<td>Print and Summary Method Utilities for Mixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="utilities.html">.prt.resids</a></td>
+<td>Print and Summary Method Utilities for Mixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="utilities.html">.prt.VC</a></td>
+<td>Print and Summary Method Utilities for Mixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="utilities.html">.prt.warn</a></td>
+<td>Print and Summary Method Utilities for Mixed Effects</td></tr>
+<tr><td style="width: 25%;"><a href="simulate.merMod.html">.simulateFun</a></td>
+<td>Simulate Responses From 'merMod' Object</td></tr>
+<tr><td style="width: 25%;"><a href="expandDoubleVerts.html">||</a></td>
+<td>Expand terms with "||" notation into separate "|" terms</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/PLSvGLS.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/PLSvGLS.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmer.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmer.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmer.Rnw	(revision 2476)
@@ -0,0 +1,3153 @@
+%\VignetteEngine{knitr::knitr}
+%\VignetteDepends{ggplot2}
+%\VignetteDepends{splines}
+%\VignetteIndexEntry{Fitting Linear Mixed-Effects Models using lme4}
+\documentclass[nojss]{jss}
+\usepackage[T1]{fontenc}% for correct hyphenation and T1 encoding
+\usepackage[utf8]{inputenc}%
+\usepackage{lmodern}% latin modern font
+\usepackage[american]{babel}  %% for texi2dvi ~ bug
+\usepackage{bm,amsmath,thumbpdf,amsfonts}%,minted}
+\usepackage{blkarray}
+\usepackage{array}
+\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}}
+\newcommand{\matindex}[1]{\mbox{\scriptsize#1}}% Matrix index
+\newcommand{\github}{Github}
+\DeclareMathOperator{\tr}{tr}
+\DeclareMathOperator{\VEC}{vec}
+\newcommand{\bmb}[1]{{\color{red} \emph{#1}}}
+\newcommand{\scw}[1]{{\color{blue} \emph{#1}}}
+\newcommand{\dmb}[1]{{\color{magenta} \emph{#1}}}
+
+\shortcites{bolker_strategies_2013,sleepstudy,gelman2013bayesian}
+
+\author{Douglas Bates\\U. of Wisconsin - Madison\And
+  Martin M\"achler\\ETH Zurich\And
+  Benjamin M. Bolker\\McMaster University\And
+  Steven C. Walker\\McMaster University
+}
+\Plainauthor{Douglas Bates, Martin M\"achler, Ben Bolker, Steve Walker}
+\title{Fitting Linear Mixed-Effects Models using \pkg{lme4}}
+\Plaintitle{Fitting Linear Mixed-Effects Models using lme4}
+\Shorttitle{Linear Mixed Models with lme4}
+\Abstract{%
+
+  Maximum likelihood or restricted maximum likelihood (REML) estimates
+  of the parameters in linear mixed-effects models can be determined
+  using the \code{lmer} function in the \pkg{lme4} package for
+  \proglang{R}. As for most model-fitting functions in \proglang{R},
+  the model is described in an \code{lmer} call by a formula, in this
+  case including both fixed- and random-effects
+  terms. The formula and data together determine a numerical
+  representation of the model from which the profiled deviance or the
+  profiled REML criterion can be evaluated as a function of some of
+  the model parameters.  The appropriate criterion is optimized, using
+  one of the constrained optimization functions in \proglang{R}, to
+  provide the parameter estimates.  We describe the structure of the
+  model, the steps in evaluating the profiled deviance or REML
+  criterion, and the structure of classes or types that represents such
+  a model.  Sufficient detail is included to allow specialization of
+  these structures by users who wish to write functions to fit
+  specialized linear mixed models, such as models incorporating
+  pedigrees or smoothing splines, that are not easily expressible in
+  the formula language used by \code{lmer}.}
+
+\Keywords{%
+  sparse matrix methods, linear mixed models, penalized least squares,
+  Cholesky decomposition} \Address{
+  Douglas Bates\\
+  Department of Statistics, University of Wisconsin\\
+  1300 University Ave.\\
+  Madison, WI 53706, U.S.A.\\
+  E-mail: \email{bates@stat.wisc.edu}
+  \par\bigskip
+  Martin M\"achler\\
+  Seminar f\"ur Statistik, HG G~16\\
+  ETH Zurich\\
+  8092 Zurich, Switzerland\\
+  E-mail: \email{maechler@stat.math.ethz.ch}\\
+  % URL: \url{http://stat.ethz.ch/people/maechler}
+  \par\bigskip
+  Benjamin M. Bolker\\
+  Departments of Mathematics \& Statistics and Biology \\
+  McMaster University \\
+  1280 Main Street W \\
+  Hamilton, ON L8S 4K1, Canada \\
+  E-mail: \email{bolker@mcmaster.ca}
+  \par\bigskip
+  Steven C. Walker\\
+  Department of Mathematics \& Statistics \\
+  McMaster University \\
+  1280 Main Street W \\
+  Hamilton, ON L8S 4K1, Canada \\
+  E-mail: \email{scwalker@math.mcmaster.ca }
+}
+\newcommand{\thetavec}{{\bm\theta}}
+\newcommand{\betavec}{{\bm\beta}}
+\newcommand{\Var}{\operatorname{Var}}
+\newcommand{\abs}{\operatorname{abs}}
+\newcommand{\bLt}{\ensuremath{\bm\Lambda_{\bm\theta}}}
+\newcommand{\mc}[1]{\ensuremath{\mathcal{#1}}}
+\newcommand{\trans}{\ensuremath{^\top}} %  JSS wants \top
+\newcommand{\yobs}{\ensuremath{\bm y_{\mathrm{obs}}}}
+\newcommand*{\eq}[1]{eqn.~\ref{#1}}% or just {(\ref{#1})}
+<<preliminaries,include=FALSE,cache=FALSE,message=FALSE>>=
+options(width=70, show.signif.stars=FALSE,
+             str=strOptions(strict.width="cut"),
+             prompt = "R> ", continue = "+  ",
+             useFancyQuotes = FALSE)
+library("knitr")
+library("lme4")
+library("ggplot2")
+theme_set(theme_bw())
+library("grid")
+zmargin <- theme(panel.margin=unit(0,"lines"))
+library("lattice")
+opts_chunk$set(engine='R',dev='pdf',fig.width=9,prompt=TRUE,
+               fig.height=5.5,cache=TRUE,tidy=FALSE,comment=NA)
+@
+\setkeys{Gin}{width=\textwidth}
+\setkeys{Gin}{height=3.5in}
+
+\begin{document}
+
+Submitted to \emph{Journal of Statistical Software}
+
+\section{Introduction}
+\label{sec:intro}
+
+The \pkg{lme4} package for \proglang{R} provides functions to fit and
+analyze linear mixed models, generalized linear mixed models and
+nonlinear mixed models.  In each of these names, the term ``mixed''
+or, more fully, ``mixed effects'', denotes a model that incorporates
+both fixed- and random-effects terms in a linear predictor expression
+from which the conditional mean of the response can be evaluated.  In
+this paper we describe the formulation and representation of linear
+mixed models.  The techniques used for generalized linear and
+nonlinear mixed models will be described separately, in a future
+paper.
+
+The development of general software for fitting mixed models remains
+an active area of research with many open problems.  Consequently, the
+\pkg{lme4} package has evolved since it was first released, and
+continues to improve as we learn more about mixed models. However, we
+recognize the need to maintain stability and backward compatibility of
+\pkg{lme4} so that it continues to be broadly useful. In order to
+maintain stability while continuing to advance mixed-model
+computation, we have developed several additional frameworks that draw
+on the basic ideas of \code{lme4} but modify its structure or
+implementation in various ways. These descendants include the
+\mbox{\pkg{MixedModels}} package in \proglang{Julia}, the
+\pkg{lme4pureR} package in \proglang{R}, and the \code{flexLambda}
+development branch of \pkg{lme4}.  The current article is largely
+restricted to describing the current stable version of the \pkg{lme4}
+package (1.1-7), with Appendix~\ref{sec:modularExamples} describing
+hooks into the computational machinery that are designed for extension
+development. The \pkg{gamm4} \citep{gamm4} and \pkg{blme} \citep{blme}
+packages currently make use of these hooks.
+
+Another goal of this article is to contrast the approach used by
+\pkg{lme4} with previous formulations of mixed models.  The
+expressions for the profiled log-likelihood and profiled REML
+(restricted maximum likelihood) criteria derived in
+Section~\ref{sec:profdev} are similar to those presented in
+\citet{bates04:_linear} and, indeed, are closely related to
+``Henderson's mixed-model equations''~\citep{henderson_1982}.
+Nonetheless there are subtle but important changes in the formulation
+of the model and in the structure of the resulting penalized least
+squares (PLS) problem to be solved (Section~\ref{sec:PLSpureR}).  We
+derive the current version of the PLS problem
+(Section~\ref{sec:plsMath}) and contrast this result with earlier
+formulations (Section~\ref{sec:previous_lmm_form}).
+
+This article is organized into four main sections (\ref{sec:lFormula};
+\ref{sec:mkLmerDevfun}; \ref{sec:optimizeLmer}; \ref{sec:mkMerMod}),
+each of which corresponds to one of the four largely separate modules
+that comprise \pkg{lme4}.  Before describing the details of each
+module, we describe the general form of the linear mixed model
+underlying \pkg{lme4} (Section~\ref{sec:LMMs}); introduce the
+\code{sleepstudy} data that will be used as an example throughout
+(Section~\ref{sec:sleepstudy}); and broadly outline \pkg{lme4}'s
+modular structure (Section~\ref{sec:modular}).
+
+\subsection{Linear mixed models}
+\label{sec:LMMs}
+
+Just as a linear model is described by the distribution of a
+vector-valued random response variable, $\mc{Y}$, whose observed value
+is $\yobs$, a linear mixed model is described by the distribution of
+two vector-valued random variables: $\mc{Y}$, the response, and
+$\mc{B}$, the vector of random effects.  In a linear model the
+distribution of $\mc Y$ is multivariate normal,%\begin{linenomath}
+\begin{equation}
+  \label{eq:linearmodel}
+  \mc Y\sim\mc{N}(\bm X\bm\beta+\bm o,\sigma^2\bm W^{-1}),
+\end{equation}
+where $n$ is the dimension of the response vector, $\bm W$ is a
+diagonal matrix of known prior weights, $\bm\beta$ is a
+$p$-dimensional coefficient vector, $\bm X$ is an $n\times p$ model
+matrix, and $\bm o$ is a vector of known prior offset terms. The
+parameters of the model are the coefficients $\bm\beta$ and the scale
+parameter $\sigma$.
+
+In a linear mixed model it is the \emph{conditional} distribution of
+$\mc Y$ given $\mc B=\bm b$ that has such a form,
+\begin{equation}
+  \label{eq:LMMcondY}
+  ( \mc Y|\mc B=\bm b)\sim\mc{N}(\bm X\bm\beta+\bm Z\bm b+\bm o,\sigma^2\bm W^{-1}), % | <- for ESS
+\end{equation}
+where $\bm Z$ is the $n\times q$ model matrix for the $q$-dimensional
+vector-valued random effects variable, $\mc B$, whose value we are
+fixing at $\bm b$.  The unconditional distribution of $\mc B$ is also
+multivariate normal with mean zero and a parameterized $q\times q$
+variance-covariance matrix, $\bm\Sigma$,
+\begin{equation}
+  \label{eq:LMMuncondB}
+  \mc B\sim\mc N(\bm0,\bm\Sigma) .
+\end{equation}
+As a variance-covariance matrix, $\bm\Sigma$ must be positive
+semidefinite.  It is convenient to express the model in terms of a
+\emph{relative covariance factor}, $\bLt$, which is a
+$q\times q$ matrix, depending on the \emph{variance-component
+  parameter}, $\bm\theta$, and generating the symmetric $q\times q$
+variance-covariance matrix, $\bm\Sigma$, according to%\begin{linenomath}
+\begin{equation}
+  \label{eq:relcovfac}
+  \bm\Sigma_{\bm\theta}=\sigma^2\bLt\bLt\trans ,
+\end{equation}%\end{linenomath}
+where $\sigma$ is the same scale factor as in the conditional
+distribution (\ref{eq:LMMcondY}).
+
+Although equations \ref{eq:LMMcondY}, \ref{eq:LMMuncondB}, and
+\ref{eq:relcovfac} fully describe the class of linear mixed models
+that \pkg{lme4} can fit, this terse description
+hides many important details.  Before moving on to these details, we
+make a few observations:
+\begin{itemize}
+\item This formulation of linear mixed models allows for a relatively
+  compact expression for the profiled log-likelihood of $\bm\theta$
+  (Section~\ref{sec:profdev}, Equation~\ref{eq:profiledDeviance}).
+\item The matrices associated with random effects, $\bm Z$ and $\bLt$,
+  typically have a sparse structure with a sparsity pattern that
+  encodes various model assumptions.  Sections~\ref{sec:LMMmatrix} and
+  \ref{sec:CSCmats} provide details on these structures, and how to
+  represent them efficiently.
+\item The interface provided by \pkg{lme4}'s \code{lmer} function
+  is slightly less general than the model described by equations
+  \ref{eq:LMMcondY}, \ref{eq:LMMuncondB}, and \ref{eq:relcovfac}.  To
+  take advantage of the entire range of possibilities, one may use the
+  modular functions (Sections~\ref{sec:modular} and
+  Appendix~\ref{sec:modularExamples}) or explore the
+  experimental \code{flexLambda} branch of \pkg{lme4} on \github.
+\end{itemize}
+
+\subsection{Example}
+\label{sec:sleepstudy}
+
+Throughout our discussion of \pkg{lme4}, we will work with a data set
+on the average reaction time per day for subjects in a sleep
+deprivation study \citep{sleepstudy}. On day 0 the subjects had their
+normal amount of sleep.  Starting that night they were restricted to 3
+hours of sleep per night.  The response variable, \code{Reaction},
+represents average reaction times in milliseconds (ms) on a series of tests given each
+\code{Day} to each \code{Subject} (Figure~\ref{fig:sleepPlot}),
+<<sleep>>=
+str(sleepstudy)
+@
+
+<<sleepPlot,echo=FALSE,fig.scap="Reaction time versus days by subject",fig.cap="Average reaction time versus days of sleep deprivation by subject.  Subjects ordered by increasing slope of subject-specific linear regressions.",fig.align='center',fig.pos='tb'>>=
+## BMB: seemed more pleasing to arrange by increasing slope rather than
+## intercept ...
+xyplot(Reaction ~ Days | Subject, sleepstudy, aspect = "xy",
+       layout = c(9, 2), type = c("g", "p", "r"),
+       index.cond = function(x, y) coef(lm(y ~ x))[2],
+       xlab = "Days of sleep deprivation",
+       ylab = "Average reaction time (ms)",
+       as.table = TRUE)
+@
+% |
+
+Each subject's reaction time increases approximately linearly
+with the number of sleep-deprived days.
+However, subjects also appear to vary in the slopes and intercepts
+of these relationships, which suggests a model with random slopes and intercepts.
+As we shall see, such a model may be fitted by minimizing the
+REML criterion (Equation~\ref{eq:REMLdeviance}) using
+<<outputExample,results="hide">>=
+fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
+@
+% |
+The estimates of the standard deviations of the random effects for the
+intercept and the slope are
+\Sexpr{round(sqrt(VarCorr(fm1)$Subject[1,1]), 2)} ms % $
+and
+\Sexpr{round(sqrt(VarCorr(fm1)$Subject[2,2]), 2)} ms/day. % $
+The fixed-effects coefficients, $\betavec$, are
+\Sexpr{round(fixef(fm1)[1], 1)} ms and
+\Sexpr{round(fixef(fm1)[2], 2)} ms/day
+for the intercept and slope.  In this model, one interpretation of
+these fixed effects is that they are the estimated population mean values of the
+random intercept and slope (Section~\ref{sec:intuitiveFormulas}).
+
+\subsection{High level modular structure}
+\label{sec:modular}
+
+The \code{lmer} function is composed of four largely independent
+modules.  In the first module, a mixed-model formula is parsed and
+converted into the inputs required to specify a linear mixed model
+(Section~\ref{sec:lFormula}).  The second module uses these inputs to
+construct an \proglang{R} function which takes the covariance
+parameters, $\bm\theta$, as arguments and returns negative twice the log
+profiled likelihood or the REML criterion
+(Section~\ref{sec:mkLmerDevfun}).  The third module optimizes this
+objective function to produce maximum likelihood (ML) or REML
+estimates of $\bm\theta$ (Section~\ref{sec:optimizeLmer}).  Finally,
+the fourth module provides utilities for interpreting the optimized
+model (Section~\ref{sec:mkMerMod}).
+
+\begin{table}[tb]
+  \centering
+  \begin{tabular}{lllp{2.1in}}
+    \hline
+    Module & & \proglang{R} function & Description \\
+    \hline
+    Formula module & (Section~\ref{sec:lFormula}) & \code{lFormula} &
+    Accepts a mixed-model formula, data, and other user inputs, and returns
+    a list of objects required to fit a linear mixed model. \\
+    Objective function module & (Section~\ref{sec:mkLmerDevfun}) &
+    \code{mkLmerDevfun} &
+    Accepts the results of \code{lFormula} and returns a function to
+    calculate the deviance (or restricted deviance) as a function of the
+    covariance parameters, $\bm\theta$.\\
+    Optimization module & (Section~\ref{sec:optimizeLmer}) &
+    \code{optimizeLmer} &
+    Accepts a deviance function returned by \code{mkLmerDevfun} and
+    returns the results of the optimization of that deviance function. \\
+    Output module & (Section~\ref{sec:mkMerMod}) & \code{mkMerMod} &
+    Accepts an optimized deviance function and packages the results
+    into a useful object.  \\
+    \hline
+  \end{tabular}
+  \caption{The high-level modular structure of \code{lmer}.}
+  \label{tab:modular}
+\end{table}
+
+To illustrate this modularity, we recreate the \code{fm1} object by a
+series of four modular steps; the formula module,
+<<modularExampleFormula, tidy=FALSE, eval=FALSE>>=
+parsedFormula <- lFormula(formula = Reaction ~ Days + (Days | Subject),
+                             data = sleepstudy)
+@
+the objective function module,
+<<modularExampleObjective, tidy=FALSE, eval=FALSE>>=
+devianceFunction <- do.call(mkLmerDevfun, parsedFormula)
+@
+the optimization module,
+<<modularExampleOptimization, tidy=FALSE, eval=FALSE>>=
+optimizerOutput <- optimizeLmer(devianceFunction)
+@
+and the output module,
+<<modularExampleOutput, tidy=FALSE, eval=FALSE>>=
+mkMerMod(   rho = environment(devianceFunction),
+            opt = optimizerOutput,
+         reTrms = parsedFormula$reTrms,
+             fr = parsedFormula$fr)
+@
+% |
+
+\section{Formula module}
+\label{sec:lFormula}
+
+\subsection{Mixed-model formulas}
+\label{sec:formulas}
+
+Like most model-fitting functions in \proglang{R},
+\code{lmer} takes as its first two arguments a \emph{formula}
+specifying the model and the \emph{data} with which to evaluate the
+formula. This second argument, \code{data}, is optional but
+recommended and is usually the name of an \proglang{R} data frame.
+In the \proglang{R} \code{lm} function for fitting linear models,
+formulas take the form \verb+resp ~ expr+,
+where \code{resp} determines the response variable and \code{expr}
+is an expression that specifies the columns of the model matrix.
+Formulas for the \code{lmer} function contain special random-effects
+terms,
+<<MMformula, eval=FALSE>>=
+resp ~ FEexpr + (REexpr1 | factor1) + (REexpr2 | factor2) + ...
+@
+where \code{FEexpr} is an expression determining the columns of the
+fixed-effects model matrix, $\bm X$, and the random-effects terms,
+\code{(REexpr1 | factor1)} and \code{(REexpr2 | factor2)}, determine
+both the random-effects model matrix, $\bm Z$ (Section~\ref{sec:mkZ}),
+and the structure of the relative covariance factor,
+$\bLt$ (Section~\ref{sec:mkLambdat}).  In principle, a
+mixed-model formula may contain arbitrarily many random-effects terms,
+but in practice the number of such terms is typically low.
+
+\subsection{Understanding mixed-model formulas}
+\label{sec:intuitiveFormulas}
+
+Before describing the details of how \pkg{lme4} parses mixed-model
+formulas (Section~\ref{sec:LMMmatrix}), we provide an informal
+explanation and then some examples. Our discussion assumes familiarity
+with the standard \proglang{R} modelling paradigm
+\citep{Chambers:1993}.
+
+Each random-effects term is of the form \code{(expr | factor)}.
+The expression \code{expr} is evaluated as a linear model formula,
+producing a model matrix following the same rules used in standard
+\proglang{R} modelling functions (e.g., \code{lm} or \code{glm}). The
+expression \code{factor} is evaluated as an \proglang{R} factor.  One
+way to think about the vertical bar operator is as a special kind of
+interaction between the model matrix and the grouping factor. This
+interaction ensures that the columns of the model matrix have
+different effects for each level of the grouping factor.  What makes
+this a special kind of interaction is that these effects are modelled
+as unobserved random variables, rather than unknown fixed parameters.
+Much has been written about important practical and philosophical
+differences between these two types of interactions
+(e.g., \citet{henderson_1982}; \citet{gelman2005analysis}).  For
+example, the random-effects implementation of such interactions can be
+used to obtain shrinkage estimates of regression coefficients
+(e.g., \citet{1977EfronAndMorris}), or account
+for lack of independence in the residuals due to block structure or
+repeated measurements (e.g., \citet{laird_ware_1982}).
+
+Table~\ref{tab:formulas} provides several examples of the
+right-hand-sides of mixed-model formulas. The first example,
+\code{(1 | g)}, % |
+is the simplest possible mixed-model formula, where each level of the
+grouping factor, \code{g}, has its own random intercept. The mean and
+standard deviation of these intercepts are parameters to be estimated.
+Our description of this model incorporates any non-zero mean of the
+random effects as fixed-effects parameters.  If one wishes to specify
+that a random intercept has \emph{a priori} known means, one may use
+the \code{offset} function as in the second  model in
+Table~\ref{tab:formulas}.  This model contains no fixed effects, or
+more accurately the fixed-effects model matrix, $\bm X$, has zero
+columns and $\bm\beta$ has length zero.
+
+\begin{table}[tb]
+  \centering
+  \begin{tabular}{llP{1.5in}} %% see new column type for ragged right
+    \hline
+    Formula 			& Alternative & Meaning \\
+    \hline%------------------------------------------------
+    \code{(1 | g)}		& \code{1 + (1 | g)}
+    & Random intercept with fixed mean \\
+    \code{0 + offset(o) + (1 | g)}    & \code{-1 + offset(o) + (1 | g)}
+    & Random intercept with \emph{a priori} means \\
+    \code{(1 | g1/g2)} 		& \code{(1 | g1)+(1 | g1:g2)}   % |
+    & Intercept varying among \code{g1} and \code{g2} within \code{g1} \\
+    \code{(1 | g1)+(1 | g2)} 	& \code{1 + (1 | g1) + (1 | g2)} &
+    Intercept varying among \code{g1} and \code{g2} \\
+    \code{x + (x | g)} 		& \code{1 + x + (1 + x | g)} &
+    Correlated random intercept and slope \\
+    \code{x + (x || g)} 		& \code{1 + x + (1 | g) + (0 +
+      x | g)}
+    & Uncorrelated random intercept and slope \\
+    \hline
+  \end{tabular}
+  \caption{Examples of the right-hand sides of mixed-effects model
+    formulas. The names of grouping factors are denoted \code{g},
+    \code{g1}, and \code{g2}, and covariates and \emph{a priori} known
+    offsets as \code{x} and \code{o}.}
+  \label{tab:formulas}
+\end{table}
+
+We may also construct models with multiple grouping factors. For
+example, if the observations are grouped by \code{g2}, which is nested
+within \code{g1}, then the third formula in Table \ref{tab:formulas}
+can be used to model variation in the intercept.  A common objective
+in mixed modeling is to account for such nested (or hierarchical)
+structure.  However, one of the most useful aspects of \pkg{lme4} is
+that it can be used to fit random-effects associated with non-nested
+grouping factors.  For example, suppose the data are grouped by fully
+crossing two factors, \code{g1} and \code{g2}, then the fourth formula
+in Table \ref{tab:formulas} may be used.  Such models are common in
+item response theory, where \code{subject} and \code{item} factors are
+fully crossed \citep{doran2007estimating}. In addition to varying
+intercepts, we may also have varying slopes (e.g., the
+\code{sleepstudy} data, Section~\ref{sec:sleepstudy}).  The fifth
+example in Table~\ref{tab:formulas} gives a model where both the
+intercept and slope vary among the levels of the grouping factor.
+
+\subsubsection{Specifying uncorrelated random effects}
+\label{sec:uncor}
+
+By default, \pkg{lme4} assumes that all coefficients associated with
+the same random-effects term are correlated. To specify an
+uncorrelated slope and intercept (for example), one may either use
+double-bar notation, \code{(x || g)}, or equivalently use multiple
+random effects terms, \code{x + (1 | g) + (0 + x | g)}, as in the final example
+of Table~\ref{tab:formulas}.  For example, from the printout of model
+\code{fm1} of the \code{sleepstudy} data
+(Section~\ref{sec:sleepstudy}), we see that the estimated correlation
+between the slope for \code{Days} and the intercept is fairly low
+(\Sexpr{round(attr(VarCorr(fm1)$Subject, "correlation")[2],3)}) % $
+(See Section~\ref{sec:summary} below for more on how to extract the
+random effects covariance matrix.)  We may use double-bar notation to
+fit a model that excludes a correlation parameter:
+<<uncorrelatedModel,results="hide">>=
+fm2 <- lmer(Reaction ~ Days + (Days || Subject), sleepstudy)
+@
+
+Although mixed models where the random slopes and intercepts are
+assumed independent are commonly used to reduce the complexity of
+random-slopes models, they do have one subtle drawback.  Models in
+which the slopes and intercepts are allowed to have a non-zero
+correlation (e.g., \code{fm1}) are invariant to additive shifts of the
+continuous predictor (\code{Days} in this case).  This invariance
+breaks down when the correlation is constrained to zero; any shift in
+the predictor will necessarily lead to a change in the estimated
+correlation, and in the likelihood and predictions of the model.  For
+example, we can eliminate the correlation in \code{fm1} simply by
+shifting \code{Days} by an amount equal to the ratio of the estimated
+among-subject standard deviations multiplied by the estimated
+correlation (i.e., $\sigma_{\text{\small slope}}/\sigma_{\text{\small
+    intercept}} \cdot \rho_{\text{\small slope:intercept}}$).  The use
+of such models should ideally be restricted to cases where the
+predictor is measured on a ratio scale (i.e., the zero point on the
+scale is meaningful, not just a location defined by convenience or
+convention).
+
+%% <<uncorrelatedModelByShifting>>=
+%% sleepstudyShift <- within(sleepstudy, {
+%%     Days <- Days + (24.74*0.07)/5.92 })
+%% lmer(Reaction ~ Days + (Days |  Subject), sleepstudyShift)
+%% @
+
+\subsection{Algebraic and computational account of mixed-model formulas}
+\label{sec:LMMmatrix}
+
+The fixed-effects terms of a mixed-model formula are parsed to produce
+the fixed-effects model matrix, $\bm X$, in the same way that the
+\proglang{R} \code{lm} function generates model matrices.  However, a
+mixed-model formula incorporates $k\ge1$ random-effects terms of the
+form \code{(r | f)} as well. % |
+These $k$ terms are used to produce the random effects model matrix,
+$\bm Z$ (Equation~\ref{eq:LMMcondY}; Section~\ref{sec:mkZ}), and the
+structure of the relative covariance factor, $\bLt$
+(Equation~\ref{eq:relcovfac}; Section~\ref{sec:mkLambdat}), which are
+matrices that typically have a sparse structure.  We now describe how
+one might construct these matrices from the random-effects terms,
+considering first a single term, \code{(r | f)}, % |
+and then generalizing to multiple terms. Tables~\ref{tab:dim} and
+\ref{tab:algebraic} summarize the matrices and vectors that determine
+the structure of $\bm Z$ and
+$\bLt$.
+
+\begin{table}[tb]
+  \centering
+  \begin{tabular}{lll}
+    \hline
+    Symbol & Size \\
+    \hline
+    $n$ & Length of the response vector, $\mc{Y}$ \\
+    $p$ & Number of columns of fixed effects model matrix, $\bm X$ \\
+    $q = \sum_i^k q_i$ & Number of columns of random effects model matrix, $\bm Z$ \\
+    $p_i$ &  Number of columns of the raw model matrix, $\bm X_i$ \\
+    $\ell_i$ &  Number of levels of the grouping factor indices, $\bm i_i$ \\
+    $q_i = p_i\ell_i$  & Number of columns of the term-wise model matrix, $\bm Z_i$ \\
+    $k$ &  Number of random effects terms \\
+    $m_i = \binom{p_i+1}{2}$ & Number of covariance parameters for term
+    $i$ \\
+    $m = \sum_i^k m_i$ & Total number of covariance parameters \\
+    \hline
+  \end{tabular}
+  \caption{Dimensions of linear mixed models.  The
+    subscript $i = 1, \dots, k$ denotes a specific random effects term.}
+  \label{tab:dim}
+\end{table}
+
+\begin{table}[tb]
+  \centering
+  \begin{tabular}{lll}
+    \hline
+    Symbol  & Size & Description \\
+    \hline
+    $\bm X_i$ & $n\times p_i$ &  Raw random effects model matrix \\
+    $\bm J_i$  & $n\times \ell_i$ & Indicator matrix of grouping factor indices\\
+    $\bm X_{ij}$ & $p_i\times 1$ & Column vector containing $j$th row of $\bm X_i$ \\
+    $\bm J_{ij}$ & $\ell_i\times 1$ & Column vector containing $j$th row of $\bm J_i$ \\
+    $\bm i_i$  & $n$ & Vector of grouping factor indices \\
+    $\bm Z_i$ & $n\times q_i$ & Term-wise random effects model matrix \\
+    $\bm\theta$ & $m$ & Covariance parameters \\
+    $\bm T_i$ & $p_i\times p_i$ & Lower triangular template matrix \\
+    $\bm\Lambda_i$ & $q_i\times q_i$ & Term-wise relative covariance factor \\
+    \hline
+  \end{tabular}
+  \caption{Symbols used to describe the structure of the random
+    effects model matrix and the relative covariance factor. The
+    subscript $i = 1, \dots, k$ denotes a specific random effects term.}
+  \label{tab:algebraic}
+\end{table}
+
+The expression, \code{r}, is a linear model formula that evaluates to
+an \proglang{R} model matrix, $\bm X_i$, of size $n\times p_i$, called
+the \emph{raw random effects model matrix} for term $i$. A term is
+said to be a \emph{scalar} random-effects term when $p_i=1$, otherwise
+it is \emph{vector-valued}.  For a \emph{simple, scalar}
+random-effects term of the form \code{(1 | f)}, $\bm X_i$ is the    % |
+$n\times 1$ matrix of ones, which implies a random intercept model.
+
+The expression \code{f} evaluates to an \proglang{R} factor, called
+the \emph{grouping factor}, for the term. For the $i$th term, we
+represent this factor mathematically with a vector $\bm i_i$ of
+\emph{factor indices}, which is an $n$-vector of values from
+$1,\dots,\ell_i$.\footnote{In practice,
+  fixed-effects model matrices and random-effects terms are evaluated
+  with respect to a \emph{model frame}, ensuring that any expressions
+  for grouping factors have been coerced to factors and any unused
+  levels of these factors have been dropped.  That is, $\ell_i$, the
+  number of levels in the grouping factor for the $i$th random-effects
+  term, is well-defined.}
+Let $\bm J_i$ be the $n\times \ell_i$ matrix of
+indicator columns for $\bm i_i$.  Using the \pkg{Matrix} package
+\citep{Matrix_pkg} in
+\proglang{R}, we may construct the transpose of $\bm J_i$ from a
+factor vector, \code{f}, by coercing \code{f} to a \code{sparseMatrix}
+object.  For example,
+<<setSeed, echo=FALSE>>=
+set.seed(2)
+@
+<<factorToSparseMatrix>>=
+(f <- gl(3, 2))
+(Ji <- t(as(f, Class = "sparseMatrix")))
+@
+When $k>1$ we order the random-effects terms so that
+$\ell_1\ge\ell_2\ge\dots\ge\ell_k$; in general, this ordering reduces
+``fill-in'' (i.e., the proportion of elements that are zero in the
+lower triangle of $\bLt\trans\bm Z\trans\bm W\bm Z\bLt+\bm I$ but not in
+the lower triangle of its left Cholesky factor, $\bm L_{\bm\theta}$,
+described below in Equation~\ref{eq:blockCholeskyDecomp}). This reduction
+in fill-in provides more efficient matrix operations within the
+penalized least squares algorithm (Section~\ref{sec:plsMath}).
+
+\subsubsection{Constructing the random effects model matrix}
+\label{sec:mkZ}
+
+The $i$th random effects term contributes $q_i=\ell_ip_i$ columns to
+the model matrix $\bm Z$.  We group these columns into a matrix, $\bm
+Z_i$, which we refer to as the \emph{term-wise model matrix} for the
+$i$th term.  Thus $q$, the number of columns in $\bm Z$ and the
+dimension of the random variable, $\mc{B}$, is
+\begin{equation}
+  \label{eq:qcalc}
+  q=\sum_{i=1}^k q_i = \sum_{i=1}^k \ell_i\,p_i .
+\end{equation}
+Creating the matrix $\bm Z_i$ from $\bm X_i$ and $\bm J_i$ is a
+straightforward concept that is, nonetheless, somewhat awkward to
+describe.  Consider $\bm Z_i$ as being further decomposed into
+$\ell_i$ blocks of $p_i$ columns.  The rows in the first block are the
+rows of $\bm X_i$ multiplied by the 0/1 values in the first column of
+$\bm J_i$.  Similarly for the subsequent blocks.  With these
+definitions we may define the term-wise random-effects model matrix,
+$\bm Z_i$, for the $i$th term as a transposed Khatri-Rao product,
+\begin{equation}
+  \label{eq:Zi}
+  \bm Z_i = (\bm J_i\trans * \bm X_i\trans)\trans =
+  \begin{bmatrix}
+    \bm J_{i1}\trans \otimes \bm X_{i1}\trans \\
+    \bm J_{i2}\trans \otimes \bm X_{i2}\trans \\
+    \vdots \\
+    \bm J_{in}\trans \otimes \bm X_{in}\trans \\
+  \end{bmatrix}
+\end{equation}
+where $*$ and $\otimes$ are the Khatri-Rao\footnote{Note that the
+  original definition of the Khatri-Rao product is more general than
+  the definition used in \pkg{Matrix} package, which is the definition
+  we use here.} \citep{khatri1968solutions} and Kronecker products,
+and $\bm J_{ij}\trans$ and $\bm X_{ij}\trans$ are row vectors of the
+$j$th rows of $\bm J_i$ and $\bm X_i$.  These rows correspond to the
+$j$th sample in the response vector, $\mc Y$, and thus $j$ runs from
+$1 \dots n$.  The \pkg{Matrix} package for \proglang{R} contains a
+\code{KhatriRao} function, which can be used to form $\bm Z_i$.  For
+example, if we begin with a raw model matrix,
+<<rawModelMatrix>>=
+(Xi <- cbind(1, rep.int(c(-1, 1), 3L)))
+@
+then the term-wise random effects
+model matrix is,
+<<KhatriRao>>=
+(Zi <- t(KhatriRao(t(Ji), t(Xi))))
+@
+<<sanityCheck, include=FALSE>>=
+## alternative formulation of Zi (eq:Zi)
+rBind(Ji[1,] %x% Xi[1,],
+      Ji[2,] %x% Xi[2,],
+      Ji[3,] %x% Xi[3,],
+      Ji[4,] %x% Xi[4,],
+      Ji[5,] %x% Xi[5,],
+      Ji[6,] %x% Xi[6,])
+@
+
+In particular, for a simple, scalar term, $\bm Z_i$ is exactly $\bm
+J_i$, the matrix of indicator columns.  For other scalar terms, $\bm
+Z_i$ is formed by element-wise multiplication of the single column of
+$\bm X_i$ by each of the columns of $\bm J_i$.
+
+Because each $\bm Z_i$ is generated from indicator columns, its
+cross-product, $\bm Z_i\trans\bm Z_i$ is block-diagonal consisting of
+$\ell_i$ diagonal blocks each of size $p_i$.\footnote{To see this,
+  note that by the properties of Kronecker products we may write the
+  cross-product matrix $Z_i\trans Z_i$ as $\sum_{j=1}^n \bm J_{ij} \bm
+  J_{ij}\trans \otimes \bm X_{ij} \bm X_{ij}\trans$. Because $\bm
+  J_{ij}$ is a unit vector along a coordinate axis, the cross product
+  $\bm J_{ij} \bm J_{ij}\trans$ is a $p_i\times p_i$ matrix of all
+  zeros except for a single $1$ along the diagonal. Therefore, the
+  cross products, $\bm X_{ij} \bm X_{ij}\trans$, will be added to one
+  of the $\ell_i$ blocks of size $p_i\times p_i$ along the diagonal of
+  $Z_i\trans Z_i$.} Note that this means that when $k=1$ (i.e., there
+is only one random-effects term, and $\bm Z_i = \bm Z$), $\bm
+Z\trans\bm Z$ will be block diagonal.  These block-diagonal properties
+allow for more efficient sparse matrix computations
+(Section~\ref{sec:CSCmats}).
+
+The full random effects model matrix, $\bm Z$, is constructed from
+$k\ge 1$ blocks,
+\begin{equation}
+  \label{eq:Z}
+  \bm Z =
+  \begin{bmatrix}
+    \bm Z_1 &
+    \bm Z_2 &
+    \hdots &
+    \bm Z_k \\
+  \end{bmatrix}
+\end{equation}
+By transposing Equation~\ref{eq:Z} and substituting in Equation~\ref{eq:Zi}, we
+may represent the structure of the transposed random effects model
+matrix as follows,
+\begin{equation}
+  \label{eq:Zt}
+  \bm Z\trans =
+  \begin{blockarray}{ccccc}
+    \text{sample 1} & \text{sample 2} & \hdots & \text{sample n} & \\
+    \begin{block}{[cccc]c}
+    \bm J_{11} \otimes \bm X_{11} &
+    \bm J_{12} \otimes \bm X_{12} &
+    \hdots &
+    \bm J_{1n} \otimes \bm X_{1n} &
+    \text{term 1} \\
+    \bm J_{21} \otimes \bm X_{21} &
+    \bm J_{22} \otimes \bm X_{22} &
+    \hdots &
+    \bm J_{2n} \otimes \bm X_{2n} &
+    \text{term 2} \\
+    \vdots & \vdots & \ddots & \vdots & \vdots \\
+    \end{block}
+  \end{blockarray}
+\end{equation}
+Note that the proportion of elements of $Z\trans$ that are structural
+zeros is
+\begin{equation}
+  \label{eq:ZtSparsity}
+  \frac{\sum_{i=1}^k p_i(\ell_i - 1)}{\sum_{i=1}^k p_i} \qquad .
+\end{equation}
+Therefore, the sparsity of $\bm Z\trans$ increases with the number of
+grouping factor levels. As the number of levels is often large in
+practice, it is essential for speed and efficiency to take account of
+this sparsity, for example by using sparse matrix methods, when
+fitting mixed models (Section~\ref{sec:CSCmats}).
+
+\subsubsection{Constructing the relative covariance factor}
+\label{sec:mkLambdat}
+
+The $q\times q$ covariance factor, $\bLt$, is a block diagonal matrix
+whose $i$th diagonal block, $\bm\Lambda_i$, is of size
+$q_i,i=1,\dots,k$.  We refer to $\bm\Lambda_i$ as the \emph{term-wise
+  relative covariance factor}.  Furthermore, $\bm\Lambda_i$ is a
+homogeneous block diagonal matrix with each of the $\ell_i$
+lower-triangular blocks on the diagonal being a copy of a $p_i\times
+p_i$ lower-triangular \emph{template matrix}, $\bm T_i$.  The
+covariance parameter vector, $\bm\theta$, of length $m_i
+=\binom{p_i+1}{2}$, consists of the elements in the lower triangle of
+$\bm T_i,i=1,\dots,k$.  To provide a unique representation we require
+that the diagonal elements of the $\bm T_i,i=1,\dots,k$ be
+non-negative.
+
+The template, $\bm T_i$, can be constructed from the number $p_i$
+alone.  In \proglang{R} code we denote $p_i$ as \code{nc}.  For
+example, if we set \code{nc <- 3}\Sexpr{nc <- 3}, we could create the
+template for term $i$ as,
+<<nc, echo=FALSE>>=
+nc <- 3
+@
+%% sequence() is equivalent to unlist(lapply(nvec, seq_len))
+%% and (?sequence) ``mainly exists in reverence to the very early history of R''
+%% scw: i like sequence, and in fact i never understood why that
+%% statement is there in the help file.
+<<template>>=
+(rowIndices <- rep(1:nc, 1:nc))
+(colIndices <- sequence(1:nc))
+(template <- sparseMatrix(rowIndices, colIndices,
+                          x = 1 * (rowIndices == colIndices)))
+@
+Note that the \code{rowIndices} and \code{colIndices} fill the entire
+lower triangle, which contains the initial values of the covariance
+parameter vector, $\bm\theta$,
+<<thetaFromTemplate>>=
+(theta <- template@x)
+@
+<<thetaSanityCheck, include=FALSE>>=
+lFormula(Reaction ~ (Days + I(Days^2) | Subject), sleepstudy)$reTrms$theta
+@
+(because the \code{@x} slot of the sparse matrix \code{template} is a
+numeric vector containing the non-zero elements). This template
+contains three types of elements: structural zeros (denoted
+by~\code{.}), off-diagonal covariance parameters (initialized at
+\code{0}), and diagonal variance parameters (initialized at \code{1}).
+The next step in the construction of the relative covariance factor is
+to repeat the template once for each level of the grouping factor to
+construct a sparse block diagonal matrix.  For example, if we set the
+number of levels, $\ell_i$, to two, \code{nl <- 2}\Sexpr{nl <- 2}, we
+could create the transposed term-wise relative covariance factor,
+$\bm\Lambda_i\trans$, using the \code{.bdiag} function in the
+\pkg{Matrix} package,
+<<nl, echo=FALSE>>=
+nl <- 2
+@
+<<relativeCovarianceBlock>>=
+(Lambdati <- .bdiag(rep(list(t(template)), nl)))
+@
+For a model with a single random effects term, $\bm\Lambda_i\trans$
+would be the initial transposed relative covariance factor itself.
+
+The transposed relative covariance factor, $\bLt\trans$, that arises
+from parsing the formula and data is set at the initial value of the
+covariance parameters, $\bm\theta$.  However, during model fitting, it
+needs to be updated to a new $\bm\theta$ value at each iteration (see
+Section~\ref{sec:plsI}).  This is achieved by constructing a vector of
+indices, \code{Lind}, that identifies which elements of \code{theta}
+should be placed in which elements of \code{Lambdat},
+<<relativeCovarianceBlockIndices>>=
+LindTemplate <- rowIndices + nc * (colIndices - 1) - choose(colIndices, 2)
+(Lind <- rep(LindTemplate, nl))
+@
+For example, if we randomly generate a new value for \code{theta},
+<<newTheta>>=
+thetanew <- round(runif(length(theta)), 1)
+@
+we may update \code{Lambdat} as follows,
+<<relativeCovarianceBlockUpdate>>=
+Lambdati@x <- thetanew[Lind]
+@
+Section~\ref{sec:plsI} describes the process of
+updating the relative covariance factor in more detail.
+
+
+\section{Objective function module}
+\label{sec:mkLmerDevfun}
+
+\subsection{Model reformulation for improved computational stability}
+\label{sec:stability}
+
+In our initial formulation of the linear mixed model
+(Equations~\ref{eq:LMMcondY}, \ref{eq:LMMuncondB}, and \ref{eq:relcovfac}),
+the covariance parameter vector, $\bm\theta$, appears only in the
+marginal distribution of the random effects (Equation~\ref{eq:LMMuncondB}).
+However, from the perspective of computational stability and
+efficiency, it is advantageous to reformulate the model such that
+$\bm\theta$ appears only in the conditional distribution for the
+response vector given the random effects.  Such a reformulation allows
+us to work with singular covariance matrices, which regularly arise in
+practice (e.g., during intermediate steps of the nonlinear optimizer,
+Section~\ref{sec:optimizeLmer}).
+
+The reformulation is made by defining a \emph{spherical}%
+\footnote{$\mathcal{N}(\bm\mu,\sigma^2\bm I)$ distributions are called
+  ``spherical'' because contours of the probability density are
+  spheres.}  \emph{random effects} variable, $\mc U$, with
+distribution%\begin{linenomath}
+\begin{equation}
+  \label{eq:distU}
+  \mc U\sim\mathcal{N}(\bm 0,\sigma^2\bm I_q).
+\end{equation}%\end{linenomath}
+If we set,
+% \begin{linenomath}
+\begin{equation}
+  \label{eq:BequalsLamU}
+  \mc B=\bLt\mc U,
+\end{equation}%\end{linenomath}
+then $\mc B$ will have the desired $\mathcal{N}(\bm
+0,\bm\Sigma_{\bm\theta})$ distribution (Equation~\ref{eq:LMMuncondB}).
+Although it may seem more natural to define $\mc U$ in terms of $\mc
+B$ we must write the relationship as in \eq{eq:BequalsLamU} to allow
+for singular $\bLt$. The conditional distribution
+(Equation~\ref{eq:LMMcondY}) of the response vector given the random
+effects may now be reformulated as,%\begin{linenomath}
+\begin{equation}
+  \label{eq:distYgivenU}
+  (\mc Y|\mc U=\bm u)\sim\mc{N}(\bm\mu_{\mc Y|\mc U=\bm u},\sigma^2\bm W^{-1})
+\end{equation}%\end{linenomath}
+where
+\begin{equation}
+  \label{eq:meanYgivenU}
+  \bm\mu_{\mc Y|\mc U=\bm u} = \bm X \bm\beta + \bm Z\bLt\bm u + \bm o
+\end{equation} % |
+is a vector of linear predictors, which can be interpreted as a
+conditional mean (or mode).  Similarly, we also define $\bm\mu_{\mc
+  U|\mc Y = \yobs}$ as the conditional mean (or mode) of the spherical
+random effects given the observed value of the response vector. Note
+also that we use the $\bm u$ symbol throughout to represent a specific
+value of the random variable, $\mc U$.
+
+\subsection{Penalized least squares}
+\label{sec:plsMath}
+
+Our computational methods for maximum likelihood fitting of the linear
+mixed model involve repeated applications of the PLS method. In
+particular, the PLS problem is to minimize the penalized weighted
+residual sum-of-squares,
+\begin{equation}
+  \label{eq:pwrss}
+  r^2(\bm\theta, \bm\beta, \bm u)
+  = \rho^2(\bm\theta, \bm\beta, \bm u)
+  + \left\| \bm u \right\|^2,
+\end{equation}
+over $\begin{bmatrix} \bm u \\
+  \bm\beta \\ \end{bmatrix}$, where,
+\begin{equation}
+  \label{eq:wrss}
+  \rho^2(\bm\theta, \bm\beta, \bm u) = \left\|
+  \bm W^{1/2}\left[\yobs - \bm\mu_{\mc Y|\mc U=\bm u} \right]\right\|^2,
+\end{equation} %|
+is the weighted residual sum-of-squares. This notation makes explicit
+the fact that $r^2$ and $\rho^2$ both depend on $\bm\theta$,
+$\betavec$, and $\bm u$.  The reason for the word `penalized' is that
+the term, $\left\| \bm u \right\|^2$, in Equation~\ref{eq:pwrss} penalizes models with
+larger magnitude values of $\bm u$.
+
+In the so-called ``pseudo-data'' approach we write the penalized
+weighted residual sum-of-squares as the squared length of a block
+matrix equation,
+\begin{equation}
+  \label{eq:pwrssPseudoData}
+  r^2(\bm\theta,\bm\beta,\bm u) =
+  \left\|
+  \begin{bmatrix}
+  \bm W^{1/2}(\yobs - \bm o) \\
+  \bm 0
+  \end{bmatrix} -
+  \begin{bmatrix}
+  \bm W^{1/2}\bm Z\bm\bLt & \bm W^{1/2}\bm X \\
+  \bm I_q & \bm 0 \\
+  \end{bmatrix}
+  \begin{bmatrix}
+  \bm u \\
+  \bm\beta \\
+  \end{bmatrix}
+  \right\|^2.
+\end{equation}
+This pseudo-data approach shows that the PLS problem may also be
+thought of as a standard least squares problem for an extended
+response vector, which implies that the minimizing value,
+$\begin{bmatrix}
+  \bm\mu_{\mc U|\mc Y = \yobs} \\
+  \widehat{\bm\beta}_{\bm\theta} \\ \end{bmatrix}$, satisfies the
+normal equations,
+\begin{equation}
+  \label{eq:normalEquations}
+  \begin{bmatrix}
+    \bLt\trans \bm Z\trans \bm W (\yobs - \bm o) \\
+    \bm X\trans \bm W (\yobs - \bm o) \\
+  \end{bmatrix} =
+  \begin{bmatrix}
+    \bLt\trans \bm Z\trans \bm W \bm Z \bLt + \bm I &
+    \bLt\trans \bm Z\trans \bm W \bm X \\
+    \bm X\trans \bm W \bm Z \bLt &
+    \bm X\trans \bm W \bm X \\
+  \end{bmatrix}
+  \begin{bmatrix}
+    \mu_{\mc U | \mc Y = \yobs} \\ \widehat{\betavec}_{\bm\theta}
+  \end{bmatrix} ,
+\end{equation} % |
+where $\mu_{\mc U | \mc Y = \yobs}$ is the conditional mean of $\mc U$
+given that $\mc Y = \yobs$.  Note that this conditional mean depends
+on $\bm\theta$, although we do not make this dependency explicit in
+order to reduce notational clutter.
+
+The cross-product matrix in Equation~\ref{eq:normalEquations} can be
+Cholesky decomposed,
+\begin{equation}
+  \label{eq:blockCholeskyDecomp}
+  \begin{bmatrix}
+    \bLt\trans \bm Z\trans \bm W \bm Z \bLt + \bm I &
+    \bLt\trans \bm Z\trans \bm W \bm X \\
+    \bm X\trans \bm W \bm Z \bLt &
+    \bm X\trans \bm W \bm X \\
+  \end{bmatrix} =
+  \begin{bmatrix}
+    \bm L_{\bm\theta} & \bm 0 \\
+    \bm R\trans_{ZX} & \bm R\trans_{X} \\
+  \end{bmatrix}
+  \begin{bmatrix}
+    \bm L\trans_{\bm\theta} & \bm R_{ZX} \\
+    \bm 0 & \bm R_{X}
+  \end{bmatrix} .
+\end{equation}
+We may use this decomposition to rewrite the penalized weighted
+residual sum-of-squares as,
+\begin{equation}
+  \label{eq:pwrssIdentity}
+  \begin{aligned}
+  r^2(\bm\theta,\bm\beta,\bm u) = r^2(\bm\theta) &
+  + \left\|\bm L\trans_{\bm\theta} (\bm u - \bm\mu_{\mc U|\mc Y = \yobs})
+  +    \bm R_{ZX} (\bm\beta - \widehat{\bm\beta}_{\bm\theta})\right\|^2
+  + \left\|\bm R_{X} (\bm\beta - \widehat{\bm\beta}_{\bm\theta})\right\|^2
+  \end{aligned} ,
+\end{equation} % |
+where we have simplified notation by writing
+$r^2(\bm\theta,\widehat{\bm\beta}_{\bm\theta},\bm\mu_{\mc U|\mc Y =
+  \yobs})$ as $r^2(\bm\theta)$. This is an important expression in the
+theory underlying \pkg{lme4}. It relates the penalized weighted
+residual sum-of-squares, $r^2(\bm\theta,\bm\beta,\bm u)$, with its
+minimum value, $r^2(\bm\theta)$.  This relationship is useful in the
+next section where we integrate over the random effects, which is
+required for maximum likelihood estimation.
+
+\subsection{Probability densities}
+\label{sec:densities}
+
+The residual sums-of-squares discussed in the previous section can be
+used to express various probability densities, which are required for
+maximum likelihood estimation of the linear mixed model\footnote{These
+  expressions only technically hold at the observed value, $\yobs$, of
+  the response vector, $\mc Y$.},
+\begin{equation}
+  \label{eq:densityYgivenU}
+  f_{\mc Y | \mc U}(\yobs|\bm u) =
+  \frac{|\bm W|^{1/2}}{(2\pi\sigma^2)^{n/2}}
+  \exp\left[\frac{-\rho^2(\bm\theta,\bm\beta,\bm u)}{2\sigma^2}\right] ,
+\end{equation}
+\begin{equation}
+  \label{eq:densityU}
+  f_{\mc U}(\bm u) =
+  \frac{1}{(2\pi\sigma^2)^{q/2}}
+  \exp\left[\frac{-\left\| \bm u \right\|^2}{2\sigma^2}\right] ,
+\end{equation}
+\begin{equation}
+  \label{eq:densityYU}
+  f_{\mc Y , \mc U}(\yobs,\bm u) =
+  \frac{|\bm W|^{1/2}}{(2\pi\sigma^2)^{(n+q)/2}}
+  \exp\left[\frac{-r^2(\bm\theta,\bm\beta,\bm u)}{2\sigma^2}\right] ,
+\end{equation}
+\begin{equation}
+  \label{eq:densityUgivenY}
+  f_{\mc U | \mc Y}(\bm u | \yobs) =
+  \frac{f_{\mc Y , \mc U}(\yobs,\bm u)}{f_{\mc Y}(\yobs)} ,
+\end{equation}
+where,
+\begin{equation}
+  \label{eq:densityY}
+  f_{\mc Y}(\yobs) =
+  \int f_{\mc Y , \mc U}(\yobs,\bm u)d\bm u ,
+\end{equation}
+The log-likelihood to be maximized can therefore be expressed as,
+\begin{equation}
+  \label{eq:likelihood}
+  \mc L(\bm\theta,\bm\beta,\sigma^2 | \yobs) = \log f_{\mc Y}(\yobs)
+\end{equation} % |
+
+The integral in Equation~\ref{eq:densityY} may be more explicitly written
+as,
+\begin{equation}
+  \label{eq:densityYexpand}
+  \begin{aligned}
+  f_{\mc Y}(\yobs) =
+  \frac{|\bm W|^{1/2}}{(2\pi\sigma^2)^{(n+q)/2}} &
+  \exp\left[\frac{
+  -r^2(\bm\theta)
+  - \left\|\bm R_{X} (\bm\beta - \widehat{\bm\beta}_{\bm\theta})\right\|^2
+  }{2\sigma^2}\right] \\ &
+    \int \exp\left[\frac{
+  - \left\|\bm L\trans_{\bm\theta} (\bm u - \bm\mu_{\mc U|\mc Y = \yobs})
+  +    \bm R_{ZX} (\bm\beta - \widehat{\bm\beta}_{\bm\theta})\right\|^2
+  }{2\sigma^2}\right]
+   d\bm u ,
+  \end{aligned}
+\end{equation} % |
+which can be evaluated with the change of variables,
+\begin{equation}
+  \label{eq:changeOfVariables}
+  \bm v = \bm L\trans_{\bm\theta} (\bm u - \mu_{\mc U|\mc Y = \yobs})
+  +    \bm R_{ZX} (\bm\beta - \widehat{\bm\beta}_{\bm\theta}) ,
+\end{equation} % |
+The Jacobian determinant of the transformation from $\bm u$ to $\bm
+v$ is $|\bm L_{\bm\theta} |$. Therefore we are able to write the integral
+as,
+\begin{equation}
+  \label{eq:densityYintermediate}
+  \begin{aligned}
+  f_{\mc Y}(\yobs) =
+  \frac{|\bm W|^{1/2}}{(2\pi\sigma^2)^{(n+q)/2}} &
+  \exp\left[\frac{
+  -r^2(\bm\theta)
+  - \left\|\bm R_{X} (\bm\beta - \widehat{\bm\beta}_{\bm\theta})\right\|^2
+  }{2\sigma^2}\right] \\ &
+    \int \exp\left[\frac{
+  - \left\|\bm v\right\|^2
+  }{2\sigma^2}\right]
+   |\bm L_{\bm\theta}|^{-1} d\bm v ,
+  \end{aligned}
+\end{equation}
+which by the properties of exponential integrands becomes,
+\begin{equation}
+  \label{eq:densityYfinal}
+   \exp\mc L(\bm\theta,\bm\beta,\sigma^2 | \yobs) = f_{\mc Y}(\yobs) =
+  \frac{|\bm W|^{1/2}|\bm L_{\bm\theta}|^{-1}}{(2\pi\sigma^2)^{n/2}}
+  \exp\left[\frac{
+  -r^2(\bm\theta)
+  - \left\|\bm R_{X} (\bm\beta - \widehat{\bm\beta}_{\bm\theta})\right\|^2
+  }{2\sigma^2}\right] .
+\end{equation}
+
+\subsection{Evaluating and profiling the deviance and REML criterion}
+\label{sec:profdev}
+
+We are now in a position to understand why the formulation in
+equations \ref{eq:LMMcondY} and \ref{eq:LMMuncondB} is particularly
+useful. We are able to explicitly profile $\betavec$ and $\sigma$ out
+of the log-likelihood (Equation~\ref{eq:likelihood}), to find a compact
+expression for the profiled deviance (negative twice the profiled
+log-likelihood) and the profiled REML criterion as a function of the
+relative covariance parameters, $\bm\theta$, only.  Furthermore these
+criteria can be evaluated quickly and accurately.
+
+To estimate the parameters, $\bm\theta$, $\bm\beta$, and $\sigma^2$, we
+minimize negative twice the log-likelihood, which can be written as,
+\begin{equation}
+  \label{eq:fullDeviance}
+  -2\mc L(\bm\theta,\bm\beta,\sigma^2 | \yobs) =    % |
+  \log\frac{|\bm L_{\bm\theta}|^2}{|\bm W|}
+  + n\log(2\pi\sigma^2)
+  + \frac{r^2(\bm\theta)}{\sigma^2}
+  + \frac{ \left\|\bm R_{X} (\bm\beta -
+    \widehat{\bm\beta}_{\bm\theta})\right\|^2}{\sigma^2} .
+\end{equation}
+It is very easy to profile out $\bm\beta$, because it enters into
+the ML criterion only through the final term, which is zero if
+$\bm\beta = \widehat{\bm\beta}_{\bm\theta}$, where
+$\widehat{\bm\beta}_{\bm\theta}$ is found by solving the penalized
+least-squares problem in Equation~\ref{eq:pwrssPseudoData}. Therefore we
+can write a partially profiled ML criterion as,
+\begin{equation}
+  \label{eq:partiallyProfiledDeviance}
+  -2\mc L(\bm\theta,\sigma^2 | \yobs)  =    % |
+  \log\frac{|\bm L_{\bm\theta}|^2}{|\bm W|}
+  + n\log(2\pi\sigma^2)
+  + \frac{r^2(\bm\theta)}{\sigma^2} .
+\end{equation}
+This criterion is only partially profiled because it still depends on
+$\sigma^2$. Differentiating this criterion with respect to $\sigma^2$
+and setting the result equal to zero yields,
+\begin{equation}
+  \label{eq:residualVarianceEstimatingEquation}
+  0 = \frac{n}{\widehat{\sigma}_{\bm\theta}^2} -
+  \frac{r^2(\bm\theta)}{\widehat{\sigma}_{\bm\theta}^4},
+\end{equation}
+which leads to a maximum profiled likelihood estimate,
+\begin{equation}
+  \label{eq:residualVarianceEstimate}
+  \widehat{\sigma}_{\bm\theta}^2 = \frac{r^2(\bm\theta)}{n}.
+\end{equation}
+This estimate can be substituted into the partially profiled criterion to yield the
+fully profiled ML criterion,
+\begin{equation}
+  \label{eq:profiledDeviance}
+  -2\mc L(\bm\theta | \yobs)  =           % |
+  \log\frac{|\bm L_{\bm\theta}|^2}{|\bm W|}
+  + n\left[1 + \log\left(
+  \frac{2\pi r^2(\bm\theta)}{n}
+  \right)\right] .
+\end{equation}
+This expression for the profiled deviance depends only on
+$\bm\theta$. Although $q$, the number of columns in $\bm Z$ and the
+size of $\bm\Sigma_{\bm\theta}$, can be very large indeed, the
+dimension of $\bm\theta$ is small, frequently less than 10. The
+\pkg{lme4} package uses generic nonlinear optimizers
+(Section~\ref{sec:optimizeLmer}) to optimize this expression over
+$\bm\theta$ to find its maximum likelihood estimate.
+
+\subsubsection{The REML criterion}
+\label{sec:reml}
+
+The REML criterion can be obtained by integrating the marginal density
+for $\mc Y$ with respect to the fixed effects \citep{laird_ware_1982},
+\begin{equation}
+  \label{eq:REMLintegral}
+  \int f_{\mc Y}(\yobs)d\bm\beta =
+  \frac{|\bm W|^{1/2}|\bm L_{\bm\theta}|^{-1}}{(2\pi\sigma^2)^{n/2}}
+  \exp\left[\frac{-r^2(\bm\theta)}{2\sigma^2}\right]
+  \int \exp\left[\frac{
+  - \left\|\bm R_{X} (\bm\beta - \widehat{\bm\beta}_{\bm\theta})\right\|^2
+  }{2\sigma^2}\right]d\bm\beta ,
+\end{equation}
+which can be evaluated with the change of variables,
+\begin{equation}
+  \label{eq:REMLchangeOfVariables}
+  \bm v = \bm R_{X} (\bm\beta - \widehat{\bm\beta}_{\bm\theta}) .
+\end{equation}
+The Jacobian determinant of the transformation from $\bm\beta$ to
+$\bm v$ is $|\bm R_X |$. Therefore we are able to write the
+integral as,
+\begin{equation}
+  \label{eq:REMLintegralIntermediate}
+  \int f_{\mc Y}(\yobs)d\bm\beta =
+  \frac{|\bm W|^{1/2}|\bm L_{\bm\theta}|^{-1}}{(2\pi\sigma^2)^{n/2}}
+  \exp\left[\frac{-r^2(\bm\theta)}{2\sigma^2}\right]
+  \int \exp\left[\frac{
+  - \left\|\bm v\right\|^2
+  }{2\sigma^2}\right]|\bm R_X|^{-1} d\bm v ,
+\end{equation}
+which simplifies to,
+\begin{equation}
+  \label{eq:REMLintermediate}
+  \int f_{\mc Y}(\yobs)d\bm\beta =
+  \frac{|\bm W|^{1/2}|\bm L_{\bm\theta}|^{-1}|\bm R_X|^{-1}}{(2\pi\sigma^2)^{(n-p)/2}}
+  \exp\left[\frac{-r^2(\bm\theta)}{2\sigma^2}\right] .
+\end{equation}
+Minus twice the log of this integral is the (unprofiled) REML criterion,
+\begin{equation}
+  \label{eq:REMLdeviance}
+  -2\mc L_R(\bm\theta,\sigma^2 | \yobs) =
+  \log\frac{|\bm L_{\bm\theta}|^2|\bm R_X|^2}{|\bm W|}
+  + (n-p)\log(2\pi\sigma^2)
+  + \frac{r^2(\bm\theta)}{\sigma^2} .
+\end{equation}
+Note that because $\bm\beta$ gets integrated out, the REML criterion
+cannot be used to find a point estimate of $\bm\beta$. However, we
+follow others in using the maximum likelihood estimate,
+$\widehat{\bm\beta}_{\widehat{\bm\theta}}$, at the optimum value of
+$\bm\theta = \widehat{\bm\theta}$. The REML estimate of $\sigma^2$ is,
+\begin{equation}
+  \label{eq:REMLresidualVarianceEstimate}
+  \widehat{\sigma}_{\bm\theta}^2 = \frac{r^2(\bm\theta)}{n-p} ,
+\end{equation}
+which leads to the profiled REML criterion,
+\begin{equation}
+  \label{eq:REMLprofiled}
+  -2\mc L_R(\bm\theta | \yobs) =
+  \log\frac{|\bm L_{\bm\theta}|^2|\bm R_X|^2}{|\bm W|}
+  + (n-p)\left[1 + \log\left(\frac{2\pi
+        r^2(\bm\theta)}{n-p}\right)\right] .
+\end{equation}
+
+\subsection{Changes relative to previous formulations}
+\label{sec:previous_lmm_form}
+
+We compare the PLS problem as formulated in Section~\ref{sec:plsMath}
+with earlier versions and describe why we use this version.  What have
+become known as ``Henderson's mixed-model equations'' are given as
+Equation 6 of \citet{henderson_1982} and would be expressed as,
+\begin{equation}
+  \label{eq:henderson}
+  \begin{bmatrix}
+    \bm X\trans\bm X/\sigma^2& \bm X\trans\bm Z/\sigma^2\\
+    \bm Z\trans\bm X/\sigma^2& \bm Z\trans\bm Z/\sigma^2 + \bm\Sigma^{-1}
+  \end{bmatrix}
+  \begin{bmatrix}
+    \widehat{\bm\beta}_\theta \\ \bm\mu_{\mc B|\mc Y=\yobs}
+  \end{bmatrix}=
+  \begin{bmatrix}\bm X\trans\yobs/\sigma^2\\\bm Z\trans\yobs/\sigma^2
+  \end{bmatrix} ,
+\end{equation}
+in our notation (ignoring weights and offsets, without loss of
+generality).  The matrix written as $\bm R$ in \citet{henderson_1982}
+is $\sigma^2\bm I_n$ in our formulation of the model.
+
+\citet{bates04:_linear} modified the PLS equations to
+\begin{equation}
+  \label{eq:batesDebRoy}
+  \begin{bmatrix}
+    \bm Z\trans\bm Z+\bm\Omega&\bm Z\trans\bm X\\
+    \bm X\trans\bm Z&\bm X\trans\bm X
+  \end{bmatrix}
+  \begin{bmatrix}
+     \bm\mu_{\mc B|\mc Y=\yobs}\\\widehat{\bm\beta}_\theta
+  \end{bmatrix}=
+  \begin{bmatrix}\bm X\trans\yobs\\\bm Z\trans\yobs\end{bmatrix} .
+\end{equation}
+where
+$\bm\Omega_\theta=\left(\bLt\trans\bLt\right)^{-1}=\sigma^2\bm\Sigma^{-1}$
+is the \emph{relative precision matrix} for a given value of
+$\bm\theta$.  They also showed that the profiled log-likelihood can be
+expressed (on the deviance scale) as
+\begin{equation}
+  \label{eq:batesDebRoyprofdev}
+  -2\mc L(\bm\theta)=
+  \log\left(\frac{|\bm Z\trans\bm Z+\bm\Omega|}{|\bm\Omega|}\right) +
+  n\left[1+\log\left(\frac{2\pi r^2_\theta}{n}\right)\right] .
+\end{equation}
+
+The primary difference between Equation~\ref{eq:henderson} and
+Equation~\ref{eq:batesDebRoy} is the order of the blocks in the system matrix.
+The PLS problem can be solved using a Cholesky factor of the system
+matrix with the blocks in either order.  The advantage of using the
+arrangement in Equation~\ref{eq:batesDebRoy} is to allow for evaluation of
+the profiled log-likelihood.  To evaluate $|\bm Z\trans\bm
+Z+\bm\Omega|$ from the Cholesky factor that block must be in the
+upper-left corner, not the lower right.  Also, $\bm Z$ is sparse whereas $\bm
+X$ is usually dense.  It is straightforward to exploit the sparsity of
+$\bm Z\trans\bm Z$ in the Cholesky factorization when the block containing
+this matrix is the first block to be factored.  If $\bm X\trans\bm
+X$ is the first block to be factored it is much more difficult to
+preserve sparsity.
+
+The main change from the formulation in \citet{bates04:_linear} to the
+current formulation is the use of a relative covariance factor,
+$\bLt$, instead of a relative precision matrix, $\bm\Omega_\theta$,
+and solving for the mean of $\mc U|\mc Y = \yobs$ instead of the mean
+of $\mc B|\mc Y = \yobs$.  This change improves stability, because the
+solution to the PLS problem in Section~\ref{sec:plsMath} is
+well-defined when $\bLt$ is singular whereas the formulation in
+Equation~\ref{eq:batesDebRoy} cannot be used in these cases because
+$\bm\Omega_\theta$ does not exist.
+
+It is important to allow for $\bLt$ to be singular because situations
+where the parameter estimates, $\widehat{\bm\theta}$, produce a
+singular $\bm\Lambda_{\widehat{\theta}}$ do occur in practice.  And
+even if the parameter estimates do not correspond to a singular
+$\bm\Lambda_\theta$, it may be desirable to evaluate the estimation
+criterion at such values during the course of the numerical
+optimization of the criterion.
+
+\citet{bates04:_linear} also provided expressions for the gradient of
+the profiled log-likelihood expressed as
+Equation~\ref{eq:batesDebRoyprofdev}.  These expressions can be translated
+into the current formulation.  From Equation~\ref{eq:profiledDeviance} we can see
+that (again ignoring weights),
+\begin{equation}
+  \label{eq:grad}
+  \begin{aligned}
+    \nabla\left(-2\mc L(\theta)\right)
+    &=\nabla\log(|\bm L_\theta|^2)+\nabla \left(n\log(r^2(\bm\theta))\right)\\
+    &=\nabla\log(|\bLt\trans\bm Z\trans\bm Z\bLt+\bm I|)+
+    n\left(\nabla r^2(\bm\theta)\right)/r^2(\bm\theta)\\
+    &=\nabla\log(|\bLt\trans\bm Z\trans\bm Z\bLt+\bm I|)+
+    \left(\nabla r^2(\bm\theta)\right)/(\widehat{\sigma^2})
+  \end{aligned} .
+\end{equation}
+The first gradient is easy to express but difficult to evaluate for
+the general model.  The individual elements of this gradient are
+\begin{equation}
+  \label{eq:graddet}
+  \begin{aligned}
+    \frac{\partial\log(|\bLt\trans\bm Z\trans\bm Z\bLt+\bm
+      I|)}{\partial \theta_i} &=
+    \tr\left[\frac{\partial\left(\bLt\trans\bm Z\trans\bm
+          Z\bLt\right)}{\partial\theta_i}
+      \left(\bLt\trans\bm Z\trans\bm Z\bLt+\bm I\right)^{-1}\right]\\
+    &=\tr\left[
+      \left(\bm L_\theta\bm L_\theta\trans\right)^{-1}
+      \left(
+        \bLt\trans\bm Z\trans\bm Z\frac{\partial\bLt}{\partial\theta_i} +
+        \frac{\partial\bLt\trans}{\partial\theta_i}\bm Z\trans\bm Z\bLt
+      \right)
+    \right] .
+  \end{aligned}
+\end{equation}
+The second gradient term can be expressed as a linear function of the
+residual, with individual elements of the form
+\begin{equation}
+  \label{eq:gradr2}
+  \frac{\partial r^2(\bm\theta)}{\partial\theta_i}=
+  -2\bm u\trans\frac{\partial\bLt\trans}{\partial\theta_i}\bm
+  Z\trans\left(\bm y-\bm Z\bLt\bm u-\bm X\widehat{\bm\beta}_{\bm\theta
+   }\right),
+\end{equation}
+using the results of \citet{golub_pereyra_1973}. Although we do not
+use these results in \pkg{lme4}, they are used for certain model types
+in the \pkg{MixedModels} package for \proglang{Julia} and do provide
+improved performance.
+
+
+\subsection{Penalized least squares algorithm}
+\label{sec:PLSpureR}
+
+For efficiency, in \pkg{lme4} itself, PLS is implemented in compiled
+\proglang{C++} code using the \pkg{Eigen} templated \proglang{C++}
+package for numerical linear algebra.  Here however, in order to
+improve readability we describe a version in pure \proglang{R}.
+Section~\ref{sec:CSCmats} provides greater detail on the techniques
+and concepts for computational efficiency, which is important in cases
+where the nonlinear optimizer (Section~\ref{sec:optimizeLmer})
+requires many iterations.
+
+The PLS algorithm takes a vector of covariance parameters,
+$\bm\theta$, as inputs and returns the profiled deviance (Equation
+\ref{eq:profiledDeviance}) or the REML criterion
+(Equation \ref{eq:REMLprofiled}). This PLS algorithm consists of four main
+steps:
+\begin{enumerate}
+\item Update the relative covariance factor (Section~\ref{sec:plsI}),
+\item Solve the normal equations (Section~\ref{sec:plsII}),
+\item Update the linear predictor and residuals (Section~\ref{sec:plsIII}),
+\item Compute and return the profiled deviance (Section~\ref{sec:plsIV}).
+\end{enumerate}
+PLS also requires the objects described in Table~\ref{tab:inputsPLS},
+which define the structure of the model.  These objects do not get
+updated during the PLS iterations, and so it is useful to store
+various matrix products involving them (Table~\ref{tab:constantPLS}).
+Table~\ref{tab:updatePLS} lists the objects that do get updated over
+the PLS iterations.  The symbols in this table correspond to a version
+of \pkg{lme4} that is implemented entirely in \proglang{R} (i.e., no
+compiled code as in \pkg{lme4} itself).  This implementation is called
+\pkg{lme4pureR} and is currently available on \github\
+(\url{https://github.com/lme4/lme4pureR/}).
+
+\begin{table}[tb]
+  \centering
+  \begin{minipage}{\textwidth}
+  \begin{tabular}{p{2.2in}llp{2in}}
+    \hline
+    Name/description & Pseudocode & Math & Type \\
+    \hline
+    Mapping from covariance parameters to relative covariance factor &
+    \code{mapping} &  & function \\
+    Response vector & \code{y} & $\yobs$ (Section~\ref{sec:LMMs}) & double vector \\
+    Fixed effects model matrix & \code{X} & $\bm X$ (Equation~\ref{eq:LMMcondY}) & double dense\footnote{In previous versions of \pkg{lme4} a sparse $X$ matrix, useful for models with categorical fixed-effect predictors with many levels, could be specified; this feature is not currently available.}
+    matrix \\
+    Transposed random effects model matrix & \code{Zt} & $\bm Z\trans$
+    (Equation~\ref{eq:LMMcondY}) &
+    double sparse matrix \\
+    Square-root weights matrix & \code{sqrtW} & $\bm W^{1/2}$
+    (Equation~\ref{eq:LMMcondY}) & double diagonal matrix \\
+    Offset & \code{offset} & $\bm o$ (Equation~\ref{eq:LMMcondY}) & double vector \\
+    \hline
+  \end{tabular}
+  \renewcommand{\footnoterule}{%
+    \kern -3pt
+    \hrule width \textwidth height 0pt
+    \kern 2pt
+  }
+  \end{minipage}
+  \caption{Inputs into a linear mixed model.}
+  \label{tab:inputsPLS}
+\end{table}
+
+\begin{table}[tb]
+  \centering
+  \begin{tabular}{ll}
+    \hline
+    Pseudocode & Math \\
+    \hline
+    \code{ZtW} & $\bm Z\trans\bm W^{1/2}$ \\
+    \code{ZtWy} & $\bm Z\trans\bm W \yobs$ \\
+    \code{ZtWX} & $\bm Z\trans\bm W \bm X$ \\
+    \code{XtWX} & $\bm X\trans\bm W \bm X$ \\
+    \code{XtWy} & $\bm X\trans\bm W \yobs$ \\
+    \hline
+  \end{tabular}
+  \caption{Constant symbols involved in penalized least squares.}
+  \label{tab:constantPLS}
+\end{table}
+
+
+\begin{table}[tb]
+  \centering
+  \begin{tabular}{p{2.2in}llp{2in}}
+    \hline
+    Name/description & Pseudocode & Math & Type \\
+    \hline
+    Relative covariance factor & \code{lambda} & $\bLt$
+    (Equation~\ref{eq:relcovfac})
+    & sparse double lower-triangular matrix  \\
+    Random-effects Cholesky factor & \code{L} & $\bm L_{\bm\theta}$
+    (Equation~\ref{eq:blockCholeskyDecomp})
+    & double sparse triangular matrix \\
+    Intermediate vector in the solution of the normal equations &
+    \code{cu} & $\bm c_u$ (Equation~\ref{eq:cu}) & double vector \\
+    Block in the full Cholesky factor & \code{RZX} & $\bm R_{ZX}$
+    (Equation~\ref{eq:blockCholeskyDecomp})  & double dense matrix \\
+    Cross-product of the fixed-effects Cholesky factor & \code{RXtRX}
+    & $\bm R_X\trans\bm R_X$ (Equation~\ref{eq:RX}) & double dense matrix \\
+    Fixed effects coefficients & \code{beta} & $\bm\beta$
+    (Equation~\ref{eq:LMMcondY}) & double vector \\
+    Spherical conditional modes & \code{u} & $\bm u$ (Section~\ref{sec:stability}) & double vector \\
+    Non-spherical conditional modes & \code{b}
+    & $\bm b$ (Equation~\ref{eq:LMMcondY}) & double vector \\
+    Linear predictor & \code{mu} & $\bm\mu_{\mc Y|\mc U=\bm u}$
+    (Equation~\ref{eq:meanYgivenU}) & double vector \\
+    Weighted residuals & \code{wtres} & $\bm W^{1/2} (\yobs - \mu)$ &
+    double vector \\
+    Penalized weighted residual sum-of-squares & \code{pwrss} &
+    $r^2(\bm\theta)$ (Equation~\ref{eq:pwrssIdentity}) &
+    double \\
+    Twice the log determinant random-effects Cholesky factor  &
+    \code{logDet}
+    & $\log|\bm L_{\bm\theta}|^2$ & double \\
+    \hline
+  \end{tabular}
+  \caption{Quantities updated during an evaluation of the linear mixed model
+    objective function.}
+  \label{tab:updatePLS}
+\end{table}
+
+
+\subsubsection{PLS step I: update relative covariance factor}
+\label{sec:plsI}
+
+The first step of PLS is to update the relative covariance factor,
+$\bLt$, from the current value of the covariance parameter vector,
+$\bm\theta$.  The updated $\bLt$ is then used to update the random
+effects Cholesky factor, $\bm L_{\bm\theta}$
+(Equation~\ref{eq:blockCholeskyDecomp}).  The mapping from the covariance
+parameters to the relative covariance factor can take many forms, but
+in general involves a function that takes $\bm\theta$ into the values
+of the non-zero elements of $\bLt$.
+
+If $\bLt$ is stored as an object of class \code{"dgCMatrix"} from the
+\pkg{Matrix} package for \proglang{R}, then we may update $\bLt$ from
+$\bm\theta$ by,
+<<PLSupdateTheta, eval = FALSE>>=
+Lambdat@x[] <- mapping(theta)
+@
+where \code{mapping} is an \proglang{R} function that both accepts and
+returns a numeric vector. The non-zero elements of sparse matrix
+classes in \pkg{Matrix} are stored in a slot called \code{x}.
+
+In the current version of \pkg{lme4} (v. 1.1-7) the mapping from
+$\bm\theta$ to $\bLt$ is represented as an \proglang{R} integer
+vector, \code{Lind}, of indices, so that
+<<PLSupdateThetaWithLind>>=
+mapping <- function(theta) theta[Lind]
+@
+The index vector \code{Lind} is computed during the model setup and
+stored in the function's environment.  Continuing the example from
+Section~\ref{sec:mkLambdat}, consider a new value for \code{theta},
+<<exampleNewTheta>>=
+thetanew <- c(1, -0.1, 2, 0.1, -0.2, 3)
+@
+To put these values in the appropriate elements in \code{Lambdati},
+we use \code{mapping},
+<<exampleLindUpdate>>=
+Lambdati@x[] <- mapping(thetanew)
+Lambdati
+@
+This \code{Lind} approach can be useful for extending the capabilities
+of \pkg{lme4} by using the modular approach to fitting mixed models.
+For example, Appendix~\ref{sec:homoVar} shows how to use \code{Lind}
+to fit a model where a random slope and intercept are uncorrelated and
+have the same variance.
+
+The mapping from the covariance parameters to the relative covariance
+factor is treated differently in other implementations of the
+\code{lme4} approach to linear mixed models.  At the other extreme, the
+\code{flexLambda} branch of \pkg{lme4} and the \pkg{lme4pureR} package
+allows the capabilities for a completely general mapping.  This added
+flexibility has the advantage of allowing a much wider variety of
+models (e.g., compound symmetry, auto-regression).  However, the
+disadvantage of this approach is that it becomes possible to fit a
+much wider variety of ill-posed models.  Finally, if one would like
+such added flexibility with the current stable version of \pkg{lme4},
+it is always possible to use the modular approach to wrap the
+\code{Lind}-based deviance function in a general mapping function
+taking a parameter to be optimized, say $\phi$, into $\bm\theta$.
+However, this approach is likely to be inefficient in many cases.
+
+The \code{update} method from the \pkg{Matrix} package efficiently
+updates the random effects Cholesky factor, $\bm L_{\bm\theta}$, from a
+new value of $\bm\theta$ and the updated $\bLt$.
+<<updateL, eval=FALSE>>=
+L <- update(L, Lambdat %*% ZtW, mult = 1)
+@
+The \code{mult = 1} argument corresponds to the addition of the
+identity matrix to the upper-left block on the left-hand-side of
+Equation~\ref{eq:blockCholeskyDecomp}.
+
+\subsubsection{PLS step II:  solve normal equations}
+\label{sec:plsII}
+
+With the new covariance parameters installed in $\bLt$, the next step
+is to solve the normal equations (Equation~\ref{eq:normalEquations}) for the
+current estimate of the fixed effects coefficients,
+$\widehat{\betavec}_{\bm\theta}$, and the conditional mode, $\mu_{\mc
+  U|\mc Y = \yobs}$. We solve these equations using a sparse Cholesky
+factorization (Equation~\ref{eq:blockCholeskyDecomp}).  In a complex model
+fit to a large data set, the dominant calculation in the evaluation of
+the profiled deviance (Equation~\ref{eq:profiledDeviance}) or REML criterion
+(Equation~\ref{eq:REMLprofiled}) is this sparse Cholesky factorization
+(Equation~\ref{eq:blockCholeskyDecomp}).  The factorization is performed in two
+phases; a symbolic phase and a numeric phase.  The symbolic phase, in
+which the fill-reducing permutation $\bm P$ is determined along with
+the positions of the non-zeros in $\bm L_{\bm\theta}$, does not depend
+on the value of $\bm\theta$.  It only depends on the positions of the
+nonzeros in $\bm Z\bLt$.  The numeric phase uses $\bm\theta$ to
+determine the numeric values of the non-zeros in $\bm
+L_{\bm\theta}$. Using this factorization, the solution proceeds by the
+following steps,
+\begin{align}
+    \bm L_{\bm\theta}\bm c_u&=\bm P\bLt\trans\bm Z\trans\bm W\bm y\label{eq:cu}\\
+    \bm L_{\bm\theta}\bm R_{ZX}&=\bm P\bLt\trans\bm Z\trans\bm W\bm X\label{eq:RZX}\\
+    \bm R_X\trans\bm R_X&=\bm X\trans\bm W\bm X-\bm R_{ZX}\trans\bm R_{ZX}\label{eq:RX}\\
+    \left(\bm R_X\trans\bm R_X\right)\widehat{\bm\beta}_{\bm\theta}&=
+      \bm X\trans\bm W\bm y-\bm R_{ZX}\bm c_u\label{eq:betahat}\\
+    \bm L\trans\bm_{\bm\theta} \bm P\bm u&=\bm c_u-\bm R_{ZX}\widehat{\bm\beta}\label{eq:tildeu}
+\end{align}
+which can be solved using the \pkg{Matrix} package with,
+<<PLSsolve, eval = FALSE>>=
+cu[] <- as.vector(solve(L, solve(L, Lambdat %*% ZtWy,
+                                 system = "P"), system = "L"))
+RZX[] <- as.vector(solve(L, solve(L, Lambdat %*% ZtWX,
+                                  system = "P"), system = "L"))
+RXtRX <- as(XtWX - crossprod(RZX), "dpoMatrix")
+beta[] <- as.vector(solve(RXtRX, XtWy - crossprod(RZX, cu)))
+u[] <- as.vector(solve(L, solve(L, cu - RZX %*% beta,
+                                system = "Lt"), system = "Pt"))
+b[] <- as.vector(crossprod(Lambdat, u))
+@
+Notice the nested calls to \code{solve}.  The inner calls of the first
+two assignments determine and apply the permutation matrix
+(\code{system = "P"}), whereas the outer calls actually solve the
+equation (\code{system = "L"}). In the assignment to \code{u[]}, the
+nesting is reversed in order to return to the original permutation.
+
+\subsubsection{PLS step III: update linear predictor and residuals}
+\label{sec:plsIII}
+
+The next step is to compute the linear predictor, $\mu_{\mc Y| \mc U}$
+(Equation \ref{eq:meanYgivenU}), and the weighted residuals with new values for
+$\widehat{\betavec}_\theta$ and $\mu_{\mc B | \mc Y = \yobs}$.  In
+\pkg{lme4pureR} these quantities can be computed as,
+<<PLSupdateResp, eval = FALSE>>=
+mu[] <- as.vector(crossprod(Zt, b) + X %*% beta + offset)
+wtres <- sqrtW * (y - mu)
+@
+where \code{b} represents the current estimate of $\mu_{\mc B | \mc Y
+  = \yobs}$.
+
+\subsubsection{PLS step IV: compute profiled deviance}
+\label{sec:plsIV}
+
+Finally, the updated linear predictor and weighted residuals can be
+used to compute the profiled deviance (or REML criterion), which in
+\pkg{lme4pureR} proceeds as,
+<<PLScalculateObjective, eval = FALSE>>=
+pwrss <- sum(wtres^2) + sum(u^2)
+logDet <- 2*determinant(L, logarithm = TRUE)$modulus
+if (REML) logDet <- logDet + determinant(RXtRX,
+                                         logarithm = TRUE)$modulus
+attributes(logDet) <- NULL
+profDev <- logDet + degFree * (1 + log(2 * pi * pwrss) - log(degFree))
+@
+The profiled deviance consists of three components: (1)
+log-determinant(s) of Cholesky factorization (\code{logDet}), (2) the
+degrees of freedom (\code{degFree}), and the penalized weighted
+residual sum-of-squares (\code{pwrss}).
+
+\subsection{Sparse matrix methods}
+\label{sec:CSCmats}
+
+In fitting linear mixed models, an instance of the PLS problem
+(\ref{eq:normalEquations}) must be solved at each evaluation of the
+objective function during the optimization
+(Section~\ref{sec:optimizeLmer}) with respect to $\bm\theta$.  Because
+this operation must be performed many times it is worthwhile
+considering how to provide effective evaluation methods for objects
+and calculations involving the sparse matrices associated with random
+effects terms (Sections~\ref{sec:LMMmatrix}).
+
+The CHOLMOD library of C functions
+\citep{Chen:2008:ACS:1391989.1391995}, on which the sparse matrix
+capabilities of the \pkg{Matrix} package for \proglang{R} and the
+sparse Cholesky factorization in \proglang{Julia} are based, allows
+for separation of the symbolic and numeric phases.  Thus we perform
+the symbolic phase as part of establishing the structure representing
+the model (Section~\ref{sec:lFormula}).  Furthermore, because CHOLMOD
+functions allow for updating $\bm L_{\bm\theta}$ directly from the
+matrix $\bLt\trans\bm Z\trans$ without actually forming $\bLt\trans\bm
+Z\trans\bm Z\bLt+\bm I$ we generate and store $\bm Z\trans$ instead of
+$\bm Z$ (note that we have ignored the weights matrix, $\bm W$, for
+simplicity).  We can update $\bLt\trans\bm Z\trans$ directly from
+$\bm\theta$ without forming $\bLt$ and multiplying two sparse
+matrices.  Although such a direct approach is used in the
+\pkg{MixedModels} package for \proglang{Julia}, in \pkg{lme4} we first
+update $\bLt\trans$ then form the sparse product $\bLt\trans\bm
+Z\trans$.  A third alternative, which we employ in \pkg{lme4pureR}, is
+to compute and save the cross-products of the model matrices, $\bm X$
+and $\bm Z$, and the response, $\bm y$, before starting the
+iterations. To allow for case weights, we save the products $\bm
+X\trans\bm W\bm X$, $\bm X\trans\bm W\bm y$, $\bm Z\trans\bm W\bm X$,
+$\bm Z\trans\bm W\bm y$ and $\bm Z\trans\bm W\bm Z$ (see
+Table~\ref{tab:constantPLS}).
+
+We wish to use structures and algorithms that allow us to take a new
+value of $\bm\theta$ and evaluate the $\bm L_\theta$
+(eqn.~\ref{eq:blockCholeskyDecomp}) efficiently.  The key to doing so
+is the special structure of $\bLt\trans\bm Z\trans\bm W^{1/2}$.  To
+understand why this matrix, and not its transpose, is of interest we
+describe the sparse matrix structures used in \proglang{Julia} and in
+the \pkg{Matrix} package for \proglang{R}.
+
+Dense matrices are stored in \proglang{R} and in \proglang{Julia} as a
+one-dimensional array of contiguous storage locations addressed in
+\emph{column-major order}.  This means that elements in the same
+column are in adjacent storage locations whereas elements in the same
+row can be widely separated in memory.  For this reason, algorithms
+that work column-wise are preferred to those that work row-wise.
+
+Although a sparse matrix can be stored in a \emph{triplet} format,
+where the row position, column position and element value the nonzeros
+are recorded as triplets, the preferred storage forms for actual
+computation with sparse matrices are compressed sparse column (CSC) or
+compressed sparse row (CSR)~\citep[Ch.~2]{davis06:csparse_book}. The
+CHOLMOD (and, more generally, the SuiteSparse package of C libraries)
+uses the CSC storage format.  In this format the non-zero elements in
+a column are in adjacent storage locations and access to all the
+elements in a column is much easier than access to those in a row
+(similar to dense matrices stored in column-major order).
+
+The matrices $\bm Z$ and $\bm Z\bLt$ have the property that the number
+of nonzeros in each row, $\sum_{i=1}^k p_i$, is constant.  For CSC
+matrices we want consistency in the columns rather than the rows,
+which is why we work with $\bm Z\trans$ and $\bLt\trans\bm Z\trans$
+rather than their transposes.
+
+An arbitrary $m\times n$ sparse matrix in CSC format is expressed as
+two vectors of indices, the row indices and the column pointers, and a
+numeric vector of the non-zero values.  The elements of the row
+indices and the nonzeros are aligned and are ordered first by
+increasing column number then by increasing row number within column.
+The column pointers are a vector of size $n+1$ giving the location of
+the start of each column in the vectors of row indices and nonzeros.
+
+Because the number of nonzeros in each column of $\bm Z\trans$, and in
+each column of matrices derived from $\bm Z\trans$ (such as
+$\bLt\trans\bm Z\trans\bm W^{1/2}$) is constant, the vector of
+nonzeros in the CSC format can be viewed as a dense matrix, say $\bm
+N$, of size $\left(\sum_{i=1}^n p_i\right)\times n$.  We do not need
+to store the column pointers because the columns of $\bm Z\trans$
+correspond to columns of $\bm N$.  All we need is $\bm N$, the dense
+matrix of nonzeros, and the row indices, which are derived from the
+grouping factor index vectors $\bm i_i,i=1,\dots,k$ and can also be
+arranged as a dense matrix of size $\left(\sum_{i=1}^n
+  p_i\right)\times n$.  Matrices like $\bm Z\trans$, with the property
+that there are the same number of nonzeros in each column, are
+sometimes called \emph{regular sparse column-oriented} (RSC) matrices.
+\section{Nonlinear optimization module}
+\label{sec:optimizeLmer}
+
+The objective function module produces a function which implements the
+penalized least squares algorithm for a particular mixed model. The
+next step is to optimize this function over the covariance parameters,
+$\bm\theta$, which is a nonlinear optimization problem.  The
+\pkg{lme4} package separates the efficient computational linear
+algebra required to compute profiled likelihoods and deviances for a
+given value of $\bm\theta$ from the nonlinear optimization algorithms,
+which use general-purpose nonlinear optimizers.
+
+One benefit of this separation is that it allows for experimentation
+with different nonlinear optimizers.  Throughout the development of
+\pkg{lme4}, the default optimizers and control parameters have changed
+in response to feedback from users about both efficiency and
+convergence properties.  \pkg{lme4} incorporates two built-in
+optimization choices, an implementation of the Nelder-Mead simplex
+algorithm adapted from Steven Johnson's \code{NLopt} C library
+\citep{NLopt} and a wrapper for Powell's BOBYQA
+algorithm, implemented in the \pkg{minqa} package \cite{minqa_pkg}
+as a wrapper around
+Powell's original Fortran code \citep{Powell_bobyqa}.  More generally,
+\pkg{lme4} allows any user-specified optimizer that (1) can work with
+an objective function (i.e., does not require a gradient function to
+be specified), (2) allows box constraints on the parameters, and (3)
+conforms to some simple rules about argument names and structure of
+the output. An internal wrapper allows the use of the \pkg{optimx}
+package \citep{optimx_pkg}, although the only optimizers provided via \pkg{optimx} that
+satisfy the constraints above are the \code{nlminb} and
+\code{L-BFGS-B} algorithms that are themselves wrappers around the
+versions provided in base R.
+Several other algorithms from Steven Johnson's
+\code{NLopt} package are also available via the \pkg{nloptr} wrapper
+package (e.g., alternate implementations of Nelder-Mead and BOBYQA,
+and Powell's COBYLA algorithm).
+
+This flexibility assists with diagnosing convergence problems --- it
+is easy to switch among several algorithms to determine whether the
+problem lies in a failure of the nonlinear optimization stage, as
+opposed to a case of model misspecification or unidentifiability or a
+problem with the underlying PLS algorithm.  To date we
+have only observed PLS failures, which arise if
+$\bm X\trans\bm W\bm X-\bm R_{ZX}\trans\bm R_{ZX}$ becomes singular
+during an evaluation of the objective function, with badly scaled
+problems (i.e., problems with continuous predictors that take a
+very large or very small numerical range of values).
+
+The requirement for optimizers that can handle box constraints stems
+from our decision to parameterize the variance-covariance matrix in a
+constrained space, in order to allow for singular fits. In contrast to
+the approach taken in the \pkg{nlme} package \citep{nlme_pkg}, which goes to some
+lengths to use an unconstrained variance-covariance parameterization
+(the \emph{log-Cholesky} parameterization:
+\cite{pinheiro_unconstrained_1996}), we instead use the Cholesky
+parameterization but require the elements of $\bm\theta$ corresponding
+to the diagonal elements of the Cholesky factor to be non-negative.
+With these constraints, the variance-covariance matrix is singular if
+and only if any of the diagonal elements is exactly zero.
+Singular fits are common in practical data-analysis situations,
+especially with small- to medium-sized data sets and complex
+variance-covariance models, so being able to fit a singular model is
+an advantage: when the best fitting model lies on the boundary of a
+constrained space, approaches that try to remove the constraints by
+fitting parameters on a transformed scale will often give rise to
+convergence warnings as the algorithm tries to find a maximum on an
+asymptotically flat surface \citep{bolker_strategies_2013}.
+
+In principle the likelihood surfaces we are trying to optimize over
+are smooth, but in practice using gradient information in optimization
+may or may not be worth the effort. In special cases, we have a
+closed-form solution for the gradients
+(Equations~\ref{eq:grad}--\ref{eq:gradr2}), but in general we will have to
+approximate them by finite differences, which is expensive and has
+limited accuracy.  (We have considered using automatic
+differentiation approaches to compute the gradients more efficiently,
+but this strategy requires a great deal of additional machinery, and
+would have drawbacks in terms of memory requirements for large
+problems.)  This is the primary reason for our switching to
+derivative-free optimizers such as BOBYQA and Nelder-Mead in the
+current version of \pkg{lme4}, although as discussed above
+derivative-based optimizers based on finite differencing are available
+as an alternative.
+
+There is most likely further room for improvement in the nonlinear
+optimization module; for example, some speed-up could be gained by
+using parallel implementations of derivative-free optimizers that
+evaluated several trial points at once \citep{klein_nelder_2013}.  In
+practice users most often have optimization difficulties with poorly
+scaled or centred data --- we are working to implement appropriate
+diagnostic tests and warnings to detect these situations.
+
+\section{Output module}
+\label{sec:mkMerMod}
+
+Here we describe some of the methods in \pkg{lme4} for exploring
+fitted linear mixed models (Table~\ref{tab:methods}), which are
+represented as objects of the \code{S4} class \code{lmerMod}.  We
+begin by describing the theory underlying these methods
+(Section~\ref{sec:outputTheory}) and then continue the
+\code{sleepstudy} example introduced in Section~\ref{sec:sleepstudy}
+to illustrate these ideas in practice.
+
+\subsection{Theory underlying the output module}
+\label{sec:outputTheory}
+
+\subsubsection{Covariance matrix of the fixed effect coefficients}
+\label{sec:vcov}
+
+In the \code{lm} function, the variance-covariance matrix of the
+coefficients is the inverse of the cross product of the model matrix, times
+the residual variance \citep{Chambers:1993}.  The inverse cross-product
+matrix is computed by first inverting the upper triangular matrix
+resulting from the QR decomposition of the model matrix, and then
+taking its cross-product.
+\begin{equation}
+  \label{eq:varUBeta}
+  \Var_{\bm\theta, \sigma}\left(
+    \begin{bmatrix}
+      \bm\mu_{\mc U|\mc Y=\yobs} \\ \hat\betavec
+    \end{bmatrix}
+  \right) =
+  \sigma^2
+  \begin{bmatrix}
+    \bm L\trans_{\bm\theta} & \bm R_{ZX}\\
+    \bm 0            & \bm R_X
+  \end{bmatrix}^{-1}
+  \begin{bmatrix}
+    \bm L_{\bm\theta}& \bm 0\\
+    \bm R_{ZX}\trans & \bm R_X\trans
+  \end{bmatrix}^{-1}
+\end{equation} % |
+Because of normality, the marginal covariance matrix of $\hat\betavec$ is
+just the lower-right $p$-by-$p$ block of
+$\Var_{\bm\theta, \sigma}\left(
+    \begin{bmatrix}
+      \bm\mu_{\mc U|\mc Y=\yobs} \\ \hat\betavec
+    \end{bmatrix}
+  \right)$.
+This lower-right block is
+\begin{equation}
+  \label{eq:varBeta}
+  \Var_{\bm\theta, \sigma}(\hat\betavec) = \sigma^2 \bm R_X^{-1} (\bm R_X\trans)^{-1}
+\end{equation}
+which follows from the Schur complement identity (Theorem 1.2 of \citet{zhang2006schur}).  This
+matrix can be extracted from a fitted \code{merMod} object as,
+<<vcovByHand>>=
+RX <- getME(fm1, "RX")
+sigma2 <- sigma(fm1)^2
+sigma2 * chol2inv(RX)
+@
+which could be computed with \pkg{lme4} as \code{vcov(fm1)}.
+
+The square-root diagonal of this covariance matrix contains the
+estimates of the standard errors of fixed effects coefficients.  These
+standard errors are used to construct Wald confidence intervals with
+\code{confint(., method = "Wald")}.  Such confidence intervals are
+approximate, and depend on the assumption that the likelihood profile
+of the fixed effects is linear on the $\zeta$ scale
+(Section~\ref{sec:profile}).
+
+\subsubsection{Profiling}
+\label{sec:profile}
+
+\newcommand{\devprof}{-2 {\mc L}_p}
+
+The theory of likelihood profiles is straightforward: the deviance (or
+likelihood) profile, $\devprof()$, for a focal model parameter $P$ is
+the minimum value of the deviance conditioned on a particular value of
+$P$.  For each parameter of interest, our goal is to evaluate the
+deviance profile for many points --- optimizing over all of the
+non-focal parameters each time --- over a wide enough range and with
+high enough resolution to evaluate the shape of the profile (in
+particular, whether it is quadratic, which would allow use of Wald
+confidence intervals and tests) and to find the values of $P$ such
+that $\devprof(P)=-2 {\mc L}(\widehat{P}) + \chi^2(1-\alpha)$, which
+represent the profile confidence intervals.  While profile confidence
+intervals rely on the asymptotic distribution of the minimum deviance,
+this is a much weaker assumption than the log-quadratic likelihood
+surface required by Wald tests.
+
+An additional challenge in profiling arises when we want to compute
+profiles for quantities of interest that are not parameters of our PLS
+function. We have two problems in using the deviance function defined
+above to profile linear mixed models. First, a parameterization of the
+random effects variance-covariance matrix in terms of standard
+deviations and correlations, or variances and covariances, is much
+more familiar to users, and much more relevant as output of a
+statistical model, than the parameters, $\bm\theta$, of the relative
+covariance factor --- users are interested in inferences on variances
+or standard deviations, not on $\bm\theta$. Second, the fixed-effect
+coefficients and the residual standard deviation, both of which are
+also of interest to users, are profiled out (in the sense used above)
+of the deviance function (Section~\ref{sec:profdev}), so we have to
+find a strategy for estimating the deviance for values of $\bm\beta$
+and $\sigma^2$ other than the profiled values.
+
+To handle the first problem we create a new version of the deviance
+function that first takes a vector of standard deviations (and
+correlations), and a value of the residual standard deviation, and
+maps them to a $\bm\theta$ vector, and then computes the PLS as
+before; it uses the specified residual standard deviation rather than
+the PLS estimate of the standard deviation
+(Equation~\ref{eq:residualVarianceEstimate}) in the deviance calculation.
+We compute a profile likelihood for the fixed-effect parameters, which
+are profiled out of the deviance calculation, by adding an offset to
+the linear predictor for the focal element of $\bm\beta$.  The
+resulting function is not useful for general nonlinear optimization
+--- one can easily wander into parameter regimes corresponding to
+infeasible (non-positive semidefinite) variance-covariance matrices ---
+but it serves for likelihood profiling, where one focal parameter is
+varied at a time and the optimization over the other parameters is
+likely to start close to an optimum.
+
+In practice, the \code{profile} method systematically varies the
+parameters in a model, assessing the best possible fit that can be
+obtained with one parameter fixed at a specific value and comparing
+this fit to the globally optimal fit, which is the original model fit
+that allowed all the parameters to vary.  The models are compared
+according to the change in the deviance, which is the likelihood ratio
+test statistic.  We apply a signed square root transformation to this
+statistic and plot the resulting function, which we call the
+\emph{profile zeta function} or $\zeta$, versus the parameter
+value. The signed aspect of this transformation means that $\zeta$ is
+positive where the deviation from the parameter estimate is positive
+and negative otherwise, leading to a monotonically increasing function
+which is zero at the global optimum. A $\zeta$ value can be compared
+to the quantiles of the standard normal distribution.  For example, a
+95\% profile deviance confidence interval on the parameter consists of
+the values for which $-1.96 < \zeta < 1.96$.  Because the process of
+profiling a fitted model can be computationally intensive --- it
+involves refitting the model many times --- one should exercise
+caution with complex models fit to large data sets.
+
+The standard approach to this computational challenge is to compute
+$\zeta$ at a limited number of parameter values, and to fill in the
+gaps by fitting an interpolation spline.  Often one is able to invert
+the spline to obtain a function from $\zeta$ to the focal parameter,
+which is necessary in order to construct profile confidence intervals.
+However, even if the points themselves are monotonic, it is possible
+to obtain non-monotonic interpolation curves.  In such a case,
+\pkg{lme4} falls back to linear interpolation, with a warning.
+
+\newcommand{\alphamax}{\alpha_{\textrm{\small max}}}
+\newcommand{\pstep}{\epsilon}
+
+The last part of the technical specification for computing profiles is
+deciding on a strategy for choosing points to sample.  In one way or
+another one wants to start at the estimated value for each parameter
+and work outward either until a constraint is reached (i.e., a value of
+0 for a standard deviation parameter or a value of $\pm 1$ for a
+correlation parameter), or until a sufficiently large deviation from
+the minimum deviance is attained.  \pkg{lme4}'s profiler chooses a
+cutoff $\phi$ based on the $1-\alphamax$ critical value of the
+$\chi^2$ distribution with a number of degrees of freedom equal to the
+\emph{total} number of parameters in the model, where $\alphamax$ is
+set to 0.05 by default. The profile computation initially adjusts the
+focal parameter $p_i$ by an amount $\pstep=1.01 \hat p_i$ from its ML
+or REML estimate $\hat p_i$ (or by $\pstep=0.001$ if $\hat p_i$ is
+zero, as in the case of a singular variance-covariance model).  The
+local slope of the likelihood profile $(\zeta(\hat
+p_i+\pstep)-\zeta(\hat p_i))/\pstep$ is used to pick the next point to
+evaluate, extrapolating the local slope to find a new $\pstep$ that
+would be expected to correspond to the desired step size $\Delta
+\zeta$ (equal to $\phi/8$ by default, so that 16 points would be used
+to cover the profile in both directions if the log-likelihood surface
+were exactly quadratic).  Some fail-safe testing is done to ensure
+that the step chosen is always positive, and less than a maximum; if a
+deviance is ever detected that is lower than that of the ML deviance,
+which can occur if the initial fit was wrong due to numerical
+problems, the profiler issues an error and stops.
+%% while scaling based on the approximate variance-covariance matrix
+%% might be more accurate in some cases, it may also lead to problems
+%% when the log-likelihood surface is far from quadratic
+
+\subsubsection{Parametric bootstrapping}
+\label{sec:pb}
+
+To avoid the asymptotic assumptions of the likelihood ratio test, at
+the cost of greatly increased computation time, one can estimate
+confidence intervals by parametric bootstrapping --- that is, by
+simulating data from the fitted model, refitting the model, and
+extracting the new estimated parameters (or any other quantities of
+interest).  This task is quite straightforward, since there is already
+a \code{simulate} method, and a \code{refit} function which
+re-estimates the (RE)ML parameters for new data, starting from the
+previous (RE)ML estimates and re-using the previously computed model
+structures (including the fill-reducing permutation) for efficiency.
+The \code{bootMer} function is thus a fairly thin wrapper around a
+\code{simulate}/\code{refit} loop, with a small amount of additional
+logic for parallel computation and error-catching.  (Some of the ideas
+of \code{bootMer} are adapted from \code{merBoot}, a more ambitious
+framework for bootstrapping \pkg{lme4} model fits which unfortunately
+seems to be unavailable at present \citep{merBoot}.)
+
+
+\subsubsection{Conditional variances of random effects}
+\label{sec:condVar}
+
+It is useful to clarify that the conditional covariance concept in
+\pkg{lme4} is based on a simplification of the linear mixed model.  In
+particular, we simplify the model by assuming that the quantities,
+$\betavec$, $\bLt$, and $\sigma$, are known (i.e., set at their
+estimated values). In fact, the only way to define the conditional
+covariance is at fixed parameter values.  Our approximation here is
+using the estimated parameter values for the unknown ``true''
+parameter values.  In this simplified case, $\mc U$ is the only
+quantity in the statistical model that is both random and unknown.
+
+Given this simplified linear mixed model, a standard result in
+Bayesian linear regression modelling \citep{gelman2013bayesian}
+implies that the conditional distribution of the spherical random
+effects given the observed response vector is Gaussian,
+\begin{equation}
+  \label{eq:condGaussian}
+(\mc U | \mc Y = \yobs) \sim \mathcal{N}(\mu_{\mc U | \mc Y = \yobs},
+\widehat{\sigma}^2 \bm V)
+\end{equation}
+where,
+\begin{equation}
+  \label{eq:condVar}
+  \bm V = \left(\bm\Lambda_{\widehat{\bm\theta}}\trans\bm Z\trans \bm W
+    \bm Z\bm\Lambda_{\widehat{\bm\theta}} + \bm I_q \right)^{-1} =
+  \left(\bm L_{\widehat{\bm\theta}}^{-1}\right)\trans
+  \left(\bm L_{\widehat{\bm\theta}}^{-1}\right)
+\end{equation}
+is the unscaled conditional variance and,
+\begin{equation}
+  \label{eq:condMean}
+  \mu_{\mc U | \mc Y = \yobs} = \bm V \bm\Lambda_{\widehat{\bm\theta}}\trans\bm Z\trans\bm W
+    \left(\yobs-\bm o - X\widehat{\betavec} \right)
+\end{equation}  % |
+is the conditional mean/mode. Note that in practice the inverse in
+Equation~\ref{eq:condVar} does not get computed directly, but rather an
+efficient method is used that exploits the sparse structures.
+
+The random effects coefficient vector, $\mathbf{b}$, is often of
+greater interest. The conditional covariance matrix of $\mc B$
+may be expressed as,
+\begin{equation}
+  \label{eq:condVarB}
+\widehat{\sigma}^2 \bm\Lambda_{\widehat{\bm\theta}} \bm V \bm\Lambda_{\widehat{\bm\theta}}\trans
+\end{equation}
+
+<<condVarExample, echo=FALSE, eval=FALSE>>=
+s2 <- sigma(fm1)^2
+Lambdat <- getME(fm1, "Lambdat")
+Lambda <- getME(fm1, "Lambda")
+Zt <- getME(fm1, "Zt")
+Z <- getME(fm1, "Z")
+y <- getME(fm1, "y")
+X <- getME(fm1, "X")
+beta <- getME(fm1, "beta")
+L <- getME(fm1, "L")
+(V <- crossprod(solve(L, system = "L")))[1:2, 1:2]
+(s2 * Lambda %*% V %*% Lambdat)[1:2, 1:2]
+attr(ranef(fm1, condVar = TRUE)$Subject, "postVar")[ , , 1] # should be same as Lam %*% V %*% Lamt
+(U <- as.vector((V %*% Lambdat %*% Zt %*%  (y - X %*% beta))))
+getME(fm1, "u")
+@
+
+\subsubsection{The hat matrix}
+\label{sec:hat}
+
+The hat matrix, $\bm H$, is a useful object in linear model
+diagnostics \citep{cook1982residuals}.  In general, $\bm H$ relates
+the observed and fitted response vectors, but we specifically define
+it as,
+\begin{equation}
+  \left(\bm\mu_{\mc Y|\mc U=\bm u} - \bm o\right) =
+  \bm H \left(\yobs - \bm o\right)
+\end{equation}
+To find $\bm H$ we note that,
+\begin{equation}
+  \left(\bm\mu_{\mc Y|\mc U=\bm u} - \bm o\right) =
+  \begin{bmatrix}
+    \bm Z\bm\Lambda & \bm X \\
+  \end{bmatrix}
+  \begin{bmatrix}
+    \mu_{\mc U | \mc Y = \yobs} \\ \widehat{\betavec}_{\bm\theta}
+  \end{bmatrix}
+\end{equation}
+Next we get an expression for $\begin{bmatrix}
+    \mu_{\mc U | \mc Y = \yobs} \\ \widehat{\betavec}_{\bm\theta}
+  \end{bmatrix}$ by solving the normal equations
+  (Equation~\ref{eq:normalEquations}),
+\begin{equation}
+ \begin{bmatrix}
+    \mu_{\mc U | \mc Y = \yobs} \\ \widehat{\betavec}_{\bm\theta}
+  \end{bmatrix} =
+  \begin{bmatrix}
+    \bm L\trans_{\bm\theta} & \bm R_{ZX} \\
+    \bm 0 & \bm R_{X}
+  \end{bmatrix}^{-1}
+    \begin{bmatrix}
+    \bm L_{\bm\theta} & \bm 0 \\
+    \bm R\trans_{ZX} & \bm R\trans_{X} \\
+  \end{bmatrix}^{-1}
+    \begin{bmatrix}
+    \bLt\trans \bm Z\trans \\
+    \bm X\trans \\
+  \end{bmatrix} \bm W (\yobs - \bm o)
+\end{equation} % |
+By the Schur complement identity \citep{zhang2006schur},
+\begin{equation}
+  \begin{bmatrix}
+    \bm L\trans_{\bm\theta} & \bm R_{ZX} \\
+    \bm 0 & \bm R_{X}
+  \end{bmatrix}^{-1} =
+  \begin{bmatrix}
+    \left(\bm L\trans_{\bm\theta}\right)^{-1} &
+    - \left(\bm L\trans_{\bm\theta}\right)^{-1} \bm R_{ZX} \bm R_{X}^{-1}\\
+    \bm 0 & \bm R_{X}^{-1}
+  \end{bmatrix}
+\end{equation}
+Therefore, we may write the hat matrix as,
+\begin{equation}
+  \label{eq:hatComputational}
+  \bm H = (\bm C_L\trans \bm C_L + \bm C_R\trans \bm C_R)
+\end{equation}
+where,
+\begin{equation}
+  \label{eq:CL}
+  \bm L_{\bm\theta} \bm C_L = \bLt\trans \bm Z\trans\bm W^{1/2}
+\end{equation}
+and,
+\begin{equation}
+  \label{eq:CR}
+  \bm R\trans_{X} \bm C_R = \bm X\trans\bm W^{1/2} - \bm R\trans_{ZX}\bm C_L
+\end{equation}
+
+The trace of the hat matrix is often used as a measure of the
+effective degrees of freedom (e.g., \citet{vaida2005conditional}).
+Using a relationship between the trace and vec operators, the trace of
+$\bm H$ may be expressed as,
+\begin{equation}
+  \label{eq:traceHat}
+  \tr(\bm H) = \left\| \VEC(\bm C_L) \right\|^2
+  + \left\| \VEC(\bm C_R) \right\|^2
+\end{equation}
+
+\subsection{Using the output module}
+\label{sec:outputPractice}
+
+The user interface for the output module largely consists of a set of
+methods (Table~\ref{tab:methods}) for objects of class \code{merMod},
+which is the class of objects returned by
+\code{lmer} (In addition to these methods, the \code{getME}
+  function can be used to extract various objects from a fitted mixed
+  model in \pkg{lme4}.) Here we illustrate the use of several of
+these methods.
+
+\begin{table}
+  \begin{tabular}{ll}
+    \hline
+    Generic (Section) & Brief description of return value \\
+    \hline
+    \code{anova} (\ref{sec:modComp}) &
+    Decomposition of fixed-effects contributions \\
+    & or model comparison. \\
+    \code{as.function} &
+    Function returning profiled deviance or REML criterion. \\
+    \code{coef} &
+    Sum of the random and fixed effects for each level. \\
+    \code{confint} (\ref{sec:CI}) &
+    Confidence intervals on linear mixed-model parameters. \\
+    \code{deviance} (\ref{sec:summary}) &
+    Minus twice maximum log-likelihood. \\
+    & (Use \code{REMLcrit} for the REML criterion.) \\
+    \code{df.residual} &
+    Residual degrees of freedom. \\
+    \code{drop1} &
+    Drop allowable single terms from the model. \\
+    \code{extractAIC} &
+    Generalized Akaike information criterion \\
+    \code{fitted} &
+    Fitted values given conditional modes (Equation~\ref{eq:meanYgivenU}). \\
+    \code{fixef} (\ref{sec:summary}) &
+    Estimates of the fixed effects coefficients, $\widehat{\bm\beta}$ \\
+    \code{formula} (\ref{sec:uncor}) &
+    Mixed-model formula of fitted model. \\
+    \code{logLik} & % logLik
+    Maximum log-likelihood. \\
+    \code{model.frame} & % model.frame
+    Data required to fit the model. \\
+    \code{model.matrix} &
+    Fixed effects model matrix, $\bm X$.\\
+    \code{ngrps (\ref{sec:summary})} &
+    Number of levels in each grouping factor. \\
+    \code{nobs (\ref{sec:summary})} &
+    Number of observations.\\
+    \code{plot} &
+    Diagnostic plots for mixed-model fits. \\
+    \code{predict} (\ref{sec:predict}) &
+    Various types of predicted values. \\
+    \code{print} &
+    Basic printout of mixed-model objects. \\
+    \code{profile} (\ref{sec:profile}) &
+    Profiled likelihood over various model parameters. \\
+    \code{ranef} (\ref{sec:summary}) &
+    Conditional modes of the random effects. \\
+    \code{refit} (\ref{sec:pb}) &
+    A model (re)fitted to a new set of observations of the response variable. \\
+    \code{refitML} (\ref{sec:modComp}) &
+    A model (re)fitted by maximum likelihood.  \\
+    \code{residuals}  (\ref{sec:summary}) &
+    Various types of residual values. \\
+    \code{sigma} (\ref{sec:summary}) &
+    Residual standard deviation. \\
+    \code{simulate} (\ref{sec:predict}) &
+    Simulated data from a fitted mixed model. \\
+    \code{summary} (\ref{sec:summary}) &
+    Summary of a mixed model. \\
+    \code{terms} &
+    Terms representation of a mixed model. \\
+    \code{update} (\ref{sec:update}) &
+    An updated model using a revised formula or other arguments. \\
+    \code{VarCorr} (\ref{sec:summary})  &
+    Estimated random-effects variances, standard deviations, and correlations. \\
+    \code{vcov} (\ref{sec:summary}) &
+    Covariance matrix of the fixed effect estimates. \\
+    \code{weights} &
+    Prior weights used in model fitting. \\
+    \hline
+  \end{tabular}
+  \caption{List of currently available methods for objects of the class \code{merMod}.}
+  \label{tab:methods}
+\end{table}
+
+
+\subsubsection{Updating fitted mixed models}
+\label{sec:update}
+
+To illustrate the \code{update} method for \code{merMod} objects we
+construct a random intercept only model. This task could be done in
+several ways, but we choose to first remove the random effects term
+\code{(Days | Subject)} and add a new term with a random intercept,
+<<updateModel>>=
+fm3 <- update(fm1, . ~ . - (Days | Subject) + (1 | Subject))
+formula(fm3)
+@ % |
+
+\subsubsection{Model summary and associated accessors}
+\label{sec:summary}
+
+The \code{summary} method for \code{merMod} objects provides
+information about the model fit.  Here we consider the output of
+\code{summary(fm1)} in four steps.  The first few lines of output
+indicate that the model was fitted by REML as well as the value of the
+REML criterion (Equation~\ref{eq:REMLdeviance}) at convergence (which
+may also be extracted using \code{deviance(fm1)}).  The beginning of
+the summary also reproduces the model formula and the scaled Pearson
+residuals,
+<<summary1,echo=FALSE>>=
+ss <- summary(fm1)
+cc <- capture.output(print(ss))
+reRow <- grep("^Random effects", cc)
+cat(cc[1:(reRow - 2)], sep = "\n")
+@
+This information may also be obtained using standard accessor
+functions,
+<<summary1reproduced, eval=FALSE>>=
+formula(fm1)
+REMLcrit(fm1)
+quantile(residuals(fm1, "pearson", scaled = TRUE))
+@
+The second piece of \code{summary} output provides information
+regarding the random effects and residual variation,
+<<summary2, echo=FALSE>>=
+feRow <- grep("^Fixed effects", cc)
+cat(cc[reRow:(feRow - 2)], sep = "\n")
+@
+which can also be accessed using,
+<<summary2reproduced, eval=FALSE>>=
+print(vc <- VarCorr(fm1), comp = c("Variance", "Std.Dev."))
+nobs(fm1)
+ngrps(fm1)
+sigma(fm1)
+@
+The print method for \code{VarCorr} hides the internal structure of
+\code{VarCorr.merMod} objects. The internal structure of an object of
+this class is a list of matrices, one for each random effects term.
+The standard deviations and correlation matrices for each term are
+stored as attributes, \code{stddev} and \code{correlation},
+respectively, of the variance-covariance matrix, and the residual
+standard deviation is stored as attribute \code{sc}.  For programming
+use, these objects can be summarized differently using their
+\code{as.data.frame} method,
+<<VarCorr>>=
+as.data.frame(VarCorr(fm1))
+@
+which contains one row for each variance or covariance parameter. The
+\code{grp} column gives the grouping factor associated with this
+parameter. The \code{var1} and \code{var2} columns give the names of
+the variables associated with the parameter (\code{var2} is \code{<NA>}
+unless it is a covariance parameter). The \code{vcov} column gives the
+variances and covariances, and the \code{sdcor} column gives these
+numbers on the standard deviation and correlation scales.
+
+The next chunk of output gives the fixed effect estimates,
+<<summary3, echo=FALSE>>=
+corRow <- grep("^Correlation", cc)
+cat(cc[feRow:(corRow - 2)], sep = "\n")
+@
+Note that there are no $p$~values (see Section~\ref{sec:pvalues}).
+The fixed effect point estimates may be obtained separately via
+\code{fixef(fm1)}.
+Conditional modes of the random effects coefficients can be obtained
+with \code{ranef} (see section~\ref{sec:condVar} for information on
+the theory).  Finally, we have the correlations between the fixed
+effect estimates
+<<summary4, echo=FALSE>>=
+cat(cc[corRow:length(cc)], sep = "\n")
+@
+The full variance-covariance matrix of the fixed effects estimates can
+be obtained in the usual \proglang{R} way with the \code{vcov} method
+(Section~\ref{sec:vcov}).  Alternatively, \code{coef(summary(fm1))} will
+return the full fixed-effects parameter table as shown in the summary.
+
+\subsubsection{Diagnostic plots}
+\label{sec:diagnostics}
+
+\pkg{lme4} provides tools for generating most of the standard
+graphical diagnostic plots (with the exception of those incorporating
+influence measures, e.g., Cook's distance and leverage plots), in a
+way modeled on the diagnostic graphics of \pkg{nlme}
+\citep{R:Pinheiro+Bates:2000}.  In particular, the familiar
+\code{plot} method in base \proglang{R} for linear models (objects of
+class \code{lm}) can be used to create the standard fitted
+vs. residual plots,
+<<diagplot1,fig.keep="none">>=
+plot(fm1, type = c("p", "smooth"))
+@
+scale-location plots,
+<<diagplot2,fig.keep="none">>=
+plot(fm1, sqrt(abs(resid(.))) ~ fitted(.),
+     type = c("p", "smooth"))
+@
+and quantile-quantile plots, (from \pkg{lattice})
+<<diagplot3,fig.keep="none">>=
+qqmath(fm1, id = 0.05)
+@
+In contrast to \code{plot.lm}, these scale-location and Q-Q plots
+are based on raw rather than standardized residuals.
+
+In addition to these standard diagnostic plots, which
+examine the validity of various assumptions (linearity,
+homoscedasticity, normality) at the level of the residuals,
+one can also use the \code{dotplot} and \code{qqmath} methods
+for the conditional modes (i.e., \code{ranef.mer}
+objects generated by \code{ranef(fit)})
+to check for interesting patterns and normality in the conditional
+modes.  \pkg{lme4} does not provide influence diagnostics, but
+these (and other useful diagnostic procedures) are available
+in the dependent packages \pkg{HLMdiag} and \pkg{influence.ME}
+\citep{HLMdiag_pkg,influenceME_pkg}.
+
+Finally, \emph{posterior predictive simulation}
+\citep{gelman_data_2006} is a generally useful diagnostic tool,
+adapted from Bayesian methods, for exploring model fit. The user picks
+some summary statistic of interest.  They then compute the summary
+statistic for an ensemble of simulations (Section~\ref{sec:predict}),
+and see where the observed data falls within the simulated
+distribution; if the observed data is extreme, we might conclude that
+the model is a poor representation of reality.  For example, using the
+sleep study fit and choosing the interquartile range
+of the reaction times as the summary
+statistic:
+<<ppsim,results="hide">>=
+iqrvec <- sapply(simulate(fm1, 1000), IQR)
+obsval <- IQR(sleepstudy$Reaction)
+post.pred.p <- mean(obsval >= c(obsval, iqrvec))
+@
+The (one-tailed) posterior predictive $p$~value of \Sexpr{round(post.pred.p,2)}
+indicates that the model represents the data adequately, at least for
+this summary statistic.  In contrast to the full Bayesian case, the
+procedure described here does not allow for the uncertainty in the
+estimated parameters. However, it should be a reasonable approximation
+when the residual variation is large.
+%% \bmb{it should be possible to put together something with
+%% \code{arm::sim} to simulate beta values and \code{simulate} with
+%% \code{newparams}, but (a) this would require some testing and
+%% development (I don't think \code{newparams} can take a matrix) and
+%% (b) it doesn't account for uncertainty in theta)}
+
+\subsubsection{Sequential decomposition and model comparison}
+\label{sec:modComp}
+
+Objects of class \code{merMod} have an \code{anova} method which
+returns $F$~statistics corresponding to the sequential decomposition
+of the contributions of fixed-effects terms.  In order to illustrate
+this sequential ANOVA decomposition, we fit a model with orthogonal
+linear and quadratic \code{Days} terms,
+<<anovaQuadraticModel>>=
+fm4 <- lmer(Reaction ~ polyDays[ , 1] + polyDays[ , 2] +
+            (polyDays[ , 1] + polyDays[ , 2] | Subject),
+            within(sleepstudy, polyDays <- poly(Days, 2)))
+anova(fm4)
+@
+<<anovaSanityCheck, include=FALSE>>=
+(getME(fm4, "RX")[2, ] %*% getME(fm4, "fixef"))^2
+@
+The relative magnitudes of the two sums of squares indicate that the
+quadratic term explains much less variation than the linear term.
+Furthermore, the magnitudes of the two $F$~statistics strongly
+suggest significance of the linear term, but not the quadratic term.
+Notice that this is only an informal assessment of significance as
+there are no $p$~values associated with these $F$~statistics, an issue
+discussed in more detail in Section~\ref{sec:pvalues}.
+
+To understand how these quantities are computed, let $\bm R_i$ contain
+the rows of $\bm R_X$ (Equation~\ref{eq:blockCholeskyDecomp}) associated
+with the $i$th fixed-effects term.  Then the sum of squares for term
+$i$ is,
+\begin{equation}
+  \label{eq:SS}
+  SS_i = \widehat{\bm\beta}\trans\bm R_i\trans \bm R_i \widehat{\bm\beta}
+\end{equation}
+If $DF_i$ is the number of columns in $\bm R_i$, then the
+$F$~statistic for term $i$ is,
+\begin{equation}
+  \label{eq:Fstat}
+  F_i = \frac{SS_i}{\widehat{\sigma}^2 DF_i}
+\end{equation}
+
+For multiple arguments, the \code{anova} method returns model
+comparison statistics,
+<<anovaManyModels>>=
+anova(fm1, fm2, fm3)
+@
+<<anovaRes,echo=FALSE>>=
+fm3ML <- refitML(fm3)
+fm2ML <- refitML(fm2)
+fm1ML <- refitML(fm1)
+ddiff <- deviance(fm3ML) - deviance(fm2ML)
+dp <- pchisq(ddiff, 1, lower.tail = FALSE)
+ddiff2 <- deviance(fm2ML) - deviance(fm1ML)
+@
+The output shows $\chi^2$ statistics representing the difference in
+deviance between successive models, as well as $p$~values based on
+likelihood ratio test comparisons.  In this case, the sequential
+comparison shows that adding a linear effect of time uncorrelated with
+the intercept leads to an enormous and significant drop in deviance
+($\Delta\mbox{deviance} \approx \Sexpr{round(ddiff)}$, $p \approx
+\Sexpr{round(dp,10)}$), while the further addition of correlation
+between the slope and intercept leads to a trivial and non-significant
+change in deviance ($\Delta\mbox{deviance} \approx
+\Sexpr{round(ddiff2,2)}$).  For objects of class \code{lmerMod} the
+default behavior is to refit the models with ML if fitted with
+\code{REML = TRUE}, which is necessary in order to get sensible
+answers when comparing models that differ in their fixed effects; this
+can be controlled via the \code{refit} argument.
+
+\subsubsection{Computing $p$~values}
+\label{sec:pvalues}
+
+One of the more controversial design decisions of \pkg{lme4} has been
+to omit the output of $p$~values associated with sequential ANOVA
+decompositions of fixed effects.  The absence of analytical results for null
+distributions of parameter estimates in complex situations
+(e.g., unbalanced or partially crossed designs) is a long-standing
+problem in mixed-model inference.  While the null distributions (and
+the sampling distributions of non-null estimates) are asymptotically
+normal, these distributions are not $t$~distributed for finite size
+samples --- nor are the corresponding null distributions of
+differences in scaled deviances $F$~distributed.  Thus approximate methods
+for computing the approximate degrees of freedom for
+$t$~distributions, or the denominator degrees of freedom for
+$F$~statistics \citep{Satterthwaite_1946,kenward_small_1997}, are at
+best \emph{ad hoc} solutions.
+
+However, computing finite-size-corrected $p$~values is
+sometimes necessary.  Therefore, although the package does not provide
+them (except via parametric bootstrapping,
+Section~\ref{sec:pb}), we have provided a help page to guide users in
+finding appropriate methods:
+<<pvaluesHelp, eval=FALSE>>=
+help("pvalues")
+@
+This help page provides pointers to other packages that provide
+machinery for calculating $p$~values associated with \code{merMod}
+objects. It also suggests framing the inference problem as a
+likelihood ratio test (achieved by supplying multiple \code{merMod}
+objects to the \code{anova} method (Section~\ref{sec:modComp}), as
+well as alternatives to $p$~values such as confidence intervals
+(Section~\ref{sec:CI}).
+
+Previous versions of \pkg{lme4} provided the \code{mcmcsamp} function,
+which generated a Markov chain Monte Carlo sample from the posterior
+distribution of the parameters (assuming flat priors). Due to
+difficulty in constructing a version of \code{mcmcsamp} that was
+reliable even in cases where the estimated random effect variances
+were near zero, \code{mcmcsamp} has been withdrawn.
+
+\subsubsection{Computing confidence intervals}
+\label{sec:CI}
+
+As described above (Sections~\ref{sec:vcov}, \ref{sec:profile},
+\ref{sec:pb}), \pkg{lme4} provides confidence intervals (using
+\code{confint}) via Wald approximations (for fixed-effect parameters
+only), likelihood profiling, or parametric bootstrapping (the
+\code{boot.type} argument selects the bootstrap confidence interval type).
+<<compareCI,echo=FALSE,cache=TRUE,message=FALSE,warning=FALSE>>=
+ccw <- confint(fm1, method = "Wald")
+ccp <- confint(fm1, method = "profile", oldNames = FALSE)
+ccb <- confint(fm1, method = "boot")
+@
+<<CIqcomp,echo=FALSE,eval=TRUE>>=
+rtol <- function(x,y) {
+    abs((x - y) / ((x + y) / 2))
+}
+bw <- apply(ccb, 1, diff)
+pw <- apply(ccp, 1, diff)
+mdiffpct <- round(100 * max(rtol(bw, pw)))
+@
+<<CIplot,echo=FALSE,eval=FALSE>>=
+## obsolete
+## ,fig.cap="Comparison of confidence intervals",fig.scap="CI comparison"
+tf <- function(x, method) data.frame(method = method,
+               par = rownames(x),
+               setNames(as.data.frame(x), c("lwr", "upr")))
+cc.all <- do.call(rbind, mapply(tf, list(ccw, ccp, ccb),
+                               c("Wald", "profile", "boot"),
+                     SIMPLIFY = FALSE))
+ggplot(cc.all, aes(x = 1, ymin = lwr, ymax = upr, colour = method)) +
+    geom_linerange(position = position_dodge(width = 0.5)) +
+    facet_wrap( ~ par, scale = "free") +
+    theme(axis.text.x = element_blank()) +
+    labs(x = "")
+@
+As is typical for computationally intensive profile confidence
+intervals in R, the intervals can be computed either directly from
+fitted \code{merMod} objects (in which case profiling is done as an
+interim step), or from a previously computed likelihood profile (of
+class \code{thpr}, for ``theta profile'').  Parametric bootstrapping
+confidence intervals use a thin wrapper around the \code{bootMer}
+function that passes the results to \code{boot.ci} from the \pkg{boot}
+package \citep{boot_pkg,DavisonHinkley1997} for confidence interval calculation.
+
+In the running sleep study examples, the 95\% confidence intervals
+estimated by all three methods are quite similar.  The largest
+change is a \Sexpr{mdiffpct}\% difference in confidence
+interval widths between profile and parametric bootstrap methods for
+the correlation between the intercept and slope random effects
+(\{\Sexpr{round(ccb[2,1],2)},\Sexpr{round(ccb[2,2],2)}\} vs.
+\{\Sexpr{round(ccp[2,1],2)},\Sexpr{round(ccp[2,2],2)}\}).
+%% \bmb{Mention that in our experience the profile CIs are
+%% reasonably reliable for large and/or well-behaved data sets?
+%% Is that too vague?  Disclaimer that a simulation study would
+%% be required to know for sure?}
+
+\subsubsection{General profile zeta and related plots}
+\label{sec:profzeta}
+
+\pkg{lme4} provides several functions (built on \pkg{lattice}
+graphics) for plotting the profile zeta functions
+(Section~\ref{sec:profile}) and other related quantities.
+
+\begin{itemize}
+\item The \emph{profile zeta} plot
+  (Figure~\ref{fig:profile_zeta_plot}; \code{xyplot}) is simply a plot
+  of the profile zeta function for each model parameter; linearity of
+  this plot for a given parameter implies that the likelihood profile
+  is quadratic (and thus that Wald approximations would be reasonably
+  accurate).
+\item The \emph{profile density plot}
+  (Figure~\ref{fig:profile_density_plot}; \code{densityplot}) displays
+  an approximation of the probability density function of the sampling
+  distribution for each parameter.  These densities are derived by
+  setting the cumulative distribution function (c.d.f) to be
+  $\Phi(\zeta)$ where $\Phi$ is the c.d.f.{} of the standard normal
+  distribution.  This is not quite the same as evaluating the
+  distribution of the estimator of the parameter, which for mixed
+  models can be very difficult, but it gives a reasonable
+  approximation.  If the profile zeta plot is linear, then the profile
+  density plot will be Gaussian.
+\item The \emph{profile pairs plot}
+  (Figure~\ref{fig:profile_pairs_plot}; \code{splom}) gives an
+  approximation of the two-dimensional profiles of pairs of
+  parameters, interpolated from the univariate profiles as described
+  in \citet[Chapter 6]{bateswatts88:_nonlin}.  The profile pairs plot
+  shows two-dimensional 50\%, 80\%, 90\%, 95\% and 99\% marginal
+  confidence regions based on the likelihood ratio, as well as the
+  \emph{profile traces}, which indicate the conditional estimates of
+  each parameter for fixed values of the other parameter.  While
+  panels above the diagonal show profiles with respect to the original
+  parameters (with random effects parameters on the standard
+  deviation\slash{}correlation scale, as for all profile plots), the
+  panels below the diagonal show plots on the $(\zeta_i,\zeta_j)$
+  scale.  The below-diagonal panels allow us to see distortions from
+  an elliptical shape due to nonlinearity of the traces, separately
+  from the one-dimensional distortions caused by a poor choice of
+  scale for the parameter.  The $\zeta$ scales provide, in some sense,
+  the best possible set of single-parameter transformations for
+  assessing the contours.  On the $\zeta$ scales the extent of a
+  contour on the horizontal axis is exactly the same as the extent on
+  the vertical axis and both are centered about zero.
+\end{itemize}
+<<profile_calc,echo=FALSE,cache=TRUE>>=
+pf <- profile(fm1)
+@
+<<profile_zeta_plot,fig.cap="Profile zeta plot: \\code{xyplot(prof.obj)}",fig.scap="Profile zeta plot",echo=FALSE,fig.align='center',fig.pos='tb'>>=
+xyplot(pf)
+@
+<<profile_density_plot,fig.cap="Profile density plot: \\code{densityplot(prof.obj)}",echo=FALSE,fig.align='center',fig.pos='tb'>>=
+densityplot(pf)
+@
+<<profile_pairs_plot,fig.cap="Profile pairs plot: \\code{splom(prof.obj)}",echo=FALSE,fig.height=8,fig.width=8,fig.align='center',fig.pos='htb',out.height='5.5in'>>=
+splom(pf)
+@
+
+For users who want to build their own graphical displays of the
+profile, there is an \code{as.data.frame} method that converts profile
+(\code{thpr}) objects to a more convenient format.
+
+\subsubsection{Computing fitted and predicted values; simulating}
+\label{sec:predict}
+
+Because mixed models involve random coefficients, one must always
+clarify whether predictions should be based on the marginal
+distribution of the response variable or on the distribution that is
+conditional on the modes of the random effects
+(Equation~\ref{eq:distYgivenU}).  The \code{fitted} method retrieves fitted
+values that are conditional on all of the modes of the random effects;
+the \code{predict} method returns the same values by default, but also
+allows for predictions to be made conditional on different sets of
+random effects.  For example, if the \code{re.form} argument is set to
+\code{NULL} (the default), then the predictions are conditional on all
+random effects in the model; if \code{re.form} is \verb+~0+ or
+\code{NA}, then the predictions are made at the population level (all
+random effect values set to zero).  In models with multiple random
+effects, the user can give \code{re.form} as a formula that specifies
+which random effects are conditioned on.
+
+\pkg{lme4} also provides a \code{simulate} method, which allows
+similar flexibility in conditioning on random effects; in addition it
+allows the user to choose (via the \code{use.u} argument) between
+conditioning on the fitted conditional modes or choosing a new set of
+simulated conditional modes (zero-mean Normal deviates chosen
+according to the estimated random effects variance-covariance
+matrices).  Finally, the \code{simulate} method has a method for
+\code{formula} objects, which allows for \emph{de novo} simulation in
+the absence of a fitted model.  In this case, the user must specify
+the random effects ($\bm\theta$), fixed effects ($\bm\beta$), and
+residual standard deviation ($\sigma$) parameters via the
+\code{newparams} argument.  The standard simulation method (based on a
+\code{merMod} object) is the basis of parametric bootstrapping
+(Section~\ref{sec:pb}) and posterior predictive simulation
+(Section~\ref{sec:diagnostics}); \emph{de novo} simulation based on a
+formula provides a flexible framework for power analysis.
+
+\section{Conclusion}
+
+Mixed models are an extremely useful but computationally intensive
+approach. Computational limitations are especially important because
+mixed models are commonly applied to moderately large data sets
+($10^4$--$10^6$ observations).  By developing an efficient, general,
+and (now) well-documented platform for fitted mixed models in
+\proglang{R}, we hope to provide both a practical tool for end users
+interested in analyzing data and a reusable, modular framework for
+downstream developers interested in extending the class of models that
+can be easily and efficiently analyzed in \proglang{R}.
+
+%% Results of some quick Google scholar searches:
+%% "mixed models" +
+%%  stata: 6130
+%%  "PROC MIXED": 12200
+%%  CRAN: 4020
+%%  lme4: 5110
+%%  "nlme": 2960
+%%  SAS: 49500
+%%  NLMIXED: 1960
+%%  GLIMMIX: 4920
+%%  winbugs: 2250
+%%  gllamm: 1140
+
+We have learned much about linear mixed models in the process of
+developing \pkg{lme4}, both from our own attempts to develop robust
+and reliable procedures and from the broad community of \pkg{lme4}
+users; we have attempted to describe many of these lessons here.  In
+moving forward, our main priorities are (1) to maintain the reference
+implementation of \pkg{lme4} on CRAN, developing relatively few new
+features; (2) to improve the flexibility, efficiency and scalability
+of mixed-model analysis across multiple compatible implementations,
+including both the \pkg{MixedModels} package for \proglang{Julia} and
+the experimental \code{flexLambda} branch of \pkg{lme4}.
+
+\section*{Acknowledgements}
+
+Rune Haubo Christensen, Henrik Singmann, Fabian Scheipl,
+Vincent Dorie, and Bin Dai contributed ideas
+and code to the current version of \pkg{lme4}; the
+large community of \pkg{lme4} users has exercised the software,
+discovered bugs, and made many useful suggestions.
+S{\o}ren H{\o}jsgaard participated in useful discussions
+and Xi Xia  and Christian Zingg exercised the code
+and reported problems.
+We would like to thank the Banff International Research Station
+for hosting a working group on \pkg{lme4}, and
+an NSERC Discovery grant and NSERC postdoctoral fellowship for funding.
+
+\bibliography{lmer}
+
+\appendix
+
+\section{Appendix: modularization examples}
+\label{sec:modularExamples}
+
+\subsection{Homogeneous covariance among random effects terms}
+\label{sec:homoLmer}
+
+Consider the following mixed-model formula,
+<<modularSimulationFormula>>=
+form <- respVar ~ 1 + (explVar1 | groupFac1) + (explVar2 | groupFac2)
+@
+in which we have a fixed intercept and two random effects terms, each
+with a random slope and intercept.  The \code{lmer}  function would
+fit this formula to data by estimating two $2 \times 2$ covariance
+matrices---one for each random effects term.  It is not possible to
+use the current version of
+\code{lmer} to fit a model in which both terms share the same
+$2 \times 2$ covariance matrix.  We illustrate the use of the modular
+functions in \pkg{lme4} to fit such a model.
+
+We simulate data from this homogeneous covariance model using a
+balanced design that crosses both grouping factors.  We first set the
+seed and number of groups per grouping factor,
+<<modularSimulationInit>>=
+set.seed(1)
+nGrps <- 50
+@
+We next simulate two explanatory variables,
+<<modularSimulationExpl>>=
+explVar <- data.frame(explVar1 = rnorm(nGrps^2),
+                      explVar2 = rnorm(nGrps^2))
+@
+two grouping factors,
+<<modularSimulationGroup>>=
+groupFac <- expand.grid(groupFac1 = as.factor(1:nGrps),
+                        groupFac2 = as.factor(1:nGrps))
+@
+random intercepts and slopes that are negatively correlated,
+<<modularSimulationInterSlope>>=
+randomIntercept <- expand.grid(randomIntercept1 = rnorm(nGrps),
+                               randomIntercept2 = rnorm(nGrps))
+rnmdSlope <- expand.grid(randomSlope1 = rnorm(nGrps),
+                         randomSlope2 = rnorm(nGrps)) - randomIntercept
+@
+and finally a linear predictor, residual error, and response variable,
+<<modularSimulationPredictor>>=
+linearPredictor <- apply(randomIntercept + rnmdSlope * explVar, 1, sum)
+residError <- rnorm(nGrps^2)
+respVar <- residError + linearPredictor
+@
+We then combine these data into a single object,
+<<modularSimulationDataFrame>>=
+dat <- data.frame(respVar, explVar, groupFac)
+head(dat)
+@
+
+<<homoLmer, echo=FALSE>>=
+homoLmer <- function(formula, data, use.mkMerMod = FALSE) {
+    mc <- match.call()
+
+                                        # parse the formula and make
+                                        # two copies
+    lfHetero <- lfHomo <- lFormula(formula = formula, data = data, REML = FALSE)
+                                        # get pRE (number of random
+                                        # effects coefficients per
+                                        # term)...
+    if(length(pRE <- unique(sapply(cnms <- lfHomo$reTrms$cnms, length))) > 1L) {
+        stop("each random effects term must have the same number\n",
+             "of model matrix columns for a homogeneous structure")
+    }
+                                        # and p (number of fixed
+                                        # effects coefficients)
+    p <- ncol(lfHomo$X)
+    nth <- choose(pRE + 1, 2)
+    n_trms <- length(cnms)
+                                        # modify one copy (lfHomo) of the
+                                        # parsed formula
+    lfHomo$reTrms <- within(lfHomo$reTrms, {
+                                        # take only the first three
+                                        # (of six) elements of the
+                                        # covariance parameters,
+                                        # theta, because these will be
+                                        # repeated (to get common
+                                        # covariance structure across
+                                        # random effects terms)
+        theta <- theta[1:nth]
+                                        # match the lower bounds to
+                                        # the new theta
+        lower <- lower[1:nth]
+                                        # adjust the mapping from the
+                                        # new theta to the elements of
+                                        # the relative covariance
+                                        # factor, Lambda
+        Lind <- rep(1:nth, length = length(lfHomo$reTrms$Lambdat@x))
+    })
+
+                                        # fit the modified model
+    devf <- do.call(mkLmerDevfun, lfHomo)
+    opt <- optimizeLmer(devf)
+
+                                        # how to process the output?
+    if(!use.mkMerMod) {
+        return(list(lf = lfHomo, devf = devf, opt = opt))
+    } else {
+
+                                        # distinguish between theta
+                                        # with only the unique
+                                        # elements (thetaUnique) and
+                                        # theta with the unique
+                                        # elements repeated over each
+                                        # term (thetaExpand)
+        thetaUnique <- opt$par
+        thetaExpand <- rep(opt$par, n_trms)
+                                        # construct deviance a
+                                        # function for the heterogeneous
+                                        # model...
+        devfHetero <- do.call(mkLmerDevfun, lfHetero)
+                                        # ...and install the expanded
+                                        # covariance parameters from
+                                        # the optimized homogeneous
+                                        # model, into the opt object
+                                        # and the environment of the
+                                        # heterogeneous model deviance
+                                        # function...
+        devfHetero(opt$par <- thetaExpand)
+                                        # ...and creating the final
+                                        # merMod object with identical
+                                        # random effects parameters
+                                        # for both random effects
+                                        # terms
+        mod <- mkMerMod(environment(devfHetero), opt, lfHetero$reTrms, lfHetero$fr)
+
+                                        # extend the glmerMod class
+                                        # and return
+        modList <- setNames(lapply(slotNames(mod), slot, object = mod), slotNames(mod))
+        makeFakeCall <- function() return(match.call()) # hack to keep
+                                                    # "new" from
+                                                    # trying to
+                                                    # evaluate the
+                                                    # call...
+        modList$call <- makeFakeCall()
+        modCallList <- c(list(Class = "homoLmerMod"),
+                         list(thetaUnique = thetaUnique),
+                         modList)
+        modOut <- do.call("new", modCallList)
+                                        # ... complete the "call" hack
+                                        # by putting the real matched
+                                        # call back before returning
+        modOut@call <- mc
+        return(modOut)
+    }
+}
+@
+
+To fit \code{form} to \code{dat} using a homogeneous covariance model,
+we construct the \code{homoLmer} function, which we describe in
+sections.  To simplify the problem, we only allow the specification of
+three arguments: \code{formula}, \code{data}, and \code{use.mkMerMod}.
+This last argument specifies how to process the fitted model, which we
+discuss below.  All other relevant parameters are set to \code{lmer}
+defaults, unless otherwise noted below.  Here is the argument list for
+\code{homoLmer},
+<<homoLmerArguments, eval=FALSE>>=
+homoLmer <- function(formula, data, use.mkMerMod = FALSE) {}
+@
+After saving the \code{call}, the next step is to parse the formula
+and data using the \code{lFormula} modular function (setting
+\code{REML} to \code{FALSE} for simplicity),
+<<homoLmerMatchCallAndParseFormula, eval=FALSE>>=
+mc <- match.call()
+lfHetero <- lfHomo <- lFormula(formula = formula, data = data, REML = FALSE)
+@
+We then check to make sure that this \code{formula} is a candidate for
+a homogeneous covariance model.  In particular, a homogeneous
+covariance model only makes sense if each random effects term has the
+same number of random effects coefficients,
+<<homoLmerCheck, eval=FALSE>>=
+if(length(pRE <- unique(sapply(cnms <- lfHomo$reTrms$cnms, length))) > 1L) {
+    stop("each random effects term must have the same number\n",
+         "of model matrix columns for a homogeneous structure")
+}
+@
+We save the number of fixed effects coefficients, \code{p}, number of
+covariance parameters per term, \code{nth}, and number random effects
+terms, \code{n_trms},
+<<homoLmerDimensions, eval=FALSE>>=
+p <- ncol(lfHomo$X)
+nth <- choose(pRE + 1, 2)
+n_trms <- length(cnms)
+@ % $
+We now modify the parsed random effects terms to have homogeneous
+covariance structure, which requires three lines.  First, use only the
+first \code{nth} elements of the covariance parameters, \code{theta},
+as these will be repeated to generate common covariance structure
+across random effects terms.  Second, match the lower bounds of the
+covariance parameters to the new \code{theta}.  Third, adjust the
+mapping from the new \code{theta} to the nonzero elements of the
+transposed relative covariance factor, \code{Lambdat}.
+<<homoLmerAdjust, eval=FALSE>>=
+lfHomo$reTrms <- within(lfHomo$reTrms, {
+    theta <- theta[1:nth]
+    lower <- lower[1:nth]
+    Lind <- rep(1:nth, length = length(lfHomo$reTrms$Lambdat@x))
+})
+@
+Then we construct and minimize a deviance function for the homogeneous
+model,
+<<homoLmerFitModifiedModel, eval=FALSE>>=
+devf <- do.call(mkLmerDevfun, lfHomo)
+opt <- optimizeLmer(devf)
+@
+The object \code{opt} contains the optimized values of the homogeneous
+covariance parameters.  However, in order to interpret and make
+inferences about this model, we need to do more work.  We highlight
+two general approaches to doing this, which in this example are
+selected with the \code{use.mkMerMod} logical argument.  If
+\code{use.mkMerMod} is set to \code{FALSE}, then the parsed data and
+formula object, \code{lfHomo}, deviance function, \code{devf}, and
+optimization results, \code{opt}, are returned,
+<<homoLmerReturnRaw, eval=FALSE>>=
+if(!use.mkMerMod) {
+    return(list(lf = lfHomo, devf = devf, opt = opt))
+}
+@
+This option means that the convenience functions of the \code{lme4}
+output module (Section~\ref{sec:mkMerMod}) are not available because the resulting
+object is not a \code{merMod} object.  However, constructing a
+\code{merMod} object that will be treated appropriately by the
+convenience functions of the output module is rather difficult, and
+sometimes impossible, and should therefore always be done with
+caution.  In particular, \code{mkMerMod} should be used to work with
+specific functions from the output module; users should never
+assume that because some aspects of the output module give appropriate
+results with a \code{merMod} object constructed from a modular fit,
+all aspects will work.  It will sometimes be
+necessary, as we next illustrate, to extend the \code{merMod} class
+and rewrite some methods from the output module that are specialized
+for this new class.
+
+Next we update the unmodified model by capturing the modified model
+estimates of the covariance parameters,
+<<homoLmerReExpandTheta, eval=FALSE>>=
+th <- rep(opt$par, n_trms)
+@
+constructing a deviance function for the unmodified model,
+<<unmodDevfun, eval=FALSE>>=
+devf0 <- do.call(mkLmerDevfun, lfHetero)
+@
+and installing the parameters in the environment of the unmodified
+deviance function,
+<<installDevfun, eval=FALSE>>=
+devf0(opt$par <- th)
+@
+
+Finally, we need to extend the \code{merMod} class,
+<<extendMerMod>>=
+setClass("homoLmerMod", representation(thetaUnique = "numeric"),
+         contains = "lmerMod")
+@
+and redefine some methods for this extension,
+<<redefineOutputModuleMethods>>=
+logLik.homoLmerMod <- function(object, ...) {
+    ll <- lme4:::logLik.merMod(object, ...)
+    attr(ll, "df") <- length(object@beta) +
+        length(object@thetaUnique) +
+            object@devcomp[["dims"]][["useSc"]]
+    return(ll)
+}
+refitML.homoLmerMod <- function(object, newresp, ...) {
+    if(!isREML(object) && missing(newresp)) return(object)
+    stop("can't refit homoLmerMod objects yet")
+}
+@
+<<homoLmerFit>>=
+mod <- homoLmer(form, dat, use.mkMerMod = TRUE)
+summary(mod)
+@
+
+\subsection{Homogeneous variance over all random effects}
+\label{sec:homoVar}
+
+We modify the \code{sleepstudy} example,
+<<homoParse>>=
+parsedFormula <- lFormula(formula = Reaction ~ Days + (Days | Subject),
+                          data = sleepstudy)
+@
+such that the random slope and intercept are uncorrelated and have
+identical variance (because the slope and intercept have different
+units, this example is not entirely sensible --- it is offered for
+technical illustration only).  The \code{reTrms} component of
+\code{parsedFormula} contains the relevant information, and can be
+modified using the \code{within} function by (1) altering the mapping
+(\code{Lind}) from \code{theta} to the non-zero elements of
+\code{Lambda}, and force a diagonal \code{Lambda},
+<<homoWithin>>=
+parsedFormula$reTrms <- within(parsedFormula$reTrms, {
+    q <- nrow(Lambdat)
+    Lind <- rep(1, q)
+    Lambdat <- sparseMatrix(1:q, 1:q, x = Lind)
+    theta <- 1
+})
+@
+We fit this modified model using the modularised functions,
+<<homoFitting>>=
+devianceFunction <- do.call(mkLmerDevfun, parsedFormula)
+optimizerOutput <- optimizeLmer(devianceFunction)
+@
+Because \code{lme4} is not designed for post-processing of such
+models, \code{mkMerMod} cannot be expected to give sensible results.
+To illustrate this point, we use it anyway and point out where it
+makes mistakes,
+<<homoMkMerMod>>=
+mkMerMod(   rho = environment(devianceFunction),
+            opt = optimizerOutput,
+         reTrms = parsedFormula$reTrms,
+             fr = parsedFormula$fr)
+@
+Note that \code{mkMerMod} is attempting to estimate a correlation
+between the slope and intercept, which makes no sense within the
+current model.  When using modular functions, the user is responsible
+for producing interpretable output.  For example, to find the residual
+and random-effects standard deviation, we may use,
+<<homoModifiedProcessing>>=
+with(environment(devianceFunction), {
+    n <- length(resp$y)
+    p <- length(pp$beta0)
+    pwrss <- resp$wrss() + pp$sqrL(1)
+    sig <- sqrt(pwrss/(n-p))
+    c(Residual = sig, Subject = sig*pp$theta)
+})
+@
+Note that the random effects variance requires no matrix algebra in
+this case because the covariance matrix of the random effects is
+proportional to the identity matrix
+
+\subsection{Additive models}
+\label{sec:additive}
+
+It is possible to interpret additive models as a particular class of
+mixed models \citep{gamm4}.  The main benefit of this approach is
+that it bypasses the need to select a smoothness parameter using
+cross-validation or generalized cross-validation.  However, it is
+inconvenient to specify additive models using the \pkg{lme4} formula
+interface.  The \pkg{gamm4} package wraps the modularized functions of
+\pkg{lme4} within a more convenient interface \citep{gamm4}.  In
+particular, the strategy involves the following steps,
+\begin{enumerate}
+\item Convert a \pkg{gamm4} formula into an \pkg{lme4} formula that
+  approximates the intended model.
+\item Parse this formula using \code{lFormula}.
+\item Modify the resulting transposed random effects model matrix, $\bm
+  Z\trans$, so that the intended additive model results.
+\item Fit the resulting model using the remaining modularized
+  functions (Table~\ref{tab:modular}).
+\end{enumerate}
+Here we illustrate this general strategy using a simple simulated data
+set,
+<<simulateSplineData,message=FALSE>>=
+library("splines")
+set.seed(1)
+n <- 100
+pSimulation <- 3
+pStatistical <- 8
+x <- rnorm(n)
+Bsimulation <- ns(x, pSimulation)
+Bstatistical <- ns(x, pStatistical)
+beta <- rnorm(pSimulation)
+y <- as.numeric(Bsimulation %*% beta + rnorm(n, sd = 0.3))
+@
+where \code{pSimulation} is the number of columns in the simulation
+model matrix and \code{pStatistical} is the number of columns in the
+statistical model matrix.
+
+We plot the resulting data along with the predictions from the
+generating model,
+<<splineExampleDataPlot, fig.width=4, fig.height=3,fig.align="center">>=
+par(mar = c(4, 4, 1, 1), las = 1, bty = "l")
+plot(x, y, las = 1)
+lines(x[order(x)], (Bsimulation %*% beta)[order(x)])
+@
+We now set up an approximate \pkg{lme4} model formula, and parse it
+using \code{lFormula},
+<<splineExampleApproximateFormula>>=
+pseudoGroups <- as.factor(rep(1:pStatistical, length = n))
+parsedFormula <- lFormula(y ~ x + (1 | pseudoGroups))
+@
+We now insert a spline basis into the \code{parsedFormula} object,
+<<splineExampleModifyZt>>=
+parsedFormula$reTrms <- within(parsedFormula$reTrms, {
+    Bt <- t(as.matrix(Bstatistical))[]
+    cnms$pseudoGroups <- "spline"
+    Zt <- as(Bt, class(Zt))
+})
+@
+Finally we continue with the remaining modular steps,
+<<splineExampleRemainingModularSteps>>=
+devianceFunction <- do.call(mkLmerDevfun, parsedFormula)
+optimizerOutput <- optimizeLmer(devianceFunction)
+mSpline <- mkMerMod(   rho = environment(devianceFunction),
+                       opt = optimizerOutput,
+                    reTrms = parsedFormula$reTrms,
+                        fr = parsedFormula$fr)
+mSpline
+@
+Computing the fitted values of this additive model requires some
+custom code, and illustrates the general principle that methods for
+\code{merMod} objects constructed from modular fits should only be
+used if the user knows what she is doing,
+<<splineExampleFittedModelPlot, fig.width=4, fig.height=3, fig.align="center">>=
+xNew <- seq(min(x), max(x), length = 100)
+newBstatistical <- predict(Bstatistical, xNew)
+yHat <-   cbind(1, xNew) %*% getME(mSpline, "fixef") +
+        newBstatistical %*% getME(mSpline, "u")
+par(mar = c(4, 4, 1, 1), las = 1, bty = "l")
+plot(x, y)
+lines(xNew, yHat)
+lines(x[order(x)], (Bsimulation %*% beta)[order(x)],lty = 2)
+legend("topright", bty = "n", c("fitted", "generating"), lty = 1:2,col = 1)
+@
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmer.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmer.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/profiling.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/profiling.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/profiling.txt	(revision 2476)
@@ -0,0 +1,83 @@
+October 26, 2009
+			Profiling the deviance
+
+In looking at profiles of the deviance with respect to the parameters
+of a linear mixed model I think that the techniques is more effective
+than MCMC and that it has better theoretical justification than
+approximating degrees of freedom for t-tests and t-based intervals on
+the fixed effects.
+
+For the fixed-effects parameters the profiling is straightforward
+because they are coefficients in the linear predictor.  The
+interesting thing about the examples is that the change in the
+deviance (the likelihood ratio test statistic) does not follow exactly
+a chisquare-1 pattern.  The profile z (signed square root of the
+likelihood ratio test statistic) indicates wider intervals than would
+be determined from the standard error.  In other words, the
+distribution appears to be overdispersed relative to the normal
+distribution, in the manner in which a T statistic is overdispersed.
+Another characteristics of the profile z for the fixed-effects is that
+the slope of the profile z at the parameter estimate is shallower than
+would be indicated by the standard error, especially the standard
+error calculated from the ML results.  I attribute this phenomenon to
+an anti-conservative calculation of the standard error.  It is being
+calculated conditional on the estimated value of the theta parameters.
+If instead you re-fit the model you end up with intervals on the
+fixed-effects parameters that more properly reflects the variability
+in all the parameters in the model.
+
+I think this will be very effective.  The current profile method for
+class lmerenv profiles the fixed-effects parameters and I have a
+function for plotting these profiles.  They can also be used to create
+confidence intervals and to create the p-values that everyone finds so
+important (although only for hypotheses related to a single
+coefficient).
+
+I have been working on profiling the other parameters in the model as
+well and this is where things get tricky.  The parameters in the
+optimization are the theta parameters, which I don't think are
+directly of interest to most users.  I can switch to theta and sigma
+at the risk of some redundancy (once you have done the work needed to
+calculate the profiled deviance for theta and sigma you could just as
+easily profile out sigma).  The (unexported) R function devfun in
+lme4 takes a fitted model and returns a function with attributes that
+evaluates the profiled deviance for the composite parameter (theta,
+log(sigma)).  However, I don't think even that is enough because it
+does not give profiles of the variances and covariances of the random
+effects directly.  I think I will be better off writing a function
+that takes the variances, covariances (or, better, correlations) and
+log(sigma) to evaluate the profiled deviance.
+
+The reason that I use log(sigma) but not log of the variances of the
+random effects is because sigma cannot be zero except for constructed
+data whereas the estimates of the variance of the random effects can
+reasonably be zero.
+
+I need to get out to the bus stop soon so this next part might be a
+little too terse.  It is straightforward to take the theta values and
+the sigma value and produce variances and covariances.  That is done
+in VarCorr.  The part that still has me pondering is how to go the
+other way reasonably.  That is, how do I take the variances and
+covariances of the random effects plus sigma and get the theta
+parameters.
+
+Anyway, that is what I am currently contemplating.
+
+October 27, 2009
+
+I did some more work on profiling the variance-covariance parameters
+in a linear mixed-effects model and now have a version I can check
+in.  The current code is still pretty rough but it should be enough to
+start.  There is a lot more that can be done more artistically about
+choosing step sizes and adapting the step sizes according to the
+current results but this should be enough to get going.
+
+I have been thinking about the kind of structure that should be
+returned by the profile method.  For profile.nls the structure is a
+list with elements corresponding to the parameters that were
+profiled.  Each element is a data frame containing a vector called tau
+and a matrix of parameter values.  I'm going to stay with that for the
+time being although I will change the name from tau to zeta (it is the
+nonlinear analogue of a standard normal, not a t statistic).
+Eventually this object should be reconciled with the profile objects
+in the stats4 package.  It makes sense for these to be an S4 class.

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/profiling.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/Theory.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/Theory.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/Theory.R	(revision 2476)
@@ -0,0 +1,9 @@
+### R code from vignette source 'Theory.Rnw'
+
+###################################################
+### code chunk number 1: preliminaries
+###################################################
+options(width=65,digits=5)
+#library(lme4)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/index.html	(revision 2476)
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'lme4'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/lme4/doc/lmerperf.html">lme4::lmerperf</a></td>
+<td></td><td valign="top">lmer Performance Tips</td>
+<td valign="top"><a href="../../../library/lme4/doc/lmerperf.html">HTML</a></td>
+<td valign="top"><a href="../../../library/lme4/doc/lmerperf.Rmd">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/lme4/doc/lmerperf.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/lme4/doc/lmer.pdf">lme4::lmer</a></td>
+<td></td><td valign="top">Fitting Linear Mixed-Effects Models using lme4</td>
+<td valign="top"><a href="../../../library/lme4/doc/lmer.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/lme4/doc/lmer.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/lme4/doc/lmer.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/lme4/doc/PLSvGLS.pdf">lme4::PLSvGLS</a></td>
+<td></td><td valign="top">PLS vs GLS for LMMs</td>
+<td valign="top"><a href="../../../library/lme4/doc/PLSvGLS.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/lme4/doc/PLSvGLS.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/lme4/doc/PLSvGLS.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/lme4/doc/Theory.pdf">lme4::Theory</a></td>
+<td></td><td valign="top">Computational Methods</td>
+<td valign="top"><a href="../../../library/lme4/doc/Theory.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/lme4/doc/Theory.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/lme4/doc/Theory.R">R code</a></td></tr>
+</table>
+<h2>Other files in the <span class="samp">doc</span> directory</h2>
+<table width="100%">
+<col style="width: 24%;" />
+<col style="width: 50%;" />
+<col style="width: 24%;" />
+<tr><td></td><td><span class="samp"><a href="Doxyfile">Doxyfile</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="lme4-extras.pdf">lme4-extras.pdf</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="profiling.txt">profiling.txt</a></span></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmerperf.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmerperf.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmerperf.R	(revision 2476)
@@ -0,0 +1,33 @@
+## ----opts, echo = FALSE, message = FALSE---------------------------------
+library("knitr")
+knitr::opts_chunk$set(
+  eval = FALSE
+)
+
+## ----loadpkg,message=FALSE-----------------------------------------------
+#  library("lme4")
+
+## ----noderivs,eval=FALSE-------------------------------------------------
+#  lmer(y ~ service * dept + (1|s) + (1|d), InstEval,
+#       control = lmerControl(calc.derivs = FALSE))
+
+## ----nlminbfit,eval=FALSE------------------------------------------------
+#  library("optimx")
+#  lmer(y ~ service * dept + (1|s) + (1|d), InstEval,
+#       control = lmerControl(optimizer = "optimx", calc.derivs = FALSE,
+#       optCtrl = list(method = "nlminb", starttests = FALSE, kkt = FALSE)))
+
+## ----nlopt,eval=FALSE----------------------------------------------------
+#  nlopt <- function(par, fn, lower, upper, control) {
+#      .nloptr <<- res <- nloptr(par, fn, lb = lower, ub = upper,
+#          opts = list(algorithm = "NLOPT_LN_BOBYQA", print_level = 1,
+#          maxeval = 1000, xtol_abs = 1e-6, ftol_abs = 1e-6))
+#      list(par = res$solution,
+#           fval = res$objective,
+#           conv = if (res$status > 0) 0 else res$status,
+#           message = res$message
+#      )
+#  }
+#  lmer(y ~ service * dept + (1|s) + (1|d), InstEval,
+#      control = lmerControl(optimizer = "nloptwrap", calc.derivs = FALSE))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lme4-extras.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lme4-extras.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/Theory.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/Theory.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/Theory.Rnw	(revision 2476)
@@ -0,0 +1,1260 @@
+\documentclass[12pt]{article}
+\usepackage{Sweave,amsmath,amsfonts,bm}
+\usepackage[authoryear,round]{natbib}
+\bibliographystyle{plainnat}
+\DefineVerbatimEnvironment{Sinput}{Verbatim}
+{formatcom={\vspace{-1ex}},fontshape=sl,
+  fontfamily=courier,fontseries=b, fontsize=\footnotesize}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}
+{formatcom={\vspace{-1ex}},fontfamily=courier,fontseries=b,%
+  fontsize=\footnotesize}
+%%\VignetteIndexEntry{Computational Methods}
+%%\VignetteDepends{lme4}
+\title{Computational methods for mixed models}
+\author{Douglas Bates\\Department of Statistics\\%
+  University of Wisconsin -- Madison}
+\begin{document}
+\SweaveOpts{engine=R,eps=FALSE,pdf=TRUE,strip.white=true,keep.source=TRUE}
+\SweaveOpts{include=FALSE}
+\setkeys{Gin}{width=\textwidth}
+\newcommand{\code}[1]{\texttt{\small{#1}}}
+\newcommand{\package}[1]{\textsf{\small{#1}}}
+\newcommand{\trans}{\ensuremath{^\prime}}
+\renewcommand{\vec}{\operatorname{vec}}
+\newcommand{\diag}{\operatorname{diag}}
+\newcommand{\bc}[1]{\ensuremath{\bm{\mathcal{#1}}}}
+<<preliminaries,echo=FALSE,results=hide>>=
+options(width=65,digits=5)
+#library(lme4)
+@
+\maketitle
+\begin{abstract}
+  The \package{lme4} package provides R functions to fit and analyze
+  several different types of mixed-effects models, including linear
+  mixed models, generalized linear mixed models and nonlinear mixed
+  models.  In this vignette we describe the formulation of these
+  models and the computational approach used to evaluate or
+  approximate the log-likelihood of a model/data/parameter value
+  combination.
+\end{abstract}
+
+\section{Introduction}
+\label{sec:intro}
+
+The \package{lme4} package provides \code{R} functions to fit and analyze
+linear mixed models, generalized linear mixed models and nonlinear
+mixed models.  These models are called \emph{mixed-effects models} or,
+more simply, \emph{mixed models} because they incorporate both
+\emph{fixed-effects} parameters, which apply to an entire population
+or to certain well-defined and repeatable subsets of a population, and
+\emph{random effects}, which apply to the particular experimental
+units or observational units in the study.  Such models are also
+called \emph{multilevel} models because the random effects represent
+levels of variation in addition to the per-observation noise term that
+is incorporated in common statistical models such as linear
+regression models, generalized linear models and nonlinear regression
+models.
+
+We begin by describing common properties of these mixed models and the
+general computational approach used in the \package{lme4} package. The
+estimates of the parameters in a mixed model are determined as the
+values that optimize an objective function --- either the likelihood
+of the parameters given the observed data, for maximum likelihood
+(ML) estimates, or a related objective function called the REML
+criterion.  Because this objective function must be evaluated at many
+different values of the model parameters during the optimization
+process, we focus on the evaluation of the objective function and a
+critical computation in this evalution --- determining the solution to a
+penalized, weighted least squares (PWLS) problem.
+
+The dimension of the solution of the PWLS problem can be very large,
+perhaps in the millions.  Furthermore, such problems must be solved
+repeatedly during the optimization process to determine parameter
+estimates.  The whole approach would be infeasible were it not for the
+fact that the matrices determining the PWLS problem are sparse and we
+can use sparse matrix storage formats and sparse matrix computations
+\citep{davis06:csparse_book}. In particular, the whole computational
+approach hinges on the extraordinarily efficient methods for
+determining the Cholesky decomposition of sparse, symmetric,
+positive-definite matrices embodied in the CHOLMOD library of C
+functions \citep{Cholmod}.
+
+% The three types of mixed models -- linear, generalized linear and
+% nonlinear -- share common characteristics in that the model is
+% specified in whole or in part by a \emph{mixed model formula} that
+% describes a \emph{linear predictor} and a variance-covariance
+% structure for the random effects.  In the next section we describe
+% the mixed model formula and the forms of these matrices.  The
+% following section presents a general formulation of the Laplace
+% approximation to the log-likelihood of a mixed model.
+
+% In subsequent sections we describe computational methods for specific
+% kinds of mixed models.  In particular, we should how a profiled
+% log-likelihood for linear mixed models, and for some nonlinear mixed
+% models, can be evaluated exactly.
+
+In the next section we describe the general form of the mixed models
+that can be represented in the \package{lme4} package and the
+computational approach embodied in the package.  In the following
+section we describe a particular form of mixed model,
+called a linear mixed model, and the computational details for those
+models.  In the fourth section we describe computational methods for
+generalized linear mixed models, nonlinear mixed models and
+generalized nonlinear mixed models.
+
+
+\section{Formulation of mixed models}
+\label{sec:form-mixed-models}
+
+A mixed-effects model incorporates two vector-valued random variables:
+the $n$-dimensional response vector, $\bc Y$, and the $q$-dimensional
+random effects vector, $\bc B$. We observe the value, $\bm y$, of $\bc Y$.
+We do not observe the value of $\bc B$.
+
+The random variable $\bc Y$ may be continuous or discrete.  That is,
+the observed data, $\bm y$, may be on a continuous scale or they may
+be on a discrete scale, such as binary responses or responses
+representing a count. In our formulation, the random variable $\bc B$
+is always continous.
+
+We specify a mixed model by describing the unconditional distribution
+of $\bc B$ and the conditional distribution $(\bc Y|\bc B=\bm b)$.
+
+\subsection{The unconditional distribution of $\bc B$}
+\label{sec:uncond-distr-B}
+
+In our formulation, the unconditional distribution of $\bc B$ is
+always a $q$-dimensional multivariate Gaussian (or ``normal'')
+distribution with mean $\bm 0$ and with a parameterized covariance
+matrix,
+\begin{equation}
+  \label{eq:2}
+  \bc B\sim\mathcal{N}\left(\bm 0,\sigma^2\bm\Lambda(\bm\theta)
+  \bm\Lambda\trans(\bm\theta)\right) .
+\end{equation}
+
+The scalar, $\sigma$, in (\ref{eq:2}), is called the \emph{common scale
+  parameter}.  As we will see later, not all types of mixed models
+incorporate this parameter. We will include $\sigma^2$ in the general
+form of the unconditional distribution of $\bc B$ with the
+understanding that, in some models, $\sigma\equiv 1$.
+
+The $q\times q$ matrix $\bm\Lambda(\bm\theta)$, which is a left factor
+of the covariance matrix (when $\sigma=1$) or the relative covariance
+matrix (when $\sigma\ne 1$), depends on an $m$-dimensional parameter
+$\bm\theta$.  Typically $m\ll q$; in the examples we show below it is
+always the case that $m<5$, even when $q$ is in the thousands.  The
+fact that $m$ is very small is important because, as we shall see,
+determining the parameter estimates in a mixed model can be expressed
+as an optimization problem with respect to $\bm\theta$ only.
+
+The parameter $\bm\theta$ may be, and typically is, subject to
+constraints. For ease of computation, we require that the constraints
+be expressed as ``box'' constraints of the form
+$\theta_{iL}\le\theta_i\le\theta_{iU},i=1,\dots,m$ for constants
+$\theta_{iL}$ and $\theta_{iU}, i=1,\dots,m$.  We shall write the set
+of such constraints as $\bm\theta_L\le\bm\theta\le\bm\theta_R$.  The matrix
+$\bm\Lambda(\bm\theta)$ is required to be non-singular
+(i.e.{} invertible) when $\bm\theta$ is not on the boundary.
+
+\subsection{The conditional distribution,  $(\bc Y|\bc B=\bm b)$}
+\label{sec:cond-distr-YB}
+
+The conditional distribution, $(\bc Y|\bc B=\bm b)$, must satisfy:
+\begin{enumerate}
+\item The conditional mean, $\bm\mu_{\bc Y|\bc B}(\bm b) =
+  \mathrm{E}[\bc Y|\bc B=\bm b]$, depends on $\bm b$ only through the
+  value of the \emph{linear predictor}, $\bm Z\bm b+\bm X\bm\beta$,
+  where $\bm\beta$ is the $p$-dimensional \emph{fixed-effects}
+  parameter vector and the \emph{model matrices}, $\bm Z$ and $\bm X$,
+  are fixed matrices of the appropriate dimension.  That is, the
+  two model matrices must have the same number of rows and must have
+  $q$ and $p$ columns, respectively.  The number of rows
+  in $\bm Z$ and $\bm X$ is a multiple of $n$, the dimension of $\bm y$.
+\item The scalar distributions, $(\mathcal{Y}_i|\bc B=\bm
+  b),i=1,\dots,n$, all have the same form and are completely
+  determined by the conditional mean, $\bm\mu_{\bc Y|\bc B}(\bm b)$
+  and, at most, one additional parameter, $\sigma$, which is the
+  common scale parameter.
+\item The scalar distributions, $(\mathcal{Y}_i|\bc B=\bm
+  b),i=1,\dots,n$, are independent.  That is, the components of
+  $\bc Y$ are \emph{conditionally independent} given $\bc B$.
+\end{enumerate}
+
+An important special case of the conditional distribution is the
+multivariate Gaussian distribution of the form
+\begin{equation}
+  \label{eq:1}
+  (\bc Y|\bc B=\bm b)\sim\mathcal{N}(\bm Z\bm b+\bm
+  X\bm\beta,\sigma^2\bm I_n)
+\end{equation}
+where $\bm I_n$ denotes the identity matrix of size $n$.
+In this case the conditional mean, $\bm\mu_{\bc Y|\bc B}(\bm b)$, is
+exactly the linear predictor, $\bm Z\bm b+\bm X\bm\beta$, a situation
+we will later describe as being an ``identity link'' between the
+conditional mean and the linear predictor.  Models with conditional
+distribution (\ref{eq:1}) are called \emph{linear mixed models}.
+
+\subsection{A change of variable to ``spherical'' random effects}
+\label{sec:change-vari-spher}
+
+Because the conditional distribution $(\bc Y|\bc B=\bm b)$ depends on
+$\bm b$ only through the linear predictor, it is easy to express the
+model in terms of a linear transformation of $\bc B$.  We define the
+linear transformation from a $q$-dimensional ``spherical'' Gaussian
+random variable, $\bc U$, to $\bc B$ as
+\begin{equation}
+  \label{eq:3}
+  \bc B=\bm\Lambda(\bm\theta)\bc U,\quad
+  \bc U\sim\mathcal{N}(\bm 0,\sigma^2\bm I_q).
+\end{equation}
+(The term ``spherical'' refers to the fact that contours of constant
+probability density for $\bc U$ are spheres centered at the mean ---
+in this case, $\bm0$.)
+
+When $\bm\theta$ is not on the boundary this is an invertible
+transformation.  When $\bm\theta$ is on the boundary the
+transformation can fail to be invertible.  However, we will only need
+to be able to express $\bc B$ in terms of $\bc U$ and that
+transformation is well-defined, even when $\bm\theta$ is on the
+boundary.
+
+The linear predictor, as a function of $\bm u$, is
+\begin{equation}
+  \label{eq:4}
+  \bm\gamma(\bm u)=\bm Z\bm\Lambda(\bm\theta)\bm u
+  + \bm X\bm\beta.
+\end{equation}
+When we wish to emphasize the role of the model parameters,
+$\bm\theta$ and $\bm\beta$, in the formulation of $\bm\gamma$, we will
+write the linear predictor as $\bm\gamma(\bm u,\bm\theta,\bm\beta)$.
+
+\subsection{The conditional density $(\bc U|\bc Y=\bm y)$}
+\label{sec:cond-dens-bc}
+
+Because we observe $\bm y$ and do not observe $\bm b$ or $\bm u$, the
+conditional distribution of interest, for the purposes of statistical
+inference, is $(\bc U|\bc Y=\bm y)$ (or, equivalently, $(\bc B|\bc
+Y=\bm y)$).  This conditional distribution is always a continuous
+distribution with conditional probability density $f_{\bc U|\bc
+  Y}(\bm u|\bm y)$.
+
+We can evaluate $f_{\bc U|\bc Y}(\bm u|\bm y)$ , up to a constant, as
+the product of the unconditional density, $f_{\bc U}(\bm u)$, and the
+conditional density (or the probability mass function, whichever is
+appropriate), $f_{\bc Y|\bc U}(\bm y|\bm u)$.  We write this
+unnormalized conditional density as
+\begin{equation}
+  \label{eq:5}
+  h(\bm u|\bm y,\bm\theta,\bm\beta,\sigma) =
+  f_{\bc Y|\bc U}(\bm y|\bm u,\bm\theta,\bm\beta,\sigma)
+  f_{\bc U}(\bm u|\sigma) .
+\end{equation}
+
+We say that $h$ is the ``unnormalized'' conditional density because
+all we know is that the conditional density is proportional to $h(\bm
+u|\bm y,\bm\theta,\bm\beta,\sigma)$.  To obtain the conditional
+density we must normalize $h$ by dividing by the value of the integral
+\begin{equation}
+  \label{eq:6}
+  L(\bm\theta,\bm\beta,\sigma|\bm y) =
+  \int_{\mathbb{R}^q}h(\bm u|\bm y,\bm\theta,\bm\beta,\sigma)\,d\bm u .
+\end{equation}
+We write the value of the integral (\ref{eq:6}) as
+$L(\bm\theta,\bm\beta,\sigma|\bm y)$ because it is exactly the
+\emph{likelihood} of the parameters $\bm\theta$, $\bm\beta$ and
+$\sigma$, given the observed data $\bm y$.  The \emph{maximum
+  likelihood (ML) estimates} of these parameters are the values that
+maximize $L$.
+
+\subsection{Determining the ML estimates}
+\label{sec:DeterminingML}
+
+The general problem of maximizing $L(\bm\theta,\bm\beta,\sigma|\bm y)$
+with respect to $\bm\theta$, $\bm\beta$ and $\sigma$ can be formidable
+because each evaluation of this function involves a potentially
+high-dimensional integral and because the dimension of $\bm\beta$ can
+be large.  However, this general optimization problem can be split
+into manageable subproblems.  Given a value of $\bm\theta$ we can
+determine the \emph{conditional mode}, $\tilde{\bm u}(\bm\theta)$, of
+$\bm u$ and the \emph{conditional estimate},
+$\tilde{\bm\beta}(\bm\theta)$ simultaneously using \emph{penalized,
+  iteratively re-weighted least squares} (PIRLS).  The conditional
+mode and the conditional estimate are defined as
+\begin{equation}
+  \label{eq:condmode}
+  \begin{bmatrix}
+    \tilde{\bm u}(\bm\theta)\\
+    \tilde{\bm\beta}(\bm\theta)
+  \end{bmatrix}=\arg\max_{\bm u,\bm\beta}h(\bm u|\bm
+  y,\bm\theta,\bm\beta,\sigma) .
+\end{equation}
+(It may look as if we have missed the dependence on $\sigma$ on the
+left-hand side but it turns out that the scale parameter does not
+affect the location of the optimal values of quantities in the linear
+predictor.)
+
+As is common in such optimization problems, we re-express the conditional
+density on the \emph{deviance scale}, which is negative twice the
+logarithm of the density, where the optimization becomes
+\begin{equation}
+  \label{eq:condmode2}
+  \begin{bmatrix}
+    \tilde{\bm u}(\bm\theta)\\
+    \tilde{\bm\beta}(\bm\theta)
+  \end{bmatrix}=\arg\min_{\bm u,\bm\beta}-2\log\left(h(\bm u|\bm
+  y,\bm\theta,\bm\beta,\sigma)\right) .
+\end{equation}
+It is this optimization problem that can be solved quite efficiently
+using PIRLS.  In fact, for linear mixed models, which are described in
+the next section, $\tilde{\bm u}(\bm\theta)$ and
+$\tilde{\bm\beta}(\bm\theta)$ can be directly evaluated.
+
+The second-order Taylor series expansion of $-2\log h$ at $\tilde{\bm
+  u}(\bm\theta)$ and $\tilde{\bm\beta}(\bm\theta)$ provides the
+Laplace approximation to the profiled deviance.  Optimizing this
+function with respect to $\bm\theta$ provides the ML estimates of
+$\bm\theta$, from which the ML estimates of $\bm\beta$ and $\sigma$
+(if used) are derived.
+
+\section{Methods for linear mixed models}
+\label{sec:pwls-problem}
+
+As indicated in the introduction, a critical step in our methods for
+determining the maximum likelihood estimates of the parameters in a
+mixed model is solving a penalized, weighted least squares (PWLS)
+problem.  We will motivate the general form of the PWLS problem by
+first considering computational methods for linear mixed models that
+result in a penalized least squares (PLS) problem.
+
+Recall from \S\ref{sec:cond-distr-YB} that, in a linear mixed model,
+both the conditional distribution, $(\bc Y|\bc U=\bm u)$, and the
+unconditional distribution, $\bc U$, are spherical Gaussian
+distributions and that the conditional mean, $\bm\mu_{\bc Y|\bc U}(\bm
+u)$, is the linear predictor, $\bm\gamma(\bm u)$.  Because all the
+distributions determining the model are continuous distributions, we
+consider their densities.  On the deviance scale these are
+\begin{equation}
+  \label{eq:7}
+  \begin{aligned}
+    -2\log(f_{\bc U}(\bm u))&=q\log(2\pi\sigma^2)+\frac{\|\bm u\|^2}{\sigma^2}\\
+    -2\log(f_{\bc Y|\bc U}(\bm y|\bm u))&=n\log(2\pi\sigma^2)+
+    \frac{\|\bm y-\bm Z\bm\Lambda(\bm\theta)\bm u-\bm X\bm\beta\|^2}{\sigma^2}\\
+    -2\log(h(\bm u|\bm y,\bm\theta,\bm\beta,\sigma))
+    &= (n+q)\log(2\pi\sigma^2)+
+    \frac{\|\bm y-\bm\gamma(\bm u,\bm\theta,\bm\beta)\|^2+\|\bm
+      u\|^2}{\sigma^2}\\
+    &= (n+q)\log(2\pi\sigma^2)+
+    \frac{d(\bm u|\bm y,\bm\theta,\bm\beta)}{\sigma^2}
+  \end{aligned}
+\end{equation}
+
+In (\ref{eq:7}) the \emph{discrepancy} function,
+\begin{equation}
+  \label{eq:9}
+    d(\bm u|\bm y,\bm\theta,\bm\beta) =
+    \|\bm y-\bm\gamma(\bm u,\bm\theta,\bm\beta)\|^2+\|\bm u\|^2
+\end{equation}
+has the form of a penalized residual sum of squares in that the first
+term, $\|\bm y-\bm\gamma(\bm u,\bm\theta,\bm\beta)\|^2$ is
+the residual sum of squares for $\bm y$, $\bm u$, $\bm\theta$ and
+$\bm\beta$ and the second term, $\|\bm u\|^2$, is a penalty on the
+size of $\bm u$.  Notice that the discrepancy does not depend on the
+common scale parameter, $\sigma$.
+
+\subsection{The canonical form of the discrepancy}
+\label{sec:conditional-mode-bm}
+
+Using a so-called ``pseudo data'' representation, we can write the
+discrepancy as a residual sum of squares for a regression model that
+is linear in both $\bm u$ and $\bm\beta$
+\begin{equation}
+  \label{eq:10}
+  d(\bm u|\bm y,\bm\theta,\bm\beta) =\left\|
+    \begin{bmatrix} \bm y\\\bm 0 \end{bmatrix} -
+    \begin{bmatrix}
+      \bm Z\bm\Lambda(\bm\theta) & \bm X \\
+      \bm I_q & \bm0
+    \end{bmatrix}
+    \begin{bmatrix}\bm u\\\bm\beta\end{bmatrix}
+  \right\|^2 .
+\end{equation}
+The term ``pseudo data'' reflects the fact that we have added $q$
+``pseudo observations'' to the observed response, $\bm y$, and to the
+linear predictor, $\bm\gamma(\bm u,\bm\theta,\bm\beta)=\bm
+Z\bm\Lambda(\bm\theta)\bm u+\bm X\bm\beta$, in such a way that their
+contribution to the overall residual sum of squares is exactly the
+penalty term in the discrepancy.
+
+In the form (\ref{eq:10}) we can see that the discrepancy is a
+quadratic form in both $\bm u$ and $\bm\beta$.  Furthermore, because
+we require that $\bm X$ has full column rank, the discrepancy is a
+positive-definite quadratic form in $\bm u$ and $\bm\beta$ that is
+minimized at $\tilde{\bm u}(\bm\theta)$ and
+$\tilde{\bm\beta}(\bm\theta)$ satisfying
+\begin{equation}
+  \label{eq:13}
+  \begin{bmatrix}
+    \bm\Lambda\trans(\bm\theta)\bm Z\trans\bm Z\bm\Lambda(\theta)
+    +\bm I_q&\bm\Lambda\trans(\bm\theta)\bm Z\trans\bm X\\
+    \bm X\trans\bm Z\bm\Lambda(\theta) &\bm X\trans\bm X
+  \end{bmatrix}
+  \begin{bmatrix}
+    \tilde{\bm u}(\bm\theta)\\\tilde{\bm\beta}(\bm\theta)
+  \end{bmatrix} =
+  \begin{bmatrix}
+    \bm\Lambda\trans(\bm\theta)\bm Z\trans\bm y\\
+    \bm X\trans\bm y
+  \end{bmatrix}
+\end{equation}
+
+An effective way of determining the solution to a sparse, symmetric,
+positive definite system of equations such as (\ref{eq:13}) is the
+sparse Cholesky decomposition \citep{davis06:csparse_book}.  If $\bm A$
+is a sparse, symmetric positive definite matrix then the sparse
+Cholesky factor with fill-reducing permutation $\bm P$ is the
+lower-triangular matrix $\bm L$ such that
+\begin{equation}
+  \label{eq:14}
+  \bm L\bm L\trans=\bm P\bm A\bm P\trans .
+\end{equation}
+(Technically, the factor $\bm L$ is only determined up to changes in
+the sign of the diagonal elements.  By convention we require the
+diagonal elements to be positive.)
+
+The fill-reducing permutation represented by the permutation matrix
+$\bm P$, which is determined from the pattern of nonzeros in $\bm A$
+but does not depend on particular values of those nonzeros, can have a
+profound impact on the number of nonzeros in $\bm L$ and hence on the
+speed with which $\bm L$ can be calculated from $\bm A$.
+
+In most applications of linear mixed models the matrix $\bm
+Z\bm\Lambda(\bm\theta)$ is sparse while $\bm X$ is dense or close to
+it so the permutation matrix $\bm P$ can be restricted to the form
+\begin{equation}
+  \label{eq:15}
+  \bm P=\begin{bmatrix}\bm P_{\bm Z}&\bm0\\
+    \bm0&\bm P_{\bm X}\end{bmatrix}
+\end{equation}
+without loss of efficiency.  In fact, in most cases we can set $\bm
+P_{\bm X}=\bm I_p$ without loss of efficiency.
+
+Let us assume that the permutation matrix is required to be of the
+form (\ref{eq:15}) so that we can write the Cholesky factorization for
+the positive definite system (\ref{eq:13}) as
+\begin{multline}
+  \label{eq:16}
+  \begin{bmatrix}
+    \bm L_{\bm Z}&\bm0\\\bm L_{\bm{XZ}}&\bm L_{\bm X}
+  \end{bmatrix}
+  \begin{bmatrix}
+    \bm L_{\bm Z}&\bm0\\\bm L_{\bm{XZ}}&\bm L_{\bm X}
+  \end{bmatrix}\trans =\\
+  \begin{bmatrix}\bm P_{\bm Z}&\bm0\\
+    \bm0&\bm P_{\bm X}\end{bmatrix}
+  \begin{bmatrix}
+    \bm\Lambda\trans(\bm\theta)\bm Z\trans\bm Z\bm\Lambda(\theta)
+    +\bm I_q&\bm\Lambda\trans(\bm\theta)\bm Z\trans\bm X\\
+    \bm X\trans\bm Z\bm\Lambda(\theta) &\bm X\trans\bm X
+  \end{bmatrix}
+  \begin{bmatrix}\bm P_{\bm Z}&\bm0\\
+    \bm0&\bm P_{\bm X}\end{bmatrix}\trans .
+\end{multline}
+The discrepancy can now be written in the canonical form
+\begin{equation}
+  \label{eq:17}
+  d(\bm u|\bm y,\bm\theta,\bm\beta) =\tilde{d}(\bm y,\bm\theta) +
+  \left\|
+    \begin{bmatrix}
+      \bm L_{\bm Z}\trans&\bm L_{\bm{XZ}}\trans\\
+      \bm 0&\bm L_{\bm X}\trans
+    \end{bmatrix}
+    \begin{bmatrix}
+      \bm P_{\bm Z}(\bm u-\tilde{\bm u})\\
+      \bm P_{\bm X}(\bm\beta-\tilde{\bm\beta})
+    \end{bmatrix}
+  \right\|^2
+\end{equation}
+where
+\begin{equation}
+  \label{eq:18}
+  \tilde{d}(\bm y,\bm\theta)=
+  d(\tilde{\bm u}(\bm\theta)|\bm y,\bm\theta,\tilde{\bm\beta}(\bm\theta))
+\end{equation}
+is the minimum discrepancy, given $\bm\theta$.
+
+
+\subsection{The profiled likelihood for linear mixed models}
+\label{sec:prof-log-likel}
+
+Substituting (\ref{eq:17}) into (\ref{eq:7}) provides the unnormalized
+conditional density $h(\bm u|\bm y,\bm\theta,\bm\beta,\sigma)$ on the
+deviance scale as
+\begin{multline}
+  \label{eq:32}
+  -2\log(h(\bm u|\bm y,\bm\theta,\bm\beta,\sigma))\\=
+  (n+q)\log(2\pi\sigma^2)+\frac{\tilde{d}(\bm y,\bm\theta) +
+  \left\|
+    \begin{bmatrix}
+      \bm L_{\bm Z}\trans&\bm L_{\bm{XZ}}\trans\\
+      \bm 0&\bm L_{\bm X}\trans
+    \end{bmatrix}
+    \begin{bmatrix}
+      \bm P_{\bm Z}(\bm u-\tilde{\bm u})\\
+      \bm P_{\bm X}(\bm\beta-\tilde{\bm\beta})
+    \end{bmatrix}
+  \right\|^2}{\sigma^2} .
+\end{multline}
+As shown in Appendix \ref{sec:integr-quadr-devi}, the integral of a
+quadratic form on the deviance scale, such as (\ref{eq:32}), is easily
+evaluated, providing the log-likelihood,
+$\ell(\bm\theta,\bm\beta,\sigma|\bm y)$, as
+\begin{multline}
+  \label{eq:lmmdev}
+  -2\ell(\bm\theta,\bm\beta,\sigma|\bm y)\\
+  =-2\log\left(L(\bm\theta,\bm\beta,\sigma|\bm y)\right)\\
+  =n\log(2\pi\sigma^2)+\log(|\bm L_{\bm Z}|^2)+\frac{\tilde{d}(\bm y,\bm\theta) +
+  \left\|\bm L_{\bm X}\trans\bm P_{\bm X}(\bm\beta-\tilde{\bm\beta})\right\|^2}{\sigma^2},
+\end{multline}
+from which we can see that the conditional estimate of $\bm\beta$,
+given $\bm\theta$, is $\tilde{\bm\beta}(\bm\theta)$ and the conditional
+estimate of $\sigma$, given $\bm\theta$, is
+\begin{equation}
+  \label{eq:condsigma}
+  \tilde{\sigma^2}(\bm\theta)= \frac{\tilde{d}(\bm\theta|\bm y)}{n} .
+\end{equation}
+Substituting these conditional estimates into (\ref{eq:lmmdev}) produces the
+\emph{profiled likelihood}, $\tilde{L}(\bm\theta|\bm y)$, as
+\begin{equation}
+  \label{eq:19}
+  -2\tilde{\ell}(\bm\theta|\bm y))=
+  \log(|\bm L_{\bm Z}(\bm\theta)|^2)+
+  n\left(1+\log\left(\frac{2\pi\tilde{d}(\bm y,\bm\theta)}{n}\right)\right) .
+\end{equation}
+The maximum likelihood estimate of $\bm\theta$ can then be expressed as
+\begin{equation}
+  \label{eq:29}
+  \widehat{\bm\theta}_L=\arg\min_{\bm\theta}
+  \left(-2\tilde{\ell}(\bm\theta|\bm y)\right) .
+\end{equation}
+from which the ML estimates of $\sigma^2$ and $\bm\beta$ are
+evaluated as
+\begin{align}
+  \label{eq:30}
+  \widehat{\sigma^2_L}&=
+  \frac{\tilde{d}(\widehat{\bm\theta}_L,\bm y)}{n}\\
+  \widehat{\bm\beta}_L&=\tilde{\bm\beta}(\widehat{\bm\theta}_L) .
+\end{align}
+
+The important thing to note about optimizing the profiled likelihood,
+(\ref{eq:19}), is that it is a $m$-dimensional optimization problem
+and typically $m$ is very small.
+
+\subsection{The REML criterion}
+\label{sec:reml-criterion}
+
+In practice the so-called REML estimates of variance components are
+often preferred to the maximum likelihood estimates.  (``REML'' can be
+considered to be an acronym for ``restricted'' or ``residual'' maximum
+likelihood, although neither term is completely accurate because these
+estimates do not maximize a likelihood.) We can motivate the use of
+the REML criterion by considering a linear regression model,
+\begin{equation}
+  \label{eq:20}
+  \bc Y\sim\mathcal{N}(\bm X\bm\beta,\sigma^2\bm I_n),
+\end{equation}
+in which we typically estimate $\sigma^2$ by
+\begin{equation}
+  \label{eq:21}
+  \widehat{\sigma^2_R}=\frac{\|\bm y-\bm X\widehat{\bm\beta}\|^2}{n-p}
+\end{equation}
+even though the maximum likelihood estimate of $\sigma^2$ is
+\begin{equation}
+  \label{eq:22}
+  \widehat{\sigma^2_{L}}=\frac{\|\bm y-\bm
+    X\widehat{\bm\beta}\|^2}{n} .
+\end{equation}
+
+The argument for preferring $\widehat{\sigma^2_R}$ to
+$\widehat{\sigma^2_{L}}$ as an estimate of $\sigma^2$ is that the
+numerator in both estimates is the sum of squared residuals at
+$\widehat{\bm\beta}$ and, although the residual vector $\bm y-\bm
+X\bm\beta$ is an $n$-dimensional vector, the residual at
+$\widehat{\bm\theta}$ satisfies $p$ linearly independent constraints,
+$\bm X\trans(\bm y-\bm X\widehat{\bm\beta})=\bm 0$. That is, the residual at
+$\widehat{\bm\theta}$ is the projection of the observed response
+vector, $\bm y$, into an $(n-p)$-dimensional linear subspace of the
+$n$-dimensional response space.  The estimate $\widehat{\sigma^2_R}$
+takes into account the fact that $\sigma^2$ is estimated from
+residuals that have only $n-p$ \emph{degrees of freedom}.
+
+The REML criterion for determining parameter estimates
+$\widehat{\bm\theta}_R$ and $\widehat{\sigma_R^2}$ in a linear mixed
+model has the property that these estimates would
+specialize to $\widehat{\sigma^2_R}$ from (\ref{eq:21}) for a linear
+regression model.  Although not usually derived in this way, the REML
+criterion can be expressed as
+\begin{equation}
+  \label{eq:23}
+  c_R(\bm\theta,\bm\sigma|\bm y)=-2\log
+  \int_{\mathbb{R}^p}L(\bm u|\bm
+  y,\bm\theta,\bm\beta,\sigma)\,d\bm\beta
+\end{equation}
+on the deviance scale.  The REML estimates $\widehat{\bm\theta}_R$ and
+$\widehat{\sigma_R^2}$ minimize $c_R(\bm\theta,\bm\sigma|\bm y)$.
+
+The profiled REML criterion, a function of $\bm\theta$ only, is
+\begin{equation}
+  \label{eq:24}
+  \tilde{c}_R(\bm\theta|\bm y)=
+  \log(|\bm L_{\bm Z}(\bm\theta)|^2|\bm L_{\bm X}(\bm\theta)|^2)+(n-p)
+  \left(1+\log\left(\frac{2\pi\tilde{d}(\bm\theta|\bm y)}{n-p}\right)\right)
+\end{equation}
+and the REML estimate of $\bm\theta$ is
+\begin{equation}
+  \label{eq:31}
+  \widehat{\bm\theta}_R =
+  \arg\min_{\bm\theta}\tilde{c}_R(\bm\theta,\bm y) .
+\end{equation}
+The REML estimate of $\sigma^2$ is
+$\widehat{\sigma^2_R}=\tilde{d}(\widehat{\bm\theta}_R|\bm y)/(n-p)$.
+
+It is not entirely clear how one would define a ``REML estimate'' of
+$\bm\beta$ because the REML criterion, $c_R(\bm\theta,\bm\sigma|\bm
+y)$, defined in (\ref{eq:23}), does not depend on $\bm\beta$.
+However, it is customary (and not unreasonable) to use
+$\widehat{\bm\beta}_R=\tilde{\bm\beta}(\widehat{\bm\theta}_R)$ as the REML
+estimate of $\bm\beta$.
+
+Note that the profiled REML criterion can be evaluated from a sparse
+Cholesky decomposition like that in (\ref{eq:16}) but without the
+requirement that the permutation can be applied to the columns of $\bm
+Z\bm\Lambda(\bm\theta)$ separately from the columnns of $\bm X$.  That
+is, we can use a general fill-reducing permutation rather than the
+specific form (\ref{eq:15}) with separate permutations represented by
+$\bm P_{\bm Z}$ and $\bm P_{\bm X}$. This can be useful in cases where
+both $\bm Z$ and $\bm X$ are large and sparse.
+
+\subsection{Summary for linear mixed models}
+\label{sec:lmmsummary}
+
+A linear mixed model is characterized by the conditional distribution
+\begin{equation}
+  \label{eq:lmmcond}
+  (\bc Y|\bc U=\bm u)\sim\mathcal{N}(\bm\gamma(\bm
+  u,\bm\theta,\bm\beta),\sigma^2\bm I_n)\text{ where }
+  \bm\gamma(\bm u,\bm\theta,\bm\beta)=\bm Z\bm\Lambda(\bm\theta)\bm
+  u+\bm X\bm\beta
+\end{equation}
+and the unconditional distribution
+$\bc U\sim\mathcal{N}(\bm 0,\sigma^2\bm I_q)$.  The discrepancy
+function,
+\begin{displaymath}
+  d(\bm u|\bm y,\bm\theta,\bm\beta)=
+  \left\|\bm y-\bm\gamma(\bm u,\bm\theta,\bm\beta)\right\|^2+\|\bm u\|^2,
+\end{displaymath}
+is minimized at the conditional mode, $\tilde{\bm u}(\bm\theta)$, and
+the conditional estimate, $\tilde{\bm\beta}(\bm\theta)$, which are the
+solutions to the sparse, positive-definite linear system
+\begin{displaymath}
+  \begin{bmatrix}
+    \bm\Lambda\trans(\bm\theta)\bm Z\trans\bm Z\bm\Lambda(\theta)
+    +\bm I_q&\bm\Lambda\trans(\bm\theta)\bm Z\trans\bm X\\
+    \bm X\trans\bm Z\bm\Lambda(\theta) &\bm X\trans\bm X
+  \end{bmatrix}
+  \begin{bmatrix}
+    \tilde{\bm u}(\bm\theta)\\\tilde{\bm\beta}(\bm\theta)
+  \end{bmatrix} =
+  \begin{bmatrix}
+    \bm\Lambda\trans(\bm\theta)\bm Z\trans\bm y\\
+    \bm X\trans\bm y
+  \end{bmatrix} .
+\end{displaymath}
+In the process of solving this system we create the sparse left
+Cholesky factor, $L_{\bm Z}(\bm\theta)$, which is a lower triangular
+sparse matrix satisfying
+\begin{displaymath}
+  \bm L_{\bm Z}(\bm\theta)\bm L_{\bm Z}(\bm\theta)\trans=\bm P_{\bm
+    Z}\left(\bm\Lambda\trans(\bm\theta)\bm Z\trans\bm
+    Z\bm\Lambda(\theta)+\bm I_q\right)\bm P_{\bm Z}\trans
+\end{displaymath}
+where $\bm P_{\bm Z}$ is a permutation matrix representing a
+fill-reducing permutation formed from the pattern of nonzeros in $\bm
+Z\bm\Lambda(\bm\theta)$ for any $\bm\theta$ not on the boundary of the
+parameter region.  (The values of the nonzeros depend on $\bm\theta$
+but the pattern doesn't.)
+
+The profiled log-likelihood, $\tilde{\ell}(\bm\theta|\bm y)$, is
+\begin{displaymath}
+    -2\tilde{\ell}(\bm\theta|\bm y)=
+  \log(|\bm L_{\bm Z}(\bm\theta)|^2)+
+  n\left(1+\log\left(\frac{2\pi\tilde{d}(\bm y,\bm\theta)}{n}\right)\right)
+\end{displaymath}
+where $\tilde{d}(\bm y,\bm\theta)=d(\tilde{\bm u}(\bm\theta)|\bm
+y,\tilde{\bm\beta}(\bm\theta),\bm\theta)$.
+
+\section{Generalizing the discrepancy function}
+\label{sec:generalizations}
+
+Because one of the factors influencing the choice of implementation
+for linear mixed models is the extent to which the methods can also be
+applied to other mixed models, we describe several other classes of
+mixed models before discussing the implementation details for linear
+mixed models.  At the core of our methods for determining the maximum
+likelihood estimates (MLEs) of the parameters in the mixed model are
+methods for minimizing the discrepancy function with respect to the
+coefficients $\bm u$ and $\bm\beta$ in the linear predictor
+$\bm\gamma(\bm u,\bm\theta,\bm\beta)$.
+
+In this section we describe the general form of the discrepancy
+function that we will use and a penalized iteratively reweighted least
+squares (PIRLS) algorithm for determining the conditional modes
+$\tilde{\bm u}(\bm\theta)$ and $\tilde{\bm\beta}(\bm\theta)$.  We then
+describe several types of mixed models and the form of the discrepancy
+function for each.
+
+\subsection{A weighted residual sum of squares}
+\label{sec:weighted}
+
+As shown in \S\ref{sec:conditional-mode-bm}, the discrepancy function
+for a linear mixed model has the form of a penalized residual sum of
+squares from a linear model (\ref{eq:10}).  In this section we
+generalize that definition to
+\begin{equation}
+  \label{eq:11}
+  d(\bm u|\bm y,\bm\theta,\bm\beta) =\left\|\bm W^{1/2}(\bm\mu)
+    \left[\bm y-\bm\mu_{\bc Y|\bc U}(\bm u,\bm\theta,\bm\beta)\right]\right\|^2+
+  \|\bm 0-\bm u\|^2 .
+\end{equation}
+where $\bm W$ is an $n\times n$ diagonal matrix, called the
+\emph{weights matrix}, with positive diagonal elements and $\bm
+W^{1/2}$ is the diagonal matrix with the square roots of the weights
+on the diagonal.  The $i$th weight is inversely proportional to
+the conditional variances of $(\mathcal{Y}|\bc U=\bm u)$ and may
+depend on the conditional mean, $\bm\mu_{\bc Y|\bc U}$.
+
+We allow the conditional mean to be a nonlinear function of the linear
+predictor, but with certain restrictions.  We require that the
+mapping from $\bm u$ to $\bm\mu_{\bc Y|\bc U=\bm u}$ be expressed as
+\begin{equation}
+  \label{eq:uGammaEtaMu}
+  \bm u\;\rightarrow\;\bm\gamma\;\rightarrow\;\bm\eta\;\rightarrow\;\bm\mu
+\end{equation}
+where $\bm\gamma=\bm Z\bm\Lambda(\bm\theta)\bm u+\bm X\bm\theta$ is an
+$ns$-dimensional vector ($s > 0$) while $\bm\eta$ and $\bm\mu$ are
+$n$-dimensional vectors.
+
+The map $\bm\eta\rightarrow\bm\mu$ has the property that $\mu_i$
+depends only on $\eta_i$, $i=1,\dots,n$.  The map
+$\bm\gamma\rightarrow\bm\eta$ has a similar property in that, if we
+write $\bm\gamma$ as an $n\times s$ matrix $\bm\Gamma$ such that
+\begin{equation}
+  \label{eq:vecGamma}
+  \bm\gamma=\vec{\bm\Gamma}
+\end{equation}
+(i.e.{} concatenating the columns of $\bm\Gamma$ produces $\bm\gamma$)
+then $\eta_i$ depends only on the $i$th row of $\bm\Gamma$,
+$i=1,\dots,n$.  Thus the Jacobian matrix
+$\frac{d\bm\mu}{d\bm\eta\trans}$ is an $n\times n$ diagonal matrix and
+the Jacobian matrix $\frac{d\bm\eta}{d\bm\gamma\trans}$ is the
+horizontal concatenation of $s$ diagonal $n\times n$ matrices.
+
+For historical reasons, the function that maps $\eta_i$ to $\mu_i$ is
+called the \emph{inverse link} function and is written
+$\mu=g^{-1}(\eta)$.  The \emph{link function}, naturally, is
+$\eta=g(\mu)$.  When applied component-wise to vectors $\bm\mu$ or
+$\bm\eta$ we write these as $\bm\eta=\bm g(\bm\mu)$ and $\bm\mu=\bm
+g^{-1}(\bm\eta)$.
+
+Recall that the conditional distribution, $(\mathcal{Y}_i|\bc U=\bm
+u)$, is required to be independent of $(\mathcal{Y}_j|\bc U=\bm u)$
+for $i,j=1,\dots,n,\,i\ne j$ and that all the component conditional
+distributions must be of the same form and differ only according to
+the value of the conditional mean.
+
+Depending on the family of the conditional distributions, the allowable
+values of the $\mu_i$ may be in a restricted range.  For example, if
+the conditional distributions are Bernoulli then
+$0\le\mu_i\le1,i=1,\dots,n$. If the conditional distributions are
+Poisson then $0\le\mu_i,i=1,\dots,n$.  A characteristic of the link
+function, $g$, is that it must map the restricted range to an
+unrestricted range.  That is, a link function for the Bernoulli
+distribution must map $[0,1]$ to $[-\infty,\infty]$ and must be invertible
+within the range.
+
+The mapping from $\bm\gamma$ to $\bm\eta$ is defined by a function
+$m:\mathbb{R}^s\rightarrow\mathbb{R}$, called the
+\emph{nonlinear model} function, such that
+$\eta_i=m(\bm\gamma_i),i=1,\dots,n$ where $\bm\gamma_i$ is the $i$th
+row of $\bm\Gamma$.  The vector-valued function is $\bm\eta=\bm m(\bm\gamma)$.
+
+Determining the conditional modes, $\tilde{\bm u}(\bm y|\bm\theta)$,
+and $\tilde{\bm\beta}(\bm y|\bm\theta)$, that jointly minimize the
+discrepancy,
+\begin{equation}
+  \label{eq:12}
+  \begin{bmatrix}
+    \tilde{\bm u}(\bm y|\bm\theta)\\
+    \tilde{\bm\beta}(\bm y|\bm\theta)
+  \end{bmatrix}
+  =\arg\min_{\bm u,\bm\beta}\left[(\bm y-\bm\mu)\trans\bm W(\bm
+  y-\bm\mu)+\|\bm u\|^2\right]
+\end{equation}
+becomes a weighted, nonlinear least squares problem except that the
+weights, $\bm W$, can depend on $\bm\mu$ and, hence, on $\bm u$ and
+$\bm\beta$.
+
+In describing an algorithm for linear mixed models we called
+$\tilde{\bm\beta}(\bm\theta)$ the \emph{conditional estimate}.  That
+name reflects that fact that this is the maximum likelihood estimate
+of $\bm\beta$ for that particular value of $\bm\theta$.  Once we have
+determined the MLE, $\widehat(\bm\theta)_L$ of $\bm\theta$, we have a
+``plug-in'' estimator,
+$\widehat{\bm\beta}_L=\tilde{\bm\beta}(\bm\theta)$ for $\bm\beta$.
+
+This property does not carry over exactly to other forms of mixed
+models.  The values $\tilde{\bm u}(\bm\theta)$ and
+$\tilde{\bm\beta}(\bm\theta)$ are conditional modes in the sense that
+they are the coefficients in $\bm\gamma$ that jointly maximize the
+unscaled conditional density $h(\bm u|\bm
+y,\bm\theta,\bm\beta,\sigma)$.  Here we are using the adjective
+``conditional'' more in the sense of conditioning on $\bc Y=\bm y$
+than in the sense of conditioning on $\bm\theta$, although these
+values are determined for a fixed value of $\bm\theta$.
+
+\subsection{The PIRLS algorithm for $\tilde{\bm u}$ and $\tilde{\bm\beta}$}
+\label{sec:pirls-algor-tild}
+
+The penalized, iteratively reweighted, least squares (PIRLS) algorithm
+to determine $\tilde{\bm u}(\bm\theta)$ and
+$\tilde{\bm\beta}(\bm\theta)$ is a form of the Fisher scoring
+algorithm.  We fix the weights matrix, $\bm W$, and use penalized,
+weighted, nonlinear least squares to minimize the penalized, weighted
+residual sum of squares conditional on these weights.  Then we update
+the weights to those determined by the current value of $\bm\mu$ and
+iterate.
+
+To describe this algorithm in more detail we will use parenthesized
+superscripts to denote the iteration number.  Thus $\bm u^{(0)}$ and
+$\bm\beta^{(0)}$ are the initial values of these parameters, while
+$\bm u^{(i)}$ and $\bm\beta^{(i)}$ are the values at the $i$th
+iteration.  Similarly $\bm\gamma^{(i)}=\bm Z\bm\Lambda(\bm\theta)\bm
+u^{(i)}+\bm X\bm\beta^{(i)}$, $\bm\eta^{(i)}=\bm m(\bm\gamma^{(i)})$ and
+$\bm\mu^{(i)}=\bm g^{-1}(\bm\eta^{(i)})$.
+
+We use a penalized version of the Gauss-Newton algorithm
+\citep[ch.~2]{bateswatts88:_nonlin} for which we define the weighted Jacobian matrices
+\begin{align}
+  \label{eq:Jacobian}
+  \bm U^{(i)}&=\bm W^{1/2}\left.\frac{d\bm\mu}{d\bm u\trans}\right|_{\bm u=\bm
+    u^{(i)},\bm\beta=\bm\beta^{(i)}}=\bm W^{1/2}
+  \left.\frac{d\bm\mu}{d\bm\eta\trans}\right|_{\bm\eta^{(i)}}
+  \left.\frac{d\bm\eta}{d\bm\gamma\trans}\right|_{\bm\gamma^{(i)}}
+  \bm Z\bm\Lambda(\bm\theta)\\
+  \bm V^{(i)}&=\bm W^{1/2}\left.\frac{d\bm\mu}{d\bm\beta\trans}\right|_{\bm u=\bm
+    u^{(i)},\bm\beta=\bm\beta^{(i)}}=\bm W^{1/2}
+  \left.\frac{d\bm\mu}{d\bm\eta\trans}\right|_{\bm\eta^{(i)}}
+  \left.\frac{d\bm\eta}{d\bm\gamma\trans}\right|_{\bm\gamma^{(i)}}
+  \bm X
+\end{align}
+of dimension $n\times q$ and $n\times p$, respectively.
+The increments at the $i$th iteration, $\bm\delta_{\bm u}^{(i)}$ and
+$\bm\delta_{\bm\beta}^{(i)}$, are the solutions to
+\begin{equation}
+  \label{eq:PNLSinc}
+  \begin{bmatrix}
+    {\bm U^{(i)}}\trans\bm U^{(i)}+\bm I_q&{\bm U^{(i)}}\trans\bm V^{(i)}\\
+    {\bm V^{(i)}}\trans\bm U^{(i)}&{\bm V^{(i)}}\trans\bm V^{(i)}
+  \end{bmatrix}
+  \begin{bmatrix}
+    \bm\delta_{\bm u}^{(i)}\\
+    \bm\delta_{\bm\beta}^{(i)}
+  \end{bmatrix} =
+  \begin{bmatrix}
+    {\bm U^{(i)}}\trans\bm W^{1/2}(\bm y-\bm\mu^{(i)})-\bm u^{(i)}\\
+    {\bm U^{(i)}}\trans\bm W^{1/2}(\bm y-\bm\mu^{(i)})
+  \end{bmatrix}
+\end{equation}
+providing the updated parameter values
+\begin{equation}
+  \label{eq:33}
+  \begin{bmatrix}\bm u^{(i+1)}\\\bm\beta^{(i+1)}\end{bmatrix}=
+  \begin{bmatrix}\bm u^{(i)}\\\bm\beta^{(i)}\end{bmatrix}+\lambda
+  \begin{bmatrix}\bm\delta_{\bm u}^{(i)}\\\bm\delta_{\bm\beta}^{(i)}
+  \end{bmatrix}
+\end{equation}
+where $\lambda>0$ is a step factor chosen to ensure that
+\begin{equation}
+  \label{eq:34}
+  (\bm y-\bm\mu^{(i+1)})\trans\bm W(\bm
+  y-\bm\mu^{(i+1)})+\|\bm u^{(i+1)}\|^2  <
+  (\bm y-\bm\mu^{(i)})\trans\bm W(\bm
+  y-\bm\mu^{(i)})+\|\bm u^{(i)}\|^2  .
+\end{equation}
+
+In the process of solving for the increments we form the sparse, lower
+triangular, Cholesky factor, $\bm L^{(i)}$, satisfying
+\begin{equation}
+  \label{eq:35}
+  \bm L^{(i)} {\bm L^{(i)}}\trans =
+  \bm P_{\bm Z}\left({\bm U^{(i)}}\trans\bm U^{(i)}+
+    \bm I_n\right)\bm P_{\bm Z}\trans .
+\end{equation}
+After each successful iteration, determining new values of the
+coefficients, $\bm u^{(i+1)}$ and $\bm\beta^{(i+1)}$, that reduce the
+penalized, weighted residual sum of squqres, we update the weights
+matrix to $\bm W(\bm\mu^{(i+1)})$ and the weighted Jacobians,
+$\bm U^{(i+1)}$ and $\bm V^{(i+1)}$, then iterate.  Convergence is
+determined according to the orthogonality convergence
+criterion~\citep[ch.~2]{bateswatts88:_nonlin}, suitably adjusted for
+the weights matrix and the penalty.
+
+\subsection{Weighted linear mixed models}
+\label{sec:weightedLMM}
+
+One of the simplest generalizations of linear mixed models is a
+weighted linear mixed model where $s=1$, the link function, $g$, and
+the nonlinear model function, $m$, are both the identity, the weights
+matrix, $\bm W$, is constant and the conditional distribution family
+is Gaussian.  That is, the conditional distribution can be written
+\begin{equation}
+  \label{eq:weightedLMM}
+    (\bc Y|\bc U=\bm u)\sim\mathcal{N}(\bm\gamma(\bm
+    u,\bm\theta,\bm\beta),\sigma^2\bm W^{-1})
+\end{equation}
+with discrepancy function
+\begin{equation}
+  \label{eq:wtddisc}
+  d(\bm u|\bm y,\bm\theta,\bm\beta)=\left\|\bm W^{1/2}(\bm
+    y-\bm Z\bm\Lambda(\bm\theta)\bm u-\bm X\bm\theta)\right\|^2+\|\bm u\|^2 .
+\end{equation}
+The conditional mode, $\tilde{\bm u}(\bm\theta)$, and the conditional
+estimate, $\tilde{\bm\beta}(\bm\theta)$, are the solutions to
+\begin{equation}
+  \begin{bmatrix}
+    \bm\Lambda\trans(\bm\theta)\bm Z\trans\bm W\bm Z\bm\Lambda(\theta)
+    +\bm I_q&\bm\Lambda\trans(\bm\theta)\bm Z\trans\bm W\bm X\\
+    \bm X\trans\bm W\bm Z\bm\Lambda(\theta) &\bm X\trans\bm W\bm X
+  \end{bmatrix}
+  \begin{bmatrix}
+    \tilde{\bm u}(\bm\theta)\\\tilde{\bm\beta}(\bm\theta)
+  \end{bmatrix} =
+  \begin{bmatrix}
+    \bm\Lambda\trans(\bm\theta)\bm Z\trans\bm W\bm y\\
+    \bm X\trans\bm W\bm y
+  \end{bmatrix} ,
+\end{equation}
+which can be solved directly, and the Cholesky factor, $\bm L_{\bm Z}(\bm\theta)$, satisfies
+\begin{equation}
+  \bm L_{\bm Z}(\bm\theta)\bm L_{\bm Z}(\bm\theta)\trans=\bm P_{\bm
+    Z}\left(\bm\Lambda\trans(\bm\theta)\bm Z\trans\bm W\bm
+    Z\bm\Lambda(\theta)+\bm I_q\right)\bm P_{\bm Z}\trans .
+\end{equation}
+
+The profiled log-likelihood, $\tilde{\ell}(\bm\theta|\bm y)$, is
+\begin{equation}
+  \label{eq:wtdprofilelik}
+  -2\tilde{\ell}(\bm\theta|\bm y)=
+  \log\left(\frac{|\bm L_{\bm Z}(\bm\theta)|^2}{|\bm W|}\right)+
+  n\left(1+\log\left(\frac{2\pi\tilde{d}(\bm
+        y,\bm\theta)}{n}\right)\right) .
+\end{equation}
+
+If the matrix $\bm W$ is fixed then we can ignore the term $|\bm W|$
+in (\ref{eq:wtdprofilelik}) when determining the MLE,
+$\widehat{\bm\theta}_L$.  However, in some models, we use a
+parameterized weight matrix, $\bm W(\bm\phi)$, and wish to determine
+the MLEs, $\widehat{\bm\phi}_L$ and $\widehat{\bm\theta}_L$
+simultaneously.  In these cases we must include the term involving
+$|\bm W(\bm\phi)|$ when evaluating the profiled log-likelihood.
+
+Note that we must define the parameterization of $\bm W(\bm\phi)$
+such that $\sigma^2$ and $\bm\phi$ are not a redundant
+parameterization of $\sigma^2\bm W(\bm\phi)$.  For example, we could
+require that the first diagonal element of $\bm W$ be unity.
+
+\subsection{Nonlinear mixed models}
+\label{sec:NLMMs}
+
+In an unweighted, nonlinear mixed model the conditional distribution is
+Gaussian, the link, $g$, is the identity and the weights matrix, $\bm
+W=\bm I_n$.  That is,
+\begin{equation}
+  \label{eq:conddistNLMM}
+  (\bc Y|\bc U=\bm u)\sim\mathcal{N}(\bm m(\bm\gamma),\sigma^2\bm I_n)
+\end{equation}
+with discrepancy function
+\begin{equation}
+  \label{eq:discNLMM}
+  d(\bm u|\bm y,\bm\theta,\bm\beta)=
+  \|\bm y-\bm\mu\|^2 + \|\bm u\|^2 .
+\end{equation}
+For a given value of $\bm\theta$ we determine the conditional modes,
+$\tilde{\bm u}(\bm\theta)$ and $\tilde{\bm\beta}(\bm\theta)$, as the
+solution to the penalized nonlinear least squares problem
+\begin{equation}
+  \label{eq:NLMMpnls}
+  \begin{bmatrix}
+    \tilde{\bm u}(\bm\theta)\\
+    \tilde{\bm\beta}(\bm\theta)
+  \end{bmatrix} = \arg\min_{\bm u,\bm\theta}d(\bm u|\bm y,\bm\theta,\bm\beta)
+\end{equation}
+and we write the minimum discrepancy, given $\bm y$ and $\bm\theta$,
+as
+\begin{equation}
+  \label{eq:25}
+  \tilde{d}(\bm y,\bm\theta)=d(\tilde{\bm u}(\bm\theta)|\bm
+  y,\bm\theta,\tilde{\bm\beta}(\bm\theta)).
+\end{equation}
+
+Let $\tilde{\bm L}_Z(\bm\theta)$ and $\tilde{\bm L}_X(\bm\theta)$ be
+the Cholesky factors at $\bm\theta$, $\tilde{\bm\beta}(\bm\theta)$ and
+$\tilde{\bm u}(\bm\theta)$.  Then the \emph{Laplace approximation} to
+the log-likelihood is
+\begin{equation}
+  \label{eq:36}
+  -2\ell_P(\bm\theta,\bm\beta,\sigma|\bm y)\approx
+  n\log(2\pi\sigma^2)+\log(|\tilde{\bm L}_{\bm Z}|^2)+
+  \frac{\tilde{d}(\bm y,\bm\theta) +
+    \left\|\tilde{\bm L}_{\bm X}\trans(\bm\beta-\tilde{\bm\beta})\right\|^2}{\sigma^2},
+\end{equation}
+producing the approximate profiled log-likelihood,
+$\tilde{\ell}_P(\bm\theta|\bm y)$,
+\begin{equation}
+  \label{eq:37}
+  -2\tilde{\ell}_P(\bm\theta|\bm y)\approx
+  \log(|\tilde{\bm L}_{\bm Z}|^2)+n\left(1+\log(2\pi
+    \tilde{d}(\bm y,\bm\theta)/n) \right).
+\end{equation}
+
+\subsubsection{Nonlinear mixed model summary}
+\label{sec:nonl-mixed-model}
+
+In a nonlinear mixed model we determine the parameter estimate,
+$\widehat{\bm\theta}_P$, from the Laplace approximation to the
+log-likelihood as
+\begin{equation}
+  \label{eq:38}
+  \widehat{\bm\theta}_P =
+  \arg\max_{\bm\theta}\tilde{\ell}_P(\bm\theta|\bm y)
+  =\arg\min_{\bm\theta}
+  \log(|\tilde{\bm L}_{\bm Z}|^2)+
+  n\left(1+\log(2\pi
+    \tilde{d}(\bm y,\bm\theta)/n) \right).
+\end{equation}
+Each evaluation of $\tilde{\ell}_P(\bm\theta|\bm y)$ requires a
+solving the penalized nonlinear least squares problem
+(\ref{eq:NLMMpnls}) simultaneously with respect to both sets of
+coefficients, $\bm u$ and $\bm\beta$, in the linear predictor,
+$\bm\gamma$.
+
+For a weighted nonlinear mixed model with fixed weights, $\bm W$, we
+replace the unweighted discrepancy function $d(\bm u|\bm
+y,\bm\theta,\bm\beta)$ with the weighted discrepancy function,
+%% Finish this off
+
+\section{Details of the implementation}
+\label{sec:details}
+
+\subsection{Implementation details for linear mixed models}
+\label{sec:impl-line-mixed}
+
+The crucial step in implementing algorithms for determining ML or REML
+estimates of the parameters in a linear mixed model is evaluating the
+factorization (\ref{eq:16}) for any $\bm\theta$ satisfying
+$\bm\theta_L\le\bm\theta\le\bm\theta_U$.  We will assume that $\bm Z$
+is sparse as is $\bm Z\bm\Lambda(\bm\theta)$.
+
+When $\bm X$ is not sparse we will use the factorization (\ref{eq:16})
+setting $\bm P_{\bm X}=\bm I_p$ and storing $\bm L_{\bm X\bm Z}$ and
+$\bm L_{\bm X}$ as dense matrices.  The permutation matrix $\bm P_{\bm
+  Z}$ is determined from the pattern of non-zeros in $\bm
+Z\bm\Lambda(\bm\theta)$ which is does not depend on $\bm\theta$, as
+long as $\bm\theta$ is not on the boundary.  In fact, in most cases
+the pattern of non-zeros in $\bm Z\bm\Lambda(\bm\theta)$ is the same
+as the pattern of non-zeros in $\bm Z$. For many models, in particular
+models with scalar random effects (described later), the matrix
+$\bm\Lambda(\bm\theta)$ is diagonal.
+
+Given a value of $\bm\theta$ we determine the Cholesky factor $\bm
+L_{\bm Z}$ satisfying
+\begin{equation}
+  \label{eq:LZ}
+  \bm L_{\bm Z}\bm L_{\bm Z}\trans=\bm P_{\bm Z}(
+  \bm\Lambda\trans(\bm\theta)\bm Z\trans\bm Z\bm\Lambda(\theta)
+    +\bm I_q)\bm P_{\bm Z}\trans .
+\end{equation}
+The CHOLMOD package allows for $\bm L_{\bm Z}$ to be calculated
+directly from $\bm\Lambda\trans(\bm\theta)\bm Z\trans$ or from
+$\bm\Lambda\trans(\bm\theta)\bm Z\trans\bm Z\bm\Lambda(\theta)$.  The
+choice in implementation is whether to store $\bm Z\trans$ and update
+it to $\bm\Lambda\trans(\bm\theta)\bm Z$ or to store $\bm Z\trans\bm
+Z$ and use it to form $\bm\Lambda\trans(\bm\theta)\bm Z\trans\bm
+Z\bm\Lambda(\theta)$ at each evaluation.
+
+In the \package{lme4} package we store $\bm Z\trans$ and use it to
+form $\bm\Lambda\trans(\bm\theta)\bm Z\trans$ from which $\bm L_{\bm
+  Z}$ is evaluated.  There are two reasons for this choice.  First,
+the calculations for the more general forms of mixed models cannot be
+reduced to calculations involving $\bm Z\trans\bm Z$ and by expressing
+these calculations in terms of $\bm\Lambda(\bm\theta)\bm Z\trans$ for
+linear mixed models we can reuse the code for the more general
+models.  Second, the calculation of $\bm\Lambda(\bm\theta)\trans\left(\bm
+  Z\trans\bm Z\right)\bm\Lambda(\bm\theta)$ from $\bm Z\trans\bm Z$ is
+complicated compared to the calculation of
+$\bm\Lambda(\bm\theta)\trans\bm Z\trans$ from $\bm Z\trans$.
+
+This choice is disadvantageous when $n\gg q$ because $\bm Z\trans$ is
+much larger than $\bm Z\trans\bm Z$, even when they are stored as
+sparse matrices.  Evaluation of $\bm L_{\bm Z}$ directly from $\bm
+Z\trans$ requires more storage and more calculation that evaluating
+$\bm L_{\bm Z}$ from $\bm Z\trans\bm Z$.
+
+Next we evaluate $\bm L_{\bm X\bm Z}\trans$ as the solution to
+\begin{equation}
+  \label{eq:LXZ}
+  \bm L_{\bm Z}\bm L_{\bm X\bm Z}\trans=\bm P_{\bm
+    Z}\bm\Lambda\trans(\bm\theta)\bm Z\trans\bm X .
+\end{equation}
+Again we have the choice of calculating and storing $\bm Z\trans\bm X$
+or storing $\bm X$ and using it to reevaluate $\bm Z\trans\bm X$.  In
+the \package{lme4} package we store $\bm X$, because the calculations
+for the more general models cannot be expressed in terms of $\bm Z\trans\bm X$.
+
+Finally $\bm L_{\bm X}$ is evaluated as the (dense) solution to
+\begin{equation}
+  \label{eq:LX}
+  \bm L_{\bm X}\bm L_{\bm X}\trans=
+  \bm X\trans\bm X-\bm L_{\bm X\bm Z}\bm L_{\bm X\bm Z} .
+\end{equation}
+from which $\tilde{\bm\beta}$ can be determined as the
+solution to dense system
+\begin{equation}
+  \label{eq:tildebeta}
+  \bm L_{\bm X}\bm L_{\bm X}\tilde{\bm\beta}=\bm X\trans\bm y
+\end{equation}
+and $\tilde{\bm u}$ as the solution to the sparse system
+\begin{equation}
+  \label{eq:tildeu}
+  \bm L_{\bm Z}\bm L_{\bm Z}\tilde{u}=\bm\Lambda\trans\bm Z\trans\bm y
+\end{equation}
+
+For many models, in particular models with scalar random effects,
+which are described later, the matrix $\bm\Lambda(\bm\theta)$ is
+diagonal.  For such a model, if both $\bm Z$ and $\bm X$ are sparse
+and we plan to use the REML criterion then we create and store
+\begin{equation}
+  \label{eq:8}
+  \bm A=
+  \begin{bmatrix}
+    \bm Z\trans\bm Z & \bm Z\trans\bm X\\
+    \bm X\trans\bm Z & \bm X\trans\bm X
+  \end{bmatrix}\quad\text{and}\quad
+  \bm c =\begin{bmatrix}\bm Z\trans\bm y\\\bm X\trans\bm y\end{bmatrix}
+\end{equation}
+and determine a fill-reducing permutation, $\bm P$, for $\bm A$.
+Given a value of $\bm\theta$ we create the factorization
+\begin{equation}
+  \label{eq:26}
+  \bm L(\bm\theta)\bm L(\bm\theta)\trans=\bm P\left(
+    \begin{bmatrix}
+      \bm\Lambda(\bm\theta) & \bm0\\\bm0&\bm I_p
+    \end{bmatrix} \bm A
+    \begin{bmatrix}
+      \bm\Lambda(\bm\theta) & \bm0\\\bm0&\bm I_p
+    \end{bmatrix}+
+    \begin{bmatrix}\bm I_q&\bm0\\\bm0&\bm0\end{bmatrix}\right)
+  \bm P\trans
+\end{equation}
+solve for $\tilde{\bm u}(\bm\theta)$ and
+$\tilde{\bm\beta}(\bm\theta)$ in
+\begin{equation}
+  \label{eq:28}
+  \bm L\bm L\trans\bm P
+  \begin{bmatrix}
+    \tilde{\bm u}(\bm\theta)\\\tilde{\bm\beta}(\bm\theta)
+  \end{bmatrix}=
+  \bm P
+  \begin{bmatrix}\bm\Lambda(\bm\theta) & \bm0\\\bm0&\bm I_p
+  \end{bmatrix} \bm c
+\end{equation}
+then evaluate $\tilde{d}(\bm y|\bm\theta)$
+and the profiled REML criterion as
+\begin{equation}
+  \label{eq:27}
+  \tilde{d}_R(\bm\theta|\bm y)=\log(|\bm L(\bm\theta)|^2)+
+  (n-p)\left(1+\log\left(\frac{2\pi\tilde{d}(\bm y|\bm\theta)}
+      {n-p}\right)\right) .
+\end{equation}
+
+\bibliography{lme4}
+\appendix{}
+
+\section{Notation}
+\label{sec:notation}
+
+\subsection{Random variables in the model}
+\label{sec:rand-vari-model}
+\begin{description}
+\item[$\bc B$] Random-effects vector of dimension $q$,
+  $\bc{B}\sim\mathcal{N}(\bm 0,\sigma^2\bm V(\bm\theta)\bm
+  V(\bm\theta)\trans)$.
+\item[$\bm U$] ``Spherical'' random-effects vector of dimension $q$,
+  $\bc U\sim\mathcal{N}(\bm 0,\sigma^2\bm I_q)$, $\bc B=\bm
+  V(\bm\theta)\bc U$.
+\item[$\bc Y$] Response vector of dimension $n$.
+\end{description}
+
+\subsection{Parameters of the model}
+\label{sec:parameters-model}
+\begin{description}
+\item[$\bm\beta$] Fixed-effects parameters (dimension $p$).
+\item[$\bm\theta$] Parameters determining the left factor,
+  $\bm\Lambda(\bm\theta)$ of the relative covariance matrix of $\bc B$
+  (dimension $m$).
+\item[$\sigma$] the common scale parameter - not used in some
+  generalized linear mixed models and generalized nonlinear mixed
+  models.
+\end{description}
+
+\subsection{Dimensions}
+\label{sec:dimensions}
+\begin{description}
+\item[$m$] dimension of the parameter $\bm\theta$.
+\item[$n$] dimension of the response vector, $\bm y$, and the random
+  variable, $\bm{\mathcal{Y}}$.
+\item[$p$] dimension of the fixed-effects parameter, $\bm\beta$.
+\item[$q$] dimension of the random effects, $\bc B$ or $\bc U$.
+\item[$s$] dimension of the parameter vector, $\bm\phi$, in the
+  nonlinear model function.
+\end{description}
+
+\subsection{Matrices}
+\label{sec:matrices}
+\begin{description}
+\item[$\bm L$] Left Cholesky factor of a positive-definite symmetric
+  matrix.  $\bm L_{\bm Z}$ is $q\times q$; $\bm L_{\bm X}$ is $p\times p$.
+\item[$\bm P$] Fill-reducing permutation for the random effects model
+  matrix. (Size $q\times q$.)
+\item[$\bm V$] Left factor of the relative covariance matrix of the
+  random effects. (Size $q\times q$.)
+\item[$\bm X$] Model matrix for the fixed-effects parameters,
+  $\bm\beta$. (Size $(ns)\times p$.)
+\item[$\bm Z$] Model matrix for the random effects. (Size $(ns)\times q$.)
+\end{description}
+
+\section{Integrating a quadratic deviance expression}
+\label{sec:integr-quadr-devi}
+
+In (\ref{eq:6}) we defined the likelihood of the parameters given the
+observed data as
+\begin{displaymath}
+  L(\bm\theta,\bm\beta,\sigma|\bm y) =
+  \int_{\mathbb{R}^q}h(\bm u|\bm y,\bm\theta,\bm\beta,\sigma)\,d\bm u .
+\end{displaymath}
+which is often alarmingly described as ``an intractable integral''.
+In point of fact, this integral can be evaluated exactly in the case
+of a linear mixed model and can be approximated quite accurately for
+other forms of mixed models.
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmerperf.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmerperf.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmerperf.html	(revision 2476)
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+
+<meta charset="utf-8">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="pandoc" />
+
+
+
+<title></title>
+
+<script src="data:application/x-javascript,%2F%2A%21%20jQuery%20v1%2E11%2E0%20%7C%20%28c%29%202005%2C%202014%20jQuery%20Foundation%2C%20Inc%2E%20%7C%20jquery%2Eorg%2Flicense%20%2A%2F%0A%21function%28a%2Cb%29%7B%22object%22%3D%3Dtypeof%20module%26%26%22object%22%3D%3Dtypeof%20module%2Eexports%3Fmodule%2Eexports%3Da%2Edocument%3Fb%28a%2C%210%29%3Afunction%28a%29%7Bif%28%21a%2Edocument%29throw%20new%20Error%28%22jQuery%20requires%20a%20window%20with%20a%20document%22%29%3Breturn%20b%28a%29%7D%3Ab%28a%29%7D%28%22undefined%22%21%3Dtypeof%20window%3Fwindow%3Athis%2Cfunction%28a%2Cb%29%7Bvar%20c%3D%5B%5D%2Cd%3Dc%2Eslice%2Ce%3Dc%2Econcat%2Cf%3Dc%2Epush%2Cg%3Dc%2EindexOf%2Ch%3D%7B%7D%2Ci%3Dh%2EtoString%2Cj%3Dh%2EhasOwnProperty%2Ck%3D%22%22%2Etrim%2Cl%3D%7B%7D%2Cm%3D%221%2E11%2E0%22%2Cn%3Dfunction%28a%2Cb%29%7Breturn%20new%20n%2Efn%2Einit%28a%2Cb%29%7D%2Co%3D%2F%5E%5B%5Cs%5CuFEFF%5CxA0%5D%2B%7C%5B%5Cs%5CuFEFF%5CxA0%5D%2B%24%2Fg%2Cp%3D%2F%5E%2Dms%2D%2F%2Cq%3D%2F%2D%28%5B%5Cda%2Dz%5D%29%2Fgi%2Cr%3Dfunction%28a%2Cb%29%7Breturn%20b%2EtoUpperCase%28%29%7D%3Bn%2Efn%3Dn%2Eprototype%3D%7Bjquery%3Am%2Cconstructor%3An%2Cselector%3A%22%22%2Clength%3A0%2CtoArray%3Afunction%28%29%7Breturn%20d%2Ecall%28this%29%7D%2Cget%3Afunction%28a%29%7Breturn%20null%21%3Da%3F0%3Ea%3Fthis%5Ba%2Bthis%2Elength%5D%3Athis%5Ba%5D%3Ad%2Ecall%28this%29%7D%2CpushStack%3Afunction%28a%29%7Bvar%20b%3Dn%2Emerge%28this%2Econstructor%28%29%2Ca%29%3Breturn%20b%2EprevObject%3Dthis%2Cb%2Econtext%3Dthis%2Econtext%2Cb%7D%2Ceach%3Afunction%28a%2Cb%29%7Breturn%20n%2Eeach%28this%2Ca%2Cb%29%7D%2Cmap%3Afunction%28a%29%7Breturn%20this%2EpushStack%28n%2Emap%28this%2Cfunction%28b%2Cc%29%7Breturn%20a%2Ecall%28b%2Cc%2Cb%29%7D%29%29%7D%2Cslice%3Afunction%28%29%7Breturn%20this%2EpushStack%28d%2Eapply%28this%2Carguments%29%29%7D%2Cfirst%3Afunction%28%29%7Breturn%20this%2Eeq%280%29%7D%2Clast%3Afunction%28%29%7Breturn%20this%2Eeq%28%2D1%29%7D%2Ceq%3Afunction%28a%29%7Bvar%20b%3Dthis%2Elength%2Cc%3D%2Ba%2B%280%3Ea%3Fb%3A0%29%3Breturn%20this%2EpushStack%28c%3E%3D0%26%26b%3Ec%3F%5Bthis%5Bc%5D%5D%3A%5B%5D%29%7D%2Cend%3Afunction%28%29%7Breturn%20this%2EprevObject%7C%7Cthis%2Econstructor%28null%29%7D%2Cpush%3Af%2Csort%3Ac%2Esort%2Csplice%3Ac%2Esplice%7D%2Cn%2Eextend%3Dn%2Efn%2Eextend%3Dfunction%28%29%7Bvar%20a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%3Darguments%5B0%5D%7C%7C%7B%7D%2Ch%3D1%2Ci%3Darguments%2Elength%2Cj%3D%211%3Bfor%28%22boolean%22%3D%3Dtypeof%20g%26%26%28j%3Dg%2Cg%3Darguments%5Bh%5D%7C%7C%7B%7D%2Ch%2B%2B%29%2C%22object%22%3D%3Dtypeof%20g%7C%7Cn%2EisFunction%28g%29%7C%7C%28g%3D%7B%7D%29%2Ch%3D%3D%3Di%26%26%28g%3Dthis%2Ch%2D%2D%29%3Bi%3Eh%3Bh%2B%2B%29if%28null%21%3D%28e%3Darguments%5Bh%5D%29%29for%28d%20in%20e%29a%3Dg%5Bd%5D%2Cc%3De%5Bd%5D%2Cg%21%3D%3Dc%26%26%28j%26%26c%26%26%28n%2EisPlainObject%28c%29%7C%7C%28b%3Dn%2EisArray%28c%29%29%29%3F%28b%3F%28b%3D%211%2Cf%3Da%26%26n%2EisArray%28a%29%3Fa%3A%5B%5D%29%3Af%3Da%26%26n%2EisPlainObject%28a%29%3Fa%3A%7B%7D%2Cg%5Bd%5D%3Dn%2Eextend%28j%2Cf%2Cc%29%29%3Avoid%200%21%3D%3Dc%26%26%28g%5Bd%5D%3Dc%29%29%3Breturn%20g%7D%2Cn%2Eextend%28%7Bexpando%3A%22jQuery%22%2B%28m%2BMath%2Erandom%28%29%29%2Ereplace%28%2F%5CD%2Fg%2C%22%22%29%2CisReady%3A%210%2Cerror%3Afunction%28a%29%7Bthrow%20new%20Error%28a%29%7D%2Cnoop%3Afunction%28%29%7B%7D%2CisFunction%3Afunction%28a%29%7Breturn%22function%22%3D%3D%3Dn%2Etype%28a%29%7D%2CisArray%3AArray%2EisArray%7C%7Cfunction%28a%29%7Breturn%22array%22%3D%3D%3Dn%2Etype%28a%29%7D%2CisWindow%3Afunction%28a%29%7Breturn%20null%21%3Da%26%26a%3D%3Da%2Ewindow%7D%2CisNumeric%3Afunction%28a%29%7Breturn%20a%2DparseFloat%28a%29%3E%3D0%7D%2CisEmptyObject%3Afunction%28a%29%7Bvar%20b%3Bfor%28b%20in%20a%29return%211%3Breturn%210%7D%2CisPlainObject%3Afunction%28a%29%7Bvar%20b%3Bif%28%21a%7C%7C%22object%22%21%3D%3Dn%2Etype%28a%29%7C%7Ca%2EnodeType%7C%7Cn%2EisWindow%28a%29%29return%211%3Btry%7Bif%28a%2Econstructor%26%26%21j%2Ecall%28a%2C%22constructor%22%29%26%26%21j%2Ecall%28a%2Econstructor%2Eprototype%2C%22isPrototypeOf%22%29%29return%211%7Dcatch%28c%29%7Breturn%211%7Dif%28l%2EownLast%29for%28b%20in%20a%29return%20j%2Ecall%28a%2Cb%29%3Bfor%28b%20in%20a%29%3Breturn%20void%200%3D%3D%3Db%7C%7Cj%2Ecall%28a%2Cb%29%7D%2Ctype%3Afunction%28a%29%7Breturn%20null%3D%3Da%3Fa%2B%22%22%3A%22object%22%3D%3Dtypeof%20a%7C%7C%22function%22%3D%3Dtypeof%20a%3Fh%5Bi%2Ecall%28a%29%5D%7C%7C%22object%22%3Atypeof%20a%7D%2CglobalEval%3Afunction%28b%29%7Bb%26%26n%2Etrim%28b%29%26%26%28a%2EexecScript%7C%7Cfunction%28b%29%7Ba%2Eeval%2Ecall%28a%2Cb%29%7D%29%28b%29%7D%2CcamelCase%3Afunction%28a%29%7Breturn%20a%2Ereplace%28p%2C%22ms%2D%22%29%2Ereplace%28q%2Cr%29%7D%2CnodeName%3Afunction%28a%2Cb%29%7Breturn%20a%2EnodeName%26%26a%2EnodeName%2EtoLowerCase%28%29%3D%3D%3Db%2EtoLowerCase%28%29%7D%2Ceach%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%2Ce%3D0%2Cf%3Da%2Elength%2Cg%3Ds%28a%29%3Bif%28c%29%7Bif%28g%29%7Bfor%28%3Bf%3Ee%3Be%2B%2B%29if%28d%3Db%2Eapply%28a%5Be%5D%2Cc%29%2Cd%3D%3D%3D%211%29break%7Delse%20for%28e%20in%20a%29if%28d%3Db%2Eapply%28a%5Be%5D%2Cc%29%2Cd%3D%3D%3D%211%29break%7Delse%20if%28g%29%7Bfor%28%3Bf%3Ee%3Be%2B%2B%29if%28d%3Db%2Ecall%28a%5Be%5D%2Ce%2Ca%5Be%5D%29%2Cd%3D%3D%3D%211%29break%7Delse%20for%28e%20in%20a%29if%28d%3Db%2Ecall%28a%5Be%5D%2Ce%2Ca%5Be%5D%29%2Cd%3D%3D%3D%211%29break%3Breturn%20a%7D%2Ctrim%3Ak%26%26%21k%2Ecall%28%22%5Cufeff%5Cxa0%22%29%3Ffunction%28a%29%7Breturn%20null%3D%3Da%3F%22%22%3Ak%2Ecall%28a%29%7D%3Afunction%28a%29%7Breturn%20null%3D%3Da%3F%22%22%3A%28a%2B%22%22%29%2Ereplace%28o%2C%22%22%29%7D%2CmakeArray%3Afunction%28a%2Cb%29%7Bvar%20c%3Db%7C%7C%5B%5D%3Breturn%20null%21%3Da%26%26%28s%28Object%28a%29%29%3Fn%2Emerge%28c%2C%22string%22%3D%3Dtypeof%20a%3F%5Ba%5D%3Aa%29%3Af%2Ecall%28c%2Ca%29%29%2Cc%7D%2CinArray%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%3Bif%28b%29%7Bif%28g%29return%20g%2Ecall%28b%2Ca%2Cc%29%3Bfor%28d%3Db%2Elength%2Cc%3Dc%3F0%3Ec%3FMath%2Emax%280%2Cd%2Bc%29%3Ac%3A0%3Bd%3Ec%3Bc%2B%2B%29if%28c%20in%20b%26%26b%5Bc%5D%3D%3D%3Da%29return%20c%7Dreturn%2D1%7D%2Cmerge%3Afunction%28a%2Cb%29%7Bvar%20c%3D%2Bb%2Elength%2Cd%3D0%2Ce%3Da%2Elength%3Bwhile%28c%3Ed%29a%5Be%2B%2B%5D%3Db%5Bd%2B%2B%5D%3Bif%28c%21%3D%3Dc%29while%28void%200%21%3D%3Db%5Bd%5D%29a%5Be%2B%2B%5D%3Db%5Bd%2B%2B%5D%3Breturn%20a%2Elength%3De%2Ca%7D%2Cgrep%3Afunction%28a%2Cb%2Cc%29%7Bfor%28var%20d%2Ce%3D%5B%5D%2Cf%3D0%2Cg%3Da%2Elength%2Ch%3D%21c%3Bg%3Ef%3Bf%2B%2B%29d%3D%21b%28a%5Bf%5D%2Cf%29%2Cd%21%3D%3Dh%26%26e%2Epush%28a%5Bf%5D%29%3Breturn%20e%7D%2Cmap%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%2Cf%3D0%2Cg%3Da%2Elength%2Ch%3Ds%28a%29%2Ci%3D%5B%5D%3Bif%28h%29for%28%3Bg%3Ef%3Bf%2B%2B%29d%3Db%28a%5Bf%5D%2Cf%2Cc%29%2Cnull%21%3Dd%26%26i%2Epush%28d%29%3Belse%20for%28f%20in%20a%29d%3Db%28a%5Bf%5D%2Cf%2Cc%29%2Cnull%21%3Dd%26%26i%2Epush%28d%29%3Breturn%20e%2Eapply%28%5B%5D%2Ci%29%7D%2Cguid%3A1%2Cproxy%3Afunction%28a%2Cb%29%7Bvar%20c%2Ce%2Cf%3Breturn%22string%22%3D%3Dtypeof%20b%26%26%28f%3Da%5Bb%5D%2Cb%3Da%2Ca%3Df%29%2Cn%2EisFunction%28a%29%3F%28c%3Dd%2Ecall%28arguments%2C2%29%2Ce%3Dfunction%28%29%7Breturn%20a%2Eapply%28b%7C%7Cthis%2Cc%2Econcat%28d%2Ecall%28arguments%29%29%29%7D%2Ce%2Eguid%3Da%2Eguid%3Da%2Eguid%7C%7Cn%2Eguid%2B%2B%2Ce%29%3Avoid%200%7D%2Cnow%3Afunction%28%29%7Breturn%2Bnew%20Date%7D%2Csupport%3Al%7D%29%2Cn%2Eeach%28%22Boolean%20Number%20String%20Function%20Array%20Date%20RegExp%20Object%20Error%22%2Esplit%28%22%20%22%29%2Cfunction%28a%2Cb%29%7Bh%5B%22%5Bobject%20%22%2Bb%2B%22%5D%22%5D%3Db%2EtoLowerCase%28%29%7D%29%3Bfunction%20s%28a%29%7Bvar%20b%3Da%2Elength%2Cc%3Dn%2Etype%28a%29%3Breturn%22function%22%3D%3D%3Dc%7C%7Cn%2EisWindow%28a%29%3F%211%3A1%3D%3D%3Da%2EnodeType%26%26b%3F%210%3A%22array%22%3D%3D%3Dc%7C%7C0%3D%3D%3Db%7C%7C%22number%22%3D%3Dtypeof%20b%26%26b%3E0%26%26b%2D1%20in%20a%7Dvar%20t%3Dfunction%28a%29%7Bvar%20b%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%2Ci%2Cj%2Ck%2Cl%2Cm%2Cn%2Co%2Cp%2Cq%2Cr%2Cs%3D%22sizzle%22%2B%2Dnew%20Date%2Ct%3Da%2Edocument%2Cu%3D0%2Cv%3D0%2Cw%3Deb%28%29%2Cx%3Deb%28%29%2Cy%3Deb%28%29%2Cz%3Dfunction%28a%2Cb%29%7Breturn%20a%3D%3D%3Db%26%26%28j%3D%210%29%2C0%7D%2CA%3D%22undefined%22%2CB%3D1%3C%3C31%2CC%3D%7B%7D%2EhasOwnProperty%2CD%3D%5B%5D%2CE%3DD%2Epop%2CF%3DD%2Epush%2CG%3DD%2Epush%2CH%3DD%2Eslice%2CI%3DD%2EindexOf%7C%7Cfunction%28a%29%7Bfor%28var%20b%3D0%2Cc%3Dthis%2Elength%3Bc%3Eb%3Bb%2B%2B%29if%28this%5Bb%5D%3D%3D%3Da%29return%20b%3Breturn%2D1%7D%2CJ%3D%22checked%7Cselected%7Casync%7Cautofocus%7Cautoplay%7Ccontrols%7Cdefer%7Cdisabled%7Chidden%7Cismap%7Cloop%7Cmultiple%7Copen%7Creadonly%7Crequired%7Cscoped%22%2CK%3D%22%5B%5C%5Cx20%5C%5Ct%5C%5Cr%5C%5Cn%5C%5Cf%5D%22%2CL%3D%22%28%3F%3A%5C%5C%5C%5C%2E%7C%5B%5C%5Cw%2D%5D%7C%5B%5E%5C%5Cx00%2D%5C%5Cxa0%5D%29%2B%22%2CM%3DL%2Ereplace%28%22w%22%2C%22w%23%22%29%2CN%3D%22%5C%5C%5B%22%2BK%2B%22%2A%28%22%2BL%2B%22%29%22%2BK%2B%22%2A%28%3F%3A%28%5B%2A%5E%24%7C%21%7E%5D%3F%3D%29%22%2BK%2B%22%2A%28%3F%3A%28%5B%27%5C%22%5D%29%28%28%3F%3A%5C%5C%5C%5C%2E%7C%5B%5E%5C%5C%5C%5C%5D%29%2A%3F%29%5C%5C3%7C%28%22%2BM%2B%22%29%7C%29%7C%29%22%2BK%2B%22%2A%5C%5C%5D%22%2CO%3D%22%3A%28%22%2BL%2B%22%29%28%3F%3A%5C%5C%28%28%28%5B%27%5C%22%5D%29%28%28%3F%3A%5C%5C%5C%5C%2E%7C%5B%5E%5C%5C%5C%5C%5D%29%2A%3F%29%5C%5C3%7C%28%28%3F%3A%5C%5C%5C%5C%2E%7C%5B%5E%5C%5C%5C%5C%28%29%5B%5C%5C%5D%5D%7C%22%2BN%2Ereplace%283%2C8%29%2B%22%29%2A%29%7C%2E%2A%29%5C%5C%29%7C%29%22%2CP%3Dnew%20RegExp%28%22%5E%22%2BK%2B%22%2B%7C%28%28%3F%3A%5E%7C%5B%5E%5C%5C%5C%5C%5D%29%28%3F%3A%5C%5C%5C%5C%2E%29%2A%29%22%2BK%2B%22%2B%24%22%2C%22g%22%29%2CQ%3Dnew%20RegExp%28%22%5E%22%2BK%2B%22%2A%2C%22%2BK%2B%22%2A%22%29%2CR%3Dnew%20RegExp%28%22%5E%22%2BK%2B%22%2A%28%5B%3E%2B%7E%5D%7C%22%2BK%2B%22%29%22%2BK%2B%22%2A%22%29%2CS%3Dnew%20RegExp%28%22%3D%22%2BK%2B%22%2A%28%5B%5E%5C%5C%5D%27%5C%22%5D%2A%3F%29%22%2BK%2B%22%2A%5C%5C%5D%22%2C%22g%22%29%2CT%3Dnew%20RegExp%28O%29%2CU%3Dnew%20RegExp%28%22%5E%22%2BM%2B%22%24%22%29%2CV%3D%7BID%3Anew%20RegExp%28%22%5E%23%28%22%2BL%2B%22%29%22%29%2CCLASS%3Anew%20RegExp%28%22%5E%5C%5C%2E%28%22%2BL%2B%22%29%22%29%2CTAG%3Anew%20RegExp%28%22%5E%28%22%2BL%2Ereplace%28%22w%22%2C%22w%2A%22%29%2B%22%29%22%29%2CATTR%3Anew%20RegExp%28%22%5E%22%2BN%29%2CPSEUDO%3Anew%20RegExp%28%22%5E%22%2BO%29%2CCHILD%3Anew%20RegExp%28%22%5E%3A%28only%7Cfirst%7Clast%7Cnth%7Cnth%2Dlast%29%2D%28child%7Cof%2Dtype%29%28%3F%3A%5C%5C%28%22%2BK%2B%22%2A%28even%7Codd%7C%28%28%5B%2B%2D%5D%7C%29%28%5C%5Cd%2A%29n%7C%29%22%2BK%2B%22%2A%28%3F%3A%28%5B%2B%2D%5D%7C%29%22%2BK%2B%22%2A%28%5C%5Cd%2B%29%7C%29%29%22%2BK%2B%22%2A%5C%5C%29%7C%29%22%2C%22i%22%29%2Cbool%3Anew%20RegExp%28%22%5E%28%3F%3A%22%2BJ%2B%22%29%24%22%2C%22i%22%29%2CneedsContext%3Anew%20RegExp%28%22%5E%22%2BK%2B%22%2A%5B%3E%2B%7E%5D%7C%3A%28even%7Codd%7Ceq%7Cgt%7Clt%7Cnth%7Cfirst%7Clast%29%28%3F%3A%5C%5C%28%22%2BK%2B%22%2A%28%28%3F%3A%2D%5C%5Cd%29%3F%5C%5Cd%2A%29%22%2BK%2B%22%2A%5C%5C%29%7C%29%28%3F%3D%5B%5E%2D%5D%7C%24%29%22%2C%22i%22%29%7D%2CW%3D%2F%5E%28%3F%3Ainput%7Cselect%7Ctextarea%7Cbutton%29%24%2Fi%2CX%3D%2F%5Eh%5Cd%24%2Fi%2CY%3D%2F%5E%5B%5E%7B%5D%2B%5C%7B%5Cs%2A%5C%5Bnative%20%5Cw%2F%2CZ%3D%2F%5E%28%3F%3A%23%28%5B%5Cw%2D%5D%2B%29%7C%28%5Cw%2B%29%7C%5C%2E%28%5B%5Cw%2D%5D%2B%29%29%24%2F%2C%24%3D%2F%5B%2B%7E%5D%2F%2C%5F%3D%2F%27%7C%5C%5C%2Fg%2Cab%3Dnew%20RegExp%28%22%5C%5C%5C%5C%28%5B%5C%5Cda%2Df%5D%7B1%2C6%7D%22%2BK%2B%22%3F%7C%28%22%2BK%2B%22%29%7C%2E%29%22%2C%22ig%22%29%2Cbb%3Dfunction%28a%2Cb%2Cc%29%7Bvar%20d%3D%220x%22%2Bb%2D65536%3Breturn%20d%21%3D%3Dd%7C%7Cc%3Fb%3A0%3Ed%3FString%2EfromCharCode%28d%2B65536%29%3AString%2EfromCharCode%28d%3E%3E10%7C55296%2C1023%26d%7C56320%29%7D%3Btry%7BG%2Eapply%28D%3DH%2Ecall%28t%2EchildNodes%29%2Ct%2EchildNodes%29%2CD%5Bt%2EchildNodes%2Elength%5D%2EnodeType%7Dcatch%28cb%29%7BG%3D%7Bapply%3AD%2Elength%3Ffunction%28a%2Cb%29%7BF%2Eapply%28a%2CH%2Ecall%28b%29%29%7D%3Afunction%28a%2Cb%29%7Bvar%20c%3Da%2Elength%2Cd%3D0%3Bwhile%28a%5Bc%2B%2B%5D%3Db%5Bd%2B%2B%5D%29%3Ba%2Elength%3Dc%2D1%7D%7D%7Dfunction%20db%28a%2Cb%2Cd%2Ce%29%7Bvar%20f%2Cg%2Ch%2Ci%2Cj%2Cm%2Cp%2Cq%2Cu%2Cv%3Bif%28%28b%3Fb%2EownerDocument%7C%7Cb%3At%29%21%3D%3Dl%26%26k%28b%29%2Cb%3Db%7C%7Cl%2Cd%3Dd%7C%7C%5B%5D%2C%21a%7C%7C%22string%22%21%3Dtypeof%20a%29return%20d%3Bif%281%21%3D%3D%28i%3Db%2EnodeType%29%26%269%21%3D%3Di%29return%5B%5D%3Bif%28n%26%26%21e%29%7Bif%28f%3DZ%2Eexec%28a%29%29if%28h%3Df%5B1%5D%29%7Bif%289%3D%3D%3Di%29%7Bif%28g%3Db%2EgetElementById%28h%29%2C%21g%7C%7C%21g%2EparentNode%29return%20d%3Bif%28g%2Eid%3D%3D%3Dh%29return%20d%2Epush%28g%29%2Cd%7Delse%20if%28b%2EownerDocument%26%26%28g%3Db%2EownerDocument%2EgetElementById%28h%29%29%26%26r%28b%2Cg%29%26%26g%2Eid%3D%3D%3Dh%29return%20d%2Epush%28g%29%2Cd%7Delse%7Bif%28f%5B2%5D%29return%20G%2Eapply%28d%2Cb%2EgetElementsByTagName%28a%29%29%2Cd%3Bif%28%28h%3Df%5B3%5D%29%26%26c%2EgetElementsByClassName%26%26b%2EgetElementsByClassName%29return%20G%2Eapply%28d%2Cb%2EgetElementsByClassName%28h%29%29%2Cd%7Dif%28c%2Eqsa%26%26%28%21o%7C%7C%21o%2Etest%28a%29%29%29%7Bif%28q%3Dp%3Ds%2Cu%3Db%2Cv%3D9%3D%3D%3Di%26%26a%2C1%3D%3D%3Di%26%26%22object%22%21%3D%3Db%2EnodeName%2EtoLowerCase%28%29%29%7Bm%3Dob%28a%29%2C%28p%3Db%2EgetAttribute%28%22id%22%29%29%3Fq%3Dp%2Ereplace%28%5F%2C%22%5C%5C%24%26%22%29%3Ab%2EsetAttribute%28%22id%22%2Cq%29%2Cq%3D%22%5Bid%3D%27%22%2Bq%2B%22%27%5D%20%22%2Cj%3Dm%2Elength%3Bwhile%28j%2D%2D%29m%5Bj%5D%3Dq%2Bpb%28m%5Bj%5D%29%3Bu%3D%24%2Etest%28a%29%26%26mb%28b%2EparentNode%29%7C%7Cb%2Cv%3Dm%2Ejoin%28%22%2C%22%29%7Dif%28v%29try%7Breturn%20G%2Eapply%28d%2Cu%2EquerySelectorAll%28v%29%29%2Cd%7Dcatch%28w%29%7B%7Dfinally%7Bp%7C%7Cb%2EremoveAttribute%28%22id%22%29%7D%7D%7Dreturn%20xb%28a%2Ereplace%28P%2C%22%241%22%29%2Cb%2Cd%2Ce%29%7Dfunction%20eb%28%29%7Bvar%20a%3D%5B%5D%3Bfunction%20b%28c%2Ce%29%7Breturn%20a%2Epush%28c%2B%22%20%22%29%3Ed%2EcacheLength%26%26delete%20b%5Ba%2Eshift%28%29%5D%2Cb%5Bc%2B%22%20%22%5D%3De%7Dreturn%20b%7Dfunction%20fb%28a%29%7Breturn%20a%5Bs%5D%3D%210%2Ca%7Dfunction%20gb%28a%29%7Bvar%20b%3Dl%2EcreateElement%28%22div%22%29%3Btry%7Breturn%21%21a%28b%29%7Dcatch%28c%29%7Breturn%211%7Dfinally%7Bb%2EparentNode%26%26b%2EparentNode%2EremoveChild%28b%29%2Cb%3Dnull%7D%7Dfunction%20hb%28a%2Cb%29%7Bvar%20c%3Da%2Esplit%28%22%7C%22%29%2Ce%3Da%2Elength%3Bwhile%28e%2D%2D%29d%2EattrHandle%5Bc%5Be%5D%5D%3Db%7Dfunction%20ib%28a%2Cb%29%7Bvar%20c%3Db%26%26a%2Cd%3Dc%26%261%3D%3D%3Da%2EnodeType%26%261%3D%3D%3Db%2EnodeType%26%26%28%7Eb%2EsourceIndex%7C%7CB%29%2D%28%7Ea%2EsourceIndex%7C%7CB%29%3Bif%28d%29return%20d%3Bif%28c%29while%28c%3Dc%2EnextSibling%29if%28c%3D%3D%3Db%29return%2D1%3Breturn%20a%3F1%3A%2D1%7Dfunction%20jb%28a%29%7Breturn%20function%28b%29%7Bvar%20c%3Db%2EnodeName%2EtoLowerCase%28%29%3Breturn%22input%22%3D%3D%3Dc%26%26b%2Etype%3D%3D%3Da%7D%7Dfunction%20kb%28a%29%7Breturn%20function%28b%29%7Bvar%20c%3Db%2EnodeName%2EtoLowerCase%28%29%3Breturn%28%22input%22%3D%3D%3Dc%7C%7C%22button%22%3D%3D%3Dc%29%26%26b%2Etype%3D%3D%3Da%7D%7Dfunction%20lb%28a%29%7Breturn%20fb%28function%28b%29%7Breturn%20b%3D%2Bb%2Cfb%28function%28c%2Cd%29%7Bvar%20e%2Cf%3Da%28%5B%5D%2Cc%2Elength%2Cb%29%2Cg%3Df%2Elength%3Bwhile%28g%2D%2D%29c%5Be%3Df%5Bg%5D%5D%26%26%28c%5Be%5D%3D%21%28d%5Be%5D%3Dc%5Be%5D%29%29%7D%29%7D%29%7Dfunction%20mb%28a%29%7Breturn%20a%26%26typeof%20a%2EgetElementsByTagName%21%3D%3DA%26%26a%7Dc%3Ddb%2Esupport%3D%7B%7D%2Cf%3Ddb%2EisXML%3Dfunction%28a%29%7Bvar%20b%3Da%26%26%28a%2EownerDocument%7C%7Ca%29%2EdocumentElement%3Breturn%20b%3F%22HTML%22%21%3D%3Db%2EnodeName%3A%211%7D%2Ck%3Ddb%2EsetDocument%3Dfunction%28a%29%7Bvar%20b%2Ce%3Da%3Fa%2EownerDocument%7C%7Ca%3At%2Cg%3De%2EdefaultView%3Breturn%20e%21%3D%3Dl%26%269%3D%3D%3De%2EnodeType%26%26e%2EdocumentElement%3F%28l%3De%2Cm%3De%2EdocumentElement%2Cn%3D%21f%28e%29%2Cg%26%26g%21%3D%3Dg%2Etop%26%26%28g%2EaddEventListener%3Fg%2EaddEventListener%28%22unload%22%2Cfunction%28%29%7Bk%28%29%7D%2C%211%29%3Ag%2EattachEvent%26%26g%2EattachEvent%28%22onunload%22%2Cfunction%28%29%7Bk%28%29%7D%29%29%2Cc%2Eattributes%3Dgb%28function%28a%29%7Breturn%20a%2EclassName%3D%22i%22%2C%21a%2EgetAttribute%28%22className%22%29%7D%29%2Cc%2EgetElementsByTagName%3Dgb%28function%28a%29%7Breturn%20a%2EappendChild%28e%2EcreateComment%28%22%22%29%29%2C%21a%2EgetElementsByTagName%28%22%2A%22%29%2Elength%7D%29%2Cc%2EgetElementsByClassName%3DY%2Etest%28e%2EgetElementsByClassName%29%26%26gb%28function%28a%29%7Breturn%20a%2EinnerHTML%3D%22%3Cdiv%20class%3D%27a%27%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%27a%20i%27%3E%3C%2Fdiv%3E%22%2Ca%2EfirstChild%2EclassName%3D%22i%22%2C2%3D%3D%3Da%2EgetElementsByClassName%28%22i%22%29%2Elength%7D%29%2Cc%2EgetById%3Dgb%28function%28a%29%7Breturn%20m%2EappendChild%28a%29%2Eid%3Ds%2C%21e%2EgetElementsByName%7C%7C%21e%2EgetElementsByName%28s%29%2Elength%7D%29%2Cc%2EgetById%3F%28d%2Efind%2EID%3Dfunction%28a%2Cb%29%7Bif%28typeof%20b%2EgetElementById%21%3D%3DA%26%26n%29%7Bvar%20c%3Db%2EgetElementById%28a%29%3Breturn%20c%26%26c%2EparentNode%3F%5Bc%5D%3A%5B%5D%7D%7D%2Cd%2Efilter%2EID%3Dfunction%28a%29%7Bvar%20b%3Da%2Ereplace%28ab%2Cbb%29%3Breturn%20function%28a%29%7Breturn%20a%2EgetAttribute%28%22id%22%29%3D%3D%3Db%7D%7D%29%3A%28delete%20d%2Efind%2EID%2Cd%2Efilter%2EID%3Dfunction%28a%29%7Bvar%20b%3Da%2Ereplace%28ab%2Cbb%29%3Breturn%20function%28a%29%7Bvar%20c%3Dtypeof%20a%2EgetAttributeNode%21%3D%3DA%26%26a%2EgetAttributeNode%28%22id%22%29%3Breturn%20c%26%26c%2Evalue%3D%3D%3Db%7D%7D%29%2Cd%2Efind%2ETAG%3Dc%2EgetElementsByTagName%3Ffunction%28a%2Cb%29%7Breturn%20typeof%20b%2EgetElementsByTagName%21%3D%3DA%3Fb%2EgetElementsByTagName%28a%29%3Avoid%200%7D%3Afunction%28a%2Cb%29%7Bvar%20c%2Cd%3D%5B%5D%2Ce%3D0%2Cf%3Db%2EgetElementsByTagName%28a%29%3Bif%28%22%2A%22%3D%3D%3Da%29%7Bwhile%28c%3Df%5Be%2B%2B%5D%291%3D%3D%3Dc%2EnodeType%26%26d%2Epush%28c%29%3Breturn%20d%7Dreturn%20f%7D%2Cd%2Efind%2ECLASS%3Dc%2EgetElementsByClassName%26%26function%28a%2Cb%29%7Breturn%20typeof%20b%2EgetElementsByClassName%21%3D%3DA%26%26n%3Fb%2EgetElementsByClassName%28a%29%3Avoid%200%7D%2Cp%3D%5B%5D%2Co%3D%5B%5D%2C%28c%2Eqsa%3DY%2Etest%28e%2EquerySelectorAll%29%29%26%26%28gb%28function%28a%29%7Ba%2EinnerHTML%3D%22%3Cselect%20t%3D%27%27%3E%3Coption%20selected%3D%27%27%3E%3C%2Foption%3E%3C%2Fselect%3E%22%2Ca%2EquerySelectorAll%28%22%5Bt%5E%3D%27%27%5D%22%29%2Elength%26%26o%2Epush%28%22%5B%2A%5E%24%5D%3D%22%2BK%2B%22%2A%28%3F%3A%27%27%7C%5C%22%5C%22%29%22%29%2Ca%2EquerySelectorAll%28%22%5Bselected%5D%22%29%2Elength%7C%7Co%2Epush%28%22%5C%5C%5B%22%2BK%2B%22%2A%28%3F%3Avalue%7C%22%2BJ%2B%22%29%22%29%2Ca%2EquerySelectorAll%28%22%3Achecked%22%29%2Elength%7C%7Co%2Epush%28%22%3Achecked%22%29%7D%29%2Cgb%28function%28a%29%7Bvar%20b%3De%2EcreateElement%28%22input%22%29%3Bb%2EsetAttribute%28%22type%22%2C%22hidden%22%29%2Ca%2EappendChild%28b%29%2EsetAttribute%28%22name%22%2C%22D%22%29%2Ca%2EquerySelectorAll%28%22%5Bname%3Dd%5D%22%29%2Elength%26%26o%2Epush%28%22name%22%2BK%2B%22%2A%5B%2A%5E%24%7C%21%7E%5D%3F%3D%22%29%2Ca%2EquerySelectorAll%28%22%3Aenabled%22%29%2Elength%7C%7Co%2Epush%28%22%3Aenabled%22%2C%22%3Adisabled%22%29%2Ca%2EquerySelectorAll%28%22%2A%2C%3Ax%22%29%2Co%2Epush%28%22%2C%2E%2A%3A%22%29%7D%29%29%2C%28c%2EmatchesSelector%3DY%2Etest%28q%3Dm%2EwebkitMatchesSelector%7C%7Cm%2EmozMatchesSelector%7C%7Cm%2EoMatchesSelector%7C%7Cm%2EmsMatchesSelector%29%29%26%26gb%28function%28a%29%7Bc%2EdisconnectedMatch%3Dq%2Ecall%28a%2C%22div%22%29%2Cq%2Ecall%28a%2C%22%5Bs%21%3D%27%27%5D%3Ax%22%29%2Cp%2Epush%28%22%21%3D%22%2CO%29%7D%29%2Co%3Do%2Elength%26%26new%20RegExp%28o%2Ejoin%28%22%7C%22%29%29%2Cp%3Dp%2Elength%26%26new%20RegExp%28p%2Ejoin%28%22%7C%22%29%29%2Cb%3DY%2Etest%28m%2EcompareDocumentPosition%29%2Cr%3Db%7C%7CY%2Etest%28m%2Econtains%29%3Ffunction%28a%2Cb%29%7Bvar%20c%3D9%3D%3D%3Da%2EnodeType%3Fa%2EdocumentElement%3Aa%2Cd%3Db%26%26b%2EparentNode%3Breturn%20a%3D%3D%3Dd%7C%7C%21%28%21d%7C%7C1%21%3D%3Dd%2EnodeType%7C%7C%21%28c%2Econtains%3Fc%2Econtains%28d%29%3Aa%2EcompareDocumentPosition%26%2616%26a%2EcompareDocumentPosition%28d%29%29%29%7D%3Afunction%28a%2Cb%29%7Bif%28b%29while%28b%3Db%2EparentNode%29if%28b%3D%3D%3Da%29return%210%3Breturn%211%7D%2Cz%3Db%3Ffunction%28a%2Cb%29%7Bif%28a%3D%3D%3Db%29return%20j%3D%210%2C0%3Bvar%20d%3D%21a%2EcompareDocumentPosition%2D%21b%2EcompareDocumentPosition%3Breturn%20d%3Fd%3A%28d%3D%28a%2EownerDocument%7C%7Ca%29%3D%3D%3D%28b%2EownerDocument%7C%7Cb%29%3Fa%2EcompareDocumentPosition%28b%29%3A1%2C1%26d%7C%7C%21c%2EsortDetached%26%26b%2EcompareDocumentPosition%28a%29%3D%3D%3Dd%3Fa%3D%3D%3De%7C%7Ca%2EownerDocument%3D%3D%3Dt%26%26r%28t%2Ca%29%3F%2D1%3Ab%3D%3D%3De%7C%7Cb%2EownerDocument%3D%3D%3Dt%26%26r%28t%2Cb%29%3F1%3Ai%3FI%2Ecall%28i%2Ca%29%2DI%2Ecall%28i%2Cb%29%3A0%3A4%26d%3F%2D1%3A1%29%7D%3Afunction%28a%2Cb%29%7Bif%28a%3D%3D%3Db%29return%20j%3D%210%2C0%3Bvar%20c%2Cd%3D0%2Cf%3Da%2EparentNode%2Cg%3Db%2EparentNode%2Ch%3D%5Ba%5D%2Ck%3D%5Bb%5D%3Bif%28%21f%7C%7C%21g%29return%20a%3D%3D%3De%3F%2D1%3Ab%3D%3D%3De%3F1%3Af%3F%2D1%3Ag%3F1%3Ai%3FI%2Ecall%28i%2Ca%29%2DI%2Ecall%28i%2Cb%29%3A0%3Bif%28f%3D%3D%3Dg%29return%20ib%28a%2Cb%29%3Bc%3Da%3Bwhile%28c%3Dc%2EparentNode%29h%2Eunshift%28c%29%3Bc%3Db%3Bwhile%28c%3Dc%2EparentNode%29k%2Eunshift%28c%29%3Bwhile%28h%5Bd%5D%3D%3D%3Dk%5Bd%5D%29d%2B%2B%3Breturn%20d%3Fib%28h%5Bd%5D%2Ck%5Bd%5D%29%3Ah%5Bd%5D%3D%3D%3Dt%3F%2D1%3Ak%5Bd%5D%3D%3D%3Dt%3F1%3A0%7D%2Ce%29%3Al%7D%2Cdb%2Ematches%3Dfunction%28a%2Cb%29%7Breturn%20db%28a%2Cnull%2Cnull%2Cb%29%7D%2Cdb%2EmatchesSelector%3Dfunction%28a%2Cb%29%7Bif%28%28a%2EownerDocument%7C%7Ca%29%21%3D%3Dl%26%26k%28a%29%2Cb%3Db%2Ereplace%28S%2C%22%3D%27%241%27%5D%22%29%2C%21%28%21c%2EmatchesSelector%7C%7C%21n%7C%7Cp%26%26p%2Etest%28b%29%7C%7Co%26%26o%2Etest%28b%29%29%29try%7Bvar%20d%3Dq%2Ecall%28a%2Cb%29%3Bif%28d%7C%7Cc%2EdisconnectedMatch%7C%7Ca%2Edocument%26%2611%21%3D%3Da%2Edocument%2EnodeType%29return%20d%7Dcatch%28e%29%7B%7Dreturn%20db%28b%2Cl%2Cnull%2C%5Ba%5D%29%2Elength%3E0%7D%2Cdb%2Econtains%3Dfunction%28a%2Cb%29%7Breturn%28a%2EownerDocument%7C%7Ca%29%21%3D%3Dl%26%26k%28a%29%2Cr%28a%2Cb%29%7D%2Cdb%2Eattr%3Dfunction%28a%2Cb%29%7B%28a%2EownerDocument%7C%7Ca%29%21%3D%3Dl%26%26k%28a%29%3Bvar%20e%3Dd%2EattrHandle%5Bb%2EtoLowerCase%28%29%5D%2Cf%3De%26%26C%2Ecall%28d%2EattrHandle%2Cb%2EtoLowerCase%28%29%29%3Fe%28a%2Cb%2C%21n%29%3Avoid%200%3Breturn%20void%200%21%3D%3Df%3Ff%3Ac%2Eattributes%7C%7C%21n%3Fa%2EgetAttribute%28b%29%3A%28f%3Da%2EgetAttributeNode%28b%29%29%26%26f%2Especified%3Ff%2Evalue%3Anull%7D%2Cdb%2Eerror%3Dfunction%28a%29%7Bthrow%20new%20Error%28%22Syntax%20error%2C%20unrecognized%20expression%3A%20%22%2Ba%29%7D%2Cdb%2EuniqueSort%3Dfunction%28a%29%7Bvar%20b%2Cd%3D%5B%5D%2Ce%3D0%2Cf%3D0%3Bif%28j%3D%21c%2EdetectDuplicates%2Ci%3D%21c%2EsortStable%26%26a%2Eslice%280%29%2Ca%2Esort%28z%29%2Cj%29%7Bwhile%28b%3Da%5Bf%2B%2B%5D%29b%3D%3D%3Da%5Bf%5D%26%26%28e%3Dd%2Epush%28f%29%29%3Bwhile%28e%2D%2D%29a%2Esplice%28d%5Be%5D%2C1%29%7Dreturn%20i%3Dnull%2Ca%7D%2Ce%3Ddb%2EgetText%3Dfunction%28a%29%7Bvar%20b%2Cc%3D%22%22%2Cd%3D0%2Cf%3Da%2EnodeType%3Bif%28f%29%7Bif%281%3D%3D%3Df%7C%7C9%3D%3D%3Df%7C%7C11%3D%3D%3Df%29%7Bif%28%22string%22%3D%3Dtypeof%20a%2EtextContent%29return%20a%2EtextContent%3Bfor%28a%3Da%2EfirstChild%3Ba%3Ba%3Da%2EnextSibling%29c%2B%3De%28a%29%7Delse%20if%283%3D%3D%3Df%7C%7C4%3D%3D%3Df%29return%20a%2EnodeValue%7Delse%20while%28b%3Da%5Bd%2B%2B%5D%29c%2B%3De%28b%29%3Breturn%20c%7D%2Cd%3Ddb%2Eselectors%3D%7BcacheLength%3A50%2CcreatePseudo%3Afb%2Cmatch%3AV%2CattrHandle%3A%7B%7D%2Cfind%3A%7B%7D%2Crelative%3A%7B%22%3E%22%3A%7Bdir%3A%22parentNode%22%2Cfirst%3A%210%7D%2C%22%20%22%3A%7Bdir%3A%22parentNode%22%7D%2C%22%2B%22%3A%7Bdir%3A%22previousSibling%22%2Cfirst%3A%210%7D%2C%22%7E%22%3A%7Bdir%3A%22previousSibling%22%7D%7D%2CpreFilter%3A%7BATTR%3Afunction%28a%29%7Breturn%20a%5B1%5D%3Da%5B1%5D%2Ereplace%28ab%2Cbb%29%2Ca%5B3%5D%3D%28a%5B4%5D%7C%7Ca%5B5%5D%7C%7C%22%22%29%2Ereplace%28ab%2Cbb%29%2C%22%7E%3D%22%3D%3D%3Da%5B2%5D%26%26%28a%5B3%5D%3D%22%20%22%2Ba%5B3%5D%2B%22%20%22%29%2Ca%2Eslice%280%2C4%29%7D%2CCHILD%3Afunction%28a%29%7Breturn%20a%5B1%5D%3Da%5B1%5D%2EtoLowerCase%28%29%2C%22nth%22%3D%3D%3Da%5B1%5D%2Eslice%280%2C3%29%3F%28a%5B3%5D%7C%7Cdb%2Eerror%28a%5B0%5D%29%2Ca%5B4%5D%3D%2B%28a%5B4%5D%3Fa%5B5%5D%2B%28a%5B6%5D%7C%7C1%29%3A2%2A%28%22even%22%3D%3D%3Da%5B3%5D%7C%7C%22odd%22%3D%3D%3Da%5B3%5D%29%29%2Ca%5B5%5D%3D%2B%28a%5B7%5D%2Ba%5B8%5D%7C%7C%22odd%22%3D%3D%3Da%5B3%5D%29%29%3Aa%5B3%5D%26%26db%2Eerror%28a%5B0%5D%29%2Ca%7D%2CPSEUDO%3Afunction%28a%29%7Bvar%20b%2Cc%3D%21a%5B5%5D%26%26a%5B2%5D%3Breturn%20V%2ECHILD%2Etest%28a%5B0%5D%29%3Fnull%3A%28a%5B3%5D%26%26void%200%21%3D%3Da%5B4%5D%3Fa%5B2%5D%3Da%5B4%5D%3Ac%26%26T%2Etest%28c%29%26%26%28b%3Dob%28c%2C%210%29%29%26%26%28b%3Dc%2EindexOf%28%22%29%22%2Cc%2Elength%2Db%29%2Dc%2Elength%29%26%26%28a%5B0%5D%3Da%5B0%5D%2Eslice%280%2Cb%29%2Ca%5B2%5D%3Dc%2Eslice%280%2Cb%29%29%2Ca%2Eslice%280%2C3%29%29%7D%7D%2Cfilter%3A%7BTAG%3Afunction%28a%29%7Bvar%20b%3Da%2Ereplace%28ab%2Cbb%29%2EtoLowerCase%28%29%3Breturn%22%2A%22%3D%3D%3Da%3Ffunction%28%29%7Breturn%210%7D%3Afunction%28a%29%7Breturn%20a%2EnodeName%26%26a%2EnodeName%2EtoLowerCase%28%29%3D%3D%3Db%7D%7D%2CCLASS%3Afunction%28a%29%7Bvar%20b%3Dw%5Ba%2B%22%20%22%5D%3Breturn%20b%7C%7C%28b%3Dnew%20RegExp%28%22%28%5E%7C%22%2BK%2B%22%29%22%2Ba%2B%22%28%22%2BK%2B%22%7C%24%29%22%29%29%26%26w%28a%2Cfunction%28a%29%7Breturn%20b%2Etest%28%22string%22%3D%3Dtypeof%20a%2EclassName%26%26a%2EclassName%7C%7Ctypeof%20a%2EgetAttribute%21%3D%3DA%26%26a%2EgetAttribute%28%22class%22%29%7C%7C%22%22%29%7D%29%7D%2CATTR%3Afunction%28a%2Cb%2Cc%29%7Breturn%20function%28d%29%7Bvar%20e%3Ddb%2Eattr%28d%2Ca%29%3Breturn%20null%3D%3De%3F%22%21%3D%22%3D%3D%3Db%3Ab%3F%28e%2B%3D%22%22%2C%22%3D%22%3D%3D%3Db%3Fe%3D%3D%3Dc%3A%22%21%3D%22%3D%3D%3Db%3Fe%21%3D%3Dc%3A%22%5E%3D%22%3D%3D%3Db%3Fc%26%260%3D%3D%3De%2EindexOf%28c%29%3A%22%2A%3D%22%3D%3D%3Db%3Fc%26%26e%2EindexOf%28c%29%3E%2D1%3A%22%24%3D%22%3D%3D%3Db%3Fc%26%26e%2Eslice%28%2Dc%2Elength%29%3D%3D%3Dc%3A%22%7E%3D%22%3D%3D%3Db%3F%28%22%20%22%2Be%2B%22%20%22%29%2EindexOf%28c%29%3E%2D1%3A%22%7C%3D%22%3D%3D%3Db%3Fe%3D%3D%3Dc%7C%7Ce%2Eslice%280%2Cc%2Elength%2B1%29%3D%3D%3Dc%2B%22%2D%22%3A%211%29%3A%210%7D%7D%2CCHILD%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Bvar%20f%3D%22nth%22%21%3D%3Da%2Eslice%280%2C3%29%2Cg%3D%22last%22%21%3D%3Da%2Eslice%28%2D4%29%2Ch%3D%22of%2Dtype%22%3D%3D%3Db%3Breturn%201%3D%3D%3Dd%26%260%3D%3D%3De%3Ffunction%28a%29%7Breturn%21%21a%2EparentNode%7D%3Afunction%28b%2Cc%2Ci%29%7Bvar%20j%2Ck%2Cl%2Cm%2Cn%2Co%2Cp%3Df%21%3D%3Dg%3F%22nextSibling%22%3A%22previousSibling%22%2Cq%3Db%2EparentNode%2Cr%3Dh%26%26b%2EnodeName%2EtoLowerCase%28%29%2Ct%3D%21i%26%26%21h%3Bif%28q%29%7Bif%28f%29%7Bwhile%28p%29%7Bl%3Db%3Bwhile%28l%3Dl%5Bp%5D%29if%28h%3Fl%2EnodeName%2EtoLowerCase%28%29%3D%3D%3Dr%3A1%3D%3D%3Dl%2EnodeType%29return%211%3Bo%3Dp%3D%22only%22%3D%3D%3Da%26%26%21o%26%26%22nextSibling%22%7Dreturn%210%7Dif%28o%3D%5Bg%3Fq%2EfirstChild%3Aq%2ElastChild%5D%2Cg%26%26t%29%7Bk%3Dq%5Bs%5D%7C%7C%28q%5Bs%5D%3D%7B%7D%29%2Cj%3Dk%5Ba%5D%7C%7C%5B%5D%2Cn%3Dj%5B0%5D%3D%3D%3Du%26%26j%5B1%5D%2Cm%3Dj%5B0%5D%3D%3D%3Du%26%26j%5B2%5D%2Cl%3Dn%26%26q%2EchildNodes%5Bn%5D%3Bwhile%28l%3D%2B%2Bn%26%26l%26%26l%5Bp%5D%7C%7C%28m%3Dn%3D0%29%7C%7Co%2Epop%28%29%29if%281%3D%3D%3Dl%2EnodeType%26%26%2B%2Bm%26%26l%3D%3D%3Db%29%7Bk%5Ba%5D%3D%5Bu%2Cn%2Cm%5D%3Bbreak%7D%7Delse%20if%28t%26%26%28j%3D%28b%5Bs%5D%7C%7C%28b%5Bs%5D%3D%7B%7D%29%29%5Ba%5D%29%26%26j%5B0%5D%3D%3D%3Du%29m%3Dj%5B1%5D%3Belse%20while%28l%3D%2B%2Bn%26%26l%26%26l%5Bp%5D%7C%7C%28m%3Dn%3D0%29%7C%7Co%2Epop%28%29%29if%28%28h%3Fl%2EnodeName%2EtoLowerCase%28%29%3D%3D%3Dr%3A1%3D%3D%3Dl%2EnodeType%29%26%26%2B%2Bm%26%26%28t%26%26%28%28l%5Bs%5D%7C%7C%28l%5Bs%5D%3D%7B%7D%29%29%5Ba%5D%3D%5Bu%2Cm%5D%29%2Cl%3D%3D%3Db%29%29break%3Breturn%20m%2D%3De%2Cm%3D%3D%3Dd%7C%7Cm%25d%3D%3D%3D0%26%26m%2Fd%3E%3D0%7D%7D%7D%2CPSEUDO%3Afunction%28a%2Cb%29%7Bvar%20c%2Ce%3Dd%2Epseudos%5Ba%5D%7C%7Cd%2EsetFilters%5Ba%2EtoLowerCase%28%29%5D%7C%7Cdb%2Eerror%28%22unsupported%20pseudo%3A%20%22%2Ba%29%3Breturn%20e%5Bs%5D%3Fe%28b%29%3Ae%2Elength%3E1%3F%28c%3D%5Ba%2Ca%2C%22%22%2Cb%5D%2Cd%2EsetFilters%2EhasOwnProperty%28a%2EtoLowerCase%28%29%29%3Ffb%28function%28a%2Cc%29%7Bvar%20d%2Cf%3De%28a%2Cb%29%2Cg%3Df%2Elength%3Bwhile%28g%2D%2D%29d%3DI%2Ecall%28a%2Cf%5Bg%5D%29%2Ca%5Bd%5D%3D%21%28c%5Bd%5D%3Df%5Bg%5D%29%7D%29%3Afunction%28a%29%7Breturn%20e%28a%2C0%2Cc%29%7D%29%3Ae%7D%7D%2Cpseudos%3A%7Bnot%3Afb%28function%28a%29%7Bvar%20b%3D%5B%5D%2Cc%3D%5B%5D%2Cd%3Dg%28a%2Ereplace%28P%2C%22%241%22%29%29%3Breturn%20d%5Bs%5D%3Ffb%28function%28a%2Cb%2Cc%2Ce%29%7Bvar%20f%2Cg%3Dd%28a%2Cnull%2Ce%2C%5B%5D%29%2Ch%3Da%2Elength%3Bwhile%28h%2D%2D%29%28f%3Dg%5Bh%5D%29%26%26%28a%5Bh%5D%3D%21%28b%5Bh%5D%3Df%29%29%7D%29%3Afunction%28a%2Ce%2Cf%29%7Breturn%20b%5B0%5D%3Da%2Cd%28b%2Cnull%2Cf%2Cc%29%2C%21c%2Epop%28%29%7D%7D%29%2Chas%3Afb%28function%28a%29%7Breturn%20function%28b%29%7Breturn%20db%28a%2Cb%29%2Elength%3E0%7D%7D%29%2Ccontains%3Afb%28function%28a%29%7Breturn%20function%28b%29%7Breturn%28b%2EtextContent%7C%7Cb%2EinnerText%7C%7Ce%28b%29%29%2EindexOf%28a%29%3E%2D1%7D%7D%29%2Clang%3Afb%28function%28a%29%7Breturn%20U%2Etest%28a%7C%7C%22%22%29%7C%7Cdb%2Eerror%28%22unsupported%20lang%3A%20%22%2Ba%29%2Ca%3Da%2Ereplace%28ab%2Cbb%29%2EtoLowerCase%28%29%2Cfunction%28b%29%7Bvar%20c%3Bdo%20if%28c%3Dn%3Fb%2Elang%3Ab%2EgetAttribute%28%22xml%3Alang%22%29%7C%7Cb%2EgetAttribute%28%22lang%22%29%29return%20c%3Dc%2EtoLowerCase%28%29%2Cc%3D%3D%3Da%7C%7C0%3D%3D%3Dc%2EindexOf%28a%2B%22%2D%22%29%3Bwhile%28%28b%3Db%2EparentNode%29%26%261%3D%3D%3Db%2EnodeType%29%3Breturn%211%7D%7D%29%2Ctarget%3Afunction%28b%29%7Bvar%20c%3Da%2Elocation%26%26a%2Elocation%2Ehash%3Breturn%20c%26%26c%2Eslice%281%29%3D%3D%3Db%2Eid%7D%2Croot%3Afunction%28a%29%7Breturn%20a%3D%3D%3Dm%7D%2Cfocus%3Afunction%28a%29%7Breturn%20a%3D%3D%3Dl%2EactiveElement%26%26%28%21l%2EhasFocus%7C%7Cl%2EhasFocus%28%29%29%26%26%21%21%28a%2Etype%7C%7Ca%2Ehref%7C%7C%7Ea%2EtabIndex%29%7D%2Cenabled%3Afunction%28a%29%7Breturn%20a%2Edisabled%3D%3D%3D%211%7D%2Cdisabled%3Afunction%28a%29%7Breturn%20a%2Edisabled%3D%3D%3D%210%7D%2Cchecked%3Afunction%28a%29%7Bvar%20b%3Da%2EnodeName%2EtoLowerCase%28%29%3Breturn%22input%22%3D%3D%3Db%26%26%21%21a%2Echecked%7C%7C%22option%22%3D%3D%3Db%26%26%21%21a%2Eselected%7D%2Cselected%3Afunction%28a%29%7Breturn%20a%2EparentNode%26%26a%2EparentNode%2EselectedIndex%2Ca%2Eselected%3D%3D%3D%210%7D%2Cempty%3Afunction%28a%29%7Bfor%28a%3Da%2EfirstChild%3Ba%3Ba%3Da%2EnextSibling%29if%28a%2EnodeType%3C6%29return%211%3Breturn%210%7D%2Cparent%3Afunction%28a%29%7Breturn%21d%2Epseudos%2Eempty%28a%29%7D%2Cheader%3Afunction%28a%29%7Breturn%20X%2Etest%28a%2EnodeName%29%7D%2Cinput%3Afunction%28a%29%7Breturn%20W%2Etest%28a%2EnodeName%29%7D%2Cbutton%3Afunction%28a%29%7Bvar%20b%3Da%2EnodeName%2EtoLowerCase%28%29%3Breturn%22input%22%3D%3D%3Db%26%26%22button%22%3D%3D%3Da%2Etype%7C%7C%22button%22%3D%3D%3Db%7D%2Ctext%3Afunction%28a%29%7Bvar%20b%3Breturn%22input%22%3D%3D%3Da%2EnodeName%2EtoLowerCase%28%29%26%26%22text%22%3D%3D%3Da%2Etype%26%26%28null%3D%3D%28b%3Da%2EgetAttribute%28%22type%22%29%29%7C%7C%22text%22%3D%3D%3Db%2EtoLowerCase%28%29%29%7D%2Cfirst%3Alb%28function%28%29%7Breturn%5B0%5D%7D%29%2Clast%3Alb%28function%28a%2Cb%29%7Breturn%5Bb%2D1%5D%7D%29%2Ceq%3Alb%28function%28a%2Cb%2Cc%29%7Breturn%5B0%3Ec%3Fc%2Bb%3Ac%5D%7D%29%2Ceven%3Alb%28function%28a%2Cb%29%7Bfor%28var%20c%3D0%3Bb%3Ec%3Bc%2B%3D2%29a%2Epush%28c%29%3Breturn%20a%7D%29%2Codd%3Alb%28function%28a%2Cb%29%7Bfor%28var%20c%3D1%3Bb%3Ec%3Bc%2B%3D2%29a%2Epush%28c%29%3Breturn%20a%7D%29%2Clt%3Alb%28function%28a%2Cb%2Cc%29%7Bfor%28var%20d%3D0%3Ec%3Fc%2Bb%3Ac%3B%2D%2Dd%3E%3D0%3B%29a%2Epush%28d%29%3Breturn%20a%7D%29%2Cgt%3Alb%28function%28a%2Cb%2Cc%29%7Bfor%28var%20d%3D0%3Ec%3Fc%2Bb%3Ac%3B%2B%2Bd%3Cb%3B%29a%2Epush%28d%29%3Breturn%20a%7D%29%7D%7D%2Cd%2Epseudos%2Enth%3Dd%2Epseudos%2Eeq%3Bfor%28b%20in%7Bradio%3A%210%2Ccheckbox%3A%210%2Cfile%3A%210%2Cpassword%3A%210%2Cimage%3A%210%7D%29d%2Epseudos%5Bb%5D%3Djb%28b%29%3Bfor%28b%20in%7Bsubmit%3A%210%2Creset%3A%210%7D%29d%2Epseudos%5Bb%5D%3Dkb%28b%29%3Bfunction%20nb%28%29%7B%7Dnb%2Eprototype%3Dd%2Efilters%3Dd%2Epseudos%2Cd%2EsetFilters%3Dnew%20nb%3Bfunction%20ob%28a%2Cb%29%7Bvar%20c%2Ce%2Cf%2Cg%2Ch%2Ci%2Cj%2Ck%3Dx%5Ba%2B%22%20%22%5D%3Bif%28k%29return%20b%3F0%3Ak%2Eslice%280%29%3Bh%3Da%2Ci%3D%5B%5D%2Cj%3Dd%2EpreFilter%3Bwhile%28h%29%7B%28%21c%7C%7C%28e%3DQ%2Eexec%28h%29%29%29%26%26%28e%26%26%28h%3Dh%2Eslice%28e%5B0%5D%2Elength%29%7C%7Ch%29%2Ci%2Epush%28f%3D%5B%5D%29%29%2Cc%3D%211%2C%28e%3DR%2Eexec%28h%29%29%26%26%28c%3De%2Eshift%28%29%2Cf%2Epush%28%7Bvalue%3Ac%2Ctype%3Ae%5B0%5D%2Ereplace%28P%2C%22%20%22%29%7D%29%2Ch%3Dh%2Eslice%28c%2Elength%29%29%3Bfor%28g%20in%20d%2Efilter%29%21%28e%3DV%5Bg%5D%2Eexec%28h%29%29%7C%7Cj%5Bg%5D%26%26%21%28e%3Dj%5Bg%5D%28e%29%29%7C%7C%28c%3De%2Eshift%28%29%2Cf%2Epush%28%7Bvalue%3Ac%2Ctype%3Ag%2Cmatches%3Ae%7D%29%2Ch%3Dh%2Eslice%28c%2Elength%29%29%3Bif%28%21c%29break%7Dreturn%20b%3Fh%2Elength%3Ah%3Fdb%2Eerror%28a%29%3Ax%28a%2Ci%29%2Eslice%280%29%7Dfunction%20pb%28a%29%7Bfor%28var%20b%3D0%2Cc%3Da%2Elength%2Cd%3D%22%22%3Bc%3Eb%3Bb%2B%2B%29d%2B%3Da%5Bb%5D%2Evalue%3Breturn%20d%7Dfunction%20qb%28a%2Cb%2Cc%29%7Bvar%20d%3Db%2Edir%2Ce%3Dc%26%26%22parentNode%22%3D%3D%3Dd%2Cf%3Dv%2B%2B%3Breturn%20b%2Efirst%3Ffunction%28b%2Cc%2Cf%29%7Bwhile%28b%3Db%5Bd%5D%29if%281%3D%3D%3Db%2EnodeType%7C%7Ce%29return%20a%28b%2Cc%2Cf%29%7D%3Afunction%28b%2Cc%2Cg%29%7Bvar%20h%2Ci%2Cj%3D%5Bu%2Cf%5D%3Bif%28g%29%7Bwhile%28b%3Db%5Bd%5D%29if%28%281%3D%3D%3Db%2EnodeType%7C%7Ce%29%26%26a%28b%2Cc%2Cg%29%29return%210%7Delse%20while%28b%3Db%5Bd%5D%29if%281%3D%3D%3Db%2EnodeType%7C%7Ce%29%7Bif%28i%3Db%5Bs%5D%7C%7C%28b%5Bs%5D%3D%7B%7D%29%2C%28h%3Di%5Bd%5D%29%26%26h%5B0%5D%3D%3D%3Du%26%26h%5B1%5D%3D%3D%3Df%29return%20j%5B2%5D%3Dh%5B2%5D%3Bif%28i%5Bd%5D%3Dj%2Cj%5B2%5D%3Da%28b%2Cc%2Cg%29%29return%210%7D%7D%7Dfunction%20rb%28a%29%7Breturn%20a%2Elength%3E1%3Ffunction%28b%2Cc%2Cd%29%7Bvar%20e%3Da%2Elength%3Bwhile%28e%2D%2D%29if%28%21a%5Be%5D%28b%2Cc%2Cd%29%29return%211%3Breturn%210%7D%3Aa%5B0%5D%7Dfunction%20sb%28a%2Cb%2Cc%2Cd%2Ce%29%7Bfor%28var%20f%2Cg%3D%5B%5D%2Ch%3D0%2Ci%3Da%2Elength%2Cj%3Dnull%21%3Db%3Bi%3Eh%3Bh%2B%2B%29%28f%3Da%5Bh%5D%29%26%26%28%21c%7C%7Cc%28f%2Cd%2Ce%29%29%26%26%28g%2Epush%28f%29%2Cj%26%26b%2Epush%28h%29%29%3Breturn%20g%7Dfunction%20tb%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Breturn%20d%26%26%21d%5Bs%5D%26%26%28d%3Dtb%28d%29%29%2Ce%26%26%21e%5Bs%5D%26%26%28e%3Dtb%28e%2Cf%29%29%2Cfb%28function%28f%2Cg%2Ch%2Ci%29%7Bvar%20j%2Ck%2Cl%2Cm%3D%5B%5D%2Cn%3D%5B%5D%2Co%3Dg%2Elength%2Cp%3Df%7C%7Cwb%28b%7C%7C%22%2A%22%2Ch%2EnodeType%3F%5Bh%5D%3Ah%2C%5B%5D%29%2Cq%3D%21a%7C%7C%21f%26%26b%3Fp%3Asb%28p%2Cm%2Ca%2Ch%2Ci%29%2Cr%3Dc%3Fe%7C%7C%28f%3Fa%3Ao%7C%7Cd%29%3F%5B%5D%3Ag%3Aq%3Bif%28c%26%26c%28q%2Cr%2Ch%2Ci%29%2Cd%29%7Bj%3Dsb%28r%2Cn%29%2Cd%28j%2C%5B%5D%2Ch%2Ci%29%2Ck%3Dj%2Elength%3Bwhile%28k%2D%2D%29%28l%3Dj%5Bk%5D%29%26%26%28r%5Bn%5Bk%5D%5D%3D%21%28q%5Bn%5Bk%5D%5D%3Dl%29%29%7Dif%28f%29%7Bif%28e%7C%7Ca%29%7Bif%28e%29%7Bj%3D%5B%5D%2Ck%3Dr%2Elength%3Bwhile%28k%2D%2D%29%28l%3Dr%5Bk%5D%29%26%26j%2Epush%28q%5Bk%5D%3Dl%29%3Be%28null%2Cr%3D%5B%5D%2Cj%2Ci%29%7Dk%3Dr%2Elength%3Bwhile%28k%2D%2D%29%28l%3Dr%5Bk%5D%29%26%26%28j%3De%3FI%2Ecall%28f%2Cl%29%3Am%5Bk%5D%29%3E%2D1%26%26%28f%5Bj%5D%3D%21%28g%5Bj%5D%3Dl%29%29%7D%7Delse%20r%3Dsb%28r%3D%3D%3Dg%3Fr%2Esplice%28o%2Cr%2Elength%29%3Ar%29%2Ce%3Fe%28null%2Cg%2Cr%2Ci%29%3AG%2Eapply%28g%2Cr%29%7D%29%7Dfunction%20ub%28a%29%7Bfor%28var%20b%2Cc%2Ce%2Cf%3Da%2Elength%2Cg%3Dd%2Erelative%5Ba%5B0%5D%2Etype%5D%2Ci%3Dg%7C%7Cd%2Erelative%5B%22%20%22%5D%2Cj%3Dg%3F1%3A0%2Ck%3Dqb%28function%28a%29%7Breturn%20a%3D%3D%3Db%7D%2Ci%2C%210%29%2Cl%3Dqb%28function%28a%29%7Breturn%20I%2Ecall%28b%2Ca%29%3E%2D1%7D%2Ci%2C%210%29%2Cm%3D%5Bfunction%28a%2Cc%2Cd%29%7Breturn%21g%26%26%28d%7C%7Cc%21%3D%3Dh%29%7C%7C%28%28b%3Dc%29%2EnodeType%3Fk%28a%2Cc%2Cd%29%3Al%28a%2Cc%2Cd%29%29%7D%5D%3Bf%3Ej%3Bj%2B%2B%29if%28c%3Dd%2Erelative%5Ba%5Bj%5D%2Etype%5D%29m%3D%5Bqb%28rb%28m%29%2Cc%29%5D%3Belse%7Bif%28c%3Dd%2Efilter%5Ba%5Bj%5D%2Etype%5D%2Eapply%28null%2Ca%5Bj%5D%2Ematches%29%2Cc%5Bs%5D%29%7Bfor%28e%3D%2B%2Bj%3Bf%3Ee%3Be%2B%2B%29if%28d%2Erelative%5Ba%5Be%5D%2Etype%5D%29break%3Breturn%20tb%28j%3E1%26%26rb%28m%29%2Cj%3E1%26%26pb%28a%2Eslice%280%2Cj%2D1%29%2Econcat%28%7Bvalue%3A%22%20%22%3D%3D%3Da%5Bj%2D2%5D%2Etype%3F%22%2A%22%3A%22%22%7D%29%29%2Ereplace%28P%2C%22%241%22%29%2Cc%2Ce%3Ej%26%26ub%28a%2Eslice%28j%2Ce%29%29%2Cf%3Ee%26%26ub%28a%3Da%2Eslice%28e%29%29%2Cf%3Ee%26%26pb%28a%29%29%7Dm%2Epush%28c%29%7Dreturn%20rb%28m%29%7Dfunction%20vb%28a%2Cb%29%7Bvar%20c%3Db%2Elength%3E0%2Ce%3Da%2Elength%3E0%2Cf%3Dfunction%28f%2Cg%2Ci%2Cj%2Ck%29%7Bvar%20m%2Cn%2Co%2Cp%3D0%2Cq%3D%220%22%2Cr%3Df%26%26%5B%5D%2Cs%3D%5B%5D%2Ct%3Dh%2Cv%3Df%7C%7Ce%26%26d%2Efind%2ETAG%28%22%2A%22%2Ck%29%2Cw%3Du%2B%3Dnull%3D%3Dt%3F1%3AMath%2Erandom%28%29%7C%7C%2E1%2Cx%3Dv%2Elength%3Bfor%28k%26%26%28h%3Dg%21%3D%3Dl%26%26g%29%3Bq%21%3D%3Dx%26%26null%21%3D%28m%3Dv%5Bq%5D%29%3Bq%2B%2B%29%7Bif%28e%26%26m%29%7Bn%3D0%3Bwhile%28o%3Da%5Bn%2B%2B%5D%29if%28o%28m%2Cg%2Ci%29%29%7Bj%2Epush%28m%29%3Bbreak%7Dk%26%26%28u%3Dw%29%7Dc%26%26%28%28m%3D%21o%26%26m%29%26%26p%2D%2D%2Cf%26%26r%2Epush%28m%29%29%7Dif%28p%2B%3Dq%2Cc%26%26q%21%3D%3Dp%29%7Bn%3D0%3Bwhile%28o%3Db%5Bn%2B%2B%5D%29o%28r%2Cs%2Cg%2Ci%29%3Bif%28f%29%7Bif%28p%3E0%29while%28q%2D%2D%29r%5Bq%5D%7C%7Cs%5Bq%5D%7C%7C%28s%5Bq%5D%3DE%2Ecall%28j%29%29%3Bs%3Dsb%28s%29%7DG%2Eapply%28j%2Cs%29%2Ck%26%26%21f%26%26s%2Elength%3E0%26%26p%2Bb%2Elength%3E1%26%26db%2EuniqueSort%28j%29%7Dreturn%20k%26%26%28u%3Dw%2Ch%3Dt%29%2Cr%7D%3Breturn%20c%3Ffb%28f%29%3Af%7Dg%3Ddb%2Ecompile%3Dfunction%28a%2Cb%29%7Bvar%20c%2Cd%3D%5B%5D%2Ce%3D%5B%5D%2Cf%3Dy%5Ba%2B%22%20%22%5D%3Bif%28%21f%29%7Bb%7C%7C%28b%3Dob%28a%29%29%2Cc%3Db%2Elength%3Bwhile%28c%2D%2D%29f%3Dub%28b%5Bc%5D%29%2Cf%5Bs%5D%3Fd%2Epush%28f%29%3Ae%2Epush%28f%29%3Bf%3Dy%28a%2Cvb%28e%2Cd%29%29%7Dreturn%20f%7D%3Bfunction%20wb%28a%2Cb%2Cc%29%7Bfor%28var%20d%3D0%2Ce%3Db%2Elength%3Be%3Ed%3Bd%2B%2B%29db%28a%2Cb%5Bd%5D%2Cc%29%3Breturn%20c%7Dfunction%20xb%28a%2Cb%2Ce%2Cf%29%7Bvar%20h%2Ci%2Cj%2Ck%2Cl%2Cm%3Dob%28a%29%3Bif%28%21f%26%261%3D%3D%3Dm%2Elength%29%7Bif%28i%3Dm%5B0%5D%3Dm%5B0%5D%2Eslice%280%29%2Ci%2Elength%3E2%26%26%22ID%22%3D%3D%3D%28j%3Di%5B0%5D%29%2Etype%26%26c%2EgetById%26%269%3D%3D%3Db%2EnodeType%26%26n%26%26d%2Erelative%5Bi%5B1%5D%2Etype%5D%29%7Bif%28b%3D%28d%2Efind%2EID%28j%2Ematches%5B0%5D%2Ereplace%28ab%2Cbb%29%2Cb%29%7C%7C%5B%5D%29%5B0%5D%2C%21b%29return%20e%3Ba%3Da%2Eslice%28i%2Eshift%28%29%2Evalue%2Elength%29%7Dh%3DV%2EneedsContext%2Etest%28a%29%3F0%3Ai%2Elength%3Bwhile%28h%2D%2D%29%7Bif%28j%3Di%5Bh%5D%2Cd%2Erelative%5Bk%3Dj%2Etype%5D%29break%3Bif%28%28l%3Dd%2Efind%5Bk%5D%29%26%26%28f%3Dl%28j%2Ematches%5B0%5D%2Ereplace%28ab%2Cbb%29%2C%24%2Etest%28i%5B0%5D%2Etype%29%26%26mb%28b%2EparentNode%29%7C%7Cb%29%29%29%7Bif%28i%2Esplice%28h%2C1%29%2Ca%3Df%2Elength%26%26pb%28i%29%2C%21a%29return%20G%2Eapply%28e%2Cf%29%2Ce%3Bbreak%7D%7D%7Dreturn%20g%28a%2Cm%29%28f%2Cb%2C%21n%2Ce%2C%24%2Etest%28a%29%26%26mb%28b%2EparentNode%29%7C%7Cb%29%2Ce%7Dreturn%20c%2EsortStable%3Ds%2Esplit%28%22%22%29%2Esort%28z%29%2Ejoin%28%22%22%29%3D%3D%3Ds%2Cc%2EdetectDuplicates%3D%21%21j%2Ck%28%29%2Cc%2EsortDetached%3Dgb%28function%28a%29%7Breturn%201%26a%2EcompareDocumentPosition%28l%2EcreateElement%28%22div%22%29%29%7D%29%2Cgb%28function%28a%29%7Breturn%20a%2EinnerHTML%3D%22%3Ca%20href%3D%27%23%27%3E%3C%2Fa%3E%22%2C%22%23%22%3D%3D%3Da%2EfirstChild%2EgetAttribute%28%22href%22%29%7D%29%7C%7Chb%28%22type%7Chref%7Cheight%7Cwidth%22%2Cfunction%28a%2Cb%2Cc%29%7Breturn%20c%3Fvoid%200%3Aa%2EgetAttribute%28b%2C%22type%22%3D%3D%3Db%2EtoLowerCase%28%29%3F1%3A2%29%7D%29%2Cc%2Eattributes%26%26gb%28function%28a%29%7Breturn%20a%2EinnerHTML%3D%22%3Cinput%2F%3E%22%2Ca%2EfirstChild%2EsetAttribute%28%22value%22%2C%22%22%29%2C%22%22%3D%3D%3Da%2EfirstChild%2EgetAttribute%28%22value%22%29%7D%29%7C%7Chb%28%22value%22%2Cfunction%28a%2Cb%2Cc%29%7Breturn%20c%7C%7C%22input%22%21%3D%3Da%2EnodeName%2EtoLowerCase%28%29%3Fvoid%200%3Aa%2EdefaultValue%7D%29%2Cgb%28function%28a%29%7Breturn%20null%3D%3Da%2EgetAttribute%28%22disabled%22%29%7D%29%7C%7Chb%28J%2Cfunction%28a%2Cb%2Cc%29%7Bvar%20d%3Breturn%20c%3Fvoid%200%3Aa%5Bb%5D%3D%3D%3D%210%3Fb%2EtoLowerCase%28%29%3A%28d%3Da%2EgetAttributeNode%28b%29%29%26%26d%2Especified%3Fd%2Evalue%3Anull%7D%29%2Cdb%7D%28a%29%3Bn%2Efind%3Dt%2Cn%2Eexpr%3Dt%2Eselectors%2Cn%2Eexpr%5B%22%3A%22%5D%3Dn%2Eexpr%2Epseudos%2Cn%2Eunique%3Dt%2EuniqueSort%2Cn%2Etext%3Dt%2EgetText%2Cn%2EisXMLDoc%3Dt%2EisXML%2Cn%2Econtains%3Dt%2Econtains%3Bvar%20u%3Dn%2Eexpr%2Ematch%2EneedsContext%2Cv%3D%2F%5E%3C%28%5Cw%2B%29%5Cs%2A%5C%2F%3F%3E%28%3F%3A%3C%5C%2F%5C1%3E%7C%29%24%2F%2Cw%3D%2F%5E%2E%5B%5E%3A%23%5C%5B%5C%2E%2C%5D%2A%24%2F%3Bfunction%20x%28a%2Cb%2Cc%29%7Bif%28n%2EisFunction%28b%29%29return%20n%2Egrep%28a%2Cfunction%28a%2Cd%29%7Breturn%21%21b%2Ecall%28a%2Cd%2Ca%29%21%3D%3Dc%7D%29%3Bif%28b%2EnodeType%29return%20n%2Egrep%28a%2Cfunction%28a%29%7Breturn%20a%3D%3D%3Db%21%3D%3Dc%7D%29%3Bif%28%22string%22%3D%3Dtypeof%20b%29%7Bif%28w%2Etest%28b%29%29return%20n%2Efilter%28b%2Ca%2Cc%29%3Bb%3Dn%2Efilter%28b%2Ca%29%7Dreturn%20n%2Egrep%28a%2Cfunction%28a%29%7Breturn%20n%2EinArray%28a%2Cb%29%3E%3D0%21%3D%3Dc%7D%29%7Dn%2Efilter%3Dfunction%28a%2Cb%2Cc%29%7Bvar%20d%3Db%5B0%5D%3Breturn%20c%26%26%28a%3D%22%3Anot%28%22%2Ba%2B%22%29%22%29%2C1%3D%3D%3Db%2Elength%26%261%3D%3D%3Dd%2EnodeType%3Fn%2Efind%2EmatchesSelector%28d%2Ca%29%3F%5Bd%5D%3A%5B%5D%3An%2Efind%2Ematches%28a%2Cn%2Egrep%28b%2Cfunction%28a%29%7Breturn%201%3D%3D%3Da%2EnodeType%7D%29%29%7D%2Cn%2Efn%2Eextend%28%7Bfind%3Afunction%28a%29%7Bvar%20b%2Cc%3D%5B%5D%2Cd%3Dthis%2Ce%3Dd%2Elength%3Bif%28%22string%22%21%3Dtypeof%20a%29return%20this%2EpushStack%28n%28a%29%2Efilter%28function%28%29%7Bfor%28b%3D0%3Be%3Eb%3Bb%2B%2B%29if%28n%2Econtains%28d%5Bb%5D%2Cthis%29%29return%210%7D%29%29%3Bfor%28b%3D0%3Be%3Eb%3Bb%2B%2B%29n%2Efind%28a%2Cd%5Bb%5D%2Cc%29%3Breturn%20c%3Dthis%2EpushStack%28e%3E1%3Fn%2Eunique%28c%29%3Ac%29%2Cc%2Eselector%3Dthis%2Eselector%3Fthis%2Eselector%2B%22%20%22%2Ba%3Aa%2Cc%7D%2Cfilter%3Afunction%28a%29%7Breturn%20this%2EpushStack%28x%28this%2Ca%7C%7C%5B%5D%2C%211%29%29%7D%2Cnot%3Afunction%28a%29%7Breturn%20this%2EpushStack%28x%28this%2Ca%7C%7C%5B%5D%2C%210%29%29%7D%2Cis%3Afunction%28a%29%7Breturn%21%21x%28this%2C%22string%22%3D%3Dtypeof%20a%26%26u%2Etest%28a%29%3Fn%28a%29%3Aa%7C%7C%5B%5D%2C%211%29%2Elength%7D%7D%29%3Bvar%20y%2Cz%3Da%2Edocument%2CA%3D%2F%5E%28%3F%3A%5Cs%2A%28%3C%5B%5Cw%5CW%5D%2B%3E%29%5B%5E%3E%5D%2A%7C%23%28%5B%5Cw%2D%5D%2A%29%29%24%2F%2CB%3Dn%2Efn%2Einit%3Dfunction%28a%2Cb%29%7Bvar%20c%2Cd%3Bif%28%21a%29return%20this%3Bif%28%22string%22%3D%3Dtypeof%20a%29%7Bif%28c%3D%22%3C%22%3D%3D%3Da%2EcharAt%280%29%26%26%22%3E%22%3D%3D%3Da%2EcharAt%28a%2Elength%2D1%29%26%26a%2Elength%3E%3D3%3F%5Bnull%2Ca%2Cnull%5D%3AA%2Eexec%28a%29%2C%21c%7C%7C%21c%5B1%5D%26%26b%29return%21b%7C%7Cb%2Ejquery%3F%28b%7C%7Cy%29%2Efind%28a%29%3Athis%2Econstructor%28b%29%2Efind%28a%29%3Bif%28c%5B1%5D%29%7Bif%28b%3Db%20instanceof%20n%3Fb%5B0%5D%3Ab%2Cn%2Emerge%28this%2Cn%2EparseHTML%28c%5B1%5D%2Cb%26%26b%2EnodeType%3Fb%2EownerDocument%7C%7Cb%3Az%2C%210%29%29%2Cv%2Etest%28c%5B1%5D%29%26%26n%2EisPlainObject%28b%29%29for%28c%20in%20b%29n%2EisFunction%28this%5Bc%5D%29%3Fthis%5Bc%5D%28b%5Bc%5D%29%3Athis%2Eattr%28c%2Cb%5Bc%5D%29%3Breturn%20this%7Dif%28d%3Dz%2EgetElementById%28c%5B2%5D%29%2Cd%26%26d%2EparentNode%29%7Bif%28d%2Eid%21%3D%3Dc%5B2%5D%29return%20y%2Efind%28a%29%3Bthis%2Elength%3D1%2Cthis%5B0%5D%3Dd%7Dreturn%20this%2Econtext%3Dz%2Cthis%2Eselector%3Da%2Cthis%7Dreturn%20a%2EnodeType%3F%28this%2Econtext%3Dthis%5B0%5D%3Da%2Cthis%2Elength%3D1%2Cthis%29%3An%2EisFunction%28a%29%3F%22undefined%22%21%3Dtypeof%20y%2Eready%3Fy%2Eready%28a%29%3Aa%28n%29%3A%28void%200%21%3D%3Da%2Eselector%26%26%28this%2Eselector%3Da%2Eselector%2Cthis%2Econtext%3Da%2Econtext%29%2Cn%2EmakeArray%28a%2Cthis%29%29%7D%3BB%2Eprototype%3Dn%2Efn%2Cy%3Dn%28z%29%3Bvar%20C%3D%2F%5E%28%3F%3Aparents%7Cprev%28%3F%3AUntil%7CAll%29%29%2F%2CD%3D%7Bchildren%3A%210%2Ccontents%3A%210%2Cnext%3A%210%2Cprev%3A%210%7D%3Bn%2Eextend%28%7Bdir%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%3D%5B%5D%2Ce%3Da%5Bb%5D%3Bwhile%28e%26%269%21%3D%3De%2EnodeType%26%26%28void%200%3D%3D%3Dc%7C%7C1%21%3D%3De%2EnodeType%7C%7C%21n%28e%29%2Eis%28c%29%29%291%3D%3D%3De%2EnodeType%26%26d%2Epush%28e%29%2Ce%3De%5Bb%5D%3Breturn%20d%7D%2Csibling%3Afunction%28a%2Cb%29%7Bfor%28var%20c%3D%5B%5D%3Ba%3Ba%3Da%2EnextSibling%291%3D%3D%3Da%2EnodeType%26%26a%21%3D%3Db%26%26c%2Epush%28a%29%3Breturn%20c%7D%7D%29%2Cn%2Efn%2Eextend%28%7Bhas%3Afunction%28a%29%7Bvar%20b%2Cc%3Dn%28a%2Cthis%29%2Cd%3Dc%2Elength%3Breturn%20this%2Efilter%28function%28%29%7Bfor%28b%3D0%3Bd%3Eb%3Bb%2B%2B%29if%28n%2Econtains%28this%2Cc%5Bb%5D%29%29return%210%7D%29%7D%2Cclosest%3Afunction%28a%2Cb%29%7Bfor%28var%20c%2Cd%3D0%2Ce%3Dthis%2Elength%2Cf%3D%5B%5D%2Cg%3Du%2Etest%28a%29%7C%7C%22string%22%21%3Dtypeof%20a%3Fn%28a%2Cb%7C%7Cthis%2Econtext%29%3A0%3Be%3Ed%3Bd%2B%2B%29for%28c%3Dthis%5Bd%5D%3Bc%26%26c%21%3D%3Db%3Bc%3Dc%2EparentNode%29if%28c%2EnodeType%3C11%26%26%28g%3Fg%2Eindex%28c%29%3E%2D1%3A1%3D%3D%3Dc%2EnodeType%26%26n%2Efind%2EmatchesSelector%28c%2Ca%29%29%29%7Bf%2Epush%28c%29%3Bbreak%7Dreturn%20this%2EpushStack%28f%2Elength%3E1%3Fn%2Eunique%28f%29%3Af%29%7D%2Cindex%3Afunction%28a%29%7Breturn%20a%3F%22string%22%3D%3Dtypeof%20a%3Fn%2EinArray%28this%5B0%5D%2Cn%28a%29%29%3An%2EinArray%28a%2Ejquery%3Fa%5B0%5D%3Aa%2Cthis%29%3Athis%5B0%5D%26%26this%5B0%5D%2EparentNode%3Fthis%2Efirst%28%29%2EprevAll%28%29%2Elength%3A%2D1%7D%2Cadd%3Afunction%28a%2Cb%29%7Breturn%20this%2EpushStack%28n%2Eunique%28n%2Emerge%28this%2Eget%28%29%2Cn%28a%2Cb%29%29%29%29%7D%2CaddBack%3Afunction%28a%29%7Breturn%20this%2Eadd%28null%3D%3Da%3Fthis%2EprevObject%3Athis%2EprevObject%2Efilter%28a%29%29%7D%7D%29%3Bfunction%20E%28a%2Cb%29%7Bdo%20a%3Da%5Bb%5D%3Bwhile%28a%26%261%21%3D%3Da%2EnodeType%29%3Breturn%20a%7Dn%2Eeach%28%7Bparent%3Afunction%28a%29%7Bvar%20b%3Da%2EparentNode%3Breturn%20b%26%2611%21%3D%3Db%2EnodeType%3Fb%3Anull%7D%2Cparents%3Afunction%28a%29%7Breturn%20n%2Edir%28a%2C%22parentNode%22%29%7D%2CparentsUntil%3Afunction%28a%2Cb%2Cc%29%7Breturn%20n%2Edir%28a%2C%22parentNode%22%2Cc%29%7D%2Cnext%3Afunction%28a%29%7Breturn%20E%28a%2C%22nextSibling%22%29%7D%2Cprev%3Afunction%28a%29%7Breturn%20E%28a%2C%22previousSibling%22%29%7D%2CnextAll%3Afunction%28a%29%7Breturn%20n%2Edir%28a%2C%22nextSibling%22%29%7D%2CprevAll%3Afunction%28a%29%7Breturn%20n%2Edir%28a%2C%22previousSibling%22%29%7D%2CnextUntil%3Afunction%28a%2Cb%2Cc%29%7Breturn%20n%2Edir%28a%2C%22nextSibling%22%2Cc%29%7D%2CprevUntil%3Afunction%28a%2Cb%2Cc%29%7Breturn%20n%2Edir%28a%2C%22previousSibling%22%2Cc%29%7D%2Csiblings%3Afunction%28a%29%7Breturn%20n%2Esibling%28%28a%2EparentNode%7C%7C%7B%7D%29%2EfirstChild%2Ca%29%7D%2Cchildren%3Afunction%28a%29%7Breturn%20n%2Esibling%28a%2EfirstChild%29%7D%2Ccontents%3Afunction%28a%29%7Breturn%20n%2EnodeName%28a%2C%22iframe%22%29%3Fa%2EcontentDocument%7C%7Ca%2EcontentWindow%2Edocument%3An%2Emerge%28%5B%5D%2Ca%2EchildNodes%29%7D%7D%2Cfunction%28a%2Cb%29%7Bn%2Efn%5Ba%5D%3Dfunction%28c%2Cd%29%7Bvar%20e%3Dn%2Emap%28this%2Cb%2Cc%29%3Breturn%22Until%22%21%3D%3Da%2Eslice%28%2D5%29%26%26%28d%3Dc%29%2Cd%26%26%22string%22%3D%3Dtypeof%20d%26%26%28e%3Dn%2Efilter%28d%2Ce%29%29%2Cthis%2Elength%3E1%26%26%28D%5Ba%5D%7C%7C%28e%3Dn%2Eunique%28e%29%29%2CC%2Etest%28a%29%26%26%28e%3De%2Ereverse%28%29%29%29%2Cthis%2EpushStack%28e%29%7D%7D%29%3Bvar%20F%3D%2F%5CS%2B%2Fg%2CG%3D%7B%7D%3Bfunction%20H%28a%29%7Bvar%20b%3DG%5Ba%5D%3D%7B%7D%3Breturn%20n%2Eeach%28a%2Ematch%28F%29%7C%7C%5B%5D%2Cfunction%28a%2Cc%29%7Bb%5Bc%5D%3D%210%7D%29%2Cb%7Dn%2ECallbacks%3Dfunction%28a%29%7Ba%3D%22string%22%3D%3Dtypeof%20a%3FG%5Ba%5D%7C%7CH%28a%29%3An%2Eextend%28%7B%7D%2Ca%29%3Bvar%20b%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%3D%5B%5D%2Ci%3D%21a%2Eonce%26%26%5B%5D%2Cj%3Dfunction%28l%29%7Bfor%28c%3Da%2Ememory%26%26l%2Cd%3D%210%2Cf%3Dg%7C%7C0%2Cg%3D0%2Ce%3Dh%2Elength%2Cb%3D%210%3Bh%26%26e%3Ef%3Bf%2B%2B%29if%28h%5Bf%5D%2Eapply%28l%5B0%5D%2Cl%5B1%5D%29%3D%3D%3D%211%26%26a%2EstopOnFalse%29%7Bc%3D%211%3Bbreak%7Db%3D%211%2Ch%26%26%28i%3Fi%2Elength%26%26j%28i%2Eshift%28%29%29%3Ac%3Fh%3D%5B%5D%3Ak%2Edisable%28%29%29%7D%2Ck%3D%7Badd%3Afunction%28%29%7Bif%28h%29%7Bvar%20d%3Dh%2Elength%3B%21function%20f%28b%29%7Bn%2Eeach%28b%2Cfunction%28b%2Cc%29%7Bvar%20d%3Dn%2Etype%28c%29%3B%22function%22%3D%3D%3Dd%3Fa%2Eunique%26%26k%2Ehas%28c%29%7C%7Ch%2Epush%28c%29%3Ac%26%26c%2Elength%26%26%22string%22%21%3D%3Dd%26%26f%28c%29%7D%29%7D%28arguments%29%2Cb%3Fe%3Dh%2Elength%3Ac%26%26%28g%3Dd%2Cj%28c%29%29%7Dreturn%20this%7D%2Cremove%3Afunction%28%29%7Breturn%20h%26%26n%2Eeach%28arguments%2Cfunction%28a%2Cc%29%7Bvar%20d%3Bwhile%28%28d%3Dn%2EinArray%28c%2Ch%2Cd%29%29%3E%2D1%29h%2Esplice%28d%2C1%29%2Cb%26%26%28e%3E%3Dd%26%26e%2D%2D%2Cf%3E%3Dd%26%26f%2D%2D%29%7D%29%2Cthis%7D%2Chas%3Afunction%28a%29%7Breturn%20a%3Fn%2EinArray%28a%2Ch%29%3E%2D1%3A%21%28%21h%7C%7C%21h%2Elength%29%7D%2Cempty%3Afunction%28%29%7Breturn%20h%3D%5B%5D%2Ce%3D0%2Cthis%7D%2Cdisable%3Afunction%28%29%7Breturn%20h%3Di%3Dc%3Dvoid%200%2Cthis%7D%2Cdisabled%3Afunction%28%29%7Breturn%21h%7D%2Clock%3Afunction%28%29%7Breturn%20i%3Dvoid%200%2Cc%7C%7Ck%2Edisable%28%29%2Cthis%7D%2Clocked%3Afunction%28%29%7Breturn%21i%7D%2CfireWith%3Afunction%28a%2Cc%29%7Breturn%21h%7C%7Cd%26%26%21i%7C%7C%28c%3Dc%7C%7C%5B%5D%2Cc%3D%5Ba%2Cc%2Eslice%3Fc%2Eslice%28%29%3Ac%5D%2Cb%3Fi%2Epush%28c%29%3Aj%28c%29%29%2Cthis%7D%2Cfire%3Afunction%28%29%7Breturn%20k%2EfireWith%28this%2Carguments%29%2Cthis%7D%2Cfired%3Afunction%28%29%7Breturn%21%21d%7D%7D%3Breturn%20k%7D%2Cn%2Eextend%28%7BDeferred%3Afunction%28a%29%7Bvar%20b%3D%5B%5B%22resolve%22%2C%22done%22%2Cn%2ECallbacks%28%22once%20memory%22%29%2C%22resolved%22%5D%2C%5B%22reject%22%2C%22fail%22%2Cn%2ECallbacks%28%22once%20memory%22%29%2C%22rejected%22%5D%2C%5B%22notify%22%2C%22progress%22%2Cn%2ECallbacks%28%22memory%22%29%5D%5D%2Cc%3D%22pending%22%2Cd%3D%7Bstate%3Afunction%28%29%7Breturn%20c%7D%2Calways%3Afunction%28%29%7Breturn%20e%2Edone%28arguments%29%2Efail%28arguments%29%2Cthis%7D%2Cthen%3Afunction%28%29%7Bvar%20a%3Darguments%3Breturn%20n%2EDeferred%28function%28c%29%7Bn%2Eeach%28b%2Cfunction%28b%2Cf%29%7Bvar%20g%3Dn%2EisFunction%28a%5Bb%5D%29%26%26a%5Bb%5D%3Be%5Bf%5B1%5D%5D%28function%28%29%7Bvar%20a%3Dg%26%26g%2Eapply%28this%2Carguments%29%3Ba%26%26n%2EisFunction%28a%2Epromise%29%3Fa%2Epromise%28%29%2Edone%28c%2Eresolve%29%2Efail%28c%2Ereject%29%2Eprogress%28c%2Enotify%29%3Ac%5Bf%5B0%5D%2B%22With%22%5D%28this%3D%3D%3Dd%3Fc%2Epromise%28%29%3Athis%2Cg%3F%5Ba%5D%3Aarguments%29%7D%29%7D%29%2Ca%3Dnull%7D%29%2Epromise%28%29%7D%2Cpromise%3Afunction%28a%29%7Breturn%20null%21%3Da%3Fn%2Eextend%28a%2Cd%29%3Ad%7D%7D%2Ce%3D%7B%7D%3Breturn%20d%2Epipe%3Dd%2Ethen%2Cn%2Eeach%28b%2Cfunction%28a%2Cf%29%7Bvar%20g%3Df%5B2%5D%2Ch%3Df%5B3%5D%3Bd%5Bf%5B1%5D%5D%3Dg%2Eadd%2Ch%26%26g%2Eadd%28function%28%29%7Bc%3Dh%7D%2Cb%5B1%5Ea%5D%5B2%5D%2Edisable%2Cb%5B2%5D%5B2%5D%2Elock%29%2Ce%5Bf%5B0%5D%5D%3Dfunction%28%29%7Breturn%20e%5Bf%5B0%5D%2B%22With%22%5D%28this%3D%3D%3De%3Fd%3Athis%2Carguments%29%2Cthis%7D%2Ce%5Bf%5B0%5D%2B%22With%22%5D%3Dg%2EfireWith%7D%29%2Cd%2Epromise%28e%29%2Ca%26%26a%2Ecall%28e%2Ce%29%2Ce%7D%2Cwhen%3Afunction%28a%29%7Bvar%20b%3D0%2Cc%3Dd%2Ecall%28arguments%29%2Ce%3Dc%2Elength%2Cf%3D1%21%3D%3De%7C%7Ca%26%26n%2EisFunction%28a%2Epromise%29%3Fe%3A0%2Cg%3D1%3D%3D%3Df%3Fa%3An%2EDeferred%28%29%2Ch%3Dfunction%28a%2Cb%2Cc%29%7Breturn%20function%28e%29%7Bb%5Ba%5D%3Dthis%2Cc%5Ba%5D%3Darguments%2Elength%3E1%3Fd%2Ecall%28arguments%29%3Ae%2Cc%3D%3D%3Di%3Fg%2EnotifyWith%28b%2Cc%29%3A%2D%2Df%7C%7Cg%2EresolveWith%28b%2Cc%29%7D%7D%2Ci%2Cj%2Ck%3Bif%28e%3E1%29for%28i%3Dnew%20Array%28e%29%2Cj%3Dnew%20Array%28e%29%2Ck%3Dnew%20Array%28e%29%3Be%3Eb%3Bb%2B%2B%29c%5Bb%5D%26%26n%2EisFunction%28c%5Bb%5D%2Epromise%29%3Fc%5Bb%5D%2Epromise%28%29%2Edone%28h%28b%2Ck%2Cc%29%29%2Efail%28g%2Ereject%29%2Eprogress%28h%28b%2Cj%2Ci%29%29%3A%2D%2Df%3Breturn%20f%7C%7Cg%2EresolveWith%28k%2Cc%29%2Cg%2Epromise%28%29%7D%7D%29%3Bvar%20I%3Bn%2Efn%2Eready%3Dfunction%28a%29%7Breturn%20n%2Eready%2Epromise%28%29%2Edone%28a%29%2Cthis%7D%2Cn%2Eextend%28%7BisReady%3A%211%2CreadyWait%3A1%2CholdReady%3Afunction%28a%29%7Ba%3Fn%2EreadyWait%2B%2B%3An%2Eready%28%210%29%7D%2Cready%3Afunction%28a%29%7Bif%28a%3D%3D%3D%210%3F%21%2D%2Dn%2EreadyWait%3A%21n%2EisReady%29%7Bif%28%21z%2Ebody%29return%20setTimeout%28n%2Eready%29%3Bn%2EisReady%3D%210%2Ca%21%3D%3D%210%26%26%2D%2Dn%2EreadyWait%3E0%7C%7C%28I%2EresolveWith%28z%2C%5Bn%5D%29%2Cn%2Efn%2Etrigger%26%26n%28z%29%2Etrigger%28%22ready%22%29%2Eoff%28%22ready%22%29%29%7D%7D%7D%29%3Bfunction%20J%28%29%7Bz%2EaddEventListener%3F%28z%2EremoveEventListener%28%22DOMContentLoaded%22%2CK%2C%211%29%2Ca%2EremoveEventListener%28%22load%22%2CK%2C%211%29%29%3A%28z%2EdetachEvent%28%22onreadystatechange%22%2CK%29%2Ca%2EdetachEvent%28%22onload%22%2CK%29%29%7Dfunction%20K%28%29%7B%28z%2EaddEventListener%7C%7C%22load%22%3D%3D%3Devent%2Etype%7C%7C%22complete%22%3D%3D%3Dz%2EreadyState%29%26%26%28J%28%29%2Cn%2Eready%28%29%29%7Dn%2Eready%2Epromise%3Dfunction%28b%29%7Bif%28%21I%29if%28I%3Dn%2EDeferred%28%29%2C%22complete%22%3D%3D%3Dz%2EreadyState%29setTimeout%28n%2Eready%29%3Belse%20if%28z%2EaddEventListener%29z%2EaddEventListener%28%22DOMContentLoaded%22%2CK%2C%211%29%2Ca%2EaddEventListener%28%22load%22%2CK%2C%211%29%3Belse%7Bz%2EattachEvent%28%22onreadystatechange%22%2CK%29%2Ca%2EattachEvent%28%22onload%22%2CK%29%3Bvar%20c%3D%211%3Btry%7Bc%3Dnull%3D%3Da%2EframeElement%26%26z%2EdocumentElement%7Dcatch%28d%29%7B%7Dc%26%26c%2EdoScroll%26%26%21function%20e%28%29%7Bif%28%21n%2EisReady%29%7Btry%7Bc%2EdoScroll%28%22left%22%29%7Dcatch%28a%29%7Breturn%20setTimeout%28e%2C50%29%7DJ%28%29%2Cn%2Eready%28%29%7D%7D%28%29%7Dreturn%20I%2Epromise%28b%29%7D%3Bvar%20L%3D%22undefined%22%2CM%3Bfor%28M%20in%20n%28l%29%29break%3Bl%2EownLast%3D%220%22%21%3D%3DM%2Cl%2EinlineBlockNeedsLayout%3D%211%2Cn%28function%28%29%7Bvar%20a%2Cb%2Cc%3Dz%2EgetElementsByTagName%28%22body%22%29%5B0%5D%3Bc%26%26%28a%3Dz%2EcreateElement%28%22div%22%29%2Ca%2Estyle%2EcssText%3D%22border%3A0%3Bwidth%3A0%3Bheight%3A0%3Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A%2D9999px%3Bmargin%2Dtop%3A1px%22%2Cb%3Dz%2EcreateElement%28%22div%22%29%2Cc%2EappendChild%28a%29%2EappendChild%28b%29%2Ctypeof%20b%2Estyle%2Ezoom%21%3D%3DL%26%26%28b%2Estyle%2EcssText%3D%22border%3A0%3Bmargin%3A0%3Bwidth%3A1px%3Bpadding%3A1px%3Bdisplay%3Ainline%3Bzoom%3A1%22%2C%28l%2EinlineBlockNeedsLayout%3D3%3D%3D%3Db%2EoffsetWidth%29%26%26%28c%2Estyle%2Ezoom%3D1%29%29%2Cc%2EremoveChild%28a%29%2Ca%3Db%3Dnull%29%7D%29%2Cfunction%28%29%7Bvar%20a%3Dz%2EcreateElement%28%22div%22%29%3Bif%28null%3D%3Dl%2EdeleteExpando%29%7Bl%2EdeleteExpando%3D%210%3Btry%7Bdelete%20a%2Etest%7Dcatch%28b%29%7Bl%2EdeleteExpando%3D%211%7D%7Da%3Dnull%7D%28%29%2Cn%2EacceptData%3Dfunction%28a%29%7Bvar%20b%3Dn%2EnoData%5B%28a%2EnodeName%2B%22%20%22%29%2EtoLowerCase%28%29%5D%2Cc%3D%2Ba%2EnodeType%7C%7C1%3Breturn%201%21%3D%3Dc%26%269%21%3D%3Dc%3F%211%3A%21b%7C%7Cb%21%3D%3D%210%26%26a%2EgetAttribute%28%22classid%22%29%3D%3D%3Db%7D%3Bvar%20N%3D%2F%5E%28%3F%3A%5C%7B%5B%5Cw%5CW%5D%2A%5C%7D%7C%5C%5B%5B%5Cw%5CW%5D%2A%5C%5D%29%24%2F%2CO%3D%2F%28%5BA%2DZ%5D%29%2Fg%3Bfunction%20P%28a%2Cb%2Cc%29%7Bif%28void%200%3D%3D%3Dc%26%261%3D%3D%3Da%2EnodeType%29%7Bvar%20d%3D%22data%2D%22%2Bb%2Ereplace%28O%2C%22%2D%241%22%29%2EtoLowerCase%28%29%3Bif%28c%3Da%2EgetAttribute%28d%29%2C%22string%22%3D%3Dtypeof%20c%29%7Btry%7Bc%3D%22true%22%3D%3D%3Dc%3F%210%3A%22false%22%3D%3D%3Dc%3F%211%3A%22null%22%3D%3D%3Dc%3Fnull%3A%2Bc%2B%22%22%3D%3D%3Dc%3F%2Bc%3AN%2Etest%28c%29%3Fn%2EparseJSON%28c%29%3Ac%7Dcatch%28e%29%7B%7Dn%2Edata%28a%2Cb%2Cc%29%7Delse%20c%3Dvoid%200%7Dreturn%20c%7Dfunction%20Q%28a%29%7Bvar%20b%3Bfor%28b%20in%20a%29if%28%28%22data%22%21%3D%3Db%7C%7C%21n%2EisEmptyObject%28a%5Bb%5D%29%29%26%26%22toJSON%22%21%3D%3Db%29return%211%3Breturn%210%7Dfunction%20R%28a%2Cb%2Cd%2Ce%29%7Bif%28n%2EacceptData%28a%29%29%7Bvar%20f%2Cg%2Ch%3Dn%2Eexpando%2Ci%3Da%2EnodeType%2Cj%3Di%3Fn%2Ecache%3Aa%2Ck%3Di%3Fa%5Bh%5D%3Aa%5Bh%5D%26%26h%3Bif%28k%26%26j%5Bk%5D%26%26%28e%7C%7Cj%5Bk%5D%2Edata%29%7C%7Cvoid%200%21%3D%3Dd%7C%7C%22string%22%21%3Dtypeof%20b%29return%20k%7C%7C%28k%3Di%3Fa%5Bh%5D%3Dc%2Epop%28%29%7C%7Cn%2Eguid%2B%2B%3Ah%29%2Cj%5Bk%5D%7C%7C%28j%5Bk%5D%3Di%3F%7B%7D%3A%7BtoJSON%3An%2Enoop%7D%29%2C%28%22object%22%3D%3Dtypeof%20b%7C%7C%22function%22%3D%3Dtypeof%20b%29%26%26%28e%3Fj%5Bk%5D%3Dn%2Eextend%28j%5Bk%5D%2Cb%29%3Aj%5Bk%5D%2Edata%3Dn%2Eextend%28j%5Bk%5D%2Edata%2Cb%29%29%2Cg%3Dj%5Bk%5D%2Ce%7C%7C%28g%2Edata%7C%7C%28g%2Edata%3D%7B%7D%29%2Cg%3Dg%2Edata%29%2Cvoid%200%21%3D%3Dd%26%26%28g%5Bn%2EcamelCase%28b%29%5D%3Dd%29%2C%22string%22%3D%3Dtypeof%20b%3F%28f%3Dg%5Bb%5D%2Cnull%3D%3Df%26%26%28f%3Dg%5Bn%2EcamelCase%28b%29%5D%29%29%3Af%3Dg%2Cf%0A%7D%7Dfunction%20S%28a%2Cb%2Cc%29%7Bif%28n%2EacceptData%28a%29%29%7Bvar%20d%2Ce%2Cf%3Da%2EnodeType%2Cg%3Df%3Fn%2Ecache%3Aa%2Ch%3Df%3Fa%5Bn%2Eexpando%5D%3An%2Eexpando%3Bif%28g%5Bh%5D%29%7Bif%28b%26%26%28d%3Dc%3Fg%5Bh%5D%3Ag%5Bh%5D%2Edata%29%29%7Bn%2EisArray%28b%29%3Fb%3Db%2Econcat%28n%2Emap%28b%2Cn%2EcamelCase%29%29%3Ab%20in%20d%3Fb%3D%5Bb%5D%3A%28b%3Dn%2EcamelCase%28b%29%2Cb%3Db%20in%20d%3F%5Bb%5D%3Ab%2Esplit%28%22%20%22%29%29%2Ce%3Db%2Elength%3Bwhile%28e%2D%2D%29delete%20d%5Bb%5Be%5D%5D%3Bif%28c%3F%21Q%28d%29%3A%21n%2EisEmptyObject%28d%29%29return%7D%28c%7C%7C%28delete%20g%5Bh%5D%2Edata%2CQ%28g%5Bh%5D%29%29%29%26%26%28f%3Fn%2EcleanData%28%5Ba%5D%2C%210%29%3Al%2EdeleteExpando%7C%7Cg%21%3Dg%2Ewindow%3Fdelete%20g%5Bh%5D%3Ag%5Bh%5D%3Dnull%29%7D%7D%7Dn%2Eextend%28%7Bcache%3A%7B%7D%2CnoData%3A%7B%22applet%20%22%3A%210%2C%22embed%20%22%3A%210%2C%22object%20%22%3A%22clsid%3AD27CDB6E%2DAE6D%2D11cf%2D96B8%2D444553540000%22%7D%2ChasData%3Afunction%28a%29%7Breturn%20a%3Da%2EnodeType%3Fn%2Ecache%5Ba%5Bn%2Eexpando%5D%5D%3Aa%5Bn%2Eexpando%5D%2C%21%21a%26%26%21Q%28a%29%7D%2Cdata%3Afunction%28a%2Cb%2Cc%29%7Breturn%20R%28a%2Cb%2Cc%29%7D%2CremoveData%3Afunction%28a%2Cb%29%7Breturn%20S%28a%2Cb%29%7D%2C%5Fdata%3Afunction%28a%2Cb%2Cc%29%7Breturn%20R%28a%2Cb%2Cc%2C%210%29%7D%2C%5FremoveData%3Afunction%28a%2Cb%29%7Breturn%20S%28a%2Cb%2C%210%29%7D%7D%29%2Cn%2Efn%2Eextend%28%7Bdata%3Afunction%28a%2Cb%29%7Bvar%20c%2Cd%2Ce%2Cf%3Dthis%5B0%5D%2Cg%3Df%26%26f%2Eattributes%3Bif%28void%200%3D%3D%3Da%29%7Bif%28this%2Elength%26%26%28e%3Dn%2Edata%28f%29%2C1%3D%3D%3Df%2EnodeType%26%26%21n%2E%5Fdata%28f%2C%22parsedAttrs%22%29%29%29%7Bc%3Dg%2Elength%3Bwhile%28c%2D%2D%29d%3Dg%5Bc%5D%2Ename%2C0%3D%3D%3Dd%2EindexOf%28%22data%2D%22%29%26%26%28d%3Dn%2EcamelCase%28d%2Eslice%285%29%29%2CP%28f%2Cd%2Ce%5Bd%5D%29%29%3Bn%2E%5Fdata%28f%2C%22parsedAttrs%22%2C%210%29%7Dreturn%20e%7Dreturn%22object%22%3D%3Dtypeof%20a%3Fthis%2Eeach%28function%28%29%7Bn%2Edata%28this%2Ca%29%7D%29%3Aarguments%2Elength%3E1%3Fthis%2Eeach%28function%28%29%7Bn%2Edata%28this%2Ca%2Cb%29%7D%29%3Af%3FP%28f%2Ca%2Cn%2Edata%28f%2Ca%29%29%3Avoid%200%7D%2CremoveData%3Afunction%28a%29%7Breturn%20this%2Eeach%28function%28%29%7Bn%2EremoveData%28this%2Ca%29%7D%29%7D%7D%29%2Cn%2Eextend%28%7Bqueue%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%3Breturn%20a%3F%28b%3D%28b%7C%7C%22fx%22%29%2B%22queue%22%2Cd%3Dn%2E%5Fdata%28a%2Cb%29%2Cc%26%26%28%21d%7C%7Cn%2EisArray%28c%29%3Fd%3Dn%2E%5Fdata%28a%2Cb%2Cn%2EmakeArray%28c%29%29%3Ad%2Epush%28c%29%29%2Cd%7C%7C%5B%5D%29%3Avoid%200%7D%2Cdequeue%3Afunction%28a%2Cb%29%7Bb%3Db%7C%7C%22fx%22%3Bvar%20c%3Dn%2Equeue%28a%2Cb%29%2Cd%3Dc%2Elength%2Ce%3Dc%2Eshift%28%29%2Cf%3Dn%2E%5FqueueHooks%28a%2Cb%29%2Cg%3Dfunction%28%29%7Bn%2Edequeue%28a%2Cb%29%7D%3B%22inprogress%22%3D%3D%3De%26%26%28e%3Dc%2Eshift%28%29%2Cd%2D%2D%29%2Ce%26%26%28%22fx%22%3D%3D%3Db%26%26c%2Eunshift%28%22inprogress%22%29%2Cdelete%20f%2Estop%2Ce%2Ecall%28a%2Cg%2Cf%29%29%2C%21d%26%26f%26%26f%2Eempty%2Efire%28%29%7D%2C%5FqueueHooks%3Afunction%28a%2Cb%29%7Bvar%20c%3Db%2B%22queueHooks%22%3Breturn%20n%2E%5Fdata%28a%2Cc%29%7C%7Cn%2E%5Fdata%28a%2Cc%2C%7Bempty%3An%2ECallbacks%28%22once%20memory%22%29%2Eadd%28function%28%29%7Bn%2E%5FremoveData%28a%2Cb%2B%22queue%22%29%2Cn%2E%5FremoveData%28a%2Cc%29%7D%29%7D%29%7D%7D%29%2Cn%2Efn%2Eextend%28%7Bqueue%3Afunction%28a%2Cb%29%7Bvar%20c%3D2%3Breturn%22string%22%21%3Dtypeof%20a%26%26%28b%3Da%2Ca%3D%22fx%22%2Cc%2D%2D%29%2Carguments%2Elength%3Cc%3Fn%2Equeue%28this%5B0%5D%2Ca%29%3Avoid%200%3D%3D%3Db%3Fthis%3Athis%2Eeach%28function%28%29%7Bvar%20c%3Dn%2Equeue%28this%2Ca%2Cb%29%3Bn%2E%5FqueueHooks%28this%2Ca%29%2C%22fx%22%3D%3D%3Da%26%26%22inprogress%22%21%3D%3Dc%5B0%5D%26%26n%2Edequeue%28this%2Ca%29%7D%29%7D%2Cdequeue%3Afunction%28a%29%7Breturn%20this%2Eeach%28function%28%29%7Bn%2Edequeue%28this%2Ca%29%7D%29%7D%2CclearQueue%3Afunction%28a%29%7Breturn%20this%2Equeue%28a%7C%7C%22fx%22%2C%5B%5D%29%7D%2Cpromise%3Afunction%28a%2Cb%29%7Bvar%20c%2Cd%3D1%2Ce%3Dn%2EDeferred%28%29%2Cf%3Dthis%2Cg%3Dthis%2Elength%2Ch%3Dfunction%28%29%7B%2D%2Dd%7C%7Ce%2EresolveWith%28f%2C%5Bf%5D%29%7D%3B%22string%22%21%3Dtypeof%20a%26%26%28b%3Da%2Ca%3Dvoid%200%29%2Ca%3Da%7C%7C%22fx%22%3Bwhile%28g%2D%2D%29c%3Dn%2E%5Fdata%28f%5Bg%5D%2Ca%2B%22queueHooks%22%29%2Cc%26%26c%2Eempty%26%26%28d%2B%2B%2Cc%2Eempty%2Eadd%28h%29%29%3Breturn%20h%28%29%2Ce%2Epromise%28b%29%7D%7D%29%3Bvar%20T%3D%2F%5B%2B%2D%5D%3F%28%3F%3A%5Cd%2A%5C%2E%7C%29%5Cd%2B%28%3F%3A%5BeE%5D%5B%2B%2D%5D%3F%5Cd%2B%7C%29%2F%2Esource%2CU%3D%5B%22Top%22%2C%22Right%22%2C%22Bottom%22%2C%22Left%22%5D%2CV%3Dfunction%28a%2Cb%29%7Breturn%20a%3Db%7C%7Ca%2C%22none%22%3D%3D%3Dn%2Ecss%28a%2C%22display%22%29%7C%7C%21n%2Econtains%28a%2EownerDocument%2Ca%29%7D%2CW%3Dn%2Eaccess%3Dfunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%2Cg%29%7Bvar%20h%3D0%2Ci%3Da%2Elength%2Cj%3Dnull%3D%3Dc%3Bif%28%22object%22%3D%3D%3Dn%2Etype%28c%29%29%7Be%3D%210%3Bfor%28h%20in%20c%29n%2Eaccess%28a%2Cb%2Ch%2Cc%5Bh%5D%2C%210%2Cf%2Cg%29%7Delse%20if%28void%200%21%3D%3Dd%26%26%28e%3D%210%2Cn%2EisFunction%28d%29%7C%7C%28g%3D%210%29%2Cj%26%26%28g%3F%28b%2Ecall%28a%2Cd%29%2Cb%3Dnull%29%3A%28j%3Db%2Cb%3Dfunction%28a%2Cb%2Cc%29%7Breturn%20j%2Ecall%28n%28a%29%2Cc%29%7D%29%29%2Cb%29%29for%28%3Bi%3Eh%3Bh%2B%2B%29b%28a%5Bh%5D%2Cc%2Cg%3Fd%3Ad%2Ecall%28a%5Bh%5D%2Ch%2Cb%28a%5Bh%5D%2Cc%29%29%29%3Breturn%20e%3Fa%3Aj%3Fb%2Ecall%28a%29%3Ai%3Fb%28a%5B0%5D%2Cc%29%3Af%7D%2CX%3D%2F%5E%28%3F%3Acheckbox%7Cradio%29%24%2Fi%3B%21function%28%29%7Bvar%20a%3Dz%2EcreateDocumentFragment%28%29%2Cb%3Dz%2EcreateElement%28%22div%22%29%2Cc%3Dz%2EcreateElement%28%22input%22%29%3Bif%28b%2EsetAttribute%28%22className%22%2C%22t%22%29%2Cb%2EinnerHTML%3D%22%20%20%3Clink%2F%3E%3Ctable%3E%3C%2Ftable%3E%3Ca%20href%3D%27%2Fa%27%3Ea%3C%2Fa%3E%22%2Cl%2EleadingWhitespace%3D3%3D%3D%3Db%2EfirstChild%2EnodeType%2Cl%2Etbody%3D%21b%2EgetElementsByTagName%28%22tbody%22%29%2Elength%2Cl%2EhtmlSerialize%3D%21%21b%2EgetElementsByTagName%28%22link%22%29%2Elength%2Cl%2Ehtml5Clone%3D%22%3C%3Anav%3E%3C%2F%3Anav%3E%22%21%3D%3Dz%2EcreateElement%28%22nav%22%29%2EcloneNode%28%210%29%2EouterHTML%2Cc%2Etype%3D%22checkbox%22%2Cc%2Echecked%3D%210%2Ca%2EappendChild%28c%29%2Cl%2EappendChecked%3Dc%2Echecked%2Cb%2EinnerHTML%3D%22%3Ctextarea%3Ex%3C%2Ftextarea%3E%22%2Cl%2EnoCloneChecked%3D%21%21b%2EcloneNode%28%210%29%2ElastChild%2EdefaultValue%2Ca%2EappendChild%28b%29%2Cb%2EinnerHTML%3D%22%3Cinput%20type%3D%27radio%27%20checked%3D%27checked%27%20name%3D%27t%27%2F%3E%22%2Cl%2EcheckClone%3Db%2EcloneNode%28%210%29%2EcloneNode%28%210%29%2ElastChild%2Echecked%2Cl%2EnoCloneEvent%3D%210%2Cb%2EattachEvent%26%26%28b%2EattachEvent%28%22onclick%22%2Cfunction%28%29%7Bl%2EnoCloneEvent%3D%211%7D%29%2Cb%2EcloneNode%28%210%29%2Eclick%28%29%29%2Cnull%3D%3Dl%2EdeleteExpando%29%7Bl%2EdeleteExpando%3D%210%3Btry%7Bdelete%20b%2Etest%7Dcatch%28d%29%7Bl%2EdeleteExpando%3D%211%7D%7Da%3Db%3Dc%3Dnull%7D%28%29%2Cfunction%28%29%7Bvar%20b%2Cc%2Cd%3Dz%2EcreateElement%28%22div%22%29%3Bfor%28b%20in%7Bsubmit%3A%210%2Cchange%3A%210%2Cfocusin%3A%210%7D%29c%3D%22on%22%2Bb%2C%28l%5Bb%2B%22Bubbles%22%5D%3Dc%20in%20a%29%7C%7C%28d%2EsetAttribute%28c%2C%22t%22%29%2Cl%5Bb%2B%22Bubbles%22%5D%3Dd%2Eattributes%5Bc%5D%2Eexpando%3D%3D%3D%211%29%3Bd%3Dnull%7D%28%29%3Bvar%20Y%3D%2F%5E%28%3F%3Ainput%7Cselect%7Ctextarea%29%24%2Fi%2CZ%3D%2F%5Ekey%2F%2C%24%3D%2F%5E%28%3F%3Amouse%7Ccontextmenu%29%7Cclick%2F%2C%5F%3D%2F%5E%28%3F%3Afocusinfocus%7Cfocusoutblur%29%24%2F%2Cab%3D%2F%5E%28%5B%5E%2E%5D%2A%29%28%3F%3A%5C%2E%28%2E%2B%29%7C%29%24%2F%3Bfunction%20bb%28%29%7Breturn%210%7Dfunction%20cb%28%29%7Breturn%211%7Dfunction%20db%28%29%7Btry%7Breturn%20z%2EactiveElement%7Dcatch%28a%29%7B%7D%7Dn%2Eevent%3D%7Bglobal%3A%7B%7D%2Cadd%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Bvar%20f%2Cg%2Ch%2Ci%2Cj%2Ck%2Cl%2Cm%2Co%2Cp%2Cq%2Cr%3Dn%2E%5Fdata%28a%29%3Bif%28r%29%7Bc%2Ehandler%26%26%28i%3Dc%2Cc%3Di%2Ehandler%2Ce%3Di%2Eselector%29%2Cc%2Eguid%7C%7C%28c%2Eguid%3Dn%2Eguid%2B%2B%29%2C%28g%3Dr%2Eevents%29%7C%7C%28g%3Dr%2Eevents%3D%7B%7D%29%2C%28k%3Dr%2Ehandle%29%7C%7C%28k%3Dr%2Ehandle%3Dfunction%28a%29%7Breturn%20typeof%20n%3D%3D%3DL%7C%7Ca%26%26n%2Eevent%2Etriggered%3D%3D%3Da%2Etype%3Fvoid%200%3An%2Eevent%2Edispatch%2Eapply%28k%2Eelem%2Carguments%29%7D%2Ck%2Eelem%3Da%29%2Cb%3D%28b%7C%7C%22%22%29%2Ematch%28F%29%7C%7C%5B%22%22%5D%2Ch%3Db%2Elength%3Bwhile%28h%2D%2D%29f%3Dab%2Eexec%28b%5Bh%5D%29%7C%7C%5B%5D%2Co%3Dq%3Df%5B1%5D%2Cp%3D%28f%5B2%5D%7C%7C%22%22%29%2Esplit%28%22%2E%22%29%2Esort%28%29%2Co%26%26%28j%3Dn%2Eevent%2Especial%5Bo%5D%7C%7C%7B%7D%2Co%3D%28e%3Fj%2EdelegateType%3Aj%2EbindType%29%7C%7Co%2Cj%3Dn%2Eevent%2Especial%5Bo%5D%7C%7C%7B%7D%2Cl%3Dn%2Eextend%28%7Btype%3Ao%2CorigType%3Aq%2Cdata%3Ad%2Chandler%3Ac%2Cguid%3Ac%2Eguid%2Cselector%3Ae%2CneedsContext%3Ae%26%26n%2Eexpr%2Ematch%2EneedsContext%2Etest%28e%29%2Cnamespace%3Ap%2Ejoin%28%22%2E%22%29%7D%2Ci%29%2C%28m%3Dg%5Bo%5D%29%7C%7C%28m%3Dg%5Bo%5D%3D%5B%5D%2Cm%2EdelegateCount%3D0%2Cj%2Esetup%26%26j%2Esetup%2Ecall%28a%2Cd%2Cp%2Ck%29%21%3D%3D%211%7C%7C%28a%2EaddEventListener%3Fa%2EaddEventListener%28o%2Ck%2C%211%29%3Aa%2EattachEvent%26%26a%2EattachEvent%28%22on%22%2Bo%2Ck%29%29%29%2Cj%2Eadd%26%26%28j%2Eadd%2Ecall%28a%2Cl%29%2Cl%2Ehandler%2Eguid%7C%7C%28l%2Ehandler%2Eguid%3Dc%2Eguid%29%29%2Ce%3Fm%2Esplice%28m%2EdelegateCount%2B%2B%2C0%2Cl%29%3Am%2Epush%28l%29%2Cn%2Eevent%2Eglobal%5Bo%5D%3D%210%29%3Ba%3Dnull%7D%7D%2Cremove%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Bvar%20f%2Cg%2Ch%2Ci%2Cj%2Ck%2Cl%2Cm%2Co%2Cp%2Cq%2Cr%3Dn%2EhasData%28a%29%26%26n%2E%5Fdata%28a%29%3Bif%28r%26%26%28k%3Dr%2Eevents%29%29%7Bb%3D%28b%7C%7C%22%22%29%2Ematch%28F%29%7C%7C%5B%22%22%5D%2Cj%3Db%2Elength%3Bwhile%28j%2D%2D%29if%28h%3Dab%2Eexec%28b%5Bj%5D%29%7C%7C%5B%5D%2Co%3Dq%3Dh%5B1%5D%2Cp%3D%28h%5B2%5D%7C%7C%22%22%29%2Esplit%28%22%2E%22%29%2Esort%28%29%2Co%29%7Bl%3Dn%2Eevent%2Especial%5Bo%5D%7C%7C%7B%7D%2Co%3D%28d%3Fl%2EdelegateType%3Al%2EbindType%29%7C%7Co%2Cm%3Dk%5Bo%5D%7C%7C%5B%5D%2Ch%3Dh%5B2%5D%26%26new%20RegExp%28%22%28%5E%7C%5C%5C%2E%29%22%2Bp%2Ejoin%28%22%5C%5C%2E%28%3F%3A%2E%2A%5C%5C%2E%7C%29%22%29%2B%22%28%5C%5C%2E%7C%24%29%22%29%2Ci%3Df%3Dm%2Elength%3Bwhile%28f%2D%2D%29g%3Dm%5Bf%5D%2C%21e%26%26q%21%3D%3Dg%2EorigType%7C%7Cc%26%26c%2Eguid%21%3D%3Dg%2Eguid%7C%7Ch%26%26%21h%2Etest%28g%2Enamespace%29%7C%7Cd%26%26d%21%3D%3Dg%2Eselector%26%26%28%22%2A%2A%22%21%3D%3Dd%7C%7C%21g%2Eselector%29%7C%7C%28m%2Esplice%28f%2C1%29%2Cg%2Eselector%26%26m%2EdelegateCount%2D%2D%2Cl%2Eremove%26%26l%2Eremove%2Ecall%28a%2Cg%29%29%3Bi%26%26%21m%2Elength%26%26%28l%2Eteardown%26%26l%2Eteardown%2Ecall%28a%2Cp%2Cr%2Ehandle%29%21%3D%3D%211%7C%7Cn%2EremoveEvent%28a%2Co%2Cr%2Ehandle%29%2Cdelete%20k%5Bo%5D%29%7Delse%20for%28o%20in%20k%29n%2Eevent%2Eremove%28a%2Co%2Bb%5Bj%5D%2Cc%2Cd%2C%210%29%3Bn%2EisEmptyObject%28k%29%26%26%28delete%20r%2Ehandle%2Cn%2E%5FremoveData%28a%2C%22events%22%29%29%7D%7D%2Ctrigger%3Afunction%28b%2Cc%2Cd%2Ce%29%7Bvar%20f%2Cg%2Ch%2Ci%2Ck%2Cl%2Cm%2Co%3D%5Bd%7C%7Cz%5D%2Cp%3Dj%2Ecall%28b%2C%22type%22%29%3Fb%2Etype%3Ab%2Cq%3Dj%2Ecall%28b%2C%22namespace%22%29%3Fb%2Enamespace%2Esplit%28%22%2E%22%29%3A%5B%5D%3Bif%28h%3Dl%3Dd%3Dd%7C%7Cz%2C3%21%3D%3Dd%2EnodeType%26%268%21%3D%3Dd%2EnodeType%26%26%21%5F%2Etest%28p%2Bn%2Eevent%2Etriggered%29%26%26%28p%2EindexOf%28%22%2E%22%29%3E%3D0%26%26%28q%3Dp%2Esplit%28%22%2E%22%29%2Cp%3Dq%2Eshift%28%29%2Cq%2Esort%28%29%29%2Cg%3Dp%2EindexOf%28%22%3A%22%29%3C0%26%26%22on%22%2Bp%2Cb%3Db%5Bn%2Eexpando%5D%3Fb%3Anew%20n%2EEvent%28p%2C%22object%22%3D%3Dtypeof%20b%26%26b%29%2Cb%2EisTrigger%3De%3F2%3A3%2Cb%2Enamespace%3Dq%2Ejoin%28%22%2E%22%29%2Cb%2Enamespace%5Fre%3Db%2Enamespace%3Fnew%20RegExp%28%22%28%5E%7C%5C%5C%2E%29%22%2Bq%2Ejoin%28%22%5C%5C%2E%28%3F%3A%2E%2A%5C%5C%2E%7C%29%22%29%2B%22%28%5C%5C%2E%7C%24%29%22%29%3Anull%2Cb%2Eresult%3Dvoid%200%2Cb%2Etarget%7C%7C%28b%2Etarget%3Dd%29%2Cc%3Dnull%3D%3Dc%3F%5Bb%5D%3An%2EmakeArray%28c%2C%5Bb%5D%29%2Ck%3Dn%2Eevent%2Especial%5Bp%5D%7C%7C%7B%7D%2Ce%7C%7C%21k%2Etrigger%7C%7Ck%2Etrigger%2Eapply%28d%2Cc%29%21%3D%3D%211%29%29%7Bif%28%21e%26%26%21k%2EnoBubble%26%26%21n%2EisWindow%28d%29%29%7Bfor%28i%3Dk%2EdelegateType%7C%7Cp%2C%5F%2Etest%28i%2Bp%29%7C%7C%28h%3Dh%2EparentNode%29%3Bh%3Bh%3Dh%2EparentNode%29o%2Epush%28h%29%2Cl%3Dh%3Bl%3D%3D%3D%28d%2EownerDocument%7C%7Cz%29%26%26o%2Epush%28l%2EdefaultView%7C%7Cl%2EparentWindow%7C%7Ca%29%7Dm%3D0%3Bwhile%28%28h%3Do%5Bm%2B%2B%5D%29%26%26%21b%2EisPropagationStopped%28%29%29b%2Etype%3Dm%3E1%3Fi%3Ak%2EbindType%7C%7Cp%2Cf%3D%28n%2E%5Fdata%28h%2C%22events%22%29%7C%7C%7B%7D%29%5Bb%2Etype%5D%26%26n%2E%5Fdata%28h%2C%22handle%22%29%2Cf%26%26f%2Eapply%28h%2Cc%29%2Cf%3Dg%26%26h%5Bg%5D%2Cf%26%26f%2Eapply%26%26n%2EacceptData%28h%29%26%26%28b%2Eresult%3Df%2Eapply%28h%2Cc%29%2Cb%2Eresult%3D%3D%3D%211%26%26b%2EpreventDefault%28%29%29%3Bif%28b%2Etype%3Dp%2C%21e%26%26%21b%2EisDefaultPrevented%28%29%26%26%28%21k%2E%5Fdefault%7C%7Ck%2E%5Fdefault%2Eapply%28o%2Epop%28%29%2Cc%29%3D%3D%3D%211%29%26%26n%2EacceptData%28d%29%26%26g%26%26d%5Bp%5D%26%26%21n%2EisWindow%28d%29%29%7Bl%3Dd%5Bg%5D%2Cl%26%26%28d%5Bg%5D%3Dnull%29%2Cn%2Eevent%2Etriggered%3Dp%3Btry%7Bd%5Bp%5D%28%29%7Dcatch%28r%29%7B%7Dn%2Eevent%2Etriggered%3Dvoid%200%2Cl%26%26%28d%5Bg%5D%3Dl%29%7Dreturn%20b%2Eresult%7D%7D%2Cdispatch%3Afunction%28a%29%7Ba%3Dn%2Eevent%2Efix%28a%29%3Bvar%20b%2Cc%2Ce%2Cf%2Cg%2Ch%3D%5B%5D%2Ci%3Dd%2Ecall%28arguments%29%2Cj%3D%28n%2E%5Fdata%28this%2C%22events%22%29%7C%7C%7B%7D%29%5Ba%2Etype%5D%7C%7C%5B%5D%2Ck%3Dn%2Eevent%2Especial%5Ba%2Etype%5D%7C%7C%7B%7D%3Bif%28i%5B0%5D%3Da%2Ca%2EdelegateTarget%3Dthis%2C%21k%2EpreDispatch%7C%7Ck%2EpreDispatch%2Ecall%28this%2Ca%29%21%3D%3D%211%29%7Bh%3Dn%2Eevent%2Ehandlers%2Ecall%28this%2Ca%2Cj%29%2Cb%3D0%3Bwhile%28%28f%3Dh%5Bb%2B%2B%5D%29%26%26%21a%2EisPropagationStopped%28%29%29%7Ba%2EcurrentTarget%3Df%2Eelem%2Cg%3D0%3Bwhile%28%28e%3Df%2Ehandlers%5Bg%2B%2B%5D%29%26%26%21a%2EisImmediatePropagationStopped%28%29%29%28%21a%2Enamespace%5Fre%7C%7Ca%2Enamespace%5Fre%2Etest%28e%2Enamespace%29%29%26%26%28a%2EhandleObj%3De%2Ca%2Edata%3De%2Edata%2Cc%3D%28%28n%2Eevent%2Especial%5Be%2EorigType%5D%7C%7C%7B%7D%29%2Ehandle%7C%7Ce%2Ehandler%29%2Eapply%28f%2Eelem%2Ci%29%2Cvoid%200%21%3D%3Dc%26%26%28a%2Eresult%3Dc%29%3D%3D%3D%211%26%26%28a%2EpreventDefault%28%29%2Ca%2EstopPropagation%28%29%29%29%7Dreturn%20k%2EpostDispatch%26%26k%2EpostDispatch%2Ecall%28this%2Ca%29%2Ca%2Eresult%7D%7D%2Chandlers%3Afunction%28a%2Cb%29%7Bvar%20c%2Cd%2Ce%2Cf%2Cg%3D%5B%5D%2Ch%3Db%2EdelegateCount%2Ci%3Da%2Etarget%3Bif%28h%26%26i%2EnodeType%26%26%28%21a%2Ebutton%7C%7C%22click%22%21%3D%3Da%2Etype%29%29for%28%3Bi%21%3Dthis%3Bi%3Di%2EparentNode%7C%7Cthis%29if%281%3D%3D%3Di%2EnodeType%26%26%28i%2Edisabled%21%3D%3D%210%7C%7C%22click%22%21%3D%3Da%2Etype%29%29%7Bfor%28e%3D%5B%5D%2Cf%3D0%3Bh%3Ef%3Bf%2B%2B%29d%3Db%5Bf%5D%2Cc%3Dd%2Eselector%2B%22%20%22%2Cvoid%200%3D%3D%3De%5Bc%5D%26%26%28e%5Bc%5D%3Dd%2EneedsContext%3Fn%28c%2Cthis%29%2Eindex%28i%29%3E%3D0%3An%2Efind%28c%2Cthis%2Cnull%2C%5Bi%5D%29%2Elength%29%2Ce%5Bc%5D%26%26e%2Epush%28d%29%3Be%2Elength%26%26g%2Epush%28%7Belem%3Ai%2Chandlers%3Ae%7D%29%7Dreturn%20h%3Cb%2Elength%26%26g%2Epush%28%7Belem%3Athis%2Chandlers%3Ab%2Eslice%28h%29%7D%29%2Cg%7D%2Cfix%3Afunction%28a%29%7Bif%28a%5Bn%2Eexpando%5D%29return%20a%3Bvar%20b%2Cc%2Cd%2Ce%3Da%2Etype%2Cf%3Da%2Cg%3Dthis%2EfixHooks%5Be%5D%3Bg%7C%7C%28this%2EfixHooks%5Be%5D%3Dg%3D%24%2Etest%28e%29%3Fthis%2EmouseHooks%3AZ%2Etest%28e%29%3Fthis%2EkeyHooks%3A%7B%7D%29%2Cd%3Dg%2Eprops%3Fthis%2Eprops%2Econcat%28g%2Eprops%29%3Athis%2Eprops%2Ca%3Dnew%20n%2EEvent%28f%29%2Cb%3Dd%2Elength%3Bwhile%28b%2D%2D%29c%3Dd%5Bb%5D%2Ca%5Bc%5D%3Df%5Bc%5D%3Breturn%20a%2Etarget%7C%7C%28a%2Etarget%3Df%2EsrcElement%7C%7Cz%29%2C3%3D%3D%3Da%2Etarget%2EnodeType%26%26%28a%2Etarget%3Da%2Etarget%2EparentNode%29%2Ca%2EmetaKey%3D%21%21a%2EmetaKey%2Cg%2Efilter%3Fg%2Efilter%28a%2Cf%29%3Aa%7D%2Cprops%3A%22altKey%20bubbles%20cancelable%20ctrlKey%20currentTarget%20eventPhase%20metaKey%20relatedTarget%20shiftKey%20target%20timeStamp%20view%20which%22%2Esplit%28%22%20%22%29%2CfixHooks%3A%7B%7D%2CkeyHooks%3A%7Bprops%3A%22char%20charCode%20key%20keyCode%22%2Esplit%28%22%20%22%29%2Cfilter%3Afunction%28a%2Cb%29%7Breturn%20null%3D%3Da%2Ewhich%26%26%28a%2Ewhich%3Dnull%21%3Db%2EcharCode%3Fb%2EcharCode%3Ab%2EkeyCode%29%2Ca%7D%7D%2CmouseHooks%3A%7Bprops%3A%22button%20buttons%20clientX%20clientY%20fromElement%20offsetX%20offsetY%20pageX%20pageY%20screenX%20screenY%20toElement%22%2Esplit%28%22%20%22%29%2Cfilter%3Afunction%28a%2Cb%29%7Bvar%20c%2Cd%2Ce%2Cf%3Db%2Ebutton%2Cg%3Db%2EfromElement%3Breturn%20null%3D%3Da%2EpageX%26%26null%21%3Db%2EclientX%26%26%28d%3Da%2Etarget%2EownerDocument%7C%7Cz%2Ce%3Dd%2EdocumentElement%2Cc%3Dd%2Ebody%2Ca%2EpageX%3Db%2EclientX%2B%28e%26%26e%2EscrollLeft%7C%7Cc%26%26c%2EscrollLeft%7C%7C0%29%2D%28e%26%26e%2EclientLeft%7C%7Cc%26%26c%2EclientLeft%7C%7C0%29%2Ca%2EpageY%3Db%2EclientY%2B%28e%26%26e%2EscrollTop%7C%7Cc%26%26c%2EscrollTop%7C%7C0%29%2D%28e%26%26e%2EclientTop%7C%7Cc%26%26c%2EclientTop%7C%7C0%29%29%2C%21a%2ErelatedTarget%26%26g%26%26%28a%2ErelatedTarget%3Dg%3D%3D%3Da%2Etarget%3Fb%2EtoElement%3Ag%29%2Ca%2Ewhich%7C%7Cvoid%200%3D%3D%3Df%7C%7C%28a%2Ewhich%3D1%26f%3F1%3A2%26f%3F3%3A4%26f%3F2%3A0%29%2Ca%7D%7D%2Cspecial%3A%7Bload%3A%7BnoBubble%3A%210%7D%2Cfocus%3A%7Btrigger%3Afunction%28%29%7Bif%28this%21%3D%3Ddb%28%29%26%26this%2Efocus%29try%7Breturn%20this%2Efocus%28%29%2C%211%7Dcatch%28a%29%7B%7D%7D%2CdelegateType%3A%22focusin%22%7D%2Cblur%3A%7Btrigger%3Afunction%28%29%7Breturn%20this%3D%3D%3Ddb%28%29%26%26this%2Eblur%3F%28this%2Eblur%28%29%2C%211%29%3Avoid%200%7D%2CdelegateType%3A%22focusout%22%7D%2Cclick%3A%7Btrigger%3Afunction%28%29%7Breturn%20n%2EnodeName%28this%2C%22input%22%29%26%26%22checkbox%22%3D%3D%3Dthis%2Etype%26%26this%2Eclick%3F%28this%2Eclick%28%29%2C%211%29%3Avoid%200%7D%2C%5Fdefault%3Afunction%28a%29%7Breturn%20n%2EnodeName%28a%2Etarget%2C%22a%22%29%7D%7D%2Cbeforeunload%3A%7BpostDispatch%3Afunction%28a%29%7Bvoid%200%21%3D%3Da%2Eresult%26%26%28a%2EoriginalEvent%2EreturnValue%3Da%2Eresult%29%7D%7D%7D%2Csimulate%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3Dn%2Eextend%28new%20n%2EEvent%2Cc%2C%7Btype%3Aa%2CisSimulated%3A%210%2CoriginalEvent%3A%7B%7D%7D%29%3Bd%3Fn%2Eevent%2Etrigger%28e%2Cnull%2Cb%29%3An%2Eevent%2Edispatch%2Ecall%28b%2Ce%29%2Ce%2EisDefaultPrevented%28%29%26%26c%2EpreventDefault%28%29%7D%7D%2Cn%2EremoveEvent%3Dz%2EremoveEventListener%3Ffunction%28a%2Cb%2Cc%29%7Ba%2EremoveEventListener%26%26a%2EremoveEventListener%28b%2Cc%2C%211%29%7D%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%3D%22on%22%2Bb%3Ba%2EdetachEvent%26%26%28typeof%20a%5Bd%5D%3D%3D%3DL%26%26%28a%5Bd%5D%3Dnull%29%2Ca%2EdetachEvent%28d%2Cc%29%29%7D%2Cn%2EEvent%3Dfunction%28a%2Cb%29%7Breturn%20this%20instanceof%20n%2EEvent%3F%28a%26%26a%2Etype%3F%28this%2EoriginalEvent%3Da%2Cthis%2Etype%3Da%2Etype%2Cthis%2EisDefaultPrevented%3Da%2EdefaultPrevented%7C%7Cvoid%200%3D%3D%3Da%2EdefaultPrevented%26%26%28a%2EreturnValue%3D%3D%3D%211%7C%7Ca%2EgetPreventDefault%26%26a%2EgetPreventDefault%28%29%29%3Fbb%3Acb%29%3Athis%2Etype%3Da%2Cb%26%26n%2Eextend%28this%2Cb%29%2Cthis%2EtimeStamp%3Da%26%26a%2EtimeStamp%7C%7Cn%2Enow%28%29%2Cvoid%28this%5Bn%2Eexpando%5D%3D%210%29%29%3Anew%20n%2EEvent%28a%2Cb%29%7D%2Cn%2EEvent%2Eprototype%3D%7BisDefaultPrevented%3Acb%2CisPropagationStopped%3Acb%2CisImmediatePropagationStopped%3Acb%2CpreventDefault%3Afunction%28%29%7Bvar%20a%3Dthis%2EoriginalEvent%3Bthis%2EisDefaultPrevented%3Dbb%2Ca%26%26%28a%2EpreventDefault%3Fa%2EpreventDefault%28%29%3Aa%2EreturnValue%3D%211%29%7D%2CstopPropagation%3Afunction%28%29%7Bvar%20a%3Dthis%2EoriginalEvent%3Bthis%2EisPropagationStopped%3Dbb%2Ca%26%26%28a%2EstopPropagation%26%26a%2EstopPropagation%28%29%2Ca%2EcancelBubble%3D%210%29%7D%2CstopImmediatePropagation%3Afunction%28%29%7Bthis%2EisImmediatePropagationStopped%3Dbb%2Cthis%2EstopPropagation%28%29%7D%7D%2Cn%2Eeach%28%7Bmouseenter%3A%22mouseover%22%2Cmouseleave%3A%22mouseout%22%7D%2Cfunction%28a%2Cb%29%7Bn%2Eevent%2Especial%5Ba%5D%3D%7BdelegateType%3Ab%2CbindType%3Ab%2Chandle%3Afunction%28a%29%7Bvar%20c%2Cd%3Dthis%2Ce%3Da%2ErelatedTarget%2Cf%3Da%2EhandleObj%3Breturn%28%21e%7C%7Ce%21%3D%3Dd%26%26%21n%2Econtains%28d%2Ce%29%29%26%26%28a%2Etype%3Df%2EorigType%2Cc%3Df%2Ehandler%2Eapply%28this%2Carguments%29%2Ca%2Etype%3Db%29%2Cc%7D%7D%7D%29%2Cl%2EsubmitBubbles%7C%7C%28n%2Eevent%2Especial%2Esubmit%3D%7Bsetup%3Afunction%28%29%7Breturn%20n%2EnodeName%28this%2C%22form%22%29%3F%211%3Avoid%20n%2Eevent%2Eadd%28this%2C%22click%2E%5Fsubmit%20keypress%2E%5Fsubmit%22%2Cfunction%28a%29%7Bvar%20b%3Da%2Etarget%2Cc%3Dn%2EnodeName%28b%2C%22input%22%29%7C%7Cn%2EnodeName%28b%2C%22button%22%29%3Fb%2Eform%3Avoid%200%3Bc%26%26%21n%2E%5Fdata%28c%2C%22submitBubbles%22%29%26%26%28n%2Eevent%2Eadd%28c%2C%22submit%2E%5Fsubmit%22%2Cfunction%28a%29%7Ba%2E%5Fsubmit%5Fbubble%3D%210%7D%29%2Cn%2E%5Fdata%28c%2C%22submitBubbles%22%2C%210%29%29%7D%29%7D%2CpostDispatch%3Afunction%28a%29%7Ba%2E%5Fsubmit%5Fbubble%26%26%28delete%20a%2E%5Fsubmit%5Fbubble%2Cthis%2EparentNode%26%26%21a%2EisTrigger%26%26n%2Eevent%2Esimulate%28%22submit%22%2Cthis%2EparentNode%2Ca%2C%210%29%29%7D%2Cteardown%3Afunction%28%29%7Breturn%20n%2EnodeName%28this%2C%22form%22%29%3F%211%3Avoid%20n%2Eevent%2Eremove%28this%2C%22%2E%5Fsubmit%22%29%7D%7D%29%2Cl%2EchangeBubbles%7C%7C%28n%2Eevent%2Especial%2Echange%3D%7Bsetup%3Afunction%28%29%7Breturn%20Y%2Etest%28this%2EnodeName%29%3F%28%28%22checkbox%22%3D%3D%3Dthis%2Etype%7C%7C%22radio%22%3D%3D%3Dthis%2Etype%29%26%26%28n%2Eevent%2Eadd%28this%2C%22propertychange%2E%5Fchange%22%2Cfunction%28a%29%7B%22checked%22%3D%3D%3Da%2EoriginalEvent%2EpropertyName%26%26%28this%2E%5Fjust%5Fchanged%3D%210%29%7D%29%2Cn%2Eevent%2Eadd%28this%2C%22click%2E%5Fchange%22%2Cfunction%28a%29%7Bthis%2E%5Fjust%5Fchanged%26%26%21a%2EisTrigger%26%26%28this%2E%5Fjust%5Fchanged%3D%211%29%2Cn%2Eevent%2Esimulate%28%22change%22%2Cthis%2Ca%2C%210%29%7D%29%29%2C%211%29%3Avoid%20n%2Eevent%2Eadd%28this%2C%22beforeactivate%2E%5Fchange%22%2Cfunction%28a%29%7Bvar%20b%3Da%2Etarget%3BY%2Etest%28b%2EnodeName%29%26%26%21n%2E%5Fdata%28b%2C%22changeBubbles%22%29%26%26%28n%2Eevent%2Eadd%28b%2C%22change%2E%5Fchange%22%2Cfunction%28a%29%7B%21this%2EparentNode%7C%7Ca%2EisSimulated%7C%7Ca%2EisTrigger%7C%7Cn%2Eevent%2Esimulate%28%22change%22%2Cthis%2EparentNode%2Ca%2C%210%29%7D%29%2Cn%2E%5Fdata%28b%2C%22changeBubbles%22%2C%210%29%29%7D%29%7D%2Chandle%3Afunction%28a%29%7Bvar%20b%3Da%2Etarget%3Breturn%20this%21%3D%3Db%7C%7Ca%2EisSimulated%7C%7Ca%2EisTrigger%7C%7C%22radio%22%21%3D%3Db%2Etype%26%26%22checkbox%22%21%3D%3Db%2Etype%3Fa%2EhandleObj%2Ehandler%2Eapply%28this%2Carguments%29%3Avoid%200%7D%2Cteardown%3Afunction%28%29%7Breturn%20n%2Eevent%2Eremove%28this%2C%22%2E%5Fchange%22%29%2C%21Y%2Etest%28this%2EnodeName%29%7D%7D%29%2Cl%2EfocusinBubbles%7C%7Cn%2Eeach%28%7Bfocus%3A%22focusin%22%2Cblur%3A%22focusout%22%7D%2Cfunction%28a%2Cb%29%7Bvar%20c%3Dfunction%28a%29%7Bn%2Eevent%2Esimulate%28b%2Ca%2Etarget%2Cn%2Eevent%2Efix%28a%29%2C%210%29%7D%3Bn%2Eevent%2Especial%5Bb%5D%3D%7Bsetup%3Afunction%28%29%7Bvar%20d%3Dthis%2EownerDocument%7C%7Cthis%2Ce%3Dn%2E%5Fdata%28d%2Cb%29%3Be%7C%7Cd%2EaddEventListener%28a%2Cc%2C%210%29%2Cn%2E%5Fdata%28d%2Cb%2C%28e%7C%7C0%29%2B1%29%7D%2Cteardown%3Afunction%28%29%7Bvar%20d%3Dthis%2EownerDocument%7C%7Cthis%2Ce%3Dn%2E%5Fdata%28d%2Cb%29%2D1%3Be%3Fn%2E%5Fdata%28d%2Cb%2Ce%29%3A%28d%2EremoveEventListener%28a%2Cc%2C%210%29%2Cn%2E%5FremoveData%28d%2Cb%29%29%7D%7D%7D%29%2Cn%2Efn%2Eextend%28%7Bon%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%29%7Bvar%20f%2Cg%3Bif%28%22object%22%3D%3Dtypeof%20a%29%7B%22string%22%21%3Dtypeof%20b%26%26%28c%3Dc%7C%7Cb%2Cb%3Dvoid%200%29%3Bfor%28f%20in%20a%29this%2Eon%28f%2Cb%2Cc%2Ca%5Bf%5D%2Ce%29%3Breturn%20this%7Dif%28null%3D%3Dc%26%26null%3D%3Dd%3F%28d%3Db%2Cc%3Db%3Dvoid%200%29%3Anull%3D%3Dd%26%26%28%22string%22%3D%3Dtypeof%20b%3F%28d%3Dc%2Cc%3Dvoid%200%29%3A%28d%3Dc%2Cc%3Db%2Cb%3Dvoid%200%29%29%2Cd%3D%3D%3D%211%29d%3Dcb%3Belse%20if%28%21d%29return%20this%3Breturn%201%3D%3D%3De%26%26%28g%3Dd%2Cd%3Dfunction%28a%29%7Breturn%20n%28%29%2Eoff%28a%29%2Cg%2Eapply%28this%2Carguments%29%7D%2Cd%2Eguid%3Dg%2Eguid%7C%7C%28g%2Eguid%3Dn%2Eguid%2B%2B%29%29%2Cthis%2Eeach%28function%28%29%7Bn%2Eevent%2Eadd%28this%2Ca%2Cd%2Cc%2Cb%29%7D%29%7D%2Cone%3Afunction%28a%2Cb%2Cc%2Cd%29%7Breturn%20this%2Eon%28a%2Cb%2Cc%2Cd%2C1%29%7D%2Coff%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%2Ce%3Bif%28a%26%26a%2EpreventDefault%26%26a%2EhandleObj%29return%20d%3Da%2EhandleObj%2Cn%28a%2EdelegateTarget%29%2Eoff%28d%2Enamespace%3Fd%2EorigType%2B%22%2E%22%2Bd%2Enamespace%3Ad%2EorigType%2Cd%2Eselector%2Cd%2Ehandler%29%2Cthis%3Bif%28%22object%22%3D%3Dtypeof%20a%29%7Bfor%28e%20in%20a%29this%2Eoff%28e%2Cb%2Ca%5Be%5D%29%3Breturn%20this%7Dreturn%28b%3D%3D%3D%211%7C%7C%22function%22%3D%3Dtypeof%20b%29%26%26%28c%3Db%2Cb%3Dvoid%200%29%2Cc%3D%3D%3D%211%26%26%28c%3Dcb%29%2Cthis%2Eeach%28function%28%29%7Bn%2Eevent%2Eremove%28this%2Ca%2Cc%2Cb%29%7D%29%7D%2Ctrigger%3Afunction%28a%2Cb%29%7Breturn%20this%2Eeach%28function%28%29%7Bn%2Eevent%2Etrigger%28a%2Cb%2Cthis%29%7D%29%7D%2CtriggerHandler%3Afunction%28a%2Cb%29%7Bvar%20c%3Dthis%5B0%5D%3Breturn%20c%3Fn%2Eevent%2Etrigger%28a%2Cb%2Cc%2C%210%29%3Avoid%200%7D%7D%29%3Bfunction%20eb%28a%29%7Bvar%20b%3Dfb%2Esplit%28%22%7C%22%29%2Cc%3Da%2EcreateDocumentFragment%28%29%3Bif%28c%2EcreateElement%29while%28b%2Elength%29c%2EcreateElement%28b%2Epop%28%29%29%3Breturn%20c%7Dvar%20fb%3D%22abbr%7Carticle%7Caside%7Caudio%7Cbdi%7Ccanvas%7Cdata%7Cdatalist%7Cdetails%7Cfigcaption%7Cfigure%7Cfooter%7Cheader%7Chgroup%7Cmark%7Cmeter%7Cnav%7Coutput%7Cprogress%7Csection%7Csummary%7Ctime%7Cvideo%22%2Cgb%3D%2F%20jQuery%5Cd%2B%3D%22%28%3F%3Anull%7C%5Cd%2B%29%22%2Fg%2Chb%3Dnew%20RegExp%28%22%3C%28%3F%3A%22%2Bfb%2B%22%29%5B%5C%5Cs%2F%3E%5D%22%2C%22i%22%29%2Cib%3D%2F%5E%5Cs%2B%2F%2Cjb%3D%2F%3C%28%3F%21area%7Cbr%7Ccol%7Cembed%7Chr%7Cimg%7Cinput%7Clink%7Cmeta%7Cparam%29%28%28%5B%5Cw%3A%5D%2B%29%5B%5E%3E%5D%2A%29%5C%2F%3E%2Fgi%2Ckb%3D%2F%3C%28%5B%5Cw%3A%5D%2B%29%2F%2Clb%3D%2F%3Ctbody%2Fi%2Cmb%3D%2F%3C%7C%26%23%3F%5Cw%2B%3B%2F%2Cnb%3D%2F%3C%28%3F%3Ascript%7Cstyle%7Clink%29%2Fi%2Cob%3D%2Fchecked%5Cs%2A%28%3F%3A%5B%5E%3D%5D%7C%3D%5Cs%2A%2Echecked%2E%29%2Fi%2Cpb%3D%2F%5E%24%7C%5C%2F%28%3F%3Ajava%7Cecma%29script%2Fi%2Cqb%3D%2F%5Etrue%5C%2F%28%2E%2A%29%2F%2Crb%3D%2F%5E%5Cs%2A%3C%21%28%3F%3A%5C%5BCDATA%5C%5B%7C%2D%2D%29%7C%28%3F%3A%5C%5D%5C%5D%7C%2D%2D%29%3E%5Cs%2A%24%2Fg%2Csb%3D%7Boption%3A%5B1%2C%22%3Cselect%20multiple%3D%27multiple%27%3E%22%2C%22%3C%2Fselect%3E%22%5D%2Clegend%3A%5B1%2C%22%3Cfieldset%3E%22%2C%22%3C%2Ffieldset%3E%22%5D%2Carea%3A%5B1%2C%22%3Cmap%3E%22%2C%22%3C%2Fmap%3E%22%5D%2Cparam%3A%5B1%2C%22%3Cobject%3E%22%2C%22%3C%2Fobject%3E%22%5D%2Cthead%3A%5B1%2C%22%3Ctable%3E%22%2C%22%3C%2Ftable%3E%22%5D%2Ctr%3A%5B2%2C%22%3Ctable%3E%3Ctbody%3E%22%2C%22%3C%2Ftbody%3E%3C%2Ftable%3E%22%5D%2Ccol%3A%5B2%2C%22%3Ctable%3E%3Ctbody%3E%3C%2Ftbody%3E%3Ccolgroup%3E%22%2C%22%3C%2Fcolgroup%3E%3C%2Ftable%3E%22%5D%2Ctd%3A%5B3%2C%22%3Ctable%3E%3Ctbody%3E%3Ctr%3E%22%2C%22%3C%2Ftr%3E%3C%2Ftbody%3E%3C%2Ftable%3E%22%5D%2C%5Fdefault%3Al%2EhtmlSerialize%3F%5B0%2C%22%22%2C%22%22%5D%3A%5B1%2C%22X%3Cdiv%3E%22%2C%22%3C%2Fdiv%3E%22%5D%7D%2Ctb%3Deb%28z%29%2Cub%3Dtb%2EappendChild%28z%2EcreateElement%28%22div%22%29%29%3Bsb%2Eoptgroup%3Dsb%2Eoption%2Csb%2Etbody%3Dsb%2Etfoot%3Dsb%2Ecolgroup%3Dsb%2Ecaption%3Dsb%2Ethead%2Csb%2Eth%3Dsb%2Etd%3Bfunction%20vb%28a%2Cb%29%7Bvar%20c%2Cd%2Ce%3D0%2Cf%3Dtypeof%20a%2EgetElementsByTagName%21%3D%3DL%3Fa%2EgetElementsByTagName%28b%7C%7C%22%2A%22%29%3Atypeof%20a%2EquerySelectorAll%21%3D%3DL%3Fa%2EquerySelectorAll%28b%7C%7C%22%2A%22%29%3Avoid%200%3Bif%28%21f%29for%28f%3D%5B%5D%2Cc%3Da%2EchildNodes%7C%7Ca%3Bnull%21%3D%28d%3Dc%5Be%5D%29%3Be%2B%2B%29%21b%7C%7Cn%2EnodeName%28d%2Cb%29%3Ff%2Epush%28d%29%3An%2Emerge%28f%2Cvb%28d%2Cb%29%29%3Breturn%20void%200%3D%3D%3Db%7C%7Cb%26%26n%2EnodeName%28a%2Cb%29%3Fn%2Emerge%28%5Ba%5D%2Cf%29%3Af%7Dfunction%20wb%28a%29%7BX%2Etest%28a%2Etype%29%26%26%28a%2EdefaultChecked%3Da%2Echecked%29%7Dfunction%20xb%28a%2Cb%29%7Breturn%20n%2EnodeName%28a%2C%22table%22%29%26%26n%2EnodeName%2811%21%3D%3Db%2EnodeType%3Fb%3Ab%2EfirstChild%2C%22tr%22%29%3Fa%2EgetElementsByTagName%28%22tbody%22%29%5B0%5D%7C%7Ca%2EappendChild%28a%2EownerDocument%2EcreateElement%28%22tbody%22%29%29%3Aa%7Dfunction%20yb%28a%29%7Breturn%20a%2Etype%3D%28null%21%3D%3Dn%2Efind%2Eattr%28a%2C%22type%22%29%29%2B%22%2F%22%2Ba%2Etype%2Ca%7Dfunction%20zb%28a%29%7Bvar%20b%3Dqb%2Eexec%28a%2Etype%29%3Breturn%20b%3Fa%2Etype%3Db%5B1%5D%3Aa%2EremoveAttribute%28%22type%22%29%2Ca%7Dfunction%20Ab%28a%2Cb%29%7Bfor%28var%20c%2Cd%3D0%3Bnull%21%3D%28c%3Da%5Bd%5D%29%3Bd%2B%2B%29n%2E%5Fdata%28c%2C%22globalEval%22%2C%21b%7C%7Cn%2E%5Fdata%28b%5Bd%5D%2C%22globalEval%22%29%29%7Dfunction%20Bb%28a%2Cb%29%7Bif%281%3D%3D%3Db%2EnodeType%26%26n%2EhasData%28a%29%29%7Bvar%20c%2Cd%2Ce%2Cf%3Dn%2E%5Fdata%28a%29%2Cg%3Dn%2E%5Fdata%28b%2Cf%29%2Ch%3Df%2Eevents%3Bif%28h%29%7Bdelete%20g%2Ehandle%2Cg%2Eevents%3D%7B%7D%3Bfor%28c%20in%20h%29for%28d%3D0%2Ce%3Dh%5Bc%5D%2Elength%3Be%3Ed%3Bd%2B%2B%29n%2Eevent%2Eadd%28b%2Cc%2Ch%5Bc%5D%5Bd%5D%29%7Dg%2Edata%26%26%28g%2Edata%3Dn%2Eextend%28%7B%7D%2Cg%2Edata%29%29%7D%7Dfunction%20Cb%28a%2Cb%29%7Bvar%20c%2Cd%2Ce%3Bif%281%3D%3D%3Db%2EnodeType%29%7Bif%28c%3Db%2EnodeName%2EtoLowerCase%28%29%2C%21l%2EnoCloneEvent%26%26b%5Bn%2Eexpando%5D%29%7Be%3Dn%2E%5Fdata%28b%29%3Bfor%28d%20in%20e%2Eevents%29n%2EremoveEvent%28b%2Cd%2Ce%2Ehandle%29%3Bb%2EremoveAttribute%28n%2Eexpando%29%7D%22script%22%3D%3D%3Dc%26%26b%2Etext%21%3D%3Da%2Etext%3F%28yb%28b%29%2Etext%3Da%2Etext%2Czb%28b%29%29%3A%22object%22%3D%3D%3Dc%3F%28b%2EparentNode%26%26%28b%2EouterHTML%3Da%2EouterHTML%29%2Cl%2Ehtml5Clone%26%26a%2EinnerHTML%26%26%21n%2Etrim%28b%2EinnerHTML%29%26%26%28b%2EinnerHTML%3Da%2EinnerHTML%29%29%3A%22input%22%3D%3D%3Dc%26%26X%2Etest%28a%2Etype%29%3F%28b%2EdefaultChecked%3Db%2Echecked%3Da%2Echecked%2Cb%2Evalue%21%3D%3Da%2Evalue%26%26%28b%2Evalue%3Da%2Evalue%29%29%3A%22option%22%3D%3D%3Dc%3Fb%2EdefaultSelected%3Db%2Eselected%3Da%2EdefaultSelected%3A%28%22input%22%3D%3D%3Dc%7C%7C%22textarea%22%3D%3D%3Dc%29%26%26%28b%2EdefaultValue%3Da%2EdefaultValue%29%7D%7Dn%2Eextend%28%7Bclone%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%2Ce%2Cf%2Cg%2Ch%2Ci%3Dn%2Econtains%28a%2EownerDocument%2Ca%29%3Bif%28l%2Ehtml5Clone%7C%7Cn%2EisXMLDoc%28a%29%7C%7C%21hb%2Etest%28%22%3C%22%2Ba%2EnodeName%2B%22%3E%22%29%3Ff%3Da%2EcloneNode%28%210%29%3A%28ub%2EinnerHTML%3Da%2EouterHTML%2Cub%2EremoveChild%28f%3Dub%2EfirstChild%29%29%2C%21%28l%2EnoCloneEvent%26%26l%2EnoCloneChecked%7C%7C1%21%3D%3Da%2EnodeType%26%2611%21%3D%3Da%2EnodeType%7C%7Cn%2EisXMLDoc%28a%29%29%29for%28d%3Dvb%28f%29%2Ch%3Dvb%28a%29%2Cg%3D0%3Bnull%21%3D%28e%3Dh%5Bg%5D%29%3B%2B%2Bg%29d%5Bg%5D%26%26Cb%28e%2Cd%5Bg%5D%29%3Bif%28b%29if%28c%29for%28h%3Dh%7C%7Cvb%28a%29%2Cd%3Dd%7C%7Cvb%28f%29%2Cg%3D0%3Bnull%21%3D%28e%3Dh%5Bg%5D%29%3Bg%2B%2B%29Bb%28e%2Cd%5Bg%5D%29%3Belse%20Bb%28a%2Cf%29%3Breturn%20d%3Dvb%28f%2C%22script%22%29%2Cd%2Elength%3E0%26%26Ab%28d%2C%21i%26%26vb%28a%2C%22script%22%29%29%2Cd%3Dh%3De%3Dnull%2Cf%7D%2CbuildFragment%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bfor%28var%20e%2Cf%2Cg%2Ch%2Ci%2Cj%2Ck%2Cm%3Da%2Elength%2Co%3Deb%28b%29%2Cp%3D%5B%5D%2Cq%3D0%3Bm%3Eq%3Bq%2B%2B%29if%28f%3Da%5Bq%5D%2Cf%7C%7C0%3D%3D%3Df%29if%28%22object%22%3D%3D%3Dn%2Etype%28f%29%29n%2Emerge%28p%2Cf%2EnodeType%3F%5Bf%5D%3Af%29%3Belse%20if%28mb%2Etest%28f%29%29%7Bh%3Dh%7C%7Co%2EappendChild%28b%2EcreateElement%28%22div%22%29%29%2Ci%3D%28kb%2Eexec%28f%29%7C%7C%5B%22%22%2C%22%22%5D%29%5B1%5D%2EtoLowerCase%28%29%2Ck%3Dsb%5Bi%5D%7C%7Csb%2E%5Fdefault%2Ch%2EinnerHTML%3Dk%5B1%5D%2Bf%2Ereplace%28jb%2C%22%3C%241%3E%3C%2F%242%3E%22%29%2Bk%5B2%5D%2Ce%3Dk%5B0%5D%3Bwhile%28e%2D%2D%29h%3Dh%2ElastChild%3Bif%28%21l%2EleadingWhitespace%26%26ib%2Etest%28f%29%26%26p%2Epush%28b%2EcreateTextNode%28ib%2Eexec%28f%29%5B0%5D%29%29%2C%21l%2Etbody%29%7Bf%3D%22table%22%21%3D%3Di%7C%7Clb%2Etest%28f%29%3F%22%3Ctable%3E%22%21%3D%3Dk%5B1%5D%7C%7Clb%2Etest%28f%29%3F0%3Ah%3Ah%2EfirstChild%2Ce%3Df%26%26f%2EchildNodes%2Elength%3Bwhile%28e%2D%2D%29n%2EnodeName%28j%3Df%2EchildNodes%5Be%5D%2C%22tbody%22%29%26%26%21j%2EchildNodes%2Elength%26%26f%2EremoveChild%28j%29%7Dn%2Emerge%28p%2Ch%2EchildNodes%29%2Ch%2EtextContent%3D%22%22%3Bwhile%28h%2EfirstChild%29h%2EremoveChild%28h%2EfirstChild%29%3Bh%3Do%2ElastChild%7Delse%20p%2Epush%28b%2EcreateTextNode%28f%29%29%3Bh%26%26o%2EremoveChild%28h%29%2Cl%2EappendChecked%7C%7Cn%2Egrep%28vb%28p%2C%22input%22%29%2Cwb%29%2Cq%3D0%3Bwhile%28f%3Dp%5Bq%2B%2B%5D%29if%28%28%21d%7C%7C%2D1%3D%3D%3Dn%2EinArray%28f%2Cd%29%29%26%26%28g%3Dn%2Econtains%28f%2EownerDocument%2Cf%29%2Ch%3Dvb%28o%2EappendChild%28f%29%2C%22script%22%29%2Cg%26%26Ab%28h%29%2Cc%29%29%7Be%3D0%3Bwhile%28f%3Dh%5Be%2B%2B%5D%29pb%2Etest%28f%2Etype%7C%7C%22%22%29%26%26c%2Epush%28f%29%7Dreturn%20h%3Dnull%2Co%7D%2CcleanData%3Afunction%28a%2Cb%29%7Bfor%28var%20d%2Ce%2Cf%2Cg%2Ch%3D0%2Ci%3Dn%2Eexpando%2Cj%3Dn%2Ecache%2Ck%3Dl%2EdeleteExpando%2Cm%3Dn%2Eevent%2Especial%3Bnull%21%3D%28d%3Da%5Bh%5D%29%3Bh%2B%2B%29if%28%28b%7C%7Cn%2EacceptData%28d%29%29%26%26%28f%3Dd%5Bi%5D%2Cg%3Df%26%26j%5Bf%5D%29%29%7Bif%28g%2Eevents%29for%28e%20in%20g%2Eevents%29m%5Be%5D%3Fn%2Eevent%2Eremove%28d%2Ce%29%3An%2EremoveEvent%28d%2Ce%2Cg%2Ehandle%29%3Bj%5Bf%5D%26%26%28delete%20j%5Bf%5D%2Ck%3Fdelete%20d%5Bi%5D%3Atypeof%20d%2EremoveAttribute%21%3D%3DL%3Fd%2EremoveAttribute%28i%29%3Ad%5Bi%5D%3Dnull%2Cc%2Epush%28f%29%29%7D%7D%7D%29%2Cn%2Efn%2Eextend%28%7Btext%3Afunction%28a%29%7Breturn%20W%28this%2Cfunction%28a%29%7Breturn%20void%200%3D%3D%3Da%3Fn%2Etext%28this%29%3Athis%2Eempty%28%29%2Eappend%28%28this%5B0%5D%26%26this%5B0%5D%2EownerDocument%7C%7Cz%29%2EcreateTextNode%28a%29%29%7D%2Cnull%2Ca%2Carguments%2Elength%29%7D%2Cappend%3Afunction%28%29%7Breturn%20this%2EdomManip%28arguments%2Cfunction%28a%29%7Bif%281%3D%3D%3Dthis%2EnodeType%7C%7C11%3D%3D%3Dthis%2EnodeType%7C%7C9%3D%3D%3Dthis%2EnodeType%29%7Bvar%20b%3Dxb%28this%2Ca%29%3Bb%2EappendChild%28a%29%7D%7D%29%7D%2Cprepend%3Afunction%28%29%7Breturn%20this%2EdomManip%28arguments%2Cfunction%28a%29%7Bif%281%3D%3D%3Dthis%2EnodeType%7C%7C11%3D%3D%3Dthis%2EnodeType%7C%7C9%3D%3D%3Dthis%2EnodeType%29%7Bvar%20b%3Dxb%28this%2Ca%29%3Bb%2EinsertBefore%28a%2Cb%2EfirstChild%29%7D%7D%29%7D%2Cbefore%3Afunction%28%29%7Breturn%20this%2EdomManip%28arguments%2Cfunction%28a%29%7Bthis%2EparentNode%26%26this%2EparentNode%2EinsertBefore%28a%2Cthis%29%7D%29%7D%2Cafter%3Afunction%28%29%7Breturn%20this%2EdomManip%28arguments%2Cfunction%28a%29%7Bthis%2EparentNode%26%26this%2EparentNode%2EinsertBefore%28a%2Cthis%2EnextSibling%29%7D%29%7D%2Cremove%3Afunction%28a%2Cb%29%7Bfor%28var%20c%2Cd%3Da%3Fn%2Efilter%28a%2Cthis%29%3Athis%2Ce%3D0%3Bnull%21%3D%28c%3Dd%5Be%5D%29%3Be%2B%2B%29b%7C%7C1%21%3D%3Dc%2EnodeType%7C%7Cn%2EcleanData%28vb%28c%29%29%2Cc%2EparentNode%26%26%28b%26%26n%2Econtains%28c%2EownerDocument%2Cc%29%26%26Ab%28vb%28c%2C%22script%22%29%29%2Cc%2EparentNode%2EremoveChild%28c%29%29%3Breturn%20this%7D%2Cempty%3Afunction%28%29%7Bfor%28var%20a%2Cb%3D0%3Bnull%21%3D%28a%3Dthis%5Bb%5D%29%3Bb%2B%2B%29%7B1%3D%3D%3Da%2EnodeType%26%26n%2EcleanData%28vb%28a%2C%211%29%29%3Bwhile%28a%2EfirstChild%29a%2EremoveChild%28a%2EfirstChild%29%3Ba%2Eoptions%26%26n%2EnodeName%28a%2C%22select%22%29%26%26%28a%2Eoptions%2Elength%3D0%29%7Dreturn%20this%7D%2Cclone%3Afunction%28a%2Cb%29%7Breturn%20a%3Dnull%3D%3Da%3F%211%3Aa%2Cb%3Dnull%3D%3Db%3Fa%3Ab%2Cthis%2Emap%28function%28%29%7Breturn%20n%2Eclone%28this%2Ca%2Cb%29%7D%29%7D%2Chtml%3Afunction%28a%29%7Breturn%20W%28this%2Cfunction%28a%29%7Bvar%20b%3Dthis%5B0%5D%7C%7C%7B%7D%2Cc%3D0%2Cd%3Dthis%2Elength%3Bif%28void%200%3D%3D%3Da%29return%201%3D%3D%3Db%2EnodeType%3Fb%2EinnerHTML%2Ereplace%28gb%2C%22%22%29%3Avoid%200%3Bif%28%21%28%22string%22%21%3Dtypeof%20a%7C%7Cnb%2Etest%28a%29%7C%7C%21l%2EhtmlSerialize%26%26hb%2Etest%28a%29%7C%7C%21l%2EleadingWhitespace%26%26ib%2Etest%28a%29%7C%7Csb%5B%28kb%2Eexec%28a%29%7C%7C%5B%22%22%2C%22%22%5D%29%5B1%5D%2EtoLowerCase%28%29%5D%29%29%7Ba%3Da%2Ereplace%28jb%2C%22%3C%241%3E%3C%2F%242%3E%22%29%3Btry%7Bfor%28%3Bd%3Ec%3Bc%2B%2B%29b%3Dthis%5Bc%5D%7C%7C%7B%7D%2C1%3D%3D%3Db%2EnodeType%26%26%28n%2EcleanData%28vb%28b%2C%211%29%29%2Cb%2EinnerHTML%3Da%29%3Bb%3D0%7Dcatch%28e%29%7B%7D%7Db%26%26this%2Eempty%28%29%2Eappend%28a%29%7D%2Cnull%2Ca%2Carguments%2Elength%29%7D%2CreplaceWith%3Afunction%28%29%7Bvar%20a%3Darguments%5B0%5D%3Breturn%20this%2EdomManip%28arguments%2Cfunction%28b%29%7Ba%3Dthis%2EparentNode%2Cn%2EcleanData%28vb%28this%29%29%2Ca%26%26a%2EreplaceChild%28b%2Cthis%29%7D%29%2Ca%26%26%28a%2Elength%7C%7Ca%2EnodeType%29%3Fthis%3Athis%2Eremove%28%29%7D%2Cdetach%3Afunction%28a%29%7Breturn%20this%2Eremove%28a%2C%210%29%7D%2CdomManip%3Afunction%28a%2Cb%29%7Ba%3De%2Eapply%28%5B%5D%2Ca%29%3Bvar%20c%2Cd%2Cf%2Cg%2Ch%2Ci%2Cj%3D0%2Ck%3Dthis%2Elength%2Cm%3Dthis%2Co%3Dk%2D1%2Cp%3Da%5B0%5D%2Cq%3Dn%2EisFunction%28p%29%3Bif%28q%7C%7Ck%3E1%26%26%22string%22%3D%3Dtypeof%20p%26%26%21l%2EcheckClone%26%26ob%2Etest%28p%29%29return%20this%2Eeach%28function%28c%29%7Bvar%20d%3Dm%2Eeq%28c%29%3Bq%26%26%28a%5B0%5D%3Dp%2Ecall%28this%2Cc%2Cd%2Ehtml%28%29%29%29%2Cd%2EdomManip%28a%2Cb%29%7D%29%3Bif%28k%26%26%28i%3Dn%2EbuildFragment%28a%2Cthis%5B0%5D%2EownerDocument%2C%211%2Cthis%29%2Cc%3Di%2EfirstChild%2C1%3D%3D%3Di%2EchildNodes%2Elength%26%26%28i%3Dc%29%2Cc%29%29%7Bfor%28g%3Dn%2Emap%28vb%28i%2C%22script%22%29%2Cyb%29%2Cf%3Dg%2Elength%3Bk%3Ej%3Bj%2B%2B%29d%3Di%2Cj%21%3D%3Do%26%26%28d%3Dn%2Eclone%28d%2C%210%2C%210%29%2Cf%26%26n%2Emerge%28g%2Cvb%28d%2C%22script%22%29%29%29%2Cb%2Ecall%28this%5Bj%5D%2Cd%2Cj%29%3Bif%28f%29for%28h%3Dg%5Bg%2Elength%2D1%5D%2EownerDocument%2Cn%2Emap%28g%2Czb%29%2Cj%3D0%3Bf%3Ej%3Bj%2B%2B%29d%3Dg%5Bj%5D%2Cpb%2Etest%28d%2Etype%7C%7C%22%22%29%26%26%21n%2E%5Fdata%28d%2C%22globalEval%22%29%26%26n%2Econtains%28h%2Cd%29%26%26%28d%2Esrc%3Fn%2E%5FevalUrl%26%26n%2E%5FevalUrl%28d%2Esrc%29%3An%2EglobalEval%28%28d%2Etext%7C%7Cd%2EtextContent%7C%7Cd%2EinnerHTML%7C%7C%22%22%29%2Ereplace%28rb%2C%22%22%29%29%29%3Bi%3Dc%3Dnull%7Dreturn%20this%7D%7D%29%2Cn%2Eeach%28%7BappendTo%3A%22append%22%2CprependTo%3A%22prepend%22%2CinsertBefore%3A%22before%22%2CinsertAfter%3A%22after%22%2CreplaceAll%3A%22replaceWith%22%7D%2Cfunction%28a%2Cb%29%7Bn%2Efn%5Ba%5D%3Dfunction%28a%29%7Bfor%28var%20c%2Cd%3D0%2Ce%3D%5B%5D%2Cg%3Dn%28a%29%2Ch%3Dg%2Elength%2D1%3Bh%3E%3Dd%3Bd%2B%2B%29c%3Dd%3D%3D%3Dh%3Fthis%3Athis%2Eclone%28%210%29%2Cn%28g%5Bd%5D%29%5Bb%5D%28c%29%2Cf%2Eapply%28e%2Cc%2Eget%28%29%29%3Breturn%20this%2EpushStack%28e%29%7D%7D%29%3Bvar%20Db%2CEb%3D%7B%7D%3Bfunction%20Fb%28b%2Cc%29%7Bvar%20d%3Dn%28c%2EcreateElement%28b%29%29%2EappendTo%28c%2Ebody%29%2Ce%3Da%2EgetDefaultComputedStyle%3Fa%2EgetDefaultComputedStyle%28d%5B0%5D%29%2Edisplay%3An%2Ecss%28d%5B0%5D%2C%22display%22%29%3Breturn%20d%2Edetach%28%29%2Ce%7Dfunction%20Gb%28a%29%7Bvar%20b%3Dz%2Cc%3DEb%5Ba%5D%3Breturn%20c%7C%7C%28c%3DFb%28a%2Cb%29%2C%22none%22%21%3D%3Dc%26%26c%7C%7C%28Db%3D%28Db%7C%7Cn%28%22%3Ciframe%20frameborder%3D%270%27%20width%3D%270%27%20height%3D%270%27%2F%3E%22%29%29%2EappendTo%28b%2EdocumentElement%29%2Cb%3D%28Db%5B0%5D%2EcontentWindow%7C%7CDb%5B0%5D%2EcontentDocument%29%2Edocument%2Cb%2Ewrite%28%29%2Cb%2Eclose%28%29%2Cc%3DFb%28a%2Cb%29%2CDb%2Edetach%28%29%29%2CEb%5Ba%5D%3Dc%29%2Cc%7D%21function%28%29%7Bvar%20a%2Cb%2Cc%3Dz%2EcreateElement%28%22div%22%29%2Cd%3D%22%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%3Bdisplay%3Ablock%3Bpadding%3A0%3Bmargin%3A0%3Bborder%3A0%22%3Bc%2EinnerHTML%3D%22%20%20%3Clink%2F%3E%3Ctable%3E%3C%2Ftable%3E%3Ca%20href%3D%27%2Fa%27%3Ea%3C%2Fa%3E%3Cinput%20type%3D%27checkbox%27%2F%3E%22%2Ca%3Dc%2EgetElementsByTagName%28%22a%22%29%5B0%5D%2Ca%2Estyle%2EcssText%3D%22float%3Aleft%3Bopacity%3A%2E5%22%2Cl%2Eopacity%3D%2F%5E0%2E5%2F%2Etest%28a%2Estyle%2Eopacity%29%2Cl%2EcssFloat%3D%21%21a%2Estyle%2EcssFloat%2Cc%2Estyle%2EbackgroundClip%3D%22content%2Dbox%22%2Cc%2EcloneNode%28%210%29%2Estyle%2EbackgroundClip%3D%22%22%2Cl%2EclearCloneStyle%3D%22content%2Dbox%22%3D%3D%3Dc%2Estyle%2EbackgroundClip%2Ca%3Dc%3Dnull%2Cl%2EshrinkWrapBlocks%3Dfunction%28%29%7Bvar%20a%2Cc%2Ce%2Cf%3Bif%28null%3D%3Db%29%7Bif%28a%3Dz%2EgetElementsByTagName%28%22body%22%29%5B0%5D%2C%21a%29return%3Bf%3D%22border%3A0%3Bwidth%3A0%3Bheight%3A0%3Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A%2D9999px%22%2Cc%3Dz%2EcreateElement%28%22div%22%29%2Ce%3Dz%2EcreateElement%28%22div%22%29%2Ca%2EappendChild%28c%29%2EappendChild%28e%29%2Cb%3D%211%2Ctypeof%20e%2Estyle%2Ezoom%21%3D%3DL%26%26%28e%2Estyle%2EcssText%3Dd%2B%22%3Bwidth%3A1px%3Bpadding%3A1px%3Bzoom%3A1%22%2Ce%2EinnerHTML%3D%22%3Cdiv%3E%3C%2Fdiv%3E%22%2Ce%2EfirstChild%2Estyle%2Ewidth%3D%225px%22%2Cb%3D3%21%3D%3De%2EoffsetWidth%29%2Ca%2EremoveChild%28c%29%2Ca%3Dc%3De%3Dnull%7Dreturn%20b%7D%7D%28%29%3Bvar%20Hb%3D%2F%5Emargin%2F%2CIb%3Dnew%20RegExp%28%22%5E%28%22%2BT%2B%22%29%28%3F%21px%29%5Ba%2Dz%25%5D%2B%24%22%2C%22i%22%29%2CJb%2CKb%2CLb%3D%2F%5E%28top%7Cright%7Cbottom%7Cleft%29%24%2F%3Ba%2EgetComputedStyle%3F%28Jb%3Dfunction%28a%29%7Breturn%20a%2EownerDocument%2EdefaultView%2EgetComputedStyle%28a%2Cnull%29%7D%2CKb%3Dfunction%28a%2Cb%2Cc%29%7Bvar%20d%2Ce%2Cf%2Cg%2Ch%3Da%2Estyle%3Breturn%20c%3Dc%7C%7CJb%28a%29%2Cg%3Dc%3Fc%2EgetPropertyValue%28b%29%7C%7Cc%5Bb%5D%3Avoid%200%2Cc%26%26%28%22%22%21%3D%3Dg%7C%7Cn%2Econtains%28a%2EownerDocument%2Ca%29%7C%7C%28g%3Dn%2Estyle%28a%2Cb%29%29%2CIb%2Etest%28g%29%26%26Hb%2Etest%28b%29%26%26%28d%3Dh%2Ewidth%2Ce%3Dh%2EminWidth%2Cf%3Dh%2EmaxWidth%2Ch%2EminWidth%3Dh%2EmaxWidth%3Dh%2Ewidth%3Dg%2Cg%3Dc%2Ewidth%2Ch%2Ewidth%3Dd%2Ch%2EminWidth%3De%2Ch%2EmaxWidth%3Df%29%29%2Cvoid%200%3D%3D%3Dg%3Fg%3Ag%2B%22%22%7D%29%3Az%2EdocumentElement%2EcurrentStyle%26%26%28Jb%3Dfunction%28a%29%7Breturn%20a%2EcurrentStyle%7D%2CKb%3Dfunction%28a%2Cb%2Cc%29%7Bvar%20d%2Ce%2Cf%2Cg%2Ch%3Da%2Estyle%3Breturn%20c%3Dc%7C%7CJb%28a%29%2Cg%3Dc%3Fc%5Bb%5D%3Avoid%200%2Cnull%3D%3Dg%26%26h%26%26h%5Bb%5D%26%26%28g%3Dh%5Bb%5D%29%2CIb%2Etest%28g%29%26%26%21Lb%2Etest%28b%29%26%26%28d%3Dh%2Eleft%2Ce%3Da%2EruntimeStyle%2Cf%3De%26%26e%2Eleft%2Cf%26%26%28e%2Eleft%3Da%2EcurrentStyle%2Eleft%29%2Ch%2Eleft%3D%22fontSize%22%3D%3D%3Db%3F%221em%22%3Ag%2Cg%3Dh%2EpixelLeft%2B%22px%22%2Ch%2Eleft%3Dd%2Cf%26%26%28e%2Eleft%3Df%29%29%2Cvoid%200%3D%3D%3Dg%3Fg%3Ag%2B%22%22%7C%7C%22auto%22%7D%29%3Bfunction%20Mb%28a%2Cb%29%7Breturn%7Bget%3Afunction%28%29%7Bvar%20c%3Da%28%29%3Bif%28null%21%3Dc%29return%20c%3Fvoid%20delete%20this%2Eget%3A%28this%2Eget%3Db%29%2Eapply%28this%2Carguments%29%7D%7D%7D%21function%28%29%7Bvar%20b%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%3Dz%2EcreateElement%28%22div%22%29%2Ci%3D%22border%3A0%3Bwidth%3A0%3Bheight%3A0%3Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A%2D9999px%22%2Cj%3D%22%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%3Bdisplay%3Ablock%3Bpadding%3A0%3Bmargin%3A0%3Bborder%3A0%22%3Bh%2EinnerHTML%3D%22%20%20%3Clink%2F%3E%3Ctable%3E%3C%2Ftable%3E%3Ca%20href%3D%27%2Fa%27%3Ea%3C%2Fa%3E%3Cinput%20type%3D%27checkbox%27%2F%3E%22%2Cb%3Dh%2EgetElementsByTagName%28%22a%22%29%5B0%5D%2Cb%2Estyle%2EcssText%3D%22float%3Aleft%3Bopacity%3A%2E5%22%2Cl%2Eopacity%3D%2F%5E0%2E5%2F%2Etest%28b%2Estyle%2Eopacity%29%2Cl%2EcssFloat%3D%21%21b%2Estyle%2EcssFloat%2Ch%2Estyle%2EbackgroundClip%3D%22content%2Dbox%22%2Ch%2EcloneNode%28%210%29%2Estyle%2EbackgroundClip%3D%22%22%2Cl%2EclearCloneStyle%3D%22content%2Dbox%22%3D%3D%3Dh%2Estyle%2EbackgroundClip%2Cb%3Dh%3Dnull%2Cn%2Eextend%28l%2C%7BreliableHiddenOffsets%3Afunction%28%29%7Bif%28null%21%3Dc%29return%20c%3Bvar%20a%2Cb%2Cd%2Ce%3Dz%2EcreateElement%28%22div%22%29%2Cf%3Dz%2EgetElementsByTagName%28%22body%22%29%5B0%5D%3Bif%28f%29return%20e%2EsetAttribute%28%22className%22%2C%22t%22%29%2Ce%2EinnerHTML%3D%22%20%20%3Clink%2F%3E%3Ctable%3E%3C%2Ftable%3E%3Ca%20href%3D%27%2Fa%27%3Ea%3C%2Fa%3E%3Cinput%20type%3D%27checkbox%27%2F%3E%22%2Ca%3Dz%2EcreateElement%28%22div%22%29%2Ca%2Estyle%2EcssText%3Di%2Cf%2EappendChild%28a%29%2EappendChild%28e%29%2Ce%2EinnerHTML%3D%22%3Ctable%3E%3Ctr%3E%3Ctd%3E%3C%2Ftd%3E%3Ctd%3Et%3C%2Ftd%3E%3C%2Ftr%3E%3C%2Ftable%3E%22%2Cb%3De%2EgetElementsByTagName%28%22td%22%29%2Cb%5B0%5D%2Estyle%2EcssText%3D%22padding%3A0%3Bmargin%3A0%3Bborder%3A0%3Bdisplay%3Anone%22%2Cd%3D0%3D%3D%3Db%5B0%5D%2EoffsetHeight%2Cb%5B0%5D%2Estyle%2Edisplay%3D%22%22%2Cb%5B1%5D%2Estyle%2Edisplay%3D%22none%22%2Cc%3Dd%26%260%3D%3D%3Db%5B0%5D%2EoffsetHeight%2Cf%2EremoveChild%28a%29%2Ce%3Df%3Dnull%2Cc%7D%2CboxSizing%3Afunction%28%29%7Breturn%20null%3D%3Dd%26%26k%28%29%2Cd%7D%2CboxSizingReliable%3Afunction%28%29%7Breturn%20null%3D%3De%26%26k%28%29%2Ce%7D%2CpixelPosition%3Afunction%28%29%7Breturn%20null%3D%3Df%26%26k%28%29%2Cf%7D%2CreliableMarginRight%3Afunction%28%29%7Bvar%20b%2Cc%2Cd%2Ce%3Bif%28null%3D%3Dg%26%26a%2EgetComputedStyle%29%7Bif%28b%3Dz%2EgetElementsByTagName%28%22body%22%29%5B0%5D%2C%21b%29return%3Bc%3Dz%2EcreateElement%28%22div%22%29%2Cd%3Dz%2EcreateElement%28%22div%22%29%2Cc%2Estyle%2EcssText%3Di%2Cb%2EappendChild%28c%29%2EappendChild%28d%29%2Ce%3Dd%2EappendChild%28z%2EcreateElement%28%22div%22%29%29%2Ce%2Estyle%2EcssText%3Dd%2Estyle%2EcssText%3Dj%2Ce%2Estyle%2EmarginRight%3De%2Estyle%2Ewidth%3D%220%22%2Cd%2Estyle%2Ewidth%3D%221px%22%2Cg%3D%21parseFloat%28%28a%2EgetComputedStyle%28e%2Cnull%29%7C%7C%7B%7D%29%2EmarginRight%29%2Cb%2EremoveChild%28c%29%7Dreturn%20g%7D%7D%29%3Bfunction%20k%28%29%7Bvar%20b%2Cc%2Ch%3Dz%2EgetElementsByTagName%28%22body%22%29%5B0%5D%3Bh%26%26%28b%3Dz%2EcreateElement%28%22div%22%29%2Cc%3Dz%2EcreateElement%28%22div%22%29%2Cb%2Estyle%2EcssText%3Di%2Ch%2EappendChild%28b%29%2EappendChild%28c%29%2Cc%2Estyle%2EcssText%3D%22%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%3Bposition%3Aabsolute%3Bdisplay%3Ablock%3Bpadding%3A1px%3Bborder%3A1px%3Bwidth%3A4px%3Bmargin%2Dtop%3A1%25%3Btop%3A1%25%22%2Cn%2Eswap%28h%2Cnull%21%3Dh%2Estyle%2Ezoom%3F%7Bzoom%3A1%7D%3A%7B%7D%2Cfunction%28%29%7Bd%3D4%3D%3D%3Dc%2EoffsetWidth%7D%29%2Ce%3D%210%2Cf%3D%211%2Cg%3D%210%2Ca%2EgetComputedStyle%26%26%28f%3D%221%25%22%21%3D%3D%28a%2EgetComputedStyle%28c%2Cnull%29%7C%7C%7B%7D%29%2Etop%2Ce%3D%224px%22%3D%3D%3D%28a%2EgetComputedStyle%28c%2Cnull%29%7C%7C%7Bwidth%3A%224px%22%7D%29%2Ewidth%29%2Ch%2EremoveChild%28b%29%2Cc%3Dh%3Dnull%29%7D%7D%28%29%2Cn%2Eswap%3Dfunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%2Cf%2Cg%3D%7B%7D%3Bfor%28f%20in%20b%29g%5Bf%5D%3Da%2Estyle%5Bf%5D%2Ca%2Estyle%5Bf%5D%3Db%5Bf%5D%3Be%3Dc%2Eapply%28a%2Cd%7C%7C%5B%5D%29%3Bfor%28f%20in%20b%29a%2Estyle%5Bf%5D%3Dg%5Bf%5D%3Breturn%20e%7D%3Bvar%20Nb%3D%2Falpha%5C%28%5B%5E%29%5D%2A%5C%29%2Fi%2COb%3D%2Fopacity%5Cs%2A%3D%5Cs%2A%28%5B%5E%29%5D%2A%29%2F%2CPb%3D%2F%5E%28none%7Ctable%28%3F%21%2Dc%5Bea%5D%29%2E%2B%29%2F%2CQb%3Dnew%20RegExp%28%22%5E%28%22%2BT%2B%22%29%28%2E%2A%29%24%22%2C%22i%22%29%2CRb%3Dnew%20RegExp%28%22%5E%28%5B%2B%2D%5D%29%3D%28%22%2BT%2B%22%29%22%2C%22i%22%29%2CSb%3D%7Bposition%3A%22absolute%22%2Cvisibility%3A%22hidden%22%2Cdisplay%3A%22block%22%7D%2CTb%3D%7BletterSpacing%3A0%2CfontWeight%3A400%7D%2CUb%3D%5B%22Webkit%22%2C%22O%22%2C%22Moz%22%2C%22ms%22%5D%3Bfunction%20Vb%28a%2Cb%29%7Bif%28b%20in%20a%29return%20b%3Bvar%20c%3Db%2EcharAt%280%29%2EtoUpperCase%28%29%2Bb%2Eslice%281%29%2Cd%3Db%2Ce%3DUb%2Elength%3Bwhile%28e%2D%2D%29if%28b%3DUb%5Be%5D%2Bc%2Cb%20in%20a%29return%20b%3Breturn%20d%7Dfunction%20Wb%28a%2Cb%29%7Bfor%28var%20c%2Cd%2Ce%2Cf%3D%5B%5D%2Cg%3D0%2Ch%3Da%2Elength%3Bh%3Eg%3Bg%2B%2B%29d%3Da%5Bg%5D%2Cd%2Estyle%26%26%28f%5Bg%5D%3Dn%2E%5Fdata%28d%2C%22olddisplay%22%29%2Cc%3Dd%2Estyle%2Edisplay%2Cb%3F%28f%5Bg%5D%7C%7C%22none%22%21%3D%3Dc%7C%7C%28d%2Estyle%2Edisplay%3D%22%22%29%2C%22%22%3D%3D%3Dd%2Estyle%2Edisplay%26%26V%28d%29%26%26%28f%5Bg%5D%3Dn%2E%5Fdata%28d%2C%22olddisplay%22%2CGb%28d%2EnodeName%29%29%29%29%3Af%5Bg%5D%7C%7C%28e%3DV%28d%29%2C%28c%26%26%22none%22%21%3D%3Dc%7C%7C%21e%29%26%26n%2E%5Fdata%28d%2C%22olddisplay%22%2Ce%3Fc%3An%2Ecss%28d%2C%22display%22%29%29%29%29%3Bfor%28g%3D0%3Bh%3Eg%3Bg%2B%2B%29d%3Da%5Bg%5D%2Cd%2Estyle%26%26%28b%26%26%22none%22%21%3D%3Dd%2Estyle%2Edisplay%26%26%22%22%21%3D%3Dd%2Estyle%2Edisplay%7C%7C%28d%2Estyle%2Edisplay%3Db%3Ff%5Bg%5D%7C%7C%22%22%3A%22none%22%29%29%3Breturn%20a%7Dfunction%20Xb%28a%2Cb%2Cc%29%7Bvar%20d%3DQb%2Eexec%28b%29%3Breturn%20d%3FMath%2Emax%280%2Cd%5B1%5D%2D%28c%7C%7C0%29%29%2B%28d%5B2%5D%7C%7C%22px%22%29%3Ab%7Dfunction%20Yb%28a%2Cb%2Cc%2Cd%2Ce%29%7Bfor%28var%20f%3Dc%3D%3D%3D%28d%3F%22border%22%3A%22content%22%29%3F4%3A%22width%22%3D%3D%3Db%3F1%3A0%2Cg%3D0%3B4%3Ef%3Bf%2B%3D2%29%22margin%22%3D%3D%3Dc%26%26%28g%2B%3Dn%2Ecss%28a%2Cc%2BU%5Bf%5D%2C%210%2Ce%29%29%2Cd%3F%28%22content%22%3D%3D%3Dc%26%26%28g%2D%3Dn%2Ecss%28a%2C%22padding%22%2BU%5Bf%5D%2C%210%2Ce%29%29%2C%22margin%22%21%3D%3Dc%26%26%28g%2D%3Dn%2Ecss%28a%2C%22border%22%2BU%5Bf%5D%2B%22Width%22%2C%210%2Ce%29%29%29%3A%28g%2B%3Dn%2Ecss%28a%2C%22padding%22%2BU%5Bf%5D%2C%210%2Ce%29%2C%22padding%22%21%3D%3Dc%26%26%28g%2B%3Dn%2Ecss%28a%2C%22border%22%2BU%5Bf%5D%2B%22Width%22%2C%210%2Ce%29%29%29%3Breturn%20g%7Dfunction%20Zb%28a%2Cb%2Cc%29%7Bvar%20d%3D%210%2Ce%3D%22width%22%3D%3D%3Db%3Fa%2EoffsetWidth%3Aa%2EoffsetHeight%2Cf%3DJb%28a%29%2Cg%3Dl%2EboxSizing%28%29%26%26%22border%2Dbox%22%3D%3D%3Dn%2Ecss%28a%2C%22boxSizing%22%2C%211%2Cf%29%3Bif%280%3E%3De%7C%7Cnull%3D%3De%29%7Bif%28e%3DKb%28a%2Cb%2Cf%29%2C%280%3Ee%7C%7Cnull%3D%3De%29%26%26%28e%3Da%2Estyle%5Bb%5D%29%2CIb%2Etest%28e%29%29return%20e%3Bd%3Dg%26%26%28l%2EboxSizingReliable%28%29%7C%7Ce%3D%3D%3Da%2Estyle%5Bb%5D%29%2Ce%3DparseFloat%28e%29%7C%7C0%7Dreturn%20e%2BYb%28a%2Cb%2Cc%7C%7C%28g%3F%22border%22%3A%22content%22%29%2Cd%2Cf%29%2B%22px%22%7Dn%2Eextend%28%7BcssHooks%3A%7Bopacity%3A%7Bget%3Afunction%28a%2Cb%29%7Bif%28b%29%7Bvar%20c%3DKb%28a%2C%22opacity%22%29%3Breturn%22%22%3D%3D%3Dc%3F%221%22%3Ac%7D%7D%7D%7D%2CcssNumber%3A%7BcolumnCount%3A%210%2CfillOpacity%3A%210%2CfontWeight%3A%210%2ClineHeight%3A%210%2Copacity%3A%210%2Corder%3A%210%2Corphans%3A%210%2Cwidows%3A%210%2CzIndex%3A%210%2Czoom%3A%210%7D%2CcssProps%3A%7B%22float%22%3Al%2EcssFloat%3F%22cssFloat%22%3A%22styleFloat%22%7D%2Cstyle%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bif%28a%26%263%21%3D%3Da%2EnodeType%26%268%21%3D%3Da%2EnodeType%26%26a%2Estyle%29%7Bvar%20e%2Cf%2Cg%2Ch%3Dn%2EcamelCase%28b%29%2Ci%3Da%2Estyle%3Bif%28b%3Dn%2EcssProps%5Bh%5D%7C%7C%28n%2EcssProps%5Bh%5D%3DVb%28i%2Ch%29%29%2Cg%3Dn%2EcssHooks%5Bb%5D%7C%7Cn%2EcssHooks%5Bh%5D%2Cvoid%200%3D%3D%3Dc%29return%20g%26%26%22get%22in%20g%26%26void%200%21%3D%3D%28e%3Dg%2Eget%28a%2C%211%2Cd%29%29%3Fe%3Ai%5Bb%5D%3Bif%28f%3Dtypeof%20c%2C%22string%22%3D%3D%3Df%26%26%28e%3DRb%2Eexec%28c%29%29%26%26%28c%3D%28e%5B1%5D%2B1%29%2Ae%5B2%5D%2BparseFloat%28n%2Ecss%28a%2Cb%29%29%2Cf%3D%22number%22%29%2Cnull%21%3Dc%26%26c%3D%3D%3Dc%26%26%28%22number%22%21%3D%3Df%7C%7Cn%2EcssNumber%5Bh%5D%7C%7C%28c%2B%3D%22px%22%29%2Cl%2EclearCloneStyle%7C%7C%22%22%21%3D%3Dc%7C%7C0%21%3D%3Db%2EindexOf%28%22background%22%29%7C%7C%28i%5Bb%5D%3D%22inherit%22%29%2C%21%28g%26%26%22set%22in%20g%26%26void%200%3D%3D%3D%28c%3Dg%2Eset%28a%2Cc%2Cd%29%29%29%29%29try%7Bi%5Bb%5D%3D%22%22%2Ci%5Bb%5D%3Dc%7Dcatch%28j%29%7B%7D%7D%7D%2Ccss%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%2Cf%2Cg%2Ch%3Dn%2EcamelCase%28b%29%3Breturn%20b%3Dn%2EcssProps%5Bh%5D%7C%7C%28n%2EcssProps%5Bh%5D%3DVb%28a%2Estyle%2Ch%29%29%2Cg%3Dn%2EcssHooks%5Bb%5D%7C%7Cn%2EcssHooks%5Bh%5D%2Cg%26%26%22get%22in%20g%26%26%28f%3Dg%2Eget%28a%2C%210%2Cc%29%29%2Cvoid%200%3D%3D%3Df%26%26%28f%3DKb%28a%2Cb%2Cd%29%29%2C%22normal%22%3D%3D%3Df%26%26b%20in%20Tb%26%26%28f%3DTb%5Bb%5D%29%2C%22%22%3D%3D%3Dc%7C%7Cc%3F%28e%3DparseFloat%28f%29%2Cc%3D%3D%3D%210%7C%7Cn%2EisNumeric%28e%29%3Fe%7C%7C0%3Af%29%3Af%7D%7D%29%2Cn%2Eeach%28%5B%22height%22%2C%22width%22%5D%2Cfunction%28a%2Cb%29%7Bn%2EcssHooks%5Bb%5D%3D%7Bget%3Afunction%28a%2Cc%2Cd%29%7Breturn%20c%3F0%3D%3D%3Da%2EoffsetWidth%26%26Pb%2Etest%28n%2Ecss%28a%2C%22display%22%29%29%3Fn%2Eswap%28a%2CSb%2Cfunction%28%29%7Breturn%20Zb%28a%2Cb%2Cd%29%7D%29%3AZb%28a%2Cb%2Cd%29%3Avoid%200%7D%2Cset%3Afunction%28a%2Cc%2Cd%29%7Bvar%20e%3Dd%26%26Jb%28a%29%3Breturn%20Xb%28a%2Cc%2Cd%3FYb%28a%2Cb%2Cd%2Cl%2EboxSizing%28%29%26%26%22border%2Dbox%22%3D%3D%3Dn%2Ecss%28a%2C%22boxSizing%22%2C%211%2Ce%29%2Ce%29%3A0%29%7D%7D%7D%29%2Cl%2Eopacity%7C%7C%28n%2EcssHooks%2Eopacity%3D%7Bget%3Afunction%28a%2Cb%29%7Breturn%20Ob%2Etest%28%28b%26%26a%2EcurrentStyle%3Fa%2EcurrentStyle%2Efilter%3Aa%2Estyle%2Efilter%29%7C%7C%22%22%29%3F%2E01%2AparseFloat%28RegExp%2E%241%29%2B%22%22%3Ab%3F%221%22%3A%22%22%7D%2Cset%3Afunction%28a%2Cb%29%7Bvar%20c%3Da%2Estyle%2Cd%3Da%2EcurrentStyle%2Ce%3Dn%2EisNumeric%28b%29%3F%22alpha%28opacity%3D%22%2B100%2Ab%2B%22%29%22%3A%22%22%2Cf%3Dd%26%26d%2Efilter%7C%7Cc%2Efilter%7C%7C%22%22%3Bc%2Ezoom%3D1%2C%28b%3E%3D1%7C%7C%22%22%3D%3D%3Db%29%26%26%22%22%3D%3D%3Dn%2Etrim%28f%2Ereplace%28Nb%2C%22%22%29%29%26%26c%2EremoveAttribute%26%26%28c%2EremoveAttribute%28%22filter%22%29%2C%22%22%3D%3D%3Db%7C%7Cd%26%26%21d%2Efilter%29%7C%7C%28c%2Efilter%3DNb%2Etest%28f%29%3Ff%2Ereplace%28Nb%2Ce%29%3Af%2B%22%20%22%2Be%29%7D%7D%29%2Cn%2EcssHooks%2EmarginRight%3DMb%28l%2EreliableMarginRight%2Cfunction%28a%2Cb%29%7Breturn%20b%3Fn%2Eswap%28a%2C%7Bdisplay%3A%22inline%2Dblock%22%7D%2CKb%2C%5Ba%2C%22marginRight%22%5D%29%3Avoid%200%7D%29%2Cn%2Eeach%28%7Bmargin%3A%22%22%2Cpadding%3A%22%22%2Cborder%3A%22Width%22%7D%2Cfunction%28a%2Cb%29%7Bn%2EcssHooks%5Ba%2Bb%5D%3D%7Bexpand%3Afunction%28c%29%7Bfor%28var%20d%3D0%2Ce%3D%7B%7D%2Cf%3D%22string%22%3D%3Dtypeof%20c%3Fc%2Esplit%28%22%20%22%29%3A%5Bc%5D%3B4%3Ed%3Bd%2B%2B%29e%5Ba%2BU%5Bd%5D%2Bb%5D%3Df%5Bd%5D%7C%7Cf%5Bd%2D2%5D%7C%7Cf%5B0%5D%3Breturn%20e%7D%7D%2CHb%2Etest%28a%29%7C%7C%28n%2EcssHooks%5Ba%2Bb%5D%2Eset%3DXb%29%7D%29%2Cn%2Efn%2Eextend%28%7Bcss%3Afunction%28a%2Cb%29%7Breturn%20W%28this%2Cfunction%28a%2Cb%2Cc%29%7Bvar%20d%2Ce%2Cf%3D%7B%7D%2Cg%3D0%3Bif%28n%2EisArray%28b%29%29%7Bfor%28d%3DJb%28a%29%2Ce%3Db%2Elength%3Be%3Eg%3Bg%2B%2B%29f%5Bb%5Bg%5D%5D%3Dn%2Ecss%28a%2Cb%5Bg%5D%2C%211%2Cd%29%3Breturn%20f%7Dreturn%20void%200%21%3D%3Dc%3Fn%2Estyle%28a%2Cb%2Cc%29%3An%2Ecss%28a%2Cb%29%0A%7D%2Ca%2Cb%2Carguments%2Elength%3E1%29%7D%2Cshow%3Afunction%28%29%7Breturn%20Wb%28this%2C%210%29%7D%2Chide%3Afunction%28%29%7Breturn%20Wb%28this%29%7D%2Ctoggle%3Afunction%28a%29%7Breturn%22boolean%22%3D%3Dtypeof%20a%3Fa%3Fthis%2Eshow%28%29%3Athis%2Ehide%28%29%3Athis%2Eeach%28function%28%29%7BV%28this%29%3Fn%28this%29%2Eshow%28%29%3An%28this%29%2Ehide%28%29%7D%29%7D%7D%29%3Bfunction%20%24b%28a%2Cb%2Cc%2Cd%2Ce%29%7Breturn%20new%20%24b%2Eprototype%2Einit%28a%2Cb%2Cc%2Cd%2Ce%29%7Dn%2ETween%3D%24b%2C%24b%2Eprototype%3D%7Bconstructor%3A%24b%2Cinit%3Afunction%28a%2Cb%2Cc%2Cd%2Ce%2Cf%29%7Bthis%2Eelem%3Da%2Cthis%2Eprop%3Dc%2Cthis%2Eeasing%3De%7C%7C%22swing%22%2Cthis%2Eoptions%3Db%2Cthis%2Estart%3Dthis%2Enow%3Dthis%2Ecur%28%29%2Cthis%2Eend%3Dd%2Cthis%2Eunit%3Df%7C%7C%28n%2EcssNumber%5Bc%5D%3F%22%22%3A%22px%22%29%7D%2Ccur%3Afunction%28%29%7Bvar%20a%3D%24b%2EpropHooks%5Bthis%2Eprop%5D%3Breturn%20a%26%26a%2Eget%3Fa%2Eget%28this%29%3A%24b%2EpropHooks%2E%5Fdefault%2Eget%28this%29%7D%2Crun%3Afunction%28a%29%7Bvar%20b%2Cc%3D%24b%2EpropHooks%5Bthis%2Eprop%5D%3Breturn%20this%2Epos%3Db%3Dthis%2Eoptions%2Eduration%3Fn%2Eeasing%5Bthis%2Eeasing%5D%28a%2Cthis%2Eoptions%2Eduration%2Aa%2C0%2C1%2Cthis%2Eoptions%2Eduration%29%3Aa%2Cthis%2Enow%3D%28this%2Eend%2Dthis%2Estart%29%2Ab%2Bthis%2Estart%2Cthis%2Eoptions%2Estep%26%26this%2Eoptions%2Estep%2Ecall%28this%2Eelem%2Cthis%2Enow%2Cthis%29%2Cc%26%26c%2Eset%3Fc%2Eset%28this%29%3A%24b%2EpropHooks%2E%5Fdefault%2Eset%28this%29%2Cthis%7D%7D%2C%24b%2Eprototype%2Einit%2Eprototype%3D%24b%2Eprototype%2C%24b%2EpropHooks%3D%7B%5Fdefault%3A%7Bget%3Afunction%28a%29%7Bvar%20b%3Breturn%20null%3D%3Da%2Eelem%5Ba%2Eprop%5D%7C%7Ca%2Eelem%2Estyle%26%26null%21%3Da%2Eelem%2Estyle%5Ba%2Eprop%5D%3F%28b%3Dn%2Ecss%28a%2Eelem%2Ca%2Eprop%2C%22%22%29%2Cb%26%26%22auto%22%21%3D%3Db%3Fb%3A0%29%3Aa%2Eelem%5Ba%2Eprop%5D%7D%2Cset%3Afunction%28a%29%7Bn%2Efx%2Estep%5Ba%2Eprop%5D%3Fn%2Efx%2Estep%5Ba%2Eprop%5D%28a%29%3Aa%2Eelem%2Estyle%26%26%28null%21%3Da%2Eelem%2Estyle%5Bn%2EcssProps%5Ba%2Eprop%5D%5D%7C%7Cn%2EcssHooks%5Ba%2Eprop%5D%29%3Fn%2Estyle%28a%2Eelem%2Ca%2Eprop%2Ca%2Enow%2Ba%2Eunit%29%3Aa%2Eelem%5Ba%2Eprop%5D%3Da%2Enow%7D%7D%7D%2C%24b%2EpropHooks%2EscrollTop%3D%24b%2EpropHooks%2EscrollLeft%3D%7Bset%3Afunction%28a%29%7Ba%2Eelem%2EnodeType%26%26a%2Eelem%2EparentNode%26%26%28a%2Eelem%5Ba%2Eprop%5D%3Da%2Enow%29%7D%7D%2Cn%2Eeasing%3D%7Blinear%3Afunction%28a%29%7Breturn%20a%7D%2Cswing%3Afunction%28a%29%7Breturn%2E5%2DMath%2Ecos%28a%2AMath%2EPI%29%2F2%7D%7D%2Cn%2Efx%3D%24b%2Eprototype%2Einit%2Cn%2Efx%2Estep%3D%7B%7D%3Bvar%20%5Fb%2Cac%2Cbc%3D%2F%5E%28%3F%3Atoggle%7Cshow%7Chide%29%24%2F%2Ccc%3Dnew%20RegExp%28%22%5E%28%3F%3A%28%5B%2B%2D%5D%29%3D%7C%29%28%22%2BT%2B%22%29%28%5Ba%2Dz%25%5D%2A%29%24%22%2C%22i%22%29%2Cdc%3D%2FqueueHooks%24%2F%2Cec%3D%5Bjc%5D%2Cfc%3D%7B%22%2A%22%3A%5Bfunction%28a%2Cb%29%7Bvar%20c%3Dthis%2EcreateTween%28a%2Cb%29%2Cd%3Dc%2Ecur%28%29%2Ce%3Dcc%2Eexec%28b%29%2Cf%3De%26%26e%5B3%5D%7C%7C%28n%2EcssNumber%5Ba%5D%3F%22%22%3A%22px%22%29%2Cg%3D%28n%2EcssNumber%5Ba%5D%7C%7C%22px%22%21%3D%3Df%26%26%2Bd%29%26%26cc%2Eexec%28n%2Ecss%28c%2Eelem%2Ca%29%29%2Ch%3D1%2Ci%3D20%3Bif%28g%26%26g%5B3%5D%21%3D%3Df%29%7Bf%3Df%7C%7Cg%5B3%5D%2Ce%3De%7C%7C%5B%5D%2Cg%3D%2Bd%7C%7C1%3Bdo%20h%3Dh%7C%7C%22%2E5%22%2Cg%2F%3Dh%2Cn%2Estyle%28c%2Eelem%2Ca%2Cg%2Bf%29%3Bwhile%28h%21%3D%3D%28h%3Dc%2Ecur%28%29%2Fd%29%26%261%21%3D%3Dh%26%26%2D%2Di%29%7Dreturn%20e%26%26%28g%3Dc%2Estart%3D%2Bg%7C%7C%2Bd%7C%7C0%2Cc%2Eunit%3Df%2Cc%2Eend%3De%5B1%5D%3Fg%2B%28e%5B1%5D%2B1%29%2Ae%5B2%5D%3A%2Be%5B2%5D%29%2Cc%7D%5D%7D%3Bfunction%20gc%28%29%7Breturn%20setTimeout%28function%28%29%7B%5Fb%3Dvoid%200%7D%29%2C%5Fb%3Dn%2Enow%28%29%7Dfunction%20hc%28a%2Cb%29%7Bvar%20c%2Cd%3D%7Bheight%3Aa%7D%2Ce%3D0%3Bfor%28b%3Db%3F1%3A0%3B4%3Ee%3Be%2B%3D2%2Db%29c%3DU%5Be%5D%2Cd%5B%22margin%22%2Bc%5D%3Dd%5B%22padding%22%2Bc%5D%3Da%3Breturn%20b%26%26%28d%2Eopacity%3Dd%2Ewidth%3Da%29%2Cd%7Dfunction%20ic%28a%2Cb%2Cc%29%7Bfor%28var%20d%2Ce%3D%28fc%5Bb%5D%7C%7C%5B%5D%29%2Econcat%28fc%5B%22%2A%22%5D%29%2Cf%3D0%2Cg%3De%2Elength%3Bg%3Ef%3Bf%2B%2B%29if%28d%3De%5Bf%5D%2Ecall%28c%2Cb%2Ca%29%29return%20d%7Dfunction%20jc%28a%2Cb%2Cc%29%7Bvar%20d%2Ce%2Cf%2Cg%2Ch%2Ci%2Cj%2Ck%2Cm%3Dthis%2Co%3D%7B%7D%2Cp%3Da%2Estyle%2Cq%3Da%2EnodeType%26%26V%28a%29%2Cr%3Dn%2E%5Fdata%28a%2C%22fxshow%22%29%3Bc%2Equeue%7C%7C%28h%3Dn%2E%5FqueueHooks%28a%2C%22fx%22%29%2Cnull%3D%3Dh%2Eunqueued%26%26%28h%2Eunqueued%3D0%2Ci%3Dh%2Eempty%2Efire%2Ch%2Eempty%2Efire%3Dfunction%28%29%7Bh%2Eunqueued%7C%7Ci%28%29%7D%29%2Ch%2Eunqueued%2B%2B%2Cm%2Ealways%28function%28%29%7Bm%2Ealways%28function%28%29%7Bh%2Eunqueued%2D%2D%2Cn%2Equeue%28a%2C%22fx%22%29%2Elength%7C%7Ch%2Eempty%2Efire%28%29%7D%29%7D%29%29%2C1%3D%3D%3Da%2EnodeType%26%26%28%22height%22in%20b%7C%7C%22width%22in%20b%29%26%26%28c%2Eoverflow%3D%5Bp%2Eoverflow%2Cp%2EoverflowX%2Cp%2EoverflowY%5D%2Cj%3Dn%2Ecss%28a%2C%22display%22%29%2Ck%3DGb%28a%2EnodeName%29%2C%22none%22%3D%3D%3Dj%26%26%28j%3Dk%29%2C%22inline%22%3D%3D%3Dj%26%26%22none%22%3D%3D%3Dn%2Ecss%28a%2C%22float%22%29%26%26%28l%2EinlineBlockNeedsLayout%26%26%22inline%22%21%3D%3Dk%3Fp%2Ezoom%3D1%3Ap%2Edisplay%3D%22inline%2Dblock%22%29%29%2Cc%2Eoverflow%26%26%28p%2Eoverflow%3D%22hidden%22%2Cl%2EshrinkWrapBlocks%28%29%7C%7Cm%2Ealways%28function%28%29%7Bp%2Eoverflow%3Dc%2Eoverflow%5B0%5D%2Cp%2EoverflowX%3Dc%2Eoverflow%5B1%5D%2Cp%2EoverflowY%3Dc%2Eoverflow%5B2%5D%7D%29%29%3Bfor%28d%20in%20b%29if%28e%3Db%5Bd%5D%2Cbc%2Eexec%28e%29%29%7Bif%28delete%20b%5Bd%5D%2Cf%3Df%7C%7C%22toggle%22%3D%3D%3De%2Ce%3D%3D%3D%28q%3F%22hide%22%3A%22show%22%29%29%7Bif%28%22show%22%21%3D%3De%7C%7C%21r%7C%7Cvoid%200%3D%3D%3Dr%5Bd%5D%29continue%3Bq%3D%210%7Do%5Bd%5D%3Dr%26%26r%5Bd%5D%7C%7Cn%2Estyle%28a%2Cd%29%7Dif%28%21n%2EisEmptyObject%28o%29%29%7Br%3F%22hidden%22in%20r%26%26%28q%3Dr%2Ehidden%29%3Ar%3Dn%2E%5Fdata%28a%2C%22fxshow%22%2C%7B%7D%29%2Cf%26%26%28r%2Ehidden%3D%21q%29%2Cq%3Fn%28a%29%2Eshow%28%29%3Am%2Edone%28function%28%29%7Bn%28a%29%2Ehide%28%29%7D%29%2Cm%2Edone%28function%28%29%7Bvar%20b%3Bn%2E%5FremoveData%28a%2C%22fxshow%22%29%3Bfor%28b%20in%20o%29n%2Estyle%28a%2Cb%2Co%5Bb%5D%29%7D%29%3Bfor%28d%20in%20o%29g%3Dic%28q%3Fr%5Bd%5D%3A0%2Cd%2Cm%29%2Cd%20in%20r%7C%7C%28r%5Bd%5D%3Dg%2Estart%2Cq%26%26%28g%2Eend%3Dg%2Estart%2Cg%2Estart%3D%22width%22%3D%3D%3Dd%7C%7C%22height%22%3D%3D%3Dd%3F1%3A0%29%29%7D%7Dfunction%20kc%28a%2Cb%29%7Bvar%20c%2Cd%2Ce%2Cf%2Cg%3Bfor%28c%20in%20a%29if%28d%3Dn%2EcamelCase%28c%29%2Ce%3Db%5Bd%5D%2Cf%3Da%5Bc%5D%2Cn%2EisArray%28f%29%26%26%28e%3Df%5B1%5D%2Cf%3Da%5Bc%5D%3Df%5B0%5D%29%2Cc%21%3D%3Dd%26%26%28a%5Bd%5D%3Df%2Cdelete%20a%5Bc%5D%29%2Cg%3Dn%2EcssHooks%5Bd%5D%2Cg%26%26%22expand%22in%20g%29%7Bf%3Dg%2Eexpand%28f%29%2Cdelete%20a%5Bd%5D%3Bfor%28c%20in%20f%29c%20in%20a%7C%7C%28a%5Bc%5D%3Df%5Bc%5D%2Cb%5Bc%5D%3De%29%7Delse%20b%5Bd%5D%3De%7Dfunction%20lc%28a%2Cb%2Cc%29%7Bvar%20d%2Ce%2Cf%3D0%2Cg%3Dec%2Elength%2Ch%3Dn%2EDeferred%28%29%2Ealways%28function%28%29%7Bdelete%20i%2Eelem%7D%29%2Ci%3Dfunction%28%29%7Bif%28e%29return%211%3Bfor%28var%20b%3D%5Fb%7C%7Cgc%28%29%2Cc%3DMath%2Emax%280%2Cj%2EstartTime%2Bj%2Eduration%2Db%29%2Cd%3Dc%2Fj%2Eduration%7C%7C0%2Cf%3D1%2Dd%2Cg%3D0%2Ci%3Dj%2Etweens%2Elength%3Bi%3Eg%3Bg%2B%2B%29j%2Etweens%5Bg%5D%2Erun%28f%29%3Breturn%20h%2EnotifyWith%28a%2C%5Bj%2Cf%2Cc%5D%29%2C1%3Ef%26%26i%3Fc%3A%28h%2EresolveWith%28a%2C%5Bj%5D%29%2C%211%29%7D%2Cj%3Dh%2Epromise%28%7Belem%3Aa%2Cprops%3An%2Eextend%28%7B%7D%2Cb%29%2Copts%3An%2Eextend%28%210%2C%7BspecialEasing%3A%7B%7D%7D%2Cc%29%2CoriginalProperties%3Ab%2CoriginalOptions%3Ac%2CstartTime%3A%5Fb%7C%7Cgc%28%29%2Cduration%3Ac%2Eduration%2Ctweens%3A%5B%5D%2CcreateTween%3Afunction%28b%2Cc%29%7Bvar%20d%3Dn%2ETween%28a%2Cj%2Eopts%2Cb%2Cc%2Cj%2Eopts%2EspecialEasing%5Bb%5D%7C%7Cj%2Eopts%2Eeasing%29%3Breturn%20j%2Etweens%2Epush%28d%29%2Cd%7D%2Cstop%3Afunction%28b%29%7Bvar%20c%3D0%2Cd%3Db%3Fj%2Etweens%2Elength%3A0%3Bif%28e%29return%20this%3Bfor%28e%3D%210%3Bd%3Ec%3Bc%2B%2B%29j%2Etweens%5Bc%5D%2Erun%281%29%3Breturn%20b%3Fh%2EresolveWith%28a%2C%5Bj%2Cb%5D%29%3Ah%2ErejectWith%28a%2C%5Bj%2Cb%5D%29%2Cthis%7D%7D%29%2Ck%3Dj%2Eprops%3Bfor%28kc%28k%2Cj%2Eopts%2EspecialEasing%29%3Bg%3Ef%3Bf%2B%2B%29if%28d%3Dec%5Bf%5D%2Ecall%28j%2Ca%2Ck%2Cj%2Eopts%29%29return%20d%3Breturn%20n%2Emap%28k%2Cic%2Cj%29%2Cn%2EisFunction%28j%2Eopts%2Estart%29%26%26j%2Eopts%2Estart%2Ecall%28a%2Cj%29%2Cn%2Efx%2Etimer%28n%2Eextend%28i%2C%7Belem%3Aa%2Canim%3Aj%2Cqueue%3Aj%2Eopts%2Equeue%7D%29%29%2Cj%2Eprogress%28j%2Eopts%2Eprogress%29%2Edone%28j%2Eopts%2Edone%2Cj%2Eopts%2Ecomplete%29%2Efail%28j%2Eopts%2Efail%29%2Ealways%28j%2Eopts%2Ealways%29%7Dn%2EAnimation%3Dn%2Eextend%28lc%2C%7Btweener%3Afunction%28a%2Cb%29%7Bn%2EisFunction%28a%29%3F%28b%3Da%2Ca%3D%5B%22%2A%22%5D%29%3Aa%3Da%2Esplit%28%22%20%22%29%3Bfor%28var%20c%2Cd%3D0%2Ce%3Da%2Elength%3Be%3Ed%3Bd%2B%2B%29c%3Da%5Bd%5D%2Cfc%5Bc%5D%3Dfc%5Bc%5D%7C%7C%5B%5D%2Cfc%5Bc%5D%2Eunshift%28b%29%7D%2Cprefilter%3Afunction%28a%2Cb%29%7Bb%3Fec%2Eunshift%28a%29%3Aec%2Epush%28a%29%7D%7D%29%2Cn%2Espeed%3Dfunction%28a%2Cb%2Cc%29%7Bvar%20d%3Da%26%26%22object%22%3D%3Dtypeof%20a%3Fn%2Eextend%28%7B%7D%2Ca%29%3A%7Bcomplete%3Ac%7C%7C%21c%26%26b%7C%7Cn%2EisFunction%28a%29%26%26a%2Cduration%3Aa%2Ceasing%3Ac%26%26b%7C%7Cb%26%26%21n%2EisFunction%28b%29%26%26b%7D%3Breturn%20d%2Eduration%3Dn%2Efx%2Eoff%3F0%3A%22number%22%3D%3Dtypeof%20d%2Eduration%3Fd%2Eduration%3Ad%2Eduration%20in%20n%2Efx%2Espeeds%3Fn%2Efx%2Espeeds%5Bd%2Eduration%5D%3An%2Efx%2Espeeds%2E%5Fdefault%2C%28null%3D%3Dd%2Equeue%7C%7Cd%2Equeue%3D%3D%3D%210%29%26%26%28d%2Equeue%3D%22fx%22%29%2Cd%2Eold%3Dd%2Ecomplete%2Cd%2Ecomplete%3Dfunction%28%29%7Bn%2EisFunction%28d%2Eold%29%26%26d%2Eold%2Ecall%28this%29%2Cd%2Equeue%26%26n%2Edequeue%28this%2Cd%2Equeue%29%7D%2Cd%7D%2Cn%2Efn%2Eextend%28%7BfadeTo%3Afunction%28a%2Cb%2Cc%2Cd%29%7Breturn%20this%2Efilter%28V%29%2Ecss%28%22opacity%22%2C0%29%2Eshow%28%29%2Eend%28%29%2Eanimate%28%7Bopacity%3Ab%7D%2Ca%2Cc%2Cd%29%7D%2Canimate%3Afunction%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3Dn%2EisEmptyObject%28a%29%2Cf%3Dn%2Espeed%28b%2Cc%2Cd%29%2Cg%3Dfunction%28%29%7Bvar%20b%3Dlc%28this%2Cn%2Eextend%28%7B%7D%2Ca%29%2Cf%29%3B%28e%7C%7Cn%2E%5Fdata%28this%2C%22finish%22%29%29%26%26b%2Estop%28%210%29%7D%3Breturn%20g%2Efinish%3Dg%2Ce%7C%7Cf%2Equeue%3D%3D%3D%211%3Fthis%2Eeach%28g%29%3Athis%2Equeue%28f%2Equeue%2Cg%29%7D%2Cstop%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%3Dfunction%28a%29%7Bvar%20b%3Da%2Estop%3Bdelete%20a%2Estop%2Cb%28c%29%7D%3Breturn%22string%22%21%3Dtypeof%20a%26%26%28c%3Db%2Cb%3Da%2Ca%3Dvoid%200%29%2Cb%26%26a%21%3D%3D%211%26%26this%2Equeue%28a%7C%7C%22fx%22%2C%5B%5D%29%2Cthis%2Eeach%28function%28%29%7Bvar%20b%3D%210%2Ce%3Dnull%21%3Da%26%26a%2B%22queueHooks%22%2Cf%3Dn%2Etimers%2Cg%3Dn%2E%5Fdata%28this%29%3Bif%28e%29g%5Be%5D%26%26g%5Be%5D%2Estop%26%26d%28g%5Be%5D%29%3Belse%20for%28e%20in%20g%29g%5Be%5D%26%26g%5Be%5D%2Estop%26%26dc%2Etest%28e%29%26%26d%28g%5Be%5D%29%3Bfor%28e%3Df%2Elength%3Be%2D%2D%3B%29f%5Be%5D%2Eelem%21%3D%3Dthis%7C%7Cnull%21%3Da%26%26f%5Be%5D%2Equeue%21%3D%3Da%7C%7C%28f%5Be%5D%2Eanim%2Estop%28c%29%2Cb%3D%211%2Cf%2Esplice%28e%2C1%29%29%3B%28b%7C%7C%21c%29%26%26n%2Edequeue%28this%2Ca%29%7D%29%7D%2Cfinish%3Afunction%28a%29%7Breturn%20a%21%3D%3D%211%26%26%28a%3Da%7C%7C%22fx%22%29%2Cthis%2Eeach%28function%28%29%7Bvar%20b%2Cc%3Dn%2E%5Fdata%28this%29%2Cd%3Dc%5Ba%2B%22queue%22%5D%2Ce%3Dc%5Ba%2B%22queueHooks%22%5D%2Cf%3Dn%2Etimers%2Cg%3Dd%3Fd%2Elength%3A0%3Bfor%28c%2Efinish%3D%210%2Cn%2Equeue%28this%2Ca%2C%5B%5D%29%2Ce%26%26e%2Estop%26%26e%2Estop%2Ecall%28this%2C%210%29%2Cb%3Df%2Elength%3Bb%2D%2D%3B%29f%5Bb%5D%2Eelem%3D%3D%3Dthis%26%26f%5Bb%5D%2Equeue%3D%3D%3Da%26%26%28f%5Bb%5D%2Eanim%2Estop%28%210%29%2Cf%2Esplice%28b%2C1%29%29%3Bfor%28b%3D0%3Bg%3Eb%3Bb%2B%2B%29d%5Bb%5D%26%26d%5Bb%5D%2Efinish%26%26d%5Bb%5D%2Efinish%2Ecall%28this%29%3Bdelete%20c%2Efinish%7D%29%7D%7D%29%2Cn%2Eeach%28%5B%22toggle%22%2C%22show%22%2C%22hide%22%5D%2Cfunction%28a%2Cb%29%7Bvar%20c%3Dn%2Efn%5Bb%5D%3Bn%2Efn%5Bb%5D%3Dfunction%28a%2Cd%2Ce%29%7Breturn%20null%3D%3Da%7C%7C%22boolean%22%3D%3Dtypeof%20a%3Fc%2Eapply%28this%2Carguments%29%3Athis%2Eanimate%28hc%28b%2C%210%29%2Ca%2Cd%2Ce%29%7D%7D%29%2Cn%2Eeach%28%7BslideDown%3Ahc%28%22show%22%29%2CslideUp%3Ahc%28%22hide%22%29%2CslideToggle%3Ahc%28%22toggle%22%29%2CfadeIn%3A%7Bopacity%3A%22show%22%7D%2CfadeOut%3A%7Bopacity%3A%22hide%22%7D%2CfadeToggle%3A%7Bopacity%3A%22toggle%22%7D%7D%2Cfunction%28a%2Cb%29%7Bn%2Efn%5Ba%5D%3Dfunction%28a%2Cc%2Cd%29%7Breturn%20this%2Eanimate%28b%2Ca%2Cc%2Cd%29%7D%7D%29%2Cn%2Etimers%3D%5B%5D%2Cn%2Efx%2Etick%3Dfunction%28%29%7Bvar%20a%2Cb%3Dn%2Etimers%2Cc%3D0%3Bfor%28%5Fb%3Dn%2Enow%28%29%3Bc%3Cb%2Elength%3Bc%2B%2B%29a%3Db%5Bc%5D%2Ca%28%29%7C%7Cb%5Bc%5D%21%3D%3Da%7C%7Cb%2Esplice%28c%2D%2D%2C1%29%3Bb%2Elength%7C%7Cn%2Efx%2Estop%28%29%2C%5Fb%3Dvoid%200%7D%2Cn%2Efx%2Etimer%3Dfunction%28a%29%7Bn%2Etimers%2Epush%28a%29%2Ca%28%29%3Fn%2Efx%2Estart%28%29%3An%2Etimers%2Epop%28%29%7D%2Cn%2Efx%2Einterval%3D13%2Cn%2Efx%2Estart%3Dfunction%28%29%7Bac%7C%7C%28ac%3DsetInterval%28n%2Efx%2Etick%2Cn%2Efx%2Einterval%29%29%7D%2Cn%2Efx%2Estop%3Dfunction%28%29%7BclearInterval%28ac%29%2Cac%3Dnull%7D%2Cn%2Efx%2Espeeds%3D%7Bslow%3A600%2Cfast%3A200%2C%5Fdefault%3A400%7D%2Cn%2Efn%2Edelay%3Dfunction%28a%2Cb%29%7Breturn%20a%3Dn%2Efx%3Fn%2Efx%2Espeeds%5Ba%5D%7C%7Ca%3Aa%2Cb%3Db%7C%7C%22fx%22%2Cthis%2Equeue%28b%2Cfunction%28b%2Cc%29%7Bvar%20d%3DsetTimeout%28b%2Ca%29%3Bc%2Estop%3Dfunction%28%29%7BclearTimeout%28d%29%7D%7D%29%7D%2Cfunction%28%29%7Bvar%20a%2Cb%2Cc%2Cd%2Ce%3Dz%2EcreateElement%28%22div%22%29%3Be%2EsetAttribute%28%22className%22%2C%22t%22%29%2Ce%2EinnerHTML%3D%22%20%20%3Clink%2F%3E%3Ctable%3E%3C%2Ftable%3E%3Ca%20href%3D%27%2Fa%27%3Ea%3C%2Fa%3E%3Cinput%20type%3D%27checkbox%27%2F%3E%22%2Ca%3De%2EgetElementsByTagName%28%22a%22%29%5B0%5D%2Cc%3Dz%2EcreateElement%28%22select%22%29%2Cd%3Dc%2EappendChild%28z%2EcreateElement%28%22option%22%29%29%2Cb%3De%2EgetElementsByTagName%28%22input%22%29%5B0%5D%2Ca%2Estyle%2EcssText%3D%22top%3A1px%22%2Cl%2EgetSetAttribute%3D%22t%22%21%3D%3De%2EclassName%2Cl%2Estyle%3D%2Ftop%2F%2Etest%28a%2EgetAttribute%28%22style%22%29%29%2Cl%2EhrefNormalized%3D%22%2Fa%22%3D%3D%3Da%2EgetAttribute%28%22href%22%29%2Cl%2EcheckOn%3D%21%21b%2Evalue%2Cl%2EoptSelected%3Dd%2Eselected%2Cl%2Eenctype%3D%21%21z%2EcreateElement%28%22form%22%29%2Eenctype%2Cc%2Edisabled%3D%210%2Cl%2EoptDisabled%3D%21d%2Edisabled%2Cb%3Dz%2EcreateElement%28%22input%22%29%2Cb%2EsetAttribute%28%22value%22%2C%22%22%29%2Cl%2Einput%3D%22%22%3D%3D%3Db%2EgetAttribute%28%22value%22%29%2Cb%2Evalue%3D%22t%22%2Cb%2EsetAttribute%28%22type%22%2C%22radio%22%29%2Cl%2EradioValue%3D%22t%22%3D%3D%3Db%2Evalue%2Ca%3Db%3Dc%3Dd%3De%3Dnull%7D%28%29%3Bvar%20mc%3D%2F%5Cr%2Fg%3Bn%2Efn%2Eextend%28%7Bval%3Afunction%28a%29%7Bvar%20b%2Cc%2Cd%2Ce%3Dthis%5B0%5D%3B%7Bif%28arguments%2Elength%29return%20d%3Dn%2EisFunction%28a%29%2Cthis%2Eeach%28function%28c%29%7Bvar%20e%3B1%3D%3D%3Dthis%2EnodeType%26%26%28e%3Dd%3Fa%2Ecall%28this%2Cc%2Cn%28this%29%2Eval%28%29%29%3Aa%2Cnull%3D%3De%3Fe%3D%22%22%3A%22number%22%3D%3Dtypeof%20e%3Fe%2B%3D%22%22%3An%2EisArray%28e%29%26%26%28e%3Dn%2Emap%28e%2Cfunction%28a%29%7Breturn%20null%3D%3Da%3F%22%22%3Aa%2B%22%22%7D%29%29%2Cb%3Dn%2EvalHooks%5Bthis%2Etype%5D%7C%7Cn%2EvalHooks%5Bthis%2EnodeName%2EtoLowerCase%28%29%5D%2Cb%26%26%22set%22in%20b%26%26void%200%21%3D%3Db%2Eset%28this%2Ce%2C%22value%22%29%7C%7C%28this%2Evalue%3De%29%29%7D%29%3Bif%28e%29return%20b%3Dn%2EvalHooks%5Be%2Etype%5D%7C%7Cn%2EvalHooks%5Be%2EnodeName%2EtoLowerCase%28%29%5D%2Cb%26%26%22get%22in%20b%26%26void%200%21%3D%3D%28c%3Db%2Eget%28e%2C%22value%22%29%29%3Fc%3A%28c%3De%2Evalue%2C%22string%22%3D%3Dtypeof%20c%3Fc%2Ereplace%28mc%2C%22%22%29%3Anull%3D%3Dc%3F%22%22%3Ac%29%7D%7D%7D%29%2Cn%2Eextend%28%7BvalHooks%3A%7Boption%3A%7Bget%3Afunction%28a%29%7Bvar%20b%3Dn%2Efind%2Eattr%28a%2C%22value%22%29%3Breturn%20null%21%3Db%3Fb%3An%2Etext%28a%29%7D%7D%2Cselect%3A%7Bget%3Afunction%28a%29%7Bfor%28var%20b%2Cc%2Cd%3Da%2Eoptions%2Ce%3Da%2EselectedIndex%2Cf%3D%22select%2Done%22%3D%3D%3Da%2Etype%7C%7C0%3Ee%2Cg%3Df%3Fnull%3A%5B%5D%2Ch%3Df%3Fe%2B1%3Ad%2Elength%2Ci%3D0%3Ee%3Fh%3Af%3Fe%3A0%3Bh%3Ei%3Bi%2B%2B%29if%28c%3Dd%5Bi%5D%2C%21%28%21c%2Eselected%26%26i%21%3D%3De%7C%7C%28l%2EoptDisabled%3Fc%2Edisabled%3Anull%21%3D%3Dc%2EgetAttribute%28%22disabled%22%29%29%7C%7Cc%2EparentNode%2Edisabled%26%26n%2EnodeName%28c%2EparentNode%2C%22optgroup%22%29%29%29%7Bif%28b%3Dn%28c%29%2Eval%28%29%2Cf%29return%20b%3Bg%2Epush%28b%29%7Dreturn%20g%7D%2Cset%3Afunction%28a%2Cb%29%7Bvar%20c%2Cd%2Ce%3Da%2Eoptions%2Cf%3Dn%2EmakeArray%28b%29%2Cg%3De%2Elength%3Bwhile%28g%2D%2D%29if%28d%3De%5Bg%5D%2Cn%2EinArray%28n%2EvalHooks%2Eoption%2Eget%28d%29%2Cf%29%3E%3D0%29try%7Bd%2Eselected%3Dc%3D%210%7Dcatch%28h%29%7Bd%2EscrollHeight%7Delse%20d%2Eselected%3D%211%3Breturn%20c%7C%7C%28a%2EselectedIndex%3D%2D1%29%2Ce%7D%7D%7D%7D%29%2Cn%2Eeach%28%5B%22radio%22%2C%22checkbox%22%5D%2Cfunction%28%29%7Bn%2EvalHooks%5Bthis%5D%3D%7Bset%3Afunction%28a%2Cb%29%7Breturn%20n%2EisArray%28b%29%3Fa%2Echecked%3Dn%2EinArray%28n%28a%29%2Eval%28%29%2Cb%29%3E%3D0%3Avoid%200%7D%7D%2Cl%2EcheckOn%7C%7C%28n%2EvalHooks%5Bthis%5D%2Eget%3Dfunction%28a%29%7Breturn%20null%3D%3D%3Da%2EgetAttribute%28%22value%22%29%3F%22on%22%3Aa%2Evalue%7D%29%7D%29%3Bvar%20nc%2Coc%2Cpc%3Dn%2Eexpr%2EattrHandle%2Cqc%3D%2F%5E%28%3F%3Achecked%7Cselected%29%24%2Fi%2Crc%3Dl%2EgetSetAttribute%2Csc%3Dl%2Einput%3Bn%2Efn%2Eextend%28%7Battr%3Afunction%28a%2Cb%29%7Breturn%20W%28this%2Cn%2Eattr%2Ca%2Cb%2Carguments%2Elength%3E1%29%7D%2CremoveAttr%3Afunction%28a%29%7Breturn%20this%2Eeach%28function%28%29%7Bn%2EremoveAttr%28this%2Ca%29%7D%29%7D%7D%29%2Cn%2Eextend%28%7Battr%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%2Ce%2Cf%3Da%2EnodeType%3Bif%28a%26%263%21%3D%3Df%26%268%21%3D%3Df%26%262%21%3D%3Df%29return%20typeof%20a%2EgetAttribute%3D%3D%3DL%3Fn%2Eprop%28a%2Cb%2Cc%29%3A%281%3D%3D%3Df%26%26n%2EisXMLDoc%28a%29%7C%7C%28b%3Db%2EtoLowerCase%28%29%2Cd%3Dn%2EattrHooks%5Bb%5D%7C%7C%28n%2Eexpr%2Ematch%2Ebool%2Etest%28b%29%3Foc%3Anc%29%29%2Cvoid%200%3D%3D%3Dc%3Fd%26%26%22get%22in%20d%26%26null%21%3D%3D%28e%3Dd%2Eget%28a%2Cb%29%29%3Fe%3A%28e%3Dn%2Efind%2Eattr%28a%2Cb%29%2Cnull%3D%3De%3Fvoid%200%3Ae%29%3Anull%21%3D%3Dc%3Fd%26%26%22set%22in%20d%26%26void%200%21%3D%3D%28e%3Dd%2Eset%28a%2Cc%2Cb%29%29%3Fe%3A%28a%2EsetAttribute%28b%2Cc%2B%22%22%29%2Cc%29%3Avoid%20n%2EremoveAttr%28a%2Cb%29%29%7D%2CremoveAttr%3Afunction%28a%2Cb%29%7Bvar%20c%2Cd%2Ce%3D0%2Cf%3Db%26%26b%2Ematch%28F%29%3Bif%28f%26%261%3D%3D%3Da%2EnodeType%29while%28c%3Df%5Be%2B%2B%5D%29d%3Dn%2EpropFix%5Bc%5D%7C%7Cc%2Cn%2Eexpr%2Ematch%2Ebool%2Etest%28c%29%3Fsc%26%26rc%7C%7C%21qc%2Etest%28c%29%3Fa%5Bd%5D%3D%211%3Aa%5Bn%2EcamelCase%28%22default%2D%22%2Bc%29%5D%3Da%5Bd%5D%3D%211%3An%2Eattr%28a%2Cc%2C%22%22%29%2Ca%2EremoveAttribute%28rc%3Fc%3Ad%29%7D%2CattrHooks%3A%7Btype%3A%7Bset%3Afunction%28a%2Cb%29%7Bif%28%21l%2EradioValue%26%26%22radio%22%3D%3D%3Db%26%26n%2EnodeName%28a%2C%22input%22%29%29%7Bvar%20c%3Da%2Evalue%3Breturn%20a%2EsetAttribute%28%22type%22%2Cb%29%2Cc%26%26%28a%2Evalue%3Dc%29%2Cb%7D%7D%7D%7D%7D%29%2Coc%3D%7Bset%3Afunction%28a%2Cb%2Cc%29%7Breturn%20b%3D%3D%3D%211%3Fn%2EremoveAttr%28a%2Cc%29%3Asc%26%26rc%7C%7C%21qc%2Etest%28c%29%3Fa%2EsetAttribute%28%21rc%26%26n%2EpropFix%5Bc%5D%7C%7Cc%2Cc%29%3Aa%5Bn%2EcamelCase%28%22default%2D%22%2Bc%29%5D%3Da%5Bc%5D%3D%210%2Cc%7D%7D%2Cn%2Eeach%28n%2Eexpr%2Ematch%2Ebool%2Esource%2Ematch%28%2F%5Cw%2B%2Fg%29%2Cfunction%28a%2Cb%29%7Bvar%20c%3Dpc%5Bb%5D%7C%7Cn%2Efind%2Eattr%3Bpc%5Bb%5D%3Dsc%26%26rc%7C%7C%21qc%2Etest%28b%29%3Ffunction%28a%2Cb%2Cd%29%7Bvar%20e%2Cf%3Breturn%20d%7C%7C%28f%3Dpc%5Bb%5D%2Cpc%5Bb%5D%3De%2Ce%3Dnull%21%3Dc%28a%2Cb%2Cd%29%3Fb%2EtoLowerCase%28%29%3Anull%2Cpc%5Bb%5D%3Df%29%2Ce%7D%3Afunction%28a%2Cb%2Cc%29%7Breturn%20c%3Fvoid%200%3Aa%5Bn%2EcamelCase%28%22default%2D%22%2Bb%29%5D%3Fb%2EtoLowerCase%28%29%3Anull%7D%7D%29%2Csc%26%26rc%7C%7C%28n%2EattrHooks%2Evalue%3D%7Bset%3Afunction%28a%2Cb%2Cc%29%7Breturn%20n%2EnodeName%28a%2C%22input%22%29%3Fvoid%28a%2EdefaultValue%3Db%29%3Anc%26%26nc%2Eset%28a%2Cb%2Cc%29%7D%7D%29%2Crc%7C%7C%28nc%3D%7Bset%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%3Da%2EgetAttributeNode%28c%29%3Breturn%20d%7C%7Ca%2EsetAttributeNode%28d%3Da%2EownerDocument%2EcreateAttribute%28c%29%29%2Cd%2Evalue%3Db%2B%3D%22%22%2C%22value%22%3D%3D%3Dc%7C%7Cb%3D%3D%3Da%2EgetAttribute%28c%29%3Fb%3Avoid%200%7D%7D%2Cpc%2Eid%3Dpc%2Ename%3Dpc%2Ecoords%3Dfunction%28a%2Cb%2Cc%29%7Bvar%20d%3Breturn%20c%3Fvoid%200%3A%28d%3Da%2EgetAttributeNode%28b%29%29%26%26%22%22%21%3D%3Dd%2Evalue%3Fd%2Evalue%3Anull%7D%2Cn%2EvalHooks%2Ebutton%3D%7Bget%3Afunction%28a%2Cb%29%7Bvar%20c%3Da%2EgetAttributeNode%28b%29%3Breturn%20c%26%26c%2Especified%3Fc%2Evalue%3Avoid%200%7D%2Cset%3Anc%2Eset%7D%2Cn%2EattrHooks%2Econtenteditable%3D%7Bset%3Afunction%28a%2Cb%2Cc%29%7Bnc%2Eset%28a%2C%22%22%3D%3D%3Db%3F%211%3Ab%2Cc%29%7D%7D%2Cn%2Eeach%28%5B%22width%22%2C%22height%22%5D%2Cfunction%28a%2Cb%29%7Bn%2EattrHooks%5Bb%5D%3D%7Bset%3Afunction%28a%2Cc%29%7Breturn%22%22%3D%3D%3Dc%3F%28a%2EsetAttribute%28b%2C%22auto%22%29%2Cc%29%3Avoid%200%7D%7D%7D%29%29%2Cl%2Estyle%7C%7C%28n%2EattrHooks%2Estyle%3D%7Bget%3Afunction%28a%29%7Breturn%20a%2Estyle%2EcssText%7C%7Cvoid%200%7D%2Cset%3Afunction%28a%2Cb%29%7Breturn%20a%2Estyle%2EcssText%3Db%2B%22%22%7D%7D%29%3Bvar%20tc%3D%2F%5E%28%3F%3Ainput%7Cselect%7Ctextarea%7Cbutton%7Cobject%29%24%2Fi%2Cuc%3D%2F%5E%28%3F%3Aa%7Carea%29%24%2Fi%3Bn%2Efn%2Eextend%28%7Bprop%3Afunction%28a%2Cb%29%7Breturn%20W%28this%2Cn%2Eprop%2Ca%2Cb%2Carguments%2Elength%3E1%29%7D%2CremoveProp%3Afunction%28a%29%7Breturn%20a%3Dn%2EpropFix%5Ba%5D%7C%7Ca%2Cthis%2Eeach%28function%28%29%7Btry%7Bthis%5Ba%5D%3Dvoid%200%2Cdelete%20this%5Ba%5D%7Dcatch%28b%29%7B%7D%7D%29%7D%7D%29%2Cn%2Eextend%28%7BpropFix%3A%7B%22for%22%3A%22htmlFor%22%2C%22class%22%3A%22className%22%7D%2Cprop%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%2Ce%2Cf%2Cg%3Da%2EnodeType%3Bif%28a%26%263%21%3D%3Dg%26%268%21%3D%3Dg%26%262%21%3D%3Dg%29return%20f%3D1%21%3D%3Dg%7C%7C%21n%2EisXMLDoc%28a%29%2Cf%26%26%28b%3Dn%2EpropFix%5Bb%5D%7C%7Cb%2Ce%3Dn%2EpropHooks%5Bb%5D%29%2Cvoid%200%21%3D%3Dc%3Fe%26%26%22set%22in%20e%26%26void%200%21%3D%3D%28d%3De%2Eset%28a%2Cc%2Cb%29%29%3Fd%3Aa%5Bb%5D%3Dc%3Ae%26%26%22get%22in%20e%26%26null%21%3D%3D%28d%3De%2Eget%28a%2Cb%29%29%3Fd%3Aa%5Bb%5D%7D%2CpropHooks%3A%7BtabIndex%3A%7Bget%3Afunction%28a%29%7Bvar%20b%3Dn%2Efind%2Eattr%28a%2C%22tabindex%22%29%3Breturn%20b%3FparseInt%28b%2C10%29%3Atc%2Etest%28a%2EnodeName%29%7C%7Cuc%2Etest%28a%2EnodeName%29%26%26a%2Ehref%3F0%3A%2D1%7D%7D%7D%7D%29%2Cl%2EhrefNormalized%7C%7Cn%2Eeach%28%5B%22href%22%2C%22src%22%5D%2Cfunction%28a%2Cb%29%7Bn%2EpropHooks%5Bb%5D%3D%7Bget%3Afunction%28a%29%7Breturn%20a%2EgetAttribute%28b%2C4%29%7D%7D%7D%29%2Cl%2EoptSelected%7C%7C%28n%2EpropHooks%2Eselected%3D%7Bget%3Afunction%28a%29%7Bvar%20b%3Da%2EparentNode%3Breturn%20b%26%26%28b%2EselectedIndex%2Cb%2EparentNode%26%26b%2EparentNode%2EselectedIndex%29%2Cnull%7D%7D%29%2Cn%2Eeach%28%5B%22tabIndex%22%2C%22readOnly%22%2C%22maxLength%22%2C%22cellSpacing%22%2C%22cellPadding%22%2C%22rowSpan%22%2C%22colSpan%22%2C%22useMap%22%2C%22frameBorder%22%2C%22contentEditable%22%5D%2Cfunction%28%29%7Bn%2EpropFix%5Bthis%2EtoLowerCase%28%29%5D%3Dthis%7D%29%2Cl%2Eenctype%7C%7C%28n%2EpropFix%2Eenctype%3D%22encoding%22%29%3Bvar%20vc%3D%2F%5B%5Ct%5Cr%5Cn%5Cf%5D%2Fg%3Bn%2Efn%2Eextend%28%7BaddClass%3Afunction%28a%29%7Bvar%20b%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%3D0%2Ci%3Dthis%2Elength%2Cj%3D%22string%22%3D%3Dtypeof%20a%26%26a%3Bif%28n%2EisFunction%28a%29%29return%20this%2Eeach%28function%28b%29%7Bn%28this%29%2EaddClass%28a%2Ecall%28this%2Cb%2Cthis%2EclassName%29%29%7D%29%3Bif%28j%29for%28b%3D%28a%7C%7C%22%22%29%2Ematch%28F%29%7C%7C%5B%5D%3Bi%3Eh%3Bh%2B%2B%29if%28c%3Dthis%5Bh%5D%2Cd%3D1%3D%3D%3Dc%2EnodeType%26%26%28c%2EclassName%3F%28%22%20%22%2Bc%2EclassName%2B%22%20%22%29%2Ereplace%28vc%2C%22%20%22%29%3A%22%20%22%29%29%7Bf%3D0%3Bwhile%28e%3Db%5Bf%2B%2B%5D%29d%2EindexOf%28%22%20%22%2Be%2B%22%20%22%29%3C0%26%26%28d%2B%3De%2B%22%20%22%29%3Bg%3Dn%2Etrim%28d%29%2Cc%2EclassName%21%3D%3Dg%26%26%28c%2EclassName%3Dg%29%7Dreturn%20this%7D%2CremoveClass%3Afunction%28a%29%7Bvar%20b%2Cc%2Cd%2Ce%2Cf%2Cg%2Ch%3D0%2Ci%3Dthis%2Elength%2Cj%3D0%3D%3D%3Darguments%2Elength%7C%7C%22string%22%3D%3Dtypeof%20a%26%26a%3Bif%28n%2EisFunction%28a%29%29return%20this%2Eeach%28function%28b%29%7Bn%28this%29%2EremoveClass%28a%2Ecall%28this%2Cb%2Cthis%2EclassName%29%29%7D%29%3Bif%28j%29for%28b%3D%28a%7C%7C%22%22%29%2Ematch%28F%29%7C%7C%5B%5D%3Bi%3Eh%3Bh%2B%2B%29if%28c%3Dthis%5Bh%5D%2Cd%3D1%3D%3D%3Dc%2EnodeType%26%26%28c%2EclassName%3F%28%22%20%22%2Bc%2EclassName%2B%22%20%22%29%2Ereplace%28vc%2C%22%20%22%29%3A%22%22%29%29%7Bf%3D0%3Bwhile%28e%3Db%5Bf%2B%2B%5D%29while%28d%2EindexOf%28%22%20%22%2Be%2B%22%20%22%29%3E%3D0%29d%3Dd%2Ereplace%28%22%20%22%2Be%2B%22%20%22%2C%22%20%22%29%3Bg%3Da%3Fn%2Etrim%28d%29%3A%22%22%2Cc%2EclassName%21%3D%3Dg%26%26%28c%2EclassName%3Dg%29%7Dreturn%20this%7D%2CtoggleClass%3Afunction%28a%2Cb%29%7Bvar%20c%3Dtypeof%20a%3Breturn%22boolean%22%3D%3Dtypeof%20b%26%26%22string%22%3D%3D%3Dc%3Fb%3Fthis%2EaddClass%28a%29%3Athis%2EremoveClass%28a%29%3Athis%2Eeach%28n%2EisFunction%28a%29%3Ffunction%28c%29%7Bn%28this%29%2EtoggleClass%28a%2Ecall%28this%2Cc%2Cthis%2EclassName%2Cb%29%2Cb%29%7D%3Afunction%28%29%7Bif%28%22string%22%3D%3D%3Dc%29%7Bvar%20b%2Cd%3D0%2Ce%3Dn%28this%29%2Cf%3Da%2Ematch%28F%29%7C%7C%5B%5D%3Bwhile%28b%3Df%5Bd%2B%2B%5D%29e%2EhasClass%28b%29%3Fe%2EremoveClass%28b%29%3Ae%2EaddClass%28b%29%7Delse%28c%3D%3D%3DL%7C%7C%22boolean%22%3D%3D%3Dc%29%26%26%28this%2EclassName%26%26n%2E%5Fdata%28this%2C%22%5F%5FclassName%5F%5F%22%2Cthis%2EclassName%29%2Cthis%2EclassName%3Dthis%2EclassName%7C%7Ca%3D%3D%3D%211%3F%22%22%3An%2E%5Fdata%28this%2C%22%5F%5FclassName%5F%5F%22%29%7C%7C%22%22%29%7D%29%7D%2ChasClass%3Afunction%28a%29%7Bfor%28var%20b%3D%22%20%22%2Ba%2B%22%20%22%2Cc%3D0%2Cd%3Dthis%2Elength%3Bd%3Ec%3Bc%2B%2B%29if%281%3D%3D%3Dthis%5Bc%5D%2EnodeType%26%26%28%22%20%22%2Bthis%5Bc%5D%2EclassName%2B%22%20%22%29%2Ereplace%28vc%2C%22%20%22%29%2EindexOf%28b%29%3E%3D0%29return%210%3Breturn%211%7D%7D%29%2Cn%2Eeach%28%22blur%20focus%20focusin%20focusout%20load%20resize%20scroll%20unload%20click%20dblclick%20mousedown%20mouseup%20mousemove%20mouseover%20mouseout%20mouseenter%20mouseleave%20change%20select%20submit%20keydown%20keypress%20keyup%20error%20contextmenu%22%2Esplit%28%22%20%22%29%2Cfunction%28a%2Cb%29%7Bn%2Efn%5Bb%5D%3Dfunction%28a%2Cc%29%7Breturn%20arguments%2Elength%3E0%3Fthis%2Eon%28b%2Cnull%2Ca%2Cc%29%3Athis%2Etrigger%28b%29%7D%7D%29%2Cn%2Efn%2Eextend%28%7Bhover%3Afunction%28a%2Cb%29%7Breturn%20this%2Emouseenter%28a%29%2Emouseleave%28b%7C%7Ca%29%7D%2Cbind%3Afunction%28a%2Cb%2Cc%29%7Breturn%20this%2Eon%28a%2Cnull%2Cb%2Cc%29%7D%2Cunbind%3Afunction%28a%2Cb%29%7Breturn%20this%2Eoff%28a%2Cnull%2Cb%29%7D%2Cdelegate%3Afunction%28a%2Cb%2Cc%2Cd%29%7Breturn%20this%2Eon%28b%2Ca%2Cc%2Cd%29%7D%2Cundelegate%3Afunction%28a%2Cb%2Cc%29%7Breturn%201%3D%3D%3Darguments%2Elength%3Fthis%2Eoff%28a%2C%22%2A%2A%22%29%3Athis%2Eoff%28b%2Ca%7C%7C%22%2A%2A%22%2Cc%29%7D%7D%29%3Bvar%20wc%3Dn%2Enow%28%29%2Cxc%3D%2F%5C%3F%2F%2Cyc%3D%2F%28%2C%29%7C%28%5C%5B%7C%7B%29%7C%28%7D%7C%5D%29%7C%22%28%3F%3A%5B%5E%22%5C%5C%5Cr%5Cn%5D%7C%5C%5C%5B%22%5C%5C%5C%2Fbfnrt%5D%7C%5C%5Cu%5B%5Cda%2DfA%2DF%5D%7B4%7D%29%2A%22%5Cs%2A%3A%3F%7Ctrue%7Cfalse%7Cnull%7C%2D%3F%28%3F%210%5Cd%29%5Cd%2B%28%3F%3A%5C%2E%5Cd%2B%7C%29%28%3F%3A%5BeE%5D%5B%2B%2D%5D%3F%5Cd%2B%7C%29%2Fg%3Bn%2EparseJSON%3Dfunction%28b%29%7Bif%28a%2EJSON%26%26a%2EJSON%2Eparse%29return%20a%2EJSON%2Eparse%28b%2B%22%22%29%3Bvar%20c%2Cd%3Dnull%2Ce%3Dn%2Etrim%28b%2B%22%22%29%3Breturn%20e%26%26%21n%2Etrim%28e%2Ereplace%28yc%2Cfunction%28a%2Cb%2Ce%2Cf%29%7Breturn%20c%26%26b%26%26%28d%3D0%29%2C0%3D%3D%3Dd%3Fa%3A%28c%3De%7C%7Cb%2Cd%2B%3D%21f%2D%21e%2C%22%22%29%7D%29%29%3FFunction%28%22return%20%22%2Be%29%28%29%3An%2Eerror%28%22Invalid%20JSON%3A%20%22%2Bb%29%7D%2Cn%2EparseXML%3Dfunction%28b%29%7Bvar%20c%2Cd%3Bif%28%21b%7C%7C%22string%22%21%3Dtypeof%20b%29return%20null%3Btry%7Ba%2EDOMParser%3F%28d%3Dnew%20DOMParser%2Cc%3Dd%2EparseFromString%28b%2C%22text%2Fxml%22%29%29%3A%28c%3Dnew%20ActiveXObject%28%22Microsoft%2EXMLDOM%22%29%2Cc%2Easync%3D%22false%22%2Cc%2EloadXML%28b%29%29%7Dcatch%28e%29%7Bc%3Dvoid%200%7Dreturn%20c%26%26c%2EdocumentElement%26%26%21c%2EgetElementsByTagName%28%22parsererror%22%29%2Elength%7C%7Cn%2Eerror%28%22Invalid%20XML%3A%20%22%2Bb%29%2Cc%7D%3Bvar%20zc%2CAc%2CBc%3D%2F%23%2E%2A%24%2F%2CCc%3D%2F%28%5B%3F%26%5D%29%5F%3D%5B%5E%26%5D%2A%2F%2CDc%3D%2F%5E%28%2E%2A%3F%29%3A%5B%20%5Ct%5D%2A%28%5B%5E%5Cr%5Cn%5D%2A%29%5Cr%3F%24%2Fgm%2CEc%3D%2F%5E%28%3F%3Aabout%7Capp%7Capp%2Dstorage%7C%2E%2B%2Dextension%7Cfile%7Cres%7Cwidget%29%3A%24%2F%2CFc%3D%2F%5E%28%3F%3AGET%7CHEAD%29%24%2F%2CGc%3D%2F%5E%5C%2F%5C%2F%2F%2CHc%3D%2F%5E%28%5B%5Cw%2E%2B%2D%5D%2B%3A%29%28%3F%3A%5C%2F%5C%2F%28%3F%3A%5B%5E%5C%2F%3F%23%5D%2A%40%7C%29%28%5B%5E%5C%2F%3F%23%3A%5D%2A%29%28%3F%3A%3A%28%5Cd%2B%29%7C%29%7C%29%2F%2CIc%3D%7B%7D%2CJc%3D%7B%7D%2CKc%3D%22%2A%2F%22%2Econcat%28%22%2A%22%29%3Btry%7BAc%3Dlocation%2Ehref%7Dcatch%28Lc%29%7BAc%3Dz%2EcreateElement%28%22a%22%29%2CAc%2Ehref%3D%22%22%2CAc%3DAc%2Ehref%7Dzc%3DHc%2Eexec%28Ac%2EtoLowerCase%28%29%29%7C%7C%5B%5D%3Bfunction%20Mc%28a%29%7Breturn%20function%28b%2Cc%29%7B%22string%22%21%3Dtypeof%20b%26%26%28c%3Db%2Cb%3D%22%2A%22%29%3Bvar%20d%2Ce%3D0%2Cf%3Db%2EtoLowerCase%28%29%2Ematch%28F%29%7C%7C%5B%5D%3Bif%28n%2EisFunction%28c%29%29while%28d%3Df%5Be%2B%2B%5D%29%22%2B%22%3D%3D%3Dd%2EcharAt%280%29%3F%28d%3Dd%2Eslice%281%29%7C%7C%22%2A%22%2C%28a%5Bd%5D%3Da%5Bd%5D%7C%7C%5B%5D%29%2Eunshift%28c%29%29%3A%28a%5Bd%5D%3Da%5Bd%5D%7C%7C%5B%5D%29%2Epush%28c%29%7D%7Dfunction%20Nc%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3D%7B%7D%2Cf%3Da%3D%3D%3DJc%3Bfunction%20g%28h%29%7Bvar%20i%3Breturn%20e%5Bh%5D%3D%210%2Cn%2Eeach%28a%5Bh%5D%7C%7C%5B%5D%2Cfunction%28a%2Ch%29%7Bvar%20j%3Dh%28b%2Cc%2Cd%29%3Breturn%22string%22%21%3Dtypeof%20j%7C%7Cf%7C%7Ce%5Bj%5D%3Ff%3F%21%28i%3Dj%29%3Avoid%200%3A%28b%2EdataTypes%2Eunshift%28j%29%2Cg%28j%29%2C%211%29%7D%29%2Ci%7Dreturn%20g%28b%2EdataTypes%5B0%5D%29%7C%7C%21e%5B%22%2A%22%5D%26%26g%28%22%2A%22%29%7Dfunction%20Oc%28a%2Cb%29%7Bvar%20c%2Cd%2Ce%3Dn%2EajaxSettings%2EflatOptions%7C%7C%7B%7D%3Bfor%28d%20in%20b%29void%200%21%3D%3Db%5Bd%5D%26%26%28%28e%5Bd%5D%3Fa%3Ac%7C%7C%28c%3D%7B%7D%29%29%5Bd%5D%3Db%5Bd%5D%29%3Breturn%20c%26%26n%2Eextend%28%210%2Ca%2Cc%29%2Ca%7Dfunction%20Pc%28a%2Cb%2Cc%29%7Bvar%20d%2Ce%2Cf%2Cg%2Ch%3Da%2Econtents%2Ci%3Da%2EdataTypes%3Bwhile%28%22%2A%22%3D%3D%3Di%5B0%5D%29i%2Eshift%28%29%2Cvoid%200%3D%3D%3De%26%26%28e%3Da%2EmimeType%7C%7Cb%2EgetResponseHeader%28%22Content%2DType%22%29%29%3Bif%28e%29for%28g%20in%20h%29if%28h%5Bg%5D%26%26h%5Bg%5D%2Etest%28e%29%29%7Bi%2Eunshift%28g%29%3Bbreak%7Dif%28i%5B0%5Din%20c%29f%3Di%5B0%5D%3Belse%7Bfor%28g%20in%20c%29%7Bif%28%21i%5B0%5D%7C%7Ca%2Econverters%5Bg%2B%22%20%22%2Bi%5B0%5D%5D%29%7Bf%3Dg%3Bbreak%7Dd%7C%7C%28d%3Dg%29%7Df%3Df%7C%7Cd%7Dreturn%20f%3F%28f%21%3D%3Di%5B0%5D%26%26i%2Eunshift%28f%29%2Cc%5Bf%5D%29%3Avoid%200%7Dfunction%20Qc%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%2Cf%2Cg%2Ch%2Ci%2Cj%3D%7B%7D%2Ck%3Da%2EdataTypes%2Eslice%28%29%3Bif%28k%5B1%5D%29for%28g%20in%20a%2Econverters%29j%5Bg%2EtoLowerCase%28%29%5D%3Da%2Econverters%5Bg%5D%3Bf%3Dk%2Eshift%28%29%3Bwhile%28f%29if%28a%2EresponseFields%5Bf%5D%26%26%28c%5Ba%2EresponseFields%5Bf%5D%5D%3Db%29%2C%21i%26%26d%26%26a%2EdataFilter%26%26%28b%3Da%2EdataFilter%28b%2Ca%2EdataType%29%29%2Ci%3Df%2Cf%3Dk%2Eshift%28%29%29if%28%22%2A%22%3D%3D%3Df%29f%3Di%3Belse%20if%28%22%2A%22%21%3D%3Di%26%26i%21%3D%3Df%29%7Bif%28g%3Dj%5Bi%2B%22%20%22%2Bf%5D%7C%7Cj%5B%22%2A%20%22%2Bf%5D%2C%21g%29for%28e%20in%20j%29if%28h%3De%2Esplit%28%22%20%22%29%2Ch%5B1%5D%3D%3D%3Df%26%26%28g%3Dj%5Bi%2B%22%20%22%2Bh%5B0%5D%5D%7C%7Cj%5B%22%2A%20%22%2Bh%5B0%5D%5D%29%29%7Bg%3D%3D%3D%210%3Fg%3Dj%5Be%5D%3Aj%5Be%5D%21%3D%3D%210%26%26%28f%3Dh%5B0%5D%2Ck%2Eunshift%28h%5B1%5D%29%29%3Bbreak%7Dif%28g%21%3D%3D%210%29if%28g%26%26a%5B%22throws%22%5D%29b%3Dg%28b%29%3Belse%20try%7Bb%3Dg%28b%29%7Dcatch%28l%29%7Breturn%7Bstate%3A%22parsererror%22%2Cerror%3Ag%3Fl%3A%22No%20conversion%20from%20%22%2Bi%2B%22%20to%20%22%2Bf%7D%7D%7Dreturn%7Bstate%3A%22success%22%2Cdata%3Ab%7D%7Dn%2Eextend%28%7Bactive%3A0%2ClastModified%3A%7B%7D%2Cetag%3A%7B%7D%2CajaxSettings%3A%7Burl%3AAc%2Ctype%3A%22GET%22%2CisLocal%3AEc%2Etest%28zc%5B1%5D%29%2Cglobal%3A%210%2CprocessData%3A%210%2Casync%3A%210%2CcontentType%3A%22application%2Fx%2Dwww%2Dform%2Durlencoded%3B%20charset%3DUTF%2D8%22%2Caccepts%3A%7B%22%2A%22%3AKc%2Ctext%3A%22text%2Fplain%22%2Chtml%3A%22text%2Fhtml%22%2Cxml%3A%22application%2Fxml%2C%20text%2Fxml%22%2Cjson%3A%22application%2Fjson%2C%20text%2Fjavascript%22%7D%2Ccontents%3A%7Bxml%3A%2Fxml%2F%2Chtml%3A%2Fhtml%2F%2Cjson%3A%2Fjson%2F%7D%2CresponseFields%3A%7Bxml%3A%22responseXML%22%2Ctext%3A%22responseText%22%2Cjson%3A%22responseJSON%22%7D%2Cconverters%3A%7B%22%2A%20text%22%3AString%2C%22text%20html%22%3A%210%2C%22text%20json%22%3An%2EparseJSON%2C%22text%20xml%22%3An%2EparseXML%7D%2CflatOptions%3A%7Burl%3A%210%2Ccontext%3A%210%7D%7D%2CajaxSetup%3Afunction%28a%2Cb%29%7Breturn%20b%3FOc%28Oc%28a%2Cn%2EajaxSettings%29%2Cb%29%3AOc%28n%2EajaxSettings%2Ca%29%7D%2CajaxPrefilter%3AMc%28Ic%29%2CajaxTransport%3AMc%28Jc%29%2Cajax%3Afunction%28a%2Cb%29%7B%22object%22%3D%3Dtypeof%20a%26%26%28b%3Da%2Ca%3Dvoid%200%29%2Cb%3Db%7C%7C%7B%7D%3Bvar%20c%2Cd%2Ce%2Cf%2Cg%2Ch%2Ci%2Cj%2Ck%3Dn%2EajaxSetup%28%7B%7D%2Cb%29%2Cl%3Dk%2Econtext%7C%7Ck%2Cm%3Dk%2Econtext%26%26%28l%2EnodeType%7C%7Cl%2Ejquery%29%3Fn%28l%29%3An%2Eevent%2Co%3Dn%2EDeferred%28%29%2Cp%3Dn%2ECallbacks%28%22once%20memory%22%29%2Cq%3Dk%2EstatusCode%7C%7C%7B%7D%2Cr%3D%7B%7D%2Cs%3D%7B%7D%2Ct%3D0%2Cu%3D%22canceled%22%2Cv%3D%7BreadyState%3A0%2CgetResponseHeader%3Afunction%28a%29%7Bvar%20b%3Bif%282%3D%3D%3Dt%29%7Bif%28%21j%29%7Bj%3D%7B%7D%3Bwhile%28b%3DDc%2Eexec%28f%29%29j%5Bb%5B1%5D%2EtoLowerCase%28%29%5D%3Db%5B2%5D%7Db%3Dj%5Ba%2EtoLowerCase%28%29%5D%7Dreturn%20null%3D%3Db%3Fnull%3Ab%7D%2CgetAllResponseHeaders%3Afunction%28%29%7Breturn%202%3D%3D%3Dt%3Ff%3Anull%7D%2CsetRequestHeader%3Afunction%28a%2Cb%29%7Bvar%20c%3Da%2EtoLowerCase%28%29%3Breturn%20t%7C%7C%28a%3Ds%5Bc%5D%3Ds%5Bc%5D%7C%7Ca%2Cr%5Ba%5D%3Db%29%2Cthis%7D%2CoverrideMimeType%3Afunction%28a%29%7Breturn%20t%7C%7C%28k%2EmimeType%3Da%29%2Cthis%7D%2CstatusCode%3Afunction%28a%29%7Bvar%20b%3Bif%28a%29if%282%3Et%29for%28b%20in%20a%29q%5Bb%5D%3D%5Bq%5Bb%5D%2Ca%5Bb%5D%5D%3Belse%20v%2Ealways%28a%5Bv%2Estatus%5D%29%3Breturn%20this%7D%2Cabort%3Afunction%28a%29%7Bvar%20b%3Da%7C%7Cu%3Breturn%20i%26%26i%2Eabort%28b%29%2Cx%280%2Cb%29%2Cthis%7D%7D%3Bif%28o%2Epromise%28v%29%2Ecomplete%3Dp%2Eadd%2Cv%2Esuccess%3Dv%2Edone%2Cv%2Eerror%3Dv%2Efail%2Ck%2Eurl%3D%28%28a%7C%7Ck%2Eurl%7C%7CAc%29%2B%22%22%29%2Ereplace%28Bc%2C%22%22%29%2Ereplace%28Gc%2Czc%5B1%5D%2B%22%2F%2F%22%29%2Ck%2Etype%3Db%2Emethod%7C%7Cb%2Etype%7C%7Ck%2Emethod%7C%7Ck%2Etype%2Ck%2EdataTypes%3Dn%2Etrim%28k%2EdataType%7C%7C%22%2A%22%29%2EtoLowerCase%28%29%2Ematch%28F%29%7C%7C%5B%22%22%5D%2Cnull%3D%3Dk%2EcrossDomain%26%26%28c%3DHc%2Eexec%28k%2Eurl%2EtoLowerCase%28%29%29%2Ck%2EcrossDomain%3D%21%28%21c%7C%7Cc%5B1%5D%3D%3D%3Dzc%5B1%5D%26%26c%5B2%5D%3D%3D%3Dzc%5B2%5D%26%26%28c%5B3%5D%7C%7C%28%22http%3A%22%3D%3D%3Dc%5B1%5D%3F%2280%22%3A%22443%22%29%29%3D%3D%3D%28zc%5B3%5D%7C%7C%28%22http%3A%22%3D%3D%3Dzc%5B1%5D%3F%2280%22%3A%22443%22%29%29%29%29%2Ck%2Edata%26%26k%2EprocessData%26%26%22string%22%21%3Dtypeof%20k%2Edata%26%26%28k%2Edata%3Dn%2Eparam%28k%2Edata%2Ck%2Etraditional%29%29%2CNc%28Ic%2Ck%2Cb%2Cv%29%2C2%3D%3D%3Dt%29return%20v%3Bh%3Dk%2Eglobal%2Ch%26%260%3D%3D%3Dn%2Eactive%2B%2B%26%26n%2Eevent%2Etrigger%28%22ajaxStart%22%29%2Ck%2Etype%3Dk%2Etype%2EtoUpperCase%28%29%2Ck%2EhasContent%3D%21Fc%2Etest%28k%2Etype%29%2Ce%3Dk%2Eurl%2Ck%2EhasContent%7C%7C%28k%2Edata%26%26%28e%3Dk%2Eurl%2B%3D%28xc%2Etest%28e%29%3F%22%26%22%3A%22%3F%22%29%2Bk%2Edata%2Cdelete%20k%2Edata%29%2Ck%2Ecache%3D%3D%3D%211%26%26%28k%2Eurl%3DCc%2Etest%28e%29%3Fe%2Ereplace%28Cc%2C%22%241%5F%3D%22%2Bwc%2B%2B%29%3Ae%2B%28xc%2Etest%28e%29%3F%22%26%22%3A%22%3F%22%29%2B%22%5F%3D%22%2Bwc%2B%2B%29%29%2Ck%2EifModified%26%26%28n%2ElastModified%5Be%5D%26%26v%2EsetRequestHeader%28%22If%2DModified%2DSince%22%2Cn%2ElastModified%5Be%5D%29%2Cn%2Eetag%5Be%5D%26%26v%2EsetRequestHeader%28%22If%2DNone%2DMatch%22%2Cn%2Eetag%5Be%5D%29%29%2C%28k%2Edata%26%26k%2EhasContent%26%26k%2EcontentType%21%3D%3D%211%7C%7Cb%2EcontentType%29%26%26v%2EsetRequestHeader%28%22Content%2DType%22%2Ck%2EcontentType%29%2Cv%2EsetRequestHeader%28%22Accept%22%2Ck%2EdataTypes%5B0%5D%26%26k%2Eaccepts%5Bk%2EdataTypes%5B0%5D%5D%3Fk%2Eaccepts%5Bk%2EdataTypes%5B0%5D%5D%2B%28%22%2A%22%21%3D%3Dk%2EdataTypes%5B0%5D%3F%22%2C%20%22%2BKc%2B%22%3B%20q%3D0%2E01%22%3A%22%22%29%3Ak%2Eaccepts%5B%22%2A%22%5D%29%3Bfor%28d%20in%20k%2Eheaders%29v%2EsetRequestHeader%28d%2Ck%2Eheaders%5Bd%5D%29%3Bif%28k%2EbeforeSend%26%26%28k%2EbeforeSend%2Ecall%28l%2Cv%2Ck%29%3D%3D%3D%211%7C%7C2%3D%3D%3Dt%29%29return%20v%2Eabort%28%29%3Bu%3D%22abort%22%3Bfor%28d%20in%7Bsuccess%3A1%2Cerror%3A1%2Ccomplete%3A1%7D%29v%5Bd%5D%28k%5Bd%5D%29%3Bif%28i%3DNc%28Jc%2Ck%2Cb%2Cv%29%29%7Bv%2EreadyState%3D1%2Ch%26%26m%2Etrigger%28%22ajaxSend%22%2C%5Bv%2Ck%5D%29%2Ck%2Easync%26%26k%2Etimeout%3E0%26%26%28g%3DsetTimeout%28function%28%29%7Bv%2Eabort%28%22timeout%22%29%7D%2Ck%2Etimeout%29%29%3Btry%7Bt%3D1%2Ci%2Esend%28r%2Cx%29%7Dcatch%28w%29%7Bif%28%21%282%3Et%29%29throw%20w%3Bx%28%2D1%2Cw%29%7D%7Delse%20x%28%2D1%2C%22No%20Transport%22%29%3Bfunction%20x%28a%2Cb%2Cc%2Cd%29%7Bvar%20j%2Cr%2Cs%2Cu%2Cw%2Cx%3Db%3B2%21%3D%3Dt%26%26%28t%3D2%2Cg%26%26clearTimeout%28g%29%2Ci%3Dvoid%200%2Cf%3Dd%7C%7C%22%22%2Cv%2EreadyState%3Da%3E0%3F4%3A0%2Cj%3Da%3E%3D200%26%26300%3Ea%7C%7C304%3D%3D%3Da%2Cc%26%26%28u%3DPc%28k%2Cv%2Cc%29%29%2Cu%3DQc%28k%2Cu%2Cv%2Cj%29%2Cj%3F%28k%2EifModified%26%26%28w%3Dv%2EgetResponseHeader%28%22Last%2DModified%22%29%2Cw%26%26%28n%2ElastModified%5Be%5D%3Dw%29%2Cw%3Dv%2EgetResponseHeader%28%22etag%22%29%2Cw%26%26%28n%2Eetag%5Be%5D%3Dw%29%29%2C204%3D%3D%3Da%7C%7C%22HEAD%22%3D%3D%3Dk%2Etype%3Fx%3D%22nocontent%22%3A304%3D%3D%3Da%3Fx%3D%22notmodified%22%3A%28x%3Du%2Estate%2Cr%3Du%2Edata%2Cs%3Du%2Eerror%2Cj%3D%21s%29%29%3A%28s%3Dx%2C%28a%7C%7C%21x%29%26%26%28x%3D%22error%22%2C0%3Ea%26%26%28a%3D0%29%29%29%2Cv%2Estatus%3Da%2Cv%2EstatusText%3D%28b%7C%7Cx%29%2B%22%22%2Cj%3Fo%2EresolveWith%28l%2C%5Br%2Cx%2Cv%5D%29%3Ao%2ErejectWith%28l%2C%5Bv%2Cx%2Cs%5D%29%2Cv%2EstatusCode%28q%29%2Cq%3Dvoid%200%2Ch%26%26m%2Etrigger%28j%3F%22ajaxSuccess%22%3A%22ajaxError%22%2C%5Bv%2Ck%2Cj%3Fr%3As%5D%29%2Cp%2EfireWith%28l%2C%5Bv%2Cx%5D%29%2Ch%26%26%28m%2Etrigger%28%22ajaxComplete%22%2C%5Bv%2Ck%5D%29%2C%2D%2Dn%2Eactive%7C%7Cn%2Eevent%2Etrigger%28%22ajaxStop%22%29%29%29%7Dreturn%20v%7D%2CgetJSON%3Afunction%28a%2Cb%2Cc%29%7Breturn%20n%2Eget%28a%2Cb%2Cc%2C%22json%22%29%7D%2CgetScript%3Afunction%28a%2Cb%29%7Breturn%20n%2Eget%28a%2Cvoid%200%2Cb%2C%22script%22%29%7D%7D%29%2Cn%2Eeach%28%5B%22get%22%2C%22post%22%5D%2Cfunction%28a%2Cb%29%7Bn%5Bb%5D%3Dfunction%28a%2Cc%2Cd%2Ce%29%7Breturn%20n%2EisFunction%28c%29%26%26%28e%3De%7C%7Cd%2Cd%3Dc%2Cc%3Dvoid%200%29%2Cn%2Eajax%28%7Burl%3Aa%2Ctype%3Ab%2CdataType%3Ae%2Cdata%3Ac%2Csuccess%3Ad%7D%29%7D%7D%29%2Cn%2Eeach%28%5B%22ajaxStart%22%2C%22ajaxStop%22%2C%22ajaxComplete%22%2C%22ajaxError%22%2C%22ajaxSuccess%22%2C%22ajaxSend%22%5D%2Cfunction%28a%2Cb%29%7Bn%2Efn%5Bb%5D%3Dfunction%28a%29%7Breturn%20this%2Eon%28b%2Ca%29%7D%7D%29%2Cn%2E%5FevalUrl%3Dfunction%28a%29%7Breturn%20n%2Eajax%28%7Burl%3Aa%2Ctype%3A%22GET%22%2CdataType%3A%22script%22%2Casync%3A%211%2Cglobal%3A%211%2C%22throws%22%3A%210%7D%29%7D%2Cn%2Efn%2Eextend%28%7BwrapAll%3Afunction%28a%29%7Bif%28n%2EisFunction%28a%29%29return%20this%2Eeach%28function%28b%29%7Bn%28this%29%2EwrapAll%28a%2Ecall%28this%2Cb%29%29%7D%29%3Bif%28this%5B0%5D%29%7Bvar%20b%3Dn%28a%2Cthis%5B0%5D%2EownerDocument%29%2Eeq%280%29%2Eclone%28%210%29%3Bthis%5B0%5D%2EparentNode%26%26b%2EinsertBefore%28this%5B0%5D%29%2Cb%2Emap%28function%28%29%7Bvar%20a%3Dthis%3Bwhile%28a%2EfirstChild%26%261%3D%3D%3Da%2EfirstChild%2EnodeType%29a%3Da%2EfirstChild%3Breturn%20a%7D%29%2Eappend%28this%29%7Dreturn%20this%7D%2CwrapInner%3Afunction%28a%29%7Breturn%20this%2Eeach%28n%2EisFunction%28a%29%3Ffunction%28b%29%7Bn%28this%29%2EwrapInner%28a%2Ecall%28this%2Cb%29%29%7D%3Afunction%28%29%7Bvar%20b%3Dn%28this%29%2Cc%3Db%2Econtents%28%29%3Bc%2Elength%3Fc%2EwrapAll%28a%29%3Ab%2Eappend%28a%29%7D%29%7D%2Cwrap%3Afunction%28a%29%7Bvar%20b%3Dn%2EisFunction%28a%29%3Breturn%20this%2Eeach%28function%28c%29%7Bn%28this%29%2EwrapAll%28b%3Fa%2Ecall%28this%2Cc%29%3Aa%29%7D%29%7D%2Cunwrap%3Afunction%28%29%7Breturn%20this%2Eparent%28%29%2Eeach%28function%28%29%7Bn%2EnodeName%28this%2C%22body%22%29%7C%7Cn%28this%29%2EreplaceWith%28this%2EchildNodes%29%7D%29%2Eend%28%29%7D%7D%29%2Cn%2Eexpr%2Efilters%2Ehidden%3Dfunction%28a%29%7Breturn%20a%2EoffsetWidth%3C%3D0%26%26a%2EoffsetHeight%3C%3D0%7C%7C%21l%2EreliableHiddenOffsets%28%29%26%26%22none%22%3D%3D%3D%28a%2Estyle%26%26a%2Estyle%2Edisplay%7C%7Cn%2Ecss%28a%2C%22display%22%29%29%7D%2Cn%2Eexpr%2Efilters%2Evisible%3Dfunction%28a%29%7Breturn%21n%2Eexpr%2Efilters%2Ehidden%28a%29%7D%3Bvar%20Rc%3D%2F%2520%2Fg%2CSc%3D%2F%5C%5B%5C%5D%24%2F%2CTc%3D%2F%5Cr%3F%5Cn%2Fg%2CUc%3D%2F%5E%28%3F%3Asubmit%7Cbutton%7Cimage%7Creset%7Cfile%29%24%2Fi%2CVc%3D%2F%5E%28%3F%3Ainput%7Cselect%7Ctextarea%7Ckeygen%29%2Fi%3Bfunction%20Wc%28a%2Cb%2Cc%2Cd%29%7Bvar%20e%3Bif%28n%2EisArray%28b%29%29n%2Eeach%28b%2Cfunction%28b%2Ce%29%7Bc%7C%7CSc%2Etest%28a%29%3Fd%28a%2Ce%29%3AWc%28a%2B%22%5B%22%2B%28%22object%22%3D%3Dtypeof%20e%3Fb%3A%22%22%29%2B%22%5D%22%2Ce%2Cc%2Cd%29%7D%29%3Belse%20if%28c%7C%7C%22object%22%21%3D%3Dn%2Etype%28b%29%29d%28a%2Cb%29%3Belse%20for%28e%20in%20b%29Wc%28a%2B%22%5B%22%2Be%2B%22%5D%22%2Cb%5Be%5D%2Cc%2Cd%29%7Dn%2Eparam%3Dfunction%28a%2Cb%29%7Bvar%20c%2Cd%3D%5B%5D%2Ce%3Dfunction%28a%2Cb%29%7Bb%3Dn%2EisFunction%28b%29%3Fb%28%29%3Anull%3D%3Db%3F%22%22%3Ab%2Cd%5Bd%2Elength%5D%3DencodeURIComponent%28a%29%2B%22%3D%22%2BencodeURIComponent%28b%29%7D%3Bif%28void%200%3D%3D%3Db%26%26%28b%3Dn%2EajaxSettings%26%26n%2EajaxSettings%2Etraditional%29%2Cn%2EisArray%28a%29%7C%7Ca%2Ejquery%26%26%21n%2EisPlainObject%28a%29%29n%2Eeach%28a%2Cfunction%28%29%7Be%28this%2Ename%2Cthis%2Evalue%29%7D%29%3Belse%20for%28c%20in%20a%29Wc%28c%2Ca%5Bc%5D%2Cb%2Ce%29%3Breturn%20d%2Ejoin%28%22%26%22%29%2Ereplace%28Rc%2C%22%2B%22%29%7D%2Cn%2Efn%2Eextend%28%7Bserialize%3Afunction%28%29%7Breturn%20n%2Eparam%28this%2EserializeArray%28%29%29%7D%2CserializeArray%3Afunction%28%29%7Breturn%20this%2Emap%28function%28%29%7Bvar%20a%3Dn%2Eprop%28this%2C%22elements%22%29%3Breturn%20a%3Fn%2EmakeArray%28a%29%3Athis%7D%29%2Efilter%28function%28%29%7Bvar%20a%3Dthis%2Etype%3Breturn%20this%2Ename%26%26%21n%28this%29%2Eis%28%22%3Adisabled%22%29%26%26Vc%2Etest%28this%2EnodeName%29%26%26%21Uc%2Etest%28a%29%26%26%28this%2Echecked%7C%7C%21X%2Etest%28a%29%29%7D%29%2Emap%28function%28a%2Cb%29%7Bvar%20c%3Dn%28this%29%2Eval%28%29%3Breturn%20null%3D%3Dc%3Fnull%3An%2EisArray%28c%29%3Fn%2Emap%28c%2Cfunction%28a%29%7Breturn%7Bname%3Ab%2Ename%2Cvalue%3Aa%2Ereplace%28Tc%2C%22%5Cr%5Cn%22%29%7D%7D%29%3A%7Bname%3Ab%2Ename%2Cvalue%3Ac%2Ereplace%28Tc%2C%22%5Cr%5Cn%22%29%7D%7D%29%2Eget%28%29%7D%7D%29%2Cn%2EajaxSettings%2Exhr%3Dvoid%200%21%3D%3Da%2EActiveXObject%3Ffunction%28%29%7Breturn%21this%2EisLocal%26%26%2F%5E%28get%7Cpost%7Chead%7Cput%7Cdelete%7Coptions%29%24%2Fi%2Etest%28this%2Etype%29%26%26%24c%28%29%7C%7C%5Fc%28%29%7D%3A%24c%3Bvar%20Xc%3D0%2CYc%3D%7B%7D%2CZc%3Dn%2EajaxSettings%2Exhr%28%29%3Ba%2EActiveXObject%26%26n%28a%29%2Eon%28%22unload%22%2Cfunction%28%29%7Bfor%28var%20a%20in%20Yc%29Yc%5Ba%5D%28void%200%2C%210%29%7D%29%2Cl%2Ecors%3D%21%21Zc%26%26%22withCredentials%22in%20Zc%2CZc%3Dl%2Eajax%3D%21%21Zc%2CZc%26%26n%2EajaxTransport%28function%28a%29%7Bif%28%21a%2EcrossDomain%7C%7Cl%2Ecors%29%7Bvar%20b%3Breturn%7Bsend%3Afunction%28c%2Cd%29%7Bvar%20e%2Cf%3Da%2Exhr%28%29%2Cg%3D%2B%2BXc%3Bif%28f%2Eopen%28a%2Etype%2Ca%2Eurl%2Ca%2Easync%2Ca%2Eusername%2Ca%2Epassword%29%2Ca%2ExhrFields%29for%28e%20in%20a%2ExhrFields%29f%5Be%5D%3Da%2ExhrFields%5Be%5D%3Ba%2EmimeType%26%26f%2EoverrideMimeType%26%26f%2EoverrideMimeType%28a%2EmimeType%29%2Ca%2EcrossDomain%7C%7Cc%5B%22X%2DRequested%2DWith%22%5D%7C%7C%28c%5B%22X%2DRequested%2DWith%22%5D%3D%22XMLHttpRequest%22%29%3Bfor%28e%20in%20c%29void%200%21%3D%3Dc%5Be%5D%26%26f%2EsetRequestHeader%28e%2Cc%5Be%5D%2B%22%22%29%3Bf%2Esend%28a%2EhasContent%26%26a%2Edata%7C%7Cnull%29%2Cb%3Dfunction%28c%2Ce%29%7Bvar%20h%2Ci%2Cj%3Bif%28b%26%26%28e%7C%7C4%3D%3D%3Df%2EreadyState%29%29if%28delete%20Yc%5Bg%5D%2Cb%3Dvoid%200%2Cf%2Eonreadystatechange%3Dn%2Enoop%2Ce%294%21%3D%3Df%2EreadyState%26%26f%2Eabort%28%29%3Belse%7Bj%3D%7B%7D%2Ch%3Df%2Estatus%2C%22string%22%3D%3Dtypeof%20f%2EresponseText%26%26%28j%2Etext%3Df%2EresponseText%29%3Btry%7Bi%3Df%2EstatusText%7Dcatch%28k%29%7Bi%3D%22%22%7Dh%7C%7C%21a%2EisLocal%7C%7Ca%2EcrossDomain%3F1223%3D%3D%3Dh%26%26%28h%3D204%29%3Ah%3Dj%2Etext%3F200%3A404%7Dj%26%26d%28h%2Ci%2Cj%2Cf%2EgetAllResponseHeaders%28%29%29%7D%2Ca%2Easync%3F4%3D%3D%3Df%2EreadyState%3FsetTimeout%28b%29%3Af%2Eonreadystatechange%3DYc%5Bg%5D%3Db%3Ab%28%29%7D%2Cabort%3Afunction%28%29%7Bb%26%26b%28void%200%2C%210%29%7D%7D%7D%7D%29%3Bfunction%20%24c%28%29%7Btry%7Breturn%20new%20a%2EXMLHttpRequest%7Dcatch%28b%29%7B%7D%7Dfunction%20%5Fc%28%29%7Btry%7Breturn%20new%20a%2EActiveXObject%28%22Microsoft%2EXMLHTTP%22%29%7Dcatch%28b%29%7B%7D%7Dn%2EajaxSetup%28%7Baccepts%3A%7Bscript%3A%22text%2Fjavascript%2C%20application%2Fjavascript%2C%20application%2Fecmascript%2C%20application%2Fx%2Decmascript%22%7D%2Ccontents%3A%7Bscript%3A%2F%28%3F%3Ajava%7Cecma%29script%2F%7D%2Cconverters%3A%7B%22text%20script%22%3Afunction%28a%29%7Breturn%20n%2EglobalEval%28a%29%2Ca%7D%7D%7D%29%2Cn%2EajaxPrefilter%28%22script%22%2Cfunction%28a%29%7Bvoid%200%3D%3D%3Da%2Ecache%26%26%28a%2Ecache%3D%211%29%2Ca%2EcrossDomain%26%26%28a%2Etype%3D%22GET%22%2Ca%2Eglobal%3D%211%29%7D%29%2Cn%2EajaxTransport%28%22script%22%2Cfunction%28a%29%7Bif%28a%2EcrossDomain%29%7Bvar%20b%2Cc%3Dz%2Ehead%7C%7Cn%28%22head%22%29%5B0%5D%7C%7Cz%2EdocumentElement%3Breturn%7Bsend%3Afunction%28d%2Ce%29%7Bb%3Dz%2EcreateElement%28%22script%22%29%2Cb%2Easync%3D%210%2Ca%2EscriptCharset%26%26%28b%2Echarset%3Da%2EscriptCharset%29%2Cb%2Esrc%3Da%2Eurl%2Cb%2Eonload%3Db%2Eonreadystatechange%3Dfunction%28a%2Cc%29%7B%28c%7C%7C%21b%2EreadyState%7C%7C%2Floaded%7Ccomplete%2F%2Etest%28b%2EreadyState%29%29%26%26%28b%2Eonload%3Db%2Eonreadystatechange%3Dnull%2Cb%2EparentNode%26%26b%2EparentNode%2EremoveChild%28b%29%2Cb%3Dnull%2Cc%7C%7Ce%28200%2C%22success%22%29%29%7D%2Cc%2EinsertBefore%28b%2Cc%2EfirstChild%29%7D%2Cabort%3Afunction%28%29%7Bb%26%26b%2Eonload%28void%200%2C%210%29%7D%7D%7D%7D%29%3Bvar%20ad%3D%5B%5D%2Cbd%3D%2F%28%3D%29%5C%3F%28%3F%3D%26%7C%24%29%7C%5C%3F%5C%3F%2F%3Bn%2EajaxSetup%28%7Bjsonp%3A%22callback%22%2CjsonpCallback%3Afunction%28%29%7Bvar%20a%3Dad%2Epop%28%29%7C%7Cn%2Eexpando%2B%22%5F%22%2Bwc%2B%2B%3Breturn%20this%5Ba%5D%3D%210%2Ca%7D%7D%29%2Cn%2EajaxPrefilter%28%22json%20jsonp%22%2Cfunction%28b%2Cc%2Cd%29%7Bvar%20e%2Cf%2Cg%2Ch%3Db%2Ejsonp%21%3D%3D%211%26%26%28bd%2Etest%28b%2Eurl%29%3F%22url%22%3A%22string%22%3D%3Dtypeof%20b%2Edata%26%26%21%28b%2EcontentType%7C%7C%22%22%29%2EindexOf%28%22application%2Fx%2Dwww%2Dform%2Durlencoded%22%29%26%26bd%2Etest%28b%2Edata%29%26%26%22data%22%29%3Breturn%20h%7C%7C%22jsonp%22%3D%3D%3Db%2EdataTypes%5B0%5D%3F%28e%3Db%2EjsonpCallback%3Dn%2EisFunction%28b%2EjsonpCallback%29%3Fb%2EjsonpCallback%28%29%3Ab%2EjsonpCallback%2Ch%3Fb%5Bh%5D%3Db%5Bh%5D%2Ereplace%28bd%2C%22%241%22%2Be%29%3Ab%2Ejsonp%21%3D%3D%211%26%26%28b%2Eurl%2B%3D%28xc%2Etest%28b%2Eurl%29%3F%22%26%22%3A%22%3F%22%29%2Bb%2Ejsonp%2B%22%3D%22%2Be%29%2Cb%2Econverters%5B%22script%20json%22%5D%3Dfunction%28%29%7Breturn%20g%7C%7Cn%2Eerror%28e%2B%22%20was%20not%20called%22%29%2Cg%5B0%5D%7D%2Cb%2EdataTypes%5B0%5D%3D%22json%22%2Cf%3Da%5Be%5D%2Ca%5Be%5D%3Dfunction%28%29%7Bg%3Darguments%7D%2Cd%2Ealways%28function%28%29%7Ba%5Be%5D%3Df%2Cb%5Be%5D%26%26%28b%2EjsonpCallback%3Dc%2EjsonpCallback%2Cad%2Epush%28e%29%29%2Cg%26%26n%2EisFunction%28f%29%26%26f%28g%5B0%5D%29%2Cg%3Df%3Dvoid%200%7D%29%2C%22script%22%29%3Avoid%200%7D%29%2Cn%2EparseHTML%3Dfunction%28a%2Cb%2Cc%29%7Bif%28%21a%7C%7C%22string%22%21%3Dtypeof%20a%29return%20null%3B%22boolean%22%3D%3Dtypeof%20b%26%26%28c%3Db%2Cb%3D%211%29%2Cb%3Db%7C%7Cz%3Bvar%20d%3Dv%2Eexec%28a%29%2Ce%3D%21c%26%26%5B%5D%3Breturn%20d%3F%5Bb%2EcreateElement%28d%5B1%5D%29%5D%3A%28d%3Dn%2EbuildFragment%28%5Ba%5D%2Cb%2Ce%29%2Ce%26%26e%2Elength%26%26n%28e%29%2Eremove%28%29%2Cn%2Emerge%28%5B%5D%2Cd%2EchildNodes%29%29%7D%3Bvar%20cd%3Dn%2Efn%2Eload%3Bn%2Efn%2Eload%3Dfunction%28a%2Cb%2Cc%29%7Bif%28%22string%22%21%3Dtypeof%20a%26%26cd%29return%20cd%2Eapply%28this%2Carguments%29%3Bvar%20d%2Ce%2Cf%2Cg%3Dthis%2Ch%3Da%2EindexOf%28%22%20%22%29%3Breturn%20h%3E%3D0%26%26%28d%3Da%2Eslice%28h%2Ca%2Elength%29%2Ca%3Da%2Eslice%280%2Ch%29%29%2Cn%2EisFunction%28b%29%3F%28c%3Db%2Cb%3Dvoid%200%29%3Ab%26%26%22object%22%3D%3Dtypeof%20b%26%26%28f%3D%22POST%22%29%2Cg%2Elength%3E0%26%26n%2Eajax%28%7Burl%3Aa%2Ctype%3Af%2CdataType%3A%22html%22%2Cdata%3Ab%7D%29%2Edone%28function%28a%29%7Be%3Darguments%2Cg%2Ehtml%28d%3Fn%28%22%3Cdiv%3E%22%29%2Eappend%28n%2EparseHTML%28a%29%29%2Efind%28d%29%3Aa%29%7D%29%2Ecomplete%28c%26%26function%28a%2Cb%29%7Bg%2Eeach%28c%2Ce%7C%7C%5Ba%2EresponseText%2Cb%2Ca%5D%29%7D%29%2Cthis%7D%2Cn%2Eexpr%2Efilters%2Eanimated%3Dfunction%28a%29%7Breturn%20n%2Egrep%28n%2Etimers%2Cfunction%28b%29%7Breturn%20a%3D%3D%3Db%2Eelem%7D%29%2Elength%7D%3Bvar%20dd%3Da%2Edocument%2EdocumentElement%3Bfunction%20ed%28a%29%7Breturn%20n%2EisWindow%28a%29%3Fa%3A9%3D%3D%3Da%2EnodeType%3Fa%2EdefaultView%7C%7Ca%2EparentWindow%3A%211%7Dn%2Eoffset%3D%7BsetOffset%3Afunction%28a%2Cb%2Cc%29%7Bvar%20d%2Ce%2Cf%2Cg%2Ch%2Ci%2Cj%2Ck%3Dn%2Ecss%28a%2C%22position%22%29%2Cl%3Dn%28a%29%2Cm%3D%7B%7D%3B%22static%22%3D%3D%3Dk%26%26%28a%2Estyle%2Eposition%3D%22relative%22%29%2Ch%3Dl%2Eoffset%28%29%2Cf%3Dn%2Ecss%28a%2C%22top%22%29%2Ci%3Dn%2Ecss%28a%2C%22left%22%29%2Cj%3D%28%22absolute%22%3D%3D%3Dk%7C%7C%22fixed%22%3D%3D%3Dk%29%26%26n%2EinArray%28%22auto%22%2C%5Bf%2Ci%5D%29%3E%2D1%2Cj%3F%28d%3Dl%2Eposition%28%29%2Cg%3Dd%2Etop%2Ce%3Dd%2Eleft%29%3A%28g%3DparseFloat%28f%29%7C%7C0%2Ce%3DparseFloat%28i%29%7C%7C0%29%2Cn%2EisFunction%28b%29%26%26%28b%3Db%2Ecall%28a%2Cc%2Ch%29%29%2Cnull%21%3Db%2Etop%26%26%28m%2Etop%3Db%2Etop%2Dh%2Etop%2Bg%29%2Cnull%21%3Db%2Eleft%26%26%28m%2Eleft%3Db%2Eleft%2Dh%2Eleft%2Be%29%2C%22using%22in%20b%3Fb%2Eusing%2Ecall%28a%2Cm%29%3Al%2Ecss%28m%29%7D%7D%2Cn%2Efn%2Eextend%28%7Boffset%3Afunction%28a%29%7Bif%28arguments%2Elength%29return%20void%200%3D%3D%3Da%3Fthis%3Athis%2Eeach%28function%28b%29%7Bn%2Eoffset%2EsetOffset%28this%2Ca%2Cb%29%7D%29%3Bvar%20b%2Cc%2Cd%3D%7Btop%3A0%2Cleft%3A0%7D%2Ce%3Dthis%5B0%5D%2Cf%3De%26%26e%2EownerDocument%3Bif%28f%29return%20b%3Df%2EdocumentElement%2Cn%2Econtains%28b%2Ce%29%3F%28typeof%20e%2EgetBoundingClientRect%21%3D%3DL%26%26%28d%3De%2EgetBoundingClientRect%28%29%29%2Cc%3Ded%28f%29%2C%7Btop%3Ad%2Etop%2B%28c%2EpageYOffset%7C%7Cb%2EscrollTop%29%2D%28b%2EclientTop%7C%7C0%29%2Cleft%3Ad%2Eleft%2B%28c%2EpageXOffset%7C%7Cb%2EscrollLeft%29%2D%28b%2EclientLeft%7C%7C0%29%7D%29%3Ad%7D%2Cposition%3Afunction%28%29%7Bif%28this%5B0%5D%29%7Bvar%20a%2Cb%2Cc%3D%7Btop%3A0%2Cleft%3A0%7D%2Cd%3Dthis%5B0%5D%3Breturn%22fixed%22%3D%3D%3Dn%2Ecss%28d%2C%22position%22%29%3Fb%3Dd%2EgetBoundingClientRect%28%29%3A%28a%3Dthis%2EoffsetParent%28%29%2Cb%3Dthis%2Eoffset%28%29%2Cn%2EnodeName%28a%5B0%5D%2C%22html%22%29%7C%7C%28c%3Da%2Eoffset%28%29%29%2Cc%2Etop%2B%3Dn%2Ecss%28a%5B0%5D%2C%22borderTopWidth%22%2C%210%29%2Cc%2Eleft%2B%3Dn%2Ecss%28a%5B0%5D%2C%22borderLeftWidth%22%2C%210%29%29%2C%7Btop%3Ab%2Etop%2Dc%2Etop%2Dn%2Ecss%28d%2C%22marginTop%22%2C%210%29%2Cleft%3Ab%2Eleft%2Dc%2Eleft%2Dn%2Ecss%28d%2C%22marginLeft%22%2C%210%29%7D%7D%7D%2CoffsetParent%3Afunction%28%29%7Breturn%20this%2Emap%28function%28%29%7Bvar%20a%3Dthis%2EoffsetParent%7C%7Cdd%3Bwhile%28a%26%26%21n%2EnodeName%28a%2C%22html%22%29%26%26%22static%22%3D%3D%3Dn%2Ecss%28a%2C%22position%22%29%29a%3Da%2EoffsetParent%3Breturn%20a%7C%7Cdd%7D%29%7D%7D%29%2Cn%2Eeach%28%7BscrollLeft%3A%22pageXOffset%22%2CscrollTop%3A%22pageYOffset%22%7D%2Cfunction%28a%2Cb%29%7Bvar%20c%3D%2FY%2F%2Etest%28b%29%3Bn%2Efn%5Ba%5D%3Dfunction%28d%29%7Breturn%20W%28this%2Cfunction%28a%2Cd%2Ce%29%7Bvar%20f%3Ded%28a%29%3Breturn%20void%200%3D%3D%3De%3Ff%3Fb%20in%20f%3Ff%5Bb%5D%3Af%2Edocument%2EdocumentElement%5Bd%5D%3Aa%5Bd%5D%3Avoid%28f%3Ff%2EscrollTo%28c%3Fn%28f%29%2EscrollLeft%28%29%3Ae%2Cc%3Fe%3An%28f%29%2EscrollTop%28%29%29%3Aa%5Bd%5D%3De%29%7D%2Ca%2Cd%2Carguments%2Elength%2Cnull%29%7D%7D%29%2Cn%2Eeach%28%5B%22top%22%2C%22left%22%5D%2Cfunction%28a%2Cb%29%7Bn%2EcssHooks%5Bb%5D%3DMb%28l%2EpixelPosition%2Cfunction%28a%2Cc%29%7Breturn%20c%3F%28c%3DKb%28a%2Cb%29%2CIb%2Etest%28c%29%3Fn%28a%29%2Eposition%28%29%5Bb%5D%2B%22px%22%3Ac%29%3Avoid%200%7D%29%7D%29%2Cn%2Eeach%28%7BHeight%3A%22height%22%2CWidth%3A%22width%22%7D%2Cfunction%28a%2Cb%29%7Bn%2Eeach%28%7Bpadding%3A%22inner%22%2Ba%2Ccontent%3Ab%2C%22%22%3A%22outer%22%2Ba%7D%2Cfunction%28c%2Cd%29%7Bn%2Efn%5Bd%5D%3Dfunction%28d%2Ce%29%7Bvar%20f%3Darguments%2Elength%26%26%28c%7C%7C%22boolean%22%21%3Dtypeof%20d%29%2Cg%3Dc%7C%7C%28d%3D%3D%3D%210%7C%7Ce%3D%3D%3D%210%3F%22margin%22%3A%22border%22%29%3Breturn%20W%28this%2Cfunction%28b%2Cc%2Cd%29%7Bvar%20e%3Breturn%20n%2EisWindow%28b%29%3Fb%2Edocument%2EdocumentElement%5B%22client%22%2Ba%5D%3A9%3D%3D%3Db%2EnodeType%3F%28e%3Db%2EdocumentElement%2CMath%2Emax%28b%2Ebody%5B%22scroll%22%2Ba%5D%2Ce%5B%22scroll%22%2Ba%5D%2Cb%2Ebody%5B%22offset%22%2Ba%5D%2Ce%5B%22offset%22%2Ba%5D%2Ce%5B%22client%22%2Ba%5D%29%29%3Avoid%200%3D%3D%3Dd%3Fn%2Ecss%28b%2Cc%2Cg%29%3An%2Estyle%28b%2Cc%2Cd%2Cg%29%7D%2Cb%2Cf%3Fd%3Avoid%200%2Cf%2Cnull%29%7D%7D%29%7D%29%2Cn%2Efn%2Esize%3Dfunction%28%29%7Breturn%20this%2Elength%7D%2Cn%2Efn%2EandSelf%3Dn%2Efn%2EaddBack%2C%22function%22%3D%3Dtypeof%20define%26%26define%2Eamd%26%26define%28%22jquery%22%2C%5B%5D%2Cfunction%28%29%7Breturn%20n%7D%29%3Bvar%20fd%3Da%2EjQuery%2Cgd%3Da%2E%24%3Breturn%20n%2EnoConflict%3Dfunction%28b%29%7Breturn%20a%2E%24%3D%3D%3Dn%26%26%28a%2E%24%3Dgd%29%2Cb%26%26a%2EjQuery%3D%3D%3Dn%26%26%28a%2EjQuery%3Dfd%29%2Cn%7D%2Ctypeof%20b%3D%3D%3DL%26%26%28a%2EjQuery%3Da%2E%24%3Dn%29%2Cn%7D%29%3B%0A"></script>
+<meta name="viewport" content="width=device-width, initial-scale=1.0" />
+<link href="data:text/css,%2F%2A%21%0A%20%2A%20Bootstrap%20v2%2E3%2E2%0A%20%2A%0A%20%2A%20Copyright%202013%20Twitter%2C%20Inc%0A%20%2A%20Licensed%20under%20the%20Apache%20License%20v2%2E0%0A%20%2A%20http%3A%2F%2Fwww%2Eapache%2Eorg%2Flicenses%2FLICENSE%2D2%2E0%0A%20%2A%0A%20%2A%20Designed%20and%20built%20with%20all%20the%20love%20in%20the%20world%20by%20%40mdo%20and%20%40fat%2E%0A%20%2A%2F%2Eclearfix%7B%2Azoom%3A1%7D%2Eclearfix%3Abefore%2C%2Eclearfix%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Eclearfix%3Aafter%7Bclear%3Aboth%7D%2Ehide%2Dtext%7Bfont%3A0%2F0%20a%3Bcolor%3Atransparent%3Btext%2Dshadow%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%7D%2Einput%2Dblock%2Dlevel%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bmin%2Dheight%3A30px%3B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7Darticle%2Caside%2Cdetails%2Cfigcaption%2Cfigure%2Cfooter%2Cheader%2Chgroup%2Cnav%2Csection%7Bdisplay%3Ablock%7Daudio%2Ccanvas%2Cvideo%7Bdisplay%3Ainline%2Dblock%3B%2Adisplay%3Ainline%3B%2Azoom%3A1%7Daudio%3Anot%28%5Bcontrols%5D%29%7Bdisplay%3Anone%7Dhtml%7Bfont%2Dsize%3A100%25%3B%2Dwebkit%2Dtext%2Dsize%2Dadjust%3A100%25%3B%2Dms%2Dtext%2Dsize%2Dadjust%3A100%25%7Da%3Afocus%7Boutline%3Athin%20dotted%20%23333%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7Da%3Ahover%2Ca%3Aactive%7Boutline%3A0%7Dsub%2Csup%7Bposition%3Arelative%3Bfont%2Dsize%3A75%25%3Bline%2Dheight%3A0%3Bvertical%2Dalign%3Abaseline%7Dsup%7Btop%3A%2D0%2E5em%7Dsub%7Bbottom%3A%2D0%2E25em%7Dimg%7Bwidth%3Aauto%5C9%3Bheight%3Aauto%3Bmax%2Dwidth%3A100%25%3Bvertical%2Dalign%3Amiddle%3Bborder%3A0%3B%2Dms%2Dinterpolation%2Dmode%3Abicubic%7D%23map%5Fcanvas%20img%2C%2Egoogle%2Dmaps%20img%7Bmax%2Dwidth%3Anone%7Dbutton%2Cinput%2Cselect%2Ctextarea%7Bmargin%3A0%3Bfont%2Dsize%3A100%25%3Bvertical%2Dalign%3Amiddle%7Dbutton%2Cinput%7B%2Aoverflow%3Avisible%3Bline%2Dheight%3Anormal%7Dbutton%3A%3A%2Dmoz%2Dfocus%2Dinner%2Cinput%3A%3A%2Dmoz%2Dfocus%2Dinner%7Bpadding%3A0%3Bborder%3A0%7Dbutton%2Chtml%20input%5Btype%3D%22button%22%5D%2Cinput%5Btype%3D%22reset%22%5D%2Cinput%5Btype%3D%22submit%22%5D%7Bcursor%3Apointer%3B%2Dwebkit%2Dappearance%3Abutton%7Dlabel%2Cselect%2Cbutton%2Cinput%5Btype%3D%22button%22%5D%2Cinput%5Btype%3D%22reset%22%5D%2Cinput%5Btype%3D%22submit%22%5D%2Cinput%5Btype%3D%22radio%22%5D%2Cinput%5Btype%3D%22checkbox%22%5D%7Bcursor%3Apointer%7Dinput%5Btype%3D%22search%22%5D%7B%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%3B%2Dwebkit%2Dappearance%3Atextfield%7Dinput%5Btype%3D%22search%22%5D%3A%3A%2Dwebkit%2Dsearch%2Ddecoration%2Cinput%5Btype%3D%22search%22%5D%3A%3A%2Dwebkit%2Dsearch%2Dcancel%2Dbutton%7B%2Dwebkit%2Dappearance%3Anone%7Dtextarea%7Boverflow%3Aauto%3Bvertical%2Dalign%3Atop%7D%40media%20print%7B%2A%7Bcolor%3A%23000%21important%3Btext%2Dshadow%3Anone%21important%3Bbackground%3Atransparent%21important%3Bbox%2Dshadow%3Anone%21important%7Da%2Ca%3Avisited%7Btext%2Ddecoration%3Aunderline%7Da%5Bhref%5D%3Aafter%7Bcontent%3A%22%20%28%22%20attr%28href%29%20%22%29%22%7Dabbr%5Btitle%5D%3Aafter%7Bcontent%3A%22%20%28%22%20attr%28title%29%20%22%29%22%7D%2Eir%20a%3Aafter%2Ca%5Bhref%5E%3D%22javascript%3A%22%5D%3Aafter%2Ca%5Bhref%5E%3D%22%23%22%5D%3Aafter%7Bcontent%3A%22%22%7Dpre%2Cblockquote%7Bborder%3A1px%20solid%20%23999%3Bpage%2Dbreak%2Dinside%3Aavoid%7Dthead%7Bdisplay%3Atable%2Dheader%2Dgroup%7Dtr%2Cimg%7Bpage%2Dbreak%2Dinside%3Aavoid%7Dimg%7Bmax%2Dwidth%3A100%25%21important%7D%40page%7Bmargin%3A%2E5cm%7Dp%2Ch2%2Ch3%7Borphans%3A3%3Bwidows%3A3%7Dh2%2Ch3%7Bpage%2Dbreak%2Dafter%3Aavoid%7D%7Dbody%7Bmargin%3A0%3Bfont%2Dfamily%3A%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A20px%3Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23fff%7Da%7Bcolor%3A%2308c%3Btext%2Ddecoration%3Anone%7Da%3Ahover%2Ca%3Afocus%7Bcolor%3A%23005580%3Btext%2Ddecoration%3Aunderline%7D%2Eimg%2Drounded%7B%2Dwebkit%2Dborder%2Dradius%3A6px%3B%2Dmoz%2Dborder%2Dradius%3A6px%3Bborder%2Dradius%3A6px%7D%2Eimg%2Dpolaroid%7Bpadding%3A4px%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E2%29%3B%2Dwebkit%2Dbox%2Dshadow%3A0%201px%203px%20rgba%280%2C0%2C0%2C0%2E1%29%3B%2Dmoz%2Dbox%2Dshadow%3A0%201px%203px%20rgba%280%2C0%2C0%2C0%2E1%29%3Bbox%2Dshadow%3A0%201px%203px%20rgba%280%2C0%2C0%2C0%2E1%29%7D%2Eimg%2Dcircle%7B%2Dwebkit%2Dborder%2Dradius%3A500px%3B%2Dmoz%2Dborder%2Dradius%3A500px%3Bborder%2Dradius%3A500px%7D%2Erow%7Bmargin%2Dleft%3A%2D20px%3B%2Azoom%3A1%7D%2Erow%3Abefore%2C%2Erow%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Erow%3Aafter%7Bclear%3Aboth%7D%5Bclass%2A%3D%22span%22%5D%7Bfloat%3Aleft%3Bmin%2Dheight%3A1px%3Bmargin%2Dleft%3A20px%7D%2Econtainer%2C%2Enavbar%2Dstatic%2Dtop%20%2Econtainer%2C%2Enavbar%2Dfixed%2Dtop%20%2Econtainer%2C%2Enavbar%2Dfixed%2Dbottom%20%2Econtainer%7Bwidth%3A940px%7D%2Espan12%7Bwidth%3A940px%7D%2Espan11%7Bwidth%3A860px%7D%2Espan10%7Bwidth%3A780px%7D%2Espan9%7Bwidth%3A700px%7D%2Espan8%7Bwidth%3A620px%7D%2Espan7%7Bwidth%3A540px%7D%2Espan6%7Bwidth%3A460px%7D%2Espan5%7Bwidth%3A380px%7D%2Espan4%7Bwidth%3A300px%7D%2Espan3%7Bwidth%3A220px%7D%2Espan2%7Bwidth%3A140px%7D%2Espan1%7Bwidth%3A60px%7D%2Eoffset12%7Bmargin%2Dleft%3A980px%7D%2Eoffset11%7Bmargin%2Dleft%3A900px%7D%2Eoffset10%7Bmargin%2Dleft%3A820px%7D%2Eoffset9%7Bmargin%2Dleft%3A740px%7D%2Eoffset8%7Bmargin%2Dleft%3A660px%7D%2Eoffset7%7Bmargin%2Dleft%3A580px%7D%2Eoffset6%7Bmargin%2Dleft%3A500px%7D%2Eoffset5%7Bmargin%2Dleft%3A420px%7D%2Eoffset4%7Bmargin%2Dleft%3A340px%7D%2Eoffset3%7Bmargin%2Dleft%3A260px%7D%2Eoffset2%7Bmargin%2Dleft%3A180px%7D%2Eoffset1%7Bmargin%2Dleft%3A100px%7D%2Erow%2Dfluid%7Bwidth%3A100%25%3B%2Azoom%3A1%7D%2Erow%2Dfluid%3Abefore%2C%2Erow%2Dfluid%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Erow%2Dfluid%3Aafter%7Bclear%3Aboth%7D%2Erow%2Dfluid%20%5Bclass%2A%3D%22span%22%5D%7Bdisplay%3Ablock%3Bfloat%3Aleft%3Bwidth%3A100%25%3Bmin%2Dheight%3A30px%3Bmargin%2Dleft%3A2%2E127659574468085%25%3B%2Amargin%2Dleft%3A2%2E074468085106383%25%3B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%2Erow%2Dfluid%20%5Bclass%2A%3D%22span%22%5D%3Afirst%2Dchild%7Bmargin%2Dleft%3A0%7D%2Erow%2Dfluid%20%2Econtrols%2Drow%20%5Bclass%2A%3D%22span%22%5D%2B%5Bclass%2A%3D%22span%22%5D%7Bmargin%2Dleft%3A2%2E127659574468085%25%7D%2Erow%2Dfluid%20%2Espan12%7Bwidth%3A100%25%3B%2Awidth%3A99%2E94680851063829%25%7D%2Erow%2Dfluid%20%2Espan11%7Bwidth%3A91%2E48936170212765%25%3B%2Awidth%3A91%2E43617021276594%25%7D%2Erow%2Dfluid%20%2Espan10%7Bwidth%3A82%2E97872340425532%25%3B%2Awidth%3A82%2E92553191489361%25%7D%2Erow%2Dfluid%20%2Espan9%7Bwidth%3A74%2E46808510638297%25%3B%2Awidth%3A74%2E41489361702126%25%7D%2Erow%2Dfluid%20%2Espan8%7Bwidth%3A65%2E95744680851064%25%3B%2Awidth%3A65%2E90425531914893%25%7D%2Erow%2Dfluid%20%2Espan7%7Bwidth%3A57%2E44680851063829%25%3B%2Awidth%3A57%2E39361702127659%25%7D%2Erow%2Dfluid%20%2Espan6%7Bwidth%3A48%2E93617021276595%25%3B%2Awidth%3A48%2E88297872340425%25%7D%2Erow%2Dfluid%20%2Espan5%7Bwidth%3A40%2E42553191489362%25%3B%2Awidth%3A40%2E37234042553192%25%7D%2Erow%2Dfluid%20%2Espan4%7Bwidth%3A31%2E914893617021278%25%3B%2Awidth%3A31%2E861702127659576%25%7D%2Erow%2Dfluid%20%2Espan3%7Bwidth%3A23%2E404255319148934%25%3B%2Awidth%3A23%2E351063829787233%25%7D%2Erow%2Dfluid%20%2Espan2%7Bwidth%3A14%2E893617021276595%25%3B%2Awidth%3A14%2E840425531914894%25%7D%2Erow%2Dfluid%20%2Espan1%7Bwidth%3A6%2E382978723404255%25%3B%2Awidth%3A6%2E329787234042553%25%7D%2Erow%2Dfluid%20%2Eoffset12%7Bmargin%2Dleft%3A104%2E25531914893617%25%3B%2Amargin%2Dleft%3A104%2E14893617021275%25%7D%2Erow%2Dfluid%20%2Eoffset12%3Afirst%2Dchild%7Bmargin%2Dleft%3A102%2E12765957446808%25%3B%2Amargin%2Dleft%3A102%2E02127659574467%25%7D%2Erow%2Dfluid%20%2Eoffset11%7Bmargin%2Dleft%3A95%2E74468085106382%25%3B%2Amargin%2Dleft%3A95%2E6382978723404%25%7D%2Erow%2Dfluid%20%2Eoffset11%3Afirst%2Dchild%7Bmargin%2Dleft%3A93%2E61702127659574%25%3B%2Amargin%2Dleft%3A93%2E51063829787232%25%7D%2Erow%2Dfluid%20%2Eoffset10%7Bmargin%2Dleft%3A87%2E23404255319149%25%3B%2Amargin%2Dleft%3A87%2E12765957446807%25%7D%2Erow%2Dfluid%20%2Eoffset10%3Afirst%2Dchild%7Bmargin%2Dleft%3A85%2E1063829787234%25%3B%2Amargin%2Dleft%3A84%2E99999999999999%25%7D%2Erow%2Dfluid%20%2Eoffset9%7Bmargin%2Dleft%3A78%2E72340425531914%25%3B%2Amargin%2Dleft%3A78%2E61702127659572%25%7D%2Erow%2Dfluid%20%2Eoffset9%3Afirst%2Dchild%7Bmargin%2Dleft%3A76%2E59574468085106%25%3B%2Amargin%2Dleft%3A76%2E48936170212764%25%7D%2Erow%2Dfluid%20%2Eoffset8%7Bmargin%2Dleft%3A70%2E2127659574468%25%3B%2Amargin%2Dleft%3A70%2E10638297872339%25%7D%2Erow%2Dfluid%20%2Eoffset8%3Afirst%2Dchild%7Bmargin%2Dleft%3A68%2E08510638297872%25%3B%2Amargin%2Dleft%3A67%2E9787234042553%25%7D%2Erow%2Dfluid%20%2Eoffset7%7Bmargin%2Dleft%3A61%2E70212765957446%25%3B%2Amargin%2Dleft%3A61%2E59574468085106%25%7D%2Erow%2Dfluid%20%2Eoffset7%3Afirst%2Dchild%7Bmargin%2Dleft%3A59%2E574468085106375%25%3B%2Amargin%2Dleft%3A59%2E46808510638297%25%7D%2Erow%2Dfluid%20%2Eoffset6%7Bmargin%2Dleft%3A53%2E191489361702125%25%3B%2Amargin%2Dleft%3A53%2E085106382978715%25%7D%2Erow%2Dfluid%20%2Eoffset6%3Afirst%2Dchild%7Bmargin%2Dleft%3A51%2E063829787234035%25%3B%2Amargin%2Dleft%3A50%2E95744680851063%25%7D%2Erow%2Dfluid%20%2Eoffset5%7Bmargin%2Dleft%3A44%2E68085106382979%25%3B%2Amargin%2Dleft%3A44%2E57446808510638%25%7D%2Erow%2Dfluid%20%2Eoffset5%3Afirst%2Dchild%7Bmargin%2Dleft%3A42%2E5531914893617%25%3B%2Amargin%2Dleft%3A42%2E4468085106383%25%7D%2Erow%2Dfluid%20%2Eoffset4%7Bmargin%2Dleft%3A36%2E170212765957444%25%3B%2Amargin%2Dleft%3A36%2E06382978723405%25%7D%2Erow%2Dfluid%20%2Eoffset4%3Afirst%2Dchild%7Bmargin%2Dleft%3A34%2E04255319148936%25%3B%2Amargin%2Dleft%3A33%2E93617021276596%25%7D%2Erow%2Dfluid%20%2Eoffset3%7Bmargin%2Dleft%3A27%2E659574468085104%25%3B%2Amargin%2Dleft%3A27%2E5531914893617%25%7D%2Erow%2Dfluid%20%2Eoffset3%3Afirst%2Dchild%7Bmargin%2Dleft%3A25%2E53191489361702%25%3B%2Amargin%2Dleft%3A25%2E425531914893618%25%7D%2Erow%2Dfluid%20%2Eoffset2%7Bmargin%2Dleft%3A19%2E148936170212764%25%3B%2Amargin%2Dleft%3A19%2E04255319148936%25%7D%2Erow%2Dfluid%20%2Eoffset2%3Afirst%2Dchild%7Bmargin%2Dleft%3A17%2E02127659574468%25%3B%2Amargin%2Dleft%3A16%2E914893617021278%25%7D%2Erow%2Dfluid%20%2Eoffset1%7Bmargin%2Dleft%3A10%2E638297872340425%25%3B%2Amargin%2Dleft%3A10%2E53191489361702%25%7D%2Erow%2Dfluid%20%2Eoffset1%3Afirst%2Dchild%7Bmargin%2Dleft%3A8%2E51063829787234%25%3B%2Amargin%2Dleft%3A8%2E404255319148938%25%7D%5Bclass%2A%3D%22span%22%5D%2Ehide%2C%2Erow%2Dfluid%20%5Bclass%2A%3D%22span%22%5D%2Ehide%7Bdisplay%3Anone%7D%5Bclass%2A%3D%22span%22%5D%2Epull%2Dright%2C%2Erow%2Dfluid%20%5Bclass%2A%3D%22span%22%5D%2Epull%2Dright%7Bfloat%3Aright%7D%2Econtainer%7Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%3B%2Azoom%3A1%7D%2Econtainer%3Abefore%2C%2Econtainer%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Econtainer%3Aafter%7Bclear%3Aboth%7D%2Econtainer%2Dfluid%7Bpadding%2Dright%3A20px%3Bpadding%2Dleft%3A20px%3B%2Azoom%3A1%7D%2Econtainer%2Dfluid%3Abefore%2C%2Econtainer%2Dfluid%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Econtainer%2Dfluid%3Aafter%7Bclear%3Aboth%7Dp%7Bmargin%3A0%200%2010px%7D%2Elead%7Bmargin%2Dbottom%3A20px%3Bfont%2Dsize%3A21px%3Bfont%2Dweight%3A200%3Bline%2Dheight%3A30px%7Dsmall%7Bfont%2Dsize%3A85%25%7Dstrong%7Bfont%2Dweight%3Abold%7Dem%7Bfont%2Dstyle%3Aitalic%7Dcite%7Bfont%2Dstyle%3Anormal%7D%2Emuted%7Bcolor%3A%23999%7Da%2Emuted%3Ahover%2Ca%2Emuted%3Afocus%7Bcolor%3A%23808080%7D%2Etext%2Dwarning%7Bcolor%3A%23c09853%7Da%2Etext%2Dwarning%3Ahover%2Ca%2Etext%2Dwarning%3Afocus%7Bcolor%3A%23a47e3c%7D%2Etext%2Derror%7Bcolor%3A%23b94a48%7Da%2Etext%2Derror%3Ahover%2Ca%2Etext%2Derror%3Afocus%7Bcolor%3A%23953b39%7D%2Etext%2Dinfo%7Bcolor%3A%233a87ad%7Da%2Etext%2Dinfo%3Ahover%2Ca%2Etext%2Dinfo%3Afocus%7Bcolor%3A%232d6987%7D%2Etext%2Dsuccess%7Bcolor%3A%23468847%7Da%2Etext%2Dsuccess%3Ahover%2Ca%2Etext%2Dsuccess%3Afocus%7Bcolor%3A%23356635%7D%2Etext%2Dleft%7Btext%2Dalign%3Aleft%7D%2Etext%2Dright%7Btext%2Dalign%3Aright%7D%2Etext%2Dcenter%7Btext%2Dalign%3Acenter%7Dh1%2Ch2%2Ch3%2Ch4%2Ch5%2Ch6%7Bmargin%3A10px%200%3Bfont%2Dfamily%3Ainherit%3Bfont%2Dweight%3Abold%3Bline%2Dheight%3A20px%3Bcolor%3Ainherit%3Btext%2Drendering%3Aoptimizelegibility%7Dh1%20small%2Ch2%20small%2Ch3%20small%2Ch4%20small%2Ch5%20small%2Ch6%20small%7Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%3Bcolor%3A%23999%7Dh1%2Ch2%2Ch3%7Bline%2Dheight%3A40px%7Dh1%7Bfont%2Dsize%3A38%2E5px%7Dh2%7Bfont%2Dsize%3A31%2E5px%7Dh3%7Bfont%2Dsize%3A24%2E5px%7Dh4%7Bfont%2Dsize%3A17%2E5px%7Dh5%7Bfont%2Dsize%3A14px%7Dh6%7Bfont%2Dsize%3A11%2E9px%7Dh1%20small%7Bfont%2Dsize%3A24%2E5px%7Dh2%20small%7Bfont%2Dsize%3A17%2E5px%7Dh3%20small%7Bfont%2Dsize%3A14px%7Dh4%20small%7Bfont%2Dsize%3A14px%7D%2Epage%2Dheader%7Bpadding%2Dbottom%3A9px%3Bmargin%3A20px%200%2030px%3Bborder%2Dbottom%3A1px%20solid%20%23eee%7Dul%2Col%7Bpadding%3A0%3Bmargin%3A0%200%2010px%2025px%7Dul%20ul%2Cul%20ol%2Col%20ol%2Col%20ul%7Bmargin%2Dbottom%3A0%7Dli%7Bline%2Dheight%3A20px%7Dul%2Eunstyled%2Col%2Eunstyled%7Bmargin%2Dleft%3A0%3Blist%2Dstyle%3Anone%7Dul%2Einline%2Col%2Einline%7Bmargin%2Dleft%3A0%3Blist%2Dstyle%3Anone%7Dul%2Einline%3Eli%2Col%2Einline%3Eli%7Bdisplay%3Ainline%2Dblock%3B%2Adisplay%3Ainline%3Bpadding%2Dright%3A5px%3Bpadding%2Dleft%3A5px%3B%2Azoom%3A1%7Ddl%7Bmargin%2Dbottom%3A20px%7Ddt%2Cdd%7Bline%2Dheight%3A20px%7Ddt%7Bfont%2Dweight%3Abold%7Ddd%7Bmargin%2Dleft%3A10px%7D%2Edl%2Dhorizontal%7B%2Azoom%3A1%7D%2Edl%2Dhorizontal%3Abefore%2C%2Edl%2Dhorizontal%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Edl%2Dhorizontal%3Aafter%7Bclear%3Aboth%7D%2Edl%2Dhorizontal%20dt%7Bfloat%3Aleft%3Bwidth%3A160px%3Boverflow%3Ahidden%3Bclear%3Aleft%3Btext%2Dalign%3Aright%3Btext%2Doverflow%3Aellipsis%3Bwhite%2Dspace%3Anowrap%7D%2Edl%2Dhorizontal%20dd%7Bmargin%2Dleft%3A180px%7Dhr%7Bmargin%3A20px%200%3Bborder%3A0%3Bborder%2Dtop%3A1px%20solid%20%23eee%3Bborder%2Dbottom%3A1px%20solid%20%23fff%7Dabbr%5Btitle%5D%2Cabbr%5Bdata%2Doriginal%2Dtitle%5D%7Bcursor%3Ahelp%3Bborder%2Dbottom%3A1px%20dotted%20%23999%7Dabbr%2Einitialism%7Bfont%2Dsize%3A90%25%3Btext%2Dtransform%3Auppercase%7Dblockquote%7Bpadding%3A0%200%200%2015px%3Bmargin%3A0%200%2020px%3Bborder%2Dleft%3A5px%20solid%20%23eee%7Dblockquote%20p%7Bmargin%2Dbottom%3A0%3Bfont%2Dsize%3A17%2E5px%3Bfont%2Dweight%3A300%3Bline%2Dheight%3A1%2E25%7Dblockquote%20small%7Bdisplay%3Ablock%3Bline%2Dheight%3A20px%3Bcolor%3A%23999%7Dblockquote%20small%3Abefore%7Bcontent%3A%27%5C2014%20%5C00A0%27%7Dblockquote%2Epull%2Dright%7Bfloat%3Aright%3Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A0%3Bborder%2Dright%3A5px%20solid%20%23eee%3Bborder%2Dleft%3A0%7Dblockquote%2Epull%2Dright%20p%2Cblockquote%2Epull%2Dright%20small%7Btext%2Dalign%3Aright%7Dblockquote%2Epull%2Dright%20small%3Abefore%7Bcontent%3A%27%27%7Dblockquote%2Epull%2Dright%20small%3Aafter%7Bcontent%3A%27%5C00A0%20%5C2014%27%7Dq%3Abefore%2Cq%3Aafter%2Cblockquote%3Abefore%2Cblockquote%3Aafter%7Bcontent%3A%22%22%7Daddress%7Bdisplay%3Ablock%3Bmargin%2Dbottom%3A20px%3Bfont%2Dstyle%3Anormal%3Bline%2Dheight%3A20px%7Dcode%2Cpre%7Bpadding%3A0%203px%202px%3Bfont%2Dfamily%3Amonospace%3Bfont%2Dsize%3A12px%3Bcolor%3A%23333%3B%2Dwebkit%2Dborder%2Dradius%3A3px%3B%2Dmoz%2Dborder%2Dradius%3A3px%3Bborder%2Dradius%3A3px%7Dcode%7Bpadding%3A2px%204px%3Bcolor%3A%23d14%3Bwhite%2Dspace%3Anowrap%3Bbackground%2Dcolor%3A%23f7f7f9%3Bborder%3A1px%20solid%20%23e1e1e8%7Dpre%7Bdisplay%3Ablock%3Bpadding%3A9%2E5px%3Bmargin%3A0%200%2010px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A20px%3Bword%2Dbreak%3Abreak%2Dall%3Bword%2Dwrap%3Abreak%2Dword%3Bwhite%2Dspace%3Apre%3Bwhite%2Dspace%3Apre%2Dwrap%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%3A1px%20solid%20%23ccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E15%29%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%7Dpre%2Eprettyprint%7Bmargin%2Dbottom%3A20px%7Dpre%20code%7Bpadding%3A0%3Bcolor%3Ainherit%3Bwhite%2Dspace%3Apre%3Bwhite%2Dspace%3Apre%2Dwrap%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%7D%2Epre%2Dscrollable%7Bmax%2Dheight%3A340px%3Boverflow%2Dy%3Ascroll%7Dform%7Bmargin%3A0%200%2020px%7Dfieldset%7Bpadding%3A0%3Bmargin%3A0%3Bborder%3A0%7Dlegend%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bpadding%3A0%3Bmargin%2Dbottom%3A20px%3Bfont%2Dsize%3A21px%3Bline%2Dheight%3A40px%3Bcolor%3A%23333%3Bborder%3A0%3Bborder%2Dbottom%3A1px%20solid%20%23e5e5e5%7Dlegend%20small%7Bfont%2Dsize%3A15px%3Bcolor%3A%23999%7Dlabel%2Cinput%2Cbutton%2Cselect%2Ctextarea%7Bfont%2Dsize%3A14px%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A20px%7Dinput%2Cbutton%2Cselect%2Ctextarea%7Bfont%2Dfamily%3A%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%7Dlabel%7Bdisplay%3Ablock%3Bmargin%2Dbottom%3A5px%7Dselect%2Ctextarea%2Cinput%5Btype%3D%22text%22%5D%2Cinput%5Btype%3D%22password%22%5D%2Cinput%5Btype%3D%22datetime%22%5D%2Cinput%5Btype%3D%22datetime%2Dlocal%22%5D%2Cinput%5Btype%3D%22date%22%5D%2Cinput%5Btype%3D%22month%22%5D%2Cinput%5Btype%3D%22time%22%5D%2Cinput%5Btype%3D%22week%22%5D%2Cinput%5Btype%3D%22number%22%5D%2Cinput%5Btype%3D%22email%22%5D%2Cinput%5Btype%3D%22url%22%5D%2Cinput%5Btype%3D%22search%22%5D%2Cinput%5Btype%3D%22tel%22%5D%2Cinput%5Btype%3D%22color%22%5D%2C%2Euneditable%2Dinput%7Bdisplay%3Ainline%2Dblock%3Bheight%3A20px%3Bpadding%3A4px%206px%3Bmargin%2Dbottom%3A10px%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A20px%3Bcolor%3A%23555%3Bvertical%2Dalign%3Amiddle%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%7Dinput%2Ctextarea%2C%2Euneditable%2Dinput%7Bwidth%3A206px%7Dtextarea%7Bheight%3Aauto%7Dtextarea%2Cinput%5Btype%3D%22text%22%5D%2Cinput%5Btype%3D%22password%22%5D%2Cinput%5Btype%3D%22datetime%22%5D%2Cinput%5Btype%3D%22datetime%2Dlocal%22%5D%2Cinput%5Btype%3D%22date%22%5D%2Cinput%5Btype%3D%22month%22%5D%2Cinput%5Btype%3D%22time%22%5D%2Cinput%5Btype%3D%22week%22%5D%2Cinput%5Btype%3D%22number%22%5D%2Cinput%5Btype%3D%22email%22%5D%2Cinput%5Btype%3D%22url%22%5D%2Cinput%5Btype%3D%22search%22%5D%2Cinput%5Btype%3D%22tel%22%5D%2Cinput%5Btype%3D%22color%22%5D%2C%2Euneditable%2Dinput%7Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ccc%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3B%2Dwebkit%2Dtransition%3Aborder%20linear%20%2E2s%2Cbox%2Dshadow%20linear%20%2E2s%3B%2Dmoz%2Dtransition%3Aborder%20linear%20%2E2s%2Cbox%2Dshadow%20linear%20%2E2s%3B%2Do%2Dtransition%3Aborder%20linear%20%2E2s%2Cbox%2Dshadow%20linear%20%2E2s%3Btransition%3Aborder%20linear%20%2E2s%2Cbox%2Dshadow%20linear%20%2E2s%7Dtextarea%3Afocus%2Cinput%5Btype%3D%22text%22%5D%3Afocus%2Cinput%5Btype%3D%22password%22%5D%3Afocus%2Cinput%5Btype%3D%22datetime%22%5D%3Afocus%2Cinput%5Btype%3D%22datetime%2Dlocal%22%5D%3Afocus%2Cinput%5Btype%3D%22date%22%5D%3Afocus%2Cinput%5Btype%3D%22month%22%5D%3Afocus%2Cinput%5Btype%3D%22time%22%5D%3Afocus%2Cinput%5Btype%3D%22week%22%5D%3Afocus%2Cinput%5Btype%3D%22number%22%5D%3Afocus%2Cinput%5Btype%3D%22email%22%5D%3Afocus%2Cinput%5Btype%3D%22url%22%5D%3Afocus%2Cinput%5Btype%3D%22search%22%5D%3Afocus%2Cinput%5Btype%3D%22tel%22%5D%3Afocus%2Cinput%5Btype%3D%22color%22%5D%3Afocus%2C%2Euneditable%2Dinput%3Afocus%7Bborder%2Dcolor%3Argba%2882%2C168%2C236%2C0%2E8%29%3Boutline%3A0%3Boutline%3Athin%20dotted%20%5C9%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%208px%20rgba%2882%2C168%2C236%2C0%2E6%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%208px%20rgba%2882%2C168%2C236%2C0%2E6%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%208px%20rgba%2882%2C168%2C236%2C0%2E6%29%7Dinput%5Btype%3D%22radio%22%5D%2Cinput%5Btype%3D%22checkbox%22%5D%7Bmargin%3A4px%200%200%3Bmargin%2Dtop%3A1px%20%5C9%3B%2Amargin%2Dtop%3A0%3Bline%2Dheight%3Anormal%7Dinput%5Btype%3D%22file%22%5D%2Cinput%5Btype%3D%22image%22%5D%2Cinput%5Btype%3D%22submit%22%5D%2Cinput%5Btype%3D%22reset%22%5D%2Cinput%5Btype%3D%22button%22%5D%2Cinput%5Btype%3D%22radio%22%5D%2Cinput%5Btype%3D%22checkbox%22%5D%7Bwidth%3Aauto%7Dselect%2Cinput%5Btype%3D%22file%22%5D%7Bheight%3A30px%3B%2Amargin%2Dtop%3A4px%3Bline%2Dheight%3A30px%7Dselect%7Bwidth%3A220px%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ccc%7Dselect%5Bmultiple%5D%2Cselect%5Bsize%5D%7Bheight%3Aauto%7Dselect%3Afocus%2Cinput%5Btype%3D%22file%22%5D%3Afocus%2Cinput%5Btype%3D%22radio%22%5D%3Afocus%2Cinput%5Btype%3D%22checkbox%22%5D%3Afocus%7Boutline%3Athin%20dotted%20%23333%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7D%2Euneditable%2Dinput%2C%2Euneditable%2Dtextarea%7Bcolor%3A%23999%3Bcursor%3Anot%2Dallowed%3Bbackground%2Dcolor%3A%23fcfcfc%3Bborder%2Dcolor%3A%23ccc%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E025%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E025%29%3Bbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E025%29%7D%2Euneditable%2Dinput%7Boverflow%3Ahidden%3Bwhite%2Dspace%3Anowrap%7D%2Euneditable%2Dtextarea%7Bwidth%3Aauto%3Bheight%3Aauto%7Dinput%3A%2Dmoz%2Dplaceholder%2Ctextarea%3A%2Dmoz%2Dplaceholder%7Bcolor%3A%23999%7Dinput%3A%2Dms%2Dinput%2Dplaceholder%2Ctextarea%3A%2Dms%2Dinput%2Dplaceholder%7Bcolor%3A%23999%7Dinput%3A%3A%2Dwebkit%2Dinput%2Dplaceholder%2Ctextarea%3A%3A%2Dwebkit%2Dinput%2Dplaceholder%7Bcolor%3A%23999%7D%2Eradio%2C%2Echeckbox%7Bmin%2Dheight%3A20px%3Bpadding%2Dleft%3A20px%7D%2Eradio%20input%5Btype%3D%22radio%22%5D%2C%2Echeckbox%20input%5Btype%3D%22checkbox%22%5D%7Bfloat%3Aleft%3Bmargin%2Dleft%3A%2D20px%7D%2Econtrols%3E%2Eradio%3Afirst%2Dchild%2C%2Econtrols%3E%2Echeckbox%3Afirst%2Dchild%7Bpadding%2Dtop%3A5px%7D%2Eradio%2Einline%2C%2Echeckbox%2Einline%7Bdisplay%3Ainline%2Dblock%3Bpadding%2Dtop%3A5px%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eradio%2Einline%2B%2Eradio%2Einline%2C%2Echeckbox%2Einline%2B%2Echeckbox%2Einline%7Bmargin%2Dleft%3A10px%7D%2Einput%2Dmini%7Bwidth%3A60px%7D%2Einput%2Dsmall%7Bwidth%3A90px%7D%2Einput%2Dmedium%7Bwidth%3A150px%7D%2Einput%2Dlarge%7Bwidth%3A210px%7D%2Einput%2Dxlarge%7Bwidth%3A270px%7D%2Einput%2Dxxlarge%7Bwidth%3A530px%7Dinput%5Bclass%2A%3D%22span%22%5D%2Cselect%5Bclass%2A%3D%22span%22%5D%2Ctextarea%5Bclass%2A%3D%22span%22%5D%2C%2Euneditable%2Dinput%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20input%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20select%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20textarea%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20%2Euneditable%2Dinput%5Bclass%2A%3D%22span%22%5D%7Bfloat%3Anone%3Bmargin%2Dleft%3A0%7D%2Einput%2Dappend%20input%5Bclass%2A%3D%22span%22%5D%2C%2Einput%2Dappend%20%2Euneditable%2Dinput%5Bclass%2A%3D%22span%22%5D%2C%2Einput%2Dprepend%20input%5Bclass%2A%3D%22span%22%5D%2C%2Einput%2Dprepend%20%2Euneditable%2Dinput%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20input%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20select%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20textarea%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20%2Euneditable%2Dinput%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20%2Einput%2Dprepend%20%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20%2Einput%2Dappend%20%5Bclass%2A%3D%22span%22%5D%7Bdisplay%3Ainline%2Dblock%7Dinput%2Ctextarea%2C%2Euneditable%2Dinput%7Bmargin%2Dleft%3A0%7D%2Econtrols%2Drow%20%5Bclass%2A%3D%22span%22%5D%2B%5Bclass%2A%3D%22span%22%5D%7Bmargin%2Dleft%3A20px%7Dinput%2Espan12%2Ctextarea%2Espan12%2C%2Euneditable%2Dinput%2Espan12%7Bwidth%3A926px%7Dinput%2Espan11%2Ctextarea%2Espan11%2C%2Euneditable%2Dinput%2Espan11%7Bwidth%3A846px%7Dinput%2Espan10%2Ctextarea%2Espan10%2C%2Euneditable%2Dinput%2Espan10%7Bwidth%3A766px%7Dinput%2Espan9%2Ctextarea%2Espan9%2C%2Euneditable%2Dinput%2Espan9%7Bwidth%3A686px%7Dinput%2Espan8%2Ctextarea%2Espan8%2C%2Euneditable%2Dinput%2Espan8%7Bwidth%3A606px%7Dinput%2Espan7%2Ctextarea%2Espan7%2C%2Euneditable%2Dinput%2Espan7%7Bwidth%3A526px%7Dinput%2Espan6%2Ctextarea%2Espan6%2C%2Euneditable%2Dinput%2Espan6%7Bwidth%3A446px%7Dinput%2Espan5%2Ctextarea%2Espan5%2C%2Euneditable%2Dinput%2Espan5%7Bwidth%3A366px%7Dinput%2Espan4%2Ctextarea%2Espan4%2C%2Euneditable%2Dinput%2Espan4%7Bwidth%3A286px%7Dinput%2Espan3%2Ctextarea%2Espan3%2C%2Euneditable%2Dinput%2Espan3%7Bwidth%3A206px%7Dinput%2Espan2%2Ctextarea%2Espan2%2C%2Euneditable%2Dinput%2Espan2%7Bwidth%3A126px%7Dinput%2Espan1%2Ctextarea%2Espan1%2C%2Euneditable%2Dinput%2Espan1%7Bwidth%3A46px%7D%2Econtrols%2Drow%7B%2Azoom%3A1%7D%2Econtrols%2Drow%3Abefore%2C%2Econtrols%2Drow%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Econtrols%2Drow%3Aafter%7Bclear%3Aboth%7D%2Econtrols%2Drow%20%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20%2Econtrols%2Drow%20%5Bclass%2A%3D%22span%22%5D%7Bfloat%3Aleft%7D%2Econtrols%2Drow%20%2Echeckbox%5Bclass%2A%3D%22span%22%5D%2C%2Econtrols%2Drow%20%2Eradio%5Bclass%2A%3D%22span%22%5D%7Bpadding%2Dtop%3A5px%7Dinput%5Bdisabled%5D%2Cselect%5Bdisabled%5D%2Ctextarea%5Bdisabled%5D%2Cinput%5Breadonly%5D%2Cselect%5Breadonly%5D%2Ctextarea%5Breadonly%5D%7Bcursor%3Anot%2Dallowed%3Bbackground%2Dcolor%3A%23eee%7Dinput%5Btype%3D%22radio%22%5D%5Bdisabled%5D%2Cinput%5Btype%3D%22checkbox%22%5D%5Bdisabled%5D%2Cinput%5Btype%3D%22radio%22%5D%5Breadonly%5D%2Cinput%5Btype%3D%22checkbox%22%5D%5Breadonly%5D%7Bbackground%2Dcolor%3Atransparent%7D%2Econtrol%2Dgroup%2Ewarning%20%2Econtrol%2Dlabel%2C%2Econtrol%2Dgroup%2Ewarning%20%2Ehelp%2Dblock%2C%2Econtrol%2Dgroup%2Ewarning%20%2Ehelp%2Dinline%7Bcolor%3A%23c09853%7D%2Econtrol%2Dgroup%2Ewarning%20%2Echeckbox%2C%2Econtrol%2Dgroup%2Ewarning%20%2Eradio%2C%2Econtrol%2Dgroup%2Ewarning%20input%2C%2Econtrol%2Dgroup%2Ewarning%20select%2C%2Econtrol%2Dgroup%2Ewarning%20textarea%7Bcolor%3A%23c09853%7D%2Econtrol%2Dgroup%2Ewarning%20input%2C%2Econtrol%2Dgroup%2Ewarning%20select%2C%2Econtrol%2Dgroup%2Ewarning%20textarea%7Bborder%2Dcolor%3A%23c09853%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Econtrol%2Dgroup%2Ewarning%20input%3Afocus%2C%2Econtrol%2Dgroup%2Ewarning%20select%3Afocus%2C%2Econtrol%2Dgroup%2Ewarning%20textarea%3Afocus%7Bborder%2Dcolor%3A%23a47e3c%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23dbc59e%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23dbc59e%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23dbc59e%7D%2Econtrol%2Dgroup%2Ewarning%20%2Einput%2Dprepend%20%2Eadd%2Don%2C%2Econtrol%2Dgroup%2Ewarning%20%2Einput%2Dappend%20%2Eadd%2Don%7Bcolor%3A%23c09853%3Bbackground%2Dcolor%3A%23fcf8e3%3Bborder%2Dcolor%3A%23c09853%7D%2Econtrol%2Dgroup%2Eerror%20%2Econtrol%2Dlabel%2C%2Econtrol%2Dgroup%2Eerror%20%2Ehelp%2Dblock%2C%2Econtrol%2Dgroup%2Eerror%20%2Ehelp%2Dinline%7Bcolor%3A%23b94a48%7D%2Econtrol%2Dgroup%2Eerror%20%2Echeckbox%2C%2Econtrol%2Dgroup%2Eerror%20%2Eradio%2C%2Econtrol%2Dgroup%2Eerror%20input%2C%2Econtrol%2Dgroup%2Eerror%20select%2C%2Econtrol%2Dgroup%2Eerror%20textarea%7Bcolor%3A%23b94a48%7D%2Econtrol%2Dgroup%2Eerror%20input%2C%2Econtrol%2Dgroup%2Eerror%20select%2C%2Econtrol%2Dgroup%2Eerror%20textarea%7Bborder%2Dcolor%3A%23b94a48%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Econtrol%2Dgroup%2Eerror%20input%3Afocus%2C%2Econtrol%2Dgroup%2Eerror%20select%3Afocus%2C%2Econtrol%2Dgroup%2Eerror%20textarea%3Afocus%7Bborder%2Dcolor%3A%23953b39%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23d59392%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23d59392%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23d59392%7D%2Econtrol%2Dgroup%2Eerror%20%2Einput%2Dprepend%20%2Eadd%2Don%2C%2Econtrol%2Dgroup%2Eerror%20%2Einput%2Dappend%20%2Eadd%2Don%7Bcolor%3A%23b94a48%3Bbackground%2Dcolor%3A%23f2dede%3Bborder%2Dcolor%3A%23b94a48%7D%2Econtrol%2Dgroup%2Esuccess%20%2Econtrol%2Dlabel%2C%2Econtrol%2Dgroup%2Esuccess%20%2Ehelp%2Dblock%2C%2Econtrol%2Dgroup%2Esuccess%20%2Ehelp%2Dinline%7Bcolor%3A%23468847%7D%2Econtrol%2Dgroup%2Esuccess%20%2Echeckbox%2C%2Econtrol%2Dgroup%2Esuccess%20%2Eradio%2C%2Econtrol%2Dgroup%2Esuccess%20input%2C%2Econtrol%2Dgroup%2Esuccess%20select%2C%2Econtrol%2Dgroup%2Esuccess%20textarea%7Bcolor%3A%23468847%7D%2Econtrol%2Dgroup%2Esuccess%20input%2C%2Econtrol%2Dgroup%2Esuccess%20select%2C%2Econtrol%2Dgroup%2Esuccess%20textarea%7Bborder%2Dcolor%3A%23468847%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Econtrol%2Dgroup%2Esuccess%20input%3Afocus%2C%2Econtrol%2Dgroup%2Esuccess%20select%3Afocus%2C%2Econtrol%2Dgroup%2Esuccess%20textarea%3Afocus%7Bborder%2Dcolor%3A%23356635%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%237aba7b%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%237aba7b%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%237aba7b%7D%2Econtrol%2Dgroup%2Esuccess%20%2Einput%2Dprepend%20%2Eadd%2Don%2C%2Econtrol%2Dgroup%2Esuccess%20%2Einput%2Dappend%20%2Eadd%2Don%7Bcolor%3A%23468847%3Bbackground%2Dcolor%3A%23dff0d8%3Bborder%2Dcolor%3A%23468847%7D%2Econtrol%2Dgroup%2Einfo%20%2Econtrol%2Dlabel%2C%2Econtrol%2Dgroup%2Einfo%20%2Ehelp%2Dblock%2C%2Econtrol%2Dgroup%2Einfo%20%2Ehelp%2Dinline%7Bcolor%3A%233a87ad%7D%2Econtrol%2Dgroup%2Einfo%20%2Echeckbox%2C%2Econtrol%2Dgroup%2Einfo%20%2Eradio%2C%2Econtrol%2Dgroup%2Einfo%20input%2C%2Econtrol%2Dgroup%2Einfo%20select%2C%2Econtrol%2Dgroup%2Einfo%20textarea%7Bcolor%3A%233a87ad%7D%2Econtrol%2Dgroup%2Einfo%20input%2C%2Econtrol%2Dgroup%2Einfo%20select%2C%2Econtrol%2Dgroup%2Einfo%20textarea%7Bborder%2Dcolor%3A%233a87ad%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Econtrol%2Dgroup%2Einfo%20input%3Afocus%2C%2Econtrol%2Dgroup%2Einfo%20select%3Afocus%2C%2Econtrol%2Dgroup%2Einfo%20textarea%3Afocus%7Bborder%2Dcolor%3A%232d6987%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%237ab5d3%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%237ab5d3%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%237ab5d3%7D%2Econtrol%2Dgroup%2Einfo%20%2Einput%2Dprepend%20%2Eadd%2Don%2C%2Econtrol%2Dgroup%2Einfo%20%2Einput%2Dappend%20%2Eadd%2Don%7Bcolor%3A%233a87ad%3Bbackground%2Dcolor%3A%23d9edf7%3Bborder%2Dcolor%3A%233a87ad%7Dinput%3Afocus%3Ainvalid%2Ctextarea%3Afocus%3Ainvalid%2Cselect%3Afocus%3Ainvalid%7Bcolor%3A%23b94a48%3Bborder%2Dcolor%3A%23ee5f5b%7Dinput%3Afocus%3Ainvalid%3Afocus%2Ctextarea%3Afocus%3Ainvalid%3Afocus%2Cselect%3Afocus%3Ainvalid%3Afocus%7Bborder%2Dcolor%3A%23e9322d%3B%2Dwebkit%2Dbox%2Dshadow%3A0%200%206px%20%23f8b9b7%3B%2Dmoz%2Dbox%2Dshadow%3A0%200%206px%20%23f8b9b7%3Bbox%2Dshadow%3A0%200%206px%20%23f8b9b7%7D%2Eform%2Dactions%7Bpadding%3A19px%2020px%2020px%3Bmargin%2Dtop%3A20px%3Bmargin%2Dbottom%3A20px%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dtop%3A1px%20solid%20%23e5e5e5%3B%2Azoom%3A1%7D%2Eform%2Dactions%3Abefore%2C%2Eform%2Dactions%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Eform%2Dactions%3Aafter%7Bclear%3Aboth%7D%2Ehelp%2Dblock%2C%2Ehelp%2Dinline%7Bcolor%3A%23595959%7D%2Ehelp%2Dblock%7Bdisplay%3Ablock%3Bmargin%2Dbottom%3A10px%7D%2Ehelp%2Dinline%7Bdisplay%3Ainline%2Dblock%3B%2Adisplay%3Ainline%3Bpadding%2Dleft%3A5px%3Bvertical%2Dalign%3Amiddle%3B%2Azoom%3A1%7D%2Einput%2Dappend%2C%2Einput%2Dprepend%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A10px%3Bfont%2Dsize%3A0%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Amiddle%7D%2Einput%2Dappend%20input%2C%2Einput%2Dprepend%20input%2C%2Einput%2Dappend%20select%2C%2Einput%2Dprepend%20select%2C%2Einput%2Dappend%20%2Euneditable%2Dinput%2C%2Einput%2Dprepend%20%2Euneditable%2Dinput%2C%2Einput%2Dappend%20%2Edropdown%2Dmenu%2C%2Einput%2Dprepend%20%2Edropdown%2Dmenu%2C%2Einput%2Dappend%20%2Epopover%2C%2Einput%2Dprepend%20%2Epopover%7Bfont%2Dsize%3A14px%7D%2Einput%2Dappend%20input%2C%2Einput%2Dprepend%20input%2C%2Einput%2Dappend%20select%2C%2Einput%2Dprepend%20select%2C%2Einput%2Dappend%20%2Euneditable%2Dinput%2C%2Einput%2Dprepend%20%2Euneditable%2Dinput%7Bposition%3Arelative%3Bmargin%2Dbottom%3A0%3B%2Amargin%2Dleft%3A0%3Bvertical%2Dalign%3Atop%3B%2Dwebkit%2Dborder%2Dradius%3A0%204px%204px%200%3B%2Dmoz%2Dborder%2Dradius%3A0%204px%204px%200%3Bborder%2Dradius%3A0%204px%204px%200%7D%2Einput%2Dappend%20input%3Afocus%2C%2Einput%2Dprepend%20input%3Afocus%2C%2Einput%2Dappend%20select%3Afocus%2C%2Einput%2Dprepend%20select%3Afocus%2C%2Einput%2Dappend%20%2Euneditable%2Dinput%3Afocus%2C%2Einput%2Dprepend%20%2Euneditable%2Dinput%3Afocus%7Bz%2Dindex%3A2%7D%2Einput%2Dappend%20%2Eadd%2Don%2C%2Einput%2Dprepend%20%2Eadd%2Don%7Bdisplay%3Ainline%2Dblock%3Bwidth%3Aauto%3Bheight%3A20px%3Bmin%2Dwidth%3A16px%3Bpadding%3A4px%205px%3Bfont%2Dsize%3A14px%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A20px%3Btext%2Dalign%3Acenter%3Btext%2Dshadow%3A0%201px%200%20%23fff%3Bbackground%2Dcolor%3A%23eee%3Bborder%3A1px%20solid%20%23ccc%7D%2Einput%2Dappend%20%2Eadd%2Don%2C%2Einput%2Dprepend%20%2Eadd%2Don%2C%2Einput%2Dappend%20%2Ebtn%2C%2Einput%2Dprepend%20%2Ebtn%2C%2Einput%2Dappend%20%2Ebtn%2Dgroup%3E%2Edropdown%2Dtoggle%2C%2Einput%2Dprepend%20%2Ebtn%2Dgroup%3E%2Edropdown%2Dtoggle%7Bvertical%2Dalign%3Atop%3B%2Dwebkit%2Dborder%2Dradius%3A0%3B%2Dmoz%2Dborder%2Dradius%3A0%3Bborder%2Dradius%3A0%7D%2Einput%2Dappend%20%2Eactive%2C%2Einput%2Dprepend%20%2Eactive%7Bbackground%2Dcolor%3A%23a9dba9%3Bborder%2Dcolor%3A%2346a546%7D%2Einput%2Dprepend%20%2Eadd%2Don%2C%2Einput%2Dprepend%20%2Ebtn%7Bmargin%2Dright%3A%2D1px%7D%2Einput%2Dprepend%20%2Eadd%2Don%3Afirst%2Dchild%2C%2Einput%2Dprepend%20%2Ebtn%3Afirst%2Dchild%7B%2Dwebkit%2Dborder%2Dradius%3A4px%200%200%204px%3B%2Dmoz%2Dborder%2Dradius%3A4px%200%200%204px%3Bborder%2Dradius%3A4px%200%200%204px%7D%2Einput%2Dappend%20input%2C%2Einput%2Dappend%20select%2C%2Einput%2Dappend%20%2Euneditable%2Dinput%7B%2Dwebkit%2Dborder%2Dradius%3A4px%200%200%204px%3B%2Dmoz%2Dborder%2Dradius%3A4px%200%200%204px%3Bborder%2Dradius%3A4px%200%200%204px%7D%2Einput%2Dappend%20input%2B%2Ebtn%2Dgroup%20%2Ebtn%3Alast%2Dchild%2C%2Einput%2Dappend%20select%2B%2Ebtn%2Dgroup%20%2Ebtn%3Alast%2Dchild%2C%2Einput%2Dappend%20%2Euneditable%2Dinput%2B%2Ebtn%2Dgroup%20%2Ebtn%3Alast%2Dchild%7B%2Dwebkit%2Dborder%2Dradius%3A0%204px%204px%200%3B%2Dmoz%2Dborder%2Dradius%3A0%204px%204px%200%3Bborder%2Dradius%3A0%204px%204px%200%7D%2Einput%2Dappend%20%2Eadd%2Don%2C%2Einput%2Dappend%20%2Ebtn%2C%2Einput%2Dappend%20%2Ebtn%2Dgroup%7Bmargin%2Dleft%3A%2D1px%7D%2Einput%2Dappend%20%2Eadd%2Don%3Alast%2Dchild%2C%2Einput%2Dappend%20%2Ebtn%3Alast%2Dchild%2C%2Einput%2Dappend%20%2Ebtn%2Dgroup%3Alast%2Dchild%3E%2Edropdown%2Dtoggle%7B%2Dwebkit%2Dborder%2Dradius%3A0%204px%204px%200%3B%2Dmoz%2Dborder%2Dradius%3A0%204px%204px%200%3Bborder%2Dradius%3A0%204px%204px%200%7D%2Einput%2Dprepend%2Einput%2Dappend%20input%2C%2Einput%2Dprepend%2Einput%2Dappend%20select%2C%2Einput%2Dprepend%2Einput%2Dappend%20%2Euneditable%2Dinput%7B%2Dwebkit%2Dborder%2Dradius%3A0%3B%2Dmoz%2Dborder%2Dradius%3A0%3Bborder%2Dradius%3A0%7D%2Einput%2Dprepend%2Einput%2Dappend%20input%2B%2Ebtn%2Dgroup%20%2Ebtn%2C%2Einput%2Dprepend%2Einput%2Dappend%20select%2B%2Ebtn%2Dgroup%20%2Ebtn%2C%2Einput%2Dprepend%2Einput%2Dappend%20%2Euneditable%2Dinput%2B%2Ebtn%2Dgroup%20%2Ebtn%7B%2Dwebkit%2Dborder%2Dradius%3A0%204px%204px%200%3B%2Dmoz%2Dborder%2Dradius%3A0%204px%204px%200%3Bborder%2Dradius%3A0%204px%204px%200%7D%2Einput%2Dprepend%2Einput%2Dappend%20%2Eadd%2Don%3Afirst%2Dchild%2C%2Einput%2Dprepend%2Einput%2Dappend%20%2Ebtn%3Afirst%2Dchild%7Bmargin%2Dright%3A%2D1px%3B%2Dwebkit%2Dborder%2Dradius%3A4px%200%200%204px%3B%2Dmoz%2Dborder%2Dradius%3A4px%200%200%204px%3Bborder%2Dradius%3A4px%200%200%204px%7D%2Einput%2Dprepend%2Einput%2Dappend%20%2Eadd%2Don%3Alast%2Dchild%2C%2Einput%2Dprepend%2Einput%2Dappend%20%2Ebtn%3Alast%2Dchild%7Bmargin%2Dleft%3A%2D1px%3B%2Dwebkit%2Dborder%2Dradius%3A0%204px%204px%200%3B%2Dmoz%2Dborder%2Dradius%3A0%204px%204px%200%3Bborder%2Dradius%3A0%204px%204px%200%7D%2Einput%2Dprepend%2Einput%2Dappend%20%2Ebtn%2Dgroup%3Afirst%2Dchild%7Bmargin%2Dleft%3A0%7Dinput%2Esearch%2Dquery%7Bpadding%2Dright%3A14px%3Bpadding%2Dright%3A4px%20%5C9%3Bpadding%2Dleft%3A14px%3Bpadding%2Dleft%3A4px%20%5C9%3Bmargin%2Dbottom%3A0%3B%2Dwebkit%2Dborder%2Dradius%3A15px%3B%2Dmoz%2Dborder%2Dradius%3A15px%3Bborder%2Dradius%3A15px%7D%2Eform%2Dsearch%20%2Einput%2Dappend%20%2Esearch%2Dquery%2C%2Eform%2Dsearch%20%2Einput%2Dprepend%20%2Esearch%2Dquery%7B%2Dwebkit%2Dborder%2Dradius%3A0%3B%2Dmoz%2Dborder%2Dradius%3A0%3Bborder%2Dradius%3A0%7D%2Eform%2Dsearch%20%2Einput%2Dappend%20%2Esearch%2Dquery%7B%2Dwebkit%2Dborder%2Dradius%3A14px%200%200%2014px%3B%2Dmoz%2Dborder%2Dradius%3A14px%200%200%2014px%3Bborder%2Dradius%3A14px%200%200%2014px%7D%2Eform%2Dsearch%20%2Einput%2Dappend%20%2Ebtn%7B%2Dwebkit%2Dborder%2Dradius%3A0%2014px%2014px%200%3B%2Dmoz%2Dborder%2Dradius%3A0%2014px%2014px%200%3Bborder%2Dradius%3A0%2014px%2014px%200%7D%2Eform%2Dsearch%20%2Einput%2Dprepend%20%2Esearch%2Dquery%7B%2Dwebkit%2Dborder%2Dradius%3A0%2014px%2014px%200%3B%2Dmoz%2Dborder%2Dradius%3A0%2014px%2014px%200%3Bborder%2Dradius%3A0%2014px%2014px%200%7D%2Eform%2Dsearch%20%2Einput%2Dprepend%20%2Ebtn%7B%2Dwebkit%2Dborder%2Dradius%3A14px%200%200%2014px%3B%2Dmoz%2Dborder%2Dradius%3A14px%200%200%2014px%3Bborder%2Dradius%3A14px%200%200%2014px%7D%2Eform%2Dsearch%20input%2C%2Eform%2Dinline%20input%2C%2Eform%2Dhorizontal%20input%2C%2Eform%2Dsearch%20textarea%2C%2Eform%2Dinline%20textarea%2C%2Eform%2Dhorizontal%20textarea%2C%2Eform%2Dsearch%20select%2C%2Eform%2Dinline%20select%2C%2Eform%2Dhorizontal%20select%2C%2Eform%2Dsearch%20%2Ehelp%2Dinline%2C%2Eform%2Dinline%20%2Ehelp%2Dinline%2C%2Eform%2Dhorizontal%20%2Ehelp%2Dinline%2C%2Eform%2Dsearch%20%2Euneditable%2Dinput%2C%2Eform%2Dinline%20%2Euneditable%2Dinput%2C%2Eform%2Dhorizontal%20%2Euneditable%2Dinput%2C%2Eform%2Dsearch%20%2Einput%2Dprepend%2C%2Eform%2Dinline%20%2Einput%2Dprepend%2C%2Eform%2Dhorizontal%20%2Einput%2Dprepend%2C%2Eform%2Dsearch%20%2Einput%2Dappend%2C%2Eform%2Dinline%20%2Einput%2Dappend%2C%2Eform%2Dhorizontal%20%2Einput%2Dappend%7Bdisplay%3Ainline%2Dblock%3B%2Adisplay%3Ainline%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%3B%2Azoom%3A1%7D%2Eform%2Dsearch%20%2Ehide%2C%2Eform%2Dinline%20%2Ehide%2C%2Eform%2Dhorizontal%20%2Ehide%7Bdisplay%3Anone%7D%2Eform%2Dsearch%20label%2C%2Eform%2Dinline%20label%2C%2Eform%2Dsearch%20%2Ebtn%2Dgroup%2C%2Eform%2Dinline%20%2Ebtn%2Dgroup%7Bdisplay%3Ainline%2Dblock%7D%2Eform%2Dsearch%20%2Einput%2Dappend%2C%2Eform%2Dinline%20%2Einput%2Dappend%2C%2Eform%2Dsearch%20%2Einput%2Dprepend%2C%2Eform%2Dinline%20%2Einput%2Dprepend%7Bmargin%2Dbottom%3A0%7D%2Eform%2Dsearch%20%2Eradio%2C%2Eform%2Dsearch%20%2Echeckbox%2C%2Eform%2Dinline%20%2Eradio%2C%2Eform%2Dinline%20%2Echeckbox%7Bpadding%2Dleft%3A0%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dsearch%20%2Eradio%20input%5Btype%3D%22radio%22%5D%2C%2Eform%2Dsearch%20%2Echeckbox%20input%5Btype%3D%22checkbox%22%5D%2C%2Eform%2Dinline%20%2Eradio%20input%5Btype%3D%22radio%22%5D%2C%2Eform%2Dinline%20%2Echeckbox%20input%5Btype%3D%22checkbox%22%5D%7Bfloat%3Aleft%3Bmargin%2Dright%3A3px%3Bmargin%2Dleft%3A0%7D%2Econtrol%2Dgroup%7Bmargin%2Dbottom%3A10px%7Dlegend%2B%2Econtrol%2Dgroup%7Bmargin%2Dtop%3A20px%3B%2Dwebkit%2Dmargin%2Dtop%2Dcollapse%3Aseparate%7D%2Eform%2Dhorizontal%20%2Econtrol%2Dgroup%7Bmargin%2Dbottom%3A20px%3B%2Azoom%3A1%7D%2Eform%2Dhorizontal%20%2Econtrol%2Dgroup%3Abefore%2C%2Eform%2Dhorizontal%20%2Econtrol%2Dgroup%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Eform%2Dhorizontal%20%2Econtrol%2Dgroup%3Aafter%7Bclear%3Aboth%7D%2Eform%2Dhorizontal%20%2Econtrol%2Dlabel%7Bfloat%3Aleft%3Bwidth%3A160px%3Bpadding%2Dtop%3A5px%3Btext%2Dalign%3Aright%7D%2Eform%2Dhorizontal%20%2Econtrols%7B%2Adisplay%3Ainline%2Dblock%3B%2Apadding%2Dleft%3A20px%3Bmargin%2Dleft%3A180px%3B%2Amargin%2Dleft%3A0%7D%2Eform%2Dhorizontal%20%2Econtrols%3Afirst%2Dchild%7B%2Apadding%2Dleft%3A180px%7D%2Eform%2Dhorizontal%20%2Ehelp%2Dblock%7Bmargin%2Dbottom%3A0%7D%2Eform%2Dhorizontal%20input%2B%2Ehelp%2Dblock%2C%2Eform%2Dhorizontal%20select%2B%2Ehelp%2Dblock%2C%2Eform%2Dhorizontal%20textarea%2B%2Ehelp%2Dblock%2C%2Eform%2Dhorizontal%20%2Euneditable%2Dinput%2B%2Ehelp%2Dblock%2C%2Eform%2Dhorizontal%20%2Einput%2Dprepend%2B%2Ehelp%2Dblock%2C%2Eform%2Dhorizontal%20%2Einput%2Dappend%2B%2Ehelp%2Dblock%7Bmargin%2Dtop%3A10px%7D%2Eform%2Dhorizontal%20%2Eform%2Dactions%7Bpadding%2Dleft%3A180px%7Dtable%7Bmax%2Dwidth%3A100%25%3Bbackground%2Dcolor%3Atransparent%3Bborder%2Dcollapse%3Acollapse%3Bborder%2Dspacing%3A0%7D%2Etable%7Bwidth%3A100%25%3Bmargin%2Dbottom%3A20px%7D%2Etable%20th%2C%2Etable%20td%7Bpadding%3A8px%3Bline%2Dheight%3A20px%3Bvertical%2Dalign%3Atop%3Bborder%2Dtop%3A1px%20solid%20%23ddd%7D%2Etable%20th%7Bfont%2Dweight%3Abold%7D%2Etable%20thead%20th%7Bvertical%2Dalign%3Abottom%7D%2Etable%20caption%2Bthead%20tr%3Afirst%2Dchild%20th%2C%2Etable%20caption%2Bthead%20tr%3Afirst%2Dchild%20td%2C%2Etable%20colgroup%2Bthead%20tr%3Afirst%2Dchild%20th%2C%2Etable%20colgroup%2Bthead%20tr%3Afirst%2Dchild%20td%2C%2Etable%20thead%3Afirst%2Dchild%20tr%3Afirst%2Dchild%20th%2C%2Etable%20thead%3Afirst%2Dchild%20tr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3A0%7D%2Etable%20tbody%2Btbody%7Bborder%2Dtop%3A2px%20solid%20%23ddd%7D%2Etable%20%2Etable%7Bbackground%2Dcolor%3A%23fff%7D%2Etable%2Dcondensed%20th%2C%2Etable%2Dcondensed%20td%7Bpadding%3A4px%205px%7D%2Etable%2Dbordered%7Bborder%3A1px%20solid%20%23ddd%3Bborder%2Dcollapse%3Aseparate%3B%2Aborder%2Dcollapse%3Acollapse%3Bborder%2Dleft%3A0%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%7D%2Etable%2Dbordered%20th%2C%2Etable%2Dbordered%20td%7Bborder%2Dleft%3A1px%20solid%20%23ddd%7D%2Etable%2Dbordered%20caption%2Bthead%20tr%3Afirst%2Dchild%20th%2C%2Etable%2Dbordered%20caption%2Btbody%20tr%3Afirst%2Dchild%20th%2C%2Etable%2Dbordered%20caption%2Btbody%20tr%3Afirst%2Dchild%20td%2C%2Etable%2Dbordered%20colgroup%2Bthead%20tr%3Afirst%2Dchild%20th%2C%2Etable%2Dbordered%20colgroup%2Btbody%20tr%3Afirst%2Dchild%20th%2C%2Etable%2Dbordered%20colgroup%2Btbody%20tr%3Afirst%2Dchild%20td%2C%2Etable%2Dbordered%20thead%3Afirst%2Dchild%20tr%3Afirst%2Dchild%20th%2C%2Etable%2Dbordered%20tbody%3Afirst%2Dchild%20tr%3Afirst%2Dchild%20th%2C%2Etable%2Dbordered%20tbody%3Afirst%2Dchild%20tr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3A0%7D%2Etable%2Dbordered%20thead%3Afirst%2Dchild%20tr%3Afirst%2Dchild%3Eth%3Afirst%2Dchild%2C%2Etable%2Dbordered%20tbody%3Afirst%2Dchild%20tr%3Afirst%2Dchild%3Etd%3Afirst%2Dchild%2C%2Etable%2Dbordered%20tbody%3Afirst%2Dchild%20tr%3Afirst%2Dchild%3Eth%3Afirst%2Dchild%7B%2Dwebkit%2Dborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dtopleft%3A4px%7D%2Etable%2Dbordered%20thead%3Afirst%2Dchild%20tr%3Afirst%2Dchild%3Eth%3Alast%2Dchild%2C%2Etable%2Dbordered%20tbody%3Afirst%2Dchild%20tr%3Afirst%2Dchild%3Etd%3Alast%2Dchild%2C%2Etable%2Dbordered%20tbody%3Afirst%2Dchild%20tr%3Afirst%2Dchild%3Eth%3Alast%2Dchild%7B%2Dwebkit%2Dborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dtop%2Dright%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dtopright%3A4px%7D%2Etable%2Dbordered%20thead%3Alast%2Dchild%20tr%3Alast%2Dchild%3Eth%3Afirst%2Dchild%2C%2Etable%2Dbordered%20tbody%3Alast%2Dchild%20tr%3Alast%2Dchild%3Etd%3Afirst%2Dchild%2C%2Etable%2Dbordered%20tbody%3Alast%2Dchild%20tr%3Alast%2Dchild%3Eth%3Afirst%2Dchild%2C%2Etable%2Dbordered%20tfoot%3Alast%2Dchild%20tr%3Alast%2Dchild%3Etd%3Afirst%2Dchild%2C%2Etable%2Dbordered%20tfoot%3Alast%2Dchild%20tr%3Alast%2Dchild%3Eth%3Afirst%2Dchild%7B%2Dwebkit%2Dborder%2Dbottom%2Dleft%2Dradius%3A4px%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomleft%3A4px%7D%2Etable%2Dbordered%20thead%3Alast%2Dchild%20tr%3Alast%2Dchild%3Eth%3Alast%2Dchild%2C%2Etable%2Dbordered%20tbody%3Alast%2Dchild%20tr%3Alast%2Dchild%3Etd%3Alast%2Dchild%2C%2Etable%2Dbordered%20tbody%3Alast%2Dchild%20tr%3Alast%2Dchild%3Eth%3Alast%2Dchild%2C%2Etable%2Dbordered%20tfoot%3Alast%2Dchild%20tr%3Alast%2Dchild%3Etd%3Alast%2Dchild%2C%2Etable%2Dbordered%20tfoot%3Alast%2Dchild%20tr%3Alast%2Dchild%3Eth%3Alast%2Dchild%7B%2Dwebkit%2Dborder%2Dbottom%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomright%3A4px%7D%2Etable%2Dbordered%20tfoot%2Btbody%3Alast%2Dchild%20tr%3Alast%2Dchild%20td%3Afirst%2Dchild%7B%2Dwebkit%2Dborder%2Dbottom%2Dleft%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%3B%2Dmoz%2Dborder%2Dradius%2Dbottomleft%3A0%7D%2Etable%2Dbordered%20tfoot%2Btbody%3Alast%2Dchild%20tr%3Alast%2Dchild%20td%3Alast%2Dchild%7B%2Dwebkit%2Dborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A0%3B%2Dmoz%2Dborder%2Dradius%2Dbottomright%3A0%7D%2Etable%2Dbordered%20caption%2Bthead%20tr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Etable%2Dbordered%20caption%2Btbody%20tr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Etable%2Dbordered%20colgroup%2Bthead%20tr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Etable%2Dbordered%20colgroup%2Btbody%20tr%3Afirst%2Dchild%20td%3Afirst%2Dchild%7B%2Dwebkit%2Dborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dtopleft%3A4px%7D%2Etable%2Dbordered%20caption%2Bthead%20tr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Etable%2Dbordered%20caption%2Btbody%20tr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Etable%2Dbordered%20colgroup%2Bthead%20tr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Etable%2Dbordered%20colgroup%2Btbody%20tr%3Afirst%2Dchild%20td%3Alast%2Dchild%7B%2Dwebkit%2Dborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dtop%2Dright%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dtopright%3A4px%7D%2Etable%2Dstriped%20tbody%3Etr%3Anth%2Dchild%28odd%29%3Etd%2C%2Etable%2Dstriped%20tbody%3Etr%3Anth%2Dchild%28odd%29%3Eth%7Bbackground%2Dcolor%3A%23f9f9f9%7D%2Etable%2Dhover%20tbody%20tr%3Ahover%3Etd%2C%2Etable%2Dhover%20tbody%20tr%3Ahover%3Eth%7Bbackground%2Dcolor%3A%23f5f5f5%7Dtable%20td%5Bclass%2A%3D%22span%22%5D%2Ctable%20th%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20table%20td%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20table%20th%5Bclass%2A%3D%22span%22%5D%7Bdisplay%3Atable%2Dcell%3Bfloat%3Anone%3Bmargin%2Dleft%3A0%7D%2Etable%20td%2Espan1%2C%2Etable%20th%2Espan1%7Bfloat%3Anone%3Bwidth%3A44px%3Bmargin%2Dleft%3A0%7D%2Etable%20td%2Espan2%2C%2Etable%20th%2Espan2%7Bfloat%3Anone%3Bwidth%3A124px%3Bmargin%2Dleft%3A0%7D%2Etable%20td%2Espan3%2C%2Etable%20th%2Espan3%7Bfloat%3Anone%3Bwidth%3A204px%3Bmargin%2Dleft%3A0%7D%2Etable%20td%2Espan4%2C%2Etable%20th%2Espan4%7Bfloat%3Anone%3Bwidth%3A284px%3Bmargin%2Dleft%3A0%7D%2Etable%20td%2Espan5%2C%2Etable%20th%2Espan5%7Bfloat%3Anone%3Bwidth%3A364px%3Bmargin%2Dleft%3A0%7D%2Etable%20td%2Espan6%2C%2Etable%20th%2Espan6%7Bfloat%3Anone%3Bwidth%3A444px%3Bmargin%2Dleft%3A0%7D%2Etable%20td%2Espan7%2C%2Etable%20th%2Espan7%7Bfloat%3Anone%3Bwidth%3A524px%3Bmargin%2Dleft%3A0%7D%2Etable%20td%2Espan8%2C%2Etable%20th%2Espan8%7Bfloat%3Anone%3Bwidth%3A604px%3Bmargin%2Dleft%3A0%7D%2Etable%20td%2Espan9%2C%2Etable%20th%2Espan9%7Bfloat%3Anone%3Bwidth%3A684px%3Bmargin%2Dleft%3A0%7D%2Etable%20td%2Espan10%2C%2Etable%20th%2Espan10%7Bfloat%3Anone%3Bwidth%3A764px%3Bmargin%2Dleft%3A0%7D%2Etable%20td%2Espan11%2C%2Etable%20th%2Espan11%7Bfloat%3Anone%3Bwidth%3A844px%3Bmargin%2Dleft%3A0%7D%2Etable%20td%2Espan12%2C%2Etable%20th%2Espan12%7Bfloat%3Anone%3Bwidth%3A924px%3Bmargin%2Dleft%3A0%7D%2Etable%20tbody%20tr%2Esuccess%3Etd%7Bbackground%2Dcolor%3A%23dff0d8%7D%2Etable%20tbody%20tr%2Eerror%3Etd%7Bbackground%2Dcolor%3A%23f2dede%7D%2Etable%20tbody%20tr%2Ewarning%3Etd%7Bbackground%2Dcolor%3A%23fcf8e3%7D%2Etable%20tbody%20tr%2Einfo%3Etd%7Bbackground%2Dcolor%3A%23d9edf7%7D%2Etable%2Dhover%20tbody%20tr%2Esuccess%3Ahover%3Etd%7Bbackground%2Dcolor%3A%23d0e9c6%7D%2Etable%2Dhover%20tbody%20tr%2Eerror%3Ahover%3Etd%7Bbackground%2Dcolor%3A%23ebcccc%7D%2Etable%2Dhover%20tbody%20tr%2Ewarning%3Ahover%3Etd%7Bbackground%2Dcolor%3A%23faf2cc%7D%2Etable%2Dhover%20tbody%20tr%2Einfo%3Ahover%3Etd%7Bbackground%2Dcolor%3A%23c4e3f3%7D%5Bclass%5E%3D%22icon%2D%22%5D%2C%5Bclass%2A%3D%22%20icon%2D%22%5D%7Bdisplay%3Ainline%2Dblock%3Bwidth%3A14px%3Bheight%3A14px%3Bmargin%2Dtop%3A1px%3B%2Amargin%2Dright%3A%2E3em%3Bline%2Dheight%3A14px%3Bvertical%2Dalign%3Atext%2Dtop%3Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAdUAAACfCAQAAAAFBIvCAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAMaFJREFUeNrtfW1sXEW6pleytF7JurZEJHxuHHcn%2FqA7dn%2FRjsc4jW0w%2BZhrPGbZONmAsw4TPMtoMySIDCASCAxiLG1u5KDMDaMg0pMRF7jXEr6rMPHeH0wgWWA2cycdPgYUrFECAby%2Frh237p%2F9U%2Fu%2Bp7r6nG6fU%2FVWpzsxS71Hidv2c%2BrUqfM%2BVW%2B9x%2FVUVZUxY8aWnVl11rzF7GPe%2BWEm96PCI0MscNiaxBIUuD5r2roMF5%2B2%2BpZVg0xXCg8tc8ZuxzNWnXG8635Omv6j72%2FWGPxj6Mf4Sbt%2BTMUAGxWje%2F%2FgLQnG%2BvFIOCVf6O%2BdTbLCo3f2Qr%2FisjZFV7LVLMSicIa8GYKsncVZAv4PMiutKFmz67AC8ECg77Em4fNBuy%2BatgKkBo61M2tY44Fo4BvfjdgtGWGN76ofs9dBwAfU6Dw%2BUPiVjCdcwaObSss7KPh9hiMAm1F6hJb%2FlICHOjTD%2FSVtP25mom50SyoYwK%2By5mzLOUrJ2NoroUTe7kmn%2FVl1MVmRqKxaXpygKB5dWVlFrb5mQOydwB7i0J6ubFjh7npdh1XXdKUdEAmoj3W5Db4m4QE1LVCapO1XgH2D%2FkB08JF83SNM9ZhZf5I9%2B7Rz8J%2FI3IIfrMb5LHcjByu%2BUvGUKxQ%2FkcaLYdZ40f8JWOkw%2BA4iEBtlYSmddP1HFw%2FdKtShd1YQrncW61ZeqsIAcmYleEIEKAhx1ry8ND6aFh%2F8V9VHtiPdBPGObFcRVTzQgcz40RO7WEpW0ba3k2z3i6zBvlL9xO4ka%2F1EVnLTSa%2Buo%2BmkNzrwWDyPcz4lWOAxAp2%2BTrKORXoPGvm6d5aKpzt50u4573rAOfhP1CUXfpbjl36l4XWpysmXBCr6PbGqqsTnSRvReJFj4Xl9rvYfHFko%2FqPrb9YYEpV1CsKxTiSrXhisap%2F%2BC%2B6uu%2F8CZVz1iWlY7fGdnKxd2eM7WS2lcof2ANfjrBHRsoomvoE%2BuiF%2FpXpsCFnJYVZIVk7UsM85PYeLXYofPYf9H42YsMdtUq%2FMTd79Ho4bf2S7Gq9PVRxDC6lKG1VpVBV9cvFXGr6oVycSFZ%2FauXWquCnKooTpFvcfy0YiWVX%2BI%2FD8UOPXvp%2BE5%2Bom3JHt0IXP6MxS5U%2FAqovYd3l62%2BltAxkkq6q7T7LR3xT%2Bcz8gICtekEZU28Hq3d9JkEXhcfclufMmmZusgqh%2B5ww%2B7k3Vwcd9XbHh1JbiELt3Fu67QYbvmRs%2FCg5by%2Fr3TnRlZXhu7ijl5o6qlZ%2BrQrpkGp3PTVTZFKpwyqWabnH%2Fce5T6T%2Ba%2BNhiV5b7vOiQWG1XNvGNzngqewJWX%2BO7%2BPupIVbDas6n8HPju1ZMXmrvkcJ%2FhQ1Ya89RaqlV9P%2Bu0DacBdfrcx5rlPXMqW5%2B%2FVv8cfLHuP4t%2F6ZgDdhPFR8DGRmRoMk6R6Yc9MgU65TdN%2BKH32y1gyJruJn9x3%2BQ4%2B1zUvkZZYoyqq52HfJR1T3OUca8Ss9VrVhgoR1nngEaUXl%2BEwnEj%2B5Lg7fIsNx%2FsEWwXdT%2BI%2FD8UOO75zqXdKad2WS2XFS9L3XHH%2FH3m9r4nePnO%2F7Ys%2Fk6qErLYy0lJ6agZeeN%2FwwccYGT1QoEPwJqvCIveWiGhaw0jqw4olppFhqa8b%2FC%2BdTSMfJ8SlX%2Fp%2B918A8%2Bor5fxP%2FNTuvM3TtoeHe%2FThlVC9NKslFVNwNc6blq86mEHcyuYlSiOqOvmLPKAkLhPzbxCP6j62%2B9f0qwwjHOiiWI80kKVVktH0mD79lpNHuEPZ9yx6Q3iKpAKUiIS%2BdKK4ZmEpg0z1gZ%2FjhD12TDPydq2A6DMfTF%2FCCSlRZO0fLXPJsLM9o5%2FJ%2BS1UU8jHffrIaAVo2H93qXRX3g%2FV5fZeaqtAxwpeeqH3Trtr4z%2Boo5qyzjqus%2FuvixZ5JszVn3T9bAuDz2jM54qngC1XyGupJhFtiO%2BapVZZeFqvBG9bLT64cJ8zEW2juBk3sMRUbTMA9ggQX%2FxuNExVKRpvwrklXWFA5ZaUTl2d%2FRNOseP4pZYB18QoGHvnMyyNx5aXCbSf9x47s%2BV9Vv%2FQ2nBFacueFU%2BfxH298aemcj%2BAollosRz0QwI9ygM56qmBNbdKZpA5nYorobKAtV1yzEXc4xMjWQ2Xzu%2BE7FzK0BZnfYN3ezIOaa7cYL%2BL91Kw6%2BwooX2cJdqES1Yl3fwkumIJzZeGJX6gvVmzcdfOOV0JL6h1jjlZuVAa78e1Xd1scYiWP5mRhHlc9%2F9PFYhwhrwqz%2BfBOLKP8AaClJVcxhKRb%2FbHAgM5D5bBD67tR1UFX8XUSS8JcpqS8QN340V4kWuHQHNRnlvBhKfbH7Vr8H6fkKWPUwq6eGeuYgy1ZNqcPGOz6%2BR9SZ1V7of6CvfPi4Z0Y6zuSjamFa6bv2XhUpNzRDI2ruGXdyLNC1U%2FVs9fxHH4912DsxkOnMds9tPgd%2FPNEpvw99qvKrPL3r8FZaC3Vl26BE558ratV5h5brrxqrSjZWe2oL%2FbGSS62BPrSGWgP31eFR1ZYP7%2F23Jv5tWjqelgG%2BMe9VoU1C5X6i5fIfCh7GYRjtwIM65C%2FhnJc6S%2F9XnldPHdKgJoWtn6q6WQa0qq4yZuwG%2BY%2FxN2PGjBkzZsyYMWPGjBkzZsyYMWPGjBkzZsyYMWPGjBkzZsyYseVnpcgqGjNm7EYTNd1MEGK0kaUITo7BMiNUZj1D6RBgIRmWfxAO%2FFpHr1Vl6qOHh2WCxTJWwxWpzzycMW1rU6TJ5QMexTRpz5cqLpp7Tvw4WJlhBGp%2BBo7p79qA4m5Bmngs%2F5fXJWZFOsN86VmYRFb3agsKnuuswqLabGc2wig6q2t%2BjKX3TfZN4tc1P6Y0CV1XT7c%2Buvjor4tXpcgXo5daH5QVaUf8fJhRy0f8ShZltOdLW1lj1bW5cG1qRVxmL77HjjgmvE9R%2FzPNIBmL4pz2%2FS4zGXS56nQyJ70tVuA43%2FnhhXCDWLVTsHLHWSNKIav78VHwuOp%2FIIMipCx1YtdARq2zGvoUS986vnXcXu35aXmpqlsfXTwuQ3eviwCdg68rVx9cjSm%2F72K8qp0Ka69yLaEXBOWD7i5NogZ0pBfagNRNqJFxxsqEFfWPwLL%2B09uwHqe3jaYjJJ1eWCSe0SKcjaeJvbvxVmCVVIo0mRsZbeHSfvd3JVC1cDG3mnyFKyZVeNRZBYmKOKvFKsJysjg6o%2BzmrAAX9OBrN1HQg9KAVKq66wPik8r6uPCT1iQBH4jbAtCO9c7Gmb8KgVM%2BfqdTH%2Fyu9bWEasxz4a06Nd5xLnewJl9aLgT0WD2Vqon8Ot6IYncG62CUwRrSIF%2FgCGtkgnsnosow2zrYZMcO3HPU%2FiPwqxhxq40cvmkhMjI00%2FaV%2FG5xiVySOYQtkapLVRdU5HNTVb3sG3VWD28VlUA7vFWus3rbPl76oT28l06y2%2FaVj6ru%2BnC8vD4Cb%2FWFUMG%2FT4XH2hcKkKBASfsT6vpA4Buj1ydHk5BqNakbb68qVa4%2BFe7kXqsqkWWbd4sS5D7Nq8qnh9fhq6ASUbCGlDUMzYSvyueGPCTnI541tkrS2bvxqGrS9jZl7inw218N%2Fe75%2B2RdsdMygrCWQjrAh6pe8igqsjo4SsrB0VkV1VPprIau8tLvS92Xk%2BgMXVU0X8ZyaqQIe9z14TWS14fjYceRL%2B1585dWnQL%2FP5PsR790%2F%2BRHvwQRrA%2FU9YliQHhQVZ%2FkNwJPM6d8qumNqgkP%2F0mw8lE1zh7dUfyzR3fECSoZKDuzd6IZZrcwKtdQ8FVVjzwQWaTGlIj%2F8bZ2hrK8%2FmKhznTC9jV7MiHrLH2pir3s0qaWj5Q6KQe3zmoyT2uZzqoVE5InEAzWijBJLnFcKMQlb2pRH8sWpuLEltWH42E86rbr1I2LlGV43EFndIv7J6NbZDvXuNsHHvmrqvpgcshjZLvsG56mlmoIoIpQuUZV3SSUF1VlSr1JNtlU%2FLPJJlp9qqruehS%2F3vUolXr3DHZmdah6zyC%2Fm3sGfdu%2F353R5d2ebHiTzlX1GloX7%2Bisiscu11nlsp9izM7nFX8lu4aOEJeoD253wLdAkNfHqb%2B4Uzne1nzFunMl2j7LFl%2F1byOn%2FJ452FykRVV%2B%2FwUv3dqB93QSKHKdW71RtRSqWnUDmQP7T287sJ%2FL6B3bIU1yVbtd284wVNPqYwVwRMWR1T8ALqz12mMbzupQde2xzeesGEaAsoCZ%2B7I7D5y8HqqKTF%2B5qaqrs4r5U97TYn24Ui%2BMSl%2FL5w4rGd%2FUaKUyJBf1YbWjaZALrVXVx6m%2FuFM5Pr%2BN0IR9NxOqNnLKB6m1enX53u354H7lm700rf1vxKgKMUqcrYAU0Qq1jF6xzJjjwH6jGB6jaR4AQ964gTXA%2FzUUPFDv2r6dcu8vxEe%2BHv9Z62vgq7WUlzWibUsKgIsTMuWnqp7OqjUswt%2FeP%2FExJx8CD9Nqw5NRlPrAcBdU67668PbGCiq8837RST9I1ded8qspOrT6urVcqfn5%2B%2Bj4So%2BqOjPn0bQXVUcVbylY8MQuzMOLvLHqKgJ%2Faotc974YP33f44mOxUd%2BQXtZI8ZXERIvM6rq6ay2vyHKvOOP%2BD3f70P2ZwTFdQkq1P71dV%2F18N6uK6tRZeuDNcJ3rzr4ys9V6Ybqy0upij9VnFeLGzFqXMfGUzUvHTyrAXo3UF7W8PeqPBMsU6QUvxVqiFVVOPzcEKrq6Kx2LIoyh1%2FG74dfFt%2F7adrru4qu7qseXp%2BqpdYHE1IDGTUeXnak9k5sPkfXuV36Z4X%2B9Xf2vHMO%2BW4LelR1Tz2KPy8Pk9Pb%2FXrGsmM%2B2v4Gzp8YYrYjN9a7Y2eS5mu%2F%2Ft6bVJ1VlwJqkPepKi1UPRVd3fro43V1fa%2BjPt2o2k7QrQ3Z%2BA4dnVsNXeKUBzolL1%2BbDK7rU%2Fd6XTZELtRtroeDrMTsRDdVxowZM2bMmDFjxowZM2bMmDFjxowZM2bMmDFjxowZM2bMmDFjxowZM2bMmDFjBeb6o%2By0Pt5KEzRo61BQha4rq6dBmzsnnUdfrlhLodptTKuFmDVJLn0sd0ZGdafebSRTli2lRY0tO8OVCkMzSS0VYAfPQuvfUp3VeDG%2BiNKTVLFK3ZU7aM6KnDijC0TqWfiqSo2CGxdvO7TnwP7e2RBZwpo1jB9Nss3n5Eu3rMmwTX%2BdtTuaqr4lULqUjgBkOUvuaJT4gG7ntEQYW3qvxWdWaOgsrn8SpSdDAxm6CnAhXk3WKLNXSzKqWKU%2BVVGCxCXi9rBegxCbcDgJy73WXiOQzpbYhBUUKy5Al9TxZ%2BpD6nolyZQaBC1QcgsKloK4S79Y%2F4gKvIWCpm7TwRa3Pr271z2L1ZTe0ajwxWVTFnZSl9cVo5JMl3qq8r3WNSU5VVFTIKKhAlyMV5HVq9nKS9X2J9xomXApF8O0Ckq3lHKYaKHfDZ7unU0wykYMos4oZh1fpFI18QcvyS8vpwJH7%2BQrGPOqi%2FX%2Bo7EOtngJHDEi6L%2F%2Bs6hlU%2FD6CzWFkAqt1jpU9fZmf77wPSuKNxTJURXJp6cCXIyXk7WyVEWioaCnc%2FzgvKzvcsbf3lmuczj6G5UcJoZr7ez5%2B7b%2FraojcFPVijWdBE3gs1SqYquqRNyKW05noTVR0lxzxxrtADVQQkBb8QA4yaiRVjGqFKqipK%2BsJvamNFdzeR5bmse%2BCp930lWAvfEyslaWqrbu7DcFwcI3lIBq78TU0NTQ3olkXn5ZZrftQ6mrX4LAaDthLszH6iaGTa4KaZ0gHqcWFMJVlqq6Gha6AapXcHpzA2A%2B9y%2FWIqTUJ0%2FySZ324drbsueLHBt5BYmKm4AEFqw6G89CemT1w%2FuTtfJUjRf0n3HCo%2B%2BdPdC5iq1iBzqFgrAi%2FL26%2BW2rL74B0S0vUNwd91fBRFHzx7TNkOL%2FNcnu%2Fh83n6q6Ghb6qhf6AW3lAmD0F0j9pR0lQZ3a81a10iHJSLzUm9e%2FpRIXtfdACCJRo7YAeuPFHN6LfOvfklTWB7%2F%2BLe%2BzKk9V%2FV66%2B9KmNvy6qa37EiHI7otDd4QCa9F8aKImBUhkNY5MRVngeRKRjifZxqM3n6olvSrTPEMnQK1sAIyEG5liIXcATLtXVxooBCX40ttDEN%2FmjzQUr4MXg4Hm%2B6O5M1y7%2BhSTD4SzpPvQeOGt9Pq3vM8qjaq9s6e3UUa80qgahTzx6W2nt4UfjhK6g9DfgxxnP9%2BJzB7D%2B6ikuB8SXrEPKUSKfYZ731WOqtaYHXyNUQitm8%2FVPUMnQK18AIwZdXcATLvXglGwRa89kT%2F%2BeCvWeKUNIr7b%2Fpdn%2Fd3kUxHVC%2B9P1NKoauvk14gNLtTBZnFqW%2F3om1ngo8BHzaT9Q8Ps4eeEk20%2BB3vo%2FD0prRSwxlqvJdmdv6dQCbuMB%2FoqR9Xm3F3rB8CVyAAvlwC4OANMFwHUzQB3gbokPzh%2F%2FPFNuSlcxK%2BrEeSjELUYLyOqN1WHZmQ3Jza0EBtcEGgx7wp2AkmSGGaURUlymJjHPZB%2FvTH4d%2FbcXPJXS9YenlZaBcRIEBNL%2FJxn%2FlqJg82hnSQGbaTkeLeLydIgJQWcyw1%2F3Rlgan3UVHVUHIGB9lFKWq%2FoKkg%2BKlHdeGtMRlS%2FEMAf7955hpNV1RTFfwKhLYYpkcO0DmK%2BrmlBqNnzfHFgwb9GrQUbJ8GfH9QrCZjh5zReUbZ5C7R4i85IKZIe7iPEdF6tlT9AXV4ZYEHVUupTiqpxGahqZ55COsVyPGjMhsoZUhVuEYUC1cp61BaU31DOpsspEafyWxUrlW4L6tJN2VgB%2Fkghh6a0uX8w5o3nSQ%2F3gYmUcgacyw2v73NLz6HVpxRV41Iy8MtUCVj9ZwDGtNqzRf0TY8aMGTNmzJgxY8aMGTNmzJgxY8aMGTNmzJgxY8aMGTNmzJgxY8ZujsFqucCyqMe0eRbGjEmI2nhR%2FHG6FDdmTYPuyzRFFsxGn7Euw%2FqXMzQ8LucGaZThkjub4WXQkmmasrIxYyU5%2Bbrm7ksJ6coR7obNoDIUgX%2FNSo1DlOxuxtV32QT8D%2FgMRcKk%2BWOQRvmKgrSGoRNgjuA1djarJcu%2FXfgzuKpUq%2Fx57MRgjX6dmqhhorKyW1sW20ofqz5LDw%2F327dsPDLvLTS%2FWYrnS%2BJoZ1GwrvZM08R4nFand95Qtux%2B0ckDH00N9c6mvpCPkbgwbCAzmsaF1mHFiklUiBnIgGh3SqwTbbyorOjBqK2ZFHhJTaTVuaW4fJ2rVTd4y4ZTvbN%2BMp0C35UdP4prB1cxaw%2Bl%2FL0TQzNd2eM7Wa2VblPeAZe60pFBF%2B0fZbpYyll6%2BDgsJ4J4iTwNEms3SxV4kZ2D3sJd1vkks6V4viSOdhYF67RnmFQjd%2FuTO2%2FwH8n98sJACwjIeqFfVtDa923hbnyiHUjWte%2FLaB3l2FpnLV5UQW6rry2HDCmD4JavQB40nVsq1Dl4S%2BPFxovn1sGysmoFPsUaISwHAaxWdMs6Zfmw1A%2BXwnESbjglb2gUssrpU4QoMuhcUYfLXulhaWfp4fEa7bhGl7gzgLN2s1RVRBlWuGySUcjqhaesV6Vj3e0ZJZJV4OWqZY5xqTSf0p3Cui%2FtvlW%2BEA2lJIZf5p9RFSHC5LQ%2BvLX4EcnVdNd86SDXLMibAkc8FnTfQ%2FelwVvUeFRYbWZ87AO3PKnET9qhr01U2QJ8KHc6zNzjX1jaFQik0%2F5qN3ewtLN08bzlEyC7CkFY382mqnDZJIkaXnhaq1Kx7vakkdXB62qseJTuFObWYPAzFD0R4l6xD%2FEcf2xssSvLl2W7H1HiG9k4HGc4VguHkSv%2BOU3L7wHrL6OqwAeejwCWb%2BgxNHNunWIUmwyhHut0WNncjRfbc4r9yfzXdkXAbCtAXIySZbgcLOUst2PRruI8pyiGwmn1SFZZqnKXpVHDC08VN6Nh3e1JqZE%2BUSVk1SNqVdWGs3w7DEiv2FtiyMLB7rnOrMcjysrG4aEZHKvzAixX6XM3TlQZMQR%2B3dTpbRAmx7uyeycgXK2W45%2B%2BtwuSYu1CS0oSvm845SW3IQ%2BYhYAklapRl5uoz2o6qYcvplJYKSRTeaoW3rN%2FDOSNp%2BsQUrCFRFVnX0T7g%2Bi7psZKz1zR%2FeoStapq306uqNaWU1U7frc%2FtvdPibxomHNz%2FRdk4fXGo32TDjbOKFQNPBbN1V%2BeNMnv3BJiNfj11BbWIKNeTguq9vhOjCU4UWVqRrw3dG%2FnpO5NedvTqepgKWedW6eHL6bS0MzH99x8qrrvwT8G8sbTqUrB5uV13Eenuv3jTO%2FlnZWOF94vfz2jQ1TcoGhkymlmSLrU%2BGPHnoH55tniRzT2jCy87vjz4fWOsmCSRNWew3sneP2jykdfcC81%2BOKJQG0gK9ckalbUSKi8ijPVYQ8ihZAqxakcLOUsoftIv0rSta8PyLiFVF5ReaqibyZJw4kXnkpVGlZ3Vx%2Bn%2FcNM52VNuPh%2BA4%2Fx1zN0oqK9kxCPHLK7QanjNvTO2sFyzN13yaTKNpyNstW%2F7b8g0PKdXDBIwEwlTKoaWDXqkmOoocbnk0CgSEjDgwRai7p8Tlbcyys3V02rwx57%2FK2mqB4XY2ln6eKF4Cq8zuqkyLhVmqrcN2nDiReeGqvQsXqKiPpk9SAqzAw%2FFa9ndOTHWPWR7Tju9cydT6mwWM0I7rA67%2FRdMvzJjV3ZcF6wuCsr8sc%2BwfgTuEGU6NtW2ptF7Xvi5uELkwK0REIuyCaoHi%2FF0s7Sw%2BM1Np%2BDqUHjcnhZI9yVFvd54Sn0o2NLURR0yKrzsqbgfq0AzvC2%2F63q9YzHxSEg7Jk7tkN9HsqD7p0YyHRme%2BY2n4MkTqf8HFZzagv%2BuQF3dXCYWil6xYH9fPotlHcP7Gcrbh7eTVZqxi8fZCtVj72wlLMEyn7Nr8Tb6sUdsmmNl%2FM6X2l4mqMLd7XqaHGfg3I%2Bqemngy3NeKvrvKwput%2Fdt9p50MZSBD0hIOyW08gdBsOsOgX4DopKL2zMFMpJa4fUDsNWQLlu5d0VNxfvNDc14%2Bc4q1r12AtL0UrmKP6cVXiaevGNMXedKV7qoFyf1KOeBvZ6yKrzsqaoY4IGqKkyZszYjeh2qiuHNmbMmDFjxowZM2bMmDFjxowZM2bMmDFjxowZM2bMmDFjxowZM2bMmLEym65O7%2FcNb59Dlp1cnvWvuA8FoEYxnda02A2oVVr3SlbMmlyuNM3p9MYZTaf3%2B4YXZ3EZMXp7JrOdWZ36VAp%2FoyzwEUhYfkStC3XBXMGdZ%2FT3fXj%2BPr0rWbHAAuhkTt7Mrobvb5ETbA24WrRYK0al01sani9qw%2F8rU34yL2pW7vK5OPNKG7tyXq3b7%2Bges9SJXQMZSn1Kxe%2BdoOkq2488o%2B0yGtSwJqNK3aPrpWoUBU%2B19k1A4tGvBCMw4BPgpU%2FfW4n6U4nK97ewh4ZY00JeBg11evllhR6QXKfXwbudXYXvnf1kE67f%2FGQTLrClly%2BEoNR4WEUKomYndtHrT7tftKaTHYtIiiR76CUQO5VrGOd0jzfegd9tvIPFkXzy%2BgidZHthoQbeirVeo9QfhcebFqLajkWnhjUcyoum0UJyXVe3%2Bqw9qF%2B5mtHDU0G8E7uGZij4MAggIB6F2W8eVdc1xxdxfwssH%2BsfX1zXbP8CdXqdy6p1eh28%2B5Dju7K49g7Xb%2BKaPRxZaeX3zn58D6eICg8SMCusPVaM1fK19pTyhQCoSpfYqguz3S%2ByBpvejQ%2B91HpN1tBc9xh6QxTlTMP%2FscNbVfUROhd8awUqXjgitpBcV9maXA0uqO9YVGpYgTULzlNrvUYZi3VcHZQx54MgrZ6XcSeO9m2%2FEsSjL%2FEHUb%2BdlFXYlaMqq0HJvUROWteuP1%2BoGlsUI4wNy400%2Fjq9Dl4canzCFRY1nUwQykf5rYEMEnx8AKmtwsO4wkJXezZbdVFGqb%2B4A7UuMYq0JHFGyA7tObTHAodJSGcpXPeY1Q7N4J41sOofPkPDfyPHw3X2WAHcWqHpJBGfIyo8yAYZHgPfkKtzUsl2uTFUagQ%2BSri6bRgRPiqnq%2BPGI4miKK7pCsnpW0amaMRz16n1NfUc1SpqUcq8liaahugm1%2F0mUOqI47vniptMrtNbGt5RlOGqMSr81BCrhyCvmjukGp%2B0FY9YfdNJlc6wwFsFUYQ%2F3nEQqFG9Wg1I6B7z%2B%2BT33ZmV1Qfx1p5WtopFc0KSBLxD1Fo5vulKVEu2ywurogaX23R1gZ2KGXChq8u3uuoLL6lP7%2ByxHbQsLmuhEFVkiXODT0hNZx0RND0tKe8r2L%2Fo%2FZNoMsF%2FuU6vg3f3L3J8V9ZRbj23DkdJVfkBO5OYJ6oSjweEaiys1Bl28O5m8cez%2Fs8G7Zlwv2WPrKj6JBP14LrHVgxHVBxZ8XNCWh%2FET4cxcOdqOgT8mJuocvyxHY4ibqlUVVNDZ5ycGnILx3Zlp4akQezbmLEYmcKYRugSQyvVliOLW0qWuPJUZf0ndjkt1DMHCUTubajTu9R1%2FXV6Hbz7kOMTtpg%2Fzt0wu5UglG%2FL%2F%2FcJotLq4w5o1XgR8Kt1iVn10AwmkxC37qcdi7tflDU01z1mtdDAMDeH%2F2vXnFXVB%2FAwh7ddEEQ61PjmguSHHM9qsWR30C8XHiue2lCooUdVVvPkU47nPPmUXDKoHXWmu2F0tGMa1V4IelncUrLEhW1D1CvU0je0Arz%2BvCOL4wYsfPqBOr3FaRaZTq%2BDd%2Fe6KnwUXnPg3G3lfJRYPu6WktCqj1793TGBXJcYI4HB0825lAkmmKSPJad7LDLAuFWIqj6ID92OLghjMAGPNYF62COqCm%2FrZ4X2TuCj108rqalRyuyTrRCS7yCCrhCVA6IG8xHFLM7My5fFLSVLXPm00u5bU19g%2FXmKqyub%2BmL3rblfOYrrNJ3e0vAio1Wp8iuH586OYXCSfbJJrbjo6B5b800sQqqPLt5OdBHxnODHd6oFSJcE2wRqlOa8rIUH%2FKxFiQy675z6EoWeTNLNEt%2BADDBEWCipa4%2Fatae2uJQLhU5vF1Wn93uGF2dxdXoKUuged2vVp1J4JxDWdRpa4Fua8x7Z3jMnn6V63Xl5srjXkyWuPFWFjmhOW7mm6K71dHq%2Ff3gx4yBjl2P9q%2FVdRgvdr9VCqCJdAWFbSha3mKz6RNW9W2PGjBkzZsyYMWPGjBkzZsyYMWPGjBkzZsyYMWPGjBkzZsyYMWPGjBkzVgaDZXN7TCsYM1ZICw1dWVC6QQmPPvtzn72m%2F6DGlfrg%2FDNqWUZc2dpzuOL3PW0xqhwm1PqMVtkZlcJBHsm8P2tcK13GNnkOD%2B%2FvvpO%2BHbsxisPqZ3TdT0lXFzf2Ye9sfDEIq%2BytySDoqfXOxj4kXWUMnTfI2tidv1evSQi8FGU%2F3qbRAUwjleD%2FPh18x%2F%2B98wrtj9KtsQi0Dl3a0gpwsU01Ta0CVY1kSfqyoDYx7f3UoPtlHse8f1m9R%2FDw%2Fu67aO1PoG6H1DPn1a1SOl4QFddrXydZdXVxI%2Bzh53D1IwoQ4kq%2Fh5%2BLqB0y1nilmfHrbD7X%2F09qqq4F2cz1D9hjWZ2y6aaDrJ0hldqhK%2FBzWi%2F87eze1wtEkX3P4TKeoAZBHINZDW2ZlK4AiHASrmMPI8Y8J3i7z1NLeJafYOWmKldbLGV8kY824rdC%2F0gp47aka2qVyNlwmbtEvlUoMnF6eIeoOenV0skqdHFhmS8s6hEKDBIdWlu%2Frwkwzz797NOop9acFxXzf4yBhXhOKWbvxIP7w0Bx1aiHzdH%2BRlXVnb%2BXdxwYKLcXuGE7y4scE%2FAPPtJ8VIYXY3wC1HcHMqDG9xK1ZWlUXSrmIV9clVcFBBkPR3sKjw2n6F2BrF7Q2wWdBd2F38laNczU7bh0fJGPNs5vWUjIzsjr339h6b0Ov6zb%2Fv5PQL897auEuMQLbXleYWvkvxO6uPFF%2FC6%2BqNLFdfSL7nrgrgccXSPZpbmgaFd2%2FCjr7jrULJUd4zYeyfVBk%2BvfiUrnwo3vRmGcFuLeXAsI4oJ3qfhX1%2FSmZXg%2BdqE85%2Bs%2FfP2HttQmaV8WvnGGeusMz%2FCUyV0LZbJSX8Q3CKkRfCYgYxoqj2sV1oA0ZtTxyCxKIKtVl%2FjcGV%2FEaJP4XDEWQaSE7u7oGvmVv%2Fm1pfe6dVy3%2FS2JTFzPnF7n6n4S1FC5aHLDySp0cWEwr4NmVOriOg%2FfTVX5xTsWcdQ%2BtWV0i3W5TdnPWcPWQRE%2BhhiOgOGr%2FikuFCz5oDvJpu9DAtpiHXfbakUHKfjUV7DivsUfzw2FxkbTq0D%2BczSNomUUojZe5LVROW9JfTTIeDz7k9Uu1UI%2FopZC1cLfq%2BsjiJokkRXlSHjsBi54OSyVzGEhrlIIVOhwZxRkNbr%2FiaX3%2BnhCt%2F1lio6P%2FAKyLkw3A0ClKu%2BeChVBc2R1dHQDjwUeU%2BviVlVh4IsHUlV8lo9JCXgYR7YH34MkVK78w%2Bv98a2frJvCG%2BudFSNfnPlJRvdNwoz2X1j1QGb1b%2FfZwlGwSUTN%2Bn9Jsr5JP3z3JY6%2F96Uk23Icf%2BqPFwmlnrkZe5yfifTMRdTbTsS43Bt33pXzsnEYHXHpP9UD7eniRJ3YvX2tfQdvlS9g06OqQ1SxaQmdrPE8Uf1Se1x5WcfpxweK7xRGwZryURVKa2j7yvuc7a9eP1VzOtlFh%2F18HV3c1vxWA%2FIAFSlafEjdanNX9uHnAguRfOlIJ3981O5vkYL78j1kfIPfvGoggyPi%2BVTn%2Fw7aJZ9P4cgJVwj64SGgTiMex3fMMVtpf7xIKL3wU1a9%2Bdzmc6z6hZ%2FaWz3UyYiKgakY4zefs%2BeVMf8HyLO%2Bhf9UXUEgR9Tmj5vssv0zwJWlqkNUGNe7%2BWxSvd2VQ1Y5Uf0cXFYj3Jug8E4H3tOPavzLhzG1L%2B5zjmwAolKVz8kLJV5zMZOujm5V1WrGD6So%2BCy9eH3%2FhWaXtH9X9nxKdUvYGHf%2Bnq1wlO390OdTvbNtLPA8nII3Fg881gaP3%2F8KiIcEyLuv%2FxCdhdVbB8NSPCaUgKJw%2FQf3P7gf7wbJJ9vvLLDQmQWJ745czTsO7O%2FMBhbKNapiSCTkM8cjuBFRkzQDXOy44hn4X4HvpwcZ1z7IL6d5d%2BNPug2nckQNOakf7wSXF1lVRF3q4JgJzonD%2BqSiQHPK5ehd2cG%2FKydVYUx92%2FsMaIOacsxVsRXd3%2BcnN7o6urpzVXxrGylI%2BoBAp%2FThiPFo306%2BcR2eI3%2Fom8%2B1wTiM73mty63gWLLHz8WxI%2Fa2E3f92Qq0MSGV7Z2JxhdSJzfi52bIdePXkxu7sjCK%2Bb6%2F3XAWpCFXiLrDllcrTm3ZcLZco6qgmi2HaW9EJM8Ao%2BPyZ%2FrZoMuFJZ0l77zDkPhtyu1WgF2UzLGcmXLhdyqyylrefb%2F5eZsrE0y7Ck6%2B5G%2FndalqBdp9znh0h%2FSVk6KDKWxTn%2B90dXH1qNp4sfvS6W2gTgd5S8xVqgWgT25EYoNoZn3ra7w%2BzjYa3g%2BddcBmVO8l%2FpD4w8B7h%2FYUpiA88ZCuuAeS%2BtsObWoDvKRGzR9jwm1VvhvDr6vsCKH5Y9%2FyO7B3FYrtOJ6CQGRHuUZVQbX8Jo%2BpgiDJ5xrq0cs9bvBx1TVdaVC8iAj5fad6Duo6uWvivLaR3S28xMqTuwnOmmwqJ1Wbj3rjYXirV4W11A5G1mRaurh6VO2%2BBE5Sk3Mrkogjq%2Fn4HiB3A87AemdpOrewTUIHhMBx%2BL%2BedI36TdAN%2FGwjkKhe1idHmd%2BjjCpe2nTbe42c2NU9p3JF%2FbnqUpO6bp0OUfkkYWRKbMQwMiWfrlTail6KhNTdATzTfmenP9ZP82YqVdde88Y%2F%2FJw6rL1OooqelK4rm2%2B2W%2BBQvlXSc5J851GTu1InXedW8xotTClIDZ1Lv%2BSQng1tWcvVbrVcsb80fVmp61bTRL0LzmjJzfhS8Km66jtnogXVLan7JxCFM2HXoeZNqAxErWijfQcftDFjxowZM2bMmDFjxowZM2bMmDFjxowZM2bMmDFjxowZM2bMmDFjxoz9%2F2u4KsiaNO1gTOYkgWLZCarynNZV6uyy6zRcFwRkdJzX1iee%2F64%2BhRBIyIR81S6W3CtZKy%2BHR53neZrO8zLFT0NXdhn%2BH9PyuTN2Gx0sqydraWHlz8rYyAyt9KVXs7%2BJjBQLTzbfr0X0PUh2BQokTLBsuXhJvoED6LqNFxsvhph9BYoOXl3o2vjRBNN4jJlcMxzU6Azmya41r%2BcgsAakBv9R0VQdJkfnOUHUeV6O%2BLav%2Bv9p5JV9T9zzWzXescZ3caU0LHMMSkrX1kkubXlF1F7rEyWIzRaWJ1YI8UJ%2BvWSB16%2BJzg594yoW%2Fmr3rSqHCX6ZyHUDwY9U5a5rhvWhGVxmhkvQrMwqtq5ZXZvA853ZX3YnSRLZ1suo5rrhFOt%2F9umRqTbSWAaaCJdv%2F%2Bcnn2omdQbN7Mmnbv9nGAX66FQFXZ1v7QXyhNqM%2FsY5lA6rqfNcKr53VkjTlr98EMwJxT6M%2FjryNUUQRvgnSgQNv4nLHP3JnWDutsQDqSHr8kGmr5jYw%2BquIMkKxNnnZX7Ax187qszwETXn17HPiqka%2B4zguOmVi21fJv5P97%2FGGatWadrF3es8FX0iq%2BmdjbrwsGhXOdZYsTb20EsYH1DGow1HhSLrxq2jP7nzL8H3lOVPr17Y9wTraH9Dpkjh2NBM%2BxusY98TqxesacIIzFAYpapq3%2BP%2FKX37%2B9BRnVHVpo2JI3RNHqcInWe%2BsDn%2FDMbUeEd3l4Lvyh7ZfmQ7X%2BVKK98RCFLhu7K4PPz1Hx7rO7YDZQeijBLbDN7CNS9RAXOlLzW6sk5b8gPJIRO0YSuETolQz2Ir%2FNG6kulJxn20%2B9LgLYO3dF%2FicZMYVT2WTUvcyp7ZBlnH3A%2F%2BNW5vnuEqysfa7naX3na3Yo7KintduOKkfJQMfglaBY0YH6h7Lej%2Fj4j6vhK464GHXoj9m%2F9GVnZpz7UzkJlZYY3ZAtL8mPSrPR42boyt%2BGRTO5wtn820XjuwH3XqqqpeDf588L89%2BvNfyHcrsPoii474yuBpf90mNKHzbJMjtHeCk2nt%2B3J8VxaW9IecM1X4JNv9IkoH7H6RiudPQF1%2BB3QYG87iUkpWs6lNSL93EDrMppO87NVAP%2F8F%2Fj7rT6XL6T%2FodmRyurIfdFOnKiTtJgh%2BMT6J2hPAqB2r5NbdWn1eBfkFbs1MKPTGXcJmKqomniroUZ6SYd9JFMrH8NDqnYR8lIwz1Cqwl4v3T42i6j%2BNqqz655HB%2F3L%2FP7Yq8bazNIhHeXpb5GsvdORrl4JRA5bPz5a1z%2FZXQ79DEtlLumsv3fp4p7w113z55FPOKmAWks%2FPuc6zmFGxBtzCBOKmRRm%2BdxaUmxqceZIKbwuR2EurWQMfcVT4Yqr64xPfJNkPzvPPLS9QdKpzHVpO7ptLzhzbUb65Kj6nid2i7Ind5VWZQLvQjyJKUTuixM%2FCuSa8CopMeBfSOytU4wsvK7%2F02k%2Fd6LWfysMWPui7DwwGKFSym%2F4%2FxLdEXk4qqSfCcPbvt%2FaN%2FiRJpLb1V9aQ9RfUVxp%2B0ws9%2FOZKfNB%2FAdRfifNVVGXBxDfWsFARYP8OO0NZamvgPRzfc99VW6vlbd%2BZLbz6xjuwfTuzMnz3pY13FLaAHG%2BrHjEeg3CRMBUegsZ%2BPobwMNsf3%2FVtErf1CkBK73LHn%2FNj2bc0og7NnNgF4j9xf8UO91zVGVVV6UlWPzKF5Y9MqQSCHC%2FGK9Co6oS%2BPAwWvdyHXlT129sNpT90qWodXBLQSnKjuAPc0oDcf6eYQirBmLP%2Bjj1r%2F238qAy%2F%2FljvLG59Yb%2FeAams1ZK5SWH5oWTscNe39uNs8Wwfe1zv%2BjZ2OJSkUrWq6oWfuretstKymRLkuX9mpTG5Bd1GfNWPwjvkZfM9XETC3xoLLESlOs%2BIj6Jy8Zh4UZBU4peOkip8e262iVMKOX7gPfx905W%2ByUd%2BESVq%2BzpEhalqrTzT4Z6rOqOqak8ljP7wCu8kVDghav%2Fs09t2bdvlfCdPpInQl4fBwrninrF6XHZzSXZg%2F8iUE6jKqGqNtS2hXpskLYDOXqyg6EcMj1GvoXvbbZ%2BlvmCN0lT7miPbY4vWnq3juJ2ffG7iLt%2BqTo4k3vceTwvH1sT7yRGrmkpVVr%2Fh7Mq8m3QsHt%2Fpj9394mrGZ7Yt94X%2B%2B23vrYHwTla2o%2FMMhJ0Wesz%2BOs8cn8CXKNPOmSp8MVXVeJA9j1mx1msq%2FIP7%2BXSrDc4YTbP%2Bzwb3TsjlTt1EVc9oS5mr8iDYnlgo5YiEUnbxIX%2BxI0JfHgaXHKtjv3jvj4BSnae3jR%2FFuYmMqm%2B2jR9FNURnGj6QGT%2F6ZpukqQNYUYeoUenLlHxAiyLT1aFNkZej7Mh2ZUPXPvTSbdceTyRIGePeI11ZlLUMrkk93MGOKV%2FAHOvrYKmHg2v4CKmmKgqSOmHYfz4hE1iz58shm6pX1l7d9BqGd9KSG5y2bCfoPDv4dndnScDTdKQFHl%2FbBT9KaJSfYIOPI0U6ZmR4PaKWNld1PIOG0tIZ9swA29OL4mQyphFkaRm%2B1xafy4KMYyNoHMKsYzTt3%2FsABtQQPxs8tOfQHki6pOC7RllvtPtWcL9O8Z4OO4Tdt0pcEfvAIPa2ic%2F%2FGj6EYAsoiojpdLgze9s%2B4qaKweM7OxZxhrpGsYmHeN00kFljqwfjCIm1U78kd78uoL2FhZdk3dBhKmujq%2FN8o%2FBRFtUsv%2B0rePGSuf1zGV6PqEvfq9LmqvwZUF7c6e5ugE%2FWrgNMNW2tSdt3bD8tLsqy09vS90o4HwsWp0bUAcPqhdULFP1CLi06MoUBwMiU3SHQzurMBS9ByiNi1dtfbSXMScQonA%2BU4iR8vFBaW6%2F3paAxvUese17nGSMata7y8sRvPtcz1%2FVt6HcPPyfHY3iso7db%2FF6VOleVay%2BXHmAnPf%2Bw0H7Wpcbq%2BgZX0igV9WdRj7aqYmaPdjdVjnrJ6E3%2BM7WRqcYr2I2RS%2Bc6zxjRNHxH8R0QQxB0qvkEQcsrS%2FT%2Fyqj6FntAqcrQxpYLsVsw%2BDXt8P2x%2FwdFm3wBeW40TQAAAABJRU5ErkJggg%3D%3D%29%3Bbackground%2Dposition%3A14px%2014px%3Bbackground%2Drepeat%3Ano%2Drepeat%7D%2Eicon%2Dwhite%2C%2Enav%2Dpills%3E%2Eactive%3Ea%3E%5Bclass%5E%3D%22icon%2D%22%5D%2C%2Enav%2Dpills%3E%2Eactive%3Ea%3E%5Bclass%2A%3D%22%20icon%2D%22%5D%2C%2Enav%2Dlist%3E%2Eactive%3Ea%3E%5Bclass%5E%3D%22icon%2D%22%5D%2C%2Enav%2Dlist%3E%2Eactive%3Ea%3E%5Bclass%2A%3D%22%20icon%2D%22%5D%2C%2Enavbar%2Dinverse%20%2Enav%3E%2Eactive%3Ea%3E%5Bclass%5E%3D%22icon%2D%22%5D%2C%2Enavbar%2Dinverse%20%2Enav%3E%2Eactive%3Ea%3E%5Bclass%2A%3D%22%20icon%2D%22%5D%2C%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%3E%5Bclass%5E%3D%22icon%2D%22%5D%2C%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%3E%5Bclass%5E%3D%22icon%2D%22%5D%2C%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%3E%5Bclass%2A%3D%22%20icon%2D%22%5D%2C%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%3E%5Bclass%2A%3D%22%20icon%2D%22%5D%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3E%5Bclass%5E%3D%22icon%2D%22%5D%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3E%5Bclass%2A%3D%22%20icon%2D%22%5D%2C%2Edropdown%2Dsubmenu%3Ahover%3Ea%3E%5Bclass%5E%3D%22icon%2D%22%5D%2C%2Edropdown%2Dsubmenu%3Afocus%3Ea%3E%5Bclass%5E%3D%22icon%2D%22%5D%2C%2Edropdown%2Dsubmenu%3Ahover%3Ea%3E%5Bclass%2A%3D%22%20icon%2D%22%5D%2C%2Edropdown%2Dsubmenu%3Afocus%3Ea%3E%5Bclass%2A%3D%22%20icon%2D%22%5D%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAdUAAACfCAMAAACY07N7AAAC2VBMVEX%2F%2F%2F8AAAAAAAD5%2Bfn%2F%2F%2F8AAAD%2F%2F%2F%2F9%2Ff1tbW0AAAD%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8AAAAAAAD%2F%2F%2F%2Fw8PD%2B%2Fv729vYAAAD8%2FPwAAAAAAAD%2F%2F%2F%2F%2F%2F%2F%2Fa2toAAADCwsL09PT%2F%2F%2F%2F%2F%2F%2F%2F09PT39%2Ff%2F%2F%2F8AAAAAAACzs7P9%2Ff0AAADi4uKwsLD%2F%2F%2F%2F%2F%2F%2F%2F7%2B%2Fvn5%2Bf%2B%2Fv7%2F%2F%2F8AAADt7e0AAADPz88AAAD9%2Ff329vbt7e37%2B%2Fvn5%2Bf6%2Bvrh4eGSkpL%2B%2Fv7%2B%2Fv7BwcGYmJh0dHTh4eHQ0NAAAADz8%2FO7u7uhoaGAgID9%2Ff3U1NRiYmL%2F%2F%2F%2FV1dX4%2BPjc3Nz6%2Bvr7%2B%2Fvp6en7%2B%2Fv9%2Ff39%2Ff3R0dHy8vL8%2FPz4%2BPjr6%2Bv8%2FPy2trbGxsbl5eXu7u719fX9%2Ff1lZWVnZ2fw8PC2trbg4OD39%2Ff6%2Bvrp6enl5eX6%2Bvr4%2BPjLy8v%2F%2F%2F%2BEhITx8fF4eHj39%2Ffd3d35%2BfnIyMjS0tLs7Oz6%2Bvre3t7i4uLm5ubz8%2FObm5uoqKilpaXc3Nzu7u7%2F%2F%2F%2Fx8fHJycnw8PD%2F%2F%2F%2F%2F%2F%2F%2Fe3t7Gxsa8vLzr6%2BvW1tbQ0NDi4uL5%2Bfn09PTi4uLs7Oz19fW0tLT%2F%2F%2F%2F9%2Ff37%2B%2Fv8%2FPz6%2Bvrm5uYAAADk5OT8%2FPz39%2FewsLCZmZn9%2Ff3s7Oz8%2FPzBwcHp6en%2F%2F%2F%2Fa2trw8PDw8PD19fXx8fH%2B%2Fv74%2BPj%2B%2Fv6Ojo7i4uL7%2B%2Fv5%2Bfnc3Nz%2F%2F%2F%2Fy8vL6%2Bvqfn5%2Ft7e339%2Ff29vbo6Ojz8%2FP6%2Bvr19fX19fWmpqbLy8v6%2Bvr4%2BPjT09Pr6%2Bv6%2Bvrr6%2Buqqqrz8%2FPt7e2ioqLPz8%2Fa2trW1taioqLr6%2Bvi4uL5%2BflVVVXNzc3%2F%2F%2F%2FW1tbj4%2BPh4eHq6ur8%2FPz%2F%2F%2F%2F29vb7%2B%2Fvz8%2FP09PTMzMz%2F%2F%2F%2F%2F%2F%2F%2F5%2Bfn19fX%2F%2F%2F%2Fy8vL9%2Ff0AAADZ2dn8%2FPz7%2B%2Fv8%2FPzp6em%2Fv7%2F7%2B%2Fvq6urp6en%2B%2Fv7%2F%2F%2F%2F4ck%2FmAAAA8nRSTlMAGgDUzwIP8SMQ759fCgUvqfDGFeIYA78fbxNTt98%2FhsV%2FBhdD4Q1rRI%2Bvwo3ATxJTD18IoKWasozTETbQ4D40IX5hC6dAMR7RXydvEsRuotKLkZCATYahkzOxQlFqmbZwJiUhFWy1wyJYcXI7gB2XIEFbgjxgiWFtfTSFMy8wSYgEqFBDTSE2KCpnSyZZUaZHRFAsDuWBYJJ7AVZQpC0Z6njBKWjdN4dlMV30iN8bV7%2BzJJeHMRiDYsR6U9yVYxdP2c1dj8CKFZZVFjtaaTxOI9cMKQk4NnBW4PKUOmiNI%2FkwWoQYUdQOSk6GvkUURFSM3n71h14AAB4tSURBVHhe7J2HfyPHmaa%2FYicCDTQCQRAkQWgABpMcDSkOw3CGM5o8Gk2QRjlZOVjBsizbcs5pndb22r7d23ybc7zbdDnnnHPO%2Bd6%2F4FjdIGu6vmp280CtbF%2B%2Fkkn%2Fnip%2BaPSDDqA%2BFOm7J3ncIoDi0NAQkY3d2IaJSws2NNZZnCouduhAsrgf7o4BYy59O4fvn3ROJQKoREkBGKqYytAJCCEQWh220I81TPFIozLaNiCMH4PJr47WIooL1C1isUUsFSwpkMqPAMARDUIFjLcYpj5tGbmqw%2BP6bhz49jZwbZ9S9k8Kd20QQLDdzFbdIz%2FJJ0OFyJFaI6mOcZ6HGOzAGxdi0tN8JL063CmJwi9FviX34m4FUrlxl0PgaBgIbrXJJfVp08yTrbq2tt99bINtCj9p%2F2TiZMMigCzYGa0WxwBgrEjxCBUici56obyLjsF%2B%2Fez8KGLwUdxVJuq9HZcpljX16lgjlaeg8hTpmUVNqubcUjzNKnBbGIBbJS6pT8nMo5ilAms3kxsAbElvsP0DqP2Ttt9KsEYIoBELpWxWDyHMocSDdUiCYMYDvJmAl5sUE%2BcDgiaiLMd6FrTJUmskFaTyEah8JPZsiru8WGL8ouLpx2rfqshkVQix%2Bz%2FOoyRIte64GalXsb5%2FJFX7J4UfxsVI3EUcMyrVrbqAtbVVB1x96q39f4Yo0goYpBJ6EmhWa31nx3WrUmskFaTyJah8iVSofNrqY2umHOeNsyIQ457ksUTnlP0dq4NfVyuLrpTKLlHy0sUp1UASq%2F2Txr2ASAiiwJvNYrVzBLjUbJ4BjlS0qbdE%2F%2FStUgAExAMyWG2jI2EFDd3qujNsWcPOesxquY6d1OOSmiMbId4YCTT%2BBEq0xDjRKACM8mO1HwF2mYm%2BDnRdrRRht5hUmRPHAeD4CdL3jwBEBQ3OheC84VE%2FXi2L1Q9fB14kOgFc%2F%2BzeVgmgJKuVTnzsPSh2iFoncY82uVrw14aH1%2FxCNVbszO4heYa0vDPk30uc%2F%2BOxv2LgBAAGdjSM8R548OvqoxHiUl0bYWyX7R8h1P5J22%2BHUIlAxXSl5FYDeZS67hHgTO%2F%2F2aoPbWy12r9JqFVifFsqsLYGbGtlJyq%2BV2TuBRrA3WTgs%2FAY70S30519XFebg19X3520%2BbakctBO2j%2BZ%2BNt23qsdwduyWCWnjjB1h%2FZvdWkqhPxKVhi3gMamh2Ilhn304xeIaTVJpVlsTp9FLRt3F9DPgvtmX1czbf4FSeXghcT9k4WXLYxtg8oYrLJRKZNTC7XWa7R%2Fq1RDCDfq7RltpDwixPTcjIdii1R87MYnptUktdKYn6Pz89ZSJj6l6k8NcA%2Bc9bqavvmF6jbdHqwW0vYP5%2Fq9dLGo7qVTrY5OXKnXr0yM7m3V%2BFzIAs4S0crEckCmBDOedY1UCmI3%2BtN0LjUucan0yDOycjD8PZk4VJDCB3%2B%2FqmmtSqlc68g2dUYKlLJ%2FUrgzMl73Gu3xESfFqorzwO0OsXiI4kmrCe%2FSRoQ4T3slOK2ea0qa001Tgci0E2TiQkVk5tHooO9XnYJDWcP3TzovT4xOL5dJixDqXz29gHhGRZTRIRogzT2l5mk6b8F%2BG5KhtyB5%2Fj%2B2mie3mie3mlvNk1vNk1vNk1vNk1vNrZbouy65VR8%2BsST3UJbGpopjJYZdoNsFXGOptDrpfAn9LGWvU5xaLJFvmr9Ycu3kzstYuiHrUuaUFsfGFg%2FyQOFa%2BHaCIAeHMNTnPgA%2FwSrnrg3UPPD%2B1R8AHnwQ%2BIEUq7xONv4w%2Brk7ex2vBhRhng9ks%2BoyGAXU6XYrROTzXnTg4PrRW3EAIQQI8tueVn3I%2BGarnNuoz4%2BOztdZ%2F%2Bpl4KWXgMspVnmdbHwWIgxm91XHA7JxiJ1A64jHvJg0WS0CmBqzWf3NLSG2NmGTnopCOm8l8RZKpNsDSbG0l1UfUXyjVcZLqE8EoGCirj1cC%2F20Eq3yOgjrML6wwHgLFoWxUGHzicx1iB4CQJy7Iee7S4biAw4QUM9k1XhodzE%2B1yRqzo2zk3YXkPZaZODoEJl48avVU5pVQQjFJltVUgHfZJX9N%2FDDuJ3Cerdr%2FasvA5icBPByolVeB6yO5B2go%2FOXdzpJLuAVVseuGOv0%2F2M%2Bce6EnO0uIRO3elPbciars9UyhSlXZ%2FkJvoVSCS3OaeNRCTi%2F59j7UGFc0J7XVSWVad2hpv5VEO9fPQXgwx8GcMr4CRybTHWg6ijungJOuRo%2Fhp%2BgMD%2BBw4Y6Xb3OrOSG1BTPdKxCJZNVfJn6%2BbKhTnMcGG9yTv%2B5Zrb6CQT4LLtQEAkBIRKtFgR2IgpZrDa8aEzvX60AQBAAQIVi6bdzEa9jA7aso3FnGph2NA58ncJ8HTBsz5%2FQ69QkD1OM9TmNju7yYsqxmtFqI46fo36eg8HSzwM%2Fb7L3fR6RkYPwfTdzQVBtOklWuT1ulfevCiH0%2FtV7sZt7zd1ovM5F4KKqozgBpHMA6BB1AIDNb0yuGOvIVPAk8YT1BztW3fq5rXMb9fZjcexEEwEHpjPw%2BLjxDPwH2xHgvIIPMy5EBqtCiBSr6f2rswAaQjQAzCbsFVYn2NwMVB3FCWD1AeC9RO8FADb%2FmZ6az7fzcf15%2BWr7BzhWnYnV5irr1gPtWCX9swSbQHOrXN5qck61ByTgfPY9DzUC%2Fs6GICfsbVXCFKtp%2FatL%2FY9pHQKAJUOZyUnwOnNzYR3GhWAcKmDzHbU9GfpsvfcpPsh11ZhNZXVTG5qbt6hJ8l%2FOT%2FeITPyjX6l9kG8mqe0cwGp6%2F%2BrdAHCd6Lr%2BewKopNbh3Gx1kDoET%2FHBrqvGzCmrc6QlGFFA480k3jxdZpsJEoCgeE8lhfdQQ2JocjKj1fT%2B1RoAvJ%2Fo%2FQBQS7fK63CeZjW9TsOrM14dHW%2Br%2Ban6vF3qZbJKyurBpGnQQpicNDY0E4aAXnQC73%2BNh3XZsv5V1ow6RzQnv4%2FyMjJZ6nDO64jMdaZHJxgvUHnZND%2Bh%2FuguHdXmU0KEUF8PPpES0esZG5pJDAkxdDPOk%2FdC5Mmt5smt5smt5smt5lbz5Fbz5Fbz5Fbz5FZzq%2BYGw13usyHXNjcHKKrHZwuvpKWLinmDsECGlAwdND5R2vIg39VWq0atfV5Y14fs2ryIktVqjbUepmUW9zI2CUyes9AlnvJZtEfiaAEL%2B7OabBqJQ619rSnT4jwKiCHaRaD08MdFvVDnWhVXWpm9jFYrEf5AwoYQz1INNQZ7QG91GJfJkH%2BGBzSyghWyJoUAhJi0SIXRAaw292W1eSBWE4uI3YAIGAOYVsWl1sGsvhLhY3FahN6SqXLs0xZKxud5QurmeQee0xGIRnrRD%2FVGFE6iJKIQj0gdYsjI1RCzKhErnWrVj3Hy0Y3OwCDaqx2Ya92%2FVeBYhK8DbLplAbcC7MT2vh%2FEMZPVyhraZAjgMGRe9S2RQiWJg519D%2BoMnPi4e1n1oReZJXLHKtJqNUFrNaZ1EKuzIswstzp%2B6dK44Vm%2B3Ah%2BCmiZ9%2FsDxFNBnX6%2FrTYVHuwMvJBmdcFs1YdmtYp7yLVRdEFUSNBaiGsdwKqKxq0vAF%2BwuNVTn%2B68buH7uQqxdRYnXWL5XXxtYKtChfHEgcHPwKEeSixPJO3BZHVdt1oQc64NwEZM3zqpxPn6%2Bpth9fiLwIvHmdUOwswaVDTPb%2BB%2BYnkYP3dwx2rmu6XWQZyBhdgogHj5XYTChhCm%2BoWqZtXttn4EYW7Wpy%2Beqbi%2FXshk1dqy9mMVH9ja%2BgCY1YcsIcQW0DGp%2BGkcJpYbeGlfVktAaXCrzYM5A6%2FQ3lZpJWE7C9UYr0wBP4kwSh%2BTKrmSmsWqNdwctrhV0Q%2B3ipMnway6eF7usjYe4lZbpRpeIBbge%2FZlVZnI0nyXOjD4PTCHu8hk26tvh6gQ5ypKH5MacSWVW63G9VnDTriYLnNRhEyLdWSaWzLX8AU5%2Fkn98zpXwW6X1Mj%2F0NkCFhKOym0emVgYbKXag74HNtchGGyPTmyH2VbZ1adLVbykpGpW41xKJalV34qd30KwjkxjS2YX4WLXFfY%2BFmEakz3SYpt%2BH7lSXWFHJVud%2BvfXanNAqzxpj1vQpSpeLmQ7VUmpUivrTw9EmDJlyty25SD6oVHD404zqTQiMaOF3R%2FS%2BIboZ6Mw4PrDB3UGFpRchxTkSX3cwePQd0ZW2P8ZNHkvRJ7cap7cap7cam41T241T241T241T241t%2Bq2aOAs0rdVcquuXawYFrpdTF6%2Fl6eDJUqOu0SDxvdpH8mtus8eR9HUnQ3ftK4vANslPSdxisOlKcjZ8uc6jI9Ryzy%2FWKEuq%2BUn9KOHW5VA%2BVASn%2BrQAcR2wy%2FJvAWwoYjyuD4vFDnwTdi33ZhV1z55ybJYx0B9sw2UDOvrRqK0dAHcZ16C2xp2T1ywntO4d3aCcJXPH696M4EPm0s1aQWkISRQPpTEgcUWGQKAkLknBtIRlFbGm6yUokyeHDJyGLT6QKRVTcPJS8P6Wq%2F1ibnlNg4b1tcFwHR3jOunn8KmEGLkhG3fMeJofPR8yQcWXX1%2BuTAa%2BMAFTWpBAKLAtALSEBIoH0riAIrdwa1KEVA2OAfMQyZ5csjM14llHX2tahqOX2PLSr0%2F6kkwrK9r6ts%2BFcKaq1eZix7h%2BAnG%2B4uZr%2Bl8oUK%2B3p3hLiJURVhkjyANgQzUOJTEIWN3BrUqRSgbBs5KKcrlySHOE1tXIq1qGl8V1MPh0KJlWF%2FX0AVYQjuk9xuvb7CGTzB%2BP6w6UL1D4wsoLrLttrEbW7cRjpGR8iFXcaMl3x3UKmxlw8BZKUWZPF6IS%2BVauVSVNjDWHQMu8PWBI6u1%2BEFc%2FaTBNQE7Um3Gf3RrZMIbLzgaf6cHKTV%2Bgr%2BgrF4w2iAj5UNrGmeWpga2GmXNzHkpjbKXsc22v5HUutIAsDbEpao8gCg%2FxtcHJsn19XV%2F7kGE4VafkvVtMF5oEp0ul3QezHhSKvTXYfSpJ%2FY6BSylSKd86A7FjZaqzwxsNXqEOxI4K2WmI2InI3z7fTLGDx93KHxLY5ZKvQ3IbDYN6wMDgLa%2Brnf5i16C1Y%2BMb9cHGJdp%2BpwHMxsFAkjTGg3qUgkYlo7MlA85ihssWZMFZ1Cr1rA6TgycWzVTFcP2%2B4lSh50hoqfkWxopleddFoD6nGl9YAD6%2BrptrB2SuE6xNNClubLjdtFgfDtmHqworrRG72x0qQSEokzUOJTEw7daI71B75akTyXVwFkpTrlVrjVZ6hDRZZy8ZJZKzkUPjTNkWh%2FYsJL%2BxzzIeLfH8Z3YyZ0D8eS2ZSAUlUD5UBIH2qfPD%2F7ORvpUUg2clTJTocK33%2FzOpi91iFqwfvCaQ%2BYEM43H1FjKerzN01UPqJ4O4nj1XAMyjXOrA%2FHktmUgFJVE%2BZBELueNyeVmQk8mZW7dJ2nI5VIljwaZP0Z5uFZzU34kdYiubY2cdygpwbRylLoeb7MwKkSB7ZjVaSEzvToYT25bFkK1IXPKh0LkcD7dowNIVNkx8ugLO%2FY4TddqbsqPpA6R06TvvORxEnDeCzFo8l6IPLnVPLnVPLnV3Gqe3Gqe3Gqe3Gqe3Gpu1dzf%2B5Zx1ShxcPUHT2uqktR9uN%2F4ST9UWThIq65taI95S7gaAsyddTWPzc%2FCB85JnHT3ZdVuUULel2C1UsTCYK8at0XAUMsNrdqm9pi9uQd4%2B5kPq569Prk%2BgOISkaEPeXS%2BDns%2FfJzXJ2oplMnGAoC1fVlV28%2FkGVX529x750BW5YcvgEox7EYrAYAQrL835ICJW09Xq09b5vkNGPi5kYl5jbPHVVmrjQMfqpWI9SE%2FQvTIRB0lnQdEgZlXarw%2BLRVBaTZ4o3opu9XOVQALCVK9%2BaqxkjcTDGT12RqKQBG1Z4eIDgMAEevvlVyGc2%2FYKRScYc8033pmHIxbq1crgZWxPrm4qwyc%2F1CN9D7kCnwfldtxTOPRRxc4j3biuOLqyKOEmGy0apCptTJa7RYRxnTc3yvlFYxWpdRBrDZnPIQvjuYQUQ0QgkgIredTchnOo5PRGufWZH3Y%2BVmPceDUZ12Ac1ld5zt%2FBF1G60MOqkA1CLxZjdPVlo01zkOpM%2BU4b9kpa5oxGyf7%2FGQ2qz5UCyrLyoaSp1V6KKVtKfvirkNEDWCH1khlL74u8Trnl3oTTqXIOXBnbw0mTgSdQ6bXg4zeh7wePrZX0%2FjVsF%2BS8UhqoPEppFhlNkaEAKA3cJJtvi3oYCfWY4a73BUu1Q%2Bri8JBWj0UjbP%2BXsllOPfCRtc7PJ3L%2B8RKMXsd8%2BOKKzgngMmqJ4TWh1xBtSq%2FHtL4j1uyC4vxUiRV449ZKVa5DfNBecmDjHcpjh9FYyM81VSHg5S7XHZXPJBVMe9J2JgXQ0Rvi8ZZf2%2FIARO3Xd93bc5hd4rmOkIYuSASOienWisBf7J2F%2Bl9yMF8oTAfHNHrHHGGq8MOMY5Qqs6D4SqApHUDlY1Uq803IPNGM46xOb3S60F9JIHd5Wa7K%2B5vjcj8B%2Bdbxei9SbE1FPb3yrD%2B3r14ESgmzR%2BUE93xaQC1u8q8D1neA4%2FxOmO%2FUHAqBo67AmKcnMK4B0qIspFqlVY3AGysanRzTgJrppx2l8vvige7W7pmeTPAjGddG%2Br394L19751nJzCFeDpsrEPucjmZ%2BdK%2BIxFhjAbKVZpxYK1osO56MGDlLtcdlc8sFVn%2BHQABKdl735Cf%2B9bwtUQwOBB1g%2BGiYfZSLVKFxuXyBwn5S6X3RUPbpWcJgkx1JS9%2Bwn9vW8lZ82xB1%2BfiU4ZEOYNCqablDXqLlfXGuz1M3kvRJ7vZKt5cqu51Ty51Ty51Ty51Ty51Ty51dxqntyqe5W%2BrZP3A3dhd4g6NrpkSqc7BibV%2FgjtM4twDXRsjIyxYXMI9dUcn7Lk1VdfVd%2FexFSAA18nOXs%2F8GGrhoUF1KzDxOyVbAAvMKv34RNkSGdxbGyxY%2Bb%2F%2Bs84xFKCefnoFoCUngEebT3LoppfjM265ZZb1Lc3Ma94IgbcItsUxlPWSWZWk%2Fty8fyMBXgzzzN5lSkAaH%2BNDdTwx2jM1aC7iDCLrpE%2F0XLZ86kBNZd4mvuwiv5f%2FAwt2sb5yGrV9d3kA8b3GfUN9Yus0YdvTzrn6ySbrZYAWEJYAEqs6tGjkDG8iBrjj8Mj1oh1N71g8xZ6dTLg%2FHvvk1w75Ot13JexOUCoMNvFViQVFzJYnZubU9%2F44svmAyb6ptNCFWHM%2FVvvT9p%2BkdFqtE4y36DIqi%2BtHo6a%2FGp6X64AgNtuAwBBsawB3tnpf6e%2F6Ih%2BE8DCC9p1%2BAjaaABAFUdM%2FE%2F9Zcm1C8%2FHPw5UiMUF4GY8VoWY96zXZfuIQLWQwSoA9S198WX3BqRAH8AN7TBadAv8L36%2Fhp28lO1YbTDbKuaO1cgq%2FKFIJ1yXrwGrrLLzrHX661PsRbfUbQKsTBfWu%2FHRNoAfs9Dl%2FI87KxZ7HWwCm8o1270Zr6vB6T8ddRkqqZmtmhdf5qsJTmktOoVJQCw7hl3%2F09jJV7JZ%2FWAJKsUUq%2FrfgG4AwFNP8fV%2Bj27nttvkV%2F1Qsi4egcwXY%2FzyjxKssFqLVB7Edae%2B9gBQb17Hgzfz49v8d%2FAXiUKuUkLjV4FfbaBkasYDipUYhdj9h7T8QhHe2%2F820TrtzyqX2kjSyhYX7QHmXf%2Bz6KfRzGS1UT4FlXtSra6ryevJ%2Fbp0224ols96zxchU9c3bwrX7wSA10llro7umXcA9TNd1Odi3Jf8E%2BTHOLk1fMZpt53PoObqUtsA2kpryrFakVJPFivqHjijVSa1Ol2VWolpZVKJkqwGHqI8SZmsfrADFXzRZJWvnyyDaoH166afgXuHEMY7wzfvhVUA6N2Mz1i4f0KIiadgndH4kY9b6HU1fh%2FaPXr8ceq1tcWwi965ZQDL57xilmM1%2BszJb9b023sPO9Hu9uqA36n4QDum7gLkbipUgQvEtTKpBCTcqI6KMN4ns1ktPwqVapNb5Vqj62q1wPqB0626dv%2Fm52mHLeiOBypyRHvqbUwtLEyhPezEeRXAn22hGuMdeB%2BLtvpjHjqx%2BqdXZfXK6ul20rHK%2B2%2FDjxTFhIwKwLoiZEbJ2Nb%2BOFvnVH3TtUYbzy35ScveVvCJbFZbUMGXs7yzKURWC0OsHzjdqn18a1rMzwvWDP2xBsZ7D7GVyclZnnzyHe94cnLZ0Xhh8vfwR1%2FU1s4%2BiSj880rLTYrelzeXsxyr0lpAFIyyNd1hXuS6XEeYepmvc6q%2B6c%2BBVYLSKqVyTc9ls3ofVKxeyjrJrBeC9c2mWD0%2B3CQKAmJpPrNVJlisDlFveWJiuUfE%2BGv4B804ryCWCsXSmBfzjf3%2Fbiku1Y2k8pzZ8ABv4wwNFBGlwF4HTYFtDuFks1qDyvNp6yRzq6pvlm%2Fe6ip7uzTs7NFlTGKkTNmzIgKNBCIWbXg6oGA6bclrngJbG9gYZ2VUiNEVh96sCCmdwYQnMCpUmJtC4YB7IRz67kneC5Ent5ont5ont5ont5pbzZNbzZNbzZNbzZNbXZhaiIPcagtRii5ljQsYJy%2B4rnn3dlGkNzH4KFomHIbz0liR9T8fKF%2BcmlqUnMcdA7qUKXt0xNqAbZgeWu3%2FwFfRz4%2BQKa2rLUOTAYoV0%2FK0tg1qceFu7SzMi58i4Ul2i6a9VUzYIWiimdnqm7%2Fu8amv3XPna5LzHEFjck6C9P7kvZrRhICBhVZFNPYw%2BnmYWNzSGH7lGjR6yrhW47OwJbfxLOm53%2FspZhX4w8AFcXTDcJh1pn7jDRAL3viNqY7RKv2TqQVe5tYwOuX9z%2BncsvYz%2FzOFww%2FPSs7iAk%2F0KKYbt%2Fajm1pCP0uZXgUgwHZdGxiSdW6gnxts5%2Fr%2F9Ff%2BwB%2BCA7ZpMLRwNq2IW%2BywqeBDXzVY%2FSMQBfpbv%2FZ3WDPhYvHO5burxFK9e%2FnO4qJOS%2FBBf%2B7P%2FwWM6WUgU6vo02WqfN3jCBu5d%2FGix3jiusrec%2FTxbz7WUFzlhJTUlTbSO25W2xFtr2brSSTg%2BIkTx%2FtWzZNKLQDbSiXWjLyOMK%2FzVXf7WdCOyVP18w%2Fz1xZukXX%2F0m3%2F6JeuxvmreHq1FBXSy5dWn8ar2km1dm4d9Ff%2F2l%2F%2FG3FMnVrYx%2FLpIhFfl1iueofDGvfGCwA4x11BcJeJg4jNP4a2Q80XiwCOkZ41yDSItzPxjht6dyjcezdlsirIsmDbsKwhQdRRkzrxS1UUbvWVCL%2FC%2Fwh6FOtd%2BjF5hlaE%2BJtHYbD6Q%2F%2Fqf20w7lBZCtmaVXg2VFQmB7doVu85VhinHwr%2B7t%2FTrJ56w5GgIDFb91iueodanMvV7oQQ0DmqZaJym3HzSrizuE5E3y%2F5rLlnt%2F5YpusqOW%2BX8O1ONqtEw8MWYA0Py3vg96pJ7yUVy020ejnCl%2BNUHvtRjp%2Fgloj%2B%2FjceZvZcImr%2Bw18z2f7W534GeELhJ4Cf%2Bdy3iIhZnZtdKkvQjOPuk6slIvrU5zWrHiLwyHF4cX78EZKBxpU9nbcFkahqvAG0ulPhPmoYpFbntyYCfl0VMqB4ehvARo%2B41e2fMViVp195Et75RAbAzjwjTpLV7g7vUkL31H0GS%2FTP%2F8UvnY3zf2kdiYp5hvm%2F9csNIVYUXhGi8cu%2FZbJKn4kah30vRmvv8UHf%2Bjef%2B7cg4usVU6nI1ysulihlHWONl4hKOn8SmHrwg6rzV5NaCJqKsOuqlncB79LZUZkf%2FuHwG8USnn5h29LqhNjNhPZw5zYsZTXtryysCCuilpTBLP37%2F%2FAfrfPxG%2Ff%2FdLF29SVPXk%2F4%2FE9949efIC1P%2FPo3PmWy2mtDpjYTo3dhHfRf%2Fut%2FQ50MDaKLfL3iCJs5kZHXKpWazh%2BHHNgUV8bxuEGqAinXVbZKZ%2BoZODz9WoC0mnheP4T%2FvjKydbatWf3ts%2FXoKl4%2F%2B9vah0tDrRZapFuC%2F6n%2F%2BTAukpbgQ7WvQAJtvufT538R3yQt38Qvfp58j1ml5Vtl%2FncQg2VRAP2f2de2JhRj6xIPyk%2BeNHN8iZxjkqdK5fufd3Pv%2Bx5YzRI4Gi%2FxmrzONs8vC9q8GTvnJ0avTE5eGZ04H38dXdsagWVhZOtaDAsxJ67cALAZkJ4f916GBNr8mRr7vIdMsx4ekXNCZPwlEgjTK02it2Dd41NL9o0416Sy96vsuiqDqgIpZ2yQECOOMyLEEJJn0YqYUwsZx%2BMUi46pcXRjeHiDmnxIPpasxvg98BiMOrPFBOcT%2Fc5tymrV5azf%2F%2BzVVd%2FywfN2o3HseY2Pc6nckp5MZ2z%2BG0M2K1tGzVNXHGeF9pM59ZiDd1YzvDG1QQnrDI9OlN9EvjzN%2B6vLwiQ1Zf8XKHOE%2Bo2hoP9bDhzQAAAAIAjbqGIC%2Bpezh55hRi4VlKhdsUuh7scAAAAASUVORK5CYII%3D%29%7D%2Eicon%2Dglass%7Bbackground%2Dposition%3A0%200%7D%2Eicon%2Dmusic%7Bbackground%2Dposition%3A%2D24px%200%7D%2Eicon%2Dsearch%7Bbackground%2Dposition%3A%2D48px%200%7D%2Eicon%2Denvelope%7Bbackground%2Dposition%3A%2D72px%200%7D%2Eicon%2Dheart%7Bbackground%2Dposition%3A%2D96px%200%7D%2Eicon%2Dstar%7Bbackground%2Dposition%3A%2D120px%200%7D%2Eicon%2Dstar%2Dempty%7Bbackground%2Dposition%3A%2D144px%200%7D%2Eicon%2Duser%7Bbackground%2Dposition%3A%2D168px%200%7D%2Eicon%2Dfilm%7Bbackground%2Dposition%3A%2D192px%200%7D%2Eicon%2Dth%2Dlarge%7Bbackground%2Dposition%3A%2D216px%200%7D%2Eicon%2Dth%7Bbackground%2Dposition%3A%2D240px%200%7D%2Eicon%2Dth%2Dlist%7Bbackground%2Dposition%3A%2D264px%200%7D%2Eicon%2Dok%7Bbackground%2Dposition%3A%2D288px%200%7D%2Eicon%2Dremove%7Bbackground%2Dposition%3A%2D312px%200%7D%2Eicon%2Dzoom%2Din%7Bbackground%2Dposition%3A%2D336px%200%7D%2Eicon%2Dzoom%2Dout%7Bbackground%2Dposition%3A%2D360px%200%7D%2Eicon%2Doff%7Bbackground%2Dposition%3A%2D384px%200%7D%2Eicon%2Dsignal%7Bbackground%2Dposition%3A%2D408px%200%7D%2Eicon%2Dcog%7Bbackground%2Dposition%3A%2D432px%200%7D%2Eicon%2Dtrash%7Bbackground%2Dposition%3A%2D456px%200%7D%2Eicon%2Dhome%7Bbackground%2Dposition%3A0%20%2D24px%7D%2Eicon%2Dfile%7Bbackground%2Dposition%3A%2D24px%20%2D24px%7D%2Eicon%2Dtime%7Bbackground%2Dposition%3A%2D48px%20%2D24px%7D%2Eicon%2Droad%7Bbackground%2Dposition%3A%2D72px%20%2D24px%7D%2Eicon%2Ddownload%2Dalt%7Bbackground%2Dposition%3A%2D96px%20%2D24px%7D%2Eicon%2Ddownload%7Bbackground%2Dposition%3A%2D120px%20%2D24px%7D%2Eicon%2Dupload%7Bbackground%2Dposition%3A%2D144px%20%2D24px%7D%2Eicon%2Dinbox%7Bbackground%2Dposition%3A%2D168px%20%2D24px%7D%2Eicon%2Dplay%2Dcircle%7Bbackground%2Dposition%3A%2D192px%20%2D24px%7D%2Eicon%2Drepeat%7Bbackground%2Dposition%3A%2D216px%20%2D24px%7D%2Eicon%2Drefresh%7Bbackground%2Dposition%3A%2D240px%20%2D24px%7D%2Eicon%2Dlist%2Dalt%7Bbackground%2Dposition%3A%2D264px%20%2D24px%7D%2Eicon%2Dlock%7Bbackground%2Dposition%3A%2D287px%20%2D24px%7D%2Eicon%2Dflag%7Bbackground%2Dposition%3A%2D312px%20%2D24px%7D%2Eicon%2Dheadphones%7Bbackground%2Dposition%3A%2D336px%20%2D24px%7D%2Eicon%2Dvolume%2Doff%7Bbackground%2Dposition%3A%2D360px%20%2D24px%7D%2Eicon%2Dvolume%2Ddown%7Bbackground%2Dposition%3A%2D384px%20%2D24px%7D%2Eicon%2Dvolume%2Dup%7Bbackground%2Dposition%3A%2D408px%20%2D24px%7D%2Eicon%2Dqrcode%7Bbackground%2Dposition%3A%2D432px%20%2D24px%7D%2Eicon%2Dbarcode%7Bbackground%2Dposition%3A%2D456px%20%2D24px%7D%2Eicon%2Dtag%7Bbackground%2Dposition%3A0%20%2D48px%7D%2Eicon%2Dtags%7Bbackground%2Dposition%3A%2D25px%20%2D48px%7D%2Eicon%2Dbook%7Bbackground%2Dposition%3A%2D48px%20%2D48px%7D%2Eicon%2Dbookmark%7Bbackground%2Dposition%3A%2D72px%20%2D48px%7D%2Eicon%2Dprint%7Bbackground%2Dposition%3A%2D96px%20%2D48px%7D%2Eicon%2Dcamera%7Bbackground%2Dposition%3A%2D120px%20%2D48px%7D%2Eicon%2Dfont%7Bbackground%2Dposition%3A%2D144px%20%2D48px%7D%2Eicon%2Dbold%7Bbackground%2Dposition%3A%2D167px%20%2D48px%7D%2Eicon%2Ditalic%7Bbackground%2Dposition%3A%2D192px%20%2D48px%7D%2Eicon%2Dtext%2Dheight%7Bbackground%2Dposition%3A%2D216px%20%2D48px%7D%2Eicon%2Dtext%2Dwidth%7Bbackground%2Dposition%3A%2D240px%20%2D48px%7D%2Eicon%2Dalign%2Dleft%7Bbackground%2Dposition%3A%2D264px%20%2D48px%7D%2Eicon%2Dalign%2Dcenter%7Bbackground%2Dposition%3A%2D288px%20%2D48px%7D%2Eicon%2Dalign%2Dright%7Bbackground%2Dposition%3A%2D312px%20%2D48px%7D%2Eicon%2Dalign%2Djustify%7Bbackground%2Dposition%3A%2D336px%20%2D48px%7D%2Eicon%2Dlist%7Bbackground%2Dposition%3A%2D360px%20%2D48px%7D%2Eicon%2Dindent%2Dleft%7Bbackground%2Dposition%3A%2D384px%20%2D48px%7D%2Eicon%2Dindent%2Dright%7Bbackground%2Dposition%3A%2D408px%20%2D48px%7D%2Eicon%2Dfacetime%2Dvideo%7Bbackground%2Dposition%3A%2D432px%20%2D48px%7D%2Eicon%2Dpicture%7Bbackground%2Dposition%3A%2D456px%20%2D48px%7D%2Eicon%2Dpencil%7Bbackground%2Dposition%3A0%20%2D72px%7D%2Eicon%2Dmap%2Dmarker%7Bbackground%2Dposition%3A%2D24px%20%2D72px%7D%2Eicon%2Dadjust%7Bbackground%2Dposition%3A%2D48px%20%2D72px%7D%2Eicon%2Dtint%7Bbackground%2Dposition%3A%2D72px%20%2D72px%7D%2Eicon%2Dedit%7Bbackground%2Dposition%3A%2D96px%20%2D72px%7D%2Eicon%2Dshare%7Bbackground%2Dposition%3A%2D120px%20%2D72px%7D%2Eicon%2Dcheck%7Bbackground%2Dposition%3A%2D144px%20%2D72px%7D%2Eicon%2Dmove%7Bbackground%2Dposition%3A%2D168px%20%2D72px%7D%2Eicon%2Dstep%2Dbackward%7Bbackground%2Dposition%3A%2D192px%20%2D72px%7D%2Eicon%2Dfast%2Dbackward%7Bbackground%2Dposition%3A%2D216px%20%2D72px%7D%2Eicon%2Dbackward%7Bbackground%2Dposition%3A%2D240px%20%2D72px%7D%2Eicon%2Dplay%7Bbackground%2Dposition%3A%2D264px%20%2D72px%7D%2Eicon%2Dpause%7Bbackground%2Dposition%3A%2D288px%20%2D72px%7D%2Eicon%2Dstop%7Bbackground%2Dposition%3A%2D312px%20%2D72px%7D%2Eicon%2Dforward%7Bbackground%2Dposition%3A%2D336px%20%2D72px%7D%2Eicon%2Dfast%2Dforward%7Bbackground%2Dposition%3A%2D360px%20%2D72px%7D%2Eicon%2Dstep%2Dforward%7Bbackground%2Dposition%3A%2D384px%20%2D72px%7D%2Eicon%2Deject%7Bbackground%2Dposition%3A%2D408px%20%2D72px%7D%2Eicon%2Dchevron%2Dleft%7Bbackground%2Dposition%3A%2D432px%20%2D72px%7D%2Eicon%2Dchevron%2Dright%7Bbackground%2Dposition%3A%2D456px%20%2D72px%7D%2Eicon%2Dplus%2Dsign%7Bbackground%2Dposition%3A0%20%2D96px%7D%2Eicon%2Dminus%2Dsign%7Bbackground%2Dposition%3A%2D24px%20%2D96px%7D%2Eicon%2Dremove%2Dsign%7Bbackground%2Dposition%3A%2D48px%20%2D96px%7D%2Eicon%2Dok%2Dsign%7Bbackground%2Dposition%3A%2D72px%20%2D96px%7D%2Eicon%2Dquestion%2Dsign%7Bbackground%2Dposition%3A%2D96px%20%2D96px%7D%2Eicon%2Dinfo%2Dsign%7Bbackground%2Dposition%3A%2D120px%20%2D96px%7D%2Eicon%2Dscreenshot%7Bbackground%2Dposition%3A%2D144px%20%2D96px%7D%2Eicon%2Dremove%2Dcircle%7Bbackground%2Dposition%3A%2D168px%20%2D96px%7D%2Eicon%2Dok%2Dcircle%7Bbackground%2Dposition%3A%2D192px%20%2D96px%7D%2Eicon%2Dban%2Dcircle%7Bbackground%2Dposition%3A%2D216px%20%2D96px%7D%2Eicon%2Darrow%2Dleft%7Bbackground%2Dposition%3A%2D240px%20%2D96px%7D%2Eicon%2Darrow%2Dright%7Bbackground%2Dposition%3A%2D264px%20%2D96px%7D%2Eicon%2Darrow%2Dup%7Bbackground%2Dposition%3A%2D289px%20%2D96px%7D%2Eicon%2Darrow%2Ddown%7Bbackground%2Dposition%3A%2D312px%20%2D96px%7D%2Eicon%2Dshare%2Dalt%7Bbackground%2Dposition%3A%2D336px%20%2D96px%7D%2Eicon%2Dresize%2Dfull%7Bbackground%2Dposition%3A%2D360px%20%2D96px%7D%2Eicon%2Dresize%2Dsmall%7Bbackground%2Dposition%3A%2D384px%20%2D96px%7D%2Eicon%2Dplus%7Bbackground%2Dposition%3A%2D408px%20%2D96px%7D%2Eicon%2Dminus%7Bbackground%2Dposition%3A%2D433px%20%2D96px%7D%2Eicon%2Dasterisk%7Bbackground%2Dposition%3A%2D456px%20%2D96px%7D%2Eicon%2Dexclamation%2Dsign%7Bbackground%2Dposition%3A0%20%2D120px%7D%2Eicon%2Dgift%7Bbackground%2Dposition%3A%2D24px%20%2D120px%7D%2Eicon%2Dleaf%7Bbackground%2Dposition%3A%2D48px%20%2D120px%7D%2Eicon%2Dfire%7Bbackground%2Dposition%3A%2D72px%20%2D120px%7D%2Eicon%2Deye%2Dopen%7Bbackground%2Dposition%3A%2D96px%20%2D120px%7D%2Eicon%2Deye%2Dclose%7Bbackground%2Dposition%3A%2D120px%20%2D120px%7D%2Eicon%2Dwarning%2Dsign%7Bbackground%2Dposition%3A%2D144px%20%2D120px%7D%2Eicon%2Dplane%7Bbackground%2Dposition%3A%2D168px%20%2D120px%7D%2Eicon%2Dcalendar%7Bbackground%2Dposition%3A%2D192px%20%2D120px%7D%2Eicon%2Drandom%7Bwidth%3A16px%3Bbackground%2Dposition%3A%2D216px%20%2D120px%7D%2Eicon%2Dcomment%7Bbackground%2Dposition%3A%2D240px%20%2D120px%7D%2Eicon%2Dmagnet%7Bbackground%2Dposition%3A%2D264px%20%2D120px%7D%2Eicon%2Dchevron%2Dup%7Bbackground%2Dposition%3A%2D288px%20%2D120px%7D%2Eicon%2Dchevron%2Ddown%7Bbackground%2Dposition%3A%2D313px%20%2D119px%7D%2Eicon%2Dretweet%7Bbackground%2Dposition%3A%2D336px%20%2D120px%7D%2Eicon%2Dshopping%2Dcart%7Bbackground%2Dposition%3A%2D360px%20%2D120px%7D%2Eicon%2Dfolder%2Dclose%7Bwidth%3A16px%3Bbackground%2Dposition%3A%2D384px%20%2D120px%7D%2Eicon%2Dfolder%2Dopen%7Bwidth%3A16px%3Bbackground%2Dposition%3A%2D408px%20%2D120px%7D%2Eicon%2Dresize%2Dvertical%7Bbackground%2Dposition%3A%2D432px%20%2D119px%7D%2Eicon%2Dresize%2Dhorizontal%7Bbackground%2Dposition%3A%2D456px%20%2D118px%7D%2Eicon%2Dhdd%7Bbackground%2Dposition%3A0%20%2D144px%7D%2Eicon%2Dbullhorn%7Bbackground%2Dposition%3A%2D24px%20%2D144px%7D%2Eicon%2Dbell%7Bbackground%2Dposition%3A%2D48px%20%2D144px%7D%2Eicon%2Dcertificate%7Bbackground%2Dposition%3A%2D72px%20%2D144px%7D%2Eicon%2Dthumbs%2Dup%7Bbackground%2Dposition%3A%2D96px%20%2D144px%7D%2Eicon%2Dthumbs%2Ddown%7Bbackground%2Dposition%3A%2D120px%20%2D144px%7D%2Eicon%2Dhand%2Dright%7Bbackground%2Dposition%3A%2D144px%20%2D144px%7D%2Eicon%2Dhand%2Dleft%7Bbackground%2Dposition%3A%2D168px%20%2D144px%7D%2Eicon%2Dhand%2Dup%7Bbackground%2Dposition%3A%2D192px%20%2D144px%7D%2Eicon%2Dhand%2Ddown%7Bbackground%2Dposition%3A%2D216px%20%2D144px%7D%2Eicon%2Dcircle%2Darrow%2Dright%7Bbackground%2Dposition%3A%2D240px%20%2D144px%7D%2Eicon%2Dcircle%2Darrow%2Dleft%7Bbackground%2Dposition%3A%2D264px%20%2D144px%7D%2Eicon%2Dcircle%2Darrow%2Dup%7Bbackground%2Dposition%3A%2D288px%20%2D144px%7D%2Eicon%2Dcircle%2Darrow%2Ddown%7Bbackground%2Dposition%3A%2D312px%20%2D144px%7D%2Eicon%2Dglobe%7Bbackground%2Dposition%3A%2D336px%20%2D144px%7D%2Eicon%2Dwrench%7Bbackground%2Dposition%3A%2D360px%20%2D144px%7D%2Eicon%2Dtasks%7Bbackground%2Dposition%3A%2D384px%20%2D144px%7D%2Eicon%2Dfilter%7Bbackground%2Dposition%3A%2D408px%20%2D144px%7D%2Eicon%2Dbriefcase%7Bbackground%2Dposition%3A%2D432px%20%2D144px%7D%2Eicon%2Dfullscreen%7Bbackground%2Dposition%3A%2D456px%20%2D144px%7D%2Edropup%2C%2Edropdown%7Bposition%3Arelative%7D%2Edropdown%2Dtoggle%7B%2Amargin%2Dbottom%3A%2D3px%7D%2Edropdown%2Dtoggle%3Aactive%2C%2Eopen%20%2Edropdown%2Dtoggle%7Boutline%3A0%7D%2Ecaret%7Bdisplay%3Ainline%2Dblock%3Bwidth%3A0%3Bheight%3A0%3Bvertical%2Dalign%3Atop%3Bborder%2Dtop%3A4px%20solid%20%23000%3Bborder%2Dright%3A4px%20solid%20transparent%3Bborder%2Dleft%3A4px%20solid%20transparent%3Bcontent%3A%22%22%7D%2Edropdown%20%2Ecaret%7Bmargin%2Dtop%3A8px%3Bmargin%2Dleft%3A2px%7D%2Edropdown%2Dmenu%7Bposition%3Aabsolute%3Btop%3A100%25%3Bleft%3A0%3Bz%2Dindex%3A1000%3Bdisplay%3Anone%3Bfloat%3Aleft%3Bmin%2Dwidth%3A160px%3Bpadding%3A5px%200%3Bmargin%3A2px%200%200%3Blist%2Dstyle%3Anone%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E2%29%3B%2Aborder%2Dright%2Dwidth%3A2px%3B%2Aborder%2Dbottom%2Dwidth%3A2px%3B%2Dwebkit%2Dborder%2Dradius%3A6px%3B%2Dmoz%2Dborder%2Dradius%3A6px%3Bborder%2Dradius%3A6px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C0%2E2%29%3B%2Dmoz%2Dbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C0%2E2%29%3Bbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C0%2E2%29%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3B%2Dmoz%2Dbackground%2Dclip%3Apadding%3Bbackground%2Dclip%3Apadding%2Dbox%7D%2Edropdown%2Dmenu%2Epull%2Dright%7Bright%3A0%3Bleft%3Aauto%7D%2Edropdown%2Dmenu%20%2Edivider%7B%2Awidth%3A100%25%3Bheight%3A1px%3Bmargin%3A9px%201px%3B%2Amargin%3A%2D5px%200%205px%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e5e5e5%3Bborder%2Dbottom%3A1px%20solid%20%23fff%7D%2Edropdown%2Dmenu%3Eli%3Ea%7Bdisplay%3Ablock%3Bpadding%3A3px%2020px%3Bclear%3Aboth%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A20px%3Bcolor%3A%23333%3Bwhite%2Dspace%3Anowrap%7D%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%2C%2Edropdown%2Dsubmenu%3Ahover%3Ea%2C%2Edropdown%2Dsubmenu%3Afocus%3Ea%7Bcolor%3A%23fff%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%230081c2%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%2308c%2C%230077b3%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%2308c%29%2Cto%28%230077b3%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%2308c%2C%230077b3%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%2308c%2C%230077b3%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%2308c%2C%230077b3%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff0088cc%27%2CendColorstr%3D%27%23ff0077b3%27%2CGradientType%3D0%29%7D%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23fff%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%230081c2%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%2308c%2C%230077b3%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%2308c%29%2Cto%28%230077b3%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%2308c%2C%230077b3%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%2308c%2C%230077b3%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%2308c%2C%230077b3%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Boutline%3A0%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff0088cc%27%2CendColorstr%3D%27%23ff0077b3%27%2CGradientType%3D0%29%7D%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23999%7D%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bcursor%3Adefault%3Bbackground%2Dcolor%3Atransparent%3Bbackground%2Dimage%3Anone%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%7D%2Eopen%7B%2Az%2Dindex%3A1000%7D%2Eopen%3E%2Edropdown%2Dmenu%7Bdisplay%3Ablock%7D%2Edropdown%2Dbackdrop%7Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A990%7D%2Epull%2Dright%3E%2Edropdown%2Dmenu%7Bright%3A0%3Bleft%3Aauto%7D%2Edropup%20%2Ecaret%2C%2Enavbar%2Dfixed%2Dbottom%20%2Edropdown%20%2Ecaret%7Bborder%2Dtop%3A0%3Bborder%2Dbottom%3A4px%20solid%20%23000%3Bcontent%3A%22%22%7D%2Edropup%20%2Edropdown%2Dmenu%2C%2Enavbar%2Dfixed%2Dbottom%20%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bbottom%3A100%25%3Bmargin%2Dbottom%3A1px%7D%2Edropdown%2Dsubmenu%7Bposition%3Arelative%7D%2Edropdown%2Dsubmenu%3E%2Edropdown%2Dmenu%7Btop%3A0%3Bleft%3A100%25%3Bmargin%2Dtop%3A%2D6px%3Bmargin%2Dleft%3A%2D1px%3B%2Dwebkit%2Dborder%2Dradius%3A0%206px%206px%206px%3B%2Dmoz%2Dborder%2Dradius%3A0%206px%206px%206px%3Bborder%2Dradius%3A0%206px%206px%206px%7D%2Edropdown%2Dsubmenu%3Ahover%3E%2Edropdown%2Dmenu%7Bdisplay%3Ablock%7D%2Edropup%20%2Edropdown%2Dsubmenu%3E%2Edropdown%2Dmenu%7Btop%3Aauto%3Bbottom%3A0%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A%2D2px%3B%2Dwebkit%2Dborder%2Dradius%3A5px%205px%205px%200%3B%2Dmoz%2Dborder%2Dradius%3A5px%205px%205px%200%3Bborder%2Dradius%3A5px%205px%205px%200%7D%2Edropdown%2Dsubmenu%3Ea%3Aafter%7Bdisplay%3Ablock%3Bfloat%3Aright%3Bwidth%3A0%3Bheight%3A0%3Bmargin%2Dtop%3A5px%3Bmargin%2Dright%3A%2D10px%3Bborder%2Dcolor%3Atransparent%3Bborder%2Dleft%2Dcolor%3A%23ccc%3Bborder%2Dstyle%3Asolid%3Bborder%2Dwidth%3A5px%200%205px%205px%3Bcontent%3A%22%20%22%7D%2Edropdown%2Dsubmenu%3Ahover%3Ea%3Aafter%7Bborder%2Dleft%2Dcolor%3A%23fff%7D%2Edropdown%2Dsubmenu%2Epull%2Dleft%7Bfloat%3Anone%7D%2Edropdown%2Dsubmenu%2Epull%2Dleft%3E%2Edropdown%2Dmenu%7Bleft%3A%2D100%25%3Bmargin%2Dleft%3A10px%3B%2Dwebkit%2Dborder%2Dradius%3A6px%200%206px%206px%3B%2Dmoz%2Dborder%2Dradius%3A6px%200%206px%206px%3Bborder%2Dradius%3A6px%200%206px%206px%7D%2Edropdown%20%2Edropdown%2Dmenu%20%2Enav%2Dheader%7Bpadding%2Dright%3A20px%3Bpadding%2Dleft%3A20px%7D%2Etypeahead%7Bz%2Dindex%3A1051%3Bmargin%2Dtop%3A2px%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%7D%2Ewell%7Bmin%2Dheight%3A20px%3Bpadding%3A19px%3Bmargin%2Dbottom%3A20px%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%3A1px%20solid%20%23e3e3e3%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%7D%2Ewell%20blockquote%7Bborder%2Dcolor%3A%23ddd%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C0%2E15%29%7D%2Ewell%2Dlarge%7Bpadding%3A24px%3B%2Dwebkit%2Dborder%2Dradius%3A6px%3B%2Dmoz%2Dborder%2Dradius%3A6px%3Bborder%2Dradius%3A6px%7D%2Ewell%2Dsmall%7Bpadding%3A9px%3B%2Dwebkit%2Dborder%2Dradius%3A3px%3B%2Dmoz%2Dborder%2Dradius%3A3px%3Bborder%2Dradius%3A3px%7D%2Efade%7Bopacity%3A0%3B%2Dwebkit%2Dtransition%3Aopacity%20%2E15s%20linear%3B%2Dmoz%2Dtransition%3Aopacity%20%2E15s%20linear%3B%2Do%2Dtransition%3Aopacity%20%2E15s%20linear%3Btransition%3Aopacity%20%2E15s%20linear%7D%2Efade%2Ein%7Bopacity%3A1%7D%2Ecollapse%7Bposition%3Arelative%3Bheight%3A0%3Boverflow%3Ahidden%3B%2Dwebkit%2Dtransition%3Aheight%20%2E35s%20ease%3B%2Dmoz%2Dtransition%3Aheight%20%2E35s%20ease%3B%2Do%2Dtransition%3Aheight%20%2E35s%20ease%3Btransition%3Aheight%20%2E35s%20ease%7D%2Ecollapse%2Ein%7Bheight%3Aauto%7D%2Eclose%7Bfloat%3Aright%3Bfont%2Dsize%3A20px%3Bfont%2Dweight%3Abold%3Bline%2Dheight%3A20px%3Bcolor%3A%23000%3Btext%2Dshadow%3A0%201px%200%20%23fff%3Bopacity%3A%2E2%3Bfilter%3Aalpha%28opacity%3D20%29%7D%2Eclose%3Ahover%2C%2Eclose%3Afocus%7Bcolor%3A%23000%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%3Bopacity%3A%2E4%3Bfilter%3Aalpha%28opacity%3D40%29%7Dbutton%2Eclose%7Bpadding%3A0%3Bcursor%3Apointer%3Bbackground%3Atransparent%3Bborder%3A0%3B%2Dwebkit%2Dappearance%3Anone%7D%2Ebtn%7Bdisplay%3Ainline%2Dblock%3B%2Adisplay%3Ainline%3Bpadding%3A4px%2012px%3Bmargin%2Dbottom%3A0%3B%2Amargin%2Dleft%3A%2E3em%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A20px%3Bcolor%3A%23333%3Btext%2Dalign%3Acenter%3Btext%2Dshadow%3A0%201px%201px%20rgba%28255%2C255%2C255%2C0%2E75%29%3Bvertical%2Dalign%3Amiddle%3Bcursor%3Apointer%3Bbackground%2Dcolor%3A%23f5f5f5%3B%2Abackground%2Dcolor%3A%23e6e6e6%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%23fff%2C%23e6e6e6%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%23fff%29%2Cto%28%23e6e6e6%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%23fff%2C%23e6e6e6%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%23fff%2C%23e6e6e6%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%23fff%2C%23e6e6e6%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bborder%3A1px%20solid%20%23ccc%3B%2Aborder%3A0%3Bborder%2Dcolor%3A%23e6e6e6%20%23e6e6e6%20%23bfbfbf%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E25%29%3Bborder%2Dbottom%2Dcolor%3A%23b3b3b3%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ffffffff%27%2CendColorstr%3D%27%23ffe6e6e6%27%2CGradientType%3D0%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%3B%2Azoom%3A1%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E2%29%2C0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E2%29%2C0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E2%29%2C0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%7D%2Ebtn%3Ahover%2C%2Ebtn%3Afocus%2C%2Ebtn%3Aactive%2C%2Ebtn%2Eactive%2C%2Ebtn%2Edisabled%2C%2Ebtn%5Bdisabled%5D%7Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23e6e6e6%3B%2Abackground%2Dcolor%3A%23d9d9d9%7D%2Ebtn%3Aactive%2C%2Ebtn%2Eactive%7Bbackground%2Dcolor%3A%23ccc%20%5C9%7D%2Ebtn%3Afirst%2Dchild%7B%2Amargin%2Dleft%3A0%7D%2Ebtn%3Ahover%2C%2Ebtn%3Afocus%7Bcolor%3A%23333%3Btext%2Ddecoration%3Anone%3Bbackground%2Dposition%3A0%20%2D15px%3B%2Dwebkit%2Dtransition%3Abackground%2Dposition%20%2E1s%20linear%3B%2Dmoz%2Dtransition%3Abackground%2Dposition%20%2E1s%20linear%3B%2Do%2Dtransition%3Abackground%2Dposition%20%2E1s%20linear%3Btransition%3Abackground%2Dposition%20%2E1s%20linear%7D%2Ebtn%3Afocus%7Boutline%3Athin%20dotted%20%23333%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7D%2Ebtn%2Eactive%2C%2Ebtn%3Aactive%7Bbackground%2Dimage%3Anone%3Boutline%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%202px%204px%20rgba%280%2C0%2C0%2C0%2E15%29%2C0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%202px%204px%20rgba%280%2C0%2C0%2C0%2E15%29%2C0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3Ainset%200%202px%204px%20rgba%280%2C0%2C0%2C0%2E15%29%2C0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%7D%2Ebtn%2Edisabled%2C%2Ebtn%5Bdisabled%5D%7Bcursor%3Adefault%3Bbackground%2Dimage%3Anone%3Bopacity%3A%2E65%3Bfilter%3Aalpha%28opacity%3D65%29%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3B%2Dmoz%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebtn%2Dlarge%7Bpadding%3A11px%2019px%3Bfont%2Dsize%3A17%2E5px%3B%2Dwebkit%2Dborder%2Dradius%3A6px%3B%2Dmoz%2Dborder%2Dradius%3A6px%3Bborder%2Dradius%3A6px%7D%2Ebtn%2Dlarge%20%5Bclass%5E%3D%22icon%2D%22%5D%2C%2Ebtn%2Dlarge%20%5Bclass%2A%3D%22%20icon%2D%22%5D%7Bmargin%2Dtop%3A4px%7D%2Ebtn%2Dsmall%7Bpadding%3A2px%2010px%3Bfont%2Dsize%3A11%2E9px%3B%2Dwebkit%2Dborder%2Dradius%3A3px%3B%2Dmoz%2Dborder%2Dradius%3A3px%3Bborder%2Dradius%3A3px%7D%2Ebtn%2Dsmall%20%5Bclass%5E%3D%22icon%2D%22%5D%2C%2Ebtn%2Dsmall%20%5Bclass%2A%3D%22%20icon%2D%22%5D%7Bmargin%2Dtop%3A0%7D%2Ebtn%2Dmini%20%5Bclass%5E%3D%22icon%2D%22%5D%2C%2Ebtn%2Dmini%20%5Bclass%2A%3D%22%20icon%2D%22%5D%7Bmargin%2Dtop%3A%2D1px%7D%2Ebtn%2Dmini%7Bpadding%3A0%206px%3Bfont%2Dsize%3A10%2E5px%3B%2Dwebkit%2Dborder%2Dradius%3A3px%3B%2Dmoz%2Dborder%2Dradius%3A3px%3Bborder%2Dradius%3A3px%7D%2Ebtn%2Dblock%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bpadding%2Dright%3A0%3Bpadding%2Dleft%3A0%3B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%2Ebtn%2Dblock%2B%2Ebtn%2Dblock%7Bmargin%2Dtop%3A5px%7Dinput%5Btype%3D%22submit%22%5D%2Ebtn%2Dblock%2Cinput%5Btype%3D%22reset%22%5D%2Ebtn%2Dblock%2Cinput%5Btype%3D%22button%22%5D%2Ebtn%2Dblock%7Bwidth%3A100%25%7D%2Ebtn%2Dprimary%2Eactive%2C%2Ebtn%2Dwarning%2Eactive%2C%2Ebtn%2Ddanger%2Eactive%2C%2Ebtn%2Dsuccess%2Eactive%2C%2Ebtn%2Dinfo%2Eactive%2C%2Ebtn%2Dinverse%2Eactive%7Bcolor%3Argba%28255%2C255%2C255%2C0%2E75%29%7D%2Ebtn%2Dprimary%7Bcolor%3A%23fff%3Btext%2Dshadow%3A0%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bbackground%2Dcolor%3A%23006dcc%3B%2Abackground%2Dcolor%3A%2304c%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%2308c%2C%2304c%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%2308c%29%2Cto%28%2304c%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%2308c%2C%2304c%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%2308c%2C%2304c%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%2308c%2C%2304c%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bborder%2Dcolor%3A%2304c%20%2304c%20%23002a80%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff0088cc%27%2CendColorstr%3D%27%23ff0044cc%27%2CGradientType%3D0%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%7D%2Ebtn%2Dprimary%3Ahover%2C%2Ebtn%2Dprimary%3Afocus%2C%2Ebtn%2Dprimary%3Aactive%2C%2Ebtn%2Dprimary%2Eactive%2C%2Ebtn%2Dprimary%2Edisabled%2C%2Ebtn%2Dprimary%5Bdisabled%5D%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%2304c%3B%2Abackground%2Dcolor%3A%23003bb3%7D%2Ebtn%2Dprimary%3Aactive%2C%2Ebtn%2Dprimary%2Eactive%7Bbackground%2Dcolor%3A%23039%20%5C9%7D%2Ebtn%2Dwarning%7Bcolor%3A%23fff%3Btext%2Dshadow%3A0%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bbackground%2Dcolor%3A%23faa732%3B%2Abackground%2Dcolor%3A%23f89406%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%23fbb450%2C%23f89406%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%23fbb450%29%2Cto%28%23f89406%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%23fbb450%2C%23f89406%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%23fbb450%2C%23f89406%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%23fbb450%2C%23f89406%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bborder%2Dcolor%3A%23f89406%20%23f89406%20%23ad6704%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23fffbb450%27%2CendColorstr%3D%27%23fff89406%27%2CGradientType%3D0%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%7D%2Ebtn%2Dwarning%3Ahover%2C%2Ebtn%2Dwarning%3Afocus%2C%2Ebtn%2Dwarning%3Aactive%2C%2Ebtn%2Dwarning%2Eactive%2C%2Ebtn%2Dwarning%2Edisabled%2C%2Ebtn%2Dwarning%5Bdisabled%5D%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23f89406%3B%2Abackground%2Dcolor%3A%23df8505%7D%2Ebtn%2Dwarning%3Aactive%2C%2Ebtn%2Dwarning%2Eactive%7Bbackground%2Dcolor%3A%23c67605%20%5C9%7D%2Ebtn%2Ddanger%7Bcolor%3A%23fff%3Btext%2Dshadow%3A0%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bbackground%2Dcolor%3A%23da4f49%3B%2Abackground%2Dcolor%3A%23bd362f%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%23ee5f5b%2C%23bd362f%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%23ee5f5b%29%2Cto%28%23bd362f%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%23ee5f5b%2C%23bd362f%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%23ee5f5b%2C%23bd362f%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%23ee5f5b%2C%23bd362f%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bborder%2Dcolor%3A%23bd362f%20%23bd362f%20%23802420%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ffee5f5b%27%2CendColorstr%3D%27%23ffbd362f%27%2CGradientType%3D0%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%7D%2Ebtn%2Ddanger%3Ahover%2C%2Ebtn%2Ddanger%3Afocus%2C%2Ebtn%2Ddanger%3Aactive%2C%2Ebtn%2Ddanger%2Eactive%2C%2Ebtn%2Ddanger%2Edisabled%2C%2Ebtn%2Ddanger%5Bdisabled%5D%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23bd362f%3B%2Abackground%2Dcolor%3A%23a9302a%7D%2Ebtn%2Ddanger%3Aactive%2C%2Ebtn%2Ddanger%2Eactive%7Bbackground%2Dcolor%3A%23942a25%20%5C9%7D%2Ebtn%2Dsuccess%7Bcolor%3A%23fff%3Btext%2Dshadow%3A0%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bbackground%2Dcolor%3A%235bb75b%3B%2Abackground%2Dcolor%3A%2351a351%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%2362c462%2C%2351a351%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%2362c462%29%2Cto%28%2351a351%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%2362c462%2C%2351a351%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%2362c462%2C%2351a351%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%2362c462%2C%2351a351%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bborder%2Dcolor%3A%2351a351%20%2351a351%20%23387038%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff62c462%27%2CendColorstr%3D%27%23ff51a351%27%2CGradientType%3D0%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%7D%2Ebtn%2Dsuccess%3Ahover%2C%2Ebtn%2Dsuccess%3Afocus%2C%2Ebtn%2Dsuccess%3Aactive%2C%2Ebtn%2Dsuccess%2Eactive%2C%2Ebtn%2Dsuccess%2Edisabled%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%2351a351%3B%2Abackground%2Dcolor%3A%23499249%7D%2Ebtn%2Dsuccess%3Aactive%2C%2Ebtn%2Dsuccess%2Eactive%7Bbackground%2Dcolor%3A%23408140%20%5C9%7D%2Ebtn%2Dinfo%7Bcolor%3A%23fff%3Btext%2Dshadow%3A0%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bbackground%2Dcolor%3A%2349afcd%3B%2Abackground%2Dcolor%3A%232f96b4%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%235bc0de%2C%232f96b4%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%235bc0de%29%2Cto%28%232f96b4%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%235bc0de%2C%232f96b4%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%235bc0de%2C%232f96b4%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%235bc0de%2C%232f96b4%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bborder%2Dcolor%3A%232f96b4%20%232f96b4%20%231f6377%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff5bc0de%27%2CendColorstr%3D%27%23ff2f96b4%27%2CGradientType%3D0%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%7D%2Ebtn%2Dinfo%3Ahover%2C%2Ebtn%2Dinfo%3Afocus%2C%2Ebtn%2Dinfo%3Aactive%2C%2Ebtn%2Dinfo%2Eactive%2C%2Ebtn%2Dinfo%2Edisabled%2C%2Ebtn%2Dinfo%5Bdisabled%5D%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%232f96b4%3B%2Abackground%2Dcolor%3A%232a85a0%7D%2Ebtn%2Dinfo%3Aactive%2C%2Ebtn%2Dinfo%2Eactive%7Bbackground%2Dcolor%3A%2324748c%20%5C9%7D%2Ebtn%2Dinverse%7Bcolor%3A%23fff%3Btext%2Dshadow%3A0%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bbackground%2Dcolor%3A%23363636%3B%2Abackground%2Dcolor%3A%23222%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%23444%2C%23222%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%23444%29%2Cto%28%23222%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%23444%2C%23222%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%23444%2C%23222%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%23444%2C%23222%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bborder%2Dcolor%3A%23222%20%23222%20%23000%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff444444%27%2CendColorstr%3D%27%23ff222222%27%2CGradientType%3D0%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%7D%2Ebtn%2Dinverse%3Ahover%2C%2Ebtn%2Dinverse%3Afocus%2C%2Ebtn%2Dinverse%3Aactive%2C%2Ebtn%2Dinverse%2Eactive%2C%2Ebtn%2Dinverse%2Edisabled%2C%2Ebtn%2Dinverse%5Bdisabled%5D%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23222%3B%2Abackground%2Dcolor%3A%23151515%7D%2Ebtn%2Dinverse%3Aactive%2C%2Ebtn%2Dinverse%2Eactive%7Bbackground%2Dcolor%3A%23080808%20%5C9%7Dbutton%2Ebtn%2Cinput%5Btype%3D%22submit%22%5D%2Ebtn%7B%2Apadding%2Dtop%3A3px%3B%2Apadding%2Dbottom%3A3px%7Dbutton%2Ebtn%3A%3A%2Dmoz%2Dfocus%2Dinner%2Cinput%5Btype%3D%22submit%22%5D%2Ebtn%3A%3A%2Dmoz%2Dfocus%2Dinner%7Bpadding%3A0%3Bborder%3A0%7Dbutton%2Ebtn%2Ebtn%2Dlarge%2Cinput%5Btype%3D%22submit%22%5D%2Ebtn%2Ebtn%2Dlarge%7B%2Apadding%2Dtop%3A7px%3B%2Apadding%2Dbottom%3A7px%7Dbutton%2Ebtn%2Ebtn%2Dsmall%2Cinput%5Btype%3D%22submit%22%5D%2Ebtn%2Ebtn%2Dsmall%7B%2Apadding%2Dtop%3A3px%3B%2Apadding%2Dbottom%3A3px%7Dbutton%2Ebtn%2Ebtn%2Dmini%2Cinput%5Btype%3D%22submit%22%5D%2Ebtn%2Ebtn%2Dmini%7B%2Apadding%2Dtop%3A1px%3B%2Apadding%2Dbottom%3A1px%7D%2Ebtn%2Dlink%2C%2Ebtn%2Dlink%3Aactive%2C%2Ebtn%2Dlink%5Bdisabled%5D%7Bbackground%2Dcolor%3Atransparent%3Bbackground%2Dimage%3Anone%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3B%2Dmoz%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebtn%2Dlink%7Bcolor%3A%2308c%3Bcursor%3Apointer%3Bborder%2Dcolor%3Atransparent%3B%2Dwebkit%2Dborder%2Dradius%3A0%3B%2Dmoz%2Dborder%2Dradius%3A0%3Bborder%2Dradius%3A0%7D%2Ebtn%2Dlink%3Ahover%2C%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23005580%3Btext%2Ddecoration%3Aunderline%3Bbackground%2Dcolor%3Atransparent%7D%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2C%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%7Bcolor%3A%23333%3Btext%2Ddecoration%3Anone%7D%2Ebtn%2Dgroup%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3B%2Adisplay%3Ainline%3B%2Amargin%2Dleft%3A%2E3em%3Bfont%2Dsize%3A0%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Amiddle%3B%2Azoom%3A1%7D%2Ebtn%2Dgroup%3Afirst%2Dchild%7B%2Amargin%2Dleft%3A0%7D%2Ebtn%2Dgroup%2B%2Ebtn%2Dgroup%7Bmargin%2Dleft%3A5px%7D%2Ebtn%2Dtoolbar%7Bmargin%2Dtop%3A10px%3Bmargin%2Dbottom%3A10px%3Bfont%2Dsize%3A0%7D%2Ebtn%2Dtoolbar%3E%2Ebtn%2B%2Ebtn%2C%2Ebtn%2Dtoolbar%3E%2Ebtn%2Dgroup%2B%2Ebtn%2C%2Ebtn%2Dtoolbar%3E%2Ebtn%2B%2Ebtn%2Dgroup%7Bmargin%2Dleft%3A5px%7D%2Ebtn%2Dgroup%3E%2Ebtn%7Bposition%3Arelative%3B%2Dwebkit%2Dborder%2Dradius%3A0%3B%2Dmoz%2Dborder%2Dradius%3A0%3Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A%2D1px%7D%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Ebtn%2Dgroup%3E%2Edropdown%2Dmenu%2C%2Ebtn%2Dgroup%3E%2Epopover%7Bfont%2Dsize%3A14px%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dmini%7Bfont%2Dsize%3A10%2E5px%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dsmall%7Bfont%2Dsize%3A11%2E9px%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dlarge%7Bfont%2Dsize%3A17%2E5px%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Afirst%2Dchild%7Bmargin%2Dleft%3A0%3B%2Dwebkit%2Dborder%2Dbottom%2Dleft%2Dradius%3A4px%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%3B%2Dwebkit%2Dborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomleft%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dtopleft%3A4px%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Alast%2Dchild%2C%2Ebtn%2Dgroup%3E%2Edropdown%2Dtoggle%7B%2Dwebkit%2Dborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dtop%2Dright%2Dradius%3A4px%3B%2Dwebkit%2Dborder%2Dbottom%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dtopright%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomright%3A4px%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Elarge%3Afirst%2Dchild%7Bmargin%2Dleft%3A0%3B%2Dwebkit%2Dborder%2Dbottom%2Dleft%2Dradius%3A6px%3Bborder%2Dbottom%2Dleft%2Dradius%3A6px%3B%2Dwebkit%2Dborder%2Dtop%2Dleft%2Dradius%3A6px%3Bborder%2Dtop%2Dleft%2Dradius%3A6px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomleft%3A6px%3B%2Dmoz%2Dborder%2Dradius%2Dtopleft%3A6px%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Elarge%3Alast%2Dchild%2C%2Ebtn%2Dgroup%3E%2Elarge%2Edropdown%2Dtoggle%7B%2Dwebkit%2Dborder%2Dtop%2Dright%2Dradius%3A6px%3Bborder%2Dtop%2Dright%2Dradius%3A6px%3B%2Dwebkit%2Dborder%2Dbottom%2Dright%2Dradius%3A6px%3Bborder%2Dbottom%2Dright%2Dradius%3A6px%3B%2Dmoz%2Dborder%2Dradius%2Dtopright%3A6px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomright%3A6px%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Ahover%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Afocus%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Aactive%2C%2Ebtn%2Dgroup%3E%2Ebtn%2Eactive%7Bz%2Dindex%3A2%7D%2Ebtn%2Dgroup%20%2Edropdown%2Dtoggle%3Aactive%2C%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%7Boutline%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2B%2Edropdown%2Dtoggle%7B%2Apadding%2Dtop%3A5px%3Bpadding%2Dright%3A8px%3B%2Apadding%2Dbottom%3A5px%3Bpadding%2Dleft%3A8px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%201px%200%200%20rgba%28255%2C255%2C255%2C0%2E125%29%2Cinset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E2%29%2C0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%201px%200%200%20rgba%28255%2C255%2C255%2C0%2E125%29%2Cinset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E2%29%2C0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3Ainset%201px%200%200%20rgba%28255%2C255%2C255%2C0%2E125%29%2Cinset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E2%29%2C0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dmini%2B%2Edropdown%2Dtoggle%7B%2Apadding%2Dtop%3A2px%3Bpadding%2Dright%3A5px%3B%2Apadding%2Dbottom%3A2px%3Bpadding%2Dleft%3A5px%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dsmall%2B%2Edropdown%2Dtoggle%7B%2Apadding%2Dtop%3A5px%3B%2Apadding%2Dbottom%3A4px%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dlarge%2B%2Edropdown%2Dtoggle%7B%2Apadding%2Dtop%3A7px%3Bpadding%2Dright%3A12px%3B%2Apadding%2Dbottom%3A7px%3Bpadding%2Dleft%3A12px%7D%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%7Bbackground%2Dimage%3Anone%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%202px%204px%20rgba%280%2C0%2C0%2C0%2E15%29%2C0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%202px%204px%20rgba%280%2C0%2C0%2C0%2E15%29%2C0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3Ainset%200%202px%204px%20rgba%280%2C0%2C0%2C0%2E15%29%2C0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%7D%2Ebtn%2Dgroup%2Eopen%20%2Ebtn%2Edropdown%2Dtoggle%7Bbackground%2Dcolor%3A%23e6e6e6%7D%2Ebtn%2Dgroup%2Eopen%20%2Ebtn%2Dprimary%2Edropdown%2Dtoggle%7Bbackground%2Dcolor%3A%2304c%7D%2Ebtn%2Dgroup%2Eopen%20%2Ebtn%2Dwarning%2Edropdown%2Dtoggle%7Bbackground%2Dcolor%3A%23f89406%7D%2Ebtn%2Dgroup%2Eopen%20%2Ebtn%2Ddanger%2Edropdown%2Dtoggle%7Bbackground%2Dcolor%3A%23bd362f%7D%2Ebtn%2Dgroup%2Eopen%20%2Ebtn%2Dsuccess%2Edropdown%2Dtoggle%7Bbackground%2Dcolor%3A%2351a351%7D%2Ebtn%2Dgroup%2Eopen%20%2Ebtn%2Dinfo%2Edropdown%2Dtoggle%7Bbackground%2Dcolor%3A%232f96b4%7D%2Ebtn%2Dgroup%2Eopen%20%2Ebtn%2Dinverse%2Edropdown%2Dtoggle%7Bbackground%2Dcolor%3A%23222%7D%2Ebtn%20%2Ecaret%7Bmargin%2Dtop%3A8px%3Bmargin%2Dleft%3A0%7D%2Ebtn%2Dlarge%20%2Ecaret%7Bmargin%2Dtop%3A6px%7D%2Ebtn%2Dlarge%20%2Ecaret%7Bborder%2Dtop%2Dwidth%3A5px%3Bborder%2Dright%2Dwidth%3A5px%3Bborder%2Dleft%2Dwidth%3A5px%7D%2Ebtn%2Dmini%20%2Ecaret%2C%2Ebtn%2Dsmall%20%2Ecaret%7Bmargin%2Dtop%3A8px%7D%2Edropup%20%2Ebtn%2Dlarge%20%2Ecaret%7Bborder%2Dbottom%2Dwidth%3A5px%7D%2Ebtn%2Dprimary%20%2Ecaret%2C%2Ebtn%2Dwarning%20%2Ecaret%2C%2Ebtn%2Ddanger%20%2Ecaret%2C%2Ebtn%2Dinfo%20%2Ecaret%2C%2Ebtn%2Dsuccess%20%2Ecaret%2C%2Ebtn%2Dinverse%20%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23fff%3Bborder%2Dbottom%2Dcolor%3A%23fff%7D%2Ebtn%2Dgroup%2Dvertical%7Bdisplay%3Ainline%2Dblock%3B%2Adisplay%3Ainline%3B%2Azoom%3A1%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%7Bdisplay%3Ablock%3Bfloat%3Anone%3Bmax%2Dwidth%3A100%25%3B%2Dwebkit%2Dborder%2Dradius%3A0%3B%2Dmoz%2Dborder%2Dradius%3A0%3Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2B%2Ebtn%7Bmargin%2Dtop%3A%2D1px%3Bmargin%2Dleft%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Afirst%2Dchild%7B%2Dwebkit%2Dborder%2Dradius%3A4px%204px%200%200%3B%2Dmoz%2Dborder%2Dradius%3A4px%204px%200%200%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Alast%2Dchild%7B%2Dwebkit%2Dborder%2Dradius%3A0%200%204px%204px%3B%2Dmoz%2Dborder%2Dradius%3A0%200%204px%204px%3Bborder%2Dradius%3A0%200%204px%204px%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dlarge%3Afirst%2Dchild%7B%2Dwebkit%2Dborder%2Dradius%3A6px%206px%200%200%3B%2Dmoz%2Dborder%2Dradius%3A6px%206px%200%200%3Bborder%2Dradius%3A6px%206px%200%200%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dlarge%3Alast%2Dchild%7B%2Dwebkit%2Dborder%2Dradius%3A0%200%206px%206px%3B%2Dmoz%2Dborder%2Dradius%3A0%200%206px%206px%3Bborder%2Dradius%3A0%200%206px%206px%7D%2Ealert%7Bpadding%3A8px%2035px%208px%2014px%3Bmargin%2Dbottom%3A20px%3Btext%2Dshadow%3A0%201px%200%20rgba%28255%2C255%2C255%2C0%2E5%29%3Bbackground%2Dcolor%3A%23fcf8e3%3Bborder%3A1px%20solid%20%23fbeed5%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%7D%2Ealert%2C%2Ealert%20h4%7Bcolor%3A%23c09853%7D%2Ealert%20h4%7Bmargin%3A0%7D%2Ealert%20%2Eclose%7Bposition%3Arelative%3Btop%3A%2D2px%3Bright%3A%2D21px%3Bline%2Dheight%3A20px%7D%2Ealert%2Dsuccess%7Bcolor%3A%23468847%3Bbackground%2Dcolor%3A%23dff0d8%3Bborder%2Dcolor%3A%23d6e9c6%7D%2Ealert%2Dsuccess%20h4%7Bcolor%3A%23468847%7D%2Ealert%2Ddanger%2C%2Ealert%2Derror%7Bcolor%3A%23b94a48%3Bbackground%2Dcolor%3A%23f2dede%3Bborder%2Dcolor%3A%23eed3d7%7D%2Ealert%2Ddanger%20h4%2C%2Ealert%2Derror%20h4%7Bcolor%3A%23b94a48%7D%2Ealert%2Dinfo%7Bcolor%3A%233a87ad%3Bbackground%2Dcolor%3A%23d9edf7%3Bborder%2Dcolor%3A%23bce8f1%7D%2Ealert%2Dinfo%20h4%7Bcolor%3A%233a87ad%7D%2Ealert%2Dblock%7Bpadding%2Dtop%3A14px%3Bpadding%2Dbottom%3A14px%7D%2Ealert%2Dblock%3Ep%2C%2Ealert%2Dblock%3Eul%7Bmargin%2Dbottom%3A0%7D%2Ealert%2Dblock%20p%2Bp%7Bmargin%2Dtop%3A5px%7D%2Enav%7Bmargin%2Dbottom%3A20px%3Bmargin%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Enav%3Eli%3Ea%7Bdisplay%3Ablock%7D%2Enav%3Eli%3Ea%3Ahover%2C%2Enav%3Eli%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23eee%7D%2Enav%3Eli%3Ea%3Eimg%7Bmax%2Dwidth%3Anone%7D%2Enav%3E%2Epull%2Dright%7Bfloat%3Aright%7D%2Enav%2Dheader%7Bdisplay%3Ablock%3Bpadding%3A3px%2015px%3Bfont%2Dsize%3A11px%3Bfont%2Dweight%3Abold%3Bline%2Dheight%3A20px%3Bcolor%3A%23999%3Btext%2Dshadow%3A0%201px%200%20rgba%28255%2C255%2C255%2C0%2E5%29%3Btext%2Dtransform%3Auppercase%7D%2Enav%20li%2B%2Enav%2Dheader%7Bmargin%2Dtop%3A9px%7D%2Enav%2Dlist%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%3Bmargin%2Dbottom%3A0%7D%2Enav%2Dlist%3Eli%3Ea%2C%2Enav%2Dlist%20%2Enav%2Dheader%7Bmargin%2Dright%3A%2D15px%3Bmargin%2Dleft%3A%2D15px%3Btext%2Dshadow%3A0%201px%200%20rgba%28255%2C255%2C255%2C0%2E5%29%7D%2Enav%2Dlist%3Eli%3Ea%7Bpadding%3A3px%2015px%7D%2Enav%2Dlist%3E%2Eactive%3Ea%2C%2Enav%2Dlist%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dlist%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23fff%3Btext%2Dshadow%3A0%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E2%29%3Bbackground%2Dcolor%3A%2308c%7D%2Enav%2Dlist%20%5Bclass%5E%3D%22icon%2D%22%5D%2C%2Enav%2Dlist%20%5Bclass%2A%3D%22%20icon%2D%22%5D%7Bmargin%2Dright%3A2px%7D%2Enav%2Dlist%20%2Edivider%7B%2Awidth%3A100%25%3Bheight%3A1px%3Bmargin%3A9px%201px%3B%2Amargin%3A%2D5px%200%205px%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e5e5e5%3Bborder%2Dbottom%3A1px%20solid%20%23fff%7D%2Enav%2Dtabs%2C%2Enav%2Dpills%7B%2Azoom%3A1%7D%2Enav%2Dtabs%3Abefore%2C%2Enav%2Dpills%3Abefore%2C%2Enav%2Dtabs%3Aafter%2C%2Enav%2Dpills%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Enav%2Dtabs%3Aafter%2C%2Enav%2Dpills%3Aafter%7Bclear%3Aboth%7D%2Enav%2Dtabs%3Eli%2C%2Enav%2Dpills%3Eli%7Bfloat%3Aleft%7D%2Enav%2Dtabs%3Eli%3Ea%2C%2Enav%2Dpills%3Eli%3Ea%7Bpadding%2Dright%3A12px%3Bpadding%2Dleft%3A12px%3Bmargin%2Dright%3A2px%3Bline%2Dheight%3A14px%7D%2Enav%2Dtabs%7Bborder%2Dbottom%3A1px%20solid%20%23ddd%7D%2Enav%2Dtabs%3Eli%7Bmargin%2Dbottom%3A%2D1px%7D%2Enav%2Dtabs%3Eli%3Ea%7Bpadding%2Dtop%3A8px%3Bpadding%2Dbottom%3A8px%3Bline%2Dheight%3A20px%3Bborder%3A1px%20solid%20transparent%3B%2Dwebkit%2Dborder%2Dradius%3A4px%204px%200%200%3B%2Dmoz%2Dborder%2Dradius%3A4px%204px%200%200%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Enav%2Dtabs%3Eli%3Ea%3Ahover%2C%2Enav%2Dtabs%3Eli%3Ea%3Afocus%7Bborder%2Dcolor%3A%23eee%20%23eee%20%23ddd%7D%2Enav%2Dtabs%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23555%3Bcursor%3Adefault%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%3Bborder%2Dbottom%2Dcolor%3Atransparent%7D%2Enav%2Dpills%3Eli%3Ea%7Bpadding%2Dtop%3A8px%3Bpadding%2Dbottom%3A8px%3Bmargin%2Dtop%3A2px%3Bmargin%2Dbottom%3A2px%3B%2Dwebkit%2Dborder%2Dradius%3A5px%3B%2Dmoz%2Dborder%2Dradius%3A5px%3Bborder%2Dradius%3A5px%7D%2Enav%2Dpills%3E%2Eactive%3Ea%2C%2Enav%2Dpills%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dpills%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%2308c%7D%2Enav%2Dstacked%3Eli%7Bfloat%3Anone%7D%2Enav%2Dstacked%3Eli%3Ea%7Bmargin%2Dright%3A0%7D%2Enav%2Dtabs%2Enav%2Dstacked%7Bborder%2Dbottom%3A0%7D%2Enav%2Dtabs%2Enav%2Dstacked%3Eli%3Ea%7Bborder%3A1px%20solid%20%23ddd%3B%2Dwebkit%2Dborder%2Dradius%3A0%3B%2Dmoz%2Dborder%2Dradius%3A0%3Bborder%2Dradius%3A0%7D%2Enav%2Dtabs%2Enav%2Dstacked%3Eli%3Afirst%2Dchild%3Ea%7B%2Dwebkit%2Dborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dtop%2Dright%2Dradius%3A4px%3B%2Dwebkit%2Dborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dtopright%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dtopleft%3A4px%7D%2Enav%2Dtabs%2Enav%2Dstacked%3Eli%3Alast%2Dchild%3Ea%7B%2Dwebkit%2Dborder%2Dbottom%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A4px%3B%2Dwebkit%2Dborder%2Dbottom%2Dleft%2Dradius%3A4px%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomright%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomleft%3A4px%7D%2Enav%2Dtabs%2Enav%2Dstacked%3Eli%3Ea%3Ahover%2C%2Enav%2Dtabs%2Enav%2Dstacked%3Eli%3Ea%3Afocus%7Bz%2Dindex%3A2%3Bborder%2Dcolor%3A%23ddd%7D%2Enav%2Dpills%2Enav%2Dstacked%3Eli%3Ea%7Bmargin%2Dbottom%3A3px%7D%2Enav%2Dpills%2Enav%2Dstacked%3Eli%3Alast%2Dchild%3Ea%7Bmargin%2Dbottom%3A1px%7D%2Enav%2Dtabs%20%2Edropdown%2Dmenu%7B%2Dwebkit%2Dborder%2Dradius%3A0%200%206px%206px%3B%2Dmoz%2Dborder%2Dradius%3A0%200%206px%206px%3Bborder%2Dradius%3A0%200%206px%206px%7D%2Enav%2Dpills%20%2Edropdown%2Dmenu%7B%2Dwebkit%2Dborder%2Dradius%3A6px%3B%2Dmoz%2Dborder%2Dradius%3A6px%3Bborder%2Dradius%3A6px%7D%2Enav%20%2Edropdown%2Dtoggle%20%2Ecaret%7Bmargin%2Dtop%3A6px%3Bborder%2Dtop%2Dcolor%3A%2308c%3Bborder%2Dbottom%2Dcolor%3A%2308c%7D%2Enav%20%2Edropdown%2Dtoggle%3Ahover%20%2Ecaret%2C%2Enav%20%2Edropdown%2Dtoggle%3Afocus%20%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23005580%3Bborder%2Dbottom%2Dcolor%3A%23005580%7D%2Enav%2Dtabs%20%2Edropdown%2Dtoggle%20%2Ecaret%7Bmargin%2Dtop%3A8px%7D%2Enav%20%2Eactive%20%2Edropdown%2Dtoggle%20%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23fff%3Bborder%2Dbottom%2Dcolor%3A%23fff%7D%2Enav%2Dtabs%20%2Eactive%20%2Edropdown%2Dtoggle%20%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23555%3Bborder%2Dbottom%2Dcolor%3A%23555%7D%2Enav%3E%2Edropdown%2Eactive%3Ea%3Ahover%2C%2Enav%3E%2Edropdown%2Eactive%3Ea%3Afocus%7Bcursor%3Apointer%7D%2Enav%2Dtabs%20%2Eopen%20%2Edropdown%2Dtoggle%2C%2Enav%2Dpills%20%2Eopen%20%2Edropdown%2Dtoggle%2C%2Enav%3Eli%2Edropdown%2Eopen%2Eactive%3Ea%3Ahover%2C%2Enav%3Eli%2Edropdown%2Eopen%2Eactive%3Ea%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23999%3Bborder%2Dcolor%3A%23999%7D%2Enav%20li%2Edropdown%2Eopen%20%2Ecaret%2C%2Enav%20li%2Edropdown%2Eopen%2Eactive%20%2Ecaret%2C%2Enav%20li%2Edropdown%2Eopen%20a%3Ahover%20%2Ecaret%2C%2Enav%20li%2Edropdown%2Eopen%20a%3Afocus%20%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23fff%3Bborder%2Dbottom%2Dcolor%3A%23fff%3Bopacity%3A1%3Bfilter%3Aalpha%28opacity%3D100%29%7D%2Etabs%2Dstacked%20%2Eopen%3Ea%3Ahover%2C%2Etabs%2Dstacked%20%2Eopen%3Ea%3Afocus%7Bborder%2Dcolor%3A%23999%7D%2Etabbable%7B%2Azoom%3A1%7D%2Etabbable%3Abefore%2C%2Etabbable%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Etabbable%3Aafter%7Bclear%3Aboth%7D%2Etab%2Dcontent%7Boverflow%3Aauto%7D%2Etabs%2Dbelow%3E%2Enav%2Dtabs%2C%2Etabs%2Dright%3E%2Enav%2Dtabs%2C%2Etabs%2Dleft%3E%2Enav%2Dtabs%7Bborder%2Dbottom%3A0%7D%2Etab%2Dcontent%3E%2Etab%2Dpane%2C%2Epill%2Dcontent%3E%2Epill%2Dpane%7Bdisplay%3Anone%7D%2Etab%2Dcontent%3E%2Eactive%2C%2Epill%2Dcontent%3E%2Eactive%7Bdisplay%3Ablock%7D%2Etabs%2Dbelow%3E%2Enav%2Dtabs%7Bborder%2Dtop%3A1px%20solid%20%23ddd%7D%2Etabs%2Dbelow%3E%2Enav%2Dtabs%3Eli%7Bmargin%2Dtop%3A%2D1px%3Bmargin%2Dbottom%3A0%7D%2Etabs%2Dbelow%3E%2Enav%2Dtabs%3Eli%3Ea%7B%2Dwebkit%2Dborder%2Dradius%3A0%200%204px%204px%3B%2Dmoz%2Dborder%2Dradius%3A0%200%204px%204px%3Bborder%2Dradius%3A0%200%204px%204px%7D%2Etabs%2Dbelow%3E%2Enav%2Dtabs%3Eli%3Ea%3Ahover%2C%2Etabs%2Dbelow%3E%2Enav%2Dtabs%3Eli%3Ea%3Afocus%7Bborder%2Dtop%2Dcolor%3A%23ddd%3Bborder%2Dbottom%2Dcolor%3Atransparent%7D%2Etabs%2Dbelow%3E%2Enav%2Dtabs%3E%2Eactive%3Ea%2C%2Etabs%2Dbelow%3E%2Enav%2Dtabs%3E%2Eactive%3Ea%3Ahover%2C%2Etabs%2Dbelow%3E%2Enav%2Dtabs%3E%2Eactive%3Ea%3Afocus%7Bborder%2Dcolor%3Atransparent%20%23ddd%20%23ddd%20%23ddd%7D%2Etabs%2Dleft%3E%2Enav%2Dtabs%3Eli%2C%2Etabs%2Dright%3E%2Enav%2Dtabs%3Eli%7Bfloat%3Anone%7D%2Etabs%2Dleft%3E%2Enav%2Dtabs%3Eli%3Ea%2C%2Etabs%2Dright%3E%2Enav%2Dtabs%3Eli%3Ea%7Bmin%2Dwidth%3A74px%3Bmargin%2Dright%3A0%3Bmargin%2Dbottom%3A3px%7D%2Etabs%2Dleft%3E%2Enav%2Dtabs%7Bfloat%3Aleft%3Bmargin%2Dright%3A19px%3Bborder%2Dright%3A1px%20solid%20%23ddd%7D%2Etabs%2Dleft%3E%2Enav%2Dtabs%3Eli%3Ea%7Bmargin%2Dright%3A%2D1px%3B%2Dwebkit%2Dborder%2Dradius%3A4px%200%200%204px%3B%2Dmoz%2Dborder%2Dradius%3A4px%200%200%204px%3Bborder%2Dradius%3A4px%200%200%204px%7D%2Etabs%2Dleft%3E%2Enav%2Dtabs%3Eli%3Ea%3Ahover%2C%2Etabs%2Dleft%3E%2Enav%2Dtabs%3Eli%3Ea%3Afocus%7Bborder%2Dcolor%3A%23eee%20%23ddd%20%23eee%20%23eee%7D%2Etabs%2Dleft%3E%2Enav%2Dtabs%20%2Eactive%3Ea%2C%2Etabs%2Dleft%3E%2Enav%2Dtabs%20%2Eactive%3Ea%3Ahover%2C%2Etabs%2Dleft%3E%2Enav%2Dtabs%20%2Eactive%3Ea%3Afocus%7Bborder%2Dcolor%3A%23ddd%20transparent%20%23ddd%20%23ddd%3B%2Aborder%2Dright%2Dcolor%3A%23fff%7D%2Etabs%2Dright%3E%2Enav%2Dtabs%7Bfloat%3Aright%3Bmargin%2Dleft%3A19px%3Bborder%2Dleft%3A1px%20solid%20%23ddd%7D%2Etabs%2Dright%3E%2Enav%2Dtabs%3Eli%3Ea%7Bmargin%2Dleft%3A%2D1px%3B%2Dwebkit%2Dborder%2Dradius%3A0%204px%204px%200%3B%2Dmoz%2Dborder%2Dradius%3A0%204px%204px%200%3Bborder%2Dradius%3A0%204px%204px%200%7D%2Etabs%2Dright%3E%2Enav%2Dtabs%3Eli%3Ea%3Ahover%2C%2Etabs%2Dright%3E%2Enav%2Dtabs%3Eli%3Ea%3Afocus%7Bborder%2Dcolor%3A%23eee%20%23eee%20%23eee%20%23ddd%7D%2Etabs%2Dright%3E%2Enav%2Dtabs%20%2Eactive%3Ea%2C%2Etabs%2Dright%3E%2Enav%2Dtabs%20%2Eactive%3Ea%3Ahover%2C%2Etabs%2Dright%3E%2Enav%2Dtabs%20%2Eactive%3Ea%3Afocus%7Bborder%2Dcolor%3A%23ddd%20%23ddd%20%23ddd%20transparent%3B%2Aborder%2Dleft%2Dcolor%3A%23fff%7D%2Enav%3E%2Edisabled%3Ea%7Bcolor%3A%23999%7D%2Enav%3E%2Edisabled%3Ea%3Ahover%2C%2Enav%3E%2Edisabled%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bcursor%3Adefault%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%7B%2Aposition%3Arelative%3B%2Az%2Dindex%3A2%3Bmargin%2Dbottom%3A20px%3Boverflow%3Avisible%7D%2Enavbar%2Dinner%7Bmin%2Dheight%3A40px%3Bpadding%2Dright%3A20px%3Bpadding%2Dleft%3A20px%3Bbackground%2Dcolor%3A%23fafafa%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%23fff%2C%23f2f2f2%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%23fff%29%2Cto%28%23f2f2f2%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%23fff%2C%23f2f2f2%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%23fff%2C%23f2f2f2%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%23fff%2C%23f2f2f2%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bborder%3A1px%20solid%20%23d4d4d4%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ffffffff%27%2CendColorstr%3D%27%23fff2f2f2%27%2CGradientType%3D0%29%3B%2Azoom%3A1%3B%2Dwebkit%2Dbox%2Dshadow%3A0%201px%204px%20rgba%280%2C0%2C0%2C0%2E065%29%3B%2Dmoz%2Dbox%2Dshadow%3A0%201px%204px%20rgba%280%2C0%2C0%2C0%2E065%29%3Bbox%2Dshadow%3A0%201px%204px%20rgba%280%2C0%2C0%2C0%2E065%29%7D%2Enavbar%2Dinner%3Abefore%2C%2Enavbar%2Dinner%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Enavbar%2Dinner%3Aafter%7Bclear%3Aboth%7D%2Enavbar%20%2Econtainer%7Bwidth%3Aauto%7D%2Enav%2Dcollapse%2Ecollapse%7Bheight%3Aauto%3Boverflow%3Avisible%7D%2Enavbar%20%2Ebrand%7Bdisplay%3Ablock%3Bfloat%3Aleft%3Bpadding%3A10px%2020px%2010px%3Bmargin%2Dleft%3A%2D20px%3Bfont%2Dsize%3A20px%3Bfont%2Dweight%3A200%3Bcolor%3A%23777%3Btext%2Dshadow%3A0%201px%200%20%23fff%7D%2Enavbar%20%2Ebrand%3Ahover%2C%2Enavbar%20%2Ebrand%3Afocus%7Btext%2Ddecoration%3Anone%7D%2Enavbar%2Dtext%7Bmargin%2Dbottom%3A0%3Bline%2Dheight%3A40px%3Bcolor%3A%23777%7D%2Enavbar%2Dlink%7Bcolor%3A%23777%7D%2Enavbar%2Dlink%3Ahover%2C%2Enavbar%2Dlink%3Afocus%7Bcolor%3A%23333%7D%2Enavbar%20%2Edivider%2Dvertical%7Bheight%3A40px%3Bmargin%3A0%209px%3Bborder%2Dright%3A1px%20solid%20%23fff%3Bborder%2Dleft%3A1px%20solid%20%23f2f2f2%7D%2Enavbar%20%2Ebtn%2C%2Enavbar%20%2Ebtn%2Dgroup%7Bmargin%2Dtop%3A5px%7D%2Enavbar%20%2Ebtn%2Dgroup%20%2Ebtn%2C%2Enavbar%20%2Einput%2Dprepend%20%2Ebtn%2C%2Enavbar%20%2Einput%2Dappend%20%2Ebtn%2C%2Enavbar%20%2Einput%2Dprepend%20%2Ebtn%2Dgroup%2C%2Enavbar%20%2Einput%2Dappend%20%2Ebtn%2Dgroup%7Bmargin%2Dtop%3A0%7D%2Enavbar%2Dform%7Bmargin%2Dbottom%3A0%3B%2Azoom%3A1%7D%2Enavbar%2Dform%3Abefore%2C%2Enavbar%2Dform%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Enavbar%2Dform%3Aafter%7Bclear%3Aboth%7D%2Enavbar%2Dform%20input%2C%2Enavbar%2Dform%20select%2C%2Enavbar%2Dform%20%2Eradio%2C%2Enavbar%2Dform%20%2Echeckbox%7Bmargin%2Dtop%3A5px%7D%2Enavbar%2Dform%20input%2C%2Enavbar%2Dform%20select%2C%2Enavbar%2Dform%20%2Ebtn%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%7D%2Enavbar%2Dform%20input%5Btype%3D%22image%22%5D%2C%2Enavbar%2Dform%20input%5Btype%3D%22checkbox%22%5D%2C%2Enavbar%2Dform%20input%5Btype%3D%22radio%22%5D%7Bmargin%2Dtop%3A3px%7D%2Enavbar%2Dform%20%2Einput%2Dappend%2C%2Enavbar%2Dform%20%2Einput%2Dprepend%7Bmargin%2Dtop%3A5px%3Bwhite%2Dspace%3Anowrap%7D%2Enavbar%2Dform%20%2Einput%2Dappend%20input%2C%2Enavbar%2Dform%20%2Einput%2Dprepend%20input%7Bmargin%2Dtop%3A0%7D%2Enavbar%2Dsearch%7Bposition%3Arelative%3Bfloat%3Aleft%3Bmargin%2Dtop%3A5px%3Bmargin%2Dbottom%3A0%7D%2Enavbar%2Dsearch%20%2Esearch%2Dquery%7Bpadding%3A4px%2014px%3Bmargin%2Dbottom%3A0%3Bfont%2Dfamily%3A%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dsize%3A13px%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%3B%2Dwebkit%2Dborder%2Dradius%3A15px%3B%2Dmoz%2Dborder%2Dradius%3A15px%3Bborder%2Dradius%3A15px%7D%2Enavbar%2Dstatic%2Dtop%7Bposition%3Astatic%3Bmargin%2Dbottom%3A0%7D%2Enavbar%2Dstatic%2Dtop%20%2Enavbar%2Dinner%7B%2Dwebkit%2Dborder%2Dradius%3A0%3B%2Dmoz%2Dborder%2Dradius%3A0%3Bborder%2Dradius%3A0%7D%2Enavbar%2Dfixed%2Dtop%2C%2Enavbar%2Dfixed%2Dbottom%7Bposition%3Afixed%3Bright%3A0%3Bleft%3A0%3Bz%2Dindex%3A1030%3Bmargin%2Dbottom%3A0%7D%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dinner%2C%2Enavbar%2Dstatic%2Dtop%20%2Enavbar%2Dinner%7Bborder%2Dwidth%3A0%200%201px%7D%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dinner%7Bborder%2Dwidth%3A1px%200%200%7D%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dinner%2C%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dinner%7Bpadding%2Dright%3A0%3Bpadding%2Dleft%3A0%3B%2Dwebkit%2Dborder%2Dradius%3A0%3B%2Dmoz%2Dborder%2Dradius%3A0%3Bborder%2Dradius%3A0%7D%2Enavbar%2Dstatic%2Dtop%20%2Econtainer%2C%2Enavbar%2Dfixed%2Dtop%20%2Econtainer%2C%2Enavbar%2Dfixed%2Dbottom%20%2Econtainer%7Bwidth%3A940px%7D%2Enavbar%2Dfixed%2Dtop%7Btop%3A0%7D%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dinner%2C%2Enavbar%2Dstatic%2Dtop%20%2Enavbar%2Dinner%7B%2Dwebkit%2Dbox%2Dshadow%3A0%201px%2010px%20rgba%280%2C0%2C0%2C0%2E1%29%3B%2Dmoz%2Dbox%2Dshadow%3A0%201px%2010px%20rgba%280%2C0%2C0%2C0%2E1%29%3Bbox%2Dshadow%3A0%201px%2010px%20rgba%280%2C0%2C0%2C0%2E1%29%7D%2Enavbar%2Dfixed%2Dbottom%7Bbottom%3A0%7D%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dinner%7B%2Dwebkit%2Dbox%2Dshadow%3A0%20%2D1px%2010px%20rgba%280%2C0%2C0%2C0%2E1%29%3B%2Dmoz%2Dbox%2Dshadow%3A0%20%2D1px%2010px%20rgba%280%2C0%2C0%2C0%2E1%29%3Bbox%2Dshadow%3A0%20%2D1px%2010px%20rgba%280%2C0%2C0%2C0%2E1%29%7D%2Enavbar%20%2Enav%7Bposition%3Arelative%3Bleft%3A0%3Bdisplay%3Ablock%3Bfloat%3Aleft%3Bmargin%3A0%2010px%200%200%7D%2Enavbar%20%2Enav%2Epull%2Dright%7Bfloat%3Aright%3Bmargin%2Dright%3A0%7D%2Enavbar%20%2Enav%3Eli%7Bfloat%3Aleft%7D%2Enavbar%20%2Enav%3Eli%3Ea%7Bfloat%3Anone%3Bpadding%3A10px%2015px%2010px%3Bcolor%3A%23777%3Btext%2Ddecoration%3Anone%3Btext%2Dshadow%3A0%201px%200%20%23fff%7D%2Enavbar%20%2Enav%20%2Edropdown%2Dtoggle%20%2Ecaret%7Bmargin%2Dtop%3A8px%7D%2Enavbar%20%2Enav%3Eli%3Ea%3Afocus%2C%2Enavbar%20%2Enav%3Eli%3Ea%3Ahover%7Bcolor%3A%23333%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%20%2Enav%3E%2Eactive%3Ea%2C%2Enavbar%20%2Enav%3E%2Eactive%3Ea%3Ahover%2C%2Enavbar%20%2Enav%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23555%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23e5e5e5%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%203px%208px%20rgba%280%2C0%2C0%2C0%2E125%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%203px%208px%20rgba%280%2C0%2C0%2C0%2E125%29%3Bbox%2Dshadow%3Ainset%200%203px%208px%20rgba%280%2C0%2C0%2C0%2E125%29%7D%2Enavbar%20%2Ebtn%2Dnavbar%7Bdisplay%3Anone%3Bfloat%3Aright%3Bpadding%3A7px%2010px%3Bmargin%2Dright%3A5px%3Bmargin%2Dleft%3A5px%3Bcolor%3A%23fff%3Btext%2Dshadow%3A0%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bbackground%2Dcolor%3A%23ededed%3B%2Abackground%2Dcolor%3A%23e5e5e5%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%23f2f2f2%2C%23e5e5e5%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%23f2f2f2%29%2Cto%28%23e5e5e5%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%23f2f2f2%2C%23e5e5e5%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%23f2f2f2%2C%23e5e5e5%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%23f2f2f2%2C%23e5e5e5%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bborder%2Dcolor%3A%23e5e5e5%20%23e5e5e5%20%23bfbfbf%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23fff2f2f2%27%2CendColorstr%3D%27%23ffe5e5e5%27%2CGradientType%3D0%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E075%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E075%29%7D%2Enavbar%20%2Ebtn%2Dnavbar%3Ahover%2C%2Enavbar%20%2Ebtn%2Dnavbar%3Afocus%2C%2Enavbar%20%2Ebtn%2Dnavbar%3Aactive%2C%2Enavbar%20%2Ebtn%2Dnavbar%2Eactive%2C%2Enavbar%20%2Ebtn%2Dnavbar%2Edisabled%2C%2Enavbar%20%2Ebtn%2Dnavbar%5Bdisabled%5D%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23e5e5e5%3B%2Abackground%2Dcolor%3A%23d9d9d9%7D%2Enavbar%20%2Ebtn%2Dnavbar%3Aactive%2C%2Enavbar%20%2Ebtn%2Dnavbar%2Eactive%7Bbackground%2Dcolor%3A%23ccc%20%5C9%7D%2Enavbar%20%2Ebtn%2Dnavbar%20%2Eicon%2Dbar%7Bdisplay%3Ablock%3Bwidth%3A18px%3Bheight%3A2px%3Bbackground%2Dcolor%3A%23f5f5f5%3B%2Dwebkit%2Dborder%2Dradius%3A1px%3B%2Dmoz%2Dborder%2Dradius%3A1px%3Bborder%2Dradius%3A1px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%201px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3B%2Dmoz%2Dbox%2Dshadow%3A0%201px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bbox%2Dshadow%3A0%201px%200%20rgba%280%2C0%2C0%2C0%2E25%29%7D%2Ebtn%2Dnavbar%20%2Eicon%2Dbar%2B%2Eicon%2Dbar%7Bmargin%2Dtop%3A3px%7D%2Enavbar%20%2Enav%3Eli%3E%2Edropdown%2Dmenu%3Abefore%7Bposition%3Aabsolute%3Btop%3A%2D7px%3Bleft%3A9px%3Bdisplay%3Ainline%2Dblock%3Bborder%2Dright%3A7px%20solid%20transparent%3Bborder%2Dbottom%3A7px%20solid%20%23ccc%3Bborder%2Dleft%3A7px%20solid%20transparent%3Bborder%2Dbottom%2Dcolor%3Argba%280%2C0%2C0%2C0%2E2%29%3Bcontent%3A%27%27%7D%2Enavbar%20%2Enav%3Eli%3E%2Edropdown%2Dmenu%3Aafter%7Bposition%3Aabsolute%3Btop%3A%2D6px%3Bleft%3A10px%3Bdisplay%3Ainline%2Dblock%3Bborder%2Dright%3A6px%20solid%20transparent%3Bborder%2Dbottom%3A6px%20solid%20%23fff%3Bborder%2Dleft%3A6px%20solid%20transparent%3Bcontent%3A%27%27%7D%2Enavbar%2Dfixed%2Dbottom%20%2Enav%3Eli%3E%2Edropdown%2Dmenu%3Abefore%7Btop%3Aauto%3Bbottom%3A%2D7px%3Bborder%2Dtop%3A7px%20solid%20%23ccc%3Bborder%2Dbottom%3A0%3Bborder%2Dtop%2Dcolor%3Argba%280%2C0%2C0%2C0%2E2%29%7D%2Enavbar%2Dfixed%2Dbottom%20%2Enav%3Eli%3E%2Edropdown%2Dmenu%3Aafter%7Btop%3Aauto%3Bbottom%3A%2D6px%3Bborder%2Dtop%3A6px%20solid%20%23fff%3Bborder%2Dbottom%3A0%7D%2Enavbar%20%2Enav%20li%2Edropdown%3Ea%3Ahover%20%2Ecaret%2C%2Enavbar%20%2Enav%20li%2Edropdown%3Ea%3Afocus%20%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23333%3Bborder%2Dbottom%2Dcolor%3A%23333%7D%2Enavbar%20%2Enav%20li%2Edropdown%2Eopen%3E%2Edropdown%2Dtoggle%2C%2Enavbar%20%2Enav%20li%2Edropdown%2Eactive%3E%2Edropdown%2Dtoggle%2C%2Enavbar%20%2Enav%20li%2Edropdown%2Eopen%2Eactive%3E%2Edropdown%2Dtoggle%7Bcolor%3A%23555%3Bbackground%2Dcolor%3A%23e5e5e5%7D%2Enavbar%20%2Enav%20li%2Edropdown%3E%2Edropdown%2Dtoggle%20%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23777%3Bborder%2Dbottom%2Dcolor%3A%23777%7D%2Enavbar%20%2Enav%20li%2Edropdown%2Eopen%3E%2Edropdown%2Dtoggle%20%2Ecaret%2C%2Enavbar%20%2Enav%20li%2Edropdown%2Eactive%3E%2Edropdown%2Dtoggle%20%2Ecaret%2C%2Enavbar%20%2Enav%20li%2Edropdown%2Eopen%2Eactive%3E%2Edropdown%2Dtoggle%20%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23555%3Bborder%2Dbottom%2Dcolor%3A%23555%7D%2Enavbar%20%2Epull%2Dright%3Eli%3E%2Edropdown%2Dmenu%2C%2Enavbar%20%2Enav%3Eli%3E%2Edropdown%2Dmenu%2Epull%2Dright%7Bright%3A0%3Bleft%3Aauto%7D%2Enavbar%20%2Epull%2Dright%3Eli%3E%2Edropdown%2Dmenu%3Abefore%2C%2Enavbar%20%2Enav%3Eli%3E%2Edropdown%2Dmenu%2Epull%2Dright%3Abefore%7Bright%3A12px%3Bleft%3Aauto%7D%2Enavbar%20%2Epull%2Dright%3Eli%3E%2Edropdown%2Dmenu%3Aafter%2C%2Enavbar%20%2Enav%3Eli%3E%2Edropdown%2Dmenu%2Epull%2Dright%3Aafter%7Bright%3A13px%3Bleft%3Aauto%7D%2Enavbar%20%2Epull%2Dright%3Eli%3E%2Edropdown%2Dmenu%20%2Edropdown%2Dmenu%2C%2Enavbar%20%2Enav%3Eli%3E%2Edropdown%2Dmenu%2Epull%2Dright%20%2Edropdown%2Dmenu%7Bright%3A100%25%3Bleft%3Aauto%3Bmargin%2Dright%3A%2D1px%3Bmargin%2Dleft%3A0%3B%2Dwebkit%2Dborder%2Dradius%3A6px%200%206px%206px%3B%2Dmoz%2Dborder%2Dradius%3A6px%200%206px%206px%3Bborder%2Dradius%3A6px%200%206px%206px%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dinner%7Bbackground%2Dcolor%3A%231b1b1b%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%23222%2C%23111%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%23222%29%2Cto%28%23111%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%23222%2C%23111%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%23222%2C%23111%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%23222%2C%23111%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bborder%2Dcolor%3A%23252525%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff222222%27%2CendColorstr%3D%27%23ff111111%27%2CGradientType%3D0%29%7D%2Enavbar%2Dinverse%20%2Ebrand%2C%2Enavbar%2Dinverse%20%2Enav%3Eli%3Ea%7Bcolor%3A%23999%3Btext%2Dshadow%3A0%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%7D%2Enavbar%2Dinverse%20%2Ebrand%3Ahover%2C%2Enavbar%2Dinverse%20%2Enav%3Eli%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Ebrand%3Afocus%2C%2Enavbar%2Dinverse%20%2Enav%3Eli%3Ea%3Afocus%7Bcolor%3A%23fff%7D%2Enavbar%2Dinverse%20%2Ebrand%7Bcolor%3A%23999%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtext%7Bcolor%3A%23999%7D%2Enavbar%2Dinverse%20%2Enav%3Eli%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enav%3Eli%3Ea%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enav%20%2Eactive%3Ea%2C%2Enavbar%2Dinverse%20%2Enav%20%2Eactive%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enav%20%2Eactive%3Ea%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23111%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dlink%7Bcolor%3A%23999%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dlink%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dlink%3Afocus%7Bcolor%3A%23fff%7D%2Enavbar%2Dinverse%20%2Edivider%2Dvertical%7Bborder%2Dright%2Dcolor%3A%23222%3Bborder%2Dleft%2Dcolor%3A%23111%7D%2Enavbar%2Dinverse%20%2Enav%20li%2Edropdown%2Eopen%3E%2Edropdown%2Dtoggle%2C%2Enavbar%2Dinverse%20%2Enav%20li%2Edropdown%2Eactive%3E%2Edropdown%2Dtoggle%2C%2Enavbar%2Dinverse%20%2Enav%20li%2Edropdown%2Eopen%2Eactive%3E%2Edropdown%2Dtoggle%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23111%7D%2Enavbar%2Dinverse%20%2Enav%20li%2Edropdown%3Ea%3Ahover%20%2Ecaret%2C%2Enavbar%2Dinverse%20%2Enav%20li%2Edropdown%3Ea%3Afocus%20%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23fff%3Bborder%2Dbottom%2Dcolor%3A%23fff%7D%2Enavbar%2Dinverse%20%2Enav%20li%2Edropdown%3E%2Edropdown%2Dtoggle%20%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23999%3Bborder%2Dbottom%2Dcolor%3A%23999%7D%2Enavbar%2Dinverse%20%2Enav%20li%2Edropdown%2Eopen%3E%2Edropdown%2Dtoggle%20%2Ecaret%2C%2Enavbar%2Dinverse%20%2Enav%20li%2Edropdown%2Eactive%3E%2Edropdown%2Dtoggle%20%2Ecaret%2C%2Enavbar%2Dinverse%20%2Enav%20li%2Edropdown%2Eopen%2Eactive%3E%2Edropdown%2Dtoggle%20%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23fff%3Bborder%2Dbottom%2Dcolor%3A%23fff%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dsearch%20%2Esearch%2Dquery%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23515151%3Bborder%2Dcolor%3A%23111%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E15%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E15%29%3Bbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E15%29%3B%2Dwebkit%2Dtransition%3Anone%3B%2Dmoz%2Dtransition%3Anone%3B%2Do%2Dtransition%3Anone%3Btransition%3Anone%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dsearch%20%2Esearch%2Dquery%3A%2Dmoz%2Dplaceholder%7Bcolor%3A%23ccc%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dsearch%20%2Esearch%2Dquery%3A%2Dms%2Dinput%2Dplaceholder%7Bcolor%3A%23ccc%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dsearch%20%2Esearch%2Dquery%3A%3A%2Dwebkit%2Dinput%2Dplaceholder%7Bcolor%3A%23ccc%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dsearch%20%2Esearch%2Dquery%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dsearch%20%2Esearch%2Dquery%2Efocused%7Bpadding%3A5px%2015px%3Bcolor%3A%23333%3Btext%2Dshadow%3A0%201px%200%20%23fff%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A0%3Boutline%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3A0%200%203px%20rgba%280%2C0%2C0%2C0%2E15%29%3B%2Dmoz%2Dbox%2Dshadow%3A0%200%203px%20rgba%280%2C0%2C0%2C0%2E15%29%3Bbox%2Dshadow%3A0%200%203px%20rgba%280%2C0%2C0%2C0%2E15%29%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dnavbar%7Bcolor%3A%23fff%3Btext%2Dshadow%3A0%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bbackground%2Dcolor%3A%230e0e0e%3B%2Abackground%2Dcolor%3A%23040404%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%23151515%2C%23040404%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%23151515%29%2Cto%28%23040404%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%23151515%2C%23040404%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%23151515%2C%23040404%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%23151515%2C%23040404%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bborder%2Dcolor%3A%23040404%20%23040404%20%23000%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E1%29%20rgba%280%2C0%2C0%2C0%2E25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff151515%27%2CendColorstr%3D%27%23ff040404%27%2CGradientType%3D0%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dnavbar%3Ahover%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dnavbar%3Afocus%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dnavbar%3Aactive%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dnavbar%2Eactive%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dnavbar%2Edisabled%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dnavbar%5Bdisabled%5D%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23040404%3B%2Abackground%2Dcolor%3A%23000%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dnavbar%3Aactive%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dnavbar%2Eactive%7Bbackground%2Dcolor%3A%23000%20%5C9%7D%2Ebreadcrumb%7Bpadding%3A8px%2015px%3Bmargin%3A0%200%2020px%3Blist%2Dstyle%3Anone%3Bbackground%2Dcolor%3A%23f5f5f5%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%7D%2Ebreadcrumb%3Eli%7Bdisplay%3Ainline%2Dblock%3B%2Adisplay%3Ainline%3Btext%2Dshadow%3A0%201px%200%20%23fff%3B%2Azoom%3A1%7D%2Ebreadcrumb%3Eli%3E%2Edivider%7Bpadding%3A0%205px%3Bcolor%3A%23ccc%7D%2Ebreadcrumb%3E%2Eactive%7Bcolor%3A%23999%7D%2Epagination%7Bmargin%3A20px%200%7D%2Epagination%20ul%7Bdisplay%3Ainline%2Dblock%3B%2Adisplay%3Ainline%3Bmargin%2Dbottom%3A0%3Bmargin%2Dleft%3A0%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%3B%2Azoom%3A1%3B%2Dwebkit%2Dbox%2Dshadow%3A0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%3B%2Dmoz%2Dbox%2Dshadow%3A0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3A0%201px%202px%20rgba%280%2C0%2C0%2C0%2E05%29%7D%2Epagination%20ul%3Eli%7Bdisplay%3Ainline%7D%2Epagination%20ul%3Eli%3Ea%2C%2Epagination%20ul%3Eli%3Espan%7Bfloat%3Aleft%3Bpadding%3A4px%2012px%3Bline%2Dheight%3A20px%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%3Bborder%2Dleft%2Dwidth%3A0%7D%2Epagination%20ul%3Eli%3Ea%3Ahover%2C%2Epagination%20ul%3Eli%3Ea%3Afocus%2C%2Epagination%20ul%3E%2Eactive%3Ea%2C%2Epagination%20ul%3E%2Eactive%3Espan%7Bbackground%2Dcolor%3A%23f5f5f5%7D%2Epagination%20ul%3E%2Eactive%3Ea%2C%2Epagination%20ul%3E%2Eactive%3Espan%7Bcolor%3A%23999%3Bcursor%3Adefault%7D%2Epagination%20ul%3E%2Edisabled%3Espan%2C%2Epagination%20ul%3E%2Edisabled%3Ea%2C%2Epagination%20ul%3E%2Edisabled%3Ea%3Ahover%2C%2Epagination%20ul%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23999%3Bcursor%3Adefault%3Bbackground%2Dcolor%3Atransparent%7D%2Epagination%20ul%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%20ul%3Eli%3Afirst%2Dchild%3Espan%7Bborder%2Dleft%2Dwidth%3A1px%3B%2Dwebkit%2Dborder%2Dbottom%2Dleft%2Dradius%3A4px%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%3B%2Dwebkit%2Dborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomleft%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dtopleft%3A4px%7D%2Epagination%20ul%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%20ul%3Eli%3Alast%2Dchild%3Espan%7B%2Dwebkit%2Dborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dtop%2Dright%2Dradius%3A4px%3B%2Dwebkit%2Dborder%2Dbottom%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dtopright%3A4px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomright%3A4px%7D%2Epagination%2Dcentered%7Btext%2Dalign%3Acenter%7D%2Epagination%2Dright%7Btext%2Dalign%3Aright%7D%2Epagination%2Dlarge%20ul%3Eli%3Ea%2C%2Epagination%2Dlarge%20ul%3Eli%3Espan%7Bpadding%3A11px%2019px%3Bfont%2Dsize%3A17%2E5px%7D%2Epagination%2Dlarge%20ul%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%2Dlarge%20ul%3Eli%3Afirst%2Dchild%3Espan%7B%2Dwebkit%2Dborder%2Dbottom%2Dleft%2Dradius%3A6px%3Bborder%2Dbottom%2Dleft%2Dradius%3A6px%3B%2Dwebkit%2Dborder%2Dtop%2Dleft%2Dradius%3A6px%3Bborder%2Dtop%2Dleft%2Dradius%3A6px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomleft%3A6px%3B%2Dmoz%2Dborder%2Dradius%2Dtopleft%3A6px%7D%2Epagination%2Dlarge%20ul%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%2Dlarge%20ul%3Eli%3Alast%2Dchild%3Espan%7B%2Dwebkit%2Dborder%2Dtop%2Dright%2Dradius%3A6px%3Bborder%2Dtop%2Dright%2Dradius%3A6px%3B%2Dwebkit%2Dborder%2Dbottom%2Dright%2Dradius%3A6px%3Bborder%2Dbottom%2Dright%2Dradius%3A6px%3B%2Dmoz%2Dborder%2Dradius%2Dtopright%3A6px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomright%3A6px%7D%2Epagination%2Dmini%20ul%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%2Dsmall%20ul%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%2Dmini%20ul%3Eli%3Afirst%2Dchild%3Espan%2C%2Epagination%2Dsmall%20ul%3Eli%3Afirst%2Dchild%3Espan%7B%2Dwebkit%2Dborder%2Dbottom%2Dleft%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%3B%2Dwebkit%2Dborder%2Dtop%2Dleft%2Dradius%3A3px%3Bborder%2Dtop%2Dleft%2Dradius%3A3px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomleft%3A3px%3B%2Dmoz%2Dborder%2Dradius%2Dtopleft%3A3px%7D%2Epagination%2Dmini%20ul%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%2Dsmall%20ul%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%2Dmini%20ul%3Eli%3Alast%2Dchild%3Espan%2C%2Epagination%2Dsmall%20ul%3Eli%3Alast%2Dchild%3Espan%7B%2Dwebkit%2Dborder%2Dtop%2Dright%2Dradius%3A3px%3Bborder%2Dtop%2Dright%2Dradius%3A3px%3B%2Dwebkit%2Dborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dright%2Dradius%3A3px%3B%2Dmoz%2Dborder%2Dradius%2Dtopright%3A3px%3B%2Dmoz%2Dborder%2Dradius%2Dbottomright%3A3px%7D%2Epagination%2Dsmall%20ul%3Eli%3Ea%2C%2Epagination%2Dsmall%20ul%3Eli%3Espan%7Bpadding%3A2px%2010px%3Bfont%2Dsize%3A11%2E9px%7D%2Epagination%2Dmini%20ul%3Eli%3Ea%2C%2Epagination%2Dmini%20ul%3Eli%3Espan%7Bpadding%3A0%206px%3Bfont%2Dsize%3A10%2E5px%7D%2Epager%7Bmargin%3A20px%200%3Btext%2Dalign%3Acenter%3Blist%2Dstyle%3Anone%3B%2Azoom%3A1%7D%2Epager%3Abefore%2C%2Epager%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Epager%3Aafter%7Bclear%3Aboth%7D%2Epager%20li%7Bdisplay%3Ainline%7D%2Epager%20li%3Ea%2C%2Epager%20li%3Espan%7Bdisplay%3Ainline%2Dblock%3Bpadding%3A5px%2014px%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%3B%2Dwebkit%2Dborder%2Dradius%3A15px%3B%2Dmoz%2Dborder%2Dradius%3A15px%3Bborder%2Dradius%3A15px%7D%2Epager%20li%3Ea%3Ahover%2C%2Epager%20li%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23f5f5f5%7D%2Epager%20%2Enext%3Ea%2C%2Epager%20%2Enext%3Espan%7Bfloat%3Aright%7D%2Epager%20%2Eprevious%3Ea%2C%2Epager%20%2Eprevious%3Espan%7Bfloat%3Aleft%7D%2Epager%20%2Edisabled%3Ea%2C%2Epager%20%2Edisabled%3Ea%3Ahover%2C%2Epager%20%2Edisabled%3Ea%3Afocus%2C%2Epager%20%2Edisabled%3Espan%7Bcolor%3A%23999%3Bcursor%3Adefault%3Bbackground%2Dcolor%3A%23fff%7D%2Emodal%2Dbackdrop%7Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A1040%3Bbackground%2Dcolor%3A%23000%7D%2Emodal%2Dbackdrop%2Efade%7Bopacity%3A0%7D%2Emodal%2Dbackdrop%2C%2Emodal%2Dbackdrop%2Efade%2Ein%7Bopacity%3A%2E8%3Bfilter%3Aalpha%28opacity%3D80%29%7D%2Emodal%7Bposition%3Afixed%3Btop%3A10%25%3Bleft%3A50%25%3Bz%2Dindex%3A1050%3Bwidth%3A560px%3Bmargin%2Dleft%3A%2D280px%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23999%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E3%29%3B%2Aborder%3A1px%20solid%20%23999%3B%2Dwebkit%2Dborder%2Dradius%3A6px%3B%2Dmoz%2Dborder%2Dradius%3A6px%3Bborder%2Dradius%3A6px%3Boutline%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3A0%203px%207px%20rgba%280%2C0%2C0%2C0%2E3%29%3B%2Dmoz%2Dbox%2Dshadow%3A0%203px%207px%20rgba%280%2C0%2C0%2C0%2E3%29%3Bbox%2Dshadow%3A0%203px%207px%20rgba%280%2C0%2C0%2C0%2E3%29%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3B%2Dmoz%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%7D%2Emodal%2Efade%7Btop%3A%2D25%25%3B%2Dwebkit%2Dtransition%3Aopacity%20%2E3s%20linear%2Ctop%20%2E3s%20ease%2Dout%3B%2Dmoz%2Dtransition%3Aopacity%20%2E3s%20linear%2Ctop%20%2E3s%20ease%2Dout%3B%2Do%2Dtransition%3Aopacity%20%2E3s%20linear%2Ctop%20%2E3s%20ease%2Dout%3Btransition%3Aopacity%20%2E3s%20linear%2Ctop%20%2E3s%20ease%2Dout%7D%2Emodal%2Efade%2Ein%7Btop%3A10%25%7D%2Emodal%2Dheader%7Bpadding%3A9px%2015px%3Bborder%2Dbottom%3A1px%20solid%20%23eee%7D%2Emodal%2Dheader%20%2Eclose%7Bmargin%2Dtop%3A2px%7D%2Emodal%2Dheader%20h3%7Bmargin%3A0%3Bline%2Dheight%3A30px%7D%2Emodal%2Dbody%7Bposition%3Arelative%3Bmax%2Dheight%3A400px%3Bpadding%3A15px%3Boverflow%2Dy%3Aauto%7D%2Emodal%2Dform%7Bmargin%2Dbottom%3A0%7D%2Emodal%2Dfooter%7Bpadding%3A14px%2015px%2015px%3Bmargin%2Dbottom%3A0%3Btext%2Dalign%3Aright%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dtop%3A1px%20solid%20%23ddd%3B%2Dwebkit%2Dborder%2Dradius%3A0%200%206px%206px%3B%2Dmoz%2Dborder%2Dradius%3A0%200%206px%206px%3Bborder%2Dradius%3A0%200%206px%206px%3B%2Azoom%3A1%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20%23fff%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%200%20%23fff%3Bbox%2Dshadow%3Ainset%200%201px%200%20%23fff%7D%2Emodal%2Dfooter%3Abefore%2C%2Emodal%2Dfooter%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Emodal%2Dfooter%3Aafter%7Bclear%3Aboth%7D%2Emodal%2Dfooter%20%2Ebtn%2B%2Ebtn%7Bmargin%2Dbottom%3A0%3Bmargin%2Dleft%3A5px%7D%2Emodal%2Dfooter%20%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A%2D1px%7D%2Emodal%2Dfooter%20%2Ebtn%2Dblock%2B%2Ebtn%2Dblock%7Bmargin%2Dleft%3A0%7D%2Etooltip%7Bposition%3Aabsolute%3Bz%2Dindex%3A1030%3Bdisplay%3Ablock%3Bfont%2Dsize%3A11px%3Bline%2Dheight%3A1%2E4%3Bopacity%3A0%3Bfilter%3Aalpha%28opacity%3D0%29%3Bvisibility%3Avisible%7D%2Etooltip%2Ein%7Bopacity%3A%2E8%3Bfilter%3Aalpha%28opacity%3D80%29%7D%2Etooltip%2Etop%7Bpadding%3A5px%200%3Bmargin%2Dtop%3A%2D3px%7D%2Etooltip%2Eright%7Bpadding%3A0%205px%3Bmargin%2Dleft%3A3px%7D%2Etooltip%2Ebottom%7Bpadding%3A5px%200%3Bmargin%2Dtop%3A3px%7D%2Etooltip%2Eleft%7Bpadding%3A0%205px%3Bmargin%2Dleft%3A%2D3px%7D%2Etooltip%2Dinner%7Bmax%2Dwidth%3A200px%3Bpadding%3A8px%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23000%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%7D%2Etooltip%2Darrow%7Bposition%3Aabsolute%3Bwidth%3A0%3Bheight%3A0%3Bborder%2Dcolor%3Atransparent%3Bborder%2Dstyle%3Asolid%7D%2Etooltip%2Etop%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D5px%3Bborder%2Dtop%2Dcolor%3A%23000%3Bborder%2Dwidth%3A5px%205px%200%7D%2Etooltip%2Eright%20%2Etooltip%2Darrow%7Btop%3A50%25%3Bleft%3A0%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dright%2Dcolor%3A%23000%3Bborder%2Dwidth%3A5px%205px%205px%200%7D%2Etooltip%2Eleft%20%2Etooltip%2Darrow%7Btop%3A50%25%3Bright%3A0%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dleft%2Dcolor%3A%23000%3Bborder%2Dwidth%3A5px%200%205px%205px%7D%2Etooltip%2Ebottom%20%2Etooltip%2Darrow%7Btop%3A0%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D5px%3Bborder%2Dbottom%2Dcolor%3A%23000%3Bborder%2Dwidth%3A0%205px%205px%7D%2Epopover%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bz%2Dindex%3A1010%3Bdisplay%3Anone%3Bmax%2Dwidth%3A276px%3Bpadding%3A1px%3Btext%2Dalign%3Aleft%3Bwhite%2Dspace%3Anormal%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E2%29%3B%2Dwebkit%2Dborder%2Dradius%3A6px%3B%2Dmoz%2Dborder%2Dradius%3A6px%3Bborder%2Dradius%3A6px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C0%2E2%29%3B%2Dmoz%2Dbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C0%2E2%29%3Bbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C0%2E2%29%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3B%2Dmoz%2Dbackground%2Dclip%3Apadding%3Bbackground%2Dclip%3Apadding%2Dbox%7D%2Epopover%2Etop%7Bmargin%2Dtop%3A%2D10px%7D%2Epopover%2Eright%7Bmargin%2Dleft%3A10px%7D%2Epopover%2Ebottom%7Bmargin%2Dtop%3A10px%7D%2Epopover%2Eleft%7Bmargin%2Dleft%3A%2D10px%7D%2Epopover%2Dtitle%7Bpadding%3A8px%2014px%3Bmargin%3A0%3Bfont%2Dsize%3A14px%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A18px%3Bbackground%2Dcolor%3A%23f7f7f7%3Bborder%2Dbottom%3A1px%20solid%20%23ebebeb%3B%2Dwebkit%2Dborder%2Dradius%3A5px%205px%200%200%3B%2Dmoz%2Dborder%2Dradius%3A5px%205px%200%200%3Bborder%2Dradius%3A5px%205px%200%200%7D%2Epopover%2Dtitle%3Aempty%7Bdisplay%3Anone%7D%2Epopover%2Dcontent%7Bpadding%3A9px%2014px%7D%2Epopover%20%2Earrow%2C%2Epopover%20%2Earrow%3Aafter%7Bposition%3Aabsolute%3Bdisplay%3Ablock%3Bwidth%3A0%3Bheight%3A0%3Bborder%2Dcolor%3Atransparent%3Bborder%2Dstyle%3Asolid%7D%2Epopover%20%2Earrow%7Bborder%2Dwidth%3A11px%7D%2Epopover%20%2Earrow%3Aafter%7Bborder%2Dwidth%3A10px%3Bcontent%3A%22%22%7D%2Epopover%2Etop%20%2Earrow%7Bbottom%3A%2D11px%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D11px%3Bborder%2Dtop%2Dcolor%3A%23999%3Bborder%2Dtop%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%3Bborder%2Dbottom%2Dwidth%3A0%7D%2Epopover%2Etop%20%2Earrow%3Aafter%7Bbottom%3A1px%3Bmargin%2Dleft%3A%2D10px%3Bborder%2Dtop%2Dcolor%3A%23fff%3Bborder%2Dbottom%2Dwidth%3A0%7D%2Epopover%2Eright%20%2Earrow%7Btop%3A50%25%3Bleft%3A%2D11px%3Bmargin%2Dtop%3A%2D11px%3Bborder%2Dright%2Dcolor%3A%23999%3Bborder%2Dright%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%3Bborder%2Dleft%2Dwidth%3A0%7D%2Epopover%2Eright%20%2Earrow%3Aafter%7Bbottom%3A%2D10px%3Bleft%3A1px%3Bborder%2Dright%2Dcolor%3A%23fff%3Bborder%2Dleft%2Dwidth%3A0%7D%2Epopover%2Ebottom%20%2Earrow%7Btop%3A%2D11px%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D11px%3Bborder%2Dbottom%2Dcolor%3A%23999%3Bborder%2Dbottom%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%3Bborder%2Dtop%2Dwidth%3A0%7D%2Epopover%2Ebottom%20%2Earrow%3Aafter%7Btop%3A1px%3Bmargin%2Dleft%3A%2D10px%3Bborder%2Dbottom%2Dcolor%3A%23fff%3Bborder%2Dtop%2Dwidth%3A0%7D%2Epopover%2Eleft%20%2Earrow%7Btop%3A50%25%3Bright%3A%2D11px%3Bmargin%2Dtop%3A%2D11px%3Bborder%2Dleft%2Dcolor%3A%23999%3Bborder%2Dleft%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%3Bborder%2Dright%2Dwidth%3A0%7D%2Epopover%2Eleft%20%2Earrow%3Aafter%7Bright%3A1px%3Bbottom%3A%2D10px%3Bborder%2Dleft%2Dcolor%3A%23fff%3Bborder%2Dright%2Dwidth%3A0%7D%2Ethumbnails%7Bmargin%2Dleft%3A%2D20px%3Blist%2Dstyle%3Anone%3B%2Azoom%3A1%7D%2Ethumbnails%3Abefore%2C%2Ethumbnails%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Ethumbnails%3Aafter%7Bclear%3Aboth%7D%2Erow%2Dfluid%20%2Ethumbnails%7Bmargin%2Dleft%3A0%7D%2Ethumbnails%3Eli%7Bfloat%3Aleft%3Bmargin%2Dbottom%3A20px%3Bmargin%2Dleft%3A20px%7D%2Ethumbnail%7Bdisplay%3Ablock%3Bpadding%3A4px%3Bline%2Dheight%3A20px%3Bborder%3A1px%20solid%20%23ddd%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%201px%203px%20rgba%280%2C0%2C0%2C0%2E055%29%3B%2Dmoz%2Dbox%2Dshadow%3A0%201px%203px%20rgba%280%2C0%2C0%2C0%2E055%29%3Bbox%2Dshadow%3A0%201px%203px%20rgba%280%2C0%2C0%2C0%2E055%29%3B%2Dwebkit%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3B%2Dmoz%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3Btransition%3Aall%20%2E2s%20ease%2Din%2Dout%7Da%2Ethumbnail%3Ahover%2Ca%2Ethumbnail%3Afocus%7Bborder%2Dcolor%3A%2308c%3B%2Dwebkit%2Dbox%2Dshadow%3A0%201px%204px%20rgba%280%2C105%2C214%2C0%2E25%29%3B%2Dmoz%2Dbox%2Dshadow%3A0%201px%204px%20rgba%280%2C105%2C214%2C0%2E25%29%3Bbox%2Dshadow%3A0%201px%204px%20rgba%280%2C105%2C214%2C0%2E25%29%7D%2Ethumbnail%3Eimg%7Bdisplay%3Ablock%3Bmax%2Dwidth%3A100%25%3Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%7D%2Ethumbnail%20%2Ecaption%7Bpadding%3A9px%3Bcolor%3A%23555%7D%2Emedia%2C%2Emedia%2Dbody%7Boverflow%3Ahidden%3B%2Aoverflow%3Avisible%3Bzoom%3A1%7D%2Emedia%2C%2Emedia%20%2Emedia%7Bmargin%2Dtop%3A15px%7D%2Emedia%3Afirst%2Dchild%7Bmargin%2Dtop%3A0%7D%2Emedia%2Dobject%7Bdisplay%3Ablock%7D%2Emedia%2Dheading%7Bmargin%3A0%200%205px%7D%2Emedia%3E%2Epull%2Dleft%7Bmargin%2Dright%3A10px%7D%2Emedia%3E%2Epull%2Dright%7Bmargin%2Dleft%3A10px%7D%2Emedia%2Dlist%7Bmargin%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Elabel%2C%2Ebadge%7Bdisplay%3Ainline%2Dblock%3Bpadding%3A2px%204px%3Bfont%2Dsize%3A11%2E844px%3Bfont%2Dweight%3Abold%3Bline%2Dheight%3A14px%3Bcolor%3A%23fff%3Btext%2Dshadow%3A0%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Abaseline%3Bbackground%2Dcolor%3A%23999%7D%2Elabel%7B%2Dwebkit%2Dborder%2Dradius%3A3px%3B%2Dmoz%2Dborder%2Dradius%3A3px%3Bborder%2Dradius%3A3px%7D%2Ebadge%7Bpadding%2Dright%3A9px%3Bpadding%2Dleft%3A9px%3B%2Dwebkit%2Dborder%2Dradius%3A9px%3B%2Dmoz%2Dborder%2Dradius%3A9px%3Bborder%2Dradius%3A9px%7D%2Elabel%3Aempty%2C%2Ebadge%3Aempty%7Bdisplay%3Anone%7Da%2Elabel%3Ahover%2Ca%2Elabel%3Afocus%2Ca%2Ebadge%3Ahover%2Ca%2Ebadge%3Afocus%7Bcolor%3A%23fff%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%7D%2Elabel%2Dimportant%2C%2Ebadge%2Dimportant%7Bbackground%2Dcolor%3A%23b94a48%7D%2Elabel%2Dimportant%5Bhref%5D%2C%2Ebadge%2Dimportant%5Bhref%5D%7Bbackground%2Dcolor%3A%23953b39%7D%2Elabel%2Dwarning%2C%2Ebadge%2Dwarning%7Bbackground%2Dcolor%3A%23f89406%7D%2Elabel%2Dwarning%5Bhref%5D%2C%2Ebadge%2Dwarning%5Bhref%5D%7Bbackground%2Dcolor%3A%23c67605%7D%2Elabel%2Dsuccess%2C%2Ebadge%2Dsuccess%7Bbackground%2Dcolor%3A%23468847%7D%2Elabel%2Dsuccess%5Bhref%5D%2C%2Ebadge%2Dsuccess%5Bhref%5D%7Bbackground%2Dcolor%3A%23356635%7D%2Elabel%2Dinfo%2C%2Ebadge%2Dinfo%7Bbackground%2Dcolor%3A%233a87ad%7D%2Elabel%2Dinfo%5Bhref%5D%2C%2Ebadge%2Dinfo%5Bhref%5D%7Bbackground%2Dcolor%3A%232d6987%7D%2Elabel%2Dinverse%2C%2Ebadge%2Dinverse%7Bbackground%2Dcolor%3A%23333%7D%2Elabel%2Dinverse%5Bhref%5D%2C%2Ebadge%2Dinverse%5Bhref%5D%7Bbackground%2Dcolor%3A%231a1a1a%7D%2Ebtn%20%2Elabel%2C%2Ebtn%20%2Ebadge%7Bposition%3Arelative%3Btop%3A%2D1px%7D%2Ebtn%2Dmini%20%2Elabel%2C%2Ebtn%2Dmini%20%2Ebadge%7Btop%3A0%7D%40%2Dwebkit%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%40%2Dmoz%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%40%2Dms%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%40%2Do%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A0%200%7Dto%7Bbackground%2Dposition%3A40px%200%7D%7D%40keyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%2Eprogress%7Bheight%3A20px%3Bmargin%2Dbottom%3A20px%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23f7f7f7%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%23f5f5f5%2C%23f9f9f9%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%23f5f5f5%29%2Cto%28%23f9f9f9%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%23f5f5f5%2C%23f9f9f9%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%23f5f5f5%2C%23f9f9f9%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%23f5f5f5%2C%23f9f9f9%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23fff5f5f5%27%2CendColorstr%3D%27%23fff9f9f9%27%2CGradientType%3D0%29%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E1%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E1%29%7D%2Eprogress%20%2Ebar%7Bfloat%3Aleft%3Bwidth%3A0%3Bheight%3A100%25%3Bfont%2Dsize%3A12px%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Btext%2Dshadow%3A0%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bbackground%2Dcolor%3A%230e90d2%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%23149bdf%2C%230480be%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%23149bdf%29%2Cto%28%230480be%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%23149bdf%2C%230480be%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%23149bdf%2C%230480be%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%23149bdf%2C%230480be%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff149bdf%27%2CendColorstr%3D%27%23ff0480be%27%2CGradientType%3D0%29%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E15%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E15%29%3Bbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E15%29%3B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%3B%2Dwebkit%2Dtransition%3Awidth%20%2E6s%20ease%3B%2Dmoz%2Dtransition%3Awidth%20%2E6s%20ease%3B%2Do%2Dtransition%3Awidth%20%2E6s%20ease%3Btransition%3Awidth%20%2E6s%20ease%7D%2Eprogress%20%2Ebar%2B%2Ebar%7B%2Dwebkit%2Dbox%2Dshadow%3Ainset%201px%200%200%20rgba%280%2C0%2C0%2C0%2E15%29%2Cinset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E15%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%201px%200%200%20rgba%280%2C0%2C0%2C0%2E15%29%2Cinset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E15%29%3Bbox%2Dshadow%3Ainset%201px%200%200%20rgba%280%2C0%2C0%2C0%2E15%29%2Cinset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E15%29%7D%2Eprogress%2Dstriped%20%2Ebar%7Bbackground%2Dcolor%3A%23149bdf%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%20100%25%2C100%25%200%2Ccolor%2Dstop%280%2E25%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E25%2Ctransparent%29%2Ccolor%2Dstop%280%2E5%2Ctransparent%29%2Ccolor%2Dstop%280%2E5%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E75%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E75%2Ctransparent%29%2Cto%28transparent%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3B%2Dwebkit%2Dbackground%2Dsize%3A40px%2040px%3B%2Dmoz%2Dbackground%2Dsize%3A40px%2040px%3B%2Do%2Dbackground%2Dsize%3A40px%2040px%3Bbackground%2Dsize%3A40px%2040px%7D%2Eprogress%2Eactive%20%2Ebar%7B%2Dwebkit%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3B%2Dmoz%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3B%2Dms%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3B%2Do%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3Banimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%7D%2Eprogress%2Ddanger%20%2Ebar%2C%2Eprogress%20%2Ebar%2Ddanger%7Bbackground%2Dcolor%3A%23dd514c%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%23ee5f5b%2C%23c43c35%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%23ee5f5b%29%2Cto%28%23c43c35%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%23ee5f5b%2C%23c43c35%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%23ee5f5b%2C%23c43c35%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%23ee5f5b%2C%23c43c35%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ffee5f5b%27%2CendColorstr%3D%27%23ffc43c35%27%2CGradientType%3D0%29%7D%2Eprogress%2Ddanger%2Eprogress%2Dstriped%20%2Ebar%2C%2Eprogress%2Dstriped%20%2Ebar%2Ddanger%7Bbackground%2Dcolor%3A%23ee5f5b%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%20100%25%2C100%25%200%2Ccolor%2Dstop%280%2E25%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E25%2Ctransparent%29%2Ccolor%2Dstop%280%2E5%2Ctransparent%29%2Ccolor%2Dstop%280%2E5%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E75%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E75%2Ctransparent%29%2Cto%28transparent%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%7D%2Eprogress%2Dsuccess%20%2Ebar%2C%2Eprogress%20%2Ebar%2Dsuccess%7Bbackground%2Dcolor%3A%235eb95e%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%2362c462%2C%2357a957%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%2362c462%29%2Cto%28%2357a957%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%2362c462%2C%2357a957%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%2362c462%2C%2357a957%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%2362c462%2C%2357a957%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff62c462%27%2CendColorstr%3D%27%23ff57a957%27%2CGradientType%3D0%29%7D%2Eprogress%2Dsuccess%2Eprogress%2Dstriped%20%2Ebar%2C%2Eprogress%2Dstriped%20%2Ebar%2Dsuccess%7Bbackground%2Dcolor%3A%2362c462%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%20100%25%2C100%25%200%2Ccolor%2Dstop%280%2E25%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E25%2Ctransparent%29%2Ccolor%2Dstop%280%2E5%2Ctransparent%29%2Ccolor%2Dstop%280%2E5%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E75%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E75%2Ctransparent%29%2Cto%28transparent%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%7D%2Eprogress%2Dinfo%20%2Ebar%2C%2Eprogress%20%2Ebar%2Dinfo%7Bbackground%2Dcolor%3A%234bb1cf%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%235bc0de%2C%23339bb9%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%235bc0de%29%2Cto%28%23339bb9%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%235bc0de%2C%23339bb9%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%235bc0de%2C%23339bb9%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%235bc0de%2C%23339bb9%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23ff5bc0de%27%2CendColorstr%3D%27%23ff339bb9%27%2CGradientType%3D0%29%7D%2Eprogress%2Dinfo%2Eprogress%2Dstriped%20%2Ebar%2C%2Eprogress%2Dstriped%20%2Ebar%2Dinfo%7Bbackground%2Dcolor%3A%235bc0de%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%20100%25%2C100%25%200%2Ccolor%2Dstop%280%2E25%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E25%2Ctransparent%29%2Ccolor%2Dstop%280%2E5%2Ctransparent%29%2Ccolor%2Dstop%280%2E5%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E75%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E75%2Ctransparent%29%2Cto%28transparent%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%7D%2Eprogress%2Dwarning%20%2Ebar%2C%2Eprogress%20%2Ebar%2Dwarning%7Bbackground%2Dcolor%3A%23faa732%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%23fbb450%2C%23f89406%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%200%2C0%20100%25%2Cfrom%28%23fbb450%29%2Cto%28%23f89406%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%23fbb450%2C%23f89406%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%23fbb450%2C%23f89406%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%23fbb450%2C%23f89406%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%23fffbb450%27%2CendColorstr%3D%27%23fff89406%27%2CGradientType%3D0%29%7D%2Eprogress%2Dwarning%2Eprogress%2Dstriped%20%2Ebar%2C%2Eprogress%2Dstriped%20%2Ebar%2Dwarning%7Bbackground%2Dcolor%3A%23fbb450%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C0%20100%25%2C100%25%200%2Ccolor%2Dstop%280%2E25%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E25%2Ctransparent%29%2Ccolor%2Dstop%280%2E5%2Ctransparent%29%2Ccolor%2Dstop%280%2E5%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E75%2Crgba%28255%2C255%2C255%2C0%2E15%29%29%2Ccolor%2Dstop%280%2E75%2Ctransparent%29%2Cto%28transparent%29%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%7D%2Eaccordion%7Bmargin%2Dbottom%3A20px%7D%2Eaccordion%2Dgroup%7Bmargin%2Dbottom%3A2px%3Bborder%3A1px%20solid%20%23e5e5e5%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%7D%2Eaccordion%2Dheading%7Bborder%2Dbottom%3A0%7D%2Eaccordion%2Dheading%20%2Eaccordion%2Dtoggle%7Bdisplay%3Ablock%3Bpadding%3A8px%2015px%7D%2Eaccordion%2Dtoggle%7Bcursor%3Apointer%7D%2Eaccordion%2Dinner%7Bpadding%3A9px%2015px%3Bborder%2Dtop%3A1px%20solid%20%23e5e5e5%7D%2Ecarousel%7Bposition%3Arelative%3Bmargin%2Dbottom%3A20px%3Bline%2Dheight%3A1%7D%2Ecarousel%2Dinner%7Bposition%3Arelative%3Bwidth%3A100%25%3Boverflow%3Ahidden%7D%2Ecarousel%2Dinner%3E%2Eitem%7Bposition%3Arelative%3Bdisplay%3Anone%3B%2Dwebkit%2Dtransition%3A%2E6s%20ease%2Din%2Dout%20left%3B%2Dmoz%2Dtransition%3A%2E6s%20ease%2Din%2Dout%20left%3B%2Do%2Dtransition%3A%2E6s%20ease%2Din%2Dout%20left%3Btransition%3A%2E6s%20ease%2Din%2Dout%20left%7D%2Ecarousel%2Dinner%3E%2Eitem%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Ea%3Eimg%7Bdisplay%3Ablock%3Bline%2Dheight%3A1%7D%2Ecarousel%2Dinner%3E%2Eactive%2C%2Ecarousel%2Dinner%3E%2Enext%2C%2Ecarousel%2Dinner%3E%2Eprev%7Bdisplay%3Ablock%7D%2Ecarousel%2Dinner%3E%2Eactive%7Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Enext%2C%2Ecarousel%2Dinner%3E%2Eprev%7Bposition%3Aabsolute%3Btop%3A0%3Bwidth%3A100%25%7D%2Ecarousel%2Dinner%3E%2Enext%7Bleft%3A100%25%7D%2Ecarousel%2Dinner%3E%2Eprev%7Bleft%3A%2D100%25%7D%2Ecarousel%2Dinner%3E%2Enext%2Eleft%2C%2Ecarousel%2Dinner%3E%2Eprev%2Eright%7Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Eactive%2Eleft%7Bleft%3A%2D100%25%7D%2Ecarousel%2Dinner%3E%2Eactive%2Eright%7Bleft%3A100%25%7D%2Ecarousel%2Dcontrol%7Bposition%3Aabsolute%3Btop%3A40%25%3Bleft%3A15px%3Bwidth%3A40px%3Bheight%3A40px%3Bmargin%2Dtop%3A%2D20px%3Bfont%2Dsize%3A60px%3Bfont%2Dweight%3A100%3Bline%2Dheight%3A30px%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Bbackground%3A%23222%3Bborder%3A3px%20solid%20%23fff%3B%2Dwebkit%2Dborder%2Dradius%3A23px%3B%2Dmoz%2Dborder%2Dradius%3A23px%3Bborder%2Dradius%3A23px%3Bopacity%3A%2E5%3Bfilter%3Aalpha%28opacity%3D50%29%7D%2Ecarousel%2Dcontrol%2Eright%7Bright%3A15px%3Bleft%3Aauto%7D%2Ecarousel%2Dcontrol%3Ahover%2C%2Ecarousel%2Dcontrol%3Afocus%7Bcolor%3A%23fff%3Btext%2Ddecoration%3Anone%3Bopacity%3A%2E9%3Bfilter%3Aalpha%28opacity%3D90%29%7D%2Ecarousel%2Dindicators%7Bposition%3Aabsolute%3Btop%3A15px%3Bright%3A15px%3Bz%2Dindex%3A5%3Bmargin%3A0%3Blist%2Dstyle%3Anone%7D%2Ecarousel%2Dindicators%20li%7Bdisplay%3Ablock%3Bfloat%3Aleft%3Bwidth%3A10px%3Bheight%3A10px%3Bmargin%2Dleft%3A5px%3Btext%2Dindent%3A%2D999px%3Bbackground%2Dcolor%3A%23ccc%3Bbackground%2Dcolor%3Argba%28255%2C255%2C255%2C0%2E25%29%3Bborder%2Dradius%3A5px%7D%2Ecarousel%2Dindicators%20%2Eactive%7Bbackground%2Dcolor%3A%23fff%7D%2Ecarousel%2Dcaption%7Bposition%3Aabsolute%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bpadding%3A15px%3Bbackground%3A%23333%3Bbackground%3Argba%280%2C0%2C0%2C0%2E75%29%7D%2Ecarousel%2Dcaption%20h4%2C%2Ecarousel%2Dcaption%20p%7Bline%2Dheight%3A20px%3Bcolor%3A%23fff%7D%2Ecarousel%2Dcaption%20h4%7Bmargin%3A0%200%205px%7D%2Ecarousel%2Dcaption%20p%7Bmargin%2Dbottom%3A0%7D%2Ehero%2Dunit%7Bpadding%3A60px%3Bmargin%2Dbottom%3A30px%3Bfont%2Dsize%3A18px%3Bfont%2Dweight%3A200%3Bline%2Dheight%3A30px%3Bcolor%3Ainherit%3Bbackground%2Dcolor%3A%23eee%3B%2Dwebkit%2Dborder%2Dradius%3A6px%3B%2Dmoz%2Dborder%2Dradius%3A6px%3Bborder%2Dradius%3A6px%7D%2Ehero%2Dunit%20h1%7Bmargin%2Dbottom%3A0%3Bfont%2Dsize%3A60px%3Bline%2Dheight%3A1%3Bletter%2Dspacing%3A%2D1px%3Bcolor%3Ainherit%7D%2Ehero%2Dunit%20li%7Bline%2Dheight%3A30px%7D%2Epull%2Dright%7Bfloat%3Aright%7D%2Epull%2Dleft%7Bfloat%3Aleft%7D%2Ehide%7Bdisplay%3Anone%7D%2Eshow%7Bdisplay%3Ablock%7D%2Einvisible%7Bvisibility%3Ahidden%7D%2Eaffix%7Bposition%3Afixed%7D%0A" rel="stylesheet" />
+<link href="data:text/css,%2F%2A%21%0A%20%2A%20Bootstrap%20Responsive%20v2%2E3%2E2%0A%20%2A%0A%20%2A%20Copyright%202013%20Twitter%2C%20Inc%0A%20%2A%20Licensed%20under%20the%20Apache%20License%20v2%2E0%0A%20%2A%20http%3A%2F%2Fwww%2Eapache%2Eorg%2Flicenses%2FLICENSE%2D2%2E0%0A%20%2A%0A%20%2A%20Designed%20and%20built%20with%20all%20the%20love%20in%20the%20world%20by%20%40mdo%20and%20%40fat%2E%0A%20%2A%2F%2Eclearfix%7B%2Azoom%3A1%7D%2Eclearfix%3Abefore%2C%2Eclearfix%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Eclearfix%3Aafter%7Bclear%3Aboth%7D%2Ehide%2Dtext%7Bfont%3A0%2F0%20a%3Bcolor%3Atransparent%3Btext%2Dshadow%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%7D%2Einput%2Dblock%2Dlevel%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bmin%2Dheight%3A30px%3B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%40%2Dms%2Dviewport%7Bwidth%3Adevice%2Dwidth%7D%2Ehidden%7Bdisplay%3Anone%3Bvisibility%3Ahidden%7D%2Evisible%2Dphone%7Bdisplay%3Anone%21important%7D%2Evisible%2Dtablet%7Bdisplay%3Anone%21important%7D%2Ehidden%2Ddesktop%7Bdisplay%3Anone%21important%7D%2Evisible%2Ddesktop%7Bdisplay%3Ainherit%21important%7D%40media%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A979px%29%7B%2Ehidden%2Ddesktop%7Bdisplay%3Ainherit%21important%7D%2Evisible%2Ddesktop%7Bdisplay%3Anone%21important%7D%2Evisible%2Dtablet%7Bdisplay%3Ainherit%21important%7D%2Ehidden%2Dtablet%7Bdisplay%3Anone%21important%7D%7D%40media%28max%2Dwidth%3A767px%29%7B%2Ehidden%2Ddesktop%7Bdisplay%3Ainherit%21important%7D%2Evisible%2Ddesktop%7Bdisplay%3Anone%21important%7D%2Evisible%2Dphone%7Bdisplay%3Ainherit%21important%7D%2Ehidden%2Dphone%7Bdisplay%3Anone%21important%7D%7D%2Evisible%2Dprint%7Bdisplay%3Anone%21important%7D%40media%20print%7B%2Evisible%2Dprint%7Bdisplay%3Ainherit%21important%7D%2Ehidden%2Dprint%7Bdisplay%3Anone%21important%7D%7D%40media%28min%2Dwidth%3A1200px%29%7B%2Erow%7Bmargin%2Dleft%3A%2D30px%3B%2Azoom%3A1%7D%2Erow%3Abefore%2C%2Erow%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Erow%3Aafter%7Bclear%3Aboth%7D%5Bclass%2A%3D%22span%22%5D%7Bfloat%3Aleft%3Bmin%2Dheight%3A1px%3Bmargin%2Dleft%3A30px%7D%2Econtainer%2C%2Enavbar%2Dstatic%2Dtop%20%2Econtainer%2C%2Enavbar%2Dfixed%2Dtop%20%2Econtainer%2C%2Enavbar%2Dfixed%2Dbottom%20%2Econtainer%7Bwidth%3A1170px%7D%2Espan12%7Bwidth%3A1170px%7D%2Espan11%7Bwidth%3A1070px%7D%2Espan10%7Bwidth%3A970px%7D%2Espan9%7Bwidth%3A870px%7D%2Espan8%7Bwidth%3A770px%7D%2Espan7%7Bwidth%3A670px%7D%2Espan6%7Bwidth%3A570px%7D%2Espan5%7Bwidth%3A470px%7D%2Espan4%7Bwidth%3A370px%7D%2Espan3%7Bwidth%3A270px%7D%2Espan2%7Bwidth%3A170px%7D%2Espan1%7Bwidth%3A70px%7D%2Eoffset12%7Bmargin%2Dleft%3A1230px%7D%2Eoffset11%7Bmargin%2Dleft%3A1130px%7D%2Eoffset10%7Bmargin%2Dleft%3A1030px%7D%2Eoffset9%7Bmargin%2Dleft%3A930px%7D%2Eoffset8%7Bmargin%2Dleft%3A830px%7D%2Eoffset7%7Bmargin%2Dleft%3A730px%7D%2Eoffset6%7Bmargin%2Dleft%3A630px%7D%2Eoffset5%7Bmargin%2Dleft%3A530px%7D%2Eoffset4%7Bmargin%2Dleft%3A430px%7D%2Eoffset3%7Bmargin%2Dleft%3A330px%7D%2Eoffset2%7Bmargin%2Dleft%3A230px%7D%2Eoffset1%7Bmargin%2Dleft%3A130px%7D%2Erow%2Dfluid%7Bwidth%3A100%25%3B%2Azoom%3A1%7D%2Erow%2Dfluid%3Abefore%2C%2Erow%2Dfluid%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Erow%2Dfluid%3Aafter%7Bclear%3Aboth%7D%2Erow%2Dfluid%20%5Bclass%2A%3D%22span%22%5D%7Bdisplay%3Ablock%3Bfloat%3Aleft%3Bwidth%3A100%25%3Bmin%2Dheight%3A30px%3Bmargin%2Dleft%3A2%2E564102564102564%25%3B%2Amargin%2Dleft%3A2%2E5109110747408616%25%3B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%2Erow%2Dfluid%20%5Bclass%2A%3D%22span%22%5D%3Afirst%2Dchild%7Bmargin%2Dleft%3A0%7D%2Erow%2Dfluid%20%2Econtrols%2Drow%20%5Bclass%2A%3D%22span%22%5D%2B%5Bclass%2A%3D%22span%22%5D%7Bmargin%2Dleft%3A2%2E564102564102564%25%7D%2Erow%2Dfluid%20%2Espan12%7Bwidth%3A100%25%3B%2Awidth%3A99%2E94680851063829%25%7D%2Erow%2Dfluid%20%2Espan11%7Bwidth%3A91%2E45299145299145%25%3B%2Awidth%3A91%2E39979996362975%25%7D%2Erow%2Dfluid%20%2Espan10%7Bwidth%3A82%2E90598290598291%25%3B%2Awidth%3A82%2E8527914166212%25%7D%2Erow%2Dfluid%20%2Espan9%7Bwidth%3A74%2E35897435897436%25%3B%2Awidth%3A74%2E30578286961266%25%7D%2Erow%2Dfluid%20%2Espan8%7Bwidth%3A65%2E81196581196582%25%3B%2Awidth%3A65%2E75877432260411%25%7D%2Erow%2Dfluid%20%2Espan7%7Bwidth%3A57%2E26495726495726%25%3B%2Awidth%3A57%2E21176577559556%25%7D%2Erow%2Dfluid%20%2Espan6%7Bwidth%3A48%2E717948717948715%25%3B%2Awidth%3A48%2E664757228587014%25%7D%2Erow%2Dfluid%20%2Espan5%7Bwidth%3A40%2E17094017094017%25%3B%2Awidth%3A40%2E11774868157847%25%7D%2Erow%2Dfluid%20%2Espan4%7Bwidth%3A31%2E623931623931625%25%3B%2Awidth%3A31%2E570740134569924%25%7D%2Erow%2Dfluid%20%2Espan3%7Bwidth%3A23%2E076923076923077%25%3B%2Awidth%3A23%2E023731587561375%25%7D%2Erow%2Dfluid%20%2Espan2%7Bwidth%3A14%2E52991452991453%25%3B%2Awidth%3A14%2E476723040552828%25%7D%2Erow%2Dfluid%20%2Espan1%7Bwidth%3A5%2E982905982905983%25%3B%2Awidth%3A5%2E929714493544281%25%7D%2Erow%2Dfluid%20%2Eoffset12%7Bmargin%2Dleft%3A105%2E12820512820512%25%3B%2Amargin%2Dleft%3A105%2E02182214948171%25%7D%2Erow%2Dfluid%20%2Eoffset12%3Afirst%2Dchild%7Bmargin%2Dleft%3A102%2E56410256410257%25%3B%2Amargin%2Dleft%3A102%2E45771958537915%25%7D%2Erow%2Dfluid%20%2Eoffset11%7Bmargin%2Dleft%3A96%2E58119658119658%25%3B%2Amargin%2Dleft%3A96%2E47481360247316%25%7D%2Erow%2Dfluid%20%2Eoffset11%3Afirst%2Dchild%7Bmargin%2Dleft%3A94%2E01709401709402%25%3B%2Amargin%2Dleft%3A93%2E91071103837061%25%7D%2Erow%2Dfluid%20%2Eoffset10%7Bmargin%2Dleft%3A88%2E03418803418803%25%3B%2Amargin%2Dleft%3A87%2E92780505546462%25%7D%2Erow%2Dfluid%20%2Eoffset10%3Afirst%2Dchild%7Bmargin%2Dleft%3A85%2E47008547008548%25%3B%2Amargin%2Dleft%3A85%2E36370249136206%25%7D%2Erow%2Dfluid%20%2Eoffset9%7Bmargin%2Dleft%3A79%2E48717948717949%25%3B%2Amargin%2Dleft%3A79%2E38079650845607%25%7D%2Erow%2Dfluid%20%2Eoffset9%3Afirst%2Dchild%7Bmargin%2Dleft%3A76%2E92307692307693%25%3B%2Amargin%2Dleft%3A76%2E81669394435352%25%7D%2Erow%2Dfluid%20%2Eoffset8%7Bmargin%2Dleft%3A70%2E94017094017094%25%3B%2Amargin%2Dleft%3A70%2E83378796144753%25%7D%2Erow%2Dfluid%20%2Eoffset8%3Afirst%2Dchild%7Bmargin%2Dleft%3A68%2E37606837606839%25%3B%2Amargin%2Dleft%3A68%2E26968539734497%25%7D%2Erow%2Dfluid%20%2Eoffset7%7Bmargin%2Dleft%3A62%2E393162393162385%25%3B%2Amargin%2Dleft%3A62%2E28677941443899%25%7D%2Erow%2Dfluid%20%2Eoffset7%3Afirst%2Dchild%7Bmargin%2Dleft%3A59%2E82905982905982%25%3B%2Amargin%2Dleft%3A59%2E72267685033642%25%7D%2Erow%2Dfluid%20%2Eoffset6%7Bmargin%2Dleft%3A53%2E84615384615384%25%3B%2Amargin%2Dleft%3A53%2E739770867430444%25%7D%2Erow%2Dfluid%20%2Eoffset6%3Afirst%2Dchild%7Bmargin%2Dleft%3A51%2E28205128205128%25%3B%2Amargin%2Dleft%3A51%2E175668303327875%25%7D%2Erow%2Dfluid%20%2Eoffset5%7Bmargin%2Dleft%3A45%2E299145299145295%25%3B%2Amargin%2Dleft%3A45%2E1927623204219%25%7D%2Erow%2Dfluid%20%2Eoffset5%3Afirst%2Dchild%7Bmargin%2Dleft%3A42%2E73504273504273%25%3B%2Amargin%2Dleft%3A42%2E62865975631933%25%7D%2Erow%2Dfluid%20%2Eoffset4%7Bmargin%2Dleft%3A36%2E75213675213675%25%3B%2Amargin%2Dleft%3A36%2E645753773413354%25%7D%2Erow%2Dfluid%20%2Eoffset4%3Afirst%2Dchild%7Bmargin%2Dleft%3A34%2E18803418803419%25%3B%2Amargin%2Dleft%3A34%2E081651209310785%25%7D%2Erow%2Dfluid%20%2Eoffset3%7Bmargin%2Dleft%3A28%2E205128205128204%25%3B%2Amargin%2Dleft%3A28%2E0987452264048%25%7D%2Erow%2Dfluid%20%2Eoffset3%3Afirst%2Dchild%7Bmargin%2Dleft%3A25%2E641025641025642%25%3B%2Amargin%2Dleft%3A25%2E53464266230224%25%7D%2Erow%2Dfluid%20%2Eoffset2%7Bmargin%2Dleft%3A19%2E65811965811966%25%3B%2Amargin%2Dleft%3A19%2E551736679396257%25%7D%2Erow%2Dfluid%20%2Eoffset2%3Afirst%2Dchild%7Bmargin%2Dleft%3A17%2E094017094017094%25%3B%2Amargin%2Dleft%3A16%2E98763411529369%25%7D%2Erow%2Dfluid%20%2Eoffset1%7Bmargin%2Dleft%3A11%2E11111111111111%25%3B%2Amargin%2Dleft%3A11%2E004728132387708%25%7D%2Erow%2Dfluid%20%2Eoffset1%3Afirst%2Dchild%7Bmargin%2Dleft%3A8%2E547008547008547%25%3B%2Amargin%2Dleft%3A8%2E440625568285142%25%7Dinput%2Ctextarea%2C%2Euneditable%2Dinput%7Bmargin%2Dleft%3A0%7D%2Econtrols%2Drow%20%5Bclass%2A%3D%22span%22%5D%2B%5Bclass%2A%3D%22span%22%5D%7Bmargin%2Dleft%3A30px%7Dinput%2Espan12%2Ctextarea%2Espan12%2C%2Euneditable%2Dinput%2Espan12%7Bwidth%3A1156px%7Dinput%2Espan11%2Ctextarea%2Espan11%2C%2Euneditable%2Dinput%2Espan11%7Bwidth%3A1056px%7Dinput%2Espan10%2Ctextarea%2Espan10%2C%2Euneditable%2Dinput%2Espan10%7Bwidth%3A956px%7Dinput%2Espan9%2Ctextarea%2Espan9%2C%2Euneditable%2Dinput%2Espan9%7Bwidth%3A856px%7Dinput%2Espan8%2Ctextarea%2Espan8%2C%2Euneditable%2Dinput%2Espan8%7Bwidth%3A756px%7Dinput%2Espan7%2Ctextarea%2Espan7%2C%2Euneditable%2Dinput%2Espan7%7Bwidth%3A656px%7Dinput%2Espan6%2Ctextarea%2Espan6%2C%2Euneditable%2Dinput%2Espan6%7Bwidth%3A556px%7Dinput%2Espan5%2Ctextarea%2Espan5%2C%2Euneditable%2Dinput%2Espan5%7Bwidth%3A456px%7Dinput%2Espan4%2Ctextarea%2Espan4%2C%2Euneditable%2Dinput%2Espan4%7Bwidth%3A356px%7Dinput%2Espan3%2Ctextarea%2Espan3%2C%2Euneditable%2Dinput%2Espan3%7Bwidth%3A256px%7Dinput%2Espan2%2Ctextarea%2Espan2%2C%2Euneditable%2Dinput%2Espan2%7Bwidth%3A156px%7Dinput%2Espan1%2Ctextarea%2Espan1%2C%2Euneditable%2Dinput%2Espan1%7Bwidth%3A56px%7D%2Ethumbnails%7Bmargin%2Dleft%3A%2D30px%7D%2Ethumbnails%3Eli%7Bmargin%2Dleft%3A30px%7D%2Erow%2Dfluid%20%2Ethumbnails%7Bmargin%2Dleft%3A0%7D%7D%40media%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A979px%29%7B%2Erow%7Bmargin%2Dleft%3A%2D20px%3B%2Azoom%3A1%7D%2Erow%3Abefore%2C%2Erow%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Erow%3Aafter%7Bclear%3Aboth%7D%5Bclass%2A%3D%22span%22%5D%7Bfloat%3Aleft%3Bmin%2Dheight%3A1px%3Bmargin%2Dleft%3A20px%7D%2Econtainer%2C%2Enavbar%2Dstatic%2Dtop%20%2Econtainer%2C%2Enavbar%2Dfixed%2Dtop%20%2Econtainer%2C%2Enavbar%2Dfixed%2Dbottom%20%2Econtainer%7Bwidth%3A724px%7D%2Espan12%7Bwidth%3A724px%7D%2Espan11%7Bwidth%3A662px%7D%2Espan10%7Bwidth%3A600px%7D%2Espan9%7Bwidth%3A538px%7D%2Espan8%7Bwidth%3A476px%7D%2Espan7%7Bwidth%3A414px%7D%2Espan6%7Bwidth%3A352px%7D%2Espan5%7Bwidth%3A290px%7D%2Espan4%7Bwidth%3A228px%7D%2Espan3%7Bwidth%3A166px%7D%2Espan2%7Bwidth%3A104px%7D%2Espan1%7Bwidth%3A42px%7D%2Eoffset12%7Bmargin%2Dleft%3A764px%7D%2Eoffset11%7Bmargin%2Dleft%3A702px%7D%2Eoffset10%7Bmargin%2Dleft%3A640px%7D%2Eoffset9%7Bmargin%2Dleft%3A578px%7D%2Eoffset8%7Bmargin%2Dleft%3A516px%7D%2Eoffset7%7Bmargin%2Dleft%3A454px%7D%2Eoffset6%7Bmargin%2Dleft%3A392px%7D%2Eoffset5%7Bmargin%2Dleft%3A330px%7D%2Eoffset4%7Bmargin%2Dleft%3A268px%7D%2Eoffset3%7Bmargin%2Dleft%3A206px%7D%2Eoffset2%7Bmargin%2Dleft%3A144px%7D%2Eoffset1%7Bmargin%2Dleft%3A82px%7D%2Erow%2Dfluid%7Bwidth%3A100%25%3B%2Azoom%3A1%7D%2Erow%2Dfluid%3Abefore%2C%2Erow%2Dfluid%3Aafter%7Bdisplay%3Atable%3Bline%2Dheight%3A0%3Bcontent%3A%22%22%7D%2Erow%2Dfluid%3Aafter%7Bclear%3Aboth%7D%2Erow%2Dfluid%20%5Bclass%2A%3D%22span%22%5D%7Bdisplay%3Ablock%3Bfloat%3Aleft%3Bwidth%3A100%25%3Bmin%2Dheight%3A30px%3Bmargin%2Dleft%3A2%2E7624309392265194%25%3B%2Amargin%2Dleft%3A2%2E709239449864817%25%3B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%2Erow%2Dfluid%20%5Bclass%2A%3D%22span%22%5D%3Afirst%2Dchild%7Bmargin%2Dleft%3A0%7D%2Erow%2Dfluid%20%2Econtrols%2Drow%20%5Bclass%2A%3D%22span%22%5D%2B%5Bclass%2A%3D%22span%22%5D%7Bmargin%2Dleft%3A2%2E7624309392265194%25%7D%2Erow%2Dfluid%20%2Espan12%7Bwidth%3A100%25%3B%2Awidth%3A99%2E94680851063829%25%7D%2Erow%2Dfluid%20%2Espan11%7Bwidth%3A91%2E43646408839778%25%3B%2Awidth%3A91%2E38327259903608%25%7D%2Erow%2Dfluid%20%2Espan10%7Bwidth%3A82%2E87292817679558%25%3B%2Awidth%3A82%2E81973668743387%25%7D%2Erow%2Dfluid%20%2Espan9%7Bwidth%3A74%2E30939226519337%25%3B%2Awidth%3A74%2E25620077583166%25%7D%2Erow%2Dfluid%20%2Espan8%7Bwidth%3A65%2E74585635359117%25%3B%2Awidth%3A65%2E69266486422946%25%7D%2Erow%2Dfluid%20%2Espan7%7Bwidth%3A57%2E18232044198895%25%3B%2Awidth%3A57%2E12912895262725%25%7D%2Erow%2Dfluid%20%2Espan6%7Bwidth%3A48%2E61878453038674%25%3B%2Awidth%3A48%2E56559304102504%25%7D%2Erow%2Dfluid%20%2Espan5%7Bwidth%3A40%2E05524861878453%25%3B%2Awidth%3A40%2E00205712942283%25%7D%2Erow%2Dfluid%20%2Espan4%7Bwidth%3A31%2E491712707182323%25%3B%2Awidth%3A31%2E43852121782062%25%7D%2Erow%2Dfluid%20%2Espan3%7Bwidth%3A22%2E92817679558011%25%3B%2Awidth%3A22%2E87498530621841%25%7D%2Erow%2Dfluid%20%2Espan2%7Bwidth%3A14%2E3646408839779%25%3B%2Awidth%3A14%2E311449394616199%25%7D%2Erow%2Dfluid%20%2Espan1%7Bwidth%3A5%2E801104972375691%25%3B%2Awidth%3A5%2E747913483013988%25%7D%2Erow%2Dfluid%20%2Eoffset12%7Bmargin%2Dleft%3A105%2E52486187845304%25%3B%2Amargin%2Dleft%3A105%2E41847889972962%25%7D%2Erow%2Dfluid%20%2Eoffset12%3Afirst%2Dchild%7Bmargin%2Dleft%3A102%2E76243093922652%25%3B%2Amargin%2Dleft%3A102%2E6560479605031%25%7D%2Erow%2Dfluid%20%2Eoffset11%7Bmargin%2Dleft%3A96%2E96132596685082%25%3B%2Amargin%2Dleft%3A96%2E8549429881274%25%7D%2Erow%2Dfluid%20%2Eoffset11%3Afirst%2Dchild%7Bmargin%2Dleft%3A94%2E1988950276243%25%3B%2Amargin%2Dleft%3A94%2E09251204890089%25%7D%2Erow%2Dfluid%20%2Eoffset10%7Bmargin%2Dleft%3A88%2E39779005524862%25%3B%2Amargin%2Dleft%3A88%2E2914070765252%25%7D%2Erow%2Dfluid%20%2Eoffset10%3Afirst%2Dchild%7Bmargin%2Dleft%3A85%2E6353591160221%25%3B%2Amargin%2Dleft%3A85%2E52897613729868%25%7D%2Erow%2Dfluid%20%2Eoffset9%7Bmargin%2Dleft%3A79%2E8342541436464%25%3B%2Amargin%2Dleft%3A79%2E72787116492299%25%7D%2Erow%2Dfluid%20%2Eoffset9%3Afirst%2Dchild%7Bmargin%2Dleft%3A77%2E07182320441989%25%3B%2Amargin%2Dleft%3A76%2E96544022569647%25%7D%2Erow%2Dfluid%20%2Eoffset8%7Bmargin%2Dleft%3A71%2E2707182320442%25%3B%2Amargin%2Dleft%3A71%2E16433525332079%25%7D%2Erow%2Dfluid%20%2Eoffset8%3Afirst%2Dchild%7Bmargin%2Dleft%3A68%2E50828729281768%25%3B%2Amargin%2Dleft%3A68%2E40190431409427%25%7D%2Erow%2Dfluid%20%2Eoffset7%7Bmargin%2Dleft%3A62%2E70718232044199%25%3B%2Amargin%2Dleft%3A62%2E600799341718584%25%7D%2Erow%2Dfluid%20%2Eoffset7%3Afirst%2Dchild%7Bmargin%2Dleft%3A59%2E94475138121547%25%3B%2Amargin%2Dleft%3A59%2E838368402492065%25%7D%2Erow%2Dfluid%20%2Eoffset6%7Bmargin%2Dleft%3A54%2E14364640883978%25%3B%2Amargin%2Dleft%3A54%2E037263430116376%25%7D%2Erow%2Dfluid%20%2Eoffset6%3Afirst%2Dchild%7Bmargin%2Dleft%3A51%2E38121546961326%25%3B%2Amargin%2Dleft%3A51%2E27483249088986%25%7D%2Erow%2Dfluid%20%2Eoffset5%7Bmargin%2Dleft%3A45%2E58011049723757%25%3B%2Amargin%2Dleft%3A45%2E47372751851417%25%7D%2Erow%2Dfluid%20%2Eoffset5%3Afirst%2Dchild%7Bmargin%2Dleft%3A42%2E81767955801105%25%3B%2Amargin%2Dleft%3A42%2E71129657928765%25%7D%2Erow%2Dfluid%20%2Eoffset4%7Bmargin%2Dleft%3A37%2E01657458563536%25%3B%2Amargin%2Dleft%3A36%2E91019160691196%25%7D%2Erow%2Dfluid%20%2Eoffset4%3Afirst%2Dchild%7Bmargin%2Dleft%3A34%2E25414364640884%25%3B%2Amargin%2Dleft%3A34%2E14776066768544%25%7D%2Erow%2Dfluid%20%2Eoffset3%7Bmargin%2Dleft%3A28%2E45303867403315%25%3B%2Amargin%2Dleft%3A28%2E346655695309746%25%7D%2Erow%2Dfluid%20%2Eoffset3%3Afirst%2Dchild%7Bmargin%2Dleft%3A25%2E69060773480663%25%3B%2Amargin%2Dleft%3A25%2E584224756083227%25%7D%2Erow%2Dfluid%20%2Eoffset2%7Bmargin%2Dleft%3A19%2E88950276243094%25%3B%2Amargin%2Dleft%3A19%2E783119783707537%25%7D%2Erow%2Dfluid%20%2Eoffset2%3Afirst%2Dchild%7Bmargin%2Dleft%3A17%2E12707182320442%25%3B%2Amargin%2Dleft%3A17%2E02068884448102%25%7D%2Erow%2Dfluid%20%2Eoffset1%7Bmargin%2Dleft%3A11%2E32596685082873%25%3B%2Amargin%2Dleft%3A11%2E219583872105325%25%7D%2Erow%2Dfluid%20%2Eoffset1%3Afirst%2Dchild%7Bmargin%2Dleft%3A8%2E56353591160221%25%3B%2Amargin%2Dleft%3A8%2E457152932878806%25%7Dinput%2Ctextarea%2C%2Euneditable%2Dinput%7Bmargin%2Dleft%3A0%7D%2Econtrols%2Drow%20%5Bclass%2A%3D%22span%22%5D%2B%5Bclass%2A%3D%22span%22%5D%7Bmargin%2Dleft%3A20px%7Dinput%2Espan12%2Ctextarea%2Espan12%2C%2Euneditable%2Dinput%2Espan12%7Bwidth%3A710px%7Dinput%2Espan11%2Ctextarea%2Espan11%2C%2Euneditable%2Dinput%2Espan11%7Bwidth%3A648px%7Dinput%2Espan10%2Ctextarea%2Espan10%2C%2Euneditable%2Dinput%2Espan10%7Bwidth%3A586px%7Dinput%2Espan9%2Ctextarea%2Espan9%2C%2Euneditable%2Dinput%2Espan9%7Bwidth%3A524px%7Dinput%2Espan8%2Ctextarea%2Espan8%2C%2Euneditable%2Dinput%2Espan8%7Bwidth%3A462px%7Dinput%2Espan7%2Ctextarea%2Espan7%2C%2Euneditable%2Dinput%2Espan7%7Bwidth%3A400px%7Dinput%2Espan6%2Ctextarea%2Espan6%2C%2Euneditable%2Dinput%2Espan6%7Bwidth%3A338px%7Dinput%2Espan5%2Ctextarea%2Espan5%2C%2Euneditable%2Dinput%2Espan5%7Bwidth%3A276px%7Dinput%2Espan4%2Ctextarea%2Espan4%2C%2Euneditable%2Dinput%2Espan4%7Bwidth%3A214px%7Dinput%2Espan3%2Ctextarea%2Espan3%2C%2Euneditable%2Dinput%2Espan3%7Bwidth%3A152px%7Dinput%2Espan2%2Ctextarea%2Espan2%2C%2Euneditable%2Dinput%2Espan2%7Bwidth%3A90px%7Dinput%2Espan1%2Ctextarea%2Espan1%2C%2Euneditable%2Dinput%2Espan1%7Bwidth%3A28px%7D%7D%40media%28max%2Dwidth%3A767px%29%7Bbody%7Bpadding%2Dright%3A20px%3Bpadding%2Dleft%3A20px%7D%2Enavbar%2Dfixed%2Dtop%2C%2Enavbar%2Dfixed%2Dbottom%2C%2Enavbar%2Dstatic%2Dtop%7Bmargin%2Dright%3A%2D20px%3Bmargin%2Dleft%3A%2D20px%7D%2Econtainer%2Dfluid%7Bpadding%3A0%7D%2Edl%2Dhorizontal%20dt%7Bfloat%3Anone%3Bwidth%3Aauto%3Bclear%3Anone%3Btext%2Dalign%3Aleft%7D%2Edl%2Dhorizontal%20dd%7Bmargin%2Dleft%3A0%7D%2Econtainer%7Bwidth%3Aauto%7D%2Erow%2Dfluid%7Bwidth%3A100%25%7D%2Erow%2C%2Ethumbnails%7Bmargin%2Dleft%3A0%7D%2Ethumbnails%3Eli%7Bfloat%3Anone%3Bmargin%2Dleft%3A0%7D%5Bclass%2A%3D%22span%22%5D%2C%2Euneditable%2Dinput%5Bclass%2A%3D%22span%22%5D%2C%2Erow%2Dfluid%20%5Bclass%2A%3D%22span%22%5D%7Bdisplay%3Ablock%3Bfloat%3Anone%3Bwidth%3A100%25%3Bmargin%2Dleft%3A0%3B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%2Espan12%2C%2Erow%2Dfluid%20%2Espan12%7Bwidth%3A100%25%3B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%2Erow%2Dfluid%20%5Bclass%2A%3D%22offset%22%5D%3Afirst%2Dchild%7Bmargin%2Dleft%3A0%7D%2Einput%2Dlarge%2C%2Einput%2Dxlarge%2C%2Einput%2Dxxlarge%2Cinput%5Bclass%2A%3D%22span%22%5D%2Cselect%5Bclass%2A%3D%22span%22%5D%2Ctextarea%5Bclass%2A%3D%22span%22%5D%2C%2Euneditable%2Dinput%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bmin%2Dheight%3A30px%3B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%2Einput%2Dprepend%20input%2C%2Einput%2Dappend%20input%2C%2Einput%2Dprepend%20input%5Bclass%2A%3D%22span%22%5D%2C%2Einput%2Dappend%20input%5Bclass%2A%3D%22span%22%5D%7Bdisplay%3Ainline%2Dblock%3Bwidth%3Aauto%7D%2Econtrols%2Drow%20%5Bclass%2A%3D%22span%22%5D%2B%5Bclass%2A%3D%22span%22%5D%7Bmargin%2Dleft%3A0%7D%2Emodal%7Bposition%3Afixed%3Btop%3A20px%3Bright%3A20px%3Bleft%3A20px%3Bwidth%3Aauto%3Bmargin%3A0%7D%2Emodal%2Efade%7Btop%3A%2D100px%7D%2Emodal%2Efade%2Ein%7Btop%3A20px%7D%7D%40media%28max%2Dwidth%3A480px%29%7B%2Enav%2Dcollapse%7B%2Dwebkit%2Dtransform%3Atranslate3d%280%2C0%2C0%29%7D%2Epage%2Dheader%20h1%20small%7Bdisplay%3Ablock%3Bline%2Dheight%3A20px%7Dinput%5Btype%3D%22checkbox%22%5D%2Cinput%5Btype%3D%22radio%22%5D%7Bborder%3A1px%20solid%20%23ccc%7D%2Eform%2Dhorizontal%20%2Econtrol%2Dlabel%7Bfloat%3Anone%3Bwidth%3Aauto%3Bpadding%2Dtop%3A0%3Btext%2Dalign%3Aleft%7D%2Eform%2Dhorizontal%20%2Econtrols%7Bmargin%2Dleft%3A0%7D%2Eform%2Dhorizontal%20%2Econtrol%2Dlist%7Bpadding%2Dtop%3A0%7D%2Eform%2Dhorizontal%20%2Eform%2Dactions%7Bpadding%2Dright%3A10px%3Bpadding%2Dleft%3A10px%7D%2Emedia%20%2Epull%2Dleft%2C%2Emedia%20%2Epull%2Dright%7Bdisplay%3Ablock%3Bfloat%3Anone%3Bmargin%2Dbottom%3A10px%7D%2Emedia%2Dobject%7Bmargin%2Dright%3A0%3Bmargin%2Dleft%3A0%7D%2Emodal%7Btop%3A10px%3Bright%3A10px%3Bleft%3A10px%7D%2Emodal%2Dheader%20%2Eclose%7Bpadding%3A10px%3Bmargin%3A%2D10px%7D%2Ecarousel%2Dcaption%7Bposition%3Astatic%7D%7D%40media%28max%2Dwidth%3A979px%29%7Bbody%7Bpadding%2Dtop%3A0%7D%2Enavbar%2Dfixed%2Dtop%2C%2Enavbar%2Dfixed%2Dbottom%7Bposition%3Astatic%7D%2Enavbar%2Dfixed%2Dtop%7Bmargin%2Dbottom%3A20px%7D%2Enavbar%2Dfixed%2Dbottom%7Bmargin%2Dtop%3A20px%7D%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dinner%2C%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dinner%7Bpadding%3A5px%7D%2Enavbar%20%2Econtainer%7Bwidth%3Aauto%3Bpadding%3A0%7D%2Enavbar%20%2Ebrand%7Bpadding%2Dright%3A10px%3Bpadding%2Dleft%3A10px%3Bmargin%3A0%200%200%20%2D5px%7D%2Enav%2Dcollapse%7Bclear%3Aboth%7D%2Enav%2Dcollapse%20%2Enav%7Bfloat%3Anone%3Bmargin%3A0%200%2010px%7D%2Enav%2Dcollapse%20%2Enav%3Eli%7Bfloat%3Anone%7D%2Enav%2Dcollapse%20%2Enav%3Eli%3Ea%7Bmargin%2Dbottom%3A2px%7D%2Enav%2Dcollapse%20%2Enav%3E%2Edivider%2Dvertical%7Bdisplay%3Anone%7D%2Enav%2Dcollapse%20%2Enav%20%2Enav%2Dheader%7Bcolor%3A%23777%3Btext%2Dshadow%3Anone%7D%2Enav%2Dcollapse%20%2Enav%3Eli%3Ea%2C%2Enav%2Dcollapse%20%2Edropdown%2Dmenu%20a%7Bpadding%3A9px%2015px%3Bfont%2Dweight%3Abold%3Bcolor%3A%23777%3B%2Dwebkit%2Dborder%2Dradius%3A3px%3B%2Dmoz%2Dborder%2Dradius%3A3px%3Bborder%2Dradius%3A3px%7D%2Enav%2Dcollapse%20%2Ebtn%7Bpadding%3A4px%2010px%204px%3Bfont%2Dweight%3Anormal%3B%2Dwebkit%2Dborder%2Dradius%3A4px%3B%2Dmoz%2Dborder%2Dradius%3A4px%3Bborder%2Dradius%3A4px%7D%2Enav%2Dcollapse%20%2Edropdown%2Dmenu%20li%2Bli%20a%7Bmargin%2Dbottom%3A2px%7D%2Enav%2Dcollapse%20%2Enav%3Eli%3Ea%3Ahover%2C%2Enav%2Dcollapse%20%2Enav%3Eli%3Ea%3Afocus%2C%2Enav%2Dcollapse%20%2Edropdown%2Dmenu%20a%3Ahover%2C%2Enav%2Dcollapse%20%2Edropdown%2Dmenu%20a%3Afocus%7Bbackground%2Dcolor%3A%23f2f2f2%7D%2Enavbar%2Dinverse%20%2Enav%2Dcollapse%20%2Enav%3Eli%3Ea%2C%2Enavbar%2Dinverse%20%2Enav%2Dcollapse%20%2Edropdown%2Dmenu%20a%7Bcolor%3A%23999%7D%2Enavbar%2Dinverse%20%2Enav%2Dcollapse%20%2Enav%3Eli%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enav%2Dcollapse%20%2Enav%3Eli%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enav%2Dcollapse%20%2Edropdown%2Dmenu%20a%3Ahover%2C%2Enavbar%2Dinverse%20%2Enav%2Dcollapse%20%2Edropdown%2Dmenu%20a%3Afocus%7Bbackground%2Dcolor%3A%23111%7D%2Enav%2Dcollapse%2Ein%20%2Ebtn%2Dgroup%7Bpadding%3A0%3Bmargin%2Dtop%3A5px%7D%2Enav%2Dcollapse%20%2Edropdown%2Dmenu%7Bposition%3Astatic%3Btop%3Aauto%3Bleft%3Aauto%3Bdisplay%3Anone%3Bfloat%3Anone%3Bmax%2Dwidth%3Anone%3Bpadding%3A0%3Bmargin%3A0%2015px%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%3B%2Dwebkit%2Dborder%2Dradius%3A0%3B%2Dmoz%2Dborder%2Dradius%3A0%3Bborder%2Dradius%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3B%2Dmoz%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Enav%2Dcollapse%20%2Eopen%3E%2Edropdown%2Dmenu%7Bdisplay%3Ablock%7D%2Enav%2Dcollapse%20%2Edropdown%2Dmenu%3Abefore%2C%2Enav%2Dcollapse%20%2Edropdown%2Dmenu%3Aafter%7Bdisplay%3Anone%7D%2Enav%2Dcollapse%20%2Edropdown%2Dmenu%20%2Edivider%7Bdisplay%3Anone%7D%2Enav%2Dcollapse%20%2Enav%3Eli%3E%2Edropdown%2Dmenu%3Abefore%2C%2Enav%2Dcollapse%20%2Enav%3Eli%3E%2Edropdown%2Dmenu%3Aafter%7Bdisplay%3Anone%7D%2Enav%2Dcollapse%20%2Enavbar%2Dform%2C%2Enav%2Dcollapse%20%2Enavbar%2Dsearch%7Bfloat%3Anone%3Bpadding%3A10px%2015px%3Bmargin%3A10px%200%3Bborder%2Dtop%3A1px%20solid%20%23f2f2f2%3Bborder%2Dbottom%3A1px%20solid%20%23f2f2f2%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3B%2Dmoz%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%7D%2Enavbar%2Dinverse%20%2Enav%2Dcollapse%20%2Enavbar%2Dform%2C%2Enavbar%2Dinverse%20%2Enav%2Dcollapse%20%2Enavbar%2Dsearch%7Bborder%2Dtop%2Dcolor%3A%23111%3Bborder%2Dbottom%2Dcolor%3A%23111%7D%2Enavbar%20%2Enav%2Dcollapse%20%2Enav%2Epull%2Dright%7Bfloat%3Anone%3Bmargin%2Dleft%3A0%7D%2Enav%2Dcollapse%2C%2Enav%2Dcollapse%2Ecollapse%7Bheight%3A0%3Boverflow%3Ahidden%7D%2Enavbar%20%2Ebtn%2Dnavbar%7Bdisplay%3Ablock%7D%2Enavbar%2Dstatic%20%2Enavbar%2Dinner%7Bpadding%2Dright%3A10px%3Bpadding%2Dleft%3A10px%7D%7D%40media%28min%2Dwidth%3A980px%29%7B%2Enav%2Dcollapse%2Ecollapse%7Bheight%3Aauto%21important%3Boverflow%3Avisible%21important%7D%7D%0A" rel="stylesheet" />
+<script src="data:application/x-javascript,%2F%2A%21%0A%2A%20Bootstrap%2Ejs%20by%20%40fat%20%26%20%40mdo%0A%2A%20Copyright%202013%20Twitter%2C%20Inc%2E%0A%2A%20http%3A%2F%2Fwww%2Eapache%2Eorg%2Flicenses%2FLICENSE%2D2%2E0%2Etxt%0A%2A%2F%0A%21function%28e%29%7B%22use%20strict%22%3Be%28function%28%29%7Be%2Esupport%2Etransition%3Dfunction%28%29%7Bvar%20e%3Dfunction%28%29%7Bvar%20e%3Ddocument%2EcreateElement%28%22bootstrap%22%29%2Ct%3D%7BWebkitTransition%3A%22webkitTransitionEnd%22%2CMozTransition%3A%22transitionend%22%2COTransition%3A%22oTransitionEnd%20otransitionend%22%2Ctransition%3A%22transitionend%22%7D%2Cn%3Bfor%28n%20in%20t%29if%28e%2Estyle%5Bn%5D%21%3D%3Dundefined%29return%20t%5Bn%5D%7D%28%29%3Breturn%20e%26%26%7Bend%3Ae%7D%7D%28%29%7D%29%7D%28window%2EjQuery%29%2C%21function%28e%29%7B%22use%20strict%22%3Bvar%20t%3D%27%5Bdata%2Ddismiss%3D%22alert%22%5D%27%2Cn%3Dfunction%28n%29%7Be%28n%29%2Eon%28%22click%22%2Ct%2Cthis%2Eclose%29%7D%3Bn%2Eprototype%2Eclose%3Dfunction%28t%29%7Bfunction%20s%28%29%7Bi%2Etrigger%28%22closed%22%29%2Eremove%28%29%7Dvar%20n%3De%28this%29%2Cr%3Dn%2Eattr%28%22data%2Dtarget%22%29%2Ci%3Br%7C%7C%28r%3Dn%2Eattr%28%22href%22%29%2Cr%3Dr%26%26r%2Ereplace%28%2F%2E%2A%28%3F%3D%23%5B%5E%5Cs%5D%2A%24%29%2F%2C%22%22%29%29%2Ci%3De%28r%29%2Ct%26%26t%2EpreventDefault%28%29%2Ci%2Elength%7C%7C%28i%3Dn%2EhasClass%28%22alert%22%29%3Fn%3An%2Eparent%28%29%29%2Ci%2Etrigger%28t%3De%2EEvent%28%22close%22%29%29%3Bif%28t%2EisDefaultPrevented%28%29%29return%3Bi%2EremoveClass%28%22in%22%29%2Ce%2Esupport%2Etransition%26%26i%2EhasClass%28%22fade%22%29%3Fi%2Eon%28e%2Esupport%2Etransition%2Eend%2Cs%29%3As%28%29%7D%3Bvar%20r%3De%2Efn%2Ealert%3Be%2Efn%2Ealert%3Dfunction%28t%29%7Breturn%20this%2Eeach%28function%28%29%7Bvar%20r%3De%28this%29%2Ci%3Dr%2Edata%28%22alert%22%29%3Bi%7C%7Cr%2Edata%28%22alert%22%2Ci%3Dnew%20n%28this%29%29%2Ctypeof%20t%3D%3D%22string%22%26%26i%5Bt%5D%2Ecall%28r%29%7D%29%7D%2Ce%2Efn%2Ealert%2EConstructor%3Dn%2Ce%2Efn%2Ealert%2EnoConflict%3Dfunction%28%29%7Breturn%20e%2Efn%2Ealert%3Dr%2Cthis%7D%2Ce%28document%29%2Eon%28%22click%2Ealert%2Edata%2Dapi%22%2Ct%2Cn%2Eprototype%2Eclose%29%7D%28window%2EjQuery%29%2C%21function%28e%29%7B%22use%20strict%22%3Bvar%20t%3Dfunction%28t%2Cn%29%7Bthis%2E%24element%3De%28t%29%2Cthis%2Eoptions%3De%2Eextend%28%7B%7D%2Ce%2Efn%2Ebutton%2Edefaults%2Cn%29%7D%3Bt%2Eprototype%2EsetState%3Dfunction%28e%29%7Bvar%20t%3D%22disabled%22%2Cn%3Dthis%2E%24element%2Cr%3Dn%2Edata%28%29%2Ci%3Dn%2Eis%28%22input%22%29%3F%22val%22%3A%22html%22%3Be%2B%3D%22Text%22%2Cr%2EresetText%7C%7Cn%2Edata%28%22resetText%22%2Cn%5Bi%5D%28%29%29%2Cn%5Bi%5D%28r%5Be%5D%7C%7Cthis%2Eoptions%5Be%5D%29%2CsetTimeout%28function%28%29%7Be%3D%3D%22loadingText%22%3Fn%2EaddClass%28t%29%2Eattr%28t%2Ct%29%3An%2EremoveClass%28t%29%2EremoveAttr%28t%29%7D%2C0%29%7D%2Ct%2Eprototype%2Etoggle%3Dfunction%28%29%7Bvar%20e%3Dthis%2E%24element%2Eclosest%28%27%5Bdata%2Dtoggle%3D%22buttons%2Dradio%22%5D%27%29%3Be%26%26e%2Efind%28%22%2Eactive%22%29%2EremoveClass%28%22active%22%29%2Cthis%2E%24element%2EtoggleClass%28%22active%22%29%7D%3Bvar%20n%3De%2Efn%2Ebutton%3Be%2Efn%2Ebutton%3Dfunction%28n%29%7Breturn%20this%2Eeach%28function%28%29%7Bvar%20r%3De%28this%29%2Ci%3Dr%2Edata%28%22button%22%29%2Cs%3Dtypeof%20n%3D%3D%22object%22%26%26n%3Bi%7C%7Cr%2Edata%28%22button%22%2Ci%3Dnew%20t%28this%2Cs%29%29%2Cn%3D%3D%22toggle%22%3Fi%2Etoggle%28%29%3An%26%26i%2EsetState%28n%29%7D%29%7D%2Ce%2Efn%2Ebutton%2Edefaults%3D%7BloadingText%3A%22loading%2E%2E%2E%22%7D%2Ce%2Efn%2Ebutton%2EConstructor%3Dt%2Ce%2Efn%2Ebutton%2EnoConflict%3Dfunction%28%29%7Breturn%20e%2Efn%2Ebutton%3Dn%2Cthis%7D%2Ce%28document%29%2Eon%28%22click%2Ebutton%2Edata%2Dapi%22%2C%22%5Bdata%2Dtoggle%5E%3Dbutton%5D%22%2Cfunction%28t%29%7Bvar%20n%3De%28t%2Etarget%29%3Bn%2EhasClass%28%22btn%22%29%7C%7C%28n%3Dn%2Eclosest%28%22%2Ebtn%22%29%29%2Cn%2Ebutton%28%22toggle%22%29%7D%29%7D%28window%2EjQuery%29%2C%21function%28e%29%7B%22use%20strict%22%3Bvar%20t%3Dfunction%28t%2Cn%29%7Bthis%2E%24element%3De%28t%29%2Cthis%2E%24indicators%3Dthis%2E%24element%2Efind%28%22%2Ecarousel%2Dindicators%22%29%2Cthis%2Eoptions%3Dn%2Cthis%2Eoptions%2Epause%3D%3D%22hover%22%26%26this%2E%24element%2Eon%28%22mouseenter%22%2Ce%2Eproxy%28this%2Epause%2Cthis%29%29%2Eon%28%22mouseleave%22%2Ce%2Eproxy%28this%2Ecycle%2Cthis%29%29%7D%3Bt%2Eprototype%3D%7Bcycle%3Afunction%28t%29%7Breturn%20t%7C%7C%28this%2Epaused%3D%211%29%2Cthis%2Einterval%26%26clearInterval%28this%2Einterval%29%2Cthis%2Eoptions%2Einterval%26%26%21this%2Epaused%26%26%28this%2Einterval%3DsetInterval%28e%2Eproxy%28this%2Enext%2Cthis%29%2Cthis%2Eoptions%2Einterval%29%29%2Cthis%7D%2CgetActiveIndex%3Afunction%28%29%7Breturn%20this%2E%24active%3Dthis%2E%24element%2Efind%28%22%2Eitem%2Eactive%22%29%2Cthis%2E%24items%3Dthis%2E%24active%2Eparent%28%29%2Echildren%28%29%2Cthis%2E%24items%2Eindex%28this%2E%24active%29%7D%2Cto%3Afunction%28t%29%7Bvar%20n%3Dthis%2EgetActiveIndex%28%29%2Cr%3Dthis%3Bif%28t%3Ethis%2E%24items%2Elength%2D1%7C%7Ct%3C0%29return%3Breturn%20this%2Esliding%3Fthis%2E%24element%2Eone%28%22slid%22%2Cfunction%28%29%7Br%2Eto%28t%29%7D%29%3An%3D%3Dt%3Fthis%2Epause%28%29%2Ecycle%28%29%3Athis%2Eslide%28t%3En%3F%22next%22%3A%22prev%22%2Ce%28this%2E%24items%5Bt%5D%29%29%7D%2Cpause%3Afunction%28t%29%7Breturn%20t%7C%7C%28this%2Epaused%3D%210%29%2Cthis%2E%24element%2Efind%28%22%2Enext%2C%20%2Eprev%22%29%2Elength%26%26e%2Esupport%2Etransition%2Eend%26%26%28this%2E%24element%2Etrigger%28e%2Esupport%2Etransition%2Eend%29%2Cthis%2Ecycle%28%210%29%29%2CclearInterval%28this%2Einterval%29%2Cthis%2Einterval%3Dnull%2Cthis%7D%2Cnext%3Afunction%28%29%7Bif%28this%2Esliding%29return%3Breturn%20this%2Eslide%28%22next%22%29%7D%2Cprev%3Afunction%28%29%7Bif%28this%2Esliding%29return%3Breturn%20this%2Eslide%28%22prev%22%29%7D%2Cslide%3Afunction%28t%2Cn%29%7Bvar%20r%3Dthis%2E%24element%2Efind%28%22%2Eitem%2Eactive%22%29%2Ci%3Dn%7C%7Cr%5Bt%5D%28%29%2Cs%3Dthis%2Einterval%2Co%3Dt%3D%3D%22next%22%3F%22left%22%3A%22right%22%2Cu%3Dt%3D%3D%22next%22%3F%22first%22%3A%22last%22%2Ca%3Dthis%2Cf%3Bthis%2Esliding%3D%210%2Cs%26%26this%2Epause%28%29%2Ci%3Di%2Elength%3Fi%3Athis%2E%24element%2Efind%28%22%2Eitem%22%29%5Bu%5D%28%29%2Cf%3De%2EEvent%28%22slide%22%2C%7BrelatedTarget%3Ai%5B0%5D%2Cdirection%3Ao%7D%29%3Bif%28i%2EhasClass%28%22active%22%29%29return%3Bthis%2E%24indicators%2Elength%26%26%28this%2E%24indicators%2Efind%28%22%2Eactive%22%29%2EremoveClass%28%22active%22%29%2Cthis%2E%24element%2Eone%28%22slid%22%2Cfunction%28%29%7Bvar%20t%3De%28a%2E%24indicators%2Echildren%28%29%5Ba%2EgetActiveIndex%28%29%5D%29%3Bt%26%26t%2EaddClass%28%22active%22%29%7D%29%29%3Bif%28e%2Esupport%2Etransition%26%26this%2E%24element%2EhasClass%28%22slide%22%29%29%7Bthis%2E%24element%2Etrigger%28f%29%3Bif%28f%2EisDefaultPrevented%28%29%29return%3Bi%2EaddClass%28t%29%2Ci%5B0%5D%2EoffsetWidth%2Cr%2EaddClass%28o%29%2Ci%2EaddClass%28o%29%2Cthis%2E%24element%2Eone%28e%2Esupport%2Etransition%2Eend%2Cfunction%28%29%7Bi%2EremoveClass%28%5Bt%2Co%5D%2Ejoin%28%22%20%22%29%29%2EaddClass%28%22active%22%29%2Cr%2EremoveClass%28%5B%22active%22%2Co%5D%2Ejoin%28%22%20%22%29%29%2Ca%2Esliding%3D%211%2CsetTimeout%28function%28%29%7Ba%2E%24element%2Etrigger%28%22slid%22%29%7D%2C0%29%7D%29%7Delse%7Bthis%2E%24element%2Etrigger%28f%29%3Bif%28f%2EisDefaultPrevented%28%29%29return%3Br%2EremoveClass%28%22active%22%29%2Ci%2EaddClass%28%22active%22%29%2Cthis%2Esliding%3D%211%2Cthis%2E%24element%2Etrigger%28%22slid%22%29%7Dreturn%20s%26%26this%2Ecycle%28%29%2Cthis%7D%7D%3Bvar%20n%3De%2Efn%2Ecarousel%3Be%2Efn%2Ecarousel%3Dfunction%28n%29%7Breturn%20this%2Eeach%28function%28%29%7Bvar%20r%3De%28this%29%2Ci%3Dr%2Edata%28%22carousel%22%29%2Cs%3De%2Eextend%28%7B%7D%2Ce%2Efn%2Ecarousel%2Edefaults%2Ctypeof%20n%3D%3D%22object%22%26%26n%29%2Co%3Dtypeof%20n%3D%3D%22string%22%3Fn%3As%2Eslide%3Bi%7C%7Cr%2Edata%28%22carousel%22%2Ci%3Dnew%20t%28this%2Cs%29%29%2Ctypeof%20n%3D%3D%22number%22%3Fi%2Eto%28n%29%3Ao%3Fi%5Bo%5D%28%29%3As%2Einterval%26%26i%2Epause%28%29%2Ecycle%28%29%7D%29%7D%2Ce%2Efn%2Ecarousel%2Edefaults%3D%7Binterval%3A5e3%2Cpause%3A%22hover%22%7D%2Ce%2Efn%2Ecarousel%2EConstructor%3Dt%2Ce%2Efn%2Ecarousel%2EnoConflict%3Dfunction%28%29%7Breturn%20e%2Efn%2Ecarousel%3Dn%2Cthis%7D%2Ce%28document%29%2Eon%28%22click%2Ecarousel%2Edata%2Dapi%22%2C%22%5Bdata%2Dslide%5D%2C%20%5Bdata%2Dslide%2Dto%5D%22%2Cfunction%28t%29%7Bvar%20n%3De%28this%29%2Cr%2Ci%3De%28n%2Eattr%28%22data%2Dtarget%22%29%7C%7C%28r%3Dn%2Eattr%28%22href%22%29%29%26%26r%2Ereplace%28%2F%2E%2A%28%3F%3D%23%5B%5E%5Cs%5D%2B%24%29%2F%2C%22%22%29%29%2Cs%3De%2Eextend%28%7B%7D%2Ci%2Edata%28%29%2Cn%2Edata%28%29%29%2Co%3Bi%2Ecarousel%28s%29%2C%28o%3Dn%2Eattr%28%22data%2Dslide%2Dto%22%29%29%26%26i%2Edata%28%22carousel%22%29%2Epause%28%29%2Eto%28o%29%2Ecycle%28%29%2Ct%2EpreventDefault%28%29%7D%29%7D%28window%2EjQuery%29%2C%21function%28e%29%7B%22use%20strict%22%3Bvar%20t%3Dfunction%28t%2Cn%29%7Bthis%2E%24element%3De%28t%29%2Cthis%2Eoptions%3De%2Eextend%28%7B%7D%2Ce%2Efn%2Ecollapse%2Edefaults%2Cn%29%2Cthis%2Eoptions%2Eparent%26%26%28this%2E%24parent%3De%28this%2Eoptions%2Eparent%29%29%2Cthis%2Eoptions%2Etoggle%26%26this%2Etoggle%28%29%7D%3Bt%2Eprototype%3D%7Bconstructor%3At%2Cdimension%3Afunction%28%29%7Bvar%20e%3Dthis%2E%24element%2EhasClass%28%22width%22%29%3Breturn%20e%3F%22width%22%3A%22height%22%7D%2Cshow%3Afunction%28%29%7Bvar%20t%2Cn%2Cr%2Ci%3Bif%28this%2Etransitioning%7C%7Cthis%2E%24element%2EhasClass%28%22in%22%29%29return%3Bt%3Dthis%2Edimension%28%29%2Cn%3De%2EcamelCase%28%5B%22scroll%22%2Ct%5D%2Ejoin%28%22%2D%22%29%29%2Cr%3Dthis%2E%24parent%26%26this%2E%24parent%2Efind%28%22%3E%20%2Eaccordion%2Dgroup%20%3E%20%2Ein%22%29%3Bif%28r%26%26r%2Elength%29%7Bi%3Dr%2Edata%28%22collapse%22%29%3Bif%28i%26%26i%2Etransitioning%29return%3Br%2Ecollapse%28%22hide%22%29%2Ci%7C%7Cr%2Edata%28%22collapse%22%2Cnull%29%7Dthis%2E%24element%5Bt%5D%280%29%2Cthis%2Etransition%28%22addClass%22%2Ce%2EEvent%28%22show%22%29%2C%22shown%22%29%2Ce%2Esupport%2Etransition%26%26this%2E%24element%5Bt%5D%28this%2E%24element%5B0%5D%5Bn%5D%29%7D%2Chide%3Afunction%28%29%7Bvar%20t%3Bif%28this%2Etransitioning%7C%7C%21this%2E%24element%2EhasClass%28%22in%22%29%29return%3Bt%3Dthis%2Edimension%28%29%2Cthis%2Ereset%28this%2E%24element%5Bt%5D%28%29%29%2Cthis%2Etransition%28%22removeClass%22%2Ce%2EEvent%28%22hide%22%29%2C%22hidden%22%29%2Cthis%2E%24element%5Bt%5D%280%29%7D%2Creset%3Afunction%28e%29%7Bvar%20t%3Dthis%2Edimension%28%29%3Breturn%20this%2E%24element%2EremoveClass%28%22collapse%22%29%5Bt%5D%28e%7C%7C%22auto%22%29%5B0%5D%2EoffsetWidth%2Cthis%2E%24element%5Be%21%3D%3Dnull%3F%22addClass%22%3A%22removeClass%22%5D%28%22collapse%22%29%2Cthis%7D%2Ctransition%3Afunction%28t%2Cn%2Cr%29%7Bvar%20i%3Dthis%2Cs%3Dfunction%28%29%7Bn%2Etype%3D%3D%22show%22%26%26i%2Ereset%28%29%2Ci%2Etransitioning%3D0%2Ci%2E%24element%2Etrigger%28r%29%7D%3Bthis%2E%24element%2Etrigger%28n%29%3Bif%28n%2EisDefaultPrevented%28%29%29return%3Bthis%2Etransitioning%3D1%2Cthis%2E%24element%5Bt%5D%28%22in%22%29%2Ce%2Esupport%2Etransition%26%26this%2E%24element%2EhasClass%28%22collapse%22%29%3Fthis%2E%24element%2Eone%28e%2Esupport%2Etransition%2Eend%2Cs%29%3As%28%29%7D%2Ctoggle%3Afunction%28%29%7Bthis%5Bthis%2E%24element%2EhasClass%28%22in%22%29%3F%22hide%22%3A%22show%22%5D%28%29%7D%7D%3Bvar%20n%3De%2Efn%2Ecollapse%3Be%2Efn%2Ecollapse%3Dfunction%28n%29%7Breturn%20this%2Eeach%28function%28%29%7Bvar%20r%3De%28this%29%2Ci%3Dr%2Edata%28%22collapse%22%29%2Cs%3De%2Eextend%28%7B%7D%2Ce%2Efn%2Ecollapse%2Edefaults%2Cr%2Edata%28%29%2Ctypeof%20n%3D%3D%22object%22%26%26n%29%3Bi%7C%7Cr%2Edata%28%22collapse%22%2Ci%3Dnew%20t%28this%2Cs%29%29%2Ctypeof%20n%3D%3D%22string%22%26%26i%5Bn%5D%28%29%7D%29%7D%2Ce%2Efn%2Ecollapse%2Edefaults%3D%7Btoggle%3A%210%7D%2Ce%2Efn%2Ecollapse%2EConstructor%3Dt%2Ce%2Efn%2Ecollapse%2EnoConflict%3Dfunction%28%29%7Breturn%20e%2Efn%2Ecollapse%3Dn%2Cthis%7D%2Ce%28document%29%2Eon%28%22click%2Ecollapse%2Edata%2Dapi%22%2C%22%5Bdata%2Dtoggle%3Dcollapse%5D%22%2Cfunction%28t%29%7Bvar%20n%3De%28this%29%2Cr%2Ci%3Dn%2Eattr%28%22data%2Dtarget%22%29%7C%7Ct%2EpreventDefault%28%29%7C%7C%28r%3Dn%2Eattr%28%22href%22%29%29%26%26r%2Ereplace%28%2F%2E%2A%28%3F%3D%23%5B%5E%5Cs%5D%2B%24%29%2F%2C%22%22%29%2Cs%3De%28i%29%2Edata%28%22collapse%22%29%3F%22toggle%22%3An%2Edata%28%29%3Bn%5Be%28i%29%2EhasClass%28%22in%22%29%3F%22addClass%22%3A%22removeClass%22%5D%28%22collapsed%22%29%2Ce%28i%29%2Ecollapse%28s%29%7D%29%7D%28window%2EjQuery%29%2C%21function%28e%29%7B%22use%20strict%22%3Bfunction%20r%28%29%7Be%28%22%2Edropdown%2Dbackdrop%22%29%2Eremove%28%29%2Ce%28t%29%2Eeach%28function%28%29%7Bi%28e%28this%29%29%2EremoveClass%28%22open%22%29%7D%29%7Dfunction%20i%28t%29%7Bvar%20n%3Dt%2Eattr%28%22data%2Dtarget%22%29%2Cr%3Bn%7C%7C%28n%3Dt%2Eattr%28%22href%22%29%2Cn%3Dn%26%26%2F%23%2F%2Etest%28n%29%26%26n%2Ereplace%28%2F%2E%2A%28%3F%3D%23%5B%5E%5Cs%5D%2A%24%29%2F%2C%22%22%29%29%2Cr%3Dn%26%26e%28n%29%3Bif%28%21r%7C%7C%21r%2Elength%29r%3Dt%2Eparent%28%29%3Breturn%20r%7Dvar%20t%3D%22%5Bdata%2Dtoggle%3Ddropdown%5D%22%2Cn%3Dfunction%28t%29%7Bvar%20n%3De%28t%29%2Eon%28%22click%2Edropdown%2Edata%2Dapi%22%2Cthis%2Etoggle%29%3Be%28%22html%22%29%2Eon%28%22click%2Edropdown%2Edata%2Dapi%22%2Cfunction%28%29%7Bn%2Eparent%28%29%2EremoveClass%28%22open%22%29%7D%29%7D%3Bn%2Eprototype%3D%7Bconstructor%3An%2Ctoggle%3Afunction%28t%29%7Bvar%20n%3De%28this%29%2Cs%2Co%3Bif%28n%2Eis%28%22%2Edisabled%2C%20%3Adisabled%22%29%29return%3Breturn%20s%3Di%28n%29%2Co%3Ds%2EhasClass%28%22open%22%29%2Cr%28%29%2Co%7C%7C%28%22ontouchstart%22in%20document%2EdocumentElement%26%26e%28%27%3Cdiv%20class%3D%22dropdown%2Dbackdrop%22%2F%3E%27%29%2EinsertBefore%28e%28this%29%29%2Eon%28%22click%22%2Cr%29%2Cs%2EtoggleClass%28%22open%22%29%29%2Cn%2Efocus%28%29%2C%211%7D%2Ckeydown%3Afunction%28n%29%7Bvar%20r%2Cs%2Co%2Cu%2Ca%2Cf%3Bif%28%21%2F%2838%7C40%7C27%29%2F%2Etest%28n%2EkeyCode%29%29return%3Br%3De%28this%29%2Cn%2EpreventDefault%28%29%2Cn%2EstopPropagation%28%29%3Bif%28r%2Eis%28%22%2Edisabled%2C%20%3Adisabled%22%29%29return%3Bu%3Di%28r%29%2Ca%3Du%2EhasClass%28%22open%22%29%3Bif%28%21a%7C%7Ca%26%26n%2EkeyCode%3D%3D27%29return%20n%2Ewhich%3D%3D27%26%26u%2Efind%28t%29%2Efocus%28%29%2Cr%2Eclick%28%29%3Bs%3De%28%22%5Brole%3Dmenu%5D%20li%3Anot%28%2Edivider%29%3Avisible%20a%22%2Cu%29%3Bif%28%21s%2Elength%29return%3Bf%3Ds%2Eindex%28s%2Efilter%28%22%3Afocus%22%29%29%2Cn%2EkeyCode%3D%3D38%26%26f%3E0%26%26f%2D%2D%2Cn%2EkeyCode%3D%3D40%26%26f%3Cs%2Elength%2D1%26%26f%2B%2B%2C%7Ef%7C%7C%28f%3D0%29%2Cs%2Eeq%28f%29%2Efocus%28%29%7D%7D%3Bvar%20s%3De%2Efn%2Edropdown%3Be%2Efn%2Edropdown%3Dfunction%28t%29%7Breturn%20this%2Eeach%28function%28%29%7Bvar%20r%3De%28this%29%2Ci%3Dr%2Edata%28%22dropdown%22%29%3Bi%7C%7Cr%2Edata%28%22dropdown%22%2Ci%3Dnew%20n%28this%29%29%2Ctypeof%20t%3D%3D%22string%22%26%26i%5Bt%5D%2Ecall%28r%29%7D%29%7D%2Ce%2Efn%2Edropdown%2EConstructor%3Dn%2Ce%2Efn%2Edropdown%2EnoConflict%3Dfunction%28%29%7Breturn%20e%2Efn%2Edropdown%3Ds%2Cthis%7D%2Ce%28document%29%2Eon%28%22click%2Edropdown%2Edata%2Dapi%22%2Cr%29%2Eon%28%22click%2Edropdown%2Edata%2Dapi%22%2C%22%2Edropdown%20form%22%2Cfunction%28e%29%7Be%2EstopPropagation%28%29%7D%29%2Eon%28%22click%2Edropdown%2Edata%2Dapi%22%2Ct%2Cn%2Eprototype%2Etoggle%29%2Eon%28%22keydown%2Edropdown%2Edata%2Dapi%22%2Ct%2B%22%2C%20%5Brole%3Dmenu%5D%22%2Cn%2Eprototype%2Ekeydown%29%7D%28window%2EjQuery%29%2C%21function%28e%29%7B%22use%20strict%22%3Bvar%20t%3Dfunction%28t%2Cn%29%7Bthis%2Eoptions%3Dn%2Cthis%2E%24element%3De%28t%29%2Edelegate%28%27%5Bdata%2Ddismiss%3D%22modal%22%5D%27%2C%22click%2Edismiss%2Emodal%22%2Ce%2Eproxy%28this%2Ehide%2Cthis%29%29%2Cthis%2Eoptions%2Eremote%26%26this%2E%24element%2Efind%28%22%2Emodal%2Dbody%22%29%2Eload%28this%2Eoptions%2Eremote%29%7D%3Bt%2Eprototype%3D%7Bconstructor%3At%2Ctoggle%3Afunction%28%29%7Breturn%20this%5Bthis%2EisShown%3F%22hide%22%3A%22show%22%5D%28%29%7D%2Cshow%3Afunction%28%29%7Bvar%20t%3Dthis%2Cn%3De%2EEvent%28%22show%22%29%3Bthis%2E%24element%2Etrigger%28n%29%3Bif%28this%2EisShown%7C%7Cn%2EisDefaultPrevented%28%29%29return%3Bthis%2EisShown%3D%210%2Cthis%2Eescape%28%29%2Cthis%2Ebackdrop%28function%28%29%7Bvar%20n%3De%2Esupport%2Etransition%26%26t%2E%24element%2EhasClass%28%22fade%22%29%3Bt%2E%24element%2Eparent%28%29%2Elength%7C%7Ct%2E%24element%2EappendTo%28document%2Ebody%29%2Ct%2E%24element%2Eshow%28%29%2Cn%26%26t%2E%24element%5B0%5D%2EoffsetWidth%2Ct%2E%24element%2EaddClass%28%22in%22%29%2Eattr%28%22aria%2Dhidden%22%2C%211%29%2Ct%2EenforceFocus%28%29%2Cn%3Ft%2E%24element%2Eone%28e%2Esupport%2Etransition%2Eend%2Cfunction%28%29%7Bt%2E%24element%2Efocus%28%29%2Etrigger%28%22shown%22%29%7D%29%3At%2E%24element%2Efocus%28%29%2Etrigger%28%22shown%22%29%7D%29%7D%2Chide%3Afunction%28t%29%7Bt%26%26t%2EpreventDefault%28%29%3Bvar%20n%3Dthis%3Bt%3De%2EEvent%28%22hide%22%29%2Cthis%2E%24element%2Etrigger%28t%29%3Bif%28%21this%2EisShown%7C%7Ct%2EisDefaultPrevented%28%29%29return%3Bthis%2EisShown%3D%211%2Cthis%2Eescape%28%29%2Ce%28document%29%2Eoff%28%22focusin%2Emodal%22%29%2Cthis%2E%24element%2EremoveClass%28%22in%22%29%2Eattr%28%22aria%2Dhidden%22%2C%210%29%2Ce%2Esupport%2Etransition%26%26this%2E%24element%2EhasClass%28%22fade%22%29%3Fthis%2EhideWithTransition%28%29%3Athis%2EhideModal%28%29%7D%2CenforceFocus%3Afunction%28%29%7Bvar%20t%3Dthis%3Be%28document%29%2Eon%28%22focusin%2Emodal%22%2Cfunction%28e%29%7Bt%2E%24element%5B0%5D%21%3D%3De%2Etarget%26%26%21t%2E%24element%2Ehas%28e%2Etarget%29%2Elength%26%26t%2E%24element%2Efocus%28%29%7D%29%7D%2Cescape%3Afunction%28%29%7Bvar%20e%3Dthis%3Bthis%2EisShown%26%26this%2Eoptions%2Ekeyboard%3Fthis%2E%24element%2Eon%28%22keyup%2Edismiss%2Emodal%22%2Cfunction%28t%29%7Bt%2Ewhich%3D%3D27%26%26e%2Ehide%28%29%7D%29%3Athis%2EisShown%7C%7Cthis%2E%24element%2Eoff%28%22keyup%2Edismiss%2Emodal%22%29%7D%2ChideWithTransition%3Afunction%28%29%7Bvar%20t%3Dthis%2Cn%3DsetTimeout%28function%28%29%7Bt%2E%24element%2Eoff%28e%2Esupport%2Etransition%2Eend%29%2Ct%2EhideModal%28%29%7D%2C500%29%3Bthis%2E%24element%2Eone%28e%2Esupport%2Etransition%2Eend%2Cfunction%28%29%7BclearTimeout%28n%29%2Ct%2EhideModal%28%29%7D%29%7D%2ChideModal%3Afunction%28%29%7Bvar%20e%3Dthis%3Bthis%2E%24element%2Ehide%28%29%2Cthis%2Ebackdrop%28function%28%29%7Be%2EremoveBackdrop%28%29%2Ce%2E%24element%2Etrigger%28%22hidden%22%29%7D%29%7D%2CremoveBackdrop%3Afunction%28%29%7Bthis%2E%24backdrop%26%26this%2E%24backdrop%2Eremove%28%29%2Cthis%2E%24backdrop%3Dnull%7D%2Cbackdrop%3Afunction%28t%29%7Bvar%20n%3Dthis%2Cr%3Dthis%2E%24element%2EhasClass%28%22fade%22%29%3F%22fade%22%3A%22%22%3Bif%28this%2EisShown%26%26this%2Eoptions%2Ebackdrop%29%7Bvar%20i%3De%2Esupport%2Etransition%26%26r%3Bthis%2E%24backdrop%3De%28%27%3Cdiv%20class%3D%22modal%2Dbackdrop%20%27%2Br%2B%27%22%20%2F%3E%27%29%2EappendTo%28document%2Ebody%29%2Cthis%2E%24backdrop%2Eclick%28this%2Eoptions%2Ebackdrop%3D%3D%22static%22%3Fe%2Eproxy%28this%2E%24element%5B0%5D%2Efocus%2Cthis%2E%24element%5B0%5D%29%3Ae%2Eproxy%28this%2Ehide%2Cthis%29%29%2Ci%26%26this%2E%24backdrop%5B0%5D%2EoffsetWidth%2Cthis%2E%24backdrop%2EaddClass%28%22in%22%29%3Bif%28%21t%29return%3Bi%3Fthis%2E%24backdrop%2Eone%28e%2Esupport%2Etransition%2Eend%2Ct%29%3At%28%29%7Delse%21this%2EisShown%26%26this%2E%24backdrop%3F%28this%2E%24backdrop%2EremoveClass%28%22in%22%29%2Ce%2Esupport%2Etransition%26%26this%2E%24element%2EhasClass%28%22fade%22%29%3Fthis%2E%24backdrop%2Eone%28e%2Esupport%2Etransition%2Eend%2Ct%29%3At%28%29%29%3At%26%26t%28%29%7D%7D%3Bvar%20n%3De%2Efn%2Emodal%3Be%2Efn%2Emodal%3Dfunction%28n%29%7Breturn%20this%2Eeach%28function%28%29%7Bvar%20r%3De%28this%29%2Ci%3Dr%2Edata%28%22modal%22%29%2Cs%3De%2Eextend%28%7B%7D%2Ce%2Efn%2Emodal%2Edefaults%2Cr%2Edata%28%29%2Ctypeof%20n%3D%3D%22object%22%26%26n%29%3Bi%7C%7Cr%2Edata%28%22modal%22%2Ci%3Dnew%20t%28this%2Cs%29%29%2Ctypeof%20n%3D%3D%22string%22%3Fi%5Bn%5D%28%29%3As%2Eshow%26%26i%2Eshow%28%29%7D%29%7D%2Ce%2Efn%2Emodal%2Edefaults%3D%7Bbackdrop%3A%210%2Ckeyboard%3A%210%2Cshow%3A%210%7D%2Ce%2Efn%2Emodal%2EConstructor%3Dt%2Ce%2Efn%2Emodal%2EnoConflict%3Dfunction%28%29%7Breturn%20e%2Efn%2Emodal%3Dn%2Cthis%7D%2Ce%28document%29%2Eon%28%22click%2Emodal%2Edata%2Dapi%22%2C%27%5Bdata%2Dtoggle%3D%22modal%22%5D%27%2Cfunction%28t%29%7Bvar%20n%3De%28this%29%2Cr%3Dn%2Eattr%28%22href%22%29%2Ci%3De%28n%2Eattr%28%22data%2Dtarget%22%29%7C%7Cr%26%26r%2Ereplace%28%2F%2E%2A%28%3F%3D%23%5B%5E%5Cs%5D%2B%24%29%2F%2C%22%22%29%29%2Cs%3Di%2Edata%28%22modal%22%29%3F%22toggle%22%3Ae%2Eextend%28%7Bremote%3A%21%2F%23%2F%2Etest%28r%29%26%26r%7D%2Ci%2Edata%28%29%2Cn%2Edata%28%29%29%3Bt%2EpreventDefault%28%29%2Ci%2Emodal%28s%29%2Eone%28%22hide%22%2Cfunction%28%29%7Bn%2Efocus%28%29%7D%29%7D%29%7D%28window%2EjQuery%29%2C%21function%28e%29%7B%22use%20strict%22%3Bvar%20t%3Dfunction%28e%2Ct%29%7Bthis%2Einit%28%22tooltip%22%2Ce%2Ct%29%7D%3Bt%2Eprototype%3D%7Bconstructor%3At%2Cinit%3Afunction%28t%2Cn%2Cr%29%7Bvar%20i%2Cs%2Co%2Cu%2Ca%3Bthis%2Etype%3Dt%2Cthis%2E%24element%3De%28n%29%2Cthis%2Eoptions%3Dthis%2EgetOptions%28r%29%2Cthis%2Eenabled%3D%210%2Co%3Dthis%2Eoptions%2Etrigger%2Esplit%28%22%20%22%29%3Bfor%28a%3Do%2Elength%3Ba%2D%2D%3B%29u%3Do%5Ba%5D%2Cu%3D%3D%22click%22%3Fthis%2E%24element%2Eon%28%22click%2E%22%2Bthis%2Etype%2Cthis%2Eoptions%2Eselector%2Ce%2Eproxy%28this%2Etoggle%2Cthis%29%29%3Au%21%3D%22manual%22%26%26%28i%3Du%3D%3D%22hover%22%3F%22mouseenter%22%3A%22focus%22%2Cs%3Du%3D%3D%22hover%22%3F%22mouseleave%22%3A%22blur%22%2Cthis%2E%24element%2Eon%28i%2B%22%2E%22%2Bthis%2Etype%2Cthis%2Eoptions%2Eselector%2Ce%2Eproxy%28this%2Eenter%2Cthis%29%29%2Cthis%2E%24element%2Eon%28s%2B%22%2E%22%2Bthis%2Etype%2Cthis%2Eoptions%2Eselector%2Ce%2Eproxy%28this%2Eleave%2Cthis%29%29%29%3Bthis%2Eoptions%2Eselector%3Fthis%2E%5Foptions%3De%2Eextend%28%7B%7D%2Cthis%2Eoptions%2C%7Btrigger%3A%22manual%22%2Cselector%3A%22%22%7D%29%3Athis%2EfixTitle%28%29%7D%2CgetOptions%3Afunction%28t%29%7Breturn%20t%3De%2Eextend%28%7B%7D%2Ce%2Efn%5Bthis%2Etype%5D%2Edefaults%2Cthis%2E%24element%2Edata%28%29%2Ct%29%2Ct%2Edelay%26%26typeof%20t%2Edelay%3D%3D%22number%22%26%26%28t%2Edelay%3D%7Bshow%3At%2Edelay%2Chide%3At%2Edelay%7D%29%2Ct%7D%2Center%3Afunction%28t%29%7Bvar%20n%3De%2Efn%5Bthis%2Etype%5D%2Edefaults%2Cr%3D%7B%7D%2Ci%3Bthis%2E%5Foptions%26%26e%2Eeach%28this%2E%5Foptions%2Cfunction%28e%2Ct%29%7Bn%5Be%5D%21%3Dt%26%26%28r%5Be%5D%3Dt%29%7D%2Cthis%29%2Ci%3De%28t%2EcurrentTarget%29%5Bthis%2Etype%5D%28r%29%2Edata%28this%2Etype%29%3Bif%28%21i%2Eoptions%2Edelay%7C%7C%21i%2Eoptions%2Edelay%2Eshow%29return%20i%2Eshow%28%29%3BclearTimeout%28this%2Etimeout%29%2Ci%2EhoverState%3D%22in%22%2Cthis%2Etimeout%3DsetTimeout%28function%28%29%7Bi%2EhoverState%3D%3D%22in%22%26%26i%2Eshow%28%29%7D%2Ci%2Eoptions%2Edelay%2Eshow%29%7D%2Cleave%3Afunction%28t%29%7Bvar%20n%3De%28t%2EcurrentTarget%29%5Bthis%2Etype%5D%28this%2E%5Foptions%29%2Edata%28this%2Etype%29%3Bthis%2Etimeout%26%26clearTimeout%28this%2Etimeout%29%3Bif%28%21n%2Eoptions%2Edelay%7C%7C%21n%2Eoptions%2Edelay%2Ehide%29return%20n%2Ehide%28%29%3Bn%2EhoverState%3D%22out%22%2Cthis%2Etimeout%3DsetTimeout%28function%28%29%7Bn%2EhoverState%3D%3D%22out%22%26%26n%2Ehide%28%29%7D%2Cn%2Eoptions%2Edelay%2Ehide%29%7D%2Cshow%3Afunction%28%29%7Bvar%20t%2Cn%2Cr%2Ci%2Cs%2Co%2Cu%3De%2EEvent%28%22show%22%29%3Bif%28this%2EhasContent%28%29%26%26this%2Eenabled%29%7Bthis%2E%24element%2Etrigger%28u%29%3Bif%28u%2EisDefaultPrevented%28%29%29return%3Bt%3Dthis%2Etip%28%29%2Cthis%2EsetContent%28%29%2Cthis%2Eoptions%2Eanimation%26%26t%2EaddClass%28%22fade%22%29%2Cs%3Dtypeof%20this%2Eoptions%2Eplacement%3D%3D%22function%22%3Fthis%2Eoptions%2Eplacement%2Ecall%28this%2Ct%5B0%5D%2Cthis%2E%24element%5B0%5D%29%3Athis%2Eoptions%2Eplacement%2Ct%2Edetach%28%29%2Ecss%28%7Btop%3A0%2Cleft%3A0%2Cdisplay%3A%22block%22%7D%29%2Cthis%2Eoptions%2Econtainer%3Ft%2EappendTo%28this%2Eoptions%2Econtainer%29%3At%2EinsertAfter%28this%2E%24element%29%2Cn%3Dthis%2EgetPosition%28%29%2Cr%3Dt%5B0%5D%2EoffsetWidth%2Ci%3Dt%5B0%5D%2EoffsetHeight%3Bswitch%28s%29%7Bcase%22bottom%22%3Ao%3D%7Btop%3An%2Etop%2Bn%2Eheight%2Cleft%3An%2Eleft%2Bn%2Ewidth%2F2%2Dr%2F2%7D%3Bbreak%3Bcase%22top%22%3Ao%3D%7Btop%3An%2Etop%2Di%2Cleft%3An%2Eleft%2Bn%2Ewidth%2F2%2Dr%2F2%7D%3Bbreak%3Bcase%22left%22%3Ao%3D%7Btop%3An%2Etop%2Bn%2Eheight%2F2%2Di%2F2%2Cleft%3An%2Eleft%2Dr%7D%3Bbreak%3Bcase%22right%22%3Ao%3D%7Btop%3An%2Etop%2Bn%2Eheight%2F2%2Di%2F2%2Cleft%3An%2Eleft%2Bn%2Ewidth%7D%7Dthis%2EapplyPlacement%28o%2Cs%29%2Cthis%2E%24element%2Etrigger%28%22shown%22%29%7D%7D%2CapplyPlacement%3Afunction%28e%2Ct%29%7Bvar%20n%3Dthis%2Etip%28%29%2Cr%3Dn%5B0%5D%2EoffsetWidth%2Ci%3Dn%5B0%5D%2EoffsetHeight%2Cs%2Co%2Cu%2Ca%3Bn%2Eoffset%28e%29%2EaddClass%28t%29%2EaddClass%28%22in%22%29%2Cs%3Dn%5B0%5D%2EoffsetWidth%2Co%3Dn%5B0%5D%2EoffsetHeight%2Ct%3D%3D%22top%22%26%26o%21%3Di%26%26%28e%2Etop%3De%2Etop%2Bi%2Do%2Ca%3D%210%29%2Ct%3D%3D%22bottom%22%7C%7Ct%3D%3D%22top%22%3F%28u%3D0%2Ce%2Eleft%3C0%26%26%28u%3De%2Eleft%2A%2D2%2Ce%2Eleft%3D0%2Cn%2Eoffset%28e%29%2Cs%3Dn%5B0%5D%2EoffsetWidth%2Co%3Dn%5B0%5D%2EoffsetHeight%29%2Cthis%2EreplaceArrow%28u%2Dr%2Bs%2Cs%2C%22left%22%29%29%3Athis%2EreplaceArrow%28o%2Di%2Co%2C%22top%22%29%2Ca%26%26n%2Eoffset%28e%29%7D%2CreplaceArrow%3Afunction%28e%2Ct%2Cn%29%7Bthis%2Earrow%28%29%2Ecss%28n%2Ce%3F50%2A%281%2De%2Ft%29%2B%22%25%22%3A%22%22%29%7D%2CsetContent%3Afunction%28%29%7Bvar%20e%3Dthis%2Etip%28%29%2Ct%3Dthis%2EgetTitle%28%29%3Be%2Efind%28%22%2Etooltip%2Dinner%22%29%5Bthis%2Eoptions%2Ehtml%3F%22html%22%3A%22text%22%5D%28t%29%2Ce%2EremoveClass%28%22fade%20in%20top%20bottom%20left%20right%22%29%7D%2Chide%3Afunction%28%29%7Bfunction%20i%28%29%7Bvar%20t%3DsetTimeout%28function%28%29%7Bn%2Eoff%28e%2Esupport%2Etransition%2Eend%29%2Edetach%28%29%7D%2C500%29%3Bn%2Eone%28e%2Esupport%2Etransition%2Eend%2Cfunction%28%29%7BclearTimeout%28t%29%2Cn%2Edetach%28%29%7D%29%7Dvar%20t%3Dthis%2Cn%3Dthis%2Etip%28%29%2Cr%3De%2EEvent%28%22hide%22%29%3Bthis%2E%24element%2Etrigger%28r%29%3Bif%28r%2EisDefaultPrevented%28%29%29return%3Breturn%20n%2EremoveClass%28%22in%22%29%2Ce%2Esupport%2Etransition%26%26this%2E%24tip%2EhasClass%28%22fade%22%29%3Fi%28%29%3An%2Edetach%28%29%2Cthis%2E%24element%2Etrigger%28%22hidden%22%29%2Cthis%7D%2CfixTitle%3Afunction%28%29%7Bvar%20e%3Dthis%2E%24element%3B%28e%2Eattr%28%22title%22%29%7C%7Ctypeof%20e%2Eattr%28%22data%2Doriginal%2Dtitle%22%29%21%3D%22string%22%29%26%26e%2Eattr%28%22data%2Doriginal%2Dtitle%22%2Ce%2Eattr%28%22title%22%29%7C%7C%22%22%29%2Eattr%28%22title%22%2C%22%22%29%7D%2ChasContent%3Afunction%28%29%7Breturn%20this%2EgetTitle%28%29%7D%2CgetPosition%3Afunction%28%29%7Bvar%20t%3Dthis%2E%24element%5B0%5D%3Breturn%20e%2Eextend%28%7B%7D%2Ctypeof%20t%2EgetBoundingClientRect%3D%3D%22function%22%3Ft%2EgetBoundingClientRect%28%29%3A%7Bwidth%3At%2EoffsetWidth%2Cheight%3At%2EoffsetHeight%7D%2Cthis%2E%24element%2Eoffset%28%29%29%7D%2CgetTitle%3Afunction%28%29%7Bvar%20e%2Ct%3Dthis%2E%24element%2Cn%3Dthis%2Eoptions%3Breturn%20e%3Dt%2Eattr%28%22data%2Doriginal%2Dtitle%22%29%7C%7C%28typeof%20n%2Etitle%3D%3D%22function%22%3Fn%2Etitle%2Ecall%28t%5B0%5D%29%3An%2Etitle%29%2Ce%7D%2Ctip%3Afunction%28%29%7Breturn%20this%2E%24tip%3Dthis%2E%24tip%7C%7Ce%28this%2Eoptions%2Etemplate%29%7D%2Carrow%3Afunction%28%29%7Breturn%20this%2E%24arrow%3Dthis%2E%24arrow%7C%7Cthis%2Etip%28%29%2Efind%28%22%2Etooltip%2Darrow%22%29%7D%2Cvalidate%3Afunction%28%29%7Bthis%2E%24element%5B0%5D%2EparentNode%7C%7C%28this%2Ehide%28%29%2Cthis%2E%24element%3Dnull%2Cthis%2Eoptions%3Dnull%29%7D%2Cenable%3Afunction%28%29%7Bthis%2Eenabled%3D%210%7D%2Cdisable%3Afunction%28%29%7Bthis%2Eenabled%3D%211%7D%2CtoggleEnabled%3Afunction%28%29%7Bthis%2Eenabled%3D%21this%2Eenabled%7D%2Ctoggle%3Afunction%28t%29%7Bvar%20n%3Dt%3Fe%28t%2EcurrentTarget%29%5Bthis%2Etype%5D%28this%2E%5Foptions%29%2Edata%28this%2Etype%29%3Athis%3Bn%2Etip%28%29%2EhasClass%28%22in%22%29%3Fn%2Ehide%28%29%3An%2Eshow%28%29%7D%2Cdestroy%3Afunction%28%29%7Bthis%2Ehide%28%29%2E%24element%2Eoff%28%22%2E%22%2Bthis%2Etype%29%2EremoveData%28this%2Etype%29%7D%7D%3Bvar%20n%3De%2Efn%2Etooltip%3Be%2Efn%2Etooltip%3Dfunction%28n%29%7Breturn%20this%2Eeach%28function%28%29%7Bvar%20r%3De%28this%29%2Ci%3Dr%2Edata%28%22tooltip%22%29%2Cs%3Dtypeof%20n%3D%3D%22object%22%26%26n%3Bi%7C%7Cr%2Edata%28%22tooltip%22%2Ci%3Dnew%20t%28this%2Cs%29%29%2Ctypeof%20n%3D%3D%22string%22%26%26i%5Bn%5D%28%29%7D%29%7D%2Ce%2Efn%2Etooltip%2EConstructor%3Dt%2Ce%2Efn%2Etooltip%2Edefaults%3D%7Banimation%3A%210%2Cplacement%3A%22top%22%2Cselector%3A%211%2Ctemplate%3A%27%3Cdiv%20class%3D%22tooltip%22%3E%3Cdiv%20class%3D%22tooltip%2Darrow%22%3E%3C%2Fdiv%3E%3Cdiv%20class%3D%22tooltip%2Dinner%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%27%2Ctrigger%3A%22hover%20focus%22%2Ctitle%3A%22%22%2Cdelay%3A0%2Chtml%3A%211%2Ccontainer%3A%211%7D%2Ce%2Efn%2Etooltip%2EnoConflict%3Dfunction%28%29%7Breturn%20e%2Efn%2Etooltip%3Dn%2Cthis%7D%7D%28window%2EjQuery%29%2C%21function%28e%29%7B%22use%20strict%22%3Bvar%20t%3Dfunction%28e%2Ct%29%7Bthis%2Einit%28%22popover%22%2Ce%2Ct%29%7D%3Bt%2Eprototype%3De%2Eextend%28%7B%7D%2Ce%2Efn%2Etooltip%2EConstructor%2Eprototype%2C%7Bconstructor%3At%2CsetContent%3Afunction%28%29%7Bvar%20e%3Dthis%2Etip%28%29%2Ct%3Dthis%2EgetTitle%28%29%2Cn%3Dthis%2EgetContent%28%29%3Be%2Efind%28%22%2Epopover%2Dtitle%22%29%5Bthis%2Eoptions%2Ehtml%3F%22html%22%3A%22text%22%5D%28t%29%2Ce%2Efind%28%22%2Epopover%2Dcontent%22%29%5Bthis%2Eoptions%2Ehtml%3F%22html%22%3A%22text%22%5D%28n%29%2Ce%2EremoveClass%28%22fade%20top%20bottom%20left%20right%20in%22%29%7D%2ChasContent%3Afunction%28%29%7Breturn%20this%2EgetTitle%28%29%7C%7Cthis%2EgetContent%28%29%7D%2CgetContent%3Afunction%28%29%7Bvar%20e%2Ct%3Dthis%2E%24element%2Cn%3Dthis%2Eoptions%3Breturn%20e%3D%28typeof%20n%2Econtent%3D%3D%22function%22%3Fn%2Econtent%2Ecall%28t%5B0%5D%29%3An%2Econtent%29%7C%7Ct%2Eattr%28%22data%2Dcontent%22%29%2Ce%7D%2Ctip%3Afunction%28%29%7Breturn%20this%2E%24tip%7C%7C%28this%2E%24tip%3De%28this%2Eoptions%2Etemplate%29%29%2Cthis%2E%24tip%7D%2Cdestroy%3Afunction%28%29%7Bthis%2Ehide%28%29%2E%24element%2Eoff%28%22%2E%22%2Bthis%2Etype%29%2EremoveData%28this%2Etype%29%7D%7D%29%3Bvar%20n%3De%2Efn%2Epopover%3Be%2Efn%2Epopover%3Dfunction%28n%29%7Breturn%20this%2Eeach%28function%28%29%7Bvar%20r%3De%28this%29%2Ci%3Dr%2Edata%28%22popover%22%29%2Cs%3Dtypeof%20n%3D%3D%22object%22%26%26n%3Bi%7C%7Cr%2Edata%28%22popover%22%2Ci%3Dnew%20t%28this%2Cs%29%29%2Ctypeof%20n%3D%3D%22string%22%26%26i%5Bn%5D%28%29%7D%29%7D%2Ce%2Efn%2Epopover%2EConstructor%3Dt%2Ce%2Efn%2Epopover%2Edefaults%3De%2Eextend%28%7B%7D%2Ce%2Efn%2Etooltip%2Edefaults%2C%7Bplacement%3A%22right%22%2Ctrigger%3A%22click%22%2Ccontent%3A%22%22%2Ctemplate%3A%27%3Cdiv%20class%3D%22popover%22%3E%3Cdiv%20class%3D%22arrow%22%3E%3C%2Fdiv%3E%3Ch3%20class%3D%22popover%2Dtitle%22%3E%3C%2Fh3%3E%3Cdiv%20class%3D%22popover%2Dcontent%22%3E%3C%2Fdiv%3E%3C%2Fdiv%3E%27%7D%29%2Ce%2Efn%2Epopover%2EnoConflict%3Dfunction%28%29%7Breturn%20e%2Efn%2Epopover%3Dn%2Cthis%7D%7D%28window%2EjQuery%29%2C%21function%28e%29%7B%22use%20strict%22%3Bfunction%20t%28t%2Cn%29%7Bvar%20r%3De%2Eproxy%28this%2Eprocess%2Cthis%29%2Ci%3De%28t%29%2Eis%28%22body%22%29%3Fe%28window%29%3Ae%28t%29%2Cs%3Bthis%2Eoptions%3De%2Eextend%28%7B%7D%2Ce%2Efn%2Escrollspy%2Edefaults%2Cn%29%2Cthis%2E%24scrollElement%3Di%2Eon%28%22scroll%2Escroll%2Dspy%2Edata%2Dapi%22%2Cr%29%2Cthis%2Eselector%3D%28this%2Eoptions%2Etarget%7C%7C%28s%3De%28t%29%2Eattr%28%22href%22%29%29%26%26s%2Ereplace%28%2F%2E%2A%28%3F%3D%23%5B%5E%5Cs%5D%2B%24%29%2F%2C%22%22%29%7C%7C%22%22%29%2B%22%20%2Enav%20li%20%3E%20a%22%2Cthis%2E%24body%3De%28%22body%22%29%2Cthis%2Erefresh%28%29%2Cthis%2Eprocess%28%29%7Dt%2Eprototype%3D%7Bconstructor%3At%2Crefresh%3Afunction%28%29%7Bvar%20t%3Dthis%2Cn%3Bthis%2Eoffsets%3De%28%5B%5D%29%2Cthis%2Etargets%3De%28%5B%5D%29%2Cn%3Dthis%2E%24body%2Efind%28this%2Eselector%29%2Emap%28function%28%29%7Bvar%20n%3De%28this%29%2Cr%3Dn%2Edata%28%22target%22%29%7C%7Cn%2Eattr%28%22href%22%29%2Ci%3D%2F%5E%23%5Cw%2F%2Etest%28r%29%26%26e%28r%29%3Breturn%20i%26%26i%2Elength%26%26%5B%5Bi%2Eposition%28%29%2Etop%2B%28%21e%2EisWindow%28t%2E%24scrollElement%2Eget%280%29%29%26%26t%2E%24scrollElement%2EscrollTop%28%29%29%2Cr%5D%5D%7C%7Cnull%7D%29%2Esort%28function%28e%2Ct%29%7Breturn%20e%5B0%5D%2Dt%5B0%5D%7D%29%2Eeach%28function%28%29%7Bt%2Eoffsets%2Epush%28this%5B0%5D%29%2Ct%2Etargets%2Epush%28this%5B1%5D%29%7D%29%7D%2Cprocess%3Afunction%28%29%7Bvar%20e%3Dthis%2E%24scrollElement%2EscrollTop%28%29%2Bthis%2Eoptions%2Eoffset%2Ct%3Dthis%2E%24scrollElement%5B0%5D%2EscrollHeight%7C%7Cthis%2E%24body%5B0%5D%2EscrollHeight%2Cn%3Dt%2Dthis%2E%24scrollElement%2Eheight%28%29%2Cr%3Dthis%2Eoffsets%2Ci%3Dthis%2Etargets%2Cs%3Dthis%2EactiveTarget%2Co%3Bif%28e%3E%3Dn%29return%20s%21%3D%28o%3Di%2Elast%28%29%5B0%5D%29%26%26this%2Eactivate%28o%29%3Bfor%28o%3Dr%2Elength%3Bo%2D%2D%3B%29s%21%3Di%5Bo%5D%26%26e%3E%3Dr%5Bo%5D%26%26%28%21r%5Bo%2B1%5D%7C%7Ce%3C%3Dr%5Bo%2B1%5D%29%26%26this%2Eactivate%28i%5Bo%5D%29%7D%2Cactivate%3Afunction%28t%29%7Bvar%20n%2Cr%3Bthis%2EactiveTarget%3Dt%2Ce%28this%2Eselector%29%2Eparent%28%22%2Eactive%22%29%2EremoveClass%28%22active%22%29%2Cr%3Dthis%2Eselector%2B%27%5Bdata%2Dtarget%3D%22%27%2Bt%2B%27%22%5D%2C%27%2Bthis%2Eselector%2B%27%5Bhref%3D%22%27%2Bt%2B%27%22%5D%27%2Cn%3De%28r%29%2Eparent%28%22li%22%29%2EaddClass%28%22active%22%29%2Cn%2Eparent%28%22%2Edropdown%2Dmenu%22%29%2Elength%26%26%28n%3Dn%2Eclosest%28%22li%2Edropdown%22%29%2EaddClass%28%22active%22%29%29%2Cn%2Etrigger%28%22activate%22%29%7D%7D%3Bvar%20n%3De%2Efn%2Escrollspy%3Be%2Efn%2Escrollspy%3Dfunction%28n%29%7Breturn%20this%2Eeach%28function%28%29%7Bvar%20r%3De%28this%29%2Ci%3Dr%2Edata%28%22scrollspy%22%29%2Cs%3Dtypeof%20n%3D%3D%22object%22%26%26n%3Bi%7C%7Cr%2Edata%28%22scrollspy%22%2Ci%3Dnew%20t%28this%2Cs%29%29%2Ctypeof%20n%3D%3D%22string%22%26%26i%5Bn%5D%28%29%7D%29%7D%2Ce%2Efn%2Escrollspy%2EConstructor%3Dt%2Ce%2Efn%2Escrollspy%2Edefaults%3D%7Boffset%3A10%7D%2Ce%2Efn%2Escrollspy%2EnoConflict%3Dfunction%28%29%7Breturn%20e%2Efn%2Escrollspy%3Dn%2Cthis%7D%2Ce%28window%29%2Eon%28%22load%22%2Cfunction%28%29%7Be%28%27%5Bdata%2Dspy%3D%22scroll%22%5D%27%29%2Eeach%28function%28%29%7Bvar%20t%3De%28this%29%3Bt%2Escrollspy%28t%2Edata%28%29%29%7D%29%7D%29%7D%28window%2EjQuery%29%2C%21function%28e%29%7B%22use%20strict%22%3Bvar%20t%3Dfunction%28t%29%7Bthis%2Eelement%3De%28t%29%7D%3Bt%2Eprototype%3D%7Bconstructor%3At%2Cshow%3Afunction%28%29%7Bvar%20t%3Dthis%2Eelement%2Cn%3Dt%2Eclosest%28%22ul%3Anot%28%2Edropdown%2Dmenu%29%22%29%2Cr%3Dt%2Eattr%28%22data%2Dtarget%22%29%2Ci%2Cs%2Co%3Br%7C%7C%28r%3Dt%2Eattr%28%22href%22%29%2Cr%3Dr%26%26r%2Ereplace%28%2F%2E%2A%28%3F%3D%23%5B%5E%5Cs%5D%2A%24%29%2F%2C%22%22%29%29%3Bif%28t%2Eparent%28%22li%22%29%2EhasClass%28%22active%22%29%29return%3Bi%3Dn%2Efind%28%22%2Eactive%3Alast%20a%22%29%5B0%5D%2Co%3De%2EEvent%28%22show%22%2C%7BrelatedTarget%3Ai%7D%29%2Ct%2Etrigger%28o%29%3Bif%28o%2EisDefaultPrevented%28%29%29return%3Bs%3De%28r%29%2Cthis%2Eactivate%28t%2Eparent%28%22li%22%29%2Cn%29%2Cthis%2Eactivate%28s%2Cs%2Eparent%28%29%2Cfunction%28%29%7Bt%2Etrigger%28%7Btype%3A%22shown%22%2CrelatedTarget%3Ai%7D%29%7D%29%7D%2Cactivate%3Afunction%28t%2Cn%2Cr%29%7Bfunction%20o%28%29%7Bi%2EremoveClass%28%22active%22%29%2Efind%28%22%3E%20%2Edropdown%2Dmenu%20%3E%20%2Eactive%22%29%2EremoveClass%28%22active%22%29%2Ct%2EaddClass%28%22active%22%29%2Cs%3F%28t%5B0%5D%2EoffsetWidth%2Ct%2EaddClass%28%22in%22%29%29%3At%2EremoveClass%28%22fade%22%29%2Ct%2Eparent%28%22%2Edropdown%2Dmenu%22%29%26%26t%2Eclosest%28%22li%2Edropdown%22%29%2EaddClass%28%22active%22%29%2Cr%26%26r%28%29%7Dvar%20i%3Dn%2Efind%28%22%3E%20%2Eactive%22%29%2Cs%3Dr%26%26e%2Esupport%2Etransition%26%26i%2EhasClass%28%22fade%22%29%3Bs%3Fi%2Eone%28e%2Esupport%2Etransition%2Eend%2Co%29%3Ao%28%29%2Ci%2EremoveClass%28%22in%22%29%7D%7D%3Bvar%20n%3De%2Efn%2Etab%3Be%2Efn%2Etab%3Dfunction%28n%29%7Breturn%20this%2Eeach%28function%28%29%7Bvar%20r%3De%28this%29%2Ci%3Dr%2Edata%28%22tab%22%29%3Bi%7C%7Cr%2Edata%28%22tab%22%2Ci%3Dnew%20t%28this%29%29%2Ctypeof%20n%3D%3D%22string%22%26%26i%5Bn%5D%28%29%7D%29%7D%2Ce%2Efn%2Etab%2EConstructor%3Dt%2Ce%2Efn%2Etab%2EnoConflict%3Dfunction%28%29%7Breturn%20e%2Efn%2Etab%3Dn%2Cthis%7D%2Ce%28document%29%2Eon%28%22click%2Etab%2Edata%2Dapi%22%2C%27%5Bdata%2Dtoggle%3D%22tab%22%5D%2C%20%5Bdata%2Dtoggle%3D%22pill%22%5D%27%2Cfunction%28t%29%7Bt%2EpreventDefault%28%29%2Ce%28this%29%2Etab%28%22show%22%29%7D%29%7D%28window%2EjQuery%29%2C%21function%28e%29%7B%22use%20strict%22%3Bvar%20t%3Dfunction%28t%2Cn%29%7Bthis%2E%24element%3De%28t%29%2Cthis%2Eoptions%3De%2Eextend%28%7B%7D%2Ce%2Efn%2Etypeahead%2Edefaults%2Cn%29%2Cthis%2Ematcher%3Dthis%2Eoptions%2Ematcher%7C%7Cthis%2Ematcher%2Cthis%2Esorter%3Dthis%2Eoptions%2Esorter%7C%7Cthis%2Esorter%2Cthis%2Ehighlighter%3Dthis%2Eoptions%2Ehighlighter%7C%7Cthis%2Ehighlighter%2Cthis%2Eupdater%3Dthis%2Eoptions%2Eupdater%7C%7Cthis%2Eupdater%2Cthis%2Esource%3Dthis%2Eoptions%2Esource%2Cthis%2E%24menu%3De%28this%2Eoptions%2Emenu%29%2Cthis%2Eshown%3D%211%2Cthis%2Elisten%28%29%7D%3Bt%2Eprototype%3D%7Bconstructor%3At%2Cselect%3Afunction%28%29%7Bvar%20e%3Dthis%2E%24menu%2Efind%28%22%2Eactive%22%29%2Eattr%28%22data%2Dvalue%22%29%3Breturn%20this%2E%24element%2Eval%28this%2Eupdater%28e%29%29%2Echange%28%29%2Cthis%2Ehide%28%29%7D%2Cupdater%3Afunction%28e%29%7Breturn%20e%7D%2Cshow%3Afunction%28%29%7Bvar%20t%3De%2Eextend%28%7B%7D%2Cthis%2E%24element%2Eposition%28%29%2C%7Bheight%3Athis%2E%24element%5B0%5D%2EoffsetHeight%7D%29%3Breturn%20this%2E%24menu%2EinsertAfter%28this%2E%24element%29%2Ecss%28%7Btop%3At%2Etop%2Bt%2Eheight%2Cleft%3At%2Eleft%7D%29%2Eshow%28%29%2Cthis%2Eshown%3D%210%2Cthis%7D%2Chide%3Afunction%28%29%7Breturn%20this%2E%24menu%2Ehide%28%29%2Cthis%2Eshown%3D%211%2Cthis%7D%2Clookup%3Afunction%28t%29%7Bvar%20n%3Breturn%20this%2Equery%3Dthis%2E%24element%2Eval%28%29%2C%21this%2Equery%7C%7Cthis%2Equery%2Elength%3Cthis%2Eoptions%2EminLength%3Fthis%2Eshown%3Fthis%2Ehide%28%29%3Athis%3A%28n%3De%2EisFunction%28this%2Esource%29%3Fthis%2Esource%28this%2Equery%2Ce%2Eproxy%28this%2Eprocess%2Cthis%29%29%3Athis%2Esource%2Cn%3Fthis%2Eprocess%28n%29%3Athis%29%7D%2Cprocess%3Afunction%28t%29%7Bvar%20n%3Dthis%3Breturn%20t%3De%2Egrep%28t%2Cfunction%28e%29%7Breturn%20n%2Ematcher%28e%29%7D%29%2Ct%3Dthis%2Esorter%28t%29%2Ct%2Elength%3Fthis%2Erender%28t%2Eslice%280%2Cthis%2Eoptions%2Eitems%29%29%2Eshow%28%29%3Athis%2Eshown%3Fthis%2Ehide%28%29%3Athis%7D%2Cmatcher%3Afunction%28e%29%7Breturn%7Ee%2EtoLowerCase%28%29%2EindexOf%28this%2Equery%2EtoLowerCase%28%29%29%7D%2Csorter%3Afunction%28e%29%7Bvar%20t%3D%5B%5D%2Cn%3D%5B%5D%2Cr%3D%5B%5D%2Ci%3Bwhile%28i%3De%2Eshift%28%29%29i%2EtoLowerCase%28%29%2EindexOf%28this%2Equery%2EtoLowerCase%28%29%29%3F%7Ei%2EindexOf%28this%2Equery%29%3Fn%2Epush%28i%29%3Ar%2Epush%28i%29%3At%2Epush%28i%29%3Breturn%20t%2Econcat%28n%2Cr%29%7D%2Chighlighter%3Afunction%28e%29%7Bvar%20t%3Dthis%2Equery%2Ereplace%28%2F%5B%5C%2D%5C%5B%5C%5D%7B%7D%28%29%2A%2B%3F%2E%2C%5C%5C%5C%5E%24%7C%23%5Cs%5D%2Fg%2C%22%5C%5C%24%26%22%29%3Breturn%20e%2Ereplace%28new%20RegExp%28%22%28%22%2Bt%2B%22%29%22%2C%22ig%22%29%2Cfunction%28e%2Ct%29%7Breturn%22%3Cstrong%3E%22%2Bt%2B%22%3C%2Fstrong%3E%22%7D%29%7D%2Crender%3Afunction%28t%29%7Bvar%20n%3Dthis%3Breturn%20t%3De%28t%29%2Emap%28function%28t%2Cr%29%7Breturn%20t%3De%28n%2Eoptions%2Eitem%29%2Eattr%28%22data%2Dvalue%22%2Cr%29%2Ct%2Efind%28%22a%22%29%2Ehtml%28n%2Ehighlighter%28r%29%29%2Ct%5B0%5D%7D%29%2Ct%2Efirst%28%29%2EaddClass%28%22active%22%29%2Cthis%2E%24menu%2Ehtml%28t%29%2Cthis%7D%2Cnext%3Afunction%28t%29%7Bvar%20n%3Dthis%2E%24menu%2Efind%28%22%2Eactive%22%29%2EremoveClass%28%22active%22%29%2Cr%3Dn%2Enext%28%29%3Br%2Elength%7C%7C%28r%3De%28this%2E%24menu%2Efind%28%22li%22%29%5B0%5D%29%29%2Cr%2EaddClass%28%22active%22%29%7D%2Cprev%3Afunction%28e%29%7Bvar%20t%3Dthis%2E%24menu%2Efind%28%22%2Eactive%22%29%2EremoveClass%28%22active%22%29%2Cn%3Dt%2Eprev%28%29%3Bn%2Elength%7C%7C%28n%3Dthis%2E%24menu%2Efind%28%22li%22%29%2Elast%28%29%29%2Cn%2EaddClass%28%22active%22%29%7D%2Clisten%3Afunction%28%29%7Bthis%2E%24element%2Eon%28%22focus%22%2Ce%2Eproxy%28this%2Efocus%2Cthis%29%29%2Eon%28%22blur%22%2Ce%2Eproxy%28this%2Eblur%2Cthis%29%29%2Eon%28%22keypress%22%2Ce%2Eproxy%28this%2Ekeypress%2Cthis%29%29%2Eon%28%22keyup%22%2Ce%2Eproxy%28this%2Ekeyup%2Cthis%29%29%2Cthis%2EeventSupported%28%22keydown%22%29%26%26this%2E%24element%2Eon%28%22keydown%22%2Ce%2Eproxy%28this%2Ekeydown%2Cthis%29%29%2Cthis%2E%24menu%2Eon%28%22click%22%2Ce%2Eproxy%28this%2Eclick%2Cthis%29%29%2Eon%28%22mouseenter%22%2C%22li%22%2Ce%2Eproxy%28this%2Emouseenter%2Cthis%29%29%2Eon%28%22mouseleave%22%2C%22li%22%2Ce%2Eproxy%28this%2Emouseleave%2Cthis%29%29%7D%2CeventSupported%3Afunction%28e%29%7Bvar%20t%3De%20in%20this%2E%24element%3Breturn%20t%7C%7C%28this%2E%24element%2EsetAttribute%28e%2C%22return%3B%22%29%2Ct%3Dtypeof%20this%2E%24element%5Be%5D%3D%3D%22function%22%29%2Ct%7D%2Cmove%3Afunction%28e%29%7Bif%28%21this%2Eshown%29return%3Bswitch%28e%2EkeyCode%29%7Bcase%209%3Acase%2013%3Acase%2027%3Ae%2EpreventDefault%28%29%3Bbreak%3Bcase%2038%3Ae%2EpreventDefault%28%29%2Cthis%2Eprev%28%29%3Bbreak%3Bcase%2040%3Ae%2EpreventDefault%28%29%2Cthis%2Enext%28%29%7De%2EstopPropagation%28%29%7D%2Ckeydown%3Afunction%28t%29%7Bthis%2EsuppressKeyPressRepeat%3D%7Ee%2EinArray%28t%2EkeyCode%2C%5B40%2C38%2C9%2C13%2C27%5D%29%2Cthis%2Emove%28t%29%7D%2Ckeypress%3Afunction%28e%29%7Bif%28this%2EsuppressKeyPressRepeat%29return%3Bthis%2Emove%28e%29%7D%2Ckeyup%3Afunction%28e%29%7Bswitch%28e%2EkeyCode%29%7Bcase%2040%3Acase%2038%3Acase%2016%3Acase%2017%3Acase%2018%3Abreak%3Bcase%209%3Acase%2013%3Aif%28%21this%2Eshown%29return%3Bthis%2Eselect%28%29%3Bbreak%3Bcase%2027%3Aif%28%21this%2Eshown%29return%3Bthis%2Ehide%28%29%3Bbreak%3Bdefault%3Athis%2Elookup%28%29%7De%2EstopPropagation%28%29%2Ce%2EpreventDefault%28%29%7D%2Cfocus%3Afunction%28e%29%7Bthis%2Efocused%3D%210%7D%2Cblur%3Afunction%28e%29%7Bthis%2Efocused%3D%211%2C%21this%2Emousedover%26%26this%2Eshown%26%26this%2Ehide%28%29%7D%2Cclick%3Afunction%28e%29%7Be%2EstopPropagation%28%29%2Ce%2EpreventDefault%28%29%2Cthis%2Eselect%28%29%2Cthis%2E%24element%2Efocus%28%29%7D%2Cmouseenter%3Afunction%28t%29%7Bthis%2Emousedover%3D%210%2Cthis%2E%24menu%2Efind%28%22%2Eactive%22%29%2EremoveClass%28%22active%22%29%2Ce%28t%2EcurrentTarget%29%2EaddClass%28%22active%22%29%7D%2Cmouseleave%3Afunction%28e%29%7Bthis%2Emousedover%3D%211%2C%21this%2Efocused%26%26this%2Eshown%26%26this%2Ehide%28%29%7D%7D%3Bvar%20n%3De%2Efn%2Etypeahead%3Be%2Efn%2Etypeahead%3Dfunction%28n%29%7Breturn%20this%2Eeach%28function%28%29%7Bvar%20r%3De%28this%29%2Ci%3Dr%2Edata%28%22typeahead%22%29%2Cs%3Dtypeof%20n%3D%3D%22object%22%26%26n%3Bi%7C%7Cr%2Edata%28%22typeahead%22%2Ci%3Dnew%20t%28this%2Cs%29%29%2Ctypeof%20n%3D%3D%22string%22%26%26i%5Bn%5D%28%29%7D%29%7D%2Ce%2Efn%2Etypeahead%2Edefaults%3D%7Bsource%3A%5B%5D%2Citems%3A8%2Cmenu%3A%27%3Cul%20class%3D%22typeahead%20dropdown%2Dmenu%22%3E%3C%2Ful%3E%27%2Citem%3A%27%3Cli%3E%3Ca%20href%3D%22%23%22%3E%3C%2Fa%3E%3C%2Fli%3E%27%2CminLength%3A1%7D%2Ce%2Efn%2Etypeahead%2EConstructor%3Dt%2Ce%2Efn%2Etypeahead%2EnoConflict%3Dfunction%28%29%7Breturn%20e%2Efn%2Etypeahead%3Dn%2Cthis%7D%2Ce%28document%29%2Eon%28%22focus%2Etypeahead%2Edata%2Dapi%22%2C%27%5Bdata%2Dprovide%3D%22typeahead%22%5D%27%2Cfunction%28t%29%7Bvar%20n%3De%28this%29%3Bif%28n%2Edata%28%22typeahead%22%29%29return%3Bn%2Etypeahead%28n%2Edata%28%29%29%7D%29%7D%28window%2EjQuery%29%2C%21function%28e%29%7B%22use%20strict%22%3Bvar%20t%3Dfunction%28t%2Cn%29%7Bthis%2Eoptions%3De%2Eextend%28%7B%7D%2Ce%2Efn%2Eaffix%2Edefaults%2Cn%29%2Cthis%2E%24window%3De%28window%29%2Eon%28%22scroll%2Eaffix%2Edata%2Dapi%22%2Ce%2Eproxy%28this%2EcheckPosition%2Cthis%29%29%2Eon%28%22click%2Eaffix%2Edata%2Dapi%22%2Ce%2Eproxy%28function%28%29%7BsetTimeout%28e%2Eproxy%28this%2EcheckPosition%2Cthis%29%2C1%29%7D%2Cthis%29%29%2Cthis%2E%24element%3De%28t%29%2Cthis%2EcheckPosition%28%29%7D%3Bt%2Eprototype%2EcheckPosition%3Dfunction%28%29%7Bif%28%21this%2E%24element%2Eis%28%22%3Avisible%22%29%29return%3Bvar%20t%3De%28document%29%2Eheight%28%29%2Cn%3Dthis%2E%24window%2EscrollTop%28%29%2Cr%3Dthis%2E%24element%2Eoffset%28%29%2Ci%3Dthis%2Eoptions%2Eoffset%2Cs%3Di%2Ebottom%2Co%3Di%2Etop%2Cu%3D%22affix%20affix%2Dtop%20affix%2Dbottom%22%2Ca%3Btypeof%20i%21%3D%22object%22%26%26%28s%3Do%3Di%29%2Ctypeof%20o%3D%3D%22function%22%26%26%28o%3Di%2Etop%28%29%29%2Ctypeof%20s%3D%3D%22function%22%26%26%28s%3Di%2Ebottom%28%29%29%2Ca%3Dthis%2Eunpin%21%3Dnull%26%26n%2Bthis%2Eunpin%3C%3Dr%2Etop%3F%211%3As%21%3Dnull%26%26r%2Etop%2Bthis%2E%24element%2Eheight%28%29%3E%3Dt%2Ds%3F%22bottom%22%3Ao%21%3Dnull%26%26n%3C%3Do%3F%22top%22%3A%211%3Bif%28this%2Eaffixed%3D%3D%3Da%29return%3Bthis%2Eaffixed%3Da%2Cthis%2Eunpin%3Da%3D%3D%22bottom%22%3Fr%2Etop%2Dn%3Anull%2Cthis%2E%24element%2EremoveClass%28u%29%2EaddClass%28%22affix%22%2B%28a%3F%22%2D%22%2Ba%3A%22%22%29%29%7D%3Bvar%20n%3De%2Efn%2Eaffix%3Be%2Efn%2Eaffix%3Dfunction%28n%29%7Breturn%20this%2Eeach%28function%28%29%7Bvar%20r%3De%28this%29%2Ci%3Dr%2Edata%28%22affix%22%29%2Cs%3Dtypeof%20n%3D%3D%22object%22%26%26n%3Bi%7C%7Cr%2Edata%28%22affix%22%2Ci%3Dnew%20t%28this%2Cs%29%29%2Ctypeof%20n%3D%3D%22string%22%26%26i%5Bn%5D%28%29%7D%29%7D%2Ce%2Efn%2Eaffix%2EConstructor%3Dt%2Ce%2Efn%2Eaffix%2Edefaults%3D%7Boffset%3A0%7D%2Ce%2Efn%2Eaffix%2EnoConflict%3Dfunction%28%29%7Breturn%20e%2Efn%2Eaffix%3Dn%2Cthis%7D%2Ce%28window%29%2Eon%28%22load%22%2Cfunction%28%29%7Be%28%27%5Bdata%2Dspy%3D%22affix%22%5D%27%29%2Eeach%28function%28%29%7Bvar%20t%3De%28this%29%2Cn%3Dt%2Edata%28%29%3Bn%2Eoffset%3Dn%2Eoffset%7C%7C%7B%7D%2Cn%2EoffsetBottom%26%26%28n%2Eoffset%2Ebottom%3Dn%2EoffsetBottom%29%2Cn%2EoffsetTop%26%26%28n%2Eoffset%2Etop%3Dn%2EoffsetTop%29%2Ct%2Eaffix%28n%29%7D%29%7D%29%7D%28window%2EjQuery%29%3B"></script>
+
+<style type="text/css">code{white-space: pre;}</style>
+<link href="data:text/css,pre%20%2Eoperator%2C%0Apre%20%2Eparen%20%7B%0A%20color%3A%20rgb%28104%2C%20118%2C%20135%29%0A%7D%0A%0Apre%20%2Eliteral%20%7B%0A%20color%3A%20%23990073%0A%7D%0A%0Apre%20%2Enumber%20%7B%0A%20color%3A%20%23099%3B%0A%7D%0A%0Apre%20%2Ecomment%20%7B%0A%20color%3A%20%23998%3B%0A%20font%2Dstyle%3A%20italic%0A%7D%0A%0Apre%20%2Ekeyword%20%7B%0A%20color%3A%20%23900%3B%0A%20font%2Dweight%3A%20bold%0A%7D%0A%0Apre%20%2Eidentifier%20%7B%0A%20color%3A%20rgb%280%2C%200%2C%200%29%3B%0A%7D%0A%0Apre%20%2Estring%20%7B%0A%20color%3A%20%23d14%3B%0A%7D%0A" rel="stylesheet" type="text/css" />
+<script src="data:application/x-javascript,%0Avar%20hljs%3Dnew%20function%28%29%7Bfunction%20m%28p%29%7Breturn%20p%2Ereplace%28%2F%26%2Fgm%2C%22%26amp%3B%22%29%2Ereplace%28%2F%3C%2Fgm%2C%22%26lt%3B%22%29%7Dfunction%20f%28r%2Cq%2Cp%29%7Breturn%20RegExp%28q%2C%22m%22%2B%28r%2EcI%3F%22i%22%3A%22%22%29%2B%28p%3F%22g%22%3A%22%22%29%29%7Dfunction%20b%28r%29%7Bfor%28var%20p%3D0%3Bp%3Cr%2EchildNodes%2Elength%3Bp%2B%2B%29%7Bvar%20q%3Dr%2EchildNodes%5Bp%5D%3Bif%28q%2EnodeName%3D%3D%22CODE%22%29%7Breturn%20q%7Dif%28%21%28q%2EnodeType%3D%3D3%26%26q%2EnodeValue%2Ematch%28%2F%5Cs%2B%2F%29%29%29%7Bbreak%7D%7D%7Dfunction%20h%28t%2Cs%29%7Bvar%20p%3D%22%22%3Bfor%28var%20r%3D0%3Br%3Ct%2EchildNodes%2Elength%3Br%2B%2B%29%7Bif%28t%2EchildNodes%5Br%5D%2EnodeType%3D%3D3%29%7Bvar%20q%3Dt%2EchildNodes%5Br%5D%2EnodeValue%3Bif%28s%29%7Bq%3Dq%2Ereplace%28%2F%5Cn%2Fg%2C%22%22%29%7Dp%2B%3Dq%7Delse%7Bif%28t%2EchildNodes%5Br%5D%2EnodeName%3D%3D%22BR%22%29%7Bp%2B%3D%22%5Cn%22%7Delse%7Bp%2B%3Dh%28t%2EchildNodes%5Br%5D%29%7D%7D%7Dif%28%2FMSIE%20%5B678%5D%2F%2Etest%28navigator%2EuserAgent%29%29%7Bp%3Dp%2Ereplace%28%2F%5Cr%2Fg%2C%22%5Cn%22%29%7Dreturn%20p%7Dfunction%20a%28s%29%7Bvar%20r%3Ds%2EclassName%2Esplit%28%2F%5Cs%2B%2F%29%3Br%3Dr%2Econcat%28s%2EparentNode%2EclassName%2Esplit%28%2F%5Cs%2B%2F%29%29%3Bfor%28var%20q%3D0%3Bq%3Cr%2Elength%3Bq%2B%2B%29%7Bvar%20p%3Dr%5Bq%5D%2Ereplace%28%2F%5Elanguage%2D%2F%2C%22%22%29%3Bif%28e%5Bp%5D%29%7Breturn%20p%7D%7D%7Dfunction%20c%28q%29%7Bvar%20p%3D%5B%5D%3B%28function%28s%2Ct%29%7Bfor%28var%20r%3D0%3Br%3Cs%2EchildNodes%2Elength%3Br%2B%2B%29%7Bif%28s%2EchildNodes%5Br%5D%2EnodeType%3D%3D3%29%7Bt%2B%3Ds%2EchildNodes%5Br%5D%2EnodeValue%2Elength%7Delse%7Bif%28s%2EchildNodes%5Br%5D%2EnodeName%3D%3D%22BR%22%29%7Bt%2B%3D1%7Delse%7Bif%28s%2EchildNodes%5Br%5D%2EnodeType%3D%3D1%29%7Bp%2Epush%28%7Bevent%3A%22start%22%2Coffset%3At%2Cnode%3As%2EchildNodes%5Br%5D%7D%29%3Bt%3Darguments%2Ecallee%28s%2EchildNodes%5Br%5D%2Ct%29%3Bp%2Epush%28%7Bevent%3A%22stop%22%2Coffset%3At%2Cnode%3As%2EchildNodes%5Br%5D%7D%29%7D%7D%7D%7Dreturn%20t%7D%29%28q%2C0%29%3Breturn%20p%7Dfunction%20k%28y%2Cw%2Cx%29%7Bvar%20q%3D0%3Bvar%20z%3D%22%22%3Bvar%20s%3D%5B%5D%3Bfunction%20u%28%29%7Bif%28y%2Elength%26%26w%2Elength%29%7Bif%28y%5B0%5D%2Eoffset%21%3Dw%5B0%5D%2Eoffset%29%7Breturn%28y%5B0%5D%2Eoffset%3Cw%5B0%5D%2Eoffset%29%3Fy%3Aw%7Delse%7Breturn%20w%5B0%5D%2Eevent%3D%3D%22start%22%3Fy%3Aw%7D%7Delse%7Breturn%20y%2Elength%3Fy%3Aw%7D%7Dfunction%20t%28D%29%7Bvar%20A%3D%22%3C%22%2BD%2EnodeName%2EtoLowerCase%28%29%3Bfor%28var%20B%3D0%3BB%3CD%2Eattributes%2Elength%3BB%2B%2B%29%7Bvar%20C%3DD%2Eattributes%5BB%5D%3BA%2B%3D%22%20%22%2BC%2EnodeName%2EtoLowerCase%28%29%3Bif%28C%2Evalue%21%3D%3Dundefined%26%26C%2Evalue%21%3D%3Dfalse%26%26C%2Evalue%21%3D%3Dnull%29%7BA%2B%3D%27%3D%22%27%2Bm%28C%2Evalue%29%2B%27%22%27%7D%7Dreturn%20A%2B%22%3E%22%7Dwhile%28y%2Elength%7C%7Cw%2Elength%29%7Bvar%20v%3Du%28%29%2Esplice%280%2C1%29%5B0%5D%3Bz%2B%3Dm%28x%2Esubstr%28q%2Cv%2Eoffset%2Dq%29%29%3Bq%3Dv%2Eoffset%3Bif%28v%2Eevent%3D%3D%22start%22%29%7Bz%2B%3Dt%28v%2Enode%29%3Bs%2Epush%28v%2Enode%29%7Delse%7Bif%28v%2Eevent%3D%3D%22stop%22%29%7Bvar%20p%2Cr%3Ds%2Elength%3Bdo%7Br%2D%2D%3Bp%3Ds%5Br%5D%3Bz%2B%3D%28%22%3C%2F%22%2Bp%2EnodeName%2EtoLowerCase%28%29%2B%22%3E%22%29%7Dwhile%28p%21%3Dv%2Enode%29%3Bs%2Esplice%28r%2C1%29%3Bwhile%28r%3Cs%2Elength%29%7Bz%2B%3Dt%28s%5Br%5D%29%3Br%2B%2B%7D%7D%7D%7Dreturn%20z%2Bm%28x%2Esubstr%28q%29%29%7Dfunction%20j%28%29%7Bfunction%20q%28x%2Cy%2Cv%29%7Bif%28x%2Ecompiled%29%7Breturn%7Dvar%20u%3Bvar%20s%3D%5B%5D%3Bif%28x%2Ek%29%7Bx%2ElR%3Df%28y%2Cx%2El%7C%7Chljs%2EIR%2Ctrue%29%3Bfor%28var%20w%20in%20x%2Ek%29%7Bif%28%21x%2Ek%2EhasOwnProperty%28w%29%29%7Bcontinue%7Dif%28x%2Ek%5Bw%5D%20instanceof%20Object%29%7Bu%3Dx%2Ek%5Bw%5D%7Delse%7Bu%3Dx%2Ek%3Bw%3D%22keyword%22%7Dfor%28var%20r%20in%20u%29%7Bif%28%21u%2EhasOwnProperty%28r%29%29%7Bcontinue%7Dx%2Ek%5Br%5D%3D%5Bw%2Cu%5Br%5D%5D%3Bs%2Epush%28r%29%7D%7D%7Dif%28%21v%29%7Bif%28x%2EbWK%29%7Bx%2Eb%3D%22%5C%5Cb%28%22%2Bs%2Ejoin%28%22%7C%22%29%2B%22%29%5C%5Cs%22%7Dx%2EbR%3Df%28y%2Cx%2Eb%3Fx%2Eb%3A%22%5C%5CB%7C%5C%5Cb%22%29%3Bif%28%21x%2Ee%26%26%21x%2EeW%29%7Bx%2Ee%3D%22%5C%5CB%7C%5C%5Cb%22%7Dif%28x%2Ee%29%7Bx%2EeR%3Df%28y%2Cx%2Ee%29%7D%7Dif%28x%2Ei%29%7Bx%2EiR%3Df%28y%2Cx%2Ei%29%7Dif%28x%2Er%3D%3D%3Dundefined%29%7Bx%2Er%3D1%7Dif%28%21x%2Ec%29%7Bx%2Ec%3D%5B%5D%7Dx%2Ecompiled%3Dtrue%3Bfor%28var%20t%3D0%3Bt%3Cx%2Ec%2Elength%3Bt%2B%2B%29%7Bif%28x%2Ec%5Bt%5D%3D%3D%22self%22%29%7Bx%2Ec%5Bt%5D%3Dx%7Dq%28x%2Ec%5Bt%5D%2Cy%2Cfalse%29%7Dif%28x%2Estarts%29%7Bq%28x%2Estarts%2Cy%2Cfalse%29%7D%7Dfor%28var%20p%20in%20e%29%7Bif%28%21e%2EhasOwnProperty%28p%29%29%7Bcontinue%7Dq%28e%5Bp%5D%2EdM%2Ce%5Bp%5D%2Ctrue%29%7D%7Dfunction%20d%28B%2CC%29%7Bif%28%21j%2Ecalled%29%7Bj%28%29%3Bj%2Ecalled%3Dtrue%7Dfunction%20q%28r%2CM%29%7Bfor%28var%20L%3D0%3BL%3CM%2Ec%2Elength%3BL%2B%2B%29%7Bif%28%28M%2Ec%5BL%5D%2EbR%2Eexec%28r%29%7C%7C%5Bnull%5D%29%5B0%5D%3D%3Dr%29%7Breturn%20M%2Ec%5BL%5D%7D%7D%7Dfunction%20v%28L%2Cr%29%7Bif%28D%5BL%5D%2Ee%26%26D%5BL%5D%2EeR%2Etest%28r%29%29%7Breturn%201%7Dif%28D%5BL%5D%2EeW%29%7Bvar%20M%3Dv%28L%2D1%2Cr%29%3Breturn%20M%3FM%2B1%3A0%7Dreturn%200%7Dfunction%20w%28r%2CL%29%7Breturn%20L%2Ei%26%26L%2EiR%2Etest%28r%29%7Dfunction%20K%28N%2CO%29%7Bvar%20M%3D%5B%5D%3Bfor%28var%20L%3D0%3BL%3CN%2Ec%2Elength%3BL%2B%2B%29%7BM%2Epush%28N%2Ec%5BL%5D%2Eb%29%7Dvar%20r%3DD%2Elength%2D1%3Bdo%7Bif%28D%5Br%5D%2Ee%29%7BM%2Epush%28D%5Br%5D%2Ee%29%7Dr%2D%2D%7Dwhile%28D%5Br%2B1%5D%2EeW%29%3Bif%28N%2Ei%29%7BM%2Epush%28N%2Ei%29%7Dreturn%20f%28O%2CM%2Ejoin%28%22%7C%22%29%2Ctrue%29%7Dfunction%20p%28M%2CL%29%7Bvar%20N%3DD%5BD%2Elength%2D1%5D%3Bif%28%21N%2Et%29%7BN%2Et%3DK%28N%2CE%29%7DN%2Et%2ElastIndex%3DL%3Bvar%20r%3DN%2Et%2Eexec%28M%29%3Breturn%20r%3F%5BM%2Esubstr%28L%2Cr%2Eindex%2DL%29%2Cr%5B0%5D%2Cfalse%5D%3A%5BM%2Esubstr%28L%29%2C%22%22%2Ctrue%5D%7Dfunction%20z%28N%2Cr%29%7Bvar%20L%3DE%2EcI%3Fr%5B0%5D%2EtoLowerCase%28%29%3Ar%5B0%5D%3Bvar%20M%3DN%2Ek%5BL%5D%3Bif%28M%26%26M%20instanceof%20Array%29%7Breturn%20M%7Dreturn%20false%7Dfunction%20F%28L%2CP%29%7BL%3Dm%28L%29%3Bif%28%21P%2Ek%29%7Breturn%20L%7Dvar%20r%3D%22%22%3Bvar%20O%3D0%3BP%2ElR%2ElastIndex%3D0%3Bvar%20M%3DP%2ElR%2Eexec%28L%29%3Bwhile%28M%29%7Br%2B%3DL%2Esubstr%28O%2CM%2Eindex%2DO%29%3Bvar%20N%3Dz%28P%2CM%29%3Bif%28N%29%7Bx%2B%3DN%5B1%5D%3Br%2B%3D%27%3Cspan%20class%3D%22%27%2BN%5B0%5D%2B%27%22%3E%27%2BM%5B0%5D%2B%22%3C%2Fspan%3E%22%7Delse%7Br%2B%3DM%5B0%5D%7DO%3DP%2ElR%2ElastIndex%3BM%3DP%2ElR%2Eexec%28L%29%7Dreturn%20r%2BL%2Esubstr%28O%2CL%2Elength%2DO%29%7Dfunction%20J%28L%2CM%29%7Bif%28M%2EsL%26%26e%5BM%2EsL%5D%29%7Bvar%20r%3Dd%28M%2EsL%2CL%29%3Bx%2B%3Dr%2Ekeyword%5Fcount%3Breturn%20r%2Evalue%7Delse%7Breturn%20F%28L%2CM%29%7D%7Dfunction%20I%28M%2Cr%29%7Bvar%20L%3DM%2EcN%3F%27%3Cspan%20class%3D%22%27%2BM%2EcN%2B%27%22%3E%27%3A%22%22%3Bif%28M%2ErB%29%7By%2B%3DL%3BM%2Ebuffer%3D%22%22%7Delse%7Bif%28M%2EeB%29%7By%2B%3Dm%28r%29%2BL%3BM%2Ebuffer%3D%22%22%7Delse%7By%2B%3DL%3BM%2Ebuffer%3Dr%7D%7DD%2Epush%28M%29%3BA%2B%3DM%2Er%7Dfunction%20G%28N%2CM%2CQ%29%7Bvar%20R%3DD%5BD%2Elength%2D1%5D%3Bif%28Q%29%7By%2B%3DJ%28R%2Ebuffer%2BN%2CR%29%3Breturn%20false%7Dvar%20P%3Dq%28M%2CR%29%3Bif%28P%29%7By%2B%3DJ%28R%2Ebuffer%2BN%2CR%29%3BI%28P%2CM%29%3Breturn%20P%2ErB%7Dvar%20L%3Dv%28D%2Elength%2D1%2CM%29%3Bif%28L%29%7Bvar%20O%3DR%2EcN%3F%22%3C%2Fspan%3E%22%3A%22%22%3Bif%28R%2ErE%29%7By%2B%3DJ%28R%2Ebuffer%2BN%2CR%29%2BO%7Delse%7Bif%28R%2EeE%29%7By%2B%3DJ%28R%2Ebuffer%2BN%2CR%29%2BO%2Bm%28M%29%7Delse%7By%2B%3DJ%28R%2Ebuffer%2BN%2BM%2CR%29%2BO%7D%7Dwhile%28L%3E1%29%7BO%3DD%5BD%2Elength%2D2%5D%2EcN%3F%22%3C%2Fspan%3E%22%3A%22%22%3By%2B%3DO%3BL%2D%2D%3BD%2Elength%2D%2D%7Dvar%20r%3DD%5BD%2Elength%2D1%5D%3BD%2Elength%2D%2D%3BD%5BD%2Elength%2D1%5D%2Ebuffer%3D%22%22%3Bif%28r%2Estarts%29%7BI%28r%2Estarts%2C%22%22%29%7Dreturn%20R%2ErE%7Dif%28w%28M%2CR%29%29%7Bthrow%22Illegal%22%7D%7Dvar%20E%3De%5BB%5D%3Bvar%20D%3D%5BE%2EdM%5D%3Bvar%20A%3D0%3Bvar%20x%3D0%3Bvar%20y%3D%22%22%3Btry%7Bvar%20s%2Cu%3D0%3BE%2EdM%2Ebuffer%3D%22%22%3Bdo%7Bs%3Dp%28C%2Cu%29%3Bvar%20t%3DG%28s%5B0%5D%2Cs%5B1%5D%2Cs%5B2%5D%29%3Bu%2B%3Ds%5B0%5D%2Elength%3Bif%28%21t%29%7Bu%2B%3Ds%5B1%5D%2Elength%7D%7Dwhile%28%21s%5B2%5D%29%3Bif%28D%2Elength%3E1%29%7Bthrow%22Illegal%22%7Dreturn%7Br%3AA%2Ckeyword%5Fcount%3Ax%2Cvalue%3Ay%7D%7Dcatch%28H%29%7Bif%28H%3D%3D%22Illegal%22%29%7Breturn%7Br%3A0%2Ckeyword%5Fcount%3A0%2Cvalue%3Am%28C%29%7D%7Delse%7Bthrow%20H%7D%7D%7Dfunction%20g%28t%29%7Bvar%20p%3D%7Bkeyword%5Fcount%3A0%2Cr%3A0%2Cvalue%3Am%28t%29%7D%3Bvar%20r%3Dp%3Bfor%28var%20q%20in%20e%29%7Bif%28%21e%2EhasOwnProperty%28q%29%29%7Bcontinue%7Dvar%20s%3Dd%28q%2Ct%29%3Bs%2Elanguage%3Dq%3Bif%28s%2Ekeyword%5Fcount%2Bs%2Er%3Er%2Ekeyword%5Fcount%2Br%2Er%29%7Br%3Ds%7Dif%28s%2Ekeyword%5Fcount%2Bs%2Er%3Ep%2Ekeyword%5Fcount%2Bp%2Er%29%7Br%3Dp%3Bp%3Ds%7D%7Dif%28r%2Elanguage%29%7Bp%2Esecond%5Fbest%3Dr%7Dreturn%20p%7Dfunction%20i%28r%2Cq%2Cp%29%7Bif%28q%29%7Br%3Dr%2Ereplace%28%2F%5E%28%28%3C%5B%5E%3E%5D%2B%3E%7C%5Ct%29%2B%29%2Fgm%2Cfunction%28t%2Cw%2Cv%2Cu%29%7Breturn%20w%2Ereplace%28%2F%5Ct%2Fg%2Cq%29%7D%29%7Dif%28p%29%7Br%3Dr%2Ereplace%28%2F%5Cn%2Fg%2C%22%3Cbr%3E%22%29%7Dreturn%20r%7Dfunction%20n%28t%2Cw%2Cr%29%7Bvar%20x%3Dh%28t%2Cr%29%3Bvar%20v%3Da%28t%29%3Bvar%20y%2Cs%3Bif%28v%29%7By%3Dd%28v%2Cx%29%7Delse%7Breturn%7Dvar%20q%3Dc%28t%29%3Bif%28q%2Elength%29%7Bs%3Ddocument%2EcreateElement%28%22pre%22%29%3Bs%2EinnerHTML%3Dy%2Evalue%3By%2Evalue%3Dk%28q%2Cc%28s%29%2Cx%29%7Dy%2Evalue%3Di%28y%2Evalue%2Cw%2Cr%29%3Bvar%20u%3Dt%2EclassName%3Bif%28%21u%2Ematch%28%22%28%5C%5Cs%7C%5E%29%28language%2D%29%3F%22%2Bv%2B%22%28%5C%5Cs%7C%24%29%22%29%29%7Bu%3Du%3F%28u%2B%22%20%22%2Bv%29%3Av%7Dif%28%2FMSIE%20%5B678%5D%2F%2Etest%28navigator%2EuserAgent%29%26%26t%2EtagName%3D%3D%22CODE%22%26%26t%2EparentNode%2EtagName%3D%3D%22PRE%22%29%7Bs%3Dt%2EparentNode%3Bvar%20p%3Ddocument%2EcreateElement%28%22div%22%29%3Bp%2EinnerHTML%3D%22%3Cpre%3E%3Ccode%3E%22%2By%2Evalue%2B%22%3C%2Fcode%3E%3C%2Fpre%3E%22%3Bt%3Dp%2EfirstChild%2EfirstChild%3Bp%2EfirstChild%2EcN%3Ds%2EcN%3Bs%2EparentNode%2EreplaceChild%28p%2EfirstChild%2Cs%29%7Delse%7Bt%2EinnerHTML%3Dy%2Evalue%7Dt%2EclassName%3Du%3Bt%2Eresult%3D%7Blanguage%3Av%2Ckw%3Ay%2Ekeyword%5Fcount%2Cre%3Ay%2Er%7D%3Bif%28y%2Esecond%5Fbest%29%7Bt%2Esecond%5Fbest%3D%7Blanguage%3Ay%2Esecond%5Fbest%2Elanguage%2Ckw%3Ay%2Esecond%5Fbest%2Ekeyword%5Fcount%2Cre%3Ay%2Esecond%5Fbest%2Er%7D%7D%7Dfunction%20o%28%29%7Bif%28o%2Ecalled%29%7Breturn%7Do%2Ecalled%3Dtrue%3Bvar%20r%3Ddocument%2EgetElementsByTagName%28%22pre%22%29%3Bfor%28var%20p%3D0%3Bp%3Cr%2Elength%3Bp%2B%2B%29%7Bvar%20q%3Db%28r%5Bp%5D%29%3Bif%28q%29%7Bn%28q%2Chljs%2EtabReplace%29%7D%7D%7Dfunction%20l%28%29%7Bif%28window%2EaddEventListener%29%7Bwindow%2EaddEventListener%28%22DOMContentLoaded%22%2Co%2Cfalse%29%3Bwindow%2EaddEventListener%28%22load%22%2Co%2Cfalse%29%7Delse%7Bif%28window%2EattachEvent%29%7Bwindow%2EattachEvent%28%22onload%22%2Co%29%7Delse%7Bwindow%2Eonload%3Do%7D%7D%7Dvar%20e%3D%7B%7D%3Bthis%2ELANGUAGES%3De%3Bthis%2Ehighlight%3Dd%3Bthis%2EhighlightAuto%3Dg%3Bthis%2EfixMarkup%3Di%3Bthis%2EhighlightBlock%3Dn%3Bthis%2EinitHighlighting%3Do%3Bthis%2EinitHighlightingOnLoad%3Dl%3Bthis%2EIR%3D%22%5Ba%2DzA%2DZ%5D%5Ba%2DzA%2DZ0%2D9%5F%5D%2A%22%3Bthis%2EUIR%3D%22%5Ba%2DzA%2DZ%5F%5D%5Ba%2DzA%2DZ0%2D9%5F%5D%2A%22%3Bthis%2ENR%3D%22%5C%5Cb%5C%5Cd%2B%28%5C%5C%2E%5C%5Cd%2B%29%3F%22%3Bthis%2ECNR%3D%22%5C%5Cb%280%5BxX%5D%5Ba%2DfA%2DF0%2D9%5D%2B%7C%28%5C%5Cd%2B%28%5C%5C%2E%5C%5Cd%2A%29%3F%7C%5C%5C%2E%5C%5Cd%2B%29%28%5BeE%5D%5B%2D%2B%5D%3F%5C%5Cd%2B%29%3F%29%22%3Bthis%2EBNR%3D%22%5C%5Cb%280b%5B01%5D%2B%29%22%3Bthis%2ERSR%3D%22%21%7C%21%3D%7C%21%3D%3D%7C%25%7C%25%3D%7C%26%7C%26%26%7C%26%3D%7C%5C%5C%2A%7C%5C%5C%2A%3D%7C%5C%5C%2B%7C%5C%5C%2B%3D%7C%2C%7C%5C%5C%2E%7C%2D%7C%2D%3D%7C%2F%7C%2F%3D%7C%3A%7C%3B%7C%3C%7C%3C%3C%7C%3C%3C%3D%7C%3C%3D%7C%3D%7C%3D%3D%7C%3D%3D%3D%7C%3E%7C%3E%3D%7C%3E%3E%7C%3E%3E%3D%7C%3E%3E%3E%7C%3E%3E%3E%3D%7C%5C%5C%3F%7C%5C%5C%5B%7C%5C%5C%7B%7C%5C%5C%28%7C%5C%5C%5E%7C%5C%5C%5E%3D%7C%5C%5C%7C%7C%5C%5C%7C%3D%7C%5C%5C%7C%5C%5C%7C%7C%7E%22%3Bthis%2EER%3D%22%28%3F%21%5B%5C%5Cs%5C%5CS%5D%29%22%3Bthis%2EBE%3D%7Bb%3A%22%5C%5C%5C%5C%2E%22%2Cr%3A0%7D%3Bthis%2EASM%3D%7BcN%3A%22string%22%2Cb%3A%22%27%22%2Ce%3A%22%27%22%2Ci%3A%22%5C%5Cn%22%2Cc%3A%5Bthis%2EBE%5D%2Cr%3A0%7D%3Bthis%2EQSM%3D%7BcN%3A%22string%22%2Cb%3A%27%22%27%2Ce%3A%27%22%27%2Ci%3A%22%5C%5Cn%22%2Cc%3A%5Bthis%2EBE%5D%2Cr%3A0%7D%3Bthis%2ECLCM%3D%7BcN%3A%22comment%22%2Cb%3A%22%2F%2F%22%2Ce%3A%22%24%22%7D%3Bthis%2ECBLCLM%3D%7BcN%3A%22comment%22%2Cb%3A%22%2F%5C%5C%2A%22%2Ce%3A%22%5C%5C%2A%2F%22%7D%3Bthis%2EHCM%3D%7BcN%3A%22comment%22%2Cb%3A%22%23%22%2Ce%3A%22%24%22%7D%3Bthis%2ENM%3D%7BcN%3A%22number%22%2Cb%3Athis%2ENR%2Cr%3A0%7D%3Bthis%2ECNM%3D%7BcN%3A%22number%22%2Cb%3Athis%2ECNR%2Cr%3A0%7D%3Bthis%2EBNM%3D%7BcN%3A%22number%22%2Cb%3Athis%2EBNR%2Cr%3A0%7D%3Bthis%2Einherit%3Dfunction%28r%2Cs%29%7Bvar%20p%3D%7B%7D%3Bfor%28var%20q%20in%20r%29%7Bp%5Bq%5D%3Dr%5Bq%5D%7Dif%28s%29%7Bfor%28var%20q%20in%20s%29%7Bp%5Bq%5D%3Ds%5Bq%5D%7D%7Dreturn%20p%7D%7D%28%29%3Bhljs%2ELANGUAGES%2Ecpp%3Dfunction%28%29%7Bvar%20a%3D%7Bkeyword%3A%7B%22false%22%3A1%2C%22int%22%3A1%2C%22float%22%3A1%2C%22while%22%3A1%2C%22private%22%3A1%2C%22char%22%3A1%2C%22catch%22%3A1%2C%22export%22%3A1%2Cvirtual%3A1%2Coperator%3A2%2Csizeof%3A2%2Cdynamic%5Fcast%3A2%2Ctypedef%3A2%2Cconst%5Fcast%3A2%2C%22const%22%3A1%2Cstruct%3A1%2C%22for%22%3A1%2Cstatic%5Fcast%3A2%2Cunion%3A1%2Cnamespace%3A1%2Cunsigned%3A1%2C%22long%22%3A1%2C%22throw%22%3A1%2C%22volatile%22%3A2%2C%22static%22%3A1%2C%22protected%22%3A1%2Cbool%3A1%2Ctemplate%3A1%2Cmutable%3A1%2C%22if%22%3A1%2C%22public%22%3A1%2Cfriend%3A2%2C%22do%22%3A1%2C%22return%22%3A1%2C%22goto%22%3A1%2Cauto%3A1%2C%22void%22%3A2%2C%22enum%22%3A1%2C%22else%22%3A1%2C%22break%22%3A1%2C%22new%22%3A1%2Cextern%3A1%2Cusing%3A1%2C%22true%22%3A1%2C%22class%22%3A1%2Casm%3A1%2C%22case%22%3A1%2Ctypeid%3A1%2C%22short%22%3A1%2Creinterpret%5Fcast%3A2%2C%22default%22%3A1%2C%22double%22%3A1%2Cregister%3A1%2Cexplicit%3A1%2Csigned%3A1%2Ctypename%3A1%2C%22try%22%3A1%2C%22this%22%3A1%2C%22switch%22%3A1%2C%22continue%22%3A1%2Cwchar%5Ft%3A1%2Cinline%3A1%2C%22delete%22%3A1%2Calignof%3A1%2Cchar16%5Ft%3A1%2Cchar32%5Ft%3A1%2Cconstexpr%3A1%2Cdecltype%3A1%2Cnoexcept%3A1%2Cnullptr%3A1%2Cstatic%5Fassert%3A1%2Cthread%5Flocal%3A1%2Crestrict%3A1%2C%5FBool%3A1%2Ccomplex%3A1%7D%2Cbuilt%5Fin%3A%7Bstd%3A1%2Cstring%3A1%2Ccin%3A1%2Ccout%3A1%2Ccerr%3A1%2Cclog%3A1%2Cstringstream%3A1%2Cistringstream%3A1%2Costringstream%3A1%2Cauto%5Fptr%3A1%2Cdeque%3A1%2Clist%3A1%2Cqueue%3A1%2Cstack%3A1%2Cvector%3A1%2Cmap%3A1%2Cset%3A1%2Cbitset%3A1%2Cmultiset%3A1%2Cmultimap%3A1%2Cunordered%5Fset%3A1%2Cunordered%5Fmap%3A1%2Cunordered%5Fmultiset%3A1%2Cunordered%5Fmultimap%3A1%2Carray%3A1%2Cshared%5Fptr%3A1%7D%7D%3Breturn%7BdM%3A%7Bk%3Aa%2Ci%3A%22%3C%2F%22%2Cc%3A%5Bhljs%2ECLCM%2Chljs%2ECBLCLM%2Chljs%2EQSM%2C%7BcN%3A%22string%22%2Cb%3A%22%27%5C%5C%5C%5C%3F%2E%22%2Ce%3A%22%27%22%2Ci%3A%22%2E%22%7D%2C%7BcN%3A%22number%22%2Cb%3A%22%5C%5Cb%28%5C%5Cd%2B%28%5C%5C%2E%5C%5Cd%2A%29%3F%7C%5C%5C%2E%5C%5Cd%2B%29%28u%7CU%7Cl%7CL%7Cul%7CUL%7Cf%7CF%29%22%7D%2Chljs%2ECNM%2C%7BcN%3A%22preprocessor%22%2Cb%3A%22%23%22%2Ce%3A%22%24%22%7D%2C%7BcN%3A%22stl%5Fcontainer%22%2Cb%3A%22%5C%5Cb%28deque%7Clist%7Cqueue%7Cstack%7Cvector%7Cmap%7Cset%7Cbitset%7Cmultiset%7Cmultimap%7Cunordered%5Fmap%7Cunordered%5Fset%7Cunordered%5Fmultiset%7Cunordered%5Fmultimap%7Carray%29%5C%5Cs%2A%3C%22%2Ce%3A%22%3E%22%2Ck%3Aa%2Cr%3A10%2Cc%3A%5B%22self%22%5D%7D%5D%7D%7D%7D%28%29%3Bhljs%2ELANGUAGES%2Er%3D%7BdM%3A%7Bc%3A%5Bhljs%2EHCM%2C%7BcN%3A%22number%22%2Cb%3A%22%5C%5Cb0%5BxX%5D%5B0%2D9a%2DfA%2DF%5D%2B%5BLi%5D%3F%5C%5Cb%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A0%7D%2C%7BcN%3A%22number%22%2Cb%3A%22%5C%5Cb%5C%5Cd%2B%28%3F%3A%5BeE%5D%5B%2B%5C%5C%2D%5D%3F%5C%5Cd%2A%29%3FL%5C%5Cb%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A0%7D%2C%7BcN%3A%22number%22%2Cb%3A%22%5C%5Cb%5C%5Cd%2B%5C%5C%2E%28%3F%21%5C%5Cd%29%28%3F%3Ai%5C%5Cb%29%3F%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A1%7D%2C%7BcN%3A%22number%22%2Cb%3A%22%5C%5Cb%5C%5Cd%2B%28%3F%3A%5C%5C%2E%5C%5Cd%2A%29%3F%28%3F%3A%5BeE%5D%5B%2B%5C%5C%2D%5D%3F%5C%5Cd%2A%29%3Fi%3F%5C%5Cb%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A0%7D%2C%7BcN%3A%22number%22%2Cb%3A%22%5C%5C%2E%5C%5Cd%2B%28%3F%3A%5BeE%5D%5B%2B%5C%5C%2D%5D%3F%5C%5Cd%2A%29%3Fi%3F%5C%5Cb%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A1%7D%2C%7BcN%3A%22keyword%22%2Cb%3A%22%28%3F%3AtryCatch%7Clibrary%7CsetGeneric%7CsetGroupGeneric%29%5C%5Cb%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A10%7D%2C%7BcN%3A%22keyword%22%2Cb%3A%22%5C%5C%2E%5C%5C%2E%5C%5C%2E%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A10%7D%2C%7BcN%3A%22keyword%22%2Cb%3A%22%5C%5C%2E%5C%5C%2E%5C%5Cd%2B%28%3F%21%5B%5C%5Cw%2E%5D%29%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A10%7D%2C%7BcN%3A%22keyword%22%2Cb%3A%22%5C%5Cb%28%3F%3Afunction%29%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A2%7D%2C%7BcN%3A%22keyword%22%2Cb%3A%22%28%3F%3Aif%7Cin%7Cbreak%7Cnext%7Crepeat%7Celse%7Cfor%7Creturn%7Cswitch%7Cwhile%7Ctry%7Cstop%7Cwarning%7Crequire%7Cattach%7Cdetach%7Csource%7CsetMethod%7CsetClass%29%5C%5Cb%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A1%7D%2C%7BcN%3A%22literal%22%2Cb%3A%22%28%3F%3ANA%7CNA%5Finteger%5F%7CNA%5Freal%5F%7CNA%5Fcharacter%5F%7CNA%5Fcomplex%5F%29%5C%5Cb%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A10%7D%2C%7BcN%3A%22literal%22%2Cb%3A%22%28%3F%3ANULL%7CTRUE%7CFALSE%7CT%7CF%7CInf%7CNaN%29%5C%5Cb%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A1%7D%2C%7BcN%3A%22identifier%22%2Cb%3A%22%5Ba%2DzA%2DZ%2E%5D%5Ba%2DzA%2DZ0%2D9%2E%5F%5D%2A%5C%5Cb%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A0%7D%2C%7BcN%3A%22operator%22%2Cb%3A%22%3C%5C%5C%2D%28%3F%21%5C%5Cs%2A%5C%5Cd%29%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A2%7D%2C%7BcN%3A%22operator%22%2Cb%3A%22%5C%5C%2D%3E%7C%3C%5C%5C%2D%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A1%7D%2C%7BcN%3A%22operator%22%2Cb%3A%22%25%25%7C%7E%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%7D%2C%7BcN%3A%22operator%22%2Cb%3A%22%3E%3D%7C%3C%3D%7C%3D%3D%7C%21%3D%7C%5C%5C%7C%5C%5C%7C%7C%26%26%7C%3D%7C%5C%5C%2B%7C%5C%5C%2D%7C%5C%5C%2A%7C%2F%7C%5C%5C%5E%7C%3E%7C%3C%7C%21%7C%26%7C%5C%5C%7C%7C%5C%5C%24%7C%3A%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A0%7D%2C%7BcN%3A%22operator%22%2Cb%3A%22%25%22%2Ce%3A%22%25%22%2Ci%3A%22%5C%5Cn%22%2Cr%3A1%7D%2C%7BcN%3A%22identifier%22%2Cb%3A%22%60%22%2Ce%3A%22%60%22%2Cr%3A0%7D%2C%7BcN%3A%22string%22%2Cb%3A%27%22%27%2Ce%3A%27%22%27%2Cc%3A%5Bhljs%2EBE%5D%2Cr%3A0%7D%2C%7BcN%3A%22string%22%2Cb%3A%22%27%22%2Ce%3A%22%27%22%2Cc%3A%5Bhljs%2EBE%5D%2Cr%3A0%7D%2C%7BcN%3A%22paren%22%2Cb%3A%22%5B%5B%28%7B%5C%5C%5D%29%7D%5D%22%2Ce%3Ahljs%2EIMMEDIATE%5FRE%2Cr%3A0%7D%5D%7D%7D%3B%0Ahljs%2EinitHighlightingOnLoad%28%29%3B%0A%0A"></script>
+<style type="text/css">
+  pre:not([class]) {
+    background-color: white;
+  }
+</style>
+<script type="text/javascript">
+if (window.hljs && document.readyState && document.readyState === "complete") {
+   window.setTimeout(function() {
+      hljs.initHighlighting();
+   }, 0);
+}
+</script>
+
+
+
+</head>
+
+<body>
+
+<style type="text/css">
+.main-container {
+  max-width: 940px;
+  margin-left: auto;
+  margin-right: auto;
+}
+</style>
+<div class="container-fluid main-container">
+
+
+
+
+<!--
+%\VignetteEngine{knitr::rmarkdown_notangle}
+%\VignetteIndexEntry{lmer Performance Tips}
+-->
+
+
+
+
+<pre class="r"><code>library(&quot;lme4&quot;)</code></pre>
+<div id="lme4-performance-tips" class="section level1">
+<h1>lme4 Performance Tips</h1>
+<ul>
+<li>use control = <code>[g]lmerControl(calc.derivs = FALSE)</code> to turn off the time consuming derivative calculation that is performed after the optmization is finished, e.g.</li>
+</ul>
+<pre class="r"><code>lmer(y ~ service * dept + (1|s) + (1|d), InstEval,
+     control = lmerControl(calc.derivs = FALSE))</code></pre>
+<p>Note that this will disable some of the convergence tests, as well as (for <code>glmer</code> only) making <code>lme4</code> use a less accurate approximation to compute the standard errors of the fixed effects.</p>
+<ul>
+<li><p>models that only contain random effects of the form <code>(1|f)</code> use better starting values for the optimization which in tests have cut run time in certain examples by up to 50% relative to the previous default starting values. The <code>InstEval</code> fit shown above is one such example.</p></li>
+<li><p><code>lmer</code> uses the <code>bobyqa</code> optimizer from the <code>minqa</code> package by default; <code>glmer</code> uses a combination of Nelder-Mead and <code>bobyqa</code>. If you are specifying the <code>optimx</code> package optimizer, note that by default <code>optimx</code> performs certain time-consuming processing at the beginning and end which can be turned off as follows (here we have specified the <code>&quot;nlminb&quot;</code> method but this applies to any <code>optimx</code> method):</p></li>
+</ul>
+<pre class="r"><code>library(&quot;optimx&quot;)
+lmer(y ~ service * dept + (1|s) + (1|d), InstEval,
+     control = lmerControl(optimizer = &quot;optimx&quot;, calc.derivs = FALSE,
+     optCtrl = list(method = &quot;nlminb&quot;, starttests = FALSE, kkt = FALSE)))</code></pre>
+<ul>
+<li>the <code>nloptr</code> package supports a variety of algorithms and importantly supports additional stopping criteria which can stop the optimization earlier if it believes it has reached the optimum. For many problems using these stopping criteria will result in the same solution or nearly the same solution as the default optimizer but in less time (up to 50 percent savings have been observed); however, in some cases it may stop prematurely giving suboptimal results. (In the example below omit <code>print_level</code> if output tracing is not desired and increase <code>maxeval</code> if the optimization requires more than 1000 iterations and you wish to allow it to proceed.)</li>
+</ul>
+<pre class="r"><code>nlopt &lt;- function(par, fn, lower, upper, control) {
+    .nloptr &lt;&lt;- res &lt;- nloptr(par, fn, lb = lower, ub = upper, 
+        opts = list(algorithm = &quot;NLOPT_LN_BOBYQA&quot;, print_level = 1,
+        maxeval = 1000, xtol_abs = 1e-6, ftol_abs = 1e-6))
+    list(par = res$solution,
+         fval = res$objective,
+         conv = if (res$status &gt; 0) 0 else res$status,
+         message = res$message
+    )
+}
+lmer(y ~ service * dept + (1|s) + (1|d), InstEval,
+    control = lmerControl(optimizer = &quot;nloptwrap&quot;, calc.derivs = FALSE))</code></pre>
+</div>
+
+
+</div>
+
+<script>
+
+// add bootstrap table styles to pandoc tables
+$(document).ready(function () {
+  $('tr.header').parent('thead').parent('table').addClass('table table-condensed');
+});
+
+</script>
+
+<!-- dynamically load mathjax for compatibility with self-contained -->
+<script>
+  (function () {
+    var script = document.createElement("script");
+    script.type = "text/javascript";
+    script.src  = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
+    document.getElementsByTagName("head")[0].appendChild(script);
+  })();
+</script>
+
+</body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmerperf.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/Theory.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/Theory.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/Doxyfile
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/Doxyfile	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/Doxyfile	(revision 2476)
@@ -0,0 +1,1551 @@
+# Doxyfile 1.6.3
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = lme4
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER         = 0.9996875-9
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = ../../../doxygen
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC    = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH        =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF      = YES
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it parses.
+# With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this tag.
+# The format is ext=language, where ext is a file extension, and language is one of
+# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
+# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
+# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
+# use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen to replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penality.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will rougly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
+# will list include files with double quotes in the documentation
+# rather than with sharp brackets.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS        = YES
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES       = NO
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
+# doxygen. The layout file controls the global structure of the generated output files
+# in an output format independent way. The create the layout file that represents
+# doxygen's defaults, run doxygen with the -l option. You can optionally specify a
+# file name after the option, if omitted DoxygenLayout.xml will be used as the name
+# of the layout file.
+
+LAYOUT_FILE            =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text "
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT                  = ../../src
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+
+FILE_PATTERNS          =
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH           =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS       =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+# If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.
+# Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.
+# The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.
+# Otherwise they will link to the documentation.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = .
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        =
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting
+# this to NO can help when comparing the output of multiple runs.
+
+HTML_TIMESTAMP         = YES
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
+
+GENERATE_DOCSET        = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE               =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING     =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER
+# are set, an additional index file will be generated that can be used as input for
+# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated
+# HTML documentation.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE          =
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.
+# For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
+#  will be generated, which together with the HTML files, form an Eclipse help
+#  plugin. To install this plugin and make it available under the help contents
+# menu in Eclipse, the contents of the directory containing the HTML and XML
+# files needs to be copied into the plugins directory of eclipse. The name of
+# the directory within the plugins directory should be the same as
+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before the help appears.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have
+# this name.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 8
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to YES, a side panel will be generated
+# containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = YES
+
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES       = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE       = 10
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) there is already a search function so this one should
+# typically be disabled. For large projects the javascript based search engine
+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
+
+SEARCHENGINE           = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be implemented using a PHP enabled web server instead of at the web client using Javascript. Doxygen will generate the search PHP script and index
+# file to put on the web server. The advantage of the server based approach is that it scales better to large projects and allows full text search. The disadvances is that it is more difficult to setup
+# and does not have live searching capabilities.
+
+SERVER_BASED_SEARCH    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+# Note that when enabling USE_PDFLATEX this option is only used for
+# generating bitmaps for formulas in the HTML output, but not in the
+# Makefile that is written to the output directory.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = letter
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = YES
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE      = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA             =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD                =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.
+# This is useful
+# if you want to understand what is going on.
+# On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED             =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS         = NO
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = YES
+
+# By default doxygen will write a font called FreeSans.ttf to the output
+# directory and reference it in all dot files that doxygen generates. This
+# font does not include all possible unicode characters however, so when you need
+# these (or just want a differently looking font) you can specify the font name
+# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
+# which can be done by putting it in a standard location or by setting the
+# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
+# containing the font.
+
+DOT_FONTNAME           = FreeSans
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the output directory to look for the
+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
+# different font using DOT_FONTNAME you can set the path where dot
+# can find it using this tag.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = NO
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH             = YES
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH           = YES
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS           =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = YES
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP            = YES
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/PLSvGLS.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/PLSvGLS.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/PLSvGLS.R	(revision 2476)
@@ -0,0 +1,9 @@
+### R code from vignette source 'PLSvGLS.Rnw'
+
+###################################################
+### code chunk number 1: preliminaries
+###################################################
+options(width=65,digits=5)
+#library(lme4)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmerperf.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmerperf.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmerperf.Rmd	(revision 2476)
@@ -0,0 +1,76 @@
+<!--
+%\VignetteEngine{knitr::rmarkdown}
+%\VignetteIndexEntry{lmer Performance Tips}
+-->
+
+```{r opts, echo = FALSE, message = FALSE}
+library("knitr")
+knitr::opts_chunk$set(
+  eval = FALSE
+)
+```
+
+```{r loadpkg,message=FALSE}
+library("lme4")
+```
+
+# lme4 Performance Tips
+
+- use control = `[g]lmerControl(calc.derivs = FALSE)` to turn off the time
+  consuming derivative calculation that is performed after the optmization
+  is finished, e.g.
+
+```{r noderivs,eval=FALSE}
+lmer(y ~ service * dept + (1|s) + (1|d), InstEval,
+     control = lmerControl(calc.derivs = FALSE))
+```
+Note that this will disable some of the convergence tests, as well as
+(for `glmer` only) making `lme4` use a less
+accurate approximation to compute the standard errors of the fixed effects.
+
+- models that only contain random effects of the form `(1|f)` use better 
+  starting values for the optimization which in tests have cut run time in 
+  certain examples by up to 50% relative to the previous default starting 
+  values.  The `InstEval` fit shown above is one such example.
+
+- `lmer` uses the `bobyqa` optimizer from the `minqa` package by default;
+  `glmer` uses a combination of Nelder-Mead and `bobyqa`.  If you
+  are specifying the `optimx` package optimizer, note that by 
+  default `optimx` performs 
+  certain time-consuming processing at the beginning and end which can be 
+  turned off as follows (here we have specified the `"nlminb"` method but this 
+  applies to any `optimx` method):
+
+```{r nlminbfit,eval=FALSE}
+library("optimx")
+lmer(y ~ service * dept + (1|s) + (1|d), InstEval,
+     control = lmerControl(optimizer = "optimx", calc.derivs = FALSE,
+     optCtrl = list(method = "nlminb", starttests = FALSE, kkt = FALSE)))
+```
+
+- the `nloptr` package supports a variety of algorithms and importantly 
+  supports additional stopping criteria which can stop the optimization
+  earlier if it believes it has reached the optimum.
+  For many problems using these stopping 
+  criteria will result in the 
+  same solution or nearly the same solution as the default optimizer but in
+  less time (up to 50 percent savings have been observed); however, in
+  some cases it may stop prematurely giving suboptimal results.
+  (In the example below omit `print_level` if output tracing is not desired and 
+  increase `maxeval` if the optimization requires more than 1000 iterations
+  and you wish to allow it to proceed.)
+
+```{r nlopt,eval=FALSE}
+nlopt <- function(par, fn, lower, upper, control) {
+    .nloptr <<- res <- nloptr(par, fn, lb = lower, ub = upper, 
+        opts = list(algorithm = "NLOPT_LN_BOBYQA", print_level = 1,
+        maxeval = 1000, xtol_abs = 1e-6, ftol_abs = 1e-6))
+    list(par = res$solution,
+         fval = res$objective,
+         conv = if (res$status > 0) 0 else res$status,
+         message = res$message
+    )
+}
+lmer(y ~ service * dept + (1|s) + (1|d), InstEval,
+    control = lmerControl(optimizer = "nloptwrap", calc.derivs = FALSE))
+```
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/PLSvGLS.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/PLSvGLS.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/PLSvGLS.Rnw	(revision 2476)
@@ -0,0 +1,432 @@
+\documentclass[12pt]{article}
+\usepackage{Sweave,amsmath,amsfonts,bm}
+\usepackage[authoryear,round]{natbib}
+\bibliographystyle{plainnat}
+\DeclareMathOperator \tr {tr}
+\DefineVerbatimEnvironment{Sinput}{Verbatim}
+{formatcom={\vspace{-1ex}},fontshape=sl,
+  fontfamily=courier,fontseries=b, fontsize=\footnotesize}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}
+{formatcom={\vspace{-1ex}},fontfamily=courier,fontseries=b,%
+  fontsize=\footnotesize}
+%%\VignetteIndexEntry{PLS vs GLS for LMMs}
+%%\VignetteDepends{lme4}
+\title{Penalized least squares versus generalized least squares
+  representations of linear mixed models}
+\author{Douglas Bates\\Department of Statistics\\%
+  University of Wisconsin -- Madison}
+\begin{document}
+\SweaveOpts{engine=R,eps=FALSE,pdf=TRUE,strip.white=true,keep.source=TRUE}
+\SweaveOpts{include=FALSE}
+\setkeys{Gin}{width=\textwidth}
+\newcommand{\code}[1]{\texttt{\small{#1}}}
+\newcommand{\package}[1]{\textsf{\small{#1}}}
+\newcommand{\trans}{\ensuremath{^\prime}}
+<<preliminaries,echo=FALSE,results=hide>>=
+options(width=65,digits=5)
+#library(lme4)
+@
+
+\maketitle
+
+\begin{abstract}
+  The methods in the \code{lme4} package for \code{R} for fitting
+  linear mixed models are based on sparse matrix methods, especially
+  the Cholesky decomposition of sparse positive-semidefinite matrices,
+  in a penalized least squares representation of the conditional model
+  for the response given the random effects.  The representation is
+  similar to that in Henderson's mixed-model equations.  An
+  alternative representation of the calculations is as a generalized
+  least squares problem.  We describe the two representations, show
+  the equivalence of the two representations and explain why we feel
+  that the penalized least squares approach is more versatile and more
+  computationally efficient.
+\end{abstract}
+
+\section{Definition of the model}
+\label{sec:Definition}
+
+We consider linear mixed models in which the random effects are
+represented by a $q$-dimensional random vector, $\bm{\mathcal{B}}$, and
+the response is represented by an $n$-dimensional random vector,
+$\bm{\mathcal{Y}}$.  We observe a value, $\bm y$, of the response.  The
+random effects are unobserved.
+
+For our purposes, we will assume a ``spherical'' multivariate normal
+conditional distribution of $\bm{\mathcal{Y}}$, given
+$\bm{\mathcal{B}}$.  That is, we assume the variance-covariance matrix
+of $\bm{\mathcal{Y}}|\bm{\mathcal{B}}$ is simply $\sigma^2\bm I_n$,
+where $\bm I_n$ denotes the identity matrix of order $n$.  (The term
+``spherical'' refers to the fact that contours of the conditional
+density are concentric spheres.)
+
+The conditional mean,
+$\mathrm{E}[\bm{\mathcal{Y}}|\bm{\mathcal{B}}=\bm b]$, is a linear
+function of $\bm b$ and the $p$-dimensional fixed-effects parameter,
+$\bm\beta$,
+\begin{equation}
+  \label{eq:condmean}
+  \mathrm{E}[\bm{\mathcal{Y}}|\bm{\mathcal{B}}=\bm b]=
+  \bm X\bm\beta+\bm Z\bm b ,
+\end{equation}
+where $\bm X$ and $\bm Z$ are known model matrices of sizes $n\times
+p$ and $n\times q$, respectively. Thus
+\begin{equation}
+  \label{eq:yconditional}
+  \bm{\mathcal{Y}}|\bm{\mathcal{B}}\sim
+  \mathcal{N}\left(\bm X\bm\beta+\bm Z\bm b,\sigma^2\bm I_n\right) .
+\end{equation}
+
+The marginal distribution of the random effects
+\begin{equation}
+  \label{eq:remargin}
+  \bm{\mathcal{B}}\sim\mathcal{N}\left(\bm 0,\sigma^2\bm\Sigma(\bm\theta)\right)
+\end{equation}
+is also multivariate normal, with mean $\bm 0$ and variance-covariance
+matrix $\sigma^2\bm\Sigma(\bm\theta)$.  The scalar, $\sigma^2$, in
+(\ref{eq:remargin}) is the same as the $\sigma^2$ in
+(\ref{eq:yconditional}).  As described in the next section, the
+relative variance-covariance matrix, $\bm\Sigma(\bm\theta)$, is a
+$q\times q$ positive semidefinite matrix depending on a parameter
+vector, $\bm\theta$.  Typically the dimension of $\bm\theta$ is much,
+much smaller than $q$.
+
+
+\subsection{Variance-covariance of the random effects}
+\label{sec:revarcov}
+
+The relative variance-covariance matrix, $\bm\Sigma(\bm\theta)$, must
+be symmetric and positive semidefinite (i.e. $\bm x\trans\bm\Sigma\bm
+x\ge0,\forall\bm x\in\mathbb{R}^q$).  Because the estimate of a
+variance component can be zero, it is important to allow for a
+semidefinite $\bm\Sigma$.  We do not assume that $\bm\Sigma$ is
+positive definite (i.e. $\bm x\trans\bm\Sigma\bm x>0,\forall\bm
+x\in\mathbb{R}^q, \bm x\ne\bm 0$) and, hence, we cannot assume that $\bm\Sigma^{-1}$
+exists.
+
+A positive semidefinite matrix such as $\bm\Sigma$ has a Cholesky
+decomposition of the so-called ``LDL$\trans$'' form.  We use a
+slight modification of this form,
+\begin{equation}
+  \label{eq:TSdef}
+  \bm\Sigma(\bm\theta)=\bm T(\bm\theta)\bm S(\bm\theta)\bm
+  S(\bm\theta)\bm T(\bm\theta)\trans ,
+\end{equation}
+where $\bm T(\bm\theta)$ is a unit lower-triangular $q\times q$ matrix
+and $\bm S(\bm\theta)$ is a diagonal $q\times q$ matrix with
+nonnegative diagonal elements that act as scale factors.  (They are
+the relative standard deviations of certain linear combinations of the
+random effects.)  Thus, $\bm T$ is a triangular matrix and $\bm S$ is
+a scale matrix.
+
+Both $\bm T$ and $\bm S$ are highly patterned.
+
+\subsection{Orthogonal random effects}
+\label{sec:orthogonal}
+
+Let us define a $q$-dimensional random vector, $\bm{\mathcal{U}}$, of
+orthogonal random effects with marginal distribution
+\begin{equation}
+  \label{eq:Udist}
+  \bm{\mathcal{U}}\sim\mathcal{N}\left(\bm 0,\sigma^2\bm I_q\right)
+\end{equation}
+and, for a given value of $\bm\theta$, express $\bm{\mathcal{B}}$ as a
+linear transformation of $\bm{\mathcal{U}}$,
+\begin{equation}
+  \label{eq:UtoB}
+  \bm{\mathcal{B}}=\bm T(\bm\theta)\bm S(\bm\theta)\bm{\mathcal{U}} .
+\end{equation}
+Note that the transformation (\ref{eq:UtoB}) gives the desired
+distribution of $\bm{\mathcal{B}}$ in that
+$\mathrm{E}[\bm{\mathcal{B}}]=\bm T\bm
+S\mathrm{E}[\bm{\mathcal{U}}]=\bm 0$ and
+\begin{displaymath}
+  \mathrm{Var}(\bm{\mathcal{B}})=\mathrm{E}[\bm{\mathcal{B}}\bm{\mathcal{B}}\trans]
+  =\bm T\bm S\mathrm{E}[\bm{\mathcal{U}}\bm{\mathcal{U}}\trans]\bm
+  S\bm T\trans=\sigma^2\bm T\bm S\bm S\bm T\trans=\bm\Sigma .
+\end{displaymath}
+
+The conditional distribution, $\bm{\mathcal{Y}}|\bm{\mathcal{U}}$, can
+be derived from $\bm{\mathcal{Y}}|\bm{\mathcal{B}}$ as
+\begin{equation}
+  \label{eq:YgivenU}
+  \bm{\mathcal{Y}}|\bm{\mathcal{U}}\sim\mathcal{N}\left(\bm X\bm\beta+\bm
+  Z\bm T\bm S\bm u, \sigma^2\bm I\right)
+\end{equation}
+We will write the transpose of $\bm Z\bm T\bm S$ as $\bm A$.  Because
+the matrices $\bm T$ and $\bm S$ depend on the parameter $\bm\theta$,
+$\bm A$ is also a function of $\bm\theta$,
+\begin{equation}
+  \label{eq:Adef}
+  \bm A\trans(\bm\theta)=\bm Z\bm T(\bm\theta)\bm S(\bm\theta) .
+\end{equation}
+
+In applications, the matrix $\bm Z$ is derived from indicator columns
+of the levels of one or more factors in the data and is a
+\emph{sparse} matrix, in the sense that most of its elements are zero.
+The matrix $\bm A$ is also sparse.  In fact, the structure of $\bm T$
+and $\bm S$ are such that pattern of nonzeros in $\bm A$ is that same
+as that in $\bm Z\trans$.
+
+\subsection{Sparse matrix methods}
+\label{sec:sparseMatrix}
+
+The reason for defining $\bm A$ as the transpose of a model matrix is
+because $\bm A$ is stored and manipulated as a sparse matrix.  In the
+compressed column-oriented storage form that we use for sparse
+matrices, there are advantages to storing $\bm A$ as a matrix of $n$
+columns and $q$ rows.  In particular, the CHOLMOD sparse matrix
+library allows us to evaluate the sparse Cholesky factor, $\bm
+L(\bm\theta)$, a sparse lower triangular matrix that satisfies
+\begin{equation}
+  \label{eq:SparseChol}
+  \bm L(\bm\theta)\bm L(\bm\theta)\trans=
+  \bm P\left(\bm A(\bm\theta)\bm A(\bm\theta)\trans+\bm I_q\right)\bm P\trans ,
+\end{equation}
+directly from $\bm A(\bm\theta)$.
+
+In (\ref{eq:SparseChol}) the $q\times q$ matrix $\bm P$ is a
+``fill-reducing'' permutation matrix determined from the pattern of
+nonzeros in $\bm Z$.  $\bm P$ does not affect the statistical theory
+(if $\bm{\mathcal{U}}\sim\mathcal{N}(\bm 0,\sigma^2\bm I)$ then $\bm
+P\trans\bm{\mathcal{U}}$ also has a $\mathcal{N}(\bm 0,\sigma^2\bm I)$
+distribution because $\bm P\bm P\trans=\bm P\trans\bm P=\bm I$) but,
+because it affects the number of nonzeros in $\bm L$, it can have a
+tremendous impact on the amount storage required for $\bm L$ and the
+time required to evaluate $\bm L$ from $\bm A$.  Indeed, it is
+precisely because $\bm L(\bm\theta)$ can be evaluated quickly, even
+for complex models applied the large data sets, that the \code{lmer}
+function is effective in fitting such models.
+
+\section{The penalized least squares approach to linear mixed models}
+\label{sec:Penalized}
+
+Given a value of $\bm\theta$ we form $\bm A(\bm\theta)$ from which we
+evaluate $\bm L(\bm\theta)$.  We can then solve for the $q\times p$
+matrix, $\bm R_{\bm{ZX}}$, in the system of equations
+\begin{equation}
+  \label{eq:RZX}
+  \bm L(\theta)\bm R_{\bm{ZX}}=\bm P\bm A(\bm\theta)\bm X
+\end{equation}
+and for the $p\times p$ upper triangular matrix, $\bm R_{\bm X}$, satisfying
+\begin{equation}
+  \label{eq:RX}
+  \bm R_{\bm X}\trans\bm R_{\bm X}=
+  \bm X\trans\bm X-\bm R_{\bm{ZX}}\trans\bm R_{\bm{ZX}}
+\end{equation}
+
+The conditional mode, $\tilde{\bm u}(\bm\theta)$, of the
+orthogonal random effects and the conditional mle,
+$\widehat{\bm\beta}(\bm\theta)$, of the fixed-effects parameters
+can be determined simultaneously as the solutions to a penalized least
+squares problem,
+\begin{equation}
+  \label{eq:PLS}
+  \begin{bmatrix}
+    \tilde{\bm u}(\bm\theta)\\
+    \widehat{\bm\beta}(\bm\theta)
+  \end{bmatrix}=
+  \arg\min_{\bm u,\bm\beta}\left\|
+    \begin{bmatrix}\bm y\\\bm 0\end{bmatrix} -
+    \begin{bmatrix}
+      \bm A\trans\bm P\trans & \bm X\\
+      \bm I_q & \bm 0
+    \end{bmatrix}
+    \begin{bmatrix}\bm u\\\bm\beta\end{bmatrix} ,
+  \right\|^2
+\end{equation}
+for which the solution satisfies
+\begin{equation}
+  \label{eq:PLSsol}
+  \begin{bmatrix}
+    \bm P\left(\bm A\bm A\trans+\bm I\right)\bm P\trans &
+    \bm P\bm A\bm X\\
+    \bm X\trans\bm A\trans\bm P\trans & \bm X\trans\bm X
+  \end{bmatrix}
+  \begin{bmatrix}
+    \tilde{\bm u}(\bm\theta)\\
+    \widehat{\bm\beta}(\bm\theta)
+  \end{bmatrix}=
+  \begin{bmatrix}\bm P\bm A\bm y\\\bm X\trans\bm y\end{bmatrix} .
+\end{equation}
+The Cholesky factor of the system matrix for the PLS problem can be
+expressed using $\bm L$, $\bm R_{\bm Z\bm X}$ and $\bm R_{\bm X}$, because
+\begin{equation}
+  \label{eq:PLSChol}
+  \begin{bmatrix}
+    \bm P\left(\bm A\bm A\trans+\bm I\right)\bm P\trans & \bm P\bm
+    A\bm X\\
+    \bm X\trans\bm A\trans\bm P\trans & \bm X\trans\bm X
+  \end{bmatrix} =
+  \begin{bmatrix}
+    \bm L & \bm 0\\
+    \bm R_{\bm Z\bm X}\trans & \bm R_{\bm X}\trans
+  \end{bmatrix}
+  \begin{bmatrix}
+    \bm L\trans & \bm R_{\bm Z\bm X}\\
+    \bm 0 & \bm R_{\bm X}
+  \end{bmatrix} .
+\end{equation}
+
+In the \code{lme4} package the \code{"mer"} class is the
+representation of a mixed-effects model.  Several slots in this class
+are matrices corresponding directly to the matrices in the preceding
+equations. The \code{A} slot contains the sparse matrix $\bm
+A(\bm\theta)$ and the \code{L} slot contains the sparse Cholesky
+factor, $\bm L(\bm\theta)$.  The \code{RZX} and \code{RX} slots contain
+$\bm R_{\bm Z\bm X}(\bm\theta)$ and $\bm R_{\bm X}(\bm\theta)$,
+respectively, stored as dense matrices.
+
+It is not necessary to solve for $\tilde{\bm u}(\bm\theta)$ and
+$\widehat{\bm\beta}(\bm\theta)$ to evaluate the \emph{profiled}
+log-likelihood, which is the log-likelihood evaluated $\bm\theta$ and
+the conditional estimates of the other parameters,
+$\widehat{\bm\beta}(\bm\theta)$ and $\widehat{\sigma^2}(\bm\theta)$.
+All that is needed for evaluation of the profiled log-likelihood is
+the (penalized) residual sum of squares, $r^2$, from the penalized
+least squares problem (\ref{eq:PLS}) and the determinant $|\bm A\bm
+A\trans+\bm I|=|\bm L|^2$. Because $\bm L$ is triangular, its
+determinant is easily evaluated as the product
+of its diagonal elements.  Furthermore, $|\bm L|^2 > 0$ because it is
+equal to $|\bm A\bm A\trans + \bm I|$, which is the determinant of a
+positive definite matrix.  Thus $\log(|\bm L|^2)$ is both well-defined
+and easily calculated from $\bm L$.
+
+The profiled deviance (negative twice the profiled log-likelihood), as
+a function of $\bm\theta$ only ($\bm\beta$ and $\sigma^2$ at their
+conditional estimates), is
+\begin{equation}
+  \label{eq:profiledDev}
+  d(\bm\theta|\bm y)=\log(|\bm L|^2)+n\left(1+\log(r^2)+\frac{2\pi}{n}\right)
+\end{equation}
+The maximum likelihood estimates, $\widehat{\bm\theta}$, satisfy
+\begin{equation}
+  \label{eq:thetamle}
+  \widehat{\bm\theta}=\arg\min_{\bm\theta}d(\bm\theta|\bm y)
+\end{equation}
+Once the value of $\widehat{\bm\theta}$ has been determined, the mle
+of $\bm\beta$ is evaluated from (\ref{eq:PLSsol}) and the mle of
+$\sigma^2$ as $\widehat{\sigma^2}(\bm\theta)=r^2/n$.
+
+Note that nothing has been said about the form of the sparse model
+matrix, $\bm Z$, other than the fact that it is sparse.  In contrast
+to other methods for linear mixed models, these results apply to
+models where $\bm Z$ is derived from crossed or partially crossed
+grouping factors, in addition to models with multiple, nested grouping
+factors.
+
+The system (\ref{eq:PLSsol}) is similar to Henderson's ``mixed-model
+equations'' (reference?).  One important difference between
+(\ref{eq:PLSsol}) and Henderson's formulation is that Henderson
+represented his system of equations in terms of $\bm\Sigma^{-1}$ and,
+in important practical examples, $\bm\Sigma^{-1}$ does not exist at
+the parameter estimates.  Also, Henderson assumed that equations like
+(\ref{eq:PLSsol}) would need to be solved explicitly and, as we have
+seen, only the decomposition of the system matrix is needed for
+evaluation of the profiled log-likelihood.  The same is true of the
+profiled the logarithm of the REML criterion, which we define later.
+
+\section{The generalized least squares approach to linear mixed models}
+\label{sec:GLS}
+
+Another common approach to linear mixed models is to derive the
+marginal variance-covariance matrix of $\bm{\mathcal{Y}}$ as a
+function of $\bm\theta$ and use that to determine the conditional
+estimates, $\widehat{\bm\beta}(\bm\theta)$, as the solution of a
+generalized least squares (GLS) problem.  In the notation of
+\S\ref{sec:Definition} the marginal mean of $\bm{\mathcal{Y}}$ is
+$\mathrm{E}[\bm{\mathcal{Y}}]=\bm X\bm\beta$ and the marginal
+variance-covariance matrix is
+\begin{equation}
+  \label{eq:marginalvarcovY}
+  \mathrm{Var}(\bm{\mathcal{Y}})=\sigma^2\left(\bm I_n+\bm Z\bm T\bm
+    S\bm S\bm T\trans\bm Z\trans\right)=\sigma^2\left(\bm I_n+\bm
+    A\trans\bm A\right) =\sigma^2\bm V(\bm\theta) ,
+\end{equation}
+where $\bm V(\bm\theta)=\bm I_n+\bm A\trans\bm A$.
+
+The conditional estimates of $\bm\beta$ are often written as
+\begin{equation}
+  \label{eq:condbeta}
+  \widehat{\bm\beta}(\bm\theta)=\left(\bm X\trans\bm V^{-1}\bm
+    X\right)^{-1}\bm X\trans\bm V^{-1}\bm y
+\end{equation}
+but, of course, this formula is not suitable for computation.  The
+matrix $\bm V(\bm\theta)$ is a symmetric $n\times n$ positive definite
+matrix and hence has a Cholesky factor.  However, this factor is
+$n\times n$, not $q\times q$, and $n$ is always larger than $q$ ---
+sometimes orders of magnitude larger.  Blithely writing a formula in
+terms of $\bm V^{-1}$ when $\bm V$ is $n\times n$, and $n$ can be in
+the millions does not a computational formula make.
+
+\subsection{Relating the GLS approach to the Cholesky factor}
+\label{sec:GLStoL}
+
+We can use the fact that
+\begin{equation}
+  \label{eq:Vinv}
+  \bm V^{-1}(\bm\theta)=\left(\bm I_n+\bm A\trans\bm A\right)^{-1}=
+  \bm I_n-\bm A\trans\left(\bm I_q+\bm A\bm A\trans\right)^{-1}\bm A
+\end{equation}
+to relate the GLS problem to the PLS problem.  One way to establish
+(\ref{eq:Vinv}) is simply to show that the product
+\begin{multline*}
+  (\bm I+\bm A\trans\bm A)\left(\bm I-\bm A\trans\left(\bm I+\bm A\bm
+      A\trans\right)^{-1}\bm A\right)\\
+  \begin{aligned}
+    =&\bm I+\bm A\trans\bm A-\bm A\trans\left(\bm I+\bm A\bm
+      A\trans\right)
+    \left(\bm I+\bm A\bm A\trans\right)^{-1}\bm A\\
+    =&\bm I+\bm A\trans\bm A-\bm A\trans\bm A\\
+    =&\bm I .
+  \end{aligned}
+\end{multline*}
+Incorporating the permutation matrix $\bm P$ we have
+\begin{equation}
+  \label{eq:PLA}
+  \begin{aligned}
+    \bm V^{-1}(\bm\theta)=&\bm I_n-\bm A\trans\bm P\trans\bm P\left(\bm
+      I_q+\bm A\bm A\trans\right)^{-1}\bm P\trans\bm P\bm A\\
+    =&\bm I_n-\bm A\trans\bm P\trans(\bm L\bm L\trans)^{-1}\bm P\bm A\\
+    =&\bm I_n-\left(\bm L^{-1}\bm P\bm A\right)\trans\bm L^{-1}\bm P\bm A .
+  \end{aligned}
+\end{equation}
+Even in this form we would not want to routinely evaluate $\bm
+V^{-1}$.  However, (\ref{eq:PLA}) does allow us to simplify many
+common expressions.
+
+For example, the variance-covariance of the estimator $\widehat{\bm
+  \beta}$, conditional on $\bm\theta$ and $\sigma$, can be expressed as
+\begin{equation}
+  \label{eq:varcovbeta}
+  \begin{aligned}
+  \sigma^2\left(\bm X\trans\bm V^{-1}(\bm\theta)\bm X\right)^{-1}
+  =&\sigma^2\left(\bm X\trans\bm X-\left(\bm L^{-1}\bm P\bm
+      A\bm X\right)\trans\left(\bm L^{-1}\bm P\bm A\bm
+      X\right)\right)^{-1}\\
+  =&\sigma^2\left(\bm X\trans\bm X-\bm R_{\bm Z\bm X}\trans\bm
+    R_{\bm Z\bm X}\right)^{-1}\\
+    =&\sigma^2\left(\bm R_{\bm X}\trans\bm R_{\bm X}\right)^{-1} .
+  \end{aligned}
+\end{equation}
+
+\section{Trace of the ``hat'' matrix}
+\label{sec:hatTrace}
+
+Another calculation that is of interest to some is the
+the trace of the ``hat'' matrix, which can be written as
+\begin{multline}
+  \label{eq:hatTrace}
+  \tr\left(\begin{bmatrix}\bm A\trans&\bm X\end{bmatrix}
+    \left(\begin{bmatrix}\bm A\trans&\bm X\\\bm I&\bm0\end{bmatrix}\trans
+      \begin{bmatrix}\bm A\trans&\bm X\\\bm I&\bm0\end{bmatrix}\right)^{-1}
+    \begin{bmatrix}\bm A\\\bm X\trans\end{bmatrix}\right)\\
+  = \tr\left(\begin{bmatrix}\bm A\trans&\bm X\end{bmatrix}
+    \left(\begin{bmatrix}\bm L&\bm0\\
+        \bm R_{\bm{ZX}}\trans&\bm R_{\bm X}\trans\end{bmatrix}
+      \begin{bmatrix}\bm L\trans&\bm R_{\bm{ZX}}\\
+        \bm0&\bm R_{\bm X}\end{bmatrix}\right)^{-1}
+    \begin{bmatrix}\bm A\\\bm X\trans\end{bmatrix}\right)
+\end{multline}
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmer.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmer.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/doc/lmer.R	(revision 2476)
@@ -0,0 +1,549 @@
+## ----preliminaries,include=FALSE,cache=FALSE,message=FALSE----------
+options(width=70, show.signif.stars=FALSE,
+             str=strOptions(strict.width="cut"),
+             prompt = "R> ", continue = "+  ",
+             useFancyQuotes = FALSE)
+library("knitr")
+library("lme4")
+library("ggplot2")
+theme_set(theme_bw())
+library("grid")
+zmargin <- theme(panel.margin=unit(0,"lines"))
+library("lattice")
+opts_chunk$set(engine='R',dev='pdf',fig.width=9,prompt=TRUE,
+               fig.height=5.5,cache=TRUE,tidy=FALSE,comment=NA)
+
+## ----sleep----------------------------------------------------------
+str(sleepstudy)
+
+## ----sleepPlot,echo=FALSE,fig.scap="Reaction time versus days by subject",fig.cap="Average reaction time versus days of sleep deprivation by subject.  Subjects ordered by increasing slope of subject-specific linear regressions.",fig.align='center',fig.pos='tb'----
+## BMB: seemed more pleasing to arrange by increasing slope rather than
+## intercept ...
+xyplot(Reaction ~ Days | Subject, sleepstudy, aspect = "xy",
+       layout = c(9, 2), type = c("g", "p", "r"),
+       index.cond = function(x, y) coef(lm(y ~ x))[2],
+       xlab = "Days of sleep deprivation",
+       ylab = "Average reaction time (ms)",
+       as.table = TRUE)
+
+## ----outputExample,results="hide"-----------------------------------
+fm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy)
+
+## ----modularExampleFormula, tidy=FALSE, eval=FALSE------------------
+#  parsedFormula <- lFormula(formula = Reaction ~ Days + (Days | Subject),
+#                               data = sleepstudy)
+
+## ----modularExampleObjective, tidy=FALSE, eval=FALSE----------------
+#  devianceFunction <- do.call(mkLmerDevfun, parsedFormula)
+
+## ----modularExampleOptimization, tidy=FALSE, eval=FALSE-------------
+#  optimizerOutput <- optimizeLmer(devianceFunction)
+
+## ----modularExampleOutput, tidy=FALSE, eval=FALSE-------------------
+#  mkMerMod(   rho = environment(devianceFunction),
+#              opt = optimizerOutput,
+#           reTrms = parsedFormula$reTrms,
+#               fr = parsedFormula$fr)
+
+## ----MMformula, eval=FALSE------------------------------------------
+#  resp ~ FEexpr + (REexpr1 | factor1) + (REexpr2 | factor2) + ...
+
+## ----uncorrelatedModel,results="hide"-------------------------------
+fm2 <- lmer(Reaction ~ Days + (Days || Subject), sleepstudy)
+
+## ----setSeed, echo=FALSE--------------------------------------------
+set.seed(2)
+
+## ----factorToSparseMatrix-------------------------------------------
+(f <- gl(3, 2))
+(Ji <- t(as(f, Class = "sparseMatrix")))
+
+## ----rawModelMatrix-------------------------------------------------
+(Xi <- cbind(1, rep.int(c(-1, 1), 3L)))
+
+## ----KhatriRao------------------------------------------------------
+(Zi <- t(KhatriRao(t(Ji), t(Xi))))
+
+## ----sanityCheck, include=FALSE-------------------------------------
+## alternative formulation of Zi (eq:Zi)
+rBind(Ji[1,] %x% Xi[1,],
+      Ji[2,] %x% Xi[2,],
+      Ji[3,] %x% Xi[3,],
+      Ji[4,] %x% Xi[4,],
+      Ji[5,] %x% Xi[5,],
+      Ji[6,] %x% Xi[6,])
+
+## ----nc, echo=FALSE-------------------------------------------------
+nc <- 3
+
+## ----template-------------------------------------------------------
+(rowIndices <- rep(1:nc, 1:nc))
+(colIndices <- sequence(1:nc))
+(template <- sparseMatrix(rowIndices, colIndices,
+                          x = 1 * (rowIndices == colIndices)))
+
+## ----thetaFromTemplate----------------------------------------------
+(theta <- template@x)
+
+## ----thetaSanityCheck, include=FALSE--------------------------------
+lFormula(Reaction ~ (Days + I(Days^2) | Subject), sleepstudy)$reTrms$theta
+
+## ----nl, echo=FALSE-------------------------------------------------
+nl <- 2
+
+## ----relativeCovarianceBlock----------------------------------------
+(Lambdati <- .bdiag(rep(list(t(template)), nl)))
+
+## ----relativeCovarianceBlockIndices---------------------------------
+LindTemplate <- rowIndices + nc * (colIndices - 1) - choose(colIndices, 2)
+(Lind <- rep(LindTemplate, nl))
+
+## ----newTheta-------------------------------------------------------
+thetanew <- round(runif(length(theta)), 1)
+
+## ----relativeCovarianceBlockUpdate----------------------------------
+Lambdati@x <- thetanew[Lind]
+
+## ----PLSupdateTheta, eval = FALSE-----------------------------------
+#  Lambdat@x[] <- mapping(theta)
+
+## ----PLSupdateThetaWithLind-----------------------------------------
+mapping <- function(theta) theta[Lind]
+
+## ----exampleNewTheta------------------------------------------------
+thetanew <- c(1, -0.1, 2, 0.1, -0.2, 3)
+
+## ----exampleLindUpdate----------------------------------------------
+Lambdati@x[] <- mapping(thetanew)
+Lambdati
+
+## ----updateL, eval=FALSE--------------------------------------------
+#  L <- update(L, Lambdat %*% ZtW, mult = 1)
+
+## ----PLSsolve, eval = FALSE-----------------------------------------
+#  cu[] <- as.vector(solve(L, solve(L, Lambdat %*% ZtWy,
+#                                   system = "P"), system = "L"))
+#  RZX[] <- as.vector(solve(L, solve(L, Lambdat %*% ZtWX,
+#                                    system = "P"), system = "L"))
+#  RXtRX <- as(XtWX - crossprod(RZX), "dpoMatrix")
+#  beta[] <- as.vector(solve(RXtRX, XtWy - crossprod(RZX, cu)))
+#  u[] <- as.vector(solve(L, solve(L, cu - RZX %*% beta,
+#                                  system = "Lt"), system = "Pt"))
+#  b[] <- as.vector(crossprod(Lambdat, u))
+
+## ----PLSupdateResp, eval = FALSE------------------------------------
+#  mu[] <- as.vector(crossprod(Zt, b) + X %*% beta + offset)
+#  wtres <- sqrtW * (y - mu)
+
+## ----PLScalculateObjective, eval = FALSE----------------------------
+#  pwrss <- sum(wtres^2) + sum(u^2)
+#  logDet <- 2*determinant(L, logarithm = TRUE)$modulus
+#  if (REML) logDet <- logDet + determinant(RXtRX,
+#                                           logarithm = TRUE)$modulus
+#  attributes(logDet) <- NULL
+#  profDev <- logDet + degFree * (1 + log(2 * pi * pwrss) - log(degFree))
+
+## ----vcovByHand-----------------------------------------------------
+RX <- getME(fm1, "RX")
+sigma2 <- sigma(fm1)^2
+sigma2 * chol2inv(RX)
+
+## ----condVarExample, echo=FALSE, eval=FALSE-------------------------
+#  s2 <- sigma(fm1)^2
+#  Lambdat <- getME(fm1, "Lambdat")
+#  Lambda <- getME(fm1, "Lambda")
+#  Zt <- getME(fm1, "Zt")
+#  Z <- getME(fm1, "Z")
+#  y <- getME(fm1, "y")
+#  X <- getME(fm1, "X")
+#  beta <- getME(fm1, "beta")
+#  L <- getME(fm1, "L")
+#  (V <- crossprod(solve(L, system = "L")))[1:2, 1:2]
+#  (s2 * Lambda %*% V %*% Lambdat)[1:2, 1:2]
+#  attr(ranef(fm1, condVar = TRUE)$Subject, "postVar")[ , , 1] # should be same as Lam %*% V %*% Lamt
+#  (U <- as.vector((V %*% Lambdat %*% Zt %*%  (y - X %*% beta))))
+#  getME(fm1, "u")
+
+## ----updateModel----------------------------------------------------
+fm3 <- update(fm1, . ~ . - (Days | Subject) + (1 | Subject))
+formula(fm3)
+
+## ----summary1,echo=FALSE--------------------------------------------
+ss <- summary(fm1)
+cc <- capture.output(print(ss))
+reRow <- grep("^Random effects", cc)
+cat(cc[1:(reRow - 2)], sep = "\n")
+
+## ----summary1reproduced, eval=FALSE---------------------------------
+#  formula(fm1)
+#  REMLcrit(fm1)
+#  quantile(residuals(fm1, "pearson", scaled = TRUE))
+
+## ----summary2, echo=FALSE-------------------------------------------
+feRow <- grep("^Fixed effects", cc)
+cat(cc[reRow:(feRow - 2)], sep = "\n")
+
+## ----summary2reproduced, eval=FALSE---------------------------------
+#  print(vc <- VarCorr(fm1), comp = c("Variance", "Std.Dev."))
+#  nobs(fm1)
+#  ngrps(fm1)
+#  sigma(fm1)
+
+## ----VarCorr--------------------------------------------------------
+as.data.frame(VarCorr(fm1))
+
+## ----summary3, echo=FALSE-------------------------------------------
+corRow <- grep("^Correlation", cc)
+cat(cc[feRow:(corRow - 2)], sep = "\n")
+
+## ----summary4, echo=FALSE-------------------------------------------
+cat(cc[corRow:length(cc)], sep = "\n")
+
+## ----diagplot1,fig.keep="none"--------------------------------------
+plot(fm1, type = c("p", "smooth"))
+
+## ----diagplot2,fig.keep="none"--------------------------------------
+plot(fm1, sqrt(abs(resid(.))) ~ fitted(.),
+     type = c("p", "smooth"))
+
+## ----diagplot3,fig.keep="none"--------------------------------------
+qqmath(fm1, id = 0.05)
+
+## ----ppsim,results="hide"-------------------------------------------
+iqrvec <- sapply(simulate(fm1, 1000), IQR)
+obsval <- IQR(sleepstudy$Reaction)
+post.pred.p <- mean(obsval >= c(obsval, iqrvec))
+
+## ----anovaQuadraticModel--------------------------------------------
+fm4 <- lmer(Reaction ~ polyDays[ , 1] + polyDays[ , 2] +
+            (polyDays[ , 1] + polyDays[ , 2] | Subject),
+            within(sleepstudy, polyDays <- poly(Days, 2)))
+anova(fm4)
+
+## ----anovaSanityCheck, include=FALSE--------------------------------
+(getME(fm4, "RX")[2, ] %*% getME(fm4, "fixef"))^2
+
+## ----anovaManyModels------------------------------------------------
+anova(fm1, fm2, fm3)
+
+## ----anovaRes,echo=FALSE--------------------------------------------
+fm3ML <- refitML(fm3)
+fm2ML <- refitML(fm2)
+fm1ML <- refitML(fm1)
+ddiff <- deviance(fm3ML) - deviance(fm2ML)
+dp <- pchisq(ddiff, 1, lower.tail = FALSE)
+ddiff2 <- deviance(fm2ML) - deviance(fm1ML)
+
+## ----pvaluesHelp, eval=FALSE----------------------------------------
+#  help("pvalues")
+
+## ----compareCI,echo=FALSE,cache=TRUE,message=FALSE,warning=FALSE----
+ccw <- confint(fm1, method = "Wald")
+ccp <- confint(fm1, method = "profile", oldNames = FALSE)
+ccb <- confint(fm1, method = "boot")
+
+## ----CIqcomp,echo=FALSE,eval=TRUE-----------------------------------
+rtol <- function(x,y) {
+    abs((x - y) / ((x + y) / 2))
+}
+bw <- apply(ccb, 1, diff)
+pw <- apply(ccp, 1, diff)
+mdiffpct <- round(100 * max(rtol(bw, pw)))
+
+## ----CIplot,echo=FALSE,eval=FALSE-----------------------------------
+#  ## obsolete
+#  ## ,fig.cap="Comparison of confidence intervals",fig.scap="CI comparison"
+#  tf <- function(x, method) data.frame(method = method,
+#                 par = rownames(x),
+#                 setNames(as.data.frame(x), c("lwr", "upr")))
+#  cc.all <- do.call(rbind, mapply(tf, list(ccw, ccp, ccb),
+#                                 c("Wald", "profile", "boot"),
+#                       SIMPLIFY = FALSE))
+#  ggplot(cc.all, aes(x = 1, ymin = lwr, ymax = upr, colour = method)) +
+#      geom_linerange(position = position_dodge(width = 0.5)) +
+#      facet_wrap( ~ par, scale = "free") +
+#      theme(axis.text.x = element_blank()) +
+#      labs(x = "")
+
+## ----profile_calc,echo=FALSE,cache=TRUE-----------------------------
+pf <- profile(fm1)
+
+## ----profile_zeta_plot,fig.cap="Profile zeta plot: \\code{xyplot(prof.obj)}",fig.scap="Profile zeta plot",echo=FALSE,fig.align='center',fig.pos='tb'----
+xyplot(pf)
+
+## ----profile_density_plot,fig.cap="Profile density plot: \\code{densityplot(prof.obj)}",echo=FALSE,fig.align='center',fig.pos='tb'----
+densityplot(pf)
+
+## ----profile_pairs_plot,fig.cap="Profile pairs plot: \\code{splom(prof.obj)}",echo=FALSE,fig.height=8,fig.width=8,fig.align='center',fig.pos='htb',out.height='5.5in'----
+splom(pf)
+
+## ----modularSimulationFormula---------------------------------------
+form <- respVar ~ 1 + (explVar1 | groupFac1) + (explVar2 | groupFac2)
+
+## ----modularSimulationInit------------------------------------------
+set.seed(1)
+nGrps <- 50
+
+## ----modularSimulationExpl------------------------------------------
+explVar <- data.frame(explVar1 = rnorm(nGrps^2),
+                      explVar2 = rnorm(nGrps^2))
+
+## ----modularSimulationGroup-----------------------------------------
+groupFac <- expand.grid(groupFac1 = as.factor(1:nGrps),
+                        groupFac2 = as.factor(1:nGrps))
+
+## ----modularSimulationInterSlope------------------------------------
+randomIntercept <- expand.grid(randomIntercept1 = rnorm(nGrps),
+                               randomIntercept2 = rnorm(nGrps))
+rnmdSlope <- expand.grid(randomSlope1 = rnorm(nGrps),
+                         randomSlope2 = rnorm(nGrps)) - randomIntercept
+
+## ----modularSimulationPredictor-------------------------------------
+linearPredictor <- apply(randomIntercept + rnmdSlope * explVar, 1, sum)
+residError <- rnorm(nGrps^2)
+respVar <- residError + linearPredictor
+
+## ----modularSimulationDataFrame-------------------------------------
+dat <- data.frame(respVar, explVar, groupFac)
+head(dat)
+
+## ----homoLmer, echo=FALSE-------------------------------------------
+homoLmer <- function(formula, data, use.mkMerMod = FALSE) {
+    mc <- match.call()
+
+                                        # parse the formula and make
+                                        # two copies
+    lfHetero <- lfHomo <- lFormula(formula = formula, data = data, REML = FALSE)
+                                        # get pRE (number of random
+                                        # effects coefficients per
+                                        # term)...
+    if(length(pRE <- unique(sapply(cnms <- lfHomo$reTrms$cnms, length))) > 1L) {
+        stop("each random effects term must have the same number\n",
+             "of model matrix columns for a homogeneous structure")
+    }
+                                        # and p (number of fixed
+                                        # effects coefficients)
+    p <- ncol(lfHomo$X)
+    nth <- choose(pRE + 1, 2)
+    n_trms <- length(cnms)
+                                        # modify one copy (lfHomo) of the
+                                        # parsed formula
+    lfHomo$reTrms <- within(lfHomo$reTrms, {
+                                        # take only the first three
+                                        # (of six) elements of the
+                                        # covariance parameters,
+                                        # theta, because these will be
+                                        # repeated (to get common
+                                        # covariance structure across
+                                        # random effects terms)
+        theta <- theta[1:nth]
+                                        # match the lower bounds to
+                                        # the new theta
+        lower <- lower[1:nth]
+                                        # adjust the mapping from the
+                                        # new theta to the elements of
+                                        # the relative covariance
+                                        # factor, Lambda
+        Lind <- rep(1:nth, length = length(lfHomo$reTrms$Lambdat@x))
+    })
+
+                                        # fit the modified model
+    devf <- do.call(mkLmerDevfun, lfHomo)
+    opt <- optimizeLmer(devf)
+
+                                        # how to process the output?
+    if(!use.mkMerMod) {
+        return(list(lf = lfHomo, devf = devf, opt = opt))
+    } else {
+
+                                        # distinguish between theta
+                                        # with only the unique
+                                        # elements (thetaUnique) and
+                                        # theta with the unique
+                                        # elements repeated over each
+                                        # term (thetaExpand)
+        thetaUnique <- opt$par
+        thetaExpand <- rep(opt$par, n_trms)
+                                        # construct deviance a
+                                        # function for the heterogeneous
+                                        # model...
+        devfHetero <- do.call(mkLmerDevfun, lfHetero)
+                                        # ...and install the expanded
+                                        # covariance parameters from
+                                        # the optimized homogeneous
+                                        # model, into the opt object
+                                        # and the environment of the
+                                        # heterogeneous model deviance
+                                        # function...
+        devfHetero(opt$par <- thetaExpand)
+                                        # ...and creating the final
+                                        # merMod object with identical
+                                        # random effects parameters
+                                        # for both random effects
+                                        # terms
+        mod <- mkMerMod(environment(devfHetero), opt, lfHetero$reTrms, lfHetero$fr)
+
+                                        # extend the glmerMod class
+                                        # and return
+        modList <- setNames(lapply(slotNames(mod), slot, object = mod), slotNames(mod))
+        makeFakeCall <- function() return(match.call()) # hack to keep
+                                                    # "new" from
+                                                    # trying to
+                                                    # evaluate the
+                                                    # call...
+        modList$call <- makeFakeCall()
+        modCallList <- c(list(Class = "homoLmerMod"),
+                         list(thetaUnique = thetaUnique),
+                         modList)
+        modOut <- do.call("new", modCallList)
+                                        # ... complete the "call" hack
+                                        # by putting the real matched
+                                        # call back before returning
+        modOut@call <- mc
+        return(modOut)
+    }
+}
+
+## ----homoLmerArguments, eval=FALSE----------------------------------
+#  homoLmer <- function(formula, data, use.mkMerMod = FALSE) {}
+
+## ----homoLmerMatchCallAndParseFormula, eval=FALSE-------------------
+#  mc <- match.call()
+#  lfHetero <- lfHomo <- lFormula(formula = formula, data = data, REML = FALSE)
+
+## ----homoLmerCheck, eval=FALSE--------------------------------------
+#  if(length(pRE <- unique(sapply(cnms <- lfHomo$reTrms$cnms, length))) > 1L) {
+#      stop("each random effects term must have the same number\n",
+#           "of model matrix columns for a homogeneous structure")
+#  }
+
+## ----homoLmerDimensions, eval=FALSE---------------------------------
+#  p <- ncol(lfHomo$X)
+#  nth <- choose(pRE + 1, 2)
+#  n_trms <- length(cnms)
+
+## ----homoLmerAdjust, eval=FALSE-------------------------------------
+#  lfHomo$reTrms <- within(lfHomo$reTrms, {
+#      theta <- theta[1:nth]
+#      lower <- lower[1:nth]
+#      Lind <- rep(1:nth, length = length(lfHomo$reTrms$Lambdat@x))
+#  })
+
+## ----homoLmerFitModifiedModel, eval=FALSE---------------------------
+#  devf <- do.call(mkLmerDevfun, lfHomo)
+#  opt <- optimizeLmer(devf)
+
+## ----homoLmerReturnRaw, eval=FALSE----------------------------------
+#  if(!use.mkMerMod) {
+#      return(list(lf = lfHomo, devf = devf, opt = opt))
+#  }
+
+## ----homoLmerReExpandTheta, eval=FALSE------------------------------
+#  th <- rep(opt$par, n_trms)
+
+## ----unmodDevfun, eval=FALSE----------------------------------------
+#  devf0 <- do.call(mkLmerDevfun, lfHetero)
+
+## ----installDevfun, eval=FALSE--------------------------------------
+#  devf0(opt$par <- th)
+
+## ----extendMerMod---------------------------------------------------
+setClass("homoLmerMod", representation(thetaUnique = "numeric"),
+         contains = "lmerMod")
+
+## ----redefineOutputModuleMethods------------------------------------
+logLik.homoLmerMod <- function(object, ...) {
+    ll <- lme4:::logLik.merMod(object, ...)
+    attr(ll, "df") <- length(object@beta) +
+        length(object@thetaUnique) +
+            object@devcomp[["dims"]][["useSc"]]
+    return(ll)
+}
+refitML.homoLmerMod <- function(object, newresp, ...) {
+    if(!isREML(object) && missing(newresp)) return(object)
+    stop("can't refit homoLmerMod objects yet")
+}
+
+## ----homoLmerFit----------------------------------------------------
+mod <- homoLmer(form, dat, use.mkMerMod = TRUE)
+summary(mod)
+
+## ----homoParse------------------------------------------------------
+parsedFormula <- lFormula(formula = Reaction ~ Days + (Days | Subject),
+                          data = sleepstudy)
+
+## ----homoWithin-----------------------------------------------------
+parsedFormula$reTrms <- within(parsedFormula$reTrms, {
+    q <- nrow(Lambdat)
+    Lind <- rep(1, q)
+    Lambdat <- sparseMatrix(1:q, 1:q, x = Lind)
+    theta <- 1
+})
+
+## ----homoFitting----------------------------------------------------
+devianceFunction <- do.call(mkLmerDevfun, parsedFormula)
+optimizerOutput <- optimizeLmer(devianceFunction)
+
+## ----homoMkMerMod---------------------------------------------------
+mkMerMod(   rho = environment(devianceFunction),
+            opt = optimizerOutput,
+         reTrms = parsedFormula$reTrms,
+             fr = parsedFormula$fr)
+
+## ----homoModifiedProcessing-----------------------------------------
+with(environment(devianceFunction), {
+    n <- length(resp$y)
+    p <- length(pp$beta0)
+    pwrss <- resp$wrss() + pp$sqrL(1)
+    sig <- sqrt(pwrss/(n-p))
+    c(Residual = sig, Subject = sig*pp$theta)
+})
+
+## ----simulateSplineData,message=FALSE-------------------------------
+library("splines")
+set.seed(1)
+n <- 100
+pSimulation <- 3
+pStatistical <- 8
+x <- rnorm(n)
+Bsimulation <- ns(x, pSimulation)
+Bstatistical <- ns(x, pStatistical)
+beta <- rnorm(pSimulation)
+y <- as.numeric(Bsimulation %*% beta + rnorm(n, sd = 0.3))
+
+## ----splineExampleDataPlot, fig.width=4, fig.height=3,fig.align="center"----
+par(mar = c(4, 4, 1, 1), las = 1, bty = "l")
+plot(x, y, las = 1)
+lines(x[order(x)], (Bsimulation %*% beta)[order(x)])
+
+## ----splineExampleApproximateFormula--------------------------------
+pseudoGroups <- as.factor(rep(1:pStatistical, length = n))
+parsedFormula <- lFormula(y ~ x + (1 | pseudoGroups))
+
+## ----splineExampleModifyZt------------------------------------------
+parsedFormula$reTrms <- within(parsedFormula$reTrms, {
+    Bt <- t(as.matrix(Bstatistical))[]
+    cnms$pseudoGroups <- "spline"
+    Zt <- as(Bt, class(Zt))
+})
+
+## ----splineExampleRemainingModularSteps-----------------------------
+devianceFunction <- do.call(mkLmerDevfun, parsedFormula)
+optimizerOutput <- optimizeLmer(devianceFunction)
+mSpline <- mkMerMod(   rho = environment(devianceFunction),
+                       opt = optimizerOutput,
+                    reTrms = parsedFormula$reTrms,
+                        fr = parsedFormula$fr)
+mSpline
+
+## ----splineExampleFittedModelPlot, fig.width=4, fig.height=3, fig.align="center"----
+xNew <- seq(min(x), max(x), length = 100)
+newBstatistical <- predict(Bstatistical, xNew)
+yHat <-   cbind(1, xNew) %*% getME(mSpline, "fixef") +
+        newBstatistical %*% getME(mSpline, "u")
+par(mar = c(4, 4, 1, 1), las = 1, bty = "l")
+plot(x, y)
+lines(xNew, yHat)
+lines(x[order(x)], (Bsimulation %*% beta)[order(x)],lty = 2)
+legend("topright", bty = "n", c("fitted", "generating"), lty = 1:2,col = 1)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/INDEX	(revision 2476)
@@ -0,0 +1,104 @@
+.prt.methTit            Print and Summary Method Utilities for Mixed
+                        Effects
+Arabidopsis             Arabidopsis clipping/fertilization data
+Dyestuff                Yield of dyestuff by batch
+GHrule                  Univariate Gauss-Hermite quadrature rule
+GQdk                    Sparse Gaussian / Gauss-Hermite Quadrature grid
+InstEval                University Lecture/Instructor Evaluations by
+                        Students at ETH
+NelderMead-class        Class '"NelderMead"' of Nelder-Mead optimizers
+                        and its Generator
+Nelder_Mead             Nelder-Mead Optimization of Parameters,
+                        Possibly (Box) Constrained
+Pastes                  Paste strength by batch and cask
+Penicillin              Variation in penicillin testing
+VarCorr                 Extract Variance and Correlation Components
+VerbAgg                 Verbal Aggression item responses
+bootMer                 Model-based (Semi-)Parametric Bootstrap for
+                        Mixed Models
+cake                    Breakage Angle of Chocolate Cakes
+cbpp                    Contagious bovine pleuropneumonia
+confint.merMod          Compute Confidence Intervals for Parameters of
+                        a [ng]lmer Fit
+convergence             Assessing Convergence for Fitted Models
+devcomp                 Extract the deviance component list
+drop1.merMod            Drop all possible single fixed-effect terms
+                        from a mixed effect model
+dummy                   Dummy variables (experimental)
+expandDoubleVerts       Expand terms with "||" notation into separate
+                        "|" terms
+factorize               Attempt to convert grouping variables to
+                        factors
+findbars                Determine random-effects expressions from a
+                        formula
+fixef                   Extract fixed-effects estimates
+fortify                 add information to data based on a fitted model
+getME                   Extract or Get Generalized Components from a
+                        Fitted Mixed Effects Model
+glmFamily               Generator object for the 'glmFamily' class
+glmFamily-class         Class '"glmFamily"' - a reference class for
+                        'family'
+glmer                   Fitting Generalized Linear Mixed-Effects Models
+glmer.nb                Fitting Negative Binomial GLMMs
+glmerLaplaceHandle      Handle for 'glmerLaplace'
+golden-class            Class '"golden"' and Generator for Golden
+                        Search Optimizer Class
+grouseticks             Data on red grouse ticks from Elston et al.
+                        2001
+hatvalues.merMod        Diagonal elements of the hat matrix
+isNested                Is f1 nested within f2?
+isREML                  Check characteristics of models
+lmList                  Fit List of lm Objects with a Common Model
+lmList4-class           Class "lmList4" of 'lm' Objects on Common Model
+lmResp                  Generator objects for the response classes
+lmResp-class            Reference Classes for Response Modules,
+                        '"(lm|glm|nls|lmer)Resp"'
+lme4-package            Linear, generalized linear, and nonlinear mixed
+                        models
+lmer                    Fit Linear Mixed-Effects Models
+lmerControl             Control of Mixed Model Fitting
+merMod-class            Class "merMod" of Fitted Mixed-Effect Models
+merPredD                Generator object for the 'merPredD' class
+merPredD-class          Class '"merPredD"' - a Dense Predictor
+                        Reference Class
+mkMerMod                Create a 'merMod' Object
+mkParsTemplate          Make templates suitable for guiding mixed model
+                        simulations
+mkReTrms                Make Random Effect Terms: Create Z, Lambda,
+                        Lind, etc.
+mkRespMod               Create an lmerResp, glmResp or nlsResp instance
+mkVarCorr               Make Variance and Correlation Matrices from
+                        'theta'
+mkdevfun                Create Deviance Evaluation Function from
+                        Predictor and Response Module
+modular                 Modular Functions for Mixed Model Fits
+ngrps                   Number of Levels of a Factor or a "merMod"
+                        Model
+nlformula               Manipulate a Nonlinear Model Formula
+nlmer                   Fitting Nonlinear Mixed-Effects Models
+nloptwrap               Wrappers for additional optimizers
+nobars                  Omit terms separated by vertical bars in a
+                        formula
+plot.lmList4            plots for lmList4 objects
+plot.merMod             diagnostic plots for merMod fits
+predict.merMod          Predictions from a model at new data values
+profile-methods         Profile method for merMod objects
+pvalues                 Getting p-values for fitted models
+ranef                   Extract the modes of the random effects
+rePos                   Generator object for the rePos (random-effects
+                        positions) class
+rePos-class             Class '"rePos"'
+refit                   Refit a (merMod) Model with a Different
+                        Response
+refitML                 Refit a Model by Maximum Likelihood Criterion
+residuals.merMod        residuals of merMod objects
+sigma                   Extract Residual Standard Deviation 'Sigma'
+simulate.merMod         Simulate Responses From 'merMod' Object
+sleepstudy              Reaction times in a sleep deprivation study
+subbars                 "Sub[stitute] Bars"
+troubleshooting         Troubleshooting
+varianceProf            Transform Profile to the variance scale
+vcconv                  Convert between representations of
+                        (co-)variance structures
+xyplot.thpr             Mixed-Effects Profile Plots (Regular / Density
+                        / Pairs)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/help/lme4.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/help/lme4.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/help/lme4.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/help/lme4.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/help/AnIndex	(revision 2476)
@@ -0,0 +1,191 @@
+lme4-package	lme4-package
+.makeCC	lmerControl
+.prt.aictab	utilities
+.prt.call	utilities
+.prt.family	utilities
+.prt.grps	utilities
+.prt.methTit	utilities
+.prt.resids	utilities
+.prt.VC	utilities
+.prt.warn	utilities
+.simulateFun	simulate.merMod
+anova.merMod	merMod-class
+Arabidopsis	Arabidopsis
+as.data.frame.thpr	profile-methods
+as.data.frame.VarCorr.merMod	VarCorr
+as.function.merMod	merMod-class
+bootMer	bootMer
+cake	cake
+cbpp	cbpp
+coef.merMod	merMod-class
+confint.merMod	confint.merMod
+convergence	convergence
+cov2sdcor	vcconv
+Cv_to_Sv	vcconv
+Cv_to_Vv	vcconv
+densityplot.thpr	plots.thpr
+devcomp	devcomp
+deviance.merMod	merMod-class
+df.residual.merMod	merMod-class
+dotplot.ranef.mer	ranef
+drop1.merMod	drop1.merMod
+dummy	dummy
+Dyestuff	Dyestuff
+Dyestuff2	Dyestuff
+expandDoubleVerts	expandDoubleVerts
+extractAIC.merMod	merMod-class
+factorize	factorize
+family.merMod	merMod-class
+findbars	findbars
+fitted.merMod	merMod-class
+fixed.effects	fixef
+fixef	fixef
+fixef.merMod	fixef
+formatVC	utilities
+formula.merMod	merMod-class
+fortify	fortify
+fortify.merMod	fortify
+getL	getME
+getL,merMod-method	getME
+getME	getME
+getME.merMod	getME
+GHrule	GHrule
+glFormula	modular
+glmer	glmer
+glmer.nb	glmer.nb
+glmerControl	lmerControl
+glmerLaplaceHandle	glmerLaplaceHandle
+glmerMod-class	merMod-class
+glmFamily	glmFamily
+glmFamily-class	glmFamily-class
+glmResp	lmResp
+glmResp-class	lmResp-class
+golden	golden-class
+golden-class	golden-class
+GQdk	GQdk
+GQN	GQdk
+grouseticks	grouseticks
+grouseticks_agg	grouseticks
+hatvalues.merMod	hatvalues.merMod
+InstEval	InstEval
+isGLMM	isREML
+isGLMM.merMod	isREML
+isLMM	isREML
+isLMM.merMod	isREML
+isNested	isNested
+isNLMM	isREML
+isNLMM.merMod	isREML
+isREML	isREML
+isREML.merMod	isREML
+lFormula	modular
+llikAIC	utilities
+lme4	lme4-package
+lmer	lmer
+lmerControl	lmerControl
+lmerMod-class	merMod-class
+lmerResp	lmResp
+lmerResp-class	lmResp-class
+lmList	lmList
+lmList4-class	lmList4-class
+lmResp	lmResp
+lmResp-class	lmResp-class
+log.thpr	profile-methods
+logLik.merMod	merMod-class
+logProf	profile-methods
+mcmcsamp	pvalues
+merMod	merMod-class
+merMod-class	merMod-class
+merPredD	merPredD
+merPredD-class	merPredD-class
+methTitle	utilities
+mkDataTemplate	mkSimulationTemplate
+mkdevfun	mkdevfun
+mkGlmerDevfun	modular
+mkLmerDevfun	modular
+mkMerMod	mkMerMod
+mkParsTemplate	mkSimulationTemplate
+mkRespMod	mkRespMod
+mkReTrms	mkReTrms
+mkVarCorr	mkVarCorr
+mlist2vec	vcconv
+model.frame.merMod	merMod-class
+model.matrix.merMod	merMod-class
+modular	modular
+negative.binomial	glmer.nb
+NelderMead	NelderMead-class
+NelderMead-class	NelderMead-class
+Nelder_Mead	Nelder_Mead
+ngrps	ngrps
+ngrps.merMod	merMod-class
+nlformula	nlformula
+nlmer	nlmer
+nlmerControl	lmerControl
+nlmerMod-class	merMod-class
+nlminbwrap	nloptwrap
+nloptwrap	nloptwrap
+nlsResp	lmResp
+nlsResp-class	lmResp-class
+nobars	nobars
+nobs	merMod-class
+nobs.merMod	merMod-class
+optimizeGlmer	modular
+optimizeLmer	modular
+Pastes	Pastes
+Penicillin	Penicillin
+plot.lmList	lmList
+plot.lmList4	plot.lmList4
+plot.lmList4.confint	plot.lmList4
+plot.merMod	plot.merMod
+predict.merMod	predict.merMod
+print.merMod	merMod-class
+print.summary.merMod	merMod-class
+print.VarCorr.merMod	VarCorr
+profile-methods	profile-methods
+profile.merMod	profile-methods
+pvalues	pvalues
+qqmath.merMod	plot.merMod
+qqmath.ranef.mer	ranef
+ranef	ranef
+ranef.merMod	ranef
+refit	refit
+refit.merMod	refit
+refitML	refitML
+refitML.merMod	refitML
+REMLcrit	merMod-class
+rePos	rePos
+rePos-class	rePos-class
+residuals.glmResp	residuals.merMod
+residuals.lmResp	residuals.merMod
+residuals.merMod	residuals.merMod
+sdcor2cov	vcconv
+show,lmList4-method	lmList4-class
+show,merMod-method	merMod-class
+show.merMod	merMod-class
+show.summary.merMod	merMod-class
+sigma	sigma
+sigma.merMod	sigma
+simulate.formula	simulate.merMod
+simulate.merMod	simulate.merMod
+sleepstudy	sleepstudy
+splom.thpr	plots.thpr
+subbars	subbars
+summary.merMod	merMod-class
+summary.summary.merMod	merMod-class
+Sv_to_Cv	vcconv
+terms.merMod	merMod-class
+troubleshooting	troubleshooting
+update.merMod	merMod-class
+updateGlmerDevfun	modular
+VarCorr	VarCorr
+VarCorr.merMod	VarCorr
+varianceProf	varianceProf
+vcconv	vcconv
+vcov.merMod	merMod-class
+vcov.summary.merMod	merMod-class
+vec2mlist	vcconv
+vec2STlist	vcconv
+VerbAgg	VerbAgg
+Vv_to_Cv	vcconv
+weights.merMod	merMod-class
+xyplot.thpr	plots.thpr
+||	expandDoubleVerts
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/data/Rdata.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/data/Rdata.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/data/Rdata.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/data/Rdata.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/data/Rdata.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/data/Rdata.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/libs/lme4.so.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/libs/lme4.so.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/libs/lme4.so.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.lme4.so</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/libs/lme4.so.dSYM/Contents/Resources/DWARF/lme4.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/libs/lme4.so.dSYM/Contents/Resources/DWARF/lme4.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/libs/lme4.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/libs/lme4.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/dat20101314.csv
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/dat20101314.csv	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/dat20101314.csv	(revision 2476)
@@ -0,0 +1,46 @@
+"","Operator","Part","y"
+"1","A","P1",1.98353608160299
+"2","A","P1",2.00732095292274
+"3","A","P2",3.0749991860642
+"4","A","P2",3.10873748962838
+"5","A","P3",3.10259147754259
+"6","A","P3",3.1218519017369
+"7","H","P1",1.98645821273731
+"8","H","P1",1.98245215138499
+"9","H","P2",3.05996458578668
+"10","H","P2",3.08242270866658
+"11","H","P3",3.07070635017356
+"12","H","P3",3.04616336618396
+"13","B","P1",2.01140125992474
+"14","B","P2",3.16219985241226
+"15","B","P3",3.17248908910763
+"16","I","P1",2.02958667163046
+"17","I","P1",2.03750617769168
+"18","I","P2",3.10722354113837
+"19","I","P2",3.14463646758849
+"20","I","P3",3.14980086225833
+"21","I","P3",3.14796987608195
+"22","C","P1",2.0111473607758
+"23","C","P1",2.04559677186758
+"24","C","P2",3.13151922069791
+"25","C","P2",3.17781632049401
+"26","C","P3",3.11138686811249
+"27","C","P3",3.1244031385292
+"28","J","P1",2.06213053462212
+"29","J","P1",2.04785872740746
+"30","J","P2",3.12921603371435
+"31","J","P2",3.08574354980366
+"32","J","P3",3.11093297024656
+"33","J","P3",3.10771861052026
+"34","D","P1",1.9903388547876
+"35","D","P1",1.9778607292647
+"36","D","P2",3.05476621783899
+"37","D","P2",3.08762882022979
+"38","D","P3",3.06490702715964
+"39","D","P3",3.0651276340067
+"40","K","P1",1.96350449941429
+"41","K","P1",1.98851436583367
+"42","K","P2",3.06846787597901
+"43","K","P2",3.085126393163
+"44","K","P3",3.05210884681015
+"45","K","P3",3.05642838998105
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/crabs_randdata2.Rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/crabs_randdata2.Rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/lme-tst-fits.Rout
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/lme-tst-fits.Rout	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/lme-tst-fits.Rout	(revision 2476)
@@ -0,0 +1,70 @@
+
+R Under development (unstable) (2013-09-09 r63889) -- "Unsuffered Consequences"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+  Natural language support but running in an English locale
+
+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.
+
+> #### Saved fits for lme4 testing
+> ####  ----------------------------------
+> fn <- system.file("testdata/lme-tst-fits.rda", package="lme4", mustWork=TRUE)
+> if(FALSE) ### "Load" these by
++     load(fn)
+> 
+> library(lme4)
+Loading required package: lattice
+Loading required package: Matrix
+> ## intercept only in both fixed and random effects
+> fit_sleepstudy_0 <- lmer(Reaction ~ 1 + (1|Subject), sleepstudy)
+> ## fixed slope, intercept-only RE
+> fit_sleepstudy_1 <- lmer(Reaction ~ Days + (1|Subject), sleepstudy)
+> ## fixed slope, intercept & slope RE
+> fit_sleepstudy_2 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
+> ## fixed slope, independent intercept & slope RE
+> fit_sleepstudy_3 <- lmer(Reaction ~ Days + (1|Subject)+
++                          (0+Days|Subject), sleepstudy)
+> 
+> save(list=ls(pattern="fit_sleepstudy"),file="lme-tst-fits.rda")
+> 
+> load("lme-tst-fits.rda")
+> cbpp$obs <- factor(seq(nrow(cbpp)))
+> fit_cbpp_0 <- glmer(cbind(incidence,size-incidence) ~ 1 + (1|herd),
++                     cbpp, family=binomial)
+> fit_cbpp_1 <- update(fit_cbpp_0, . ~ . + period)
+> fit_cbpp_2 <- update(fit_cbpp_1, . ~ . + (1|obs))
+> fit_cbpp_3 <- update(fit_cbpp_0,
++                      formula=incidence/size ~ period + (1 | herd),
++                      weights=size)
+> save(list=ls(pattern="fit_"),file="lme-tst-fits.rda")
+> 
+> ## an example with >20 fixed effects:
+> if (require(agridat)) {
++     dat <- archbold.apple
++     ## Define main plot and subplot
++     dat <- transform(dat, rep=factor(rep),
++                      spacing=factor(spacing), trt=factor(trt),
++                      mp = factor(paste(row,spacing,sep="")),
++                      sp = factor(paste(row,spacing,stock,sep="")))
++     fit_agridat_archbold <- lmer(yield ~ -1 + trt + (1|rep/mp/sp), dat)
++     save(list=ls(pattern="fit_"),file="lme-tst-fits.rda")
++ }
+Loading required package: agridat
+Loading required package: grid
+Loading required package: reshape2
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  5.108   3.640   9.811 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/lme-tst-fits.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/lme-tst-fits.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/lme-tst-fits.R	(revision 2476)
@@ -0,0 +1,79 @@
+#### Saved fits for lme4 testing
+####  ----------------------------------
+fn <- system.file("testdata", (fn0 <- "lme-tst-fits.rda"),
+                  package="lme4", mustWork=TRUE)
+if(FALSE) ### "Load" these by  load(fn)
+    ## or "better"
+    attach(fn)
+
+library(lme4)
+str(packageDescription("lme4")[c("Version", "Packaged", "Built")])
+
+## intercept only in both fixed and random effects
+fit_sleepstudy_0 <- lmer(Reaction ~ 1 + (1|Subject), sleepstudy)
+## fixed slope, intercept-only RE
+fit_sleepstudy_1 <- lmer(Reaction ~ Days + (1|Subject), sleepstudy)
+## fixed slope, intercept & slope RE
+fit_sleepstudy_2 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
+## fixed slope, independent intercept & slope RE
+fit_sleepstudy_3 <- lmer(Reaction ~ Days + (1|Subject)+ (0+Days|Subject), sleepstudy)
+
+cbpp$obs <- factor(seq(nrow(cbpp)))
+## intercept-only fixed effect
+fit_cbpp_0 <- glmer(cbind(incidence, size-incidence) ~ 1 + (1|herd),
+                    cbpp, family=binomial)
+## include fixed effect of period
+fit_cbpp_1 <- update(fit_cbpp_0, . ~ . + period)
+## include observation-level RE
+fit_cbpp_2 <- update(fit_cbpp_1, . ~ . + (1|obs))
+## specify formula by proportion/weights instead
+fit_cbpp_3 <- update(fit_cbpp_1, incidence/size ~ period + (1 | herd), weights = size)
+
+## an example with >20 fixed effects (for testing print.summary.merMod)
+if (require(agridat)) {
+    ## Define main plot and subplot
+    d.apple.agridat <- transform(archbold.apple, rep=factor(rep),
+                                 spacing=factor(spacing), trt=factor(trt),
+                                 mp = factor(paste0(row,spacing)),
+                                 sp = factor(paste0(row,spacing,stock)))
+    fit_agridat_archbold <- lmer(yield ~ -1 + trt + (1|rep/mp/sp), d.apple.agridat)
+    to.save <- "d.apple.agridat"
+} else
+    to.save <- character()
+
+##
+data("Pixel", package="nlme")
+fit_Pix.full <- lmer(pixel ~ day + I(day^2) + (day | Dog) + (1 | Side/Dog),
+                     data = Pixel)
+fit_Pix.1Dog <- lmer(pixel ~ day + I(day^2) +   (1 | Dog) + (1 | Side/Dog),
+                     data = Pixel)
+fit_Pix.noD  <- update(fit_Pix.1Dog, .~. - (1 | Dog))
+anova(fit_Pix.full,
+      fit_Pix.1Dog,
+      fit_Pix.noD)
+
+## Warnings about non-monotonic profile (and more):
+options(warn=1) # print as they happen {interspersed in verbose profile() msgs}:
+system.time(prof.fit_Pix.f <- profile(fit_Pix.full, verbose=1))
+## ~ 90 sec on nb-mm4 [i7-5600U, 2015]
+
+signif(confint(prof.fit_Pix.f), digits=3)
+## Results in Nov.2014: -- now .sig03 now shows [-1, 1]
+##              2.5 % 97.5 %
+## .sig01      10.449 28.909
+## .sig02      12.951 48.203
+## .sig03          NA     NA <<
+## .sig04       1.073  3.066
+## .sig05       0.000 27.794
+## .sigma       7.651 10.592
+## (Intercept)     NA     NA <<
+## day             NA     NA <<
+## I(day^2)    -0.434 -0.298
+
+try( ## FIXME --> ../../R/profile.R  [FIXME: show plots for the *valid* parts!]
+lattice::xyplot(prof.fit_Pix.f)
+) ## FIXME: Error is ok, but error *message* is unhelpful
+## Error in approx(bspl$x, bspl$y, xout = zeta) :
+##   need at least two non-NA values to interpolate
+
+save(list=c(to.save, ls(pattern="fit_")), file=fn0)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/SO_sep25.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/SO_sep25.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/lme-tst-funs.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/lme-tst-funs.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/lme-tst-funs.R	(revision 2476)
@@ -0,0 +1,93 @@
+####  Utility Functions for lme4 Testing
+####  ----------------------------------
+if(FALSE) ### "Load" these by
+    source(system.file("testdata", "lme-tst-funs.R", package="lme4", mustWork=TRUE))
+## e.g. from ../../tests/glmmWeights.R
+
+##' example originally from Gabor Grothendieck
+##' https://stat.ethz.ch/pipermail/r-sig-mixed-models/2010q2/003726.html
+##'
+##' @title Simple LMM with 1 ran.eff., 1 fixed eff.
+rSim.11 <- function(n, k, sigma=1, beta=2) {
+    stopifnot(length(n) == 1, length(k) == 1, n > k, k >= 1, k == round(k))
+    x <- 1:n
+    fac <- gl(k, 1, n)
+    fac.eff <- rnorm(k, 0, 4)[fac]
+    e <- rnorm(n, sd=sigma)
+    data.frame(x, fac,
+               y = 1 + beta * x + fac.eff + e)
+}
+
+##' General GLMM simulation  for the model   y ~ x + (1|block)
+##' i.e. (2-way notation)   Y_{ij} = \beta_1 + \beta_2 x_{ij} +  B_j,
+##'                                  i = 1..nperblk,  j = 1..nblk
+gSim <- function(nblk=26,
+                 nperblk=100,
+                 sigma=1,    ## st.dev. of ran.eff  B
+                 beta=c(4,3),
+                 x = runif(n),## sd = sqrt(1/12) = 0.2887; allow also x=c(0,1)
+                 shape=2,    ## shape parameter for Gamma
+                 nbinom=10,  ## N for binomial trials
+                 family=Gamma())
+{
+    stopifnot(nblk <= 1e7, nblk * nperblk <= 5e7) # some sanity ..
+    ## ch.set: a large enough set of "letters", as level-labels for 'block':
+    nc <- length(ch.set <- c(LETTERS, letters,
+                             paste0(LETTERS,LETTERS), paste0(LETTERS,letters)))
+    while(nblk > nc) nc <-
+	length(ch.set <- c(paste0(ch.set, LETTERS),
+			   paste0(ch.set, letters)))
+    stopifnot(1 <= nblk, nblk <= length(ch.set))
+    d <- expand.grid(block = ch.set[1:nblk],
+                     rep= 1:nperblk, KEEP.OUT.ATTRS=FALSE)
+    stopifnot(nblk == length(levels(d$block)),
+              (n <- nrow(d)) == nblk * nperblk, length(x) == n, length(beta) == 2)
+    d$ x <- x
+    reff_f <- rnorm(nblk, sd=sigma)
+    ## need intercept large enough to avoid negative values
+    d$ eta0 <- beta[1] + beta[2]*x  ## fixed effects only
+    d$ eta  <- d$eta0 + reff_f[d$block]
+    d$ mu   <- family$linkinv(d$eta)
+    d$ y <- switch(family$family,
+                   "Gamma" = rgamma(n,scale=d$mu/shape,shape=shape),
+                   "poisson" = rpois(n,d$mu),
+		   "binomial"= {
+		       z <- rbinom(n, prob=d$mu, size=nbinom)
+		       if (nbinom==1) z else cbind(succ = z, fail = nbinom-z)
+		   },
+                   stop("Family ", family$family, " not supported here"))
+    d
+}
+
+### For Model comparisons
+
+## a version of getME() that can be used for objects, both from lme4.0 or lme4
+gimME <- function(mod, nm, is.mer = is(mod,"mer"))
+    if(is.mer) lme4.0::getME(mod,nm) else lme4::getME(mod,nm)
+
+##' @title All Coefficients of fitted  (G)LMM model
+##' @param mod a fitted (G)LMM model from pkg lme4.0 or lme4
+##' @param incl.t logical, indicating if 'beta' should include std.errors and t-values
+##' @return named vector of coefficients [ beta | theta | sigma ]
+##' @author Martin Maechler
+allcoefs <- function(mod, incl.t = FALSE) {
+    iMer <- is(mod, "mer")
+    sigmaF <- {
+	if (iMer) lme4.0::sigma else if(getRversion() >= "3.3.0")
+	    stats::sigma else lme4::sigma
+    }
+    ## incl.t: rather also the std.err., t-values:
+    c(beta = if(incl.t) coef(summary(mod)) else gimME(mod, "beta", iMer),
+      gimME(mod,"theta", iMer),# have their own names
+      sigma = sigmaF(mod))
+}
+
+##' S3 method but also works for lme4.0:
+all.equal.merMod <- function(target, current, incl.t=FALSE, ...) {
+    all.equal(allcoefs(target,  incl.t),
+              allcoefs(current, incl.t), ...)
+}
+
+##' some optimizer info
+isOptimized <- function(mod) mod@optinfo[["conv"]][["opt"]] == 0
+baseOpti <- function(mod) mod@optinfo[c("optimizer", "conv","feval")]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/koller-data.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/koller-data.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/koller-data.R	(revision 2476)
@@ -0,0 +1,203 @@
+## pre-3.0 compatibility
+if (!exists("rep_len")) rep_len <- function(x, length.out) {
+    rep(x,length.out=length.out)
+}
+
+getData <- local({
+
+data <- structure(list(Var1 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
+                       1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L),
+                       .Label = "i", class = "factor"), 
+                       Var2 = structure(c(1L, 2L, 3L, 4L, 6L, 7L, 8L, 9L, 5L, 10L, 
+                       11L, 12L, 13L, 14L, 16L, 17L, 18L, 19L, 15L, 20L, 1L, 2L, 
+                       3L, 4L, 6L, 7L, 8L, 9L, 5L, 10L, 11L, 12L, 13L, 14L, 16L, 
+                       17L, 18L, 19L, 15L, 20L, 1L, 2L, 3L, 4L, 6L, 7L, 8L, 9L, 
+                       5L, 10L, 11L, 12L, 13L, 14L, 16L, 17L, 18L, 19L, 15L, 20L, 
+                       1L, 2L, 3L, 4L, 6L, 7L, 8L, 9L, 5L, 10L, 11L, 12L, 13L, 14L, 
+                       16L, 17L, 18L, 19L, 15L, 20L, 1L, 2L, 3L, 4L, 6L, 7L, 8L, 
+                       9L, 5L, 10L, 11L, 12L, 13L, 14L, 16L, 17L, 18L, 19L, 15L, 
+                       20L, 1L, 2L, 3L, 4L, 6L, 7L, 8L, 9L, 5L, 10L, 11L, 12L, 13L, 
+                       14L, 16L, 17L, 18L, 19L, 15L, 20L, 1L, 2L, 3L, 4L, 6L, 7L, 
+                       8L, 9L, 5L, 10L, 11L, 12L, 13L, 14L, 16L, 17L, 18L, 19L, 
+                       15L, 20L, 1L, 2L, 3L, 4L, 6L, 7L, 8L, 9L, 5L, 10L, 11L, 12L, 
+                       13L, 14L, 16L, 17L, 18L, 19L, 15L, 20L, 1L, 2L, 3L, 4L, 6L, 
+                       7L, 8L, 9L, 5L, 10L, 11L, 12L, 13L, 14L, 16L, 17L, 18L, 19L, 
+                       15L, 20L, 1L, 2L, 3L, 4L, 6L, 7L, 8L, 9L, 5L, 10L, 11L, 12L, 
+                       13L, 14L, 16L, 17L, 18L, 19L, 15L, 20L, 1L, 2L, 3L, 4L, 6L, 
+                       7L, 8L, 9L, 5L, 10L, 11L, 12L, 13L, 14L, 16L, 17L, 18L, 19L, 
+                       15L, 20L, 1L, 2L, 3L, 4L, 6L, 7L, 8L, 9L, 5L, 10L, 11L, 12L, 
+                       13L, 14L, 16L, 17L, 18L, 19L, 15L, 20L, 1L, 2L, 3L, 4L, 6L, 
+                       7L, 8L, 9L, 5L, 10L, 11L, 12L, 13L, 14L, 16L, 17L, 18L, 19L, 
+                       15L, 20L, 1L, 2L, 3L, 4L, 6L, 7L, 8L, 9L, 5L, 10L, 11L, 12L, 
+                       13L, 14L, 16L, 17L, 18L, 19L, 15L, 20L, 1L, 2L, 3L, 4L, 6L, 
+                       7L, 8L, 9L, 5L, 10L, 11L, 12L, 13L, 14L, 16L, 17L, 18L, 19L, 
+                       15L, 20L, 1L, 2L, 3L, 4L, 6L, 7L, 8L, 9L, 5L, 10L, 11L, 12L, 
+                       13L, 14L, 16L, 17L, 18L, 19L, 15L, 20L, 1L, 2L, 3L, 4L, 6L, 
+                       7L, 8L, 9L, 5L, 10L, 11L, 12L, 13L, 14L, 16L, 17L, 18L, 19L, 
+                       15L, 20L, 1L, 2L, 3L, 4L, 6L, 7L, 8L, 9L, 5L, 10L, 11L, 12L, 
+                       13L, 14L, 16L, 17L, 18L, 19L, 15L, 20L, 1L, 2L, 3L, 4L, 6L, 
+                       7L, 8L, 9L, 5L, 10L, 11L, 12L, 13L, 14L, 16L, 17L, 18L, 19L, 
+                       15L, 20L, 1L, 2L, 3L, 4L, 6L, 7L, 8L, 9L, 5L, 10L, 11L, 12L, 
+                       13L, 14L, 16L, 17L, 18L, 19L, 15L, 20L),
+                       .Label = c("I",  "II", "III", "IV", "IX", "V", "VI", "VII",
+                       "VIII", "X", "XI",  "XII", "XIII", "XIV", "XIX", "XV", "XVI",
+                       "XVII", "XVIII", "XX"), class = "factor"),
+                       y = c(3.73765398950867, -3.51120790925234, 
+                       12.1839225738012, 3.99609672879415, 0.843627704171421, -7.04559578539489, 
+                       0.513269008677759, 4.97769282578416, 2.49430806799148, 0.991538609280039, 
+                       4.18993164324262, 4.3495841603998, 2.83356807975164, -4.38859480555673, 
+                       -12.8040811294054, 2.00835405533382, -7.57752515517392, 0.0841271210580592, 
+                       3.97385034892221, 1.34021074875535, -6.15996774521369, -6.54791733134537, 
+                       2.45854953209851, 3.79168002929171, 3.3138523173418, 10.7249115083109, 
+                       -2.61761510114253, 7.00054855950674, -1.41115081941217, -4.962079292659, 
+                       -2.11897136221405, 11.3389479789342, -3.72007754886636, 1.85089812379994, 
+                       -13.8876705414662, -3.47251691568837, -1.96549041362968, 
+                       7.43791514734734, 10.7670172194604, 9.0127360873934, -11.7785916585473, 
+                       9.41346544434414, 3.0127924406654, -3.18985078985838, 2.84881578678173, 
+                       -0.518750656475174, -9.3910681816332, 5.44675513450321, -0.337785395918151, 
+                       -3.74895467408259, -2.45092543383682, 4.39554056987047, -2.0377325712407, 
+                       -1.51257287759295, -9.91227053755506, 0.762554547726971, 
+                       4.54044289109928, 6.78162414227225, 10.4202003897547, -3.31389234456542, 
+                       -0.641684472376911, -5.49456424419295, 3.69188120245216, 
+                       -9.31158764467119, -8.00780251835972, 10.0497198410038, -4.00925384505182, 
+                       6.2252006228895, -2.22230342778685, 1.37977166715494, 7.63574063435222, 
+                       9.79836237907647, -6.20551488840541, -8.68579293785654, -15.7480632123703, 
+                       -0.621423547375865, 7.16382226999263, 3.72504852864388, 2.83963721816555, 
+                       -0.0783794025199791, -0.327785205836536, 2.33088670969178, 
+                       4.56828185195326, -6.82103022203118, -2.62491672188438, 10.9533909781835, 
+                       2.36400010867679, 15.3986739639712, -2.35999930282853, -1.57034592402079, 
+                       -2.8753451641529, 2.07166604912804, 0.416348528971394, 2.18379536038872, 
+                       -7.44070562275176, 6.21491641202581, 4.25020861349387, 8.28301243102129, 
+                       6.63649017223375, -0.807005609945074, 0.339176476821582, 
+                       1.84392904573721, 12.6678961255872, -5.54507373899084, -3.35304172684939, 
+                       4.91154786431173, -4.07402415037762, 9.91914794606301, -7.57046435117739, 
+                       -7.13672855279298, 3.9933939213261, 4.39759526470308, 2.01318150029584, 
+                       -11.3169462524575, -4.84706361944487, 9.19297484538868, 3.45466726515196, 
+                       6.84010606482168, 14.6503920636412, -3.48897836916374, -6.95803822401051, 
+                       2.92739129952437, 2.59744323098399, -3.48030807668084, 3.80884927141782, 
+                       0.146537520665281, 1.23274373143113, 9.56356244034861, -3.90142244693781, 
+                       -4.15652710053429, 5.13773978189916, 2.39604983320635, 1.4176777822535, 
+                       -6.62963835125375, -4.58820529348173, -0.981446146619961, 
+                       2.387756636853, 5.5512753200343, 7.28207112068619, 4.99635176663038, 
+                       -3.0317536960328, -1.26378875439712, 4.7545181565469, -2.38299158055602, 
+                       -4.42758777890398, -0.774648672685208, 6.91269897656188, 
+                       -1.03297702849414, -5.62852887452025, 3.79472412722679, 5.58882468098643, 
+                       6.43315157276225, -1.24365478076283, -1.95645171888266, -13.3160547038501, 
+                       1.78226065662045, -1.72342459043359, -0.04418632351, 9.49474285906078, 
+                       -4.17077567575033, -8.74723750940909, -3.75922187856885, 
+                       7.39410827622686, -8.34826288671374, 3.0004545328915, 7.4676655049279, 
+                       -1.29476592482056, 9.42445817907791, -3.29094405327681, 1.84755973188091, 
+                       -3.85429966111946, 2.76665794121458, -6.85236683821404, -4.31723416458849, 
+                       -5.34712805340844, 7.19326723176176, -2.44464409715139, 0.54038517656137, 
+                       2.78299516942633, -0.659415040404154, -3.43368834988226, 
+                       -2.78971341955039, 17.3089594669299, -2.94766979448066, -3.04234072194565, 
+                       4.29658249247909, -1.88326448704999, 5.96173521150885, 1.72334947131553, 
+                       0.758088078833381, 5.33916201545216, 0.975947155850382, 5.71373563308963, 
+                       -8.98874954661072, -9.14263535163617, 6.19685095828309, 4.18549045981156, 
+                       -1.60345945880404, 1.65158690452792, 9.02885529962572, -3.03303799789107, 
+                       4.15057190949107, 2.65258923053848, 3.87289674855652, 1.10563654211507, 
+                       4.63834991124262, -1.75508857805948, 10.9405320264838, -2.1693445251728, 
+                       8.86599938141546, 7.52658434905415, -4.74354436864734, -3.94837907069635, 
+                       -3.37175483807791, -16.5840137211132, 0.17716885258081, -2.95625597219348, 
+                       5.62532261883011, 6.59379357816671, -0.0250981457050328, 
+                       -4.9527429751923, 12.8421683874558, 10.5166711838515, -1.62393695811031, 
+                       3.94029463687731, 0.500704762769804, -0.983863058592869, 
+                       8.49001155304681, -2.57222970809997, -1.99902505941696, 3.24034991854071, 
+                       1.45322505199253, -2.18063169639079, -4.53014219966026, -6.32357846426992, 
+                       6.32562264709672, -1.88828662934226, 2.55408065455179, 10.1318447183679, 
+                       1.64098314225015, 0.746429734740446, 0.895061628930342, 4.53738785346549, 
+                       -11.4814478445714, -1.76428897575099, -2.83651762148439, 
+                       6.32901687547852, 9.21021467090194, 1.43524997301248, -0.313773323137739, 
+                       -9.64649488243277, 2.88524049252622, -1.45214344911599, -8.15317889668781, 
+                       -8.69367917177197, 10.8117957975906, -0.815685548127596, 
+                       7.81213740188911, 4.60992633431547, 2.59523387939341, 3.51760858963661, 
+                       3.88657059324826, 10.9427758931758, -6.33530718890243, 6.22520469029045, 
+                       9.45158967125123, 3.29523802800378, 7.38864124667566, 4.54754386610381, 
+                       -0.538955560446215, -3.2808220372572, 5.42312809707991, -1.11443380940403, 
+                       -4.18382162462028, -3.74627651629556, 2.97462300609933, 1.00098766127957, 
+                       -4.69527711955825, 0.728177284963873, -0.411590408404451, 
+                       -5.89810220151414, 0.0265343509226786, 9.36265906671256, 
+                       -11.3641950628064, 3.75259390977136, 5.92340842181436, -0.61626754617014, 
+                       11.048637471232, 4.29131981688655, -2.8916914398775, 3.29549908298842, 
+                       1.20089821576483, -3.47931862363529, -11.1479314221727, -11.9751636112503, 
+                       6.29231826160596, 4.19526471652106, 4.16522331168374, 6.56356486617731, 
+                       1.52379269602587, -6.61995705818778, 5.6471655268325, 9.51189288768841, 
+                       -2.36429560898456, 2.00446921571432, 4.88102343855882, 2.47947900845377, 
+                       14.9983484474455, 5.33666877767093, -1.41432000747851, 5.02625197283469, 
+                       2.72305150728996, -2.24599458375212, -0.335001004678743, 
+                       -5.58376060223309, 3.1622346970675, 2.38936033908977, 3.6086621064926, 
+                       12.1802095502301, 4.11697330891395, -3.92571551300487, 2.83746024670742, 
+                       0.669791999666865, -2.89648250687162, 3.70446400475181, 1.75550207737955, 
+                       -2.67166373628429, 11.2976991997501, 2.63845881072759, 1.3641672366352, 
+                       7.05681626817195, 5.73958459384673, -2.95111835363882, 2.94104103509708, 
+                       -0.380323955842286, 9.98869433579686, -4.43858932051191, 
+                       7.02766843170125, 9.14964437854237, 2.81913370344062, 1.59583147948653, 
+                       6.98152770904925, 4.39034112156261, -5.81348272822057, -6.71607554621091, 
+                       -1.79727536943419, -3.22259627331994, 12.0572597979597, -1.95525422699139, 
+                       -0.000315197522259059, 0.52624451834627, 12.2126930232618, 
+                       -4.68553124615585, 1.67057167602644, -9.83515834965236, 1.74123259280161, 
+                       -1.67200676117609, 13.8269213324389, 6.84257519146863, 5.33441772160316, 
+                       -6.33651886787928, -1.66649793204419, 6.39995921794792, -6.68259735687546, 
+                       6.08981926235198, -3.53583947340409, -1.21103587811449, 7.24975022684127, 
+                       4.97801019029663, 3.14976379524903, 1.96758553600254, 8.43197057862052, 
+                       3.33822717991332, 0.235378273638341, -10.1630873499494, 5.76230996838168, 
+                       -4.61549138480825, 8.20531094191712, 7.12941741404648, 6.00054322848315, 
+                       -5.48192520344437, -9.59876928907475, 1.7683225066202, -7.1390901352502, 
+                       4.25471218768541, 1.80718924948737, -4.20866358864448, -2.44486024149221, 
+                       3.91749495580739, -0.158740143510694, 1.47791160298965, -1.34641057801835, 
+                       -0.668352362532367, -8.17427466239714, -10.2034896388957, 
+                       -0.860308461006896, 3.75705378224295, -0.336485137456501, 
+                       12.5132973642976, 3.49023309888176)),
+                  .Names = c("Var1", "Var2", "y"), row.names = c(NA, -400L),
+                  b = c(-4.36950232041146, 
+                  -0.0424473953245598, 5.56953719092376, -5.30334683089667, -1.10285116011549, 
+                  -0.252162996387152, 2.0499747831754, -1.74063623059889, 7.15605161270018, 
+                  -1.33699218239019, 0.888758869258693, 3.14516697594312, -2.35262555592678, 
+                  -4.94052004170718, 6.34707170732277, -10.0261204723322, 2.73257418977353, 
+                  -0.638617261850626, 3.2694706345968, 0.947216484246937), class = "data.frame")
+
+function(i=1, group = 1, npoints = 31, slim = c(0.1, 40)) {
+    stopifnot(length(slim) == 2, slim[1] < slim[2], length(npoints) == 1,
+              1 <= i, length(i) == 1, i <= npoints)
+    nv2 <- nlevels(V2 <- data$Var2)
+    if(is.numeric(group)) stopifnot(1 <= group, group <= nv2)
+    obs <- which(V2 == levels(V2)[group]) ## those will be shifted and scaled
+    ldata <- data
+    if(length(obs) > 0) {
+        shifts <- rep_len(attr(data, 'b')[V2[group]], npoints) # <- group can have length > 1
+        scales <- seq(slim[1], slim[2], length.out =  npoints)
+    
+        lb <- attr(data, 'b')[V2[obs[1]]]
+        ldata$y[obs] <- if (length(obs) == 1)
+            lb + shifts[i] else (ldata$y[obs] - lb)*scales[i] + shifts[i]
+    }
+    ldata
+}
+})# end{local}
+##--> getData() function {containing everything in its env}.
+
+## getData(group=FALSE)   returns 'data' itself
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/hotpower.csv
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/hotpower.csv	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/hotpower.csv	(revision 2476)
@@ -0,0 +1,12712 @@
+processor,meanpower,benchmark,frequency,cpuid
+p1,7.324179,bzip2,2533000,0
+p1,7.496593,bzip2,2533000,0
+p1,7.405863,bzip2,2533000,0
+p1,6.363187,bzip2,2133000,0
+p1,6.395308,bzip2,2133000,0
+p1,6.384302,bzip2,2133000,0
+p1,5.490629,bzip2,1733000,0
+p1,5.483198,bzip2,1733000,0
+p1,5.480151,bzip2,1733000,0
+p1,4.649210,bzip2,1199000,0
+p1,4.630940,bzip2,1199000,0
+p1,4.625473,bzip2,1199000,0
+p1,7.428633,bzip2,2533000,1
+p1,7.427268,bzip2,2533000,1
+p1,7.331579,bzip2,2533000,1
+p1,6.347989,bzip2,2133000,1
+p1,6.365998,bzip2,2133000,1
+p1,6.357357,bzip2,2133000,1
+p1,5.627052,bzip2,1733000,1
+p1,5.608685,bzip2,1733000,1
+p1,5.615898,bzip2,1733000,1
+p1,4.741167,bzip2,1199000,1
+p1,4.786623,bzip2,1199000,1
+p1,4.762826,bzip2,1199000,1
+p1,7.004987,cactusADM,2533000,0
+p1,7.093704,cactusADM,2533000,0
+p1,7.025764,cactusADM,2533000,0
+p1,6.151898,cactusADM,2133000,0
+p1,6.146071,cactusADM,2133000,0
+p1,6.266060,cactusADM,2133000,0
+p1,5.443718,cactusADM,1733000,0
+p1,5.400585,cactusADM,1733000,0
+p1,5.453255,cactusADM,1733000,0
+p1,4.586592,cactusADM,1199000,0
+p1,4.569230,cactusADM,1199000,0
+p1,4.635432,cactusADM,1199000,0
+p1,6.991971,cactusADM,2533000,1
+p1,7.014679,cactusADM,2533000,1
+p1,7.024759,cactusADM,2533000,1
+p1,6.140629,cactusADM,2133000,1
+p1,6.321114,cactusADM,2133000,1
+p1,6.206828,cactusADM,2133000,1
+p1,5.641199,cactusADM,1733000,1
+p1,5.576559,cactusADM,1733000,1
+p1,5.546000,cactusADM,1733000,1
+p1,4.703030,cactusADM,1199000,1
+p1,4.703498,cactusADM,1199000,1
+p1,4.709328,cactusADM,1199000,1
+p1,0.802887,cpuload_all_0_4096,2533000,0
+p1,0.823776,cpuload_all_0_4096,2533000,0
+p1,0.813596,cpuload_all_0_4096,2533000,0
+p1,0.705422,cpuload_all_0_4096,2133000,0
+p1,0.700868,cpuload_all_0_4096,2133000,0
+p1,0.772355,cpuload_all_0_4096,2133000,0
+p1,0.769459,cpuload_all_0_4096,1733000,0
+p1,0.785656,cpuload_all_0_4096,1733000,0
+p1,0.741173,cpuload_all_0_4096,1733000,0
+p1,0.715079,cpuload_all_0_4096,1199000,0
+p1,0.746938,cpuload_all_0_4096,1199000,0
+p1,0.744320,cpuload_all_0_4096,1199000,0
+p1,0.793975,cpuload_all_0_4096,2533000,1
+p1,0.801187,cpuload_all_0_4096,2533000,1
+p1,0.821500,cpuload_all_0_4096,2533000,1
+p1,0.769949,cpuload_all_0_4096,2133000,1
+p1,0.803394,cpuload_all_0_4096,2133000,1
+p1,0.797375,cpuload_all_0_4096,2133000,1
+p1,0.752796,cpuload_all_0_4096,1733000,1
+p1,0.682685,cpuload_all_0_4096,1733000,1
+p1,0.830054,cpuload_all_0_4096,1733000,1
+p1,0.828793,cpuload_all_0_4096,1199000,1
+p1,0.734464,cpuload_all_0_4096,1199000,1
+p1,0.729982,cpuload_all_0_4096,1199000,1
+p1,2.639820,cpuload_all_25_4096,2533000,0
+p1,2.646274,cpuload_all_25_4096,2533000,0
+p1,2.680734,cpuload_all_25_4096,2533000,0
+p1,2.410497,cpuload_all_25_4096,2133000,0
+p1,2.438758,cpuload_all_25_4096,2133000,0
+p1,2.397109,cpuload_all_25_4096,2133000,0
+p1,2.175346,cpuload_all_25_4096,1733000,0
+p1,2.244378,cpuload_all_25_4096,1733000,0
+p1,2.220490,cpuload_all_25_4096,1733000,0
+p1,2.007379,cpuload_all_25_4096,1199000,0
+p1,2.024049,cpuload_all_25_4096,1199000,0
+p1,2.017452,cpuload_all_25_4096,1199000,0
+p1,2.583530,cpuload_all_25_4096,2533000,1
+p1,2.605316,cpuload_all_25_4096,2533000,1
+p1,2.675611,cpuload_all_25_4096,2533000,1
+p1,2.354572,cpuload_all_25_4096,2133000,1
+p1,2.368738,cpuload_all_25_4096,2133000,1
+p1,2.394058,cpuload_all_25_4096,2133000,1
+p1,2.167476,cpuload_all_25_4096,1733000,1
+p1,2.190850,cpuload_all_25_4096,1733000,1
+p1,2.200268,cpuload_all_25_4096,1733000,1
+p1,2.017053,cpuload_all_25_4096,1199000,1
+p1,2.018347,cpuload_all_25_4096,1199000,1
+p1,2.013233,cpuload_all_25_4096,1199000,1
+p1,7.160959,cpuload_all_50_4096,2533000,0
+p1,7.049209,cpuload_all_50_4096,2533000,0
+p1,7.059752,cpuload_all_50_4096,2533000,0
+p1,6.289371,cpuload_all_50_4096,2133000,0
+p1,6.054588,namd,2133000,1
+p1,6.168702,namd,2133000,1
+p1,5.933308,namd,2133000,1
+p1,5.396238,namd,1733000,1
+p1,5.350237,namd,1733000,1
+p1,5.374985,namd,1733000,1
+p1,4.518551,namd,1199000,1
+p1,4.594393,namd,1199000,1
+p1,4.560752,namd,1199000,1
+p1,8.012897,omnetpp,2533000,0
+p1,6.184991,cpuload_all_50_4096,2133000,0
+p1,7.996135,omnetpp,2533000,0
+p1,7.884490,omnetpp,2533000,0
+p1,6.556004,omnetpp,2133000,0
+p1,6.616897,omnetpp,2133000,0
+p1,6.543446,omnetpp,2133000,0
+p1,5.595988,omnetpp,1733000,0
+p1,5.630009,omnetpp,1733000,0
+p1,5.617182,omnetpp,1733000,0
+p1,4.668482,omnetpp,1199000,0
+p1,4.692154,omnetpp,1199000,0
+p1,6.156328,cpuload_all_50_4096,2133000,0
+p1,4.692437,omnetpp,1199000,0
+p1,7.812482,omnetpp,2533000,1
+p1,7.850498,omnetpp,2533000,1
+p1,7.807735,omnetpp,2533000,1
+p1,6.512861,omnetpp,2133000,1
+p1,6.533383,omnetpp,2133000,1
+p1,6.515984,omnetpp,2133000,1
+p1,5.558801,omnetpp,1733000,1
+p1,5.610032,omnetpp,1733000,1
+p1,5.612178,omnetpp,1733000,1
+p1,5.464799,cpuload_all_50_4096,1733000,0
+p1,4.798786,omnetpp,1199000,1
+p1,4.773864,omnetpp,1199000,1
+p1,4.813577,omnetpp,1199000,1
+p1,6.693102,povray,2533000,0
+p1,6.757011,povray,2533000,0
+p1,6.893947,povray,2533000,0
+p1,6.053913,povray,2133000,0
+p1,5.862311,povray,2133000,0
+p1,6.056741,povray,2133000,0
+p1,5.076462,povray,1733000,0
+p1,5.436113,cpuload_all_50_4096,1733000,0
+p1,5.296442,povray,1733000,0
+p1,5.032880,povray,1733000,0
+p1,4.438435,povray,1199000,0
+p1,4.563837,povray,1199000,0
+p1,4.479808,povray,1199000,0
+p1,6.572876,povray,2533000,1
+p1,6.786938,povray,2533000,1
+p1,6.995105,povray,2533000,1
+p1,5.915063,povray,2133000,1
+p1,5.814211,povray,2133000,1
+p1,5.410239,cpuload_all_50_4096,1733000,0
+p1,5.775260,povray,2133000,1
+p1,5.391570,povray,1733000,1
+p1,5.152379,povray,1733000,1
+p1,5.342374,povray,1733000,1
+p1,4.613804,povray,1199000,1
+p1,4.521932,povray,1199000,1
+p1,4.662929,povray,1199000,1
+p1,7.550661,sjeng,2533000,0
+p1,7.549944,sjeng,2533000,0
+p1,7.565555,sjeng,2533000,0
+p1,4.552876,cpuload_all_50_4096,1199000,0
+p1,6.462362,sjeng,2133000,0
+p1,6.489192,sjeng,2133000,0
+p1,6.502295,sjeng,2133000,0
+p1,5.616605,sjeng,1733000,0
+p1,5.604410,sjeng,1733000,0
+p1,5.606518,sjeng,1733000,0
+p1,4.695374,sjeng,1199000,0
+p1,4.692729,sjeng,1199000,0
+p1,4.697471,sjeng,1199000,0
+p1,7.524268,sjeng,2533000,1
+p1,4.535080,cpuload_all_50_4096,1199000,0
+p1,7.528705,sjeng,2533000,1
+p1,7.549319,sjeng,2533000,1
+p1,6.490119,sjeng,2133000,1
+p1,6.457564,sjeng,2133000,1
+p1,6.464012,sjeng,2133000,1
+p1,5.732492,sjeng,1733000,1
+p1,5.690288,sjeng,1733000,1
+p1,5.712512,sjeng,1733000,1
+p1,4.810806,sjeng,1199000,1
+p1,4.804903,sjeng,1199000,1
+p1,4.610057,cpuload_all_50_4096,1199000,0
+p1,4.817711,sjeng,1199000,1
+p1,6.109395,soplex,2533000,0
+p1,6.270586,soplex,2533000,0
+p1,6.590721,soplex,2533000,0
+p1,5.736592,soplex,2133000,0
+p1,5.751460,soplex,2133000,0
+p1,5.504064,soplex,2133000,0
+p1,4.937829,soplex,1733000,0
+p1,5.152247,soplex,1733000,0
+p1,5.086209,soplex,1733000,0
+p1,7.048147,cpuload_all_50_4096,2533000,1
+p1,4.319122,soplex,1199000,0
+p1,4.264816,soplex,1199000,0
+p1,4.324712,soplex,1199000,0
+p1,6.404688,soplex,2533000,1
+p1,6.495103,soplex,2533000,1
+p1,6.137693,soplex,2533000,1
+p1,5.629738,soplex,2133000,1
+p1,5.763554,soplex,2133000,1
+p1,5.751472,soplex,2133000,1
+p1,5.108479,soplex,1733000,1
+p1,7.012887,cpuload_all_50_4096,2533000,1
+p1,5.033805,soplex,1733000,1
+p1,5.142141,soplex,1733000,1
+p1,4.447336,soplex,1199000,1
+p1,4.561792,soplex,1199000,1
+p1,4.495249,soplex,1199000,1
+p1,6.917542,sphinx3,2533000,0
+p1,6.554045,sphinx3,2533000,0
+p1,6.643631,sphinx3,2533000,0
+p1,5.947679,sphinx3,2133000,0
+p1,6.160829,sphinx3,2133000,0
+p1,7.147269,cpuload_all_50_4096,2533000,1
+p1,5.874515,sphinx3,2133000,0
+p1,5.237006,sphinx3,1733000,0
+p1,5.222622,sphinx3,1733000,0
+p1,5.263053,sphinx3,1733000,0
+p1,4.419383,sphinx3,1199000,0
+p1,4.415336,sphinx3,1199000,0
+p1,4.554036,sphinx3,1199000,0
+p1,7.106266,sphinx3,2533000,1
+p1,6.762935,sphinx3,2533000,1
+p1,6.784459,sphinx3,2533000,1
+p1,6.179207,cpuload_all_50_4096,2133000,1
+p1,6.021488,sphinx3,2133000,1
+p1,5.936309,sphinx3,2133000,1
+p1,6.051072,sphinx3,2133000,1
+p1,5.440961,sphinx3,1733000,1
+p1,5.260541,sphinx3,1733000,1
+p1,5.467814,sphinx3,1733000,1
+p1,4.569128,sphinx3,1199000,1
+p1,4.703785,sphinx3,1199000,1
+p1,4.556264,sphinx3,1199000,1
+p1,7.168048,zeusmp,2533000,0
+p1,6.168021,cpuload_all_50_4096,2133000,1
+p1,7.093960,zeusmp,2533000,0
+p1,7.157715,zeusmp,2533000,0
+p1,6.275074,zeusmp,2133000,0
+p1,6.247166,zeusmp,2133000,0
+p1,6.263418,zeusmp,2133000,0
+p1,5.482904,zeusmp,1733000,0
+p1,5.515964,zeusmp,1733000,0
+p1,5.450458,zeusmp,1733000,0
+p1,4.629340,zeusmp,1199000,0
+p1,4.648817,zeusmp,1199000,0
+p1,6.171757,cpuload_all_50_4096,2133000,1
+p1,4.620487,zeusmp,1199000,0
+p1,7.182846,zeusmp,2533000,1
+p1,7.106384,zeusmp,2533000,1
+p1,7.043764,zeusmp,2533000,1
+p1,6.246131,zeusmp,2133000,1
+p1,6.233096,zeusmp,2133000,1
+p1,6.297902,zeusmp,2133000,1
+p1,5.555971,zeusmp,1733000,1
+p1,5.598505,zeusmp,1733000,1
+p1,5.567507,zeusmp,1733000,1
+p1,5.494715,cpuload_all_50_4096,1733000,1
+p1,4.734995,zeusmp,1199000,1
+p1,4.760881,zeusmp,1199000,1
+p1,4.779051,zeusmp,1199000,1
+p1,7.451816,bzip2,2533000,0
+p1,7.487045,bzip2,2533000,0
+p1,7.380234,bzip2,2533000,0
+p1,6.331873,bzip2,2133000,0
+p1,6.404149,bzip2,2133000,0
+p1,6.351403,bzip2,2133000,0
+p1,5.497384,bzip2,1733000,0
+p1,5.479292,cpuload_all_50_4096,1733000,1
+p1,5.510975,bzip2,1733000,0
+p1,5.507619,bzip2,1733000,0
+p1,4.655445,bzip2,1199000,0
+p1,4.627256,bzip2,1199000,0
+p1,4.632897,bzip2,1199000,0
+p1,7.346820,bzip2,2533000,1
+p1,7.504487,bzip2,2533000,1
+p1,7.496681,bzip2,2533000,1
+p1,6.325352,bzip2,2133000,1
+p1,6.409070,bzip2,2133000,1
+p1,5.568964,cpuload_all_50_4096,1733000,1
+p1,6.340912,bzip2,2133000,1
+p1,5.615465,bzip2,1733000,1
+p1,5.607749,bzip2,1733000,1
+p1,5.657040,bzip2,1733000,1
+p1,4.771824,bzip2,1199000,1
+p1,4.759465,bzip2,1199000,1
+p1,4.796110,bzip2,1199000,1
+p1,7.170256,cactusADM,2533000,0
+p1,7.165660,cactusADM,2533000,0
+p1,6.978948,cactusADM,2533000,0
+p1,4.643568,cpuload_all_50_4096,1199000,1
+p1,6.098283,cactusADM,2133000,0
+p1,6.143039,cactusADM,2133000,0
+p1,6.126104,cactusADM,2133000,0
+p1,5.403895,cactusADM,1733000,0
+p1,5.456380,cactusADM,1733000,0
+p1,5.420357,cactusADM,1733000,0
+p1,4.566391,cactusADM,1199000,0
+p1,4.555657,cactusADM,1199000,0
+p1,4.606176,cactusADM,1199000,0
+p1,6.972612,cactusADM,2533000,1
+p1,4.644317,cpuload_all_50_4096,1199000,1
+p1,7.098136,cactusADM,2533000,1
+p1,7.194188,cactusADM,2533000,1
+p1,6.312324,cactusADM,2133000,1
+p1,6.242171,cactusADM,2133000,1
+p1,6.187713,cactusADM,2133000,1
+p1,5.578983,cactusADM,1733000,1
+p1,5.543930,cactusADM,1733000,1
+p1,5.577186,cactusADM,1733000,1
+p1,4.761386,cactusADM,1199000,1
+p1,4.750059,cactusADM,1199000,1
+p1,4.648125,cpuload_all_50_4096,1199000,1
+p1,4.727331,cactusADM,1199000,1
+p1,0.757565,cpuload_all_0_4096,2533000,0
+p1,0.901997,cpuload_all_0_4096,2533000,0
+p1,0.740010,cpuload_all_0_4096,2533000,0
+p1,0.809661,cpuload_all_0_4096,2133000,0
+p1,0.778533,cpuload_all_0_4096,2133000,0
+p1,0.745850,cpuload_all_0_4096,2133000,0
+p1,0.790352,cpuload_all_0_4096,1733000,0
+p1,0.769557,cpuload_all_0_4096,1733000,0
+p1,0.729699,cpuload_all_0_4096,1733000,0
+p1,7.154393,cpuload_all_75_4096,2533000,0
+p1,0.701003,cpuload_all_0_4096,1199000,0
+p1,0.646180,cpuload_all_0_4096,1199000,0
+p1,0.710139,cpuload_all_0_4096,1199000,0
+p1,0.823405,cpuload_all_0_4096,2533000,1
+p1,0.776203,cpuload_all_0_4096,2533000,1
+p1,0.880324,cpuload_all_0_4096,2533000,1
+p1,0.770271,cpuload_all_0_4096,2133000,1
+p1,0.855371,cpuload_all_0_4096,2133000,1
+p1,0.860172,cpuload_all_0_4096,2133000,1
+p1,0.715277,cpuload_all_0_4096,1733000,1
+p1,7.045469,cpuload_all_75_4096,2533000,0
+p1,0.731947,cpuload_all_0_4096,1733000,1
+p1,0.778875,cpuload_all_0_4096,1733000,1
+p1,0.784647,cpuload_all_0_4096,1199000,1
+p1,0.940300,cpuload_all_0_4096,1199000,1
+p1,0.969057,cpuload_all_0_4096,1199000,1
+p1,2.610456,cpuload_all_25_4096,2533000,0
+p1,2.629393,cpuload_all_25_4096,2533000,0
+p1,2.592080,cpuload_all_25_4096,2533000,0
+p1,2.368639,cpuload_all_25_4096,2133000,0
+p1,2.347721,cpuload_all_25_4096,2133000,0
+p1,7.081794,cpuload_all_75_4096,2533000,0
+p1,2.369008,cpuload_all_25_4096,2133000,0
+p1,2.170850,cpuload_all_25_4096,1733000,0
+p1,2.187700,cpuload_all_25_4096,1733000,0
+p1,2.169334,cpuload_all_25_4096,1733000,0
+p1,1.995794,cpuload_all_25_4096,1199000,0
+p1,2.024416,cpuload_all_25_4096,1199000,0
+p1,2.005713,cpuload_all_25_4096,1199000,0
+p1,2.616114,cpuload_all_25_4096,2533000,1
+p1,2.629432,cpuload_all_25_4096,2533000,1
+p1,2.573401,cpuload_all_25_4096,2533000,1
+p1,6.274067,cpuload_all_75_4096,2133000,0
+p1,2.340639,cpuload_all_25_4096,2133000,1
+p1,2.334513,cpuload_all_25_4096,2133000,1
+p1,2.355372,cpuload_all_25_4096,2133000,1
+p1,2.177150,cpuload_all_25_4096,1733000,1
+p1,2.150997,cpuload_all_25_4096,1733000,1
+p1,2.171347,cpuload_all_25_4096,1733000,1
+p1,1.990444,cpuload_all_25_4096,1199000,1
+p1,2.003146,cpuload_all_25_4096,1199000,1
+p1,2.012580,cpuload_all_25_4096,1199000,1
+p1,7.051749,cpuload_all_50_4096,2533000,0
+p1,6.234613,cpuload_all_75_4096,2133000,0
+p1,7.089267,cpuload_all_50_4096,2533000,0
+p1,7.104610,cpuload_all_50_4096,2533000,0
+p1,6.248358,cpuload_all_50_4096,2133000,0
+p1,6.192728,cpuload_all_50_4096,2133000,0
+p1,6.182963,cpuload_all_50_4096,2133000,0
+p1,5.372532,cpuload_all_50_4096,1733000,0
+p1,5.404963,cpuload_all_50_4096,1733000,0
+p1,5.398304,cpuload_all_50_4096,1733000,0
+p1,4.596589,cpuload_all_50_4096,1199000,0
+p1,4.579096,cpuload_all_50_4096,1199000,0
+p1,6.199017,cpuload_all_75_4096,2133000,0
+p1,4.519778,cpuload_all_50_4096,1199000,0
+p1,7.040613,cpuload_all_50_4096,2533000,1
+p1,7.072137,cpuload_all_50_4096,2533000,1
+p1,7.079440,cpuload_all_50_4096,2533000,1
+p1,5.999708,cpuload_all_50_4096,2133000,1
+p1,6.211818,cpuload_all_50_4096,2133000,1
+p1,6.195115,cpuload_all_50_4096,2133000,1
+p1,5.517328,cpuload_all_50_4096,1733000,1
+p1,5.506055,cpuload_all_50_4096,1733000,1
+p1,5.504528,cpuload_all_50_4096,1733000,1
+p1,5.366127,cpuload_all_75_4096,1733000,0
+p1,4.652970,cpuload_all_50_4096,1199000,1
+p1,4.669598,cpuload_all_50_4096,1199000,1
+p1,4.666228,cpuload_all_50_4096,1199000,1
+p1,7.072537,cpuload_all_75_4096,2533000,0
+p1,7.043999,cpuload_all_75_4096,2533000,0
+p1,7.083700,cpuload_all_75_4096,2533000,0
+p1,6.175679,cpuload_all_75_4096,2133000,0
+p1,6.192874,cpuload_all_75_4096,2133000,0
+p1,6.174849,cpuload_all_75_4096,2133000,0
+p1,5.395843,cpuload_all_75_4096,1733000,0
+p1,5.452204,cpuload_all_75_4096,1733000,0
+p1,5.390319,cpuload_all_75_4096,1733000,0
+p1,5.406462,cpuload_all_75_4096,1733000,0
+p1,4.553489,cpuload_all_75_4096,1199000,0
+p1,4.581027,cpuload_all_75_4096,1199000,0
+p1,4.560125,cpuload_all_75_4096,1199000,0
+p1,7.066292,cpuload_all_75_4096,2533000,1
+p1,7.054933,cpuload_all_75_4096,2533000,1
+p1,7.078831,cpuload_all_75_4096,2533000,1
+p1,6.186979,cpuload_all_75_4096,2133000,1
+p1,6.196897,cpuload_all_75_4096,2133000,1
+p1,5.419530,cpuload_all_75_4096,1733000,0
+p1,6.201036,cpuload_all_75_4096,2133000,1
+p1,5.507220,cpuload_all_75_4096,1733000,1
+p1,5.513977,cpuload_all_75_4096,1733000,1
+p1,5.514773,cpuload_all_75_4096,1733000,1
+p1,4.673456,cpuload_all_75_4096,1199000,1
+p1,4.666935,cpuload_all_75_4096,1199000,1
+p1,4.665087,cpuload_all_75_4096,1199000,1
+p1,7.090820,cpuload_all_100_4096,2533000,0
+p1,7.086372,cpuload_all_100_4096,2533000,0
+p1,7.096715,cpuload_all_100_4096,2533000,0
+p1,4.547251,cpuload_all_75_4096,1199000,0
+p1,6.197248,cpuload_all_100_4096,2133000,0
+p1,6.198943,cpuload_all_100_4096,2133000,0
+p1,6.201587,cpuload_all_100_4096,2133000,0
+p1,5.404947,cpuload_all_100_4096,1733000,0
+p1,5.416471,cpuload_all_100_4096,1733000,0
+p1,5.415273,cpuload_all_100_4096,1733000,0
+p1,4.569183,cpuload_all_100_4096,1199000,0
+p1,4.559325,cpuload_all_100_4096,1199000,0
+p1,4.586461,cpuload_all_100_4096,1199000,0
+p1,7.062837,cpuload_all_100_4096,2533000,1
+p1,4.533927,cpuload_all_75_4096,1199000,0
+p1,7.062552,cpuload_all_100_4096,2533000,1
+p1,7.064909,cpuload_all_100_4096,2533000,1
+p1,6.225398,cpuload_all_100_4096,2133000,1
+p1,6.191985,cpuload_all_100_4096,2133000,1
+p1,6.187552,cpuload_all_100_4096,2133000,1
+p1,5.519980,cpuload_all_100_4096,1733000,1
+p1,5.521278,cpuload_all_100_4096,1733000,1
+p1,5.525456,cpuload_all_100_4096,1733000,1
+p1,4.675795,cpuload_all_100_4096,1199000,1
+p1,4.670104,cpuload_all_100_4096,1199000,1
+p1,4.597021,cpuload_all_75_4096,1199000,0
+p1,4.664792,cpuload_all_100_4096,1199000,1
+p1,8.157098,gamess,2533000,0
+p1,8.099629,gamess,2533000,0
+p1,8.122932,gamess,2533000,0
+p1,6.653020,gamess,2133000,0
+p1,6.651594,gamess,2133000,0
+p1,6.685322,gamess,2133000,0
+p1,5.651978,gamess,1733000,0
+p1,5.646459,gamess,1733000,0
+p1,5.649114,gamess,1733000,0
+p1,6.981300,cpuload_all_75_4096,2533000,1
+p1,4.713070,gamess,1199000,0
+p1,4.693035,gamess,1199000,0
+p1,4.684810,gamess,1199000,0
+p1,8.095747,gamess,2533000,1
+p1,8.091684,gamess,2533000,1
+p1,8.111003,gamess,2533000,1
+p1,6.668545,gamess,2133000,1
+p1,6.670029,gamess,2133000,1
+p1,6.651458,gamess,2133000,1
+p1,5.740524,gamess,1733000,1
+p1,7.022184,cpuload_all_75_4096,2533000,1
+p1,5.731296,gamess,1733000,1
+p1,5.694317,gamess,1733000,1
+p1,4.810379,gamess,1199000,1
+p1,4.813509,gamess,1199000,1
+p1,4.811340,gamess,1199000,1
+p1,7.395859,gcc,2533000,0
+p1,7.397167,gcc,2533000,0
+p1,7.398783,gcc,2533000,0
+p1,6.444419,gcc,2133000,0
+p1,6.448252,gcc,2133000,0
+p1,6.720881,cpuload_all_75_4096,2533000,1
+p1,6.448061,gcc,2133000,0
+p1,5.593764,gcc,1733000,0
+p1,5.586390,gcc,1733000,0
+p1,5.593365,gcc,1733000,0
+p1,4.708700,gcc,1199000,0
+p1,4.711186,gcc,1199000,0
+p1,4.705519,gcc,1199000,0
+p1,7.410904,gcc,2533000,1
+p1,7.417557,gcc,2533000,1
+p1,7.427895,gcc,2533000,1
+p1,6.159058,cpuload_all_75_4096,2133000,1
+p1,6.465884,gcc,2133000,1
+p1,6.470800,gcc,2133000,1
+p1,6.473590,gcc,2133000,1
+p1,5.605932,gcc,1733000,1
+p1,5.606668,gcc,1733000,1
+p1,5.610217,gcc,1733000,1
+p1,4.744196,gcc,1199000,1
+p1,4.740263,gcc,1199000,1
+p1,4.726929,gcc,1199000,1
+p1,7.573360,gobmk,2533000,0
+p1,6.157714,cpuload_all_75_4096,2133000,1
+p1,7.587223,gobmk,2533000,0
+p1,7.539697,gobmk,2533000,0
+p1,6.447659,gobmk,2133000,0
+p1,6.455211,gobmk,2133000,0
+p1,6.446162,gobmk,2133000,0
+p1,5.584590,gobmk,1733000,0
+p1,5.560943,gobmk,1733000,0
+p1,5.581879,gobmk,1733000,0
+p1,4.680402,gobmk,1199000,0
+p1,4.668110,gobmk,1199000,0
+p1,6.186279,cpuload_all_75_4096,2133000,1
+p1,4.681837,gobmk,1199000,0
+p1,7.505741,gobmk,2533000,1
+p1,7.544285,gobmk,2533000,1
+p1,7.541051,gobmk,2533000,1
+p1,6.451016,gobmk,2133000,1
+p1,6.438838,gobmk,2133000,1
+p1,6.462114,gobmk,2133000,1
+p1,5.586154,gobmk,1733000,1
+p1,5.572719,gobmk,1733000,1
+p1,5.595973,gobmk,1733000,1
+p1,5.515422,cpuload_all_75_4096,1733000,1
+p1,4.726796,gobmk,1199000,1
+p1,4.722837,gobmk,1199000,1
+p1,4.692772,gobmk,1199000,1
+p1,7.371059,gromacs,2533000,0
+p1,7.367448,gromacs,2533000,0
+p1,7.363439,gromacs,2533000,0
+p1,6.431620,gromacs,2133000,0
+p1,6.409606,gromacs,2133000,0
+p1,6.417368,gromacs,2133000,0
+p1,5.579813,gromacs,1733000,0
+p1,5.470626,cpuload_all_75_4096,1733000,1
+p1,5.559858,gromacs,1733000,0
+p1,5.552557,gromacs,1733000,0
+p1,4.687890,gromacs,1199000,0
+p1,4.690725,gromacs,1199000,0
+p1,4.686398,gromacs,1199000,0
+p1,7.374815,gromacs,2533000,1
+p1,7.340847,gromacs,2533000,1
+p1,7.346634,gromacs,2533000,1
+p1,6.412580,gromacs,2133000,1
+p1,6.425931,gromacs,2133000,1
+p1,5.486995,cpuload_all_75_4096,1733000,1
+p1,6.395884,gromacs,2133000,1
+p1,5.569475,gromacs,1733000,1
+p1,5.571409,gromacs,1733000,1
+p1,5.593955,gromacs,1733000,1
+p1,4.776821,gromacs,1199000,1
+p1,4.791883,gromacs,1199000,1
+p1,4.791656,gromacs,1199000,1
+p1,7.638230,h264ref,2533000,0
+p1,7.649705,h264ref,2533000,0
+p1,7.667748,h264ref,2533000,0
+p1,4.709936,cpuload_all_75_4096,1199000,1
+p1,6.521251,h264ref,2133000,0
+p1,6.478445,h264ref,2133000,0
+p1,6.469785,h264ref,2133000,0
+p1,5.564680,h264ref,1733000,0
+p1,5.571208,h264ref,1733000,0
+p1,5.574473,h264ref,1733000,0
+p1,4.689649,h264ref,1199000,0
+p1,4.685754,h264ref,1199000,0
+p1,4.677830,h264ref,1199000,0
+p1,7.653624,h264ref,2533000,1
+p1,4.653221,cpuload_all_75_4096,1199000,1
+p1,7.672803,h264ref,2533000,1
+p1,7.656325,h264ref,2533000,1
+p1,6.470491,h264ref,2133000,1
+p1,6.477796,h264ref,2133000,1
+p1,6.467163,h264ref,2133000,1
+p1,5.600949,h264ref,1733000,1
+p1,5.596917,h264ref,1733000,1
+p1,5.590532,h264ref,1733000,1
+p1,4.692823,h264ref,1199000,1
+p1,4.710524,h264ref,1199000,1
+p1,4.653704,cpuload_all_75_4096,1199000,1
+p1,4.687802,h264ref,1199000,1
+p1,7.851812,hmmer,2533000,0
+p1,7.971634,hmmer,2533000,0
+p1,7.978137,hmmer,2533000,0
+p1,6.623589,hmmer,2133000,0
+p1,6.613633,hmmer,2133000,0
+p1,6.572183,hmmer,2133000,0
+p1,5.539348,hmmer,1733000,0
+p1,5.574066,hmmer,1733000,0
+p1,5.578951,hmmer,1733000,0
+p1,7.065313,cpuload_all_100_4096,2533000,0
+p1,4.664168,hmmer,1199000,0
+p1,4.671283,hmmer,1199000,0
+p1,4.675379,hmmer,1199000,0
+p1,7.937051,hmmer,2533000,1
+p1,8.009874,hmmer,2533000,1
+p1,7.991923,hmmer,2533000,1
+p1,6.592152,hmmer,2133000,1
+p1,6.537510,hmmer,2133000,1
+p1,6.513707,hmmer,2133000,1
+p1,5.567450,hmmer,1733000,1
+p1,7.150949,cpuload_all_100_4096,2533000,0
+p1,5.563863,hmmer,1733000,1
+p1,5.575713,hmmer,1733000,1
+p1,4.652886,hmmer,1199000,1
+p1,4.654485,hmmer,1199000,1
+p1,4.662682,hmmer,1199000,1
+p1,7.142330,lbm,2533000,0
+p1,7.189904,lbm,2533000,0
+p1,7.135083,lbm,2533000,0
+p1,6.333849,lbm,2133000,0
+p1,6.284655,lbm,2133000,0
+p1,7.043443,cpuload_all_100_4096,2533000,0
+p1,6.325274,lbm,2133000,0
+p1,5.473942,lbm,1733000,0
+p1,5.468606,lbm,1733000,0
+p1,5.433995,lbm,1733000,0
+p1,4.642242,lbm,1199000,0
+p1,4.620951,lbm,1199000,0
+p1,4.604566,lbm,1199000,0
+p1,7.188644,lbm,2533000,1
+p1,7.132509,lbm,2533000,1
+p1,7.194170,lbm,2533000,1
+p1,6.180740,cpuload_all_100_4096,2133000,0
+p1,6.352996,lbm,2133000,1
+p1,6.348269,lbm,2133000,1
+p1,6.339934,lbm,2133000,1
+p1,5.444438,lbm,1733000,1
+p1,5.475287,lbm,1733000,1
+p1,5.467870,lbm,1733000,1
+p1,4.604334,lbm,1199000,1
+p1,4.636862,lbm,1199000,1
+p1,4.615935,lbm,1199000,1
+p1,7.363881,leslie3d,2533000,0
+p1,6.280515,cpuload_all_100_4096,2133000,0
+p1,7.381968,leslie3d,2533000,0
+p1,7.377833,leslie3d,2533000,0
+p1,6.416458,leslie3d,2133000,0
+p1,6.407606,leslie3d,2133000,0
+p1,6.419199,leslie3d,2133000,0
+p1,5.539396,leslie3d,1733000,0
+p1,5.568293,leslie3d,1733000,0
+p1,5.568239,leslie3d,1733000,0
+p1,4.702500,leslie3d,1199000,0
+p1,4.690761,leslie3d,1199000,0
+p1,6.216597,cpuload_all_100_4096,2133000,0
+p1,4.697601,leslie3d,1199000,0
+p1,7.404502,leslie3d,2533000,1
+p1,7.386024,leslie3d,2533000,1
+p1,7.432685,leslie3d,2533000,1
+p1,6.442886,leslie3d,2133000,1
+p1,6.418644,leslie3d,2133000,1
+p1,6.408870,leslie3d,2133000,1
+p1,5.560286,leslie3d,1733000,1
+p1,5.560509,leslie3d,1733000,1
+p1,5.568989,leslie3d,1733000,1
+p1,5.400930,cpuload_all_100_4096,1733000,0
+p1,4.703883,leslie3d,1199000,1
+p1,4.695555,leslie3d,1199000,1
+p1,4.700049,leslie3d,1199000,1
+p1,6.827102,mcf,2533000,0
+p1,6.934707,mcf,2533000,0
+p1,6.819120,mcf,2533000,0
+p1,5.986872,mcf,2133000,0
+p1,6.052062,mcf,2133000,0
+p1,6.034620,mcf,2133000,0
+p1,5.369547,mcf,1733000,0
+p1,5.480531,cpuload_all_100_4096,1733000,0
+p1,5.362848,mcf,1733000,0
+p1,5.303617,mcf,1733000,0
+p1,4.532132,mcf,1199000,0
+p1,4.517051,mcf,1199000,0
+p1,4.550448,mcf,1199000,0
+p1,6.806147,mcf,2533000,1
+p1,6.813672,mcf,2533000,1
+p1,6.910395,mcf,2533000,1
+p1,6.090883,mcf,2133000,1
+p1,6.082206,mcf,2133000,1
+p1,5.419674,cpuload_all_100_4096,1733000,0
+p1,6.105825,mcf,2133000,1
+p1,5.281371,mcf,1733000,1
+p1,5.286519,mcf,1733000,1
+p1,5.254626,mcf,1733000,1
+p1,4.506822,mcf,1199000,1
+p1,4.573684,mcf,1199000,1
+p1,4.581482,mcf,1199000,1
+p1,6.764531,milc,2533000,0
+p1,6.704766,milc,2533000,0
+p1,6.664954,milc,2533000,0
+p1,4.554840,cpuload_all_100_4096,1199000,0
+p1,5.915672,milc,2133000,0
+p1,5.920122,milc,2133000,0
+p1,5.952288,milc,2133000,0
+p1,5.295641,milc,1733000,0
+p1,5.303889,milc,1733000,0
+p1,5.283955,milc,1733000,0
+p1,4.491137,milc,1199000,0
+p1,4.562380,milc,1199000,0
+p1,4.449514,milc,1199000,0
+p1,6.888090,milc,2533000,1
+p1,4.539880,cpuload_all_100_4096,1199000,0
+p1,6.897050,milc,2533000,1
+p1,6.894057,milc,2533000,1
+p1,5.987905,milc,2133000,1
+p1,6.019819,milc,2133000,1
+p1,5.990509,milc,2133000,1
+p1,5.170337,milc,1733000,1
+p1,5.278592,milc,1733000,1
+p1,5.297249,milc,1733000,1
+p1,4.474729,milc,1199000,1
+p1,4.553986,milc,1199000,1
+p1,4.613303,cpuload_all_100_4096,1199000,0
+p1,4.445343,milc,1199000,1
+p1,6.712315,namd,2533000,0
+p1,6.856095,namd,2533000,0
+p1,6.730185,namd,2533000,0
+p1,5.938768,namd,2133000,0
+p1,5.892265,namd,2133000,0
+p1,5.905198,namd,2133000,0
+p1,5.166398,namd,1733000,0
+p1,5.146840,namd,1733000,0
+p1,5.105446,namd,1733000,0
+p1,7.135091,cpuload_all_100_4096,2533000,1
+p1,4.478981,namd,1199000,0
+p1,4.587023,namd,1199000,0
+p1,4.503018,namd,1199000,0
+p1,6.755839,namd,2533000,1
+p1,6.744189,namd,2533000,1
+p1,6.848786,namd,2533000,1
+p1,5.988426,namd,2133000,1
+p1,5.898955,namd,2133000,1
+p1,5.973581,namd,2133000,1
+p1,5.280409,namd,1733000,1
+p1,7.039828,cpuload_all_100_4096,2533000,1
+p1,5.223274,namd,1733000,1
+p1,5.175529,namd,1733000,1
+p1,4.510972,namd,1199000,1
+p1,4.481555,namd,1199000,1
+p1,4.549084,namd,1199000,1
+p1,7.864908,omnetpp,2533000,0
+p1,7.823435,omnetpp,2533000,0
+p1,7.922773,omnetpp,2533000,0
+p1,6.573642,omnetpp,2133000,0
+p1,6.469634,omnetpp,2133000,0
+p1,7.052935,cpuload_all_100_4096,2533000,1
+p1,6.514158,omnetpp,2133000,0
+p1,5.570808,omnetpp,1733000,0
+p1,5.565535,omnetpp,1733000,0
+p1,5.578639,omnetpp,1733000,0
+p1,4.660541,omnetpp,1199000,0
+p1,4.675657,omnetpp,1199000,0
+p1,4.674411,omnetpp,1199000,0
+p1,7.800399,omnetpp,2533000,1
+p1,7.805857,omnetpp,2533000,1
+p1,7.854756,omnetpp,2533000,1
+p1,6.250407,cpuload_all_100_4096,2133000,1
+p1,6.525089,omnetpp,2133000,1
+p1,6.487123,omnetpp,2133000,1
+p1,6.499683,omnetpp,2133000,1
+p1,5.525935,omnetpp,1733000,1
+p1,5.523530,omnetpp,1733000,1
+p1,5.531818,omnetpp,1733000,1
+p1,4.676205,omnetpp,1199000,1
+p1,4.686991,omnetpp,1199000,1
+p1,4.662868,omnetpp,1199000,1
+p1,6.615869,povray,2533000,0
+p1,6.169406,cpuload_all_100_4096,2133000,1
+p1,6.900662,povray,2533000,0
+p1,6.557395,povray,2533000,0
+p1,5.450124,povray,2133000,0
+p1,5.427708,povray,2133000,0
+p1,5.446149,povray,2133000,0
+p1,4.930432,povray,1733000,0
+p1,5.195226,povray,1733000,0
+p1,4.930222,povray,1733000,0
+p1,4.454080,povray,1199000,0
+p1,4.298672,povray,1199000,0
+p1,6.168297,cpuload_all_100_4096,2133000,1
+p1,4.374468,povray,1199000,0
+p1,6.412226,povray,2533000,1
+p1,6.428514,povray,2533000,1
+p1,6.558154,povray,2533000,1
+p1,5.753157,povray,2133000,1
+p1,5.808292,povray,2133000,1
+p1,5.819128,povray,2133000,1
+p1,4.954219,povray,1733000,1
+p1,4.909715,povray,1733000,1
+p1,5.187356,povray,1733000,1
+p1,5.580810,cpuload_all_100_4096,1733000,1
+p1,4.251885,povray,1199000,1
+p1,4.321718,povray,1199000,1
+p1,4.441414,povray,1199000,1
+p1,7.613283,sjeng,2533000,0
+p1,7.561911,sjeng,2533000,0
+p1,7.605416,sjeng,2533000,0
+p1,6.479316,sjeng,2133000,0
+p1,6.500065,sjeng,2133000,0
+p1,6.509589,sjeng,2133000,0
+p1,5.608853,sjeng,1733000,0
+p1,5.501108,cpuload_all_100_4096,1733000,1
+p1,5.590874,sjeng,1733000,0
+p1,5.588608,sjeng,1733000,0
+p1,4.693775,sjeng,1199000,0
+p1,4.698040,sjeng,1199000,0
+p1,4.695050,sjeng,1199000,0
+p1,7.535381,sjeng,2533000,1
+p1,7.543458,sjeng,2533000,1
+p1,7.529869,sjeng,2533000,1
+p1,6.492155,sjeng,2133000,1
+p1,6.496299,sjeng,2133000,1
+p1,5.508151,cpuload_all_100_4096,1733000,1
+p1,6.503881,sjeng,2133000,1
+p1,5.588109,sjeng,1733000,1
+p1,5.583467,sjeng,1733000,1
+p1,5.585895,sjeng,1733000,1
+p1,4.709630,sjeng,1199000,1
+p1,4.713754,sjeng,1199000,1
+p1,4.721644,sjeng,1199000,1
+p1,6.378498,soplex,2533000,0
+p1,6.351865,soplex,2533000,0
+p1,5.950439,soplex,2533000,0
+p1,4.658399,cpuload_all_100_4096,1199000,1
+p1,5.362884,soplex,2133000,0
+p1,5.662363,soplex,2133000,0
+p1,5.670488,soplex,2133000,0
+p1,4.859540,soplex,1733000,0
+p1,4.878554,soplex,1733000,0
+p1,4.865558,soplex,1733000,0
+p1,4.231186,soplex,1199000,0
+p1,4.321156,soplex,1199000,0
+p1,4.233179,soplex,1199000,0
+p1,5.867889,soplex,2533000,1
+p1,4.698302,cpuload_all_100_4096,1199000,1
+p1,5.994055,soplex,2533000,1
+p1,6.042013,soplex,2533000,1
+p1,5.658842,soplex,2133000,1
+p1,5.762084,soplex,2133000,1
+p1,5.296520,soplex,2133000,1
+p1,4.725245,soplex,1733000,1
+p1,4.895597,soplex,1733000,1
+p1,4.845594,soplex,1733000,1
+p1,4.232763,soplex,1199000,1
+p1,4.234447,soplex,1199000,1
+p1,4.656544,cpuload_all_100_4096,1199000,1
+p1,4.266230,soplex,1199000,1
+p1,6.687491,sphinx3,2533000,0
+p1,6.628709,sphinx3,2533000,0
+p1,6.743814,sphinx3,2533000,0
+p1,6.000692,sphinx3,2133000,0
+p1,5.981955,sphinx3,2133000,0
+p1,5.723673,sphinx3,2133000,0
+p1,5.151377,sphinx3,1733000,0
+p1,5.176628,sphinx3,1733000,0
+p1,5.103001,sphinx3,1733000,0
+p1,8.122498,gamess,2533000,0
+p1,4.407137,sphinx3,1199000,0
+p1,4.433843,sphinx3,1199000,0
+p1,4.400740,sphinx3,1199000,0
+p1,6.574955,sphinx3,2533000,1
+p1,6.666487,sphinx3,2533000,1
+p1,6.632906,sphinx3,2533000,1
+p1,5.977275,sphinx3,2133000,1
+p1,5.989348,sphinx3,2133000,1
+p1,5.776171,sphinx3,2133000,1
+p1,5.103527,sphinx3,1733000,1
+p1,8.171060,gamess,2533000,0
+p1,5.174030,sphinx3,1733000,1
+p1,5.148496,sphinx3,1733000,1
+p1,4.394685,sphinx3,1199000,1
+p1,4.415764,sphinx3,1199000,1
+p1,4.387746,sphinx3,1199000,1
+p1,7.110555,zeusmp,2533000,0
+p1,7.108726,zeusmp,2533000,0
+p1,7.135861,zeusmp,2533000,0
+p1,6.267369,zeusmp,2133000,0
+p1,6.211096,zeusmp,2133000,0
+p1,8.147651,gamess,2533000,0
+p1,6.284173,zeusmp,2133000,0
+p1,5.461732,zeusmp,1733000,0
+p1,5.504670,zeusmp,1733000,0
+p1,5.388581,zeusmp,1733000,0
+p1,4.606091,zeusmp,1199000,0
+p1,4.605613,zeusmp,1199000,0
+p1,4.655022,zeusmp,1199000,0
+p1,7.090725,zeusmp,2533000,1
+p1,7.097323,zeusmp,2533000,1
+p1,7.095378,zeusmp,2533000,1
+p1,6.654341,gamess,2133000,0
+p1,6.259628,zeusmp,2133000,1
+p1,6.271157,zeusmp,2133000,1
+p1,6.273350,zeusmp,2133000,1
+p1,5.492717,zeusmp,1733000,1
+p1,5.479648,zeusmp,1733000,1
+p1,5.440629,zeusmp,1733000,1
+p1,4.612406,zeusmp,1199000,1
+p1,4.600932,zeusmp,1199000,1
+p1,4.654585,zeusmp,1199000,1
+p1,7.317748,bzip2,2533000,0
+p1,6.692805,gamess,2133000,0
+p1,7.357375,bzip2,2533000,0
+p1,7.305158,bzip2,2533000,0
+p1,6.337949,bzip2,2133000,0
+p1,6.313949,bzip2,2133000,0
+p1,6.337564,bzip2,2133000,0
+p1,5.478140,bzip2,1733000,0
+p1,5.415669,bzip2,1733000,0
+p1,5.487623,bzip2,1733000,0
+p1,4.625002,bzip2,1199000,0
+p1,4.628526,bzip2,1199000,0
+p1,6.680723,gamess,2133000,0
+p1,4.632521,bzip2,1199000,0
+p1,7.343127,bzip2,2533000,1
+p1,7.325662,bzip2,2533000,1
+p1,7.344201,bzip2,2533000,1
+p1,6.334642,bzip2,2133000,1
+p1,6.353173,bzip2,2133000,1
+p1,6.243079,bzip2,2133000,1
+p1,5.480481,bzip2,1733000,1
+p1,5.479015,bzip2,1733000,1
+p1,5.485842,bzip2,1733000,1
+p1,5.633904,gamess,1733000,0
+p1,4.622453,bzip2,1199000,1
+p1,4.628674,bzip2,1199000,1
+p1,4.625269,bzip2,1199000,1
+p1,6.999528,cactusADM,2533000,0
+p1,7.017907,cactusADM,2533000,0
+p1,6.974230,cactusADM,2533000,0
+p1,6.066185,cactusADM,2133000,0
+p1,6.222805,cactusADM,2133000,0
+p1,6.151170,cactusADM,2133000,0
+p1,5.371750,cactusADM,1733000,0
+p1,5.643825,gamess,1733000,0
+p1,5.421321,cactusADM,1733000,0
+p1,5.375146,cactusADM,1733000,0
+p1,4.545712,cactusADM,1199000,0
+p1,4.545355,cactusADM,1199000,0
+p1,4.562064,cactusADM,1199000,0
+p1,6.927227,cactusADM,2533000,1
+p1,6.997798,cactusADM,2533000,1
+p1,6.916112,cactusADM,2533000,1
+p1,6.175251,cactusADM,2133000,1
+p1,6.104968,cactusADM,2133000,1
+p1,5.633502,gamess,1733000,0
+p1,6.216790,cactusADM,2133000,1
+p1,5.381126,cactusADM,1733000,1
+p1,5.351813,cactusADM,1733000,1
+p1,5.391396,cactusADM,1733000,1
+p1,4.547174,cactusADM,1199000,1
+p1,4.594331,cactusADM,1199000,1
+p1,4.573058,cactusADM,1199000,1
+p1,0.708621,cpuload_all_0_4096,2533000,0
+p1,0.685896,cpuload_all_0_4096,2533000,0
+p1,0.758312,cpuload_all_0_4096,2533000,0
+p1,4.673766,gamess,1199000,0
+p1,0.663900,cpuload_all_0_4096,2133000,0
+p1,0.673140,cpuload_all_0_4096,2133000,0
+p1,0.717095,cpuload_all_0_4096,2133000,0
+p1,0.745450,cpuload_all_0_4096,1733000,0
+p1,0.667275,cpuload_all_0_4096,1733000,0
+p1,0.660539,cpuload_all_0_4096,1733000,0
+p1,0.646697,cpuload_all_0_4096,1199000,0
+p1,0.647531,cpuload_all_0_4096,1199000,0
+p1,0.741264,cpuload_all_0_4096,1199000,0
+p1,0.638057,cpuload_all_0_4096,2533000,1
+p1,4.674024,gamess,1199000,0
+p1,0.683027,cpuload_all_0_4096,2533000,1
+p1,0.696002,cpuload_all_0_4096,2533000,1
+p1,0.684276,cpuload_all_0_4096,2133000,1
+p1,0.616663,cpuload_all_0_4096,2133000,1
+p1,0.629783,cpuload_all_0_4096,2133000,1
+p1,0.584777,cpuload_all_0_4096,1733000,1
+p1,0.610829,cpuload_all_0_4096,1733000,1
+p1,0.619494,cpuload_all_0_4096,1733000,1
+p1,0.644549,cpuload_all_0_4096,1199000,1
+p1,0.585345,cpuload_all_0_4096,1199000,1
+p1,4.681026,gamess,1199000,0
+p1,0.557637,cpuload_all_0_4096,1199000,1
+p1,2.524636,cpuload_all_25_4096,2533000,0
+p1,2.550947,cpuload_all_25_4096,2533000,0
+p1,2.553142,cpuload_all_25_4096,2533000,0
+p1,2.295575,cpuload_all_25_4096,2133000,0
+p1,2.324522,cpuload_all_25_4096,2133000,0
+p1,2.317162,cpuload_all_25_4096,2133000,0
+p1,2.049599,cpuload_all_25_4096,1733000,0
+p1,2.036680,cpuload_all_25_4096,1733000,0
+p1,2.087688,cpuload_all_25_4096,1733000,0
+p1,8.119296,gamess,2533000,1
+p1,1.878058,cpuload_all_25_4096,1199000,0
+p1,1.901557,cpuload_all_25_4096,1199000,0
+p1,1.860273,cpuload_all_25_4096,1199000,0
+p1,2.509180,cpuload_all_25_4096,2533000,1
+p1,2.480566,cpuload_all_25_4096,2533000,1
+p1,2.441330,cpuload_all_25_4096,2533000,1
+p1,2.273023,cpuload_all_25_4096,2133000,1
+p1,2.260842,cpuload_all_25_4096,2133000,1
+p1,2.254558,cpuload_all_25_4096,2133000,1
+p1,2.045159,cpuload_all_25_4096,1733000,1
+p1,8.092899,gamess,2533000,1
+p1,2.077904,cpuload_all_25_4096,1733000,1
+p1,2.079217,cpuload_all_25_4096,1733000,1
+p1,1.884210,cpuload_all_25_4096,1199000,1
+p1,1.877622,cpuload_all_25_4096,1199000,1
+p1,1.885504,cpuload_all_25_4096,1199000,1
+p1,7.063353,cpuload_all_50_4096,2533000,0
+p1,7.084280,cpuload_all_50_4096,2533000,0
+p1,7.069367,cpuload_all_50_4096,2533000,0
+p1,6.192365,cpuload_all_50_4096,2133000,0
+p1,6.249635,cpuload_all_50_4096,2133000,0
+p1,8.170779,gamess,2533000,1
+p1,6.255597,cpuload_all_50_4096,2133000,0
+p1,5.367234,cpuload_all_50_4096,1733000,0
+p1,5.377595,cpuload_all_50_4096,1733000,0
+p1,5.454217,cpuload_all_50_4096,1733000,0
+p1,4.523450,cpuload_all_50_4096,1199000,0
+p1,4.546450,cpuload_all_50_4096,1199000,0
+p1,4.589407,cpuload_all_50_4096,1199000,0
+p1,7.049496,cpuload_all_50_4096,2533000,1
+p1,7.109095,cpuload_all_50_4096,2533000,1
+p1,7.073836,cpuload_all_50_4096,2533000,1
+p1,6.622984,gamess,2133000,1
+p1,6.265219,cpuload_all_50_4096,2133000,1
+p1,6.185685,cpuload_all_50_4096,2133000,1
+p1,6.183063,cpuload_all_50_4096,2133000,1
+p1,5.389149,cpuload_all_50_4096,1733000,1
+p1,5.451892,cpuload_all_50_4096,1733000,1
+p1,5.049642,cpuload_all_50_4096,1733000,1
+p1,4.541249,cpuload_all_50_4096,1199000,1
+p1,4.595923,cpuload_all_50_4096,1199000,1
+p1,4.539701,cpuload_all_50_4096,1199000,1
+p1,7.079805,cpuload_all_75_4096,2533000,0
+p1,6.645181,gamess,2133000,1
+p1,7.177394,cpuload_all_75_4096,2533000,0
+p1,7.089532,cpuload_all_75_4096,2533000,0
+p1,6.174109,cpuload_all_75_4096,2133000,0
+p1,6.182443,cpuload_all_75_4096,2133000,0
+p1,6.181207,cpuload_all_75_4096,2133000,0
+p1,5.362829,cpuload_all_75_4096,1733000,0
+p1,5.372885,cpuload_all_75_4096,1733000,0
+p1,5.438516,cpuload_all_75_4096,1733000,0
+p1,4.534511,cpuload_all_75_4096,1199000,0
+p1,4.561629,cpuload_all_75_4096,1199000,0
+p1,6.619355,gamess,2133000,1
+p1,4.599798,cpuload_all_75_4096,1199000,0
+p1,7.069370,cpuload_all_75_4096,2533000,1
+p1,6.935301,cpuload_all_75_4096,2533000,1
+p1,7.006164,cpuload_all_75_4096,2533000,1
+p1,6.157208,cpuload_all_75_4096,2133000,1
+p1,6.244552,cpuload_all_75_4096,2133000,1
+p1,6.174857,cpuload_all_75_4096,2133000,1
+p1,5.363650,cpuload_all_75_4096,1733000,1
+p1,5.360356,cpuload_all_75_4096,1733000,1
+p1,5.280544,cpuload_all_75_4096,1733000,1
+p1,5.743861,gamess,1733000,1
+p1,4.607615,cpuload_all_75_4096,1199000,1
+p1,4.544880,cpuload_all_75_4096,1199000,1
+p1,1.533704,cpuload_all_75_4096,1199000,1
+p1,7.097292,cpuload_all_100_4096,2533000,0
+p1,6.978437,cpuload_all_100_4096,2533000,0
+p1,7.159011,cpuload_all_100_4096,2533000,0
+p1,6.188853,cpuload_all_100_4096,2133000,0
+p1,6.213142,cpuload_all_100_4096,2133000,0
+p1,6.206415,cpuload_all_100_4096,2133000,0
+p1,5.369659,cpuload_all_100_4096,1733000,0
+p1,5.753084,gamess,1733000,1
+p1,5.453383,cpuload_all_100_4096,1733000,0
+p1,5.384608,cpuload_all_100_4096,1733000,0
+p1,4.578382,cpuload_all_100_4096,1199000,0
+p1,4.533682,cpuload_all_100_4096,1199000,0
+p1,4.587163,cpuload_all_100_4096,1199000,0
+p1,7.087315,cpuload_all_100_4096,2533000,1
+p1,7.061236,cpuload_all_100_4096,2533000,1
+p1,7.159853,cpuload_all_100_4096,2533000,1
+p1,6.187304,cpuload_all_100_4096,2133000,1
+p1,6.268457,cpuload_all_100_4096,2133000,1
+p1,5.759302,gamess,1733000,1
+p1,6.084581,cpuload_all_100_4096,2133000,1
+p1,5.371621,cpuload_all_100_4096,1733000,1
+p1,5.365592,cpuload_all_100_4096,1733000,1
+p1,5.429151,cpuload_all_100_4096,1733000,1
+p1,4.526440,cpuload_all_100_4096,1199000,1
+p1,4.595600,cpuload_all_100_4096,1199000,1
+p1,4.549674,cpuload_all_100_4096,1199000,1
+p1,8.006161,gamess,2533000,0
+p1,8.081431,gamess,2533000,0
+p1,8.115882,gamess,2533000,0
+p1,4.801209,gamess,1199000,1
+p1,6.622693,gamess,2133000,0
+p1,6.670415,gamess,2133000,0
+p1,6.596661,gamess,2133000,0
+p1,5.608018,gamess,1733000,0
+p1,5.620440,gamess,1733000,0
+p1,5.606762,gamess,1733000,0
+p1,4.690482,gamess,1199000,0
+p1,4.667803,gamess,1199000,0
+p1,4.696159,gamess,1199000,0
+p1,8.023554,gamess,2533000,1
+p1,4.804529,gamess,1199000,1
+p1,8.107332,gamess,2533000,1
+p1,8.020061,gamess,2533000,1
+p1,6.609896,gamess,2133000,1
+p1,6.633036,gamess,2133000,1
+p1,6.626856,gamess,2133000,1
+p1,5.638363,gamess,1733000,1
+p1,5.628377,gamess,1733000,1
+p1,5.624916,gamess,1733000,1
+p1,4.685452,gamess,1199000,1
+p1,4.703097,gamess,1199000,1
+p1,4.795816,gamess,1199000,1
+p1,4.701554,gamess,1199000,1
+p1,7.396257,gcc,2533000,0
+p1,7.415336,gcc,2533000,0
+p1,7.413622,gcc,2533000,0
+p1,6.465171,gcc,2133000,0
+p1,6.469086,gcc,2133000,0
+p1,6.469150,gcc,2133000,0
+p1,5.593833,gcc,1733000,0
+p1,5.588618,gcc,1733000,0
+p1,5.586163,gcc,1733000,0
+p1,7.385315,gcc,2533000,0
+p1,4.711472,gcc,1199000,0
+p1,4.710417,gcc,1199000,0
+p1,4.707981,gcc,1199000,0
+p1,7.392002,gcc,2533000,1
+p1,7.392990,gcc,2533000,1
+p1,7.396556,gcc,2533000,1
+p1,6.457552,gcc,2133000,1
+p1,6.459168,gcc,2133000,1
+p1,6.446078,gcc,2133000,1
+p1,5.583786,gcc,1733000,1
+p1,7.389044,gcc,2533000,0
+p1,5.588122,gcc,1733000,1
+p1,5.583892,gcc,1733000,1
+p1,4.708402,gcc,1199000,1
+p1,4.708369,gcc,1199000,1
+p1,4.706305,gcc,1199000,1
+p1,7.504289,gobmk,2533000,0
+p1,7.518797,gobmk,2533000,0
+p1,7.475594,gobmk,2533000,0
+p1,6.474809,gobmk,2133000,0
+p1,6.468665,gobmk,2133000,0
+p1,7.385461,gcc,2533000,0
+p1,6.442329,gobmk,2133000,0
+p1,5.546280,gobmk,1733000,0
+p1,5.548930,gobmk,1733000,0
+p1,5.546798,gobmk,1733000,0
+p1,4.661994,gobmk,1199000,0
+p1,4.676379,gobmk,1199000,0
+p1,4.676659,gobmk,1199000,0
+p1,7.475655,gobmk,2533000,1
+p1,7.455604,gobmk,2533000,1
+p1,7.485458,gobmk,2533000,1
+p1,6.437036,gcc,2133000,0
+p1,6.446046,gobmk,2133000,1
+p1,6.449122,gobmk,2133000,1
+p1,6.410598,gobmk,2133000,1
+p1,5.544454,gobmk,1733000,1
+p1,5.558750,gobmk,1733000,1
+p1,5.542925,gobmk,1733000,1
+p1,4.679126,gobmk,1199000,1
+p1,4.659939,gobmk,1199000,1
+p1,4.664100,gobmk,1199000,1
+p1,7.309635,gromacs,2533000,0
+p1,6.426255,gcc,2133000,0
+p1,7.316015,gromacs,2533000,0
+p1,7.348898,gromacs,2533000,0
+p1,6.411944,gromacs,2133000,0
+p1,6.385395,gromacs,2133000,0
+p1,6.405603,gromacs,2133000,0
+p1,5.557547,gromacs,1733000,0
+p1,5.557315,gromacs,1733000,0
+p1,5.531421,gromacs,1733000,0
+p1,4.682684,gromacs,1199000,0
+p1,4.674792,gromacs,1199000,0
+p1,6.436343,gcc,2133000,0
+p1,4.681409,gromacs,1199000,0
+p1,7.355980,gromacs,2533000,1
+p1,7.330102,gromacs,2533000,1
+p1,7.336534,gromacs,2533000,1
+p1,6.420015,gromacs,2133000,1
+p1,6.432328,gromacs,2133000,1
+p1,6.383915,gromacs,2133000,1
+p1,5.542928,gromacs,1733000,1
+p1,5.547829,gromacs,1733000,1
+p1,5.546399,gromacs,1733000,1
+p1,5.571573,gcc,1733000,0
+p1,4.679702,gromacs,1199000,1
+p1,4.675488,gromacs,1199000,1
+p1,4.692994,gromacs,1199000,1
+p1,7.580638,h264ref,2533000,0
+p1,7.646719,h264ref,2533000,0
+p1,7.572186,h264ref,2533000,0
+p1,6.479855,h264ref,2133000,0
+p1,6.501906,h264ref,2133000,0
+p1,6.437634,h264ref,2133000,0
+p1,5.550851,h264ref,1733000,0
+p1,5.571871,gcc,1733000,0
+p1,5.563237,h264ref,1733000,0
+p1,5.615136,h264ref,1733000,0
+p1,4.665449,h264ref,1199000,0
+p1,4.668676,h264ref,1199000,0
+p1,4.687919,h264ref,1199000,0
+p1,7.526171,h264ref,2533000,1
+p1,7.538398,h264ref,2533000,1
+p1,7.616365,h264ref,2533000,1
+p1,6.442015,h264ref,2133000,1
+p1,6.512760,h264ref,2133000,1
+p1,5.576912,gcc,1733000,0
+p1,6.438029,h264ref,2133000,1
+p1,5.604892,h264ref,1733000,1
+p1,5.569775,h264ref,1733000,1
+p1,5.582781,h264ref,1733000,1
+p1,4.665032,h264ref,1199000,1
+p1,4.670023,h264ref,1199000,1
+p1,4.673973,h264ref,1199000,1
+p1,8.045739,hmmer,2533000,0
+p1,7.892556,hmmer,2533000,0
+p1,8.015449,hmmer,2533000,0
+p1,4.688429,gcc,1199000,0
+p1,6.488609,hmmer,2133000,0
+p1,6.474431,hmmer,2133000,0
+p1,6.468596,hmmer,2133000,0
+p1,5.492987,hmmer,1733000,0
+p1,5.609606,hmmer,1733000,0
+p1,5.592188,hmmer,1733000,0
+p1,4.658665,hmmer,1199000,0
+p1,4.695843,hmmer,1199000,0
+p1,4.660050,hmmer,1199000,0
+p1,7.965375,hmmer,2533000,1
+p1,4.690429,gcc,1199000,0
+p1,7.920740,hmmer,2533000,1
+p1,7.992031,hmmer,2533000,1
+p1,6.504333,hmmer,2133000,1
+p1,6.463298,hmmer,2133000,1
+p1,6.469344,hmmer,2133000,1
+p1,5.550758,hmmer,1733000,1
+p1,5.497244,hmmer,1733000,1
+p1,5.552932,hmmer,1733000,1
+p1,4.651051,hmmer,1199000,1
+p1,4.644749,hmmer,1199000,1
+p1,4.693774,gcc,1199000,0
+p1,4.648930,hmmer,1199000,1
+p1,7.245504,lbm,2533000,0
+p1,7.157887,lbm,2533000,0
+p1,7.202447,lbm,2533000,0
+p1,6.367352,lbm,2133000,0
+p1,6.312207,lbm,2133000,0
+p1,6.352326,lbm,2133000,0
+p1,5.521424,lbm,1733000,0
+p1,5.547407,lbm,1733000,0
+p1,5.522241,lbm,1733000,0
+p1,7.394992,gcc,2533000,1
+p1,4.644355,lbm,1199000,0
+p1,4.651664,lbm,1199000,0
+p1,4.632042,lbm,1199000,0
+p1,7.154515,lbm,2533000,1
+p1,7.143480,lbm,2533000,1
+p1,7.160304,lbm,2533000,1
+p1,6.279877,lbm,2133000,1
+p1,6.368747,lbm,2133000,1
+p1,6.290233,lbm,2133000,1
+p1,5.422099,lbm,1733000,1
+p1,7.409252,gcc,2533000,1
+p1,5.487602,lbm,1733000,1
+p1,5.562670,lbm,1733000,1
+p1,4.640833,lbm,1199000,1
+p1,4.643601,lbm,1199000,1
+p1,4.599959,lbm,1199000,1
+p1,7.380995,leslie3d,2533000,0
+p1,7.342509,leslie3d,2533000,0
+p1,7.369402,leslie3d,2533000,0
+p1,6.442817,leslie3d,2133000,0
+p1,6.435683,leslie3d,2133000,0
+p1,7.411074,gcc,2533000,1
+p1,6.428373,leslie3d,2133000,0
+p1,5.514990,leslie3d,1733000,0
+p1,5.541925,leslie3d,1733000,0
+p1,5.538447,leslie3d,1733000,0
+p1,4.687124,leslie3d,1199000,0
+p1,4.675701,leslie3d,1199000,0
+p1,4.688017,leslie3d,1199000,0
+p1,7.339382,leslie3d,2533000,1
+p1,7.370216,leslie3d,2533000,1
+p1,7.383608,leslie3d,2533000,1
+p1,6.450737,gcc,2133000,1
+p1,6.411649,leslie3d,2133000,1
+p1,6.416394,leslie3d,2133000,1
+p1,6.372517,leslie3d,2133000,1
+p1,5.535637,leslie3d,1733000,1
+p1,5.558814,leslie3d,1733000,1
+p1,5.549190,leslie3d,1733000,1
+p1,4.694957,leslie3d,1199000,1
+p1,4.706113,leslie3d,1199000,1
+p1,4.687444,leslie3d,1199000,1
+p1,7.055037,mcf,2533000,0
+p1,6.453034,gcc,2133000,1
+p1,6.851061,mcf,2533000,0
+p1,6.944222,mcf,2533000,0
+p1,6.146618,mcf,2133000,0
+p1,6.170092,mcf,2133000,0
+p1,6.091334,mcf,2133000,0
+p1,5.364534,mcf,1733000,0
+p1,5.344392,mcf,1733000,0
+p1,5.351025,mcf,1733000,0
+p1,4.616069,mcf,1199000,0
+p1,4.636687,mcf,1199000,0
+p1,6.446154,gcc,2133000,1
+p1,4.541673,mcf,1199000,0
+p1,6.796715,mcf,2533000,1
+p1,6.968338,mcf,2533000,1
+p1,7.170599,mcf,2533000,1
+p1,6.153099,mcf,2133000,1
+p1,6.167998,mcf,2133000,1
+p1,6.170352,mcf,2133000,1
+p1,5.393605,mcf,1733000,1
+p1,5.398057,mcf,1733000,1
+p1,5.373096,mcf,1733000,1
+p1,5.599063,gcc,1733000,1
+p1,4.603046,mcf,1199000,1
+p1,4.650359,mcf,1199000,1
+p1,4.605447,mcf,1199000,1
+p1,6.974468,milc,2533000,0
+p1,6.750068,milc,2533000,0
+p1,7.048887,milc,2533000,0
+p1,6.030443,milc,2133000,0
+p1,6.100170,milc,2133000,0
+p1,6.134509,milc,2133000,0
+p1,5.375433,milc,1733000,0
+p1,5.609841,gcc,1733000,1
+p1,5.406149,milc,1733000,0
+p1,5.381073,milc,1733000,0
+p1,4.523182,milc,1199000,0
+p1,4.465988,milc,1199000,0
+p1,4.572155,milc,1199000,0
+p1,6.967621,milc,2533000,1
+p1,6.760777,milc,2533000,1
+p1,6.820954,milc,2533000,1
+p1,6.085603,milc,2133000,1
+p1,6.087726,milc,2133000,1
+p1,5.615522,gcc,1733000,1
+p1,6.121352,milc,2133000,1
+p1,5.370485,milc,1733000,1
+p1,5.359246,milc,1733000,1
+p1,5.378291,milc,1733000,1
+p1,4.519337,milc,1199000,1
+p1,4.612999,milc,1199000,1
+p1,4.526001,milc,1199000,1
+p1,6.728922,namd,2533000,0
+p1,7.065589,namd,2533000,0
+p1,6.854230,namd,2533000,0
+p1,4.726365,gcc,1199000,1
+p1,6.175668,namd,2133000,0
+p1,6.051568,namd,2133000,0
+p1,6.011336,namd,2133000,0
+p1,5.331469,namd,1733000,0
+p1,5.269391,namd,1733000,0
+p1,5.255894,namd,1733000,0
+p1,4.480702,namd,1199000,0
+p1,4.616203,namd,1199000,0
+p1,4.559609,namd,1199000,0
+p1,6.712035,namd,2533000,1
+p1,4.718312,gcc,1199000,1
+p1,6.926562,namd,2533000,1
+p1,6.733017,namd,2533000,1
+p1,6.118964,namd,2133000,1
+p1,5.996721,namd,2133000,1
+p1,6.158135,namd,2133000,1
+p1,5.192207,namd,1733000,1
+p1,5.264487,namd,1733000,1
+p1,5.265817,namd,1733000,1
+p1,4.619508,namd,1199000,1
+p1,4.552421,namd,1199000,1
+p1,4.725397,gcc,1199000,1
+p1,4.486684,namd,1199000,1
+p1,7.782189,omnetpp,2533000,0
+p1,7.745701,omnetpp,2533000,0
+p1,7.819091,omnetpp,2533000,0
+p1,6.537471,omnetpp,2133000,0
+p1,6.491413,omnetpp,2133000,0
+p1,6.565493,omnetpp,2133000,0
+p1,5.553583,omnetpp,1733000,0
+p1,5.569669,omnetpp,1733000,0
+p1,5.559334,omnetpp,1733000,0
+p1,7.598611,gobmk,2533000,0
+p1,4.675025,omnetpp,1199000,0
+p1,4.662234,omnetpp,1199000,0
+p1,4.692678,omnetpp,1199000,0
+p1,7.788568,omnetpp,2533000,1
+p1,7.688780,omnetpp,2533000,1
+p1,7.705064,omnetpp,2533000,1
+p1,6.502275,omnetpp,2133000,1
+p1,6.482434,omnetpp,2133000,1
+p1,6.449632,omnetpp,2133000,1
+p1,5.553178,omnetpp,1733000,1
+p1,7.637274,gobmk,2533000,0
+p1,5.557703,omnetpp,1733000,1
+p1,5.562486,omnetpp,1733000,1
+p1,4.671987,omnetpp,1199000,1
+p1,4.659250,omnetpp,1199000,1
+p1,4.692611,omnetpp,1199000,1
+p1,6.707079,povray,2533000,0
+p1,7.037117,povray,2533000,0
+p1,6.796207,povray,2533000,0
+p1,5.844443,povray,2133000,0
+p1,5.945511,povray,2133000,0
+p1,7.596891,gobmk,2533000,0
+p1,5.992743,povray,2133000,0
+p1,5.201441,povray,1733000,0
+p1,5.071937,povray,1733000,0
+p1,4.930430,povray,1733000,0
+p1,4.518805,povray,1199000,0
+p1,4.359955,povray,1199000,0
+p1,4.570876,povray,1199000,0
+p1,6.693350,povray,2533000,1
+p1,6.420700,povray,2533000,1
+p1,6.776098,povray,2533000,1
+p1,6.489876,gobmk,2133000,0
+p1,5.820121,povray,2133000,1
+p1,5.913063,povray,2133000,1
+p1,5.648901,povray,2133000,1
+p1,5.238927,povray,1733000,1
+p1,5.104726,povray,1733000,1
+p1,4.975001,povray,1733000,1
+p1,4.601637,povray,1199000,1
+p1,4.441890,povray,1199000,1
+p1,4.376317,povray,1199000,1
+p1,7.551859,sjeng,2533000,0
+p1,6.457329,gobmk,2133000,0
+p1,7.522033,sjeng,2533000,0
+p1,7.494675,sjeng,2533000,0
+p1,6.461241,sjeng,2133000,0
+p1,6.467534,sjeng,2133000,0
+p1,6.472376,sjeng,2133000,0
+p1,5.581004,sjeng,1733000,0
+p1,5.586774,sjeng,1733000,0
+p1,5.581501,sjeng,1733000,0
+p1,4.690065,sjeng,1199000,0
+p1,4.683386,sjeng,1199000,0
+p1,6.490080,gobmk,2133000,0
+p1,4.692917,sjeng,1199000,0
+p1,7.480065,sjeng,2533000,1
+p1,7.464711,sjeng,2533000,1
+p1,7.466380,sjeng,2533000,1
+p1,6.459025,sjeng,2133000,1
+p1,6.460253,sjeng,2133000,1
+p1,6.441043,sjeng,2133000,1
+p1,5.682033,sjeng,1733000,1
+p1,5.665563,sjeng,1733000,1
+p1,5.701126,sjeng,1733000,1
+p1,5.606073,gobmk,1733000,0
+p1,4.804310,sjeng,1199000,1
+p1,4.810938,sjeng,1199000,1
+p1,4.807480,sjeng,1199000,1
+p1,6.279444,soplex,2533000,0
+p1,6.416942,soplex,2533000,0
+p1,6.222442,soplex,2533000,0
+p1,5.613126,soplex,2133000,0
+p1,5.746791,soplex,2133000,0
+p1,5.527216,soplex,2133000,0
+p1,4.987505,soplex,1733000,0
+p1,5.609050,gobmk,1733000,0
+p1,5.147779,soplex,1733000,0
+p1,4.865469,soplex,1733000,0
+p1,4.351824,soplex,1199000,0
+p1,4.457801,soplex,1199000,0
+p1,4.298126,soplex,1199000,0
+p1,6.412497,soplex,2533000,1
+p1,6.088744,soplex,2533000,1
+p1,6.394227,soplex,2533000,1
+p1,5.431805,soplex,2133000,1
+p1,5.678159,soplex,2133000,1
+p1,5.587278,gobmk,1733000,0
+p1,5.527683,soplex,2133000,1
+p1,5.007500,soplex,1733000,1
+p1,4.508490,soplex,1733000,1
+p1,4.990143,soplex,1733000,1
+p1,4.822172,soplex,1199000,1
+p1,4.490758,soplex,1199000,1
+p1,4.520205,soplex,1199000,1
+p1,6.688574,sphinx3,2533000,0
+p1,6.734214,sphinx3,2533000,0
+p1,6.784816,sphinx3,2533000,0
+p1,4.696276,gobmk,1199000,0
+p1,5.893676,sphinx3,2133000,0
+p1,5.843804,sphinx3,2133000,0
+p1,5.812111,sphinx3,2133000,0
+p1,5.151810,sphinx3,1733000,0
+p1,5.286700,sphinx3,1733000,0
+p1,5.134488,sphinx3,1733000,0
+p1,4.407213,sphinx3,1199000,0
+p1,4.489747,sphinx3,1199000,0
+p1,4.564912,sphinx3,1199000,0
+p1,6.641894,sphinx3,2533000,1
+p1,4.696505,gobmk,1199000,0
+p1,6.682499,sphinx3,2533000,1
+p1,6.768835,sphinx3,2533000,1
+p1,5.905966,sphinx3,2133000,1
+p1,5.844525,sphinx3,2133000,1
+p1,5.807216,sphinx3,2133000,1
+p1,5.312625,sphinx3,1733000,1
+p1,5.254079,sphinx3,1733000,1
+p1,5.260415,sphinx3,1733000,1
+p1,4.600032,sphinx3,1199000,1
+p1,4.544649,sphinx3,1199000,1
+p1,4.703176,gobmk,1199000,0
+p1,4.594604,sphinx3,1199000,1
+p1,7.068047,zeusmp,2533000,0
+p1,7.066575,zeusmp,2533000,0
+p1,7.152517,zeusmp,2533000,0
+p1,6.235042,zeusmp,2133000,0
+p1,6.247009,zeusmp,2133000,0
+p1,6.252009,zeusmp,2133000,0
+p1,5.455635,zeusmp,1733000,0
+p1,5.459552,zeusmp,1733000,0
+p1,5.497972,zeusmp,1733000,0
+p1,7.569113,gobmk,2533000,1
+p1,4.615425,zeusmp,1199000,0
+p1,4.624989,zeusmp,1199000,0
+p1,4.631698,zeusmp,1199000,0
+p1,7.101810,zeusmp,2533000,1
+p1,7.086005,zeusmp,2533000,1
+p1,7.074507,zeusmp,2533000,1
+p1,6.250644,zeusmp,2133000,1
+p1,6.276587,zeusmp,2133000,1
+p1,6.243518,zeusmp,2133000,1
+p1,5.599268,zeusmp,1733000,1
+p1,7.604312,gobmk,2533000,1
+p1,5.547344,zeusmp,1733000,1
+p1,5.626747,zeusmp,1733000,1
+p1,4.741578,zeusmp,1199000,1
+p1,4.761326,zeusmp,1199000,1
+p1,4.793897,zeusmp,1199000,1
+p1,7.611685,gobmk,2533000,1
+p1,6.500499,gobmk,2133000,1
+p1,6.475731,gobmk,2133000,1
+p1,6.509244,gobmk,2133000,1
+p1,5.581230,gobmk,1733000,1
+p1,5.580246,gobmk,1733000,1
+p1,5.570381,gobmk,1733000,1
+p1,4.689897,gobmk,1199000,1
+p1,4.694882,gobmk,1199000,1
+p1,4.690746,gobmk,1199000,1
+p1,7.404205,gromacs,2533000,0
+p1,7.438164,gromacs,2533000,0
+p1,7.384376,gromacs,2533000,0
+p1,6.431205,gromacs,2133000,0
+p1,6.442765,gromacs,2133000,0
+p1,6.411289,gromacs,2133000,0
+p1,5.552259,gromacs,1733000,0
+p1,5.555375,gromacs,1733000,0
+p1,5.569084,gromacs,1733000,0
+p1,4.687848,gromacs,1199000,0
+p1,4.693300,gromacs,1199000,0
+p1,4.700737,gromacs,1199000,0
+p1,7.376915,gromacs,2533000,1
+p1,7.376693,gromacs,2533000,1
+p1,7.372927,gromacs,2533000,1
+p1,6.438235,gromacs,2133000,1
+p1,6.415884,gromacs,2133000,1
+p1,6.424190,gromacs,2133000,1
+p1,5.578656,gromacs,1733000,1
+p1,5.567088,gromacs,1733000,1
+p1,5.557561,gromacs,1733000,1
+p1,4.689439,gromacs,1199000,1
+p1,4.693020,gromacs,1199000,1
+p1,4.688849,gromacs,1199000,1
+p1,7.732792,h264ref,2533000,0
+p1,7.693412,h264ref,2533000,0
+p1,7.699815,h264ref,2533000,0
+p1,6.510539,h264ref,2133000,0
+p1,6.502212,h264ref,2133000,0
+p1,6.488769,h264ref,2133000,0
+p1,5.600571,h264ref,1733000,0
+p1,5.589921,h264ref,1733000,0
+p1,5.603507,h264ref,1733000,0
+p1,4.693854,h264ref,1199000,0
+p1,4.691474,h264ref,1199000,0
+p1,4.693818,h264ref,1199000,0
+p1,7.649739,h264ref,2533000,1
+p1,7.667810,h264ref,2533000,1
+p1,7.691413,h264ref,2533000,1
+p1,6.554205,h264ref,2133000,1
+p1,6.490267,h264ref,2133000,1
+p1,6.509085,h264ref,2133000,1
+p1,5.572467,h264ref,1733000,1
+p1,5.579261,h264ref,1733000,1
+p1,5.565348,h264ref,1733000,1
+p1,4.690519,h264ref,1199000,1
+p1,4.697001,h264ref,1199000,1
+p1,4.696860,h264ref,1199000,1
+p1,8.078427,hmmer,2533000,0
+p1,8.082277,hmmer,2533000,0
+p1,8.078251,hmmer,2533000,0
+p1,6.667370,hmmer,2133000,0
+p1,6.671319,hmmer,2133000,0
+p1,6.667091,hmmer,2133000,0
+p1,5.572263,hmmer,1733000,0
+p1,5.583523,hmmer,1733000,0
+p1,5.602766,hmmer,1733000,0
+p1,4.696346,hmmer,1199000,0
+p1,4.691970,hmmer,1199000,0
+p1,4.659762,hmmer,1199000,0
+p1,7.965587,hmmer,2533000,1
+p1,8.011520,hmmer,2533000,1
+p1,7.990328,hmmer,2533000,1
+p1,6.565242,hmmer,2133000,1
+p1,6.550513,hmmer,2133000,1
+p1,6.547804,hmmer,2133000,1
+p1,5.568800,hmmer,1733000,1
+p1,5.542244,hmmer,1733000,1
+p1,5.578698,hmmer,1733000,1
+p1,4.658903,hmmer,1199000,1
+p1,4.676469,hmmer,1199000,1
+p1,4.649615,hmmer,1199000,1
+p1,7.157684,lbm,2533000,0
+p1,7.158267,lbm,2533000,0
+p1,7.154550,lbm,2533000,0
+p1,6.291333,lbm,2133000,0
+p1,6.314160,lbm,2133000,0
+p1,6.300521,lbm,2133000,0
+p1,5.455231,lbm,1733000,0
+p1,5.424173,lbm,1733000,0
+p1,5.497417,lbm,1733000,0
+p1,4.653251,lbm,1199000,0
+p1,4.625413,lbm,1199000,0
+p1,4.631805,lbm,1199000,0
+p1,7.198178,lbm,2533000,1
+p1,7.216762,lbm,2533000,1
+p1,7.215823,lbm,2533000,1
+p1,6.376516,lbm,2133000,1
+p1,6.300388,lbm,2133000,1
+p1,6.300965,lbm,2133000,1
+p1,5.427429,lbm,1733000,1
+p1,5.500972,lbm,1733000,1
+p1,5.472300,lbm,1733000,1
+p1,4.639886,lbm,1199000,1
+p1,4.609046,lbm,1199000,1
+p1,4.627501,lbm,1199000,1
+p1,7.358961,leslie3d,2533000,0
+p1,7.371695,leslie3d,2533000,0
+p1,7.374163,leslie3d,2533000,0
+p1,6.440240,leslie3d,2133000,0
+p1,6.451477,leslie3d,2133000,0
+p1,6.442604,leslie3d,2133000,0
+p1,5.566527,leslie3d,1733000,0
+p1,5.558410,leslie3d,1733000,0
+p1,5.554268,leslie3d,1733000,0
+p1,4.687364,leslie3d,1199000,0
+p1,4.697924,leslie3d,1199000,0
+p1,4.689961,leslie3d,1199000,0
+p1,7.378976,leslie3d,2533000,1
+p1,7.380566,leslie3d,2533000,1
+p1,7.369273,leslie3d,2533000,1
+p1,6.412106,leslie3d,2133000,1
+p1,6.437175,leslie3d,2133000,1
+p1,6.430760,leslie3d,2133000,1
+p1,5.554629,leslie3d,1733000,1
+p1,5.554288,leslie3d,1733000,1
+p1,5.575827,leslie3d,1733000,1
+p1,4.689104,leslie3d,1199000,1
+p1,4.685437,leslie3d,1199000,1
+p1,4.681047,leslie3d,1199000,1
+p1,6.996454,mcf,2533000,0
+p1,7.024368,mcf,2533000,0
+p1,7.068278,mcf,2533000,0
+p1,6.100733,mcf,2133000,0
+p1,6.163525,mcf,2133000,0
+p1,6.207893,mcf,2133000,0
+p1,5.330699,mcf,1733000,0
+p1,5.283706,mcf,1733000,0
+p1,5.379973,mcf,1733000,0
+p1,4.581691,mcf,1199000,0
+p1,4.594683,mcf,1199000,0
+p1,4.574379,mcf,1199000,0
+p1,6.884627,mcf,2533000,1
+p1,6.894889,mcf,2533000,1
+p1,6.853905,mcf,2533000,1
+p1,6.183896,mcf,2133000,1
+p1,6.141791,mcf,2133000,1
+p1,6.131329,mcf,2133000,1
+p1,5.308326,mcf,1733000,1
+p1,5.369050,mcf,1733000,1
+p1,5.367232,mcf,1733000,1
+p1,4.545109,mcf,1199000,1
+p1,4.540210,mcf,1199000,1
+p1,4.581944,mcf,1199000,1
+p1,6.981468,milc,2533000,0
+p1,6.784319,milc,2533000,0
+p1,6.776681,milc,2533000,0
+p1,5.979512,milc,2133000,0
+p1,5.956561,milc,2133000,0
+p1,5.971352,milc,2133000,0
+p1,5.151436,milc,1733000,0
+p1,5.166351,milc,1733000,0
+p1,5.269986,milc,1733000,0
+p1,4.480208,milc,1199000,0
+p1,4.397769,milc,1199000,0
+p1,4.466466,milc,1199000,0
+p1,6.909139,milc,2533000,1
+p1,6.803507,milc,2533000,1
+p1,6.946161,milc,2533000,1
+p1,6.120526,milc,2133000,1
+p1,6.130547,milc,2133000,1
+p1,6.127123,milc,2133000,1
+p1,5.331079,milc,1733000,1
+p1,5.434196,milc,1733000,1
+p1,5.410328,milc,1733000,1
+p1,4.617966,milc,1199000,1
+p1,4.673069,milc,1199000,1
+p1,4.584633,milc,1199000,1
+p1,6.780933,namd,2533000,0
+p1,6.911350,namd,2533000,0
+p1,6.807684,namd,2533000,0
+p1,5.939104,namd,2133000,0
+p1,5.991703,namd,2133000,0
+p1,5.972560,namd,2133000,0
+p1,5.288740,namd,1733000,0
+p1,5.310902,namd,1733000,0
+p1,5.324871,namd,1733000,0
+p1,4.548917,namd,1199000,0
+p1,4.474496,namd,1199000,0
+p1,4.499101,namd,1199000,0
+p1,7.050212,namd,2533000,1
+p1,6.742022,namd,2533000,1
+p1,6.734949,namd,2533000,1
+p1,6.026140,namd,2133000,1
+p1,5.922697,namd,2133000,1
+p1,5.951870,namd,2133000,1
+p1,5.323312,namd,1733000,1
+p1,5.253283,namd,1733000,1
+p1,5.335697,namd,1733000,1
+p1,4.638590,namd,1199000,1
+p1,4.606203,namd,1199000,1
+p1,4.586715,namd,1199000,1
+p1,7.993566,omnetpp,2533000,0
+p1,7.873180,omnetpp,2533000,0
+p1,7.777293,omnetpp,2533000,0
+p1,6.481420,omnetpp,2133000,0
+p1,6.476269,omnetpp,2133000,0
+p1,6.519196,omnetpp,2133000,0
+p1,5.580040,omnetpp,1733000,0
+p1,5.547516,omnetpp,1733000,0
+p1,5.567198,omnetpp,1733000,0
+p1,4.655346,omnetpp,1199000,0
+p1,4.641153,omnetpp,1199000,0
+p1,4.654636,omnetpp,1199000,0
+p1,7.871288,omnetpp,2533000,1
+p1,7.836773,omnetpp,2533000,1
+p1,7.786465,omnetpp,2533000,1
+p1,6.469602,omnetpp,2133000,1
+p1,6.479457,omnetpp,2133000,1
+p1,6.541152,omnetpp,2133000,1
+p1,5.582128,omnetpp,1733000,1
+p1,5.599187,omnetpp,1733000,1
+p1,5.655523,omnetpp,1733000,1
+p1,4.781450,omnetpp,1199000,1
+p1,4.763705,omnetpp,1199000,1
+p1,4.769715,omnetpp,1199000,1
+p1,6.974120,povray,2533000,0
+p1,7.233170,povray,2533000,0
+p1,6.524133,povray,2533000,0
+p1,5.560799,povray,2133000,0
+p1,5.455135,povray,2133000,0
+p1,5.858599,povray,2133000,0
+p1,4.928903,povray,1733000,0
+p1,5.123524,povray,1733000,0
+p1,4.958132,povray,1733000,0
+p1,4.353551,povray,1199000,0
+p1,4.419981,povray,1199000,0
+p1,4.253198,povray,1199000,0
+p1,6.488924,povray,2533000,1
+p1,6.615106,povray,2533000,1
+p1,6.919769,povray,2533000,1
+p1,5.783348,povray,2133000,1
+p1,5.762641,povray,2133000,1
+p1,5.803577,povray,2133000,1
+p1,5.070770,povray,1733000,1
+p1,5.102557,povray,1733000,1
+p1,5.299922,povray,1733000,1
+p1,4.358595,povray,1199000,1
+p1,4.441538,povray,1199000,1
+p1,4.562883,povray,1199000,1
+p1,7.564688,sjeng,2533000,0
+p1,7.567346,sjeng,2533000,0
+p1,7.555804,sjeng,2533000,0
+p1,6.497957,sjeng,2133000,0
+p1,6.465938,sjeng,2133000,0
+p1,6.467236,sjeng,2133000,0
+p1,5.591732,sjeng,1733000,0
+p1,5.587606,sjeng,1733000,0
+p1,5.600917,sjeng,1733000,0
+p1,4.688703,sjeng,1199000,0
+p1,4.675439,sjeng,1199000,0
+p1,4.669819,sjeng,1199000,0
+p1,7.530686,sjeng,2533000,1
+p1,7.522219,sjeng,2533000,1
+p1,7.545079,sjeng,2533000,1
+p1,6.440486,sjeng,2133000,1
+p1,6.461290,sjeng,2133000,1
+p1,6.433589,sjeng,2133000,1
+p1,5.697425,sjeng,1733000,1
+p1,5.688962,sjeng,1733000,1
+p1,5.705791,sjeng,1733000,1
+p1,4.800145,sjeng,1199000,1
+p1,4.799262,sjeng,1199000,1
+p1,4.800703,sjeng,1199000,1
+p1,6.038899,soplex,2533000,0
+p1,6.110646,soplex,2533000,0
+p1,6.412415,soplex,2533000,0
+p1,5.529926,soplex,2133000,0
+p1,5.375904,soplex,2133000,0
+p1,5.469881,soplex,2133000,0
+p1,4.953742,soplex,1733000,0
+p1,4.928611,soplex,1733000,0
+p1,4.815330,soplex,1733000,0
+p1,4.378132,soplex,1199000,0
+p1,4.285365,soplex,1199000,0
+p1,4.260690,soplex,1199000,0
+p1,6.416552,soplex,2533000,1
+p1,6.002996,soplex,2533000,1
+p1,6.100067,soplex,2533000,1
+p1,5.678440,soplex,2133000,1
+p1,5.659198,soplex,2133000,1
+p1,5.338485,soplex,2133000,1
+p1,5.078856,soplex,1733000,1
+p1,5.117877,soplex,1733000,1
+p1,5.062965,soplex,1733000,1
+p1,4.334753,soplex,1199000,1
+p1,4.356669,soplex,1199000,1
+p1,4.348118,soplex,1199000,1
+p1,6.681557,sphinx3,2533000,0
+p1,6.643822,sphinx3,2533000,0
+p1,6.646209,sphinx3,2533000,0
+p1,5.861987,sphinx3,2133000,0
+p1,5.775528,sphinx3,2133000,0
+p1,6.177924,sphinx3,2133000,0
+p1,5.435203,sphinx3,1733000,0
+p1,5.214938,sphinx3,1733000,0
+p1,5.198332,sphinx3,1733000,0
+p1,4.342585,sphinx3,1199000,0
+p1,4.427512,sphinx3,1199000,0
+p1,4.373077,sphinx3,1199000,0
+p1,6.794483,sphinx3,2533000,1
+p1,6.659656,sphinx3,2533000,1
+p1,6.851118,sphinx3,2533000,1
+p1,5.838746,sphinx3,2133000,1
+p1,5.785142,sphinx3,2133000,1
+p1,5.984911,sphinx3,2133000,1
+p1,5.240341,sphinx3,1733000,1
+p1,5.297313,sphinx3,1733000,1
+p1,5.239297,sphinx3,1733000,1
+p1,4.514700,sphinx3,1199000,1
+p1,4.510299,sphinx3,1199000,1
+p1,4.515225,sphinx3,1199000,1
+p1,7.020743,zeusmp,2533000,0
+p1,7.106069,zeusmp,2533000,0
+p1,7.014693,zeusmp,2533000,0
+p1,6.159353,zeusmp,2133000,0
+p1,6.268083,zeusmp,2133000,0
+p1,6.263139,zeusmp,2133000,0
+p1,5.453290,zeusmp,1733000,0
+p1,5.458265,zeusmp,1733000,0
+p1,5.476140,zeusmp,1733000,0
+p1,4.624702,zeusmp,1199000,0
+p1,4.623200,zeusmp,1199000,0
+p1,4.617494,zeusmp,1199000,0
+p1,7.086582,zeusmp,2533000,1
+p1,7.077547,zeusmp,2533000,1
+p1,7.076621,zeusmp,2533000,1
+p1,6.257766,zeusmp,2133000,1
+p1,6.208704,zeusmp,2133000,1
+p1,6.208352,zeusmp,2133000,1
+p1,5.552186,zeusmp,1733000,1
+p1,5.503467,zeusmp,1733000,1
+p1,5.532897,zeusmp,1733000,1
+p1,4.719371,zeusmp,1199000,1
+p1,4.704682,zeusmp,1199000,1
+p1,4.709862,zeusmp,1199000,1
+p1,9.368109,bzip2,2533000,0
+p1,9.210580,bzip2,2533000,0
+p1,9.130486,bzip2,2533000,0
+p1,6.287883,bzip2,2133000,0
+p1,6.306010,bzip2,2133000,0
+p1,7.252160,bzip2,2133000,0
+p1,5.588974,bzip2,1733000,0
+p1,5.669977,bzip2,1733000,0
+p1,5.660946,bzip2,1733000,0
+p1,4.629323,bzip2,1199000,0
+p1,4.648715,bzip2,1199000,0
+p1,4.648430,bzip2,1199000,0
+p1,8.164346,bzip2,2533000,1
+p1,8.358045,bzip2,2533000,1
+p1,8.453694,bzip2,2533000,1
+p1,7.105383,bzip2,2133000,1
+p1,6.936547,bzip2,2133000,1
+p1,6.837463,bzip2,2133000,1
+p1,5.736205,bzip2,1733000,1
+p1,5.773266,bzip2,1733000,1
+p1,5.769453,bzip2,1733000,1
+p1,4.759058,bzip2,1199000,1
+p1,4.751811,bzip2,1199000,1
+p1,4.728820,bzip2,1199000,1
+p1,7.130523,cactusADM,2533000,0
+p1,7.052730,cactusADM,2533000,0
+p1,6.991332,cactusADM,2533000,0
+p1,6.198179,cactusADM,2133000,0
+p1,6.204172,cactusADM,2133000,0
+p1,6.237836,cactusADM,2133000,0
+p1,5.360039,cactusADM,1733000,0
+p1,5.361195,cactusADM,1733000,0
+p1,5.414564,cactusADM,1733000,0
+p1,4.545428,cactusADM,1199000,0
+p1,4.532912,cactusADM,1199000,0
+p1,4.535379,cactusADM,1199000,0
+p1,7.100674,cactusADM,2533000,1
+p1,7.083077,cactusADM,2533000,1
+p1,6.942537,cactusADM,2533000,1
+p1,6.066888,cactusADM,2133000,1
+p1,6.105935,cactusADM,2133000,1
+p1,6.206309,cactusADM,2133000,1
+p1,5.466701,cactusADM,1733000,1
+p1,5.489182,cactusADM,1733000,1
+p1,5.519700,cactusADM,1733000,1
+p1,4.688284,cactusADM,1199000,1
+p1,4.674222,cactusADM,1199000,1
+p1,4.665798,cactusADM,1199000,1
+p1,0.791267,cpuload_all_0_4096,2533000,0
+p1,0.691495,cpuload_all_0_4096,2533000,0
+p1,0.737902,cpuload_all_0_4096,2533000,0
+p1,0.802815,cpuload_all_0_4096,2133000,0
+p1,0.865459,cpuload_all_0_4096,2133000,0
+p1,0.880783,cpuload_all_0_4096,2133000,0
+p1,0.931488,cpuload_all_0_4096,1733000,0
+p1,0.919615,cpuload_all_0_4096,1733000,0
+p1,0.853751,cpuload_all_0_4096,1733000,0
+p1,0.748597,cpuload_all_0_4096,1199000,0
+p1,0.666730,cpuload_all_0_4096,1199000,0
+p1,0.705650,cpuload_all_0_4096,1199000,0
+p1,0.902060,cpuload_all_0_4096,2533000,1
+p1,0.830888,cpuload_all_0_4096,2533000,1
+p1,0.754914,cpuload_all_0_4096,2533000,1
+p1,0.763575,cpuload_all_0_4096,2133000,1
+p1,0.684919,cpuload_all_0_4096,2133000,1
+p1,0.718068,cpuload_all_0_4096,2133000,1
+p1,0.757273,cpuload_all_0_4096,1733000,1
+p1,0.770605,cpuload_all_0_4096,1733000,1
+p1,0.946653,cpuload_all_0_4096,1733000,1
+p1,0.790336,cpuload_all_0_4096,1199000,1
+p1,0.775580,cpuload_all_0_4096,1199000,1
+p1,0.785950,cpuload_all_0_4096,1199000,1
+p1,2.636745,cpuload_all_25_4096,2533000,0
+p1,2.569482,cpuload_all_25_4096,2533000,0
+p1,2.637374,cpuload_all_25_4096,2533000,0
+p1,2.379990,cpuload_all_25_4096,2133000,0
+p1,2.364348,cpuload_all_25_4096,2133000,0
+p1,2.368129,cpuload_all_25_4096,2133000,0
+p1,2.170196,cpuload_all_25_4096,1733000,0
+p1,2.128257,cpuload_all_25_4096,1733000,0
+p1,2.128887,cpuload_all_25_4096,1733000,0
+p1,1.993116,cpuload_all_25_4096,1199000,0
+p1,1.998615,cpuload_all_25_4096,1199000,0
+p1,2.015756,cpuload_all_25_4096,1199000,0
+p1,2.612029,cpuload_all_25_4096,2533000,1
+p1,2.681268,cpuload_all_25_4096,2533000,1
+p1,2.640251,cpuload_all_25_4096,2533000,1
+p1,2.344558,cpuload_all_25_4096,2133000,1
+p1,2.303975,cpuload_all_25_4096,2133000,1
+p1,2.284932,cpuload_all_25_4096,2133000,1
+p1,2.172029,cpuload_all_25_4096,1733000,1
+p1,2.187923,cpuload_all_25_4096,1733000,1
+p1,2.177213,cpuload_all_25_4096,1733000,1
+p1,1.992963,cpuload_all_25_4096,1199000,1
+p1,1.965641,cpuload_all_25_4096,1199000,1
+p1,2.002820,cpuload_all_25_4096,1199000,1
+p1,7.013588,cpuload_all_50_4096,2533000,0
+p1,7.023713,cpuload_all_50_4096,2533000,0
+p1,7.015561,cpuload_all_50_4096,2533000,0
+p1,6.125521,cpuload_all_50_4096,2133000,0
+p1,6.214890,cpuload_all_50_4096,2133000,0
+p1,6.220968,cpuload_all_50_4096,2133000,0
+p1,5.429044,cpuload_all_50_4096,1733000,0
+p1,5.440207,cpuload_all_50_4096,1733000,0
+p1,5.459876,cpuload_all_50_4096,1733000,0
+p1,4.554056,cpuload_all_50_4096,1199000,0
+p1,4.561988,cpuload_all_50_4096,1199000,0
+p1,4.561237,cpuload_all_50_4096,1199000,0
+p1,7.050101,cpuload_all_50_4096,2533000,1
+p1,7.030803,cpuload_all_50_4096,2533000,1
+p1,7.008448,cpuload_all_50_4096,2533000,1
+p1,6.221840,cpuload_all_50_4096,2133000,1
+p1,6.199659,cpuload_all_50_4096,2133000,1
+p1,6.246252,cpuload_all_50_4096,2133000,1
+p1,5.532477,cpuload_all_50_4096,1733000,1
+p1,5.482385,cpuload_all_50_4096,1733000,1
+p1,5.479604,cpuload_all_50_4096,1733000,1
+p1,4.640129,cpuload_all_50_4096,1199000,1
+p1,4.628738,cpuload_all_50_4096,1199000,1
+p1,4.637343,cpuload_all_50_4096,1199000,1
+p1,7.033771,cpuload_all_75_4096,2533000,0
+p1,7.133033,cpuload_all_75_4096,2533000,0
+p1,7.123946,cpuload_all_75_4096,2533000,0
+p1,6.263004,cpuload_all_75_4096,2133000,0
+p1,6.228382,cpuload_all_75_4096,2133000,0
+p1,6.231730,cpuload_all_75_4096,2133000,0
+p1,5.391562,cpuload_all_75_4096,1733000,0
+p1,5.405845,cpuload_all_75_4096,1733000,0
+p1,5.379584,cpuload_all_75_4096,1733000,0
+p1,4.514574,cpuload_all_75_4096,1199000,0
+p1,4.515840,cpuload_all_75_4096,1199000,0
+p1,4.582290,cpuload_all_75_4096,1199000,0
+p1,7.083844,cpuload_all_75_4096,2533000,1
+p1,7.110531,cpuload_all_75_4096,2533000,1
+p1,7.103408,cpuload_all_75_4096,2533000,1
+p1,6.224737,cpuload_all_75_4096,2133000,1
+p1,6.144888,cpuload_all_75_4096,2133000,1
+p1,6.157522,cpuload_all_75_4096,2133000,1
+p1,5.427536,cpuload_all_75_4096,1733000,1
+p1,5.477382,cpuload_all_75_4096,1733000,1
+p1,5.556737,cpuload_all_75_4096,1733000,1
+p1,4.703785,cpuload_all_75_4096,1199000,1
+p1,4.704698,cpuload_all_75_4096,1199000,1
+p1,4.688425,cpuload_all_75_4096,1199000,1
+p1,7.143017,cpuload_all_100_4096,2533000,0
+p1,7.139867,cpuload_all_100_4096,2533000,0
+p1,7.162977,cpuload_all_100_4096,2533000,0
+p1,6.227885,cpuload_all_100_4096,2133000,0
+p1,6.172089,cpuload_all_100_4096,2133000,0
+p1,6.185204,cpuload_all_100_4096,2133000,0
+p1,5.395601,cpuload_all_100_4096,1733000,0
+p1,5.398130,cpuload_all_100_4096,1733000,0
+p1,5.391826,cpuload_all_100_4096,1733000,0
+p1,4.633451,cpuload_all_100_4096,1199000,0
+p1,4.663223,cpuload_all_100_4096,1199000,0
+p1,4.621678,cpuload_all_100_4096,1199000,0
+p1,7.121588,cpuload_all_100_4096,2533000,1
+p1,7.032857,cpuload_all_100_4096,2533000,1
+p1,7.034951,cpuload_all_100_4096,2533000,1
+p1,6.160787,cpuload_all_100_4096,2133000,1
+p1,6.262832,cpuload_all_100_4096,2133000,1
+p1,6.253293,cpuload_all_100_4096,2133000,1
+p1,5.561621,cpuload_all_100_4096,1733000,1
+p1,5.561839,cpuload_all_100_4096,1733000,1
+p1,5.563556,cpuload_all_100_4096,1733000,1
+p1,4.658068,cpuload_all_100_4096,1199000,1
+p1,4.658975,cpuload_all_100_4096,1199000,1
+p1,4.704594,cpuload_all_100_4096,1199000,1
+p1,8.148946,gamess,2533000,0
+p1,8.166530,gamess,2533000,0
+p1,8.145177,gamess,2533000,0
+p1,6.668508,gamess,2133000,0
+p1,6.672105,gamess,2133000,0
+p1,6.693568,gamess,2133000,0
+p1,5.640383,gamess,1733000,0
+p1,5.643450,gamess,1733000,0
+p1,5.638352,gamess,1733000,0
+p1,4.688382,gamess,1199000,0
+p1,4.695710,gamess,1199000,0
+p1,4.699827,gamess,1199000,0
+p1,8.094477,gamess,2533000,1
+p1,8.124675,gamess,2533000,1
+p1,8.109363,gamess,2533000,1
+p1,6.659885,gamess,2133000,1
+p1,6.647197,gamess,2133000,1
+p1,6.633672,gamess,2133000,1
+p1,5.752773,gamess,1733000,1
+p1,5.730814,gamess,1733000,1
+p1,5.747230,gamess,1733000,1
+p1,4.797575,gamess,1199000,1
+p1,4.795382,gamess,1199000,1
+p1,4.798396,gamess,1199000,1
+p1,7.366995,gcc,2533000,0
+p1,7.378631,gcc,2533000,0
+p1,7.394518,gcc,2533000,0
+p1,6.426191,gcc,2133000,0
+p1,6.427294,gcc,2133000,0
+p1,6.434152,gcc,2133000,0
+p1,5.578017,gcc,1733000,0
+p1,5.558869,gcc,1733000,0
+p1,5.566383,gcc,1733000,0
+p1,4.685562,gcc,1199000,0
+p1,4.685852,gcc,1199000,0
+p1,4.683214,gcc,1199000,0
+p1,7.384182,gcc,2533000,1
+p1,7.409104,gcc,2533000,1
+p1,7.392710,gcc,2533000,1
+p1,6.452483,gcc,2133000,1
+p1,6.452659,gcc,2133000,1
+p1,6.448642,gcc,2133000,1
+p1,5.594788,gcc,1733000,1
+p1,5.593298,gcc,1733000,1
+p1,5.586595,gcc,1733000,1
+p1,4.704142,gcc,1199000,1
+p1,4.720805,gcc,1199000,1
+p1,4.719145,gcc,1199000,1
+p1,7.603615,gobmk,2533000,0
+p1,7.596027,gobmk,2533000,0
+p1,7.601794,gobmk,2533000,0
+p1,6.463998,gobmk,2133000,0
+p1,6.488585,gobmk,2133000,0
+p1,6.484007,gobmk,2133000,0
+p1,5.604395,gobmk,1733000,0
+p1,5.570196,gobmk,1733000,0
+p1,5.591909,gobmk,1733000,0
+p1,4.677071,gobmk,1199000,0
+p1,4.679954,gobmk,1199000,0
+p1,4.676626,gobmk,1199000,0
+p1,7.568667,gobmk,2533000,1
+p1,7.572087,gobmk,2533000,1
+p1,7.528643,gobmk,2533000,1
+p1,6.467030,gobmk,2133000,1
+p1,6.456815,gobmk,2133000,1
+p1,6.475086,gobmk,2133000,1
+p1,5.584552,gobmk,1733000,1
+p1,5.548446,gobmk,1733000,1
+p1,5.573418,gobmk,1733000,1
+p1,4.691090,gobmk,1199000,1
+p1,4.697476,gobmk,1199000,1
+p1,4.706128,gobmk,1199000,1
+p1,7.391396,gromacs,2533000,0
+p1,7.418544,gromacs,2533000,0
+p1,7.375790,gromacs,2533000,0
+p1,6.423225,gromacs,2133000,0
+p1,6.409316,gromacs,2133000,0
+p1,6.423112,gromacs,2133000,0
+p1,5.560565,gromacs,1733000,0
+p1,5.557887,gromacs,1733000,0
+p1,5.571445,gromacs,1733000,0
+p1,4.682662,gromacs,1199000,0
+p1,4.678742,gromacs,1199000,0
+p1,4.683346,gromacs,1199000,0
+p1,7.354137,gromacs,2533000,1
+p1,7.396065,gromacs,2533000,1
+p1,7.400445,gromacs,2533000,1
+p1,6.417854,gromacs,2133000,1
+p1,6.426512,gromacs,2133000,1
+p1,6.438677,gromacs,2133000,1
+p1,5.562886,gromacs,1733000,1
+p1,5.565701,gromacs,1733000,1
+p1,5.564174,gromacs,1733000,1
+p1,4.705260,gromacs,1199000,1
+p1,4.694617,gromacs,1199000,1
+p1,4.709358,gromacs,1199000,1
+p1,7.739203,h264ref,2533000,0
+p1,7.718419,h264ref,2533000,0
+p1,7.712873,h264ref,2533000,0
+p1,6.497298,h264ref,2133000,0
+p1,6.478925,h264ref,2133000,0
+p1,6.465847,h264ref,2133000,0
+p1,5.588307,h264ref,1733000,0
+p1,5.596121,h264ref,1733000,0
+p1,5.616192,h264ref,1733000,0
+p1,4.708790,h264ref,1199000,0
+p1,4.695429,h264ref,1199000,0
+p1,4.702169,h264ref,1199000,0
+p1,7.701139,h264ref,2533000,1
+p1,7.728831,h264ref,2533000,1
+p1,7.677269,h264ref,2533000,1
+p1,6.484470,h264ref,2133000,1
+p1,6.524625,h264ref,2133000,1
+p1,6.503812,h264ref,2133000,1
+p1,5.584017,h264ref,1733000,1
+p1,5.611938,h264ref,1733000,1
+p1,5.605989,h264ref,1733000,1
+p1,4.686813,h264ref,1199000,1
+p1,4.707678,h264ref,1199000,1
+p1,4.698541,h264ref,1199000,1
+p1,8.116175,hmmer,2533000,0
+p1,8.155873,hmmer,2533000,0
+p1,8.013372,hmmer,2533000,0
+p1,6.694338,hmmer,2133000,0
+p1,6.656989,hmmer,2133000,0
+p1,6.610664,hmmer,2133000,0
+p1,5.607349,hmmer,1733000,0
+p1,5.611320,hmmer,1733000,0
+p1,5.608788,hmmer,1733000,0
+p1,4.702430,hmmer,1199000,0
+p1,4.689236,hmmer,1199000,0
+p1,4.703234,hmmer,1199000,0
+p1,8.080863,hmmer,2533000,1
+p1,8.151544,hmmer,2533000,1
+p1,8.024466,hmmer,2533000,1
+p1,6.575250,hmmer,2133000,1
+p1,6.645224,hmmer,2133000,1
+p1,6.623643,hmmer,2133000,1
+p1,5.584055,hmmer,1733000,1
+p1,5.633041,hmmer,1733000,1
+p1,5.624776,hmmer,1733000,1
+p1,4.694803,hmmer,1199000,1
+p1,4.719914,hmmer,1199000,1
+p1,4.670912,hmmer,1199000,1
+p1,7.217848,lbm,2533000,0
+p1,7.247591,lbm,2533000,0
+p1,7.246704,lbm,2533000,0
+p1,6.406575,lbm,2133000,0
+p1,6.287281,lbm,2133000,0
+p1,6.301191,lbm,2133000,0
+p1,5.530591,lbm,1733000,0
+p1,5.533608,lbm,1733000,0
+p1,5.509535,lbm,1733000,0
+p1,4.683519,lbm,1199000,0
+p1,4.701019,lbm,1199000,0
+p1,4.639820,lbm,1199000,0
+p1,7.226338,lbm,2533000,1
+p1,7.245781,lbm,2533000,1
+p1,7.249513,lbm,2533000,1
+p1,6.379260,lbm,2133000,1
+p1,6.396951,lbm,2133000,1
+p1,6.392963,lbm,2133000,1
+p1,5.543382,lbm,1733000,1
+p1,5.511237,lbm,1733000,1
+p1,5.500721,lbm,1733000,1
+p1,4.652038,lbm,1199000,1
+p1,4.685589,lbm,1199000,1
+p1,4.658347,lbm,1199000,1
+p1,7.369486,leslie3d,2533000,0
+p1,7.398890,leslie3d,2533000,0
+p1,7.398263,leslie3d,2533000,0
+p1,6.421084,leslie3d,2133000,0
+p1,6.453619,leslie3d,2133000,0
+p1,6.440868,leslie3d,2133000,0
+p1,5.586310,leslie3d,1733000,0
+p1,5.562647,leslie3d,1733000,0
+p1,5.580875,leslie3d,1733000,0
+p1,4.713201,leslie3d,1199000,0
+p1,4.686164,leslie3d,1199000,0
+p1,4.703138,leslie3d,1199000,0
+p1,7.419931,leslie3d,2533000,1
+p1,7.417680,leslie3d,2533000,1
+p1,7.365033,leslie3d,2533000,1
+p1,6.449278,leslie3d,2133000,1
+p1,6.449052,leslie3d,2133000,1
+p1,6.448905,leslie3d,2133000,1
+p1,5.562482,leslie3d,1733000,1
+p1,5.558606,leslie3d,1733000,1
+p1,5.560080,leslie3d,1733000,1
+p1,4.690396,leslie3d,1199000,1
+p1,4.690648,leslie3d,1199000,1
+p1,4.699369,leslie3d,1199000,1
+p1,7.063081,mcf,2533000,0
+p1,6.954591,mcf,2533000,0
+p1,6.991925,mcf,2533000,0
+p1,6.254507,mcf,2133000,0
+p1,6.131408,mcf,2133000,0
+p1,6.241142,mcf,2133000,0
+p1,5.390356,mcf,1733000,0
+p1,5.367105,mcf,1733000,0
+p1,5.397563,mcf,1733000,0
+p1,4.670628,mcf,1199000,0
+p1,4.588855,mcf,1199000,0
+p1,4.670246,mcf,1199000,0
+p1,6.922196,mcf,2533000,1
+p1,6.911187,mcf,2533000,1
+p1,6.930377,mcf,2533000,1
+p1,6.234998,mcf,2133000,1
+p1,6.262464,mcf,2133000,1
+p1,6.159353,mcf,2133000,1
+p1,5.404492,mcf,1733000,1
+p1,5.463422,mcf,1733000,1
+p1,5.351947,mcf,1733000,1
+p1,4.563027,mcf,1199000,1
+p1,4.624799,mcf,1199000,1
+p1,4.609264,mcf,1199000,1
+p1,7.006116,milc,2533000,0
+p1,7.023613,milc,2533000,0
+p1,6.931222,milc,2533000,0
+p1,6.111024,milc,2133000,0
+p1,6.101160,milc,2133000,0
+p1,6.171903,milc,2133000,0
+p1,5.434469,milc,1733000,0
+p1,5.330086,milc,1733000,0
+p1,5.369091,milc,1733000,0
+p1,4.576817,milc,1199000,0
+p1,4.622077,milc,1199000,0
+p1,4.482868,milc,1199000,0
+p1,6.995388,milc,2533000,1
+p1,6.942388,milc,2533000,1
+p1,6.923033,milc,2533000,1
+p1,6.145250,milc,2133000,1
+p1,6.080615,milc,2133000,1
+p1,5.970840,milc,2133000,1
+p1,5.393360,milc,1733000,1
+p1,5.317966,milc,1733000,1
+p1,5.346608,milc,1733000,1
+p1,4.581216,milc,1199000,1
+p1,4.630230,milc,1199000,1
+p1,4.489931,milc,1199000,1
+p1,6.984109,namd,2533000,0
+p1,7.063134,namd,2533000,0
+p1,6.799202,namd,2533000,0
+p1,6.027720,namd,2133000,0
+p1,6.170297,namd,2133000,0
+p1,6.264214,namd,2133000,0
+p1,5.369453,namd,1733000,0
+p1,5.301913,namd,1733000,0
+p1,5.333949,namd,1733000,0
+p1,4.586759,namd,1199000,0
+p1,4.676396,namd,1199000,0
+p1,4.533802,namd,1199000,0
+p1,6.969198,namd,2533000,1
+p1,7.137450,namd,2533000,1
+p1,6.818571,namd,2533000,1
+p2,8.668336,bzip2,2533000,0
+p2,7.822247,bzip2,2533000,0
+p2,7.620651,bzip2,2533000,0
+p2,6.595420,bzip2,2133000,0
+p2,6.602111,bzip2,2133000,0
+p2,6.650013,bzip2,2133000,0
+p2,5.621009,bzip2,1733000,0
+p2,5.631541,bzip2,1733000,0
+p2,5.607610,bzip2,1733000,0
+p2,4.531557,bzip2,1199000,0
+p2,4.487720,bzip2,1199000,0
+p2,4.511777,bzip2,1199000,0
+p2,7.742300,bzip2,2533000,1
+p2,7.735869,bzip2,2533000,1
+p2,7.634333,bzip2,2533000,1
+p2,6.641555,bzip2,2133000,1
+p2,6.668252,bzip2,2133000,1
+p2,6.666500,bzip2,2133000,1
+p2,5.645764,bzip2,1733000,1
+p2,5.593371,bzip2,1733000,1
+p2,5.597726,bzip2,1733000,1
+p2,4.499786,bzip2,1199000,1
+p2,4.523102,bzip2,1199000,1
+p2,4.485200,bzip2,1199000,1
+p2,7.362883,cactusADM,2533000,0
+p2,7.417263,cactusADM,2533000,0
+p2,7.299547,cactusADM,2533000,0
+p2,6.525772,cactusADM,2133000,0
+p2,6.440715,cactusADM,2133000,0
+p2,6.560376,cactusADM,2133000,0
+p2,5.508711,cactusADM,1733000,0
+p2,5.545656,cactusADM,1733000,0
+p2,5.525858,cactusADM,1733000,0
+p2,4.464020,cactusADM,1199000,0
+p2,4.468087,cactusADM,1199000,0
+p2,4.440122,cactusADM,1199000,0
+p2,7.336975,cactusADM,2533000,1
+p2,7.235442,cactusADM,2533000,1
+p2,7.386975,cactusADM,2533000,1
+p2,6.438700,cactusADM,2133000,1
+p2,6.525239,cactusADM,2133000,1
+p2,6.491036,cactusADM,2133000,1
+p2,5.533409,cactusADM,1733000,1
+p2,5.513144,cactusADM,1733000,1
+p2,5.506039,cactusADM,1733000,1
+p2,4.408835,cactusADM,1199000,1
+p2,4.451556,cactusADM,1199000,1
+p2,4.517723,cactusADM,1199000,1
+p2,0.922956,cpuload_all_0_4096,2533000,0
+p2,1.312327,cpuload_all_0_4096,2533000,0
+p2,1.099245,cpuload_all_0_4096,2533000,0
+p2,0.872172,cpuload_all_0_4096,2133000,0
+p2,0.767544,cpuload_all_0_4096,2133000,0
+p2,0.747110,cpuload_all_0_4096,2133000,0
+p2,0.728387,cpuload_all_0_4096,1733000,0
+p2,0.966984,cpuload_all_0_4096,1733000,0
+p2,0.975208,cpuload_all_0_4096,1733000,0
+p2,0.699431,cpuload_all_0_4096,1199000,0
+p2,0.831029,cpuload_all_0_4096,1199000,0
+p2,0.790871,cpuload_all_0_4096,1199000,0
+p2,0.696309,cpuload_all_0_4096,2533000,1
+p2,0.717631,cpuload_all_0_4096,2533000,1
+p2,0.785079,cpuload_all_0_4096,2533000,1
+p2,0.704711,cpuload_all_0_4096,2133000,1
+p2,0.649384,cpuload_all_0_4096,2133000,1
+p2,0.656851,cpuload_all_0_4096,2133000,1
+p2,0.683720,cpuload_all_0_4096,1733000,1
+p2,0.714953,cpuload_all_0_4096,1733000,1
+p2,0.630716,cpuload_all_0_4096,1733000,1
+p2,0.704738,cpuload_all_0_4096,1199000,1
+p2,0.644382,cpuload_all_0_4096,1199000,1
+p2,0.599703,cpuload_all_0_4096,1199000,1
+p2,2.610696,cpuload_all_25_4096,2533000,0
+p2,2.667956,cpuload_all_25_4096,2533000,0
+p2,2.626943,cpuload_all_25_4096,2533000,0
+p2,2.416280,cpuload_all_25_4096,2133000,0
+p2,2.355120,cpuload_all_25_4096,2133000,0
+p2,2.372612,cpuload_all_25_4096,2133000,0
+p2,2.040426,cpuload_all_25_4096,1733000,0
+p2,2.102230,cpuload_all_25_4096,1733000,0
+p2,2.106361,cpuload_all_25_4096,1733000,0
+p2,1.894291,cpuload_all_25_4096,1199000,0
+p2,1.864648,cpuload_all_25_4096,1199000,0
+p2,1.862761,cpuload_all_25_4096,1199000,0
+p2,2.630830,cpuload_all_25_4096,2533000,1
+p2,2.615028,cpuload_all_25_4096,2533000,1
+p2,2.643852,cpuload_all_25_4096,2533000,1
+p2,2.379534,cpuload_all_25_4096,2133000,1
+p2,2.368282,cpuload_all_25_4096,2133000,1
+p2,2.377004,cpuload_all_25_4096,2133000,1
+p2,2.140709,cpuload_all_25_4096,1733000,1
+p2,2.029251,cpuload_all_25_4096,1733000,1
+p2,2.060044,cpuload_all_25_4096,1733000,1
+p2,1.888552,cpuload_all_25_4096,1199000,1
+p2,1.881832,cpuload_all_25_4096,1199000,1
+p2,1.883586,cpuload_all_25_4096,1199000,1
+p2,7.344304,cpuload_all_50_4096,2533000,0
+p2,7.474934,cpuload_all_50_4096,2533000,0
+p2,7.386247,cpuload_all_50_4096,2533000,0
+p2,6.473187,cpuload_all_50_4096,2133000,0
+p2,6.394754,namd,2133000,1
+p2,6.461742,namd,2133000,1
+p2,6.195897,namd,2133000,1
+p2,5.444340,namd,1733000,1
+p2,5.518177,namd,1733000,1
+p2,5.333762,namd,1733000,1
+p2,4.359040,namd,1199000,1
+p2,4.499080,namd,1199000,1
+p2,4.317818,namd,1199000,1
+p2,8.099535,omnetpp,2533000,0
+p2,5.724378,cpuload_all_50_4096,2133000,0
+p2,8.071319,omnetpp,2533000,0
+p2,8.183534,omnetpp,2533000,0
+p2,6.698313,omnetpp,2133000,0
+p2,6.651318,omnetpp,2133000,0
+p2,6.646020,omnetpp,2133000,0
+p2,5.671519,omnetpp,1733000,0
+p2,5.694801,omnetpp,1733000,0
+p2,5.653245,omnetpp,1733000,0
+p2,4.524776,omnetpp,1199000,0
+p2,4.547090,omnetpp,1199000,0
+p2,6.460612,cpuload_all_50_4096,2133000,0
+p2,4.517351,omnetpp,1199000,0
+p2,8.161324,omnetpp,2533000,1
+p2,8.075237,omnetpp,2533000,1
+p2,8.094529,omnetpp,2533000,1
+p2,6.827988,omnetpp,2133000,1
+p2,6.819753,omnetpp,2133000,1
+p2,6.792450,omnetpp,2133000,1
+p2,5.701032,omnetpp,1733000,1
+p2,5.700414,omnetpp,1733000,1
+p2,5.691484,omnetpp,1733000,1
+p2,5.505477,cpuload_all_50_4096,1733000,0
+p2,4.530818,omnetpp,1199000,1
+p2,4.505056,omnetpp,1199000,1
+p2,4.535174,omnetpp,1199000,1
+p2,6.839420,povray,2533000,0
+p2,7.272048,povray,2533000,0
+p2,6.841869,povray,2533000,0
+p2,5.886510,povray,2133000,0
+p2,5.802708,povray,2133000,0
+p2,5.745587,povray,2133000,0
+p2,5.091991,povray,1733000,0
+p2,5.551105,cpuload_all_50_4096,1733000,0
+p2,5.119625,povray,1733000,0
+p2,5.139771,povray,1733000,0
+p2,4.349870,povray,1199000,0
+p2,4.346685,povray,1199000,0
+p2,4.296282,povray,1199000,0
+p2,7.249134,povray,2533000,1
+p2,7.122214,povray,2533000,1
+p2,7.154352,povray,2533000,1
+p2,5.991982,povray,2133000,1
+p2,6.192621,povray,2133000,1
+p2,5.490754,cpuload_all_50_4096,1733000,0
+p2,5.966437,povray,2133000,1
+p2,5.242868,povray,1733000,1
+p2,5.226251,povray,1733000,1
+p2,4.967641,povray,1733000,1
+p2,4.378665,povray,1199000,1
+p2,4.495515,povray,1199000,1
+p2,4.359721,povray,1199000,1
+p2,7.906982,sjeng,2533000,0
+p2,7.919500,sjeng,2533000,0
+p2,7.923554,sjeng,2533000,0
+p2,4.406170,cpuload_all_50_4096,1199000,0
+p2,6.624825,sjeng,2133000,0
+p2,6.645723,sjeng,2133000,0
+p2,6.661244,sjeng,2133000,0
+p2,5.716373,sjeng,1733000,0
+p2,5.720100,sjeng,1733000,0
+p2,5.712913,sjeng,1733000,0
+p2,4.545249,sjeng,1199000,0
+p2,4.547621,sjeng,1199000,0
+p2,4.539386,sjeng,1199000,0
+p2,7.886943,sjeng,2533000,1
+p2,4.460667,cpuload_all_50_4096,1199000,0
+p2,7.855629,sjeng,2533000,1
+p2,7.874775,sjeng,2533000,1
+p2,6.772122,sjeng,2133000,1
+p2,6.767496,sjeng,2133000,1
+p2,6.819461,sjeng,2133000,1
+p2,5.738621,sjeng,1733000,1
+p2,5.734354,sjeng,1733000,1
+p2,5.734444,sjeng,1733000,1
+p2,4.559691,sjeng,1199000,1
+p2,4.555545,sjeng,1199000,1
+p2,4.412751,cpuload_all_50_4096,1199000,0
+p2,4.541288,sjeng,1199000,1
+p2,6.653843,soplex,2533000,0
+p2,6.399370,soplex,2533000,0
+p2,6.387972,soplex,2533000,0
+p2,5.920167,soplex,2133000,0
+p2,5.568625,soplex,2133000,0
+p2,5.878921,soplex,2133000,0
+p2,5.025548,soplex,1733000,0
+p2,5.046512,soplex,1733000,0
+p2,5.058035,soplex,1733000,0
+p2,7.363811,cpuload_all_50_4096,2533000,1
+p2,4.058052,soplex,1199000,0
+p2,4.323804,soplex,1199000,0
+p2,4.156381,soplex,1199000,0
+p2,6.332638,soplex,2533000,1
+p2,6.677025,soplex,2533000,1
+p2,6.410491,soplex,2533000,1
+p2,5.795301,soplex,2133000,1
+p2,6.231620,soplex,2133000,1
+p2,5.685411,soplex,2133000,1
+p2,5.062316,soplex,1733000,1
+p2,7.374972,cpuload_all_50_4096,2533000,1
+p2,4.982067,soplex,1733000,1
+p2,4.975647,soplex,1733000,1
+p2,4.221869,soplex,1199000,1
+p2,4.060385,soplex,1199000,1
+p2,4.300062,soplex,1199000,1
+p2,7.196062,sphinx3,2533000,0
+p2,7.066138,sphinx3,2533000,0
+p2,6.930935,sphinx3,2533000,0
+p2,6.259139,sphinx3,2133000,0
+p2,6.063616,sphinx3,2133000,0
+p2,7.455245,cpuload_all_50_4096,2533000,1
+p2,6.226061,sphinx3,2133000,0
+p2,5.278320,sphinx3,1733000,0
+p2,5.258042,sphinx3,1733000,0
+p2,5.270276,sphinx3,1733000,0
+p2,4.295251,sphinx3,1199000,0
+p2,4.248585,sphinx3,1199000,0
+p2,4.456897,sphinx3,1199000,0
+p2,7.276270,sphinx3,2533000,1
+p2,7.016697,sphinx3,2533000,1
+p2,6.968139,sphinx3,2533000,1
+p2,6.503232,cpuload_all_50_4096,2133000,1
+p2,6.265327,sphinx3,2133000,1
+p2,6.098622,sphinx3,2133000,1
+p2,6.256232,sphinx3,2133000,1
+p2,5.270980,sphinx3,1733000,1
+p2,5.268122,sphinx3,1733000,1
+p2,5.262141,sphinx3,1733000,1
+p2,4.331897,sphinx3,1199000,1
+p2,4.391471,sphinx3,1199000,1
+p2,4.344317,sphinx3,1199000,1
+p2,7.392177,zeusmp,2533000,0
+p2,6.468550,cpuload_all_50_4096,2133000,1
+p2,7.436636,zeusmp,2533000,0
+p2,7.469846,zeusmp,2533000,0
+p2,6.535101,zeusmp,2133000,0
+p2,6.602472,zeusmp,2133000,0
+p2,6.578984,zeusmp,2133000,0
+p2,5.610018,zeusmp,1733000,0
+p2,5.614410,zeusmp,1733000,0
+p2,5.622850,zeusmp,1733000,0
+p2,4.503118,zeusmp,1199000,0
+p2,4.486522,zeusmp,1199000,0
+p2,6.478238,cpuload_all_50_4096,2133000,1
+p2,4.493432,zeusmp,1199000,0
+p2,7.407859,zeusmp,2533000,1
+p2,7.446717,zeusmp,2533000,1
+p2,7.514262,zeusmp,2533000,1
+p2,6.562354,zeusmp,2133000,1
+p2,6.541931,zeusmp,2133000,1
+p2,6.496246,zeusmp,2133000,1
+p2,5.542881,zeusmp,1733000,1
+p2,5.541649,zeusmp,1733000,1
+p2,5.546097,zeusmp,1733000,1
+p2,5.064998,cpuload_all_50_4096,1733000,1
+p2,4.482843,zeusmp,1199000,1
+p2,4.482881,zeusmp,1199000,1
+p2,4.468367,zeusmp,1199000,1
+p2,8.912111,bzip2,2533000,0
+p2,8.187594,bzip2,2533000,0
+p2,7.632519,bzip2,2533000,0
+p2,6.640838,bzip2,2133000,0
+p2,6.605085,bzip2,2133000,0
+p2,6.645390,bzip2,2133000,0
+p2,5.595728,bzip2,1733000,0
+p2,5.076264,cpuload_all_50_4096,1733000,1
+p2,5.544077,bzip2,1733000,0
+p2,5.607030,bzip2,1733000,0
+p2,4.460078,bzip2,1199000,0
+p2,4.451000,bzip2,1199000,0
+p2,4.481296,bzip2,1199000,0
+p2,7.688907,bzip2,2533000,1
+p2,7.757428,bzip2,2533000,1
+p2,7.724820,bzip2,2533000,1
+p2,6.604078,bzip2,2133000,1
+p2,6.620437,bzip2,2133000,1
+p2,5.488692,cpuload_all_50_4096,1733000,1
+p2,6.595351,bzip2,2133000,1
+p2,5.588870,bzip2,1733000,1
+p2,5.603338,bzip2,1733000,1
+p2,5.564448,bzip2,1733000,1
+p2,4.463643,bzip2,1199000,1
+p2,4.479838,bzip2,1199000,1
+p2,4.466001,bzip2,1199000,1
+p2,7.367363,cactusADM,2533000,0
+p2,7.290269,cactusADM,2533000,0
+p2,7.273959,cactusADM,2533000,0
+p2,4.535297,cpuload_all_50_4096,1199000,1
+p2,6.412066,cactusADM,2133000,0
+p2,6.422730,cactusADM,2133000,0
+p2,6.367419,cactusADM,2133000,0
+p2,5.501322,cactusADM,1733000,0
+p2,5.471949,cactusADM,1733000,0
+p2,5.479428,cactusADM,1733000,0
+p2,4.404004,cactusADM,1199000,0
+p2,4.431115,cactusADM,1199000,0
+p2,4.435461,cactusADM,1199000,0
+p2,7.273981,cactusADM,2533000,1
+p2,4.505246,cpuload_all_50_4096,1199000,1
+p2,7.236771,cactusADM,2533000,1
+p2,7.250910,cactusADM,2533000,1
+p2,6.456370,cactusADM,2133000,1
+p2,6.451408,cactusADM,2133000,1
+p2,6.474760,cactusADM,2133000,1
+p2,5.461200,cactusADM,1733000,1
+p2,5.479117,cactusADM,1733000,1
+p2,5.496323,cactusADM,1733000,1
+p2,4.367126,cactusADM,1199000,1
+p2,4.402416,cactusADM,1199000,1
+p2,4.555312,cpuload_all_50_4096,1199000,1
+p2,4.411666,cactusADM,1199000,1
+p2,0.872781,cpuload_all_0_4096,2533000,0
+p2,0.889651,cpuload_all_0_4096,2533000,0
+p2,1.013592,cpuload_all_0_4096,2533000,0
+p2,0.823269,cpuload_all_0_4096,2133000,0
+p2,0.879328,cpuload_all_0_4096,2133000,0
+p2,1.003314,cpuload_all_0_4096,2133000,0
+p2,0.802448,cpuload_all_0_4096,1733000,0
+p2,0.734419,cpuload_all_0_4096,1733000,0
+p2,0.846459,cpuload_all_0_4096,1733000,0
+p2,7.351272,cpuload_all_75_4096,2533000,0
+p2,0.716735,cpuload_all_0_4096,1199000,0
+p2,0.735022,cpuload_all_0_4096,1199000,0
+p2,0.745674,cpuload_all_0_4096,1199000,0
+p2,0.776441,cpuload_all_0_4096,2533000,1
+p2,0.812141,cpuload_all_0_4096,2533000,1
+p2,0.765204,cpuload_all_0_4096,2533000,1
+p2,0.819408,cpuload_all_0_4096,2133000,1
+p2,0.833151,cpuload_all_0_4096,2133000,1
+p2,0.895622,cpuload_all_0_4096,2133000,1
+p2,0.868644,cpuload_all_0_4096,1733000,1
+p2,7.422172,cpuload_all_75_4096,2533000,0
+p2,0.804510,cpuload_all_0_4096,1733000,1
+p2,0.800438,cpuload_all_0_4096,1733000,1
+p2,0.740669,cpuload_all_0_4096,1199000,1
+p2,0.696759,cpuload_all_0_4096,1199000,1
+p2,0.678690,cpuload_all_0_4096,1199000,1
+p2,2.649819,cpuload_all_25_4096,2533000,0
+p2,2.678472,cpuload_all_25_4096,2533000,0
+p2,2.657558,cpuload_all_25_4096,2533000,0
+p2,2.406055,cpuload_all_25_4096,2133000,0
+p2,2.385902,cpuload_all_25_4096,2133000,0
+p2,7.371473,cpuload_all_75_4096,2533000,0
+p2,2.420535,cpuload_all_25_4096,2133000,0
+p2,2.117213,cpuload_all_25_4096,1733000,0
+p2,2.088161,cpuload_all_25_4096,1733000,0
+p2,2.095109,cpuload_all_25_4096,1733000,0
+p2,1.873193,cpuload_all_25_4096,1199000,0
+p2,1.854026,cpuload_all_25_4096,1199000,0
+p2,1.884281,cpuload_all_25_4096,1199000,0
+p2,2.629647,cpuload_all_25_4096,2533000,1
+p2,2.604342,cpuload_all_25_4096,2533000,1
+p2,2.658397,cpuload_all_25_4096,2533000,1
+p2,6.472345,cpuload_all_75_4096,2133000,0
+p2,2.389699,cpuload_all_25_4096,2133000,1
+p2,2.412413,cpuload_all_25_4096,2133000,1
+p2,2.409322,cpuload_all_25_4096,2133000,1
+p2,2.130982,cpuload_all_25_4096,1733000,1
+p2,2.128592,cpuload_all_25_4096,1733000,1
+p2,2.189550,cpuload_all_25_4096,1733000,1
+p2,1.901175,cpuload_all_25_4096,1199000,1
+p2,1.946460,cpuload_all_25_4096,1199000,1
+p2,1.904894,cpuload_all_25_4096,1199000,1
+p2,7.355840,cpuload_all_50_4096,2533000,0
+p2,6.568247,cpuload_all_75_4096,2133000,0
+p2,7.511033,cpuload_all_50_4096,2533000,0
+p2,7.369782,cpuload_all_50_4096,2533000,0
+p2,6.454413,cpuload_all_50_4096,2133000,0
+p2,6.448259,cpuload_all_50_4096,2133000,0
+p2,6.592593,cpuload_all_50_4096,2133000,0
+p2,5.499300,cpuload_all_50_4096,1733000,0
+p2,5.467050,cpuload_all_50_4096,1733000,0
+p2,5.559979,cpuload_all_50_4096,1733000,0
+p2,4.389213,cpuload_all_50_4096,1199000,0
+p2,4.442711,cpuload_all_50_4096,1199000,0
+p2,6.541374,cpuload_all_75_4096,2133000,0
+p2,4.402918,cpuload_all_50_4096,1199000,0
+p2,7.284114,cpuload_all_50_4096,2533000,1
+p2,7.475448,cpuload_all_50_4096,2533000,1
+p2,7.410442,cpuload_all_50_4096,2533000,1
+p2,6.445664,cpuload_all_50_4096,2133000,1
+p2,6.468035,cpuload_all_50_4096,2133000,1
+p2,6.486113,cpuload_all_50_4096,2133000,1
+p2,5.107814,cpuload_all_50_4096,1733000,1
+p2,5.482757,cpuload_all_50_4096,1733000,1
+p2,5.489845,cpuload_all_50_4096,1733000,1
+p2,5.503624,cpuload_all_75_4096,1733000,0
+p2,4.420067,cpuload_all_50_4096,1199000,1
+p2,4.391006,cpuload_all_50_4096,1199000,1
+p2,4.415725,cpuload_all_50_4096,1199000,1
+p2,7.366315,cpuload_all_75_4096,2533000,0
+p2,7.461207,cpuload_all_75_4096,2533000,0
+p2,7.374166,cpuload_all_75_4096,2533000,0
+p2,6.557461,cpuload_all_75_4096,2133000,0
+p2,6.479697,cpuload_all_75_4096,2133000,0
+p2,6.467145,cpuload_all_75_4096,2133000,0
+p2,5.505718,cpuload_all_75_4096,1733000,0
+p2,5.567438,cpuload_all_75_4096,1733000,0
+p2,5.487585,cpuload_all_75_4096,1733000,0
+p2,5.558886,cpuload_all_75_4096,1733000,0
+p2,4.420036,cpuload_all_75_4096,1199000,0
+p2,4.398119,cpuload_all_75_4096,1199000,0
+p2,4.393356,cpuload_all_75_4096,1199000,0
+p2,7.365290,cpuload_all_75_4096,2533000,1
+p2,7.333933,cpuload_all_75_4096,2533000,1
+p2,7.228669,cpuload_all_75_4096,2533000,1
+p2,6.510221,cpuload_all_75_4096,2133000,1
+p2,6.469800,cpuload_all_75_4096,2133000,1
+p2,5.498978,cpuload_all_75_4096,1733000,0
+p2,6.417416,cpuload_all_75_4096,2133000,1
+p2,5.558841,cpuload_all_75_4096,1733000,1
+p2,5.491829,cpuload_all_75_4096,1733000,1
+p2,5.480348,cpuload_all_75_4096,1733000,1
+p2,4.411110,cpuload_all_75_4096,1199000,1
+p2,4.392236,cpuload_all_75_4096,1199000,1
+p2,4.351633,cpuload_all_75_4096,1199000,1
+p2,7.510206,cpuload_all_100_4096,2533000,0
+p2,7.428985,cpuload_all_100_4096,2533000,0
+p2,7.513623,cpuload_all_100_4096,2533000,0
+p2,4.407262,cpuload_all_75_4096,1199000,0
+p2,6.488003,cpuload_all_100_4096,2133000,0
+p2,6.466621,cpuload_all_100_4096,2133000,0
+p2,6.585959,cpuload_all_100_4096,2133000,0
+p2,5.499731,cpuload_all_100_4096,1733000,0
+p2,5.571603,cpuload_all_100_4096,1733000,0
+p2,5.506619,cpuload_all_100_4096,1733000,0
+p2,4.386608,cpuload_all_100_4096,1199000,0
+p2,4.394680,cpuload_all_100_4096,1199000,0
+p2,4.386733,cpuload_all_100_4096,1199000,0
+p2,7.390933,cpuload_all_100_4096,2533000,1
+p2,4.456733,cpuload_all_75_4096,1199000,0
+p2,7.495037,cpuload_all_100_4096,2533000,1
+p2,7.425119,cpuload_all_100_4096,2533000,1
+p2,6.464815,cpuload_all_100_4096,2133000,1
+p2,6.474147,cpuload_all_100_4096,2133000,1
+p2,6.508878,cpuload_all_100_4096,2133000,1
+p2,5.498111,cpuload_all_100_4096,1733000,1
+p2,5.576963,cpuload_all_100_4096,1733000,1
+p2,5.504074,cpuload_all_100_4096,1733000,1
+p2,4.410693,cpuload_all_100_4096,1199000,1
+p2,4.356453,cpuload_all_100_4096,1199000,1
+p2,4.396068,cpuload_all_75_4096,1199000,0
+p2,4.452037,cpuload_all_100_4096,1199000,1
+p2,8.474856,gamess,2533000,0
+p2,8.495342,gamess,2533000,0
+p2,8.503718,gamess,2533000,0
+p2,6.822615,gamess,2133000,0
+p2,6.927389,gamess,2133000,0
+p2,6.901957,gamess,2133000,0
+p2,5.768043,gamess,1733000,0
+p2,5.764228,gamess,1733000,0
+p2,5.755123,gamess,1733000,0
+p2,7.223342,cpuload_all_75_4096,2533000,1
+p2,4.545158,gamess,1199000,0
+p2,4.543199,gamess,1199000,0
+p2,4.543843,gamess,1199000,0
+p2,8.480115,gamess,2533000,1
+p2,8.483110,gamess,2533000,1
+p2,8.537262,gamess,2533000,1
+p2,6.943990,gamess,2133000,1
+p2,6.952854,gamess,2133000,1
+p2,6.965641,gamess,2133000,1
+p2,5.763336,gamess,1733000,1
+p2,7.313777,cpuload_all_75_4096,2533000,1
+p2,5.770878,gamess,1733000,1
+p2,5.768715,gamess,1733000,1
+p2,4.542097,gamess,1199000,1
+p2,4.540765,gamess,1199000,1
+p2,4.547814,gamess,1199000,1
+p2,7.743319,gcc,2533000,0
+p2,7.749409,gcc,2533000,0
+p2,7.744196,gcc,2533000,0
+p2,6.720040,gcc,2133000,0
+p2,6.731928,gcc,2133000,0
+p2,7.312517,cpuload_all_75_4096,2533000,1
+p2,6.692509,gcc,2133000,0
+p2,5.730467,gcc,1733000,0
+p2,5.720743,gcc,1733000,0
+p2,5.733357,gcc,1733000,0
+p2,4.560061,gcc,1199000,0
+p2,4.556028,gcc,1199000,0
+p2,4.555660,gcc,1199000,0
+p2,7.742350,gcc,2533000,1
+p2,7.748833,gcc,2533000,1
+p2,7.745293,gcc,2533000,1
+p2,6.503963,cpuload_all_75_4096,2133000,1
+p2,6.752897,gcc,2133000,1
+p2,6.758615,gcc,2133000,1
+p2,6.762822,gcc,2133000,1
+p2,5.726975,gcc,1733000,1
+p2,5.734479,gcc,1733000,1
+p2,5.727405,gcc,1733000,1
+p2,4.558151,gcc,1199000,1
+p2,4.561435,gcc,1199000,1
+p2,4.565684,gcc,1199000,1
+p2,7.888281,gobmk,2533000,0
+p2,6.423235,cpuload_all_75_4096,2133000,1
+p2,7.818827,gobmk,2533000,0
+p2,7.843162,gobmk,2533000,0
+p2,6.619130,gobmk,2133000,0
+p2,6.603754,gobmk,2133000,0
+p2,6.610696,gobmk,2133000,0
+p2,5.717669,gobmk,1733000,0
+p2,5.410827,gobmk,1733000,0
+p2,5.706118,gobmk,1733000,0
+p2,4.540494,gobmk,1199000,0
+p2,4.541664,gobmk,1199000,0
+p2,6.124684,cpuload_all_75_4096,2133000,1
+p2,4.534807,gobmk,1199000,0
+p2,7.843785,gobmk,2533000,1
+p2,7.890987,gobmk,2533000,1
+p2,7.830483,gobmk,2533000,1
+p2,6.802249,gobmk,2133000,1
+p2,6.723930,gobmk,2133000,1
+p2,6.754704,gobmk,2133000,1
+p2,5.707858,gobmk,1733000,1
+p2,5.703010,gobmk,1733000,1
+p2,5.708552,gobmk,1733000,1
+p2,5.497946,cpuload_all_75_4096,1733000,1
+p2,4.533482,gobmk,1199000,1
+p2,4.536400,gobmk,1199000,1
+p2,4.545382,gobmk,1199000,1
+p2,7.697115,gromacs,2533000,0
+p2,7.687977,gromacs,2533000,0
+p2,7.733464,gromacs,2533000,0
+p2,6.622552,gromacs,2133000,0
+p2,6.628427,gromacs,2133000,0
+p2,6.577257,gromacs,2133000,0
+p2,5.708457,gromacs,1733000,0
+p2,5.551635,cpuload_all_75_4096,1733000,1
+p2,5.714285,gromacs,1733000,0
+p2,5.699859,gromacs,1733000,0
+p2,4.544737,gromacs,1199000,0
+p2,4.544475,gromacs,1199000,0
+p2,4.533645,gromacs,1199000,0
+p2,7.705648,gromacs,2533000,1
+p2,7.697548,gromacs,2533000,1
+p2,7.726809,gromacs,2533000,1
+p2,6.688688,gromacs,2133000,1
+p2,6.698436,gromacs,2133000,1
+p2,5.492338,cpuload_all_75_4096,1733000,1
+p2,6.709482,gromacs,2133000,1
+p2,5.694750,gromacs,1733000,1
+p2,5.686839,gromacs,1733000,1
+p2,5.697888,gromacs,1733000,1
+p2,4.541703,gromacs,1199000,1
+p2,4.530229,gromacs,1199000,1
+p2,4.532102,gromacs,1199000,1
+p2,7.970542,h264ref,2533000,0
+p2,8.049174,h264ref,2533000,0
+p2,7.970580,h264ref,2533000,0
+p2,4.480819,cpuload_all_75_4096,1199000,1
+p2,6.793067,h264ref,2133000,0
+p2,6.788485,h264ref,2133000,0
+p2,6.770978,h264ref,2133000,0
+p2,5.681983,h264ref,1733000,0
+p2,5.685901,h264ref,1733000,0
+p2,5.684976,h264ref,1733000,0
+p2,4.518812,h264ref,1199000,0
+p2,4.520146,h264ref,1199000,0
+p2,4.520119,h264ref,1199000,0
+p2,7.930072,h264ref,2533000,1
+p2,4.542382,cpuload_all_75_4096,1199000,1
+p2,7.969775,h264ref,2533000,1
+p2,7.982637,h264ref,2533000,1
+p2,6.739473,h264ref,2133000,1
+p2,6.778583,h264ref,2133000,1
+p2,6.706197,h264ref,2133000,1
+p2,5.699279,h264ref,1733000,1
+p2,5.678660,h264ref,1733000,1
+p2,5.683846,h264ref,1733000,1
+p2,4.519504,h264ref,1199000,1
+p2,4.525260,h264ref,1199000,1
+p2,4.516112,cpuload_all_75_4096,1199000,1
+p2,4.518902,h264ref,1199000,1
+p2,8.332090,hmmer,2533000,0
+p2,8.288000,hmmer,2533000,0
+p2,8.211784,hmmer,2533000,0
+p2,6.822939,hmmer,2133000,0
+p2,6.858301,hmmer,2133000,0
+p2,6.823537,hmmer,2133000,0
+p2,5.635162,hmmer,1733000,0
+p2,5.640137,hmmer,1733000,0
+p2,5.642081,hmmer,1733000,0
+p2,7.479221,cpuload_all_100_4096,2533000,0
+p2,4.495294,hmmer,1199000,0
+p2,4.491646,hmmer,1199000,0
+p2,4.494040,hmmer,1199000,0
+p2,8.202962,hmmer,2533000,1
+p2,8.191215,hmmer,2533000,1
+p2,8.206799,hmmer,2533000,1
+p2,6.812949,hmmer,2133000,1
+p2,6.826969,hmmer,2133000,1
+p2,6.817305,hmmer,2133000,1
+p2,5.709398,hmmer,1733000,1
+p2,7.403850,cpuload_all_100_4096,2533000,0
+p2,5.702602,hmmer,1733000,1
+p2,5.699491,hmmer,1733000,1
+p2,4.496865,hmmer,1199000,1
+p2,4.498920,hmmer,1199000,1
+p2,4.503564,hmmer,1199000,1
+p2,7.468214,lbm,2533000,0
+p2,7.470328,lbm,2533000,0
+p2,7.467153,lbm,2533000,0
+p2,6.566366,lbm,2133000,0
+p2,6.566903,lbm,2133000,0
+p2,7.472509,cpuload_all_100_4096,2533000,0
+p2,6.506509,lbm,2133000,0
+p2,5.610509,lbm,1733000,0
+p2,5.616637,lbm,1733000,0
+p2,5.541847,lbm,1733000,0
+p2,4.412195,lbm,1199000,0
+p2,4.457192,lbm,1199000,0
+p2,4.454374,lbm,1199000,0
+p2,7.479563,lbm,2533000,1
+p2,7.478410,lbm,2533000,1
+p2,7.486115,lbm,2533000,1
+p2,6.526170,cpuload_all_100_4096,2133000,0
+p2,6.585715,lbm,2133000,1
+p2,6.584968,lbm,2133000,1
+p2,6.584249,lbm,2133000,1
+p2,5.540536,lbm,1733000,1
+p2,5.543427,lbm,1733000,1
+p2,5.542880,lbm,1733000,1
+p2,4.459201,lbm,1199000,1
+p2,4.409619,lbm,1199000,1
+p2,4.459886,lbm,1199000,1
+p2,7.647510,leslie3d,2533000,0
+p2,6.481376,cpuload_all_100_4096,2133000,0
+p2,7.609238,leslie3d,2533000,0
+p2,7.654667,leslie3d,2533000,0
+p2,6.681958,leslie3d,2133000,0
+p2,6.683873,leslie3d,2133000,0
+p2,6.693822,leslie3d,2133000,0
+p2,5.658642,leslie3d,1733000,0
+p2,5.652082,leslie3d,1733000,0
+p2,5.674492,leslie3d,1733000,0
+p2,4.516753,leslie3d,1199000,0
+p2,4.517961,leslie3d,1199000,0
+p2,6.555505,cpuload_all_100_4096,2133000,0
+p2,4.521622,leslie3d,1199000,0
+p2,7.701827,leslie3d,2533000,1
+p2,7.639823,leslie3d,2533000,1
+p2,7.678791,leslie3d,2533000,1
+p2,6.701325,leslie3d,2133000,1
+p2,6.689452,leslie3d,2133000,1
+p2,6.697416,leslie3d,2133000,1
+p2,5.662046,leslie3d,1733000,1
+p2,5.667578,leslie3d,1733000,1
+p2,5.661465,leslie3d,1733000,1
+p2,5.507431,cpuload_all_100_4096,1733000,0
+p2,4.513461,leslie3d,1199000,1
+p2,4.520378,leslie3d,1199000,1
+p2,4.514416,leslie3d,1199000,1
+p2,7.157336,mcf,2533000,0
+p2,7.042216,mcf,2533000,0
+p2,7.146450,mcf,2533000,0
+p2,6.416707,mcf,2133000,0
+p2,6.259794,mcf,2133000,0
+p2,6.309672,mcf,2133000,0
+p2,5.371720,mcf,1733000,0
+p2,5.514336,cpuload_all_100_4096,1733000,0
+p2,5.368029,mcf,1733000,0
+p2,5.379065,mcf,1733000,0
+p2,4.410760,mcf,1199000,0
+p2,4.398140,mcf,1199000,0
+p2,4.347800,mcf,1199000,0
+p2,7.159258,mcf,2533000,1
+p2,7.123828,mcf,2533000,1
+p2,7.104821,mcf,2533000,1
+p2,6.274356,mcf,2133000,1
+p2,6.243245,mcf,2133000,1
+p2,5.507250,cpuload_all_100_4096,1733000,0
+p2,6.375473,mcf,2133000,1
+p2,5.408732,mcf,1733000,1
+p2,5.427212,mcf,1733000,1
+p2,5.550744,mcf,1733000,1
+p2,4.392227,mcf,1199000,1
+p2,4.348079,mcf,1199000,1
+p2,4.370406,mcf,1199000,1
+p2,6.897670,milc,2533000,0
+p2,7.003660,milc,2533000,0
+p2,7.062145,milc,2533000,0
+p2,4.437396,cpuload_all_100_4096,1199000,0
+p2,6.231478,milc,2133000,0
+p2,6.203602,milc,2133000,0
+p2,6.386018,milc,2133000,0
+p2,5.413491,milc,1733000,0
+p2,5.407941,milc,1733000,0
+p2,5.281482,milc,1733000,0
+p2,4.338538,milc,1199000,0
+p2,4.300269,milc,1199000,0
+p2,4.309624,milc,1199000,0
+p2,6.807714,milc,2533000,1
+p2,4.451196,cpuload_all_100_4096,1199000,0
+p2,7.012661,milc,2533000,1
+p2,7.003133,milc,2533000,1
+p2,6.226545,milc,2133000,1
+p2,6.225975,milc,2133000,1
+p2,6.204355,milc,2133000,1
+p2,5.269440,milc,1733000,1
+p2,5.443980,milc,1733000,1
+p2,5.417593,milc,1733000,1
+p2,4.311705,milc,1199000,1
+p2,4.303479,milc,1199000,1
+p2,4.421558,cpuload_all_100_4096,1199000,0
+p2,4.325093,milc,1199000,1
+p2,6.938081,namd,2533000,0
+p2,6.972166,namd,2533000,0
+p2,6.951200,namd,2533000,0
+p2,6.147003,namd,2133000,0
+p2,6.142745,namd,2133000,0
+p2,6.132263,namd,2133000,0
+p2,5.363339,namd,1733000,0
+p2,5.181665,namd,1733000,0
+p2,5.264602,namd,1733000,0
+p2,7.381742,cpuload_all_100_4096,2533000,1
+p2,4.309124,namd,1199000,0
+p2,4.300174,namd,1199000,0
+p2,4.416391,namd,1199000,0
+p2,6.959886,namd,2533000,1
+p2,6.974985,namd,2533000,1
+p2,6.999311,namd,2533000,1
+p2,6.125823,namd,2133000,1
+p2,6.200251,namd,2133000,1
+p2,6.130767,namd,2133000,1
+p2,5.374634,namd,1733000,1
+p2,7.485597,cpuload_all_100_4096,2533000,1
+p2,5.365782,namd,1733000,1
+p2,5.478289,namd,1733000,1
+p2,4.491014,namd,1199000,1
+p2,4.282677,namd,1199000,1
+p2,4.342381,namd,1199000,1
+p2,7.971861,omnetpp,2533000,0
+p2,7.994824,omnetpp,2533000,0
+p2,8.030955,omnetpp,2533000,0
+p2,6.697328,omnetpp,2133000,0
+p2,6.764146,omnetpp,2133000,0
+p2,7.387212,cpuload_all_100_4096,2533000,1
+p2,6.780626,omnetpp,2133000,0
+p2,5.631726,omnetpp,1733000,0
+p2,5.662592,omnetpp,1733000,0
+p2,5.634020,omnetpp,1733000,0
+p2,4.499625,omnetpp,1199000,0
+p2,4.496396,omnetpp,1199000,0
+p2,4.500980,omnetpp,1199000,0
+p2,8.041714,omnetpp,2533000,1
+p2,8.040566,omnetpp,2533000,1
+p2,7.916587,omnetpp,2533000,1
+p2,6.475818,cpuload_all_100_4096,2133000,1
+p2,6.734006,omnetpp,2133000,1
+p2,6.813479,omnetpp,2133000,1
+p2,6.858670,omnetpp,2133000,1
+p2,5.646928,omnetpp,1733000,1
+p2,5.633628,omnetpp,1733000,1
+p2,5.648008,omnetpp,1733000,1
+p2,4.497336,omnetpp,1199000,1
+p2,4.469353,omnetpp,1199000,1
+p2,4.492875,omnetpp,1199000,1
+p2,6.567259,povray,2533000,0
+p2,6.557094,cpuload_all_100_4096,2133000,1
+p2,7.150488,povray,2533000,0
+p2,7.102911,povray,2533000,0
+p2,5.926310,povray,2133000,0
+p2,5.912783,povray,2133000,0
+p2,5.597764,povray,2133000,0
+p2,4.941375,povray,1733000,0
+p2,4.935496,povray,1733000,0
+p2,5.265553,povray,1733000,0
+p2,4.266371,povray,1199000,0
+p2,4.224556,povray,1199000,0
+p2,6.477325,cpuload_all_100_4096,2133000,1
+p2,4.224509,povray,1199000,0
+p2,6.580170,povray,2533000,1
+p2,6.814935,povray,2533000,1
+p2,6.574627,povray,2533000,1
+p2,5.590968,povray,2133000,1
+p2,5.579437,povray,2133000,1
+p2,5.607555,povray,2133000,1
+p2,4.956203,povray,1733000,1
+p2,4.937004,povray,1733000,1
+p2,4.968894,povray,1733000,1
+p2,5.509344,cpuload_all_100_4096,1733000,1
+p2,4.242750,povray,1199000,1
+p2,4.240922,povray,1199000,1
+p2,4.213081,povray,1199000,1
+p2,7.840164,sjeng,2533000,0
+p2,7.876756,sjeng,2533000,0
+p2,7.834978,sjeng,2533000,0
+p2,6.753640,sjeng,2133000,0
+p2,6.742820,sjeng,2133000,0
+p2,6.743404,sjeng,2133000,0
+p2,5.720948,sjeng,1733000,0
+p2,5.505538,cpuload_all_100_4096,1733000,1
+p2,5.707757,sjeng,1733000,0
+p2,5.721602,sjeng,1733000,0
+p2,4.543181,sjeng,1199000,0
+p2,4.525117,sjeng,1199000,0
+p2,4.517296,sjeng,1199000,0
+p2,7.841695,sjeng,2533000,1
+p2,7.832495,sjeng,2533000,1
+p2,7.809115,sjeng,2533000,1
+p2,6.750341,sjeng,2133000,1
+p2,6.779409,sjeng,2133000,1
+p2,5.576067,cpuload_all_100_4096,1733000,1
+p2,6.759082,sjeng,2133000,1
+p2,5.702186,sjeng,1733000,1
+p2,5.715140,sjeng,1733000,1
+p2,5.706959,sjeng,1733000,1
+p2,4.524256,sjeng,1199000,1
+p2,4.527575,sjeng,1199000,1
+p2,4.534391,sjeng,1199000,1
+p2,6.499592,soplex,2533000,0
+p2,6.422674,soplex,2533000,0
+p2,6.937462,soplex,2533000,0
+p2,4.460054,cpuload_all_100_4096,1199000,1
+p2,6.049652,soplex,2133000,0
+p2,5.907942,soplex,2133000,0
+p2,5.778324,soplex,2133000,0
+p2,5.249793,soplex,1733000,0
+p2,5.154613,soplex,1733000,0
+p2,5.318577,soplex,1733000,0
+p2,4.359830,soplex,1199000,0
+p2,4.257608,soplex,1199000,0
+p2,4.152931,soplex,1199000,0
+p2,6.443663,soplex,2533000,1
+p2,4.453967,cpuload_all_100_4096,1199000,1
+p2,6.818349,soplex,2533000,1
+p2,6.175218,soplex,2533000,1
+p2,6.178607,soplex,2133000,1
+p2,5.832589,soplex,2133000,1
+p2,5.756715,soplex,2133000,1
+p2,4.983616,soplex,1733000,1
+p2,5.342861,soplex,1733000,1
+p2,5.153376,soplex,1733000,1
+p2,4.224264,soplex,1199000,1
+p2,4.123986,soplex,1199000,1
+p2,4.472081,cpuload_all_100_4096,1199000,1
+p2,4.296061,soplex,1199000,1
+p2,6.993822,sphinx3,2533000,0
+p2,6.957778,sphinx3,2533000,0
+p2,6.954613,sphinx3,2533000,0
+p2,6.290932,sphinx3,2133000,0
+p2,6.037829,sphinx3,2133000,0
+p2,6.022283,sphinx3,2133000,0
+p2,5.263500,sphinx3,1733000,0
+p2,5.256983,sphinx3,1733000,0
+p2,5.241496,sphinx3,1733000,0
+p2,8.369323,gamess,2533000,0
+p2,4.261023,sphinx3,1199000,0
+p2,4.258945,sphinx3,1199000,0
+p2,4.274763,sphinx3,1199000,0
+p2,6.947924,sphinx3,2533000,1
+p2,6.941933,sphinx3,2533000,1
+p2,6.954091,sphinx3,2533000,1
+p2,6.032631,sphinx3,2133000,1
+p2,6.017887,sphinx3,2133000,1
+p2,6.002271,sphinx3,2133000,1
+p2,5.286615,sphinx3,1733000,1
+p2,8.352978,gamess,2533000,0
+p2,5.245570,sphinx3,1733000,1
+p2,5.047551,sphinx3,1733000,1
+p2,4.132238,sphinx3,1199000,1
+p2,4.122151,sphinx3,1199000,1
+p2,4.121511,sphinx3,1199000,1
+p2,7.595309,zeusmp,2533000,0
+p2,7.437328,zeusmp,2533000,0
+p2,7.515771,zeusmp,2533000,0
+p2,6.595933,zeusmp,2133000,0
+p2,6.602537,zeusmp,2133000,0
+p2,8.367415,gamess,2533000,0
+p2,6.578082,zeusmp,2133000,0
+p2,5.553352,zeusmp,1733000,0
+p2,5.528352,zeusmp,1733000,0
+p2,5.610417,zeusmp,1733000,0
+p2,4.517411,zeusmp,1199000,0
+p2,4.514367,zeusmp,1199000,0
+p2,4.463233,zeusmp,1199000,0
+p2,7.293682,zeusmp,2533000,1
+p2,7.430121,zeusmp,2533000,1
+p2,7.307699,zeusmp,2533000,1
+p2,6.916576,gamess,2133000,0
+p2,6.454258,zeusmp,2133000,1
+p2,6.468906,zeusmp,2133000,1
+p2,6.457243,zeusmp,2133000,1
+p2,5.560213,zeusmp,1733000,1
+p2,5.550754,zeusmp,1733000,1
+p2,5.546029,zeusmp,1733000,1
+p2,4.487911,zeusmp,1199000,1
+p2,4.489311,zeusmp,1199000,1
+p2,4.510988,zeusmp,1199000,1
+p2,9.163053,bzip2,2533000,0
+p2,6.914611,gamess,2133000,0
+p2,8.303591,bzip2,2533000,0
+p2,7.755955,bzip2,2533000,0
+p2,6.641699,bzip2,2133000,0
+p2,6.605153,bzip2,2133000,0
+p2,6.674193,bzip2,2133000,0
+p2,5.624049,bzip2,1733000,0
+p2,5.663806,bzip2,1733000,0
+p2,5.620885,bzip2,1733000,0
+p2,4.458514,bzip2,1199000,0
+p2,4.459291,bzip2,1199000,0
+p2,6.921678,gamess,2133000,0
+p2,4.485152,bzip2,1199000,0
+p2,7.627689,bzip2,2533000,1
+p2,7.748330,bzip2,2533000,1
+p2,7.788377,bzip2,2533000,1
+p2,6.685622,bzip2,2133000,1
+p2,6.656847,bzip2,2133000,1
+p2,6.667656,bzip2,2133000,1
+p2,5.640354,bzip2,1733000,1
+p2,5.620826,bzip2,1733000,1
+p2,5.647620,bzip2,1733000,1
+p2,5.758148,gamess,1733000,0
+p2,4.492023,bzip2,1199000,1
+p2,4.491047,bzip2,1199000,1
+p2,4.490731,bzip2,1199000,1
+p2,7.312882,cactusADM,2533000,0
+p2,7.313110,cactusADM,2533000,0
+p2,7.427105,cactusADM,2533000,0
+p2,6.614816,cactusADM,2133000,0
+p2,6.618935,cactusADM,2133000,0
+p2,6.564221,cactusADM,2133000,0
+p2,5.559643,cactusADM,1733000,0
+p2,5.741411,gamess,1733000,0
+p2,5.533845,cactusADM,1733000,0
+p2,5.555092,cactusADM,1733000,0
+p2,4.430918,cactusADM,1199000,0
+p2,4.403316,cactusADM,1199000,0
+p2,4.472816,cactusADM,1199000,0
+p2,7.359533,cactusADM,2533000,1
+p2,7.287212,cactusADM,2533000,1
+p2,7.292651,cactusADM,2533000,1
+p2,6.492384,cactusADM,2133000,1
+p2,6.445976,cactusADM,2133000,1
+p2,5.738860,gamess,1733000,0
+p2,6.476126,cactusADM,2133000,1
+p2,5.576411,cactusADM,1733000,1
+p2,5.582163,cactusADM,1733000,1
+p2,5.569631,cactusADM,1733000,1
+p2,4.484137,cactusADM,1199000,1
+p2,4.455610,cactusADM,1199000,1
+p2,4.443195,cactusADM,1199000,1
+p2,0.922110,cpuload_all_0_4096,2533000,0
+p2,0.859067,cpuload_all_0_4096,2533000,0
+p2,0.960653,cpuload_all_0_4096,2533000,0
+p2,4.536025,gamess,1199000,0
+p2,0.829476,cpuload_all_0_4096,2133000,0
+p2,0.835220,cpuload_all_0_4096,2133000,0
+p2,0.810049,cpuload_all_0_4096,2133000,0
+p2,0.887227,cpuload_all_0_4096,1733000,0
+p2,0.828144,cpuload_all_0_4096,1733000,0
+p2,0.868095,cpuload_all_0_4096,1733000,0
+p2,0.773598,cpuload_all_0_4096,1199000,0
+p2,0.952486,cpuload_all_0_4096,1199000,0
+p2,0.717246,cpuload_all_0_4096,1199000,0
+p2,0.756819,cpuload_all_0_4096,2533000,1
+p2,4.539234,gamess,1199000,0
+p2,0.886433,cpuload_all_0_4096,2533000,1
+p2,0.749116,cpuload_all_0_4096,2533000,1
+p2,0.929682,cpuload_all_0_4096,2133000,1
+p2,0.803519,cpuload_all_0_4096,2133000,1
+p2,0.715872,cpuload_all_0_4096,2133000,1
+p2,0.738657,cpuload_all_0_4096,1733000,1
+p2,0.761181,cpuload_all_0_4096,1733000,1
+p2,0.761702,cpuload_all_0_4096,1733000,1
+p2,0.833987,cpuload_all_0_4096,1199000,1
+p2,0.653975,cpuload_all_0_4096,1199000,1
+p2,4.540515,gamess,1199000,0
+p2,0.676427,cpuload_all_0_4096,1199000,1
+p2,2.694207,cpuload_all_25_4096,2533000,0
+p2,2.681916,cpuload_all_25_4096,2533000,0
+p2,2.648523,cpuload_all_25_4096,2533000,0
+p2,2.447670,cpuload_all_25_4096,2133000,0
+p2,2.387759,cpuload_all_25_4096,2133000,0
+p2,2.425888,cpuload_all_25_4096,2133000,0
+p2,2.113073,cpuload_all_25_4096,1733000,0
+p2,2.149906,cpuload_all_25_4096,1733000,0
+p2,2.137658,cpuload_all_25_4096,1733000,0
+p2,8.332224,gamess,2533000,1
+p2,1.911440,cpuload_all_25_4096,1199000,0
+p2,1.927771,cpuload_all_25_4096,1199000,0
+p2,1.910647,cpuload_all_25_4096,1199000,0
+p2,2.649837,cpuload_all_25_4096,2533000,1
+p2,2.674620,cpuload_all_25_4096,2533000,1
+p2,2.648479,cpuload_all_25_4096,2533000,1
+p2,2.426499,cpuload_all_25_4096,2133000,1
+p2,2.420270,cpuload_all_25_4096,2133000,1
+p2,2.354325,cpuload_all_25_4096,2133000,1
+p2,2.133340,cpuload_all_25_4096,1733000,1
+p2,8.396450,gamess,2533000,1
+p2,2.129542,cpuload_all_25_4096,1733000,1
+p2,2.125890,cpuload_all_25_4096,1733000,1
+p2,1.920042,cpuload_all_25_4096,1199000,1
+p2,1.902823,cpuload_all_25_4096,1199000,1
+p2,1.878589,cpuload_all_25_4096,1199000,1
+p2,7.379469,cpuload_all_50_4096,2533000,0
+p2,7.457517,cpuload_all_50_4096,2533000,0
+p2,7.381570,cpuload_all_50_4096,2533000,0
+p2,6.460163,cpuload_all_50_4096,2133000,0
+p2,6.535250,cpuload_all_50_4096,2133000,0
+p2,8.358435,gamess,2533000,1
+p2,6.435637,cpuload_all_50_4096,2133000,0
+p2,5.477792,cpuload_all_50_4096,1733000,0
+p2,5.565533,cpuload_all_50_4096,1733000,0
+p2,5.503962,cpuload_all_50_4096,1733000,0
+p2,4.444357,cpuload_all_50_4096,1199000,0
+p2,4.398590,cpuload_all_50_4096,1199000,0
+p2,4.413319,cpuload_all_50_4096,1199000,0
+p2,7.374898,cpuload_all_50_4096,2533000,1
+p2,7.468699,cpuload_all_50_4096,2533000,1
+p2,7.271542,cpuload_all_50_4096,2533000,1
+p2,6.901617,gamess,2133000,1
+p2,6.448964,cpuload_all_50_4096,2133000,1
+p2,6.271330,cpuload_all_50_4096,2133000,1
+p2,6.598767,cpuload_all_50_4096,2133000,1
+p2,5.510290,cpuload_all_50_4096,1733000,1
+p2,5.045917,cpuload_all_50_4096,1733000,1
+p2,5.570588,cpuload_all_50_4096,1733000,1
+p2,4.421778,cpuload_all_50_4096,1199000,1
+p2,4.474134,cpuload_all_50_4096,1199000,1
+p2,4.504168,cpuload_all_50_4096,1199000,1
+p2,7.445703,cpuload_all_75_4096,2533000,0
+p2,6.927323,gamess,2133000,1
+p2,7.371844,cpuload_all_75_4096,2533000,0
+p2,7.470957,cpuload_all_75_4096,2533000,0
+p2,6.475195,cpuload_all_75_4096,2133000,0
+p2,6.475035,cpuload_all_75_4096,2133000,0
+p2,6.568882,cpuload_all_75_4096,2133000,0
+p2,5.505596,cpuload_all_75_4096,1733000,0
+p2,5.513069,cpuload_all_75_4096,1733000,0
+p2,5.569655,cpuload_all_75_4096,1733000,0
+p2,4.425325,cpuload_all_75_4096,1199000,0
+p2,4.403991,cpuload_all_75_4096,1199000,0
+p2,6.925283,gamess,2133000,1
+p2,4.461685,cpuload_all_75_4096,1199000,0
+p2,7.349372,cpuload_all_75_4096,2533000,1
+p2,7.325203,cpuload_all_75_4096,2533000,1
+p2,7.355883,cpuload_all_75_4096,2533000,1
+p2,6.451428,cpuload_all_75_4096,2133000,1
+p2,6.431636,cpuload_all_75_4096,2133000,1
+p2,6.458355,cpuload_all_75_4096,2133000,1
+p2,7.550091,bzip2,2533000,0
+p2,7.743382,bzip2,2533000,0
+p2,7.737534,bzip2,2533000,0
+p2,5.756473,gamess,1733000,1
+p2,6.624340,bzip2,2133000,0
+p2,6.707262,bzip2,2133000,0
+p2,6.666895,bzip2,2133000,0
+p2,5.609801,bzip2,1733000,0
+p2,5.640675,bzip2,1733000,0
+p2,5.648984,bzip2,1733000,0
+p2,4.482372,bzip2,1199000,0
+p2,4.478927,bzip2,1199000,0
+p2,4.492770,bzip2,1199000,0
+p2,7.701177,bzip2,2533000,1
+p2,5.735256,gamess,1733000,1
+p2,7.771393,bzip2,2533000,1
+p2,7.712281,bzip2,2533000,1
+p2,6.679230,bzip2,2133000,1
+p2,6.682500,bzip2,2133000,1
+p2,6.633566,bzip2,2133000,1
+p2,5.639896,bzip2,1733000,1
+p2,5.601365,bzip2,1733000,1
+p2,5.632246,bzip2,1733000,1
+p2,4.491430,bzip2,1199000,1
+p2,4.502173,bzip2,1199000,1
+p2,5.760970,gamess,1733000,1
+p2,4.497433,bzip2,1199000,1
+p2,7.392239,cactusADM,2533000,0
+p2,7.411466,cactusADM,2533000,0
+p2,7.372906,cactusADM,2533000,0
+p2,6.499167,cactusADM,2133000,0
+p2,6.564387,cactusADM,2133000,0
+p2,6.526044,cactusADM,2133000,0
+p2,5.543688,cactusADM,1733000,0
+p2,5.547754,cactusADM,1733000,0
+p2,5.557743,cactusADM,1733000,0
+p2,4.544986,gamess,1199000,1
+p2,4.505647,cactusADM,1199000,0
+p2,4.491492,cactusADM,1199000,0
+p2,4.506511,cactusADM,1199000,0
+p2,7.381666,cactusADM,2533000,1
+p2,7.422259,cactusADM,2533000,1
+p2,7.413577,cactusADM,2533000,1
+p2,6.514058,cactusADM,2133000,1
+p2,6.505574,cactusADM,2133000,1
+p2,6.531406,cactusADM,2133000,1
+p2,5.510775,cactusADM,1733000,1
+p2,4.544943,gamess,1199000,1
+p2,5.559238,cactusADM,1733000,1
+p2,5.552435,cactusADM,1733000,1
+p2,4.480632,cactusADM,1199000,1
+p2,4.432096,cactusADM,1199000,1
+p2,4.446530,cactusADM,1199000,1
+p2,0.929391,cpuload_all_0_4096,2533000,0
+p2,0.858381,cpuload_all_0_4096,2533000,0
+p2,0.829969,cpuload_all_0_4096,2533000,0
+p2,0.860665,cpuload_all_0_4096,2133000,0
+p2,0.713444,cpuload_all_0_4096,2133000,0
+p2,4.542860,gamess,1199000,1
+p2,0.773904,cpuload_all_0_4096,2133000,0
+p2,0.733737,cpuload_all_0_4096,1733000,0
+p2,0.713545,cpuload_all_0_4096,1733000,0
+p2,0.820878,cpuload_all_0_4096,1733000,0
+p2,0.772940,cpuload_all_0_4096,1199000,0
+p2,0.748235,cpuload_all_0_4096,1199000,0
+p2,0.854846,cpuload_all_0_4096,1199000,0
+p2,0.735261,cpuload_all_0_4096,2533000,1
+p2,0.842775,cpuload_all_0_4096,2533000,1
+p2,0.826151,cpuload_all_0_4096,2533000,1
+p2,7.720664,gcc,2533000,0
+p2,0.788432,cpuload_all_0_4096,2133000,1
+p2,0.900020,cpuload_all_0_4096,2133000,1
+p2,0.700615,cpuload_all_0_4096,2133000,1
+p2,0.706659,cpuload_all_0_4096,1733000,1
+p2,0.777855,cpuload_all_0_4096,1733000,1
+p2,0.779631,cpuload_all_0_4096,1733000,1
+p2,0.873232,cpuload_all_0_4096,1199000,1
+p2,0.776090,cpuload_all_0_4096,1199000,1
+p2,0.786603,cpuload_all_0_4096,1199000,1
+p2,2.671904,cpuload_all_25_4096,2533000,0
+p2,7.715569,gcc,2533000,0
+p2,2.605339,cpuload_all_25_4096,2533000,0
+p2,2.679796,cpuload_all_25_4096,2533000,0
+p2,2.358104,cpuload_all_25_4096,2133000,0
+p2,2.377721,cpuload_all_25_4096,2133000,0
+p2,2.373986,cpuload_all_25_4096,2133000,0
+p2,2.106099,cpuload_all_25_4096,1733000,0
+p2,2.087228,cpuload_all_25_4096,1733000,0
+p2,2.091971,cpuload_all_25_4096,1733000,0
+p2,1.884305,cpuload_all_25_4096,1199000,0
+p2,1.869104,cpuload_all_25_4096,1199000,0
+p2,7.710047,gcc,2533000,0
+p2,1.859125,cpuload_all_25_4096,1199000,0
+p2,2.618310,cpuload_all_25_4096,2533000,1
+p2,2.629301,cpuload_all_25_4096,2533000,1
+p2,2.617292,cpuload_all_25_4096,2533000,1
+p2,2.376418,cpuload_all_25_4096,2133000,1
+p2,2.373120,cpuload_all_25_4096,2133000,1
+p2,2.347331,cpuload_all_25_4096,2133000,1
+p2,2.121074,cpuload_all_25_4096,1733000,1
+p2,2.097676,cpuload_all_25_4096,1733000,1
+p2,2.084312,cpuload_all_25_4096,1733000,1
+p2,6.746140,gcc,2133000,0
+p2,1.898368,cpuload_all_25_4096,1199000,1
+p2,1.913107,cpuload_all_25_4096,1199000,1
+p2,1.902435,cpuload_all_25_4096,1199000,1
+p2,7.392897,cpuload_all_50_4096,2533000,0
+p2,7.397908,cpuload_all_50_4096,2533000,0
+p2,7.466708,cpuload_all_50_4096,2533000,0
+p2,6.455317,cpuload_all_50_4096,2133000,0
+p2,6.469707,cpuload_all_50_4096,2133000,0
+p2,6.431213,cpuload_all_50_4096,2133000,0
+p2,5.571296,cpuload_all_50_4096,1733000,0
+p2,6.754353,gcc,2133000,0
+p2,5.477309,cpuload_all_50_4096,1733000,0
+p2,5.106522,cpuload_all_50_4096,1733000,0
+p2,4.427874,cpuload_all_50_4096,1199000,0
+p2,4.405589,cpuload_all_50_4096,1199000,0
+p2,4.406027,cpuload_all_50_4096,1199000,0
+p2,7.381177,cpuload_all_50_4096,2533000,1
+p2,7.412180,cpuload_all_50_4096,2533000,1
+p2,7.478976,cpuload_all_50_4096,2533000,1
+p2,6.450206,cpuload_all_50_4096,2133000,1
+p2,6.473243,cpuload_all_50_4096,2133000,1
+p2,6.743530,gcc,2133000,0
+p2,6.478555,cpuload_all_50_4096,2133000,1
+p2,5.570466,cpuload_all_50_4096,1733000,1
+p2,5.051136,cpuload_all_50_4096,1733000,1
+p2,5.040290,cpuload_all_50_4096,1733000,1
+p2,4.393538,cpuload_all_50_4096,1199000,1
+p2,4.456060,cpuload_all_50_4096,1199000,1
+p2,4.456171,cpuload_all_50_4096,1199000,1
+p2,7.334833,cpuload_all_75_4096,2533000,0
+p2,7.457601,cpuload_all_75_4096,2533000,0
+p2,7.466262,cpuload_all_75_4096,2533000,0
+p2,5.719224,gcc,1733000,0
+p2,6.429464,cpuload_all_75_4096,2133000,0
+p2,6.464843,cpuload_all_75_4096,2133000,0
+p2,6.529903,cpuload_all_75_4096,2133000,0
+p2,5.469649,cpuload_all_75_4096,1733000,0
+p2,5.493960,cpuload_all_75_4096,1733000,0
+p2,5.450758,cpuload_all_75_4096,1733000,0
+p2,4.416194,cpuload_all_75_4096,1199000,0
+p2,4.398827,cpuload_all_75_4096,1199000,0
+p2,4.462296,cpuload_all_75_4096,1199000,0
+p2,7.468001,cpuload_all_75_4096,2533000,1
+p2,5.720936,gcc,1733000,0
+p2,7.396566,cpuload_all_75_4096,2533000,1
+p2,7.421565,cpuload_all_75_4096,2533000,1
+p2,6.469143,cpuload_all_75_4096,2133000,1
+p2,6.514833,cpuload_all_75_4096,2133000,1
+p2,6.471839,cpuload_all_75_4096,2133000,1
+p2,5.569373,cpuload_all_75_4096,1733000,1
+p2,5.418879,cpuload_all_75_4096,1733000,1
+p2,5.580112,cpuload_all_75_4096,1733000,1
+p2,4.397610,cpuload_all_75_4096,1199000,1
+p2,4.402553,cpuload_all_75_4096,1199000,1
+p2,5.712612,gcc,1733000,0
+p2,4.452260,cpuload_all_75_4096,1199000,1
+p2,7.416715,cpuload_all_100_4096,2533000,0
+p2,7.386297,cpuload_all_100_4096,2533000,0
+p2,7.394228,cpuload_all_100_4096,2533000,0
+p2,6.565320,cpuload_all_100_4096,2133000,0
+p2,6.502407,cpuload_all_100_4096,2133000,0
+p2,6.474010,cpuload_all_100_4096,2133000,0
+p2,5.502248,cpuload_all_100_4096,1733000,0
+p2,5.573511,cpuload_all_100_4096,1733000,0
+p2,5.535375,cpuload_all_100_4096,1733000,0
+p2,4.552821,gcc,1199000,0
+p2,4.410260,cpuload_all_100_4096,1199000,0
+p2,4.458797,cpuload_all_100_4096,1199000,0
+p2,4.450587,cpuload_all_100_4096,1199000,0
+p2,7.384319,cpuload_all_100_4096,2533000,1
+p2,7.383627,cpuload_all_100_4096,2533000,1
+p2,7.499263,cpuload_all_100_4096,2533000,1
+p2,6.522496,cpuload_all_100_4096,2133000,1
+p2,6.542835,cpuload_all_100_4096,2133000,1
+p2,6.566490,cpuload_all_100_4096,2133000,1
+p2,5.421521,cpuload_all_100_4096,1733000,1
+p2,4.552019,gcc,1199000,0
+p2,5.504035,cpuload_all_100_4096,1733000,1
+p2,5.579979,cpuload_all_100_4096,1733000,1
+p2,4.408065,cpuload_all_100_4096,1199000,1
+p2,4.399655,cpuload_all_100_4096,1199000,1
+p2,4.408429,cpuload_all_100_4096,1199000,1
+p2,8.431125,gamess,2533000,0
+p2,8.417891,gamess,2533000,0
+p2,8.444971,gamess,2533000,0
+p2,6.804762,gamess,2133000,0
+p2,6.788101,gamess,2133000,0
+p2,4.556753,gcc,1199000,0
+p2,6.804355,gamess,2133000,0
+p2,5.756261,gamess,1733000,0
+p2,5.751131,gamess,1733000,0
+p2,5.760028,gamess,1733000,0
+p2,4.534357,gamess,1199000,0
+p2,4.544065,gamess,1199000,0
+p2,4.540083,gamess,1199000,0
+p2,8.449220,gamess,2533000,1
+p2,8.470947,gamess,2533000,1
+p2,8.507657,gamess,2533000,1
+p2,7.730978,gcc,2533000,1
+p2,6.899975,gamess,2133000,1
+p2,6.951004,gamess,2133000,1
+p2,6.939839,gamess,2133000,1
+p2,5.781511,gamess,1733000,1
+p2,5.757472,gamess,1733000,1
+p2,5.764970,gamess,1733000,1
+p2,4.542754,gamess,1199000,1
+p2,4.549389,gamess,1199000,1
+p2,4.542665,gamess,1199000,1
+p2,7.729887,gcc,2533000,0
+p2,7.728000,gcc,2533000,1
+p2,7.723721,gcc,2533000,0
+p2,7.734504,gcc,2533000,0
+p2,6.733419,gcc,2133000,0
+p2,6.722841,gcc,2133000,0
+p2,6.718094,gcc,2133000,0
+p2,5.727368,gcc,1733000,0
+p2,5.724950,gcc,1733000,0
+p2,5.722845,gcc,1733000,0
+p2,4.554604,gcc,1199000,0
+p2,4.561075,gcc,1199000,0
+p2,7.733737,gcc,2533000,1
+p2,4.557537,gcc,1199000,0
+p2,7.748696,gcc,2533000,1
+p2,7.751813,gcc,2533000,1
+p2,7.746394,gcc,2533000,1
+p2,6.776484,gcc,2133000,1
+p2,6.764655,gcc,2133000,1
+p2,6.757949,gcc,2133000,1
+p2,5.728743,gcc,1733000,1
+p2,5.726167,gcc,1733000,1
+p2,5.723524,gcc,1733000,1
+p2,6.754008,gcc,2133000,1
+p2,4.560813,gcc,1199000,1
+p2,4.558304,gcc,1199000,1
+p2,4.561504,gcc,1199000,1
+p2,7.814470,gobmk,2533000,0
+p2,7.833520,gobmk,2533000,0
+p2,7.834054,gobmk,2533000,0
+p2,6.632708,gobmk,2133000,0
+p2,6.640901,gobmk,2133000,0
+p2,6.645374,gobmk,2133000,0
+p2,5.717266,gobmk,1733000,0
+p2,6.756675,gcc,2133000,1
+p2,5.713208,gobmk,1733000,0
+p2,5.712508,gobmk,1733000,0
+p2,4.528768,gobmk,1199000,0
+p2,4.540806,gobmk,1199000,0
+p2,4.520483,gobmk,1199000,0
+p2,7.777093,gobmk,2533000,1
+p2,7.814054,gobmk,2533000,1
+p2,7.833592,gobmk,2533000,1
+p2,6.739818,gobmk,2133000,1
+p2,6.716670,gobmk,2133000,1
+p2,6.754435,gcc,2133000,1
+p2,6.795867,gobmk,2133000,1
+p2,5.695564,gobmk,1733000,1
+p2,5.682236,gobmk,1733000,1
+p2,5.699529,gobmk,1733000,1
+p2,4.539653,gobmk,1199000,1
+p2,4.542335,gobmk,1199000,1
+p2,4.526741,gobmk,1199000,1
+p2,7.707333,gromacs,2533000,0
+p2,7.684751,gromacs,2533000,0
+p2,7.663097,gromacs,2533000,0
+p2,5.721249,gcc,1733000,1
+p2,6.697022,gromacs,2133000,0
+p2,6.644949,gromacs,2133000,0
+p2,6.659606,gromacs,2133000,0
+p2,5.695614,gromacs,1733000,0
+p2,5.679330,gromacs,1733000,0
+p2,5.692419,gromacs,1733000,0
+p2,4.540812,gromacs,1199000,0
+p2,4.537977,gromacs,1199000,0
+p2,4.534455,gromacs,1199000,0
+p2,7.700766,gromacs,2533000,1
+p2,5.724945,gcc,1733000,1
+p2,7.684226,gromacs,2533000,1
+p2,7.723272,gromacs,2533000,1
+p2,6.714266,gromacs,2133000,1
+p2,6.686102,gromacs,2133000,1
+p2,6.701575,gromacs,2133000,1
+p2,5.678840,gromacs,1733000,1
+p2,5.692199,gromacs,1733000,1
+p2,5.692118,gromacs,1733000,1
+p2,4.534392,gromacs,1199000,1
+p2,4.538721,gromacs,1199000,1
+p2,5.724255,gcc,1733000,1
+p2,4.530985,gromacs,1199000,1
+p2,7.923974,h264ref,2533000,0
+p2,7.914572,h264ref,2533000,0
+p2,7.923581,h264ref,2533000,0
+p2,6.796638,h264ref,2133000,0
+p2,6.756905,h264ref,2133000,0
+p2,6.767782,h264ref,2133000,0
+p2,5.694432,h264ref,1733000,0
+p2,5.684479,h264ref,1733000,0
+p2,5.697118,h264ref,1733000,0
+p2,4.557393,gcc,1199000,1
+p2,4.531567,h264ref,1199000,0
+p2,4.516228,h264ref,1199000,0
+p2,4.521322,h264ref,1199000,0
+p2,7.902206,h264ref,2533000,1
+p2,7.915084,h264ref,2533000,1
+p2,7.960253,h264ref,2533000,1
+p2,6.742382,h264ref,2133000,1
+p2,6.778731,h264ref,2133000,1
+p2,6.780539,h264ref,2133000,1
+p2,5.691044,h264ref,1733000,1
+p2,4.560257,gcc,1199000,1
+p2,5.701930,h264ref,1733000,1
+p2,5.681968,h264ref,1733000,1
+p2,4.531929,h264ref,1199000,1
+p2,4.532589,h264ref,1199000,1
+p2,4.527736,h264ref,1199000,1
+p2,8.154468,hmmer,2533000,0
+p2,8.180862,hmmer,2533000,0
+p2,8.163255,hmmer,2533000,0
+p2,6.786672,hmmer,2133000,0
+p2,6.839844,hmmer,2133000,0
+p2,4.561523,gcc,1199000,1
+p2,6.782191,hmmer,2133000,0
+p2,5.634812,hmmer,1733000,0
+p2,5.633374,hmmer,1733000,0
+p2,5.655248,hmmer,1733000,0
+p2,4.488473,hmmer,1199000,0
+p2,4.490269,hmmer,1199000,0
+p2,4.432353,hmmer,1199000,0
+p2,8.212069,hmmer,2533000,1
+p2,8.257181,hmmer,2533000,1
+p2,8.192004,hmmer,2533000,1
+p2,7.808398,gobmk,2533000,0
+p2,6.734512,hmmer,2133000,1
+p2,6.819751,hmmer,2133000,1
+p2,6.802179,hmmer,2133000,1
+p2,5.642927,hmmer,1733000,1
+p2,5.633518,hmmer,1733000,1
+p2,5.684819,hmmer,1733000,1
+p2,4.485449,hmmer,1199000,1
+p2,4.486706,hmmer,1199000,1
+p2,4.517079,hmmer,1199000,1
+p2,7.459597,lbm,2533000,0
+p2,7.796897,gobmk,2533000,0
+p2,7.367697,lbm,2533000,0
+p2,7.462852,lbm,2533000,0
+p2,6.536344,lbm,2133000,0
+p2,6.553163,lbm,2133000,0
+p2,6.590545,lbm,2133000,0
+p2,5.599543,lbm,1733000,0
+p2,5.529541,lbm,1733000,0
+p2,5.546254,lbm,1733000,0
+p2,4.457813,lbm,1199000,0
+p2,4.470450,lbm,1199000,0
+p2,7.780507,gobmk,2533000,0
+p2,4.453689,lbm,1199000,0
+p2,7.518733,lbm,2533000,1
+p2,7.508428,lbm,2533000,1
+p2,7.518575,lbm,2533000,1
+p2,6.568014,lbm,2133000,1
+p2,6.571683,lbm,2133000,1
+p2,6.612942,lbm,2133000,1
+p2,5.597302,lbm,1733000,1
+p2,5.580930,lbm,1733000,1
+p2,5.552409,lbm,1733000,1
+p2,6.722603,gobmk,2133000,0
+p2,4.467093,lbm,1199000,1
+p2,4.441544,lbm,1199000,1
+p2,4.447989,lbm,1199000,1
+p2,7.652464,leslie3d,2533000,0
+p2,7.655279,leslie3d,2533000,0
+p2,7.607904,leslie3d,2533000,0
+p2,6.677096,leslie3d,2133000,0
+p2,6.691065,leslie3d,2133000,0
+p2,6.702743,leslie3d,2133000,0
+p2,5.648748,leslie3d,1733000,0
+p2,6.716767,gobmk,2133000,0
+p2,5.659105,leslie3d,1733000,0
+p2,5.656574,leslie3d,1733000,0
+p2,4.516305,leslie3d,1199000,0
+p2,4.508511,leslie3d,1199000,0
+p2,4.509473,leslie3d,1199000,0
+p2,7.625334,leslie3d,2533000,1
+p2,7.669149,leslie3d,2533000,1
+p2,7.668638,leslie3d,2533000,1
+p2,6.665592,leslie3d,2133000,1
+p2,6.668136,leslie3d,2133000,1
+p2,6.726491,gobmk,2133000,0
+p2,6.670521,leslie3d,2133000,1
+p2,5.613198,leslie3d,1733000,1
+p2,5.637651,leslie3d,1733000,1
+p2,5.651672,leslie3d,1733000,1
+p2,4.520730,leslie3d,1199000,1
+p2,4.523335,leslie3d,1199000,1
+p2,4.522555,leslie3d,1199000,1
+p2,7.228933,mcf,2533000,0
+p2,7.259515,mcf,2533000,0
+p2,7.108799,mcf,2533000,0
+p2,5.691218,gobmk,1733000,0
+p2,6.313376,mcf,2133000,0
+p2,6.214520,mcf,2133000,0
+p2,6.384684,mcf,2133000,0
+p2,5.422551,mcf,1733000,0
+p2,5.475965,mcf,1733000,0
+p2,5.359053,mcf,1733000,0
+p2,4.359528,mcf,1199000,0
+p2,4.394569,mcf,1199000,0
+p2,4.360935,mcf,1199000,0
+p2,7.103432,mcf,2533000,1
+p2,5.680769,gobmk,1733000,0
+p2,7.096076,mcf,2533000,1
+p2,7.210757,mcf,2533000,1
+p2,6.388944,mcf,2133000,1
+p2,6.328745,mcf,2133000,1
+p2,6.198418,mcf,2133000,1
+p2,5.448537,mcf,1733000,1
+p2,5.450125,mcf,1733000,1
+p2,5.430448,mcf,1733000,1
+p2,4.449378,mcf,1199000,1
+p2,4.397009,mcf,1199000,1
+p2,5.684809,gobmk,1733000,0
+p2,4.426905,mcf,1199000,1
+p2,7.038039,milc,2533000,0
+p2,7.285793,milc,2533000,0
+p2,6.984548,milc,2533000,0
+p2,6.216499,milc,2133000,0
+p2,6.309555,milc,2133000,0
+p2,6.189595,milc,2133000,0
+p2,5.286934,milc,1733000,0
+p2,5.256980,milc,1733000,0
+p2,5.234406,milc,1733000,0
+p2,4.532057,gobmk,1199000,0
+p2,4.383779,milc,1199000,0
+p2,4.286034,milc,1199000,0
+p2,4.355464,milc,1199000,0
+p2,6.974566,milc,2533000,1
+p2,6.962368,milc,2533000,1
+p2,7.069615,milc,2533000,1
+p2,6.375098,milc,2133000,1
+p2,6.178430,milc,2133000,1
+p2,6.233954,milc,2133000,1
+p2,5.346915,milc,1733000,1
+p2,4.540816,gobmk,1199000,0
+p2,5.379779,milc,1733000,1
+p2,5.372979,milc,1733000,1
+p2,4.264977,milc,1199000,1
+p2,4.279229,milc,1199000,1
+p2,4.328787,milc,1199000,1
+p2,6.906931,namd,2533000,0
+p2,6.987017,namd,2533000,0
+p2,6.893720,namd,2533000,0
+p2,6.101928,namd,2133000,0
+p2,6.143921,namd,2133000,0
+p2,4.512664,gobmk,1199000,0
+p2,6.085972,namd,2133000,0
+p2,5.333240,namd,1733000,0
+p2,5.343412,namd,1733000,0
+p2,5.334107,namd,1733000,0
+p2,4.375536,namd,1199000,0
+p2,4.285943,namd,1199000,0
+p2,4.362754,namd,1199000,0
+p2,6.910427,namd,2533000,1
+p2,7.027512,namd,2533000,1
+p2,6.892823,namd,2533000,1
+p2,7.779584,gobmk,2533000,1
+p2,6.090947,namd,2133000,1
+p2,6.192343,namd,2133000,1
+p2,6.088346,namd,2133000,1
+p2,5.319966,namd,1733000,1
+p2,5.331167,namd,1733000,1
+p2,5.306892,namd,1733000,1
+p2,4.435741,namd,1199000,1
+p2,4.375376,namd,1199000,1
+p2,4.357716,namd,1199000,1
+p2,8.017258,omnetpp,2533000,0
+p2,7.823790,gobmk,2533000,1
+p2,7.961481,omnetpp,2533000,0
+p2,7.950124,omnetpp,2533000,0
+p2,6.685071,omnetpp,2133000,0
+p2,6.747289,omnetpp,2133000,0
+p2,6.679387,omnetpp,2133000,0
+p2,5.643378,omnetpp,1733000,0
+p2,5.641455,omnetpp,1733000,0
+p2,5.643629,omnetpp,1733000,0
+p2,4.480079,omnetpp,1199000,0
+p2,4.458723,omnetpp,1199000,0
+p2,7.779580,gobmk,2533000,1
+p2,4.466376,omnetpp,1199000,0
+p2,7.929130,omnetpp,2533000,1
+p2,7.891244,omnetpp,2533000,1
+p2,7.947568,omnetpp,2533000,1
+p2,6.724734,omnetpp,2133000,1
+p2,6.707922,omnetpp,2133000,1
+p2,6.694675,omnetpp,2133000,1
+p2,5.590527,omnetpp,1733000,1
+p2,5.638569,omnetpp,1733000,1
+p2,5.619356,omnetpp,1733000,1
+p2,6.741570,gobmk,2133000,1
+p2,4.450267,omnetpp,1199000,1
+p2,4.473119,omnetpp,1199000,1
+p2,4.460286,omnetpp,1199000,1
+p2,6.927866,povray,2533000,0
+p2,6.968145,povray,2533000,0
+p2,6.447218,povray,2533000,0
+p2,5.880882,povray,2133000,0
+p2,5.734679,povray,2133000,0
+p2,5.695158,povray,2133000,0
+p2,5.028132,povray,1733000,0
+p2,6.713905,gobmk,2133000,1
+p2,5.140945,povray,1733000,0
+p2,4.894739,povray,1733000,0
+p2,4.144321,povray,1199000,0
+p2,4.184438,povray,1199000,0
+p2,4.222302,povray,1199000,0
+p2,7.018076,povray,2533000,1
+p2,6.567670,povray,2533000,1
+p2,6.643244,povray,2533000,1
+p2,5.752495,povray,2133000,1
+p2,5.662812,povray,2133000,1
+p2,6.725624,gobmk,2133000,1
+p2,5.821202,povray,2133000,1
+p2,5.159910,povray,1733000,1
+p2,4.891117,povray,1733000,1
+p2,4.970381,povray,1733000,1
+p2,4.217146,povray,1199000,1
+p2,4.192269,povray,1199000,1
+p2,4.189459,povray,1199000,1
+p2,7.778356,sjeng,2533000,0
+p2,7.771230,sjeng,2533000,0
+p2,7.776975,sjeng,2533000,0
+p2,5.684471,gobmk,1733000,1
+p2,6.697342,sjeng,2133000,0
+p2,6.699211,sjeng,2133000,0
+p2,6.724662,sjeng,2133000,0
+p2,5.659139,sjeng,1733000,0
+p2,5.661661,sjeng,1733000,0
+p2,5.653503,sjeng,1733000,0
+p2,4.506523,sjeng,1199000,0
+p2,4.502035,sjeng,1199000,0
+p2,4.501270,sjeng,1199000,0
+p2,7.771351,sjeng,2533000,1
+p2,5.697897,gobmk,1733000,1
+p2,7.787600,sjeng,2533000,1
+p2,7.774420,sjeng,2533000,1
+p2,6.680895,sjeng,2133000,1
+p2,6.702438,sjeng,2133000,1
+p2,6.699881,sjeng,2133000,1
+p2,5.653162,sjeng,1733000,1
+p2,5.653779,sjeng,1733000,1
+p2,5.647664,sjeng,1733000,1
+p2,4.504540,sjeng,1199000,1
+p2,4.507885,sjeng,1199000,1
+p2,5.688641,gobmk,1733000,1
+p2,4.522939,sjeng,1199000,1
+p2,6.275554,soplex,2533000,0
+p2,6.300017,soplex,2533000,0
+p2,6.309414,soplex,2533000,0
+p2,5.610662,soplex,2133000,0
+p2,5.471601,soplex,2133000,0
+p2,5.391873,soplex,2133000,0
+p2,4.900026,soplex,1733000,0
+p2,4.925636,soplex,1733000,0
+p2,4.983935,soplex,1733000,0
+p2,4.523362,gobmk,1199000,1
+p2,4.057267,soplex,1199000,0
+p2,4.003564,soplex,1199000,0
+p2,4.029173,soplex,1199000,0
+p2,6.298442,soplex,2533000,1
+p2,6.300213,soplex,2533000,1
+p2,6.225009,soplex,2533000,1
+p2,5.777575,soplex,2133000,1
+p2,5.197989,soplex,2133000,1
+p2,5.813722,soplex,2133000,1
+p2,4.742044,soplex,1733000,1
+p2,4.521394,gobmk,1199000,1
+p2,4.913983,soplex,1733000,1
+p2,4.973364,soplex,1733000,1
+p2,4.041599,soplex,1199000,1
+p2,4.007366,soplex,1199000,1
+p2,4.196758,soplex,1199000,1
+p2,6.890802,sphinx3,2533000,0
+p2,6.965376,sphinx3,2533000,0
+p2,6.739989,sphinx3,2533000,0
+p2,6.267915,sphinx3,2133000,0
+p2,6.066025,sphinx3,2133000,0
+p2,4.537307,gobmk,1199000,1
+p2,5.964912,sphinx3,2133000,0
+p2,5.226295,sphinx3,1733000,0
+p2,5.226396,sphinx3,1733000,0
+p2,5.212584,sphinx3,1733000,0
+p2,4.242343,sphinx3,1199000,0
+p2,4.173280,sphinx3,1199000,0
+p2,4.252949,sphinx3,1199000,0
+p2,6.904393,sphinx3,2533000,1
+p2,6.941571,sphinx3,2533000,1
+p2,6.866031,sphinx3,2533000,1
+p2,7.705351,gromacs,2533000,0
+p2,5.964153,sphinx3,2133000,1
+p2,6.209001,sphinx3,2133000,1
+p2,5.999931,sphinx3,2133000,1
+p2,5.232537,sphinx3,1733000,1
+p2,5.227632,sphinx3,1733000,1
+p2,5.240068,sphinx3,1733000,1
+p2,4.305711,sphinx3,1199000,1
+p2,4.331239,sphinx3,1199000,1
+p2,4.199929,sphinx3,1199000,1
+p2,7.400265,zeusmp,2533000,0
+p2,7.662346,gromacs,2533000,0
+p2,7.376543,zeusmp,2533000,0
+p2,7.293437,zeusmp,2533000,0
+p2,6.456373,zeusmp,2133000,0
+p2,6.477515,zeusmp,2133000,0
+p2,6.441412,zeusmp,2133000,0
+p2,5.529273,zeusmp,1733000,0
+p2,5.494410,zeusmp,1733000,0
+p2,5.486911,zeusmp,1733000,0
+p2,4.419324,zeusmp,1199000,0
+p2,4.397297,zeusmp,1199000,0
+p2,7.674356,gromacs,2533000,0
+p2,4.406356,zeusmp,1199000,0
+p2,7.274054,zeusmp,2533000,1
+p2,7.288750,zeusmp,2533000,1
+p2,7.400492,zeusmp,2533000,1
+p2,6.426690,zeusmp,2133000,1
+p2,6.499617,zeusmp,2133000,1
+p2,6.500235,zeusmp,2133000,1
+p2,5.490577,zeusmp,1733000,1
+p2,5.502255,zeusmp,1733000,1
+p2,5.525472,zeusmp,1733000,1
+p2,6.730799,gromacs,2133000,0
+p2,4.394831,zeusmp,1199000,1
+p2,4.413656,zeusmp,1199000,1
+p2,4.452288,zeusmp,1199000,1
+p2,6.668236,gromacs,2133000,0
+p2,6.713306,gromacs,2133000,0
+p2,5.685365,gromacs,1733000,0
+p2,5.694805,gromacs,1733000,0
+p2,5.689858,gromacs,1733000,0
+p2,4.536785,gromacs,1199000,0
+p2,4.534886,gromacs,1199000,0
+p2,4.542320,gromacs,1199000,0
+p2,7.693253,gromacs,2533000,1
+p2,7.672264,gromacs,2533000,1
+p2,7.689680,gromacs,2533000,1
+p2,6.708593,gromacs,2133000,1
+p2,6.685686,gromacs,2133000,1
+p2,6.699897,gromacs,2133000,1
+p2,5.690522,gromacs,1733000,1
+p2,5.681952,gromacs,1733000,1
+p2,5.682593,gromacs,1733000,1
+p2,4.544351,gromacs,1199000,1
+p2,4.534963,gromacs,1199000,1
+p2,4.538036,gromacs,1199000,1
+p2,7.891792,h264ref,2533000,0
+p2,7.995026,h264ref,2533000,0
+p2,7.960754,h264ref,2533000,0
+p2,6.673803,h264ref,2133000,0
+p2,6.682148,h264ref,2133000,0
+p2,6.736755,h264ref,2133000,0
+p2,5.703188,h264ref,1733000,0
+p2,5.715857,h264ref,1733000,0
+p2,5.701911,h264ref,1733000,0
+p2,4.526233,h264ref,1199000,0
+p2,4.530356,h264ref,1199000,0
+p2,4.529325,h264ref,1199000,0
+p2,7.936883,h264ref,2533000,1
+p2,7.932017,h264ref,2533000,1
+p2,7.941605,h264ref,2533000,1
+p2,6.775659,h264ref,2133000,1
+p2,6.789637,h264ref,2133000,1
+p2,6.796918,h264ref,2133000,1
+p2,5.695520,h264ref,1733000,1
+p2,5.686281,h264ref,1733000,1
+p2,5.700751,h264ref,1733000,1
+p2,4.522575,h264ref,1199000,1
+p2,4.516401,h264ref,1199000,1
+p2,4.541860,h264ref,1199000,1
+p2,8.231733,hmmer,2533000,0
+p2,8.167816,hmmer,2533000,0
+p2,8.220769,hmmer,2533000,0
+p2,6.677822,hmmer,2133000,0
+p2,6.672945,hmmer,2133000,0
+p2,6.701438,hmmer,2133000,0
+p2,5.675754,hmmer,1733000,0
+p2,5.642362,hmmer,1733000,0
+p2,5.641763,hmmer,1733000,0
+p2,4.496390,hmmer,1199000,0
+p2,4.503637,hmmer,1199000,0
+p2,4.527933,hmmer,1199000,0
+p2,8.222607,hmmer,2533000,1
+p2,8.313988,hmmer,2533000,1
+p2,8.199892,hmmer,2533000,1
+p2,6.753854,hmmer,2133000,1
+p2,6.755296,hmmer,2133000,1
+p2,6.796961,hmmer,2133000,1
+p2,5.678876,hmmer,1733000,1
+p2,5.646922,hmmer,1733000,1
+p2,5.709237,hmmer,1733000,1
+p2,4.497208,hmmer,1199000,1
+p2,4.496096,hmmer,1199000,1
+p2,4.504424,hmmer,1199000,1
+p2,7.477614,lbm,2533000,0
+p2,7.508319,lbm,2533000,0
+p2,7.518346,lbm,2533000,0
+p2,6.542361,lbm,2133000,0
+p2,6.590268,lbm,2133000,0
+p2,6.546181,lbm,2133000,0
+p2,5.609166,lbm,1733000,0
+p2,5.587128,lbm,1733000,0
+p2,5.559200,lbm,1733000,0
+p2,4.444910,lbm,1199000,0
+p2,4.468923,lbm,1199000,0
+p2,4.483980,lbm,1199000,0
+p2,7.506716,lbm,2533000,1
+p2,7.504145,lbm,2533000,1
+p2,7.400757,lbm,2533000,1
+p2,6.566614,lbm,2133000,1
+p2,6.552945,lbm,2133000,1
+p2,6.553041,lbm,2133000,1
+p2,5.612672,lbm,1733000,1
+p2,5.591661,lbm,1733000,1
+p2,5.564389,lbm,1733000,1
+p2,4.482094,lbm,1199000,1
+p2,4.476636,lbm,1199000,1
+p2,4.478725,lbm,1199000,1
+p2,7.691564,leslie3d,2533000,0
+p2,7.653857,leslie3d,2533000,0
+p2,7.692175,leslie3d,2533000,0
+p2,6.627313,leslie3d,2133000,0
+p2,6.696654,leslie3d,2133000,0
+p2,6.708043,leslie3d,2133000,0
+p2,5.670748,leslie3d,1733000,0
+p2,5.685455,leslie3d,1733000,0
+p2,5.692837,leslie3d,1733000,0
+p2,4.542047,leslie3d,1199000,0
+p2,4.531405,leslie3d,1199000,0
+p2,4.540454,leslie3d,1199000,0
+p2,7.649756,leslie3d,2533000,1
+p2,7.723362,leslie3d,2533000,1
+p2,7.677562,leslie3d,2533000,1
+p2,6.722073,leslie3d,2133000,1
+p2,6.675481,leslie3d,2133000,1
+p2,6.733423,leslie3d,2133000,1
+p2,5.677758,leslie3d,1733000,1
+p2,5.678539,leslie3d,1733000,1
+p2,5.683006,leslie3d,1733000,1
+p2,4.527106,leslie3d,1199000,1
+p2,4.548616,leslie3d,1199000,1
+p2,4.531594,leslie3d,1199000,1
+p2,7.270929,mcf,2533000,0
+p2,7.139913,mcf,2533000,0
+p2,7.117256,mcf,2533000,0
+p2,6.434495,mcf,2133000,0
+p2,6.356603,mcf,2133000,0
+p2,6.295331,mcf,2133000,0
+p2,5.419023,mcf,1733000,0
+p2,5.521925,mcf,1733000,0
+p2,5.459022,mcf,1733000,0
+p2,4.400375,mcf,1199000,0
+p2,4.367145,mcf,1199000,0
+p2,4.384530,mcf,1199000,0
+p2,7.297533,mcf,2533000,1
+p2,7.233157,mcf,2533000,1
+p2,7.074211,mcf,2533000,1
+p2,6.326068,mcf,2133000,1
+p2,6.425803,mcf,2133000,1
+p2,6.357222,mcf,2133000,1
+p2,5.457953,mcf,1733000,1
+p2,5.429434,mcf,1733000,1
+p2,5.404250,mcf,1733000,1
+p2,4.373892,mcf,1199000,1
+p2,4.362207,mcf,1199000,1
+p2,4.391448,mcf,1199000,1
+p2,7.411007,milc,2533000,0
+p2,7.154410,milc,2533000,0
+p2,7.142348,milc,2533000,0
+p2,6.296998,milc,2133000,0
+p2,6.299147,milc,2133000,0
+p2,6.394274,milc,2133000,0
+p2,5.305656,milc,1733000,0
+p2,5.271699,milc,1733000,0
+p2,5.393401,milc,1733000,0
+p2,4.313922,milc,1199000,0
+p2,4.322541,milc,1199000,0
+p2,4.327853,milc,1199000,0
+p2,7.045299,milc,2533000,1
+p2,7.023277,milc,2533000,1
+p2,7.040661,milc,2533000,1
+p2,6.239506,milc,2133000,1
+p2,6.346907,milc,2133000,1
+p2,6.228698,milc,2133000,1
+p2,5.430242,milc,1733000,1
+p2,5.347822,milc,1733000,1
+p2,5.297178,milc,1733000,1
+p2,4.414963,milc,1199000,1
+p2,4.317796,milc,1199000,1
+p2,4.310889,milc,1199000,1
+p2,6.929126,namd,2533000,0
+p2,6.938779,namd,2533000,0
+p2,6.942598,namd,2533000,0
+p2,6.114675,namd,2133000,0
+p2,6.140846,namd,2133000,0
+p2,6.135878,namd,2133000,0
+p2,5.349609,namd,1733000,0
+p2,5.258147,namd,1733000,0
+p2,5.362015,namd,1733000,0
+p2,4.314459,namd,1199000,0
+p2,4.317927,namd,1199000,0
+p2,4.314729,namd,1199000,0
+p2,7.015294,namd,2533000,1
+p2,6.934658,namd,2533000,1
+p2,6.995924,namd,2533000,1
+p2,6.150290,namd,2133000,1
+p2,6.318496,namd,2133000,1
+p2,6.177540,namd,2133000,1
+p2,5.257535,namd,1733000,1
+p2,5.393085,namd,1733000,1
+p2,5.228378,namd,1733000,1
+p2,4.411342,namd,1199000,1
+p2,4.407543,namd,1199000,1
+p2,4.316180,namd,1199000,1
+p2,8.050981,omnetpp,2533000,0
+p2,8.025448,omnetpp,2533000,0
+p2,8.056161,omnetpp,2533000,0
+p2,6.625326,omnetpp,2133000,0
+p2,6.583987,omnetpp,2133000,0
+p2,6.584231,omnetpp,2133000,0
+p2,5.647414,omnetpp,1733000,0
+p2,5.690417,omnetpp,1733000,0
+p2,5.659622,omnetpp,1733000,0
+p2,4.515611,omnetpp,1199000,0
+p2,4.496301,omnetpp,1199000,0
+p2,4.531579,omnetpp,1199000,0
+p2,7.998059,omnetpp,2533000,1
+p2,8.043611,omnetpp,2533000,1
+p2,7.956780,omnetpp,2533000,1
+p2,6.703664,omnetpp,2133000,1
+p2,6.738333,omnetpp,2133000,1
+p2,6.752574,omnetpp,2133000,1
+p2,5.637977,omnetpp,1733000,1
+p2,5.638782,omnetpp,1733000,1
+p2,5.634313,omnetpp,1733000,1
+p2,4.495821,omnetpp,1199000,1
+p2,4.516762,omnetpp,1199000,1
+p2,4.496367,omnetpp,1199000,1
+p2,6.582903,povray,2533000,0
+p2,6.597157,povray,2533000,0
+p2,7.012698,povray,2533000,0
+p2,5.814737,povray,2133000,0
+p2,5.557651,povray,2133000,0
+p2,5.835154,povray,2133000,0
+p2,5.123365,povray,1733000,0
+p2,4.976248,povray,1733000,0
+p2,4.949843,povray,1733000,0
+p2,4.255560,povray,1199000,0
+p2,4.246099,povray,1199000,0
+p2,4.130584,povray,1199000,0
+p2,6.544684,povray,2533000,1
+p2,7.056260,povray,2533000,1
+p2,7.047725,povray,2533000,1
+p2,5.743930,povray,2133000,1
+p2,5.504571,povray,2133000,1
+p2,5.956701,povray,2133000,1
+p2,5.187653,povray,1733000,1
+p2,5.093782,povray,1733000,1
+p2,5.070403,povray,1733000,1
+p2,4.098441,povray,1199000,1
+p2,4.075795,povray,1199000,1
+p2,4.230862,povray,1199000,1
+p2,7.824997,sjeng,2533000,0
+p2,7.845631,sjeng,2533000,0
+p2,7.836829,sjeng,2533000,0
+p2,6.656671,sjeng,2133000,0
+p2,6.638437,sjeng,2133000,0
+p2,6.635502,sjeng,2133000,0
+p2,5.704905,sjeng,1733000,0
+p2,5.699531,sjeng,1733000,0
+p2,5.698388,sjeng,1733000,0
+p2,4.533617,sjeng,1199000,0
+p2,4.534360,sjeng,1199000,0
+p2,4.537811,sjeng,1199000,0
+p2,7.812254,sjeng,2533000,1
+p2,7.829381,sjeng,2533000,1
+p2,7.865066,sjeng,2533000,1
+p2,6.752144,sjeng,2133000,1
+p2,6.770305,sjeng,2133000,1
+p2,6.746963,sjeng,2133000,1
+p2,5.700014,sjeng,1733000,1
+p2,5.703763,sjeng,1733000,1
+p2,5.707076,sjeng,1733000,1
+p2,4.535165,sjeng,1199000,1
+p2,4.524910,sjeng,1199000,1
+p2,4.538365,sjeng,1199000,1
+p2,6.376464,soplex,2533000,0
+p2,6.526672,soplex,2533000,0
+p2,6.661570,soplex,2533000,0
+p2,5.685290,soplex,2133000,0
+p2,5.611340,soplex,2133000,0
+p2,5.668898,soplex,2133000,0
+p2,5.000928,soplex,1733000,0
+p2,4.997440,soplex,1733000,0
+p2,4.813731,soplex,1733000,0
+p2,4.064344,soplex,1199000,0
+p2,4.035057,soplex,1199000,0
+p2,4.074170,soplex,1199000,0
+p2,6.438442,soplex,2533000,1
+p2,6.346444,soplex,2533000,1
+p2,6.343073,soplex,2533000,1
+p2,5.624945,soplex,2133000,1
+p2,6.534519,soplex,2133000,1
+p2,5.603607,soplex,2133000,1
+p2,4.695701,soplex,1733000,1
+p2,4.714774,soplex,1733000,1
+p2,4.984924,soplex,1733000,1
+p2,4.019569,soplex,1199000,1
+p2,4.038922,soplex,1199000,1
+p2,4.017679,soplex,1199000,1
+p2,6.672311,sphinx3,2533000,0
+p2,6.941670,sphinx3,2533000,0
+p2,6.930215,sphinx3,2533000,0
+p2,6.215214,sphinx3,2133000,0
+p2,6.010311,sphinx3,2133000,0
+p2,6.015790,sphinx3,2133000,0
+p2,5.256432,sphinx3,1733000,0
+p2,5.132856,sphinx3,1733000,0
+p2,5.256674,sphinx3,1733000,0
+p2,4.260261,sphinx3,1199000,0
+p2,4.337695,sphinx3,1199000,0
+p2,4.184282,sphinx3,1199000,0
+p2,6.914231,sphinx3,2533000,1
+p2,6.925939,sphinx3,2533000,1
+p2,6.648843,sphinx3,2533000,1
+p2,5.986828,sphinx3,2133000,1
+p2,6.076473,sphinx3,2133000,1
+p2,6.282051,sphinx3,2133000,1
+p2,5.279661,sphinx3,1733000,1
+p2,5.253747,sphinx3,1733000,1
+p2,5.308700,sphinx3,1733000,1
+p2,4.262980,sphinx3,1199000,1
+p2,4.267334,sphinx3,1199000,1
+p2,4.166551,sphinx3,1199000,1
+p2,7.360940,zeusmp,2533000,0
+p2,7.415692,zeusmp,2533000,0
+p2,7.323273,zeusmp,2533000,0
+p2,6.499724,zeusmp,2133000,0
+p2,6.439796,zeusmp,2133000,0
+p2,6.541243,zeusmp,2133000,0
+p2,5.543462,zeusmp,1733000,0
+p2,5.541953,zeusmp,1733000,0
+p2,5.542506,zeusmp,1733000,0
+p2,4.451612,zeusmp,1199000,0
+p2,4.434409,zeusmp,1199000,0
+p2,4.479397,zeusmp,1199000,0
+p2,7.320014,zeusmp,2533000,1
+p2,7.483709,zeusmp,2533000,1
+p2,7.421937,zeusmp,2533000,1
+p2,6.450331,zeusmp,2133000,1
+p2,6.548162,zeusmp,2133000,1
+p2,6.508515,zeusmp,2133000,1
+p2,5.522937,zeusmp,1733000,1
+p2,5.530901,zeusmp,1733000,1
+p2,5.525100,zeusmp,1733000,1
+p2,4.470682,zeusmp,1199000,1
+p2,4.438893,zeusmp,1199000,1
+p2,4.430606,zeusmp,1199000,1
+p2,9.269943,bzip2,2533000,0
+p2,9.181166,bzip2,2533000,0
+p2,8.515253,bzip2,2533000,0
+p2,6.521095,bzip2,2133000,0
+p2,6.552160,bzip2,2133000,0
+p2,6.550897,bzip2,2133000,0
+p2,5.568127,bzip2,1733000,0
+p2,5.574881,bzip2,1733000,0
+p2,5.586492,bzip2,1733000,0
+p2,4.423868,bzip2,1199000,0
+p2,4.465303,bzip2,1199000,0
+p2,4.441217,bzip2,1199000,0
+p2,7.607452,bzip2,2533000,1
+p2,7.583284,bzip2,2533000,1
+p2,7.683649,bzip2,2533000,1
+p2,6.555378,bzip2,2133000,1
+p2,6.543244,bzip2,2133000,1
+p2,6.556998,bzip2,2133000,1
+p2,5.604192,bzip2,1733000,1
+p2,5.578498,bzip2,1733000,1
+p2,5.514401,bzip2,1733000,1
+p2,4.471645,bzip2,1199000,1
+p2,4.467405,bzip2,1199000,1
+p2,4.456580,bzip2,1199000,1
+p2,7.365067,cactusADM,2533000,0
+p2,7.184181,cactusADM,2533000,0
+p2,7.224386,cactusADM,2533000,0
+p2,6.374637,cactusADM,2133000,0
+p2,6.424650,cactusADM,2133000,0
+p2,6.384992,cactusADM,2133000,0
+p2,5.383118,cactusADM,1733000,0
+p2,5.432349,cactusADM,1733000,0
+p2,5.481396,cactusADM,1733000,0
+p2,4.383581,cactusADM,1199000,0
+p2,4.362111,cactusADM,1199000,0
+p2,4.427286,cactusADM,1199000,0
+p2,7.187291,cactusADM,2533000,1
+p2,7.165601,cactusADM,2533000,1
+p2,7.206958,cactusADM,2533000,1
+p2,6.461541,cactusADM,2133000,1
+p2,6.328999,cactusADM,2133000,1
+p2,6.319206,cactusADM,2133000,1
+p2,5.477851,cactusADM,1733000,1
+p2,5.379752,cactusADM,1733000,1
+p2,5.406985,cactusADM,1733000,1
+p2,4.452332,cactusADM,1199000,1
+p2,4.437302,cactusADM,1199000,1
+p2,4.466300,cactusADM,1199000,1
+p2,0.781494,cpuload_all_0_4096,2533000,0
+p2,0.630608,cpuload_all_0_4096,2533000,0
+p2,0.678009,cpuload_all_0_4096,2533000,0
+p2,0.672911,cpuload_all_0_4096,2133000,0
+p2,0.672097,cpuload_all_0_4096,2133000,0
+p2,0.726246,cpuload_all_0_4096,2133000,0
+p2,0.928975,cpuload_all_0_4096,1733000,0
+p2,0.709541,cpuload_all_0_4096,1733000,0
+p2,0.763314,cpuload_all_0_4096,1733000,0
+p2,0.717052,cpuload_all_0_4096,1199000,0
+p2,0.632961,cpuload_all_0_4096,1199000,0
+p2,0.739817,cpuload_all_0_4096,1199000,0
+p2,0.671555,cpuload_all_0_4096,2533000,1
+p2,0.722860,cpuload_all_0_4096,2533000,1
+p2,0.762171,cpuload_all_0_4096,2533000,1
+p2,0.701506,cpuload_all_0_4096,2133000,1
+p2,0.695676,cpuload_all_0_4096,2133000,1
+p2,0.677670,cpuload_all_0_4096,2133000,1
+p2,0.608012,cpuload_all_0_4096,1733000,1
+p2,0.581046,cpuload_all_0_4096,1733000,1
+p2,0.602586,cpuload_all_0_4096,1733000,1
+p2,0.626674,cpuload_all_0_4096,1199000,1
+p2,0.617752,cpuload_all_0_4096,1199000,1
+p2,0.698240,cpuload_all_0_4096,1199000,1
+p2,2.648770,cpuload_all_25_4096,2533000,0
+p2,2.590931,cpuload_all_25_4096,2533000,0
+p2,2.632333,cpuload_all_25_4096,2533000,0
+p2,2.388863,cpuload_all_25_4096,2133000,0
+p2,2.344290,cpuload_all_25_4096,2133000,0
+p2,2.386106,cpuload_all_25_4096,2133000,0
+p2,2.061674,cpuload_all_25_4096,1733000,0
+p2,2.076357,cpuload_all_25_4096,1733000,0
+p2,2.054546,cpuload_all_25_4096,1733000,0
+p2,1.854445,cpuload_all_25_4096,1199000,0
+p2,1.882877,cpuload_all_25_4096,1199000,0
+p2,1.872401,cpuload_all_25_4096,1199000,0
+p2,2.545962,cpuload_all_25_4096,2533000,1
+p2,2.597125,cpuload_all_25_4096,2533000,1
+p2,2.593416,cpuload_all_25_4096,2533000,1
+p2,2.295646,cpuload_all_25_4096,2133000,1
+p2,2.318120,cpuload_all_25_4096,2133000,1
+p2,2.329303,cpuload_all_25_4096,2133000,1
+p2,2.057819,cpuload_all_25_4096,1733000,1
+p2,2.083298,cpuload_all_25_4096,1733000,1
+p2,2.041516,cpuload_all_25_4096,1733000,1
+p2,1.863181,cpuload_all_25_4096,1199000,1
+p2,1.826636,cpuload_all_25_4096,1199000,1
+p2,1.840608,cpuload_all_25_4096,1199000,1
+p2,7.197853,cpuload_all_50_4096,2533000,0
+p2,7.293988,cpuload_all_50_4096,2533000,0
+p2,7.377686,cpuload_all_50_4096,2533000,0
+p2,6.406475,cpuload_all_50_4096,2133000,0
+p2,6.443676,cpuload_all_50_4096,2133000,0
+p2,6.433758,cpuload_all_50_4096,2133000,0
+p2,5.448255,cpuload_all_50_4096,1733000,0
+p2,5.515202,cpuload_all_50_4096,1733000,0
+p2,4.980935,cpuload_all_50_4096,1733000,0
+p2,4.417264,cpuload_all_50_4096,1199000,0
+p2,4.343333,cpuload_all_50_4096,1199000,0
+p2,4.402337,cpuload_all_50_4096,1199000,0
+p2,7.299129,cpuload_all_50_4096,2533000,1
+p2,7.349866,cpuload_all_50_4096,2533000,1
+p2,7.423882,cpuload_all_50_4096,2533000,1
+p2,6.060722,cpuload_all_50_4096,2133000,1
+p2,6.487030,cpuload_all_50_4096,2133000,1
+p2,6.408424,cpuload_all_50_4096,2133000,1
+p2,5.040091,cpuload_all_50_4096,1733000,1
+p2,5.437353,cpuload_all_50_4096,1733000,1
+p2,5.453429,cpuload_all_50_4096,1733000,1
+p2,4.530586,cpuload_all_50_4096,1199000,1
+p2,4.474189,cpuload_all_50_4096,1199000,1
+p2,4.496183,cpuload_all_50_4096,1199000,1
+p2,7.287853,cpuload_all_75_4096,2533000,0
+p2,7.386725,cpuload_all_75_4096,2533000,0
+p2,7.417119,cpuload_all_75_4096,2533000,0
+p2,6.413027,cpuload_all_75_4096,2133000,0
+p2,6.420347,cpuload_all_75_4096,2133000,0
+p2,6.507294,cpuload_all_75_4096,2133000,0
+p2,5.448832,cpuload_all_75_4096,1733000,0
+p2,5.527847,cpuload_all_75_4096,1733000,0
+p2,5.437237,cpuload_all_75_4096,1733000,0
+p2,4.404265,cpuload_all_75_4096,1199000,0
+p2,4.363011,cpuload_all_75_4096,1199000,0
+p2,4.364740,cpuload_all_75_4096,1199000,0
+p2,7.266584,cpuload_all_75_4096,2533000,1
+p2,7.308175,cpuload_all_75_4096,2533000,1
+p2,7.370658,cpuload_all_75_4096,2533000,1
+p2,6.374640,cpuload_all_75_4096,2133000,1
+p2,6.398361,cpuload_all_75_4096,2133000,1
+p2,6.382784,cpuload_all_75_4096,2133000,1
+p2,5.431620,cpuload_all_75_4096,1733000,1
+p2,5.425882,cpuload_all_75_4096,1733000,1
+p2,5.509352,cpuload_all_75_4096,1733000,1
+p2,4.455556,cpuload_all_75_4096,1199000,1
+p2,4.523666,cpuload_all_75_4096,1199000,1
+p2,4.442063,cpuload_all_75_4096,1199000,1
+p2,7.425648,cpuload_all_100_4096,2533000,0
+p2,7.325747,cpuload_all_100_4096,2533000,0
+p2,7.326802,cpuload_all_100_4096,2533000,0
+p2,6.418409,cpuload_all_100_4096,2133000,0
+p2,6.502611,cpuload_all_100_4096,2133000,0
+p2,6.422575,cpuload_all_100_4096,2133000,0
+p2,5.456761,cpuload_all_100_4096,1733000,0
+p2,5.523443,cpuload_all_100_4096,1733000,0
+p2,5.454802,cpuload_all_100_4096,1733000,0
+p2,4.413043,cpuload_all_100_4096,1199000,0
+p2,4.351561,cpuload_all_100_4096,1199000,0
+p2,4.407001,cpuload_all_100_4096,1199000,0
+p2,7.312861,cpuload_all_100_4096,2533000,1
+p2,7.440854,cpuload_all_100_4096,2533000,1
+p2,7.311524,cpuload_all_100_4096,2533000,1
+p2,6.421963,cpuload_all_100_4096,2133000,1
+p2,6.435915,cpuload_all_100_4096,2133000,1
+p2,6.412313,cpuload_all_100_4096,2133000,1
+p2,5.523343,cpuload_all_100_4096,1733000,1
+p2,5.456579,cpuload_all_100_4096,1733000,1
+p2,5.538373,cpuload_all_100_4096,1733000,1
+p2,4.443776,cpuload_all_100_4096,1199000,1
+p2,4.470956,cpuload_all_100_4096,1199000,1
+p2,4.462223,cpuload_all_100_4096,1199000,1
+p2,8.373395,gamess,2533000,0
+p2,8.392178,gamess,2533000,0
+p2,8.353384,gamess,2533000,0
+p2,6.882396,gamess,2133000,0
+p2,6.901254,gamess,2133000,0
+p2,6.878629,gamess,2133000,0
+p2,5.705348,gamess,1733000,0
+p2,5.712261,gamess,1733000,0
+p2,5.703255,gamess,1733000,0
+p2,4.507392,gamess,1199000,0
+p2,4.511676,gamess,1199000,0
+p2,4.496028,gamess,1199000,0
+p2,8.371066,gamess,2533000,1
+p2,8.343958,gamess,2533000,1
+p2,8.387252,gamess,2533000,1
+p2,6.876170,gamess,2133000,1
+p2,6.912351,gamess,2133000,1
+p2,6.890601,gamess,2133000,1
+p2,5.708360,gamess,1733000,1
+p2,5.714031,gamess,1733000,1
+p2,5.713237,gamess,1733000,1
+p2,4.562935,gamess,1199000,1
+p2,4.556408,gamess,1199000,1
+p2,4.551409,gamess,1199000,1
+p2,7.658452,gcc,2533000,0
+p2,7.653970,gcc,2533000,0
+p2,7.667756,gcc,2533000,0
+p2,6.700420,gcc,2133000,0
+p2,6.695218,gcc,2133000,0
+p2,6.702302,gcc,2133000,0
+p2,5.675661,gcc,1733000,0
+p2,5.669450,gcc,1733000,0
+p2,5.670253,gcc,1733000,0
+p2,4.518874,gcc,1199000,0
+p2,4.515966,gcc,1199000,0
+p2,4.512421,gcc,1199000,0
+p2,7.673305,gcc,2533000,1
+p2,7.675699,gcc,2533000,1
+p2,7.678500,gcc,2533000,1
+p2,6.712211,gcc,2133000,1
+p2,6.699434,gcc,2133000,1
+p2,6.709792,gcc,2133000,1
+p2,5.682971,gcc,1733000,1
+p2,5.680327,gcc,1733000,1
+p2,5.673319,gcc,1733000,1
+p2,4.508285,gcc,1199000,1
+p2,4.523905,gcc,1199000,1
+p2,4.527103,gcc,1199000,1
+p2,7.834418,gobmk,2533000,0
+p2,7.827594,gobmk,2533000,0
+p2,7.831586,gobmk,2533000,0
+p2,6.742540,gobmk,2133000,0
+p2,6.682181,gobmk,2133000,0
+p2,6.735620,gobmk,2133000,0
+p2,5.628257,gobmk,1733000,0
+p2,5.673235,gobmk,1733000,0
+p2,5.670366,gobmk,1733000,0
+p2,4.519668,gobmk,1199000,0
+p2,4.522074,gobmk,1199000,0
+p2,4.518204,gobmk,1199000,0
+p2,7.793989,gobmk,2533000,1
+p2,7.818991,gobmk,2533000,1
+p2,7.729982,gobmk,2533000,1
+p2,6.698026,gobmk,2133000,1
+p2,6.715771,gobmk,2133000,1
+p2,6.685965,gobmk,2133000,1
+p2,5.674176,gobmk,1733000,1
+p2,5.699394,gobmk,1733000,1
+p2,5.703767,gobmk,1733000,1
+p2,4.520029,gobmk,1199000,1
+p2,4.529354,gobmk,1199000,1
+p2,4.522946,gobmk,1199000,1
+p2,7.621362,gromacs,2533000,0
+p2,7.651521,gromacs,2533000,0
+p2,7.638299,gromacs,2533000,0
+p2,6.686906,gromacs,2133000,0
+p2,6.720595,gromacs,2133000,0
+p2,6.677738,gromacs,2133000,0
+p2,5.674039,gromacs,1733000,0
+p2,5.664626,gromacs,1733000,0
+p2,5.672223,gromacs,1733000,0
+p2,4.502527,gromacs,1199000,0
+p2,4.524485,gromacs,1199000,0
+p2,4.521642,gromacs,1199000,0
+p2,7.710288,gromacs,2533000,1
+p2,7.690700,gromacs,2533000,1
+p2,7.716513,gromacs,2533000,1
+p2,6.709503,gromacs,2133000,1
+p2,6.695384,gromacs,2133000,1
+p2,6.692249,gromacs,2133000,1
+p2,5.697663,gromacs,1733000,1
+p2,5.683484,gromacs,1733000,1
+p2,5.675754,gromacs,1733000,1
+p2,4.516179,gromacs,1199000,1
+p2,4.526260,gromacs,1199000,1
+p2,4.533525,gromacs,1199000,1
+p2,7.904552,h264ref,2533000,0
+p2,7.993490,h264ref,2533000,0
+p2,8.038294,h264ref,2533000,0
+p2,6.650250,h264ref,2133000,0
+p2,6.653201,h264ref,2133000,0
+p2,6.661240,h264ref,2133000,0
+p2,5.698978,h264ref,1733000,0
+p2,5.709593,h264ref,1733000,0
+p2,5.718453,h264ref,1733000,0
+p2,4.529245,h264ref,1199000,0
+p2,4.520307,h264ref,1199000,0
+p2,4.524552,h264ref,1199000,0
+p2,8.006744,h264ref,2533000,1
+p2,8.004481,h264ref,2533000,1
+p2,8.000559,h264ref,2533000,1
+p2,6.816365,h264ref,2133000,1
+p2,6.768831,h264ref,2133000,1
+p2,6.824310,h264ref,2133000,1
+p2,5.713311,h264ref,1733000,1
+p2,5.719327,h264ref,1733000,1
+p2,5.713828,h264ref,1733000,1
+p2,4.543368,h264ref,1199000,1
+p2,4.545502,h264ref,1199000,1
+p2,4.531779,h264ref,1199000,1
+p2,8.305465,hmmer,2533000,0
+p2,8.351480,hmmer,2533000,0
+p2,8.317464,hmmer,2533000,0
+p2,6.765017,hmmer,2133000,0
+p2,6.747467,hmmer,2133000,0
+p2,6.730229,hmmer,2133000,0
+p2,5.705798,hmmer,1733000,0
+p2,5.715146,hmmer,1733000,0
+p2,5.700130,hmmer,1733000,0
+p2,4.506291,hmmer,1199000,0
+p2,4.518913,hmmer,1199000,0
+p2,4.500818,hmmer,1199000,0
+p2,8.384079,hmmer,2533000,1
+p2,8.266278,hmmer,2533000,1
+p2,8.395160,hmmer,2533000,1
+p2,6.805004,hmmer,2133000,1
+p2,6.831038,hmmer,2133000,1
+p2,6.889059,hmmer,2133000,1
+p2,5.715639,hmmer,1733000,1
+p2,5.682287,hmmer,1733000,1
+p2,5.659209,hmmer,1733000,1
+p2,4.515967,hmmer,1199000,1
+p2,4.523764,hmmer,1199000,1
+p2,4.527268,hmmer,1199000,1
+p2,7.538854,lbm,2533000,0
+p2,7.545158,lbm,2533000,0
+p2,7.554376,lbm,2533000,0
+p2,6.663806,lbm,2133000,0
+p2,6.572024,lbm,2133000,0
+p2,6.570432,lbm,2133000,0
+p2,5.638651,lbm,1733000,0
+p2,5.648991,lbm,1733000,0
+p2,5.622822,lbm,1733000,0
+p2,4.500340,lbm,1199000,0
+p2,4.505226,lbm,1199000,0
+p2,4.476040,lbm,1199000,0
+p2,7.534934,lbm,2533000,1
+p2,7.542574,lbm,2533000,1
+p2,7.550758,lbm,2533000,1
+p2,6.660092,lbm,2133000,1
+p2,6.587728,lbm,2133000,1
+p2,6.644957,lbm,2133000,1
+p2,5.629295,lbm,1733000,1
+p2,5.599057,lbm,1733000,1
+p2,5.585833,lbm,1733000,1
+p2,4.470641,lbm,1199000,1
+p2,4.499421,lbm,1199000,1
+p2,4.476070,lbm,1199000,1
+p2,7.687785,leslie3d,2533000,0
+p2,7.678202,leslie3d,2533000,0
+p2,7.708442,leslie3d,2533000,0
+p2,6.588945,leslie3d,2133000,0
+p2,6.624744,leslie3d,2133000,0
+p2,6.641455,leslie3d,2133000,0
+p2,5.674577,leslie3d,1733000,0
+p2,5.678446,leslie3d,1733000,0
+p2,5.670474,leslie3d,1733000,0
+p2,4.537453,leslie3d,1199000,0
+p2,4.547849,leslie3d,1199000,0
+p2,4.551565,leslie3d,1199000,0
+p2,7.723194,leslie3d,2533000,1
+p2,7.685320,leslie3d,2533000,1
+p2,7.657989,leslie3d,2533000,1
+p2,6.705484,leslie3d,2133000,1
+p2,6.697033,leslie3d,2133000,1
+p2,6.729183,leslie3d,2133000,1
+p2,5.701337,leslie3d,1733000,1
+p2,5.691649,leslie3d,1733000,1
+p2,5.696948,leslie3d,1733000,1
+p2,4.553755,leslie3d,1199000,1
+p2,4.544530,leslie3d,1199000,1
+p2,4.546152,leslie3d,1199000,1
+p2,7.257932,mcf,2533000,0
+p2,7.203687,mcf,2533000,0
+p2,7.319455,mcf,2533000,0
+p2,6.537464,mcf,2133000,0
+p2,6.399607,mcf,2133000,0
+p2,6.432081,mcf,2133000,0
+p2,5.518235,mcf,1733000,0
+p2,5.501436,mcf,1733000,0
+p2,5.512610,mcf,1733000,0
+p2,4.460291,mcf,1199000,0
+p2,4.428293,mcf,1199000,0
+p2,4.402313,mcf,1199000,0
+p2,7.225962,mcf,2533000,1
+p2,7.186473,mcf,2533000,1
+p2,7.233076,mcf,2533000,1
+p2,6.372606,mcf,2133000,1
+p2,6.276682,mcf,2133000,1
+p2,6.412172,mcf,2133000,1
+p2,5.490740,mcf,1733000,1
+p2,5.457998,mcf,1733000,1
+p2,5.468981,mcf,1733000,1
+p2,4.439585,mcf,1199000,1
+p2,4.495024,mcf,1199000,1
+p2,4.393197,mcf,1199000,1
+p2,7.065013,milc,2533000,0
+p2,7.029214,milc,2533000,0
+p2,7.073419,milc,2533000,0
+p2,6.248867,milc,2133000,0
+p2,6.274765,milc,2133000,0
+p2,6.298253,milc,2133000,0
+p2,5.397468,milc,1733000,0
+p2,5.473824,milc,1733000,0
+p2,5.285267,milc,1733000,0
+p2,4.384341,milc,1199000,0
+p2,4.398400,milc,1199000,0
+p2,4.345062,milc,1199000,0
+p2,7.138194,milc,2533000,1
+p2,7.109214,milc,2533000,1
+p2,7.145125,milc,2533000,1
+p2,6.229906,milc,2133000,1
+p2,6.259982,milc,2133000,1
+p2,6.319132,milc,2133000,1
+p2,5.495265,milc,1733000,1
+p2,5.286348,milc,1733000,1
+p2,5.287354,milc,1733000,1
+p2,4.396795,milc,1199000,1
+p2,4.326555,milc,1199000,1
+p2,4.378415,milc,1199000,1
+p2,7.208198,namd,2533000,0
+p2,7.269270,namd,2533000,0
+p2,7.284748,namd,2533000,0
+p2,6.488364,namd,2133000,0
+p2,6.118378,namd,2133000,0
+p2,6.122769,namd,2133000,0
+p2,5.406859,namd,1733000,0
+p2,5.402358,namd,1733000,0
+p2,5.416277,namd,1733000,0
+p2,4.458186,namd,1199000,0
+p2,4.498793,namd,1199000,0
+p2,4.335869,namd,1199000,0
+p2,7.121163,namd,2533000,1
+p2,7.242378,namd,2533000,1
+p2,7.216252,namd,2533000,1
+p3,6.846031,lbm,2533000,0
+p3,6.586362,lbm,2533000,0
+p3,6.504973,lbm,2533000,0
+p3,5.829135,lbm,2133000,0
+p3,5.834229,lbm,2133000,0
+p3,5.830293,lbm,2133000,0
+p3,5.205769,lbm,1733000,0
+p3,5.304743,lbm,1733000,0
+p3,5.278026,lbm,1733000,0
+p3,4.622610,lbm,1199000,0
+p3,4.631536,lbm,1199000,0
+p3,4.589321,lbm,1199000,0
+p3,6.479340,lbm,2533000,1
+p3,6.504289,lbm,2533000,1
+p3,6.481439,lbm,2533000,1
+p3,5.886963,lbm,2133000,1
+p3,5.871323,lbm,2133000,1
+p3,5.859972,lbm,2133000,1
+p3,5.266861,lbm,1733000,1
+p3,5.316369,lbm,1733000,1
+p3,5.274188,lbm,1733000,1
+p3,4.577934,lbm,1199000,1
+p3,4.578398,lbm,1199000,1
+p3,4.632554,lbm,1199000,1
+p3,6.729281,leslie3d,2533000,0
+p3,6.699151,leslie3d,2533000,0
+p3,6.732476,leslie3d,2533000,0
+p3,5.934617,leslie3d,2133000,0
+p3,5.925376,leslie3d,2133000,0
+p3,5.953149,leslie3d,2133000,0
+p3,5.381205,leslie3d,1733000,0
+p3,5.377505,leslie3d,1733000,0
+p3,5.402295,leslie3d,1733000,0
+p3,4.644293,leslie3d,1199000,0
+p3,4.651461,leslie3d,1199000,0
+p3,4.662961,leslie3d,1199000,0
+p3,6.691536,leslie3d,2533000,1
+p3,6.709159,leslie3d,2533000,1
+p3,6.720302,leslie3d,2533000,1
+p3,5.916079,leslie3d,2133000,1
+p3,5.948298,leslie3d,2133000,1
+p3,5.942937,leslie3d,2133000,1
+p3,5.406553,leslie3d,1733000,1
+p3,5.395558,leslie3d,1733000,1
+p3,5.395004,leslie3d,1733000,1
+p3,4.662023,leslie3d,1199000,1
+p3,4.657937,leslie3d,1199000,1
+p3,4.646373,leslie3d,1199000,1
+p3,6.243659,mcf,2533000,0
+p3,6.318424,mcf,2533000,0
+p3,6.337868,mcf,2533000,0
+p3,5.604023,mcf,2133000,0
+p3,5.623647,mcf,2133000,0
+p3,5.672235,mcf,2133000,0
+p3,5.218892,mcf,1733000,0
+p3,5.161288,mcf,1733000,0
+p3,5.216092,mcf,1733000,0
+p3,4.509054,mcf,1199000,0
+p3,4.593256,mcf,1199000,0
+p3,4.559865,mcf,1199000,0
+p3,6.360998,mcf,2533000,1
+p3,6.264448,mcf,2533000,1
+p3,6.254859,mcf,2533000,1
+p3,5.667510,mcf,2133000,1
+p3,5.662427,mcf,2133000,1
+p3,5.669977,mcf,2133000,1
+p3,5.193099,mcf,1733000,1
+p3,5.132641,mcf,1733000,1
+p3,5.164575,mcf,1733000,1
+p3,4.559984,mcf,1199000,1
+p3,4.571338,mcf,1199000,1
+p3,4.545032,mcf,1199000,1
+p3,6.128567,milc,2533000,0
+p3,6.220759,milc,2533000,0
+p3,6.305118,milc,2533000,0
+p3,5.589731,milc,2133000,0
+p3,5.526954,milc,2133000,0
+p3,5.687628,milc,2133000,0
+p3,5.097835,milc,1733000,0
+p3,5.201371,milc,1733000,0
+p3,5.180858,milc,1733000,0
+p3,4.474973,milc,1199000,0
+p3,4.477919,milc,1199000,0
+p3,4.527218,milc,1199000,0
+p3,6.323338,milc,2533000,1
+p3,6.168686,milc,2533000,1
+p3,6.309338,milc,2533000,1
+p3,5.599037,milc,2133000,1
+p3,5.618053,milc,2133000,1
+p3,5.560283,milc,2133000,1
+p3,5.194054,milc,1733000,1
+p3,5.046982,milc,1733000,1
+p3,5.146161,milc,1733000,1
+p3,4.472811,milc,1199000,1
+p3,4.531456,milc,1199000,1
+p3,4.548242,milc,1199000,1
+p3,6.304531,namd,2533000,0
+p3,6.233595,namd,2533000,0
+p3,6.347127,namd,2533000,0
+p3,5.533623,namd,2133000,0
+p3,6.172469,namd,2533000,1
+p3,5.601113,namd,2133000,1
+p3,5.620182,namd,2133000,1
+p3,5.681311,namd,2133000,1
+p3,5.075275,namd,1733000,1
+p3,5.126423,namd,1733000,1
+p3,5.180029,namd,1733000,1
+p3,4.540318,namd,1199000,1
+p3,4.544577,namd,1199000,1
+p3,4.542497,namd,1199000,1
+p3,5.465880,namd,2133000,0
+p3,7.143948,omnetpp,2533000,0
+p3,7.203950,omnetpp,2533000,0
+p3,7.183563,omnetpp,2533000,0
+p3,6.133266,omnetpp,2133000,0
+p3,6.095951,omnetpp,2133000,0
+p3,6.073243,omnetpp,2133000,0
+p3,5.406902,omnetpp,1733000,0
+p3,5.435553,omnetpp,1733000,0
+p3,5.405653,omnetpp,1733000,0
+p3,4.620280,omnetpp,1199000,0
+p3,5.459963,namd,2133000,0
+p3,4.667271,omnetpp,1199000,0
+p3,4.643006,omnetpp,1199000,0
+p3,7.207893,omnetpp,2533000,1
+p3,7.166765,omnetpp,2533000,1
+p3,7.173010,omnetpp,2533000,1
+p3,6.103929,omnetpp,2133000,1
+p3,6.039488,omnetpp,2133000,1
+p3,6.007789,omnetpp,2133000,1
+p3,5.436213,omnetpp,1733000,1
+p3,5.406599,omnetpp,1733000,1
+p3,5.140832,namd,1733000,0
+p3,5.420469,omnetpp,1733000,1
+p3,4.647248,omnetpp,1199000,1
+p3,4.370397,omnetpp,1199000,1
+p3,5.027692,namd,1733000,0
+p3,5.097252,namd,1733000,0
+p3,4.498618,namd,1199000,0
+p3,4.453510,namd,1199000,0
+p3,4.542324,namd,1199000,0
+p3,6.366356,namd,2533000,1
+p3,6.228617,namd,2533000,1
+p3,6.203433,namd,2533000,1
+p3,5.452638,namd,2133000,1
+p3,5.679080,namd,2133000,1
+p3,5.594955,namd,2133000,1
+p3,5.026483,namd,1733000,1
+p3,5.211624,namd,1733000,1
+p3,5.159122,namd,1733000,1
+p3,4.466784,namd,1199000,1
+p3,4.549561,namd,1199000,1
+p3,4.420337,namd,1199000,1
+p3,7.198448,omnetpp,2533000,0
+p3,7.257681,omnetpp,2533000,0
+p3,7.214877,omnetpp,2533000,0
+p3,6.047626,omnetpp,2133000,0
+p3,6.045281,omnetpp,2133000,0
+p3,6.086115,omnetpp,2133000,0
+p3,5.375472,omnetpp,1733000,0
+p3,5.390059,omnetpp,1733000,0
+p3,5.394248,omnetpp,1733000,0
+p3,4.644598,omnetpp,1199000,0
+p3,4.645860,omnetpp,1199000,0
+p3,4.640424,omnetpp,1199000,0
+p3,7.208424,omnetpp,2533000,1
+p3,7.228244,omnetpp,2533000,1
+p3,7.172076,omnetpp,2533000,1
+p3,6.077679,omnetpp,2133000,1
+p3,6.044584,omnetpp,2133000,1
+p3,6.069317,omnetpp,2133000,1
+p3,5.380832,omnetpp,1733000,1
+p3,5.423888,omnetpp,1733000,1
+p3,5.405350,omnetpp,1733000,1
+p3,4.664499,omnetpp,1199000,1
+p3,4.649093,omnetpp,1199000,1
+p3,4.638958,omnetpp,1199000,1
+p3,6.067127,povray,2533000,0
+p3,5.964999,povray,2533000,0
+p3,6.349749,povray,2533000,0
+p3,5.389937,povray,2133000,0
+p3,5.287601,povray,2133000,0
+p3,5.398114,povray,2133000,0
+p3,4.971480,povray,1733000,0
+p3,4.922794,povray,1733000,0
+p3,4.969451,povray,1733000,0
+p3,4.392223,povray,1199000,0
+p3,4.390498,povray,1199000,0
+p3,4.333411,povray,1199000,0
+p3,6.467665,povray,2533000,1
+p3,6.367531,povray,2533000,1
+p3,6.121508,povray,2533000,1
+p3,5.268150,povray,2133000,1
+p3,5.409796,povray,2133000,1
+p3,5.189648,povray,2133000,1
+p3,5.101194,povray,1733000,1
+p3,5.056613,povray,1733000,1
+p3,5.003178,povray,1733000,1
+p3,4.408261,povray,1199000,1
+p3,4.390336,povray,1199000,1
+p3,4.338633,povray,1199000,1
+p3,6.946962,sjeng,2533000,0
+p3,6.935496,sjeng,2533000,0
+p3,6.945642,sjeng,2533000,0
+p3,6.017190,sjeng,2133000,0
+p3,6.002830,sjeng,2133000,0
+p3,6.018123,sjeng,2133000,0
+p3,5.417273,sjeng,1733000,0
+p3,5.424851,sjeng,1733000,0
+p3,5.420164,sjeng,1733000,0
+p3,4.668009,sjeng,1199000,0
+p3,4.671206,sjeng,1199000,0
+p3,4.661369,sjeng,1199000,0
+p3,6.927903,sjeng,2533000,1
+p3,6.928289,sjeng,2533000,1
+p3,6.925092,sjeng,2533000,1
+p3,5.983301,sjeng,2133000,1
+p3,6.006891,sjeng,2133000,1
+p3,6.010865,sjeng,2133000,1
+p3,5.432814,sjeng,1733000,1
+p3,5.418997,sjeng,1733000,1
+p3,5.425955,sjeng,1733000,1
+p3,4.665561,sjeng,1199000,1
+p3,4.667258,sjeng,1199000,1
+p3,4.669184,sjeng,1199000,1
+p3,5.808738,soplex,2533000,0
+p3,5.852924,soplex,2533000,0
+p3,5.726322,soplex,2533000,0
+p3,5.116441,soplex,2133000,0
+p3,5.046185,soplex,2133000,0
+p3,4.991563,soplex,2133000,0
+p3,4.784573,soplex,1733000,0
+p3,4.664874,soplex,1733000,0
+p3,4.802122,soplex,1733000,0
+p3,4.240447,soplex,1199000,0
+p3,4.334830,soplex,1199000,0
+p3,4.274788,soplex,1199000,0
+p3,5.496997,soplex,2533000,1
+p3,5.879626,soplex,2533000,1
+p3,5.755689,soplex,2533000,1
+p3,5.195222,soplex,2133000,1
+p3,5.127049,soplex,2133000,1
+p3,5.003612,soplex,2133000,1
+p3,4.508997,soplex,1733000,1
+p3,4.806416,soplex,1733000,1
+p3,4.754676,soplex,1733000,1
+p3,4.274689,soplex,1199000,1
+p3,4.188769,soplex,1199000,1
+p3,4.152505,soplex,1199000,1
+p3,6.259584,sphinx3,2533000,0
+p3,6.163977,sphinx3,2533000,0
+p3,5.980166,sphinx3,2533000,0
+p3,5.506215,sphinx3,2133000,0
+p3,5.336078,sphinx3,2133000,0
+p3,5.254709,sphinx3,2133000,0
+p3,4.919064,sphinx3,1733000,0
+p3,5.062400,sphinx3,1733000,0
+p3,5.124573,sphinx3,1733000,0
+p3,4.446398,sphinx3,1199000,0
+p3,4.398092,sphinx3,1199000,0
+p3,4.464450,sphinx3,1199000,0
+p3,6.156734,sphinx3,2533000,1
+p3,6.257369,sphinx3,2533000,1
+p3,6.098140,sphinx3,2533000,1
+p3,5.448571,sphinx3,2133000,1
+p3,5.570839,sphinx3,2133000,1
+p3,5.538589,sphinx3,2133000,1
+p3,5.025364,sphinx3,1733000,1
+p3,5.157273,sphinx3,1733000,1
+p3,5.106067,sphinx3,1733000,1
+p3,4.404404,sphinx3,1199000,1
+p3,4.468802,sphinx3,1199000,1
+p3,4.411756,sphinx3,1199000,1
+p3,6.496751,zeusmp,2533000,0
+p3,6.453240,zeusmp,2533000,0
+p3,6.515564,zeusmp,2533000,0
+p3,5.760398,zeusmp,2133000,0
+p3,5.824207,zeusmp,2133000,0
+p3,5.752453,zeusmp,2133000,0
+p3,5.269152,zeusmp,1733000,0
+p3,5.227863,zeusmp,1733000,0
+p3,5.247018,zeusmp,1733000,0
+p3,4.591507,zeusmp,1199000,0
+p3,4.612616,zeusmp,1199000,0
+p3,4.624739,zeusmp,1199000,0
+p3,6.516767,zeusmp,2533000,1
+p3,6.522862,zeusmp,2533000,1
+p3,6.538490,zeusmp,2533000,1
+p3,5.714971,zeusmp,2133000,1
+p3,5.791563,zeusmp,2133000,1
+p3,5.766699,zeusmp,2133000,1
+p3,5.303745,zeusmp,1733000,1
+p3,5.312815,zeusmp,1733000,1
+p3,5.316774,zeusmp,1733000,1
+p3,4.607670,zeusmp,1199000,1
+p3,4.639174,zeusmp,1199000,1
+p3,4.605297,zeusmp,1199000,1
+p3,6.816574,bzip2,2533000,0
+p3,6.763406,bzip2,2533000,0
+p3,6.822030,bzip2,2533000,0
+p3,5.944206,bzip2,2133000,0
+p3,5.916967,bzip2,2133000,0
+p3,5.938198,bzip2,2133000,0
+p3,5.277554,bzip2,1733000,0
+p3,5.229043,bzip2,1733000,0
+p3,5.255152,bzip2,1733000,0
+p3,4.566472,bzip2,1199000,0
+p3,4.589378,bzip2,1199000,0
+p3,4.632907,bzip2,1199000,0
+p3,6.864820,bzip2,2533000,1
+p3,6.871118,bzip2,2533000,1
+p3,6.860859,bzip2,2533000,1
+p3,5.908434,bzip2,2133000,1
+p3,5.918043,bzip2,2133000,1
+p3,5.977872,bzip2,2133000,1
+p3,5.341469,bzip2,1733000,1
+p3,5.355015,bzip2,1733000,1
+p3,5.355271,bzip2,1733000,1
+p3,4.616337,bzip2,1199000,1
+p3,4.650236,bzip2,1199000,1
+p3,4.622974,bzip2,1199000,1
+p3,6.451101,cactusADM,2533000,0
+p3,6.394685,cactusADM,2533000,0
+p3,6.407973,cactusADM,2533000,0
+p3,5.844464,cactusADM,2133000,0
+p3,5.796943,cactusADM,2133000,0
+p3,5.764974,cactusADM,2133000,0
+p3,5.100172,cactusADM,1733000,0
+p3,5.194723,cactusADM,1733000,0
+p3,5.150834,cactusADM,1733000,0
+p3,4.453965,cactusADM,1199000,0
+p3,4.444155,cactusADM,1199000,0
+p3,4.467874,cactusADM,1199000,0
+p3,6.512280,cactusADM,2533000,1
+p3,6.408334,cactusADM,2533000,1
+p3,6.422821,cactusADM,2533000,1
+p3,5.749981,cactusADM,2133000,1
+p3,5.706760,cactusADM,2133000,1
+p3,5.742180,cactusADM,2133000,1
+p3,5.287988,cactusADM,1733000,1
+p3,5.280809,cactusADM,1733000,1
+p3,5.292213,cactusADM,1733000,1
+p3,4.595286,cactusADM,1199000,1
+p3,4.574868,cactusADM,1199000,1
+p3,4.573757,cactusADM,1199000,1
+p3,0.828143,cpuload_all_0_4096,2533000,0
+p3,0.795022,cpuload_all_0_4096,2533000,0
+p3,0.920105,cpuload_all_0_4096,2533000,0
+p3,0.864918,cpuload_all_0_4096,2133000,0
+p3,0.871607,cpuload_all_0_4096,2133000,0
+p3,0.821350,cpuload_all_0_4096,2133000,0
+p3,0.897045,cpuload_all_0_4096,1733000,0
+p3,0.996341,cpuload_all_0_4096,1733000,0
+p3,0.898420,cpuload_all_0_4096,1733000,0
+p3,0.882890,cpuload_all_0_4096,1199000,0
+p3,0.773503,cpuload_all_0_4096,1199000,0
+p3,0.863304,cpuload_all_0_4096,1199000,0
+p3,0.887920,cpuload_all_0_4096,2533000,1
+p3,1.002733,cpuload_all_0_4096,2533000,1
+p3,0.934064,cpuload_all_0_4096,2533000,1
+p3,0.884411,cpuload_all_0_4096,2133000,1
+p3,0.900087,cpuload_all_0_4096,2133000,1
+p3,0.996731,cpuload_all_0_4096,2133000,1
+p3,0.933675,cpuload_all_0_4096,1733000,1
+p3,0.893362,cpuload_all_0_4096,1733000,1
+p3,0.932443,cpuload_all_0_4096,1733000,1
+p3,0.794651,cpuload_all_0_4096,1199000,1
+p3,0.811233,cpuload_all_0_4096,1199000,1
+p3,0.788678,cpuload_all_0_4096,1199000,1
+p3,2.488060,cpuload_all_25_4096,2533000,0
+p3,2.479985,cpuload_all_25_4096,2533000,0
+p3,2.439499,cpuload_all_25_4096,2533000,0
+p3,2.211725,cpuload_all_25_4096,2133000,0
+p3,2.268877,cpuload_all_25_4096,2133000,0
+p3,2.264246,cpuload_all_25_4096,2133000,0
+p3,2.096478,cpuload_all_25_4096,1733000,0
+p3,2.124826,cpuload_all_25_4096,1733000,0
+p3,2.076953,cpuload_all_25_4096,1733000,0
+p3,1.998452,cpuload_all_25_4096,1199000,0
+p3,1.951064,cpuload_all_25_4096,1199000,0
+p3,1.938937,cpuload_all_25_4096,1199000,0
+p3,2.441308,cpuload_all_25_4096,2533000,1
+p3,2.437020,cpuload_all_25_4096,2533000,1
+p3,2.447227,cpuload_all_25_4096,2533000,1
+p3,2.278157,cpuload_all_25_4096,2133000,1
+p3,2.242438,cpuload_all_25_4096,2133000,1
+p3,2.269420,cpuload_all_25_4096,2133000,1
+p3,2.095815,cpuload_all_25_4096,1733000,1
+p3,2.087772,cpuload_all_25_4096,1733000,1
+p3,2.086998,cpuload_all_25_4096,1733000,1
+p3,1.961929,cpuload_all_25_4096,1199000,1
+p3,1.952572,cpuload_all_25_4096,1199000,1
+p3,1.945519,cpuload_all_25_4096,1199000,1
+p3,6.470385,cpuload_all_50_4096,2533000,0
+p3,6.509295,cpuload_all_50_4096,2533000,0
+p3,6.447373,cpuload_all_50_4096,2533000,0
+p3,5.761534,cpuload_all_50_4096,2133000,0
+p3,5.811560,cpuload_all_50_4096,2133000,0
+p3,5.747802,cpuload_all_50_4096,2133000,0
+p3,5.101489,cpuload_all_50_4096,1733000,0
+p3,5.124413,cpuload_all_50_4096,1733000,0
+p3,5.102189,cpuload_all_50_4096,1733000,0
+p3,4.446866,cpuload_all_50_4096,1199000,0
+p3,4.489788,cpuload_all_50_4096,1199000,0
+p3,4.574763,cpuload_all_50_4096,1199000,0
+p3,6.467593,cpuload_all_50_4096,2533000,1
+p3,6.437556,cpuload_all_50_4096,2533000,1
+p3,6.455579,cpuload_all_50_4096,2533000,1
+p3,5.733567,cpuload_all_50_4096,2133000,1
+p3,5.827755,cpuload_all_50_4096,2133000,1
+p3,5.773749,cpuload_all_50_4096,2133000,1
+p3,5.236833,cpuload_all_50_4096,1733000,1
+p3,5.247825,cpuload_all_50_4096,1733000,1
+p3,5.214530,cpuload_all_50_4096,1733000,1
+p3,4.542251,cpuload_all_50_4096,1199000,1
+p3,4.506481,cpuload_all_50_4096,1199000,1
+p3,4.532812,cpuload_all_50_4096,1199000,1
+p3,6.446034,cpuload_all_75_4096,2533000,0
+p3,6.453610,cpuload_all_75_4096,2533000,0
+p3,6.443960,cpuload_all_75_4096,2533000,0
+p3,5.820556,cpuload_all_75_4096,2133000,0
+p3,5.752589,cpuload_all_75_4096,2133000,0
+p3,5.827601,cpuload_all_75_4096,2133000,0
+p3,5.121474,cpuload_all_75_4096,1733000,0
+p3,5.181154,cpuload_all_75_4096,1733000,0
+p3,5.129902,cpuload_all_75_4096,1733000,0
+p3,4.483750,cpuload_all_75_4096,1199000,0
+p3,4.530829,cpuload_all_75_4096,1199000,0
+p3,4.496746,cpuload_all_75_4096,1199000,0
+p3,6.544034,cpuload_all_75_4096,2533000,1
+p3,6.458474,cpuload_all_75_4096,2533000,1
+p3,6.462237,cpuload_all_75_4096,2533000,1
+p3,5.756911,cpuload_all_75_4096,2133000,1
+p3,5.752585,cpuload_all_75_4096,2133000,1
+p3,5.825655,cpuload_all_75_4096,2133000,1
+p3,5.253201,cpuload_all_75_4096,1733000,1
+p3,5.325408,cpuload_all_75_4096,1733000,1
+p3,5.259558,cpuload_all_75_4096,1733000,1
+p3,4.604788,cpuload_all_75_4096,1199000,1
+p3,4.543839,cpuload_all_75_4096,1199000,1
+p3,4.532831,cpuload_all_75_4096,1199000,1
+p3,6.481305,cpuload_all_100_4096,2533000,0
+p3,6.548460,cpuload_all_100_4096,2533000,0
+p3,6.477168,cpuload_all_100_4096,2533000,0
+p3,5.773490,cpuload_all_100_4096,2133000,0
+p3,5.823834,cpuload_all_100_4096,2133000,0
+p3,5.855935,cpuload_all_100_4096,2133000,0
+p3,5.144269,cpuload_all_100_4096,1733000,0
+p3,5.131518,cpuload_all_100_4096,1733000,0
+p3,5.198863,cpuload_all_100_4096,1733000,0
+p3,4.451441,cpuload_all_100_4096,1199000,0
+p3,4.474254,cpuload_all_100_4096,1199000,0
+p3,4.442865,cpuload_all_100_4096,1199000,0
+p3,6.484829,cpuload_all_100_4096,2533000,1
+p3,6.454172,cpuload_all_100_4096,2533000,1
+p3,6.482774,cpuload_all_100_4096,2533000,1
+p3,5.848065,cpuload_all_100_4096,2133000,1
+p3,5.771965,cpuload_all_100_4096,2133000,1
+p3,5.760466,cpuload_all_100_4096,2133000,1
+p3,5.268857,cpuload_all_100_4096,1733000,1
+p3,5.257411,cpuload_all_100_4096,1733000,1
+p3,5.261262,cpuload_all_100_4096,1733000,1
+p3,4.533687,cpuload_all_100_4096,1199000,1
+p3,4.549334,cpuload_all_100_4096,1199000,1
+p3,4.537405,cpuload_all_100_4096,1199000,1
+p3,7.564976,gamess,2533000,0
+p3,7.549053,gamess,2533000,0
+p3,7.568707,gamess,2533000,0
+p3,6.292820,gamess,2133000,0
+p3,6.264456,gamess,2133000,0
+p3,6.300992,gamess,2133000,0
+p3,5.390908,gamess,1733000,0
+p3,5.383244,gamess,1733000,0
+p3,5.387345,gamess,1733000,0
+p3,4.560637,gamess,1199000,0
+p3,4.570057,gamess,1199000,0
+p3,4.566949,gamess,1199000,0
+p3,7.577739,gamess,2533000,1
+p3,7.586252,gamess,2533000,1
+p3,7.619107,gamess,2533000,1
+p3,6.290228,gamess,2133000,1
+p3,6.328875,gamess,2133000,1
+p3,6.296175,gamess,2133000,1
+p3,5.375070,gamess,1733000,1
+p3,5.379787,gamess,1733000,1
+p3,5.395251,gamess,1733000,1
+p3,4.697298,gamess,1199000,1
+p3,4.702834,gamess,1199000,1
+p3,4.697691,gamess,1199000,1
+p3,6.783044,gcc,2533000,0
+p3,6.784952,gcc,2533000,0
+p3,6.779680,gcc,2533000,0
+p3,6.013434,gcc,2133000,0
+p3,6.018536,gcc,2133000,0
+p3,6.007304,gcc,2133000,0
+p3,5.333561,gcc,1733000,0
+p3,5.333277,gcc,1733000,0
+p3,5.323759,gcc,1733000,0
+p3,4.575368,gcc,1199000,0
+p3,4.573780,gcc,1199000,0
+p3,4.578833,gcc,1199000,0
+p3,6.807542,gcc,2533000,1
+p3,6.790947,gcc,2533000,1
+p3,6.786544,gcc,2533000,1
+p3,6.016921,gcc,2133000,1
+p3,6.013901,gcc,2133000,1
+p3,6.010630,gcc,2133000,1
+p3,5.421387,gcc,1733000,1
+p3,5.403307,gcc,1733000,1
+p3,5.396317,gcc,1733000,1
+p3,4.694659,gcc,1199000,1
+p3,4.696241,gcc,1199000,1
+p3,4.697709,gcc,1199000,1
+p3,6.955033,gobmk,2533000,0
+p3,6.955938,gobmk,2533000,0
+p3,6.948305,gobmk,2533000,0
+p3,5.995178,gobmk,2133000,0
+p3,6.045125,gobmk,2133000,0
+p3,6.029523,gobmk,2133000,0
+p3,5.318719,gobmk,1733000,0
+p3,5.321992,gobmk,1733000,0
+p3,5.310989,gobmk,1733000,0
+p3,4.679169,gobmk,1199000,0
+p3,4.672240,gobmk,1199000,0
+p3,4.677885,gobmk,1199000,0
+p3,6.962729,gobmk,2533000,1
+p3,6.917930,gobmk,2533000,1
+p3,6.950089,gobmk,2533000,1
+p3,6.013382,gobmk,2133000,1
+p3,5.980111,gobmk,2133000,1
+p3,6.020672,gobmk,2133000,1
+p3,5.439904,gobmk,1733000,1
+p3,5.414864,gobmk,1733000,1
+p3,5.406547,gobmk,1733000,1
+p3,4.663252,gobmk,1199000,1
+p3,4.653554,gobmk,1199000,1
+p3,4.652024,gobmk,1199000,1
+p3,6.689641,gromacs,2533000,0
+p3,6.686603,gromacs,2533000,0
+p3,6.710131,gromacs,2533000,0
+p3,5.936462,gromacs,2133000,0
+p3,5.952464,gromacs,2133000,0
+p3,5.941089,gromacs,2133000,0
+p3,5.393334,gromacs,1733000,0
+p3,5.379326,gromacs,1733000,0
+p3,5.381049,gromacs,1733000,0
+p3,4.664079,gromacs,1199000,0
+p3,4.657465,gromacs,1199000,0
+p3,4.666879,gromacs,1199000,0
+p3,6.666875,gromacs,2533000,1
+p3,6.695921,gromacs,2533000,1
+p3,6.714920,gromacs,2533000,1
+p3,5.905492,gromacs,2133000,1
+p3,5.934500,gromacs,2133000,1
+p3,5.937542,gromacs,2133000,1
+p3,5.395299,gromacs,1733000,1
+p3,5.394272,gromacs,1733000,1
+p3,5.379123,gromacs,1733000,1
+p3,4.662072,gromacs,1199000,1
+p3,4.647128,gromacs,1199000,1
+p3,4.653932,gromacs,1199000,1
+p3,6.996885,h264ref,2533000,0
+p3,7.009216,h264ref,2533000,0
+p3,6.970078,h264ref,2533000,0
+p3,5.997734,h264ref,2133000,0
+p3,6.007426,h264ref,2133000,0
+p3,6.015771,h264ref,2133000,0
+p3,5.413799,h264ref,1733000,0
+p3,5.391237,h264ref,1733000,0
+p3,5.421458,h264ref,1733000,0
+p3,4.647170,h264ref,1199000,0
+p3,4.660657,h264ref,1199000,0
+p3,4.658410,h264ref,1199000,0
+p3,6.983057,h264ref,2533000,1
+p3,7.073755,h264ref,2533000,1
+p3,7.025055,h264ref,2533000,1
+p3,5.979382,h264ref,2133000,1
+p3,6.033478,h264ref,2133000,1
+p3,5.991676,h264ref,2133000,1
+p3,5.420156,h264ref,1733000,1
+p3,5.382527,h264ref,1733000,1
+p3,5.415738,h264ref,1733000,1
+p3,4.643042,h264ref,1199000,1
+p3,4.636394,h264ref,1199000,1
+p3,4.637739,h264ref,1199000,1
+p3,7.270879,hmmer,2533000,0
+p3,7.173579,hmmer,2533000,0
+p3,7.319839,hmmer,2533000,0
+p3,6.098122,hmmer,2133000,0
+p3,6.095208,hmmer,2133000,0
+p3,6.084661,hmmer,2133000,0
+p3,5.401685,hmmer,1733000,0
+p3,5.404937,hmmer,1733000,0
+p3,5.354623,hmmer,1733000,0
+p3,4.634466,hmmer,1199000,0
+p3,4.638487,hmmer,1199000,0
+p3,4.627544,hmmer,1199000,0
+p3,7.359766,hmmer,2533000,1
+p3,7.336113,hmmer,2533000,1
+p3,7.388733,hmmer,2533000,1
+p3,6.081827,hmmer,2133000,1
+p3,6.081634,hmmer,2133000,1
+p3,6.089843,hmmer,2133000,1
+p3,5.372932,hmmer,1733000,1
+p3,5.379470,hmmer,1733000,1
+p3,5.412259,hmmer,1733000,1
+p3,4.617326,hmmer,1199000,1
+p3,4.625890,hmmer,1199000,1
+p3,4.620252,hmmer,1199000,1
+p3,8.157029,bzip2,2533000,0
+p3,8.081994,bzip2,2533000,0
+p3,7.728690,bzip2,2533000,0
+p3,5.898830,bzip2,2133000,0
+p3,5.901150,bzip2,2133000,0
+p3,5.863446,bzip2,2133000,0
+p3,5.215891,bzip2,1733000,0
+p3,5.236388,bzip2,1733000,0
+p3,5.227370,bzip2,1733000,0
+p3,4.587547,bzip2,1199000,0
+p3,4.587128,bzip2,1199000,0
+p3,4.590464,bzip2,1199000,0
+p3,6.758058,bzip2,2533000,1
+p3,6.711403,bzip2,2533000,1
+p3,6.755043,bzip2,2533000,1
+p3,5.877256,bzip2,2133000,1
+p3,5.811564,bzip2,2133000,1
+p3,5.934076,bzip2,2133000,1
+p3,5.273533,bzip2,1733000,1
+p3,5.315134,bzip2,1733000,1
+p3,5.338369,bzip2,1733000,1
+p3,4.594534,bzip2,1199000,1
+p3,4.605074,bzip2,1199000,1
+p3,4.618281,bzip2,1199000,1
+p3,6.361836,cactusADM,2533000,0
+p3,6.354304,cactusADM,2533000,0
+p3,6.343426,cactusADM,2533000,0
+p3,5.578564,cactusADM,2133000,0
+p3,5.700375,cactusADM,2133000,0
+p3,5.690366,cactusADM,2133000,0
+p3,5.206165,cactusADM,1733000,0
+p3,5.231965,cactusADM,1733000,0
+p3,5.150728,cactusADM,1733000,0
+p3,4.539980,cactusADM,1199000,0
+p3,4.540420,cactusADM,1199000,0
+p3,4.560723,cactusADM,1199000,0
+p3,6.302842,cactusADM,2533000,1
+p3,6.513739,cactusADM,2533000,1
+p3,6.499139,cactusADM,2533000,1
+p3,5.661833,cactusADM,2133000,1
+p3,5.710346,cactusADM,2133000,1
+p3,5.669626,cactusADM,2133000,1
+p3,5.171280,cactusADM,1733000,1
+p3,5.129847,cactusADM,1733000,1
+p3,5.156624,cactusADM,1733000,1
+p3,4.535676,cactusADM,1199000,1
+p3,4.543909,cactusADM,1199000,1
+p3,4.569462,cactusADM,1199000,1
+p3,0.829760,cpuload_all_0_4096,2533000,0
+p3,0.896865,cpuload_all_0_4096,2533000,0
+p3,0.849449,cpuload_all_0_4096,2533000,0
+p3,0.906978,cpuload_all_0_4096,2133000,0
+p3,0.825517,cpuload_all_0_4096,2133000,0
+p3,0.756354,cpuload_all_0_4096,2133000,0
+p3,1.018834,cpuload_all_0_4096,1733000,0
+p3,0.953354,cpuload_all_0_4096,1733000,0
+p3,1.020151,cpuload_all_0_4096,1733000,0
+p3,0.791841,cpuload_all_0_4096,1199000,0
+p3,0.755343,cpuload_all_0_4096,1199000,0
+p3,0.750423,cpuload_all_0_4096,1199000,0
+p3,0.812891,cpuload_all_0_4096,2533000,1
+p3,0.838071,cpuload_all_0_4096,2533000,1
+p3,0.934356,cpuload_all_0_4096,2533000,1
+p3,0.933525,cpuload_all_0_4096,2133000,1
+p3,1.057791,cpuload_all_0_4096,2133000,1
+p3,1.011773,cpuload_all_0_4096,2133000,1
+p3,1.253325,cpuload_all_0_4096,1733000,1
+p3,0.909858,cpuload_all_0_4096,1733000,1
+p3,1.082258,cpuload_all_0_4096,1733000,1
+p3,0.925438,cpuload_all_0_4096,1199000,1
+p3,0.900565,cpuload_all_0_4096,1199000,1
+p3,0.878825,cpuload_all_0_4096,1199000,1
+p3,2.414154,cpuload_all_25_4096,2533000,0
+p3,2.406882,cpuload_all_25_4096,2533000,0
+p3,2.461060,cpuload_all_25_4096,2533000,0
+p3,2.189735,cpuload_all_25_4096,2133000,0
+p3,2.211509,cpuload_all_25_4096,2133000,0
+p3,2.167483,cpuload_all_25_4096,2133000,0
+p3,2.091804,cpuload_all_25_4096,1733000,0
+p3,2.065956,cpuload_all_25_4096,1733000,0
+p3,2.077409,cpuload_all_25_4096,1733000,0
+p3,1.929455,cpuload_all_25_4096,1199000,0
+p3,1.941705,cpuload_all_25_4096,1199000,0
+p3,1.896772,cpuload_all_25_4096,1199000,0
+p3,2.406313,cpuload_all_25_4096,2533000,1
+p3,2.395511,cpuload_all_25_4096,2533000,1
+p3,2.415002,cpuload_all_25_4096,2533000,1
+p3,2.228580,cpuload_all_25_4096,2133000,1
+p3,2.261568,cpuload_all_25_4096,2133000,1
+p3,2.229046,cpuload_all_25_4096,2133000,1
+p3,2.046685,cpuload_all_25_4096,1733000,1
+p3,2.036034,cpuload_all_25_4096,1733000,1
+p3,2.067646,cpuload_all_25_4096,1733000,1
+p3,1.955181,cpuload_all_25_4096,1199000,1
+p3,1.940523,cpuload_all_25_4096,1199000,1
+p3,1.931569,cpuload_all_25_4096,1199000,1
+p3,6.415764,cpuload_all_50_4096,2533000,0
+p3,6.402750,cpuload_all_50_4096,2533000,0
+p3,5.571421,cpuload_all_50_4096,2533000,0
+p3,5.771132,cpuload_all_50_4096,2133000,0
+p3,5.710776,cpuload_all_50_4096,2133000,0
+p3,5.700658,cpuload_all_50_4096,2133000,0
+p3,5.160303,cpuload_all_50_4096,1733000,0
+p3,5.084699,cpuload_all_50_4096,1733000,0
+p3,5.084549,cpuload_all_50_4096,1733000,0
+p3,4.491018,cpuload_all_50_4096,1199000,0
+p3,4.513494,cpuload_all_50_4096,1199000,0
+p3,4.515721,cpuload_all_50_4096,1199000,0
+p3,6.418901,cpuload_all_50_4096,2533000,1
+p3,6.493806,cpuload_all_50_4096,2533000,1
+p3,6.406375,cpuload_all_50_4096,2533000,1
+p3,5.703362,cpuload_all_50_4096,2133000,1
+p3,5.703969,cpuload_all_50_4096,2133000,1
+p3,5.716061,cpuload_all_50_4096,2133000,1
+p3,5.280254,cpuload_all_50_4096,1733000,1
+p3,5.207359,cpuload_all_50_4096,1733000,1
+p3,5.193683,cpuload_all_50_4096,1733000,1
+p3,4.505799,cpuload_all_50_4096,1199000,1
+p3,4.522597,cpuload_all_50_4096,1199000,1
+p3,4.503144,cpuload_all_50_4096,1199000,1
+p3,6.484234,cpuload_all_75_4096,2533000,0
+p3,6.420733,cpuload_all_75_4096,2533000,0
+p3,6.400447,cpuload_all_75_4096,2533000,0
+p3,5.791391,cpuload_all_75_4096,2133000,0
+p3,5.715978,cpuload_all_75_4096,2133000,0
+p3,5.726699,cpuload_all_75_4096,2133000,0
+p3,5.097877,cpuload_all_75_4096,1733000,0
+p3,5.102737,cpuload_all_75_4096,1733000,0
+p3,5.079773,cpuload_all_75_4096,1733000,0
+p3,4.425151,cpuload_all_75_4096,1199000,0
+p3,4.572707,cpuload_all_75_4096,1199000,0
+p3,4.508813,cpuload_all_75_4096,1199000,0
+p3,6.422891,cpuload_all_75_4096,2533000,1
+p3,6.422682,cpuload_all_75_4096,2533000,1
+p3,6.427175,cpuload_all_75_4096,2533000,1
+p3,5.797998,cpuload_all_75_4096,2133000,1
+p3,5.730017,cpuload_all_75_4096,2133000,1
+p3,5.737068,cpuload_all_75_4096,2133000,1
+p3,5.211742,cpuload_all_75_4096,1733000,1
+p3,5.219696,cpuload_all_75_4096,1733000,1
+p3,5.222384,cpuload_all_75_4096,1733000,1
+p3,4.513504,cpuload_all_75_4096,1199000,1
+p3,4.509616,cpuload_all_75_4096,1199000,1
+p3,4.574363,cpuload_all_75_4096,1199000,1
+p3,6.445603,cpuload_all_100_4096,2533000,0
+p3,6.435468,cpuload_all_100_4096,2533000,0
+p3,6.433921,cpuload_all_100_4096,2533000,0
+p3,5.744303,cpuload_all_100_4096,2133000,0
+p3,5.756589,cpuload_all_100_4096,2133000,0
+p3,5.736553,cpuload_all_100_4096,2133000,0
+p3,5.169479,cpuload_all_100_4096,1733000,0
+p3,5.105588,cpuload_all_100_4096,1733000,0
+p3,5.111594,cpuload_all_100_4096,1733000,0
+p3,4.510746,cpuload_all_100_4096,1199000,0
+p3,4.519699,cpuload_all_100_4096,1199000,0
+p3,4.519367,cpuload_all_100_4096,1199000,0
+p3,6.541732,cpuload_all_100_4096,2533000,1
+p3,6.433743,cpuload_all_100_4096,2533000,1
+p3,6.413937,cpuload_all_100_4096,2533000,1
+p3,5.759937,cpuload_all_100_4096,2133000,1
+p3,5.810111,cpuload_all_100_4096,2133000,1
+p3,5.745631,cpuload_all_100_4096,2133000,1
+p3,5.227261,cpuload_all_100_4096,1733000,1
+p3,5.227783,cpuload_all_100_4096,1733000,1
+p3,5.299212,cpuload_all_100_4096,1733000,1
+p3,4.517759,cpuload_all_100_4096,1199000,1
+p3,4.516963,cpuload_all_100_4096,1199000,1
+p3,4.519213,cpuload_all_100_4096,1199000,1
+p3,7.549777,gamess,2533000,0
+p3,7.543999,gamess,2533000,0
+p3,7.549306,gamess,2533000,0
+p3,6.265581,gamess,2133000,0
+p3,6.301265,gamess,2133000,0
+p3,6.297592,gamess,2133000,0
+p3,5.372867,gamess,1733000,0
+p3,5.384034,gamess,1733000,0
+p3,5.367044,gamess,1733000,0
+p3,4.571291,gamess,1199000,0
+p3,4.588577,gamess,1199000,0
+p3,4.582185,gamess,1199000,0
+p3,7.603359,gamess,2533000,1
+p3,7.547615,gamess,2533000,1
+p3,7.608239,gamess,2533000,1
+p3,6.276040,gamess,2133000,1
+p3,6.282801,gamess,2133000,1
+p3,6.298369,gamess,2133000,1
+p3,5.494531,gamess,1733000,1
+p3,5.506283,gamess,1733000,1
+p3,5.508155,gamess,1733000,1
+p3,4.678758,gamess,1199000,1
+p3,4.694351,gamess,1199000,1
+p3,4.695355,gamess,1199000,1
+p3,6.775143,gcc,2533000,0
+p3,6.773323,gcc,2533000,0
+p3,6.781372,gcc,2533000,0
+p3,6.013433,gcc,2133000,0
+p3,6.006996,gcc,2133000,0
+p3,6.013897,gcc,2133000,0
+p3,5.321410,gcc,1733000,0
+p3,5.321925,gcc,1733000,0
+p3,5.320732,gcc,1733000,0
+p3,4.572893,gcc,1199000,0
+p3,4.615420,gcc,1199000,0
+p3,4.612478,gcc,1199000,0
+p3,6.783746,gcc,2533000,1
+p3,6.791551,gcc,2533000,1
+p3,6.787764,gcc,2533000,1
+p3,6.003947,gcc,2133000,1
+p3,6.006270,gcc,2133000,1
+p3,6.020452,gcc,2133000,1
+p3,5.444372,gcc,1733000,1
+p3,5.457858,gcc,1733000,1
+p3,5.456859,gcc,1733000,1
+p3,4.699829,gcc,1199000,1
+p3,4.705085,gcc,1199000,1
+p3,4.695564,gcc,1199000,1
+p3,6.997146,gobmk,2533000,0
+p3,6.918758,gobmk,2533000,0
+p3,6.973121,gobmk,2533000,0
+p3,6.041325,gobmk,2133000,0
+p3,6.067286,gobmk,2133000,0
+p3,6.059700,gobmk,2133000,0
+p3,5.304259,gobmk,1733000,0
+p3,5.319062,gobmk,1733000,0
+p3,5.303129,gobmk,1733000,0
+p3,4.550705,gobmk,1199000,0
+p3,4.565456,gobmk,1199000,0
+p3,4.546416,gobmk,1199000,0
+p3,7.001124,gobmk,2533000,1
+p3,7.003851,gobmk,2533000,1
+p3,6.968339,gobmk,2533000,1
+p3,6.029929,gobmk,2133000,1
+p3,6.040239,gobmk,2133000,1
+p3,6.021029,gobmk,2133000,1
+p3,5.447167,gobmk,1733000,1
+p3,5.416371,gobmk,1733000,1
+p3,5.428608,gobmk,1733000,1
+p3,4.677215,gobmk,1199000,1
+p3,4.685770,gobmk,1199000,1
+p3,4.676323,gobmk,1199000,1
+p3,6.764765,gromacs,2533000,0
+p3,6.662096,gromacs,2533000,0
+p3,6.672348,gromacs,2533000,0
+p3,6.687032,gromacs,2533000,0
+p3,5.907962,gromacs,2133000,0
+p3,5.913009,gromacs,2133000,0
+p3,5.926128,gromacs,2133000,0
+p3,5.374141,gromacs,1733000,0
+p3,5.388015,gromacs,1733000,0
+p3,5.386885,gromacs,1733000,0
+p3,4.656412,gromacs,1199000,0
+p3,4.658785,gromacs,1199000,0
+p3,4.662419,gromacs,1199000,0
+p3,6.676376,gromacs,2533000,1
+p3,6.696795,gromacs,2533000,1
+p3,6.714873,gromacs,2533000,1
+p3,5.940134,gromacs,2133000,1
+p3,5.925728,gromacs,2133000,1
+p3,5.925774,gromacs,2133000,1
+p3,5.399143,gromacs,1733000,1
+p3,5.393865,gromacs,1733000,1
+p3,5.388596,gromacs,1733000,1
+p3,4.657826,gromacs,1199000,1
+p3,4.654321,gromacs,1199000,1
+p3,4.654346,gromacs,1199000,1
+p3,7.017528,h264ref,2533000,0
+p3,7.017553,h264ref,2533000,0
+p3,7.032129,h264ref,2533000,0
+p3,6.043260,h264ref,2133000,0
+p3,6.020271,h264ref,2133000,0
+p3,6.042408,h264ref,2133000,0
+p3,5.423598,h264ref,1733000,0
+p3,5.365841,h264ref,1733000,0
+p3,5.390611,h264ref,1733000,0
+p3,4.674509,h264ref,1199000,0
+p3,4.676282,h264ref,1199000,0
+p3,4.669022,h264ref,1199000,0
+p3,7.040821,h264ref,2533000,1
+p3,6.987936,h264ref,2533000,1
+p3,7.055514,h264ref,2533000,1
+p3,6.038700,h264ref,2133000,1
+p3,6.053285,h264ref,2133000,1
+p3,6.035099,h264ref,2133000,1
+p3,5.407111,h264ref,1733000,1
+p3,5.430579,h264ref,1733000,1
+p3,5.416694,h264ref,1733000,1
+p3,4.654757,h264ref,1199000,1
+p3,4.667845,h264ref,1199000,1
+p3,4.664901,h264ref,1199000,1
+p3,7.393374,hmmer,2533000,0
+p3,7.373652,hmmer,2533000,0
+p3,7.386961,hmmer,2533000,0
+p3,6.197092,hmmer,2133000,0
+p3,6.158340,hmmer,2133000,0
+p3,6.116259,hmmer,2133000,0
+p3,5.361652,hmmer,1733000,0
+p3,5.373969,hmmer,1733000,0
+p3,5.391481,hmmer,1733000,0
+p3,4.648830,hmmer,1199000,0
+p3,4.646414,hmmer,1199000,0
+p3,4.636281,hmmer,1199000,0
+p3,7.252656,hmmer,2533000,1
+p3,7.301987,hmmer,2533000,1
+p3,7.411808,hmmer,2533000,1
+p3,6.114557,hmmer,2133000,1
+p3,6.168612,hmmer,2133000,1
+p3,6.094848,hmmer,2133000,1
+p3,5.412660,hmmer,1733000,1
+p3,5.415932,hmmer,1733000,1
+p3,5.422865,hmmer,1733000,1
+p3,4.648987,hmmer,1199000,1
+p3,4.669290,hmmer,1199000,1
+p3,4.661204,hmmer,1199000,1
+p3,6.528972,lbm,2533000,0
+p3,6.521778,lbm,2533000,0
+p3,6.523163,lbm,2533000,0
+p3,5.845173,lbm,2133000,0
+p3,5.832603,lbm,2133000,0
+p3,5.859258,lbm,2133000,0
+p3,5.327938,lbm,1733000,0
+p3,5.272019,lbm,1733000,0
+p3,5.333070,lbm,1733000,0
+p3,4.621221,lbm,1199000,0
+p3,4.610446,lbm,1199000,0
+p3,4.613365,lbm,1199000,0
+p3,6.514257,lbm,2533000,1
+p3,6.498087,lbm,2533000,1
+p3,6.518062,lbm,2533000,1
+p3,5.891015,lbm,2133000,1
+p3,5.882087,lbm,2133000,1
+p3,5.856975,lbm,2133000,1
+p3,5.280689,lbm,1733000,1
+p3,5.309048,lbm,1733000,1
+p3,5.269556,lbm,1733000,1
+p3,4.623364,lbm,1199000,1
+p3,4.614508,lbm,1199000,1
+p3,4.608499,lbm,1199000,1
+p3,6.717083,leslie3d,2533000,0
+p3,6.692297,leslie3d,2533000,0
+p3,6.719110,leslie3d,2533000,0
+p3,5.958828,leslie3d,2133000,0
+p3,5.931378,leslie3d,2133000,0
+p3,5.960683,leslie3d,2133000,0
+p3,5.341220,leslie3d,1733000,0
+p3,5.405417,leslie3d,1733000,0
+p3,5.381951,leslie3d,1733000,0
+p3,4.664851,leslie3d,1199000,0
+p3,4.669775,leslie3d,1199000,0
+p3,4.656077,leslie3d,1199000,0
+p3,6.704189,leslie3d,2533000,1
+p3,6.697021,leslie3d,2533000,1
+p3,6.726360,leslie3d,2533000,1
+p3,5.961750,leslie3d,2133000,1
+p3,5.949081,leslie3d,2133000,1
+p3,5.975164,leslie3d,2133000,1
+p3,5.374453,leslie3d,1733000,1
+p3,5.396183,leslie3d,1733000,1
+p3,5.401758,leslie3d,1733000,1
+p3,4.671156,leslie3d,1199000,1
+p3,4.669440,leslie3d,1199000,1
+p3,4.659972,leslie3d,1199000,1
+p3,6.291139,mcf,2533000,0
+p3,6.260673,mcf,2533000,0
+p3,6.233254,mcf,2533000,0
+p3,5.618897,mcf,2133000,0
+p3,5.685550,mcf,2133000,0
+p3,5.610690,mcf,2133000,0
+p3,5.176947,mcf,1733000,0
+p3,5.250819,mcf,1733000,0
+p3,5.208039,mcf,1733000,0
+p3,4.574110,mcf,1199000,0
+p3,4.617164,mcf,1199000,0
+p3,4.586226,mcf,1199000,0
+p3,6.233967,mcf,2533000,1
+p3,6.277645,mcf,2533000,1
+p3,6.212844,mcf,2533000,1
+p3,5.687692,mcf,2133000,1
+p3,5.653337,mcf,2133000,1
+p3,5.705580,mcf,2133000,1
+p3,5.174885,mcf,1733000,1
+p3,5.309172,mcf,1733000,1
+p3,5.169179,mcf,1733000,1
+p3,4.576358,mcf,1199000,1
+p3,4.553002,mcf,1199000,1
+p3,4.496557,mcf,1199000,1
+p3,6.380949,milc,2533000,0
+p3,6.151439,milc,2533000,0
+p3,6.126892,milc,2533000,0
+p3,5.565237,milc,2133000,0
+p3,5.621423,milc,2133000,0
+p3,5.549091,milc,2133000,0
+p3,5.035873,milc,1733000,0
+p3,5.152436,milc,1733000,0
+p3,5.057173,milc,1733000,0
+p3,4.479044,milc,1199000,0
+p3,4.538285,milc,1199000,0
+p3,4.477741,milc,1199000,0
+p3,6.293513,milc,2533000,1
+p3,6.203744,milc,2533000,1
+p3,6.272003,milc,2533000,1
+p3,5.623287,milc,2133000,1
+p3,5.619208,milc,2133000,1
+p3,5.645848,milc,2133000,1
+p3,5.051271,milc,1733000,1
+p3,5.107685,milc,1733000,1
+p3,5.174417,milc,1733000,1
+p3,4.525324,milc,1199000,1
+p3,4.437130,milc,1199000,1
+p3,4.471786,milc,1199000,1
+p3,6.195413,namd,2533000,0
+p3,6.216464,namd,2533000,0
+p3,6.179830,namd,2533000,0
+p3,5.658462,namd,2133000,0
+p3,5.628528,namd,2133000,0
+p3,5.668782,namd,2133000,0
+p3,5.144718,namd,1733000,0
+p3,5.058796,namd,1733000,0
+p3,5.154958,namd,1733000,0
+p3,4.476065,namd,1199000,0
+p3,4.469190,namd,1199000,0
+p3,4.474722,namd,1199000,0
+p3,6.210848,namd,2533000,1
+p3,6.293774,namd,2533000,1
+p4,8.080032,bzip2,2533000,0
+p4,7.680405,bzip2,2533000,0
+p4,6.941172,bzip2,2533000,0
+p4,6.031020,bzip2,2133000,0
+p4,6.033616,bzip2,2133000,0
+p4,6.108115,bzip2,2133000,0
+p4,5.355595,bzip2,1733000,0
+p4,5.318975,bzip2,1733000,0
+p4,5.340942,bzip2,1733000,0
+p4,4.639325,bzip2,1199000,0
+p4,4.624907,bzip2,1199000,0
+p4,4.632820,bzip2,1199000,0
+p4,7.001340,bzip2,2533000,1
+p4,6.930876,bzip2,2533000,1
+p4,6.892742,bzip2,2533000,1
+p4,6.039121,bzip2,2133000,1
+p4,6.066926,bzip2,2133000,1
+p4,6.049034,bzip2,2133000,1
+p4,5.359263,bzip2,1733000,1
+p4,5.369600,bzip2,1733000,1
+p4,5.344832,bzip2,1733000,1
+p4,4.540457,bzip2,1199000,1
+p4,4.554719,bzip2,1199000,1
+p4,4.574794,bzip2,1199000,1
+p4,6.584222,cactusADM,2533000,0
+p4,6.498915,cactusADM,2533000,0
+p4,6.558910,cactusADM,2533000,0
+p4,5.825721,cactusADM,2133000,0
+p4,5.919980,cactusADM,2133000,0
+p4,5.807501,cactusADM,2133000,0
+p4,5.253551,cactusADM,1733000,0
+p4,5.184130,cactusADM,1733000,0
+p4,5.217440,cactusADM,1733000,0
+p4,4.580768,cactusADM,1199000,0
+p4,4.562307,cactusADM,1199000,0
+p4,4.602657,cactusADM,1199000,0
+p4,6.528641,cactusADM,2533000,1
+p4,6.658123,cactusADM,2533000,1
+p4,6.496220,cactusADM,2533000,1
+p4,5.773882,cactusADM,2133000,1
+p4,5.870550,cactusADM,2133000,1
+p4,5.833149,cactusADM,2133000,1
+p4,5.253617,cactusADM,1733000,1
+p4,5.265361,cactusADM,1733000,1
+p4,5.187839,cactusADM,1733000,1
+p4,4.480669,cactusADM,1199000,1
+p4,4.512220,cactusADM,1199000,1
+p4,4.497293,cactusADM,1199000,1
+p4,0.794821,cpuload_all_0_4096,2533000,0
+p4,0.806628,cpuload_all_0_4096,2533000,0
+p4,0.769586,cpuload_all_0_4096,2533000,0
+p4,0.765084,cpuload_all_0_4096,2133000,0
+p4,0.710470,cpuload_all_0_4096,2133000,0
+p4,0.680543,cpuload_all_0_4096,2133000,0
+p4,0.848093,cpuload_all_0_4096,1733000,0
+p4,0.792572,cpuload_all_0_4096,1733000,0
+p4,1.028382,cpuload_all_0_4096,1733000,0
+p4,0.674306,cpuload_all_0_4096,1199000,0
+p4,0.690297,cpuload_all_0_4096,1199000,0
+p4,0.783007,cpuload_all_0_4096,1199000,0
+p4,0.734936,cpuload_all_0_4096,2533000,1
+p4,0.845024,cpuload_all_0_4096,2533000,1
+p4,0.811784,cpuload_all_0_4096,2533000,1
+p4,1.015690,cpuload_all_0_4096,2133000,1
+p4,1.013301,cpuload_all_0_4096,2133000,1
+p4,0.890385,cpuload_all_0_4096,2133000,1
+p4,1.191639,cpuload_all_0_4096,1733000,1
+p4,1.197877,cpuload_all_0_4096,1733000,1
+p4,1.089004,cpuload_all_0_4096,1733000,1
+p4,0.871614,cpuload_all_0_4096,1199000,1
+p4,0.783384,cpuload_all_0_4096,1199000,1
+p4,0.850108,cpuload_all_0_4096,1199000,1
+p4,2.463935,cpuload_all_25_4096,2533000,0
+p4,2.526907,cpuload_all_25_4096,2533000,0
+p4,2.468547,cpuload_all_25_4096,2533000,0
+p4,2.255799,cpuload_all_25_4096,2133000,0
+p4,2.257937,cpuload_all_25_4096,2133000,0
+p4,2.226795,cpuload_all_25_4096,2133000,0
+p4,2.030633,cpuload_all_25_4096,1733000,0
+p4,2.057157,cpuload_all_25_4096,1733000,0
+p4,2.031586,cpuload_all_25_4096,1733000,0
+p4,1.869808,cpuload_all_25_4096,1199000,0
+p4,1.896791,cpuload_all_25_4096,1199000,0
+p4,1.895889,cpuload_all_25_4096,1199000,0
+p4,2.377050,cpuload_all_25_4096,2533000,1
+p4,2.372591,cpuload_all_25_4096,2533000,1
+p4,2.390975,cpuload_all_25_4096,2533000,1
+p4,2.196020,cpuload_all_25_4096,2133000,1
+p4,2.225245,cpuload_all_25_4096,2133000,1
+p4,2.189814,cpuload_all_25_4096,2133000,1
+p4,2.004594,cpuload_all_25_4096,1733000,1
+p4,2.011927,cpuload_all_25_4096,1733000,1
+p4,2.035173,cpuload_all_25_4096,1733000,1
+p4,1.856395,cpuload_all_25_4096,1199000,1
+p4,1.901735,cpuload_all_25_4096,1199000,1
+p4,1.882523,cpuload_all_25_4096,1199000,1
+p4,6.559526,cpuload_all_50_4096,2533000,0
+p4,6.616892,cpuload_all_50_4096,2533000,0
+p4,6.561842,cpuload_all_50_4096,2533000,0
+p4,5.929682,cpuload_all_50_4096,2133000,0
+p4,5.591120,namd,2133000,1
+p4,5.618696,namd,2133000,1
+p4,5.731951,namd,2133000,1
+p4,5.094415,namd,1733000,1
+p4,5.164608,namd,1733000,1
+p4,5.152460,namd,1733000,1
+p4,4.414231,namd,1199000,1
+p4,4.435810,namd,1199000,1
+p4,4.472022,namd,1199000,1
+p4,7.408736,omnetpp,2533000,0
+p4,5.776423,cpuload_all_50_4096,2133000,0
+p4,7.343837,omnetpp,2533000,0
+p4,7.306274,omnetpp,2533000,0
+p4,6.252165,omnetpp,2133000,0
+p4,6.180234,omnetpp,2133000,0
+p4,6.227766,omnetpp,2133000,0
+p4,5.445170,omnetpp,1733000,0
+p4,5.419540,omnetpp,1733000,0
+p4,5.415511,omnetpp,1733000,0
+p4,4.647433,omnetpp,1199000,0
+p4,4.641397,omnetpp,1199000,0
+p4,5.876108,cpuload_all_50_4096,2133000,0
+p4,4.665809,omnetpp,1199000,0
+p4,7.401462,omnetpp,2533000,1
+p4,7.316676,omnetpp,2533000,1
+p4,7.358871,omnetpp,2533000,1
+p4,6.261209,omnetpp,2133000,1
+p4,6.187339,omnetpp,2133000,1
+p4,6.160315,omnetpp,2133000,1
+p4,5.409543,omnetpp,1733000,1
+p4,5.399376,omnetpp,1733000,1
+p4,5.425768,omnetpp,1733000,1
+p4,5.289927,cpuload_all_50_4096,1733000,0
+p4,4.563403,omnetpp,1199000,1
+p4,4.545937,omnetpp,1199000,1
+p4,4.536883,omnetpp,1199000,1
+p4,6.056932,povray,2533000,0
+p4,6.233296,povray,2533000,0
+p4,6.277253,povray,2533000,0
+p4,5.490198,povray,2133000,0
+p4,5.457778,povray,2133000,0
+p4,5.362136,povray,2133000,0
+p4,4.810614,povray,1733000,0
+p4,5.277076,cpuload_all_50_4096,1733000,0
+p4,4.916992,povray,1733000,0
+p4,5.049631,povray,1733000,0
+p4,4.488263,povray,1199000,0
+p4,4.441786,povray,1199000,0
+p4,4.280294,povray,1199000,0
+p4,6.081804,povray,2533000,1
+p4,6.202238,povray,2533000,1
+p4,6.289145,povray,2533000,1
+p4,5.400256,povray,2133000,1
+p4,5.531326,povray,2133000,1
+p4,5.213634,cpuload_all_50_4096,1733000,0
+p4,5.573011,povray,2133000,1
+p4,5.102954,povray,1733000,1
+p4,4.770790,povray,1733000,1
+p4,4.879339,povray,1733000,1
+p4,4.311355,povray,1199000,1
+p4,4.368606,povray,1199000,1
+p4,4.386569,povray,1199000,1
+p4,7.073466,sjeng,2533000,0
+p4,7.062760,sjeng,2533000,0
+p4,7.098378,sjeng,2533000,0
+p4,4.543054,cpuload_all_50_4096,1199000,0
+p4,6.153805,sjeng,2133000,0
+p4,6.171728,sjeng,2133000,0
+p4,6.181722,sjeng,2133000,0
+p4,5.427287,sjeng,1733000,0
+p4,5.442463,sjeng,1733000,0
+p4,5.442909,sjeng,1733000,0
+p4,4.683348,sjeng,1199000,0
+p4,4.679890,sjeng,1199000,0
+p4,4.676540,sjeng,1199000,0
+p4,7.084234,sjeng,2533000,1
+p4,4.511945,cpuload_all_50_4096,1199000,0
+p4,7.095320,sjeng,2533000,1
+p4,7.077067,sjeng,2533000,1
+p4,6.168076,sjeng,2133000,1
+p4,6.157053,sjeng,2133000,1
+p4,6.176246,sjeng,2133000,1
+p4,5.431623,sjeng,1733000,1
+p4,5.436173,sjeng,1733000,1
+p4,5.427127,sjeng,1733000,1
+p4,4.560906,sjeng,1199000,1
+p4,4.558656,sjeng,1199000,1
+p4,4.598268,cpuload_all_50_4096,1199000,0
+p4,4.565005,sjeng,1199000,1
+p4,5.843884,soplex,2533000,0
+p4,5.959078,soplex,2533000,0
+p4,5.979794,soplex,2533000,0
+p4,5.447101,soplex,2133000,0
+p4,5.086261,soplex,2133000,0
+p4,5.079695,soplex,2133000,0
+p4,4.777254,soplex,1733000,0
+p4,4.726349,soplex,1733000,0
+p4,4.875538,soplex,1733000,0
+p4,6.598165,cpuload_all_50_4096,2533000,1
+p4,4.238354,soplex,1199000,0
+p4,4.372620,soplex,1199000,0
+p4,4.384038,soplex,1199000,0
+p4,6.035502,soplex,2533000,1
+p4,6.034999,soplex,2533000,1
+p4,6.074981,soplex,2533000,1
+p4,5.478006,soplex,2133000,1
+p4,5.114872,soplex,2133000,1
+p4,5.242818,soplex,2133000,1
+p4,4.719605,soplex,1733000,1
+p4,6.691885,cpuload_all_50_4096,2533000,1
+p4,4.873293,soplex,1733000,1
+p4,4.796142,soplex,1733000,1
+p4,4.293699,soplex,1199000,1
+p4,4.141002,soplex,1199000,1
+p4,4.194473,soplex,1199000,1
+p4,6.213675,sphinx3,2533000,0
+p4,6.138118,sphinx3,2533000,0
+p4,6.426975,sphinx3,2533000,0
+p4,5.535953,sphinx3,2133000,0
+p4,5.669336,sphinx3,2133000,0
+p4,6.078816,cpuload_all_50_4096,2533000,1
+p4,5.570825,sphinx3,2133000,0
+p4,4.967297,sphinx3,1733000,0
+p4,5.008103,sphinx3,1733000,0
+p4,4.991706,sphinx3,1733000,0
+p4,4.401196,sphinx3,1199000,0
+p4,4.388896,sphinx3,1199000,0
+p4,4.501480,sphinx3,1199000,0
+p4,6.348969,sphinx3,2533000,1
+p4,6.285059,sphinx3,2533000,1
+p4,6.201300,sphinx3,2533000,1
+p4,5.674286,cpuload_all_50_4096,2133000,1
+p4,5.640561,sphinx3,2133000,1
+p4,5.514907,sphinx3,2133000,1
+p4,5.653091,sphinx3,2133000,1
+p4,5.050237,sphinx3,1733000,1
+p4,5.036773,sphinx3,1733000,1
+p4,5.060928,sphinx3,1733000,1
+p4,4.346822,sphinx3,1199000,1
+p4,4.348797,sphinx3,1199000,1
+p4,4.299507,sphinx3,1199000,1
+p4,6.675378,zeusmp,2533000,0
+p4,5.272457,cpuload_all_50_4096,2133000,1
+p4,6.595625,zeusmp,2533000,0
+p4,6.669207,zeusmp,2533000,0
+p4,5.914307,zeusmp,2133000,0
+p4,5.979733,zeusmp,2133000,0
+p4,5.987090,zeusmp,2133000,0
+p4,5.291324,zeusmp,1733000,0
+p4,5.312613,zeusmp,1733000,0
+p4,5.294613,zeusmp,1733000,0
+p4,4.616981,zeusmp,1199000,0
+p4,4.627526,zeusmp,1199000,0
+p4,5.949189,cpuload_all_50_4096,2133000,1
+p4,4.624734,zeusmp,1199000,0
+p4,6.582039,zeusmp,2533000,1
+p4,6.665240,zeusmp,2533000,1
+p4,6.607982,zeusmp,2533000,1
+p4,5.923871,zeusmp,2133000,1
+p4,5.916526,zeusmp,2133000,1
+p4,5.985647,zeusmp,2133000,1
+p4,5.282442,zeusmp,1733000,1
+p4,5.297671,zeusmp,1733000,1
+p4,5.330267,zeusmp,1733000,1
+p4,5.224040,cpuload_all_50_4096,1733000,1
+p4,4.534250,zeusmp,1199000,1
+p4,4.497176,zeusmp,1199000,1
+p4,4.505877,zeusmp,1199000,1
+p4,8.459110,bzip2,2533000,0
+p4,7.487829,bzip2,2533000,0
+p4,6.946105,bzip2,2533000,0
+p4,6.095964,bzip2,2133000,0
+p4,6.063303,bzip2,2133000,0
+p4,6.083062,bzip2,2133000,0
+p4,5.343229,bzip2,1733000,0
+p4,5.291473,cpuload_all_50_4096,1733000,1
+p4,5.385649,bzip2,1733000,0
+p4,5.361155,bzip2,1733000,0
+p4,4.618148,bzip2,1199000,0
+p4,4.646788,bzip2,1199000,0
+p4,4.634850,bzip2,1199000,0
+p4,7.013047,bzip2,2533000,1
+p4,6.991454,bzip2,2533000,1
+p4,6.938819,bzip2,2533000,1
+p4,6.109360,bzip2,2133000,1
+p4,6.092773,bzip2,2133000,1
+p4,5.209989,cpuload_all_50_4096,1733000,1
+p4,6.063661,bzip2,2133000,1
+p4,5.406470,bzip2,1733000,1
+p4,5.405838,bzip2,1733000,1
+p4,5.412433,bzip2,1733000,1
+p4,4.508311,bzip2,1199000,1
+p4,4.543905,bzip2,1199000,1
+p4,4.525746,bzip2,1199000,1
+p4,6.717829,cactusADM,2533000,0
+p4,6.562581,cactusADM,2533000,0
+p4,6.509077,cactusADM,2533000,0
+p4,4.518368,cpuload_all_50_4096,1199000,1
+p4,5.925666,cactusADM,2133000,0
+p4,5.890721,cactusADM,2133000,0
+p4,5.851184,cactusADM,2133000,0
+p4,5.275856,cactusADM,1733000,0
+p4,5.281209,cactusADM,1733000,0
+p4,5.237624,cactusADM,1733000,0
+p4,4.560519,cactusADM,1199000,0
+p4,4.558066,cactusADM,1199000,0
+p4,4.562065,cactusADM,1199000,0
+p4,6.685006,cactusADM,2533000,1
+p4,4.503472,cpuload_all_50_4096,1199000,1
+p4,6.591869,cactusADM,2533000,1
+p4,6.535292,cactusADM,2533000,1
+p4,5.953283,cactusADM,2133000,1
+p4,5.916431,cactusADM,2133000,1
+p4,5.848679,cactusADM,2133000,1
+p4,5.266333,cactusADM,1733000,1
+p4,5.273938,cactusADM,1733000,1
+p4,5.228960,cactusADM,1733000,1
+p4,4.465393,cactusADM,1199000,1
+p4,4.467908,cactusADM,1199000,1
+p4,4.576806,cpuload_all_50_4096,1199000,1
+p4,4.463572,cactusADM,1199000,1
+p4,0.695621,cpuload_all_0_4096,2533000,0
+p4,0.757379,cpuload_all_0_4096,2533000,0
+p4,0.783284,cpuload_all_0_4096,2533000,0
+p4,0.732996,cpuload_all_0_4096,2133000,0
+p4,0.741656,cpuload_all_0_4096,2133000,0
+p4,0.599184,cpuload_all_0_4096,2133000,0
+p4,0.819459,cpuload_all_0_4096,1733000,0
+p4,0.756464,cpuload_all_0_4096,1733000,0
+p4,0.863453,cpuload_all_0_4096,1733000,0
+p4,6.429352,cpuload_all_75_4096,2533000,0
+p4,0.616008,cpuload_all_0_4096,1199000,0
+p4,0.615331,cpuload_all_0_4096,1199000,0
+p4,0.675685,cpuload_all_0_4096,1199000,0
+p4,0.870717,cpuload_all_0_4096,2533000,1
+p4,0.787436,cpuload_all_0_4096,2533000,1
+p4,0.841796,cpuload_all_0_4096,2533000,1
+p4,0.721689,cpuload_all_0_4096,2133000,1
+p4,0.854846,cpuload_all_0_4096,2133000,1
+p4,0.892208,cpuload_all_0_4096,2133000,1
+p4,0.953458,cpuload_all_0_4096,1733000,1
+p4,6.652912,cpuload_all_75_4096,2533000,0
+p4,1.073428,cpuload_all_0_4096,1733000,1
+p4,1.164466,cpuload_all_0_4096,1733000,1
+p4,0.815982,cpuload_all_0_4096,1199000,1
+p4,0.904882,cpuload_all_0_4096,1199000,1
+p4,0.813464,cpuload_all_0_4096,1199000,1
+p4,2.465210,cpuload_all_25_4096,2533000,0
+p4,2.491615,cpuload_all_25_4096,2533000,0
+p4,2.454335,cpuload_all_25_4096,2533000,0
+p4,2.248652,cpuload_all_25_4096,2133000,0
+p4,2.231646,cpuload_all_25_4096,2133000,0
+p4,6.561814,cpuload_all_75_4096,2533000,0
+p4,2.251393,cpuload_all_25_4096,2133000,0
+p4,2.061516,cpuload_all_25_4096,1733000,0
+p4,2.046553,cpuload_all_25_4096,1733000,0
+p4,2.063389,cpuload_all_25_4096,1733000,0
+p4,1.910831,cpuload_all_25_4096,1199000,0
+p4,1.915017,cpuload_all_25_4096,1199000,0
+p4,1.929045,cpuload_all_25_4096,1199000,0
+p4,2.414465,cpuload_all_25_4096,2533000,1
+p4,2.410812,cpuload_all_25_4096,2533000,1
+p4,2.411688,cpuload_all_25_4096,2533000,1
+p4,5.863692,cpuload_all_75_4096,2133000,0
+p4,2.238941,cpuload_all_25_4096,2133000,1
+p4,2.194531,cpuload_all_25_4096,2133000,1
+p4,2.209629,cpuload_all_25_4096,2133000,1
+p4,2.033201,cpuload_all_25_4096,1733000,1
+p4,2.067730,cpuload_all_25_4096,1733000,1
+p4,2.018656,cpuload_all_25_4096,1733000,1
+p4,1.904688,cpuload_all_25_4096,1199000,1
+p4,1.884682,cpuload_all_25_4096,1199000,1
+p4,1.878086,cpuload_all_25_4096,1199000,1
+p4,6.599051,cpuload_all_50_4096,2533000,0
+p4,5.874602,cpuload_all_75_4096,2133000,0
+p4,6.685640,cpuload_all_50_4096,2533000,0
+p4,6.609408,cpuload_all_50_4096,2533000,0
+p4,5.866031,cpuload_all_50_4096,2133000,0
+p4,5.879013,cpuload_all_50_4096,2133000,0
+p4,5.966071,cpuload_all_50_4096,2133000,0
+p4,5.250968,cpuload_all_50_4096,1733000,0
+p4,5.247550,cpuload_all_50_4096,1733000,0
+p4,5.230454,cpuload_all_50_4096,1733000,0
+p4,4.525040,cpuload_all_50_4096,1199000,0
+p4,4.615787,cpuload_all_50_4096,1199000,0
+p4,5.862601,cpuload_all_75_4096,2133000,0
+p4,4.597765,cpuload_all_50_4096,1199000,0
+p4,6.688124,cpuload_all_50_4096,2533000,1
+p4,6.572303,cpuload_all_50_4096,2533000,1
+p4,6.594694,cpuload_all_50_4096,2533000,1
+p4,5.944620,cpuload_all_50_4096,2133000,1
+p4,5.888751,cpuload_all_50_4096,2133000,1
+p4,5.460685,cpuload_all_50_4096,2133000,1
+p4,5.119579,cpuload_all_50_4096,1733000,1
+p4,5.303873,cpuload_all_50_4096,1733000,1
+p4,5.246359,cpuload_all_50_4096,1733000,1
+p4,5.230852,cpuload_all_75_4096,1733000,0
+p4,4.439065,cpuload_all_50_4096,1199000,1
+p4,4.524205,cpuload_all_50_4096,1199000,1
+p4,4.521480,cpuload_all_50_4096,1199000,1
+p4,6.660235,cpuload_all_75_4096,2533000,0
+p4,6.613620,cpuload_all_75_4096,2533000,0
+p4,6.615021,cpuload_all_75_4096,2533000,0
+p4,5.951866,cpuload_all_75_4096,2133000,0
+p4,5.897661,cpuload_all_75_4096,2133000,0
+p4,5.890890,cpuload_all_75_4096,2133000,0
+p4,5.239591,cpuload_all_75_4096,1733000,0
+p4,5.222925,cpuload_all_75_4096,1733000,0
+p4,5.230087,cpuload_all_75_4096,1733000,0
+p4,5.264021,cpuload_all_75_4096,1733000,0
+p4,4.539350,cpuload_all_75_4096,1199000,0
+p4,4.597250,cpuload_all_75_4096,1199000,0
+p4,4.592302,cpuload_all_75_4096,1199000,0
+p4,6.657050,cpuload_all_75_4096,2533000,1
+p4,6.608593,cpuload_all_75_4096,2533000,1
+p4,6.589705,cpuload_all_75_4096,2533000,1
+p4,5.970487,cpuload_all_75_4096,2133000,1
+p4,5.963732,cpuload_all_75_4096,2133000,1
+p4,5.233527,cpuload_all_75_4096,1733000,0
+p4,5.986981,cpuload_all_75_4096,2133000,1
+p4,5.240839,cpuload_all_75_4096,1733000,1
+p4,5.241298,cpuload_all_75_4096,1733000,1
+p4,5.227058,cpuload_all_75_4096,1733000,1
+p4,4.486046,cpuload_all_75_4096,1199000,1
+p4,4.484821,cpuload_all_75_4096,1199000,1
+p4,4.431895,cpuload_all_75_4096,1199000,1
+p4,6.597231,cpuload_all_100_4096,2533000,0
+p4,6.609993,cpuload_all_100_4096,2533000,0
+p4,6.601006,cpuload_all_100_4096,2533000,0
+p4,4.591511,cpuload_all_75_4096,1199000,0
+p4,5.966430,cpuload_all_100_4096,2133000,0
+p4,5.983693,cpuload_all_100_4096,2133000,0
+p4,5.916718,cpuload_all_100_4096,2133000,0
+p4,5.246492,cpuload_all_100_4096,1733000,0
+p4,5.248191,cpuload_all_100_4096,1733000,0
+p4,5.307003,cpuload_all_100_4096,1733000,0
+p4,4.590994,cpuload_all_100_4096,1199000,0
+p4,4.536484,cpuload_all_100_4096,1199000,0
+p4,4.538079,cpuload_all_100_4096,1199000,0
+p4,6.634716,cpuload_all_100_4096,2533000,1
+p4,4.534676,cpuload_all_75_4096,1199000,0
+p4,6.594756,cpuload_all_100_4096,2533000,1
+p4,6.695946,cpuload_all_100_4096,2533000,1
+p4,5.965722,cpuload_all_100_4096,2133000,1
+p4,5.898505,cpuload_all_100_4096,2133000,1
+p4,5.899597,cpuload_all_100_4096,2133000,1
+p4,5.256713,cpuload_all_100_4096,1733000,1
+p4,5.221800,cpuload_all_100_4096,1733000,1
+p4,5.313920,cpuload_all_100_4096,1733000,1
+p4,4.435176,cpuload_all_100_4096,1199000,1
+p4,4.455610,cpuload_all_100_4096,1199000,1
+p4,4.524149,cpuload_all_75_4096,1199000,0
+p4,4.477733,cpuload_all_100_4096,1199000,1
+p4,7.705558,gamess,2533000,0
+p4,7.711456,gamess,2533000,0
+p4,7.708992,gamess,2533000,0
+p4,6.424804,gamess,2133000,0
+p4,6.412227,gamess,2133000,0
+p4,6.401775,gamess,2133000,0
+p4,5.503469,gamess,1733000,0
+p4,5.498539,gamess,1733000,0
+p4,5.491509,gamess,1733000,0
+p4,6.598161,cpuload_all_75_4096,2533000,1
+p4,4.683663,gamess,1199000,0
+p4,4.685089,gamess,1199000,0
+p4,4.680040,gamess,1199000,0
+p4,7.674841,gamess,2533000,1
+p4,7.686107,gamess,2533000,1
+p4,7.692780,gamess,2533000,1
+p4,6.397773,gamess,2133000,1
+p4,6.403800,gamess,2133000,1
+p4,6.386173,gamess,2133000,1
+p4,5.503062,gamess,1733000,1
+p4,6.689500,cpuload_all_75_4096,2533000,1
+p4,5.491068,gamess,1733000,1
+p4,5.500438,gamess,1733000,1
+p4,4.578927,gamess,1199000,1
+p4,4.574569,gamess,1199000,1
+p4,4.575693,gamess,1199000,1
+p4,6.930200,gcc,2533000,0
+p4,6.931366,gcc,2533000,0
+p4,6.930682,gcc,2533000,0
+p4,6.145499,gcc,2133000,0
+p4,6.154074,gcc,2133000,0
+p4,6.666035,cpuload_all_75_4096,2533000,1
+p4,6.148623,gcc,2133000,0
+p4,5.448819,gcc,1733000,0
+p4,5.444084,gcc,1733000,0
+p4,5.439584,gcc,1733000,0
+p4,4.693243,gcc,1199000,0
+p4,4.687519,gcc,1199000,0
+p4,4.685505,gcc,1199000,0
+p4,6.924107,gcc,2533000,1
+p4,6.928827,gcc,2533000,1
+p4,6.921525,gcc,2533000,1
+p4,5.963828,cpuload_all_75_4096,2133000,1
+p4,6.144690,gcc,2133000,1
+p4,6.157861,gcc,2133000,1
+p4,6.143241,gcc,2133000,1
+p4,5.441326,gcc,1733000,1
+p4,5.444358,gcc,1733000,1
+p4,5.447174,gcc,1733000,1
+p4,4.583025,gcc,1199000,1
+p4,4.573928,gcc,1199000,1
+p4,4.575393,gcc,1199000,1
+p4,7.129289,gobmk,2533000,0
+p4,5.963048,cpuload_all_75_4096,2133000,1
+p4,7.073448,gobmk,2533000,0
+p4,7.071459,gobmk,2533000,0
+p4,6.145222,gobmk,2133000,0
+p4,6.152819,gobmk,2133000,0
+p4,6.190662,gobmk,2133000,0
+p4,5.410582,gobmk,1733000,0
+p4,5.406409,gobmk,1733000,0
+p4,5.406122,gobmk,1733000,0
+p4,4.660869,gobmk,1199000,0
+p4,4.663285,gobmk,1199000,0
+p4,5.958487,cpuload_all_75_4096,2133000,1
+p4,4.642556,gobmk,1199000,0
+p4,7.047116,gobmk,2533000,1
+p4,7.052859,gobmk,2533000,1
+p4,7.061293,gobmk,2533000,1
+p4,6.148989,gobmk,2133000,1
+p4,6.191047,gobmk,2133000,1
+p4,6.179403,gobmk,2133000,1
+p4,5.408122,gobmk,1733000,1
+p4,5.412085,gobmk,1733000,1
+p4,5.420199,gobmk,1733000,1
+p4,5.236861,cpuload_all_75_4096,1733000,1
+p4,4.552515,gobmk,1199000,1
+p4,4.549051,gobmk,1199000,1
+p4,4.540130,gobmk,1199000,1
+p4,6.839372,gromacs,2533000,0
+p4,6.856695,gromacs,2533000,0
+p4,6.884049,gromacs,2533000,0
+p4,6.084507,gromacs,2133000,0
+p4,6.123298,gromacs,2133000,0
+p4,6.098609,gromacs,2133000,0
+p4,5.400739,gromacs,1733000,0
+p4,5.306236,cpuload_all_75_4096,1733000,1
+p4,5.396037,gromacs,1733000,0
+p4,5.385639,gromacs,1733000,0
+p4,4.664482,gromacs,1199000,0
+p4,4.674318,gromacs,1199000,0
+p4,4.672696,gromacs,1199000,0
+p4,6.883636,gromacs,2533000,1
+p4,6.877058,gromacs,2533000,1
+p4,6.865657,gromacs,2533000,1
+p4,6.083785,gromacs,2133000,1
+p4,6.071637,gromacs,2133000,1
+p4,5.234744,cpuload_all_75_4096,1733000,1
+p4,6.085557,gromacs,2133000,1
+p4,5.386110,gromacs,1733000,1
+p4,5.398406,gromacs,1733000,1
+p4,5.407215,gromacs,1733000,1
+p4,4.559427,gromacs,1199000,1
+p4,4.540895,gromacs,1199000,1
+p4,4.551522,gromacs,1199000,1
+p4,7.164183,h264ref,2533000,0
+p4,7.151691,h264ref,2533000,0
+p4,7.157507,h264ref,2533000,0
+p4,4.506767,cpuload_all_75_4096,1199000,1
+p4,6.158758,h264ref,2133000,0
+p4,6.164041,h264ref,2133000,0
+p4,6.178448,h264ref,2133000,0
+p4,5.417896,h264ref,1733000,0
+p4,5.421180,h264ref,1733000,0
+p4,5.416980,h264ref,1733000,0
+p4,4.651822,h264ref,1199000,0
+p4,4.664005,h264ref,1199000,0
+p4,4.675156,h264ref,1199000,0
+p4,7.207207,h264ref,2533000,1
+p4,4.512399,cpuload_all_75_4096,1199000,1
+p4,7.212010,h264ref,2533000,1
+p4,7.203701,h264ref,2533000,1
+p4,6.171228,h264ref,2133000,1
+p4,6.156816,h264ref,2133000,1
+p4,6.171078,h264ref,2133000,1
+p4,5.422386,h264ref,1733000,1
+p4,5.415284,h264ref,1733000,1
+p4,5.405191,h264ref,1733000,1
+p4,4.549286,h264ref,1199000,1
+p4,4.548440,h264ref,1199000,1
+p4,4.490157,cpuload_all_75_4096,1199000,1
+p4,4.539887,h264ref,1199000,1
+p4,7.515162,hmmer,2533000,0
+p4,7.534777,hmmer,2533000,0
+p4,7.501657,hmmer,2533000,0
+p4,6.231349,hmmer,2133000,0
+p4,6.252248,hmmer,2133000,0
+p4,6.330691,hmmer,2133000,0
+p4,5.413985,hmmer,1733000,0
+p4,5.412601,hmmer,1733000,0
+p4,5.428064,hmmer,1733000,0
+p4,6.592510,cpuload_all_100_4096,2533000,0
+p4,4.640090,hmmer,1199000,0
+p4,4.635453,hmmer,1199000,0
+p4,4.632493,hmmer,1199000,0
+p4,7.447664,hmmer,2533000,1
+p4,7.499097,hmmer,2533000,1
+p4,7.624722,hmmer,2533000,1
+p4,6.220085,hmmer,2133000,1
+p4,6.307870,hmmer,2133000,1
+p4,6.255043,hmmer,2133000,1
+p4,5.421419,hmmer,1733000,1
+p4,6.559410,cpuload_all_100_4096,2533000,0
+p4,5.400334,hmmer,1733000,1
+p4,5.412523,hmmer,1733000,1
+p4,4.521721,hmmer,1199000,1
+p4,4.527306,hmmer,1199000,1
+p4,4.527676,hmmer,1199000,1
+p4,6.662329,lbm,2533000,0
+p4,6.657328,lbm,2533000,0
+p4,6.677425,lbm,2533000,0
+p4,5.982179,lbm,2133000,0
+p4,5.904572,lbm,2133000,0
+p4,6.588996,cpuload_all_100_4096,2533000,0
+p4,5.982689,lbm,2133000,0
+p4,5.277693,lbm,1733000,0
+p4,5.344655,lbm,1733000,0
+p4,5.302597,lbm,1733000,0
+p4,4.606143,lbm,1199000,0
+p4,4.561289,lbm,1199000,0
+p4,4.600083,lbm,1199000,0
+p4,6.680719,lbm,2533000,1
+p4,6.592958,lbm,2533000,1
+p4,6.676645,lbm,2533000,1
+p4,5.883665,cpuload_all_100_4096,2133000,0
+p4,5.980107,lbm,2133000,1
+p4,5.981221,lbm,2133000,1
+p4,5.983100,lbm,2133000,1
+p4,5.334358,lbm,1733000,1
+p4,5.272987,lbm,1733000,1
+p4,5.268794,lbm,1733000,1
+p4,4.487684,lbm,1199000,1
+p4,4.477500,lbm,1199000,1
+p4,4.492329,lbm,1199000,1
+p4,6.819065,leslie3d,2533000,0
+p4,5.887403,cpuload_all_100_4096,2133000,0
+p4,6.871520,leslie3d,2533000,0
+p4,6.819366,leslie3d,2533000,0
+p4,6.085486,leslie3d,2133000,0
+p4,6.072129,leslie3d,2133000,0
+p4,6.057514,leslie3d,2133000,0
+p4,5.413945,leslie3d,1733000,0
+p4,5.366333,leslie3d,1733000,0
+p4,5.394497,leslie3d,1733000,0
+p4,4.657168,leslie3d,1199000,0
+p4,4.648740,leslie3d,1199000,0
+p4,5.952470,cpuload_all_100_4096,2133000,0
+p4,4.650025,leslie3d,1199000,0
+p4,6.914132,leslie3d,2533000,1
+p4,6.826340,leslie3d,2533000,1
+p4,6.866761,leslie3d,2533000,1
+p4,6.121810,leslie3d,2133000,1
+p4,6.075459,leslie3d,2133000,1
+p4,6.120293,leslie3d,2133000,1
+p4,5.390113,leslie3d,1733000,1
+p4,5.391596,leslie3d,1733000,1
+p4,5.392118,leslie3d,1733000,1
+p4,5.243321,cpuload_all_100_4096,1733000,0
+p4,4.539608,leslie3d,1199000,1
+p4,4.555802,leslie3d,1199000,1
+p4,4.549601,leslie3d,1199000,1
+p4,6.347532,mcf,2533000,0
+p4,6.320587,mcf,2533000,0
+p4,6.381535,mcf,2533000,0
+p4,5.733896,mcf,2133000,0
+p4,5.814806,mcf,2133000,0
+p4,5.789955,mcf,2133000,0
+p4,5.213671,mcf,1733000,0
+p4,5.292760,cpuload_all_100_4096,1733000,0
+p4,5.017477,mcf,1733000,0
+p4,5.225602,mcf,1733000,0
+p4,4.516799,mcf,1199000,0
+p4,4.522627,mcf,1199000,0
+p4,4.539838,mcf,1199000,0
+p4,6.364918,mcf,2533000,1
+p4,6.297074,mcf,2533000,1
+p4,6.446405,mcf,2533000,1
+p4,5.768581,mcf,2133000,1
+p4,5.713690,mcf,2133000,1
+p4,5.231802,cpuload_all_100_4096,1733000,0
+p4,5.808753,mcf,2133000,1
+p4,5.076463,mcf,1733000,1
+p4,5.243132,mcf,1733000,1
+p4,5.146095,mcf,1733000,1
+p4,4.405154,mcf,1199000,1
+p4,4.398807,mcf,1199000,1
+p4,4.369572,mcf,1199000,1
+p4,6.278526,milc,2533000,0
+p4,6.283425,milc,2533000,0
+p4,6.299458,milc,2533000,0
+p4,4.583875,cpuload_all_100_4096,1199000,0
+p4,5.679414,milc,2133000,0
+p4,5.694951,milc,2133000,0
+p4,5.682091,milc,2133000,0
+p4,5.048611,milc,1733000,0
+p4,5.060528,milc,1733000,0
+p4,5.050799,milc,1733000,0
+p4,4.482875,milc,1199000,0
+p4,4.491892,milc,1199000,0
+p4,4.355219,milc,1199000,0
+p4,6.284047,milc,2533000,1
+p4,4.532265,cpuload_all_100_4096,1199000,0
+p4,6.279448,milc,2533000,1
+p4,6.283909,milc,2533000,1
+p4,5.695706,milc,2133000,1
+p4,5.697207,milc,2133000,1
+p4,5.672722,milc,2133000,1
+p4,5.042464,milc,1733000,1
+p4,5.044358,milc,1733000,1
+p4,5.042400,milc,1733000,1
+p4,4.353512,milc,1199000,1
+p4,4.362203,milc,1199000,1
+p4,4.591274,cpuload_all_100_4096,1199000,0
+p4,4.276643,milc,1199000,1
+p4,6.328070,namd,2533000,0
+p4,6.328713,namd,2533000,0
+p4,6.281396,namd,2533000,0
+p4,5.604077,namd,2133000,0
+p4,5.612117,namd,2133000,0
+p4,5.597226,namd,2133000,0
+p4,4.978129,namd,1733000,0
+p4,5.126670,namd,1733000,0
+p4,4.955994,namd,1733000,0
+p4,6.616214,cpuload_all_100_4096,2533000,1
+p4,4.447682,namd,1199000,0
+p4,4.456403,namd,1199000,0
+p4,4.459368,namd,1199000,0
+p4,6.257101,namd,2533000,1
+p4,6.289042,namd,2533000,1
+p4,6.358662,namd,2533000,1
+p4,5.434035,namd,2133000,1
+p4,5.625104,namd,2133000,1
+p4,5.615994,namd,2133000,1
+p4,4.970061,namd,1733000,1
+p4,6.677746,cpuload_all_100_4096,2533000,1
+p4,4.944520,namd,1733000,1
+p4,4.985106,namd,1733000,1
+p4,4.345933,namd,1199000,1
+p4,4.376777,namd,1199000,1
+p4,4.354096,namd,1199000,1
+p4,7.353179,omnetpp,2533000,0
+p4,7.444547,omnetpp,2533000,0
+p4,7.426832,omnetpp,2533000,0
+p4,6.202114,omnetpp,2133000,0
+p4,6.233553,omnetpp,2133000,0
+p4,6.593944,cpuload_all_100_4096,2533000,1
+p4,6.179165,omnetpp,2133000,0
+p4,5.426341,omnetpp,1733000,0
+p4,5.341965,omnetpp,1733000,0
+p4,5.381215,omnetpp,1733000,0
+p4,4.649222,omnetpp,1199000,0
+p4,4.655228,omnetpp,1199000,0
+p4,4.642003,omnetpp,1199000,0
+p4,7.324473,omnetpp,2533000,1
+p4,7.335337,omnetpp,2533000,1
+p4,7.317964,omnetpp,2533000,1
+p4,5.968076,cpuload_all_100_4096,2133000,1
+p4,6.225114,omnetpp,2133000,1
+p4,6.149469,omnetpp,2133000,1
+p4,6.164959,omnetpp,2133000,1
+p4,5.384409,omnetpp,1733000,1
+p4,5.384483,omnetpp,1733000,1
+p4,5.397740,omnetpp,1733000,1
+p4,4.534558,omnetpp,1199000,1
+p4,4.515205,omnetpp,1199000,1
+p4,4.520829,omnetpp,1199000,1
+p4,6.507843,povray,2533000,0
+p4,5.918805,cpuload_all_100_4096,2133000,1
+p4,6.216203,povray,2533000,0
+p4,5.979234,povray,2533000,0
+p4,5.161980,povray,2133000,0
+p4,5.493625,povray,2133000,0
+p4,5.508008,povray,2133000,0
+p4,4.835562,povray,1733000,0
+p4,4.770986,povray,1733000,0
+p4,4.795074,povray,1733000,0
+p4,4.393681,povray,1199000,0
+p4,4.242010,povray,1199000,0
+p4,5.961939,cpuload_all_100_4096,2133000,1
+p4,4.419948,povray,1199000,0
+p4,6.049657,povray,2533000,1
+p4,6.123948,povray,2533000,1
+p4,6.067450,povray,2533000,1
+p4,5.135941,povray,2133000,1
+p4,5.513549,povray,2133000,1
+p4,5.546679,povray,2133000,1
+p4,4.759201,povray,1733000,1
+p4,4.791224,povray,1733000,1
+p4,4.804410,povray,1733000,1
+p4,5.246013,cpuload_all_100_4096,1733000,1
+p4,4.155177,povray,1199000,1
+p4,4.312688,povray,1199000,1
+p4,4.144392,povray,1199000,1
+p4,7.072196,sjeng,2533000,0
+p4,7.083793,sjeng,2533000,0
+p4,7.099202,sjeng,2533000,0
+p4,6.157890,sjeng,2133000,0
+p4,6.134015,sjeng,2133000,0
+p4,6.160028,sjeng,2133000,0
+p4,5.435968,sjeng,1733000,0
+p4,5.234939,cpuload_all_100_4096,1733000,1
+p4,5.419125,sjeng,1733000,0
+p4,5.446379,sjeng,1733000,0
+p4,4.661313,sjeng,1199000,0
+p4,4.664976,sjeng,1199000,0
+p4,4.663005,sjeng,1199000,0
+p4,7.064882,sjeng,2533000,1
+p4,7.061256,sjeng,2533000,1
+p4,7.096101,sjeng,2533000,1
+p4,6.153953,sjeng,2133000,1
+p4,6.141476,sjeng,2133000,1
+p4,5.230351,cpuload_all_100_4096,1733000,1
+p4,6.161822,sjeng,2133000,1
+p4,5.436706,sjeng,1733000,1
+p4,5.410934,sjeng,1733000,1
+p4,5.446584,sjeng,1733000,1
+p4,4.559911,sjeng,1199000,1
+p4,4.550878,sjeng,1199000,1
+p4,4.562426,sjeng,1199000,1
+p4,5.678277,soplex,2533000,0
+p4,5.629431,soplex,2533000,0
+p4,5.619230,soplex,2533000,0
+p4,4.400576,cpuload_all_100_4096,1199000,1
+p4,5.048126,soplex,2133000,0
+p4,5.095932,soplex,2133000,0
+p4,5.136258,soplex,2133000,0
+p4,4.764171,soplex,1733000,0
+p4,4.791074,soplex,1733000,0
+p4,4.520010,soplex,1733000,0
+p4,4.096222,soplex,1199000,0
+p4,4.247911,soplex,1199000,0
+p4,4.223378,soplex,1199000,0
+p4,5.535761,soplex,2533000,1
+p4,4.570072,cpuload_all_100_4096,1199000,1
+p4,5.553541,soplex,2533000,1
+p4,5.551742,soplex,2533000,1
+p4,5.419561,soplex,2133000,1
+p4,5.047315,soplex,2133000,1
+p4,5.078560,soplex,2133000,1
+p4,4.482598,soplex,1733000,1
+p4,4.470727,soplex,1733000,1
+p4,4.780665,soplex,1733000,1
+p4,4.144298,soplex,1199000,1
+p4,4.138032,soplex,1199000,1
+p4,4.507222,cpuload_all_100_4096,1199000,1
+p4,3.953183,soplex,1199000,1
+p4,5.987617,sphinx3,2533000,0
+p4,6.297827,sphinx3,2533000,0
+p4,6.342201,sphinx3,2533000,0
+p4,5.935232,sphinx3,2133000,0
+p4,5.706360,sphinx3,2133000,0
+p4,5.849637,sphinx3,2133000,0
+p4,5.158341,sphinx3,1733000,0
+p4,5.075216,sphinx3,1733000,0
+p4,5.056603,sphinx3,1733000,0
+p4,7.675165,gamess,2533000,0
+p4,4.428349,sphinx3,1199000,0
+p4,4.293275,sphinx3,1199000,0
+p4,4.301521,sphinx3,1199000,0
+p4,6.024217,sphinx3,2533000,1
+p4,6.285107,sphinx3,2533000,1
+p4,6.256052,sphinx3,2533000,1
+p4,5.538870,sphinx3,2133000,1
+p4,5.531720,sphinx3,2133000,1
+p4,5.549406,sphinx3,2133000,1
+p4,4.839155,sphinx3,1733000,1
+p4,7.649106,gamess,2533000,0
+p4,5.041027,sphinx3,1733000,1
+p4,5.056404,sphinx3,1733000,1
+p4,4.317517,sphinx3,1199000,1
+p4,4.321876,sphinx3,1199000,1
+p4,4.324503,sphinx3,1199000,1
+p4,6.684187,zeusmp,2533000,0
+p4,6.565585,zeusmp,2533000,0
+p4,6.568193,zeusmp,2533000,0
+p4,5.913677,zeusmp,2133000,0
+p4,5.907794,zeusmp,2133000,0
+p4,7.653330,gamess,2533000,0
+p4,5.915095,zeusmp,2133000,0
+p4,5.237411,zeusmp,1733000,0
+p4,5.311893,zeusmp,1733000,0
+p4,5.241093,zeusmp,1733000,0
+p4,4.611422,zeusmp,1199000,0
+p4,4.620500,zeusmp,1199000,0
+p4,4.663002,zeusmp,1199000,0
+p4,6.730363,zeusmp,2533000,1
+p4,6.682489,zeusmp,2533000,1
+p4,6.632157,zeusmp,2533000,1
+p4,6.416054,gamess,2133000,0
+p4,5.839733,zeusmp,2133000,1
+p4,5.919078,zeusmp,2133000,1
+p4,5.928586,zeusmp,2133000,1
+p4,5.305804,zeusmp,1733000,1
+p4,5.246087,zeusmp,1733000,1
+p4,5.320630,zeusmp,1733000,1
+p4,4.501698,zeusmp,1199000,1
+p4,4.501916,zeusmp,1199000,1
+p4,4.504342,zeusmp,1199000,1
+p4,6.932227,bzip2,2533000,0
+p4,6.381062,gamess,2133000,0
+p4,7.040825,bzip2,2533000,0
+p4,6.969417,bzip2,2533000,0
+p4,6.071051,bzip2,2133000,0
+p4,6.122154,bzip2,2133000,0
+p4,6.088062,bzip2,2133000,0
+p4,5.417383,bzip2,1733000,0
+p4,5.416463,bzip2,1733000,0
+p4,5.356387,bzip2,1733000,0
+p4,4.619486,bzip2,1199000,0
+p4,4.622874,bzip2,1199000,0
+p4,6.382347,gamess,2133000,0
+p4,4.613053,bzip2,1199000,0
+p4,6.926196,bzip2,2533000,1
+p4,6.935736,bzip2,2533000,1
+p4,6.951268,bzip2,2533000,1
+p4,6.057682,bzip2,2133000,1
+p4,6.046977,bzip2,2133000,1
+p4,5.977601,bzip2,2133000,1
+p4,5.411342,bzip2,1733000,1
+p4,5.409554,bzip2,1733000,1
+p4,5.378340,bzip2,1733000,1
+p4,5.487169,gamess,1733000,0
+p4,4.550301,bzip2,1199000,1
+p4,4.523131,bzip2,1199000,1
+p4,4.572943,bzip2,1199000,1
+p4,6.715955,cactusADM,2533000,0
+p4,6.662211,cactusADM,2533000,0
+p4,6.645398,cactusADM,2533000,0
+p4,5.957361,cactusADM,2133000,0
+p4,5.848739,cactusADM,2133000,0
+p4,5.842896,cactusADM,2133000,0
+p4,5.215291,cactusADM,1733000,0
+p4,5.483802,gamess,1733000,0
+p4,5.276300,cactusADM,1733000,0
+p4,5.192915,cactusADM,1733000,0
+p4,4.596675,cactusADM,1199000,0
+p4,4.526724,cactusADM,1199000,0
+p4,4.573403,cactusADM,1199000,0
+p4,6.537054,cactusADM,2533000,1
+p4,6.494996,cactusADM,2533000,1
+p4,6.564629,cactusADM,2533000,1
+p4,5.877824,cactusADM,2133000,1
+p4,5.836525,cactusADM,2133000,1
+p4,5.488043,gamess,1733000,0
+p4,5.960100,cactusADM,2133000,1
+p4,5.329269,cactusADM,1733000,1
+p4,5.316056,cactusADM,1733000,1
+p4,5.283248,cactusADM,1733000,1
+p4,4.492271,cactusADM,1199000,1
+p4,4.470310,cactusADM,1199000,1
+p4,4.496498,cactusADM,1199000,1
+p4,0.808382,cpuload_all_0_4096,2533000,0
+p4,0.718475,cpuload_all_0_4096,2533000,0
+p4,0.690418,cpuload_all_0_4096,2533000,0
+p4,4.681696,gamess,1199000,0
+p4,0.798335,cpuload_all_0_4096,2133000,0
+p4,0.795754,cpuload_all_0_4096,2133000,0
+p4,0.902695,cpuload_all_0_4096,2133000,0
+p4,0.919984,cpuload_all_0_4096,1733000,0
+p4,0.981480,cpuload_all_0_4096,1733000,0
+p4,1.065947,cpuload_all_0_4096,1733000,0
+p4,0.926084,cpuload_all_0_4096,1199000,0
+p4,0.784465,cpuload_all_0_4096,1199000,0
+p4,0.762855,cpuload_all_0_4096,1199000,0
+p4,0.668710,cpuload_all_0_4096,2533000,1
+p4,4.686200,gamess,1199000,0
+p4,0.719888,cpuload_all_0_4096,2533000,1
+p4,0.726355,cpuload_all_0_4096,2533000,1
+p4,0.719248,cpuload_all_0_4096,2133000,1
+p4,0.929334,cpuload_all_0_4096,2133000,1
+p4,0.738890,cpuload_all_0_4096,2133000,1
+p4,0.810881,cpuload_all_0_4096,1733000,1
+p4,1.038396,cpuload_all_0_4096,1733000,1
+p4,0.951603,cpuload_all_0_4096,1733000,1
+p4,0.668930,cpuload_all_0_4096,1199000,1
+p4,0.635359,cpuload_all_0_4096,1199000,1
+p4,4.679015,gamess,1199000,0
+p4,0.672245,cpuload_all_0_4096,1199000,1
+p4,2.435383,cpuload_all_25_4096,2533000,0
+p4,2.487107,cpuload_all_25_4096,2533000,0
+p4,2.435483,cpuload_all_25_4096,2533000,0
+p4,2.265002,cpuload_all_25_4096,2133000,0
+p4,2.276173,cpuload_all_25_4096,2133000,0
+p4,2.261395,cpuload_all_25_4096,2133000,0
+p4,2.012549,cpuload_all_25_4096,1733000,0
+p4,2.036047,cpuload_all_25_4096,1733000,0
+p4,2.047333,cpuload_all_25_4096,1733000,0
+p4,7.638675,gamess,2533000,1
+p4,1.945207,cpuload_all_25_4096,1199000,0
+p4,1.906675,cpuload_all_25_4096,1199000,0
+p4,1.910328,cpuload_all_25_4096,1199000,0
+p4,2.454366,cpuload_all_25_4096,2533000,1
+p4,2.375762,cpuload_all_25_4096,2533000,1
+p4,2.385910,cpuload_all_25_4096,2533000,1
+p4,2.227628,cpuload_all_25_4096,2133000,1
+p4,2.209548,cpuload_all_25_4096,2133000,1
+p4,2.204832,cpuload_all_25_4096,2133000,1
+p4,2.065747,cpuload_all_25_4096,1733000,1
+p4,7.688758,gamess,2533000,1
+p4,2.057361,cpuload_all_25_4096,1733000,1
+p4,2.091303,cpuload_all_25_4096,1733000,1
+p4,1.926715,cpuload_all_25_4096,1199000,1
+p4,1.902055,cpuload_all_25_4096,1199000,1
+p4,1.897971,cpuload_all_25_4096,1199000,1
+p4,6.600410,cpuload_all_50_4096,2533000,0
+p4,6.617251,cpuload_all_50_4096,2533000,0
+p4,6.598405,cpuload_all_50_4096,2533000,0
+p4,5.975870,cpuload_all_50_4096,2133000,0
+p4,5.970302,cpuload_all_50_4096,2133000,0
+p4,7.653580,gamess,2533000,1
+p4,5.979304,cpuload_all_50_4096,2133000,0
+p4,5.300876,cpuload_all_50_4096,1733000,0
+p4,5.308435,cpuload_all_50_4096,1733000,0
+p4,5.269754,cpuload_all_50_4096,1733000,0
+p4,4.566415,cpuload_all_50_4096,1199000,0
+p4,4.542570,cpuload_all_50_4096,1199000,0
+p4,4.532158,cpuload_all_50_4096,1199000,0
+p4,6.594934,cpuload_all_50_4096,2533000,1
+p4,6.620903,cpuload_all_50_4096,2533000,1
+p4,6.605435,cpuload_all_50_4096,2533000,1
+p4,6.389662,gamess,2133000,1
+p4,5.661220,cpuload_all_50_4096,2133000,1
+p4,5.887239,cpuload_all_50_4096,2133000,1
+p4,5.409570,cpuload_all_50_4096,2133000,1
+p4,5.310061,cpuload_all_50_4096,1733000,1
+p4,5.176166,cpuload_all_50_4096,1733000,1
+p4,5.295793,cpuload_all_50_4096,1733000,1
+p4,4.456051,cpuload_all_50_4096,1199000,1
+p4,4.481859,cpuload_all_50_4096,1199000,1
+p4,4.443863,cpuload_all_50_4096,1199000,1
+p4,6.630145,cpuload_all_75_4096,2533000,0
+p4,6.379528,gamess,2133000,1
+p4,6.614971,cpuload_all_75_4096,2533000,0
+p4,6.605332,cpuload_all_75_4096,2533000,0
+p4,5.882117,cpuload_all_75_4096,2133000,0
+p4,5.890066,cpuload_all_75_4096,2133000,0
+p4,5.890799,cpuload_all_75_4096,2133000,0
+p4,5.300221,cpuload_all_75_4096,1733000,0
+p4,5.304513,cpuload_all_75_4096,1733000,0
+p4,5.264865,cpuload_all_75_4096,1733000,0
+p4,4.570026,cpuload_all_75_4096,1199000,0
+p4,4.539009,cpuload_all_75_4096,1199000,0
+p4,6.415182,gamess,2133000,1
+p4,4.537371,cpuload_all_75_4096,1199000,0
+p4,6.586238,cpuload_all_75_4096,2533000,1
+p4,6.577694,cpuload_all_75_4096,2533000,1
+p4,6.582277,cpuload_all_75_4096,2533000,1
+p4,5.953071,cpuload_all_75_4096,2133000,1
+p4,5.954111,cpuload_all_75_4096,2133000,1
+p4,5.939314,cpuload_all_75_4096,2133000,1
+p4,5.236452,cpuload_all_75_4096,1733000,1
+p4,5.237012,cpuload_all_75_4096,1733000,1
+p4,5.225164,cpuload_all_75_4096,1733000,1
+p4,5.482383,gamess,1733000,1
+p4,4.424184,cpuload_all_75_4096,1199000,1
+p4,4.435193,cpuload_all_75_4096,1199000,1
+p4,4.479426,cpuload_all_75_4096,1199000,1
+p4,6.615388,cpuload_all_100_4096,2533000,0
+p4,6.662647,cpuload_all_100_4096,2533000,0
+p4,6.605566,cpuload_all_100_4096,2533000,0
+p4,5.913816,cpuload_all_100_4096,2133000,0
+p4,5.933984,cpuload_all_100_4096,2133000,0
+p4,5.993996,cpuload_all_100_4096,2133000,0
+p4,5.239529,cpuload_all_100_4096,1733000,0
+p4,5.488363,gamess,1733000,1
+p4,5.264930,cpuload_all_100_4096,1733000,0
+p4,5.255482,cpuload_all_100_4096,1733000,0
+p4,4.527757,cpuload_all_100_4096,1199000,0
+p4,4.550100,cpuload_all_100_4096,1199000,0
+p4,4.539981,cpuload_all_100_4096,1199000,0
+p4,6.632827,cpuload_all_100_4096,2533000,1
+p4,6.596363,cpuload_all_100_4096,2533000,1
+p4,6.768894,cpuload_all_100_4096,2533000,1
+p4,5.967261,cpuload_all_100_4096,2133000,1
+p4,5.978302,cpuload_all_100_4096,2133000,1
+p4,5.484171,gamess,1733000,1
+p4,5.980969,cpuload_all_100_4096,2133000,1
+p4,5.242790,cpuload_all_100_4096,1733000,1
+p4,5.249081,cpuload_all_100_4096,1733000,1
+p4,5.250843,cpuload_all_100_4096,1733000,1
+p4,4.432119,cpuload_all_100_4096,1199000,1
+p4,4.440403,cpuload_all_100_4096,1199000,1
+p4,4.444903,cpuload_all_100_4096,1199000,1
+p4,7.651033,gamess,2533000,0
+p4,7.677123,gamess,2533000,0
+p4,7.693445,gamess,2533000,0
+p4,4.575291,gamess,1199000,1
+p4,6.437191,gamess,2133000,0
+p4,6.415197,gamess,2133000,0
+p4,6.412940,gamess,2133000,0
+p4,5.523194,gamess,1733000,0
+p4,5.491976,gamess,1733000,0
+p4,5.495048,gamess,1733000,0
+p4,4.692436,gamess,1199000,0
+p4,4.683715,gamess,1199000,0
+p4,4.688339,gamess,1199000,0
+p4,7.686117,gamess,2533000,1
+p4,4.574260,gamess,1199000,1
+p4,7.717528,gamess,2533000,1
+p4,7.670270,gamess,2533000,1
+p4,6.429282,gamess,2133000,1
+p4,6.394869,gamess,2133000,1
+p4,6.404158,gamess,2133000,1
+p4,5.506846,gamess,1733000,1
+p4,5.500316,gamess,1733000,1
+p4,5.497283,gamess,1733000,1
+p4,4.574190,gamess,1199000,1
+p4,4.575323,gamess,1199000,1
+p4,4.575546,gamess,1199000,1
+p4,4.585933,gamess,1199000,1
+p4,6.933687,gcc,2533000,0
+p4,6.937632,gcc,2533000,0
+p4,6.924873,gcc,2533000,0
+p4,6.158107,gcc,2133000,0
+p4,6.154083,gcc,2133000,0
+p4,6.146031,gcc,2133000,0
+p4,5.444952,gcc,1733000,0
+p4,5.446853,gcc,1733000,0
+p4,5.448285,gcc,1733000,0
+p4,6.900179,gcc,2533000,0
+p4,4.692633,gcc,1199000,0
+p4,4.693513,gcc,1199000,0
+p4,4.693861,gcc,1199000,0
+p4,6.919854,gcc,2533000,1
+p4,6.933586,gcc,2533000,1
+p4,6.928654,gcc,2533000,1
+p4,6.149654,gcc,2133000,1
+p4,6.156643,gcc,2133000,1
+p4,6.150389,gcc,2133000,1
+p4,5.450176,gcc,1733000,1
+p4,6.915304,gcc,2533000,0
+p4,5.450391,gcc,1733000,1
+p4,5.450106,gcc,1733000,1
+p4,4.576881,gcc,1199000,1
+p4,4.577246,gcc,1199000,1
+p4,4.580686,gcc,1199000,1
+p4,7.108439,gobmk,2533000,0
+p4,7.098793,gobmk,2533000,0
+p4,7.109801,gobmk,2533000,0
+p4,6.174264,gobmk,2133000,0
+p4,6.163120,gobmk,2133000,0
+p4,6.904334,gcc,2533000,0
+p4,6.163558,gobmk,2133000,0
+p4,5.452096,gobmk,1733000,0
+p4,5.431492,gobmk,1733000,0
+p4,5.437890,gobmk,1733000,0
+p4,4.667478,gobmk,1199000,0
+p4,4.673065,gobmk,1199000,0
+p4,4.667444,gobmk,1199000,0
+p4,7.068906,gobmk,2533000,1
+p4,7.050989,gobmk,2533000,1
+p4,7.106049,gobmk,2533000,1
+p4,6.136102,gcc,2133000,0
+p4,6.146737,gobmk,2133000,1
+p4,6.160695,gobmk,2133000,1
+p4,6.153433,gobmk,2133000,1
+p4,5.420574,gobmk,1733000,1
+p4,5.417749,gobmk,1733000,1
+p4,5.433114,gobmk,1733000,1
+p4,4.559952,gobmk,1199000,1
+p4,4.570694,gobmk,1199000,1
+p4,4.556823,gobmk,1199000,1
+p4,6.876225,gromacs,2533000,0
+p4,6.143429,gcc,2133000,0
+p4,6.888071,gromacs,2533000,0
+p4,6.875610,gromacs,2533000,0
+p4,6.120187,gromacs,2133000,0
+p4,6.115914,gromacs,2133000,0
+p4,6.108161,gromacs,2133000,0
+p4,5.407081,gromacs,1733000,0
+p4,5.417466,gromacs,1733000,0
+p4,5.412190,gromacs,1733000,0
+p4,4.678179,gromacs,1199000,0
+p4,4.665698,gromacs,1199000,0
+p4,6.152260,gcc,2133000,0
+p4,4.679363,gromacs,1199000,0
+p4,6.858111,gromacs,2533000,1
+p4,6.882665,gromacs,2533000,1
+p4,6.896874,gromacs,2533000,1
+p4,6.092226,gromacs,2133000,1
+p4,6.092612,gromacs,2133000,1
+p4,6.099953,gromacs,2133000,1
+p4,5.409149,gromacs,1733000,1
+p4,5.419310,gromacs,1733000,1
+p4,5.422466,gromacs,1733000,1
+p4,5.436888,gcc,1733000,0
+p4,4.560824,gromacs,1199000,1
+p4,4.565534,gromacs,1199000,1
+p4,4.566869,gromacs,1199000,1
+p4,7.186179,h264ref,2533000,0
+p4,7.203286,h264ref,2533000,0
+p4,7.173723,h264ref,2533000,0
+p4,6.210697,h264ref,2133000,0
+p4,6.231780,h264ref,2133000,0
+p4,6.191562,h264ref,2133000,0
+p4,5.434073,h264ref,1733000,0
+p4,5.444360,gcc,1733000,0
+p4,5.420042,h264ref,1733000,0
+p4,5.446474,h264ref,1733000,0
+p4,4.674702,h264ref,1199000,0
+p4,4.664659,h264ref,1199000,0
+p4,4.671584,h264ref,1199000,0
+p4,7.163435,h264ref,2533000,1
+p4,7.209862,h264ref,2533000,1
+p4,7.176689,h264ref,2533000,1
+p4,6.182780,h264ref,2133000,1
+p4,6.194609,h264ref,2133000,1
+p4,5.440626,gcc,1733000,0
+p4,6.210331,h264ref,2133000,1
+p4,5.439708,h264ref,1733000,1
+p4,5.442332,h264ref,1733000,1
+p4,5.441445,h264ref,1733000,1
+p4,4.547316,h264ref,1199000,1
+p4,4.553666,h264ref,1199000,1
+p4,4.558720,h264ref,1199000,1
+p4,7.546996,hmmer,2533000,0
+p4,7.540406,hmmer,2533000,0
+p4,7.498898,hmmer,2533000,0
+p4,4.699142,gcc,1199000,0
+p4,6.234446,hmmer,2133000,0
+p4,6.264932,hmmer,2133000,0
+p4,6.275279,hmmer,2133000,0
+p4,5.408042,hmmer,1733000,0
+p4,5.401333,hmmer,1733000,0
+p4,5.406924,hmmer,1733000,0
+p4,4.655359,hmmer,1199000,0
+p4,4.636597,hmmer,1199000,0
+p4,4.645435,hmmer,1199000,0
+p4,7.460590,hmmer,2533000,1
+p4,4.697355,gcc,1199000,0
+p4,7.440109,hmmer,2533000,1
+p4,7.470484,hmmer,2533000,1
+p4,6.252856,hmmer,2133000,1
+p4,6.229130,hmmer,2133000,1
+p4,6.218684,hmmer,2133000,1
+p4,5.420309,hmmer,1733000,1
+p4,5.397467,hmmer,1733000,1
+p4,5.413232,hmmer,1733000,1
+p4,4.643107,hmmer,1199000,1
+p4,4.629884,hmmer,1199000,1
+p4,4.693183,gcc,1199000,0
+p4,4.619102,hmmer,1199000,1
+p4,6.649203,lbm,2533000,0
+p4,6.667623,lbm,2533000,0
+p4,6.694410,lbm,2533000,0
+p4,5.958123,lbm,2133000,0
+p4,5.948485,lbm,2133000,0
+p4,5.962019,lbm,2133000,0
+p4,5.273506,lbm,1733000,0
+p4,5.250581,lbm,1733000,0
+p4,5.329853,lbm,1733000,0
+p4,6.933539,gcc,2533000,1
+p4,4.589989,lbm,1199000,0
+p4,4.590018,lbm,1199000,0
+p4,4.612087,lbm,1199000,0
+p4,6.640264,lbm,2533000,1
+p4,6.664383,lbm,2533000,1
+p4,6.667295,lbm,2533000,1
+p4,5.979707,lbm,2133000,1
+p4,6.011726,lbm,2133000,1
+p4,5.951827,lbm,2133000,1
+p4,5.321710,lbm,1733000,1
+p4,6.922470,gcc,2533000,1
+p4,5.279322,lbm,1733000,1
+p4,5.274505,lbm,1733000,1
+p4,4.601808,lbm,1199000,1
+p4,4.617246,lbm,1199000,1
+p4,4.586092,lbm,1199000,1
+p4,6.846004,leslie3d,2533000,0
+p4,6.835155,leslie3d,2533000,0
+p4,6.818855,leslie3d,2533000,0
+p4,6.031932,leslie3d,2133000,0
+p4,6.088218,leslie3d,2133000,0
+p4,6.915420,gcc,2533000,1
+p4,6.089241,leslie3d,2133000,0
+p4,5.391464,leslie3d,1733000,0
+p4,5.378344,leslie3d,1733000,0
+p4,5.374468,leslie3d,1733000,0
+p4,4.649222,leslie3d,1199000,0
+p4,4.652356,leslie3d,1199000,0
+p4,4.657157,leslie3d,1199000,0
+p4,6.844218,leslie3d,2533000,1
+p4,6.840421,leslie3d,2533000,1
+p4,6.853872,leslie3d,2533000,1
+p4,6.148004,gcc,2133000,1
+p4,6.085356,leslie3d,2133000,1
+p4,6.051818,leslie3d,2133000,1
+p4,6.070401,leslie3d,2133000,1
+p4,5.366448,leslie3d,1733000,1
+p4,5.351370,leslie3d,1733000,1
+p4,5.374671,leslie3d,1733000,1
+p4,4.646351,leslie3d,1199000,1
+p4,4.643123,leslie3d,1199000,1
+p4,4.643900,leslie3d,1199000,1
+p4,6.275310,mcf,2533000,0
+p4,6.138068,gcc,2133000,1
+p4,6.517668,mcf,2533000,0
+p4,6.386587,mcf,2533000,0
+p4,5.808581,mcf,2133000,0
+p4,5.856280,mcf,2133000,0
+p4,5.803464,mcf,2133000,0
+p4,5.166066,mcf,1733000,0
+p4,5.156548,mcf,1733000,0
+p4,5.130370,mcf,1733000,0
+p4,4.496511,mcf,1199000,0
+p4,4.519401,mcf,1199000,0
+p4,6.131237,gcc,2133000,1
+p4,4.415283,mcf,1199000,0
+p4,6.347916,mcf,2533000,1
+p4,6.477164,mcf,2533000,1
+p4,6.491654,mcf,2533000,1
+p4,5.823900,mcf,2133000,1
+p4,5.794994,mcf,2133000,1
+p4,5.686443,mcf,2133000,1
+p4,5.097893,mcf,1733000,1
+p4,5.105608,mcf,1733000,1
+p4,5.181628,mcf,1733000,1
+p4,5.433977,gcc,1733000,1
+p4,4.482938,mcf,1199000,1
+p4,4.526396,mcf,1199000,1
+p4,4.538470,mcf,1199000,1
+p4,6.330962,milc,2533000,0
+p4,6.356455,milc,2533000,0
+p4,6.234789,milc,2533000,0
+p4,5.654394,milc,2133000,0
+p4,5.675061,milc,2133000,0
+p4,5.775766,milc,2133000,0
+p4,5.150441,milc,1733000,0
+p4,5.427914,gcc,1733000,1
+p4,5.117653,milc,1733000,0
+p4,5.107709,milc,1733000,0
+p4,4.457532,milc,1199000,0
+p4,4.381596,milc,1199000,0
+p4,4.445456,milc,1199000,0
+p4,6.464946,milc,2533000,1
+p4,6.242834,milc,2533000,1
+p4,6.244333,milc,2533000,1
+p4,5.644220,milc,2133000,1
+p4,5.703363,milc,2133000,1
+p4,5.428239,gcc,1733000,1
+p4,5.719158,milc,2133000,1
+p4,5.147139,milc,1733000,1
+p4,5.111335,milc,1733000,1
+p4,5.108159,milc,1733000,1
+p4,4.440487,milc,1199000,1
+p4,4.467720,milc,1199000,1
+p4,4.436064,milc,1199000,1
+p4,6.319860,namd,2533000,0
+p4,6.227753,namd,2533000,0
+p4,6.157382,namd,2533000,0
+p4,4.688173,gcc,1199000,1
+p4,5.585294,namd,2133000,0
+p4,5.507277,namd,2133000,0
+p4,5.608260,namd,2133000,0
+p4,5.025922,namd,1733000,0
+p4,4.977062,namd,1733000,0
+p4,5.078939,namd,1733000,0
+p4,4.475552,namd,1199000,0
+p4,4.493037,namd,1199000,0
+p4,4.450997,namd,1199000,0
+p4,6.229536,namd,2533000,1
+p4,4.690889,gcc,1199000,1
+p4,6.323169,namd,2533000,1
+p4,6.322738,namd,2533000,1
+p4,5.373170,namd,2133000,1
+p4,5.547226,namd,2133000,1
+p4,5.591829,namd,2133000,1
+p4,5.077059,namd,1733000,1
+p4,5.020025,namd,1733000,1
+p4,5.044377,namd,1733000,1
+p4,4.501393,namd,1199000,1
+p4,4.435284,namd,1199000,1
+p4,4.692872,gcc,1199000,1
+p4,4.459241,namd,1199000,1
+p4,7.359229,omnetpp,2533000,0
+p4,7.337800,omnetpp,2533000,0
+p4,7.284838,omnetpp,2533000,0
+p4,6.142880,omnetpp,2133000,0
+p4,6.190595,omnetpp,2133000,0
+p4,6.142180,omnetpp,2133000,0
+p4,5.355007,omnetpp,1733000,0
+p4,5.391426,omnetpp,1733000,0
+p4,5.371661,omnetpp,1733000,0
+p4,7.013496,gobmk,2533000,0
+p4,4.626523,omnetpp,1199000,0
+p4,4.626970,omnetpp,1199000,0
+p4,4.644856,omnetpp,1199000,0
+p4,7.254007,omnetpp,2533000,1
+p4,7.316138,omnetpp,2533000,1
+p4,7.202869,omnetpp,2533000,1
+p4,6.171895,omnetpp,2133000,1
+p4,6.160583,omnetpp,2133000,1
+p4,6.178671,omnetpp,2133000,1
+p4,5.347982,omnetpp,1733000,1
+p4,7.007518,gobmk,2533000,0
+p4,5.354659,omnetpp,1733000,1
+p4,5.385090,omnetpp,1733000,1
+p4,4.634941,omnetpp,1199000,1
+p4,4.612512,omnetpp,1199000,1
+p4,4.602267,omnetpp,1199000,1
+p4,6.143612,povray,2533000,0
+p4,6.290370,povray,2533000,0
+p4,6.412159,povray,2533000,0
+p4,5.162250,povray,2133000,0
+p4,5.190802,povray,2133000,0
+p4,6.998986,gobmk,2533000,0
+p4,5.452812,povray,2133000,0
+p4,4.756379,povray,1733000,0
+p4,4.913973,povray,1733000,0
+p4,4.742383,povray,1733000,0
+p4,4.208942,povray,1199000,0
+p4,4.290439,povray,1199000,0
+p4,4.375428,povray,1199000,0
+p4,5.989684,povray,2533000,1
+p4,6.134598,povray,2533000,1
+p4,6.102097,povray,2533000,1
+p4,6.104343,gobmk,2133000,0
+p4,5.451367,povray,2133000,1
+p4,5.376807,povray,2133000,1
+p4,5.293506,povray,2133000,1
+p4,4.824520,povray,1733000,1
+p4,4.732097,povray,1733000,1
+p4,4.766324,povray,1733000,1
+p4,4.392495,povray,1199000,1
+p4,4.214679,povray,1199000,1
+p4,4.295827,povray,1199000,1
+p4,6.987937,sjeng,2533000,0
+p4,6.089806,gobmk,2133000,0
+p4,7.009017,sjeng,2533000,0
+p4,6.992120,sjeng,2533000,0
+p4,6.142251,sjeng,2133000,0
+p4,6.111843,sjeng,2133000,0
+p4,6.118720,sjeng,2133000,0
+p4,5.401430,sjeng,1733000,0
+p4,5.395206,sjeng,1733000,0
+p4,5.398712,sjeng,1733000,0
+p4,4.645833,sjeng,1199000,0
+p4,4.650018,sjeng,1199000,0
+p4,6.130915,gobmk,2133000,0
+p4,4.649399,sjeng,1199000,0
+p4,7.023184,sjeng,2533000,1
+p4,7.014124,sjeng,2533000,1
+p4,7.017467,sjeng,2533000,1
+p4,6.109512,sjeng,2133000,1
+p4,6.089261,sjeng,2133000,1
+p4,6.123548,sjeng,2133000,1
+p4,5.404254,sjeng,1733000,1
+p4,5.407768,sjeng,1733000,1
+p4,5.399689,sjeng,1733000,1
+p4,5.403693,gobmk,1733000,0
+p4,4.651387,sjeng,1199000,1
+p4,4.646490,sjeng,1199000,1
+p4,4.654394,sjeng,1199000,1
+p4,5.620064,soplex,2533000,0
+p4,5.753549,soplex,2533000,0
+p4,5.500358,soplex,2533000,0
+p4,5.105691,soplex,2133000,0
+p4,5.287307,soplex,2133000,0
+p4,5.405788,soplex,2133000,0
+p4,4.726458,soplex,1733000,0
+p4,5.399249,gobmk,1733000,0
+p4,4.719132,soplex,1733000,0
+p4,4.722461,soplex,1733000,0
+p4,4.234512,soplex,1199000,0
+p4,4.179534,soplex,1199000,0
+p4,4.197320,soplex,1199000,0
+p4,5.549143,soplex,2533000,1
+p4,5.677046,soplex,2533000,1
+p4,5.974386,soplex,2533000,1
+p4,5.034889,soplex,2133000,1
+p4,5.536539,soplex,2133000,1
+p4,5.406135,gobmk,1733000,0
+p4,5.030574,soplex,2133000,1
+p4,4.885119,soplex,1733000,1
+p4,4.498565,soplex,1733000,1
+p4,4.621003,soplex,1733000,1
+p4,4.210216,soplex,1199000,1
+p4,4.094165,soplex,1199000,1
+p4,4.107388,soplex,1199000,1
+p4,6.239112,sphinx3,2533000,0
+p4,6.240338,sphinx3,2533000,0
+p4,6.258944,sphinx3,2533000,0
+p4,4.653891,gobmk,1199000,0
+p4,5.552842,sphinx3,2133000,0
+p4,5.509548,sphinx3,2133000,0
+p4,5.478621,sphinx3,2133000,0
+p4,5.016167,sphinx3,1733000,0
+p4,4.999557,sphinx3,1733000,0
+p4,4.918292,sphinx3,1733000,0
+p4,4.399479,sphinx3,1199000,0
+p4,4.408232,sphinx3,1199000,0
+p4,4.366888,sphinx3,1199000,0
+p4,6.294740,sphinx3,2533000,1
+p4,4.664038,gobmk,1199000,0
+p4,6.285698,sphinx3,2533000,1
+p4,6.280789,sphinx3,2533000,1
+p4,5.587876,sphinx3,2133000,1
+p4,5.784171,sphinx3,2133000,1
+p4,5.507704,sphinx3,2133000,1
+p4,5.019866,sphinx3,1733000,1
+p4,5.017587,sphinx3,1733000,1
+p4,4.892398,sphinx3,1733000,1
+p4,4.397146,sphinx3,1199000,1
+p4,4.399639,sphinx3,1199000,1
+p4,4.666198,gobmk,1199000,0
+p4,4.406431,sphinx3,1199000,1
+p4,6.552706,zeusmp,2533000,0
+p4,6.569833,zeusmp,2533000,0
+p4,6.549605,zeusmp,2533000,0
+p4,5.924571,zeusmp,2133000,0
+p4,5.884883,zeusmp,2133000,0
+p4,5.885512,zeusmp,2133000,0
+p4,5.216260,zeusmp,1733000,0
+p4,5.278384,zeusmp,1733000,0
+p4,5.257629,zeusmp,1733000,0
+p4,7.002873,gobmk,2533000,1
+p4,4.594212,zeusmp,1199000,0
+p4,4.587678,zeusmp,1199000,0
+p4,4.556410,zeusmp,1199000,0
+p4,6.695661,zeusmp,2533000,1
+p4,6.709691,zeusmp,2533000,1
+p4,6.563993,zeusmp,2533000,1
+p4,5.807331,zeusmp,2133000,1
+p4,5.905986,zeusmp,2133000,1
+p4,5.875103,zeusmp,2133000,1
+p4,5.221399,zeusmp,1733000,1
+p4,7.076152,gobmk,2533000,1
+p4,5.215035,zeusmp,1733000,1
+p4,5.277314,zeusmp,1733000,1
+p4,4.559281,zeusmp,1199000,1
+p4,4.593211,zeusmp,1199000,1
+p4,4.576547,zeusmp,1199000,1
+p4,6.992435,gobmk,2533000,1
+p4,6.147417,gobmk,2133000,1
+p4,6.121738,gobmk,2133000,1
+p4,6.157160,gobmk,2133000,1
+p4,5.397982,gobmk,1733000,1
+p4,5.389899,gobmk,1733000,1
+p4,5.401368,gobmk,1733000,1
+p4,4.666569,gobmk,1199000,1
+p4,4.667062,gobmk,1199000,1
+p4,4.662939,gobmk,1199000,1
+p4,6.819308,gromacs,2533000,0
+p4,6.809796,gromacs,2533000,0
+p4,6.808015,gromacs,2533000,0
+p4,6.071959,gromacs,2133000,0
+p4,6.060646,gromacs,2133000,0
+p4,6.079989,gromacs,2133000,0
+p4,5.382826,gromacs,1733000,0
+p4,5.395780,gromacs,1733000,0
+p4,5.380147,gromacs,1733000,0
+p4,4.663168,gromacs,1199000,0
+p4,4.670317,gromacs,1199000,0
+p4,4.667410,gromacs,1199000,0
+p4,6.841713,gromacs,2533000,1
+p4,6.861876,gromacs,2533000,1
+p4,6.856688,gromacs,2533000,1
+p4,6.078903,gromacs,2133000,1
+p4,6.074668,gromacs,2133000,1
+p4,6.108060,gromacs,2133000,1
+p4,5.381230,gromacs,1733000,1
+p4,5.376343,gromacs,1733000,1
+p4,5.394199,gromacs,1733000,1
+p4,4.671987,gromacs,1199000,1
+p4,4.667653,gromacs,1199000,1
+p4,4.662976,gromacs,1199000,1
+p4,7.086537,h264ref,2533000,0
+p4,7.097331,h264ref,2533000,0
+p4,7.074704,h264ref,2533000,0
+p4,6.175719,h264ref,2133000,0
+p4,6.147902,h264ref,2133000,0
+p4,6.137571,h264ref,2133000,0
+p4,5.405588,h264ref,1733000,0
+p4,5.407606,h264ref,1733000,0
+p4,5.398612,h264ref,1733000,0
+p4,4.654670,h264ref,1199000,0
+p4,4.654093,h264ref,1199000,0
+p4,4.650539,h264ref,1199000,0
+p4,7.118876,h264ref,2533000,1
+p4,7.119999,h264ref,2533000,1
+p4,7.101815,h264ref,2533000,1
+p4,6.157611,h264ref,2133000,1
+p4,6.162167,h264ref,2133000,1
+p4,6.107630,h264ref,2133000,1
+p4,5.410542,h264ref,1733000,1
+p4,5.369027,h264ref,1733000,1
+p4,5.402499,h264ref,1733000,1
+p4,4.645372,h264ref,1199000,1
+p4,4.658246,h264ref,1199000,1
+p4,4.643242,h264ref,1199000,1
+p4,7.399208,hmmer,2533000,0
+p4,7.399640,hmmer,2533000,0
+p4,7.386222,hmmer,2533000,0
+p4,6.165540,hmmer,2133000,0
+p4,6.244964,hmmer,2133000,0
+p4,6.163156,hmmer,2133000,0
+p4,5.393035,hmmer,1733000,0
+p4,5.395934,hmmer,1733000,0
+p4,5.383661,hmmer,1733000,0
+p4,4.621726,hmmer,1199000,0
+p4,4.620317,hmmer,1199000,0
+p4,4.621437,hmmer,1199000,0
+p4,7.484595,hmmer,2533000,1
+p4,7.430324,hmmer,2533000,1
+p4,7.482318,hmmer,2533000,1
+p4,6.243912,hmmer,2133000,1
+p4,6.168945,hmmer,2133000,1
+p4,6.158426,hmmer,2133000,1
+p4,5.386870,hmmer,1733000,1
+p4,5.377995,hmmer,1733000,1
+p4,5.338694,hmmer,1733000,1
+p4,4.626727,hmmer,1199000,1
+p4,4.621525,hmmer,1199000,1
+p4,4.625695,hmmer,1199000,1
+p4,6.529758,lbm,2533000,0
+p4,6.537524,lbm,2533000,0
+p4,6.543020,lbm,2533000,0
+p4,5.952794,lbm,2133000,0
+p4,5.955896,lbm,2133000,0
+p4,5.986342,lbm,2133000,0
+p4,5.268013,lbm,1733000,0
+p4,5.268836,lbm,1733000,0
+p4,5.323842,lbm,1733000,0
+p4,4.554399,lbm,1199000,0
+p4,4.589218,lbm,1199000,0
+p4,4.598807,lbm,1199000,0
+p4,6.573668,lbm,2533000,1
+p4,6.665585,lbm,2533000,1
+p4,6.649121,lbm,2533000,1
+p4,5.952892,lbm,2133000,1
+p4,5.997274,lbm,2133000,1
+p4,5.889475,lbm,2133000,1
+p4,5.266441,lbm,1733000,1
+p4,5.260061,lbm,1733000,1
+p4,5.284690,lbm,1733000,1
+p4,4.603574,lbm,1199000,1
+p4,4.601115,lbm,1199000,1
+p4,4.597724,lbm,1199000,1
+p4,6.790418,leslie3d,2533000,0
+p4,6.780848,leslie3d,2533000,0
+p4,6.843780,leslie3d,2533000,0
+p4,6.054554,leslie3d,2133000,0
+p4,6.046001,leslie3d,2133000,0
+p4,6.024416,leslie3d,2133000,0
+p4,5.364315,leslie3d,1733000,0
+p4,5.369654,leslie3d,1733000,0
+p4,5.358593,leslie3d,1733000,0
+p4,4.655589,leslie3d,1199000,0
+p4,4.664981,leslie3d,1199000,0
+p4,4.639648,leslie3d,1199000,0
+p4,6.828770,leslie3d,2533000,1
+p4,6.833864,leslie3d,2533000,1
+p4,6.838416,leslie3d,2533000,1
+p4,6.050987,leslie3d,2133000,1
+p4,6.060997,leslie3d,2133000,1
+p4,6.102686,leslie3d,2133000,1
+p4,5.357352,leslie3d,1733000,1
+p4,5.390714,leslie3d,1733000,1
+p4,5.352539,leslie3d,1733000,1
+p4,4.646203,leslie3d,1199000,1
+p4,4.649935,leslie3d,1199000,1
+p4,4.661957,leslie3d,1199000,1
+p4,6.312232,mcf,2533000,0
+p4,6.313017,mcf,2533000,0
+p4,6.371204,mcf,2533000,0
+p4,5.779688,mcf,2133000,0
+p4,5.739292,mcf,2133000,0
+p4,5.677009,mcf,2133000,0
+p4,5.054118,mcf,1733000,0
+p4,5.100515,mcf,1733000,0
+p4,5.220156,mcf,1733000,0
+p4,4.514913,mcf,1199000,0
+p4,4.505061,mcf,1199000,0
+p4,4.495709,mcf,1199000,0
+p4,6.273281,mcf,2533000,1
+p4,6.403572,mcf,2533000,1
+p4,6.517576,mcf,2533000,1
+p4,5.557742,mcf,2133000,1
+p4,5.644869,mcf,2133000,1
+p4,5.860206,mcf,2133000,1
+p4,5.121283,mcf,1733000,1
+p4,5.024103,mcf,1733000,1
+p4,5.081835,mcf,1733000,1
+p4,4.483491,mcf,1199000,1
+p4,4.525015,mcf,1199000,1
+p4,4.531160,mcf,1199000,1
+p4,6.261496,milc,2533000,0
+p4,6.308658,milc,2533000,0
+p4,6.259977,milc,2533000,0
+p4,5.667672,milc,2133000,0
+p4,5.669276,milc,2133000,0
+p4,5.663578,milc,2133000,0
+p4,5.040135,milc,1733000,0
+p4,5.034666,milc,1733000,0
+p4,5.048340,milc,1733000,0
+p4,4.360899,milc,1199000,0
+p4,4.356079,milc,1199000,0
+p4,4.465243,milc,1199000,0
+p4,6.303023,milc,2533000,1
+p4,6.283525,milc,2533000,1
+p4,6.353766,milc,2533000,1
+p4,5.659169,milc,2133000,1
+p4,5.710889,milc,2133000,1
+p4,5.664308,milc,2133000,1
+p4,5.018057,milc,1733000,1
+p4,5.157778,milc,1733000,1
+p4,4.882974,milc,1733000,1
+p4,4.356058,milc,1199000,1
+p4,4.381375,milc,1199000,1
+p4,4.451227,milc,1199000,1
+p4,6.225782,namd,2533000,0
+p4,6.245912,namd,2533000,0
+p4,6.215741,namd,2533000,0
+p4,5.570045,namd,2133000,0
+p4,5.581180,namd,2133000,0
+p4,5.563911,namd,2133000,0
+p4,4.949224,namd,1733000,0
+p4,5.095077,namd,1733000,0
+p4,4.930018,namd,1733000,0
+p4,4.437827,namd,1199000,0
+p4,4.435906,namd,1199000,0
+p4,4.427859,namd,1199000,0
+p4,6.216752,namd,2533000,1
+p4,6.231996,namd,2533000,1
+p4,6.242300,namd,2533000,1
+p4,5.566223,namd,2133000,1
+p4,5.567416,namd,2133000,1
+p4,5.654757,namd,2133000,1
+p4,5.083611,namd,1733000,1
+p4,4.930004,namd,1733000,1
+p4,5.090621,namd,1733000,1
+p4,4.454906,namd,1199000,1
+p4,4.427643,namd,1199000,1
+p4,4.421476,namd,1199000,1
+p4,7.252518,omnetpp,2533000,0
+p4,7.158625,omnetpp,2533000,0
+p4,7.256693,omnetpp,2533000,0
+p4,6.185973,omnetpp,2133000,0
+p4,6.173470,omnetpp,2133000,0
+p4,6.106522,omnetpp,2133000,0
+p4,5.384937,omnetpp,1733000,0
+p4,5.375818,omnetpp,1733000,0
+p4,5.350168,omnetpp,1733000,0
+p4,4.626654,omnetpp,1199000,0
+p4,4.615736,omnetpp,1199000,0
+p4,4.631343,omnetpp,1199000,0
+p4,7.182511,omnetpp,2533000,1
+p4,7.275448,omnetpp,2533000,1
+p4,7.297512,omnetpp,2533000,1
+p4,6.168586,omnetpp,2133000,1
+p4,6.129400,omnetpp,2133000,1
+p4,6.149546,omnetpp,2133000,1
+p4,5.355265,omnetpp,1733000,1
+p4,5.347253,omnetpp,1733000,1
+p4,5.372178,omnetpp,1733000,1
+p4,4.608356,omnetpp,1199000,1
+p4,4.616620,omnetpp,1199000,1
+p4,4.614673,omnetpp,1199000,1
+p4,5.997776,povray,2533000,0
+p4,6.462792,povray,2533000,0
+p4,5.960739,povray,2533000,0
+p4,5.106668,povray,2133000,0
+p4,5.100214,povray,2133000,0
+p4,5.531312,povray,2133000,0
+p4,4.743416,povray,1733000,0
+p4,4.759681,povray,1733000,0
+p4,4.810176,povray,1733000,0
+p4,4.237866,povray,1199000,0
+p4,4.216002,povray,1199000,0
+p4,4.247862,povray,1199000,0
+p4,5.990664,povray,2533000,1
+p4,5.972084,povray,2533000,1
+p4,6.424794,povray,2533000,1
+p4,5.125699,povray,2133000,1
+p4,5.459106,povray,2133000,1
+p4,5.110767,povray,2133000,1
+p4,4.745197,povray,1733000,1
+p4,4.758495,povray,1733000,1
+p4,4.739466,povray,1733000,1
+p4,4.378871,povray,1199000,1
+p4,4.381788,povray,1199000,1
+p4,4.385382,povray,1199000,1
+p4,6.962199,sjeng,2533000,0
+p4,6.968741,sjeng,2533000,0
+p4,7.018780,sjeng,2533000,0
+p4,6.113101,sjeng,2133000,0
+p4,6.123628,sjeng,2133000,0
+p4,6.122998,sjeng,2133000,0
+p4,5.395943,sjeng,1733000,0
+p4,5.378402,sjeng,1733000,0
+p4,5.370427,sjeng,1733000,0
+p4,4.664886,sjeng,1199000,0
+p4,4.649323,sjeng,1199000,0
+p4,4.641318,sjeng,1199000,0
+p4,7.047354,sjeng,2533000,1
+p4,7.001293,sjeng,2533000,1
+p4,6.986336,sjeng,2533000,1
+p4,6.097015,sjeng,2133000,1
+p4,6.101763,sjeng,2133000,1
+p4,6.136717,sjeng,2133000,1
+p4,5.382689,sjeng,1733000,1
+p4,5.376789,sjeng,1733000,1
+p4,5.371089,sjeng,1733000,1
+p4,4.654970,sjeng,1199000,1
+p4,4.646423,sjeng,1199000,1
+p4,4.644080,sjeng,1199000,1
+p4,6.030477,soplex,2533000,0
+p4,6.066515,soplex,2533000,0
+p4,6.065171,soplex,2533000,0
+p4,5.563899,soplex,2133000,0
+p4,5.536432,soplex,2133000,0
+p4,5.466834,soplex,2133000,0
+p4,4.839377,soplex,1733000,0
+p4,4.955604,soplex,1733000,0
+p4,4.950174,soplex,1733000,0
+p4,4.448703,soplex,1199000,0
+p4,4.291084,soplex,1199000,0
+p4,4.496642,soplex,1199000,0
+p4,5.656575,soplex,2533000,1
+p4,5.647637,soplex,2533000,1
+p4,5.540780,soplex,2533000,1
+p4,5.038271,soplex,2133000,1
+p4,5.042599,soplex,2133000,1
+p4,5.008078,soplex,2133000,1
+p4,4.797761,soplex,1733000,1
+p4,4.417978,soplex,1733000,1
+p4,4.733860,soplex,1733000,1
+p4,4.030005,soplex,1199000,1
+p4,4.203365,soplex,1199000,1
+p4,4.041655,soplex,1199000,1
+p4,6.143606,sphinx3,2533000,0
+p4,6.210546,sphinx3,2533000,0
+p4,5.913106,sphinx3,2533000,0
+p4,5.486365,sphinx3,2133000,0
+p4,5.473484,sphinx3,2133000,0
+p4,5.461683,sphinx3,2133000,0
+p4,5.001262,sphinx3,1733000,0
+p4,4.824427,sphinx3,1733000,0
+p4,4.820512,sphinx3,1733000,0
+p4,4.397369,sphinx3,1199000,0
+p4,4.397025,sphinx3,1199000,0
+p4,4.257344,sphinx3,1199000,0
+p4,6.263154,sphinx3,2533000,1
+p4,6.231966,sphinx3,2533000,1
+p4,5.970324,sphinx3,2533000,1
+p4,5.485719,sphinx3,2133000,1
+p4,5.493336,sphinx3,2133000,1
+p4,5.506690,sphinx3,2133000,1
+p4,5.093663,sphinx3,1733000,1
+p4,4.818315,sphinx3,1733000,1
+p4,4.814421,sphinx3,1733000,1
+p4,4.401669,sphinx3,1199000,1
+p4,4.260078,sphinx3,1199000,1
+p4,4.393360,sphinx3,1199000,1
+p4,6.624126,zeusmp,2533000,0
+p4,6.668482,zeusmp,2533000,0
+p4,6.593960,zeusmp,2533000,0
+p4,5.901079,zeusmp,2133000,0
+p4,5.938048,zeusmp,2133000,0
+p4,5.983028,zeusmp,2133000,0
+p4,5.271186,zeusmp,1733000,0
+p4,5.313683,zeusmp,1733000,0
+p4,5.237803,zeusmp,1733000,0
+p4,4.593254,zeusmp,1199000,0
+p4,4.547684,zeusmp,1199000,0
+p4,4.546501,zeusmp,1199000,0
+p4,6.653392,zeusmp,2533000,1
+p4,6.535437,zeusmp,2533000,1
+p4,6.536757,zeusmp,2533000,1
+p4,5.872919,zeusmp,2133000,1
+p4,5.877854,zeusmp,2133000,1
+p4,5.875457,zeusmp,2133000,1
+p4,5.270166,zeusmp,1733000,1
+p4,5.266851,zeusmp,1733000,1
+p4,5.266854,zeusmp,1733000,1
+p4,4.626936,zeusmp,1199000,1
+p4,4.635995,zeusmp,1199000,1
+p4,4.595469,zeusmp,1199000,1
+p4,6.863999,bzip2,2533000,0
+p4,6.886298,bzip2,2533000,0
+p4,6.882145,bzip2,2533000,0
+p4,5.958045,bzip2,2133000,0
+p4,6.025944,bzip2,2133000,0
+p4,5.995056,bzip2,2133000,0
+p4,5.284547,bzip2,1733000,0
+p4,5.327661,bzip2,1733000,0
+p4,5.319994,bzip2,1733000,0
+p4,4.606481,bzip2,1199000,0
+p4,4.600799,bzip2,1199000,0
+p4,4.611430,bzip2,1199000,0
+p4,6.711344,bzip2,2533000,1
+p4,6.887602,bzip2,2533000,1
+p4,6.879695,bzip2,2533000,1
+p4,6.014456,bzip2,2133000,1
+p4,6.006830,bzip2,2133000,1
+p4,6.022483,bzip2,2133000,1
+p4,5.316966,bzip2,1733000,1
+p4,5.293381,bzip2,1733000,1
+p4,5.324152,bzip2,1733000,1
+p4,4.489125,bzip2,1199000,1
+p4,4.510943,bzip2,1199000,1
+p4,4.483410,bzip2,1199000,1
+p4,6.465221,cactusADM,2533000,0
+p4,6.531129,cactusADM,2533000,0
+p4,6.526786,cactusADM,2533000,0
+p4,5.794986,cactusADM,2133000,0
+p4,5.818553,cactusADM,2133000,0
+p4,5.863792,cactusADM,2133000,0
+p4,5.223037,cactusADM,1733000,0
+p4,5.168174,cactusADM,1733000,0
+p4,5.243245,cactusADM,1733000,0
+p4,4.535377,cactusADM,1199000,0
+p4,4.524246,cactusADM,1199000,0
+p4,4.590613,cactusADM,1199000,0
+p4,6.478683,cactusADM,2533000,1
+p4,6.576615,cactusADM,2533000,1
+p4,6.464665,cactusADM,2533000,1
+p4,5.829766,cactusADM,2133000,1
+p4,5.789048,cactusADM,2133000,1
+p4,5.816615,cactusADM,2133000,1
+p4,5.248051,cactusADM,1733000,1
+p4,5.187823,cactusADM,1733000,1
+p4,5.237987,cactusADM,1733000,1
+p4,4.428741,cactusADM,1199000,1
+p4,4.454306,cactusADM,1199000,1
+p4,4.417272,cactusADM,1199000,1
+p4,0.722159,cpuload_all_0_4096,2533000,0
+p4,0.719371,cpuload_all_0_4096,2533000,0
+p4,0.758168,cpuload_all_0_4096,2533000,0
+p4,0.670156,cpuload_all_0_4096,2133000,0
+p4,0.684035,cpuload_all_0_4096,2133000,0
+p4,0.644335,cpuload_all_0_4096,2133000,0
+p4,0.989976,cpuload_all_0_4096,1733000,0
+p4,0.955171,cpuload_all_0_4096,1733000,0
+p4,0.871260,cpuload_all_0_4096,1733000,0
+p4,0.641427,cpuload_all_0_4096,1199000,0
+p4,0.668223,cpuload_all_0_4096,1199000,0
+p4,0.589270,cpuload_all_0_4096,1199000,0
+p4,0.801899,cpuload_all_0_4096,2533000,1
+p4,0.970034,cpuload_all_0_4096,2533000,1
+p4,0.728873,cpuload_all_0_4096,2533000,1
+p4,0.661858,cpuload_all_0_4096,2133000,1
+p4,0.881136,cpuload_all_0_4096,2133000,1
+p4,0.856547,cpuload_all_0_4096,2133000,1
+p4,0.888018,cpuload_all_0_4096,1733000,1
+p4,1.095322,cpuload_all_0_4096,1733000,1
+p4,0.938805,cpuload_all_0_4096,1733000,1
+p4,0.723071,cpuload_all_0_4096,1199000,1
+p4,0.710574,cpuload_all_0_4096,1199000,1
+p4,0.896410,cpuload_all_0_4096,1199000,1
+p4,2.423255,cpuload_all_25_4096,2533000,0
+p4,2.409522,cpuload_all_25_4096,2533000,0
+p4,2.412286,cpuload_all_25_4096,2533000,0
+p4,2.186921,cpuload_all_25_4096,2133000,0
+p4,2.254566,cpuload_all_25_4096,2133000,0
+p4,2.214283,cpuload_all_25_4096,2133000,0
+p4,1.980618,cpuload_all_25_4096,1733000,0
+p4,2.035500,cpuload_all_25_4096,1733000,0
+p4,2.004785,cpuload_all_25_4096,1733000,0
+p4,1.894933,cpuload_all_25_4096,1199000,0
+p4,1.894045,cpuload_all_25_4096,1199000,0
+p4,1.898676,cpuload_all_25_4096,1199000,0
+p4,2.414117,cpuload_all_25_4096,2533000,1
+p4,2.385911,cpuload_all_25_4096,2533000,1
+p4,2.375013,cpuload_all_25_4096,2533000,1
+p4,2.169345,cpuload_all_25_4096,2133000,1
+p4,2.199849,cpuload_all_25_4096,2133000,1
+p4,2.219975,cpuload_all_25_4096,2133000,1
+p4,2.013074,cpuload_all_25_4096,1733000,1
+p4,1.999451,cpuload_all_25_4096,1733000,1
+p4,1.988401,cpuload_all_25_4096,1733000,1
+p4,1.866161,cpuload_all_25_4096,1199000,1
+p4,1.880976,cpuload_all_25_4096,1199000,1
+p4,1.852139,cpuload_all_25_4096,1199000,1
+p4,6.626268,cpuload_all_50_4096,2533000,0
+p4,6.668152,cpuload_all_50_4096,2533000,0
+p4,5.789458,cpuload_all_50_4096,2533000,0
+p4,5.850452,cpuload_all_50_4096,2133000,0
+p4,5.740013,cpuload_all_50_4096,2133000,0
+p4,5.854490,cpuload_all_50_4096,2133000,0
+p4,5.195997,cpuload_all_50_4096,1733000,0
+p4,5.015454,cpuload_all_50_4096,1733000,0
+p4,5.270435,cpuload_all_50_4096,1733000,0
+p4,4.512113,cpuload_all_50_4096,1199000,0
+p4,4.515438,cpuload_all_50_4096,1199000,0
+p4,4.510972,cpuload_all_50_4096,1199000,0
+p4,6.647147,cpuload_all_50_4096,2533000,1
+p4,6.570038,cpuload_all_50_4096,2533000,1
+p4,6.578607,cpuload_all_50_4096,2533000,1
+p4,5.838328,cpuload_all_50_4096,2133000,1
+p4,5.860358,cpuload_all_50_4096,2133000,1
+p4,5.818446,cpuload_all_50_4096,2133000,1
+p4,4.971316,cpuload_all_50_4096,1733000,1
+p4,5.305943,cpuload_all_50_4096,1733000,1
+p4,5.232325,cpuload_all_50_4096,1733000,1
+p4,4.400685,cpuload_all_50_4096,1199000,1
+p4,4.462086,cpuload_all_50_4096,1199000,1
+p4,4.454924,cpuload_all_50_4096,1199000,1
+p4,6.546075,cpuload_all_75_4096,2533000,0
+p4,6.547394,cpuload_all_75_4096,2533000,0
+p4,6.648013,cpuload_all_75_4096,2533000,0
+p4,5.887855,cpuload_all_75_4096,2133000,0
+p4,5.851693,cpuload_all_75_4096,2133000,0
+p4,5.865583,cpuload_all_75_4096,2133000,0
+p4,5.205897,cpuload_all_75_4096,1733000,0
+p4,5.278325,cpuload_all_75_4096,1733000,0
+p4,5.216636,cpuload_all_75_4096,1733000,0
+p4,4.515393,cpuload_all_75_4096,1199000,0
+p4,4.519530,cpuload_all_75_4096,1199000,0
+p4,4.515073,cpuload_all_75_4096,1199000,0
+p4,6.676377,cpuload_all_75_4096,2533000,1
+p4,6.618057,cpuload_all_75_4096,2533000,1
+p4,6.599025,cpuload_all_75_4096,2533000,1
+p4,5.941571,cpuload_all_75_4096,2133000,1
+p4,5.872865,cpuload_all_75_4096,2133000,1
+p4,5.899697,cpuload_all_75_4096,2133000,1
+p4,5.283256,cpuload_all_75_4096,1733000,1
+p4,5.226436,cpuload_all_75_4096,1733000,1
+p4,5.210248,cpuload_all_75_4096,1733000,1
+p4,4.398292,cpuload_all_75_4096,1199000,1
+p4,4.464025,cpuload_all_75_4096,1199000,1
+p4,4.409325,cpuload_all_75_4096,1199000,1
+p4,6.611720,cpuload_all_100_4096,2533000,0
+p4,6.641100,cpuload_all_100_4096,2533000,0
+p4,6.563484,cpuload_all_100_4096,2533000,0
+p4,5.919150,cpuload_all_100_4096,2133000,0
+p4,6.036911,cpuload_all_100_4096,2133000,0
+p4,5.868833,cpuload_all_100_4096,2133000,0
+p4,5.216462,cpuload_all_100_4096,1733000,0
+p4,5.285457,cpuload_all_100_4096,1733000,0
+p4,5.220961,cpuload_all_100_4096,1733000,0
+p4,4.514260,cpuload_all_100_4096,1199000,0
+p4,4.514198,cpuload_all_100_4096,1199000,0
+p4,4.572735,cpuload_all_100_4096,1199000,0
+p4,6.577325,cpuload_all_100_4096,2533000,1
+p4,6.572092,cpuload_all_100_4096,2533000,1
+p4,6.592917,cpuload_all_100_4096,2533000,1
+p4,5.947579,cpuload_all_100_4096,2133000,1
+p4,5.890797,cpuload_all_100_4096,2133000,1
+p4,5.914583,cpuload_all_100_4096,2133000,1
+p4,5.297460,cpuload_all_100_4096,1733000,1
+p4,5.248159,cpuload_all_100_4096,1733000,1
+p4,5.217087,cpuload_all_100_4096,1733000,1
+p4,4.423014,cpuload_all_100_4096,1199000,1
+p4,4.430258,cpuload_all_100_4096,1199000,1
+p4,4.426150,cpuload_all_100_4096,1199000,1
+p4,7.612585,gamess,2533000,0
+p4,7.689073,gamess,2533000,0
+p4,7.697081,gamess,2533000,0
+p4,6.378624,gamess,2133000,0
+p4,6.363107,gamess,2133000,0
+p4,6.379463,gamess,2133000,0
+p4,5.475552,gamess,1733000,0
+p4,5.483843,gamess,1733000,0
+p4,5.486208,gamess,1733000,0
+p4,4.686400,gamess,1199000,0
+p4,4.685299,gamess,1199000,0
+p4,4.683684,gamess,1199000,0
+p4,7.654370,gamess,2533000,1
+p4,7.638897,gamess,2533000,1
+p4,7.684567,gamess,2533000,1
+p4,6.390534,gamess,2133000,1
+p4,6.367941,gamess,2133000,1
+p4,6.374859,gamess,2133000,1
+p4,5.484697,gamess,1733000,1
+p4,5.458538,gamess,1733000,1
+p4,5.475710,gamess,1733000,1
+p4,4.563092,gamess,1199000,1
+p4,4.564226,gamess,1199000,1
+p4,4.562758,gamess,1199000,1
+p4,6.895989,gcc,2533000,0
+p4,6.900517,gcc,2533000,0
+p4,6.910001,gcc,2533000,0
+p4,6.131312,gcc,2133000,0
+p4,6.125623,gcc,2133000,0
+p4,6.129381,gcc,2133000,0
+p4,5.426910,gcc,1733000,0
+p4,5.428504,gcc,1733000,0
+p4,5.436612,gcc,1733000,0
+p4,4.697284,gcc,1199000,0
+p4,4.687604,gcc,1199000,0
+p4,4.684684,gcc,1199000,0
+p4,6.929067,gcc,2533000,1
+p4,6.928972,gcc,2533000,1
+p4,6.938542,gcc,2533000,1
+p4,6.155380,gcc,2133000,1
+p4,6.161271,gcc,2133000,1
+p4,6.141258,gcc,2133000,1
+p4,5.438743,gcc,1733000,1
+p4,5.437104,gcc,1733000,1
+p4,5.434957,gcc,1733000,1
+p4,4.574590,gcc,1199000,1
+p4,4.573134,gcc,1199000,1
+p4,4.568825,gcc,1199000,1
+p4,7.060043,gobmk,2533000,0
+p4,7.082781,gobmk,2533000,0
+p4,7.055602,gobmk,2533000,0
+p4,6.209484,gobmk,2133000,0
+p4,6.167584,gobmk,2133000,0
+p4,6.125205,gobmk,2133000,0
+p4,5.412208,gobmk,1733000,0
+p4,5.418190,gobmk,1733000,0
+p4,5.400753,gobmk,1733000,0
+p4,4.651411,gobmk,1199000,0
+p4,4.654018,gobmk,1199000,0
+p4,4.686143,gobmk,1199000,0
+p4,7.119686,gobmk,2533000,1
+p4,7.089704,gobmk,2533000,1
+p4,7.157462,gobmk,2533000,1
+p4,6.132097,gobmk,2133000,1
+p4,6.131561,gobmk,2133000,1
+p4,6.132606,gobmk,2133000,1
+p4,5.407726,gobmk,1733000,1
+p4,5.416244,gobmk,1733000,1
+p4,5.405103,gobmk,1733000,1
+p4,4.566444,gobmk,1199000,1
+p4,4.553877,gobmk,1199000,1
+p4,4.559046,gobmk,1199000,1
+p4,6.839492,gromacs,2533000,0
+p4,6.855795,gromacs,2533000,0
+p4,6.853079,gromacs,2533000,0
+p4,6.094690,gromacs,2133000,0
+p4,6.084111,gromacs,2133000,0
+p4,6.108504,gromacs,2133000,0
+p4,5.422993,gromacs,1733000,0
+p4,5.414179,gromacs,1733000,0
+p4,5.419731,gromacs,1733000,0
+p4,4.670681,gromacs,1199000,0
+p4,4.661287,gromacs,1199000,0
+p4,4.682326,gromacs,1199000,0
+p4,6.895877,gromacs,2533000,1
+p4,6.884426,gromacs,2533000,1
+p4,6.862014,gromacs,2533000,1
+p4,6.096508,gromacs,2133000,1
+p4,6.099919,gromacs,2133000,1
+p4,6.065171,gromacs,2133000,1
+p4,5.395094,gromacs,1733000,1
+p4,5.397210,gromacs,1733000,1
+p4,5.413243,gromacs,1733000,1
+p4,4.567628,gromacs,1199000,1
+p4,4.565638,gromacs,1199000,1
+p4,4.569892,gromacs,1199000,1
+p4,7.161673,h264ref,2533000,0
+p4,7.226888,h264ref,2533000,0
+p4,7.157208,h264ref,2533000,0
+p4,6.200137,h264ref,2133000,0
+p4,6.187011,h264ref,2133000,0
+p4,6.207156,h264ref,2133000,0
+p4,5.453415,h264ref,1733000,0
+p4,5.459118,h264ref,1733000,0
+p4,5.444987,h264ref,1733000,0
+p4,4.696142,h264ref,1199000,0
+p4,4.699029,h264ref,1199000,0
+p4,4.699112,h264ref,1199000,0
+p4,7.168121,h264ref,2533000,1
+p4,7.252463,h264ref,2533000,1
+p4,7.268015,h264ref,2533000,1
+p4,6.220782,h264ref,2133000,1
+p4,6.204912,h264ref,2133000,1
+p4,6.210163,h264ref,2133000,1
+p4,5.439574,h264ref,1733000,1
+p4,5.429504,h264ref,1733000,1
+p4,5.448873,h264ref,1733000,1
+p4,4.570142,h264ref,1199000,1
+p4,4.575300,h264ref,1199000,1
+p4,4.568945,h264ref,1199000,1
+p4,7.545271,hmmer,2533000,0
+p4,7.526226,hmmer,2533000,0
+p4,7.535183,hmmer,2533000,0
+p4,6.334240,hmmer,2133000,0
+p4,6.331531,hmmer,2133000,0
+p4,6.292283,hmmer,2133000,0
+p4,5.454719,hmmer,1733000,0
+p4,5.472864,hmmer,1733000,0
+p4,5.415916,hmmer,1733000,0
+p4,4.652777,hmmer,1199000,0
+p4,4.648383,hmmer,1199000,0
+p4,4.642319,hmmer,1199000,0
+p4,7.517050,hmmer,2533000,1
+p4,7.514164,hmmer,2533000,1
+p4,7.515930,hmmer,2533000,1
+p4,6.347454,hmmer,2133000,1
+p4,6.330508,hmmer,2133000,1
+p4,6.283581,hmmer,2133000,1
+p4,5.451618,hmmer,1733000,1
+p4,5.438445,hmmer,1733000,1
+p4,5.447317,hmmer,1733000,1
+p4,4.546531,hmmer,1199000,1
+p4,4.540155,hmmer,1199000,1
+p4,4.564045,hmmer,1199000,1
+p4,6.664792,lbm,2533000,0
+p4,6.678468,lbm,2533000,0
+p4,6.664732,lbm,2533000,0
+p4,5.987225,lbm,2133000,0
+p4,5.980118,lbm,2133000,0
+p4,6.004022,lbm,2133000,0
+p4,5.313025,lbm,1733000,0
+p4,5.297782,lbm,1733000,0
+p4,5.378224,lbm,1733000,0
+p4,4.614084,lbm,1199000,0
+p4,4.640421,lbm,1199000,0
+p4,4.624601,lbm,1199000,0
+p4,6.701227,lbm,2533000,1
+p4,6.681757,lbm,2533000,1
+p4,6.677058,lbm,2533000,1
+p4,5.999017,lbm,2133000,1
+p4,5.994728,lbm,2133000,1
+p4,5.993513,lbm,2133000,1
+p4,5.352825,lbm,1733000,1
+p4,5.344527,lbm,1733000,1
+p4,5.307195,lbm,1733000,1
+p4,4.514544,lbm,1199000,1
+p4,4.529007,lbm,1199000,1
+p4,4.553917,lbm,1199000,1
+p4,6.876441,leslie3d,2533000,0
+p4,6.871867,leslie3d,2533000,0
+p4,6.874331,leslie3d,2533000,0
+p4,6.085691,leslie3d,2133000,0
+p4,6.089907,leslie3d,2133000,0
+p4,6.090694,leslie3d,2133000,0
+p4,5.416615,leslie3d,1733000,0
+p4,5.401402,leslie3d,1733000,0
+p4,5.416554,leslie3d,1733000,0
+p4,4.679778,leslie3d,1199000,0
+p4,4.681532,leslie3d,1199000,0
+p4,4.690164,leslie3d,1199000,0
+p4,6.871783,leslie3d,2533000,1
+p4,6.882017,leslie3d,2533000,1
+p4,6.894721,leslie3d,2533000,1
+p4,6.134175,leslie3d,2133000,1
+p4,6.117589,leslie3d,2133000,1
+p4,6.106240,leslie3d,2133000,1
+p4,5.403603,leslie3d,1733000,1
+p4,5.417575,leslie3d,1733000,1
+p4,5.421589,leslie3d,1733000,1
+p4,4.564865,leslie3d,1199000,1
+p4,4.564660,leslie3d,1199000,1
+p4,4.562240,leslie3d,1199000,1
+p4,6.362346,mcf,2533000,0
+p4,6.402161,mcf,2533000,0
+p4,6.435081,mcf,2533000,0
+p4,5.780849,mcf,2133000,0
+p4,5.859319,mcf,2133000,0
+p4,5.851596,mcf,2133000,0
+p4,5.117438,mcf,1733000,0
+p4,5.184254,mcf,1733000,0
+p4,5.225946,mcf,1733000,0
+p4,4.590071,mcf,1199000,0
+p4,4.614198,mcf,1199000,0
+p4,4.546985,mcf,1199000,0
+p4,6.433474,mcf,2533000,1
+p4,6.459249,mcf,2533000,1
+p4,6.365082,mcf,2533000,1
+p4,5.814909,mcf,2133000,1
+p4,5.782643,mcf,2133000,1
+p4,5.865223,mcf,2133000,1
+p4,5.236729,mcf,1733000,1
+p4,5.247035,mcf,1733000,1
+p4,5.171708,mcf,1733000,1
+p4,4.398222,mcf,1199000,1
+p4,4.385839,mcf,1199000,1
+p4,4.448636,mcf,1199000,1
+p4,6.290119,milc,2533000,0
+p4,6.306578,milc,2533000,0
+p4,6.307724,milc,2533000,0
+p4,5.745164,milc,2133000,0
+p4,5.681790,milc,2133000,0
+p4,5.722119,milc,2133000,0
+p4,5.120191,milc,1733000,0
+p4,5.110053,milc,1733000,0
+p4,5.107872,milc,1733000,0
+p4,4.547858,milc,1199000,0
+p4,4.519317,milc,1199000,0
+p4,4.466051,milc,1199000,0
+p4,6.381780,milc,2533000,1
+p4,6.373172,milc,2533000,1
+p4,6.396025,milc,2533000,1
+p4,5.798022,milc,2133000,1
+p4,5.839677,milc,2133000,1
+p4,5.703847,milc,2133000,1
+p4,5.202448,milc,1733000,1
+p4,5.228765,milc,1733000,1
+p4,5.177574,milc,1733000,1
+p4,4.363874,milc,1199000,1
+p4,4.424296,milc,1199000,1
+p4,4.432054,milc,1199000,1
+p4,6.276682,namd,2533000,0
+p4,6.312768,namd,2533000,0
+p4,6.317381,namd,2533000,0
+p4,5.696359,namd,2133000,0
+p4,5.756210,namd,2133000,0
+p4,5.597427,namd,2133000,0
+p4,5.149865,namd,1733000,0
+p4,5.073443,namd,1733000,0
+p4,5.171027,namd,1733000,0
+p4,4.453961,namd,1199000,0
+p4,4.488276,namd,1199000,0
+p4,4.490243,namd,1199000,0
+p4,6.454623,namd,2533000,1
+p4,6.402070,namd,2533000,1
+p4,6.282661,namd,2533000,1
+p5,9.001007,bzip2,2533000,0
+p5,7.828073,bzip2,2533000,0
+p5,7.417338,bzip2,2533000,0
+p5,6.432434,bzip2,2133000,0
+p5,6.417069,bzip2,2133000,0
+p5,6.433465,bzip2,2133000,0
+p5,5.573131,bzip2,1733000,0
+p5,5.565290,bzip2,1733000,0
+p5,5.566179,bzip2,1733000,0
+p5,4.574289,bzip2,1199000,0
+p5,4.586086,bzip2,1199000,0
+p5,4.566007,bzip2,1199000,0
+p5,7.413760,bzip2,2533000,1
+p5,7.437364,bzip2,2533000,1
+p5,7.423875,bzip2,2533000,1
+p5,6.282342,bzip2,2133000,1
+p5,6.270477,bzip2,2133000,1
+p5,6.279580,bzip2,2133000,1
+p5,5.475769,bzip2,1733000,1
+p5,5.458932,bzip2,1733000,1
+p5,5.496254,bzip2,1733000,1
+p5,4.593083,bzip2,1199000,1
+p5,4.584604,bzip2,1199000,1
+p5,4.586417,bzip2,1199000,1
+p5,7.164991,cactusADM,2533000,0
+p5,7.240967,cactusADM,2533000,0
+p5,7.102150,cactusADM,2533000,0
+p5,6.269131,cactusADM,2133000,0
+p5,6.248799,cactusADM,2133000,0
+p5,6.227296,cactusADM,2133000,0
+p5,5.458778,cactusADM,1733000,0
+p5,5.429172,cactusADM,1733000,0
+p5,5.481473,cactusADM,1733000,0
+p5,4.510458,cactusADM,1199000,0
+p5,4.539653,cactusADM,1199000,0
+p5,4.555690,cactusADM,1199000,0
+p5,7.069915,cactusADM,2533000,1
+p5,7.028337,cactusADM,2533000,1
+p5,7.150164,cactusADM,2533000,1
+p5,6.207420,cactusADM,2133000,1
+p5,6.077695,cactusADM,2133000,1
+p5,6.078140,cactusADM,2133000,1
+p5,5.403102,cactusADM,1733000,1
+p5,5.442737,cactusADM,1733000,1
+p5,5.431902,cactusADM,1733000,1
+p5,4.546240,cactusADM,1199000,1
+p5,4.551658,cactusADM,1199000,1
+p5,4.549793,cactusADM,1199000,1
+p5,0.705297,cpuload_all_0_4096,2533000,0
+p5,0.790096,cpuload_all_0_4096,2533000,0
+p5,0.825098,cpuload_all_0_4096,2533000,0
+p5,0.710362,cpuload_all_0_4096,2133000,0
+p5,0.712346,cpuload_all_0_4096,2133000,0
+p5,0.705250,cpuload_all_0_4096,2133000,0
+p5,0.603550,cpuload_all_0_4096,1733000,0
+p5,0.889479,cpuload_all_0_4096,1733000,0
+p5,0.719622,cpuload_all_0_4096,1733000,0
+p5,0.676365,cpuload_all_0_4096,1199000,0
+p5,0.671494,cpuload_all_0_4096,1199000,0
+p5,0.663434,cpuload_all_0_4096,1199000,0
+p5,0.762674,cpuload_all_0_4096,2533000,1
+p5,0.674946,cpuload_all_0_4096,2533000,1
+p5,0.722284,cpuload_all_0_4096,2533000,1
+p5,0.665316,cpuload_all_0_4096,2133000,1
+p5,0.764467,cpuload_all_0_4096,2133000,1
+p5,0.734964,cpuload_all_0_4096,2133000,1
+p5,0.679361,cpuload_all_0_4096,1733000,1
+p5,0.610497,cpuload_all_0_4096,1733000,1
+p5,0.678445,cpuload_all_0_4096,1733000,1
+p5,0.658478,cpuload_all_0_4096,1199000,1
+p5,0.608322,cpuload_all_0_4096,1199000,1
+p5,0.627150,cpuload_all_0_4096,1199000,1
+p5,2.600377,cpuload_all_25_4096,2533000,0
+p5,2.606106,cpuload_all_25_4096,2533000,0
+p5,2.611883,cpuload_all_25_4096,2533000,0
+p5,2.328310,cpuload_all_25_4096,2133000,0
+p5,2.301365,cpuload_all_25_4096,2133000,0
+p5,2.320969,cpuload_all_25_4096,2133000,0
+p5,2.112416,cpuload_all_25_4096,1733000,0
+p5,2.108074,cpuload_all_25_4096,1733000,0
+p5,2.125013,cpuload_all_25_4096,1733000,0
+p5,1.944506,cpuload_all_25_4096,1199000,0
+p5,1.952504,cpuload_all_25_4096,1199000,0
+p5,1.930521,cpuload_all_25_4096,1199000,0
+p5,2.567208,cpuload_all_25_4096,2533000,1
+p5,2.587394,cpuload_all_25_4096,2533000,1
+p5,2.529975,cpuload_all_25_4096,2533000,1
+p5,2.342627,cpuload_all_25_4096,2133000,1
+p5,2.357507,cpuload_all_25_4096,2133000,1
+p5,2.310387,cpuload_all_25_4096,2133000,1
+p5,2.081878,cpuload_all_25_4096,1733000,1
+p5,2.091976,cpuload_all_25_4096,1733000,1
+p5,2.071291,cpuload_all_25_4096,1733000,1
+p5,1.924987,cpuload_all_25_4096,1199000,1
+p5,1.887041,cpuload_all_25_4096,1199000,1
+p5,1.883800,cpuload_all_25_4096,1199000,1
+p5,7.188240,cpuload_all_50_4096,2533000,0
+p5,7.170780,cpuload_all_50_4096,2533000,0
+p5,7.168531,cpuload_all_50_4096,2533000,0
+p5,6.225315,cpuload_all_50_4096,2133000,0
+p5,5.894654,namd,2133000,1
+p5,5.826830,namd,2133000,1
+p5,5.884042,namd,2133000,1
+p5,5.209292,namd,1733000,1
+p5,5.196327,namd,1733000,1
+p5,5.194273,namd,1733000,1
+p5,4.526681,namd,1199000,1
+p5,4.466405,namd,1199000,1
+p5,4.518304,namd,1199000,1
+p5,7.901570,omnetpp,2533000,0
+p5,6.241531,cpuload_all_50_4096,2133000,0
+p5,8.019340,omnetpp,2533000,0
+p5,7.866505,omnetpp,2533000,0
+p5,6.490474,omnetpp,2133000,0
+p5,6.477282,omnetpp,2133000,0
+p5,6.463378,omnetpp,2133000,0
+p5,5.627915,omnetpp,1733000,0
+p5,5.643298,omnetpp,1733000,0
+p5,5.681142,omnetpp,1733000,0
+p5,4.647914,omnetpp,1199000,0
+p5,4.627374,omnetpp,1199000,0
+p5,6.234108,cpuload_all_50_4096,2133000,0
+p5,4.624417,omnetpp,1199000,0
+p5,7.921670,omnetpp,2533000,1
+p5,7.871181,omnetpp,2533000,1
+p5,7.772565,omnetpp,2533000,1
+p5,6.445993,omnetpp,2133000,1
+p5,6.466624,omnetpp,2133000,1
+p5,6.467184,omnetpp,2133000,1
+p5,5.528694,omnetpp,1733000,1
+p5,5.536751,omnetpp,1733000,1
+p5,5.520506,omnetpp,1733000,1
+p5,5.462344,cpuload_all_50_4096,1733000,0
+p5,4.631928,omnetpp,1199000,1
+p5,4.620921,omnetpp,1199000,1
+p5,4.626619,omnetpp,1199000,1
+p5,6.459304,povray,2533000,0
+p5,6.896987,povray,2533000,0
+p5,6.571676,povray,2533000,0
+p5,5.549903,povray,2133000,0
+p5,5.618604,povray,2133000,0
+p5,5.822017,povray,2133000,0
+p5,5.343214,povray,1733000,0
+p5,5.470680,cpuload_all_50_4096,1733000,0
+p5,5.009049,povray,1733000,0
+p5,5.001553,povray,1733000,0
+p5,4.288942,povray,1199000,0
+p5,4.422982,povray,1199000,0
+p5,4.265546,povray,1199000,0
+p5,6.953221,povray,2533000,1
+p5,6.976235,povray,2533000,1
+p5,6.426009,povray,2533000,1
+p5,5.520908,povray,2133000,1
+p5,5.733153,povray,2133000,1
+p5,5.487655,cpuload_all_50_4096,1733000,0
+p5,5.709507,povray,2133000,1
+p5,4.903975,povray,1733000,1
+p5,5.082899,povray,1733000,1
+p5,4.932585,povray,1733000,1
+p5,4.254645,povray,1199000,1
+p5,4.324182,povray,1199000,1
+p5,4.269801,povray,1199000,1
+p5,7.636147,sjeng,2533000,0
+p5,7.658570,sjeng,2533000,0
+p5,7.652665,sjeng,2533000,0
+p5,4.510045,cpuload_all_50_4096,1199000,0
+p5,6.558794,sjeng,2133000,0
+p5,6.563536,sjeng,2133000,0
+p5,6.589647,sjeng,2133000,0
+p5,5.675155,sjeng,1733000,0
+p5,5.681905,sjeng,1733000,0
+p5,5.691880,sjeng,1733000,0
+p5,4.650484,sjeng,1199000,0
+p5,4.644856,sjeng,1199000,0
+p5,4.647082,sjeng,1199000,0
+p5,7.583248,sjeng,2533000,1
+p5,4.509225,cpuload_all_50_4096,1199000,0
+p5,7.583953,sjeng,2533000,1
+p5,7.586984,sjeng,2533000,1
+p5,6.415224,sjeng,2133000,1
+p5,6.409330,sjeng,2133000,1
+p5,6.421988,sjeng,2133000,1
+p5,5.574252,sjeng,1733000,1
+p5,5.584333,sjeng,1733000,1
+p5,5.609616,sjeng,1733000,1
+p5,4.647996,sjeng,1199000,1
+p5,4.651090,sjeng,1199000,1
+p5,4.507825,cpuload_all_50_4096,1199000,0
+p5,4.642111,sjeng,1199000,1
+p5,6.180595,soplex,2533000,0
+p5,6.423210,soplex,2533000,0
+p5,6.007745,soplex,2533000,0
+p5,5.566432,soplex,2133000,0
+p5,5.331348,soplex,2133000,0
+p5,5.550601,soplex,2133000,0
+p5,4.992892,soplex,1733000,0
+p5,4.945444,soplex,1733000,0
+p5,4.957272,soplex,1733000,0
+p5,7.251727,cpuload_all_50_4096,2533000,1
+p5,4.210953,soplex,1199000,0
+p5,4.201710,soplex,1199000,0
+p5,4.212120,soplex,1199000,0
+p5,5.980772,soplex,2533000,1
+p5,6.023124,soplex,2533000,1
+p5,6.140228,soplex,2533000,1
+p5,5.422055,soplex,2133000,1
+p5,5.670495,soplex,2133000,1
+p5,5.266966,soplex,2133000,1
+p5,4.844845,soplex,1733000,1
+p5,7.266063,cpuload_all_50_4096,2533000,1
+p5,4.821222,soplex,1733000,1
+p5,4.849314,soplex,1733000,1
+p5,4.120865,soplex,1199000,1
+p5,4.114282,soplex,1199000,1
+p5,4.068336,soplex,1199000,1
+p5,6.690784,sphinx3,2533000,0
+p5,6.685643,sphinx3,2533000,0
+p5,6.706402,sphinx3,2533000,0
+p5,5.800731,sphinx3,2133000,0
+p5,5.829857,sphinx3,2133000,0
+p5,7.250375,cpuload_all_50_4096,2533000,1
+p5,5.928085,sphinx3,2133000,0
+p5,5.191218,sphinx3,1733000,0
+p5,5.227753,sphinx3,1733000,0
+p5,5.276782,sphinx3,1733000,0
+p5,4.300759,sphinx3,1199000,0
+p5,4.303944,sphinx3,1199000,0
+p5,4.343394,sphinx3,1199000,0
+p5,6.528631,sphinx3,2533000,1
+p5,6.721690,sphinx3,2533000,1
+p5,6.494765,sphinx3,2533000,1
+p5,6.287493,cpuload_all_50_4096,2133000,1
+p5,5.822028,sphinx3,2133000,1
+p5,5.725077,sphinx3,2133000,1
+p5,5.886563,sphinx3,2133000,1
+p5,5.166960,sphinx3,1733000,1
+p5,5.196467,sphinx3,1733000,1
+p5,5.084967,sphinx3,1733000,1
+p5,4.371047,sphinx3,1199000,1
+p5,4.375458,sphinx3,1199000,1
+p5,4.364758,sphinx3,1199000,1
+p5,7.304423,zeusmp,2533000,0
+p5,6.319315,cpuload_all_50_4096,2133000,1
+p5,7.225791,zeusmp,2533000,0
+p5,7.170325,zeusmp,2533000,0
+p5,6.254010,zeusmp,2133000,0
+p5,6.269339,zeusmp,2133000,0
+p5,6.240975,zeusmp,2133000,0
+p5,5.533157,zeusmp,1733000,0
+p5,5.533983,zeusmp,1733000,0
+p5,5.478021,zeusmp,1733000,0
+p5,4.572499,zeusmp,1199000,0
+p5,4.572944,zeusmp,1199000,0
+p5,6.314361,cpuload_all_50_4096,2133000,1
+p5,4.574032,zeusmp,1199000,0
+p5,7.253807,zeusmp,2533000,1
+p5,7.220552,zeusmp,2533000,1
+p5,7.197026,zeusmp,2533000,1
+p5,6.201306,zeusmp,2133000,1
+p5,6.200526,zeusmp,2133000,1
+p5,6.338285,zeusmp,2133000,1
+p5,5.513835,zeusmp,1733000,1
+p5,5.467839,zeusmp,1733000,1
+p5,5.515306,zeusmp,1733000,1
+p5,5.464343,cpuload_all_50_4096,1733000,1
+p5,4.564728,zeusmp,1199000,1
+p5,4.567662,zeusmp,1199000,1
+p5,4.559026,zeusmp,1199000,1
+p5,7.403285,bzip2,2533000,0
+p5,7.523575,bzip2,2533000,0
+p5,7.420216,bzip2,2533000,0
+p5,6.371872,bzip2,2133000,0
+p5,6.369516,bzip2,2133000,0
+p5,6.392064,bzip2,2133000,0
+p5,5.556215,bzip2,1733000,0
+p5,5.457116,cpuload_all_50_4096,1733000,1
+p5,5.505698,bzip2,1733000,0
+p5,5.596453,bzip2,1733000,0
+p5,4.566833,bzip2,1199000,0
+p5,4.569944,bzip2,1199000,0
+p5,4.567959,bzip2,1199000,0
+p5,7.404287,bzip2,2533000,1
+p5,7.437802,bzip2,2533000,1
+p5,7.475166,bzip2,2533000,1
+p5,6.314685,bzip2,2133000,1
+p5,6.273311,bzip2,2133000,1
+p5,5.465522,cpuload_all_50_4096,1733000,1
+p5,6.307044,bzip2,2133000,1
+p5,5.525371,bzip2,1733000,1
+p5,5.530528,bzip2,1733000,1
+p5,5.515588,bzip2,1733000,1
+p5,4.563888,bzip2,1199000,1
+p5,4.566692,bzip2,1199000,1
+p5,4.585533,bzip2,1199000,1
+p5,7.024819,cactusADM,2533000,0
+p5,7.233452,cactusADM,2533000,0
+p5,7.168276,cactusADM,2533000,0
+p5,4.512236,cpuload_all_50_4096,1199000,1
+p5,6.156380,cactusADM,2133000,0
+p5,6.155660,cactusADM,2133000,0
+p5,6.252696,cactusADM,2133000,0
+p5,5.457064,cactusADM,1733000,0
+p5,5.487009,cactusADM,1733000,0
+p5,5.477789,cactusADM,1733000,0
+p5,4.551773,cactusADM,1199000,0
+p5,4.551501,cactusADM,1199000,0
+p5,4.526404,cactusADM,1199000,0
+p5,7.051004,cactusADM,2533000,1
+p5,4.506448,cpuload_all_50_4096,1199000,1
+p5,7.034997,cactusADM,2533000,1
+p5,6.972458,cactusADM,2533000,1
+p5,6.154772,cactusADM,2133000,1
+p5,6.130382,cactusADM,2133000,1
+p5,6.192665,cactusADM,2133000,1
+p5,5.451903,cactusADM,1733000,1
+p5,5.379775,cactusADM,1733000,1
+p5,5.489208,cactusADM,1733000,1
+p5,4.543088,cactusADM,1199000,1
+p5,4.518383,cactusADM,1199000,1
+p5,4.504897,cpuload_all_50_4096,1199000,1
+p5,4.499184,cactusADM,1199000,1
+p5,0.804402,cpuload_all_0_4096,2533000,0
+p5,0.745750,cpuload_all_0_4096,2533000,0
+p5,0.783161,cpuload_all_0_4096,2533000,0
+p5,0.694982,cpuload_all_0_4096,2133000,0
+p5,0.804037,cpuload_all_0_4096,2133000,0
+p5,0.713237,cpuload_all_0_4096,2133000,0
+p5,0.625112,cpuload_all_0_4096,1733000,0
+p5,0.611339,cpuload_all_0_4096,1733000,0
+p5,0.671986,cpuload_all_0_4096,1733000,0
+p5,7.155858,cpuload_all_75_4096,2533000,0
+p5,0.622109,cpuload_all_0_4096,1199000,0
+p5,0.604658,cpuload_all_0_4096,1199000,0
+p5,0.636737,cpuload_all_0_4096,1199000,0
+p5,0.768756,cpuload_all_0_4096,2533000,1
+p5,0.726388,cpuload_all_0_4096,2533000,1
+p5,0.811905,cpuload_all_0_4096,2533000,1
+p5,0.744926,cpuload_all_0_4096,2133000,1
+p5,0.735409,cpuload_all_0_4096,2133000,1
+p5,0.707182,cpuload_all_0_4096,2133000,1
+p5,0.723774,cpuload_all_0_4096,1733000,1
+p5,7.326063,cpuload_all_75_4096,2533000,0
+p5,0.719425,cpuload_all_0_4096,1733000,1
+p5,0.668773,cpuload_all_0_4096,1733000,1
+p5,0.617425,cpuload_all_0_4096,1199000,1
+p5,0.725626,cpuload_all_0_4096,1199000,1
+p5,0.635793,cpuload_all_0_4096,1199000,1
+p5,2.633619,cpuload_all_25_4096,2533000,0
+p5,2.649340,cpuload_all_25_4096,2533000,0
+p5,2.653321,cpuload_all_25_4096,2533000,0
+p5,2.351286,cpuload_all_25_4096,2133000,0
+p5,2.330859,cpuload_all_25_4096,2133000,0
+p5,7.247238,cpuload_all_75_4096,2533000,0
+p5,2.337790,cpuload_all_25_4096,2133000,0
+p5,2.119123,cpuload_all_25_4096,1733000,0
+p5,2.156778,cpuload_all_25_4096,1733000,0
+p5,2.167164,cpuload_all_25_4096,1733000,0
+p5,1.991414,cpuload_all_25_4096,1199000,0
+p5,1.981549,cpuload_all_25_4096,1199000,0
+p5,1.961839,cpuload_all_25_4096,1199000,0
+p5,2.593156,cpuload_all_25_4096,2533000,1
+p5,2.614733,cpuload_all_25_4096,2533000,1
+p5,2.575895,cpuload_all_25_4096,2533000,1
+p5,6.330613,cpuload_all_75_4096,2133000,0
+p5,2.367439,cpuload_all_25_4096,2133000,1
+p5,2.363516,cpuload_all_25_4096,2133000,1
+p5,2.361199,cpuload_all_25_4096,2133000,1
+p5,2.153102,cpuload_all_25_4096,1733000,1
+p5,2.133663,cpuload_all_25_4096,1733000,1
+p5,2.121841,cpuload_all_25_4096,1733000,1
+p5,1.940903,cpuload_all_25_4096,1199000,1
+p5,1.971332,cpuload_all_25_4096,1199000,1
+p5,1.943494,cpuload_all_25_4096,1199000,1
+p5,7.143178,cpuload_all_50_4096,2533000,0
+p5,6.332558,cpuload_all_75_4096,2133000,0
+p5,7.134332,cpuload_all_50_4096,2533000,0
+p5,7.148730,cpuload_all_50_4096,2533000,0
+p5,6.323698,cpuload_all_50_4096,2133000,0
+p5,6.262357,cpuload_all_50_4096,2133000,0
+p5,6.219170,cpuload_all_50_4096,2133000,0
+p5,5.277277,cpuload_all_50_4096,1733000,0
+p5,5.446769,cpuload_all_50_4096,1733000,0
+p5,5.360969,cpuload_all_50_4096,1733000,0
+p5,4.477767,cpuload_all_50_4096,1199000,0
+p5,4.487508,cpuload_all_50_4096,1199000,0
+p5,6.324708,cpuload_all_75_4096,2133000,0
+p5,4.469725,cpuload_all_50_4096,1199000,0
+p5,7.145262,cpuload_all_50_4096,2533000,1
+p5,7.239119,cpuload_all_50_4096,2533000,1
+p5,7.241633,cpuload_all_50_4096,2533000,1
+p5,6.135687,cpuload_all_50_4096,2133000,1
+p5,6.122979,cpuload_all_50_4096,2133000,1
+p5,6.224844,cpuload_all_50_4096,2133000,1
+p5,5.450905,cpuload_all_50_4096,1733000,1
+p5,5.457089,cpuload_all_50_4096,1733000,1
+p5,5.534148,cpuload_all_50_4096,1733000,1
+p5,5.529239,cpuload_all_75_4096,1733000,0
+p5,4.492413,cpuload_all_50_4096,1199000,1
+p5,4.481087,cpuload_all_50_4096,1199000,1
+p5,4.482909,cpuload_all_50_4096,1199000,1
+p5,7.226649,cpuload_all_75_4096,2533000,0
+p5,7.102701,cpuload_all_75_4096,2533000,0
+p5,7.129626,cpuload_all_75_4096,2533000,0
+p5,6.215542,cpuload_all_75_4096,2133000,0
+p5,6.286899,cpuload_all_75_4096,2133000,0
+p5,6.310165,cpuload_all_75_4096,2133000,0
+p5,5.440975,cpuload_all_75_4096,1733000,0
+p5,5.532383,cpuload_all_75_4096,1733000,0
+p5,5.443287,cpuload_all_75_4096,1733000,0
+p5,5.467223,cpuload_all_75_4096,1733000,0
+p5,4.489521,cpuload_all_75_4096,1199000,0
+p5,4.477460,cpuload_all_75_4096,1199000,0
+p5,4.542084,cpuload_all_75_4096,1199000,0
+p5,7.144110,cpuload_all_75_4096,2533000,1
+p5,7.136475,cpuload_all_75_4096,2533000,1
+p5,7.145951,cpuload_all_75_4096,2533000,1
+p5,6.218584,cpuload_all_75_4096,2133000,1
+p5,6.355796,cpuload_all_75_4096,2133000,1
+p5,5.478712,cpuload_all_75_4096,1733000,0
+p5,6.302957,cpuload_all_75_4096,2133000,1
+p5,5.519712,cpuload_all_75_4096,1733000,1
+p5,5.450985,cpuload_all_75_4096,1733000,1
+p5,5.468366,cpuload_all_75_4096,1733000,1
+p5,4.497491,cpuload_all_75_4096,1199000,1
+p5,4.497132,cpuload_all_75_4096,1199000,1
+p5,4.499306,cpuload_all_75_4096,1199000,1
+p5,7.274488,cpuload_all_100_4096,2533000,0
+p5,7.159419,cpuload_all_100_4096,2533000,0
+p5,7.161882,cpuload_all_100_4096,2533000,0
+p5,4.514453,cpuload_all_75_4096,1199000,0
+p5,6.332537,cpuload_all_100_4096,2133000,0
+p5,6.375250,cpuload_all_100_4096,2133000,0
+p5,6.204013,cpuload_all_100_4096,2133000,0
+p5,5.436526,cpuload_all_100_4096,1733000,0
+p5,5.459115,cpuload_all_100_4096,1733000,0
+p5,5.464545,cpuload_all_100_4096,1733000,0
+p5,4.506705,cpuload_all_100_4096,1199000,0
+p5,4.499143,cpuload_all_100_4096,1199000,0
+p5,4.494808,cpuload_all_100_4096,1199000,0
+p5,7.151449,cpuload_all_100_4096,2533000,1
+p5,4.505404,cpuload_all_75_4096,1199000,0
+p5,7.160145,cpuload_all_100_4096,2533000,1
+p5,7.266036,cpuload_all_100_4096,2533000,1
+p5,6.320739,cpuload_all_100_4096,2133000,1
+p5,6.328584,cpuload_all_100_4096,2133000,1
+p5,6.229778,cpuload_all_100_4096,2133000,1
+p5,5.453799,cpuload_all_100_4096,1733000,1
+p5,5.466138,cpuload_all_100_4096,1733000,1
+p5,5.469578,cpuload_all_100_4096,1733000,1
+p5,4.502776,cpuload_all_100_4096,1199000,1
+p5,4.492428,cpuload_all_100_4096,1199000,1
+p5,4.587303,cpuload_all_75_4096,1199000,0
+p5,4.512680,cpuload_all_100_4096,1199000,1
+p5,8.248821,gamess,2533000,0
+p5,8.191490,gamess,2533000,0
+p5,8.254868,gamess,2533000,0
+p5,6.698650,gamess,2133000,0
+p5,6.747813,gamess,2133000,0
+p5,6.732916,gamess,2133000,0
+p5,5.699716,gamess,1733000,0
+p5,5.715770,gamess,1733000,0
+p5,5.704809,gamess,1733000,0
+p5,7.222275,cpuload_all_75_4096,2533000,1
+p5,4.644382,gamess,1199000,0
+p5,4.641876,gamess,1199000,0
+p5,4.640435,gamess,1199000,0
+p5,8.132123,gamess,2533000,1
+p5,8.162990,gamess,2533000,1
+p5,8.211422,gamess,2533000,1
+p5,6.581901,gamess,2133000,1
+p5,6.599102,gamess,2133000,1
+p5,6.605495,gamess,2133000,1
+p5,5.609655,gamess,1733000,1
+p5,7.269446,cpuload_all_75_4096,2533000,1
+p5,5.633557,gamess,1733000,1
+p5,5.692159,gamess,1733000,1
+p5,4.640369,gamess,1199000,1
+p5,4.641595,gamess,1199000,1
+p5,4.643330,gamess,1199000,1
+p5,7.479546,gcc,2533000,0
+p5,7.499540,gcc,2533000,0
+p5,7.517329,gcc,2533000,0
+p5,6.551890,gcc,2133000,0
+p5,6.564838,gcc,2133000,0
+p5,7.230562,cpuload_all_75_4096,2533000,1
+p5,6.568466,gcc,2133000,0
+p5,5.708154,gcc,1733000,0
+p5,5.689210,gcc,1733000,0
+p5,5.683024,gcc,1733000,0
+p5,4.671521,gcc,1199000,0
+p5,4.674585,gcc,1199000,0
+p5,4.672316,gcc,1199000,0
+p5,7.526120,gcc,2533000,1
+p5,7.533180,gcc,2533000,1
+p5,7.534391,gcc,2533000,1
+p5,6.335481,cpuload_all_75_4096,2133000,1
+p5,6.437841,gcc,2133000,1
+p5,6.431965,gcc,2133000,1
+p5,6.449726,gcc,2133000,1
+p5,5.582535,gcc,1733000,1
+p5,5.584264,gcc,1733000,1
+p5,5.581475,gcc,1733000,1
+p5,4.682765,gcc,1199000,1
+p5,4.685046,gcc,1199000,1
+p5,4.688610,gcc,1199000,1
+p5,7.717486,gobmk,2533000,0
+p5,6.333865,cpuload_all_75_4096,2133000,1
+p5,7.671303,gobmk,2533000,0
+p5,7.722712,gobmk,2533000,0
+p5,6.565805,gobmk,2133000,0
+p5,6.542599,gobmk,2133000,0
+p5,6.587822,gobmk,2133000,0
+p5,5.666493,gobmk,1733000,0
+p5,5.669083,gobmk,1733000,0
+p5,5.674546,gobmk,1733000,0
+p5,4.661352,gobmk,1199000,0
+p5,4.674590,gobmk,1199000,0
+p5,6.330773,cpuload_all_75_4096,2133000,1
+p5,4.648713,gobmk,1199000,0
+p5,7.638996,gobmk,2533000,1
+p5,7.569724,gobmk,2533000,1
+p5,7.631669,gobmk,2533000,1
+p5,6.400174,gobmk,2133000,1
+p5,6.444502,gobmk,2133000,1
+p5,6.412498,gobmk,2133000,1
+p5,5.558362,gobmk,1733000,1
+p5,5.552742,gobmk,1733000,1
+p5,5.613774,gobmk,1733000,1
+p5,5.453127,cpuload_all_75_4096,1733000,1
+p5,4.662067,gobmk,1199000,1
+p5,4.683255,gobmk,1199000,1
+p5,4.663418,gobmk,1199000,1
+p5,7.499916,gromacs,2533000,0
+p5,7.508872,gromacs,2533000,0
+p5,7.522026,gromacs,2533000,0
+p5,6.549026,gromacs,2133000,0
+p5,6.546944,gromacs,2133000,0
+p5,6.556214,gromacs,2133000,0
+p5,5.685432,gromacs,1733000,0
+p5,5.522513,cpuload_all_75_4096,1733000,1
+p5,5.689671,gromacs,1733000,0
+p5,5.679606,gromacs,1733000,0
+p5,4.676246,gromacs,1199000,0
+p5,4.661323,gromacs,1199000,0
+p5,4.667511,gromacs,1199000,0
+p5,7.538172,gromacs,2533000,1
+p5,7.500039,gromacs,2533000,1
+p5,7.497181,gromacs,2533000,1
+p5,6.398001,gromacs,2133000,1
+p5,6.391643,gromacs,2133000,1
+p5,5.444567,cpuload_all_75_4096,1733000,1
+p5,6.399963,gromacs,2133000,1
+p5,5.580299,gromacs,1733000,1
+p5,5.564090,gromacs,1733000,1
+p5,5.573713,gromacs,1733000,1
+p5,4.671278,gromacs,1199000,1
+p5,4.667982,gromacs,1199000,1
+p5,4.656786,gromacs,1199000,1
+p5,7.763815,h264ref,2533000,0
+p5,7.821324,h264ref,2533000,0
+p5,7.818111,h264ref,2533000,0
+p5,4.552120,cpuload_all_75_4096,1199000,1
+p5,6.586978,h264ref,2133000,0
+p5,6.579946,h264ref,2133000,0
+p5,6.579773,h264ref,2133000,0
+p5,5.717261,h264ref,1733000,0
+p5,5.721372,h264ref,1733000,0
+p5,5.696026,h264ref,1733000,0
+p5,4.658178,h264ref,1199000,0
+p5,4.663197,h264ref,1199000,0
+p5,4.682285,h264ref,1199000,0
+p5,7.842584,h264ref,2533000,1
+p5,4.499578,cpuload_all_75_4096,1199000,1
+p5,7.804958,h264ref,2533000,1
+p5,7.793702,h264ref,2533000,1
+p5,6.502690,h264ref,2133000,1
+p5,6.498195,h264ref,2133000,1
+p5,6.468006,h264ref,2133000,1
+p5,5.611481,h264ref,1733000,1
+p5,5.575761,h264ref,1733000,1
+p5,5.551728,h264ref,1733000,1
+p5,4.643451,h264ref,1199000,1
+p5,4.682030,h264ref,1199000,1
+p5,4.493379,cpuload_all_75_4096,1199000,1
+p5,4.681131,h264ref,1199000,1
+p5,8.146016,hmmer,2533000,0
+p5,8.263012,hmmer,2533000,0
+p5,8.178554,hmmer,2533000,0
+p5,6.593416,hmmer,2133000,0
+p5,6.554287,hmmer,2133000,0
+p5,6.565420,hmmer,2133000,0
+p5,5.671699,hmmer,1733000,0
+p5,5.701635,hmmer,1733000,0
+p5,5.716101,hmmer,1733000,0
+p5,7.173856,cpuload_all_100_4096,2533000,0
+p5,4.666438,hmmer,1199000,0
+p5,4.656507,hmmer,1199000,0
+p5,4.634965,hmmer,1199000,0
+p5,8.100953,hmmer,2533000,1
+p5,8.200950,hmmer,2533000,1
+p5,8.120150,hmmer,2533000,1
+p5,6.604491,hmmer,2133000,1
+p5,6.580505,hmmer,2133000,1
+p5,6.555641,hmmer,2133000,1
+p5,5.567938,hmmer,1733000,1
+p5,7.201752,cpuload_all_100_4096,2533000,0
+p5,5.559871,hmmer,1733000,1
+p5,5.591518,hmmer,1733000,1
+p5,4.639047,hmmer,1199000,1
+p5,4.679625,hmmer,1199000,1
+p5,4.635792,hmmer,1199000,1
+p5,7.345913,lbm,2533000,0
+p5,7.296463,lbm,2533000,0
+p5,7.327514,lbm,2533000,0
+p5,6.518545,lbm,2133000,0
+p5,6.445514,lbm,2133000,0
+p5,7.176676,cpuload_all_100_4096,2533000,0
+p5,6.462029,lbm,2133000,0
+p5,5.604387,lbm,1733000,0
+p5,5.610231,lbm,1733000,0
+p5,5.613730,lbm,1733000,0
+p5,4.623358,lbm,1199000,0
+p5,4.618929,lbm,1199000,0
+p5,4.645540,lbm,1199000,0
+p5,7.306653,lbm,2533000,1
+p5,7.334783,lbm,2533000,1
+p5,7.370286,lbm,2533000,1
+p5,6.252226,cpuload_all_100_4096,2133000,0
+p5,6.309596,lbm,2133000,1
+p5,6.337437,lbm,2133000,1
+p5,6.387621,lbm,2133000,1
+p5,5.496634,lbm,1733000,1
+p5,5.508495,lbm,1733000,1
+p5,5.456785,lbm,1733000,1
+p5,4.650021,lbm,1199000,1
+p5,4.619673,lbm,1199000,1
+p5,4.666697,lbm,1199000,1
+p5,7.511493,leslie3d,2533000,0
+p5,6.275082,cpuload_all_100_4096,2133000,0
+p5,7.545121,leslie3d,2533000,0
+p5,7.498162,leslie3d,2533000,0
+p5,6.440260,leslie3d,2133000,0
+p5,6.444057,leslie3d,2133000,0
+p5,6.489478,leslie3d,2133000,0
+p5,5.662992,leslie3d,1733000,0
+p5,5.673577,leslie3d,1733000,0
+p5,5.657937,leslie3d,1733000,0
+p5,4.673137,leslie3d,1199000,0
+p5,4.678485,leslie3d,1199000,0
+p5,6.253176,cpuload_all_100_4096,2133000,0
+p5,4.667393,leslie3d,1199000,0
+p5,7.525196,leslie3d,2533000,1
+p5,7.477102,leslie3d,2533000,1
+p5,7.508898,leslie3d,2533000,1
+p5,6.404246,leslie3d,2133000,1
+p5,6.406635,leslie3d,2133000,1
+p5,6.407719,leslie3d,2133000,1
+p5,5.547190,leslie3d,1733000,1
+p5,5.560452,leslie3d,1733000,1
+p5,5.529228,leslie3d,1733000,1
+p5,5.466994,cpuload_all_100_4096,1733000,0
+p5,4.680794,leslie3d,1199000,1
+p5,4.681735,leslie3d,1199000,1
+p5,4.685997,leslie3d,1199000,1
+p5,7.061824,mcf,2533000,0
+p5,7.161133,mcf,2533000,0
+p5,7.128345,mcf,2533000,0
+p5,6.242592,mcf,2133000,0
+p5,6.224265,mcf,2133000,0
+p5,6.235893,mcf,2133000,0
+p5,5.525705,mcf,1733000,0
+p5,5.465261,cpuload_all_100_4096,1733000,0
+p5,5.507631,mcf,1733000,0
+p5,5.479131,mcf,1733000,0
+p5,4.621130,mcf,1199000,0
+p5,4.636137,mcf,1199000,0
+p5,4.615138,mcf,1199000,0
+p5,7.125309,mcf,2533000,1
+p5,7.199595,mcf,2533000,1
+p5,7.151414,mcf,2533000,1
+p5,6.137505,mcf,2133000,1
+p5,6.133671,mcf,2133000,1
+p5,5.465358,cpuload_all_100_4096,1733000,0
+p5,6.116329,mcf,2133000,1
+p5,5.365679,mcf,1733000,1
+p5,5.409680,mcf,1733000,1
+p5,5.462842,mcf,1733000,1
+p5,4.578822,mcf,1199000,1
+p5,4.577370,mcf,1199000,1
+p5,4.532180,mcf,1199000,1
+p5,6.951211,milc,2533000,0
+p5,6.935158,milc,2533000,0
+p5,7.013848,milc,2533000,0
+p5,4.514333,cpuload_all_100_4096,1199000,0
+p5,6.251447,milc,2133000,0
+p5,6.085247,milc,2133000,0
+p5,6.192742,milc,2133000,0
+p5,5.352761,milc,1733000,0
+p5,5.340563,milc,1733000,0
+p5,5.497814,milc,1733000,0
+p5,4.492774,milc,1199000,0
+p5,4.617175,milc,1199000,0
+p5,4.509610,milc,1199000,0
+p5,7.014238,milc,2533000,1
+p5,4.555561,cpuload_all_100_4096,1199000,0
+p5,7.087383,milc,2533000,1
+p5,7.021015,milc,2533000,1
+p5,5.923450,milc,2133000,1
+p5,6.085651,milc,2133000,1
+p5,6.129871,milc,2133000,1
+p5,5.291217,milc,1733000,1
+p5,5.297089,milc,1733000,1
+p5,5.323975,milc,1733000,1
+p5,4.635999,milc,1199000,1
+p5,4.503766,milc,1199000,1
+p5,4.554792,cpuload_all_100_4096,1199000,0
+p5,4.618976,milc,1199000,1
+p5,6.997884,namd,2533000,0
+p5,6.859943,namd,2533000,0
+p5,7.102365,namd,2533000,0
+p5,6.076355,namd,2133000,0
+p5,6.299069,namd,2133000,0
+p5,6.200936,namd,2133000,0
+p5,5.423916,namd,1733000,0
+p5,5.322579,namd,1733000,0
+p5,5.358697,namd,1733000,0
+p5,7.239366,cpuload_all_100_4096,2533000,1
+p5,4.573722,namd,1199000,0
+p5,4.520042,namd,1199000,0
+p5,4.541826,namd,1199000,0
+p5,7.081874,namd,2533000,1
+p5,6.890483,namd,2533000,1
+p5,7.277037,namd,2533000,1
+p5,6.016045,namd,2133000,1
+p5,5.891757,namd,2133000,1
+p5,6.213449,namd,2133000,1
+p5,5.257488,namd,1733000,1
+p5,7.278906,cpuload_all_100_4096,2533000,1
+p5,5.298329,namd,1733000,1
+p5,5.309634,namd,1733000,1
+p5,4.459163,namd,1199000,1
+p5,4.555863,namd,1199000,1
+p5,4.496134,namd,1199000,1
+p5,8.007470,omnetpp,2533000,0
+p5,7.965819,omnetpp,2533000,0
+p5,8.048712,omnetpp,2533000,0
+p5,6.697454,omnetpp,2133000,0
+p5,6.717212,omnetpp,2133000,0
+p5,7.232288,cpuload_all_100_4096,2533000,1
+p5,6.770689,omnetpp,2133000,0
+p5,5.700545,omnetpp,1733000,0
+p5,5.673563,omnetpp,1733000,0
+p5,5.732709,omnetpp,1733000,0
+p5,4.645356,omnetpp,1199000,0
+p5,4.671439,omnetpp,1199000,0
+p5,4.662961,omnetpp,1199000,0
+p5,7.825224,omnetpp,2533000,1
+p5,7.902100,omnetpp,2533000,1
+p5,7.981820,omnetpp,2533000,1
+p5,6.338200,cpuload_all_100_4096,2133000,1
+p5,6.438639,omnetpp,2133000,1
+p5,6.435719,omnetpp,2133000,1
+p5,6.503908,omnetpp,2133000,1
+p5,5.539543,omnetpp,1733000,1
+p5,5.554646,omnetpp,1733000,1
+p5,5.538224,omnetpp,1733000,1
+p5,4.664249,omnetpp,1199000,1
+p5,4.631228,omnetpp,1199000,1
+p5,4.657870,omnetpp,1199000,1
+p5,6.590611,povray,2533000,0
+p5,6.256886,cpuload_all_100_4096,2133000,1
+p5,6.870570,povray,2533000,0
+p5,6.598754,povray,2533000,0
+p5,5.843358,povray,2133000,0
+p5,5.873813,povray,2133000,0
+p5,5.969378,povray,2133000,0
+p5,5.238232,povray,1733000,0
+p5,5.106985,povray,1733000,0
+p5,5.411090,povray,1733000,0
+p5,4.408929,povray,1199000,0
+p5,4.297484,povray,1199000,0
+p5,6.367855,cpuload_all_100_4096,2133000,1
+p5,4.483417,povray,1199000,0
+p5,6.608117,povray,2533000,1
+p5,6.926403,povray,2533000,1
+p5,6.616907,povray,2533000,1
+p5,5.670398,povray,2133000,1
+p5,5.752413,povray,2133000,1
+p5,5.770162,povray,2133000,1
+p5,5.052675,povray,1733000,1
+p5,4.936318,povray,1733000,1
+p5,5.234887,povray,1733000,1
+p5,5.534621,cpuload_all_100_4096,1733000,1
+p5,4.393439,povray,1199000,1
+p5,4.276500,povray,1199000,1
+p5,4.548294,povray,1199000,1
+p5,7.669158,sjeng,2533000,0
+p5,7.670352,sjeng,2533000,0
+p5,7.602621,sjeng,2533000,0
+p5,6.605279,sjeng,2133000,0
+p5,6.617946,sjeng,2133000,0
+p5,6.615260,sjeng,2133000,0
+p5,5.719153,sjeng,1733000,0
+p5,5.458710,cpuload_all_100_4096,1733000,1
+p5,5.692375,sjeng,1733000,0
+p5,5.715513,sjeng,1733000,0
+p5,4.666690,sjeng,1199000,0
+p5,4.665713,sjeng,1199000,0
+p5,4.660300,sjeng,1199000,0
+p5,7.626423,sjeng,2533000,1
+p5,7.623944,sjeng,2533000,1
+p5,7.650809,sjeng,2533000,1
+p5,6.451626,sjeng,2133000,1
+p5,6.449114,sjeng,2133000,1
+p5,5.536469,cpuload_all_100_4096,1733000,1
+p5,6.448000,sjeng,2133000,1
+p5,5.578861,sjeng,1733000,1
+p5,5.580811,sjeng,1733000,1
+p5,5.582886,sjeng,1733000,1
+p5,4.667849,sjeng,1199000,1
+p5,4.648726,sjeng,1199000,1
+p5,4.655937,sjeng,1199000,1
+p5,6.342279,soplex,2533000,0
+p5,6.060391,soplex,2533000,0
+p5,6.397071,soplex,2533000,0
+p5,4.484209,cpuload_all_100_4096,1199000,1
+p5,5.537124,soplex,2133000,0
+p5,5.736735,soplex,2133000,0
+p5,5.637916,soplex,2133000,0
+p5,5.055520,soplex,1733000,0
+p5,5.124236,soplex,1733000,0
+p5,5.143299,soplex,1733000,0
+p5,4.293791,soplex,1199000,0
+p5,4.301867,soplex,1199000,0
+p5,4.210620,soplex,1199000,0
+p5,6.543484,soplex,2533000,1
+p5,4.486875,cpuload_all_100_4096,1199000,1
+p5,6.455953,soplex,2533000,1
+p5,6.125245,soplex,2533000,1
+p5,5.768889,soplex,2133000,1
+p5,5.650353,soplex,2133000,1
+p5,5.504964,soplex,2133000,1
+p5,4.960638,soplex,1733000,1
+p5,5.049908,soplex,1733000,1
+p5,5.063227,soplex,1733000,1
+p5,4.202918,soplex,1199000,1
+p5,4.205582,soplex,1199000,1
+p5,4.485361,cpuload_all_100_4096,1199000,1
+p5,4.270222,soplex,1199000,1
+p5,6.671463,sphinx3,2533000,0
+p5,6.729029,sphinx3,2533000,0
+p5,6.767820,sphinx3,2533000,0
+p5,6.000274,sphinx3,2133000,0
+p5,5.913143,sphinx3,2133000,0
+p5,5.865630,sphinx3,2133000,0
+p5,5.280347,sphinx3,1733000,0
+p5,5.239704,sphinx3,1733000,0
+p5,5.286614,sphinx3,1733000,0
+p5,8.177719,gamess,2533000,0
+p5,4.403071,sphinx3,1199000,0
+p5,4.507608,sphinx3,1199000,0
+p5,4.436828,sphinx3,1199000,0
+p5,6.761318,sphinx3,2533000,1
+p5,6.717252,sphinx3,2533000,1
+p5,6.779399,sphinx3,2533000,1
+p5,5.777127,sphinx3,2133000,1
+p5,5.938600,sphinx3,2133000,1
+p5,5.914412,sphinx3,2133000,1
+p5,5.187344,sphinx3,1733000,1
+p5,8.174587,gamess,2533000,0
+p5,5.276076,sphinx3,1733000,1
+p5,5.232094,sphinx3,1733000,1
+p5,4.452802,sphinx3,1199000,1
+p5,4.517783,sphinx3,1199000,1
+p5,4.439369,sphinx3,1199000,1
+p5,7.164091,zeusmp,2533000,0
+p5,7.159990,zeusmp,2533000,0
+p5,7.289240,zeusmp,2533000,0
+p5,6.292574,zeusmp,2133000,0
+p5,6.299048,zeusmp,2133000,0
+p5,8.217903,gamess,2533000,0
+p5,6.355162,zeusmp,2133000,0
+p5,5.538276,zeusmp,1733000,0
+p5,5.550033,zeusmp,1733000,0
+p5,5.596351,zeusmp,1733000,0
+p5,4.600486,zeusmp,1199000,0
+p5,4.571130,zeusmp,1199000,0
+p5,4.603869,zeusmp,1199000,0
+p5,7.232283,zeusmp,2533000,1
+p5,7.172879,zeusmp,2533000,1
+p5,7.259233,zeusmp,2533000,1
+p5,6.756641,gamess,2133000,0
+p5,6.326539,zeusmp,2133000,1
+p5,6.316823,zeusmp,2133000,1
+p5,6.358890,zeusmp,2133000,1
+p5,5.537333,zeusmp,1733000,1
+p5,5.589508,zeusmp,1733000,1
+p5,5.545909,zeusmp,1733000,1
+p5,4.629252,zeusmp,1199000,1
+p5,4.598993,zeusmp,1199000,1
+p5,4.636608,zeusmp,1199000,1
+p5,7.807821,bzip2,2533000,0
+p5,6.738577,gamess,2133000,0
+p5,7.470597,bzip2,2533000,0
+p5,8.945059,bzip2,2533000,0
+p5,7.099166,bzip2,2133000,0
+p5,6.456217,bzip2,2133000,0
+p5,6.477323,bzip2,2133000,0
+p5,5.639159,bzip2,1733000,0
+p5,5.647405,bzip2,1733000,0
+p5,5.597273,bzip2,1733000,0
+p5,4.621531,bzip2,1199000,0
+p5,4.638541,bzip2,1199000,0
+p5,6.758516,gamess,2133000,0
+p5,4.595808,bzip2,1199000,0
+p5,7.456223,bzip2,2533000,1
+p5,7.509579,bzip2,2533000,1
+p5,7.437240,bzip2,2533000,1
+p5,6.299287,bzip2,2133000,1
+p5,6.323817,bzip2,2133000,1
+p5,6.342073,bzip2,2133000,1
+p5,5.594607,bzip2,1733000,1
+p5,5.529790,bzip2,1733000,1
+p5,5.539343,bzip2,1733000,1
+p5,5.728945,gamess,1733000,0
+p5,4.604939,bzip2,1199000,1
+p5,4.627070,bzip2,1199000,1
+p5,4.619040,bzip2,1199000,1
+p5,7.226608,cactusADM,2533000,0
+p5,7.218874,cactusADM,2533000,0
+p5,7.096409,cactusADM,2533000,0
+p5,6.286956,cactusADM,2133000,0
+p5,6.297518,cactusADM,2133000,0
+p5,6.301910,cactusADM,2133000,0
+p5,5.505619,cactusADM,1733000,0
+p5,5.717398,gamess,1733000,0
+p5,5.478654,cactusADM,1733000,0
+p5,5.463277,cactusADM,1733000,0
+p5,4.543918,cactusADM,1199000,0
+p5,4.572735,cactusADM,1199000,0
+p5,4.589360,cactusADM,1199000,0
+p5,7.162197,cactusADM,2533000,1
+p5,7.154719,cactusADM,2533000,1
+p5,7.213663,cactusADM,2533000,1
+p5,6.179228,cactusADM,2133000,1
+p5,6.183016,cactusADM,2133000,1
+p5,5.720655,gamess,1733000,0
+p5,6.256445,cactusADM,2133000,1
+p5,5.477131,cactusADM,1733000,1
+p5,5.471642,cactusADM,1733000,1
+p5,5.475383,cactusADM,1733000,1
+p5,4.623483,cactusADM,1199000,1
+p5,4.563480,cactusADM,1199000,1
+p5,4.579324,cactusADM,1199000,1
+p5,0.854010,cpuload_all_0_4096,2533000,0
+p5,0.872667,cpuload_all_0_4096,2533000,0
+p5,0.846638,cpuload_all_0_4096,2533000,0
+p5,4.646025,gamess,1199000,0
+p5,0.772780,cpuload_all_0_4096,2133000,0
+p5,0.833799,cpuload_all_0_4096,2133000,0
+p5,0.785536,cpuload_all_0_4096,2133000,0
+p5,0.812088,cpuload_all_0_4096,1733000,0
+p5,0.842662,cpuload_all_0_4096,1733000,0
+p5,0.873174,cpuload_all_0_4096,1733000,0
+p5,0.749742,cpuload_all_0_4096,1199000,0
+p5,0.861600,cpuload_all_0_4096,1199000,0
+p5,0.740831,cpuload_all_0_4096,1199000,0
+p5,0.878215,cpuload_all_0_4096,2533000,1
+p5,4.648369,gamess,1199000,0
+p5,0.851396,cpuload_all_0_4096,2533000,1
+p5,0.897661,cpuload_all_0_4096,2533000,1
+p5,0.812152,cpuload_all_0_4096,2133000,1
+p5,0.714598,cpuload_all_0_4096,2133000,1
+p5,0.757689,cpuload_all_0_4096,2133000,1
+p5,0.701435,cpuload_all_0_4096,1733000,1
+p5,0.729500,cpuload_all_0_4096,1733000,1
+p5,0.775804,cpuload_all_0_4096,1733000,1
+p5,0.672070,cpuload_all_0_4096,1199000,1
+p5,0.736637,cpuload_all_0_4096,1199000,1
+p5,4.654220,gamess,1199000,0
+p5,0.671363,cpuload_all_0_4096,1199000,1
+p5,2.640790,cpuload_all_25_4096,2533000,0
+p5,2.675939,cpuload_all_25_4096,2533000,0
+p5,2.627218,cpuload_all_25_4096,2533000,0
+p5,2.406474,cpuload_all_25_4096,2133000,0
+p5,2.346722,cpuload_all_25_4096,2133000,0
+p5,2.369318,cpuload_all_25_4096,2133000,0
+p5,2.144143,cpuload_all_25_4096,1733000,0
+p5,2.171965,cpuload_all_25_4096,1733000,0
+p5,2.140744,cpuload_all_25_4096,1733000,0
+p5,8.177808,gamess,2533000,1
+p5,1.996354,cpuload_all_25_4096,1199000,0
+p5,2.021414,cpuload_all_25_4096,1199000,0
+p5,1.985476,cpuload_all_25_4096,1199000,0
+p5,2.627402,cpuload_all_25_4096,2533000,1
+p5,2.631298,cpuload_all_25_4096,2533000,1
+p5,2.643477,cpuload_all_25_4096,2533000,1
+p5,2.372052,cpuload_all_25_4096,2133000,1
+p5,2.383938,cpuload_all_25_4096,2133000,1
+p5,2.413223,cpuload_all_25_4096,2133000,1
+p5,2.134267,cpuload_all_25_4096,1733000,1
+p5,8.157443,gamess,2533000,1
+p5,2.160203,cpuload_all_25_4096,1733000,1
+p5,2.114727,cpuload_all_25_4096,1733000,1
+p5,1.984654,cpuload_all_25_4096,1199000,1
+p5,1.990461,cpuload_all_25_4096,1199000,1
+p5,1.951933,cpuload_all_25_4096,1199000,1
+p5,7.057936,cpuload_all_50_4096,2533000,0
+p5,7.168893,cpuload_all_50_4096,2533000,0
+p5,7.199291,cpuload_all_50_4096,2533000,0
+p5,6.315065,cpuload_all_50_4096,2133000,0
+p5,6.236755,cpuload_all_50_4096,2133000,0
+p5,8.166224,gamess,2533000,1
+p5,6.347815,cpuload_all_50_4096,2133000,0
+p5,5.087127,cpuload_all_50_4096,1733000,0
+p5,5.493658,cpuload_all_50_4096,1733000,0
+p5,5.146643,cpuload_all_50_4096,1733000,0
+p5,4.513503,cpuload_all_50_4096,1199000,0
+p5,4.511053,cpuload_all_50_4096,1199000,0
+p5,4.497410,cpuload_all_50_4096,1199000,0
+p5,7.173700,cpuload_all_50_4096,2533000,1
+p5,7.261405,cpuload_all_50_4096,2533000,1
+p5,7.165261,cpuload_all_50_4096,2533000,1
+p5,6.558264,gamess,2133000,1
+p5,6.207589,cpuload_all_50_4096,2133000,1
+p5,5.668987,cpuload_all_50_4096,2133000,1
+p5,6.330903,cpuload_all_50_4096,2133000,1
+p5,5.486378,cpuload_all_50_4096,1733000,1
+p5,5.104827,cpuload_all_50_4096,1733000,1
+p5,5.542071,cpuload_all_50_4096,1733000,1
+p5,4.503695,cpuload_all_50_4096,1199000,1
+p5,4.515183,cpuload_all_50_4096,1199000,1
+p5,4.554132,cpuload_all_50_4096,1199000,1
+p5,7.137547,cpuload_all_75_4096,2533000,0
+p5,6.568075,gamess,2133000,1
+p5,7.165094,cpuload_all_75_4096,2533000,0
+p5,7.277410,cpuload_all_75_4096,2533000,0
+p5,6.242224,cpuload_all_75_4096,2133000,0
+p5,6.242657,cpuload_all_75_4096,2133000,0
+p5,6.273437,cpuload_all_75_4096,2133000,0
+p5,5.478565,cpuload_all_75_4096,1733000,0
+p5,5.493526,cpuload_all_75_4096,1733000,0
+p5,5.509401,cpuload_all_75_4096,1733000,0
+p5,4.497245,cpuload_all_75_4096,1199000,0
+p5,4.504949,cpuload_all_75_4096,1199000,0
+p5,6.584880,gamess,2133000,1
+p5,4.502330,cpuload_all_75_4096,1199000,0
+p5,7.170678,cpuload_all_75_4096,2533000,1
+p5,7.253080,cpuload_all_75_4096,2533000,1
+p5,7.217964,cpuload_all_75_4096,2533000,1
+p5,6.230895,cpuload_all_75_4096,2133000,1
+p5,6.241443,cpuload_all_75_4096,2133000,1
+p5,6.280402,cpuload_all_75_4096,2133000,1
+p5,5.536217,cpuload_all_75_4096,1733000,1
+p5,5.463268,cpuload_all_75_4096,1733000,1
+p5,5.469271,cpuload_all_75_4096,1733000,1
+p5,5.591911,gamess,1733000,1
+p5,4.560277,cpuload_all_75_4096,1199000,1
+p5,4.500152,cpuload_all_75_4096,1199000,1
+p5,4.508502,cpuload_all_75_4096,1199000,1
+p5,7.152944,cpuload_all_100_4096,2533000,0
+p5,7.291106,cpuload_all_100_4096,2533000,0
+p5,7.200033,cpuload_all_100_4096,2533000,0
+p5,6.292750,cpuload_all_100_4096,2133000,0
+p5,6.342986,cpuload_all_100_4096,2133000,0
+p5,6.271561,cpuload_all_100_4096,2133000,0
+p5,5.484698,cpuload_all_100_4096,1733000,0
+p5,5.590762,gamess,1733000,1
+p5,5.546028,cpuload_all_100_4096,1733000,0
+p5,5.486870,cpuload_all_100_4096,1733000,0
+p5,4.519709,cpuload_all_100_4096,1199000,0
+p5,4.562169,cpuload_all_100_4096,1199000,0
+p5,4.502870,cpuload_all_100_4096,1199000,0
+p5,7.169664,cpuload_all_100_4096,2533000,1
+p5,7.207892,cpuload_all_100_4096,2533000,1
+p5,7.320017,cpuload_all_100_4096,2533000,1
+p5,6.182196,cpuload_all_100_4096,2133000,1
+p5,6.219267,cpuload_all_100_4096,2133000,1
+p5,5.606090,gamess,1733000,1
+p5,6.260335,cpuload_all_100_4096,2133000,1
+p5,5.547195,cpuload_all_100_4096,1733000,1
+p5,5.480366,cpuload_all_100_4096,1733000,1
+p5,5.550687,cpuload_all_100_4096,1733000,1
+p5,4.513061,cpuload_all_100_4096,1199000,1
+p5,4.515367,cpuload_all_100_4096,1199000,1
+p5,4.564656,cpuload_all_100_4096,1199000,1
+p5,8.193411,gamess,2533000,0
+p5,8.234117,gamess,2533000,0
+p5,8.272491,gamess,2533000,0
+p5,4.665334,gamess,1199000,1
+p5,6.774779,gamess,2133000,0
+p5,6.784397,gamess,2133000,0
+p5,6.777228,gamess,2133000,0
+p5,5.744892,gamess,1733000,0
+p5,5.723293,gamess,1733000,0
+p5,5.744791,gamess,1733000,0
+p5,4.653907,gamess,1199000,0
+p5,4.645816,gamess,1199000,0
+p5,4.664375,gamess,1199000,0
+p5,8.194004,gamess,2533000,1
+p5,4.660211,gamess,1199000,1
+p5,8.209686,gamess,2533000,1
+p5,8.217469,gamess,2533000,1
+p5,6.612294,gamess,2133000,1
+p5,6.601748,gamess,2133000,1
+p5,6.632108,gamess,2133000,1
+p5,5.700441,gamess,1733000,1
+p5,5.666211,gamess,1733000,1
+p5,5.665780,gamess,1733000,1
+p5,4.658415,gamess,1199000,1
+p5,4.655852,gamess,1199000,1
+p5,4.658684,gamess,1199000,1
+p5,4.653254,gamess,1199000,1
+p5,7.524706,gcc,2533000,0
+p5,7.504632,gcc,2533000,0
+p5,7.510743,gcc,2533000,0
+p5,6.520612,gcc,2133000,0
+p5,6.522233,gcc,2133000,0
+p5,6.522335,gcc,2133000,0
+p5,5.692374,gcc,1733000,0
+p5,5.691507,gcc,1733000,0
+p5,5.696498,gcc,1733000,0
+p5,7.517659,gcc,2533000,0
+p5,4.668081,gcc,1199000,0
+p5,4.668078,gcc,1199000,0
+p5,4.667298,gcc,1199000,0
+p5,7.509664,gcc,2533000,1
+p5,7.500540,gcc,2533000,1
+p5,7.512322,gcc,2533000,1
+p5,6.506582,gcc,2133000,1
+p5,6.525350,gcc,2133000,1
+p5,6.539059,gcc,2133000,1
+p5,5.697626,gcc,1733000,1
+p5,7.515308,gcc,2533000,0
+p5,5.680146,gcc,1733000,1
+p5,5.673336,gcc,1733000,1
+p5,4.674484,gcc,1199000,1
+p5,4.678828,gcc,1199000,1
+p5,4.677866,gcc,1199000,1
+p5,7.714908,gobmk,2533000,0
+p5,7.662191,gobmk,2533000,0
+p5,7.699907,gobmk,2533000,0
+p5,6.596096,gobmk,2133000,0
+p5,6.569694,gobmk,2133000,0
+p5,7.531896,gcc,2533000,0
+p5,6.580221,gobmk,2133000,0
+p5,5.688494,gobmk,1733000,0
+p5,5.693509,gobmk,1733000,0
+p5,5.688261,gobmk,1733000,0
+p5,4.655763,gobmk,1199000,0
+p5,4.656723,gobmk,1199000,0
+p5,4.654103,gobmk,1199000,0
+p5,7.622863,gobmk,2533000,1
+p5,7.668449,gobmk,2533000,1
+p5,7.623780,gobmk,2533000,1
+p5,6.573880,gcc,2133000,0
+p5,6.419837,gobmk,2133000,1
+p5,6.448390,gobmk,2133000,1
+p5,6.437001,gobmk,2133000,1
+p5,5.571506,gobmk,1733000,1
+p5,5.566390,gobmk,1733000,1
+p5,5.575227,gobmk,1733000,1
+p5,4.653421,gobmk,1199000,1
+p5,4.654321,gobmk,1199000,1
+p5,4.656171,gobmk,1199000,1
+p5,7.502195,gromacs,2533000,0
+p5,6.568729,gcc,2133000,0
+p5,7.513457,gromacs,2533000,0
+p5,7.467903,gromacs,2533000,0
+p5,6.535809,gromacs,2133000,0
+p5,6.522676,gromacs,2133000,0
+p5,6.535997,gromacs,2133000,0
+p5,5.699971,gromacs,1733000,0
+p5,5.688172,gromacs,1733000,0
+p5,5.682767,gromacs,1733000,0
+p5,4.666452,gromacs,1199000,0
+p5,4.669046,gromacs,1199000,0
+p5,6.558337,gcc,2133000,0
+p5,4.668109,gromacs,1199000,0
+p5,7.484871,gromacs,2533000,1
+p5,7.503540,gromacs,2533000,1
+p5,7.486664,gromacs,2533000,1
+p5,6.398801,gromacs,2133000,1
+p5,6.426795,gromacs,2133000,1
+p5,6.407605,gromacs,2133000,1
+p5,5.561678,gromacs,1733000,1
+p5,5.560230,gromacs,1733000,1
+p5,5.557249,gromacs,1733000,1
+p5,5.699617,gcc,1733000,0
+p5,4.666550,gromacs,1199000,1
+p5,4.669595,gromacs,1199000,1
+p5,4.667167,gromacs,1199000,1
+p5,7.802297,h264ref,2533000,0
+p5,7.748330,h264ref,2533000,0
+p5,7.815680,h264ref,2533000,0
+p5,6.598452,h264ref,2133000,0
+p5,6.617417,h264ref,2133000,0
+p5,6.669388,h264ref,2133000,0
+p5,5.688741,h264ref,1733000,0
+p5,5.697469,gcc,1733000,0
+p5,5.699873,h264ref,1733000,0
+p5,5.719166,h264ref,1733000,0
+p5,4.545853,h264ref,1199000,0
+p5,4.665656,h264ref,1199000,0
+p5,4.680843,h264ref,1199000,0
+p5,7.760694,h264ref,2533000,1
+p5,7.798183,h264ref,2533000,1
+p5,7.775371,h264ref,2533000,1
+p5,6.495456,h264ref,2133000,1
+p5,6.462292,h264ref,2133000,1
+p5,5.697895,gcc,1733000,0
+p5,6.466792,h264ref,2133000,1
+p5,5.576174,h264ref,1733000,1
+p5,5.581303,h264ref,1733000,1
+p5,5.556726,h264ref,1733000,1
+p5,4.674406,h264ref,1199000,1
+p5,4.666606,h264ref,1199000,1
+p5,4.663231,h264ref,1199000,1
+p5,8.159735,hmmer,2533000,0
+p5,8.126072,hmmer,2533000,0
+p5,8.182795,hmmer,2533000,0
+p5,4.679084,gcc,1199000,0
+p5,6.628760,hmmer,2133000,0
+p5,6.684756,hmmer,2133000,0
+p5,6.646070,hmmer,2133000,0
+p5,5.662834,hmmer,1733000,0
+p5,5.665183,hmmer,1733000,0
+p5,5.646857,hmmer,1733000,0
+p5,4.667367,hmmer,1199000,0
+p5,4.657812,hmmer,1199000,0
+p5,4.648735,hmmer,1199000,0
+p5,8.117713,hmmer,2533000,1
+p5,4.678602,gcc,1199000,0
+p5,8.039492,hmmer,2533000,1
+p5,8.111983,hmmer,2533000,1
+p5,6.522864,hmmer,2133000,1
+p5,6.585317,hmmer,2133000,1
+p5,6.484958,hmmer,2133000,1
+p5,5.576368,hmmer,1733000,1
+p5,5.546797,hmmer,1733000,1
+p5,5.584847,hmmer,1733000,1
+p5,4.644732,hmmer,1199000,1
+p5,4.645617,hmmer,1199000,1
+p5,4.680925,gcc,1199000,0
+p5,4.647741,hmmer,1199000,1
+p5,7.284958,lbm,2533000,0
+p5,7.296222,lbm,2533000,0
+p5,7.299259,lbm,2533000,0
+p5,6.467159,lbm,2133000,0
+p5,6.416261,lbm,2133000,0
+p5,6.423684,lbm,2133000,0
+p5,5.543831,lbm,1733000,0
+p5,5.568186,lbm,1733000,0
+p5,5.610465,lbm,1733000,0
+p5,7.540153,gcc,2533000,1
+p5,4.607057,lbm,1199000,0
+p5,4.607270,lbm,1199000,0
+p5,4.614859,lbm,1199000,0
+p5,7.399501,lbm,2533000,1
+p5,7.298686,lbm,2533000,1
+p5,7.337862,lbm,2533000,1
+p5,6.292499,lbm,2133000,1
+p5,6.312462,lbm,2133000,1
+p5,6.287299,lbm,2133000,1
+p5,5.435283,lbm,1733000,1
+p5,7.546099,gcc,2533000,1
+p5,5.495095,lbm,1733000,1
+p5,5.494393,lbm,1733000,1
+p5,4.608550,lbm,1199000,1
+p5,4.604511,lbm,1199000,1
+p5,4.594630,lbm,1199000,1
+p5,7.436663,leslie3d,2533000,0
+p5,7.521856,leslie3d,2533000,0
+p5,7.499173,leslie3d,2533000,0
+p5,6.570131,leslie3d,2133000,0
+p5,6.577533,leslie3d,2133000,0
+p5,7.544440,gcc,2533000,1
+p5,6.552691,leslie3d,2133000,0
+p5,5.680476,leslie3d,1733000,0
+p5,5.680609,leslie3d,1733000,0
+p5,5.681132,leslie3d,1733000,0
+p5,4.684513,leslie3d,1199000,0
+p5,4.672523,leslie3d,1199000,0
+p5,4.676029,leslie3d,1199000,0
+p5,7.542559,leslie3d,2533000,1
+p5,7.496425,leslie3d,2533000,1
+p5,7.510778,leslie3d,2533000,1
+p5,6.447566,gcc,2133000,1
+p5,6.436771,leslie3d,2133000,1
+p5,6.404041,leslie3d,2133000,1
+p5,6.390745,leslie3d,2133000,1
+p5,5.549777,leslie3d,1733000,1
+p5,5.530712,leslie3d,1733000,1
+p5,5.558986,leslie3d,1733000,1
+p5,4.665363,leslie3d,1199000,1
+p5,4.668496,leslie3d,1199000,1
+p5,4.687140,leslie3d,1199000,1
+p5,6.985403,mcf,2533000,0
+p5,6.441932,gcc,2133000,1
+p5,6.943078,mcf,2533000,0
+p5,7.046350,mcf,2533000,0
+p5,6.241018,mcf,2133000,0
+p5,6.229739,mcf,2133000,0
+p5,6.221255,mcf,2133000,0
+p5,5.492375,mcf,1733000,0
+p5,5.406696,mcf,1733000,0
+p5,5.482329,mcf,1733000,0
+p5,4.577629,mcf,1199000,0
+p5,4.527926,mcf,1199000,0
+p5,6.438081,gcc,2133000,1
+p5,4.591710,mcf,1199000,0
+p5,7.094030,mcf,2533000,1
+p5,7.021807,mcf,2533000,1
+p5,6.999464,mcf,2533000,1
+p5,6.046786,mcf,2133000,1
+p5,6.207250,mcf,2133000,1
+p5,6.075036,mcf,2133000,1
+p5,5.326328,mcf,1733000,1
+p5,5.372372,mcf,1733000,1
+p5,5.325025,mcf,1733000,1
+p5,5.587672,gcc,1733000,1
+p5,4.577952,mcf,1199000,1
+p5,4.495973,mcf,1199000,1
+p5,4.540163,mcf,1199000,1
+p5,6.809389,milc,2533000,0
+p5,6.873574,milc,2533000,0
+p5,7.025772,milc,2533000,0
+p5,6.235689,milc,2133000,0
+p5,6.064213,milc,2133000,0
+p5,6.118070,milc,2133000,0
+p5,5.410872,milc,1733000,0
+p5,5.589968,gcc,1733000,1
+p5,5.414891,milc,1733000,0
+p5,5.419682,milc,1733000,0
+p5,4.471750,milc,1199000,0
+p5,4.436439,milc,1199000,0
+p5,4.480959,milc,1199000,0
+p5,6.818508,milc,2533000,1
+p5,6.828204,milc,2533000,1
+p5,6.841546,milc,2533000,1
+p5,6.077582,milc,2133000,1
+p5,6.092049,milc,2133000,1
+p5,5.593936,gcc,1733000,1
+p5,5.907360,milc,2133000,1
+p5,5.210057,milc,1733000,1
+p5,5.232289,milc,1733000,1
+p5,5.299617,milc,1733000,1
+p5,4.457711,milc,1199000,1
+p5,4.482401,milc,1199000,1
+p5,4.512150,milc,1199000,1
+p5,6.903034,namd,2533000,0
+p5,6.887896,namd,2533000,0
+p5,6.983032,namd,2533000,0
+p5,4.694492,gcc,1199000,1
+p5,6.055036,namd,2133000,0
+p5,6.052936,namd,2133000,0
+p5,6.041005,namd,2133000,0
+p5,5.322259,namd,1733000,0
+p5,5.400682,namd,1733000,0
+p5,5.257273,namd,1733000,0
+p5,4.495473,namd,1199000,0
+p5,4.496817,namd,1199000,0
+p5,4.469679,namd,1199000,0
+p5,7.004345,namd,2533000,1
+p5,4.687417,gcc,1199000,1
+p5,6.990854,namd,2533000,1
+p5,7.048277,namd,2533000,1
+p5,5.909397,namd,2133000,1
+p5,6.122505,namd,2133000,1
+p5,5.954230,namd,2133000,1
+p5,5.272382,namd,1733000,1
+p5,5.131582,namd,1733000,1
+p5,5.168980,namd,1733000,1
+p5,4.516490,namd,1199000,1
+p5,4.495657,namd,1199000,1
+p5,4.687546,gcc,1199000,1
+p5,4.469481,namd,1199000,1
+p5,7.957052,omnetpp,2533000,0
+p5,7.911801,omnetpp,2533000,0
+p5,7.955896,omnetpp,2533000,0
+p5,6.590525,omnetpp,2133000,0
+p5,6.518209,omnetpp,2133000,0
+p5,6.569165,omnetpp,2133000,0
+p5,5.663171,omnetpp,1733000,0
+p5,5.638002,omnetpp,1733000,0
+p5,5.709367,omnetpp,1733000,0
+p5,7.651674,gobmk,2533000,0
+p5,4.660021,omnetpp,1199000,0
+p5,4.657736,omnetpp,1199000,0
+p5,4.657658,omnetpp,1199000,0
+p5,7.820370,omnetpp,2533000,1
+p5,7.868825,omnetpp,2533000,1
+p5,7.932100,omnetpp,2533000,1
+p5,6.480428,omnetpp,2133000,1
+p5,6.411368,omnetpp,2133000,1
+p5,6.460051,omnetpp,2133000,1
+p5,5.526284,omnetpp,1733000,1
+p5,7.719893,gobmk,2533000,0
+p5,5.573395,omnetpp,1733000,1
+p5,5.517702,omnetpp,1733000,1
+p5,4.625244,omnetpp,1199000,1
+p5,4.643224,omnetpp,1199000,1
+p5,4.667513,omnetpp,1199000,1
+p5,6.857393,povray,2533000,0
+p5,6.618302,povray,2533000,0
+p5,6.545578,povray,2533000,0
+p5,5.748432,povray,2133000,0
+p5,5.896365,povray,2133000,0
+p5,7.718437,gobmk,2533000,0
+p5,5.570973,povray,2133000,0
+p5,5.056135,povray,1733000,0
+p5,5.037494,povray,1733000,0
+p5,5.137851,povray,1733000,0
+p5,4.314119,povray,1199000,0
+p5,4.281910,povray,1199000,0
+p5,4.315016,povray,1199000,0
+p5,7.081585,povray,2533000,1
+p5,6.534799,povray,2533000,1
+p5,6.577317,povray,2533000,1
+p5,6.493443,gobmk,2133000,0
+p5,5.763295,povray,2133000,1
+p5,5.759805,povray,2133000,1
+p5,5.512581,povray,2133000,1
+p5,4.911186,povray,1733000,1
+p5,4.944603,povray,1733000,1
+p5,4.916866,povray,1733000,1
+p5,4.349746,povray,1199000,1
+p5,4.307939,povray,1199000,1
+p5,4.267817,povray,1199000,1
+p5,7.696953,sjeng,2533000,0
+p5,6.467342,gobmk,2133000,0
+p5,7.726224,sjeng,2533000,0
+p5,7.730700,sjeng,2533000,0
+p5,6.592277,sjeng,2133000,0
+p5,6.606083,sjeng,2133000,0
+p5,6.587024,sjeng,2133000,0
+p5,5.710990,sjeng,1733000,0
+p5,5.699744,sjeng,1733000,0
+p5,5.693041,sjeng,1733000,0
+p5,4.688333,sjeng,1199000,0
+p5,4.686162,sjeng,1199000,0
+p5,6.484501,gobmk,2133000,0
+p5,4.689402,sjeng,1199000,0
+p5,7.682814,sjeng,2533000,1
+p5,7.691952,sjeng,2533000,1
+p5,7.669504,sjeng,2533000,1
+p5,6.464310,sjeng,2133000,1
+p5,6.490712,sjeng,2133000,1
+p5,6.459992,sjeng,2133000,1
+p5,5.592805,sjeng,1733000,1
+p5,5.589669,sjeng,1733000,1
+p5,5.587299,sjeng,1733000,1
+p5,5.610656,gobmk,1733000,0
+p5,4.679524,sjeng,1199000,1
+p5,4.678076,sjeng,1199000,1
+p5,4.681105,sjeng,1199000,1
+p5,6.292316,soplex,2533000,0
+p5,6.119347,soplex,2533000,0
+p5,6.594976,soplex,2533000,0
+p5,6.323776,soplex,2533000,0
+p5,5.820424,soplex,2133000,0
+p5,5.982474,soplex,2133000,0
+p5,5.721943,soplex,2133000,0
+p5,5.591265,gobmk,1733000,0
+p5,5.459451,soplex,1733000,0
+p5,5.043503,soplex,1733000,0
+p5,5.360936,soplex,1733000,0
+p5,4.390133,soplex,1199000,0
+p5,4.555781,soplex,1199000,0
+p5,4.488092,soplex,1199000,0
+p5,6.571329,soplex,2533000,1
+p5,6.305655,soplex,2533000,1
+p5,6.621175,soplex,2533000,1
+p5,5.688944,soplex,2133000,1
+p5,5.586189,gobmk,1733000,0
+p5,5.470215,soplex,2133000,1
+p5,5.805409,soplex,2133000,1
+p5,5.122386,soplex,1733000,1
+p5,5.214366,soplex,1733000,1
+p5,4.968534,soplex,1733000,1
+p5,4.396816,soplex,1199000,1
+p5,4.480204,soplex,1199000,1
+p5,4.249754,soplex,1199000,1
+p5,6.727288,sphinx3,2533000,0
+p5,6.744798,sphinx3,2533000,0
+p5,4.665118,gobmk,1199000,0
+p5,6.773987,sphinx3,2533000,0
+p5,5.878252,sphinx3,2133000,0
+p5,5.970852,sphinx3,2133000,0
+p5,5.921857,sphinx3,2133000,0
+p5,5.124370,sphinx3,1733000,0
+p5,5.363358,sphinx3,1733000,0
+p5,5.251521,sphinx3,1733000,0
+p5,4.289309,sphinx3,1199000,0
+p5,4.364812,sphinx3,1199000,0
+p5,4.512187,sphinx3,1199000,0
+p5,4.663427,gobmk,1199000,0
+p5,6.795668,sphinx3,2533000,1
+p5,6.780493,sphinx3,2533000,1
+p5,6.888358,sphinx3,2533000,1
+p5,5.745691,sphinx3,2133000,1
+p5,5.771002,sphinx3,2133000,1
+p5,5.733741,sphinx3,2133000,1
+p5,4.918981,sphinx3,1733000,1
+p5,5.141676,sphinx3,1733000,1
+p5,5.113083,sphinx3,1733000,1
+p5,4.399736,sphinx3,1199000,1
+p5,4.652477,gobmk,1199000,0
+p5,4.391718,sphinx3,1199000,1
+p5,4.369798,sphinx3,1199000,1
+p5,7.428000,zeusmp,2533000,0
+p5,7.362024,zeusmp,2533000,0
+p5,7.298864,zeusmp,2533000,0
+p5,6.479775,zeusmp,2133000,0
+p5,6.457404,zeusmp,2133000,0
+p5,6.484006,zeusmp,2133000,0
+p5,5.612756,zeusmp,1733000,0
+p5,5.653358,zeusmp,1733000,0
+p5,7.644873,gobmk,2533000,1
+p5,5.646926,zeusmp,1733000,0
+p5,4.692352,zeusmp,1199000,0
+p5,4.659847,zeusmp,1199000,0
+p5,4.573474,zeusmp,1199000,0
+p5,7.265687,zeusmp,2533000,1
+p5,7.302763,zeusmp,2533000,1
+p5,7.250165,zeusmp,2533000,1
+p5,6.191387,zeusmp,2133000,1
+p5,6.277512,zeusmp,2133000,1
+p5,6.267814,zeusmp,2133000,1
+p5,7.629739,gobmk,2533000,1
+p5,5.429415,zeusmp,1733000,1
+p5,5.437947,zeusmp,1733000,1
+p5,5.425218,zeusmp,1733000,1
+p5,4.624974,zeusmp,1199000,1
+p5,4.625890,zeusmp,1199000,1
+p5,4.667500,zeusmp,1199000,1
+p5,7.655244,gobmk,2533000,1
+p5,6.403427,gobmk,2133000,1
+p5,6.402417,gobmk,2133000,1
+p5,6.398100,gobmk,2133000,1
+p5,5.561803,gobmk,1733000,1
+p5,5.553036,gobmk,1733000,1
+p5,5.546647,gobmk,1733000,1
+p5,4.650261,gobmk,1199000,1
+p5,4.670206,gobmk,1199000,1
+p5,4.663084,gobmk,1199000,1
+p5,7.509112,gromacs,2533000,0
+p5,7.493208,gromacs,2533000,0
+p5,7.508787,gromacs,2533000,0
+p5,6.537047,gromacs,2133000,0
+p5,6.526712,gromacs,2133000,0
+p5,6.459224,gromacs,2133000,0
+p5,5.670596,gromacs,1733000,0
+p5,5.669618,gromacs,1733000,0
+p5,5.680759,gromacs,1733000,0
+p5,4.670946,gromacs,1199000,0
+p5,4.667443,gromacs,1199000,0
+p5,4.666610,gromacs,1199000,0
+p5,7.518853,gromacs,2533000,1
+p5,7.457678,gromacs,2533000,1
+p5,7.484535,gromacs,2533000,1
+p5,6.358241,gromacs,2133000,1
+p5,6.365669,gromacs,2133000,1
+p5,6.364062,gromacs,2133000,1
+p5,5.549202,gromacs,1733000,1
+p5,5.561498,gromacs,1733000,1
+p5,5.552655,gromacs,1733000,1
+p5,4.672509,gromacs,1199000,1
+p5,4.671969,gromacs,1199000,1
+p5,4.674032,gromacs,1199000,1
+p5,7.801495,h264ref,2533000,0
+p5,7.776977,h264ref,2533000,0
+p5,7.769628,h264ref,2533000,0
+p5,6.506188,h264ref,2133000,0
+p5,6.450846,h264ref,2133000,0
+p5,6.443079,h264ref,2133000,0
+p5,5.586661,h264ref,1733000,0
+p5,5.603041,h264ref,1733000,0
+p5,5.597441,h264ref,1733000,0
+p5,4.670330,h264ref,1199000,0
+p5,4.666141,h264ref,1199000,0
+p5,4.672398,h264ref,1199000,0
+p5,7.790682,h264ref,2533000,1
+p5,7.726759,h264ref,2533000,1
+p5,7.720738,h264ref,2533000,1
+p5,6.465508,h264ref,2133000,1
+p5,6.429409,h264ref,2133000,1
+p5,6.439005,h264ref,2133000,1
+p5,5.544247,h264ref,1733000,1
+p5,5.558855,h264ref,1733000,1
+p5,5.542444,h264ref,1733000,1
+p5,4.659084,h264ref,1199000,1
+p5,4.656712,h264ref,1199000,1
+p5,4.668222,h264ref,1199000,1
+p5,7.979032,hmmer,2533000,0
+p5,8.078153,hmmer,2533000,0
+p5,8.102020,hmmer,2533000,0
+p5,6.530005,hmmer,2133000,0
+p5,6.504826,hmmer,2133000,0
+p5,6.475802,hmmer,2133000,0
+p5,5.508733,hmmer,1733000,0
+p5,5.569385,hmmer,1733000,0
+p5,5.592673,hmmer,1733000,0
+p5,4.626704,hmmer,1199000,0
+p5,4.631743,hmmer,1199000,0
+p5,4.629606,hmmer,1199000,0
+p5,8.007460,hmmer,2533000,1
+p5,7.997322,hmmer,2533000,1
+p5,7.943983,hmmer,2533000,1
+p5,6.465712,hmmer,2133000,1
+p5,6.539431,hmmer,2133000,1
+p5,6.591565,hmmer,2133000,1
+p5,5.484135,hmmer,1733000,1
+p5,5.549085,hmmer,1733000,1
+p5,5.504663,hmmer,1733000,1
+p5,4.639017,hmmer,1199000,1
+p5,4.633557,hmmer,1199000,1
+p5,4.636447,hmmer,1199000,1
+p5,7.294768,lbm,2533000,0
+p5,7.287238,lbm,2533000,0
+p5,7.275259,lbm,2533000,0
+p5,6.388228,lbm,2133000,0
+p5,6.460905,lbm,2133000,0
+p5,6.442295,lbm,2133000,0
+p5,5.490888,lbm,1733000,0
+p5,5.487069,lbm,1733000,0
+p5,5.488370,lbm,1733000,0
+p5,4.611462,lbm,1199000,0
+p5,4.611396,lbm,1199000,0
+p5,4.602162,lbm,1199000,0
+p5,7.303777,lbm,2533000,1
+p5,7.227586,lbm,2533000,1
+p5,7.305695,lbm,2533000,1
+p5,6.283461,lbm,2133000,1
+p5,6.292307,lbm,2133000,1
+p5,6.289453,lbm,2133000,1
+p5,5.470930,lbm,1733000,1
+p5,5.473528,lbm,1733000,1
+p5,5.406795,lbm,1733000,1
+p5,4.553934,lbm,1199000,1
+p5,4.603702,lbm,1199000,1
+p5,4.566047,lbm,1199000,1
+p5,7.558139,leslie3d,2533000,0
+p5,7.508338,leslie3d,2533000,0
+p5,7.508238,leslie3d,2533000,0
+p5,6.520634,leslie3d,2133000,0
+p5,6.539916,leslie3d,2133000,0
+p5,6.514359,leslie3d,2133000,0
+p5,5.675605,leslie3d,1733000,0
+p5,5.689840,leslie3d,1733000,0
+p5,5.691122,leslie3d,1733000,0
+p5,4.658210,leslie3d,1199000,0
+p5,4.680479,leslie3d,1199000,0
+p5,4.699151,leslie3d,1199000,0
+p5,7.490177,leslie3d,2533000,1
+p5,7.486099,leslie3d,2533000,1
+p5,7.579736,leslie3d,2533000,1
+p5,6.368766,leslie3d,2133000,1
+p5,6.412277,leslie3d,2133000,1
+p5,6.381998,leslie3d,2133000,1
+p5,5.550767,leslie3d,1733000,1
+p5,5.547972,leslie3d,1733000,1
+p5,5.550622,leslie3d,1733000,1
+p5,4.681770,leslie3d,1199000,1
+p5,4.688762,leslie3d,1199000,1
+p5,4.677069,leslie3d,1199000,1
+p5,6.902917,mcf,2533000,0
+p5,7.080362,mcf,2533000,0
+p5,6.975160,mcf,2533000,0
+p5,6.186018,mcf,2133000,0
+p5,6.139584,mcf,2133000,0
+p5,6.042218,mcf,2133000,0
+p5,5.475332,mcf,1733000,0
+p5,5.492071,mcf,1733000,0
+p5,5.357540,mcf,1733000,0
+p5,4.521457,mcf,1199000,0
+p5,4.470861,mcf,1199000,0
+p5,4.514733,mcf,1199000,0
+p5,6.831698,mcf,2533000,1
+p5,7.078649,mcf,2533000,1
+p5,6.854792,mcf,2533000,1
+p5,6.240123,mcf,2133000,1
+p5,6.192022,mcf,2133000,1
+p5,6.245980,mcf,2133000,1
+p5,5.427232,mcf,1733000,1
+p5,5.515175,mcf,1733000,1
+p5,5.448460,mcf,1733000,1
+p5,4.572566,mcf,1199000,1
+p5,4.613933,mcf,1199000,1
+p5,4.642534,mcf,1199000,1
+p5,7.064241,milc,2533000,0
+p5,7.084312,milc,2533000,0
+p5,7.156765,milc,2533000,0
+p5,6.240881,milc,2133000,0
+p5,6.209347,milc,2133000,0
+p5,6.235164,milc,2133000,0
+p5,5.444720,milc,1733000,0
+p5,5.469648,milc,1733000,0
+p5,5.398460,milc,1733000,0
+p5,4.530153,milc,1199000,0
+p5,4.569879,milc,1199000,0
+p5,4.625646,milc,1199000,0
+p5,7.125706,milc,2533000,1
+p5,6.834380,milc,2533000,1
+p5,6.775301,milc,2533000,1
+p5,6.198281,milc,2133000,1
+p5,6.176919,milc,2133000,1
+p5,6.228902,milc,2133000,1
+p5,5.373103,milc,1733000,1
+p5,5.240862,milc,1733000,1
+p5,5.394451,milc,1733000,1
+p5,4.433215,milc,1199000,1
+p5,4.423029,milc,1199000,1
+p5,4.432227,milc,1199000,1
+p5,6.813929,namd,2533000,0
+p5,6.943568,namd,2533000,0
+p5,6.803185,namd,2533000,0
+p5,6.295293,namd,2133000,0
+p5,6.097163,namd,2133000,0
+p5,5.977446,namd,2133000,0
+p5,5.383184,namd,1733000,0
+p5,5.577463,namd,1733000,0
+p5,5.504536,namd,1733000,0
+p5,4.608712,namd,1199000,0
+p5,4.506342,namd,1199000,0
+p5,4.480106,namd,1199000,0
+p5,6.999818,namd,2533000,1
+p5,7.186704,namd,2533000,1
+p5,6.985859,namd,2533000,1
+p5,6.155200,namd,2133000,1
+p5,5.944509,namd,2133000,1
+p5,6.140264,namd,2133000,1
+p5,5.543833,namd,1733000,1
+p5,5.443347,namd,1733000,1
+p5,5.413079,namd,1733000,1
+p5,4.594358,namd,1199000,1
+p5,4.514354,namd,1199000,1
+p5,4.620580,namd,1199000,1
+p5,7.946133,omnetpp,2533000,0
+p5,7.966723,omnetpp,2533000,0
+p5,7.968794,omnetpp,2533000,0
+p5,6.607948,omnetpp,2133000,0
+p5,6.567509,omnetpp,2133000,0
+p5,6.547769,omnetpp,2133000,0
+p5,5.609282,omnetpp,1733000,0
+p5,5.665703,omnetpp,1733000,0
+p5,5.665051,omnetpp,1733000,0
+p5,4.670185,omnetpp,1199000,0
+p5,4.651478,omnetpp,1199000,0
+p5,4.667170,omnetpp,1199000,0
+p5,7.890242,omnetpp,2533000,1
+p5,7.861953,omnetpp,2533000,1
+p5,7.913724,omnetpp,2533000,1
+p5,6.476828,omnetpp,2133000,1
+p5,6.453396,omnetpp,2133000,1
+p5,6.489191,omnetpp,2133000,1
+p5,5.585820,omnetpp,1733000,1
+p5,5.644585,omnetpp,1733000,1
+p5,5.612162,omnetpp,1733000,1
+p5,4.639715,omnetpp,1199000,1
+p5,4.627714,omnetpp,1199000,1
+p5,4.638748,omnetpp,1199000,1
+p5,6.473481,povray,2533000,0
+p5,6.582476,povray,2533000,0
+p5,6.443021,povray,2533000,0
+p5,5.406471,povray,2133000,0
+p5,5.696055,povray,2133000,0
+p5,5.707160,povray,2133000,0
+p5,5.239487,povray,1733000,0
+p5,5.313918,povray,1733000,0
+p5,5.227393,povray,1733000,0
+p5,4.426355,povray,1199000,0
+p5,4.384379,povray,1199000,0
+p5,4.556506,povray,1199000,0
+p5,6.530638,povray,2533000,1
+p5,6.990928,povray,2533000,1
+p5,6.685843,povray,2533000,1
+p5,5.698527,povray,2133000,1
+p5,5.771019,povray,2133000,1
+p5,5.951864,povray,2133000,1
+p5,5.091212,povray,1733000,1
+p5,5.325439,povray,1733000,1
+p5,5.135271,povray,1733000,1
+p5,4.384659,povray,1199000,1
+p5,4.534944,povray,1199000,1
+p5,4.401020,povray,1199000,1
+p5,7.679278,sjeng,2533000,0
+p5,7.672679,sjeng,2533000,0
+p5,7.681795,sjeng,2533000,0
+p5,6.605545,sjeng,2133000,0
+p5,6.615878,sjeng,2133000,0
+p5,6.614613,sjeng,2133000,0
+p5,5.734085,sjeng,1733000,0
+p5,5.701221,sjeng,1733000,0
+p5,5.714256,sjeng,1733000,0
+p5,4.673072,sjeng,1199000,0
+p5,4.678507,sjeng,1199000,0
+p5,4.668716,sjeng,1199000,0
+p5,7.677135,sjeng,2533000,1
+p5,7.607377,sjeng,2533000,1
+p5,7.646293,sjeng,2533000,1
+p5,6.462645,sjeng,2133000,1
+p5,6.463606,sjeng,2133000,1
+p5,6.464383,sjeng,2133000,1
+p5,5.675409,sjeng,1733000,1
+p5,5.682335,sjeng,1733000,1
+p5,5.620796,sjeng,1733000,1
+p5,4.666066,sjeng,1199000,1
+p5,4.682251,sjeng,1199000,1
+p5,4.672334,sjeng,1199000,1
+p5,6.644492,soplex,2533000,0
+p5,6.369862,soplex,2533000,0
+p5,6.601246,soplex,2533000,0
+p5,5.892519,soplex,2133000,0
+p5,5.682532,soplex,2133000,0
+p5,5.934204,soplex,2133000,0
+p5,5.219013,soplex,1733000,0
+p5,5.274485,soplex,1733000,0
+p5,5.301000,soplex,1733000,0
+p5,4.436746,soplex,1199000,0
+p5,4.406128,soplex,1199000,0
+p5,4.365884,soplex,1199000,0
+p5,6.209692,soplex,2533000,1
+p5,6.409892,soplex,2533000,1
+p5,6.517424,soplex,2533000,1
+p5,5.890363,soplex,2133000,1
+p5,5.753500,soplex,2133000,1
+p5,5.864593,soplex,2133000,1
+p5,5.014087,soplex,1733000,1
+p5,5.256140,soplex,1733000,1
+p5,5.241607,soplex,1733000,1
+p5,4.393847,soplex,1199000,1
+p5,4.331529,soplex,1199000,1
+p5,4.310582,soplex,1199000,1
+p5,6.943357,sphinx3,2533000,0
+p5,6.893710,sphinx3,2533000,0
+p5,6.931267,sphinx3,2533000,0
+p5,5.943833,sphinx3,2133000,0
+p5,6.151754,sphinx3,2133000,0
+p5,5.962591,sphinx3,2133000,0
+p5,5.319178,sphinx3,1733000,0
+p5,5.378605,sphinx3,1733000,0
+p5,5.391005,sphinx3,1733000,0
+p5,4.594212,sphinx3,1199000,0
+p5,4.575232,sphinx3,1199000,0
+p5,4.446991,sphinx3,1199000,0
+p5,6.977981,sphinx3,2533000,1
+p5,6.824674,sphinx3,2533000,1
+p5,6.758247,sphinx3,2533000,1
+p5,6.042991,sphinx3,2133000,1
+p5,5.995314,sphinx3,2133000,1
+p5,5.854628,sphinx3,2133000,1
+p5,5.289029,sphinx3,1733000,1
+p5,5.222386,sphinx3,1733000,1
+p5,5.237890,sphinx3,1733000,1
+p5,4.407965,sphinx3,1199000,1
+p5,4.399261,sphinx3,1199000,1
+p5,4.396668,sphinx3,1199000,1
+p5,7.226403,zeusmp,2533000,0
+p5,7.318381,zeusmp,2533000,0
+p5,7.239982,zeusmp,2533000,0
+p5,6.337579,zeusmp,2133000,0
+p5,6.327664,zeusmp,2133000,0
+p5,6.329323,zeusmp,2133000,0
+p5,5.596654,zeusmp,1733000,0
+p5,5.645490,zeusmp,1733000,0
+p5,5.594366,zeusmp,1733000,0
+p5,4.647715,zeusmp,1199000,0
+p5,4.596574,zeusmp,1199000,0
+p5,4.620125,zeusmp,1199000,0
+p5,7.330602,zeusmp,2533000,1
+p5,7.259252,zeusmp,2533000,1
+p5,7.238597,zeusmp,2533000,1
+p5,6.289160,zeusmp,2133000,1
+p5,6.312909,zeusmp,2133000,1
+p5,6.283892,zeusmp,2133000,1
+p5,5.571671,zeusmp,1733000,1
+p5,5.617590,zeusmp,1733000,1
+p5,5.558945,zeusmp,1733000,1
+p5,4.626248,zeusmp,1199000,1
+p5,4.660729,zeusmp,1199000,1
+p5,4.592474,zeusmp,1199000,1
+p5,7.497223,bzip2,2533000,0
+p5,7.584725,bzip2,2533000,0
+p5,7.623329,bzip2,2533000,0
+p5,6.517835,bzip2,2133000,0
+p5,6.539237,bzip2,2133000,0
+p5,6.512138,bzip2,2133000,0
+p5,5.661761,bzip2,1733000,0
+p5,5.655831,bzip2,1733000,0
+p5,5.639667,bzip2,1733000,0
+p5,4.624081,bzip2,1199000,0
+p5,4.643123,bzip2,1199000,0
+p5,4.645906,bzip2,1199000,0
+p5,7.482304,bzip2,2533000,1
+p5,7.567518,bzip2,2533000,1
+p5,7.573622,bzip2,2533000,1
+p5,6.384043,bzip2,2133000,1
+p5,6.402303,bzip2,2133000,1
+p5,6.380359,bzip2,2133000,1
+p5,5.542890,bzip2,1733000,1
+p5,5.554701,bzip2,1733000,1
+p5,5.532464,bzip2,1733000,1
+p5,4.622438,bzip2,1199000,1
+p5,4.624392,bzip2,1199000,1
+p5,4.618307,bzip2,1199000,1
+p5,7.113072,cactusADM,2533000,0
+p5,7.274859,cactusADM,2533000,0
+p5,7.238854,cactusADM,2533000,0
+p5,6.235408,cactusADM,2133000,0
+p5,6.226261,cactusADM,2133000,0
+p5,6.362919,cactusADM,2133000,0
+p5,5.547659,cactusADM,1733000,0
+p5,5.569111,cactusADM,1733000,0
+p5,5.526496,cactusADM,1733000,0
+p5,4.591950,cactusADM,1199000,0
+p5,4.578882,cactusADM,1199000,0
+p5,4.612875,cactusADM,1199000,0
+p5,7.279994,cactusADM,2533000,1
+p5,7.229195,cactusADM,2533000,1
+p5,7.214511,cactusADM,2533000,1
+p5,6.235524,cactusADM,2133000,1
+p5,6.260476,cactusADM,2133000,1
+p5,6.143601,cactusADM,2133000,1
+p5,5.465943,cactusADM,1733000,1
+p5,5.462746,cactusADM,1733000,1
+p5,5.507150,cactusADM,1733000,1
+p5,4.570814,cactusADM,1199000,1
+p5,4.589074,cactusADM,1199000,1
+p5,4.607683,cactusADM,1199000,1
+p5,0.816586,cpuload_all_0_4096,2533000,0
+p5,0.772580,cpuload_all_0_4096,2533000,0
+p5,0.732160,cpuload_all_0_4096,2533000,0
+p5,0.730942,cpuload_all_0_4096,2133000,0
+p5,0.798471,cpuload_all_0_4096,2133000,0
+p5,0.810098,cpuload_all_0_4096,2133000,0
+p5,0.866761,cpuload_all_0_4096,1733000,0
+p5,0.829527,cpuload_all_0_4096,1733000,0
+p5,0.747212,cpuload_all_0_4096,1733000,0
+p5,0.730173,cpuload_all_0_4096,1199000,0
+p5,0.809231,cpuload_all_0_4096,1199000,0
+p5,0.651092,cpuload_all_0_4096,1199000,0
+p5,0.798084,cpuload_all_0_4096,2533000,1
+p5,0.802979,cpuload_all_0_4096,2533000,1
+p5,0.807589,cpuload_all_0_4096,2533000,1
+p5,0.777735,cpuload_all_0_4096,2133000,1
+p5,0.873324,cpuload_all_0_4096,2133000,1
+p5,0.756894,cpuload_all_0_4096,2133000,1
+p5,0.686404,cpuload_all_0_4096,1733000,1
+p5,0.676999,cpuload_all_0_4096,1733000,1
+p5,0.773405,cpuload_all_0_4096,1733000,1
+p5,0.911126,cpuload_all_0_4096,1199000,1
+p5,0.735864,cpuload_all_0_4096,1199000,1
+p5,0.943272,cpuload_all_0_4096,1199000,1
+p5,2.604358,cpuload_all_25_4096,2533000,0
+p5,2.619684,cpuload_all_25_4096,2533000,0
+p5,2.623157,cpuload_all_25_4096,2533000,0
+p5,2.314196,cpuload_all_25_4096,2133000,0
+p5,2.337121,cpuload_all_25_4096,2133000,0
+p5,2.348197,cpuload_all_25_4096,2133000,0
+p5,2.142244,cpuload_all_25_4096,1733000,0
+p5,2.194834,cpuload_all_25_4096,1733000,0
+p5,2.100407,cpuload_all_25_4096,1733000,0
+p5,1.940072,cpuload_all_25_4096,1199000,0
+p5,1.922868,cpuload_all_25_4096,1199000,0
+p5,1.962481,cpuload_all_25_4096,1199000,0
+p5,2.584539,cpuload_all_25_4096,2533000,1
+p5,2.560736,cpuload_all_25_4096,2533000,1
+p5,2.595780,cpuload_all_25_4096,2533000,1
+p5,2.375332,cpuload_all_25_4096,2133000,1
+p5,2.338403,cpuload_all_25_4096,2133000,1
+p5,2.352211,cpuload_all_25_4096,2133000,1
+p5,2.128245,cpuload_all_25_4096,1733000,1
+p5,2.123874,cpuload_all_25_4096,1733000,1
+p5,2.148701,cpuload_all_25_4096,1733000,1
+p5,1.924020,cpuload_all_25_4096,1199000,1
+p5,1.928965,cpuload_all_25_4096,1199000,1
+p5,1.948891,cpuload_all_25_4096,1199000,1
+p5,7.173039,cpuload_all_50_4096,2533000,0
+p5,7.156464,cpuload_all_50_4096,2533000,0
+p5,7.227943,cpuload_all_50_4096,2533000,0
+p5,6.336240,cpuload_all_50_4096,2133000,0
+p5,6.361080,cpuload_all_50_4096,2133000,0
+p5,6.364505,cpuload_all_50_4096,2133000,0
+p5,5.570146,cpuload_all_50_4096,1733000,0
+p5,5.371336,cpuload_all_50_4096,1733000,0
+p5,5.500142,cpuload_all_50_4096,1733000,0
+p5,4.518213,cpuload_all_50_4096,1199000,0
+p5,4.563556,cpuload_all_50_4096,1199000,0
+p5,4.526024,cpuload_all_50_4096,1199000,0
+p5,7.280868,cpuload_all_50_4096,2533000,1
+p5,7.276821,cpuload_all_50_4096,2533000,1
+p5,7.279610,cpuload_all_50_4096,2533000,1
+p5,6.269238,cpuload_all_50_4096,2133000,1
+p5,6.274423,cpuload_all_50_4096,2133000,1
+p5,5.572450,cpuload_all_50_4096,2133000,1
+p5,5.493332,cpuload_all_50_4096,1733000,1
+p5,5.481616,cpuload_all_50_4096,1733000,1
+p5,5.485912,cpuload_all_50_4096,1733000,1
+p5,4.525544,cpuload_all_50_4096,1199000,1
+p5,4.588796,cpuload_all_50_4096,1199000,1
+p5,4.588699,cpuload_all_50_4096,1199000,1
+p5,7.235796,cpuload_all_75_4096,2533000,0
+p5,7.176038,cpuload_all_75_4096,2533000,0
+p5,7.226101,cpuload_all_75_4096,2533000,0
+p5,6.366764,cpuload_all_75_4096,2133000,0
+p5,6.366574,cpuload_all_75_4096,2133000,0
+p5,6.303610,cpuload_all_75_4096,2133000,0
+p5,5.561177,cpuload_all_75_4096,1733000,0
+p5,5.492350,cpuload_all_75_4096,1733000,0
+p5,5.488715,cpuload_all_75_4096,1733000,0
+p5,4.523196,cpuload_all_75_4096,1199000,0
+p5,4.522140,cpuload_all_75_4096,1199000,0
+p5,4.575640,cpuload_all_75_4096,1199000,0
+p5,7.146750,cpuload_all_75_4096,2533000,1
+p5,7.191359,cpuload_all_75_4096,2533000,1
+p5,7.180570,cpuload_all_75_4096,2533000,1
+p5,6.349883,cpuload_all_75_4096,2133000,1
+p5,6.220384,cpuload_all_75_4096,2133000,1
+p5,6.256777,cpuload_all_75_4096,2133000,1
+p5,5.396974,cpuload_all_75_4096,1733000,1
+p5,5.485385,cpuload_all_75_4096,1733000,1
+p5,5.491532,cpuload_all_75_4096,1733000,1
+p5,4.575498,cpuload_all_75_4096,1199000,1
+p5,4.596649,cpuload_all_75_4096,1199000,1
+p5,4.530986,cpuload_all_75_4096,1199000,1
+p5,7.241545,cpuload_all_100_4096,2533000,0
+p5,7.231433,cpuload_all_100_4096,2533000,0
+p5,7.197141,cpuload_all_100_4096,2533000,0
+p5,6.302733,cpuload_all_100_4096,2133000,0
+p5,6.320980,cpuload_all_100_4096,2133000,0
+p5,6.327021,cpuload_all_100_4096,2133000,0
+p5,5.524778,cpuload_all_100_4096,1733000,0
+p5,5.524568,cpuload_all_100_4096,1733000,0
+p5,5.527858,cpuload_all_100_4096,1733000,0
+p5,4.581792,cpuload_all_100_4096,1199000,0
+p5,4.592749,cpuload_all_100_4096,1199000,0
+p5,4.520580,cpuload_all_100_4096,1199000,0
+p5,7.179669,cpuload_all_100_4096,2533000,1
+p5,7.231748,cpuload_all_100_4096,2533000,1
+p5,7.190693,cpuload_all_100_4096,2533000,1
+p5,6.312556,cpuload_all_100_4096,2133000,1
+p5,6.276734,cpuload_all_100_4096,2133000,1
+p5,6.292643,cpuload_all_100_4096,2133000,1
+p5,5.567311,cpuload_all_100_4096,1733000,1
+p5,5.502547,cpuload_all_100_4096,1733000,1
+p5,5.507439,cpuload_all_100_4096,1733000,1
+p5,4.521357,cpuload_all_100_4096,1199000,1
+p5,4.523792,cpuload_all_100_4096,1199000,1
+p5,4.538029,cpuload_all_100_4096,1199000,1
+p5,8.217705,gamess,2533000,0
+p5,8.268621,gamess,2533000,0
+p5,8.245542,gamess,2533000,0
+p5,6.781688,gamess,2133000,0
+p5,6.761908,gamess,2133000,0
+p5,6.784616,gamess,2133000,0
+p5,5.746147,gamess,1733000,0
+p5,5.764614,gamess,1733000,0
+p5,5.773037,gamess,1733000,0
+p5,4.678156,gamess,1199000,0
+p5,4.674546,gamess,1199000,0
+p5,4.676650,gamess,1199000,0
+p5,8.221570,gamess,2533000,1
+p5,8.209311,gamess,2533000,1
+p5,8.219425,gamess,2533000,1
+p5,6.601010,gamess,2133000,1
+p5,6.601255,gamess,2133000,1
+p5,6.599450,gamess,2133000,1
+p5,5.622146,gamess,1733000,1
+p5,5.619977,gamess,1733000,1
+p5,5.640404,gamess,1733000,1
+p5,4.673809,gamess,1199000,1
+p5,4.675851,gamess,1199000,1
+p5,4.685634,gamess,1199000,1
+p5,7.525653,gcc,2533000,0
+p5,7.534822,gcc,2533000,0
+p5,7.533592,gcc,2533000,0
+p5,6.555956,gcc,2133000,0
+p5,6.544175,gcc,2133000,0
+p5,6.544503,gcc,2133000,0
+p5,5.709695,gcc,1733000,0
+p5,5.705406,gcc,1733000,0
+p5,5.708668,gcc,1733000,0
+p5,4.684953,gcc,1199000,0
+p5,4.682839,gcc,1199000,0
+p5,4.676019,gcc,1199000,0
+p5,7.529800,gcc,2533000,1
+p5,7.533534,gcc,2533000,1
+p5,7.543220,gcc,2533000,1
+p5,6.441931,gcc,2133000,1
+p5,6.439182,gcc,2133000,1
+p5,6.440798,gcc,2133000,1
+p5,5.582746,gcc,1733000,1
+p5,5.584717,gcc,1733000,1
+p5,5.582858,gcc,1733000,1
+p5,4.686005,gcc,1199000,1
+p5,4.687171,gcc,1199000,1
+p5,4.692853,gcc,1199000,1
+p5,7.642388,gobmk,2533000,0
+p5,7.683653,gobmk,2533000,0
+p5,7.653266,gobmk,2533000,0
+p5,6.578684,gobmk,2133000,0
+p5,6.573952,gobmk,2133000,0
+p5,6.573187,gobmk,2133000,0
+p5,5.689305,gobmk,1733000,0
+p5,5.679455,gobmk,1733000,0
+p5,5.696811,gobmk,1733000,0
+p5,4.675654,gobmk,1199000,0
+p5,4.670342,gobmk,1199000,0
+p5,4.663146,gobmk,1199000,0
+p5,7.604933,gobmk,2533000,1
+p5,7.657982,gobmk,2533000,1
+p5,7.617304,gobmk,2533000,1
+p5,6.437502,gobmk,2133000,1
+p5,6.435582,gobmk,2133000,1
+p5,6.477496,gobmk,2133000,1
+p5,5.561727,gobmk,1733000,1
+p5,5.577229,gobmk,1733000,1
+p5,5.571061,gobmk,1733000,1
+p5,4.668258,gobmk,1199000,1
+p5,4.667685,gobmk,1199000,1
+p5,4.664804,gobmk,1199000,1
+p5,7.503810,gromacs,2533000,0
+p5,7.496348,gromacs,2533000,0
+p5,7.521756,gromacs,2533000,0
+p5,6.530395,gromacs,2133000,0
+p5,6.534561,gromacs,2133000,0
+p5,6.523337,gromacs,2133000,0
+p5,5.668047,gromacs,1733000,0
+p5,5.682861,gromacs,1733000,0
+p5,5.680550,gromacs,1733000,0
+p5,4.666331,gromacs,1199000,0
+p5,4.669479,gromacs,1199000,0
+p5,4.667154,gromacs,1199000,0
+p5,7.473923,gromacs,2533000,1
+p5,7.494586,gromacs,2533000,1
+p5,7.503131,gromacs,2533000,1
+p5,6.381521,gromacs,2133000,1
+p5,6.409155,gromacs,2133000,1
+p5,6.404996,gromacs,2133000,1
+p5,5.565349,gromacs,1733000,1
+p5,5.543227,gromacs,1733000,1
+p5,5.559028,gromacs,1733000,1
+p5,4.667384,gromacs,1199000,1
+p5,4.668124,gromacs,1199000,1
+p5,4.666767,gromacs,1199000,1
+p5,7.720523,h264ref,2533000,0
+p5,7.802582,h264ref,2533000,0
+p5,7.805552,h264ref,2533000,0
+p5,6.472769,h264ref,2133000,0
+p5,6.468017,h264ref,2133000,0
+p5,6.503728,h264ref,2133000,0
+p5,5.633747,h264ref,1733000,0
+p5,5.565739,h264ref,1733000,0
+p5,5.567899,h264ref,1733000,0
+p5,4.646072,h264ref,1199000,0
+p5,4.654898,h264ref,1199000,0
+p5,4.666790,h264ref,1199000,0
+p5,7.740139,h264ref,2533000,1
+p5,7.730858,h264ref,2533000,1
+p5,7.661138,h264ref,2533000,1
+p5,6.438558,h264ref,2133000,1
+p5,6.442684,h264ref,2133000,1
+p5,6.503130,h264ref,2133000,1
+p5,5.547144,h264ref,1733000,1
+p5,5.549812,h264ref,1733000,1
+p5,5.537255,h264ref,1733000,1
+p5,4.668600,h264ref,1199000,1
+p5,4.667975,h264ref,1199000,1
+p5,4.666584,h264ref,1199000,1
+p5,8.092936,hmmer,2533000,0
+p5,8.067553,hmmer,2533000,0
+p5,8.085892,hmmer,2533000,0
+p5,6.481090,hmmer,2133000,0
+p5,6.505221,hmmer,2133000,0
+p5,6.489453,hmmer,2133000,0
+p5,5.544419,hmmer,1733000,0
+p5,5.535082,hmmer,1733000,0
+p5,5.540134,hmmer,1733000,0
+p5,4.662979,hmmer,1199000,0
+p5,4.627106,hmmer,1199000,0
+p5,4.636026,hmmer,1199000,0
+p5,7.971217,hmmer,2533000,1
+p5,7.887496,hmmer,2533000,1
+p5,7.912615,hmmer,2533000,1
+p5,6.587163,hmmer,2133000,1
+p5,6.561731,hmmer,2133000,1
+p5,6.551079,hmmer,2133000,1
+p5,5.531104,hmmer,1733000,1
+p5,5.543723,hmmer,1733000,1
+p5,5.538145,hmmer,1733000,1
+p5,4.642067,hmmer,1199000,1
+p5,4.640946,hmmer,1199000,1
+p5,4.638956,hmmer,1199000,1
+p5,7.311544,lbm,2533000,0
+p5,7.329062,lbm,2533000,0
+p5,7.292106,lbm,2533000,0
+p5,6.343914,lbm,2133000,0
+p5,6.380890,lbm,2133000,0
+p5,6.307024,lbm,2133000,0
+p5,5.419388,lbm,1733000,0
+p5,5.429671,lbm,1733000,0
+p5,5.430755,lbm,1733000,0
+p5,4.608975,lbm,1199000,0
+p5,4.591636,lbm,1199000,0
+p5,4.608203,lbm,1199000,0
+p5,7.290129,lbm,2533000,1
+p5,7.309613,lbm,2533000,1
+p5,7.352691,lbm,2533000,1
+p5,6.286047,lbm,2133000,1
+p5,6.291736,lbm,2133000,1
+p5,6.330654,lbm,2133000,1
+p5,5.471196,lbm,1733000,1
+p5,5.480784,lbm,1733000,1
+p5,5.478851,lbm,1733000,1
+p5,4.609530,lbm,1199000,1
+p5,4.592835,lbm,1199000,1
+p5,4.582448,lbm,1199000,1
+p5,7.532209,leslie3d,2533000,0
+p5,7.500954,leslie3d,2533000,0
+p5,7.514352,leslie3d,2533000,0
+p5,6.425924,leslie3d,2133000,0
+p5,6.431965,leslie3d,2133000,0
+p5,6.433334,leslie3d,2133000,0
+p5,5.551177,leslie3d,1733000,0
+p5,5.550020,leslie3d,1733000,0
+p5,5.565553,leslie3d,1733000,0
+p5,4.677642,leslie3d,1199000,0
+p5,4.669814,leslie3d,1199000,0
+p5,4.673525,leslie3d,1199000,0
+p5,7.489896,leslie3d,2533000,1
+p5,7.505656,leslie3d,2533000,1
+p5,7.473888,leslie3d,2533000,1
+p5,6.398019,leslie3d,2133000,1
+p5,6.395304,leslie3d,2133000,1
+p5,6.402186,leslie3d,2133000,1
+p5,5.527787,leslie3d,1733000,1
+p5,5.535331,leslie3d,1733000,1
+p5,5.533006,leslie3d,1733000,1
+p5,4.672755,leslie3d,1199000,1
+p5,4.660316,leslie3d,1199000,1
+p5,4.661943,leslie3d,1199000,1
+p5,7.020957,mcf,2533000,0
+p5,7.014031,mcf,2533000,0
+p5,7.056846,mcf,2533000,0
+p5,6.230346,mcf,2133000,0
+p5,6.183401,mcf,2133000,0
+p5,6.164130,mcf,2133000,0
+p5,5.435111,mcf,1733000,0
+p5,5.482771,mcf,1733000,0
+p5,5.424487,mcf,1733000,0
+p5,4.528930,mcf,1199000,0
+p5,4.560314,mcf,1199000,0
+p5,4.547768,mcf,1199000,0
+p5,7.046930,mcf,2533000,1
+p5,6.925832,mcf,2533000,1
+p5,7.009465,mcf,2533000,1
+p5,6.140245,mcf,2133000,1
+p5,6.155336,mcf,2133000,1
+p5,6.082117,mcf,2133000,1
+p5,5.402787,mcf,1733000,1
+p5,5.336873,mcf,1733000,1
+p5,5.264313,mcf,1733000,1
+p5,4.537427,mcf,1199000,1
+p5,4.510070,mcf,1199000,1
+p5,4.505023,mcf,1199000,1
+p5,6.949828,milc,2533000,0
+p5,6.791311,milc,2533000,0
+p5,6.794962,milc,2533000,0
+p5,6.024990,milc,2133000,0
+p5,6.011926,milc,2133000,0
+p5,6.026245,milc,2133000,0
+p5,5.275656,milc,1733000,0
+p5,5.388880,milc,1733000,0
+p5,5.388595,milc,1733000,0
+p5,4.533592,milc,1199000,0
+p5,4.431519,milc,1199000,0
+p5,4.514237,milc,1199000,0
+p5,6.824429,milc,2533000,1
+p5,6.795462,milc,2533000,1
+p5,6.799122,milc,2533000,1
+p5,5.915174,milc,2133000,1
+p5,5.956814,milc,2133000,1
+p5,5.974664,milc,2133000,1
+p5,5.191576,milc,1733000,1
+p5,5.153697,milc,1733000,1
+p5,5.270921,milc,1733000,1
+p5,4.449937,milc,1199000,1
+p5,4.383200,milc,1199000,1
+p5,4.476536,milc,1199000,1
+p5,6.853863,namd,2533000,0
+p5,7.067999,namd,2533000,0
+p5,6.819432,namd,2533000,0
+p5,5.964829,namd,2133000,0
+p5,6.078144,namd,2133000,0
+p5,5.865356,namd,2133000,0
+p5,5.354650,namd,1733000,0
+p5,5.302451,namd,1733000,0
+p5,5.224897,namd,1733000,0
+p5,4.464240,namd,1199000,0
+p5,4.457812,namd,1199000,0
+p5,4.464578,namd,1199000,0
+p5,6.825756,namd,2533000,1
+p5,6.821699,namd,2533000,1
+p5,6.927322,namd,2533000,1
+p6,7.192051,bzip2,2533000,0
+p6,7.196073,bzip2,2533000,0
+p6,7.174841,bzip2,2533000,0
+p6,6.338266,bzip2,2133000,0
+p6,6.319319,bzip2,2133000,0
+p6,6.382844,bzip2,2133000,0
+p6,5.510649,bzip2,1733000,0
+p6,5.458915,bzip2,1733000,0
+p6,5.493974,bzip2,1733000,0
+p6,4.628251,bzip2,1199000,0
+p6,4.607149,bzip2,1199000,0
+p6,4.614514,bzip2,1199000,0
+p6,7.193860,bzip2,2533000,1
+p6,7.183218,bzip2,2533000,1
+p6,7.194356,bzip2,2533000,1
+p6,6.308683,bzip2,2133000,1
+p6,6.347557,bzip2,2133000,1
+p6,6.340608,bzip2,2133000,1
+p6,5.411857,bzip2,1733000,1
+p6,5.445159,bzip2,1733000,1
+p6,5.465946,bzip2,1733000,1
+p6,4.624652,bzip2,1199000,1
+p6,4.614595,bzip2,1199000,1
+p6,4.629840,bzip2,1199000,1
+p6,6.831406,cactusADM,2533000,0
+p6,6.861094,cactusADM,2533000,0
+p6,6.931441,cactusADM,2533000,0
+p6,6.205904,cactusADM,2133000,0
+p6,6.136361,cactusADM,2133000,0
+p6,6.227812,cactusADM,2133000,0
+p6,5.414410,cactusADM,1733000,0
+p6,5.437257,cactusADM,1733000,0
+p6,5.360849,cactusADM,1733000,0
+p6,4.584148,cactusADM,1199000,0
+p6,4.564439,cactusADM,1199000,0
+p6,4.538176,cactusADM,1199000,0
+p6,6.850210,cactusADM,2533000,1
+p6,6.966297,cactusADM,2533000,1
+p6,6.836090,cactusADM,2533000,1
+p6,6.057338,cactusADM,2133000,1
+p6,6.215639,cactusADM,2133000,1
+p6,6.240960,cactusADM,2133000,1
+p6,5.384486,cactusADM,1733000,1
+p6,5.404463,cactusADM,1733000,1
+p6,5.457245,cactusADM,1733000,1
+p6,4.514024,cactusADM,1199000,1
+p6,4.574318,cactusADM,1199000,1
+p6,4.585937,cactusADM,1199000,1
+p6,0.804665,cpuload_all_0_4096,2533000,0
+p6,0.697051,cpuload_all_0_4096,2533000,0
+p6,0.793311,cpuload_all_0_4096,2533000,0
+p6,0.769268,cpuload_all_0_4096,2133000,0
+p6,0.736293,cpuload_all_0_4096,2133000,0
+p6,0.707070,cpuload_all_0_4096,2133000,0
+p6,0.786369,cpuload_all_0_4096,1733000,0
+p6,0.683903,cpuload_all_0_4096,1733000,0
+p6,0.776461,cpuload_all_0_4096,1733000,0
+p6,0.762274,cpuload_all_0_4096,1199000,0
+p6,0.676134,cpuload_all_0_4096,1199000,0
+p6,0.658541,cpuload_all_0_4096,1199000,0
+p6,0.809829,cpuload_all_0_4096,2533000,1
+p6,0.787536,cpuload_all_0_4096,2533000,1
+p6,0.789395,cpuload_all_0_4096,2533000,1
+p6,0.726941,cpuload_all_0_4096,2133000,1
+p6,0.742459,cpuload_all_0_4096,2133000,1
+p6,0.684883,cpuload_all_0_4096,2133000,1
+p6,0.756875,cpuload_all_0_4096,1733000,1
+p6,0.846523,cpuload_all_0_4096,1733000,1
+p6,0.815562,cpuload_all_0_4096,1733000,1
+p6,0.816477,cpuload_all_0_4096,1199000,1
+p6,0.698524,cpuload_all_0_4096,1199000,1
+p6,0.725133,cpuload_all_0_4096,1199000,1
+p6,2.606073,cpuload_all_25_4096,2533000,0
+p6,2.625199,cpuload_all_25_4096,2533000,0
+p6,2.581875,cpuload_all_25_4096,2533000,0
+p6,2.390247,cpuload_all_25_4096,2133000,0
+p6,2.335693,cpuload_all_25_4096,2133000,0
+p6,2.400409,cpuload_all_25_4096,2133000,0
+p6,2.140085,cpuload_all_25_4096,1733000,0
+p6,2.150205,cpuload_all_25_4096,1733000,0
+p6,2.110639,cpuload_all_25_4096,1733000,0
+p6,1.925602,cpuload_all_25_4096,1199000,0
+p6,1.953559,cpuload_all_25_4096,1199000,0
+p6,1.949677,cpuload_all_25_4096,1199000,0
+p6,2.552582,cpuload_all_25_4096,2533000,1
+p6,2.545042,cpuload_all_25_4096,2533000,1
+p6,2.557646,cpuload_all_25_4096,2533000,1
+p6,2.326810,cpuload_all_25_4096,2133000,1
+p6,2.352912,cpuload_all_25_4096,2133000,1
+p6,2.315066,cpuload_all_25_4096,2133000,1
+p6,2.096010,cpuload_all_25_4096,1733000,1
+p6,2.084973,cpuload_all_25_4096,1733000,1
+p6,2.103947,cpuload_all_25_4096,1733000,1
+p6,1.932025,cpuload_all_25_4096,1199000,1
+p6,1.928633,cpuload_all_25_4096,1199000,1
+p6,1.913663,cpuload_all_25_4096,1199000,1
+p6,6.886122,cpuload_all_50_4096,2533000,0
+p6,6.901125,cpuload_all_50_4096,2533000,0
+p6,6.929834,cpuload_all_50_4096,2533000,0
+p6,6.176979,cpuload_all_50_4096,2133000,0
+p6,5.924688,namd,2133000,1
+p6,6.052464,namd,2133000,1
+p6,6.038282,namd,2133000,1
+p6,5.195265,namd,1733000,1
+p6,5.206010,namd,1733000,1
+p6,5.282692,namd,1733000,1
+p6,4.567091,namd,1199000,1
+p6,4.555210,namd,1199000,1
+p6,4.472308,namd,1199000,1
+p6,7.533085,omnetpp,2533000,0
+p6,5.558535,cpuload_all_50_4096,2133000,0
+p6,7.536945,omnetpp,2533000,0
+p6,7.532184,omnetpp,2533000,0
+p6,6.405022,omnetpp,2133000,0
+p6,6.414565,omnetpp,2133000,0
+p6,6.429162,omnetpp,2133000,0
+p6,5.482277,omnetpp,1733000,0
+p6,5.533380,omnetpp,1733000,0
+p6,5.524447,omnetpp,1733000,0
+p6,4.627796,omnetpp,1199000,0
+p6,4.621417,omnetpp,1199000,0
+p6,6.151261,cpuload_all_50_4096,2133000,0
+p6,4.620985,omnetpp,1199000,0
+p6,7.528614,omnetpp,2533000,1
+p6,7.479352,omnetpp,2533000,1
+p6,7.452973,omnetpp,2533000,1
+p6,6.426314,omnetpp,2133000,1
+p6,6.465232,omnetpp,2133000,1
+p6,6.433497,omnetpp,2133000,1
+p6,5.513115,omnetpp,1733000,1
+p6,5.528949,omnetpp,1733000,1
+p6,5.527368,omnetpp,1733000,1
+p6,5.056039,cpuload_all_50_4096,1733000,0
+p6,4.621709,omnetpp,1199000,1
+p6,4.624501,omnetpp,1199000,1
+p6,4.610116,omnetpp,1199000,1
+p6,6.278761,povray,2533000,0
+p6,6.276687,povray,2533000,0
+p6,6.298273,povray,2533000,0
+p6,5.943821,povray,2133000,0
+p6,5.683423,povray,2133000,0
+p6,5.814051,povray,2133000,0
+p6,4.862487,povray,1733000,0
+p6,5.355505,cpuload_all_50_4096,1733000,0
+p6,4.940909,povray,1733000,0
+p6,5.114627,povray,1733000,0
+p6,4.400047,povray,1199000,0
+p6,4.378139,povray,1199000,0
+p6,4.403242,povray,1199000,0
+p6,6.599823,povray,2533000,1
+p6,6.362218,povray,2533000,1
+p6,6.784064,povray,2533000,1
+p6,5.700684,povray,2133000,1
+p6,5.816118,povray,2133000,1
+p6,5.377580,cpuload_all_50_4096,1733000,0
+p6,5.669758,povray,2133000,1
+p6,5.064734,povray,1733000,1
+p6,5.125730,povray,1733000,1
+p6,5.172016,povray,1733000,1
+p6,4.241415,povray,1199000,1
+p6,4.246487,povray,1199000,1
+p6,4.246033,povray,1199000,1
+p6,7.332606,sjeng,2533000,0
+p6,7.332759,sjeng,2533000,0
+p6,7.283600,sjeng,2533000,0
+p6,4.523093,cpuload_all_50_4096,1199000,0
+p6,6.409864,sjeng,2133000,0
+p6,6.398941,sjeng,2133000,0
+p6,6.426427,sjeng,2133000,0
+p6,5.544006,sjeng,1733000,0
+p6,5.544184,sjeng,1733000,0
+p6,5.532074,sjeng,1733000,0
+p6,4.641412,sjeng,1199000,0
+p6,4.648012,sjeng,1199000,0
+p6,4.652124,sjeng,1199000,0
+p6,7.324605,sjeng,2533000,1
+p6,4.531055,cpuload_all_50_4096,1199000,0
+p6,7.303873,sjeng,2533000,1
+p6,7.343339,sjeng,2533000,1
+p6,6.404254,sjeng,2133000,1
+p6,6.403155,sjeng,2133000,1
+p6,6.421680,sjeng,2133000,1
+p6,5.534236,sjeng,1733000,1
+p6,5.538205,sjeng,1733000,1
+p6,7.409080,sjeng,2533000,0
+p6,7.363776,sjeng,2533000,0
+p6,7.305007,sjeng,2533000,0
+p6,4.581132,cpuload_all_50_4096,1199000,0
+p6,6.427259,sjeng,2133000,0
+p6,6.408532,sjeng,2133000,0
+p6,6.403373,sjeng,2133000,0
+p6,5.531202,sjeng,1733000,0
+p6,5.523955,sjeng,1733000,0
+p6,5.527104,sjeng,1733000,0
+p6,4.643977,sjeng,1199000,0
+p6,4.652116,sjeng,1199000,0
+p6,4.652198,sjeng,1199000,0
+p6,7.414879,sjeng,2533000,1
+p6,6.911041,cpuload_all_50_4096,2533000,1
+p6,7.402179,sjeng,2533000,1
+p6,7.460207,sjeng,2533000,1
+p6,6.390439,sjeng,2133000,1
+p6,6.434791,sjeng,2133000,1
+p6,6.426222,sjeng,2133000,1
+p6,5.531174,sjeng,1733000,1
+p6,5.542665,sjeng,1733000,1
+p6,5.526293,sjeng,1733000,1
+p6,4.650594,sjeng,1199000,1
+p6,4.663474,sjeng,1199000,1
+p6,6.862369,cpuload_all_50_4096,2533000,1
+p6,4.658966,sjeng,1199000,1
+p6,5.980280,soplex,2533000,0
+p6,5.903042,soplex,2533000,0
+p6,6.358749,soplex,2533000,0
+p6,5.654760,soplex,2133000,0
+p6,5.619995,soplex,2133000,0
+p6,5.643375,soplex,2133000,0
+p6,4.820267,soplex,1733000,0
+p6,4.957297,soplex,1733000,0
+p6,4.828476,soplex,1733000,0
+p6,6.905436,cpuload_all_50_4096,2533000,1
+p6,4.243390,soplex,1199000,0
+p6,4.289237,soplex,1199000,0
+p6,4.245600,soplex,1199000,0
+p6,5.910001,soplex,2533000,1
+p6,6.351725,soplex,2533000,1
+p6,6.318652,soplex,2533000,1
+p6,5.591309,soplex,2133000,1
+p6,5.352564,soplex,2133000,1
+p6,5.334958,soplex,2133000,1
+p6,4.913452,soplex,1733000,1
+p6,6.140450,cpuload_all_50_4096,2133000,1
+p6,4.864737,soplex,1733000,1
+p6,4.989799,soplex,1733000,1
+p6,4.222106,soplex,1199000,1
+p6,4.322487,soplex,1199000,1
+p6,4.354251,soplex,1199000,1
+p6,6.700573,sphinx3,2533000,0
+p6,6.568797,sphinx3,2533000,0
+p6,6.667075,sphinx3,2533000,0
+p6,5.989438,sphinx3,2133000,0
+p6,5.723358,sphinx3,2133000,0
+p6,6.145591,cpuload_all_50_4096,2133000,1
+p6,5.923844,sphinx3,2133000,0
+p6,5.119519,sphinx3,1733000,0
+p6,4.944156,sphinx3,1733000,0
+p6,5.235788,sphinx3,1733000,0
+p6,4.358568,sphinx3,1199000,0
+p6,4.406938,sphinx3,1199000,0
+p6,4.427258,sphinx3,1199000,0
+p6,6.629769,sphinx3,2533000,1
+p6,6.740993,sphinx3,2533000,1
+p6,6.625606,sphinx3,2533000,1
+p6,6.155448,cpuload_all_50_4096,2133000,1
+p6,5.872148,sphinx3,2133000,1
+p6,5.937497,sphinx3,2133000,1
+p6,5.693413,sphinx3,2133000,1
+p6,5.131321,sphinx3,1733000,1
+p6,5.111232,sphinx3,1733000,1
+p6,5.222713,sphinx3,1733000,1
+p6,4.386215,sphinx3,1199000,1
+p6,4.389909,sphinx3,1199000,1
+p6,4.372334,sphinx3,1199000,1
+p6,7.084212,zeusmp,2533000,0
+p6,5.363405,cpuload_all_50_4096,1733000,1
+p6,7.001970,zeusmp,2533000,0
+p6,7.044037,zeusmp,2533000,0
+p6,6.185229,zeusmp,2133000,0
+p6,6.180106,zeusmp,2133000,0
+p6,6.135668,zeusmp,2133000,0
+p6,5.384826,zeusmp,1733000,0
+p6,5.402829,zeusmp,1733000,0
+p6,5.372351,zeusmp,1733000,0
+p6,4.567639,zeusmp,1199000,0
+p6,4.574031,zeusmp,1199000,0
+p6,5.426638,cpuload_all_50_4096,1733000,1
+p6,4.582350,zeusmp,1199000,0
+p6,7.024942,zeusmp,2533000,1
+p6,7.072508,zeusmp,2533000,1
+p6,6.973886,zeusmp,2533000,1
+p6,6.182217,zeusmp,2133000,1
+p6,6.114144,zeusmp,2133000,1
+p6,6.172696,zeusmp,2133000,1
+p6,5.407869,zeusmp,1733000,1
+p6,5.415783,zeusmp,1733000,1
+p6,5.404504,zeusmp,1733000,1
+p6,5.360125,cpuload_all_50_4096,1733000,1
+p6,4.494412,zeusmp,1199000,1
+p6,4.573784,zeusmp,1199000,1
+p6,4.568363,zeusmp,1199000,1
+p6,7.254730,bzip2,2533000,0
+p6,7.348006,bzip2,2533000,0
+p6,7.230800,bzip2,2533000,0
+p6,6.336377,bzip2,2133000,0
+p6,6.306259,bzip2,2133000,0
+p6,6.302273,bzip2,2133000,0
+p6,5.462726,bzip2,1733000,0
+p6,4.529073,cpuload_all_50_4096,1199000,1
+p6,5.470722,bzip2,1733000,0
+p6,5.454492,bzip2,1733000,0
+p6,4.603918,bzip2,1199000,0
+p6,4.605022,bzip2,1199000,0
+p6,4.638201,bzip2,1199000,0
+p6,7.147940,bzip2,2533000,1
+p6,7.151065,bzip2,2533000,1
+p6,7.133745,bzip2,2533000,1
+p6,6.329949,bzip2,2133000,1
+p6,6.313510,bzip2,2133000,1
+p6,4.525196,cpuload_all_50_4096,1199000,1
+p6,6.297420,bzip2,2133000,1
+p6,5.422602,bzip2,1733000,1
+p6,5.493559,bzip2,1733000,1
+p6,5.448769,bzip2,1733000,1
+p6,4.614712,bzip2,1199000,1
+p6,4.636677,bzip2,1199000,1
+p6,4.637854,bzip2,1199000,1
+p6,6.930613,cactusADM,2533000,0
+p6,6.956667,cactusADM,2533000,0
+p6,6.976361,cactusADM,2533000,0
+p6,4.529746,cpuload_all_50_4096,1199000,1
+p6,6.166776,cactusADM,2133000,0
+p6,6.137850,cactusADM,2133000,0
+p6,6.085407,cactusADM,2133000,0
+p6,5.326049,cactusADM,1733000,0
+p6,5.327107,cactusADM,1733000,0
+p6,5.349254,cactusADM,1733000,0
+p6,4.532840,cactusADM,1199000,0
+p6,4.561834,cactusADM,1199000,0
+p6,4.526426,cactusADM,1199000,0
+p6,6.951290,cactusADM,2533000,1
+p6,6.867989,cpuload_all_75_4096,2533000,0
+p6,6.895063,cactusADM,2533000,1
+p6,6.902181,cactusADM,2533000,1
+p6,6.135522,cactusADM,2133000,1
+p6,6.051644,cactusADM,2133000,1
+p6,6.112427,cactusADM,2133000,1
+p6,5.363660,cactusADM,1733000,1
+p6,5.367919,cactusADM,1733000,1
+p6,5.335722,cactusADM,1733000,1
+p6,4.584966,cactusADM,1199000,1
+p6,4.555656,cactusADM,1199000,1
+p6,6.863503,cpuload_all_75_4096,2533000,0
+p6,4.592798,cactusADM,1199000,1
+p6,0.773572,cpuload_all_0_4096,2533000,0
+p6,0.781211,cpuload_all_0_4096,2533000,0
+p6,0.711879,cpuload_all_0_4096,2533000,0
+p6,0.748169,cpuload_all_0_4096,2133000,0
+p6,0.768307,cpuload_all_0_4096,2133000,0
+p6,0.743254,cpuload_all_0_4096,2133000,0
+p6,0.799760,cpuload_all_0_4096,1733000,0
+p6,0.737162,cpuload_all_0_4096,1733000,0
+p6,0.708386,cpuload_all_0_4096,1733000,0
+p6,6.966061,cpuload_all_75_4096,2533000,0
+p6,0.605458,cpuload_all_0_4096,1199000,0
+p6,0.753513,cpuload_all_0_4096,1199000,0
+p6,0.617626,cpuload_all_0_4096,1199000,0
+p6,0.751325,cpuload_all_0_4096,2533000,1
+p6,0.804563,cpuload_all_0_4096,2533000,1
+p6,0.773258,cpuload_all_0_4096,2533000,1
+p6,0.670396,cpuload_all_0_4096,2133000,1
+p6,0.749871,cpuload_all_0_4096,2133000,1
+p6,0.702696,cpuload_all_0_4096,2133000,1
+p6,0.703538,cpuload_all_0_4096,1733000,1
+p6,6.163570,cpuload_all_75_4096,2133000,0
+p6,0.703547,cpuload_all_0_4096,1733000,1
+p6,0.743156,cpuload_all_0_4096,1733000,1
+p6,0.649826,cpuload_all_0_4096,1199000,1
+p6,0.766185,cpuload_all_0_4096,1199000,1
+p6,0.770258,cpuload_all_0_4096,1199000,1
+p6,2.578694,cpuload_all_25_4096,2533000,0
+p6,2.693525,cpuload_all_25_4096,2533000,0
+p6,2.606717,cpuload_all_25_4096,2533000,0
+p6,2.273598,cpuload_all_25_4096,2133000,0
+p6,2.306904,cpuload_all_25_4096,2133000,0
+p6,6.245343,cpuload_all_75_4096,2133000,0
+p6,2.269801,cpuload_all_25_4096,2133000,0
+p6,2.066132,cpuload_all_25_4096,1733000,0
+p6,2.074606,cpuload_all_25_4096,1733000,0
+p6,2.078170,cpuload_all_25_4096,1733000,0
+p6,1.905123,cpuload_all_25_4096,1199000,0
+p6,1.907899,cpuload_all_25_4096,1199000,0
+p6,1.897327,cpuload_all_25_4096,1199000,0
+p6,2.531995,cpuload_all_25_4096,2533000,1
+p6,2.539674,cpuload_all_25_4096,2533000,1
+p6,2.556780,cpuload_all_25_4096,2533000,1
+p6,6.165706,cpuload_all_75_4096,2133000,0
+p6,2.323876,cpuload_all_25_4096,2133000,1
+p6,2.293170,cpuload_all_25_4096,2133000,1
+p6,2.314381,cpuload_all_25_4096,2133000,1
+p6,2.084868,cpuload_all_25_4096,1733000,1
+p6,2.095312,cpuload_all_25_4096,1733000,1
+p6,2.092392,cpuload_all_25_4096,1733000,1
+p6,1.912458,cpuload_all_25_4096,1199000,1
+p6,1.862693,cpuload_all_25_4096,1199000,1
+p6,1.893214,cpuload_all_25_4096,1199000,1
+p6,7.081671,cpuload_all_50_4096,2533000,0
+p6,5.409896,cpuload_all_75_4096,1733000,0
+p6,7.031735,cpuload_all_50_4096,2533000,0
+p6,6.992053,cpuload_all_50_4096,2533000,0
+p6,6.111994,cpuload_all_50_4096,2133000,0
+p6,5.448592,cpuload_all_50_4096,2133000,0
+p6,6.097863,cpuload_all_50_4096,2133000,0
+p6,5.397876,cpuload_all_50_4096,1733000,0
+p6,5.342738,cpuload_all_50_4096,1733000,0
+p6,5.401385,cpuload_all_50_4096,1733000,0
+p6,4.507687,cpuload_all_50_4096,1199000,0
+p6,4.518196,cpuload_all_50_4096,1199000,0
+p6,5.357100,cpuload_all_75_4096,1733000,0
+p6,4.563508,cpuload_all_50_4096,1199000,0
+p6,6.982688,cpuload_all_50_4096,2533000,1
+p6,6.948675,cpuload_all_50_4096,2533000,1
+p6,6.982686,cpuload_all_50_4096,2533000,1
+p6,6.140966,cpuload_all_50_4096,2133000,1
+p6,5.436640,cpuload_all_50_4096,2133000,1
+p6,6.131832,cpuload_all_50_4096,2133000,1
+p6,5.349077,cpuload_all_50_4096,1733000,1
+p6,5.221166,cpuload_all_50_4096,1733000,1
+p6,5.325591,cpuload_all_50_4096,1733000,1
+p6,5.371171,cpuload_all_75_4096,1733000,0
+p6,4.510476,cpuload_all_50_4096,1199000,1
+p6,4.560645,cpuload_all_50_4096,1199000,1
+p6,4.510411,cpuload_all_50_4096,1199000,1
+p6,7.020259,cpuload_all_75_4096,2533000,0
+p6,7.076098,cpuload_all_75_4096,2533000,0
+p6,7.007040,cpuload_all_75_4096,2533000,0
+p6,6.097392,cpuload_all_75_4096,2133000,0
+p6,6.190737,cpuload_all_75_4096,2133000,0
+p6,6.149567,cpuload_all_75_4096,2133000,0
+p6,5.342580,cpuload_all_75_4096,1733000,0
+p6,4.522461,cpuload_all_75_4096,1199000,0
+p6,5.322998,cpuload_all_75_4096,1733000,0
+p6,5.400103,cpuload_all_75_4096,1733000,0
+p6,4.513380,cpuload_all_75_4096,1199000,0
+p6,4.508984,cpuload_all_75_4096,1199000,0
+p6,4.568377,cpuload_all_75_4096,1199000,0
+p6,6.984796,cpuload_all_75_4096,2533000,1
+p6,6.964602,cpuload_all_75_4096,2533000,1
+p6,6.959939,cpuload_all_75_4096,2533000,1
+p6,6.239035,cpuload_all_75_4096,2133000,1
+p6,6.134648,cpuload_all_75_4096,2133000,1
+p6,4.587513,cpuload_all_75_4096,1199000,0
+p6,6.116058,cpuload_all_75_4096,2133000,1
+p6,5.326744,cpuload_all_75_4096,1733000,1
+p6,5.410083,cpuload_all_75_4096,1733000,1
+p6,5.348010,cpuload_all_75_4096,1733000,1
+p6,4.518853,cpuload_all_75_4096,1199000,1
+p6,4.561948,cpuload_all_75_4096,1199000,1
+p6,4.512589,cpuload_all_75_4096,1199000,1
+p6,7.029772,cpuload_all_100_4096,2533000,0
+p6,7.106137,cpuload_all_100_4096,2533000,0
+p6,7.019471,cpuload_all_100_4096,2533000,0
+p6,4.524336,cpuload_all_75_4096,1199000,0
+p6,6.109573,cpuload_all_100_4096,2133000,0
+p6,6.190719,cpuload_all_100_4096,2133000,0
+p6,6.120508,cpuload_all_100_4096,2133000,0
+p6,5.346425,cpuload_all_100_4096,1733000,0
+p6,5.406082,cpuload_all_100_4096,1733000,0
+p6,5.344842,cpuload_all_100_4096,1733000,0
+p6,4.502740,cpuload_all_100_4096,1199000,0
+p6,4.516189,cpuload_all_100_4096,1199000,0
+p6,4.530505,cpuload_all_100_4096,1199000,0
+p6,6.983751,cpuload_all_100_4096,2533000,1
+p6,6.873904,cpuload_all_75_4096,2533000,1
+p6,7.060363,cpuload_all_100_4096,2533000,1
+p6,6.947092,cpuload_all_100_4096,2533000,1
+p6,6.152397,cpuload_all_100_4096,2133000,1
+p6,6.149620,cpuload_all_100_4096,2133000,1
+p6,6.167184,cpuload_all_100_4096,2133000,1
+p6,5.417590,cpuload_all_100_4096,1733000,1
+p6,5.356824,cpuload_all_100_4096,1733000,1
+p6,5.348467,cpuload_all_100_4096,1733000,1
+p6,4.566538,cpuload_all_100_4096,1199000,1
+p6,4.513033,cpuload_all_100_4096,1199000,1
+p6,7.065101,cpuload_all_75_4096,2533000,1
+p6,4.513288,cpuload_all_100_4096,1199000,1
+p6,7.860477,gamess,2533000,0
+p6,7.894990,gamess,2533000,0
+p6,7.873755,gamess,2533000,0
+p6,6.595312,gamess,2133000,0
+p6,6.627596,gamess,2133000,0
+p6,6.604295,gamess,2133000,0
+p6,5.579326,gamess,1733000,0
+p6,5.595735,gamess,1733000,0
+p6,5.579535,gamess,1733000,0
+p6,6.895445,cpuload_all_75_4096,2533000,1
+p6,4.665433,gamess,1199000,0
+p6,4.666369,gamess,1199000,0
+p6,4.658463,gamess,1199000,0
+p6,7.896807,gamess,2533000,1
+p6,7.882795,gamess,2533000,1
+p6,7.899510,gamess,2533000,1
+p6,6.606132,gamess,2133000,1
+p6,6.599861,gamess,2133000,1
+p6,6.608563,gamess,2133000,1
+p6,5.598025,gamess,1733000,1
+p6,6.160357,cpuload_all_75_4096,2133000,1
+p6,5.604100,gamess,1733000,1
+p6,5.605942,gamess,1733000,1
+p6,4.678967,gamess,1199000,1
+p6,4.671093,gamess,1199000,1
+p6,4.663707,gamess,1199000,1
+p6,7.291030,gcc,2533000,0
+p6,7.268134,gcc,2533000,0
+p6,7.251287,gcc,2533000,0
+p6,6.425407,gcc,2133000,0
+p6,6.429206,gcc,2133000,0
+p6,6.160105,cpuload_all_75_4096,2133000,1
+p6,6.432277,gcc,2133000,0
+p6,5.564327,gcc,1733000,0
+p6,5.563235,gcc,1733000,0
+p6,5.569593,gcc,1733000,0
+p6,4.686093,gcc,1199000,0
+p6,4.686154,gcc,1199000,0
+p6,4.688098,gcc,1199000,0
+p6,7.218748,gcc,2533000,1
+p6,7.227408,gcc,2533000,1
+p6,7.215866,gcc,2533000,1
+p6,6.271842,cpuload_all_75_4096,2133000,1
+p6,6.432567,gcc,2133000,1
+p6,6.429157,gcc,2133000,1
+p6,6.432423,gcc,2133000,1
+p6,5.572024,gcc,1733000,1
+p6,5.576781,gcc,1733000,1
+p6,5.581057,gcc,1733000,1
+p6,4.693470,gcc,1199000,1
+p6,4.692716,gcc,1199000,1
+p6,4.694046,gcc,1199000,1
+p6,7.348870,gobmk,2533000,0
+p6,5.372226,cpuload_all_75_4096,1733000,1
+p6,7.331046,gobmk,2533000,0
+p6,7.377649,gobmk,2533000,0
+p6,6.430689,gobmk,2133000,0
+p6,6.456616,gobmk,2133000,0
+p6,6.440314,gobmk,2133000,0
+p6,5.565825,gobmk,1733000,0
+p6,5.579463,gobmk,1733000,0
+p6,5.549990,gobmk,1733000,0
+p6,4.678973,gobmk,1199000,0
+p6,4.677319,gobmk,1199000,0
+p6,5.356479,cpuload_all_75_4096,1733000,1
+p6,4.674528,gobmk,1199000,0
+p6,7.354482,gobmk,2533000,1
+p6,7.358812,gobmk,2533000,1
+p6,7.388838,gobmk,2533000,1
+p6,6.458769,gobmk,2133000,1
+p6,6.422305,gobmk,2133000,1
+p6,6.470220,gobmk,2133000,1
+p6,5.555281,gobmk,1733000,1
+p6,5.543049,gobmk,1733000,1
+p6,5.545588,gobmk,1733000,1
+p6,5.365763,cpuload_all_75_4096,1733000,1
+p6,4.657722,gobmk,1199000,1
+p6,4.674550,gobmk,1199000,1
+p6,4.666484,gobmk,1199000,1
+p6,7.170498,gromacs,2533000,0
+p6,7.191570,gromacs,2533000,0
+p6,7.184397,gromacs,2533000,0
+p6,6.397631,gromacs,2133000,0
+p6,6.408916,gromacs,2133000,0
+p6,6.381215,gromacs,2133000,0
+p6,5.556929,gromacs,1733000,0
+p6,4.526696,cpuload_all_75_4096,1199000,1
+p6,5.546378,gromacs,1733000,0
+p6,5.556632,gromacs,1733000,0
+p6,4.689953,gromacs,1199000,0
+p6,4.686540,gromacs,1199000,0
+p6,4.682747,gromacs,1199000,0
+p6,7.197509,gromacs,2533000,1
+p6,7.187147,gromacs,2533000,1
+p6,7.196614,gromacs,2533000,1
+p6,6.394322,gromacs,2133000,1
+p6,6.398600,gromacs,2133000,1
+p6,4.529932,cpuload_all_75_4096,1199000,1
+p6,6.414943,gromacs,2133000,1
+p6,5.548168,gromacs,1733000,1
+p6,5.556239,gromacs,1733000,1
+p6,5.546452,gromacs,1733000,1
+p6,4.673786,gromacs,1199000,1
+p6,4.678211,gromacs,1199000,1
+p6,4.680800,gromacs,1199000,1
+p6,7.458699,h264ref,2533000,0
+p6,7.459809,h264ref,2533000,0
+p6,7.462504,h264ref,2533000,0
+p6,4.539106,cpuload_all_75_4096,1199000,1
+p6,6.460371,h264ref,2133000,0
+p6,6.465506,h264ref,2133000,0
+p6,6.453429,h264ref,2133000,0
+p6,5.549707,h264ref,1733000,0
+p6,5.557517,h264ref,1733000,0
+p6,5.553220,h264ref,1733000,0
+p6,4.667669,h264ref,1199000,0
+p6,4.670274,h264ref,1199000,0
+p6,4.678516,h264ref,1199000,0
+p6,7.442965,h264ref,2533000,1
+p6,6.921893,cpuload_all_100_4096,2533000,0
+p6,7.413292,h264ref,2533000,1
+p6,7.473932,h264ref,2533000,1
+p6,6.444011,h264ref,2133000,1
+p6,6.484994,h264ref,2133000,1
+p6,6.460432,h264ref,2133000,1
+p6,5.536570,h264ref,1733000,1
+p6,5.578841,h264ref,1733000,1
+p6,5.543765,h264ref,1733000,1
+p6,4.665835,h264ref,1199000,1
+p6,4.664479,h264ref,1199000,1
+p6,6.918943,cpuload_all_100_4096,2533000,0
+p6,4.669324,h264ref,1199000,1
+p6,7.769963,hmmer,2533000,0
+p6,7.762346,hmmer,2533000,0
+p6,7.780624,hmmer,2533000,0
+p6,6.501534,hmmer,2133000,0
+p6,6.522592,hmmer,2133000,0
+p6,6.496887,hmmer,2133000,0
+p6,5.557097,hmmer,1733000,0
+p6,5.554162,hmmer,1733000,0
+p6,5.501061,hmmer,1733000,0
+p6,6.930465,cpuload_all_100_4096,2533000,0
+p6,4.622785,hmmer,1199000,0
+p6,4.629806,hmmer,1199000,0
+p6,4.656143,hmmer,1199000,0
+p6,7.753809,hmmer,2533000,1
+p6,7.812500,hmmer,2533000,1
+p6,7.811284,hmmer,2533000,1
+p6,6.524448,hmmer,2133000,1
+p6,6.595940,hmmer,2133000,1
+p6,6.488885,hmmer,2133000,1
+p6,5.552318,hmmer,1733000,1
+p6,6.199205,cpuload_all_100_4096,2133000,0
+p6,5.551854,hmmer,1733000,1
+p6,5.505986,hmmer,1733000,1
+p6,4.649042,hmmer,1199000,1
+p6,4.647604,hmmer,1199000,1
+p6,4.635471,hmmer,1199000,1
+p6,6.992589,lbm,2533000,0
+p6,6.981607,lbm,2533000,0
+p6,6.979328,lbm,2533000,0
+p6,6.274481,lbm,2133000,0
+p6,6.276121,lbm,2133000,0
+p6,6.197428,cpuload_all_100_4096,2133000,0
+p6,6.269081,lbm,2133000,0
+p6,5.485523,lbm,1733000,0
+p6,5.413545,lbm,1733000,0
+p6,5.422286,lbm,1733000,0
+p6,4.602770,lbm,1199000,0
+p6,4.604686,lbm,1199000,0
+p6,4.557662,lbm,1199000,0
+p6,7.035998,lbm,2533000,1
+p6,7.029299,lbm,2533000,1
+p6,7.087253,lbm,2533000,1
+p6,6.273723,cpuload_all_100_4096,2133000,0
+p6,6.333113,lbm,2133000,1
+p6,6.286366,lbm,2133000,1
+p6,6.284046,lbm,2133000,1
+p6,5.419236,lbm,1733000,1
+p6,5.475323,lbm,1733000,1
+p6,5.419598,lbm,1733000,1
+p6,4.592741,lbm,1199000,1
+p6,4.591573,lbm,1199000,1
+p6,4.593851,lbm,1199000,1
+p6,7.177958,leslie3d,2533000,0
+p6,5.377154,cpuload_all_100_4096,1733000,0
+p6,7.176732,leslie3d,2533000,0
+p6,7.191730,leslie3d,2533000,0
+p6,6.395792,leslie3d,2133000,0
+p6,6.389030,leslie3d,2133000,0
+p6,6.417031,leslie3d,2133000,0
+p6,5.536360,leslie3d,1733000,0
+p6,5.521542,leslie3d,1733000,0
+p6,5.546717,leslie3d,1733000,0
+p6,4.661808,leslie3d,1199000,0
+p6,4.666335,leslie3d,1199000,0
+p6,5.373136,cpuload_all_100_4096,1733000,0
+p6,4.661230,leslie3d,1199000,0
+p6,7.191953,leslie3d,2533000,1
+p6,7.154658,leslie3d,2533000,1
+p6,7.177407,leslie3d,2533000,1
+p6,6.363606,leslie3d,2133000,1
+p6,6.399487,leslie3d,2133000,1
+p6,6.407340,leslie3d,2133000,1
+p6,5.526113,leslie3d,1733000,1
+p6,5.516762,leslie3d,1733000,1
+p6,5.535754,leslie3d,1733000,1
+p6,5.377186,cpuload_all_100_4096,1733000,0
+p6,4.661325,leslie3d,1199000,1
+p6,4.660849,leslie3d,1199000,1
+p6,4.678965,leslie3d,1199000,1
+p6,6.892406,mcf,2533000,0
+p6,6.869011,mcf,2533000,0
+p6,6.850275,mcf,2533000,0
+p6,6.033994,mcf,2133000,0
+p6,5.941442,mcf,2133000,0
+p6,5.910339,mcf,2133000,0
+p6,5.333996,mcf,1733000,0
+p6,4.574831,cpuload_all_100_4096,1199000,0
+p6,5.228202,mcf,1733000,0
+p6,5.279337,mcf,1733000,0
+p6,4.480932,mcf,1199000,0
+p6,4.600824,mcf,1199000,0
+p6,4.492438,mcf,1199000,0
+p6,6.883410,mcf,2533000,1
+p6,6.754550,mcf,2533000,1
+p6,6.914473,mcf,2533000,1
+p6,5.975002,mcf,2133000,1
+p6,6.106332,mcf,2133000,1
+p6,4.527342,cpuload_all_100_4096,1199000,0
+p6,5.973508,mcf,2133000,1
+p6,5.325249,mcf,1733000,1
+p6,5.224486,mcf,1733000,1
+p6,5.336110,mcf,1733000,1
+p6,4.521381,mcf,1199000,1
+p6,4.481454,mcf,1199000,1
+p6,4.496349,mcf,1199000,1
+p6,6.875090,milc,2533000,0
+p6,6.748704,milc,2533000,0
+p6,6.720647,milc,2533000,0
+p6,4.528331,cpuload_all_100_4096,1199000,0
+p6,5.931718,milc,2133000,0
+p6,5.904551,milc,2133000,0
+p6,5.934842,milc,2133000,0
+p6,5.157347,milc,1733000,0
+p6,5.286682,milc,1733000,0
+p6,5.183727,milc,1733000,0
+p6,4.437381,milc,1199000,0
+p6,4.446305,milc,1199000,0
+p6,4.454884,milc,1199000,0
+p6,6.775477,milc,2533000,1
+p6,6.886944,cpuload_all_100_4096,2533000,1
+p6,6.643446,milc,2533000,1
+p6,6.869238,milc,2533000,1
+p6,5.889676,milc,2133000,1
+p6,5.904974,milc,2133000,1
+p6,6.078810,milc,2133000,1
+p6,5.139721,milc,1733000,1
+p6,5.272512,milc,1733000,1
+p6,5.140929,milc,1733000,1
+p6,4.427022,milc,1199000,1
+p6,4.427508,milc,1199000,1
+p6,6.985664,cpuload_all_100_4096,2533000,1
+p6,4.426186,milc,1199000,1
+p6,6.631757,namd,2533000,0
+p6,6.603405,namd,2533000,0
+p6,6.704480,namd,2533000,0
+p6,5.854594,namd,2133000,0
+p6,5.853360,namd,2133000,0
+p6,5.676616,namd,2133000,0
+p6,5.235973,namd,1733000,0
+p6,5.064593,namd,1733000,0
+p6,5.251096,namd,1733000,0
+p6,6.916929,cpuload_all_100_4096,2533000,1
+p6,4.447248,namd,1199000,0
+p6,4.453145,namd,1199000,0
+p6,4.392992,namd,1199000,0
+p6,6.334202,namd,2533000,1
+p6,6.391019,namd,2533000,1
+p6,6.613873,namd,2533000,1
+p6,5.850910,namd,2133000,1
+p6,5.868202,namd,2133000,1
+p6,5.863821,namd,2133000,1
+p6,5.101601,namd,1733000,1
+p6,6.272523,cpuload_all_100_4096,2133000,1
+p6,5.238354,namd,1733000,1
+p6,5.103617,namd,1733000,1
+p6,4.445153,namd,1199000,1
+p6,4.455715,namd,1199000,1
+p6,4.406629,namd,1199000,1
+p6,7.622858,omnetpp,2533000,0
+p6,7.573355,omnetpp,2533000,0
+p6,7.583869,omnetpp,2533000,0
+p6,6.407819,omnetpp,2133000,0
+p6,6.444579,omnetpp,2133000,0
+p6,6.194807,cpuload_all_100_4096,2133000,1
+p6,6.476401,omnetpp,2133000,0
+p6,5.488561,omnetpp,1733000,0
+p6,5.476727,omnetpp,1733000,0
+p6,5.506213,omnetpp,1733000,0
+p6,4.611182,omnetpp,1199000,0
+p6,4.643915,omnetpp,1199000,0
+p6,4.637195,omnetpp,1199000,0
+p6,7.496780,omnetpp,2533000,1
+p6,7.404743,omnetpp,2533000,1
+p6,7.526186,omnetpp,2533000,1
+p6,6.164444,cpuload_all_100_4096,2133000,1
+p6,6.433564,omnetpp,2133000,1
+p6,6.370172,omnetpp,2133000,1
+p6,6.429125,omnetpp,2133000,1
+p6,5.478985,omnetpp,1733000,1
+p6,5.536632,omnetpp,1733000,1
+p6,5.521981,omnetpp,1733000,1
+p6,4.616514,omnetpp,1199000,1
+p6,4.649536,omnetpp,1199000,1
+p6,4.623038,omnetpp,1199000,1
+p6,6.425395,povray,2533000,0
+p6,5.358098,cpuload_all_100_4096,1733000,1
+p6,6.388847,povray,2533000,0
+p6,6.314247,povray,2533000,0
+p6,5.378873,povray,2133000,0
+p6,5.765644,povray,2133000,0
+p6,5.428149,povray,2133000,0
+p6,4.903280,povray,1733000,0
+p6,4.953766,povray,1733000,0
+p6,4.960096,povray,1733000,0
+p6,4.414176,povray,1199000,0
+p6,4.407862,povray,1199000,0
+p6,5.361922,cpuload_all_100_4096,1733000,1
+p6,4.415858,povray,1199000,0
+p6,6.749415,povray,2533000,1
+p6,6.720489,povray,2533000,1
+p6,6.232061,povray,2533000,1
+p6,5.694350,povray,2133000,1
+p6,5.361383,povray,2133000,1
+p6,5.703281,povray,2133000,1
+p6,4.964492,povray,1733000,1
+p6,4.861927,povray,1733000,1
+p6,5.145136,povray,1733000,1
+p6,5.359019,cpuload_all_100_4096,1733000,1
+p6,4.235072,povray,1199000,1
+p6,4.246140,povray,1199000,1
+p6,4.243885,povray,1199000,1
+p6,7.473607,sjeng,2533000,0
+p6,7.446793,sjeng,2533000,0
+p6,7.447741,sjeng,2533000,0
+p6,6.427994,sjeng,2133000,0
+p6,6.422045,sjeng,2133000,0
+p6,6.414864,sjeng,2133000,0
+p6,5.550214,sjeng,1733000,0
+p6,4.524084,cpuload_all_100_4096,1199000,1
+p6,5.539805,sjeng,1733000,0
+p6,5.537279,sjeng,1733000,0
+p6,4.662468,sjeng,1199000,0
+p6,4.657195,sjeng,1199000,0
+p6,4.659751,sjeng,1199000,0
+p6,7.324351,sjeng,2533000,1
+p6,7.328809,sjeng,2533000,1
+p6,7.287898,sjeng,2533000,1
+p6,6.426399,sjeng,2133000,1
+p6,6.442047,sjeng,2133000,1
+p6,4.525002,cpuload_all_100_4096,1199000,1
+p6,6.424498,sjeng,2133000,1
+p6,5.558089,sjeng,1733000,1
+p6,5.543711,sjeng,1733000,1
+p6,5.553864,sjeng,1733000,1
+p6,4.662362,sjeng,1199000,1
+p6,4.670488,sjeng,1199000,1
+p6,4.668849,sjeng,1199000,1
+p6,5.936413,soplex,2533000,0
+p6,6.376211,soplex,2533000,0
+p6,6.377778,soplex,2533000,0
+p6,4.577811,cpuload_all_100_4096,1199000,1
+p6,5.256329,soplex,2133000,0
+p6,5.271741,soplex,2133000,0
+p6,5.633089,soplex,2133000,0
+p6,4.861410,soplex,1733000,0
+p6,4.879841,soplex,1733000,0
+p6,4.863896,soplex,1733000,0
+p6,4.243724,soplex,1199000,0
+p6,4.052000,soplex,1199000,0
+p6,4.237057,soplex,1199000,0
+p6,6.370929,soplex,2533000,1
+p6,7.946243,gamess,2533000,0
+p6,6.355505,soplex,2533000,1
+p6,5.889005,soplex,2533000,1
+p6,5.270845,soplex,2133000,1
+p6,5.238862,soplex,2133000,1
+p6,5.630823,soplex,2133000,1
+p6,4.664819,soplex,1733000,1
+p6,4.573349,soplex,1733000,1
+p6,4.866644,soplex,1733000,1
+p6,4.211850,soplex,1199000,1
+p6,4.215194,soplex,1199000,1
+p6,7.955737,gamess,2533000,0
+p6,4.223368,soplex,1199000,1
+p6,6.628372,sphinx3,2533000,0
+p6,6.586814,sphinx3,2533000,0
+p6,6.608366,sphinx3,2533000,0
+p6,5.940498,sphinx3,2133000,0
+p6,5.743441,sphinx3,2133000,0
+p6,5.741295,sphinx3,2133000,0
+p6,5.114599,sphinx3,1733000,0
+p6,5.142471,sphinx3,1733000,0
+p6,4.973813,sphinx3,1733000,0
+p6,7.967802,gamess,2533000,0
+p6,4.408524,sphinx3,1199000,0
+p6,4.410388,sphinx3,1199000,0
+p6,4.291073,sphinx3,1199000,0
+p6,6.591821,sphinx3,2533000,1
+p6,6.610657,sphinx3,2533000,1
+p6,6.344759,sphinx3,2533000,1
+p6,5.721985,sphinx3,2133000,1
+p6,5.755287,sphinx3,2133000,1
+p6,5.996170,sphinx3,2133000,1
+p6,5.104959,sphinx3,1733000,1
+p6,6.634494,gamess,2133000,0
+p6,5.123398,sphinx3,1733000,1
+p6,4.922578,sphinx3,1733000,1
+p6,4.419282,sphinx3,1199000,1
+p6,4.398907,sphinx3,1199000,1
+p6,4.291675,sphinx3,1199000,1
+p6,7.136300,zeusmp,2533000,0
+p6,7.086003,zeusmp,2533000,0
+p6,6.949880,zeusmp,2533000,0
+p6,6.167482,zeusmp,2133000,0
+p6,6.176662,zeusmp,2133000,0
+p6,6.660229,gamess,2133000,0
+p6,6.146349,zeusmp,2133000,0
+p6,5.342023,zeusmp,1733000,0
+p6,5.341951,zeusmp,1733000,0
+p6,5.418049,zeusmp,1733000,0
+p6,4.588599,zeusmp,1199000,0
+p6,4.588552,zeusmp,1199000,0
+p6,4.586435,zeusmp,1199000,0
+p6,6.937365,zeusmp,2533000,1
+p6,6.924967,zeusmp,2533000,1
+p6,7.067855,zeusmp,2533000,1
+p6,6.665914,gamess,2133000,0
+p6,6.161553,zeusmp,2133000,1
+p6,6.239795,zeusmp,2133000,1
+p6,6.166997,zeusmp,2133000,1
+p6,5.340762,zeusmp,1733000,1
+p6,5.337774,zeusmp,1733000,1
+p6,5.354004,zeusmp,1733000,1
+p6,4.594081,zeusmp,1199000,1
+p6,4.593312,zeusmp,1199000,1
+p6,4.597053,zeusmp,1199000,1
+p6,7.388855,bzip2,2533000,0
+p6,5.609255,gamess,1733000,0
+p6,7.295492,bzip2,2533000,0
+p6,7.309258,bzip2,2533000,0
+p6,6.310831,bzip2,2133000,0
+p6,6.285741,bzip2,2133000,0
+p6,6.295086,bzip2,2133000,0
+p6,5.451513,bzip2,1733000,0
+p6,5.443430,bzip2,1733000,0
+p6,5.464332,bzip2,1733000,0
+p6,4.626918,bzip2,1199000,0
+p6,4.612037,bzip2,1199000,0
+p6,5.609767,gamess,1733000,0
+p6,4.619070,bzip2,1199000,0
+p6,7.233686,bzip2,2533000,1
+p6,7.189004,bzip2,2533000,1
+p6,7.164367,bzip2,2533000,1
+p6,6.295901,bzip2,2133000,1
+p6,6.329915,bzip2,2133000,1
+p6,6.319719,bzip2,2133000,1
+p6,5.467579,bzip2,1733000,1
+p6,5.477993,bzip2,1733000,1
+p6,5.466950,bzip2,1733000,1
+p6,5.614149,gamess,1733000,0
+p6,4.620046,bzip2,1199000,1
+p6,4.615898,bzip2,1199000,1
+p6,4.619758,bzip2,1199000,1
+p6,6.957934,cactusADM,2533000,0
+p6,6.914374,cactusADM,2533000,0
+p6,7.044346,cactusADM,2533000,0
+p6,6.110856,cactusADM,2133000,0
+p6,6.119381,cactusADM,2133000,0
+p6,6.184983,cactusADM,2133000,0
+p6,5.337060,cactusADM,1733000,0
+p6,4.670280,gamess,1199000,0
+p6,5.412257,cactusADM,1733000,0
+p6,5.343478,cactusADM,1733000,0
+p6,4.557023,cactusADM,1199000,0
+p6,4.590271,cactusADM,1199000,0
+p6,4.532089,cactusADM,1199000,0
+p6,6.964698,cactusADM,2533000,1
+p6,6.915020,cactusADM,2533000,1
+p6,6.953574,cactusADM,2533000,1
+p6,6.175569,cactusADM,2133000,1
+p6,6.076668,cactusADM,2133000,1
+p6,4.671789,gamess,1199000,0
+p6,6.210463,cactusADM,2133000,1
+p6,5.281083,cactusADM,1733000,1
+p6,5.360681,cactusADM,1733000,1
+p6,5.290809,cactusADM,1733000,1
+p6,4.601482,cactusADM,1199000,1
+p6,4.584356,cactusADM,1199000,1
+p6,4.562330,cactusADM,1199000,1
+p6,0.833629,cpuload_all_0_4096,2533000,0
+p6,0.816351,cpuload_all_0_4096,2533000,0
+p6,0.898737,cpuload_all_0_4096,2533000,0
+p6,4.666637,gamess,1199000,0
+p6,1.039655,cpuload_all_0_4096,2133000,0
+p6,0.783085,cpuload_all_0_4096,2133000,0
+p6,0.793826,cpuload_all_0_4096,2133000,0
+p6,0.864611,cpuload_all_0_4096,1733000,0
+p6,0.740573,cpuload_all_0_4096,1733000,0
+p6,0.784910,cpuload_all_0_4096,1733000,0
+p6,0.967378,cpuload_all_0_4096,1199000,0
+p6,0.648623,cpuload_all_0_4096,1199000,0
+p6,0.764496,cpuload_all_0_4096,1199000,0
+p6,0.781278,cpuload_all_0_4096,2533000,1
+p6,7.908024,gamess,2533000,1
+p6,0.774730,cpuload_all_0_4096,2533000,1
+p6,0.807265,cpuload_all_0_4096,2533000,1
+p6,0.691360,cpuload_all_0_4096,2133000,1
+p6,0.727763,cpuload_all_0_4096,2133000,1
+p6,0.718575,cpuload_all_0_4096,2133000,1
+p6,0.640646,cpuload_all_0_4096,1733000,1
+p6,0.722075,cpuload_all_0_4096,1733000,1
+p6,0.749314,cpuload_all_0_4096,1733000,1
+p6,0.661644,cpuload_all_0_4096,1199000,1
+p6,0.767542,cpuload_all_0_4096,1199000,1
+p6,7.954695,gamess,2533000,1
+p6,0.772222,cpuload_all_0_4096,1199000,1
+p6,2.550697,cpuload_all_25_4096,2533000,0
+p6,2.562663,cpuload_all_25_4096,2533000,0
+p6,2.567665,cpuload_all_25_4096,2533000,0
+p6,2.269530,cpuload_all_25_4096,2133000,0
+p6,2.270879,cpuload_all_25_4096,2133000,0
+p6,2.331533,cpuload_all_25_4096,2133000,0
+p6,2.070714,cpuload_all_25_4096,1733000,0
+p6,2.077143,cpuload_all_25_4096,1733000,0
+p6,2.052563,cpuload_all_25_4096,1733000,0
+p6,7.913836,gamess,2533000,1
+p6,1.897102,cpuload_all_25_4096,1199000,0
+p6,1.923558,cpuload_all_25_4096,1199000,0
+p6,1.894601,cpuload_all_25_4096,1199000,0
+p6,2.559343,cpuload_all_25_4096,2533000,1
+p6,2.564049,cpuload_all_25_4096,2533000,1
+p6,2.542646,cpuload_all_25_4096,2533000,1
+p6,2.289196,cpuload_all_25_4096,2133000,1
+p6,2.304290,cpuload_all_25_4096,2133000,1
+p6,2.293778,cpuload_all_25_4096,2133000,1
+p6,2.078338,cpuload_all_25_4096,1733000,1
+p6,6.620404,gamess,2133000,1
+p6,2.067451,cpuload_all_25_4096,1733000,1
+p6,2.066593,cpuload_all_25_4096,1733000,1
+p6,1.900786,cpuload_all_25_4096,1199000,1
+p6,1.900241,cpuload_all_25_4096,1199000,1
+p6,1.918755,cpuload_all_25_4096,1199000,1
+p6,7.012832,cpuload_all_50_4096,2533000,0
+p6,6.998368,cpuload_all_50_4096,2533000,0
+p6,6.997770,cpuload_all_50_4096,2533000,0
+p6,6.241168,cpuload_all_50_4096,2133000,0
+p6,5.498513,cpuload_all_50_4096,2133000,0
+p6,6.648741,gamess,2133000,1
+p6,6.120372,cpuload_all_50_4096,2133000,0
+p6,5.298164,cpuload_all_50_4096,1733000,0
+p6,5.361046,cpuload_all_50_4096,1733000,0
+p6,5.411162,cpuload_all_50_4096,1733000,0
+p6,4.569292,cpuload_all_50_4096,1199000,0
+p6,4.528481,cpuload_all_50_4096,1199000,0
+p6,4.522675,cpuload_all_50_4096,1199000,0
+p6,6.147838,cpuload_all_50_4096,2533000,1
+p6,7.074576,cpuload_all_50_4096,2533000,1
+p6,7.027694,cpuload_all_50_4096,2533000,1
+p6,6.631653,gamess,2133000,1
+p6,6.102803,cpuload_all_50_4096,2133000,1
+p6,6.118165,cpuload_all_50_4096,2133000,1
+p6,6.131651,cpuload_all_50_4096,2133000,1
+p6,5.418313,cpuload_all_50_4096,1733000,1
+p6,5.354216,cpuload_all_50_4096,1733000,1
+p6,5.345958,cpuload_all_50_4096,1733000,1
+p6,4.516165,cpuload_all_50_4096,1199000,1
+p6,4.586397,cpuload_all_50_4096,1199000,1
+p6,4.574204,cpuload_all_50_4096,1199000,1
+p6,7.042202,cpuload_all_75_4096,2533000,0
+p6,5.616565,gamess,1733000,1
+p6,7.043255,cpuload_all_75_4096,2533000,0
+p6,7.065249,cpuload_all_75_4096,2533000,0
+p6,6.259265,cpuload_all_75_4096,2133000,0
+p6,6.231777,cpuload_all_75_4096,2133000,0
+p6,6.122456,cpuload_all_75_4096,2133000,0
+p6,5.352126,cpuload_all_75_4096,1733000,0
+p6,5.354859,cpuload_all_75_4096,1733000,0
+p6,5.415553,cpuload_all_75_4096,1733000,0
+p6,4.520488,cpuload_all_75_4096,1199000,0
+p6,4.578987,cpuload_all_75_4096,1199000,0
+p6,5.614568,gamess,1733000,1
+p6,4.576855,cpuload_all_75_4096,1199000,0
+p6,6.957416,cpuload_all_75_4096,2533000,1
+p6,6.958360,cpuload_all_75_4096,2533000,1
+p6,6.931366,cpuload_all_75_4096,2533000,1
+p6,6.191662,cpuload_all_75_4096,2133000,1
+p6,6.089252,cpuload_all_75_4096,2133000,1
+p6,6.102629,cpuload_all_75_4096,2133000,1
+p6,5.423405,cpuload_all_75_4096,1733000,1
+p6,5.353476,cpuload_all_75_4096,1733000,1
+p6,5.336917,cpuload_all_75_4096,1733000,1
+p6,5.615926,gamess,1733000,1
+p6,4.523284,cpuload_all_75_4096,1199000,1
+p6,4.531840,cpuload_all_75_4096,1199000,1
+p6,4.580618,cpuload_all_75_4096,1199000,1
+p6,7.070748,cpuload_all_100_4096,2533000,0
+p6,7.039137,cpuload_all_100_4096,2533000,0
+p6,7.063276,cpuload_all_100_4096,2533000,0
+p6,6.210609,cpuload_all_100_4096,2133000,0
+p6,6.209368,cpuload_all_100_4096,2133000,0
+p6,6.125397,cpuload_all_100_4096,2133000,0
+p6,5.352824,cpuload_all_100_4096,1733000,0
+p6,4.674148,gamess,1199000,1
+p6,5.351123,cpuload_all_100_4096,1733000,0
+p6,5.424441,cpuload_all_100_4096,1733000,0
+p6,4.517152,cpuload_all_100_4096,1199000,0
+p6,4.526656,cpuload_all_100_4096,1199000,0
+p6,4.506046,cpuload_all_100_4096,1199000,0
+p6,7.014676,cpuload_all_100_4096,2533000,1
+p6,7.178739,cpuload_all_100_4096,2533000,1
+p6,7.046155,cpuload_all_100_4096,2533000,1
+p6,6.119935,cpuload_all_100_4096,2133000,1
+p6,6.228922,cpuload_all_100_4096,2133000,1
+p6,4.670029,gamess,1199000,1
+p6,6.147797,cpuload_all_100_4096,2133000,1
+p6,5.354063,cpuload_all_100_4096,1733000,1
+p6,5.361719,cpuload_all_100_4096,1733000,1
+p6,5.350171,cpuload_all_100_4096,1733000,1
+p6,4.512983,cpuload_all_100_4096,1199000,1
+p6,4.575106,cpuload_all_100_4096,1199000,1
+p6,4.525629,cpuload_all_100_4096,1199000,1
+p6,7.915754,gamess,2533000,0
+p6,7.859730,gamess,2533000,0
+p6,7.860926,gamess,2533000,0
+p6,4.668775,gamess,1199000,1
+p6,6.618994,gamess,2133000,0
+p6,6.622166,gamess,2133000,0
+p6,6.672102,gamess,2133000,0
+p6,5.600724,gamess,1733000,0
+p6,5.595525,gamess,1733000,0
+p6,5.623430,gamess,1733000,0
+p6,4.673320,gamess,1199000,0
+p6,4.680381,gamess,1199000,0
+p6,4.680364,gamess,1199000,0
+p6,7.812060,gamess,2533000,1
+p6,7.231020,gcc,2533000,0
+p6,7.828513,gamess,2533000,1
+p6,7.821753,gamess,2533000,1
+p6,6.635177,gamess,2133000,1
+p6,6.547886,gamess,2133000,1
+p6,6.655996,gamess,2133000,1
+p6,5.598160,gamess,1733000,1
+p6,5.610179,gamess,1733000,1
+p6,5.622643,gamess,1733000,1
+p6,4.680171,gamess,1199000,1
+p6,4.663752,gamess,1199000,1
+p6,7.236096,gcc,2533000,0
+p6,4.676239,gamess,1199000,1
+p6,7.369910,gcc,2533000,0
+p6,7.332950,gcc,2533000,0
+p6,7.335048,gcc,2533000,0
+p6,6.431449,gcc,2133000,0
+p6,6.441859,gcc,2133000,0
+p6,6.429665,gcc,2133000,0
+p6,5.575296,gcc,1733000,0
+p6,5.574647,gcc,1733000,0
+p6,5.567036,gcc,1733000,0
+p6,7.222310,gcc,2533000,0
+p6,4.693926,gcc,1199000,0
+p6,4.686450,gcc,1199000,0
+p6,4.693401,gcc,1199000,0
+p6,7.300236,gcc,2533000,1
+p6,7.274600,gcc,2533000,1
+p6,7.289599,gcc,2533000,1
+p6,6.442635,gcc,2133000,1
+p6,6.443564,gcc,2133000,1
+p6,6.438981,gcc,2133000,1
+p6,5.582379,gcc,1733000,1
+p6,6.438390,gcc,2133000,0
+p6,5.580159,gcc,1733000,1
+p6,5.587059,gcc,1733000,1
+p6,4.699031,gcc,1199000,1
+p6,4.706883,gcc,1199000,1
+p6,4.704939,gcc,1199000,1
+p6,7.348784,gobmk,2533000,0
+p6,7.333158,gobmk,2533000,0
+p6,7.369109,gobmk,2533000,0
+p6,6.470641,gobmk,2133000,0
+p6,6.455394,gobmk,2133000,0
+p6,6.422052,gcc,2133000,0
+p6,6.445297,gobmk,2133000,0
+p6,5.587026,gobmk,1733000,0
+p6,5.604440,gobmk,1733000,0
+p6,5.575816,gobmk,1733000,0
+p6,4.668856,gobmk,1199000,0
+p6,4.679352,gobmk,1199000,0
+p6,4.676293,gobmk,1199000,0
+p6,7.315994,gobmk,2533000,1
+p6,7.326742,gobmk,2533000,1
+p6,7.346183,gobmk,2533000,1
+p6,6.441040,gcc,2133000,0
+p6,6.460726,gobmk,2133000,1
+p6,6.446821,gobmk,2133000,1
+p6,6.454577,gobmk,2133000,1
+p6,5.583556,gobmk,1733000,1
+p6,5.551076,gobmk,1733000,1
+p6,5.562301,gobmk,1733000,1
+p6,4.688637,gobmk,1199000,1
+p6,4.688529,gobmk,1199000,1
+p6,4.682493,gobmk,1199000,1
+p6,7.211214,gromacs,2533000,0
+p6,5.566761,gcc,1733000,0
+p6,7.231305,gromacs,2533000,0
+p6,7.190723,gromacs,2533000,0
+p6,6.428064,gromacs,2133000,0
+p6,6.428350,gromacs,2133000,0
+p6,6.433260,gromacs,2133000,0
+p6,5.553182,gromacs,1733000,0
+p6,5.554530,gromacs,1733000,0
+p6,5.565423,gromacs,1733000,0
+p6,4.689542,gromacs,1199000,0
+p6,4.689460,gromacs,1199000,0
+p6,5.564959,gcc,1733000,0
+p6,4.685473,gromacs,1199000,0
+p6,7.228916,gromacs,2533000,1
+p6,7.204632,gromacs,2533000,1
+p6,7.184375,gromacs,2533000,1
+p6,6.407548,gromacs,2133000,1
+p6,6.404801,gromacs,2133000,1
+p6,6.394077,gromacs,2133000,1
+p6,5.550717,gromacs,1733000,1
+p6,5.563193,gromacs,1733000,1
+p6,5.553940,gromacs,1733000,1
+p6,5.568854,gcc,1733000,0
+p6,4.682072,gromacs,1199000,1
+p6,4.689406,gromacs,1199000,1
+p6,4.688267,gromacs,1199000,1
+p6,7.429947,h264ref,2533000,0
+p6,7.416809,h264ref,2533000,0
+p6,7.421479,h264ref,2533000,0
+p6,6.484343,h264ref,2133000,0
+p6,6.475885,h264ref,2133000,0
+p6,6.506030,h264ref,2133000,0
+p6,5.573762,h264ref,1733000,0
+p6,4.678366,gcc,1199000,0
+p6,5.571464,h264ref,1733000,0
+p6,5.558372,h264ref,1733000,0
+p6,4.668876,h264ref,1199000,0
+p6,4.679421,h264ref,1199000,0
+p6,4.686142,h264ref,1199000,0
+p6,7.409688,h264ref,2533000,1
+p6,7.439882,h264ref,2533000,1
+p6,7.432443,h264ref,2533000,1
+p6,6.455023,h264ref,2133000,1
+p6,6.450933,h264ref,2133000,1
+p6,4.676818,gcc,1199000,0
+p6,6.477702,h264ref,2133000,1
+p6,5.554652,h264ref,1733000,1
+p6,5.578750,h264ref,1733000,1
+p6,5.581540,h264ref,1733000,1
+p6,4.676167,h264ref,1199000,1
+p6,4.673140,h264ref,1199000,1
+p6,4.682489,h264ref,1199000,1
+p6,7.873570,hmmer,2533000,0
+p6,7.830477,hmmer,2533000,0
+p6,7.901035,hmmer,2533000,0
+p6,4.682932,gcc,1199000,0
+p6,6.583834,hmmer,2133000,0
+p6,6.529200,hmmer,2133000,0
+p6,6.600148,hmmer,2133000,0
+p6,5.596851,hmmer,1733000,0
+p6,5.556874,hmmer,1733000,0
+p6,5.558757,hmmer,1733000,0
+p6,4.658984,hmmer,1199000,0
+p6,4.649897,hmmer,1199000,0
+p6,4.642720,hmmer,1199000,0
+p6,7.711149,hmmer,2533000,1
+p6,7.239734,gcc,2533000,1
+p6,7.754724,hmmer,2533000,1
+p6,7.763608,hmmer,2533000,1
+p6,6.497994,hmmer,2133000,1
+p6,6.570182,hmmer,2133000,1
+p6,6.541278,hmmer,2133000,1
+p6,5.539296,hmmer,1733000,1
+p6,5.567002,hmmer,1733000,1
+p6,5.557142,hmmer,1733000,1
+p6,4.658993,hmmer,1199000,1
+p6,4.628717,hmmer,1199000,1
+p6,7.232260,gcc,2533000,1
+p6,4.643430,hmmer,1199000,1
+p6,6.989773,lbm,2533000,0
+p6,7.007309,lbm,2533000,0
+p6,6.980961,lbm,2533000,0
+p6,6.350190,lbm,2133000,0
+p6,6.332296,lbm,2133000,0
+p6,6.317900,lbm,2133000,0
+p6,5.448203,lbm,1733000,0
+p6,5.483197,lbm,1733000,0
+p6,5.496907,lbm,1733000,0
+p6,7.237727,gcc,2533000,1
+p6,4.629858,lbm,1199000,0
+p6,4.649327,lbm,1199000,0
+p6,4.666913,lbm,1199000,0
+p6,7.073697,lbm,2533000,1
+p6,7.083371,lbm,2533000,1
+p6,7.066971,lbm,2533000,1
+p6,6.343798,lbm,2133000,1
+p6,6.331096,lbm,2133000,1
+p6,6.325697,lbm,2133000,1
+p6,5.469361,lbm,1733000,1
+p6,6.445857,gcc,2133000,1
+p6,5.434455,lbm,1733000,1
+p6,5.497813,lbm,1733000,1
+p6,4.626745,lbm,1199000,1
+p6,4.597520,lbm,1199000,1
+p6,4.602883,lbm,1199000,1
+p6,7.180857,leslie3d,2533000,0
+p6,7.205500,leslie3d,2533000,0
+p6,7.190239,leslie3d,2533000,0
+p6,6.392046,leslie3d,2133000,0
+p6,6.404279,leslie3d,2133000,0
+p6,6.442356,gcc,2133000,1
+p6,6.389006,leslie3d,2133000,0
+p6,5.559985,leslie3d,1733000,0
+p6,5.564716,leslie3d,1733000,0
+p6,5.543455,leslie3d,1733000,0
+p6,4.699028,leslie3d,1199000,0
+p6,4.698444,leslie3d,1199000,0
+p6,4.677449,leslie3d,1199000,0
+p6,7.173055,leslie3d,2533000,1
+p6,7.197164,leslie3d,2533000,1
+p6,7.178381,leslie3d,2533000,1
+p6,6.444817,gcc,2133000,1
+p6,6.414006,leslie3d,2133000,1
+p6,6.409710,leslie3d,2133000,1
+p6,6.393344,leslie3d,2133000,1
+p6,5.538124,leslie3d,1733000,1
+p6,5.555370,leslie3d,1733000,1
+p6,5.542025,leslie3d,1733000,1
+p6,4.666919,leslie3d,1199000,1
+p6,4.667789,leslie3d,1199000,1
+p6,4.677684,leslie3d,1199000,1
+p6,6.738471,mcf,2533000,0
+p6,5.569469,gcc,1733000,1
+p6,6.765265,mcf,2533000,0
+p6,6.707140,mcf,2533000,0
+p6,6.123817,mcf,2133000,0
+p6,6.169754,mcf,2133000,0
+p6,6.075213,mcf,2133000,0
+p6,5.274165,mcf,1733000,0
+p6,5.355751,mcf,1733000,0
+p6,5.297797,mcf,1733000,0
+p6,4.592284,mcf,1199000,0
+p6,4.605496,mcf,1199000,0
+p6,5.573548,gcc,1733000,1
+p6,4.592354,mcf,1199000,0
+p6,6.844547,mcf,2533000,1
+p6,6.754352,mcf,2533000,1
+p6,6.754004,mcf,2533000,1
+p6,6.160729,mcf,2133000,1
+p6,6.164712,mcf,2133000,1
+p6,6.089432,mcf,2133000,1
+p6,5.269189,mcf,1733000,1
+p6,5.409839,mcf,1733000,1
+p6,5.429291,mcf,1733000,1
+p6,5.572570,gcc,1733000,1
+p6,4.577994,mcf,1199000,1
+p6,4.534242,mcf,1199000,1
+p6,4.589680,mcf,1199000,1
+p6,6.832832,milc,2533000,0
+p6,6.665932,milc,2533000,0
+p6,6.647593,milc,2533000,0
+p6,6.098592,milc,2133000,0
+p6,6.068323,milc,2133000,0
+p6,5.995698,milc,2133000,0
+p6,5.319235,milc,1733000,0
+p6,4.682135,gcc,1199000,1
+p6,5.279899,milc,1733000,0
+p6,5.209345,milc,1733000,0
+p6,4.477919,milc,1199000,0
+p6,4.574124,milc,1199000,0
+p6,4.575472,milc,1199000,0
+p6,6.818234,milc,2533000,1
+p6,6.762202,milc,2533000,1
+p6,6.853958,milc,2533000,1
+p6,6.043657,milc,2133000,1
+p6,5.958648,milc,2133000,1
+p6,4.682578,gcc,1199000,1
+p6,6.004450,milc,2133000,1
+p6,5.267245,milc,1733000,1
+p6,5.349601,milc,1733000,1
+p6,5.233242,milc,1733000,1
+p6,4.450046,milc,1199000,1
+p6,4.489897,milc,1199000,1
+p6,4.476726,milc,1199000,1
+p6,6.798895,namd,2533000,0
+p6,6.761954,namd,2533000,0
+p6,6.758913,namd,2533000,0
+p6,4.684944,gcc,1199000,1
+p6,6.036868,namd,2133000,0
+p6,5.887500,namd,2133000,0
+p6,6.027690,namd,2133000,0
+p6,5.204947,namd,1733000,0
+p6,5.302216,namd,1733000,0
+p6,5.245226,namd,1733000,0
+p6,4.501275,namd,1199000,0
+p6,4.533154,namd,1199000,0
+p6,4.545617,namd,1199000,0
+p6,6.764241,namd,2533000,1
+p6,7.350008,gobmk,2533000,0
+p6,6.782063,namd,2533000,1
+p6,6.520265,namd,2533000,1
+p6,5.899596,namd,2133000,1
+p6,5.918155,namd,2133000,1
+p6,5.934290,namd,2133000,1
+p6,5.344636,namd,1733000,1
+p6,5.279542,namd,1733000,1
+p6,5.210613,namd,1733000,1
+p6,4.492656,namd,1199000,1
+p6,4.533153,namd,1199000,1
+p6,7.384204,gobmk,2533000,0
+p6,4.572820,namd,1199000,1
+p6,7.600543,omnetpp,2533000,0
+p6,7.596936,omnetpp,2533000,0
+p6,7.737399,omnetpp,2533000,0
+p6,6.483574,omnetpp,2133000,0
+p6,6.485165,omnetpp,2133000,0
+p6,6.468396,omnetpp,2133000,0
+p6,5.566458,omnetpp,1733000,0
+p6,5.579650,omnetpp,1733000,0
+p6,5.557247,omnetpp,1733000,0
+p6,7.415271,gobmk,2533000,0
+p6,4.674109,omnetpp,1199000,0
+p6,4.624979,omnetpp,1199000,0
+p6,4.644195,omnetpp,1199000,0
+p6,7.480594,omnetpp,2533000,1
+p6,7.573886,omnetpp,2533000,1
+p6,7.514826,omnetpp,2533000,1
+p6,6.412745,omnetpp,2133000,1
+p6,6.467600,omnetpp,2133000,1
+p6,6.452200,omnetpp,2133000,1
+p6,5.521646,omnetpp,1733000,1
+p6,6.427111,gobmk,2133000,0
+p6,5.563933,omnetpp,1733000,1
+p6,5.534854,omnetpp,1733000,1
+p6,4.658741,omnetpp,1199000,1
+p6,4.655081,omnetpp,1199000,1
+p6,4.645645,omnetpp,1199000,1
+p6,6.400574,povray,2533000,0
+p6,6.489154,povray,2533000,0
+p6,6.421459,povray,2533000,0
+p6,5.512951,povray,2133000,0
+p6,5.798655,povray,2133000,0
+p6,6.443257,gobmk,2133000,0
+p6,5.884492,povray,2133000,0
+p6,5.168315,povray,1733000,0
+p6,4.948946,povray,1733000,0
+p6,5.150208,povray,1733000,0
+p6,4.358761,povray,1199000,0
+p6,4.378927,povray,1199000,0
+p6,4.499941,povray,1199000,0
+p6,6.640444,povray,2533000,1
+p6,6.555371,povray,2533000,1
+p6,6.776608,povray,2533000,1
+p6,6.434877,gobmk,2133000,0
+p6,5.850486,povray,2133000,1
+p6,5.764782,povray,2133000,1
+p6,5.811927,povray,2133000,1
+p6,5.072101,povray,1733000,1
+p6,5.294858,povray,1733000,1
+p6,4.974907,povray,1733000,1
+p6,4.474436,povray,1199000,1
+p6,4.444779,povray,1199000,1
+p6,4.525731,povray,1199000,1
+p6,7.435310,sjeng,2533000,0
+p6,5.539903,gobmk,1733000,0
+p6,7.444004,sjeng,2533000,0
+p6,7.374478,sjeng,2533000,0
+p6,6.466459,sjeng,2133000,0
+p6,6.464813,sjeng,2133000,0
+p6,6.428645,sjeng,2133000,0
+p6,5.555873,sjeng,1733000,0
+p6,5.558331,sjeng,1733000,0
+p6,5.558323,sjeng,1733000,0
+p6,4.661174,sjeng,1199000,0
+p6,4.678075,sjeng,1199000,0
+p6,5.535041,gobmk,1733000,0
+p6,4.671411,sjeng,1199000,0
+p6,7.385341,sjeng,2533000,1
+p6,7.298258,sjeng,2533000,1
+p6,7.308753,sjeng,2533000,1
+p6,6.432482,sjeng,2133000,1
+p6,6.430411,sjeng,2133000,1
+p6,6.433949,sjeng,2133000,1
+p6,5.555197,sjeng,1733000,1
+p6,5.565339,sjeng,1733000,1
+p6,5.570968,sjeng,1733000,1
+p6,5.540996,gobmk,1733000,0
+p6,4.677114,sjeng,1199000,1
+p6,4.671016,sjeng,1199000,1
+p6,4.671938,sjeng,1199000,1
+p6,6.376388,soplex,2533000,0
+p6,6.350230,soplex,2533000,0
+p6,6.404246,soplex,2533000,0
+p6,5.636266,soplex,2133000,0
+p6,5.367462,soplex,2133000,0
+p6,5.287132,soplex,2133000,0
+p6,4.920939,soplex,1733000,0
+p6,4.658515,gobmk,1199000,0
+p6,4.936597,soplex,1733000,0
+p6,4.811742,soplex,1733000,0
+p6,4.335392,soplex,1199000,0
+p6,4.403415,soplex,1199000,0
+p6,4.216023,soplex,1199000,0
+p6,6.092514,soplex,2533000,1
+p6,6.076505,soplex,2533000,1
+p6,6.091131,soplex,2533000,1
+p6,5.400741,soplex,2133000,1
+p6,5.497688,soplex,2133000,1
+p6,4.667625,gobmk,1199000,0
+p6,5.551434,soplex,2133000,1
+p6,4.859722,soplex,1733000,1
+p6,5.006381,soplex,1733000,1
+p6,4.940036,soplex,1733000,1
+p6,4.264893,soplex,1199000,1
+p6,4.263328,soplex,1199000,1
+p6,4.294460,soplex,1199000,1
+p6,6.529769,sphinx3,2533000,0
+p6,6.735374,sphinx3,2533000,0
+p6,6.499201,sphinx3,2533000,0
+p6,4.655263,gobmk,1199000,0
+p6,5.852401,sphinx3,2133000,0
+p6,5.945008,sphinx3,2133000,0
+p6,5.756478,sphinx3,2133000,0
+p6,5.227842,sphinx3,1733000,0
+p6,5.206602,sphinx3,1733000,0
+p6,5.132128,sphinx3,1733000,0
+p6,4.447178,sphinx3,1199000,0
+p6,4.388733,sphinx3,1199000,0
+p6,4.462838,sphinx3,1199000,0
+p6,6.689724,sphinx3,2533000,1
+p6,7.309564,gobmk,2533000,1
+p6,6.578271,sphinx3,2533000,1
+p6,6.782970,sphinx3,2533000,1
+p6,5.782222,sphinx3,2133000,1
+p6,5.971206,sphinx3,2133000,1
+p6,5.734832,sphinx3,2133000,1
+p6,5.075338,sphinx3,1733000,1
+p6,5.168027,sphinx3,1733000,1
+p6,5.143900,sphinx3,1733000,1
+p6,4.411540,sphinx3,1199000,1
+p6,4.368862,sphinx3,1199000,1
+p6,7.333326,gobmk,2533000,1
+p6,4.457090,sphinx3,1199000,1
+p6,7.012705,zeusmp,2533000,0
+p6,7.031471,zeusmp,2533000,0
+p6,7.066081,zeusmp,2533000,0
+p6,6.192927,zeusmp,2133000,0
+p6,6.275638,zeusmp,2133000,0
+p6,6.228828,zeusmp,2133000,0
+p6,5.436549,zeusmp,1733000,0
+p6,5.461577,zeusmp,1733000,0
+p6,5.407271,zeusmp,1733000,0
+p6,7.332056,gobmk,2533000,1
+p6,4.592190,zeusmp,1199000,0
+p6,4.574289,zeusmp,1199000,0
+p6,4.601717,zeusmp,1199000,0
+p6,7.163605,zeusmp,2533000,1
+p6,7.101380,zeusmp,2533000,1
+p6,7.045996,zeusmp,2533000,1
+p6,6.193712,zeusmp,2133000,1
+p6,6.269280,zeusmp,2133000,1
+p6,6.245646,zeusmp,2133000,1
+p6,5.463486,zeusmp,1733000,1
+p6,6.447584,gobmk,2133000,1
+p6,5.395016,zeusmp,1733000,1
+p6,5.416933,zeusmp,1733000,1
+p6,4.629672,zeusmp,1199000,1
+p6,4.635191,zeusmp,1199000,1
+p6,4.659434,zeusmp,1199000,1
+p6,6.456360,gobmk,2133000,1
+p6,6.419364,gobmk,2133000,1
+p6,5.536975,gobmk,1733000,1
+p6,5.532145,gobmk,1733000,1
+p6,5.558925,gobmk,1733000,1
+p6,4.665235,gobmk,1199000,1
+p6,4.669388,gobmk,1199000,1
+p6,4.655354,gobmk,1199000,1
+p6,7.173733,gromacs,2533000,0
+p6,7.163312,gromacs,2533000,0
+p6,7.181241,gromacs,2533000,0
+p6,6.399772,gromacs,2133000,0
+p6,6.394010,gromacs,2133000,0
+p6,6.375227,gromacs,2133000,0
+p6,5.533638,gromacs,1733000,0
+p6,5.538384,gromacs,1733000,0
+p6,5.535510,gromacs,1733000,0
+p6,4.650437,gromacs,1199000,0
+p6,4.668646,gromacs,1199000,0
+p6,4.663604,gromacs,1199000,0
+p6,7.152821,gromacs,2533000,1
+p6,7.200873,gromacs,2533000,1
+p6,7.183278,gromacs,2533000,1
+p6,6.374389,gromacs,2133000,1
+p6,6.353846,gromacs,2133000,1
+p6,6.389370,gromacs,2133000,1
+p6,5.526948,gromacs,1733000,1
+p6,5.536283,gromacs,1733000,1
+p6,5.525940,gromacs,1733000,1
+p6,4.666306,gromacs,1199000,1
+p6,4.666652,gromacs,1199000,1
+p6,4.652820,gromacs,1199000,1
+p6,7.478316,h264ref,2533000,0
+p6,7.448871,h264ref,2533000,0
+p6,7.490999,h264ref,2533000,0
+p6,6.434044,h264ref,2133000,0
+p6,6.480475,h264ref,2133000,0
+p6,6.480451,h264ref,2133000,0
+p6,5.527816,h264ref,1733000,0
+p6,5.536293,h264ref,1733000,0
+p6,5.556285,h264ref,1733000,0
+p6,4.642190,h264ref,1199000,0
+p6,4.649711,h264ref,1199000,0
+p6,4.654241,h264ref,1199000,0
+p6,7.423047,h264ref,2533000,1
+p6,7.447506,h264ref,2533000,1
+p6,7.445493,h264ref,2533000,1
+p6,6.443596,h264ref,2133000,1
+p6,6.467341,h264ref,2133000,1
+p6,6.427325,h264ref,2133000,1
+p6,5.539389,h264ref,1733000,1
+p6,5.553936,h264ref,1733000,1
+p6,5.552286,h264ref,1733000,1
+p6,4.649575,h264ref,1199000,1
+p6,4.659861,h264ref,1199000,1
+p6,4.648712,h264ref,1199000,1
+p6,7.780144,hmmer,2533000,0
+p6,7.790290,hmmer,2533000,0
+p6,7.866254,hmmer,2533000,0
+p6,6.528993,hmmer,2133000,0
+p6,6.548859,hmmer,2133000,0
+p6,6.575874,hmmer,2133000,0
+p6,5.556285,hmmer,1733000,0
+p6,5.550622,hmmer,1733000,0
+p6,5.502482,hmmer,1733000,0
+p6,4.633861,hmmer,1199000,0
+p6,4.620948,hmmer,1199000,0
+p6,4.626334,hmmer,1199000,0
+p6,7.768880,hmmer,2533000,1
+p6,7.733164,hmmer,2533000,1
+p6,7.743371,hmmer,2533000,1
+p6,6.498200,hmmer,2133000,1
+p6,6.561367,hmmer,2133000,1
+p6,6.474299,hmmer,2133000,1
+p6,5.547687,hmmer,1733000,1
+p6,5.525622,hmmer,1733000,1
+p6,5.528620,hmmer,1733000,1
+p6,4.651272,hmmer,1199000,1
+p6,4.637929,hmmer,1199000,1
+p6,4.636765,hmmer,1199000,1
+p6,6.970664,lbm,2533000,0
+p6,7.033044,lbm,2533000,0
+p6,6.897987,lbm,2533000,0
+p6,6.292591,lbm,2133000,0
+p6,6.265914,lbm,2133000,0
+p6,6.332441,lbm,2133000,0
+p6,5.429743,lbm,1733000,0
+p6,5.434103,lbm,1733000,0
+p6,5.454142,lbm,1733000,0
+p6,4.579742,lbm,1199000,0
+p6,4.578805,lbm,1199000,0
+p6,4.572069,lbm,1199000,0
+p6,6.992603,lbm,2533000,1
+p6,6.968949,lbm,2533000,1
+p6,7.007358,lbm,2533000,1
+p6,6.345765,lbm,2133000,1
+p6,6.267048,lbm,2133000,1
+p6,6.269080,lbm,2133000,1
+p6,5.404797,lbm,1733000,1
+p6,5.416397,lbm,1733000,1
+p6,5.420517,lbm,1733000,1
+p6,4.621076,lbm,1199000,1
+p6,4.595156,lbm,1199000,1
+p6,4.580701,lbm,1199000,1
+p6,7.180664,leslie3d,2533000,0
+p6,7.174296,leslie3d,2533000,0
+p6,7.180082,leslie3d,2533000,0
+p6,6.390410,leslie3d,2133000,0
+p6,6.375479,leslie3d,2133000,0
+p6,6.399616,leslie3d,2133000,0
+p6,5.519166,leslie3d,1733000,0
+p6,5.526470,leslie3d,1733000,0
+p6,5.496283,leslie3d,1733000,0
+p6,4.648204,leslie3d,1199000,0
+p6,4.654948,leslie3d,1199000,0
+p6,4.660035,leslie3d,1199000,0
+p6,7.176913,leslie3d,2533000,1
+p6,7.181206,leslie3d,2533000,1
+p6,7.209414,leslie3d,2533000,1
+p6,6.404958,leslie3d,2133000,1
+p6,6.377340,leslie3d,2133000,1
+p6,6.392712,leslie3d,2133000,1
+p6,5.517345,leslie3d,1733000,1
+p6,5.528666,leslie3d,1733000,1
+p6,5.527127,leslie3d,1733000,1
+p6,4.651977,leslie3d,1199000,1
+p6,4.663717,leslie3d,1199000,1
+p6,4.659466,leslie3d,1199000,1
+p6,6.758945,mcf,2533000,0
+p6,6.633518,mcf,2533000,0
+p6,6.703446,mcf,2533000,0
+p6,6.041922,mcf,2133000,0
+p6,6.048621,mcf,2133000,0
+p6,5.987128,mcf,2133000,0
+p6,5.292815,mcf,1733000,0
+p6,5.287025,mcf,1733000,0
+p6,5.326484,mcf,1733000,0
+p6,4.484346,mcf,1199000,0
+p6,4.510526,mcf,1199000,0
+p6,4.549065,mcf,1199000,0
+p6,6.753433,mcf,2533000,1
+p6,6.764830,mcf,2533000,1
+p6,6.722166,mcf,2533000,1
+p6,6.097835,mcf,2133000,1
+p6,6.104502,mcf,2133000,1
+p6,6.086572,mcf,2133000,1
+p6,5.343428,mcf,1733000,1
+p6,5.243853,mcf,1733000,1
+p6,5.306930,mcf,1733000,1
+p6,4.489691,mcf,1199000,1
+p6,4.490668,mcf,1199000,1
+p6,4.498604,mcf,1199000,1
+p6,6.711212,milc,2533000,0
+p6,6.498279,milc,2533000,0
+p6,6.530293,milc,2533000,0
+p6,5.980211,milc,2133000,0
+p6,5.882304,milc,2133000,0
+p6,5.961623,milc,2133000,0
+p6,5.264269,milc,1733000,0
+p6,5.246622,milc,1733000,0
+p6,5.257094,milc,1733000,0
+p6,4.440373,milc,1199000,0
+p6,4.422370,milc,1199000,0
+p6,4.415161,milc,1199000,0
+p6,6.604528,milc,2533000,1
+p6,6.496872,milc,2533000,1
+p6,6.557844,milc,2533000,1
+p6,6.054062,milc,2133000,1
+p6,5.929306,milc,2133000,1
+p6,5.940099,milc,2133000,1
+p6,5.227735,milc,1733000,1
+p6,5.246932,milc,1733000,1
+p6,5.248888,milc,1733000,1
+p6,4.458244,milc,1199000,1
+p6,4.422150,milc,1199000,1
+p6,4.490767,milc,1199000,1
+p6,6.627672,namd,2533000,0
+p6,6.551736,namd,2533000,0
+p6,6.533887,namd,2533000,0
+p6,5.869357,namd,2133000,0
+p6,6.017684,namd,2133000,0
+p6,5.947174,namd,2133000,0
+p6,5.095045,namd,1733000,0
+p6,5.253639,namd,1733000,0
+p6,5.248563,namd,1733000,0
+p6,4.471039,namd,1199000,0
+p6,4.465477,namd,1199000,0
+p6,4.437471,namd,1199000,0
+p6,6.553616,namd,2533000,1
+p6,6.536685,namd,2533000,1
+p6,6.607111,namd,2533000,1
+p6,5.793770,namd,2133000,1
+p6,5.958109,namd,2133000,1
+p6,5.927264,namd,2133000,1
+p6,5.234888,namd,1733000,1
+p6,5.128875,namd,1733000,1
+p6,5.258645,namd,1733000,1
+p6,4.446230,namd,1199000,1
+p6,4.439249,namd,1199000,1
+p6,4.447624,namd,1199000,1
+p6,7.667120,omnetpp,2533000,0
+p6,7.576394,omnetpp,2533000,0
+p6,7.625868,omnetpp,2533000,0
+p6,6.477820,omnetpp,2133000,0
+p6,6.469590,omnetpp,2133000,0
+p6,6.509525,omnetpp,2133000,0
+p6,5.539853,omnetpp,1733000,0
+p6,5.517822,omnetpp,1733000,0
+p6,5.545888,omnetpp,1733000,0
+p6,4.618151,omnetpp,1199000,0
+p6,4.630201,omnetpp,1199000,0
+p6,4.640170,omnetpp,1199000,0
+p6,7.572662,omnetpp,2533000,1
+p6,7.620533,omnetpp,2533000,1
+p6,7.559092,omnetpp,2533000,1
+p6,6.457391,omnetpp,2133000,1
+p6,6.404534,omnetpp,2133000,1
+p6,6.430827,omnetpp,2133000,1
+p6,5.516316,omnetpp,1733000,1
+p6,5.531369,omnetpp,1733000,1
+p6,5.534693,omnetpp,1733000,1
+p6,4.618310,omnetpp,1199000,1
+p6,4.646712,omnetpp,1199000,1
+p6,4.609234,omnetpp,1199000,1
+p6,6.499691,povray,2533000,0
+p6,6.372817,povray,2533000,0
+p6,6.364023,povray,2533000,0
+p6,5.800125,povray,2133000,0
+p6,5.478872,povray,2133000,0
+p6,5.813254,povray,2133000,0
+p6,4.903226,povray,1733000,0
+p6,4.896565,povray,1733000,0
+p6,4.929314,povray,1733000,0
+p6,4.278549,povray,1199000,0
+p6,4.270084,povray,1199000,0
+p6,4.430582,povray,1199000,0
+p6,6.434297,povray,2533000,1
+p6,6.925069,povray,2533000,1
+p6,6.467926,povray,2533000,1
+p6,5.445564,povray,2133000,1
+p6,5.799410,povray,2133000,1
+p6,5.425007,povray,2133000,1
+p6,5.075582,povray,1733000,1
+p6,5.112070,povray,1733000,1
+p6,4.902062,povray,1733000,1
+p6,4.251929,povray,1199000,1
+p6,4.256942,povray,1199000,1
+p6,4.228411,povray,1199000,1
+p6,7.363985,sjeng,2533000,0
+p6,7.328727,sjeng,2533000,0
+p6,7.359398,sjeng,2533000,0
+p6,6.451344,sjeng,2133000,0
+p6,6.440759,sjeng,2133000,0
+p6,6.479191,sjeng,2133000,0
+p6,5.557796,sjeng,1733000,0
+p6,5.564453,sjeng,1733000,0
+p6,5.560427,sjeng,1733000,0
+p6,4.661855,sjeng,1199000,0
+p6,4.661603,sjeng,1199000,0
+p6,4.664217,sjeng,1199000,0
+p6,7.313672,sjeng,2533000,1
+p6,7.343339,sjeng,2533000,1
+p6,7.344518,sjeng,2533000,1
+p6,6.429889,sjeng,2133000,1
+p6,6.456025,sjeng,2133000,1
+p6,6.425797,sjeng,2133000,1
+p6,5.539097,sjeng,1733000,1
+p6,5.553346,sjeng,1733000,1
+p6,5.550155,sjeng,1733000,1
+p6,4.659898,sjeng,1199000,1
+p6,4.650686,sjeng,1199000,1
+p6,4.656206,sjeng,1199000,1
+p6,5.868004,soplex,2533000,0
+p6,5.895289,soplex,2533000,0
+p6,5.775562,soplex,2533000,0
+p6,5.638391,soplex,2133000,0
+p6,5.671613,soplex,2133000,0
+p6,5.669413,soplex,2133000,0
+p6,4.789063,soplex,1733000,0
+p6,4.875562,soplex,1733000,0
+p6,4.787525,soplex,1733000,0
+p6,4.235070,soplex,1199000,0
+p6,4.232554,soplex,1199000,0
+p6,4.234910,soplex,1199000,0
+p6,5.807692,soplex,2533000,1
+p6,5.773622,soplex,2533000,1
+p6,6.244686,soplex,2533000,1
+p6,5.343888,soplex,2133000,1
+p6,5.271672,soplex,2133000,1
+p6,5.651390,soplex,2133000,1
+p6,4.683802,soplex,1733000,1
+p6,4.842500,soplex,1733000,1
+p6,4.900738,soplex,1733000,1
+p6,4.242145,soplex,1199000,1
+p6,4.066269,soplex,1199000,1
+p6,4.101743,soplex,1199000,1
+p6,6.524109,sphinx3,2533000,0
+p6,6.492516,sphinx3,2533000,0
+p6,6.528790,sphinx3,2533000,0
+p6,5.782948,sphinx3,2133000,0
+p6,5.624555,sphinx3,2133000,0
+p6,5.745968,sphinx3,2133000,0
+p6,4.925799,sphinx3,1733000,0
+p6,5.141842,sphinx3,1733000,0
+p6,5.030346,sphinx3,1733000,0
+p6,4.402445,sphinx3,1199000,0
+p6,4.354186,sphinx3,1199000,0
+p6,4.405819,sphinx3,1199000,0
+p6,6.321104,sphinx3,2533000,1
+p6,6.458603,sphinx3,2533000,1
+p6,6.316017,sphinx3,2533000,1
+p6,6.016463,sphinx3,2133000,1
+p6,5.731458,sphinx3,2133000,1
+p6,5.751130,sphinx3,2133000,1
+p6,5.135252,sphinx3,1733000,1
+p6,4.950837,sphinx3,1733000,1
+p6,5.112719,sphinx3,1733000,1
+p6,4.321868,sphinx3,1199000,1
+p6,4.391221,sphinx3,1199000,1
+p6,4.291053,sphinx3,1199000,1
+p6,6.870862,zeusmp,2533000,0
+p6,6.901750,zeusmp,2533000,0
+p6,6.886824,zeusmp,2533000,0
+p6,6.275461,zeusmp,2133000,0
+p6,6.193934,zeusmp,2133000,0
+p6,6.212040,zeusmp,2133000,0
+p6,5.417537,zeusmp,1733000,0
+p6,5.429037,zeusmp,1733000,0
+p6,5.421295,zeusmp,1733000,0
+p6,4.592862,zeusmp,1199000,0
+p6,4.587428,zeusmp,1199000,0
+p6,4.580947,zeusmp,1199000,0
+p6,6.950002,zeusmp,2533000,1
+p6,6.966534,zeusmp,2533000,1
+p6,6.939235,zeusmp,2533000,1
+p6,6.269110,zeusmp,2133000,1
+p6,6.166180,zeusmp,2133000,1
+p6,6.205174,zeusmp,2133000,1
+p6,5.415541,zeusmp,1733000,1
+p6,5.404804,zeusmp,1733000,1
+p6,5.362688,zeusmp,1733000,1
+p6,4.573996,zeusmp,1199000,1
+p6,4.578385,zeusmp,1199000,1
+p6,4.579410,zeusmp,1199000,1
+p6,8.626454,bzip2,2533000,0
+p6,8.387087,bzip2,2533000,0
+p6,7.638297,bzip2,2533000,0
+p6,6.319215,bzip2,2133000,0
+p6,6.809696,bzip2,2133000,0
+p6,6.611532,bzip2,2133000,0
+p6,5.455871,bzip2,1733000,0
+p6,5.452464,bzip2,1733000,0
+p6,5.450370,bzip2,1733000,0
+p6,4.624722,bzip2,1199000,0
+p6,4.601354,bzip2,1199000,0
+p6,4.600332,bzip2,1199000,0
+p6,7.172583,bzip2,2533000,1
+p6,7.252843,bzip2,2533000,1
+p6,7.150051,bzip2,2533000,1
+p6,6.288656,bzip2,2133000,1
+p6,6.317841,bzip2,2133000,1
+p6,6.299789,bzip2,2133000,1
+p6,5.474401,bzip2,1733000,1
+p6,5.468617,bzip2,1733000,1
+p6,5.494879,bzip2,1733000,1
+p6,4.601702,bzip2,1199000,1
+p6,4.608595,bzip2,1199000,1
+p6,4.619481,bzip2,1199000,1
+p6,6.829326,cactusADM,2533000,0
+p6,6.930804,cactusADM,2533000,0
+p6,6.944997,cactusADM,2533000,0
+p6,6.122392,cactusADM,2133000,0
+p6,6.186206,cactusADM,2133000,0
+p6,6.131105,cactusADM,2133000,0
+p6,5.331746,cactusADM,1733000,0
+p6,5.300936,cactusADM,1733000,0
+p6,5.317042,cactusADM,1733000,0
+p6,4.554564,cactusADM,1199000,0
+p6,4.527460,cactusADM,1199000,0
+p6,4.554945,cactusADM,1199000,0
+p6,6.852066,cactusADM,2533000,1
+p6,6.748395,cactusADM,2533000,1
+p6,6.890521,cactusADM,2533000,1
+p6,5.977963,cactusADM,2133000,1
+p6,6.111678,cactusADM,2133000,1
+p6,6.099339,cactusADM,2133000,1
+p6,5.303328,cactusADM,1733000,1
+p6,5.352799,cactusADM,1733000,1
+p6,5.324288,cactusADM,1733000,1
+p6,4.578756,cactusADM,1199000,1
+p6,4.528390,cactusADM,1199000,1
+p6,4.538509,cactusADM,1199000,1
+p6,0.711804,cpuload_all_0_4096,2533000,0
+p6,0.669786,cpuload_all_0_4096,2533000,0
+p6,0.828254,cpuload_all_0_4096,2533000,0
+p6,0.807803,cpuload_all_0_4096,2133000,0
+p6,0.891759,cpuload_all_0_4096,2133000,0
+p6,0.760787,cpuload_all_0_4096,2133000,0
+p6,0.723752,cpuload_all_0_4096,1733000,0
+p6,0.763492,cpuload_all_0_4096,1733000,0
+p6,0.880679,cpuload_all_0_4096,1733000,0
+p6,0.836713,cpuload_all_0_4096,1199000,0
+p6,0.755450,cpuload_all_0_4096,1199000,0
+p6,0.879758,cpuload_all_0_4096,1199000,0
+p6,0.838814,cpuload_all_0_4096,2533000,1
+p6,0.712423,cpuload_all_0_4096,2533000,1
+p6,0.722224,cpuload_all_0_4096,2533000,1
+p6,0.708391,cpuload_all_0_4096,2133000,1
+p6,0.725568,cpuload_all_0_4096,2133000,1
+p6,0.705967,cpuload_all_0_4096,2133000,1
+p6,0.672472,cpuload_all_0_4096,1733000,1
+p6,0.659644,cpuload_all_0_4096,1733000,1
+p6,0.734553,cpuload_all_0_4096,1733000,1
+p6,0.577170,cpuload_all_0_4096,1199000,1
+p6,0.680270,cpuload_all_0_4096,1199000,1
+p6,0.624029,cpuload_all_0_4096,1199000,1
+p6,2.561061,cpuload_all_25_4096,2533000,0
+p6,2.563151,cpuload_all_25_4096,2533000,0
+p6,2.594132,cpuload_all_25_4096,2533000,0
+p6,2.278153,cpuload_all_25_4096,2133000,0
+p6,2.295679,cpuload_all_25_4096,2133000,0
+p6,2.290024,cpuload_all_25_4096,2133000,0
+p6,2.044253,cpuload_all_25_4096,1733000,0
+p6,2.052675,cpuload_all_25_4096,1733000,0
+p6,2.089820,cpuload_all_25_4096,1733000,0
+p6,1.909063,cpuload_all_25_4096,1199000,0
+p6,1.885075,cpuload_all_25_4096,1199000,0
+p6,1.893867,cpuload_all_25_4096,1199000,0
+p6,2.524879,cpuload_all_25_4096,2533000,1
+p6,2.516661,cpuload_all_25_4096,2533000,1
+p6,2.543112,cpuload_all_25_4096,2533000,1
+p6,2.288672,cpuload_all_25_4096,2133000,1
+p6,2.267015,cpuload_all_25_4096,2133000,1
+p6,2.295154,cpuload_all_25_4096,2133000,1
+p6,2.057174,cpuload_all_25_4096,1733000,1
+p6,2.060436,cpuload_all_25_4096,1733000,1
+p6,2.112800,cpuload_all_25_4096,1733000,1
+p6,1.892119,cpuload_all_25_4096,1199000,1
+p6,1.875082,cpuload_all_25_4096,1199000,1
+p6,1.888537,cpuload_all_25_4096,1199000,1
+p6,6.888041,cpuload_all_50_4096,2533000,0
+p6,6.876739,cpuload_all_50_4096,2533000,0
+p6,6.967315,cpuload_all_50_4096,2533000,0
+p6,6.157361,cpuload_all_50_4096,2133000,0
+p6,6.136949,cpuload_all_50_4096,2133000,0
+p6,6.229938,cpuload_all_50_4096,2133000,0
+p6,5.349768,cpuload_all_50_4096,1733000,0
+p6,5.345238,cpuload_all_50_4096,1733000,0
+p6,5.422863,cpuload_all_50_4096,1733000,0
+p6,4.503382,cpuload_all_50_4096,1199000,0
+p6,4.509784,cpuload_all_50_4096,1199000,0
+p6,4.522666,cpuload_all_50_4096,1199000,0
+p6,6.868341,cpuload_all_50_4096,2533000,1
+p6,6.974176,cpuload_all_50_4096,2533000,1
+p6,6.890857,cpuload_all_50_4096,2533000,1
+p6,6.140227,cpuload_all_50_4096,2133000,1
+p6,6.239290,cpuload_all_50_4096,2133000,1
+p6,6.145929,cpuload_all_50_4096,2133000,1
+p6,5.421382,cpuload_all_50_4096,1733000,1
+p6,5.361618,cpuload_all_50_4096,1733000,1
+p6,5.348360,cpuload_all_50_4096,1733000,1
+p6,4.537984,cpuload_all_50_4096,1199000,1
+p6,4.508257,cpuload_all_50_4096,1199000,1
+p6,4.518018,cpuload_all_50_4096,1199000,1
+p6,6.917240,cpuload_all_75_4096,2533000,0
+p6,7.032159,cpuload_all_75_4096,2533000,0
+p6,6.891562,cpuload_all_75_4096,2533000,0
+p6,6.164180,cpuload_all_75_4096,2133000,0
+p6,6.196968,cpuload_all_75_4096,2133000,0
+p6,6.166553,cpuload_all_75_4096,2133000,0
+p6,5.363924,cpuload_all_75_4096,1733000,0
+p6,5.342218,cpuload_all_75_4096,1733000,0
+p6,5.432173,cpuload_all_75_4096,1733000,0
+p6,4.513851,cpuload_all_75_4096,1199000,0
+p6,4.597357,cpuload_all_75_4096,1199000,0
+p6,4.540128,cpuload_all_75_4096,1199000,0
+p6,6.872704,cpuload_all_75_4096,2533000,1
+p6,6.846622,cpuload_all_75_4096,2533000,1
+p6,6.858196,cpuload_all_75_4096,2533000,1
+p6,6.216268,cpuload_all_75_4096,2133000,1
+p6,6.131626,cpuload_all_75_4096,2133000,1
+p6,6.124979,cpuload_all_75_4096,2133000,1
+p6,5.352541,cpuload_all_75_4096,1733000,1
+p6,5.330632,cpuload_all_75_4096,1733000,1
+p6,5.411132,cpuload_all_75_4096,1733000,1
+p6,4.523315,cpuload_all_75_4096,1199000,1
+p6,4.521818,cpuload_all_75_4096,1199000,1
+p6,4.524803,cpuload_all_75_4096,1199000,1
+p6,6.921919,cpuload_all_100_4096,2533000,0
+p6,7.022541,cpuload_all_100_4096,2533000,0
+p6,6.935546,cpuload_all_100_4096,2533000,0
+p6,6.175114,cpuload_all_100_4096,2133000,0
+p6,6.177380,cpuload_all_100_4096,2133000,0
+p6,6.168544,cpuload_all_100_4096,2133000,0
+p6,5.423499,cpuload_all_100_4096,1733000,0
+p6,5.355457,cpuload_all_100_4096,1733000,0
+p6,5.357698,cpuload_all_100_4096,1733000,0
+p6,4.504725,cpuload_all_100_4096,1199000,0
+p6,4.513155,cpuload_all_100_4096,1199000,0
+p6,4.518314,cpuload_all_100_4096,1199000,0
+p6,6.889181,cpuload_all_100_4096,2533000,1
+p6,6.878769,cpuload_all_100_4096,2533000,1
+p6,6.979561,cpuload_all_100_4096,2533000,1
+p6,6.177304,cpuload_all_100_4096,2133000,1
+p6,6.159299,cpuload_all_100_4096,2133000,1
+p6,6.191598,cpuload_all_100_4096,2133000,1
+p6,5.355937,cpuload_all_100_4096,1733000,1
+p6,5.344130,cpuload_all_100_4096,1733000,1
+p6,5.275007,cpuload_all_100_4096,1733000,1
+p6,4.523446,cpuload_all_100_4096,1199000,1
+p6,4.517296,cpuload_all_100_4096,1199000,1
+p6,4.580053,cpuload_all_100_4096,1199000,1
+p6,7.918341,gamess,2533000,0
+p6,7.919330,gamess,2533000,0
+p6,7.902258,gamess,2533000,0
+p6,6.654193,gamess,2133000,0
+p6,6.646611,gamess,2133000,0
+p6,6.606312,gamess,2133000,0
+p6,5.589695,gamess,1733000,0
+p6,5.598044,gamess,1733000,0
+p6,5.601239,gamess,1733000,0
+p6,4.673920,gamess,1199000,0
+p6,4.669903,gamess,1199000,0
+p6,4.667329,gamess,1199000,0
+p6,7.930579,gamess,2533000,1
+p6,7.903296,gamess,2533000,1
+p6,7.901234,gamess,2533000,1
+p6,6.601490,gamess,2133000,1
+p6,6.624216,gamess,2133000,1
+p6,6.648023,gamess,2133000,1
+p6,5.604404,gamess,1733000,1
+p6,5.617995,gamess,1733000,1
+p6,5.599315,gamess,1733000,1
+p6,4.669139,gamess,1199000,1
+p6,4.675610,gamess,1199000,1
+p6,4.662148,gamess,1199000,1
+p6,7.224278,gcc,2533000,0
+p6,7.223058,gcc,2533000,0
+p6,7.212040,gcc,2533000,0
+p6,6.430928,gcc,2133000,0
+p6,6.418917,gcc,2133000,0
+p6,6.419409,gcc,2133000,0
+p6,5.567132,gcc,1733000,0
+p6,5.572011,gcc,1733000,0
+p6,5.571675,gcc,1733000,0
+p6,4.675832,gcc,1199000,0
+p6,4.679411,gcc,1199000,0
+p6,4.680276,gcc,1199000,0
+p6,7.219082,gcc,2533000,1
+p6,7.218021,gcc,2533000,1
+p6,7.221352,gcc,2533000,1
+p6,6.419921,gcc,2133000,1
+p6,6.426401,gcc,2133000,1
+p6,6.431011,gcc,2133000,1
+p6,5.562729,gcc,1733000,1
+p6,5.566362,gcc,1733000,1
+p6,5.559612,gcc,1733000,1
+p6,4.674242,gcc,1199000,1
+p6,4.673347,gcc,1199000,1
+p6,4.672020,gcc,1199000,1
+p6,7.358327,gobmk,2533000,0
+p6,7.372981,gobmk,2533000,0
+p6,7.314780,gobmk,2533000,0
+p6,6.397370,gobmk,2133000,0
+p6,6.428716,gobmk,2133000,0
+p6,6.426018,gobmk,2133000,0
+p6,5.559582,gobmk,1733000,0
+p6,5.545058,gobmk,1733000,0
+p6,5.543385,gobmk,1733000,0
+p6,4.644468,gobmk,1199000,0
+p6,4.638879,gobmk,1199000,0
+p6,4.631252,gobmk,1199000,0
+p6,7.286864,gobmk,2533000,1
+p6,7.321071,gobmk,2533000,1
+p6,7.313946,gobmk,2533000,1
+p6,6.466461,gobmk,2133000,1
+p6,6.438360,gobmk,2133000,1
+p6,6.451706,gobmk,2133000,1
+p6,5.559842,gobmk,1733000,1
+p6,5.555455,gobmk,1733000,1
+p6,5.570663,gobmk,1733000,1
+p6,4.642384,gobmk,1199000,1
+p6,4.650553,gobmk,1199000,1
+p6,4.649227,gobmk,1199000,1
+p6,7.221355,gromacs,2533000,0
+p6,7.187900,gromacs,2533000,0
+p6,7.174908,gromacs,2533000,0
+p6,6.396504,gromacs,2133000,0
+p6,6.399297,gromacs,2133000,0
+p6,6.392914,gromacs,2133000,0
+p6,5.538009,gromacs,1733000,0
+p6,5.524777,gromacs,1733000,0
+p6,5.555652,gromacs,1733000,0
+p6,4.665303,gromacs,1199000,0
+p6,4.671593,gromacs,1199000,0
+p6,4.674853,gromacs,1199000,0
+p6,7.179327,gromacs,2533000,1
+p6,7.138140,gromacs,2533000,1
+p6,7.222382,gromacs,2533000,1
+p6,6.399067,gromacs,2133000,1
+p6,6.391881,gromacs,2133000,1
+p6,6.370778,gromacs,2133000,1
+p6,5.550114,gromacs,1733000,1
+p6,5.557844,gromacs,1733000,1
+p6,5.541645,gromacs,1733000,1
+p6,4.659602,gromacs,1199000,1
+p6,4.662920,gromacs,1199000,1
+p6,4.667716,gromacs,1199000,1
+p6,7.467827,h264ref,2533000,0
+p6,7.450578,h264ref,2533000,0
+p6,7.514165,h264ref,2533000,0
+p6,6.472405,h264ref,2133000,0
+p6,6.444608,h264ref,2133000,0
+p6,6.470930,h264ref,2133000,0
+p6,5.557263,h264ref,1733000,0
+p6,5.543767,h264ref,1733000,0
+p6,5.563482,h264ref,1733000,0
+p6,4.662770,h264ref,1199000,0
+p6,4.654444,h264ref,1199000,0
+p6,4.654623,h264ref,1199000,0
+p6,7.398715,h264ref,2533000,1
+p6,7.449097,h264ref,2533000,1
+p6,7.416142,h264ref,2533000,1
+p6,6.447821,h264ref,2133000,1
+p6,6.449550,h264ref,2133000,1
+p6,6.423841,h264ref,2133000,1
+p6,5.554429,h264ref,1733000,1
+p6,5.537982,h264ref,1733000,1
+p6,5.544390,h264ref,1733000,1
+p6,4.656402,h264ref,1199000,1
+p6,4.664738,h264ref,1199000,1
+p6,4.666311,h264ref,1199000,1
+p6,7.844905,hmmer,2533000,0
+p6,7.839876,hmmer,2533000,0
+p6,7.826513,hmmer,2533000,0
+p6,6.564170,hmmer,2133000,0
+p6,6.542060,hmmer,2133000,0
+p6,6.570818,hmmer,2133000,0
+p6,5.580961,hmmer,1733000,0
+p6,5.575593,hmmer,1733000,0
+p6,5.531177,hmmer,1733000,0
+p6,4.620790,hmmer,1199000,0
+p6,4.613771,hmmer,1199000,0
+p6,4.667160,hmmer,1199000,0
+p6,7.790547,hmmer,2533000,1
+p6,7.783470,hmmer,2533000,1
+p6,7.818344,hmmer,2533000,1
+p6,6.517467,hmmer,2133000,1
+p6,6.555430,hmmer,2133000,1
+p6,6.529552,hmmer,2133000,1
+p6,5.547126,hmmer,1733000,1
+p6,5.542318,hmmer,1733000,1
+p6,5.561788,hmmer,1733000,1
+p6,4.642812,hmmer,1199000,1
+p6,4.641071,hmmer,1199000,1
+p6,4.626151,hmmer,1199000,1
+p6,6.963338,lbm,2533000,0
+p6,6.956336,lbm,2533000,0
+p6,7.040591,lbm,2533000,0
+p6,6.295043,lbm,2133000,0
+p6,6.287872,lbm,2133000,0
+p6,6.260848,lbm,2133000,0
+p6,5.463797,lbm,1733000,0
+p6,5.431042,lbm,1733000,0
+p6,5.481090,lbm,1733000,0
+p6,4.618374,lbm,1199000,0
+p6,4.618481,lbm,1199000,0
+p6,4.621226,lbm,1199000,0
+p6,7.014112,lbm,2533000,1
+p6,6.969904,lbm,2533000,1
+p6,7.067157,lbm,2533000,1
+p6,6.312888,lbm,2133000,1
+p6,6.316303,lbm,2133000,1
+p6,6.279533,lbm,2133000,1
+p6,5.487476,lbm,1733000,1
+p6,5.436013,lbm,1733000,1
+p6,5.464438,lbm,1733000,1
+p6,4.619710,lbm,1199000,1
+p6,4.610437,lbm,1199000,1
+p6,4.605537,lbm,1199000,1
+p6,7.159322,leslie3d,2533000,0
+p6,7.196283,leslie3d,2533000,0
+p6,7.175725,leslie3d,2533000,0
+p6,6.394479,leslie3d,2133000,0
+p6,6.367319,leslie3d,2133000,0
+p6,6.370915,leslie3d,2133000,0
+p6,5.487874,leslie3d,1733000,0
+p6,5.540059,leslie3d,1733000,0
+p6,5.513468,leslie3d,1733000,0
+p6,4.665736,leslie3d,1199000,0
+p6,4.650041,leslie3d,1199000,0
+p6,4.661548,leslie3d,1199000,0
+p6,7.176855,leslie3d,2533000,1
+p6,7.204896,leslie3d,2533000,1
+p6,7.217993,leslie3d,2533000,1
+p6,6.363637,leslie3d,2133000,1
+p6,6.392664,leslie3d,2133000,1
+p6,6.387067,leslie3d,2133000,1
+p6,5.502875,leslie3d,1733000,1
+p6,5.529076,leslie3d,1733000,1
+p6,5.506607,leslie3d,1733000,1
+p6,4.664679,leslie3d,1199000,1
+p6,4.657392,leslie3d,1199000,1
+p6,4.660979,leslie3d,1199000,1
+p6,6.793185,mcf,2533000,0
+p6,6.894579,mcf,2533000,0
+p6,6.908113,mcf,2533000,0
+p6,6.027500,mcf,2133000,0
+p6,6.062554,mcf,2133000,0
+p6,6.061415,mcf,2133000,0
+p6,5.236104,mcf,1733000,0
+p6,5.322102,mcf,1733000,0
+p6,5.271921,mcf,1733000,0
+p6,4.494163,mcf,1199000,0
+p6,4.565286,mcf,1199000,0
+p6,4.512413,mcf,1199000,0
+p6,6.885589,mcf,2533000,1
+p6,6.887341,mcf,2533000,1
+p6,6.901357,mcf,2533000,1
+p6,6.044777,mcf,2133000,1
+p6,6.006817,mcf,2133000,1
+p6,6.023427,mcf,2133000,1
+p6,5.323272,mcf,1733000,1
+p6,5.327043,mcf,1733000,1
+p6,5.334619,mcf,1733000,1
+p6,4.521569,mcf,1199000,1
+p6,4.613234,mcf,1199000,1
+p6,4.535190,mcf,1199000,1
+p6,6.839292,milc,2533000,0
+p6,6.754672,milc,2533000,0
+p6,6.827511,milc,2533000,0
+p6,5.988219,milc,2133000,0
+p6,6.059185,milc,2133000,0
+p6,6.021989,milc,2133000,0
+p6,5.233429,milc,1733000,0
+p6,5.274233,milc,1733000,0
+p6,5.174282,milc,1733000,0
+p6,4.418105,milc,1199000,0
+p6,4.466595,milc,1199000,0
+p6,4.567598,milc,1199000,0
+p6,6.727271,milc,2533000,1
+p6,6.799199,milc,2533000,1
+p6,6.858397,milc,2533000,1
+p6,5.974359,milc,2133000,1
+p6,6.056508,milc,2133000,1
+p6,5.971081,milc,2133000,1
+p6,5.190454,milc,1733000,1
+p6,5.240552,milc,1733000,1
+p6,5.242165,milc,1733000,1
+p6,4.468187,milc,1199000,1
+p6,4.410457,milc,1199000,1
+p6,4.413698,milc,1199000,1
+p6,6.787332,namd,2533000,0
+p6,6.809240,namd,2533000,0
+p6,6.818783,namd,2533000,0
+p6,6.038154,namd,2133000,0
+p6,5.992598,namd,2133000,0
+p6,6.072707,namd,2133000,0
+p6,5.236790,namd,1733000,0
+p6,5.232343,namd,1733000,0
+p6,5.171578,namd,1733000,0
+p6,4.438258,namd,1199000,0
+p6,4.459942,namd,1199000,0
+p6,4.471555,namd,1199000,0
+p6,6.647503,namd,2533000,1
+p6,6.580400,namd,2533000,1
+p6,6.572328,namd,2533000,1
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/mastitis.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/mastitis.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/gotway_hessianfly.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/gotway_hessianfly.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/sbTobb.Rdata
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/sbTobb.Rdata
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/trees513.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/trees513.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/culcita_dat.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/culcita_dat.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/rankMatrix.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/rankMatrix.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/dataEx_Glmer.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/dataEx_Glmer.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/dataEx_Glmer.txt	(revision 2476)
@@ -0,0 +1,181 @@
+Obs    patid cycle dose DLT
+1       1     1  4.1   0
+2       2     1  4.8   0
+3       3     1  5.3   0
+4       4     1  5.7   0
+5       5     1  6.0   1
+6       6     1  5.7   1
+7       7     1  5.7   0
+8       8     1  5.3   0
+9       9     1  5.3   0
+10     10     1  5.7   0
+11     11     1  5.3   0
+12     12     1  5.3   0
+13     13     1  5.3   0
+14     14     1  5.3   0
+15     15     1  5.7   0
+16     16     1  5.3   0
+17     17     1  5.3   0
+18     18     1  5.3   0
+19     19     1  5.3   0
+20     20     1  5.7   0
+21     21     1  5.7   1
+22     22     1  5.7   1
+23     23     1  5.7   0
+24     24     1  5.3   0
+25     25     1  5.3   0
+26     26     1  5.3   0
+27     27     1  5.3   1
+28     28     1  5.7   0
+29     29     1  5.7   1
+30     30     1  5.7   0
+31      1     2  4.1   0
+32      2     2  4.8   0
+33      3     2  5.3   0
+34      4     2  5.7   0
+35      5     2  6.0   0
+36      6     2  5.7   0
+37      7     2  5.7   1
+38      8     2  5.3   0
+39      9     2  5.3   0
+40     10     2  5.7   0
+41     11     2  5.3   0
+42     12     2  5.3   0
+43     13     2  5.3   0
+44     14     2  5.3   0
+45     15     2  5.7   0
+46     16     2  5.3   0
+47     17     2  5.3   0
+48     18     2  5.3   0
+49     19     2  5.3   0
+50     20     2  5.7   0
+51     21     2  5.7   0
+52     22     2  5.7   0
+53     23     2  5.7   1
+54     24     2  5.3   0
+55     25     2  5.3   0
+56     26     2  5.3   0
+57     27     2  5.3   0
+58     28     2  5.7   0
+59     29     2  5.7   0
+60     30     2  5.7   1
+61      1     3  4.1   0
+62      2     3  4.8   0
+63      3     3  5.3   0
+64      4     3  5.7   0
+65      5     3  6.0   1
+66      6     3  5.7   1
+67      7     3  5.7   1
+68      8     3  5.3   0
+69      9     3  5.3   0
+70     10     3  5.7   0
+71     11     3  5.3   0
+72     12     3  5.3   0
+73     13     3  5.3   0
+74     14     3  5.3   0
+75     15     3  5.7   0
+76     16     3  5.3   0
+77     17     3  5.3   0
+78     18     3  5.3   0
+79     19     3  5.3   1
+80     20     3  5.7   0
+81     21     3  5.7   0
+82     22     3  5.7   0
+83     23     3  5.7   1
+84     24     3  5.3   0
+85     25     3  5.3   0
+86     26     3  5.3   1
+87     27     3  5.3   0
+88     28     3  5.7   0
+89     29     3  5.7   0
+90     30     3  5.7   1
+91      1     4  4.1   0
+92      2     4  4.8   0
+93      3     4  5.3   0
+94      4     4  5.7   0
+95      5     4  6.0   0
+96      6     4  5.7   0
+97      7     4  5.7   0
+98      8     4  5.3   0
+99      9     4  5.3   0
+100    10     4  5.7   0
+101    11     4  5.3   1
+102    12     4  5.3   1
+103    13     4  5.3   0
+104    14     4  5.3   0
+105    15     4  5.7   1
+106    16     4  5.3   0
+107    17     4  5.3   0
+108    18     4  5.3   0
+109    19     4  5.3   0
+110    20     4  5.7   0
+111    21     4  5.7   0
+112    22     4  5.7   0
+113    23     4  5.7   0
+114    24     4  5.3   0
+115    25     4  5.3   0
+116    26     4  5.3   0
+117    27     4  5.3   0
+118    28     4  5.7   0
+119    29     4  5.7   0
+120    30     4  5.7   0
+121     1     5  4.1   0
+122     2     5  4.8   0
+123     3     5  5.3   0
+124     4     5  5.7   0
+125     5     5  6.0   0
+126     6     5  5.7   1
+127     7     5  5.7   0
+128     8     5  5.3   1
+129     9     5  5.3   0
+130    10     5  5.7   0
+131    11     5  5.3   0
+132    12     5  5.3   0
+133    13     5  5.3   1
+134    14     5  5.3   0
+135    15     5  5.7   0
+136    16     5  5.3   0
+137    17     5  5.3   0
+138    18     5  5.3   0
+139    19     5  5.3   0
+140    20     5  5.7   0
+141    21     5  5.7   1
+142    22     5  5.7   0
+143    23     5  5.7   0
+144    24     5  5.3   0
+145    25     5  5.3   0
+146    26     5  5.3   0
+147    27     5  5.3   0
+148    28     5  5.7   0
+149    29     5  5.7   0
+150    30     5  5.7   0
+151     1     6  4.1   0
+152     2     6  4.8   0
+153     3     6  5.3   0
+154     4     6  5.7   1
+155     5     6  6.0   1
+156     6     6  5.7   0
+157     7     6  5.7   0
+158     8     6  5.3   0
+159     9     6  5.3   0
+160    10     6  5.7   1
+161    11     6  5.3   0
+162    12     6  5.3   0
+163    13     6  5.3   0
+164    14     6  5.3   0
+165    15     6  5.7   0
+166    16     6  5.3   0
+167    17     6  5.3   0
+168    18     6  5.3   0
+169    19     6  5.3   0
+170    20     6  5.7   1
+171    21     6  5.7   1
+172    22     6  5.7   0
+173    23     6  5.7   0
+174    24     6  5.3   0
+175    25     6  5.3   0
+176    26     6  5.3   1
+177    27     6  5.3   0
+178    28     6  5.7   0
+179    29     6  5.7   1
+180    30     6  5.7   0
\ No newline at end of file

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/dataEx_Glmer.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/trees513.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/trees513.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/trees513.R	(revision 2476)
@@ -0,0 +1,9 @@
+### How to generate the  trees513.RData, needed in ../../tests/HSAURtrees.R:
+
+data("trees513", package = "multcomp")
+trees513A <- droplevels(subset(trees513, !species %in%
+			       c("fir", "ash/maple/elm/lime", "softwood (other)")))
+levels(trees513A$species)[nlevels(trees513A$species)] <- "hardwood"
+trees513B <- droplevels(subset(trees513,
+			       !species %in% c("fir", "softwood (other)")))
+save("trees513A", "trees513B", file="trees513.RData")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/colonizer_rand.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/colonizer_rand.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/polytomous_vcov_ex.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/polytomous_vcov_ex.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/polytom2.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/polytom2.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/polytom3.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/polytom3.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/polytomous_test.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/polytomous_test.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/Johnson.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/Johnson.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/boo01L.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/boo01L.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/survdat_reduced.Rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/survdat_reduced.Rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/gopherdat2.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/gopherdat2.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/Thailand.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/Thailand.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/crabs_randdata00.Rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/crabs_randdata00.Rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/lme-tst-fits.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/lme-tst-fits.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/confint_ex.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/confint_ex.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/tprfm1.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/tprfm1.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/badhess.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/badhess.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/badprof.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/badprof.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/prLogistic.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/prLogistic.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/respiratory.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/respiratory.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/radinger_dat.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/testdata/radinger_dat.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/CITATION	(revision 2476)
@@ -0,0 +1,25 @@
+bibentry(bibtype = "Article",
+  title        = "Fitting Linear Mixed-Effects Models Using {lme4}",
+  author       = c(person(given = "Douglas",
+                          family = "Bates"),
+                   person(given = "Martin",
+                          family = "M{\\\"a}chler"),
+                   person(given = "Ben",
+                          family = "Bolker"),
+                   person(given = "Steve",
+                          family = "Walker")),
+  journal      = "Journal of Statistical Software",
+  year         = "2015",
+  volume       = "67",
+  number       = "1",
+  pages        = "1--48",
+  doi          = "10.18637/jss.v067.i01",
+
+  header       = "To cite lme4 in publications use:",
+  textVersion  =
+  paste("Douglas Bates, Martin Maechler, Ben Bolker, Steve Walker (2015).",
+        "Fitting Linear Mixed-Effects Models Using lme4.",
+        "Journal of Statistical Software, 67(1), 1-48.",
+        "doi:10.18637/jss.v067.i01.")
+)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/NAMESPACE	(revision 2476)
@@ -0,0 +1,242 @@
+useDynLib(lme4, .registration=TRUE)
+
+## base packages
+importFrom("graphics", par, plot)
+importFrom("grid", gpar, viewport)
+importFrom("splines", backSpline, interpSpline, periodicSpline)
+importFrom("methods", as, getDataPart, is, new, rbind2, show, slot, slotNames)
+importFrom("stats",
+           AIC, BIC, anova, approx, approxfun,
+           as.formula, asOneSidedFormula, ave,
+           coef, confint, delete.response,
+           deviance, df.residual, dnorm, drop.scope, drop1, extractAIC,
+           family, fitted, formula, gaussian, getCall, glm,
+           hatvalues, lm, logLik, model.extract, model.frame,
+           model.matrix, model.offset, model.response, model.weights,
+           na.exclude, na.omit, na.pass, napredict, naresid, nlminb,
+           nobs, optimize, pchisq, pnorm, poisson, ppoints,
+           predict, printCoefmat, profile, pt, qchisq, qnorm,
+           qqnorm, qt, quantile, rbinom, reformulate, reorder,
+           resid, residuals, rgamma, rnbinom, rnorm, rpois,
+           runif, sd, setNames, simulate, symnum, terms, terms.formula,
+           update, update.formula, var, vcov, weights)
+
+importFrom("utils", flush.console, packageVersion, stack, str)
+
+
+## Recommended packages
+importFrom("lattice",
+           bwplot,
+           current.panel.limits,
+           densityplot, dotplot,
+           histogram,
+           llines,lpoints,lsegments,ltext,
+           panel.abline,panel.axis,panel.bwplot,panel.grid,panel.histogram,
+           panel.lines, panel.number, panel.points,
+           panel.segments, panel.xyplot,
+           prepanel.qqmathline, panel.qqmathline, panel.qqmath, qqmath,
+           splom, strip.custom, strip.default, trellis.par.get,
+           xyplot)
+importFrom("MASS", negative.binomial, theta.ml)
+
+## generics we provide methods for and re-export:
+importFrom("nlme", fixef,ranef, VarCorr, getGroups)
+
+importFrom("Matrix", drop0, rankMatrix, sparseMatrix, cBind,rBind,
+           forceSymmetric, fac2sparse, KhatriRao, Diagonal)
+importClassesFrom("Matrix", corMatrix, dgCMatrix, dpoMatrix, dCHMsimpl)
+## methods incl. S4 generics:
+importMethodsFrom("Matrix", coerce, cov2cor, "%*%", crossprod,tcrossprod,
+                  t, diag, chol2inv, solve, colSums,rowSums)
+## other CRAN packages:
+importFrom("minqa", bobyqa)
+importFrom("nloptr", nloptr)
+
+## Re-Exports :
+export(negative.binomial)
+## currently needed for some eval()ing methods for glmer.nb() objects
+
+## Our Exports:
+export(bootMer)
+export(devcomp)
+export(dummy)
+export(factorize)  ## needed for qqmath???
+export(expandDoubleVerts)
+export(findbars)
+export(fixef)
+## export(fortify)
+export(getL)
+export(getME)
+export(GHrule)
+export(glFormula)
+export(glmer.nb)
+export(glmer)
+export(glmerLaplaceHandle)
+export(glmFamily)
+export(glmResp)
+export(golden)
+export(GQdk)
+export(GQN)
+export(isLMM, isGLMM, isNLMM)
+export(isNested)
+export(isREML)
+export(lFormula)
+export(lmer)
+export(lmerControl, glmerControl, nlmerControl,
+       .makeCC)
+export(lmerResp)
+export(lmList)
+export(lmResp)
+export(logProf)
+export(mlist2vec)
+export(vec2mlist)
+export(vec2STlist)
+export(sdcor2cov)
+export(cov2sdcor)
+export(Vv_to_Cv, Sv_to_Cv, Cv_to_Vv, Cv_to_Sv)
+export(merPredD)
+export(mkGlmerDevfun)
+export(mkLmerDevfun)
+export(mkMerMod)
+export(mkRespMod)
+export(mkReTrms)
+export(mkVarCorr)
+export(mkParsTemplate)
+export(mkDataTemplate)
+export(Nelder_Mead)
+export(NelderMead)
+export(ngrps)
+export(nlformula)
+export(nlmer)
+export(nloptwrap)
+export(nlsResp)
+export(nobars)
+export(optimizeGlmer)
+export(optimizeLmer)
+export(ranef)
+export(refit)
+export(refitML)
+export(rePos)
+export(REMLcrit)
+if(getRversion() >= "3.3.0") {
+    importFrom("stats", sigma)
+} else {
+    export(sigma)
+}
+export(.simulateFun)
+export(subbars)
+export(updateGlmerDevfun)
+export(VarCorr)
+export(varianceProf)
+
+## print() and print.summary() utilities -- other [NG]LMM packages can import
+export(.prt.VC,		.prt.aictab,	.prt.call,	.prt.family,
+       .prt.grps,	.prt.methTit,	.prt.resids,	.prt.warn,
+       formatVC,
+       llikAIC,	methTitle)
+## export(tnames)
+
+
+##------ Our S4 Classes ------------------------
+exportClasses(glmerMod, lmerMod, nlmerMod, merMod)
+exportClasses(lmList4)
+
+##------ Our S4 Generics / Methods --------------
+exportMethods(getL)
+exportMethods(show)
+
+
+##------ Our S3 Methods -------------------------
+S3method(anova,merMod)
+S3method(as.data.frame,boot)
+S3method(as.data.frame,thpr)
+S3method(as.data.frame,VarCorr.merMod)
+S3method(as.function,merMod)
+S3method(coef,lmList4)
+S3method(coef,merMod)
+S3method(confint,lmList4)
+S3method(confint,merMod)# but don't hide:
+export(confint.merMod)
+S3method(confint,thpr)
+S3method(densityplot,thpr)
+S3method(deviance,merMod)
+S3method(df.residual,merMod)
+## S3method(dim,merMod) ???
+S3method(dotplot,coef.mer)
+S3method(dotplot,ranef.mer)
+S3method(drop1,merMod)
+S3method(extractAIC,merMod)
+S3method(family,glmResp)
+S3method(family,lmResp)
+S3method(family,merMod)
+S3method(family,nlsResp)
+S3method(fitted,merMod)
+S3method(fixef,merMod)
+S3method(formula,lmList4)
+S3method(formula,merMod)
+## S3method(fortify,merMod)# but don't hide:
+export(fortify.merMod)
+S3method(getME, merMod)
+S3method(hatvalues,merMod)
+S3method(isGLMM,merMod)
+S3method(isLMM,merMod)
+S3method(isNLMM,merMod)
+S3method(isREML,merMod)
+S3method(log,thpr)
+S3method(logLik,merMod)
+S3method(model.frame,merMod)
+S3method(model.matrix,merMod)
+S3method(ngrps,factor)
+S3method(ngrps,merMod)
+S3method(nobs,merMod)
+S3method(plot,coef.mer)
+S3method(plot,lmList4.confint)
+S3method(plot,merMod)
+S3method(plot,ranef.mer)
+S3method(predict,merMod)
+S3method(print,merMod)
+S3method(print,ranef.mer)
+S3method(print,summary.merMod)
+S3method(print,VarCorr.merMod)
+S3method(profile,merMod)
+S3method(qqmath,merMod)
+S3method(qqmath,ranef.mer)
+S3method(ranef,merMod)
+S3method(refit,merMod)
+S3method(refitML,merMod)
+S3method(residuals,glmResp)
+S3method(residuals,lmResp)
+S3method(residuals,merMod)
+S3method(sigma,merMod)
+S3method(simulate,merMod)
+S3method(simulate,formula)
+S3method(splom,thpr)
+S3method(summary,merMod)
+S3method(summary,summary.merMod)
+S3method(terms,merMod)
+S3method(update,lmList4)
+S3method(update,merMod)
+S3method(VarCorr,merMod)
+S3method(vcov,merMod)# but do not hide:
+export(vcov.merMod)
+S3method(vcov,summary.merMod)
+S3method(weights,merMod)
+S3method(xyplot,thpr)
+
+
+S3method(sigma,lmList4)
+
+## Re-using S3 methods from nlme (for 'lmList') as methods for our 'lmList4':
+S3method(fitted,lmList4)
+S3method(fixef,lmList4)
+S3method(logLik,lmList4)
+S3method(pairs,lmList4)
+S3method(plot,lmList4)
+S3method(predict,lmList4)
+S3method(qqnorm,lmList4)
+S3method(ranef,lmList4)
+S3method(residuals,lmList4)
+S3method(summary,lmList4)
+## Auxiliaries:
+S3method(getGroups,lmList4)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/vignettedata/mcmcsampdat.RData
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/vignettedata/mcmcsampdat.RData
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/vignettedata/calcium.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/vignettedata/calcium.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/vignettedata/calcium.txt	(revision 2476)
@@ -0,0 +1,25 @@
+Plant      Leaf       Det         Calcium
+1              1              1              3.28
+1              1              2              3.09
+1              2              1              3.52
+1              2              2              3.48
+1              3              1              2.88
+1              3              2              2.80
+2              1              1              2.46
+2              1              2              2.44
+2              2              1              1.87
+2              2              2              1.92
+2              3              1              2.19
+2              3              2              2.19
+3              1              1              2.77
+3              1              2              2.66
+3              2              1              3.74
+3              2              2              3.44
+3              3              1              2.55
+3              3              2              2.55
+4              1              1              3.78
+4              1              2              3.87
+4              2              1              4.07
+4              2              2              4.12
+4              3              1              3.31
+4              3              2              3.31

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/vignettedata/calcium.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/NEWS.Rd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/NEWS.Rd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/NEWS.Rd	(revision 2476)
@@ -0,0 +1,707 @@
+\newcommand{\PR}{\Sexpr[results=rd]{tools:::Rd_expr_PR(#1)}}
+
+\name{NEWS}
+\title{lme4 News}
+\encoding{UTF-8}
+
+\section{CHANGES IN VERSION 1.1-12 (2016-04-15)}{
+  This release is primarily a bump for compatibility with the new
+  Windows toolchain. Some small documentation and test changes.
+  \subsection{USER-VISIBLE CHANGES}{
+    \itemize{
+      \item reduced default print precision of fixed-effect correlation
+      matrix in \code{summary.merMod} (related to GH #300)
+    }
+  }
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item fixed bug \emph{de novo} Gamma-response simulations
+    }
+  }
+}
+\section{CHANGES IN VERSION 1.1-11 (2016-02-11)}{
+  \subsection{USER-VISIBLE CHANGES}{
+    \itemize{
+      \item change \code{VarCorr} method signature (for compatibility
+      with upstream \code{nlme} changes)
+    }
+  }
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item several \code{glmer.nb} bugs fixed (generally not
+      changing results, but causing warnings and errors e.g.
+      during bootstrapping)
+      \item fixes to some \code{lmList} bugs (Github #320)
+      \item minor documentation, vignette updates
+      \item minor fix to \code{plot.merMod} with \code{id} specified
+      \item \code{bootMer} now handles separate offset term properly
+      (Github #250)
+    }
+  }
+}
+
+\section{CHANGES IN VERSION 1.1-10 (2015-10-05)}{
+  This release is primarily a version bump for the release of
+  the paper in J. Stat. Software.
+  \subsection{USER-VISIBLE CHANGES}{
+    \itemize{
+      \item updated CITATION file.
+    }
+  }    
+  \subsection{NEW FEATURES}{
+    \itemize{
+      \item We export set of about a dozen printing utility functions
+      which are used in our \code{print} methods.
+      \item \code{bootMer} now allows the use of \code{re.form}.
+    }
+  }
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item fixed reordering bug in names of \code{getME(.,"Ztlist")}
+      (terms are reordered in decreasing order of the number of
+      levels of the grouping variable, but names were not being
+      reordered)
+      \item fixed issue with simulation when complex forms (such
+      as nested random effects terms) are included in the model
+      (Github #335)
+    }
+  }
+}
+\section{CHANGES IN VERSION 1.1-9 (2015-08-20)}{
+  \subsection{USER-VISIBLE CHANGES}{
+    \itemize{
+      \item explicit \code{maxit} arguments for various functions
+      (\code{refit}, \code{mkGlmerDevfun}, ...)
+    }
+  }
+  \subsection{NEW FEATURES}{
+    \itemize{
+      \item \code{terms} and \code{formula} methods now have
+      \code{random.only} options
+
+      \item \code{getME} gains a \code{glmer.nb.theta} option.
+      It is now (an S3) generic with an \code{"merMod"} method in
+      \pkg{lme4} and potentially other methods in dependent packages.
+
+      \item \code{simulate} now works for \code{glmer.nb} models
+      (Github #284: idea from @aosmith16)
+    }
+  }
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item prediction and simulation now work when random-effects
+      terms have data-dependent bases (e.g., \code{poly(.)} or
+      \code{ns(.)} terms) (Github #313, Edgar Gonzalez)
+      \item \code{logLik} for \code{glmer.nb} models now
+      includes the overdispersion parameter in the
+      parameter count (\code{df} attribute)
+      \item \code{lmList} handles offsets and weights better
+      \item lots of fixes to \code{glmer.nb} (Github #176, #266, #287,
+      #318). \strong{Please note that glmer.nb is still somewhat
+	unstable/under construction.}
+    }
+  }
+  \subsection{CRAN-COMPATIBILITY UPDATES}{
+    \itemize{
+      \item import functions from base packages to pass CRAN checks
+      \item tweak to failing tests on Windows
+    }
+  }
+}
+\section{CHANGES IN VERSION 1.1-8 (2015-06-22)}{
+  \subsection{NEW FEATURES}{
+    \itemize{
+      \item \code{getME} gains a \code{"Tlist"} option
+      (returns a vector of template matrices from which the blocks of
+      \code{Lambda} are generated)
+      \item \code{hatvalues} method returns the diagonal of the hat
+      matrix of LMMs
+      \item \code{nlminbwrap} convenience function allows use of
+      \code{nlminb} without going through the \code{optimx} package
+      \item \code{as.data.frame.VarCorr.merMod} gains an \code{order}
+      option that allows the results to be sorted with variances first
+      and covariances last (default) or in lower-triangle order
+      \item allow more flexibility in \code{scales} for
+      \code{xyplot.thpr} method (John Maindonald)
+      \item models with only random effects of the form \code{1|f} have
+      better starting values for \code{lmer} optimization (Gabor
+      Grothendieck)
+      \item \code{glmer} now allows a logical vector as the response
+      for binomial models
+      \item \code{anova} will now do (sequential) likelihood ratio
+      tests for two or more models including both \code{merMod} and
+      \code{glm} or \code{lm} models (at present, only for GLMMs
+      fitted with the Laplace approximation)
+    }
+  }
+  \subsection{USER-VISIBLE CHANGES}{
+    \itemize{
+      \item \code{deviance()} now returns the deviance, rather than half the
+      negative log-likelihood, for GLMMs fitted with Laplace
+      (the behaviour for LMMs and GLMMs fitted with \code{nAGQ>1} has
+      not changed)
+      \item convergence warning and diagnostic test issues are now
+      reported in \code{print} and \code{summary} methods
+      \item \code{update} now (attempts to) re-evaluate the original fit
+      in the environment of its formula (as is done with \code{drop1})
+      \item \code{refit} of a nonlinear mixed model fit now throws an
+      error, but this will hopefully change in future releases (related
+      to bug fixes for Github #231)
+      \item \code{lmList} now returns objects of class \code{lmList4},
+      to avoid overwriting \code{lmList} methods from the recommended
+      \code{nlme} package
+      \item names of random effects parameters in \code{confint}
+      changed (modified for consistency across methods);
+      \code{oldNames=TRUE} (default) gives \code{".sig01"}-style names,
+      \code{oldNames=FALSE} gives \code{"sd_(Intercept)|Subject"}-style names
+      \item \code{confint(.,method="Wald")} result now contains rows
+      for random effects parameters (values set to \code{NA})
+      as well as for fixed-effect parameters
+    }
+  }
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item \code{simulate} and \code{predict} now work more
+      consistently with different-length data, differing
+      factor levels, and \code{NA} values (Github #153, #197, #246, #275)
+      \item \code{refit} now works correctly for \code{glmer}
+      fits (Github #231)
+      \item fixed bug in \code{family.merMod}; non-default links
+      were not retrieved correctly (Alessandro Moscatelli)
+      \item fixed \code{bootMer} bug for \code{type=="parametric"},
+      \code{use.u=TRUE} (Mark Lai)
+      \item gradient scaling for convergence checks now uses the Cholesky factor of the
+      Hessian; while it is more correct, this will lead to some additional (probably
+      false-positive) convergence warnings
+      \item As with \code{lm()}, users now get an error for non-finite
+      (\code{Inf}, \code{NA}, or \code{NaN})
+      values in the response unless \code{na.action} is set to
+      exclude or omit them (Github #310)
+    }
+  }
+}
+
+\section{CHANGES IN VERSION 1.1-7 (2014-07-19)}{
+  \subsection{NEW FEATURES}{
+    \itemize{
+      \item the \code{nloptr} package is now imported;
+      a wrapper function (\code{nloptwrap}) is provided so that
+      \code{lmerControl(optimizer="nloptwrap")} is all that's necessary
+      to use \code{nloptr} optimizers in the nonlinear optimization
+      stage (the default algorithm is NLopt's implementation
+      of BOBYQA: see \code{?nloptwrap} for examples)
+      \item preliminary implementation of checks for scaling
+      of model matrix columns (see \code{check.scaleX} in
+      \code{?lmerControl})
+      \item \code{beta} is now allowed as a synonym for \code{fixef}
+      when specifying starting parameters (Github #194)
+    }
+  }
+  \subsection{USER-VISIBLE CHANGES}{
+    \itemize{
+      \item the use of \code{deviance} to return the REML criterion
+      is now deprecated; users should use \code{REMLcrit()} instead
+      (Github #211)
+      \item changed the default value of \code{check.nobs.vs.rankZ} to
+      \code{"ignore"} (Github #214)
+    }
+  }
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item change gradient testing from absolute to relative
+      \item fix \code{confint(.,method="boot")} to allow/work
+      properly with \code{boot.type} values other than \code{"perc"}
+      (reported by Alan Zaslavsky)
+      \item allow \code{plot()} to work when data are specified in a different
+      environment (reported by Dieter Menne)
+      \item \code{predict} and \code{simulate} work for matrix-valued
+      predictors (Github #201)
+      \item other \code{simulate} bugs (Github #212)
+      \item \code{predict} no longer warns spuriously when
+      original response was a factor (Github #205)
+      \item fix memory access issues (Github #200)
+    }
+  }
+}
+
+\section{CHANGES IN VERSION 1.1-6 (2014-04-13)}{
+  This version incorporates no changes in functionality, just
+  modifications to testing and dependencies for CRAN/backward compatibility.
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item change \code{drop1} example to prevent use of old/incompatible
+      \code{pbkrtest} versions, for 2.15.3 compatibility
+      \item explicitly \code{require(mlmRev)} for tests to prevent cyclic
+      dependency
+      \item bump \code{RcppEigen} Imports: requirement from >0.3.1.2.3 to
+      >=0.3.2.0; \code{Rcpp} dependency to >= 0.10.5
+    }
+  }
+}
+
+\section{CHANGES IN VERSION 1.1-5 (2014-03-14)}{
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item improved NA handling in \code{simulate} and \code{refit}
+      \item made internal handling of \code{weights}/\code{offset}
+      arguments slightly more robust (Github #191)
+      \item handle non-positive-definite estimated fixed effect
+      variance-covariance matrices slightly more generally/robustly
+      (fall back on RX approximation, with a warning,
+      if finite-difference Hessian
+      is non-PD; return \code{NA} matrix if RX approximation is
+      also bad)
+    }
+  }
+  \subsection{MINOR USER-VISIBLE CHANGES}{
+    \itemize{
+      \item Added output specifying when Gauss-Hermite quadrature
+      was used to fit the model, and specifying number of GHQ points
+      (Github #190)
+    }
+  }
+}
+
+\section{CHANGES IN VERSION 1.1-4}{
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item Models with prior weights returned an incorrect sigma and
+      deviance (Github issue #155). The deviance bug was only a
+      practical issue in model comparisons, not with inferences given a
+      particular model. Both bugs are now fixed.
+      \item Profiling failed in some cases for models with vector random
+      effects (Github issue #172)
+      \item Standard errors of fixed effects are now computed
+      from the approximate Hessian by default (see the
+      \code{use.hessian} argument in \code{vcov.merMod}); this
+      gives better (correct) answers when the estimates of
+      the random- and fixed-effect parameters are correlated
+      (Github #47)
+    }
+  }
+  \subsection{MAJOR USER-VISIBLE CHANGES}{
+    \itemize{
+      \item The default optimizer for \code{lmer} fits has been
+      switched from "Nelder_Mead" to "bobyqa" because we have
+      generally found the latter to be more reliable.  To switch
+      back to the old behaviour,
+      use \code{control=lmerControl(optimizer="Nelder_Mead")}.
+      \item Better handling of rank-deficient/overparameterized
+      fixed-effect model matrices; see \code{check.rankX} option
+      to \code{[g]lmerControl}.  The default value is
+      "message+drop.cols", which automatically drops redundant
+      columns and issues a message (not a warning). (Github #144)
+    }
+  }
+  \subsection{MINOR USER-VISIBLE CHANGES}{
+    \itemize{
+      \item slight changes in convergence checking; tolerances can
+      be specified where appropriate, and some default tolerances
+      have changed (e.g., \code{check.conv.grad})
+      \item improved warning messages about rank-deficiency in X and Z
+      etc. (warnings now try to indicate whether the unidentifiability
+      is in the fixed- or random-effects part of the model)
+      \item \code{predict} and \code{simulate} now prefer
+      \code{re.form} as the argument to specify which random effects
+      to condition on, but allow \code{ReForm}, \code{REForm}, or
+      \code{REform}, giving a message (not a warning) that they are
+      deprecated (addresses Github #170)
+      \item small fixes for printing consistency in models with no
+      fixed effects
+      \item we previously exported a \code{fortify} function identical
+      to the one found in \code{ggplot2} in order to be able to define a
+      \code{fortify.merMod} S3 method without inducing a dependency on
+      \code{ggplot2}.  This has now been unexported to avoid masking
+      \code{ggplot2}'s own \code{fortify} methods; if you want to
+      add diagnostic information to the results of a model, use
+      \code{fortify.merMod} explicitly.
+      \item \code{simulate.formula} now checks for names associated
+      with the \code{theta} and \code{beta} parameter vectors. If
+      missing, it prints a message (not a warning); otherwise, it
+      re-orders the parameter vectors to match the internal
+      representation.
+      \item preliminary implementation of a \code{check.scaleX} argument
+      in \code{[g]lmerControl} that warns about scaling if some columns
+      of the fixed-effect model matrix have large standard
+      deviations (relative to 1, or to each other)
+    }
+  }
+}
+\section{CHANGES IN VERSION 1.1-3}{
+  \subsection{NEW FEATURES}{
+    \itemize{
+      \item The gradient and Hessian are now computed via finite
+      differencing after the nonlinear fit is done, and the results
+      are used for additional convergence tests. Control of the
+      behaviour is available through the \code{check.conv.*} options
+      in \code{[g]lmerControl}. Singular fits (fits with estimated
+      variances of zero or correlations of +/- 1) can also be tested for,
+      although the current default value of the \code{check.conv.singular}
+      option is \code{"ignore"}; this may be changed to \code{"warning"}
+      in the future. The results are stored in \code{@optinfo$derivs}.
+      (Github issue #120; based on code by Rune Christensen.)
+      \item The \code{simulate} method will now work to generate
+      simulations "from scratch" by providing a model formula,
+      a data frame holding the predictor variables, and a list
+      containing the values of the model parameters:
+      see \code{?simulate.merMod}. (Github issue #115)
+      \item \code{VarCorr.merMod} objects now have an \code{as.data.frame}
+      method, converting the list of matrices to a more
+      convenient form for reporting and post-processing. (Github issue #129)
+    }
+  }
+  \subsection{MINOR USER-VISIBLE CHANGES}{
+    \itemize{
+      \item results of \code{fitted()}, \code{predict()},
+      and \code{residuals()} now have
+      names in all cases (previously results were unnamed, or
+      named only when predicting from new data)
+      \item the \code{anova} method now has a \code{refit} argument
+      that controls whether objects of class \code{lmerMod} should be
+      refitted with ML before producing the \code{anova} table.
+      (Github issues #141, #165; contributed by Henrik Singmann.)
+      \item the \code{print} method for \code{VarCorr} objects
+      now has a \code{formatter} argument for finer control
+      of standard deviation and variance formats
+      \item the \code{optinfo} slot now stores slightly more
+      information, including the number of function evaluations
+      (\code{$feval}).
+      \item \code{dotplot.ranef.mer} now adds titles to sub-plots by default,
+      like \code{qqmath.ranef.mer}
+    }
+  }
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item \code{fitted} now respects \code{na.action} settings (Github
+      issue #149)
+      \item \code{confint(.,method="boot")} now works when there are
+      \code{NA} values in the original data set (Github issue #158)
+      \item previously, the code stored the results (parameter values,
+      residuals, etc.) based on the \emph{last} set of parameters
+      evaluated, rather than the optimal parameters.  These were
+      not always the same, but were almost always very close,
+      but some previous results will change slightly
+      (Github issue #166)
+    }
+  }
+}
+\section{CHANGES IN VERSION 1.1-0}{
+  \subsection{MINOR USER-VISIBLE CHANGES}{
+    \itemize{
+      \item when using the default \code{method="profile"},
+      \code{confint} now returns appropriate upper/lower bounds
+      (-1/1 for correlations, 0/Inf for standard deviations)
+      rather than \code{NA} when appropriate
+    }
+  }
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item in a previous development version, \code{ranef} returned
+      incorrect conditional variances (github issue #148). this is
+      now fixed
+    }
+  }
+}
+
+\section{CHANGES IN VERSION 1.0-6 (2014-02-02)}{
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item prediction now works when new data have fewer factor
+      levels than are present in the original data (Github issue #143,
+      reported by Rune Haubo)
+      \item the existence of a variable "new" in the global environment
+      would mess \code{lme4} up: reported at
+      \url{http://stackoverflow.com/questions/19801070/error-message-glmer-using-r-what-must-be-a-character-string-or-a-function}
+    }
+  }
+}
+
+\section{CHANGES IN VERSION 1.0-5 (2013-10-24)}{
+  \subsection{USER-VISIBLE CHANGES}{
+    \itemize{
+      \item \code{confint.merMod} and \code{vcov.merMod} are
+      now exported, for downstream package-author convenience
+      \item the package now depends on Matrix >=1.1-0 and RcppEigen
+      >=0.3.1.2.3
+      \item new \code{rename.response} option for \code{refit} (see BUG
+      FIXES section)
+    }
+  }
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item eliminated redundant messages about suppressed
+      fixed-effect correlation matrices when p>20
+      \item most inverse-link functions are now bounded where
+      appropriate by \code{.Machine$double.eps}, allowing fitting
+      of GLMMs with extreme parameter values
+      \item \code{merMod} objects created with \code{refit} did not
+      work with \code{update}: optional
+      \code{rename.response} option added to \code{refit.merMod}, to allow
+      this (but the default is still \code{FALSE}, for
+      back-compatibility) (reported by A. Kuznetsova)
+      \item fixed buglet preventing on-the-fly creation of index variables,
+      e.g. \code{y~1+(1|rownames(data))} (reported by J. Dushoff)
+      \item \code{predict} now works properly for \code{glmer} models
+      with basis-creating terms (e.g. \code{poly}, \code{ns})
+      \item step sizes determined from fixed effect coefficient standard
+      errors after first state of \code{glmer} fitting are now bounded,
+      allowing some additional models to be fitted
+    }
+  }
+}
+\section{CHANGES IN VERSION 1.0-4 (2013-09-08)}{
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item \code{refit()} now works, again, with lists of
+      length 1, so that e.g. \code{refit(.,simulate(.))} works.
+      (Reported by Gustaf Granath)
+      \item \code{getME(.,"ST")} was returning a list
+      containing the Cholesky factorizations that get repeated in
+      Lambda. But this was inconsistent with what \code{ST} represents in
+      \code{lme4.0}. This inconsistency has now been fixed and
+      \code{getME(.,"ST")} is now consistent with the definition of the
+      \code{ST} matrix in \code{lme4.0}. See
+      \code{https://github.com/lme4/lme4/issues/111} for more
+      detail. Thanks to Vince Dorie.
+      \item Corrected order of unpacking of standard
+      deviation/correlation components, which affected results
+      from \code{confint(.,method="boot")}. (Reported by Reinhold
+      Kliegl)
+      \item fixed a copying bug that made \code{refitML()}
+      modify the original model
+    }
+  }
+}
+
+\section{CHANGES IN VERSION 1.0-1 (2013-08-17)}{
+  \subsection{MINOR USER-VISIBLE CHANGES}{
+    \itemize{
+      \item \code{check.numobs.*} and \code{check.numlev.*} in
+      \code{(g)lmerControl} have been changed (from recent development
+      versions) to \code{check.nobs.*} and
+      \code{check.nlev.*} respectively, and the default values of
+      \code{check.nlev.gtreq.5} and \code{check.nobs.vs.rankZ}
+      have been changed to \code{"ignore"} and \code{"warningSmall"}
+      respectively
+      \item in \code{(g)lmerControl}, arguments to the optimizer
+      should be passed as a list called \code{optCtrl}, rather than
+      specified as additional (ungrouped) arguments
+      \item the \code{postVar} argument to \code{ranef} has been
+      changed to the (more sensible) \code{condVar} ("posterior variance"
+      was a misnomer, "conditional variance" -- short for "variance of the
+      conditional mode" -- is preferred)
+      \item the \code{REform} argument to \code{predict} has been changed
+      to \code{ReForm} for consistency
+      \item the \code{tnames} function, briefly exported, has been
+      unexported
+      \item \code{getME(.,"cnms")} added
+      \item \code{print} method for \code{merMod} objects is now more
+      terse, and different from \code{summary.merMod}
+      \item the \code{objective} method for the \code{respMod}
+      reference class now takes an optional \code{sigma.sq} parameter
+      (defaulting to \code{NULL}) to allow calculation of the
+      objective function with a residual variance different from
+      the profiled value (Vince Dorie)
+    }
+  }
+}
+\section{CHANGES IN VERSION 1.0-0 (2013-08-01)}{
+  \subsection{MAJOR USER-VISIBLE CHANGES}{
+    \itemize{
+      \item Because the internal computational machinery has changed,
+      results from the newest version of \code{lme4} will not be numerically
+      identical to those from previous versions.  For reasonably well-
+      defined fits, they will be extremely close (within numerical
+      tolerances of 1e-4 or so), but for unstable or poorly-defined fits
+      the results may change, and very unstable fits may fail when they
+      (apparently) succeeded with previous versions. Similarly, some fits
+      may be slower with the new version, although on average the new
+      version should be faster and more stable. More numerical
+      tuning options are now available (see below); non-default settings
+      may restore the speed and/or ability to fit a particular model without
+      an error. If you notice significant or disturbing changes when fitting
+      a model with the new version of \code{lme4}, \emph{please notify the maintainers}.
+      \item \code{VarCorr} returns its results in the same format as before (as a
+      list of variance-covariance matrices with \code{correlation} and \code{stddev}
+      attributes, plus a \code{sc} attribute giving the residual standard
+      deviation/scale parameter when appropriate), but prints them in a
+      different (nicer) way.
+      \item By default \code{residuals} gives deviance (rather than Pearson)
+      residuals when applied to \code{glmer} fits (a side effect of matching \code{glm}
+      behaviour more closely).
+      \item As another side effect of matching \code{\link{glm}}
+      behaviour, reported log-likelihoods from \code{\link{glmer}} models
+      are no longer consistent with those from pre-1.0 \code{lme4},
+      but \emph{are} consistent with \code{glm}; see \code{\link{glmer}}
+      examples.
+    }
+  }
+  \subsection{MINOR USER-VISIBLE CHANGES}{
+    \itemize{
+      \item More use is made of S3 rather than S4 classes and methods: one
+      side effect is that the \code{nlme} and \code{lme4} packages are now much more
+      compatible; methods such as \code{fixef} no longer conflict.
+      \item The internal optimizer has changed. \code{[gn]lmer} now has an
+      \code{optimizer} argument; \code{"Nelder_Mead"} is the default for \code{[n]lmer},
+      while a combination of \code{"bobyqa"} (an alternative derivative-free
+      method) and \code{"Nelder_Mead"} is the default for \code{glmer}. To use the
+      \code{nlminb} optimizer as in the old version of \code{lme4}, you can use
+      \code{optimizer="optimx"} with \code{control=list(method="nlminb")} (you will
+      need the \code{optimx} package to be installed and loaded). See
+      \code{\link{lmerControl}} for details.
+      \item Families in GLMMs are no longer restricted to built-in/hard-
+      coded families; any family described in \code{\link{family}}, or following that
+      design, is usable (although there are some hard-coded families, which
+      will be faster).
+      \item \code{[gn]lmer} now produces objects of class \code{merMod} rather than
+      class \code{mer} as before.
+      \item the structure of the \code{Zt} (transposed random effect
+      design matrix) as returned by \code{getME(.,"Zt")}, and the
+      corresponding order of the random effects vector
+      (\code{getME(.,"u")}) have changed. To retrieve \code{Zt}
+      in the old format, use \code{do.call(Matrix::rBind,getME(.,"Ztlist"))}.
+      \item the package checks input more thoroughly for
+      non-identifiable or otherwise problematic cases: see
+      \code{\link{lmerControl}} for fine control of the test behaviour.
+    }
+  }
+  \subsection{NEW FEATURES}{
+    \itemize{
+      \item A general-purpose \code{\link{getME}} accessor method allows
+      extraction of a wide variety of components of a mixed-model
+      fit. \code{getME} also allows a vector of objects to be returned as
+      a list of mixed-model components. This has been backported to
+      be compatible with older versions of \code{lme4} that still produce \code{mer}
+      objects rather than \code{merMod} objects. However, backporting is incomplete;
+      some objects are only extractable in newer versions of \code{lme4}.
+      \item Optimization information (convergence codes, warnings, etc.)
+      is now stored in an \code{@optinfo} slot.
+      \item \code{\link{bootMer}} provides a framework for obtaining parameter confidence
+      intervals by parametric bootstrapping.
+      \item \code{\link{plot.merMod}} provides diagnostic plotting
+      methods similar to those from the \code{nlme} package
+      (although missing \code{augPred}).
+      \item A \code{\link{predict.merMod}} method gives predictions;
+      it allows an effect-specific choice of conditional prediction or prediction at the
+      population level (i.e., with random effects set to zero).
+      \item Likelihood profiling for \code{lmer} and \code{glmer} results (see
+      \code{link{profile-methods}}).
+      \item Confidence intervals by likelihood profiling (default),
+      parametric bootstrap, or Wald approximation (fixed effects only):
+      see \code{\link{confint.merMod}}
+      \item \code{nAGQ=0}, an option to do fast (but inaccurate) fitting of GLMMs.
+      \item Using \code{devFunOnly=TRUE} allows the user to extract a deviance
+      function for the model, allowing further diagnostics/customization of
+      model results.
+      \item The internal structure of [gn]lmer is now more modular, allowing
+      finer control of the different steps of argument checking; construction
+      of design matrices and data structures; parameter estimation; and construction
+      of the final \code{merMod} object (see \code{?modular}).
+      \item the \code{formula}, \code{model.frame}, and \code{terms}
+      methods return full versions (including random effect terms and
+      input variables) by default, but a \code{fixed.only} argument
+      allows access to the fixed effect submodel.
+    }
+  }
+  \subsection{EXPERIMENTAL FEATURES}{
+    \itemize{
+      \item \code{\link{glmer.nb}} provides an embryonic negative
+      binomial fitting capability.
+    }
+  }
+  \subsection{STILL NON-EXISTENT FEATURES}{
+    \itemize{
+      \item Adaptive Gaussian quadrature (AGQ) is not available for multiple and/or
+      non-scalar random effects.
+      \item Posterior variances of conditional models for non-scalar random effects.
+      \item Standard errors for \code{\link{predict.merMod}} results.
+      \item Automatic MCMC sampling based on the fit turns out to be very difficult
+      to implement in a way that is really broadly reliable and robust; \code{mcmcsamp}
+      will not be implemented in the near future. See
+      \code{\link{pvalues}} for alternatives.
+      \item "R-side" structures (within-block correlation and heteroscedasticity) are
+      not on the current timetable.
+    }
+  }
+  \subsection{BUG FIXES}{
+    \itemize{
+      \item In a development version, prior weights were not being used properly in
+      the calculation of the residual standard deviation, but this has been fixed.
+      Thanks to Simon Wood for pointing this out.
+      \item In a development version, the step-halving component of the penalized
+      iteratively reweighted least squares algorithm was not working, but
+      this is now fixed.
+      \item In a development version, square \code{RZX} matrices would lead to a
+      \code{pwrssUpdate did not converge in 30 iterations} error. This has been fixed
+      by adding an extra column of zeros to \code{RZX}.
+    }
+  }
+  \subsection{DEPRECATED AND DEFUNCT}{
+    \itemize{
+      \item Previous versions of \code{lme4} provided
+      the \code{mcmcsamp} function, which efficiently generated
+      a Markov chain Monte Carlo sample from the posterior
+      distribution of the parameters, assuming flat (scaled
+      likelihood) priors. Due to difficulty in constructing a
+      version of \code{mcmcsamp} that was reliable even in
+      cases where the estimated random effect variances were
+      near zero (e.g.
+      \url{https://stat.ethz.ch/pipermail/r-sig-mixed-models/2009q4/003115.html}),
+      \code{mcmcsamp} has been withdrawn (or more precisely,
+      not updated to work with \code{lme4} versions >=1.0).
+      \item Calling \code{glmer} with the default \code{gaussian} family
+      redirects to \code{lmer}, but this is deprecated
+      (in the future \code{glmer(...,family="gaussian")} may
+      fit a LMM using the penalized iteratively reweighted least squares
+      algorithm). Please call \code{lmer} directly.
+      \item Calling \code{lmer} with a \code{family} argument redirects
+      to \code{glmer}; this is deprecated. Please call \code{glmer} directly.
+    }
+  }
+}
+\section{CHANGES IN VERSION 0.999375-16 (2008-06-23)}{
+  \subsection{MAJOR USER-VISIBLE CHANGES}{
+    \itemize{
+      \item The underlying algorithms and representations for all the
+      mixed-effects models fit by this package have changed - for
+      the better, we hope. The class "mer" is a common
+      mixed-effects model representation for linear, generalized
+      linear, nonlinear and generalized nonlinear mixed-effects
+      models.
+      \item ECME iterations are no longer used at all, nor are analytic
+      gradients. Components named 'niterEM', 'EMverbose', or
+      'gradient' can be included in the 'control' argument to
+      lmer(), glmer() or nlmer() but have no effect.
+      \item PQL iterations are no longer used in glmer() and nlmer().
+      Only the Laplace approximation is currently available. AGQ,
+      for certain classes of GLMMs or NLMMs, is being added.
+      \item The 'method' argument to lmer(), glmer() or nlmer() is
+      deprecated. Use the 'REML = FALSE' in lmer() to obtain ML
+      estimates. Selection of AGQ in glmer() and nlmer() will be
+      controlled by the argument 'nAGQ', when completed.
+    }
+  }
+  \subsection{NEW FEATURES}{
+    \itemize{
+      \item The representation of mixed-effects models has been
+      dramatically changed to allow for smooth evaluation of the
+      objective as the variance-covariance matrices for the random
+      effects approach singularity. Beta testers found this
+      representation to be more robust and usually faster than
+      previous versions of lme4.
+      \item The mcmcsamp function uses a new sampling method for the
+      variance-covariance parameters that allows recovery from
+      singularity. The update is not based on a sample from the
+      Wishart distribution. It uses a redundant parameter
+      representation and a linear least squares update.
+      \item CAUTION: Currently the results from mcmcsamp look peculiar and
+      are probably incorrect. I hope it is just a matter of my
+      omitting a scaling factor but I have seen patterns such as
+      the parameter estimate for some variance-covariance parameters
+      being the maximum value in the chain, which is highly
+      unlikely.
+      \item The 'verbose' argument to lmer(), glmer() and nlmer() can be
+      used instead of 'control = list(msVerbose = TRUE)'.
+    }
+  }
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/utils/allFit.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/utils/allFit.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lme4/utils/allFit.R	(revision 2476)
@@ -0,0 +1,149 @@
+##
+library("lme4")
+require("optimx")   ## for optim optimizers
+   ## (optimx-specific optimizers require explicit gradients --
+   ##  we could use numDeriv::grad, but this seems to defeat
+   ##  the intention)
+require("nloptr")
+
+meth.tab.0 <- cbind(optimizer=
+                      rep(c("bobyqa",
+                            "Nelder_Mead",
+                            "nlminbw",
+                            "nmkbw",
+                            "optimx",
+                            "nloptwrap" ),
+                          c(rep(1,5),2)),
+                  method= c(rep("",4), "L-BFGS-B",
+                  "NLOPT_LN_NELDERMEAD", "NLOPT_LN_BOBYQA"))
+
+nlminbw   <- lme4:::nlminbwrap
+namedList <- lme4:::namedList
+
+if (require("dfoptim")) {
+    nmkbw <- function(fn,par,lower,upper,control) {
+	if (length(par)==1) {
+	    res <- optim(fn=fn,par=par,lower=lower,upper=100*par,
+			 method="Brent")
+	} else {
+	    if (!is.null(control$maxfun)) {
+		control$maxfeval <- control$maxfun
+		control$maxfun <- NULL
+	    }
+	    res <- nmkb(fn=fn,par=par,lower=lower,upper=upper,control=control)
+	}
+	res$fval <- res$value
+	res
+    }
+} else { ## pkg{dfoptim} not available
+    ## for nmkb
+    meth.tab.0 <- meth.tab.0[meth.tab.0[,"optimizer"] != "nmkbw",]
+}
+
+
+
+##' Attempt to re-fit a [g]lmer model with a range of optimizers.
+##' The default is to use all known optimizers for R that satisfy the
+##' requirements (do not require explicit gradients, allow
+##' box constraints), in three categories; (i) built-in
+##' (minqa::bobyqa, lme4::Nelder_Mead, nlminbwrap), (ii) wrapped via optimx
+##' (most of optimx's optimizers that allow box constraints require
+##' an explicit gradient function to be specified; the two provided
+##' here are really base R functions that can be accessed via optimx,
+##' (iii) wrapped via nloptr; (iv)
+##'
+##' @param m a fitted model
+##' @param meth.tab a matrix (or data.frame) with columns
+##' - method  the name of a specific optimization method to pass to the optimizer
+##'           (leave blank for built-in optimizers)
+##' - optimizer  the \code{optimizer} function to use
+##' @param verbose print progress messages?
+##' @return a list of fitted \code{merMod} objects
+##' @seealso slice, slice2D in the bbmle package
+##' @examples
+##' library(lme4)
+##' gm1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd),
+##'                  data = cbpp, family = binomial)
+##' gm_all <- allFit(gm1)
+##' ss <- summary(gm_all)
+##' ss$fixef               ## extract fixed effects
+##' ss$llik                ## log-likelihoods
+##' ss$sdcor               ## SDs and correlations
+##' ss$theta               ## Cholesky factors
+##' ss$which.OK            ## which fits worked
+
+
+allFit <- function(m, meth.tab = meth.tab.0,
+                   data=NULL,
+                   verbose=TRUE,
+                   maxfun=1e5)
+{
+    stopifnot(length(dm <- dim(meth.tab)) == 2, dm[1] >= 1, dm[2] >= 2,
+	      is.character(optimizer <- meth.tab[,"optimizer"]),
+	      is.character(method    <- meth.tab[,"method"]))
+    fit.names <- gsub("\\.$","",paste(optimizer, method, sep="."))
+    res <- setNames(as.list(fit.names), fit.names)
+    for (i in seq_along(fit.names)) {
+        if (verbose) cat(fit.names[i],": ")
+        ctrl <- list(optimizer=optimizer[i])
+        ctrl$optCtrl <- switch(optimizer[i],
+                               optimx    = list(method   = method[i]),
+                               nloptWrap = list(algorithm= method[i]),
+                               list(maxfun=maxfun))
+        ctrl <- do.call(if(isGLMM(m)) glmerControl else lmerControl, ctrl)
+        tt <- system.time(rr <- tryCatch(update(m, control = ctrl),
+                                         error = function(e) e))
+        attr(rr, "optCtrl") <- ctrl$optCtrl # contains crucial info here
+        attr(rr, "time") <- tt  # store timing info
+        res[[i]] <- rr
+        if (verbose) cat("[OK]\n")
+    }
+
+    structure(res, class = "allfit", fit = m, sessionInfo =  sessionInfo(),
+              data = data # is dropped if NULL
+              )
+}
+
+print.allfit <- function(object, width=80, ...) {
+    cat("original model:\n")
+    f <- attr(object,"fit")
+    ss <- function(x) {
+        if (nchar(x)>width) {
+            strwrap(paste0(substr(x,1,width-3),"..."))
+        } else x
+    }
+    ff <- ss(deparse(formula(f)))
+    cat(ff,"\n")
+    cat("data: ",deparse(getCall(f)$data),"\n")
+    cat("optimizers (",length(object),"): ",
+        ss(paste(names(object),collapse=", ")),"\n",
+        sep="")
+    which.bad <- sapply(object,is,"error")
+    if ((nbad <- sum(which.bad))>0) {
+        cat(nbad,"optimizers failed\n")
+    }
+    cat("differences in negative log-likelihoods:\n")
+    nllvec <- -sapply(object[!which.bad],logLik)
+    print(summary(nllvec-min(nllvec)))
+}
+
+summary.allfit <- function(object, ...) {
+    which.OK <- !sapply(object, is, "error")
+    objOK <- object[which.OK]
+    msgs <- lapply(objOK, function(x) x@optinfo$conv$lme4$messages)
+    fixef <- do.call(rbind, lapply(objOK, fixef))
+    llik <- sapply(objOK, logLik)
+    times <- t(sapply(objOK, attr, "time"))
+    feval <- sapply(objOK, function(x) x@optinfo$feval)
+    sdcor <- do.call(rbind, lapply(objOK, function(x)
+        as.data.frame(VarCorr(x))[, "sdcor"]))
+    theta <- do.call(rbind, lapply(objOK,
+                                   function(x) getME(x, "theta")))
+    colnames(sdcor) <- unname(c(lme4:::tnames(objOK[[1]]),
+                                if(isLMM(object[[1]])) "sigma"))
+    sdcor <- as.data.frame(sdcor)
+    namedList(which.OK, msgs, fixef, llik, sdcor, theta, times, feval)
+}
+
+## should add a print method for summary:
+##  * fixed effects, random effects: summary of differences?
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/INDEX	(revision 2476)
@@ -0,0 +1,2 @@
+hi_andre                A wrapper to Andre Simon's Highlight
+hilight                 Syntax highlight an R code fragment
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/help/AnIndex	(revision 2476)
@@ -0,0 +1,4 @@
+hilight	hilight
+hi_andre	hi_andre
+hi_html	hilight
+hi_latex	hilight
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/help/highr.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/help/highr.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/help/highr.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/help/highr.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/NAMESPACE	(revision 2476)
@@ -0,0 +1,5 @@
+export(hi_andre)
+export(hi_html)
+export(hi_latex)
+export(hilight)
+import(utils)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/NEWS	(revision 2476)
@@ -0,0 +1,76 @@
+        CHANGES IN highr VERSION 0.6
+
+NEW FEATURES
+
+	o `hilight()` can deal with multibyte characters that cannot represented in
+	the system native encoding now (on Windows)
+
+BUG FIXES
+
+	o blank lines before/after code are preserved in the hilight() output now
+	(thanks, Terry Therneau)
+
+        CHANGES IN highr VERSION 0.5
+
+MAJOR CHANGES
+
+  o the minimal required R version is 3.0.2 now
+
+        CHANGES IN highr VERSION 0.4
+
+BUG FIXES
+
+  o hi_andre() may fail to find highlight under OS X (thanks, Christopher
+  Gandrud, #2)
+
+MINOR CHANGES
+
+  o :: and ::: are recognized as operators, and they will be syntax highlighted
+  in the same way as other operators like +, -, *, and /, etc (thanks, Qiang Li,
+  #3)
+
+        CHANGES IN highr VERSION 0.3
+
+BUG FIXES
+
+  o blank lines were not preserved in previous versions; now they can be
+  correctly preserved
+
+  o hilight() works when the code is only a comment; fixed the bug reported
+  at http://stackoverflow.com/q/18548020/559676 which was actually due to
+  the bug of utils::getParseData() in R 3.0.1
+
+  o Linux Mint has a built-in version of highlight under /usr/local/bin/
+  which is not Andre Simon's highlight, and this can hang highr
+  (https://groups.google.com/forum/#!topic/knitr/nicYgzqhwX8)
+
+MINOR CHANGES
+
+  o the package vignettes were built with the knitr::docco_classic engine;
+  see vignette(package = 'highr')
+
+        CHANGES IN highr VERSION 0.2.1
+
+MINOR CHANGES
+
+  o fixed a test that failed under R 2.15.x due to the keep.source argument
+  in parse(), which was not available in R until R 3.0.0
+
+        CHANGES IN highr VERSION 0.2
+
+NEW FEATURES
+
+  o added a new argument 'fallback' in hilight(); for R < 3.0.0, we can use
+  hilight(..., fallback = TRUE), which is a rough syntax highlighting method
+  based on regular expressions (hence less accurate and comphrehensive than
+  the getParseData() approach); as a result, highr no longer has to depend
+  on R 3.0.0, although it is recommended to use R 3.0.0
+
+
+        CHANGES IN highr VERSION 0.1
+
+NEW FEATURES
+
+  o the first version of highr: a hilight() function based on
+  utils::getParseData() to do syntax highlighting for R code; hi_andrew() as
+  a wrapper for Andre Simon's Highlight package
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/R/highr.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/R/highr.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/R/highr
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/R/highr	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/R/highr	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/R/highr.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/R/highr.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/DESCRIPTION	(revision 2476)
@@ -0,0 +1,29 @@
+Package: highr
+Type: Package
+Title: Syntax Highlighting for R Source Code
+Version: 0.6
+Date: 2016-05-09
+Authors@R: c(person("Christopher", "Gandrud", role = "ctb"),
+    person("Qiang", "Li", role = "ctb"),
+    person("Yixuan", "Qiu", role = "aut"),
+    person("Yihui", "Xie", email = "xie@yihui.name", role = c("aut", "cre")))
+Maintainer: Yihui Xie <xie@yihui.name>
+Description: Provides syntax highlighting for R source code. Currently it
+    supports LaTeX and HTML output. Source code of other languages is supported
+    via Andre Simon's highlight package (http://www.andre-simon.de).
+Depends: R (>= 3.0.2)
+Suggests: knitr, testit
+License: GPL
+URL: https://github.com/yihui/highr
+BugReports: https://github.com/yihui/highr/issues
+VignetteBuilder: knitr
+RoxygenNote: 5.0.1
+NeedsCompilation: no
+Packaged: 2016-05-09 05:31:15 UTC; yihui
+Author: Christopher Gandrud [ctb],
+  Qiang Li [ctb],
+  Yixuan Qiu [aut],
+  Yihui Xie [aut, cre]
+Repository: CRAN
+Date/Publication: 2016-05-09 17:52:58
+Built: R 3.3.0; ; 2016-05-10 10:31:36 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/html/00Index.html	(revision 2476)
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Syntax Highlighting for R Source Code</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Syntax Highlighting for R Source Code
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;highr&rsquo; version 0.6</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="hilight.html">hilight</a></td>
+<td>Syntax highlight an R code fragment</td></tr>
+<tr><td style="width: 25%;"><a href="hi_andre.html">hi_andre</a></td>
+<td>A wrapper to Andre Simon's Highlight</td></tr>
+<tr><td style="width: 25%;"><a href="hilight.html">hi_html</a></td>
+<td>Syntax highlight an R code fragment</td></tr>
+<tr><td style="width: 25%;"><a href="hilight.html">hi_latex</a></td>
+<td>Syntax highlight an R code fragment</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-internals.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-internals.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-internals.html	(revision 2476)
@@ -0,0 +1,349 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Internals of the <code>highr</code> package</title>
+    <meta charset="utf-8">
+    <meta name="generator" content="knitr" />
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/7.3/styles/github.min.css">
+
+<style type="text/css">
+/* Derived from the Docco package by Jeremy Ashkenas: https://github.com/jashkenas/docco/ */
+body {
+    font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
+    height:100%;
+    font-size: 16px;
+    line-height: 24px;
+    color: #30404f;
+    margin: 0;
+    padding: 0;
+}
+
+h1, h2, h3, h4, h5, h6 {
+    color: #112233;
+    line-height: 1em;
+    font-weight: normal;
+    margin: 0 0 15px 0;
+}
+
+p {
+    margin: 0 0 15px 0;
+    font-size:17px;
+}
+
+#footer p{
+    margin:0;
+    font-size:12px;
+    text-align: center;
+}
+
+a{
+    color:#0088cc;
+    text-decoration:none;
+}
+
+a:hover,a:focus{
+    color:#005580;
+    text-decoration:underline;
+}
+
+#container {
+    position: relative;
+    margin: 0;
+    height:100%;
+}
+
+body > #container { height: auto; min-height: 100%; }
+
+table{
+    width:100%;
+    border: 0;
+    outline: 0;
+}
+
+td.docs{
+    width: 50%;
+    text-align: left;
+    vertical-align: top;
+    padding: 10px 25px 1px 50px;
+}
+
+
+td.code{
+    background: #f5f5ff;
+    padding: 10px 25px 1px 50px;
+    overflow-x: hidden;
+    vertical-align: top;
+}
+
+code{
+    font-size:12px;
+    margin: 0;
+    padding: 0;
+}
+
+td.docs code{
+    background: #f8f8ff;
+    border: 1px solid #dedede;
+    font-size: 80%;
+    padding: 0 0.2em;
+}
+
+td.docs img{
+  max-width: 100%;
+}
+
+pre code{
+    padding:2px 4px;
+    background:#f5f5ff;
+}
+
+td.code pre code{
+    line-height: 18px;
+}
+
+.pilwrap {
+    position: relative;
+}
+.pilcrow {
+    font: 12px Arial;
+    text-decoration: none;
+    color: rgb(69, 69, 69);
+    position: absolute;
+    top: 3px;
+    left: -20px;
+    padding: 1px 2px;
+    opacity: 0;
+}
+
+td.docs:hover .pilcrow {
+    opacity: 1;
+}
+
+blockquote {
+    border-left: 4px solid #DDD;
+    padding: 0 15px;
+    color: #777;
+}
+div.handler{
+      width: 5px;
+      padding: 0;
+      cursor: col-resize;
+      position: absolute;
+      z-index: 5;
+}
+</style>
+
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/7.3/highlight.min.js"></script>
+<script type="text/javascript">
+hljs.LANGUAGES.r=function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[a.HCM,{b:b,l:b,k:{keyword:"function if in break next repeat else for return switch while try tryCatch|10 stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...|10",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[a.BE],r:0},{cN:"string",b:"'",e:"'",c:[a.BE],r:0}]}}(hljs);
+</script>
+    <script>hljs.initHighlightingOnLoad();</script>
+    <script src="https://yihui.github.io/media/js/center-images.js"></script>
+  </head>
+  <body>
+    <div id="container">
+      <table><!--table start-->
+<tr id="row1"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row1">&para;</a></div><!--
+%\VignetteEngine{knitr::docco_classic}
+%\VignetteIndexEntry{Internals of the highr package}
+-->
+
+<h1>Internals of the <code>highr</code> package</h1>
+
+</td><td class="code"></td></tr><tr id="row2"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row2">&para;</a></div><p>The <strong>highr</strong> package is based on the function <code>getParseData()</code>, which was
+introduced in R 3.0.0. This function gives detailed information of the
+symbols in a code fragment. A simple example:</p></td><td class="code"><pre><code class="r">p = parse(text = &quot;   xx = 1 + 1  # a comment&quot;, keep.source = TRUE)
+(d = getParseData(p))
+</code></pre>
+<pre><code>##    line1 col1 line2 col2 id parent     token terminal        text
+## 1      1    4     1    5  1      3    SYMBOL     TRUE          xx
+## 3      1    4     1    5  3      0      expr    FALSE            
+## 2      1    7     1    7  2      0 EQ_ASSIGN     TRUE           =
+## 11     1    9     1   13 11      0      expr    FALSE            
+## 4      1    9     1    9  4      5 NUM_CONST     TRUE           1
+## 5      1    9     1    9  5     11      expr    FALSE            
+## 6      1   11     1   11  6     11       &#39;+&#39;     TRUE           +
+## 7      1   13     1   13  7      8 NUM_CONST     TRUE           1
+## 8      1   13     1   13  8     11      expr    FALSE            
+## 9      1   16     1   26  9    -11   COMMENT     TRUE # a comment
+</code></pre></td></tr><tr id="row3"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row3">&para;</a></div>
+
+<p>The first step is to filter out the rows that we do not need:</p></td><td class="code"><pre><code class="r">(d = d[d$terminal, ])
+</code></pre>
+<pre><code>##   line1 col1 line2 col2 id parent     token terminal        text
+## 1     1    4     1    5  1      3    SYMBOL     TRUE          xx
+## 2     1    7     1    7  2      0 EQ_ASSIGN     TRUE           =
+## 4     1    9     1    9  4      5 NUM_CONST     TRUE           1
+## 6     1   11     1   11  6     11       &#39;+&#39;     TRUE           +
+## 7     1   13     1   13  7      8 NUM_CONST     TRUE           1
+## 9     1   16     1   26  9    -11   COMMENT     TRUE # a comment
+</code></pre></td></tr><tr id="row4"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row4">&para;</a></div>
+
+<p>There is a column <code>token</code> in the data frame, and we will wrap this column
+with markup commands, e.g. <code>\hlnum{1}</code> for the numeric constant <code>1</code>. We
+defined the markup commands in <code>cmd_latex</code> and <code>cmd_html</code>:</p></td><td class="code"><pre><code class="r">head(highr:::cmd_latex)
+</code></pre>
+<pre><code>##              cmd1 cmd2
+## COMMENT  \\hlcom{    }
+## FUNCTION \\hlkwa{    }
+## IF       \\hlkwa{    }
+## ELSE     \\hlkwa{    }
+## WHILE    \\hlkwa{    }
+## FOR      \\hlkwa{    }
+</code></pre>
+<pre><code class="r">tail(highr:::cmd_html)
+</code></pre>
+<pre><code>##                             cmd1    cmd2
+## OR         &lt;span class=&quot;hl opt&quot;&gt; &lt;/span&gt;
+## OR2        &lt;span class=&quot;hl opt&quot;&gt; &lt;/span&gt;
+## NS_GET     &lt;span class=&quot;hl opt&quot;&gt; &lt;/span&gt;
+## NS_GET_INT &lt;span class=&quot;hl opt&quot;&gt; &lt;/span&gt;
+## STANDARD   &lt;span class=&quot;hl std&quot;&gt; &lt;/span&gt;
+## STR_CONST  &lt;span class=&quot;hl str&quot;&gt; &lt;/span&gt;
+</code></pre></td></tr><tr id="row5"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row5">&para;</a></div>
+
+<p>These command data frames are connected to the tokens in the R code via
+their row names:</p></td><td class="code"><pre><code class="r">d$token
+</code></pre>
+<pre><code>## [1] &quot;SYMBOL&quot;    &quot;EQ_ASSIGN&quot; &quot;NUM_CONST&quot; &quot;&#39;+&#39;&quot;       &quot;NUM_CONST&quot; &quot;COMMENT&quot;
+</code></pre>
+<pre><code class="r">rownames(highr:::cmd_latex)
+</code></pre>
+<pre><code>##  [1] &quot;COMMENT&quot;              &quot;FUNCTION&quot;             &quot;IF&quot;                  
+##  [4] &quot;ELSE&quot;                 &quot;WHILE&quot;                &quot;FOR&quot;                 
+##  [7] &quot;IN&quot;                   &quot;BREAK&quot;                &quot;REPEAT&quot;              
+## [10] &quot;NEXT&quot;                 &quot;NULL_CONST&quot;           &quot;LEFT_ASSIGN&quot;         
+## [13] &quot;EQ_ASSIGN&quot;            &quot;RIGHT_ASSIGN&quot;         &quot;SYMBOL_FORMALS&quot;      
+## [16] &quot;SYMBOL_SUB&quot;           &quot;SLOT&quot;                 &quot;SYMBOL_FUNCTION_CALL&quot;
+## [19] &quot;NUM_CONST&quot;            &quot;&#39;+&#39;&quot;                  &quot;&#39;-&#39;&quot;                 
+## [22] &quot;&#39;*&#39;&quot;                  &quot;&#39;/&#39;&quot;                  &quot;&#39;^&#39;&quot;                 
+## [25] &quot;&#39;$&#39;&quot;                  &quot;&#39;@&#39;&quot;                  &quot;&#39;:&#39;&quot;                 
+## [28] &quot;&#39;?&#39;&quot;                  &quot;&#39;~&#39;&quot;                  &quot;&#39;!&#39;&quot;                 
+## [31] &quot;SPECIAL&quot;              &quot;GT&quot;                   &quot;GE&quot;                  
+## [34] &quot;LT&quot;                   &quot;LE&quot;                   &quot;EQ&quot;                  
+## [37] &quot;NE&quot;                   &quot;AND&quot;                  &quot;AND2&quot;                
+## [40] &quot;OR&quot;                   &quot;OR2&quot;                  &quot;NS_GET&quot;              
+## [43] &quot;NS_GET_INT&quot;           &quot;STANDARD&quot;             &quot;STR_CONST&quot;
+</code></pre></td></tr><tr id="row6"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row6">&para;</a></div>
+
+<p>Now we know how to wrap up the R tokens. The next big question is how to
+restore the white spaces in the source code, since they were not directly
+available in the parsed data, but the parsed data contains column numbers,
+and we can derive the positions of white spaces from them. For example,
+<code>col2 = 5</code> for the first row, and <code>col1 = 7</code> for the next row, and that
+indicates there must be one space after the token in the first row, otherwise
+the next row will start at the position <code>6</code> instead of <code>7</code>.</p>
+
+</td><td class="code"></td></tr><tr id="row7"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row7">&para;</a></div><p>A small trick is used to fill in the gaps of white spaces:</p></td><td class="code"><pre><code class="r">(z = d[, c(&quot;col1&quot;, &quot;col2&quot;)])  # take out the column positions
+</code></pre>
+<pre><code>##   col1 col2
+## 1    4    5
+## 2    7    7
+## 4    9    9
+## 6   11   11
+## 7   13   13
+## 9   16   26
+</code></pre>
+<pre><code class="r">(z = t(z))  # transpose the matrix
+</code></pre>
+<pre><code>##      1 2 4  6  7  9
+## col1 4 7 9 11 13 16
+## col2 5 7 9 11 13 26
+</code></pre>
+<pre><code class="r">(z = c(z))  # turn it into a vector
+</code></pre>
+<pre><code>##  [1]  4  5  7  7  9  9 11 11 13 13 16 26
+</code></pre>
+<pre><code class="r">(z = c(0, head(z, -1)))  # append 0 in the beginning, and remove the last element
+</code></pre>
+<pre><code>##  [1]  0  4  5  7  7  9  9 11 11 13 13 16
+</code></pre>
+<pre><code class="r">(z = matrix(z, ncol = 2, byrow = TRUE))
+</code></pre>
+<pre><code>##      [,1] [,2]
+## [1,]    0    4
+## [2,]    5    7
+## [3,]    7    9
+## [4,]    9   11
+## [5,]   11   13
+## [6,]   13   16
+</code></pre></td></tr><tr id="row8"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row8">&para;</a></div>
+
+<p>Now the two columns indicate the starting and ending positions of spaces,
+and we can easily figure out how many white spaces are needed for each row:</p></td><td class="code"><pre><code class="r">(s = z[, 2] - z[, 1] - 1)
+</code></pre>
+<pre><code>## [1] 3 1 1 1 1 2
+</code></pre>
+<pre><code class="r">(s = mapply(highr:::spaces, s))
+</code></pre>
+<pre><code>## [1] &quot;   &quot; &quot; &quot;   &quot; &quot;   &quot; &quot;   &quot; &quot;   &quot;  &quot;
+</code></pre>
+<pre><code class="r">paste(s, d$text, sep = &quot;&quot;)
+</code></pre>
+<pre><code>## [1] &quot;   xx&quot;         &quot; =&quot;            &quot; 1&quot;            &quot; +&quot;           
+## [5] &quot; 1&quot;            &quot;  # a comment&quot;
+</code></pre></td></tr><tr id="row9"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row9">&para;</a></div>
+
+<p>So we have successfully restored the white spaces in the source code. Let&#39;s
+paste all pieces together (suppose we highlight for LaTeX):</p></td><td class="code"><pre><code class="r">m = highr:::cmd_latex[d$token, ]
+cbind(d, m)
+</code></pre>
+<pre><code>##   line1 col1 line2 col2 id parent     token terminal        text     cmd1
+## 1     1    4     1    5  1      3    SYMBOL     TRUE          xx     &lt;NA&gt;
+## 2     1    7     1    7  2      0 EQ_ASSIGN     TRUE           = \\hlkwb{
+## 4     1    9     1    9  4      5 NUM_CONST     TRUE           1 \\hlnum{
+## 6     1   11     1   11  6     11       &#39;+&#39;     TRUE           + \\hlopt{
+## 7     1   13     1   13  7      8 NUM_CONST     TRUE           1 \\hlnum{
+## 9     1   16     1   26  9    -11   COMMENT     TRUE # a comment \\hlcom{
+##   cmd2
+## 1 &lt;NA&gt;
+## 2    }
+## 4    }
+## 6    }
+## 7    }
+## 9    }
+</code></pre>
+<pre><code class="r"># use standard markup if tokens do not exist in the table
+m[is.na(m[, 1]), ] = highr:::cmd_latex[&quot;STANDARD&quot;, ]
+paste(s, m[, 1], d$text, m[, 2], sep = &quot;&quot;, collapse = &quot;&quot;)
+</code></pre>
+<pre><code>## [1] &quot;   \\hlstd{xx} \\hlkwb{=} \\hlnum{1} \\hlopt{+} \\hlnum{1}  \\hlcom{# a comment}&quot;
+</code></pre></td></tr><tr id="row10"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row10">&para;</a></div>
+
+<p>So far so simple. That is one line of code, after all. A next challenge
+comes when there are multiple lines, and a token spans across multiple lines:</p></td><td class="code"><pre><code class="r">d = getParseData(parse(text = &quot;x = \&quot;a character\nstring\&quot; #hi&quot;, keep.source = TRUE))
+(d = d[d$terminal, ])
+</code></pre>
+<pre><code>##   line1 col1 line2 col2 id parent     token terminal                  text
+## 1     1    1     1    1  1      3    SYMBOL     TRUE                     x
+## 2     1    3     1    3  2      0 EQ_ASSIGN     TRUE                     =
+## 4     1    5     2    7  4      7 STR_CONST     TRUE &quot;a character\nstring&quot;
+## 5     2    9     2   11  5     -7   COMMENT     TRUE                   #hi
+</code></pre></td></tr><tr id="row11"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row11">&para;</a></div>
+
+<p>Take a look at the third row. It says that the character string starts from
+line 1, and ends on line 2. In this case, we just pretend as if everything
+on line 1 were on line 2. Then for each line, we append the missing spaces
+and apply markup commands to text symbols.</p></td><td class="code"><pre><code class="r">d$line1[d$line1 == 1] = 2
+d
+</code></pre>
+<pre><code>##   line1 col1 line2 col2 id parent     token terminal                  text
+## 1     2    1     1    1  1      3    SYMBOL     TRUE                     x
+## 2     2    3     1    3  2      0 EQ_ASSIGN     TRUE                     =
+## 4     2    5     2    7  4      7 STR_CONST     TRUE &quot;a character\nstring&quot;
+## 5     2    9     2   11  5     -7   COMMENT     TRUE                   #hi
+</code></pre></td></tr><tr id="row12"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row12">&para;</a></div>
+
+<p>Do not worry about the column <code>line2</code>. It does not matter. Only <code>line1</code> is
+needed to indicate the line number here.</p>
+
+<p>Why do we need to highlight line by line instead of applying highlighting
+commands to all text symbols (a.k.a vectorization)? Well, the margin of this
+paper is too small to write down the answer.</p>
+</td><td class="code"></td></tr>
+      </table><!--table end-->
+    </div>
+  <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
+  <script src="https://yihui.github.io/knitr/js/docco-resize.js"></script>
+  </body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-internals.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-custom.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-custom.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-custom.R	(revision 2476)
@@ -0,0 +1,13 @@
+## ------------------------------------------------------------------------
+library(highr)
+highr:::cmd_latex
+
+## ------------------------------------------------------------------------
+m = highr:::cmd_latex
+m[, 1] = sub('\\hl', '\\my', m[, 1], fixed = TRUE)
+head(m)
+
+## ------------------------------------------------------------------------
+hilight("x = 1+1  # a comment")  # default markup
+hilight("x = 1+1  # a comment", markup = m)  # custom markup
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-custom.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-custom.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-custom.Rmd	(revision 2476)
@@ -0,0 +1,39 @@
+<!--
+%\VignetteEngine{knitr::docco_classic}
+%\VignetteIndexEntry{Customization of the highr package}
+-->
+
+# Customization of the `highr` package
+
+If you are not satisfied with the default syntax highlighting commands in
+the **highr** package, you can just use your own tags/commands. In this
+vignette, we show a brief example.
+
+The default highlighting commands are stored in two internal data frames
+`cmd_latex` and `cmd_html`:
+
+```{r}
+library(highr)
+highr:::cmd_latex
+```
+
+This data frame is passed to the `markup` argument in `hilight()`, so we are
+free to pass a modified version there. Suppose I want to use the command
+`\my<*>` instead of `\hl<*>`:
+
+```{r}
+m = highr:::cmd_latex
+m[, 1] = sub('\\hl', '\\my', m[, 1], fixed = TRUE)
+head(m)
+```
+
+Then
+
+```{r}
+hilight("x = 1+1  # a comment")  # default markup
+hilight("x = 1+1  # a comment", markup = m)  # custom markup
+```
+
+This allows one to use arbitrary commands around the text symbols in the R
+code. See <https://github.com/yihui/highr/blob/master/R/highlight.R> for how
+`cmd_latex` and `cmd_html` were generated in **highr**.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/index.html	(revision 2476)
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'highr'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/highr/doc/highr-custom.html">highr::highr-custom</a></td>
+<td></td><td valign="top">Customization of the highr package</td>
+<td valign="top"><a href="../../../library/highr/doc/highr-custom.html">HTML</a></td>
+<td valign="top"><a href="../../../library/highr/doc/highr-custom.Rmd">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/highr/doc/highr-custom.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/highr/doc/highr-internals.html">highr::highr-internals</a></td>
+<td></td><td valign="top">Internals of the highr package</td>
+<td valign="top"><a href="../../../library/highr/doc/highr-internals.html">HTML</a></td>
+<td valign="top"><a href="../../../library/highr/doc/highr-internals.Rmd">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/highr/doc/highr-internals.R">R code</a></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-custom.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-custom.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-custom.html	(revision 2476)
@@ -0,0 +1,242 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>Customization of the <code>highr</code> package</title>
+    <meta charset="utf-8">
+    <meta name="generator" content="knitr" />
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/7.3/styles/github.min.css">
+
+<style type="text/css">
+/* Derived from the Docco package by Jeremy Ashkenas: https://github.com/jashkenas/docco/ */
+body {
+    font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
+    height:100%;
+    font-size: 16px;
+    line-height: 24px;
+    color: #30404f;
+    margin: 0;
+    padding: 0;
+}
+
+h1, h2, h3, h4, h5, h6 {
+    color: #112233;
+    line-height: 1em;
+    font-weight: normal;
+    margin: 0 0 15px 0;
+}
+
+p {
+    margin: 0 0 15px 0;
+    font-size:17px;
+}
+
+#footer p{
+    margin:0;
+    font-size:12px;
+    text-align: center;
+}
+
+a{
+    color:#0088cc;
+    text-decoration:none;
+}
+
+a:hover,a:focus{
+    color:#005580;
+    text-decoration:underline;
+}
+
+#container {
+    position: relative;
+    margin: 0;
+    height:100%;
+}
+
+body > #container { height: auto; min-height: 100%; }
+
+table{
+    width:100%;
+    border: 0;
+    outline: 0;
+}
+
+td.docs{
+    width: 50%;
+    text-align: left;
+    vertical-align: top;
+    padding: 10px 25px 1px 50px;
+}
+
+
+td.code{
+    background: #f5f5ff;
+    padding: 10px 25px 1px 50px;
+    overflow-x: hidden;
+    vertical-align: top;
+}
+
+code{
+    font-size:12px;
+    margin: 0;
+    padding: 0;
+}
+
+td.docs code{
+    background: #f8f8ff;
+    border: 1px solid #dedede;
+    font-size: 80%;
+    padding: 0 0.2em;
+}
+
+td.docs img{
+  max-width: 100%;
+}
+
+pre code{
+    padding:2px 4px;
+    background:#f5f5ff;
+}
+
+td.code pre code{
+    line-height: 18px;
+}
+
+.pilwrap {
+    position: relative;
+}
+.pilcrow {
+    font: 12px Arial;
+    text-decoration: none;
+    color: rgb(69, 69, 69);
+    position: absolute;
+    top: 3px;
+    left: -20px;
+    padding: 1px 2px;
+    opacity: 0;
+}
+
+td.docs:hover .pilcrow {
+    opacity: 1;
+}
+
+blockquote {
+    border-left: 4px solid #DDD;
+    padding: 0 15px;
+    color: #777;
+}
+div.handler{
+      width: 5px;
+      padding: 0;
+      cursor: col-resize;
+      position: absolute;
+      z-index: 5;
+}
+</style>
+
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/7.3/highlight.min.js"></script>
+<script type="text/javascript">
+hljs.LANGUAGES.r=function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[a.HCM,{b:b,l:b,k:{keyword:"function if in break next repeat else for return switch while try tryCatch|10 stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...|10",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[a.BE],r:0},{cN:"string",b:"'",e:"'",c:[a.BE],r:0}]}}(hljs);
+</script>
+    <script>hljs.initHighlightingOnLoad();</script>
+    <script src="https://yihui.github.io/media/js/center-images.js"></script>
+  </head>
+  <body>
+    <div id="container">
+      <table><!--table start-->
+<tr id="row1"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row1">&para;</a></div><!--
+%\VignetteEngine{knitr::docco_classic}
+%\VignetteIndexEntry{Customization of the highr package}
+-->
+
+<h1>Customization of the <code>highr</code> package</h1>
+
+<p>If you are not satisfied with the default syntax highlighting commands in
+the <strong>highr</strong> package, you can just use your own tags/commands. In this
+vignette, we show a brief example.</p>
+
+</td><td class="code"></td></tr><tr id="row2"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row2">&para;</a></div><p>The default highlighting commands are stored in two internal data frames
+<code>cmd_latex</code> and <code>cmd_html</code>:</p></td><td class="code"><pre><code class="r">library(highr)
+highr:::cmd_latex
+</code></pre>
+<pre><code>##                          cmd1 cmd2
+## COMMENT              \\hlcom{    }
+## FUNCTION             \\hlkwa{    }
+## IF                   \\hlkwa{    }
+## ELSE                 \\hlkwa{    }
+## WHILE                \\hlkwa{    }
+## FOR                  \\hlkwa{    }
+## IN                   \\hlkwa{    }
+## BREAK                \\hlkwa{    }
+## REPEAT               \\hlkwa{    }
+## NEXT                 \\hlkwa{    }
+## NULL_CONST           \\hlkwa{    }
+## LEFT_ASSIGN          \\hlkwb{    }
+## EQ_ASSIGN            \\hlkwb{    }
+## RIGHT_ASSIGN         \\hlkwb{    }
+## SYMBOL_FORMALS       \\hlkwc{    }
+## SYMBOL_SUB           \\hlkwc{    }
+## SLOT                 \\hlkwc{    }
+## SYMBOL_FUNCTION_CALL \\hlkwd{    }
+## NUM_CONST            \\hlnum{    }
+## &#39;+&#39;                  \\hlopt{    }
+## &#39;-&#39;                  \\hlopt{    }
+## &#39;*&#39;                  \\hlopt{    }
+## &#39;/&#39;                  \\hlopt{    }
+## &#39;^&#39;                  \\hlopt{    }
+## &#39;$&#39;                  \\hlopt{    }
+## &#39;@&#39;                  \\hlopt{    }
+## &#39;:&#39;                  \\hlopt{    }
+## &#39;?&#39;                  \\hlopt{    }
+## &#39;~&#39;                  \\hlopt{    }
+## &#39;!&#39;                  \\hlopt{    }
+## SPECIAL              \\hlopt{    }
+## GT                   \\hlopt{    }
+## GE                   \\hlopt{    }
+## LT                   \\hlopt{    }
+## LE                   \\hlopt{    }
+## EQ                   \\hlopt{    }
+## NE                   \\hlopt{    }
+## AND                  \\hlopt{    }
+## AND2                 \\hlopt{    }
+## OR                   \\hlopt{    }
+## OR2                  \\hlopt{    }
+## NS_GET               \\hlopt{    }
+## NS_GET_INT           \\hlopt{    }
+## STANDARD             \\hlstd{    }
+## STR_CONST            \\hlstr{    }
+</code></pre></td></tr><tr id="row3"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row3">&para;</a></div>
+
+<p>This data frame is passed to the <code>markup</code> argument in <code>hilight()</code>, so we are
+free to pass a modified version there. Suppose I want to use the command
+<code>\my&lt;*&gt;</code> instead of <code>\hl&lt;*&gt;</code>:</p></td><td class="code"><pre><code class="r">m = highr:::cmd_latex
+m[, 1] = sub(&quot;\\hl&quot;, &quot;\\my&quot;, m[, 1], fixed = TRUE)
+head(m)
+</code></pre>
+<pre><code>##              cmd1 cmd2
+## COMMENT  \\mycom{    }
+## FUNCTION \\mykwa{    }
+## IF       \\mykwa{    }
+## ELSE     \\mykwa{    }
+## WHILE    \\mykwa{    }
+## FOR      \\mykwa{    }
+</code></pre></td></tr><tr id="row4"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row4">&para;</a></div>
+
+<p>Then</p></td><td class="code"><pre><code class="r">hilight(&quot;x = 1+1  # a comment&quot;)  # default markup
+</code></pre>
+<pre><code>## [1] &quot;\\hlstd{x} \\hlkwb{=} \\hlnum{1}\\hlopt{+}\\hlnum{1}  \\hlcom{# a comment}&quot;
+</code></pre>
+<pre><code class="r">hilight(&quot;x = 1+1  # a comment&quot;, markup = m)  # custom markup
+</code></pre>
+<pre><code>## [1] &quot;\\mystd{x} \\mykwb{=} \\mynum{1}\\myopt{+}\\mynum{1}  \\mycom{# a comment}&quot;
+</code></pre></td></tr><tr id="row5"><td class="docs"><div class="pilwrap"><a class="pilcrow" href="#row5">&para;</a></div>
+
+<p>This allows one to use arbitrary commands around the text symbols in the R
+code. See <a href="https://github.com/yihui/highr/blob/master/R/highlight.R">https://github.com/yihui/highr/blob/master/R/highlight.R</a> for how
+<code>cmd_latex</code> and <code>cmd_html</code> were generated in <strong>highr</strong>.</p>
+</td><td class="code"></td></tr>
+      </table><!--table end-->
+    </div>
+  <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
+  <script src="https://yihui.github.io/knitr/js/docco-resize.js"></script>
+  </body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-custom.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-internals.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-internals.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-internals.R	(revision 2476)
@@ -0,0 +1,42 @@
+## ------------------------------------------------------------------------
+p = parse(text = "   xx = 1 + 1  # a comment", keep.source = TRUE)
+(d = getParseData(p))
+
+## ------------------------------------------------------------------------
+(d = d[d$terminal, ])
+
+## ------------------------------------------------------------------------
+head(highr:::cmd_latex)
+tail(highr:::cmd_html)
+
+## ------------------------------------------------------------------------
+d$token
+rownames(highr:::cmd_latex)
+
+## ------------------------------------------------------------------------
+(z = d[, c('col1', 'col2')])  # take out the column positions
+(z = t(z)) # transpose the matrix
+(z = c(z)) # turn it into a vector
+(z = c(0, head(z, -1))) # append 0 in the beginning, and remove the last element
+(z = matrix(z, ncol = 2, byrow = TRUE))
+
+## ------------------------------------------------------------------------
+(s = z[, 2] - z[, 1] - 1)
+(s = mapply(highr:::spaces, s))
+paste(s, d$text, sep = '')
+
+## ------------------------------------------------------------------------
+m = highr:::cmd_latex[d$token, ]
+cbind(d, m)
+# use standard markup if tokens do not exist in the table
+m[is.na(m[, 1]), ] = highr:::cmd_latex['STANDARD', ]
+paste(s, m[, 1], d$text, m[, 2], sep = '', collapse = '')
+
+## ------------------------------------------------------------------------
+d = getParseData(parse(text = "x = \"a character\nstring\" #hi", keep.source = TRUE))
+(d = d[d$terminal, ])
+
+## ------------------------------------------------------------------------
+d$line1[d$line1 == 1] = 2
+d
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-internals.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-internals.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/highr/doc/highr-internals.Rmd	(revision 2476)
@@ -0,0 +1,101 @@
+<!--
+%\VignetteEngine{knitr::docco_classic}
+%\VignetteIndexEntry{Internals of the highr package}
+-->
+
+# Internals of the `highr` package
+
+The **highr** package is based on the function `getParseData()`, which was
+introduced in R 3.0.0. This function gives detailed information of the
+symbols in a code fragment. A simple example:
+
+```{r}
+p = parse(text = "   xx = 1 + 1  # a comment", keep.source = TRUE)
+(d = getParseData(p))
+```
+
+The first step is to filter out the rows that we do not need:
+
+```{r}
+(d = d[d$terminal, ])
+```
+
+There is a column `token` in the data frame, and we will wrap this column
+with markup commands, e.g. `\hlnum{1}` for the numeric constant `1`. We
+defined the markup commands in `cmd_latex` and `cmd_html`:
+
+```{r}
+head(highr:::cmd_latex)
+tail(highr:::cmd_html)
+```
+
+These command data frames are connected to the tokens in the R code via
+their row names:
+
+```{r}
+d$token
+rownames(highr:::cmd_latex)
+```
+
+Now we know how to wrap up the R tokens. The next big question is how to
+restore the white spaces in the source code, since they were not directly
+available in the parsed data, but the parsed data contains column numbers,
+and we can derive the positions of white spaces from them. For example,
+`col2 = 5` for the first row, and `col1 = 7` for the next row, and that
+indicates there must be one space after the token in the first row, otherwise
+the next row will start at the position `6` instead of `7`.
+
+A small trick is used to fill in the gaps of white spaces:
+
+```{r}
+(z = d[, c('col1', 'col2')])  # take out the column positions
+(z = t(z)) # transpose the matrix
+(z = c(z)) # turn it into a vector
+(z = c(0, head(z, -1))) # append 0 in the beginning, and remove the last element
+(z = matrix(z, ncol = 2, byrow = TRUE))
+```
+
+Now the two columns indicate the starting and ending positions of spaces,
+and we can easily figure out how many white spaces are needed for each row:
+
+```{r}
+(s = z[, 2] - z[, 1] - 1)
+(s = mapply(highr:::spaces, s))
+paste(s, d$text, sep = '')
+```
+
+So we have successfully restored the white spaces in the source code. Let's
+paste all pieces together (suppose we highlight for LaTeX):
+
+```{r}
+m = highr:::cmd_latex[d$token, ]
+cbind(d, m)
+# use standard markup if tokens do not exist in the table
+m[is.na(m[, 1]), ] = highr:::cmd_latex['STANDARD', ]
+paste(s, m[, 1], d$text, m[, 2], sep = '', collapse = '')
+```
+
+So far so simple. That is one line of code, after all. A next challenge
+comes when there are multiple lines, and a token spans across multiple lines:
+
+```{r}
+d = getParseData(parse(text = "x = \"a character\nstring\" #hi", keep.source = TRUE))
+(d = d[d$terminal, ])
+```
+
+Take a look at the third row. It says that the character string starts from
+line 1, and ends on line 2. In this case, we just pretend as if everything
+on line 1 were on line 2. Then for each line, we append the missing spaces
+and apply markup commands to text symbols.
+
+```{r}
+d$line1[d$line1 == 1] = 2
+d
+```
+
+Do not worry about the column `line2`. It does not matter. Only `line1` is
+needed to indicate the line number here.
+
+Why do we need to highlight line by line instead of applying highlighting
+commands to all text symbols (a.k.a vectorization)? Well, the margin of this
+paper is too small to write down the answer.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/NAMESPACE	(revision 2476)
@@ -0,0 +1,21 @@
+export(abc.ci, boot, boot.array, boot.ci, censboot, control, corr,
+       cum3, cv.glm, EEF.profile, EL.profile, empinf, envelope,
+       exp.tilt, freq.array, glm.diag, glm.diag.plots, imp.moments,
+       imp.prob, imp.quantile, imp.weights, inv.logit,
+       jack.after.boot, k3.linear, lik.CI, linear.approx, logit,
+       nested.corr, norm.ci, saddle, saddle.distn, simplex,
+       smooth.f, tilt.boot, tsboot, var.linear)
+
+# documented, registered but not exported
+# export(lines.saddle.distn, plot.boot, print.boot, print.bootci, print.simplex)
+
+importFrom(graphics, abline, hist, identify, layout, lines, par, plot, text)
+import(stats)
+
+S3method(c, boot)
+S3method(lines, saddle.distn)
+S3method(plot, boot)
+S3method(print, boot)
+S3method(print, bootci)
+S3method(print, saddle.distn)
+S3method(print, simplex)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/po/ru/LC_MESSAGES/R-boot.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/po/ru/LC_MESSAGES/R-boot.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/po/fr/LC_MESSAGES/R-boot.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/po/fr/LC_MESSAGES/R-boot.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/po/de/LC_MESSAGES/R-boot.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/po/de/LC_MESSAGES/R-boot.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/po/ko/LC_MESSAGES/R-boot.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/po/ko/LC_MESSAGES/R-boot.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/po/en@quot/LC_MESSAGES/R-boot.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/po/en@quot/LC_MESSAGES/R-boot.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/po/pl/LC_MESSAGES/R-boot.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/po/pl/LC_MESSAGES/R-boot.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/R/boot.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/R/boot.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/R/boot.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/R/boot.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/R/boot
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/R/boot	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/R/boot	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/tests/Examples/boot-Ex.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/tests/Examples/boot-Ex.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/tests/Examples/boot-Ex.Rout.save	(revision 2476)
@@ -0,0 +1,2040 @@
+
+R Under development (unstable) (2015-02-23 r67886) -- "Unsuffered Consequences"
+Copyright (C) 2015 The R Foundation for Statistical Computing
+Platform: x86_64-apple-darwin14.1.0 (64-bit)
+
+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.
+
+  Natural language support but running in an English locale
+
+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.
+
+> pkgname <- "boot"
+> source(file.path(R.home("share"), "R", "examples-header.R"))
+> options(warn = 1)
+> library('boot')
+> 
+> base::assign(".oldSearch", base::search(), pos = 'CheckExEnv')
+> cleanEx()
+> nameEx("Imp.Estimates")
+> ### * Imp.Estimates
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: Imp.Estimates
+> ### Title: Importance Sampling Estimates
+> ### Aliases: Imp.Estimates imp.moments imp.prob imp.quantile imp.reg
+> ### Keywords: htest nonparametric
+> 
+> ### ** Examples
+> 
+> # Example 9.8 of Davison and Hinkley (1997) requires tilting the 
+> # resampling distribution of the studentized statistic to be centred 
+> # at the observed value of the test statistic, 1.84.  In this example
+> # we show how certain estimates can be found using resamples taken from
+> # the tilted distribution.
+> grav1 <- gravity[as.numeric(gravity[,2]) >= 7, ]
+> grav.fun <- function(dat, w, orig) {
++      strata <- tapply(dat[, 2], as.numeric(dat[, 2]))
++      d <- dat[, 1]
++      ns <- tabulate(strata)
++      w <- w/tapply(w, strata, sum)[strata]
++      mns <- as.vector(tapply(d * w, strata, sum)) # drop names
++      mn2 <- tapply(d * d * w, strata, sum)
++      s2hat <- sum((mn2 - mns^2)/ns)
++      c(mns[2] - mns[1], s2hat, (mns[2] - mns[1] - orig)/sqrt(s2hat))
++ }
+> grav.z0 <- grav.fun(grav1, rep(1, 26), 0)
+> grav.L <- empinf(data = grav1, statistic = grav.fun, stype = "w", 
++                  strata = grav1[,2], index = 3, orig = grav.z0[1])
+> grav.tilt <- exp.tilt(grav.L, grav.z0[3], strata = grav1[, 2])
+> grav.tilt.boot <- boot(grav1, grav.fun, R = 199, stype = "w", 
++                        strata = grav1[, 2], weights = grav.tilt$p,
++                        orig = grav.z0[1])
+> # Since the weights are needed for all calculations, we shall calculate
+> # them once only.
+> grav.w <- imp.weights(grav.tilt.boot)
+> grav.mom <- imp.moments(grav.tilt.boot, w = grav.w, index = 3)
+> grav.p <- imp.prob(grav.tilt.boot, w = grav.w, index = 3, t0 = grav.z0[3])
+> unlist(grav.p)
+       t0       raw       rat       reg 
+1.8401182 1.0222447 0.9778246 0.9767292 
+> grav.q <- imp.quantile(grav.tilt.boot, w = grav.w, index = 3, 
++                        alpha = c(0.9, 0.95, 0.975, 0.99))
+> as.data.frame(grav.q)
+  alpha      raw      rat      reg
+1 0.900 3.048484 1.170707 5.056004
+2 0.950 3.237935 1.565928 5.056004
+3 0.975 3.629448 1.895876 5.056004
+4 0.990 3.629448 2.258157 5.056004
+> 
+> 
+> 
+> cleanEx()
+> nameEx("abc.ci")
+> ### * abc.ci
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: abc.ci
+> ### Title: Nonparametric ABC Confidence Intervals
+> ### Aliases: abc.ci
+> ### Keywords: nonparametric htest
+> 
+> ### ** Examples
+> 
+> ## Don't show: 
+> op <- options(digits = 5)
+> ## End(Don't show)
+> # 90% and 95% confidence intervals for the correlation 
+> # coefficient between the columns of the bigcity data
+> 
+> abc.ci(bigcity, corr, conf=c(0.90,0.95))
+     conf                
+[1,] 0.90 0.95815 0.99173
+[2,] 0.95 0.94937 0.99307
+> 
+> # A 95% confidence interval for the difference between the means of
+> # the last two samples in gravity
+> mean.diff <- function(y, w)
++ {    gp1 <- 1:table(as.numeric(y$series))[1]
++      sum(y[gp1, 1] * w[gp1]) - sum(y[-gp1, 1] * w[-gp1])
++ }
+> grav1 <- gravity[as.numeric(gravity[, 2]) >= 7, ]
+> abc.ci(grav1, mean.diff, strata = grav1$series)
+[1]  0.95000 -6.70758 -0.39394
+> ## Don't show: 
+> options(op)
+> ## End(Don't show)
+> 
+> 
+> 
+> cleanEx()
+> nameEx("boot")
+> ### * boot
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: boot
+> ### Title: Bootstrap Resampling
+> ### Aliases: boot boot.return c.boot
+> ### Keywords: nonparametric htest
+> 
+> ### ** Examples
+> 
+> ## Don't show: 
+> op <- options(digits = 5)
+> ## End(Don't show)
+> # Usual bootstrap of the ratio of means using the city data
+> ratio <- function(d, w) sum(d$x * w)/sum(d$u * w)
+> boot(city, ratio, R = 999, stype = "w")
+
+ORDINARY NONPARAMETRIC BOOTSTRAP
+
+
+Call:
+boot(data = city, statistic = ratio, R = 999, stype = "w")
+
+
+Bootstrap Statistics :
+    original  bias    std. error
+t1*   1.5203  0.0396     0.21671
+> 
+> 
+> # Stratified resampling for the difference of means.  In this
+> # example we will look at the difference of means between the final
+> # two series in the gravity data.
+> diff.means <- function(d, f)
++ {    n <- nrow(d)
++      gp1 <- 1:table(as.numeric(d$series))[1]
++      m1 <- sum(d[gp1,1] * f[gp1])/sum(f[gp1])
++      m2 <- sum(d[-gp1,1] * f[-gp1])/sum(f[-gp1])
++      ss1 <- sum(d[gp1,1]^2 * f[gp1]) - (m1 *  m1 * sum(f[gp1]))
++      ss2 <- sum(d[-gp1,1]^2 * f[-gp1]) - (m2 *  m2 * sum(f[-gp1]))
++      c(m1 - m2, (ss1 + ss2)/(sum(f) - 2))
++ }
+> grav1 <- gravity[as.numeric(gravity[,2]) >= 7,]
+> boot(grav1, diff.means, R = 999, stype = "f", strata = grav1[,2])
+
+STRATIFIED BOOTSTRAP
+
+
+Call:
+boot(data = grav1, statistic = diff.means, R = 999, stype = "f", 
+    strata = grav1[, 2])
+
+
+Bootstrap Statistics :
+    original    bias    std. error
+t1*  -2.8462  0.002541      1.5467
+t2*  16.8462 -1.457663      6.7591
+> 
+> # In this example we show the use of boot in a prediction from
+> # regression based on the nuclear data.  This example is taken
+> # from Example 6.8 of Davison and Hinkley (1997).  Notice also
+> # that two extra arguments to 'statistic' are passed through boot.
+> nuke <- nuclear[, c(1, 2, 5, 7, 8, 10, 11)]
+> nuke.lm <- glm(log(cost) ~ date+log(cap)+ne+ct+log(cum.n)+pt, data = nuke)
+> nuke.diag <- glm.diag(nuke.lm)
+> nuke.res <- nuke.diag$res * nuke.diag$sd
+> nuke.res <- nuke.res - mean(nuke.res)
+> 
+> # We set up a new data frame with the data, the standardized 
+> # residuals and the fitted values for use in the bootstrap.
+> nuke.data <- data.frame(nuke, resid = nuke.res, fit = fitted(nuke.lm))
+> 
+> # Now we want a prediction of plant number 32 but at date 73.00
+> new.data <- data.frame(cost = 1, date = 73.00, cap = 886, ne = 0,
++                        ct = 0, cum.n = 11, pt = 1)
+> new.fit <- predict(nuke.lm, new.data)
+> 
+> nuke.fun <- function(dat, inds, i.pred, fit.pred, x.pred)
++ {
++      lm.b <- glm(fit+resid[inds] ~ date+log(cap)+ne+ct+log(cum.n)+pt,
++                  data = dat)
++      pred.b <- predict(lm.b, x.pred)
++      c(coef(lm.b), pred.b - (fit.pred + dat$resid[i.pred]))
++ }
+> 
+> nuke.boot <- boot(nuke.data, nuke.fun, R = 999, m = 1, 
++                   fit.pred = new.fit, x.pred = new.data)
+> # The bootstrap prediction squared error would then be found by
+> mean(nuke.boot$t[, 8]^2)
+[1] 0.088157
+> # Basic bootstrap prediction limits would be
+> new.fit - sort(nuke.boot$t[, 8])[c(975, 25)]
+[1] 6.1603 7.2988
+> 
+> 
+> # Finally a parametric bootstrap.  For this example we shall look 
+> # at the air-conditioning data.  In this example our aim is to test 
+> # the hypothesis that the true value of the index is 1 (i.e. that 
+> # the data come from an exponential distribution) against the 
+> # alternative that the data come from a gamma distribution with
+> # index not equal to 1.
+> air.fun <- function(data) {
++      ybar <- mean(data$hours)
++      para <- c(log(ybar), mean(log(data$hours)))
++      ll <- function(k) {
++           if (k <= 0) 1e200 else lgamma(k)-k*(log(k)-1-para[1]+para[2])
++      }
++      khat <- nlm(ll, ybar^2/var(data$hours))$estimate
++      c(ybar, khat)
++ }
+> 
+> air.rg <- function(data, mle) {
++     # Function to generate random exponential variates.
++     # mle will contain the mean of the original data
++     out <- data
++     out$hours <- rexp(nrow(out), 1/mle)
++     out
++ }
+> 
+> air.boot <- boot(aircondit, air.fun, R = 999, sim = "parametric",
++                  ran.gen = air.rg, mle = mean(aircondit$hours))
+> 
+> # The bootstrap p-value can then be approximated by
+> sum(abs(air.boot$t[,2]-1) > abs(air.boot$t0[2]-1))/(1+air.boot$R)
+[1] 0.461
+> ## Don't show: 
+> options(op)
+> ## End(Don't show)
+> 
+> 
+> 
+> cleanEx()
+> nameEx("boot.array")
+> ### * boot.array
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: boot.array
+> ### Title: Bootstrap Resampling Arrays
+> ### Aliases: boot.array
+> ### Keywords: nonparametric
+> 
+> ### ** Examples
+> 
+> #  A frequency array for a nonparametric bootstrap
+> city.boot <- boot(city, corr, R = 40, stype = "w")
+> boot.array(city.boot)
+      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
+ [1,]    1    1    3    1    1    0    1    0    1     1
+ [2,]    0    0    1    3    1    2    1    1    1     0
+ [3,]    0    0    0    1    3    2    0    1    2     1
+ [4,]    0    2    2    2    0    1    0    1    0     2
+ [5,]    1    1    1    0    1    2    0    2    2     0
+ [6,]    0    1    2    0    2    1    0    1    2     1
+ [7,]    3    0    0    1    1    2    0    1    1     1
+ [8,]    0    4    1    1    1    0    1    2    0     0
+ [9,]    0    1    4    0    1    0    2    2    0     0
+[10,]    1    1    1    1    1    1    1    2    0     1
+[11,]    0    0    3    0    2    1    1    1    0     2
+[12,]    2    3    1    0    0    1    0    0    2     1
+[13,]    1    0    0    1    2    0    2    1    1     2
+[14,]    0    0    2    3    0    0    2    0    2     1
+[15,]    2    0    1    1    1    1    0    2    1     1
+[16,]    1    1    0    2    2    1    1    1    1     0
+[17,]    1    0    1    2    2    1    2    1    0     0
+[18,]    0    2    0    0    2    2    0    1    1     2
+[19,]    1    1    0    2    0    1    2    0    1     2
+[20,]    0    0    0    1    2    1    1    1    0     4
+[21,]    0    0    2    0    1    1    3    0    0     3
+[22,]    1    3    2    2    0    1    1    0    0     0
+[23,]    0    0    3    1    2    1    2    0    1     0
+[24,]    0    1    1    2    1    2    0    1    0     2
+[25,]    0    0    2    1    0    0    3    2    1     1
+[26,]    0    2    4    1    1    1    0    0    0     1
+[27,]    2    3    1    0    2    0    0    2    0     0
+[28,]    1    1    0    1    1    0    0    4    2     0
+[29,]    2    2    0    1    1    0    1    0    1     2
+[30,]    0    1    0    1    1    2    0    1    3     1
+[31,]    1    2    0    2    2    0    1    1    0     1
+[32,]    1    4    0    1    0    2    0    1    1     0
+[33,]    0    1    0    5    1    0    0    1    1     1
+[34,]    0    2    0    1    3    1    1    1    0     1
+[35,]    0    2    3    1    1    1    0    0    1     1
+[36,]    1    2    1    1    1    1    2    0    1     0
+[37,]    1    1    1    0    0    1    2    2    2     0
+[38,]    2    3    0    3    0    1    0    0    1     0
+[39,]    0    0    1    2    3    0    0    2    1     1
+[40,]    0    1    1    0    3    0    2    2    0     1
+> 
+> perm.cor <- function(d,i) cor(d$x,d$u[i])
+> city.perm <- boot(city, perm.cor, R = 40, sim = "permutation")
+> boot.array(city.perm, indices = TRUE)
+      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
+ [1,]    7    2    8   10    6    4    9    3    1     5
+ [2,]   10    4    6    8    5    3    2    1    9     7
+ [3,]    5   10    6    2    3    8    1    9    7     4
+ [4,]   10    1    4    8    9    5    3    6    7     2
+ [5,]    1    3    5    8    2    9    6    7   10     4
+ [6,]   10    4    3    2    1    9    8    5    7     6
+ [7,]    2    5    1    4   10    9    3    8    7     6
+ [8,]    5    9    6    3    1    2    4   10    8     7
+ [9,]    8    2    7   10    4    3    1    6    9     5
+[10,]    1    9    3    2    8    6    7    4    5    10
+[11,]    6    7   10    5    3    9    2    8    4     1
+[12,]    9    5    1    6   10    8    3    2    7     4
+[13,]    9    7    3    1    8    5    4    6    2    10
+[14,]    7    1    3    2    9    6   10    4    5     8
+[15,]    4    9    6    3    2    1   10    8    7     5
+[16,]    9    6    1    7    5    2    8    4   10     3
+[17,]    7    2    3    6   10    4    1    9    5     8
+[18,]    2    4    3    1    5    8    6   10    9     7
+[19,]    4    9    6    1   10    3    7    2    5     8
+[20,]    6    3    7    5    8    4    2   10    1     9
+[21,]    9   10    2    6    7    5    8    4    3     1
+[22,]   10    4    5    9    8    3    1    2    6     7
+[23,]    9    2    5    1   10    4    6    8    7     3
+[24,]    9    4    3    6    8    2    1   10    5     7
+[25,]   10    3    8    2    5    7    1    9    6     4
+[26,]    7    8    3    9    4    1    5    2   10     6
+[27,]    4    8    1    5    3    6   10    9    7     2
+[28,]    8    5    7    4   10    3    2    1    9     6
+[29,]    8   10    2    4    7    3    9    6    1     5
+[30,]    1    5    7    9    3    6    4   10    2     8
+[31,]   10    9    7    5    4    1    2    6    3     8
+[32,]    8    5    1    6    3    7   10    4    9     2
+[33,]    1    6    8    5    2    7    9    4   10     3
+[34,]    8    5    7    1    9    2    6    3   10     4
+[35,]    4    5    9    2    7    6    8    3    1    10
+[36,]    5    9   10    1    3    7    2    8    4     6
+[37,]    8    2    7    9   10    1    3    4    6     5
+[38,]    5    8    1    7    4    3    9   10    6     2
+[39,]   10    7    6    4    8    1    3    5    9     2
+[40,]    2    1    8    3    4    6    9   10    7     5
+> 
+> 
+> 
+> cleanEx()
+> nameEx("boot.ci")
+> ### * boot.ci
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: boot.ci
+> ### Title: Nonparametric Bootstrap Confidence Intervals
+> ### Aliases: boot.ci
+> ### Keywords: nonparametric htest
+> 
+> ### ** Examples
+> 
+> # confidence intervals for the city data
+> ratio <- function(d, w) sum(d$x * w)/sum(d$u * w)
+> city.boot <- boot(city, ratio, R = 999, stype = "w", sim = "ordinary")
+> boot.ci(city.boot, conf = c(0.90, 0.95),
++         type = c("norm", "basic", "perc", "bca"))
+BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
+Based on 999 bootstrap replicates
+
+CALL : 
+boot.ci(boot.out = city.boot, conf = c(0.9, 0.95), type = c("norm", 
+    "basic", "perc", "bca"))
+
+Intervals : 
+Level      Normal              Basic         
+90%   ( 1.124,  1.837 )   ( 1.059,  1.740 )   
+95%   ( 1.056,  1.905 )   ( 0.932,  1.799 )  
+
+Level     Percentile            BCa          
+90%   ( 1.301,  1.982 )   ( 1.301,  1.984 )   
+95%   ( 1.242,  2.109 )   ( 1.243,  2.110 )  
+Calculations and Intervals on Original Scale
+> 
+> # studentized confidence interval for the two sample 
+> # difference of means problem using the final two series
+> # of the gravity data. 
+> diff.means <- function(d, f)
++ {    n <- nrow(d)
++      gp1 <- 1:table(as.numeric(d$series))[1]
++      m1 <- sum(d[gp1,1] * f[gp1])/sum(f[gp1])
++      m2 <- sum(d[-gp1,1] * f[-gp1])/sum(f[-gp1])
++      ss1 <- sum(d[gp1,1]^2 * f[gp1]) - (m1 *  m1 * sum(f[gp1]))
++      ss2 <- sum(d[-gp1,1]^2 * f[-gp1]) - (m2 *  m2 * sum(f[-gp1]))
++      c(m1 - m2, (ss1 + ss2)/(sum(f) - 2))
++ }
+> grav1 <- gravity[as.numeric(gravity[,2]) >= 7, ]
+> grav1.boot <- boot(grav1, diff.means, R = 999, stype = "f",
++                    strata = grav1[ ,2])
+> boot.ci(grav1.boot, type = c("stud", "norm"))
+BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
+Based on 999 bootstrap replicates
+
+CALL : 
+boot.ci(boot.out = grav1.boot, type = c("stud", "norm"))
+
+Intervals : 
+Level      Normal            Studentized     
+95%   (-5.880,  0.183 )   (-7.059, -0.101 )  
+Calculations and Intervals on Original Scale
+> 
+> # Nonparametric confidence intervals for mean failure time 
+> # of the air-conditioning data as in Example 5.4 of Davison
+> # and Hinkley (1997)
+> mean.fun <- function(d, i) 
++ {    m <- mean(d$hours[i])
++      n <- length(i)
++      v <- (n-1)*var(d$hours[i])/n^2
++      c(m, v)
++ }
+> air.boot <- boot(aircondit, mean.fun, R = 999)
+> boot.ci(air.boot, type = c("norm", "basic", "perc", "stud"))
+BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
+Based on 999 bootstrap replicates
+
+CALL : 
+boot.ci(boot.out = air.boot, type = c("norm", "basic", "perc", 
+    "stud"))
+
+Intervals : 
+Level      Normal              Basic         
+95%   ( 35.5, 181.9 )   ( 26.0, 170.6 )  
+
+Level    Studentized          Percentile     
+95%   ( 47.9, 294.5 )   ( 45.6, 190.2 )  
+Calculations and Intervals on Original Scale
+> 
+> # Now using the log transformation
+> # There are two ways of doing this and they both give the
+> # same intervals.
+> 
+> # Method 1
+> boot.ci(air.boot, type = c("norm", "basic", "perc", "stud"), 
++         h = log, hdot = function(x) 1/x)
+BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
+Based on 999 bootstrap replicates
+
+CALL : 
+boot.ci(boot.out = air.boot, type = c("norm", "basic", "perc", 
+    "stud"), h = log, hdot = function(x) 1/x)
+
+Intervals : 
+Level      Normal              Basic         
+95%   ( 4.035,  5.469 )   ( 4.118,  5.546 )  
+
+Level    Studentized          Percentile     
+95%   ( 3.959,  5.808 )   ( 3.820,  5.248 )  
+Calculations and Intervals on  Transformed Scale
+> 
+> # Method 2
+> vt0 <- air.boot$t0[2]/air.boot$t0[1]^2
+> vt <- air.boot$t[, 2]/air.boot$t[ ,1]^2
+> boot.ci(air.boot, type = c("norm", "basic", "perc", "stud"), 
++         t0 = log(air.boot$t0[1]), t = log(air.boot$t[,1]),
++         var.t0 = vt0, var.t = vt)
+BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
+Based on 999 bootstrap replicates
+
+CALL : 
+boot.ci(boot.out = air.boot, type = c("norm", "basic", "perc", 
+    "stud"), var.t0 = vt0, var.t = vt, t0 = log(air.boot$t0[1]), 
+    t = log(air.boot$t[, 1]))
+
+Intervals : 
+Level      Normal              Basic         
+95%   ( 4.069,  5.435 )   ( 4.118,  5.546 )  
+
+Level    Studentized          Percentile     
+95%   ( 3.959,  5.808 )   ( 3.820,  5.248 )  
+Calculations and Intervals on Original Scale
+> 
+> 
+> 
+> cleanEx()
+> nameEx("censboot")
+> ### * censboot
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: censboot
+> ### Title: Bootstrap for Censored Data
+> ### Aliases: censboot cens.return
+> ### Keywords: survival
+> 
+> ### ** Examples
+> 
+> library(survival)
+
+Attaching package: ‘survival’
+
+The following object is masked from ‘package:boot’:
+
+    aml
+
+> # Example 3.9 of Davison and Hinkley (1997) does a bootstrap on some
+> # remission times for patients with a type of leukaemia.  The patients
+> # were divided into those who received maintenance chemotherapy and 
+> # those who did not.  Here we are interested in the median remission 
+> # time for the two groups.
+> data(aml, package = "boot") # not the version in survival.
+> aml.fun <- function(data) {
++      surv <- survfit(Surv(time, cens) ~ group, data = data)
++      out <- NULL
++      st <- 1
++      for (s in 1:length(surv$strata)) {
++           inds <- st:(st + surv$strata[s]-1)
++           md <- min(surv$time[inds[1-surv$surv[inds] >= 0.5]])
++           st <- st + surv$strata[s]
++           out <- c(out, md)
++      }
++      out
++ }
+> aml.case <- censboot(aml, aml.fun, R = 499, strata = aml$group)
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+> 
+> # Now we will look at the same statistic using the conditional 
+> # bootstrap and the weird bootstrap.  For the conditional bootstrap 
+> # the survival distribution is stratified but the censoring 
+> # distribution is not. 
+> 
+> aml.s1 <- survfit(Surv(time, cens) ~ group, data = aml)
+> aml.s2 <- survfit(Surv(time-0.001*cens, 1-cens) ~ 1, data = aml)
+> aml.cond <- censboot(aml, aml.fun, R = 499, strata = aml$group,
++      F.surv = aml.s1, G.surv = aml.s2, sim = "cond")
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+> 
+> 
+> # For the weird bootstrap we must redefine our function slightly since
+> # the data will not contain the group number.
+> aml.fun1 <- function(data, str) {
++      surv <- survfit(Surv(data[, 1], data[, 2]) ~ str)
++      out <- NULL
++      st <- 1
++      for (s in 1:length(surv$strata)) {
++           inds <- st:(st + surv$strata[s] - 1)
++           md <- min(surv$time[inds[1-surv$surv[inds] >= 0.5]])
++           st <- st + surv$strata[s]
++           out <- c(out, md)
++      }
++      out
++ }
+> aml.wei <- censboot(cbind(aml$time, aml$cens), aml.fun1, R = 499,
++      strata = aml$group,  F.surv = aml.s1, sim = "weird")
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+Warning in min(surv$time[inds[1 - surv$surv[inds] >= 0.5]]) :
+  no non-missing arguments to min; returning Inf
+> 
+> # Now for an example where a cox regression model has been fitted
+> # the data we will look at the melanoma data of Example 7.6 from 
+> # Davison and Hinkley (1997).  The fitted model assumes that there
+> # is a different survival distribution for the ulcerated and 
+> # non-ulcerated groups but that the thickness of the tumour has a
+> # common effect.  We will also assume that the censoring distribution
+> # is different in different age groups.  The statistic of interest
+> # is the linear predictor.  This is returned as the values at a
+> # number of equally spaced points in the range of interest.
+> data(melanoma, package = "boot")
+> library(splines)# for ns
+> mel.cox <- coxph(Surv(time, status == 1) ~ ns(thickness, df=4) + strata(ulcer),
++                  data = melanoma)
+> mel.surv <- survfit(mel.cox)
+> agec <- cut(melanoma$age, c(0, 39, 49, 59, 69, 100))
+> mel.cens <- survfit(Surv(time - 0.001*(status == 1), status != 1) ~
++                     strata(agec), data = melanoma)
+> mel.fun <- function(d) { 
++      t1 <- ns(d$thickness, df=4)
++      cox <- coxph(Surv(d$time, d$status == 1) ~ t1+strata(d$ulcer))
++      ind <- !duplicated(d$thickness)
++      u <- d$thickness[!ind]
++      eta <- cox$linear.predictors[!ind]
++      sp <- smooth.spline(u, eta, df=20)
++      th <- seq(from = 0.25, to = 10, by = 0.25)
++      predict(sp, th)$y
++ }
+> mel.str <- cbind(melanoma$ulcer, agec)
+> 
+> # this is slow!
+> mel.mod <- censboot(melanoma, mel.fun, R = 499, F.surv = mel.surv,
++      G.surv = mel.cens, cox = mel.cox, strata = mel.str, sim = "model")
+> # To plot the original predictor and a 95% pointwise envelope for it
+> mel.env <- envelope(mel.mod)$point
+> th <- seq(0.25, 10, by = 0.25)
+> plot(th, mel.env[1, ],  ylim = c(-2, 2),
++      xlab = "thickness (mm)", ylab = "linear predictor", type = "n")
+> lines(th, mel.mod$t0, lty = 1)
+> matlines(th, t(mel.env), lty = 2)
+> 
+> 
+> 
+> cleanEx()
+
+detaching ‘package:splines’, ‘package:survival’
+
+> nameEx("control")
+> ### * control
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: control
+> ### Title: Control Variate Calculations
+> ### Aliases: control
+> ### Keywords: nonparametric
+> 
+> ### ** Examples
+> 
+> # Use of control variates for the variance of the air-conditioning data
+> mean.fun <- function(d, i)
++ {    m <- mean(d$hours[i])
++      n <- nrow(d)
++      v <- (n-1)*var(d$hours[i])/n^2
++      c(m, v)
++ }
+> air.boot <- boot(aircondit, mean.fun, R = 999)
+> control(air.boot, index = 2, bias.adj = TRUE)
+[1] -6.298101
+> air.cont <- control(air.boot, index = 2)
+> # Now let us try the variance on the log scale.
+> air.cont1 <- control(air.boot, t0 = log(air.boot$t0[2]),
++                      t = log(air.boot$t[, 2]))
+> 
+> 
+> 
+> cleanEx()
+> nameEx("cv.glm")
+> ### * cv.glm
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: cv.glm
+> ### Title: Cross-validation for Generalized Linear Models
+> ### Aliases: cv.glm
+> ### Keywords: regression
+> 
+> ### ** Examples
+> 
+> # leave-one-out and 6-fold cross-validation prediction error for 
+> # the mammals data set.
+> data(mammals, package="MASS")
+> mammals.glm <- glm(log(brain) ~ log(body), data = mammals)
+> (cv.err <- cv.glm(mammals, mammals.glm)$delta)
+[1] 0.4918650 0.4916571
+> (cv.err.6 <- cv.glm(mammals, mammals.glm, K = 6)$delta)
+[1] 0.4851491 0.4834641
+> 
+> # As this is a linear model we could calculate the leave-one-out 
+> # cross-validation estimate without any extra model-fitting.
+> muhat <- fitted(mammals.glm)
+> mammals.diag <- glm.diag(mammals.glm)
+> (cv.err <- mean((mammals.glm$y - muhat)^2/(1 - mammals.diag$h)^2))
+[1] 0.491865
+> 
+> 
+> # leave-one-out and 11-fold cross-validation prediction error for 
+> # the nodal data set.  Since the response is a binary variable an
+> # appropriate cost function is
+> cost <- function(r, pi = 0) mean(abs(r-pi) > 0.5)
+> 
+> nodal.glm <- glm(r ~ stage+xray+acid, binomial, data = nodal)
+> (cv.err <- cv.glm(nodal, nodal.glm, cost, K = nrow(nodal))$delta)
+[1] 0.1886792 0.1886792
+> (cv.11.err <- cv.glm(nodal, nodal.glm, cost, K = 11)$delta)
+[1] 0.2264151 0.2217871
+> 
+> 
+> 
+> cleanEx()
+> nameEx("empinf")
+> ### * empinf
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: empinf
+> ### Title: Empirical Influence Values
+> ### Aliases: empinf
+> ### Keywords: nonparametric math
+> 
+> ### ** Examples
+> 
+> # The empirical influence values for the ratio of means in
+> # the city data.
+> ratio <- function(d, w) sum(d$x *w)/sum(d$u*w)
+> empinf(data = city, statistic = ratio)
+ [1] -1.04367815 -0.58417763 -0.37092459 -0.18958996  0.03164142  0.10544878
+ [7]  0.09236345  0.20365074  1.02178280  0.73381132
+> city.boot <- boot(city, ratio, 499, stype="w")
+> empinf(boot.out = city.boot, type = "reg")
+          1           1           1           1           1           1 
+-1.13619987 -0.69728210 -0.45301061 -0.27615882  0.02108999  0.14896336 
+          1           1           1           1 
+ 0.09746429  0.20622340  1.18798956  0.90092079 
+> 
+> # A statistic that may be of interest in the difference of means
+> # problem is the t-statistic for testing equality of means.  In
+> # the bootstrap we get replicates of the difference of means and
+> # the variance of that statistic and then want to use this output
+> # to get the empirical influence values of the t-statistic.
+> grav1 <- gravity[as.numeric(gravity[,2]) >= 7,]
+> grav.fun <- function(dat, w) {
++      strata <- tapply(dat[, 2], as.numeric(dat[, 2]))
++      d <- dat[, 1]
++      ns <- tabulate(strata)
++      w <- w/tapply(w, strata, sum)[strata]
++      mns <- as.vector(tapply(d * w, strata, sum)) # drop names
++      mn2 <- tapply(d * d * w, strata, sum)
++      s2hat <- sum((mn2 - mns^2)/ns)
++      c(mns[2] - mns[1], s2hat)
++ }
+> 
+> grav.boot <- boot(grav1, grav.fun, R = 499, stype = "w",
++                   strata = grav1[, 2])
+> 
+> # Since the statistic of interest is a function of the bootstrap
+> # statistics, we must calculate the bootstrap replicates and pass
+> # them to empinf using the t argument.
+> grav.z <- (grav.boot$t[,1]-grav.boot$t0[1])/sqrt(grav.boot$t[,2])
+> empinf(boot.out = grav.boot, t = grav.z)
+         1          1          1          1          1          1          1 
+-2.9326019 -1.3760327 -2.4400720 -1.2175846  0.2795352 -0.8258764 -0.8156286 
+         1          1          1          1          1          1          2 
+-0.5573332 -1.1275252 -3.1603140  1.2840693  3.5434781  9.3458860  2.6692589 
+         2          2          2          2          2          2          2 
+ 4.4496570  3.6948000  0.9929002 -3.0100985 -3.2237464 -2.5493305 -0.6551745 
+         2          2          2          2          2 
+ 1.9065308  0.4980530 -1.6219628 -1.6980508 -1.4528364 
+> 
+> 
+> 
+> cleanEx()
+> nameEx("envelope")
+> ### * envelope
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: envelope
+> ### Title: Confidence Envelopes for Curves
+> ### Aliases: envelope
+> ### Keywords: dplot htest
+> 
+> ### ** Examples
+> 
+> # Testing whether the final series of measurements of the gravity data
+> # may come from a normal distribution.  This is done in Examples 4.7 
+> # and 4.8 of Davison and Hinkley (1997).
+> grav1 <- gravity$g[gravity$series == 8]
+> grav.z <- (grav1 - mean(grav1))/sqrt(var(grav1))
+> grav.gen <- function(dat, mle) rnorm(length(dat))
+> grav.qqboot <- boot(grav.z, sort, R = 999, sim = "parametric",
++                     ran.gen = grav.gen)
+> grav.qq <- qqnorm(grav.z, plot.it = FALSE)
+> grav.qq <- lapply(grav.qq, sort)
+> plot(grav.qq, ylim = c(-3.5, 3.5), ylab = "Studentized Order Statistics",
++      xlab = "Normal Quantiles")
+> grav.env <- envelope(grav.qqboot, level = 0.9)
+> lines(grav.qq$x, grav.env$point[1, ], lty = 4)
+> lines(grav.qq$x, grav.env$point[2, ], lty = 4)
+> lines(grav.qq$x, grav.env$overall[1, ], lty = 1)
+> lines(grav.qq$x, grav.env$overall[2, ], lty = 1)
+> 
+> 
+> 
+> cleanEx()
+> nameEx("exp.tilt")
+> ### * exp.tilt
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: exp.tilt
+> ### Title: Exponential Tilting
+> ### Aliases: exp.tilt
+> ### Keywords: nonparametric smooth
+> 
+> ### ** Examples
+> 
+> # Example 9.8 of Davison and Hinkley (1997) requires tilting the resampling
+> # distribution of the studentized statistic to be centred at the observed
+> # value of the test statistic 1.84.  This can be achieved as follows.
+> grav1 <- gravity[as.numeric(gravity[,2]) >=7 , ]
+> grav.fun <- function(dat, w, orig) {
++      strata <- tapply(dat[, 2], as.numeric(dat[, 2]))
++      d <- dat[, 1]
++      ns <- tabulate(strata)
++      w <- w/tapply(w, strata, sum)[strata]
++      mns <- as.vector(tapply(d * w, strata, sum)) # drop names
++      mn2 <- tapply(d * d * w, strata, sum)
++      s2hat <- sum((mn2 - mns^2)/ns)
++      c(mns[2]-mns[1], s2hat, (mns[2]-mns[1]-orig)/sqrt(s2hat))
++ }
+> grav.z0 <- grav.fun(grav1, rep(1, 26), 0)
+> grav.L <- empinf(data = grav1, statistic = grav.fun, stype = "w", 
++                  strata = grav1[,2], index = 3, orig = grav.z0[1])
+> grav.tilt <- exp.tilt(grav.L, grav.z0[3], strata = grav1[,2])
+> boot(grav1, grav.fun, R = 499, stype = "w", weights = grav.tilt$p,
++      strata = grav1[,2], orig = grav.z0[1])
+
+STRATIFIED WEIGHTED BOOTSTRAP
+
+
+Call:
+boot(data = grav1, statistic = grav.fun, R = 499, stype = "w", 
+    strata = grav1[, 2], weights = grav.tilt$p, orig = grav.z0[1])
+
+
+Bootstrap Statistics :
+    original     bias    std. error  mean(t*)
+t1* 2.846154 -0.3661063    1.705171  5.702944
+t2* 2.392353 -0.3538294    1.002889  3.444050
+t3* 0.000000 -0.5160619    1.314298  1.473456
+> 
+> 
+> 
+> cleanEx()
+> nameEx("glm.diag.plots")
+> ### * glm.diag.plots
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: glm.diag.plots
+> ### Title: Diagnostics plots for generalized linear models
+> ### Aliases: glm.diag.plots
+> ### Keywords: regression dplot hplot
+> 
+> ### ** Examples
+> 
+> # In this example we look at the leukaemia data which was looked at in 
+> # Example 7.1 of Davison and Hinkley (1997)
+> data(leuk, package = "MASS")
+> leuk.mod <- glm(time ~ ag-1+log10(wbc), family = Gamma(log), data = leuk)
+> leuk.diag <- glm.diag(leuk.mod)
+> glm.diag.plots(leuk.mod, leuk.diag)
+> 
+> 
+> 
+> cleanEx()
+> nameEx("jack.after.boot")
+> ### * jack.after.boot
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: jack.after.boot
+> ### Title: Jackknife-after-Bootstrap Plots
+> ### Aliases: jack.after.boot
+> ### Keywords: hplot nonparametric
+> 
+> ### ** Examples
+> 
+> #  To draw the jackknife-after-bootstrap plot for the head size data as in
+> #  Example 3.24 of Davison and Hinkley (1997)
+> frets.fun <- function(data, i) {
++     pcorr <- function(x) { 
++     #  Function to find the correlations and partial correlations between
++     #  the four measurements.
++          v <- cor(x)
++          v.d <- diag(var(x))
++          iv <- solve(v)
++          iv.d <- sqrt(diag(iv))
++          iv <- - diag(1/iv.d) %*% iv %*% diag(1/iv.d)
++          q <- NULL
++          n <- nrow(v)
++          for (i in 1:(n-1)) 
++               q <- rbind( q, c(v[i, 1:i], iv[i,(i+1):n]) )
++          q <- rbind( q, v[n, ] )
++          diag(q) <- round(diag(q))
++          q
++     }
++     d <- data[i, ]
++     v <- pcorr(d)
++     c(v[1,], v[2,], v[3,], v[4,])
++ }
+> frets.boot <- boot(log(as.matrix(frets)), frets.fun, R = 999)
+> #  we will concentrate on the partial correlation between head breadth
+> #  for the first son and head length for the second.  This is the 7th
+> #  element in the output of frets.fun so we set index = 7
+> jack.after.boot(frets.boot, useJ = FALSE, stinf = FALSE, index = 7)
+> 
+> 
+> 
+> cleanEx()
+> nameEx("k3.linear")
+> ### * k3.linear
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: k3.linear
+> ### Title: Linear Skewness Estimate
+> ### Aliases: k3.linear
+> ### Keywords: nonparametric
+> 
+> ### ** Examples
+> 
+> #  To estimate the skewness of the ratio of means for the city data.
+> ratio <- function(d, w) sum(d$x * w)/sum(d$u * w)
+> k3.linear(empinf(data = city, statistic = ratio))
+[1] 7.831452e-05
+> 
+> 
+> 
+> cleanEx()
+> nameEx("linear.approx")
+> ### * linear.approx
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: linear.approx
+> ### Title: Linear Approximation of Bootstrap Replicates
+> ### Aliases: linear.approx
+> ### Keywords: nonparametric
+> 
+> ### ** Examples
+> 
+> # Using the city data let us look at the linear approximation to the 
+> # ratio statistic and its logarithm. We compare these with the 
+> # corresponding plots for the bigcity data 
+> 
+> ratio <- function(d, w) sum(d$x * w)/sum(d$u * w)
+> city.boot <- boot(city, ratio, R = 499, stype = "w")
+> bigcity.boot <- boot(bigcity, ratio, R = 499, stype = "w")
+> op <- par(pty = "s", mfrow = c(2, 2))
+> 
+> # The first plot is for the city data ratio statistic.
+> city.lin1 <- linear.approx(city.boot)
+> lim <- range(c(city.boot$t,city.lin1))
+> plot(city.boot$t, city.lin1, xlim = lim, ylim = lim, 
++      main = "Ratio; n=10", xlab = "t*", ylab = "tL*")
+> abline(0, 1)
+> 
+> # Now for the log of the ratio statistic for the city data.
+> city.lin2 <- linear.approx(city.boot,t0 = log(city.boot$t0), 
++                            t = log(city.boot$t))
+> lim <- range(c(log(city.boot$t),city.lin2))
+> plot(log(city.boot$t), city.lin2, xlim = lim, ylim = lim, 
++      main = "Log(Ratio); n=10", xlab = "t*", ylab = "tL*")
+> abline(0, 1)
+> 
+> # The ratio statistic for the bigcity data.
+> bigcity.lin1 <- linear.approx(bigcity.boot)
+> lim <- range(c(bigcity.boot$t,bigcity.lin1))
+> plot(bigcity.lin1, bigcity.boot$t, xlim = lim, ylim = lim,
++      main = "Ratio; n=49", xlab = "t*", ylab = "tL*")
+> abline(0, 1)
+> 
+> # Finally the log of the ratio statistic for the bigcity data.
+> bigcity.lin2 <- linear.approx(bigcity.boot,t0 = log(bigcity.boot$t0), 
++                               t = log(bigcity.boot$t))
+> lim <- range(c(log(bigcity.boot$t),bigcity.lin2))
+> plot(bigcity.lin2, log(bigcity.boot$t), xlim = lim, ylim = lim,
++      main = "Log(Ratio); n=49", xlab = "t*", ylab = "tL*")
+> abline(0, 1)
+> 
+> par(op)
+> 
+> 
+> 
+> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
+> cleanEx()
+> nameEx("lines.saddle.distn")
+> ### * lines.saddle.distn
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: lines.saddle.distn
+> ### Title: Add a Saddlepoint Approximation to a Plot
+> ### Aliases: lines.saddle.distn
+> ### Keywords: aplot smooth nonparametric
+> 
+> ### ** Examples
+> 
+> # In this example we show how a plot such as that in Figure 9.9 of
+> # Davison and Hinkley (1997) may be produced.  Note the large number of
+> # bootstrap replicates required in this example.
+> expdata <- rexp(12)
+> vfun <- function(d, i) {
++      n <- length(d)
++      (n-1)/n*var(d[i])
++ }
+> exp.boot <- boot(expdata,vfun, R = 9999)
+> exp.L <- (expdata - mean(expdata))^2 - exp.boot$t0
+> exp.tL <- linear.approx(exp.boot, L = exp.L)
+> hist(exp.tL, nclass = 50, probability = TRUE)
+> exp.t0 <- c(0, sqrt(var(exp.boot$t)))
+> exp.sp <- saddle.distn(A = exp.L/12,wdist = "m", t0 = exp.t0)
+> 
+> # The saddlepoint approximation in this case is to the density of
+> # t-t0 and so t0 must be added for the plot.
+> lines(exp.sp, h = function(u, t0) u+t0, J = function(u, t0) 1,
++       t0 = exp.boot$t0)
+> 
+> 
+> 
+> cleanEx()
+> nameEx("norm.ci")
+> ### * norm.ci
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: norm.ci
+> ### Title: Normal Approximation Confidence Intervals
+> ### Aliases: norm.ci
+> ### Keywords: htest
+> 
+> ### ** Examples
+> 
+> #  In Example 5.1 of Davison and Hinkley (1997), normal approximation 
+> #  confidence intervals are found for the air-conditioning data.
+> air.mean <- mean(aircondit$hours)
+> air.n <- nrow(aircondit)
+> air.v <- air.mean^2/air.n
+> norm.ci(t0 = air.mean, var.t0 = air.v)
+     conf                  
+[1,] 0.95 46.93055 169.2361
+> exp(norm.ci(t0 = log(air.mean), var.t0 = 1/air.n)[2:3])
+[1]  61.38157 190.31782
+> 
+> # Now a more complicated example - the ratio estimate for the city data.
+> ratio <- function(d, w)
++      sum(d$x * w)/sum(d$u *w)
+> city.v <- var.linear(empinf(data = city, statistic = ratio))
+> norm.ci(t0 = ratio(city,rep(0.1,10)), var.t0 = city.v)
+     conf                  
+[1,] 0.95 1.167046 1.873579
+> 
+> 
+> 
+> cleanEx()
+> nameEx("plot.boot")
+> ### * plot.boot
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: plot.boot
+> ### Title: Plots of the Output of a Bootstrap Simulation
+> ### Aliases: plot.boot
+> ### Keywords: hplot nonparametric
+> 
+> ### ** Examples
+> 
+> # We fit an exponential model to the air-conditioning data and use
+> # that for a parametric bootstrap.  Then we look at plots of the
+> # resampled means.
+> air.rg <- function(data, mle) rexp(length(data), 1/mle)
+> 
+> air.boot <- boot(aircondit$hours, mean, R = 999, sim = "parametric",
++                  ran.gen = air.rg, mle = mean(aircondit$hours))
+> plot(air.boot)
+> 
+> # In the difference of means example for the last two series of the 
+> # gravity data
+> grav1 <- gravity[as.numeric(gravity[, 2]) >= 7, ]
+> grav.fun <- function(dat, w) {
++      strata <- tapply(dat[, 2], as.numeric(dat[, 2]))
++      d <- dat[, 1]
++      ns <- tabulate(strata)
++      w <- w/tapply(w, strata, sum)[strata]
++      mns <- as.vector(tapply(d * w, strata, sum)) # drop names
++      mn2 <- tapply(d * d * w, strata, sum)
++      s2hat <- sum((mn2 - mns^2)/ns)
++      c(mns[2] - mns[1], s2hat)
++ }
+> 
+> grav.boot <- boot(grav1, grav.fun, R = 499, stype = "w", strata = grav1[, 2])
+> plot(grav.boot)
+> # now suppose we want to look at the studentized differences.
+> grav.z <- (grav.boot$t[, 1]-grav.boot$t0[1])/sqrt(grav.boot$t[, 2])
+> plot(grav.boot, t = grav.z, t0 = 0)
+> 
+> # In this example we look at the one of the partial correlations for the
+> # head dimensions in the dataset frets.
+> frets.fun <- function(data, i) {
++     pcorr <- function(x) { 
++     #  Function to find the correlations and partial correlations between
++     #  the four measurements.
++          v <- cor(x)
++          v.d <- diag(var(x))
++          iv <- solve(v)
++          iv.d <- sqrt(diag(iv))
++          iv <- - diag(1/iv.d) %*% iv %*% diag(1/iv.d)
++          q <- NULL
++          n <- nrow(v)
++          for (i in 1:(n-1)) 
++               q <- rbind( q, c(v[i, 1:i], iv[i,(i+1):n]) )
++          q <- rbind( q, v[n, ] )
++          diag(q) <- round(diag(q))
++          q
++     }
++     d <- data[i, ]
++     v <- pcorr(d)
++     c(v[1,], v[2,], v[3,], v[4,])
++ }
+> frets.boot <- boot(log(as.matrix(frets)),  frets.fun,  R = 999)
+> plot(frets.boot, index = 7, jack = TRUE, stinf = FALSE, useJ = FALSE)
+> 
+> 
+> 
+> cleanEx()
+> nameEx("saddle")
+> ### * saddle
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: saddle
+> ### Title: Saddlepoint Approximations for Bootstrap Statistics
+> ### Aliases: saddle
+> ### Keywords: smooth nonparametric
+> 
+> ### ** Examples
+> 
+> # To evaluate the bootstrap distribution of the mean failure time of 
+> # air-conditioning equipment at 80 hours
+> saddle(A = aircondit$hours/12, u = 80)
+$spa
+       pdf        cdf 
+0.01005866 0.24446677 
+
+$zeta.hat
+[1] -0.02580078
+
+> 
+> # Alternatively this can be done using a conditional poisson
+> saddle(A = cbind(aircondit$hours/12,1), u = c(80, 12),
++        wdist = "p", type = "cond")
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 10.090909
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.909091
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 10.090909
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.909091
+$spa
+       pdf        cdf 
+0.01005943 0.24438736 
+
+$zeta.hat
+         A1          A2 
+-0.02580805  0.89261577 
+
+$zeta2.hat
+[1] 0.6931472
+
+> 
+> # To use the Lugananni-Rice approximation to this
+> saddle(A = cbind(aircondit$hours/12,1), u = c(80, 12),
++        wdist = "p", type = "cond", 
++        LR = TRUE)
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 10.090909
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.909091
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 10.090909
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.909091
+$spa
+       pdf        cdf 
+0.01005943 0.24447362 
+
+$zeta.hat
+         A1          A2 
+-0.02580805  0.89261577 
+
+$zeta2.hat
+[1] 0.6931472
+
+> 
+> # Example 9.16 of Davison and Hinkley (1997) calculates saddlepoint 
+> # approximations to the distribution of the ratio statistic for the
+> # city data. Since the statistic is not in itself a linear combination
+> # of random Variables, its distribution cannot be found directly.  
+> # Instead the statistic is expressed as the solution to a linear 
+> # estimating equation and hence its distribution can be found.  We
+> # get the saddlepoint approximation to the pdf and cdf evaluated at
+> # t = 1.25 as follows.
+> jacobian <- function(dat,t,zeta)
++ {
++      p <- exp(zeta*(dat$x-t*dat$u))
++      abs(sum(dat$u*p)/sum(p))
++ }
+> city.sp1 <- saddle(A = city$x-1.25*city$u, u = 0)
+> city.sp1$spa[1] <- jacobian(city, 1.25, city.sp1$zeta.hat) * city.sp1$spa[1]
+> city.sp1
+$spa
+       pdf        cdf 
+0.05565040 0.02436306 
+
+$zeta.hat
+[1] -0.02435547
+
+> 
+> 
+> 
+> cleanEx()
+> nameEx("saddle.distn")
+> ### * saddle.distn
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: saddle.distn
+> ### Title: Saddlepoint Distribution Approximations for Bootstrap Statistics
+> ### Aliases: saddle.distn
+> ### Keywords: nonparametric smooth dplot
+> 
+> ### ** Examples
+> 
+> #  The bootstrap distribution of the mean of the air-conditioning 
+> #  failure data: fails to find value on R (and probably on S too)
+> air.t0 <- c(mean(aircondit$hours), sqrt(var(aircondit$hours)/12))
+> ## Not run: saddle.distn(A = aircondit$hours/12, t0 = air.t0)
+> 
+> # alternatively using the conditional poisson
+> saddle.distn(A = cbind(aircondit$hours/12, 1), u = 12, wdist = "p",
++              type = "cond", t0 = air.t0)
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 11.344718
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.655282
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 11.344718
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.655282
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 11.832240
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.167760
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 11.832240
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.167760
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.444538
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.555462
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.444538
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.555462
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.494449
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.505551
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.494449
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.505551
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.594269
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 10.405731
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.594269
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 10.405731
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.544359
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 8.455641
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.544359
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 8.455641
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.519404
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.480596
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.519404
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.480596
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 11.561394
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.438606
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 11.561394
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.438606
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 11.290549
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.709451
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 11.290549
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.709451
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 11.019703
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.980297
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 11.019703
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.980297
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 10.748857
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.251143
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 10.748857
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.251143
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 10.478011
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.521989
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 10.478011
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.521989
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 10.207165
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.792835
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 10.207165
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.792835
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 9.936320
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.063680
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 9.936320
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.063680
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 9.665474
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.334526
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 9.665474
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.334526
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 8.785225
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.214775
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 8.785225
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.214775
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 8.175822
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.824178
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 8.175822
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.824178
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.566419
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.433581
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.566419
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.433581
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.957016
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.042984
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.957016
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.042984
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.347613
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.652387
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.347613
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.652387
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.738210
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.261790
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.738210
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.261790
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.128807
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.871193
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.128807
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.871193
+
+Saddlepoint Distribution Approximations
+
+Call : 
+saddle.distn(A = cbind(aircondit$hours/12, 1), u = 12, wdist = "p", 
+    type = "cond", t0 = air.t0)
+
+Quantiles of the Distribution
+
+ 0.1%       27.4 
+ 0.5%       35.4 
+ 1.0%       39.7 
+ 2.5%       46.7 
+ 5.0%       53.5 
+10.0%       62.5 
+20.0%       75.3 
+50.0%      104.5 
+80.0%      139.0 
+90.0%      158.8 
+95.0%      175.9 
+97.5%      191.2 
+99.0%      209.6 
+99.5%      222.4 
+99.9%      249.5
+
+Smoothing spline used 20 points in the range 9.8 to 304.7.
+> 
+> # Distribution of the ratio of a sample of size 10 from the bigcity 
+> # data, taken from Example 9.16 of Davison and Hinkley (1997).
+> ratio <- function(d, w) sum(d$x *w)/sum(d$u * w)
+> city.v <- var.linear(empinf(data = city, statistic = ratio))
+> bigcity.t0 <- c(mean(bigcity$x)/mean(bigcity$u), sqrt(city.v))
+> Afn <- function(t, data) cbind(data$x - t*data$u, 1)
+> ufn <- function(t, data) c(0,10)
+> saddle.distn(A = Afn, u = ufn, wdist = "b", type = "cond",
++              t0 = bigcity.t0, data = bigcity)
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning: glm.fit: fitted probabilities numerically 0 or 1 occurred
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+Warning in eval(expr, envir, enclos) :
+  non-integer counts in a binomial glm!
+
+Saddlepoint Distribution Approximations
+
+Call : 
+saddle.distn(A = Afn, u = ufn, wdist = "b", type = "cond", t0 = bigcity.t0, 
+    data = bigcity)
+
+Quantiles of the Distribution
+
+ 0.1%      1.070 
+ 0.5%      1.092 
+ 1.0%      1.104 
+ 2.5%      1.122 
+ 5.0%      1.139 
+10.0%      1.158 
+20.0%      1.184 
+50.0%      1.237 
+80.0%      1.304 
+90.0%      1.348 
+95.0%      1.392 
+97.5%      1.436 
+99.0%      1.494 
+99.5%      1.537 
+99.9%      1.636
+
+Smoothing spline used 20 points in the range 1.014 to 1.96.
+> 
+> # From Example 9.16 of Davison and Hinkley (1997) again, we find the 
+> # conditional distribution of the ratio given the sum of city$u.
+> Afn <- function(t, data) cbind(data$x-t*data$u, data$u, 1)
+> ufn <- function(t, data) c(0, sum(data$u), 10)
+> city.t0 <- c(mean(city$x)/mean(city$u), sqrt(city.v))
+> saddle.distn(A = Afn, u = ufn, wdist = "p", type = "cond", t0 = city.t0, 
++              data = city)
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.866400
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 8.511350
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.622251
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.866400
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 8.511350
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.622251
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.210844
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.107208
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.681949
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.210844
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.107208
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.681949
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.038622
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.809279
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.152100
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.038622
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.809279
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.152100
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.452511
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.160314
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.387175
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.452511
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.160314
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.387175
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.159455
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.835832
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.004713
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.159455
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.835832
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.004713
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.155629
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.115412
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.728960
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.155629
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.115412
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.728960
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.205022
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.133273
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.661705
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.205022
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.133273
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.661705
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.722845
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.033105
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.244049
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.722845
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.033105
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.244049
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.787431
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.388294
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.824275
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.787431
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.388294
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.824275
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.415407
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.940756
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.643837
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.415407
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.940756
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.643837
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.043383
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.493218
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.463399
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.043383
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.493218
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.463399
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.671359
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.045680
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.282961
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.671359
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.045680
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.282961
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.299336
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.598142
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.102523
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.299336
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.598142
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.102523
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.433935
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.409277
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.156788
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.433935
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.409277
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.156788
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.360158
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.271008
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.368834
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.360158
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.271008
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.368834
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.319252
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.639889
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.040859
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.319252
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.639889
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.040859
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.278346
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.008770
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.712884
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.278346
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.008770
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 4.712884
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.237440
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.377650
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.384909
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.237440
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 1.377650
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 5.384909
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.196534
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.746531
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.056935
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.196534
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.746531
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.056935
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.155629
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.115412
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.728960
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 3.155629
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.115412
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.728960
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.734728
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.299661
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.965612
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.734728
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.299661
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 6.965612
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.228786
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.666383
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.104831
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 2.228786
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 0.666383
+Warning in dpois(y, mu, log = TRUE) : non-integer x = 7.104831
+
+Saddlepoint Distribution Approximations
+
+Call : 
+saddle.distn(A = Afn, u = ufn, wdist = "p", type = "cond", t0 = city.t0, 
+    data = city)
+
+Quantiles of the Distribution
+
+ 0.1%      1.216 
+ 0.5%      1.236 
+ 1.0%      1.248 
+ 2.5%      1.272 
+ 5.0%      1.301 
+10.0%      1.340 
+20.0%      1.393 
+50.0%      1.502 
+80.0%      1.618 
+90.0%      1.680 
+95.0%      1.732 
+97.5%      1.777 
+99.0%      1.830 
+99.5%      1.866 
+99.9%      1.938
+
+Smoothing spline used 20 points in the range 1.182 to 2.061.
+> 
+> 
+> 
+> cleanEx()
+> nameEx("simplex")
+> ### * simplex
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: simplex
+> ### Title: Simplex Method for Linear Programming Problems
+> ### Aliases: simplex
+> ### Keywords: optimize
+> 
+> ### ** Examples
+> 
+> # This example is taken from Exercise 7.5 of Gill, Murray and Wright (1991).
+> enj <- c(200, 6000, 3000, -200)
+> fat <- c(800, 6000, 1000, 400)
+> vitx <- c(50, 3, 150, 100)
+> vity <- c(10, 10, 75, 100)
+> vitz <- c(150, 35, 75, 5)
+> simplex(a = enj, A1 = fat, b1 = 13800, A2 = rbind(vitx, vity, vitz),
++         b2 = c(600, 300, 550), maxi = TRUE)
+
+Linear Programming Results
+
+Call : simplex(a = enj, A1 = fat, b1 = 13800, A2 = rbind(vitx, vity, 
+    vitz), b2 = c(600, 300, 550), maxi = TRUE)
+
+Maximization Problem with Objective Function Coefficients
+  x1   x2   x3   x4 
+ 200 6000 3000 -200 
+
+
+Optimal solution has the following values
+  x1   x2   x3   x4 
+ 0.0  0.0 13.8  0.0 
+The optimal value of the objective  function is 41400.
+> 
+> 
+> 
+> cleanEx()
+> nameEx("smooth.f")
+> ### * smooth.f
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: smooth.f
+> ### Title: Smooth Distributions on Data Points
+> ### Aliases: smooth.f
+> ### Keywords: smooth nonparametric
+> 
+> ### ** Examples
+> 
+> # Example 9.8 of Davison and Hinkley (1997) requires tilting the resampling
+> # distribution of the studentized statistic to be centred at the observed
+> # value of the test statistic 1.84.  In the book exponential tilting was used
+> # but it is also possible to use smooth.f.
+> grav1 <- gravity[as.numeric(gravity[, 2]) >= 7, ]
+> grav.fun <- function(dat, w, orig) {
++      strata <- tapply(dat[, 2], as.numeric(dat[, 2]))
++      d <- dat[, 1]
++      ns <- tabulate(strata)
++      w <- w/tapply(w, strata, sum)[strata]
++      mns <- as.vector(tapply(d * w, strata, sum)) # drop names
++      mn2 <- tapply(d * d * w, strata, sum)
++      s2hat <- sum((mn2 - mns^2)/ns)
++      c(mns[2] - mns[1], s2hat, (mns[2]-mns[1]-orig)/sqrt(s2hat))
++ }
+> grav.z0 <- grav.fun(grav1, rep(1, 26), 0)
+> grav.boot <- boot(grav1, grav.fun, R = 499, stype = "w", 
++                   strata = grav1[, 2], orig = grav.z0[1])
+> grav.sm <- smooth.f(grav.z0[3], grav.boot, index = 3)
+> 
+> # Now we can run another bootstrap using these weights
+> grav.boot2 <- boot(grav1, grav.fun, R = 499, stype = "w", 
++                    strata = grav1[, 2], orig = grav.z0[1],
++                    weights = grav.sm)
+> 
+> # Estimated p-values can be found from these as follows
+> mean(grav.boot$t[, 3] >= grav.z0[3])
+[1] 0.01402806
+> imp.prob(grav.boot2, t0 = -grav.z0[3], t = -grav.boot2$t[, 3])
+$t0
+[1] -1.840118
+
+$raw
+[1] 0.02163715
+
+$rat
+[1] 0.02099078
+
+$reg
+[1] 0.02174393
+
+> 
+> 
+> # Note that for the importance sampling probability we must 
+> # multiply everything by -1 to ensure that we find the correct
+> # probability.  Raw resampling is not reliable for probabilities
+> # greater than 0.5. Thus
+> 1 - imp.prob(grav.boot2, index = 3, t0 = grav.z0[3])$raw
+[1] -0.009155757
+> # can give very strange results (negative probabilities).
+> 
+> 
+> 
+> cleanEx()
+> nameEx("tilt.boot")
+> ### * tilt.boot
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: tilt.boot
+> ### Title: Non-parametric Tilted Bootstrap
+> ### Aliases: tilt.boot
+> ### Keywords: nonparametric
+> 
+> ### ** Examples
+> 
+> # Note that these examples can take a while to run.
+> 
+> # Example 9.9 of Davison and Hinkley (1997).
+> grav1 <- gravity[as.numeric(gravity[,2]) >= 7, ]
+> grav.fun <- function(dat, w, orig) {
++      strata <- tapply(dat[, 2], as.numeric(dat[, 2]))
++      d <- dat[, 1]
++      ns <- tabulate(strata)
++      w <- w/tapply(w, strata, sum)[strata]
++      mns <- as.vector(tapply(d * w, strata, sum)) # drop names
++      mn2 <- tapply(d * d * w, strata, sum)
++      s2hat <- sum((mn2 - mns^2)/ns)
++      c(mns[2]-mns[1],s2hat,(mns[2]-mns[1]-orig)/sqrt(s2hat))
++ }
+> grav.z0 <- grav.fun(grav1, rep(1, 26), 0)
+> tilt.boot(grav1, grav.fun, R = c(249, 375, 375), stype = "w", 
++           strata = grav1[,2], tilt = TRUE, index = 3, orig = grav.z0[1]) 
+
+TILTED BOOTSTRAP
+
+Exponential tilting used
+First 249 replicates untilted,
+Next 375 replicates tilted to -2.821,
+Next 375 replicates tilted to 1.636.
+
+Call:
+tilt.boot(data = grav1, statistic = grav.fun, R = c(249, 375, 
+    375), stype = "w", strata = grav1[, 2], tilt = TRUE, index = 3, 
+    orig = grav.z0[1])
+
+
+Bootstrap Statistics :
+    original     bias    std. error
+t1* 2.846154 -0.4487564    2.500644
+t2* 2.392353 -0.3221155    1.187574
+t3* 0.000000 -0.8862944    2.208945
+> 
+> 
+> #  Example 9.10 of Davison and Hinkley (1997) requires a balanced 
+> #  importance resampling bootstrap to be run.  In this example we 
+> #  show how this might be run.  
+> acme.fun <- function(data, i, bhat) {
++      d <- data[i,]
++      n <- nrow(d)
++      d.lm <- glm(d$acme~d$market)
++      beta.b <- coef(d.lm)[2]
++      d.diag <- boot::glm.diag(d.lm)
++      SSx <- (n-1)*var(d$market)
++      tmp <- (d$market-mean(d$market))*d.diag$res*d.diag$sd
++      sr <- sqrt(sum(tmp^2))/SSx
++      c(beta.b, sr, (beta.b-bhat)/sr)
++ }
+> acme.b <- acme.fun(acme, 1:nrow(acme), 0)
+> acme.boot1 <- tilt.boot(acme, acme.fun, R = c(499, 250, 250), 
++                         stype = "i", sim = "balanced", alpha = c(0.05, 0.95), 
++                         tilt = TRUE, index = 3, bhat = acme.b[1])
+> 
+> 
+> 
+> cleanEx()
+> nameEx("tsboot")
+> ### * tsboot
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: tsboot
+> ### Title: Bootstrapping of Time Series
+> ### Aliases: tsboot ts.return
+> ### Keywords: nonparametric ts
+> 
+> ### ** Examples
+> 
+> lynx.fun <- function(tsb) {
++      ar.fit <- ar(tsb, order.max = 25)
++      c(ar.fit$order, mean(tsb), tsb)
++ }
+> 
+> # the stationary bootstrap with mean block length 20
+> lynx.1 <- tsboot(log(lynx), lynx.fun, R = 99, l = 20, sim = "geom")
+> 
+> # the fixed block bootstrap with length 20
+> lynx.2 <- tsboot(log(lynx), lynx.fun, R = 99, l = 20, sim = "fixed")
+> 
+> # Now for model based resampling we need the original model
+> # Note that for all of the bootstraps which use the residuals as their
+> # data, we set orig.t to FALSE since the function applied to the residual
+> # time series will be meaningless.
+> lynx.ar <- ar(log(lynx))
+> lynx.model <- list(order = c(lynx.ar$order, 0, 0), ar = lynx.ar$ar)
+> lynx.res <- lynx.ar$resid[!is.na(lynx.ar$resid)]
+> lynx.res <- lynx.res - mean(lynx.res)
+> 
+> lynx.sim <- function(res,n.sim, ran.args) {
++      # random generation of replicate series using arima.sim 
++      rg1 <- function(n, res) sample(res, n, replace = TRUE)
++      ts.orig <- ran.args$ts
++      ts.mod <- ran.args$model
++      mean(ts.orig)+ts(arima.sim(model = ts.mod, n = n.sim,
++                       rand.gen = rg1, res = as.vector(res)))
++ }
+> 
+> lynx.3 <- tsboot(lynx.res, lynx.fun, R = 99, sim = "model", n.sim = 114,
++                  orig.t = FALSE, ran.gen = lynx.sim, 
++                  ran.args = list(ts = log(lynx), model = lynx.model))
+> 
+> #  For "post-blackening" we need to define another function
+> lynx.black <- function(res, n.sim, ran.args) {
++      ts.orig <- ran.args$ts
++      ts.mod <- ran.args$model
++      mean(ts.orig) + ts(arima.sim(model = ts.mod,n = n.sim,innov = res))
++ }
+> 
+> # Now we can run apply the two types of block resampling again but this
+> # time applying post-blackening.
+> lynx.1b <- tsboot(lynx.res, lynx.fun, R = 99, l = 20, sim = "fixed",
++                   n.sim = 114, orig.t = FALSE, ran.gen = lynx.black, 
++                   ran.args = list(ts = log(lynx), model = lynx.model))
+> 
+> lynx.2b <- tsboot(lynx.res, lynx.fun, R = 99, l = 20, sim = "geom",
++                   n.sim = 114, orig.t = FALSE, ran.gen = lynx.black, 
++                   ran.args = list(ts = log(lynx), model = lynx.model))
+> 
+> # To compare the observed order of the bootstrap replicates we
+> # proceed as follows.
+> table(lynx.1$t[, 1])
+
+ 2  3  4  5  7  8 10 11 12 13 14 
+16 19 38  4  6  3  1  9  1  1  1 
+> table(lynx.1b$t[, 1])
+
+ 2  3  4  5  6  7  8 11 12 14 15 
+ 6  2 22  6  4  6  3 40  7  1  2 
+> table(lynx.2$t[, 1])
+
+ 2  3  4  5  6  7  8 10 11 13 
+12 18 51  5  2  3  1  2  4  1 
+> table(lynx.2b$t[, 1])
+
+ 2  3  4  5  6  7  8  9 10 11 12 13 15 21 
+ 2  1 21  4  1 10  4  1  3 45  3  1  2  1 
+> table(lynx.3$t[, 1])
+
+ 2  3  4  5  6  7  8  9 10 11 12 13 14 15 
+ 4  8 11  2  1  4  2  2  2 54  6  1  1  1 
+> # Notice that the post-blackened and model-based bootstraps preserve
+> # the true order of the model (11) in many more cases than the others.
+> 
+> 
+> 
+> cleanEx()
+> nameEx("var.linear")
+> ### * var.linear
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: var.linear
+> ### Title: Linear Variance Estimate
+> ### Aliases: var.linear
+> ### Keywords: nonparametric
+> 
+> ### ** Examples
+> 
+> #  To estimate the variance of the ratio of means for the city data.
+> ratio <- function(d,w) sum(d$x * w)/sum(d$u * w)
+> var.linear(empinf(data = city, statistic = ratio))
+[1] 0.03248701
+> 
+> 
+> 
+> ### * <FOOTER>
+> ###
+> options(digits = 7L)
+> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
+Time elapsed:  29.074 0.258 29.474 0 0 
+> grDevices::dev.off()
+null device 
+          1 
+> ###
+> ### Local variables: ***
+> ### mode: outline-minor ***
+> ### outline-regexp: "\\(> \\)?### [*]+" ***
+> ### End: ***
+> quit('no')
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/DESCRIPTION	(revision 2476)
@@ -0,0 +1,28 @@
+Package: boot
+Priority: recommended
+Version: 1.3-18
+Date: 2016-02-22
+Authors@R: c(person("Angelo", "Canty", role = "aut",
+	             email = "cantya@mcmaster.ca"),
+             person("Brian", "Ripley", role = c("aut", "trl", "cre"),
+                    email = "ripley@stats.ox.ac.uk",
+		    comment = "author of parallel support"))
+Maintainer: Brian Ripley <ripley@stats.ox.ac.uk>
+Note: Maintainers are not available to give advice on using a package
+        they did not author.
+Description: Functions and datasets for bootstrapping from the
+  book "Bootstrap Methods and Their Application" by A. C. Davison and 
+  D. V. Hinkley (1997, CUP), originally written by Angelo Canty for S.
+Title: Bootstrap Functions (Originally by Angelo Canty for S)
+Depends: R (>= 3.0.0), graphics, stats
+Suggests: MASS, survival
+LazyData: yes
+ByteCompile: yes
+License: Unlimited
+NeedsCompilation: no
+Packaged: 2016-02-22 17:13:17 UTC; ripley
+Author: Angelo Canty [aut],
+  Brian Ripley [aut, trl, cre] (author of parallel support)
+Repository: CRAN
+Date/Publication: 2016-02-23 10:37:54
+Built: R 3.3.2; ; 2016-10-31 14:35:40 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/bd.q
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/bd.q	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/bd.q	(revision 2476)
@@ -0,0 +1,1039 @@
+# script to make cd4.nested
+library(boot)
+data(cd4)
+temp <- boot(cd4, nested.corr, R=1, stype="w", t0=corr(cd4), M=9)
+tempcl <- temp$call
+tempcl$R <- 999
+tempcl$M <- 249
+junk <- scan(file="",list(0,0),nmax=999*2)
+  1.144 0.832
+  1.070 0.828
+ -0.783 0.164
+ -0.867 0.176
+  0.627 0.700
+  4.499 0.904
+  1.415 0.844
+ -0.457 0.324
+  1.270 0.868
+  1.479 0.860
+ -0.772 0.192
+ -0.587 0.288
+ -1.805 0.040
+  0.080 0.548
+  0.693 0.732
+ -1.321 0.072
+  0.313 0.624
+  0.751 0.772
+ -0.868 0.152
+ -0.365 0.348
+  0.386 0.640
+ -0.158 0.476
+  0.561 0.660
+ -0.087 0.412
+  0.962 0.724
+  1.432 0.892
+ -0.151 0.388
+  0.420 0.604
+  1.055 0.792
+ -1.209 0.068
+ -1.072 0.128
+  0.104 0.544
+ -0.225 0.384
+  0.800 0.764
+  0.477 0.652
+  1.089 0.732
+ -0.978 0.164
+  1.664 0.812
+  2.055 0.908
+ -0.365 0.316
+  0.697 0.740
+  3.514 0.948
+ -0.921 0.120
+  1.076 0.760
+ -0.486 0.300
+  0.137 0.524
+ -0.976 0.120
+ -0.035 0.496
+ -1.607 0.064
+  2.672 0.960
+  0.001 0.412
+  0.249 0.596
+ -0.471 0.308
+  0.541 0.624
+ -0.137 0.440
+  1.047 0.816
+ -0.175 0.420
+ -0.689 0.240
+ -0.208 0.412
+ -1.574 0.064
+  0.073 0.520
+ -1.192 0.104
+  3.359 0.980
+ -0.041 0.428
+ -0.506 0.332
+  0.762 0.748
+ -0.735 0.232
+  1.372 0.856
+  0.109 0.560
+ -1.611 0.064
+ -0.798 0.200
+ -0.534 0.244
+ -0.617 0.236
+  0.671 0.724
+ -1.500 0.032
+ -0.302 0.368
+ -0.793 0.240
+  2.322 0.956
+  0.297 0.572
+  2.979 0.964
+  0.144 0.520
+  0.231 0.556
+  1.462 0.888
+  0.843 0.728
+ -0.508 0.308
+ -0.637 0.196
+  1.269 0.800
+  0.534 0.652
+ -0.342 0.324
+  0.164 0.456
+ -1.023 0.212
+  0.611 0.712
+  0.329 0.576
+  2.476 0.920
+ -0.198 0.428
+  0.154 0.520
+ -0.161 0.364
+  0.198 0.520
+  0.502 0.684
+  1.138 0.848
+ -0.266 0.452
+ -1.077 0.080
+  0.340 0.540
+  0.015 0.480
+  0.309 0.608
+  0.968 0.788
+  0.589 0.648
+ -0.869 0.192
+  0.655 0.664
+ -1.566 0.036
+ -1.521 0.060
+  0.273 0.608
+ -1.270 0.072
+  2.160 0.904
+ -0.855 0.252
+ -1.121 0.108
+  0.834 0.744
+  0.944 0.732
+  0.342 0.620
+  1.105 0.812
+ -0.862 0.152
+  0.562 0.748
+ -1.021 0.092
+ -0.569 0.288
+ -0.272 0.328
+  0.289 0.612
+  2.235 0.916
+ -0.595 0.280
+ -0.487 0.264
+ -0.755 0.184
+  0.429 0.592
+ -1.712 0.064
+ -1.945 0.112
+  0.538 0.660
+ -0.285 0.404
+  0.280 0.564
+ -0.442 0.320
+  0.936 0.744
+  0.101 0.576
+  2.294 0.884
+ -0.702 0.188
+ -0.281 0.356
+ -0.790 0.208
+  0.307 0.628
+  1.904 0.908
+ -0.663 0.292
+  0.879 0.752
+ -0.930 0.172
+ -0.014 0.412
+  0.546 0.636
+  0.199 0.536
+ -0.996 0.164
+ -0.615 0.252
+ -0.377 0.372
+  3.053 0.884
+ -0.233 0.452
+  0.127 0.468
+ -0.404 0.328
+ -1.082 0.200
+  1.277 0.852
+ -0.837 0.232
+  1.921 0.888
+  1.175 0.836
+ -0.238 0.388
+ -0.361 0.344
+ -0.202 0.308
+  3.016 0.964
+ -1.572 0.036
+  0.438 0.620
+ -0.057 0.452
+  1.577 0.844
+ -0.501 0.300
+ -0.537 0.268
+  1.599 0.884
+ -0.531 0.244
+ -1.506 0.028
+ -0.093 0.476
+  1.510 0.880
+  0.404 0.656
+  0.045 0.548
+ -0.821 0.152
+  1.358 0.788
+ -0.307 0.316
+ -1.460 0.044
+ -0.380 0.312
+ -0.248 0.352
+ -0.794 0.152
+  0.107 0.516
+  0.533 0.664
+  0.412 0.572
+ -1.150 0.120
+ -0.906 0.180
+ -0.232 0.332
+  0.672 0.640
+  1.328 0.876
+ -0.814 0.228
+ -0.962 0.128
+  0.484 0.672
+ -0.550 0.256
+ -1.716 0.036
+ -0.381 0.248
+  3.577 0.984
+  1.080 0.832
+  0.980 0.748
+  0.248 0.624
+  0.097 0.516
+  1.662 0.848
+ -1.761 0.052
+ -0.983 0.156
+  3.283 0.920
+ -0.243 0.388
+ -1.203 0.116
+  1.693 0.924
+  0.339 0.632
+ -1.719 0.028
+  1.984 0.916
+ -1.866 0.080
+ -0.696 0.228
+  2.025 0.924
+  1.700 0.904
+  0.144 0.512
+ -0.956 0.144
+ -1.384 0.056
+  0.345 0.628
+  0.900 0.728
+  1.201 0.820
+ -0.455 0.276
+ -0.714 0.260
+  0.235 0.572
+ -1.419 0.060
+  1.621 0.912
+  2.301 0.932
+  0.615 0.708
+ -1.681 0.032
+  0.459 0.624
+ -0.178 0.424
+  1.130 0.812
+ -0.708 0.228
+ -1.745 0.036
+  1.357 0.872
+ -0.143 0.444
+ -0.307 0.380
+  2.208 0.944
+ -0.565 0.236
+ -1.516 0.092
+ -1.410 0.056
+ -0.455 0.332
+  0.864 0.716
+ -1.704 0.100
+  2.354 0.964
+ -1.185 0.080
+ -0.787 0.164
+  2.212 0.920
+ -0.449 0.244
+ -1.067 0.124
+ -0.994 0.136
+  3.940 0.988
+ -0.737 0.212
+  1.044 0.812
+  0.282 0.564
+ -0.305 0.380
+ -1.340 0.124
+  0.071 0.508
+  0.373 0.580
+  0.734 0.668
+  1.532 0.808
+ -0.124 0.400
+  0.392 0.584
+  1.058 0.772
+  0.931 0.792
+  1.847 0.940
+  0.824 0.764
+  1.472 0.892
+ -0.251 0.384
+  1.035 0.756
+  0.143 0.540
+ -0.320 0.360
+  2.331 0.960
+ -0.582 0.232
+  0.914 0.668
+ -0.580 0.296
+  2.503 0.868
+  0.033 0.564
+ -0.085 0.400
+  0.383 0.600
+  1.374 0.864
+  0.346 0.568
+  1.878 0.888
+  2.702 0.964
+  2.039 0.864
+  0.390 0.636
+ -0.777 0.248
+  0.288 0.544
+ -1.198 0.096
+ -0.146 0.452
+  1.027 0.812
+ -0.760 0.184
+  0.108 0.500
+ -0.192 0.380
+ -0.195 0.432
+  1.977 0.940
+  1.711 0.904
+ -1.150 0.092
+  1.119 0.832
+  0.949 0.792
+  1.467 0.828
+ -1.438 0.100
+ -0.044 0.404
+  0.505 0.652
+  0.271 0.568
+  0.191 0.556
+  0.498 0.644
+  0.847 0.720
+  0.209 0.580
+ -0.319 0.360
+ -1.090 0.128
+  0.676 0.744
+ -0.912 0.144
+  0.665 0.680
+ -0.783 0.224
+  0.769 0.740
+ -1.674 0.048
+ -0.634 0.248
+  1.131 0.828
+  0.666 0.672
+ -0.451 0.252
+  0.271 0.576
+  0.740 0.684
+  0.090 0.484
+ -0.496 0.252
+ -0.285 0.316
+  1.476 0.860
+  1.497 0.868
+  0.067 0.432
+  0.121 0.508
+  3.213 0.864
+ -0.194 0.408
+  0.692 0.712
+ -0.519 0.252
+ -1.203 0.100
+  0.583 0.688
+  1.374 0.884
+ -0.582 0.248
+ -0.091 0.432
+ -0.143 0.420
+ -0.599 0.260
+  0.432 0.620
+ -1.553 0.084
+  0.539 0.656
+ -0.355 0.344
+  0.294 0.600
+  1.056 0.720
+ -0.980 0.112
+  0.717 0.716
+  0.395 0.632
+ -0.460 0.308
+  0.910 0.792
+  1.136 0.816
+ -0.167 0.400
+ -0.718 0.184
+  0.914 0.812
+  1.916 0.900
+  0.743 0.712
+  0.084 0.476
+ -1.222 0.116
+  1.963 0.900
+ -0.924 0.132
+  0.141 0.572
+  0.051 0.492
+ -0.518 0.268
+ -0.046 0.388
+  0.119 0.460
+  1.606 0.780
+ -1.401 0.040
+  2.684 0.960
+ -0.427 0.344
+   0.726 0.704
+   1.054 0.780
+   0.271 0.564
+   0.352 0.604
+   0.970 0.800
+   1.396 0.832
+   2.602 0.944
+   0.222 0.508
+  -1.753 0.068
+   0.393 0.612
+  -0.567 0.220
+   2.108 0.912
+   0.118 0.492
+   2.223 0.912
+  -0.611 0.312
+   0.148 0.508
+   2.778 0.896
+   0.735 0.708
+   0.525 0.672
+  -0.268 0.300
+  -0.198 0.392
+  -0.197 0.420
+  11.599 0.996
+  -0.329 0.372
+  -0.181 0.440
+  -1.069 0.108
+  -0.569 0.256
+  -0.270 0.348
+   0.257 0.608
+  -0.351 0.356
+  -0.392 0.344
+  -0.686 0.204
+   0.457 0.664
+   1.620 0.928
+   1.429 0.888
+   0.598 0.636
+   0.646 0.668
+   2.532 0.940
+   1.214 0.784
+  -0.407 0.392
+  -2.367 0.056
+  -2.385 0.008
+  -0.155 0.412
+   2.218 0.904
+  -0.785 0.212
+  -1.280 0.112
+   1.108 0.820
+  0.130 0.516
+ -0.766 0.204
+  0.403 0.604
+  0.027 0.500
+ -0.979 0.120
+  0.458 0.624
+ -0.942 0.212
+  0.945 0.736
+  1.439 0.888
+  1.938 0.836
+ -0.169 0.348
+ -0.522 0.268
+ -0.254 0.384
+  0.333 0.580
+  0.377 0.600
+  2.680 0.980
+  0.527 0.656
+  2.282 0.964
+ -1.032 0.116
+  0.709 0.684
+  1.423 0.800
+ -1.590 0.076
+  0.077 0.564
+  0.634 0.616
+ -0.508 0.224
+ -1.112 0.132
+  1.383 0.836
+  0.178 0.600
+ -0.332 0.384
+  3.285 0.904
+  0.532 0.628
+ -1.336 0.112
+  0.239 0.600
+  1.150 0.836
+  0.172 0.436
+ -0.253 0.376
+ -0.929 0.164
+  0.360 0.572
+  0.434 0.580
+  2.318 0.908
+  0.087 0.544
+  0.305 0.596
+  0.048 0.456
+  0.204 0.592
+ -0.658 0.220
+  0.860 0.708
+ -1.662 0.120
+  3.368 0.984
+ -0.639 0.252
+  0.048 0.536
+  0.164 0.552
+  1.989 0.924
+ -2.212 0.004
+  0.612 0.672
+ -0.917 0.124
+  0.189 0.496
+ -1.585 0.056
+ -0.091 0.444
+ -1.178 0.104
+ -1.206 0.160
+ -0.253 0.392
+  1.784 0.884
+ -0.620 0.240
+ -0.424 0.384
+  0.663 0.712
+  0.594 0.724
+ -0.572 0.188
+  1.857 0.916
+  1.158 0.768
+  1.150 0.820
+ -1.758 0.024
+  3.633 0.976
+  2.310 0.956
+  1.666 0.868
+ -1.069 0.108
+ -0.148 0.360
+  1.539 0.876
+ -0.433 0.336
+ -0.207 0.404
+  2.368 0.908
+ -0.758 0.184
+  0.106 0.544
+  0.702 0.736
+ -1.089 0.116
+ -0.097 0.476
+  0.929 0.796
+  0.870 0.720
+ -0.402 0.292
+ -1.631 0.080
+  0.666 0.612
+  0.069 0.472
+ -0.611 0.300
+ -0.239 0.360
+  0.557 0.688
+  0.314 0.524
+ -0.620 0.288
+  0.297 0.552
+  0.639 0.612
+  0.336 0.580
+  0.167 0.496
+  1.978 0.920
+  0.111 0.532
+ -1.199 0.072
+  0.214 0.604
+  0.043 0.488
+  1.525 0.900
+ -0.133 0.404
+ -0.915 0.140
+  4.312 0.980
+  0.019 0.476
+ -0.274 0.312
+  1.667 0.800
+  2.133 0.920
+  0.486 0.640
+  1.329 0.848
+ -1.314 0.064
+  0.681 0.700
+  6.797 0.988
+ -0.122 0.416
+ -0.097 0.396
+ -1.186 0.148
+  4.301 0.976
+  0.472 0.664
+ -0.542 0.304
+ -0.558 0.332
+ -0.767 0.152
+ -0.071 0.412
+  0.660 0.620
+  0.032 0.524
+  0.489 0.612
+ -0.658 0.256
+ -0.001 0.500
+ -0.344 0.332
+  0.356 0.544
+  0.093 0.532
+  0.988 0.768
+ -0.215 0.392
+  1.478 0.816
+ -0.745 0.212
+  0.324 0.624
+  1.159 0.772
+  1.183 0.784
+  0.069 0.500
+ -2.341 0.016
+  0.821 0.728
+  1.557 0.924
+ -0.417 0.320
+  0.423 0.568
+ -1.048 0.112
+ -0.201 0.408
+ -1.616 0.092
+  0.977 0.740
+ -0.061 0.428
+ -0.359 0.360
+  0.030 0.444
+  0.206 0.544
+ -1.570 0.052
+ -1.882 0.024
+ -0.310 0.348
+ -0.200 0.440
+ -0.927 0.132
+ -0.140 0.416
+  6.426 0.988
+  1.455 0.796
+ -0.467 0.344
+  0.214 0.536
+  0.121 0.504
+ -1.076 0.112
+ -0.523 0.260
+ -0.238 0.388
+ -0.188 0.432
+ -0.308 0.300
+ -0.548 0.224
+  2.200 0.904
+ -1.019 0.148
+ -0.086 0.452
+  0.715 0.708
+  0.513 0.676
+ -0.916 0.188
+  0.509 0.724
+ -0.777 0.184
+ -1.028 0.120
+ -0.163 0.348
+  1.825 0.912
+  0.936 0.788
+ -0.847 0.236
+  0.948 0.756
+ -0.166 0.424
+ -0.459 0.304
+ -0.244 0.404
+  0.668 0.664
+  0.201 0.544
+ -1.586 0.048
+ -0.248 0.352
+  0.501 0.636
+ -0.027 0.404
+ -0.994 0.120
+  1.553 0.900
+  0.986 0.804
+  0.395 0.664
+  0.326 0.612
+ -0.579 0.208
+  0.004 0.508
+ -0.610 0.192
+  0.061 0.348
+  0.150 0.516
+  1.833 0.940
+ -0.172 0.476
+ -0.411 0.344
+  1.312 0.824
+ -0.249 0.436
+  1.583 0.872
+ -0.746 0.136
+  0.334 0.552
+  2.246 0.968
+ -0.298 0.344
+ -0.213 0.432
+ -0.665 0.212
+  2.006 0.912
+  1.653 0.872
+  0.621 0.676
+ -1.736 0.036
+ -0.283 0.376
+ -0.038 0.472
+  2.060 0.928
+  1.043 0.776
+  6.828 0.996
+ -1.116 0.112
+  0.452 0.616
+  0.115 0.484
+  2.737 0.932
+  0.372 0.608
+  2.498 0.944
+ -0.535 0.312
+ -0.350 0.340
+ -1.899 0.036
+  1.397 0.792
+ -0.023 0.488
+  0.546 0.664
+  0.398 0.596
+ -0.793 0.212
+ -0.708 0.216
+ -0.011 0.476
+ -0.493 0.256
+ -2.167 0.052
+ -0.876 0.164
+  0.637 0.728
+ -0.946 0.148
+ -0.836 0.156
+  2.177 0.888
+  1.402 0.820
+ -0.666 0.236
+  0.110 0.388
+  3.174 0.952
+ -0.888 0.164
+  0.418 0.596
+  1.639 0.872
+  0.866 0.772
+ -0.705 0.176
+  1.089 0.760
+ -0.145 0.424
+ -0.421 0.392
+  1.982 0.920
+  0.108 0.532
+  1.156 0.812
+  1.580 0.780
+ -0.537 0.312
+  1.897 0.916
+ -0.763 0.212
+ -0.625 0.244
+  2.069 0.952
+ -0.151 0.420
+  0.688 0.720
+ -0.599 0.260
+  0.853 0.744
+ -0.767 0.192
+  0.541 0.620
+ -0.647 0.228
+  2.548 0.968
+ -1.238 0.112
+ -0.327 0.380
+  0.030 0.544
+  1.425 0.852
+ -0.703 0.212
+  1.248 0.836
+  1.115 0.816
+  1.333 0.792
+ -0.380 0.304
+ -0.870 0.188
+  1.067 0.756
+ -0.985 0.088
+ -0.339 0.296
+ -1.463 0.052
+  0.341 0.560
+ -0.204 0.388
+  0.577 0.596
+ -0.792 0.208
+  0.084 0.492
+ -1.002 0.172
+ -1.224 0.064
+  0.792 0.716
+  0.704 0.656
+  1.208 0.828
+ -0.087 0.440
+ -1.072 0.180
+ -0.998 0.144
+  2.540 0.960
+ -0.360 0.272
+  1.549 0.900
+ -1.793 0.016
+ -0.449 0.316
+  0.006 0.492
+ -0.005 0.480
+ -1.018 0.088
+  2.047 0.916
+  0.095 0.492
+  0.943 0.752
+  0.291 0.596
+ -1.024 0.128
+  0.944 0.812
+  0.033 0.540
+  1.268 0.792
+  0.449 0.644
+  3.289 0.988
+  2.087 0.884
+  0.504 0.640
+  1.161 0.832
+  1.523 0.840
+ -1.057 0.120
+ -0.078 0.532
+ -0.870 0.176
+  0.047 0.520
+  1.706 0.888
+  0.568 0.604
+  0.811 0.776
+ -1.592 0.120
+  0.475 0.664
+ -0.939 0.112
+ -0.053 0.416
+  5.270 0.988
+  2.233 0.924
+ -0.819 0.168
+ -1.034 0.112
+ -0.247 0.368
+  0.981 0.764
+  0.165 0.564
+ -0.813 0.208
+  0.190 0.568
+ -0.454 0.288
+  0.607 0.668
+ -0.665 0.260
+ -0.138 0.412
+  0.347 0.624
+  3.328 0.940
+  1.128 0.784
+  2.335 0.968
+  1.273 0.844
+ -0.154 0.396
+ -0.054 0.432
+ -0.517 0.236
+  0.174 0.564
+  0.088 0.536
+ -0.590 0.224
+  0.459 0.644
+  0.732 0.704
+  3.150 0.956
+ -0.489 0.292
+  0.012 0.488
+  0.575 0.644
+ -0.111 0.448
+  3.006 0.924
+ -0.496 0.236
+  0.673 0.672
+  0.842 0.756
+  0.440 0.668
+ -0.301 0.416
+  0.401 0.584
+  3.002 0.972
+ -0.458 0.312
+  1.929 0.904
+  1.385 0.836
+ -1.517 0.076
+ -1.178 0.120
+ -1.057 0.092
+  0.349 0.612
+ -0.500 0.264
+ -1.323 0.084
+ -0.543 0.272
+  1.251 0.848
+ -0.427 0.336
+  1.248 0.812
+  2.041 0.912
+ -1.427 0.040
+ -2.134 0.012
+ -0.188 0.380
+ -0.970 0.136
+ -1.005 0.136
+ -0.121 0.412
+  0.314 0.596
+ -1.833 0.044
+  0.141 0.540
+  2.007 0.944
+  1.716 0.856
+  2.131 0.908
+ -0.313 0.360
+ -0.232 0.420
+  0.008 0.472
+ -0.782 0.156
+ -0.456 0.300
+ -0.423 0.308
+ -0.371 0.304
+ -0.156 0.468
+  1.309 0.844
+  1.077 0.800
+ -0.766 0.168
+ -0.628 0.268
+ -0.713 0.204
+ -0.521 0.252
+  1.767 0.880
+  0.569 0.604
+ -0.024 0.504
+  4.942 0.916
+ -0.051 0.432
+ -0.326 0.336
+  0.816 0.704
+ -0.295 0.356
+  0.207 0.592
+  0.961 0.772
+  3.595 0.980
+  0.942 0.756
+  0.072 0.496
+  1.819 0.872
+  0.758 0.688
+  8.778 0.984
+ -0.598 0.292
+  1.979 0.924
+ -0.381 0.236
+ -0.367 0.284
+ -0.537 0.300
+  0.937 0.768
+  1.641 0.808
+ -0.400 0.332
+  0.175 0.540
+  0.514 0.704
+  0.284 0.540
+  2.383 0.856
+  1.450 0.812
+  0.557 0.660
+  0.128 0.508
+ -0.692 0.180
+  0.853 0.800
+ -0.936 0.128
+  2.212 0.924
+ -0.033 0.456
+  0.831 0.700
+ -0.024 0.460
+  0.957 0.776
+ -0.323 0.328
+  1.112 0.784
+ -0.060 0.412
+ -0.108 0.412
+ -1.699 0.040
+  1.583 0.832
+  0.335 0.572
+ -1.355 0.084
+ -1.408 0.116
+ -0.629 0.240
+  0.121 0.492
+  0.449 0.656
+ -1.767 0.100
+ -0.502 0.236
+  0.015 0.452
+  0.013 0.484
+  0.807 0.732
+ -1.236 0.088
+  0.545 0.688
+  1.738 0.916
+ -1.314 0.068
+  1.060 0.876
+  0.348 0.660
+  1.032 0.816
+ -1.209 0.084
+ -0.504 0.292
+ -1.395 0.052
+  1.774 0.864
+ -0.165 0.452
+ -0.271 0.396
+  1.471 0.844
+ -0.256 0.384
+ -0.758 0.228
+ -1.859 0.036
+  0.001 0.528
+ -0.098 0.412
+ -2.176 0.012
+ -1.416 0.084
+ -0.705 0.184
+ -0.696 0.200
+  0.211 0.596
+  1.841 0.908
+ -0.722 0.240
+  0.842 0.756
+  0.656 0.652
+  0.295 0.640
+ -2.105 0.020
+ -0.479 0.204
+  2.837 0.948
+  1.985 0.888
+ -0.200 0.400
+  1.560 0.860
+  1.135 0.836
+ -0.601 0.216
+ -0.639 0.220
+  2.231 0.920
+ -2.118 0.116
+  0.693 0.740
+ -1.787 0.008
+  1.723 0.872
+  2.110 0.896
+  0.045 0.444
+  0.480 0.576
+  0.325 0.616
+ -0.360 0.408
+ -0.487 0.328
+  0.985 0.712
+ -0.175 0.396
+  0.100 0.500
+  1.248 0.788
+  0.435 0.620
+ -0.718 0.220
+ -1.187 0.108
+ -0.192 0.396
+ -0.838 0.156
+  0.023 0.512
+ -0.469 0.256
+ -0.096 0.440
+ -0.805 0.200
+  0.294 0.584
+  2.222 0.956
+  0.542 0.696
+ -0.686 0.312
+ -0.696 0.172
+  0.669 0.652
+  0.258 0.580
+ -1.389 0.048
+ -0.927 0.140
+  0.535 0.660
+ -0.717 0.128
+ -0.741 0.208
+ -0.749 0.216
+ -0.586 0.236
+  2.391 0.928
+ -0.843 0.188
+ -0.338 0.380
+ -1.137 0.104
+ -1.279 0.068
+ -0.272 0.344
+  0.731 0.748
+  1.470 0.840
+  0.730 0.760
+  0.550 0.708
+ -1.340 0.068
+ -1.243 0.068
+  0.198 0.520
+  0.728 0.744
+ -0.098 0.360
+ -1.113 0.116
+ -0.860 0.164
+ -0.662 0.160
+ -0.221 0.428
+  1.247 0.792
+  0.565 0.720
+ -1.304 0.104
+  2.031 0.896
+  1.163 0.792
+  1.361 0.824
+ -0.579 0.256
+
+junk1 <- scan(file="",list(i=0,base=0,one=0),nmax=60)
+ 1     2.12    2.47
+ 2     4.35    4.61
+ 3     3.39    5.26
+ 4     2.51    3.02
+ 5     4.04    6.36
+ 6     5.10    5.93
+ 7     3.77    3.93
+ 8     3.35    4.09
+ 9     4.10    4.88
+10     3.35    3.81
+11     4.15    4.74
+12     3.56    3.29
+13     3.39    5.55
+14     1.88    2.82
+15     2.56    4.23
+16     2.96    3.23
+17     2.49    2.56
+18     3.03    4.31
+19     2.66    4.37
+20     3.00    2.40
+
+cd4.nested <- boot:::boot.return(sim="ordinary", t0=c(0,0.532),
+	t=cbind(junk[[1]],junk[[2]]), strata=rep(1,20), R=999,
+	data=data.frame(baseline=junk1$base,oneyear=junk1$one),
+	stat=temp$statistic, stype="w", call=tempcl, seed=NULL,
+	m=0, weights=rep(0.05,20))
+
+
+rm(junk,junk1,temp,tempcl)
+save(cd4.nested, file="cd4.nested.rda", compress=TRUE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/html/00Index.html	(revision 2476)
@@ -0,0 +1,222 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Bootstrap Functions (Originally by Angelo Canty for S)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Bootstrap Functions (Originally by Angelo Canty for S)
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;boot&rsquo; version 1.3-18</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="abc.ci.html">abc.ci</a></td>
+<td>Nonparametric ABC Confidence Intervals</td></tr>
+<tr><td style="width: 25%;"><a href="acme.html">acme</a></td>
+<td>Monthly Excess Returns</td></tr>
+<tr><td style="width: 25%;"><a href="aids.html">aids</a></td>
+<td>Delay in AIDS Reporting in England and Wales</td></tr>
+<tr><td style="width: 25%;"><a href="aircondit.html">aircondit</a></td>
+<td>Failures of Air-conditioning Equipment</td></tr>
+<tr><td style="width: 25%;"><a href="aircondit.html">aircondit7</a></td>
+<td>Failures of Air-conditioning Equipment</td></tr>
+<tr><td style="width: 25%;"><a href="amis.html">amis</a></td>
+<td>Car Speeding and Warning Signs</td></tr>
+<tr><td style="width: 25%;"><a href="aml.html">aml</a></td>
+<td>Remission Times for Acute Myelogenous Leukaemia</td></tr>
+<tr><td style="width: 25%;"><a href="beaver.html">beaver</a></td>
+<td>Beaver Body Temperature Data</td></tr>
+<tr><td style="width: 25%;"><a href="bigcity.html">bigcity</a></td>
+<td>Population of U.S. Cities</td></tr>
+<tr><td style="width: 25%;"><a href="boot.html">boot</a></td>
+<td>Bootstrap Resampling</td></tr>
+<tr><td style="width: 25%;"><a href="boot.array.html">boot.array</a></td>
+<td>Bootstrap Resampling Arrays</td></tr>
+<tr><td style="width: 25%;"><a href="boot.ci.html">boot.ci</a></td>
+<td>Nonparametric Bootstrap Confidence Intervals</td></tr>
+<tr><td style="width: 25%;"><a href="boot.html">boot.return</a></td>
+<td>Bootstrap Resampling</td></tr>
+<tr><td style="width: 25%;"><a href="brambles.html">brambles</a></td>
+<td>Spatial Location of Bramble Canes</td></tr>
+<tr><td style="width: 25%;"><a href="breslow.html">breslow</a></td>
+<td>Smoking Deaths Among Doctors</td></tr>
+<tr><td style="width: 25%;"><a href="boot.html">c.boot</a></td>
+<td>Bootstrap Resampling</td></tr>
+<tr><td style="width: 25%;"><a href="calcium.html">calcium</a></td>
+<td>Calcium Uptake Data</td></tr>
+<tr><td style="width: 25%;"><a href="cane.html">cane</a></td>
+<td>Sugar-cane Disease Data</td></tr>
+<tr><td style="width: 25%;"><a href="capability.html">capability</a></td>
+<td>Simulated Manufacturing Process Data</td></tr>
+<tr><td style="width: 25%;"><a href="catsM.html">catsM</a></td>
+<td>Weight Data for Domestic Cats</td></tr>
+<tr><td style="width: 25%;"><a href="cav.html">cav</a></td>
+<td>Position of Muscle Caveolae</td></tr>
+<tr><td style="width: 25%;"><a href="cd4.html">cd4</a></td>
+<td>CD4 Counts for HIV-Positive Patients</td></tr>
+<tr><td style="width: 25%;"><a href="cd4.nested.html">cd4.nested</a></td>
+<td>Nested Bootstrap of cd4 data</td></tr>
+<tr><td style="width: 25%;"><a href="censboot.html">cens.return</a></td>
+<td>Bootstrap for Censored Data</td></tr>
+<tr><td style="width: 25%;"><a href="censboot.html">censboot</a></td>
+<td>Bootstrap for Censored Data</td></tr>
+<tr><td style="width: 25%;"><a href="channing.html">channing</a></td>
+<td>Channing House Data</td></tr>
+<tr><td style="width: 25%;"><a href="bigcity.html">city</a></td>
+<td>Population of U.S. Cities</td></tr>
+<tr><td style="width: 25%;"><a href="claridge.html">claridge</a></td>
+<td>Genetic Links to Left-handedness</td></tr>
+<tr><td style="width: 25%;"><a href="cloth.html">cloth</a></td>
+<td>Number of Flaws in Cloth</td></tr>
+<tr><td style="width: 25%;"><a href="co.transfer.html">co.transfer</a></td>
+<td>Carbon Monoxide Transfer</td></tr>
+<tr><td style="width: 25%;"><a href="coal.html">coal</a></td>
+<td>Dates of Coal Mining Disasters</td></tr>
+<tr><td style="width: 25%;"><a href="control.html">control</a></td>
+<td>Control Variate Calculations</td></tr>
+<tr><td style="width: 25%;"><a href="corr.html">corr</a></td>
+<td>Correlation Coefficient</td></tr>
+<tr><td style="width: 25%;"><a href="cum3.html">cum3</a></td>
+<td>Calculate Third Order Cumulants</td></tr>
+<tr><td style="width: 25%;"><a href="cv.glm.html">cv.glm</a></td>
+<td>Cross-validation for Generalized Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="darwin.html">darwin</a></td>
+<td>Darwin's Plant Height Differences</td></tr>
+<tr><td style="width: 25%;"><a href="dogs.html">dogs</a></td>
+<td>Cardiac Data for Domestic Dogs</td></tr>
+<tr><td style="width: 25%;"><a href="downs.bc.html">downs.bc</a></td>
+<td>Incidence of Down's Syndrome in British Columbia</td></tr>
+<tr><td style="width: 25%;"><a href="ducks.html">ducks</a></td>
+<td>Behavioral and Plumage Characteristics of Hybrid Ducks</td></tr>
+<tr><td style="width: 25%;"><a href="EEF.profile.html">EEF.profile</a></td>
+<td>Empirical Likelihoods</td></tr>
+<tr><td style="width: 25%;"><a href="EEF.profile.html">EL.profile</a></td>
+<td>Empirical Likelihoods</td></tr>
+<tr><td style="width: 25%;"><a href="empinf.html">empinf</a></td>
+<td>Empirical Influence Values</td></tr>
+<tr><td style="width: 25%;"><a href="envelope.html">envelope</a></td>
+<td>Confidence Envelopes for Curves</td></tr>
+<tr><td style="width: 25%;"><a href="exp.tilt.html">exp.tilt</a></td>
+<td>Exponential Tilting</td></tr>
+<tr><td style="width: 25%;"><a href="fir.html">fir</a></td>
+<td>Counts of Balsam-fir Seedlings</td></tr>
+<tr><td style="width: 25%;"><a href="freq.array.html">freq.array</a></td>
+<td>Bootstrap Frequency Arrays</td></tr>
+<tr><td style="width: 25%;"><a href="frets.html">frets</a></td>
+<td>Head Dimensions in Brothers</td></tr>
+<tr><td style="width: 25%;"><a href="glm.diag.html">glm.diag</a></td>
+<td>Generalized Linear Model Diagnostics</td></tr>
+<tr><td style="width: 25%;"><a href="glm.diag.plots.html">glm.diag.plots</a></td>
+<td>Diagnostics plots for generalized linear models</td></tr>
+<tr><td style="width: 25%;"><a href="gravity.html">grav</a></td>
+<td>Acceleration Due to Gravity</td></tr>
+<tr><td style="width: 25%;"><a href="gravity.html">gravity</a></td>
+<td>Acceleration Due to Gravity</td></tr>
+<tr><td style="width: 25%;"><a href="hirose.html">hirose</a></td>
+<td>Failure Time of PET Film</td></tr>
+<tr><td style="width: 25%;"><a href="Imp.Estimates.html">Imp.Estimates</a></td>
+<td>Importance Sampling Estimates</td></tr>
+<tr><td style="width: 25%;"><a href="Imp.Estimates.html">imp.moments</a></td>
+<td>Importance Sampling Estimates</td></tr>
+<tr><td style="width: 25%;"><a href="Imp.Estimates.html">imp.prob</a></td>
+<td>Importance Sampling Estimates</td></tr>
+<tr><td style="width: 25%;"><a href="Imp.Estimates.html">imp.quantile</a></td>
+<td>Importance Sampling Estimates</td></tr>
+<tr><td style="width: 25%;"><a href="Imp.Estimates.html">imp.reg</a></td>
+<td>Importance Sampling Estimates</td></tr>
+<tr><td style="width: 25%;"><a href="imp.weights.html">imp.weights</a></td>
+<td>Importance Sampling Weights</td></tr>
+<tr><td style="width: 25%;"><a href="inv.logit.html">inv.logit</a></td>
+<td>Inverse Logit Function</td></tr>
+<tr><td style="width: 25%;"><a href="islay.html">islay</a></td>
+<td>Jura Quartzite Azimuths on Islay</td></tr>
+<tr><td style="width: 25%;"><a href="jack.after.boot.html">jack.after.boot</a></td>
+<td>Jackknife-after-Bootstrap Plots</td></tr>
+<tr><td style="width: 25%;"><a href="k3.linear.html">k3.linear</a></td>
+<td>Linear Skewness Estimate</td></tr>
+<tr><td style="width: 25%;"><a href="linear.approx.html">linear.approx</a></td>
+<td>Linear Approximation of Bootstrap Replicates</td></tr>
+<tr><td style="width: 25%;"><a href="lines.saddle.distn.html">lines.saddle.distn</a></td>
+<td>Add a Saddlepoint Approximation to a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="logit.html">logit</a></td>
+<td>Logit of Proportions</td></tr>
+<tr><td style="width: 25%;"><a href="manaus.html">manaus</a></td>
+<td>Average Heights of the Rio Negro river at Manaus</td></tr>
+<tr><td style="width: 25%;"><a href="melanoma.html">melanoma</a></td>
+<td>Survival from Malignant Melanoma</td></tr>
+<tr><td style="width: 25%;"><a href="motor.html">motor</a></td>
+<td>Data from a Simulated Motorcycle Accident</td></tr>
+<tr><td style="width: 25%;"><a href="neuro.html">neuro</a></td>
+<td>Neurophysiological Point Process Data</td></tr>
+<tr><td style="width: 25%;"><a href="nitrofen.html">nitrofen</a></td>
+<td>Toxicity of Nitrofen in Aquatic Systems</td></tr>
+<tr><td style="width: 25%;"><a href="nodal.html">nodal</a></td>
+<td>Nodal Involvement in Prostate Cancer</td></tr>
+<tr><td style="width: 25%;"><a href="norm.ci.html">norm.ci</a></td>
+<td>Normal Approximation Confidence Intervals</td></tr>
+<tr><td style="width: 25%;"><a href="nuclear.html">nuclear</a></td>
+<td>Nuclear Power Station Construction Data</td></tr>
+<tr><td style="width: 25%;"><a href="paulsen.html">paulsen</a></td>
+<td>Neurotransmission in Guinea Pig Brains</td></tr>
+<tr><td style="width: 25%;"><a href="plot.boot.html">plot.boot</a></td>
+<td>Plots of the Output of a Bootstrap Simulation</td></tr>
+<tr><td style="width: 25%;"><a href="poisons.html">poisons</a></td>
+<td>Animal Survival Times</td></tr>
+<tr><td style="width: 25%;"><a href="polar.html">polar</a></td>
+<td>Pole Positions of New Caledonian Laterites</td></tr>
+<tr><td style="width: 25%;"><a href="print.boot.html">print.boot</a></td>
+<td>Print a Summary of a Bootstrap Object</td></tr>
+<tr><td style="width: 25%;"><a href="print.bootci.html">print.bootci</a></td>
+<td>Print Bootstrap Confidence Intervals</td></tr>
+<tr><td style="width: 25%;"><a href="print.saddle.distn.html">print.saddle.distn</a></td>
+<td>Print Quantiles of Saddlepoint Approximations</td></tr>
+<tr><td style="width: 25%;"><a href="print.simplex.html">print.simplex</a></td>
+<td>Print Solution to Linear Programming Problem</td></tr>
+<tr><td style="width: 25%;"><a href="remission.html">remission</a></td>
+<td>Cancer Remission and Cell Activity</td></tr>
+<tr><td style="width: 25%;"><a href="saddle.html">saddle</a></td>
+<td>Saddlepoint Approximations for Bootstrap Statistics</td></tr>
+<tr><td style="width: 25%;"><a href="saddle.distn.html">saddle.distn</a></td>
+<td>Saddlepoint Distribution Approximations for Bootstrap Statistics</td></tr>
+<tr><td style="width: 25%;"><a href="saddle.distn.object.html">saddle.distn.object</a></td>
+<td>Saddlepoint Distribution Approximation Objects</td></tr>
+<tr><td style="width: 25%;"><a href="salinity.html">salinity</a></td>
+<td>Water Salinity and River Discharge</td></tr>
+<tr><td style="width: 25%;"><a href="simplex.html">simplex</a></td>
+<td>Simplex Method for Linear Programming Problems</td></tr>
+<tr><td style="width: 25%;"><a href="simplex.object.html">simplex.object</a></td>
+<td>Linear Programming Solution Objects</td></tr>
+<tr><td style="width: 25%;"><a href="smooth.f.html">smooth.f</a></td>
+<td>Smooth Distributions on Data Points</td></tr>
+<tr><td style="width: 25%;"><a href="sunspot.html">sunspot</a></td>
+<td>Annual Mean Sunspot Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="survival.html">survival</a></td>
+<td>Survival of Rats after Radiation Doses</td></tr>
+<tr><td style="width: 25%;"><a href="tau.html">tau</a></td>
+<td>Tau Particle Decay Modes</td></tr>
+<tr><td style="width: 25%;"><a href="tilt.boot.html">tilt.boot</a></td>
+<td>Non-parametric Tilted Bootstrap</td></tr>
+<tr><td style="width: 25%;"><a href="tsboot.html">ts.return</a></td>
+<td>Bootstrapping of Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="tsboot.html">tsboot</a></td>
+<td>Bootstrapping of Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="tuna.html">tuna</a></td>
+<td>Tuna Sighting Data</td></tr>
+<tr><td style="width: 25%;"><a href="urine.html">urine</a></td>
+<td>Urine Analysis Data</td></tr>
+<tr><td style="width: 25%;"><a href="var.linear.html">var.linear</a></td>
+<td>Linear Variance Estimate</td></tr>
+<tr><td style="width: 25%;"><a href="wool.html">wool</a></td>
+<td>Australian Relative Wool Prices</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/INDEX	(revision 2476)
@@ -0,0 +1,71 @@
+Bootstrap R Functions
+=====================
+
+Version 1.3; May 2011:
+
+The main change is support for parallel computation in functions
+boot(), censboot() and tsboot().
+
+Many of the examples have been tidied up.
+
+
+Version 1.2; March 2001:
+
+This version corrects some minor errors in Version 1.0 of the code
+distributed with the first printing of Davison and Hinkley (1997).
+The author would like to thank those users who pointed out errors or
+possible improvements to the code.  Any further errors found should be
+reported to the author (Angelo Canty) for correction in the next
+version.
+
+The package contains the following functions, all of which
+have online help available.
+
+abc.ci		ABC confidence intervals
+boot		Main bootstrap function
+boot.array	Generate a bootstrap frequency/index array
+boot.ci		Bootstrap simulation confidence intervals
+censboot	Bootstrap for censored data
+control		Control variate calculations
+corr		Weighted form of correlation coefficient
+cum3		Estimate the skewness
+cv.glm		Cross-validation for generalized linear models
+empinf		Calculate empirical influence values
+envelope	Confidence envelopes for functions
+exp.tilt	Exponential tilting
+freq.array	Convert an index array into a frequency array
+glm.diag	Diagnostics for generalized linear models
+glm.diag.plots	Diagnostic plots for glm's
+imp.moments	Importance resampling estimates of moments
+imp.prob	Importance resampling estimates of probabilities
+imp.quantile	Importance resampling estimates of quantiles
+imp.weights	Weights for importance resampling
+inv.logit	Inverse logit function
+jack.after.boot	Jackknife after bootstrap plots
+k3.linear	Linear skewness approximation
+linear.approx	Linear approximation to a statistic
+lines.saddle.distn  Lines method for a saddlepoint distribution object
+logit		Logit of a proportion
+norm.ci		Normal approximation confidence intervals
+plot.boot	Plot method for a bootstrap object
+print.boot	Print method for a bootstrap object
+print.bootci	Print method for a bootstrap confidence interval object
+print.saddle.distn  Print method for a saddlepoint distribution object
+print.simplex	Print method for a simplex object
+saddle		Simple and conditional saddlepoint calculations
+saddle.distn	Approximate a distribution by saddlepoint
+simplex		Tableau simplex method for linear programming
+smooth.f	Frequency smoothing
+tilt.boot	Tilted bootstrap
+tsboot		Bootstrap for time series
+var.linear	Linear variance approximation
+
+The package also contains some items used in the practicals of
+"Bootstrap Methods and Their Applications" by A.C. Davison and D.V. Hinkley
+(1997, Cambridge University Press).  The objects are not intended to be used
+except in the context of these practicals.  The objects are
+
+cd4.nested	A nested bootstrap referred to in Practical 5.5
+corr.nested	The statistic used in cd4.nested
+EL.profile, EEF.profile, and lik.CI 
+	functions defined for use in the practicals of chapter 10.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/help/boot.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/help/boot.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/help/AnIndex	(revision 2476)
@@ -0,0 +1,101 @@
+abc.ci	abc.ci
+acme	acme
+aids	aids
+aircondit	aircondit
+aircondit7	aircondit
+amis	amis
+aml	aml
+beaver	beaver
+bigcity	bigcity
+boot	boot
+boot.array	boot.array
+boot.ci	boot.ci
+boot.return	boot
+brambles	brambles
+breslow	breslow
+c.boot	boot
+calcium	calcium
+cane	cane
+capability	capability
+catsM	catsM
+cav	cav
+cd4	cd4
+cd4.nested	cd4.nested
+cens.return	censboot
+censboot	censboot
+channing	channing
+city	bigcity
+claridge	claridge
+cloth	cloth
+co.transfer	co.transfer
+coal	coal
+control	control
+corr	corr
+cum3	cum3
+cv.glm	cv.glm
+darwin	darwin
+dogs	dogs
+downs.bc	downs.bc
+ducks	ducks
+EEF.profile	EEF.profile
+EL.profile	EEF.profile
+empinf	empinf
+envelope	envelope
+exp.tilt	exp.tilt
+fir	fir
+freq.array	freq.array
+frets	frets
+glm.diag	glm.diag
+glm.diag.plots	glm.diag.plots
+grav	gravity
+gravity	gravity
+hirose	hirose
+Imp.Estimates	Imp.Estimates
+imp.moments	Imp.Estimates
+imp.prob	Imp.Estimates
+imp.quantile	Imp.Estimates
+imp.reg	Imp.Estimates
+imp.weights	imp.weights
+inv.logit	inv.logit
+islay	islay
+jack.after.boot	jack.after.boot
+k3.linear	k3.linear
+lik.CI	boot-practicals
+linear.approx	linear.approx
+lines.saddle.distn	lines.saddle.distn
+logit	logit
+manaus	manaus
+melanoma	melanoma
+motor	motor
+nested.corr	boot-practicals
+neuro	neuro
+nitrofen	nitrofen
+nodal	nodal
+norm.ci	norm.ci
+nuclear	nuclear
+paulsen	paulsen
+plot.boot	plot.boot
+poisons	poisons
+polar	polar
+print.boot	print.boot
+print.bootci	print.bootci
+print.saddle.distn	print.saddle.distn
+print.simplex	print.simplex
+remission	remission
+saddle	saddle
+saddle.distn	saddle.distn
+saddle.distn.object	saddle.distn.object
+salinity	salinity
+simplex	simplex
+simplex.object	simplex.object
+smooth.f	smooth.f
+sunspot	sunspot
+survival	survival
+tau	tau
+tilt.boot	tilt.boot
+ts.return	tsboot
+tsboot	tsboot
+tuna	tuna
+urine	urine
+var.linear	var.linear
+wool	wool
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/help/boot.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/help/boot.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/data/Rdata.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/data/Rdata.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/data/Rdata.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/data/Rdata.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/data/Rdata.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/data/Rdata.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/boot/CITATION	(revision 2476)
@@ -0,0 +1,33 @@
+citHeader("To cite the 'boot' package in publications use:")
+
+year <- sub(".*(2[[:digit:]]{3})-.*", "\\1", meta$Date, perl = TRUE)
+vers <- paste("R package version", meta$Version)
+
+citEntry(entry="Manual",
+         title = "boot: Bootstrap R (S-Plus) Functions",
+         author = personList(as.person("Angelo Canty"),
+                             as.person("B. D. Ripley")),
+         year = year,
+         note = vers,
+
+         textVersion =
+         paste("Angelo Canty and Brian Ripley (",
+               year,
+               "). boot: Bootstrap R (S-Plus) Functions. ",
+               vers, ".", sep=""))
+
+citEntry(entry="Book",
+         title = "Bootstrap Methods and Their Applications",
+         author = personList(as.person("A. C. Davison"),
+                             as.person("D. V. Hinkley")),
+	 publisher = "Cambridge University Press",
+         address   = "Cambridge",
+         year     = "1997",
+         note     = "ISBN 0-521-57391-2",
+         url      = "http://statwww.epfl.ch/davison/BMA/",
+
+         textVersion =
+         paste("Davison, A. C. & Hinkley, D. V. (1997)",
+  	       "Bootstrap Methods and Their Applications.",
+               "Cambridge University Press, Cambridge. ISBN 0-521-57391-2")
+)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/R/leaps.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/R/leaps.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/R/leaps
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/R/leaps	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/R/leaps	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/R/leaps.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/R/leaps.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/DESCRIPTION	(revision 2476)
@@ -0,0 +1,15 @@
+Package: leaps
+Title: Regression Subset Selection
+Version: 3.0
+Author: Thomas Lumley based on Fortran code by Alan Miller
+Description: Regression subset selection, including exhaustive search.
+Depends:
+Suggests: biglm
+License: GPL (>= 2)
+Maintainer: Thomas Lumley <t.lumley@auckland.ac.nz>
+NeedsCompilation: yes
+Packaged: 2017-01-09 20:18:20 UTC; tlumley
+Repository: CRAN
+Date/Publication: 2017-01-10 00:04:32
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2017-01-10 12:01:31 UTC; unix
+Archs: leaps.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/html/00Index.html	(revision 2476)
@@ -0,0 +1,57 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Regression Subset Selection</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Regression Subset Selection
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;leaps&rsquo; version 3.0</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="regsubsets.html">coef.regsubsets</a></td>
+<td>functions for model selection</td></tr>
+<tr><td style="width: 25%;"><a href="leaps.html">leaps</a></td>
+<td>all-subsets regressiom</td></tr>
+<tr><td style="width: 25%;"><a href="leaps.setup.html">leaps.backward</a></td>
+<td>Internal functions for leaps(), subsets()</td></tr>
+<tr><td style="width: 25%;"><a href="leaps.setup.html">leaps.exhaustive</a></td>
+<td>Internal functions for leaps(), subsets()</td></tr>
+<tr><td style="width: 25%;"><a href="leaps.setup.html">leaps.forward</a></td>
+<td>Internal functions for leaps(), subsets()</td></tr>
+<tr><td style="width: 25%;"><a href="leaps.setup.html">leaps.seqrep</a></td>
+<td>Internal functions for leaps(), subsets()</td></tr>
+<tr><td style="width: 25%;"><a href="leaps.setup.html">leaps.setup</a></td>
+<td>Internal functions for leaps(), subsets()</td></tr>
+<tr><td style="width: 25%;"><a href="plot.regsubsets.html">plot.regsubsets</a></td>
+<td>Graphical table of best subsets</td></tr>
+<tr><td style="width: 25%;"><a href="regsubsets.html">print.regsubsets</a></td>
+<td>functions for model selection</td></tr>
+<tr><td style="width: 25%;"><a href="regsubsets.html">print.summary.regsubsets</a></td>
+<td>functions for model selection</td></tr>
+<tr><td style="width: 25%;"><a href="regsubsets.html">regsubsets</a></td>
+<td>functions for model selection</td></tr>
+<tr><td style="width: 25%;"><a href="regsubsets.html">regsubsets.biglm</a></td>
+<td>functions for model selection</td></tr>
+<tr><td style="width: 25%;"><a href="regsubsets.html">regsubsets.default</a></td>
+<td>functions for model selection</td></tr>
+<tr><td style="width: 25%;"><a href="regsubsets.html">regsubsets.formula</a></td>
+<td>functions for model selection</td></tr>
+<tr><td style="width: 25%;"><a href="regsubsets.html">summary.regsubsets</a></td>
+<td>functions for model selection</td></tr>
+<tr><td style="width: 25%;"><a href="regsubsets.html">vcov.regsubsets</a></td>
+<td>functions for model selection</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/INDEX	(revision 2476)
@@ -0,0 +1,3 @@
+leaps		Subset selection by `leaps and bounds' compatible with S
+regsubsets	More sophisticated function, including formula method
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/help/AnIndex	(revision 2476)
@@ -0,0 +1,16 @@
+coef.regsubsets	regsubsets
+leaps	leaps
+leaps.backward	leaps.setup
+leaps.exhaustive	leaps.setup
+leaps.forward	leaps.setup
+leaps.seqrep	leaps.setup
+leaps.setup	leaps.setup
+plot.regsubsets	plot.regsubsets
+print.regsubsets	regsubsets
+print.summary.regsubsets	regsubsets
+regsubsets	regsubsets
+regsubsets.biglm	regsubsets
+regsubsets.default	regsubsets
+regsubsets.formula	regsubsets
+summary.regsubsets	regsubsets
+vcov.regsubsets	regsubsets
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/help/leaps.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/help/leaps.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/help/leaps.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/help/leaps.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/libs/leaps.so.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/libs/leaps.so.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/libs/leaps.so.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.leaps.so</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/libs/leaps.so.dSYM/Contents/Resources/DWARF/leaps.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/libs/leaps.so.dSYM/Contents/Resources/DWARF/leaps.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/libs/leaps.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/libs/leaps.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/NAMESPACE	(revision 2476)
@@ -0,0 +1,16 @@
+useDynLib(leaps)
+importFrom("grDevices", "gray")
+importFrom("graphics", "axis", "box", "image", "par", "title")
+importFrom("stats", "coef", "model.extract", "model.matrix", "terms")
+export(regsubsets,leaps)
+S3method(regsubsets, biglm)
+S3method(regsubsets,formula)
+S3method(regsubsets,default)
+S3method(summary,regsubsets)
+S3method(print,summary.regsubsets)
+S3method(print,regsubsets)
+S3method(plot,regsubsets)
+S3method(coef,regsubsets)
+S3method(vcov,regsubsets)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/leaps/NEWS	(revision 2476)
@@ -0,0 +1,12 @@
+3.0  There was a bug (design infelicity?) where forward and backward selection could return a 
+     better model than they should, based on the first k variables in the data matrix.
+
+     - Added warning when model with first k variables is better than the 'best' k-variable model.
+
+     - For nbest=1, default to not looking at the model with first k variables.
+
+2.9  improved documentation for summary.regsubsets
+   
+     added coef(), vcov() methods for regsubsets.
+
+2.8  Added regsubsets() method for biglm objects.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/CITATION	(revision 2476)
@@ -0,0 +1,32 @@
+citHeader("To cite Rcpp in publications use:")
+
+citEntry(entry = "Article",
+  title        = "{Rcpp}: Seamless {R} and {C++} Integration",
+  author       = personList(as.person("Dirk Eddelbuettel"),
+                   as.person("Romain Fran\\c{c}ois")),
+  journal      = "Journal of Statistical Software",
+  year         = "2011",
+  volume       = "40",
+  number       = "8",
+  pages        = "1--18",
+  url          = "http://www.jstatsoft.org/v40/i08/",
+
+  textVersion  =
+  paste("Dirk Eddelbuettel and Romain Francois (2011).",
+        "Rcpp: Seamless R and C++ Integration.",
+        "Journal of Statistical Software, 40(8), 1-18.",
+        "URL http://www.jstatsoft.org/v40/i08/.")
+)
+
+citEntry(entry = "Book",
+  title        = "Seamless {R} and {C++} Integration with {Rcpp}",
+  author       = personList(as.person("Dirk Eddelbuettel")),
+  publisher    = "Springer",
+  address      = "New York",
+  year         = 2013,
+  note         = "ISBN 978-1-4614-6867-7",
+
+  textVersion  = paste("Eddelbuettel, Dirk (2013)",
+                       "Seamless R and C++ Integration with Rcpp.",
+                       "Springer, New York. ISBN 978-1-4614-6867-7.")
+)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/RcppSimpleExample.r
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/RcppSimpleExample.r	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/RcppSimpleExample.r	(revision 2476)
@@ -0,0 +1,27 @@
+#!/usr/bin/env r
+
+
+suppressMessages(library(Rcpp))
+suppressMessages(library(inline))
+
+
+foo <- '
+  int i, j, na, nb, nab;
+  double *xa, *xb, *xab;
+  SEXP ab;
+
+  PROTECT(a = AS_NUMERIC(a));
+  PROTECT(b = AS_NUMERIC(b));
+  na = LENGTH(a); nb = LENGTH(b); nab = na + nb - 1;
+  PROTECT(ab = NEW_NUMERIC(nab));
+  xa = NUMERIC_POINTER(a); xb = NUMERIC_POINTER(b);
+  xab = NUMERIC_POINTER(ab);
+  for(i = 0; i < nab; i++) xab[i] = 0.0;
+  for(i = 0; i < na; i++)
+    for(j = 0; j < nb; j++) xab[i + j] += xa[i] * xb[j];
+  UNPROTECT(3);
+  return(ab);
+'
+
+funx <- cfunction(signature(a="numeric",b="numeric"), foo, Rcpp=FALSE, verbose=FALSE)
+funx(a=1:20, b=2:11)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/RcppInlineExample.r
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/RcppInlineExample.r	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/RcppInlineExample.r	(revision 2476)
@@ -0,0 +1,47 @@
+#!/usr/bin/env r
+
+suppressMessages(library(Rcpp))
+
+## NOTE: This is the old way to compile Rcpp code inline.
+## The code here has left as a historical artifact and tribute to the old way.
+## Please use the code under the "new" inline compilation section.
+
+suppressMessages(library(inline))
+
+foo <- '
+    IntegerVector vec(10000);     // vec parameter viewed as vector of ints.
+    int i = 0;
+    for (int a = 0; a < 9; a++)
+      for (int b = 0; b < 9; b++)
+        for (int c = 0; c < 9; c++)
+          for (int d = 0; d < 9; d++)
+            vec(i++) = a*b - c*d;
+
+    return vec;
+'
+
+funx_old <- cxxfunction(signature(), foo, plugin = "Rcpp" )
+
+## NOTE: Within this section, the new way to compile Rcpp code inline has been
+## written. Please use the code next as a template for your own project.
+
+cppFunction('IntegerVector funx(){
+    IntegerVector vec(10000);     // vec parameter viewed as vector of ints.
+    int i = 0;
+    for (int a = 0; a < 9; a++)
+      for (int b = 0; b < 9; b++)
+        for (int c = 0; c < 9; c++)
+          for (int d = 0; d < 9; d++)
+            vec(i++) = a*b - c*d;
+
+    return vec;
+}')
+
+dd.inline.rcpp <- function() {
+    res <- funx()
+    tabulate(res)
+}
+
+print(mean(replicate(100,system.time(dd.inline.rcpp())["elapsed"]),trim=0.05))
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/UncaughtExceptions.r
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/UncaughtExceptions.r	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/UncaughtExceptions.r	(revision 2476)
@@ -0,0 +1,50 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2009 - 2010  Romain Francois and Dirk Eddelbuettel
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+require(Rcpp)
+
+
+## NOTE: This is the old way to compile Rcpp code inline.
+## The code here has left as a historical artifact and tribute to the old way.
+## Please use the code under the "new" inline compilation section.
+
+require(inline)
+funx_old <- cxxfunction(	
+	signature(), 
+	'throw std::range_error("boom"); return R_NilValue ; ', 
+	plugin = "Rcpp" )
+
+## NOTE: Within this section, the new way to compile Rcpp code inline has been
+## written. Please use the code next as a template for your own project.
+
+cppFunction('
+SEXP funx(){
+    throw std::range_error("boom"); return R_NilValue ; 
+}')	
+
+tryCatch(  funx(), "C++Error" = function(e){
+	cat( sprintf( "C++ exception of class '%s' : %s\n", class(e)[1L], e$message  ) )
+} )
+# or using a direct handler
+tryCatch(  funx(), "std::range_error" = function(e){
+        cat( sprintf( "C++ exception of class '%s' : %s\n", class(e)[1L], e$message  ) )
+} )
+# just to check things carry on
+print( rnorm(10) )
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/external_pointer.r
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/external_pointer.r	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/external_pointer.r	(revision 2476)
@@ -0,0 +1,113 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2009 - 2010	Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+require(Rcpp)
+require(inline)
+
+
+## NOTE: This is the old way to compile Rcpp code inline.
+## The code here has left as a historical artifact and tribute to the old way.
+## Please use the code under the "new" inline compilation section.
+
+funx_old <- cxxfunction(signature(), '
+	/* creating a pointer to a vector<int> */
+	std::vector<int>* v = new std::vector<int> ;
+	v->push_back( 1 ) ;
+	v->push_back( 2 ) ;
+	
+	/* wrap the pointer as an external pointer */
+	/* this automatically protected the external pointer from R garbage 
+	   collection until p goes out of scope. */
+	Rcpp::XPtr< std::vector<int> > p(v) ;
+	
+	/* return it back to R, since p goes out of scope after the return 
+	   the external pointer is no more protected by p, but it gets 
+	   protected by being on the R side */
+	return( p ) ;
+', plugin = "Rcpp" )
+xp <- funx_old()
+stopifnot( identical( typeof( xp ), "externalptr" ) )
+
+# passing the pointer back to C++
+funx_old <- cxxfunction(signature(x = "externalptr" ), '
+	/* wrapping x as smart external pointer */
+	/* The SEXP based constructor does not protect the SEXP from 
+	   garbage collection automatically, it is already protected 
+	   because it comes from the R side, however if you want to keep 
+	   the Rcpp::XPtr object on the C(++) side
+	   and return something else to R, you need to protect the external
+	   pointer, by using the protect member function */
+	Rcpp::XPtr< std::vector<int> > p(x) ;
+	
+	/* just return the front of the vector as a SEXP */
+	return( Rcpp::wrap( p->front() ) ) ;
+', plugin = "Rcpp" )
+front <- funx_old(xp)
+stopifnot( identical( front, 1L ) )
+
+
+## NOTE: Within this section, the new way to compile Rcpp code inline has been
+## written. Please use the code next as a template for your own project.
+
+## Use of the cppFunction() gives the ability to immediately compile embedded 
+## C++ directly within R without having to worry about header specification or 
+## Rcpp attributes.
+
+cppFunction('
+Rcpp::XPtr< std::vector<int> >  funx(){
+    /* creating a pointer to a vector<int> */
+    std::vector<int>* v = new std::vector<int> ;
+    v->push_back( 1 ) ;
+    v->push_back( 2 ) ;
+        
+    /* wrap the pointer as an external pointer */
+    /* this automatically protected the external pointer from R garbage 
+     *   collection until p goes out of scope. 
+     */
+    Rcpp::XPtr< std::vector<int> > p(v) ;
+        
+    /* return it back to R, since p goes out of scope after the return 
+     * the external pointer is no more protected by p, but it gets 
+     * protected by being on the R side 
+     */
+    return( p ) ;
+}')
+
+xp <- funx()
+stopifnot( identical( typeof( xp ), "externalptr" ) )
+
+# passing the pointer back to C++
+cppFunction('
+SEXP funx_pt(Rcpp::XPtr< std::vector<int> > p){
+    /* Wrapping x as smart external pointer */
+
+    /* The SEXP based constructor does not protect the SEXP from 
+     * garbage collection automatically, it is already protected 
+     * because it comes from the R side, however if you want to keep 
+     * the Rcpp::XPtr object on the C(++) side
+     * and return something else to R, you need to protect the external
+     * pointer, by using the protect member function 
+     */
+
+    /* Just return the front of the vector as a SEXP */
+    return Rcpp::wrap(p->front());
+}')
+front <- funx_pt(xp)
+stopifnot( identical( front, 1L ) )
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/RObject.r
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/RObject.r	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/RObject.r	(revision 2476)
@@ -0,0 +1,271 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2009 - 2010  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+## NB This file is mostly historic and predates the unit tests.
+##    Yet it still provides useful examples -- but the unitTests/
+##    for vastly larger coverage
+
+suppressMessages(library(Rcpp))
+suppressMessages(library(inline))
+
+cat("===Doubles\n")
+foo <- '
+        double d = Rcpp::as<double>(x);
+	std::cout << "Returning twice the value of " << d << " : ";
+	return(Rcpp::wrap( 2*d ) );
+        '
+funx <- cfunction(signature(x="numeric"), foo, Rcpp=TRUE, verbose=FALSE)
+cat(funx(x=2.123), "\n")
+cat(funx(x=2), "\n")
+##funx(x='2')  ## throws as expected
+##funx(x=2:3)  ## throws as expected
+
+
+cat("\n===Int\n")
+foo <- '
+        int i = Rcpp::as<int>(x);
+	std::cout << "Returning twice the value of " << i << " : ";
+	return(Rcpp::wrap( 2*i ) );
+        '
+funx <- cfunction(signature(x="numeric"), foo, Rcpp=TRUE, verbose=FALSE)
+cat(funx(x=2), "\n")
+cat(funx(x=2.2), "\n")
+funx <- cfunction(signature(x="raw"), foo, Rcpp=TRUE, verbose=FALSE)
+cat(funx(x=as.raw(2)), "\n")
+
+cat("\n===String\n")
+foo <- '
+        std::string s = Rcpp::as<std::string>(x);
+	std::cout << "Returning twice the value of " << s << " : ";
+	return(Rcpp::wrap( s+s ) );
+        '
+funx <- cfunction(signature(x="character"), foo, Rcpp=TRUE, verbose=FALSE)
+cat(funx(x="abc"), "\n")
+
+cat("\n===Raw (bytes)\n")
+foo <- '
+        Rbyte i = Rcpp::as<Rbyte>(x) ;
+	std::cout << "Returning twice the value of " << (int)i << " : ";
+	return(Rcpp::wrap( (Rbyte)(2*i) ) );
+        '
+funx <- cfunction(signature(x="numeric"), foo, Rcpp=TRUE, verbose=FALSE)
+cat( funx(x=2), "\n")
+funx <- cfunction(signature(x="integer"), foo, Rcpp=TRUE, verbose=FALSE)
+cat( funx(x=2L), "\n")
+funx <- cfunction(signature(x="raw"), foo, Rcpp=TRUE, verbose=FALSE)
+cat( funx(x=as.raw(2)), "\n")
+
+cat("\n=== logical \n")
+foo <- '
+bool b = Rcpp::as<bool>(x);
+std::cout << "flip  " << ( b ? "TRUE" : "FALSE" ) << " : ";
+return(Rcpp::wrap( !b ));
+'
+funx <- cfunction(signature(x="logical"), foo, Rcpp=TRUE, verbose=FALSE)
+cat( res <- funx(x=TRUE) , "\n")  ; stopifnot( !res )
+cat( res <- funx(x=FALSE), "\n" ) ; stopifnot( res)
+funx <- cfunction(signature(x="numeric"), foo, Rcpp=TRUE, verbose=FALSE)
+cat( res <- funx(x=2)  , "\n")   ; stopifnot( !res )
+cat( res <- funx(x=0.0), "\n")   ; stopifnot( res)
+funx <- cfunction(signature(x="integer"), foo, Rcpp=TRUE, verbose=FALSE)
+cat( res <- funx(x=2L), "\n")    ; stopifnot( !res )
+cat( res <- funx(x=0L), "\n")    ; stopifnot( res)
+funx <- cfunction(signature(x="raw"), foo, Rcpp=TRUE, verbose=FALSE)
+cat( res <- funx(x=as.raw(2)), "\n") ; stopifnot( !res )
+cat( res <- funx(x=as.raw(0)), "\n") ; stopifnot( res)
+
+### vectors
+
+cat("\n===Int Vector via wrap\n")
+foo <- '
+        std::vector<int> iv = Rcpp::as< std::vector<int> >(x) ;
+	std::cout << "Returning twice the value of vector : ";
+        for (size_t i=0; i<iv.size(); i++) {
+            iv[i] = 2*iv[i];
+        }
+        return(Rcpp::wrap(iv));
+        '
+funx <- cfunction(signature(x="numeric"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=2:5))
+funx <- cfunction(signature(x="integer"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=2:5))
+funx <- cfunction(signature(x="raw"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=as.raw(2:5)))
+
+cat("\n===Int Vector\n")
+foo <- '
+        std::vector<int> iv = Rcpp::as< std::vector<int> >(x) ;
+	std::cout << "Returning twice the value of vector : ";
+        for (size_t i=0; i<iv.size(); i++) {
+            iv[i] = 2*iv[i];
+        }
+	return(Rcpp::wrap( iv ) );
+        '
+funx <- cfunction(signature(x="numeric"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=2:5+.1))
+funx <- cfunction(signature(x="integer"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=2:5))
+funx <- cfunction(signature(x="raw"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=as.raw(2:5)))
+
+
+cat("\n===Double Vector\n")
+foo <- '
+        std::vector<double> iv = Rcpp::as< std::vector<double> >(x) ;
+	std::cout << "Returning twice the value of vector : ";
+        for (size_t i=0; i<iv.size(); i++) {
+            iv[i] = 2*iv[i];
+        }
+ 	return(Rcpp::wrap( iv ));
+        '
+funx <- cfunction(signature(x="numeric"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=0.1+2:5))
+funx <- cfunction(signature(x="integer"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=2:5))
+funx <- cfunction(signature(x="raw"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=as.raw(2:5)))
+
+cat("\n===Raw Vector\n")
+foo <- '
+        std::vector<Rbyte> iv = Rcpp::as< std::vector<Rbyte> >(x) ;
+	std::cout << "Returning twice the value of vector : ";
+        for (size_t i=0; i<iv.size(); i++) {
+            iv[i] = 2*iv[i];
+        }
+ 	return(Rcpp::wrap( iv ));
+        '
+funx <- cfunction(signature(x="raw"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=as.raw(0:9)))
+funx <- cfunction(signature(x="integer"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=0:9))
+funx <- cfunction(signature(x="numeric"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=0:9+.1))
+
+cat("\n=== vector<bool>\n")
+foo <- '
+std::vector<bool> bv = Rcpp::as< std::vector<bool> >(x) ;
+std::cout << "Flip the value of vector : ";
+for (size_t i=0; i<bv.size(); i++) {
+    bv[i].flip() ;
+}
+return(Rcpp::wrap( bv ));
+'
+funx <- cfunction(signature(x="logical"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=c(TRUE,FALSE)))
+funx <- cfunction(signature(x="raw"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=as.raw(0:9)))
+funx <- cfunction(signature(x="integer"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=0:9))
+funx <- cfunction(signature(x="numeric"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=as.numeric(0:9)))
+
+
+cat("\n===String Vector\n")
+foo <- '
+        std::vector<std::string> iv = Rcpp::as< std::vector<std::string> >(x);
+	std::cout << "Returning twice the value of vector : ";
+        for (size_t i=0; i<iv.size(); i++) {
+            iv[i] = iv[i] + iv[i];
+        }
+ 	return(Rcpp::wrap( iv ));
+        '
+funx <- cfunction(signature(x="character"), foo, Rcpp=TRUE, verbose=FALSE)
+print(funx(x=c("foo", "bar")))
+
+### using std::set
+cat("\n=== set<int>\n")
+foo <- '
+std::set<int> iv ;
+iv.insert( 0 ) ;
+iv.insert( 1 ) ;
+iv.insert( 0 ) ;
+return Rcpp::wrap( iv );'
+funx <- cfunction(signature(), foo, Rcpp=TRUE, verbose=FALSE, includes = "#include <set>" )
+print(res <- funx())
+stopifnot( identical( res, 0:1 ) )
+
+cat("\n=== set<double>\n")
+foo <- '
+std::set<double> ds;
+ds.insert( 0.0 );
+ds.insert( 1.0 );
+ds.insert( 0.0 );
+return(Rcpp::wrap( ds )); '
+funx <- cfunction(signature(), foo, Rcpp=TRUE, verbose=FALSE, includes = "#include <set>")
+print( res <- funx() )
+stopifnot( identical( res, as.numeric(0:1)))
+
+cat("\n=== set<raw>\n")
+foo <- '
+std::set<Rbyte> bs ;
+bs.insert( (Rbyte)0 ) ;
+bs.insert( (Rbyte)1 ) ;
+bs.insert( (Rbyte)0 ) ;
+return(Rcpp::wrap( bs )); '
+funx <- cfunction(signature(), foo, Rcpp=TRUE, verbose=FALSE, includes = "#include <set>")
+print( res <- funx() )
+stopifnot( identical( res, as.raw(0:1)))
+
+cat("\n=== set<string> \n")
+foo <- '
+std::set<std::string> ss ;
+ss.insert( "foo" ) ;
+ss.insert( "bar" ) ;
+ss.insert( "foo" ) ;
+return(Rcpp::wrap( ss )); '
+funx <- cfunction(signature(), foo, Rcpp=TRUE, verbose=FALSE, include = "#include <set>" )
+print( res <- funx() )
+stopifnot( identical( res, c("bar","foo")) )
+
+
+#========= attributes
+
+funx <- cfunction(
+	signature(x="data.frame"), '
+std::vector<std::string> iv = Rcpp::RObject(x).attributeNames();
+return(Rcpp::wrap( iv ));
+', Rcpp=TRUE, verbose=FALSE)
+res <- funx( iris )
+stopifnot( all( c("names", "row.names", "class" ) %in% res ) )
+
+funx <- cfunction(signature(x="data.frame"), '
+bool has_class = Rcpp::RObject(x).hasAttribute( "class" ) ;
+return Rcpp::wrap( has_class ) ;
+', Rcpp=TRUE, verbose=FALSE)
+res <- funx( iris )
+stopifnot( res )
+
+funx <- cfunction(signature(x="data.frame"), '
+return Rcpp::RObject(x).attr( "row.names" ) ;
+', Rcpp=TRUE, verbose=FALSE)
+res <- funx( iris )
+stopifnot( identical(res, 1:150) )
+
+#============ NULL
+funx <- cfunction(signature(x="ANY"), '
+bool is_null = Rcpp::RObject(x).isNULL() ;
+return Rcpp::wrap( is_null ) ;
+', Rcpp=TRUE, verbose=FALSE)
+res <- funx( iris )
+stopifnot( !res )
+res <- funx( NULL )
+stopifnot( res )
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/RcppInlineWithLibsExamples.r
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/RcppInlineWithLibsExamples.r	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/examples/RcppInline/RcppInlineWithLibsExamples.r	(revision 2476)
@@ -0,0 +1,351 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2009 - 2016  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+suppressMessages(library(Rcpp))
+suppressMessages(library(RcppGSL))
+
+## NOTE: This is the old way to compile Rcpp code inline.
+## The code here has left as a historical artifact and tribute to the old way.
+## Please use the code under the "new" inline compilation section.
+
+suppressMessages(library(inline))
+
+firstExample_old <- function() {
+    ## a really simple C program calling three functions from the GSL
+    gslrng <- '
+    gsl_rng *r;
+    gsl_rng_env_setup();
+    double v;
+
+    r = gsl_rng_alloc (gsl_rng_default);
+
+    printf("  generator type: %s\\n", gsl_rng_name (r));
+    printf("  seed = %lu\\n", gsl_rng_default_seed);
+    v = gsl_rng_get (r);
+    printf("  first value = %.0f\\n", v);
+
+    gsl_rng_free(r);
+    return R_NilValue;
+    '
+
+    ## turn into a function that R can call
+    ## compileargs redundant on Debian/Ubuntu as gsl headers are found anyway
+    funx_old <- cxxfunction(signature(), gslrng,
+                            includes="#include <gsl/gsl_rng.h>",
+                            plugin="RcppGSL")
+
+    cat("Calling first example\n")
+    funx_old()
+    invisible(NULL)
+}
+
+secondExample_old <- function() {
+
+    ## now use Rcpp to pass down a parameter for the seed
+    gslrng <- '
+    int seed = Rcpp::as<int>(par) ;
+
+    gsl_rng *r;
+    gsl_rng_env_setup();
+    double v;
+
+    r = gsl_rng_alloc (gsl_rng_default);
+
+    gsl_rng_set (r, (unsigned long) seed);
+    v = gsl_rng_get (r);
+
+    #ifndef BeSilent
+    printf("  generator type: %s\\n", gsl_rng_name (r));
+    printf("  seed = %d\\n", seed);
+    printf("  first value = %.0f\\n", v);
+    #endif
+
+    gsl_rng_free(r);
+    return Rcpp::wrap(v) ;
+    '
+
+    ## turn into a function that R can call
+    ## compileargs redundant on Debian/Ubuntu as gsl headers are found anyway
+    ## use additional define for compile to suppress output
+    funx_old <- cxxfunction(signature(par="numeric"), gslrng,
+                            includes="#include <gsl/gsl_rng.h>",
+                            plugin="RcppGSL")
+    cat("\n\nCalling second example without -DBeSilent set\n")
+    print(funx_old(0))
+
+
+    ## now override settings to add -D flag
+    settings <- getPlugin("RcppGSL")
+    settings$env$PKG_CPPFLAGS <- paste(settings$PKG_CPPFLAGS, "-DBeSilent")
+    
+    funx_old <- cxxfunction(signature(par="numeric"), gslrng,
+                            includes="#include <gsl/gsl_rng.h>",
+                            settings=settings)
+    cat("\n\nCalling second example with -DBeSilent set\n")
+    print(funx_old(0))
+
+    invisible(NULL)
+}
+
+thirdExample_old <- function() {
+
+    ## now use Rcpp to pass down a parameter for the seed, and a vector size
+    gslrng <- '
+    int seed = Rcpp::as<int>(s) ;
+    int len = Rcpp::as<int>(n);
+
+    gsl_rng *r;
+    gsl_rng_env_setup();
+    std::vector<double> v(len);
+
+    r = gsl_rng_alloc (gsl_rng_default);
+
+    gsl_rng_set (r, (unsigned long) seed);
+    for (int i=0; i<len; i++) {
+       v[i] = gsl_rng_get (r);
+    }
+    gsl_rng_free(r);
+
+    return Rcpp::wrap(v) ;
+    '
+
+    ## turn into a function that R can call
+    ## compileargs redundant on Debian/Ubuntu as gsl headers are found anyway
+    ## use additional define for compile to suppress output
+    funx_old <- cxxfunction(signature(s="numeric", n="numeric"),
+                            gslrng,
+                            includes="#include <gsl/gsl_rng.h>",
+                            plugin="RcppGSL")
+    cat("\n\nCalling third example with seed and length\n")
+    print(funx_old(0, 5))
+
+    invisible(NULL)
+}
+
+fourthExample_old <- function() {
+
+    ## now use Rcpp to pass down a parameter for the seed, and a vector size
+    gslrng <- '
+    int seed = Rcpp::as<int>(s);
+    int len = Rcpp::as<int>(n);
+
+    gsl_rng *r;
+    gsl_rng_env_setup();
+    std::vector<double> v(len);
+
+    r = gsl_rng_alloc (gsl_rng_default);
+
+    gsl_rng_set (r, (unsigned long) seed);
+    for (int i=0; i<len; i++) {
+       v[i] = gsl_rng_get (r);
+    }
+    gsl_rng_free(r);
+
+    return wrap(v);
+    '
+
+    ## turn into a function that R can call
+    ## compileargs redundant on Debian/Ubuntu as gsl headers are found anyway
+    ## use additional define for compile to suppress output
+    funx_old <- cxxfunction(signature(s="numeric", n="numeric"),
+                            gslrng,
+                            includes=c("#include <gsl/gsl_rng.h>",
+                                       "using namespace Rcpp;",
+                                       "using namespace std;"),
+                            plugin="RcppGSL")
+    cat("\n\nCalling fourth example with seed, length and namespaces\n")
+    print(funx_old(0, 5))
+
+    invisible(NULL)
+}
+
+## NOTE: Within this section, the new way to compile Rcpp code inline has been
+## written. Please use the code next as a template for your own project.
+
+firstExample <- function() {
+    ## a really simple C program calling three functions from the GSL
+
+    sourceCpp(code='
+#include <RcppGSL.h>
+#include <gsl/gsl_rng.h>
+
+// [[Rcpp::depends(RcppGSL)]]
+
+// [[Rcpp::export]]
+SEXP funx(){
+    gsl_rng *r;
+    gsl_rng_env_setup();
+    double v;
+    
+    r = gsl_rng_alloc (gsl_rng_default);
+    
+    printf("  generator type: %s\\n", gsl_rng_name (r));
+    printf("  seed = %lu\\n", gsl_rng_default_seed);
+    v = gsl_rng_get (r);
+    printf("  first value = %.0f\\n", v);
+    
+    gsl_rng_free(r);
+    return R_NilValue;
+}')
+    
+    cat("Calling first example\n")
+    funx()
+    invisible(NULL)
+}
+
+secondExample <- function() {
+    
+    ## now use Rcpp to pass down a parameter for the seed
+    
+    ## turn into a function that R can call
+    ## compileargs redundant on Debian/Ubuntu as gsl headers are found anyway
+    ## use additional define for compile to suppress output
+
+    gslrng <- '
+    #include <RcppGSL.h>
+    #include <gsl/gsl_rng.h>
+    
+    // [[Rcpp::depends(RcppGSL)]]
+    
+    // [[Rcpp::export]]
+    double funx(int seed){
+    
+    gsl_rng *r;
+    gsl_rng_env_setup();
+    double v;
+    
+    r = gsl_rng_alloc (gsl_rng_default);
+    
+    gsl_rng_set (r, (unsigned long) seed);
+    v = gsl_rng_get (r);
+    
+    #ifndef BeSilent
+    printf("  generator type: %s\\n", gsl_rng_name (r));
+    printf("  seed = %d\\n", seed);
+    printf("  first value = %.0f\\n", v);
+    #endif
+    
+    gsl_rng_free(r);
+    return v;
+    }'
+
+    sourceCpp(code=gslrng, rebuild = TRUE)
+    
+    cat("\n\nCalling second example without -DBeSilent set\n")
+    print(funx(0))
+    
+    
+    ## now override settings to add -D flag
+    o = Sys.getenv("PKG_CPPFLAGS")
+    Sys.setenv("PKG_CPPFLAGS" = paste(o, "-DBeSilent"))
+    
+    sourceCpp(code=gslrng, rebuild = TRUE)
+    
+    # Restore environment flags
+    Sys.setenv("PKG_CPPFLAGS" = o )
+    
+    cat("\n\nCalling second example with -DBeSilent set\n")
+    print(funx(0))
+    
+    invisible(NULL)
+}
+
+thirdExample <- function() {
+    
+    ## now use Rcpp to pass down a parameter for the seed, and a vector size
+    
+    ## turn into a function that R can call
+    ## compileargs redundant on Debian/Ubuntu as gsl headers are found anyway
+    ## use additional define for compile to suppress output
+    
+    sourceCpp(code='
+    #include <RcppGSL.h>
+    #include <gsl/gsl_rng.h>
+    
+    // [[Rcpp::depends(RcppGSL)]]
+    
+    // [[Rcpp::export]]
+    std::vector<double> funx(int seed, int len){
+    
+    gsl_rng *r;
+    gsl_rng_env_setup();
+    std::vector<double> v(len);
+    
+    r = gsl_rng_alloc (gsl_rng_default);
+    
+    gsl_rng_set (r, (unsigned long) seed);
+    for (int i=0; i<len; i++) {
+       v[i] = gsl_rng_get (r);
+    }
+    gsl_rng_free(r);
+    
+    return v;
+    }')
+    
+    cat("\n\nCalling third example with seed and length\n")
+    print(funx(0, 5))
+    
+    invisible(NULL)
+}
+
+fourthExample <- function() {
+    
+    ## now use Rcpp to pass down a parameter for the seed, and a vector size
+    
+    ## turn into a function that R can call
+    ## compileargs redundant on Debian/Ubuntu as gsl headers are found anyway
+    ## use additional define for compile to suppress output
+    
+    sourceCpp(code='
+    #include <RcppGSL.h>
+    #include <gsl/gsl_rng.h>
+
+    using namespace Rcpp;
+    using namespace std;
+    
+    // [[Rcpp::depends(RcppGSL)]]
+    
+    // [[Rcpp::export]]
+    std::vector<double> funx(int seed, int len){
+
+    gsl_rng *r;
+    gsl_rng_env_setup();
+    std::vector<double> v(len);
+    
+    r = gsl_rng_alloc (gsl_rng_default);
+    
+    gsl_rng_set (r, (unsigned long) seed);
+    for (int i=0; i<len; i++) {
+    v[i] = gsl_rng_get (r);
+    }
+    gsl_rng_free(r);
+    
+    return v;
+    }')
+    
+    cat("\n\nCalling fourth example with seed, length and namespaces\n")
+    print(funx(0, 5))
+    
+    invisible(NULL)
+}
+
+firstExample()
+secondExample()
+thirdExample()
+fourthExample()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/NEWS.Rd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/NEWS.Rd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/NEWS.Rd	(revision 2476)
@@ -0,0 +1,2119 @@
+\name{NEWS}
+\title{News for Package \pkg{Rcpp}}
+\newcommand{\ghpr}{\href{https://github.com/RcppCore/Rcpp/pull/#1}{##1}}
+\newcommand{\ghit}{\href{https://github.com/RcppCore/Rcpp/issues/#1}{##1}}
+
+\section{Changes in Rcpp version 0.12.9 (2017-01-14)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item The exception stack message is now correctly demangled on all
+      compiler versions (Jim Hester in \ghpr{598})
+      \item Date and Datetime object and vector now have format methods and
+      \code{operator<<} support (\ghpr{599}).
+      \item The \code{size} operator in \code{Matrix} is explicitly referenced
+      avoiding a g++-6 issues (\ghpr{607} fixing \ghit{605}).
+      \item The underlying date calculation code was updated (\ghpr{621},
+      \ghpr{623}).
+      \item Addressed improper diagonal fill for non-symmetric matrices
+      (James Balamuta in \ghpr{622} addressing \ghit{619})
+    }
+    \item Changes in Rcpp Sugar:
+    \itemize{
+      \item Added new Sugar function \code{sample()} (Nathan Russell in 
+      \ghpr{610} and \ghpr{616}).
+      \item Added new Sugar function \code{Arg()} (James Balamuta in 
+      \ghpr{626} addressing \ghit{625}).
+    }
+    \item Changes in Rcpp unit tests
+    \itemize{
+      \item Added Environment::find unit tests and an Environment::get(Symbol)
+      test (James Balamuta in \ghpr{595} addressing issue \ghit{594}).
+      \item Added diagonal matrix fill tests
+      (James Balamuta in \ghpr{622} addressing \ghit{619})
+    }
+    \item Changes in Rcpp Documentation:
+    \itemize{
+      \item Exposed pointers macros were included in the Rcpp Extending vignette
+      (MathurinD; James Balamuta in \ghpr{592} addressing \ghit{418}).
+      \item The file \code{Rcpp.bib} move to directory \code{bib} which is
+      guaranteed to be present (\ghpr{631}).
+    }
+    \item Changes in Rcpp build system
+    \itemize{
+      \item Travis CI now also calls \CRANpkg{covr} for coverage analysis (Jim
+      Hester in PR \ghpr{591})
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.12.8 (2016-11-16)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item String and vector elements now use extended \code{R_xlen_t} indices
+      (Qiang in PR \ghpr{560})
+      \item Hashing functions now return unsigned int (Qiang in PR \ghpr{561}) 
+      \item Added static methods \code{eye()}, \code{ones()}, and \code{zeros()} 
+      for select matrix types (Nathan Russell in PR \ghpr{569})
+      \item The exception call stack is again correctly reported; print methods
+      and tests added too (Jim Hester in PR \ghpr{582} fixing \ghit{579})
+      \item Variatic macros no longer use a GNU extensions (Nathan in PR
+      \ghpr{575})
+      \item Hash index functions were standardized on returning unsigned
+      integers (Also PR \ghpr{575})
+    }
+    \item Changes in Rcpp Sugar:
+    \itemize{
+      \item Added new Sugar functions \code{rowSums()}, \code{colSums()},
+      \code{rowMeans()}, \code{colMeans()} (PR \ghpr{551} by Nathan Russell 
+      fixing \ghit{549})
+      \item \code{Range} Sugar now used \code{R_xlen_t} type for start/end
+      (PR \ghpr{568} by Qiang Kou)
+      \item Defining \code{RCPP_NO_SUGAR} no longer breaks the build.
+      (PR \ghpr{585} by Daniel C. Dillon)
+    }
+    \item Changes in Rcpp unit tests
+    \itemize{
+      \item A test for expression vectors was corrected.
+      \item The constructor test for datetime vectors reflects the new classes
+      which treats Inf correctly (and still as a non-finite value)
+    }
+    \item Changes in Rcpp Attributes
+    \itemize{
+      \item An 'empty' return was corrected (PR \ghpr{589} fixing issue
+      \ghit{588}, and with thanks to Duncan Murdoch for the heads-up)
+    }
+    \item Updated Date and Datetime vector classes:
+    \itemize{
+      \item The \code{DateVector} and \code{DatetimeVector} classes were renamed
+      with a prefix \code{old}; they are currently \code{typedef}'ed to the
+      existing name (\ghpr{557})
+      \item New variants \code{newDateVector} and \code{newDatetimeVector} were
+      added based on \code{NumericVector} (also \ghpr{557}, \ghpr{577},
+      \ghpr{581}, \ghpr{587})
+      \item By defining \code{RCPP_NEW_DATE_DATETIME_VECTORS} the new classes
+      can activated. We intend to make the new classes the default no sooner
+      than twelve months from this release.
+      \item The \code{capabilities()} function can also be used for presence of
+      this feature 
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.12.7 (2016-09-04)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item The \code{NORET} macro is now defined if it was not already defined
+      by R itself (Kevin fixing issue \ghit{512}). 
+      \item Environment functions get() & find() now accept a Symbol
+      (James Balamuta in \ghpr{513} addressing issue \ghit{326}).
+      \item Several uses of \code{Rf_eval} were replaced by the preferred
+      \code{Rcpp::Rcpp_eval} (Qiang in PR \ghpr{523} closing \ghit{498}).
+      \item Improved Autogeneration Warning for RcppExports
+      (James Balamuta in \ghpr{528} addressing issue \ghit{526}).
+      \item Fixed invalid C++ prefix identifiers in auto-generated code 
+      (James Balamuta in \ghpr{528} and \ghpr{531} addressing issue
+      \ghit{387}; Simon Dirmeier in \ghpr{548}). 
+      \item String constructors now set default UTF-8 encoding (Qiang Kou in
+      \ghpr{529} fixing \ghit{263}).
+      \item Add variadic variants of the \code{RCPP_RETURN_VECTOR} and
+      \code{RCPP_RETURN_MATRIX} macro when C++11 compiler used (Artem Klevtsov
+      in \ghpr{537} fixing \ghit{38}).
+    }
+    \item Changes in Rcpp build system
+    \itemize{
+      \item Travis CI is now driven via \code{run.sh} from our fork, and deploys
+      all packages as .deb binaries using our PPA where needed (Dirk in
+      \ghpr{540} addressing issue \ghit{517}).
+    }
+    \item Changes in Rcpp unit tests
+    \itemize{
+      \item New unit tests for random number generators the R namespace which 
+      call the standalone Rmath library. (James Balamuta in \ghpr{514} 
+      addressing issue \ghit{28}).
+    }
+    \item Changes in Rcpp Examples:
+    \itemize{
+      \item Examples that used cxxfunction() from the inline package have been
+      rewritten to use either sourceCpp() or cppFunction() 
+      (James Balamuta in \ghpr{541}, \ghpr{535}, \ghpr{534}, and \ghpr{532} 
+      addressing issue \ghit{56}).
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.12.6 (2016-07-18)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item The \code{long long} data type is used only if it is available,
+      to avoid compiler warnings (Kirill Müller in \ghpr{488}).
+      \item The compiler is made aware that \code{stop()} never returns, to
+      improve code path analysis (Kirill Müller in \ghpr{487} addressing issue
+      \ghit{486}).
+      \item String replacement was corrected (Qiang in \ghpr{479} following
+      mailing list bug report by Masaki Tsuda)
+      \item Allow for UTF-8 encoding in error messages via
+      \code{RCPP_USING_UTF8_ERROR_STRING} macro (Qin Wenfeng in \ghpr{493}) 
+      \item The R function \code{Rf_warningcall} is now provided as well (as
+      usual without leading \code{Rf_}) (\ghpr{497} fixing \ghit{495}) 
+    }
+    \item Changes in Rcpp Sugar:
+    \itemize{
+      \item Const-ness of \code{min} and \code{max} functions has been corrected.
+      (Dan Dillon in PR \ghpr{478} fixing issue \ghit{477}).
+      \item Ambiguities for matrix/vector and scalar operations have been fixed
+      (Dan Dillon in PR \ghpr{476} fixing issue \ghit{475}).
+      \item New \code{algorithm} header using iterator-based approach for
+      vectorized functions (Dan in PR \ghpr{481} revisiting PR \ghpr{428} and
+      addressing issue \ghit{426}, with futher work by Kirill in PR \ghpr{488}
+      and Nathan in \ghpr{503} fixing issue \ghit{502}).
+      \item The \code{na_omit()} function is now faster for vectors without
+      \code{NA} values (Artem Klevtsov in PR \ghpr{492})
+    }
+    \item Changes in Rcpp Attributes:
+    \itemize{
+      \item Add \code{cacheDir} argument to \code{sourceCpp()} to enable caching of 
+        shared libraries across R sessions (JJ in \ghpr{504}).
+      \item Code generation now deals correctly which packages containing a dot
+      in their name (Qiang in \ghpr{501} fixing \ghit{500}).
+    }
+    \item Changes in Rcpp Documentation:
+    \itemize{
+      \item A section on default parameters was added to the Rcpp FAQ vignette
+      (James Balamuta in \ghpr{505} fixing \ghit{418}).
+      \item The Rcpp-attributes vignette is now mentioned more prominently in
+      question one of the Rcpp FAQ vignette.
+      \item The Rcpp Quick Reference vignette received a facelift with new
+      sections on Rcpp attributes and plugins begin added. (James Balamuta in
+      \ghpr{509} fixing \ghit{484}).
+      \item The bib file was updated with respect to the recent JSS publication
+      for RProtoBuf.
+    }
+  }
+}
+      
+\section{Changes in Rcpp version 0.12.5 (2016-05-14)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item The checks for different C library implementations now also check for Musl
+      used by Alpine Linux (Sergio Marques in PR \ghpr{449}).
+      \item \code{Rcpp::Nullable} works better with Rcpp::String (Dan Dillon in
+      PR \ghpr{453}).
+    }
+    \item Changes in Rcpp Attributes:
+    \itemize{
+      \item R 3.3.0 Windows with Rtools 3.3 is now supported (Qin Wenfeng in PR
+      \ghpr{451}). 
+      \item Correct handling of dependent file paths on Windows (use winslash = "/").
+    }
+    \item Changes in Rcpp Modules:
+    \itemize{
+      \item An apparent race condition in Module loading seen with R 3.3.0 was
+      fixed (Ben Goodrich in \ghpr{461} fixing \ghit{458}).
+      \item The (older) \code{loadRcppModules()} is now deprecated in favour of
+      \code{loadModule()} introduced around R 2.15.1 and Rcpp 0.9.11 (PR \ghpr{470}).
+    }
+    \item Changes in Rcpp support functions:
+    \itemize{
+      \item The \code{Rcpp.package.skeleton()} function was again updated in
+      order to create a \code{DESCRIPTION} file which passes \code{R CMD check}
+      without notes. warnings, or error under R-release and R-devel (PR \ghpr{471}).
+      \item A new function \code{compilerCheck} can test for minimal \code{g++}
+      versions (PR \ghpr{474}).
+    }
+  }
+}
+      
+\section{Changes in Rcpp version 0.12.4 (2016-03-22)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item New accessors \code{as()} and \code{clone()} were added to the
+      \code{Nullable} class (Dan in PR \ghpr{423} closing \ghit{421})
+      \item The \code{Nullable<>::operator SEXP()} and
+      \code{Nullable<>::get()} now also work for \code{const} objects
+      (Kirill Mueller in PR \ghpr{417}).
+      \item A subsetting error was fixed (Qiang via \ghpr{432} closing
+      \ghit{431}).
+    }
+    \item Changes in Rcpp Sugar:
+    \itemize{
+      \item Added new Sugar function \code{median()} (Nathan in PR \ghpr{425}
+      closing \ghit{424})
+      \item Added new Sugar function \code{cbind()} (Nathan in PR \ghpr{447}
+      closing \ghit{407})
+    }
+    \item Changes in Rcpp Attributes:
+    \itemize{
+      \item A plugin for C++14 was added (Dan in PR \ghpr{427})
+    }
+    \item Changes in Rcpp Documentation:
+    \itemize{
+      \item An entry was added to the Rcpp-FAQ vignette describing the required
+      packages for vignette building (\ghit{422}).
+      \item Use on OS X was further detailed (James Balamuta in \ghpr{433} with
+      further review by Bob Rudis).
+      \item An entry was added concerning the hard-code limit of arguments to
+      some constructor and function (cf \ghit{435}).
+      \item The Rcpp-FAQ vignette now contains a table of content.
+      \item Typos and indentation were corrected in the Rcpp Sugar vignette
+      (\ghpr{445} by Colin Gillespie).
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.12.3 (2016-01-10)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item Const iterators now \code{CharacterVector} now behave like regular
+      iterators (PR \ghpr{404} by Dan fixing \ghit{362}).
+      \item Math operators between matrix and scalars type have been added (PR
+      \ghpr{406} by Qiang fixing \ghit{365}).
+      \item A missing \code{std::hash} function interface for
+      \code{Rcpp::String} has been addded (PR \ghpr{408} by Qiang fixing
+      \ghit{84}). 
+    }
+    \item Changes in Rcpp Attributes:
+    \itemize{
+      \item Avoid invalid function names when generating C++ interfaces (PR
+      \ghpr{403} by JJ fixing \ghit{402}).
+      \item Insert additional space around \code{&} in function interface (PR 
+      \ghpr{400} by Kazuki Fukui fixing \ghit{278}).
+    }
+    \item Changes in Rcpp Modules:
+    \itemize{
+      \item The copy constructor now initialized the base class (PR \ghpr{411}
+      by Joshua Pritikin fixing \ghit{410})
+    }
+    \item Changes in Rcpp Repository:
+    \itemize{
+      \item Added a file \code{Contributing.md} providing some points to
+      potential contributors (PR \ghpr{414} closing issue \ghit{413})
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.12.2 (2015-11-14)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item Correct return type in product of matrix dimensions (PR \ghpr{374}
+      by Florian)
+      \item Before creating a single String object from a \code{SEXP}, ensure
+      that it is from a vector of length one (PR \ghpr{376} by Dirk, fixing
+      \ghit{375}). 
+      \item No longer use \code{STRING_ELT} as a left-hand side, thanks to a
+      heads-up by Luke Tierney (PR \ghpr{378} by Dirk, fixing \ghit{377}).
+      \item Rcpp Module objects are now checked more carefully (PR \ghpr{381}
+      by Tianqi, fixing \ghit{380})
+      \item An overflow in Matrix column indexing was corrected (PR \ghpr{390}
+      by Qiang, fixing a bug reported by Allessandro on the list)
+      \item \code{Nullable} types can now be assigned \code{R_NilValue} in
+      function signatures. (PR \ghpr{395} by Dan, fixing issue \ghit{394})
+      \item \code{operator<<()} now always shows decimal points (PR \ghpr{396}
+      by Dan)
+      \item Matrix classes now have a \code{transpose()} function (PR \ghpr{397}
+      by Dirk fixing \ghit{383}) 
+      \item \code{operator<<()} for complex types was added (PRs \ghpr{398} by
+      Qiang and \ghpr{399} by Dirk, fixing \ghit{187})
+    }
+    \item Changes in Rcpp Attributes:
+    \itemize{
+      \item Enable export of C++ interface for functions that return void.
+    }
+    \item Changes in Rcpp Sugar:
+    \itemize{
+      \item Added new Sugar function \code{cummin()}, \code{cummax()},
+      \code{cumprod()} (PR \ghpr{389} by Nathan Russell fixing \ghit{388})
+      \item Enabled sugar math operations for subsets; e.g. x[y] + x[z].
+      (PR \ghpr{393} by Kevin and Qiang, implementing \ghit{392})
+    }
+    \item Changes in Rcpp Documentation:
+    \itemize{
+      \item The \code{NEWS} file now links to GitHub issue tickets and pull
+      requests. 
+      \item The \code{Rcpp.bib} file with bibliographic references was updated.
+    }
+  }
+}
+      
+\section{Changes in Rcpp version 0.12.1 (2015-09-10)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item Correct use of WIN32 instead of _WIN32 to please Windows 10 
+      \item Add an assignment operator to \code{DimNameProxy} (PR \ghpr{339} by Florian)
+      \item Add vector and matrix accessors \code{.at()} with bounds checking
+      (PR \ghpr{342} by Florian) 
+      \item Correct character vector conversion from single char (PR \ghpr{344} by
+      Florian fixing issue \ghit{343})
+      \item Correct on use of \code{R_xlen_t} back to \code{size_t} (PR \ghpr{348} by
+      Romain)
+      \item Correct subsetting code to allow for single assignment (PR \ghpr{349} by
+      Florian)
+      \item Enable subset assignment on left and righ-hand side (PR \ghpr{353} by
+      Qiang, fixing issue \ghit{345})
+      \item Refreshed to included \code{tinyformat} template library (PR \ghpr{357} by
+      Dirk, issue \ghit{356})
+      \item Add \code{operator<<()} for vectors and matrices (PR \ghpr{361} by Dan
+      fixing issue \ghit{239})
+      \item Make \code{String} and \code{String_Proxy} objects comparable (PR
+      \ghpr{366} and PR \ghpr{372} by Dan, fixing issue \ghit{191})
+      \item Add a new class \code{Nullable} for objects which may be \code{NULL}
+      (PR \ghpr{368} by Dirk and Dan, fixing issue \ghit{363})
+      \item Correct creation and access of large matrices (PR \ghpr{370} by Florian,
+      fixing issue \ghit{369})
+    }
+    \item Changes in Rcpp Attributes:
+    \itemize{
+      \item Correctly reset directory in case of no-rebuilding but Windows code
+      (PR \ghpr{335} by Dirk)
+    }
+    \item Changes in Rcpp Modules:
+    \itemize{
+      \item We no longer define multiple Modules objects named \code{World} in
+      the unit tests with was seen to have a bad effect with R 3.2.2 or later
+      (PR \ghpr{351} by Dirk fixing issue \ghit{350}).
+      \item Applied patch by Kurt Hornik which improves how Rcpp loads Modules
+      (PR \ghpr{353} by Dirk)
+    }
+    \item Changes in Rcpp Documentation:
+    \itemize{
+      \item The \code{Rcpp.bib} file with bibliographic references was updated.
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.12.0 (2015-07-24)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item \code{Rcpp_eval()} no longer uses \code{R_ToplevelExec} when evaluating
+      R expressions; this should resolve errors where calling handlers (e.g.
+      through \code{suppressMessages()}) were not properly respected.
+      \item All internal length variables have been changed from \code{R_len_t}
+      to \code{R_xlen_t} to support vectors longer than 2^31-1 elements (via 
+      PR \ghpr{303} by Qiang Kou).
+      \item The sugar function \code{sapply} now supports lambda functions
+      (addressing \ghit{213} thanks to Matt Dziubinski)
+      \item The \code{var} sugar function now uses a more robust two-pass
+      method, supports complex numbers, with new unit tests added (via PR
+      \ghpr{320} by Matt Dziubinski) 
+      \item \code{String} constructors now allow encodings (via PR \ghpr{310}
+      by Qiang Kou)
+      \item \code{String} objects are preserving the underlying \code{SEXP}
+      objects better, and are more careful about initializations (via PRs
+      \ghpr{322} and \ghpr{329} by Qiang Kou)
+      \item DataFrame constructors are now a little more careful (via PR
+      \ghpr{301} by Romain Francois)
+      \item For R 3.2.0 or newer, \code{Rf_installChar()} is used instead of
+      \code{Rf_install(CHAR())} (via PR \ghpr{332}). 
+    }
+    \item Changes in Rcpp Attributes:
+    \itemize{
+      \item Use more robust method of ensuring unique paths for generated shared
+      libraries.
+      \item The \code{evalCpp} function now also supports the \code{plugins}
+      argument.
+      \item Correctly handle signature termination characters ('\{' or ';') contained
+      in quotes.
+    }
+    \item Changes in Rcpp Documentation:
+    \itemize{
+      \item The \code{Rcpp-FAQ} vignette was once again updated with respect to
+      OS X issues and Fortran libraries needed for e.g. \CRANpkg{RcppArmadillo}.
+      \item The included \code{Rcpp.bib} bibtex file (which is also used by
+      other Rcpp* packages) was updated with respect to its CRAN references.
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.11.6 (2015-05-01)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item The unwinding of exceptions was refined to protect against inadvertent
+      memory leaks.
+      \item Header files now try even harder not to let macro definitions leak.
+      \item Matrices have a new default constructor for zero-by-zero dimension
+      matrices (via a pull request by Dmitrii Meleshko).
+      \item A new \code{empty()} string constructor was added (via another pull
+      request).
+      \item Better support for Vectors with a storage policy different from the 
+      default, i.e. \code{NoProtectStorage}, was added.
+    }
+    \item Changes in Rcpp Attributes:
+    \itemize{
+      \item Rtools 3.3 is now supported.
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.11.5 (2015-03-04)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item An error handler for tinyformat was defined to prevent the \code{assert()}
+      macro from spilling.
+      \item The \code{Rcpp::warning} function was added as a wrapper for \code{Rf_warning}.
+      \item The \code{XPtr} class was extended with new \code{checked_get}
+      and \code{release} functions as well as improved behavior (throw an
+      exception rather than crash) when a NULL external pointer is dereferenced.
+      \item R code is evaluated within an \code{R_toplevelExec} block to prevent
+      user interrupts from bypassing C++ destructors on the stack.
+      \item The \code{Rcpp::Environment} constructor can now use a supplied
+      parent environment.
+      \item The \code{Rcpp::Function} constructor can now use a supplied
+      environment or namespace. 
+      \item The \code{attributes_hidden} macro from R is used to shield internal
+      functions; the \code{R_ext/Visibility.h} header is now included as well.
+      \item A \code{Rcpp::print} function was added as a wrapper around \code{Rf_PrintValue}. 
+    }
+    \item Changes in Rcpp Attributes:
+    \itemize{
+      \item The \code{pkg_types.h} file is now included in \code{RcppExports.cpp}
+      if it is present in either the \code{inst/include} or \code{src}. 
+      \item \code{sourceCpp} was modified to allow includes of local files 
+      (e.g. \code{#include "foo.hpp"}). Implementation files (*.cc; *.cpp) corresponding
+      to local includes are also automatically built if they exist.
+      \item The generated attributes code was simplified with respect to
+      \code{RNGScope} and now uses \code{RObject} and its destructor rather than \code{SEXP}
+      protect/unprotect.
+      \item Support addition of the \code{rng} parameter in \code{Rcpp::export}
+      to suppress the otherwise automatic inclusion of \code{RNGScope} in
+      generated code.
+      \item Attributes code was made more robust and can e.g. no longer recurse.
+      \item Version 3.2 of the Rtools is now correctly detected as well.
+      \item Allow 'R' to come immediately after '***' for defining embedded R
+      code chunks in sourceCpp.
+      \item The attributes vignette has been updated with documentation
+      on new features added over the past several releases.
+    }
+    \item Changes in Rcpp tests:
+    \itemize{
+      \item On Travis CI, all build dependencies are installed as binary
+      \code{.deb} packages resulting in faster tests.
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.11.4 (2015-01-20)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item The \code{ListOf<T>} class gains the \code{.attr} and
+      \code{.names} methods common to other Rcpp vectors.
+      \item The \code{[dpq]nbinom_mu()} scalar functions are now available via
+      the \code{R::} namespace when R 3.1.2 or newer is used.
+      \item Add an additional test for AIX before attempting to include \code{execinfo.h}.
+      \item \code{Rcpp::stop} now supports improved \code{printf}-like syntax
+      using the small tinyformat header-only library (following a similar
+      implementation in Rcpp11)
+      \item Pairlist objects are now protected via an additional \code{Shield<>}
+      as suggested by Martin Morgan on the rcpp-devel list.
+      \item Sorting is now prohibited at compile time for objects of type
+      \code{List}, \code{RawVector} and \code{ExpressionVector}.
+      \item Vectors now have a \code{Vector::const\_iterator} that is 'const correct'
+      thanks to fix by Romain following a bug report in rcpp-devel by Martyn Plummer.
+      \item The \code{mean()} sugar function now uses a more robust two-pass
+      method, and new unit tests for \code{mean()} were added at the same time.
+      \item The \code{mean()} and \code{var()} functions now support all core
+      vector types.
+      \item The \code{setequal()} sugar function has been corrected via
+      suggestion by Qiang Kou following a bug report by Søren Højsgaard.
+      \item The macros \code{major}, \code{minor}, and \code{makedev} no longer leak
+      in from the (Linux) system header \code{sys/sysmacros.h}.
+      \item The \code{push_front()} string function was corrected.
+    }
+    \item Changes in Rcpp Attributes:
+    \itemize{
+      \item Only look for plugins in the package's namespace
+      (rather than entire search path).
+      \item Also scan header files for definitions of functions to be considerd
+      by Attributes.
+      \item Correct the regular expression for source files which are scanned.
+    }
+    \item Changes in Rcpp unit tests
+    \itemize{
+      \item Added a new binary test which will load a pre-built package to
+      ensure that the Application Binary Interface (ABI) did not change; this
+      test will (mostly or) only run at Travis where we have reasonable control
+      over the platform running the test and can provide a binary.
+      \item New unit tests for sugar functions \code{mean}, \code{setequal} and
+      \code{var} were added as noted above.
+    }
+    \item Changes in Rcpp Examples:
+    \itemize{
+      \item For the (old) examples \code{ConvolveBenchmarks} and \code{OpenMP},
+      the respective \code{Makefile} was renamed to \code{GNUmakefile} to please
+      \code{R CMD check} as well as the CRAN Maintainers.
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.11.3 (2014-09-27)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item The deprecation of \code{RCPP_FUNCTION_*} which was announced with
+        release 0.10.5 last year is proceeding as planned, and the file
+        \code{macros/preprocessor_generated.h} has been removed.
+      \item \code{Timer} no longer records time between steps, but times from
+        the origin. It also gains a \code{get_timers(int)} methods that
+        creates a vector of \code{Timer} that have the same origin. This is modelled
+        on the \code{Rcpp11} implementation and is more useful for situations where
+        we use timers in several threads. \code{Timer} also gains a constructor
+        taking a \code{nanotime_t} to use as its origin, and a \code{origin} method.
+        This can be useful for situations where the number of threads is not known
+        in advance but we still want to track what goes on in each thread.
+      \item A cast to \code{bool} was removed in the vector proxy code as
+        inconsistent behaviour between clang and g++ compilations was noticed.
+      \item A missing \code{update(SEXP)} method was added thanks to pull
+        request by Omar Andres Zapata Mesa.
+      \item A proxy for \code{DimNames} was added.
+      \item A \code{no_init} option was added for Matrices and Vectors.
+      \item The \code{InternalFunction} class was updated to work with
+        \code{std::function} (provided a suitable C++11 compiler is available)
+        via a pull request by Christian Authmann.
+      \item A \code{new_env()} function was added to \code{Environment.h}
+      \item The return value of range eraser for Vectors was fixed in a pull
+        request by Yixuan Qiu.
+    }
+    \item Changes in Rcpp Sugar:
+    \itemize{
+      \item In \code{ifelse()}, the returned \code{NA} type was corrected for
+      \code{operator[]}.
+    }
+    \item Changes in Rcpp Attributes:
+    \itemize{
+      \item Include LinkingTo in DESCRIPTION fields scanned to confirm that
+      C++ dependencies are referenced by package.
+      \item Add \code{dryRun} parameter to \code{sourceCpp}.
+      \item Corrected issue with relative path and R chunk use for \code{sourceCpp}.
+    }
+    \item Changes in Rcpp Documentation:
+    \itemize{
+      \item The \code{Rcpp-FAQ} vignette was updated with respect to OS X issues.
+      \item A new entry in the \code{Rcpp-FAQ} clarifies the use of licenses.
+      \item Vignettes build results no longer copied to \code{/tmp} to please CRAN.
+      \item The Description in \code{DESCRIPTION} has been shortened.
+    }
+    \item Changes in Rcpp support functions:
+    \itemize{
+      \item The \code{Rcpp.package.skeleton()} function will now use
+      \CRANpkg{pkgKitten} package, if available, to create a package which passes
+      \code{R CMD check} without warnings. A new \code{Suggests:} has been added
+      for \CRANpkg{pkgKitten}.
+      \item The \code{modules=TRUE} case for \code{Rcpp.package.skeleton()} has
+      been improved and now runs without complaints from \code{R CMD check} as well.
+    }
+    \item Changes in Rcpp unit test functions:
+    \itemize{
+      \item Functions from the \CRANpkg{RUnit} package are now prefixed with \code{RUnit::}
+      \item The \code{testRcppModule} and \code{testRcppClass} sample packages
+      now pass \code{R CMD check --as-cran} cleanly with NOTES or WARNINGS
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.11.2 (2014-06-06)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item Implicit conversions, e.g. between \code{NumericVector} and
+      \code{IntegerVector}, will now give warnings if you use
+      \code{\#define RCPP_WARN_ON_COERCE} before including the Rcpp
+      headers.
+      \item Templated \code{List} containers, \code{ListOf<T>}, have been
+      introduced. When subsetting such containers, the return is assumed
+      to be of type T, allowing code such as
+      \code{ListOf<NumericVector> x; NumericVector y = x[0] + x[1] + x[2]}.
+      \item In a number of instances, returned results are protected and/or cast
+      more carefully.
+    }
+    \item Changes in Rcpp Attributes
+    \itemize{
+      \item Trailing line comments are now stripped by the attributes
+      parser. This allows the parser to handle C++ source files
+      containing comments inline with function arguments.
+      \item The \code{USE_CXX1X} environment variable is now defined by
+      the cpp11 plugin when R >= 3.1. Two additional plugins have been
+      added for use with C++0x (eg when using g++ 4.6.* as on Windows)
+      as well as C++1y for compilers beginning to support the next
+      revision of the standard; additional fallback is provided for
+      Windows.
+      \item \code{compileAttributes()} now also considers Imports: which
+      may suppress a warning when running \code{Rcpp.package.skeleton()}.
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.11.1 (2014-03-13)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item Preserve backwards compatibility with \CRANpkg{Rcpp} 0.10.* by
+      allowing \code{RObject} extraction from vectors (or lists) of Rcpp
+      objects
+      \item Add missing default constructor to Reference class that was
+      omitted in the header-only rewrite
+      \item Fixes for \code{NA} and \code{NaN} handling of the
+      \code{IndexHash} class, as well as the vector \code{.sort()}
+      method. These fixes ensure that sugar functions depending on
+      \code{IndexHash} (i.e. \code{unique()}, \code{sort_unique()},
+      \code{match()}) will now properly handle \code{NA} and \code{NaN}
+      values for numeric vectors.
+      \item \code{DataFrame::nrows} now more accurately mimics R's
+      internal behavior (checks the row.names attribute)
+      \item Numerous changes to permit compilation on the Solaris OS
+      \item Rcpp vectors gain a subsetting method -- it is now possible
+      to subset an Rcpp vector using \code{CharacterVector}s (subset
+      by name), \code{LogicalVector}s (logical subsetting), and
+      \code{IntegerVector}s (0-based index subsetting). Such subsetting
+      will also work with Rcpp sugar expressions, enabling expressions
+      such as \code{x[ x > 0]}.
+      \item Comma initialization (e.g.
+      \code{CharacterVector x = "a", "b", "c";}, has been disabled, as
+      it causes problems with the behavior of the \code{=} operator with
+      \code{Rcpp::List}s. Users who want to re-enable this functionality
+      can use \code{#define RCPP_COMMA_INITIALIZATION}, but be aware of
+      the above caveat. The more verbose
+      \code{CharacterVector x = CharacterVector::create("a", "b", "c")}
+      is preferred.
+    }
+    \item Changes in Rcpp Attributes
+    \itemize{
+      \item Fix issue preventing packages with \code{Rcpp::interfaces}
+      attribute from compiling.
+      \item Fix behavior with attributes parsing of \code{::create} for default
+      arguments, and also allow constructors of a given size
+      (e.g. \code{NumericVector v = NumericVector(10))} gives a default
+      value of \code{numeric(10)} at the R level). Also make NAs preserve
+      type when exported to R (e.g. \code{NA_STRING} as a default argument
+      maps to \code{NA_character_} at the R level)
+    }
+    \item Changes in Rcpp modules
+    \itemize{
+      \item Corrected the \code{un_pointer} implementation for \code{object}
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.11.0 (2014-02-02)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item Functions provided/used by \CRANpkg{Rcpp} are now registered
+      with R and instantiated by client package alleviating the new for
+      explicit linking against \code{libRcpp} which is therefore no
+      longer created.
+      \item Updated the \code{Rcpp.package.skeleton()} function accordingly.
+      \item New class \code{StretchyList} for pair lists with fast addition of
+      elements at the front and back. This abstracts the 3 functions
+      \code{NewList}, \code{GrowList} and \code{Insert} used in various
+      packages and in parsers in R.
+      \item The function \code{dnt}, \code{pnt}, \code{qnt} sugar
+      functions were incorrectly expanding to the no-degree-of-freedoms
+      variant.
+      \item Unit tests for \code{pnt} were added.
+      \item The sugar table function did not handle NAs and NaNs properly
+      for numeric vectors. Fixed and tests added.
+      \item The internal coercion mechanism mapping numerics to strings has
+      been updated to better match \R (specifically with \code{Inf}, \code{-Inf},
+      and \code{NaN}.)
+      \item Applied two bug fixes to Vector \code{sort()} and \code{RObject}
+      definition spotted and corrected by Kevin Ushey
+      \item New \code{checkUserInterrupt()} function that provides a C++ friendly
+      implementation of \code{R_CheckUserInterrupt}.
+    }
+    \item Changes in Rcpp attributes:
+    \itemize{
+      \item Embedded R code chunks in sourceCpp are now executed within
+      the working directory of the C++ source file.
+      \item Embedded R code chunks in sourceCpp can now be disabled.
+    }
+    \item Changes in Rcpp documentation:
+    \itemize{
+      \item The Rcpp-FAQ and Rcpp-package vignettes have been updated and expanded.
+      \item Vignettes are now typeset with grey background for code boxes.
+      \item The bibtex reference file has been update to reflexct
+      current package versions.
+    }
+    \item Changes in Rcpp unit tests:
+    \itemize{
+      \item The file \code{tests/doRUnit.R} was rewritten following the
+      pattern deployed in \CRANpkg{RProtoBuf} which is due to Murray Stokely
+      \item The function \code{test()} was rewritten; it provides an
+      easy entry point to running unit tests of the installed package
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.10.6 (2013-10-27)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item The function \code{exposeClass} takes a description of the
+        constructors, fields and methods to be exposed from a C++
+        class, and writes C++ and R files in the package.  Inherited
+        classes can be dealt with, but require data type information.
+        This approach avoids hand-coding module files.
+      \item Two missing \code{is<>()} templates for
+        \code{CharacterVector} and \code{CharacterMatrix} have been added,
+        and some tests for \code{is_na()} and \code{is_finite()} have been
+        corrected thanks to Thomas Tse.
+    }
+    \item Changes in R code:
+    \itemize{
+      \item Export linking helper function \code{LdFlags} as well as
+        \code{RcppLdFlags}.
+      \item Function \code{Rcpp.package.skeleton()} no longer passes a
+        \code{namespace} argument on to \code{package.skeleton()}
+    }
+    \item Changes in R setup:
+    \itemize{
+      \item Raise requirement for R itself to be version 3.0.0 or later
+      as needed by the vignette processing
+    }
+    \item Changes in Rcpp attributes:
+    \itemize{
+      \item \code{sourceCpp} now correctly binds to Rtools 3.0 and 3.1
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.10.5 (2013-09-28)}{
+  \itemize{
+    \item Changes in R code:
+    \itemize{
+      \item New R function \code{demangle} that calls the \code{DEMANGLE} macro.
+      \item New R function \code{sizeof} to query the byte size of a type. This
+      returns an object of S3 class \code{bytes} that has a \code{print} method
+      showing bytes and bits.
+    }
+    \item Changes in Rcpp API:
+    \itemize{
+      \item Add \code{defined(__sun)} to lists of operating systems to
+      test for when checking for lack of \code{backtrace()} needed for
+      stack traces.
+      \item \code{as<T*>}, \code{as<const T*>}, \code{as<T&>} and
+      \code{as<const T&>} are now supported, when
+      T is a class exposed by modules, i.e. with \code{RCPP_EXPOSED_CLASS}
+      \item \code{DoubleVector} as been added as an alias to
+      \code{NumericVector}
+      \item New template function \code{is<T>} to identify if an R object
+      can be seen as a \code{T}. For example \code{is<DataFrame>(x)}.
+      This is a building block for more expressive dispatch in various places
+      (modules and attributes functions).
+      \item \code{wrap} can now handle more types, i.e. types that iterate over
+      \code{std::pair<const KEY, VALUE>} where KEY can be converted to a
+      \code{String} and \code{VALUE} is either a primitive type (int, double)
+      or a type that wraps. Examples :
+      \itemize{
+        \item \code{std::map<int, double>} : we can make a String from an int,
+        and double is primitive
+        \item \code{boost::unordered_map<double, std::vector<double> >}: we can make
+        a String from a double and \code{std::vector<double>} can wrap itself
+      }
+      Other examples of this are included at the end of the \code{wrap} unit test
+      file (\code{runit.wrap.R} and \code{wrap.cpp}).
+      \item \code{wrap} now handles containers of classes handled by modules. e.g.
+      if you expose a class \code{Foo} via modules, then you can wrap
+      \code{vector<Foo>}, ... An example is included in the \code{wrap} unit test
+      file
+      \item \code{RcppLdFlags()}, often used in \code{Makevars} files of
+      packages using \pkg{Rcpp}, is now exported from the package namespace.
+    }
+    \item Changes in Attributes:
+    \itemize{
+      \item Objects exported by a module (i.e. by a \code{RCPP_MODULE} call
+      in a file that is processed by \code{sourceCpp}) are now directly
+      available in the environment. We used to make the module object
+      available, which was less useful.
+      \item A plugin for \code{openmp} has been added to support use of OpenMP.
+      \item \code{Rcpp::export} now takes advantage of the more flexible
+      \code{as<>}, handling constness and referenceness of the input types.
+      For users, it means that for the parameters of function exported by modules,
+      we can now use references, pointers and const versions of them.
+      The file \code{Module.cpp} file has an example.
+      \item{No longer call non-exported functions from the tools package}
+      \item{No longer search the inline package as a fallback when loading
+      plugins for the the \code{Rcpp::plugins} attribute}.
+    }
+    \item Changes in Modules:
+    \itemize{
+      \item We can now expose functions and methods that take
+      \code{T&} or \code{const T&} as arguments. In these situations
+      objects are no longer copied as they used to be.
+    }
+    \item Changes in sugar:
+    \itemize{
+      \item \code{is_na} supports classes \code{DatetimeVector} and
+      \code{DateVector}
+    }
+    \item Changes in Rcpp documentation:
+    \itemize{
+      \item The vignettes have been moved from \code{inst/doc/} to the
+      \code{vignettes} directory which is now preferred.
+      \item The appearance of the vignettes has been refreshed by
+      switching to the Bistream Charter font, and microtype package.
+    }
+    \item Deprecation of \code{RCPP_FUNCTION_*}:
+    \itemize{
+      \item The macros from the \code{preprocessor_generated.h} file
+      have been deprecated. They are still available, but they print a
+      message in addition to their expected behavior.
+      \item The macros will be permanently removed in the first \pkg{Rcpp}
+      release after July 2014.
+      \item Users of these macros should start replacing them with more
+      up-to-date code, such as using 'Rcpp attributes' or 'Rcpp modules'.
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.10.4 (2013-06-23)}{
+  \itemize{
+    \item Changes in R code: None beyond those detailed for Rcpp Attributes
+    \item Changes in Rcpp attributes:
+    \itemize{
+      \item Fixed problem whereby the interaction between the gc and the
+      RNGScope destructor could cause a crash.
+      \item Don't include package header file in generated C++ interface
+      header files.
+      \item Lookup plugins in \pkg{inline} package if they aren't found
+      within the \pkg{Rcpp} package.
+      \item Disallow compilation for files that don't have extensions
+      supported by R CMD SHLIB
+    }
+    \item Changes in Rcpp API:
+    \itemize{
+      \item The \code{DataFrame::create} set of functions has been reworked
+      to just use \code{List::create} and feed to the \code{DataFrame}
+      constructor
+      \item The \code{operator-()} semantics for \code{Date} and
+      \code{Datetime} are now more inline with standard C++ behaviour;
+      with thanks to Robin Girard for the report.
+      \item RNGScope counter now uses unsigned long rather than int.
+      \item \code{Vector<*>::erase(iterator, iterator)} was fixed. Now
+      it does not remove the element pointed by last (similar to what is
+      done on stl types and what was intended initially). Reported on
+      Rcpp-devel by Toni Giorgino.
+      \item Added equality operator between elements of
+      \code{CharacterVector}s.
+    }
+    \item Changes in Rcpp sugar:
+    \itemize{
+      \item New function \code{na_omit} based on the StackOverflow thread
+      \url{http://stackoverflow.com/questions/15953768/}
+      \item New function \code{is_finite} and \code{is_infinite} that
+      reproduces the behavior of R's \code{is.finite} and
+      \code{is.infinite} functions
+    }
+    \item Changes in Rcpp build tools:
+    \itemize{
+      \item Fix by Martyn Plummer for Solaris in handling of
+      \code{SingleLogicalResult}.
+      \item The \code{src/Makevars} file can now optionally override the
+      path for \code{/usr/bin/install_name_tool} which is used on OS X.
+      \item Vignettes are trying harder not to be built in parallel.
+    }
+    \item Changes in Rcpp documentation:
+    \itemize{
+      \item Updated the bibliography in \code{Rcpp.bib} (which is also
+      sourced by packages using Rcpp).
+      \item Updated the \code{THANKS} file.
+    }
+    \item Planned Deprecation of \code{RCPP_FUNCTION_*}:
+    \itemize{
+      \item The set of macros \code{RCPP_FUNCTION_} etc ... from the
+      \code{preprocessor_generated.h} file will be deprecated in the next version
+      of \pkg{Rcpp}, i.e they will still be available but will generate some
+      warning in addition to their expected behavior.
+      \item In the first release that is at least 12 months after this announcement, the
+      macros will be removed from \pkg{Rcpp}.
+      \item Users of these macros (if there are any) should start replacing them
+      with more up to date code, such as using Rcpp attributes or Rcpp
+      modules.
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.10.3 (2013-03-23)}{
+  \itemize{
+    \item Changes in R code:
+    \itemize{
+      \item Prevent build failures on Windowsn when Rcpp is installed
+      in a library path with spaces (transform paths in the same manner
+      that R does before passing them to the build system).
+    }
+    \item Changes in Rcpp attributes:
+    \itemize{
+        \item Rcpp modules can now be used with \code{sourceCpp}
+        \item Standalone roxygen chunks (e.g. to document a class) are now
+        transposed into RcppExports.R
+        \item Added \code{Rcpp::plugins} attribute for binding
+        directly to inline plugins. Plugins can be registered using
+        the new \code{registerPlugin} function.
+        \item Added built-in \code{cpp11} plugin for specifying
+        the use of C++11 in a translation unit
+        \item Merge existing values of build related environment
+        variables for sourceCpp
+        \item Add global package include file to RcppExports.cpp
+        if it exists
+        \item Stop with an error if the file name passed to
+        \code{sourceCpp} has spaces in it
+        \item Return invisibly from void functions
+        \item Ensure that line comments invalidate block comments when
+        parsing for attributes
+        \item Eliminated spurious empty hello world function definition
+        in Rcpp.package.skeleton
+    }
+    \item Changes in Rcpp API:
+    \itemize{
+      \item The very central use of R API R_PreserveObject and
+      R_ReleaseObject has been replaced by a new system based on the
+      functions Rcpp_PreserveObject, Rcpp_ReleaseObject and Rcpp_ReplaceObject
+      which shows better performance and is implemented using a generic vector
+      treated as a stack instead of a pairlist in the R
+      implementation. However, as this preserve / release code is still
+      a little rough at the edges, a new #define is used (in config.h)
+      to disable it for now.
+      \item Platform-dependent code in Timer.cpp now recognises a few
+      more BSD variants thanks to contributed defined() test suggestions
+      \item Support for wide character strings has been added throughout the
+      API. In particular String, CharacterVector, wrap and as are aware of
+      wide character strings
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.10.2 (2012-12-21)}{
+  \itemize{
+    \item Changes in Rcpp API:
+    \itemize{
+      \item Source and header files were reorganized and consolidated so
+      that compile time are now significantly lower
+      \item Added additional check in \code{Rstreambuf} deletetion
+      \item Added support for \code{clang++} when using \code{libc++},
+      and for anc \code{icpc} in \code{std=c++11} mode, thanks to a
+      patch by Yan Zhou
+      \item New class \code{Rcpp::String} to facilitate working with a single
+      element of a character vector
+      \item New utility class sugar::IndexHash inspired from Simon
+      Urbanek's fastmatch package
+      \item Implementation of the equality operator between two Rcomplex
+      \item \code{RNGScope} now has an internal counter that enables it
+      to be safely used multiple times in the same stack frame.
+      \item New class \code{Rcpp::Timer} for benchmarking
+    }
+    \item Changes in Rcpp sugar:
+    \itemize{
+        \item More efficient version of \code{match} based on \code{IndexHash}
+        \item More efficient version of \code{unique} base on \code{IndexHash}
+        \item More efficient version of \code{in} base on \code{IndexHash}
+        \item More efficient version of \code{duplicated} base on \code{IndexHash}
+        \item More efficient version of \code{self_match} base on \code{IndexHash}
+        \item New function \code{collapse} that implements paste(., collapse= "" )
+    }
+    \item Changes in Rcpp attributes:
+    \itemize{
+        \item Use code generation rather than modules to implement
+        \code{sourceCpp} and \code{compileAttributes} (eliminates
+        problem with exceptions not being able to cross shared library
+        boundaries on Windows)
+        \item Exported functions now automatically establish an \code{RNGScope}
+        \item Functions exported by \code{sourceCpp} now directly
+        reference the external function pointer rather than rely on
+        dynlib lookup
+        \item On Windows, Rtools is automatically added to the PATH
+        during \code{sourceCpp} compilations
+        \item Diagnostics are printed to the console if \code{sourceCpp}
+        fails and C++ development tools are not installed
+        \item A warning is printed if when \code{compileAttributes} detects
+        \code{Rcpp::depends} attributes in source files that are not
+        matched by Depends/LinkingTo entries in the package DESCRIPTION
+    }
+  }
+}
+
+\section{Changes in Rcpp version 0.10.1 (2012-11-26)}{
+    \itemize{
+        \item Changes in Rcpp sugar:
+        \itemize{
+          \item New functions: \code{setdiff}, \code{union_}, \code{intersect}
+            \code{setequal}, \code{in}, \code{min}, \code{max}, \code{range},
+            \code{match}, \code{table}, \code{duplicated}
+          \item New function: \code{clamp} which combines pmin and pmax, e.g.
+          clamp( a, x, b) is the same as pmax( b, pmin(x, a) )
+          \item New function: \code{self_match} which implements something
+          similar to \code{match( x, unique( x ) )}
+        }
+        \item Changes in Rcpp API:
+        \itemize{
+            \item The \code{Vector} template class (hence \code{NumericVector}
+            ...) get the \code{is_na} and the \code{get_na} static methods.
+            \item New helper class \code{no_init} that can be used to
+            create a vector without initializing its data, e.g. :
+            \code{ IntegerVector out = no_init(n) ; }
+            \item New exception constructor requiring only a message; \code{stop}
+            function to throw an exception
+            \item \code{DataFrame} gains a \code{nrows} method
+        }
+        \item Changes in Rcpp attributes:
+        \itemize{
+            \item Ability to embed R code chunks (via specially formatted
+            block comments) in C++ source files.
+            \item Allow specification of argument defaults for exported functions.
+            \item New scheme for more flexible mixing of generated and user composed
+            C++ headers.
+            \item Print warning if no export attributes are found in source file.
+            \item Updated vignette with additional documentation on exposing
+            C++ interfaces from packages and signaling errors.
+        }
+        \item Changes in Rcpp modules:
+        \itemize{
+            \item Enclose .External invocations in \code{BEGIN_RCPP}/\code{END_RCPP}
+        }
+        \item Changes in R code :
+        \itemize{
+            \item New function \code{areMacrosDefined}
+             \item Additions to \code{Rcpp.package.skeleton}:
+             \itemize{
+                \item \code{attributes} parameter to generate a version of
+            	\code{rcpp_hello_world} that uses \code{Rcpp::export}.
+            	\item \code{cpp_files} parameter to provide a list of C++
+            	files to include the in the \code{src} directory of the package.
+            }
+        }
+        \item Miscellaneous changes:
+        \itemize{
+          \item New example 'pi simulation' using R and C++ via Rcpp attributes
+	}
+    }
+}
+\section{Changes in Rcpp version 0.10.0 (2012-11-13)}{
+  \itemize{
+    \item Support for C++11 style attributes (embedded in comments) to enable
+    use of C++ within interactive sessions and to automatically generate module
+    declarations for packages:
+    \itemize{
+        \item Rcpp::export attribute to export a C++ function to R
+        \item \code{sourceCpp()} function to source exported functions from a file
+        \item \code{cppFunction()} and \code{evalCpp()} functions for inline declarations
+        and execution
+        \item \code{compileAttribtes()} function to generate Rcpp modules from
+        exported functions within a package
+        \item Rcpp::depends attribute for specifying additional build
+        dependencies for \code{sourceCpp()}
+        \item Rcpp::interfaces attribute to specify the external bindings
+        \code{compileAttributes()} should generate (defaults to R-only but a
+        C++ include file using R_GetCCallable can also be generated)
+	\item New vignette "Rcpp-attribute"
+    }
+    \item Rcpp modules feature set has been expanded:
+    \itemize{
+        \item Functions and methods can now return objects from classes that
+        are exposed through modules. This uses the make_new_object template
+        internally. This feature requires that some class traits are declared
+        to indicate Rcpp's \code{wrap}/\code{as} system that these classes are covered
+        by modules. The macro RCPP_EXPOSED_CLASS and RCPP_EXPOSED_CLASS_NODECL
+        can be used to declared these type traits.
+        \item Classes exposed through modules can also be used as parameters
+        of exposed functions or methods.
+        \item Exposed classes can declare factories with ".factory". A factory
+        is a c++ function that returns a pointer to the target class. It is
+        assumed that these objects are allocated with new on the factory. On the
+        R side, factories are called just like other constructors, with the
+        "new" function. This feature allows an alternative way to construct
+        objects.
+        \item "converter" can be used to declare a way to convert an object
+        of a type to another type. This gets translated to the appropriate
+        "as" method on the R side.
+        \item Inheritance. A class can now declare that it inherits from
+        another class with the .derives<Parent>( "Parent" ) notation. As a result
+        the exposed class gains methods and properties (fields) from its
+        parent class.
+    }
+    \item New sugar functions:
+    \itemize{
+        \item \code{which_min} implements which.min. Traversing the sugar expression
+        and returning the index of the first time the minimum value is found.
+        \item \code{which_max} idem
+        \item \code{unique} uses unordered_set to find unique values. In particular,
+        the version for CharacterVector is found to be more efficient than
+        R's version
+        \item \code{sort_unique} calculates unique values and then sorts them.
+    }
+    \item Improvements to output facilities:
+    \itemize{
+      \item Implemented \code{sync()} so that flushing output streams works
+      \item Added \code{Rcerr} output stream (forwarding to
+      \code{REprintf})
+    }
+    \item Provide a namespace 'R' for the standalone Rmath library so
+    that Rcpp users can access those functions too; also added unit tests
+    \item Development releases sets variable RunAllRcppTests to yes to
+    run all tests (unless it was alredy set to 'no'); CRAN releases do
+    not and still require setting -- which helps with the desired CRAN
+    default of less testing at the CRAN server farm.
+  }
+}
+
+\section{Changes in Rcpp version 0.9.15 (2012-10-13)}{
+  \itemize{
+    \item Untangling the clang++ build issue about the location of the
+    exceptions header by directly checking for the include file -- an
+    approach provided by Martin Morgan in a kindly contributed patch
+    as unit tests for them.
+    \item The \code{Date} and \code{Datetime} types now correctly
+    handle \code{NA}, \code{NaN} and \code{Inf} representation; the
+    \code{Date} type switched to an internal representation via \code{double}
+    \item Added \code{Date} and \code{Datetime} unit tests for the new
+    features
+    \item An additional \code{PROTECT} was added for parsing exception
+    messages before returning them to R, following a report by Ben North
+  }
+}
+
+\section{Changes in Rcpp version 0.9.14 (2012-09-30)}{
+  \itemize{
+    \item Added new Rcpp sugar functions trunc(), round() and signif(), as well
+    as unit tests for them
+    \item Be more conservative about where we support clang++ and the inclusion
+    of exception_defines.h and prevent this from being attempted on OS X
+    where it failed for clang 3.1
+    \item Corrected a typo in Module.h which now again permits use of finalizers
+    \item Small correction for (unexported) bib() function (which provides a path
+    to the bibtex file that ships with Rcpp)
+    \item Converted NEWS to NEWS.Rd
+  }
+}
+\section{Changes in Rcpp version 0.9.13 (2012-06-28)}{
+  \itemize{
+    \item Truly corrected Rcpp::Environment class by having default constructor
+             use the global environment, and removing the default argument of
+             global environment from the SEXP constructor
+    \item Added tests for clang++ version to include bits/exception_defines.h
+             for versions 3.0 or higher (similar to g++ 4.6.0 or later), needed to
+      include one particular exceptions header
+    \item Made more regression tests conditional on the RunAllRcppTests to come
+             closer to the CRAN mandate of running tests in sixty seconds
+    \item Updated unit test wrapper tests/doRUnit.R as well as unitTests/runTests.R
+  }
+}
+\section{Changes in Rcpp version 0.9.12 (2012-06-23)}{
+  \itemize{
+    \item Corrected Rcpp::Environment class by removing (empty) ctor following
+             rev3592 (on May 2) where default argument for ctor was moved
+    \item Unit testing now checks for environment variable RunAllRcppTests being
+             set to "yes"; otherwise some tests are skipped. This is arguably not
+             the right thing to do, but CRAN maintainers insist on faster tests.
+    \item Unit test wrapper script runTests.R has new option --allTests to set
+             the environment variable
+    \item The cleanup script now also considers inst/unitTests/testRcppClass/src
+  }
+}
+\section{Changes in Rcpp version 0.9.11 (2012-06-22)}{
+  \itemize{
+    \item New member function for vectors (and lists etc) containsElementNamed()
+             which returns a boolean indicating if the given element name is present
+    \item Updated the Rcpp.package.skeleton() support for Rcpp modules by
+             carrying functions already present from the corresponding unit test
+      which was also slightly expanded; and added more comments to the code
+    \item Rcpp modules can now be loaded via loadRcppModules() from .onLoad(),
+             or via loadModule("moduleName") from any R file
+    \item Extended functionality to let R modify C++ clases imported via modules
+             documented in help(setRcppClass)
+    \item Support compilation in Cygwin thanks to a patch by Dario Buttari
+    \item Extensions to the Rcpp-FAQ and the Rcpp-modules vignettes
+    \item The minium version of R is now 2.15.1 which is required for some of
+             the Rcpp modules support
+  }
+}
+\section{Changes in Rcpp version 0.9.10 (2012-02-16)}{
+  \itemize{
+    \item Rearrange headers so that Rcpp::Rcout can be used by RcppArmadillo et al
+    \item New Rcpp sugar function mapply (limited to two or three input vectors)
+    \item Added custom version of the Rcpp sugar diff function for numeric vectors
+             skipping unncesserry checks for NA
+    \item Some internal code changes to reflect changes and stricter requirements
+             in R CMD check in the current R-devel versions
+    \item Corrected fixed-value initialization for IntegerVector (with thanks to
+             Gregor Kastner for spotting this)
+    \item New Rcpp-FAQ entry on simple way to set compiler option for cxxfunction
+  }
+}
+\section{Changes in Rcpp version 0.9.9 (2012-12-25)}{
+  \itemize{
+    \item Reverting the 'int64' changes from release 0.9.8 which adversely
+         	affect packages using Rcpp: We will re-apply the 'int64' changes in a
+      way which should cooperate more easily with 'long' and 'unsigned long'.
+    \item Unit test output directory fallback changed to use Rcpp.Rcheck
+    \item Conditioned two unit tests to not run on Windows where they now break
+             whereas they passed before, and continue to pass on other OSs
+  }
+}
+\section{Changes in Rcpp version 0.9.8 (2011-12-21)}{
+  \itemize{
+    \item wrap now handles 64 bit integers (int64_t, uint64_t) and containers
+             of them, and Rcpp now depends on the int64 package (also on CRAN).
+             This work has been sponsored by the Google Open Source Programs
+             Office.
+    \item Added setRcppClass() function to create extended reference classes
+             with an interface to a C++ class (typically via Rcpp Module) which
+      can have R-based fields and methods in addition to those from the C++.
+    \item Applied patch by Jelmer Ypma which adds an output stream class
+         	'Rcout' not unlike std::cout, but implemented via Rprintf to
+         	cooperate with R and its output buffering.
+    \item New unit tests for pf(), pnf(), pchisq(), pnchisq() and pcauchy()
+    \item XPtr constructor now checks for corresponding type in SEXP
+    \item Updated vignettes for use with updated highlight package
+    \item Update linking command for older fastLm() example using external
+             Armadillo
+  }
+}
+\section{Changes in Rcpp version 0.9.7 (2011-09-29)}{
+  \itemize{
+    \item Applied two patches kindly provided by Martyn Plummer which provide
+         	support for compilation on Solaris using the SunPro compiler
+    \item Minor code reorganisation in which exception specifiers are removed;
+             this effectively only implements a run-time (rather than compile-time)
+             check and is generally seen as a somewhat depreated C++ idiom. Thanks
+             to Darren Cook for alerting us to this issue.
+    \item New example 'OpenMPandInline.r' in the OpenMP/ directory, showing how
+             easily use OpenMP by modifying the RcppPlugin output
+    \item New example 'ifelseLooped.r' showing Rcpp can accelerate loops that may
+      be difficult to vectorise due to dependencies
+    \item New example directory examples/Misc/ regrouping the new example as
+             well as the fibonacci example added in Rcpp 0.9.6
+    \item New Rcpp-FAQ example warning of lossy conversion from 64-bit long
+             integer types into a 53-bit mantissa which has no clear fix yet.
+    \item New unit test for accessing a non-exported function from a namespace
+  }
+}
+\section{Changes in Rcpp version 0.9.6 (2011-07-26)}{
+  \itemize{
+    \item Added helper traits to facilitate implementation of the RcppEigen
+      package: The is_eigen_base traits identifies if a class derives from
+      EigenBase using SFINAE; and new dispatch layer was added to wrap() to
+      help RcppEigen
+    \item XPtr now accepts a second template parameter, which is a function
+             taking a pointer to the target class. This allows the developper to
+             supply his/her own finalizer. The template parameter has a default
+             value which retains the original behaviour (calling delete on the
+             pointer)
+    \item New example RcppGibbs, extending Sanjog Misra's Rcpp illustration of
+             Darren Wilkinson's comparison of MCMC Gibbs Sampler implementations;
+      also added short timing on Normal and Gaussian RNG draws between Rcpp
+      and GSL as R's rgamma() is seen to significantly slower
+    \item New example on recursively computing a Fibonacci number using Rcpp and
+             comparing this to R and byte-compiled R for a significant speed gain
+  }
+}
+\section{Changes in Rcpp version 0.9.5 (2011-07-05)}{
+  \itemize{
+    \item New Rcpp-FAQ examples on using the plugin maker for inline's
+             cxxfunction(), and on setting row and column names for matrices
+    \item New sugar functions: mean, var, sd
+    \item Minor correction and extension to STL documentation in Rcpp-quickref
+    \item wrap() is now resilient to NULL pointers passed as in const char *
+    \item loadRcppModules() gains a "direct" argument to expose the module instead
+             of exposing what is inside it
+    \item Suppress a spurious warning from R CMD check on packages created with
+             Rcpp.package.skeleton(..., module=TRUE)
+    \item Some fixes and improvements for Rcpp sugar function 'rlnorm()'
+    \item Beginnings of new example using OpenMP and recognising user interrupts
+  }
+}
+\section{Changes in Rcpp version 0.9.4 (2011-04-12)}{
+  \itemize{
+    \item New R function "loadRcppModules" to load Rcpp modules automatically
+             from a package. This function must be called from the .onLoad function
+             and works with the "RcppModules" field of the package's DESCRIPTION file
+    \item The Modules example wrapped the STL std::vector received some editing
+             to disambiguate some symbols the newer compilers did not like
+    \item Coercing of vectors of factors is now done with an explicit callback
+             to R's "as.character()" as Rf_coerceVector no longer plays along
+    \item A CITATION file for the published JSS paper has been added, and
+             references were added to Rcpp-package.Rd and the different vignettes
+  }
+}
+\section{Changes in Rcpp version 0.9.3 (2011-04-05)}{
+  \itemize{
+    \item Fixed a bug in which modules code was not behaving when compiled
+             twice as can easily happen with inline'ed version
+    \item Exceptions code includes exception_defines.h only when g++ is 4.5 or
+             younger as the file no longer exists with g++-4.6
+    \item The documentation Makefile now uses the $R_HOME environment variable
+    \item The documentation Makefile no longer calls clean in the all target
+    \item C++ conformance issue found by clang/llvm addressed by re-ordering
+             declarations in grow.h as unqualified names must be declared before
+             they are used, even when used within templates
+    \item The 'long long' typedef now depends on C++0x being enabled as this
+             was not a feature in C++98; this suppresses a new g++-4.5 warning
+    \item The Rcpp-introduction vignette was updated to the forthcoming JSS paper
+  }
+}
+\section{Changes in Rcpp version 0.9.2 (2011-02-23)}{
+  \itemize{
+    \item The unitTest runit.Module.client.package.R is now skipped on older OS
+             X releases as it triggers a bug with g++ 4.2.1 or older; OS X 10.6 is
+             fine but as it no longer support ppc we try to accomodate 10.5 too
+             Thanks to Simon Urbanek for pinning this down and Baptiste Auguie
+             and Ken Williams for additonal testing
+    \item RcppCommon.h now recognises the Intel Compiler thanks to a short
+             patch by Alexey Stukalov; this turns off Cxx0x and TR1 features too
+    \item Three more setup questions were added to the Rcpp-FAQ vignette
+    \item One question about RcppArmadillo was added to the Rcpp-FAQ vignette
+  }
+}
+\section{Changes in Rcpp version 0.9.1 (2011-02-14)}{
+  \itemize{
+    \item A number of internal changes to the memory allocation / protection of
+             temporary objects were made---with a heartfelt "Thank You!" to both
+             Doug Bates for very persistent debugging of Rcpp modules code, and to
+             Luke Tierney who added additional memory allocation debugging tools
+             to R-devel (which will be in R 2.13.0 and may also be in R 2.12.2)
+    \item Removed another GNU Make-specific variable from src/Makevars in order
+             to make the build more portable; this was noticed on FreeBSD
+    \item On *BSD, do not try to compute a stack trace but provide file and
+             line number (which is the same behaviour as implemented in Windows)
+    \item Fixed an int conversion bug reported by Daniel Sabanes Bove on r-devel,
+             added unit test as well
+    \item Added unit tests for complex-typed vectors (thanks to Christian Gunning)
+    \item Expanded the Rcpp-quickref vignette (with thanks to Christian Gunning)
+    \item Additional examples were added to the Rcpp-FAQ vignette
+  }
+}
+\section{Changes in Rcpp version 0.9.0 (2010-12-19)}{
+  \itemize{
+    \item The classic API was factored out into its own package RcppClassic which
+             is released concurrently with this version.
+    \item If an object is created but not initialized, attempting to use
+             it now gives a more sensible error message (by forwarding an
+             Rcpp::not_initialized exception to R).
+    \item SubMatrix fixed, and Matrix types now have a nested ::Sub typedef.
+    \item New unexported function SHLIB() to aid in creating a shared library on
+             the command-line or in Makefile (similar to CxxFlags() / LdFlags()).
+    \item Module gets a seven-argument ctor thanks to a patch from Tama Ma.
+    \item The (still incomplete) QuickRef vignette has grown thanks to a patch
+             by Christian Gunning.
+    \item Added a sprintf template intended for logging and error messages.
+    \item Date::getYear() corrected (where addition of 1900 was not called for);
+             corresponding change in constructor from three ints made as well.
+    \item Date() and Datetime() constructors from string received a missing
+             conversion to int and double following strptime. The default format
+             string for the Datetime() strptime call was also corrected.
+    \item A few minor fixes throughout, see ChangeLog.
+  }
+}
+\section{Changes in Rcpp version 0.8.9 (2010-11-27)}{
+  \itemize{
+    \item Many improvements were made in 'Rcpp modules':
+             - exposing multiple constructors
+             - overloaded methods
+             - self-documentation of classes, methods, constructors, fields and
+               functions.
+             - new R function "populate" to facilitate working with modules in
+               packages.
+             - formal argument specification of functions.
+             - updated support for Rcpp.package.skeleton.
+             - constructors can now take many more arguments.
+    \item The 'Rcpp-modules' vignette was updated as well and describe many
+             of the new features
+    \item New template class Rcpp::SubMatrix<RTYPE> and support syntax in Matrix
+             to extract a submatrix:
+                NumericMatrix x = ... ;
+                // extract the first three columns
+                SubMatrix<REALSXP> y = x( _ , Range(0,2) ) ;
+                // extract the first three rows
+                SubMatrix<REALSXP> y = x( Range(0,2), _ ) ;
+                // extract the top 3x3 sub matrix
+                SubMatrix<REALSXP> y = x( Range(0,2), Range(0,2) ) ;
+    \item Reference Classes no longer require a default constructor for
+             subclasses of C++ classes
+    \item Consistently revert to using backticks rather than shell expansion
+             to compute library file location when building packages against Rcpp
+      on the default platforms; this has been applied to internal test
+             packages as well as CRAN/BioC packages using Rcpp
+  }
+}
+\section{Changes in Rcpp version 0.8.8 (2010-11-01)}{
+  \itemize{
+    \item New syntactic shortcut to extract rows and columns of a Matrix.
+             x(i,_) extracts the i-th row and x(_,i) extracts the i-th column.
+    \item Matrix indexing is more efficient. However, faster indexing is
+             disabled if g++ 4.5.0 or later is used.
+    \item A few new Rcpp operators such as cumsum, operator=(sugar)
+    \item Variety of bug fixes:
+             - column indexing was incorrect in some cases
+             - compilation using clang/llvm (thanks to Karl Millar for the patch)
+      - instantation order of Module corrected
+             - POSIXct, POSIXt now correctly ordered for R 2.12.0
+  }
+}
+\section{Changes in Rcpp version 0.8.7 (2010-10-15)}{
+  \itemize{
+    \item As of this version, Rcpp depends on R 2.12 or greater as it interfaces
+             the new reference classes (see below) and also reflects the POSIXt
+             class reordering both of which appeared with R version 2.12.0
+    \item new Rcpp::Reference class, that allows internal manipulation of R
+             2.12.0 reference classes. The class exposes a constructor that takes
+             the name of the target reference class and a field(string) method
+             that implements the proxy pattern to get/set reference fields using
+             callbacks to the R operators "$" and "$<-" in order to preserve the
+             R-level encapsulation
+    \item the R side of the preceding item allows methods to be written in R as
+             per ?ReferenceClasses, accessing fields by name and assigning them
+             using "<<-".  Classes extracted from modules are R reference classes.
+             They can be subclassed in R, and/or R methods can be defined using
+             the $methods(...) mechanism.
+    \item internal performance improvements for Rcpp sugar as well as an added
+             'noNA()' wrapper to omit tests for NA values -- see the included
+             examples in inst/examples/convolveBenchmarks for the speedups
+    \item more internal performance gains with Functions and Environments
+  }
+}
+\section{Changes in Rcpp version 0.8.6 (2010-09-09)}{
+  \itemize{
+    \item new macro RCPP_VERSION and Rcpp_Version to allow conditional compiling
+             based on the version of Rcpp
+                #if defined(RCPP_VERSION) && RCPP_VERSION >= Rcpp_Version(0,8,6)
+                #endif
+    \item new sugar functions for statistical distributions (d-p-q-r functions)
+      with distributions : unif, norm, gamma, chisq, lnorm, weibull, logis,
+      f, pois, binom, t, beta.
+    \item new ctor for Vector taking size and function pointer so that for example
+         	   NumericVector( 10, norm_rand )
+      generates a N(0,1) vector of size 10
+    \item added binary operators for complex numbers, as well as sugar support
+    \item more sugar math functions: sqrt, log, log10, exp, sin, cos, ...
+    \item started new vignette Rcpp-quickref : quick reference guide of Rcpp API
+             (still work in progress)
+    \item various patches to comply with solaris/suncc stricter standards
+    \item minor enhancements to ConvolutionBenchmark example
+    \item simplified src/Makefile to no longer require GNU make; packages using
+             Rcpp still do for the compile-time test of library locations
+  }
+}
+\section{Changes in Rcpp version 0.8.5 (2010-07-25)}{
+  \itemize{
+    \item speed improvements. Vector::names, RObject::slot have been improved
+             to take advantage of R API functions instead of callbacks to R
+    \item Some small updates to the Rd-based documentation which now points to
+             content in the vignettes.  Also a small formatting change to suppress
+      a warning from the development version of R.
+    \item Minor changes to Date() code which may reenable SunStudio builds
+  }
+}
+\section{Changes in Rcpp version 0.8.4 (2010-07-09)}{
+  \itemize{
+    \item new sugar vector functions: rep, rep_len, rep_each, rev, head, tail,
+      diag
+    \item sugar has been extended to matrices: The Matrix class now extends the
+         	Matrix_Base template that implements CRTP. Currently sugar functions
+         	for matrices are: outer, col, row, lower_tri, upper_tri, diag
+    \item The unit tests have been reorganised into fewer files with one call
+      	each to cxxfunction() (covering multiple tests) resulting in a
+      	significant speedup
+    \item The Date class now uses the same mktime() replacement that R uses
+             (based on original code from the timezone library by Arthur Olson)
+      permitting wide date ranges on all operating systems
+    \item The FastLM example has been updated, a new benchmark based on the
+             historical Longley data set has been added
+    \item RcppStringVector now uses std::vector<std::string> internally
+    \item setting the .Data slot of S4 objects did not work properly
+  }
+}
+\section{Changes in Rcpp version 0.8.3 (2010-06-27)}{
+  \itemize{
+    \item This release adds Rcpp sugar which brings (a subset of) the R syntax
+             into C++. This supports :
+              - binary operators : <,>,<=,>=,==,!= between R vectors
+              - arithmetic operators: +,-,*,/ between compatible R vectors
+              - several functions that are similar to the R function of the same name:
+             abs, all, any, ceiling, diff, exp, ifelse, is_na, lapply, pmin, pmax,
+             pow, sapply, seq_along, seq_len, sign
+             Simple examples :
+               // two numeric vector of the same size
+               NumericVector x ;
+               NumericVector y ;
+               NumericVector res = ifelse( x < y, x*x, -(y*y) ) ;
+               // sapply'ing a C++ function
+               double square( double x )\{ return x*x ; \}
+               NumericVector res = sapply( x, square ) ;
+             Rcpp sugar uses the technique of expression templates, pioneered by the
+             Blitz++ library and used in many libraries (Boost::uBlas, Armadillo).
+             Expression templates allow lazy evaluation of expressions, which
+             coupled with inlining generates very efficient code, very closely
+             approaching the performance of hand written loop code, and often
+             much more efficient than the equivalent (vectorized) R code.
+             Rcpp sugar is curently limited to vectors, future releases will
+             include support for matrices with sugar functions such as outer, etc ...
+             Rcpp sugar is documented in the Rcpp-sugar vignette, which contains
+             implementation details.
+    \item New helper function so that "Rcpp?something" brings up Rcpp help
+    \item Rcpp Modules can now expose public data members
+    \item New classes Date, Datetime, DateVector and DatetimeVector with proper
+             'new' API integration such as as(), wrap(), iterators, ...
+    \item The so-called classic API headers have been moved to a subdirectory
+             classic/ This should not affect client-code as only Rcpp.h was ever
+             included.
+    \item RcppDate now has a constructor from SEXP as well
+    \item RcppDateVector and RcppDatetimeVector get constructors from int
+             and both const / non-const operator(int i) functions
+    \item New API class Rcpp::InternalFunction that can expose C++ functions
+         	to R without modules. The function is exposed as an S4 object of
+         	class C++Function
+  }
+}
+\section{Changes in Rcpp version 0.8.2 (2010-06-09)}{
+  \itemize{
+    \item Bug-fix release for suncc compiler with thanks to Brian Ripley for
+             additional testing.
+  }
+}
+\section{Changes in Rcpp version 0.8.1 (2010-06-08)}{
+  \itemize{
+    \item This release adds Rcpp modules. An Rcpp module is a collection of
+             internal (C++) functions and classes that are exposed to R. This
+             functionality has been inspired by Boost.Python.
+             Modules are created internally using the RCPP_MODULE macro and
+             retrieved in the R side with the Module function. This is a preview
+             release of the module functionality, which will keep improving until
+             the Rcpp 0.9.0 release.
+             The new vignette "Rcpp-modules" documents the current feature set of
+             Rcpp modules.
+    \item The new vignette "Rcpp-package" details the steps involved in making a
+             package that uses Rcpp.
+    \item The new vignette "Rcpp-FAQ" collects a number of frequently asked
+             questions and answers about Rcpp.
+    \item The new vignette "Rcpp-extending" documents how to extend Rcpp
+             with user defined types or types from third party libraries. Based on
+             our experience with RcppArmadillo
+    \item Rcpp.package.skeleton has been improved to generate a package using
+             an Rcpp module, controlled by the "module" argument
+    \item Evaluating a call inside an environment did not work properly
+    \item cppfunction has been withdrawn since the introduction of the more
+             flexible cxxfunction in the inline package (0.3.5). Rcpp no longer
+             depends on inline since many uses of Rcpp do not require inline at
+             all. We still use inline for unit tests but this is now handled
+             locally in the unit tests loader runTests.R.
+             Users of the now-withdrawn function cppfunction can redefine it as:
+                cppfunction <- function(...) cxxfunction( ..., plugin = "Rcpp" )
+    \item Support for std::complex was incomplete and has been enhanced.
+    \item The methods XPtr<T>::getTag and XPtr<T>::getProtected are deprecated,
+             and will be removed in Rcpp 0.8.2. The methods tag() and prot() should
+             be used instead. tag() and prot() support both LHS and RHS use.
+    \item END_RCPP now returns the R Nil values; new macro VOID_END_RCPP
+             replicates prior behabiour
+  }
+}
+\section{Changes in Rcpp version 0.8.0 (2010-05-17)}{
+  \itemize{
+    \item All Rcpp headers have been moved to the inst/include directory,
+             allowing use of 'LinkingTo: Rcpp'. But the Makevars and Makevars.win
+             are still needed to link against the user library.
+    \item Automatic exception forwarding has been withdrawn because of
+             portability issues (as it did not work on the Windows platform).
+             Exception forwarding is still possible but is now based on explicit
+             code of the form:
+               try \{
+                 // user code
+               \} catch( std::exception& __ex__)\{
+                 forward_exception_to_r( __ex___ ) ;
+             Alternatively, the macro BEGIN_RCPP and END_RCPP can use used to enclose
+             code so that it captures exceptions and forward them to R.
+               BEGIN_RCPP
+               // user code
+               END_RCPP
+    \item new __experimental__ macros
+             The macros RCPP_FUNCTION_0, ..., RCPP_FUNCTION_65 to help creating C++
+             functions hiding some code repetition:
+               RCPP_FUNCTION_2( int, foobar, int x, int y)\{
+                return x + y ;
+             The first argument is the output type, the second argument is the
+             name of the function, and the other arguments are arguments of the
+             C++ function. Behind the scenes, the RCPP_FUNCTION_2 macro creates an
+             intermediate function compatible with the .Call interface and handles
+             exceptions
+             Similarly, the macros RCPP_FUNCTION_VOID_0, ..., RCPP_FUNCTION_VOID_65
+             can be used when the C++ function to create returns void. The generated
+             R function will return R_NilValue in this case.
+               RCPP_FUNCTION_VOID_2( foobar, std::string foo )\{
+                // do something with foo
+             The macro RCPP_XP_FIELD_GET generates a .Call compatible function that
+             can be used to access the value of a field of a class handled by an
+             external pointer. For example with a class like this:
+               class Foo\{
+                 public:
+                   int bar ;
+               RCPP_XP_FIELD_GET( Foo_bar_get, Foo, bar ) ;
+             RCPP_XP_FIELD_GET will generate the .Call compatible function called
+             Foo_bar_get that can be used to retrieved the value of bar.
+             The macro RCPP_FIELD_SET generates a .Call compatible function that
+             can be used to set the value of a field. For example:
+               RCPP_XP_FIELD_SET( Foo_bar_set, Foo, bar ) ;
+             generates the .Call compatible function called "Foo_bar_set" that
+             can be used to set the value of bar
+             The macro RCPP_XP_FIELD generates both getter and setter. For example
+               RCPP_XP_FIELD( Foo_bar, Foo, bar )
+             generates the .Call compatible Foo_bar_get and Foo_bar_set using the
+             macros RCPP_XP_FIELD_GET and RCPP_XP_FIELD_SET previously described
+             The macros RCPP_XP_METHOD_0, ..., RCPP_XP_METHOD_65 faciliate
+             calling a method of an object that is stored in an external pointer. For
+             example:
+               RCPP_XP_METHOD_0( foobar, std::vector<int> , size )
+             creates the .Call compatible function called foobar that calls the
+             size method of the std::vector<int> class. This uses the Rcpp::XPtr<
+             std::vector<int> > class.
+             The macros RCPP_XP_METHOD_CAST_0, ... is similar but the result of
+             the method called is first passed to another function before being
+             wrapped to a SEXP.  For example, if one wanted the result as a double
+               RCPP_XP_METHOD_CAST_0( foobar, std::vector<int> , size, double )
+             The macros RCPP_XP_METHOD_VOID_0, ... are used when calling the
+             method is only used for its side effect.
+              RCPP_XP_METHOD_VOID_1( foobar, std::vector<int>, push_back )
+             Assuming xp is an external pointer to a std::vector<int>, this could
+             be called like this :
+               .Call( "foobar", xp, 2L )
+    \item Rcpp now depends on inline (>= 0.3.4)
+    \item A new R function "cppfunction" was added which invokes cfunction from
+             inline with focus on Rcpp usage (enforcing .Call, adding the Rcpp
+             namespace, set up exception forwarding). cppfunction uses BEGIN_RCPP
+             and END_RCPP macros to enclose the user code
+    \item new class Rcpp::Formula to help building formulae in C++
+    \item new class Rcpp::DataFrame to help building data frames in C++
+    \item Rcpp.package.skeleton gains an argument "example_code" and can now be
+             used with an empty list, so that only the skeleton is generated. It
+             has also been reworked to show how to use LinkingTo: Rcpp
+    \item wrap now supports containers of the following types: long, long double,
+             unsigned long, short and unsigned short which are silently converted
+             to the most acceptable R type.
+    \item Revert to not double-quote protecting the path on Windows as this
+             breaks backticks expansion used n Makevars.win etc
+    \item Exceptions classes have been moved out of Rcpp classes,
+             e.g. Rcpp::RObject::not_a_matrix is now Rcpp::not_a_matrix
+  }
+}
+\section{Changes in Rcpp version 0.7.12 (2010-04-16)}{
+  \itemize{
+    \item Undo shQuote() to protect Windows path names (which may contain
+             spaces) as backticks use is still broken; use of $(shell ...) works
+  }
+}
+\section{Changes in Rcpp version 0.7.11 (2010-03-26)}{
+  \itemize{
+    \item Vector<> gains a set of templated factory methods "create" which
+             takes up to 20 arguments and can create named or unnamed vectors.
+             This greatly facilitates creating objects that are returned to R.
+    \item Matrix now has a diag() method to create diagonal matrices, and
+             a new constructor using a single int to create square matrices
+    \item Vector now has a new fill() method to propagate a single value
+    \item Named is no more a class but a templated function. Both interfaces
+             Named(.,.) and Named(.)=. are preserved, and extended to work also on
+             simple vectors (through Vector<>::create)
+    \item Applied patch by Alistair Gee to make ColDatum more robust
+    \item Fixed a bug in Vector that caused random behavior due to the lack of
+             copy constructor in the Vector template
+  }
+}
+\section{Changes in Rcpp version 0.7.10 (2010-03-15)}{
+  \itemize{
+    \item new class Rcpp::S4 whose constructor checks if the object is an S4
+             object
+    \item maximum number of templated arguments to the pairlist function, the
+             DottedPair constructor, the Language constructor and the Pairlist
+             constructor has been updated to 20 (was 5) and a script has been
+             added to the source tree should we want to change it again
+    \item use shQuote() to protect Windows path names (which may contain spaces)
+  }
+}
+\section{Changes in Rcpp version 0.7.9 (2010-03-12)}{
+  \itemize{
+    \item Another small improvement to Windows build flags
+    \item bugfix on 64 bit platforms. The traits classes (wrap_type_traits, etc)
+             used size_t when they needed to actually use unsigned int
+    \item fixed pre gcc 4.3 compatibility. The trait class that was used to
+             identify if a type is convertible to another had too many false
+             positives on pre gcc 4.3 (no tr1 or c++0x features). fixed by
+             implementing the section 2.7 of "Modern C++ Design" book.
+  }
+}
+\section{Changes in Rcpp version 0.7.8 (2010-03-09)}{
+  \itemize{
+    \item All vector classes are now generated from the same template class
+             Rcpp::Vector<int RTYPE> where RTYPE is one of LGLSXP, RAWSXP, STRSXP,
+             INTSXP, REALSXP, CPLXSXP, VECSXP and EXPRSXP. typedef are still
+             available : IntegerVector, ... All vector classes gain methods
+             inspired from the std::vector template : push_back, push_front,
+             erase, insert
+    \item New template class Rcpp::Matrix<RTYPE> deriving from
+             Rcpp::Vector<RTYPE>. These classes have the same functionality
+             as Vector but have a different set of constructors which checks
+             that the input SEXP is a matrix. Matrix<> however does/can not
+             guarantee that the object will allways be a matrix. typedef
+             are defined for convenience: Matrix<INTSXP> is IntegerMatrix, etc...
+    \item New class Rcpp::Row<int RTYPE> that represents a row of a matrix
+             of the same type. Row contains a reference to the underlying
+             Vector and exposes a nested iterator type that allows use of
+             STL algorithms on each element of a matrix row. The Vector class
+             gains a row(int) method that returns a Row instance. Usage
+             examples are available in the runit.Row.R unit test file
+    \item New class Rcpp::Column<int RTYPE> that represents a column of a
+             matrix. (similar to Rcpp::Row<int RTYPE>). Usage examples are
+             available in the runit.Column.R unit test file
+    \item The Rcpp::as template function has been reworked to be more
+             generic. It now handles more STL containers, such as deque and
+             list, and the genericity can be used to implement as for more
+             types. The package RcppArmadillo has examples of this
+    \item new template class Rcpp::fixed_call that can be used in STL algorithms
+             such as std::generate.
+    \item RcppExample et al have been moved to a new package RcppExamples;
+             src/Makevars and src/Makevars.win simplified accordingly
+    \item New class Rcpp::StringTransformer and helper function
+             Rcpp::make_string_transformer that can be used to create a function
+             that transforms a string character by character. For example
+             Rcpp::make_string_transformer(tolower) transforms each character
+             using tolower. The RcppExamples package has an example of this.
+    \item Improved src/Makevars.win thanks to Brian Ripley
+    \item New examples for 'fast lm' using compiled code:
+             - using GNU GSL and a C interface
+             - using Armadillo (http://arma.sf.net) and a C++ interface
+             Armadillo is seen as faster for lack of extra copying
+    \item A new package RcppArmadillo (to be released shortly) now serves
+             as a concrete example on how to extend Rcpp to work with a modern
+             C++ library such as the heavily-templated Armadillo library
+    \item Added a new vignette 'Rcpp-introduction' based on a just-submitted
+             overview article on Rcpp
+  }
+}
+\section{Changes in Rcpp version 0.7.7 (2010-02-14)}{
+  \itemize{
+    \item new template classes Rcpp::unary_call and Rcpp::binary_call
+             that facilitates using R language calls together
+             with STL algorithms.
+    \item fixed a bug in Language constructors taking a string as their
+             first argument. The created call was wrong.
+  }
+}
+\section{Changes in Rcpp version 0.7.6 (2010-02-12)}{
+  \itemize{
+    \item SEXP_Vector (and ExpressionVector and GenericVector, a.k.a List) now
+             have methods push_front, push_back and insert that are templated
+    \item SEXP_Vector now has int- and range-valued erase() members
+    \item Environment class has a default constructor (for RInside)
+    \item SEXP_Vector_Base factored out of SEXP_Vector (Effect. C++ #44)
+    \item SEXP_Vector_Base::iterator added as well as begin() and end()
+             so that STL algorithms can be applied to Rcpp objects
+    \item CharacterVector gains a random access iterator, begin() and end() to
+             support STL algorithms; iterator dereferences to a StringProxy
+    \item Restore Windows build; successfully tested on 32 and 64 bit;
+    \item Small fixes to inst/skeleton files for bootstrapping a package
+    \item RObject::asFoo deprecated in favour of Rcpp::as<Foo>
+  }
+}
+\section{Changes in Rcpp version 0.7.5 (2010-02-08)}{
+  \itemize{
+    \item wrap has been much improved. wrappable types now are :
+             - primitive types : int, double, Rbyte, Rcomplex, float, bool
+             - std::string
+             - STL containers which have iterators over wrappable types:
+               (e.g. std::vector<T>, std::deque<T>, std::list<T>, etc ...).
+             - STL maps keyed by std::string, e.g std::map<std::string,T>
+             - classes that have implicit conversion to SEXP
+             - classes for which the wrap template if fully or partly specialized
+             This allows composition, so for example this class is wrappable:
+             std::vector< std::map<std::string,T> > (if T is wrappable)
+    \item The range based version of wrap is now exposed at the Rcpp::
+             level with the following interface :
+             Rcpp::wrap( InputIterator first, InputIterator last )
+             This is dispatched internally to the most appropriate implementation
+             using traits
+    \item a new namespace Rcpp::traits has been added to host the various
+             type traits used by wrap
+    \item The doxygen documentation now shows the examples
+    \item A new file inst/THANKS acknowledges the kind help we got from others
+    \item The RcppSexp has been removed from the library.
+    \item The methods RObject::asFoo are deprecated and will be removed
+             in the next version. The alternative is to use as<Foo>.
+    \item The method RObject::slot can now be used to get or set the
+             associated slot. This is one more example of the proxy pattern
+    \item Rcpp::VectorBase gains a names() method that allows getting/setting
+             the names of a vector. This is yet another example of the
+             proxy pattern.
+    \item Rcpp::DottedPair gains templated operator<< and operator>> that
+             allow wrap and push_back or wrap and push_front of an object
+    \item Rcpp::DottedPair, Rcpp::Language, Rcpp::Pairlist are less
+             dependent on C++0x features. They gain constructors with up
+             to 5 templated arguments. 5 was choosed arbitrarily and might
+             be updated upon request.
+    \item function calls by the Rcpp::Function class is less dependent
+             on C++0x. It is now possible to call a function with up to
+             5 templated arguments (candidate for implicit wrap)
+    \item added support for 64-bit Windows (thanks to Brian Ripley and Uwe Ligges)
+  }
+}
+\section{Changes in Rcpp version 0.7.4 (2010-01-30)}{
+  \itemize{
+    \item matrix-like indexing using operator() for all vector
+             types : IntegerVector, NumericVector, RawVector, CharacterVector
+             LogicalVector, GenericVector and ExpressionVector.
+    \item new class Rcpp::Dimension to support creation of vectors with
+             dimensions. All vector classes gain a constructor taking a
+             Dimension reference.
+    \item an intermediate template class "SimpleVector" has been added. All
+             simple vector classes are now generated from the SimpleVector
+             template : IntegerVector, NumericVector, RawVector, CharacterVector
+             LogicalVector.
+    \item an intermediate template class "SEXP_Vector" has been added to
+             generate GenericVector and ExpressionVector.
+    \item the clone template function was introduced to explicitely
+             clone an RObject by duplicating the SEXP it encapsulates.
+    \item even smarter wrap programming using traits and template
+             meta-programming using a private header to be include only
+             RcppCommon.h
+    \item the as template is now smarter. The template now attempts to
+             build an object of the requested template parameter T by using the
+             constructor for the type taking a SEXP. This allows third party code
+             to create a class Foo with a constructor Foo(SEXP) to have
+             as<Foo> for free.
+    \item wrap becomes a template. For an object of type T, wrap<T> uses
+             implicit conversion to SEXP to first convert the object to a SEXP
+             and then uses the wrap(SEXP) function. This allows third party
+             code creating a class Bar with an operator SEXP() to have
+             wrap for free.
+    \item all specializations of wrap :  wrap<double>, wrap< vector<double> >
+             use coercion to deal with missing values (NA) appropriately.
+    \item configure has been withdrawn. C++0x features can now be activated
+             by setting the RCPP_CXX0X environment variable to "yes".
+    \item new template r_cast<int> to facilitate conversion of one SEXP
+             type to another. This is mostly intended for internal use and
+             is used on all vector classes
+    \item Environment now takes advantage of the augmented smartness
+             of as and wrap templates. If as<Foo> makes sense, one can
+             directly extract a Foo from the environment. If wrap<Bar> makes
+             sense then one can insert a Bar directly into the environment.
+               Foo foo = env["x"] ;  /* as<Foo> is used */
+               Bar bar ;
+               env["y"] = bar ;      /* wrap<Bar> is used */
+    \item Environment::assign becomes a template and also uses wrap to
+             create a suitable SEXP
+    \item Many more unit tests for the new features; also added unit tests
+             for older API
+  }
+}
+\section{Changes in Rcpp version 0.7.3 (2010-01-21)}{
+  \itemize{
+    \item New R function Rcpp.package.skeleton, modelled after
+             utils::package.skeleton to help creating a package with support
+             for Rcpp use.
+    \item indexing is now faster for simple vectors due to inlining of
+             the operator[] and caching the array pointer
+    \item The class Rcpp::VectorBase was introduced. All vector classes
+             derive from it. The class handles behaviour that is common
+             to all vector types: length, names, etc ...
+    \item exception forwarding is extended to compilers other than GCC
+             but default values are used for the exception class
+             and the exception message, because we don't know how to do it.
+    \item Improved detection of C++0x capabilities
+    \item Rcpp::Pairlist gains a default constructor
+    \item Rcpp::Environment gains a new_child method to create a new
+             environment whose parent is this
+    \item Rcpp::Environment::Binding gains a templated implicit
+             conversion operator
+    \item Rcpp::ExpressionVector gains an eval method to evaluate itself
+    \item Rcpp::ExpressionVector gains a constructor taking a std::string
+             representing some R code to parse.
+    \item Rcpp::GenericVector::Proxy gains an assignment operator to deal
+             with Environment::Proxy objects
+    \item Rcpp::LdFlags() now defaults to static linking OS X, as it already
+             did on Windows; this default can be overridden.
+  }
+}
+\section{Changes in Rcpp version 0.7.2 (2010-01-12)}{
+  \itemize{
+    \item a new benchmark was added to the examples directory
+             around the classic convolution example from
+             Writing R extensions to compare C and C++ implementations
+    \item Rcpp::CharacterVector::StringProxy gains a += operator
+    \item Rcpp::Environment gains an operator[](string) to get/set
+             objects from the environment. operator[] returns an object
+             of class Rcpp::Environment::Binding which implements the proxy
+             pattern. Inspired from Item 30 of 'More Effective C++'
+    \item Rcpp::Pairlist and Rcpp::Language gain an operator[](int)
+             also using the proxy pattern
+    \item Rcpp::RObject.attr can now be used on the rhs or the lhs, to get
+             or set an attribute. This also uses the proxy pattern
+    \item Rcpp::Pairlist and Rcpp::Language gain new methods push_back
+             replace, length, size, remove, insert
+    \item wrap now returns an object of a suitable class, not just RObject
+             anymore. For example wrap( bool ) returns a LogicalVector
+    \item Rcpp::RObject gains methods to deal with S4 objects : isS4,
+             slot and hasSlot
+    \item new class Rcpp::ComplexVector to manage complex vectors (CPLXSXP)
+    \item new class Rcpp::Promise to manage promises (PROMSXP)
+    \item new class Rcpp::ExpressionVector to manage expression vectors
+             (EXPRSXP)
+    \item new class Rcpp::GenericVector to manage generic vectors, a.k.a
+             lists (VECSXP)
+    \item new class Rcpp::IntegerVector to manage integer vectors (INTSXP)
+    \item new class Rcpp::NumericVector to manage numeric vectors (REALSXP)
+    \item new class Rcpp::RawVector to manage raw vectors (RAWSXP)
+    \item new class Rcpp::CharacterVector to manage character vectors (STRSXP)
+    \item new class Rcpp::Function to manage functions
+             (CLOSXP, SPECIALSXP, BUILTINSXP)
+    \item new class Rcpp::Pairlist to manage pair lists (LISTSXP)
+    \item new class Rcpp::Language to manage calls (LANGSXP)
+    \item new specializations of wrap to deal with std::initializer lists
+             only available with GCC >= 4.4
+    \item new R function Rcpp:::capabilities that can query if various
+             features are available : exception handling, variadic templates
+             initializer lists
+    \item new set of functions wrap(T) converting from T to RObject
+    \item new template function as<T> that can be used to convert a SEXP
+             to type T. Many specializations implemented to deal with
+             C++ builtin and stl types. Factored out of RObject
+    \item new class Rcpp::Named to deal with named with named objects
+             in a pairlist, or a call
+    \item new class Rcpp::Symbol to manage symbols (SYMSXP)
+    \item The garbage collection has been improved and is now automatic
+             and hidden. The user needs not to worry about it at all.
+    \item Rcpp::Environment(SEXP) uses the as.environment R function
+    \item Doxygen-generated documentation is no longer included as it is both
+             too large and too volatile. Zipfiles are provided on the website.
+  }
+}
+\section{Changes in Rcpp version 0.7.1 (2010-01-02)}{
+  \itemize{
+    \item Romain is now a co-author of Rcpp
+    \item New base class Rcpp::RObject replace RcppSexp (which is provided for
+             backwards compatibility)
+    \item RObject has simple wrappers for object creation and conversion to SEXP
+    \item New classes Rcpp::Evaluator and Rcpp::Environment for expression
+             evaluation and environment access, respectively
+    \item New class Rcpp::XPtr for external pointers
+    \item Enhanced exception handling allows for trapping of exceptions outside
+             of try/catch blocks
+    \item Namespace support with a new namespace 'Rcpp'
+    \item Unit tests for most of the new classes, based on the RUnit package
+    \item Inline support now provided by the update inline package, so a new
+             Depends on 'inline (>= 0.3.4)' replaces the code in that was
+             temporarily in Rcpp
+  }
+}
+\section{Changes in Rcpp version 0.7.0 (2009-12-19)}{
+  \itemize{
+    \item Inline support via a modified version of 'cfunction' from Oleg
+             Sklyar's 'inline' package: simple C++ programs can now be compiled,
+             linked and loaded automagically from the R prompt, including support
+             for external packages. Also works on Windows (with R-tools installed)
+    \item New examples for the inline support based on 'Intro to HPC' tutorials
+    \item New type RcppSexp for simple int, double, std::string scalars and vectors
+    \item Every class is now in its own header and source file
+    \item Fix to RcppParams.Rd thanks to Frank S. Thomas
+    \item RcppVersion.R removed as redundant given DESCRIPTION and read.dcf()
+    \item Switched to R_PreserveObject and R_ReleaseObject for RcppSexp with
+             thanks to Romain
+    \item Licensing changed from LGPL 2.1 (or later) to GPL 2 (or later), file
+             COPYING updated
+  }
+}
+\section{Changes in Rcpp version 0.6.8 (2009-11-19)}{
+  \itemize{
+    \item Several classes now split off into their own header and source files
+    \item New header file RcppCommon.h regrouping common defines and includes
+    \item Makevars\{,.win\} updated to reflect src/ reorg
+  }
+}
+\section{Changes in Rcpp version 0.6.7 (2009-11-08)}{
+  \itemize{
+    \item New class RcppList for simple lists and data structures of different
+             types and dimensions, useful for RProtoBuf project on R-Forge
+    \item Started to split classes into their own header and source files
+    \item Added short README file about history and status
+    \item Small documentation markup fix thanks to Kurt; updated doxygen docs
+    \item New examples directory functionCallback/ for R function passed to C++
+             and being called
+  }
+}
+\section{Changes in Rcpp version 0.6.6 (2009-08-03)}{
+  \itemize{
+    \item Updated Doxygen documentation
+    \item RcppParams class gains a new exists() member function
+  }
+}
+\section{Changes in Rcpp version 0.6.5 (2009-04-01)}{
+  \itemize{
+    \item Small OS X build correction using R_ARCH variable
+    \item Include LGPL license as file COPYING
+  }
+}
+\section{Changes in Rcpp version 0.6.4 (2009-03-01)}{
+  \itemize{
+    \item Use std:: namespace throughout instead of 'using namespace std'
+    \item Define R_NO_REMAP so that R provides Rf_length() etc in lieu of length()
+             to minimise clashes with other projects having similar functions
+    \item Include Doxygen documentation, and Doxygen configuration file
+    \item Minor Windows build fix (with thanks to Uwe and Simon)
+  }
+}
+\section{Changes in Rcpp version 0.6.3 (2009-01-09)}{
+  \itemize{
+    \item OS X build fix with thanks to Simon
+    \item Added 'view-only' classes for int and double vector and matrix clases
+             as well as string vector classses, kindly suggsted / provided by
+             David Reiss
+    \item Add two shorter helper functions Rcpp:::CxxFlags() and
+             Rcpp:::LdFlags() for compilation and linker flags
+  }
+}
+\section{Changes in Rcpp version 0.6.2 (2008-12-02)}{
+  \itemize{
+    \item Small but important fix for Linux builds in Rcpp:::RcppLdFlags()
+  }
+}
+\section{Changes in Rcpp version 0.6.1 (2008-11-30)}{
+  \itemize{
+    \item Now src/Makevars replaces src/Makefile, this brings proper OS X
+             multi-arch support with thanks to Simon
+    \item Old #ifdef statements related to QuantLib removed; Rcpp is now
+             decoupled from QuantLib headers yet be used by RQuantLib
+    \item Added RcppLdPath() to return the lib. directory patch and on Linux
+             the rpath settings
+    \item Added new RcppVectorExample()
+    \item Augmented documentation on usage in Rcpp-package.Rd
+  }
+}
+\section{Changes in Rcpp version 0.6.0 (2008-11-05)}{
+  \itemize{
+    \item New maintainer, taking over RcppTemplate (which has been without an
+             update since Nov 2006) under its initial name Rcpp
+    \item New files src/Makefile\{,.win\} including functionality from both
+             configure and RcppSrc/Makefile; we now build two libraries, one for
+             use by the package which also runs the example, and one for users to
+             link against, and removed src/Makevars.in
+    \item Files src/Rcpp.\{cpp,h\} moved in from ../RcppSrc
+    \item Added new class RcppDatetime corresponding to POSIXct in with full
+             support for microsecond time resolution between R and C++
+    \item Several new manual pages added
+    \item Removed  configure\{,.in,.win\} as src/Makefile* can handle this more
+             easily
+    \item Minor cleanup and reformatting for DESCRIPTION, Date: now uses
+             svn:keyword Date property
+    \item Renamed RcppTemplateVersion to RcppVersion, deleted RcppDemo
+    \item Directory demo/ removed as vignette("RcppAPI") is easier and more
+             reliable to show vignette documentation
+    \item RcppTemplateDemo() removed from R/zzz.R, vignette("RcppAPI") is easier;
+             man/RcppTemplateDemo.Rd removed as well
+    \item Some more code reindentation and formatting to R default arguments,
+             some renamed from RcppTemplate* to Rcpp*
+    \item Added footnote onto titlepage of inst/doc/RcppAPI.\{Rnw,pdf\} about how
+             this document has not (yet) been updated along with the channges made
+  }
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/RcppCommon.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/RcppCommon.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/RcppCommon.h	(revision 2476)
@@ -0,0 +1,181 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// RcppCommon.h: Rcpp R/C++ interface class library -- common include and defines statements
+//
+// Copyright (C) 2008 - 2009  Dirk Eddelbuettel
+// Copyright (C) 2009 - 2015  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RcppCommon_h
+#define RcppCommon_h
+
+// #define RCPP_DEBUG_LEVEL 1
+// #define RCPP_DEBUG_MODULE_LEVEL 1
+
+#include <Rcpp/r/headers.h>
+
+/**
+ * \brief Rcpp API
+ */
+namespace Rcpp {
+
+    /**
+     * \brief traits used to dispatch wrap
+     */
+    namespace traits {
+    } // traits
+
+    /**
+     * \brief internal implementation details
+     */
+    namespace internal {
+    } // internal
+} // Rcpp
+
+#include <iterator>
+#include <exception>
+#include <iostream>
+#include <iomanip>
+#include <sstream>
+#include <string>
+#include <list>
+#include <map>
+#include <set>
+#include <stdexcept>
+#include <vector>
+#include <deque>
+#include <functional>
+#include <numeric>
+#include <algorithm>
+#include <complex>
+#include <limits>
+#include <typeinfo>
+#include <Rcpp/sprintf.h>
+#include <R_ext/Callbacks.h>
+#include <R_ext/Visibility.h>
+#include <Rcpp/utils/tinyformat.h>
+
+#include <Rmath.h>
+#include <Rcpp/sugar/undoRmath.h>
+
+namespace Rcpp {
+
+    SEXP Rcpp_eval(SEXP expr_, SEXP env = R_GlobalEnv);
+    class Module;
+
+    namespace traits {
+        template <typename T> class named_object;
+    }
+
+    inline SEXP Rcpp_PreserveObject(SEXP x) {
+        if (x != R_NilValue) {
+            R_PreserveObject(x);
+        }
+        return x;
+    }
+
+    inline void Rcpp_ReleaseObject(SEXP x) {
+        if (x != R_NilValue) {
+            R_ReleaseObject(x);
+        }
+    }
+
+    inline SEXP Rcpp_ReplaceObject(SEXP x, SEXP y) {
+        if (Rf_isNull(x)) {
+            Rcpp_PreserveObject(y);
+        } else if (Rf_isNull(y)) {
+            Rcpp_ReleaseObject(x);
+        } else {
+            // if we are setting to the same SEXP as we already have, do nothing
+            if (x != y) {
+
+                // the previous SEXP was not NULL, so release it
+                Rcpp_ReleaseObject(x);
+
+                // the new SEXP is not NULL, so preserve it
+                Rcpp_PreserveObject(y);
+
+            }
+        }
+        return y;
+    }
+
+}
+
+#include <Rcpp/storage/storage.h>
+#include <Rcpp/protection/protection.h>
+#include <Rcpp/routines.h>
+#include <Rcpp/exceptions.h>
+#include <Rcpp/proxy/proxy.h>
+
+#include <Rcpp/lang.h>
+#include <Rcpp/complex.h>
+#include <Rcpp/barrier.h>
+
+#define RcppExport extern "C"
+
+#include <Rcpp/exceptions.h>
+
+#include <Rcpp/Interrupt.h>
+
+namespace Rcpp {
+    template <typename T> class object;
+    class String;
+        namespace internal {
+            template <typename Class> SEXP make_new_object(Class* ptr);
+        }
+}
+
+#include <Rcpp/longlong.h>
+
+#include <Rcpp/internal/na.h>
+#include <Rcpp/internal/NAComparator.h>
+#include <Rcpp/internal/NAEquals.h>
+
+#include <Rcpp/traits/traits.h>
+#include <Rcpp/Named.h>
+
+#include <Rcpp/internal/caster.h>
+#include <Rcpp/internal/r_vector.h>
+#include <Rcpp/r_cast.h>
+
+#include <Rcpp/api/bones/bones.h>
+
+#include <Rcpp/internal/export.h>
+#include <Rcpp/internal/r_coerce.h>
+#include <Rcpp/as.h>
+#include <Rcpp/InputParameter.h>
+#include <Rcpp/is.h>
+
+#include <Rcpp/vector/VectorBase.h>
+#include <Rcpp/vector/MatrixBase.h>
+
+#include <Rcpp/internal/ListInitialization.h>
+#include <Rcpp/internal/Proxy_Iterator.h>
+#include <Rcpp/internal/SEXP_Iterator.h>
+#include <Rcpp/internal/converter.h>
+
+#include <Rcpp/print.h>
+#include <Rcpp/algo.h>
+
+#include <Rcpp/sugar/sugar_forward.h>
+
+#include <Rcpp/iostream/Rstreambuf.h>
+
+#include <Rcpp/internal/wrap.h>
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/storage/PreserveStorage.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/storage/PreserveStorage.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/storage/PreserveStorage.h	(revision 2476)
@@ -0,0 +1,55 @@
+#ifndef Rcpp_PreserveStorage_h
+#define Rcpp_PreserveStorage_h
+
+namespace Rcpp{
+
+    template <typename CLASS>
+    class PreserveStorage {
+    public:
+
+        PreserveStorage() : data(R_NilValue){}
+
+        ~PreserveStorage(){
+            Rcpp_ReleaseObject(data) ;
+            data = R_NilValue;
+        }
+
+        inline void set__(SEXP x){
+            data = Rcpp_ReplaceObject(data, x) ;
+
+            // calls the update method of CLASS
+            // this is where to react to changes in the underlying SEXP
+            static_cast<CLASS&>(*this).update(data) ;
+        }
+
+        inline SEXP get__() const {
+            return data ;
+        }
+
+        inline SEXP invalidate__(){
+            SEXP out = data ;
+            data = R_NilValue ;
+            return out ;
+        }
+
+        template <typename T>
+        inline T& copy__(const T& other){
+            if( this != &other){
+                set__(other.get__());
+            }
+            return static_cast<T&>(*this) ;
+        }
+
+        inline bool inherits(const char* clazz) const {
+            return ::Rf_inherits( data, clazz) ;
+        }
+
+        inline operator SEXP() const { return data; }
+
+    private:
+        SEXP data ;
+    } ;
+
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/storage/NoProtectStorage.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/storage/NoProtectStorage.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/storage/NoProtectStorage.h	(revision 2476)
@@ -0,0 +1,54 @@
+#ifndef Rcpp_NoProtectStorage_h
+#define Rcpp_NoProtectStorage_h
+
+namespace Rcpp{
+
+    template <typename CLASS>
+    class NoProtectStorage {
+    public:
+
+        NoProtectStorage() : data(R_NilValue){}
+
+        ~NoProtectStorage(){
+            data = R_NilValue;
+        }
+
+        inline void set__(SEXP x){
+            data = x ;
+
+            // calls the update method of CLASS
+            // this is where to react to changes in the underlying SEXP
+            static_cast<CLASS&>(*this).update(data) ;
+        }
+
+        inline SEXP get__() const {
+            return data ;
+        }
+
+        inline SEXP invalidate__(){
+            data = R_NilValue ;
+            return data ;
+        }
+
+        inline CLASS& copy__(const CLASS& other){
+            if( this != &other){
+                set__(other.get__());
+            }
+            return static_cast<CLASS&>(*this) ;
+        }
+
+        inline bool inherits(const char* clazz) const {
+            return ::Rf_inherits( data, clazz) ;
+        }
+
+        inline operator SEXP() const {
+            return data;
+        }
+
+    private:
+        SEXP data ;
+    } ;
+
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/storage/storage.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/storage/storage.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/storage/storage.h	(revision 2476)
@@ -0,0 +1,7 @@
+#ifndef Rcpp_storage_storage_h
+#define Rcpp_storage_storage_h
+
+#include <Rcpp/storage/PreserveStorage.h>
+#include <Rcpp/storage/NoProtectStorage.h>
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/RNGScope.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/RNGScope.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/RNGScope.h	(revision 2476)
@@ -0,0 +1,35 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// RNGScope.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__RNGScope_h
+#define Rcpp__RNGScope_h
+
+namespace Rcpp {
+
+class RNGScope{
+public:
+    RNGScope(){ internal::enterRNGScope(); }
+    ~RNGScope(){ internal::exitRNGScope(); }
+};
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/lang.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/lang.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/lang.h	(revision 2476)
@@ -0,0 +1,370 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// lang.h: Rcpp R/C++ interface class library -- extra lang_* functions
+//
+// Copyright (C) 2011 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__lang_h
+#define Rcpp__lang_h
+
+#define Rcpp_list1 Rf_list1
+#define Rcpp_lang1 Rf_lang1
+
+namespace Rcpp {
+
+inline SEXP Rcpp_lcons(SEXP car, SEXP cdr){
+    Shield<SEXP> out( Rf_lcons( car, cdr ) );
+    return out ;
+}
+
+inline SEXP Rcpp_list2( SEXP x0, SEXP x1 ){
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list1(x1)) );
+    return out;
+}
+
+inline SEXP Rcpp_lang2( SEXP x0, SEXP x1 ){
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list1(x1)) );
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list3( SEXP x0, SEXP x1, SEXP x2 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list2(x1, x2)) );
+    return out;
+}
+
+inline SEXP Rcpp_lang3( SEXP x0, SEXP x1, SEXP x2 )
+{
+    Shield<SEXP> out(Rf_lcons(x0, Rcpp_list2(x1, x2)) );
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list4( SEXP x0, SEXP x1, SEXP x2, SEXP x3 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list3(x1, x2, x3)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang4( SEXP x0, SEXP x1, SEXP x2, SEXP x3 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list3(x1, x2, x3)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list5( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list4(x1, x2, x3, x4)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang5( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list4(x1, x2, x3, x4)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list6( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list5(x1, x2, x3, x4, x5)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang6( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list5(x1, x2, x3, x4, x5)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list7( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list6(x1, x2, x3, x4, x5, x6)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang7( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list6(x1, x2, x3, x4, x5, x6)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list8( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list7(x1, x2, x3, x4, x5, x6, x7)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang8( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list7(x1, x2, x3, x4, x5, x6, x7)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list9( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list8(x1, x2, x3, x4, x5, x6, x7, x8)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang9( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list8(x1, x2, x3, x4, x5, x6, x7, x8)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list10( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list9(x1, x2, x3, x4, x5, x6, x7, x8, x9)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang10( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list9(x1, x2, x3, x4, x5, x6, x7, x8, x9)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list11( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list10(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang11( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list10(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list12( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list11(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang12( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list11(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list13( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list12(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang13( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list12(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list14( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list13(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang14( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list13(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list15( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13, SEXP x14 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list14(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang15( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13, SEXP x14 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list14(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list16( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13, SEXP x14, SEXP x15 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list15(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang16( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13, SEXP x14, SEXP x15 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list15(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list17( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13, SEXP x14, SEXP x15, SEXP x16 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list16(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang17( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13, SEXP x14, SEXP x15, SEXP x16 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list16(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list18( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13, SEXP x14, SEXP x15, SEXP x16, SEXP x17 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list17(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang18( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13, SEXP x14, SEXP x15, SEXP x16, SEXP x17 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list17(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list19( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13, SEXP x14, SEXP x15, SEXP x16, SEXP x17, SEXP x18 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list18(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang19( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13, SEXP x14, SEXP x15, SEXP x16, SEXP x17, SEXP x18 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list18(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18)) );
+
+    return out;
+}
+
+
+
+
+
+inline SEXP Rcpp_list20( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13, SEXP x14, SEXP x15, SEXP x16, SEXP x17, SEXP x18, SEXP x19 )
+{
+    Shield<SEXP> out( Rf_cons(x0, Rcpp_list19(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)) );
+
+    return out;
+}
+
+inline SEXP Rcpp_lang20( SEXP x0, SEXP x1, SEXP x2, SEXP x3, SEXP x4, SEXP x5, SEXP x6, SEXP x7, SEXP x8, SEXP x9, SEXP x10, SEXP x11, SEXP x12, SEXP x13, SEXP x14, SEXP x15, SEXP x16, SEXP x17, SEXP x18, SEXP x19 )
+{
+    Shield<SEXP> out( Rf_lcons(x0, Rcpp_list19(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19)) );
+
+    return out;
+}
+
+}
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/algo.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/algo.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/algo.h	(revision 2476)
@@ -0,0 +1,161 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// algo.h: Rcpp R/C++ interface class library -- STL-style algorithms
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__algo_h
+#define Rcpp__algo_h
+
+#include <iterator>
+#include <algorithm>
+
+namespace Rcpp{
+
+/* generic implementation for the input iterator case */
+template<class InputIterator, class T>
+inline bool __any( InputIterator first, InputIterator last, const T& value, std::input_iterator_tag ){
+    for ( ;first!=last; first++) if ( *first==value ) return true;
+    return false;
+}
+
+/* RAI case */
+template<class RandomAccessIterator, class T>
+inline bool __any( RandomAccessIterator __first, RandomAccessIterator __last, const T& __val, std::random_access_iterator_tag ){
+
+	typename std::iterator_traits<RandomAccessIterator>::difference_type __trip_count = (__last - __first) >> 2;
+
+	for ( ; __trip_count > 0 ; --__trip_count) {
+	  if (*__first == __val)
+	    return true;
+	  ++__first;
+
+	  if (*__first == __val)
+	    return true;
+	  ++__first;
+
+	  if (*__first == __val)
+	    return true;
+	  ++__first;
+
+	  if (*__first == __val)
+	    return true;
+	  ++__first;
+	}
+
+      switch (__last - __first)
+	{
+	case 3:
+	  if (*__first == __val)
+	    return true;
+	  ++__first;
+	case 2:
+	  if (*__first == __val)
+	    return true;
+	  ++__first;
+	case 1:
+	  if (*__first == __val)
+	    return true;
+	  ++__first;
+	case 0:
+	default:
+	  return false;
+	}
+
+
+}
+
+
+/**
+ * stl like algorithm to identify if any of the objects in the range
+ * is equal to the value
+ */
+template<class InputIterator, class T>
+inline bool any( InputIterator first, InputIterator last, const T& value){
+	return __any( first, last, value, typename std::iterator_traits<InputIterator>::iterator_category() ) ;
+}
+
+
+
+
+/* generic implementation for the input iterator case */
+template<class InputIterator, class Predicate>
+inline bool __any_if( InputIterator first, InputIterator last, Predicate pred, std::input_iterator_tag ){
+  for ( ; first!=last ; first++ ) if ( pred(*first) ) return true ;
+  return false;
+}
+
+/* RAI case */
+template<class RandomAccessIterator, class Predicate>
+inline bool __any_if( RandomAccessIterator __first, RandomAccessIterator __last, Predicate __pred, std::random_access_iterator_tag ){
+
+	typename std::iterator_traits<RandomAccessIterator>::difference_type __trip_count = (__last - __first) >> 2;
+
+	for ( ; __trip_count > 0 ; --__trip_count) {
+	  if (__pred(*__first))
+	    return true;
+	  ++__first;
+
+	  if (__pred(*__first))
+	    return true;
+	  ++__first;
+
+	  if (__pred(*__first))
+	    return true;
+	  ++__first;
+
+	  if (__pred(*__first))
+	    return true;
+	  ++__first;
+	}
+
+      switch (__last - __first)
+	{
+	case 3:
+	  if (__pred(*__first))
+	    return true;
+	  ++__first;
+	case 2:
+	  if (__pred(*__first))
+	    return true;
+	  ++__first;
+	case 1:
+	  if (__pred(*__first))
+	    return true;
+	  ++__first;
+	case 0:
+	default:
+	  return false;
+	}
+
+
+}
+
+
+/**
+ * stl-like algorithm to identify if the predicate is true for any
+ * of the objects in the range
+ */
+template<class InputIterator, class Predicate>
+inline bool any_if( InputIterator first, InputIterator last, Predicate pred){
+	return __any_if( first, last, pred, typename std::iterator_traits<InputIterator>::iterator_category() ) ;
+}
+
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Language.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Language.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Language.h	(revision 2476)
@@ -0,0 +1,217 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Language.h: Rcpp R/C++ interface class library -- language objects (calls)
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Language_h
+#define Rcpp_Language_h
+
+namespace Rcpp{
+
+    /**
+     * C++ wrapper around calls (LANGSXP SEXP)
+     *
+     * This represents calls that can be evaluated
+     */
+    RCPP_API_CLASS(Language_Impl),
+        public DottedPairProxyPolicy< Language_Impl<StoragePolicy> > ,
+        public DottedPairImpl< Language_Impl<StoragePolicy> >
+    {
+    public:
+
+        typedef typename DottedPairProxyPolicy<Language_Impl>::DottedPairProxy Proxy ;
+        typedef typename DottedPairProxyPolicy<Language_Impl>::const_DottedPairProxy const_Proxy ;
+
+        RCPP_GENERATE_CTOR_ASSIGN(Language_Impl)
+
+        Language_Impl(){}
+
+        /**
+         * Attempts to convert the SEXP to a call
+         *
+         * @throw not_compatible if the SEXP could not be converted
+         * to a call using as.call
+         */
+        Language_Impl(SEXP x){
+            Storage::set__( r_cast<LANGSXP>(x) ) ;
+        }
+
+        /**
+         * Creates a call using the given symbol as the function name
+         *
+         * @param symbol symbol name to call
+         *
+         * Language( "rnorm" ) makes a SEXP similar to this (expressed in R)
+         * > as.call( as.list( as.name( "rnorm") ) )
+         * > call( "rnorm" )
+         */
+        explicit Language_Impl( const std::string& symbol ){
+            Storage::set__( Rf_lang1( Rf_install(symbol.c_str()) ) ) ;
+        }
+
+        /**
+         * Creates a call using the given symbol as the function name
+         *
+         * @param symbol symbol name to call
+         *
+         * Language( Symbol("rnorm") ) makes a SEXP similar to this:
+         * > call( "rnorm" )
+         */
+        explicit Language_Impl( const Symbol& symbol ){
+            Storage::set__( Rf_lang1( symbol ) ) ;
+        }
+
+        /**
+         * Creates a call to the function
+         *
+         * @param function function to call
+         */
+        explicit Language_Impl( const Function& function) {
+            Storage::set__( Rf_lang1( function ) ) ;
+        }
+
+        /**
+         * Creates a call to the given symbol using variable number of
+         * arguments
+         *
+         * @param symbol symbol
+         * @param ...Args variable length argument list. The type of each
+         *        argument must be wrappable, meaning there need to be
+         *        a wrap function that takes this type as its parameter
+         *
+         * For example, Language( "rnorm", 10, 0.0 )
+         * will create the same call as
+         * > call( "rnorm", 10L, 0.0 )
+         *
+         * 10 is wrapped as an integer vector using wrap( const& int )
+         * 0.0 is wrapped as a numeric vector using wrap( const& double )
+         * ...
+         */
+        #include <Rcpp/generated/Language__ctors.h>
+
+        /**
+         * sets the symbol of the call
+         */
+        void setSymbol( const std::string& symbol){
+            setSymbol( Symbol( symbol ) ) ;
+        }
+
+        /**
+         * sets the symbol of the call
+         */
+        void setSymbol( const Symbol& symbol ){
+            SEXP x = Storage::get__() ;
+            SETCAR( x, symbol ) ;
+            SET_TAG(x, R_NilValue);
+        }
+
+        /**
+         * sets the function
+         */
+        void setFunction( const Function& function){
+            SEXP x = Storage::get__() ;
+            SETCAR( x, function );
+            SET_TAG(x, R_NilValue); /* probably not necessary */
+        }
+
+        /**
+         * eval this call in the global environment
+         */
+        SEXP eval() const {
+            return Rcpp_eval( Storage::get__(), R_GlobalEnv ) ;
+        }
+
+        /**
+         * eval this call in the requested environment
+         */
+        SEXP eval(SEXP env) const {
+            return Rcpp_eval( Storage::get__(), env ) ;
+        }
+
+        SEXP fast_eval() const {
+            return Rf_eval( Storage::get__(), R_GlobalEnv) ;
+        }
+        SEXP fast_eval(SEXP env ) const {
+            return Rf_eval( Storage::get__(), env) ;
+        }
+
+        void update( SEXP x){
+            SET_TYPEOF( x, LANGSXP ) ;
+            SET_TAG( x, R_NilValue ) ;
+        }
+
+    };
+
+    typedef Language_Impl<PreserveStorage> Language ;
+
+    template <typename RESULT_TYPE=SEXP>
+    class fixed_call {
+    public:
+        typedef RESULT_TYPE result_type ;
+
+        fixed_call( Language call_ ) : call(call_){}
+        fixed_call( Function fun ) : call(fun){}
+
+        RESULT_TYPE operator()(){
+            return as<RESULT_TYPE>( call.eval() ) ;
+        }
+
+    private:
+        Language call ;
+    } ;
+
+    template <typename T, typename RESULT_TYPE = SEXP>
+    class unary_call : public std::unary_function<T,RESULT_TYPE> {
+    public:
+        unary_call( Language call_ ) : call(call_), proxy(call_,1) {}
+        unary_call( Language call_, R_xlen_t index ) : call(call_), proxy(call_,index){}
+        unary_call( Function fun ) : call( fun, R_NilValue), proxy(call,1) {}
+
+        RESULT_TYPE operator()( const T& object ){
+            proxy = object ;
+            return as<RESULT_TYPE>( call.eval() ) ;
+        }
+
+    private:
+        Language call ;
+        Language::Proxy proxy ;
+    } ;
+
+    template <typename T1, typename T2, typename RESULT_TYPE = SEXP>
+    class binary_call : public std::binary_function<T1,T2,RESULT_TYPE> {
+    public:
+        binary_call( Language call_ ) : call(call_), proxy1(call_,1), proxy2(call_,2) {}
+        binary_call( Language call_, R_xlen_t index1, R_xlen_t index2 ) : call(call_), proxy1(call_,index1), proxy2(call_,index2){}
+        binary_call( Function fun) : call(fun, R_NilValue, R_NilValue), proxy1(call,1), proxy2(call,2){}
+
+        RESULT_TYPE operator()( const T1& o1, const T2& o2 ){
+            proxy1 = o1 ;
+            proxy2 = o2 ;
+            return as<RESULT_TYPE>( call.eval() ) ;
+        }
+
+    private:
+        Language call ;
+        Language::Proxy proxy1 ;
+        Language::Proxy proxy2 ;
+    } ;
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/DataFrame.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/DataFrame.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/DataFrame.h	(revision 2476)
@@ -0,0 +1,139 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// DataFrame.h: Rcpp R/C++ interface class library -- data frames
+//
+// Copyright (C) 2010 - 2015  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__DataFrame_h
+#define Rcpp__DataFrame_h
+
+namespace Rcpp{
+
+    namespace internal{
+        inline SEXP empty_data_frame(){
+            Shield<SEXP> df( Rf_allocVector(VECSXP, 0) );
+            Rf_setAttrib(df, R_NamesSymbol, Rf_allocVector(STRSXP, 0));
+            Rf_setAttrib(df, R_RowNamesSymbol, Rf_allocVector(INTSXP, 0));
+            Rf_setAttrib(df, R_ClassSymbol, Rf_mkString("data.frame"));
+            return df;
+        }
+    }
+
+    template <template <class> class StoragePolicy>
+    class DataFrame_Impl : public Vector<VECSXP, StoragePolicy> {
+    public:
+        typedef Vector<VECSXP, StoragePolicy> Parent ;
+
+        DataFrame_Impl() : Parent( internal::empty_data_frame() ){}
+        DataFrame_Impl(SEXP x) : Parent(x) {
+            set__(x);
+        }
+        DataFrame_Impl( const DataFrame_Impl& other){
+            set__(other) ;
+        }
+
+        template <typename T>
+        DataFrame_Impl( const T& obj ) ;
+
+        DataFrame_Impl& operator=( DataFrame_Impl& other){
+            if (*this != other) set__(other);
+            return *this;
+        }
+
+        DataFrame_Impl& operator=( SEXP x){
+            set__(x) ;
+            return *this ;
+        }
+
+        // By definition, the number of rows in a data.frame is contained
+        // in its row.names attribute. If it has row names of the form 1:n,
+        // they will be stored as {NA_INTEGER, -<nrow>}. Unfortunately,
+        // getAttrib(df, R_RowNamesSymbol) will force an expansion of that
+        // compact form thereby allocating a huge vector when we just want
+        // the row.names. Hence this workaround.
+        inline int nrows() const {
+            SEXP rn = R_NilValue ;
+            SEXP att = ATTRIB( Parent::get__() )  ;
+            while( att != R_NilValue ){
+                if( TAG(att) == R_RowNamesSymbol ) {
+                    rn = CAR(att) ;
+                    break ;
+                }
+                att = CDR(att) ;
+            }
+            if (Rf_isNull(rn))
+                return 0;
+            if (TYPEOF(rn) == INTSXP && LENGTH(rn) == 2 && INTEGER(rn)[0] == NA_INTEGER)
+                return abs(INTEGER(rn)[1]);
+            return LENGTH(rn);
+        }
+
+        static DataFrame_Impl create(){
+            return DataFrame_Impl() ;
+        }
+
+        #include <Rcpp/generated/DataFrame_generated.h>
+
+    private:
+        void set__(SEXP x){
+            if( ::Rf_inherits( x, "data.frame" )){
+                Parent::set__( x ) ;
+            } else{
+                SEXP y = internal::convert_using_rfunction( x, "as.data.frame" ) ;
+                Parent::set__( y ) ;
+            }
+        }
+
+        static DataFrame_Impl from_list( Parent obj ){
+            bool use_default_strings_as_factors = true ;
+            bool strings_as_factors = true ;
+            int strings_as_factors_index = -1 ;
+            R_xlen_t n = obj.size() ;
+            CharacterVector names = obj.attr( "names" ) ;
+            if( !names.isNULL() ){
+                for( int i=0; i<n; i++){
+                    if( names[i] == "stringsAsFactors" ){
+                        strings_as_factors_index = i ;
+                        use_default_strings_as_factors = false ;
+                        if( !as<bool>(obj[i]) ) strings_as_factors = false ;
+                        break ;
+                    }
+                }
+            }
+            if( use_default_strings_as_factors )
+                return DataFrame_Impl(obj) ;
+            SEXP as_df_symb = Rf_install("as.data.frame");
+            SEXP strings_as_factors_symb = Rf_install("stringsAsFactors");
+
+            obj.erase(strings_as_factors_index) ;
+            names.erase(strings_as_factors_index) ;
+            obj.attr( "names") = names ;
+            Shield<SEXP> call( Rf_lang3(as_df_symb, obj, wrap( strings_as_factors ) ) ) ;
+            SET_TAG( CDDR(call),  strings_as_factors_symb ) ;
+            Shield<SEXP> res( Rcpp_eval( call ) ) ;
+            DataFrame_Impl out( res ) ;
+            return out ;
+
+        }
+
+    } ;
+
+    typedef DataFrame_Impl<PreserveStorage> DataFrame ;
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Function.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Function.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Function.h	(revision 2476)
@@ -0,0 +1,117 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Function.h: Rcpp R/C++ interface class library -- functions (also primitives and builtins)
+//
+// Copyright (C) 2010 - 2013  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Function_h
+#define Rcpp_Function_h
+
+#include <RcppCommon.h>
+
+#include <Rcpp/grow.h>
+
+namespace Rcpp{
+
+    /**
+     * functions
+     */
+    RCPP_API_CLASS(Function_Impl) {
+    public:
+
+        RCPP_GENERATE_CTOR_ASSIGN(Function_Impl)
+
+        Function_Impl(SEXP x){
+            switch( TYPEOF(x) ){
+            case CLOSXP:
+            case SPECIALSXP:
+            case BUILTINSXP:
+                Storage::set__(x);
+                break;
+            default:
+                throw not_compatible("cannot convert to function") ;
+            }
+        }
+
+        /**
+         * Finds a function. By default, searches from the global environment
+         *
+         * @param name name of the function
+         * @param env an environment where to search the function
+         * @param ns name of the namespace in which to search the function
+         */
+        Function_Impl(const std::string& name) {
+            get_function(name, R_GlobalEnv);
+        }
+
+        Function_Impl(const std::string& name, const SEXP env) {
+            if (!Rf_isEnvironment(env)) {
+                stop("env is not an environment");
+            }
+            get_function(name, env);
+        }
+
+        Function_Impl(const std::string& name, const std::string& ns) {
+            Shield<SEXP> env(Rf_findVarInFrame(R_NamespaceRegistry, Rf_install(ns.c_str())));
+            if (env == R_UnboundValue) {
+                stop("there is no namespace called \"%s\"", ns);
+            }
+            get_function(name, env);
+        }
+
+        SEXP operator()() const {
+            Shield<SEXP> call(Rf_lang1(Storage::get__()));
+            return Rcpp_eval(call);
+        }
+
+        #include <Rcpp/generated/Function__operator.h>
+
+        /**
+         * Returns the environment of this function
+         */
+        SEXP environment() const {
+            SEXP fun = Storage::get__() ;
+            if( TYPEOF(fun) != CLOSXP ) {
+                throw not_a_closure() ;
+            }
+            return CLOENV(fun) ;
+        }
+
+        /**
+         * Returns the body of the function
+         */
+        SEXP body() const {
+            return BODY( Storage::get__() ) ;
+        }
+
+        void update(SEXP){}
+
+
+    private:
+        void get_function(const std::string& name, const SEXP env) {
+            SEXP nameSym = Rf_install( name.c_str() );	// cannot be gc()'ed  once in symbol table
+            Shield<SEXP> x( Rf_findFun( nameSym, env ) ) ;
+            Storage::set__(x) ;
+        }
+    };
+
+    typedef Function_Impl<PreserveStorage> Function ;
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/matrix_functions.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/matrix_functions.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/matrix_functions.h	(revision 2476)
@@ -0,0 +1,33 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// matrix_functions.h: Rcpp R/C++ interface class library -- matrix sugar functions
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RCPP_SUGAR_MATRIX_FUNCTIONS_H
+#define RCPP_SUGAR_MATRIX_FUNCTIONS_H
+
+#include <Rcpp/sugar/matrix/outer.h>
+#include <Rcpp/sugar/matrix/row.h>
+#include <Rcpp/sugar/matrix/col.h>
+#include <Rcpp/sugar/matrix/lower_tri.h>
+#include <Rcpp/sugar/matrix/upper_tri.h>
+#include <Rcpp/sugar/matrix/diag.h>
+#include <Rcpp/sugar/matrix/as_vector.h>
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/col.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/col.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/col.h	(revision 2476)
@@ -0,0 +1,61 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// col.h: Rcpp R/C++ interface class library -- col
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__sugar__col_h
+#define Rcpp__sugar__col_h
+
+namespace Rcpp{
+namespace sugar{
+
+template <int RTYPE, bool LHS_NA, typename LHS_T>
+class Col : public MatrixBase<
+	INTSXP ,
+	false ,
+	Col<RTYPE,LHS_NA,LHS_T>
+> {
+public:
+	typedef Rcpp::MatrixBase<RTYPE,LHS_NA,LHS_T> LHS_TYPE ;
+
+	Col( const LHS_TYPE& lhs) : nr( lhs.ncol() ), nc( lhs.ncol() ) {}
+
+	inline int operator()( int i, int j ) const {
+		return j + 1 ;
+	}
+
+	inline R_xlen_t size() const { return static_cast<R_xlen_t>(nr) * nc ; }
+	inline int nrow() const { return nr; }
+	inline int ncol() const { return nc; }
+
+private:
+	int nr, nc ;
+} ;
+
+} // sugar
+
+template <int RTYPE, bool LHS_NA, typename LHS_T>
+inline sugar::Col<RTYPE,LHS_NA,LHS_T>
+col( const Rcpp::MatrixBase<RTYPE,LHS_NA,LHS_T>& lhs){
+	return sugar::Col<RTYPE,LHS_NA,LHS_T>( lhs ) ;
+}
+
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/outer.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/outer.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/outer.h	(revision 2476)
@@ -0,0 +1,90 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// outer.h: Rcpp R/C++ interface class library -- outer
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__sugar__outer_h
+#define Rcpp__sugar__outer_h
+
+namespace Rcpp{
+namespace sugar{
+
+template <int RTYPE,
+          bool LHS_NA, typename LHS_T,
+          bool RHS_NA, typename RHS_T,
+          typename Function >
+class Outer : public MatrixBase<
+    Rcpp::traits::r_sexptype_traits<
+        typename ::Rcpp::traits::result_of<Function>::type
+	>::rtype ,
+            true ,
+    Outer<RTYPE,LHS_NA,LHS_T,RHS_NA,RHS_T,Function>
+> {
+public:
+    typedef typename ::Rcpp::traits::result_of<Function>::type result_type ;
+    const static int RESULT_R_TYPE =
+        Rcpp::traits::r_sexptype_traits<result_type>::rtype ;
+
+    typedef Rcpp::VectorBase<RTYPE,LHS_NA,LHS_T> LHS_TYPE ;
+    typedef Rcpp::VectorBase<RTYPE,RHS_NA,RHS_T> RHS_TYPE ;
+
+    typedef Rcpp::internal::LazyVector<LHS_TYPE> LHS_LAZY ;
+    typedef Rcpp::internal::LazyVector<RHS_TYPE> RHS_LAZY ;
+
+    typedef typename Rcpp::traits::r_vector_element_converter<RESULT_R_TYPE>::type converter_type ;
+    typedef typename Rcpp::traits::storage_type<RESULT_R_TYPE>::type STORAGE ;
+
+    Outer( const LHS_TYPE& lhs_, const RHS_TYPE& rhs_, Function fun_ ) :
+        lhs(lhs_), rhs(rhs_), fun(fun_), nr(lhs_.size()), nc(rhs_.size()) {}
+
+    inline STORAGE operator()( int i, int j ) const {
+        return converter_type::get( fun( lhs[i], rhs[j] ) );
+    }
+
+    inline R_xlen_t size() const { return static_cast<R_xlen_t>(nr) * nc ; }
+    inline int nrow() const { return nr; }
+    inline int ncol() const { return nc; }
+
+private:
+
+    LHS_LAZY lhs ;
+    RHS_LAZY rhs ;
+
+    Function fun ;
+    int nr, nc ;
+} ;
+
+} // sugar
+
+template <int RTYPE,
+          bool LHS_NA, typename LHS_T,
+          bool RHS_NA, typename RHS_T,
+          typename Function >
+inline sugar::Outer<RTYPE,LHS_NA,LHS_T,RHS_NA,RHS_T,Function>
+outer(
+      const Rcpp::VectorBase<RTYPE,LHS_NA,LHS_T>& lhs,
+      const Rcpp::VectorBase<RTYPE,RHS_NA,RHS_T>& rhs,
+      Function fun ){
+
+    return sugar::Outer<RTYPE,LHS_NA,LHS_T,RHS_NA,RHS_T,Function>( lhs, rhs, fun ) ;
+}
+
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/tools.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/tools.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/tools.h	(revision 2476)
@@ -0,0 +1,44 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// matrix_functions.h: Rcpp R/C++ interface class library -- matrix sugar functions
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RCPP_SUGAR_MATRIX_TOOLS_H
+#define RCPP_SUGAR_MATRIX_TOOLS_H
+
+namespace Rcpp{
+namespace internal{
+
+	inline int get_line( int index, int nr ){
+		return index % nr ;
+	}
+
+	inline int get_column( int index, int nr ){
+		int i = get_line( index, nr );
+		return (index-i) / nr ;
+	}
+
+	inline int get_column( int index, int nr, int i ){
+		return (index-i) / nr ;
+	}
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/diag.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/diag.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/diag.h	(revision 2476)
@@ -0,0 +1,90 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// diag.h: Rcpp R/C++ interface class library -- diag
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__sugar__diag_h
+#define Rcpp__sugar__diag_h
+
+namespace Rcpp{
+namespace sugar{
+
+template <int RTYPE, bool NA, typename T>
+class Diag_Extractor : public Rcpp::VectorBase< RTYPE ,NA, Diag_Extractor<RTYPE,NA,T> > {
+public:
+	typedef typename Rcpp::MatrixBase<RTYPE,NA,T> MAT_TYPE ;
+	typedef typename Rcpp::traits::storage_type<RTYPE>::type STORAGE ;
+
+	Diag_Extractor( const MAT_TYPE& object_ ) : object(object_), n(0) {
+		int nr = object.nrow() ;
+		int nc = object.ncol() ;
+		n = (nc < nr ) ? nc : nr ;
+	}
+
+	inline STORAGE operator[]( int i ) const {
+		return object( i, i ) ;
+	}
+	inline R_xlen_t size() const { return n; }
+
+private:
+	const MAT_TYPE& object ;
+	R_xlen_t n ;
+} ;
+
+
+template <int RTYPE, bool NA, typename T>
+class Diag_Maker : public Rcpp::MatrixBase< RTYPE ,NA, Diag_Maker<RTYPE,NA,T> > {
+public:
+	typedef typename Rcpp::VectorBase<RTYPE,NA,T> VEC_TYPE ;
+	typedef typename Rcpp::traits::storage_type<RTYPE>::type STORAGE ;
+
+	Diag_Maker( const VEC_TYPE& object_ ) : object(object_), n(object_.size()) {}
+
+	inline STORAGE operator()( int i, int j ) const {
+		return (i==j) ? object[i] : 0 ;
+	}
+	inline R_xlen_t size() const { return static_cast<R_xlen_t>(n) * n; }
+	inline int ncol() const { return n; }
+	inline int nrow() const { return n; }
+
+private:
+	const VEC_TYPE& object ;
+	int n ;
+} ;
+
+template <typename T> struct diag_result_type_trait{
+	typedef typename Rcpp::traits::if_<
+		Rcpp::traits::matrix_interface<T>::value,
+		Diag_Extractor< T::r_type::value , T::can_have_na::value , T >,
+		Diag_Maker< T::r_type::value , T::can_have_na::value , T >
+	>::type type ;
+} ;
+
+} // sugar
+
+template <typename T>
+inline typename sugar::diag_result_type_trait<T>::type
+diag( const T& t ){
+	return typename sugar::diag_result_type_trait<T>::type( t ) ;
+}
+
+
+} // Rcpp
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/as_vector.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/as_vector.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/as_vector.h	(revision 2476)
@@ -0,0 +1,61 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// as_vector.h: Rcpp R/C++ interface class library -- as_vector( sugar matrix expression )
+//
+// Copyright (C) 2010 - 2014 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__sugar__matrix_as_vector_h
+#define Rcpp__sugar__matrix_as_vector_h
+
+namespace Rcpp{
+namespace internal{
+
+template <int RTYPE, bool NA, typename T>
+inline Rcpp::Vector<RTYPE>
+as_vector__impl( MatrixBase<RTYPE,NA,T>& t, Rcpp::traits::false_type ){
+    T& ref = t.get_ref() ;
+    int nc = ref.ncol(), nr = ref.nrow() ;
+    Vector<RTYPE> out (static_cast<R_xlen_t>(nr) * nc) ;
+    R_xlen_t k =0;
+    for( int col_index=0; col_index<nc; col_index++)
+        for( int row_index=0; row_index<nr; row_index++, k++)
+            out[k] = ref( row_index, col_index ) ;
+
+    return out ;
+}
+
+template <int RTYPE, bool NA, typename T>
+inline Rcpp::Vector<RTYPE>
+as_vector__impl( MatrixBase<RTYPE,NA,T>& t, Rcpp::traits::true_type ){
+    Matrix<RTYPE>& ref = t.get_ref() ;
+    R_xlen_t size = static_cast<R_xlen_t>(ref.ncol())*ref.nrow() ;
+    typename Rcpp::Vector<RTYPE>::const_iterator first(static_cast<const Rcpp::Vector<RTYPE>&>(ref).begin())  ;
+    return Vector<RTYPE>(first, first+size );
+}
+
+} // internal
+
+template <int RTYPE, bool NA, typename T>
+inline Rcpp::Vector<RTYPE>
+as_vector( const MatrixBase<RTYPE,NA,T>& t ){
+    return internal::as_vector__impl( const_cast< MatrixBase<RTYPE,NA,T>& >(t), typename Rcpp::traits::same_type< T , Matrix<RTYPE> >() ) ;
+}
+
+} // Rcpp
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/lower_tri.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/lower_tri.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/lower_tri.h	(revision 2476)
@@ -0,0 +1,81 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// lower_tri.h: Rcpp R/C++ interface class library -- lower.tri
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__sugar__lower_tri_h
+#define Rcpp__sugar__lower_tri_h
+
+namespace Rcpp{
+namespace sugar{
+
+template <int RTYPE, bool LHS_NA, typename LHS_T>
+class LowerTri : public VectorBase<
+	LGLSXP ,
+	false ,
+	LowerTri<RTYPE,LHS_NA,LHS_T>
+> {
+public:
+	typedef Rcpp::MatrixBase<RTYPE,LHS_NA,LHS_T> LHS_TYPE ;
+
+	LowerTri( const LHS_TYPE& lhs, bool diag) :
+		nr( lhs.nrow() ), nc( lhs.ncol() ),
+		getter( diag ? (&LowerTri::get_diag_true) : (&LowerTri::get_diag_false) ){}
+
+	// inline int operator[]( int index ) const {
+	// 	int i = Rcpp::internal::get_line( index, nr ) ;
+	// 	int j = Rcpp::internal::get_column( index, nr, i ) ;
+	// 	return get(i,j) ;
+	// }
+	inline int operator()( int i, int j ) const {
+		return get(i,j) ;
+	}
+
+	inline R_xlen_t size() const { return static_cast<R_xlen_t>(nr) * nc ; }
+	inline int nrow() const { return nr; }
+	inline int ncol() const { return nc; }
+
+private:
+	int nr, nc ;
+	typedef bool (LowerTri::*Method)(int,int) ;
+
+	Method getter ;
+	inline bool get_diag_true( int i, int j ){
+		return i <= j ;
+	}
+	inline bool get_diag_false( int i, int j ){
+		return i < j ;
+	}
+	inline bool get( int i, int j){
+		return (this->*getter)(i, j ) ;
+	}
+
+} ;
+
+} // sugar
+
+template <int RTYPE, bool LHS_NA, typename LHS_T>
+inline sugar::LowerTri<RTYPE,LHS_NA,LHS_T>
+lower_tri( const Rcpp::MatrixBase<RTYPE,LHS_NA,LHS_T>& lhs, bool diag = false){
+	return sugar::LowerTri<RTYPE,LHS_NA,LHS_T>( lhs, diag ) ;
+}
+
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/row.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/row.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/row.h	(revision 2476)
@@ -0,0 +1,61 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// row.h: Rcpp R/C++ interface class library -- row
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__sugar__row_h
+#define Rcpp__sugar__row_h
+
+namespace Rcpp{
+namespace sugar{
+
+template <int RTYPE, bool LHS_NA, typename LHS_T>
+class Row : public MatrixBase<
+	INTSXP ,
+	false ,
+	Row<RTYPE,LHS_NA,LHS_T>
+> {
+public:
+	typedef Rcpp::MatrixBase<RTYPE,LHS_NA,LHS_T> LHS_TYPE ;
+
+	Row( const LHS_TYPE& lhs) : nr( lhs.nrow() ), nc( lhs.ncol() ) {}
+
+	inline int operator()( int i, int j ) const {
+		return i + 1 ;
+	}
+
+	inline R_xlen_t size() const { return static_cast<R_xlen_t>(nr) * nc ; }
+	inline int nrow() const { return nr; }
+	inline int ncol() const { return nc; }
+
+private:
+	int nr, nc ;
+} ;
+
+} // sugar
+
+template <int RTYPE, bool LHS_NA, typename LHS_T>
+inline sugar::Row<RTYPE,LHS_NA,LHS_T>
+row( const Rcpp::MatrixBase<RTYPE,LHS_NA,LHS_T>& lhs){
+	return sugar::Row<RTYPE,LHS_NA,LHS_T>( lhs ) ;
+}
+
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/upper_tri.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/upper_tri.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sugar/matrix/upper_tri.h	(revision 2476)
@@ -0,0 +1,76 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// upper_tri.h: Rcpp R/C++ interface class library -- lower.tri
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__sugar__upper_tri_h
+#define Rcpp__sugar__upper_tri_h
+
+namespace Rcpp{
+namespace sugar{
+
+template <int RTYPE, bool LHS_NA, typename LHS_T>
+class UpperTri : public VectorBase<
+	LGLSXP ,
+	false ,
+	UpperTri<RTYPE,LHS_NA,LHS_T>
+> {
+public:
+	typedef Rcpp::MatrixBase<RTYPE,LHS_NA,LHS_T> LHS_TYPE ;
+
+	UpperTri( const LHS_TYPE& lhs, bool diag) :
+		nr( lhs.nrow() ), nc( lhs.ncol() ),
+		getter( diag ? (&UpperTri::get_diag_true) : (&UpperTri::get_diag_false) ){}
+
+	inline int operator()( int i, int j ) const {
+		return get(i,j) ;
+	}
+
+	inline R_xlen_t size() const { return static_cast<R_xlen_t>(nr) * nc ; }
+	inline int nrow() const { return nr; }
+	inline int ncol() const { return nc; }
+
+private:
+	int nr, nc ;
+	typedef bool (UpperTri::*Method)(int,int) ;
+
+	Method getter ;
+	inline bool get_diag_true( int i, int j ){
+		return i >= j ;
+	}
+	inline bool get_diag_false( int i, int j ){
+		return i > j ;
+	}
+	inline bool get( int i, int j){
+		return (this->*getter)(i, j ) ;
+	}
+
+} ;
+
+} // sugar
+
+template <int RTYPE, bool LHS_NA, typename LHS_T>
+inline sugar::UpperTri<RTYPE,LHS_NA,LHS_T>
+upper_tri( const Rcpp::MatrixBase<RTYPE,LHS_NA,LHS_T>& lhs, bool diag = false){
+	return sugar::UpperTri<RTYPE,LHS_NA,LHS_T>( lhs, diag ) ;
+}
+
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/DottedPair.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/DottedPair.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/DottedPair.h	(revision 2476)
@@ -0,0 +1,49 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// DottedPair.h: Rcpp R/C++ interface class library -- dotted pair list template
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_DottedPair_h
+#define Rcpp_DottedPair_h
+
+namespace Rcpp{
+
+RCPP_API_CLASS(DottedPair_Impl),
+    public DottedPairProxyPolicy<DottedPair_Impl<StoragePolicy> >,
+    public DottedPairImpl<DottedPair_Impl<StoragePolicy> > {
+public:
+    RCPP_GENERATE_CTOR_ASSIGN(DottedPair_Impl)
+
+	DottedPair_Impl(){}
+
+	DottedPair_Impl(SEXP x) {
+	    Storage::set__(x) ;
+	}
+
+	#include <Rcpp/generated/DottedPair__ctors.h>
+
+	void update(SEXP){}
+
+};
+
+typedef DottedPair_Impl<PreserveStorage> DottedPair ;
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/clone.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/clone.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/clone.h	(revision 2476)
@@ -0,0 +1,40 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// clone.h: Rcpp R/C++ interface class library -- clone RObject's
+//
+// Copyright (C) 2010 - 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_clone_h
+#define Rcpp_clone_h
+
+#include <RcppCommon.h>
+
+namespace Rcpp{
+
+/* cloning type T is possible if :
+   - T can be converted to SEXP
+   - T has a SEXP constructor
+*/
+template <typename T> T clone(const T& object) {
+    SEXP x = const_cast<T&>(object) ;
+    return T( Rf_duplicate( x ) ) ;
+}
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/StretchyList.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/StretchyList.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/StretchyList.h	(revision 2476)
@@ -0,0 +1,85 @@
+// StretchyList.h: Rcpp R/C++ interface class library -- stretchy lists
+//
+// Copyright (C) 2013 Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_StretchyList_h
+#define Rcpp_StretchyList_h
+
+namespace Rcpp{
+
+    /**
+     * StretchyList uses a special pairlist to provide efficient insertion
+     * at the front and the end of a pairlist.
+     *
+     * This is a C++ abstraction of the functions NewList, GrowList and Insert
+     * that are found in places where a pair list has to grow efficiently, e.g.
+     * in the R parser (gram.y)
+     */
+    RCPP_API_CLASS(StretchyList_Impl),
+        public DottedPairProxyPolicy<StretchyList_Impl<StoragePolicy> > {
+    public:
+
+        RCPP_GENERATE_CTOR_ASSIGN(StretchyList_Impl)
+
+        typedef typename DottedPairProxyPolicy<StretchyList_Impl>::DottedPairProxy Proxy ;
+        typedef typename DottedPairProxyPolicy<StretchyList_Impl>::const_DottedPairProxy const_Proxy ;
+
+        StretchyList_Impl(){
+            SEXP s = Rf_cons(R_NilValue, R_NilValue);
+            SETCAR(s, s);
+            Storage::set__(s) ;
+        }
+        StretchyList_Impl(SEXP x){
+            Storage::set__(r_cast<LISTSXP>(x)) ;
+        }
+
+        void update(SEXP x){}
+
+        inline operator SEXP() const{
+            return CDR(Storage::get__() );
+        }
+
+        template <typename T>
+        inline StretchyList_Impl& push_back(const T& obj ){
+            return push_back__impl( obj, typename traits::is_named<T>::type() ) ;
+        }
+
+        template <typename T>
+        inline StretchyList_Impl& push_front(const T& obj ){
+            return push_front__impl( obj, typename traits::is_named<T>::type() ) ;
+        }
+
+    private:
+
+        template <typename T>
+        StretchyList_Impl& push_back__impl(const T& obj, traits::true_type ) ;
+
+        template <typename T>
+        StretchyList_Impl& push_back__impl(const T& obj, traits::false_type ) ;
+
+        template <typename T>
+        StretchyList_Impl& push_front__impl(const T& obj, traits::true_type ) ;
+
+        template <typename T>
+        StretchyList_Impl& push_front__impl(const T& obj, traits::false_type ) ;
+
+    } ;
+
+    typedef StretchyList_Impl<PreserveStorage> StretchyList ;
+}
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Vector.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Vector.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Vector.h	(revision 2476)
@@ -0,0 +1,76 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Vector.h: Rcpp R/C++ interface class library -- vectors
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__Vector_h
+#define Rcpp__Vector_h
+
+#include <RcppCommon.h>
+#include <Rcpp/exceptions.h>
+#include <Rcpp/r_cast.h>
+
+namespace Rcpp{
+    namespace traits{
+         template <int RTYPE, bool NA, typename VECTOR> struct Extractor ;
+    }
+    template <int RTYPE> class MatrixRow ;
+    template <int RTYPE> class ConstMatrixRow ;
+    template <int RTYPE> class MatrixColumn ;
+    template <int RTYPE> class ConstMatrixColumn  ;
+    template <int RTYPE> class SubMatrix ;
+
+    class Dimension ;
+    template <bool NA,typename T> class SingleLogicalResult ;
+
+}
+
+#include <Rcpp/vector/00_forward_Vector.h>
+#include <Rcpp/vector/no_init.h>
+
+#include <Rcpp/vector/00_forward_proxy.h>
+#include <Rcpp/vector/vector_from_string.h>
+
+#include <Rcpp/vector/converter.h>
+#include <Rcpp/vector/RangeIndexer.h>
+#include <Rcpp/vector/Vector.h>
+#include <Rcpp/vector/proxy.h>
+#include <Rcpp/vector/traits.h>
+
+#include <Rcpp/vector/DimNameProxy.h>
+
+#include <Rcpp/vector/Matrix.h>
+#include <Rcpp/vector/SubMatrix.h>
+#include <Rcpp/vector/MatrixRow.h>
+#include <Rcpp/vector/MatrixColumn.h>
+#include <Rcpp/vector/instantiation.h>
+
+#include <Rcpp/vector/string_proxy.h>
+#include <Rcpp/vector/const_string_proxy.h>
+#include <Rcpp/vector/generic_proxy.h>
+#include <Rcpp/vector/const_generic_proxy.h>
+
+#include <Rcpp/String.h>
+#include <Rcpp/vector/LazyVector.h>
+#include <Rcpp/vector/swap.h>
+
+#include <Rcpp/vector/ChildVector.h>
+#include <Rcpp/vector/ListOf.h>
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/as.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/as.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/as.h	(revision 2476)
@@ -0,0 +1,160 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// as.h: Rcpp R/C++ interface class library -- convert SEXP to C++ objects
+//
+// Copyright (C) 2009 - 2015  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__as__h
+#define Rcpp__as__h
+
+#include <Rcpp/internal/Exporter.h>
+
+namespace Rcpp {
+
+    namespace internal {
+
+        template <typename T> T primitive_as(SEXP x) {
+            if (::Rf_length(x) != 1) throw ::Rcpp::not_compatible("expecting a single value");
+            const int RTYPE = ::Rcpp::traits::r_sexptype_traits<T>::rtype;
+            Shield<SEXP> y(r_cast<RTYPE>(x));
+            typedef typename ::Rcpp::traits::storage_type<RTYPE>::type STORAGE;
+            T res = caster<STORAGE,T>(*r_vector_start<RTYPE>(y));
+            return res;
+        }
+
+        template <typename T> T as(SEXP x, ::Rcpp::traits::r_type_primitive_tag) {
+            return primitive_as<T>(x);
+        }
+
+        inline const char* check_single_string(SEXP x) {
+            if (TYPEOF(x) == CHARSXP) return CHAR(x);
+            if (! ::Rf_isString(x))
+                throw ::Rcpp::not_compatible("expecting a string");
+            if (Rf_length(x) != 1)
+                throw ::Rcpp::not_compatible("expecting a single value");
+            return CHAR(STRING_ELT(::Rcpp::r_cast<STRSXP>(x), 0));
+        }
+
+
+        template <typename T> T as_string(SEXP x, Rcpp::traits::true_type) {
+            const char* y = check_single_string(x);
+            return std::wstring(y, y+strlen(y));
+        }
+
+        template <typename T> T as_string(SEXP x, Rcpp::traits::false_type) {
+            return check_single_string(x);
+        }
+
+        template <typename T> T as(SEXP x, ::Rcpp::traits::r_type_string_tag) {
+            return as_string<T>(x, typename Rcpp::traits::is_wide_string<T>::type());
+        }
+
+        template <typename T> T as(SEXP x, ::Rcpp::traits::r_type_RcppString_tag) {
+            if (! ::Rf_isString(x)) {
+                throw ::Rcpp::not_compatible("expecting a string");
+            }
+            if (Rf_length(x) != 1) {
+                throw ::Rcpp::not_compatible("expecting a single value");
+            }
+            return STRING_ELT(::Rcpp::r_cast<STRSXP>(x), 0);
+        }
+
+        template <typename T> T as(SEXP x, ::Rcpp::traits::r_type_generic_tag) {
+            RCPP_DEBUG_1("as(SEXP = <%p>, r_type_generic_tag )", x);
+            ::Rcpp::traits::Exporter<T> exporter(x);
+            RCPP_DEBUG_1("exporter type = %s", DEMANGLE(exporter));
+            return exporter.get();
+        }
+
+        void* as_module_object_internal(SEXP obj);
+
+        template <typename T> object<T> as_module_object(SEXP x) {
+            return (T*) as_module_object_internal(x);
+        }
+
+        /** handling object<T> */
+        template <typename T> T as(SEXP x, ::Rcpp::traits::r_type_module_object_const_pointer_tag) {
+            typedef typename Rcpp::traits::remove_const<T>::type T_NON_CONST;
+            return const_cast<T>((T_NON_CONST)as_module_object_internal(x));
+        }
+
+        template <typename T> T as(SEXP x, ::Rcpp::traits::r_type_module_object_pointer_tag) {
+            return as_module_object<typename traits::un_pointer<T>::type>(x);
+        }
+
+        /** handling T such that T is exposed by a module */
+        template <typename T> T as(SEXP x, ::Rcpp::traits::r_type_module_object_tag) {
+            T* obj = as_module_object<T>(x);
+            return *obj;
+        }
+
+        /** handling T such that T is a reference of a class handled by a module */
+        template <typename T> T as(SEXP x, ::Rcpp::traits::r_type_module_object_reference_tag) {
+            typedef typename traits::remove_reference<T>::type KLASS;
+            KLASS* obj = as_module_object<KLASS>(x);
+            return *obj;
+        }
+
+        /** handling T such that T is a reference of a class handled by a module */
+        template <typename T> T as(SEXP x, ::Rcpp::traits::r_type_module_object_const_reference_tag) {
+            typedef typename traits::remove_const_and_reference<T>::type KLASS;
+            KLASS* obj = as_module_object<KLASS>(x);
+            return const_cast<T>(*obj);
+        }
+
+        /** handling enums by converting to int first */
+        template <typename T> T as(SEXP x, ::Rcpp::traits::r_type_enum_tag) {
+            return T(primitive_as<int>(x));
+        }
+
+    }
+
+
+    /**
+     * Generic converted from SEXP to the typename. T can be any type that
+     * has a constructor taking a SEXP, which is the case for all our
+     * RObject and derived classes.
+     *
+     * If it is not possible to add the SEXP constructor, e.g you don't control
+     * the type, you can specialize the as template to perform the
+     * requested conversion
+     *
+     * This is used for example in Environment, so that for example the code
+     * below will work as long as there is a way to as<> the Foo type
+     *
+     * Environment x = ... ; // some environment
+     * Foo y = x["bla"] ;    // if as<Foo> makes sense then this works !!
+     */
+    template <typename T> T as(SEXP x) {
+        return internal::as<T>(x, typename traits::r_type_traits<T>::r_category());
+    }
+
+    template <> inline char as<char>(SEXP x) {
+        return internal::check_single_string(x)[0];
+    }
+
+    template <typename T>
+    inline typename traits::remove_const_and_reference<T>::type bare_as(SEXP x) {
+        return as< typename traits::remove_const_and_reference<T>::type >(x);
+    }
+
+    template<> inline SEXP as(SEXP x) { return x; }
+
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/unif.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/unif.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/unif.h	(revision 2476)
@@ -0,0 +1,99 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// auto generated file (from script/stats.R)
+//
+// unif.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__unif_h
+#define Rcpp__stats__unif_h
+
+namespace Rcpp {
+namespace stats {
+
+inline double dunif_1(double x, double a/*, double b [=1.]*/ ,
+                      int give_log) {
+    return ::Rf_dunif(x, a, 1.0, give_log ) ;
+}
+inline double dunif_0( double x /*, double a [=0.], double b [=1.]*/ ,
+                       int give_log) {
+#ifdef IEEE_754
+    if (ISNAN(x) )
+        return x + 1.0 ;
+#endif
+
+    if (0.0 <= x && x <= 1.0) return give_log ? 0.0 : 1.0 ;
+    return R_D__0;
+}
+
+
+inline double punif_1(double x, double a /*, double b [=1.0]*/,
+                      int lower_tail, int log_p) {
+    return ::Rf_punif( x, a, 1.0, lower_tail, log_p ) ;
+}
+inline double punif_0(double x /*, double a [=0.0], double b [=1.0]*/,
+                      int lower_tail, int log_p) {
+#ifdef IEEE_754
+    if (ISNAN(x))
+        return x + 1.0 ;
+#endif
+    if (x >= 1.0)
+        return R_DT_1;
+    if (x <= 0.0)
+        return R_DT_0;
+    if (lower_tail) return R_D_val(x);
+    else return R_D_val(1-x);
+
+}
+
+inline double qunif_1(double p, double a /*, double b [=1.0] */,
+                      int lower_tail, int log_p) {
+#ifdef IEEE_754
+    if (ISNAN(p) || ISNAN(a) )
+        return p + a + 1.0 ;
+#endif
+    R_Q_P01_check(p);
+    if (!R_FINITE(a) ) return R_NaN;
+    if (1.0 < a) return R_NaN;
+    if (1.0 == a) return a;
+
+    return a + R_DT_qIv(p) * (1.0 - a);
+}
+
+inline double qunif_0(double p /*, double a [=0.0], double b [=1.0] */,
+                      int lower_tail, int log_p) {
+#ifdef IEEE_754
+    if (ISNAN(p)  )
+        return p + 1.0 ;
+#endif
+    R_Q_P01_check(p);
+
+    return R_DT_qIv(p) ;
+}
+
+
+} // stats
+} // Rcpp
+
+RCPP_DPQ_0(unif, Rcpp::stats::dunif_0, Rcpp::stats::punif_0, Rcpp::stats::qunif_0 )
+RCPP_DPQ_1(unif, Rcpp::stats::dunif_1, Rcpp::stats::punif_1, Rcpp::stats::qunif_1 )
+RCPP_DPQ_2(unif, ::Rf_dunif, ::Rf_punif, ::Rf_qunif )
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/weibull.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/weibull.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/weibull.h	(revision 2476)
@@ -0,0 +1,86 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// auto generated file (from script/stats.R)
+//
+// weibull.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__weibull_h
+#define Rcpp__stats__weibull_h
+
+namespace Rcpp {
+namespace stats {
+
+inline double dweibull_1(double x, double shape /*, double scale [=1.0] */ , int give_log){
+    double tmp1, tmp2;
+#ifdef IEEE_754
+    if (ISNAN(x) || ISNAN(shape))
+        return x + shape + 1.0;
+#endif
+    if (shape <= 0) return R_NaN;
+
+    if (x < 0) return R_D__0;
+    if (!R_FINITE(x)) return R_D__0;
+    /* need to handle x == 0 separately */
+    if (x == 0 && shape < 1) return ML_POSINF;
+    tmp1 = ::pow(x, shape - 1);
+    tmp2 = tmp1 * x;
+    /* These are incorrect if tmp1 == 0 */
+    return  give_log ?
+        -tmp2 + ::log(shape * tmp1) :
+        shape * tmp1 * ::exp(-tmp2);
+}
+inline double pweibull_1(double x, double shape /*, double scale [=1.0] */, int lower_tail, int log_p) {
+#ifdef IEEE_754
+    if (ISNAN(x) || ISNAN(shape))
+        return x + shape + 1.0;
+#endif
+    if (shape <= 0) return R_NaN;
+
+    if (x <= 0)
+        return R_DT_0;
+    x = -::pow(x , shape);
+    if (lower_tail)
+        return (log_p
+                /* log(1 - exp(x))  for x < 0 : */
+                ? (x > -M_LN2 ? ::log(-::expm1(x)) : ::log1p(-::exp(x)))
+                : -::expm1(x));
+    /* else:  !lower_tail */
+    return R_D_exp(x);
+}
+inline double qweibull_1(double p, double shape /*, double scale [=1.0] */, int lower_tail, int log_p){
+#ifdef IEEE_754
+    if (ISNAN(p) || ISNAN(shape))
+        return p + shape + 1.0;
+#endif
+    if (shape <= 0) return R_NaN;
+
+    R_Q_P01_boundaries(p, 0, ML_POSINF);
+
+    return ::pow(- R_DT_Clog(p), 1./shape);
+}
+
+} // stats
+} // Rcpp
+
+RCPP_DPQ_1(weibull,Rcpp::stats::dweibull_1,Rcpp::stats::pweibull_1,Rcpp::stats::qweibull_1)
+RCPP_DPQ_2(weibull,::Rf_dweibull,::Rf_pweibull,::Rf_qweibull)
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/t.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/t.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/t.h	(revision 2476)
@@ -0,0 +1,27 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// t.h: Rcpp R/C++ interface class library -- t distribution
+//
+// Copyright (C) 2010 - 2016  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__t_h
+#define Rcpp__stats__t_h
+
+RCPP_DPQ_1(t, ::Rf_dt, ::Rf_pt, ::Rf_qt)
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nf.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nf.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nf.h	(revision 2476)
@@ -0,0 +1,28 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// nf.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__nf_h
+#define Rcpp__stats__nf_h
+
+RCPP_DPQ_3(nf,::Rf_dnf,::Rf_pnf,::Rf_qnf)
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/binom.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/binom.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/binom.h	(revision 2476)
@@ -0,0 +1,27 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// binom.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__binom_h
+#define Rcpp__stats__binom_h
+
+RCPP_DPQ_2(binom,::Rf_dbinom,::Rf_pbinom,::Rf_qbinom)
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/chisq.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/chisq.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/chisq.h	(revision 2476)
@@ -0,0 +1,28 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// chisq.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__chisq_h
+#define Rcpp__stats__chisq_h
+
+RCPP_DPQ_1(chisq,::Rf_dchisq,::Rf_pchisq,::Rf_qchisq)
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/pois.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/pois.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/pois.h	(revision 2476)
@@ -0,0 +1,27 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// pois.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__pois_h
+#define Rcpp__stats__pois_h
+
+RCPP_DPQ_1(pois,::Rf_dpois,::Rf_ppois,::Rf_qpois)
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/norm.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/norm.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/norm.h	(revision 2476)
@@ -0,0 +1,115 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// norm.h: Rcpp R/C++ interface class library -- normal distribution
+//
+// Copyright (C) 2010 - 2016  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__norm_h
+#define Rcpp__stats__norm_h
+
+namespace Rcpp {
+namespace stats {
+
+inline double dnorm_1(double x, double mu /*, double sigma [=1.0]*/ , int give_log) {
+#ifdef IEEE_754
+    if (ISNAN(x) || ISNAN(mu))
+        return x + mu + 1.0;
+#endif
+    if (!R_FINITE(x) && mu == x) return ML_NAN; /* x-mu is NaN */
+    x = (x - mu);
+
+    if (!R_FINITE(x)) return R_D__0;
+    return (give_log ?
+            -(M_LN_SQRT_2PI + 0.5 * x * x) :
+            M_1_SQRT_2PI * ::exp(-0.5 * x * x));
+    /* M_1_SQRT_2PI = 1 / sqrt(2 * pi) */
+}
+
+inline double dnorm_0(double x /*, double mu [=0.0], double sigma [=1.0]*/ ,
+                      int give_log) {
+#ifdef IEEE_754
+    if (ISNAN(x))
+        return x + 1.0;
+#endif
+    if (!R_FINITE(x)) return R_D__0;
+    return (give_log ?
+            -(M_LN_SQRT_2PI + 0.5 * x * x) :
+            M_1_SQRT_2PI * ::exp(-0.5 * x * x));
+    /* M_1_SQRT_2PI = 1 / sqrt(2 * pi) */
+}
+
+inline double pnorm_1(double x, double mu /*, double sigma [=1.]*/ ,
+                      int lower_tail, int log_p) {
+    double p, cp;
+
+    /* Note: The structure of these checks has been carefully thought through.
+     * For example, if x == mu and sigma == 0, we get the correct answer 1.
+     */
+#ifdef IEEE_754
+    if (ISNAN(x) || ISNAN(mu))
+        return x + mu + 1.0;
+#endif
+    if (!R_FINITE(x) && mu == x) return ML_NAN; /* x-mu is NaN */
+    p = (x - mu);
+    if (!R_FINITE(p))
+        return (x < mu) ? R_DT_0 : R_DT_1;
+    x = p;
+
+    ::Rf_pnorm_both(x, &p, &cp, (lower_tail ? 0 : 1), log_p);
+
+    return(lower_tail ? p : cp);
+}
+
+inline double pnorm_0(double x /*, double mu [=0.] , double sigma [=1.]*/ , int lower_tail, int log_p) {
+    double p, cp;
+
+    /* Note: The structure of these checks has been carefully thought through.
+     * For example, if x == mu and sigma == 0, we get the correct answer 1.
+     */
+#ifdef IEEE_754
+    if (ISNAN(x))
+        return x + 1.0;
+#endif
+    p = x;
+    if (!R_FINITE(p))
+        return (x < 0.0) ? R_DT_0 : R_DT_1;
+    x = p;
+
+    ::Rf_pnorm_both(x, &p, &cp, (lower_tail ? 0 : 1), log_p);
+
+    return(lower_tail ? p : cp);
+}
+
+inline double qnorm_1(double p, double mu /*, double sigma [=1.] */,
+                      int lower_tail, int log_p){
+    return ::Rf_qnorm5(p, mu, 1.0, lower_tail, log_p);
+}
+
+inline double qnorm_0(double p /*, double mu [=0.], double sigma [=1.] */,
+                      int lower_tail, int log_p){
+    return ::Rf_qnorm5(p, 0.0, 1.0, lower_tail, log_p);
+}
+
+} // stats
+} // Rcpp
+
+RCPP_DPQ_0(norm, Rcpp::stats::dnorm_0, Rcpp::stats::pnorm_0, Rcpp::stats::qnorm_0)
+RCPP_DPQ_1(norm, Rcpp::stats::dnorm_1, Rcpp::stats::pnorm_1, Rcpp::stats::qnorm_1)
+RCPP_DPQ_2(norm, ::Rf_dnorm4, ::Rf_pnorm5, ::Rf_qnorm5)
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/beta.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/beta.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/beta.h	(revision 2476)
@@ -0,0 +1,27 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// beta.h: Rcpp R/C++ interface class library -- beta distribution
+//
+// Copyright (C) 2010 - 2016  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__beta_h
+#define Rcpp__stats__beta_h
+
+RCPP_DPQ_2(beta,::Rf_dbeta,::Rf_pbeta,::Rf_qbeta)
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/cauchy.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/cauchy.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/cauchy.h	(revision 2476)
@@ -0,0 +1,61 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// cauchy.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__cauchy_h
+#define Rcpp__stats__cauchy_h
+
+namespace Rcpp{
+namespace stats{
+
+inline double dcauchy_0(double x, int give_log) {
+    return ::Rf_dcauchy(x,0.0,1.0, give_log) ;
+}
+
+inline double dcauchy_1(double x, double location, int give_log) {
+    return ::Rf_dcauchy(x,location,1.0, give_log) ;
+}
+
+inline double pcauchy_0(double x, int lower_tail, int log_p) {
+    return ::Rf_pcauchy(x,0.0,1.0,lower_tail, log_p) ;
+}
+
+inline double pcauchy_1(double x, double location, int lower_tail, int log_p) {
+    return ::Rf_pcauchy(x,location,1.0,lower_tail, log_p) ;
+}
+
+inline double qcauchy_0(double p, int lower_tail, int log_p) {
+    return ::Rf_qcauchy(p, 0.0, 1.0, lower_tail, log_p ) ;
+}
+inline double qcauchy_1(double p, double location, int lower_tail, int log_p) {
+    return ::Rf_qcauchy(p, location, 1.0, lower_tail, log_p ) ;
+}
+
+} // stats
+} // Rcpp
+
+
+RCPP_DPQ_0(cauchy,Rcpp::stats::dcauchy_0,Rcpp::stats::pcauchy_0,Rcpp::stats::qcauchy_0)
+RCPP_DPQ_1(cauchy,Rcpp::stats::dcauchy_1,Rcpp::stats::pcauchy_1,Rcpp::stats::qcauchy_1)
+RCPP_DPQ_2(cauchy,::Rf_dcauchy,::Rf_pcauchy,::Rf_qcauchy)
+
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/logis.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/logis.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/logis.h	(revision 2476)
@@ -0,0 +1,135 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// logis.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__logis_h
+#define Rcpp__stats__logis_h
+
+namespace Rcpp{
+namespace stats{
+
+inline double dlogis_0(double x /*, double location [=0.0], double scale [=1.0] */, int give_log){
+    double e, f;
+#ifdef IEEE_754
+    if (ISNAN(x))
+        return x + 1.0;
+#endif
+
+    e = ::exp(-::fabs(x));
+    f = 1.0 + e;
+    return give_log ? -(x + ::log(f * f)) : e / (f * f);
+}
+
+inline double dlogis_1(double x, double location /*, double scale [=1.0] */, int give_log){
+    double e, f;
+#ifdef IEEE_754
+    if (ISNAN(x) || ISNAN(location))
+        return x + location + 1.0;
+#endif
+
+    x = ::fabs((x - location));
+    e = ::exp(-x);
+    f = 1.0 + e;
+    return give_log ? -(x + ::log(f * f)) : e / (f * f);
+}
+
+
+inline double plogis_0(double x /*, double location [=0.0] , double scale [=1.0] */,
+                       int lower_tail, int log_p) {
+#ifdef IEEE_754
+    if (ISNAN(x))
+        return x + 1.0;
+#endif
+
+    if (ISNAN(x)) return R_NaN;
+    R_P_bounds_Inf_01(x);
+
+    x = ::exp(lower_tail ? -x : x);
+    return (log_p ? -::log1p(x) : 1 / (1 + x));
+}
+
+
+inline double plogis_1(double x, double location /*, double scale [=1.0] */,
+                       int lower_tail, int log_p) {
+#ifdef IEEE_754
+    if (ISNAN(x) || ISNAN(location))
+        return x + location + 1.0;
+#endif
+
+    x = (x - location);
+    if (ISNAN(x)) return R_NaN;
+    R_P_bounds_Inf_01(x);
+
+    x = ::exp(lower_tail ? -x : x);
+    return (log_p ? -::log1p(x) : 1 / (1 + x));
+}
+
+inline double qlogis_0(double p /*, double location [=0.0], double scale [=1.0] */,
+                       int lower_tail, int log_p) {
+#ifdef IEEE_754
+    if (ISNAN(p))
+        return p + 1.0;
+#endif
+    R_Q_P01_boundaries(p, ML_NEGINF, ML_POSINF);
+
+    /* p := logit(p) = log(p / (1. - p))         : */
+    if (log_p) {
+        if (lower_tail)
+            p = p - ::log1p(- ::exp(p));
+        else
+            p = ::log1p(- ::exp(p)) - p;
+    }
+    else
+        p = ::log(lower_tail ? (p / (1. - p)) : ((1. - p) / p));
+
+    return p;
+}
+
+
+inline double qlogis_1(double p, double location /*, double scale [=1.0] */,
+                       int lower_tail, int log_p) {
+#ifdef IEEE_754
+    if (ISNAN(p) || ISNAN(location))
+        return p + location + 1.0;
+#endif
+    R_Q_P01_boundaries(p, ML_NEGINF, ML_POSINF);
+
+    /* p := logit(p) = log(p / (1. - p))         : */
+    if (log_p) {
+        if (lower_tail)
+            p = p - ::log1p(- ::exp(p));
+        else
+            p = ::log1p(- ::exp(p)) - p;
+    }
+    else
+        p = ::log(lower_tail ? (p / (1. - p)) : ((1. - p) / p));
+
+    return location + p;
+}
+
+}
+}
+
+RCPP_DPQ_0(logis,Rcpp::stats::dlogis_0,Rcpp::stats::plogis_0,Rcpp::stats::qlogis_0)
+RCPP_DPQ_1(logis,Rcpp::stats::dlogis_1,Rcpp::stats::plogis_1,Rcpp::stats::qlogis_1)
+RCPP_DPQ_2(logis,::Rf_dlogis,::Rf_plogis,::Rf_qlogis)
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nt.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nt.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nt.h	(revision 2476)
@@ -0,0 +1,28 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// nt.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__nt_h
+#define Rcpp__stats__nt_h
+
+RCPP_DPQ_2(nt,::Rf_dnt,::Rf_pnt,::Rf_qnt)
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nbinom.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nbinom.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nbinom.h	(revision 2476)
@@ -0,0 +1,28 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// nbinom.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__nbinom_h
+#define Rcpp__stats__nbinom_h
+
+RCPP_DPQ_2(nbinom, ::Rf_dnbinom, ::Rf_pnbinom, ::Rf_qnbinom )
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/gamma.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/gamma.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/gamma.h	(revision 2476)
@@ -0,0 +1,75 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// auto generated file (from script/stats.R)
+//
+// gamma.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__gamma_h
+#define Rcpp__stats__gamma_h
+
+namespace Rcpp {
+namespace stats {
+
+inline double dgamma_1(double x, double shape, int log_p){
+    double pr;
+#ifdef IEEE_754
+    if (ISNAN(x) || ISNAN(shape) )
+        return x + shape + 1.0 ;
+#endif
+    if (shape < 0) return R_NaN ;
+    if (x < 0)
+        return R_D__0;
+    if (shape == 0) /* point mass at 0 */
+        return (x == 0)? ML_POSINF : R_D__0;
+    if (x == 0) {
+        if (shape < 1) return ML_POSINF;
+        if (shape > 1) return R_D__0;
+        /* else */
+        return log_p ? 0.0 : 1.0 ;
+    }
+
+    if (shape < 1) {
+        pr = ::Rf_dpois(shape, x, log_p);
+        return log_p ?  pr + ::log(shape/x) : pr*shape/x;
+    }
+    /* else  shape >= 1 */
+    pr = ::Rf_dpois(shape-1, x, log_p);
+    return pr;
+}
+inline double pgamma_1(double x, double alph, int lower_tail, int log_p){
+    return ::Rf_pgamma(x, alph, 1.0, lower_tail, log_p) ;
+}
+inline double qgamma_1(double p, double alpha, int lower_tail, int log_p){
+    return ::Rf_qgamma(p, alpha, 1.0, lower_tail, log_p );
+}
+
+}
+}
+
+// 1 parameter case (scale = 1)
+RCPP_DPQ_1(gamma,Rcpp::stats::dgamma_1,Rcpp::stats::pgamma_1, Rcpp::stats::qgamma_1)
+
+
+// 2 parameter case
+RCPP_DPQ_2(gamma,::Rf_dgamma,::Rf_pgamma,::Rf_qgamma)
+
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nbinom_mu.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nbinom_mu.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nbinom_mu.h	(revision 2476)
@@ -0,0 +1,28 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// nbinom_mu.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__nbinom_mu_h
+#define Rcpp__stats__nbinom_mu_h
+
+RCPP_DPQ_2(nbinom_mu,::dnbinom_mu, ::pnbinom_mu, ::qnbinom_mu )
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nchisq.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nchisq.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nchisq.h	(revision 2476)
@@ -0,0 +1,28 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// nchisq.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__nchisq_h
+#define Rcpp__stats__nchisq_h
+
+RCPP_DPQ_2( nchisq, ::Rf_dnchisq, ::Rf_pnchisq, ::Rf_qnchisq )
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/f.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/f.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/f.h	(revision 2476)
@@ -0,0 +1,28 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// f.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__f_h
+#define Rcpp__stats__f_h
+
+RCPP_DPQ_2(f,::Rf_df,::Rf_pf,::Rf_qf)
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/lnorm.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/lnorm.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/lnorm.h	(revision 2476)
@@ -0,0 +1,115 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// auto generated file (from script/stats.R)
+//
+// lnorm.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__lnorm_h
+#define Rcpp__stats__lnorm_h
+
+namespace Rcpp {
+namespace stats {
+
+inline double dlnorm_0(double x, int log_p){
+    double y;
+
+#ifdef IEEE_754
+    if (ISNAN(x))
+        return x + 1.0;
+#endif
+
+    if (x <= 0) return R_D__0;
+
+    y = ::log(x);
+    return (log_p ?
+            -(M_LN_SQRT_2PI + 0.5 * y * y + ::log(x)) :
+            M_1_SQRT_2PI * ::exp(-0.5 * y * y) / x);
+    /* M_1_SQRT_2PI = 1 / sqrt(2 * pi) */
+}
+
+inline double dlnorm_1(double x, double meanlog, int log_p){
+    double y;
+
+#ifdef IEEE_754
+    if (ISNAN(x) || ISNAN(meanlog))
+        return x + meanlog + 1.0;
+#endif
+
+    if (x <= 0) return R_D__0;
+
+    y = (::log(x) - meanlog);
+    return (log_p ?
+            -(M_LN_SQRT_2PI + 0.5 * y * y + ::log(x)) :
+            M_1_SQRT_2PI * ::exp(-0.5 * y * y) / x);
+    /* M_1_SQRT_2PI = 1 / sqrt(2 * pi) */
+
+}
+
+inline double plnorm_0(double x, int lower_tail, int log_p){
+#ifdef IEEE_754
+    if (ISNAN(x))
+        return x + 1.0;
+#endif
+
+    if (x > 0)
+        return Rcpp::stats::pnorm_0(::log(x), lower_tail, log_p);
+    return R_DT_0;
+}
+
+inline double plnorm_1(double x, double meanlog, int lower_tail, int log_p) {
+#ifdef IEEE_754
+    if (ISNAN(x) || ISNAN(meanlog))
+        return x + meanlog + 1.0;
+#endif
+
+    if (x > 0)
+        return Rcpp::stats::pnorm_1(::log(x), meanlog, lower_tail, log_p);
+    return R_DT_0;
+}
+
+inline double qlnorm_0(double p, int lower_tail, int log_p){
+#ifdef IEEE_754
+    if (ISNAN(p))
+        return p + 1.0;
+#endif
+    R_Q_P01_boundaries(p, 0, ML_POSINF);
+
+    return ::exp(::Rf_qnorm5(p, 0.0, 1.0, lower_tail, log_p));
+}
+
+inline double qlnorm_1(double p, double meanlog, int lower_tail, int log_p){
+#ifdef IEEE_754
+    if (ISNAN(p) || ISNAN(meanlog))
+        return p + meanlog + 1.0;
+#endif
+    R_Q_P01_boundaries(p, 0, ML_POSINF);
+
+    return ::exp(::Rf_qnorm5(p, meanlog, 1.0, lower_tail, log_p));
+}
+
+} // stats
+} // Rcpp
+
+RCPP_DPQ_0(lnorm,Rcpp::stats::dlnorm_0,Rcpp::stats::plnorm_0,Rcpp::stats::qlnorm_0)
+RCPP_DPQ_1(lnorm,Rcpp::stats::dlnorm_1,Rcpp::stats::plnorm_1,Rcpp::stats::qlnorm_1)
+RCPP_DPQ_2(lnorm,::Rf_dlnorm,::Rf_plnorm,::Rf_qlnorm)
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/hyper.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/hyper.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/hyper.h	(revision 2476)
@@ -0,0 +1,28 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// hyper.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__hyper_h
+#define Rcpp__stats__hyper_h
+
+RCPP_DPQ_3(hyper,::Rf_dhyper,::Rf_phyper,::Rf_qhyper)
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/geom.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/geom.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/geom.h	(revision 2476)
@@ -0,0 +1,28 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// geom.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__geom_h
+#define Rcpp__stats__geom_h
+
+RCPP_DPQ_1(geom, ::Rf_dgeom, ::Rf_pgeom, ::Rf_qgeom )
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nbeta.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nbeta.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/nbeta.h	(revision 2476)
@@ -0,0 +1,28 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// nbeta.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__nbeta_h
+#define Rcpp__stats__nbeta_h
+
+RCPP_DPQ_3(nbeta,::Rf_dnbeta,::Rf_pnbeta,::Rf_qnbeta)
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rbeta.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rbeta.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rbeta.h	(revision 2476)
@@ -0,0 +1,42 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rbeta.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rbeta_h
+#define Rcpp__stats__random_rbeta_h
+
+namespace Rcpp {
+namespace stats{
+
+class BetaGenerator : public Generator<double>{
+public:
+    BetaGenerator(double a_, double b_) : a(a_), b(b_){}
+
+    inline double operator()() const {
+        return ::Rf_rbeta(a, b) ;
+    }
+private:
+    double a, b ;
+};
+
+} // namespace stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rnorm.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rnorm.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rnorm.h	(revision 2476)
@@ -0,0 +1,83 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rnorm.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rnorm_h
+#define Rcpp__stats__random_rnorm_h
+
+namespace Rcpp {
+namespace stats {
+
+class NormGenerator : public Generator<double> {
+public:
+
+    NormGenerator( double mean_ = 0.0 , double sd_ = 1.0 ) :
+        mean(mean_), sd(sd_) {}
+
+    inline double operator()() const {
+        return mean + sd * ::norm_rand() ;
+    }
+
+private:
+    double mean ;
+    double sd ;
+};
+
+class NormGenerator__sd1 : public Generator<double> {
+public:
+
+    NormGenerator__sd1( double mean_ = 0.0 ) : mean(mean_) {}
+
+    inline double operator()() const {
+        return mean + ::norm_rand() ;
+    }
+
+private:
+    double mean ;
+};
+
+class NormGenerator__mean0 : public Generator<double> {
+public:
+
+    NormGenerator__mean0( double sd_ = 1.0 ) : sd(sd_) {}
+
+    inline double operator()() const {
+        return sd * ::norm_rand() ;
+    }
+
+private:
+    double sd ;
+};
+
+class NormGenerator__mean0__sd1 : public Generator<double> {
+public:
+
+    NormGenerator__mean0__sd1( ) {}
+
+    inline double operator()() const {
+        return ::norm_rand() ;
+    }
+
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rsignrank.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rsignrank.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rsignrank.h	(revision 2476)
@@ -0,0 +1,40 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rsignrank.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rsignrank_h
+#define Rcpp__stats__random_rsignrank_h
+
+namespace Rcpp {
+namespace stats{
+
+
+class SignRankGenerator : public Generator<double>{
+public:
+    SignRankGenerator(double nn_) : nn(nn_){}
+    inline double operator()() const { return ::Rf_rsignrank(nn) ; }
+private:
+    double nn ;
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rcauchy.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rcauchy.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rcauchy.h	(revision 2476)
@@ -0,0 +1,70 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rcauchy.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rcauchy_h
+#define Rcpp__stats__random_rcauchy_h
+
+namespace Rcpp {
+namespace stats {
+
+class CauchyGenerator : public ::Rcpp::Generator<double> {
+public:
+
+    CauchyGenerator( double location_, double scale_) :
+        location(location_) , scale(scale_) {}
+
+    inline double operator()() const {
+        return location + scale * ::tan(M_PI * unif_rand()) ;
+    }
+
+private:
+    double location, scale ;
+};
+
+class CauchyGenerator_1 : public ::Rcpp::Generator<double> {
+public:
+
+    CauchyGenerator_1( double location_) :
+        location(location_){}
+
+    inline double operator()() const {
+        return location + ::tan(M_PI * unif_rand()) ;
+    }
+
+private:
+    double location ;
+};
+
+class CauchyGenerator_0 : public ::Rcpp::Generator<double> {
+public:
+
+    CauchyGenerator_0(){}
+
+    inline double operator()() const {
+        return ::tan(M_PI * unif_rand()) ;
+    }
+
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rlogis.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rlogis.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rlogis.h	(revision 2476)
@@ -0,0 +1,76 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rlogis.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rlogis_h
+#define Rcpp__stats__random_rlogis_h
+
+namespace Rcpp {
+namespace stats {
+
+class LogisGenerator : public ::Rcpp::Generator<double> {
+public:
+
+    LogisGenerator( double location_, double scale_ ) :
+        location(location_), scale(scale_) {}
+
+    inline double operator()() const {
+        double u = unif_rand() ;
+        return location + scale * ::log(u / (1. - u));
+    }
+
+private:
+    double location ;
+    double scale ;
+};
+
+
+class LogisGenerator_1 : public ::Rcpp::Generator<double> {
+public:
+
+    LogisGenerator_1( double location_) :
+        location(location_) {}
+
+    inline double operator()() const {
+        double u = unif_rand() ;
+        return location + ::log(u / (1. - u));
+    }
+
+private:
+    double location ;
+};
+
+
+class LogisGenerator_0 : public ::Rcpp::Generator<double> {
+public:
+
+    LogisGenerator_0() {}
+
+    inline double operator()() const {
+        double u = unif_rand() ;
+        return ::log(u / (1. - u));
+    }
+
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rnbinom.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rnbinom.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rnbinom.h	(revision 2476)
@@ -0,0 +1,47 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rnbinom.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rnbinom_h
+#define Rcpp__stats__random_rnbinom_h
+
+namespace Rcpp {
+namespace stats {
+
+class NBinomGenerator : public ::Rcpp::Generator<double> {
+public:
+
+    NBinomGenerator( double siz_, double prob_ ) :
+        siz(siz_), lambda( (1-prob_)/prob_ ) {}
+
+    inline double operator()() const {
+        return ::Rf_rpois( ::Rf_rgamma( siz, lambda ) ) ;
+    }
+
+private:
+    double siz ;
+    double lambda ;
+};
+
+} // stats
+} // Rcpp
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rgamma.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rgamma.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rgamma.h	(revision 2476)
@@ -0,0 +1,40 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rgamma.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rgamma_h
+#define Rcpp__stats__random_rgamma_h
+
+namespace Rcpp {
+namespace stats {
+
+class GammaGenerator : public Generator<double>{
+public:
+    GammaGenerator(double a_, double scale_) :
+        a(a_), scale(scale_) {}
+    inline double operator()() const { return ::Rf_rgamma(a, scale ) ;}
+private:
+    double a, scale ;
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rnbinom_mu.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rnbinom_mu.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rnbinom_mu.h	(revision 2476)
@@ -0,0 +1,46 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rnbinom_mu.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rnbinom_mu_h
+#define Rcpp__stats__random_rnbinom_mu_h
+
+namespace Rcpp {
+namespace stats {
+
+class NBinomGenerator_Mu : public ::Rcpp::Generator<double> {
+public:
+
+    NBinomGenerator_Mu( double siz_, double mu_ ) :
+        siz(siz_), lambda( mu_ / siz_ ) {}
+
+    inline double operator()() const {
+        return ::Rf_rpois( ::Rf_rgamma( siz, lambda ) ) ;
+    }
+
+private:
+    double siz ;
+    double lambda ;
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rnchisq.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rnchisq.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rnchisq.h	(revision 2476)
@@ -0,0 +1,54 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rnchisq.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rnchisq_h
+#define Rcpp__stats__random_rnchisq_h
+
+namespace Rcpp {
+namespace stats {
+
+class NChisqGenerator : public ::Rcpp::Generator<double> {
+public:
+
+    NChisqGenerator( double df_, double lambda_ ) :
+        df(df_), df_2(df_ / 2.0), lambda_2(lambda_ / 2.0 ) {}
+
+    inline double operator()() const {
+        double r = ::Rf_rpois( lambda_2 ) ;
+        // if( r > 0.0 ) r = Rf_rchisq( 2. * r ) ;
+        // replace by so that we can skip the tests in rchisq
+        // because there is no point in doing them as we know the
+        // outcome for sure
+        if( r > 0.0 ) r = ::Rf_rgamma( r, 2. ) ;
+        if (df > 0.) r += ::Rf_rgamma( df_2, 2.);
+        return r;
+    }
+
+private:
+    double df ;
+    double df_2 ;
+    double lambda_2 ;
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rf.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rf.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rf.h	(revision 2476)
@@ -0,0 +1,75 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rf.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rf_h
+#define Rcpp__stats__random_rf_h
+
+namespace Rcpp {
+namespace stats {
+
+class FGenerator_Finite_Finite : public ::Rcpp::Generator<double> {
+public:
+
+    FGenerator_Finite_Finite( double n1_, double n2_ ) :
+        n1__2(n1_ / 2.0 ), n2__2(n2_ / 2.0 ), ratio(n2_/n1_) {}
+
+    inline double operator()() const {
+        // here we know that both n1 and n2 are finite
+        // return ( ::rchisq( n1 ) / n1 ) / ( ::rchisq( n2 ) / n2 );
+        return ratio * ::Rf_rgamma( n1__2, 2.0 ) / ::Rf_rgamma( n2__2, 2.0 ) ;
+    }
+
+private:
+    double n1__2, n2__2, ratio ;
+};
+
+class FGenerator_NotFinite_Finite : public ::Rcpp::Generator<double> {
+public:
+
+    FGenerator_NotFinite_Finite( double n2_ ) : n2( n2_), n2__2(n2_ / 2.0 ) {}
+
+    inline double operator()() const {
+        // return n2  / ::rchisq( n2 ) ;
+        return n2 / ::Rf_rgamma( n2__2, 2.0 ) ;
+    }
+
+private:
+    double n2, n2__2 ;
+};
+
+class FGenerator_Finite_NotFinite : public ::Rcpp::Generator<double> {
+public:
+
+    FGenerator_Finite_NotFinite( double n1_ ) : n1(n1_), n1__2(n1_ / 2.0 ) {}
+
+    inline double operator()() const {
+        // return ::rchisq( n1 ) / n1 ;
+        return ::Rf_rgamma( n1__2, 2.0 ) / n1 ;
+    }
+
+private:
+    double n1, n1__2 ;
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rgeom.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rgeom.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rgeom.h	(revision 2476)
@@ -0,0 +1,44 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rgeom.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rgeom_h
+#define Rcpp__stats__random_rgeom_h
+
+namespace Rcpp {
+namespace stats {
+
+class GeomGenerator : public ::Rcpp::Generator<double> {
+public:
+
+    GeomGenerator( double p ) : lambda( (1-p)/p  ) {}
+
+    inline double operator()() const {
+        return ::Rf_rpois(exp_rand() * lambda);
+    }
+
+private:
+    double lambda ;
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rhyper.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rhyper.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rhyper.h	(revision 2476)
@@ -0,0 +1,40 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rhyper.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rhyper_h
+#define Rcpp__stats__random_rhyper_h
+
+namespace Rcpp {
+namespace stats {
+
+class HyperGenerator : public Generator<double>{
+public:
+    HyperGenerator( double nn1_, double nn2_, double kk_) :
+        nn1(nn1_), nn2(nn2_), kk(kk_){}
+    inline double operator()() const { return ::Rf_rhyper(nn1, nn2, kk) ;}
+private:
+    double nn1, nn2, kk ;
+};
+
+}
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rlnorm.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rlnorm.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rlnorm.h	(revision 2476)
@@ -0,0 +1,73 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rlnorm.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rlnorm_h
+#define Rcpp__stats__random_rlnorm_h
+
+namespace Rcpp {
+namespace stats {
+
+class LNormGenerator : public Generator<double> {
+public:
+
+    LNormGenerator( double meanlog_ = 0.0 , double sdlog_ = 1.0 ) :
+        meanlog(meanlog_), sdlog(sdlog_) {}
+
+    inline double operator()() const {
+        return ::exp( meanlog + sdlog * ::norm_rand() ) ;
+    }
+
+private:
+    double meanlog ;
+    double sdlog ;
+};
+
+
+class LNormGenerator_1 : public Generator<double> {
+public:
+
+    LNormGenerator_1( double meanlog_ = 0.0 ) :
+        meanlog(meanlog_) {}
+
+    inline double operator()() const {
+        return ::exp( meanlog + ::norm_rand() ) ;
+    }
+
+private:
+    double meanlog ;
+};
+
+
+class LNormGenerator_0 : public Generator<double> {
+public:
+
+    LNormGenerator_0( ) {}
+
+    inline double operator()() const {
+        return ::exp(::norm_rand() ) ;
+    }
+
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rexp.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rexp.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rexp.h	(revision 2476)
@@ -0,0 +1,50 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rexp.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rexp_h
+#define Rcpp__stats__random_rexp_h
+
+namespace Rcpp {
+namespace stats {
+
+class ExpGenerator : public ::Rcpp::Generator<double> {
+public:
+
+    ExpGenerator( double scale_ ) : scale(scale_) {}
+
+    inline double operator()() const {
+        return scale * exp_rand() ;
+    }
+
+private:
+    double scale ;
+};
+
+class ExpGenerator__rate1 : public Generator<double>{
+public:
+    ExpGenerator__rate1(){}
+    inline double operator()() const { return exp_rand() ; }
+};
+
+} // stats
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/random.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/random.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/random.h	(revision 2476)
@@ -0,0 +1,332 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// random.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_random_h
+#define Rcpp__stats__random_random_h
+
+namespace Rcpp{
+
+template <typename T>
+class Generator : public RNGScope {
+public:
+    typedef T r_generator ;
+};
+
+}
+#include <Rcpp/stats/random/rnorm.h>
+#include <Rcpp/stats/random/runif.h>
+#include <Rcpp/stats/random/rgamma.h>
+#include <Rcpp/stats/random/rbeta.h>
+#include <Rcpp/stats/random/rlnorm.h>
+#include <Rcpp/stats/random/rchisq.h>
+#include <Rcpp/stats/random/rnchisq.h>
+#include <Rcpp/stats/random/rf.h>
+#include <Rcpp/stats/random/rt.h>
+#include <Rcpp/stats/random/rbinom.h>
+#include <Rcpp/stats/random/rcauchy.h>
+#include <Rcpp/stats/random/rexp.h>
+#include <Rcpp/stats/random/rgeom.h>
+#include <Rcpp/stats/random/rnbinom.h>
+#include <Rcpp/stats/random/rnbinom_mu.h>
+#include <Rcpp/stats/random/rpois.h>
+#include <Rcpp/stats/random/rweibull.h>
+#include <Rcpp/stats/random/rlogis.h>
+#include <Rcpp/stats/random/rwilcox.h>
+#include <Rcpp/stats/random/rsignrank.h>
+#include <Rcpp/stats/random/rhyper.h>
+
+namespace Rcpp{
+
+inline NumericVector rnorm( int n, double mean, double sd){
+    if (ISNAN(mean) || !R_FINITE(sd) || sd < 0.){
+        // TODO: R also throws a warning in that case, should we ?
+        return NumericVector( n, R_NaN ) ;
+    }  else if (sd == 0. || !R_FINITE(mean)){
+        return NumericVector( n, mean ) ;
+    } else {
+        bool sd1 = sd == 1.0 ;
+        bool mean0 = mean == 0.0 ;
+        if( sd1 && mean0 ){
+            return NumericVector( n, stats::NormGenerator__mean0__sd1() ) ;
+        } else if( sd1 ){
+            return NumericVector( n, stats::NormGenerator__sd1( mean ) );
+        } else if( mean0 ){
+            return NumericVector( n, stats::NormGenerator__mean0( sd ) );
+        } else {
+            // general case
+            return NumericVector( n, stats::NormGenerator( mean, sd ) );
+        }
+    }
+}
+
+inline NumericVector rnorm( int n, double mean /*, double sd [=1.0] */ ){
+    if (ISNAN(mean) ){
+        // TODO: R also throws a warning in that case, should we ?
+        return NumericVector( n, R_NaN ) ;
+    }  else if ( !R_FINITE(mean)){
+        return NumericVector( n, mean ) ;
+    } else {
+        bool mean0 = mean == 0.0 ;
+        if( mean0 ){
+            return NumericVector( n, stats::NormGenerator__mean0__sd1() ) ;
+        } else {
+            return NumericVector( n, stats::NormGenerator__sd1( mean ) );
+        }
+    }
+}
+
+inline NumericVector rnorm( int n /*, double mean [=0.0], double sd [=1.0] */ ){
+    return NumericVector( n, stats::NormGenerator() ) ;
+}
+
+inline NumericVector rbeta( int n, double a, double b ){
+    return NumericVector( n, stats::BetaGenerator(a, b ) ) ;
+}
+
+inline NumericVector rbinom( int n, double nin, double pp ){
+    return NumericVector( n, stats::BinomGenerator(nin, pp) ) ;
+}
+
+inline NumericVector rcauchy( int n, double location, double scale ){
+    if (ISNAN(location) || !R_FINITE(scale) || scale < 0)
+        return NumericVector( n, R_NaN ) ;
+
+    if (scale == 0. || !R_FINITE(location))
+        return NumericVector( n, location ) ;
+
+    return NumericVector( n, stats::CauchyGenerator( location, scale ) ) ;
+}
+
+inline NumericVector rcauchy( int n, double location /* , double scale [=1.0] */ ){
+    if (ISNAN(location))
+        return NumericVector( n, R_NaN ) ;
+
+    if (!R_FINITE(location))
+        return NumericVector( n, location ) ;
+
+    return NumericVector( n, stats::CauchyGenerator_1( location ) ) ;
+}
+
+inline NumericVector rcauchy( int n /*, double location [=0.0] , double scale [=1.0] */ ){
+    return NumericVector( n, stats::CauchyGenerator_0() ) ;
+}
+
+inline NumericVector rchisq( int n, double df ){
+    if (!R_FINITE(df) || df < 0.0) return NumericVector(n, R_NaN) ;
+    return NumericVector( n, stats::ChisqGenerator( df ) ) ;
+}
+
+inline NumericVector rexp( int n, double rate ){
+    double scale = 1.0 / rate ;
+    if (!R_FINITE(scale) || scale <= 0.0) {
+        if(scale == 0.) return NumericVector( n, 0.0 ) ;
+        /* else */
+        return NumericVector( n, R_NaN ) ;
+    }
+    return NumericVector( n, stats::ExpGenerator( scale ) ) ;
+}
+
+inline NumericVector rexp( int n /* , rate = 1 */ ){
+    return NumericVector( n, stats::ExpGenerator__rate1() ) ;
+}
+
+inline NumericVector rf( int n, double n1, double n2 ){
+    if (ISNAN(n1) || ISNAN(n2) || n1 <= 0. || n2 <= 0.)
+        return NumericVector( n, R_NaN ) ;
+    if( R_FINITE( n1 ) && R_FINITE( n2 ) ){
+        return NumericVector( n, stats::FGenerator_Finite_Finite( n1, n2 ) ) ;
+    } else if( ! R_FINITE( n1 ) && ! R_FINITE( n2 ) ){
+        return NumericVector( n, 1.0 ) ;
+    } else if( ! R_FINITE( n1 ) ) {
+        return NumericVector( n, stats::FGenerator_NotFinite_Finite( n2 ) ) ;
+    } else {
+        return NumericVector( n, stats::FGenerator_Finite_NotFinite( n1 ) ) ;
+    }
+}
+
+inline NumericVector rgamma( int n, double a, double scale ){
+    if (!R_FINITE(a) || !R_FINITE(scale) || a < 0.0 || scale <= 0.0) {
+        if(scale == 0.) return NumericVector( n, 0.) ;
+        return NumericVector( n, R_NaN ) ;
+    }
+    if( a == 0. ) return NumericVector(n, 0. ) ;
+    return NumericVector( n, stats::GammaGenerator(a, scale) ) ;
+}
+
+inline NumericVector rgamma( int n, double a /* scale = 1.0 */ ){
+    if (!R_FINITE(a) || a < 0.0 ) {
+        return NumericVector( n, R_NaN ) ;
+    }
+    if( a == 0. ) return NumericVector(n, 0. ) ;
+    /* TODO: check if we can take advantage of the scale = 1 special case */
+    return NumericVector( n, stats::GammaGenerator(a, 1.0) ) ;
+}
+
+inline NumericVector rgeom( int n, double p ){
+    if (!R_FINITE(p) || p <= 0 || p > 1)
+        return NumericVector( n, R_NaN );
+    return NumericVector( n, stats::GeomGenerator( p ) ) ;
+}
+
+inline NumericVector rhyper( int n, double nn1, double nn2, double kk ){
+    return NumericVector( n, stats::HyperGenerator( nn1, nn2, kk ) ) ;
+}
+
+inline NumericVector rlnorm( int n, double meanlog, double sdlog ){
+    if (ISNAN(meanlog) || !R_FINITE(sdlog) || sdlog < 0.){
+        // TODO: R also throws a warning in that case, should we ?
+        return NumericVector( n, R_NaN ) ;
+    }  else if (sdlog == 0. || !R_FINITE(meanlog)){
+        return NumericVector( n, ::exp( meanlog ) ) ;
+    } else {
+        return NumericVector( n, stats::LNormGenerator( meanlog, sdlog ) );
+    }
+}
+
+inline NumericVector rlnorm( int n, double meanlog /*, double sdlog = 1.0 */){
+    if (ISNAN(meanlog) ){
+        // TODO: R also throws a warning in that case, should we ?
+        return NumericVector( n, R_NaN ) ;
+    }  else if ( !R_FINITE(meanlog)){
+        return NumericVector( n, ::exp( meanlog ) ) ;
+    } else {
+        return NumericVector( n, stats::LNormGenerator_1( meanlog ) );
+    }
+}
+
+inline NumericVector rlnorm( int n /*, double meanlog [=0.], double sdlog = 1.0 */){
+    return NumericVector( n, stats::LNormGenerator_0( ) );
+}
+
+inline NumericVector rlogis( int n, double location, double scale ){
+    if (ISNAN(location) || !R_FINITE(scale))
+        return NumericVector( n, R_NaN ) ;
+
+    if (scale == 0. || !R_FINITE(location))
+        return NumericVector( n, location );
+
+    return NumericVector( n, stats::LogisGenerator( location, scale ) ) ;
+}
+
+inline NumericVector rlogis( int n, double location /*, double scale =1.0 */ ){
+    if (ISNAN(location) )
+        return NumericVector( n, R_NaN ) ;
+
+    if (!R_FINITE(location))
+        return NumericVector( n, location );
+
+    return NumericVector( n, stats::LogisGenerator_1( location ) ) ;
+}
+
+inline NumericVector rlogis( int n /*, double location [=0.0], double scale =1.0 */ ){
+    return NumericVector( n, stats::LogisGenerator_0() ) ;
+}
+
+inline NumericVector rnbinom( int n, double siz, double prob ){
+    if(!R_FINITE(siz) || !R_FINITE(prob) || siz <= 0 || prob <= 0 || prob > 1)
+        /* prob = 1 is ok, PR#1218 */
+        return NumericVector( n, R_NaN ) ;
+
+    return NumericVector( n, stats::NBinomGenerator( siz, prob ) ) ;
+}
+
+inline NumericVector rnbinom_mu( int n, double siz, double mu ){
+    if(!R_FINITE(siz) || !R_FINITE(mu) || siz <= 0 || mu < 0)
+        return NumericVector( n, R_NaN ) ;
+
+    return NumericVector( n, stats::NBinomGenerator_Mu( siz, mu ) ) ;
+}
+
+inline NumericVector rnchisq( int n, double df, double lambda ){
+    if (!R_FINITE(df) || !R_FINITE(lambda) || df < 0. || lambda < 0.)
+        return NumericVector(n, R_NaN) ;
+    if( lambda == 0.0 ){
+        // using the central generator, see rchisq.h
+        return NumericVector( n, stats::ChisqGenerator( df ) ) ;
+    }
+    return NumericVector( n, stats::NChisqGenerator( df, lambda ) ) ;
+}
+
+inline NumericVector rnchisq( int n, double df /*, double lambda = 0.0 */ ){
+    if (!R_FINITE(df) || df < 0. )
+        return NumericVector(n, R_NaN) ;
+    return NumericVector( n, stats::ChisqGenerator( df ) ) ;
+}
+
+inline NumericVector rpois( int n, double mu ){
+    return NumericVector( n, stats::PoissonGenerator(mu) ) ;
+}
+
+inline NumericVector rsignrank( int n, double nn ){
+    return NumericVector( n, stats::SignRankGenerator(nn) ) ;
+}
+
+inline NumericVector rt( int n, double df ){
+    // special case
+    if (ISNAN(df) || df <= 0.0)
+        return NumericVector( n, R_NaN ) ;
+
+    // just generating a N(0,1)
+    if(!R_FINITE(df))
+        return NumericVector( n, stats::NormGenerator__mean0__sd1() ) ;
+
+    // general case
+    return NumericVector( n, stats::TGenerator( df ) ) ;
+}
+
+inline NumericVector runif( int n, double min, double max ){
+    if (!R_FINITE(min) || !R_FINITE(max) || max < min) return NumericVector( n, R_NaN ) ;
+    if( min == max ) return NumericVector( n, min ) ;
+    return NumericVector( n, stats::UnifGenerator( min, max ) ) ;
+}
+
+inline NumericVector runif( int n, double min /*, double max = 1.0 */ ){
+    if (!R_FINITE(min) || 1.0 < min) return NumericVector( n, R_NaN ) ;
+    if( min == 1.0 ) return NumericVector( n, 1.0 ) ;
+    return NumericVector( n, stats::UnifGenerator( min, 1.0 ) ) ;
+}
+
+inline NumericVector runif( int n /*, double min = 0.0, double max = 1.0 */ ){
+    return NumericVector( n, stats::UnifGenerator__0__1() ) ;
+}
+
+inline NumericVector rweibull( int n, double shape, double scale ){
+    if (!R_FINITE(shape) || !R_FINITE(scale) || shape <= 0. || scale <= 0.) {
+        if(scale == 0.) return NumericVector(n, 0.);
+        /* else */
+        return NumericVector(n, R_NaN);
+    }
+    return NumericVector( n, stats::WeibullGenerator( shape, scale ) ) ;
+}
+
+inline NumericVector rweibull( int n, double shape /* scale = 1 */ ){
+    if (!R_FINITE(shape) || shape <= 0. ) {
+        return NumericVector(n, R_NaN);
+    }
+    return NumericVector( n, stats::WeibullGenerator__scale1( shape ) ) ;
+}
+
+inline NumericVector rwilcox( int n, double mm, double nn ){
+    return NumericVector( n, stats::WilcoxGenerator(mm, nn) ) ;
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/runif.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/runif.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/runif.h	(revision 2476)
@@ -0,0 +1,60 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// runif.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_runif_h
+#define Rcpp__stats__random_runif_h
+
+namespace Rcpp {
+namespace stats {
+
+class UnifGenerator : public ::Rcpp::Generator<double> {
+public:
+
+    UnifGenerator( double min_ = 0.0, double max_ = 1.0) :
+        min(min_), diff(max_ - min_) {}
+
+    inline double operator()() const {
+        double u;
+        do {u = unif_rand();} while (u <= 0 || u >= 1);
+        return min + diff * u;
+    }
+
+private:
+    double min;
+    double diff ;
+};
+
+class UnifGenerator__0__1 : public ::Rcpp::Generator<double> {
+public:
+
+    UnifGenerator__0__1() {}
+
+    inline double operator()() const {
+        double u;
+        do {u = unif_rand();} while (u <= 0 || u >= 1);
+        return u;
+    }
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rweibull.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rweibull.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rweibull.h	(revision 2476)
@@ -0,0 +1,59 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rweibull.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rweibull_h
+#define Rcpp__stats__random_rweibull_h
+
+namespace Rcpp {
+namespace stats {
+
+class WeibullGenerator : public ::Rcpp::Generator<double> {
+public:
+
+    WeibullGenerator( double shape_, double scale_ ) :
+        shape_inv( 1/shape_), scale(scale_) {}
+
+    inline double operator()() const {
+        return scale * ::R_pow(-::log(unif_rand()), shape_inv );
+    }
+
+private:
+    double shape_inv, scale ;
+};
+
+class WeibullGenerator__scale1 : public ::Rcpp::Generator<double> {
+public:
+
+    WeibullGenerator__scale1( double shape_ ) :
+        shape_inv( 1/shape_) {}
+
+    inline double operator()() const {
+        return ::R_pow(-::log(unif_rand()), shape_inv );
+    }
+
+private:
+    double shape_inv ;
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rt.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rt.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rt.h	(revision 2476)
@@ -0,0 +1,51 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rt.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rt_h
+#define Rcpp__stats__random_rt_h
+
+namespace Rcpp {
+namespace stats {
+
+class TGenerator : public ::Rcpp::Generator<double> {
+public:
+
+    TGenerator( double df_ ) : df(df_), df_2(df_/2.0) {}
+
+    inline double operator()() const {
+        /* Some compilers (including MW6) evaluated this from right to left
+           return norm_rand() / sqrt(rchisq(df) / df); */
+        double num = norm_rand();
+
+        // return num / sqrt(rchisq(df) / df);
+        // replaced by the followoing line to skip the test in
+        // rchisq because we already know
+        return num / ::sqrt( ::Rf_rgamma(df_2, 2.0) / df);
+    }
+
+private:
+    double df, df_2 ;
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rbinom.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rbinom.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rbinom.h	(revision 2476)
@@ -0,0 +1,41 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rbinom.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rbinom_h
+#define Rcpp__stats__random_rbinom_h
+
+namespace Rcpp {
+namespace stats {
+
+class BinomGenerator : public Generator<double>{
+public:
+    BinomGenerator( double nin_, double pp_ ) : nin(nin_), pp(pp_){}
+    inline double operator()() const{
+        return ::Rf_rbinom( nin, pp ) ;
+    }
+private:
+    double nin, pp ;
+};
+
+}  // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rwilcox.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rwilcox.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rwilcox.h	(revision 2476)
@@ -0,0 +1,39 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rwilcox.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rwilcox_h
+#define Rcpp__stats__random_rwilcox_h
+
+namespace Rcpp {
+namespace stats {
+
+class WilcoxGenerator : public Generator<double>{
+public:
+    WilcoxGenerator( double mm_, double nn_) : mm(mm_), nn(nn_){}
+    inline double operator()() const { return ::Rf_rwilcox(mm,nn); }
+private:
+    double mm, nn ;
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rchisq.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rchisq.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rchisq.h	(revision 2476)
@@ -0,0 +1,44 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rchisq.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rchisq_h
+#define Rcpp__stats__random_rchisq_h
+
+namespace Rcpp {
+namespace stats {
+
+class ChisqGenerator : public ::Rcpp::Generator<double> {
+public:
+
+    ChisqGenerator( double df_ ) : df_2(df_ / 2.0) {}
+
+    inline double operator()() const {
+        return ::Rf_rgamma( df_2, 2.0 ) ;
+    }
+
+private:
+    double df_2 ;
+};
+
+} // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rpois.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rpois.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/random/rpois.h	(revision 2476)
@@ -0,0 +1,39 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rpois.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__random_rpois_h
+#define Rcpp__stats__random_rpois_h
+
+namespace Rcpp {
+namespace stats{
+
+class PoissonGenerator : public Generator<double>{
+public:
+    PoissonGenerator( double mu_ ) : mu(mu_){}
+    inline double operator()() const { return ::Rf_rpois(mu); }
+private:
+    double mu ;
+};
+
+}  // stats
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/exp.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/exp.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/exp.h	(revision 2476)
@@ -0,0 +1,98 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// auto generated file (from script/stats.R)
+//
+// exp.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__exp_h
+#define Rcpp__stats__exp_h
+
+namespace Rcpp {
+namespace stats {
+
+inline double d_exp_0(double x, int give_log) {
+
+#ifdef IEEE_754
+    /* NaNs propagated correctly */
+    if (ISNAN(x)) return x + 1.0;
+#endif
+
+    if (x < 0.)
+        return R_D__0;
+    return give_log ? (-x) : ::exp(-x);
+}
+
+inline double q_exp_0(double p, int lower_tail, int log_p) {
+#ifdef IEEE_754
+    if (ISNAN(p)) return p + 1.0;
+#endif
+
+    if ((log_p && p > 0) || (!log_p && (p < 0 || p > 1))) return R_NaN;
+    if (p == R_DT_0)
+        return 0;
+
+    return - R_DT_Clog(p);
+}
+
+inline double p_exp_0(double x, int lower_tail, int log_p) {
+#ifdef IEEE_754
+    if (ISNAN(x)) return x + 1.0;
+#endif
+
+    if (x <= 0.)
+        return R_DT_0;
+    /* same as weibull(shape = 1): */
+    x = -x;
+    if (lower_tail)
+        return (log_p
+                /* log(1 - exp(x))  for x < 0 : */
+                ? (x > -M_LN2 ? ::log(-::expm1(x)) : ::log1p(-::exp(x)))
+                : -::expm1(x));
+    /* else:  !lower_tail */
+    return R_D_exp(x);
+}
+
+} // stats
+} // Rcpp
+
+RCPP_DPQ_0(exp,Rcpp::stats::d_exp_0,Rcpp::stats::p_exp_0,Rcpp::stats::q_exp_0)
+
+namespace Rcpp{
+
+// we cannot use the RCPP_DPQ_1 macro here because of rate and shape
+template <bool NA, typename T>
+inline stats::D1<REALSXP,NA,T> dexp( const Rcpp::VectorBase<REALSXP,NA,T>& x, double shape, bool log = false ) {
+    return stats::D1<REALSXP,NA,T>( ::Rf_dexp, x, 1.0/shape, log );
+}
+
+template <bool NA, typename T>
+inline stats::P1<REALSXP,NA,T> pexp( const Rcpp::VectorBase<REALSXP,NA,T>& x, double shape, bool lower = true, bool log = false ) {
+    return stats::P1<REALSXP,NA,T>( ::Rf_pexp, x, 1.0/shape, lower, log );
+}
+
+template <bool NA, typename T>
+inline stats::Q1<REALSXP,NA,T> qexp( const Rcpp::VectorBase<REALSXP,NA,T>& x, double shape, bool lower = true, bool log = false ) {
+    return stats::Q1<REALSXP,NA,T>( ::Rf_qexp, x, 1.0/shape, lower, log );
+}
+
+} // Rcpp
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/stats.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/stats.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/stats/stats.h	(revision 2476)
@@ -0,0 +1,58 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// binom.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2016 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__stats__stats_h
+#define Rcpp__stats__stats_h
+
+#include <Rcpp/stats/dpq/dpq.h>
+
+#define ML_POSINF       R_PosInf
+#define ML_NEGINF       R_NegInf
+#define ML_NAN          R_NaN
+
+#include <Rcpp/stats/unif.h>
+#include <Rcpp/stats/norm.h>
+#include <Rcpp/stats/gamma.h>
+#include <Rcpp/stats/chisq.h>
+#include <Rcpp/stats/beta.h>
+#include <Rcpp/stats/t.h>
+#include <Rcpp/stats/lnorm.h>
+#include <Rcpp/stats/weibull.h>
+#include <Rcpp/stats/logis.h>
+#include <Rcpp/stats/f.h>
+#include <Rcpp/stats/exp.h>
+#include <Rcpp/stats/cauchy.h>
+#include <Rcpp/stats/geom.h>
+#include <Rcpp/stats/hyper.h>
+
+#include <Rcpp/stats/nt.h>
+#include <Rcpp/stats/nchisq.h>
+#include <Rcpp/stats/nbeta.h>
+#include <Rcpp/stats/nf.h>
+#include <Rcpp/stats/nbinom.h>
+#include <Rcpp/stats/nbinom_mu.h>
+
+#include <Rcpp/stats/binom.h>
+#include <Rcpp/stats/pois.h>
+
+#include <Rcpp/stats/random/random.h>
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/is.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/is.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/is.h	(revision 2476)
@@ -0,0 +1,59 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// is.h: Rcpp R/C++ interface class library -- test if an R Object can be seen
+//                                             as one type
+//
+// Copyright (C) 2013    Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__is__h
+#define Rcpp__is__h
+
+namespace Rcpp{
+
+    namespace internal{
+
+        // simple implementation, for most default types
+        template <typename T> bool is__simple( SEXP x) ;
+
+        // implementation for module objects
+        template <typename T> bool is__module__object( SEXP x) ;
+
+        // not a module object
+        template <typename T>
+        inline bool is__dispatch( SEXP x, Rcpp::traits::false_type ){
+            return is__simple<T>( x ) ;
+        }
+
+        template <typename T>
+        inline bool is__dispatch( SEXP x, Rcpp::traits::true_type ){
+            return is__module__object<T>( x ) ;
+        }
+    }
+
+    /** identify if an x can be seen as the T type
+     *
+     *  example:
+     *     bool is_list = is<List>( x ) ;
+     */
+    template <typename T> bool is( SEXP x ){
+        return internal::is__dispatch<T>( x, typename traits::is_module_object<T>::type() ) ;
+    }
+
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/r_cast.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/r_cast.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/r_cast.h	(revision 2476)
@@ -0,0 +1,157 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// rcast.h: Rcpp R/C++ interface class library -- cast from one SEXP type to another
+//
+// Copyright (C) 2010 - 2017  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_rcast_h
+#define Rcpp_rcast_h
+
+#include <Rcpp/exceptions.h>
+
+namespace Rcpp {
+    namespace internal {
+
+        inline SEXP convert_using_rfunction(SEXP x, const char* const fun) { 	// #nocov start
+            Armor<SEXP> res;
+            try{
+                SEXP funSym = Rf_install(fun);
+                res = Rcpp_eval(Rf_lang2(funSym, x));
+            } catch( eval_error& e){
+                throw not_compatible(std::string("could not convert using R function : ") + fun);
+            }
+            return res;								// #nocov end 
+        }
+
+        // r_true_cast is only meant to be used when the target SEXP type
+        // is different from the SEXP type of x
+        template <int TARGET>
+        SEXP r_true_cast( SEXP x) {
+            throw not_compatible( "not compatible" );
+            return x; // makes solaris happy
+        }
+
+        template <int RTYPE>
+        SEXP basic_cast( SEXP x) {				// #nocov start
+            if( TYPEOF(x) == RTYPE ) return x;
+            switch( TYPEOF(x) ){
+            case REALSXP:
+            case RAWSXP:
+            case LGLSXP:
+            case CPLXSXP:
+            case INTSXP:
+                return Rf_coerceVector(x, RTYPE);
+            default:
+                throw ::Rcpp::not_compatible("not compatible with requested type");
+            }							// #nocov end 
+            return R_NilValue; /* -Wall */
+        }
+
+        template<>
+        inline SEXP r_true_cast<INTSXP>(SEXP x){
+            return basic_cast<INTSXP>(x);
+        }
+        template<>
+        inline SEXP r_true_cast<REALSXP>(SEXP x){		// #nocov
+            return basic_cast<REALSXP>(x);			// #nocov
+        }
+        template<>
+        inline SEXP r_true_cast<RAWSXP>(SEXP x){
+            return  basic_cast<RAWSXP>(x);
+        }
+        template<>
+        inline SEXP r_true_cast<CPLXSXP>(SEXP x){
+            return basic_cast<CPLXSXP>(x);
+        }
+        template<>
+        inline SEXP r_true_cast<LGLSXP>(SEXP x){		// #nocov
+            return basic_cast<LGLSXP>(x);			// #nocov
+        }
+
+        template <>
+        inline SEXP r_true_cast<STRSXP>(SEXP x){		// #nocov start
+            switch( TYPEOF(x)) {
+            case CPLXSXP:
+            case RAWSXP:
+            case LGLSXP:
+            case REALSXP:
+            case INTSXP:
+                {
+                    // return Rf_coerceVector( x, STRSXP );
+                    // coerceVector does not work for some reason
+                    Shield<SEXP> call( Rf_lang2( Rf_install( "as.character" ), x ) );
+                    Shield<SEXP> res( Rcpp_eval( call, R_GlobalEnv ) );
+                    return res;
+                }
+            case CHARSXP:
+                return Rf_ScalarString( x );
+            case SYMSXP:
+                return Rf_ScalarString( PRINTNAME( x ) );
+            default:
+                throw ::Rcpp::not_compatible("not compatible with STRSXP");
+            }
+            return R_NilValue; /* -Wall */
+        }
+        template<>
+        inline SEXP r_true_cast<VECSXP>(SEXP x) {
+            return convert_using_rfunction(x, "as.list");	// #nocov end 
+        }
+        template<>
+        inline SEXP r_true_cast<EXPRSXP>(SEXP x) {
+            return convert_using_rfunction(x, "as.expression" );
+        }
+        template<>
+        inline SEXP r_true_cast<LISTSXP>(SEXP x) {
+            switch( TYPEOF(x) ){
+            case LANGSXP:
+                {
+                    Shield<SEXP> y( Rf_duplicate( x ));
+                    SET_TYPEOF(y,LISTSXP);
+                    return y;
+                }
+            default:
+                return convert_using_rfunction(x, "as.pairlist" );
+            }
+        }
+        template<>
+        inline SEXP r_true_cast<LANGSXP>(SEXP x) {
+            return convert_using_rfunction(x, "as.call" );
+        }
+
+    } // namespace internal
+
+    template <int TARGET> SEXP r_cast(SEXP x) {
+        if (TYPEOF(x) == TARGET) {
+            return x;
+        } else {
+            #ifdef RCPP_WARN_ON_COERCE
+            Shield<SEXP> result( internal::r_true_cast<TARGET>(x) );
+            Rf_warning("coerced object from '%s' to '%s'",
+                CHAR(Rf_type2str(TYPEOF(x))),
+                CHAR(Rf_type2str(TARGET))
+            );
+            return result;
+            #else
+            return internal::r_true_cast<TARGET>(x);		// #nocov
+            #endif
+        }
+    }
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Named.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Named.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Named.h	(revision 2476)
@@ -0,0 +1,68 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Named.h: Rcpp R/C++ interface class library -- named object
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Named_h
+#define Rcpp_Named_h
+
+namespace Rcpp{
+
+class Argument {
+public:
+	Argument() : name(){} ;
+	Argument( const std::string& name_) : name(name_){}
+
+	template<typename T>
+	inline traits::named_object<T> operator=( const T& t){
+		return traits::named_object<T>( name, t ) ;
+	}
+
+	std::string name ;
+} ;
+
+inline Argument Named( const std::string& name){
+	return Argument( name );
+}
+template <typename T>
+inline traits::named_object<T> Named( const std::string& name, const T& o){
+	return traits::named_object<T>( name, o );
+}
+
+namespace internal{
+
+class NamedPlaceHolder {
+public:
+	NamedPlaceHolder(){}
+	~NamedPlaceHolder(){}
+	Argument operator[]( const std::string& arg) const {
+		return Argument( arg ) ;
+	}
+	Argument operator()(const std::string& arg) const {
+		return Argument( arg ) ;
+	}
+	operator SEXP() const { return R_MissingArg ; }
+} ;
+} // internal
+
+static internal::NamedPlaceHolder _ ;
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sprintf.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sprintf.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/sprintf.h	(revision 2476)
@@ -0,0 +1,38 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// sprintf.h: Rcpp R/C++ interface class library -- string formatting
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <cstdio>
+#include <cstdarg>
+
+namespace Rcpp{
+
+template <int MAX_SIZE>
+std::string sprintf( const char *format, ...) {
+    static char buffer[MAX_SIZE];
+    va_list(ap);
+    va_start(ap, format);
+    vsnprintf( buffer, MAX_SIZE, format, ap);
+    va_end(ap);
+    return buffer ;
+}
+
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Pairlist.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Pairlist.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Pairlist.h	(revision 2476)
@@ -0,0 +1,55 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Pairlist.h: Rcpp R/C++ interface class library -- pair lists objects (LISTSXP)
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Pairlist_h
+#define Rcpp_Pairlist_h
+
+#include <RcppCommon.h>
+#include <Rcpp/DottedPair.h>
+#include <Rcpp/r_cast.h>
+
+namespace Rcpp{
+
+    RCPP_API_CLASS(Pairlist_Impl),
+        public DottedPairProxyPolicy<Pairlist_Impl<StoragePolicy> >,
+        public DottedPairImpl<Pairlist_Impl<StoragePolicy> >{
+    public:
+
+        RCPP_GENERATE_CTOR_ASSIGN(Pairlist_Impl)
+
+        typedef typename DottedPairProxyPolicy<Pairlist_Impl>::DottedPairProxy Proxy ;
+        typedef typename DottedPairProxyPolicy<Pairlist_Impl>::const_DottedPairProxy const_Proxy ;
+
+        Pairlist_Impl(){}
+        Pairlist_Impl(SEXP x){
+            Storage::set__(r_cast<LISTSXP>(x)) ;
+        }
+
+        #include <Rcpp/generated/Pairlist__ctors.h>
+
+        void update(SEXP x){
+            SET_TYPEOF( x, LISTSXP ) ;
+        }
+    } ;
+
+    typedef Pairlist_Impl<PreserveStorage> Pairlist ;
+}
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/RObject.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/RObject.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/RObject.h	(revision 2476)
@@ -0,0 +1,62 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// RObject.h: Rcpp R/C++ interface class library -- general R object wrapper
+//
+// Copyright (C) 2009 - 2013    Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_RObject_h
+#define Rcpp_RObject_h
+
+namespace Rcpp{
+
+    RCPP_API_CLASS(RObject_Impl) {
+    public:
+
+        /**
+         * default constructor. uses R_NilValue
+         */
+        RObject_Impl() {};
+
+        RCPP_GENERATE_CTOR_ASSIGN(RObject_Impl)
+
+        /**
+         * wraps a SEXP. The SEXP is automatically protected from garbage
+         * collection by this object and the protection vanishes when this
+         * object is destroyed
+         */
+        RObject_Impl(SEXP x){
+            Storage::set__(x) ;
+        }
+
+        /**
+         * Assignement operator. Set this SEXP to the given SEXP
+         */
+        template <typename T>
+        RObject_Impl& operator=(const T& other) {
+            Storage::set__( wrap(other) ) ;
+            return *this;
+        }
+
+        void update(SEXP){}
+    };
+
+    typedef RObject_Impl<PreserveStorage> RObject ;
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/StringTransformer.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/StringTransformer.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/StringTransformer.h	(revision 2476)
@@ -0,0 +1,53 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// clone.h: Rcpp R/C++ interface class library -- clone RObject's
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__StringTransformer_h
+#define Rcpp__StringTransformer_h
+
+#include <RcppCommon.h>
+
+namespace Rcpp{
+
+	template <typename UnaryOperator>
+	class StringTransformer : public std::unary_function<const char*, const char*>{
+		public:
+		StringTransformer( const UnaryOperator& op_ ): op(op_), buffer(){}
+		~StringTransformer(){}
+
+		const char* operator()(const char* input ) {
+			buffer = input ;
+			std::transform( buffer.begin(), buffer.end(), buffer.begin(), op ) ;
+			return buffer.c_str() ;
+		}
+
+	private:
+		const UnaryOperator& op ;
+		std::string buffer ;
+	} ;
+
+	template <typename UnaryOperator>
+	StringTransformer<UnaryOperator> make_string_transformer( const UnaryOperator& fun){
+		return StringTransformer<UnaryOperator>( fun ) ;
+	}
+
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Interrupt.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Interrupt.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Interrupt.h	(revision 2476)
@@ -0,0 +1,66 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Interrupt.h: Rcpp R/C++ interface class library -- check for interrupts
+//
+// Copyright (C) 2009 - 2013    Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Interrupt_h
+#define Rcpp_Interrupt_h
+
+#include <R_ext/GraphicsEngine.h>
+
+namespace Rcpp {
+
+    // Internal functions used in the implementation of checkUserInterrupt
+    namespace internal {
+
+        // Sentinel class for communicating interrupts to the top-level END_RCPP macro
+        class InterruptedException {};
+
+        // Sentinel object of class "interrupted-error" which is used for
+        // communicating interrupts accross module boundaries without an
+        // exception (which would crash on windows). This is identical to
+        // the existing "try-error" sentinel object used for communicating
+        // errors accross module boundaries.
+        inline SEXP interruptedError() {
+            Rcpp::Shield<SEXP> interruptedError( Rf_mkString("") );
+            Rf_setAttrib( interruptedError, R_ClassSymbol, Rf_mkString("interrupted-error") ) ;
+            return interruptedError;
+        }
+
+    } // namespace internal
+
+    // Helper function to check for interrupts. This is invoked within
+    // R_ToplevelExec so it doesn't longjmp
+    namespace {
+
+    inline void checkInterruptFn(void* /*dummy*/) {
+            R_CheckUserInterrupt();
+        }
+
+    } // anonymous namespace
+
+    // Check for interrupts and throw the sentinel exception if one is pending
+    inline void checkUserInterrupt() {
+        if (R_ToplevelExec(checkInterruptFn, NULL) == FALSE)
+            throw internal::InterruptedException();
+    }
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Nullable.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Nullable.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Nullable.h	(revision 2476)
@@ -0,0 +1,148 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Nullable.h: Rcpp R/C++ interface class library -- SEXP container which can be NULL
+//
+// Copyright (C) 2015         Dirk Eddelbuettel and Daniel C. Dillon
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Nullable_h
+#define Rcpp_Nullable_h
+
+// We looked into the safe_bool_idiom [1] but found that more trouble than is
+// warranted here.  We first and foremost want an operator SEXP() which got in
+// the way of redefining operator bool.
+// [1] http://www.artima.com/cppsource/safebool.html)
+
+namespace Rcpp {
+
+    template<class T>
+    class Nullable {
+    public:
+
+        /**
+         * Empty no-argument constructor of a Nullable object
+         *
+         * Assigns (R's) NULL value, and sets validator to FALSE
+         */
+        inline Nullable() : m_sexp(R_NilValue), m_set(false) {}
+
+        /**
+         * Template constructor of a Nullable object
+         *
+         * Assigns object, and set validator to TRUE
+         */
+
+        inline Nullable(const T &t) : m_sexp(t),  m_set(true) {}
+
+        /**
+         * Standard constructor of a Nullable object
+         *
+         * @param SEXP is stored
+         */
+        inline Nullable(SEXP t) {
+            m_sexp = t;
+            m_set = true;
+        }
+
+    public:
+
+        /**
+         * Copy constructor for Nullable object
+         *
+         * @param SEXP is used to update internal copy
+         */
+        inline Nullable &operator=(SEXP sexp) {
+            m_sexp = sexp;
+            m_set = true;
+            return *this;
+        }
+
+        /**
+         * operator SEXP() to return nullable object
+         *
+         * @throw 'not initialized' if object has not been set
+         */
+        inline operator SEXP() const {
+            checkIfSet();
+            return m_sexp;
+        }
+
+        /**
+         * get() accessor for object
+         *
+         * @throw 'not initialized' if object has not been set
+         */
+        inline SEXP get() const {
+            checkIfSet();
+            return m_sexp;
+        }
+
+        /**
+         * Boolean test for usability as a T
+         */
+        inline bool isUsable() const {
+            return m_set && !Rf_isNull(m_sexp);
+        }
+
+        /**
+         * Boolean test for NULL
+         *
+         * @throw 'not initialized' if object has not been set
+         */
+        inline bool isNull() const {
+            checkIfSet();
+            return Rf_isNull(m_sexp);
+        }
+
+        /**
+         * Boolean test for not NULL
+         *
+         * @throw 'not initialized' if object has not been set
+         */
+        inline bool isNotNull() const {
+            return ! isNull();
+        }
+
+        /**
+         * Test function to check if object has been initialized
+         *
+         */
+        inline bool isSet(void) const { return m_set; }
+
+        /**
+         * Returns m_sexp as a T
+         */
+        inline T as() { return get(); }
+
+        /**
+         * Return a clone of m_sexp as a T
+         */
+        inline T clone() const { return Rcpp::clone(get()); }
+
+    private:
+        SEXP m_sexp;
+        bool m_set;
+
+        inline void checkIfSet(void) const {
+            if (!m_set) {
+                throw ::Rcpp::exception("Not initialized");
+            }
+        }
+    };
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Symbol.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Symbol.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Symbol.h	(revision 2476)
@@ -0,0 +1,86 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Symbol.h: Rcpp R/C++ interface class library -- access R environments
+//
+// Copyright (C) 2013 - 2015  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Symbol_h
+#define Rcpp_Symbol_h
+
+namespace Rcpp{
+
+    RCPP_API_CLASS(Symbol_Impl) {
+    public:
+
+        RCPP_GENERATE_CTOR_ASSIGN(Symbol_Impl)
+
+        /**
+         * wraps the SEXP into a Symbol object.
+         *
+         * @param x Accepted SEXP types are SYMSXP, CHARSXP and STRSXP
+         * in the last case, the first element of the character vector
+         * is silently used
+         */
+        Symbol_Impl(SEXP x){
+            int type = TYPEOF(x) ;
+            switch( type ){
+            case SYMSXP:
+                Storage::set__( x ) ;
+                break; /* nothing to do */
+            case CHARSXP: {
+		#if R_VERSION >= R_Version(3,2,0)
+                SEXP charSym = Rf_installChar(x);       // R 3.2.0 or later have Rf_installChar
+                #else
+                SEXP charSym = Rf_install(CHAR(x));     // cannot be gc()'ed  once in symbol table
+                #endif
+                Storage::set__( charSym ) ;
+                break ;
+            }
+            case STRSXP: {
+                /* FIXME: check that there is at least one element */
+		#if R_VERSION >= R_Version(3,2,0)
+                SEXP charSym = Rf_installChar(STRING_ELT(x, 0 ));     // R 3.2.0 or later have Rf_installChar
+                #else
+                SEXP charSym = Rf_install( CHAR(STRING_ELT(x, 0 )) ); // cannot be gc()'ed  once in symbol table
+                #endif
+                Storage::set__( charSym );
+                break ;
+            }
+            default:
+                throw not_compatible("cannot convert to symbol (SYMSXP)") ;
+            }
+        }
+
+        Symbol_Impl(const std::string& symbol){
+            Storage::set__( Rf_install(symbol.c_str()) );
+        }
+        inline const char* c_str() const {
+            return CHAR(PRINTNAME(Storage::get__())) ;
+        }
+        inline bool operator==(const char* other) const {
+            return ! strcmp(other, c_str() );
+        }
+
+        void update(SEXP){}
+    };
+
+    typedef Symbol_Impl<NoProtectStorage> Symbol;
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/complex.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/complex.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/complex.h	(revision 2476)
@@ -0,0 +1,81 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 4 -*-
+//
+// complex.h: Rcpp R/C++ interface class library -- binary operators for Rcomplex
+//
+// Copyright (C) 2010 - 2015  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RCPP__complex_H
+#define RCPP__complex_H
+
+inline Rcomplex operator*( const Rcomplex& lhs, const Rcomplex& rhs) {
+    Rcomplex y ;
+    y.r = lhs.r * rhs.r - lhs.i * rhs.i ;
+    y.i = lhs.r * rhs.i + rhs.r * lhs.i ;
+    return y ;
+}
+
+inline Rcomplex operator+( const Rcomplex& lhs, const Rcomplex& rhs) {
+    Rcomplex y ;
+    y.r = lhs.r + rhs.r ;
+    y.i = lhs.i + rhs.i ;
+    return y ;
+}
+
+inline Rcomplex operator-( const Rcomplex& lhs, const Rcomplex& rhs) {
+    Rcomplex y ;
+    y.r = lhs.r - rhs.r ;
+    y.i = lhs.i - rhs.i ;
+    return y ;
+}
+
+inline Rcomplex operator/( const Rcomplex& a, const Rcomplex& b) {
+	Rcomplex c ;
+    double ratio, den;
+    double abr, abi;
+
+    if( (abr = b.r) < 0) abr = - abr;
+    if( (abi = b.i) < 0) abi = - abi;
+    if( abr <= abi ) {
+        ratio = b.r / b.i ;
+        den = b.i * (1 + ratio*ratio);
+        c.r = (a.r*ratio + a.i) / den;
+        c.i = (a.i*ratio - a.r) / den;
+    } else {
+        ratio = b.i / b.r ;
+        den = b.r * (1 + ratio*ratio);
+        c.r = (a.r + a.i*ratio) / den;
+        c.i = (a.i - a.r*ratio) / den;
+    }
+    return c ;
+
+}
+
+inline bool operator==( const Rcomplex& a, const Rcomplex& b) {
+    return a.r == b.r && a.i == b.i ;
+}
+
+// to prevent a redefinition error in dplyr (<= 0.4.3) which has the _same_
+// definition of operator<<() for Rcomplex
+#define dplyr_tools_complex_H
+
+inline std::ostream & operator<<(std::ostream &os, const Rcomplex& cplx) {
+    return os << cplx.r << "+" << cplx.i << "i" ;
+}
+
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/routines.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/routines.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/routines.h	(revision 2476)
@@ -0,0 +1,257 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Copyright (C) 2013  Romain Francois
+// Copyright (C) 2015  Dirk Eddelbuettel
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RCPP_ROUTINE_H
+#define RCPP_ROUTINE_H
+
+#if defined(COMPILING_RCPP)
+
+// the idea is that this file should be generated automatically by Rcpp::register
+
+namespace Rcpp{
+    const char* type2name(SEXP x);
+
+    namespace internal{
+        unsigned long enterRNGScope();
+        unsigned long exitRNGScope();
+        char* get_string_buffer();
+        SEXP get_Rcpp_namespace();
+    }
+    double mktime00(struct tm &);
+    struct tm * gmtime_(const time_t * const);
+}
+
+SEXP          rcpp_get_stack_trace();
+SEXP          rcpp_set_stack_trace(SEXP);
+std::string   demangle(const std::string& name);
+const char*   short_file_name(const char* );
+int*          get_cache(int n);
+SEXP          stack_trace( const char *file = "", int line = -1);
+SEXP          get_string_elt(SEXP s, R_xlen_t i);
+const char*   char_get_string_elt(SEXP s, R_xlen_t i);
+void          set_string_elt(SEXP s, R_xlen_t i, SEXP v);
+void          char_set_string_elt(SEXP s, R_xlen_t i, const char* v);
+SEXP*         get_string_ptr(SEXP s);
+SEXP          get_vector_elt(SEXP v, R_xlen_t i);
+void          set_vector_elt(SEXP v, R_xlen_t i, SEXP x);
+SEXP*         get_vector_ptr(SEXP v);
+const char*   char_nocheck(SEXP x);
+void*         dataptr(SEXP x);
+Rcpp::Module* getCurrentScope();
+void          setCurrentScope( Rcpp::Module* mod );
+SEXP          reset_current_error();
+int           error_occured();
+SEXP          rcpp_get_current_error();
+// void          print(SEXP s);
+
+#else
+
+namespace Rcpp {
+
+    #define GET_CALLABLE(__FUN__) (Fun) R_GetCCallable( "Rcpp", __FUN__ )
+
+    inline attribute_hidden const char* type2name(SEXP x){
+        typedef const char* (*Fun)(SEXP);
+        static Fun fun = GET_CALLABLE("type2name");
+        return fun(x);
+    }
+
+    namespace internal{
+        inline attribute_hidden unsigned long enterRNGScope(){
+            typedef unsigned long (*Fun)(void);
+            static Fun fun = GET_CALLABLE("enterRNGScope");
+            return fun();
+        }
+
+        inline attribute_hidden unsigned long exitRNGScope(){
+            typedef unsigned long (*Fun)(void);
+            static Fun fun = GET_CALLABLE("exitRNGScope");
+            return fun();
+        }
+
+        inline attribute_hidden char* get_string_buffer(){
+            typedef char* (*Fun)(void);
+            static Fun fun = GET_CALLABLE("get_string_buffer");
+            return fun();
+        }
+
+        inline attribute_hidden SEXP get_Rcpp_namespace() {
+            typedef SEXP (*Fun)(void);
+            static Fun fun = GET_CALLABLE("get_Rcpp_namespace");
+            return fun();
+        }
+
+    }
+
+
+    inline attribute_hidden double mktime00(struct tm &tm){
+        typedef double (*Fun)(struct tm&);
+        static Fun fun = GET_CALLABLE("mktime00");
+        return fun(tm);
+    }
+
+    inline attribute_hidden struct tm * gmtime_(const time_t * const x){
+        typedef struct tm* (*Fun)(const time_t* const);
+        static Fun fun =  GET_CALLABLE("gmtime_");
+        return fun(x);
+    }
+
+}
+
+// The 'attribute_hidden' used here is a simple precessor defined from
+// ${R_HOME}/include/R_ext/Visibility.h -- it is empty when not supported
+// by the compiler and otherwise '__attribute__ ((visibility ("hidden")))'
+
+inline attribute_hidden SEXP rcpp_get_stack_trace(){
+    typedef SEXP (*Fun)(void);
+    static Fun fun = GET_CALLABLE("rcpp_get_stack_trace");
+    return fun();
+}
+
+inline attribute_hidden SEXP rcpp_set_stack_trace(SEXP e){
+    typedef SEXP (*Fun)(SEXP);
+    static Fun fun =  GET_CALLABLE("rcpp_set_stack_trace");
+    return fun(e);
+}
+
+inline attribute_hidden std::string demangle( const std::string& name){
+    typedef std::string (*Fun)( const std::string& );
+    static Fun fun = GET_CALLABLE("demangle");
+    return fun(name);
+}
+
+inline attribute_hidden const char* short_file_name(const char* file) {
+    typedef const char* (*Fun)(const char*);
+    static Fun fun = GET_CALLABLE("short_file_name");
+    return fun(file);
+}
+
+inline attribute_hidden SEXP stack_trace( const char *file = "", int line = -1){
+    typedef SEXP (*Fun)(const char*, int);
+    static Fun fun = GET_CALLABLE("stack_trace");
+    return fun(file, line);
+}
+
+inline attribute_hidden SEXP get_string_elt(SEXP s, R_xlen_t i){
+    typedef SEXP (*Fun)(SEXP, R_xlen_t);
+    static Fun fun = GET_CALLABLE("get_string_elt");
+    return fun(s, i);
+}
+
+inline attribute_hidden const char* char_get_string_elt(SEXP s, R_xlen_t i){
+    typedef const char* (*Fun)(SEXP, R_xlen_t);
+    static Fun fun = GET_CALLABLE("char_get_string_elt");
+    return fun(s, i);
+}
+
+inline attribute_hidden void set_string_elt(SEXP s, R_xlen_t i, SEXP v){
+    typedef void (*Fun)(SEXP, R_xlen_t, SEXP);
+    static Fun fun = GET_CALLABLE("set_string_elt");
+    fun(s, i, v);
+}
+
+inline attribute_hidden void char_set_string_elt(SEXP s, R_xlen_t i, const char* v){
+    typedef void (*Fun)(SEXP, R_xlen_t, const char*);
+    static Fun fun = GET_CALLABLE("char_set_string_elt");
+    fun(s, i, v );
+}
+
+inline attribute_hidden SEXP* get_string_ptr(SEXP s){
+    typedef SEXP* (*Fun)(SEXP);
+    static Fun fun = GET_CALLABLE("get_string_ptr");
+    return fun(s);
+}
+
+inline attribute_hidden SEXP get_vector_elt(SEXP v, R_xlen_t i){
+    typedef SEXP (*Fun)(SEXP, R_xlen_t);
+    static Fun fun = GET_CALLABLE("get_vector_elt");
+    return fun(v, i);
+}
+
+inline attribute_hidden void set_vector_elt(SEXP v, R_xlen_t i, SEXP x){
+    typedef void (*Fun)(SEXP, R_xlen_t, SEXP);
+    static Fun fun = GET_CALLABLE("set_vector_elt");
+    fun(v, i, x);
+}
+
+inline attribute_hidden SEXP* get_vector_ptr(SEXP v){
+    typedef SEXP* (*Fun)(SEXP);
+    static Fun fun = GET_CALLABLE("get_vector_ptr");
+    return fun(v);
+}
+
+inline attribute_hidden const char* char_nocheck( SEXP x){
+    typedef const char* (*Fun)(SEXP);
+    static Fun fun = GET_CALLABLE("char_nocheck");
+    return fun(x);
+}
+
+inline attribute_hidden void* dataptr(SEXP x){
+    typedef void* (*Fun)(SEXP);
+    static Fun fun = GET_CALLABLE("dataptr");
+    return fun(x);
+}
+
+inline attribute_hidden Rcpp::Module* getCurrentScope(){
+    typedef Rcpp::Module* (*Fun)(void);
+    static Fun fun = GET_CALLABLE("getCurrentScope");
+    return fun();
+}
+
+inline attribute_hidden void setCurrentScope( Rcpp::Module* mod ){
+    typedef void (*Fun)(Rcpp::Module*);
+    static Fun fun = GET_CALLABLE("setCurrentScope");
+    fun(mod);
+}
+
+inline attribute_hidden int* get_cache( int n ){
+    typedef int* (*Fun)(int);
+    static Fun fun = GET_CALLABLE("get_cache");
+    return fun(n);
+}
+
+inline attribute_hidden SEXP reset_current_error(){
+    typedef SEXP (*Fun)(void);
+    static Fun fun = GET_CALLABLE("reset_current_error");
+    return fun();
+}
+
+inline attribute_hidden int error_occured(){
+    typedef int (*Fun)(void);
+    static Fun fun = GET_CALLABLE("error_occured");
+    return fun();
+}
+
+inline attribute_hidden SEXP rcpp_get_current_error(){
+    typedef SEXP (*Fun)(void);
+    static Fun fun = GET_CALLABLE("rcpp_get_current_error");
+    return fun();
+}
+
+// inline attribute_hidden void print(SEXP s) {
+//     typedef void (*Fun)(SEXP);
+//     static Fun fun = GET_CALLABLE("print");
+//     fun(s);
+// }
+
+#endif
+
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Extractor.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Extractor.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Extractor.h	(revision 2476)
@@ -0,0 +1,36 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Extractor.h: Rcpp R/C++ interface class library -- faster vectors (less interface)
+//
+// Copyright (C) 2010 - 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__Extractor_h
+#define Rcpp__Extractor_h
+
+namespace Rcpp {
+namespace traits {
+
+    template <int RTYPE, bool NA, typename VECTOR>
+    struct Extractor {
+        typedef VECTOR type ;
+    } ;
+
+} // traits
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/longlong.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/longlong.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/longlong.h	(revision 2476)
@@ -0,0 +1,41 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// longlong.h: Rcpp R/C++ interface class library -- long long support
+//
+// Copyright (C) 2013  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RCPP_LONG_LONG_H
+#define RCPP_LONG_LONG_H
+
+// 'long long' is a C99 extension and (as of fall 2013) still
+// forbidden by CRAN which stick with the C++98 standard predating it.
+// One way to get 'long long' is to switch to C++11, another is to use
+// clang++ from the llvm project.
+#ifdef __GNUC__
+#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (defined (__clang__) && defined(__LP64__))
+
+#if defined(__GNUC__) &&  defined(__LONG_LONG_MAX__)
+__extension__ typedef long long int rcpp_long_long_type;
+__extension__ typedef unsigned long long int rcpp_ulong_long_type;
+#define RCPP_HAS_LONG_LONG_TYPES
+#endif
+
+#endif
+#endif
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_nan.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_nan.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_nan.h	(revision 2476)
@@ -0,0 +1,47 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// is_nan.h: Rcpp R/C++ interface class library -- is NaN
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits_is_nan_h
+#define Rcpp__traits_is_nan_h
+
+namespace Rcpp{
+namespace traits{
+
+	// default for most types
+	template <int RTYPE>
+	bool is_nan( typename storage_type<RTYPE>::type){
+	    return false ;
+	}
+
+	template <>
+	inline bool is_nan<REALSXP>( double x ){
+		return internal::Rcpp_IsNaN(x) ;
+	}
+
+	template <>
+	inline bool is_nan<CPLXSXP>( Rcomplex x ){
+		return internal::Rcpp_IsNaN(x.r) || internal::Rcpp_IsNaN(x.i) ;
+	}
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_convertible.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_convertible.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_convertible.h	(revision 2476)
@@ -0,0 +1,48 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// is_convertible.h: Rcpp R/C++ interface class library -- type conversion detection
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__is_convertible_h
+#define Rcpp__traits__is_convertible_h
+
+namespace Rcpp{
+namespace traits{
+
+	template<typename T, typename U> class is_convertible{
+
+		typedef char Small ;
+		typedef struct { char dummy[2] ; } Big ;
+		static Small Test( const U& ) ;
+		static Big Test(...) ;
+		static T MakeT() ;
+
+	public:
+
+		typedef bool value_type ;
+		static const bool value = sizeof(Test(MakeT())) == sizeof(Small) ;
+		typedef integral_constant<bool,value> type ;
+
+	} ;
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_finite.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_finite.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_finite.h	(revision 2476)
@@ -0,0 +1,61 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// is_finite.h: Rcpp R/C++ interface class library -- is finite
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits_is_finite_h
+#define Rcpp__traits_is_finite_h
+
+namespace Rcpp{
+
+    namespace traits{
+
+        // default for complex,
+        template <int RTYPE>
+        bool is_finite( typename storage_type<RTYPE>::type);
+
+        template <>
+        inline bool is_finite<INTSXP>(int x){
+            return x != NA_INTEGER;
+        }
+
+        template <>
+        inline bool is_finite<REALSXP>(double x) {
+            return R_finite(x);
+        }
+
+        template <>
+        inline bool is_finite<CPLXSXP>(Rcomplex x) {
+            return !( !R_finite(x.r) || !R_finite(x.i) );
+        }
+
+        template <>
+        inline bool is_finite<STRSXP>(SEXP) {
+            return false; 	// see rcpp-devel on 2013-10-02; was:  x != NA_STRING;
+        }
+
+        template <>
+        inline bool is_finite<LGLSXP>(int x) {
+            return x != NA_LOGICAL;
+        }
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/remove_reference.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/remove_reference.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/remove_reference.h	(revision 2476)
@@ -0,0 +1,39 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// is_reference.h: Rcpp R/C++ interface class library -- identifies if a type is a reference
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__remove_reference__h
+#define Rcpp__traits__remove_reference__h
+
+namespace Rcpp{ namespace traits {
+
+  /// @brief  reference modifications [4.7.2].
+  template<typename _Tp>
+    struct remove_reference
+    { typedef _Tp     type; };
+
+  template<typename _Tp>
+    struct remove_reference<_Tp&>
+    { typedef _Tp     type; };
+
+}}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/integral_constant.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/integral_constant.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/integral_constant.h	(revision 2476)
@@ -0,0 +1,43 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// has_na.h: Rcpp R/C++ interface class library -- NA handling
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__integral_constant__h
+#define Rcpp__traits__integral_constant__h
+
+namespace Rcpp{
+namespace traits{
+
+template <typename _T, _T _V> struct integral_constant {
+    static  const _T                value = _V;
+    typedef _T                      value_type;
+    typedef integral_constant<_T,_V> type;
+ };
+ typedef integral_constant<bool, true> true_type;
+ typedef integral_constant<bool, false> false_type;
+
+template <typename T, typename U> struct both :
+	public integral_constant<bool, T::value && U::value>{};
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/longlong.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/longlong.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/longlong.h	(revision 2476)
@@ -0,0 +1,44 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// longlong.h: Rcpp R/C++ interface class library -- long long traits
+//
+// Copyright (C) 2013  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RCPP_TRAITS_LONG_LONG_H
+#define RCPP_TRAITS_LONG_LONG_H
+
+#if defined(RCPP_HAS_LONG_LONG_TYPES)
+
+namespace Rcpp{
+    namespace traits{
+
+        template<> struct r_sexptype_traits<rcpp_long_long_type>{ enum{ rtype = REALSXP } ; } ;
+        template<> struct r_sexptype_traits<rcpp_ulong_long_type>{ enum{ rtype = REALSXP } ; } ;
+
+        template<> struct r_type_traits<rcpp_long_long_type>{ typedef r_type_primitive_tag r_category ; } ;
+        template<> struct r_type_traits< std::pair<const std::string,rcpp_long_long_type> >{ typedef r_type_primitive_tag r_category ; } ;
+        template<> struct r_type_traits<rcpp_ulong_long_type>{ typedef r_type_primitive_tag r_category ; } ;
+        template<> struct r_type_traits< std::pair<const std::string,rcpp_ulong_long_type> >{ typedef r_type_primitive_tag r_category ; } ;
+
+        template <> struct wrap_type_traits<rcpp_long_long_type> { typedef wrap_type_primitive_tag wrap_category; } ;
+        template <> struct wrap_type_traits<rcpp_ulong_long_type> { typedef wrap_type_primitive_tag wrap_category; } ;
+    }
+}
+#endif
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_const.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_const.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_const.h	(revision 2476)
@@ -0,0 +1,40 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// is_reference.h: Rcpp R/C++ interface class library -- identifies if a type is a reference
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__is_const__h
+#define Rcpp__traits__is_const__h
+
+namespace Rcpp{ namespace traits {
+
+  /// @brief  type properties [4.5.3].
+  template<typename>
+    struct is_const
+    : public false_type { };
+
+  template<typename _Tp>
+    struct is_const<_Tp const>
+    : public true_type { };
+
+
+}}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/one_type.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/one_type.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/one_type.h	(revision 2476)
@@ -0,0 +1,78 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// one_type.h: Rcpp R/C++ interface class library -- traits functions for eye, ones, zeros
+//
+// Copyright (C) 2016 Nathan Russell
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__one_type__h
+#define Rcpp__traits__one_type__h
+
+namespace Rcpp {
+namespace traits {
+
+template <bool>
+struct allowed_matrix_type;
+
+template <>
+struct allowed_matrix_type<true> {};
+
+template <typename T>
+class one_type {
+private:
+    Rcomplex op(true_type) const {
+        Rcomplex res;
+        res.i = 0.0;
+        res.r = 1.0;
+        return res;
+    }
+    
+    T op(false_type) const {
+        return static_cast<T>(1);
+    }
+    
+public:
+    operator T() const {
+        return op(typename same_type<T, Rcomplex>::type());
+    }
+};
+
+template <typename T>
+class zero_type {
+private:
+    Rcomplex op(true_type) const {
+        Rcomplex res;
+        res.i = 0.0;
+        res.r = 0.0;
+        return res;
+    }
+    
+    T op(false_type) const {
+        return static_cast<T>(0);
+    }
+    
+public:
+    operator T() const {
+        return op(typename same_type<T, Rcomplex>::type());
+    }
+};
+
+} // traits
+} // Rcpp
+
+#endif // Rcpp__traits__one_type__h
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/num2type.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/num2type.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/num2type.h	(revision 2476)
@@ -0,0 +1,34 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// num2type.h: Rcpp R/C++ interface class library -- convert number to type
+//
+// Copyright (C) 2014 Dirk Eddelbuettel, Romain Francois and Kevin Ushey
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__num2type__h
+#define Rcpp__traits__num2type__h
+
+namespace Rcpp{
+namespace traits{
+
+template <std::size_t N>
+struct num2type {};
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/has_iterator.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/has_iterator.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/has_iterator.h	(revision 2476)
@@ -0,0 +1,124 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// has_iterator.h: Rcpp R/C++ interface class library -- identify if a class has a nested iterator typedef
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__has_iterator__h
+#define Rcpp__traits__has_iterator__h
+
+/* "inspired" from the tr1_impl/functional file
+   This uses the SFINAE technique to identify if a class T has
+   an iterator typedef
+*/
+
+namespace Rcpp{
+namespace traits{
+
+  struct __sfinae_types {
+    typedef char __one;
+    typedef struct { char __arr[2]; } __two;
+  };
+
+  template<typename T>
+  class _has_iterator_helper : __sfinae_types {
+      template<typename U> struct _Wrap_type { };
+
+      template<typename U>
+        static __one __test(_Wrap_type<typename U::iterator>*);
+
+      template<typename U>
+        static __two __test(...);
+
+    public:
+      static const bool value = sizeof(__test<T>(0)) == 1;
+    };
+
+  template<typename T>
+  class _is_importer_helper : __sfinae_types {
+      template<typename U> struct _Wrap_type { };
+
+      template<typename U>
+        static __one __test(_Wrap_type<typename U::r_import_type>*);
+
+      template<typename U>
+        static __two __test(...);
+
+    public:
+      static const bool value = sizeof(__test<T>(0)) == 1;
+    };
+
+  template<typename T>
+  class _is_generator_helper : __sfinae_types {
+      template<typename U> struct _Wrap_type { };
+
+      template<typename U>
+        static __one __test(_Wrap_type<typename U::r_generator>*);
+
+      template<typename U>
+        static __two __test(...);
+
+    public:
+      static const bool value = sizeof(__test<T>(0)) == 1;
+    };
+
+
+  template<typename T>
+  class _is_exporter_helper : __sfinae_types {
+      template<typename U> struct _Wrap_type { };
+
+      template<typename U>
+        static __one __test(_Wrap_type<typename U::r_export_type>*);
+
+      template<typename U>
+        static __two __test(...);
+
+    public:
+      static const bool value = sizeof(__test<T>(0)) == 1;
+    };
+
+  /**
+   * uses the SFINAE idiom to check if a class has an
+   * nested iterator typedef. For example :
+   *
+   * has_iterator< std::vector<int> >::value is true
+   * has_iterator< Rcpp::Symbol >::value is false
+   */
+  template<typename T> struct has_iterator :
+  	integral_constant<bool,_has_iterator_helper<T>::value> { };
+
+  /**
+   * uses SFINAE to identify if a type is importable
+   *
+   * The test is based on the presence of a typedef r_import_type in the
+   * class
+   */
+  template<typename T> struct is_importer :
+    integral_constant<bool,_is_importer_helper<T>::value> { };
+
+  template<typename T> struct is_exporter :
+    integral_constant<bool,_is_exporter_helper<T>::value> { };
+
+  template<typename T> struct is_generator :
+    integral_constant<bool,_is_generator_helper<T>::value> { };
+
+} // traits
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_bool.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_bool.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_bool.h	(revision 2476)
@@ -0,0 +1,24 @@
+#ifndef Rcpp__traits__is_bool__h
+#define Rcpp__traits__is_bool__h
+
+namespace Rcpp{ namespace traits {
+
+template<typename>
+struct is_bool
+    : public false_type { };
+
+template<>
+struct is_bool<bool>
+    : public true_type { };
+
+template<>
+struct is_bool<const bool>
+    : public true_type { };
+
+template<>
+struct is_bool<volatile bool>
+    : public true_type { };
+
+}}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/r_sexptype_traits.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/r_sexptype_traits.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/r_sexptype_traits.h	(revision 2476)
@@ -0,0 +1,79 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// r_sexptype_traits.h: Rcpp R/C++ interface class library -- traits to help wrap
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__r_sexptype_traits__h
+#define Rcpp__traits__r_sexptype_traits__h
+
+namespace Rcpp{
+namespace traits{
+
+/**
+ * template that returns the SEXP type that is appropriate for
+ * the type T, this is allways VECSXP (lists) unless it is specialized
+ */
+template <typename T> struct r_sexptype_traits{ enum{ rtype = VECSXP }; } ;
+template<> struct r_sexptype_traits<int>{ enum{ rtype = INTSXP } ; } ;
+template<> struct r_sexptype_traits<const int>{ enum{ rtype = INTSXP } ; } ;
+template<> struct r_sexptype_traits<double>{ enum{ rtype = REALSXP } ; } ;
+template<> struct r_sexptype_traits<const double>{ enum{ rtype = REALSXP } ; } ;
+template<> struct r_sexptype_traits<bool>{ enum{ rtype = LGLSXP } ; } ;
+template<> struct r_sexptype_traits<std::string>{ enum{ rtype = STRSXP } ; } ;
+template<> struct r_sexptype_traits<Rcomplex>{ enum{ rtype = CPLXSXP } ; } ;
+template<> struct r_sexptype_traits<Rbyte>{ enum{ rtype = RAWSXP } ; } ;
+
+
+template<> struct r_sexptype_traits<unsigned int>{ enum{ rtype = REALSXP } ; } ;
+template<> struct r_sexptype_traits<float>{ enum{ rtype = REALSXP } ; } ;
+
+/* long are represented as numeric vectors which allows more precision
+   to be preserved than int */
+template<> struct r_sexptype_traits<long>{ enum{ rtype = REALSXP } ; } ;
+template<> struct r_sexptype_traits<unsigned long>{ enum{ rtype = REALSXP } ; } ;
+
+/* long double are represented as numeric vectors because we cannot do better in R
+   some precision will be lost though
+*/
+template<> struct r_sexptype_traits<long double>{ enum{ rtype = REALSXP } ; } ;
+
+/* short are represented as integer vector in R
+*/
+template<> struct r_sexptype_traits<short>{ enum{ rtype = INTSXP } ; } ;
+template<> struct r_sexptype_traits<unsigned short>{ enum{ rtype = INTSXP } ; } ;
+
+/* std::complex */
+template<> struct r_sexptype_traits< std::complex<double> >{ enum{ rtype = CPLXSXP } ; } ;
+template<> struct r_sexptype_traits< std::complex<float> >{ enum{ rtype = CPLXSXP } ; } ;
+
+/**
+ * Indicates if a primitive type needs a static_cast
+ */
+template <typename T> struct r_sexptype_needscast : public true_type{};
+template<> struct r_sexptype_needscast<int>          : public false_type{} ;
+template<> struct r_sexptype_needscast<double>       : public false_type{} ;
+template<> struct r_sexptype_needscast<Rcomplex>     : public false_type{} ;
+template<> struct r_sexptype_needscast<Rbyte>        : public false_type{} ;
+
+
+} // traits
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_reference.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_reference.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_reference.h	(revision 2476)
@@ -0,0 +1,38 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// is_reference.h: Rcpp R/C++ interface class library -- identifies if a type is a reference
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__is_reference__h
+#define Rcpp__traits__is_reference__h
+
+namespace Rcpp{ namespace traits {
+
+  template<typename>
+    struct is_reference
+    : public false_type { };
+
+  template<typename _Tp>
+    struct is_reference<_Tp&>
+    : public true_type { };
+
+}}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_na.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_na.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_na.h	(revision 2476)
@@ -0,0 +1,64 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// is_na.h: Rcpp R/C++ interface class library -- vector operators
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits_is_na_h
+#define Rcpp__traits_is_na_h
+
+namespace Rcpp{
+
+    namespace traits{
+
+        // default to always false, applies to VECSXP, EXPRSXP and RAWSXP
+        template <int RTYPE>
+        bool is_na(typename storage_type<RTYPE>::type) {
+            return false;
+        }
+
+        template <>
+        inline bool is_na<INTSXP>(int x) {
+            return x == NA_INTEGER;
+        }
+
+        template <>
+        inline bool is_na<REALSXP>(double x) {
+            return internal::Rcpp_IsNA(x) || internal::Rcpp_IsNaN(x);
+        }
+
+        template <>
+        inline bool is_na<CPLXSXP>(Rcomplex x) {
+            return internal::Rcpp_IsNA(x.r) || internal::Rcpp_IsNA(x.i) ||
+              internal::Rcpp_IsNaN(x.r) || internal::Rcpp_IsNaN(x.i);
+        }
+
+        template <>
+        inline bool is_na<STRSXP>(SEXP x) {
+            return x == NA_STRING;
+        }
+
+        template <>
+        inline bool is_na<LGLSXP>(int x) {
+            return x == NA_LOGICAL;
+        }
+
+    }
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_sugar_expression.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_sugar_expression.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_sugar_expression.h	(revision 2476)
@@ -0,0 +1,49 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 4 -*-
+//
+// is_sugar_expression.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__is_sugar_expression_h
+#define Rcpp__traits__is_sugar_expression_h
+
+namespace Rcpp{
+namespace traits{
+
+	template<typename T>
+	class _is_sugar_expression_helper : __sfinae_types {
+      template<typename U> struct _Wrap_type { };
+
+      template<typename U>
+        static __one __test(_Wrap_type<typename U::rcpp_sugar_expression>*);
+
+      template<typename U>
+        static __two __test(...);
+
+    public:
+      static const bool value = sizeof(__test<T>(0)) == 1;
+    };
+
+  template<typename T> struct is_sugar_expression :
+  	integral_constant<bool, _is_sugar_expression_helper<T>::value >{ };
+
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/if_.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/if_.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/if_.h	(revision 2476)
@@ -0,0 +1,41 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// if.h: Rcpp R/C++ interface class library -- dispatch
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits_if_h
+#define Rcpp__traits_if_h
+
+namespace Rcpp{
+namespace traits{
+
+template <bool COND, typename LHS, typename RHS>
+struct if_ {
+	typedef LHS type ;
+} ;
+
+template <typename LHS, typename RHS>
+struct if_<false,LHS,RHS> {
+	typedef RHS type ;
+} ;
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/expands_to_logical.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/expands_to_logical.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/expands_to_logical.h	(revision 2476)
@@ -0,0 +1,61 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// expands_to_logical.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__expands_to_logical_h
+#define Rcpp__traits__expands_to_logical_h
+
+// helper trait to disambiguate things that want to be logical vectors
+// from containers of int
+
+namespace Rcpp{
+namespace traits{
+
+	template <int RTYPE>
+	struct expands_to_logical__impl{} ;
+
+	template <>
+	struct expands_to_logical__impl<LGLSXP> {
+		struct r_expands_to_logical{};
+	} ;
+
+	template<typename T>
+	class _has_rtype_helper : __sfinae_types {
+      template<typename U> struct _Wrap_type { };
+
+      template<typename U>
+        static __one __test(_Wrap_type<typename U::r_expands_to_logical>*);
+
+      template<typename U>
+        static __two __test(...);
+
+    public:
+      static const bool value = sizeof(__test<T>(0)) == 1;
+    };
+
+  template<typename T> struct expands_to_logical :
+  	integral_constant<bool, _has_rtype_helper<T>::value >{ };
+
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/result_of.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/result_of.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/result_of.h	(revision 2476)
@@ -0,0 +1,53 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// result_of.h: Rcpp R/C++ interface class library -- traits to help wrap
+//
+// Copyright (C) 2010 - 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__result_of__h
+#define Rcpp__traits__result_of__h
+
+namespace Rcpp{
+namespace traits{
+
+template <typename T>
+struct result_of{
+	typedef typename T::result_type type ;
+} ;
+
+template <typename RESULT_TYPE, typename INPUT_TYPE>
+struct result_of< RESULT_TYPE (*)(INPUT_TYPE) >{
+	typedef RESULT_TYPE type ;
+} ;
+
+template <typename RESULT_TYPE, typename U1, typename U2>
+struct result_of< RESULT_TYPE (*)(U1, U2) >{
+	typedef RESULT_TYPE type ;
+} ;
+
+template <typename RESULT_TYPE, typename U1, typename U2, typename U3>
+struct result_of< RESULT_TYPE (*)(U1, U2, U3) >{
+	typedef RESULT_TYPE type ;
+} ;
+
+}
+}
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_primitive.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_primitive.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_primitive.h	(revision 2476)
@@ -0,0 +1,37 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// is_primitive.h: Rcpp R/C++ interface class library -- traits to help wrap
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__is_primitive__h
+#define Rcpp__traits__is_primitive__h
+
+namespace Rcpp{
+namespace traits{
+
+	template <typename T> struct is_primitive : public same_type<
+		typename r_type_traits<T>::r_category ,
+		r_type_primitive_tag
+	>{} ;
+
+} // traits
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/remove_const_and_reference.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/remove_const_and_reference.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/remove_const_and_reference.h	(revision 2476)
@@ -0,0 +1,35 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// is_reference.h: Rcpp R/C++ interface class library -- identifies if a type is a reference
+//
+// Copyright (C) 2010 - 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__remove_const_and_reference__h
+#define Rcpp__traits__remove_const_and_reference__h
+
+namespace Rcpp{ namespace traits {
+
+	template <typename T>
+	struct remove_const_and_reference {
+		typedef typename remove_const< typename remove_reference<T>::type >::type type ;
+	} ;
+
+}}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/module_wrap_traits.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/module_wrap_traits.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/module_wrap_traits.h	(revision 2476)
@@ -0,0 +1,39 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// module_wrap_traits.h: Rcpp R/C++ interface class library -- traits to help module wrap
+//
+// Copyright (C) 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__module_wrap_traits__h
+#define Rcpp__traits__module_wrap_traits__h
+
+namespace Rcpp{
+namespace traits{
+
+struct normal_wrap_tag{} ;
+struct void_wrap_tag{} ;
+struct pointer_wrap_tag{} ;
+
+template <typename T> struct module_wrap_traits     { typedef normal_wrap_tag category; } ;
+template <> struct module_wrap_traits<void>         { typedef void_wrap_tag category; } ;
+template <typename T> struct module_wrap_traits<T*> { typedef pointer_wrap_tag category; } ;
+
+} // namespace traits
+} // namespace Rcpp
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/traits.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/traits.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/traits.h	(revision 2476)
@@ -0,0 +1,82 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// traits.h: Rcpp R/C++ interface class library -- traits to help wrap
+//
+// Copyright (C) 2012 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__traits__h
+#define Rcpp__traits__traits__h
+
+namespace Rcpp {
+namespace traits {
+
+template <typename T>
+struct identity { typedef T type; };
+
+template <int I>
+struct int2type { enum { value = I }; };
+
+}
+}
+
+#include <Rcpp/traits/integral_constant.h>
+#include <Rcpp/traits/same_type.h>
+#include <Rcpp/traits/enable_if.h>
+#include <Rcpp/traits/is_wide_string.h>
+#include <Rcpp/traits/is_arithmetic.h>
+#include <Rcpp/traits/char_type.h>
+#include <Rcpp/traits/named_object.h>
+#include <Rcpp/traits/is_convertible.h>
+#include <Rcpp/traits/has_iterator.h>
+#include <Rcpp/traits/expands_to_logical.h>
+#include <Rcpp/traits/matrix_interface.h>
+#include <Rcpp/traits/is_sugar_expression.h>
+#include <Rcpp/traits/is_eigen_base.h>
+#include <Rcpp/traits/has_na.h>
+#include <Rcpp/traits/storage_type.h>
+#include <Rcpp/traits/r_sexptype_traits.h>
+#include <Rcpp/traits/r_type_traits.h>
+#include <Rcpp/traits/un_pointer.h>
+#include <Rcpp/traits/is_pointer.h>
+#include <Rcpp/traits/wrap_type_traits.h>
+#include <Rcpp/traits/longlong.h>
+#include <Rcpp/traits/module_wrap_traits.h>
+#include <Rcpp/traits/is_na.h>
+#include <Rcpp/traits/is_finite.h>
+#include <Rcpp/traits/is_infinite.h>
+#include <Rcpp/traits/is_nan.h>
+#include <Rcpp/traits/is_bool.h>
+#include <Rcpp/traits/if_.h>
+#include <Rcpp/traits/get_na.h>
+#include <Rcpp/traits/is_trivial.h>
+#include <Rcpp/traits/init_type.h>
+
+#include <Rcpp/traits/is_const.h>
+#include <Rcpp/traits/is_reference.h>
+#include <Rcpp/traits/remove_const.h>
+#include <Rcpp/traits/remove_reference.h>
+#include <Rcpp/traits/remove_const_and_reference.h>
+#include <Rcpp/traits/result_of.h>
+#include <Rcpp/traits/is_module_object.h>
+#include <Rcpp/traits/is_primitive.h>
+
+#include <Rcpp/traits/one_type.h>
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_module_object.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_module_object.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_module_object.h	(revision 2476)
@@ -0,0 +1,41 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// is_module_object.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__is_module_object__h
+#define Rcpp__traits__is_module_object__h
+
+namespace Rcpp{
+namespace traits{
+
+	template <typename T> struct is_module_object :
+		public integral_constant<bool,
+			same_type< typename r_type_traits<T>::r_category, r_type_module_object_tag >::value                ||
+			same_type< typename r_type_traits<T>::r_category, r_type_module_object_pointer_tag >::value        ||
+			same_type< typename r_type_traits<T>::r_category, r_type_module_object_const_pointer_tag >::value  ||
+			same_type< typename r_type_traits<T>::r_category, r_type_module_object_reference_tag >::value      ||
+			same_type< typename r_type_traits<T>::r_category, r_type_module_object_const_reference_tag >::value
+		>{} ;
+
+} // traits
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_wide_string.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_wide_string.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_wide_string.h	(revision 2476)
@@ -0,0 +1,41 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// is_wide_string.h: Rcpp R/C++ interface class library -- traits to help wrap
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__is_wide_string__h
+#define Rcpp__traits__is_wide_string__h
+
+namespace Rcpp{
+namespace traits{
+
+    template <typename T>
+    struct is_wide_string : public same_type< typename T::value_type, wchar_t > {} ;
+
+    template <> struct is_wide_string< const wchar_t* > : public true_type{} ;
+    template <> struct is_wide_string< const char* > : public false_type{} ;
+
+    template <> struct is_wide_string< wchar_t > : public true_type{} ;
+    template <> struct is_wide_string< char > : public false_type{} ;
+
+} // traits
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/named_object.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/named_object.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/named_object.h	(revision 2476)
@@ -0,0 +1,67 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// named_object.h: Rcpp R/C++ interface class library -- named SEXP
+//
+// Copyright (C) 2010 - 2017  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__named_object__h
+#define Rcpp__traits__named_object__h
+
+namespace Rcpp{
+class Argument ;
+
+namespace traits{
+
+template <typename T> struct needs_protection : false_type{} ;
+template <> struct needs_protection<SEXP> : true_type{} ;
+
+template <typename T> class named_object {
+public:
+    named_object( const std::string& name_, const T& o_) :
+        name(name_), object(o_){}
+    const std::string& name;
+    const T& object;
+};
+template <> class named_object<SEXP> {
+public:                                              // #nocov start
+    named_object( const std::string& name_, const SEXP& o_):
+        name(name_), object(o_) {
+        R_PreserveObject(object);
+    }
+
+    named_object( const named_object<SEXP>& other ) :
+        name(other.name), object(other.object) {
+        R_PreserveObject(object);
+    }
+    ~named_object() {
+        R_ReleaseObject(object);
+    }                          	                     // #nocov end
+    const std::string& name;
+    SEXP object;
+};
+
+
+template <typename T> struct is_named : public false_type{};
+template <typename T> struct is_named< named_object<T> > : public true_type {};
+template <> struct is_named< Rcpp::Argument > : public true_type {};
+
+} // namespace traits
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_pointer.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_pointer.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_pointer.h	(revision 2476)
@@ -0,0 +1,35 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// is_pointer.h: Rcpp R/C++ interface class library -- identifies if a type is a pointer
+//
+// Copyright (C) 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__is_pointer__h
+#define Rcpp__traits__is_pointer__h
+
+namespace Rcpp{
+namespace traits{
+
+	template <typename T> struct is_pointer : public false_type{};
+	template <typename T> struct is_pointer<T*> : public true_type{};
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_eigen_base.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_eigen_base.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_eigen_base.h	(revision 2476)
@@ -0,0 +1,47 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 4 -*-
+//
+// is_eigen_base.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2011 Doug Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__is_eigen_base_h
+#define Rcpp__traits__is_eigen_base_h
+
+namespace Rcpp{
+namespace traits{
+
+	template<typename T>
+	class _is_eigen_helper : __sfinae_types {
+      template<typename U> struct _Wrap_type { };
+
+      template<typename U>
+        static __one __test(_Wrap_type<typename U::StorageKind>*);
+
+      template<typename U>
+        static __two __test(...);
+
+    public:
+      static const bool value = sizeof(__test<T>(0)) == 1;
+    };
+
+  template<typename T> struct is_eigen_base :
+  	integral_constant<bool, _is_eigen_helper<T>::value >{ };
+
+}
+}
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/char_type.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/char_type.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/char_type.h	(revision 2476)
@@ -0,0 +1,44 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// char_type.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__char_type__h
+#define Rcpp__traits__char_type__h
+
+namespace Rcpp{
+namespace traits{
+
+    template <typename T>
+    struct char_type {
+    	typedef typename T::value_type type ;
+    } ;
+
+    template <> struct char_type< const wchar_t* > {
+    	typedef wchar_t type ;
+    } ;
+    template <> struct char_type< const char* > {
+    	typedef char type ;
+    } ;
+
+} // traits
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/un_pointer.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/un_pointer.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/un_pointer.h	(revision 2476)
@@ -0,0 +1,35 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// un_pointer.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2012-2014 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__un_pointer__h
+#define Rcpp__traits__un_pointer__h
+
+namespace Rcpp{
+namespace traits{
+
+template <typename T> struct un_pointer { typedef T type ;} ;
+template <typename T> struct un_pointer<T*> { typedef T type ;} ;
+template <typename T> struct un_pointer< object<T> > { typedef T type ;} ;
+
+} // namespace traits
+} // namespace Rcpp
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_arithmetic.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_arithmetic.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_arithmetic.h	(revision 2476)
@@ -0,0 +1,105 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// is_wide_string.h: Rcpp R/C++ interface class library -- traits to help wrap
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__is_arithmetic__h
+#define Rcpp__traits__is_arithmetic__h
+
+namespace Rcpp{
+namespace traits{
+
+    template<typename>
+    struct is_arithmetic : public false_type { };
+
+    template<>
+    struct is_arithmetic<short> : public true_type { };
+
+    template<>
+    struct is_arithmetic<const short> : public true_type { };
+
+    template<>
+    struct is_arithmetic<unsigned short> : public true_type { };
+
+    template<>
+    struct is_arithmetic<const unsigned short> : public true_type { };
+
+    template<>
+    struct is_arithmetic<int> : public true_type { };
+
+    template<>
+    struct is_arithmetic<const int> : public true_type { };
+
+    template<>
+    struct is_arithmetic<unsigned int> : public true_type { };
+
+    template<>
+    struct is_arithmetic<const unsigned int> : public true_type { };
+
+    template<>
+    struct is_arithmetic<long> : public true_type { };
+
+    template<>
+    struct is_arithmetic<const long> : public true_type { };
+    
+    template<>
+    struct is_arithmetic<unsigned long> : public true_type { };
+
+    template<>
+    struct is_arithmetic<const unsigned long> : public true_type { };
+
+#if defined(RCPP_HAS_LONG_LONG_TYPES)
+
+    template<>
+    struct is_arithmetic<rcpp_long_long_type> : public true_type { };
+
+    template<>
+    struct is_arithmetic<const rcpp_long_long_type> : public true_type { };
+
+    template<>
+    struct is_arithmetic<rcpp_ulong_long_type> : public true_type { };
+
+    template<>
+    struct is_arithmetic<const rcpp_ulong_long_type> : public true_type { };
+
+#endif
+
+    template<>
+    struct is_arithmetic<float> : public true_type { };
+
+    template<>
+    struct is_arithmetic<const float> : public true_type { };
+
+    template<>
+    struct is_arithmetic<double> : public true_type { };
+
+    template<>
+    struct is_arithmetic<const double> : public true_type { };
+
+    template<>
+    struct is_arithmetic<long double> : public true_type { };
+
+    template<>
+    struct is_arithmetic<const long double> : public true_type { };
+
+} // traits
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/matrix_interface.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/matrix_interface.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/matrix_interface.h	(revision 2476)
@@ -0,0 +1,53 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// matrix_interface.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__matrix_interface_h
+#define Rcpp__traits__matrix_interface_h
+
+// helper trait to disambiguate things that want to be logical vectors
+// from containers of int
+
+namespace Rcpp{
+namespace traits{
+
+	template<typename T>
+	class _has_matrix_interface_helper : __sfinae_types {
+      template<typename U> struct _Wrap_type { };
+
+      template<typename U>
+        static __one __test(_Wrap_type<typename U::r_matrix_interface>*);
+
+      template<typename U>
+        static __two __test(...);
+
+    public:
+      static const bool value = sizeof(__test<T>(0)) == 1;
+    };
+
+  template<typename T> struct matrix_interface :
+  	integral_constant<bool, _has_matrix_interface_helper<T>::value >{ };
+
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/same_type.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/same_type.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/same_type.h	(revision 2476)
@@ -0,0 +1,35 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// same_type.h: Rcpp R/C++ interface class library -- identifies if two types are the same
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__same_type_traits__h
+#define Rcpp__traits__same_type_traits__h
+
+namespace Rcpp{
+namespace traits{
+
+	template <typename T, typename U> struct same_type : public false_type{} ;
+	template <typename T> struct same_type<T,T> : public true_type{} ;
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/r_type_traits.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/r_type_traits.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/r_type_traits.h	(revision 2476)
@@ -0,0 +1,183 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// r_type_traits.h: Rcpp R/C++ interface class library -- traits to help wrap
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__r_type_traits__h
+#define Rcpp__traits__r_type_traits__h
+
+namespace Rcpp{
+namespace traits{
+
+/**
+ * Identifies a primitive type that needs no special handling
+ * int, double, Rbyte, Rcomplex
+ */
+struct r_type_primitive_tag{} ;
+
+/**
+ * Identifies that the associated type can be implicitely converted
+ * to std::string
+ */
+struct r_type_string_tag{} ;
+
+/**
+ * Default
+ */
+struct r_type_generic_tag{} ;
+
+/**
+ * Identifies that the type if pair<const std::string,T> where T
+ * is a primitive type
+ */
+struct r_type_pairstring_primitive_tag{} ;
+
+/**
+ * Identifies that the associated type is pair<const std::(w)?string,std::(w)?string>
+ */
+struct r_type_pairstring_string_tag{} ;
+
+/**
+ * Indentifies pair<const std::string,T>
+ */
+struct r_type_pairstring_generic_tag{} ;
+
+/**
+ * Identifies a pair<const KEY, VALUE>, used to wrap map<KEY, VALUE>
+ * VALUE can be anything that wraps, KEY can be anything we can build a String from
+ */
+struct r_type_pair_tag{} ;
+
+/**
+ * identifies a module object pointer
+ */
+struct r_type_module_object_pointer_tag{} ;
+
+/**
+ * identifies a module object const pointer
+ */
+struct r_type_module_object_const_pointer_tag{} ;
+
+/**
+ * identifies a module object. Implementers of modules can define the
+ * r_type_traits to show that their object is handled
+ */
+struct r_type_module_object_tag{} ;
+
+/**
+ * identifies a reference to a module object.
+ */
+struct r_type_module_object_reference_tag{} ;
+
+/**
+ * identifies a const reference to a module object.
+ */
+struct r_type_module_object_const_reference_tag{} ;
+
+/**
+ * identifies an enum. conversions from/to int is used
+ */
+struct r_type_enum_tag{} ;
+
+struct r_type_RcppString_tag{};
+
+/**
+ * R type trait. Helps wrap.
+ */
+template <typename T> struct r_type_traits { typedef r_type_generic_tag r_category ; } ;
+
+/**
+ * module object type
+ */
+template <typename T> struct r_type_traits< Rcpp::object<T> >{ typedef r_type_module_object_pointer_tag r_category ; } ;
+
+
+template <typename KEY, typename VALUE>
+struct r_type_traits< std::pair<const KEY,VALUE> > {
+	typedef r_type_pair_tag r_category ;
+} ;
+
+/**
+ * special cases pair<string,T> to deal with map<string,T> etc ...
+ */
+template <typename T> struct r_type_traits< std::pair<const std::string,T> > { typedef r_type_pairstring_generic_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,int> >{ typedef r_type_pairstring_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,const int> >{ typedef r_type_pairstring_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,double> >{ typedef r_type_pairstring_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,Rbyte> >{ typedef r_type_pairstring_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,Rcomplex> >{ typedef r_type_pairstring_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,bool> >{ typedef r_type_pairstring_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,std::string> >{ typedef r_type_pairstring_string_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,std::wstring> >{ typedef r_type_pairstring_string_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,char> >{ typedef r_type_pairstring_string_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,wchar_t> >{ typedef r_type_pairstring_string_tag r_category ; } ;
+
+template<> struct r_type_traits< std::pair<const std::string,unsigned int> >{ typedef r_type_pairstring_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,float> >{ typedef r_type_pairstring_primitive_tag r_category ; } ;
+
+template<> struct r_type_traits<int>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits<const int>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits<double>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits<const double>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits<Rbyte>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits<Rcomplex>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits<bool>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits<std::string>{ typedef r_type_string_tag r_category ; } ;
+template<> struct r_type_traits<std::wstring>{ typedef r_type_string_tag r_category ; } ;
+template<> struct r_type_traits<char>{ typedef r_type_string_tag r_category ; } ;
+template<> struct r_type_traits<wchar_t>{ typedef r_type_string_tag r_category ; } ;
+
+template<> struct r_type_traits<unsigned int>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits<float>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits<const char*>{ typedef r_type_string_tag r_category ; } ;
+template<> struct r_type_traits<const wchar_t*>{ typedef r_type_string_tag r_category ; } ;
+
+/* long */
+template<> struct r_type_traits<long>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,long> >{ typedef r_type_primitive_tag r_category ; } ;
+
+/* unsigned long */
+template<> struct r_type_traits<unsigned long>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,unsigned long> >{ typedef r_type_primitive_tag r_category ; } ;
+
+/* long double */
+template<> struct r_type_traits<long double>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,long double> >{ typedef r_type_primitive_tag r_category ; } ;
+
+/* short */
+template<> struct r_type_traits<short>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,short> >{ typedef r_type_primitive_tag r_category ; } ;
+
+/* unsigned short */
+template<> struct r_type_traits<unsigned short>{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,unsigned short> >{ typedef r_type_primitive_tag r_category ; } ;
+
+/* std::complex<double> */
+template<> struct r_type_traits< std::complex<double> >{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,std::complex<double> > >{ typedef r_type_primitive_tag r_category ; } ;
+
+/* std::complex<float> */
+template<> struct r_type_traits< std::complex<float> >{ typedef r_type_primitive_tag r_category ; } ;
+template<> struct r_type_traits< std::pair<const std::string,std::complex<float> > >{ typedef r_type_primitive_tag r_category ; } ;
+
+} // traits
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/has_na.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/has_na.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/has_na.h	(revision 2476)
@@ -0,0 +1,65 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// has_na.h: Rcpp R/C++ interface class library -- NA handling
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__has_na__h
+#define Rcpp__traits__has_na__h
+
+namespace Rcpp{
+namespace traits{
+
+/**
+ * Indentifies if a given SEXP type has the concept of missing values
+ *
+ * This is false by default and specialized for all types that do
+ * have the concept
+ */
+template<int RTYPE> struct has_na : public false_type{} ;
+
+/**
+ * integer vectors support missing values
+ */
+template<> struct has_na<INTSXP> : public true_type{};
+
+/**
+ * numeric vectors support missing values
+ */
+template<> struct has_na<REALSXP> : public true_type{};
+
+/**
+ * complex vectors support missing values
+ */
+template<> struct has_na<CPLXSXP> : public true_type{};
+
+/**
+ * character vector support missing values
+ */
+template<> struct has_na<STRSXP> : public true_type{};
+
+/**
+ * logical vectors support missing values
+ */
+template<> struct has_na<LGLSXP> : public true_type{};
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/get_na.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/get_na.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/get_na.h	(revision 2476)
@@ -0,0 +1,59 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// get_na.h: Rcpp R/C++ interface class library -- NA handling
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__get_na__h
+#define Rcpp__traits__get_na__h
+
+namespace Rcpp{
+namespace traits{
+
+template<int RTYPE>
+typename storage_type<RTYPE>::type get_na() ;
+
+template<>
+inline int get_na<INTSXP>(){ return NA_INTEGER ; }
+
+template<>
+inline int get_na<LGLSXP>(){ return NA_LOGICAL ; }
+
+template<>
+inline double get_na<REALSXP>(){ return NA_REAL ; }
+
+template<>
+inline Rcomplex get_na<CPLXSXP>(){
+	Rcomplex x ;
+	x.r = NA_REAL ;
+	x.i = NA_REAL ;
+	return x ;
+}
+
+template<>
+inline SEXP get_na<STRSXP>(){ return NA_STRING ; }
+
+// this is the list equivalent of an NA value
+template<>
+inline SEXP get_na<VECSXP>(){ return R_NilValue; }
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/wrap_type_traits.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/wrap_type_traits.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/wrap_type_traits.h	(revision 2476)
@@ -0,0 +1,106 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// wrap_type_traits.h: Rcpp R/C++ interface class library -- traits to help wrap
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__wrap_type_traits__h
+#define Rcpp__traits__wrap_type_traits__h
+
+namespace Rcpp{
+namespace traits{
+
+/**
+ * primitive type : int, double, std::string, Rcomplex, size_t, Rbyte
+ */
+struct wrap_type_primitive_tag{};
+
+/**
+ * unknown. Implicit conversion to SEXP will be tried.
+ */
+struct wrap_type_unknown_tag{};
+
+/**
+ * module objects pointers (object<T>). conversion done using make_new_object<>()
+ */
+struct wrap_type_module_object_pointer_tag{} ;
+
+/**
+ * declared module object type (by the RCPP_EXPOSED_CLASS macro)
+ */
+struct wrap_type_module_object_tag{} ;
+
+/**
+ * enums
+ */
+struct wrap_type_enum_tag{} ;
+
+/**
+ * character arrays
+ */
+struct wrap_type_char_array{} ;
+
+/**
+ * Type trait that helps the dispatch of wrap to the proper method
+ *
+ * This builds a struct that contains a typedef called wrap_category
+ * that has to be one of "wrap_type_primitive_tag" or "wrap_type_unknown_tag"
+ *
+ * The default is "wrap_type_unknown_tag" and this is specialized
+ * for primitive types
+ */
+template <typename T> struct wrap_type_traits { typedef wrap_type_unknown_tag wrap_category; } ;
+
+template <std::size_t N> struct wrap_type_traits<char[N]> { typedef wrap_type_char_array wrap_category; } ;
+template <std::size_t N> struct wrap_type_traits<const char[N]> { typedef wrap_type_char_array wrap_category; } ;
+/**
+ * Total specialization for primitive types
+ */
+template <> struct wrap_type_traits<int> { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits<const int> { typedef wrap_type_primitive_tag wrap_category; } ;
+
+template <> struct wrap_type_traits<double> { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits<Rbyte> { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits<Rcomplex> { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits<unsigned int> { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits<bool> { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits<std::string> { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits<std::wstring> { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits<Rcpp::String> { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits<char> { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits<wchar_t> { typedef wrap_type_primitive_tag wrap_category; } ;
+
+template <> struct wrap_type_traits<float> { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits< std::complex<float> > { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits< std::complex<double> > { typedef wrap_type_primitive_tag wrap_category; } ;
+
+template <> struct wrap_type_traits<long> { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits<unsigned long> { typedef wrap_type_primitive_tag wrap_category; } ;
+
+template <> struct wrap_type_traits<long double> { typedef wrap_type_primitive_tag wrap_category; } ;
+
+template <> struct wrap_type_traits<short> { typedef wrap_type_primitive_tag wrap_category; } ;
+template <> struct wrap_type_traits<unsigned short> { typedef wrap_type_primitive_tag wrap_category; } ;
+
+template <typename T> struct wrap_type_traits< Rcpp::object<T> > { typedef wrap_type_module_object_pointer_tag wrap_category; } ;
+
+
+} // namespace traits
+} // namespace Rcpp
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_infinite.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_infinite.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_infinite.h	(revision 2476)
@@ -0,0 +1,47 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// is_infinite.h: Rcpp R/C++ interface class library -- is infinite
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits_is_infinite_h
+#define Rcpp__traits_is_infinite_h
+
+namespace Rcpp{
+namespace traits{
+
+    // default for all but REALSXP and CPLXSXP
+	template <int RTYPE>
+	bool is_infinite( typename storage_type<RTYPE>::type){
+	    return false ;
+	}
+
+	template <>
+	inline bool is_infinite<REALSXP>( double x ){
+		return !( ISNAN(x) || R_FINITE(x) ) ;
+	}
+
+	template <>
+	inline bool is_infinite<CPLXSXP>( Rcomplex x ){
+		return is_infinite<REALSXP>(x.r) || is_infinite<REALSXP>(x.i) ;
+	}
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/remove_const.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/remove_const.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/remove_const.h	(revision 2476)
@@ -0,0 +1,39 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// is_reference.h: Rcpp R/C++ interface class library -- identifies if a type is a reference
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__remove_const__h
+#define Rcpp__traits__remove_const__h
+
+namespace Rcpp{ namespace traits {
+
+  /// @brief  const-volatile modifications [4.7.1].
+  template<typename _Tp>
+    struct remove_const
+    { typedef _Tp     type; };
+
+  template<typename _Tp>
+    struct remove_const<_Tp const>
+    { typedef _Tp     type; };
+
+}}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/enable_if.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/enable_if.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/enable_if.h	(revision 2476)
@@ -0,0 +1,18 @@
+#ifndef RCPP_TRAITS_ENABLE_IF_H
+#define RCPP_TRAITS_ENABLE_IF_H
+
+namespace Rcpp {
+namespace traits {
+
+template <bool B, typename T = void>
+struct enable_if {};
+
+template <typename T>
+struct enable_if<true, T> {
+    typedef T type;
+};
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/init_type.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/init_type.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/init_type.h	(revision 2476)
@@ -0,0 +1,41 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// init_type.h: Rcpp R/C++ interface class library -- support traits for vector
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__init_type_h
+#define Rcpp__traits__init_type_h
+
+namespace Rcpp {
+namespace traits {
+
+	template<int RTYPE> struct init_type {
+		typedef typename storage_type<RTYPE>::type type ;
+	} ;
+	template<> struct init_type<STRSXP>{
+		typedef const char* type ;
+	} ;
+	template<> struct init_type<LGLSXP>{
+		typedef bool type ;
+	} ;
+
+}
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_trivial.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_trivial.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/is_trivial.h	(revision 2476)
@@ -0,0 +1,35 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// traits.h: Rcpp R/C++ interface class library -- support traits for vector
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__is_trivial_h
+#define Rcpp__traits__is_trivial_h
+
+namespace Rcpp{
+namespace traits{
+
+	template <int RTYPE> struct is_trivial  : public true_type{} ;
+	template <> struct is_trivial<VECSXP>   : public false_type{} ;
+	template <> struct is_trivial<EXPRSXP>  : public false_type{} ;
+
+} // traits
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/storage_type.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/storage_type.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/traits/storage_type.h	(revision 2476)
@@ -0,0 +1,82 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */
+//
+// r_sexptype_traits.h: Rcpp R/C++ interface class library -- traits to help wrap
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__traits__storage_type__h
+#define Rcpp__traits__storage_type__h
+
+namespace Rcpp{
+namespace traits{
+
+/**
+ * Indicates the storage type associated with a SEXP type
+ * for example: storage_type<INTSXP>::type is a typedef to int
+ *
+ * The default is SEXP, which works for VECSXP, EXPRSXP and STRSXP
+ */
+template<int RTYPE> struct storage_type{
+	typedef SEXP type ;
+} ;
+
+/**
+ * Total specialization for integer vector (INTSXP)
+ * typedef to int
+ */
+template<> struct storage_type<INTSXP>{
+	typedef int type ;
+} ;
+
+/**
+ * Total specialization for numeric vectors (REALSXP)
+ * typedef to double
+ */
+template<> struct storage_type<REALSXP>{
+	typedef double type ;
+} ;
+
+/**
+ * Total specialization for numeric vectors (CPLXSXP)
+ * typedef to Rcomplex
+ */
+template<> struct storage_type<CPLXSXP>{
+	typedef Rcomplex type ;
+} ;
+
+/**
+ * Total specialization for raw vectors (RAWSXP)
+ * typedef to Rbyte
+ */
+template<> struct storage_type<RAWSXP>{
+	typedef Rbyte type ;
+} ;
+
+/**
+ * Total specialization for logical vectors (LGLSXP)
+ * typedef to int
+ */
+template<> struct storage_type<LGLSXP>{
+	typedef int type ;
+} ;
+
+} // traits
+} // Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/DottedPairImpl.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/DottedPairImpl.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/DottedPairImpl.h	(revision 2476)
@@ -0,0 +1,97 @@
+// Copyright (C) 2013 Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_DottedPairImpl_h
+#define Rcpp_DottedPairImpl_h
+
+namespace Rcpp{
+
+    template <typename CLASS>
+    class DottedPairImpl {
+    public:
+
+        /**
+         * wraps an object and add it at the end of the pairlist
+         * (this require traversing the entire pairlist)
+         *
+         * @param object anything that can be wrapped by one
+         * of the wrap functions, named objects (instances of traits::named_object<>
+         * are treated specially
+         */
+        template <typename T>
+        void push_back( const T& object) ;
+
+        /**
+         * wraps an object and add it in front of the pairlist.
+         *
+         * @param object anything that can be wrapped by one
+         * of the wrap functions, or an object of class Named
+         */
+        template <typename T>
+        void push_front( const T& object) ;
+
+        /**
+         * insert an object at the given position, pushing other objects
+         * to the tail of the list
+         *
+         * @param index index (0-based) where to insert
+         * @param object object to wrap
+         */
+        template <typename T>
+        void insert( const size_t& index, const T& object) ;
+
+        /**
+         * replaces an element of the list
+         *
+         * @param index position
+         * @param object object that can be wrapped
+         */
+        template <typename T>
+        void replace( const int& index, const T& object ) ;
+
+        inline R_xlen_t length() const {
+            return ::Rf_xlength(static_cast<const CLASS&>(*this).get__()) ;
+        }
+
+        inline R_xlen_t size() const {
+            return ::Rf_xlength(static_cast<const CLASS&>(*this).get__()) ;
+        }
+
+        /**
+         * Remove the element at the given position
+         *
+         * @param index position where the element is to be removed
+         */
+        void remove( const size_t& index );
+
+        template <typename T>
+	    friend DottedPairImpl& operator<<(DottedPairImpl& os, const T& t){
+	        os.push_back( t ) ;
+	        return os ;
+	    }
+
+	    template <typename T>
+	    friend DottedPairImpl& operator>>( const T& t, DottedPairImpl& s){
+	        s.push_front(t);
+	        return s ;
+	    }
+
+    } ;
+
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/exceptions.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/exceptions.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/exceptions.h	(revision 2476)
@@ -0,0 +1,377 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// exceptions.h: Rcpp R/C++ interface class library -- exceptions
+//
+// Copyright (C) 2010 - 2017  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__exceptions__h
+#define Rcpp__exceptions__h
+
+#define GET_STACKTRACE() stack_trace( __FILE__, __LINE__ )
+
+namespace Rcpp {
+
+    class exception : public std::exception {
+    public:
+        explicit exception(const char* message_) : message(message_) {	// #nocov start
+            rcpp_set_stack_trace(stack_trace());
+        }
+        exception(const char* message_, const char* file, int line) : message(message_) {
+            rcpp_set_stack_trace(stack_trace(file,line));
+        }
+        virtual ~exception() throw() {}
+        virtual const char* what() const throw() {
+            return message.c_str();					// #nocov end
+        }
+    private:
+        std::string message;
+    };
+
+    // simple helper
+    static std::string toString(const int i) {				// #nocov start
+        std::ostringstream ostr;
+        ostr << i;
+        return ostr.str();						// #nocov end 
+    }
+
+    class no_such_env : public std::exception {
+    public:
+        no_such_env(const std::string& name) throw() :
+            message(std::string("no such environment: '") + name + "'") {};
+        no_such_env(int pos) throw() :
+            message("no environment in given position '" + toString(pos) + "'") {};
+        virtual ~no_such_env() throw() {};
+        virtual const char* what() const throw() { return message.c_str(); };
+    private:
+        std::string message;
+    };
+
+    class file_io_error : public std::exception {
+    public:
+        file_io_error(const std::string& file) throw() :	// #nocov start
+            message(std::string("file io error: '") + file + "'"), file(file) {};
+        file_io_error(int code, const std::string& file) throw() :
+            message("file io error " + toString(code) + ": '" + file + "'"), file(file) {};
+        file_io_error(const std::string& msg, const std::string& file) throw() :
+            message(msg + ": '" + file + "'"), file(file) {};
+        virtual ~file_io_error() throw() {};
+        virtual const char* what() const throw() { return message.c_str(); };
+        std::string filePath() const throw() { return file; };	// #nocov end
+    private:
+        std::string message;
+        std::string file;
+    } ;
+
+    class file_not_found : public file_io_error {		// #nocov start
+    public:
+        file_not_found(const std::string& file) throw() :
+            file_io_error("file not found", file) {}		// #nocov end
+    };
+
+    class file_exists : public file_io_error {			// #nocov start
+    public:
+        file_exists(const std::string& file) throw() :
+            file_io_error("file already exists", file) {}	// #nocov end
+    };
+
+    #define RCPP_EXCEPTION_CLASS(__CLASS__,__WHAT__)                               \
+    class __CLASS__ : public std::exception{                                       \
+    public:                                                                        \
+        __CLASS__( const std::string& message ) throw() : message( __WHAT__ ){} ;  \
+        virtual ~__CLASS__() throw(){} ;                                           \
+        virtual const char* what() const throw() { return message.c_str() ; }      \
+    private:                                                                       \
+        std::string message ;                                                      \
+    } ;
+
+    #define RCPP_SIMPLE_EXCEPTION_CLASS(__CLASS__,__MESSAGE__)                     \
+    class __CLASS__ : public std::exception{                                       \
+    public:                                                                        \
+        __CLASS__() throw() {} ;                                                   \
+        virtual ~__CLASS__() throw(){} ;                                           \
+        virtual const char* what() const throw() { return __MESSAGE__ ; }          \
+    } ;
+
+    RCPP_SIMPLE_EXCEPTION_CLASS(not_a_matrix, "not a matrix")
+    RCPP_SIMPLE_EXCEPTION_CLASS(index_out_of_bounds, "index out of bounds")
+    RCPP_SIMPLE_EXCEPTION_CLASS(parse_error, "parse error")
+    RCPP_SIMPLE_EXCEPTION_CLASS(not_s4, "not an S4 object")	// #nocov start
+    RCPP_SIMPLE_EXCEPTION_CLASS(not_reference, "not an S4 object of a reference class")
+    RCPP_SIMPLE_EXCEPTION_CLASS(not_initialized, "C++ object not initialized (missing default constructor?)")
+    RCPP_SIMPLE_EXCEPTION_CLASS(no_such_slot, "no such slot")
+    RCPP_SIMPLE_EXCEPTION_CLASS(no_such_field, "no such field")
+    RCPP_SIMPLE_EXCEPTION_CLASS(not_a_closure, "not a closure")
+    RCPP_SIMPLE_EXCEPTION_CLASS(no_such_function, "no such function")
+    RCPP_SIMPLE_EXCEPTION_CLASS(unevaluated_promise, "promise not yet evaluated")
+
+    RCPP_EXCEPTION_CLASS(not_compatible, message )
+    RCPP_EXCEPTION_CLASS(S4_creation_error, std::string("error creating object of S4 class : ") + message )
+    RCPP_EXCEPTION_CLASS(reference_creation_error, std::string("error creating object of reference class : ") + message )
+    RCPP_EXCEPTION_CLASS(no_such_binding, std::string("no such binding : '") + message + "'" )
+    RCPP_EXCEPTION_CLASS(binding_not_found, std::string("binding not found: '") + message + "'" )
+    RCPP_EXCEPTION_CLASS(binding_is_locked, std::string("binding is locked: '") + message + "'" )
+    RCPP_EXCEPTION_CLASS(no_such_namespace, std::string("no such namespace: '") + message + "'" )
+    RCPP_EXCEPTION_CLASS(function_not_exported, std::string("function not exported: ") + message)
+    RCPP_EXCEPTION_CLASS(eval_error, message )			// #nocov end 
+
+    #undef RCPP_EXCEPTION_CLASS
+    #undef RCPP_SIMPLE_EXCEPTION_CLASS
+
+
+namespace internal {
+
+    inline SEXP nth(SEXP s, int n) {				// #nocov start
+        return Rf_length(s) > n ? (n == 0 ? CAR(s) : CAR(Rf_nthcdr(s, n))) : R_NilValue;
+    }
+
+    // We want the call just prior to the call from Rcpp_eval
+    // This conditional matches
+    // tryCatch(evalq(sys.calls(), .GlobalEnv), error = identity, interrupt = identity)
+    inline bool is_Rcpp_eval_call(SEXP expr) {
+        SEXP sys_calls_symbol = Rf_install("sys.calls");
+        SEXP identity_symbol = Rf_install("identity");
+        SEXP identity_fun = Rf_findFun(identity_symbol, R_BaseEnv);
+        SEXP tryCatch_symbol = Rf_install("tryCatch");
+        SEXP evalq_symbol = Rf_install("evalq");
+
+        return TYPEOF(expr) == LANGSXP &&
+            Rf_length(expr) == 4 &&
+            nth(expr, 0) == tryCatch_symbol &&
+            CAR(nth(expr, 1)) == evalq_symbol &&
+            CAR(nth(nth(expr, 1), 1)) == sys_calls_symbol &&
+            nth(nth(expr, 1), 2) == R_GlobalEnv &&
+            nth(expr, 2) == identity_fun &&
+            nth(expr, 3) == identity_fun;
+    }
+}
+
+} // namespace Rcpp
+
+inline SEXP get_last_call(){
+    SEXP sys_calls_symbol = Rf_install("sys.calls");
+
+    Rcpp::Shield<SEXP> sys_calls_expr(Rf_lang1(sys_calls_symbol));
+    Rcpp::Shield<SEXP> calls(Rcpp_eval(sys_calls_expr, R_GlobalEnv));
+
+    SEXP cur, prev;
+    prev = cur = calls;
+    while(CDR(cur) != R_NilValue) {
+        SEXP expr = CAR(cur);
+
+        if (Rcpp::internal::is_Rcpp_eval_call(expr)) {
+            break;
+        }
+        prev = cur;
+        cur = CDR(cur);
+    }
+    return CAR(prev);
+}
+
+inline SEXP get_exception_classes( const std::string& ex_class) {
+    Rcpp::Shield<SEXP> res( Rf_allocVector( STRSXP, 4 ) );
+
+    #ifndef RCPP_USING_UTF8_ERROR_STRING
+    SET_STRING_ELT( res, 0, Rf_mkChar( ex_class.c_str() ) ) ;
+    #else
+    SET_STRING_ELT( res, 0, Rf_mkCharLenCE( ex_class.c_str(), ex_class.size(), CE_UTF8 ) );
+    #endif
+    SET_STRING_ELT( res, 1, Rf_mkChar( "C++Error" ) ) ;
+    SET_STRING_ELT( res, 2, Rf_mkChar( "error" ) ) ;
+    SET_STRING_ELT( res, 3, Rf_mkChar( "condition" ) ) ;
+    return res;
+}
+
+inline SEXP make_condition(const std::string& ex_msg, SEXP call, SEXP cppstack, SEXP classes){
+    Rcpp::Shield<SEXP> res( Rf_allocVector( VECSXP, 3 ) ) ;
+    #ifndef RCPP_USING_UTF8_ERROR_STRING
+        SET_VECTOR_ELT( res, 0, Rf_mkString( ex_msg.c_str() ) ) ;
+    #else
+        Rcpp::Shield<SEXP> ex_msg_rstring( Rf_allocVector( STRSXP, 1 ) ) ;
+        SET_STRING_ELT( ex_msg_rstring, 0, Rf_mkCharLenCE( ex_msg.c_str(), ex_msg.size(), CE_UTF8 ) );
+        SET_VECTOR_ELT( res, 0, ex_msg_rstring ) ;
+    #endif
+    SET_VECTOR_ELT( res, 1, call ) ;
+    SET_VECTOR_ELT( res, 2, cppstack ) ;
+
+    Rcpp::Shield<SEXP> names( Rf_allocVector( STRSXP, 3 ) );
+    SET_STRING_ELT( names, 0, Rf_mkChar( "message" ) ) ;
+    SET_STRING_ELT( names, 1, Rf_mkChar( "call" ) ) ;
+    SET_STRING_ELT( names, 2, Rf_mkChar( "cppstack" ) ) ;
+    Rf_setAttrib( res, R_NamesSymbol, names ) ;
+    Rf_setAttrib( res, R_ClassSymbol, classes ) ;
+    return res ;
+}
+
+inline SEXP exception_to_r_condition( const std::exception& ex){
+    std::string ex_class = demangle( typeid(ex).name() ) ;
+    std::string ex_msg   = ex.what() ;
+
+    Rcpp::Shield<SEXP> cppstack( rcpp_get_stack_trace() );
+    Rcpp::Shield<SEXP> call( get_last_call() );
+    Rcpp::Shield<SEXP> classes( get_exception_classes(ex_class) );
+    Rcpp::Shield<SEXP> condition( make_condition( ex_msg, call, cppstack, classes) );
+    rcpp_set_stack_trace( R_NilValue ) ;
+    return condition ;
+}
+
+inline SEXP string_to_try_error( const std::string& str){
+    using namespace Rcpp;
+
+    #ifndef RCPP_USING_UTF8_ERROR_STRING
+        Rcpp::Shield<SEXP> simpleErrorExpr( Rf_lang2(::Rf_install("simpleError"), Rf_mkString(str.c_str())) );
+        Rcpp::Shield<SEXP> tryError( Rf_mkString( str.c_str() ) );
+    #else
+        Rcpp::Shield<SEXP> tryError( Rf_allocVector( STRSXP, 1 ) ) ;
+        SET_STRING_ELT( tryError, 0, Rf_mkCharLenCE( str.c_str(), str.size(), CE_UTF8 ) );
+        Rcpp::Shield<SEXP> simpleErrorExpr( Rf_lang2(::Rf_install("simpleError"), tryError ));
+   #endif
+
+    Rcpp::Shield<SEXP> simpleError( Rf_eval(simpleErrorExpr, R_GlobalEnv) );
+    Rf_setAttrib( tryError, R_ClassSymbol, Rf_mkString("try-error") ) ;
+    Rf_setAttrib( tryError, Rf_install( "condition") , simpleError ) ;
+
+    return tryError;					// #nocov end 
+}
+
+inline SEXP exception_to_try_error( const std::exception& ex){
+    return string_to_try_error(ex.what());
+}
+
+std::string demangle( const std::string& name) ;
+#define DEMANGLE(__TYPE__) demangle( typeid(__TYPE__).name() ).c_str()
+
+namespace Rcpp{
+
+    inline void warning(const std::string& message) {
+        Rf_warning(message.c_str());
+    }
+
+    template <typename T1>
+    inline void warning(const char* fmt, const T1& arg1) {
+        Rf_warning( tfm::format(fmt, arg1 ).c_str() );
+    }
+
+    template <typename T1, typename T2>
+    inline void warning(const char* fmt, const T1& arg1, const T2& arg2) {
+        Rf_warning( tfm::format(fmt, arg1, arg2 ).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3>
+    inline void warning(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3) {
+        Rf_warning( tfm::format(fmt, arg1, arg2, arg3).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4>
+    inline void warning(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4) {
+        Rf_warning( tfm::format(fmt, arg1, arg2, arg3, arg4).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4, typename T5>
+    inline void warning(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4, const T5& arg5) {
+        Rf_warning( tfm::format(fmt, arg1, arg2, arg3, arg4, arg5).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
+    inline void warning(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4, const T5& arg5, const T6& arg6) {
+        Rf_warning( tfm::format(fmt, arg1, arg2, arg3, arg4, arg5, arg6).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
+    inline void warning(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4, const T5& arg5, const T6& arg6, const T7& arg7) {
+        Rf_warning( tfm::format(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
+    inline void warning(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4, const T5& arg5, const T6& arg6, const T7& arg7, const T8& arg8) {
+        Rf_warning( tfm::format(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
+    inline void warning(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4, const T5& arg5, const T6& arg6, const T7& arg7, const T8& arg8, const T9& arg9) {
+        Rf_warning( tfm::format(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
+    inline void warning(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4, const T5& arg5, const T6& arg6, const T7& arg7, const T8& arg8, const T9& arg9, const T10& arg10) {
+        Rf_warning( tfm::format(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10).c_str() );
+    }
+
+    inline void NORET stop(const std::string& message) {	// #nocov start
+        throw Rcpp::exception(message.c_str());
+    }								// #nocov end 
+
+    template <typename T1>
+    inline void NORET stop(const char* fmt, const T1& arg1) {
+        throw Rcpp::exception( tfm::format(fmt, arg1 ).c_str() );
+    }
+
+    template <typename T1, typename T2>
+    inline void NORET stop(const char* fmt, const T1& arg1, const T2& arg2) {
+        throw Rcpp::exception( tfm::format(fmt, arg1, arg2 ).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3>
+    inline void NORET stop(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3) {
+        throw Rcpp::exception( tfm::format(fmt, arg1, arg2, arg3).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4>
+    inline void NORET stop(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4) {
+        throw Rcpp::exception( tfm::format(fmt, arg1, arg2, arg3, arg4).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4, typename T5>
+    inline void NORET stop(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4, const T5& arg5) {
+        throw Rcpp::exception( tfm::format(fmt, arg1, arg2, arg3, arg4, arg5).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
+    inline void NORET stop(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4, const T5& arg5, const T6& arg6) {
+        throw Rcpp::exception( tfm::format(fmt, arg1, arg2, arg3, arg4, arg5, arg6).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
+    inline void NORET stop(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4, const T5& arg5, const T6& arg6, const T7& arg7) {
+        throw Rcpp::exception( tfm::format(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
+    inline void NORET stop(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4, const T5& arg5, const T6& arg6, const T7& arg7, const T8& arg8) {
+        throw Rcpp::exception( tfm::format(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
+    inline void NORET stop(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4, const T5& arg5, const T6& arg6, const T7& arg7, const T8& arg8, const T9& arg9) {
+        throw Rcpp::exception( tfm::format(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9).c_str() );
+    }
+
+    template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
+    inline void NORET stop(const char* fmt, const T1& arg1, const T2& arg2, const T3& arg3, const T4& arg4, const T5& arg5, const T6& arg6, const T7& arg7, const T8& arg8, const T9& arg9, const T10& arg10) {
+        throw Rcpp::exception( tfm::format(fmt, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10).c_str() );
+    }
+}
+
+inline void forward_exception_to_r( const std::exception& ex){
+    SEXP stop_sym  = Rf_install( "stop" ) ;
+    Rcpp::Shield<SEXP> condition( exception_to_r_condition(ex) );
+    Rcpp::Shield<SEXP> expr( Rf_lang2( stop_sym , condition ) ) ;
+    Rf_eval( expr, R_GlobalEnv ) ;
+}
+
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/InternalFunction.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/InternalFunction.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/InternalFunction.h	(revision 2476)
@@ -0,0 +1,68 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// InternalFunction.h: Rcpp R/C++ interface class library -- exposing C++ functions
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_InternalFunction_h
+#define Rcpp_InternalFunction_h
+
+#include <RcppCommon.h>
+
+#include <Rcpp/grow.h>
+
+#ifdef RCPP_USING_CXX11
+#include <Rcpp/InternalFunctionWithStdFunction.h>
+#endif
+
+namespace Rcpp{
+
+    RCPP_API_CLASS(InternalFunction_Impl) {
+    public:
+
+        RCPP_GENERATE_CTOR_ASSIGN(InternalFunction_Impl)
+
+#ifdef RCPP_USING_CXX11
+        template <typename RESULT_TYPE, typename... Args>
+        InternalFunction_Impl(const std::function<RESULT_TYPE(Args...)> &fun) {
+            set(
+                XPtr<Rcpp::InternalFunctionWithStdFunction::CppFunctionBaseFromStdFunction<RESULT_TYPE, Args...> >(
+                    new Rcpp::InternalFunctionWithStdFunction::CppFunctionBaseFromStdFunction<RESULT_TYPE, Args...>(fun),
+                    false
+                    )
+                );
+        }
+#endif
+
+        #include <Rcpp/generated/InternalFunction__ctors.h>
+        void update(SEXP){}
+    private:
+
+        inline void set( SEXP xp){
+            Environment RCPP = Environment::Rcpp_namespace() ;
+            Function intf = RCPP["internal_function"] ;
+            Storage::set__( intf( xp ) ) ;
+        }
+
+    };
+
+    typedef InternalFunction_Impl<PreserveStorage> InternalFunction ;
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/S4.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/S4.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/S4.h	(revision 2476)
@@ -0,0 +1,78 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// S4.h: Rcpp R/C++ interface class library -- S4 objects
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_S4_h
+#define Rcpp_S4_h
+
+namespace Rcpp{
+
+    /**
+     * S4 object
+     */
+    RCPP_API_CLASS(S4_Impl) {
+    public:
+        RCPP_GENERATE_CTOR_ASSIGN(S4_Impl)
+
+        S4_Impl(){} ;
+
+        /**
+         * checks that x is an S4 object and wrap it.
+         *
+         * @param x must be an S4 object
+         */
+        S4_Impl(SEXP x) {
+            if( ! ::Rf_isS4(x) ) throw not_s4() ;
+            Storage::set__(x) ;
+        }
+
+        S4_Impl& operator=( SEXP other ){
+            Storage::set__( other ) ;
+            return *this ;
+        }
+
+        /**
+         * Creates an S4 object of the requested class.
+         *
+         * @param klass name of the target S4 class
+         * @throw not_s4 if klass does not map to a known S4 class
+         */
+        S4_Impl( const std::string& klass ){
+            Shield<SEXP> x( R_do_new_object(R_do_MAKE_CLASS(klass.c_str())) );
+            if (!Rf_inherits(x, klass.c_str()))
+                throw S4_creation_error( klass ) ;
+            Storage::set__(x) ;
+        }
+
+        /**
+         * Indicates if this object is an instance of the given S4 class
+         */
+        bool is( const std::string& clazz) const ;
+
+        void update(SEXP x){
+            if( ! ::Rf_isS4(x) ) throw not_s4() ;
+        }
+    } ;
+
+    typedef S4_Impl<PreserveStorage> S4 ;
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/algorithm.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/algorithm.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/algorithm.h	(revision 2476)
@@ -0,0 +1,467 @@
+#if __cplusplus >= 201103L
+#    define RCPP_CONSTEXPR constexpr
+#else
+#    define RCPP_CONSTEXPR const
+#endif
+
+namespace Rcpp {
+namespace algorithm {
+
+namespace helpers {
+    typedef struct {char a[1];} CTYPE_CHAR;
+    typedef struct {char a[2];} CTYPE_SHORT;
+    typedef struct {char a[3];} CTYPE_INT;
+    typedef struct {char a[4];} CTYPE_LONG;
+#ifdef RCPP_HAS_LONG_LONG_TYPES
+    typedef struct {char a[5];} CTYPE_LONG_LONG;
+#endif
+    typedef struct {char a[6];} CTYPE_FLOAT;
+    typedef struct {char a[7];} CTYPE_DOUBLE;
+    typedef struct {char a[8];} CTYPE_LONG_DOUBLE;
+    typedef struct {char a[9];} CTYPE_STRING;
+    typedef struct {char a[10];} CTYPE_UNSIGNED_CHAR;
+    typedef struct {char a[11];} CTYPE_UNSIGNED_SHORT;
+    typedef struct {char a[12];} CTYPE_UNSIGNED_INT;
+    typedef struct {char a[13];} CTYPE_UNSIGNED_LONG;
+#ifdef RCPP_HAS_LONG_LONG_TYPES
+    typedef struct {char a[14];} CTYPE_UNSIGNED_LONG_LONG;
+#endif
+    typedef struct {char a[128];} CTYPE_UNKNOWN;
+
+    template< std::size_t I >
+    struct ctype_helper { static const bool value = false; };
+
+    template<>
+    struct ctype_helper< sizeof(CTYPE_CHAR) > { typedef char type; static const bool value = true; };
+
+    template<>
+    struct ctype_helper< sizeof(CTYPE_SHORT) > { typedef short type; static const bool value = true; };
+
+    template<>
+    struct ctype_helper< sizeof(CTYPE_INT) > { typedef int type; static const bool value = true; };
+
+    template<>
+    struct ctype_helper< sizeof(CTYPE_LONG) > { typedef long type; static const bool value = true; };
+
+#ifdef RCPP_HAS_LONG_LONG_TYPES
+    template<>
+    struct ctype_helper< sizeof(CTYPE_LONG_LONG) > { typedef rcpp_long_long_type type; static const bool value = true; };
+#endif
+
+    template<>
+    struct ctype_helper< sizeof(CTYPE_FLOAT) > { typedef float type; static const bool value = true; };
+
+    template<>
+    struct ctype_helper< sizeof(CTYPE_DOUBLE) > { typedef double type; static const bool value = true; };
+
+    template<>
+    struct ctype_helper< sizeof(CTYPE_LONG_DOUBLE) > { typedef long double type; static const bool value = true; };
+
+    template<>
+    struct ctype_helper< sizeof(CTYPE_STRING) > { typedef std::string type; static const bool value = true; };
+
+    template<>
+    struct ctype_helper< sizeof(CTYPE_UNSIGNED_CHAR) > { typedef unsigned char type; static const bool value = true; };
+
+    template<>
+    struct ctype_helper< sizeof(CTYPE_UNSIGNED_SHORT) > { typedef unsigned short type; static const bool value = true; };
+
+    template<>
+    struct ctype_helper< sizeof(CTYPE_UNSIGNED_INT) > { typedef unsigned int type; static const bool value = true; };
+
+    template<>
+    struct ctype_helper< sizeof(CTYPE_UNSIGNED_LONG) > { typedef unsigned long type; static const bool value = true; };
+
+#ifdef RCPP_HAS_LONG_LONG_TYPES
+    template<>
+    struct ctype_helper< sizeof(CTYPE_UNSIGNED_LONG_LONG) > { typedef rcpp_ulong_long_type type; static const bool value = true; };
+#endif
+
+
+    template< typename T >
+    struct ctype
+    {
+        static CTYPE_CHAR test(const char &);
+        static CTYPE_SHORT test(const short &);
+        static CTYPE_INT test(const int &);
+        static CTYPE_LONG test(const long &);
+#ifdef RCPP_HAS_LONG_LONG_TYPES
+        static CTYPE_LONG_LONG test(const rcpp_long_long_type &);
+#endif
+        static CTYPE_FLOAT test(const float &);
+        static CTYPE_DOUBLE test(const double &);
+        static CTYPE_LONG_DOUBLE test(const long double &);
+        static CTYPE_STRING test(const std::string &);
+        static CTYPE_UNSIGNED_CHAR test(const unsigned char &);
+        static CTYPE_UNSIGNED_SHORT test(const unsigned short &);
+        static CTYPE_UNSIGNED_INT test(const unsigned int &);
+        static CTYPE_UNSIGNED_LONG test(const unsigned long &);
+#ifdef RCPP_HAS_LONG_LONG_TYPES
+        static CTYPE_UNSIGNED_LONG_LONG test(const rcpp_ulong_long_type &);
+#endif
+        static CTYPE_UNKNOWN test(...);
+
+        static T make();
+
+        typedef typename ctype_helper< sizeof(test(make())) >::type type;
+    };
+
+    template< typename T >
+    struct decays_to_ctype
+    {
+        static CTYPE_CHAR test(const char &);
+        static CTYPE_SHORT test(const short &);
+        static CTYPE_INT test(const int &);
+        static CTYPE_LONG test(const long &);
+#ifdef RCPP_HAS_LONG_LONG_TYPES
+        static CTYPE_LONG_LONG test(const rcpp_long_long_type &);
+#endif
+        static CTYPE_FLOAT test(const float &);
+        static CTYPE_DOUBLE test(const double &);
+        static CTYPE_LONG_DOUBLE test(const long double &);
+        static CTYPE_STRING test(const std::string &);
+        static CTYPE_UNSIGNED_CHAR test(const unsigned char &);
+        static CTYPE_UNSIGNED_SHORT test(const unsigned short &);
+        static CTYPE_UNSIGNED_INT test(const unsigned int &);
+        static CTYPE_UNSIGNED_LONG test(const unsigned long &);
+#ifdef RCPP_HAS_LONG_LONG_TYPES
+        static CTYPE_UNSIGNED_LONG_LONG test(const rcpp_ulong_long_type &);
+#endif
+        static CTYPE_UNKNOWN test(...);
+
+        static T make();
+
+        static const bool value = ctype_helper< sizeof(test(make())) >::value;
+    };
+
+    template< typename T >
+    struct rtype_helper {
+        /*
+	typedef T type;
+        static RCPP_CONSTEXPR int RTYPE = REALSXP;
+        static inline double NA() { return NA_REAL; }
+        static inline RCPP_CONSTEXPR double ZERO() { return 0.0; }
+        static inline RCPP_CONSTEXPR double ONE() { return 1.0; }
+        */
+    };
+
+    template<>
+    struct rtype_helper< double > {
+        typedef double type;
+        static RCPP_CONSTEXPR int RTYPE = REALSXP;
+        static inline double NA() { return NA_REAL; }
+        static inline RCPP_CONSTEXPR double ZERO() { return 0.0; }
+        static inline RCPP_CONSTEXPR double ONE() { return 1.0; }
+    };
+
+    template<>
+    struct rtype_helper< int > {
+        typedef int type;
+        static RCPP_CONSTEXPR int RTYPE = INTSXP;
+        static inline int NA() { return NA_INTEGER; }
+        static inline RCPP_CONSTEXPR int ZERO() { return 0; }
+        static inline RCPP_CONSTEXPR int ONE() { return 1; }
+    };
+
+    template< typename T >
+    struct rtype {
+        typedef typename rtype_helper< typename ctype< T >::type >::type type;
+        typedef rtype_helper< typename ctype< T >::type > helper_type;
+        static RCPP_CONSTEXPR int RTYPE = helper_type::RTYPE;
+        static inline T NA() { return helper_type::NA(); }
+        static inline RCPP_CONSTEXPR T ZERO() { return helper_type::ZERO(); }
+        static inline RCPP_CONSTEXPR T ONE() { return helper_type::ONE(); }
+    };
+
+    struct log {
+        template< typename T >
+        inline double operator()(T val) {
+            if (!Vector< rtype< T >::RTYPE >::is_na(val)) {
+                return std::log(val);
+            }
+
+            return rtype< double >::NA();
+        }
+    };
+
+    struct exp {
+        template< typename T >
+        inline double operator()(T val) {
+            if (!Vector< rtype< T >::RTYPE >::is_na(val)) {
+                return std::exp(val);
+            }
+
+            return rtype< double >::NA();
+        }
+    };
+
+    struct sqrt {
+        template< typename T >
+        inline double operator()(T val) {
+            if (!Vector< rtype< T >::RTYPE >::is_na(val)) {
+                return std::sqrt(val);
+            }
+
+            return rtype< double >::NA();
+        }
+    };
+} // namespace helpers
+
+template< typename InputIterator >
+typename traits::enable_if< helpers::decays_to_ctype< typename std::iterator_traits< InputIterator >::value_type >::value,
+    typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type >::type
+        sum(InputIterator begin, InputIterator end) {
+    
+    typedef typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type value_type;
+    typedef typename helpers::rtype< value_type > rtype;
+
+    if (begin != end) {
+         value_type start = rtype::ZERO();
+
+        while (begin != end) {
+            if (!Vector< rtype::RTYPE >::is_na(*begin)) {
+                start += *begin++;
+            } else {
+                return rtype::NA();
+            }
+        }
+
+        return start;
+    }
+
+    return rtype::ZERO();
+}
+
+template< typename InputIterator >
+typename traits::enable_if< helpers::decays_to_ctype< typename std::iterator_traits< InputIterator >::value_type >::value,
+    typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type >::type
+        sum_nona(InputIterator begin, InputIterator end) {
+    
+    typedef typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type value_type;
+    typedef typename helpers::rtype< value_type > rtype;
+
+    if (begin != end) {
+         value_type start = rtype::ZERO();
+
+        while (begin != end) {
+            start += *begin++;
+        }
+
+        return start;
+    }
+
+    return rtype::ZERO();
+}
+
+template< typename InputIterator >
+typename traits::enable_if< helpers::decays_to_ctype< typename std::iterator_traits< InputIterator >::value_type >::value,
+    typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type >::type
+        prod(InputIterator begin, InputIterator end) {
+
+    typedef typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type value_type;
+    typedef typename helpers::rtype< value_type > rtype;
+
+    if (begin != end) {
+        value_type start = rtype::ONE();
+
+        while (begin != end) {
+            if (!Vector< rtype::RTYPE >::is_na(*begin)) {
+                start *= *begin++;
+            } else {
+                return rtype::NA();
+            }
+        }
+
+        return start;
+    }
+
+    return rtype::ONE();
+}
+
+template< typename InputIterator >
+typename traits::enable_if< helpers::decays_to_ctype< typename std::iterator_traits< InputIterator >::value_type >::value,
+    typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type >::type
+        prod_nona(InputIterator begin, InputIterator end) {
+
+    typedef typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type value_type;
+    typedef typename helpers::rtype< value_type > rtype;
+
+    if (begin != end) {
+        value_type start = rtype::ONE();
+
+        while (begin != end) {
+            start *= *begin++;
+        }
+
+        return start;
+    }
+
+    return rtype::ONE();
+}
+
+template< typename InputIterator >
+typename traits::enable_if< helpers::decays_to_ctype< typename std::iterator_traits< InputIterator >::value_type >::value,
+    typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type >::type
+        max(InputIterator begin, InputIterator end) {
+
+    typedef typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type value_type;
+    typedef typename helpers::rtype< value_type > rtype;
+
+    if (begin != end) {
+        value_type max = *begin;
+
+	while (begin != end) {
+            if (!Vector< rtype::RTYPE >::is_na(*begin)) {
+                max = std::max(max, *begin++);
+            } else {
+                return rtype::NA();
+            }
+        }
+
+        return max;
+    }
+
+    return std::numeric_limits< typename rtype::type >::infinity() * -rtype::ONE();
+}
+
+template< typename InputIterator >
+typename traits::enable_if< helpers::decays_to_ctype< typename std::iterator_traits< InputIterator >::value_type >::value,
+    typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type >::type
+        max_nona(InputIterator begin, InputIterator end) {
+
+    typedef typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type value_type;
+    typedef typename helpers::rtype< value_type > rtype;
+
+    if (begin != end) {
+        value_type max = *begin;
+
+	while (begin != end) {
+            max = std::max(max, *begin++);
+        }
+
+        return max;
+    }
+
+    return std::numeric_limits< typename rtype::type >::infinity() * -rtype::ONE();
+}
+
+template< typename InputIterator >
+typename traits::enable_if< helpers::decays_to_ctype< typename std::iterator_traits< InputIterator >::value_type >::value,
+    typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type >::type
+        min(InputIterator begin, InputIterator end) {
+
+    typedef typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type value_type;
+    typedef typename helpers::rtype< value_type > rtype;
+
+    if (begin != end) {
+        value_type min = *begin;
+
+	while (begin != end) {
+            if (!Vector< rtype::RTYPE >::is_na(*begin)) {
+                min = std::min(min, *begin++);
+            } else {
+                return rtype::NA();
+            }
+        }
+
+        return min;
+    }
+
+    return std::numeric_limits< typename rtype::type >::infinity();
+}
+
+template< typename InputIterator >
+typename traits::enable_if< helpers::decays_to_ctype< typename std::iterator_traits< InputIterator >::value_type >::value,
+    typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type >::type
+        min_nona(InputIterator begin, InputIterator end) {
+
+    typedef typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type value_type;
+    typedef typename helpers::rtype< value_type > rtype;
+
+    if (begin != end) {
+        value_type min = *begin;
+
+	while (begin != end) {
+            min = std::min(min, *begin++);
+        }
+
+        return min;
+    }
+
+    return std::numeric_limits< typename rtype::type >::infinity();
+}
+
+// for REALSXP
+template< typename InputIterator >
+typename traits::enable_if< helpers::decays_to_ctype< typename std::iterator_traits< InputIterator >::value_type >::value
+    && traits::same_type< typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type, double >::value, double >::type
+        mean(InputIterator begin, InputIterator end)
+{
+    if (begin != end)
+    {
+        std::size_t n = end - begin;
+        long double s = std::accumulate(begin, end, 0.0L);
+        s /= n;
+
+        if (R_FINITE((double) s)) {
+            long double t = 0.0L;
+            while (begin != end) {
+                t += *begin++ - s;
+            }
+
+            s += t / n;
+        }
+
+        return (double) s;
+    }
+
+    return helpers::rtype< double >::NA();
+}
+
+// for LGLSXP and INTSXP
+template< typename InputIterator >
+typename traits::enable_if< helpers::decays_to_ctype< typename std::iterator_traits< InputIterator >::value_type >::value
+    && traits::same_type< typename helpers::ctype< typename std::iterator_traits< InputIterator >::value_type >::type, int >::value, double >::type
+        mean(InputIterator begin, InputIterator end)
+{
+    if (begin != end)
+    {
+        std::size_t n = end - begin;
+        long double s = std::accumulate(begin, end, 0.0L);
+        s /= n;
+
+        if (R_FINITE((double) s)) {
+            long double t = 0.0L;
+            while (begin != end) {
+                if (*begin == helpers::rtype< int >::NA()) return helpers::rtype< double >::NA();
+                t += *begin++ - s;
+            }
+
+            s += t / n;
+        }
+
+        return (double) s;
+    }
+
+    return helpers::rtype< double >::NA();
+}
+
+template< typename InputIterator, typename OutputIterator >
+void log(InputIterator begin, InputIterator end, OutputIterator out) {
+    std::transform(begin, end, out, helpers::log());
+}
+
+template< typename InputIterator, typename OutputIterator >
+void exp(InputIterator begin, InputIterator end, OutputIterator out) {
+    std::transform(begin, end, out, helpers::exp());
+}
+
+template< typename InputIterator, typename OutputIterator >
+void sqrt(InputIterator begin, InputIterator end, OutputIterator out) {
+    std::transform(begin, end, out, helpers::sqrt());
+}
+
+} // namespace algorithm
+} // namespace Rcpp
+
+#undef RCPP_CONSTEXPR
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Fast.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Fast.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Fast.h	(revision 2476)
@@ -0,0 +1,44 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Fast.h: Rcpp R/C++ interface class library -- faster vectors (less interface)
+//
+// Copyright (C) 2010 - 2016  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__Fast_h
+#define Rcpp__Fast_h
+
+namespace Rcpp {
+template <typename VECTOR>
+class Fast {
+public:
+    typedef typename VECTOR::stored_type value_type;
+
+    Fast( /*const*/ VECTOR& v_) : v(v_), data(v_.begin()) {}
+
+    inline value_type& operator[](R_xlen_t i) { return data[i]; }
+    inline const value_type& operator[](R_xlen_t i) const { return data[i]; }
+    inline R_xlen_t size() const { return v.size(); }
+
+private:
+    /*const*/ VECTOR& v;
+    value_type* data;
+
+};
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Reference.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Reference.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Reference.h	(revision 2476)
@@ -0,0 +1,74 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Reference.h: Rcpp R/C++ interface class library -- Reference class objects
+//
+// Copyright (C) 2010 - 2015  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Reference_h
+#define Rcpp_Reference_h
+
+namespace Rcpp{
+
+    /**
+     * S4 object (of a reference class)
+     */
+    RCPP_API_CLASS(Reference_Impl),
+        public FieldProxyPolicy<Reference_Impl<StoragePolicy> >
+    {
+    public:
+
+        Reference_Impl() {}
+
+        RCPP_GENERATE_CTOR_ASSIGN(Reference_Impl)
+
+        /**
+         * checks that x is an S4 object of a reference class and wrap it.
+         *
+         * @param x must be an S4 object of some reference class
+         */
+        Reference_Impl(SEXP x) {
+            Storage::set__(x) ;
+        }
+
+        Reference_Impl& operator=( SEXP other ) {
+            Storage::set__(other) ;
+            return *this ;
+        }
+
+        /**
+         * Creates an reference object of the requested class.
+         *
+         * @param klass name of the target reference class
+         * @throw reference_creation_error if klass does not map to a known S4 class
+         */
+        Reference_Impl( const std::string& klass ) {
+            SEXP newSym = Rf_install("new");
+            Shield<SEXP> call( Rf_lang2( newSym, Rf_mkString( klass.c_str() ) ) );
+            Storage::set__( Rcpp_eval( call , Rcpp::internal::get_Rcpp_namespace()) );
+        }
+
+        void update( SEXP x){
+            if( ! ::Rf_isS4(x) ) throw not_reference();
+        }
+    } ;
+
+    typedef Reference_Impl<PreserveStorage> Reference;
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/InternalFunctionWithStdFunction.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/InternalFunctionWithStdFunction.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/InternalFunctionWithStdFunction.h	(revision 2476)
@@ -0,0 +1,70 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// InternalFunction_with_std_function.h: Rcpp R/C++ interface class library -- exposing C++ std::function's
+//
+// Copyright (C) 2014  Christian Authmann
+// Copyright (C) 2015  Romain Francois and Dirk Eddelbuettel
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_InternalFunctionWithStdFunction_h
+#define Rcpp_InternalFunctionWithStdFunction_h
+
+#include <functional>
+
+namespace Rcpp {
+
+    namespace InternalFunctionWithStdFunction {
+
+        #include <Rcpp/generated/InternalFunctionWithStdFunction_call.h>
+
+        template <typename RESULT_TYPE, typename... Args>
+        class CppFunctionBaseFromStdFunction : public CppFunctionBase {
+            public:
+                CppFunctionBaseFromStdFunction(const std::function<RESULT_TYPE(Args...)> &fun) : fun(fun) {}
+                virtual ~CppFunctionBaseFromStdFunction() {}
+
+                SEXP operator()(SEXP* args) {
+                    BEGIN_RCPP
+                    auto result = call<RESULT_TYPE, Args...>(fun, args);
+                    return Rcpp::module_wrap<RESULT_TYPE>(result);
+                    END_RCPP
+                }
+
+            private:
+                const std::function<RESULT_TYPE(Args...)> fun;
+        };
+
+        template <typename... Args>
+        class CppFunctionBaseFromStdFunction<void, Args...> : public CppFunctionBase {
+             public:
+                 CppFunctionBaseFromStdFunction(const std::function<void(Args...)> &fun) : fun(fun) {}
+                 virtual ~CppFunctionBaseFromStdFunction() {}
+
+                 SEXP operator()(SEXP* args) {
+                     BEGIN_RCPP
+                     call<void, Args...>(fun, args);
+                     END_RCPP
+                 }
+
+            private:
+                 const std::function<void(Args...)> fun;
+        };
+
+    } // namespace InternalFunctionWithStdFunction
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Formula.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Formula.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Formula.h	(revision 2476)
@@ -0,0 +1,81 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Formula.h: Rcpp R/C++ interface class library -- formula
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__Formula_h
+#define Rcpp__Formula_h
+
+#include <RcppCommon.h>
+#include <Rcpp/Language.h>
+
+namespace Rcpp{
+
+    RCPP_API_CLASS(Formula_Impl),
+        public DottedPairProxyPolicy<Formula_Impl<StoragePolicy> >,
+        public DottedPairImpl<Formula_Impl<StoragePolicy> >
+    {
+    public:
+
+        RCPP_GENERATE_CTOR_ASSIGN(Formula_Impl)
+
+        Formula_Impl(){} ;
+
+        Formula_Impl(SEXP x){
+            switch( TYPEOF( x ) ){
+            case LANGSXP:
+                if( ::Rf_inherits( x, "formula") ){
+                    Storage::set__( x );
+                } else{
+                    Storage::set__( internal::convert_using_rfunction( x, "as.formula") ) ;
+                }
+                break;
+            case EXPRSXP:
+            case VECSXP:
+                /* lists or expression, try the first one */
+                if( ::Rf_length(x) > 0 ){
+                    SEXP y = VECTOR_ELT( x, 0 ) ;
+                    if( ::Rf_inherits( y, "formula" ) ){
+                        Storage::set__( y ) ;
+                    } else{
+                        SEXP z = internal::convert_using_rfunction( y, "as.formula") ;
+                        Storage::set__( z ) ;
+                    }
+                } else{
+                    throw not_compatible( "cannot create formula from empty list or expression" ) ;
+                }
+                break;
+            default:
+                Storage::set__( internal::convert_using_rfunction( x, "as.formula") ) ;
+            }
+        }
+
+        explicit Formula_Impl( const std::string& code ) {
+            Storage::set__( internal::convert_using_rfunction( ::Rf_mkString(code.c_str()), "as.formula") ) ;
+        }
+
+        void update(SEXP){}
+
+    } ;
+
+    typedef Formula_Impl<PreserveStorage> Formula ;
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/config.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/config.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/config.h	(revision 2476)
@@ -0,0 +1,36 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 4 -*-
+//
+// config.h: Rcpp R/C++ interface class library -- Rcpp configuration
+//
+// Copyright (C) 2010 - 2016  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RCPP__CONFIG_H
+#define RCPP__CONFIG_H
+
+#define Rcpp_Version(v,p,s) (((v) * 65536) + ((p) * 256) + (s))
+
+#define RcppDevVersion(maj, min, rev, dev)  (((maj)*1000000) + ((min)*10000) + ((rev)*100) + (dev))
+
+// the currently released version
+#define RCPP_VERSION Rcpp_Version(0,12,9)
+
+// the current source snapshot
+#define RCPP_DEV_VERSION RcppDevVersion(0,12,9,0)
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/WeakReference.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/WeakReference.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/WeakReference.h	(revision 2476)
@@ -0,0 +1,67 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// WeakReference.h: Rcpp R/C++ interface class library -- weak references
+//
+// Copyright (C) 2009 - 2013    Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_WeakReference_h
+#define Rcpp_WeakReference_h
+
+namespace Rcpp{
+
+    RCPP_API_CLASS(WeakReference_Impl) {
+    public:
+        RCPP_GENERATE_CTOR_ASSIGN(WeakReference_Impl)
+
+        WeakReference_Impl(){}
+
+        /**
+         * wraps a weak reference
+         *
+         * @param x presumably a SEXP of SEXTYPE WEAKREFSXP
+         *
+         * @throw not_compatible if x is not a weak reference
+         */
+        WeakReference_Impl( SEXP x){
+             if( TYPEOF(x) != WEAKREFSXP )
+                throw not_compatible( "not a weak reference" ) ;
+            Storage::set__(x);
+        }
+
+        /**
+         * Retrieve the key
+         */
+        SEXP key() const {
+            return R_WeakRefKey(Storage::get__()) ;
+        }
+
+        /**
+         * Retrieve the value
+         */
+        SEXP value() const {
+            return R_WeakRefValue(Storage::get__());
+        }
+
+        void update(SEXP){}
+
+    } ;
+
+    typedef WeakReference_Impl<PreserveStorage> WeakReference ;
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Rmath.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Rmath.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Rmath.h	(revision 2476)
@@ -0,0 +1,241 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Rmath.h: Rcpp R/C++ interface class library -- Wrappers for R's Rmath API
+//
+// Copyright (C) 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Rmath_h
+#define Rcpp_Rmath_h
+
+namespace R {
+
+    // see R's Rmath.h as well as Writing R Extension
+
+    /* Random Number Generators */
+    inline double norm_rand(void) 	{ return ::norm_rand(); }
+    inline double unif_rand(void)	{ return ::unif_rand(); }
+    inline double exp_rand(void)	{ return ::exp_rand(); }
+
+    /* Normal Distribution */
+    inline double dnorm(double x, double mu, double sigma, int lg)              { return ::Rf_dnorm4(x, mu, sigma, lg); }
+    inline double pnorm(double x, double mu, double sigma, int lt, int lg)      { return ::Rf_pnorm5(x, mu, sigma, lt, lg); }
+    inline double qnorm(double p, double mu, double sigma, int lt, int lg)      { return ::Rf_qnorm5(p, mu, sigma, lt, lg); }
+    inline double rnorm(double mu, double sigma)                                { return ::Rf_rnorm(mu, sigma); }
+    inline void	pnorm_both(double x, double *cum, double *ccum, int lt, int lg) { return ::Rf_pnorm_both(x, cum, ccum, lt, lg); }
+
+    /* Uniform Distribution */
+    inline double dunif(double x, double a, double b, int lg)		{ return ::Rf_dunif(x, a, b, lg); }
+    inline double punif(double x, double a, double b, int lt, int lg)   { return ::Rf_punif(x, a, b, lt, lg); }
+    inline double qunif(double p, double a, double b, int lt, int lg)   { return ::Rf_qunif(p, a, b, lt, lg); }
+    inline double runif(double a, double b)                             { return ::Rf_runif(a, b); }
+
+    /* Gamma Distribution */
+    inline double dgamma(double x, double shp, double scl, int lg)	   { return ::Rf_dgamma(x, shp, scl, lg); }
+    inline double pgamma(double x, double alp, double scl, int lt, int lg) { return ::Rf_pgamma(x, alp, scl, lt, lg); }
+    inline double qgamma(double p, double alp, double scl, int lt, int lg) { return ::Rf_qgamma(p, alp, scl, lt, lg); }
+    inline double rgamma(double a, double scl)                             { return ::Rf_rgamma(a, scl); }
+
+    inline double log1pmx(double x)                  { return ::Rf_log1pmx(x); }
+    inline double log1pexp(double x)                 { return ::log1pexp(x); }  // <-- ../nmath/plogis.c
+    inline double lgamma1p(double a)                 { return ::Rf_lgamma1p(a); }
+    inline double logspace_add(double lx, double ly) { return ::Rf_logspace_add(lx, ly); }
+    inline double logspace_sub(double lx, double ly) { return ::Rf_logspace_sub(lx, ly); }
+
+    /* Beta Distribution */
+    inline double dbeta(double x, double a, double b, int lg)         { return ::Rf_dbeta(x, a, b, lg); }
+    inline double pbeta(double x, double p, double q, int lt, int lg) { return ::Rf_pbeta(x, p, q, lt, lg); }
+    inline double qbeta(double a, double p, double q, int lt, int lg) { return ::Rf_qbeta(a, p, q, lt, lg); }
+    inline double rbeta(double a, double b)                           { return ::Rf_rbeta(a, b); }
+
+    /* Lognormal Distribution */
+    inline double dlnorm(double x, double ml, double sl, int lg)	 { return ::Rf_dlnorm(x, ml, sl, lg); }
+    inline double plnorm(double x, double ml, double sl, int lt, int lg) { return ::Rf_plnorm(x, ml, sl, lt, lg); }
+    inline double qlnorm(double p, double ml, double sl, int lt, int lg) { return ::Rf_qlnorm(p, ml, sl, lt, lg); }
+    inline double rlnorm(double ml, double sl)                           { return ::Rf_rlnorm(ml, sl); }
+
+    /* Chi-squared Distribution */
+    inline double dchisq(double x, double df, int lg)          { return ::Rf_dchisq(x, df, lg); }
+    inline double pchisq(double x, double df, int lt, int lg)  { return ::Rf_pchisq(x, df, lt, lg); }
+    inline double qchisq(double p, double df, int lt, int lg)  { return ::Rf_qchisq(p, df, lt, lg); }
+    inline double rchisq(double df)                            { return ::Rf_rchisq(df); }
+
+    /* Non-central Chi-squared Distribution */
+    inline double dnchisq(double x, double df, double ncp, int lg)          { return ::Rf_dnchisq(x, df, ncp, lg); }
+    inline double pnchisq(double x, double df, double ncp, int lt, int lg)  { return ::Rf_pnchisq(x, df, ncp, lt, lg); }
+    inline double qnchisq(double p, double df, double ncp, int lt, int lg)  { return ::Rf_qnchisq(p, df, ncp, lt, lg); }
+    inline double rnchisq(double df, double lb)                             { return ::Rf_rnchisq(df, lb); }
+
+    /* F Distibution */
+    inline double df(double x, double df1, double df2, int lg)		{ return ::Rf_df(x, df1, df2, lg); }
+    inline double pf(double x, double df1, double df2, int lt, int lg)	{ return ::Rf_pf(x, df1, df2, lt, lg); }
+    inline double qf(double p, double df1, double df2, int lt, int lg)	{ return ::Rf_qf(p, df1, df2, lt, lg); }
+    inline double rf(double df1, double df2)				{ return ::Rf_rf(df1, df2); }
+
+    /* Student t Distibution */
+    inline double dt(double x, double n, int lg)			{ return ::Rf_dt(x, n, lg); }
+    inline double pt(double x, double n, int lt, int lg)		{ return ::Rf_pt(x, n, lt, lg); }
+    inline double qt(double p, double n, int lt, int lg)		{ return ::Rf_qt(p, n, lt, lg); }
+    inline double rt(double n)						{ return ::Rf_rt(n); }
+
+    /* Binomial Distribution */
+    inline double dbinom(double x, double n, double p, int lg)	  	{ return ::Rf_dbinom(x, n, p, lg); }
+    inline double pbinom(double x, double n, double p, int lt, int lg)  { return ::Rf_pbinom(x, n, p, lt, lg); }
+    inline double qbinom(double p, double n, double m, int lt, int lg)  { return ::Rf_qbinom(p, n, m, lt, lg); }
+    inline double rbinom(double n, double p)				{ return ::Rf_rbinom(n, p); }
+
+    /* Multnomial Distribution */
+    inline void rmultinom(int n, double* prob, int k, int* rn)		{ return ::rmultinom(n, prob, k, rn); }
+
+    /* Cauchy Distribution */
+    inline double dcauchy(double x, double lc, double sl, int lg)		{ return ::Rf_dcauchy(x, lc, sl, lg); }
+    inline double pcauchy(double x, double lc, double sl, int lt, int lg)	{ return ::Rf_pcauchy(x, lc, sl, lt, lg); }
+    inline double qcauchy(double p, double lc, double sl, int lt, int lg)	{ return ::Rf_qcauchy(p, lc, sl, lt, lg); }
+    inline double rcauchy(double lc, double sl)					{ return ::Rf_rcauchy(lc, sl); }
+
+    /* Exponential Distribution */
+    inline double dexp(double x, double sl, int lg)		{ return ::Rf_dexp(x, sl, lg); }
+    inline double pexp(double x, double sl, int lt, int lg)	{ return ::Rf_pexp(x, sl, lt, lg); }
+    inline double qexp(double p, double sl, int lt, int lg)	{ return ::Rf_qexp(p, sl, lt, lg); }
+    inline double rexp(double sl)				{ return ::Rf_rexp(sl); }
+
+    /* Geometric Distribution */
+    inline double dgeom(double x, double p, int lg)		{ return ::Rf_dgeom(x, p, lg); }
+    inline double pgeom(double x, double p, int lt, int lg)	{ return ::Rf_pgeom(x, p, lt, lg); }
+    inline double qgeom(double p, double pb, int lt, int lg)	{ return ::Rf_qgeom(p, pb, lt, lg); }
+    inline double rgeom(double p)				{ return ::Rf_rgeom(p); }
+
+    /* Hypergeometric Distibution */
+    inline double dhyper(double x, double r, double b, double n, int lg)		{ return ::Rf_dhyper(x, r, b, n, lg); }
+    inline double phyper(double x, double r, double b, double n, int lt, int lg)	{ return ::Rf_phyper(x, r, b, n, lt, lg); }
+    inline double qhyper(double p, double r, double b, double n, int lt, int lg)	{ return ::Rf_qhyper(p, r, b, n, lt, lg); }
+    inline double rhyper(double r, double b, double n)					{ return ::Rf_rhyper(r, b, n); }
+
+    /* Negative Binomial Distribution */
+    inline double dnbinom(double x, double sz, double pb, int lg)		{ return ::Rf_dnbinom(x, sz, pb, lg); }
+    inline double pnbinom(double x, double sz, double pb, int lt, int lg)	{ return ::Rf_pnbinom(x, sz, pb, lt, lg); }
+    inline double qnbinom(double p, double sz, double pb, int lt, int lg)	{ return ::Rf_qnbinom(p, sz, pb, lt, lg); }
+    inline double rnbinom(double sz, double pb)					{ return ::Rf_rnbinom(sz, pb); }
+
+#if R_VERSION >= R_Version(3, 1, 2)
+    inline double dnbinom_mu(double x, double sz, double mu, int lg)		{ return ::Rf_dnbinom_mu(x, sz, mu, lg); }
+    inline double pnbinom_mu(double x, double sz, double mu, int lt, int lg)	{ return ::Rf_pnbinom_mu(x, sz, mu, lt, lg); }
+    inline double qnbinom_mu(double x, double sz, double mu, int lt, int lg)	{ return ::Rf_qnbinom_mu(x, sz, mu, lt, lg); }
+    //inline double rnbinom_mu(double sz, double mu)				{ return ::Rf_rnbinom_mu(sz, mu); }
+#endif
+
+    /* Poisson Distribution */
+    inline double dpois(double x, double lb, int lg)		{ return ::Rf_dpois(x, lb, lg); }
+    inline double ppois(double x, double lb, int lt, int lg)	{ return ::Rf_ppois(x, lb, lt, lg); }
+    inline double qpois(double p, double lb, int lt, int lg)	{ return ::Rf_qpois(p, lb, lt, lg); }
+    inline double rpois(double mu)				{ return ::Rf_rpois(mu); }
+
+    /* Weibull Distribution */
+    inline double dweibull(double x, double sh, double sl, int lg)		{ return ::Rf_dweibull(x, sh, sl, lg); }
+    inline double pweibull(double x, double sh, double sl, int lt, int lg)	{ return ::Rf_pweibull(x, sh, sl, lt, lg); }
+    inline double qweibull(double p, double sh, double sl, int lt, int lg)	{ return ::Rf_qweibull(p, sh, sl, lt, lg); }
+    inline double rweibull(double sh, double sl)				{ return ::Rf_rweibull(sh, sl); }
+
+    /* Logistic Distribution */
+    inline double dlogis(double x, double lc, double sl, int lg)		{ return ::Rf_dlogis(x, lc, sl, lg); }
+    inline double plogis(double x, double lc, double sl, int lt, int lg)	{ return ::Rf_plogis(x, lc, sl, lt, lg); }
+    inline double qlogis(double p, double lc, double sl, int lt, int lg)	{ return ::Rf_qlogis(p, lc, sl, lt, lg); }
+    inline double rlogis(double lc, double sl)					{ return ::Rf_rlogis(lc, sl); }
+
+    /* Non-central Beta Distribution */
+    inline double dnbeta(double x, double a, double b, double ncp, int lg)		{ return ::Rf_dnbeta(x, a, b, ncp, lg); }
+    inline double pnbeta(double x, double a, double b, double ncp, int lt, int lg)	{ return ::Rf_pnbeta(x, a, b, ncp, lt, lg); }
+    inline double qnbeta(double p, double a, double b, double ncp, int lt, int lg)	{ return ::Rf_qnbeta(p, a, b, ncp, lt, lg); }
+    inline double rnbeta(double a, double b, double np)					{ return ::Rf_rnbeta(a, b, np); }
+
+    /* Non-central F Distribution */
+    inline double dnf(double x, double df1, double df2, double ncp, int lg)		{ return ::Rf_dnf(x, df1, df2, ncp, lg); }
+    inline double pnf(double x, double df1, double df2, double ncp, int lt, int lg)	{ return ::Rf_pnf(x, df1, df2, ncp, lt, lg); }
+    inline double qnf(double p, double df1, double df2, double ncp, int lt, int lg)	{ return ::Rf_qnf(p, df1, df2, ncp, lt, lg); }
+
+    /* Non-central Student t Distribution */
+    inline double dnt(double x, double df, double ncp, int lg)		{ return ::Rf_dnt(x, df, ncp, lg); }
+    inline double pnt(double x, double df, double ncp, int lt, int lg)	{ return ::Rf_pnt(x, df, ncp, lt, lg); }
+    inline double qnt(double p, double df, double ncp, int lt, int lg)	{ return ::Rf_qnt(p, df, ncp, lt, lg); }
+
+    /* Studentized Range Distribution */
+    inline double ptukey(double q, double rr, double cc, double df, int lt, int lg)	{ return ::Rf_ptukey(q, rr, cc, df, lt, lg); }
+    inline double qtukey(double p, double rr, double cc, double df, int lt, int lg)	{ return ::Rf_qtukey(p, rr, cc, df, lt, lg); }
+
+    /* Wilcoxon Rank Sum Distribution */
+    inline double dwilcox(double x, double m, double n, int lg)		{ return ::Rf_dwilcox(x, m, n, lg); }
+    inline double pwilcox(double q, double m, double n, int lt, int lg)	{ return ::Rf_pwilcox(q, m, n, lt, lg); }
+    inline double qwilcox(double x, double m, double n, int lt, int lg)	{ return ::Rf_qwilcox(x, m, n, lt, lg); }
+    inline double rwilcox(double m, double n)				{ return ::Rf_rwilcox(m, n); }
+
+    /* Wilcoxon Signed Rank Distribution */
+    inline double dsignrank(double x, double n, int lg)			{ return ::Rf_dsignrank(x, n, lg); }
+    inline double psignrank(double x, double n, int lt, int lg)		{ return ::Rf_psignrank(x, n, lt, lg); }
+    inline double qsignrank(double x, double n, int lt, int lg)		{ return ::Rf_qsignrank(x, n, lt, lg); }
+    inline double rsignrank(double n)					{ return ::Rf_rsignrank(n); }
+
+    /* Gamma and Related Functions */
+    inline double gammafn(double x)			{ return ::Rf_gammafn(x); }
+    inline double lgammafn(double x)			{ return ::Rf_lgammafn(x); }
+    inline double lgammafn_sign(double x, int *sgn)	{ return ::Rf_lgammafn_sign(x, sgn); }
+    inline void   dpsifn(double x, int n, int kode, int m, double *ans, int *nz, int *ierr)	{ return ::Rf_dpsifn(x, n, kode, m, ans, nz, ierr); }
+    inline double psigamma(double x, double deriv)	{ return ::Rf_psigamma(x, deriv); }
+    inline double digamma(double x)	{ return ::Rf_digamma(x); }
+    inline double trigamma(double x)	{ return ::Rf_trigamma(x); }
+    inline double tetragamma(double x)	{ return ::Rf_tetragamma(x); }
+    inline double pentagamma(double x)	{ return ::Rf_pentagamma(x); }
+
+    inline double beta(double a, double b)	{ return ::Rf_beta(a, b); }
+    inline double lbeta(double a, double b)	{ return ::Rf_lbeta(a, b); }
+
+    inline double choose(double n, double k)	{ return ::Rf_choose(n, k); }
+    inline double lchoose(double n, double k)	{ return ::Rf_lchoose(n, k); }
+
+    /* Bessel Functions */
+    inline double bessel_i(double x, double al, double ex)	{ return ::Rf_bessel_i(x, al, ex); }
+    inline double bessel_j(double x, double al)			{ return ::Rf_bessel_j(x, al); }
+    inline double bessel_k(double x, double al, double ex)	{ return ::Rf_bessel_k(x, al, ex); }
+    inline double bessel_y(double x, double al)			{ return ::Rf_bessel_y(x, al); }
+    inline double bessel_i_ex(double x, double al, double ex, double *bi)	{ return ::Rf_bessel_i_ex(x, al, ex, bi); }
+    inline double bessel_j_ex(double x, double al, double *bj)			{ return ::Rf_bessel_j_ex(x, al, bj); }
+    inline double bessel_k_ex(double x, double al, double ex, double *bk)	{ return ::Rf_bessel_k_ex(x, al, ex, bk); }
+    inline double bessel_y_ex(double x, double al, double *by)			{ return ::Rf_bessel_y_ex(x, al, by); }
+
+    /* General Support Functions */
+#ifndef HAVE_HYPOT
+    inline double hypot(double a, double b)	{ return ::Rf_hypot(a, b); }
+#endif
+    inline double pythag(double a, double b)	{ return ::Rf_pythag(a, b); }
+#ifndef HAVE_EXPM1
+    inline double expm1(double x); /* = exp(x)-1 {care for small x} */	{ return ::Rf_expm1(x); }
+#endif
+#ifndef HAVE_LOG1P
+    inline double log1p(double x); /* = log(1+x) {care for small x} */ { return ::Rf_log1p(x); }
+#endif
+    inline int imax2(int x, int y)		{ return ::Rf_imax2(x, y); }
+    inline int imin2(int x, int y)		{ return ::Rf_imin2(x, y); }
+    inline double fmax2(double x, double y)	{ return ::Rf_fmax2(x, y); }
+    inline double fmin2(double x, double y)	{ return ::Rf_fmin2(x, y); }
+    inline double sign(double x)		{ return ::Rf_sign(x); }
+    inline double fprec(double x, double dg)	{ return ::Rf_fprec(x, dg); }
+    inline double fround(double x, double dg)	{ return ::Rf_fround(x, dg); }
+    inline double fsign(double x, double y)	{ return ::Rf_fsign(x, y); }
+    inline double ftrunc(double x)		{ return ::Rf_ftrunc(x); }
+
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Promise.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Promise.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Promise.h	(revision 2476)
@@ -0,0 +1,79 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Promise.h: Rcpp R/C++ interface class library -- promises (PROMSXP)
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Promise_h
+#define Rcpp_Promise_h
+
+namespace Rcpp{
+
+    RCPP_API_CLASS(Promise_Impl) {
+    public:
+        RCPP_GENERATE_CTOR_ASSIGN(Promise_Impl)
+
+        Promise_Impl( SEXP x){
+            if( TYPEOF(x) != PROMSXP)
+                throw not_compatible("not a promise") ;
+            Storage::set__(x) ;
+        }
+
+        /**
+         * Return the result of the PRSEEN macro
+         */
+        int seen() const {
+            return PRSEEN(Storage::get__());
+        }
+
+        /**
+         * Return the result of the PRVALUE macro on the promise
+         */
+        SEXP value() const{
+            SEXP val = PRVALUE( Storage::get__() ) ;
+            if( val == R_UnboundValue ) throw unevaluated_promise() ;
+            return val ;
+        }
+
+        bool was_evaluated() const {
+            return PRVALUE(Storage::get__()) != R_UnboundValue ;
+        }
+
+        /**
+         * The promise expression: PRCODE
+         */
+        ExpressionVector expression() const {
+            return ExpressionVector(PRCODE( Storage::get__() )) ;
+        }
+
+        /**
+         * The promise environment : PRENV
+         */
+        Environment environment() const {
+            return Environment( PRENV(Storage::get__() ) ) ;
+        }
+
+        inline void update(SEXP data){}
+
+    } ;
+
+    typedef Promise_Impl<PreserveStorage> Promise ;
+
+} // namespace
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/grow.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/grow.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/grow.h	(revision 2476)
@@ -0,0 +1,77 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// grow.h: Rcpp R/C++ interface class library -- grow a pairlist
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_grow_h
+#define Rcpp_grow_h
+
+#include <RcppCommon.h>
+#include <Rcpp/Named.h>
+
+namespace Rcpp {
+
+    inline SEXP pairlist() {
+        return R_NilValue ;
+    }
+
+    inline SEXP grow( SEXP head, SEXP tail ) {
+        Shield<SEXP> x( head ) ;
+        Shield<SEXP> res( Rf_cons( x, tail ) ) ;
+        return res ;
+    }
+
+    namespace internal{
+
+        template <typename T>
+        inline SEXP grow__dispatch( ::Rcpp::traits::false_type, const T& head, SEXP tail ){
+            return grow( wrap(head), tail ) ;
+        }
+
+        template <typename T>
+        inline SEXP grow__dispatch( ::Rcpp::traits::true_type, const T& head, SEXP tail ){
+            Shield<SEXP> y( wrap( head.object) ) ;
+            Shield<SEXP> x( Rf_cons( y , tail) ) ;
+            SEXP headNameSym = ::Rf_install( head.name.c_str() );
+            SET_TAG( x, headNameSym );
+            return x;
+        }
+
+    } // internal
+
+    /**
+     * grows a pairlist. First wrap the head into a SEXP, then
+     * grow the tail pairlist
+     */
+    template <typename T>
+    SEXP grow(const T& head, SEXP tail) {
+        Shield<SEXP> y(tail);
+        return internal::grow__dispatch(typename traits::is_named<T>::type(), head, y);
+    }
+
+    inline SEXP grow( const char* head, SEXP tail ) {
+        Shield<SEXP> y(tail);
+        return grow(Rf_mkString(head), y);
+    }
+
+    #include <Rcpp/generated/grow__pairlist.h>
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Dimension.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Dimension.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Dimension.h	(revision 2476)
@@ -0,0 +1,77 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Dimension.h: Rcpp R/C++ interface class library -- dimensions
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Dimension_h
+#define Rcpp_Dimension_h
+
+namespace Rcpp{
+
+    class Dimension {
+    public:
+	    typedef std::vector<int>::reference reference ;
+	    typedef std::vector<int>::const_reference const_reference ;
+
+	    Dimension() : dims(){}
+
+	    Dimension(SEXP dims) ;
+
+	    Dimension( const Dimension& other ) : dims(other.dims){}
+	    Dimension& operator=( const Dimension& other ) {
+	        if( *this != other )
+	            dims = other.dims ;
+	        return *this ;
+	    }
+	    Dimension(const size_t& n1) : dims(1){
+	        dims[0] = n1 ;
+	    }
+	    Dimension(const size_t& n1, const size_t& n2) : dims(2){
+	        dims[0] = n1 ;
+	        dims[1] = n2 ;
+	    }
+	    Dimension(const size_t& n1, const size_t& n2, const size_t& n3) : dims(3){
+	        dims[0] = n1 ;
+	        dims[1] = n2 ;
+	        dims[2] = n3 ;
+	    }
+	    operator SEXP() const ;
+
+	    inline int size() const {
+	        return (int) dims.size() ;
+	    }
+	    inline R_xlen_t prod() const {
+	        return std::accumulate( dims.begin(), dims.end(), static_cast<R_xlen_t>(1), std::multiplies<R_xlen_t>() );
+	    }
+
+	    inline reference operator[](int i){
+	        if( i < 0 || i>=static_cast<int>(dims.size()) ) throw std::range_error("index out of bounds") ;
+            return dims[i] ;
+	    }
+	    inline const_reference operator[](int i) const{
+	        if( i < 0 || i>=static_cast<int>(dims.size()) ) throw std::range_error("index out of bounds") ;
+	        return dims[i] ;
+	    }
+
+	private:
+	    std::vector<int> dims;
+    };
+
+}
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Module.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Module.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Module.h	(revision 2476)
@@ -0,0 +1,460 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Module.h: Rcpp R/C++ interface class library -- Rcpp modules
+//
+// Copyright (C) 2010 - 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_h
+#define Rcpp_Module_h
+
+#include <Rcpp/config.h>
+
+namespace Rcpp{
+
+    namespace internal{
+
+        template <typename FROM, typename TO>
+        std::string get_converter_name(const char* from, const char* to){
+            std::string method_name( ".___converter___" ) ;
+            typedef typename Rcpp::traits::r_type_traits< typename Rcpp::traits::remove_const_and_reference<FROM>::type >::r_category FROM_CATEGORY ;
+            if( Rcpp::traits::same_type< FROM_CATEGORY, ::Rcpp::traits::r_type_module_object_tag >::value ){
+                method_name += "Rcpp_" ;
+            }
+            method_name += from ;
+            method_name += "___" ;
+            typedef typename Rcpp::traits::r_type_traits< typename Rcpp::traits::remove_const_and_reference<TO>::type >::r_category TO_CATEGORY ;
+            if( Rcpp::traits::same_type< TO_CATEGORY, ::Rcpp::traits::r_type_module_object_tag >::value ){
+                method_name += "Rcpp_" ;
+            }
+            method_name += to ;
+
+            return method_name ;
+        }
+
+
+   }
+
+    class CppClass ;
+    class CppObject ;
+
+    template <typename T>
+    class result {
+    public:
+        result( T* ptr_ ) : ptr(ptr_){}
+        operator T*(){ return ptr ; }
+    private:
+        T* ptr;
+    } ;
+
+    template <typename T>
+    class object {
+    public:
+        typedef T object_type ;
+        object( T* ptr_ ) : ptr(ptr_){}
+        operator T*(){ return ptr ; }
+        T* operator->(){ return ptr ; }
+        T& operator&(){ return *ptr ; }
+        T* ptr ;
+    } ;
+
+    namespace internal {
+        template <typename Class>
+        SEXP make_new_object( Class* ptr ){
+            Rcpp::XPtr<Class> xp( ptr, true ) ;
+            Function maker = Environment::Rcpp_namespace()[ "cpp_object_maker"] ;
+            return maker( typeid(Class).name() , xp ) ;
+        }
+    }
+
+}
+
+#include <Rcpp/module/CppFunction.h>
+#include <Rcpp/module/get_return_type.h>
+#include <Rcpp/module/Module_generated_get_signature.h>
+
+    // templates CppFunction0, ..., CppFunction65
+#include <Rcpp/module/Module_generated_CppFunction.h>
+#include <Rcpp/module/class_Base.h>
+#include <Rcpp/module/Module.h>
+
+namespace Rcpp{
+
+    template <typename Class>
+    class CppMethod {
+    public:
+        typedef Rcpp::XPtr<Class> XP ;
+
+        CppMethod() {}
+        virtual SEXP operator()(Class* object, SEXP* args) { return R_NilValue ; }
+        virtual ~CppMethod(){}
+        virtual int nargs(){ return 0 ; }
+        virtual bool is_void(){ return false ; }
+        virtual bool is_const(){ return false ; }
+        virtual void signature(std::string& s, const char* name ){ s = name ; }
+    } ;
+
+    template <typename Class, typename Parent>
+    class CppInheritedMethod : public CppMethod<Class> {
+    public:
+        typedef Rcpp::XPtr<Class> XP ;
+        typedef CppMethod<Parent> ParentMethod ;
+
+        CppInheritedMethod( ParentMethod* parent_method_pointer_ ) :
+            parent_method_pointer(parent_method_pointer_)
+        {}
+
+        SEXP operator()( Class* object, SEXP* args){
+			return (*parent_method_pointer)( (Parent*)object, args ) ;
+		}
+		inline int nargs(){ return parent_method_pointer->nargs() ; }
+		inline bool is_void(){ return parent_method_pointer->is_void() ; }
+		inline bool is_const(){ return parent_method_pointer->is_const() ; }
+		inline void signature(std::string& s, const char* name){ return parent_method_pointer->signature(s, name) ; }
+
+    private:
+        ParentMethod* parent_method_pointer ;
+    } ;
+
+#include <Rcpp/module/Module_generated_ctor_signature.h>
+#include <Rcpp/module/Module_generated_Constructor.h>
+#include <Rcpp/module/Module_generated_Factory.h>
+
+#include <Rcpp/module/Module_generated_class_signature.h>
+
+    typedef bool (*ValidConstructor)(SEXP*,int) ;
+    typedef bool (*ValidMethod)(SEXP*,int) ;
+
+    template <typename Class>
+    class SignedConstructor {
+    public:
+
+        SignedConstructor(
+                          Constructor_Base<Class>* ctor_,
+                          ValidConstructor valid_,
+                          const char* doc
+                           ) : ctor(ctor_), valid(valid_), docstring(doc == 0 ? "" : doc){}
+
+        Constructor_Base<Class>* ctor ;
+        ValidConstructor valid ;
+        std::string docstring ;
+
+        inline int nargs(){ return ctor->nargs() ; }
+        inline void signature(std::string& buffer, const std::string& class_name){
+            ctor->signature(buffer, class_name) ;
+        }
+    } ;
+
+    template <typename Class>
+    class SignedFactory {
+    public:
+
+        SignedFactory(
+                          Factory_Base<Class>* fact_,
+                          ValidConstructor valid_,
+                          const char* doc
+                           ) : fact(fact_), valid(valid_), docstring(doc == 0 ? "" : doc){}
+
+        Factory_Base<Class>* fact ;
+        ValidConstructor valid ;
+        std::string docstring ;
+
+        inline int nargs(){ return fact->nargs() ; }
+        inline void signature(std::string& buffer, const std::string& class_name){
+            fact->signature(buffer, class_name) ;
+        }
+    } ;
+
+
+    template <typename Class>
+    class SignedMethod {
+    public:
+        typedef CppMethod<Class> METHOD ;
+        SignedMethod( METHOD* m, ValidMethod valid_, const char* doc ) : method(m), valid(valid_), docstring(doc == 0 ? "" : doc) {}
+
+        METHOD* method ;
+        ValidMethod valid ;
+        std::string docstring ;
+
+        inline int nargs(){ return method->nargs() ; }
+        inline bool is_void(){ return method->is_void() ; }
+        inline bool is_const(){ return method->is_const() ; }
+        inline void signature(std::string& s, const char* name){
+            method->signature(s, name);
+        }
+
+    } ;
+
+    template <typename Class>
+    class S4_CppConstructor : public Reference {
+        typedef Reference Base;
+    public:
+        typedef XPtr<class_Base> XP_Class ;
+        typedef Reference::Storage Storage ;
+
+        S4_CppConstructor( SignedConstructor<Class>* m, const XP_Class& class_xp, const std::string& class_name, std::string& buffer ) : Reference( "C++Constructor" ){
+            RCPP_DEBUG( "S4_CppConstructor( SignedConstructor<Class>* m, SEXP class_xp, const std::string& class_name, std::string& buffer" ) ;
+            field( "pointer" )       = Rcpp::XPtr< SignedConstructor<Class> >( m, false ) ;
+            field( "class_pointer" ) = class_xp ;
+            field( "nargs" )         = m->nargs() ;
+            m->signature( buffer, class_name ) ;
+            field( "signature" )     = buffer ;
+            field( "docstring" )     = m->docstring ;
+        }
+
+        RCPP_CTOR_ASSIGN_WITH_BASE(S4_CppConstructor)
+
+    } ;
+
+    template <typename Class>
+    class S4_CppOverloadedMethods : public Rcpp::Reference {
+        typedef Rcpp::Reference Base;
+    public:
+        typedef Rcpp::XPtr<class_Base> XP_Class ;
+        typedef SignedMethod<Class> signed_method_class ;
+        typedef std::vector<signed_method_class*> vec_signed_method ;
+
+        S4_CppOverloadedMethods( vec_signed_method* m, const XP_Class& class_xp, const char* name, std::string& buffer ) : Reference( "C++OverloadedMethods" ){
+            int n = m->size() ;
+            Rcpp::LogicalVector voidness(n), constness(n) ;
+            Rcpp::CharacterVector docstrings(n), signatures(n) ;
+            Rcpp::IntegerVector nargs(n) ;
+            signed_method_class* met ;
+            for( int i=0; i<n; i++){
+                met = m->at(i) ;
+                nargs[i] = met->nargs() ;
+                voidness[i] = met->is_void() ;
+                constness[i] = met->is_const() ;
+                docstrings[i] = met->docstring ;
+                met->signature(buffer, name) ;
+                signatures[i] = buffer ;
+            }
+
+            field( "pointer" )       = Rcpp::XPtr< vec_signed_method >( m, false ) ;
+            field( "class_pointer" ) = class_xp ;
+            field( "size" )          = n ;
+            field( "void" )          = voidness ;
+            field( "const" )         = constness ;
+            field( "docstrings" )    = docstrings ;
+            field( "signatures" )    = signatures ;
+            field( "nargs" )         = nargs ;
+
+        }
+
+        RCPP_CTOR_ASSIGN_WITH_BASE(S4_CppOverloadedMethods)
+
+    } ;
+
+#include <Rcpp/module/Module_generated_CppMethod.h>
+#include <Rcpp/module/Module_generated_Pointer_CppMethod.h>
+
+    template <typename Class>
+    class CppProperty {
+    public:
+        typedef Rcpp::XPtr<Class> XP ;
+
+        CppProperty(const char* doc = 0) : docstring( doc == 0 ? "" : doc ) {} ;
+        virtual ~CppProperty(){} ;
+        virtual SEXP get(Class* ) { throw std::range_error("cannot retrieve property"); }
+        virtual void set(Class*, SEXP) { throw std::range_error("cannot set property"); }
+        virtual bool is_readonly(){ return false; }
+        virtual std::string get_class(){ return ""; }
+
+        std::string docstring ;
+    } ;
+
+    template <typename Class, typename Parent>
+    class CppInheritedProperty : public CppProperty<Class> {
+    public:
+        typedef CppProperty<Class> Base ;
+
+        CppInheritedProperty( CppProperty<Parent>* parent_property_ ) :
+            Base( parent_property_->docstring.c_str() ),
+            parent_property(parent_property_)
+        {}
+
+        SEXP get( Class* obj ){ return parent_property->get( (Parent*)obj ) ; }
+        void set( Class* obj, SEXP s) { parent_property->set( (Parent*)obj, s ) ; }
+        bool is_readonly(){ return parent_property->is_readonly() ; }
+        std::string get_class(){ return parent_property->get_class() ; }
+
+    private:
+        CppProperty<Parent>* parent_property ;
+    } ;
+
+    template <typename Class>
+    class CppFinalizer{
+    public:
+        CppFinalizer(){} ;
+        virtual void run(Class* ){} ;
+    } ;
+
+    template <typename Class>
+    class FunctionFinalizer : public CppFinalizer<Class> {
+    public:
+        typedef void (*Pointer)(Class*) ;
+        FunctionFinalizer( Pointer p ) : finalizer(p){} ;
+
+        virtual void run(Class* object){
+            finalizer( object ) ;
+        }
+
+    private:
+        Pointer finalizer ;
+    } ;
+
+    template <typename Class>
+    class S4_field : public Rcpp::Reference {
+        typedef Rcpp::Reference Base;
+    public:
+        typedef XPtr<class_Base> XP_Class ;
+        S4_field( CppProperty<Class>* p, const XP_Class& class_xp ) : Reference( "C++Field" ){
+            RCPP_DEBUG( "S4_field( CppProperty<Class>* p, const XP_Class& class_xp )" )
+            field( "read_only" )     = p->is_readonly() ;
+            field( "cpp_class" )     = p->get_class();
+            field( "pointer" )       = Rcpp::XPtr< CppProperty<Class> >( p, false ) ;
+            field( "class_pointer" ) = class_xp ;
+            field( "docstring" )     = p->docstring ;
+        }
+
+        RCPP_CTOR_ASSIGN_WITH_BASE(S4_field)
+
+    } ;
+
+#include <Rcpp/module/Module_Property.h>
+
+#include <Rcpp/module/class.h>
+
+    template <typename Enum, typename Parent>
+    class enum_ {
+        public:
+            typedef enum_<Enum,Parent> self ;
+
+            enum_( const char* name_ ) :
+                name(name_), values(), parent_typeinfo_name( typeid(Parent).name() ){
+                }
+            ~enum_(){
+                Rcpp::Module* module = getCurrentScope() ;
+                module->add_enum( parent_typeinfo_name, name, values ) ;
+            }
+
+            self& value( const char* name_, Enum value_ ){
+                values.insert( PAIR( name_, static_cast<int>( value_ ) ) ) ;
+                return *this ;
+            }
+
+        private:
+
+            std::string name ;
+            typedef std::map< std::string, int > MAP ;
+            typedef MAP::value_type PAIR ;
+            MAP values ;
+            std::string parent_typeinfo_name ;
+
+    } ;
+}
+
+// function factories
+#include <Rcpp/module/Module_generated_function.h>
+
+namespace Rcpp {
+
+    template <typename FROM, typename TO>
+    void converter( const char* from, const char* to, TO (*fun)(FROM), const char* docstring = 0 ){
+        std::string fun_name = internal::get_converter_name<FROM,TO>( from, to ) ;
+        function( fun_name.c_str(), fun, docstring ) ;
+    }
+
+    class CppClass : public S4{
+        typedef S4 Base;
+    public:
+        typedef XPtr<class_Base> XP_Class ;
+        typedef Rcpp::XPtr<Rcpp::Module> XP ;
+        CppClass( SEXP x) : S4(x){};
+
+        CppClass( Module* p, class_Base* cl, std::string& buffer ) : S4("C++Class") {
+	        XP_Class clxp( cl, false, R_NilValue, R_NilValue ) ;
+	        slot( "module"  ) = XP( p, false ) ;
+	        slot( "pointer" ) = clxp ;
+
+	        buffer = "Rcpp_" ;
+	        buffer += cl->name ;
+	        slot( ".Data" ) = buffer ;
+
+	        slot( "fields" )      = cl->fields( clxp ) ;
+
+	        slot( "methods" )     = cl->getMethods( clxp, buffer ) ;
+	        slot( "constructors") = cl->getConstructors( clxp, buffer ) ;
+	        slot( "docstring"   ) = cl->docstring ;
+	        slot( "typeid" )      = cl->get_typeinfo_name() ;
+	        slot( "enums"  )      = cl->enums ;
+	        slot( "parents" )     = cl->parents ;
+	    }
+
+	    RCPP_CTOR_ASSIGN_WITH_BASE(CppClass)
+
+    } ;
+
+    class CppObject : public S4{
+        typedef S4 Base;
+    public:
+        typedef Rcpp::XPtr<Rcpp::Module> XP ;
+        CppObject( Module* p, class_Base* clazz, SEXP xp ) : S4("C++Object") {
+            slot( "module" )   = XP( p, false ) ;
+            slot( "cppclass" ) = Rcpp::XPtr<class_Base>( clazz, false ) ;
+            slot( "pointer" )  = xp ;
+        }
+        RCPP_CTOR_ASSIGN_WITH_BASE(CppObject)
+    } ;
+
+}
+
+#define RCPP_MODULE_BOOT(name) _rcpp_module_boot_##name
+
+#define RCPP_MODULE(name)                                               \
+    void _rcpp_module_##name##_init() ;                                 \
+    static Rcpp::Module _rcpp_module_##name( # name ) ;                 \
+    extern "C" SEXP _rcpp_module_boot_##name(){                         \
+        ::setCurrentScope( & _rcpp_module_##name ) ;                    \
+        _rcpp_module_##name##_init( ) ;                                 \
+        Rcpp::XPtr<Rcpp::Module> mod_xp(& _rcpp_module_##name , false); \
+        ::setCurrentScope( 0 ) ;                                        \
+        return mod_xp ;                                                 \
+    }                                                                   \
+    void _rcpp_module_##name##_init()
+
+// silly little dance to suppress a 'defined but not used variable' warning
+#ifdef __GNUC__
+#define VARIABLE_IS_NOT_USED __attribute__ ((unused))
+#else
+#define VARIABLE_IS_NOT_USED
+#endif
+
+// static variable to hold Rf_install symbol to prevent it from being gc'ed
+static VARIABLE_IS_NOT_USED SEXP moduleSym = NULL;
+
+// helper macro to cache the result of Rf_install("Module"): once
+// it is allocated and in the symbol table it is safe from gc
+#define GET_MODULE_SYM    ( moduleSym == NULL ? moduleSym = Rf_install("Module") : moduleSym )
+
+// this macro is called by code wanting to load a module -- see RInside's rinside_module_sample0.cpp
+#define LOAD_RCPP_MODULE(NAME) \
+    Shield<SEXP> __load_module_call__( Rf_lang2( GET_MODULE_SYM, _rcpp_module_boot_##NAME() ); \
+    Rcpp_eval(__load_module_call__), R_GlobalEnv );
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/barrier.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/barrier.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/barrier.h	(revision 2476)
@@ -0,0 +1,37 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// barrier.h: Rcpp R/C++ interface class library -- crossin the write barrier
+//
+// Copyright (C) 2010 - 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__barrier__h
+#define Rcpp__barrier__h
+
+SEXP get_string_elt(SEXP, R_xlen_t) ;
+const char* char_get_string_elt(SEXP, R_xlen_t) ;
+void set_string_elt(SEXP, R_xlen_t, SEXP) ;
+void char_set_string_elt(SEXP, R_xlen_t, const char*) ;
+SEXP* get_string_ptr(SEXP) ;
+
+SEXP get_vector_elt(SEXP, R_xlen_t) ;
+void set_vector_elt(SEXP, R_xlen_t, SEXP ) ;
+SEXP* get_vector_ptr(SEXP) ;
+const char* char_nocheck( SEXP ) ;
+void* dataptr(SEXP) ;
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/print.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/print.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/print.h	(revision 2476)
@@ -0,0 +1,38 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Copyright (C) 2015 - 2016  Dirk Eddelbuettel
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RCPP_PRINT_H
+#define RCPP_PRINT_H
+
+namespace Rcpp {
+
+inline void print(SEXP s) {
+    Rf_PrintValue(s);           // defined in Rinternals.h
+}
+
+inline void warningcall(SEXP call, const std::string & s) {
+    Rf_warningcall(call, s.c_str());
+}
+
+// also note that warning() is defined in file exceptions.h
+
+}
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/XPtr.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/XPtr.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/XPtr.h	(revision 2476)
@@ -0,0 +1,186 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// XPtr.h: Rcpp R/C++ interface class library -- smart external pointers
+//
+// Copyright (C) 2009 - 2013	Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_XPtr_h
+#define Rcpp_XPtr_h
+
+#include <RcppCommon.h>
+
+namespace Rcpp{
+
+template <typename T>
+void standard_delete_finalizer(T* obj){
+    delete obj ;
+}
+
+template <typename T, void Finalizer(T*) >
+void finalizer_wrapper(SEXP p){
+    if( TYPEOF(p) == EXTPTRSXP ){
+        T* ptr = (T*) R_ExternalPtrAddr(p) ;
+        RCPP_DEBUG_3( "finalizer_wrapper<%s>(SEXP p = <%p>). ptr = %p", DEMANGLE(T), p, ptr  )
+        Finalizer(ptr) ;
+    }
+}
+
+template <
+    typename T,
+    template <class> class StoragePolicy = PreserveStorage,
+    void Finalizer(T*) = standard_delete_finalizer<T>
+>
+class XPtr :
+    public StoragePolicy< XPtr<T,StoragePolicy, Finalizer> >,
+    public SlotProxyPolicy< XPtr<T,StoragePolicy, Finalizer> >,
+    public AttributeProxyPolicy< XPtr<T,StoragePolicy, Finalizer> >,
+    public TagProxyPolicy< XPtr<T,StoragePolicy, Finalizer> >,
+    public ProtectedProxyPolicy< XPtr<T,StoragePolicy, Finalizer> >,
+    public RObjectMethods< XPtr<T,StoragePolicy, Finalizer> >
+{
+public:
+
+    typedef StoragePolicy<XPtr> Storage ;
+
+    /**
+     * constructs a XPtr wrapping the external pointer (EXTPTRSXP SEXP)
+     *
+     * @param xp external pointer to wrap
+     */
+    explicit XPtr(SEXP x, SEXP tag = R_NilValue, SEXP prot = R_NilValue) {
+        if( TYPEOF(x) != EXTPTRSXP )
+            throw ::Rcpp::not_compatible( "expecting an external pointer" ) ;
+        Storage::set__(x) ;
+        R_SetExternalPtrTag( x, tag ) ;
+        R_SetExternalPtrProtected( x, prot ) ;
+    } ;
+
+    /**
+     * creates a new external pointer wrapping the dumb pointer p.
+     *
+     * @param p dumb pointer to some object
+     * @param set_delete_finalizer if set to true, a finalizer will
+     *        be registered for the external pointer. The finalizer
+     *        is called when the xp is garbage collected. The finalizer
+     *        is merely a call to the delete operator or the pointer
+     *        so you need to make sure the pointer can be "delete" d
+     *        this way (has to be a C++ object)
+     */
+    explicit XPtr(T* p, bool set_delete_finalizer = true, SEXP tag = R_NilValue, SEXP prot = R_NilValue){
+        RCPP_DEBUG_2( "XPtr(T* p = <%p>, bool set_delete_finalizer = %s, SEXP tag = R_NilValue, SEXP prot = R_NilValue)", p, ( set_delete_finalizer ? "true" : "false" ) )
+        Storage::set__( R_MakeExternalPtr( (void*)p , tag, prot) ) ;
+        if( set_delete_finalizer ){
+            setDeleteFinalizer() ;
+        }
+    }
+
+    XPtr( const XPtr& other ) {
+        Storage::copy__(other) ;
+    }
+
+    XPtr& operator=(const XPtr& other){
+    	    Storage::copy__(other) ;
+    	    return *this ;
+    }
+
+    /**
+     * Typesafe accessor for underlying pointer (use checked_get
+     * if you want an exception thrown if the pointer is NULL)
+     */
+    inline T* get() const {
+        return (T*)(R_ExternalPtrAddr( Storage::get__() ));
+    }
+
+    /**
+     * Boolean operator wrapper for get() using the "safe bool idiom", see:
+     * http://www.boost.org/doc/libs/1_57_0/boost/smart_ptr/detail/operator_bool.hpp
+     */
+    typedef void (*unspecified_bool_type)();
+    static void unspecified_bool_true() {}
+    operator unspecified_bool_type() const
+    {
+        return get() == NULL ? 0 : unspecified_bool_true;
+    }
+    bool operator!() const
+    {
+        return get() == NULL;
+    }
+
+    /**
+     * Access underlying pointer throwing an exception if the ptr is NULL
+     */
+    inline T* checked_get() const {
+        T* ptr = get();
+        if (ptr == NULL)
+            throw ::Rcpp::exception("external pointer is not valid" ) ;
+        return ptr;
+    }
+
+    /**
+     * Returns a reference to the object wrapped. This allows this
+     * object to look and feel like a dumb pointer to T
+     */
+    T& operator*() const {
+        return *(checked_get()) ;
+    }
+
+    /**
+     * Returns the dumb pointer. This allows to call the -> operator
+     * on this as if it was the dumb pointer
+     */
+    T* operator->() const {
+        return checked_get() ;
+    }
+
+    void setDeleteFinalizer() {
+        R_RegisterCFinalizerEx( Storage::get__(), finalizer_wrapper<T,Finalizer> , FALSE) ;
+    }
+
+    /**
+     * Release the external pointer (if any) immediately. This will cause
+     * the pointer to be deleted and it's storage to be set to NULL.
+     * After this call the get() method returns NULL and the checked_get()
+     * method throws an exception.
+     *
+     * See the discussion here for the basic logic behind release:
+     * https://stat.ethz.ch/pipermail/r-help/2007-August/137871.html
+     */
+    void release() {
+
+        if (get() != NULL)
+        {
+            // Call the finalizer -- note that this implies that finalizers
+            // need to be ready for a NULL external pointer value (our
+            // default C++ finalizer is since delete NULL is a no-op).
+            finalizer_wrapper<T,Finalizer>( Storage::get__() );
+
+            // Clear the external pointer
+            R_ClearExternalPtr( Storage::get__() );
+        }
+    }
+
+    inline operator T*(){
+        return checked_get() ;
+    }
+
+    void update(SEXP){}
+};
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Na_Proxy.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Na_Proxy.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Na_Proxy.h	(revision 2476)
@@ -0,0 +1,62 @@
+// Copyright (C) 2013 Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Na_Proxy_h
+#define Rcpp_Na_Proxy_h
+
+namespace Rcpp{
+    class Na_Proxy{
+
+        friend inline bool operator==(double x      , Rcpp::Na_Proxy){ return Rcpp::traits::is_na<REALSXP>(x) ; }
+        friend inline bool operator==(int x         , Rcpp::Na_Proxy){ return Rcpp::traits::is_na<INTSXP>(x) ; }
+        friend inline bool operator==(Rcpp::String x, Rcpp::Na_Proxy){ return Rcpp::traits::is_na<STRSXP>(x.get_sexp()) ; }
+        friend inline bool operator==(Rcomplex x    , Rcpp::Na_Proxy){ return Rcpp::traits::is_na<CPLXSXP>(x) ; }
+        friend inline bool operator==(SEXP x        , Rcpp::Na_Proxy){ return TYPEOF(x)==CHARSXP && Rcpp::traits::is_na<STRSXP>(x) ; }
+        friend inline bool operator==(std::string   , Rcpp::Na_Proxy){ return false ; }
+        friend inline bool operator==(const char*   , Rcpp::Na_Proxy){ return false ; }
+        friend inline bool operator==(Rcpp::internal::string_proxy<STRSXP> x, Rcpp::Na_Proxy){
+            return Rcpp::traits::is_na<STRSXP>(x.get()) ;
+        }
+        friend inline bool operator==(Rcpp::internal::const_string_proxy<STRSXP> x, Rcpp::Na_Proxy){
+            return Rcpp::traits::is_na<STRSXP>(x.get()) ;
+        }
+
+        friend inline bool operator==(Rcpp::Na_Proxy, double x       ){ return Rcpp::traits::is_na<REALSXP>(x) ; }
+        friend inline bool operator==(Rcpp::Na_Proxy, int x          ){ return Rcpp::traits::is_na<INTSXP>(x) ; }
+        friend inline bool operator==(Rcpp::Na_Proxy, Rcpp::String x ){ return Rcpp::traits::is_na<STRSXP>(x.get_sexp()) ; }
+        friend inline bool operator==(Rcpp::Na_Proxy, SEXP x         ){ return TYPEOF(x)==CHARSXP && Rcpp::traits::is_na<STRSXP>(x) ; }
+        friend inline bool operator==(Rcpp::Na_Proxy, Rcomplex x     ){ return Rcpp::traits::is_na<CPLXSXP>(x) ; }
+        friend inline bool operator==(Rcpp::Na_Proxy, std::string    ){ return false ; }
+        friend inline bool operator==(Rcpp::Na_Proxy, const char*    ){ return false ; }
+        friend inline bool operator==(Rcpp::Na_Proxy, Rcpp::internal::string_proxy<STRSXP> x){
+            return Rcpp::traits::is_na<STRSXP>(x.get()) ;
+        }
+        friend inline bool operator==(Rcpp::Na_Proxy, Rcpp::internal::const_string_proxy<STRSXP> x){
+            return Rcpp::traits::is_na<STRSXP>(x.get()) ;
+        }
+    } ;
+    static Na_Proxy NA ;
+
+    inline LogicalVector shush_about_NA(){
+        return LogicalVector::create(
+            _["int"]    = NA == NA_INTEGER,
+            _["double"] = NA == NA_REAL,
+            _["string"] = NA == NA_STRING
+            ) ;
+    }
+}
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_class_factory.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_class_factory.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_class_factory.h	(revision 2476)
@@ -0,0 +1,108 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Module_generated_class_factory.h: Rcpp R/C++ interface class library -- alternative way to declare constructors
+//
+// Copyright (C) 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_generated_class_factory_h
+#define Rcpp_Module_generated_class_factory_h
+
+    template <
+        typename U0,
+        typename U1,
+        typename U2,
+        typename U3,
+        typename U4,
+        typename U5,
+        typename U6
+    >
+    self& factory( Class* (*fun)(U0,U1,U2,U3,U4,U5,U6), const char* docstring = 0, ValidConstructor valid = &yes_arity<7> ){
+        AddFactory( new Factory_7<Class,U0,U1,U2,U3,U4,U5,U6>(fun) , valid, docstring ) ;
+        return *this ;
+    }
+
+    template <
+        typename U0,
+        typename U1,
+        typename U2,
+        typename U3,
+        typename U4,
+        typename U5
+    >
+    self& factory( Class* (*fun)(U0,U1,U2,U3,U4,U5), const char* docstring = 0, ValidConstructor valid = &yes_arity<6> ){
+        AddFactory( new Factory_6<Class,U0,U1,U2,U3,U4,U5>(fun) , valid, docstring ) ;
+        return *this ;
+    }
+
+    template <
+        typename U0,
+        typename U1,
+        typename U2,
+        typename U3,
+        typename U4
+    >
+    self& factory( Class* (*fun)(U0,U1,U2,U3,U4), const char* docstring = 0, ValidConstructor valid = &yes_arity<5>){
+        AddFactory( new Factory_5<Class,U0,U1,U2,U3,U4>(fun) , valid, docstring ) ;
+        return *this ;
+    }
+
+    template <
+        typename U0,
+        typename U1,
+        typename U2,
+        typename U3
+    >
+    self& factory( Class* (*fun)(U0,U1,U2,U3), const char* docstring="", ValidConstructor valid = &yes_arity<4>){
+        AddFactory( new Factory_4<Class,U0,U1,U2,U3>(fun) , valid, docstring ) ;
+        return *this ;
+    }
+
+
+    template <
+        typename U0,
+        typename U1,
+        typename U2
+    >
+    self& factory( Class* (*fun)(U0,U1,U2), const char* docstring="",  ValidConstructor valid = &yes_arity<3>){
+        AddFactory( new Factory_3<Class,U0,U1,U2>(fun) , valid, docstring ) ;
+        return *this ;
+    }
+
+    template <
+        typename U0,
+        typename U1
+    >
+    self& factory( Class* (*fun)(U0,U1), const char* docstring="", ValidConstructor valid = &yes_arity<2>){
+        AddFactory( new Factory_2<Class,U0,U1>(fun) , valid, docstring ) ;
+        return *this ;
+    }
+
+    template <
+        typename U0
+    >
+    self& factory( Class* (*fun)(U0), const char* docstring="", ValidConstructor valid = &yes_arity<1>){
+        AddFactory( new Factory_1<Class,U0>(fun) , valid, docstring ) ;
+        return *this ;
+    }
+
+    self& factory( Class* (*fun)(void), const char* docstring="", ValidConstructor valid = &yes_arity<0>){
+        AddFactory( new Factory_0<Class>(fun), valid , docstring) ;
+        return *this ;
+    }
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/get_return_type.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/get_return_type.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/get_return_type.h	(revision 2476)
@@ -0,0 +1,79 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 4 -*-
+//
+// Module_get_return_type.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_get_return_type_h
+#define Rcpp_Module_get_return_type_h
+
+namespace Rcpp {
+
+    struct void_type{} ;
+
+    template <typename RESULT_TYPE>
+    inline std::string get_return_type_dispatch( Rcpp::traits::false_type ){
+        return demangle( typeid(RESULT_TYPE).name() ).data() ;
+    }
+    template <typename RESULT_TYPE>
+    inline std::string get_return_type_dispatch( Rcpp::traits::true_type ){
+        typedef typename Rcpp::traits::un_pointer<RESULT_TYPE>::type pointer ;
+        std::string res = demangle( typeid( pointer ).name() ).data() ;
+        res += "*" ;
+        return res ;
+    }
+
+    template <typename RESULT_TYPE>
+    inline std::string get_return_type(){
+        return get_return_type_dispatch<RESULT_TYPE>( typename Rcpp::traits::is_pointer<RESULT_TYPE>::type() ) ;
+    }
+    template <>
+    inline std::string get_return_type<void_type>(){
+        return "void" ;
+    }
+    template <>
+    inline std::string get_return_type<SEXP>(){
+        return "SEXP" ;
+    }
+    template <>
+    inline std::string get_return_type<Rcpp::IntegerVector>(){
+        return "Rcpp::IntegerVector" ;
+    }
+    template <>
+    inline std::string get_return_type<Rcpp::NumericVector>(){
+        return "Rcpp::NumericVector" ;
+    }
+    template <>
+    inline std::string get_return_type<Rcpp::RawVector>(){
+        return "Rcpp::RawVector" ;
+    }
+    template <>
+    inline std::string get_return_type<Rcpp::ExpressionVector>(){
+        return "Rcpp::ExpressionVector" ;
+    }
+    template <>
+    inline std::string get_return_type<Rcpp::List>(){
+        return "Rcpp::List" ;
+    }
+    template <>
+    inline std::string get_return_type<Rcpp::CharacterVector>(){
+        return "Rcpp::CharacterVector" ;
+    }
+
+}
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_get_signature.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_get_signature.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_get_signature.h	(revision 2476)
@@ -0,0 +1,3106 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Module_generated_get_signature.h: -- generated helper code for Modules
+//                                      see rcpp-scripts repo for generator script
+//
+// Copyright (C) 2010 - 2014  Doug Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_generated_get_signature_h
+#define Rcpp_Module_generated_get_signature_h
+
+namespace Rcpp {
+
+template <typename RESULT_TYPE>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "()";
+}
+
+template <typename RESULT_TYPE,typename U0>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ")";
+}
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ", "; s+= get_return_type<U53>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ", "; s+= get_return_type<U53>();
+    s += ", "; s+= get_return_type<U54>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ", "; s+= get_return_type<U53>();
+    s += ", "; s+= get_return_type<U54>();
+    s += ", "; s+= get_return_type<U55>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ", "; s+= get_return_type<U53>();
+    s += ", "; s+= get_return_type<U54>();
+    s += ", "; s+= get_return_type<U55>();
+    s += ", "; s+= get_return_type<U56>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ", "; s+= get_return_type<U53>();
+    s += ", "; s+= get_return_type<U54>();
+    s += ", "; s+= get_return_type<U55>();
+    s += ", "; s+= get_return_type<U56>();
+    s += ", "; s+= get_return_type<U57>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ", "; s+= get_return_type<U53>();
+    s += ", "; s+= get_return_type<U54>();
+    s += ", "; s+= get_return_type<U55>();
+    s += ", "; s+= get_return_type<U56>();
+    s += ", "; s+= get_return_type<U57>();
+    s += ", "; s+= get_return_type<U58>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ", "; s+= get_return_type<U53>();
+    s += ", "; s+= get_return_type<U54>();
+    s += ", "; s+= get_return_type<U55>();
+    s += ", "; s+= get_return_type<U56>();
+    s += ", "; s+= get_return_type<U57>();
+    s += ", "; s+= get_return_type<U58>();
+    s += ", "; s+= get_return_type<U59>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ", "; s+= get_return_type<U53>();
+    s += ", "; s+= get_return_type<U54>();
+    s += ", "; s+= get_return_type<U55>();
+    s += ", "; s+= get_return_type<U56>();
+    s += ", "; s+= get_return_type<U57>();
+    s += ", "; s+= get_return_type<U58>();
+    s += ", "; s+= get_return_type<U59>();
+    s += ", "; s+= get_return_type<U60>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ", "; s+= get_return_type<U53>();
+    s += ", "; s+= get_return_type<U54>();
+    s += ", "; s+= get_return_type<U55>();
+    s += ", "; s+= get_return_type<U56>();
+    s += ", "; s+= get_return_type<U57>();
+    s += ", "; s+= get_return_type<U58>();
+    s += ", "; s+= get_return_type<U59>();
+    s += ", "; s+= get_return_type<U60>();
+    s += ", "; s+= get_return_type<U61>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ", "; s+= get_return_type<U53>();
+    s += ", "; s+= get_return_type<U54>();
+    s += ", "; s+= get_return_type<U55>();
+    s += ", "; s+= get_return_type<U56>();
+    s += ", "; s+= get_return_type<U57>();
+    s += ", "; s+= get_return_type<U58>();
+    s += ", "; s+= get_return_type<U59>();
+    s += ", "; s+= get_return_type<U60>();
+    s += ", "; s+= get_return_type<U61>();
+    s += ", "; s+= get_return_type<U62>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ", "; s+= get_return_type<U53>();
+    s += ", "; s+= get_return_type<U54>();
+    s += ", "; s+= get_return_type<U55>();
+    s += ", "; s+= get_return_type<U56>();
+    s += ", "; s+= get_return_type<U57>();
+    s += ", "; s+= get_return_type<U58>();
+    s += ", "; s+= get_return_type<U59>();
+    s += ", "; s+= get_return_type<U60>();
+    s += ", "; s+= get_return_type<U61>();
+    s += ", "; s+= get_return_type<U62>();
+    s += ", "; s+= get_return_type<U63>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ", "; s+= get_return_type<U53>();
+    s += ", "; s+= get_return_type<U54>();
+    s += ", "; s+= get_return_type<U55>();
+    s += ", "; s+= get_return_type<U56>();
+    s += ", "; s+= get_return_type<U57>();
+    s += ", "; s+= get_return_type<U58>();
+    s += ", "; s+= get_return_type<U59>();
+    s += ", "; s+= get_return_type<U60>();
+    s += ", "; s+= get_return_type<U61>();
+    s += ", "; s+= get_return_type<U62>();
+    s += ", "; s+= get_return_type<U63>();
+    s += ", "; s+= get_return_type<U64>();
+    s += ")";
+}
+
+
+
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64, typename U65>
+inline void signature(std::string& s, const char* name) {
+    s.clear();
+    s += get_return_type<RESULT_TYPE>();
+    s += " ";
+    s += name;
+    s += "(";
+    s += get_return_type<U0>();
+    s += ", "; s+= get_return_type<U1>();
+    s += ", "; s+= get_return_type<U2>();
+    s += ", "; s+= get_return_type<U3>();
+    s += ", "; s+= get_return_type<U4>();
+    s += ", "; s+= get_return_type<U5>();
+    s += ", "; s+= get_return_type<U6>();
+    s += ", "; s+= get_return_type<U7>();
+    s += ", "; s+= get_return_type<U8>();
+    s += ", "; s+= get_return_type<U9>();
+    s += ", "; s+= get_return_type<U10>();
+    s += ", "; s+= get_return_type<U11>();
+    s += ", "; s+= get_return_type<U12>();
+    s += ", "; s+= get_return_type<U13>();
+    s += ", "; s+= get_return_type<U14>();
+    s += ", "; s+= get_return_type<U15>();
+    s += ", "; s+= get_return_type<U16>();
+    s += ", "; s+= get_return_type<U17>();
+    s += ", "; s+= get_return_type<U18>();
+    s += ", "; s+= get_return_type<U19>();
+    s += ", "; s+= get_return_type<U20>();
+    s += ", "; s+= get_return_type<U21>();
+    s += ", "; s+= get_return_type<U22>();
+    s += ", "; s+= get_return_type<U23>();
+    s += ", "; s+= get_return_type<U24>();
+    s += ", "; s+= get_return_type<U25>();
+    s += ", "; s+= get_return_type<U26>();
+    s += ", "; s+= get_return_type<U27>();
+    s += ", "; s+= get_return_type<U28>();
+    s += ", "; s+= get_return_type<U29>();
+    s += ", "; s+= get_return_type<U30>();
+    s += ", "; s+= get_return_type<U31>();
+    s += ", "; s+= get_return_type<U32>();
+    s += ", "; s+= get_return_type<U33>();
+    s += ", "; s+= get_return_type<U34>();
+    s += ", "; s+= get_return_type<U35>();
+    s += ", "; s+= get_return_type<U36>();
+    s += ", "; s+= get_return_type<U37>();
+    s += ", "; s+= get_return_type<U38>();
+    s += ", "; s+= get_return_type<U39>();
+    s += ", "; s+= get_return_type<U40>();
+    s += ", "; s+= get_return_type<U41>();
+    s += ", "; s+= get_return_type<U42>();
+    s += ", "; s+= get_return_type<U43>();
+    s += ", "; s+= get_return_type<U44>();
+    s += ", "; s+= get_return_type<U45>();
+    s += ", "; s+= get_return_type<U46>();
+    s += ", "; s+= get_return_type<U47>();
+    s += ", "; s+= get_return_type<U48>();
+    s += ", "; s+= get_return_type<U49>();
+    s += ", "; s+= get_return_type<U50>();
+    s += ", "; s+= get_return_type<U51>();
+    s += ", "; s+= get_return_type<U52>();
+    s += ", "; s+= get_return_type<U53>();
+    s += ", "; s+= get_return_type<U54>();
+    s += ", "; s+= get_return_type<U55>();
+    s += ", "; s+= get_return_type<U56>();
+    s += ", "; s+= get_return_type<U57>();
+    s += ", "; s+= get_return_type<U58>();
+    s += ", "; s+= get_return_type<U59>();
+    s += ", "; s+= get_return_type<U60>();
+    s += ", "; s+= get_return_type<U61>();
+    s += ", "; s+= get_return_type<U62>();
+    s += ", "; s+= get_return_type<U63>();
+    s += ", "; s+= get_return_type<U64>();
+    s += ", "; s+= get_return_type<U65>();
+    s += ")";
+}
+
+
+
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module.h	(revision 2476)
@@ -0,0 +1,243 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Module.h: Rcpp R/C++ interface class library -- Rcpp modules
+//
+// Copyright (C) 2012 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_Module_h
+#define Rcpp_Module_Module_h
+
+namespace Rcpp {
+
+    /**
+     * holds information about exposed functions and classes
+     */
+    class Module {
+    public:
+        typedef std::map<std::string,CppFunction*> MAP ;
+        typedef std::pair<const std::string,CppFunction*> FUNCTION_PAIR ;
+
+        typedef std::map<std::string,class_Base*> CLASS_MAP ;
+        typedef std::pair<const std::string,class_Base*> CLASS_PAIR ;
+        typedef CLASS_MAP::iterator CLASS_ITERATOR ;
+
+        Module() :
+            name(), functions(), classes(), prefix() {}
+
+        Module(const char* name_) :
+            name(name_), functions(), classes(), prefix("Rcpp_module_"){
+            prefix += name ;
+        }
+
+        /**
+         * calls a function from that module with the specified arguments
+         *
+         * @param name the name of the function to call
+         * @param args an array of R objects to use as arguments for the function
+         * @param nargs number of arguments
+         */
+        inline SEXP invoke( const std::string& name_, SEXP* args, int nargs){
+            MAP::iterator it = functions.find( name_ );
+            if( it == functions.end() ){
+                throw std::range_error( "no such function" ) ;
+            }
+            CppFunction* fun = it->second ;
+            if( fun->nargs() > nargs ){
+                throw std::range_error( "incorrect number of arguments" ) ;
+            }
+
+            return List::create(
+                _["result"] = fun->operator()( args ),
+                _["void"]   = fun->is_void()
+            ) ;
+        }
+
+        /**
+         * vector of arity of all the functions exported by the module
+         */
+        IntegerVector functions_arity(){
+	        int n = functions.size() ;
+	        IntegerVector x( n ) ;
+	        CharacterVector names( n );
+	        MAP::iterator it = functions.begin() ;
+	        for( int i=0; i<n; i++, ++it){
+	            x[i] = (it->second)->nargs() ;
+	            names[i] = it->first ;
+	        }
+	        x.names() = names ;
+	        return x ;
+	    }
+
+        /**
+         * vector of names of the functions
+         */
+        CharacterVector functions_names(){
+	        int n = functions.size() ;
+	        CharacterVector names( n );
+	        MAP::iterator it = functions.begin() ;
+	        for( int i=0; i<n; i++, ++it){
+	            names[i] = it->first ;
+	        }
+	        return names ;
+	    }
+
+        /**
+         * exposed class names
+         */
+        inline CharacterVector class_names(){
+            int n = classes.size() ;
+            CharacterVector names( n );
+            CLASS_MAP::iterator it = classes.begin() ;
+            for( int i=0; i<n; i++, ++it){
+                names[i] = it->first ;
+            }
+            return names ;
+        }
+
+        /**
+         * information about the classes
+         */
+        List classes_info() ;
+
+        /**
+         * completion information
+         */
+        CharacterVector complete(){
+            int nf = functions.size() ;
+            int nc = classes.size() ;
+            int n = nf + nc ;
+            CharacterVector res( n ) ;
+            int i=0;
+            MAP::iterator it = functions.begin();
+            std::string buffer ;
+            for( ; i<nf; i++, ++it) {
+                buffer = it->first ;
+                if( (it->second)->nargs() == 0 ) {
+                    buffer += "() " ;
+                } else {
+                    buffer += "( " ;
+                }
+                res[i] = buffer ;
+            }
+            CLASS_MAP::iterator cit = classes.begin() ;
+            for( int j=0; j<nc; j++, i++, ++cit){
+                res[i] = cit->first ;
+            }
+            return res ;
+        }
+
+        /**
+         * Returns a list that contains:
+         * - an external pointer that encapsulates a CppFunction*
+         * - voidness of the function (logical)
+         * - docstring (character)
+         * - signature (character)
+         * - formal arguments of the function
+         *
+         * The R code in Module.R uses this information to create a C++Function
+         * object
+         */
+        inline SEXP get_function( const std::string& name_ ){
+            MAP::iterator it = functions.begin() ;
+            int n = functions.size() ;
+            CppFunction* fun = 0 ;
+            for( int i=0; i<n; i++, ++it){
+                if( name_.compare( it->first ) == 0){
+                    fun = it->second ;
+                    break ;
+                }
+            }
+            std::string sign ;
+            fun->signature( sign, name_.data() ) ;
+            return List::create(
+                XPtr<CppFunction>( fun, false ),
+                fun->is_void(),
+                fun->docstring,
+                sign,
+                fun->get_formals(),
+                fun->nargs()
+                ) ;
+        }
+
+        /**
+         * get the underlying C++ function pointer as a DL_FUNC
+         */
+        inline DL_FUNC get_function_ptr( const std::string& name_ ){
+	        MAP::iterator it = functions.begin() ;
+	        int n = functions.size() ;
+	        CppFunction* fun = 0 ;
+	        for( int i=0; i<n; i++, ++it){
+	            if( name_.compare( it->first ) == 0){
+	                fun = it->second ;
+	                break ;
+	            }
+	        }
+	        return fun->get_function_ptr() ;
+	    }
+
+        inline void Add( const char* name_ , CppFunction* ptr){
+            R_RegisterCCallable( prefix.c_str(), name_, ptr->get_function_ptr() ) ;
+            functions.insert( FUNCTION_PAIR( name_ , ptr ) ) ;
+        }
+
+        inline void AddClass(const char* name_ , class_Base* cptr){
+            classes.insert( CLASS_PAIR( name_ , cptr ) ) ;
+        }
+
+        inline bool has_function( const std::string& m){
+            return functions.find(m) != functions.end() ;
+        }
+
+        inline bool has_class( const std::string& m){
+            return classes.find(m) != classes.end() ;
+        }
+
+        CppClass get_class( const std::string& cl ) ;
+
+        class_Base* get_class_pointer(const std::string& cl){
+            CLASS_MAP::iterator it = classes.find(cl) ;
+            if( it == classes.end() ) throw std::range_error( "no such class" ) ;
+            return it->second ;
+	    }
+
+        std::string name ;
+
+        void add_enum( const std::string& parent_class_typeinfo_name, const std::string& enum_name, const std::map<std::string, int>& value ){
+	        // find the parent class
+	        CLASS_ITERATOR it ;
+	        class_Base* target_class = NULL;
+	        for( it = classes.begin(); it != classes.end(); it++){
+	            if( it->second->has_typeinfo_name(parent_class_typeinfo_name) ){
+	                target_class = it->second ;
+	            }
+	        }
+
+	        // TODO: add the enum to the class
+	        target_class->add_enum( enum_name, value ) ;
+	    }
+
+    private:
+        MAP functions ;
+        CLASS_MAP classes ;
+        std::string prefix ;
+
+    };
+
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/CppFunction.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/CppFunction.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/CppFunction.h	(revision 2476)
@@ -0,0 +1,90 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// CppFunction.h: Rcpp R/C++ interface class library -- C++ exposed function
+//
+// Copyright (C) 2012 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_CppFunction_h
+#define Rcpp_Module_CppFunction_h
+
+namespace Rcpp {
+
+	/**
+	 * base class for a callable function. This limited functionality is
+	 * just barely enough for an InternalFunction, nothing more.
+	 */
+	class CppFunctionBase {
+	public:
+		CppFunctionBase() {}
+        virtual ~CppFunctionBase(){} ;
+
+        /**
+         * modules call the function with this interface. input: an array of SEXP
+         * output: a SEXP.
+         */
+        virtual SEXP operator()(SEXP*) {
+            return R_NilValue ;
+        }
+
+	};
+
+    /**
+     * base class of all exported C++ functions. Template deduction in the
+     * Module_generated_function.h file creates an instance of a class that
+     * derives CppFunction (see Module_generated_CppFunction.h for all the
+     * definitions
+     */
+    class CppFunction : public CppFunctionBase {
+    public:
+        CppFunction(const char* doc = 0) : docstring( doc == 0 ? "" : doc) {}
+        virtual ~CppFunction(){} ;
+
+        /**
+         * The number of arguments of the function
+         */
+        virtual int nargs(){ return 0 ; }
+
+        /**
+         * voidness
+         */
+        virtual bool is_void(){ return false ; }
+
+        /**
+         * Human readable function signature (demangled if possible)
+         */
+        virtual void signature(std::string&, const char* ){}
+
+        /**
+         * formal arguments
+         */
+        virtual SEXP get_formals(){ return R_NilValue; }
+
+        /**
+         * The actual function pointer, as a catch all function pointer
+         * (see Rdynload.h for definition of DL_FUNC)
+         */
+        virtual DL_FUNC get_function_ptr() = 0  ;
+
+        /**
+         * description of the function
+         */
+        std::string docstring ;
+    };
+
+}
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_Field.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_Field.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_Field.h	(revision 2476)
@@ -0,0 +1,83 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Module_Add_Property.h: Rcpp R/C++ interface class library -- Rcpp modules
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_Field_h
+#define Rcpp_Module_Field_h
+
+// getter through a member function
+template <typename PROP>
+class CppProperty_Getter_Setter : public CppProperty<Class> {
+public:
+    typedef PROP Class::*pointer ;
+    typedef CppProperty<Class> prop_class ;
+
+    CppProperty_Getter_Setter( pointer ptr_ , const char* doc) :
+	prop_class(doc), ptr(ptr_), class_name(DEMANGLE(PROP)) {}
+
+    SEXP get(Class* object) { return Rcpp::wrap( object->*ptr ) ; }
+    void set(Class* object, SEXP value) { object->*ptr = Rcpp::as<PROP>( value ) ; }
+    bool is_readonly(){ return false ; }
+    std::string get_class(){ return class_name; }
+
+private:
+    pointer ptr ;
+    std::string class_name ;
+} ;
+
+
+// getter through a member function
+template <typename PROP>
+class CppProperty_Getter : public CppProperty<Class> {
+public:
+    typedef PROP Class::*pointer ;
+    typedef CppProperty<Class> prop_class ;
+
+    CppProperty_Getter( pointer ptr_, const char* doc = 0 ) :
+	prop_class(doc), ptr(ptr_), class_name(DEMANGLE(PROP)) {}
+
+    SEXP get(Class* object) { return Rcpp::wrap( object->*ptr ) ; }
+    void set(Class* object, SEXP value) { throw std::range_error("read only data member") ; }
+    bool is_readonly(){ return true ; }
+    std::string get_class(){ return class_name; }
+
+private:
+    pointer ptr ;
+    std::string class_name ;
+} ;
+
+
+template <typename T>
+self& field( const char* name_, T Class::*ptr, const char* docstring = 0){
+    AddProperty( name_,
+		 new CppProperty_Getter_Setter<T>( ptr, docstring )
+		 ) ;
+    return *this ;
+}
+
+template <typename T>
+self& field_readonly( const char* name_, T Class::*ptr, const char* docstring = 0 ){
+    AddProperty( name_,
+		 new CppProperty_Getter<T>( ptr, docstring )
+		 ) ;
+    return *this ;
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_Property.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_Property.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_Property.h	(revision 2476)
@@ -0,0 +1,263 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Module_Property.h: Rcpp R/C++ interface class library -- Rcpp modules
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_Property_h
+#define Rcpp_Module_Property_h
+
+// getter through a member function
+template <typename Class, typename PROP>
+class CppProperty_GetMethod : public CppProperty<Class> {
+public:
+    typedef PROP (Class::*GetMethod)(void) ;
+    typedef CppProperty<Class> prop_class ;
+
+    CppProperty_GetMethod( GetMethod getter_, const char* doc = 0 ) :
+        prop_class(doc), getter(getter_), class_name(DEMANGLE(PROP)){}
+
+    SEXP get(Class* object) { return Rcpp::wrap( (object->*getter)() ) ; }
+    void set(Class*, SEXP) { throw std::range_error("property is read only") ; }
+    bool is_readonly(){ return true ; }
+    std::string get_class(){ return class_name; }
+
+private:
+    GetMethod getter ;
+    std::string class_name ;
+
+} ;
+
+// getter through a const member function
+template <typename Class, typename PROP>
+class CppProperty_GetConstMethod : public CppProperty<Class> {
+public:
+    typedef PROP (Class::*GetMethod)(void) const ;
+    typedef CppProperty<Class> prop_class ;
+
+    CppProperty_GetConstMethod( GetMethod getter_ , const char* doc = 0) :
+        prop_class(doc), getter(getter_), class_name(DEMANGLE(PROP)){}
+
+    SEXP get(Class* object) { return Rcpp::wrap( (object->*getter)() ) ; }
+    void set(Class*, SEXP) { throw std::range_error("property is read only") ; }
+    bool is_readonly(){ return true ; }
+    std::string get_class(){ return class_name; }
+
+private:
+    GetMethod getter ;
+    std::string class_name ;
+
+} ;
+
+
+// getter through a free function taking a pointer to Class
+template <typename Class, typename PROP>
+class CppProperty_GetPointerMethod : public CppProperty<Class> {
+public:
+    typedef PROP (*GetMethod)(Class*) ;
+    typedef CppProperty<Class> prop_class ;
+
+    CppProperty_GetPointerMethod( GetMethod getter_ , const char* doc = 0) :
+        prop_class(doc), getter(getter_), class_name(DEMANGLE(PROP)){}
+
+    SEXP get(Class* object) { return Rcpp::wrap( getter(object) ) ; }
+    void set(Class*, SEXP) { throw std::range_error("property is read only") ; }
+    bool is_readonly(){ return true ; }
+    std::string get_class(){ return class_name; }
+
+private:
+    GetMethod getter ;
+    std::string class_name ;
+} ;
+
+
+// getter and setter through member functions
+template <typename Class, typename PROP>
+class CppProperty_GetMethod_SetMethod : public CppProperty<Class> {
+public:
+    typedef PROP (Class::*GetMethod)(void) ;
+    typedef void (Class::*SetMethod)(PROP) ;
+    typedef CppProperty<Class> prop_class ;
+
+    CppProperty_GetMethod_SetMethod( GetMethod getter_, SetMethod setter_, const char* doc = 0) :
+        prop_class(doc), getter(getter_), setter(setter_), class_name(DEMANGLE(PROP)){}
+
+    SEXP get(Class* object) {
+        return Rcpp::wrap( (object->*getter)() ) ;
+    }
+    void set(Class* object, SEXP value) throw(std::range_error,Rcpp::not_compatible){
+        (object->*setter)(
+                          Rcpp::as< typename Rcpp::traits::remove_const_and_reference< PROP >::type >( value )
+                           ) ;
+    }
+    bool is_readonly(){ return false ; }
+    std::string get_class(){ return class_name; }
+
+private:
+    GetMethod getter ;
+    SetMethod setter ;
+    std::string class_name ;
+} ;
+template <typename Class, typename PROP>
+class CppProperty_GetConstMethod_SetMethod : public CppProperty<Class> {
+public:
+    typedef PROP (Class::*GetMethod)(void) const ;
+    typedef void (Class::*SetMethod)(PROP) ;
+    typedef CppProperty<Class> prop_class ;
+
+    CppProperty_GetConstMethod_SetMethod( GetMethod getter_, SetMethod setter_, const char* doc = 0) :
+        prop_class(doc), getter(getter_), setter(setter_), class_name(DEMANGLE(PROP)){}
+
+    SEXP get(Class* object) {
+        return Rcpp::wrap( (object->*getter)() ) ;
+    }
+    void set(Class* object, SEXP value) {
+        (object->*setter)(
+                          Rcpp::as< typename Rcpp::traits::remove_const_and_reference< PROP >::type >( value )
+                           ) ;
+    }
+    bool is_readonly(){ return false ; }
+    std::string get_class(){ return class_name; }
+
+private:
+    GetMethod getter ;
+    SetMethod setter ;
+    std::string class_name ;
+
+} ;
+
+
+
+
+// getter though a member function, setter through a pointer function
+template <typename Class, typename PROP>
+class CppProperty_GetMethod_SetPointer : public CppProperty<Class> {
+public:
+    typedef PROP (Class::*GetMethod)(void) ;
+    typedef void (*SetMethod)(Class*,PROP) ;
+    typedef CppProperty<Class> prop_class ;
+
+    CppProperty_GetMethod_SetPointer( GetMethod getter_, SetMethod setter_, const char* doc = 0) :
+        prop_class(doc), getter(getter_), setter(setter_), class_name(DEMANGLE(PROP)){}
+
+    SEXP get(Class* object) {
+        return Rcpp::wrap( (object->*getter)() ) ;
+    }
+    void set(Class* object, SEXP value) throw(std::range_error,Rcpp::not_compatible){
+        setter( object,
+                Rcpp::as< typename Rcpp::traits::remove_const_and_reference< PROP >::type >( value )
+                ) ;
+    }
+    bool is_readonly(){ return false ; }
+    std::string get_class(){ return class_name; }
+
+private:
+    GetMethod getter ;
+    SetMethod setter ;
+    std::string class_name ;
+
+} ;
+template <typename Class, typename PROP>
+class CppProperty_GetConstMethod_SetPointer : public CppProperty<Class> {
+public:
+    typedef PROP (Class::*GetMethod)(void) const ;
+    typedef void (*SetMethod)(Class*,PROP) ;
+    typedef CppProperty<Class> prop_class ;
+
+    CppProperty_GetConstMethod_SetPointer( GetMethod getter_, SetMethod setter_, const char* doc = 0) :
+        prop_class(doc), getter(getter_), setter(setter_), class_name(DEMANGLE(PROP)){}
+
+    SEXP get(Class* object) {
+        return Rcpp::wrap( (object->*getter)() ) ;
+    }
+    void set(Class* object, SEXP value) {
+        setter( object,
+                Rcpp::as< typename Rcpp::traits::remove_const_and_reference< PROP >::type >( value )
+                ) ;
+    }
+    bool is_readonly(){ return false ; }
+    std::string get_class(){ return class_name; }
+
+private:
+    GetMethod getter ;
+    SetMethod setter ;
+    std::string class_name ;
+
+} ;
+
+// getter through pointer function, setter through member function
+template <typename Class, typename PROP>
+class CppProperty_GetPointer_SetMethod : public CppProperty<Class> {
+public:
+    typedef PROP (*GetMethod)(Class*) ;
+    typedef void (Class::*SetMethod)(PROP) ;
+    typedef CppProperty<Class> prop_class ;
+
+    CppProperty_GetPointer_SetMethod( GetMethod getter_, SetMethod setter_, const char* doc = 0) :
+        prop_class(doc), getter(getter_), setter(setter_), class_name(DEMANGLE(PROP)){}
+
+    SEXP get(Class* object) {
+        return Rcpp::wrap( getter(object) ) ;
+    }
+    void set(Class* object, SEXP value) {
+        (object->*setter)(
+                          Rcpp::as< typename Rcpp::traits::remove_const_and_reference< PROP >::type >( value )
+                           ) ;
+    }
+    bool is_readonly(){ return false ; }
+    std::string get_class(){ return class_name; }
+
+private:
+    GetMethod getter ;
+    SetMethod setter ;
+    std::string class_name ;
+
+} ;
+
+// getter and setter through pointer functions
+// getter through pointer function, setter through member function
+template <typename Class, typename PROP>
+class CppProperty_GetPointer_SetPointer : public CppProperty<Class> {
+public:
+    typedef PROP (*GetMethod)(Class*) ;
+    typedef void (*SetMethod)(Class*,PROP) ;
+    typedef CppProperty<Class> prop_class ;
+
+    CppProperty_GetPointer_SetPointer( GetMethod getter_, SetMethod setter_, const char* doc = 0) :
+        prop_class(doc), getter(getter_), setter(setter_), class_name(DEMANGLE(PROP)){}
+
+    SEXP get(Class* object) {
+        return Rcpp::wrap( getter(object) ) ;
+    }
+    void set(Class* object, SEXP value) {
+        setter( object,
+                Rcpp::as< typename Rcpp::traits::remove_const_and_reference< PROP >::type >( value )
+                ) ;
+    }
+    bool is_readonly(){ return false ; }
+    std::string get_class(){ return class_name; }
+
+private:
+    GetMethod getter ;
+    SetMethod setter ;
+    std::string class_name ;
+
+} ;
+
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_Factory.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_Factory.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_Factory.h	(revision 2476)
@@ -0,0 +1,179 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Module_generated_Factory.h: Rcpp R/C++ interface class library -- Rcpp module class factories
+//
+// Copyright (C) 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_generated_Factory_h
+#define Rcpp_Module_generated_Factory_h
+
+template <typename Class>
+class Factory_Base {
+public:
+    virtual Class* get_new( SEXP* args, int nargs ) = 0 ;
+    virtual int nargs() = 0 ;
+    virtual void signature(std::string& s, const std::string& class_name) = 0 ;
+} ;
+
+template <typename Class>
+class Factory_0 : public Factory_Base<Class>{
+  public:
+    Factory_0( Class* (*fun)(void) ) : ptr_fun(fun){}
+    virtual Class* get_new( SEXP* args, int nargs ){
+      return ptr_fun() ;
+    }
+    virtual int nargs(){ return 0 ; }
+    virtual void signature(std::string& s, const std::string& class_name ){
+        ctor_signature(s, class_name) ;
+    }
+  private:
+    Class* (*ptr_fun)(void) ;
+} ;
+template <typename Class, typename U0>
+class Factory_1 : public Factory_Base<Class>{
+public:
+  Factory_1( Class* (*fun)(U0) ) :ptr_fun(fun){}
+  virtual Class* get_new( SEXP* args, int nargs ){
+      return ptr_fun( bare_as<U0>(args[0]) ) ;
+  }
+  virtual int nargs(){ return 1 ; }
+  virtual void signature(std::string& s, const std::string& class_name ){
+      ctor_signature<U0>(s, class_name) ;
+  }
+private:
+  Class* (*ptr_fun)(U0) ;
+} ;
+template <typename Class, typename U0, typename U1>
+class Factory_2 : public Factory_Base<Class>{
+public:
+  Factory_2( Class* (*fun)(U0, U1) ) :ptr_fun(fun){}
+  virtual Class* get_new( SEXP* args, int nargs ){
+      return ptr_fun(
+          bare_as<U0>(args[0]),
+          bare_as<U1>(args[1])
+          ) ;
+  }
+  virtual int nargs(){ return 2 ; }
+  virtual void signature(std::string& s, const std::string& class_name ){
+      ctor_signature<U0,U1>(s, class_name) ;
+  }
+private:
+  Class* (*ptr_fun)(U0, U1) ;
+} ;
+template <typename Class, typename U0, typename U1, typename U2>
+class Factory_3 : public Factory_Base<Class>{
+public:
+  Factory_3( Class* (*fun)(U0, U1, U2) ) :ptr_fun(fun){}
+  virtual Class* get_new( SEXP* args, int nargs ){
+      return ptr_fun(
+          bare_as<U0>(args[0]),
+          bare_as<U1>(args[1]),
+          bare_as<U2>(args[2])
+          ) ;
+  }
+  virtual int nargs(){ return 3 ; }
+  virtual void signature(std::string& s, const std::string& class_name ){
+      ctor_signature<U0,U1,U2>(s, class_name) ;
+  }
+private:
+  Class* (*ptr_fun)(U0, U1, U2) ;
+} ;
+template <typename Class, typename U0, typename U1, typename U2, typename U3>
+class Factory_4 : public Factory_Base<Class>{
+public:
+  Factory_4( Class* (*fun)(U0, U1, U2, U3) ) :ptr_fun(fun){}
+  virtual Class* get_new( SEXP* args, int nargs ){
+      return ptr_fun(
+          bare_as<U0>(args[0]),
+          bare_as<U1>(args[1]),
+          bare_as<U2>(args[2]),
+          bare_as<U3>(args[3])
+          ) ;
+  }
+  virtual int nargs(){ return 4 ; }
+  virtual void signature(std::string& s, const std::string& class_name ){
+      ctor_signature<U0,U1,U2,U3>(s, class_name) ;
+  }
+private:
+  Class* (*ptr_fun)(U0, U1, U2, U3) ;
+} ;
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4>
+class Factory_5 : public Factory_Base<Class>{
+public:
+  Factory_5( Class* (*fun)(U0, U1, U2, U3, U4) ) :ptr_fun(fun){}
+  virtual Class* get_new( SEXP* args, int nargs ){
+      return ptr_fun(
+          bare_as<U0>(args[0]),
+          bare_as<U1>(args[1]),
+          bare_as<U2>(args[2]),
+          bare_as<U3>(args[3]),
+          bare_as<U4>(args[4])
+          ) ;
+  }
+  virtual int nargs(){ return 5 ; }
+  virtual void signature(std::string& s, const std::string& class_name ){
+      ctor_signature<U0,U1,U2,U3,U4>(s, class_name) ;
+  }
+private:
+  Class* (*ptr_fun)(U0, U1, U2, U3, U4) ;
+} ;
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+class Factory_6 : public Factory_Base<Class>{
+public:
+  Factory_6( Class* (*fun)(U0, U1, U2, U3, U4, U5) ) :ptr_fun(fun){}
+  virtual Class* get_new( SEXP* args, int nargs ){
+      return ptr_fun(
+          bare_as<U0>(args[0]),
+          bare_as<U1>(args[1]),
+          bare_as<U2>(args[2]),
+          bare_as<U3>(args[3]),
+          bare_as<U4>(args[4]),
+          bare_as<U5>(args[5])
+          ) ;
+  }
+  virtual int nargs(){ return 6 ; }
+  virtual void signature(std::string& s, const std::string& class_name ){
+      ctor_signature<U0,U1,U2,U3,U4,U5>(s, class_name) ;
+  }
+private:
+  Class* (*ptr_fun)(U0, U1, U2, U3, U4, U5) ;
+} ;
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+class Factory_7 : public Factory_Base<Class>{
+public:
+  Factory_7( Class* (*fun)(U0, U1, U2, U3, U4, U5, U6) ) :ptr_fun(fun){}
+  virtual Class* get_new( SEXP* args, int nargs ){
+      return ptr_fun(
+          bare_as<U0>(args[0]),
+          bare_as<U1>(args[1]),
+          bare_as<U2>(args[2]),
+          bare_as<U3>(args[3]),
+          bare_as<U4>(args[4]),
+          bare_as<U5>(args[5]),
+          bare_as<U6>(args[6])
+          ) ;
+  }
+  virtual int nargs(){ return 7 ; }
+  virtual void signature(std::string& s, const std::string& class_name ){
+      ctor_signature<U0,U1,U2,U3,U4,U5,U6>(s, class_name) ;
+  }
+private:
+   Class* (*ptr_fun)(U0, U1, U2, U3, U4, U5, U6) ;
+} ;
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_class_constructor.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_class_constructor.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_class_constructor.h	(revision 2476)
@@ -0,0 +1,108 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Module_generated_class_constructor.h: Rcpp R/C++ interface class library -- Rcpp modules
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_generated_class_constructor_h
+#define Rcpp_Module_generated_class_constructor_h
+
+    template <
+        typename U0,
+        typename U1,
+        typename U2,
+        typename U3,
+        typename U4,
+        typename U5,
+        typename U6
+    >
+    self& constructor( const char* docstring = 0, ValidConstructor valid = &yes_arity<7> ){
+        AddConstructor( new Constructor_7<Class,U0,U1,U2,U3,U4,U5,U6> , valid, docstring ) ;
+        return *this ;
+    }
+
+    template <
+        typename U0,
+        typename U1,
+        typename U2,
+        typename U3,
+        typename U4,
+        typename U5
+    >
+    self& constructor( const char* docstring = 0, ValidConstructor valid = &yes_arity<6> ){
+        AddConstructor( new Constructor_6<Class,U0,U1,U2,U3,U4,U5> , valid, docstring ) ;
+        return *this ;
+    }
+
+    template <
+        typename U0,
+        typename U1,
+        typename U2,
+        typename U3,
+        typename U4
+    >
+    self& constructor( const char* docstring = 0, ValidConstructor valid = &yes_arity<5>){
+        AddConstructor( new Constructor_5<Class,U0,U1,U2,U3,U4> , valid, docstring ) ;
+        return *this ;
+    }
+
+    template <
+        typename U0,
+        typename U1,
+        typename U2,
+        typename U3
+    >
+    self& constructor( const char* docstring="", ValidConstructor valid = &yes_arity<4>){
+        AddConstructor( new Constructor_4<Class,U0,U1,U2,U3> , valid, docstring ) ;
+        return *this ;
+    }
+
+
+    template <
+        typename U0,
+        typename U1,
+        typename U2
+    >
+    self& constructor( const char* docstring="",  ValidConstructor valid = &yes_arity<3>){
+        AddConstructor( new Constructor_3<Class,U0,U1,U2> , valid, docstring ) ;
+        return *this ;
+    }
+
+    template <
+        typename U0,
+        typename U1
+    >
+    self& constructor( const char* docstring="", ValidConstructor valid = &yes_arity<2>){
+        AddConstructor( new Constructor_2<Class,U0,U1> , valid, docstring ) ;
+        return *this ;
+    }
+
+    template <
+        typename U0
+    >
+    self& constructor( const char* docstring="", ValidConstructor valid = &yes_arity<1>){
+        AddConstructor( new Constructor_1<Class,U0> , valid, docstring ) ;
+        return *this ;
+    }
+
+    self& constructor( const char* docstring="", ValidConstructor valid = &yes_arity<0>){
+        AddConstructor( new Constructor_0<Class>, valid , docstring) ;
+        return *this ;
+    }
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/class_Base.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/class_Base.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/class_Base.h	(revision 2476)
@@ -0,0 +1,97 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// class_Base.h: Rcpp R/C++ interface class library -- Rcpp modules
+//
+// Copyright (C) 2012 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_Class_Base_h
+
+namespace Rcpp{
+
+class class_Base {
+public:
+    typedef Rcpp::XPtr<class_Base> XP_Class ;
+
+    class_Base() : name(), docstring(), enums(), parents() {} ;
+    class_Base(const char* name_, const char* doc) :
+        name(name_), docstring( doc == 0 ? "" : doc ), enums(), parents() {} ;
+
+    virtual Rcpp::List fields(const XP_Class& ){ return Rcpp::List(0); }
+    virtual Rcpp::List getMethods(const XP_Class&, std::string&){ return Rcpp::List(0); }
+    virtual Rcpp::List getConstructors(const XP_Class&, std::string&){ return Rcpp::List(0); }
+
+    virtual void run_finalizer(SEXP){ }
+
+    virtual bool has_default_constructor(){ return false ; }
+    virtual bool has_method( const std::string& ){
+        return false ;
+    }
+    virtual bool has_property( const std::string& ) {
+        return false ;
+    }
+    virtual SEXP newInstance(SEXP *, int){
+        return R_NilValue;
+    }
+    virtual SEXP invoke( SEXP, SEXP, SEXP *, int ){
+        return R_NilValue ;
+    }
+    virtual SEXP invoke_void( SEXP, SEXP, SEXP *, int ){
+        return R_NilValue ;
+    }
+    virtual SEXP invoke_notvoid( SEXP, SEXP, SEXP *, int ){
+        return R_NilValue ;
+    }
+
+    virtual Rcpp::CharacterVector method_names(){ return Rcpp::CharacterVector(0) ; }
+    virtual Rcpp::CharacterVector property_names(){ return Rcpp::CharacterVector(0) ; }
+    virtual bool property_is_readonly(const std::string& ) { return false ; }
+    virtual std::string property_class(const std::string& ) { return "" ; }
+    virtual Rcpp::IntegerVector methods_arity(){ return Rcpp::IntegerVector(0) ; }
+    virtual Rcpp::LogicalVector methods_voidness(){ return Rcpp::LogicalVector(0); }
+    virtual Rcpp::List property_classes(){ return Rcpp::List(0); }
+
+    virtual Rcpp::CharacterVector complete(){ return Rcpp::CharacterVector(0) ; }
+    virtual ~class_Base(){}
+
+    virtual SEXP getProperty( SEXP, SEXP ) {
+        throw std::range_error( "cannot retrieve property" ) ;
+    }
+    virtual void setProperty( SEXP, SEXP, SEXP) {
+        throw std::range_error( "cannot set property" ) ;
+    }
+    virtual std::string get_typeinfo_name(){ return "" ; }
+    bool has_typeinfo_name( const std::string& name_ ){
+        return get_typeinfo_name().compare(name_) == 0;
+    }
+    void add_enum( const std::string& enum_name, const std::map<std::string, int>& value ){
+	    enums.insert( ENUM_MAP_PAIR( enum_name, value ) ) ;
+	}
+
+    std::string name ;
+    std::string docstring ;
+
+    typedef std::map< std::string, int > ENUM ;
+    typedef std::map< std::string, ENUM > ENUM_MAP ;
+    typedef ENUM_MAP::value_type ENUM_MAP_PAIR ;
+    ENUM_MAP enums ;
+    std::vector<std::string> parents ;
+
+} ;
+
+}
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_Add_Property.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_Add_Property.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_Add_Property.h	(revision 2476)
@@ -0,0 +1,98 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Module_Add_Property.h: Rcpp R/C++ interface class library -- Rcpp modules
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_Add_Property_h
+#define Rcpp_Module_Add_Property_h
+
+	template <typename PROP>
+	self& property( const char* name_, PROP (Class::*GetMethod)(void), const char* docstring = 0){
+		AddProperty( name_, new CppProperty_GetMethod<Class,PROP>(GetMethod, docstring) ) ;
+		return *this ;
+	}
+
+	template <typename PROP>
+	self& property( const char* name_, PROP (Class::*GetMethod)(void) const, const char* docstring = 0){
+		AddProperty( name_, new CppProperty_GetConstMethod<Class,PROP>(GetMethod, docstring) ) ;
+		return *this ;
+	}
+
+	template <typename PROP>
+	self& property( const char* name_, PROP (*GetMethod)(Class*), const char* docstring ){
+		AddProperty( name_, new CppProperty_GetPointerMethod<Class,PROP>(GetMethod,docstring) ) ;
+		return *this ;
+	}
+
+
+	template <typename PROP>
+	self& property( const char* name_, PROP (Class::*GetMethod)(void), void (Class::*SetMethod)(PROP), const char* docstring = 0){
+		AddProperty(
+			name_,
+			new CppProperty_GetMethod_SetMethod<Class,PROP>(GetMethod, SetMethod, docstring)
+		) ;
+		return *this ;
+	}
+	template <typename PROP>
+	self& property( const char* name_, PROP (Class::*GetMethod)(void) const, void (Class::*SetMethod)(PROP), const char* docstring = 0){
+		AddProperty(
+			name_,
+			new CppProperty_GetConstMethod_SetMethod<Class,PROP>(GetMethod, SetMethod, docstring)
+		) ;
+		return *this ;
+	}
+
+
+	template <typename PROP>
+	self& property( const char* name_, PROP (Class::*GetMethod)(void), void (*SetMethod)(Class*,PROP), const char* docstring = 0 ){
+		AddProperty(
+			name_,
+			new CppProperty_GetMethod_SetPointer<Class,PROP>(GetMethod, SetMethod, docstring )
+		) ;
+		return *this ;
+	}
+	template <typename PROP>
+	self& property( const char* name_, PROP (Class::*GetMethod)(void) const , void (*SetMethod)(Class*,PROP), const char* docstring = 0 ){
+		AddProperty(
+			name_,
+			new CppProperty_GetConstMethod_SetPointer<Class,PROP>(GetMethod, SetMethod, docstring)
+		) ;
+		return *this ;
+	}
+
+
+	template <typename PROP>
+	self& property( const char* name_, PROP (*GetMethod)(Class*), void (Class::*SetMethod)(PROP), const char* docstring = 0 ){
+		AddProperty(
+			name_,
+			new CppProperty_GetPointer_SetMethod<Class,PROP>(GetMethod, SetMethod, docstring)
+		) ;
+	}
+
+	template <typename PROP>
+	self& property( const char* name_, PROP (*GetMethod)(Class*), void (*SetMethod)(Class*,PROP), const char* docstring = 0 ){
+		AddProperty(
+			name_,
+			new CppProperty_GetPointer_SetPointer<Class,PROP>(GetMethod, SetMethod, docstring)
+		) ;
+		return *this ;
+	}
+
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_method.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_method.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_method.h	(revision 2476)
@@ -0,0 +1,1941 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Module_generated_method.h: -- generated helper code for Modules
+//                               see rcpp-scripts repo for generator script
+//
+// Copyright (C) 2010 - 2014  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_generated_method_h
+#define Rcpp_Module_generated_method_h
+
+template <typename RESULT_TYPE>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(void),
+             const char* docstring = 0, ValidMethod valid = &yes) {
+    AddMethod(name_, new CppMethod0<Class,RESULT_TYPE>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(void) const,
+             const char* docstring = 0, ValidMethod valid = &yes) {
+    AddMethod( name_, new const_CppMethod0<Class,RESULT_TYPE>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(void),
+                      const char* docstring = 0, ValidMethod valid = &yes ){
+    AddMethod( name_, new CppMethod0<Class,RESULT_TYPE>( fun ) , valid, docstring ) ;
+    return *this ;
+}
+
+template <typename RESULT_TYPE>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(void) const,
+                   const char* docstring = 0, ValidMethod valid = &yes ){
+    AddMethod( name_, new const_CppMethod0<Class,RESULT_TYPE>( fun ), valid, docstring ) ;
+    return *this ;
+}
+
+
+
+template <typename RESULT_TYPE, typename U0>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<1>) {
+    AddMethod( name_, new CppMethod1<Class,RESULT_TYPE,U0>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<1>) {
+    AddMethod(name_, new const_CppMethod1<Class,RESULT_TYPE,U0>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<1>) {
+    AddMethod(name_, new CppMethod1<Class,RESULT_TYPE,U0>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<1>) {
+    AddMethod(name_, new const_CppMethod1<Class,RESULT_TYPE,U0>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<2>) {
+    AddMethod( name_, new CppMethod2<Class,RESULT_TYPE,U0, U1>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<2>) {
+    AddMethod(name_, new const_CppMethod2<Class,RESULT_TYPE,U0, U1>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<2>) {
+    AddMethod(name_, new CppMethod2<Class,RESULT_TYPE,U0, U1>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<2>) {
+    AddMethod(name_, new const_CppMethod2<Class,RESULT_TYPE,U0, U1>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<3>) {
+    AddMethod( name_, new CppMethod3<Class,RESULT_TYPE,U0, U1, U2>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<3>) {
+    AddMethod(name_, new const_CppMethod3<Class,RESULT_TYPE,U0, U1, U2>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<3>) {
+    AddMethod(name_, new CppMethod3<Class,RESULT_TYPE,U0, U1, U2>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<3>) {
+    AddMethod(name_, new const_CppMethod3<Class,RESULT_TYPE,U0, U1, U2>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<4>) {
+    AddMethod( name_, new CppMethod4<Class,RESULT_TYPE,U0, U1, U2, U3>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<4>) {
+    AddMethod(name_, new const_CppMethod4<Class,RESULT_TYPE,U0, U1, U2, U3>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<4>) {
+    AddMethod(name_, new CppMethod4<Class,RESULT_TYPE,U0, U1, U2, U3>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<4>) {
+    AddMethod(name_, new const_CppMethod4<Class,RESULT_TYPE,U0, U1, U2, U3>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<5>) {
+    AddMethod( name_, new CppMethod5<Class,RESULT_TYPE,U0, U1, U2, U3, U4>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<5>) {
+    AddMethod(name_, new const_CppMethod5<Class,RESULT_TYPE,U0, U1, U2, U3, U4>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<5>) {
+    AddMethod(name_, new CppMethod5<Class,RESULT_TYPE,U0, U1, U2, U3, U4>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<5>) {
+    AddMethod(name_, new const_CppMethod5<Class,RESULT_TYPE,U0, U1, U2, U3, U4>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<6>) {
+    AddMethod( name_, new CppMethod6<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<6>) {
+    AddMethod(name_, new const_CppMethod6<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<6>) {
+    AddMethod(name_, new CppMethod6<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<6>) {
+    AddMethod(name_, new const_CppMethod6<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<7>) {
+    AddMethod( name_, new CppMethod7<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<7>) {
+    AddMethod(name_, new const_CppMethod7<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<7>) {
+    AddMethod(name_, new CppMethod7<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<7>) {
+    AddMethod(name_, new const_CppMethod7<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<8>) {
+    AddMethod( name_, new CppMethod8<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<8>) {
+    AddMethod(name_, new const_CppMethod8<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<8>) {
+    AddMethod(name_, new CppMethod8<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<8>) {
+    AddMethod(name_, new const_CppMethod8<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<9>) {
+    AddMethod( name_, new CppMethod9<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<9>) {
+    AddMethod(name_, new const_CppMethod9<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<9>) {
+    AddMethod(name_, new CppMethod9<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<9>) {
+    AddMethod(name_, new const_CppMethod9<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<10>) {
+    AddMethod( name_, new CppMethod10<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<10>) {
+    AddMethod(name_, new const_CppMethod10<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<10>) {
+    AddMethod(name_, new CppMethod10<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<10>) {
+    AddMethod(name_, new const_CppMethod10<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<11>) {
+    AddMethod( name_, new CppMethod11<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<11>) {
+    AddMethod(name_, new const_CppMethod11<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<11>) {
+    AddMethod(name_, new CppMethod11<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<11>) {
+    AddMethod(name_, new const_CppMethod11<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<12>) {
+    AddMethod( name_, new CppMethod12<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<12>) {
+    AddMethod(name_, new const_CppMethod12<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<12>) {
+    AddMethod(name_, new CppMethod12<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<12>) {
+    AddMethod(name_, new const_CppMethod12<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<13>) {
+    AddMethod( name_, new CppMethod13<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<13>) {
+    AddMethod(name_, new const_CppMethod13<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<13>) {
+    AddMethod(name_, new CppMethod13<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<13>) {
+    AddMethod(name_, new const_CppMethod13<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<14>) {
+    AddMethod( name_, new CppMethod14<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<14>) {
+    AddMethod(name_, new const_CppMethod14<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<14>) {
+    AddMethod(name_, new CppMethod14<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<14>) {
+    AddMethod(name_, new const_CppMethod14<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<15>) {
+    AddMethod( name_, new CppMethod15<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<15>) {
+    AddMethod(name_, new const_CppMethod15<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<15>) {
+    AddMethod(name_, new CppMethod15<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<15>) {
+    AddMethod(name_, new const_CppMethod15<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<16>) {
+    AddMethod( name_, new CppMethod16<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<16>) {
+    AddMethod(name_, new const_CppMethod16<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<16>) {
+    AddMethod(name_, new CppMethod16<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<16>) {
+    AddMethod(name_, new const_CppMethod16<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<17>) {
+    AddMethod( name_, new CppMethod17<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<17>) {
+    AddMethod(name_, new const_CppMethod17<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<17>) {
+    AddMethod(name_, new CppMethod17<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<17>) {
+    AddMethod(name_, new const_CppMethod17<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<18>) {
+    AddMethod( name_, new CppMethod18<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<18>) {
+    AddMethod(name_, new const_CppMethod18<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<18>) {
+    AddMethod(name_, new CppMethod18<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<18>) {
+    AddMethod(name_, new const_CppMethod18<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<19>) {
+    AddMethod( name_, new CppMethod19<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<19>) {
+    AddMethod(name_, new const_CppMethod19<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<19>) {
+    AddMethod(name_, new CppMethod19<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<19>) {
+    AddMethod(name_, new const_CppMethod19<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<20>) {
+    AddMethod( name_, new CppMethod20<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<20>) {
+    AddMethod(name_, new const_CppMethod20<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<20>) {
+    AddMethod(name_, new CppMethod20<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<20>) {
+    AddMethod(name_, new const_CppMethod20<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<21>) {
+    AddMethod( name_, new CppMethod21<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<21>) {
+    AddMethod(name_, new const_CppMethod21<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<21>) {
+    AddMethod(name_, new CppMethod21<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<21>) {
+    AddMethod(name_, new const_CppMethod21<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<22>) {
+    AddMethod( name_, new CppMethod22<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<22>) {
+    AddMethod(name_, new const_CppMethod22<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<22>) {
+    AddMethod(name_, new CppMethod22<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<22>) {
+    AddMethod(name_, new const_CppMethod22<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<23>) {
+    AddMethod( name_, new CppMethod23<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<23>) {
+    AddMethod(name_, new const_CppMethod23<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<23>) {
+    AddMethod(name_, new CppMethod23<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<23>) {
+    AddMethod(name_, new const_CppMethod23<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<24>) {
+    AddMethod( name_, new CppMethod24<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<24>) {
+    AddMethod(name_, new const_CppMethod24<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<24>) {
+    AddMethod(name_, new CppMethod24<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<24>) {
+    AddMethod(name_, new const_CppMethod24<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<25>) {
+    AddMethod( name_, new CppMethod25<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<25>) {
+    AddMethod(name_, new const_CppMethod25<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<25>) {
+    AddMethod(name_, new CppMethod25<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<25>) {
+    AddMethod(name_, new const_CppMethod25<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<26>) {
+    AddMethod( name_, new CppMethod26<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<26>) {
+    AddMethod(name_, new const_CppMethod26<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<26>) {
+    AddMethod(name_, new CppMethod26<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<26>) {
+    AddMethod(name_, new const_CppMethod26<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<27>) {
+    AddMethod( name_, new CppMethod27<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<27>) {
+    AddMethod(name_, new const_CppMethod27<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<27>) {
+    AddMethod(name_, new CppMethod27<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<27>) {
+    AddMethod(name_, new const_CppMethod27<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<28>) {
+    AddMethod( name_, new CppMethod28<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<28>) {
+    AddMethod(name_, new const_CppMethod28<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<28>) {
+    AddMethod(name_, new CppMethod28<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<28>) {
+    AddMethod(name_, new const_CppMethod28<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<29>) {
+    AddMethod( name_, new CppMethod29<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<29>) {
+    AddMethod(name_, new const_CppMethod29<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<29>) {
+    AddMethod(name_, new CppMethod29<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<29>) {
+    AddMethod(name_, new const_CppMethod29<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<30>) {
+    AddMethod( name_, new CppMethod30<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<30>) {
+    AddMethod(name_, new const_CppMethod30<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<30>) {
+    AddMethod(name_, new CppMethod30<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<30>) {
+    AddMethod(name_, new const_CppMethod30<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<31>) {
+    AddMethod( name_, new CppMethod31<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<31>) {
+    AddMethod(name_, new const_CppMethod31<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<31>) {
+    AddMethod(name_, new CppMethod31<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<31>) {
+    AddMethod(name_, new const_CppMethod31<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<32>) {
+    AddMethod( name_, new CppMethod32<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<32>) {
+    AddMethod(name_, new const_CppMethod32<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<32>) {
+    AddMethod(name_, new CppMethod32<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<32>) {
+    AddMethod(name_, new const_CppMethod32<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<33>) {
+    AddMethod( name_, new CppMethod33<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<33>) {
+    AddMethod(name_, new const_CppMethod33<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<33>) {
+    AddMethod(name_, new CppMethod33<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<33>) {
+    AddMethod(name_, new const_CppMethod33<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<34>) {
+    AddMethod( name_, new CppMethod34<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<34>) {
+    AddMethod(name_, new const_CppMethod34<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<34>) {
+    AddMethod(name_, new CppMethod34<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<34>) {
+    AddMethod(name_, new const_CppMethod34<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<35>) {
+    AddMethod( name_, new CppMethod35<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<35>) {
+    AddMethod(name_, new const_CppMethod35<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<35>) {
+    AddMethod(name_, new CppMethod35<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<35>) {
+    AddMethod(name_, new const_CppMethod35<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<36>) {
+    AddMethod( name_, new CppMethod36<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<36>) {
+    AddMethod(name_, new const_CppMethod36<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<36>) {
+    AddMethod(name_, new CppMethod36<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<36>) {
+    AddMethod(name_, new const_CppMethod36<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<37>) {
+    AddMethod( name_, new CppMethod37<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<37>) {
+    AddMethod(name_, new const_CppMethod37<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<37>) {
+    AddMethod(name_, new CppMethod37<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<37>) {
+    AddMethod(name_, new const_CppMethod37<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<38>) {
+    AddMethod( name_, new CppMethod38<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<38>) {
+    AddMethod(name_, new const_CppMethod38<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<38>) {
+    AddMethod(name_, new CppMethod38<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<38>) {
+    AddMethod(name_, new const_CppMethod38<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<39>) {
+    AddMethod( name_, new CppMethod39<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<39>) {
+    AddMethod(name_, new const_CppMethod39<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<39>) {
+    AddMethod(name_, new CppMethod39<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<39>) {
+    AddMethod(name_, new const_CppMethod39<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<40>) {
+    AddMethod( name_, new CppMethod40<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<40>) {
+    AddMethod(name_, new const_CppMethod40<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<40>) {
+    AddMethod(name_, new CppMethod40<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<40>) {
+    AddMethod(name_, new const_CppMethod40<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<41>) {
+    AddMethod( name_, new CppMethod41<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<41>) {
+    AddMethod(name_, new const_CppMethod41<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<41>) {
+    AddMethod(name_, new CppMethod41<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<41>) {
+    AddMethod(name_, new const_CppMethod41<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<42>) {
+    AddMethod( name_, new CppMethod42<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<42>) {
+    AddMethod(name_, new const_CppMethod42<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<42>) {
+    AddMethod(name_, new CppMethod42<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<42>) {
+    AddMethod(name_, new const_CppMethod42<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<43>) {
+    AddMethod( name_, new CppMethod43<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<43>) {
+    AddMethod(name_, new const_CppMethod43<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<43>) {
+    AddMethod(name_, new CppMethod43<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<43>) {
+    AddMethod(name_, new const_CppMethod43<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<44>) {
+    AddMethod( name_, new CppMethod44<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<44>) {
+    AddMethod(name_, new const_CppMethod44<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<44>) {
+    AddMethod(name_, new CppMethod44<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<44>) {
+    AddMethod(name_, new const_CppMethod44<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<45>) {
+    AddMethod( name_, new CppMethod45<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<45>) {
+    AddMethod(name_, new const_CppMethod45<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<45>) {
+    AddMethod(name_, new CppMethod45<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<45>) {
+    AddMethod(name_, new const_CppMethod45<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<46>) {
+    AddMethod( name_, new CppMethod46<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<46>) {
+    AddMethod(name_, new const_CppMethod46<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<46>) {
+    AddMethod(name_, new CppMethod46<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<46>) {
+    AddMethod(name_, new const_CppMethod46<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<47>) {
+    AddMethod( name_, new CppMethod47<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<47>) {
+    AddMethod(name_, new const_CppMethod47<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<47>) {
+    AddMethod(name_, new CppMethod47<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<47>) {
+    AddMethod(name_, new const_CppMethod47<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<48>) {
+    AddMethod( name_, new CppMethod48<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<48>) {
+    AddMethod(name_, new const_CppMethod48<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<48>) {
+    AddMethod(name_, new CppMethod48<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<48>) {
+    AddMethod(name_, new const_CppMethod48<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<49>) {
+    AddMethod( name_, new CppMethod49<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<49>) {
+    AddMethod(name_, new const_CppMethod49<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<49>) {
+    AddMethod(name_, new CppMethod49<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<49>) {
+    AddMethod(name_, new const_CppMethod49<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<50>) {
+    AddMethod( name_, new CppMethod50<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<50>) {
+    AddMethod(name_, new const_CppMethod50<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<50>) {
+    AddMethod(name_, new CppMethod50<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<50>) {
+    AddMethod(name_, new const_CppMethod50<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<51>) {
+    AddMethod( name_, new CppMethod51<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<51>) {
+    AddMethod(name_, new const_CppMethod51<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<51>) {
+    AddMethod(name_, new CppMethod51<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<51>) {
+    AddMethod(name_, new const_CppMethod51<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<52>) {
+    AddMethod( name_, new CppMethod52<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<52>) {
+    AddMethod(name_, new const_CppMethod52<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<52>) {
+    AddMethod(name_, new CppMethod52<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<52>) {
+    AddMethod(name_, new const_CppMethod52<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<53>) {
+    AddMethod( name_, new CppMethod53<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<53>) {
+    AddMethod(name_, new const_CppMethod53<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<53>) {
+    AddMethod(name_, new CppMethod53<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<53>) {
+    AddMethod(name_, new const_CppMethod53<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<54>) {
+    AddMethod( name_, new CppMethod54<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<54>) {
+    AddMethod(name_, new const_CppMethod54<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<54>) {
+    AddMethod(name_, new CppMethod54<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<54>) {
+    AddMethod(name_, new const_CppMethod54<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<55>) {
+    AddMethod( name_, new CppMethod55<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<55>) {
+    AddMethod(name_, new const_CppMethod55<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<55>) {
+    AddMethod(name_, new CppMethod55<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<55>) {
+    AddMethod(name_, new const_CppMethod55<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<56>) {
+    AddMethod( name_, new CppMethod56<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<56>) {
+    AddMethod(name_, new const_CppMethod56<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<56>) {
+    AddMethod(name_, new CppMethod56<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<56>) {
+    AddMethod(name_, new const_CppMethod56<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<57>) {
+    AddMethod( name_, new CppMethod57<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<57>) {
+    AddMethod(name_, new const_CppMethod57<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<57>) {
+    AddMethod(name_, new CppMethod57<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<57>) {
+    AddMethod(name_, new const_CppMethod57<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<58>) {
+    AddMethod( name_, new CppMethod58<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<58>) {
+    AddMethod(name_, new const_CppMethod58<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<58>) {
+    AddMethod(name_, new CppMethod58<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<58>) {
+    AddMethod(name_, new const_CppMethod58<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<59>) {
+    AddMethod( name_, new CppMethod59<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<59>) {
+    AddMethod(name_, new const_CppMethod59<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<59>) {
+    AddMethod(name_, new CppMethod59<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<59>) {
+    AddMethod(name_, new const_CppMethod59<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<60>) {
+    AddMethod( name_, new CppMethod60<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<60>) {
+    AddMethod(name_, new const_CppMethod60<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<60>) {
+    AddMethod(name_, new CppMethod60<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<60>) {
+    AddMethod(name_, new const_CppMethod60<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<61>) {
+    AddMethod( name_, new CppMethod61<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<61>) {
+    AddMethod(name_, new const_CppMethod61<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<61>) {
+    AddMethod(name_, new CppMethod61<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<61>) {
+    AddMethod(name_, new const_CppMethod61<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<62>) {
+    AddMethod( name_, new CppMethod62<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<62>) {
+    AddMethod(name_, new const_CppMethod62<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<62>) {
+    AddMethod(name_, new CppMethod62<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<62>) {
+    AddMethod(name_, new const_CppMethod62<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<63>) {
+    AddMethod( name_, new CppMethod63<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<63>) {
+    AddMethod(name_, new const_CppMethod63<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<63>) {
+    AddMethod(name_, new CppMethod63<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<63>) {
+    AddMethod(name_, new const_CppMethod63<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<64>) {
+    AddMethod( name_, new CppMethod64<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<64>) {
+    AddMethod(name_, new const_CppMethod64<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<64>) {
+    AddMethod(name_, new CppMethod64<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<64>) {
+    AddMethod(name_, new const_CppMethod64<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>( fun ), valid, docstring);
+    return *this;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<65>) {
+    AddMethod( name_, new CppMethod65<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64>
+self& method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64) const,
+             const char* docstring = 0, ValidMethod valid = &yes_arity<65>) {
+    AddMethod(name_, new const_CppMethod65<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(fun), valid, docstring);
+    return *this ;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64>
+self& nonconst_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64),
+                      const char* docstring = 0, ValidMethod valid = &yes_arity<65>) {
+    AddMethod(name_, new CppMethod65<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>( fun ), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64>
+self& const_method(const char* name_, RESULT_TYPE (Class::*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64) const,
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<65>) {
+    AddMethod(name_, new const_CppMethod65<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>( fun ), valid, docstring);
+    return *this;
+}
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_Pointer_method.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_Pointer_method.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_Pointer_method.h	(revision 2476)
@@ -0,0 +1,1017 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Module_generated_Pointer_method.h:  -- generated helper code for Modules
+//                                        see rcpp-scripts repo for generator script
+//
+// Copyright (C) 2010 - 2014  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_generated_Pointer_method_h
+#define Rcpp_Module_generated_Pointer_method_h
+
+template <typename RESULT_TYPE>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*),
+             const char* docstring = 0, ValidMethod valid = &yes) {
+    AddMethod(name_, new Pointer_CppMethod0<Class,RESULT_TYPE>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*),
+                   const char* docstring = 0, ValidMethod valid = &yes ){
+    AddMethod(name_, new Const_Pointer_CppMethod0<Class,RESULT_TYPE>( fun ), valid, docstring);
+    return *this;
+}
+
+
+
+template <typename RESULT_TYPE, typename U0>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<1>) {
+    AddMethod(name_, new Pointer_CppMethod1<Class,RESULT_TYPE,U0>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<1>) {
+    AddMethod(name_, new Const_Pointer_CppMethod1<Class,RESULT_TYPE,U0>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<2>) {
+    AddMethod(name_, new Pointer_CppMethod2<Class,RESULT_TYPE,U0, U1>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<2>) {
+    AddMethod(name_, new Const_Pointer_CppMethod2<Class,RESULT_TYPE,U0, U1>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<3>) {
+    AddMethod(name_, new Pointer_CppMethod3<Class,RESULT_TYPE,U0, U1, U2>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<3>) {
+    AddMethod(name_, new Const_Pointer_CppMethod3<Class,RESULT_TYPE,U0, U1, U2>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<4>) {
+    AddMethod(name_, new Pointer_CppMethod4<Class,RESULT_TYPE,U0, U1, U2, U3>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<4>) {
+    AddMethod(name_, new Const_Pointer_CppMethod4<Class,RESULT_TYPE,U0, U1, U2, U3>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<5>) {
+    AddMethod(name_, new Pointer_CppMethod5<Class,RESULT_TYPE,U0, U1, U2, U3, U4>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<5>) {
+    AddMethod(name_, new Const_Pointer_CppMethod5<Class,RESULT_TYPE,U0, U1, U2, U3, U4>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<6>) {
+    AddMethod(name_, new Pointer_CppMethod6<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<6>) {
+    AddMethod(name_, new Const_Pointer_CppMethod6<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<7>) {
+    AddMethod(name_, new Pointer_CppMethod7<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<7>) {
+    AddMethod(name_, new Const_Pointer_CppMethod7<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<8>) {
+    AddMethod(name_, new Pointer_CppMethod8<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<8>) {
+    AddMethod(name_, new Const_Pointer_CppMethod8<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<9>) {
+    AddMethod(name_, new Pointer_CppMethod9<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<9>) {
+    AddMethod(name_, new Const_Pointer_CppMethod9<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<10>) {
+    AddMethod(name_, new Pointer_CppMethod10<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<10>) {
+    AddMethod(name_, new Const_Pointer_CppMethod10<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<11>) {
+    AddMethod(name_, new Pointer_CppMethod11<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<11>) {
+    AddMethod(name_, new Const_Pointer_CppMethod11<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<12>) {
+    AddMethod(name_, new Pointer_CppMethod12<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<12>) {
+    AddMethod(name_, new Const_Pointer_CppMethod12<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<13>) {
+    AddMethod(name_, new Pointer_CppMethod13<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<13>) {
+    AddMethod(name_, new Const_Pointer_CppMethod13<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<14>) {
+    AddMethod(name_, new Pointer_CppMethod14<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<14>) {
+    AddMethod(name_, new Const_Pointer_CppMethod14<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<15>) {
+    AddMethod(name_, new Pointer_CppMethod15<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<15>) {
+    AddMethod(name_, new Const_Pointer_CppMethod15<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<16>) {
+    AddMethod(name_, new Pointer_CppMethod16<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<16>) {
+    AddMethod(name_, new Const_Pointer_CppMethod16<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<17>) {
+    AddMethod(name_, new Pointer_CppMethod17<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<17>) {
+    AddMethod(name_, new Const_Pointer_CppMethod17<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<18>) {
+    AddMethod(name_, new Pointer_CppMethod18<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<18>) {
+    AddMethod(name_, new Const_Pointer_CppMethod18<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<19>) {
+    AddMethod(name_, new Pointer_CppMethod19<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<19>) {
+    AddMethod(name_, new Const_Pointer_CppMethod19<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<20>) {
+    AddMethod(name_, new Pointer_CppMethod20<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<20>) {
+    AddMethod(name_, new Const_Pointer_CppMethod20<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<21>) {
+    AddMethod(name_, new Pointer_CppMethod21<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<21>) {
+    AddMethod(name_, new Const_Pointer_CppMethod21<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<22>) {
+    AddMethod(name_, new Pointer_CppMethod22<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<22>) {
+    AddMethod(name_, new Const_Pointer_CppMethod22<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<23>) {
+    AddMethod(name_, new Pointer_CppMethod23<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<23>) {
+    AddMethod(name_, new Const_Pointer_CppMethod23<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<24>) {
+    AddMethod(name_, new Pointer_CppMethod24<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<24>) {
+    AddMethod(name_, new Const_Pointer_CppMethod24<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<25>) {
+    AddMethod(name_, new Pointer_CppMethod25<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<25>) {
+    AddMethod(name_, new Const_Pointer_CppMethod25<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<26>) {
+    AddMethod(name_, new Pointer_CppMethod26<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<26>) {
+    AddMethod(name_, new Const_Pointer_CppMethod26<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<27>) {
+    AddMethod(name_, new Pointer_CppMethod27<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<27>) {
+    AddMethod(name_, new Const_Pointer_CppMethod27<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<28>) {
+    AddMethod(name_, new Pointer_CppMethod28<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<28>) {
+    AddMethod(name_, new Const_Pointer_CppMethod28<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<29>) {
+    AddMethod(name_, new Pointer_CppMethod29<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<29>) {
+    AddMethod(name_, new Const_Pointer_CppMethod29<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<30>) {
+    AddMethod(name_, new Pointer_CppMethod30<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<30>) {
+    AddMethod(name_, new Const_Pointer_CppMethod30<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<31>) {
+    AddMethod(name_, new Pointer_CppMethod31<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<31>) {
+    AddMethod(name_, new Const_Pointer_CppMethod31<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<32>) {
+    AddMethod(name_, new Pointer_CppMethod32<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<32>) {
+    AddMethod(name_, new Const_Pointer_CppMethod32<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<33>) {
+    AddMethod(name_, new Pointer_CppMethod33<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<33>) {
+    AddMethod(name_, new Const_Pointer_CppMethod33<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<34>) {
+    AddMethod(name_, new Pointer_CppMethod34<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<34>) {
+    AddMethod(name_, new Const_Pointer_CppMethod34<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<35>) {
+    AddMethod(name_, new Pointer_CppMethod35<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<35>) {
+    AddMethod(name_, new Const_Pointer_CppMethod35<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<36>) {
+    AddMethod(name_, new Pointer_CppMethod36<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<36>) {
+    AddMethod(name_, new Const_Pointer_CppMethod36<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<37>) {
+    AddMethod(name_, new Pointer_CppMethod37<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<37>) {
+    AddMethod(name_, new Const_Pointer_CppMethod37<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<38>) {
+    AddMethod(name_, new Pointer_CppMethod38<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<38>) {
+    AddMethod(name_, new Const_Pointer_CppMethod38<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<39>) {
+    AddMethod(name_, new Pointer_CppMethod39<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<39>) {
+    AddMethod(name_, new Const_Pointer_CppMethod39<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<40>) {
+    AddMethod(name_, new Pointer_CppMethod40<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<40>) {
+    AddMethod(name_, new Const_Pointer_CppMethod40<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<41>) {
+    AddMethod(name_, new Pointer_CppMethod41<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<41>) {
+    AddMethod(name_, new Const_Pointer_CppMethod41<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<42>) {
+    AddMethod(name_, new Pointer_CppMethod42<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<42>) {
+    AddMethod(name_, new Const_Pointer_CppMethod42<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<43>) {
+    AddMethod(name_, new Pointer_CppMethod43<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<43>) {
+    AddMethod(name_, new Const_Pointer_CppMethod43<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<44>) {
+    AddMethod(name_, new Pointer_CppMethod44<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<44>) {
+    AddMethod(name_, new Const_Pointer_CppMethod44<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<45>) {
+    AddMethod(name_, new Pointer_CppMethod45<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<45>) {
+    AddMethod(name_, new Const_Pointer_CppMethod45<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<46>) {
+    AddMethod(name_, new Pointer_CppMethod46<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<46>) {
+    AddMethod(name_, new Const_Pointer_CppMethod46<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<47>) {
+    AddMethod(name_, new Pointer_CppMethod47<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<47>) {
+    AddMethod(name_, new Const_Pointer_CppMethod47<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<48>) {
+    AddMethod(name_, new Pointer_CppMethod48<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<48>) {
+    AddMethod(name_, new Const_Pointer_CppMethod48<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<49>) {
+    AddMethod(name_, new Pointer_CppMethod49<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<49>) {
+    AddMethod(name_, new Const_Pointer_CppMethod49<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<50>) {
+    AddMethod(name_, new Pointer_CppMethod50<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<50>) {
+    AddMethod(name_, new Const_Pointer_CppMethod50<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<51>) {
+    AddMethod(name_, new Pointer_CppMethod51<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<51>) {
+    AddMethod(name_, new Const_Pointer_CppMethod51<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<52>) {
+    AddMethod(name_, new Pointer_CppMethod52<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<52>) {
+    AddMethod(name_, new Const_Pointer_CppMethod52<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<53>) {
+    AddMethod(name_, new Pointer_CppMethod53<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<53>) {
+    AddMethod(name_, new Const_Pointer_CppMethod53<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<54>) {
+    AddMethod(name_, new Pointer_CppMethod54<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<54>) {
+    AddMethod(name_, new Const_Pointer_CppMethod54<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<55>) {
+    AddMethod(name_, new Pointer_CppMethod55<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<55>) {
+    AddMethod(name_, new Const_Pointer_CppMethod55<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<56>) {
+    AddMethod(name_, new Pointer_CppMethod56<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<56>) {
+    AddMethod(name_, new Const_Pointer_CppMethod56<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<57>) {
+    AddMethod(name_, new Pointer_CppMethod57<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<57>) {
+    AddMethod(name_, new Const_Pointer_CppMethod57<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<58>) {
+    AddMethod(name_, new Pointer_CppMethod58<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<58>) {
+    AddMethod(name_, new Const_Pointer_CppMethod58<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<59>) {
+    AddMethod(name_, new Pointer_CppMethod59<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<59>) {
+    AddMethod(name_, new Const_Pointer_CppMethod59<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<60>) {
+    AddMethod(name_, new Pointer_CppMethod60<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<60>) {
+    AddMethod(name_, new Const_Pointer_CppMethod60<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<61>) {
+    AddMethod(name_, new Pointer_CppMethod61<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<61>) {
+    AddMethod(name_, new Const_Pointer_CppMethod61<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<62>) {
+    AddMethod(name_, new Pointer_CppMethod62<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<62>) {
+    AddMethod(name_, new Const_Pointer_CppMethod62<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<63>) {
+    AddMethod(name_, new Pointer_CppMethod63<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<63>) {
+    AddMethod(name_, new Const_Pointer_CppMethod63<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<64>) {
+    AddMethod(name_, new Pointer_CppMethod64<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<64>) {
+    AddMethod(name_, new Const_Pointer_CppMethod64<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(fun), valid, docstring);
+    return *this ;
+}
+
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64>
+self& method(const char* name_, RESULT_TYPE (*fun)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64),
+             const char* docstring = 0, ValidMethod valid = &yes_arity<65>) {
+    AddMethod(name_, new Pointer_CppMethod65<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(fun), valid, docstring);
+    return *this;
+}
+
+template <typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64>
+self& const_method(const char* name_, RESULT_TYPE (*fun)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64),
+                   const char* docstring = 0, ValidMethod valid = &yes_arity<65>) {
+    AddMethod(name_, new Const_Pointer_CppMethod65<Class,RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(fun), valid, docstring);
+    return *this ;
+}
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/class.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/class.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/class.h	(revision 2476)
@@ -0,0 +1,539 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// class.h: Rcpp R/C++ interface class library -- Rcpp modules
+//
+// Copyright (C) 2012 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_CLASS_h
+#define Rcpp_Module_CLASS_h
+
+    template <typename Class>
+    class class_ : public class_Base {
+    public:
+        typedef class_<Class> self ;
+        typedef CppMethod<Class> method_class ;
+
+        typedef SignedMethod<Class> signed_method_class ;
+        typedef std::vector<signed_method_class*> vec_signed_method ;
+        typedef std::map<std::string,vec_signed_method*> map_vec_signed_method ;
+        typedef std::pair<std::string,vec_signed_method*> vec_signed_method_pair ;
+
+        typedef std::map<std::string,method_class*> METHOD_MAP ;
+        typedef std::pair<const std::string,method_class*> PAIR ;
+
+        typedef Rcpp::XPtr<Class> XP ;
+        typedef CppFinalizer<Class> finalizer_class ;
+
+        typedef Constructor_Base<Class> constructor_class ;
+        typedef SignedConstructor<Class> signed_constructor_class ;
+        typedef std::vector<signed_constructor_class*> vec_signed_constructor ;
+
+        typedef Factory_Base<Class> factory_class ;
+        typedef SignedFactory<Class> signed_factory_class ;
+        typedef std::vector<signed_factory_class*> vec_signed_factory ;
+
+        typedef CppProperty<Class> prop_class ;
+        typedef std::map<std::string,prop_class*> PROPERTY_MAP ;
+        typedef std::pair<const std::string,prop_class*> PROP_PAIR ;
+
+        class_( const char* name_, const char* doc = 0) :
+            class_Base(name_, doc),
+            vec_methods(),
+            properties(),
+            finalizer_pointer(0),
+            specials(0),
+            constructors(),
+            factories(),
+            class_pointer(0),
+            typeinfo_name("")
+        {
+            class_pointer = get_instance() ;
+        }
+
+    private:
+
+        self* get_instance() {
+
+            // check if we already have it
+            if( class_pointer ) {
+                RCPP_DEBUG_MODULE_2( "class_<%s>::get_instance(). [cached] class_pointer = <%p>\n", DEMANGLE(Class), class_pointer ) ;
+                return class_pointer ;
+            }
+
+            // check if it exists in the module
+            Module* module = getCurrentScope() ;
+            if( module->has_class(name) ){
+                RCPP_DEBUG_MODULE_2( "class_<%s>::get_instance(). [from module] class_pointer = class_pointer\n", DEMANGLE(Class), class_pointer ) ;
+                class_pointer = dynamic_cast<self*>( module->get_class_pointer(name) ) ;
+            } else {
+                class_pointer = new self ;
+                class_pointer->name = name ;
+                class_pointer->docstring = docstring ;
+                class_pointer->finalizer_pointer = new finalizer_class ;
+                class_pointer->typeinfo_name = typeid(Class).name() ;
+                module->AddClass( name.c_str(), class_pointer ) ;
+                RCPP_DEBUG_MODULE_2( "class_<%s>::get_instance(). [freshly created] class_pointer = class_pointer\n", DEMANGLE(Class), class_pointer ) ;
+
+            }
+            return class_pointer ;
+        }
+
+    public:
+
+        ~class_(){}
+
+        self& AddConstructor( constructor_class* ctor, ValidConstructor valid, const char* docstring = 0 ){
+            class_pointer->constructors.push_back( new signed_constructor_class( ctor, valid, docstring ) );
+            return *this ;
+        }
+
+        self& AddFactory( factory_class* fact, ValidConstructor valid, const char* docstring = 0 ){
+            class_pointer->factories.push_back( new signed_factory_class( fact, valid, docstring ) ) ;
+            return *this ;
+        }
+
+        self& default_constructor( const char* docstring= 0, ValidConstructor valid = &yes_arity<0> ){
+            return constructor( docstring, valid ) ;
+        }
+
+#include <Rcpp/module/Module_generated_class_constructor.h>
+#include <Rcpp/module/Module_generated_class_factory.h>
+
+    public:
+
+        std::string get_typeinfo_name(){
+            return typeinfo_name ;
+        }
+
+        SEXP newInstance( SEXP* args, int nargs ){
+            BEGIN_RCPP
+                signed_constructor_class* p ;
+            int n = constructors.size() ;
+            for( int i=0; i<n; i++ ){
+                p = constructors[i];
+                bool ok = (p->valid)(args, nargs) ;
+                if( ok ){
+                    Class* ptr = p->ctor->get_new( args, nargs ) ;
+                    return XP( ptr, true ) ;
+                }
+            }
+
+            signed_factory_class* pfact ;
+            n = factories.size() ;
+            for( int i=0; i<n; i++){
+              pfact = factories[i] ;
+              bool ok = (pfact->valid)(args, nargs) ;
+              if( ok ){
+                Class* ptr = pfact->fact->get_new( args, nargs ) ;
+                return XP( ptr, true ) ;
+              }
+            }
+
+            throw std::range_error( "no valid constructor available for the argument list" ) ;
+            END_RCPP
+                }
+
+        bool has_default_constructor(){
+            int n = constructors.size() ;
+            signed_constructor_class* p ;
+            for( int i=0; i<n; i++ ){
+                p = constructors[i];
+                if( p->nargs() == 0 ) return true ;
+            }
+            n = factories.size() ;
+            signed_factory_class* pfact ;
+            for( int i=0; i<n; i++ ){
+                pfact = factories[i];
+                if( pfact->nargs() == 0 ) return true ;
+            }
+            return false ;
+        }
+
+        SEXP invoke( SEXP method_xp, SEXP object, SEXP *args, int nargs ){
+            BEGIN_RCPP
+
+                vec_signed_method* mets = reinterpret_cast< vec_signed_method* >( EXTPTR_PTR( method_xp ) ) ;
+            typename vec_signed_method::iterator it = mets->begin() ;
+            int n = mets->size() ;
+            method_class* m = 0 ;
+            bool ok = false ;
+            for( int i=0; i<n; i++, ++it ){
+                if( ( (*it)->valid )( args, nargs) ){
+                    m = (*it)->method ;
+                    ok = true ;
+                    break ;
+                }
+            }
+            if( !ok ){
+                throw std::range_error( "could not find valid method" ) ;
+            }
+            if( m->is_void() ){
+                m->operator()( XP(object), args );
+                return Rcpp::List::create( true ) ;
+            } else {
+                return Rcpp::List::create( false, m->operator()( XP(object), args ) ) ;
+            }
+            END_RCPP
+                }
+
+        SEXP invoke_void( SEXP method_xp, SEXP object, SEXP *args, int nargs ){
+            BEGIN_RCPP
+
+                vec_signed_method* mets = reinterpret_cast< vec_signed_method* >( EXTPTR_PTR( method_xp ) ) ;
+            typename vec_signed_method::iterator it = mets->begin() ;
+            int n = mets->size() ;
+            method_class* m = 0 ;
+            bool ok = false ;
+            for( int i=0; i<n; i++, ++it ){
+                if( ( (*it)->valid )( args, nargs) ){
+                    m = (*it)->method ;
+                    ok = true ;
+                    break ;
+                }
+            }
+            if( !ok ){
+                throw std::range_error( "could not find valid method" ) ;
+            }
+            m->operator()( XP(object), args );
+            END_RCPP
+                }
+
+        SEXP invoke_notvoid( SEXP method_xp, SEXP object, SEXP *args, int nargs ){
+            BEGIN_RCPP
+
+                vec_signed_method* mets = reinterpret_cast< vec_signed_method* >( EXTPTR_PTR( method_xp ) ) ;
+            typename vec_signed_method::iterator it = mets->begin() ;
+            int n = mets->size() ;
+            method_class* m = 0 ;
+            bool ok = false ;
+            for( int i=0; i<n; i++, ++it ){
+                if( ( (*it)->valid )( args, nargs) ){
+                    m = (*it)->method ;
+                    ok = true ;
+                    break ;
+                }
+            }
+            if( !ok ){
+                throw std::range_error( "could not find valid method" ) ;
+            }
+            return m->operator()( XP(object), args ) ;
+            END_RCPP
+                }
+
+
+        self& AddMethod( const char* name_, method_class* m, ValidMethod valid = &yes, const char* docstring = 0){
+            RCPP_DEBUG_MODULE_1( "AddMethod( %s, method_class* m, ValidMethod valid = &yes, const char* docstring = 0", name_ )
+            self* ptr = get_instance() ;
+            typename map_vec_signed_method::iterator it = ptr->vec_methods.find( name_ ) ;
+            if( it == ptr->vec_methods.end() ){
+                it = ptr->vec_methods.insert( vec_signed_method_pair( name_, new vec_signed_method() ) ).first ;
+            }
+            (it->second)->push_back( new signed_method_class(m, valid, docstring ) ) ;
+            if( *name_ == '[' ) ptr->specials++ ;
+            return *this ;
+        }
+
+        self& AddProperty( const char* name_, prop_class* p){
+            get_instance()->properties.insert( PROP_PAIR( name_, p ) ) ;
+            return *this ;
+        }
+
+#include <Rcpp/module/Module_generated_method.h>
+#include <Rcpp/module/Module_generated_Pointer_method.h>
+
+        bool has_method( const std::string& m){
+            return vec_methods.find(m) != vec_methods.end() ;
+        }
+        bool has_property( const std::string& m){
+            return properties.find(m) != properties.end() ;
+        }
+        bool property_is_readonly( const std::string& p) {
+            typename PROPERTY_MAP::iterator it = properties.find( p ) ;
+            if( it == properties.end() ) throw std::range_error( "no such property" ) ;
+            return it->second->is_readonly() ;
+        }
+        std::string property_class(const std::string& p) {
+            typename PROPERTY_MAP::iterator it = properties.find( p ) ;
+            if( it == properties.end() ) throw std::range_error( "no such property" ) ;
+            return it->second->get_class() ;
+        }
+
+        Rcpp::CharacterVector method_names(){
+            int n = 0 ;
+            int s = vec_methods.size() ;
+            typename map_vec_signed_method::iterator it = vec_methods.begin( ) ;
+            for( int i=0; i<s; i++, ++it){
+                n += (it->second)->size() ;
+            }
+            Rcpp::CharacterVector out(n) ;
+            it = vec_methods.begin() ;
+            int k = 0 ;
+            for( int i=0; i<s; i++, ++it){
+                n = (it->second)->size() ;
+                std::string name = it->first ;
+                for( int j=0; j<n; j++, k++){
+                    out[k] = name ;
+                }
+            }
+            return out ;
+        }
+
+        Rcpp::IntegerVector methods_arity(){
+            int n = 0 ;
+            int s = vec_methods.size() ;
+            typename map_vec_signed_method::iterator it = vec_methods.begin( ) ;
+            for( int i=0; i<s; i++, ++it){
+                n += (it->second)->size() ;
+            }
+            Rcpp::CharacterVector mnames(n) ;
+            Rcpp::IntegerVector res(n) ;
+            it = vec_methods.begin() ;
+            int k = 0 ;
+            for( int i=0; i<s; i++, ++it){
+                n = (it->second)->size() ;
+                std::string name = it->first ;
+                typename vec_signed_method::iterator m_it = (it->second)->begin() ;
+                for( int j=0; j<n; j++, k++, ++m_it){
+                    mnames[k] = name ;
+                    res[k] = (*m_it)->nargs() ;
+                }
+            }
+            res.names( ) = mnames ;
+            return res ;
+        }
+
+        Rcpp::LogicalVector methods_voidness(){
+            int n = 0 ;
+            int s = vec_methods.size() ;
+            typename map_vec_signed_method::iterator it = vec_methods.begin( ) ;
+            for( int i=0; i<s; i++, ++it){
+                n += (it->second)->size() ;
+            }
+            Rcpp::CharacterVector mnames(n) ;
+            Rcpp::LogicalVector res(n) ;
+            it = vec_methods.begin() ;
+            int k = 0 ;
+            for( int i=0; i<s; i++, ++it){
+                n = (it->second)->size() ;
+                std::string name = it->first ;
+                typename vec_signed_method::iterator m_it = (it->second)->begin() ;
+                for( int j=0; j<n; j++, k++, ++m_it){
+                    mnames[k] = name ;
+                    res[k] = (*m_it)->is_void() ;
+                }
+            }
+            res.names( ) = mnames ;
+            return res ;
+        }
+
+
+        Rcpp::CharacterVector property_names(){
+            int n = properties.size() ;
+            Rcpp::CharacterVector out(n) ;
+            typename PROPERTY_MAP::iterator it = properties.begin( ) ;
+            for( int i=0; i<n; i++, ++it){
+                out[i] = it->first ;
+            }
+            return out ;
+        }
+
+        Rcpp::List property_classes(){
+            int n = properties.size() ;
+            Rcpp::CharacterVector pnames(n) ;
+            Rcpp::List out(n) ;
+            typename PROPERTY_MAP::iterator it = properties.begin( ) ;
+            for( int i=0; i<n; i++, ++it){
+                pnames[i] = it->first ;
+                out[i] = it->second->get_class() ;
+            }
+            out.names() = pnames ;
+            return out ;
+        }
+
+        Rcpp::CharacterVector complete(){
+            int n = vec_methods.size() - specials ;
+            int ntotal = n + properties.size() ;
+            Rcpp::CharacterVector out(ntotal) ;
+            typename map_vec_signed_method::iterator it = vec_methods.begin( ) ;
+            std::string buffer ;
+            int i=0 ;
+            for( ; i<n; ++it){
+                buffer = it->first ;
+                if( buffer[0] == '[' ) continue ;
+                // if( (it->second)->nargs() == 0){
+                //      buffer += "() " ;
+                // } else {
+                //      buffer += "( " ;
+                // }
+                buffer += "( " ;
+                out[i] = buffer ;
+                i++ ;
+            }
+            typename PROPERTY_MAP::iterator prop_it = properties.begin();
+            for( ; i<ntotal; i++, ++prop_it){
+                out[i] = prop_it->first ;
+            }
+            return out ;
+        }
+
+        SEXP getProperty( SEXP field_xp , SEXP object) {
+            BEGIN_RCPP
+                prop_class* prop = reinterpret_cast< prop_class* >( EXTPTR_PTR( field_xp ) ) ;
+            return prop->get( XP(object) );
+            END_RCPP
+                }
+
+        void setProperty( SEXP field_xp, SEXP object, SEXP value)  {
+            BEGIN_RCPP
+                prop_class* prop = reinterpret_cast< prop_class* >( EXTPTR_PTR( field_xp ) ) ;
+            return prop->set( XP(object), value );
+            VOID_END_RCPP
+                }
+
+
+        Rcpp::List fields( const XP_Class& class_xp ){
+            int n = properties.size() ;
+            Rcpp::CharacterVector pnames(n) ;
+            Rcpp::List out(n) ;
+            typename PROPERTY_MAP::iterator it = properties.begin( ) ;
+            for( int i=0; i<n; i++, ++it){
+                pnames[i] = it->first ;
+                out[i] = S4_field<Class>( it->second, class_xp ) ;
+            }
+            out.names() = pnames ;
+            return out ;
+        }
+
+        Rcpp::List getMethods( const XP_Class& class_xp, std::string& buffer){
+            RCPP_DEBUG_MODULE( "Rcpp::List getMethods( const XP_Class& class_xp, std::string& buffer" )
+            #if RCPP_DEBUG_LEVEL > 0
+                Rf_PrintValue( class_xp ) ;
+            #endif
+            int n = vec_methods.size() ;
+            Rcpp::CharacterVector mnames(n) ;
+            Rcpp::List res(n) ;
+            typename map_vec_signed_method::iterator it = vec_methods.begin( ) ;
+            vec_signed_method* v;
+            for( int i=0; i<n; i++, ++it){
+                mnames[i] = it->first ;
+                v = it->second ;
+                res[i] = S4_CppOverloadedMethods<Class>( v , class_xp, it->first.c_str(), buffer ) ;
+            }
+            res.names() = mnames ;
+            return res ;
+        }
+
+        Rcpp::List getConstructors( const XP_Class& class_xp, std::string& buffer){
+            int n = constructors.size() ;
+            Rcpp::List out(n) ;
+            typename vec_signed_constructor::iterator it = constructors.begin( ) ;
+            for( int i=0; i<n; i++, ++it){
+                out[i] = S4_CppConstructor<Class>( *it , class_xp, name, buffer ) ;
+            }
+            return out ;
+        }
+
+#include <Rcpp/module/Module_Field.h>
+
+#include <Rcpp/module/Module_Add_Property.h>
+
+        self& finalizer( void (*f)(Class*) ){
+            SetFinalizer( new FunctionFinalizer<Class>( f ) ) ;
+            return *this ;
+        }
+
+        virtual void run_finalizer( SEXP object ){
+            finalizer_pointer->run( XP(object) ) ;
+        }
+
+        void SetFinalizer( finalizer_class* f ){
+            self* ptr = get_instance() ;
+            if( ptr->finalizer_pointer ) delete ptr->finalizer_pointer ;
+            ptr->finalizer_pointer = f ;
+        }
+
+        map_vec_signed_method vec_methods ;
+        PROPERTY_MAP properties ;
+
+        finalizer_class* finalizer_pointer ;
+        int specials ;
+        vec_signed_constructor constructors ;
+        vec_signed_factory factories ;
+        self* class_pointer ;
+        std::string typeinfo_name ;
+
+
+        class_( ) : class_Base(), vec_methods(), properties(), specials(0), constructors(), factories() {};
+
+
+    public:
+
+        template <typename PARENT>
+        self& derives( const char* parent ){
+            typedef class_<PARENT> parent_class_ ;
+            typedef typename parent_class_::signed_method_class parent_signed_method_class ;
+            typedef typename parent_class_::method_class parent_method_class ;
+
+            Module* scope = getCurrentScope() ;
+            parent_class_* parent_class_pointer = reinterpret_cast< parent_class_* > ( scope->get_class_pointer( parent ) );
+
+            // importing methods
+            typename parent_class_::map_vec_signed_method::iterator parent_vec_methods_iterator = parent_class_pointer->vec_methods.begin() ;
+            typename parent_class_::map_vec_signed_method::iterator parent_vec_methods_end = parent_class_pointer->vec_methods.end() ;
+            std::string method_name ;
+            for( ; parent_vec_methods_iterator != parent_vec_methods_end; parent_vec_methods_iterator++){
+                method_name = parent_vec_methods_iterator->first ;
+
+                typedef typename parent_class_::vec_signed_method parent_vec_signed_method ;
+                parent_vec_signed_method* p_methods = parent_vec_methods_iterator->second ;
+                typename parent_vec_signed_method::iterator methods_it = p_methods->begin() ;
+                typename parent_vec_signed_method::iterator methods_end = p_methods->end() ;
+
+                for( ; methods_it != methods_end; methods_it++){
+                     parent_signed_method_class* signed_method = *methods_it ;
+                     parent_method_class* parent_method = signed_method->method ;
+
+                     CppMethod<Class>* method = new CppInheritedMethod<Class,PARENT>( parent_method ) ;
+
+                     AddMethod( method_name.c_str(), method,  signed_method->valid , signed_method->docstring.c_str() ) ;
+                }
+            }
+
+
+            // importing properties
+            typedef typename parent_class_::PROPERTY_MAP parent_PROPERTY_MAP ;
+            typedef typename parent_PROPERTY_MAP::iterator parent_PROPERTY_MAP_iterator ;
+
+            parent_PROPERTY_MAP_iterator parent_property_it = parent_class_pointer->properties.begin() ;
+            parent_PROPERTY_MAP_iterator parent_property_end = parent_class_pointer->properties.end() ;
+            for( ; parent_property_it != parent_property_end; parent_property_it++){
+                AddProperty(
+                    parent_property_it->first.c_str(),
+                    new CppInheritedProperty<Class,PARENT>( parent_property_it->second )
+                ) ;
+            }
+
+            std::string buffer( "Rcpp_" ) ; buffer += parent ;
+            get_instance()->parents.push_back( buffer.c_str() ) ;
+            return *this ;
+        }
+
+
+    } ;
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_CppMethod.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_CppMethod.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_CppMethod.h	(revision 2476)
@@ -0,0 +1,13817 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Module_generated_CppMethod.h: -- generated helper code for Modules
+//                                  see rcpp-scripts repo for generator script
+//
+// Copyright (C) 2010 - 2014  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_generated_CppMethod_h
+#define Rcpp_Module_generated_CppMethod_h
+
+template <typename Class, typename RESULT_TYPE> class CppMethod0 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(void);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod0( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP*) {
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)());
+    }
+    inline int nargs() { return 0; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class> class CppMethod0<Class,void> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(void);
+    typedef CppMethod<Class> method_class;
+    CppMethod0( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* ) {
+        (object->*met)();
+        return R_NilValue;
+    }
+    inline int nargs() { return 0; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE> class const_CppMethod0 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(void) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod0( Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP*) {
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)());
+    }
+    inline int nargs() { return 0; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class> class const_CppMethod0<Class,void> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(void) const;
+    typedef CppMethod<Class> method_class;
+    const_CppMethod0( Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP*) {
+        (object->*met)( );
+        return R_NilValue;
+    }
+    inline int nargs() { return 0; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0> class CppMethod1 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod1(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0));
+    }
+    inline int nargs() { return 1; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0> class CppMethod1<Class,void,U0> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod1( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+        (object->*met)(x0);
+        return R_NilValue;
+    }
+    inline int nargs() { return 1; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0> class const_CppMethod1 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod1(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0));
+    }
+    inline int nargs() { return 1; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0 > class const_CppMethod1<Class,void,U0> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod1(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+        (object->*met)(x0);
+        return R_NilValue;
+    }
+    inline int nargs() { return 1; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1> class CppMethod2 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod2(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1));
+    }
+    inline int nargs() { return 2; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1> class CppMethod2<Class,void,U0, U1> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod2( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+        (object->*met)(x0, x1);
+        return R_NilValue;
+    }
+    inline int nargs() { return 2; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1> class const_CppMethod2 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod2(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1));
+    }
+    inline int nargs() { return 2; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1 > class const_CppMethod2<Class,void,U0, U1> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod2(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+        (object->*met)(x0, x1);
+        return R_NilValue;
+    }
+    inline int nargs() { return 2; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2> class CppMethod3 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod3(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2));
+    }
+    inline int nargs() { return 3; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2> class CppMethod3<Class,void,U0, U1, U2> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod3( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+        (object->*met)(x0, x1, x2);
+        return R_NilValue;
+    }
+    inline int nargs() { return 3; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2> class const_CppMethod3 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod3(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2));
+    }
+    inline int nargs() { return 3; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2 > class const_CppMethod3<Class,void,U0, U1, U2> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod3(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+        (object->*met)(x0, x1, x2);
+        return R_NilValue;
+    }
+    inline int nargs() { return 3; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3> class CppMethod4 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod4(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3));
+    }
+    inline int nargs() { return 4; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3> class CppMethod4<Class,void,U0, U1, U2, U3> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod4( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+        (object->*met)(x0, x1, x2, x3);
+        return R_NilValue;
+    }
+    inline int nargs() { return 4; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3> class const_CppMethod4 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod4(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3));
+    }
+    inline int nargs() { return 4; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3 > class const_CppMethod4<Class,void,U0, U1, U2, U3> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod4(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+        (object->*met)(x0, x1, x2, x3);
+        return R_NilValue;
+    }
+    inline int nargs() { return 4; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4> class CppMethod5 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod5(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4));
+    }
+    inline int nargs() { return 5; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4> class CppMethod5<Class,void,U0, U1, U2, U3, U4> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod5( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+        (object->*met)(x0, x1, x2, x3, x4);
+        return R_NilValue;
+    }
+    inline int nargs() { return 5; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4> class const_CppMethod5 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod5(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4));
+    }
+    inline int nargs() { return 5; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4 > class const_CppMethod5<Class,void,U0, U1, U2, U3, U4> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod5(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+        (object->*met)(x0, x1, x2, x3, x4);
+        return R_NilValue;
+    }
+    inline int nargs() { return 5; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5> class CppMethod6 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod6(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5));
+    }
+    inline int nargs() { return 6; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5> class CppMethod6<Class,void,U0, U1, U2, U3, U4, U5> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod6( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+        (object->*met)(x0, x1, x2, x3, x4, x5);
+        return R_NilValue;
+    }
+    inline int nargs() { return 6; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5> class const_CppMethod6 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod6(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5));
+    }
+    inline int nargs() { return 6; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5 > class const_CppMethod6<Class,void,U0, U1, U2, U3, U4, U5> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod6(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+        (object->*met)(x0, x1, x2, x3, x4, x5);
+        return R_NilValue;
+    }
+    inline int nargs() { return 6; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6> class CppMethod7 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod7(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6));
+    }
+    inline int nargs() { return 7; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6> class CppMethod7<Class,void,U0, U1, U2, U3, U4, U5, U6> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod7( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6);
+        return R_NilValue;
+    }
+    inline int nargs() { return 7; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6> class const_CppMethod7 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod7(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6));
+    }
+    inline int nargs() { return 7; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6 > class const_CppMethod7<Class,void,U0, U1, U2, U3, U4, U5, U6> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod7(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6);
+        return R_NilValue;
+    }
+    inline int nargs() { return 7; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7> class CppMethod8 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod8(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7));
+    }
+    inline int nargs() { return 8; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7> class CppMethod8<Class,void,U0, U1, U2, U3, U4, U5, U6, U7> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod8( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7);
+        return R_NilValue;
+    }
+    inline int nargs() { return 8; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7> class const_CppMethod8 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod8(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7));
+    }
+    inline int nargs() { return 8; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7 > class const_CppMethod8<Class,void,U0, U1, U2, U3, U4, U5, U6, U7> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod8(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7);
+        return R_NilValue;
+    }
+    inline int nargs() { return 8; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8> class CppMethod9 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod9(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8));
+    }
+    inline int nargs() { return 9; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8> class CppMethod9<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod9( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8);
+        return R_NilValue;
+    }
+    inline int nargs() { return 9; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8> class const_CppMethod9 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod9(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8));
+    }
+    inline int nargs() { return 9; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8 > class const_CppMethod9<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod9(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8);
+        return R_NilValue;
+    }
+    inline int nargs() { return 9; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9> class CppMethod10 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod10(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9));
+    }
+    inline int nargs() { return 10; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9> class CppMethod10<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod10( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9);
+        return R_NilValue;
+    }
+    inline int nargs() { return 10; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9> class const_CppMethod10 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod10(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9));
+    }
+    inline int nargs() { return 10; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9 > class const_CppMethod10<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod10(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9);
+        return R_NilValue;
+    }
+    inline int nargs() { return 10; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10> class CppMethod11 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod11(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10));
+    }
+    inline int nargs() { return 11; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10> class CppMethod11<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod11( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10);
+        return R_NilValue;
+    }
+    inline int nargs() { return 11; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10> class const_CppMethod11 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod11(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10));
+    }
+    inline int nargs() { return 11; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10 > class const_CppMethod11<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod11(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10);
+        return R_NilValue;
+    }
+    inline int nargs() { return 11; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11> class CppMethod12 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod12(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11));
+    }
+    inline int nargs() { return 12; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11> class CppMethod12<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod12( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11);
+        return R_NilValue;
+    }
+    inline int nargs() { return 12; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11> class const_CppMethod12 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod12(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11));
+    }
+    inline int nargs() { return 12; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11 > class const_CppMethod12<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod12(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11);
+        return R_NilValue;
+    }
+    inline int nargs() { return 12; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12> class CppMethod13 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod13(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12));
+    }
+    inline int nargs() { return 13; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12> class CppMethod13<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod13( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12);
+        return R_NilValue;
+    }
+    inline int nargs() { return 13; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12> class const_CppMethod13 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod13(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12));
+    }
+    inline int nargs() { return 13; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12 > class const_CppMethod13<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod13(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12);
+        return R_NilValue;
+    }
+    inline int nargs() { return 13; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13> class CppMethod14 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod14(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13));
+    }
+    inline int nargs() { return 14; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13> class CppMethod14<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod14( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13);
+        return R_NilValue;
+    }
+    inline int nargs() { return 14; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13> class const_CppMethod14 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod14(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13));
+    }
+    inline int nargs() { return 14; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13 > class const_CppMethod14<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod14(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13);
+        return R_NilValue;
+    }
+    inline int nargs() { return 14; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14> class CppMethod15 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod15(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14));
+    }
+    inline int nargs() { return 15; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14> class CppMethod15<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod15( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14);
+        return R_NilValue;
+    }
+    inline int nargs() { return 15; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14> class const_CppMethod15 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod15(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14));
+    }
+    inline int nargs() { return 15; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14 > class const_CppMethod15<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod15(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14);
+        return R_NilValue;
+    }
+    inline int nargs() { return 15; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15> class CppMethod16 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod16(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15));
+    }
+    inline int nargs() { return 16; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15> class CppMethod16<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod16( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15);
+        return R_NilValue;
+    }
+    inline int nargs() { return 16; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15> class const_CppMethod16 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod16(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15));
+    }
+    inline int nargs() { return 16; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15 > class const_CppMethod16<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod16(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15);
+        return R_NilValue;
+    }
+    inline int nargs() { return 16; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16> class CppMethod17 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod17(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16));
+    }
+    inline int nargs() { return 17; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16> class CppMethod17<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod17( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16);
+        return R_NilValue;
+    }
+    inline int nargs() { return 17; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16> class const_CppMethod17 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod17(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16));
+    }
+    inline int nargs() { return 17; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16 > class const_CppMethod17<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod17(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16);
+        return R_NilValue;
+    }
+    inline int nargs() { return 17; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17> class CppMethod18 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod18(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17));
+    }
+    inline int nargs() { return 18; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17> class CppMethod18<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod18( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17);
+        return R_NilValue;
+    }
+    inline int nargs() { return 18; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17> class const_CppMethod18 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod18(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17));
+    }
+    inline int nargs() { return 18; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17 > class const_CppMethod18<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod18(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17);
+        return R_NilValue;
+    }
+    inline int nargs() { return 18; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18> class CppMethod19 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod19(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18));
+    }
+    inline int nargs() { return 19; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18> class CppMethod19<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod19( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18);
+        return R_NilValue;
+    }
+    inline int nargs() { return 19; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18> class const_CppMethod19 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod19(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18));
+    }
+    inline int nargs() { return 19; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18 > class const_CppMethod19<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod19(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18);
+        return R_NilValue;
+    }
+    inline int nargs() { return 19; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19> class CppMethod20 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod20(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19));
+    }
+    inline int nargs() { return 20; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19> class CppMethod20<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod20( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19);
+        return R_NilValue;
+    }
+    inline int nargs() { return 20; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19> class const_CppMethod20 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod20(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19));
+    }
+    inline int nargs() { return 20; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19 > class const_CppMethod20<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod20(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19);
+        return R_NilValue;
+    }
+    inline int nargs() { return 20; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20> class CppMethod21 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod21(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20));
+    }
+    inline int nargs() { return 21; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20> class CppMethod21<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod21( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20);
+        return R_NilValue;
+    }
+    inline int nargs() { return 21; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20> class const_CppMethod21 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod21(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20));
+    }
+    inline int nargs() { return 21; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20 > class const_CppMethod21<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod21(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20);
+        return R_NilValue;
+    }
+    inline int nargs() { return 21; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21> class CppMethod22 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod22(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21));
+    }
+    inline int nargs() { return 22; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21> class CppMethod22<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod22( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21);
+        return R_NilValue;
+    }
+    inline int nargs() { return 22; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21> class const_CppMethod22 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod22(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21));
+    }
+    inline int nargs() { return 22; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21 > class const_CppMethod22<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod22(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21);
+        return R_NilValue;
+    }
+    inline int nargs() { return 22; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22> class CppMethod23 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod23(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22));
+    }
+    inline int nargs() { return 23; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22> class CppMethod23<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod23( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22);
+        return R_NilValue;
+    }
+    inline int nargs() { return 23; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22> class const_CppMethod23 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod23(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22));
+    }
+    inline int nargs() { return 23; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22 > class const_CppMethod23<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod23(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22);
+        return R_NilValue;
+    }
+    inline int nargs() { return 23; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23> class CppMethod24 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod24(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23));
+    }
+    inline int nargs() { return 24; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23> class CppMethod24<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod24( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23);
+        return R_NilValue;
+    }
+    inline int nargs() { return 24; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23> class const_CppMethod24 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod24(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23));
+    }
+    inline int nargs() { return 24; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23 > class const_CppMethod24<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod24(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23);
+        return R_NilValue;
+    }
+    inline int nargs() { return 24; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24> class CppMethod25 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod25(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24));
+    }
+    inline int nargs() { return 25; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24> class CppMethod25<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod25( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24);
+        return R_NilValue;
+    }
+    inline int nargs() { return 25; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24> class const_CppMethod25 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod25(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24));
+    }
+    inline int nargs() { return 25; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24 > class const_CppMethod25<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod25(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24);
+        return R_NilValue;
+    }
+    inline int nargs() { return 25; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25> class CppMethod26 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod26(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25));
+    }
+    inline int nargs() { return 26; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25> class CppMethod26<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod26( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25);
+        return R_NilValue;
+    }
+    inline int nargs() { return 26; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25> class const_CppMethod26 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod26(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25));
+    }
+    inline int nargs() { return 26; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25 > class const_CppMethod26<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod26(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25);
+        return R_NilValue;
+    }
+    inline int nargs() { return 26; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26> class CppMethod27 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod27(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26));
+    }
+    inline int nargs() { return 27; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26> class CppMethod27<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod27( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26);
+        return R_NilValue;
+    }
+    inline int nargs() { return 27; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26> class const_CppMethod27 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod27(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26));
+    }
+    inline int nargs() { return 27; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26 > class const_CppMethod27<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod27(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26);
+        return R_NilValue;
+    }
+    inline int nargs() { return 27; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27> class CppMethod28 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod28(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27));
+    }
+    inline int nargs() { return 28; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27> class CppMethod28<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod28( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27);
+        return R_NilValue;
+    }
+    inline int nargs() { return 28; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27> class const_CppMethod28 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod28(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27));
+    }
+    inline int nargs() { return 28; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27 > class const_CppMethod28<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod28(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27);
+        return R_NilValue;
+    }
+    inline int nargs() { return 28; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28> class CppMethod29 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod29(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28));
+    }
+    inline int nargs() { return 29; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28> class CppMethod29<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod29( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28);
+        return R_NilValue;
+    }
+    inline int nargs() { return 29; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28> class const_CppMethod29 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod29(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28));
+    }
+    inline int nargs() { return 29; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28 > class const_CppMethod29<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod29(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28);
+        return R_NilValue;
+    }
+    inline int nargs() { return 29; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29> class CppMethod30 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod30(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29));
+    }
+    inline int nargs() { return 30; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29> class CppMethod30<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod30( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29);
+        return R_NilValue;
+    }
+    inline int nargs() { return 30; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29> class const_CppMethod30 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod30(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29));
+    }
+    inline int nargs() { return 30; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29 > class const_CppMethod30<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod30(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29);
+        return R_NilValue;
+    }
+    inline int nargs() { return 30; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30> class CppMethod31 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod31(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30));
+    }
+    inline int nargs() { return 31; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30> class CppMethod31<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod31( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30);
+        return R_NilValue;
+    }
+    inline int nargs() { return 31; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30> class const_CppMethod31 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod31(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30));
+    }
+    inline int nargs() { return 31; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30 > class const_CppMethod31<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod31(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30);
+        return R_NilValue;
+    }
+    inline int nargs() { return 31; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31> class CppMethod32 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod32(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31));
+    }
+    inline int nargs() { return 32; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31> class CppMethod32<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod32( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31);
+        return R_NilValue;
+    }
+    inline int nargs() { return 32; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31> class const_CppMethod32 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod32(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31));
+    }
+    inline int nargs() { return 32; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31 > class const_CppMethod32<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod32(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31);
+        return R_NilValue;
+    }
+    inline int nargs() { return 32; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32> class CppMethod33 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod33(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32));
+    }
+    inline int nargs() { return 33; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32> class CppMethod33<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod33( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32);
+        return R_NilValue;
+    }
+    inline int nargs() { return 33; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32> class const_CppMethod33 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod33(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32));
+    }
+    inline int nargs() { return 33; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32 > class const_CppMethod33<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod33(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32);
+        return R_NilValue;
+    }
+    inline int nargs() { return 33; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33> class CppMethod34 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod34(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33));
+    }
+    inline int nargs() { return 34; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33> class CppMethod34<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod34( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33);
+        return R_NilValue;
+    }
+    inline int nargs() { return 34; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33> class const_CppMethod34 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod34(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33));
+    }
+    inline int nargs() { return 34; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33 > class const_CppMethod34<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod34(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33);
+        return R_NilValue;
+    }
+    inline int nargs() { return 34; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34> class CppMethod35 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod35(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34));
+    }
+    inline int nargs() { return 35; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34> class CppMethod35<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod35( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34);
+        return R_NilValue;
+    }
+    inline int nargs() { return 35; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34> class const_CppMethod35 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod35(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34));
+    }
+    inline int nargs() { return 35; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34 > class const_CppMethod35<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod35(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34);
+        return R_NilValue;
+    }
+    inline int nargs() { return 35; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35> class CppMethod36 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod36(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35));
+    }
+    inline int nargs() { return 36; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35> class CppMethod36<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod36( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35);
+        return R_NilValue;
+    }
+    inline int nargs() { return 36; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35> class const_CppMethod36 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod36(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35));
+    }
+    inline int nargs() { return 36; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35 > class const_CppMethod36<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod36(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35);
+        return R_NilValue;
+    }
+    inline int nargs() { return 36; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36> class CppMethod37 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod37(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36));
+    }
+    inline int nargs() { return 37; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36> class CppMethod37<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod37( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36);
+        return R_NilValue;
+    }
+    inline int nargs() { return 37; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36> class const_CppMethod37 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod37(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36));
+    }
+    inline int nargs() { return 37; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36 > class const_CppMethod37<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod37(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36);
+        return R_NilValue;
+    }
+    inline int nargs() { return 37; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37> class CppMethod38 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod38(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37));
+    }
+    inline int nargs() { return 38; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37> class CppMethod38<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod38( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37);
+        return R_NilValue;
+    }
+    inline int nargs() { return 38; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37> class const_CppMethod38 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod38(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37));
+    }
+    inline int nargs() { return 38; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37 > class const_CppMethod38<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod38(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37);
+        return R_NilValue;
+    }
+    inline int nargs() { return 38; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38> class CppMethod39 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod39(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38));
+    }
+    inline int nargs() { return 39; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38> class CppMethod39<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod39( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38);
+        return R_NilValue;
+    }
+    inline int nargs() { return 39; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38> class const_CppMethod39 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod39(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38));
+    }
+    inline int nargs() { return 39; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38 > class const_CppMethod39<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod39(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38);
+        return R_NilValue;
+    }
+    inline int nargs() { return 39; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39> class CppMethod40 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod40(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39));
+    }
+    inline int nargs() { return 40; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39> class CppMethod40<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod40( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39);
+        return R_NilValue;
+    }
+    inline int nargs() { return 40; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39> class const_CppMethod40 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod40(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39));
+    }
+    inline int nargs() { return 40; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39 > class const_CppMethod40<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod40(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39);
+        return R_NilValue;
+    }
+    inline int nargs() { return 40; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40> class CppMethod41 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod41(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40));
+    }
+    inline int nargs() { return 41; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40> class CppMethod41<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod41( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40);
+        return R_NilValue;
+    }
+    inline int nargs() { return 41; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40> class const_CppMethod41 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod41(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40));
+    }
+    inline int nargs() { return 41; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40 > class const_CppMethod41<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod41(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40);
+        return R_NilValue;
+    }
+    inline int nargs() { return 41; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41> class CppMethod42 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod42(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41));
+    }
+    inline int nargs() { return 42; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41> class CppMethod42<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod42( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41);
+        return R_NilValue;
+    }
+    inline int nargs() { return 42; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41> class const_CppMethod42 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod42(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41));
+    }
+    inline int nargs() { return 42; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41 > class const_CppMethod42<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod42(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41);
+        return R_NilValue;
+    }
+    inline int nargs() { return 42; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42> class CppMethod43 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod43(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42));
+    }
+    inline int nargs() { return 43; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42> class CppMethod43<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod43( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42);
+        return R_NilValue;
+    }
+    inline int nargs() { return 43; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42> class const_CppMethod43 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod43(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42));
+    }
+    inline int nargs() { return 43; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42 > class const_CppMethod43<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod43(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42);
+        return R_NilValue;
+    }
+    inline int nargs() { return 43; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43> class CppMethod44 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod44(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43));
+    }
+    inline int nargs() { return 44; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43> class CppMethod44<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod44( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43);
+        return R_NilValue;
+    }
+    inline int nargs() { return 44; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43> class const_CppMethod44 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod44(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43));
+    }
+    inline int nargs() { return 44; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43 > class const_CppMethod44<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod44(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43);
+        return R_NilValue;
+    }
+    inline int nargs() { return 44; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44> class CppMethod45 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod45(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44));
+    }
+    inline int nargs() { return 45; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44> class CppMethod45<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod45( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44);
+        return R_NilValue;
+    }
+    inline int nargs() { return 45; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44> class const_CppMethod45 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod45(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44));
+    }
+    inline int nargs() { return 45; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44 > class const_CppMethod45<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod45(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44);
+        return R_NilValue;
+    }
+    inline int nargs() { return 45; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45> class CppMethod46 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod46(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45));
+    }
+    inline int nargs() { return 46; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45> class CppMethod46<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod46( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45);
+        return R_NilValue;
+    }
+    inline int nargs() { return 46; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45> class const_CppMethod46 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod46(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45));
+    }
+    inline int nargs() { return 46; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45 > class const_CppMethod46<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod46(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45);
+        return R_NilValue;
+    }
+    inline int nargs() { return 46; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46> class CppMethod47 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod47(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46));
+    }
+    inline int nargs() { return 47; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46> class CppMethod47<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod47( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46);
+        return R_NilValue;
+    }
+    inline int nargs() { return 47; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46> class const_CppMethod47 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod47(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46));
+    }
+    inline int nargs() { return 47; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46 > class const_CppMethod47<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod47(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46);
+        return R_NilValue;
+    }
+    inline int nargs() { return 47; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47> class CppMethod48 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod48(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47));
+    }
+    inline int nargs() { return 48; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47> class CppMethod48<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod48( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47);
+        return R_NilValue;
+    }
+    inline int nargs() { return 48; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47> class const_CppMethod48 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod48(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47));
+    }
+    inline int nargs() { return 48; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47 > class const_CppMethod48<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod48(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47);
+        return R_NilValue;
+    }
+    inline int nargs() { return 48; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48> class CppMethod49 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod49(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48));
+    }
+    inline int nargs() { return 49; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48> class CppMethod49<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod49( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48);
+        return R_NilValue;
+    }
+    inline int nargs() { return 49; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48> class const_CppMethod49 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod49(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48));
+    }
+    inline int nargs() { return 49; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48 > class const_CppMethod49<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod49(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48);
+        return R_NilValue;
+    }
+    inline int nargs() { return 49; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49> class CppMethod50 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod50(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49));
+    }
+    inline int nargs() { return 50; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49> class CppMethod50<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod50( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49);
+        return R_NilValue;
+    }
+    inline int nargs() { return 50; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49> class const_CppMethod50 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod50(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49));
+    }
+    inline int nargs() { return 50; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49 > class const_CppMethod50<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod50(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49);
+        return R_NilValue;
+    }
+    inline int nargs() { return 50; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50> class CppMethod51 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod51(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50));
+    }
+    inline int nargs() { return 51; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50> class CppMethod51<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod51( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50);
+        return R_NilValue;
+    }
+    inline int nargs() { return 51; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50> class const_CppMethod51 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod51(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50));
+    }
+    inline int nargs() { return 51; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50 > class const_CppMethod51<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod51(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50);
+        return R_NilValue;
+    }
+    inline int nargs() { return 51; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51> class CppMethod52 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod52(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51));
+    }
+    inline int nargs() { return 52; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51> class CppMethod52<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod52( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51);
+        return R_NilValue;
+    }
+    inline int nargs() { return 52; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51> class const_CppMethod52 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod52(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51));
+    }
+    inline int nargs() { return 52; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51 > class const_CppMethod52<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod52(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51);
+        return R_NilValue;
+    }
+    inline int nargs() { return 52; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52> class CppMethod53 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod53(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52));
+    }
+    inline int nargs() { return 53; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52> class CppMethod53<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod53( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52);
+        return R_NilValue;
+    }
+    inline int nargs() { return 53; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52> class const_CppMethod53 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod53(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52));
+    }
+    inline int nargs() { return 53; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52 > class const_CppMethod53<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod53(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52);
+        return R_NilValue;
+    }
+    inline int nargs() { return 53; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53> class CppMethod54 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod54(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53));
+    }
+    inline int nargs() { return 54; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53> class CppMethod54<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod54( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53);
+        return R_NilValue;
+    }
+    inline int nargs() { return 54; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53> class const_CppMethod54 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod54(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53));
+    }
+    inline int nargs() { return 54; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53 > class const_CppMethod54<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod54(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53);
+        return R_NilValue;
+    }
+    inline int nargs() { return 54; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54> class CppMethod55 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod55(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54));
+    }
+    inline int nargs() { return 55; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54> class CppMethod55<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod55( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54);
+        return R_NilValue;
+    }
+    inline int nargs() { return 55; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54> class const_CppMethod55 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod55(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54));
+    }
+    inline int nargs() { return 55; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54 > class const_CppMethod55<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod55(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54);
+        return R_NilValue;
+    }
+    inline int nargs() { return 55; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55> class CppMethod56 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod56(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55));
+    }
+    inline int nargs() { return 56; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55> class CppMethod56<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod56( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55);
+        return R_NilValue;
+    }
+    inline int nargs() { return 56; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55> class const_CppMethod56 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod56(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55));
+    }
+    inline int nargs() { return 56; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55 > class const_CppMethod56<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod56(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55);
+        return R_NilValue;
+    }
+    inline int nargs() { return 56; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56> class CppMethod57 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod57(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56));
+    }
+    inline int nargs() { return 57; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56> class CppMethod57<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod57( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56);
+        return R_NilValue;
+    }
+    inline int nargs() { return 57; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56> class const_CppMethod57 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod57(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56));
+    }
+    inline int nargs() { return 57; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56 > class const_CppMethod57<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod57(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56);
+        return R_NilValue;
+    }
+    inline int nargs() { return 57; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57> class CppMethod58 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod58(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57));
+    }
+    inline int nargs() { return 58; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57> class CppMethod58<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod58( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57);
+        return R_NilValue;
+    }
+    inline int nargs() { return 58; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57> class const_CppMethod58 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod58(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57));
+    }
+    inline int nargs() { return 58; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57 > class const_CppMethod58<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod58(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57);
+        return R_NilValue;
+    }
+    inline int nargs() { return 58; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58> class CppMethod59 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod59(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58));
+    }
+    inline int nargs() { return 59; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58> class CppMethod59<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod59( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58);
+        return R_NilValue;
+    }
+    inline int nargs() { return 59; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58> class const_CppMethod59 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod59(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58));
+    }
+    inline int nargs() { return 59; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58 > class const_CppMethod59<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod59(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58);
+        return R_NilValue;
+    }
+    inline int nargs() { return 59; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59> class CppMethod60 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod60(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59));
+    }
+    inline int nargs() { return 60; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59> class CppMethod60<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod60( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59);
+        return R_NilValue;
+    }
+    inline int nargs() { return 60; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59> class const_CppMethod60 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod60(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59));
+    }
+    inline int nargs() { return 60; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59 > class const_CppMethod60<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod60(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59);
+        return R_NilValue;
+    }
+    inline int nargs() { return 60; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60> class CppMethod61 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod61(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60));
+    }
+    inline int nargs() { return 61; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60> class CppMethod61<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod61( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60);
+        return R_NilValue;
+    }
+    inline int nargs() { return 61; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60> class const_CppMethod61 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod61(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60));
+    }
+    inline int nargs() { return 61; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60 > class const_CppMethod61<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod61(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60);
+        return R_NilValue;
+    }
+    inline int nargs() { return 61; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61> class CppMethod62 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod62(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61));
+    }
+    inline int nargs() { return 62; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61> class CppMethod62<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod62( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61);
+        return R_NilValue;
+    }
+    inline int nargs() { return 62; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61> class const_CppMethod62 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod62(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61));
+    }
+    inline int nargs() { return 62; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61 > class const_CppMethod62<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod62(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61);
+        return R_NilValue;
+    }
+    inline int nargs() { return 62; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62> class CppMethod63 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod63(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+typename Rcpp::traits::input_parameter<U62>::type x62(args[62]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62));
+    }
+    inline int nargs() { return 63; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62> class CppMethod63<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod63( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+typename Rcpp::traits::input_parameter<U62>::type x62(args[62]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62);
+        return R_NilValue;
+    }
+    inline int nargs() { return 63; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62> class const_CppMethod63 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod63(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+typename Rcpp::traits::input_parameter<U62>::type x62(args[62]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62));
+    }
+    inline int nargs() { return 63; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62 > class const_CppMethod63<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod63(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+typename Rcpp::traits::input_parameter<U62>::type x62(args[62]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62);
+        return R_NilValue;
+    }
+    inline int nargs() { return 63; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63> class CppMethod64 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod64(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+typename Rcpp::traits::input_parameter<U62>::type x62(args[62]);
+typename Rcpp::traits::input_parameter<U63>::type x63(args[63]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63));
+    }
+    inline int nargs() { return 64; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63> class CppMethod64<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod64( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+typename Rcpp::traits::input_parameter<U62>::type x62(args[62]);
+typename Rcpp::traits::input_parameter<U63>::type x63(args[63]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63);
+        return R_NilValue;
+    }
+    inline int nargs() { return 64; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63> class const_CppMethod64 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod64(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+typename Rcpp::traits::input_parameter<U62>::type x62(args[62]);
+typename Rcpp::traits::input_parameter<U63>::type x63(args[63]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63));
+    }
+    inline int nargs() { return 64; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63 > class const_CppMethod64<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod64(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+typename Rcpp::traits::input_parameter<U62>::type x62(args[62]);
+typename Rcpp::traits::input_parameter<U63>::type x63(args[63]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63);
+        return R_NilValue;
+    }
+    inline int nargs() { return 64; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64> class CppMethod65 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    CppMethod65(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+typename Rcpp::traits::input_parameter<U62>::type x62(args[62]);
+typename Rcpp::traits::input_parameter<U63>::type x63(args[63]);
+typename Rcpp::traits::input_parameter<U64>::type x64(args[64]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63, x64));
+    }
+    inline int nargs() { return 65; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64> class CppMethod65<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64);
+    typedef CppMethod<Class> method_class;
+    
+    CppMethod65( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+typename Rcpp::traits::input_parameter<U62>::type x62(args[62]);
+typename Rcpp::traits::input_parameter<U63>::type x63(args[63]);
+typename Rcpp::traits::input_parameter<U64>::type x64(args[64]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63, x64);
+        return R_NilValue;
+    }
+    inline int nargs() { return 65; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64> class const_CppMethod65 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64) const;
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+    
+    const_CppMethod65(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+typename Rcpp::traits::input_parameter<U62>::type x62(args[62]);
+typename Rcpp::traits::input_parameter<U63>::type x63(args[63]);
+typename Rcpp::traits::input_parameter<U64>::type x64(args[64]);
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>((object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63, x64));
+    }
+    inline int nargs() { return 65; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(s, name); }
+
+private:
+    Method met;
+} ;
+    
+template < typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64 > class const_CppMethod65<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64> : public CppMethod<Class> {
+public:
+    typedef void (Class::*Method)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64) const;
+    typedef CppMethod<Class> method_class;
+    
+    const_CppMethod65(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter<U0>::type x0(args[0]);
+typename Rcpp::traits::input_parameter<U1>::type x1(args[1]);
+typename Rcpp::traits::input_parameter<U2>::type x2(args[2]);
+typename Rcpp::traits::input_parameter<U3>::type x3(args[3]);
+typename Rcpp::traits::input_parameter<U4>::type x4(args[4]);
+typename Rcpp::traits::input_parameter<U5>::type x5(args[5]);
+typename Rcpp::traits::input_parameter<U6>::type x6(args[6]);
+typename Rcpp::traits::input_parameter<U7>::type x7(args[7]);
+typename Rcpp::traits::input_parameter<U8>::type x8(args[8]);
+typename Rcpp::traits::input_parameter<U9>::type x9(args[9]);
+typename Rcpp::traits::input_parameter<U10>::type x10(args[10]);
+typename Rcpp::traits::input_parameter<U11>::type x11(args[11]);
+typename Rcpp::traits::input_parameter<U12>::type x12(args[12]);
+typename Rcpp::traits::input_parameter<U13>::type x13(args[13]);
+typename Rcpp::traits::input_parameter<U14>::type x14(args[14]);
+typename Rcpp::traits::input_parameter<U15>::type x15(args[15]);
+typename Rcpp::traits::input_parameter<U16>::type x16(args[16]);
+typename Rcpp::traits::input_parameter<U17>::type x17(args[17]);
+typename Rcpp::traits::input_parameter<U18>::type x18(args[18]);
+typename Rcpp::traits::input_parameter<U19>::type x19(args[19]);
+typename Rcpp::traits::input_parameter<U20>::type x20(args[20]);
+typename Rcpp::traits::input_parameter<U21>::type x21(args[21]);
+typename Rcpp::traits::input_parameter<U22>::type x22(args[22]);
+typename Rcpp::traits::input_parameter<U23>::type x23(args[23]);
+typename Rcpp::traits::input_parameter<U24>::type x24(args[24]);
+typename Rcpp::traits::input_parameter<U25>::type x25(args[25]);
+typename Rcpp::traits::input_parameter<U26>::type x26(args[26]);
+typename Rcpp::traits::input_parameter<U27>::type x27(args[27]);
+typename Rcpp::traits::input_parameter<U28>::type x28(args[28]);
+typename Rcpp::traits::input_parameter<U29>::type x29(args[29]);
+typename Rcpp::traits::input_parameter<U30>::type x30(args[30]);
+typename Rcpp::traits::input_parameter<U31>::type x31(args[31]);
+typename Rcpp::traits::input_parameter<U32>::type x32(args[32]);
+typename Rcpp::traits::input_parameter<U33>::type x33(args[33]);
+typename Rcpp::traits::input_parameter<U34>::type x34(args[34]);
+typename Rcpp::traits::input_parameter<U35>::type x35(args[35]);
+typename Rcpp::traits::input_parameter<U36>::type x36(args[36]);
+typename Rcpp::traits::input_parameter<U37>::type x37(args[37]);
+typename Rcpp::traits::input_parameter<U38>::type x38(args[38]);
+typename Rcpp::traits::input_parameter<U39>::type x39(args[39]);
+typename Rcpp::traits::input_parameter<U40>::type x40(args[40]);
+typename Rcpp::traits::input_parameter<U41>::type x41(args[41]);
+typename Rcpp::traits::input_parameter<U42>::type x42(args[42]);
+typename Rcpp::traits::input_parameter<U43>::type x43(args[43]);
+typename Rcpp::traits::input_parameter<U44>::type x44(args[44]);
+typename Rcpp::traits::input_parameter<U45>::type x45(args[45]);
+typename Rcpp::traits::input_parameter<U46>::type x46(args[46]);
+typename Rcpp::traits::input_parameter<U47>::type x47(args[47]);
+typename Rcpp::traits::input_parameter<U48>::type x48(args[48]);
+typename Rcpp::traits::input_parameter<U49>::type x49(args[49]);
+typename Rcpp::traits::input_parameter<U50>::type x50(args[50]);
+typename Rcpp::traits::input_parameter<U51>::type x51(args[51]);
+typename Rcpp::traits::input_parameter<U52>::type x52(args[52]);
+typename Rcpp::traits::input_parameter<U53>::type x53(args[53]);
+typename Rcpp::traits::input_parameter<U54>::type x54(args[54]);
+typename Rcpp::traits::input_parameter<U55>::type x55(args[55]);
+typename Rcpp::traits::input_parameter<U56>::type x56(args[56]);
+typename Rcpp::traits::input_parameter<U57>::type x57(args[57]);
+typename Rcpp::traits::input_parameter<U58>::type x58(args[58]);
+typename Rcpp::traits::input_parameter<U59>::type x59(args[59]);
+typename Rcpp::traits::input_parameter<U60>::type x60(args[60]);
+typename Rcpp::traits::input_parameter<U61>::type x61(args[61]);
+typename Rcpp::traits::input_parameter<U62>::type x62(args[62]);
+typename Rcpp::traits::input_parameter<U63>::type x63(args[63]);
+typename Rcpp::traits::input_parameter<U64>::type x64(args[64]);
+        (object->*met)(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63, x64);
+        return R_NilValue;
+    }
+    inline int nargs() { return 65; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name ) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(s, name); }
+
+private:
+    Method met ;
+} ;
+	
+
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_Pointer_CppMethod.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_Pointer_CppMethod.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_Pointer_CppMethod.h	(revision 2476)
@@ -0,0 +1,13948 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Module_generated_PointerCppMethod.h: -- generated helper code for Modules
+//                                         see rcpp-scripts repo for generator script
+//
+// Copyright (C) 2010 - 2014  Doug Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_generated_Pointer_CppMethod_h
+#define Rcpp_Module_generated_Pointer_CppMethod_h
+
+
+template <typename Class, typename RESULT_TYPE> class Pointer_CppMethod0 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*) ;
+    typedef CppMethod<Class> method_class ;
+    Pointer_CppMethod0( Method m) : method_class(), met(m){} 
+    SEXP operator()( Class* object, SEXP* ){
+        return Rcpp::module_wrap<RESULT_TYPE>( met(object) ) ;
+    }
+    inline int nargs(){ return 0 ; }
+    inline bool is_void(){ return false ; }
+    inline bool is_const(){ return false ; }
+    inline void signature(std::string& s, const char* name){ Rcpp::signature<RESULT_TYPE>(s, name) ; }
+
+private:
+    Method met ;
+} ;
+
+template <typename Class> class Pointer_CppMethod0<Class,void> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*) ;
+    typedef CppMethod<Class> method_class ;
+    Pointer_CppMethod0( Method m) : method_class(), met(m){} 
+    SEXP operator()( Class* object, SEXP* ){
+        met( object ) ;
+        return R_NilValue ;
+    }
+    inline int nargs(){ return 0 ; }
+    inline bool is_void(){ return true ; }
+    inline bool is_const(){ return false ; }
+    inline void signature(std::string& s, const char* name){ Rcpp::signature<void_type>(s, name) ; }
+
+private:
+    Method met ;
+} ;
+
+
+
+
+template <typename Class, typename RESULT_TYPE> class Const_Pointer_CppMethod0 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*) ;
+    typedef CppMethod<Class> method_class ;
+    Const_Pointer_CppMethod0( Method m) : method_class(), met(m){} 
+    SEXP operator()( Class* object, SEXP* ){
+        return Rcpp::module_wrap<RESULT_TYPE>( met(object) ) ;
+    }
+    inline int nargs(){ return 0 ; }
+    inline bool is_void(){ return false ; }
+    inline bool is_const(){ return true ; }
+    inline void signature(std::string& s, const char* name){ Rcpp::signature<RESULT_TYPE>(s, name) ; }
+
+private:
+    Method met ;
+} ;
+
+template <typename Class> class Const_Pointer_CppMethod0<Class,void> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*) ;
+    typedef CppMethod<Class> method_class ;
+    Const_Pointer_CppMethod0( Method m) : method_class(), met(m){} 
+    SEXP operator()( Class* object, SEXP* ){
+        met( object ) ;
+        return R_NilValue ;
+    }
+    inline int nargs(){ return 0 ; }
+    inline bool is_void(){ return true ; }
+    inline bool is_const(){ return true ; }
+
+    inline void signature(std::string& s, const char* name){ Rcpp::signature<void_type>(s, name) ; }
+
+private:
+    Method met ;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0> class Pointer_CppMethod1 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod1(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0));
+    }
+    inline int nargs(){ return 1; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0> class Pointer_CppMethod1<Class,void,U0> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod1(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+        met(object, x0);
+        return R_NilValue;
+    }
+    inline int nargs() { return 1; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0> class Const_Pointer_CppMethod1 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod1(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0));
+    }
+    inline int nargs() { return 1; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0> class Const_Pointer_CppMethod1<Class,void,U0> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod1( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+        met(object, x0);
+        return R_NilValue;
+    }
+    inline int nargs() { return 1; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1> class Pointer_CppMethod2 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod2(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1));
+    }
+    inline int nargs(){ return 2; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1> class Pointer_CppMethod2<Class,void,U0, U1> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod2(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+        met(object, x0, x1);
+        return R_NilValue;
+    }
+    inline int nargs() { return 2; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1> class Const_Pointer_CppMethod2 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod2(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1));
+    }
+    inline int nargs() { return 2; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1> class Const_Pointer_CppMethod2<Class,void,U0, U1> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod2( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+        met(object, x0, x1);
+        return R_NilValue;
+    }
+    inline int nargs() { return 2; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2> class Pointer_CppMethod3 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod3(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2));
+    }
+    inline int nargs(){ return 3; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2> class Pointer_CppMethod3<Class,void,U0, U1, U2> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod3(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+        met(object, x0, x1, x2);
+        return R_NilValue;
+    }
+    inline int nargs() { return 3; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2> class Const_Pointer_CppMethod3 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod3(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2));
+    }
+    inline int nargs() { return 3; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2> class Const_Pointer_CppMethod3<Class,void,U0, U1, U2> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod3( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+        met(object, x0, x1, x2);
+        return R_NilValue;
+    }
+    inline int nargs() { return 3; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3> class Pointer_CppMethod4 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod4(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3));
+    }
+    inline int nargs(){ return 4; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3> class Pointer_CppMethod4<Class,void,U0, U1, U2, U3> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod4(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+        met(object, x0, x1, x2, x3);
+        return R_NilValue;
+    }
+    inline int nargs() { return 4; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3> class Const_Pointer_CppMethod4 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod4(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3));
+    }
+    inline int nargs() { return 4; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3> class Const_Pointer_CppMethod4<Class,void,U0, U1, U2, U3> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod4( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+        met(object, x0, x1, x2, x3);
+        return R_NilValue;
+    }
+    inline int nargs() { return 4; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4> class Pointer_CppMethod5 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod5(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4));
+    }
+    inline int nargs(){ return 5; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4> class Pointer_CppMethod5<Class,void,U0, U1, U2, U3, U4> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod5(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+        met(object, x0, x1, x2, x3, x4);
+        return R_NilValue;
+    }
+    inline int nargs() { return 5; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4> class Const_Pointer_CppMethod5 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod5(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4));
+    }
+    inline int nargs() { return 5; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4> class Const_Pointer_CppMethod5<Class,void,U0, U1, U2, U3, U4> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod5( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+        met(object, x0, x1, x2, x3, x4);
+        return R_NilValue;
+    }
+    inline int nargs() { return 5; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5> class Pointer_CppMethod6 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod6(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5));
+    }
+    inline int nargs(){ return 6; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5> class Pointer_CppMethod6<Class,void,U0, U1, U2, U3, U4, U5> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod6(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+        met(object, x0, x1, x2, x3, x4, x5);
+        return R_NilValue;
+    }
+    inline int nargs() { return 6; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5> class Const_Pointer_CppMethod6 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod6(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5));
+    }
+    inline int nargs() { return 6; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5> class Const_Pointer_CppMethod6<Class,void,U0, U1, U2, U3, U4, U5> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod6( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+        met(object, x0, x1, x2, x3, x4, x5);
+        return R_NilValue;
+    }
+    inline int nargs() { return 6; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6> class Pointer_CppMethod7 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod7(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6));
+    }
+    inline int nargs(){ return 7; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6> class Pointer_CppMethod7<Class,void,U0, U1, U2, U3, U4, U5, U6> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod7(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6);
+        return R_NilValue;
+    }
+    inline int nargs() { return 7; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6> class Const_Pointer_CppMethod7 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod7(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6));
+    }
+    inline int nargs() { return 7; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6> class Const_Pointer_CppMethod7<Class,void,U0, U1, U2, U3, U4, U5, U6> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod7( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6);
+        return R_NilValue;
+    }
+    inline int nargs() { return 7; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7> class Pointer_CppMethod8 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod8(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7));
+    }
+    inline int nargs(){ return 8; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7> class Pointer_CppMethod8<Class,void,U0, U1, U2, U3, U4, U5, U6, U7> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod8(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7);
+        return R_NilValue;
+    }
+    inline int nargs() { return 8; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7> class Const_Pointer_CppMethod8 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod8(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7));
+    }
+    inline int nargs() { return 8; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7> class Const_Pointer_CppMethod8<Class,void,U0, U1, U2, U3, U4, U5, U6, U7> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod8( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7);
+        return R_NilValue;
+    }
+    inline int nargs() { return 8; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8> class Pointer_CppMethod9 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod9(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8));
+    }
+    inline int nargs(){ return 9; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8> class Pointer_CppMethod9<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod9(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8);
+        return R_NilValue;
+    }
+    inline int nargs() { return 9; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8> class Const_Pointer_CppMethod9 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod9(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8));
+    }
+    inline int nargs() { return 9; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8> class Const_Pointer_CppMethod9<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod9( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8);
+        return R_NilValue;
+    }
+    inline int nargs() { return 9; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9> class Pointer_CppMethod10 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod10(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9));
+    }
+    inline int nargs(){ return 10; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9> class Pointer_CppMethod10<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod10(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9);
+        return R_NilValue;
+    }
+    inline int nargs() { return 10; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9> class Const_Pointer_CppMethod10 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod10(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9));
+    }
+    inline int nargs() { return 10; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9> class Const_Pointer_CppMethod10<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod10( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9);
+        return R_NilValue;
+    }
+    inline int nargs() { return 10; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10> class Pointer_CppMethod11 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod11(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10));
+    }
+    inline int nargs(){ return 11; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10> class Pointer_CppMethod11<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod11(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10);
+        return R_NilValue;
+    }
+    inline int nargs() { return 11; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10> class Const_Pointer_CppMethod11 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod11(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10));
+    }
+    inline int nargs() { return 11; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10> class Const_Pointer_CppMethod11<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod11( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10);
+        return R_NilValue;
+    }
+    inline int nargs() { return 11; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11> class Pointer_CppMethod12 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod12(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11));
+    }
+    inline int nargs(){ return 12; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11> class Pointer_CppMethod12<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod12(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11);
+        return R_NilValue;
+    }
+    inline int nargs() { return 12; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11> class Const_Pointer_CppMethod12 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod12(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11));
+    }
+    inline int nargs() { return 12; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11> class Const_Pointer_CppMethod12<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod12( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11);
+        return R_NilValue;
+    }
+    inline int nargs() { return 12; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12> class Pointer_CppMethod13 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod13(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12));
+    }
+    inline int nargs(){ return 13; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12> class Pointer_CppMethod13<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod13(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12);
+        return R_NilValue;
+    }
+    inline int nargs() { return 13; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12> class Const_Pointer_CppMethod13 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod13(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12));
+    }
+    inline int nargs() { return 13; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12> class Const_Pointer_CppMethod13<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod13( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12);
+        return R_NilValue;
+    }
+    inline int nargs() { return 13; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13> class Pointer_CppMethod14 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod14(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13));
+    }
+    inline int nargs(){ return 14; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13> class Pointer_CppMethod14<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod14(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13);
+        return R_NilValue;
+    }
+    inline int nargs() { return 14; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13> class Const_Pointer_CppMethod14 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod14(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13));
+    }
+    inline int nargs() { return 14; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13> class Const_Pointer_CppMethod14<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod14( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13);
+        return R_NilValue;
+    }
+    inline int nargs() { return 14; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14> class Pointer_CppMethod15 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod15(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14));
+    }
+    inline int nargs(){ return 15; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14> class Pointer_CppMethod15<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod15(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14);
+        return R_NilValue;
+    }
+    inline int nargs() { return 15; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14> class Const_Pointer_CppMethod15 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod15(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14));
+    }
+    inline int nargs() { return 15; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14> class Const_Pointer_CppMethod15<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod15( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14);
+        return R_NilValue;
+    }
+    inline int nargs() { return 15; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15> class Pointer_CppMethod16 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod16(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15));
+    }
+    inline int nargs(){ return 16; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15> class Pointer_CppMethod16<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod16(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15);
+        return R_NilValue;
+    }
+    inline int nargs() { return 16; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15> class Const_Pointer_CppMethod16 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod16(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15));
+    }
+    inline int nargs() { return 16; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15> class Const_Pointer_CppMethod16<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod16( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15);
+        return R_NilValue;
+    }
+    inline int nargs() { return 16; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16> class Pointer_CppMethod17 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod17(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16));
+    }
+    inline int nargs(){ return 17; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16> class Pointer_CppMethod17<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod17(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16);
+        return R_NilValue;
+    }
+    inline int nargs() { return 17; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16> class Const_Pointer_CppMethod17 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod17(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16));
+    }
+    inline int nargs() { return 17; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16> class Const_Pointer_CppMethod17<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod17( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16);
+        return R_NilValue;
+    }
+    inline int nargs() { return 17; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17> class Pointer_CppMethod18 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod18(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17));
+    }
+    inline int nargs(){ return 18; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17> class Pointer_CppMethod18<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod18(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17);
+        return R_NilValue;
+    }
+    inline int nargs() { return 18; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17> class Const_Pointer_CppMethod18 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod18(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17));
+    }
+    inline int nargs() { return 18; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17> class Const_Pointer_CppMethod18<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod18( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17);
+        return R_NilValue;
+    }
+    inline int nargs() { return 18; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18> class Pointer_CppMethod19 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod19(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18));
+    }
+    inline int nargs(){ return 19; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18> class Pointer_CppMethod19<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod19(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18);
+        return R_NilValue;
+    }
+    inline int nargs() { return 19; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18> class Const_Pointer_CppMethod19 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod19(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18));
+    }
+    inline int nargs() { return 19; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18> class Const_Pointer_CppMethod19<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod19( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18);
+        return R_NilValue;
+    }
+    inline int nargs() { return 19; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19> class Pointer_CppMethod20 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod20(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19));
+    }
+    inline int nargs(){ return 20; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19> class Pointer_CppMethod20<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod20(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19);
+        return R_NilValue;
+    }
+    inline int nargs() { return 20; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19> class Const_Pointer_CppMethod20 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod20(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19));
+    }
+    inline int nargs() { return 20; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19> class Const_Pointer_CppMethod20<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod20( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19);
+        return R_NilValue;
+    }
+    inline int nargs() { return 20; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20> class Pointer_CppMethod21 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod21(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20));
+    }
+    inline int nargs(){ return 21; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20> class Pointer_CppMethod21<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod21(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20);
+        return R_NilValue;
+    }
+    inline int nargs() { return 21; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20> class Const_Pointer_CppMethod21 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod21(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20));
+    }
+    inline int nargs() { return 21; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20> class Const_Pointer_CppMethod21<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod21( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20);
+        return R_NilValue;
+    }
+    inline int nargs() { return 21; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21> class Pointer_CppMethod22 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod22(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21));
+    }
+    inline int nargs(){ return 22; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21> class Pointer_CppMethod22<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod22(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21);
+        return R_NilValue;
+    }
+    inline int nargs() { return 22; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21> class Const_Pointer_CppMethod22 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod22(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21));
+    }
+    inline int nargs() { return 22; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21> class Const_Pointer_CppMethod22<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod22( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21);
+        return R_NilValue;
+    }
+    inline int nargs() { return 22; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22> class Pointer_CppMethod23 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod23(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22));
+    }
+    inline int nargs(){ return 23; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22> class Pointer_CppMethod23<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod23(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22);
+        return R_NilValue;
+    }
+    inline int nargs() { return 23; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22> class Const_Pointer_CppMethod23 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod23(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22));
+    }
+    inline int nargs() { return 23; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22> class Const_Pointer_CppMethod23<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod23( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22);
+        return R_NilValue;
+    }
+    inline int nargs() { return 23; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23> class Pointer_CppMethod24 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod24(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23));
+    }
+    inline int nargs(){ return 24; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23> class Pointer_CppMethod24<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod24(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23);
+        return R_NilValue;
+    }
+    inline int nargs() { return 24; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23> class Const_Pointer_CppMethod24 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod24(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23));
+    }
+    inline int nargs() { return 24; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23> class Const_Pointer_CppMethod24<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod24( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23);
+        return R_NilValue;
+    }
+    inline int nargs() { return 24; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24> class Pointer_CppMethod25 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod25(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24));
+    }
+    inline int nargs(){ return 25; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24> class Pointer_CppMethod25<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod25(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24);
+        return R_NilValue;
+    }
+    inline int nargs() { return 25; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24> class Const_Pointer_CppMethod25 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod25(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24));
+    }
+    inline int nargs() { return 25; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24> class Const_Pointer_CppMethod25<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod25( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24);
+        return R_NilValue;
+    }
+    inline int nargs() { return 25; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25> class Pointer_CppMethod26 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod26(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25));
+    }
+    inline int nargs(){ return 26; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25> class Pointer_CppMethod26<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod26(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25);
+        return R_NilValue;
+    }
+    inline int nargs() { return 26; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25> class Const_Pointer_CppMethod26 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod26(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25));
+    }
+    inline int nargs() { return 26; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25> class Const_Pointer_CppMethod26<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod26( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25);
+        return R_NilValue;
+    }
+    inline int nargs() { return 26; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26> class Pointer_CppMethod27 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod27(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26));
+    }
+    inline int nargs(){ return 27; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26> class Pointer_CppMethod27<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod27(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26);
+        return R_NilValue;
+    }
+    inline int nargs() { return 27; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26> class Const_Pointer_CppMethod27 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod27(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26));
+    }
+    inline int nargs() { return 27; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26> class Const_Pointer_CppMethod27<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod27( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26);
+        return R_NilValue;
+    }
+    inline int nargs() { return 27; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27> class Pointer_CppMethod28 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod28(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27));
+    }
+    inline int nargs(){ return 28; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27> class Pointer_CppMethod28<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod28(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27);
+        return R_NilValue;
+    }
+    inline int nargs() { return 28; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27> class Const_Pointer_CppMethod28 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod28(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27));
+    }
+    inline int nargs() { return 28; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27> class Const_Pointer_CppMethod28<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod28( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27);
+        return R_NilValue;
+    }
+    inline int nargs() { return 28; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28> class Pointer_CppMethod29 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod29(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28));
+    }
+    inline int nargs(){ return 29; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28> class Pointer_CppMethod29<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod29(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28);
+        return R_NilValue;
+    }
+    inline int nargs() { return 29; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28> class Const_Pointer_CppMethod29 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod29(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28));
+    }
+    inline int nargs() { return 29; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28> class Const_Pointer_CppMethod29<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod29( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28);
+        return R_NilValue;
+    }
+    inline int nargs() { return 29; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29> class Pointer_CppMethod30 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod30(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29));
+    }
+    inline int nargs(){ return 30; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29> class Pointer_CppMethod30<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod30(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29);
+        return R_NilValue;
+    }
+    inline int nargs() { return 30; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29> class Const_Pointer_CppMethod30 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod30(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29));
+    }
+    inline int nargs() { return 30; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29> class Const_Pointer_CppMethod30<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod30( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29);
+        return R_NilValue;
+    }
+    inline int nargs() { return 30; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30> class Pointer_CppMethod31 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod31(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30));
+    }
+    inline int nargs(){ return 31; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30> class Pointer_CppMethod31<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod31(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30);
+        return R_NilValue;
+    }
+    inline int nargs() { return 31; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30> class Const_Pointer_CppMethod31 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod31(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30));
+    }
+    inline int nargs() { return 31; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30> class Const_Pointer_CppMethod31<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod31( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30);
+        return R_NilValue;
+    }
+    inline int nargs() { return 31; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31> class Pointer_CppMethod32 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod32(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31));
+    }
+    inline int nargs(){ return 32; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31> class Pointer_CppMethod32<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod32(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31);
+        return R_NilValue;
+    }
+    inline int nargs() { return 32; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31> class Const_Pointer_CppMethod32 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod32(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31));
+    }
+    inline int nargs() { return 32; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31> class Const_Pointer_CppMethod32<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod32( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31);
+        return R_NilValue;
+    }
+    inline int nargs() { return 32; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32> class Pointer_CppMethod33 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod33(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32));
+    }
+    inline int nargs(){ return 33; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32> class Pointer_CppMethod33<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod33(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32);
+        return R_NilValue;
+    }
+    inline int nargs() { return 33; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32> class Const_Pointer_CppMethod33 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod33(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32));
+    }
+    inline int nargs() { return 33; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32> class Const_Pointer_CppMethod33<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod33( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32);
+        return R_NilValue;
+    }
+    inline int nargs() { return 33; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33> class Pointer_CppMethod34 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod34(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33));
+    }
+    inline int nargs(){ return 34; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33> class Pointer_CppMethod34<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod34(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33);
+        return R_NilValue;
+    }
+    inline int nargs() { return 34; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33> class Const_Pointer_CppMethod34 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod34(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33));
+    }
+    inline int nargs() { return 34; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33> class Const_Pointer_CppMethod34<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod34( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33);
+        return R_NilValue;
+    }
+    inline int nargs() { return 34; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34> class Pointer_CppMethod35 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod35(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34));
+    }
+    inline int nargs(){ return 35; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34> class Pointer_CppMethod35<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod35(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34);
+        return R_NilValue;
+    }
+    inline int nargs() { return 35; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34> class Const_Pointer_CppMethod35 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod35(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34));
+    }
+    inline int nargs() { return 35; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34> class Const_Pointer_CppMethod35<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod35( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34);
+        return R_NilValue;
+    }
+    inline int nargs() { return 35; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35> class Pointer_CppMethod36 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod36(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35));
+    }
+    inline int nargs(){ return 36; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35> class Pointer_CppMethod36<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod36(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35);
+        return R_NilValue;
+    }
+    inline int nargs() { return 36; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35> class Const_Pointer_CppMethod36 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod36(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35));
+    }
+    inline int nargs() { return 36; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35> class Const_Pointer_CppMethod36<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod36( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35);
+        return R_NilValue;
+    }
+    inline int nargs() { return 36; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36> class Pointer_CppMethod37 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod37(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36));
+    }
+    inline int nargs(){ return 37; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36> class Pointer_CppMethod37<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod37(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36);
+        return R_NilValue;
+    }
+    inline int nargs() { return 37; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36> class Const_Pointer_CppMethod37 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod37(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36));
+    }
+    inline int nargs() { return 37; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36> class Const_Pointer_CppMethod37<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod37( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36);
+        return R_NilValue;
+    }
+    inline int nargs() { return 37; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37> class Pointer_CppMethod38 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod38(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37));
+    }
+    inline int nargs(){ return 38; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37> class Pointer_CppMethod38<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod38(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37);
+        return R_NilValue;
+    }
+    inline int nargs() { return 38; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37> class Const_Pointer_CppMethod38 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod38(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37));
+    }
+    inline int nargs() { return 38; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37> class Const_Pointer_CppMethod38<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod38( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37);
+        return R_NilValue;
+    }
+    inline int nargs() { return 38; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38> class Pointer_CppMethod39 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod39(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38));
+    }
+    inline int nargs(){ return 39; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38> class Pointer_CppMethod39<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod39(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38);
+        return R_NilValue;
+    }
+    inline int nargs() { return 39; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38> class Const_Pointer_CppMethod39 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod39(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38));
+    }
+    inline int nargs() { return 39; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38> class Const_Pointer_CppMethod39<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod39( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38);
+        return R_NilValue;
+    }
+    inline int nargs() { return 39; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39> class Pointer_CppMethod40 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod40(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39));
+    }
+    inline int nargs(){ return 40; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39> class Pointer_CppMethod40<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod40(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39);
+        return R_NilValue;
+    }
+    inline int nargs() { return 40; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39> class Const_Pointer_CppMethod40 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod40(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39));
+    }
+    inline int nargs() { return 40; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39> class Const_Pointer_CppMethod40<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod40( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39);
+        return R_NilValue;
+    }
+    inline int nargs() { return 40; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40> class Pointer_CppMethod41 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod41(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40));
+    }
+    inline int nargs(){ return 41; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40> class Pointer_CppMethod41<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod41(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40);
+        return R_NilValue;
+    }
+    inline int nargs() { return 41; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40> class Const_Pointer_CppMethod41 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod41(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40));
+    }
+    inline int nargs() { return 41; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40> class Const_Pointer_CppMethod41<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod41( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40);
+        return R_NilValue;
+    }
+    inline int nargs() { return 41; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41> class Pointer_CppMethod42 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod42(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41));
+    }
+    inline int nargs(){ return 42; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41> class Pointer_CppMethod42<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod42(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41);
+        return R_NilValue;
+    }
+    inline int nargs() { return 42; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41> class Const_Pointer_CppMethod42 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod42(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41));
+    }
+    inline int nargs() { return 42; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41> class Const_Pointer_CppMethod42<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod42( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41);
+        return R_NilValue;
+    }
+    inline int nargs() { return 42; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42> class Pointer_CppMethod43 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod43(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42));
+    }
+    inline int nargs(){ return 43; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42> class Pointer_CppMethod43<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod43(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42);
+        return R_NilValue;
+    }
+    inline int nargs() { return 43; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42> class Const_Pointer_CppMethod43 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod43(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42));
+    }
+    inline int nargs() { return 43; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42> class Const_Pointer_CppMethod43<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod43( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42);
+        return R_NilValue;
+    }
+    inline int nargs() { return 43; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43> class Pointer_CppMethod44 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod44(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43));
+    }
+    inline int nargs(){ return 44; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43> class Pointer_CppMethod44<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod44(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43);
+        return R_NilValue;
+    }
+    inline int nargs() { return 44; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43> class Const_Pointer_CppMethod44 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod44(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43));
+    }
+    inline int nargs() { return 44; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43> class Const_Pointer_CppMethod44<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod44( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43);
+        return R_NilValue;
+    }
+    inline int nargs() { return 44; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44> class Pointer_CppMethod45 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod45(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44));
+    }
+    inline int nargs(){ return 45; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44> class Pointer_CppMethod45<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod45(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44);
+        return R_NilValue;
+    }
+    inline int nargs() { return 45; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44> class Const_Pointer_CppMethod45 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod45(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44));
+    }
+    inline int nargs() { return 45; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44> class Const_Pointer_CppMethod45<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod45( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44);
+        return R_NilValue;
+    }
+    inline int nargs() { return 45; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45> class Pointer_CppMethod46 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod46(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45));
+    }
+    inline int nargs(){ return 46; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45> class Pointer_CppMethod46<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod46(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45);
+        return R_NilValue;
+    }
+    inline int nargs() { return 46; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45> class Const_Pointer_CppMethod46 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod46(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45));
+    }
+    inline int nargs() { return 46; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45> class Const_Pointer_CppMethod46<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod46( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45);
+        return R_NilValue;
+    }
+    inline int nargs() { return 46; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46> class Pointer_CppMethod47 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod47(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46));
+    }
+    inline int nargs(){ return 47; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46> class Pointer_CppMethod47<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod47(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46);
+        return R_NilValue;
+    }
+    inline int nargs() { return 47; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46> class Const_Pointer_CppMethod47 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod47(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46));
+    }
+    inline int nargs() { return 47; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46> class Const_Pointer_CppMethod47<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod47( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46);
+        return R_NilValue;
+    }
+    inline int nargs() { return 47; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47> class Pointer_CppMethod48 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod48(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47));
+    }
+    inline int nargs(){ return 48; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47> class Pointer_CppMethod48<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod48(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47);
+        return R_NilValue;
+    }
+    inline int nargs() { return 48; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47> class Const_Pointer_CppMethod48 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod48(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47));
+    }
+    inline int nargs() { return 48; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47> class Const_Pointer_CppMethod48<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod48( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47);
+        return R_NilValue;
+    }
+    inline int nargs() { return 48; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48> class Pointer_CppMethod49 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod49(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48));
+    }
+    inline int nargs(){ return 49; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48> class Pointer_CppMethod49<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod49(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48);
+        return R_NilValue;
+    }
+    inline int nargs() { return 49; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48> class Const_Pointer_CppMethod49 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod49(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48));
+    }
+    inline int nargs() { return 49; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48> class Const_Pointer_CppMethod49<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod49( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48);
+        return R_NilValue;
+    }
+    inline int nargs() { return 49; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49> class Pointer_CppMethod50 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod50(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49));
+    }
+    inline int nargs(){ return 50; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49> class Pointer_CppMethod50<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod50(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49);
+        return R_NilValue;
+    }
+    inline int nargs() { return 50; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49> class Const_Pointer_CppMethod50 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod50(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49));
+    }
+    inline int nargs() { return 50; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49> class Const_Pointer_CppMethod50<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod50( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49);
+        return R_NilValue;
+    }
+    inline int nargs() { return 50; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50> class Pointer_CppMethod51 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod51(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50));
+    }
+    inline int nargs(){ return 51; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50> class Pointer_CppMethod51<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod51(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50);
+        return R_NilValue;
+    }
+    inline int nargs() { return 51; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50> class Const_Pointer_CppMethod51 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod51(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50));
+    }
+    inline int nargs() { return 51; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50> class Const_Pointer_CppMethod51<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod51( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50);
+        return R_NilValue;
+    }
+    inline int nargs() { return 51; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51> class Pointer_CppMethod52 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod52(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51));
+    }
+    inline int nargs(){ return 52; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51> class Pointer_CppMethod52<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod52(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51);
+        return R_NilValue;
+    }
+    inline int nargs() { return 52; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51> class Const_Pointer_CppMethod52 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod52(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51));
+    }
+    inline int nargs() { return 52; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51> class Const_Pointer_CppMethod52<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod52( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51);
+        return R_NilValue;
+    }
+    inline int nargs() { return 52; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52> class Pointer_CppMethod53 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod53(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52));
+    }
+    inline int nargs(){ return 53; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52> class Pointer_CppMethod53<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod53(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52);
+        return R_NilValue;
+    }
+    inline int nargs() { return 53; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52> class Const_Pointer_CppMethod53 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod53(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52));
+    }
+    inline int nargs() { return 53; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52> class Const_Pointer_CppMethod53<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod53( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52);
+        return R_NilValue;
+    }
+    inline int nargs() { return 53; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53> class Pointer_CppMethod54 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod54(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53));
+    }
+    inline int nargs(){ return 54; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53> class Pointer_CppMethod54<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod54(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53);
+        return R_NilValue;
+    }
+    inline int nargs() { return 54; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53> class Const_Pointer_CppMethod54 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod54(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53));
+    }
+    inline int nargs() { return 54; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53> class Const_Pointer_CppMethod54<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod54( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53);
+        return R_NilValue;
+    }
+    inline int nargs() { return 54; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54> class Pointer_CppMethod55 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod55(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54));
+    }
+    inline int nargs(){ return 55; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54> class Pointer_CppMethod55<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod55(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54);
+        return R_NilValue;
+    }
+    inline int nargs() { return 55; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54> class Const_Pointer_CppMethod55 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod55(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54));
+    }
+    inline int nargs() { return 55; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54> class Const_Pointer_CppMethod55<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod55( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54);
+        return R_NilValue;
+    }
+    inline int nargs() { return 55; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55> class Pointer_CppMethod56 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod56(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55));
+    }
+    inline int nargs(){ return 56; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55> class Pointer_CppMethod56<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod56(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55);
+        return R_NilValue;
+    }
+    inline int nargs() { return 56; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55> class Const_Pointer_CppMethod56 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod56(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55));
+    }
+    inline int nargs() { return 56; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55> class Const_Pointer_CppMethod56<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod56( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55);
+        return R_NilValue;
+    }
+    inline int nargs() { return 56; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56> class Pointer_CppMethod57 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod57(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56));
+    }
+    inline int nargs(){ return 57; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56> class Pointer_CppMethod57<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod57(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56);
+        return R_NilValue;
+    }
+    inline int nargs() { return 57; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56> class Const_Pointer_CppMethod57 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod57(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56));
+    }
+    inline int nargs() { return 57; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56> class Const_Pointer_CppMethod57<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod57( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56);
+        return R_NilValue;
+    }
+    inline int nargs() { return 57; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57> class Pointer_CppMethod58 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod58(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57));
+    }
+    inline int nargs(){ return 58; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57> class Pointer_CppMethod58<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod58(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57);
+        return R_NilValue;
+    }
+    inline int nargs() { return 58; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57> class Const_Pointer_CppMethod58 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod58(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57));
+    }
+    inline int nargs() { return 58; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57> class Const_Pointer_CppMethod58<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod58( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57);
+        return R_NilValue;
+    }
+    inline int nargs() { return 58; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58> class Pointer_CppMethod59 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod59(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58));
+    }
+    inline int nargs(){ return 59; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58> class Pointer_CppMethod59<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod59(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58);
+        return R_NilValue;
+    }
+    inline int nargs() { return 59; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58> class Const_Pointer_CppMethod59 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod59(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58));
+    }
+    inline int nargs() { return 59; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58> class Const_Pointer_CppMethod59<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod59( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58);
+        return R_NilValue;
+    }
+    inline int nargs() { return 59; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59> class Pointer_CppMethod60 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod60(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59));
+    }
+    inline int nargs(){ return 60; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59> class Pointer_CppMethod60<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod60(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59);
+        return R_NilValue;
+    }
+    inline int nargs() { return 60; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59> class Const_Pointer_CppMethod60 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod60(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59));
+    }
+    inline int nargs() { return 60; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59> class Const_Pointer_CppMethod60<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod60( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59);
+        return R_NilValue;
+    }
+    inline int nargs() { return 60; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60> class Pointer_CppMethod61 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod61(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60));
+    }
+    inline int nargs(){ return 61; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60> class Pointer_CppMethod61<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod61(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60);
+        return R_NilValue;
+    }
+    inline int nargs() { return 61; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60> class Const_Pointer_CppMethod61 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod61(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60));
+    }
+    inline int nargs() { return 61; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60> class Const_Pointer_CppMethod61<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod61( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60);
+        return R_NilValue;
+    }
+    inline int nargs() { return 61; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61> class Pointer_CppMethod62 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod62(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61));
+    }
+    inline int nargs(){ return 62; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61> class Pointer_CppMethod62<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod62(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61);
+        return R_NilValue;
+    }
+    inline int nargs() { return 62; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61> class Const_Pointer_CppMethod62 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod62(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61));
+    }
+    inline int nargs() { return 62; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61> class Const_Pointer_CppMethod62<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod62( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61);
+        return R_NilValue;
+    }
+    inline int nargs() { return 62; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62> class Pointer_CppMethod63 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod63(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+typename Rcpp::traits::input_parameter< U62 >::type x62( args[62] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62));
+    }
+    inline int nargs(){ return 63; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62> class Pointer_CppMethod63<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod63(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+typename Rcpp::traits::input_parameter< U62 >::type x62( args[62] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62);
+        return R_NilValue;
+    }
+    inline int nargs() { return 63; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62> class Const_Pointer_CppMethod63 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod63(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+typename Rcpp::traits::input_parameter< U62 >::type x62( args[62] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62));
+    }
+    inline int nargs() { return 63; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62> class Const_Pointer_CppMethod63<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod63( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+typename Rcpp::traits::input_parameter< U62 >::type x62( args[62] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62);
+        return R_NilValue;
+    }
+    inline int nargs() { return 63; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63> class Pointer_CppMethod64 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod64(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+typename Rcpp::traits::input_parameter< U62 >::type x62( args[62] ) ;
+typename Rcpp::traits::input_parameter< U63 >::type x63( args[63] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63));
+    }
+    inline int nargs(){ return 64; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63> class Pointer_CppMethod64<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod64(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+typename Rcpp::traits::input_parameter< U62 >::type x62( args[62] ) ;
+typename Rcpp::traits::input_parameter< U63 >::type x63( args[63] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63);
+        return R_NilValue;
+    }
+    inline int nargs() { return 64; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63> class Const_Pointer_CppMethod64 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod64(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+typename Rcpp::traits::input_parameter< U62 >::type x62( args[62] ) ;
+typename Rcpp::traits::input_parameter< U63 >::type x63( args[63] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63));
+    }
+    inline int nargs() { return 64; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63> class Const_Pointer_CppMethod64<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod64( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+typename Rcpp::traits::input_parameter< U62 >::type x62( args[62] ) ;
+typename Rcpp::traits::input_parameter< U63 >::type x63( args[63] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63);
+        return R_NilValue;
+    }
+    inline int nargs() { return 64; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(s, name); }
+
+private:
+    Method met;
+};
+
+
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64> class Pointer_CppMethod65 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Pointer_CppMethod65(Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+typename Rcpp::traits::input_parameter< U62 >::type x62( args[62] ) ;
+typename Rcpp::traits::input_parameter< U63 >::type x63( args[63] ) ;
+typename Rcpp::traits::input_parameter< U64 >::type x64( args[64] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63, x64));
+    }
+    inline int nargs(){ return 65; }
+    inline bool is_void(){ return false; }
+    inline bool is_const(){ return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64> class Pointer_CppMethod65<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64);
+    typedef CppMethod<Class> method_class;
+
+    Pointer_CppMethod65(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+    	typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+typename Rcpp::traits::input_parameter< U62 >::type x62( args[62] ) ;
+typename Rcpp::traits::input_parameter< U63 >::type x63( args[63] ) ;
+typename Rcpp::traits::input_parameter< U64 >::type x64( args[64] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63, x64);
+        return R_NilValue;
+    }
+    inline int nargs() { return 65; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return false; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(s, name); }
+
+private:
+    Method met;
+};
+
+
+// const
+
+template <typename Class, typename RESULT_TYPE, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64> class Const_Pointer_CppMethod65 : public CppMethod<Class> {
+public:
+    typedef RESULT_TYPE (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64);
+    typedef CppMethod<Class> method_class;
+    typedef typename Rcpp::traits::remove_const_and_reference<RESULT_TYPE>::type CLEANED_RESULT_TYPE;
+
+    Const_Pointer_CppMethod65(Method m) : method_class(), met(m) {} 
+    SEXP operator()(Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+typename Rcpp::traits::input_parameter< U62 >::type x62( args[62] ) ;
+typename Rcpp::traits::input_parameter< U63 >::type x63( args[63] ) ;
+typename Rcpp::traits::input_parameter< U64 >::type x64( args[64] ) ;
+        return Rcpp::module_wrap<CLEANED_RESULT_TYPE>(met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63, x64));
+    }
+    inline int nargs() { return 65; }
+    inline bool is_void() { return false; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(s, name); }
+
+private:
+    Method met;
+};
+
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64> class Const_Pointer_CppMethod65<Class,void,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64> : public CppMethod<Class> {
+public:
+    typedef void (*Method)(const Class*, U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64);
+    typedef CppMethod<Class> method_class;
+
+    Const_Pointer_CppMethod65( Method m) : method_class(), met(m) {} 
+    SEXP operator()( Class* object, SEXP* args) {
+        typename Rcpp::traits::input_parameter< U0 >::type x0( args[0] ) ;
+typename Rcpp::traits::input_parameter< U1 >::type x1( args[1] ) ;
+typename Rcpp::traits::input_parameter< U2 >::type x2( args[2] ) ;
+typename Rcpp::traits::input_parameter< U3 >::type x3( args[3] ) ;
+typename Rcpp::traits::input_parameter< U4 >::type x4( args[4] ) ;
+typename Rcpp::traits::input_parameter< U5 >::type x5( args[5] ) ;
+typename Rcpp::traits::input_parameter< U6 >::type x6( args[6] ) ;
+typename Rcpp::traits::input_parameter< U7 >::type x7( args[7] ) ;
+typename Rcpp::traits::input_parameter< U8 >::type x8( args[8] ) ;
+typename Rcpp::traits::input_parameter< U9 >::type x9( args[9] ) ;
+typename Rcpp::traits::input_parameter< U10 >::type x10( args[10] ) ;
+typename Rcpp::traits::input_parameter< U11 >::type x11( args[11] ) ;
+typename Rcpp::traits::input_parameter< U12 >::type x12( args[12] ) ;
+typename Rcpp::traits::input_parameter< U13 >::type x13( args[13] ) ;
+typename Rcpp::traits::input_parameter< U14 >::type x14( args[14] ) ;
+typename Rcpp::traits::input_parameter< U15 >::type x15( args[15] ) ;
+typename Rcpp::traits::input_parameter< U16 >::type x16( args[16] ) ;
+typename Rcpp::traits::input_parameter< U17 >::type x17( args[17] ) ;
+typename Rcpp::traits::input_parameter< U18 >::type x18( args[18] ) ;
+typename Rcpp::traits::input_parameter< U19 >::type x19( args[19] ) ;
+typename Rcpp::traits::input_parameter< U20 >::type x20( args[20] ) ;
+typename Rcpp::traits::input_parameter< U21 >::type x21( args[21] ) ;
+typename Rcpp::traits::input_parameter< U22 >::type x22( args[22] ) ;
+typename Rcpp::traits::input_parameter< U23 >::type x23( args[23] ) ;
+typename Rcpp::traits::input_parameter< U24 >::type x24( args[24] ) ;
+typename Rcpp::traits::input_parameter< U25 >::type x25( args[25] ) ;
+typename Rcpp::traits::input_parameter< U26 >::type x26( args[26] ) ;
+typename Rcpp::traits::input_parameter< U27 >::type x27( args[27] ) ;
+typename Rcpp::traits::input_parameter< U28 >::type x28( args[28] ) ;
+typename Rcpp::traits::input_parameter< U29 >::type x29( args[29] ) ;
+typename Rcpp::traits::input_parameter< U30 >::type x30( args[30] ) ;
+typename Rcpp::traits::input_parameter< U31 >::type x31( args[31] ) ;
+typename Rcpp::traits::input_parameter< U32 >::type x32( args[32] ) ;
+typename Rcpp::traits::input_parameter< U33 >::type x33( args[33] ) ;
+typename Rcpp::traits::input_parameter< U34 >::type x34( args[34] ) ;
+typename Rcpp::traits::input_parameter< U35 >::type x35( args[35] ) ;
+typename Rcpp::traits::input_parameter< U36 >::type x36( args[36] ) ;
+typename Rcpp::traits::input_parameter< U37 >::type x37( args[37] ) ;
+typename Rcpp::traits::input_parameter< U38 >::type x38( args[38] ) ;
+typename Rcpp::traits::input_parameter< U39 >::type x39( args[39] ) ;
+typename Rcpp::traits::input_parameter< U40 >::type x40( args[40] ) ;
+typename Rcpp::traits::input_parameter< U41 >::type x41( args[41] ) ;
+typename Rcpp::traits::input_parameter< U42 >::type x42( args[42] ) ;
+typename Rcpp::traits::input_parameter< U43 >::type x43( args[43] ) ;
+typename Rcpp::traits::input_parameter< U44 >::type x44( args[44] ) ;
+typename Rcpp::traits::input_parameter< U45 >::type x45( args[45] ) ;
+typename Rcpp::traits::input_parameter< U46 >::type x46( args[46] ) ;
+typename Rcpp::traits::input_parameter< U47 >::type x47( args[47] ) ;
+typename Rcpp::traits::input_parameter< U48 >::type x48( args[48] ) ;
+typename Rcpp::traits::input_parameter< U49 >::type x49( args[49] ) ;
+typename Rcpp::traits::input_parameter< U50 >::type x50( args[50] ) ;
+typename Rcpp::traits::input_parameter< U51 >::type x51( args[51] ) ;
+typename Rcpp::traits::input_parameter< U52 >::type x52( args[52] ) ;
+typename Rcpp::traits::input_parameter< U53 >::type x53( args[53] ) ;
+typename Rcpp::traits::input_parameter< U54 >::type x54( args[54] ) ;
+typename Rcpp::traits::input_parameter< U55 >::type x55( args[55] ) ;
+typename Rcpp::traits::input_parameter< U56 >::type x56( args[56] ) ;
+typename Rcpp::traits::input_parameter< U57 >::type x57( args[57] ) ;
+typename Rcpp::traits::input_parameter< U58 >::type x58( args[58] ) ;
+typename Rcpp::traits::input_parameter< U59 >::type x59( args[59] ) ;
+typename Rcpp::traits::input_parameter< U60 >::type x60( args[60] ) ;
+typename Rcpp::traits::input_parameter< U61 >::type x61( args[61] ) ;
+typename Rcpp::traits::input_parameter< U62 >::type x62( args[62] ) ;
+typename Rcpp::traits::input_parameter< U63 >::type x63( args[63] ) ;
+typename Rcpp::traits::input_parameter< U64 >::type x64( args[64] ) ;
+        met(object, x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39, x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52, x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63, x64);
+        return R_NilValue;
+    }
+    inline int nargs() { return 65; }
+    inline bool is_void() { return true; }
+    inline bool is_const() { return true; }
+    inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(s, name); }
+
+private:
+    Method met;
+};
+
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_Constructor.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_Constructor.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_Constructor.h	(revision 2476)
@@ -0,0 +1,148 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Module_generated_Constructor.h: Rcpp R/C++ interface class library -- Rcpp modules
+//
+// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_generated_Constructor_h
+#define Rcpp_Module_generated_Constructor_h
+
+template <typename Class>
+class Constructor_Base {
+public:
+    virtual Class* get_new( SEXP* args, int nargs ) = 0 ;
+    virtual int nargs() = 0 ;
+    virtual void signature(std::string& s, const std::string& class_name) = 0 ;
+} ;
+
+template <typename Class>
+class Constructor_0 : public Constructor_Base<Class>{
+public:
+    virtual Class* get_new( SEXP* args, int nargs ){
+        return new Class() ;
+    }
+    virtual int nargs(){ return 0 ; }
+    virtual void signature(std::string& s, const std::string& class_name ){
+        ctor_signature(s, class_name) ;
+    }
+} ;
+template <typename Class, typename U0>
+class Constructor_1 : public Constructor_Base<Class>{
+    virtual Class* get_new( SEXP* args, int nargs ){
+        return new Class( as<U0>(args[0]) ) ;
+    }
+    virtual int nargs(){ return 1 ; }
+    virtual void signature(std::string& s, const std::string& class_name ){
+        ctor_signature<U0>(s, class_name) ;
+    }
+} ;
+template <typename Class, typename U0, typename U1>
+class Constructor_2 : public Constructor_Base<Class>{
+    virtual Class* get_new( SEXP* args, int nargs ){
+        return new Class(
+            as<U0>(args[0]),
+            as<U1>(args[1])
+            ) ;
+    }
+    virtual int nargs(){ return 2 ; }
+    virtual void signature(std::string& s, const std::string& class_name ){
+        ctor_signature<U0,U1>(s, class_name) ;
+    }
+} ;
+template <typename Class, typename U0, typename U1, typename U2>
+class Constructor_3 : public Constructor_Base<Class>{
+    virtual Class* get_new( SEXP* args, int nargs ){
+        return new Class(
+            as<U0>(args[0]),
+            as<U1>(args[1]),
+            as<U2>(args[2])
+            ) ;
+    }
+    virtual int nargs(){ return 3 ; }
+    virtual void signature(std::string& s, const std::string& class_name ){
+        ctor_signature<U0,U1,U2>(s, class_name) ;
+    }
+} ;
+template <typename Class, typename U0, typename U1, typename U2, typename U3>
+class Constructor_4 : public Constructor_Base<Class>{
+    virtual Class* get_new( SEXP* args, int nargs ){
+        return new Class(
+            as<U0>(args[0]),
+            as<U1>(args[1]),
+            as<U2>(args[2]),
+            as<U3>(args[3])
+            ) ;
+    }
+    virtual int nargs(){ return 4 ; }
+    virtual void signature(std::string& s, const std::string& class_name ){
+        ctor_signature<U0,U1,U2,U3>(s, class_name) ;
+    }
+} ;
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4>
+class Constructor_5 : public Constructor_Base<Class>{
+    virtual Class* get_new( SEXP* args, int nargs ){
+        return new Class(
+            as<U0>(args[0]),
+            as<U1>(args[1]),
+            as<U2>(args[2]),
+            as<U3>(args[3]),
+            as<U4>(args[4])
+            ) ;
+    }
+    virtual int nargs(){ return 5 ; }
+    virtual void signature(std::string& s, const std::string& class_name ){
+        ctor_signature<U0,U1,U2,U3,U4>(s, class_name) ;
+    }
+} ;
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+class Constructor_6 : public Constructor_Base<Class>{
+    virtual Class* get_new( SEXP* args, int nargs ){
+        return new Class(
+            as<U0>(args[0]),
+            as<U1>(args[1]),
+            as<U2>(args[2]),
+            as<U3>(args[3]),
+            as<U4>(args[4]),
+            as<U5>(args[5])
+            ) ;
+    }
+    virtual int nargs(){ return 6 ; }
+    virtual void signature(std::string& s, const std::string& class_name ){
+        ctor_signature<U0,U1,U2,U3,U4,U5>(s, class_name) ;
+    }
+} ;
+template <typename Class, typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+class Constructor_7 : public Constructor_Base<Class>{
+    virtual Class* get_new( SEXP* args, int nargs ){
+        return new Class(
+            as<U0>(args[0]),
+            as<U1>(args[1]),
+            as<U2>(args[2]),
+            as<U3>(args[3]),
+            as<U4>(args[4]),
+            as<U5>(args[5]),
+            as<U6>(args[6])
+            ) ;
+    }
+    virtual int nargs(){ return 7 ; }
+    virtual void signature(std::string& s, const std::string& class_name ){
+        ctor_signature<U0,U1,U2,U3,U4,U5,U6>(s, class_name) ;
+    }
+} ;
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_function.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_function.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_function.h	(revision 2476)
@@ -0,0 +1,1087 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Module_generated_function.h: -- generated helper code for Modules
+//                                 see rcpp-scripts repo for generator script
+//
+// Copyright (C) 2010 - 2014  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_generated_function_h
+#define Rcpp_Module_generated_function_h
+
+namespace Rcpp {
+
+
+template <typename RESULT_TYPE>
+void function(const char* name_,  RESULT_TYPE (*fun)(void), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction0<RESULT_TYPE>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE>
+void function(const char* name_,  RESULT_TYPE (*fun)(void), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals0<RESULT_TYPE>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction1<RESULT_TYPE,U0>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals1<RESULT_TYPE,U0>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction2<RESULT_TYPE,U0, U1>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals2<RESULT_TYPE,U0, U1>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction3<RESULT_TYPE,U0, U1, U2>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals3<RESULT_TYPE,U0, U1, U2>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction4<RESULT_TYPE,U0, U1, U2, U3>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals4<RESULT_TYPE,U0, U1, U2, U3>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction5<RESULT_TYPE,U0, U1, U2, U3, U4>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals5<RESULT_TYPE,U0, U1, U2, U3, U4>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction6<RESULT_TYPE,U0, U1, U2, U3, U4, U5>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals6<RESULT_TYPE,U0, U1, U2, U3, U4, U5>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction7<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals7<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction8<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals8<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction9<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals9<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction10<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals10<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction11<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals11<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction12<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals12<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction13<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals13<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction14<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals14<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction15<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals15<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction16<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals16<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction17<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals17<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction18<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals18<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction19<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals19<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction20<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals20<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction21<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals21<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction22<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals22<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction23<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals23<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction24<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals24<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction25<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals25<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction26<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals26<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction27<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals27<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction28<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals28<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction29<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals29<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction30<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals30<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction31<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals31<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction32<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals32<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction33<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals33<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction34<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals34<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction35<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals35<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction36<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals36<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction37<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals37<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction38<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals38<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction39<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals39<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction40<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals40<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction41<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals41<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction42<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals42<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction43<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals43<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction44<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals44<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction45<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals45<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction46<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals46<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction47<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals47<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction48<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals48<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction49<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals49<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction50<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals50<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction51<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals51<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction52<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals52<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction53<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals53<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction54<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals54<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction55<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals55<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction56<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals56<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction57<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals57<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction58<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals58<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction59<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals59<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction60<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals60<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction61<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals61<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction62<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals62<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction63<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals63<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction64<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals64<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63>(fun, formals, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64), const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+        scope->Add(name_, new CppFunction65<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(fun, docstring));
+    }
+}
+
+template <typename RESULT_TYPE,typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64>
+void function(const char* name_,  RESULT_TYPE (*fun)(U0 u0, U1 u1, U2 u2, U3 u3, U4 u4, U5 u5, U6 u6, U7 u7, U8 u8, U9 u9, U10 u10, U11 u11, U12 u12, U13 u13, U14 u14, U15 u15, U16 u16, U17 u17, U18 u18, U19 u19, U20 u20, U21 u21, U22 u22, U23 u23, U24 u24, U25 u25, U26 u26, U27 u27, U28 u28, U29 u29, U30 u30, U31 u31, U32 u32, U33 u33, U34 u34, U35 u35, U36 u36, U37 u37, U38 u38, U39 u39, U40 u40, U41 u41, U42 u42, U43 u43, U44 u44, U45 u45, U46 u46, U47 u47, U48 u48, U49 u49, U50 u50, U51 u51, U52 u52, U53 u53, U54 u54, U55 u55, U56 u56, U57 u57, U58 u58, U59 u59, U60 u60, U61 u61, U62 u62, U63 u63, U64 u64), Rcpp::List formals, const char* docstring = 0) {
+    Rcpp::Module* scope = ::getCurrentScope();
+    if (scope) {
+       scope->Add(name_, new CppFunction_WithFormals65<RESULT_TYPE,U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51, U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64>(fun, formals, docstring));
+    }
+}
+
+}
+
+#endif 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_class_signature.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_class_signature.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_class_signature.h	(revision 2476)
@@ -0,0 +1,34 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Module_generated_Constructor.h: Rcpp R/C++ interface class library -- Rcpp modules
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_generated_class_signature_h
+#define Rcpp_Module_generated_class_signature_h
+
+inline bool yes( SEXP* /*args*/, int /* nargs */ ){
+    return true ;
+}
+
+template<int n>
+bool yes_arity( SEXP* /* args */ , int nargs){
+    return nargs == n ;
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_ctor_signature.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_ctor_signature.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_ctor_signature.h	(revision 2476)
@@ -0,0 +1,108 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 4 -*-
+//
+// Module_generated_ctor_signature.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2010 - 2011 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_generated_ctor_signature_h
+#define Rcpp_Module_generated_ctor_signature_h
+
+inline void ctor_signature( std::string& s, const std::string& classname){
+    s.assign(classname) ;
+    s+= "()" ;
+}
+
+template <typename U0>
+inline void ctor_signature( std::string& s, const std::string& classname ){
+    s.assign(classname) ;
+    s += "(" ;
+    s += get_return_type<U0>() ;
+    s += ")" ;
+}
+
+template <typename U0, typename U1>
+inline void ctor_signature( std::string& s, const std::string& classname ){
+    s.assign(classname) ;
+    s += "(" ;
+    s += get_return_type<U0>() ;
+    s += ", " ; s+= get_return_type<U1>() ;
+    s += ")" ;
+}
+
+template <typename U0, typename U1, typename U2>
+inline void ctor_signature( std::string& s, const std::string& classname ){
+    s.assign(classname) ;
+    s += "(" ;
+    s += get_return_type<U0>() ;
+    s += ", " ; s+= get_return_type<U1>() ;
+    s += ", " ; s+= get_return_type<U2>() ;
+    s += ")" ;
+}
+
+template <typename U0, typename U1, typename U2, typename U3>
+inline void ctor_signature( std::string& s, const std::string& classname ){
+    s.assign(classname) ;
+    s += "(" ;
+    s += get_return_type<U0>() ;
+    s += ", " ; s+= get_return_type<U1>() ;
+    s += ", " ; s+= get_return_type<U2>() ;
+    s += ", " ; s+= get_return_type<U3>() ;
+    s += ")" ;
+}
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4>
+inline void ctor_signature( std::string& s, const std::string& classname ){
+    s.assign(classname) ;
+    s += "(" ;
+    s += get_return_type<U0>() ;
+    s += ", " ; s+= get_return_type<U1>() ;
+    s += ", " ; s+= get_return_type<U2>() ;
+    s += ", " ; s+= get_return_type<U3>() ;
+    s += ", " ; s+= get_return_type<U4>() ;
+    s += ")" ;
+}
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+inline void ctor_signature( std::string& s, const std::string& classname ){
+    s.assign(classname) ;
+    s += "(" ;
+    s += get_return_type<U0>() ;
+    s += ", " ; s+= get_return_type<U1>() ;
+    s += ", " ; s+= get_return_type<U2>() ;
+    s += ", " ; s+= get_return_type<U3>() ;
+    s += ", " ; s+= get_return_type<U4>() ;
+    s += ", " ; s+= get_return_type<U5>() ;
+    s += ")" ;
+}
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+inline void ctor_signature( std::string& s, const std::string& classname ){
+    s.assign(classname) ;
+    s += "(" ;
+    s += get_return_type<U0>() ;
+    s += ", " ; s+= get_return_type<U1>() ;
+    s += ", " ; s+= get_return_type<U2>() ;
+    s += ", " ; s+= get_return_type<U3>() ;
+    s += ", " ; s+= get_return_type<U4>() ;
+    s += ", " ; s+= get_return_type<U5>() ;
+    s += ", " ; s+= get_return_type<U6>() ;
+    s += ")" ;
+}
+
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_CppFunction.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_CppFunction.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/module/Module_generated_CppFunction.h	(revision 2476)
@@ -0,0 +1,14411 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Module_generated_CppFunction.h: -- generated helper code for Modules
+//                                    see rcpp-scripts repo for generator script
+//
+// Copyright (C) 2010 - 2014  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Module_generated_CppFunction_h
+#define Rcpp_Module_generated_CppFunction_h
+
+namespace Rcpp {
+
+template <typename RESULT_TYPE>
+class CppFunction0 : public CppFunction {
+    public:
+        CppFunction0(RESULT_TYPE (*fun)(void), const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+        SEXP operator()(SEXP*) {
+            BEGIN_RCPP
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun());
+            END_RCPP
+        }
+
+        inline int nargs() { return 0; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(void);
+};
+
+
+template <>
+class CppFunction0<void> : public CppFunction {
+    public:
+        CppFunction0(void (*fun)(void), const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {};
+
+        SEXP operator()(SEXP*) {
+            BEGIN_RCPP
+            ptr_fun();
+            END_RCPP
+        }
+
+        inline int nargs() { return 0; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(void);
+};
+
+
+template <typename RESULT_TYPE>
+class CppFunction_WithFormals0 : public CppFunction {
+    public:
+        CppFunction_WithFormals0(RESULT_TYPE (*fun)(void), Rcpp::List,  const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+        SEXP operator()(SEXP*) {
+            BEGIN_RCPP
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun());
+            END_RCPP
+        }
+
+        inline int nargs() { return 0; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(void);
+};
+
+
+template <>
+class CppFunction_WithFormals0<void> : public CppFunction {
+    public:
+        CppFunction_WithFormals0(void (*fun)(void), Rcpp::List, const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {} ;
+
+        SEXP operator()(SEXP*) {
+            BEGIN_RCPP
+            ptr_fun() ;
+            END_RCPP
+        }
+
+        inline int nargs() { return 0; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(void) ;
+};
+
+
+template <typename RESULT_TYPE, typename U0> class CppFunction1 : public CppFunction {
+    public:
+
+        CppFunction1(RESULT_TYPE (*fun)(U0) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0));
+            END_RCPP
+        }
+
+        inline int nargs() { return 1; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0) ;
+};
+
+template <typename U0>
+class CppFunction1<void,U0> : public CppFunction {
+    public:
+        CppFunction1(void (*fun)(U0) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            ptr_fun(x0);
+            END_RCPP
+        }
+
+        inline int nargs() { return 1; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0>
+class CppFunction_WithFormals1 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals1(RESULT_TYPE (*fun)(U0) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0));
+            END_RCPP
+        }
+
+        inline int nargs() { return 1; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0);
+};
+
+template <typename U0>
+class CppFunction_WithFormals1<void,U0> : public CppFunction {
+    public:
+        CppFunction_WithFormals1(void (*fun)(U0), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            ptr_fun(x0);
+            END_RCPP
+        }
+
+        inline int nargs() { return 1; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1> class CppFunction2 : public CppFunction {
+    public:
+
+        CppFunction2(RESULT_TYPE (*fun)(U0,U1) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1));
+            END_RCPP
+        }
+
+        inline int nargs() { return 2; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1) ;
+};
+
+template <typename U0, typename U1>
+class CppFunction2<void,U0,U1> : public CppFunction {
+    public:
+        CppFunction2(void (*fun)(U0,U1) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            ptr_fun(x0,x1);
+            END_RCPP
+        }
+
+        inline int nargs() { return 2; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1>
+class CppFunction_WithFormals2 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals2(RESULT_TYPE (*fun)(U0,U1) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1));
+            END_RCPP
+        }
+
+        inline int nargs() { return 2; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1);
+};
+
+template <typename U0, typename U1>
+class CppFunction_WithFormals2<void,U0,U1> : public CppFunction {
+    public:
+        CppFunction_WithFormals2(void (*fun)(U0,U1), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            ptr_fun(x0,x1);
+            END_RCPP
+        }
+
+        inline int nargs() { return 2; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2> class CppFunction3 : public CppFunction {
+    public:
+
+        CppFunction3(RESULT_TYPE (*fun)(U0,U1,U2) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2));
+            END_RCPP
+        }
+
+        inline int nargs() { return 3; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2) ;
+};
+
+template <typename U0, typename U1, typename U2>
+class CppFunction3<void,U0,U1,U2> : public CppFunction {
+    public:
+        CppFunction3(void (*fun)(U0,U1,U2) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            ptr_fun(x0,x1,x2);
+            END_RCPP
+        }
+
+        inline int nargs() { return 3; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2>
+class CppFunction_WithFormals3 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals3(RESULT_TYPE (*fun)(U0,U1,U2) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2));
+            END_RCPP
+        }
+
+        inline int nargs() { return 3; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2);
+};
+
+template <typename U0, typename U1, typename U2>
+class CppFunction_WithFormals3<void,U0,U1,U2> : public CppFunction {
+    public:
+        CppFunction_WithFormals3(void (*fun)(U0,U1,U2), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            ptr_fun(x0,x1,x2);
+            END_RCPP
+        }
+
+        inline int nargs() { return 3; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3> class CppFunction4 : public CppFunction {
+    public:
+
+        CppFunction4(RESULT_TYPE (*fun)(U0,U1,U2,U3) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3));
+            END_RCPP
+        }
+
+        inline int nargs() { return 4; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3>
+class CppFunction4<void,U0,U1,U2,U3> : public CppFunction {
+    public:
+        CppFunction4(void (*fun)(U0,U1,U2,U3) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            ptr_fun(x0,x1,x2,x3);
+            END_RCPP
+        }
+
+        inline int nargs() { return 4; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3>
+class CppFunction_WithFormals4 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals4(RESULT_TYPE (*fun)(U0,U1,U2,U3) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3));
+            END_RCPP
+        }
+
+        inline int nargs() { return 4; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3);
+};
+
+template <typename U0, typename U1, typename U2, typename U3>
+class CppFunction_WithFormals4<void,U0,U1,U2,U3> : public CppFunction {
+    public:
+        CppFunction_WithFormals4(void (*fun)(U0,U1,U2,U3), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            ptr_fun(x0,x1,x2,x3);
+            END_RCPP
+        }
+
+        inline int nargs() { return 4; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4> class CppFunction5 : public CppFunction {
+    public:
+
+        CppFunction5(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4));
+            END_RCPP
+        }
+
+        inline int nargs() { return 5; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4>
+class CppFunction5<void,U0,U1,U2,U3,U4> : public CppFunction {
+    public:
+        CppFunction5(void (*fun)(U0,U1,U2,U3,U4) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            ptr_fun(x0,x1,x2,x3,x4);
+            END_RCPP
+        }
+
+        inline int nargs() { return 5; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4>
+class CppFunction_WithFormals5 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals5(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4));
+            END_RCPP
+        }
+
+        inline int nargs() { return 5; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4>
+class CppFunction_WithFormals5<void,U0,U1,U2,U3,U4> : public CppFunction {
+    public:
+        CppFunction_WithFormals5(void (*fun)(U0,U1,U2,U3,U4), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            ptr_fun(x0,x1,x2,x3,x4);
+            END_RCPP
+        }
+
+        inline int nargs() { return 5; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5> class CppFunction6 : public CppFunction {
+    public:
+
+        CppFunction6(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5));
+            END_RCPP
+        }
+
+        inline int nargs() { return 6; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+class CppFunction6<void,U0,U1,U2,U3,U4,U5> : public CppFunction {
+    public:
+        CppFunction6(void (*fun)(U0,U1,U2,U3,U4,U5) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            ptr_fun(x0,x1,x2,x3,x4,x5);
+            END_RCPP
+        }
+
+        inline int nargs() { return 6; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5>
+class CppFunction_WithFormals6 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals6(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5));
+            END_RCPP
+        }
+
+        inline int nargs() { return 6; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5>
+class CppFunction_WithFormals6<void,U0,U1,U2,U3,U4,U5> : public CppFunction {
+    public:
+        CppFunction_WithFormals6(void (*fun)(U0,U1,U2,U3,U4,U5), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            ptr_fun(x0,x1,x2,x3,x4,x5);
+            END_RCPP
+        }
+
+        inline int nargs() { return 6; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6> class CppFunction7 : public CppFunction {
+    public:
+
+        CppFunction7(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6));
+            END_RCPP
+        }
+
+        inline int nargs() { return 7; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+class CppFunction7<void,U0,U1,U2,U3,U4,U5,U6> : public CppFunction {
+    public:
+        CppFunction7(void (*fun)(U0,U1,U2,U3,U4,U5,U6) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6);
+            END_RCPP
+        }
+
+        inline int nargs() { return 7; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6>
+class CppFunction_WithFormals7 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals7(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6));
+            END_RCPP
+        }
+
+        inline int nargs() { return 7; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6>
+class CppFunction_WithFormals7<void,U0,U1,U2,U3,U4,U5,U6> : public CppFunction {
+    public:
+        CppFunction_WithFormals7(void (*fun)(U0,U1,U2,U3,U4,U5,U6), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6);
+            END_RCPP
+        }
+
+        inline int nargs() { return 7; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7> class CppFunction8 : public CppFunction {
+    public:
+
+        CppFunction8(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7));
+            END_RCPP
+        }
+
+        inline int nargs() { return 8; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7>
+class CppFunction8<void,U0,U1,U2,U3,U4,U5,U6,U7> : public CppFunction {
+    public:
+        CppFunction8(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7);
+            END_RCPP
+        }
+
+        inline int nargs() { return 8; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7>
+class CppFunction_WithFormals8 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals8(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7));
+            END_RCPP
+        }
+
+        inline int nargs() { return 8; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7>
+class CppFunction_WithFormals8<void,U0,U1,U2,U3,U4,U5,U6,U7> : public CppFunction {
+    public:
+        CppFunction_WithFormals8(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7);
+            END_RCPP
+        }
+
+        inline int nargs() { return 8; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8> class CppFunction9 : public CppFunction {
+    public:
+
+        CppFunction9(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8));
+            END_RCPP
+        }
+
+        inline int nargs() { return 9; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8>
+class CppFunction9<void,U0,U1,U2,U3,U4,U5,U6,U7,U8> : public CppFunction {
+    public:
+        CppFunction9(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8);
+            END_RCPP
+        }
+
+        inline int nargs() { return 9; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8>
+class CppFunction_WithFormals9 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals9(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8));
+            END_RCPP
+        }
+
+        inline int nargs() { return 9; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8>
+class CppFunction_WithFormals9<void,U0,U1,U2,U3,U4,U5,U6,U7,U8> : public CppFunction {
+    public:
+        CppFunction_WithFormals9(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8);
+            END_RCPP
+        }
+
+        inline int nargs() { return 9; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9> class CppFunction10 : public CppFunction {
+    public:
+
+        CppFunction10(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9));
+            END_RCPP
+        }
+
+        inline int nargs() { return 10; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9>
+class CppFunction10<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9> : public CppFunction {
+    public:
+        CppFunction10(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9);
+            END_RCPP
+        }
+
+        inline int nargs() { return 10; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9>
+class CppFunction_WithFormals10 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals10(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9));
+            END_RCPP
+        }
+
+        inline int nargs() { return 10; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9>
+class CppFunction_WithFormals10<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9> : public CppFunction {
+    public:
+        CppFunction_WithFormals10(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9);
+            END_RCPP
+        }
+
+        inline int nargs() { return 10; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10> class CppFunction11 : public CppFunction {
+    public:
+
+        CppFunction11(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10));
+            END_RCPP
+        }
+
+        inline int nargs() { return 11; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10>
+class CppFunction11<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10> : public CppFunction {
+    public:
+        CppFunction11(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10);
+            END_RCPP
+        }
+
+        inline int nargs() { return 11; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10>
+class CppFunction_WithFormals11 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals11(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10));
+            END_RCPP
+        }
+
+        inline int nargs() { return 11; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10>
+class CppFunction_WithFormals11<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10> : public CppFunction {
+    public:
+        CppFunction_WithFormals11(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10);
+            END_RCPP
+        }
+
+        inline int nargs() { return 11; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11> class CppFunction12 : public CppFunction {
+    public:
+
+        CppFunction12(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11));
+            END_RCPP
+        }
+
+        inline int nargs() { return 12; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11>
+class CppFunction12<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11> : public CppFunction {
+    public:
+        CppFunction12(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11);
+            END_RCPP
+        }
+
+        inline int nargs() { return 12; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11>
+class CppFunction_WithFormals12 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals12(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11));
+            END_RCPP
+        }
+
+        inline int nargs() { return 12; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11>
+class CppFunction_WithFormals12<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11> : public CppFunction {
+    public:
+        CppFunction_WithFormals12(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11);
+            END_RCPP
+        }
+
+        inline int nargs() { return 12; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12> class CppFunction13 : public CppFunction {
+    public:
+
+        CppFunction13(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12));
+            END_RCPP
+        }
+
+        inline int nargs() { return 13; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12>
+class CppFunction13<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12> : public CppFunction {
+    public:
+        CppFunction13(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12);
+            END_RCPP
+        }
+
+        inline int nargs() { return 13; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12>
+class CppFunction_WithFormals13 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals13(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12));
+            END_RCPP
+        }
+
+        inline int nargs() { return 13; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12>
+class CppFunction_WithFormals13<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12> : public CppFunction {
+    public:
+        CppFunction_WithFormals13(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12);
+            END_RCPP
+        }
+
+        inline int nargs() { return 13; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13> class CppFunction14 : public CppFunction {
+    public:
+
+        CppFunction14(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13));
+            END_RCPP
+        }
+
+        inline int nargs() { return 14; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13>
+class CppFunction14<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13> : public CppFunction {
+    public:
+        CppFunction14(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13);
+            END_RCPP
+        }
+
+        inline int nargs() { return 14; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13>
+class CppFunction_WithFormals14 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals14(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13));
+            END_RCPP
+        }
+
+        inline int nargs() { return 14; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13>
+class CppFunction_WithFormals14<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13> : public CppFunction {
+    public:
+        CppFunction_WithFormals14(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13);
+            END_RCPP
+        }
+
+        inline int nargs() { return 14; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14> class CppFunction15 : public CppFunction {
+    public:
+
+        CppFunction15(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14));
+            END_RCPP
+        }
+
+        inline int nargs() { return 15; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14>
+class CppFunction15<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14> : public CppFunction {
+    public:
+        CppFunction15(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14);
+            END_RCPP
+        }
+
+        inline int nargs() { return 15; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14>
+class CppFunction_WithFormals15 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals15(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14));
+            END_RCPP
+        }
+
+        inline int nargs() { return 15; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14>
+class CppFunction_WithFormals15<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14> : public CppFunction {
+    public:
+        CppFunction_WithFormals15(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14);
+            END_RCPP
+        }
+
+        inline int nargs() { return 15; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15> class CppFunction16 : public CppFunction {
+    public:
+
+        CppFunction16(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15));
+            END_RCPP
+        }
+
+        inline int nargs() { return 16; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15>
+class CppFunction16<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15> : public CppFunction {
+    public:
+        CppFunction16(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15);
+            END_RCPP
+        }
+
+        inline int nargs() { return 16; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15>
+class CppFunction_WithFormals16 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals16(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15));
+            END_RCPP
+        }
+
+        inline int nargs() { return 16; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15>
+class CppFunction_WithFormals16<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15> : public CppFunction {
+    public:
+        CppFunction_WithFormals16(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15);
+            END_RCPP
+        }
+
+        inline int nargs() { return 16; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16> class CppFunction17 : public CppFunction {
+    public:
+
+        CppFunction17(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16));
+            END_RCPP
+        }
+
+        inline int nargs() { return 17; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16>
+class CppFunction17<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16> : public CppFunction {
+    public:
+        CppFunction17(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16);
+            END_RCPP
+        }
+
+        inline int nargs() { return 17; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16>
+class CppFunction_WithFormals17 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals17(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16));
+            END_RCPP
+        }
+
+        inline int nargs() { return 17; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16>
+class CppFunction_WithFormals17<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16> : public CppFunction {
+    public:
+        CppFunction_WithFormals17(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16);
+            END_RCPP
+        }
+
+        inline int nargs() { return 17; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17> class CppFunction18 : public CppFunction {
+    public:
+
+        CppFunction18(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17));
+            END_RCPP
+        }
+
+        inline int nargs() { return 18; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17>
+class CppFunction18<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17> : public CppFunction {
+    public:
+        CppFunction18(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17);
+            END_RCPP
+        }
+
+        inline int nargs() { return 18; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17>
+class CppFunction_WithFormals18 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals18(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17));
+            END_RCPP
+        }
+
+        inline int nargs() { return 18; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17>
+class CppFunction_WithFormals18<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17> : public CppFunction {
+    public:
+        CppFunction_WithFormals18(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17);
+            END_RCPP
+        }
+
+        inline int nargs() { return 18; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18> class CppFunction19 : public CppFunction {
+    public:
+
+        CppFunction19(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18));
+            END_RCPP
+        }
+
+        inline int nargs() { return 19; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18>
+class CppFunction19<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18> : public CppFunction {
+    public:
+        CppFunction19(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18);
+            END_RCPP
+        }
+
+        inline int nargs() { return 19; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18>
+class CppFunction_WithFormals19 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals19(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18));
+            END_RCPP
+        }
+
+        inline int nargs() { return 19; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18>
+class CppFunction_WithFormals19<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18> : public CppFunction {
+    public:
+        CppFunction_WithFormals19(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18);
+            END_RCPP
+        }
+
+        inline int nargs() { return 19; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19> class CppFunction20 : public CppFunction {
+    public:
+
+        CppFunction20(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19));
+            END_RCPP
+        }
+
+        inline int nargs() { return 20; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
+class CppFunction20<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19> : public CppFunction {
+    public:
+        CppFunction20(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19);
+            END_RCPP
+        }
+
+        inline int nargs() { return 20; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19>
+class CppFunction_WithFormals20 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals20(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19));
+            END_RCPP
+        }
+
+        inline int nargs() { return 20; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19>
+class CppFunction_WithFormals20<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19> : public CppFunction {
+    public:
+        CppFunction_WithFormals20(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19);
+            END_RCPP
+        }
+
+        inline int nargs() { return 20; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20> class CppFunction21 : public CppFunction {
+    public:
+
+        CppFunction21(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20));
+            END_RCPP
+        }
+
+        inline int nargs() { return 21; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20>
+class CppFunction21<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20> : public CppFunction {
+    public:
+        CppFunction21(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20);
+            END_RCPP
+        }
+
+        inline int nargs() { return 21; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20>
+class CppFunction_WithFormals21 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals21(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20));
+            END_RCPP
+        }
+
+        inline int nargs() { return 21; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20>
+class CppFunction_WithFormals21<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20> : public CppFunction {
+    public:
+        CppFunction_WithFormals21(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20);
+            END_RCPP
+        }
+
+        inline int nargs() { return 21; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21> class CppFunction22 : public CppFunction {
+    public:
+
+        CppFunction22(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21));
+            END_RCPP
+        }
+
+        inline int nargs() { return 22; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21>
+class CppFunction22<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21> : public CppFunction {
+    public:
+        CppFunction22(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21);
+            END_RCPP
+        }
+
+        inline int nargs() { return 22; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21>
+class CppFunction_WithFormals22 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals22(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21));
+            END_RCPP
+        }
+
+        inline int nargs() { return 22; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21>
+class CppFunction_WithFormals22<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21> : public CppFunction {
+    public:
+        CppFunction_WithFormals22(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21);
+            END_RCPP
+        }
+
+        inline int nargs() { return 22; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22> class CppFunction23 : public CppFunction {
+    public:
+
+        CppFunction23(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22));
+            END_RCPP
+        }
+
+        inline int nargs() { return 23; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22>
+class CppFunction23<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22> : public CppFunction {
+    public:
+        CppFunction23(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22);
+            END_RCPP
+        }
+
+        inline int nargs() { return 23; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22>
+class CppFunction_WithFormals23 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals23(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22));
+            END_RCPP
+        }
+
+        inline int nargs() { return 23; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22>
+class CppFunction_WithFormals23<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22> : public CppFunction {
+    public:
+        CppFunction_WithFormals23(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22);
+            END_RCPP
+        }
+
+        inline int nargs() { return 23; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23> class CppFunction24 : public CppFunction {
+    public:
+
+        CppFunction24(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23));
+            END_RCPP
+        }
+
+        inline int nargs() { return 24; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23>
+class CppFunction24<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23> : public CppFunction {
+    public:
+        CppFunction24(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23);
+            END_RCPP
+        }
+
+        inline int nargs() { return 24; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23>
+class CppFunction_WithFormals24 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals24(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23));
+            END_RCPP
+        }
+
+        inline int nargs() { return 24; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23>
+class CppFunction_WithFormals24<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23> : public CppFunction {
+    public:
+        CppFunction_WithFormals24(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23);
+            END_RCPP
+        }
+
+        inline int nargs() { return 24; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24> class CppFunction25 : public CppFunction {
+    public:
+
+        CppFunction25(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24));
+            END_RCPP
+        }
+
+        inline int nargs() { return 25; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24>
+class CppFunction25<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24> : public CppFunction {
+    public:
+        CppFunction25(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24);
+            END_RCPP
+        }
+
+        inline int nargs() { return 25; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24>
+class CppFunction_WithFormals25 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals25(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24));
+            END_RCPP
+        }
+
+        inline int nargs() { return 25; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24>
+class CppFunction_WithFormals25<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24> : public CppFunction {
+    public:
+        CppFunction_WithFormals25(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24);
+            END_RCPP
+        }
+
+        inline int nargs() { return 25; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25> class CppFunction26 : public CppFunction {
+    public:
+
+        CppFunction26(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25));
+            END_RCPP
+        }
+
+        inline int nargs() { return 26; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25>
+class CppFunction26<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25> : public CppFunction {
+    public:
+        CppFunction26(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25);
+            END_RCPP
+        }
+
+        inline int nargs() { return 26; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25>
+class CppFunction_WithFormals26 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals26(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25));
+            END_RCPP
+        }
+
+        inline int nargs() { return 26; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25>
+class CppFunction_WithFormals26<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25> : public CppFunction {
+    public:
+        CppFunction_WithFormals26(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25);
+            END_RCPP
+        }
+
+        inline int nargs() { return 26; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26> class CppFunction27 : public CppFunction {
+    public:
+
+        CppFunction27(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26));
+            END_RCPP
+        }
+
+        inline int nargs() { return 27; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26>
+class CppFunction27<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26> : public CppFunction {
+    public:
+        CppFunction27(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26);
+            END_RCPP
+        }
+
+        inline int nargs() { return 27; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26>
+class CppFunction_WithFormals27 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals27(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26));
+            END_RCPP
+        }
+
+        inline int nargs() { return 27; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26>
+class CppFunction_WithFormals27<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26> : public CppFunction {
+    public:
+        CppFunction_WithFormals27(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26);
+            END_RCPP
+        }
+
+        inline int nargs() { return 27; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27> class CppFunction28 : public CppFunction {
+    public:
+
+        CppFunction28(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27));
+            END_RCPP
+        }
+
+        inline int nargs() { return 28; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27>
+class CppFunction28<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27> : public CppFunction {
+    public:
+        CppFunction28(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27);
+            END_RCPP
+        }
+
+        inline int nargs() { return 28; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27>
+class CppFunction_WithFormals28 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals28(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27));
+            END_RCPP
+        }
+
+        inline int nargs() { return 28; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27>
+class CppFunction_WithFormals28<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27> : public CppFunction {
+    public:
+        CppFunction_WithFormals28(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27);
+            END_RCPP
+        }
+
+        inline int nargs() { return 28; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28> class CppFunction29 : public CppFunction {
+    public:
+
+        CppFunction29(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28));
+            END_RCPP
+        }
+
+        inline int nargs() { return 29; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28>
+class CppFunction29<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28> : public CppFunction {
+    public:
+        CppFunction29(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28);
+            END_RCPP
+        }
+
+        inline int nargs() { return 29; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28>
+class CppFunction_WithFormals29 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals29(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28));
+            END_RCPP
+        }
+
+        inline int nargs() { return 29; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28>
+class CppFunction_WithFormals29<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28> : public CppFunction {
+    public:
+        CppFunction_WithFormals29(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28);
+            END_RCPP
+        }
+
+        inline int nargs() { return 29; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29> class CppFunction30 : public CppFunction {
+    public:
+
+        CppFunction30(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29));
+            END_RCPP
+        }
+
+        inline int nargs() { return 30; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29>
+class CppFunction30<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29> : public CppFunction {
+    public:
+        CppFunction30(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29);
+            END_RCPP
+        }
+
+        inline int nargs() { return 30; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29>
+class CppFunction_WithFormals30 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals30(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29));
+            END_RCPP
+        }
+
+        inline int nargs() { return 30; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29>
+class CppFunction_WithFormals30<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29> : public CppFunction {
+    public:
+        CppFunction_WithFormals30(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29);
+            END_RCPP
+        }
+
+        inline int nargs() { return 30; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30> class CppFunction31 : public CppFunction {
+    public:
+
+        CppFunction31(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30));
+            END_RCPP
+        }
+
+        inline int nargs() { return 31; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30>
+class CppFunction31<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30> : public CppFunction {
+    public:
+        CppFunction31(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30);
+            END_RCPP
+        }
+
+        inline int nargs() { return 31; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30>
+class CppFunction_WithFormals31 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals31(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30));
+            END_RCPP
+        }
+
+        inline int nargs() { return 31; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30>
+class CppFunction_WithFormals31<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30> : public CppFunction {
+    public:
+        CppFunction_WithFormals31(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30);
+            END_RCPP
+        }
+
+        inline int nargs() { return 31; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31> class CppFunction32 : public CppFunction {
+    public:
+
+        CppFunction32(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31));
+            END_RCPP
+        }
+
+        inline int nargs() { return 32; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31>
+class CppFunction32<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31> : public CppFunction {
+    public:
+        CppFunction32(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31);
+            END_RCPP
+        }
+
+        inline int nargs() { return 32; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31>
+class CppFunction_WithFormals32 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals32(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31));
+            END_RCPP
+        }
+
+        inline int nargs() { return 32; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31>
+class CppFunction_WithFormals32<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31> : public CppFunction {
+    public:
+        CppFunction_WithFormals32(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31);
+            END_RCPP
+        }
+
+        inline int nargs() { return 32; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32> class CppFunction33 : public CppFunction {
+    public:
+
+        CppFunction33(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32));
+            END_RCPP
+        }
+
+        inline int nargs() { return 33; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32>
+class CppFunction33<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32> : public CppFunction {
+    public:
+        CppFunction33(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32);
+            END_RCPP
+        }
+
+        inline int nargs() { return 33; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32>
+class CppFunction_WithFormals33 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals33(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32));
+            END_RCPP
+        }
+
+        inline int nargs() { return 33; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32>
+class CppFunction_WithFormals33<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32> : public CppFunction {
+    public:
+        CppFunction_WithFormals33(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32);
+            END_RCPP
+        }
+
+        inline int nargs() { return 33; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33> class CppFunction34 : public CppFunction {
+    public:
+
+        CppFunction34(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33));
+            END_RCPP
+        }
+
+        inline int nargs() { return 34; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33>
+class CppFunction34<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33> : public CppFunction {
+    public:
+        CppFunction34(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33);
+            END_RCPP
+        }
+
+        inline int nargs() { return 34; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33>
+class CppFunction_WithFormals34 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals34(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33));
+            END_RCPP
+        }
+
+        inline int nargs() { return 34; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33>
+class CppFunction_WithFormals34<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33> : public CppFunction {
+    public:
+        CppFunction_WithFormals34(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33);
+            END_RCPP
+        }
+
+        inline int nargs() { return 34; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34> class CppFunction35 : public CppFunction {
+    public:
+
+        CppFunction35(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34));
+            END_RCPP
+        }
+
+        inline int nargs() { return 35; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34>
+class CppFunction35<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34> : public CppFunction {
+    public:
+        CppFunction35(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34);
+            END_RCPP
+        }
+
+        inline int nargs() { return 35; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34>
+class CppFunction_WithFormals35 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals35(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34));
+            END_RCPP
+        }
+
+        inline int nargs() { return 35; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34>
+class CppFunction_WithFormals35<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34> : public CppFunction {
+    public:
+        CppFunction_WithFormals35(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34);
+            END_RCPP
+        }
+
+        inline int nargs() { return 35; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35> class CppFunction36 : public CppFunction {
+    public:
+
+        CppFunction36(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35));
+            END_RCPP
+        }
+
+        inline int nargs() { return 36; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35>
+class CppFunction36<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35> : public CppFunction {
+    public:
+        CppFunction36(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35);
+            END_RCPP
+        }
+
+        inline int nargs() { return 36; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35>
+class CppFunction_WithFormals36 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals36(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35));
+            END_RCPP
+        }
+
+        inline int nargs() { return 36; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35>
+class CppFunction_WithFormals36<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35> : public CppFunction {
+    public:
+        CppFunction_WithFormals36(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35);
+            END_RCPP
+        }
+
+        inline int nargs() { return 36; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36> class CppFunction37 : public CppFunction {
+    public:
+
+        CppFunction37(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36));
+            END_RCPP
+        }
+
+        inline int nargs() { return 37; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36>
+class CppFunction37<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36> : public CppFunction {
+    public:
+        CppFunction37(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36);
+            END_RCPP
+        }
+
+        inline int nargs() { return 37; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36>
+class CppFunction_WithFormals37 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals37(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36));
+            END_RCPP
+        }
+
+        inline int nargs() { return 37; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36>
+class CppFunction_WithFormals37<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36> : public CppFunction {
+    public:
+        CppFunction_WithFormals37(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36);
+            END_RCPP
+        }
+
+        inline int nargs() { return 37; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37> class CppFunction38 : public CppFunction {
+    public:
+
+        CppFunction38(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37));
+            END_RCPP
+        }
+
+        inline int nargs() { return 38; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37>
+class CppFunction38<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37> : public CppFunction {
+    public:
+        CppFunction38(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37);
+            END_RCPP
+        }
+
+        inline int nargs() { return 38; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37>
+class CppFunction_WithFormals38 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals38(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37));
+            END_RCPP
+        }
+
+        inline int nargs() { return 38; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37>
+class CppFunction_WithFormals38<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37> : public CppFunction {
+    public:
+        CppFunction_WithFormals38(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37);
+            END_RCPP
+        }
+
+        inline int nargs() { return 38; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38> class CppFunction39 : public CppFunction {
+    public:
+
+        CppFunction39(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38));
+            END_RCPP
+        }
+
+        inline int nargs() { return 39; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38>
+class CppFunction39<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38> : public CppFunction {
+    public:
+        CppFunction39(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38);
+            END_RCPP
+        }
+
+        inline int nargs() { return 39; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38>
+class CppFunction_WithFormals39 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals39(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38));
+            END_RCPP
+        }
+
+        inline int nargs() { return 39; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38>
+class CppFunction_WithFormals39<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38> : public CppFunction {
+    public:
+        CppFunction_WithFormals39(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38);
+            END_RCPP
+        }
+
+        inline int nargs() { return 39; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39> class CppFunction40 : public CppFunction {
+    public:
+
+        CppFunction40(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39));
+            END_RCPP
+        }
+
+        inline int nargs() { return 40; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39>
+class CppFunction40<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39> : public CppFunction {
+    public:
+        CppFunction40(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39);
+            END_RCPP
+        }
+
+        inline int nargs() { return 40; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39>
+class CppFunction_WithFormals40 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals40(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39));
+            END_RCPP
+        }
+
+        inline int nargs() { return 40; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39>
+class CppFunction_WithFormals40<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39> : public CppFunction {
+    public:
+        CppFunction_WithFormals40(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39);
+            END_RCPP
+        }
+
+        inline int nargs() { return 40; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40> class CppFunction41 : public CppFunction {
+    public:
+
+        CppFunction41(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40));
+            END_RCPP
+        }
+
+        inline int nargs() { return 41; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40>
+class CppFunction41<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40> : public CppFunction {
+    public:
+        CppFunction41(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40);
+            END_RCPP
+        }
+
+        inline int nargs() { return 41; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40>
+class CppFunction_WithFormals41 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals41(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40));
+            END_RCPP
+        }
+
+        inline int nargs() { return 41; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40>
+class CppFunction_WithFormals41<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40> : public CppFunction {
+    public:
+        CppFunction_WithFormals41(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40);
+            END_RCPP
+        }
+
+        inline int nargs() { return 41; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41> class CppFunction42 : public CppFunction {
+    public:
+
+        CppFunction42(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41));
+            END_RCPP
+        }
+
+        inline int nargs() { return 42; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41>
+class CppFunction42<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41> : public CppFunction {
+    public:
+        CppFunction42(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41);
+            END_RCPP
+        }
+
+        inline int nargs() { return 42; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41>
+class CppFunction_WithFormals42 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals42(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41));
+            END_RCPP
+        }
+
+        inline int nargs() { return 42; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41>
+class CppFunction_WithFormals42<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41> : public CppFunction {
+    public:
+        CppFunction_WithFormals42(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41);
+            END_RCPP
+        }
+
+        inline int nargs() { return 42; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42> class CppFunction43 : public CppFunction {
+    public:
+
+        CppFunction43(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42));
+            END_RCPP
+        }
+
+        inline int nargs() { return 43; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42>
+class CppFunction43<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42> : public CppFunction {
+    public:
+        CppFunction43(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42);
+            END_RCPP
+        }
+
+        inline int nargs() { return 43; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42>
+class CppFunction_WithFormals43 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals43(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42));
+            END_RCPP
+        }
+
+        inline int nargs() { return 43; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42>
+class CppFunction_WithFormals43<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42> : public CppFunction {
+    public:
+        CppFunction_WithFormals43(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42);
+            END_RCPP
+        }
+
+        inline int nargs() { return 43; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43> class CppFunction44 : public CppFunction {
+    public:
+
+        CppFunction44(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43));
+            END_RCPP
+        }
+
+        inline int nargs() { return 44; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43>
+class CppFunction44<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43> : public CppFunction {
+    public:
+        CppFunction44(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43);
+            END_RCPP
+        }
+
+        inline int nargs() { return 44; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43>
+class CppFunction_WithFormals44 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals44(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43));
+            END_RCPP
+        }
+
+        inline int nargs() { return 44; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43>
+class CppFunction_WithFormals44<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43> : public CppFunction {
+    public:
+        CppFunction_WithFormals44(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43);
+            END_RCPP
+        }
+
+        inline int nargs() { return 44; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44> class CppFunction45 : public CppFunction {
+    public:
+
+        CppFunction45(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44));
+            END_RCPP
+        }
+
+        inline int nargs() { return 45; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44>
+class CppFunction45<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44> : public CppFunction {
+    public:
+        CppFunction45(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44);
+            END_RCPP
+        }
+
+        inline int nargs() { return 45; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44>
+class CppFunction_WithFormals45 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals45(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44));
+            END_RCPP
+        }
+
+        inline int nargs() { return 45; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44>
+class CppFunction_WithFormals45<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44> : public CppFunction {
+    public:
+        CppFunction_WithFormals45(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44);
+            END_RCPP
+        }
+
+        inline int nargs() { return 45; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45> class CppFunction46 : public CppFunction {
+    public:
+
+        CppFunction46(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45));
+            END_RCPP
+        }
+
+        inline int nargs() { return 46; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45>
+class CppFunction46<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45> : public CppFunction {
+    public:
+        CppFunction46(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45);
+            END_RCPP
+        }
+
+        inline int nargs() { return 46; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45>
+class CppFunction_WithFormals46 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals46(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45));
+            END_RCPP
+        }
+
+        inline int nargs() { return 46; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45>
+class CppFunction_WithFormals46<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45> : public CppFunction {
+    public:
+        CppFunction_WithFormals46(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45);
+            END_RCPP
+        }
+
+        inline int nargs() { return 46; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46> class CppFunction47 : public CppFunction {
+    public:
+
+        CppFunction47(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46));
+            END_RCPP
+        }
+
+        inline int nargs() { return 47; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46>
+class CppFunction47<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46> : public CppFunction {
+    public:
+        CppFunction47(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46);
+            END_RCPP
+        }
+
+        inline int nargs() { return 47; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46>
+class CppFunction_WithFormals47 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals47(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46));
+            END_RCPP
+        }
+
+        inline int nargs() { return 47; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46>
+class CppFunction_WithFormals47<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46> : public CppFunction {
+    public:
+        CppFunction_WithFormals47(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46);
+            END_RCPP
+        }
+
+        inline int nargs() { return 47; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47> class CppFunction48 : public CppFunction {
+    public:
+
+        CppFunction48(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47));
+            END_RCPP
+        }
+
+        inline int nargs() { return 48; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47>
+class CppFunction48<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47> : public CppFunction {
+    public:
+        CppFunction48(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47);
+            END_RCPP
+        }
+
+        inline int nargs() { return 48; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47>
+class CppFunction_WithFormals48 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals48(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47));
+            END_RCPP
+        }
+
+        inline int nargs() { return 48; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47>
+class CppFunction_WithFormals48<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47> : public CppFunction {
+    public:
+        CppFunction_WithFormals48(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47);
+            END_RCPP
+        }
+
+        inline int nargs() { return 48; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48> class CppFunction49 : public CppFunction {
+    public:
+
+        CppFunction49(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48));
+            END_RCPP
+        }
+
+        inline int nargs() { return 49; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48>
+class CppFunction49<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48> : public CppFunction {
+    public:
+        CppFunction49(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48);
+            END_RCPP
+        }
+
+        inline int nargs() { return 49; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48>
+class CppFunction_WithFormals49 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals49(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48));
+            END_RCPP
+        }
+
+        inline int nargs() { return 49; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48>
+class CppFunction_WithFormals49<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48> : public CppFunction {
+    public:
+        CppFunction_WithFormals49(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48);
+            END_RCPP
+        }
+
+        inline int nargs() { return 49; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49> class CppFunction50 : public CppFunction {
+    public:
+
+        CppFunction50(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49));
+            END_RCPP
+        }
+
+        inline int nargs() { return 50; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49>
+class CppFunction50<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49> : public CppFunction {
+    public:
+        CppFunction50(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49);
+            END_RCPP
+        }
+
+        inline int nargs() { return 50; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49>
+class CppFunction_WithFormals50 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals50(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49));
+            END_RCPP
+        }
+
+        inline int nargs() { return 50; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49>
+class CppFunction_WithFormals50<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49> : public CppFunction {
+    public:
+        CppFunction_WithFormals50(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49);
+            END_RCPP
+        }
+
+        inline int nargs() { return 50; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50> class CppFunction51 : public CppFunction {
+    public:
+
+        CppFunction51(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50));
+            END_RCPP
+        }
+
+        inline int nargs() { return 51; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50>
+class CppFunction51<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50> : public CppFunction {
+    public:
+        CppFunction51(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50);
+            END_RCPP
+        }
+
+        inline int nargs() { return 51; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50>
+class CppFunction_WithFormals51 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals51(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50));
+            END_RCPP
+        }
+
+        inline int nargs() { return 51; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50>
+class CppFunction_WithFormals51<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50> : public CppFunction {
+    public:
+        CppFunction_WithFormals51(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50);
+            END_RCPP
+        }
+
+        inline int nargs() { return 51; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51> class CppFunction52 : public CppFunction {
+    public:
+
+        CppFunction52(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51));
+            END_RCPP
+        }
+
+        inline int nargs() { return 52; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51>
+class CppFunction52<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51> : public CppFunction {
+    public:
+        CppFunction52(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51);
+            END_RCPP
+        }
+
+        inline int nargs() { return 52; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51>
+class CppFunction_WithFormals52 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals52(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51));
+            END_RCPP
+        }
+
+        inline int nargs() { return 52; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51>
+class CppFunction_WithFormals52<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51> : public CppFunction {
+    public:
+        CppFunction_WithFormals52(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51);
+            END_RCPP
+        }
+
+        inline int nargs() { return 52; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52> class CppFunction53 : public CppFunction {
+    public:
+
+        CppFunction53(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52));
+            END_RCPP
+        }
+
+        inline int nargs() { return 53; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52>
+class CppFunction53<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52> : public CppFunction {
+    public:
+        CppFunction53(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52);
+            END_RCPP
+        }
+
+        inline int nargs() { return 53; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52>
+class CppFunction_WithFormals53 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals53(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52));
+            END_RCPP
+        }
+
+        inline int nargs() { return 53; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52>
+class CppFunction_WithFormals53<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52> : public CppFunction {
+    public:
+        CppFunction_WithFormals53(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52);
+            END_RCPP
+        }
+
+        inline int nargs() { return 53; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53> class CppFunction54 : public CppFunction {
+    public:
+
+        CppFunction54(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53));
+            END_RCPP
+        }
+
+        inline int nargs() { return 54; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53>
+class CppFunction54<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53> : public CppFunction {
+    public:
+        CppFunction54(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53);
+            END_RCPP
+        }
+
+        inline int nargs() { return 54; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53>
+class CppFunction_WithFormals54 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals54(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53));
+            END_RCPP
+        }
+
+        inline int nargs() { return 54; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53>
+class CppFunction_WithFormals54<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53> : public CppFunction {
+    public:
+        CppFunction_WithFormals54(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53);
+            END_RCPP
+        }
+
+        inline int nargs() { return 54; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54> class CppFunction55 : public CppFunction {
+    public:
+
+        CppFunction55(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54));
+            END_RCPP
+        }
+
+        inline int nargs() { return 55; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54>
+class CppFunction55<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54> : public CppFunction {
+    public:
+        CppFunction55(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54);
+            END_RCPP
+        }
+
+        inline int nargs() { return 55; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54>
+class CppFunction_WithFormals55 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals55(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54));
+            END_RCPP
+        }
+
+        inline int nargs() { return 55; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54>
+class CppFunction_WithFormals55<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54> : public CppFunction {
+    public:
+        CppFunction_WithFormals55(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54);
+            END_RCPP
+        }
+
+        inline int nargs() { return 55; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55> class CppFunction56 : public CppFunction {
+    public:
+
+        CppFunction56(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55));
+            END_RCPP
+        }
+
+        inline int nargs() { return 56; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55>
+class CppFunction56<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55> : public CppFunction {
+    public:
+        CppFunction56(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55);
+            END_RCPP
+        }
+
+        inline int nargs() { return 56; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55>
+class CppFunction_WithFormals56 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals56(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55));
+            END_RCPP
+        }
+
+        inline int nargs() { return 56; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55>
+class CppFunction_WithFormals56<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55> : public CppFunction {
+    public:
+        CppFunction_WithFormals56(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55);
+            END_RCPP
+        }
+
+        inline int nargs() { return 56; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56> class CppFunction57 : public CppFunction {
+    public:
+
+        CppFunction57(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56));
+            END_RCPP
+        }
+
+        inline int nargs() { return 57; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56>
+class CppFunction57<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56> : public CppFunction {
+    public:
+        CppFunction57(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56);
+            END_RCPP
+        }
+
+        inline int nargs() { return 57; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56>
+class CppFunction_WithFormals57 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals57(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56));
+            END_RCPP
+        }
+
+        inline int nargs() { return 57; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56>
+class CppFunction_WithFormals57<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56> : public CppFunction {
+    public:
+        CppFunction_WithFormals57(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56);
+            END_RCPP
+        }
+
+        inline int nargs() { return 57; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57> class CppFunction58 : public CppFunction {
+    public:
+
+        CppFunction58(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57));
+            END_RCPP
+        }
+
+        inline int nargs() { return 58; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57>
+class CppFunction58<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57> : public CppFunction {
+    public:
+        CppFunction58(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57);
+            END_RCPP
+        }
+
+        inline int nargs() { return 58; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57>
+class CppFunction_WithFormals58 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals58(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57));
+            END_RCPP
+        }
+
+        inline int nargs() { return 58; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57>
+class CppFunction_WithFormals58<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57> : public CppFunction {
+    public:
+        CppFunction_WithFormals58(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57);
+            END_RCPP
+        }
+
+        inline int nargs() { return 58; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58> class CppFunction59 : public CppFunction {
+    public:
+
+        CppFunction59(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58));
+            END_RCPP
+        }
+
+        inline int nargs() { return 59; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58>
+class CppFunction59<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58> : public CppFunction {
+    public:
+        CppFunction59(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58);
+            END_RCPP
+        }
+
+        inline int nargs() { return 59; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58>
+class CppFunction_WithFormals59 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals59(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58));
+            END_RCPP
+        }
+
+        inline int nargs() { return 59; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58>
+class CppFunction_WithFormals59<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58> : public CppFunction {
+    public:
+        CppFunction_WithFormals59(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58);
+            END_RCPP
+        }
+
+        inline int nargs() { return 59; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58,typename U59> class CppFunction60 : public CppFunction {
+    public:
+
+        CppFunction60(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59));
+            END_RCPP
+        }
+
+        inline int nargs() { return 60; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59>
+class CppFunction60<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59> : public CppFunction {
+    public:
+        CppFunction60(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59);
+            END_RCPP
+        }
+
+        inline int nargs() { return 60; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58,typename U59>
+class CppFunction_WithFormals60 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals60(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59));
+            END_RCPP
+        }
+
+        inline int nargs() { return 60; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59>
+class CppFunction_WithFormals60<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59> : public CppFunction {
+    public:
+        CppFunction_WithFormals60(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59);
+            END_RCPP
+        }
+
+        inline int nargs() { return 60; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58,typename U59,typename U60> class CppFunction61 : public CppFunction {
+    public:
+
+        CppFunction61(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60));
+            END_RCPP
+        }
+
+        inline int nargs() { return 61; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60>
+class CppFunction61<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60> : public CppFunction {
+    public:
+        CppFunction61(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60);
+            END_RCPP
+        }
+
+        inline int nargs() { return 61; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58,typename U59,typename U60>
+class CppFunction_WithFormals61 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals61(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60));
+            END_RCPP
+        }
+
+        inline int nargs() { return 61; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60>
+class CppFunction_WithFormals61<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60> : public CppFunction {
+    public:
+        CppFunction_WithFormals61(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60);
+            END_RCPP
+        }
+
+        inline int nargs() { return 61; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58,typename U59,typename U60,typename U61> class CppFunction62 : public CppFunction {
+    public:
+
+        CppFunction62(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61));
+            END_RCPP
+        }
+
+        inline int nargs() { return 62; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61>
+class CppFunction62<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61> : public CppFunction {
+    public:
+        CppFunction62(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61);
+            END_RCPP
+        }
+
+        inline int nargs() { return 62; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58,typename U59,typename U60,typename U61>
+class CppFunction_WithFormals62 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals62(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61));
+            END_RCPP
+        }
+
+        inline int nargs() { return 62; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61>
+class CppFunction_WithFormals62<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61> : public CppFunction {
+    public:
+        CppFunction_WithFormals62(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61);
+            END_RCPP
+        }
+
+        inline int nargs() { return 62; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58,typename U59,typename U60,typename U61,typename U62> class CppFunction63 : public CppFunction {
+    public:
+
+        CppFunction63(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            typename traits::input_parameter< U62 >::type x62(args[62]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62));
+            END_RCPP
+        }
+
+        inline int nargs() { return 63; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62>
+class CppFunction63<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62> : public CppFunction {
+    public:
+        CppFunction63(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            typename traits::input_parameter< U62 >::type x62(args[62]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62);
+            END_RCPP
+        }
+
+        inline int nargs() { return 63; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58,typename U59,typename U60,typename U61,typename U62>
+class CppFunction_WithFormals63 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals63(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            typename traits::input_parameter< U62 >::type x62(args[62]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62));
+            END_RCPP
+        }
+
+        inline int nargs() { return 63; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62>
+class CppFunction_WithFormals63<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62> : public CppFunction {
+    public:
+        CppFunction_WithFormals63(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            typename traits::input_parameter< U62 >::type x62(args[62]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62);
+            END_RCPP
+        }
+
+        inline int nargs() { return 63; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58,typename U59,typename U60,typename U61,typename U62,typename U63> class CppFunction64 : public CppFunction {
+    public:
+
+        CppFunction64(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            typename traits::input_parameter< U62 >::type x62(args[62]);
+            typename traits::input_parameter< U63 >::type x63(args[63]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62,x63));
+            END_RCPP
+        }
+
+        inline int nargs() { return 64; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63>
+class CppFunction64<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63> : public CppFunction {
+    public:
+        CppFunction64(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            typename traits::input_parameter< U62 >::type x62(args[62]);
+            typename traits::input_parameter< U63 >::type x63(args[63]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62,x63);
+            END_RCPP
+        }
+
+        inline int nargs() { return 64; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58,typename U59,typename U60,typename U61,typename U62,typename U63>
+class CppFunction_WithFormals64 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals64(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            typename traits::input_parameter< U62 >::type x62(args[62]);
+            typename traits::input_parameter< U63 >::type x63(args[63]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62,x63));
+            END_RCPP
+        }
+
+        inline int nargs() { return 64; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63>
+class CppFunction_WithFormals64<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63> : public CppFunction {
+    public:
+        CppFunction_WithFormals64(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            typename traits::input_parameter< U62 >::type x62(args[62]);
+            typename traits::input_parameter< U63 >::type x63(args[63]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62,x63);
+            END_RCPP
+        }
+
+        inline int nargs() { return 64; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63);
+};
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58,typename U59,typename U60,typename U61,typename U62,typename U63,typename U64> class CppFunction65 : public CppFunction {
+    public:
+
+        CppFunction65(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            typename traits::input_parameter< U62 >::type x62(args[62]);
+            typename traits::input_parameter< U63 >::type x63(args[63]);
+            typename traits::input_parameter< U64 >::type x64(args[64]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62,x63,x64));
+            END_RCPP
+        }
+
+        inline int nargs() { return 65; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun ; }
+
+    private:
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64) ;
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64>
+class CppFunction65<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64> : public CppFunction {
+    public:
+        CppFunction65(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64) , const char* docstring = 0) : CppFunction(docstring), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            typename traits::input_parameter< U62 >::type x62(args[62]);
+            typename traits::input_parameter< U63 >::type x63(args[63]);
+            typename traits::input_parameter< U64 >::type x64(args[64]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62,x63,x64);
+            END_RCPP
+        }
+
+        inline int nargs() { return 65; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64>(s, name); }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64) ;
+};
+
+
+
+template <typename RESULT_TYPE, typename U0,typename U1,typename U2,typename U3,typename U4,typename U5,typename U6,typename U7,typename U8,typename U9,typename U10,typename U11,typename U12,typename U13,typename U14,typename U15,typename U16,typename U17,typename U18,typename U19,typename U20,typename U21,typename U22,typename U23,typename U24,typename U25,typename U26,typename U27,typename U28,typename U29,typename U30,typename U31,typename U32,typename U33,typename U34,typename U35,typename U36,typename U37,typename U38,typename U39,typename U40,typename U41,typename U42,typename U43,typename U44,typename U45,typename U46,typename U47,typename U48,typename U49,typename U50,typename U51,typename U52,typename U53,typename U54,typename U55,typename U56,typename U57,typename U58,typename U59,typename U60,typename U61,typename U62,typename U63,typename U64>
+class CppFunction_WithFormals65 : public CppFunction {
+    public:
+
+        CppFunction_WithFormals65(RESULT_TYPE (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64) , Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            typename traits::input_parameter< U62 >::type x62(args[62]);
+            typename traits::input_parameter< U63 >::type x63(args[63]);
+            typename traits::input_parameter< U64 >::type x64(args[64]);
+            return Rcpp::module_wrap<RESULT_TYPE>(ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62,x63,x64));
+            END_RCPP
+        }
+
+        inline int nargs() { return 65; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<RESULT_TYPE,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        RESULT_TYPE (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64);
+};
+
+template <typename U0, typename U1, typename U2, typename U3, typename U4, typename U5, typename U6, typename U7, typename U8, typename U9, typename U10, typename U11, typename U12, typename U13, typename U14, typename U15, typename U16, typename U17, typename U18, typename U19, typename U20, typename U21, typename U22, typename U23, typename U24, typename U25, typename U26, typename U27, typename U28, typename U29, typename U30, typename U31, typename U32, typename U33, typename U34, typename U35, typename U36, typename U37, typename U38, typename U39, typename U40, typename U41, typename U42, typename U43, typename U44, typename U45, typename U46, typename U47, typename U48, typename U49, typename U50, typename U51, typename U52, typename U53, typename U54, typename U55, typename U56, typename U57, typename U58, typename U59, typename U60, typename U61, typename U62, typename U63, typename U64>
+class CppFunction_WithFormals65<void,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64> : public CppFunction {
+    public:
+        CppFunction_WithFormals65(void (*fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64), Rcpp::List formals_, const char* docstring = 0) :
+            CppFunction(docstring), formals(formals_), ptr_fun(fun) {}
+
+        SEXP operator()(SEXP* args) {
+            BEGIN_RCPP
+            typename traits::input_parameter< U0 >::type x0(args[0]);
+            typename traits::input_parameter< U1 >::type x1(args[1]);
+            typename traits::input_parameter< U2 >::type x2(args[2]);
+            typename traits::input_parameter< U3 >::type x3(args[3]);
+            typename traits::input_parameter< U4 >::type x4(args[4]);
+            typename traits::input_parameter< U5 >::type x5(args[5]);
+            typename traits::input_parameter< U6 >::type x6(args[6]);
+            typename traits::input_parameter< U7 >::type x7(args[7]);
+            typename traits::input_parameter< U8 >::type x8(args[8]);
+            typename traits::input_parameter< U9 >::type x9(args[9]);
+            typename traits::input_parameter< U10 >::type x10(args[10]);
+            typename traits::input_parameter< U11 >::type x11(args[11]);
+            typename traits::input_parameter< U12 >::type x12(args[12]);
+            typename traits::input_parameter< U13 >::type x13(args[13]);
+            typename traits::input_parameter< U14 >::type x14(args[14]);
+            typename traits::input_parameter< U15 >::type x15(args[15]);
+            typename traits::input_parameter< U16 >::type x16(args[16]);
+            typename traits::input_parameter< U17 >::type x17(args[17]);
+            typename traits::input_parameter< U18 >::type x18(args[18]);
+            typename traits::input_parameter< U19 >::type x19(args[19]);
+            typename traits::input_parameter< U20 >::type x20(args[20]);
+            typename traits::input_parameter< U21 >::type x21(args[21]);
+            typename traits::input_parameter< U22 >::type x22(args[22]);
+            typename traits::input_parameter< U23 >::type x23(args[23]);
+            typename traits::input_parameter< U24 >::type x24(args[24]);
+            typename traits::input_parameter< U25 >::type x25(args[25]);
+            typename traits::input_parameter< U26 >::type x26(args[26]);
+            typename traits::input_parameter< U27 >::type x27(args[27]);
+            typename traits::input_parameter< U28 >::type x28(args[28]);
+            typename traits::input_parameter< U29 >::type x29(args[29]);
+            typename traits::input_parameter< U30 >::type x30(args[30]);
+            typename traits::input_parameter< U31 >::type x31(args[31]);
+            typename traits::input_parameter< U32 >::type x32(args[32]);
+            typename traits::input_parameter< U33 >::type x33(args[33]);
+            typename traits::input_parameter< U34 >::type x34(args[34]);
+            typename traits::input_parameter< U35 >::type x35(args[35]);
+            typename traits::input_parameter< U36 >::type x36(args[36]);
+            typename traits::input_parameter< U37 >::type x37(args[37]);
+            typename traits::input_parameter< U38 >::type x38(args[38]);
+            typename traits::input_parameter< U39 >::type x39(args[39]);
+            typename traits::input_parameter< U40 >::type x40(args[40]);
+            typename traits::input_parameter< U41 >::type x41(args[41]);
+            typename traits::input_parameter< U42 >::type x42(args[42]);
+            typename traits::input_parameter< U43 >::type x43(args[43]);
+            typename traits::input_parameter< U44 >::type x44(args[44]);
+            typename traits::input_parameter< U45 >::type x45(args[45]);
+            typename traits::input_parameter< U46 >::type x46(args[46]);
+            typename traits::input_parameter< U47 >::type x47(args[47]);
+            typename traits::input_parameter< U48 >::type x48(args[48]);
+            typename traits::input_parameter< U49 >::type x49(args[49]);
+            typename traits::input_parameter< U50 >::type x50(args[50]);
+            typename traits::input_parameter< U51 >::type x51(args[51]);
+            typename traits::input_parameter< U52 >::type x52(args[52]);
+            typename traits::input_parameter< U53 >::type x53(args[53]);
+            typename traits::input_parameter< U54 >::type x54(args[54]);
+            typename traits::input_parameter< U55 >::type x55(args[55]);
+            typename traits::input_parameter< U56 >::type x56(args[56]);
+            typename traits::input_parameter< U57 >::type x57(args[57]);
+            typename traits::input_parameter< U58 >::type x58(args[58]);
+            typename traits::input_parameter< U59 >::type x59(args[59]);
+            typename traits::input_parameter< U60 >::type x60(args[60]);
+            typename traits::input_parameter< U61 >::type x61(args[61]);
+            typename traits::input_parameter< U62 >::type x62(args[62]);
+            typename traits::input_parameter< U63 >::type x63(args[63]);
+            typename traits::input_parameter< U64 >::type x64(args[64]);
+            ptr_fun(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,x41,x42,x43,x44,x45,x46,x47,x48,x49,x50,x51,x52,x53,x54,x55,x56,x57,x58,x59,x60,x61,x62,x63,x64);
+            END_RCPP
+        }
+
+        inline int nargs() { return 65; }
+        inline bool is_void() { return true; }
+        inline void signature(std::string& s, const char* name) { Rcpp::signature<void_type,U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64>(s, name); }
+        SEXP get_formals() { return formals; }
+        inline DL_FUNC get_function_ptr() { return (DL_FUNC)ptr_fun; }
+
+    private:
+        Rcpp::List formals;
+        void (*ptr_fun)(U0,U1,U2,U3,U4,U5,U6,U7,U8,U9,U10,U11,U12,U13,U14,U15,U16,U17,U18,U19,U20,U21,U22,U23,U24,U25,U26,U27,U28,U29,U30,U31,U32,U33,U34,U35,U36,U37,U38,U39,U40,U41,U42,U43,U44,U45,U46,U47,U48,U49,U50,U51,U52,U53,U54,U55,U56,U57,U58,U59,U60,U61,U62,U63,U64);
+};
+
+
+}
+
+#endif
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/InputParameter.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/InputParameter.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/InputParameter.h	(revision 2476)
@@ -0,0 +1,101 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// InputParameter.h: Rcpp R/C++ interface class library --
+//
+// Copyright (C) 2013    Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__InputParameter__h
+#define Rcpp__InputParameter__h
+
+namespace Rcpp {
+
+    // default implementation used for pass by value and modules objects
+    // as<> is called on the conversion operator
+    template <typename T>
+    class InputParameter {
+    public:
+        InputParameter(SEXP x_) : x(x_){}
+
+        inline operator T() { return as<T>(x) ; }
+
+    private:
+        SEXP x ;
+    } ;
+
+    // impl for references. It holds an object at the constructor and then
+    // returns a reference in the reference operator
+    template <typename T>
+    class ReferenceInputParameter {
+    public:
+        typedef T& reference ;
+        ReferenceInputParameter(SEXP x_) : obj( as<T>(x_) ){}
+
+        inline operator reference() { return obj ; }
+
+    private:
+        T obj ;
+    } ;
+
+    // same for const
+    template <typename T>
+    class ConstInputParameter {
+    public:
+        typedef const T const_nonref ;
+        ConstInputParameter(SEXP x_) : obj( as<T>(x_) ){}
+
+        inline operator const_nonref() { return obj ; }
+
+    private:
+        T obj ;
+    } ;
+
+    // same for const references
+    template <typename T>
+    class ConstReferenceInputParameter {
+    public:
+        typedef const T& const_reference ;
+        ConstReferenceInputParameter(SEXP x_) : obj( as<T>(x_) ){}
+
+        inline operator const_reference() { return obj ; }
+
+    private:
+        T obj ;
+    } ;
+
+    namespace traits{
+        template <typename T>
+        struct input_parameter {
+            typedef typename Rcpp::InputParameter<T> type ;
+        } ;
+        template <typename T>
+        struct input_parameter<T&> {
+            typedef typename Rcpp::ReferenceInputParameter<T> type ;
+        } ;
+        template <typename T>
+        struct input_parameter<const T> {
+            typedef typename Rcpp::ConstInputParameter<T> type ;
+        } ;
+        template <typename T>
+        struct input_parameter<const T&> {
+            typedef typename Rcpp::ConstReferenceInputParameter<T> type ;
+        } ;
+    }
+
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Environment.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Environment.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/Environment.h	(revision 2476)
@@ -0,0 +1,420 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Environment.h: Rcpp R/C++ interface class library -- access R environments
+//
+// Copyright (C) 2009 - 2013    Dirk Eddelbuettel and Romain Francois
+// Copyright (C) 2014           Dirk Eddelbuettel, Romain Francois and Kevin Ushey
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_Environment_h
+#define Rcpp_Environment_h
+
+// From 'R/Defn.h'
+// NOTE: can't include header directly as it checks for some C99 features
+extern "C" SEXP R_NewHashedEnv(SEXP, SEXP);
+
+namespace Rcpp{
+
+    RCPP_API_CLASS(Environment_Impl),
+        public BindingPolicy< Environment_Impl<StoragePolicy> >
+    {
+    private:
+        inline SEXP as_environment(SEXP x){
+            if( Rf_isEnvironment(x) ) return x ;
+            SEXP asEnvironmentSym = Rf_install("as.environment");
+            try {
+                Shield<SEXP> res( Rcpp_eval( Rf_lang2( asEnvironmentSym, x ) ) );
+                return res ;
+            } catch( const eval_error& ex){
+                throw not_compatible( "cannot convert to environment"  ) ;
+            }
+        }
+
+    public:
+        RCPP_GENERATE_CTOR_ASSIGN(Environment_Impl)
+
+        Environment_Impl(){
+            Storage::set__(R_GlobalEnv) ;
+        } ;
+
+        /**
+         * wraps the given environment
+         *
+         * if the SEXP is not an environment, and exception is thrown
+         */
+        Environment_Impl(SEXP x) {
+            Shield<SEXP> env(as_environment(x));
+            Storage::set__(env) ;
+        }
+
+        /**
+         * Gets the environment associated with the given name
+         *
+         * @param name name of the environment, e.g "package:Rcpp"
+         */
+        Environment_Impl( const std::string& name ) ;
+
+        /**
+         * Gets the environment in the given position of the search path
+         *
+         * @param pos (1-based) position of the environment, e.g pos=1 gives the
+         *        global environment
+         */
+        Environment_Impl( int pos ) ;
+
+        /**
+         * The list of objects in the environment
+         *
+         * the same as calling this from R:
+         * > ls( envir = this, all = all )
+         *
+         * @param all same meaning as in ?ls
+         */
+        SEXP ls(bool all) const {
+            SEXP env = Storage::get__() ;
+            if( is_user_database() ){
+                R_ObjectTable *tb = (R_ObjectTable*) R_ExternalPtrAddr(HASHTAB(env));
+                return tb->objects(tb) ;
+            } else {
+                return R_lsInternal( env, all ? TRUE : FALSE ) ;
+            }
+            return R_NilValue ;
+        }
+
+        /**
+         * Get an object from the environment
+         *
+         * @param name name of the object
+         *
+         * @return a SEXP (possibly R_NilValue)
+         */
+        SEXP get(const std::string& name) const {
+            SEXP env = Storage::get__() ;
+            SEXP nameSym = Rf_install(name.c_str());
+            SEXP res = Rf_findVarInFrame( env, nameSym ) ;
+
+            if( res == R_UnboundValue ) return R_NilValue ;
+
+            /* We need to evaluate if it is a promise */
+            if( TYPEOF(res) == PROMSXP){
+                res = Rf_eval( res, env ) ;
+            }
+            return res ;
+        }
+        
+        /**
+        * Get an object from the environment
+        *
+        * @param name symbol name to call
+        *
+        * @return a SEXP (possibly R_NilValue)
+        */
+        SEXP get(Symbol name) const {
+            SEXP env = Storage::get__() ;
+            SEXP res = Rf_findVarInFrame( env, name ) ;
+            
+            if( res == R_UnboundValue ) return R_NilValue ;
+            
+            /* We need to evaluate if it is a promise */
+            if( TYPEOF(res) == PROMSXP){
+                res = Rf_eval( res, env ) ;
+            }
+            return res ;
+        }
+        
+
+        /**
+         * Get an object from the environment or one of its
+         * parents
+         *
+         * @param name name of the object
+         *
+         */
+        SEXP find( const std::string& name) const{
+            SEXP env = Storage::get__() ;
+            SEXP nameSym = Rf_install(name.c_str());
+            SEXP res = Rf_findVar( nameSym, env ) ;
+
+            if( res == R_UnboundValue ) throw binding_not_found(name) ;
+
+            /* We need to evaluate if it is a promise */
+            if( TYPEOF(res) == PROMSXP){
+                res = Rf_eval( res, env ) ;
+            }
+            return res ;
+        }
+        
+        /**
+        * Get an object from the environment or one of its
+        * parents
+        *
+        * @param name symbol name to call
+        */
+        SEXP find(Symbol name) const{
+            SEXP env = Storage::get__() ;
+            SEXP res = Rf_findVar( name, env ) ;
+            
+            if( res == R_UnboundValue ) {
+                // Pass on the const char* to the RCPP_EXCEPTION_CLASS's
+                // const std::string& requirement
+                throw binding_not_found(name.c_str()) ;
+            }
+            
+            /* We need to evaluate if it is a promise */
+            if( TYPEOF(res) == PROMSXP){
+                res = Rf_eval( res, env ) ;
+            }
+            return res ;
+        }
+
+        /**
+         * Indicates if an object called name exists in the
+         * environment
+         *
+         * @param name name of the object
+         *
+         * @return true if the object exists in the environment
+         */
+        bool exists( const std::string& name ) const {
+            SEXP nameSym = Rf_install(name.c_str());
+            SEXP res = Rf_findVarInFrame( Storage::get__() , nameSym  ) ;
+            return res != R_UnboundValue ;
+        }
+
+        /**
+         * Attempts to assign x to name in this environment
+         *
+         * @param name name of the object to assign
+         * @param x object to assign
+         *
+         * @return true if the assign was successfull
+         * see ?bindingIsLocked
+         *
+         * @throw binding_is_locked if the binding is locked
+         */
+        bool assign( const std::string& name, SEXP x ) const{
+            if( exists( name) && bindingIsLocked(name) ) throw binding_is_locked(name) ;
+            SEXP nameSym = Rf_install(name.c_str());
+            Rf_defineVar( nameSym, x, Storage::get__() );
+            return true ;
+        }
+
+        /**
+         * wrap and assign. If there is a wrap method taking an object
+         * of WRAPPABLE type, then it is wrapped and the corresponding SEXP
+         * is assigned in the environment
+         *
+         * @param name name of the object to assign
+         * @param x wrappable object. anything that has a wrap( WRAPPABLE ) is fine
+         */
+        template <typename WRAPPABLE>
+        bool assign( const std::string& name, const WRAPPABLE& x) const ;
+
+        /**
+         * @return true if this environment is locked
+         * see ?environmentIsLocked for details of what this means
+         */
+        bool isLocked() const {
+             return R_EnvironmentIsLocked(Storage::get__());
+        }
+
+        /**
+         * remove an object from this environment
+         */
+        bool remove( const std::string& name ){
+            if( exists(name) ){
+                if( bindingIsLocked(name) ){
+                    throw binding_is_locked(name) ;
+                } else{
+                    /* unless we want to copy all of do_remove,
+                       we have to go back to R to do this operation */
+                    SEXP internalSym = Rf_install( ".Internal" );
+                    SEXP removeSym = Rf_install( "remove" );
+                    Shield<SEXP> call( Rf_lang2(internalSym,
+                            Rf_lang4(removeSym, Rf_mkString(name.c_str()), Storage::get__(), Rf_ScalarLogical( FALSE ))
+                        ) );
+                    Rcpp_eval( call, R_GlobalEnv ) ;
+                }
+            } else{
+                throw no_such_binding(name) ;
+            }
+            return true;
+        }
+
+        /**
+         * locks this environment. See ?lockEnvironment
+         *
+         * @param bindings also lock the bindings of this environment ?
+         */
+        void lock(bool bindings = false) {
+            R_LockEnvironment( Storage::get__(), bindings ? TRUE: FALSE ) ;
+        }
+
+        /**
+         * Locks the given binding in the environment.
+         * see ?bindingIsLocked
+         *
+         * @throw no_such_binding if there is no such binding in this environment
+         */
+        void lockBinding(const std::string& name){
+            if( !exists( name) ) throw no_such_binding(name) ;
+            SEXP nameSym = Rf_install(name.c_str());
+            R_LockBinding( nameSym, Storage::get__() );
+        }
+
+        /**
+         * unlocks the given binding
+         * see ?bindingIsLocked
+         *
+         * @throw no_such_binding if there is no such binding in this environment
+         */
+        void unlockBinding(const std::string& name){
+            if( !exists( name) ) throw no_such_binding(name) ;
+            SEXP nameSym = Rf_install(name.c_str());
+            R_unLockBinding( nameSym, Storage::get__() );
+        }
+
+        /**
+         * @param name name of a potential binding
+         *
+         * @return true if the binding is locked in this environment
+         * see ?bindingIsLocked
+         *
+         * @throw no_such_binding if there is no such binding in this environment
+         */
+        bool bindingIsLocked(const std::string& name) const{
+            if( !exists( name) ) throw no_such_binding(name) ;
+            SEXP nameSym = Rf_install(name.c_str());
+            return R_BindingIsLocked(nameSym, Storage::get__() ) ;
+        }
+
+        /**
+         *
+         * @param name name of a binding
+         *
+         * @return true if the binding is active in this environment
+         * see ?bindingIsActive
+         *
+         * @throw no_such_binding if there is no such binding in this environment
+         */
+        bool bindingIsActive(const std::string& name) const {
+            if( !exists( name) ) throw no_such_binding(name) ;
+            SEXP nameSym = Rf_install(name.c_str());
+            return R_BindingIsActive(nameSym, Storage::get__()) ;
+        }
+
+        /**
+         * Indicates if this is a user defined database.
+         */
+        bool is_user_database() const {
+            SEXP env = Storage::get__() ;
+            return OBJECT(env) && Rf_inherits(env, "UserDefinedDatabase") ;
+        }
+
+        /**
+         * @return the global environment. See ?globalenv
+         */
+        static Environment_Impl global_env(){
+            return R_GlobalEnv ;
+        }
+
+        /**
+         * @return The empty environment. See ?emptyenv
+         */
+        static Environment_Impl empty_env(){
+            return R_EmptyEnv ;
+        }
+
+        /**
+         * @return the base environment. See ?baseenv
+         */
+        static Environment_Impl base_env(){
+            return R_BaseEnv ;
+        }
+
+        /**
+         * @return the base namespace. See ?baseenv
+         */
+        static Environment_Impl base_namespace(){
+            return R_BaseNamespace ;
+        }
+
+        /**
+         * @return the Rcpp namespace
+         */
+        static Environment_Impl Rcpp_namespace(){
+            return Rcpp::internal::get_Rcpp_namespace() ;
+        }
+
+        /**
+         * @param name the name of the package of which we want the namespace
+         *
+         * @return the namespace of the package
+         *
+         * @throw no_such_namespace
+         */
+        static Environment_Impl namespace_env(const std::string& package){
+            Armor<SEXP> env ;
+            try{
+                SEXP getNamespaceSym = Rf_install("getNamespace");
+                Shield<SEXP> package_str( Rf_mkString(package.c_str()) );
+                env = Rcpp_eval( Rf_lang2(getNamespaceSym, package_str) ) ;
+            } catch( ... ){
+                throw no_such_namespace( package  ) ;
+            }
+            return Environment_Impl( env ) ;
+        }
+
+        /**
+         * The parent environment of this environment
+         */
+        Environment_Impl parent() const {
+            return Environment_Impl( ENCLOS(Storage::get__()) ) ;
+        }
+
+        /**
+         * creates a new environment whose this is the parent
+         */
+        Environment_Impl new_child(bool hashed) {
+            SEXP newEnvSym = Rf_install("new.env");
+            return Environment_Impl( Rcpp_eval(Rf_lang3( newEnvSym, Rf_ScalarLogical(hashed), Storage::get__() )) );
+        }
+
+
+        void update(SEXP){}
+    };
+
+typedef Environment_Impl<PreserveStorage> Environment ;
+
+inline Environment new_env(int size = 29) {
+    Shield<SEXP> sizeSEXP(Rf_ScalarInteger(size));
+    return R_NewHashedEnv(R_EmptyEnv, sizeSEXP);
+}
+
+inline Environment new_env(SEXP parent, int size = 29) {
+    Shield<SEXP> sizeSEXP(Rf_ScalarInteger(size));
+    Shield<SEXP> parentSEXP(parent);
+    if (!Rf_isEnvironment(parentSEXP)) {
+        stop("parent is not an environment");
+    }
+    return R_NewHashedEnv(parentSEXP, sizeSEXP);
+}
+
+
+} // namespace Rcpp
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/String.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/String.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp/String.h	(revision 2476)
@@ -0,0 +1,558 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// String.h: Rcpp R/C++ interface class library -- single string
+//
+// Copyright (C) 2012 - 2015  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp__String_h
+#define Rcpp__String_h
+
+#ifndef RCPP_STRING_DEBUG_LEVEL
+#define RCPP_STRING_DEBUG_LEVEL 0
+#endif
+
+
+#if RCPP_STRING_DEBUG_LEVEL > 0
+    #define RCPP_STRING_DEBUG_FORMAT "%40s:%4d "
+    #define RCPP_STRING_DEBUG(MSG) Rprintf(RCPP_STRING_DEBUG_FORMAT "%s\n" , short_file_name(__FILE__), __LINE__, MSG);
+    #define RCPP_STRING_DEBUG_1(fmt, MSG) Rprintf(RCPP_STRING_DEBUG_FORMAT fmt "\n" , short_file_name(__FILE__), __LINE__, MSG);
+    #define RCPP_STRING_DEBUG_2(fmt, M1, M2) Rprintf(RCPP_STRING_DEBUG_FORMAT fmt "\n" , short_file_name(__FILE__), __LINE__, M1, M2);
+    #define RCPP_STRING_DEBUG_3(fmt, M1, M2, M3) Rprintf(RCPP_STRING_DEBUG_FORMAT fmt "\n" , short_file_name(__FILE__), __LINE__, M1, M2, M3);
+#else
+    #define RCPP_STRING_DEBUG(MSG)
+    #define RCPP_STRING_DEBUG_1(fmt, MSG)
+    #define RCPP_STRING_DEBUG_2(fmt, M1, M2)
+    #define RCPP_STRING_DEBUG_3(fmt, M1, M2, M3)
+#endif
+
+namespace Rcpp {
+
+    /**
+     * A single string, i.e. an element of a character vector.
+     * This represents CHARSXP SEXP
+     */
+    class String {
+    public:
+        typedef internal::string_proxy<STRSXP> StringProxy;
+        typedef internal::const_string_proxy<STRSXP> const_StringProxy;
+
+        /** default constructor */
+        String(): data(Rf_mkCharCE("", CE_UTF8)), buffer(), valid(true), buffer_ready(true), enc(CE_UTF8) {
+            Rcpp_PreserveObject(data);
+            RCPP_STRING_DEBUG("String()");
+        }
+
+        /** copy constructor */
+        String(const String& other) : data(other.get_sexp()), valid(true), buffer_ready(false), enc(Rf_getCharCE(other.get_sexp())) {
+            Rcpp_PreserveObject(data);
+            RCPP_STRING_DEBUG("String(const String&)");
+        }
+
+        /** construct a string from a single CHARSXP SEXP */
+        String(SEXP charsxp) : data(R_NilValue) {
+            if (TYPEOF(charsxp) == STRSXP) {
+                data = STRING_ELT(charsxp, 0);
+            } else if (TYPEOF(charsxp) == CHARSXP) {
+                data = charsxp;
+            }
+
+            if (::Rf_isString(data) && ::Rf_length(data) != 1)
+                throw ::Rcpp::not_compatible("expecting a single value");
+
+            valid = true;
+            buffer_ready = false;
+            enc = Rf_getCharCE(data);
+            Rcpp_PreserveObject(data);
+            RCPP_STRING_DEBUG("String(SEXP)");
+        }
+
+        /** from string proxy */
+        String(const StringProxy& proxy): data(proxy.get()), valid(true), buffer_ready(false), enc(Rf_getCharCE(proxy.get())) {
+            Rcpp_PreserveObject(data);
+            RCPP_STRING_DEBUG("String(const StringProxy&)");
+        }
+
+        String(const StringProxy& proxy, cetype_t enc): data(proxy.get()), valid(true), buffer_ready(false) {
+            Rcpp_PreserveObject(data);
+            set_encoding(enc);
+            RCPP_STRING_DEBUG("String(const StringProxy&, cetype_t)");
+        }
+
+        /** from string proxy */
+        String(const const_StringProxy& proxy): data(proxy.get()), valid(true), buffer_ready(false), enc(Rf_getCharCE(proxy.get())) {
+            Rcpp_PreserveObject(data);
+            RCPP_STRING_DEBUG("String(const const_StringProxy&)");
+        }
+
+        String(const const_StringProxy& proxy, cetype_t enc): data(proxy.get()), valid(true), buffer_ready(false) {
+            Rcpp_PreserveObject(data);
+            set_encoding(enc);
+            RCPP_STRING_DEBUG("String(const const_StringProxy&, cetype_t)");
+        }
+
+        /** from a std::string */
+        String(const std::string& s, cetype_t enc = CE_UTF8) : buffer(s), valid(false), buffer_ready(true), enc(enc) {
+            data = R_NilValue;
+            RCPP_STRING_DEBUG("String(const std::string&, cetype_t)");
+        }
+
+        String(const std::wstring& s, cetype_t enc = CE_UTF8) : data(internal::make_charsexp(s)), valid(true), buffer_ready(false), enc(enc) {
+            Rcpp_PreserveObject(data);
+            RCPP_STRING_DEBUG("String(const std::wstring&, cetype_t)");
+        }
+
+        /** from a const char* */
+        String(const char* s, cetype_t enc = CE_UTF8) : buffer(s), valid(false), buffer_ready(true), enc(enc) {
+            data = R_NilValue;
+            RCPP_STRING_DEBUG("String(const char*, cetype_t)");
+        }
+
+        String(const wchar_t* s, cetype_t enc = CE_UTF8) : data(internal::make_charsexp(s)), valid(true), buffer_ready(false), enc(enc) {
+            Rcpp_PreserveObject(data);
+            RCPP_STRING_DEBUG("String(const wchar_t* s, cetype_t)");
+        }
+
+        /** constructors from R primitives */
+        String(int x) : data(internal::r_coerce<INTSXP,STRSXP>(x)), valid(true), buffer_ready(false), enc(CE_UTF8) {Rcpp_PreserveObject(data);}
+        String(double x) : data(internal::r_coerce<REALSXP,STRSXP>(x)), valid(true), buffer_ready(false), enc(CE_UTF8) {Rcpp_PreserveObject(data);}
+        String(bool x) : data(internal::r_coerce<LGLSXP,STRSXP>(x)), valid(true) , buffer_ready(false), enc(CE_UTF8) {Rcpp_PreserveObject(data);}
+        String(Rcomplex x) : data(internal::r_coerce<CPLXSXP,STRSXP>(x)), valid(true), buffer_ready(false), enc(CE_UTF8) {Rcpp_PreserveObject(data);}
+        String(Rbyte x) : data(internal::r_coerce<RAWSXP,STRSXP>(x)), valid(true), buffer_ready(false), enc(CE_UTF8) {Rcpp_PreserveObject(data);}
+
+        ~String() {
+            Rcpp_ReleaseObject(data);
+            data = R_NilValue;
+        }
+
+
+        inline String& operator=(int x    ) { data = Rcpp_ReplaceObject(data, internal::r_coerce<INTSXP ,STRSXP>(x)); valid = true; buffer_ready = false; return *this; }
+        inline String& operator=(double x ) { data = Rcpp_ReplaceObject(data, internal::r_coerce<REALSXP,STRSXP>(x)); valid = true; buffer_ready = false; return *this; }
+        inline String& operator=(Rbyte x  ) { data = Rcpp_ReplaceObject(data, internal::r_coerce<RAWSXP ,STRSXP>(x)); valid = true; buffer_ready = false; return *this; }
+        inline String& operator=(bool x   ) { data = Rcpp_ReplaceObject(data, internal::r_coerce<LGLSXP ,STRSXP>(x)); valid = true; buffer_ready = false; return *this; }
+        inline String& operator=(Rcomplex x) { data = Rcpp_ReplaceObject(data, internal::r_coerce<CPLXSXP,STRSXP>(x)); valid = true; buffer_ready = false; return *this; }
+        inline String& operator=(SEXP x) { data = Rcpp_ReplaceObject(data, x); valid = true; buffer_ready = false; return *this; }
+        inline String& operator=(const StringProxy& proxy) { data = Rcpp_ReplaceObject(data, proxy.get()); valid = true; buffer_ready=false; return *this; }
+        inline String& operator=(const String& other) { data = Rcpp_ReplaceObject(data, other.get_sexp()); valid = true; buffer_ready = false; return *this; }
+        inline String& operator=(const std::string& s) {  buffer = s; valid = false; buffer_ready = true; return *this; }
+        inline String& operator=(const char* s) { buffer = s; valid = false; buffer_ready = true; return *this; }
+
+    private:
+        template <typename T>
+        inline String& assign_wide_string(const T& s) {
+            data = Rcpp_ReplaceObject(data, internal::make_charsexp(s));
+            valid = true;
+            buffer_ready = false;
+            return *this;
+        }
+
+    public:
+        inline String& operator=(const std::wstring& s) {  return assign_wide_string(s); }
+        inline String& operator=(const wchar_t* s) { return assign_wide_string(s); }
+
+        inline String& operator+=(const std::string& s) {
+            RCPP_STRING_DEBUG("String::operator+=(std::string)");
+            if (is_na()) return *this;
+            setBuffer(); buffer += s; valid = false;
+            return *this;
+        }
+
+        inline String& operator+=(const char* s) {
+            RCPP_STRING_DEBUG("String::operator+=(const char*)");
+            if (is_na()) return *this;
+            setBuffer(); buffer += s; valid = false;
+            return *this;
+        }
+     private:
+         template <typename T>
+         inline String& append_wide_string(const T& s) {
+            RCPP_STRING_DEBUG_1("String::operator+=(%s)", DEMANGLE(T));
+            setData();
+            if (is_na()) return *this;
+            const char* buf = CHAR(data);
+            std::wstring tmp(buf, buf + strlen(buf));
+            tmp += s;
+            data = Rcpp_ReplaceObject(data, internal::make_charsexp(tmp));
+            valid = true;
+            buffer_ready = false;
+            return *this;
+         }
+
+     public:
+
+        inline String& operator+=(const std::wstring& s) { return append_wide_string(s); }
+        inline String& operator+=(const wchar_t* s) { return append_wide_string(s); }
+
+        inline String& operator+=(const String& other) {
+            RCPP_STRING_DEBUG("String::operator+=(const char*)");
+            if (is_na()) return *this;
+            if (other.is_na()) { data = Rcpp_ReplaceObject(data, NA_STRING); valid = true; buffer_ready = false; return *this; }
+            setBuffer(); buffer += other; valid = false;
+            return *this;
+        }
+        inline String& operator+=(const StringProxy& proxy) {
+            RCPP_STRING_DEBUG("String::operator+=(const StringProxy&)");
+            if (is_na()) return *this;
+            SEXP proxy_sexp = proxy;
+            if (proxy_sexp == NA_STRING) { data = Rcpp_ReplaceObject(data, NA_STRING); valid = true; buffer_ready = false; return *this;}
+            setBuffer(); buffer += CHAR(proxy_sexp); valid = false;
+            return *this;
+        }
+        inline String& operator+=(const const_StringProxy& proxy) {
+            RCPP_STRING_DEBUG("String::operator+=(const StringProxy&)");
+            if (is_na()) return *this;
+            SEXP proxy_sexp = proxy;
+            if (proxy_sexp == NA_STRING) { data = Rcpp_ReplaceObject(data, NA_STRING); valid = true; buffer_ready = false; return *this;}
+            setBuffer(); buffer += CHAR(proxy_sexp); valid = false;
+            return *this;
+        }
+        inline String& operator+=(SEXP x) {
+            RCPP_STRING_DEBUG("String::operator+=(SEXP)");
+            if (is_na()) return *this;
+            if (x == NA_STRING) { data = Rcpp_ReplaceObject(data, NA_STRING); valid = true; buffer_ready = false; return *this;}
+            setBuffer(); buffer += CHAR(x); valid = false;
+            return *this;
+        }
+        // inline String& operator+=(int x    ) { data += char_nocheck(internal::r_coerce<INTSXP ,STRSXP>(x)); return *this; }
+        // inline String& operator+=(double x ) { data += char_nocheck(internal::r_coerce<REALSXP,STRSXP>(x)); return *this; }
+        // inline String& operator+=(Rbyte x  ) { data += char_nocheck(internal::r_coerce<RAWSXP ,STRSXP>(x)); return *this; }
+        // inline String& operator+=(bool x   ) { data += char_nocheck(internal::r_coerce<LGLSXP ,STRSXP>(x)); return *this; }
+        // inline String& operator+=(Rcomplex x) { data += char_nocheck(internal::r_coerce<CPLXSXP,STRSXP>(x)); return *this; }
+
+
+        inline String& replace_first(const char* s, const char* news) {
+            RCPP_STRING_DEBUG_2("String::replace_first(const char* = '%s' , const char* = '%s')", s, news);
+            if (is_na()) return *this;
+            setBuffer();
+            std::string s2 = std::string(s);
+            size_t index = std::distance(buffer.begin(), std::search(buffer.begin(), buffer.end(), s2.begin(), s2.end()));
+            if (index != std::string::npos) buffer.replace(index, strlen(s), news);
+            valid = false;
+            return *this;
+        }
+        inline String& replace_first(const Rcpp::String& s, const char* news) {
+            // replace NA -> do nothing
+            if (s.is_na()) return *this;
+            return replace_first(s.get_cstring(), news);
+        }
+        inline String& replace_first(const char* s, const Rcpp::String& news) {
+            // replace NA -> do nothing
+            if (news.is_na()) return *this;
+            return replace_first(s, news.get_cstring());
+        }
+        inline String& replace_first(const Rcpp::String& s, const Rcpp::String& news) {
+            // replace NA -> do nothing
+            if (s.is_na() || news.is_na()) return *this;
+            return replace_first(s.get_cstring(), news.get_cstring());
+        }
+
+        inline String& replace_last(const char* s, const char* news) {
+            RCPP_STRING_DEBUG_2("String::replace_last(const char* = '%s' , const char* = '%s')", s, news);
+            if (is_na()) return *this;
+            setBuffer();
+            std::string s2 = std::string(s);
+            size_t index = std::distance(buffer.begin(), std::find_end(buffer.begin(), buffer.end(), s2.begin(), s2.end()));
+            if (index != std::string::npos) buffer.replace(index, strlen(s), news);
+            valid = false;
+            return *this;
+        }
+        inline String& replace_last(const Rcpp::String& s, const char* news) {
+            // replace NA -> do nothing
+            if (s.is_na()) return *this;
+            return replace_last(s.get_cstring(), news);
+        }
+        inline String& replace_last(const char* s, const Rcpp::String& news) {
+            // replace NA -> do nothing
+            if (news.is_na()) return *this;
+            return replace_last(s, news.get_cstring());
+        }
+        inline String& replace_last(const Rcpp::String& s, const Rcpp::String& news) {
+            // replace NA -> do nothing
+            if (s.is_na() || news.is_na()) return *this;
+            return replace_last(s.get_cstring(), news.get_cstring());
+        }
+
+
+        inline String& replace_all(const char* s, const char* news) {
+            RCPP_STRING_DEBUG_2("String::replace_all(const char* = '%s' , const char* = '%s')", s, news);
+            if (is_na()) return *this;
+            setBuffer();
+            std::string s2 = std::string(s);
+            std::string::iterator iter = buffer.begin();
+            while(true) {
+                iter = std::search(iter, buffer.end(), s2.begin(), s2.end());
+                if (iter == buffer.end()) break;
+                size_t index = std::distance(buffer.begin(), iter);
+                if (index != std::string::npos) buffer.replace(index, strlen(s), news);
+            }
+            valid = false;
+            return *this;
+        }
+
+        template <typename LHS, typename RHS>
+        inline String& replace_all(const LHS& s, const RHS& news) {
+            return replace_all(String(s), String(news));
+        }
+
+        inline String& replace_all(const Rcpp::String& s, const char* news) {
+            // replace NA -> do nothing
+            if (s.is_na()) return *this;
+            return replace_all(s.get_cstring(), news);
+        }
+        inline String& replace_all(const char* s, const Rcpp::String& news) {
+            // replace NA -> do nothing
+            if (news.is_na()) return *this;
+            return replace_all(s, news.get_cstring());
+        }
+        inline String& replace_all(const Rcpp::String& s, const Rcpp::String& news) {
+            // replace NA -> do nothing
+            if (s.is_na() || news.is_na()) return *this;
+            return replace_all(s.get_cstring(), news.get_cstring());
+        }
+
+        inline String& push_back(const char* s) {
+            if (is_na()) return *this;
+            setBuffer(); valid = false; buffer += s;
+            return *this;
+        }
+        inline String& push_back(const std::string& s) {
+            return push_back(s.c_str());
+        }
+        inline String& push_back(const Rcpp::String& s) {
+            if (is_na()) return *this;
+            if (s.is_na()) { set_na(); return *this; }
+            return push_back(s.get_cstring());
+        }
+
+        inline String& push_front(const char* s) {
+            if (is_na()) return *this;
+            setBuffer(); valid = false; buffer = s + buffer;
+            return *this;
+        }
+        inline String& push_front(const std::string& s) {
+            return push_front(s.c_str());
+        }
+        inline String& push_front(const Rcpp::String& s) {
+            if (is_na()) return *this;
+            if (s.is_na()) { set_na(); return *this; }
+            return push_front(s.get_cstring());
+        }
+
+
+        inline void set_na() {
+            data = Rcpp_ReplaceObject(data, NA_STRING);
+            valid = true; buffer_ready = false;
+        }
+
+
+        inline SEXP get_sexp() const {
+            RCPP_STRING_DEBUG_1("String::get_sexp const (valid = %d) ", valid);
+            return valid ? data : Rf_mkCharCE(buffer.c_str(), enc);
+        }
+
+        inline SEXP get_sexp() {
+            RCPP_STRING_DEBUG_1("String::get_sexp (valid = %d) ", valid);
+            setData(); return data;
+        }
+
+        inline operator std::string() const {
+            return get_cstring();
+        }
+
+        inline operator std::wstring() const {
+            const char* s = get_cstring();
+            return std::wstring(s, s + strlen(s));
+        }
+
+        inline const char* get_cstring() const {
+            return buffer_ready ? buffer.c_str() : CHAR(data);
+        }
+
+        inline cetype_t get_encoding() const {
+            return enc;
+        }
+
+        inline void set_encoding(cetype_t encoding) {
+            enc = encoding;
+
+            if (valid) {
+                data = Rcpp_ReplaceObject(data, Rf_mkCharCE(Rf_translateCharUTF8(data), encoding));
+            } else {
+                data = Rf_mkCharCE(buffer.c_str(), encoding);
+                Rcpp_PreserveObject(data);
+                valid = true;
+            }
+        }
+
+        bool operator<(const Rcpp::String& other) const {
+            return strcmp(get_cstring(), other.get_cstring()) < 0;
+        }
+
+        bool operator==(const Rcpp::String& other) const {
+            return get_sexp() == other.get_sexp();
+        }
+        bool operator!=(const Rcpp::String& other) const {
+            return get_sexp() != other.get_sexp();
+        }
+
+        bool operator==(const StringProxy& other) const {
+            return get_sexp() == other.get();
+        }
+
+        bool operator!=(const StringProxy& other) const {
+            return get_sexp() != other.get();
+        }
+
+        bool operator==(const const_StringProxy& other) const {
+            return get_sexp() == other.get();
+        }
+
+        bool operator!=(const const_StringProxy& other) const {
+            return get_sexp() != other.get();
+        }
+
+        bool operator>(const Rcpp::String& other) const {
+            return strcmp(get_cstring(), other.get_cstring()) > 0;
+        }
+
+        bool operator==(SEXP other) const {
+            return get_sexp() == other;
+        }
+
+        bool operator!=(SEXP other) const {
+            return get_sexp() != other;
+        }
+
+    private:
+
+        /** the CHARSXP this String encapsulates */
+        SEXP data;
+
+        /** a buffer used to do string operations withough going back to the SEXP */
+        std::string buffer;
+
+        /** is data in sync with buffer */
+        bool valid;
+
+        /** is the buffer initialized */
+        bool buffer_ready;
+
+        /** the encoding of encapsulated CHARSXP */
+        cetype_t enc;
+
+        inline bool is_na() const { return data == NA_STRING; }
+        inline void setBuffer() {
+            if (!buffer_ready) {
+                buffer = char_nocheck(data);
+                buffer_ready  = true;
+            }
+        }
+        inline void setData() {
+            RCPP_STRING_DEBUG("setData");
+            if (!valid) {
+                data = Rf_mkCharCE(buffer.c_str(), enc);
+                Rcpp_PreserveObject(data);
+                valid = true;
+            }
+        }
+        template <typename T> void append(const T& s) { buffer += s;}
+    };
+
+    namespace traits{
+        template<> struct r_type_traits<Rcpp::String>{ typedef r_type_RcppString_tag r_category; };
+        template<> struct r_sexptype_traits<Rcpp::String>{ enum{ rtype = STRSXP }; };
+    }
+
+    namespace internal {
+        template <int RTYPE>
+        string_proxy<RTYPE>& string_proxy<RTYPE>::operator=(const String& s) {
+            set(s.get_sexp());
+            return *this;
+        }
+
+        template <int RTYPE>
+        SEXP string_element_converter<RTYPE>::get(const Rcpp::String& input) {
+            RCPP_DEBUG("string_element_converter::get< Rcpp::String >()")
+            return input.get_sexp();
+        }
+
+        template <>
+        inline SEXP make_charsexp<Rcpp::String>(const Rcpp::String& s) {
+            return s.get_sexp();
+        }
+
+        template <int RTYPE>
+        template <typename T>
+        string_proxy<RTYPE>& string_proxy<RTYPE>::operator+=(const T& rhs) {
+            String tmp = get();
+            tmp += rhs;
+            set(tmp);
+            return *this;
+        }
+
+        }
+
+
+    template <>
+    inline SEXP wrap<Rcpp::String>(const Rcpp::String& object) {
+        RCPP_STRING_DEBUG("wrap<String>()");
+        Shield<SEXP> res(Rf_allocVector(STRSXP, 1));
+        SEXP data = object.get_sexp();
+        Rcpp_PreserveObject(data);
+        SET_STRING_ELT(res, 0, data);
+        return res;
+    }
+
+    inline bool operator==(const String::StringProxy& lhs, const String& rhs) {
+        return rhs == lhs;
+    }
+
+    inline bool operator!=(const String::StringProxy& lhs, const String& rhs) {
+        return rhs != lhs;
+    }
+
+    inline bool operator==(const String::const_StringProxy& lhs, const String& rhs) {
+        return rhs == lhs;
+    }
+
+    inline bool operator!=(const String::const_StringProxy& lhs, const String& rhs) {
+        return rhs != lhs;
+    }
+
+} // Rcpp
+
+/** hash can be in std or std::tr1 */
+#if defined(RCPP_USING_CXX11) || defined(HAS_TR1)
+namespace std
+{
+#ifndef RCPP_USING_CXX11
+namespace tr1 {
+#endif
+    template <>
+    struct hash<Rcpp::String>
+    {
+        size_t operator()(const Rcpp::String & s) const{
+            return hash<string>()(s.get_cstring());
+        }
+    };
+#ifndef RCPP_USING_CXX11
+}
+#endif
+}
+#endif
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/include/Rcpp.h	(revision 2476)
@@ -0,0 +1,87 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Rcpp.h: R/C++ interface class library
+//
+// Copyright (C) 2008 - 2009  Dirk Eddelbuettel
+// Copyright (C) 2009 - 2015  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef Rcpp_hpp
+#define Rcpp_hpp
+
+/* it is important that this comes first */
+#include <RcppCommon.h>
+
+#include <Rcpp/RObject.h>
+
+#include <Rcpp/S4.h>
+#include <Rcpp/Reference.h>
+#include <Rcpp/clone.h>
+#include <Rcpp/grow.h>
+#include <Rcpp/Dimension.h>
+
+#include <Rcpp/Symbol.h>
+#include <Rcpp/Environment.h>
+
+#include <Rcpp/Vector.h>
+#include <Rcpp/sugar/nona/nona.h>
+#include <Rcpp/Fast.h>
+#include <Rcpp/Extractor.h>
+#include <Rcpp/Promise.h>
+
+#include <Rcpp/XPtr.h>
+#include <Rcpp/DottedPairImpl.h>
+#include <Rcpp/Function.h>
+#include <Rcpp/Language.h>
+#include <Rcpp/DottedPair.h>
+#include <Rcpp/Pairlist.h>
+#include <Rcpp/StretchyList.h>
+
+#include <Rcpp/WeakReference.h>
+#include <Rcpp/StringTransformer.h>
+#include <Rcpp/Formula.h>
+#include <Rcpp/DataFrame.h>
+
+//  #define RCPP_NEW_DATE_DATETIME_VECTORS 1
+#include <Rcpp/date_datetime/date_datetime.h>
+
+#include <Rcpp/Na_Proxy.h>
+
+#include <Rcpp/Module.h>
+#include <Rcpp/InternalFunction.h>
+
+#include <Rcpp/Nullable.h>
+
+#include <Rcpp/RNGScope.h>
+
+#ifndef RCPP_NO_SUGAR
+#include <Rcpp/sugar/sugar.h>
+#include <Rcpp/stats/stats.h>
+#endif
+
+// wrappers for R API 'scalar' functions
+#include <Rcpp/Rmath.h>
+
+// this stays at the very end, because it needs to
+// 'see' all versions of wrap
+#include <Rcpp/internal/wrap_end.h>
+
+#include <Rcpp/platform/solaris.h>
+#include <Rcpp/api/meat/meat.h>
+
+#include <Rcpp/algorithm.h>
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/DESCRIPTION	(revision 2476)
@@ -0,0 +1,32 @@
+Package: Rcpp
+Title: Seamless R and C++ Integration
+Version: 0.12.9
+Date: 2017-01-14
+Author: Dirk Eddelbuettel, Romain Francois, JJ Allaire, Kevin Ushey, Qiang Kou,
+ Nathan Russell, Douglas Bates and John Chambers
+Maintainer: Dirk Eddelbuettel <edd@debian.org>
+Description: The 'Rcpp' package provides R functions as well as C++ classes which
+ offer a seamless integration of R and C++. Many R data types and objects can be
+ mapped back and forth to C++ equivalents which facilitates both writing of new
+ code as well as easier integration of third-party libraries. Documentation 
+ about 'Rcpp' is provided by several vignettes included in this package, via the 
+ 'Rcpp Gallery' site at <http://gallery.rcpp.org>, the paper by Eddelbuettel and 
+ Francois (2011, JSS), and the book by Eddelbuettel (2013, Springer); see 
+ 'citation("Rcpp")' for details on these last two.
+Depends: R (>= 3.0.0)
+Imports: methods, utils
+Suggests: RUnit, inline, rbenchmark, highlight, pkgKitten (>= 0.1.2)
+VignetteBuilder: highlight
+URL: http://www.rcpp.org, http://dirk.eddelbuettel.com/code/rcpp.html,
+        https://github.com/RcppCore/Rcpp
+License: GPL (>= 2)
+BugReports: https://github.com/RcppCore/Rcpp/issues
+MailingList: Please send questions and comments regarding Rcpp to
+        rcpp-devel@lists.r-forge.r-project.org
+RoxygenNote: 5.0.1
+NeedsCompilation: yes
+Packaged: 2017-01-14 14:22:14 UTC; edd
+Repository: CRAN
+Date/Publication: 2017-01-14 21:32:32
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2017-01-15 11:12:18 UTC; unix
+Archs: Rcpp.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/THANKS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/THANKS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/THANKS	(revision 2476)
@@ -0,0 +1,33 @@
+
+In alphabetical order:
+
+Baptiste Auguie         for additional OS X testing
+Dario Buttari           for a patch permitting compilation under Cygwin
+Darren Cook             for suggesting to remove exception specifiers
+Laurent Gautier         for helpful discussions on R internals
+Alistair Gee            for a patch making ColDatum more robust
+Toni Giorgino		for a bug report concerning erase(iter, iter)
+Robin Girard		for a pointing out that operator+ on Date types was wrong
+Christian Gunning       for a documentation + unit tests patches and reporting bugs
+Rainer Hurling          for help debugging builds issues on FreeBSD
+Gregor Kastner          for noticing a bug in IntegerVector initialization
+Glenn Lawyer		for sending in documentation patches
+Gong-Yi Liao		for a corrected compile-time test for long long variables
+Uwe Ligges              for help with Windows (32 and 64 bit) build issues
+Tama Ma                 for a patch that extends Module constructors
+Omar Andres Zapata Mesa for spotting a missing update() in InternalFunction_Impl
+Karl Millar             for a patch helping with a non-g++ compiler
+Anirban Mukherjee       for reporting more clang++ warnings we had not seen
+Ben North		for a bug report and patch concerning iterators
+Martyn Plummer          for help and patches regarding Solaris build issues
+David Reiss             for the first-ever contributed patch (Rcpp*View)
+Brian Ripley            for help with Win64 + Solaris build issues
+Dominick Samperi        for starting what is now in the RcppClassic package
+Oleg Sklyar             for the incredibly cool inline package
+Alexey Stukalov         for a support enabling Intel Compiler 12.0 support
+Luke Tierney            for helpful discussions on R internals
+Thomas Tse              for several patches with small corrections
+Simon Urbanek           for help on OS X build issues and with R internals
+Ken Williams            for additional OS X testing
+Jelmer Ypma             for contributing the Rcout iostreams class patch
+Yan Zhou		for patches improving C++11 and compiler support 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/libs/Rcpp.so.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/libs/Rcpp.so.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/libs/Rcpp.so.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.Rcpp.so</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/libs/Rcpp.so.dSYM/Contents/Resources/DWARF/Rcpp.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/libs/Rcpp.so.dSYM/Contents/Resources/DWARF/Rcpp.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/libs/Rcpp.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/libs/Rcpp.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/bib/Rcpp.bib
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/bib/Rcpp.bib	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/bib/Rcpp.bib	(revision 2476)
@@ -0,0 +1,666 @@
+@String{CRAN = "http://CRAN.R-Project.org/" }
+@String{manuals = CRAN # "doc/manuals/" }
+@String{RCoreTeam = "{R Core Team}" }
+@String{RFoundation = "R Foundation for Statistical Computing" }
+@String{R-Forge = "http://R-Forge.R-Project.org/" }
+
+@Misc{Cpp11,
+  author =       "ISO/IEC",
+  organization = "{International Organization for Standardization}",
+  title =        "\proglang{C++} 2011 Standard Document 14882:2011",
+  howpublished = {ISO/IEC Standard Group for Information Technology / Programming Languages / C++},
+  year =         2011,
+  url =         "http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50372",
+  urlansi =     "http://webstore.ansi.org/RecordDetail.aspx?sku=ISO/IEC%2014882:2011"
+}
+
+@manual{Abrahams+Grosse-Kunstleve:2003:Boost.Python,
+  author =	 { David Abrahams and Ralf W. Grosse-Kunstleve },
+  organization = "Boost Consulting",
+  title =	 "Building Hybrid Systems with Boost.Python",
+  year =	 2003,
+  url =		 "http://www.boostpro.com/writing/bpl.pdf"
+}
+
+@Book{Abrahams+Gurtovoy:2004:TemplateMetaprogramming,
+  author =	 {David Abrahams and Aleksey Gurtovoy},
+  title =	 {{C++} {T}emplate {M}etaprogramming: Concepts, Tools
+                  and Techniques from {B}oost and Beyond},
+  publisher =	 {Addison-Wesley},
+  year =	 2004,
+  address =	 {Boston}
+}
+
+@Manual{Armstrong:2009:RAbstraction,
+  title =	 {{RAbstraction}: {C++} abstraction for {R} objects},
+  author =	 {Whit Armstrong},
+  year =	 2009,
+  note =	 {Code repository last updated 2009-07-22.},
+  url =		 {http://github.com/armstrtw/rabstraction}
+}
+
+@Manual{Armstrong:2009:RObjects,
+  title =	 {{RObjects}: {C++} wrapper for R objects (a better
+                  implementation of {RAbstraction}},
+  author =	 {Whit Armstrong},
+  year =	 2009,
+  note =	 {Code repository last updated 2009-11-28.},
+  url =		 {http://github.com/armstrtw/RObjects}
+}
+
+@InProceedings{Bates+DebRoy:2001:C++Classes,
+  author =	 {Douglas M. Bates and Saikat DebRoy},
+  title =	 {{C++} Classes for {R} Objects},
+  booktitle =    {Proceedings of the 2nd International Workshop on Distributed
+                  Statistical Computing, March 15--17, 2001, Technische
+		  Universit\"at Wien, Vienna, Austria},
+  editor =       {Kurt Hornik and Friedrich Leisch},
+  year =         {2001},
+  url =          {http://www.ci.tuwien.ac.at/Conferences/DSC-2001/Proceedings/},
+  note =         {ISSN 1609-395X}
+}
+
+
+@Misc{Brokken:2011:Cpp,
+  author = 	 {Frank B. Brokken},
+  title = 	 {C++ Annotations},
+  howpublished = {Electronic book, University of Groningen},
+  year = 	 2011,
+  url =          {http://www.icce.rug.nl/documents/cplusplus/}
+}
+
+@Book{Chambers:2008:SoDA,
+  author = 	 {John M. Chambers},
+  title = 	 {Software for Data Analysis: Programming with {R}},
+  publisher = 	 {Springer-Verlag},
+  year = 	 2008,
+  series = 	 {Statistics and Computing},
+  address = 	 {Heidelberg},
+  note = 	 {{ISBN} 978-0-387-75935-7}
+}
+
+@Book{Chambers:1998:PwD,
+  author = 	 {John M. Chambers},
+  title = 	 {Programming with Data: {A} Guide to the {S} Language},
+  publisher = 	 {Springer-Verlag},
+  year = 	 1998,
+  address = 	 {Heidelberg},
+  note = 	 {{ISBN} 978-0387985039}
+}
+
+@Manual{CRAN:RInside,
+  title =	 {RInside: C++ classes to embed R in C++ applications},
+  author =	 {Dirk Eddelbuettel and Romain Fran\c{c}ois},
+  year =	 2015,
+  note =	 {R package version 0.2.13},
+  url =		 CRAN # "package=RInside"
+}
+
+@Manual{CRAN:RProtoBuf,
+  title =	 {RProtoBuf: R Interface to the Protocol Buffers API},
+  author =	 {Romain Fran\c{c}ois and Dirk Eddelbuettel and Murray Stokely and Jeroen Ooms},
+  year =	 2016,
+  note =	 {R package version 0.4.7},
+  url =		 CRAN # "package=RProtoBuf"
+}
+
+@Manual{CRAN:RQuantLib,
+  title =	 {RQuantLib: {R} interface to the {QuantLib} library},
+  author =	 {Dirk Eddelbuettel and Khanh Nguyen},
+  year =	 2016,
+  note =	 {R package version 0.4.3},
+  url =		 CRAN # "package=RQuantLib"
+}
+
+@Manual{CRAN:rbenchmark,
+  title =	 {\pkg{rbenchmark}: Benchmarking routine for \proglang{R}},
+  author =	 {Wacek Kusnierczyk},
+  year =	 2012,
+  note =	 {R package version 1.0.0},
+  url =		 CRAN # "package=rbenchmark"
+}
+
+@Article{JSS:Rcpp,
+  title =	 {{Rcpp}: Seamless {R} and {C++} Integration},
+  author =	 {Dirk Eddelbuettel and Romain Fran\c{c}ois},
+  journal =	 {Journal of Statistical Software},
+  year =	 2011,
+  volume =	 40,
+  number =	 8,
+  pages =	 {1--18},
+  url =		 {http://www.jstatsoft.org/v40/i08/},
+}
+
+@Manual{CRAN:Rcpp,
+  title =	 {{Rcpp}: Seamless {R} and {C++} Integration},
+  author =	 {Dirk Eddelbuettel and Romain Fran\c{c}ois and JJ
+                  Allaire and Kevin Ushey and Qiang Kou and
+                  Nathan Russel and John Chambers and Douglas Bates},
+  year =	 2017,
+  note =	 {R package version 0.12.9},
+  url =		 CRAN # "package=Rcpp"
+}
+
+@Manual{CRAN:Rcpp:Attributes,
+  crossref =     {CRAN:Rcpp},
+  author = 	 {J. J. Allaire and Dirk Eddelbuettel and Romain Fran\c{c}ois},
+  title = 	 {{Rcpp} Attributes},
+  year = 	 2015,
+  note = 	 {Vignette included in R package Rcpp},
+  url =		 CRAN # "package=Rcpp"
+}
+
+@Manual{CRAN:Rcpp:Modules,
+  crossref =     {CRAN:Rcpp},
+  author = 	 {Dirk Eddelbuettel and Romain Fran\c{c}ois},
+  title = 	 {Exposing {C++} functions and classes with {Rcpp} modules},
+  year = 	 2015,
+  note = 	 {Vignette included in R package Rcpp},
+  url =		 CRAN # "package=Rcpp"
+}
+
+@Manual{CRAN:Rcpp:Sugar,
+  crossref =     {CRAN:Rcpp},
+  author = 	 {Dirk Eddelbuettel and Romain Fran\c{c}ois},
+  title = 	 {{Rcpp} syntactic sugar},
+  year = 	 2015,
+  note = 	 {Vignette included in R package Rcpp},
+  url =		 CRAN # "package=Rcpp"
+}
+
+@Manual{CRAN:RcppArmadillo,
+  title =	 {RcppArmadillo: Rcpp integration for Armadillo
+                  templated linear algebra library},
+  author =	 {Dirk Eddelbuettel and Romain Fran\c{c}ois and 
+                  Douglas Bates},
+  year =	 2016,
+  note =	 {R package version 0.7.400.2.0},
+  url =		 CRAN # "package=RcppArmadillo"
+}
+
+@Manual{CRAN:RcppClassic,
+  title =	 {RcppClassic: Deprecated 'classic' Rcpp API},
+  author =	 {Dirk Eddelbuettel and Romain Fran\c{c}ois},
+  year =	 2015,
+  note =	 {R package version 0.9.6},
+  url =		 CRAN # "package=RcppClassic"
+}
+
+@Manual{CRAN:RcppDE,
+  title =	 {RcppDE: Global optimization by differential evolution in C++},
+  author =	 {Dirk Eddelbuettel},
+  year =	 2016,
+  note =	 {R package version 0.1.5},
+  url =		 CRAN # "package=RcppDE"
+}
+
+@Manual{CRAN:RcppEigen,
+  title =	 {RcppEigen: Rcpp integration for the Eigen templated linear 
+		  algebra library}, 
+  author =	 {Douglas Bates and Romain Fran\c{c}ois and Dirk Eddelbuettel},
+  year =	 2016,
+  note =	 {{R} package version 0.3.2.9.0},
+  url =		 CRAN # "package=RcppEigen"
+}
+
+@Article{JSS:RcppEigen,
+  title =	 {Fast and Elegant Numerical Linear Algebra Using the
+                  {RcppEigen} Package},
+  author =	 {Douglas Bates and Dirk Eddelbuettel},
+  journal =	 {Journal of Statistical Software},
+  year =	 {2013},
+  volume =	 {52},
+  number =	 {5},
+  pages =	 {1--24},
+  url =		 {http://www.jstatsoft.org/v52/i05/},
+}
+
+@Article{JSS:RProtoBuf,
+  title =        {{RProtoBuf}: Efficient Cross-Language Data Serialization in
+                  {R}},
+  author =       {Dirk Eddelbuettel and Murray Stokely and Jeroen Ooms},
+  journal =      {Journal of Statistical Software},
+  year =         {2016},
+  volume =       {71},
+  number =       {2},
+  pages =        {1--24},
+  doi =          {10.18637/jss.v071.i02},
+}
+
+@Manual{CRAN:RcppExamples,
+  title =	 {RcppExamples: Examples using {Rcpp} to interface {R}
+                  and {C++}},
+  author =	 {Dirk Eddelbuettel and Romain Fran\c{c}ois},
+  year =	 2016,
+  note =	 {R package version 0.1.8},
+  url =		 CRAN # "package=RcppExamples"
+}
+
+@Manual{CRAN:RcppGSL,
+  title =	 {RcppGSL: Rcpp integration for GNU GSL vectors and matrices},
+  author = 	 {Dirk Eddelbuettel and Romain Fran\c{c}ois},
+  year =	 2016,
+  note =	 {R package version 0.3.1},
+  url =		 CRAN # "package=RcppGSL"
+}
+
+@Manual{CRAN:RcppZiggurat,
+  title =	 {RcppZiggurat: Rcpp Integration of Different Ziggurat Normal RNG Implementations},
+  author = 	 {Dirk Eddelbuettel},
+  year =	 2015,
+  note =	 {R package version 0.1.3},
+  url =		 CRAN # "package=RcppZiggurat"
+}
+
+@Manual{CRAN:Rserve,
+  title =	 {Rserve: Binary R server},
+  author =	 {Simon Urbanek},
+  year =	 2013,
+  note =	 {R package version 1.7-3},
+  url =		 CRAN # "package=Rserve"
+}
+
+@Manual{CRAN:cxxPack,
+  title =	 {cxxpack: {R/C++} Tools for Literate Statistical
+                  Practice},
+  author =	 {Dominick Samperi},
+  year =	 2010,
+  note =	 {R package version 7.0.6},
+  url =		 CRAN # "package=cxxPack"
+}
+
+@Manual{CRAN:highlight,
+  title =	 {highlight: Syntax highlighter},
+  author =	 {Romain Fran\c{c}ois},
+  year =	 2015,
+  note =	 {R package with version 0.4.7},
+  url =		 CRAN # "package=highlight"
+}
+
+@Manual{CRAN:inline,
+  title =	 {inline: Inline C, C++, Fortran function calls from
+                  R},
+  author =	 {Oleg Sklyar and Duncan Murdoch and Mike Smith and
+                  Dirk Eddelbuettel and Romain Fran\c{c}ois},
+  year =	 2015,
+  note =	 {R package version 0.3.14},
+  url =		 CRAN # "package=inline"
+}
+
+@Manual{CRAN:Matrix,
+  title =	 {\pkg{Matrix}: Sparse and Dense Matrix Classes and Methods},
+  author =	 {Douglas Bates and Martin Maechler},
+  year =	 2016,
+  note =	 {R package version 1.2-7.1},
+  url =		 CRAN # "package=Matrix"
+}
+
+@Manual{CRAN:minqa,
+  title =	 {minqa: Derivative-free optimization algorithms by
+                  quadratic approximation},
+  author =	 {Douglas Bates and Katharine M. Mullen and John
+                  C. Nash and Ravi Varadhan},
+  year =	 2014,
+  note =	 {R package version 1.2.4},
+  url =		 CRAN # "package=minqa"
+}
+
+@Manual{CRAN:roxygen2,
+  title =	 {roxygen2: In-source documentation for R},
+  author =	 {Hadley Wickham and Peter Danenberg and Manuel Eugster},
+  year =	 2015,
+  note =	 {R package version 5.0.1},
+  url =		 CRAN # "package=roxygen2"
+}
+
+@Book{Eddelbuettel:2013:Rcpp,
+  author =	 {Dirk Eddelbuettel},
+  title =	 {Seamless R and C++ Integration with Rcpp},
+  publisher =	 {Springer},
+  series =	 {Use R!},
+  year =	 2013,
+  address =	 {New York},
+  isbn =	 {978-1-4614-6867-7}
+}
+
+@Article{Eddelbuettel+Sanderson:2013:RcppArmadillo,
+  title =	 {{RcppArmadillo}: Accelerating {R} with High-Performance {C++} Linear Algebra},
+  author =	 {Dirk Eddelbuettel and Conrad Sanderson},
+  journal =	 {Computational Statistics and Data Analysis},
+  year =	 2014,
+  volume =	 71,
+  month =        {March},
+  pages =        {1054--1063},
+  doi =          {10.1016/j.csda.2013.02.005},
+  url =          {http://dx.doi.org/10.1016/j.csda.2013.02.005}
+}
+
+@Article{Eddelbuettel+Sanderson:2014:RcppArmadillo,
+  title =	 {{RcppArmadillo}: Accelerating {R} with High-Performance {C++} Linear Algebra},
+  author =	 {Dirk Eddelbuettel and Conrad Sanderson},
+  journal =	 {Computational Statistics and Data Analysis},
+  year =	 2014,
+  volume =	 71,
+  month =        {March},
+  pages =        {1054--1063},
+  doi =          {10.1016/j.csda.2013.02.005},
+  url =          {http://dx.doi.org/10.1016/j.csda.2013.02.005}
+}
+
+; see http://eigen.tuxfamily.org/index.php?title=BibTeX
+; replaced 'howpublished' with 'url' and updated year to 2011, and again to 2012
+@MISC{Eigen:Web,
+  author =	 {Ga\"{e}l Guennebaud and Beno\^{i}t Jacob and others},
+  title =	 {Eigen v3},
+  year =	 2012,
+  url =		 {http://eigen.tuxfamily.org},
+}
+
+@Book{Gentleman:2009:RProgramming,
+  author = 	 {Robert Gentleman},
+  title = 	 {R Programming for Bioinformatics},
+  publisher = 	 {Chapman \& Hall/CRC},
+  year = 	 2009,
+  series = 	 {Computer Science and Data Analysis},
+  address = 	 {Boca Raton, FL}
+}
+
+@Article{Gropp+Lusk+Doss+Skjellum:1996:MPI,
+  author = 	 {William Gropp and Ewing Lusk and Nathan Doss and Anthony Skjellum},
+  title = 	 {A high-performance, portable implementation of the {MPI} message passing interface standard},
+  journal = 	 {Parallel Computing},
+  year = 	 1996,
+  url =          {http://dx.doi.org/10.1016/0167-8191(96)00024-5},
+  volume = 	 22,
+  number = 	 6,
+  pages = 	 {789--828}
+}
+
+@Book{Gropp+Lusk+Skjellum:1999:MPI,
+  author = 	 {William Gropp and Ewing Lusk and Anthony Skjellum},
+  title = 	 {Using {MPI}: Portable Parallel Programming with the Message Passing Interface},
+  publisher = 	 {MIT Press},
+  year = 	 1999,
+  series = 	 {Scientific and Engineering Computation Series},
+  edition = 	 {2nd},
+  month = 	 {November},
+  note = 	 {{ISBN} 978-0-262-57132-6}}
+
+@Manual{GSL,
+  title = 	{{GNU} {S}cientific {L}ibrary {R}eference {M}anual},
+  author = 	{Mark Galassi and Jim Davies and James Theiler and Brian Gough and Gerard Jungman and Patrick Alken and Michael Booth and Fabrice Rossi},
+  year = 	{2010},
+  edition =     {3rd},
+  note = 	{Version 1.14. {ISBN} 0954612078},
+  url = 	{http://www.gnu.org/software/gsl}
+}
+
+@Unpublished{Java+Gaile+Manly:2007:RCpp,
+  author =	 {James J. Java and Daniel P. Gaile and Kenneth
+                  E. Manly},
+  title =	 {{R/Cpp}: Interface Classes to Simplify Using {R}
+                  Objects in {C++} Extensions},
+  note =	 {Unpublished manuscript, University at Buffalo},
+  url =
+                  {http://sphhp.buffalo.edu/biostat/research/techreports/UB_Biostatistics_TR0702.pdf},
+  month =	 {July},
+  year =	 2007
+}
+
+@InProceedings{Leisch:2008:Tutorial,
+  author =	 {Friedrich Leisch},
+  title =	 {Tutorial on {C}reating \proglang{R} {P}ackages},
+  booktitle =	 {COMPSTAT 2008 -- Proceedings in Computational
+                  Statistics},
+  year =	 2008,
+  editor =	 {Paula Brito},
+  address =	 {Heidelberg},
+  publisher =	 {Physica Verlag},
+  url =		 CRAN # "doc/contrib/Leisch-CreatingPackages.pdf"
+}
+
+@Manual{Liang:2008:rcppbind,
+  title =	 {rcppbind: {A} template library for R/C++ developers},
+  author =	 {Gang Liang},
+  year =	 2008,
+  note =	 {R package version 1.0},
+  url =		 R-Forge # "projects/rcppbind"
+}
+
+@Book{Lippman+Lajoie+Moo:2005:Cpp_Primer,
+  author = 	 {Stanley B. Lippman and Jos\'{e}e Lajoie and Barbara E. Moo},
+  title = 	 {The C++ Primer},
+  publisher = 	 {Addison-Wesley},
+  address =	 {Boston},
+  year = 	 2005,
+  edition = 	 {4th}
+}
+
+@Book{Matloff:2011:ArtOfR,
+  author = 	 {Norman Matloff},
+  title = 	 {The Art of R Programming: A Tour of Statistical Software Design},
+  publisher = 	 {No Starch Press},
+  address =	 {San Francisco, CA},
+  year = 	 2011
+}
+
+@book{Meyers:1995:MoreEffectiveC++,
+  author =	 {Scott Meyers},
+  title =	 {More Effective C++: 35 New Ways to Improve Your
+                  Programs and Designs},
+  year =	 1995,
+  note =	 {{ISBN} 020163371X},
+  publisher =	 {Addison-Wesley},
+  address =	 {Boston}
+}
+
+@book{Meyers:2001:EffectiveSTL,
+  author =	 {Scott Meyers},
+  title =	 {Effective STL: 50 specific ways to improve your use
+                  of the standard template library},
+  year =	 2001,
+  note =	 {{ISBN} 0-201-74962-9},
+  publisher =	 {Addison-Wesley},
+  address =	 {Essex}
+}
+
+@book{Meyers:2005:EffectiveC++,
+  author =	 {Scott Meyers},
+  title =	 {Effective C++: 55 Specific Ways to Improve Your
+                  Programs and Designs},
+  year =	 2005,
+  note =	 {{ISBN} 978-0321334879},
+  publisher =	 {Addison-Wesley},
+  address =	 {Boston},
+  edition =	 {3rd},
+}
+
+@Book{Plauger+Et+Al:2000:STL,
+  author =	 {P.J. Plauger and Alexander Stepanov and Meng Lee and
+                  David R. Musser},
+  title =	 {The {C++} Standard Template Library},
+  publisher =	 {Prentice Hall PTR},
+  year =	 2000,
+  note =	 {{ISBN} 978-0134376332},
+}
+
+@manual{R:Administration,
+  author =	 RCoreTeam,
+  organization = RFoundation,
+  address =	 {Vienna, Austria},
+  year =	 2015,
+  title =	 "R Installation and Administration",
+  annote =	 {{ISBN} 3-900051-09-7},
+  url =		 manuals # "R-admin.html"
+}
+
+@manual{R:Extensions,
+  author =	 RCoreTeam,
+  organization = RFoundation,
+  address =	 {Vienna, Austria},
+  year =	 2015,
+  title =	 "Writing R extensions",
+  annote =	 {{ISBN} 3-900051-11-9},
+  url =		 manuals # "R-exts.html"
+}
+
+@manual{R:Internals,
+  author =	 RCoreTeam,
+  organization = RFoundation,
+  address =	 {Vienna, Austria},
+  year =	 2015,
+  title =	 "R internals",
+  annote =	 {{ISBN} 3-900051-14-3},
+  url =		 manuals # "R-ints.html"
+}
+
+@manual{R:Main,
+  title =	 {R: A Language and Environment for Statistical
+                  Computing},
+  author =	 RCoreTeam,
+  organization = RFoundation,
+  address =	 {Vienna, Austria},
+  year =	 2015,
+  url =		 {http://www.R-project.org/},
+}
+
+@manual{R:Language,
+  author =	 RCoreTeam,
+  organization = RFoundation,
+  address =	 {Vienna, Austria},
+  year =	 2015,
+  title =	 "R language",
+  annote =	 {{ISBN} 3-900051-13-5},
+  url =		 manuals # "R-lang.html"
+}
+
+@Book{Venables+Ripley:2000:SProgramming,
+  author = 	 {Willian N. Venables and Brian D. Ripley},
+  title = 	 {S Programming},
+  publisher = 	 {Springer-Verlag},
+  year = 	 2000,
+  series = 	 {Statistics and Computing},
+  address = 	 {New York}
+}
+
+@InProceedings{Runnalls:2009:CXXR,
+  author =	 {Andrew Runnalls},
+  title =	 {Aspects of {CXXR} internals},
+  booktitle =	 {Directions in Statistical Computing},
+  address =	 {University of Copenhagen, Denmark},
+  year =	 2009
+}
+
+@Manual{Samperi:2009:RcppTemplate,
+  title =	 {RcppTemplate: Rcpp {R/C++} Object Mapping Library
+                  and Package Template},
+  author =	 {Dominick Samperi},
+  year =	 2009,
+  note =	 {(Archived) R package version 6.1},
+  url =		 CRAN # "/src/contrib/Archive/RcppTemplate"
+}
+
+@TechReport{Sanderson:2010:Armadillo,
+  author =	 {Conrad Sanderson},
+  title =	 {{Armadillo}: {An} open source {C++} Algebra Library
+                  for Fast Prototyping and Computationally Intensive
+                  Experiments },
+  institution =	 {{NICTA}},
+  year =	 2010,
+  url =		 "http://arma.sf.net"
+}
+
+@Book{Stroustrup:1997:Cpp,
+  author = 	 {Bjarne Stroustrup},
+  title = 	 {The C++ Programming Language},
+  publisher = 	 {Addison-Wesley},
+  address =	 {Boston},
+  year = 	 1997,
+  edition = 	 {3rd}
+}
+
+@Book{Stroustrup:2013:Cpp,
+  author = 	 {Bjarne Stroustrup},
+  title = 	 {The C++ Programming Language},
+  publisher = 	 {Addison-Wesley},
+  address =	 {Boston},
+  year = 	 2013,
+  pages =        1368,
+  edition = 	 {4th}
+}
+
+@Article{TempleLang:2009:ModestProposal,
+  author =	 {Duncan {Temple Lang}},
+  title =	 {A modest proposal: an approach to making the
+                  internal {R} system extensible},
+  journal =	 {Computational Statistics},
+  year =	 2009,
+  volume =	 24,
+  number =	 2,
+  pages =	 {271-281},
+  month =	 {May}
+}
+
+@Article{TempleLang:2009:RGCCTranslationUnit,
+  author =	 {Duncan {Temple Lang}},
+  title =	 {Working with meta-data from {C/C++} code in {R}: the
+                  {RGCCTranslationUnit} package},
+  journal =	 {Computational Statistics},
+  year =	 2009,
+  volume =	 24,
+  number =	 2,
+  pages =	 {283-293},
+  month =	 {May}
+}
+
+@InProceedings{Maurer+Wong:2008:AttributesInC++,
+  author =       {Jens Maurer and Michael Wong},
+  title =        {Towards support for attributes in {C++} (Revision
+                  6)},
+  booktitle =    {JTC1/SC22/WG21 - The C++ Standards Committee},
+  year =         {2008},
+  url =
+                  {http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf},
+  note =         {{N2761=08-0271}}
+}
+
+@InProceedings{Urbanek:2003:Rserve,
+  author =	 {Simon Urbanek},
+  title =	 {{Rserve}: A Fast Way to Provide {R} Functionality to
+                  Applications},
+  booktitle	= {Proceedings of the 3rd International Workshop on Distributed
+                   Statistical Computing, Vienna, Austria},
+  editor	= {Kurt Hornik and Friedrich Leisch and Achim Zeileis},
+  year		= {2003},
+  url		= {http://www.ci.tuwien.ac.at/Conferences/DSC-2003/Proceedings/},
+  note		= {{ISSN 1609-395X}}
+}
+
+@Book{Vandevoorde+Josuttis:2003:Templates,
+  author =	 {David Vandevoorde and Nicolai M. Josuttis},
+  title =	 {{C++} {T}emplates: The Complete Guide},
+  publisher =	 {Addison-Wesley},
+  year =	 2003,
+  address =	 {Boston}
+}
+
+@inproceedings{Veldhuizen:1998:Blitz,
+  author =	 {Todd L. Veldhuizen},
+  title =	 {Arrays in {Blitz++}},
+  booktitle =	 {ISCOPE '98: Proceedings of the Second International
+                  Symposium on Computing in Object-Oriented Parallel
+                  Environments},
+  note =	 {{ISBN} 3-540-65387-2},
+  year =	 1998,
+  pages =	 {223--230},
+  publisher =	 {Springer-Verlag},
+  address =	 {London},
+}
+
+@misc{KDE-TechBase:2012,
+  author =       {KDE-TechBase},
+  title =        {Binary Compatibility Issues With {C++}},
+  url  =         "http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++",
+  year =         2012,
+  note =         "[Online; accessed 24-November-2012]"
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/NAMESPACE	(revision 2476)
@@ -0,0 +1,43 @@
+useDynLib(Rcpp, .registration = TRUE)
+
+import(methods)
+importFrom(utils, capture.output, assignInNamespace, .DollarNames, prompt,
+           packageDescription, package.skeleton, glob2rx)
+
+exportClasses(Module, "C++Field",
+              "C++OverloadedMethods",
+              "C++Constructor",
+              "C++Class", "C++Object", "C++Function")
+
+S3method(.DollarNames, "C++Object")
+S3method(.DollarNames, "Module")
+exportMethods(prompt, show, .DollarNames, initialize, "formals<-")
+
+export(Module,
+       Rcpp.package.skeleton,
+       populate,
+       loadRcppModules,  # deprecated since Rcpp 0.12.5
+       setRcppClass,
+       loadRcppClass,
+       loadModule,
+       cppFunction,
+       exposeClass,
+       evalCpp,
+       sourceCpp,
+       compileAttributes,
+       registerPlugin,
+       RcppLdFlags,
+       LdFlags,
+       demangle,
+       sizeof,
+       cpp_object_initializer,
+       cpp_object_dummy,
+       Rcpp.plugin.maker
+       )
+S3method(print, bytes)
+S3method(format, Rcpp_stack_trace)
+S3method(str, Rcpp_stack_trace)
+S3method(print, Rcpp_stack_trace)
+exportClass(RcppClass)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/README
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/README	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/README	(revision 2476)
@@ -0,0 +1,53 @@
+
+History
+=======
+
+Rcpp continues and extends earlier work by Dominick Samperi which he initially
+contributed directly into the RQuantLib package. Then, during 2005 and 2006,
+several releases were made as CRAN packages, first under the name Rcpp and
+later under the name RcppTemplate.  However, both packages were left
+abandonded after November 2006.  Later, in November 2009, two brief releases
+were made and abandonded immediately afterwards.
+
+Due to the continued use of Rcpp both within RQuantLib and in other projects,
+Dirk took over maintenance in November 2008 and added some extensions which
+are documented in the NEWS file, the ChangeLog and the included annoucements
+of the major releases.
+
+With Romain joining development in late 2009, Rcpp development accelerated. A
+richer, more powerful API has been developped to replace the previous API that 
+we now call 'classic Rcpp API'. The 'classic Rcpp API' has been factored 
+out of Rcpp in its own package 'RcppClassic'.
+
+
+Documentation
+=============
+
+Several so-called 'vignette' pdf documents are included which provide
+
+     o	an introduction;
+
+     o	answers to frequently asked question;
+
+     o	documentation about how to use Rcpp in other R packages;
+
+     o	documentation of modules (to access C++ classes and functions);
+
+     o  documentation of sugar (expressive C++ code for vectors and matrices);
+
+     o	notes about extending Rcpp;
+
+     o  results from the hundreds of unit tests.
+
+The CRAN package RcppExamples provides additionnal documentation and
+examples.
+
+
+Contact
+=======
+
+Rcpp is in active and open development, and new contributors are invited to
+follow the development on GitHub. The rcpp-devel project mailing list is the main
+venue for discussions about Rcpp.
+
+   -- Dirk Eddelbuettel and Romain Francois
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/testRcppClass/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/testRcppClass/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/testRcppClass/DESCRIPTION	(revision 2476)
@@ -0,0 +1,17 @@
+Package: testRcppClass
+Type: Package
+Title: Some examples using Rcpp classes and loadModule()
+Version: 0.1
+Date: 2012-04-06
+Author: John Chambers
+Maintainer: John Chambers <jmc@stat.stanford.edu>
+Description: Some examples from the Rcpp Modules documentation, with
+ load-time creation of classes that extend C++ classes and with
+ explicit loading of some objects.
+License: GPL(>=2)
+LazyLoad: yes
+Depends: R (>= 2.15.0)
+Imports: Rcpp (>= 0.8.5), methods
+LinkingTo: Rcpp
+Packaged: 2012-04-14 18:42:28 UTC; jmc
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/testRcppClass/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/testRcppClass/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/testRcppClass/NAMESPACE	(revision 2476)
@@ -0,0 +1,7 @@
+useDynLib(testRcppClass)
+import(Rcpp,methods)
+
+export(genWorld, stdNumeric, rcpp_hello_world,
+       bar, foo, baz, baz1)
+
+exportClass(RcppClassWorld, stdNumeric)#, NumEx)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.misc.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.misc.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.misc.R	(revision 2476)
@@ -0,0 +1,217 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2010 - 2017  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("misc.cpp")
+
+    test.Symbol <- function(){
+	res <- symbol_()
+	checkTrue( res[1L], msg = "Symbol creation - SYMSXP " )
+	checkTrue( res[2L], msg = "Symbol creation - CHARSXP " )
+	checkTrue( res[3L], msg = "Symbol creation - STRSXP " )
+	checkTrue( res[4L], msg = "Symbol creation - std::string " )
+    }
+
+    test.Symbol.notcompatible <- function(){
+	checkException( symbol_ctor(symbol_ctor), msg = "Symbol not compatible with function" )
+	checkException( symbol_ctor(asNamespace("Rcpp")), msg = "Symbol not compatible with environment" )
+	checkException( symbol_ctor(1:10), msg = "Symbol not compatible with integer" )
+	checkException( symbol_ctor(TRUE), msg = "Symbol not compatible with logical" )
+	checkException( symbol_ctor(1.3), msg = "Symbol not compatible with numeric" )
+	checkException( symbol_ctor(as.raw(1) ), msg = "Symbol not compatible with raw" )
+    }
+
+
+    test.Argument <- function(){
+        checkEquals( Argument_(), list( x = 2L, y = 3L ) , msg = "Argument")
+    }
+
+    test.Dimension.const <- function(){
+        checkEquals( Dimension_const( c(2L, 2L)) , 2L, msg = "testing const operator[]" )
+    }
+
+    test.evaluator.error <- function(){
+        checkException( evaluator_error(), msg = "Rcpp_eval( stop() )" )
+    }
+
+    test.evaluator.ok <- function(){
+	checkEquals( sort(evaluator_ok(1:10)), 1:10, msg = "Rcpp_eval running fine" )
+    }
+
+    test.exceptions <- function(){
+	can.demangle <- Rcpp:::capabilities()[["demangling"]]
+
+	e <- tryCatch(  exceptions_(), "C++Error" = function(e) e )
+	checkTrue( "C++Error" %in% class(e), msg = "exception class C++Error" )
+
+	if( can.demangle ){
+            checkTrue( "std::range_error" %in% class(e), msg = "exception class std::range_error" )
+	}
+	checkEquals( e$message, "boom", msg = "exception message" )
+
+	if( can.demangle ){
+                                        # same with direct handler
+            e <- tryCatch(  exceptions_(), "std::range_error" = function(e) e )
+            checkTrue( "C++Error" %in% class(e), msg = "(direct handler) exception class C++Error" )
+            checkTrue( "std::range_error" %in% class(e), msg = "(direct handler) exception class std::range_error" )
+            checkEquals( e$message, "boom", msg = "(direct handler) exception message" )
+	}
+	f <- function(){
+            try( exceptions_(), silent = TRUE)
+            "hello world"
+	}
+	checkEquals( f(), "hello world", msg = "life continues after an exception" )
+
+    }
+
+    test.has.iterator <- function(){
+
+        has_it <- has_iterator_()
+	checkTrue( has_it[1L] , msg = "has_iterator< std::vector<int> >" )
+	checkTrue( has_it[2L] , msg = "has_iterator< std::ist<int> >" )
+	checkTrue( has_it[3L] , msg = "has_iterator< std::deque<int> >" )
+	checkTrue( has_it[4L] , msg = "has_iterator< std::set<int> >" )
+	checkTrue( has_it[5L] , msg = "has_iterator< std::map<string,int> >" )
+
+	checkTrue( ! has_it[6L] , msg = "has_iterator< std::pair<string,int> >" )
+	checkTrue( ! has_it[7L] , msg = "Rcpp::Symbol" )
+
+    }
+
+    test.AreMacrosDefined <- function(){
+        checkTrue( Rcpp:::areMacrosDefined( "__cplusplus" ) )
+    }
+
+    test.rcout <- function(){
+        ## define test string that is written to two files
+        teststr <- "First line.\nSecond line."
+
+        rcppfile <- tempfile()
+        rfile <- tempfile()
+
+        ## write to test_rcpp.txt from Rcpp
+        test_rcout(rcppfile,  teststr )
+
+        ## write to test_r.txt from R
+        cat( teststr, file=rfile, sep='\n' )
+
+        ## compare whether the two files have the same data
+        checkEquals( readLines(rcppfile), readLines(rfile), msg="Rcout output")
+    }
+
+    test.rcout.complex <- function(){
+
+        rcppfile <- tempfile()
+        rfile <- tempfile()
+
+        z <- complex(real=sample(1:10, 1), imaginary=sample(1:10, 1))
+
+        ## write to test_rcpp.txt from Rcpp
+        test_rcout_rcomplex(rcppfile,  z )
+
+        ## write to test_r.txt from R
+        cat( z, file=rfile, sep='\n' )
+
+        ## compare whether the two files have the same data
+        checkEquals( readLines(rcppfile), readLines(rfile), msg="Rcout Rcomplex")
+    }
+
+    test.na_proxy <- function(){
+        checkEquals(
+            na_proxy(),
+            rep(c(TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE) , 2),
+            msg = "Na_Proxy NA == handling"
+            )
+    }
+
+    test.StretchyList <- function(){
+        checkEquals(
+            stretchy_list(),
+            pairlist( "foo", 1L, 3.2 )
+            )
+    }
+
+    test.named_StretchyList <- function(){
+        checkEquals(
+            named_stretchy_list(),
+            pairlist( a = "foo", b = 1L, c = 3.2 )
+            )
+    }
+
+    test.stop.variadic <- function(){
+        m <- tryCatch( test_stop_variadic(), error = function(e){
+            conditionMessage(e)
+        })
+        checkEquals( m, "foo 3" )
+    }
+
+    test.NullableForNull <- function() {
+        M <- matrix(1:4, 2, 2)
+        checkTrue(   testNullableForNull(NULL) )
+        checkTrue( ! testNullableForNull(M) )
+    }
+
+    test.NullableForNotNull <- function() {
+        M <- matrix(1:4, 2, 2)
+        checkTrue( ! testNullableForNotNull(NULL) )
+        checkTrue(   testNullableForNotNull(M) )
+    }
+
+    test.NullableAccessOperator <- function() {
+        M <- matrix(1:4, 2, 2)
+        checkEquals( testNullableOperator(M), M )
+    }
+
+    test.NullableAccessGet <- function() {
+        M <- matrix(1:4, 2, 2)
+        checkEquals( testNullableGet(M), M )
+    }
+
+    test.NullableAccessAs <- function() {
+        M <- matrix(1:4, 2, 2)
+        checkEquals( testNullableAs(M), M )
+    }
+
+    test.NullableAccessClone <- function() {
+        M <- matrix(1:4, 2, 2)
+        checkEquals( testNullableClone(M), M )
+    }
+
+    test.NullableIsUsableTrue <- function() {
+	M <- matrix(1:4, 2, 2)
+        checkEquals( testNullableIsUsable(M), M)
+    }
+
+    test.NullableIsUsableFalse <- function() {
+        checkTrue(is.null(testNullableIsUsable(NULL)))
+    }
+
+    test.NullableString <- function() {
+        checkEquals(testNullableString(), "")
+        checkEquals(testNullableString("blah"), "blah")
+    }
+
+    test.bib <- function() {
+        checkTrue(nchar(Rcpp:::bib()) > 0, msg="bib file")
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Module.client.package.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Module.client.package.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Module.client.package.R	(revision 2476)
@@ -0,0 +1,70 @@
+#!/usr/bin/env r
+#       hey emacs, please make this use  -*- tab-width: 4 -*-
+#
+# Copyright (C) 2010 - 2015	 John Chambers, Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.tearDown <- function(){
+	gc()
+}
+
+## The unit test in this file fails on OS X 10.5.* but pass on 10.6.*
+## Sys.info release comes back with 10.* for the latter but 9.* for the former
+## Thanks to Simon Urbanek and Baptiste Auguie for suggesting and testing this
+.badOSX <- (Sys.info()['sysname'] == "Darwin" &&
+            isTRUE(as.integer(gsub("\\..*","",Sys.info()['release'])) < 10L) )
+
+## It now (Dec 2011) appears to fail on Windows too
+.onWindows <- .Platform$OS.type == "windows"
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest && ! .badOSX && ! .onWindows) {
+
+    ## ## added test for 'testRcppClass' example of extending C++ classes via R
+    test.Class.package <- function( ){
+    
+        td <- tempfile()
+        cwd <- getwd()
+        dir.create( td )
+        file.copy( system.file( "unitTests", "testRcppClass", package = "Rcpp" ) , td, recursive = TRUE)
+        setwd( td )
+        on.exit( { setwd( cwd) ; unlink( td, recursive = TRUE ) } )
+        R <- shQuote( file.path( R.home( component = "bin" ), "R" ))
+        cmd <- paste( R , "CMD build testRcppClass" )
+        system( cmd )
+        dir.create( "templib" )
+        install.packages( "testRcppClass_0.1.tar.gz", "templib", repos = NULL, type = "source" )            
+        
+        require( "testRcppClass", "templib", character.only = TRUE )
+    
+        v <- stdNumeric$new()
+        data <- as.numeric(1:10)
+        v$assign(data)
+        v$set(3L, v$at(3L) + 1)
+        
+        data[[4]] <- data[[4]] +1
+        
+        checkEquals( v$as.vector(), data )
+        
+        ## a few function calls
+        checkEquals( bar(2), 4)
+        checkEquals( foo(2,3), 6)
+    
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.XPTr.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.XPTr.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.XPTr.R	(revision 2476)
@@ -0,0 +1,43 @@
+#!/usr/bin/env r
+#       hey emacs, please make this use  -*- tab-width: 4 -*-
+#
+# Copyright (C) 2009 - 2014	 Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("XPtr.cpp")
+    
+    test.XPtr <- function(){
+        xp <- xptr_1()
+        checkEquals(typeof( xp ), "externalptr", msg = "checking external pointer creation" )
+        
+        front <- xptr_2(xp)
+        checkEquals( front, 1L, msg = "check usage of external pointer" )
+
+        checkTrue(xptr_release(xp), msg = "check release of external pointer")
+
+        checkTrue(xptr_access_released(xp), msg = "check access of released external pointer")
+
+        checkException(xptr_use_released(xp),
+                       msg = "check exception on use of released external pointer",
+                       silent = TRUE)
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Reference.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Reference.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Reference.R	(revision 2476)
@@ -0,0 +1,38 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2013 - 2014  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("Reference.cpp")
+
+    test.Reference <- function(){
+        Instrument <- setRefClass(
+            Class="Instrument",
+            fields=list("id"="character", "description"="character")
+            )
+        Instrument$accessors(c("id", "description"))
+        
+        instrument <- Instrument$new(id="AAPL", description="Apple")
+        
+        checkEquals( runit_Reference_getId(instrument), "AAPL", msg = ".field" )
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.dispatch.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.dispatch.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.dispatch.R	(revision 2476)
@@ -0,0 +1,92 @@
+#!/usr/bin/env r
+# -*- mode: R; tab-width: 4; -*-
+#
+# Copyright (C) 2009 - 2016  Dirk Eddelbuettel and Romain Francois
+# Copyright (C) 2016         Dirk Eddelbuettel, Romain Francois and Nathan Russell
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+    .setUp <- Rcpp:::unitTestSetup("dispatch.cpp")
+    
+    test.RawVector <- function() {
+        x <- as.raw(0:9)
+        checkEquals(first_el(x), x[1], msg = "RCPP_RETURN_VECTOR (raw)")
+    }
+
+    test.ComplexVector <- function() {
+        x <- as.complex(0:9)
+        checkEquals(first_el(x), x[1], msg = "RCPP_RETURN_VECTOR (complex)")
+    }
+    
+    test.IntegerVector <- function() {
+        x <- as.integer(0:9)
+        checkEquals(first_el(x), x[1], msg = "RCPP_RETURN_VECTOR (integer)")
+    }
+    
+    test.NumericVector <- function() {
+        x <- as.numeric(0:9)
+        checkEquals(first_el(x), x[1], msg = "RCPP_RETURN_VECTOR (numeric)")
+    }
+    
+    test.ExpressionVector <- function() {
+        x <- expression(rnorm, rnorm(10), mean(1:10))
+        checkEquals(first_el(x), x[1], msg = "RCPP_RETURN_VECTOR (expression)")
+    }
+    
+    test.GenericVector <- function() {
+        x <- list("foo", 10L, 10.2, FALSE)
+        checkEquals(first_el(x), x[1], msg = "RCPP_RETURN_VECTOR (list)")
+    }
+    
+    test.CharacterVector <- function() {
+        x <- as.character(0:9)
+        checkEquals(first_el(x), x[1], msg = "RCPP_RETURN_VECTOR (character)")
+    }
+    
+    test.RawMatrix <- function() {
+        x <- matrix(as.raw(0:9), ncol = 2L)
+        checkEquals(first_cell(x), x[1, 1, drop = FALSE], msg = "RCPP_RETURN_MATRIX (raw)")
+    }
+    
+    test.ComplexMatrix <- function() {
+        x <- matrix(as.complex(0:9), ncol = 2L)
+        checkEquals(first_cell(x), x[1, 1, drop = FALSE], msg = "RCPP_RETURN_MATRIX (complex)")
+    }
+    
+    test.IntegerMatrix <- function() {
+        x <- matrix(as.integer(0:9), ncol = 2L)
+        checkEquals(first_cell(x), x[1, 1, drop = FALSE], msg = "RCPP_RETURN_MATRIX (integer)")
+    }
+    
+    test.NumericMatrix <- function() {
+        x <- matrix(as.numeric(0:9), ncol = 2L)
+        checkEquals(first_cell(x), x[1, 1, drop = FALSE], msg = "RCPP_RETURN_MATRIX (numeric)")
+    }
+    
+    test.GenericMatrix <- function() {
+        x <- matrix(lapply(0:9, function(.) 0:9), ncol = 2L)
+        checkEquals(first_cell(x), x[1, 1, drop = FALSE], msg = "RCPP_RETURN_MATRIX (list)")
+    }
+    
+    test.CharacterMatrix <- function() {
+        x <- matrix(as.character(0:9), ncol = 2L)
+        checkEquals(first_cell(x), x[1, 1, drop = FALSE], msg = "RCPP_RETURN_MATRIX (character)")
+    }
+    
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Vector.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Vector.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Vector.R	(revision 2476)
@@ -0,0 +1,759 @@
+#!/usr/bin/env r
+#       hey emacs, please make this use  -*- tab-width: 4 -*-
+#
+# Copyright (C) 2010 - 2015  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("Vector.cpp")
+
+    test.RawVector <- function(){
+        funx <- raw_
+        checkEquals( funx(), as.raw(0:9), msg = "RawVector(int)" )
+    }
+
+    test.RawVector.REALSXP <- function(){
+        funx <- raw_REALSXP
+        checkEquals( funx(as.raw(0:9)), as.raw(2*0:9), msg = "RawVector( RAWSXP) " )
+    }
+
+    test.ExpressionVector <- function(){
+        funx <- expression_
+        ex <- parse( text = "rnorm; rnorm(10)" )
+                                        # get rid of the srcref stuff so that we can compare
+                                        # more easily
+        attributes(ex) <- NULL
+        checkEquals( funx(),  ex , msg = "ExpressionVector" )
+    }
+
+    test.ExpressionVector.variadic <- function(){
+        funx <- expression_variadic
+        ex <- parse( text = "rnorm; rnorm(10)" )
+        attributes(ex) <- NULL
+        checkEquals( funx(),  ex , msg = "ExpressionVector (using variadic templates) " )
+    }
+
+    test.ExpressionVector.parse <- function( ){
+        funx <- expression_parse
+        code <- funx()
+        results <- eval( code )
+        checkEquals( results, 1:10, msg = "ExpressionVector parsing" )
+    }
+
+    test.ExpressionVector.parse.error <- function(){
+        funx <- expression_parseerror
+        checkException( funx(), msg = "parse error" )
+    }
+
+    test.ExpressionVector.eval <- function(){
+        funx <- expression_eval
+        checkEquals( funx(), 1:10, msg = "ExpressionVector::eval" )
+    }
+
+    test.ExpressionVector.eval.env <- function(){
+        funx <- expression_evalenv
+        e <- new.env()
+        e[["x"]] <- sample(1:10)
+        checkEquals( funx(e), 1:10, msg = "ExpressionVector::eval in specific environment" )
+    }
+
+    test.ComplexVector <- function(){
+        funx <- complex_
+        checkEquals( funx(), 0:9*(1+1i), msg = "ComplexVector" )
+    }
+    test.ComplexVector.CPLXSXP <- function(){
+        funx <- complex_CPLXSXP
+        vv = (0:9)*(1+1i) ## not working - funx changes its argument
+                                        #checkEquals( funx(vv), 2*vv, msg = "ComplexVector( CPLXSXP) " )
+        checkEquals( funx((0:9)*(1+1i)), 2*(0:9)*(1+1i), msg = "ComplexVector( CPLXSXP) " )
+    }
+    test.ComplexVector.INTSXP <- function(){
+        funx <- complex_INTSXP
+        vv <- 0L:9L
+        checkEquals( funx(vv), (2+0i)*vv, msg = "ComplexVector( INTSXP) " )
+    }
+    test.ComplexVector.REALSXP <- function(){
+        funx <- complex_REALSXP
+        vv <- as.numeric(0:9)
+        checkEquals( funx(vv), (3+0i)*vv, msg = "ComplexVector( REALSXP) " )
+    }
+
+
+
+
+    test.IntegerVector <- function(){
+        fun <- integer_ctor
+        checkEquals( fun(), 0:9, msg = "IntegerVector" )
+    }
+
+    test.IntegerVector.INTSXP_ <- function(){
+        fun <- integer_INTSXP
+        checkEquals( fun(0:9), 2*0:9, msg = "IntegerVector( INTSXP) " )
+    }
+
+
+    test.IntegerVector.Dimension.constructor <- function(){
+        fun <- integer_dimension_ctor_1
+        checkEquals(fun(),
+                    integer(5) ,
+                    msg = "IntegerVector( Dimension(5))" )
+
+        fun <- integer_dimension_ctor_2
+        checkEquals(fun(),
+                    matrix( 0L, ncol = 5, nrow = 5) ,
+                    msg = "IntegerVector( Dimension(5,5))" )
+
+        fun <- integer_dimension_ctor_3
+        checkEquals(fun(),
+                    array( 0L, dim = c(2,3,4) ) ,
+                    msg = "IntegerVector( Dimension(2,3,4))" )
+    }
+
+    test.IntegerVector.range.constructors <- function(){
+        fun <- integer_range_ctor_1
+        checkEquals( fun(), 0:3, msg = "assign(int*, int*)" )
+
+        fun <- integer_range_ctor_2
+        checkEquals( fun(), 0:3, msg = "assign(int*, int*)" )
+    }
+
+    test.IntegerVector.names.set <- function(){
+        fun <- integer_names_set
+        checkEquals(names(fun()), c("foo", "bar"), msg = "Vector::names" )
+    }
+
+    test.IntegerVector.names.get <- function(){
+        fun <- integer_names_get
+        checkEquals(fun( c("foo" = 1L, "bar" = 2L) ),
+                    c("foo", "bar"),
+                    msg = "Vector::names get" )
+    }
+
+    test.IntegerVector.names.indexing <- function(){
+        fun <- integer_names_indexing
+        x <- c( "foo" = 1L, "bar" = 2L )
+        checkEquals( fun( x ), 1L, msg = "IntegerVector names based indexing" )
+    }
+
+    test.IntegerVector.push.back <- function(){
+        fun <- integer_push_back
+        checkEquals( fun(1:4), 1:5, msg = "IntegerVector push back" )
+
+        x <- 1:4
+        names(x) <- letters[1:4]
+
+        target <- 1:5
+        names(target) <- c( letters[1:4], "")
+        checkEquals( fun(x), target, msg = "IntegerVector push back names" )
+    }
+
+    test.IntegerVector.push.front <- function(){
+        fun <- integer_push_front
+        checkEquals( fun(1:4), c(5L,1:4), msg = "IntegerVector push front" )
+
+        x <- 1:4
+        names(x) <- letters[1:4]
+
+        target <- c( 5L, 1:4 )
+        names(target) <- c( "", letters[1:4])
+
+        checkEquals( fun(x), target, msg = "IntegerVector push front names" )
+    }
+
+    test.IntegerVector.insert <- function(){
+        fun <- integer_insert
+        checkEquals( fun(1:4), c(5L,1L, 7L, 2:4), msg = "IntegerVector insert" )
+
+        x <- 1:4
+        names(x) <- letters[1:4]
+
+        target <- c( 5L, 1L, 7L, 2:4 )
+        names(target) <- c( "", "a", "", letters[2:4])
+
+        checkEquals( fun(x), target, msg = "IntegerVector insert names" )
+    }
+
+    test.IntegerVector.erase <- function(){
+        fun <- integer_erase
+        checkEquals( fun(1:4), c(1L, 2L, 4L), msg = "IntegerVector erase" )
+
+        x <- 1:4
+        names(x) <- letters[1:4]
+
+        target <- c(1L, 2L, 4L)
+        names(target) <- c( "a", "b", "d" )
+
+        checkEquals( fun(x), target, msg = "IntegerVector erase" )
+    }
+
+    test.IntegerVector.erase.range <- function(){
+        x <- y <- 1:10
+        names(y) <- letters[1:10]
+        res <- integer_erase_range( x, y )
+        checkEquals( res[[1L]], c(1:5, 10L) , msg = "IntegerVector erase range unnamed" )
+
+        z <- y[-(6:9)]
+        checkEquals( res[[2L]], z , msg = "IntegerVector erase range named" )
+    }
+
+    test.IntegerVector.erase.range.2 <- function(){
+        x <- y <- 1:10
+        names(y) <- letters[1:10]
+        res <- integer_erase_range_2( x, y )
+        checkEquals( res[[1L]], 1L , msg = "IntegerVector erase range 2 unnamed" )
+        checkEquals( res[[2L]], c("a" = 1L ) , msg = "IntegerVector erase range 2 named" )
+    }
+
+
+    test.IntegerVector.erase.range.2 <- function(){
+        x <- y <- as.list(1:10)
+        names(y) <- letters[1:10]
+        res <- List_erase_range_2( x, y )
+        checkEquals( res[[1L]], list( 1L ) , msg = "List erase range 2 unnamed" )
+        checkEquals( res[[2L]], list("a" = 1L ) , msg = "List erase range 2 named" )
+    }
+
+    test.IntegerVector.erase2 <- function(){
+        checkEquals( integer_erase2(1:4), c(1L, 3L, 4L), msg = "IntegerVector erase2" )
+
+        x <- 1:4
+        names(x) <- letters[1:4]
+
+        target <- c(1L, 3L, 4L)
+        names(target) <- c( "a", "c", "d" )
+
+        checkEquals( integer_erase2(x), target, msg = "IntegerVector erase2" )
+    }
+
+    test.IntegerVector.fill <- function(){
+        fun <- integer_fill
+        x <- 1:10
+        checkEquals( fun(x), rep(10L, 10 ), msg = "IntegerVector.fill" )
+    }
+
+    test.IntegerVector.zero <- function( ){
+        fun <- integer_zero
+        checkEquals( fun(), integer(0), msg = "IntegerVector(0)" )
+    }
+
+    test.IntegerVector.create.zero <- function( ){
+        fun <- integer_create_zero
+        checkEquals( fun(), integer(0), msg = "IntegerVector::create()" )
+    }
+
+    test.IntegerVector.create <- function(){
+        fun <- integer_create_
+        checkEquals( fun(), list( c( 10L, 20L) , c(foo = 20L, bar = 30L) ),
+                    msg = "IntegerVector::create" )
+    }
+
+    test.IntegerVector.clone <- function(){
+        x <- 1:10
+        fun <- integer_clone_
+        y <- fun(x)
+        checkEquals( x, 1:10, msg = "clone" )
+        checkEquals( y, 10:1, msg = "clone" )
+    }
+
+
+
+
+
+    test.NumericVector <- function(){
+        funx <- numeric_
+        checkEquals( funx(), as.numeric(0:9), msg = "NumericVector(int)" )
+    }
+
+    test.NumericVector.REALSXP <- function(){
+        funx <- numeric_REALSXP
+        checkEquals( funx(as.numeric(0:9)), 2*0:9, msg = "NumericVector( REALSXP) " )
+    }
+
+
+    test.NumericVector.import <- function(){
+        funx <- numeric_import
+        checkEquals( funx(), 0:9, msg = "IntegerVector::import" )
+    }
+
+    test.NumericVector.import.transform <- function(){
+        funx <- numeric_importtransform
+        checkEquals( funx(), (0:9)^2, msg = "NumericVector::import_transform" )
+    }
+
+
+
+
+
+    test.List <- function(){
+        fun <- list_ctor
+        checkEquals( fun(), as.list( 2*0:9), msg = "GenericVector" )
+    }
+
+    test.List.template <- function(){
+        fun <- list_template_
+        checkEquals(fun(), list( "foo", 10L, 10.2, FALSE), msg = "GenericVector" )
+    }
+
+    test.List.VECSXP <- function(){
+        fun <- list_VECSXP_
+        checkEquals( fun(list(1,2)), list(1,2), msg = "GenericVector( VECSXP) " )
+    }
+
+    test.List.matrix.indexing <- function(){
+        fun <- list_matrix_indexing_1
+        ## a matrix of integer vectors
+        x <- structure( lapply( 1:16, function(x) seq.int(x) ), dim = c( 4, 4) )
+        checkEquals( fun(x), diag(x), msg = "matrix indexing 1" )
+
+        fun <- list_matrix_indexing_2
+        checkEquals(diag(fun(x)), rep(list("foo"), 4) , msg = "matrix indexing lhs" )
+
+        ## drop dimensions
+        dim(x) <- NULL
+        checkException( fun(x) , msg = "not a matrix" )
+    }
+
+    test.List.Dimension.constructor <- function(){
+        fun <- list_Dimension_constructor_1
+        checkEquals(fun(),
+                    rep(list(NULL),5) ,
+                    msg = "List( Dimension(5))" )
+
+        fun <- list_Dimension_constructor_2
+        checkEquals(fun(),
+                    structure( rep( list(NULL), 25), dim = c(5,5) ),
+                    msg = "List( Dimension(5,5))" )
+
+        fun <- list_Dimension_constructor_3
+        checkEquals(fun(),
+                    array( rep(list(NULL)), dim = c(2,3,4) ) ,
+                    msg = "List( Dimension(2,3,4))" )
+    }
+
+    test.List.iterator <- function() {
+        fun <- list_iterator_
+        data <- list( x = letters, y = LETTERS, z = 1:4 )
+        checkEquals(fun( data, length ),
+                    list( x = 26L, y = 26L, z = 4L),
+                    msg = "c++ version of lapply" )
+    }
+
+    test.List.name.indexing <- function(){
+        fun <- list_name_indexing
+        d <- data.frame( x = 1:10, y = letters[1:10] )
+        checkEquals( fun( d ), sum(1:10), msg = "List names based indexing" )
+    }
+
+    test.List.push.back <- function(){
+        fun <- list_push_back
+        d <- list( x = 1:10, y = letters[1:10] )
+        checkEquals(fun( d ),
+                    list( x = 1:10, y = letters[1:10], 10L, foo = "bar" ),
+                    msg = "List.push_back" )
+    }
+
+    test.List.push.front <- function(){
+        fun <- list_push_front
+        d <- list( x = 1:10, y = letters[1:10] )
+        checkEquals(fun(d),
+                    list( foo = "bar", 10L, x = 1:10, y = letters[1:10] ),
+                    msg = "List.push_front" )
+    }
+
+    test.List.erase <- function(){
+        fun <- list_erase
+        d <- list( x = 1:10, y = letters[1:10] )
+        checkEquals(fun(d),
+                    list( y = letters[1:10] ),
+                    msg = "List.erase" )
+    }
+
+    test.List.erase.range <- function(){
+        fun <- list_erase_range
+        d <- list( x = 1:10, y = letters[1:10], z = 1:10 )
+        checkEquals(fun(d),
+                    list( z = 1:10 ),
+                    msg = "List.erase (range version)" )
+    }
+
+    test.List.implicit.push.back <- function(){
+        fun <- list_implicit_push_back
+        checkEquals( fun(), list( foo = 10, bar = "foobar" ), msg = "List implicit push back" )
+    }
+
+    test.List.create <- function(){
+        fun <- list_create_
+        checkEquals( fun(), list( list( 10L, "foo" ), list(foo = 10L, bar =  TRUE ) ),
+                    msg = "List::create" )
+    }
+
+    test.List.stdcomplex <- function(){
+        fun <- list_stdcomplex
+        checkEquals(
+            fun(),
+            list( float = rep(0+0i, 10), double = rep(0+0i, 10) ),
+            msg = "range wrap over std::complex" )
+    }
+
+
+
+
+
+    test.CharacterVector <- function(){
+        fun <- character_ctor
+        checkEquals( fun(), rep("foo",10L), msg = "CharacterVector" )
+    }
+
+    test.CharacterVector.STRSXP <- function(){
+        fun <- character_STRSXP_
+        checkEquals( fun(letters), paste(letters,collapse="" ), msg = "CharacterVector( STRSXP) " )
+    }
+
+
+    test.CharacterVector.plusequals <- function(){
+        fun <- character_plusequals
+        checkEquals( fun(), c("foobar", "barfoobar"), msg = "StringProxy::operator+=" )
+    }
+
+    test.CharacterVector.matrix.indexing <- function() {
+        fun <- character_matrix_indexing
+        x <- matrix( as.character(1:16), ncol = 4 )
+        checkEquals( fun(x), paste(diag(x), collapse = ""), msg = "matrix indexing" )
+
+        y <- as.vector( x )
+        checkException( fun(y) , msg = "not a matrix" )
+
+        fun <- character_matrix_indexing_lhs
+        checkEquals( diag(fun(x)), rep("foo", 4) , msg = "matrix indexing lhs" )
+    }
+
+    test.CharacterVector.matrix.row.iteration <- function() {
+        x <- matrix(letters[1:16], nrow = 4)
+
+        fun <- character_matrix_row_iteration_incr
+        checkEquals( fun(x), "bfjn", msg = "matrix row iteration post-incr" )
+
+        fun <- character_matrix_row_iteration_decr
+        checkEquals( fun(x), "njf", msg = "matrix row iteration post-decr" )
+    }
+
+    test.CharacterVector.assign <- function(){
+        fun <- character_assign1
+        checkEquals( fun(), c("foo", "bar", "bling", "boom"), msg = "assign(char**, char**)" )
+
+        fun <- character_assign2
+        checkEquals( fun(), c("foo", "bar", "bling", "boom"), msg = "assign(char**, char**)" )
+
+    }
+
+    test.CharacterVector.range.constructors <- function(){
+        fun <- character_range_ctor1
+        checkEquals( fun(), c("foo", "bar", "bling", "boom"), msg = "assign(char**, char**)" )
+
+        fun <- character_range_ctor2
+        checkEquals( fun(), c("foo", "bar", "bling", "boom"), msg = "assign(char**, char**)" )
+    }
+
+    test.CharacterVector.Dimension.constructor <- function(){
+        fun <- character_dimension_ctor1
+        checkEquals(fun(),
+                    character(5),
+                    msg = "CharacterVector( Dimension(5))" )
+
+        fun <- character_dimension_ctor2
+        checkEquals(fun(),
+                    matrix( "", ncol = 5, nrow = 5),
+                    msg = "CharacterVector( Dimension(5,5))" )
+
+        fun <- character_dimension_ctor3
+        checkEquals(fun(),
+                    array( "", dim = c(2,3,4) ) ,
+                    msg = "CharacterVector( Dimension(2,3,4))" )
+    }
+
+    test.CharacterVector.iterator <- function(){
+        fun <- character_iterator1
+        checkEquals(fun(letters),
+                    paste(letters, collapse=""),
+                    msg = "CharacterVector::iterator explicit looping" )
+
+        fun <- character_iterator2
+        checkEquals(fun(letters),
+                    paste(letters, collapse=""),
+                    msg = "CharacterVector::iterator using std::accumulate" )
+    }
+    
+    test.CharacterVector.iterator <- function(){
+        fun <- character_const_iterator1
+        checkEquals(fun(letters),
+                    paste(letters, collapse=""),
+                    msg = "CharacterVector::iterator explicit looping" )
+
+        fun <- character_const_iterator2
+        checkEquals(fun(letters),
+                    paste(letters, collapse=""),
+                    msg = "CharacterVector::iterator using std::accumulate" )
+    }
+
+    test.CharacterVector.reverse <- function(){
+        fun <- character_reverse
+        x <- c("foo", "bar", "bling")
+        x <- fun(x)
+        checkEquals( x, c("bling", "bar", "foo"), msg = "reverse" )
+        x <- fun(x)
+        checkEquals( x, c("foo", "bar", "bling"), msg = "reverse" )
+    }
+
+    test.CharacterVector.names.indexing <- function(){
+        fun <- character_names_indexing
+        x <- c( foo = "foo", bar = "bar" )
+        checkEquals( fun(x), "foo", msg = "CharacterVector names based indexing" )
+    }
+
+    test.CharacterVector.listOf <- function() {
+        fun <- character_listOf
+        checkEquals(fun(list(foo=c("tic","tac","toe"),
+                             bar=c("Eenie","Meenie","Moe"))),
+                    list(foo="tictactoe", bar="EenieMeenieMoe"),
+                    msg="CharacterVector from list")
+    }
+
+    test.CharacterVector.find <- function(){
+        fun <- character_find_
+        checkEquals( fun( c("bar", "foo", "bob") ), 1L, msg = "support for std::find in CharacterVector" )
+    }
+
+    test.CharacterVector.create <- function(){
+        fun <- character_create_
+        checkEquals( fun(), list( c( "foo", "bar" ), c(foo = "bar", bar = "foo" ) ),
+                    msg = "CharacterVector::create" )
+    }
+
+    test.ComplexVector.binary.operators <- function(){
+        fun <- complex_binary_sugar
+        x <- (1+1i) * 1:10
+        y <- (2-3i) * 1:10
+
+        checkEquals(
+            fun(x, y),
+            list(
+                "+" = x + y,
+                "-" = x - y,
+                "*" = x * y,
+                "/" = x / y
+                ), msg = "complex binary operators" )
+    }
+
+    test.ComplexVector.binary.operators <- function(){
+        fun <- List_extract
+        checkEquals( fun(list(TRUE, 4)), list(TRUE, 4L) )
+        checkEquals( fun(list(FALSE, -4L)), list(FALSE,-4L) )
+    }
+
+    test.factors <- function(){
+        fun <-    factors
+        x <- as.factor( c("c3", "c2", "c1") )
+        y <- fun(x)
+        checkEquals( y, as.character(x) )
+    }
+
+    test.IntegerVector_int_init <- function(){
+        fun <-    IntegerVector_int_init
+        checkEquals( fun(), c(4L,4L), msg = "IntegerVector int init regression test" )
+    }
+
+    test.containsElementNamed <- function() {
+        fun <- containsElementNamed
+
+        x <- list( foo = 2, bla = 1:10 )
+
+        checkEquals(fun(x, "foo"), TRUE, msg = "containsElementNamed with element")
+        checkEquals(fun(x, "bar"), FALSE, msg = "containsElementNamed without element")
+        checkEquals(fun(x, ""), FALSE, msg = "containsElementNamed with empty element")
+    }
+
+    test.CharacterVector.equality.operator <- function(){
+        res <- CharacterVectorEqualityOperator( letters, letters )
+        checkEquals( res,
+                    list( rep( TRUE, 26L ), rep( FALSE, 26L) ),
+                    msg = 'CharacterVector element equality operator' )
+    }
+
+    test.List.rep.ctor <- function(){
+        x <- 1:10
+        res <- List_rep_ctor(x)
+        expected <- rep( list(x), 3 )
+        checkEquals( res, expected, msg = "List rep constructor" )
+    }
+
+    test.std.vector.double <- function() {
+        fun <- stdVectorDouble
+        x <- seq(1.0, 5.0, by=1.0)
+        checkEquals(fun(x), 5, msg = "automatic conversion of stdVectorDouble")
+    }
+
+    test.std.vector.double.const <- function() {
+        fun <- stdVectorDoubleConst
+        x <- seq(1.0, 5.0, by=1.0)
+        checkEquals(fun(x), 5, msg = "automatic conversion of stdVectorDoubleConst")
+    }
+
+    test.std.vector.double.ref <- function() {
+        fun <- stdVectorDoubleRef
+        x <- seq(1.0, 5.0, by=1.0)
+        checkEquals(fun(x), 5, msg = "automatic conversion of stdVectorDoubleRef")
+    }
+
+    test.std.vector.double.const.ref <- function() {
+        fun <- stdVectorDoubleConstRef
+        x <- seq(1.0, 5.0, by=1.0)
+        checkEquals(fun(x), 5, msg = "automatic conversion of stdVectorDoubleConstRef")
+    }
+
+    test.std.vector.int <- function() {
+        fun <- stdVectorInt
+        x <- seq(1L, 5L, by=1L)
+        checkEquals(fun(x), 5, msg = "automatic conversion of stdVectorInt")
+    }
+
+    test.std.vector.int.const <- function() {
+        fun <- stdVectorIntConst
+        x <- seq(1L, 5L, by=1L)
+        checkEquals(fun(x), 5, msg = "automatic conversion of stdVectorIntConst")
+    }
+
+    test.std.vector.int.ref <- function() {
+        fun <- stdVectorIntRef
+        x <- seq(1L, 5L, by=1L)
+        checkEquals(fun(x), 5, msg = "automatic conversion of stdVectorIntRef")
+    }
+
+    test.std.vector.int.const.ref <- function() {
+        fun <- stdVectorIntConstRef
+        x <- seq(1L, 5L, by=1L)
+        checkEquals(fun(x), 5, msg = "automatic conversion of stdVectorIntConstRef")
+    }
+
+    test.character.vector.const.proxy <- function(){
+        res <- character_vector_const_proxy( "fooo" )
+        checkEquals( res, "fooo", msg = "CharacterVector const proxy. #32" )
+    }
+    
+    test.CharacterVector.test.const.proxy <- function(){
+        res <- CharacterVector_test_const_proxy( letters )
+        checkEquals( res, letters )
+    }
+  
+    test.sort <- function() {
+        num <- setNames( c(1, -1, 4, NA, 5, NaN), letters[1:5] )
+        checkIdentical( sort_numeric(num), sort(num, na.last=TRUE) )
+        int <- as.integer(num)
+        checkIdentical( sort_integer(int), sort(int, na.last=TRUE) )
+        char <- setNames( sample(letters, 5), LETTERS[1:5] )
+        checkIdentical( sort_character(char), sort(char, na.last=TRUE) )
+        lgcl <- as.logical(int)
+        checkIdentical( sort_logical(lgcl), sort(lgcl, na.last=TRUE) )
+    }
+    
+    test.sort_desc <- function() {
+        num <- setNames(c(1, -1, 4, NA, 5, NaN), letters[1:5])
+        checkIdentical(
+            sort_numeric_desc(num), 
+            sort(num, decreasing = TRUE, na.last = FALSE)
+        )
+        
+        int <- as.integer(num)
+        checkIdentical(
+            sort_integer_desc(int), 
+            sort(int, decreasing = TRUE, na.last = FALSE) 
+        )
+        
+        char <- setNames(sample(letters, 5), LETTERS[1:5])
+        checkIdentical(
+            sort_character_desc(char), 
+            sort(char, decreasing = TRUE, na.last = FALSE) 
+        )
+        
+        lgcl <- as.logical(int)
+        checkIdentical(
+            sort_logical_desc(lgcl), 
+            sort(lgcl, decreasing = TRUE, na.last = FALSE) 
+        )
+    }
+    
+    test.List.assign.SEXP <- function() {
+        l <- list(1, 2, 3)
+        other <- list_sexp_assign(l)
+        checkIdentical(l, other)
+    }
+
+    test.logical.vector.from.bool <- function() {
+        checkIdentical(logical_vector_from_bool(), TRUE)
+    }
+
+    test.logical.vector.from.bool.assign <- function() {
+        checkIdentical(logical_vector_from_bool_assign(), TRUE)
+    }
+    
+    test.noprotect_vector <- function(){
+        x <- rnorm(10)
+        checkIdentical( noprotect_vector(x), 10L )
+    }
+    
+    test.noprotect_matrix <- function(){
+        x <- matrix(rnorm(10), nrow=2)
+        checkIdentical( noprotect_matrix(x), 2L )
+    }
+
+    test.IntegerVector.accessor.with.bounds.checking <- function() {
+        x <- seq(1L, 5L, by=1L)
+        checkEquals(vec_access_with_bounds_checking(x, 3), 4)
+        checkException(vec_access_with_bounds_checking(x, 5) , msg = "index out of bounds not detected" )
+        checkException(vec_access_with_bounds_checking(x, -1) , msg = "index out of bounds not detected" )
+    }
+
+    test.NumericVector.print <- function() {
+        v <- c(1.1, 2.2, 3.3, 4.4)
+        s <- vec_print_numeric(v)
+        checkEquals(s, "1.1 2.2 3.3 4.4")
+    }
+
+    test.IntegerVector.print <- function() {
+        v <- c(1, 2, 3, 4)
+        s <-vec_print_integer(v)
+        checkEquals(s, "1 2 3 4")
+    }
+
+    test.CharacterVector.print <- function() {
+        v <- c("a", "b", "c", "d")
+        s <- vec_print_character(v)
+        checkEquals(s, '"a" "b" "c" "d"')
+    }
+
+    test.IntegerVector.subset.under.gc <- function() {
+        x <- 1:1E6
+        y <- 1:1E6
+        gctorture(TRUE)
+        z <- vec_subset(x, y)
+        gctorture(FALSE)
+        checkEquals(x[y], z)
+    }
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.as.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.as.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.as.R	(revision 2476)
@@ -0,0 +1,99 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2010 - 2014  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("as.cpp")
+
+    test.as.int <- function(){
+        checkEquals( as_int(10), 10L, msg = "as<int>( REALSXP ) " )
+        checkEquals( as_int(10L), 10L, msg = "as<int>( INTSXP ) " )
+        checkEquals( as_int(as.raw(10L)), 10L, msg = "as<int>( RAWSXP ) " )
+        checkEquals( as_int(TRUE), 1L, msg = "as<int>( LGLSXP ) " )
+    }
+
+    test.as.double <- function(){
+        checkEquals( as_double(10), 10.0, msg = "as<double>( REALSXP ) " )
+        checkEquals( as_double(10L), 10.0, msg = "as<double>( INTSXP ) " )
+        checkEquals( as_double(as.raw(10L)), 10.0, msg = "as<double>( RAWSXP ) " )
+        checkEquals( as_double(TRUE), 1.0, msg = "as<double>( LGLSXP ) " )
+    }
+
+    test.as.raw <- function(){
+        checkEquals( as_raw(10), as.raw(10), msg = "as<Rbyte>( REALSXP ) " )
+        checkEquals( as_raw(10L), as.raw(10), msg = "as<Rbyte>( INTSXP ) " )
+        checkEquals( as_raw(as.raw(10L)), as.raw(10), msg = "as<Rbyte>( RAWSXP ) " )
+        checkEquals( as_raw(TRUE), as.raw(1), msg = "as<Rbyte>( LGLSXP ) " )
+    }
+
+    test.as.bool <- function(){
+        checkEquals( as_bool(10), as.logical(10), msg = "as<bool>( REALSXP ) " )
+        checkEquals( as_bool(10L), as.logical(10), msg = "as<bool>( INTSXP ) " )
+        checkEquals( as_bool(as.raw(10L)), as.logical(10), msg = "as<bool>( RAWSXP ) " )
+        checkEquals( as_bool(TRUE), as.logical(1), msg = "as<bool>( LGLSXP ) " )
+    }
+
+    test.as.string <- function(){
+        checkEquals( as_string("foo"), "foo", msg = "as<string>( STRSXP ) " )
+    }
+
+    test.as.vector.int <- function(){
+        checkEquals( as_vector_int(1:10), 1:10 , msg = "as<vector<int>>( INTSXP ) " )
+        checkEquals( as_vector_int(as.numeric(1:10)), 1:10 , msg = "as<vector<int>>( REALSXP ) " )
+        checkEquals( as_vector_int(as.raw(1:10)), 1:10 , msg = "as<vector<int>>( RAWSXP ) " )
+        checkEquals( as_vector_int(c(TRUE,FALSE)), 1:0 , msg = "as<vector<int>>( LGLSXP ) " )
+    }
+
+    test.as.vector.double <- function(){
+        checkEquals( as_vector_double(1:10), as.numeric(1:10) , msg = "as<vector<double>>( INTSXP ) " )
+        checkEquals( as_vector_double(as.numeric(1:10)), as.numeric(1:10) , msg = "as<vector<double>>( REALSXP ) " )
+        checkEquals( as_vector_double(as.raw(1:10)), as.numeric(1:10), msg = "as<vector<double>>( RAWSXP ) " )
+        checkEquals( as_vector_double(c(TRUE,FALSE)), c(1.0, 0.0) , msg = "as<vector<double>>( LGLSXP ) " )
+    }
+
+    test.as.vector.raw <- function(){
+        checkEquals( as_vector_raw(1:10), as.raw(1:10) , msg = "as<vector<Rbyte>>( INTSXP ) " )
+        checkEquals( as_vector_raw(as.numeric(1:10)), as.raw(1:10) , msg = "as<vector<Rbyte>>( REALSXP ) " )
+        checkEquals( as_vector_raw(as.raw(1:10)), as.raw(1:10) , msg = "as<vector<Rbyte>>( RAWSXP ) " )
+        checkEquals( as_vector_raw(c(TRUE,FALSE)), as.raw(1:0) , msg = "as<vector<Rbyte>>( LGLSXP ) " )
+    }
+
+    test.as.vector.bool <- function(){
+        checkEquals( as_vector_bool(0:10), as.logical(0:10) , msg = "as<vector<bool>>( INTSXP ) " )
+        checkEquals( as_vector_bool(as.numeric(0:10)), as.logical(0:10) , msg = "as<vector<bool>>( REALSXP ) " )
+        checkEquals( as_vector_bool(as.raw(0:10)), as.logical(0:10) , msg = "as<vector<bool>>( RAWSXP ) " )
+        checkEquals( as_vector_bool(c(TRUE,FALSE)), as.logical(1:0) , msg = "as<vector<bool>>( LGLSXP ) " )
+    }
+
+
+    test.as.vector.string <- function(){
+        checkEquals( as_vector_string(letters), letters , msg = "as<vector<string>>( STRSXP ) " )
+    }
+
+    test.as.deque.int <- function(){
+        checkEquals( as_deque_int(1:10), 1:10 , msg = "as<deque<int>>( INTSXP ) " )
+    }
+
+    test.as.list.int <- function(){
+        checkEquals( as_list_int(1:10), 1:10 , msg = "as<list<int>>( INTSXP ) " )
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Matrix.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Matrix.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Matrix.R	(revision 2476)
@@ -0,0 +1,367 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2010 - 2014  Dirk Eddelbuettel, Romain Francois and Kevin Ushey
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("Matrix.cpp")
+
+    test.List.column <- function(){
+	x <- matrix( 1:16+.5, nc = 4 )
+	res <- runit_Row_Column_sugar( x )
+	target <- list(
+	    x[1,],
+	    x[,1],
+	    x[2,],
+	    x[,2],
+	    x[2,] + x[,2]
+	    )
+	checkEquals( res, target, msg = "column and row as sugar" )
+
+    }
+
+    test.NumericMatrix <- function(){
+	x <- matrix( 1:16 + .5, ncol = 4 )
+	checkEquals( matrix_numeric(x), sum(diag(x)), msg = "matrix indexing" )
+
+	y <- as.vector( x )
+	checkException( matrix_numeric(y) , msg = "not a matrix" )
+
+    }
+
+    test.CharacterMatrix <- function(){
+	x <- matrix( letters[1:16], ncol = 4 )
+	checkEquals( matrix_character(x), paste( diag(x), collapse = "" ) )
+    }
+
+    test.GenericMatrix <- function( ){
+	g <- function(y){
+            sapply( y, function(x) seq(from=x, to = 16) )
+	}
+	x <- matrix( g(1:16), ncol = 4 )
+	checkEquals( matrix_generic(x), g(diag(matrix(1:16,ncol=4))), msg = "GenericMatrix" )
+    }
+
+    test.IntegerMatrix.diag <- function(){
+	expected <- matrix( 0L, nrow = 5, ncol = 5 )
+	diag( expected ) <- 1L
+	checkEquals( matrix_integer_diag(), expected, msg = "IntegerMatrix::diag" )
+    }
+
+    test.CharacterMatrix.diag <- function(){
+	expected <- matrix( "", nrow = 5, ncol = 5 )
+	diag( expected ) <- "foo"
+	checkEquals( matrix_character_diag(), expected, msg = "CharacterMatrix::diag" )
+    }
+
+    test.NumericMatrix.Ctors <- function(){
+	x <- matrix(0, 3, 3)
+	checkEquals( matrix_numeric_ctor1(), x, msg = "matrix from single int" )
+
+	x <- matrix(0, 3, 3)
+	checkEquals( matrix_numeric_ctor2(), x, msg = "matrix from two int" )
+    }
+
+    test.IntegerVector.matrix.indexing <- function(){
+        x <- matrix( 1:16, ncol = 4 )
+        checkEquals( integer_matrix_indexing(x), sum(diag(x)), msg = "matrix indexing" )
+
+        checkEquals( diag(integer_matrix_indexing_lhs(x)), 2*0:3, msg = "matrix indexing lhs" )
+
+        y <- as.vector( x )
+        checkException( integer_matrix_indexing_lhs(y) , msg = "not a matrix" )
+    }
+
+    test.NumericMatrix.row <- function(){
+	x <- matrix( 1:16 + .5, ncol = 4 )
+	checkEquals( runit_NumericMatrix_row( x ), sum( x[1,] ), msg = "iterating over a row" )
+    }
+
+    test.NumericMatrix.row.const <- function(){
+	x <- matrix( 1:16 + .5, ncol = 4 )
+	checkEquals( runit_NumericMatrix_row_const( x ), sum( x[1,] ), msg = "iterating over a row" )
+    }
+
+    test.CharacterMatrix.row <- function(){
+	m <- matrix( letters, ncol = 2 )
+	checkEquals( runit_CharacterMatrix_row(m), paste( m[1,], collapse = "" ), msg = "CharacterVector::Row" )
+    }
+
+    test.CharacterMatrix.row.const <- function(){
+	m <- matrix( letters, ncol = 2 )
+	checkEquals( runit_CharacterMatrix_row_const(m), paste( m[1,], collapse = "" ), msg = "CharacterVector::Row" )
+    }
+
+    test.List.row <- function(){
+	m <- lapply( 1:16, function(i) seq(from=1, to = i ) )
+	dim( m ) <- c( 4, 4 )
+	checkEquals( runit_GenericMatrix_row( m ), 1 + 0:3*4, msg = "List::Row" )
+    }
+
+    test.List.row.const <- function(){
+	m <- lapply( 1:16, function(i) seq(from=1, to = i ) )
+	dim( m ) <- c( 4, 4 )
+	checkEquals( runit_GenericMatrix_row_const( m ), 1 + 0:3*4, msg = "List::Row" )
+    }
+
+    test.NumericMatrix.column <- function(){
+	x <- matrix( 1:16 + .5, ncol = 4 )
+	checkEquals( runit_NumericMatrix_column( x ), sum( x[,1] ) , msg = "iterating over a column" )
+    }
+
+    test.NumericMatrix.column.const <- function(){
+	x <- matrix( 1:16 + .5, ncol = 4 )
+	checkEquals( runit_NumericMatrix_column_const( x ), sum( x[,1] ) , msg = "iterating over a column" )
+    }
+
+    test.NumericMatrix.cumsum <- function(){
+	x <- matrix( 1:8 + .5, ncol = 2 )
+	checkEquals( runit_NumericMatrix_cumsum( x ), t(apply(x, 1, cumsum)) , msg = "cumsum" )
+    }
+
+    test.CharacterMatrix.column <- function(){
+	m <- matrix( letters, ncol = 2 )
+	checkEquals( runit_CharacterMatrix_column(m), paste( m[,1], collapse = "" ), msg = "CharacterVector::Column" )
+    }
+
+    test.CharacterMatrix.column.const <- function(){
+	m <- matrix( letters, ncol = 2 )
+	checkEquals( runit_CharacterMatrix_column_const(m), paste( m[,1], collapse = "" ), msg = "CharacterVector::Column" )
+    }
+
+    test.List.column <- function(){
+	m <- lapply( 1:16, function(i) seq(from=1, to = i ) )
+	dim( m ) <- c( 4, 4 )
+	checkEquals( runit_GenericMatrix_column( m ), 1:4, msg = "List::Column" )
+    }
+
+    test.List.column.const <- function(){
+	m <- lapply( 1:16, function(i) seq(from=1, to = i ) )
+	dim( m ) <- c( 4, 4 )
+	checkEquals( runit_GenericMatrix_column_const( m ), 1:4, msg = "List::Column" )
+    }
+
+    test.NumericMatrix.colsum <- function( ){
+        probs <- matrix(1:12,nrow=3)
+        checkEquals( runit_NumericMatrix_colsum( probs ), t(apply(probs,1,cumsum)) )
+    }
+
+    test.NumericMatrix.rowsum <- function( ){
+        probs <- matrix(1:12,nrow=3)
+        checkEquals( runit_NumericMatrix_rowsum( probs ), apply(probs,2,cumsum) )
+    }
+
+    test.NumericMatrix.SubMatrix <- function( ){
+        target <- rbind( c(3,4,5,5), c(3,4,5,5), 0 )
+        checkEquals( runit_SubMatrix(), target, msg = "SubMatrix" )
+    }
+
+    test.NumericMatrix.opequals <- function() {
+        m <- matrix(1:4, nrow=2)
+        checkEquals(m, matrix_opequals(m))
+    }
+
+    test.NumericMatrix.rownames.colnames.proxy <- function() {
+        m <- matrix(as.numeric(1:4), nrow = 2)
+        runit_rownames_colnames_proxy(m, letters[1:2], LETTERS[1:2])
+        checkEquals(rownames(m), letters[1:2])
+        checkEquals(colnames(m), LETTERS[1:2])
+        checkException(runit_rownames_colnames_proxy(m, letters[1:3], letters[1:3]))
+        checkException(runit_rownames_colnames_proxy(m, letters[1:2], NULL))
+
+        m <- matrix(as.numeric(1:9), nrow = 3)
+        runit_rownames_proxy(m)
+        checkEquals(rownames(m), c("A", "B", "C"))
+        checkEquals(colnames(m), NULL)
+    }
+
+    test.NumericMatrix.no.init <- function() {
+      m <- runit_no_init_matrix()
+      checkEquals(m, matrix(c(0, 1, 2, 3), nrow = 2))
+    }
+
+    test.NumericMatrix.const.Column <- function(){
+      m <- matrix(as.numeric(1:9), nrow = 3)
+      res <- runit_const_Matrix_column(m)
+      checkEquals( m[,1], m[,2] )
+    }
+
+    test.IntegerMatrix.accessor.with.bounds.checking <- function() {
+        m <- matrix(seq(1L, 12, by=1L), nrow=4L, ncol=3L)
+        checkEquals(mat_access_with_bounds_checking(m, 0, 0), 1)
+        checkEquals(mat_access_with_bounds_checking(m, 1, 2), 10)
+        checkEquals(mat_access_with_bounds_checking(m, 3, 2), 12)
+        checkException(mat_access_with_bounds_checking(m, 4, 2) , msg = "index out of bounds not detected" )
+        checkException(mat_access_with_bounds_checking(m, 3, 3) , msg = "index out of bounds not detected" )
+        checkException(mat_access_with_bounds_checking(m, 3, -1) , msg = "index out of bounds not detected" )
+        checkException(mat_access_with_bounds_checking(m, -1, 2) , msg = "index out of bounds not detected" )
+        checkException(mat_access_with_bounds_checking(m, -1, -1) , msg = "index out of bounds not detected" )
+    }
+
+    test.IntegerMatrix.transpose <- function() {
+        M <- matrix(1:12, 3, 4)
+        checkEquals(transposeInteger(M), t(M), msg="integer transpose")
+        rownames(M) <- letters[1:nrow(M)]
+        checkEquals(transposeInteger(M), t(M), msg="integer transpose with rownames")
+        colnames(M) <- LETTERS[1:ncol(M)]
+        checkEquals(transposeInteger(M), t(M), msg="integer transpose with row and colnames")
+    }
+
+    test.NumericMatrix.transpose <- function() {
+        M <- matrix(1.0 * (1:12), 3, 4)
+        checkEquals(transposeNumeric(M), t(M), msg="numeric transpose")
+        rownames(M) <- letters[1:nrow(M)]
+        checkEquals(transposeNumeric(M), t(M), msg="numeric transpose with rownames")
+        colnames(M) <- LETTERS[1:ncol(M)]
+        checkEquals(transposeNumeric(M), t(M), msg="numeric transpose with row and colnames")
+    }
+
+    test.CharacterMatrix.transpose <- function() {
+        M <- matrix(as.character(1:12), 3, 4)
+        checkEquals(transposeCharacter(M), t(M), msg="character transpose")
+        rownames(M) <- letters[1:nrow(M)]
+        checkEquals(transposeCharacter(M), t(M), msg="character transpose with rownames")
+        colnames(M) <- LETTERS[1:ncol(M)]
+        checkEquals(transposeCharacter(M), t(M), msg="character transpose with row and colnames")
+    }
+    
+    test.Matrix.Scalar.op <- function() {
+        M <- matrix(c(1:12), 3, 4)
+        checkEquals(matrix_scalar_plus(M, 2), M + 2, msg="matrix + scalar")
+        checkEquals(matrix_scalar_plus2(M, 2), 2 + M, msg="scalar + matrix")
+        checkEquals(matrix_scalar_divide(M, 2), M / 2, msg="matrix / scalar")
+        checkEquals(matrix_scalar_divide2(M, 2), 2 / M, msg="scalar / matrix")
+    }
+
+    ## 23 October 2016
+    ## eye function
+    test.Matrix.eye <- function() {
+        
+        checkEquals(
+            dbl_eye(3),
+            diag(1.0, 3, 3),
+            "eye - numeric"
+        )
+        
+        checkEquals(
+            int_eye(3),
+            diag(1L, 3, 3),
+            "eye - integer"
+        )
+        
+        checkEquals(
+            cx_eye(3),
+            diag(1.0 + 0i, 3, 3),
+            "eye - complex"
+        )
+        
+        ## diag(TRUE, 3, 3) was registering as 
+        ## a numeric matrix on Travis for some reason
+        mat <- matrix(FALSE, 3, 3)
+        diag(mat) <- TRUE
+        checkEquals(
+            lgl_eye(3),
+            mat,
+            "eye - logical"
+        )
+    }
+    
+    ## ones function
+    test.Matrix.ones <- function() {
+        
+        checkEquals(
+            dbl_ones(3),
+            matrix(1.0, 3, 3),
+            "ones - numeric"
+        )
+        
+        checkEquals(
+            int_ones(3),
+            matrix(1L, 3, 3),
+            "ones - integer"
+        )
+        
+        checkEquals(
+            cx_ones(3),
+            matrix(1.0 + 0i, 3, 3),
+            "ones - complex"
+        )
+        
+        checkEquals(
+            lgl_ones(3),
+            matrix(TRUE, 3, 3),
+            "ones - logical"
+        )
+    }
+    
+    ## zeros function
+    test.Matrix.zeros <- function() {
+        
+        checkEquals(
+            dbl_zeros(3),
+            matrix(0.0, 3, 3),
+            "zeros - numeric"
+        )
+        
+        checkEquals(
+            int_zeros(3),
+            matrix(0L, 3, 3),
+            "zeros - integer"
+        )
+        
+        checkEquals(
+            cx_zeros(3),
+            matrix(0.0 + 0i, 3, 3),
+            "zeros - complex"
+        )
+        
+        checkEquals(
+            lgl_zeros(3),
+            matrix(FALSE, 3, 3),
+            "zeros - logical"
+        )
+    }
+    
+    
+    test.Matrix.diagfill <- function() {
+        
+        checkEquals(num_diag_fill(diag(1.0, 2, 4), 0.0),
+                    matrix(0.0, 2, 4),
+                    msg = "diagonal fill - case: n < p")
+        
+        checkEquals(num_diag_fill(diag(1.0, 4, 2), 0.0),
+                    matrix(0.0, 4, 2),
+                    msg = "diagonal fill - case: n > p")
+        
+        checkEquals(num_diag_fill(diag(1.0, 3, 3), 0.0),
+                    matrix(0.0, 3, 3),
+                    msg = "diagonal fill - case: n = p")
+        
+        m <- matrix("", 2, 4)
+        diag(m) <- letters[1:2]
+        
+        checkEquals(char_diag_fill(m, ""), 
+                    matrix("", 2, 4),
+                    msg = "diagonal fill - char")
+        
+        
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.wrap.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.wrap.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.wrap.R	(revision 2476)
@@ -0,0 +1,203 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2010 - 2014  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("wrap.cpp") 
+
+    test.wrap.map.string.int <- function(){
+        checkEquals(map_string_int(),
+                    c( a = 200L, b = 100L, c = 300L),
+                    msg = "wrap( map<string,int>) " )
+    }
+
+    test.wrap.map.string.double <- function(){
+        checkEquals(map_string_double(),
+                    c( a = 200, b = 100, c = 300),
+                    msg = "wrap( map<string,double>) " )
+    }
+
+    test.wrap.map.string.bool <- function(){
+        checkEquals(map_string_bool(),
+                    c( a = FALSE, b = TRUE, c = TRUE ),
+                    msg = "wrap( map<string,bool>) " )
+    }
+
+    test.wrap.map.string.Rbyte <- function(){
+        checkEquals(map_string_Rbyte(),
+                    c( a = as.raw(1), b = as.raw(0), c = as.raw(2) ),
+                    msg = "wrap( map<string,Rbyte>) " )
+    }
+
+    test.wrap.map.string.string <- function(){
+        checkEquals(map_string_string(),
+                    c( a = "bar", b = "foo", c = "bling" ),
+                    msg = "wrap( map<string,string>) " )
+    }
+
+    test.wrap.map.string.generic <- function(){
+        checkEquals(map_string_generic(),
+                    list( a = c(1L, 2L, 2L), b = c(1L, 2L), c = c(1L,2L,2L,2L) ) ,
+                    msg = "wrap( map<string,vector<int>>) " )
+    }
+
+    test.wrap.multimap.string.int <- function(){
+        checkEquals(multimap_string_int(),
+                    c( a = 200L, b = 100L, c = 300L),
+                    msg = "wrap( multimap<string,int>) ")
+    }
+
+    test.wrap.multimap.string.double <- function(){
+        checkEquals(multimap_string_double(),
+                    c( a = 200, b = 100, c = 300),
+                    msg = "wrap( multimap<string,double>) " )
+    }
+
+    test.wrap.multimap.string.bool <- function(){
+        checkEquals(multimap_string_bool(),
+                    c( a = FALSE, b = TRUE, c = TRUE ),
+                    msg = "wrap( multimap<string,bool>)")
+    }
+
+    test.wrap.multimap.string.Rbyte <- function(){
+        checkEquals(multimap_string_Rbyte(),
+                    c( a = as.raw(1), b = as.raw(0), c = as.raw(2) ),
+                    msg = "wrap( multimap<string,Rbyte>) " )
+    }
+
+    test.wrap.multimap.string.string <- function(){
+        checkEquals(multimap_string_string(),
+                    c( a = "bar", b = "foo", c = "bling" ),
+                    msg = "wrap( multimap<string,string>) " )
+    }
+
+    test.wrap.multimap.string.generic <- function(){
+        checkEquals(multimap_string_generic(),
+                    list( a = c(1L, 2L, 2L), b = c(1L, 2L), c = c(1L,2L,2L,2L) ) ,
+                    msg = "wrap( multimap<string,vector<int>>) " )
+    }
+
+    test.nonnull.const.char <- function() {
+        checkEquals(nonnull_const_char(),
+                    "foo",
+                    msg = "null const char*")
+    }
+
+    test.wrap.unordered.map.string.int <- function(){
+        res <- unordered_map_string_int()
+        checkEquals( res[["a"]], 200L,  msg = "wrap( tr1::unordered_map<string,int>) " )
+        checkEquals( res[["b"]], 100L,  msg = "wrap( tr1::unordered_map<string,int>) " )
+        checkEquals( res[["c"]], 300L,  msg = "wrap( tr1::unordered_map<string,int>) " )
+    }
+
+    test.wrap.unordered.map.rcpp.string.int <- function(){
+        res <- unordered_map_rcpp_string_int(c("a", "b", "c"))
+        checkEquals( res[["a"]], 200L,  msg = "wrap( tr1::unordered_map<Rcpp::String,int>) " )
+        checkEquals( res[["b"]], 100L,  msg = "wrap( tr1::unordered_map<Rcpp::String,int>) " )
+        checkEquals( res[["c"]], 300L,  msg = "wrap( tr1::unordered_map<Rcpp::String,int>) " )
+    }
+
+    test.unordered.set.rcpp.string <- function(){
+        checkEquals(unordered_set_rcpp_string(c("a", "b", "c", "b")),
+            c(FALSE, FALSE, FALSE, TRUE), msg = "wrap( tr1::unordered_set<Rcpp::String>) " )
+    }
+
+    test.wrap.unordered.map.string.double <- function(){
+        res <- unordered_map_string_double()
+        checkEquals( res[["a"]], 200,  msg = "wrap( tr1::unordered_map<string,double>) " )
+        checkEquals( res[["b"]], 100,  msg = "wrap( tr1::unordered_map<string,double>) " )
+        checkEquals( res[["c"]], 300,  msg = "wrap( tr1::unordered_map<string,double>) " )
+    }
+
+    test.wrap.unordered.map.string.bool <- function(){
+        res <- unordered_map_string_bool()
+        checkEquals( res[["a"]], FALSE,  msg = "wrap( tr1::unordered_map<string,bool>) " )
+        checkEquals( res[["b"]], TRUE ,  msg = "wrap( tr1::unordered_map<string,bool>) " )
+        checkEquals( res[["c"]], TRUE ,  msg = "wrap( tr1::unordered_map<string,bool>) " )
+    }
+
+    test.wrap.unordered.map.string.Rbyte <- function(){
+        res <- unordered_map_string_Rbyte()
+        checkEquals( res[["a"]], as.raw(1),  msg = "wrap( tr1::unordered_map<string,Rbyte>) " )
+        checkEquals( res[["b"]], as.raw(0),  msg = "wrap( tr1::unordered_map<string,Rbyte>) " )
+        checkEquals( res[["c"]], as.raw(2),  msg = "wrap( tr1::unordered_map<string,Rbyte>) " )
+    }
+
+    test.wrap.unordered.map.string.string <- function(){
+        res <- unordered_map_string_string()
+        checkEquals( res[["a"]], "bar"   ,  msg = "wrap( tr1::unordered_map<string,string>) " )
+        checkEquals( res[["b"]], "foo"   ,  msg = "wrap( tr1::unordered_map<string,string>) " )
+        checkEquals( res[["c"]], "bling" ,  msg = "wrap( tr1::unordered_map<string,string>) " )
+    }
+
+    test.wrap.unordered.map.string.generic <- function(){
+        res <- unordered_map_string_generic()
+        checkEquals( res[["a"]], c(1L,2L,2L) ,  msg = "wrap( tr1::unordered_map<string,vector<int>>) " )
+        checkEquals( res[["b"]], c(1L,2L) ,  msg = "wrap( tr1::unordered_map<string,vector<int>>) " )
+        checkEquals( res[["c"]], c(1L,2L,2L,2L) ,  msg = "wrap( tr1::unordered_map<string,vector<int>>) " )
+    }
+
+    test.wrap.map.int.double <- function(){
+        checkEquals( 
+            map_int_double(), 
+            c("-1" = 3, "0" = 2 ), 
+            msg = "std::map<int,double>"
+            )    
+    }
+
+    test.wrap.map.double.double <- function(){
+        checkEquals( 
+            map_double_double(), 
+            c("0" = 2, "1.2" = 3 ), 
+            msg = "std::map<double,double>"
+            )    
+    }
+
+    test.wrap.map.int.vector_double <- function(){
+        checkEquals( 
+            map_int_vector_double(), 
+            list("0" = c(1,2), "1" = c(2,3) ), 
+            msg = "std::map<double, std::vector<double> >"
+            )    
+    }
+
+    test.wrap.map.int.Foo <- function(){
+        checkEquals( 
+            sapply( map_int_Foo(), function(.) .$get() ), 
+            c("0" = 2, "1" = 3 ), 
+            msg = "std::map<int, MODULE EXPOSED CLASS >"
+            )    
+    }
+
+    test.wrap.vector.Foo <- function(){
+        checkEquals( 
+            sapply( vector_Foo(), function(.) .$get() ), 
+            c(2, 3), 
+            msg = "std::vector< MODULE EXPOSED CLASS >"
+            )    
+    }
+
+    test.wrap.custom.class <- function() {
+        checkEquals(test_wrap_custom_class(), 42)
+    }
+
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.modref.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.modref.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.modref.R	(revision 2476)
@@ -0,0 +1,45 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2010 - 2015  John Chambers, Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("modref.cpp")     
+    
+    test.modRef <- function() {
+        ww <- new(ModRefWorld)
+        wg <- ModRefWorld$new()
+        
+        checkEquals(ww$greet(), wg$greet())
+        wgg <- wg$greet()
+        
+        ww$set("Other")
+        
+        ## test independence of ww, wg
+        checkEquals(ww$greet(), "Other")
+        checkEquals(wg$greet(), wgg)
+        
+        ModRefWorld$methods(twice = function() paste(greet(), greet()))
+        
+        checkEquals(ww$twice(), paste(ww$greet(), ww$greet()))
+
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Date.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Date.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Date.R	(revision 2476)
@@ -0,0 +1,267 @@
+#!/usr/bin/env r
+# -*- mode: R; tab-width: 4; -*-
+#
+# Copyright (C) 2010 - 2016   Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("dates.cpp")
+
+    test.Date.ctor.sexp <- function() {
+        fun <- ctor_sexp
+        d <- as.Date("2005-12-31"); checkEquals(fun(d), d, msg = "Date.ctor.sexp.1")
+        d <- as.Date("1970-01-01"); checkEquals(fun(d), d, msg = "Date.ctor.sexp.2")
+        d <- as.Date("1969-12-31"); checkEquals(fun(d), d, msg = "Date.ctor.sexp.3")
+        d <- as.Date("1954-07-04"); checkEquals(fun(d), d, msg = "Date.ctor.sexp.4") # cf 'Miracle of Berne' ;-)
+        d <- as.Date("1789-07-14"); checkEquals(fun(d), d, msg = "Date.ctor.sexp.5") # cf 'Quatorze Juillet' ;-)
+    }
+
+    test.Date.ctor.notFinite <- function() {
+        fun <- ctor_sexp
+        checkEquals(fun(NA),  as.Date(NA,  origin="1970-01-01"), msg = "Date.ctor.na")
+        checkEquals(fun(NaN), as.Date(NaN, origin="1970-01-01"), msg = "Date.ctor.nan")
+        checkEquals(fun(Inf), as.Date(Inf, origin="1970-01-01"), msg = "Date.ctor.inf")
+    }
+
+    test.Date.ctor.diffs <- function() {
+        fun <- ctor_sexp
+        now <- Sys.Date()
+        checkEquals(as.numeric(difftime(fun(now+0.025),  fun(now), units="days")), 0.025, msg = "Date.ctor.diff.0025")
+        checkEquals(as.numeric(difftime(fun(now+0.250),  fun(now), units="days")), 0.250, msg = "Date.ctor.diff.0250")
+        checkEquals(as.numeric(difftime(fun(now+2.500),  fun(now), units="days")), 2.500, msg = "Date.ctor.diff.2500")
+    }
+
+    test.Date.ctor.mdy <- function() {
+        checkEquals(ctor_mdy(), as.Date("2005-12-31"), msg = "Date.ctor.mdy")
+    }
+
+    test.Date.ctor.ymd <- function() {
+        checkEquals(ctor_ymd(), as.Date("2005-12-31"), msg = "Date.ctor.ymd")
+    }
+
+    test.Date.ctor.int <- function() {
+        fun <- ctor_int
+        d <- as.Date("2005-12-31")
+        checkEquals(fun(as.numeric(d)), d, msg = "Date.ctor.int")
+        checkEquals(fun(-1), as.Date("1970-01-01")-1, msg = "Date.ctor.int")
+        checkException(fun("foo"), msg = "Date.ctor -> exception" )
+    }
+
+    test.Date.ctor.string <- function() {
+        fun <- ctor_string
+        dtstr <- "1991-02-03"
+        dtfun <- fun(dtstr)
+        dtstr <- as.Date(strptime(dtstr, "%Y-%m-%d"))
+        ddstr <- as.Date(dtstr, "%Y-%m-%d")
+        checkEquals(dtfun, dtstr, msg = "Date.fromString.strptime")
+        checkEquals(dtfun, ddstr, msg = "Date.fromString.asDate")
+    }
+
+    test.Date.operators <- function() {
+        checkEquals(operators(),
+                    list(diff=-1, bigger=TRUE, smaller=FALSE, equal=FALSE, ge=TRUE, le=FALSE, ne=TRUE),
+                    msg = "Date.operators")
+    }
+
+    test.Date.components <- function() {
+        checkEquals(components(),
+                    list(day=31, month=12, year=2005, weekday=7, yearday=365),
+                    msg = "Date.components")
+    }
+
+    test.vector.Date <- function(){
+        checkEquals(vector_Date(), rep(as.Date("2005-12-31"),2), msg = "Date.vector.wrap")
+    }
+
+    test.DateVector.wrap <- function(){
+        checkEquals(Datevector_wrap(), rep(as.Date("2005-12-31"),2), msg = "DateVector.wrap")
+    }
+
+    test.DateVector.operator.SEXP <- function(){
+        checkEquals(Datevector_sexp(), rep(as.Date("2005-12-31"),2), msg = "DateVector.SEXP")
+    }
+
+    test.Date.getFunctions <- function(){
+        fun <- Date_get_functions
+        checkEquals(fun(as.Date("2010-12-04")),
+                    list(year=2010, month=12, day=4, wday=7, yday=338), msg = "Date.get.functions.1")
+        checkEquals(fun(as.Date("2010-01-01")),
+                    list(year=2010, month=1, day=1, wday=6, yday=1), msg = "Date.get.functions.2")
+        checkEquals(fun(as.Date("2009-12-31")),
+                    list(year=2009, month=12, day=31, wday=5, yday=365), msg = "Date.get.functions.3")
+    }
+
+    test.Datetime.get.functions <- function() {
+        fun <- Datetime_get_functions
+        checkEquals(fun(as.numeric(as.POSIXct("2001-02-03 01:02:03.123456", tz="UTC"))),
+                    list(year=2001, month=2, day=3, wday=7, hour=1, minute=2, second=3, microsec=123456),
+                    msg = "Datetime.get.functions")
+    }
+
+    test.Datetime.operators <- function() {
+        checkEquals(Datetime_operators(),
+                    list(diff=-60*60, bigger=TRUE, smaller=FALSE, equal=FALSE, ge=TRUE, le=FALSE, ne=TRUE),
+                    msg = "Datetime.operators")
+    }
+
+    test.Datetime.wrap <- function() {
+        checkEquals(as.numeric(Datetime_wrap()), as.numeric(as.POSIXct("2001-02-03 01:02:03.123456", tz="UTC")),
+                    msg = "Datetime.wrap")
+    }
+
+    test.Datetime.fromString <- function() {
+        fun <- Datetime_from_string
+        dtstr <- "1991-02-03 04:05:06.789"
+        dtfun <- fun(dtstr)
+        dtstr <- as.POSIXct(strptime(dtstr, "%Y-%m-%d %H:%M:%OS"))
+        checkEquals(as.numeric(dtfun), as.numeric(dtstr), msg = "Datetime.fromString")
+    }
+
+    ## TZ difference ...
+    ##test.Datetime.ctor <- function() {
+    ##    fun <- .Rcpp.Date$Datetime_ctor_sexp
+    ##    checkEquals(fun(1234567),  as.POSIXct(1234567,  origin="1970-01-01"), msg = "Datetime.ctor.1")
+    ##    checkEquals(fun(-120.25),  as.POSIXct(-120.5,   origin="1970-01-01"), msg = "Datetime.ctor.2")
+    ##    checkEquals(fun( 120.25),  as.POSIXct( 120.25,  origin="1970-01-01"), msg = "Datetime.ctor.3")
+    ##}
+
+    test.Datetime.ctor.notFinite <- function() {
+        fun <- Datetime_ctor_sexp
+        posixtNA <- as.POSIXct(NA,  origin="1970-01-01")
+        checkEquals(fun(NA),  posixtNA, msg = "Datetime.ctor.na")
+        checkEquals(fun(NaN), posixtNA, msg = "Datetime.ctor.nan")
+        checkEquals(fun(Inf), posixtNA, msg = "Datetime.ctor.inf")
+    }
+
+    test.Datetime.ctor.diffs <- function() {
+        fun <- Datetime_ctor_sexp
+        now <- Sys.time()
+        ## first one is Ripley's fault as he decreed that difftime of POSIXct should stop at milliseconds
+        checkEquals(round(as.numeric(difftime(fun(now+0.025),  fun(now), units="sec")), digits=4), 0.025, msg = "Datetime.ctor.diff.0025")
+        checkEquals(as.numeric(difftime(fun(now+0.250),  fun(now), units="sec")), 0.250, msg = "Datetime.ctor.diff.0250")
+        checkEquals(as.numeric(difftime(fun(now+2.500),  fun(now), units="sec")), 2.500, msg = "Datetime.ctor.diff.2500")
+    }
+
+    test.DatetimeVector.ctor <- function() {
+        fun <- DatetimeVector_ctor
+        now <- Sys.time()
+        checkEquals(fun(now + (0:4)*60), now+(0:4)*60, msg = "Datetime.ctor.sequence")
+        if (Rcpp:::capabilities()[["new date(time) vectors"]]) {
+            vec <- c(now, NA, NaN, now+2.345)
+            posixtNA <- as.POSIXct(NA,  origin="1970-01-01")
+            checkEquals(fun(vec), c(now, rep(posixtNA, 2), now+2.345), msg = "Datetime.ctor.NA.NaN.set")
+            vec <- c(now, -Inf, Inf, now+2.345)
+            checkEquals(sum(is.finite(fun(vec))), 2, msg = "Datetime.ctor.Inf.finite.set")
+            checkEquals(sum(is.infinite(fun(vec))), 2, msg = "Datetime.ctor.Inf.notfinite.set")
+            vec <- c(now, NA, NaN, Inf, now+2.345)
+            posixtNA <- as.POSIXct(NA, origin="1970-01-01")
+            posixtInf <- as.POSIXct(Inf, origin="1970-01-01")
+            checkEquals(fun(vec), c(now, rep(posixtNA, 2), posixtInf, now+2.345),
+                        msg = "Datetime.ctor.NA.NaN.Inf.set")
+        } else {
+            vec <- c(now, NA, NaN, Inf, now+2.345)
+            posixtNA <- as.POSIXct(NA, origin="1970-01-01")
+            checkEquals(fun(vec), c(now, rep(posixtNA, 3), now+2.345), msg = "Datetime.ctor.NA.NaN.Inf.set")
+        }
+    }
+
+    test.DatetimeVector.assignment <- function() {
+        now <- Sys.time()
+        v1 <- c(now, now + 1, now + 2)
+        v2 <- c(now + 3, now + 4, now + 5)
+        checkEquals(v2, DatetimeVector_assignment(v1, v2))
+    }
+
+    test.DateVector.assignment <- function() {
+        now <- Sys.Date()
+        v1 <- c(now, now + 1, now + 2)
+        v2 <- c(now + 3, now + 4, now + 5)
+        checkEquals(v2, DateVector_assignment(v1, v2))
+    }
+
+
+    ## formatting
+    test.Date.formating <- function() {
+        oldTZ <- Sys.getenv("TZ")
+        Sys.setenv(TZ="America/Chicago")
+        d <- as.Date("2011-12-13")
+
+        checkEquals(Date_format(d, "%Y-%m-%d"),
+                    format(d),
+                    msg="Date.formating.default")
+        checkEquals(Date_format(d, "%Y/%m/%d"),
+                    format(d, "%Y/%m/%d"),
+                    msg="Date.formating.given.format")
+        checkEquals(Date_ostream(d),
+                    format(d),
+                    msg="Date.formating.ostream")
+
+        Sys.setenv(TZ=oldTZ)
+    }
+
+    test.Datetime.formating <- function() {
+        olddigits <- getOption("digits.secs")
+        options("digits.secs"=6)
+
+        d <- as.POSIXct("2016-12-13 14:15:16.123456")
+        checkEquals(Datetime_format(d,"%Y-%m-%d %H:%M:%S"),
+                    format(d, "%Y-%m-%d %H:%M:%OS"),
+                    msg="Datetime.formating.default")
+        checkEquals(Datetime_format(d, "%Y/%m/%d %H:%M:%S"),
+                    format(d, "%Y/%m/%d %H:%M:%OS"),
+                    msg="Datetime.formating.given.format")
+        checkEquals(Datetime_ostream(d),
+                    format(d, "%Y-%m-%d %H:%M:%OS"),
+                    msg="Datetime.formating.ostream")
+
+        options("digits.secs"=olddigits)
+    }
+
+
+    test.mktime_gmtime <- function() {
+        d <- as.Date("2015-12-31")
+        checkEquals(d, gmtime_mktime(d), msg="Date.mktime_gmtime.2015")
+
+        d <- as.Date("1965-12-31")
+        checkEquals(d, gmtime_mktime(d), msg="Date.mktime_gmtime.1965")
+    }
+
+    test.mktime <- function() {
+        d <- as.Date("2015-12-31")
+        checkEquals(test_mktime(d), as.numeric(as.POSIXct(d)), msg="Date.test_mktime.2015")
+
+        d <- as.Date("1970-01-01")
+        checkEquals(test_mktime(d), as.numeric(as.POSIXct(d)), msg="Date.test_mktime.1970")
+
+        d <- as.Date("1954-07-04")
+        checkEquals(test_mktime(d), as.numeric(as.POSIXct(d)), msg="Date.test_mktime.1954")
+    }
+
+    test.gmtime <- function() {
+        oldTZ <- Sys.getenv("TZ")
+        Sys.setenv(TZ="UTC")
+        checkEquals(test_gmtime(1441065600), as.Date("2015-09-01"), msg="Date.test_gmtime.2015")
+
+        checkEquals(test_gmtime(0),          as.Date("1970-01-01"), msg="Date.test_gmtime.1970")
+
+        checkEquals(test_gmtime(-489024000), as.Date("1954-07-04"), msg="Date.test_gmtime.1954")
+        Sys.setenv(TZ=oldTZ)
+    }
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Rcpp.package.skeleton.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Rcpp.package.skeleton.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Rcpp.package.skeleton.R	(revision 2476)
@@ -0,0 +1,151 @@
+# Copyright (C) 2013 - 2014  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    test.Rcpp.package.skeleton <- function(){
+        
+        tempdir <- tempdir()
+        path <- tempdir
+        pkg_path <- file.path(path, "foo")
+        R_path <- file.path(pkg_path, "R")
+        src_path <- file.path(pkg_path, "src")
+        env <- new.env()
+        
+        env$funA <- function(alpha, beta) "gamma"
+        env$funB <- function(first, ..., last) "foo"
+        
+        Rcpp.package.skeleton("foo", path=path, list=c("funA", "funB"),
+                              author="Boo-Boo Bear",
+                              maintainer="Yogi Bear",
+                              license="An Opensource License",
+                              email="yogibear@yogimail.com",
+                              environment=env
+                              )
+        
+        on.exit(unlink(pkg_path, recursive=TRUE))
+        
+        checkTrue( "foo" %in% list.files(path), "pkg path generated as named" )
+        
+        ## check the DESCRIPTION
+        DESCRIPTION <- as.list( read.dcf( file.path(pkg_path, "DESCRIPTION") )[1,] )
+        checkTrue( DESCRIPTION["Author"] == "Boo-Boo Bear", 
+                  "wrote the Author field in DESCRIPTION" )
+        checkTrue( DESCRIPTION["Maintainer"] == "Yogi Bear <yogibear@yogimail.com>",
+                  "wrote the Maintainer field in DESCRIPTION")
+        checkTrue( DESCRIPTION["License"] == "An Opensource License",
+                  "wrote the License field in DESCRIPTION" )
+        checkTrue( DESCRIPTION["LinkingTo"] == "Rcpp", 
+                  "we make sure that we 'link' to Rcpp (use its headers)" )
+        
+        ## make sure we have useDynLib in the namespace
+        NAMESPACE <- readLines( file.path(pkg_path, "NAMESPACE") )
+        
+        ## note: we use regular expressions anticipating a possible future
+        ## usage of e.g. '.registration=TRUE' in Rcpp.package.skeleton
+        checkTrue( any(grepl( "useDynLib(foo", NAMESPACE, fixed=TRUE )),
+                  "NAMESPACE has useDynLib(foo)" )
+        
+        R_files <- list.files(R_path, full.names=TRUE)
+        checkTrue( all( c("funA.R", "funB.R") %in% list.files(R_path)), 
+                  "created R files from functions" )
+        for (file in grep("RcppExports.R", R_files, invert=TRUE, value=TRUE)) {
+            code <- readLines(file)
+            fn <- eval(parse(text=paste(code, collapse="\n")))
+            fn_name <- gsub(".*/(.*)\\.R$", "\\1", file)
+            checkIdentical(fn, get(fn_name),
+                           sprintf("we parsed the function '%s' correctly", fn_name)
+                           )
+        }
+        
+        ## make sure we can build the package as generated
+        ## note: the generated .Rd placeholders are insufficient to be able
+        ## to successfully install the pkg; e.g. I see
+        
+        ## Error in Rd_info(db[[i]]) : 
+        ## missing/empty \title field in '<path>/funA.Rd'
+        invisible(sapply( list.files( file.path(pkg_path, "man"), full.names=TRUE), unlink ))
+        
+        owd <- getwd()
+        setwd(path)
+        on.exit( setwd(owd), add=TRUE )
+        R <- shQuote( file.path( R.home( component = "bin" ), "R" ))
+        system( paste(R, "CMD build", pkg_path) )
+        checkTrue( file.exists("foo_1.0.tar.gz"), "can successfully R CMD build the pkg")
+        dir.create("templib")
+        install.packages("foo_1.0.tar.gz", file.path(path, "templib"), repos=NULL, type="source")
+        on.exit( unlink( file.path(path, "foo_1.0.tar.gz") ), add=TRUE)
+        require("foo", file.path(path, "templib"), character.only=TRUE)
+        on.exit( unlink( file.path(path, "templib"), recursive=TRUE), add=TRUE )
+        
+    }
+
+    test.Rcpp.package.skeleton.Attributes <- function() {
+        
+        tempdir <- tempdir()
+        path <- tempdir
+        pkg_path <- file.path(path, "foo")
+        R_path <- file.path(pkg_path, "R")
+        src_path <- file.path(pkg_path, "src")
+        
+        Rcpp.package.skeleton("foo", path=path, attributes=TRUE, example_code=TRUE,
+                              environment=environment())
+        on.exit( unlink(pkg_path, recursive=TRUE) )
+        checkTrue(file.exists( file.path(src_path, "RcppExports.cpp")),
+                  "RcppExports.cpp was created")
+        checkTrue(file.exists( file.path(src_path, "rcpp_hello_world.cpp")),
+                  "rcpp_hello_world.cpp was created" )
+        checkTrue(file.exists( file.path(R_path, "RcppExports.R")),
+                  "RcppExports.R was created")
+    }
+
+    test.Rcpp.package.skeleton.NoAttributes <- function() {
+        
+        tempdir <- tempdir()
+        path <- tempdir
+        pkg_path <- file.path(path, "foo")
+        R_path <- file.path(pkg_path, "R")
+        src_path <- file.path(pkg_path, "src")
+        
+        Rcpp.package.skeleton("foo", path=path, attributes=FALSE, example_code=TRUE,
+                              environment=environment())
+        on.exit( unlink(pkg_path, recursive=TRUE) )
+        checkTrue(file.exists( file.path(src_path, "rcpp_hello_world.cpp")),
+                  "rcpp_hello_world.cpp was created")
+        checkTrue(file.exists( file.path(src_path, "rcpp_hello_world.h")),
+                  "rcpp_hello_world.h was created")
+        checkTrue(file.exists( file.path(R_path, "rcpp_hello_world.R")),
+                  "rcpp_hello_world.R was created" )
+    }
+
+    test.Rcpp.package.skeleton.Module <- function() {
+        
+        tempdir <- tempdir()
+        path <- tempdir
+        pkg_path <- file.path(path, "foo")
+        R_path <- file.path(pkg_path, "R")
+        src_path <- file.path(pkg_path, "src")
+        
+        Rcpp.package.skeleton("foo", path=path, module=TRUE, environment=environment())
+        on.exit(unlink(pkg_path, recursive=TRUE))
+        checkTrue(file.exists( file.path(src_path, "rcpp_module.cpp")),
+                  "rcpp_module.cpp was created")
+    }
+  
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.sugar.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.sugar.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.sugar.R	(revision 2476)
@@ -0,0 +1,1966 @@
+#!/usr/bin/env r
+#                     -*- mode: R; ess-indent-level: 4; indent-tabs-mode: nil; -*-
+#
+# Copyright (C) 2010 - 2015  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("sugar.cpp")
+
+    test.sugar.abs <- function( ){
+	x <- rnorm(10)
+	y <- -10:10
+	checkEquals( runit_abs(x,y) , list( abs(x), abs(y) ) )
+    }
+
+    test.sugar.all.one.less <- function( ){
+	checkTrue( runit_all_one_less( 1 ) )
+	checkTrue( ! runit_all_one_less( 1:10 ) )
+	checkTrue( is.na( runit_all_one_less( NA ) ) )
+	checkTrue( is.na( runit_all_one_less( c( NA, 1)  ) ) )
+	checkTrue( ! runit_all_one_less( c( 6, NA)  ) )
+    }
+
+    test.sugar.all.one.greater <- function( ){
+	checkTrue( ! runit_all_one_greater( 1 ) )
+	checkTrue( ! runit_all_one_greater( 1:10 ) )
+	checkTrue( runit_all_one_greater( 6:10 ) )
+	checkTrue( ! runit_all_one_greater( c(NA, 1) ) )
+	checkTrue( is.na( runit_all_one_greater( c(NA, 6) ) ) )
+    }
+
+    test.sugar.all.one.less.or.equal <- function( ){
+	checkTrue( runit_all_one_less_or_equal( 1 ) )
+	checkTrue( ! runit_all_one_less_or_equal( 1:10 ) )
+	checkTrue( is.na( runit_all_one_less_or_equal( NA ) ) )
+	checkTrue( is.na( runit_all_one_less_or_equal( c( NA, 1)  ) ) )
+	checkTrue( ! runit_all_one_less_or_equal( c( 6, NA)  ) )
+	checkTrue( runit_all_one_less_or_equal( 5 ) )
+
+    }
+
+    test.sugar.all.one.greater.or.equal <- function( ){
+	fx <- runit_all_one_greater_or_equal
+	checkTrue( ! fx( 1 ) )
+	checkTrue( ! fx( 1:10 ) )
+	checkTrue( fx( 6:10 ) )
+	checkTrue( fx( 5 ) )
+	checkTrue( ! fx( c(NA, 1) ) )
+	checkTrue( is.na( fx( c(NA, 6) ) ) )
+    }
+
+    test.sugar.all.one.equal <- function( ){
+	fx <- runit_all_one_equal
+	checkTrue( ! fx( 1 ) )
+	checkTrue( ! fx( 1:2 ) )
+	checkTrue( fx( rep(5,4) ) )
+	checkTrue( is.na( fx( c(5,NA) ) ) )
+	checkTrue(! fx( c(NA, 1) ) )
+    }
+
+    test.sugar.all.one.not.equal <- function( ){
+	fx <- runit_all_not_equal_one
+	checkTrue( fx( 1 ) )
+	checkTrue( fx( 1:2 ) )
+	checkTrue( ! fx( 5 ) )
+	checkTrue( is.na( fx( c(NA, 1) ) ) )
+	checkTrue( ! fx( c(NA, 5) ) )
+    }
+
+    test.sugar.all.less <- function( ){
+	fx <- runit_all_less
+	checkTrue( ! fx( 1, 0 ) )
+	checkTrue( fx( 1:10, 2:11 ) )
+	checkTrue( fx( 0, 1 ) )
+	checkTrue( is.na( fx( NA, 1 ) ) )
+    }
+
+    test.sugar.all.greater <- function( ){
+	fx <- runit_all_greater
+	checkTrue( fx( 1, 0 ) )
+	checkTrue( fx( 2:11, 1:10 ) )
+	checkTrue( ! fx( 0, 1 ) )
+	checkTrue( ! fx( 0:9, c(0:8,10) ) )
+	checkTrue( is.na( fx( NA, 1 ) ) )
+    }
+
+    test.sugar.all.less.or.equal <- function( ){
+	fx <- runit_all_less_or_equal
+	checkTrue( fx( 1, 1 ) )
+	checkTrue( ! fx( 1:2, c(1,1) ) )
+	checkTrue( fx( 0, 1 ) )
+	checkTrue( ! fx( 1, 0 ) )
+	checkTrue( is.na( fx( NA, 1 ) ) )
+    }
+
+    test.sugar.all.greater.or.equal <- function( ){
+	fx <- runit_all_greater_or_equal
+	checkTrue( fx( 1, 1 ) )
+	checkTrue( fx( 1:2, c(1,1) ) )
+	checkTrue( ! fx( 0, 1 ) )
+	checkTrue( fx( 1, 0 ) )
+	checkTrue( is.na( fx( NA, 1 ) ) )
+    }
+
+    test.sugar.all.equal <- function( ){
+	fx <- runit_all_equal
+	checkTrue( fx( 1, 1 ) )
+	checkTrue( ! fx( 1:2, c(1,1) ) )
+	checkTrue( ! fx( 0, 1 ) )
+	checkTrue( ! fx( 1, 0 ) )
+	checkTrue( is.na( fx( NA, 1 ) ) )
+    }
+
+    test.sugar.all.not.equal <- function( ){
+	fx <- runit_all_not_equal
+	checkTrue( ! fx( 1, 1 ) )
+	checkTrue( ! fx( 1:2, c(1,1) ) )
+	checkTrue( fx( 0, 1 ) )
+	checkTrue( fx( 1, 0 ) )
+	checkTrue( is.na( fx( NA, 1 ) ) )
+
+    }
+
+    test.sugar.any.less <- function( ){
+	fx <- runit_any_less
+	checkTrue( ! fx( 1, 0 ) )
+	checkTrue( fx( 1:10, 2:11 ) )
+	checkTrue( fx( 0, 1 ) )
+	checkTrue( is.na( fx( NA, 1 ) ) )
+    }
+
+    test.sugar.any.greater <- function( ){
+	fx <- runit_any_greater
+	checkTrue( fx( 1, 0 ) )
+	checkTrue( fx( 2:11, 1:10 ) )
+	checkTrue( ! fx( 0, 1 ) )
+	checkTrue( is.na( fx( NA, 1 ) ) )
+    }
+
+    test.sugar.any.less.or.equal <- function( ){
+        fx <- runit_any_less_or_equal
+	checkTrue( fx( 1, 1 ) )
+	checkTrue( fx( 1:2, c(1,1) ) )
+	checkTrue( fx( 0, 1 ) )
+	checkTrue( ! fx( 1, 0 ) )
+	checkTrue( is.na( fx( NA, 1 ) ) )
+    }
+
+    test.sugar.any.greater.or.equal <- function( ){
+	fx <- runit_any_greater_or_equal
+	checkTrue( fx( 1, 1 ) )
+	checkTrue( fx( 1:2, c(1,1) ) )
+	checkTrue( ! fx( 0, 1 ) )
+	checkTrue( fx( 1, 0 ) )
+	checkTrue( is.na( fx( NA, 1 ) ) )
+    }
+
+    test.sugar.any.equal <- function( ){
+	fx <- runit_any_equal
+	checkTrue( fx( 1, 1 ) )
+	checkTrue( fx( 1:2, c(1,1) ) )
+	checkTrue( ! fx( 0, 1 ) )
+	checkTrue( ! fx( 1, 0 ) )
+	checkTrue( is.na( fx( NA, 1 ) ) )
+    }
+
+    test.sugar.any.not.equal <- function( ){
+	fx <- runit_any_not_equal
+	checkTrue( ! fx( 1, 1 ) )
+	checkTrue( fx( 1:2, c(1,1) ) )
+	checkTrue( fx( 0, 1 ) )
+	checkTrue( fx( 1, 0 ) )
+	checkTrue( is.na( fx( NA, 1 ) ) )
+    }
+
+    test.sugar.constructor <- function( ){
+	fx <- runit_constructor
+	checkEquals( fx( 1, 0 ), FALSE )
+	checkEquals( fx( 1:10, 2:11 ), rep(TRUE,10) )
+	checkEquals( fx( 0, 1 ), TRUE )
+	checkTrue( identical( fx( NA, 1 ), NA ) )
+    }
+
+    test.sugar.assignment <- function( ){
+	fx <- runit_assignment
+	checkEquals( fx( 1, 0 ), FALSE )
+	checkEquals( fx( 1:10, 2:11 ), rep(TRUE,10) )
+	checkEquals( fx( 0, 1 ), TRUE )
+	checkTrue( identical( fx( NA, 1 ), NA ) )
+    }
+
+    test.sugar.diff <- function( ){
+        x <- as.integer(round(rnorm(100,1,100)))
+        checkEquals( runit_diff_int(x) , diff(x) )
+        x <- rnorm( 100 )
+        checkEquals( runit_diff(x) , diff(x) )
+        y    <- rnorm(100)
+        pred <- sample( c(T,F), 99, replace = TRUE )
+        checkEquals( runit_diff_ifelse(pred, x, y ), ifelse( pred, diff(x), diff(y) ) )
+    }
+
+    test.sugar.exp <- function( ){
+	fx <- runit_exp
+	x <- rnorm(10)
+	y <- -10:10
+	checkEquals( fx(x,y) , list( exp(x), exp(y) ) )
+    }
+
+    test.sugar.floor <- function( ){
+	fx <- runit_floor
+	x <- rnorm(10)
+	y <- -10:10
+	checkEquals( fx(x,y) , list( floor(x), floor(y) ) )
+    }
+
+    test.sugar.ceil <- function( ){
+	fx <- runit_ceil
+	x <- rnorm(10)
+	y <- -10:10
+	checkEquals( fx(x,y) , list( ceiling(x), ceiling(y) ) )
+    }
+
+    test.sugar.pow <- function( ){
+	fx <- runit_pow
+	x <- rnorm(10)
+	y <- -10:10
+	checkEquals( fx(x,y) , list( x^3L , y^2.3 ) )
+    }
+
+    test.sugar.ifelse <- function( ){
+	fx <- runit_ifelse
+	x <- 1:10
+	y <- 10:1
+	checkEquals(fx( x, y),
+                    list("vec_vec"   = ifelse( x<y, x*x, -(y*y) ) ,
+                         "vec_prim"  = ifelse( x<y, 1.0, -(y*y) ),
+                         "prim_vec"  = ifelse( x<y, x*x, 1.0    ),
+                         "prim_prim" = ifelse( x<y, 1.0, 2.0    )
+                         ))
+    }
+
+    test.sugar.isna <- function( ){
+	fx <- runit_isna
+	checkEquals( fx( 1:10) , rep(FALSE,10) )
+    }
+
+    test.sugar.isfinite <- function( ){
+	checkEquals(runit_isfinite( c(1, NA, Inf, -Inf, NaN) ) ,
+                    c(TRUE, FALSE, FALSE, FALSE, FALSE),
+                    msg = "is_finite")
+    }
+
+    test.sugar.isinfinite <- function( ){
+	checkEquals(runit_isinfinite( c(1, NA, Inf, -Inf, NaN) ) ,
+                    c(FALSE, FALSE, TRUE, TRUE, FALSE),
+                    msg = "is_infinite")
+    }
+
+
+    test.sugar.isnan <- function( ){
+	checkEquals(runit_isnan( c(1, NA, Inf, -Inf, NaN) ) ,
+                    c(FALSE, FALSE, FALSE, FALSE, TRUE),
+                    msg = "is_nan")
+    }
+
+    test.sugar.isna.isna <- function( ){
+	fx <- runit_isna_isna
+	checkEquals( fx( c(1:5,NA,7:10) ) , rep(FALSE,10) )
+    }
+
+    test.sugar.any.isna <- function( ){
+	fx <- runit_any_isna
+	checkEquals( fx( c(1:5,NA,7:10) ) , TRUE )
+    }
+
+    test.sugar.na_omit.na <- function( ){
+        fx <- runit_na_omit
+        checkEquals( fx( c(1:5,NA,7:10) ), fx( c(1:5,7:10) ) )
+    }
+
+    test.sugar.na_omit.nona <- function( ){
+        fx <- runit_na_omit
+        checkEquals( fx( c(1:10) ), fx( c(1:10) ) )
+    }
+
+    test.sugar.lapply <- function( ){
+	fx <- runit_lapply
+	checkEquals( fx( 1:10 ), lapply( 1:10, seq_len ) )
+    }
+
+    test.sugar.minus <- function( ){
+	fx <- runit_minus
+	checkEquals(fx(1:10) ,
+                    list( (1:10)-10L, 10L-(1:10), rep(0L,10), (1:10)-10L, 10L-(1:10)  ))
+    }
+
+    test.sugar.any.equal.not <- function( ){
+	fx <- runit_any_equal_not
+	checkTrue( ! fx( 1, 1 ) )
+	checkTrue( fx( 1:2, c(1,1) ) )
+	checkTrue( fx( 0, 1 ) )
+	checkTrue( fx( 1, 0 ) )
+	checkTrue( is.na( fx( NA, 1 ) ) )
+    }
+
+    test.sugar.plus <- function( ){
+	fx <- runit_plus
+	checkEquals( fx(1:10) , list( 11:20,11:20,1:10+1:10, 3*(1:10))  )
+    }
+
+    test.sugar.plus.seqlen <- function( ){
+	fx <- runit_plus_seqlen
+	checkEquals( fx() , list( 11:20,11:20, 1:10+1:10)  )
+    }
+
+    test.sugar.plus.all <- function( ){
+	fx <- runit_plus_all
+	checkEquals( fx(1:10) , FALSE )
+    }
+
+    test.sugar.pmin <- function( ){
+	fx <- runit_pmin
+	checkEquals( fx(1:10, 10:1) , c(1:5,5:1) )
+    }
+
+    test.sugar.pmin.one <- function( ){
+	fx <- runit_pmin_one
+	checkEquals(fx(1:10), list(c(1:5,rep(5,5)), c(1:5,rep(5,5))))
+    }
+
+    test.sugar.pmax <- function( ){
+	fx <- runit_pmax
+	checkEquals( fx(1:10, 10:1) , c(10:6,6:10) )
+    }
+
+    test.sugar.pmax.one <- function( ){
+	fx <- runit_pmax_one
+	checkEquals(fx(1:10), list(c(rep(5,5), 6:10), c(rep(5,5), 6:10)))
+    }
+
+    test.sugar.Range <- function( ){
+	fx <- runit_Range
+	checkEquals(fx(), c( exp(seq_len(4)), exp(-seq_len(4))))
+    }
+
+    test.sugar.Range.plus <- function( ){
+    fx <- runit_range_plus
+    checkEquals( fx(1, 10, 2), c(1:10) + 2 )
+    }
+
+    test.sugar.Range.minus <- function( ){
+    fx <- runit_range_minus
+    checkEquals( fx(1, 10, 2), c(1:10) - 2 )
+    }
+
+    test.sugar.sapply <- function( ){
+	fx <- runit_sapply
+	checkEquals( fx(1:10) , (1:10)^2 )
+    }
+
+    test.sugar.sapply.rawfun <- function( ){
+	fx <- runit_sapply_rawfun
+	checkEquals( fx(1:10) , (1:10)^2 )
+    }
+
+    test.sugar.sapply.square <- function( ){
+	fx <- runit_sapply_square
+	checkTrue( ! fx(1:10)  )
+    }
+
+    test.sugar.sapply.list <- function( ){
+	fx <- runit_sapply_list
+	checkEquals( fx(1:10), lapply( 1:10, seq_len ) )
+    }
+
+    test.sugar.seqlaong <- function( ){
+	fx <- runit_seqalong
+	checkEquals( fx( rnorm(10)) , 1:10  )
+    }
+
+    test.sugar.seqlen <- function( ){
+	fx <- runit_seqlen
+	checkEquals( fx() , 1:10  )
+    }
+
+    test.sugar.sign <- function( ){
+	fx <- runit_sign
+	checkEquals(fx( seq(-10, 10, length.out = 51), -25:25 ),
+                    list(c( rep(-1L, 25), 0L, rep(1L, 25) ), c( rep(-1L, 25), 0L, rep(1L, 25) )))
+    }
+
+
+    test.sugar.times <- function( ){
+	fx <- runit_times
+	checkEquals(fx(1:10) ,
+                    list(10L*(1:10), 10L*(1:10), (1:10)*(1:10), (1:10)*(1:10)*(1:10),
+                         c(NA,(2:10)*(2:10)), c(NA,10L*(2:10)), c(NA,10L*(2:10)), rep( NA_integer_, 10L )))
+    }
+
+    test.sugar.divides <- function( ){
+	fx <- runit_divides
+	checkEquals(fx(1:10) ,
+                    list(1:10/10, 10/1:10, rep(1,10)))
+    }
+
+    test.sugar.unary.minus <- function( ){
+	fx <- runit_unary_minus
+	checkEquals( fx( seq(0,5,by=10) ), - seq(0,5,by=10) )
+	checkTrue( identical( fx( c(0,NA,2) ), c(0,NA,-2) ) )
+    }
+
+    test.sugar.wrap <- function( ){
+	fx <- runit_wrap
+	e <- new.env()
+	fx( 1:10, 2:11, e )
+	checkEquals( e[["foo"]], rep(TRUE, 10 ) )
+    }
+
+    test.sugar.complex <- function( ){
+	x <- c( rnorm(10), NA ) + 1i*c( rnorm(10), NA )
+	fx <- runit_complex
+	checkEquals( fx(x),
+                    list(Re    = Re(x),
+                         Im    = Im(x),
+                         Conj  = Conj(x),
+                         Mod   = Mod(x),
+                         Arg   = Arg(x),
+                         exp   = exp(x),
+                         log   = log(x),
+                         sqrt  = sqrt(x),
+                         cos   = cos(x),
+                         sin   = sin(x),
+                         tan   = tan(x),
+                         acos  = acos(x),
+                         asin  = asin(x),
+                         atan  = atan(x),
+                         ## acosh = acosh(x),
+                         asinh = asinh(x),
+                         atanh = atanh(x),
+                         cosh  = cosh(x),
+                         sinh = sinh(x),
+                         tanh = tanh(x)))
+    }
+
+    test.sugar.rep <- function(){
+	fx <- runit_rep
+	checkEquals(fx(1:10),
+                    list("rep" = rep( 1:10, 3 ),
+                         "rep_each" = rep( 1:10, each = 3 ),
+                         "rep_len" = rep( 1:10, length.out = 12 ),
+                         "rep_prim_double" = rep( 0.0, 10 )))
+    }
+
+    test.sugar.rev <- function(){
+	fx <- runit_rev
+	checkEquals( fx(1:10), rev( 1:10 * 1:10 ) )
+    }
+
+    test.sugar.head <- function(){
+	fx <- runit_head
+	checkEquals(fx(1:100), list( pos = 1:5, neg = 1:95 ))
+    }
+
+    test.sugar.tail <- function(){
+	fx <- runit_tail
+	checkEquals(
+            fx(1:100),
+            list( pos = 96:100, neg = 6:100 )
+            )
+    }
+
+    ## matrix
+
+    test.sugar.matrix.outer <- function( ){
+	fx <- runit_outer
+	x <- 1:2
+	y <- 1:5
+	checkEquals( fx(x,y) , outer(x,y,"+") )
+    }
+
+    test.sugar.matrix.row <- function( ){
+	fx <- runit_row
+	m <- matrix( 1:16, nc = 4 )
+	res <- fx( m )
+	target <- list( row = row(m), col = col(m) )
+	checkEquals( res, target )
+    }
+
+    test.sugar.diag <- function( ){
+	fx <- runit_diag
+
+	x <- 1:4
+	m <- matrix( 1:16, nc = 4 )
+	res <- fx(x, m)
+	target <- list(diag(x), diag(m), diag( outer( x, x, "+" ) ))
+	checkEquals( res, target )
+    }
+
+
+    ## autogenerated sugar blocks
+
+    test.sugar.gamma <- function(){
+	fx <- runit_gamma
+	x <- seq( 1, 5, by = .5 )
+	checkEquals(fx(x),
+                    list("gamma"      = gamma(x),
+                         "lgamma"     = lgamma(x),
+                         "digamma"    = digamma(x),
+                         "trigamma"   = trigamma(x),
+                         "tetragamma" = psigamma(x, 2),
+                         "pentagamma" = psigamma(x, 3),
+                         "factorial"  = factorial(x),
+                         "lfactorial" = lfactorial(x)))
+    }
+
+    test.sugar.log1p <- function(){
+	x <- 10^-(1+2*1:9)
+	fx <- runit_log1p
+	checkEquals( fx(x),
+                    list( log1p = log1p(x), expm1 = expm1(x) ) )
+    }
+
+    test.sugar.choose <- function(){
+	fx <- runit_choose
+	checkEquals(fx(10:6,5:1),
+                    list(VV = choose( 10:6, 5:1),
+                         PV = choose( 10, 5:1 ),
+                         VP = choose( 10:6, 5 )))
+    }
+
+    test.sugar.lchoose <- function(){
+	fx <- runit_lchoose
+	checkEquals( fx(10:6,5:1),
+                    list(VV = lchoose( 10:6, 5:1),
+                         PV = lchoose( 10, 5:1 ),
+                         VP = lchoose( 10:6, 5 )) )
+    }
+
+    test.sugar.beta <- function(){
+	fx <- runit_beta
+	checkEquals( fx(10:6,5:1),
+                    list(VV = beta( 10:6, 5:1),
+                         PV = beta( 10, 5:1 ),
+                         VP = beta( 10:6, 5 )))
+    }
+
+    test.sugar.lbeta <- function(){
+	fx <- runit_lbeta
+	checkEquals(fx(10:6,5:1),
+                    list(VV = lbeta( 10:6, 5:1),
+                         PV = lbeta( 10, 5:1 ),
+                         VP = lbeta( 10:6, 5 )))
+    }
+
+    test.sugar.psigamma <- function(){
+	fx <- runit_psigamma
+	checkEquals(fx(10:6,5:1),
+                    list(VV = psigamma( 10:6, 5:1),
+                         PV = psigamma( 10, 5:1 ),
+                         VP = psigamma( 10:6, 5 )))
+    }
+
+    test.sugar.sum <- function(){
+        fx <- runit_sum
+        x <- rnorm( 10 )
+        checkEquals( fx(x), sum(x) )
+        x[4] <- NA
+        checkEquals( fx(x), sum(x) )
+    }
+
+    test.sugar.cumsum <- function(){
+        fx <- runit_cumsum
+        x <- rnorm( 10 )
+        checkEquals( fx(x), cumsum(x) )
+        x[4] <- NA
+        checkEquals( fx(x), cumsum(x) )
+    }
+
+    test.sugar.asvector <- function(){
+        fx <- runit_asvector
+        res <- fx( 1:4, 1:5, diag( 1:5 ) )
+        checkEquals( res[[1]], as.vector( diag(1:5) ) )
+        checkEquals( res[[2]], as.vector( outer( 1:4, 1:5, "+" ) ) )
+    }
+
+    test.sugar.asvector <- function(){
+        fx <- runit_diff_REALSXP_NA
+        x <- c( NA, 1.5, 2.5, NA, 3.5, 5.5, NA )
+        checkEquals( fx(x), c(NA, 1.0, NA, NA, 2.0, NA) )
+    }
+
+                                        # additions 03 Sep 2012
+    test.sugar.trunc <- function() {
+        fx <- runit_trunc
+        x <- seq(-5,5) + 0.5
+        y <- seq(-5L, 5L)
+        checkEquals(fx(x, y), list(trunc(x), trunc(y)))
+    }
+    test.sugar.round <- function() {
+        fx <- runit_round
+        x <- seq(-5,5) + 0.25
+        checkEquals( fx(x, 0), round(x, 0) )
+        checkEquals( fx(x, 1), round(x, 1) )
+        checkEquals( fx(x, 2), round(x, 2) )
+        checkEquals( fx(x, 3), round(x, 3) )
+    }
+    test.sugar.signif <- function() {
+        fx <- runit_signif
+        x <- seq(-5,5) + 0.25
+        checkEquals( fx(x, 0), signif(x, 0) )
+        checkEquals( fx(x, 1), signif(x, 1) )
+        checkEquals( fx(x, 2), signif(x, 2) )
+        checkEquals( fx(x, 3), signif(x, 3) )
+    }
+
+    test.RangeIndexer <- function(){
+        x <- rnorm(10)
+        checkEquals( runit_RangeIndexer(x), max(x[1:5]) )
+    }
+
+    test.self_match <- function(){
+        x <- sample( letters, 1000, replace = TRUE )
+        checkEquals( runit_self_match(x), match(x,unique(x)) )
+    }
+
+    test.unique <- function() {
+        x <- sample(LETTERS[1:5], 10, TRUE)
+        checkEquals(
+            sort(unique(x)),
+            sort(runit_unique_ch(x)),
+            "unique / character / without NA"
+        )
+
+        x <- c(x, NA, NA)
+        checkEquals(
+            sort(unique(x), na.last = TRUE),
+            sort(runit_unique_ch(x), na.last = TRUE),
+            "unique / character / with NA"
+        )
+
+        x <- sample(1:5, 10, TRUE)
+        checkEquals(
+            sort(unique(x)),
+            sort(runit_unique_int(x)),
+            "unique / integer / without NA"
+        )
+
+        x <- c(x, NA, NA)
+        checkEquals(
+            sort(unique(x), na.last = TRUE),
+            sort(runit_unique_int(x), na.last = TRUE),
+            "unique / integer / with NA"
+        )
+
+        x <- sample(1:5 + 0.5, 10, TRUE)
+        checkEquals(
+            sort(unique(x)),
+            sort(runit_unique_dbl(x)),
+            "unique / numeric / without NA"
+        )
+
+        x <- c(x, NA, NA)
+        checkEquals(
+            sort(unique(x), na.last = TRUE),
+            sort(runit_unique_dbl(x), na.last = TRUE),
+            "unique / numeric / with NA"
+        )
+    }
+
+    test.table <- function(){
+        x <- sample( letters, 1000, replace = TRUE )
+        checkTrue( all( runit_table(x) == table(x) ) )
+        checkTrue( all( names(runit_table(x)) == names(table(x)) ) )
+    }
+
+    test.duplicated <- function(){
+        x <- sample( letters, 1000, replace = TRUE )
+        checkEquals( runit_duplicated(x), duplicated(x) )
+    }
+
+    test.setdiff <- function(){
+        checkEquals(sort(runit_setdiff( 1:10, 1:5 )), sort(setdiff( 1:10, 1:5)))
+    }
+
+    test.setequal <- function() {
+        checkTrue(runit_setequal_integer(1:10, 10:1))
+        checkTrue(runit_setequal_character(c("a", "b", "c"), c("c", "b", "a")))
+        checkTrue(!runit_setequal_character(c("a", "b"), c("c")))
+    }
+
+    test.union <- function(){
+        checkEquals(sort(runit_union( 1:10, 1:5 )), sort(union( 1:10, 1:5 )))
+    }
+
+    test.intersect <- function(){
+        checkEquals(sort(runit_intersect(1:10, 1:5)), intersect(1:10, 1:5))
+    }
+
+    test.clamp <- function(){
+        r_clamp <- function(a, x, b) pmax(a, pmin(x, b) )
+        checkEquals(runit_clamp( -1, seq(-3,3, length=100), 1 ),
+                    r_clamp( -1, seq(-3,3, length=100), 1 ))
+    }
+
+    test.vector.scalar.ops <- function( ){
+        x <- rnorm(10)
+        checkEquals(vector_scalar_ops(x), list(x + 2, 2 - x, x * 2, 2 / x), "sugar vector scalar operations")
+    }
+
+    test.vector.scalar.logical <- function( ){
+        x <- rnorm(10) + 2
+        checkEquals(vector_scalar_logical(x), list(x < 2, 2 > x, x <= 2, 2 != x),
+                    "sugar vector scalar logical operations")
+    }
+
+    test.vector.vector.ops <- function( ){
+        x <- rnorm(10)
+        y <- runif(10)
+        checkEquals(vector_vector_ops(x,y),
+                    list(x + y, y - x, x * y, y / x),
+                    "sugar vector vector operations")
+    }
+
+    test.vector.vector.logical <- function( ){
+        x <- rnorm(10)
+        y <- runif(10)
+        checkEquals(vector_vector_logical(x,y),
+                    list(x < y, x > y, x <= y, x >= y, x == y, x != y),
+                    "sugar vector vector operations")
+    }
+
+    ## Additions made 1 Jan 2015
+
+    test.mean.integer <- function() {
+        v1 <- seq(-100L, 100L)
+        v2 <- c(v1, NA)
+        checkEquals(mean(v1), meanInteger(v1), "mean of integer vector")
+        checkEquals(mean(v2), meanInteger(v2), "mean of integer vector with NA")
+    }
+
+    test.mean.numeric <- function() {
+        v1 <- seq(-100, 100)
+        v2 <- c(v1, NA)
+        v3 <- c(v1, Inf)
+        checkEquals(mean(v1), meanNumeric(v1), "mean of numeric vector")
+        checkEquals(mean(v2), meanNumeric(v2), "mean of numeric vector with NA")
+        checkEquals(mean(v3), meanNumeric(v3), "mean of numeric vector with Inf")
+    }
+
+    test.mean.complex <- function() {
+        v1 <- seq(-100, 100)  + 1.0i
+        v2 <- c(v1, NA)
+        v3 <- c(v1, Inf)
+        checkEquals(mean(v1), meanComplex(v1), "mean of complex vector")
+        checkEquals(mean(v2), meanComplex(v2), "mean of complex vector with NA")
+        checkEquals(mean(v3), meanComplex(v3), "mean of complex vector with Inf")
+    }
+
+    test.mean.logical <- function() {
+        v1 <- c(rep(TRUE, 50), rep(FALSE, 25))
+        v2 <- c(v1, NA)
+        checkEquals(mean(v1), meanLogical(v1), "mean of logical vector")
+        checkEquals(mean(v2), meanLogical(v2), "mean of logical vector with NA")
+    }
+
+
+    ## 30 Oct 2015: cumprod, cummin, cummax
+    # base::cumprod defined for numeric, integer, and complex vectors
+    test.sugar.cumprod_nv <- function() {
+        fx <- runit_cumprod_nv
+        x <- rnorm(10)
+        checkEquals(fx(x), cumprod(x))
+        x[4] <- NA
+        checkEquals(fx(x), cumprod(x))
+    }
+
+    test.sugar.cumprod_iv <- function() {
+        fx <- runit_cumprod_iv
+        x <- as.integer(rpois(10, 5))
+        checkEquals(fx(x), cumprod(x))
+        x[4] <- NA
+        checkEquals(fx(x), cumprod(x))
+    }
+
+    test.sugar.cumprod_cv <- function() {
+        fx <- runit_cumprod_cv
+        x <- rnorm(10) + 2i
+        checkEquals(fx(x), cumprod(x))
+        x[4] <- NA
+        checkEquals(fx(x), cumprod(x))
+    }
+
+    # base::cummin defined for numeric and integer vectors
+    test.sugar.cummin_nv <- function() {
+        fx <- runit_cummin_nv
+        x <- rnorm(10)
+        checkEquals(fx(x), cummin(x))
+        x[4] <- NA
+        checkEquals(fx(x), cummin(x))
+    }
+
+    test.sugar.cummin_iv <- function() {
+        fx <- runit_cummin_iv
+        x <- as.integer(rpois(10, 5))
+        checkEquals(fx(x), cummin(x))
+        x[4] <- NA
+        checkEquals(fx(x), cummin(x))
+    }
+
+    # base::cummax defined for numeric and integer vectors
+    test.sugar.cummax_nv <- function() {
+        fx <- runit_cummax_nv
+        x <- rnorm(10)
+        checkEquals(fx(x), cummax(x))
+        x[4] <- NA
+        checkEquals(fx(x), cummax(x))
+    }
+
+    test.sugar.cummax_iv <- function() {
+        fx <- runit_cummax_iv
+        x <- as.integer(rpois(10, 5))
+        checkEquals(fx(x), cummax(x))
+        x[4] <- NA
+        checkEquals(fx(x), cummax(x))
+    }
+
+
+    ## 18 January 2016: median
+    ## median of integer vector
+    test.sugar.median_int <- function() {
+        fx <- median_int
+
+        x <- as.integer(rpois(5, 20))
+        checkEquals(fx(x), median(x),
+                    "median_int / odd length / no NA / na.rm = FALSE")
+
+        x[4] <- NA
+        checkEquals(fx(x), median(x),
+                    "median_int / odd length / with NA / na.rm = FALSE")
+
+        checkEquals(fx(x, TRUE), median(x, TRUE),
+                    "median_int / odd length / with NA / na.rm = TRUE")
+
+        ##
+        x <- as.integer(rpois(6, 20))
+        checkEquals(fx(x), median(x),
+                    "median_int / even length / no NA / na.rm = FALSE")
+
+        x[4] <- NA
+        checkEquals(fx(x), median(x),
+                    "median_int / even length / with NA / na.rm = FALSE")
+
+        checkEquals(fx(x, TRUE), median(x, TRUE),
+                    "median_int / even length / with NA / na.rm = TRUE")
+    }
+
+    ## median of numeric vector
+    test.sugar.median_dbl <- function() {
+        fx <- median_dbl
+
+        x <- rnorm(5)
+        checkEquals(fx(x), median(x),
+                    "median_dbl / odd length / no NA / na.rm = FALSE")
+
+        x[4] <- NA
+        checkEquals(fx(x), median(x),
+                    "median_dbl / odd length / with NA / na.rm = FALSE")
+
+        checkEquals(fx(x, TRUE), median(x, TRUE),
+                    "median_dbl / odd length / with NA / na.rm = TRUE")
+
+        ##
+        x <- rnorm(6)
+        checkEquals(fx(x), median(x),
+                    "median_dbl / even length / no NA / na.rm = FALSE")
+
+        x[4] <- NA
+        checkEquals(fx(x), median(x),
+                    "median_dbl / even length / with NA / na.rm = FALSE")
+
+        checkEquals(fx(x, TRUE), median(x, TRUE),
+                    "median_dbl / even length / with NA / na.rm = TRUE")
+    }
+
+    ## median of complex vector
+    test.sugar.median_cx <- function() {
+        fx <- median_cx
+
+        x <- rnorm(5) + 2i
+        checkEquals(fx(x), median(x),
+                    "median_cx / odd length / no NA / na.rm = FALSE")
+
+        x[4] <- NA
+        checkEquals(fx(x), median(x),
+                    "median_cx / odd length / with NA / na.rm = FALSE")
+
+        checkEquals(fx(x, TRUE), median(x, TRUE),
+                    "median_cx / odd length / with NA / na.rm = TRUE")
+
+        ##
+        x <- rnorm(6) + 2i
+        checkEquals(fx(x), median(x),
+                    "median_cx / even length / no NA / na.rm = FALSE")
+
+        x[4] <- NA
+        checkEquals(fx(x), median(x),
+                    "median_cx / even length / with NA / na.rm = FALSE")
+
+        checkEquals(fx(x, TRUE), median(x, TRUE),
+                    "median_cx / even length / with NA / na.rm = TRUE")
+    }
+
+    ## median of character vector
+    test.sugar.median_ch <- function() {
+        fx <- median_ch
+
+        x <- sample(letters, 5)
+        checkEquals(fx(x), median(x),
+                    "median_ch / odd length / no NA / na.rm = FALSE")
+
+        x[4] <- NA
+        checkEquals(fx(x), median(x),
+                    "median_ch / odd length / with NA / na.rm = FALSE")
+
+        ## median(x, TRUE) returns NA_real_ for character vector input
+        ## which results in a warning; i.e. if the vector it passes to
+        ## `mean.default(sort(x, partial = half + 0L:1L)[half + 0L:1L])`
+        ## has ((length(x) %% 2) == 0)
+
+        checkEquals(fx(x, TRUE),
+                    as.character(suppressWarnings(median(x, TRUE))),
+                    "median_ch / odd length / with NA / na.rm = TRUE")
+
+        ##
+        x <- sample(letters, 6)
+        checkEquals(fx(x),
+                    as.character(suppressWarnings(median(x))),
+                    "median_ch / even length / no NA / na.rm = FALSE")
+
+        x[4] <- NA
+        checkEquals(fx(x),
+                    as.character(suppressWarnings(median(x))),
+                    "median_ch / even length / with NA / na.rm = FALSE")
+
+        checkEquals(fx(x, TRUE),
+                    as.character(suppressWarnings(median(x, TRUE))),
+                    "median_ch / even length / with NA / na.rm = TRUE")
+    }
+
+
+    ## 12 March 2016
+    ## cbind numeric tests
+    test.sugar.cbind_numeric <- function() {
+
+        m1 <- matrix(rnorm(9), 3, 3); m2 <- matrix(rnorm(9), 3, 3)
+        v1 <- rnorm(3); v2 <- rnorm(3)
+        s1 <- rnorm(1); s2 <- rnorm(1)
+
+        cbind <- function(...) {
+            base::cbind(..., deparse.level = 0)
+        }
+
+        checkEquals(n_cbind_mm(m1, m2), cbind(m1, m2),
+                    "numeric cbind / matrix matrix")
+
+        checkEquals(n_cbind_mv(m1, v1), cbind(m1, v1),
+                    "numeric cbind / matrix vector")
+
+        checkEquals(n_cbind_ms(m1, s1), cbind(m1, s1),
+                    "numeric cbind / matrix scalar")
+
+        checkEquals(n_cbind_vv(v1, v2), cbind(v1, v2),
+                    "numeric cbind / vector vector")
+
+        checkEquals(n_cbind_vm(v1, m1), cbind(v1, m1),
+                    "numeric cbind / vector matrix")
+
+        checkEquals(n_cbind_vs(v1, s1), cbind(v1, s1),
+                    "numeric cbind / vector scalar")
+
+        checkEquals(n_cbind_ss(s1, s2), cbind(s1, s2),
+                    "numeric cbind / scalar scalar")
+
+        checkEquals(n_cbind_sm(s1, m1), cbind(s1, m1),
+                    "numeric cbind / scalar matrix")
+
+        checkEquals(n_cbind_sv(s1, v1), cbind(s1, v1),
+                    "numeric cbind / scalar vector")
+
+        checkEquals(n_cbind9(m1, v1, s1, m2, v2, s2, m1, v1, s1),
+                    cbind(m1, v1, s1, m2, v2, s2, m1, v1, s1),
+                    "numeric cbind 9")
+
+    }
+
+    ## cbind integer tests
+    test.sugar.cbind_integer <- function() {
+
+        m1 <- matrix(rpois(9, 20), 3, 3); m2 <- matrix(rpois(9, 20), 3, 3)
+        v1 <- rpois(3, 30); v2 <- rpois(3, 30)
+        s1 <- rpois(1, 40); s2 <- rpois(1, 40)
+
+        cbind <- function(...) {
+            base::cbind(..., deparse.level = 0)
+        }
+
+        checkEquals(i_cbind_mm(m1, m2), cbind(m1, m2),
+                    "integer cbind / matrix matrix")
+
+        checkEquals(i_cbind_mv(m1, v1), cbind(m1, v1),
+                    "integer cbind / matrix vector")
+
+        checkEquals(i_cbind_ms(m1, s1), cbind(m1, s1),
+                    "integer cbind / matrix scalar")
+
+        checkEquals(i_cbind_vv(v1, v2), cbind(v1, v2),
+                    "integer cbind / vector vector")
+
+        checkEquals(i_cbind_vm(v1, m1), cbind(v1, m1),
+                    "integer cbind / vector matrix")
+
+        checkEquals(i_cbind_vs(v1, s1), cbind(v1, s1),
+                    "integer cbind / vector scalar")
+
+        checkEquals(i_cbind_ss(s1, s2), cbind(s1, s2),
+                    "integer cbind / scalar scalar")
+
+        checkEquals(i_cbind_sm(s1, m1), cbind(s1, m1),
+                    "integer cbind / scalar matrix")
+
+        checkEquals(i_cbind_sv(s1, v1), cbind(s1, v1),
+                    "integer cbind / scalar vector")
+
+        checkEquals(i_cbind9(m1, v1, s1, m2, v2, s2, m1, v1, s1),
+                    cbind(m1, v1, s1, m2, v2, s2, m1, v1, s1),
+                    "integer cbind 9")
+
+    }
+
+    ## cbind complex tests
+    test.sugar.cbind_complex <- function() {
+
+        m1 <- matrix(rnorm(9), 3, 3) + 2i
+        m2 <- matrix(rnorm(9), 3, 3) + 5i
+        v1 <- rnorm(3) + 3i; v2 <- rnorm(3) + 4i
+        s1 <- rnorm(1) + 4i; s2 <- rnorm(1) + 5i
+
+        cbind <- function(...) {
+            base::cbind(..., deparse.level = 0)
+        }
+
+        checkEquals(cx_cbind_mm(m1, m2), cbind(m1, m2),
+                    "complex cbind / matrix matrix")
+
+        checkEquals(cx_cbind_mv(m1, v1), cbind(m1, v1),
+                    "complex cbind / matrix vector")
+
+        checkEquals(cx_cbind_ms(m1, s1), cbind(m1, s1),
+                    "complex cbind / matrix scalar")
+
+        checkEquals(cx_cbind_vv(v1, v2), cbind(v1, v2),
+                    "complex cbind / vector vector")
+
+        checkEquals(cx_cbind_vm(v1, m1), cbind(v1, m1),
+                    "complex cbind / vector matrix")
+
+        checkEquals(cx_cbind_vs(v1, s1), cbind(v1, s1),
+                    "complex cbind / vector scalar")
+
+        checkEquals(cx_cbind_ss(s1, s2), cbind(s1, s2),
+                    "complex cbind / scalar scalar")
+
+        checkEquals(cx_cbind_sm(s1, m1), cbind(s1, m1),
+                    "complex cbind / scalar matrix")
+
+        checkEquals(cx_cbind_sv(s1, v1), cbind(s1, v1),
+                    "complex cbind / scalar vector")
+
+        checkEquals(cx_cbind9(m1, v1, s1, m2, v2, s2, m1, v1, s1),
+                    cbind(m1, v1, s1, m2, v2, s2, m1, v1, s1),
+                    "complex cbind 9")
+
+    }
+
+    ## cbind logical tests
+    test.sugar.cbind_logical <- function() {
+
+        m1 <- matrix(as.logical(rbinom(9, 1, .5)), 3, 3)
+        m2 <- matrix(as.logical(rbinom(9, 1, .5)), 3, 3)
+        v1 <- as.logical(rbinom(3, 1, .5))
+        v2 <- as.logical(rbinom(3, 1, .5))
+        s1 <- as.logical(rbinom(1, 1, .5))
+        s2 <- as.logical(rbinom(1, 1, .5))
+
+        cbind <- function(...) {
+            base::cbind(..., deparse.level = 0)
+        }
+
+        checkEquals(l_cbind_mm(m1, m2), cbind(m1, m2),
+                    "logical cbind / matrix matrix")
+
+        checkEquals(l_cbind_mv(m1, v1), cbind(m1, v1),
+                    "logical cbind / matrix vector")
+
+        checkEquals(l_cbind_ms(m1, s1), cbind(m1, s1),
+                    "logical cbind / matrix scalar")
+
+        checkEquals(l_cbind_vv(v1, v2), cbind(v1, v2),
+                    "logical cbind / vector vector")
+
+        checkEquals(l_cbind_vm(v1, m1), cbind(v1, m1),
+                    "logical cbind / vector matrix")
+
+        checkEquals(l_cbind_vs(v1, s1), cbind(v1, s1),
+                    "logical cbind / vector scalar")
+
+        checkEquals(l_cbind_ss(s1, s2), cbind(s1, s2),
+                    "logical cbind / scalar scalar")
+
+        checkEquals(l_cbind_sm(s1, m1), cbind(s1, m1),
+                    "logical cbind / scalar matrix")
+
+        checkEquals(l_cbind_sv(s1, v1), cbind(s1, v1),
+                    "logical cbind / scalar vector")
+
+        checkEquals(l_cbind9(m1, v1, s1, m2, v2, s2, m1, v1, s1),
+                    cbind(m1, v1, s1, m2, v2, s2, m1, v1, s1),
+                    "logical cbind 9")
+
+    }
+
+    ## cbind character tests
+    test.sugar.cbind_character <- function() {
+
+        m1 <- matrix(sample(letters, 9, TRUE), 3, 3)
+        m2 <- matrix(sample(LETTERS, 9, TRUE), 3, 3)
+        v1 <- sample(letters, 3, TRUE)
+        v2 <- sample(LETTERS, 3, TRUE)
+
+        cbind <- function(...) {
+            base::cbind(..., deparse.level = 0)
+        }
+
+        checkEquals(c_cbind_mm(m1, m2), cbind(m1, m2),
+                    "logical cbind / matrix matrix")
+
+        checkEquals(c_cbind_mv(m1, v1), cbind(m1, v1),
+                    "logical cbind / matrix vector")
+
+        checkEquals(c_cbind_vv(v1, v2), cbind(v1, v2),
+                    "logical cbind / vector vector")
+
+        checkEquals(c_cbind_vm(v1, m1), cbind(v1, m1),
+                    "logical cbind / vector matrix")
+
+        checkEquals(c_cbind6(m1, v1, m2, v2, m1, v1),
+                    cbind(m1, v1, m2, v2, m1, v1),
+                    "character cbind 6")
+
+    }
+
+
+    ## 04 September 2016
+    ## {row,col}{Sums,Means} numeric tests
+    test.sugar.rowMeans_numeric <- function() {
+
+        x <- matrix(rnorm(9), 3)
+
+        checkEquals(
+            dbl_row_sums(x), rowSums(x),
+            "numeric / rowSums / keep NA / clean input"
+        )
+        checkEquals(
+            dbl_row_sums(x, TRUE), rowSums(x, TRUE),
+            "numeric / rowSums / rm NA / clean input"
+        )
+
+        checkEquals(
+            dbl_col_sums(x), colSums(x),
+            "numeric / colSums / keep NA / clean input"
+        )
+        checkEquals(
+            dbl_col_sums(x, TRUE), colSums(x, TRUE),
+            "numeric / colSums / rm NA / clean input"
+        )
+
+        checkEquals(
+            dbl_row_means(x), rowMeans(x),
+            "numeric / rowMeans / keep NA / clean input"
+        )
+        checkEquals(
+            dbl_row_means(x, TRUE), rowMeans(x, TRUE),
+            "numeric / rowMeans / rm NA / clean input"
+        )
+
+        checkEquals(
+            dbl_col_means(x), colMeans(x),
+            "numeric / colMeans / keep NA / clean input"
+        )
+        checkEquals(
+            dbl_col_means(x, TRUE), colMeans(x, TRUE),
+            "numeric / colMeans / rm NA / clean input"
+        )
+
+
+        x[sample(1:9, 4)] <- NA
+
+        checkEquals(
+            dbl_row_sums(x), rowSums(x),
+            "numeric / rowSums / keep NA / mixed input"
+        )
+        checkEquals(
+            dbl_row_sums(x, TRUE), rowSums(x, TRUE),
+            "numeric / rowSums / rm NA / mixed input"
+        )
+
+        checkEquals(
+            dbl_col_sums(x), colSums(x),
+            "numeric / colSums / keep NA / mixed input"
+        )
+        checkEquals(
+            dbl_col_sums(x, TRUE), colSums(x, TRUE),
+            "numeric / colSums / rm NA / mixed input"
+        )
+
+        checkEquals(
+            dbl_row_means(x), rowMeans(x),
+            "numeric / rowMeans / keep NA / mixed input"
+        )
+        checkEquals(
+            dbl_row_means(x, TRUE), rowMeans(x, TRUE),
+            "numeric / rowMeans / rm NA / mixed input"
+        )
+
+        checkEquals(
+            dbl_col_means(x), colMeans(x),
+            "numeric / colMeans / keep NA / mixed input"
+        )
+        checkEquals(
+            dbl_col_means(x, TRUE), colMeans(x, TRUE),
+            "numeric / colMeans / rm NA / mixed input"
+        )
+
+
+        x[] <- NA_real_
+
+        checkEquals(
+            dbl_row_sums(x), rowSums(x),
+            "numeric / rowSums / keep NA / dirty input"
+        )
+        checkEquals(
+            dbl_row_sums(x, TRUE), rowSums(x, TRUE),
+            "numeric / rowSums / rm NA / dirty input"
+        )
+
+        checkEquals(
+            dbl_col_sums(x), colSums(x),
+            "numeric / colSums / keep NA / dirty input"
+        )
+        checkEquals(
+            dbl_col_sums(x, TRUE), colSums(x, TRUE),
+            "numeric / colSums / rm NA / dirty input"
+        )
+
+        checkEquals(
+            dbl_row_means(x), rowMeans(x),
+            "numeric / rowMeans / keep NA / dirty input"
+        )
+        checkEquals(
+            dbl_row_means(x, TRUE), rowMeans(x, TRUE),
+            "numeric / rowMeans / rm NA / dirty input"
+        )
+
+        checkEquals(
+            dbl_col_means(x), colMeans(x),
+            "numeric / colMeans / keep NA / dirty input"
+        )
+        checkEquals(
+            dbl_col_means(x, TRUE), colMeans(x, TRUE),
+            "numeric / colMeans / rm NA / dirty input"
+        )
+
+    }
+
+
+    ## {row,col}{Sums,Means} integer tests
+    test.sugar.rowMeans_integer <- function() {
+
+        x <- matrix(as.integer(rnorm(9) * 1e4), 3)
+
+        checkEquals(
+            int_row_sums(x), rowSums(x),
+            "integer / rowSums / keep NA / clean input"
+        )
+        checkEquals(
+            int_row_sums(x, TRUE), rowSums(x, TRUE),
+            "integer / rowSums / rm NA / clean input"
+        )
+
+        checkEquals(
+            int_col_sums(x), colSums(x),
+            "integer / colSums / keep NA / clean input"
+        )
+        checkEquals(
+            int_col_sums(x, TRUE), colSums(x, TRUE),
+            "integer / colSums / rm NA / clean input"
+        )
+
+        checkEquals(
+            int_row_means(x), rowMeans(x),
+            "integer / rowMeans / keep NA / clean input"
+        )
+        checkEquals(
+            int_row_means(x, TRUE), rowMeans(x, TRUE),
+            "integer / rowMeans / rm NA / clean input"
+        )
+
+        checkEquals(
+            int_col_means(x), colMeans(x),
+            "integer / colMeans / keep NA / clean input"
+        )
+        checkEquals(
+            int_col_means(x, TRUE), colMeans(x, TRUE),
+            "integer / colMeans / rm NA / clean input"
+        )
+
+
+        x[sample(1:9, 4)] <- NA
+
+        checkEquals(
+            int_row_sums(x), rowSums(x),
+            "integer / rowSums / keep NA / mixed input"
+        )
+        checkEquals(
+            int_row_sums(x, TRUE), rowSums(x, TRUE),
+            "integer / rowSums / rm NA / mixed input"
+        )
+
+        checkEquals(
+            int_col_sums(x), colSums(x),
+            "integer / colSums / keep NA / mixed input"
+        )
+        checkEquals(
+            int_col_sums(x, TRUE), colSums(x, TRUE),
+            "integer / colSums / rm NA / mixed input"
+        )
+
+        checkEquals(
+            int_row_means(x), rowMeans(x),
+            "integer / rowMeans / keep NA / mixed input"
+        )
+        checkEquals(
+            int_row_means(x, TRUE), rowMeans(x, TRUE),
+            "integer / rowMeans / rm NA / mixed input"
+        )
+
+        checkEquals(
+            int_col_means(x), colMeans(x),
+            "integer / colMeans / keep NA / mixed input"
+        )
+        checkEquals(
+            int_col_means(x, TRUE), colMeans(x, TRUE),
+            "integer / colMeans / rm NA / mixed input"
+        )
+
+
+        x[] <- NA_integer_
+
+        checkEquals(
+            int_row_sums(x), rowSums(x),
+            "integer / rowSums / keep NA / dirty input"
+        )
+        checkEquals(
+            int_row_sums(x, TRUE), rowSums(x, TRUE),
+            "integer / rowSums / rm NA / dirty input"
+        )
+
+        checkEquals(
+            int_col_sums(x), colSums(x),
+            "integer / colSums / keep NA / dirty input"
+        )
+        checkEquals(
+            int_col_sums(x, TRUE), colSums(x, TRUE),
+            "integer / colSums / rm NA / dirty input"
+        )
+
+        checkEquals(
+            int_row_means(x), rowMeans(x),
+            "integer / rowMeans / keep NA / dirty input"
+        )
+        checkEquals(
+            int_row_means(x, TRUE), rowMeans(x, TRUE),
+            "integer / rowMeans / rm NA / dirty input"
+        )
+
+        checkEquals(
+            int_col_means(x), colMeans(x),
+            "integer / colMeans / keep NA / dirty input"
+        )
+        checkEquals(
+            int_col_means(x, TRUE), colMeans(x, TRUE),
+            "integer / colMeans / rm NA / dirty input"
+        )
+
+    }
+
+
+    ## {row,col}{Sums,Means} logical tests
+    test.sugar.rowMeans_logical <- function() {
+
+        x <- matrix(rbinom(9, 1, .5) > 0, 3)
+
+        checkEquals(
+            lgl_row_sums(x), rowSums(x),
+            "logical / rowSums / keep NA / clean input"
+        )
+        checkEquals(
+            lgl_row_sums(x, TRUE), rowSums(x, TRUE),
+            "logical / rowSums / rm NA / clean input"
+        )
+
+        checkEquals(
+            lgl_col_sums(x), colSums(x),
+            "logical / colSums / keep NA / clean input"
+        )
+        checkEquals(
+            lgl_col_sums(x, TRUE), colSums(x, TRUE),
+            "logical / colSums / rm NA / clean input"
+        )
+
+        checkEquals(
+            lgl_row_means(x), rowMeans(x),
+            "logical / rowMeans / keep NA / clean input"
+        )
+        checkEquals(
+            lgl_row_means(x, TRUE), rowMeans(x, TRUE),
+            "logical / rowMeans / rm NA / clean input"
+        )
+
+        checkEquals(
+            lgl_col_means(x), colMeans(x),
+            "logical / colMeans / keep NA / clean input"
+        )
+        checkEquals(
+            lgl_col_means(x, TRUE), colMeans(x, TRUE),
+            "logical / colMeans / rm NA / clean input"
+        )
+
+
+        x[sample(1:9, 4)] <- NA
+
+        checkEquals(
+            lgl_row_sums(x), rowSums(x),
+            "logical / rowSums / keep NA / mixed input"
+        )
+        checkEquals(
+            lgl_row_sums(x, TRUE), rowSums(x, TRUE),
+            "logical / rowSums / rm NA / mixed input"
+        )
+
+        checkEquals(
+            lgl_col_sums(x), colSums(x),
+            "logical / colSums / keep NA / mixed input"
+        )
+        checkEquals(
+            lgl_col_sums(x, TRUE), colSums(x, TRUE),
+            "logical / colSums / rm NA / mixed input"
+        )
+
+        checkEquals(
+            lgl_row_means(x), rowMeans(x),
+            "logical / rowMeans / keep NA / mixed input"
+        )
+        checkEquals(
+            lgl_row_means(x, TRUE), rowMeans(x, TRUE),
+            "logical / rowMeans / rm NA / mixed input"
+        )
+
+        checkEquals(
+            lgl_col_means(x), colMeans(x),
+            "logical / colMeans / keep NA / mixed input"
+        )
+        checkEquals(
+            lgl_col_means(x, TRUE), colMeans(x, TRUE),
+            "logical / colMeans / rm NA / mixed input"
+        )
+
+
+        x[] <- NA_integer_
+
+        checkEquals(
+            lgl_row_sums(x), rowSums(x),
+            "logical / rowSums / keep NA / dirty input"
+        )
+        checkEquals(
+            lgl_row_sums(x, TRUE), rowSums(x, TRUE),
+            "logical / rowSums / rm NA / dirty input"
+        )
+
+        checkEquals(
+            lgl_col_sums(x), colSums(x),
+            "logical / colSums / keep NA / dirty input"
+        )
+        checkEquals(
+            lgl_col_sums(x, TRUE), colSums(x, TRUE),
+            "logical / colSums / rm NA / dirty input"
+        )
+
+        checkEquals(
+            lgl_row_means(x), rowMeans(x),
+            "logical / rowMeans / keep NA / dirty input"
+        )
+        checkEquals(
+            lgl_row_means(x, TRUE), rowMeans(x, TRUE),
+            "logical / rowMeans / rm NA / dirty input"
+        )
+
+        checkEquals(
+            lgl_col_means(x), colMeans(x),
+            "logical / colMeans / keep NA / dirty input"
+        )
+        checkEquals(
+            lgl_col_means(x, TRUE), colMeans(x, TRUE),
+            "logical / colMeans / rm NA / dirty input"
+        )
+
+    }
+
+
+    ## {row,col}{Sums,Means} complex tests
+    test.sugar.rowMeans_complex <- function() {
+
+        x <- matrix(rnorm(9) + 2i, 3)
+
+        checkEquals(
+            cx_row_sums(x), rowSums(x),
+            "complex / rowSums / keep NA / clean input"
+        )
+        checkEquals(
+            cx_row_sums(x, TRUE), rowSums(x, TRUE),
+            "complex / rowSums / rm NA / clean input"
+        )
+
+        checkEquals(
+            cx_col_sums(x), colSums(x),
+            "complex / colSums / keep NA / clean input"
+        )
+        checkEquals(
+            cx_col_sums(x, TRUE), colSums(x, TRUE),
+            "complex / colSums / rm NA / clean input"
+        )
+
+        checkEquals(
+            cx_row_means(x), rowMeans(x),
+            "complex / rowMeans / keep NA / clean input"
+        )
+        checkEquals(
+            cx_row_means(x, TRUE), rowMeans(x, TRUE),
+            "complex / rowMeans / rm NA / clean input"
+        )
+
+        checkEquals(
+            cx_col_means(x), colMeans(x),
+            "complex / colMeans / keep NA / clean input"
+        )
+        checkEquals(
+            cx_col_means(x, TRUE), colMeans(x, TRUE),
+            "complex / colMeans / rm NA / clean input"
+        )
+
+
+        x[sample(1:9, 4)] <- NA
+
+        checkEquals(
+            cx_row_sums(x), rowSums(x),
+            "complex / rowSums / keep NA / mixed input"
+        )
+        checkEquals(
+            cx_row_sums(x, TRUE), rowSums(x, TRUE),
+            "complex / rowSums / rm NA / mixed input"
+        )
+
+        checkEquals(
+            cx_col_sums(x), colSums(x),
+            "complex / colSums / keep NA / mixed input"
+        )
+        checkEquals(
+            cx_col_sums(x, TRUE), colSums(x, TRUE),
+            "complex / colSums / rm NA / mixed input"
+        )
+
+        checkEquals(
+            cx_row_means(x), rowMeans(x),
+            "complex / rowMeans / keep NA / mixed input"
+        )
+        checkEquals(
+            cx_row_means(x, TRUE), rowMeans(x, TRUE),
+            "complex / rowMeans / rm NA / mixed input"
+        )
+
+        checkEquals(
+            cx_col_means(x), colMeans(x),
+            "complex / colMeans / keep NA / mixed input"
+        )
+        checkEquals(
+            cx_col_means(x, TRUE), colMeans(x, TRUE),
+            "complex / colMeans / rm NA / mixed input"
+        )
+
+
+        x[] <- NA_complex_
+
+        checkEquals(
+            cx_row_sums(x), rowSums(x),
+            "complex / rowSums / keep NA / dirty input"
+        )
+        checkEquals(
+            cx_row_sums(x, TRUE), rowSums(x, TRUE),
+            "complex / rowSums / rm NA / dirty input"
+        )
+
+        checkEquals(
+            cx_col_sums(x), colSums(x),
+            "complex / colSums / keep NA / dirty input"
+        )
+        checkEquals(
+            cx_col_sums(x, TRUE), colSums(x, TRUE),
+            "complex / colSums / rm NA / dirty input"
+        )
+
+        checkEquals(
+            cx_row_means(x), rowMeans(x),
+            "complex / rowMeans / keep NA / dirty input"
+        )
+        checkEquals(
+            cx_row_means(x, TRUE), rowMeans(x, TRUE),
+            "complex / rowMeans / rm NA / dirty input"
+        )
+
+        checkEquals(
+            cx_col_means(x), colMeans(x),
+            "complex / colMeans / keep NA / dirty input"
+        )
+        checkEquals(
+            cx_col_means(x, TRUE), colMeans(x, TRUE),
+            "complex / colMeans / rm NA / dirty input"
+        )
+
+    }
+    
+    
+    ## 10 December 2016
+    ## sample.int tests
+    test.sugar.sample_dot_int <- function() {
+        
+        set.seed(123); s1 <- sample_dot_int(10, 5)
+        set.seed(123); s2 <- sample(10, 5)
+        
+        checkEquals(
+            s1, s2,
+            "sample.int / without replacement / without probability"
+        )
+        
+        set.seed(123); s1 <- sample_dot_int(10, 5, TRUE)
+        set.seed(123); s2 <- sample(10, 5, TRUE)
+        
+        checkEquals(
+            s1, s2,
+            "sample.int / with replacement / without probability"
+        )
+        
+
+        px <- rep(c(3, 2, 1), length.out = 10)
+        set.seed(123); s1 <- sample_dot_int(10, 5, FALSE, px)
+        set.seed(123); s2 <- sample(10, 5, FALSE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample.int / without replacement / with probability"
+        )
+        
+        set.seed(123); s1 <- sample_dot_int(10, 5, TRUE, px)
+        set.seed(123); s2 <- sample(10, 5, TRUE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample.int / with replacement / with probability"
+        )
+        
+    }
+    
+    
+    ## sample_int tests
+    test.sugar.sample_int <- function() {
+        
+        x <- as.integer(rpois(10, 10))
+        px <- rep(c(3, 2, 1), length.out = 10)
+        
+        set.seed(123); s1 <- sample_int(x, 6)
+        set.seed(123); s2 <- sample(x, 6)
+        
+        checkEquals(
+            s1, s2,
+            "sample_int / without replacement / without probability"
+        )
+        
+        set.seed(123); s1 <- sample_int(x, 6, TRUE)
+        set.seed(123); s2 <- sample(x, 6, TRUE)
+        
+        checkEquals(
+            s1, s2,
+            "sample_int / with replacement / without probability"
+        )
+        
+        set.seed(123); s1 <- sample_int(x, 6, FALSE, px)
+        set.seed(123); s2 <- sample(x, 6, FALSE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample_int / without replacement / with probability"
+        )
+        
+        set.seed(123); s1 <- sample_int(x, 6, TRUE, px)
+        set.seed(123); s2 <- sample(x, 6, TRUE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample_int / with replacement / with probability"
+        )
+        
+    }
+    
+
+    ## sample_dbl tests
+    test.sugar.sample_dbl <- function() {
+        
+        x <- rnorm(10)
+        px <- rep(c(3, 2, 1), length.out = 10)
+        
+        set.seed(123); s1 <- sample_dbl(x, 6)
+        set.seed(123); s2 <- sample(x, 6)
+        
+        checkEquals(
+            s1, s2,
+            "sample_dbl / without replacement / without probability"
+        )
+        
+        set.seed(123); s1 <- sample_dbl(x, 6, TRUE)
+        set.seed(123); s2 <- sample(x, 6, TRUE)
+        
+        checkEquals(
+            s1, s2,
+            "sample_dbl / with replacement / without probability"
+        )
+        
+        set.seed(123); s1 <- sample_dbl(x, 6, FALSE, px)
+        set.seed(123); s2 <- sample(x, 6, FALSE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample_dbl / without replacement / with probability"
+        )
+        
+        set.seed(123); s1 <- sample_dbl(x, 6, TRUE, px)
+        set.seed(123); s2 <- sample(x, 6, TRUE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample_dbl / with replacement / with probability"
+        )
+        
+    }
+    
+
+    ## sample_chr tests
+    test.sugar.sample_chr <- function() {
+        
+        x <- sample(letters, 10)
+        px <- rep(c(3, 2, 1), length.out = 10)
+        
+        set.seed(123); s1 <- sample_chr(x, 6)
+        set.seed(123); s2 <- sample(x, 6)
+        
+        checkEquals(
+            s1, s2,
+            "sample_chr / without replacement / without probability"
+        )
+        
+        set.seed(123); s1 <- sample_chr(x, 6, TRUE)
+        set.seed(123); s2 <- sample(x, 6, TRUE)
+        
+        checkEquals(
+            s1, s2,
+            "sample_chr / with replacement / without probability"
+        )
+        
+        set.seed(123); s1 <- sample_chr(x, 6, FALSE, px)
+        set.seed(123); s2 <- sample(x, 6, FALSE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample_chr / without replacement / with probability"
+        )
+        
+        set.seed(123); s1 <- sample_chr(x, 6, TRUE, px)
+        set.seed(123); s2 <- sample(x, 6, TRUE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample_chr / with replacement / with probability"
+        )
+        
+    }
+    
+    
+    ## sample_cx tests
+    test.sugar.sample_cx <- function() {
+        
+        x <- rnorm(10) + 2i
+        px <- rep(c(3, 2, 1), length.out = 10)
+        
+        set.seed(123); s1 <- sample_cx(x, 6)
+        set.seed(123); s2 <- sample(x, 6)
+        
+        checkEquals(
+            s1, s2,
+            "sample_cx / without replacement / without probability"
+        )
+        
+        set.seed(123); s1 <- sample_cx(x, 6, TRUE)
+        set.seed(123); s2 <- sample(x, 6, TRUE)
+        
+        checkEquals(
+            s1, s2,
+            "sample_cx / with replacement / without probability"
+        )
+        
+        set.seed(123); s1 <- sample_cx(x, 6, FALSE, px)
+        set.seed(123); s2 <- sample(x, 6, FALSE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample_cx / without replacement / with probability"
+        )
+        
+        set.seed(123); s1 <- sample_cx(x, 6, TRUE, px)
+        set.seed(123); s2 <- sample(x, 6, TRUE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample_cx / with replacement / with probability"
+        )
+        
+    }
+    
+    
+    ## sample_lgl tests
+    test.sugar.sample_lgl <- function() {
+        
+        x <- rbinom(10, 1, 0.5) > 0
+        px <- rep(c(3, 2, 1), length.out = 10)
+        
+        set.seed(123); s1 <- sample_lgl(x, 6)
+        set.seed(123); s2 <- sample(x, 6)
+        
+        checkEquals(
+            s1, s2,
+            "sample_lgl / without replacement / without probability"
+        )
+        
+        set.seed(123); s1 <- sample_lgl(x, 6, TRUE)
+        set.seed(123); s2 <- sample(x, 6, TRUE)
+        
+        checkEquals(
+            s1, s2,
+            "sample_lgl / with replacement / without probability"
+        )
+        
+        set.seed(123); s1 <- sample_lgl(x, 6, FALSE, px)
+        set.seed(123); s2 <- sample(x, 6, FALSE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample_lgl / without replacement / with probability"
+        )
+        
+        set.seed(123); s1 <- sample_lgl(x, 6, TRUE, px)
+        set.seed(123); s2 <- sample(x, 6, TRUE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample_lgl / with replacement / with probability"
+        )
+        
+    }
+    
+    
+    ## sample_list tests
+    test.sugar.sample_list <- function() {
+        
+        x <- list(
+            letters,
+            1:5, 
+            rnorm(10),
+            state.abb,
+            state.area,
+            state.center,
+            matrix(1:9, 3),
+            mtcars,
+            AirPassengers,
+            BJsales
+        )
+        px <- rep(c(3, 2, 1), length.out = 10)
+        
+        set.seed(123); s1 <- sample_list(x, 6)
+        set.seed(123); s2 <- sample(x, 6)
+        
+        checkEquals(
+            s1, s2,
+            "sample_list / without replacement / without probability"
+        )
+        
+        set.seed(123); s1 <- sample_list(x, 6, TRUE)
+        set.seed(123); s2 <- sample(x, 6, TRUE)
+        
+        checkEquals(
+            s1, s2,
+            "sample_list / with replacement / without probability"
+        )
+        
+        set.seed(123); s1 <- sample_list(x, 6, FALSE, px)
+        set.seed(123); s2 <- sample(x, 6, FALSE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample_list / without replacement / with probability"
+        )
+        
+        set.seed(123); s1 <- sample_list(x, 6, TRUE, px)
+        set.seed(123); s2 <- sample(x, 6, TRUE, px)
+        
+        checkEquals(
+            s1, s2,
+            "sample_list / with replacement / with probability"
+        )
+        
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/sugar.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/sugar.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/sugar.cpp	(revision 2476)
@@ -0,0 +1,1190 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// sugar.cpp: Rcpp R/C++ interface class library -- sugar unit tests
+//
+// Copyright (C) 2012 - 2015  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+template <typename T>
+class square : public std::unary_function<T,T> {
+public:
+	T operator()( T t) const { return t*t ; }
+} ;
+
+double raw_square( double x){ return x*x; }
+
+// [[Rcpp::export]]
+List runit_abs( NumericVector xx, IntegerVector yy ){
+    return List::create( abs(xx), abs(yy) ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_all_one_less( NumericVector xx ){
+    return all( xx < 5.0 ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_all_one_greater( NumericVector xx ){
+    return all( xx > 5.0 ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_all_one_less_or_equal( NumericVector xx ){
+    return all( xx <= 5.0 ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_all_one_greater_or_equal( NumericVector xx ){
+    return all( xx >= 5.0 ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_all_one_equal( NumericVector xx ){
+    return all( xx == 5.0 ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_all_not_equal_one( NumericVector xx ){
+    return all( xx != 5.0 ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_all_less( NumericVector xx, NumericVector yy){
+    return all( xx < yy ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_all_greater( NumericVector xx, NumericVector yy ){
+    return all( xx > yy ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_all_less_or_equal( NumericVector xx, NumericVector yy){
+    return all( xx <= yy ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_all_greater_or_equal( NumericVector xx, NumericVector yy){
+    return all( xx >= yy ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_all_equal( NumericVector xx, NumericVector yy){
+    return all( xx == yy ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_all_not_equal( NumericVector xx, NumericVector yy){
+    return all( xx != yy ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_any_less( NumericVector xx, NumericVector yy){
+    return any( xx < yy ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_any_greater( NumericVector xx, NumericVector yy ){
+    return any( xx > yy ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_any_less_or_equal( NumericVector xx, NumericVector yy ){
+    return any( xx <= yy ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_any_greater_or_equal( NumericVector xx, NumericVector yy){
+    return any( xx >= yy ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_any_equal( NumericVector xx, NumericVector yy){
+    return any( xx == yy ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_any_not_equal( NumericVector xx, NumericVector yy){
+    return any( xx != yy ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_constructor( NumericVector xx, NumericVector yy ){
+    LogicalVector res( xx < yy ) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_assignment( NumericVector xx, NumericVector yy ){
+    LogicalVector res;
+    res = xx < yy ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_diff( NumericVector xx){
+    NumericVector res = diff( xx );
+    return res ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_diff_int(IntegerVector xx) {
+    IntegerVector res = diff(xx);
+    return res;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_diff_ifelse( LogicalVector pred, NumericVector xx, NumericVector yy){
+    NumericVector res = ifelse( pred, diff(xx), diff(yy) );
+    return res ;
+}
+
+// [[Rcpp::export]]
+List runit_exp( NumericVector xx, IntegerVector yy ){
+    return List::create( exp(xx), exp(yy) ) ;
+}
+
+// [[Rcpp::export]]
+List runit_floor( NumericVector xx, IntegerVector yy ){
+    return List::create( floor(xx), floor(yy) ) ;
+}
+
+// [[Rcpp::export]]
+List runit_ceil( NumericVector xx, IntegerVector yy){
+    return List::create( ceil(xx), ceil(yy) ) ;
+}
+
+// [[Rcpp::export]]
+List runit_pow( NumericVector xx, IntegerVector yy){
+    return List::create( pow(xx, 3), pow(yy, 2.3) ) ;
+}
+
+// [[Rcpp::export]]
+List runit_ifelse( NumericVector xx, NumericVector yy){
+    return List::create(
+    	 _["vec_vec" ]  = ifelse( xx < yy, xx*xx, -(yy*yy) ),
+    	 _["vec_prim"]  = ifelse( xx < yy, 1.0  , -(yy*yy) ),
+    	 _["prim_vec"]  = ifelse( xx < yy, xx*xx, 1.0      ),
+    	 _["prim_prim"] = ifelse( xx < yy, 1.0, 2.0        )
+    	) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_isna( NumericVector xx){
+    return wrap( is_na( xx ) ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_isfinite( NumericVector xx){
+    return is_finite(xx) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_isinfinite( NumericVector xx){
+    return is_infinite(xx) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_isnan( NumericVector xx){
+    return is_nan(xx) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_isna_isna( NumericVector xx ){
+    return is_na( is_na( xx ) ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_any_isna( NumericVector xx){
+    return any( is_na( xx ) ) ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_na_omit( NumericVector xx ){
+    return na_omit( xx ) ;
+}
+
+// [[Rcpp::export]]
+List runit_lapply( IntegerVector xx){
+    List res = lapply( xx, seq_len );
+    return res ;
+}
+
+// [[Rcpp::export]]
+List runit_minus( IntegerVector xx ){
+    return List::create(
+    	xx - 10,
+    	10 - xx,
+    	xx - xx,
+    	noNA( xx ) - 10,
+    	10 - noNA( xx )
+    	) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_any_equal_not( NumericVector xx, NumericVector yy){
+    return any( !( xx == yy) ) ;
+}
+
+// [[Rcpp::export]]
+List runit_plus( IntegerVector xx ){
+    return List::create(
+    	xx + 10,
+    	10 + xx,
+    	xx + xx,
+    	xx + xx + xx
+    	) ;
+}
+
+// [[Rcpp::export]]
+List runit_plus_seqlen(){
+    return List::create(
+	    seq_len(10) + 10,
+	    10 + seq_len(10),
+	    seq_len(10) + seq_len(10)
+	    ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_plus_all( IntegerVector xx ){
+    return all( (xx+xx) < 10 ) ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pmin( NumericVector xx, NumericVector yy ){
+    NumericVector res = pmin( xx, yy );
+	return res ;
+}
+
+// [[Rcpp::export]]
+List runit_pmin_one( NumericVector xx ){
+    return List::create(
+    	pmin( xx, 5),
+    	pmin( 5, xx)
+    	) ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pmax( NumericVector xx, NumericVector yy ){
+    NumericVector res = pmax( xx, yy );
+    return res ;
+}
+
+// [[Rcpp::export]]
+List runit_pmax_one( NumericVector xx ){
+    return List::create(
+    	pmax( xx, 5),
+    	pmax( 5, xx)
+    	) ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_Range(){
+    NumericVector xx(8) ;
+    xx[ Range(0,3) ] = exp( seq_len(4) ) ;
+    xx[ Range(4,7) ] = exp( - seq_len(4) ) ;
+    return xx ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_range_plus(int start, int end, int n) {
+    IntegerVector vec = Range(start, end) + n;
+    return vec;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_range_minus(int start, int end, int n) {
+    IntegerVector vec = Range(start, end) - n;
+    return vec;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_sapply( NumericVector xx ){
+    NumericVector res = sapply( xx, square<double>() );
+    return res ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_sapply_rawfun( NumericVector xx){
+    NumericVector res = sapply( xx, raw_square );
+    return res ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_sapply_square( NumericVector xx){
+    return all( sapply( xx * xx , square<double>() ) < 10.0 );
+}
+
+// [[Rcpp::export]]
+List runit_sapply_list( IntegerVector xx){
+    List res = sapply( xx, seq_len );
+    return res ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_seqalong( NumericVector xx ){
+    IntegerVector res = seq_along( xx );
+    return res ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_seqlen(){
+    IntegerVector res = seq_len( 10 );
+	return res ;
+}
+
+// [[Rcpp::export]]
+List runit_sign( NumericVector xx, IntegerVector yy ){
+    return List::create(
+	    sign( xx ),
+	    sign( yy )
+	    ) ;
+}
+
+// [[Rcpp::export]]
+List runit_times( IntegerVector xx ){
+    IntegerVector yy = clone<IntegerVector>( xx ) ;
+    yy[0] = NA_INTEGER ;
+
+    return List::create(
+        xx * 10,
+        10 * xx,
+        xx * xx,
+        xx * xx * xx,
+        xx * yy,
+        yy * 10,
+        10 * yy,
+        NA_INTEGER * xx
+    ) ;
+}
+
+// [[Rcpp::export]]
+List runit_divides( NumericVector xx ){
+    return List::create(
+    	xx / 10,
+    	10 / xx,
+    	xx / xx
+    	) ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_unary_minus( NumericVector xx){
+    NumericVector yy = - xx ;
+    return yy ;
+}
+
+// [[Rcpp::export]]
+void runit_wrap( NumericVector xx, NumericVector yy, Environment e ){
+    e["foo"] = xx < yy  ;
+}
+
+// [[Rcpp::export]]
+List runit_complex( ComplexVector cx ){
+    return List::create(
+    	_["Re"]    = Re( cx ),
+    	_["Im"]    = Im( cx ),
+    	_["Conj"]  = Conj( cx ),
+    	_["Mod"]   = Mod( cx ),
+    	_["Arg"]   = Arg( cx ),
+    	_["exp"]   = exp( cx ),
+    	_["log"]   = log( cx ),
+    	_["sqrt"]  = sqrt( cx ),
+    	_["cos"]   = cos( cx ),
+    	_["sin"]   = sin( cx ),
+    	_["tan"]   = tan( cx ),
+    	_["acos"]  = acos( cx ),
+    	_["asin"]  = asin( cx ),
+    	_["atan"]  = atan( cx ),
+    	// _["acosh"] = acosh( cx ),
+    	_["asinh"] = asinh( cx ),
+    	_["atanh"] = atanh( cx ),
+    	_["cosh"]  = cosh( cx ),
+    	_["sinh"]  = sinh( cx ),
+    	_["tanh"]  = tanh( cx )
+    	) ;
+}
+
+// [[Rcpp::export]]
+List runit_rep( IntegerVector xx ){
+    List res = List::create(
+    	_["rep"]      = rep( xx, 3 ),
+    	_["rep_each"] = rep_each( xx, 3 ),
+    	_["rep_len"]  = rep_len( xx, 12 ),
+    	_["rep_prim_double"] = rep( 0.0, 10 )
+    	) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_rev( IntegerVector xx ){
+    IntegerVector yy = rev( xx * xx );
+    return yy ;
+}
+
+// [[Rcpp::export]]
+NumericMatrix runit_outer( NumericVector xx, NumericVector yy){
+    NumericMatrix m = outer( xx, yy, std::plus<double>() ) ;
+    return m ;
+}
+
+// [[Rcpp::export]]
+List runit_row( NumericMatrix xx ){
+    return List::create(
+    	_["row"] = row( xx ),
+    	_["col"] = col( xx )
+    	 ) ;
+}
+
+// [[Rcpp::export]]
+List runit_head( NumericVector xx ){
+    return List::create(
+    	_["pos"] = head( xx, 5 ),
+    	_["neg"] = head( xx, -5 )
+    ) ;
+}
+
+// [[Rcpp::export]]
+List runit_tail( NumericVector xx ){
+    return List::create(
+    	_["pos"] = tail( xx, 5 ),
+    	_["neg"] = tail( xx, -5 )
+    ) ;
+}
+
+// [[Rcpp::export]]
+List runit_diag( NumericVector xx, NumericMatrix mm ){
+    return List::create(
+    	diag( xx ) ,
+    	diag( mm ),
+    	diag( outer( xx, xx, std::plus<double>() ) )
+    	) ;
+}
+
+// [[Rcpp::export]]
+List runit_gamma( NumericVector xx ){
+    return List::create(
+    	_["gamma"]      = gamma(xx),
+    	_["lgamma"]     = lgamma(xx),
+    	_["digamma"]    = digamma(xx),
+    	_["trigamma"]   = trigamma(xx),
+    	_["tetragamma"] = tetragamma(xx),
+    	_["pentagamma"] = pentagamma(xx),
+    	_["factorial"]  = factorial(xx),
+    	_["lfactorial"] = lfactorial(xx)
+    	) ;
+}
+
+// [[Rcpp::export]]
+List runit_choose( NumericVector nn, NumericVector kk ){
+    return List::create(
+    	_["VV"] = choose(nn,kk),
+    	_["PV"] = choose(10.0, kk ),
+    	_["VP"] = choose(nn, 5.0 )
+    	) ;
+}
+
+// [[Rcpp::export]]
+List runit_lchoose( NumericVector nn, NumericVector kk){
+    return List::create(
+    	_["VV"] = lchoose(nn,kk),
+    	_["PV"] = lchoose(10.0, kk ),
+    	_["VP"] = lchoose(nn, 5.0 )
+    	) ;
+}
+
+// [[Rcpp::export]]
+List runit_beta( NumericVector nn, NumericVector kk){
+    return List::create(
+    	_["VV"] = beta(nn,kk),
+    	_["PV"] = beta(10.0, kk ),
+    	_["VP"] = beta(nn, 5.0 )
+    	) ;
+}
+
+// [[Rcpp::export]]
+List runit_psigamma( NumericVector nn, NumericVector kk){
+    return List::create(
+    	_["VV"] = psigamma(nn,kk),
+    	_["PV"] = psigamma(10.0, kk ),
+    	_["VP"] = psigamma(nn, 5.0 )
+    	) ;
+}
+
+// [[Rcpp::export]]
+List runit_lbeta( NumericVector nn, NumericVector kk){
+    return List::create(
+    	_["VV"] = lbeta(nn,kk),
+    	_["PV"] = lbeta(10.0, kk ),
+    	_["VP"] = lbeta(nn, 5.0 )
+    	) ;
+}
+
+// [[Rcpp::export]]
+List runit_log1p( NumericVector xx){
+    return List::create(
+    	_["log1p"] = log1p(xx),
+    	_["expm1"] = expm1(xx)
+    	) ;
+}
+
+// [[Rcpp::export]]
+double runit_sum( NumericVector xx){
+    return sum( xx ) ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_cumsum( NumericVector xx ){
+    NumericVector res = cumsum( xx ) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+List runit_asvector( NumericMatrix z, NumericVector x, NumericVector y){
+    return List::create(
+        as_vector( z ),
+        as_vector( outer( x , y , std::plus<double>() ) )
+    ) ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_diff_REALSXP_NA( NumericVector x ){
+    NumericVector res= diff(x) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+List runit_trunc( NumericVector xx, IntegerVector yy){
+    return List::create(trunc(xx), trunc(yy)) ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_round( NumericVector xx, int d ){
+    NumericVector res = round(xx, d);
+    return res ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_signif( NumericVector xx, int d ){
+    NumericVector res = signif(xx, d);
+    return res ;
+}
+
+// [[Rcpp::export]]
+double runit_RangeIndexer( NumericVector x ){
+    return max( x[ seq(0, 4) ] ) ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_self_match( CharacterVector x){
+    return self_match( x ) ;
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerVector runit_unique_int(Rcpp::IntegerVector x) {
+    return Rcpp::unique(x);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericVector runit_unique_dbl(Rcpp::NumericVector x) {
+    return Rcpp::unique(x);
+}
+
+// [[Rcpp::export]]
+Rcpp::CharacterVector runit_unique_ch(Rcpp::CharacterVector x) {
+    return Rcpp::unique(x);
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_table( CharacterVector x){
+    return table( x ) ;
+}
+
+// [[Rcpp::export]]
+LogicalVector runit_duplicated( CharacterVector x){
+    return duplicated( x ) ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_union( IntegerVector x, IntegerVector y){
+    return union_( x, y) ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_setdiff( IntegerVector x, IntegerVector y){
+    return setdiff( x, y) ;
+}
+
+// [[Rcpp::export]]
+bool runit_setequal_integer(IntegerVector x, IntegerVector y) {
+    return setequal(x, y);
+}
+
+// [[Rcpp::export]]
+bool runit_setequal_character(CharacterVector x, CharacterVector y) {
+    return setequal(x, y);
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_intersect( IntegerVector x, IntegerVector y){
+    return intersect( x, y ) ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_clamp( double a, NumericVector x, double b){
+    return clamp( a, x, b ) ;
+}
+
+// [[Rcpp::export]]
+List vector_scalar_ops( NumericVector xx ){
+			NumericVector y1 = xx + 2.0;  // NB does not work with ints as eg "+ 2L"
+			NumericVector y2 = 2 - xx;
+			NumericVector y3 = xx * 2.0;
+			NumericVector y4 = 2.0 / xx;
+			return List::create(y1, y2, y3, y4);
+}
+
+// [[Rcpp::export]]
+List vector_scalar_logical( NumericVector xx ){
+			LogicalVector y1 = xx < 2;
+			LogicalVector y2 = 2  > xx;
+			LogicalVector y3 = xx <= 2;
+			LogicalVector y4 = 2 != xx;
+			return List::create(y1, y2, y3, y4);
+}
+
+// [[Rcpp::export]]
+List vector_vector_ops( NumericVector xx, NumericVector yy){
+			NumericVector y1 = xx + yy;
+			NumericVector y2 = yy - xx;
+			NumericVector y3 = xx * yy;
+			NumericVector y4 = yy / xx;
+			return List::create(y1, y2, y3, y4);
+}
+
+// [[Rcpp::export]]
+List vector_vector_logical( NumericVector xx, NumericVector yy){
+			LogicalVector y1 = xx < yy;
+			LogicalVector y2 = xx > yy;
+			LogicalVector y3 = xx <= yy;
+			LogicalVector y4 = xx >= yy;
+			LogicalVector y5 = xx == yy;
+			LogicalVector y6 = xx != yy;
+			return List::create(y1, y2, y3, y4, y5, y6);
+}
+
+// Additions made 1 Jan 2015
+
+// [[Rcpp::export]]
+double meanInteger(Rcpp::IntegerVector x) { return Rcpp::mean(x); }
+
+// [[Rcpp::export]]
+double meanNumeric(Rcpp::NumericVector x) { return(Rcpp::mean(x)); }
+
+// [[Rcpp::export]]
+double meanLogical(Rcpp::LogicalVector x) { return(Rcpp::mean(x)); }
+
+// [[Rcpp::export]]
+Rcomplex meanComplex(Rcpp::ComplexVector x) { return(Rcpp::mean(x)); }
+
+
+// 30 Oct 2015: cumprod, cummin, cummax
+
+// [[Rcpp::export]]
+NumericVector runit_cumprod_nv(NumericVector xx){
+    NumericVector res = cumprod(xx) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_cumprod_iv(IntegerVector xx){
+    IntegerVector res = cumprod(xx) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+ComplexVector runit_cumprod_cv(ComplexVector xx){
+    ComplexVector res = cumprod(xx) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_cummin_nv(NumericVector xx){
+    NumericVector res = cummin(xx) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_cummin_iv(IntegerVector xx){
+    IntegerVector res = cummin(xx) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_cummax_nv(NumericVector xx){
+    NumericVector res = cummax(xx) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_cummax_iv(IntegerVector xx){
+    IntegerVector res = cummax(xx) ;
+    return res ;
+}
+
+
+// 18 January 2016: median 
+
+// [[Rcpp::export]]
+double median_dbl(Rcpp::NumericVector x, bool na_rm = false) {
+    return Rcpp::median(x, na_rm);
+}
+
+// [[Rcpp::export]]
+double median_int(Rcpp::IntegerVector x, bool na_rm = false) {
+    return Rcpp::median(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcomplex median_cx(Rcpp::ComplexVector x, bool na_rm = false) {
+    return Rcpp::median(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcpp::String median_ch(Rcpp::CharacterVector x, bool na_rm = false) {
+    return Rcpp::median(x, na_rm);
+}
+
+
+// 12 March 2016: cbind
+// A. Numeric*
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix n_cbind_mm(Rcpp::NumericMatrix m1, Rcpp::NumericMatrix m2) {
+    return Rcpp::cbind(m1, m2);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix n_cbind_mv(Rcpp::NumericMatrix m1, Rcpp::NumericVector v1) {
+    return Rcpp::cbind(m1, v1);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix n_cbind_ms(Rcpp::NumericMatrix m1, double s1) {
+    return Rcpp::cbind(m1, s1);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix n_cbind_vv(Rcpp::NumericVector v1, Rcpp::NumericVector v2) {
+    return Rcpp::cbind(v1, v2);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix n_cbind_vm(Rcpp::NumericVector v1, Rcpp::NumericMatrix m1) {
+    return Rcpp::cbind(v1, m1);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix n_cbind_vs(Rcpp::NumericVector v1, double s1) {
+    return Rcpp::cbind(v1, s1);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix n_cbind_sm(double s1, Rcpp::NumericMatrix m1) {
+    return Rcpp::cbind(s1, m1);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix n_cbind_sv(double s1, Rcpp::NumericVector v1) {
+    return Rcpp::cbind(s1, v1);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix n_cbind_ss(double s1, double s2) {
+    return Rcpp::cbind(s1, s2);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix 
+n_cbind9(Rcpp::NumericMatrix m1, Rcpp::NumericVector v1, double s1,
+         Rcpp::NumericMatrix m2, Rcpp::NumericVector v2, double s2,
+         Rcpp::NumericMatrix m3, Rcpp::NumericVector v3, double s3) {
+    return Rcpp::cbind(m1, v1, s1, m2, v2, s2, m3, v3, s3);
+}
+
+
+// B. Integer*
+
+// [[Rcpp::export]]
+Rcpp::IntegerMatrix 
+i_cbind_mm(Rcpp::IntegerMatrix m1, Rcpp::IntegerMatrix m2) {
+    return Rcpp::cbind(m1, m2);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerMatrix 
+i_cbind_mv(Rcpp::IntegerMatrix m1, Rcpp::IntegerVector v1) {
+    return Rcpp::cbind(m1, v1);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerMatrix 
+i_cbind_ms(Rcpp::IntegerMatrix m1, int s1) {
+    return Rcpp::cbind(m1, s1);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerMatrix 
+i_cbind_vv(Rcpp::IntegerVector v1, Rcpp::IntegerVector v2) {
+    return Rcpp::cbind(v1, v2);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerMatrix 
+i_cbind_vm(Rcpp::IntegerVector v1, Rcpp::IntegerMatrix m1) {
+    return Rcpp::cbind(v1, m1);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerMatrix 
+i_cbind_vs(Rcpp::IntegerVector v1, int s1) {
+    return Rcpp::cbind(v1, s1);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerMatrix 
+i_cbind_sm(int s1, Rcpp::IntegerMatrix m1) {
+    return Rcpp::cbind(s1, m1);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerMatrix 
+i_cbind_sv(int s1, Rcpp::IntegerVector v1) {
+    return Rcpp::cbind(s1, v1);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerMatrix 
+i_cbind_ss(int s1, int s2) {
+    return Rcpp::cbind(s1, s2);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerMatrix 
+i_cbind9(Rcpp::IntegerMatrix m1, Rcpp::IntegerVector v1, int s1,
+         Rcpp::IntegerMatrix m2, Rcpp::IntegerVector v2, int s2,
+         Rcpp::IntegerMatrix m3, Rcpp::IntegerVector v3, int s3) {
+    return Rcpp::cbind(m1, v1, s1, m2, v2, s2, m3, v3, s3);
+}
+
+
+// C. Complex*
+
+// [[Rcpp::export]]
+Rcpp::ComplexMatrix 
+cx_cbind_mm(Rcpp::ComplexMatrix m1, Rcpp::ComplexMatrix m2) {
+    return Rcpp::cbind(m1, m2);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexMatrix 
+cx_cbind_mv(Rcpp::ComplexMatrix m1, Rcpp::ComplexVector v1) {
+    return Rcpp::cbind(m1, v1);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexMatrix 
+cx_cbind_ms(Rcpp::ComplexMatrix m1, Rcomplex s1) {
+    return Rcpp::cbind(m1, s1);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexMatrix 
+cx_cbind_vv(Rcpp::ComplexVector v1, Rcpp::ComplexVector v2) {
+    return Rcpp::cbind(v1, v2);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexMatrix 
+cx_cbind_vm(Rcpp::ComplexVector v1, Rcpp::ComplexMatrix m1) {
+    return Rcpp::cbind(v1, m1);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexMatrix 
+cx_cbind_vs(Rcpp::ComplexVector v1, Rcomplex s1) {
+    return Rcpp::cbind(v1, s1);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexMatrix 
+cx_cbind_sm(Rcomplex s1, Rcpp::ComplexMatrix m1) {
+    return Rcpp::cbind(s1, m1);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexMatrix 
+cx_cbind_sv(Rcomplex s1, Rcpp::ComplexVector v1) {
+    return Rcpp::cbind(s1, v1);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexMatrix 
+cx_cbind_ss(Rcomplex s1, Rcomplex s2) {
+    return Rcpp::cbind(s1, s2);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexMatrix 
+cx_cbind9(Rcpp::ComplexMatrix m1, Rcpp::ComplexVector v1, Rcomplex s1,
+         Rcpp::ComplexMatrix m2, Rcpp::ComplexVector v2, Rcomplex s2,
+         Rcpp::ComplexMatrix m3, Rcpp::ComplexVector v3, Rcomplex s3) {
+    return Rcpp::cbind(m1, v1, s1, m2, v2, s2, m3, v3, s3);
+}
+
+
+// D. Logical*
+
+// [[Rcpp::export]]
+Rcpp::LogicalMatrix 
+l_cbind_mm(Rcpp::LogicalMatrix m1, Rcpp::LogicalMatrix m2) {
+    return Rcpp::cbind(m1, m2);
+}
+
+// [[Rcpp::export]]
+Rcpp::LogicalMatrix 
+l_cbind_mv(Rcpp::LogicalMatrix m1, Rcpp::LogicalVector v1) {
+    return Rcpp::cbind(m1, v1);
+}
+
+// [[Rcpp::export]]
+Rcpp::LogicalMatrix 
+l_cbind_ms(Rcpp::LogicalMatrix m1, bool s1) {
+    return Rcpp::cbind(m1, s1);
+}
+
+// [[Rcpp::export]]
+Rcpp::LogicalMatrix 
+l_cbind_vv(Rcpp::LogicalVector v1, Rcpp::LogicalVector v2) {
+    return Rcpp::cbind(v1, v2);
+}
+
+// [[Rcpp::export]]
+Rcpp::LogicalMatrix 
+l_cbind_vm(Rcpp::LogicalVector v1, Rcpp::LogicalMatrix m1) {
+    return Rcpp::cbind(v1, m1);
+}
+
+// [[Rcpp::export]]
+Rcpp::LogicalMatrix 
+l_cbind_vs(Rcpp::LogicalVector v1, bool s1) {
+    return Rcpp::cbind(v1, s1);
+}
+
+// [[Rcpp::export]]
+Rcpp::LogicalMatrix 
+l_cbind_sm(bool s1, Rcpp::LogicalMatrix m1) {
+    return Rcpp::cbind(s1, m1);
+}
+
+// [[Rcpp::export]]
+Rcpp::LogicalMatrix 
+l_cbind_sv(bool s1, Rcpp::LogicalVector v1) {
+    return Rcpp::cbind(s1, v1);
+}
+
+// [[Rcpp::export]]
+Rcpp::LogicalMatrix 
+l_cbind_ss(bool s1, bool s2) {
+    return Rcpp::cbind(s1, s2);
+}
+
+// [[Rcpp::export]]
+Rcpp::LogicalMatrix 
+l_cbind9(Rcpp::LogicalMatrix m1, Rcpp::LogicalVector v1, bool s1,
+         Rcpp::LogicalMatrix m2, Rcpp::LogicalVector v2, bool s2,
+         Rcpp::LogicalMatrix m3, Rcpp::LogicalVector v3, bool s3) {
+    return Rcpp::cbind(m1, v1, s1, m2, v2, s2, m3, v3, s3);
+}
+
+
+// E. Character*
+
+// [[Rcpp::export]]
+Rcpp::CharacterMatrix 
+c_cbind_mm(Rcpp::CharacterMatrix m1, Rcpp::CharacterMatrix m2) {
+    return Rcpp::cbind(m1, m2);
+}
+
+// [[Rcpp::export]]
+Rcpp::CharacterMatrix 
+c_cbind_mv(Rcpp::CharacterMatrix m1, Rcpp::CharacterVector v1) {
+    return Rcpp::cbind(m1, v1);
+}
+
+// [[Rcpp::export]]
+Rcpp::CharacterMatrix 
+c_cbind_vv(Rcpp::CharacterVector v1, Rcpp::CharacterVector v2) {
+    return Rcpp::cbind(v1, v2);
+}
+
+// [[Rcpp::export]]
+Rcpp::CharacterMatrix 
+c_cbind_vm(Rcpp::CharacterVector v1, Rcpp::CharacterMatrix m1) {
+    return Rcpp::cbind(v1, m1);
+}
+
+// [[Rcpp::export]]
+Rcpp::CharacterMatrix 
+c_cbind6(Rcpp::CharacterMatrix m1, Rcpp::CharacterVector v1,
+         Rcpp::CharacterMatrix m2, Rcpp::CharacterVector v2,
+         Rcpp::CharacterMatrix m3, Rcpp::CharacterVector v3) {
+    return Rcpp::cbind(m1, v1, m2, v2, m3, v3);
+}
+
+
+// 04 September 2016: rowSums, colSums, rowMeans, colMeans
+
+// [[Rcpp::export]]
+Rcpp::NumericVector dbl_row_sums(Rcpp::NumericMatrix x, bool na_rm = false) {
+    return rowSums(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerVector int_row_sums(Rcpp::IntegerMatrix x, bool na_rm = false) {
+    return rowSums(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerVector lgl_row_sums(Rcpp::LogicalMatrix x, bool na_rm = false) {
+    return rowSums(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexVector cx_row_sums(Rcpp::ComplexMatrix x, bool na_rm = false) {
+    return rowSums(x, na_rm);
+}
+
+
+// [[Rcpp::export]]
+Rcpp::NumericVector dbl_col_sums(Rcpp::NumericMatrix x, bool na_rm = false) {
+    return colSums(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerVector int_col_sums(Rcpp::IntegerMatrix x, bool na_rm = false) {
+    return colSums(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerVector lgl_col_sums(Rcpp::LogicalMatrix x, bool na_rm = false) {
+    return colSums(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexVector cx_col_sums(Rcpp::ComplexMatrix x, bool na_rm = false) {
+    return colSums(x, na_rm);
+}
+
+
+// [[Rcpp::export]]
+Rcpp::NumericVector dbl_row_means(Rcpp::NumericMatrix x, bool na_rm = false) {
+    return rowMeans(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericVector int_row_means(Rcpp::IntegerMatrix x, bool na_rm = false) {
+    return rowMeans(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericVector lgl_row_means(Rcpp::LogicalMatrix x, bool na_rm = false) {
+    return rowMeans(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexVector cx_row_means(Rcpp::ComplexMatrix x, bool na_rm = false) {
+    return rowMeans(x, na_rm);
+}
+
+
+// [[Rcpp::export]]
+Rcpp::NumericVector dbl_col_means(Rcpp::NumericMatrix x, bool na_rm = false) {
+    return colMeans(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericVector int_col_means(Rcpp::IntegerMatrix x, bool na_rm = false) {
+    return colMeans(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericVector lgl_col_means(Rcpp::LogicalMatrix x, bool na_rm = false) {
+    return colMeans(x, na_rm);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexVector cx_col_means(Rcpp::ComplexMatrix x, bool na_rm = false) {
+    return colMeans(x, na_rm);
+}
+
+
+// 10 December 2016: sample
+
+// [[Rcpp::export]]
+IntegerVector sample_dot_int(int n, int sz, bool rep = false, sugar::probs_t p = R_NilValue, bool one_based = true)
+{
+    return sample(n, sz, rep, p, one_based);
+}
+
+// [[Rcpp::export]]
+IntegerVector sample_int(IntegerVector x, int sz, bool rep = false, sugar::probs_t p = R_NilValue) 
+{
+    return sample(x, sz, rep, p);
+}
+
+// [[Rcpp::export]]
+NumericVector sample_dbl(NumericVector x, int sz, bool rep = false, sugar::probs_t p = R_NilValue) 
+{
+    return sample(x, sz, rep, p);
+}
+
+// [[Rcpp::export]]
+CharacterVector sample_chr(CharacterVector x, int sz, bool rep = false, sugar::probs_t p = R_NilValue) 
+{
+    return sample(x, sz, rep, p);
+}
+
+// [[Rcpp::export]]
+ComplexVector sample_cx(ComplexVector x, int sz, bool rep = false, sugar::probs_t p = R_NilValue) 
+{
+    return sample(x, sz, rep, p);
+}
+
+// [[Rcpp::export]]
+LogicalVector sample_lgl(LogicalVector x, int sz, bool rep = false, sugar::probs_t p = R_NilValue) 
+{
+    return sample(x, sz, rep, p);
+}
+
+// [[Rcpp::export]]
+List sample_list(List x, int sz, bool rep = false, sugar::probs_t p = R_NilValue) 
+{
+    return sample(x, sz, rep, p);
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/language.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/language.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/language.cpp	(revision 2476)
@@ -0,0 +1,274 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// language.cpp: Rcpp R/C++ interface class library -- Language unit tests
+//
+// Copyright (C) 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+Language runit_language(SEXP x){ return Language(x) ; }
+
+// [[Rcpp::export]]
+Language runit_lang_variadic_1(){
+    return Language( "rnorm", 10, 0.0, 2.0 ) ;
+}
+
+// [[Rcpp::export]]
+Language runit_lang_variadic_2(){
+    return Language( "rnorm", 10, Named("mean",0.0), 2.0 ) ;
+}
+
+// [[Rcpp::export]]
+Language runit_lang_push_back(){
+	Language call("rnorm") ;
+	call.push_back( 10 ) ;
+	call.push_back( Named("mean", 0.0) ) ;
+	call.push_back( 2.0 ) ;
+	return call ;
+}
+
+// [[Rcpp::export]]
+double runit_lang_square_rv(){
+	Language p("rnorm") ;
+	p.push_back( 1 ) ;
+	p.push_back( 10.0 ) ;
+	p.push_back( 20.0 ) ;
+	return p[2] ;
+}
+
+// [[Rcpp::export]]
+Language runit_lang_square_lv(){
+    Language p("rnorm") ;
+    p.push_back( 1 ) ;
+    p.push_back( 10.0 ) ;
+    p.push_back( 20.0 ) ;
+    p[1] = "foobar" ;
+    p[2] = p[3] ;
+    return p ;
+}
+
+// [[Rcpp::export]]
+SEXP runit_lang_fun( Function fun, IntegerVector x ){
+    Language call( fun );
+    call.push_back(x) ;
+    return Rcpp_eval( call, R_GlobalEnv ) ;
+}
+
+// [[Rcpp::export]]
+Language runit_lang_inputop(){
+	Language call( "rnorm" );
+	call << 10 << Named( "sd", 10 ) ;
+	return call ;
+}
+
+// [[Rcpp::export]]
+List runit_lang_unarycall(IntegerVector x){
+    Language call( "seq", Named("from", 10 ), Named("to", 0 ) ) ;
+    List output( x.size() ) ;
+    std::transform(
+    	x.begin(), x.end(),
+    	output.begin(),
+    	unary_call<int>(call)
+    	) ;
+    return output ;
+}
+
+// [[Rcpp::export]]
+List runit_lang_unarycallindex(IntegerVector x){
+    Language call( "seq", 10, 0 ) ;
+    List output( x.size() ) ;
+    std::transform(
+        x.begin(), x.end(),
+        output.begin(),
+        unary_call<int>(call,2)
+    	) ;
+    return output ;
+}
+
+// [[Rcpp::export]]
+List runit_lang_binarycall(IntegerVector x1, IntegerVector x2 ){
+    Language call( "seq", Named("from", 10 ), Named("to", 0 ) ) ;
+    List output( x1.size() ) ;
+    std::transform(
+        x1.begin(), x1.end(), x2.begin(),
+        output.begin(),
+        binary_call<int,int>(call)
+    	) ;
+    return output ;
+}
+
+
+// [[Rcpp::export]]
+SEXP runit_lang_fixedcall(){
+    Language call( Function("rnorm"), 10 ) ;
+    std::vector< std::vector<double> > result(10) ;
+    std::generate(
+    	result.begin(), result.end(),
+    	fixed_call< std::vector<double> >(call)
+    	) ;
+    return wrap( result );
+}
+
+// [[Rcpp::export]]
+SEXP runit_lang_inenv( Environment env){
+    Language call( "sum", Symbol("y") ) ;
+    return call.eval( env ) ;
+}
+
+// [[Rcpp::export]]
+Pairlist runit_pairlist(SEXP x){
+    return Pairlist(x) ;
+}
+
+// [[Rcpp::export]]
+Pairlist runit_pl_variadic_1(){
+    return Pairlist( "rnorm", 10, 0.0, 2.0 ) ;
+}
+
+// [[Rcpp::export]]
+Pairlist runit_pl_variadic_2(){
+    return Pairlist( "rnorm", 10, Named("mean",0.0), 2.0 ) ;
+}
+
+// [[Rcpp::export]]
+Pairlist runit_pl_push_front(){
+    Pairlist p ;
+    p.push_front( 1 ) ;
+    p.push_front( 10.0 ) ;
+    p.push_front( "foo" ) ;
+    p.push_front( Named( "foobar", 10) ) ;
+    return p ;
+}
+
+
+// [[Rcpp::export]]
+Pairlist runit_pl_push_back(){
+    Pairlist p ;
+    p.push_back( 1 ) ;
+    p.push_back( 10.0 ) ;
+    p.push_back( "foo" ) ;
+    p.push_back( Named( "foobar", 10) ) ;
+    return p ;
+}
+
+// [[Rcpp::export]]
+Pairlist runit_pl_insert(){
+    Pairlist p ;
+    p.push_back( 1 ) ;
+    p.push_back( 10.0 ) ;
+    p.push_back( 20.0 ) ;
+
+    /* insert in 2nd position */
+    p.insert( 1, Named( "bla", "bla" ) ) ;
+
+    /* insert in front */
+    p.insert( 0, 30.0 ) ;
+
+    /* insert in back */
+    p.insert( 5, "foobar" ) ;
+
+    return p ;
+}
+
+// [[Rcpp::export]]
+Pairlist runit_pl_replace(){
+    Pairlist p ;
+    p.push_back( 1 ) ;
+    p.push_back( 10.0 ) ;
+    p.push_back( 20.0 ) ;
+    p.replace( 0, Named( "first", 1 ) ) ;
+    p.replace( 1, 20.0 ) ;
+    p.replace( 2, false ) ;
+    return p ;
+}
+
+// [[Rcpp::export]]
+int runit_pl_size(){
+    Pairlist p ;
+	p.push_back( 1 ) ;
+	p.push_back( 10.0 ) ;
+	p.push_back( 20.0 ) ;
+	return p.size() ;
+}
+
+// [[Rcpp::export]]
+Pairlist runit_pl_remove_1(){
+    Pairlist p ;
+    p.push_back( 1 ) ;
+    p.push_back( 10.0 ) ;
+    p.push_back( 20.0 ) ;
+    p.remove( 0 ) ;
+    return p ;
+}
+
+
+// [[Rcpp::export]]
+Pairlist runit_pl_remove_2(){
+    Pairlist p ;
+    p.push_back( 1 ) ;
+    p.push_back( 10.0 ) ;
+    p.push_back( 20.0 ) ;
+    p.remove( 2 ) ;
+    return p ;
+}
+
+// [[Rcpp::export]]
+Pairlist runit_pl_remove_3(){
+    Pairlist p ;
+    p.push_back( 1 ) ;
+    p.push_back( 10.0 ) ;
+    p.push_back( 20.0 ) ;
+    p.remove( 1 ) ;
+    return p ;
+}
+
+// [[Rcpp::export]]
+double runit_pl_square_1(){
+    Pairlist p ;
+    p.push_back( 1 ) ;
+    p.push_back( 10.0 ) ;
+    p.push_back( 20.0 ) ;
+    return p[1] ;
+}
+
+// [[Rcpp::export]]
+Pairlist runit_pl_square_2(){
+    Pairlist p ;
+    p.push_back( 1 ) ;
+    p.push_back( 10.0 ) ;
+    p.push_back( 20.0 ) ;
+    p[1] = "foobar" ;
+    p[2] = p[0] ;
+    return p ;
+}
+
+
+// [[Rcpp::export]]
+Formula runit_formula_(){
+    Formula f( "x ~ y + z" ) ;
+    return f;
+}
+
+// [[Rcpp::export]]
+Formula runit_formula_SEXP(SEXP form){
+    Formula f(form) ;
+    return f;
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Module.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Module.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Module.cpp	(revision 2476)
@@ -0,0 +1,218 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+// jedit: :folding=explicit:
+//
+// Module.cpp: Rcpp R/C++ interface class library -- module unit tests
+//
+// Copyright (C) 2013 - 2015  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+
+using namespace Rcpp;
+
+std::string hello() {
+    return "hello";
+}
+
+int bar(int x) {
+    return x*2;
+}
+
+double foo(int x, double y) {
+    return x * y;
+}
+
+void bla() {
+    Rprintf("hello\\n");
+}
+
+void bla1(int x) {
+    Rprintf("hello (x = %d)\\n", x);
+}
+
+void bla2(int x, double y) {
+    Rprintf("hello (x = %d, y = %5.2f)\\n", x, y);
+}
+
+int test_reference(std::vector<double>& ref) {
+    return ref.size();
+}
+int test_const_reference(const std::vector<double>& ref) {
+    return ref.size();
+}
+int test_const(const std::vector<double> ref) {
+    return ref.size();
+}
+
+class ModuleWorld {
+public:
+    ModuleWorld() : msg("hello") {}
+    void set(std::string msg_) { this->msg = msg_; }
+    void set_ref(std::string& msg_) { this->msg = msg_; }
+    void set_const_ref(const std::string& msg_) { this->msg = msg_; }
+    std::string greet() { return msg; }
+
+private:
+    std::string msg;
+};
+
+void clearWorld(ModuleWorld* w) {
+    w->set("");
+}
+
+class ModuleNum{
+public:
+    ModuleNum() : x(0.0), y(0) {};
+
+    double getX() const { return x; }
+    void setX(double value) { x = value; }
+
+    int getY() { return y; }
+
+private:
+    double x;
+    int y;
+};
+
+class ModuleNumber{
+public:
+    ModuleNumber() : x(0.0), y(0) {};
+
+    double x;
+    int y;
+};
+
+class ModuleRandomizer {
+public:
+
+    // Randomizer() : min(0), max(1) {}
+    ModuleRandomizer(double min_, double max_) : min(min_), max(max_) {}
+
+    NumericVector get(int n) {
+        RNGScope scope;
+        return runif(n, min, max);
+    }
+
+private:
+    double min, max;
+};
+
+RCPP_EXPOSED_CLASS(ModuleTest)
+class ModuleTest {
+public:
+    double value;
+    ModuleTest(double v) : value(v) {}
+private:
+    // hiding those on purpose
+    // we work by reference or pointers here. Not by copy.
+    ModuleTest(const ModuleTest& other);
+    ModuleTest& operator=(const ModuleTest&);
+};
+
+double Test_get_x_const_ref(const ModuleTest& x) {
+    return x.value;
+}
+double Test_get_x_ref(ModuleTest& x) {
+    return x.value;
+}
+double Test_get_x_const_pointer(const ModuleTest* x) {
+    return x->value;
+}
+double Test_get_x_pointer(ModuleTest* x) {
+    return x->value;
+}
+
+RCPP_MODULE(demoModule) {
+    function("hello", &hello);
+    function("bar"  , &bar  );
+    function("foo"  , &foo  );
+    function("bla"  , &bla  );
+    function("bla1" , &bla1 );
+    function("bla2" , &bla2 );
+
+    function("test_reference", test_reference);
+    function("test_const_reference", test_const_reference);
+    function("test_const", test_const);
+
+    class_<ModuleTest>("ModuleTest")
+        .constructor<double>()
+        ;
+
+    class_<ModuleWorld>("ModuleWorld")
+        .constructor()
+        .method("greet", &ModuleWorld::greet)
+        .method("set", &ModuleWorld::set)
+        .method("set_ref", &ModuleWorld::set_ref)
+        .method("set_const_ref", &ModuleWorld::set_const_ref)
+        .method("clear", &clearWorld)
+        ;
+
+    class_<ModuleNum>("ModuleNum")
+        .constructor()
+
+        // read and write property
+        .property("x", &ModuleNum::getX, &ModuleNum::setX)
+
+        // read-only property
+        .property("y", &ModuleNum::getY)
+        ;
+
+    class_<ModuleNumber>("ModuleNumber")
+
+        .constructor()
+
+        // read and write data member
+        .field("x", &ModuleNumber::x)
+
+        // read only data member
+        .field_readonly("y", &ModuleNumber::y)
+        ;
+
+    function("Test_get_x_const_ref", Test_get_x_const_ref);
+    function("Test_get_x_ref", Test_get_x_ref);
+    function("Test_get_x_const_pointer", Test_get_x_const_pointer);
+    function("Test_get_x_pointer", Test_get_x_pointer);
+
+
+    class_<ModuleRandomizer>("ModuleRandomizer")
+        // No default: .default_constructor()
+        .constructor<double,double>()
+
+        .method("get" , &ModuleRandomizer::get)
+        ;
+}
+
+// [[Rcpp::export]]
+double attr_Test_get_x_const_ref(const ModuleTest& x) {
+    return x.value;
+}
+
+// [[Rcpp::export]]
+double attr_Test_get_x_ref(ModuleTest& x) {
+    return x.value;
+}
+
+// [[Rcpp::export]]
+double attr_Test_get_x_const_pointer(const ModuleTest* x) {
+    return x->value;
+}
+
+// [[Rcpp::export]]
+double attr_Test_get_x_pointer(ModuleTest* x) {
+    return x->value;
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/attributes.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/attributes.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/attributes.cpp	(revision 2476)
@@ -0,0 +1,22 @@
+#include <Rcpp.h>
+using namespace Rcpp;
+
+// include a dummy header file to test support for local includes
+#include "attributes.hpp"
+
+//' @param foo // don't do anything to this
+//'     // or this
+//' @param bar " // or this guy "
+// [[Rcpp::export]] // this comment marks the following function for export
+std::string comments_test( /// // "\""" some '"// more / // ///garbge"
+    std::string msg = "Start a C++ line comment with the characters \"//\"" // "" \" ""
+) { // """
+    return msg;
+}
+
+std::string parse_declaration_test(std::string msg) {
+    return msg;
+}
+
+// [[Rcpp::export]]
+std::string parse_declaration_test(std::string msg = "Parse function declaration");
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/table.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/table.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/table.cpp	(revision 2476)
@@ -0,0 +1,37 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// table.cpp: Rcpp R/C++ interface class library -- table<> unit tests
+//
+// Copyright (C) 2013 Dirk Eddelbuettel, Romain Francois, and Kevin Ushey
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+IntegerVector RcppTable(SEXP x) {
+  switch (TYPEOF(x)) {
+  case INTSXP: return table(as<IntegerVector>(x));
+  case REALSXP: return table(as<NumericVector>(x));
+  case STRSXP: return table(as<CharacterVector>(x));
+  case LGLSXP: return table(as<LogicalVector>(x));
+  default: {
+    stop("untested SEXP type");
+    return R_NilValue;
+  }
+  }
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/InternalFunctionCPP11.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/InternalFunctionCPP11.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/InternalFunctionCPP11.cpp	(revision 2476)
@@ -0,0 +1,45 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// InternalFunction.cpp: Rcpp R/C++ interface class library -- InternalFunction unit tests
+//
+// Copyright (C) 2014 Christian Authmann
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+
+#include <Rcpp.h>
+
+
+int add(int a, int b) {
+	return a + b;
+}
+
+
+// [[Rcpp::export]]
+Rcpp::InternalFunction getAdd4() {
+	std::function<int(int)> func = std::bind(add, 4, std::placeholders::_1);
+	return Rcpp::InternalFunction( func );
+}
+
+
+// [[Rcpp::export]]
+Rcpp::InternalFunction getConcatenate() {
+	std::function<std::string(std::string,std::string)> func = [] (std::string a, std::string b) -> std::string {
+		return a + b;
+	};
+	return Rcpp::InternalFunction( func );
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/RObject.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/RObject.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/RObject.cpp	(revision 2476)
@@ -0,0 +1,164 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// RObject.cpp: Rcpp R/C++ interface class library -- RObject unit tests
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+double asDouble(double d){
+    return 2*d ;
+}
+
+// [[Rcpp::export]]
+int asInt(int i){
+    return 2*i;
+}
+
+// [[Rcpp::export]]
+std::string asStdString(std::string s){
+   return s+s ;
+}
+
+// [[Rcpp::export]]
+Rbyte asRaw( Rbyte i ){
+    return (Rbyte)(2*i) ;
+}
+
+// [[Rcpp::export]]
+bool asLogical( bool b){
+    return !b ;
+}
+
+// [[Rcpp::export]]
+std::vector<int> asStdVectorInt( SEXP x){
+    std::vector<int> iv = as< std::vector<int> >(x);
+	for (size_t i=0; i<iv.size(); i++) {
+	    iv[i] = 2*iv[i];
+    }
+	return iv ;
+}
+
+// [[Rcpp::export]]
+std::vector<double> asStdVectorDouble(SEXP x){
+    std::vector<double> iv = as< std::vector<double> >( x );
+    for (size_t i=0; i<iv.size(); i++) {
+        	iv[i] = 2*iv[i];
+    }
+	return iv ;
+}
+
+// [[Rcpp::export]]
+std::vector<Rbyte> asStdVectorRaw( SEXP x){
+    std::vector<Rbyte> iv = as< std::vector<Rbyte> >( x );
+    for (size_t i=0; i<iv.size(); i++) {
+        iv[i] = 2*iv[i];
+    }
+	return iv ;
+}
+
+
+// [[Rcpp::export]]
+std::vector<bool> asStdVectorBool( SEXP x ){
+    std::vector<bool> bv = as< std::vector<bool> >( x );
+    for (size_t i=0; i<bv.size(); i++) {
+        	bv[i].flip() ;
+    }
+    return bv ;
+}
+
+// [[Rcpp::export]]
+std::vector<std::string> asStdVectorString( SEXP x){
+    std::vector<std::string> iv = as< std::vector<std::string> >( x );
+    for (size_t i=0; i<iv.size(); i++) {
+        iv[i] = iv[i] + iv[i];
+    }
+	return iv ;
+}
+
+// [[Rcpp::export]]
+std::set<int> stdsetint(){
+    std::set<int> iv ;
+    iv.insert( 0 ) ;
+    iv.insert( 1 ) ;
+    iv.insert( 0 ) ;
+    return iv ;
+}
+
+// [[Rcpp::export]]
+std::set<double> stdsetdouble(){
+    std::set<double> ds;
+    ds.insert( 0.0 );
+    ds.insert( 1.0 );
+    ds.insert( 0.0 );
+    return ds ;
+}
+
+// [[Rcpp::export]]
+std::set<Rbyte> stdsetraw(){
+    std::set<Rbyte> bs ;
+    bs.insert( (Rbyte)0 ) ;
+    bs.insert( (Rbyte)1 ) ;
+    bs.insert( (Rbyte)0 ) ;
+    return bs ;
+}
+
+// [[Rcpp::export]]
+std::set<std::string> stdsetstring(){
+    std::set<std::string> ss ;
+	ss.insert( "foo" ) ;
+	ss.insert( "bar" ) ;
+	ss.insert( "foo" ) ;
+	return ss ;
+}
+
+// [[Rcpp::export]]
+std::vector<std::string> attributeNames(DataFrame x){
+    return x.attributeNames() ;
+}
+
+// [[Rcpp::export]]
+bool hasAttribute( DataFrame x){
+    bool has_class = x.hasAttribute( "class" ) ;
+    return has_class ;
+}
+
+// [[Rcpp::export]]
+SEXP attr_( DataFrame x){
+    return x.attr( "row.names" ) ;
+}
+
+// [[Rcpp::export]]
+RObject attr_set(){
+    RObject y = wrap("blabla") ;
+	y.attr("foo") = 10 ;
+	return y ;
+}
+
+// [[Rcpp::export]]
+bool isNULL(RObject x){
+    return x.isNULL() ;
+}
+
+// [[Rcpp::export]]
+bool inherits_( RObject xx){
+    return xx.inherits( "foo" ) ;
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/attributes.hpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/attributes.hpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/attributes.hpp	(revision 2476)
@@ -0,0 +1,9 @@
+
+#ifndef __RCPP_UNITTESTS_ATTRIBUTES__
+#define __RCPP_UNITTESTS_ATTRIBUTES__
+
+/*
+ *  dummy header used to test that local includes for sourceCpp are working
+ */
+
+#endif // __RCPP_UNITTESTS_ATTRIBUTES__
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/wstring.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/wstring.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/wstring.cpp	(revision 2476)
@@ -0,0 +1,43 @@
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+CharacterVector CharacterVector_wstring( ){
+    CharacterVector res(2) ;
+    res[0] = L"foo" ;
+    res[0] += L"bar" ;
+
+    res[1] = std::wstring( L"foo" ) ;
+    res[1] += std::wstring( L"bar" ) ;
+
+    return res ;
+}
+
+// [[Rcpp::export]]
+std::wstring wstring_return(){
+    return L"foo" ;
+}
+
+// [[Rcpp::export]]
+String wstring_param(std::wstring s1, std::wstring s2){
+    String s = s1 ;
+    s += s2 ;
+    return s ;
+}
+
+// [[Rcpp::export]]
+std::vector<std::wstring> wrap_vector_wstring(){
+    std::vector<std::wstring> res(2 );
+    res[0] = L"foo" ;
+    res[1] = L"bar" ;
+    return res;
+}
+
+// [[Rcpp::export]]
+std::vector<std::wstring> as_vector_wstring( std::vector<std::wstring> x){
+    for( size_t i=0; i<x.size(); i++){
+        x[i] += L"€" ;
+    }
+    return x ;
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/XPtr.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/XPtr.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/XPtr.cpp	(revision 2476)
@@ -0,0 +1,69 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// XPtr.cpp: Rcpp R/C++ interface class library -- external pointer unit tests
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+XPtr< std::vector<int> > xptr_1(){
+		    /* creating a pointer to a vector<int> */
+		    std::vector<int>* v = new std::vector<int> ;
+		    v->push_back( 1 ) ;
+		    v->push_back( 2 ) ;
+
+		    /* wrap the pointer as an external pointer */
+		    /* this automatically protected the external pointer from R garbage
+		       collection until p goes out of scope. */
+		    XPtr< std::vector<int> > p(v) ;
+
+		    /* return it back to R, since p goes out of scope after the return
+		       the external pointer is no more protected by p, but it gets
+		       protected by being on the R side */
+		    return( p ) ;
+}
+
+// [[Rcpp::export]]
+int xptr_2( XPtr< std::vector<int> > p){
+    		/* just return the front of the vector as a SEXP */
+    		return p->front() ;
+}
+
+// [[Rcpp::export]]
+bool xptr_release( XPtr< std::vector<int> > p) {
+    p.release();
+    return !p;
+}
+
+// [[Rcpp::export]]
+bool xptr_access_released( XPtr< std::vector<int> > p) {
+
+    // double-release should be a no-op
+    p.release();
+
+    // get should return NULL
+    return p.get() == NULL;
+}
+
+// [[Rcpp::export]]
+int xptr_use_released( XPtr< std::vector<int> > p ) {
+    return p->front();
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/na.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/na.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/na.cpp	(revision 2476)
@@ -0,0 +1,44 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// na.cpp: Rcpp R/C++ interface class library -- na unit tests
+//
+// Copyright (C) 2014 Kevin Ushey
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+bool Rcpp_IsNA(double x) {
+    return internal::Rcpp_IsNA(x);
+}
+
+// [[Rcpp::export]]
+bool Rcpp_IsNaN(double x) {
+    return internal::Rcpp_IsNaN(x);
+}
+
+// [[Rcpp::export]]
+bool R_IsNA_(double x) {
+    return ::R_IsNA(x);
+}
+
+// [[Rcpp::export]]
+bool R_IsNaN_(double x) {
+    return ::R_IsNaN(x);
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/stats.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/stats.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/stats.cpp	(revision 2476)
@@ -0,0 +1,255 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// stats.cpp: Rcpp R/C++ interface class library -- stats unit tests
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+List runit_dbeta(NumericVector xx, double aa, double bb){
+    return List::create(
+        _["NoLog"] = dbeta( xx, aa, bb),
+        _["Log"]	 = dbeta( xx, aa, bb, true )
+    );
+}
+
+// [[Rcpp::export]]
+List runit_dbinom( IntegerVector xx ){
+    return List::create(
+        _["false"] = dbinom( xx, 10, .5),
+        _["true"]	 = dbinom( xx, 10, .5, true )
+    );
+}
+
+// [[Rcpp::export]]
+List runit_dunif( NumericVector xx){
+    return List::create(
+        _["NoLog_noMin_noMax"] = dunif( xx ),
+        _["NoLog_noMax"] = dunif( xx, 0.0 ),
+        _["NoLog"] = dunif( xx, 0.0 , 1.0 ),
+        _["Log"]	= dunif( xx, 0.0, 1.0 , true ),
+        _["Log_noMax"]	= dunif( xx, 0.0, true )
+        //,_["Log_noMin_noMax"]	= dunif( xx, true )
+    );
+}
+
+// [[Rcpp::export]]
+List runit_dgamma( NumericVector xx ){
+    return List::create(
+        _["NoLog"] = dgamma( xx, 1.0, 1.0),
+        _["Log"]	 = dgamma( xx, 1.0, 1.0, true ),
+        _["Log_noRate"]	 = dgamma( xx, 1.0, true )
+        );
+}
+
+// [[Rcpp::export]]
+List runit_dpois( IntegerVector xx ){
+    return List::create(
+        _["false"] = dpois( xx, .5 ),
+        _["true"]	 = dpois( xx, .5 , true)
+        );
+}
+
+// [[Rcpp::export]]
+List runit_dnorm( NumericVector xx ){
+    return List::create(
+        _["false_noMean_noSd"] = dnorm( xx ),
+        _["false_noSd"] = dnorm( xx, 0.0  ),
+        _["false"] = dnorm( xx, 0.0, 1.0 ),
+        _["true"]	 = dnorm( xx, 0.0, 1.0, true ),
+        _["true_noSd"]	 = dnorm( xx, 0.0, true ),
+        _["true_noMean_noSd"]	 = dnorm( xx, true )
+        );
+}
+
+// [[Rcpp::export]]
+List runit_dt( NumericVector xx){
+    return List::create(
+        _["false"] = dt( xx, 5),
+        _["true"]	 = dt( xx, 5, true ));
+}
+
+// [[Rcpp::export]]
+List runit_pbeta( NumericVector xx, double aa, double bb ){
+    return List::create(
+        _["lowerNoLog"] = pbeta( xx, aa, bb),
+        _["lowerLog"]	  = pbeta( xx, aa, bb, true, true),
+        _["upperNoLog"] = pbeta( xx, aa, bb, false),
+        _["upperLog"]	  = pbeta( xx, aa, bb, false, true)
+    );
+}
+
+// [[Rcpp::export]]
+List runit_pbinom( NumericVector xx, int n, double p){
+    return List::create(
+        _["lowerNoLog"] = pbinom(xx, n, p ),
+        _["lowerLog"]	  = pbinom(xx, n, p, true, true ),
+        _["upperNoLog"] = pbinom(xx, n, p, false ),
+        _["upperLog"]	  = pbinom(xx, n, p, false, true )
+    );
+}
+
+// [[Rcpp::export]]
+List runit_pcauchy( NumericVector xx, double loc, double scl){
+    return List::create(
+        _["lowerNoLog"] = pcauchy(xx, loc, scl ),
+        _["lowerLog"]	  = pcauchy(xx, loc, scl, true, true ),
+        _["upperNoLog"] = pcauchy(xx, loc, scl, false ),
+        _["upperLog"]	  = pcauchy(xx, loc, scl, false, true )
+    );
+}
+
+// [[Rcpp::export]]
+List runit_punif( NumericVector xx ){
+    return List::create(
+        _["lowerNoLog"] = punif( xx, 0.0, 1.0 ),
+        _["lowerLog"]   = punif( xx, 0.0, 1.0, true, true ),
+        _["upperNoLog"] = punif( xx, 0.0, 1.0, false ),
+        _["upperLog"]   = punif( xx, 0.0, 1.0, false, true )
+    );
+}
+
+// [[Rcpp::export]]
+List runit_pgamma( NumericVector xx ){
+    return List::create(
+        _["lowerNoLog"] = pgamma( xx, 2.0, 1.0 ),
+        _["lowerLog"]	  = pgamma( xx, 2.0, 1.0, true, true ),
+        _["upperNoLog"] = pgamma( xx, 2.0, 1.0, false ),
+        _["upperLog"]	  = pgamma( xx, 2.0, 1.0, false, true )
+        );
+}
+
+// [[Rcpp::export]]
+List runit_pnf( NumericVector xx ){
+    return List::create(
+        _["lowerNoLog"] = pnf( xx, 6.0, 8.0, 2.5, true ),
+        _["lowerLog"]	  = pnf( xx, 6.0, 8.0, 2.5, true, true ),
+        _["upperNoLog"] = pnf( xx, 6.0, 8.0, 2.5, false ),
+        _["upperLog"]	  = pnf( xx, 6.0, 8.0, 2.5, false, true )
+        );
+}
+
+// [[Rcpp::export]]
+List runit_pf( NumericVector xx ){
+    return List::create(
+        _["lowerNoLog"] = pf( xx, 6.0, 8.0 ),
+        _["lowerLog"]	  = pf( xx, 6.0, 8.0, true, true ),
+        _["upperNoLog"] = pf( xx, 6.0, 8.0, false ),
+        _["upperLog"]	  = pf( xx, 6.0, 8.0, false, true )
+    );
+}
+
+// [[Rcpp::export]]
+List runit_pnchisq( NumericVector xx ){
+    return List::create(
+        _["lowerNoLog"] = pnchisq( xx, 6.0, 2.5, true ),
+        _["lowerLog"]	  = pnchisq( xx, 6.0, 2.5, true, true ),
+        _["upperNoLog"] = pnchisq( xx, 6.0, 2.5, false ),
+        _["upperLog"]	  = pnchisq( xx, 6.0, 2.5, false, true )
+        );
+}
+
+// [[Rcpp::export]]
+List runit_pchisq( NumericVector xx){
+    return List::create(
+        _["lowerNoLog"] = pchisq( xx, 6.0 ),
+        _["lowerLog"]	  = pchisq( xx, 6.0, true, true ),
+        _["upperNoLog"] = pchisq( xx, 6.0, false ),
+        _["upperLog"]	  = pchisq( xx, 6.0, false, true )
+    );
+}
+
+// [[Rcpp::export]]
+List runit_pnorm( NumericVector xx ){
+    return List::create(
+        _["lowerNoLog"] = pnorm( xx, 0.0, 1.0 ),
+        _["lowerLog"]	  = pnorm( xx, 0.0, 1.0, true, true ),
+        _["upperNoLog"] = pnorm( xx, 0.0, 1.0, false ),
+        _["upperLog"]	  = pnorm( xx, 0.0, 1.0, false, true )
+        );
+}
+
+// [[Rcpp::export]]
+List runit_ppois( NumericVector xx){
+    return List::create(
+        _["lowerNoLog"] = ppois( xx, 0.5 ),
+        _["lowerLog"]	  = ppois( xx, 0.5, true, true ),
+        _["upperNoLog"] = ppois( xx, 0.5, false ),
+        _["upperLog"]	  = ppois( xx, 0.5, false, true )
+        );
+}
+
+// [[Rcpp::export]]
+List runit_pt(NumericVector xx){
+    return List::create(_["lowerNoLog"] = pt( xx, 5 /*true,    false*/),
+			_["lowerLog"]   = pt( xx, 5,  true,    true),
+			_["upperNoLog"] = pt( xx, 5,  false /*,false*/),
+			_["upperLog"]   = pt( xx, 5,  false,   true)    );
+}
+
+// [[Rcpp::export]]
+List runit_pnt(NumericVector xx){
+    return List::create(_["lowerNoLog"] = pnt( xx, 5, 7  /*true,    false*/),
+			_["lowerLog"]   = pnt( xx, 5, 7,   true,    true),
+			_["upperNoLog"] = pnt( xx, 5, 7,   false /*,false*/),
+			_["upperLog"]   = pnt( xx, 5, 7,   false,   true)    );
+}
+
+// [[Rcpp::export]]
+List runit_qbinom_prob( NumericVector xx, int n, double p){
+    return List::create(
+        _["lower"] = qbinom( xx, n, p ),
+        _["upper"] = qbinom( xx, n, p, false)
+        );
+}
+
+// [[Rcpp::export]]
+List runit_qunif_prob( NumericVector xx ){
+    return List::create(
+        _["lower"] = qunif( xx, 0.0, 1.0 ),
+        _["upper"] = qunif( xx, 0.0, 1.0, false)
+        );
+}
+
+// [[Rcpp::export]]
+List runit_qnorm_prob( NumericVector xx ){
+    return List::create(
+        _["lower"] = qnorm( xx, 0.0, 1.0 ),
+        _["upper"] = qnorm( xx, 0.0, 1.0, false));
+}
+
+// [[Rcpp::export]]
+List runit_qnorm_log( NumericVector xx ){
+    return List::create(
+        _["lower"] = qnorm( xx, 0.0, 1.0, true, true),
+        _["upper"] = qnorm( xx, 0.0, 1.0, false, true));
+}
+
+// [[Rcpp::export]]
+List runit_qpois_prob( NumericVector xx ){
+    return List::create(
+        _["lower"] = qpois( xx, 0.5 ),
+        _["upper"] = qpois( xx, 0.5, false));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qt( NumericVector xx, double d, bool lt, bool lg ){
+    return qt( xx, d, lt, lg);
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/ListOf.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/ListOf.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/ListOf.cpp	(revision 2476)
@@ -0,0 +1,115 @@
+#include <Rcpp.h>
+using namespace Rcpp;
+
+typedef ListOf<NumericVector> NVList;
+
+// [[Rcpp::export]]
+NVList test_identity(NVList x) {
+    return x;
+}
+
+template <typename T>
+double sum_(const T& x) {
+    return sum(x);
+}
+
+// [[Rcpp::export]]
+List test_lapply_sum(NVList x) {
+    return lapply(x, sum_<NumericVector>);
+}
+
+// [[Rcpp::export]]
+NumericVector test_sapply_sum(NVList x) {
+    return sapply(x, sum_<NumericVector>);
+}
+
+// [[Rcpp::export]]
+NVList test_assign(NVList x, NumericVector y, CharacterVector z) {
+    x[1] = y;
+    x[2] = 1;
+    return x;
+}
+
+// [[Rcpp::export]]
+NVList test_assign_names(NVList x) {
+    x["a"] = x["b"];
+    return x;
+}
+
+
+// [[Rcpp::export]]
+NumericVector test_add(NVList x) {
+    return x[0] + x[1] + x[2];
+}
+
+// [[Rcpp::export]]
+NumericVector test_add_subtract(NVList x) {
+    return x[0] + x[1] - x[2];
+}
+
+// [[Rcpp::export]]
+NumericVector test_mult(NVList x) {
+    return x[0] * x[1] * x[2];
+}
+
+typedef ListOf<CharacterVector> CVList;
+// [[Rcpp::export]]
+CVList test_char(CVList x) {
+    x[0] = "apple";
+    return x;
+}
+
+// [[Rcpp::export]]
+NVList test_as_wrap(NVList x) {
+    List y = as<List>(x);
+    NVList z = as<NVList>(y);
+    NumericVector k = x[0];
+    x[0] = z[1];
+    return z;
+}
+
+// [[Rcpp::export]]
+NumericVector test_add_NV(NVList x, NumericVector y) {
+    return y + x[0];
+}
+
+// [[Rcpp::export]]
+NVList test_binary_ops(NVList x) {
+    return List::create(
+        x[0] > x[1],
+        x[0] < x[1],
+        x[0] >= x[1],
+        x[0] <= x[1]
+    );
+}
+
+#if defined(_WIN32)
+typedef int retval;
+#else
+typedef R_xlen_t retval;
+#endif
+// [[Rcpp::export]]
+retval test_sub_calls(NVList x) {
+    retval sz = x[0].size() + x[1].size() + x[2].size();
+    return sz;
+}
+
+// [[Rcpp::export]]
+NumericVector test_nested_listof(ListOf< ListOf<NumericVector> > x) {
+  return x[0][0];
+}
+
+// [[Rcpp::export]]
+ListOf<IntegerVector> test_return_IVList(List x) {
+    return x;
+}
+
+// [[Rcpp::export]]
+CharacterVector listof_names(ListOf<NumericVector> x) {
+    return x.names();
+}
+
+// [[Rcpp::export]]
+SEXP listof_attr_foo(ListOf<NumericVector> x) {
+    return x.attr("foo");
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/VectorOld.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/VectorOld.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/VectorOld.cpp	(revision 2476)
@@ -0,0 +1,38 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Vector-old.cpp: Rcpp R/C++ interface class library -- Vector unit tests
+//
+// Copyright (C) 2014    Dirk Eddelbuettel, Romain Francois and Kevin Ushey
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#define RCPP_COMMA_INITIALIZATION
+#include <Rcpp.h>
+using namespace Rcpp;
+
+// [[Rcpp::export]]
+IntegerVector integer_comma(){
+    IntegerVector x(4) ;
+    x = 0, 1, 2, 3 ;
+    return x ;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_comma(){
+    CharacterVector x(3) ;
+    x = "foo", "bar", "bling" ;
+    return x ;
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Environment.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Environment.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Environment.cpp	(revision 2476)
@@ -0,0 +1,176 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Environment.cpp: Rcpp R/C++ interface class library -- Environment unit tests
+//
+// Copyright (C) 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+SEXP runit_ls( Environment env ){
+    return env.ls(true) ;
+}
+
+// [[Rcpp::export]]
+SEXP runit_ls2( Rcpp::Environment env){
+    return env.ls(false) ;
+}
+
+// [[Rcpp::export]]
+SEXP runit_get( Environment env, std::string name){
+    return env.get( name ) ;
+}
+
+// [[Rcpp::export]]
+SEXP runit_get_symbol( Environment env, Symbol name){
+    return env.get( name ) ;
+}
+
+// [[Rcpp::export]]
+SEXP runit_find( Environment env, std::string name){
+    return env.find( name ) ;
+}
+
+// [[Rcpp::export]]
+SEXP runit_find_symbol( Environment env, Symbol name){
+    return env.find( name ) ;
+}
+
+// [[Rcpp::export]]
+bool runit_exists( Environment env, std::string st){
+    return env.exists( st ) ;
+}
+
+// [[Rcpp::export]]
+bool runit_assign( Environment env, std::string st, SEXP object ){
+    return env.assign(st, object) ;
+}
+
+// [[Rcpp::export]]
+void runit_islocked( Environment env ){
+    env.assign( "x1", 1 ) ;
+    env.assign( "x2", 10.0 ) ;
+    env.assign( "x3", std::string( "foobar" ) ) ;
+    env.assign( "x4", "foobar" ) ;
+    std::vector< std::string > aa(2) ; aa[0] = "foo" ; aa[1] = "bar" ;
+    env.assign( "x5", aa ) ;
+}
+
+// [[Rcpp::export]]
+bool runit_bindingIsActive( Environment env, std::string st ){
+    return env.bindingIsActive(st) ;
+}
+
+// [[Rcpp::export]]
+bool runit_bindingIsLocked( Environment env, std::string st ){
+    return env.bindingIsLocked(st) ;
+}
+
+// [[Rcpp::export]]
+void runit_notanenv( SEXP x){
+    Environment env(x) ;
+}
+
+// [[Rcpp::export]]
+void runit_lockbinding( Environment env, std::string st){
+    env.lockBinding( st ) ;
+}
+
+// [[Rcpp::export]]
+void runit_unlockbinding( Environment env, std::string st){
+    env.unlockBinding( st ) ;
+}
+
+// [[Rcpp::export]]
+Environment runit_globenv(){
+    return Rcpp::Environment::global_env();
+}
+
+// [[Rcpp::export]]
+Environment runit_emptyenv(){
+    return Rcpp::Environment::empty_env();
+}
+
+// [[Rcpp::export]]
+Environment runit_baseenv(){
+    return Rcpp::Environment::base_env();
+}
+
+// [[Rcpp::export]]
+Environment runit_namespace( std::string st){
+    return Environment::namespace_env(st);
+}
+
+// [[Rcpp::export]]
+Environment runit_env_SEXP(SEXP env){
+    return Environment( env ) ;
+}
+
+// [[Rcpp::export]]
+Environment runit_env_string( std::string st ){
+    return Environment( st ) ;
+}
+
+// [[Rcpp::export]]
+Environment runit_env_int( int pos ){
+    return Environment( pos ) ;
+}
+
+// [[Rcpp::export]]
+Environment runit_parent( Environment env ){
+    return env.parent() ;
+}
+
+// [[Rcpp::export]]
+bool runit_remove(Environment env, std::string name ){
+    bool res = env.remove( name ) ;
+    return wrap( res ) ;
+}
+
+// [[Rcpp::export]]
+List runit_square( Environment e ){
+    List out(3) ;
+    out[0] = e["x"] ;
+    e["y"] = 2 ;
+    out[1] = e["y"] ;
+    e["x"] = "foo";
+    out[2] = e["x"] ;
+    return out ;
+}
+
+// [[Rcpp::export]]
+Environment runit_Rcpp(){
+    return Environment::Rcpp_namespace() ;
+}
+
+// [[Rcpp::export]]
+Environment runit_child(){
+    Environment global_env = Environment::global_env() ;
+    return global_env.new_child(false) ;
+}
+
+// [[Rcpp::export]]
+Environment runit_new_env_default() {
+    return Rcpp::new_env();
+}
+
+// [[Rcpp::export]]
+Environment runit_new_env_parent(SEXP env) {
+    return Rcpp::new_env(env);
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/String.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/String.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/String.cpp	(revision 2476)
@@ -0,0 +1,116 @@
+// #define RCPP_STRING_DEBUG_LEVEL 0
+// #define RCPP_DEBUG_LEVEL 0
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+
+// [[Rcpp::export]]
+String String_replace_all( String z, String x, String y){
+    z.replace_all( x, y ) ;
+    return z ;
+}
+
+// [[Rcpp::export]]
+String String_replace_first( String z, String x, String y){
+    z.replace_first( x, y ) ;
+    return z ;
+}
+// [[Rcpp::export]]
+String String_replace_last( String z, String x, String y){
+    z.replace_last( x, y ) ;
+    return z ;
+}
+
+class StringConv{
+public:
+    typedef String result_type ;
+    StringConv( CharacterVector old_, CharacterVector new__):
+        nr(old_.size()), old(old_), new_(new__){}
+
+    String operator()(String text) const {
+        for( int i=0; i<nr; i++){
+            text.replace_all( old[i], new_[i] ) ;
+        }
+        return text ;
+    }
+
+private:
+    int nr ;
+    CharacterVector old ;
+    CharacterVector new_ ;
+} ;
+
+// [[Rcpp::export]]
+CharacterVector test_sapply_string( CharacterVector text, CharacterVector old , CharacterVector new_){
+   CharacterVector res = sapply( text, StringConv( old, new_ ) ) ;
+   return res ;
+}
+
+// [[Rcpp::export]]
+String test_ctor(String x) {
+    String test = "test";
+    test = x;
+    return test;
+}
+
+// [[Rcpp::export]]
+List test_compare_Strings( String aa, String bb ){
+    return List::create(
+        _["a  < b" ] = aa < bb,
+        _["a  > b" ] = aa > bb,
+        _["a == b"]  = aa == bb,
+        _["a == a"]  = aa == aa
+        ) ;
+}
+
+// [[Rcpp::export]]
+List test_compare_String_string_proxy( String aa, CharacterVector bb ){
+    return List::create(
+        _["a == b"]  = aa == bb[0],
+        _["a != b"]  = aa != bb[0],
+        _["b == a"]  = bb[0] == aa,
+        _["b != a"]  = bb[0] != aa
+        ) ;
+}
+
+// [[Rcpp::export]]
+List test_compare_String_const_string_proxy( String aa, const CharacterVector bb ){
+    return List::create(
+        _["a == b"]  = aa == bb[0],
+        _["a != b"]  = aa != bb[0],
+        _["b == a"]  = bb[0] == aa,
+        _["b != a"]  = bb[0] != aa
+        ) ;
+}
+
+// [[Rcpp::export]]
+String test_push_front(String x) {
+    x.push_front("abc");
+    return x;
+}
+
+// [[Rcpp::export]]
+int test_String_encoding(String x) {
+    return x.get_encoding();
+}
+
+// [[Rcpp::export]]
+String test_String_set_encoding(String x) {
+    x.set_encoding(CE_UTF8);
+    return x;
+}
+
+// [[Rcpp::export]]
+String test_String_ctor_encoding(String x) {
+    String y(x);
+    y.set_encoding(CE_UTF8);
+    return y;
+}
+
+
+// [[Rcpp::export]]
+String test_String_ctor_encoding2() {
+    String y("å");
+    y.set_encoding(CE_UTF8);
+    return y;
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/rmath.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/rmath.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/rmath.cpp	(revision 2476)
@@ -0,0 +1,698 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// rmath.cpp: Rcpp R/C++ interface class library -- rmath unit tests
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+
+// ------------------- Normal Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dnorm( double x, double a, double b ){
+	     return NumericVector::create(R::dnorm(x, a, b, 0), R::dnorm(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pnorm( double x, double a, double b ){
+	     return NumericVector::create(R::pnorm(x, a, b, 1, 0), R::pnorm(log(x), a, b, 1, 1),
+                                          R::pnorm(x, a, b, 0, 0), R::pnorm(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qnorm( double x, double a, double b ){
+	     return NumericVector::create(R::qnorm(x, a, b, 1, 0), R::qnorm(log(x), a, b, 1, 1),
+                                          R::qnorm(x, a, b, 0, 0), R::qnorm(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rnorm( double a, double b ){
+    NumericVector o(5);
+    for (int i = 0; i < o.size(); i++) {
+        o[i] = R::rnorm(a, b);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rnorm_sugar(double a, double b) {
+    return Rcpp::rnorm(5, a, b);
+}
+
+
+// ------------------- Uniform Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dunif( double x, double a, double b ){
+	     return NumericVector::create(R::dunif(x, a, b, 0), R::dunif(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_punif( double x, double a, double b ){
+	     return NumericVector::create(R::punif(x, a, b, 1, 0), R::punif(log(x), a, b, 1, 1),
+                                          R::punif(x, a, b, 0, 0), R::punif(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qunif( double x, double a, double b ){
+	     return NumericVector::create(R::qunif(x, a, b, 1, 0), R::qunif(log(x), a, b, 1, 1),
+                                          R::qunif(x, a, b, 0, 0), R::qunif(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_runif( double a, double b ){
+    NumericVector o(5);
+    for (int i = 0; i < o.size(); i++) {
+        o[i] = R::runif(a, b);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_runif_sugar( double a, double b ){
+    return Rcpp::runif(5, a, b);
+}
+
+
+// ------------------- Gamma Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dgamma( double x, double a, double b ){
+	     return NumericVector::create(R::dgamma(x, a, b, 0), R::dgamma(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pgamma( double x, double a, double b ){
+	     return NumericVector::create(R::pgamma(x, a, b, 1, 0), R::pgamma(log(x), a, b, 1, 1),
+                                          R::pgamma(x, a, b, 0, 0), R::pgamma(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qgamma( double x, double a, double b ){
+	     return NumericVector::create(R::qgamma(x, a, b, 1, 0), R::qgamma(log(x), a, b, 1, 1),
+                                          R::qgamma(x, a, b, 0, 0), R::qgamma(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rgamma(double a, double b) {
+    NumericVector o(5);
+    for (int i = 0; i < o.size(); i++) {
+        o[i] = R::rgamma(a, b);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rgamma_sugar(double a, double b) {
+    return Rcpp::rgamma(5, a, b);
+}
+
+
+// ------------------- Beta Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dbeta( double x, double a, double b ){
+	     return NumericVector::create(R::dbeta(x, a, b, 0), R::dbeta(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pbeta( double x, double a, double b ){
+	     return NumericVector::create(R::pbeta(x, a, b, 1, 0), R::pbeta(log(x), a, b, 1, 1),
+                                          R::pbeta(x, a, b, 0, 0), R::pbeta(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qbeta( double x, double a, double b ){
+	     return NumericVector::create(R::qbeta(x, a, b, 1, 0), R::qbeta(log(x), a, b, 1, 1),
+                                          R::qbeta(x, a, b, 0, 0), R::qbeta(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rbeta(double a, double b) {
+    NumericVector o(5);
+    for (int i = 0; i < o.size(); i++) {
+        o[i] = R::rbeta(a, b);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rbeta_sugar(double a, double b) {
+    return Rcpp::rbeta(5, a, b);
+}
+
+
+// ------------------- Log Normal Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dlnorm( double x, double a, double b ){
+	     return NumericVector::create(R::dlnorm(x, a, b, 0), R::dlnorm(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_plnorm( double x, double a, double b ){
+	     return NumericVector::create(R::plnorm(x, a, b, 1, 0), R::plnorm(log(x), a, b, 1, 1),
+                                          R::plnorm(x, a, b, 0, 0), R::plnorm(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qlnorm( double x, double a, double b ){
+	     return NumericVector::create(R::qlnorm(x, a, b, 1, 0), R::qlnorm(log(x), a, b, 1, 1),
+                                          R::qlnorm(x, a, b, 0, 0), R::qlnorm(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rlnorm(double a, double b) {
+    NumericVector o(5);
+    for (int i = 0; i < o.size(); i++) {
+        o[i] = R::rlnorm(a, b);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rlnorm_sugar(double a, double b) {
+    return Rcpp::rlnorm(5, a, b);
+}
+
+// ------------------- Chi-Squared Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dchisq( double x, double a ){
+	     return NumericVector::create(R::dchisq(x, a, 0), R::dchisq(x, a, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pchisq( double x, double a ){
+	     return NumericVector::create(R::pchisq(x, a, 1, 0), R::pchisq(log(x), a, 1, 1),
+                                          R::pchisq(x, a, 0, 0), R::pchisq(log(x), a, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qchisq( double x, double a ){
+	     return NumericVector::create(R::qchisq(x, a, 1, 0), R::qchisq(log(x), a, 1, 1),
+                                          R::qchisq(x, a, 0, 0), R::qchisq(log(x), a, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rchisq(double a) {
+    NumericVector o(5);
+    for (int i = 0; i < o.size(); i++) {
+        o[i] = R::rchisq(a);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rchisq_sugar(double a) {
+    return Rcpp::rchisq(5, a);
+}
+
+// ------------------- Non-central Chi-Squared Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dnchisq( double x, double a, double b ){
+	     return NumericVector::create(R::dnchisq(x, a, b, 0), R::dnchisq(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pnchisq( double x, double a, double b ){
+	     return NumericVector::create(R::pnchisq(x, a, b, 1, 0), R::pnchisq(log(x), a, b, 1, 1),
+                                          R::pnchisq(x, a, b, 0, 0), R::pnchisq(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qnchisq( double x, double a, double b ){
+	     return NumericVector::create(R::qnchisq(x, a, b, 1, 0), R::qnchisq(log(x), a, b, 1, 1),
+                                          R::qnchisq(x, a, b, 0, 0), R::qnchisq(log(x), a, b, 0, 1));
+}
+
+// -------------------  F Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_df( double x, double a, double b ){
+	     return NumericVector::create(R::df(x, a, b, 0), R::df(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pf( double x, double a, double b ){
+	     return NumericVector::create(R::pf(x, a, b, 1, 0), R::pf(log(x), a, b, 1, 1),
+                                          R::pf(x, a, b, 0, 0), R::pf(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qf( double x, double a, double b ){
+	     return NumericVector::create(R::qf(x, a, b, 1, 0), R::qf(log(x), a, b, 1, 1),
+                                          R::qf(x, a, b, 0, 0), R::qf(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rf(double a, double b) {
+    NumericVector o(5);
+    for (int i = 0; i < o.size(); i++) {
+        o[i] = R::rf(a, b);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rf_sugar(double a, double b) {
+    return Rcpp::rf(5, a, b);
+}
+
+// -------------------  Student t Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dt( double x, double a ){
+	     return NumericVector::create(R::dt(x, a, 0), R::dt(x, a, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pt( double x, double a ){
+	     return NumericVector::create(R::pt(x, a, 1, 0), R::pt(log(x), a, 1, 1),
+                                          R::pt(x, a, 0, 0), R::pt(log(x), a, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qt( double x, double a ){
+	     return NumericVector::create(R::qt(x, a, 1, 0), R::qt(log(x), a, 1, 1),
+                                          R::qt(x, a, 0, 0), R::qt(log(x), a, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rt(double a) {
+    NumericVector o(5);
+    for(int i = 0; i < o.size(); i++) {
+        o[i] = R::rt(a);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rt_sugar(double a) {
+    return Rcpp::rt(5, a);
+}
+
+// -------------------  Binomial Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dbinom( double x, double a, double b ){
+	     return NumericVector::create(R::dbinom(x, a, b, 0), R::dbinom(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pbinom( double x, double a, double b ){
+	     return NumericVector::create(R::pbinom(x, a, b, 1, 0), R::pbinom(log(x), a, b, 1, 1),
+                                          R::pbinom(x, a, b, 0, 0), R::pbinom(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qbinom( double x, double a, double b ){
+	     return NumericVector::create(R::qbinom(x, a, b, 1, 0), R::qbinom(log(x), a, b, 1, 1),
+                                          R::qbinom(x, a, b, 0, 0), R::qbinom(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rbinom(double a, double b) {
+    NumericVector o(5);
+    for(int i = 0; i < o.size(); i++) {
+        o[i] = R::rbinom(a, b);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rbinom_sugar(double a, double b) {
+    return Rcpp::rbinom(5, a, b);
+}
+
+// -------------------  Cauchy Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dcauchy( double x, double a, double b ){
+	     return NumericVector::create(R::dcauchy(x, a, b, 0), R::dcauchy(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pcauchy( double x, double a, double b ){
+	     return NumericVector::create(R::pcauchy(x, a, b, 1, 0), R::pcauchy(log(x), a, b, 1, 1),
+                                          R::pcauchy(x, a, b, 0, 0), R::pcauchy(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qcauchy( double x, double a, double b ){
+	     return NumericVector::create(R::qcauchy(x, a, b, 1, 0), R::qcauchy(log(x), a, b, 1, 1),
+                                          R::qcauchy(x, a, b, 0, 0), R::qcauchy(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rcauchy(double a, double b) {
+    NumericVector o(5);
+    for(int i = 0; i < o.size(); i++) {
+        o[i] = R::rcauchy(a, b);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rcauchy_sugar(double a, double b) {
+    return Rcpp::rcauchy(5, a, b);
+}
+
+// -------------------  Exponential Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dexp( double x, double a ){
+	     return NumericVector::create(R::dexp(x, a, 0), R::dexp(x, a, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pexp( double x, double a ){
+	     return NumericVector::create(R::pexp(x, a, 1, 0), R::pexp(log(x), a, 1, 1),
+                                          R::pexp(x, a, 0, 0), R::pexp(log(x), a, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qexp( double x, double a ){
+	     return NumericVector::create(R::qexp(x, a, 1, 0), R::qexp(log(x), a, 1, 1),
+                                          R::qexp(x, a, 0, 0), R::qexp(log(x), a, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rexp(double a) {
+    NumericVector o(5);
+    for(int i = 0; i < o.size(); i++) {
+        o[i] = R::rexp(a);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rexp_sugar(double a) {
+    return Rcpp::rexp(5, a);
+}
+
+// -------------------  Geometric Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dgeom( double x, double a ){
+	     return NumericVector::create(R::dgeom(x, a, 0), R::dgeom(x, a, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pgeom( double x, double a ){
+	     return NumericVector::create(R::pgeom(x, a, 1, 0), R::pgeom(log(x), a, 1, 1),
+                                          R::pgeom(x, a, 0, 0), R::pgeom(log(x), a, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qgeom( double x, double a ){
+	     return NumericVector::create(R::qgeom(x, a, 1, 0), R::qgeom(log(x), a, 1, 1),
+                                          R::qgeom(x, a, 0, 0), R::qgeom(log(x), a, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rgeom(double a) {
+    NumericVector o(5);
+    for (int i = 0; i < o.size(); i++) {
+        o[i] = R::rgeom(a);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rgeom_sugar(double a) {
+    return Rcpp::rgeom(5, a);
+}
+
+// -------------------  Hypergeometric Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dhyper( double x, double a, double b, double c ){
+	     return NumericVector::create(R::dhyper(x, a, b, c, 0), R::dhyper(x, a, b, c, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_phyper( double x, double a, double b, double c ){
+	     return NumericVector::create(R::phyper(x, a, b, c, 1, 0), R::phyper(log(x), a, b, c, 1, 1),
+                                          R::phyper(x, a, b, c, 0, 0), R::phyper(log(x), a, b, c, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qhyper( double x, double a, double b, double c ){
+	     return NumericVector::create(R::qhyper(x, a, b, c, 1, 0), R::qhyper(log(x), a, b, c, 1, 1),
+                                          R::qhyper(x, a, b, c, 0, 0), R::qhyper(log(x), a, b, c, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rhyper(double a, double b, double c) {
+    NumericVector o(5);
+    for(int i = 0; i < o.size(); i++) {
+        o[i] = R::rhyper(a, b, c);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rhyper_sugar(double a, double b, double c) {
+    return Rcpp::rhyper(5, a, b, c);
+}
+
+// -------------------  Negative Binomial Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dnbinom( double x, double a, double b ){
+	     return NumericVector::create(R::dnbinom(x, a, b, 0), R::dnbinom(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pnbinom( double x, double a, double b ){
+	     return NumericVector::create(R::pnbinom(x, a, b, 1, 0), R::pnbinom(log(x), a, b, 1, 1),
+                                          R::pnbinom(x, a, b, 0, 0), R::pnbinom(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qnbinom( double x, double a, double b ){
+	     return NumericVector::create(R::qnbinom(x, a, b, 1, 0), R::qnbinom(log(x), a, b, 1, 1),
+                                          R::qnbinom(x, a, b, 0, 0), R::qnbinom(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rnbinom(double a, double b) {
+    NumericVector o(5);
+    for(int i = 0; i < o.size(); i++) {
+        o[i] = R::rnbinom(a, b);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rnbinom_sugar(double a, double b) {
+    return Rcpp::rnbinom(5, a, b);
+}
+
+// -------------------  Poisson Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dpois( double x, double a ){
+	     return NumericVector::create(R::dpois(x, a, 0), R::dpois(x, a, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_ppois( double x, double a ){
+	     return NumericVector::create(R::ppois(x, a, 1, 0), R::ppois(log(x), a, 1, 1),
+                                          R::ppois(x, a, 0, 0), R::ppois(log(x), a, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qpois( double x, double a ){
+	     return NumericVector::create(R::qpois(x, a, 1, 0), R::qpois(log(x), a, 1, 1),
+                                          R::qpois(x, a, 0, 0), R::qpois(log(x), a, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rpois(double a) {
+    NumericVector o(5);
+    for(int i = 0; i < o.size(); i++) {
+        o[i] = R::rpois(a);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rpois_sugar(double a) {
+    return Rcpp::rpois(5, a);
+}
+
+// -------------------  Weibull Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dweibull( double x, double a, double b ){
+	     return NumericVector::create(R::dweibull(x, a, b, 0), R::dweibull(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pweibull( double x, double a, double b ){
+	     return NumericVector::create(R::pweibull(x, a, b, 1, 0), R::pweibull(log(x), a, b, 1, 1),
+                                          R::pweibull(x, a, b, 0, 0), R::pweibull(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qweibull( double x, double a, double b ){
+	     return NumericVector::create(R::qweibull(x, a, b, 1, 0), R::qweibull(log(x), a, b, 1, 1),
+                                          R::qweibull(x, a, b, 0, 0), R::qweibull(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rweibull(double a, double b) {
+    NumericVector o(5);
+    for(int i = 0; i < o.size(); i++) {
+        o[i] = R::rweibull(a, b);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rweibull_sugar(double a, double b) {
+    return Rcpp::rweibull(5, a, b);
+}
+
+// -------------------  Logistic Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dlogis( double x, double a, double b ){
+	     return NumericVector::create(R::dlogis(x, a, b, 0), R::dlogis(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_plogis( double x, double a, double b ){
+	     return NumericVector::create(R::plogis(x, a, b, 1, 0), R::plogis(log(x), a, b, 1, 1),
+                                          R::plogis(x, a, b, 0, 0), R::plogis(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qlogis( double x, double a, double b ){
+	     return NumericVector::create(R::qlogis(x, a, b, 1, 0), R::qlogis(log(x), a, b, 1, 1),
+                                          R::qlogis(x, a, b, 0, 0), R::qlogis(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rlogis(double a, double b) {
+    NumericVector o(5);
+    for(int i = 0; i < o.size(); i++) {
+        o[i] = R::rlogis(a, b);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rlogis_sugar(double a, double b) {
+    return Rcpp::rlogis(5, a, b);
+}
+
+// -------------------  Non-central Beta Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dnbeta( double x, double a, double b, double c ){
+	     return NumericVector::create(R::dnbeta(x, a, b, c, 0), R::dnbeta(x, a, b, c, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pnbeta( double x, double a, double b, double c ){
+	     return NumericVector::create(R::pnbeta(x, a, b, c, 1, 0), R::pnbeta(log(x), a, b, c, 1, 1),
+                                          R::pnbeta(x, a, b, c, 0, 0), R::pnbeta(log(x), a, b, c, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qnbeta( double x, double a, double b, double c ){
+	     return NumericVector::create(R::qnbeta(x, a, b, c, 1, 0), R::qnbeta(log(x), a, b, c, 1, 1),
+                                          R::qnbeta(x, a, b, c, 0, 0), R::qnbeta(log(x), a, b, c, 0, 1));
+}
+
+// -------------------  Non-central F Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dnf( double x, double a, double b, double c ){
+	     return NumericVector::create(R::dnf(x, a, b, c, 0), R::dnf(x, a, b, c, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pnf( double x, double a, double b, double c ){
+	     return NumericVector::create(R::pnf(x, a, b, c, 1, 0), R::pnf(log(x), a, b, c, 1, 1),
+                                          R::pnf(x, a, b, c, 0, 0), R::pnf(log(x), a, b, c, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qnf( double x, double a, double b, double c ){
+	     return NumericVector::create(R::qnf(x, a, b, c, 1, 0), R::qnf(log(x), a, b, c, 1, 1),
+                                          R::qnf(x, a, b, c, 0, 0), R::qnf(log(x), a, b, c, 0, 1));
+}
+
+// -------------------  Non-central Student t Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dnt( double x, double a, double b ){
+	     return NumericVector::create(R::dnt(x, a, b, 0), R::dnt(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pnt( double x, double a, double b ){
+	     return NumericVector::create(R::pnt(x, a, b, 1, 0), R::pnt(log(x), a, b, 1, 1),
+                                          R::pnt(x, a, b, 0, 0), R::pnt(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qnt( double x, double a, double b ){
+	     return NumericVector::create(R::qnt(x, a, b, 1, 0), R::qnt(log(x), a, b, 1, 1),
+                                          R::qnt(x, a, b, 0, 0), R::qnt(log(x), a, b, 0, 1));
+}
+
+// -------------------  Wilcoxon Rank Sum Statistic Distribution
+
+// [[Rcpp::export]]
+NumericVector runit_dwilcox( double x, double a, double b ){
+	     return NumericVector::create(R::dwilcox(x, a, b, 0), R::dwilcox(x, a, b, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_pwilcox( double x, double a, double b ){
+	     return NumericVector::create(R::pwilcox(x, a, b, 1, 0), R::pwilcox(log(x), a, b, 1, 1),
+                                          R::pwilcox(x, a, b, 0, 0), R::pwilcox(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_qwilcox( double x, double a, double b ){
+	     return NumericVector::create(R::qwilcox(x, a, b, 1, 0), R::qwilcox(log(x), a, b, 1, 1),
+                                          R::qwilcox(x, a, b, 0, 0), R::qwilcox(log(x), a, b, 0, 1));
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rwilcox(double a, double b) {
+    NumericVector o(5);
+    for (int i = 0; i < o.size(); i++) {
+        o[i] = R::rwilcox(a, b);
+    }
+    return o;
+}
+
+// [[Rcpp::export]]
+NumericVector runit_rwilcox_sugar(double a, double b) {
+    return Rcpp::rwilcox(5, a, b);
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/support.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/support.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/support.cpp	(revision 2476)
@@ -0,0 +1,94 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// support.cpp: Rcpp R/C++ interface class library -- unit tests
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+List plus_REALSXP(){
+    return List::create(
+        NA_REAL + NA_REAL,
+        NA_REAL + 1.0,
+        1.0 + NA_REAL
+    );
+}
+
+// [[Rcpp::export]]
+List times_REALSXP(){
+    return List::create(
+        NA_REAL * NA_REAL,
+        NA_REAL * 1.0,
+        1.0 * NA_REAL
+    );
+}
+
+// [[Rcpp::export]]
+List divides_REALSXP(){
+    return List::create(
+       NA_REAL / NA_REAL,
+       NA_REAL / 1.0,
+       1.0 / NA_REAL
+       );
+}
+
+// [[Rcpp::export]]
+List minus_REALSXP(){
+    return List::create(
+       NA_REAL - NA_REAL,
+       NA_REAL - 1.0,
+       1.0 - NA_REAL
+       );
+}
+
+// [[Rcpp::export]]
+List functions_REALSXP(){
+    return List::create(
+        NumericVector::create(
+           exp( NA_REAL ),
+           acos( NA_REAL ),
+           asin( NA_REAL ),
+           atan( NA_REAL ),
+           ceil( NA_REAL ),
+           cos( NA_REAL ),
+           cosh( NA_REAL ),
+           floor( NA_REAL ),
+           log( NA_REAL ),
+           log10( NA_REAL ),
+           sqrt( NA_REAL),
+           sin( NA_REAL ),
+           sinh( NA_REAL ),
+           tan( NA_REAL ),
+           tanh( NA_REAL ),
+           fabs( NA_REAL ),
+           Rf_gammafn( NA_REAL),
+           Rf_lgammafn( NA_REAL ),
+           Rf_digamma( NA_REAL ),
+           Rf_trigamma( NA_REAL )
+        ) , NumericVector::create(
+           Rf_tetragamma( NA_REAL) ,
+           Rf_pentagamma( NA_REAL) ,
+           expm1( NA_REAL ),
+           log1p( NA_REAL ),
+           Rcpp::internal::factorial( NA_REAL ),
+           Rcpp::internal::lfactorial( NA_REAL )
+        )
+     );
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/exceptions.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/exceptions.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/exceptions.cpp	(revision 2476)
@@ -0,0 +1,64 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// dates.cpp: Rcpp R/C++ interface class library -- Date + Datetime tests
+//
+// Copyright (C) 2010 - 2013   Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp;
+
+// [[Rcpp::export]]
+double takeLog(double val) {
+    if (val <= 0.0) {
+        throw std::range_error("Inadmissible value");
+    }
+    return log(val);
+}
+
+// [[Rcpp::export]]
+double takeLogRcpp(double val) {
+    if (val <= 0.0) {
+        throw Rcpp::exception("Inadmissible value");
+    }
+    return log(val);
+}
+
+// [[Rcpp::export]]
+double takeLogStop(double val) {
+    if (val <= 0.0) {
+        Rcpp::stop("Inadmissible value");
+    }
+    return log(val);
+}
+
+// [[Rcpp::export]]
+double takeLogRcppLocation(double val) {
+    if (val <= 0.0) {
+        throw Rcpp::exception("Inadmissible value", "exceptions.cpp", 44);
+    }
+    return log(val);
+}
+
+double f1(double val) {
+    return takeLogRcppLocation(val);
+}
+
+// [[Rcpp::export]]
+double takeLogNested(double val) {
+    return f1(val);
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/InternalFunction.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/InternalFunction.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/InternalFunction.cpp	(revision 2476)
@@ -0,0 +1,45 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// InternalFunction.cpp: Rcpp R/C++ interface class library -- InternalFunction unit tests
+//
+// Copyright (C) 2014 Christian Authmann
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+
+#include <Rcpp.h>
+
+
+int add(int a, int b) {
+	return a + b;
+}
+
+
+// [[Rcpp::export]]
+Rcpp::InternalFunction getAdd() {
+	return Rcpp::InternalFunction( &add );
+}
+
+
+std::string concatenate(std::string a, std::string b) {
+	return a + b;
+}
+
+// [[Rcpp::export]]
+Rcpp::InternalFunction getConcatenate() {
+	return Rcpp::InternalFunction( &concatenate );
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/DataFrame.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/DataFrame.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/DataFrame.cpp	(revision 2476)
@@ -0,0 +1,91 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// DataFrame.cpp: Rcpp R/C++ interface class library -- DataFrame unit tests
+//
+// Copyright (C) 2012 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+DataFrame FromSEXP( SEXP x){
+    DataFrame df(x) ;
+    return df;
+}
+
+// [[Rcpp::export]]
+SEXP index_byName( DataFrame df, std::string s ){
+    return df[s];
+}
+
+// [[Rcpp::export]]
+SEXP index_byPosition( DataFrame df, int i ){
+    return df[i];
+}
+// [[Rcpp::export]]
+std::string string_element( DataFrame df ){
+    CharacterVector b = df[1];
+	std::string s;
+	s = b[1];
+	return s;
+}
+
+// [[Rcpp::export]]
+DataFrame createOne(){
+    IntegerVector v = IntegerVector::create(1,2,3);
+	return DataFrame::create(Named("a")=v);
+}
+
+// [[Rcpp::export]]
+DataFrame createTwo(){
+    IntegerVector v = IntegerVector::create(1,2,3);
+	std::vector<std::string> s(3);
+	s[0] = "a";
+	s[1] = "b";
+	s[2] = "c";
+	return DataFrame::create(Named("a")=v, Named("b")=s);
+}
+
+// [[Rcpp::export]]
+DataFrame SlotProxy( S4 o, std::string yy ){
+    return DataFrame( o.slot( yy ) ) ;
+}
+
+// [[Rcpp::export]]
+DataFrame AttributeProxy( List o, std::string y ){
+    return DataFrame( o.attr( y )) ;
+}
+
+// [[Rcpp::export]]
+DataFrame createTwoStringsAsFactors(){
+    IntegerVector v = IntegerVector::create(1,2,3);
+	std::vector<std::string> s(3);
+	s[0] = "a";
+	s[1] = "b";
+	s[2] = "c";
+	return DataFrame::create(
+		_["a"] = v,
+		_["b"] = s,
+		_["stringsAsFactors"] = false );
+}
+
+// [[Rcpp::export]]
+int DataFrame_nrows( DataFrame df){
+    return df.nrows() ;
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Function.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Function.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Function.cpp	(revision 2476)
@@ -0,0 +1,82 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Function.cpp: Rcpp R/C++ interface class library -- Rcpp::Function unit tests
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+Function function_(SEXP x){ return Function(x) ; }
+
+// [[Rcpp::export]]
+Function function_cons_env(std::string x, SEXP env) {
+    return Function(x, env);
+}
+
+// [[Rcpp::export]]
+Function function_cons_ns(std::string x, std::string ns) {
+    return Function(x, ns);
+}
+
+// [[Rcpp::export]]
+NumericVector function_variadic(Function sort, NumericVector y){
+    return sort( y, Named("decreasing", true) ) ;
+}
+
+// [[Rcpp::export]]
+Environment function_env(Function fun){
+    return fun.environment() ;
+}
+
+// [[Rcpp::export]]
+IntegerVector function_unarycall(List x){
+    Function len( "length" ) ;
+    IntegerVector output( x.size() ) ;
+    std::transform(
+        	x.begin(), x.end(),
+        	output.begin(),
+        	unary_call<IntegerVector,int>(len)
+    	) ;
+    return output ;
+}
+
+// [[Rcpp::export]]
+List function_binarycall(List list,IntegerVector vec){
+    Function pmin( "pmin" ) ;
+    List output( list.size() ) ;
+    std::transform(
+        	list.begin(), list.end(),
+        	vec.begin(),
+        	output.begin(),
+        	binary_call<IntegerVector,int,IntegerVector>(pmin)
+    	) ;
+    return output ;
+}
+
+// [[Rcpp::export]]
+Function function_namespace_env(){
+    Environment ns = Environment::namespace_env( "stats" ) ;
+    Function fun = ns[".asSparse"] ;  // accesses a non-exported function
+    return fun;
+}
+
+// [[Rcpp::export]]
+void exec(Function f) { f(); }
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/algorithm.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/algorithm.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/algorithm.cpp	(revision 2476)
@@ -0,0 +1,97 @@
+#include <Rcpp.h>
+
+// [[Rcpp::export]]
+double sumTest(Rcpp::NumericVector v, int begin, int end) {
+	return Rcpp::algorithm::sum(v.begin() + (begin - 1), v.begin() + end);
+}
+
+// [[Rcpp::export]]
+double sumTest_nona(Rcpp::NumericVector v, int begin, int end) {
+	return Rcpp::algorithm::sum_nona(v.begin() + (begin - 1), v.begin() + end);
+}
+
+// [[Rcpp::export]]
+double prodTest(Rcpp::NumericVector v, int begin, int end) {
+	return Rcpp::algorithm::prod(v.begin() + (begin - 1), v.begin() + end);
+}
+
+// [[Rcpp::export]]
+double prodTest_nona(Rcpp::NumericVector v, int begin, int end) {
+	return Rcpp::algorithm::prod_nona(v.begin() + (begin - 1), v.begin() + end);
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericVector logTest(Rcpp::NumericVector v) {
+	Rcpp::NumericVector x = Rcpp::clone(v);
+	Rcpp::algorithm::log(v.begin(), v.end(), x.begin());
+	return x;
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericVector expTest(Rcpp::NumericVector v) {
+	Rcpp::NumericVector x = Rcpp::clone(v);
+	Rcpp::algorithm::exp(v.begin(), v.end(), x.begin());
+	return x;
+}
+
+// [[Rcpp::export]]
+Rcpp::NumericVector sqrtTest(Rcpp::NumericVector v) {
+	Rcpp::NumericVector x = Rcpp::clone(v);
+	Rcpp::algorithm::sqrt(v.begin(), v.end(), x.begin());
+	return x;
+}
+
+// [[Rcpp::export]]
+double minTest(Rcpp::NumericVector v) {
+	return Rcpp::algorithm::min(v.begin(), v.end());
+}
+
+// [[Rcpp::export]]
+double maxTest(Rcpp::NumericVector v) {
+	return Rcpp::algorithm::max(v.begin(), v.end());
+}
+
+// [[Rcpp::export]]
+double minTest_nona(Rcpp::NumericVector v) {
+	return Rcpp::algorithm::min_nona(v.begin(), v.end());
+}
+
+// [[Rcpp::export]]
+double maxTest_nona(Rcpp::NumericVector v) {
+	return Rcpp::algorithm::max_nona(v.begin(), v.end());
+}
+
+// [[Rcpp::export]]
+int minTest_int(Rcpp::IntegerVector v) {
+	return Rcpp::algorithm::min(v.begin(), v.end());
+}
+
+// [[Rcpp::export]]
+int maxTest_int(Rcpp::IntegerVector v) {
+	return Rcpp::algorithm::max(v.begin(), v.end());
+}
+
+// [[Rcpp::export]]
+int minTest_int_nona(Rcpp::IntegerVector v) {
+	return Rcpp::algorithm::min_nona(v.begin(), v.end());
+}
+
+// [[Rcpp::export]]
+int maxTest_int_nona(Rcpp::IntegerVector v) {
+	return Rcpp::algorithm::max_nona(v.begin(), v.end());
+}
+
+// [[Rcpp::export]]
+double meanTest(Rcpp::NumericVector v) {
+	return Rcpp::algorithm::mean(v.begin(), v.end());
+}
+
+// [[Rcpp::export]]
+double meanTest_int(Rcpp::IntegerVector v) {
+	return Rcpp::algorithm::mean(v.begin(), v.end());
+}
+
+// [[Rcpp::export]]
+double meanTest_logical(Rcpp::LogicalVector v) {
+	return Rcpp::algorithm::mean(v.begin(), v.end());
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/S4.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/S4.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/S4.cpp	(revision 2476)
@@ -0,0 +1,93 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// S4.cpp: Rcpp R/C++ interface class library -- S4 unit tests
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+List S4_methods( RObject y ){
+    List res(5) ;
+    res[0] = y.isS4() ;
+    res[1] = y.hasSlot("x") ;
+    res[2] = y.hasSlot("z") ;
+    res[3] = y.slot("x") ;
+    res[4] = y.slot("y") ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+void S4_getslots( S4 y){
+    y.slot( "x" ) = 10.0 ;
+    y.slot( "y" ) = 20.0 ;
+}
+
+// [[Rcpp::export]]
+void S4_setslots( S4 y ){
+    y.slot( "foo" ) = 10.0 ;
+}
+
+// [[Rcpp::export]]
+void S4_setslots_2( S4 y){
+    y.slot( "foo" ) ;
+}
+
+// [[Rcpp::export]]
+S4 S4_ctor( std::string cl){
+    return S4( cl );
+}
+
+// [[Rcpp::export]]
+bool S4_is_track(S4 tr){
+    return tr.is("track") ;
+}
+
+// [[Rcpp::export]]
+bool S4_is_trackCurve(S4 tr){
+    return tr.is("trackCurve") ;
+}
+
+// [[Rcpp::export]]
+NumericVector S4_get_slot_x(S4 o){
+    NumericVector res( o.slot("x") );
+    return res ;
+}
+
+// [[Rcpp::export]]
+CharacterVector S4_get_attr_x(IntegerVector o){
+    CharacterVector res( o.attr("foo") ) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+S4 S4_dotdata(S4 foo){
+    foo.slot( ".Data" ) = "foooo" ;
+    return foo ;
+}
+
+// [[Rcpp::export]]
+std::vector<double> S4_proxycoerce(S4 x_) {
+  NumericVector x(x_.slot("data"));
+  std::vector<double> xx( x.size() );
+  for (int i=0; i < x.size(); ++i) {
+    xx[i] = x[i];
+  }
+  return xx;
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/misc.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/misc.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/misc.cpp	(revision 2476)
@@ -0,0 +1,226 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// misc.cpp: Rcpp R/C++ interface class library -- misc unit tests
+//
+// Copyright (C) 2013 - 2015  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp;
+using namespace std;
+#include <iostream>
+#include <fstream>
+
+class simple {
+    Rcpp::Dimension dd;
+public:
+    simple(SEXP xp) : dd(xp) {}
+    int nrow() const { return dd[0]; }
+    int ncol() const { return dd[1]; }
+};
+
+// [[Rcpp::export]]
+SEXP symbol_() {
+    return LogicalVector::create(
+        Symbol( Rf_install("foobar") ) == Rf_install("foobar"),
+        Symbol( Rf_mkChar("foobar") ) == Rf_install("foobar"),
+        Symbol( Rf_mkString("foobar") ) == Rf_install("foobar"),
+        Symbol( "foobar" ) == Rf_install("foobar")
+    );
+}
+
+// [[Rcpp::export]]
+Symbol symbol_ctor(SEXP x) { return Symbol(x); }
+
+// [[Rcpp::export]]
+List Argument_() {
+    Argument x("x"), y("y");
+    return List::create( x = 2, y = 3 );
+}
+
+// [[Rcpp::export]]
+int Dimension_const( SEXP ia ) {
+    simple ss(ia);
+        return ss.nrow();
+}
+
+// [[Rcpp::export]]
+SEXP evaluator_error() {
+    return Rcpp_eval( Rf_lang2( Rf_install("stop"), Rf_mkString( "boom" ) ) );
+}
+
+// [[Rcpp::export]]
+SEXP evaluator_ok(SEXP x) {
+    return Rcpp_eval( Rf_lang2( Rf_install("sample"), x ) );
+}
+
+// [[Rcpp::export]]
+void exceptions_() {
+    throw std::range_error("boom");
+}
+
+// [[Rcpp::export]]
+LogicalVector has_iterator_( ) {
+    return LogicalVector::create(
+        (bool)Rcpp::traits::has_iterator< std::vector<int> >::value,
+        (bool)Rcpp::traits::has_iterator< std::list<int> >::value,
+        (bool)Rcpp::traits::has_iterator< std::deque<int> >::value,
+        (bool)Rcpp::traits::has_iterator< std::set<int> >::value,
+        (bool)Rcpp::traits::has_iterator< std::map<std::string,int> >::value,
+        (bool)Rcpp::traits::has_iterator< std::pair<std::string,int> >::value,
+        (bool)Rcpp::traits::has_iterator< Rcpp::Symbol >::value
+        );
+}
+
+// [[Rcpp::export]]
+void test_rcout(std::string tfile, std::string teststring) {
+    // define and open testfile
+    std::ofstream testfile(tfile.c_str());
+
+    // save output buffer of the Rcout stream
+    std::streambuf* Rcout_buffer = Rcout.rdbuf();
+
+    // redirect ouput into testfile
+    Rcout.rdbuf( testfile.rdbuf() );
+
+    // write a test string to the file
+    Rcout << teststring << std::endl;
+
+    // restore old output buffer
+    Rcout.rdbuf(Rcout_buffer);
+
+    // close testfile
+    testfile.close();
+}
+
+// [[Rcpp::export]]
+void test_rcout_rcomplex(std::string tfile, SEXP rc) {
+    Rcomplex rx = Rcpp::as<Rcomplex>(rc);
+    // define and open testfile
+    std::ofstream testfile(tfile.c_str());
+
+    // save output buffer of the Rcout stream
+    std::streambuf* Rcout_buffer = Rcout.rdbuf();
+
+    // redirect ouput into testfile
+    Rcout.rdbuf( testfile.rdbuf() );
+
+    // write a test string to the file
+    Rcout << rx << std::endl;
+
+    // restore old output buffer
+    Rcout.rdbuf(Rcout_buffer);
+
+    // close testfile
+    testfile.close();
+}
+
+// [[Rcpp::export]]
+LogicalVector na_proxy() {
+    CharacterVector s("foo");
+    return LogicalVector::create(
+        NA_REAL    == NA,
+        NA_INTEGER == NA,
+        NA_STRING  == NA,
+        true       == NA,
+        false      == NA,
+        1.2        == NA,
+        12         == NA,
+        "foo"      == NA,
+        s[0]       == NA,
+
+        NA         == NA_REAL,
+        NA         == NA_INTEGER,
+        NA         == NA_STRING,
+        NA         == true,
+        NA         == false,
+        NA         == 1.2  ,
+        NA         == 12   ,
+        NA         == "foo",
+        NA         == s[0]
+        );
+}
+
+// [[Rcpp::export]]
+StretchyList stretchy_list() {
+    StretchyList out;
+    out.push_back( 1 );
+    out.push_front( "foo" );
+    out.push_back( 3.2 );
+    return out;
+}
+
+// [[Rcpp::export]]
+StretchyList named_stretchy_list() {
+    StretchyList out;
+    out.push_back( _["b"] = 1 );
+    out.push_front( _["a"] = "foo" );
+    out.push_back( _["c"] = 3.2 );
+    return out;
+}
+
+// [[Rcpp::export]]
+void test_stop_variadic() {
+    stop( "%s %d", "foo", 3 );
+}
+
+// [[Rcpp::export]]
+bool testNullableForNull(const Nullable<NumericMatrix>& M) {
+    return M.isNull();
+}
+
+// [[Rcpp::export]]
+bool testNullableForNotNull(const Nullable<NumericMatrix>& M) {
+    return M.isNotNull();
+}
+
+// [[Rcpp::export]]
+SEXP testNullableOperator(const Nullable<NumericMatrix>& M) {
+    return M;
+}
+
+// [[Rcpp::export]]
+SEXP testNullableGet(const Nullable<NumericMatrix>& M) {
+    return M.get();
+}
+
+// [[Rcpp::export]]
+NumericMatrix testNullableAs(Nullable<NumericMatrix>& M) {
+    return M.as();
+}
+
+// [[Rcpp::export]]
+NumericMatrix testNullableClone(const Nullable<NumericMatrix>& M) {
+    return M.clone();
+}
+
+// [[Rcpp::export]]
+SEXP testNullableIsUsable(const Nullable<NumericMatrix>& M) {
+    if (M.isUsable()) {
+        return M.clone();
+    } else {
+        return R_NilValue;
+    }
+}
+
+// [[Rcpp::export]]
+String testNullableString(Rcpp::Nullable<Rcpp::String> param = R_NilValue) {
+  if (param.isNotNull())
+    return String(param);
+  else
+    return String("");
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Reference.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Reference.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Reference.cpp	(revision 2476)
@@ -0,0 +1,30 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Reference.cpp: Rcpp R/C++ interface class library -- Reference unit tests
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+std::string runit_Reference_getId(Reference obj) {
+    std::string txt = obj.field("id");
+    return txt;
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/dispatch.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/dispatch.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/dispatch.cpp	(revision 2476)
@@ -0,0 +1,47 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// dispatch.cpp: Rcpp R/C++ interface class library -- dispatch macro unit tests
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>. 
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+template <typename T>
+T first_el_impl(const T& x) {
+    T res(1);
+    res[0] = x[0];
+    return res;
+}
+
+// [[Rcpp::export]]
+SEXP first_el(SEXP x) {
+    RCPP_RETURN_VECTOR(first_el_impl, x);
+}
+
+template <typename T>
+T first_cell_impl(const T& x) {
+    T res(1, 1);
+    res(0, 0) = x(0, 0);
+    return res;
+}
+
+// [[Rcpp::export]]
+SEXP first_cell(SEXP x) {
+    RCPP_RETURN_MATRIX(first_cell_impl, x)
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/dates.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/dates.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/dates.cpp	(revision 2476)
@@ -0,0 +1,236 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// dates.cpp: Rcpp R/C++ interface class library -- Date + Datetime tests
+//
+// Copyright (C) 2010 - 2013   Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp;
+
+// [[Rcpp::export]]
+Date ctor_sexp(SEXP d) {
+    Date dt = Date(d);
+    return dt;
+}
+
+// [[Rcpp::export]]
+SEXP ctor_mdy() {
+    Date dt = Date(12,31,2005);
+    return wrap(dt);
+}
+
+// [[Rcpp::export]]
+SEXP ctor_ymd() {
+    Date dt = Date(2005,12,31);
+    return wrap(dt);
+}
+
+// [[Rcpp::export]]
+SEXP ctor_int(int d) {
+    Date dt = Date(d);
+    return wrap(dt);
+}
+
+// [[Rcpp::export]]
+SEXP ctor_string(std::string x) {
+    Date dt(x);
+    return wrap(dt);
+}
+
+// [[Rcpp::export]]
+List operators() {
+    Date d1 = Date(2005,12,31);
+    Date d2 = d1 + 1;
+    return List::create(Named("diff") = d1 - d2,
+                        Named("bigger") = d2 > d1,
+                        Named("smaller") = d2 < d1,
+                        Named("equal") = d2 == d1,
+                        Named("ge") = d2 >= d1,
+                        Named("le") = d2 <= d1,
+                        Named("ne") = d2 != d1);
+}
+
+// [[Rcpp::export]]
+List components() {
+    Date d = Date(2005,12,31);
+    return List::create(Named("day") = d.getDay(),
+                        Named("month") = d.getMonth(),
+                        Named("year") = d.getYear(),
+                        Named("weekday") = d.getWeekday(),
+                        Named("yearday") = d.getYearday());
+}
+
+// [[Rcpp::export]]
+SEXP vector_Date() {
+    std::vector<Date> v(2) ;
+    v[0] = Date(2005,12,31) ;
+    v[1] = Date(12,31,2005) ;
+    return wrap( v );
+}
+
+// [[Rcpp::export]]
+SEXP Datevector_wrap() {
+    DateVector v(2) ;
+    v[0] = Date(2005,12,31) ;
+    v[1] = Date(12,31,2005) ;
+    return wrap( v );
+}
+
+// [[Rcpp::export]]
+SEXP Datevector_sexp() {
+    DateVector v(2) ;
+    v[0] = Date(2005,12,31) ;
+    v[1] = Date(12,31,2005) ;
+    return wrap( v );
+}
+
+// [[Rcpp::export]]
+List Date_get_functions(Date x) {
+    Date d = Date(x);
+    return List::create(Named("year") = d.getYear(),
+                        Named("month") = d.getMonth(),
+                        Named("day") = d.getDay(),
+                        Named("wday") = d.getWeekday(),
+                        Named("yday") = d.getYearday());
+}
+
+// [[Rcpp::export]]
+List Datetime_get_functions(Datetime x) {
+    Datetime dt = Datetime(x);
+    return List::create(Named("year") = dt.getYear(),
+                        Named("month") = dt.getMonth(),
+                        Named("day") = dt.getDay(),
+                        Named("wday") = dt.getWeekday(),
+                        Named("hour") = dt.getHours(),
+                        Named("minute") = dt.getMinutes(),
+                        Named("second") = dt.getSeconds(),
+                        Named("microsec") = dt.getMicroSeconds());
+}
+
+// [[Rcpp::export]]
+List Datetime_operators() {
+    Datetime d1 = Datetime(946774923.123456);
+    Datetime d2 = d1 + 60*60;
+    return List::create(Named("diff") = d1 - d2,
+                        Named("bigger") = d2 > d1,
+                        Named("smaller") = d2 < d1,
+                        Named("equal") = d2 == d1,
+                        Named("ge") = d2 >= d1,
+                        Named("le") = d2 <= d1,
+                        Named("ne") = d2 != d1);
+}
+
+// [[Rcpp::export]]
+SEXP Datetime_wrap() {
+    Datetime dt = Datetime(981162123.123456);
+    return wrap(dt);
+}
+
+// [[Rcpp::export]]
+SEXP Datetime_from_string(std::string x) {
+    Datetime dt(x);
+    return wrap(dt);
+}
+
+// [[Rcpp::export]]
+SEXP Datetime_ctor_sexp(Datetime d) {
+    Datetime dt = Datetime(d);
+    return wrap(dt);
+}
+
+// [[Rcpp::export]]
+SEXP DatetimeVector_ctor(DatetimeVector d) {
+    DatetimeVector dt = DatetimeVector(d);
+    return wrap(dt);
+}
+
+// [[Rcpp::export]]
+DatetimeVector DatetimeVector_assignment(DatetimeVector v1,
+    DatetimeVector v2) {
+
+    v1 = v2;
+    return v1;
+}
+
+// [[Rcpp::export]]
+DateVector DateVector_assignment(DateVector v1, DateVector v2) {
+    v1 = v2;
+    return v1;
+}
+
+// [[Rcpp::export]]
+std::string Date_format(Date d, std::string fmt) {
+    return d.format(fmt.c_str());
+}
+
+// [[Rcpp::export]]
+std::string Datetime_format(Datetime d, std::string fmt) {
+    return d.format(fmt.c_str());
+}
+
+// [[Rcpp::export]]
+std::string Date_ostream(Date d) {
+    std::stringstream os;
+    os << d;
+    return os.str();
+}
+
+// [[Rcpp::export]]
+std::string Datetime_ostream(Datetime d) {
+    std::stringstream os;
+    os << d;
+    return os.str();
+}
+
+// [[Rcpp::export]]
+Date gmtime_mktime(Date d) {
+    const int baseYear = 1900;
+    struct tm tm;
+    tm.tm_sec = tm.tm_min = tm.tm_hour = tm.tm_isdst = 0;
+
+    tm.tm_mday  = d.getDay();
+    tm.tm_mon   = d.getMonth() - 1;    // range 0 to 11
+    tm.tm_year  = d.getYear() - baseYear;
+    time_t tmp = mktime00(tm);    // use mktime() replacement borrowed from R
+
+    struct tm chk = *gmtime_(&tmp);
+    Date newd(chk.tm_year, chk.tm_mon + 1, chk.tm_mday);
+    return newd;
+}
+
+// [[Rcpp::export]]
+double test_mktime(Date d) {
+    const int baseYear = 1900;
+    struct tm tm;
+    tm.tm_sec = tm.tm_min = tm.tm_hour = tm.tm_isdst = 0;
+
+    tm.tm_mday  = d.getDay();
+    tm.tm_mon   = d.getMonth() - 1;    // range 0 to 11
+    tm.tm_year  = d.getYear() - baseYear;
+    time_t t = mktime00(tm);    // use mktime() replacement borrowed from R
+    return static_cast<double>(t);
+}
+
+// [[Rcpp::export]]
+Date test_gmtime(double d) {
+    time_t t = static_cast<time_t>(d);
+    struct tm tm = *gmtime_(&t);
+    tm.tm_sec = tm.tm_min = tm.tm_hour = tm.tm_isdst = 0;
+    Date nd(tm.tm_year, tm.tm_mon + 1, tm.tm_mday);
+    return nd;
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Vector.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Vector.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Vector.cpp	(revision 2476)
@@ -0,0 +1,850 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+//
+// Vector.cpp: Rcpp R/C++ interface class library -- Vector unit tests
+//
+// Copyright (C) 2012 - 2015    Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <climits>
+#include <Rcpp.h>
+#include <sstream>
+
+using namespace Rcpp ;
+
+inline double square( double x){ return x*x; }
+
+// [[Rcpp::export]]
+RawVector raw_(){
+    RawVector x(10) ;
+    for( int i=0; i<10; i++) x[i] = (Rbyte)i ;
+    return x ;
+}
+
+// [[Rcpp::export]]
+RawVector raw_REALSXP( RawVector x ){
+    for( int i=0; i<x.size(); i++) {
+        x[i] = x[i]*2 ;
+    }
+    return x ;
+}
+
+// [[Rcpp::export]]
+ExpressionVector expression_(){
+    ExpressionVector x(2) ;
+    x[0] = Symbol( "rnorm" ) ;
+    x[1] = Rf_lcons( Symbol("rnorm"), Rf_cons( Rf_ScalarReal(10.0), R_NilValue) ) ;
+    return x ;
+}
+
+// [[Rcpp::export]]
+ExpressionVector expression_variadic(){
+    ExpressionVector x(2) ;
+    x[0] = Symbol( "rnorm" ) ;
+    x[1] = Language( "rnorm", 10.0 ) ;
+    return x ;
+}
+
+// [[Rcpp::export]]
+ExpressionVector expression_parse(){
+    ExpressionVector code( "local( { y <- sample(1:10); sort(y) })" ) ;
+    return code ;
+}
+
+// [[Rcpp::export]]
+ExpressionVector expression_parseerror(){
+    ExpressionVector code( "rnorm(" ) ;
+    return code ;
+}
+
+// [[Rcpp::export]]
+SEXP expression_eval(){
+    ExpressionVector code( "local( { y <- sample(1:10); sort(y) })" ) ;
+    return code.eval() ;
+}
+
+// [[Rcpp::export]]
+SEXP expression_evalenv( Environment env){
+    ExpressionVector code( "sort(x)" ) ;
+    return code.eval(env) ;
+}
+
+// [[Rcpp::export]]
+ComplexVector complex_(){
+    ComplexVector x(10) ;
+    Rcomplex rc ;
+    for( int i=0; i<10; i++) {
+        rc.r = rc.i = i + 0.0 ;
+        x[i] = rc ;
+    }
+    return x ;
+}
+
+// [[Rcpp::export]]
+ComplexVector complex_CPLXSXP( ComplexVector x ){
+    int nn = x.size();
+    for( int i=0; i<nn; i++) {
+        x[i].r = x[i].r*2 ;
+        x[i].i = x[i].i*2 ;
+    }
+    return x ;
+}
+
+// [[Rcpp::export]]
+ComplexVector complex_INTSXP( SEXP vec ){
+    ComplexVector x(vec);
+    int nn = x.size();
+    IntegerVector tmp(nn, 2.0);
+    ComplexVector tmp1(tmp);
+    x = x * tmp1;
+    return x ;
+}
+
+// [[Rcpp::export]]
+ComplexVector complex_REALSXP(SEXP vec){
+    ComplexVector x(vec);
+    int nn = x.size();
+    NumericVector tmp(nn, 3.0);
+    ComplexVector tmp1(tmp);
+    x = x * tmp1;
+    return x ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_ctor(){
+    IntegerVector x(10) ;
+    for( int i=0; i<10; i++) x[i] = i ;
+    return x ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_INTSXP(SEXP vec){
+    IntegerVector x(vec) ;
+    for( int i=0; i<x.size(); i++) {
+        x[i] = x[i]*2 ;
+    }
+    return x ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_dimension_ctor_1(){
+    return IntegerVector( Dimension( 5 ) ) ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_dimension_ctor_2(){
+    return IntegerVector( Dimension( 5, 5 ) ) ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_dimension_ctor_3(){
+    return IntegerVector( Dimension( 2, 3, 4) ) ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_range_ctor_1(){
+    int x[] = { 0, 1, 2, 3 } ;
+    IntegerVector y( x, x+4 ) ;
+    return y;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_range_ctor_2(){
+    std::vector<int> vec(4) ;
+    for( size_t i = 0; i<4; i++) vec[i] = i;
+    IntegerVector y( vec.begin(), vec.end() ) ;
+    return y;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_names_set(){
+    IntegerVector y(2) ;
+    std::vector<std::string> names(2)  ;
+    names[0] = "foo" ;
+    names[1] = "bar" ;
+    y.names() = names ;
+    return y ;
+}
+
+// [[Rcpp::export]]
+CharacterVector integer_names_get( IntegerVector y ){
+    return y.names() ;
+}
+
+// [[Rcpp::export]]
+int integer_names_indexing( IntegerVector y ){
+    return y["foo"] ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_push_back( IntegerVector y ){
+    y.push_back( 5 ) ;
+    return y ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_push_front( IntegerVector y ){
+    y.push_front( 5 ) ;
+    return y ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_insert( IntegerVector y){
+    y.insert( 0, 5 ) ;
+    y.insert( 2, 7 ) ;
+    return y ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_erase( IntegerVector y ){
+    y.erase(2) ;
+    return y ;
+}
+
+// [[Rcpp::export]]
+List integer_erase_range( IntegerVector x, IntegerVector y ){
+    x.erase(x.begin()+5, x.end()-1 );
+    y.erase(y.begin()+5, y.end()-1 );
+    return List::create( x, y ) ;
+}
+
+// [[Rcpp::export]]
+List integer_erase_range_2( IntegerVector x, IntegerVector y ){
+    IntegerVector::iterator it = x.begin()+1 ;
+    while( it != x.end() ){
+        it = x.erase(it) ;
+    }
+    it = y.begin() + 1 ;
+    while( it != y.end() ){
+        it = y.erase(it) ;
+    }
+    return List::create( x, y ) ;
+}
+
+// [[Rcpp::export]]
+List List_erase_range_2( List x, List y ){
+    List::iterator it = x.begin()+1 ;
+    while( it != x.end() ){
+        it = x.erase(it) ;
+    }
+    it = y.begin() + 1 ;
+    while( it != y.end() ){
+        it = y.erase(it) ;
+    }
+    return List::create( x, y ) ;
+}
+
+
+// [[Rcpp::export]]
+IntegerVector integer_erase2( IntegerVector y ){
+    y.erase(1,2) ;
+    return y ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_fill( IntegerVector y ){
+    y.fill(10) ;
+    return y ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_zero(){
+    return IntegerVector(0);
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_create_zero(){
+    return IntegerVector::create();
+}
+
+// [[Rcpp::export]]
+List integer_create_(){
+    List output(2);
+    output[0] = IntegerVector::create( 10, 20 ) ;
+    output[1] = IntegerVector::create(
+                                      _["foo"] = 20,
+                                      _["bar"] = 30 ) ;
+    return output ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_clone_( IntegerVector vec ){
+    IntegerVector dolly = clone( vec ) ;
+    for( size_t i=0; i<10; i++){
+        dolly[i] = 10 - i ;
+    }
+    return dolly ;
+}
+
+// [[Rcpp::export]]
+NumericVector numeric_(){
+    NumericVector x(10) ;
+    for( int i=0; i<10; i++) x[i] = i ;
+    return x ;
+}
+
+// [[Rcpp::export]]
+NumericVector numeric_REALSXP( SEXP vec){
+    NumericVector x(vec) ;
+    for( int i=0; i<x.size(); i++) {
+        x[i] = x[i]*2.0 ;
+    }
+    return x ;
+}
+
+// [[Rcpp::export]]
+IntegerVector numeric_import(){
+    std::vector<int> v(10) ;
+    for( int i=0; i<10; i++) v[i] = i ;
+    return IntegerVector::import( v.begin(), v.end() ) ;
+}
+
+// [[Rcpp::export]]
+NumericVector numeric_importtransform(){
+    std::vector<double> v(10) ;
+    for( int i=0; i<10; i++) v[i] = i ;
+
+    return NumericVector::import_transform( v.begin(), v.end(), square ) ;
+}
+
+// [[Rcpp::export]]
+List list_ctor(){
+    List x(10) ;
+    for( int i=0; i<10; i++) x[i] = Rf_ScalarInteger( i * 2)  ;
+    return x ;
+}
+
+// [[Rcpp::export]]
+List list_template_(){
+    List x(4) ;
+    x[0] = "foo"  ;
+    x[1] = 10 ;
+    x[2] = 10.2 ;
+    x[3] = false;
+    return x ;
+}
+
+// [[Rcpp::export]]
+List list_VECSXP_( SEXP vec){
+    List x(vec) ;
+    return x ;
+}
+
+// [[Rcpp::export]]
+List list_matrix_indexing_1( List m ){
+    List out(4) ;
+    for( size_t i=0 ; i<4; i++){
+        out[i] = m(i,i) ;
+    }
+    return out ;
+}
+
+// [[Rcpp::export]]
+List list_matrix_indexing_2( GenericVector m ){
+    for(size_t i=0 ; i<4; i++){
+        m(i,i) = "foo" ;
+    }
+    return m ;
+}
+
+// [[Rcpp::export]]
+List list_Dimension_constructor_1(){
+    return List( Dimension( 5 ) ) ;
+}
+
+// [[Rcpp::export]]
+List list_Dimension_constructor_2(){
+    return List( Dimension( 5, 5 ) );
+}
+
+// [[Rcpp::export]]
+List list_Dimension_constructor_3(){
+    return List( Dimension( 2, 3, 4) ) ;
+}
+
+// [[Rcpp::export]]
+List list_iterator_( List input, Function fun){
+    List output( input.size() ) ;
+    std::transform( input.begin(), input.end(), output.begin(), fun ) ;
+    output.names() = input.names() ;
+    return output ;
+}
+
+// [[Rcpp::export]]
+int list_name_indexing( List df ){
+    IntegerVector df_x = df["x"] ;
+    int res = std::accumulate( df_x.begin(), df_x.end(), 0 ) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+List list_push_back(List list){
+    list.push_back( 10 ) ;
+    list.push_back( "bar", "foo" ) ;
+    return list ;
+}
+
+// [[Rcpp::export]]
+List list_push_front( List list ){
+    list.push_front( 10 ) ;
+    list.push_front( "bar", "foo" ) ;
+    return list ;
+}
+
+// [[Rcpp::export]]
+List list_erase( List list ){
+    list.erase( list.begin() ) ;
+    return list ;
+}
+
+// [[Rcpp::export]]
+List list_erase_range( List list ){
+    list.erase( 0, 2 ) ;
+    return list ;
+}
+
+// [[Rcpp::export]]
+List list_implicit_push_back(){
+    List list ;
+    list["foo"] = 10 ;
+    list["bar" ] = "foobar" ;
+    return list ;
+}
+
+// [[Rcpp::export]]
+List list_create_(){
+    List output(2);
+    output[0] = List::create( 10, "foo" ) ;
+    output[1] = List::create(
+                             _["foo"] = 10,
+                             _["bar"] = true ) ;
+    return output ;
+}
+
+// [[Rcpp::export]]
+List list_stdcomplex(){
+    std::vector< std::complex<double> > v_double(10) ;
+    std::vector< std::complex<float> > v_float(10) ;
+    return List::create( _["float"] = v_float, _["double"] = v_double ) ;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_ctor(){
+    CharacterVector x(10) ;
+    for( int i=0; i<10; i++) x[i] = "foo" ;
+    return x ;
+}
+
+// [[Rcpp::export]]
+std::string character_STRSXP_( SEXP vec ){
+    CharacterVector x(vec) ;
+    std::string st = "" ;
+    for( int i=0; i<x.size(); i++) {
+        st += x[i] ;
+    }
+    return st ;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_plusequals(){
+    CharacterVector x(2) ;
+    x[0] = "foo" ;
+    x[1] = "bar" ;
+    x[0] += "bar" ;
+    x[1] += x[0] ;
+    return x ;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_matrix_indexing( CharacterVector m ){
+    std::string trace;
+    for( size_t i=0 ; i<4; i++){
+        trace += m(i,i) ;
+    }
+    return wrap( trace ) ;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_matrix_indexing_lhs( CharacterVector m ){
+    for( size_t i=0 ; i<4; i++){
+        m(i,i) = "foo" ;
+    }
+    return m ;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_matrix_row_iteration_incr( CharacterMatrix m ){
+    std::string pasted_row;
+    CharacterMatrix::Row row(m(1, _));
+    CharacterMatrix::Row::iterator i_row(row.begin());
+    for( size_t i=0 ; i<4; i++){
+        pasted_row += *i_row++;
+    }
+    return wrap( pasted_row ) ;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_matrix_row_iteration_decr( CharacterMatrix m ){
+    std::string pasted_row;
+    CharacterMatrix::Row row(m(1, _));
+    CharacterMatrix::Row::iterator i_row(row.end());
+    i_row--; // Step back from 'one past the end' to 'last element'.
+    // Only copy the last three elements, to avoid creating an invalid
+    // 'one before the beginning' iterator:
+    for( size_t i=0 ; i<3; i++){
+        pasted_row += *i_row--;
+    }
+    return wrap( pasted_row ) ;
+}
+
+
+// [[Rcpp::export]]
+CharacterVector character_assign1(){
+    const char* x[] = { "foo", "bar", "bling", "boom" } ;
+    CharacterVector y ;
+    y.assign( x, x+4 ) ;
+    return y;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_assign2(){
+    std::vector<std::string> vec(4) ;
+    vec[0] = "foo";
+    vec[1] = "bar";
+    vec[2] = "bling";
+    vec[3] = "boom" ;
+    CharacterVector y ;
+    y.assign( vec.begin(), vec.end() ) ;
+    return y;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_range_ctor1(){
+    const char* x[] = { "foo", "bar", "bling", "boom" } ;
+    CharacterVector y( x, x+4 ) ;
+    return y;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_range_ctor2(){
+    std::vector<std::string> vec(4) ;
+    vec[0] = "foo";
+    vec[1] = "bar";
+    vec[2] = "bling";
+    vec[3] = "boom" ;
+    CharacterVector y( vec.begin(), vec.end() ) ;
+    return y;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_dimension_ctor1(){
+    return CharacterVector( Dimension( 5 ) ) ;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_dimension_ctor2(){
+    return CharacterVector( Dimension( 5, 5 ) ) ;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_dimension_ctor3(){
+    return CharacterVector( Dimension( 2, 3, 4) ) ;
+}
+
+// [[Rcpp::export]]
+std::string character_iterator1( CharacterVector letters ){
+    std::string res ;
+    CharacterVector::iterator first = letters.begin() ;
+    CharacterVector::iterator last = letters.end() ;
+    while( first != last ){
+        res += *first ;
+        ++first ;
+    }
+    return res ;
+}
+
+// [[Rcpp::export]]
+std::string character_const_iterator1( const CharacterVector letters ){
+    std::string res ;
+    CharacterVector::const_iterator first = letters.begin() ;
+    CharacterVector::const_iterator last = letters.end() ;
+    while( first != last ){
+        res += *first ;
+        ++first ;
+    }
+    return res ;
+}
+
+
+// [[Rcpp::export]]
+std::string character_iterator2( CharacterVector letters ){
+    std::string res(std::accumulate(letters.begin(), letters.end(), std::string()));
+    return res ;
+}
+
+// [[Rcpp::export]]
+std::string character_const_iterator2( const CharacterVector letters ){
+    std::string res(std::accumulate(letters.begin(), letters.end(), std::string()));
+    return res ;
+}
+
+// [[Rcpp::export]]
+CharacterVector character_reverse( CharacterVector y ){
+    std::reverse( y.begin(), y.end() ) ;
+    return y ;
+}
+
+// [[Rcpp::export]]
+std::string character_names_indexing( CharacterVector y ){
+    std::string foo( y["foo"] ) ;
+    return foo ;
+}
+
+// [[Rcpp::export]]
+List character_listOf( List ll ){
+    CharacterVector cv1 = ll["foo"];
+    CharacterVector cv2 = ll["bar"];
+    std::string rv1 = std::string(cv1[0]) + cv1[1] + cv1[2];
+    std::string rv2 = std::string(cv2[0]) + cv2[1] + cv2[2];
+    return List::create(_["foo"] = rv1, _["bar"] = rv2);
+}
+
+// [[Rcpp::export]]
+int character_find_(CharacterVector y){
+    CharacterVector::iterator it = std::find( y.begin(), y.end(), "foo" ) ;
+    return std::distance( y.begin(), it );
+}
+
+// [[Rcpp::export]]
+List character_create_(){
+    List output(2);
+    output[0] = CharacterVector::create( "foo", "bar" ) ;
+    output[1] = CharacterVector::create(
+                                        _["foo"] = "bar",
+                                        _["bar"] = "foo"
+                                        ) ;
+    return output ;
+}
+
+// [[Rcpp::export]]
+List complex_binary_sugar(ComplexVector xx, ComplexVector yy){
+    return List::create(
+                        _["+"] = xx + yy,
+                        _["-"] = xx - yy,
+                        _["*"] = xx * yy,
+                        _["/"] = xx / yy
+    ) ;
+}
+
+// [[Rcpp::export]]
+List List_extract( List input ){
+    bool a = input[0] ;
+    int b = input[1] ;
+    return List::create(a, b) ;
+}
+
+// [[Rcpp::export]]
+CharacterVector factors( CharacterVector s){
+    return s;
+}
+
+// [[Rcpp::export]]
+IntegerVector IntegerVector_int_init(){
+    IntegerVector x(2,4) ;
+    return x ;
+}
+
+// [[Rcpp::export]]
+bool containsElementNamed( List l, CharacterVector n){
+    return l.containsElementNamed(n[0]);
+}
+
+// [[Rcpp::export]]
+List CharacterVectorEqualityOperator( CharacterVector x, CharacterVector y){
+    int n = x.size() ;
+    LogicalVector eq(n), neq(n);
+    for( int i=0; i<n; i++){
+        eq[i]  = x[i] == y[i] ;
+        neq[i] = x[i] != y[i] ;
+    }
+    return List::create(eq, neq) ;
+}
+
+// [[Rcpp::export]]
+List List_rep_ctor(IntegerVector x){
+    return List(3, x) ;
+}
+
+// [[Rcpp::export]]
+int stdVectorDouble(std::vector<double> x) {
+    return x.size();
+}
+
+// [[Rcpp::export]]
+int stdVectorDoubleConst(const std::vector<double> x) {
+    return x.size();
+}
+
+// [[Rcpp::export]]
+int stdVectorDoubleRef(std::vector<double> & x) {
+    return x.size();
+}
+
+// [[Rcpp::export]]
+int stdVectorDoubleConstRef(const std::vector<double> & x) {
+    return x.size();
+}
+
+// [[Rcpp::export]]
+int stdVectorInt(std::vector<int> x) {
+    return x.size();
+}
+
+// [[Rcpp::export]]
+int stdVectorIntConst(const std::vector<int> x) {
+    return x.size();
+}
+
+// [[Rcpp::export]]
+int stdVectorIntRef(std::vector<int> & x) {
+    return x.size();
+}
+
+// [[Rcpp::export]]
+int stdVectorIntConstRef(const std::vector<int> & x) {
+    return x.size();
+}
+
+// [[Rcpp::export]]
+std::string character_vector_const_proxy(const CharacterVector& str){
+    char* cstr = (char*) str[0] ;
+    std::string res  ;
+    res += cstr ;
+    return cstr ;
+}
+
+// [[Rcpp::export]]
+CharacterVector CharacterVector_test_const_proxy(const CharacterVector x){
+    CharacterVector out( x.size() ) ;
+    for( int i=0; i<x.size(); i++){
+        out[i] = x[i] ;
+    }
+    return out ;
+}
+
+// [[Rcpp::export]]
+NumericVector sort_numeric(NumericVector x) {
+    return x.sort();
+}
+
+// [[Rcpp::export]]
+IntegerVector sort_integer(IntegerVector x) {
+    return x.sort();
+}
+
+// [[Rcpp::export]]
+CharacterVector sort_character(CharacterVector x) {
+    return x.sort();
+}
+
+// [[Rcpp::export]]
+LogicalVector sort_logical(LogicalVector x) {
+    return x.sort();
+}
+
+// [[Rcpp::export]]
+NumericVector sort_numeric_desc(NumericVector x) {
+    return x.sort(true);
+}
+
+// [[Rcpp::export]]
+IntegerVector sort_integer_desc(IntegerVector x) {
+    return x.sort(true);
+}
+
+// [[Rcpp::export]]
+CharacterVector sort_character_desc(CharacterVector x) {
+    return x.sort(true);
+}
+
+// [[Rcpp::export]]
+LogicalVector sort_logical_desc(LogicalVector x) {
+    return x.sort(true);
+}
+
+// [[Rcpp::export]]
+List list_sexp_assign(SEXP x) {
+    List L;
+    L = x;
+    return L;
+}
+
+// [[Rcpp::export]]
+bool logical_vector_from_bool() {
+    return true;
+}
+
+// [[Rcpp::export]]
+LogicalVector logical_vector_from_bool_assign() {
+    LogicalVector result = true;
+    return result;
+}
+
+// [[Rcpp::export]]
+void no_op(int major) {
+    int minor = 1;
+}
+
+// [[Rcpp::export]]
+int noprotect_vector( Vector<REALSXP, NoProtectStorage> x){
+  return x.size() ;
+}
+
+// [[Rcpp::export]]
+int noprotect_matrix( Matrix<REALSXP, NoProtectStorage> x){
+  return x.nrow() ;
+}
+
+// [[Rcpp::export]]
+int vec_access_with_bounds_checking(const IntegerVector x, int index) {
+    return x.at(index);
+}
+
+// [[Rcpp::export]]
+String vec_print_numeric(NumericVector v) {
+    std::ostringstream buf;
+    buf << v;
+    return buf.str();
+}
+
+// [[Rcpp::export]]
+String vec_print_character(CharacterVector v) {
+    std::ostringstream buf;
+    buf << v;
+    return buf.str();
+}
+
+// [[Rcpp::export]]
+String vec_print_integer(IntegerVector v) {
+    std::ostringstream buf;
+    buf << v;
+    return buf.str();
+}
+
+// [[Rcpp::export]]
+IntegerVector vec_subset(IntegerVector x, IntegerVector y) {
+    return x[y - 1];
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/as.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/as.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/as.cpp	(revision 2476)
@@ -0,0 +1,60 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// as.cpp: Rcpp R/C++ interface class library -- as<> unit tests
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+int as_int( SEXP x){ return as<int>( x ); }
+
+// [[Rcpp::export]]
+double as_double( SEXP x){ return as<double>( x ); }
+
+// [[Rcpp::export]]
+Rbyte as_raw( SEXP x){ return as<Rbyte>( x ); }
+
+// [[Rcpp::export]]
+bool as_bool( SEXP x){ return as<bool>( x ); }
+
+// [[Rcpp::export]]
+std::string as_string( SEXP x){ return as<std::string>( x ); }
+
+// [[Rcpp::export]]
+std::vector<int> as_vector_int( SEXP x){ return as< std::vector<int> >(x) ; }
+
+// [[Rcpp::export]]
+std::vector<double> as_vector_double( SEXP x){ return as< std::vector<double> >(x) ; }
+
+// [[Rcpp::export]]
+std::vector<Rbyte> as_vector_raw( SEXP x){ return as< std::vector<Rbyte> >(x) ; }
+
+// [[Rcpp::export]]
+std::vector<bool> as_vector_bool( SEXP x){ return as< std::vector<bool> >(x) ; }
+
+// [[Rcpp::export]]
+std::vector<std::string> as_vector_string( SEXP x){ return as< std::vector<std::string> >(x) ; }
+
+// [[Rcpp::export]]
+std::deque<int> as_deque_int( SEXP x){ return as< std::deque<int> >(x) ; }
+
+// [[Rcpp::export]]
+std::list<int> as_list_int( SEXP x){ return as< std::list<int> >(x) ; }
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Matrix.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Matrix.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Matrix.cpp	(revision 2476)
@@ -0,0 +1,412 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// Matrix.cpp: Rcpp R/C++ interface class library -- Matrix unit tests
+//
+// Copyright (C) 2013 - 2016  Dirk Eddelbuettel, Romain Francois and Kevin Ushey
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+// [[Rcpp::export]]
+double matrix_numeric( NumericMatrix m){
+    double trace = 0.0 ;
+    for( size_t i=0 ; i<4; i++){
+        	trace += m(i,i) ;
+    }
+    return trace ;
+}
+
+// [[Rcpp::export]]
+std::string matrix_character( CharacterMatrix m){
+    std::string trace ;
+    for( size_t i=0 ; i<4; i++){
+        	trace += m(i,i) ;
+    }
+    return trace;
+}
+
+// [[Rcpp::export]]
+List matrix_generic( GenericMatrix m){
+    List output( m.ncol() ) ;
+    for( size_t i=0 ; i<4; i++){
+        	output[i] = m(i,i) ;
+    }
+    return output ;
+}
+
+// [[Rcpp::export]]
+NumericMatrix matrix_opequals(SEXP x) {
+  NumericMatrix xx;
+  xx = NumericMatrix(x);
+  return xx;
+}
+
+// [[Rcpp::export]]
+IntegerMatrix matrix_integer_diag(){
+    return IntegerMatrix::diag( 5, 1 ) ;
+}
+
+// [[Rcpp::export]]
+CharacterMatrix matrix_character_diag(){
+    return CharacterMatrix::diag( 5, "foo" ) ;
+}
+
+// [[Rcpp::export]]
+NumericMatrix matrix_numeric_ctor1(){
+    return NumericMatrix(3);
+}
+
+// [[Rcpp::export]]
+NumericMatrix matrix_numeric_ctor2(){
+    return NumericMatrix(3,3);
+}
+
+// [[Rcpp::export]]
+int integer_matrix_indexing( IntegerMatrix m){
+    int trace = 0.0 ;
+    for( size_t i=0 ; i<4; i++){
+        trace += m(i,i) ;
+    }
+    return trace ;
+}
+
+// [[Rcpp::export]]
+IntegerVector integer_matrix_indexing_lhs( IntegerVector m ){
+    for( size_t i=0 ; i<4; i++){
+        m(i,i) = 2 * i ;
+    }
+    return m ;
+}
+
+// [[Rcpp::export]]
+double runit_NumericMatrix_row( NumericMatrix m){
+    NumericMatrix::Row first_row = m.row(0) ;
+    return std::accumulate( first_row.begin(), first_row.end(), 0.0 ) ;
+}
+
+// [[Rcpp::export]]
+double runit_NumericMatrix_row_const( const NumericMatrix m){
+    NumericMatrix::ConstRow first_row = m.row(0) ;
+    return std::accumulate( first_row.begin(), first_row.end(), 0.0 ) ;
+}
+
+// [[Rcpp::export]]
+std::string runit_CharacterMatrix_row( CharacterMatrix m ){
+    CharacterMatrix::Row first_row = m.row(0) ;
+    std::string res(
+    	std::accumulate(
+    		first_row.begin(), first_row.end(), std::string() ) ) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+std::string runit_CharacterMatrix_row_const( const CharacterMatrix m ){
+    CharacterMatrix::ConstRow first_row = m.row(0) ;
+    std::string res(
+    	std::accumulate(
+    		first_row.begin(), first_row.end(), std::string() ) ) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_GenericMatrix_row( GenericMatrix m ){
+    GenericMatrix::Row first_row = m.row(0) ;
+    IntegerVector out( first_row.size() ) ;
+    std::transform(
+    	first_row.begin(), first_row.end(),
+    	out.begin(),
+    	unary_call<SEXP,int>( Function("length" ) ) ) ;
+    return out ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_GenericMatrix_row_const( const GenericMatrix m ){
+    GenericMatrix::ConstRow first_row = m.row(0) ;
+    IntegerVector out( first_row.size() ) ;
+    std::transform(
+    	first_row.begin(), first_row.end(),
+    	out.begin(),
+    	unary_call<SEXP,int>( Function("length" ) ) ) ;
+    return out ;
+}
+
+// [[Rcpp::export]]
+double runit_NumericMatrix_column( NumericMatrix m ){
+    NumericMatrix::Column col = m.column(0) ;
+    return std::accumulate( col.begin(), col.end(), 0.0 ) ;
+}
+
+// [[Rcpp::export]]
+double runit_NumericMatrix_column_const( const NumericMatrix m ){
+    NumericMatrix::ConstColumn col = m.column(0) ;
+    return std::accumulate( col.begin(), col.end(), 0.0 ) ;
+}
+
+// [[Rcpp::export]]
+NumericMatrix runit_NumericMatrix_cumsum( NumericMatrix input ){
+    int nr = input.nrow(), nc = input.ncol() ;
+    NumericMatrix output(nr, nc) ;
+    NumericVector tmp( nr );
+    for( int i=0; i<nc; i++){
+        tmp = tmp + input.column(i) ;
+        NumericMatrix::Column target( output, i ) ;
+        std::copy( tmp.begin(), tmp.end(), target.begin() ) ;
+    }
+    return output ;
+}
+
+// [[Rcpp::export]]
+std::string runit_CharacterMatrix_column( CharacterMatrix m){
+    CharacterMatrix::Column col = m.column(0) ;
+    std::string res(
+        std::accumulate( col.begin(), col.end(), std::string() )
+    ) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+std::string runit_CharacterMatrix_column_const( const CharacterMatrix m){
+    CharacterMatrix::ConstColumn col = m.column(0) ;
+    std::string res(
+        std::accumulate( col.begin(), col.end(), std::string() )
+    ) ;
+    return res ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_GenericMatrix_column( GenericMatrix m ){
+    GenericMatrix::Column col = m.column(0) ;
+    IntegerVector out( col.size() ) ;
+    std::transform(
+    	   col.begin(), col.end(),
+    	   out.begin(),
+    	   unary_call<SEXP,int>( Function("length" ) )
+    ) ;
+    return wrap(out) ;
+}
+
+// [[Rcpp::export]]
+IntegerVector runit_GenericMatrix_column_const( const GenericMatrix m ){
+    GenericMatrix::ConstColumn col = m.column(0) ;
+    IntegerVector out( col.size() ) ;
+    std::transform(
+    	   col.begin(), col.end(),
+    	   out.begin(),
+    	   unary_call<SEXP,int>( Function("length" ) )
+    ) ;
+    return wrap(out) ;
+}
+
+// [[Rcpp::export]]
+List runit_Row_Column_sugar( NumericMatrix x){
+    NumericVector r0 = x.row(0) ;
+    NumericVector c0 = x.column(0) ;
+    return List::create(
+        r0,
+        c0,
+        x.row(1),
+        x.column(1),
+        x.row(1) + x.column(1)
+        ) ;
+}
+
+// [[Rcpp::export]]
+NumericMatrix runit_NumericMatrix_colsum( NumericMatrix input ){
+    int nc = input.ncol() ;
+    NumericMatrix output = clone<NumericMatrix>( input ) ;
+    for( int i=1; i<nc; i++){
+       output(_,i) = output(_,i-1) + input(_,i) ;
+    }
+    return output ;
+}
+
+// [[Rcpp::export]]
+NumericMatrix runit_NumericMatrix_rowsum( NumericMatrix input ){
+    int nr = input.nrow();
+    NumericMatrix output = clone<NumericMatrix>( input ) ;
+    for( int i=1; i<nr; i++){
+       output(i,_) = output(i-1,_) + input(i,_) ;
+    }
+    return output ;
+}
+
+// [[Rcpp::export]]
+NumericMatrix runit_SubMatrix( ){
+    NumericMatrix xx(4, 5);
+    xx(0,0) = 3;
+    xx(0,1) = 4;
+    xx(0,2) = 5;
+    xx(1,_) = xx(0,_);
+    xx(_,3) = xx(_,2);
+    SubMatrix<REALSXP> yy = xx( Range(0,2), Range(0,3) ) ;
+    NumericMatrix res = yy ;
+    return res;
+}
+
+// [[Rcpp::export]]
+void runit_rownames_colnames_proxy(
+    NumericMatrix x, CharacterVector row_names, CharacterVector col_names) {
+    rownames(x) = row_names;
+    colnames(x) = col_names;
+}
+
+// [[Rcpp::export]]
+void runit_rownames_proxy(NumericMatrix x) {
+    rownames(x) = CharacterVector::create("A", "B", "C");
+}
+
+// [[Rcpp::export]]
+NumericMatrix runit_no_init_matrix() {
+    NumericMatrix x = no_init(2, 2);
+    for (int i = 0; i < 4; i++) {
+        x[i] = i;
+    }
+    return x;
+}
+
+void runit_const_Matrix_column_set( NumericMatrix::Column& col1, const NumericMatrix::Column& col2 ){
+    col1 = col2 ;    
+}
+
+// [[Rcpp::export]]
+NumericVector runit_const_Matrix_column( const NumericMatrix& m ){
+   NumericMatrix::Column col1( m, 0 ) ;
+   NumericMatrix::Column col2( m, 1 ) ;
+   runit_const_Matrix_column_set(col1, col2) ;
+   return col1 ;
+}
+
+// [[Rcpp::export]]
+int mat_access_with_bounds_checking(const IntegerMatrix m, int i, int j) {
+    return m.at(i, j);
+}
+
+
+// [[Rcpp::export]]
+IntegerMatrix transposeInteger(const IntegerMatrix & x) {
+    return transpose(x);
+}
+
+// [[Rcpp::export]]
+NumericMatrix transposeNumeric(const NumericMatrix & x) {
+    return transpose(x);
+}
+
+// [[Rcpp::export]]
+CharacterMatrix transposeCharacter(const CharacterMatrix & x) {
+    return transpose(x);
+}
+
+// [[Rcpp::export]]
+NumericMatrix matrix_scalar_plus(const NumericMatrix & x, double y) {
+    return x + y;
+}
+
+// [[Rcpp::export]]
+NumericMatrix matrix_scalar_plus2(const NumericMatrix & x, double y) {
+    return y + x;
+}
+
+// [[Rcpp::export]]
+NumericMatrix matrix_scalar_divide(const NumericMatrix & x, double y) {
+    return x / y;
+}
+
+// [[Rcpp::export]]
+NumericMatrix matrix_scalar_divide2(const NumericMatrix & x, double y) {
+    return y / x;
+}
+
+// 24 October 2016 
+// eye, ones, and zeros static member functions
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix dbl_eye(int n) {
+    return Rcpp::NumericMatrix::eye(n);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerMatrix int_eye(int n) {
+    return Rcpp::IntegerMatrix::eye(n);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexMatrix cx_eye(int n) {
+    return Rcpp::ComplexMatrix::eye(n);
+}
+
+// [[Rcpp::export]]
+Rcpp::LogicalMatrix lgl_eye(int n) {
+    return Rcpp::LogicalMatrix::eye(n);
+}
+
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix dbl_ones(int n) {
+    return Rcpp::NumericMatrix::ones(n);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerMatrix int_ones(int n) {
+    return Rcpp::IntegerMatrix::ones(n);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexMatrix cx_ones(int n) {
+    return Rcpp::ComplexMatrix::ones(n);
+}
+
+// [[Rcpp::export]]
+Rcpp::LogicalMatrix lgl_ones(int n) {
+    return Rcpp::LogicalMatrix::ones(n);
+}
+
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix dbl_zeros(int n) {
+    return Rcpp::NumericMatrix::zeros(n);
+}
+
+// [[Rcpp::export]]
+Rcpp::IntegerMatrix int_zeros(int n) {
+    return Rcpp::IntegerMatrix::zeros(n);
+}
+
+// [[Rcpp::export]]
+Rcpp::ComplexMatrix cx_zeros(int n) {
+    return Rcpp::ComplexMatrix::zeros(n);
+}
+
+// [[Rcpp::export]]
+Rcpp::LogicalMatrix lgl_zeros(int n) {
+    return Rcpp::LogicalMatrix::zeros(n);
+}
+
+// --- Diagonal Fill
+
+// [[Rcpp::export]]
+Rcpp::NumericMatrix num_diag_fill(Rcpp::NumericMatrix x, double diag_val) {
+    x.fill_diag(diag_val);
+    return x;
+}
+
+// [[Rcpp::export]]
+Rcpp::CharacterMatrix char_diag_fill(Rcpp::CharacterMatrix x, std::string diag_val) {
+    x.fill_diag(diag_val);
+    return x;
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Subset.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Subset.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/Subset.cpp	(revision 2476)
@@ -0,0 +1,111 @@
+#include <Rcpp.h>
+using namespace Rcpp;
+
+// [[Rcpp::export]]
+NumericVector subset_test_int(NumericVector x, IntegerVector y) {
+    return x[y];
+}
+
+// [[Rcpp::export]]
+NumericVector subset_test_num(NumericVector x, NumericVector y) {
+    return x[y];
+}
+
+// [[Rcpp::export]]
+NumericVector subset_test_lgcl(NumericVector x, LogicalVector y) {
+    return x[y];
+}
+
+// [[Rcpp::export]]
+NumericVector subset_test_char(NumericVector x, CharacterVector y) {
+    return x[y];
+}
+
+// [[Rcpp::export]]
+List subset_test_list(List x, CharacterVector y) {
+    return x[y];
+}
+
+// [[Rcpp::export]]
+List subset_test_list_int(List x, IntegerVector y) {
+    return x[y];
+}
+
+// [[Rcpp::export]]
+List subset_test_list_lgcl(List x, LogicalVector y) {
+    return x[y];
+}
+
+// [[Rcpp::export]]
+NumericVector subset_test_greater_0(NumericVector x) {
+    return x[ x > 0 ];
+}
+
+// [[Rcpp::export]]
+List subset_test_literal(List x) {
+    return x["foo"];
+}
+
+// [[Rcpp::export]]
+NumericVector subset_test_assign(NumericVector x) {
+    x[ x > 0 ] = 0;
+    return x;
+}
+
+// [[Rcpp::export]]
+NumericVector subset_test_constref(NumericVector const& x, IntegerVector const& y) {
+    return x[y];
+}
+
+// [[Rcpp::export]]
+NumericVector subset_assign_subset(NumericVector x) {
+    NumericVector y(x.size());
+    y[x > 3] = x[x > 3];
+    return y;
+}
+
+// [[Rcpp::export]]
+NumericVector subset_assign_subset2(NumericVector x) {
+    NumericVector y(x.size());
+    y[x <= 3] = x[x > 3];
+    return y;
+}
+
+// [[Rcpp::export]]
+NumericVector subset_assign_subset3(NumericVector x) {
+    NumericVector y(x.size());
+    y[x <= 3] = x[3];
+    return y;
+}
+
+// [[Rcpp::export]]
+IntegerVector subset_assign_subset4(NumericVector x) {
+    IntegerVector y(x.size());
+    y[x <= 3] = x[x <= 3];
+    return y;
+}
+
+// [[Rcpp::export]]
+NumericVector subset_assign_subset5(NumericVector x) {
+    NumericVector y(x.size());
+    y[x < 3] = x[x >= 4];
+    return y;
+}
+
+// [[Rcpp::export]]
+NumericVector subset_assign_vector_size_1(NumericVector x, int i) {
+    NumericVector y(1);
+    y[0]=i;
+
+    x[x < 4] = y;
+
+    return x;
+}
+
+// [[Rcpp::export]]
+NumericVector subset_sugar_add(NumericVector x, IntegerVector y)
+{
+    NumericVector result = x[y] + x[y];
+    return result;
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/wrap.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/wrap.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/wrap.cpp	(revision 2476)
@@ -0,0 +1,306 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// wrap.cpp: Rcpp R/C++ interface class library -- wrap unit tests
+//
+// Copyright (C) 2013 Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+// Testing 'wrap', 'as' with custom class -- see
+// https://github.com/RcppCore/Rcpp/issues/165
+template<typename T>
+class Bar {
+    public:
+        Bar(T t) : t(t) {}
+        ~Bar() {}
+        T t;
+};
+
+#include <RcppCommon.h>
+namespace Rcpp {
+    template<typename T> SEXP wrap(const Bar<T> &b);
+}
+
+#include <Rcpp.h>
+
+template<typename T> SEXP Rcpp::wrap(const Bar<T> &b) {
+    return Rcpp::wrap(b.t);
+}
+
+// [[Rcpp::export]]
+Bar<int> test_wrap_custom_class() {
+    Bar<int> b(42);
+    return b;
+}
+
+using namespace Rcpp;
+
+// [[Rcpp::export]]
+IntegerVector map_string_int(){
+    std::map< std::string, int > m ;
+   	m["b"] = 100;
+  	m["a"] = 200;
+  	m["c"] = 300;
+  	return wrap(m);
+}
+
+// [[Rcpp::export]]
+NumericVector map_string_double(){
+    std::map<std::string,double> m ;
+    m["b"] = 100;
+    m["a"] = 200;
+    m["c"] = 300;
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+LogicalVector map_string_bool(){
+    std::map<std::string,bool> m ;
+    m["b"] = true;
+    m["a"] = false;
+    m["c"] = true;
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+RawVector map_string_Rbyte(){
+    std::map<std::string,Rbyte> m ;
+	m["b"] = (Rbyte)0;
+  	m["a"] = (Rbyte)1;
+  	m["c"] = (Rbyte)2;
+  	return wrap(m);
+}
+
+// [[Rcpp::export]]
+CharacterVector map_string_string(){
+    std::map<std::string,std::string> m ;
+    m["b"] = "foo" ;
+    m["a"] = "bar" ;
+    m["c"] = "bling" ;
+  	return wrap(m);
+}
+
+// [[Rcpp::export]]
+List map_string_generic(){
+    std::map< std::string,std::vector<int> > m ;
+    std::vector<int> b; b.push_back(1); b.push_back(2); m["b"] = b;
+    std::vector<int> a; a.push_back(1); a.push_back(2); a.push_back(2); m["a"] = a;
+    std::vector<int> c; c.push_back(1); c.push_back(2); c.push_back(2); c.push_back(2); m["c"] = c;
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+IntegerVector multimap_string_int(){
+    std::multimap< std::string, int > m;
+    m.insert( std::pair<std::string,int>("b", 100));
+    m.insert( std::pair<std::string,int>("a", 200));
+    m.insert( std::pair<std::string,int>("c", 300));
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+NumericVector multimap_string_double(){
+    std::multimap<std::string,double> m ;
+    m.insert( std::pair<std::string,double>("b", 100) );
+    m.insert( std::pair<std::string,double>("a", 200) );
+    m.insert( std::pair<std::string,double>("c", 300) );
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+LogicalVector multimap_string_bool(){
+    std::multimap<std::string,bool> m ;
+    m.insert( std::pair<std::string,bool>("b", true ) ) ;
+    m.insert( std::pair<std::string,bool>("a", false) ) ;
+    m.insert( std::pair<std::string,bool>("c", true ) ) ;
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+RawVector multimap_string_Rbyte(){
+    std::multimap<std::string,Rbyte> m ;
+    m.insert( std::pair<std::string,Rbyte>("b", (Rbyte)0) );
+    m.insert( std::pair<std::string,Rbyte>("a", (Rbyte)1) );
+    m.insert( std::pair<std::string,Rbyte>("c", (Rbyte)2) );
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+CharacterVector multimap_string_string(){
+    std::multimap<std::string,std::string> m ;
+    m.insert( std::pair<std::string,std::string>( "b", "foo"  ) ) ;
+    m.insert( std::pair<std::string,std::string>( "a", "bar"  ) ) ;
+    m.insert( std::pair<std::string,std::string>( "c", "bling") ) ;
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+List multimap_string_generic(){
+    typedef std::pair<std::string,std::vector<int> > _pair ;
+    std::multimap< std::string,std::vector<int> > m ;
+    std::vector<int> b ; b.push_back(1) ; b.push_back(2) ;
+    m.insert( _pair("b", b) );
+
+    std::vector<int> a ; a.push_back(1) ; a.push_back(2) ; a.push_back(2) ;
+    m.insert( _pair("a", a) );
+
+    std::vector<int> c ; c.push_back(1) ; c.push_back(2) ; c.push_back(2) ; c.push_back(2) ;
+    m.insert( _pair("c",  c) );
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+SEXP nonnull_const_char(){
+    const char *p = "foo";
+    return wrap(p) ;
+}
+
+#ifdef RCPP_USING_CXX11
+// [[Rcpp::plugins(cpp11)]]
+#endif
+
+// [[Rcpp::export]]
+IntegerVector unordered_map_string_int(){
+    RCPP_UNORDERED_MAP< std::string, int > m ;
+    m["b"] = 100;
+    m["a"] = 200;
+    m["c"] = 300;
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+IntegerVector unordered_map_rcpp_string_int(StringVector v){
+    RCPP_UNORDERED_MAP< String, int > m ;
+    m[v[0]] = 200;
+    m[v[1]] = 100;
+    m[v[2]] = 300;
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+LogicalVector unordered_set_rcpp_string(StringVector x) {
+    RCPP_UNORDERED_SET<String> seen;
+    LogicalVector out(x.size());
+    for (int i = 0; i < x.size(); i++) {
+        out[i] = !seen.insert(x[i]).second;
+    }
+    return out;
+}
+
+// [[Rcpp::export]]
+NumericVector unordered_map_string_double(){
+    RCPP_UNORDERED_MAP<std::string,double> m ;
+    m["b"] = 100;
+    m["a"] = 200;
+    m["c"] = 300;
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+LogicalVector unordered_map_string_bool(){
+    RCPP_UNORDERED_MAP<std::string,bool> m ;
+    m["b"] = true;
+    m["a"] = false;
+    m["c"] = true;
+    return wrap(m) ;
+}
+
+// [[Rcpp::export]]
+RawVector unordered_map_string_Rbyte(){
+    RCPP_UNORDERED_MAP<std::string,Rbyte> m ;
+    m["b"] = (Rbyte)0;
+    m["a"] = (Rbyte)1;
+    m["c"] = (Rbyte)2;
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+CharacterVector unordered_map_string_string(){
+    RCPP_UNORDERED_MAP<std::string,std::string> m ;
+	m["b"] = "foo" ;
+  	m["a"] = "bar" ;
+  	m["c"] = "bling" ;
+  	return wrap(m) ;
+}
+
+// [[Rcpp::export]]
+List unordered_map_string_generic(){
+    RCPP_UNORDERED_MAP< std::string,std::vector<int> > m ;
+    std::vector<int> b; b.push_back(1); b.push_back(2); m["b"] = b ;
+    std::vector<int> a; a.push_back(1); a.push_back(2); a.push_back(2); m["a"] = a;
+    std::vector<int> c; c.push_back(1); c.push_back(2); c.push_back(2); c.push_back(2); m["c"] = c;
+    return wrap(m);
+}
+
+// [[Rcpp::export]]
+SEXP map_int_double(){
+    std::map<int, double> map ;
+    map[0] = 2.0 ;
+    map[-1] = 3.0 ;
+    return wrap( map ) ;
+}
+
+// [[Rcpp::export]]
+SEXP map_double_double(){
+    std::map<double, double> map ;
+    map[0.0] = 2.0 ;
+    map[1.2] = 3.0 ;
+    return wrap( map ) ;
+}
+
+// [[Rcpp::export]]
+SEXP map_int_vector_double(){
+    std::map<int, std::vector<double> > map ;
+    map[0].push_back( 1.0 ) ;
+    map[0].push_back( 2.0 ) ;
+
+    map[1].push_back( 2.0 ) ;
+    map[1].push_back( 3.0 ) ;
+
+    return wrap( map ) ;
+}
+
+RCPP_EXPOSED_CLASS(Foo)
+class Foo{
+    public:
+        Foo() : x(0.0){}
+        Foo( double x_ ) : x(x_){}
+        double get() { return x ; }
+   private:
+       double x ;
+} ;
+RCPP_MODULE(mod){
+    class_<Foo>("Foo")
+        .constructor<double>()
+        .method( "get", &Foo::get )
+    ;
+}
+
+// [[Rcpp::export]]
+SEXP map_int_Foo(){
+    std::map<int, Foo> map ;
+    map[0] = Foo( 2 ) ;
+    map[1] = Foo( 3 ) ;
+    return wrap( map ) ;
+}
+
+// [[Rcpp::export]]
+SEXP vector_Foo(){
+    std::vector<Foo> vec(2) ;
+    vec[0] = Foo( 2 ) ;
+    vec[1] = Foo( 3 ) ;
+    return wrap(vec) ;
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/modref.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/modref.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/cpp/modref.cpp	(revision 2476)
@@ -0,0 +1,55 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// modref.cpp: Rcpp R/C++ interface class library -- module unit tests
+//
+// Copyright (C) 2013 - 2015  Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of Rcpp.
+//
+// Rcpp is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// Rcpp is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+#include <Rcpp.h>
+using namespace Rcpp ;
+
+class ModRefWorld {
+public:
+    ModRefWorld() : foo(1), msg("hello") {}
+    void set(std::string msg_) { this->msg = msg_; }
+    std::string greet() { return msg; }
+
+    int foo ;
+    double bar ;
+
+private:
+    std::string msg;
+};
+
+void clearWorld( ModRefWorld* w ){
+    w->set( "" );
+}
+
+RCPP_MODULE(modrefmodule){
+    class_<ModRefWorld>( "ModRefWorld" )
+        .default_constructor()
+
+        .method( "greet", &ModRefWorld::greet )
+        .method( "set", &ModRefWorld::set )
+        .method( "clear", &clearWorld )
+
+        .field( "foo", &ModRefWorld::foo )
+        .field_readonly( "bar", &ModRefWorld::bar )
+        ;
+
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.system.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.system.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.system.R	(revision 2476)
@@ -0,0 +1,45 @@
+#!/usr/bin/env r
+# -*- mode: R; tab-width: 4; -*-
+#
+# Copyright (C) 2016          Dirk Eddelbuettel
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    test.Rcpp.system.file <- function() {
+        inc_rcpp <- Rcpp:::Rcpp.system.file("include")
+        inc_sys <- tools::file_path_as_absolute( base::system.file("include", package = "Rcpp"))
+        checkEquals(inc_rcpp, inc_sys, msg = "Rcpp.system.file")
+
+    }
+
+    test.RcppLd <- function() {
+        checkTrue(Rcpp:::RcppLdPath() == "", msg = "RcppLdPath")
+        checkTrue(Rcpp:::RcppLdFlags() == "", msg = "RcppLdFlags")
+        checkEquals(Rcpp:::LdFlags(), NULL, msg = "LdFlags")
+    }
+
+    test.RcppCxx <- function() {
+        checkTrue(Rcpp:::canUseCXX0X(), msg = "canUseCXX0X")
+        checkTrue(Rcpp:::RcppCxxFlags() != "", msg = "RcppCxxFlags()")
+        checkEquals(Rcpp:::CxxFlags(), NULL, msg = "CxxFlags()")
+
+        checkTrue(length(Rcpp:::RcppCapabilities()) >= 13, msg = "RcppCapabilities()")
+    }
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Module.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Module.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Module.R	(revision 2476)
@@ -0,0 +1,97 @@
+#!/usr/bin/env r
+#       hey emacs, please make this use  -*- tab-width: 4 -*-
+#
+# Copyright (C) 2010 - 2015  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if( .runThisTest && Rcpp:::capabilities()[["Rcpp modules"]] ) {
+
+    .tearDown <- function(){
+        gc()
+    }
+
+    .setUp <- Rcpp:::unitTestSetup("Module.cpp")
+    
+    test.Module <- function(){
+        checkEquals( bar( 2L ), 4L )
+        checkEquals( foo( 2L, 10.0 ), 20.0 )
+        checkEquals( hello(), "hello" )
+        
+        w <- new( ModuleWorld )
+        checkEquals( w$greet(), "hello" )
+        w$set( "hello world" )
+        checkEquals( w$greet(), "hello world" )
+        w$set_ref( "hello world ref" )
+        checkEquals( w$greet(), "hello world ref" )
+        w$set_const_ref( "hello world const ref" )
+        checkEquals( w$greet(), "hello world const ref" )
+        w$clear( )
+        checkEquals( w$greet(), "" )
+    }
+
+    test.Module.exposed.class <- function(){
+        test <- new( ModuleTest, 3.0 )
+        checkEquals( Test_get_x_const_ref(test), 3.0 )
+        checkEquals( Test_get_x_const_pointer(test), 3.0 )
+        checkEquals( Test_get_x_ref(test), 3.0 )
+        checkEquals( Test_get_x_pointer(test), 3.0 )
+        
+        checkEquals( attr_Test_get_x_const_ref(test), 3.0 )
+        checkEquals( attr_Test_get_x_const_pointer(test), 3.0 )
+        checkEquals( attr_Test_get_x_ref(test), 3.0 )
+        checkEquals( attr_Test_get_x_pointer(test), 3.0 )
+    }
+
+    test.Module.property <- function(){
+        w <- new( ModuleNum )
+        checkEquals( w$x, 0.0 )
+        checkEquals( w$y, 0L )
+
+        w$x <- 2.0
+        checkEquals( w$x, 2.0 )
+
+        checkException( { w$y <- 3 } )
+    }
+
+    test.Module.member <- function(){
+        w <- new( ModuleNumber )
+        checkEquals( w$x, 0.0 )
+        checkEquals( w$y, 0L )
+
+        w$x <- 2.0
+        checkEquals( w$x, 2.0 )
+
+        checkException( { w$y <- 3 } )
+    }
+
+    test.Module.Constructor <- function() {
+        r <- new( ModuleRandomizer, 10.0, 20.0 )
+        set.seed(123)
+        x10 <- runif(10, 10.0, 20.0)
+        set.seed(123)
+        checkEquals(r$get(10), x10)
+    }
+
+    test.Module.flexible.semantics <- function( ){
+        checkEquals( test_reference( seq(0,10) ), 11L )
+        checkEquals( test_const_reference( seq(0,10) ), 11L )
+        checkEquals( test_const( seq(0,10) ), 11L )
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.attributes.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.attributes.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.attributes.R	(revision 2476)
@@ -0,0 +1,37 @@
+#!/usr/bin/env r
+# -*- mode: R; tab-width: 4; -*-
+#
+# Copyright (C) 2014  Dirk Eddelbuettel, Romain Francois, and Kevin Ushey
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("attributes.cpp")
+    test.attributes <- function() {
+        checkEquals(
+            comments_test(),
+            "Start a C++ line comment with the characters \"//\""
+        )
+        checkEquals(
+            parse_declaration_test(),
+            "Parse function declaration"
+        )
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.InternalFunctionCPP11.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.InternalFunctionCPP11.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.InternalFunctionCPP11.R	(revision 2476)
@@ -0,0 +1,41 @@
+#!/usr/bin/env r
+#       hey emacs, please make this use  -*- tab-width: 4 -*-
+#
+# Copyright (C) 2014 Christian Authmann
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if( .runThisTest && Rcpp:::capabilities()[["Full C++11 support"]] ) {
+
+    .tearDown <- function(){
+        gc()
+    }
+
+    .setUp <- Rcpp:::unitTestSetup("InternalFunctionCPP11.cpp")
+    
+    test.internal_function_add <- function(){
+    	fun <- getAdd4()
+        checkEquals( fun(38), 42 )
+    }
+
+    test.internal_function_concatenate <- function(){
+    	fun <- getConcatenate()
+        checkEquals( fun("Hello"," World"), "Hello World" )
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.table.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.table.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.table.R	(revision 2476)
@@ -0,0 +1,48 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2014  Dirk Eddelbuettel, Romain Francois, and Kevin Ushey
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+  
+    .setUp <- Rcpp:::unitTestSetup("table.cpp")
+    
+    table_ <- function(x) c(base::table(x, useNA="ifany"))
+    
+    test.table.numeric <- function() {
+        x <- c(1, 2, 1, 1, NA, NaN, -Inf, Inf)
+        checkEquals( RcppTable(x), table_(x), "table matches R: numeric case")
+    }
+    
+    test.table.integer <- function() {
+        x <- c(-1L, 1L, NA_integer_, NA_integer_, 100L, 1L)
+        checkEquals( RcppTable(x), table_(x), "table matches R: integer case")
+    }
+    
+    test.table.logical <- function() {
+        x <- c(TRUE, TRUE, FALSE, NA)
+        checkEquals( RcppTable(x), table_(x), "table matches R: logical case")
+    }
+    
+    test.table.character <- function() {
+        x <- c("a", "a", "b", "a", NA, NA)
+        checkEquals( RcppTable(x), table_(x), "table matches R: character case")
+    }
+    
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.RObject.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.RObject.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.RObject.R	(revision 2476)
@@ -0,0 +1,188 @@
+#!/usr/bin/env r
+# -*- mode: R; tab-width: 4; -*-
+#
+# Copyright (C) 2009 - 2014  Romain Francois and Dirk Eddelbuettel
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("RObject.cpp") 
+
+    test.RObject.asDouble <- function(){
+        checkEquals( asDouble(2.123), 4.246, msg = "as<double>( REALSXP ) " )
+        checkEquals( asDouble(2L), 4.0, msg = "as<double>( INTSXP ) " )
+        checkEquals( asDouble(as.raw(2L)), 4.0, msg = "as<double>( RAWSXP )" )
+        checkException( asDouble('2'), msg = "as<double>( STRSXP ) -> exception" )
+        checkException( asDouble(2:3), msg = "as<double> expects the vector to be of length 1" )
+    }
+
+    test.RObject.asInt <- function(){
+        checkEquals( asInt(2.123), 4L, msg = "as<int>( REALSXP )" )
+        checkEquals( asInt(2), 4L, msg = "as<int>( REALSXP )" )
+        checkEquals( asInt(2L), 4.0, msg = "as<int>( INTSXP )" )
+        checkEquals( asInt(as.raw(2L)), 4.0, msg = "as<int>( RAWSXP )" )
+        checkException( asInt( '2'), msg = "as<int> can not convert character" )
+        checkException( asInt( 2:3), msg = "as<int> expects the vector to be of length 1" )
+    }
+
+    test.RObject.asStdString <- function(){
+        checkEquals( asStdString("abc"), "abcabc", msg = "as<std::string>" )
+        checkException( asStdString(NULL), msg = "as<std::string> expects character vector" )
+        checkException( asStdString(0L), msg = "as<std::string> expects character vector" )
+        checkException( asStdString(0.1), msg = "as<std::string> expects character vector" )
+        checkException( asStdString(as.raw(0L)), msg = "as<std::string> expects character vector" )
+
+        checkException( asStdString(letters), msg = "as<std::string> expects single string" )
+    }
+
+    test.RObject.asRaw <- function(){
+        checkEquals( asRaw(1L), as.raw(2L), msg = "as<Rbyte>(integer)" )
+        checkEquals( asRaw(1.3), as.raw(2L), msg = "as<Rbyte>(numeric)" )
+        checkEquals( asRaw(as.raw(1)), as.raw(2L), msg = "as<Rbyte>(raw)" )
+        checkException( asRaw(NULL) , msg = "as<Rbyte>(NULL) -> exception" )
+        checkException( asRaw("foo") , msg = "as<Rbyte>(character) -> exception" )
+        checkException( asRaw(1:2), msg = "as<Rbyte>(>1 integer) -> exception" )
+        checkException( asRaw(as.numeric(1:2)), msg = "as<Rbyte>(>1 numeric) -> exception" )
+        checkException( asRaw(as.raw(1:3)), msg = "as<Rbyte>(>1 raw) -> exception" )
+        checkException( asRaw(integer(0)), msg = "as<Rbyte>(0 integer) -> exception" )
+        checkException( asRaw(numeric(0)), msg = "as<Rbyte>(0 numeric) -> exception" )
+        checkException( asRaw(raw(0)), msg = "as<Rbyte>(0 raw) -> exception" )
+    }
+
+    test.RObject.asLogical <- function(){
+        checkTrue( !asLogical(TRUE), msg = "as<bool>(TRUE) -> true" )
+        checkTrue( asLogical(FALSE), msg = "as<bool>(FALSE) -> false" )
+        checkTrue( !asLogical(1L), msg = "as<bool>(1L) -> true" )
+        checkTrue( asLogical(0L), msg = "as<bool>(0L) -> false" )
+        checkTrue( !asLogical(1.0), msg = "as<bool>(1.0) -> true" )
+        checkTrue( asLogical(0.0), msg = "as<bool>0.0) -> false" )
+        checkTrue( !asLogical(as.raw(1)), msg = "as<bool>(aw.raw(1)) -> true" )
+        checkTrue( asLogical(as.raw(0)), msg = "as<bool>(as.raw(0)) -> false" )
+
+        checkException( asLogical(NULL), msg = "as<bool>(NULL) -> exception" )
+        checkException( asLogical(c(TRUE,FALSE)), msg = "as<bool>(>1 logical) -> exception" )
+        checkException( asLogical(1:2), msg = "as<bool>(>1 integer) -> exception" )
+        checkException( asLogical(1:2+.1), msg = "as<bool>(>1 numeric) -> exception" )
+        checkException( asLogical(as.raw(1:2)), msg = "as<bool>(>1 raw) -> exception" )
+
+        checkException( asLogical(integer(0)), msg = "as<bool>(0 integer) -> exception" )
+        checkException( asLogical(numeric(0)), msg = "as<bool>(0 numeric) -> exception" )
+        checkException( asLogical(raw(0)), msg = "as<bool>(0 raw) -> exception" )
+    }
+
+    test.RObject.asStdVectorInt <- function(){
+        checkEquals( asStdVectorInt(x=2:5), 2:5*2L, msg = "as< std::vector<int> >(integer)" )
+        checkEquals( asStdVectorInt(x=2:5+.1), 2:5*2L, msg = "as< std::vector<int> >(numeric)" )
+        checkEquals( asStdVectorInt(x=as.raw(2:5)), 2:5*2L, msg = "as< std::vector<int> >(raw)" )
+        checkException( asStdVectorInt("foo"), msg = "as< std::vector<int> >(character) -> exception" )
+        checkException( asStdVectorInt(NULL), msg = "as< std::vector<int> >(NULL) -> exception" )
+    }
+
+    test.RObject.asStdVectorDouble <- function(){
+        checkEquals( asStdVectorDouble(x=0.1+2:5), 2*(0.1+2:5), msg = "as< std::vector<double> >( numeric )" )
+        checkEquals( asStdVectorDouble(x=2:5), 2*(2:5), msg = "as< std::vector<double> >(integer)" )
+        checkEquals( asStdVectorDouble(x=as.raw(2:5)), 2*(2:5), msg = "as< std::vector<double> >(raw)" )
+        checkException( asStdVectorDouble("foo"), msg = "as< std::vector<double> >(character) -> exception" )
+        checkException( asStdVectorDouble(NULL), msg = "as< std::vector<double> >(NULL) -> exception" )
+    }
+
+    test.RObject.asStdVectorRaw <- function(){
+        checkEquals( asStdVectorRaw(x=as.raw(0:9)), as.raw(2*(0:9)), msg = "as< std::vector<Rbyte> >(raw)" )
+        checkEquals( asStdVectorRaw(x=0:9), as.raw(2*(0:9)), msg = "as< std::vector<Rbyte> >( integer )" )
+        checkEquals( asStdVectorRaw(x=as.numeric(0:9)), as.raw(2*(0:9)), msg = "as< std::vector<Rbyte> >(numeric)" )
+        checkException( asStdVectorRaw("foo"), msg = "as< std::vector<Rbyte> >(character) -> exception" )
+        checkException( asStdVectorRaw(NULL), msg = "as< std::vector<Rbyte> >(NULL) -> exception" )
+    }
+
+    test.RObject.asStdVectorBool <- function(){
+        checkEquals( asStdVectorBool(x=c(TRUE,FALSE)), c(FALSE, TRUE), msg = "as< std::vector<bool> >(logical)" )
+        checkEquals( asStdVectorBool(x=c(1L, 0L)), c(FALSE, TRUE), msg = "as< std::vector<bool> >(integer)" )
+        checkEquals( asStdVectorBool(x=c(1.0, 0.0)), c(FALSE, TRUE), msg = "as< std::vector<bool> >(numeric)" )
+        checkEquals( asStdVectorBool(x=as.raw(c(1,0))), c(FALSE, TRUE), msg = "as< std::vector<bool> >(raw)" )
+        checkException( asStdVectorBool("foo"), msg = "as< std::vector<bool> >(character) -> exception" )
+        checkException( asStdVectorBool(NULL), msg = "as< std::vector<bool> >(NULL) -> exception" )
+    }
+
+    test.RObject.asStdVectorString <- function(){
+        checkEquals( asStdVectorString(c("foo", "bar")), c("foofoo", "barbar"), msg = "as< std::vector<std::string> >(character)" )
+        checkException( asStdVectorString(1L), msg = "as< std::vector<std::string> >(integer) -> exception" )
+        checkException( asStdVectorString(1.0), msg = "as< std::vector<std::string> >(numeric) -> exception" )
+        checkException( asStdVectorString(as.raw(1)), msg = "as< std::vector<std::string> >(raw) -> exception" )
+        checkException( asStdVectorString(TRUE), msg = "as< std::vector<std::string> >(logical) -> exception" )
+        checkException( asStdVectorString(NULL), msg = "as< std::vector<std::string> >(NULL) -> exception" )
+    }
+
+    test.RObject.stdsetint <- function(){
+        checkEquals( stdsetint(), c(0L, 1L), msg = "wrap( set<int> )" )
+    }
+
+    test.RObject.stdsetdouble <- function(){
+        checkEquals( stdsetdouble(), as.numeric(0:1), msg = "wrap( set<double>" )
+    }
+
+    test.RObject.stdsetraw <- function(){
+        checkEquals( stdsetraw(), as.raw(0:1), msg = "wrap(set<raw>)" )
+    }
+
+    test.RObject.stdsetstring <- function(){
+        checkEquals( stdsetstring(), c("bar", "foo"), msg = "wrap(set<string>)" )
+    }
+
+    test.RObject.attributeNames <- function(){
+        df <- data.frame( x = 1:10, y = 1:10 )
+        checkTrue( all( c("names","row.names","class") %in% attributeNames(df)), msg = "RObject.attributeNames" )
+    }
+
+    test.RObject.hasAttribute <- function(){
+        df <- data.frame( x = 1:10 )
+        checkTrue( hasAttribute( df ), msg = "RObject.hasAttribute" )
+    }
+
+    test.RObject.attr <- function(){
+        df <- data.frame( x = 1:150 )
+        rownames(df) <- 1:150
+        checkEquals( attr_( iris ), 1:150, msg = "RObject.attr" )
+    }
+
+    test.RObject.attr.set <- function(){
+        checkEquals( attr(attr_set(), "foo"), 10L, msg = "RObject.attr() = " )
+    }
+
+    test.RObject.isNULL <- function(){
+        df <- data.frame( x = 1:10 )
+        checkTrue( !isNULL( df ), msg = "RObject.isNULL(data frame) -> false" )
+        checkTrue( !isNULL(1L), msg = "RObject.isNULL(integer) -> false" )
+        checkTrue( !isNULL(1.0), msg = "RObject.isNULL(numeric) -> false" )
+        checkTrue( !isNULL(as.raw(1)), msg = "RObject.isNULL(raw) -> false" )
+        checkTrue( !isNULL(letters), msg = "RObject.isNULL(character) -> false")
+        checkTrue( !isNULL(test.RObject.isNULL), msg = "RObject.isNULL(function) -> false" )
+        checkTrue( !isNULL(.GlobalEnv), msg = "RObject.isNULL(environment) -> false" )
+        checkTrue( isNULL(NULL), msg = "RObject.isNULL(NULL) -> true" )
+    }
+
+    test.RObject.inherits <- function(){
+        x <- 1:10
+        checkTrue( !inherits_(x) )
+        class(x) <- "foo"
+        checkTrue( inherits_(x) )
+        class(x) <- c("foo", "bar" )
+        checkTrue( inherits_(x) )
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.wstring.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.wstring.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.wstring.R	(revision 2476)
@@ -0,0 +1,49 @@
+#!/usr/bin/env r
+# -*- mode: R; tab-width: 4; -*-
+#
+# Copyright (C) 2013 - 2014  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if ( .runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("wstring.cpp")
+
+    test.CharacterVector_wstring <- function(){
+        res <- CharacterVector_wstring()
+        checkEquals( res, c("foobar", "foobar" ) )
+    }
+
+    test.wstring_return <- function(){
+        checkEquals( wstring_return(), "foo" )
+    }
+
+    test.wstring_param <- function(){
+        checkEquals( wstring_param( "foo", "bar" ), "foobar" )
+    }
+
+    test.wrap_vector_wstring <- function(){
+        checkEquals( wrap_vector_wstring( ), c("foo", "bar" ) )
+    }
+
+    ##test.as_vector_wstring <- function(){
+    ##    ## the "€" did not survive on Windows, so trying its unicode equivalent
+    ##    checkEquals( as_vector_wstring(letters), paste0( letters, "\u20ac" ) )
+    ##}
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.stats.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.stats.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.stats.R	(revision 2476)
@@ -0,0 +1,333 @@
+#!/usr/bin/env r
+# -*- mode: R; tab-width: 4; -*-
+#
+# Copyright (C) 2010 - 2013  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("stats.cpp")
+
+    test.stats.dbeta <- function() {
+        vv <- seq(0, 1, by = 0.1)
+        a <- 0.5; b <- 2.5
+        checkEquals(runit_dbeta(vv, a, b),
+                    list(
+                        NoLog = dbeta(vv, a, b),
+                        Log   = dbeta(vv, a, b, log=TRUE)
+                        ),
+                    msg = " stats.qbeta")
+    }
+
+    test.stats.dbinom <- function( ){
+        v <- 1:10
+        checkEquals(runit_dbinom(v) ,
+                    list(
+                        false = dbinom(v, 10, .5),
+                        true = dbinom(v, 10, .5, TRUE )
+                        ), msg = "stats.dbinom" )
+    }
+
+    test.stats.dunif <- function() {
+        vv <- seq(0, 1, by = 0.1)
+        checkEquals(runit_dunif(vv),
+                    list(
+                        NoLog_noMin_noMax = dunif(vv),
+                        NoLog_noMax = dunif(vv, 0),
+                        NoLog = dunif(vv, 0, 1),
+                        Log   = dunif(vv, 0, 1, log=TRUE),
+                        Log_noMax   = dunif(vv, 0, log=TRUE)
+                                        #,Log_noMin_noMax   = dunif(vv, log=TRUE)  ## wrong answer
+                        ),
+                    msg = " stats.dunif")
+    }
+
+    test.stats.dgamma <- function( ) {
+        v <- 1:4
+        checkEquals(runit_dgamma(v),
+                    list( NoLog = dgamma(v, 1.0, 1.0),
+                         Log = dgamma(v, 1.0, 1.0, log = TRUE ),
+                         Log_noRate = dgamma(v, 1.0, log = TRUE )
+                         ), msg = "stats.dgamma" )
+    }
+
+
+    test.stats.dpois <- function( ){
+        v <- 0:5
+        checkEquals(runit_dpois(v) ,
+                    list( false = dpois(v, .5),
+                         true = dpois(v, .5, TRUE )
+                         ), msg = "stats.dpois" )
+    }
+
+    test.stats.dnorm <- function( ) {
+        v <- seq(0.0, 1.0, by=0.1)
+        checkEquals(runit_dnorm(v),
+                    list( false_noMean_noSd = dnorm(v),
+                         false_noSd = dnorm(v, 0.0),
+                         false = dnorm(v, 0.0, 1.0),
+                         true = dnorm(v, 0.0, 1.0, log=TRUE ),
+                         true_noSd = dnorm(v, 0.0, log=TRUE ),
+                         true_noMean_noSd = dnorm(v, log=TRUE )
+                         ), msg = "stats.dnorm" )
+    }
+
+    test.stats.dt <- function( ) {
+        v <- seq(0.0, 1.0, by=0.1)
+        checkEquals(runit_dt(v),
+                    list( false = dt(v, 5),
+                         true = dt(v, 5, log=TRUE ) # NB: need log=TRUE here
+                         ), msg = "stats.dt" )
+    }
+
+    test.stats.pbeta <- function( ) {
+        a <- 0.5; b <- 2.5
+        v <- qbeta(seq(0.0, 1.0, by=0.1), a, b)
+        checkEquals(runit_pbeta(v, a, b),
+                    list(lowerNoLog = pbeta(v, a, b),
+                         lowerLog   = pbeta(v, a, b,              log=TRUE),
+                         upperNoLog = pbeta(v, a, b, lower=FALSE),
+                         upperLog   = pbeta(v, a, b, lower=FALSE, log=TRUE)
+                         ),
+                    msg = " stats.pbeta" )
+        ## Borrowed from R's d-p-q-r-tests.R
+        x <- c(.01, .10, .25, .40, .55, .71, .98)
+        pbval <- c(-0.04605755624088, -0.3182809860569, -0.7503593555585,
+                   -1.241555830932, -1.851527837938, -2.76044482378, -8.149862739881)
+        checkEqualsNumeric(runit_pbeta(x, 0.8, 2)$upperLog, pbval, msg = " stats.pbeta")
+        checkEqualsNumeric(runit_pbeta(1-x, 2, 0.8)$lowerLog, pbval, msg = " stats.pbeta")
+    }
+
+    test.stats.pbinom <- function( ) {
+        n <- 20
+        p <- 0.5
+        vv <- 0:n
+        checkEquals(runit_pbinom(vv, n, p),
+                    list(lowerNoLog = pbinom(vv, n, p),
+                         lowerLog   = pbinom(vv, n, p, log=TRUE),
+                         upperNoLog = pbinom(vv, n, p, lower=FALSE),
+                         upperLog   = pbinom(vv, n, p, lower=FALSE, log=TRUE)
+                         ),
+                    msg = " stats.pbinom")
+    }
+
+    test.stats.pcauchy <- function( ) {
+        location <- 0.5
+        scale <- 1.5
+        vv <- 1:5
+        checkEquals(runit_pcauchy(vv, location, scale),
+                    list(lowerNoLog = pcauchy(vv, location, scale),
+                         lowerLog   = pcauchy(vv, location, scale, log=TRUE),
+                         upperNoLog = pcauchy(vv, location, scale, lower=FALSE),
+                         upperLog   = pcauchy(vv, location, scale, lower=FALSE, log=TRUE)
+                         ),
+                    msg = " stats.pcauchy")
+    }
+
+    test.stats.punif <- function( ) {
+        v <- qunif(seq(0.0, 1.0, by=0.1))
+        checkEquals(runit_punif(v),
+                    list(lowerNoLog = punif(v),
+                         lowerLog   = punif(v, log=TRUE ),
+                         upperNoLog = punif(v, lower=FALSE),
+                         upperLog   = punif(v, lower=FALSE, log=TRUE)
+                         ),
+                    msg = "stats.punif" )
+                                        # TODO: also borrow from R's d-p-q-r-tests.R
+    }
+
+    test.stats.pf <- function( ) {
+        v <- (1:9)/10
+        checkEquals(runit_pf(v),
+                    list(lowerNoLog = pf(v, 6, 8, lower=TRUE, log=FALSE),
+                         lowerLog   = pf(v, 6, 8, log=TRUE ),
+                         upperNoLog = pf(v, 6, 8, lower=FALSE),
+                         upperLog   = pf(v, 6, 8, lower=FALSE, log=TRUE)
+                         ),
+                    msg = "stats.pf" )
+    }
+
+    test.stats.pnf <- function( ) {
+        v <- (1:9)/10
+        checkEquals(runit_pnf(v),
+                    list(lowerNoLog = pf(v, 6, 8, ncp=2.5, lower=TRUE, log=FALSE),
+                         lowerLog   = pf(v, 6, 8, ncp=2.5, log=TRUE ),
+                         upperNoLog = pf(v, 6, 8, ncp=2.5, lower=FALSE),
+                         upperLog   = pf(v, 6, 8, ncp=2.5, lower=FALSE, log=TRUE)
+                         ),
+                    msg = "stats.pnf" )
+    }
+
+    test.stats.pchisq <- function( ) {
+        v <- (1:9)/10
+        checkEquals(runit_pchisq(v),
+                    list(lowerNoLog = pchisq(v, 6, lower=TRUE, log=FALSE),
+                         lowerLog   = pchisq(v, 6, log=TRUE ),
+                         upperNoLog = pchisq(v, 6, lower=FALSE),
+                         upperLog   = pchisq(v, 6, lower=FALSE, log=TRUE)
+                         ),
+                    msg = "stats.pchisq" )
+    }
+
+    test.stats.pnchisq <- function( ) {
+        v <- (1:9)/10
+        checkEquals(runit_pnchisq(v),
+                    list(lowerNoLog = pchisq(v, 6, ncp=2.5, lower=TRUE, log=FALSE),
+                         lowerLog   = pchisq(v, 6, ncp=2.5, log=TRUE ),
+                         upperNoLog = pchisq(v, 6, ncp=2.5, lower=FALSE),
+                         upperLog   = pchisq(v, 6, ncp=2.5, lower=FALSE, log=TRUE)
+                         ),
+                    msg = "stats.pnchisq" )
+    }
+
+    test.stats.pgamma <- function( ) {
+        v <- (1:9)/10
+        checkEquals(runit_pgamma(v),
+                    list(lowerNoLog = pgamma(v, shape = 2.0),
+                         lowerLog   = pgamma(v, shape = 2.0, log=TRUE ),
+                         upperNoLog = pgamma(v, shape = 2.0, lower=FALSE),
+                         upperLog   = pgamma(v, shape = 2.0, lower=FALSE, log=TRUE)
+                         ),
+                    msg = "stats.pgamma" )
+    }
+
+
+    test.stats.pnorm <- function( ) {
+        v <- qnorm(seq(0.0, 1.0, by=0.1))
+        checkEquals(runit_pnorm(v),
+                    list(lowerNoLog = pnorm(v),
+                         lowerLog   = pnorm(v, log=TRUE ),
+                         upperNoLog = pnorm(v, lower=FALSE),
+                         upperLog   = pnorm(v, lower=FALSE, log=TRUE)
+                         ),
+                    msg = "stats.pnorm" )
+        ## Borrowed from R's d-p-q-r-tests.R
+        z <- c(-Inf,Inf,NA,NaN, rt(1000, df=2))
+        z.ok <- z > -37.5 | !is.finite(z)
+        pz <- runit_pnorm(z)
+        checkEqualsNumeric(pz$lowerNoLog, 1 - pz$upperNoLog, msg = "stats.pnorm")
+        checkEqualsNumeric(pz$lowerNoLog, runit_pnorm(-z)$upperNoLog, msg = "stats.pnorm")
+        checkEqualsNumeric(log(pz$lowerNoLog[z.ok]), pz$lowerLog[z.ok], msg = "stats.pnorm")
+        ## FIXME: Add tests that use non-default mu and sigma
+    }
+
+    test.stats.ppois <- function( ) {
+        vv <- 0:20
+        checkEquals(runit_ppois(vv),
+                    list(lowerNoLog = ppois(vv, 0.5),
+                         lowerLog   = ppois(vv, 0.5,              log=TRUE),
+                         upperNoLog = ppois(vv, 0.5, lower=FALSE),
+                         upperLog   = ppois(vv, 0.5, lower=FALSE, log=TRUE)
+                         ),
+                    msg = " stats.ppois")
+    }
+
+    test.stats.pt <- function( ) {
+        v <- seq(0.0, 1.0, by=0.1)
+        checkEquals(runit_pt(v),
+                    list(lowerNoLog = pt(v, 5),
+                         lowerLog   = pt(v, 5,              log=TRUE),
+                         upperNoLog = pt(v, 5, lower=FALSE),
+                         upperLog   = pt(v, 5, lower=FALSE, log=TRUE) ),
+                    msg = "stats.pt" )
+    }
+
+    test.stats.pnt <- function( ) {
+        v <- seq(0.0, 1.0, by=0.1)
+        checkEquals(runit_pnt(v),
+                    list(lowerNoLog = pt(v, 5, ncp=7),
+                         lowerLog   = pt(v, 5, ncp=7,              log=TRUE),
+                         upperNoLog = pt(v, 5, ncp=7, lower=FALSE),
+                         upperLog   = pt(v, 5, ncp=7, lower=FALSE, log=TRUE) ),
+                    msg = "stats.pnt" )
+    }
+
+    test.stats.qbinom <- function( ) {
+        n <- 20
+        p <- 0.5
+        vv <- seq(0, 1, by = 0.1)
+        checkEquals(runit_qbinom_prob(vv, n, p),
+                    list(lower = qbinom(vv, n, p),
+                         upper = qbinom(vv, n, p, lower=FALSE)
+                         ),
+                    msg = " stats.qbinom")
+    }
+
+    test.stats.qunif <- function( ) {
+        checkEquals(runit_qunif_prob(c(0, 1, 1.1, -.1)),
+                    list(lower = c(0, 1, NaN, NaN),
+                         upper = c(1, 0, NaN, NaN)
+                         ),
+                    msg = "stats.qunif" )
+                                        # TODO: also borrow from R's d-p-q-r-tests.R
+    }
+
+    test.stats.qnorm <- function( ) {
+        checkEquals(runit_qnorm_prob(c(0, 1, 1.1, -.1)),
+                    list(lower = c(-Inf, Inf, NaN, NaN),
+                         upper = c(Inf, -Inf, NaN, NaN)
+                         ),
+                    msg = "stats.qnorm" )
+        ## Borrowed from R's d-p-q-r-tests.R and Wichura (1988)
+        checkEqualsNumeric(runit_qnorm_prob(c( 0.25,  .001,	 1e-20))$lower,
+                           c(-0.6744897501960817, -3.090232306167814, -9.262340089798408),
+                           msg = "stats.qnorm",
+                           tol = 1e-15)
+
+        checkEquals(runit_qnorm_log(c(-Inf, 0, 0.1)),
+                    list(lower = c(-Inf, Inf, NaN),
+                         upper = c(Inf, -Inf, NaN)
+                         ),
+                    msg = "stats.qnorm" )
+        checkEqualsNumeric(runit_qnorm_log(-1e5)$lower, -447.1974945)
+    }
+
+    test.stats.qpois.prob <- function( ) {
+        vv <- seq(0, 1, by = 0.1)
+        checkEquals(runit_qpois_prob(vv),
+                    list(lower = qpois(vv, 0.5),
+                         upper = qpois(vv, 0.5, lower=FALSE)
+                         ),
+                    msg = " stats.qpois.prob")
+    }
+
+    test.stats.qt <- function( ) {
+        v <- seq(0.05, 0.95, by=0.05)
+        ( x1 <- runit_qt(v, 5, FALSE, FALSE) )
+        ( x2 <- qt(v, df=5, lower=FALSE, log=FALSE) )
+        checkEquals(x1, x2, msg="stats.qt.f.f")
+
+        ( x1 <- runit_qt(v, 5, TRUE, FALSE) )
+        ( x2 <- qt(v, df=5, lower=TRUE, log=FALSE) )
+        checkEquals(x1, x2, msg="stats.qt.t.f")
+
+        ( x1 <- runit_qt(-v, 5, FALSE, TRUE) )
+        ( x2 <- qt(-v, df=5, lower=FALSE, log=TRUE) )
+        checkEquals(x1, x2, msg="stats.qt.f.t")
+
+        ( x1 <- runit_qt(-v, 5, TRUE, TRUE) )
+        ( x2 <- qt(-v, df=5, lower=TRUE, log=TRUE) )
+        checkEquals(x1, x2, msg="stats.qt.t.t")
+
+    }
+
+    ## TODO: test.stats.qgamma
+    ## TODO: test.stats.(dq)chisq
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.na.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.na.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.na.R	(revision 2476)
@@ -0,0 +1,37 @@
+#!/usr/bin/env r
+# -*- mode: R; tab-width: 4; -*-
+#
+# Copyright (C) 2014  Kevin Ushey
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+    
+.setUp <- Rcpp:::unitTestSetup("na.cpp")
+
+test.na <- function() {
+    checkIdentical( R_IsNA_(NA_real_), Rcpp_IsNA(NA_real_) )
+    checkIdentical( R_IsNA_(NA_real_+1), Rcpp_IsNA(NA_real_+1) )
+    checkIdentical( R_IsNA_(NA_real_+NaN), Rcpp_IsNA(NA_real_+NaN) )
+    checkIdentical( R_IsNA_(NaN+NA_real_), Rcpp_IsNA(NaN+NA_real_) )
+    checkIdentical( R_IsNaN_(NA_real_), Rcpp_IsNaN(NA_real_) )
+    checkIdentical( R_IsNaN_(NaN), Rcpp_IsNaN(NaN) )
+    checkIdentical( R_IsNaN_(NaN+1), Rcpp_IsNaN(NaN+1) )
+}
+    
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.ListOf.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.ListOf.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.ListOf.R	(revision 2476)
@@ -0,0 +1,101 @@
+# Copyright (C) 2014  Dirk Eddelbuettel, Romain Francois and Kevin Ushey
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("ListOf.cpp")
+
+    x <- list( c(1, 5), c(2, 6), c(3, 7) )
+
+    test.ListOf.identity <- function() {
+        checkIdentical(
+            test_identity(setNames(x, c('a', 'b', 'c'))),
+            setNames(x, c('a', 'b', 'c'))
+        )
+    }
+
+    test.ListOf.lapply.sum <- function() {
+        x <- list( c(1, 5), c(2, 6), c(3, 7) )
+        checkIdentical( test_lapply_sum(x), lapply(x, sum) )
+    }
+
+    test.ListOf.sapply.sum <- function() {
+        x <- list( c(1, 5), c(2, 6), c(3, 7) )
+        checkIdentical( test_sapply_sum(x), sapply(x, sum) )
+    }
+
+    test.ListOf.assign <- function() {
+        x <- list( c(1, 5), c(2, 6), c(3, 7) )
+        test_assign(x, 100, "apple")
+        checkIdentical( x[[2]], 100 )
+    }
+
+    test.ListOf.assign.names <- function() {
+        x <- setNames(list(1, 2, 3), c('a', 'b', 'c'))
+        test_assign_names(x)
+        checkIdentical( x[["a"]], x[["b"]] )
+    }
+
+    test.ListOf.arith <- function() {
+        checkIdentical(test_add(list(1, 2, 3)), 6)
+        checkIdentical(test_add_subtract(list(1, 2, 3)), 0)
+        checkIdentical(test_mult( list(1, 2, 3) ), 6)
+        checkIdentical(test_char( list("banana") ), list("apple"))
+    }
+
+    test.ListOf.assign.names <- function() {
+        checkException(test_assign_names(list(alpha=1, beta=2, gamma=3)))
+    }
+
+    test.ListOf.sub.calls <- function() {
+        checkEquals(test_sub_calls( list(1, 2, 3) ), 3)
+    }
+
+    test.ListOf.nested <- function() {
+        checkEquals(
+            test_nested_listof( list(list(1)) ),
+            1
+        )
+    }
+
+    test.ListOf.convert.implicit <- function() {
+        checkEquals(
+            test_return_IVList(list(1, 2, 3)),
+            list(1L, 2L, 3L)
+        )
+    }
+
+    test.ListOf.convert.fail <- function() {
+        checkException(
+            test_return_IVList(list("a", "b", "c"))
+        )
+    }
+
+    test.ListOf.names <- function() {
+        l <- list(a = 1L, b = 2L, c = 3L)
+        checkEquals(listof_names(l), c("a", "b", "c"))
+    }
+
+    test.ListOf.attr.foo <- function() {
+        l <- list(a = 1L)
+        attr(l, "foo") <- "bar"
+        checkEquals(listof_attr_foo(l), "bar")
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.VectorOld.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.VectorOld.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.VectorOld.R	(revision 2476)
@@ -0,0 +1,34 @@
+# Copyright (C) 2014  Dirk Eddelbuettel, Romain Francois and Kevin Ushey
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+    
+    .setUp <- Rcpp:::unitTestSetup("VectorOld.cpp")
+    
+    test.IntegerVector.comma <- function(){
+        fun <- integer_comma
+        checkEquals( fun(), 0:3, msg = "IntegerVector comma initialization" )
+    }
+    
+    test.CharacterVector.comma <- function(){
+        fun <- character_comma
+        checkEquals( fun(), c("foo","bar", "bling" ), msg = "CharacterVector comma operator" )
+    }
+    
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.subset.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.subset.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.subset.R	(revision 2476)
@@ -0,0 +1,95 @@
+#!/usr/bin/env r
+# -*- mode: R; tab-width: 4; -*-
+#
+# Copyright (C) 2014  Dirk Eddelbuettel, Romain Francois and Kevin Ushey
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("Subset.cpp")
+    
+    test.subset <- function() {
+        
+        x <- rnorm(5)
+        names(x) <- letters[1:5]
+        
+        checkIdentical( x[c(1, 2, 3)], subset_test_int(x, c(0L, 1L, 2L)) )
+        checkException( subset_test_int(x, -1L) )
+        checkException( subset_test_int(x, length(x)) )
+        
+        checkIdentical( x[c(1, 2, 3)], subset_test_num(x, c(0, 1, 2)),
+            "numeric subsetting")
+        
+        checkIdentical( x[ c('b', 'a') ], subset_test_char(x, c('b', 'a')),
+            "character subsetting")
+        
+        checkException( subset_test_char( c(1, 2, 3), 'a' ),
+            "character subsetting -- no names on x")
+        
+        lgcl <- c(TRUE, FALSE, TRUE, TRUE, FALSE)
+        checkIdentical( 
+            x[lgcl],
+            subset_test_lgcl(x, lgcl),
+            "logical subsetting" )
+        
+        names(x) <- c('a', 'b', 'b', 'c', 'd')
+        checkIdentical(
+            x['b'],
+            subset_test_char(x, 'b'),
+            "character subsetting -- duplicated name")
+        
+        l <- as.list(x)
+        checkIdentical(
+            l[c('b', 'c')],
+            subset_test_list(x, c('b', 'c')),
+            "list subsetting")
+        
+        checkIdentical(
+            x[ x > 0 ],
+            subset_test_greater_0(x),
+            "sugar subsetting (x[x > 0])")
+        
+        x <- as.numeric(-2:2)
+        checkIdentical(
+            c(-2, -1, 0, 0, 0),
+            subset_test_assign(x)
+        )
+        
+        attr(x, "foo") <- "bar"
+        y <- subset_test_int(x, 0L)
+        checkIdentical( attr(y, "foo"), "bar" )
+        
+        checkIdentical(subset_assign_subset(1:6), c(0,0,0,4,5,6))
+        
+        checkIdentical(subset_assign_subset2(1:6), c(4,5,6,0,0,0))
+
+        checkIdentical(subset_assign_subset3(1:6), c(4,4,4,0,0,0))
+
+        checkIdentical(subset_assign_subset4(seq(2, 4, 0.2)), c(2L,2L,2L,2L,2L,3L,0L,0L,0L,0L,0L))
+        
+        checkException(subset_assign_subset5(1:6), msg = "index error")
+
+        checkIdentical(subset_assign_vector_size_1(1:6,7), c(7,7,7,4,5,6))
+
+        x <- rnorm(10)
+        y <- sample(10, 5)
+        checkIdentical(subset_sugar_add(x, y - 1L), x[y] + x[y])
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.String.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.String.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.String.R	(revision 2476)
@@ -0,0 +1,97 @@
+#!/usr/bin/env r
+# -*- mode: R; tab-width: 4; -*-
+#
+# Copyright (C) 2012 - 2014  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("String.cpp")
+
+    test.replace_all <- function(){
+        checkEquals( String_replace_all("abcdbacdab", "ab", "AB"), "ABcdbacdAB")
+    }
+    test.replace_first <- function(){
+        checkEquals( String_replace_first("abcdbacdab", "ab", "AB"), "ABcdbacdab")
+    }
+    test.replace_last <- function(){
+        checkEquals( String_replace_last("abcdbacdab", "ab", "AB"), "abcdbacdAB")
+    }
+
+    test.String.sapply <- function(){
+        res <- test_sapply_string( "foobar", c("o", "a" ), c("*", "!" ) )
+        checkEquals( res, "f**b!r" )    
+    }
+
+    test.compare.Strings <- function(){
+        res <- test_compare_Strings( "aaa", "aab" )
+        target <- list( 
+            "a  < b" = TRUE, 
+            "a  > b" = FALSE,  
+            "a == b" = FALSE,
+            "a == a" = TRUE
+            )
+        checkEquals( res, target )
+    }
+    
+    test.compare.String.string_proxy <- function(){
+        v <- c("aab")
+        res <- test_compare_String_string_proxy( "aaa", v )
+        target <- list( 
+            "a == b" = FALSE, 
+            "a != b" = TRUE,  
+            "b == a" = FALSE,
+            "b != a" = TRUE
+            )
+        checkEquals( res, target )
+    }
+    
+    test.compare.String.const_string_proxy <- function(){
+        v <- c("aab")
+        res <- test_compare_String_const_string_proxy( "aaa", v )
+        target <- list( 
+            "a == b" = FALSE, 
+            "a != b" = TRUE,  
+            "b == a" = FALSE,
+            "b != a" = TRUE
+            )
+        checkEquals( res, target )
+    }
+
+    test.String.ctor <- function() {
+        res <- test_ctor("abc")
+        checkIdentical(res, "abc")
+    }
+
+    test.push.front <- function() {
+        res <- test_push_front("def")
+        checkIdentical(res, "abcdef")
+    }
+
+    test.String.encoding <- function() {
+        a <- b <- "å"
+        Encoding(a) <- "unknown"
+        Encoding(b) <- "UTF-8"
+        checkEquals(test_String_encoding(a), 0)
+        checkEquals(test_String_encoding(b), 1)
+        checkEquals(Encoding(test_String_set_encoding(a)), "UTF-8")
+        checkEquals(Encoding(test_String_ctor_encoding(a)), "UTF-8")
+        checkEquals(Encoding(test_String_ctor_encoding2()), "UTF-8")
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.sugar.var.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.sugar.var.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.sugar.var.R	(revision 2476)
@@ -0,0 +1,43 @@
+#!/usr/bin/env r
+#                     -*- mode: R; ess-indent-level: 4; indent-tabs-mode: nil; -*-
+#
+# Copyright (C) 2015 Wush Wu
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    test.Sugar.var <- function() {
+        fNumeric <- Rcpp::cppFunction('double myVar(NumericVector x) { return(var(x)); }')
+        fInteger <- Rcpp::cppFunction('double myVar(IntegerVector x) { return(var(x)); }')
+        fComplex <- Rcpp::cppFunction('double myVar(ComplexVector x) { return(var(x)); }')
+        fLogical <- Rcpp::cppFunction('double myVar(LogicalVector x) { return(var(x)); }')
+        test_data_real <- 1:10
+        checkEquals(fNumeric(test_data_real * 1.1), var(test_data_real * 1.1))
+        checkEquals(fInteger(test_data_real), var(test_data_real))
+        test_data_complex_1 <- complex(real = 5:1, imag = 2:6)
+        test_data_complex_2 <- complex(real = 1:5, imag = 6:10)
+        test_data_complex_1_known_var <- 5
+        test_data_complex_2_known_var <- 5
+        checkEquals(fComplex(test_data_complex_1), test_data_complex_1_known_var)
+        checkEquals(fComplex(test_data_complex_2), test_data_complex_2_known_var)
+        test_data_logical <- c(TRUE, FALSE, TRUE, FALSE, TRUE)
+        checkEquals(fLogical(test_data_logical), var(test_data_logical))
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/bin/i386/r-cran-testrcpppackage_0.1.0-1_i386.deb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/bin/i386/r-cran-testrcpppackage_0.1.0-1_i386.deb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.client.package.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.client.package.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.client.package.R	(revision 2476)
@@ -0,0 +1,49 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2010 - 2014  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+## This now (Dec 2011) appears to fail on Windows
+.onWindows <- .Platform$OS.type == "windows"
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+.client.package <- function(pkg = "testRcppPackage") {
+    td <- tempfile()
+    cwd <- getwd()
+    dir.create(td)
+    file.copy(system.file("unitTests", pkg, package = "Rcpp"), td, recursive = TRUE)
+    setwd(td)
+    on.exit( { setwd(cwd); unlink(td, recursive = TRUE) } )
+    R <- shQuote(file.path( R.home(component = "bin"), "R"))
+    cmd <- paste(R, "CMD build", pkg)
+    system(cmd)
+    dir.create("templib")
+    install.packages(paste0(pkg, "_0.1.0.tar.gz"), "templib", repos = NULL, type = "source")
+    require(pkg, lib.loc = "templib", character.only = TRUE)
+    hello_world <- get("rcpp_hello_world", asNamespace(pkg))
+    checkEquals(hello_world(), list(c("foo", "bar"), c(0.0, 1.0)),
+                msg = "code from client package")
+
+    checkException(.Call("hello_world_ex", PACKAGE = pkg), msg = "exception in client package")
+}
+
+if (.runThisTest && ! .onWindows) {
+    test.client.testRcppPackage <- function() {
+        .client.package("testRcppPackage")
+    }
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/testRcppModule/tests/modules.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/testRcppModule/tests/modules.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/testRcppModule/tests/modules.R	(revision 2476)
@@ -0,0 +1,23 @@
+library(testRcppModule)
+
+v <- new(vec)
+data <- 1:10
+v$assign(data)
+v[[3]] <- v[[3]] + 1
+
+data[[4]] <- data[[4]] +1
+
+stopifnot(identical(all.equal(v$as.vector(), data), TRUE))
+
+## a few function calls
+
+stopifnot(all.equal(bar(2), 4))
+stopifnot(all.equal(foo(2,3), 6))
+
+## properties (at one stage this seqfaulted, so beware)
+nn <- new(Num)
+nn$x <- pi
+stopifnot(all.equal(nn$x, pi))
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.rmath.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.rmath.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.rmath.R	(revision 2476)
@@ -0,0 +1,654 @@
+#!/usr/bin/env r
+# -*- mode: R; ess-indent-level: 4; tab-width: 4; indent-tabs-mode: nil; -*
+#
+# Copyright (C) 2012 - 2016  Dirk Eddelbuettel and Romain Francois
+# Copyright (C) 2016         Dirk Eddelbuettel and James J Balamuta
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("rmath.cpp")
+
+    test.rmath.norm <- function() {
+        x <- 0.25
+        a <- 1.25
+        b <- 2.50
+        checkEquals(runit_dnorm(x, a, b),
+                    c(dnorm(x, a, b, log=FALSE), dnorm(x, a, b, log=TRUE)),
+                    msg = " rmath.dnorm")
+
+        checkEquals(runit_pnorm(x, a, b),
+                    c(pnorm(x, a, b, lower=TRUE, log=FALSE),  pnorm(log(x), a, b, lower=TRUE, log=TRUE),
+                      pnorm(x, a, b, lower=FALSE, log=FALSE), pnorm(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pnorm")
+
+        checkEquals(runit_qnorm(x, a, b),
+                    c(qnorm(x, a, b, lower=TRUE, log=FALSE),  qnorm(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qnorm(x, a, b, lower=FALSE, log=FALSE), qnorm(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qnorm")
+        
+        set.seed(333)
+        r_result <- rnorm(5, a, b)
+        set.seed(333)
+        rcpp_result <- runit_rnorm(a, b)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rnorm")
+        
+        set.seed(333)
+        rcpp_result_sugar <- runit_rnorm_sugar(a, b)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rnorm.sugar")
+    }
+
+    test.rmath.unif <- function() {
+        x <- 0.25
+        a <- 1.25
+        b <- 2.50
+        checkEquals(runit_dunif(x, a, b),
+                    c(dunif(x, a, b, log=FALSE), dunif(x, a, b, log=TRUE)),
+                    msg = " rmath.dunif")
+
+        checkEquals(runit_punif(x, a, b),
+                    c(punif(x, a, b, lower=TRUE, log=FALSE),  punif(log(x), a, b, lower=TRUE, log=TRUE),
+                      punif(x, a, b, lower=FALSE, log=FALSE), punif(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.punif")
+
+        checkEquals(runit_qunif(x, a, b),
+                    c(qunif(x, a, b, lower=TRUE, log=FALSE),  qunif(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qunif(x, a, b, lower=FALSE, log=FALSE), qunif(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qunif")
+        
+        set.seed(333)
+        r_result <- runif(5, a, b)
+        set.seed(333)
+        rcpp_result <- runit_runif(a, b)
+        checkEquals(rcpp_result, r_result, msg = " rmath.runif")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_runif_sugar(a, b)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.runif.sugar")
+    }
+
+    test.rmath.gamma <- function() {
+        x <- 0.25
+        a <- 1.0
+        b <- 1.0
+        checkEquals(runit_dgamma(x, a, b),
+                    c(dgamma(x, a, b, log=FALSE), dgamma(x, a, b, log=TRUE)),
+                    msg = " rmath.dgamma")
+
+        checkEquals(runit_pgamma(x, a, b),
+                    c(pgamma(x, a, b, lower=TRUE, log=FALSE),  pgamma(log(x), a, b, lower=TRUE, log=TRUE),
+                      pgamma(x, a, b, lower=FALSE, log=FALSE), pgamma(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pgamma")
+
+        checkEquals(runit_qgamma(x, a, b),
+                    c(qgamma(x, a, b, lower=TRUE, log=FALSE),  qgamma(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qgamma(x, a, b, lower=FALSE, log=FALSE), qgamma(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qgamma")
+        
+        set.seed(333)
+        r_result <- rgamma(5, a, b)
+        set.seed(333)
+        rcpp_result <- runit_rgamma(a, b)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rgamma")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rgamma_sugar(a, b)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rgamma.sugar")
+    }
+
+    test.rmath.beta <- function() {
+        x <- 0.25
+        a <- 0.8
+        b <- 2.5
+        checkEquals(runit_dbeta(x, a, b),
+                    c(dbeta(x, a, b, log=FALSE), dbeta(x, a, b, log=TRUE)),
+                    msg = " rmath.dbeta")
+
+        checkEquals(runit_pbeta(x, a, b),
+                    c(pbeta(x, a, b, lower=TRUE, log=FALSE),  pbeta(log(x), a, b, lower=TRUE, log=TRUE),
+                      pbeta(x, a, b, lower=FALSE, log=FALSE), pbeta(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pbeta")
+
+        checkEquals(runit_qbeta(x, a, b),
+                    c(qbeta(x, a, b, lower=TRUE, log=FALSE),  qbeta(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qbeta(x, a, b, lower=FALSE, log=FALSE), qbeta(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qbeta")
+        
+        set.seed(333)
+        r_result <- rbeta(5, a, b)
+        set.seed(333)
+        rcpp_result <- runit_rbeta(a, b)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rbeta")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rbeta(a, b)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rbeta.sugar")
+        
+    }
+
+
+    test.rmath.lnorm <- function() {
+        x <- 0.25
+        a <- 0.8
+        b <- 2.5
+        checkEquals(runit_dlnorm(x, a, b),
+                    c(dlnorm(x, a, b, log=FALSE), dlnorm(x, a, b, log=TRUE)),
+                    msg = " rmath.dlnorm")
+
+        checkEquals(runit_plnorm(x, a, b),
+                    c(plnorm(x, a, b, lower=TRUE, log=FALSE),  plnorm(log(x), a, b, lower=TRUE, log=TRUE),
+                      plnorm(x, a, b, lower=FALSE, log=FALSE), plnorm(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.plnorm")
+
+        checkEquals(runit_qlnorm(x, a, b),
+                    c(qlnorm(x, a, b, lower=TRUE, log=FALSE),  qlnorm(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qlnorm(x, a, b, lower=FALSE, log=FALSE), qlnorm(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qlnorm")
+        
+        set.seed(333)
+        r_result <- rlnorm(5, a, b)
+        set.seed(333)
+        rcpp_result <- runit_rlnorm(a, b)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rlnorm")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rlnorm_sugar(a, b)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rlnorm.sugar")
+    }
+
+
+    test.rmath.chisq <- function() {
+        x <- 0.25
+        a <- 0.8
+        checkEquals(runit_dchisq(x, a),
+                    c(dchisq(x, a, log=FALSE), dchisq(x, a, log=TRUE)),
+                    msg = " rmath.dchisq")
+
+        checkEquals(runit_pchisq(x, a),
+                    c(pchisq(x, a, lower=TRUE, log=FALSE),  pchisq(log(x), a, lower=TRUE, log=TRUE),
+                      pchisq(x, a, lower=FALSE, log=FALSE), pchisq(log(x), a, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pchisq")
+
+        checkEquals(runit_qchisq(x, a),
+                    c(qchisq(x, a, lower=TRUE, log=FALSE),  qchisq(log(x), a, lower=TRUE,  log=TRUE),
+                      qchisq(x, a, lower=FALSE, log=FALSE), qchisq(log(x), a, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qchisq")
+        
+        set.seed(333)
+        r_result <- rchisq(5, a)
+        set.seed(333)
+        rcpp_result <- runit_rchisq(a)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rchisq")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rchisq_sugar(a)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rchisq.sugar")
+    }
+
+
+    test.rmath.nchisq <- function() {
+        x <- 0.25
+        a <- 0.8
+        b <- 2.5
+        checkEquals(runit_dnchisq(x, a, b),
+                    c(dchisq(x, a, b, log=FALSE), dchisq(x, a, b, log=TRUE)),
+                    msg = " rmath.dnchisq")
+
+        checkEquals(runit_pnchisq(x, a, b),
+                    c(pchisq(x, a, b, lower=TRUE, log=FALSE),  pchisq(log(x), a, b, lower=TRUE, log=TRUE),
+                      pchisq(x, a, b, lower=FALSE, log=FALSE), pchisq(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pnchisq")
+
+        checkEquals(runit_qnchisq(x, a, b),
+                    c(qchisq(x, a, b, lower=TRUE, log=FALSE),  qchisq(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qchisq(x, a, b, lower=FALSE, log=FALSE), qchisq(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qnchisq")
+    }
+
+
+    test.rmath.f <- function() {
+        x <- 0.25
+        a <- 0.8
+        b <- 2.5
+        checkEquals(runit_df(x, a, b),
+                    c(df(x, a, b, log=FALSE), df(x, a, b, log=TRUE)),
+                    msg = " rmath.df")
+
+        checkEquals(runit_pf(x, a, b),
+                    c(pf(x, a, b, lower=TRUE, log=FALSE),  pf(log(x), a, b, lower=TRUE, log=TRUE),
+                      pf(x, a, b, lower=FALSE, log=FALSE), pf(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pf")
+
+        checkEquals(runit_qf(x, a, b),
+                    c(qf(x, a, b, lower=TRUE, log=FALSE),  qf(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qf(x, a, b, lower=FALSE, log=FALSE), qf(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qf")
+        
+        set.seed(333)
+        r_result <- rf(5, a, b)
+        set.seed(333)
+        rcpp_result <- runit_rf(a, b)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rf")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rf_sugar(a, b)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rf.sugar")
+    }
+
+
+    test.rmath.t <- function() {
+        x <- 0.25
+        a <- 0.8
+        checkEquals(runit_dt(x, a),
+                    c(dt(x, a, log=FALSE), dt(x, a, log=TRUE)),
+                    msg = " rmath.dt")
+
+        checkEquals(runit_pt(x, a),
+                    c(pt(x, a, lower=TRUE, log=FALSE),  pt(log(x), a, lower=TRUE, log=TRUE),
+                      pt(x, a, lower=FALSE, log=FALSE), pt(log(x), a, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pt")
+
+        checkEquals(runit_qt(x, a),
+                    c(qt(x, a, lower=TRUE, log=FALSE),  qt(log(x), a, lower=TRUE,  log=TRUE),
+                      qt(x, a, lower=FALSE, log=FALSE), qt(log(x), a, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qt")
+        
+        set.seed(333)
+        r_result <- rt(5, a)
+        set.seed(333)
+        rcpp_result <- runit_rt(a)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rt")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rt_sugar(a)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rt.sugar")
+    }
+
+
+    test.rmath.binom <- function() {
+        x <- 5
+        a <- 10
+        b <- 0.5
+        checkEquals(runit_dbinom(x, a, b),
+                    c(dbinom(x, a, b, log=FALSE), dbinom(x, a, b, log=TRUE)),
+                    msg = " rmath.dbinom")
+
+        checkEquals(runit_pbinom(x, a, b),
+                    c(pbinom(x, a, b, lower=TRUE, log=FALSE),  pbinom(log(x), a, b, lower=TRUE, log=TRUE),
+                      pbinom(x, a, b, lower=FALSE, log=FALSE), pbinom(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pbinom")
+
+        x <- x/a
+        checkEquals(runit_qbinom(x, a, b),
+                    c(qbinom(x, a, b, lower=TRUE, log=FALSE),  qbinom(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qbinom(x, a, b, lower=FALSE, log=FALSE), qbinom(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qbinom")
+        
+        set.seed(333)
+        r_result <- rbinom(5, a, b)
+        set.seed(333)
+        rcpp_result <- runit_rbinom(a, b)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rbinom")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rbinom_sugar(a, b)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rbinom.sugar")
+    }
+
+
+    test.rmath.cauchy <- function() {
+        x <- 0.25
+        a <- 0.8
+        b <- 2.5
+        checkEquals(runit_dcauchy(x, a, b),
+                    c(dcauchy(x, a, b, log=FALSE), dcauchy(x, a, b, log=TRUE)),
+                    msg = " rmath.dcauchy")
+
+        checkEquals(runit_pcauchy(x, a, b),
+                    c(pcauchy(x, a, b, lower=TRUE, log=FALSE),  pcauchy(log(x), a, b, lower=TRUE, log=TRUE),
+                      pcauchy(x, a, b, lower=FALSE, log=FALSE), pcauchy(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pcauchy")
+
+        checkEquals(runit_qcauchy(x, a, b),
+                    c(qcauchy(x, a, b, lower=TRUE, log=FALSE),  qcauchy(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qcauchy(x, a, b, lower=FALSE, log=FALSE), qcauchy(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qcauchy")
+        
+        set.seed(333)
+        r_result <- rcauchy(5, a, b)
+        set.seed(333)
+        rcpp_result <- runit_rcauchy(a, b)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rcauchy")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rcauchy_sugar(a, b)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rcauchy.sugar")
+    }
+
+
+    test.rmath.exp <- function() {
+        x <- 0.25
+        a <- 1.0
+        checkEquals(runit_dexp(x, a),
+                    c(dexp(x, a, log=FALSE), dexp(x, a, log=TRUE)),
+                    msg = " rmath.dexp")
+
+        checkEquals(runit_pexp(x, a),
+                    c(pexp(x, a, lower=TRUE, log=FALSE),  pexp(log(x), a, lower=TRUE, log=TRUE),
+                      pexp(x, a, lower=FALSE, log=FALSE), pexp(log(x), a, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pexp")
+
+        checkEquals(runit_qexp(x, a),
+                    c(qexp(x, a, lower=TRUE, log=FALSE),  qexp(log(x), a, lower=TRUE,  log=TRUE),
+                      qexp(x, a, lower=FALSE, log=FALSE), qexp(log(x), a, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qexp")
+        
+        set.seed(333)
+        r_result <- rexp(5, a)
+        set.seed(333)
+        rcpp_result <- runit_rexp(a)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rexp")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rexp_sugar(a)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rexp.sugar")
+    }
+
+
+    test.rmath.geom <- function() {
+        x <- 1
+        a <- 0.75
+        checkEquals(runit_dgeom(x, a),
+                    c(dgeom(x, a, log=FALSE), dgeom(x, a, log=TRUE)),
+                    msg = " rmath.dgeom")
+
+        checkEquals(runit_pgeom(x, a),
+                    c(pgeom(x, a, lower=TRUE, log=FALSE),  pgeom(log(x), a, lower=TRUE, log=TRUE),
+                      pgeom(x, a, lower=FALSE, log=FALSE), pgeom(log(x), a, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pgeom")
+
+        checkEquals(runit_qgeom(x, a),
+                    c(qgeom(x, a, lower=TRUE, log=FALSE),  qgeom(log(x), a, lower=TRUE,  log=TRUE),
+                      qgeom(x, a, lower=FALSE, log=FALSE), qgeom(log(x), a, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qgeom")
+        
+        set.seed(333)
+        r_result <- rgeom(5, a)
+        set.seed(333)
+        rcpp_result <- runit_rgeom(a)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rgeom")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rgeom_sugar(a)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rgeom.sugar")
+    }
+
+    test.rmath.hyper <- function() {
+        x <- 5
+        a <- 10
+        b <- 7
+        c <- 8
+        checkEquals(runit_dhyper(x, a, b, c),
+                    c(dhyper(x, a, b, c, log=FALSE), dhyper(x, a, b, c, log=TRUE)),
+                    msg = " rmath.dhyper")
+
+        checkEquals(runit_phyper(x, a, b, c),
+                    c(phyper(x, a, b, c, lower=TRUE, log=FALSE),  phyper(log(x), a, b, c, lower=TRUE, log=TRUE),
+                      phyper(x, a, b, c, lower=FALSE, log=FALSE), phyper(log(x), a, b, c, lower=FALSE, log=TRUE)),
+                    msg = " rmath.phyper")
+
+        x <- x/a
+        checkEquals(runit_qhyper(x, a, b, c),
+                    c(qhyper(x, a, b, c, lower=TRUE, log=FALSE),  qhyper(log(x), a, b, c, lower=TRUE,  log=TRUE),
+                      qhyper(x, a, b, c, lower=FALSE, log=FALSE), qhyper(log(x), a, b, c, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qhyper")
+        
+        set.seed(333)
+        r_result <- rhyper(5, a, b, c)
+        set.seed(333)
+        rcpp_result <- runit_rhyper(a, b, c)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rhyper")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rhyper_sugar(a, b, c)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rhyper.sugar")
+    }
+
+
+    test.rmath.nbinom <- function() {
+        x <- 2
+        a <- 8
+        b <- 0.25
+        checkEquals(runit_dnbinom(x, a, b),
+                    c(dnbinom(x, a, b, log=FALSE), dnbinom(x, a, b, log=TRUE)),
+                    msg = " rmath.dnbinom")
+
+        checkEquals(runit_pnbinom(x, a, b),
+                    c(pnbinom(x, a, b, lower=TRUE, log=FALSE),  pnbinom(log(x), a, b, lower=TRUE, log=TRUE),
+                      pnbinom(x, a, b, lower=FALSE, log=FALSE), pnbinom(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pnbinom")
+
+        x <- x/a
+        checkEquals(runit_qnbinom(x, a, b),
+                    c(qnbinom(x, a, b, lower=TRUE, log=FALSE),  qnbinom(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qnbinom(x, a, b, lower=FALSE, log=FALSE), qnbinom(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qnbinom")
+        
+        set.seed(333)
+        r_result <- rnbinom(5, a, b)
+        set.seed(333)
+        rcpp_result <- runit_rnbinom(a, b)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rnbinom")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rnbinom_sugar(a, b)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rnbinom.sugar")
+    }
+
+
+    test.rmath.pois <- function() {
+        x <- 2
+        a <- 1.0
+        checkEquals(runit_dpois(x, a),
+                    c(dpois(x, a, log=FALSE), dpois(x, a, log=TRUE)),
+                    msg = " rmath.dpois")
+
+        checkEquals(runit_ppois(x, a),
+                    c(ppois(x, a, lower=TRUE, log=FALSE),  ppois(log(x), a, lower=TRUE, log=TRUE),
+                      ppois(x, a, lower=FALSE, log=FALSE), ppois(log(x), a, lower=FALSE, log=TRUE)),
+                    msg = " rmath.ppois")
+
+        x <- 1/x
+        checkEquals(runit_qpois(x, a),
+                    c(qpois(x, a, lower=TRUE, log=FALSE),  qpois(log(x), a, lower=TRUE,  log=TRUE),
+                      qpois(x, a, lower=FALSE, log=FALSE), qpois(log(x), a, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qpois")
+        
+        set.seed(333)
+        r_result <- rpois(5, a)
+        set.seed(333)
+        rcpp_result <- runit_rpois(a)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rpois")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rpois_sugar(a)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rpois.sugar")
+    }
+
+
+    test.rmath.weibull <- function() {
+        x <- 2
+        a <- 8
+        b <- 0.25
+        checkEquals(runit_dweibull(x, a, b),
+                    c(dweibull(x, a, b, log=FALSE), dweibull(x, a, b, log=TRUE)),
+                    msg = " rmath.dweibull")
+
+        checkEquals(runit_pweibull(x, a, b),
+                    c(pweibull(x, a, b, lower=TRUE, log=FALSE),  pweibull(log(x), a, b, lower=TRUE, log=TRUE),
+                      pweibull(x, a, b, lower=FALSE, log=FALSE), pweibull(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pweibull")
+
+        x <- x/a
+        checkEquals(runit_qweibull(x, a, b),
+                    c(qweibull(x, a, b, lower=TRUE, log=FALSE),  qweibull(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qweibull(x, a, b, lower=FALSE, log=FALSE), qweibull(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qweibull")
+        
+        set.seed(333)
+        r_result <- rweibull(5, a, b)
+        set.seed(333)
+        rcpp_result <- runit_rweibull(a, b)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rweibull")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rweibull_sugar(a, b)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rweibull.sugar")
+    }
+
+
+    test.rmath.logis <- function() {
+        x <- 2
+        a <- 8
+        b <- 0.25
+        checkEquals(runit_dlogis(x, a, b),
+                    c(dlogis(x, a, b, log=FALSE), dlogis(x, a, b, log=TRUE)),
+                    msg = " rmath.dlogis")
+
+        checkEquals(runit_plogis(x, a, b),
+                    c(plogis(x, a, b, lower=TRUE, log=FALSE),  plogis(log(x), a, b, lower=TRUE, log=TRUE),
+                      plogis(x, a, b, lower=FALSE, log=FALSE), plogis(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.plogis")
+
+        x <- x/a
+        checkEquals(runit_qlogis(x, a, b),
+                    c(qlogis(x, a, b, lower=TRUE, log=FALSE),  qlogis(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qlogis(x, a, b, lower=FALSE, log=FALSE), qlogis(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qlogis")  
+        
+        set.seed(333)
+        r_result <- rlogis(5, a, b)
+        set.seed(333)
+        rcpp_result <- runit_rlogis(a, b)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rlogis")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rlogis_sugar(a, b)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rlogis.sugar")
+    }
+
+
+    test.rmath.nbeta <- function() {
+        x <- 5
+        a <- 10
+        b <- 7
+        c <- 8
+        checkEquals(runit_dnbeta(x, a, b, c),
+                    c(dbeta(x, a, b, c, log=FALSE), dbeta(x, a, b, c, log=TRUE)),
+                    msg = " rmath.dnbeta")
+
+        checkEquals(runit_pnbeta(x, a, b, c),
+                    c(pbeta(x, a, b, c, lower=TRUE, log=FALSE),  pbeta(log(x), a, b, c, lower=TRUE, log=TRUE),
+                      pbeta(x, a, b, c, lower=FALSE, log=FALSE), pbeta(log(x), a, b, c, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pnbeta")
+
+        x <- x/a
+        checkEquals(runit_qnbeta(x, a, b, c),
+                    c(qbeta(x, a, b, c, lower=TRUE, log=FALSE),  qbeta(log(x), a, b, c, lower=TRUE,  log=TRUE),
+                      qbeta(x, a, b, c, lower=FALSE, log=FALSE), qbeta(log(x), a, b, c, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qnbeta")
+    }
+
+
+    test.rmath.nf <- function() {
+        x <- 5
+        a <- 10
+        b <- 7
+        c <- 8
+        checkEquals(runit_dnf(x, a, b, c),
+                    c(df(x, a, b, c, log=FALSE), df(x, a, b, c, log=TRUE)),
+                    msg = " rmath.dnf")
+
+        checkEquals(runit_pnf(x, a, b, c),
+                    c(pf(x, a, b, c, lower=TRUE, log=FALSE),  pf(log(x), a, b, c, lower=TRUE, log=TRUE),
+                      pf(x, a, b, c, lower=FALSE, log=FALSE), pf(log(x), a, b, c, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pnf")
+
+        x <- x/a
+        checkEquals(runit_qnf(x, a, b, c),
+                    c(qf(x, a, b, c, lower=TRUE, log=FALSE),  qf(log(x), a, b, c, lower=TRUE,  log=TRUE),
+                      qf(x, a, b, c, lower=FALSE, log=FALSE), qf(log(x), a, b, c, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qnf")
+    }
+
+    test.rmath.nt <- function() {
+        x <- 5
+        a <- 10
+        b <- 7
+        checkEquals(runit_dnt(x, a, b),
+                    c(dt(x, a, b, log=FALSE), dt(x, a, b, log=TRUE)),
+                    msg = " rmath.dnt")
+
+        checkEquals(runit_pnt(x, a, b),
+                    c(pt(x, a, b, lower=TRUE, log=FALSE),  pt(log(x), a, b, lower=TRUE, log=TRUE),
+                      pt(x, a, b, lower=FALSE, log=FALSE), pt(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pnt")
+
+        x <- x/a
+        checkEquals(runit_qnt(x, a, b),
+                    c(qt(x, a, b, lower=TRUE, log=FALSE),  qt(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qt(x, a, b, lower=FALSE, log=FALSE), qt(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qnt")
+    }
+
+    test.rmath.wilcox <- function() {
+        x <- 2
+        a <- 4
+        b <- 6
+        checkEquals(runit_dwilcox(x, a, b),
+                    c(dwilcox(x, a, b, log=FALSE), dwilcox(x, a, b, log=TRUE)),
+                    msg = " rmath.dwilcox")
+
+        checkEquals(runit_pwilcox(x, a, b),
+                    c(pwilcox(x, a, b, lower=TRUE, log=FALSE),  pwilcox(log(x), a, b, lower=TRUE, log=TRUE),
+                      pwilcox(x, a, b, lower=FALSE, log=FALSE), pwilcox(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pwilcox")
+
+        x <- x/a
+        checkEquals(runit_qwilcox(x, a, b),
+                    c(qwilcox(x, a, b, lower=TRUE, log=FALSE),  qwilcox(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qwilcox(x, a, b, lower=FALSE, log=FALSE), qwilcox(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qwilcox")
+        
+        
+        set.seed(333)
+        r_result <- rwilcox(5, a, b)
+        set.seed(333)
+        rcpp_result <- runit_rwilcox(a, b)
+        checkEquals(rcpp_result, r_result, msg = " rmath.rwilcox")
+
+        set.seed(333)
+        rcpp_result_sugar <- runit_rwilcox_sugar(a, b)
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rwilcox_sugar")
+    }
+
+}
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.quickanddirty.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.quickanddirty.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.quickanddirty.R	(revision 2476)
@@ -0,0 +1,60 @@
+#!/usr/bin/env r
+# -*- mode: R; ess-indent-level: 4; tab-width: 4; indent-tabs-mode: nil; -*
+#
+# Copyright (C) 2012 - 2016  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (FALSE && .runThisTest) {
+
+    #.setUp <- Rcpp:::unitTestSetup("rmath.cpp")
+    sourceCpp("cpp/rmath.cpp")
+    
+    test.rmath.norm <- function() {
+        x <- 0.25
+        a <- 1.25
+        b <- 2.50
+        checkEquals(runit_dnorm(x, a, b),
+                    c(dnorm(x, a, b, log=FALSE), dnorm(x, a, b, log=TRUE)),
+                    msg = " rmath.dnorm")
+
+        checkEquals(runit_pnorm(x, a, b),
+                    c(pnorm(x, a, b, lower=TRUE, log=FALSE),  pnorm(log(x), a, b, lower=TRUE, log=TRUE),
+                      pnorm(x, a, b, lower=FALSE, log=FALSE), pnorm(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.pnorm")
+
+        checkEquals(runit_qnorm(x, a, b),
+                    c(qnorm(x, a, b, lower=TRUE, log=FALSE),  qnorm(log(x), a, b, lower=TRUE,  log=TRUE),
+                      qnorm(x, a, b, lower=FALSE, log=FALSE), qnorm(log(x), a, b, lower=FALSE, log=TRUE)),
+                    msg = " rmath.qnorm")
+        
+        set.seed(333)
+        rcpp_result <- runit_rnorm(a, b)
+        set.seed(333)
+        rcpp_result_sugar <- runit_rnorm_sugar(a, b)
+        set.seed(333)
+        r_result <- rnorm(5, a, b)
+        
+        checkEquals(rcpp_result, r_result, msg = " rmath.rnorm")
+        checkEquals(rcpp_result_sugar, r_result, msg = " rmath.rnorm.sugar")
+    }
+    
+}
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.support.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.support.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.support.R	(revision 2476)
@@ -0,0 +1,61 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2010 - 2014  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("support.cpp")
+
+    test.plus.REALSXP <- function(){
+        checkEquals(
+            plus_REALSXP(),
+            list(NA_real_,NA_real_,NA_real_) ,
+            msg = " REALSXP + REALSXP" )
+    }
+
+    test.times.REALSXP <- function(){
+        checkEquals(
+            times_REALSXP(),
+            list(NA_real_,NA_real_,NA_real_) ,
+            msg = " REALSXP * REALSXP" )
+    }
+
+    test.divides.REALSXP <- function(){
+        checkEquals(
+            divides_REALSXP(),
+            list(NA_real_,NA_real_,NA_real_) ,
+            msg = " REALSXP / REALSXP" )
+    }
+
+    test.minus.REALSXP <- function(){
+        checkEquals(
+            minus_REALSXP(),
+            list(NA_real_,NA_real_,NA_real_) ,
+            msg = " REALSXP - REALSXP" )
+    }
+
+    test.functions.REALSXP <- function(){
+        checkEquals(
+            functions_REALSXP(),
+            list( rep(NA_real_, 20L), rep(NA_real_, 6L) ) ,
+            msg = "function(NA_REAL)" )
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.binary.package.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.binary.package.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.binary.package.R	(revision 2476)
@@ -0,0 +1,64 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2014  Dirk Eddelbuettel
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.onLinux <- .Platform$OS.type == "unix" && unname(Sys.info()["sysname"]) == "Linux"
+
+.onTravis <- Sys.getenv("TRAVIS") != ""
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+test.binary.testRcppPackage <- function() {
+
+    if (.runThisTest && .onLinux && .onTravis) {
+
+        debpkg <- "r-cran-testrcpppackage"
+        rpkg <- "testRcppPackage"
+    
+        ## R calls it i686 or x86_64; Debian/Ubuntu call it i386 or amd64
+        arch <- switch(unname(Sys.info()["machine"]), "i686"="i386", "x86_64"="amd64")
+
+        ## filename of pre-built 
+        debfile <- file.path(system.file("unitTests/bin", package="Rcpp"),
+                             arch,
+                             paste0(debpkg, "_0.1.0-1_", arch, ".deb"))
+
+        if (file.exists(debfile)) {
+            system(paste("sudo dpkg -i", debfile))
+
+            ## R> testRcppPackage:::rcpp_hello_world()
+            ## [[1]]
+            ## [1] "foo" "bar"
+            
+            ## [[2]]
+            ## [1] 0 1
+            
+            ## R> 
+
+            require(rpkg, lib.loc = "/usr/lib/R/site-library", character.only = TRUE)
+            hello_world <- get("rcpp_hello_world", asNamespace(rpkg))
+            
+            checkEquals(hello_world(), list(c("foo", "bar"), c(0.0, 1.0)),
+                        msg = "code from binary package")
+
+            system(paste("sudo dpkg --purge", debpkg))
+        }
+    }
+}
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.exceptions.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.exceptions.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.exceptions.R	(revision 2476)
@@ -0,0 +1,113 @@
+#!/usr/bin/env r
+# -*- mode: R; tab-width: 4; -*-
+#
+# Copyright (C) 2010 - 2013  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+    .setUp <- Rcpp:::unitTestSetup("exceptions.cpp")
+
+test.stdException <- function() {
+
+  # Code works normally without an exception
+  checkIdentical(takeLog(1L), log(1L))
+
+  # C++ exceptions are converted to R conditions
+  condition <- tryCatch(takeLog(-1L), error = identity)
+
+  checkIdentical(condition$message, "Inadmissible value")
+  checkIdentical(class(condition), c("std::range_error", "C++Error", "error", "condition"))
+
+  # C++ stack only available for Rcpp::exceptions
+  checkTrue(is.null(condition$cppstack))
+
+  checkIdentical(condition$call, quote(takeLog(-1L)))
+}
+
+
+test.rcppException <- function() {
+
+  # Code works normally without an exception
+  checkIdentical(takeLog(1L), log(1L))
+
+  # C++ exceptions are converted to R conditions
+  condition <- tryCatch(takeLogRcpp(-1L), error = identity)
+
+  checkIdentical(condition$message, "Inadmissible value")
+  checkIdentical(class(condition), c("Rcpp::exception", "C++Error", "error", "condition"))
+
+  checkTrue(!is.null(condition$cppstack))
+
+  checkIdentical(class(condition$cppstack), "Rcpp_stack_trace")
+
+  checkEquals(condition$call, quote(takeLogRcpp(-1L)))
+}
+
+test.rcppStop <- function() {
+
+  # Code works normally without an exception
+  checkIdentical(takeLog(1L), log(1L))
+
+  # C++ exceptions are converted to R conditions
+  condition <- tryCatch(takeLogStop(-1L), error = identity)
+
+  checkIdentical(condition$message, "Inadmissible value")
+  checkIdentical(class(condition), c("Rcpp::exception", "C++Error", "error", "condition"))
+
+  checkTrue(!is.null(condition$cppstack))
+
+  checkIdentical(class(condition$cppstack), "Rcpp_stack_trace")
+
+  checkEquals(condition$call, quote(takeLogStop(-1L)))
+}
+
+test.rcppExceptionLocation <- function() {
+
+  # Code works normally without an exception
+  checkIdentical(takeLog(1L), log(1L))
+
+  # C++ exceptions are converted to R conditions
+  condition <- tryCatch(takeLogRcppLocation(-1L), error = identity)
+
+  checkIdentical(condition$message, "Inadmissible value")
+  checkIdentical(class(condition), c("Rcpp::exception", "C++Error", "error", "condition"))
+
+  checkTrue(!is.null(condition$cppstack))
+  checkIdentical(class(condition$cppstack), "Rcpp_stack_trace")
+
+  checkIdentical(condition$cppstack$file, "exceptions.cpp")
+  checkIdentical(condition$cppstack$line, 44L)
+
+  checkEquals(condition$call, quote(takeLogRcppLocation(-1L)))
+}
+
+test.rcppExceptionLocation <- function() {
+
+  # Nested exceptions work the same way
+  normal <- tryCatch(takeLogRcppLocation(-1L), error = identity)
+  f1 <- function(x) takeLogNested(x)
+
+  nested <- tryCatch(f1(-1), error = identity)
+
+  # Message the same
+  checkIdentical(normal$message, nested$message)
+
+  checkEquals(nested$call, quote(takeLogNested(x)))
+}
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.InternalFunction.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.InternalFunction.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.InternalFunction.R	(revision 2476)
@@ -0,0 +1,41 @@
+#!/usr/bin/env r
+#       hey emacs, please make this use  -*- tab-width: 4 -*-
+#
+# Copyright (C) 2014 Christian Authmann
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if( .runThisTest ) {
+
+    .tearDown <- function(){
+        gc()
+    }
+
+    .setUp <- Rcpp:::unitTestSetup("InternalFunction.cpp")
+    
+    test.internal_function_add <- function(){
+    	fun <- getAdd()
+        checkEquals( fun(10,32), 42 )
+    }
+
+    test.internal_function_concatenate <- function(){
+    	fun <- getConcatenate()
+        checkEquals( fun("Hello"," World"), "Hello World" )
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Language.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Language.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Language.R	(revision 2476)
@@ -0,0 +1,172 @@
+#!/usr/bin/env r
+#       hey emacs, please make this use  -*- tab-width: 4 -*-
+#
+# Copyright (C) 2010 - 2014  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("language.cpp") 
+
+    test.Language <- function(){
+        checkEquals( runit_language( call("rnorm") ), call("rnorm" ), msg = "Language( LANGSXP )" )
+        checkException( runit_language(test.Language), msg = "Language not compatible with function" )
+        checkException( runit_language(new.env()), msg = "Language not compatible with environment" )
+        checkException( runit_language(1:10), msg = "Language not compatible with integer" )
+        checkException( runit_language(TRUE), msg = "Language not compatible with logical" )
+        checkException( runit_language(1.3), msg = "Language not compatible with numeric" )
+        checkException( runit_language(as.raw(1) ), msg = "Language not compatible with raw" )
+    }
+
+    test.Language.variadic <- function(){
+        checkEquals( runit_lang_variadic_1(), call("rnorm", 10L, 0.0, 2.0 ), 
+                    msg = "variadic templates" )
+
+        checkEquals( runit_lang_variadic_2(), call("rnorm", 10L, mean = 0.0, 2.0 ),
+                    msg = "variadic templates (with names)" )
+    }
+
+                                        # same as above but without variadic templates
+    test.Language.push.back <- function(){
+        checkEquals( runit_lang_push_back(),
+                    call("rnorm", 10L, mean = 0.0, 2.0 ),
+                    msg = "Language::push_back" )
+    }
+
+    test.Language.square <- function(){
+        checkEquals( runit_lang_square_rv(), 10.0, msg = "Language::operator[] used as rvalue" )
+        checkEquals( runit_lang_square_lv(), call("rnorm", "foobar", 20.0, 20.0) , msg = "Pairlist::operator[] used as lvalue" )
+    }
+
+    test.Language.function <- function(){
+        checkEquals( runit_lang_fun(sort, sample(1:10)), 1:10, msg = "Language( Function ) " )
+    }
+
+    test.Language.inputoperator <- function(){
+        checkEquals( runit_lang_inputop(), call("rnorm", 10L, sd = 10L ) , msg = "Language<<" )
+    }
+
+    test.Language.unary.call <- function(){
+        checkEquals(
+            runit_lang_unarycall( 1:10 ),
+            lapply( 1:10, function(n) seq(from=n, to = 0 ) ),
+            msg = "c++ lapply using calls" )
+
+    }
+
+    test.Language.unary.call.index <- function(){
+        checkEquals(
+            runit_lang_unarycallindex( 1:10 ),
+            lapply( 1:10, function(n) seq(from=10, to = n ) ),
+            msg = "c++ lapply using calls" )
+    }
+
+    test.Language.binary.call <- function(){
+        checkEquals(
+            runit_lang_binarycall( 1:10, 11:20 ),
+            lapply( 1:10, function(n) seq(n, n+10) ),
+            msg = "c++ lapply using calls" )
+    }
+
+    test.Language.fixed.call <- function(){
+        set.seed(123)
+        res <- runit_lang_fixedcall()
+        set.seed(123)
+        exp <- lapply( 1:10, function(n) rnorm(10) )
+        checkEquals( res, exp, msg = "std::generate" )
+    }
+
+    test.Language.in.env <- function(){
+        e <- new.env()
+        e[["y"]] <- 1:10
+        checkEquals( runit_lang_inenv(e), sum(1:10), msg = "Language::eval( SEXP )" )
+    }
+
+    test.Pairlist <- function(){
+        checkEquals( runit_pairlist( pairlist("rnorm") ), pairlist("rnorm" ), msg = "Pairlist( LISTSXP )" )
+        checkEquals( runit_pairlist( call("rnorm") ), pairlist(as.name("rnorm")), msg = "Pairlist( LANGSXP )" )
+        checkEquals( runit_pairlist(1:10), as.pairlist(1:10) , msg = "Pairlist( INTSXP) " )
+        checkEquals( runit_pairlist(TRUE), as.pairlist( TRUE) , msg = "Pairlist( LGLSXP )" )
+        checkEquals( runit_pairlist(1.3), as.pairlist(1.3), msg = "Pairlist( REALSXP) " )
+        checkEquals( runit_pairlist(as.raw(1) ), as.pairlist(as.raw(1)), msg = "Pairlist( RAWSXP)" )
+
+        checkException( runit_pairlist(runit_pairlist), msg = "Pairlist not compatible with function" )
+        checkException( runit_pairlist(new.env()), msg = "Pairlist not compatible with environment" )
+
+    }
+
+    test.Pairlist.variadic <- function(){
+        checkEquals( runit_pl_variadic_1(), pairlist("rnorm", 10L, 0.0, 2.0 ),
+                    msg = "variadic templates" )
+        checkEquals( runit_pl_variadic_2(), pairlist("rnorm", 10L, mean = 0.0, 2.0 ),
+                    msg = "variadic templates (with names)" )
+    }
+
+    test.Pairlist.push.front <- function(){
+        checkEquals( runit_pl_push_front(),
+                    pairlist( foobar = 10, "foo", 10.0, 1L),
+                    msg = "Pairlist::push_front" )
+    }
+
+    test.Pairlist.push.back <- function(){
+        checkEquals( runit_pl_push_back(),
+                    pairlist( 1L, 10.0, "foo", foobar = 10),
+                    msg = "Pairlist::push_back" )
+    }
+
+    test.Pairlist.insert <- function(){
+        checkEquals( runit_pl_insert(),
+                    pairlist( 30.0, 1L, bla = "bla", 10.0, 20.0, "foobar" ),
+                    msg = "Pairlist::replace" )
+    }
+
+    test.Pairlist.replace <- function(){
+        checkEquals( runit_pl_replace(),
+                    pairlist( first = 1, 20.0 , FALSE), msg = "Pairlist::replace" )
+    }
+
+    test.Pairlist.size <- function(){
+        checkEquals( runit_pl_size(), 3L, msg = "Pairlist::size()" )
+    }
+
+    test.Pairlist.remove <- function(){
+        checkEquals( runit_pl_remove_1(), pairlist(10.0, 20.0), msg = "Pairlist::remove(0)" )
+        checkEquals( runit_pl_remove_2(), pairlist(1L, 10.0), msg = "Pairlist::remove(0)" )
+        checkEquals( runit_pl_remove_3(), pairlist(1L, 20.0), msg = "Pairlist::remove(0)" )
+    }
+
+    test.Pairlist.square <- function(){
+        checkEquals( runit_pl_square_1(), 10.0, msg = "Pairlist::operator[] used as rvalue" )
+        checkEquals( runit_pl_square_2(), pairlist(1L, "foobar", 1L) , msg = "Pairlist::operator[] used as lvalue" )
+    }
+
+
+    test.Formula <- function(){
+        checkEquals( runit_formula_(), x ~ y + z, msg = "Formula( string )" )
+    }
+
+    test.Formula.SEXP <- function(){
+        checkEquals( runit_formula_SEXP( x ~ y + z), x ~ y + z, msg = "Formula( SEXP = formula )" )
+        checkEquals( runit_formula_SEXP( "x ~ y + z" ), x ~ y + z, msg = "Formula( SEXP = STRSXP )" )
+        checkEquals( runit_formula_SEXP( parse( text = "x ~ y + z") ), x ~ y + z, msg = "Formula( SEXP = EXPRSXP )" )
+        checkEquals( runit_formula_SEXP( list( "x ~ y + z") ), x ~ y + z, msg = "Formula( SEXP = VECSXP(1 = STRSXP) )" )
+        checkEquals( runit_formula_SEXP( list( x ~ y + z) ), x ~ y + z, msg = "Formula( SEXP = VECSXP(1 = formula) )" )
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.DataFrame.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.DataFrame.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.DataFrame.R	(revision 2476)
@@ -0,0 +1,85 @@
+#!/usr/bin/env r
+# -*- mode: R; tab-width: 4; -*-
+#
+# Copyright (C) 2010 - 2014  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("DataFrame.cpp")
+
+    test.DataFrame.FromSEXP <- function() {
+        DF <- data.frame(a=1:3, b=c("a","b","c"))
+        checkEquals( FromSEXP(DF), DF, msg = "DataFrame pass-through")
+    }
+
+    test.DataFrame.index.byName <- function() {
+        DF <- data.frame(a=1:3, b=c("a","b","c"))
+        checkEquals( index_byName(DF, "a"), DF$a, msg = "DataFrame column by name 'a'")
+        checkEquals( index_byName(DF, "b"), DF$b, msg = "DataFrame column by name 'b'")
+    }
+
+    test.DataFrame.index.byPosition <- function() {
+        DF <- data.frame(a=1:3, b=c("a","b","c"))
+        checkEquals( index_byPosition(DF, 0), DF$a, msg = "DataFrame column by position 0")
+        checkEquals( index_byPosition(DF, 1), DF$b, msg = "DataFrame column by position 1")
+    }
+
+    test.DataFrame.string.element <- function() {
+        DF <- data.frame(a=1:3, b=c("a","b","c"), stringsAsFactors=FALSE)
+        checkEquals( string_element(DF), DF[2,"b"], msg = "DataFrame string element")
+    }
+
+    test.DataFrame.CreateOne <- function() {
+        DF <- data.frame(a=1:3)
+        checkEquals( createOne(), DF, msg = "DataFrame create1")
+    }
+
+    test.DataFrame.CreateTwo <- function() {
+        DF <- data.frame(a=1:3, b=c("a","b","c"))
+        checkEquals( createTwo(), DF, msg = "DataFrame create2")
+    }
+
+    test.DataFrame.SlotProxy <- function(){
+        setClass("track", representation(x="data.frame", y = "function"))
+        df <- data.frame( x = 1:10, y = 1:10 )
+        tr1 <- new( "track", x = df, y = rnorm )
+        checkTrue( identical( SlotProxy(tr1, "x"), df ), msg = "DataFrame( SlotProxy )" )
+        checkException( SlotProxy(tr1, "y"), msg = "DataFrame( SlotProxy ) -> exception" )
+    }
+
+    test.DataFrame.AttributeProxy <- function(){
+        df <- data.frame( x = 1:10, y = 1:10 )
+        tr1 <- structure( NULL, x = df, y = rnorm )
+        checkTrue( identical( AttributeProxy(tr1, "x"), df) , msg = "DataFrame( AttributeProxy )" )
+        checkException( AttributeProxy(tr1, "y"), msg = "DataFrame( AttributeProxy ) -> exception" )
+    }
+
+    test.DataFrame.CreateTwo.stringsAsFactors <- function() {
+        DF <- data.frame(a=1:3, b=c("a","b","c"), stringsAsFactors = FALSE )
+        checkEquals( createTwoStringsAsFactors(), DF, msg = "DataFrame create2 stringsAsFactors = false")
+    }
+
+    test.DataFrame.nrows <- function(){
+        df <- data.frame( x = 1:10, y = 1:10 )
+        checkEquals( DataFrame_nrows( df ), nrow(df) )
+    }
+
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Function.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Function.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.Function.R	(revision 2476)
@@ -0,0 +1,96 @@
+#!/usr/bin/env r
+# -*- mode: R; tab-width: 4; -*-
+#
+# Copyright (C) 2010 - 2014  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("Function.cpp", "stats")
+
+    test.Function <- function(){
+        checkEquals( function_( rnorm ), rnorm, msg = "Function( CLOSXP )" )
+        checkEquals( function_( is.function ), is.function, msg = "Pairlist( BUILTINSXP )" )
+
+        checkException( function_(1:10), msg = "Function( INTSXP) " )
+        checkException( function_(TRUE), msg = "Function( LGLSXP )" )
+        checkException( function_(1.3), msg = "Function( REALSXP) " )
+        checkException( function_(as.raw(1) ), msg = "Function( RAWSXP)" )
+        checkException( function_(new.env()), msg = "Function not compatible with environment" )
+    }
+
+    test.Function.variadic <- function(){
+        checkEquals( function_variadic( sort, sample(1:20) ), 20:1, msg = "calling function" )
+        checkException( function_variadic(sort, sort), msg = "Function, R error -> exception" )
+    }
+
+    test.Function.env <- function(){
+        checkEquals( function_env(rnorm), asNamespace("stats" ), msg = "Function::environment" )
+        checkException( function_env(is.function),
+                       msg = "Function::environment( builtin) : exception" )
+        checkException( function_env(`~`),
+                       msg = "Function::environment( special) : exception" )
+    }
+
+    test.Function.unary.call <- function(){
+        checkEquals(
+            function_unarycall( lapply( 1:10, function(n) seq(from=n, to = 0 ) ) ),
+            2:11 ,
+            msg = "unary_call(Function)" )
+    }
+
+    test.Function.binary.call <- function(){
+        data <- lapply( 1:10, function(n) seq(from=n, to = 0 ) )
+        res <- function_binarycall( data , rep(5L,10) )
+        expected <- lapply( data, pmin, 5 )
+        checkEquals( res, expected,
+                    msg = "binary_call(Function)" )
+    }
+
+    test.Function.namespace.env <- function() {
+        exportedfunc <- function_namespace_env()
+        checkEquals( stats:::.asSparse, exportedfunc, msg = "namespace_env(Function)" )
+    }
+
+    test.Function.cons.env <- function() {
+        parent_env <- new.env()
+        parent_env$fun_parent <- rbinom
+        child_env <- new.env(parent = parent_env)
+        child_env$fun_child <- rnorm
+
+        checkEquals(rnorm, function_cons_env("fun_child", child_env), msg = "env-lookup constructor")
+        checkEquals(rbinom, function_cons_env("fun_parent", child_env), msg = "env-lookup constructor: search function in parent environments")
+        checkException(function_cons_env("fun_child", parent_env), msg = "env-lookup constructor: fail when function not found")
+    }
+
+    test.Function.cons.ns <- function() {
+        checkEquals(Rcpp::sourceCpp, function_cons_ns("sourceCpp", "Rcpp"), msg = "namespace-lookup constructor")
+        checkException(function_cons_ns("sourceCpp", "Rcppp"), msg = "namespace-lookup constructor: fail when ns does not exist")
+        checkException(function_cons_ns("sourceCppp", "Rcpp"), msg = "namespace-lookup constructor: fail when function not found")
+    }
+    
+    test.Function.eval <- function() {
+        checkException(exec(stop))
+        # should not throw exception
+        exec(function() try(silent = TRUE, exec(stop)))
+    }
+
+    # also check function is found in parent env
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.algorithm.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.algorithm.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.algorithm.R	(revision 2476)
@@ -0,0 +1,148 @@
+#!/usr/bin/r -t
+#
+# Copyright (C) 2010 - 2015  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("algorithm.cpp")
+
+    test.sum <- function() {
+        v <- c(1.0, 2.0, 3.0, 4.0, 5.0)
+        checkEquals(sum(v), sumTest(v, 1, 5))
+        v <- c(NA, 1.0, 2.0, 3.0, 4.0)
+	checkEquals(sum(v), sumTest(v, 1, 5))
+    }
+
+    test.sum.nona <- function() {
+        v <- c(1.0, 2.0, 3.0, 4.0, 5.0)
+        checkEquals(sum(v), sumTest_nona(v, 1, 5))
+    }
+
+    test.prod <- function() {
+        v <- c(1.0, 2.0, 3.0, 4.0, 5.0)
+        checkEquals(prod(v), prodTest(v, 1, 5))
+        v <- c(NA, 1.0, 2.0, 3.0, 4.0)
+        checkEquals(prod(v), prodTest(v, 1, 5))
+    }
+
+    test.prod.nona <- function() {
+        v <- c(1.0, 2.0, 3.0, 4.0, 5.0)
+        checkEquals(prod(v), prodTest_nona(v, 1, 5))
+    }
+
+    test.log <- function() {
+        v <- c(1.0, 2.0, 3.0, 4.0, 5.0)
+        checkEquals(log(v), logTest(v))
+        v <- c(NA, 1.0, 2.0, 3.0, 4.0)
+	checkEquals(log(v), logTest(v))
+    }
+
+    test.exp <- function() {
+        v <- c(1.0, 2.0, 3.0, 4.0, 5.0)
+        checkEquals(exp(v), expTest(v))
+        v <- c(NA, 1.0, 2.0, 3.0, 4.0)
+        checkEquals(exp(v), expTest(v))
+    }
+
+    test.sqrt <- function() {
+        v <- c(1.0, 2.0, 3.0, 4.0, 5.0)
+        checkEquals(sqrt(v), sqrtTest(v))
+        v <- c(NA, 1.0, 2.0, 3.0, 4.0)
+        checkEquals(sqrt(v), sqrtTest(v))
+    }
+
+    test.min <- function() {
+        v <- c(1.0, 2.0, 3.0, 4.0, 5.0)
+        checkEquals(min(v), minTest(v))
+        v <- c(NA, 1.0, 2.0, 3.0, 4.0)
+        checkEquals(min(v), minTest(v))
+    }
+
+    test.min.nona <- function() {
+        v <- c(1.0, 2.0, 3.0, 4.0, 5.0)
+        checkEquals(min(v), minTest_nona(v))
+    }
+
+    test.min.int <- function() {
+	v <- c(1, 2, 3, 4, 5)
+        checkEquals(min(v), minTest_int(v))
+        v <- c(NA, 1, 2, 3, 4)
+        checkEquals(min(v), minTest_int(v))
+    }
+
+    test.min.int.nona <- function() {
+        v <- c(1, 2, 3, 4, 5)
+        checkEquals(min(v), minTest_int_nona(v))
+    }
+
+    test.max <- function() {
+        v <- c(1.0, 2.0, 3.0, 4.0, 5.0)
+        checkEquals(max(v), maxTest(v))
+        v <- c(NA, 1.0, 2.0, 3.0, 4.0)
+        checkEquals(max(v), maxTest(v))
+    }
+
+    test.max.nona <- function() {
+        v <- c(1.0, 2.0, 3.0, 4.0, 5.0)
+        checkEquals(max(v), maxTest_nona(v))
+    }
+
+    test.max.int <- function() {
+	v <- c(1, 2, 3, 4, 5)
+        checkEquals(max(v), maxTest_int(v))
+        v <- c(NA, 1, 2, 3, 4)
+        checkEquals(max(v), maxTest_int(v))
+    }
+
+    test.max.int.nona <- function() {
+        v <- c(1, 2, 3, 4, 5)
+        checkEquals(max(v), maxTest_int_nona(v))
+    }
+
+    test.mean <- function() {
+        v <- c(1.0, 2.0, 3.0, 4.0, 5.0)
+        checkEquals(mean(v), meanTest(v))
+        v <- c(1.0, 2.0, 3.0, 4.0, NA)
+        checkEquals(mean(v), meanTest(v))
+        v <- c(1.0, 2.0, 3.0, 4.0, NaN)
+        checkEquals(mean(v), meanTest(v))
+        v <- c(1.0, 2.0, 3.0, 4.0, 1.0/0.0)
+        checkEquals(mean(v), meanTest(v))
+        v <- c(1.0, 2.0, 3.0, 4.0, -1.0/0.0)
+        checkEquals(mean(v), meanTest(v))
+        v <- c(1.0, 2.0, 1.0/0.0, NA, NaN)
+        checkEquals(mean(v), meanTest(v))
+        v <- c(1.0, 2.0, 1.0/0.0, NaN, NA)
+    }
+
+    test.mean.int <- function() {
+        v <- c(1, 2, 3, 4, 5)
+        checkEquals(mean(v), meanTest_int(v))
+        v <- c(1, 2, 3, 4, NA)
+        checkEquals(mean(v), meanTest_int(v))
+    }
+
+    test.mean.logical <- function() {
+        v <- c(TRUE, FALSE, FALSE)
+        checkEquals(mean(v), meanTest_logical(v))
+        v <- c(TRUE, FALSE, FALSE, NA)
+        checkEquals(mean(v), meanTest_logical(v))
+    }
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.S4.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.S4.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.S4.R	(revision 2476)
@@ -0,0 +1,103 @@
+#!/usr/bin/env r
+#
+# Copyright (C) 2010 - 2014  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("S4.cpp")
+
+    test.RObject.S4methods <- function(){
+	setClass("track", representation(x="numeric", y="numeric"))
+	tr <- new( "track", x = 2, y = 2 )
+	checkEquals(
+	    S4_methods(tr),
+            list( TRUE, TRUE, FALSE, 2.0, 2.0 ),
+            msg = "slot management" )
+
+	S4_getslots( tr )
+	checkEquals( tr@x, 10.0 , msg = "slot('x') = 10" )
+	checkEquals( tr@y, 20.0 , msg = "slot('y') = 20" )
+
+	checkException( S4_setslots( tr ), msg = "slot does not exist" )
+	checkException( S4_setslots_2( tr ), msg = "slot does not exist" )
+
+    }
+
+    test.S4 <- function(){
+	setClass("track",
+                 representation(x="numeric", y="numeric"))
+	tr <- new( "track", x = 2, y = 3 )
+	checkEquals( S4_get_slot_x( tr ), 2, msg = "S4( SEXP )" )
+	checkException( S4_get_slot_x( list( x = 2, y = 3 ) ), msg = "not S4" )
+	checkException( S4_get_slot_x( structure( list( x = 2, y = 3 ), class = "track" ) ), msg = "S3 is not S4" )
+
+	tr <- S4_ctor( "track" )
+	checkTrue( inherits( tr, "track" ) )
+	checkEquals( tr@x, numeric(0) )
+	checkEquals( tr@y, numeric(0) )
+	checkException( S4_ctor( "someclassthatdoesnotexist" ) )
+    }
+
+
+    test.S4.is <- function(){
+	setClass("track", representation(x="numeric", y="numeric"))
+	setClass("trackCurve", representation(smooth = "numeric"), contains = "track")
+
+	tr1 <- new( "track", x = 2, y = 3 )
+	tr2 <- new( "trackCurve", x = 2, y = 3, smooth = 5 )
+
+	checkTrue( S4_is_track( tr1 ), msg = 'track is track' )
+	checkTrue( S4_is_track( tr2 ), msg = 'trackCurve is track' )
+
+	checkTrue( !S4_is_trackCurve( tr1 ), msg = 'track is not trackCurve' )
+	checkTrue( S4_is_trackCurve( tr2 ), msg = 'trackCurve is trackCurve' )
+
+    }
+
+    test.Vector.SlotProxy.ambiguity <- function(){
+	setClass("track", representation(x="numeric", y="numeric"))
+	setClass("trackCurve", representation(smooth = "numeric"), contains = "track")
+
+	tr1 <- new( "track", x = 2, y = 3 )
+	checkEquals( S4_get_slot_x(tr1), 2, "Vector( SlotProxy ) ambiguity" )
+
+    }
+
+    test.Vector.AttributeProxy.ambiguity <- function(){
+	x <- 1:10
+	attr( x, "foo" ) <- "bar"
+
+	checkEquals( S4_get_attr_x(x), "bar", "Vector( AttributeProxy ) ambiguity" )
+
+    }
+
+    test.S4.dotdataslot <- function(){
+	setClass( "Foo", contains = "character", representation( x = "numeric" ) )
+	foo <- S4_dotdata( new( "Foo", "bla", x = 10 ) )
+	checkEquals( as.character( foo) , "foooo" )
+    }
+
+    test.S4.proxycoerce <- function() {
+        setClass("Foo", list(data="integer"))
+        foo <- new("Foo", data=1:3)
+        checkEquals( S4_proxycoerce(foo), c(1, 2, 3) )
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.environments.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.environments.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runit.environments.R	(revision 2476)
@@ -0,0 +1,307 @@
+#!/usr/bin/env r
+#       hey emacs, please make this use  -*- tab-width: 4 -*-
+#
+# Copyright (C) 2009 - 2014  Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+.runThisTest <- Sys.getenv("RunAllRcppTests") == "yes"
+
+if (.runThisTest) {
+
+    .setUp <- Rcpp:::unitTestSetup("Environment.cpp")
+
+    test.environment.ls <- function(){
+        e <- new.env( )
+        e$a <- 1:10
+        e$b <- "foo"
+        e$.c <- "hidden"
+        checkEquals( sort(runit_ls(e)), sort(c("a","b", ".c")), msg = "Environment::ls(true)" )
+        checkEquals( runit_ls(asNamespace("Rcpp")), ls(envir=asNamespace("Rcpp"), all = TRUE),
+                    msg = "Environment(namespace)::ls()" )
+
+        checkEquals( runit_ls2(e), c("a","b"), msg = "Environment::ls(false)" )
+        checkEquals( runit_ls2(asNamespace("Rcpp")), ls(envir=asNamespace("Rcpp"), all = FALSE),
+                    msg = "Environment(namespace)::ls()" )
+
+    }
+
+    test.environment.get <- function(){
+        e <- new.env( )
+        e$a <- 1:10
+        e$b <- "foo"
+        
+        # Access with string
+        checkEquals( runit_get( e, "a" ), e$a, msg = "Environment::get(string)" )
+        checkEquals( runit_get( e, "foobar" ), NULL, msg = "Environment::get(string)" )
+        checkEquals( runit_get( asNamespace("Rcpp"), "CxxFlags"), Rcpp:::CxxFlags,
+                     msg = "Environment(namespace)::get(string) " )
+        
+        # Access with Symbol constructed on call from string
+        checkEquals( runit_get_symbol( e, "a" ), e$a, msg = "Environment::get(Symbol)" )
+        checkEquals( runit_get_symbol( e, "foobar" ), NULL, msg = "Environment::get(Symbol)" )
+        checkEquals( runit_get_symbol( asNamespace("Rcpp"), "CxxFlags"), Rcpp:::CxxFlags,
+                     msg = "Environment(namespace)::get(Symbol) " )
+        
+    }    
+
+    test.environment.find <- function(){
+        e <- new.env( )
+        e$a <- 1:10
+        e$b <- "foo"
+        bar <- "me"
+        
+        # Access with string
+        checkEquals( runit_find( e, "a" ), e$a, msg = "Environment::find(string)" )
+        checkException( runit_find( e, "foobar" ), NULL, msg = "Environment::find(string) not found" )
+        checkEquals( runit_find( e, "bar"), bar, msg = "Environment::find(string) inheritance" )
+        checkEquals( runit_find( asNamespace("Rcpp"), "CxxFlags"), Rcpp:::CxxFlags,
+                     msg = "Environment(namespace)::find(string)" )
+        
+        # Access with Symbol constructed on call from string
+        checkEquals( runit_find_symbol( e, "a" ), e$a, msg = "Environment::find(Symbol)" )
+        checkException( runit_find_symbol( e, "foobar" ), NULL, msg = "Environment::find(Symbol) not found" )
+        checkEquals( runit_find_symbol( e, "bar"), bar, msg = "Environment::find(Symbol) inheritance" )
+        checkEquals( runit_find_symbol( asNamespace("Rcpp"), "CxxFlags"), Rcpp:::CxxFlags,
+                     msg = "Environment(namespace)::find(Symbol)" )
+        
+    }    
+    
+        
+    test.environment.exists <- function(){
+        e <- new.env( )
+        e$a <- 1:10
+        e$b <- "foo"
+
+        checkTrue( runit_exists( e, "a" ), msg = "Environment::get()" )
+        checkTrue( !runit_exists( e, "foobar" ), msg = "Environment::get()" )
+        checkTrue( runit_exists( asNamespace("Rcpp"), "CxxFlags"),
+                  msg = "Environment(namespace)::get() " )
+    }
+
+    test.environment.assign <- function(){
+        e <- new.env( )
+        checkTrue( runit_assign(e, "a", 1:10 ), msg = "Environment::assign" )
+        checkTrue( runit_assign(e, "b", Rcpp:::CxxFlags ), msg = "Environment::assign" )
+        checkEquals( ls(e), c("a", "b"), msg = "Environment::assign, checking names" )
+        checkEquals( e$a, 1:10, msg = "Environment::assign, checking value 1" )
+        checkEquals( e$b, Rcpp:::CxxFlags, msg = "Environment::assign, checking value 2" )
+
+        lockBinding( "a", e )
+        can.demangle <- Rcpp:::capabilities()[["demangling"]]
+        if( can.demangle ){
+            checkTrue(
+                tryCatch( { runit_assign(e, "a", letters ) ; FALSE}, "Rcpp::binding_is_locked" = function(e) TRUE ),
+                msg = "cannot assign to locked binding (catch exception)" )
+        } else {
+            checkTrue(
+                tryCatch( { runit_assign(e, "a", letters ) ; FALSE}, "error" = function(e) TRUE ),
+                msg = "cannot assign to locked binding (catch exception)" )
+        }
+    }
+
+    test.environment.isLocked <- function(){
+        e <- new.env()
+        runit_islocked(e)
+        checkEquals( e[["x1"]], 1L  , msg = "Environment::assign( int ) " )
+        checkEquals( e[["x2"]], 10.0, msg = "Environment::assign( double ) " )
+        checkEquals( e[["x3"]], "foobar", msg = "Environment::assign( char* ) " )
+        checkEquals( e[["x4"]], "foobar", msg = "Environment::assign( std::string ) " )
+        checkEquals( e[["x5"]], c("foo", "bar" ), msg = "Environment::assign( vector<string> ) " )
+    }
+
+    test.environment.bindingIsActive <- function(){
+        e <- new.env()
+        e$a <- 1:10
+        makeActiveBinding( "b", function(x) 10, e )
+
+        checkTrue( !runit_bindingIsActive(e, "a" ), msg = "Environment::bindingIsActive( non active ) -> false" )
+        checkTrue( runit_bindingIsActive(e, "b" ), msg = "Environment::bindingIsActive( active ) -> true" )
+
+        can.demangle <- Rcpp:::capabilities()[["demangling"]]
+        if( can.demangle ){
+            checkTrue(
+                tryCatch( { runit_bindingIsActive(e, "xx" ) ; FALSE}, "Rcpp::no_such_binding" = function(e) TRUE ),
+                msg = "Environment::bindingIsActive(no binding) -> exception)" )
+        } else {
+            checkTrue(
+                tryCatch( { runit_bindingIsActive(e, "xx" ) ; FALSE}, error = function(e) TRUE ),
+                msg = "Environment::bindingIsActive(no binding) -> exception)" )
+        }
+    }
+
+    test.environment.bindingIsLocked <- function(){
+        e <- new.env()
+        e$a <- 1:10
+        e$b <- letters
+        lockBinding( "b", e )
+
+        checkTrue( !runit_bindingIsLocked(e, "a" ), msg = "Environment::bindingIsActive( non active ) -> false" )
+        checkTrue( runit_bindingIsLocked(e, "b" ), msg = "Environment::bindingIsActive( active ) -> true" )
+
+        can.demangle <- Rcpp:::capabilities()[["demangling"]]
+        if( can.demangle ){
+            checkTrue(
+                tryCatch( { runit_bindingIsLocked(e, "xx" ) ; FALSE}, "Rcpp::no_such_binding" = function(e) TRUE ),
+                msg = "Environment::bindingIsLocked(no binding) -> exception)" )
+        } else {
+            checkTrue(
+                tryCatch( { runit_bindingIsLocked(e, "xx" ) ; FALSE}, error = function(e) TRUE ),
+                msg = "Environment::bindingIsLocked(no binding) -> exception)" )
+        }
+    }
+
+    test.environment.NotAnEnvironment <- function(){
+        checkException( runit_notanenv( runit_notanenv ), msg = "not an environment" )
+        checkException( runit_notanenv( letters ), msg = "not an environment" )
+        checkException( runit_notanenv( NULL ), msg = "not an environment" )
+    }
+
+
+    test.environment.lockBinding <- function(){
+        e <- new.env()
+        e$a <- 1:10
+        e$b <- letters
+        runit_lockbinding(e, "b")
+        checkTrue( bindingIsLocked("b", e ), msg = "Environment::lockBinding()" )
+
+        can.demangle <- Rcpp:::capabilities()[["demangling"]]
+        if( can.demangle ){
+            checkTrue(
+                tryCatch( { runit_lockbinding(e, "xx" ) ; FALSE}, "Rcpp::no_such_binding" = function(e) TRUE ),
+                msg = "Environment::lockBinding(no binding) -> exception)" )
+        } else {
+            checkTrue(
+                tryCatch( { runit_lockbinding(e, "xx" ) ; FALSE}, error = function(e) TRUE ),
+                msg = "Environment::lockBinding(no binding) -> exception)" )
+        }
+    }
+
+    test.environment.unlockBinding <- function(){
+        e <- new.env()
+        e$a <- 1:10
+        e$b <- letters
+        lockBinding( "b", e )
+        runit_unlockbinding(e, "b")
+        checkTrue( !bindingIsLocked("b", e ), msg = "Environment::lockBinding()" )
+
+        can.demangle <- Rcpp:::capabilities()[["demangling"]]
+        if( can.demangle ){
+            checkTrue(
+                tryCatch( { runit_unlockbinding(e, "xx" ) ; FALSE}, "Rcpp::no_such_binding" = function(e) TRUE ),
+                msg = "Environment::unlockBinding(no binding) -> exception)" )
+        } else {
+            checkTrue(
+                tryCatch( { runit_unlockbinding(e, "xx" ) ; FALSE}, error = function(e) TRUE ),
+                msg = "Environment::unlockBinding(no binding) -> exception)" )
+        }
+    }
+
+    test.environment.global.env <- function(){
+        checkIdentical( runit_globenv(), globalenv(), msg = "Environment::global_env" )
+    }
+
+    test.environment.empty.env <- function(){
+        checkIdentical( runit_emptyenv(), emptyenv(), msg = "Environment::empty_env" )
+    }
+
+    test.environment.base.env <- function(){
+        checkIdentical( runit_baseenv(), baseenv(), msg = "Environment::base_env" )
+    }
+
+    test.environment.namespace.env <- function(){
+        checkIdentical( runit_namespace("Rcpp"), asNamespace("Rcpp"), msg = "Environment::base_namespace" )
+
+        can.demangle <- Rcpp:::capabilities()[["demangling"]]
+        if( can.demangle ){
+            checkTrue(
+                tryCatch( { runit_namespace("----" ) ; FALSE}, "Rcpp::no_such_namespace" = function(e) TRUE ),
+                msg = "Environment::namespace_env(no namespace) -> exception)" )
+        } else {
+            checkTrue(
+                tryCatch( { runit_namespace("----" ) ; FALSE}, error = function(e) TRUE ),
+                msg = "Environment::namespace_env(no namespace) -> exception)" )
+        }
+    }
+
+    test.environment.constructor.SEXP <- function(){
+        checkIdentical( runit_env_SEXP( globalenv() ), globalenv(), msg = "Environment( environment ) - 1" )
+        checkIdentical( runit_env_SEXP( baseenv() ), baseenv(), msg = "Environment( environment ) - 2" )
+        checkIdentical( runit_env_SEXP( asNamespace("Rcpp") ), asNamespace("Rcpp"), msg = "Environment( environment ) - 3" )
+
+        checkIdentical( runit_env_SEXP( ".GlobalEnv" ), globalenv(), msg = "Environment( character ) - 1" )
+        checkIdentical( runit_env_SEXP( "package:base" ), baseenv(), msg = "Environment( character ) - 2" )
+        checkIdentical( runit_env_SEXP( "package:Rcpp" ), as.environment("package:Rcpp") , msg = 'Environment( "package:Rcpp") ' )
+
+        checkIdentical( runit_env_SEXP(1L), globalenv(), msg = "Environment( SEXP{integer} )" )
+    }
+
+    test.environment.constructor.stdstring <- function(){
+        checkIdentical( runit_env_string( ".GlobalEnv" ), globalenv(), msg = "Environment( std::string ) - 1" )
+        checkIdentical( runit_env_string( "package:base" ), baseenv(), msg = "Environment( std::string ) - 2" )
+        checkIdentical( runit_env_string( "package:Rcpp" ), as.environment("package:Rcpp") ,
+                    msg = 'Environment( std::string ) - 3' )
+
+    }
+
+    test.environment.constructor.int <- function(){
+        for( i in 1:length(search())){
+            checkIdentical( runit_env_int(i), as.environment(i), msg = sprintf("Environment(int) - %d", i) )
+        }
+    }
+
+    test.environment.remove <- function(){
+        e <- new.env( )
+        e$a <- 1
+        e$b <- 2
+        checkTrue( runit_remove( e, "a" ), msg = "Environment::remove" )
+        checkEquals( ls(envir=e), "b", msg = "check that the element was removed" )
+        checkException( runit_remove(e, "xx"), msg = "Environment::remove no such binding" )
+        lockBinding( "b", e )
+        checkException( runit_remove(e, "b"), msg = "Environment::remove binding is locked" )
+        checkEquals( ls(envir=e), "b", msg = "check that the element was not removed" )
+
+    }
+
+    test.environment.parent <- function(){
+        e <- new.env( parent = emptyenv() )
+        f <- new.env( parent = e )
+        checkEquals( runit_parent(f), e, msg = "Environment::parent" )
+        checkEquals( runit_parent(e), emptyenv() , msg = "Environment::parent" )
+    }
+
+    test.environment.square <- function(){
+        env <- new.env( )
+        env[["x"]] <- 10L
+        checkEquals( runit_square(env), list( 10L, 2L, "foo") )
+
+    }
+
+    test.environment.Rcpp <- function(){
+        checkEquals( runit_Rcpp(), asNamespace("Rcpp") , msg = "cached Rcpp namespace" )
+    }
+
+    #test.environment.child <- function(){
+    #    checkEquals( parent.env(runit_child()), globalenv(), msg = "child environment" )
+    #}
+
+    test.environment.new_env <- function() {
+        env <- new.env()
+        checkIdentical(parent.env(runit_new_env_default()), emptyenv(), msg = "new environment with default parent")
+        checkIdentical(parent.env(runit_new_env_parent(env)), env, msg = "new environment with specified parent")
+    }
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runTests.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runTests.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/unitTests/runTests.R	(revision 2476)
@@ -0,0 +1,164 @@
+## -*- mode: R; tab-width: 4; -*-
+##
+## Copyright (C) 2009 - 2013  Dirk Eddelbuettel and Romain Francois
+##
+## This file is part of Rcpp.
+##
+## Rcpp is free software: you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 2 of the License, or
+## (at your option) any later version.
+##
+## Rcpp is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+## Usage:
+##
+##   r some/path/to/runTests.R                 # defaults
+##   r some/path/to/runTests.R --local         # use cwd, not pkg dir
+##   r some/path/to/runTests.R --output=/tmp   # undo what BDR imposed
+##   r some/path/to/runTests.R --allTests      # undo what KH imposed
+##
+
+pkg <- "Rcpp"
+
+if (require("RUnit", quietly = TRUE)) {
+
+    is_local <- function(){
+        if( exists( "argv", globalenv() ) && "--local" %in% argv ) return(TRUE)
+        if( "--local" %in% commandArgs(TRUE) ) return(TRUE)
+        FALSE
+    }
+    if (is_local() ) path <- getwd()
+
+    library(package=pkg, character.only = TRUE)
+    if (!(exists("path"))) ## && file.exists(path)))
+        path <- system.file("unitTests", package = pkg)
+
+    ## --- Testing ---
+
+    ## Define tests
+    testSuite <- defineTestSuite(name=paste(pkg, "unit testing"), dirs = path)
+
+    ## TODO: actually prioritize which ones we want
+    ##       for now, expensive tests (eg Modules, client packages) are skipped
+    checkForAllTests <- function() {
+    	if (exists( "argv", globalenv() ) && "--allTests" %in% argv) {
+            Sys.setenv("RunAllRcppTests"="yes")
+            return(TRUE)
+        }
+    	if ("--allTests" %in% commandArgs(TRUE)) {
+            Sys.setenv("RunAllRcppTests"="yes")
+            return(TRUE)
+        }
+        Sys.setenv("RunAllRcppTests"="no")
+        return(FALSE)
+    }
+    ## if (.Platform$OS.type == "windows" && allTests() == FALSE) {
+    ##     ## by imposing [D-Z] (instead of an implicit A-Z) we are going from
+    ##     ## 45 tests to run down to 38 (numbers as of release 0.8.3)
+    ##     testSuite$testFileRegexp <- "^runit\\.[D-Z].+\\.[rR]$"
+    ## }
+
+    if (Sys.getenv("RunAllRcppTests") == "") { 	# if env.var not yet set
+        checkForAllTests()       				# see if we want to set flag
+    }
+
+    if (interactive()) {
+        cat("Now have RUnit Test Suite 'testSuite' for package '", pkg,
+            "' :\n", sep='')
+        str(testSuite)
+        cat('', "Consider doing",
+            "\t  tests <- runTestSuite(testSuite)", "\nand later",
+            "\t  printTextProtocol(tests)", '', sep="\n")
+    } else { ## run from shell / Rscript / R CMD Batch / ...
+
+        ## Run
+        tests <- runTestSuite(testSuite)
+
+        output <- NULL
+
+        process_args <- function(argv){
+            if( !is.null(argv) && length(argv) > 0 ){
+                rx <- "^--output=(.*)$"
+                g  <- grep( rx, argv, value = TRUE )
+                if( length(g) ){
+                    sub( rx, "\\1", g[1L] )
+                }
+            }
+        }
+
+                                        # R CMD check uses this
+        if( exists( "Rcpp.unit.test.output.dir", globalenv() ) ){
+            output <- Rcpp.unit.test.output.dir
+        } else {
+
+            ## give a chance to the user to customize where he/she wants
+            ## the unit tests results to be stored with the --output= command
+            ## line argument
+            if( exists( "argv",  globalenv() ) ){
+                ## littler
+                output <- process_args(argv)
+            } else {
+                ## Rscript
+                output <- process_args(commandArgs(TRUE))
+            }
+        }
+
+        if( is.null(output) ) {         # if it did not work, use parent dir
+            output <- ".."              # as BDR does not want /tmp to be used
+        }
+
+        ## Print results
+        output.txt  <- file.path( output, sprintf("%s-unitTests.txt", pkg))
+        output.html <- file.path( output, sprintf("%s-unitTests.html", pkg))
+
+        printTextProtocol(tests, fileName=output.txt)
+        message( sprintf( "saving txt unit test report to '%s'", output.txt ) )
+
+        ## Print HTML version to a file
+        ## printHTMLProtocol has problems on Mac OS X
+        if (Sys.info()["sysname"] != "Darwin"){
+            message( sprintf( "saving html unit test report to '%s'", output.html ) )
+            printHTMLProtocol(tests, fileName=output.html)
+        }
+
+        ##  stop() if there are any failures i.e. FALSE to unit test.
+        ## This will cause R CMD check to return error and stop
+        err <- getErrors(tests)
+        if( (err$nFail + err$nErr) > 0) {
+        	data <- Filter(
+        		function(x) any( sapply(x, function(.) .[["kind"]] ) %in% c("error","failure") ) ,
+        		tests[[1]]$sourceFileResults )
+        	err_msg <- sapply( data,
+        	function(x) {
+        		raw.msg <- paste(
+        			sapply( Filter( function(.) .[["kind"]] %in% c("error","failure"), x ), "[[", "msg" ),
+        			collapse = " // "
+        			)
+        		raw.msg <- gsub( "Error in compileCode(f, code, language = language, verbose = verbose) : \n", "", raw.msg, fixed = TRUE )
+        		raw.msg <- gsub( "\n", "", raw.msg, fixed = TRUE )
+        		raw.msg
+        		}
+        	)
+        	msg <- sprintf( "unit test problems: %d failures, %d errors\n%s",
+        		err$nFail, err$nErr,
+        		paste( err_msg, collapse = "\n" )
+        		)
+        	stop( msg )
+        } else{
+            success <- err$nTestFunc - err$nFail - err$nErr - err$nDeactivated
+            cat( sprintf( "%d / %d\n", success, err$nTestFunc ) )
+        }
+    }
+
+} else {
+    cat("R package 'RUnit' cannot be loaded -- no unit tests run\n",
+        "for package", pkg,"\n")
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.10.0.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.10.0.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.10.0.txt	(revision 2476)
@@ -0,0 +1,188 @@
+
+
+===== Summary =====
+
+Version 0.10.0 of the Rcpp package is now on CRAN and its mirrors.  
+
+This new release brings a number of new features, as well as extensions to
+existing features, to the package.  Several key aspects are highlighted
+below, and further details can be found in the NEWS and ChangeLog files which
+are included in the package.
+
+
+
+===== Overview =====
+
+Rcpp is an R package and associated C++ library for seamless integration
+between C++ and R.  
+
+It has been described in a recent paper in the Journal of Statistical
+Software (Vol 40, Issue 08) which is also included in the package as the
+"Rcpp-introduction" pdf vignette.
+
+As of late 2012, Rcpp is used by over 80 other CRAN packages making it the
+most widely-used language interface for R.
+
+Several key features of the new 0.10.0 release are described below.
+
+
+
+===== Rcpp attributes =====
+
+Rcpp attributes are a new feature of Rcpp version 0.10.0 that provide 
+infrastructure for seamless language bindings between R and C++. With
+attributes we hope to eliminate the need to write boilerplate conversion
+and marshaling code, make it much easier to use C++ within interactive
+R sessions, and reduce the learning curve associated with using C++
+and R together. 
+
+Rcpp attributes derive their syntax from C++11 style attributes and
+are included in C++ source files using specially formatted comments.
+For example, the following source file includes the definition of 
+a fibonacci function with an Rcpp::export attribute included 
+immediately above the function definition:
+
+#include <Rcpp.h>
+using namespace Rcpp;
+
+// [[Rcpp::export]]
+int fibonacci(const int x) {
+   if (x < 2)
+      return x;
+   else
+      return (fibonacci(x - 1)) + fibonacci(x - 2);
+}
+
+The export attribute indicates that we'd like the function to be callable
+from R. We can now "source" this C++ file at the R prompt and then call
+the function as follows:
+
+R> sourceCpp("fibonacci.cpp")
+R> fibonacci(20)
+[1] 6765
+
+Rcpp attributes build upon Rcpp modules (described in another vignette in the
+package), as well as the automatic type converters Rcpp::as<>() and Rcpp::wrap.  
+The converters can already be used for a wide variety of standard C and C++
+types, and can also be adapted to other C++ types and libraries as described
+in the Rcpp-extending vignette.
+
+Rcpp attributes and their supporting functions include: 
+
+ - Rcpp::export attribute to export a C++ function to R
+ - sourceCpp function to source exported functions from a file
+ - cppFunction and evalCpp functions for inline declarations and execution
+ - Rcpp::depends attribute for specifying additional build dependencies
+   for sourceCpp
+
+Attributes can also be used for package development via the `compileAttributes`
+function, which generates an Rcpp module for all exported functions within
+an R package.
+
+More details are provided in the new vignette Rcpp-attributes.  We also intend
+to provide further illustrations via our blogs following the release.
+
+
+
+===== Rcpp modules =====
+
+Rcpp modules provide an easy way to expose C++ functions and classes to R using 
+a declarative syntax. We declare which functions and which classes we want to 
+make available to R and modules takes care of automatically (via the compiler, 
+through template deduction ...) creating the interface code between the C++
+code and R. 
+
+Rcpp modules have been extended for the new release.  A brief
+summary of new key features is:
+
+ - inheritance: A class can now declare that it inherits from another class;
+   the exposed class gains methods and properties (fields) from its parent class. 
+ - Functions and methods can now return objects from classes that are exposed
+   through modules. The macro RCPP_EXPOSED_CLASS and RCPP_EXPOSED_CLASS_NODECL 
+   can be used to declared the required type traits.
+ - Classes exposed through modules can also be used as parameters of exposed
+   functions or methods.  
+ - Exposed classes can declare factories, i.e. a C++ function returning a
+   pointer to the target class, providing an alternative way to construct
+   objects. 
+ - "converter" can be used to declare a way to convert ("cast") an object of
+   a type to another type. This is translated at the R level in terms of an "as"
+   method.
+
+We intend to provide example packages using these new features in the near future.
+
+
+
+===== New sugar functions =====
+
+Rcpp sugar provides "syntactic sugar" familiar to R programmers at the C++
+level, including a large number of vectorised functions.  In this release, we
+added 
+ - which_min() and which_max() returning the index of the first object
+   matching the condition
+ - unique() and sort_unique()
+
+
+
+===== New I/O facilities =====
+
+The Rcpp::Rcout object now supports the std::flush manipulator, which calls
+R_FlushConsole. A new object Rcpp::Rcerr has been added with passes content
+for error messages to REprintf().
+
+
+
+===== New namespace "R::" for Rmath functions =====
+
+A side-effect of Rcpp sugar providing vectorised d/p/q/r functions for the
+various statistical distribution was that the scalar variants of these
+functions (available from Rmath.h) were masked behind a Rf_ prefix.
+Previously, one had to call ::Rf_pnorm5() to compute pnorm() -- but now a
+cleaner interface R::pnorm() is available.  Unit tests were added as well.
+
+
+
+===== Links =====
+
+Rcpp main page: 
+    http://dirk.eddelbuettel.com/code/rcpp.html
+
+R-forge project page: 
+    http://r-forge.r-project.org/projects/rcpp/
+
+Dirk's blog section about Rcpp 
+    Rcpp: http://dirk.eddelbuettel.com/blog/code/rcpp/
+
+Romain's blog section about Rcpp: 
+    http://romainfrancois.blog.free.fr/index.php?category/R-package/Rcpp
+
+RStudio blog:
+    http://blog.rstudio.org
+
+Google+: 
+    https://plus.google.com/b/107029540907667241299/107029540907667241299/posts
+    
+Facebook:
+    http://www.facebook.com/pages/Rcpp/213047595425775
+    
+Twitter:
+    https://twitter.com/eddelbuettel
+    https://twitter.com/romain_francois
+
+
+
+===== Support =====
+
+Questions about Rcpp should be directed to the Rcpp-devel mailing list
+    https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
+
+While we prefer the mailing list, StackOverflow has also become a frequently
+used resource under the [rcpp] tag:
+    http://stackoverflow.com/questions/tagged/rcpp
+
+
+Dirk Eddelbuettel, Romain Francois, Doug Bates, John Chambers and JJ Allaire
+November 2012
+
+
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.10.0.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.11.0.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.11.0.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.11.0.txt	(revision 2476)
@@ -0,0 +1,136 @@
+
+
+===== Summary =====
+
+Version 0.11.0 of the Rcpp package is now on CRAN and its mirrors.  
+
+This new release brings a number of new features, most noticably a simplified
+build system, as well as improvements to existing features and bugfixes.
+
+Complete details of the changes implemented between the last announcement for
+version 0.10.0 and this new can be found in the NEWS and ChangeLog files
+which are included in the package.
+
+
+
+===== Overview =====
+
+Rcpp is an R package and associated C++ library for seamless integration
+between C++ and R.  
+
+It has been described in a Journal of Statistical Software (2011, Vol 40,
+Issue 08) paper (also included in the package as the "Rcpp-introduction" pdf
+vignette) and a book "Seamless R and C++ Integration with Rcpp" (2013,
+Springer, useR! Series).
+
+As of early 2014, Rcpp is used by over 160 other CRAN packages.
+
+Several key features of the new 0.11.0 release are described below.
+
+
+
+===== One-time rebuild required =====
+
+Because of the simplified linking scheme detailed in the next section, and
+the corresponding removal of the libRcpp.* library, all packages currently
+using Rcpp need to be reinstalled.
+
+We provide a simple helper script at
+https://github.com/RcppCore/rcpp-logs/blob/master/scripts/showReverseRcppDepends.r
+to identidy which of your currently-installed packages use Rcpp, and need to
+be rebuilt / reinstalled.
+
+
+
+===== Simpler Building with Rcpp =====
+
+Thanks to the 'LinkingTo:' directive, R already instructed the compiler where
+to fine header files when writing code with Rcpp. The package now uses the
+registration facilities in R (see Section 5.4 in Writing R Extensions). 
+
+With just an 'Imports: Rcpp' in DESCRIPTION along with an explicit import
+statement in the NAMESPACE file such 'importFrom(Rcpp, evalCpp)' all required
+Rcpp code will be properly instantiated without any explicit linking. [ Note
+that just using 'import(Rcpp)' is not sufficient, but any exported C++
+identifier should do -- evalCpp is nice and short. ]
+
+This means that the package no longer provides a user-facing library
+libRcpp.so (or libRcpp.dylib or libRcpp.dll).  This also implies that a
+one-time rebuild is needed as alluded to in the previous section.
+
+The key benefit is that many package should no longer require the files
+src/Makevars and src/Makevars.win in order to link with Rcpp. Mny packages
+will be able to retire these files. The exception, of course, is the case
+where a package links against an external library as eg the RcppArmadillo
+package> Here, the LAPACK / BLAS / Fortran libraries still need to be
+linked. However, the corresponding values are also provided by R and the
+expression becomes a simple 'PKG_LIBS=$(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)'.
+
+
+
+===== Rcpp attributes =====
+
+Rcpp attributes were a key innovation in the 0.10.0; they have matured
+further and have now become the standard way to build code with Rcpp.  See
+the dedicated vignette for details.
+
+
+
+==== C++11 Support =====
+
+R 3.1.0, to be released in a few month, will permit compilation using C++11,
+the newest C++ standard -- including for packages going to CRAN.  Rcpp had
+already supported 'local' builds using C++11 since version 0.10.3, simply add
+
+   [[Rcpp::plugins(cpp11)]]
+
+and Rcpp attributes takes care of the rest.
+
+
+
+===== Memory management =====
+
+A number of internal data structures have been rewritten.
+
+
+
+===== Links =====
+
+Rcpp site:
+    http://www.rcpp.org
+
+Rcpp Gallery:
+    http://gallery.rcpp.org
+
+Dirk's Rcpp page: 
+    http://dirk.eddelbuettel.com/code/rcpp.html
+
+GitHub page: 
+    https://github.com/RcppCore/Rcpp
+
+R-forge project page: 
+    http://r-forge.r-project.org/projects/rcpp/
+
+Google+: 
+    https://plus.google.com/b/107029540907667241299/107029540907667241299/posts
+    
+
+
+===== Support =====
+
+Questions about Rcpp should be directed to the Rcpp-devel mailing list
+    https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
+
+While we prefer the mailing list, StackOverflow has also become a frequently
+used resource under the [rcpp] tag:
+    http://stackoverflow.com/questions/tagged/rcpp
+
+
+
+On behalf of the Rcpp Core team,  
+
+   Dirk Eddelbuettel
+   February 2014
+
+
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.11.0.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.6.0.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.6.0.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.6.0.txt	(revision 2476)
@@ -0,0 +1,54 @@
+New Rcpp versions 0.6.0 and 0.6.1
+---------------------------------
+		
+The Rcpp package provides C++ classes that greatly facilitate interfacing C
+or C++ code in R packages using the .Call() interface provided by R.
+
+Rcpp provides matching C++ classes for a large number of basic R data
+types. Hence, a package author can keep his data in normal R data structure
+without having to worry about translation or transfer to C++. At the same
+time, the data structures can be accessed as easily at the C++ level, and
+used in the normal manner.
+
+The mapping of data types works in both directions. It is as straightforward
+to pass data from R to C++, as it is it return data from C++ to R.  The
+following two sections list supported data types.
+
+Transfer from R to C++:
+Standard R datatypes that are understood in C++ are
+ o named lists containing numeric (i.e. floating point), integer,
+   character, logical (i.e. boolean) or Date and Datetime (i.e. POSIXct at
+   the microsecond granularity) arguments;
+ o data frames containing numeric, integer, logical, character,
+   Date, Datetime or Factor columns;
+ o named vectors containing numeric or integer values,
+ o vectors and matrices of different values
+ o character strings
+
+Transfer from C++ to R:
+Standard C++ datatypes can be returned to R in a named list, the most
+general data type in R.  Permissible components of the returns list
+are the following C++ types:
+ o double (scalar as well as vectors and vectors of vectors),
+ o int (scalar as well as vectors and vectors of vectors), string,
+ o STL vector types and vector<vector> types of int and double
+ o STL vector of strings
+ o internal Rcpp types RcppDate, RcppDateVector, RcppDatetime,
+   RcppDatetimeVector, RcppStringVector, RcppVector of int or double,
+   RcppMatrix of int or double, RcppFrame
+
+Rcpp was initially written by Dominick Samperi as part of his contributions
+to RQuantLib, and later released as a standalone package (under both the Rcpp
+and RcppTemplate names).   Its development had ceased in late 2006.
+
+As of November 2008, I have made new release with substantially expanded
+documentation, simpler yet more comprehensive build structure leading to
+easier use of Rcpp from other packages, and support for Windows, Linux and
+Mac OS X (with special thanks to Simon for some extended cluebat waving).
+
+More information for Rcpp can be found at
+ o the package homepage at http://dirk.eddelbuettel.com/code/rcpp.html
+ o the R-forge repository at https://r-forge.r-project.org/projects/rcpp/
+ o the CRAN page at http://cran.r-project.org/web/packages/Rcpp/index.html
+
+Regards,  Dirk

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.6.0.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.7.0.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.7.0.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.7.0.txt	(revision 2476)
@@ -0,0 +1,74 @@
+Rcpp version 0.7.0 went onto CRAN this weekend. The key new features are
+
+  o inline support, taken from Oleg Sklyar's neat inline package and 
+    adapted/extented to support Rcpp as well as external libraries
+    (see below for an example); this even works on Windows (provided you 
+    have Rtools installed and configured); 
+
+  o addition of a new simple type RcppSexp for importing or exporting
+    simple types directly between R and C++
+
+  o addition of a number of new examples for both these features
+
+  o code reorganisation: every class has in its own header and source file 
+
+  o last but not least relicensed from LGPL (>=2.1) to GPL (>= 2)
+
+My blog (http://dirk.eddelbuettel.com/blog/) has two recent posts with a bit
+more details (and colour highlighting of the code below) but let's just look
+at one example of using GNU GSL functions for illustrative purposes (as you
+wouldn't need this to access random-number generators as R has its own).
+
+Consider this R code snippet:
+
+    ## use Rcpp to pass down a parameter for the seed, and a vector size
+    gslrng <- '
+       int seed = RcppSexp(s).asInt();
+       int len = RcppSexp(n).asInt();
+
+       gsl_rng *r;
+       gsl_rng_env_setup();
+       std::vector<double> v(len);
+
+       r = gsl_rng_alloc (gsl_rng_default);
+
+       gsl_rng_set (r, (unsigned long) seed);
+       for (int i=0; i<len; i++) {
+           v[i] = gsl_rng_get (r);
+       }
+       gsl_rng_free(r);
+
+       return RcppSexp(v).asSexp();
+       '
+
+    ## turn into a function that R can call
+    ## compileargs redundant on Debian/Ubuntu as gsl headers are found anyway
+    funx <- cfunction(signature(s="numeric", n="numeric"),
+                      gslrng,
+                      includes="#include <gsl/gsl_rng.h>",
+                      Rcpp=TRUE,
+                      cppargs="-I/usr/include",
+                      libargs="-lgsl -lgslcblas")
+    print(funx(0, 5))
+
+
+Brief notes on this:
+
+  1)  The character variable gslrng contains valid C++ code.
+
+  2)  The call to cfunction converts this C++ code into a function that
+      calls it -- and this function is compiled, linked and loaded
+      automagically simply using hints about GSL header files and libraries.
+
+  3)  The interface is explit: cfunction() is told about a function signature
+      with numeric variables 's' and 'n'; this is what the C++ code convert
+      to (C++ local) variables 'seed' and 'len' using the RcppSexp class.
+
+  4)  We return a single SEXP to R which is based on the std::vector<double>
+      v which is also converted on the fly.
+
+  5)  The resulting vector is returned and simply printed at the R level.
+
+
+More examples are in the source tarball and in the R-Forge SVN archive.
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.7.0.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.8.0.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.8.0.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.8.0.txt	(revision 2476)
@@ -0,0 +1,297 @@
+
+===== Summary =====
+
+Version 0.8.0 of the Rcpp package was released to CRAN today. This release
+marks another milestone in the ongoing redesign of the package, and
+underlying C++ library.
+
+
+===== Overview =====
+
+Rcpp is an R package and C++ library that facilitates integration of C++
+code in R packages. 
+
+The package features a set of C++ classes (Rcpp::IntegerVector,
+Rcpp::Function, Rcpp::Environment, ...) that makes it easier to manipulate R
+objects of matching types (integer vectors, functions, environments, etc
+...).
+
+Rcpp takes advantage of C++ language features such as the explicit
+constructor/destructor lifecycle of objects to manage garbage collection
+automatically and transparently. We believe this is a major improvement over
+PROTECT/UNPROTECT. When an Rcpp object is created, it protects the underlying
+SEXP so that the garbage collector does not attempt to reclaim the
+memory. This protection is withdrawn when the object goes out of
+scope. Moreover, users generally do not need to manage memory directly (via
+calls to new / delete or malloc / free) as this is done by the Rcpp classes
+or the corresponding STL containers.
+
+
+===== API =====
+
+Rcpp provides two APIs: an older set of classes we refer to the classic API
+(see below for the section 'Backwards Compatibility) as well as second and
+newer set of classes. 
+
+Classes of the new Rcpp API belong to the Rcpp namespace. Each class is
+associated to a given SEXP type and exposes an interface that allows
+manipulation of the object that may feel more natural than the usual use of
+macros and functions provided by the R API.
+
+----------------------------------------------------------
+SEXP type         |    Rcpp class                 
+----------------------------------------------------------
+INTSXP            |    Rcpp::IntegerVector        
+REALSXP           |    Rcpp::NumericVector
+RAWSXP            |    Rcpp::RawVector
+LGLSXP            |    Rcpp::LogicalVector
+CPLXSXP           |    Rcpp::ComplexVector 
+STRSXP            |    Rcpp::CharacterVector
+VECSXP            |    Rcpp::List
+EXPRSXP           |    Rcpp::ExpressionVector
+----------------------------------------------------------
+ENVSXP            |    Rcpp::Environment
+SYMSXP            |    Rcpp::Symbol
+----------------------------------------------------------
+CLOSXP            |
+BUILTINSXP        |    Rcpp::Function
+SPECIALSXP        |
+----------------------------------------------------------
+LANGSXP           |    Rcpp::Language
+LISTSXP           |    Rcpp::Pairlist
+----------------------------------------------------------
+S4SXP             |    Rcpp::S4
+----------------------------------------------------------
+PROMSXP           |    Rcpp::Promise
+WEAKREFSXP        |    Rcpp::WeakReference
+EXTPTRSXP         |    template <typename T> Rcpp::XPtr
+----------------------------------------------------------
+
+Some SEXP types do not have dedicated Rcpp classes : NILSXP, DOTSXP, 
+ANYSXP, BCODESXP and CHARSXP. 
+
+Still missing are a few convenience classes such as Rcpp::Date or
+Rcpp::Datetime which would map useful and frequently used R data types, but
+which do not have an underlying SEXP type.
+
+
+===== Data Interchange =====
+
+Data interchange between R and C++ is managed by extensible and powerful yet
+simple mechanisms.
+
+Conversion of a C++ object is managed by the template function Rcpp::wrap. 
+This function currently manages :
+ - primitive types : int, double, bool, float, Rbyte, ...
+ - std::string, const char*
+ - STL containers such as std::vector<T> and STL maps such as 
+   std::map< std::string, T> provided that the template type T is wrappable 
+-  any class that can be implicitely converted to SEXP, through operator SEXP()
+
+Conversion of an R object to a C++ object is managed by the Rcpp::as<T>
+template which can handle:
+ - primitive types
+ - std::string, const char* 
+ - STL containers such as std::vector<T>
+
+Rcpp::wrap and Rcpp::as are often used implicitely. For example, when
+assigning objects to an environment:
+
+  // grab the global environment
+  Rcpp::Environment global = Rcpp::Environment::global_env() ;
+  std::deque<bool> z( 3 ); z[0] = false; z[1] = true; z[3] = false ;
+
+  global["x"] = 2 ;                    // implicit call of wrap<int>
+  global["y"] = "foo";                 // implicit call of wrap<char*>
+  global["z"] = z ;                    // impl. call of wrap<std::deque<bool>>
+
+  int x = global["x"] ;                // implicit call of as<int>
+  std::string y = global["y"]          // implicit call of as<std::string>
+  std::vector<bool> z1 = global["z"] ; // impl. call of as<std::vector<bool>>
+
+Rcpp contains several examples that illustrate wrap and as. The mechanism was 
+designed to be extensible. We have developped separate packages to illustrate
+how to extend Rcpp conversion mechanisms to third party types. 
+ - RcppArmadillo : conversion of types from the Armadillo C++ library. 
+ - RcppGSL       : conversion of types from the GNU Scientific Library. 
+
+Rcpp is also used for data interchange by the RInside package which provides
+and easy way of embedding an R instance inside of C++ programs.
+
+
+===== inline use =====
+
+Rcpp depends on the inline package by Oleg Sklyar et al. Rcpp then uses the
+'cfunction' provided by inline (with argument Rcpp=TRUE) to compile, link and
+load C++ function from the R session.
+
+As of version 0.8.0 of Rcpp, we also define an R function cppfunction that
+acts as a facade function to the inline::cfuntion, with specialization for
+C++ use.
+
+This allows quick prototyping of compiled code. All our unit tests are based 
+on cppfunction and can serve as examples of how to use the mechanism. For example
+this function (from the runit.GenericVector.R unit test file) defines from
+R a C++ (simplified) version of lapply: 
+
+  ## create a compiled function cpp_lapply using cppfunction 
+  cpp_lapply <- cppfunction(signature(x = "list", g = "function" ), 
+  		'Function fun(g) ;
+		 List input(x) ;
+		 List output( input.size() ) ;
+		 std::transform( input.begin(), input.end(), output.begin(), fun ) ;
+		 output.names() = input.names() ;
+		 return output ;
+	    ')
+  ## call cpp_lapply on the iris data with the R function summary
+  cpp_lapply( iris, summary )	
+
+
+===== Using Rcpp in other packages =====
+
+Rcpp is designed so that its classes are used from other packages. Using Rcpp
+requires : 
+ - using the header files provided by Rcpp. This is typically done by adding this
+   line in the package DESRIPTION file: 
+  
+	LinkingTo: Rcpp
+
+  and add the following line in the package code: 
+  
+	#include <Rcpp.h>
+
+- linking against the Rcpp dynamic or static library, which is achieved by 
+  adding this line to the src/Makevars of the package:
+  
+	PKG_LIBS = $(shell ${R_HOME}/bin/Rscript -e "Rcpp:::LdFlags()" )
+
+  and this line to the src/Makevars.win file: 
+  
+	PKG_LIBS = $(shell "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" -e "Rcpp:::LdFlags()")
+
+Rcpp contains a function Rcpp.package.skeleton, modelled after
+package.skeleton from the utils package in base r, that creates a skeleton of
+a package using Rcpp, including example code.
+
+
+===== C++ exceptions =====
+
+C++ exceptions are R contexts are both based on non local jumps (at least 
+on the implementation of exceptions in gcc), so care must be ensure
+that one system does not void assumptions of the other. It is therefore 
+very strongly recommended that each function using C++ catches 
+C++ exceptions. Rcpp offers the function forward_exception_to_r
+to facilitate forwarding the exception to the "R side" as an R condition. 
+For example : 
+
+  SEXP foo( ) {
+    try {
+      // user code here
+    } catch( std::exception& __ex__){
+      forward_exception_to_r( __ex__ ) ;
+    }
+    // return something here
+  }
+
+Alternatively, functions can enclose the user code with the macros BEGIN_RCPP
+and END_RCPP, which provides for a more compact way of programming.  The
+function above could be written as follows using the macros:
+
+  SEXP foo( ) {
+    BEGIN_RCPP
+    // user code here
+    END_RCPP
+    // return something here
+  }
+
+The use of BEGIN_RCPP and END_RCPP is recommended to anticipate future changes
+of Rcpp. We might for example decide to install dedicated handlers for specific 
+exceptions later.
+
+
+===== Experimental code generation macros =====
+
+Rcpp contains several macros that can generate repetitive 'boiler plate' code:
+  RCPP_FUNCTION_0, ..., RCPP_FUNCTION_65
+  RCPP_FUNCTION_VOID_0, ..., RCPP_FUNCTION_VOID_65
+  RCPP_XP_METHOD_0, ..., RCPP_XP_METHOD_65
+  RCPP_XP_METHOD_CAST_0, ..., RCPP_XP_METHOD_CAST_65
+  RCPP_XP_METHOD_VOID_0, ..., RCPP_XP_METHOD_VOID_65
+
+For example: 
+
+  RCPP_FUNCTION_2( int, foobar, int x, int y){
+     return x + y ;
+  }
+
+This will create a .Call compatible function "foobar" that calls a 
+c++ function for which we provide the argument list (int x, int y)
+and the return type (int). The macro also encloses the call 
+in BEGIN_RCPP/END_RCPP so that exceptions are properly forwarded to R.
+
+Examples of the other macros are given in the NEWS file.
+
+This feature is still experimental, but is being used in packages
+highlight and RProtoBuf
+
+
+===== Quality Assurance =====
+
+Rcpp uses the RUnit package by Matthias Burger et al and the aforementioned
+inline package by Oleg Sklyar et al to provide unit testing. Rcpp currently
+has over 500 unit tests (called from more than 230 unit test functions) with
+very good coverage of the critical parts of the package and library.
+
+Source code for unit test functions are stored in the unitTests directory 
+of the installed package and the results are collected in the "Rcpp-unitTests"
+vignette. 
+
+The unit tests can be both during the standard R package build and testing
+process, and also when the package is installed.  The latter use is helpful
+to ensure that no system components have changed in a way that affect the
+Rcpp package since it has been installed.  To run the tests, execute
+
+   Rcpp:::test()
+
+where an output directory can be provided as an optional first argument.
+
+
+===== Backwards Compatibility =====
+
+We believe the new API is now more complete and useful than the previous set
+of classes, which we refer to as the "classic Rcpp API". We would therefore
+recommend to package authors using 'classic' Rcpp to move to the new API.
+However, the classic API is still maintained and will continue to be
+maintained to ensure backwards compatibility for code that uses it.
+
+Packages uses the 'Classic API' can use features of the new API selectively
+and in incremental steps. This provides for a non-disruptive upgrade path.
+
+
+===== Documentation =====
+
+The package contains a vignette which provides a short and succinct
+introduction to the Rcpp package along with several motivating examples.
+Also provided is a vignette containing the regression test summary from
+the time the package was built.
+
+
+===== Links =====
+
+Rcpp main page: http://dirk.eddelbuettel.com/code/rcpp.html
+R-forge project page: http://r-forge.r-project.org/projects/rcpp/
+Dirk's blog section about Rcpp: http://dirk.eddelbuettel.com/blog/code/rcpp/
+Romain's blog section about Rcpp: http://romainfrancois.blog.free.fr/index.php?category/R-package/Rcpp
+
+
+===== Support =====
+
+Questions about Rcpp should be directed to the Rcpp-devel mailing list
+https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
+
+
+
+ -- Dirk Eddelbuettel and Romain Francois
+    Chicago, IL, USA, and Montpellier, France
+	May 2010
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.8.0.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.9.0.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.9.0.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.9.0.txt	(revision 2476)
@@ -0,0 +1,196 @@
+
+===== Summary =====
+
+Version 0.9.0 of the Rcpp package is now on CRAN and its mirrors.  This
+release marks another step in the development of the package, and a few key
+points are highlighted below.  More details are in the NEWS and ChangeLog
+files included in the package.
+
+
+===== Overview =====
+
+Rcpp is an R package and associated C++ library that facilitates integration
+of C++ code in R packages.
+
+The package features a complete set of C++ classes (Rcpp::IntegerVector,
+Rcpp:NumericVector, Rcpp::Function, Rcpp::Environment, ...) that makes it
+easier to manipulate R objects of matching types (integer vectors, functions,
+environments, etc ...).
+
+Rcpp takes advantage of C++ language features such as the explicit
+constructor / destructor lifecycle of objects to manage garbage collection
+automatically and transparently.  We believe this is a major improvement over
+use of PROTECT/UNPROTECT.  When an Rcpp object is created, it protects the
+underlying SEXP so that the garbage collector does not attempt to reclaim the
+memory.  This protection is withdrawn when the object goes out of
+scope. Moreover, users generally do not need to manage memory directly (via
+calls to new / delete or malloc / free) as this is done by the Rcpp classes
+or the corresponding STL containers.
+
+A few key points about Rcpp:
+
+ - a rich API covering all core R data types including vectors, matrices,
+   functions, environments, ... (with the exeception of factors
+   which are less useful in C++)
+
+ - seamless (bi-directional) data interchange between R and C++
+
+ - possibility of inline use permitting definition, compilation, linking and
+   loading of C++ functions directly from R
+
+ - extensive documentation now covering eight vignettes
+
+ - exception handling and error propagation back to R
+
+ - extensive test suite using RUnit covering over 700 tests
+
+ - extension packages RcppArmadillo and RcppGSL provide easy-to-use
+   integration with the Armadillo (linear algebra) and GNU GSL librasries
+
+ - increasing adoption among R users and package developers with now
+   twenty packages from CRAN or BioConductor depending on Rcpp
+
+ - support for the legacy 'classic' Rcpp is now provided by the RcppClassic
+   package which is being released concurrently with Rcpp 0.9.0 
+
+Several key features were added during the 0.8.* cycles and are described below.
+
+
+===== Rcpp sugar =====
+
+Rcpp now provides syntactic sugar: vectorised expressions at the C++ level
+which are motivated by the corresponding R expressions.  This covers
+operators (binary arithmetic, binary logical, unary), functions (producing
+single logical results, mathematical functions and d/p/q/r statistical
+functions). Examples comprises anything from ifelse() to pmin()/pmax() or 
+
+A really simply example is a function
+
+    SEXP foo( SEXP xx, SEXP yy){
+        NumericVector x(xx), y(yy) ;
+        return ifelse( x < y, x*x, -(y*y) ) ;
+    }
+
+which deploys the sugar 'ifelse' function modeled after the corresponding R
+function. Another simple example is
+
+    double square( double x){
+        return x*x ;
+    }
+
+    SEXP foo( SEXP xx ){
+        NumericVector x(xx) ;
+        return sapply( x, square ) ;
+    }
+
+where use the sugar function 'sapply' to sweep a simple C++ function which
+operates elementwise across the supplied vector.
+
+The Rcpp-sugar vignette describes sugar in more detail.
+
+
+===== Rcpp modules =====
+
+Rcpp modules are inspired by Boost.Python and make exposing C++ functions or
+classes to R even easier.  A first illustration is provided by this simple
+C++ code snippet
+
+    const char* hello( const std::string& who ){
+        std::string result( "hello " ) ;
+        result += who ;
+        return result.c_str() ;
+    }
+
+    RCPP_MODULE(yada){
+        using namespace Rcpp ;
+        function( "hello", &hello ) ;
+    }
+
+which (after compiling and loading) we can access in R as
+
+    yada <- Module( "yada" )
+    yada$hello( "world" )
+
+In a similar way, C++ classes can be exposed very easily.
+
+Rcpp modules are also described in more detail in their own vignette.
+
+
+===== Reference Classes =====
+
+R release 2.12.0 introduced Reference Classes. These are formal S4 classes
+with the corresponding dispatch method, but passed by reference and easy to
+use. Reference Classes can also be exposed to R by using Rcpp modules.
+
+
+===== Extension packackages =====
+
+The RcppArmadillo package permits use of the advanced C++ library 'Armadillo,
+a C++ linear algebra library aiming towards a good balance between speed and
+ease of use, providing integer, floating point and complex matrices and
+vectors with lapack / blas support via R. Armadillo uses templates for a
+delayed evaluation approach is employed (during compile time) to combine
+several operations into one and reduce (or eliminate) the need for
+temporaries.  Armadillo is useful if C++ has been decided as the language of
+choice, rather than another language like Matlab ® or Octave, and aims to be
+as expressive as the former.  Via Rcpp and RcppArmadillo, R users now have
+easy access to this functionality. Examples are provided in the RcppArmadillo
+package.
+
+The RcppGSL package permits easy use of the GNU Scientific Library (GSL), a
+collection of numerical routines for scientifc computing. It is particularly
+useful for C and C++ programs as it provides a standard C interface to a wide
+range of mathematical routines such as special functions, permutations,
+combinations, fast fourier transforms, eigensystems, random numbers,
+quadrature, random distributions, quasi-random sequences, Monte Carlo
+integration, N-tuples, differential equations, simulated annealing, numerical
+differentiation, interpolation, series acceleration, Chebyshev
+approximations, root-finding, discrete Hankel transforms physical constants,
+basis splines and wavelets.  There are over 1000 functions in total with an
+extensive test suite.  The RcppGSL package provides an easy-to-use interface
+between GSL data structures and R using concepts from Rcpp. The RcppGSL
+package also contains a vignette with more documentation.
+
+
+===== Legacy 'classic' API =====
+
+Packages still using code interfacing the initial 'classic' Rcpp API are
+encouraged to migrate to the new API.  Should a code transition not be
+possible, backwards compatibility is provided by the RcppClassic package
+released alongside Rcpp 0.9.0.  By including RcppClassic.h and building
+against the RcppClassic package and library, vintage code can remain
+operational using the classic API.  The short vignette in the RcppClassic
+package has more details.
+
+
+===== Documentation =====
+
+The package contains a total of eight vignettes the first of which provides a
+short and succinct introduction to the Rcpp package along with several
+motivating examples.
+
+
+===== Links =====
+
+Rcpp main page: 
+    http://dirk.eddelbuettel.com/code/rcpp.html
+R-forge project page: 
+    http://r-forge.r-project.org/projects/rcpp/
+Dirk's blog section about 
+    Rcpp: http://dirk.eddelbuettel.com/blog/code/rcpp/
+Romain's blog section about Rcpp: 
+    http://romainfrancois.blog.free.fr/index.php?category/R-package/Rcpp
+
+
+===== Support =====
+
+Questions about Rcpp should be directed to the Rcpp-devel mailing list
+    https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
+
+
+
+ -- Dirk Eddelbuettel, Romain Francois, Doug Bates and John Chambers
+    December 2010
+
+
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/announce/ANNOUNCE-0.9.0.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/INDEX	(revision 2476)
@@ -0,0 +1,37 @@
+.DollarNames-methods    completion
+C++Class-class          Reflection information for an internal c++
+                        class
+C++Constructor-class    Class "C++Constructor"
+C++Field-class          Class "C++Field"
+C++Function-class       Class "C++Function"
+C++Object-class         c++ internal objects
+C++OverloadedMethods-class
+                        Class "C++OverloadedMethods"
+LdFlags                 (Deprecated) Rcpp Linker Flags
+Module                  Retrieves an Rcpp module
+Module-class            Rcpp modules
+Rcpp-deprecated         Deprecated Functions in the Rcpp Package
+Rcpp-package            R / C++ interface
+Rcpp.package.skeleton   Create a skeleton for a new package depending
+                        on Rcpp
+Rcpp.plugin.maker       Facilitating making package plugins
+RcppUnitTests           Rcpp : unit tests results
+compileAttributes       Compile Rcpp Attributes for a Package
+compilerCheck           Check for Minimal (g++) Compiler Version
+cppFunction             Define an R Function with a C++ Implementation
+demangle                c++ type information
+dependsAttribute        Rcpp::depends Attribute
+evalCpp                 Evaluate a C++ Expression
+exportAttribute         Rcpp::export Attribute
+exposeClass             Create an Rcpp Module to Expose a C++ Class in
+                        R
+formals<--methods       Set the formal arguments of a C++ function
+interfacesAttribute     Rcpp::interfaces Attribute
+loadModule              Load an Rcpp Module into a Package
+loadRcppModules         Loads Rcpp modules on package startup
+pluginsAttribute        Rcpp::plugins Attribute
+populate                Populates a namespace or an environment with
+                        the content of a module
+registerPlugin          Register an inline plugin
+setRcppClass            Create a Class Extending a C++ Class
+sourceCpp               Source C++ Code from a File or String
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/discovery/cxx0x.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/discovery/cxx0x.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rcpp/discovery/cxx0x.R	(revision 2476)
@@ -0,0 +1,60 @@
+#!/bin/env Rscript
+
+# Copyright (C) 2010	Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of Rcpp.
+#
+# Rcpp is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# Rcpp is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+# This script is used by the Rcpp::RcppCxx0xFlags function to
+# generate the "-std=c++0x" flag when the compiler in use is GCC >= 4.3
+
+local({
+	flag <- function(){
+	
+		cxx0x.code <- '
+		#include <R.h>
+		#include <Rdefines.h>
+		
+		extern "C" SEXP cxx0x(){
+		
+		#ifdef __GNUC__
+			#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+			#if GCC_VERSION >= 40300
+			return mkString( "-std=c++0x" ) ;
+			#endif
+		#endif
+		return mkString( "" ) ;
+		}
+		'
+		td <- tempfile()
+		dir.create( td )
+		here <- getwd()
+		setwd(td)
+		dll <- sprintf( "cxx0x%s", .Platform$dynlib.ext )
+		on.exit( { 
+			dyn.unload( dll )
+			setwd(here) ; 
+			unlink( td, recursive = TRUE )
+		} )
+		writeLines( cxx0x.code, "cxx0x.cpp" )
+		cmd <- sprintf( "%s/R CMD SHLIB cxx0x.cpp", R.home(component="bin") )
+		system( cmd, intern = TRUE )
+		dyn.load( dll )
+		res <- tryCatch( .Call( "cxx0x" ), error = "" )
+		res
+	}
+	cat( flag() )
+})
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/R/nnet
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/R/nnet	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/R/nnet	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/R/nnet.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/R/nnet.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/R/nnet.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/R/nnet.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/DESCRIPTION	(revision 2476)
@@ -0,0 +1,23 @@
+Package: nnet
+Priority: recommended
+Version: 7.3-12
+Date: 2016-02-02
+Depends: R (>= 2.14.0), stats, utils
+Suggests: MASS
+Authors@R: c(person("Brian", "Ripley", role = c("aut", "cre", "cph"),
+                    email = "ripley@stats.ox.ac.uk"),
+             person("William", "Venables", role = "cph"))
+Description: Software for feed-forward neural networks with a single
+  hidden layer, and for multinomial log-linear models.
+Title: Feed-Forward Neural Networks and Multinomial Log-Linear Models
+ByteCompile: yes
+License: GPL-2 | GPL-3
+URL: http://www.stats.ox.ac.uk/pub/MASS4/
+NeedsCompilation: yes
+Packaged: 2016-02-02 09:12:29 UTC; ripley
+Author: Brian Ripley [aut, cre, cph],
+  William Venables [cph]
+Maintainer: Brian Ripley <ripley@stats.ox.ac.uk>
+Repository: CRAN
+Date/Publication: 2016-02-02 14:55:19
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:33:56 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/html/00Index.html	(revision 2476)
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Feed-Forward Neural Networks and Multinomial Log-Linear Models</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Feed-Forward Neural Networks and Multinomial Log-Linear Models
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;nnet&rsquo; version 7.3-12</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="nnet.html">add.net</a></td>
+<td>Fit Neural Networks</td></tr>
+<tr><td style="width: 25%;"><a href="multinom.html">add1.multinom</a></td>
+<td>Fit Multinomial Log-linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="multinom.html">anova.multinom</a></td>
+<td>Fit Multinomial Log-linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="class.ind.html">class.ind</a></td>
+<td>Generates Class Indicator Matrix from a Factor</td></tr>
+<tr><td style="width: 25%;"><a href="multinom.html">coef.multinom</a></td>
+<td>Fit Multinomial Log-linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="nnet.html">coef.nnet</a></td>
+<td>Fit Neural Networks</td></tr>
+<tr><td style="width: 25%;"><a href="multinom.html">drop1.multinom</a></td>
+<td>Fit Multinomial Log-linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="nnet.html">eval.nn</a></td>
+<td>Fit Neural Networks</td></tr>
+<tr><td style="width: 25%;"><a href="multinom.html">extractAIC.multinom</a></td>
+<td>Fit Multinomial Log-linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="multinom.html">logLik.multinom</a></td>
+<td>Fit Multinomial Log-linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="multinom.html">model.frame.multinom</a></td>
+<td>Fit Multinomial Log-linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="multinom.html">multinom</a></td>
+<td>Fit Multinomial Log-linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="nnet.html">nnet</a></td>
+<td>Fit Neural Networks</td></tr>
+<tr><td style="width: 25%;"><a href="nnet.html">nnet.default</a></td>
+<td>Fit Neural Networks</td></tr>
+<tr><td style="width: 25%;"><a href="nnet.html">nnet.formula</a></td>
+<td>Fit Neural Networks</td></tr>
+<tr><td style="width: 25%;"><a href="nnet.Hess.html">nnetHess</a></td>
+<td>Evaluates Hessian for a Neural Network</td></tr>
+<tr><td style="width: 25%;"><a href="nnet.html">norm.net</a></td>
+<td>Fit Neural Networks</td></tr>
+<tr><td style="width: 25%;"><a href="multinom.html">predict.multinom</a></td>
+<td>Fit Multinomial Log-linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="predict.nnet.html">predict.nnet</a></td>
+<td>Predict New Examples by a Trained Neural Net</td></tr>
+<tr><td style="width: 25%;"><a href="multinom.html">print.multinom</a></td>
+<td>Fit Multinomial Log-linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="nnet.html">print.nnet</a></td>
+<td>Fit Neural Networks</td></tr>
+<tr><td style="width: 25%;"><a href="multinom.html">print.summary.multinom</a></td>
+<td>Fit Multinomial Log-linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="nnet.html">print.summary.nnet</a></td>
+<td>Fit Neural Networks</td></tr>
+<tr><td style="width: 25%;"><a href="multinom.html">summary.multinom</a></td>
+<td>Fit Multinomial Log-linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="nnet.html">summary.nnet</a></td>
+<td>Fit Neural Networks</td></tr>
+<tr><td style="width: 25%;"><a href="multinom.html">vcov.multinom</a></td>
+<td>Fit Multinomial Log-linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="which.is.max.html">which.is.max</a></td>
+<td>Find Maximum Position in Vector</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/INDEX	(revision 2476)
@@ -0,0 +1,6 @@
+class.ind               Generates Class Indicator Matrix from a Factor
+multinom                Fit Multinomial Log-linear Models
+nnet                    Fit Neural Networks
+nnetHess                Evaluates Hessian for a Neural Network
+predict.nnet            Predict New Examples by a Trained Neural Net
+which.is.max            Find Maximum Position in Vector
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/help/AnIndex	(revision 2476)
@@ -0,0 +1,27 @@
+add.net	nnet
+add1.multinom	multinom
+anova.multinom	multinom
+class.ind	class.ind
+coef.multinom	multinom
+coef.nnet	nnet
+drop1.multinom	multinom
+eval.nn	nnet
+extractAIC.multinom	multinom
+logLik.multinom	multinom
+model.frame.multinom	multinom
+multinom	multinom
+nnet	nnet
+nnet.default	nnet
+nnet.formula	nnet
+nnetHess	nnet.Hess
+norm.net	nnet
+predict.multinom	multinom
+predict.nnet	predict.nnet
+print.multinom	multinom
+print.nnet	nnet
+print.summary.multinom	multinom
+print.summary.nnet	nnet
+summary.multinom	multinom
+summary.nnet	nnet
+vcov.multinom	multinom
+which.is.max	which.is.max
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/help/nnet.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/help/nnet.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/help/nnet.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/help/nnet.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/libs/nnet.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/libs/nnet.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/CITATION	(revision 2476)
@@ -0,0 +1,18 @@
+citHeader("To cite the nnet package in publications use:")
+
+citEntry(entry="Book",
+         title = "Modern Applied Statistics with S",
+         author = personList(as.person("W. N. Venables"), 
+                             as.person("B. D. Ripley")),
+	 publisher = "Springer",
+         edition = "Fourth",
+         address      = "New York",
+         year         = 2002,
+         note         = "ISBN 0-387-95457-0",
+         url          = "http://www.stats.ox.ac.uk/pub/MASS4",
+         
+         textVersion = 
+         paste("Venables, W. N. & Ripley, B. D. (2002)", 
+               "Modern Applied Statistics with S.",
+               "Fourth Edition. Springer, New York. ISBN 0-387-95457-0")
+)
\ No newline at end of file
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/NAMESPACE	(revision 2476)
@@ -0,0 +1,34 @@
+useDynLib(nnet, .registration = TRUE)
+
+export(class.ind, multinom, nnet, nnetHess, which.is.max)
+
+# match.call problem
+export(nnet.default, nnet.formula)
+
+#importFrom(stats, add1, anova, coef, drop1, extractAIC, model.frame, predict, vcov)
+import(stats)
+importFrom(utils, flush.console)
+
+S3method(add1, multinom)
+S3method(anova, multinom)
+S3method(coef, multinom)
+S3method(confint, multinom)
+S3method(drop1, multinom)
+S3method(extractAIC, multinom)
+S3method(logLik, multinom)
+S3method(model.frame, multinom)
+S3method(predict, multinom)
+S3method(print, multinom)
+S3method(print, summary.multinom)
+S3method(summary, multinom)
+S3method(vcov, multinom)
+
+S3method(coef, nnet)
+S3method(predict, nnet)
+S3method(print, nnet)
+S3method(print, summary.nnet)
+# S3method(residuals, nnet)
+S3method(summary, nnet)
+
+S3method(nnet, default)
+S3method(nnet, formula)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/NEWS	(revision 2476)
@@ -0,0 +1,26 @@
+Software and datasets to support 'Modern Applied Statistics with S',
+fourth edition, by W. N. Venables and B. D. Ripley.
+Springer, 2002, ISBN 0-387-95457-0.
+
+This file documents software changes since the third edition.
+
+
+- no copying of datasets even in R.
+- model.frame method for multinom (even in R).
+- nnet now uses the C interface to optim.
+- nnet.Hess has been renamed nnetHess.
+- vcov.multinom now computes the Hessian analytically (thanks to David Firth).
+- predict methods for multinom, nnet now check newdata types
+- model.frame.multinom now looks for the environment of the original formula
+- multinom has a new `model' argument defaulting to TRUE.
+- the multinom methods for add1, dropterm and anova now check
+  for changes in the number of cases in use caused e.g. by na.action=na.omit.
+- added confint() method for multinom.
+- added logLik() method for multinom.
+- summary() for multinom now defaults to correlation=FALSE.
+- nnet() reports on 'convergence'.
+- confint.multinom() works better with a non-default 'parm'.
+- multinom() and nnet(softmax=TRUE) give an explicit error message for
+  one-category responses.
+- the loglik() method for multinom() returns an "nobs" attribute. 
+- vcov() on a "multinom" object works for fits with na.action = "na.exclude".
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/po/ko/LC_MESSAGES/R-nnet.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/po/ko/LC_MESSAGES/R-nnet.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/po/en@quot/LC_MESSAGES/R-nnet.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/po/en@quot/LC_MESSAGES/R-nnet.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/po/pl/LC_MESSAGES/R-nnet.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/po/pl/LC_MESSAGES/R-nnet.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/po/fr/LC_MESSAGES/R-nnet.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/po/fr/LC_MESSAGES/R-nnet.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/po/de/LC_MESSAGES/R-nnet.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nnet/po/de/LC_MESSAGES/R-nnet.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/NAMESPACE	(revision 2476)
@@ -0,0 +1,10 @@
+useDynLib(class, .registration = TRUE)
+
+export(batchSOM, condense, knn, knn.cv, knn1, lvq1, lvq2, lvq3, lvqinit,
+       lvqtest, multiedit, olvq1, reduce.nn, SOM, somgrid)
+
+importFrom(graphics, plot, points, stars)
+importFrom(stats, dist)
+
+S3method(plot, SOM)
+S3method(plot, somgrid)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/NEWS	(revision 2476)
@@ -0,0 +1,14 @@
+Software and datasets to support 'Modern Applied Statistics with S',
+fourth edition, by W. N. Venables and B. D. Ripley.
+Springer, 2002, ISBN 0-387-95457-0.
+
+This file documents software changes since the third edition.
+
+
+- fixed a bug in knn(use.all = FALSE)
+- added SOM, batchSOM and ancillary functions.
+- Bugfix in SOM (7.0-5)
+- knn* and lvq* explicitly check for missing values in the inputs.
+- knn1 was not handling ties correctly in some cases (but knn was).
+- added check for user error in inputs in knn.cv.
+- SOM segfaulted for 1D inputs.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/po/fr/LC_MESSAGES/R-class.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/po/fr/LC_MESSAGES/R-class.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/po/de/LC_MESSAGES/R-class.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/po/de/LC_MESSAGES/R-class.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/po/ko/LC_MESSAGES/R-class.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/po/ko/LC_MESSAGES/R-class.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/po/en@quot/LC_MESSAGES/R-class.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/po/en@quot/LC_MESSAGES/R-class.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/po/pl/LC_MESSAGES/R-class.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/po/pl/LC_MESSAGES/R-class.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/R/class
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/R/class	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/R/class	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/R/class.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/R/class.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/R/class.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/R/class.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/DESCRIPTION	(revision 2476)
@@ -0,0 +1,23 @@
+Package: class
+Priority: recommended
+Version: 7.3-14
+Date: 2015-08-29
+Depends: R (>= 3.0.0), stats, utils
+Imports: MASS
+Authors@R: c(person("Brian", "Ripley", role = c("aut", "cre", "cph"),
+                    email = "ripley@stats.ox.ac.uk"),
+             person("William", "Venables", role = "cph"))
+Description: Various functions for classification, including k-nearest
+  neighbour, Learning Vector Quantization and Self-Organizing Maps.
+Title: Functions for Classification
+ByteCompile: yes
+License: GPL-2 | GPL-3
+URL: http://www.stats.ox.ac.uk/pub/MASS4/
+NeedsCompilation: yes
+Packaged: 2015-08-28 15:25:36 UTC; ripley
+Author: Brian Ripley [aut, cre, cph],
+  William Venables [cph]
+Maintainer: Brian Ripley <ripley@stats.ox.ac.uk>
+Repository: CRAN
+Date/Publication: 2015-08-30 08:58:59
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:34:07 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/html/00Index.html	(revision 2476)
@@ -0,0 +1,59 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Functions for Classification</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Functions for Classification
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;class&rsquo; version 7.3-14</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="batchSOM.html">batchSOM</a></td>
+<td>Self-Organizing Maps: Batch Algorithm</td></tr>
+<tr><td style="width: 25%;"><a href="condense.html">condense</a></td>
+<td>Condense training set for k-NN classifier</td></tr>
+<tr><td style="width: 25%;"><a href="knn.html">knn</a></td>
+<td>k-Nearest Neighbour Classification</td></tr>
+<tr><td style="width: 25%;"><a href="knn.cv.html">knn.cv</a></td>
+<td>k-Nearest Neighbour Cross-Validatory Classification</td></tr>
+<tr><td style="width: 25%;"><a href="knn1.html">knn1</a></td>
+<td>1-Nearest Neighbour Classification</td></tr>
+<tr><td style="width: 25%;"><a href="lvq1.html">lvq1</a></td>
+<td>Learning Vector Quantization 1</td></tr>
+<tr><td style="width: 25%;"><a href="lvq2.html">lvq2</a></td>
+<td>Learning Vector Quantization 2.1</td></tr>
+<tr><td style="width: 25%;"><a href="lvq3.html">lvq3</a></td>
+<td>Learning Vector Quantization 3</td></tr>
+<tr><td style="width: 25%;"><a href="lvqinit.html">lvqinit</a></td>
+<td>Initialize a LVQ Codebook</td></tr>
+<tr><td style="width: 25%;"><a href="lvqtest.html">lvqtest</a></td>
+<td>Classify Test Set from LVQ Codebook</td></tr>
+<tr><td style="width: 25%;"><a href="multiedit.html">multiedit</a></td>
+<td>Multiedit for k-NN Classifier</td></tr>
+<tr><td style="width: 25%;"><a href="olvq1.html">olvq1</a></td>
+<td>Optimized Learning Vector Quantization 1</td></tr>
+<tr><td style="width: 25%;"><a href="somgrid.html">plot.SOM</a></td>
+<td>Plot SOM Fits</td></tr>
+<tr><td style="width: 25%;"><a href="somgrid.html">plot.somgrid</a></td>
+<td>Plot SOM Fits</td></tr>
+<tr><td style="width: 25%;"><a href="reduce.nn.html">reduce.nn</a></td>
+<td>Reduce Training Set for a k-NN Classifier</td></tr>
+<tr><td style="width: 25%;"><a href="SOM.html">SOM</a></td>
+<td>Self-Organizing Maps: Online Algorithm</td></tr>
+<tr><td style="width: 25%;"><a href="somgrid.html">somgrid</a></td>
+<td>Plot SOM Fits</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/INDEX	(revision 2476)
@@ -0,0 +1,16 @@
+SOM                     Self-Organizing Maps: Online Algorithm
+batchSOM                Self-Organizing Maps: Batch Algorithm
+condense                Condense training set for k-NN classifier
+knn                     k-Nearest Neighbour Classification
+knn.cv                  k-Nearest Neighbour Cross-Validatory
+                        Classification
+knn1                    1-Nearest Neighbour Classification
+lvq1                    Learning Vector Quantization 1
+lvq2                    Learning Vector Quantization 2.1
+lvq3                    Learning Vector Quantization 3
+lvqinit                 Initialize a LVQ Codebook
+lvqtest                 Classify Test Set from LVQ Codebook
+multiedit               Multiedit for k-NN Classifier
+olvq1                   Optimized Learning Vector Quantization 1
+reduce.nn               Reduce Training Set for a k-NN Classifier
+somgrid                 Plot SOM Fits
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/help/class.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/help/class.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/help/AnIndex	(revision 2476)
@@ -0,0 +1,17 @@
+batchSOM	batchSOM
+condense	condense
+knn	knn
+knn.cv	knn.cv
+knn1	knn1
+lvq1	lvq1
+lvq2	lvq2
+lvq3	lvq3
+lvqinit	lvqinit
+lvqtest	lvqtest
+multiedit	multiedit
+olvq1	olvq1
+plot.SOM	somgrid
+plot.somgrid	somgrid
+reduce.nn	reduce.nn
+SOM	SOM
+somgrid	somgrid
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/help/class.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/help/class.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/libs/class.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/libs/class.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/class/CITATION	(revision 2476)
@@ -0,0 +1,18 @@
+citHeader("To cite the class package in publications use:")
+
+citEntry(entry="Book",
+         title = "Modern Applied Statistics with S",
+         author = personList(as.person("W. N. Venables"), 
+                             as.person("B. D. Ripley")),
+	 publisher = "Springer",
+         edition = "Fourth",
+         address      = "New York",
+         year         = 2002,
+         note         = "ISBN 0-387-95457-0",
+         url          = "http://www.stats.ox.ac.uk/pub/MASS4",
+         
+         textVersion = 
+         paste("Venables, W. N. & Ripley, B. D. (2002)", 
+               "Modern Applied Statistics with S.",
+               "Fourth Edition. Springer, New York. ISBN 0-387-95457-0")
+)
\ No newline at end of file
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/DESCRIPTION	(revision 2476)
@@ -0,0 +1,24 @@
+Package: Rserve
+Version: 1.7-3
+Title: Binary R server
+Author: Simon Urbanek <Simon.Urbanek@r-project.org>
+Maintainer: Simon Urbanek <Simon.Urbanek@r-project.org>
+Depends: R (>= 1.5.0)
+Suggests: RSclient
+SystemRequirements: libR, GNU make
+Description: Rserve acts as a socket server (TCP/IP or local sockets) 
+	     which allows binary requests to be sent to R. Every
+	     connection has a separate workspace and working
+	     directory. Client-side implementations are available
+	     for popular languages such as C/C++ and Java, allowing
+	     any application to use facilities of R without the need of
+	     linking to R code. Rserve supports remote connection,
+	     user authentication and file transfer. A simple R client
+	     is included in this package as well.
+License: GPL-2 | file LICENSE
+URL: http://www.rforge.net/Rserve/
+NeedsCompilation: yes
+Repository: CRAN
+Date/Publication: 2013-08-21 23:35:21
+Built: R 3.3.0; x86_64-apple-darwin13.4.0; 2016-05-05 00:25:12 UTC; unix
+Archs: Rserve.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/html/00Index.html	(revision 2476)
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Binary R server</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Binary R server
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;Rserve&rsquo; version 1.7-3</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Rserv.html">Rserve</a></td>
+<td>Server providing R functionality to applications via TCP/IP or local unix sockets</td></tr>
+<tr><td style="width: 25%;"><a href="run.Rserve.html">run.Rserve</a></td>
+<td>Start Rserve within the current R process.</td></tr>
+<tr><td style="width: 25%;"><a href="self.html">self.ctrlEval</a></td>
+<td>Functions usable for R code run inside Rserve</td></tr>
+<tr><td style="width: 25%;"><a href="self.html">self.ctrlSource</a></td>
+<td>Functions usable for R code run inside Rserve</td></tr>
+<tr><td style="width: 25%;"><a href="self.html">self.oobMessage</a></td>
+<td>Functions usable for R code run inside Rserve</td></tr>
+<tr><td style="width: 25%;"><a href="self.html">self.oobSend</a></td>
+<td>Functions usable for R code run inside Rserve</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/INDEX	(revision 2476)
@@ -0,0 +1,2 @@
+Rserve                  Server providing R functionality to
+                        applications via TCP/IP
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/help/Rserve.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/help/Rserve.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/help/AnIndex	(revision 2476)
@@ -0,0 +1,6 @@
+Rserve	Rserv
+run.Rserve	run.Rserve
+self.ctrlEval	self
+self.ctrlSource	self
+self.oobMessage	self
+self.oobSend	self
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/help/Rserve.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/help/Rserve.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/libs/Rserve.dbg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/libs/Rserve.dbg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/libs/Rserve.so.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/libs/Rserve.so.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/libs/Rserve.so.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.Rserve.so</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/libs/Rserve.so.dSYM/Contents/Resources/DWARF/Rserve.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/libs/Rserve.so.dSYM/Contents/Resources/DWARF/Rserve.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/libs/Rserve
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/libs/Rserve
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/libs/Rserve.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/libs/Rserve.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/NAMESPACE	(revision 2476)
@@ -0,0 +1,2 @@
+useDynLib(Rserve, run_Rserve)
+export(Rserve, self.ctrlEval, self.ctrlSource, self.oobSend, self.oobMessage, run.Rserve)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/NEWS	(revision 2476)
@@ -0,0 +1,870 @@
+ NEWS/Changelog for Rserve
+---------------------------
+
+1.7-3	2013-08-21
+    o	the handling of server configuration modes has been
+	inconsistent for some combinations (mostly affected were
+	combinations involving WebSockets upgrade and OC mode on
+	HTTP/WS servers). Also the websockets.qap.oc configuration
+	option has been misspelled.
+
+    o	HTTPS->WSS upgrade is now supported
+
+    o	mkdist -i installs the built package, use -c for check
+
+    o	Windows compatibility has been restored thanks to
+	David Champagne from Revolution Analytics
+
+
+1.7-2	2013-08-12
+    o	when uid/gid is changed, create a new tempdir() and set its
+	permissions as well as the wokring directory's owner to match.
+
+    o	bugfix: if the first command is not any of the eval family
+	the Rserve may respond with an additional, spurious error
+	response
+
+    o	deamonized server would record incorrect pid when pid.file
+	is used (i#5). The pid is now removed on clean sutdown.
+
+    o	added support for keep.alive configuration option - it is
+	global to all servers and if enabled the client sockets are
+	instructed to keep the connection alive by periodic messages.
+
+
+1.7-1	2013-07-02
+    o	remove a spurious character that prevented compilation on Suns
+
+    o	add OPENSSL_INCLUDES precious variable that can be used to
+	point to non-standard location of OpenSSL headers
+
+    o	check the usability of OpenSSL headers before enabling TLS
+	support
+
+    o	added the choice of GPLv2 or GPLv2 with OpenSSL linking exception
+
+
+1.7-0
+
+   ***	---- HEADLINE NEWS ----
+   ***	new protocols: HTTP, HTTPS, WebSockets and TLS/QAP
+   ***	added protocol switching (from QAP to TLS/QAP) via CMD_switch
+   ***	The R client was moved to RSclient package
+   ***	New in-session server support with run.Rserve()
+   ***	Out-of-band messages via self.oobSend()
+   ***  user-based uid/gid switch, MD5/SHA1 stored passwords
+   ***  preliminary IPv6 support; RSA secure authentication
+   ***  .Rserve.done global env hook for optiopnal cleanup
+   ***  auth.function setting to allow custom authentication
+   ***  Object-capability mode for hardened, secure services
+   ***	---- END - see below for details ----
+
+    o	This is the first release in the new 1.x Rserve series. Many
+	of the Rserve internals have been re-written or cleaned
+	up. The original protocol remains the same (so all clients
+	that worked with Rserve 0.6 will continue to work), but the
+	suite of available protocols has been extended (see below).
+
+    o	added support for multiple protocols in Rserve:
+
+        ** QAP **
+	this is the original Rserve protocol used in Rserve 0.x
+	series. It works over TCP/IP and unix sockets. It is
+	enabled by default and can be disabled using
+	"qap disable" configuration directive.
+
+	** HTTP **
+	this is very similar to the built-in R http server except that
+	on unix it forks on connection so it allows parallel separate,
+	persistent connections. It requires a worker function
+	.http.request to be defined in the session which will handle
+	incoming requests. This allows the use of facilities like
+	FastRWeb without an external webserver. This protocol is
+	disabled by default and can be enabled by setting "http.port"
+	configuration directive to the desired port to listen to.
+	(Also see TLS support below for https server).
+
+	The http.raw.body configuration option (default is false which
+	results in the same behavior as Rhttpd) can be used to force
+	passing body in raw form to the handler (useful for the
+	FastRWeb handler which does its own parsing).
+
+	** WebSockets **
+	this protocol is used by HTML5 web browsers for direct access
+	to R with a persistent connection. This allows implementation
+	of websites that have a dedicated R session (and could be used
+	as an R console). There are two subprotocols supported by
+	Rserve:
+
+	  -- WebSocket(*, "QAP") --
+	  this is a tunnel for the original QAP protocol through
+	  WebSockets. It requires a browser capable of binary
+	  WebSockets protocol (version 01 or higher). It allows very
+	  efficient data transfer, typically by loading ArrayBuffers
+	  directly into GPU or CPU.
+	  It is disabled by default and can be enabled using
+	  "websockets.qap enable" configuration directive.
+	  (If no subprotocol is specified, QAP is assumed)
+
+	  -- WebSocket(*, "text") --
+	  this is a very simplistic protocol using plain text frames
+	  to send input to R and output from R directly as text. It
+	  acts essentially as an R console. This protocol works with
+	  any WebSockets implementation including version hybi-00 and
+	  hixie-75/76
+	  It is disabled by default and can be enabled using
+	  "websockets.text enable" configuration directive.
+
+	  NOTE: The textual WebSockets protocol does NOT provide any
+	  authentication mechanism, so use with extreme care as you
+	  are essentially giving any user with a web browser access to
+	  R and thus to the shell.
+	  
+	In addition to enabling each or both subprotocols, the port on
+	which the WebSockets server should listen must be specified in
+	the configuration using "websockets.port" directive, for
+	example "websockets.port 8080". Alternatively, the HTTP server
+	can be enabled to allow connection upgrade to WebSockets on
+	the same port with "http.upgrade.websockets enable"
+
+	NOTE: remember that the default in Rserve is to disallow
+	remote connections, so you may need to use "remote enable" in
+	order to use WebSockets or HTTP in practice, since the point
+	is to serve remote machines. Typically, if both QAP and either
+	HTTP or WebSockets are used, it is recommended to use QAP on a
+	local unix socket for better access control.
+
+    o	Rserve now supports SSL/TLS connections on QAP, HTTP and WS
+	protocols. The TLS key/CA entries are common for all
+	protocols. The relevant new configuration directives are:
+
+	  tls.key <private key PEM file>
+	  tls.cert <server certificate PEM file>
+	  tls.ca <CA PEM file issuing the above certificate>
+
+	SSL/TLS can be used in several ways: with separate port for
+	TLS connections or by switching protocol form a regular QAP
+	connection using CMD_switch with "TLS" as argument. The latter
+	can be enabled using
+
+	  switch.qap.tls enable
+
+	Enabled switching is advertized by Rserve with the presence
+	of a "TLS" entry in the ID string. Keys and other TLS entries
+	must be initialized in order for TLS to be enabled.
+
+	Dedicated TLS servers can be enabled by specifying the port
+	for the corresponding protocol:
+
+ 	  qap.tls.port <port>        - for Rserve/QAP
+	  http.tls.port <port>       - for HTTPS
+	  websockets.tls.port <port> - for WebSockets
+
+	(there are synonyms "https.port" for "http.tls.port" and
+	 "tls.port" for "qap.tls.port", however, the *.tls.port
+	 versions are preferred for clarity)
+
+	The use of TLS protocols is encouraged where sensitive data
+	is transmitted or when requiring secure authentication. For
+	QAP protocol, using TCL/QAP with SHA1 passwords (also new, see
+	below) is the currently recommended way where authorization is
+	required. The only drawback is increased CPU utilization
+	during transfers casued by the encryption and the fact that
+	TLS-enabled clients must be used. See also RSA secure
+	authentication (CMD_keyReq + CMD_secLogin) for a different
+	method if only the authentication step is to be encrypted.
+
+	When enabling TLS tls.key and tls.cert are mandatory, tls.ca
+	is optional to establish CA chain of trust (whether this is
+	needed depends on the client and the certificate). To generate
+	a key and self-signed certificate, you can use something like
+	
+	  openssl genrsa -out server.key 2048
+	  openssl req -new -key server.key -out server.csr
+	  openssl x509 -req -days 365 -in server.csr \
+                  -signkey server.key -out server.crt
+
+	NOTE: TLS services are started **in addition** to any other
+	servers, i.e., if you want to enable TLS/QAP only, you have to
+	set tls.qap.port but also add "qap disable" to disable the
+	plain Rserve access.
+
+    o	QAP servers (classic Rserve QAP, QAP/TLS and WebSocket/QAP)
+	support object-capability (OC) mode in which all Rserve
+	commands are disabled except for CMD_OCcall. All messages
+	including the initial handshake are always QAP and the initial
+	message defines capabilities (here opaque references to
+	closures) that can be called. This mode can be enabled using
+
+	  qap.oc enable            ## for Rserve QAP and QAP/TLS
+	  websockets.qap.oc enable ## for WebSockets/QAP
+	
+	In this mode the configuration *must* define a function
+	oc.init (typically using eval or source configuration
+	directives) which has to supply OC references that can be used
+	in calls. If the evaluation of oc.init() fails, the connection
+	is closed immediately. The use of invalid OC references or any
+	other commands other than CMD_OCcall results in immediate
+	connection termination. This allows creation of hardened,
+	secure services that can disallow arbitrary code execution.
+
+	NOTE: this mode is inherenty incompatible with all classic
+	Rserve clients. The first four bytes of the initial packet are
+	"RsOC" instead of "Rsrv"
+
+    o	Rserve can now be started from within an existing R session
+	using run.Rserve() command. This allows the user to prepare a
+	session "by hand", run Rserve from within that session and go
+	back to the session (by shutting down the server or sending an
+	interrupt). This allows the use of Rserve even without the
+	presence of libR.
+
+    o	Rserve now supports out-of-band (OOB) messages. Those can be
+	sent using the self.oobSend() [one-way] and self.oobMessage()
+	[roundtrip] functions from within code that is evaluated in
+	Rserve child instances. OOB messages are not used by Rserve
+	itself but offer asynchronous notification to clients that
+	support it (one typical use are WS-QAP1 tunnels	to web
+	browsers that allow status updates as R code is evaluated).
+
+    o	Rserve accepts additional command line arguments:
+	--RS-source <file>   (same as "source <file>" in cfg file)
+	--RS-enable-remote   (same as "remote enable" in cfg file)
+	--RS-enable-control  (same as "control enable" in cfg file)
+
+    o	The Rserve package no longer includes the R client. It has
+	been moved to a separate package "RSclient" so that it can be
+	used on machines separate from the server.
+
+    o	There was a bug in QAP storage estimation affecting pairlists,
+	possibly resulting in buffer overflows. This should be fixed
+	and an error message will be printed when such overflows are
+	detected in the future (which hopefully won't happen).
+
+    o	Bugfix: command line parsing would skip over some arguments
+
+    o	Passwords file can contain MD5 or SHA1 hash of a password
+	instead of the plaintext password for non-crypt
+	authentication. In that case the hash must be lowercase	hex
+	representation with preceding $ sign, so for example user
+	"foo" with password "bar" would have an entry
+	foo $62cdb7020ff920e5aa642c3d4066950dd1f01f4d
+	You can use
+	  echo -n 'password' | openssl sha1
+  	to obtain the SHA1 hash of a password (openssl md5 for MD5
+	hash - MD5 is probably more common but less secure than
+	SHA1). This feature makes sure that passwords are not stored
+	in plain text and thus are safe from local attacks.
+
+    o	Rserve now has the ability to change uid/gid according to the
+	user that has been authenticated. The following settings
+	concern this feature (unix-only):
+
+	   auto.uid {enable|disable} [disable]
+	   auto.gid {enable}disable} [disable]
+	   default.uid <uid> [none]
+	   default.gid <gid> [none]
+
+	The auto.uid/gid directives enable setuid/setgid based on
+	user's uid/gid. In case no uid/gid is specified with the
+	username, the default.uid/gid settings will be used. If there
+	is no uid/gid in the username and no defaults are specified,
+	the user's authentication will fail. User's uid/gid can be
+	specified in the passwords file by appending /uid,gid to the
+	username. If gid is not specified, uid will be used for both
+	uid and gid. So for example user "foo" (from the above MD5
+	example) with uid=501 would have an entry on the passwords
+	file:
+
+	   foo/501 $37b51d194a7513e45b56f6524f2d51f2
+
+	For this to work, Rserve must be started as root. However,
+	with auto.uid enabled it is safe to do so since Rserve will
+	prevent any R access until authenticated. You should, however,
+	use a client capable of secure RSA authentication or use secure
+	connection such as QAP/TLS as to not send password in
+	cleartext over the wire.
+
+    o	Rserve can now be run in a mode where each connection has a
+	different uid and/or gid such that separate client instances
+	are isolated. This allows more restricted setup in cases where
+	instances may not be trusted and need to be sandboxed. The
+	following configuration directives are associated with this
+	functionality:
+
+	   random.uid {enable|disable} [disable]
+	   random.gui {enable|disable} [disable]
+	   random.uid.range {<from>..<to>} [32768..65540]
+
+	If random.uid is enabled and random.gid disable then only the
+	uid of the process is changed. If both are enabled then the
+	gid is set to match the value of the uid. random.gid cannot be
+	enabled without random.uid.
+
+	To support sandboxing, the permissions on the working
+	directory can be specified using
+
+	   workdir.mode <mode>
+
+    o	If any kind of client-process uid switching is enabled in the
+	configuration, the permissions on the working directory will
+	match the uid of the process. Also the working directories are
+	now named by the process ID to facilitate cleanup.
+
+    o	Rserve now supports secure authentication even outside of
+	SSL/TLS. There are two new commands that can be used by the
+	client:
+	
+	CMD_keyReq   - requests an authentication key from the server
+	               that will be used to perform a secure
+	               login. The kind of the requested key is
+	               specified as a parameter. Currently, only
+	               "rsa-authkey" is supported which returns server
+	               authentication key (authkey) and a RSA public
+	               key which must be used to encode the authkey
+	               and the authentication information (see below).
+		       The RSA key can be compared on the client side
+	               to ensure the authenticity of the server.
+
+	CMD_secLogin - secure login. It consists of an encrypted data
+	               stream that will authenticate the user. In the
+	               case of the "rsa-authkey" method, the stream
+	               consists of the authkey and the login +
+	               password, all of which must be encrypted using
+	               server's RSA key.
+
+	The RSA key on the server (Rserve) side is specified using
+
+	   rsa.key <RSA private key file>
+
+	configuration file directive. The file is expected to be in
+	PEM format. You can generate such file, e.g., with:
+
+	   openssl genrsa -out server.key 4096
+
+	where 4096 is the key size in bits. A public key can be
+	extracted from the private key using
+
+	   openssl rsa -pubout -in server.key -out server_pub.key
+
+	The clients can pre-share the public key by other means to
+	compare it to the key received from the server as to verify
+	its authenticity. This will prevent them from sending the
+	authentication information to rogue servers.
+
+	NOTE: if the rsa.key directive is missing, Rserve will
+	generate a key on the fly when asked for RSA authentication -
+	although this allows encrypted transmission and thus is safe
+	from sniffing, it is not safe from man-in-the-middle attacks
+	where a rogue server intercepts the request and sends its own
+	public key. Therefore the use of the rsa.key directive is
+	highly recommended.
+
+	The RSA authentication enables the client to a) check the
+	authenticity of the server (by comparing the RSA public key)
+	and b) send authentication information encrypted. This method
+	is highly recommended in cases where a full TLS/SSL encryption
+	of the entire connection would be too expensive (i.e. in cases
+	where the data is large and the security of the transported
+	data is not crucial).
+
+    o	Rserve has a preliminary IPv6 support. Rserve must be
+    	installed with --enable-ipv6 configure flag to enable it in
+	the Rserve build. In order to start all servers on IPv6 add
+
+	   ipv6 enable
+
+	to the configuration file. The option is global, i.e. once
+	enabled it applies to all servers that support it. Note that
+	not all features work with IPv6 yet - detaching sessions
+	(they will use IPv4 for re-attach) and remote client filtering
+	only work with IPv4 at this point.
+
+    o	Rserve now binds only to the loopback interface in
+	"remote disable" mode. This is safer and prevents remote DoS
+	attacks. Previously, Rserve would bind on all interfaces and
+	check the peer IP address. If desired, you can replicate the
+	old behavior by adding
+
+	   remote enable
+	   allow 127.0.0.1
+
+	to the configuration (if you don't know the difference then
+	you don't need this -- if you actually need this, then you
+	probably want to add more "allow" entries for the machine's
+	other interfaces as well).
+
+    o	If a function .Rserve.done() is defined in the global
+	environment, it will be run after a clean connection
+	shutdown. This allows custom code to be run when a client
+	connection is closed.
+
+    o	If a function .Rserve.served() is defined in the global
+	environment of the server, it will be run after a client
+	connection has been served. For forked servers this is just
+	after the fork(), for co-operative servers this is after the
+	client conenction has been closed. It is guaranteed that no
+	other client is served before the call so it can be used to
+	manage resources that are unsafe to share with forked
+	processes (e.g. sockets etc.).
+
+    o	The server and client process can be tagged with extra
+	information in argv[0] so it is possible to distinguish the
+	server and children. This behavior can be enabled using
+
+	    tag.argv enable
+
+	Note, however, that this not always possible and it will have
+	impact on programs that use argv[0] such as killall.
+
+    o	Added configuration option pid.file and command-line option
+	--RS-pidfile which instructs Rserve to write its process id
+	(pid) into that file at startup.
+
+    o	Added configuration directives http.user, https.user and
+	websockets.user which take a username and perform
+	setuid/setgid/initgroups immediately after forking.
+	This minimizes the amount of code that is run with
+	elevated privileges in cases where user switching is desired.
+
+    o	Added configuration directive
+
+	   daemon disable
+
+	which can be used to prevent Rserve from daemonizing. It has
+	effect only in builds of Rserve that support daemonization.
+	Note that -DNODAEMON build flag disables daemonization
+	entirely and can be used in any Rserve version.
+
+    o	All commands based on eval now also accept DT_SEXP in addition
+	to DT_STRING. In such case the parse step is skipped and the
+	expression is evaluated directly. The intended use of this
+	functionality is to evaluate language constructs and thus
+	allow calls with both reference and inlined arguments.
+
+    o	QAP decoding is slightly more efficient and avoids protection
+	cascades. QAP_decode() has now only one argument and it	is
+	guaranteed to not increase the protection stack when returning
+	(which implies that it is the responsibility of the caller to
+	protect the result if needed).
+
+    o	Both QAP encoding and decoding now use native copy operations
+	on little-endian machines which can increase the speed
+	considerably when the compiler cannot do this optimization
+	on its own (most commoly used compilers don't).
+
+    o	Assigning logical NAs now uses the proper NA_LOGICAL value
+	that is also recognized by R. (PR#276)
+
+    o	Forked child processes will now close all server sockets so
+	that any server can be restarted without closing existing
+	children.
+
+    o	Signal handling has been streamlined: the server process
+	captures HUP, TERM and INT which will lead to clean
+	shutdown. Child processes restore signal handlers back to R so
+	that regular R signal handling rules apply. Note that
+	interrupt during eval will result in RESP_ERR with code 127
+	even if try() is used.
+
+
+--- In order to support new ideas a major re-organization of Rserve ---
+--- has been started - almost 10 years after the first release.     ---
+--- It is time to look ahead again with a new major version. The    ---
+--- protocol will remain compatible so 1.x series can be used to    ---
+--- replace the previous 0.x series                                 ---
+
+
+0.6-8	2012-02-20
+    o	added RSserverEval() and RSserverSource() control commands
+	in the R client as well as ctrl parameter to RSshutdown().
+
+    o	added new facility that allows R scripts running in Rserve to
+	issue control commands if allowed. This feature must be
+	enabled in the Rserve configuration file using
+
+	r-control enable
+
+	This will make self.ctrlEval() and self.ctrlSource() functions
+	available to code that is running within the Rserve
+	instance. It is also possible to use this feature without
+	explicitly loading the Rserve package via
+	.Call("Rserve_ctrlEval", paste(text, collapse='\n'))
+	.Call("Rserve_ctrlSource", as.character(file))
+	although this may change in the future.
+
+0.6-7	2012-01-17
+    o   fix processing of login information
+    	**IMPORTANT**: this fixes a serious security hole in the 
+	remote login mechanism! If you rely on authentication,
+	please make sure you update your Rserve immediately!
+	(Thanks to Daniel Faber for reporting)
+
+    o	add a namespace to make R 2.14+ happy
+
+    o	work around broken readBin() in R 2.14.0 that errors
+	on unsigned integers (affects R client only)
+
+0.6-6	2011-12-10
+    o	fix a bug that can cause heap corruption due to incorrect
+	addressing in padding of symbols. Unless extremely long symbol
+	names are used it is unlikely to have a real effect in
+	practice, but in theory it could be used to zero targetted
+	parts of the heap. Thanks to Ralph Heinkel for reporting.
+
+    o	fix Rserve() call on Windows with quote=FALSE and more than
+	one argument.
+
+    o	clarify that sisocks.h is under LGPL 2.1 as well as the other
+	headers used by clients.
+
+    o	add support for plain S4 objects (S4SEXP) in assignments
+	(Note: derived S4 objects - those using other native SEXP type
+	as a base - cannot be supported properly, becasue there is no
+	way to distinguish them from S3 objects!)
+
+    o	Unsupported types in CMD_assign will no longer crash R.
+	The resulting object is always NULL and an error is printed on
+	the R side.
+
+
+0.6-5	2011-06-21
+    o	use new install.libs.R custom installation script in R 2.13.1
+	to install binaries
+
+    o	install clients by default on Windows as well
+
+    o	multi-arch binaries are no longer installed with the arch suffix
+	in the package root. The canonical place is libs$(R_ARCH) instead.
+	For now Rserve.exe/Rserve_d.exe are still installed in the root
+	but they will be also removed in the future as they are not
+	multi-arch safe.
+
+
+0.6-4	2011-05-19
+    o	make all buffers capable of using 64-bit sizes. This means
+	that clients can use more that 4Gb of data on 64-bit platforms
+	when communicating with Rserve, provided the buffer limits are
+	either disabled or configured to be high enough. Note that this
+	does not change	the limitations in R with respect to vector
+	lengths so you still can only use up to 2^31-1 elements.
+   
+    o	bug fix: contrary to the documentation scalar logicals were sent
+	in the old XT_BOOL format instead of XT_ARRAY_BOOL
+
+    o	work around several issues introduced in R 2.13.0 for Windows
+
+	Rserve() now also allows arguments to be passed to system() for
+	more fine-grained control of the environment, mostly to work
+	around bugs and incompatible changes to system() on Windows
+	in R 2.13.0 (commonly used options are invisible=FALSE to get
+	back to a more reasonable pre-2.13.0 behavior and wait=TRUE if
+	using R 2.13.0 that has broken wait=FALSE support).
+
+    o	In Rserve() startup wrapper, args are now quoted automatically
+	if quote=TRUE is set. For backward compatilility args are not
+	quoted by default if they consist of just one string.
+
+
+0.6-3	2011-01-17
+    o	bug fix: the child process could get stuck in the server loop
+	after some abnormal return from the child connection code
+	Thanks to David Richardson for reporting.
+
+    o	set R_ARCH automatically on Windows if a multi-arch R is
+	detected (such as CRAN binaries since R 2.12.0)
+
+    o	add R_ARCH support in Rserve() on Windows to locate the
+	proper binary
+
+    o	bug fix: C++ client did not handle new-style lists (introduced
+	in Rserve 0.5) properly. Thanks to Carl Martin Grewe for
+	reporting.
+
+
+0.6-2	2010-09-02
+    o	add support for NAs in character vectors by using a special
+	"\xff" string. Any string beginning with '\xff' is
+	prepended by additional '\xff' to remove ambiuguity and clients
+	should remove leading '\xff' accordingly.
+	(Note that UTF-8 encoded strings never contain '\xff' so
+	in most uses it never occurs).
+
+	The Java client has been updated accordingly and represents
+	NA strings with null.
+
+    o	add a new config file option "interactive" that allows to run
+	Rserve in interactive or non-interactive mode across platforms.
+	Previously Windows ran in non-interactive mode and unix in
+	interactive mode. Non-interactive mode is useful if you want
+	to prevent R from soliciting user input, but it requires error
+	option to be set if you don't want to quit R on all errors
+	(i.e., something like options(error=function() NULL) will do)
+
+	Note: on unix the interactivity flag can only be set *after* R
+	initialization (due to limitation in R) so you still may have
+	to pass flags like --no-save in order to appease R.
+
+    o	more Windows fixes - Rserve uses R's own initialization in
+	recent R versions. This also fixes issues with Win64 and more
+	recent toolchains.
+	Note that both Widnows and unix now behave consistently with
+	respect to interactive mode - the default is now interactive
+	for both platforms but can be changed in the config file.
+
+
+0.6-1	2010-05-24
+    o	add a safety margin to the send buffer to avoid crashes when
+	size estimates are off (e.g., due to re-coding)
+
+    o	added a very primitive PHP client
+
+    o	Win64 fixes by Brian Ripley
+
+    o	added new configuration options:
+	su {now|server|client} - switches user either immediately
+	as the config file is loaded ("now", default and always the
+	behavior of Rserve before 0.6-1), when the server is ready
+	("server") or when a client is spawned ("client"). The
+	latter is useful to restrict clients from sending signals
+	to the server process.
+
+	uid, gid config options are interpreted accordingly to
+	the su value.
+
+	cachepwd - {no|yes|indefinitely} - allows Rserve to cache
+	the password file. "no" = read it at each authorization
+	(default and behavior before 0.6-1), "yes" = read it when
+	a client is spawned before su, "indefinitely" = read it
+	just after the config file (most efficient but changes
+	are only active after re-start). "yes" has only effect
+	in unix and can be used to restrict permissions on the
+	password file such that client code has no access to it
+	(do does "indefinitely" but can be used anywhere).
+
+
+0.6-0	2009-10-27
+    o	added support for control commands CMD_ctrlEval,
+	CMD_ctrlSource and CMD_ctrlShutdown. Those commands provide
+	control over the server process. The side-efect of eval and
+	source are then available to all future connections.
+
+	Control commands are only available if they are enabled, e.g.,
+	with the config file entry "control enable". In addition if
+	authorization is required or the passwords file is set only
+	designated users will have control access (see next point).
+
+	Note that enabling control commands will make Rserve use at
+	least one file descriptor per active child process, so you may
+	want to adjust the maximum number of file descriptor in your
+	system if you expect hundreds of concurrent clients.
+
+    o	The passwords file format has been enhanced to give
+	finer-granularity control over the user authorization.
+
+	Only users with "@" prefix can issue control commands. The
+	prefix is not part of the user name for authentication
+	purposes.
+
+	In addition, if the password file contains an entry
+	starting with "*" it will be interpreted as blank
+	authorization, i.e. any username/pwd will authenticate. This
+	may be useful in conjunction with control prefix, e.g., the
+	following file would give blank authorization to all users but
+	only the user "joe" will be able to use control commands:
+
+	@joe foobar
+	*
+
+    o	Windows build cleanup (thanks to Brian Ripley)
+
+    o	fixed decoding of XT_RAW (it advanced too far), this affected
+	the use of XT_RAW as non-last element only (thanks to Saptarshi
+	Guha for reporting)
+
+    o	don't advertize ARuc if not supported (this bug only affected
+	systems without crypt support with plaintext enabled and
+	required authorization)
+
+    o	add assign support for logical vectors
+
+
+0.5-3	2009-01-25
+    o	fix SET_VECTOR_ELT/SET_STRING_ELT mismatches
+
+    o	set object flag when decoding objects that have
+	a "class" attribute (fixes issues with S3 objects that
+	were passed from the client to the server).
+
+    o	set S4 bit for pure S4 objects (S4SEXP). No other S4
+	objects are supported because there is no way to tell
+	that an assembled object is really an S4 object
+
+    o	added string encoding support (where R supports it)
+	The string encoding can be set in the configuration file
+	(directive "encoding"), on the command line with --RS-encoding
+	or within a session by the client command CMD_setEncoding.
+
+	This means that strings are converted to the given encoding
+	before being sent to the client and also all strings from the
+	client are assumed to come from the given encoding.
+	(Previously the strings were always passed as-is with no
+	conversion). The currently supported encodings are "native"
+	(same as the server session locale), "utf8" and	"latin1". The
+	server default is currently "native" for compatibility with
+	previous versions (but may change to "utf8" in the future, so
+	explicit use of encoding in the config file is advised).
+
+	If a server is used mainly by Java clients, it is advisable to
+	set the server encoding to "utf8" since that it the only
+	encoding supported by Java clients.
+
+	For efficieny it is still advisable to run Rserve in the same
+	locale as the majority of clients to minimize the necessary
+	conversions. With diverse clients UTF-8 is the most versatile
+	encoding for the server to run in while it can still serve
+	latin1 clients as well.
+
+
+0.5-2	2008-10-17
+    o	fix a bug in CMD_readFile and CMD_setBufferSize that
+	resulted in invalid buffer sizes (one of the ways to
+	trigger the bug was to attempt to read a small number of
+	bytes with readFile). Thanks to H. Rehauer for reporting.
+
+    o	ignore attributes if they are not in a LISTSXP - there seem
+	to be other uses of the ATTRIB entry in conjunction with
+	character hashes in recent R versions. (BR #76)
+
+    o	adapt C++ client to changes in 0.5 (at least to the point
+	where the demo1 code works)
+
+    o	add support for XT_VECTOR_EXP in assignments
+
+    o	improve protection for vectors
+
+    o	report "remote" setting in --RS-settings
+
+    o	updates in the REngine Java client, added documentation
+
+
+0.5-1	2008-07-22
+    o	fix build issue with R 2.7.x on Windows
+
+    o	mergefat now works properly and uses cp if there is no lipo
+	(this fixes multi-arch issues on Mac OS X and makes sure that
+	Rserve/Rserve.dbg are installed even on non-Mac systems)
+
+
+0.5-0	2008-07-21
+    o	added CMD_serEval and CMD_serAssign which are highly efficient
+	when talking to R clients as they don't need any intermediate
+	buffer. The corresponding R client functions RSeval and
+	RSassign have been re-written to use this new API.
+
+    o	deprecate scalar types in the protocol
+
+    o	add more efficient storage for dotted-pair lists
+	and symbol names
+
+    o	add support for complex numbers
+
+    o	new Java client: REngine
+	it is more flexible than JRclient and it can be used with
+	other Java/R engines such as JRI. Also it has a much more
+	clean API and better exeption handling.
+	- allow NaNs to be passed in raw form to R, i.e. double
+	  NAs can be created using
+	  Double.longBitsToDouble(0x7ff00000000007a2L)
+	  (nice methods for this should follow)
+
+    o	C++ client was moved to src/client/cxx
+
+JRclient:
+    o	change the representation of lists to generic
+	named vectors (class RList)
+
+    o	change the ways attributes are accessed
+
+
+0.4-7	2007-01-14
+    o	relax DLL versions checking on Windows
+
+    o	added more sophisticated implementation of RSassign
+	in R client to support larger data. Nevertheless, due to
+	limitations in R, objects must be serializable to
+	less than 8MB to be assignable via RSassign.
+
+    o	added more robust error handling in the R client
+
+    o	fixed compilation on systems with custom include dir
+	(such as Debian)
+
+    o	JRclient is now part of the Rserve package.
+	See clients.txt for details.
+	It is not compiled by default (but installed when
+	--with-client is specified), because we cannot assume the
+	existence of a Java compiler.
+
+
+0.4-6	2006-11-30
+    o	fixed bug in RSeval when handling large objects
+
+    o	minor fix in RSassign
+
+    o	add an endianness hack for Windows in case config.h is not
+	included properly
+
+
+0.4-5	2006-11-29
+    o	added --with-server option (by default enabled). When disabled,
+	the server itself is not built. When enabled, R must provide R
+	shared library, i.e. it must have been compiled with
+	--enable-R-shlib.
+
+    o	added --with-client option (by default disabled). When
+	enabled, the C/C++ client is built and installed in the
+	package. It will be copied in the "client" directory of the
+	package and contains all files necessary for building a
+	client application.
+
+	This option has no effect on the R client which is always
+	built and installed.
+
+    o	Windows version of Rserve now builds and installs both debug
+	(Rserve_d.exe) and regular (Rserve.exe) version of Rserve. In
+	addition, the Rserve function can now be used to launch Rserve
+	even on Windows.
+
+    o	endianness detection now prefers information from the compiler
+	macros thus allowing cross-compilation. Use -D_BIG_ENDIAN_ or
+	-D_LITTLE_ENDIAN_ to override it if necessary.
+
+    o	allows universal build on Mac OS X
+
+    o	adapt to R_ParseVector interface change in R-devel
+
+
+0.4-4	2006-11-15
+    o	first release on CRAN
+
+    o	added support for RAW type (both in and out)
+
+    o	added rudimentary client support (thanks to David Reiss for
+	his contributions) and documentation
+
+
+Previous major releases:
+
+0.4	2005-08-31
+    *	added support for sessions
+
+0.3	2003-10-07
+    *	new format for boolean arrays
+	last version: 0.3-18 (2005-08-28)
+
+0.2	2003-08-21
+    *	support for large objects
+
+0.1 	2002-07-06
+    *	first release
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/R/Rserve.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/R/Rserve.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/R/Rserve
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/R/Rserve	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/R/Rserve	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/R/Rserve.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/R/Rserve.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/java/Rserve.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/java/Rserve.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/java/REngine.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/java/REngine.jar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/LICENSE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/LICENSE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Rserve/LICENSE	(revision 2476)
@@ -0,0 +1,316 @@
+    [Summary: GPL-2 with OpenSSL linking exception]
+
+    Rserve
+    Copyright (C) 2002-2013 Simon Urbanek
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; version 2 of the License.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+    In addition, as a special exception, the copyright holders give
+    permission to link the code of portions of this program with the
+    OpenSSL project's "OpenSSL" library (or with modified versions of
+    it that use the same license as the "OpenSSL" library - see
+    http://www.openssl.org/), and distribute linked combinations
+    including the two.
+
+    You must obey the GNU General Public License in all respects
+    for all of the code used other than OpenSSL.  If you modify
+    file(s) with this exception, you may extend this exception to your
+    version of the file(s), but you are not obligated to do so.  If you
+    do not wish to do so, delete this exception statement from your
+    version.  If you delete this exception statement from all source
+    files in the program, then also delete it here.
+
+
+Full text of GPL-2 follows:
+
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/flashClust/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/flashClust/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/flashClust/DESCRIPTION	(revision 2476)
@@ -0,0 +1,16 @@
+Package: flashClust
+Version: 1.01-2
+Date: 2012-08-21
+Title: Implementation of optimal hierarchical clustering
+Author: code by Fionn Murtagh and R development team, modifications and
+        packaging by Peter Langfelder
+Maintainer: Peter Langfelder <Peter.Langfelder@gmail.com>
+Depends: R (>= 2.3.0)
+ZipData: no
+License: GPL (>= 2)
+Description: Fast implementation of hierarchical clustering
+Packaged: 2012-08-21 17:18:30 UTC; plangfelder
+Repository: CRAN
+Date/Publication: 2012-08-21 18:23:43
+Built: R 3.3.0; x86_64-apple-darwin13.4.0; 2016-05-04 17:28:36 UTC; unix
+Archs: flashClust.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/flashClust/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/flashClust/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/flashClust/INDEX	(revision 2476)
@@ -0,0 +1 @@
+flashClust              Faster alternative to hclust
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/flashClust/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/flashClust/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/flashClust/CITATION	(revision 2476)
@@ -0,0 +1,20 @@
+citHeader("To cite flashClust in publications use:")
+
+citEntry(entry = "Article",
+  title        = "Fast {R} Functions for Robust Correlations and Hierarchical Clustering",
+  author       = personList(as.person("Peter Langfelder"),
+                   as.person("Steve Horvath")),
+  journal      = "Journal of Statistical Software",
+  year         = "2012",
+  volume       = "46",
+  number       = "11",
+  pages        = "1--17",
+  url          = "http://www.jstatsoft.org/v46/i11/",
+
+  textVersion  =
+  paste("Peter Langfelder, Steve Horvath (2012).",
+        "Fast R Functions for Robust Correlations and Hierarchical Clustering.",
+        "Journal of Statistical Software, 46(11), 1-17.",
+        "URL http://www.jstatsoft.org/v46/i11/.")
+)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/flashClust/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/flashClust/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/flashClust/NAMESPACE	(revision 2476)
@@ -0,0 +1,3 @@
+useDynLib(flashClust)
+
+exportPattern("^[^\\.]")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/NAMESPACE	(revision 2476)
@@ -0,0 +1,4 @@
+export(cmpfun,cmpfile,loadcmp,compile,disassemble)
+export(enableJIT,compilePKGS)
+export(getCompilerOption,setCompilerOptions)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/R/compiler.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/R/compiler.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/R/compiler.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/R/compiler.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/R/compiler
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/R/compiler	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/R/compiler	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/loop.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/loop.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/loop.R	(revision 2476)
@@ -0,0 +1,26 @@
+library(compiler)
+
+f <- function(x) x
+
+g <- function(x) repeat if (x) f(return(1)) else return(2)
+gc <- cmpfun(g)
+stopifnot(identical(g(TRUE), gc(TRUE)))
+stopifnot(identical(g(FALSE), gc(FALSE)))
+
+h <- function(x) { repeat if (x) f(return(1)) else break; 2 }
+hc <- cmpfun(h)
+stopifnot(identical(h(TRUE), hc(TRUE)))
+stopifnot(identical(h(FALSE), hc(FALSE)))
+
+k <- function(x) { repeat if (x) return(1) else f(break); 2 }
+kc <- cmpfun(k)
+stopifnot(identical(k(TRUE), kc(TRUE)))
+stopifnot(identical(k(FALSE), kc(FALSE)))
+
+## **** need more variations on this.
+
+## this would give an error prior to fixing a binding cache bug
+f <- function(x) { for (y in x) { z <- y; g(break) } ; z }
+g <- function(x) x
+cmpfun(f)(c(1,2,3))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/switch.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/switch.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/switch.R	(revision 2476)
@@ -0,0 +1,98 @@
+library(compiler)
+
+ev <- function(expr)
+    tryCatch(withVisible(eval(expr, parent.frame(), baseenv())),
+             error = function(e) conditionMessage(e))
+
+f <- function(x) switch(x, x = 1, y = , z = 3, , w =, 6, v = )
+fc <- cmpfun(f)
+
+stopifnot(identical(ev(quote(fc("x"))), ev(quote(f("x")))))
+stopifnot(identical(ev(quote(fc("A"))), ev(quote(f("A")))))
+
+stopifnot(identical(ev(quote(fc(0))), ev(quote(f(0)))))
+stopifnot(identical(ev(quote(fc(1))), ev(quote(f(1)))))
+stopifnot(identical(ev(quote(fc(2))), ev(quote(f(2)))))
+stopifnot(identical(ev(quote(fc(3))), ev(quote(f(3)))))
+stopifnot(identical(ev(quote(fc(4))), ev(quote(f(4)))))
+stopifnot(identical(ev(quote(fc(5))), ev(quote(f(5)))))
+stopifnot(identical(ev(quote(fc(6))), ev(quote(f(6)))))
+stopifnot(identical(ev(quote(fc(7))), ev(quote(f(7)))))
+stopifnot(identical(ev(quote(fc(8))), ev(quote(f(8)))))
+
+
+g <- function(x) switch(x, x = 1, y = , z = 3, w =, 5, v = )
+gc <- cmpfun(g)
+
+stopifnot(identical(ev(quote(gc("x"))), ev(quote(g("x")))))
+stopifnot(identical(ev(quote(gc("y"))), ev(quote(g("y")))))
+stopifnot(identical(ev(quote(gc("z"))), ev(quote(g("z")))))
+stopifnot(identical(ev(quote(gc("w"))), ev(quote(g("w")))))
+stopifnot(identical(ev(quote(gc("v"))), ev(quote(g("v")))))
+stopifnot(identical(ev(quote(gc("A"))), ev(quote(g("A")))))
+
+stopifnot(identical(ev(quote(gc(0))), ev(quote(g(0)))))
+stopifnot(identical(ev(quote(gc(1))), ev(quote(g(1)))))
+stopifnot(identical(ev(quote(gc(2))), ev(quote(g(2)))))
+stopifnot(identical(ev(quote(gc(3))), ev(quote(g(3)))))
+stopifnot(identical(ev(quote(gc(4))), ev(quote(g(4)))))
+stopifnot(identical(ev(quote(gc(5))), ev(quote(g(5)))))
+stopifnot(identical(ev(quote(gc(6))), ev(quote(g(6)))))
+stopifnot(identical(ev(quote(gc(7))), ev(quote(g(7)))))
+
+
+h <- function(x) switch(x, x = 1, y = , z = 3)
+hc <- cmpfun(h)
+
+stopifnot(identical(ev(quote(hc("x"))), ev(quote(h("x")))))
+stopifnot(identical(ev(quote(hc("y"))), ev(quote(h("y")))))
+stopifnot(identical(ev(quote(hc("z"))), ev(quote(h("z")))))
+stopifnot(identical(ev(quote(hc("A"))), ev(quote(h("A")))))
+
+stopifnot(identical(ev(quote(hc(0))), ev(quote(h(0)))))
+stopifnot(identical(ev(quote(hc(1))), ev(quote(h(1)))))
+stopifnot(identical(ev(quote(hc(2))), ev(quote(h(2)))))
+stopifnot(identical(ev(quote(hc(3))), ev(quote(h(3)))))
+stopifnot(identical(ev(quote(hc(4))), ev(quote(h(4)))))
+
+
+k <- function(x) switch(x, x = 1, y = 2, z = 3)
+kc <- cmpfun(k)
+
+stopifnot(identical(ev(quote(kc("x"))), ev(quote(k("x")))))
+stopifnot(identical(ev(quote(kc("y"))), ev(quote(k("y")))))
+stopifnot(identical(ev(quote(kc("z"))), ev(quote(k("z")))))
+stopifnot(identical(ev(quote(kc("A"))), ev(quote(k("A")))))
+
+stopifnot(identical(ev(quote(kc(0))), ev(quote(k(0)))))
+stopifnot(identical(ev(quote(kc(1))), ev(quote(k(1)))))
+stopifnot(identical(ev(quote(kc(2))), ev(quote(k(2)))))
+stopifnot(identical(ev(quote(kc(3))), ev(quote(k(3)))))
+stopifnot(identical(ev(quote(kc(4))), ev(quote(k(4)))))
+
+
+l <- function(x) switch(x, "a", "b", "c")
+lc <- cmpfun(l)
+
+ce <- function(expr) tryCatch(expr, error = function(e) "Error")
+
+## both of these should raise errors but the messages will differ
+stopifnot(identical(ce(lc("A")), ce(l("A"))))
+
+stopifnot(identical(ev(quote(lc(0))), ev(quote(l(0)))))
+stopifnot(identical(ev(quote(lc(1))), ev(quote(l(1)))))
+stopifnot(identical(ev(quote(lc(2))), ev(quote(l(2)))))
+stopifnot(identical(ev(quote(lc(3))), ev(quote(l(3)))))
+stopifnot(identical(ev(quote(lc(4))), ev(quote(l(4)))))
+
+l <- function(x) switch(x)
+lc <- cmpfun(l)
+
+cw <- function(expr) tryCatch(expr, warning = function(w) w)
+
+stopifnot(identical(cw(l(1)), cw(lc(1))))
+stopifnot(identical(cw(l("A")), cw(lc("A"))))
+suppressWarnings(stopifnot(identical(withVisible(l(1)),
+                                     withVisible(lc(1)))))
+suppressWarnings(stopifnot(identical(withVisible(l("A")),
+                                     withVisible(lc("A")))))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/envir.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/envir.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/envir.R	(revision 2476)
@@ -0,0 +1,90 @@
+
+library(compiler)
+
+##
+## Tests for findHomeNS()
+##
+
+findHomeNS <- compiler:::findHomeNS
+
+## return value for an undefinded variable should be NULL
+stopifnot(is.null(findHomeNS("foo", getNamespace("stats"))))
+stopifnot(is.null(findHomeNS("foo", parent.env(getNamespace("stats")))))
+stopifnot(is.null(findHomeNS("foo", getNamespace("base"))))
+
+## + is found in .BaseNamespaceEnv for stats or base
+stopifnot(identical(findHomeNS("+", getNamespace("stats")),
+                    .BaseNamespaceEnv))
+stopifnot(identical(findHomeNS("+", parent.env(getNamespace("stats"))),
+                    .BaseNamespaceEnv))
+stopifnot(identical(findHomeNS("+", getNamespace("base")),
+                    .BaseNamespaceEnv))
+
+## dnorm is defined in stats
+stopifnot(identical(findHomeNS("dnorm", getNamespace("stats")),
+                    getNamespace("stats")))
+stopifnot(identical(findHomeNS("dnorm", parent.env(getNamespace("stats"))),
+                    getNamespace("stats")))
+stopifnot(is.null(findHomeNS("dnorm", getNamespace("base"))))
+
+## plot is available via the stats namespace since stats imports graphics
+stopifnot(identical(findHomeNS("plot", getNamespace("stats")),
+                    getNamespace("graphics")))
+stopifnot(identical(findHomeNS("plot", parent.env(getNamespace("stats"))),
+                    getNamespace("graphics")))
+stopifnot(is.null(findHomeNS("plot", getNamespace("base"))))
+
+## palette is one of a small set of selective imports from grDevices
+stopifnot(identical(findHomeNS("palette", getNamespace("stats")),
+                    getNamespace("grDevices")))
+stopifnot(identical(findHomeNS("palette", parent.env(getNamespace("stats"))),
+                    getNamespace("grDevices")))
+stopifnot(is.null(findHomeNS("palette", getNamespace("base"))))
+
+
+##
+## Tests for getAssignedVar
+##
+
+getAssignedVar <- compiler:::getAssignedVar
+stopifnot(identical(getAssignedVar(quote("v"<-x)), "v"))
+stopifnot(identical(getAssignedVar(quote(v<-x)), "v"))
+stopifnot(identical(getAssignedVar(quote(f(v)<-x)), "v"))
+stopifnot(identical(getAssignedVar(quote(f(g(v,2),1)<-x)), "v"))
+
+
+##
+## Tests for findLocals
+##
+
+findLocals <- compiler:::findLocals
+cenv <- compiler:::makeCenv(.GlobalEnv)
+cntxt <- compiler:::make.toplevelContext(cenv, NULL)
+
+stopifnot(identical(findLocals(quote(x<-1), cntxt), "x"))
+stopifnot(identical(findLocals(quote(f(x)<-1), cntxt), "x"))
+stopifnot(identical(findLocals(quote(f(g(x,2),1)<-1), cntxt), "x"))
+stopifnot(identical(findLocals(quote(x<-y<-1), cntxt), c("x","y")))
+stopifnot(identical(findLocals(quote(local(x<-1,e)), cntxt), "x"))
+stopifnot(identical(findLocals(quote(local(x<-1)), cntxt), character(0)))
+stopifnot(identical(findLocals(quote({local<-1;local(x<-1)}), cntxt),
+                    c("local", "x")))
+
+local({
+    f <- function (f, x, y) {
+        local <- f
+        local(x <- y)
+        x
+    }
+    stopifnot(identical(findLocals(body(f), cntxt), c("local","x")))
+})
+
+local({
+    cenv <- compiler:::addCenvVars(cenv, "local")
+    cntxt <- compiler:::make.toplevelContext(cenv, NULL)
+    stopifnot(identical(findLocals(quote(local(x<-1,e)), cntxt), "x"))
+})
+
+stopifnot(identical(findLocals(quote(assign(x, 3)), cntxt), character(0)))
+stopifnot(identical(findLocals(quote(assign("x", 3)), cntxt), "x"))
+stopifnot(identical(findLocals(quote(assign("x", 3, 4)), cntxt), character(0)))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/assign.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/assign.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/assign.R	(revision 2476)
@@ -0,0 +1,148 @@
+##
+## Assignment tests
+##
+
+library(compiler)
+
+## Local assignment
+
+### symbol
+x <- 1
+eval(compile(quote(x <- 2)))
+stopifnot(x == 2)
+
+### closure
+`f<-` <- function(x, i, value) { x[i] <- value; x }
+x <- 1
+eval(compile(quote(f(x, 1) <- 2)))
+stopifnot(x == 2)
+
+### SPECIAL
+`f<-` <- `[<-`
+x <- 1
+eval(compile(quote(f(x, 1) <- 2)))
+stopifnot(x == 2)
+
+### BUILTIN
+`f<-` <- `names<-`
+x <- 1
+eval(compile(quote(f(x) <- "foo")))
+stopifnot(identical(x, structure(1, names = "foo")))
+
+## Super assignment
+
+### symbol
+x <- 1
+eval(compile(quote((function() x <<- 2)())))
+stopifnot(x == 2)
+
+### closure
+`f<-` <- function(x, i, value) { x[i] <- value; x }
+x <- 1
+eval(compile(quote((function() f(x, 1) <<- 2)())))
+stopifnot(x == 2)
+
+### SPECIAL
+`f<-` <- `[<-`
+x <- 1
+eval(compile(quote((function() f(x, 1) <<- 2)())))
+stopifnot(x == 2)
+
+### BUILTIN
+`f<-` <- `names<-`
+x <- 1
+eval(compile(quote((function() f(x) <<- "foo")())))
+stopifnot(identical(x, structure(1, names = "foo")))
+
+## Dollargets
+
+### Default
+x <- list(a = 1)
+eval(compile(quote(x$a <- 2)))
+stopifnot(identical(x, list(a = 2)))
+
+### Dispatch
+x <- structure(list(a = 1), class = "foo")
+y <- NULL
+`$<-.foo` <- function(x, tag, value) { y <<- list(tag, value); x }
+eval(compile(quote(x$a <- 2)))
+stopifnot(identical(y, list("a", 2)))
+
+## Subassign
+
+### Default
+x <- 1
+eval(compile(quote(x[1] <- 2)))
+stopifnot(identical(x, 2))
+
+### Dispatching
+x <- structure(list(NULL), class = "foo")
+y <- NULL
+`[<-.foo` <- function(x, k, value) { y <<- rep(value, k); x }
+eval(compile(quote(x[2] <- 3)))
+stopifnot(identical(y, rep(3, 2)))
+
+#### Missing args
+x <- c(1, 2, 3)
+eval(compile(quote(x[] <- c(4, 5, 6))))
+stopifnot(identical(x, c(4, 5, 6)))
+
+### Named args
+x <- structure(list(NULL), class = "foo")
+y <- NULL
+`[<-.foo` <- function(x, k, value) { y <<- names(sys.call()[-1]); x }
+eval(compile(quote(x[k = 2] <- 3)))
+stopifnot(identical(y, c("", "k", "value")))
+
+## Subassign2
+
+### Default
+x <- list(NULL)
+eval(compile(quote(x[[1]] <- list(1))))
+stopifnot(identical(x, list(list(1))))
+
+### Dispatching
+x <- structure(list(), class = "foo")
+y <- 1
+`[[<-.foo` <- function(x, i, value) { y[i] <<- value; x }
+eval(compile(quote(x[[1]] <- 3)))
+stopifnot(identical(y, 3))
+
+## Nested assignments
+x <- list(a = list(b = 1))
+eval(compile(quote(x$a$b <- 2)))
+stopifnot(identical(x, list(a = list(b = 2))))
+
+x <- list(1, list(2))
+eval(compile(quote(x[[1]][] <- 2)))
+eval(compile(quote(x[[2]][[1]] <- 3)))
+stopifnot(identical(x, list(2, list(3))))
+
+
+## checkAssign
+checkAssign <- compiler:::checkAssign
+cenv <- compiler:::makeCenv(.GlobalEnv)
+cntxt <- compiler:::make.toplevelContext(cenv, list(suppressAll = TRUE))
+stopifnot(identical(checkAssign(quote(x <- 1), cntxt), TRUE))
+stopifnot(identical(checkAssign(quote("x" <- 1), cntxt), TRUE))
+stopifnot(identical(checkAssign(quote(3 <- 1), cntxt), FALSE))
+stopifnot(identical(checkAssign(quote(f(x) <- 1), cntxt), TRUE))
+stopifnot(identical(checkAssign(quote((f())(x) <- 1), cntxt), FALSE))
+stopifnot(identical(checkAssign(quote(f(g(x)) <- 1), cntxt), TRUE))
+stopifnot(identical(checkAssign(quote(f(g("x")) <- 1), cntxt), FALSE))
+
+
+## flattenPlace
+flattenPlace <- compiler:::flattenPlace
+stopifnot(identical(flattenPlace(quote(f(g(h(x, k), j), i))),
+                    list(quote(f(`*tmp*`, i)),
+                         quote(g(`*tmp*`, j)),
+                         quote(h(`*tmp*`, k)))))
+
+## getAssignFun
+getAssignFun <- compiler:::getAssignFun
+stopifnot(identical(getAssignFun(quote(f)), quote(`f<-`)))
+stopifnot(identical(getAssignFun("f"), NULL))
+stopifnot(identical(getAssignFun(quote(f(x))), NULL))
+stopifnot(identical(getAssignFun(quote(base::diag)), quote(base::`diag<-`)))
+stopifnot(identical(getAssignFun(quote(base:::diag)), quote(base:::`diag<-`)))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/basics.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/basics.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/basics.R	(revision 2476)
@@ -0,0 +1,102 @@
+library(compiler)
+
+## very minimal
+x <- 2
+stopifnot(eval(compile(quote(x + 1))) == 3)
+
+## simple code generation
+checkCode <- function(expr, code, optimize = 2) {
+    v <- compile(expr, options = list(optimize = optimize))
+    d <- .Internal(disassemble(v))[[2]][-1]
+    dd <- as.integer(eval(substitute(code), getNamespace("compiler")))
+    identical(d, dd)
+}
+x <- 2
+stopifnot(checkCode(quote(x + 1),
+                    c(GETVAR.OP, 1L,
+                      LDCONST.OP, 2L,
+                      ADD.OP, 0L,
+                      RETURN.OP)))
+f <- function(x) x
+checkCode(quote({f(1); f(2)}),
+          c(GETFUN.OP, 1L,
+            PUSHCONSTARG.OP, 2L,
+            CALL.OP, 3L,
+            POP.OP,
+            GETFUN.OP, 1L,
+            PUSHCONSTARG.OP, 4L,
+            CALL.OP, 5L,
+            RETURN.OP))
+
+
+## names and ... args
+f <- function(...) list(...)
+stopifnot(identical(f(1, 2), cmpfun(f)(1, 2)))
+
+f <- function(...) list(x = ...)
+stopifnot(identical(f(1, 2), cmpfun(f)(1, 2)))
+
+
+## substitute and argument constant folding
+f <- function(x) substitute(x)
+g <- function() f(1 + 2)
+v1 <- g()
+f <- cmpfun(f)
+g <- cmpfun(g)
+v2 <- g()
+stopifnot(identical(v1, v2))
+
+
+## simple loops
+sr <- function(x) {
+    n <- length(x)
+    i <- 1
+    s <- 0
+    repeat {
+        if (i > n) break
+        s <- s + x[i]
+        i <- i + 1
+    }
+    s
+}
+sw <- function(x) {
+    n <- length(x)
+    i <- 1
+    s <- 0
+    while (i <= n) {
+        s <- s + x[i]
+        i <- i + 1
+    }
+    s
+}
+sf <- function(x) {
+    s <- 0
+    for (y in x)
+        s <- s + y
+    s
+}
+src <- cmpfun(sr)
+swc <- cmpfun(sw)
+sfc <- cmpfun(sf)
+x <- 1 : 5
+stopifnot(src(x) == sr(x))
+stopifnot(swc(x) == sw(x))
+stopifnot(sfc(x) == sf(x))
+
+
+## Check that the handlers have been associated with the correct package
+h <- ls(compiler:::inlineHandlers, all = TRUE)
+p <- sub("package:", "", sapply(h, find))
+pp <- sapply(h, function(n) get(n, compiler:::inlineHandlers)$package)
+stopifnot(identical(p, pp))
+
+
+## Check assumption about simple .Internals
+## These are .External calls now.
+## stopifnot(all(sapply(compiler:::safeStatsInternals,
+##                      function(f)
+##                      compiler:::is.simpleInternal(get(f, "package:stats")))))
+
+stopifnot(all(sapply(compiler:::safeBaseInternals,
+                     function(f)
+                     compiler:::is.simpleInternal(get(f, "package:base")))))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/const.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/const.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/const.R	(revision 2476)
@@ -0,0 +1,65 @@
+
+library(compiler)
+
+##
+## Test code for constant folding
+##
+
+makeCenv <- compiler:::makeCenv
+checkConst <- compiler:::checkConst
+constantFoldSym <- compiler:::constantFoldSym
+constantFold <- compiler:::constantFold
+
+## using a global environment
+ce <- makeCenv(.GlobalEnv)
+stopifnot(identical(constantFoldSym(quote(pi), list(env = ce, optimize = 3)),
+                    checkConst(base::pi)))
+stopifnot(identical(constantFoldSym(quote(pi), list(env = ce, optimize = 2)),
+                    NULL))
+stopifnot(identical(constantFoldSym(quote(pi), list(env = ce, optimize = 1)),
+                    NULL))
+stopifnot(identical(constantFoldSym(quote(pi), list(env = ce, optimize = 0)),
+                    NULL))
+stopifnot(identical(constantFold(quote(1 + 2), list(optimize = 3, env = ce)),
+                    checkConst(1 + 2)))
+stopifnot(identical(constantFold(quote(1 + 2), list(optimize = 2, env = ce)),
+                    checkConst(1 + 2)))
+stopifnot(identical(constantFold(quote(1 + 2), list(optimize = 1, env = ce)),
+                    NULL))
+stopifnot(identical(constantFold(quote(1 + 2), list(optimize = 0, env = ce)),
+                    NULL))
+stopifnot(identical(constantFold(quote(sqrt(2)), list(optimize = 3, env = ce)),
+                    checkConst(sqrt(2))))
+stopifnot(identical(constantFold(quote(sqrt(2)), list(optimize = 2, env = ce)),
+                    NULL))
+stopifnot(identical(constantFold(quote(sqrt(2)), list(optimize = 1, env = ce)),
+                    NULL))
+stopifnot(identical(constantFold(quote(sqrt(2)), list(optimize = 0, env = ce)),
+                    NULL))
+
+## using a namespace environment
+ce <- makeCenv(getNamespace("stats"))
+stopifnot(identical(constantFoldSym(quote(pi), list(env = ce, optimize = 3)),
+                    list(value = base::pi)))
+stopifnot(identical(constantFoldSym(quote(pi), list(env = ce, optimize = 2)),
+                    list(value = base::pi)))
+stopifnot(identical(constantFoldSym(quote(pi), list(env = ce, optimize = 1)),
+                    checkConst(base::pi)))
+stopifnot(identical(constantFoldSym(quote(pi), list(env = ce, optimize = 0)),
+                    NULL))
+stopifnot(identical(constantFold(quote(1 + 2), list(optimize = 3, env = ce)),
+                    checkConst(1 + 2)))
+stopifnot(identical(constantFold(quote(1 + 2), list(optimize = 2, env = ce)),
+                    checkConst(1 + 2)))
+stopifnot(identical(constantFold(quote(1 + 2), list(optimize = 1, env = ce)),
+                    checkConst(1 + 2)))
+stopifnot(identical(constantFold(quote(1 + 2), list(optimize = 0, env = ce)),
+                    NULL))
+stopifnot(identical(constantFold(quote(sqrt(2)), list(optimize = 3, env = ce)),
+                    checkConst(sqrt(2))))
+stopifnot(identical(constantFold(quote(sqrt(2)), list(optimize = 2, env = ce)),
+                    checkConst(sqrt(2))))
+stopifnot(identical(constantFold(quote(sqrt(2)), list(optimize = 1, env = ce)),
+                    checkConst(sqrt(2))))
+stopifnot(identical(constantFold(quote(sqrt(2)), list(optimize = 0, env = ce)),
+                    NULL))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/jit.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/jit.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/tests/jit.R	(revision 2476)
@@ -0,0 +1,16 @@
+library(compiler)
+
+oldJIT <- enableJIT(3)
+
+## need a test of level 1 to make sure functions are compiled
+
+## need more tests here
+
+repeat { break }
+
+while(TRUE) break
+
+for (i in 1:10) i
+
+enableJIT(oldJIT)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/DESCRIPTION	(revision 2476)
@@ -0,0 +1,9 @@
+Package: compiler
+Version: 3.3.2
+Priority: base
+Title: The R Compiler Package
+Author: Luke Tierney <luke-tierney@uiowa.edu>
+Maintainer: R Core Team <R-core@r-project.org>
+Description: Byte code compiler for R.
+License: Part of R 3.3.2
+Built: R 3.3.2; ; 2016-10-31 14:31:30 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/html/00Index.html	(revision 2476)
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: The R Compiler Package</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> The R Compiler Package
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;compiler&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="compile.html">cmpfile</a></td>
+<td>Byte Code Compiler</td></tr>
+<tr><td style="width: 25%;"><a href="compile.html">cmpfun</a></td>
+<td>Byte Code Compiler</td></tr>
+<tr><td style="width: 25%;"><a href="compile.html">compile</a></td>
+<td>Byte Code Compiler</td></tr>
+<tr><td style="width: 25%;"><a href="compile.html">compilePKGS</a></td>
+<td>Byte Code Compiler</td></tr>
+<tr><td style="width: 25%;"><a href="compile.html">disassemble</a></td>
+<td>Byte Code Compiler</td></tr>
+<tr><td style="width: 25%;"><a href="compile.html">enableJIT</a></td>
+<td>Byte Code Compiler</td></tr>
+<tr><td style="width: 25%;"><a href="compile.html">getCompilerOption</a></td>
+<td>Byte Code Compiler</td></tr>
+<tr><td style="width: 25%;"><a href="compile.html">loadcmp</a></td>
+<td>Byte Code Compiler</td></tr>
+<tr><td style="width: 25%;"><a href="compile.html">setCompilerOptions</a></td>
+<td>Byte Code Compiler</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/INDEX	(revision 2476)
@@ -0,0 +1 @@
+compile                 Byte Code Compiler
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/help/compiler.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/help/compiler.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/help/AnIndex	(revision 2476)
@@ -0,0 +1,9 @@
+cmpfile	compile
+cmpfun	compile
+compile	compile
+compilePKGS	compile
+disassemble	compile
+enableJIT	compile
+getCompilerOption	compile
+loadcmp	compile
+setCompilerOptions	compile
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/help/compiler.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/help/compiler.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/compiler/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/CP1257.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/CP1257.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/CP1257.enc	(revision 2476)
@@ -0,0 +1,36 @@
+%% CP1257 This should be a postscript fragment of an array of length exactly 256
+/CP1257Encoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
+/parenleft /parenright /asterisk /plus /comma /minus /period /slash
+/zero /one /two /three /four /five /six /seven /eight /nine
+/colon /semicolon /less /equal /greater /question
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W
+/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+/grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%%  0200
+/Euro /.notdef /quotesinglbase /.notdef /quotedblbase /ellipsis /dagger /daggerdbl
+/.notdef /perthousand /.notdef /guilsinglleft /.notdef /dieresis /caron /cedilla
+/.notdef /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
+/.notdef /trademark /.notdef /guilsinglright /.notdef /macron /ogonek /.notdef
+%%  0240
+/space /.notdef /cent /sterling /currency /.notdef /brokenbar /section
+/Oslash /copyright /Rcommaaccent /guillemotleft /logicalnot /hyphen /registered /AE
+/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
+/oslash /onesuperior /rcommaaccent /guillemotright /onequarter /onehalf /threequarters /ae
+%%  0300
+/Aogonek /Iogonek /Amacron /Cacute /Adieresis /Aring /Eogonek /Emacron
+/Ccaron /Eacute /Zacute /Edotaccent /Gcommaaccent /Kcommaaccent /Imacron /Lcommaaccent
+/Scaron /Nacute /Ncommaaccent /Oacute /Omacron /Otilde /Odieresis /multiply
+/Uogonek /Lslash /Sacute /Umacron /Udieresis /Zdotaccent /Zcaron /germandbls
+%%  0340
+/aogonek /iogonek /amacron /cacute /adieresis /aring /eogonek /emacron
+/ccaron /eacute /zacute /edotaccent /gcommaaccent /kcommaaccent /imacron /lcommaaccent
+/scaron /nacute /ncommaaccent /oacute /omacron /otilde /odieresis /divide
+/uogonek /lslash /sacute /umacron /udieresis /zdotaccent /zcaron /dotaccent
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/AdobeStd.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/AdobeStd.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/AdobeStd.enc	(revision 2476)
@@ -0,0 +1,37 @@
+/StandardEncoding [
+% 0000
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+% 0040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
+/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+/zero /one /two /three /four /five /six /seven
+/eight /nine /colon /semicolon /less /equal /greater /question
+% 0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V
+/W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+% 0140
+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t 
+/u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+% 0200
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+% 0240
+/.notdef /exclamdown /cent /sterling /fraction /yen /florin /section
+/currency /quotesingle /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi /fl
+/.notdef /endash /dagger /daggerdbl /periodcentered /.notdef /paragraph /bullet
+/quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /.notdef /questiondown
+% 0300
+/.notdef /grave /acute /circumflex /tilde /macron /breve /dotaccent
+/dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron
+/emdash /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /AE /.notdef /ordfeminine /.notdef /.notdef /.notdef /.notdef
+/Lslash /Oslash /OE /ordmasculine /.notdef /.notdef /.notdef /.notdef
+/.notdef /ae /.notdef /.notdef /.notdef /dotlessi /.notdef /.notdef
+/lslash /oslash /oe /germandbls /.notdef /.notdef /.notdef /.notdef
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/Greek.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/Greek.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/Greek.enc	(revision 2476)
@@ -0,0 +1,38 @@
+%% ISO8859-7 (2003) This should be a postscript fragment of an array of length exactly 256
+/ISOGreekEncoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash
+%%   060
+/zero /one /two /three /four /five /six /seven /eight /nine
+/colon /semicolon /less /equal /greater /question
+%%  0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V
+/W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+%% 0140
+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t
+/u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%% 0200
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%% 0240  A5 is Drachma, not in Adobe list.
+/space /quoteleft /quoteright /sterling /Euro /.notdef /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /afii00208
+/degree /plusminus /twosuperior /threesuperior /tonos /dieresistonos /Alphatonos /periodcentered
+/Epsilontonos /Etatonos /Iotatonos /guillemotright /Omicrontonos /onehalf /Upsilontonos /Omegatonos
+/iotadieresistonos /Alpha /Beta /Gamma /Deltagreek /Epsilon /Zeta /Eta
+/Theta /Iota /Kappa /Lambda /Mu /Nu /Xi /Omicron
+/Pi /Rho /.notdef /Sigma /Tau /Upsilon /Phi /Chi
+/Psi /Omegagreek /Iotadieresis /Upsilondieresis /alphatonos /epsilontonos /etatonos /iotatonos
+%% 0340
+/upsilondieresistonos /alpha /beta /gamma /delta /epsilon /zeta /eta
+/theta /iota /kappa /lambda /mugreek /nu /xi /omicron
+/pi /rho /sigma1 /sigma /tau /upsilon /phi /chi
+/psi /omega /iotadieresis /upsilondieresis /omicrontonos /upsilontonos /omegatonos /.notdef
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/MacRoman.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/MacRoman.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/MacRoman.enc	(revision 2476)
@@ -0,0 +1,39 @@
+%% As defined by PDF 1.3, but with /currency replaced by /Euro as per Apple
+/MacRomanEncoding [
+  /.notdef /.notdef   /.notdef   /.notdef /.notdef /.notdef  /.notdef /.notdef
+  /.notdef /.notdef   /.notdef   /.notdef /.notdef /.notdef  /.notdef /.notdef
+  /.notdef /.notdef   /.notdef   /.notdef /.notdef /.notdef  /.notdef /.notdef
+  /.notdef /.notdef   /.notdef   /.notdef /.notdef /.notdef  /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand 
+/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+%%   060
+/zero /one /two /three /four /five /six /seven /eight /nine 
+/colon /semicolon /less /equal /greater /question
+%%  0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V 
+/W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+%%  0140
+/grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t 
+/u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%%  0200
+/Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute 
+/agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave
+%%  0220
+/ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde /oacute
+/ograve /ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex /udieresis
+%%  0240
+/dagger /degree /cent /sterling /section /bullet /paragraph /germandbls
+/registered /copyright /trademark /acute /dieresis /.notdef /AE /Oslash
+/.notdef /plusminus /.notdef /.notdef /yen /mu /.notdef /.notdef
+/.notdef /.notdef /.notdef /ordfeminine /ordmasculine /.notdef /ae /oslash
+%%  0300
+/questiondown /exclamdown /logicalnot /.notdef /florin /.notdef /.notdef /guillemotleft
+/guillemotright /ellipsis /space /Agrave /Atilde /Otilde /OE /oe
+/endash /emdash /quotedblleft /quotedblright /quoteleft /quoteright /divide /.notdef
+/ydieresis /Ydieresis /fraction /Euro /guilsinglleft /guilsinglright /fi /fl
+/daggerdbl /periodcentered /quotesinglbase /quotedblbase  /perthousand /Acircumflex /Ecircumflex /Aacute
+/Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex
+/.notdef /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde
+/macron /breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/PDFDoc.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/PDFDoc.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/PDFDoc.enc	(revision 2476)
@@ -0,0 +1,39 @@
+%% As used by PDF 1.3
+/PDFDocEncoding [
+  /.notdef /.notdef   /.notdef   /.notdef /.notdef /.notdef  /.notdef /.notdef
+  /.notdef /.notdef   /.notdef   /.notdef /.notdef /.notdef  /.notdef /.notdef
+  /.notdef /.notdef   /.notdef   /.notdef /.notdef /.notdef  /.notdef /.notdef
+  /breve /caron /circumflex /dotaccent /hungarumlaut /ogonek /ring /tilde
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand 
+/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+%%   060
+/zero /one /two /three /four /five /six /seven /eight /nine 
+/colon /semicolon /less /equal /greater /question
+%%  0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V 
+/W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+%%  0140
+/grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t 
+/u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%%  0200
+/bullet /dagger /daggerdbl /ellipsis /emdash /endash /florin /fraction 
+/guilsinglleft /guilsinglright /minus /perthousand /quotedblbase /quotedblleft /quotedblright /quoteleft
+%%  0220
+/quoteright /quotesinglbase /trademark /fi /fl /Lslash /OE /Scaron
+/Ydieresis /Zcaron /dotlessi /lslash /oe /scaron /zcaron /.notdef
+%%  0240
+/Euro /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /.notdef /registered /macron
+/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
+/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
+%%  0300
+/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
+/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
+/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
+/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
+/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
+/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/AdobeSym.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/AdobeSym.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/AdobeSym.enc	(revision 2476)
@@ -0,0 +1,42 @@
+/SymbolEncoding [
+%  0000
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%  0040
+/space /exclam /universal /numbersign /existential /percent /ampersand /suchthat
+/parenleft /parenright /asteriskmath /plus /comma /minus /period /slash
+/zero /one /two /three /four /five /six /seven
+/eight /nine /colon /semicolon /less /equal /greater /question
+%  0100
+/congruent /Alpha /Beta /Chi /Delta /Epsilon /Phi /Gamma
+/Eta /Iota /theta1 /Kappa /Lambda /Mu /Nu /Omicron
+/Pi /Theta /Rho /Sigma /Tau /Upsilon /sigma1 /Omega
+/Xi /Psi /Zeta /bracketleft /therefore /bracketright /perpendicular /underscore
+%  0140
+/radicalex /alpha /beta /chi /delta /epsilon /phi /gamma
+/eta /iota /phi1 /kappa /lambda /mu /nu /omicron
+/pi /theta /rho /sigma /tau /upsilon /omega1 /omega
+/xi /psi /zeta /braceleft /bar /braceright /similar /.notdef
+%  0200
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%  0240
+/Euro /Upsilon1 /minute /lessequal /fraction /infinity /florin /club
+/diamond /heart /spade /arrowboth /arrowleft /arrowup /arrowright /arrowdown
+/degree /plusminus /second /greaterequal /multiply /proportional /partialdiff /bullet
+/divide /notequal /equivalence /approxequal /ellipsis /arrowvertex /arrowhorizex /carriagereturn
+%  0300
+/aleph /Ifraktur /Rfraktur /weierstrass /circlemultiply /circleplus /emptyset /intersection
+/union /propersuperset /reflexsuperset /notsubset /propersubset /reflexsubset /element /notelement
+/angle /gradient /registerserif /copyrightserif /trademarkserif /product /radical /dotmath
+/logicalnot /logicaland /logicalor /arrowdblboth /arrowdblleft /arrowdblup /arrowdblright /arrowdbldown
+%  0340
+/lozenge /angleleft /registersans /copyrightsans /trademarksans /summation /parenlefttp /parenleftex
+/parenleftbt /bracketlefttp /bracketleftex /bracketleftbt /bracelefttp /braceleftmid /braceleftbt /braceex
+/.notdef /angleright /integral /integraltp /integralex /integralbt /parenrighttp /parenrightex
+/parenrightbt /bracketrighttp /bracketrightex /bracketrightbt /bracerighttp /bracerightmid /bracerightbt /.notdef
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/ISOLatin1.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/ISOLatin1.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/ISOLatin1.enc	(revision 2476)
@@ -0,0 +1,39 @@
+%% This should be a postscript fragment of an array of length exactly 256
+/ISOLatin1Encoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash
+%%   060
+/zero /one /two /three /four /five /six /seven /eight /nine
+/colon /semicolon /less /equal /greater /question
+%%  0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V
+/W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+%%  0140
+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t
+/u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%%  0200
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%  0220
+/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent
+/dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron
+%%  0240
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
+/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
+/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
+%%  0300
+/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
+/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
+/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
+/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
+/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
+/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/ISOLatin2.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/ISOLatin2.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/ISOLatin2.enc	(revision 2476)
@@ -0,0 +1,40 @@
+%% This should be a postscript fragment of an array of length exactly 256
+/ISOLatin2Encoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash
+%%   060
+/zero /one /two /three /four /five /six /seven /eight /nine
+/colon /semicolon /less /equal /greater /question
+%%  0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V
+/W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+%%  0140
+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t
+/u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%%  0200
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%  0220
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%  0240
+/space /Aogonek /breve /Lslash /currency /Lcaron /Sacute /section
+/dieresis /Scaron /Scedilla /Tcaron /Zacute /hyphen /Zcaron /Zdotaccent
+/degree /aogonek /ogonek /lslash /acute /lcaron /sacute /caron
+/cedilla /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent
+%%  0300
+/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla
+/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron
+/Dcroat /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply
+/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcommaaccent /germandbls
+% 0340
+/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla
+/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron
+/dcroat /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide
+/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcommaaccent /dotaccent
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/TeXtext.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/TeXtext.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/TeXtext.enc	(revision 2476)
@@ -0,0 +1,39 @@
+%% This should be a postscript fragment of an array of length exactly 256
+/TeXtextEncoding [
+/minus /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon
+/Phi /Psi /Omega /ff /fi /fl /ffi /ffl
+/dotlessi /dotlessj /grave /acute /caron /breve /macron /ring
+/cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash
+%%   040
+/space /exclam /quotedblright /numbersign /dollar /percent /ampersand 
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash
+%%   060
+/zero /one /two /three /four /five /six /seven /eight /nine 
+/colon /semicolon /exclamdown /equal /questiondown /question
+%%  0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V 
+/W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent
+%%  0140
+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t 
+/u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis
+%%  0200
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%  0220
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%  0240
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%  0300
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/WinAnsi.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/WinAnsi.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/WinAnsi.enc	(revision 2476)
@@ -0,0 +1,40 @@
+%% As used by PDF 1.3, but with Euro at 128, and bullet only at 149
+%% as that is what Windows actually uses.
+/WinAnsiEncoding [
+  /.notdef /.notdef   /.notdef   /.notdef /.notdef /.notdef  /.notdef /.notdef
+  /.notdef /.notdef   /.notdef   /.notdef /.notdef /.notdef  /.notdef /.notdef
+  /.notdef /.notdef   /.notdef   /.notdef /.notdef /.notdef  /.notdef /.notdef
+  /.notdef /.notdef   /.notdef   /.notdef /.notdef /.notdef  /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand 
+/quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+%%   060
+/zero /one /two /three /four /five /six /seven /eight /nine 
+/colon /semicolon /less /equal /greater /question
+%%  0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V 
+/W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+%%  0140
+/grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t 
+/u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%%  0200
+/Euro /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl 
+/circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /Zcaron /.notdef
+%%  0220
+/.notdef /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
+/tilde /trademark /scaron /guilsinglright /oe /.notdef /zcaron /Ydieresis
+%%  0240
+/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
+/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
+/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
+%%  0300
+/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
+/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
+/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
+/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
+/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
+/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/ISOLatin7.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/ISOLatin7.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/ISOLatin7.enc	(revision 2476)
@@ -0,0 +1,40 @@
+%% ISO8859-13 This should be a postscript fragment of an array of length exactly 256
+/ISOLatin7Encoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash
+%%   060
+/zero /one /two /three /four /five /six /seven /eight /nine
+/colon /semicolon /less /equal /greater /question
+%%  0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V
+/W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+%%  0140
+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t
+/u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%%  0200
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%  0220
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%  0240
+/space /quotedblright /cent /sterling /currency /quotedblbase /brokenbar /section
+/Oslash /copyright /Rcommaaccent /guillemotleft /logicalnot /hyphen /registered /AE
+/degree /plusminus /twosuperior /threesuperior /quotedblleft /mu /paragraph /periodcentered
+/oslash /onesuperior /rcommaaccent /guillemotright /onequarter /onehalf /threequarters /ae
+%%  0300
+/Aogonek /Iogonek /Amacron /Cacute /Adieresis /Aring /Eogonek /Emacron
+/Ccaron /Eacute /Zacute /Edotaccent /Gcommaaccent /Kcommaaccent /Imacron /Lcommaaccent
+/Scaron /Nacute /Ncommaaccent /Oacute /Omacron /Otilde /Odieresis /multiply
+/Uogonek /Lslash /Sacute /Umacron /Udieresis /Zdotaccent /Zcaron /germandbls
+%%  0340
+/aogonek /iogonek /amacron /cacute /adieresis /aring /eogonek /emacron
+/ccaron /eacute /zacute /edotaccent /gcommaaccent /kcommaaccent /imacron /lcommaaccent
+/scaron /nacute /ncommaaccent /oacute /omacron /otilde /odieresis /divide
+/uogonek /lslash /sacute /umacron /udieresis /zdotaccent /zcaron /quoteright
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/KOI8-R.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/KOI8-R.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/KOI8-R.enc	(revision 2476)
@@ -0,0 +1,39 @@
+%% KOI8-R This should be a postscript fragment of an array of length exactly 256
+/KOI8REncoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dagger /ddagger
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash
+%%   060
+/zero /one /two /three /four /five /six /seven /eight /nine
+/colon /semicolon /less /equal /greater /question
+%%  0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V
+/W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+%%  0140
+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t
+/u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%%  0200
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%  0220
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /space /.notdef /degree /twosuperior /periodcentered /divide
+%%  0240
+/.notdef /.notdef /.notdef /afii10071 /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /afii10023 /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /copyright
+%%  0300
+/afii10096 /afii10065 /afii10066 /afii10088 /afii10069 /afii10070 /afii10086 /afii10068
+/afii10087 /afii10074 /afii10075 /afii10076 /afii10077 /afii10078 /afii10079 /afii10080
+/afii10081 /afii10097 /afii10082 /afii10083 /afii10084 /afii10085 /afii10072 /afii10067
+/afii10094 /afii10093 /afii10073 /afii10090 /afii10095 /afii10091 /afii10089 /afii10092
+/afii10048 /afii10017 /afii10018 /afii10040 /afii10021 /afii10022 /afii10038 /afii10020
+/afii10039 /afii10026 /afii10027 /afii10028 /afii10029 /afii10030 /afii10031 /afii10032
+/afii10033 /afii10049 /afii10034 /afii10035 /afii10036 /afii10037 /afii10024 /afii10019
+/afii10046 /afii10045 /afii10025 /afii10042 /afii10047 /afii10043 /afii10041 /afii10044
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/CP1250.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/CP1250.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/CP1250.enc	(revision 2476)
@@ -0,0 +1,36 @@
+%% CP1250 This should be a postscript fragment of an array of length exactly 256
+/CP1250Encoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
+/parenleft /parenright /asterisk /plus /comma /minus /period /slash
+/zero /one /two /three /four /five /six /seven /eight /nine
+/colon /semicolon /less /equal /greater /question
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W
+/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+/grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%%  0200
+/Euro /.notdef /quotesinglbase /.notdef /quotedblbase /ellipsis /dagger /daggerdbl
+/.notdef /perthousand /Scaron /guilsinglleft /Sacute /Tcaron /Zcaron /Zacute
+/.notdef /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
+/.notdef /trademark /scaron /guilsinglright /sacute /tcaron /zcaron /zacute
+%%  0240
+/space /caron /breve /Lslash /currency /Aogonek /brokenbar /section
+/dieresis /copyright /Scedilla /guillemotleft /logicalnot /hyphen /registered /Zdotaccent
+/degree /plusminus /ogonek /lslash /acute /mu /paragraph /periodcentered
+/cedilla /aogonek /scedilla /guillemotright /Lcaron /hungarumlaut /lcaron /zdotaccent
+%%  0300
+/Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla
+/Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron
+/Dcroat /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply
+/Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcommaaccent /germandbls
+% 0340
+/racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla
+/ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron
+/dcroat /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide
+/rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcommaaccent /dotaccent
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/Cyrillic.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/Cyrillic.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/Cyrillic.enc	(revision 2476)
@@ -0,0 +1,40 @@
+%% ISO8859-5 This should be a postscript fragment of an array of length exactly 256
+/ISOLatin5Encoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash
+%%   060
+/zero /one /two /three /four /five /six /seven /eight /nine
+/colon /semicolon /less /equal /greater /question
+%%  0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V
+/W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+%%  0140
+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t
+/u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%%  0200
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%  0220
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%  0240
+/space /afii10023 /afii10051 /afii10052 /afii10053 /afii10054 /afii10055 /afii10056
+/afii10057 /afii10058 /afii10059 /afii10060 /afii10061 /hyphen /afii10062 /afii10145
+/afii10017 /afii10018 /afii10019 /afii10020 /afii10021 /afii10022 /afii10024 /afii10025
+/afii10026 /afii10027 /afii10028 /afii10029 /afii10030 /afii10031 /afii10032 /afii10033
+%%  0300
+/afii10034 /afii10035 /afii10036 /afii10037 /afii10038 /afii10039 /afii10040 /afii10041
+/afii10042 /afii10043 /afii10044 /afii10045 /afii10046 /afii10047 /afii10048 /afii10049
+/afii10065 /afii10066 /afii10067 /afii10068 /afii10069 /afii10070 /afii10072 /afii10073
+/afii10074 /afii10075 /afii10076 /afii10077 /afii10078 /afii10079 /afii10080 /afii10081
+%%  0340
+/afii10082 /afii10083 /afii10084 /afii10085 /afii10086 /afii10087 /afii10088 /afii10089
+/afii10090 /afii10091 /afii10092 /afii10093 /afii10094 /afii10095 /afii10096 /afii10097
+/afii61352 /afii10071 /afii10099 /afii10100 /afii10101 /afii10102 /afii10103 /afii10104
+/afii10105 /afii10106 /afii10107 /afii10108 /afii10109 /section /afii10110 /afii10193
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/CP1251.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/CP1251.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/CP1251.enc	(revision 2476)
@@ -0,0 +1,37 @@
+%% CP1251 This should be a postscript fragment of an array of length exactly 256
+/CP1251Encoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
+/parenleft /parenright /asterisk /plus /comma /minus /period /slash
+/zero /one /two /three /four /five /six /seven /eight /nine
+/colon /semicolon /less /equal /greater /question
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W
+/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+/grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w
+/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%%  0200
+/afii10051 /afii10052 /quotesinglbase /afii10100 /quotedblbase /ellipsis /dagger /daggerdbl
+/Euro /perthousand /afii10058 /guilsinglleft /afii10059 /afii10061 /afii10060 /afii10145
+%%  0220
+/afii10099 /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
+/.notdef /trademark /afii10106 /guilsinglright /afii10107 /afii10109 /afii10108 /afii10193
+%%  0240
+/space /afii10062 /afii10110 /afii10057 /currency /afii10050 /brokenbar /section
+/afii10023 /copyright /afii10047 /guillemotleft /logicalnot /hyphen /registered /afii10056
+/degree /plusminus /afii10055 /afii10103 /afii10098 /mu /paragraph /periodcentered
+/afii10071 /afii61352 /afii10101 /guillemotright /afii10105 /afii10054 /afii10102 /afii10104
+%%  0300
+/afii10017 /afii10018 /afii10019 /afii10020 /afii10021 /afii10022 /afii10024 /afii10025
+/afii10026 /afii10027 /afii10028 /afii10029 /afii10030 /afii10031 /afii10032 /afii10033
+/afii10034 /afii10035 /afii10036 /afii10037 /afii10038 /afii10039 /afii10040 /afii10041
+/afii10042 /afii10043 /afii10044 /afii10045 /afii10046 /afii10047 /afii10048 /afii10049
+%%  0340
+/afii10065 /afii10066 /afii10067 /afii10068 /afii10069 /afii10070 /afii10072 /afii10073
+/afii10074 /afii10075 /afii10076 /afii10077 /afii10078 /afii10079 /afii10080 /afii10081
+/afii10082 /afii10083 /afii10084 /afii10085 /afii10086 /afii10087 /afii10088 /afii10089
+/afii10090 /afii10091 /afii10092 /afii10093 /afii10094 /afii10095 /afii10096 /afii10097
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/ISOLatin9.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/ISOLatin9.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/ISOLatin9.enc	(revision 2476)
@@ -0,0 +1,39 @@
+%% ISO-8859-15 (draft?)  Has Euro in place of currency, scaron, zcaon, oe ...
+/ISOLatin9Encoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand 
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash
+%%   060
+/zero /one /two /three /four /five /six /seven /eight /nine 
+/colon /semicolon /less /equal /greater /question
+%%  0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V 
+/W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+%%  0140
+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t 
+/u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%%  0200
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%  0220
+/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent
+/dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron
+%%  0240
+/space /exclamdown /cent /sterling /Euro /yen /Scaron /section
+/scaron /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
+/degree /plusminus /twosuperior /threesuperior /Zcaron /mu /paragraph /periodcentered
+/zcaron /onesuperior /ordmasculine /guillemotright /OE /oe /Ydieresis /questiondown
+%%  0300
+/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
+/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
+/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
+/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
+/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
+/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/KOI8-U.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/KOI8-U.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/KOI8-U.enc	(revision 2476)
@@ -0,0 +1,39 @@
+%% KOI8-U This should be a postscript fragment of an array of length exactly 256
+/KOI8UEncoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dagger /ddagger
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash
+%%   060
+/zero /one /two /three /four /five /six /seven /eight /nine
+/colon /semicolon /less /equal /greater /question
+%%  0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V
+/W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+%%  0140
+/quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t
+/u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%%  0200
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /afii10050 /.notdef /.notdef
+%%  0220
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /space /.notdef /degree /twosuperior /periodcentered /divide
+%%  0240
+/.notdef /.notdef /.notdef /afii10071 /afii10101 /.notdef /afii10103 /afii10104
+/.notdef /.notdef /.notdef /.notdef /.notdef /afii10098 /.notdef /.notdef
+/.notdef /.notdef /.notdef /afii10023 /afii10053 /.notdef /afii10055 /afii10056
+/.notdef /.notdef /.notdef /.notdef /.notdef /afii10050 /.notdef /copyright
+%%  0300
+/afii10096 /afii10065 /afii10066 /afii10088 /afii10069 /afii10070 /afii10086 /afii10068
+/afii10087 /afii10074 /afii10075 /afii10076 /afii10077 /afii10078 /afii10079 /afii10080
+/afii10081 /afii10097 /afii10082 /afii10083 /afii10084 /afii10085 /afii10072 /afii10067
+/afii10094 /afii10093 /afii10073 /afii10090 /afii10095 /afii10091 /afii10089 /afii10092
+/afii10048 /afii10017 /afii10018 /afii10040 /afii10021 /afii10022 /afii10038 /afii10020
+/afii10039 /afii10026 /afii10027 /afii10028 /afii10029 /afii10030 /afii10031 /afii10032
+/afii10033 /afii10049 /afii10034 /afii10035 /afii10036 /afii10037 /afii10024 /afii10019
+/afii10046 /afii10045 /afii10025 /afii10042 /afii10047 /afii10043 /afii10041 /afii10044
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/CP1253.enc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/CP1253.enc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/enc/CP1253.enc	(revision 2476)
@@ -0,0 +1,37 @@
+%% CP1253 This should be a postscript fragment of an array of length exactly 256
+/CP1253Encoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%%   040
+/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
+/parenleft /parenright /asterisk /plus /comma /minus /period /slash
+%%   060
+/zero /one /two /three /four /five /six /seven /eight /nine
+/colon /semicolon /less /equal /greater /question
+%%  0100
+/at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V
+/W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+%% 0140
+/grave /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t
+/u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
+%% 0200
+/Euro /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl
+/.notdef /perthousand /.notdef /guilsinglleft /.notdef /.notdef /.notdef /.notdef
+/.notdef /quoteleft /quoteright /quotedblleft /quotedblright /bullet /endash /emdash
+/.notdef /trademark /.notdef /guilsinglright /.notdef /.notdef /.notdef /.notdef
+%% 0240
+/space /dialytikatonos /Alphatonos /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /.notdef /guillemotleft /logicalnot /hyphen /registered /afii00208
+/degree /plusminus /twosuperior /threesuperior /tonos /mu /paragraph /periodcentered
+/Epsilontonos /Etatonos /Iotatonos /guillemotright /Omicrontonos /onehalf /Upsilontonos /Omegatonos
+/iotadieresistonos /Alpha /Beta /Gamma /Deltagreek /Epsilon /Zeta /Eta
+/Theta /Iota /Kappa /Lambda /Mu /Nu /Xi /Omicron
+/Pi /Rho /.notdef /Sigma /Tau /Upsilon /Phi /Chi
+/Psi /Omegagreek /Iotadieresis /Upsilondieresis /alphatonos /epsilontonos /etatonos /iotatonos
+/upsilondieresistonos /alpha /beta /gamma /delta /epsilon /zeta /eta
+/theta /iota /kappa /lambda /mugreek /nu /xi /omicron
+/pi /rho /sigma1 /sigma /tau /upsilon /phi /chi
+/psi /omega /iotadieresis /upsilondieresis /omicrontonos /upsilontonos /omegatonos /.notdef
+]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/INDEX	(revision 2476)
@@ -0,0 +1,75 @@
+Devices                 List of Graphical Devices
+Hershey                 Hershey Vector Fonts in R
+Japanese                Japanese characters in R
+Type1Font               Type 1 and CID Fonts
+X11Fonts                X11 Fonts
+adjustcolor             Adjust Colors in One or More Directions
+                        Conveniently.
+as.graphicsAnnot        Coerce an Object for Graphics Annotation
+as.raster               Create a Raster Object
+axisTicks               Compute Pretty Axis Tick Scales
+boxplot.stats           Box Plot Statistics
+check.options           Set Options with Consistency Checks
+chull                   Compute Convex Hull of a Set of Points
+cm                      Unit Transformation
+col2rgb                 Color to RGB Conversion
+colorRamp               Color interpolation
+colors                  Color Names
+contourLines            Calculate Contour Lines
+convertColor            Convert between Colour Spaces
+densCols                Colors for Smooth Density Plots
+dev.capabilities        Query Capabilities of the Current Graphics
+                        Device
+dev.capture             Capture device output as a raster image
+dev.copy                Copy Graphics Between Multiple Devices
+dev.cur                 Control Multiple Devices
+dev.flush               Hold or Flush Output on an On-Screen Graphics
+                        Device.
+dev.interactive         Is the Current Graphics Device Interactive?
+dev.size                Find Size of Device Surface
+dev2bitmap              Graphics Device for Bitmap Files via
+                        Ghostscript
+devAskNewPage           Prompt before New Page
+embedFonts              Embed Fonts in PostScript and PDF
+extendrange             Extend a Numerical Range by a Small Percentage
+getGraphicsEvent        Wait for a mouse or keyboard event from a
+                        graphics window
+grDevices-package       The R Graphics Devices and Support for Colours
+                        and Fonts
+grSoftVersion           Report Versions of Graphics Software
+gray                    Gray Level Specification
+gray.colors             Gray Color Palette
+hcl                     HCL Color Specification
+hsv                     HSV Color Specification
+make.rgb                Create colour spaces
+n2mfrow                 Compute Default mfrow From Number of Plots
+nclass.Sturges          Compute the Number of Classes for a Histogram
+palette                 Set or View the Graphics Palette
+pdf                     PDF Graphics Device
+pdf.options             Auxiliary Function to Set/View Defaults for
+                        Arguments of pdf
+pictex                  A PicTeX Graphics Driver
+plotmath                Mathematical Annotation in R
+png                     BMP, JPEG, PNG and TIFF graphics devices
+postscript              PostScript Graphics
+postscriptFonts         PostScript and PDF Font Families
+pretty.Date             Pretty Breakpoints for Date-Time Classes
+ps.options              Auxiliary Function to Set/View Defaults for
+                        Arguments of postscript
+quartz                  macOS Quartz Device
+quartzFonts             quartz Fonts
+rainbow                 Color Palettes
+recordGraphics          Record Graphics Operations
+recordPlot              Record and Replay Plots
+rgb                     RGB Color Specification
+rgb2hsv                 RGB to HSV Conversion
+savePlot                Save Cairo X11 Plot to File
+svg                     Cairographics-based SVG, PDF and PostScript
+                        Graphics Devices
+trans3d                 3D to 2D Transformation for Perspective Plots
+x11                     X Window System Graphics
+xfig                    XFig Graphics Device
+xy.coords               Extracting Plotting Structures
+xyTable                 Multiplicities of (x,y) Points, e.g., for a
+                        Sunflower Plot
+xyz.coords              Extracting Plotting Structures
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/help/grDevices.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/help/grDevices.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/help/AnIndex	(revision 2476)
@@ -0,0 +1,149 @@
+grDevices-package	grDevices-package
+.axisPars	axisTicks
+.ps.prolog	postscript
+adjustcolor	adjustcolor
+as.graphicsAnnot	as.graphicsAnnot
+as.raster	as.raster
+as.raster.array	as.raster
+as.raster.character	as.raster
+as.raster.logical	as.raster
+as.raster.matrix	as.raster
+as.raster.numeric	as.raster
+as.raster.raw	as.raster
+atop	plotmath
+axisTicks	axisTicks
+bar	plotmath
+bgroup	plotmath
+bitmap	dev2bitmap
+blues9	densCols
+bmp	png
+bold	plotmath
+bolditalic	plotmath
+boxplot.stats	boxplot.stats
+cairo_pdf	cairo
+cairo_ps	cairo
+check.options	check.options
+chull	chull
+CIDFont	Type1Font
+cm	cm
+cm.colors	palettes
+col2rgb	col2rgb
+colorConverter	make.rgb
+colorRamp	colorRamp
+colorRampPalette	colorRamp
+colors	colors
+colorspaces	convertColor
+colours	colors
+contourLines	contourLines
+convertColor	convertColor
+densCols	densCols
+dev.capabilities	dev.capabilities
+dev.capture	dev.capture
+dev.control	dev2
+dev.copy	dev2
+dev.copy2eps	dev2
+dev.copy2pdf	dev2
+dev.cur	dev
+dev.flush	dev.flush
+dev.hold	dev.flush
+dev.interactive	dev.interactive
+dev.list	dev
+dev.new	dev
+dev.next	dev
+dev.off	dev
+dev.prev	dev
+dev.print	dev2
+dev.set	dev
+dev.size	dev.size
+dev2bitmap	dev2bitmap
+devAskNewPage	devAskNewPage
+device	Devices
+deviceIsInteractive	dev.interactive
+Devices	Devices
+displaystyle	plotmath
+dot	plotmath
+embedFonts	embedFonts
+extendrange	extendrange
+frac	plotmath
+getGraphicsEvent	getGraphicsEvent
+getGraphicsEventEnv	getGraphicsEvent
+graphics.off	dev
+gray	gray
+gray.colors	gray.colors
+grDevices	grDevices-package
+grey	gray
+grey.colors	gray.colors
+group	plotmath
+grSoftVersion	grSoftVersion
+hat	plotmath
+hcl	hcl
+heat.colors	palettes
+Hershey	Hershey
+hsv	hsv
+inf	plotmath
+integral	plotmath
+is.raster	as.raster
+italic	plotmath
+Japanese	Japanese
+jpeg	png
+make.rgb	make.rgb
+n2mfrow	n2mfrow
+nclass.FD	nclass
+nclass.scott	nclass
+nclass.Sturges	nclass
+over	plotmath
+palette	palette
+pdf	pdf
+pdf.options	pdf.options
+pdfFonts	postscriptFonts
+phantom	plotmath
+pictex	pictex
+plain	plotmath
+plotmath	plotmath
+png	png
+postscript	postscript
+postscriptFonts	postscriptFonts
+pretty.Date	pretty.Date
+pretty.POSIXt	pretty.Date
+print.recordedplot	recordplot
+ps.options	ps.options
+quartz	quartz
+quartz.options	quartz
+quartz.save	quartz
+quartzFont	quartzFonts
+quartzFonts	quartzFonts
+rainbow	palettes
+recordGraphics	recordGraphics
+recordPlot	recordplot
+replayPlot	recordplot
+rgb	rgb
+rgb2hsv	rgb2hsv
+ring	plotmath
+savePlot	savePlot
+scriptscriptstyle	plotmath
+scriptstyle	plotmath
+setEPS	ps.options
+setGraphicsEventEnv	getGraphicsEvent
+setGraphicsEventHandlers	getGraphicsEvent
+setPS	ps.options
+sup	plotmath
+svg	cairo
+symbol	plotmath
+terrain.colors	palettes
+textstyle	plotmath
+tiff	png
+topo.colors	palettes
+trans3d	trans3d
+Type1Font	Type1Font
+underline	plotmath
+widehat	plotmath
+widetilde	plotmath
+X11	x11
+x11	x11
+X11.options	x11
+X11Font	x11Fonts
+X11Fonts	x11Fonts
+xfig	xfig
+xy.coords	xy.coords
+xyTable	xyTable
+xyz.coords	xyz.coords
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/help/grDevices.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/help/grDevices.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/NAMESPACE	(revision 2476)
@@ -0,0 +1,65 @@
+useDynLib(grDevices, .registration = TRUE, .fixes = "C_")
+
+export(Hershey, adjustcolor, as.graphicsAnnot, as.raster, axisTicks,
+       blues9, boxplot.stats, check.options, chull, CIDFont, col2rgb,
+       colors, colours, cm, colorRamp, colorRampPalette, contourLines,
+       convertColor, colorConverter, colorspaces, cm.colors, densCols,
+       devAskNewPage, dev.capabilities, dev.capture, dev.control,
+       dev.copy, dev.copy2eps, dev.copy2pdf, dev.cur, dev.hold,
+       dev.flush, dev.interactive, dev.list, dev.new, dev.next,
+       dev.off, dev.prev, dev.print, dev.set, dev.size, dev2bitmap,
+       deviceIsInteractive, embedFonts, extendrange, getGraphicsEvent,
+       getGraphicsEventEnv, graphics.off, gray, grey, gray.colors,
+       grSoftVersion, grey.colors, heat.colors, hsv, hcl, is.raster,
+       make.rgb, n2mfrow, nclass.Sturges, nclass.FD, nclass.scott,
+       palette, pdf, pdf.options, pdfFonts, pictex, postscript,
+       postscriptFonts, ps.options, rainbow, recordGraphics,
+       recordPlot, replayPlot, rgb, rgb2hsv, savePlot, setEPS,
+       setGraphicsEventEnv, setGraphicsEventHandlers, setPS,
+       terrain.colors, topo.colors, trans3d, Type1Font, .axisPars,
+       xfig, xyTable, xy.coords, xyz.coords)
+
+## devices common to all platforms
+export(X11, x11, bitmap, bmp, cairo_pdf, cairo_ps, jpeg, png, svg, tiff)
+
+S3method(print, recordedplot)
+S3method(print, colorConverter)
+S3method(print, RGBcolorConverter)
+
+S3method("checkFont", "default")
+S3method("checkFont", "Type1Font")
+S3method("checkFont", "CIDFont")
+S3method("matchEncoding", "Type1Font")
+S3method("matchEncoding", "CIDFont")
+
+S3method("as.raster", "raster")
+S3method("as.raster", "logical")
+S3method("as.raster", "numeric")
+S3method("as.raster", "character")
+S3method("as.raster", "matrix")
+S3method("as.raster", "array")
+
+S3method("as.matrix", "raster")
+S3method("is.na", "raster")
+S3method("anyNA", "raster")
+S3method("[", "raster")
+S3method("[<-", "raster")
+S3method("Ops", "raster")
+
+S3method("print", "raster")
+
+S3method(pretty, Date,   prettyDate)
+S3method(pretty, POSIXt, prettyDate)
+
+
+if(tools:::.OStype() == "windows") {
+    export(bringToTop, msgWindow, win.graph, win.metafile, win.print,
+           windows, windows.options, windowsFont, windowsFonts)
+
+    S3method("[", SavedPlots)
+    S3method(print, SavedPlots)
+    importFrom("utils", "shortPathName")
+} else {
+    export(X11.options, X11Font, X11Fonts,
+           quartz, quartz.options, quartz.save, quartzFont, quartzFonts)
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/R/grDevices
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/R/grDevices	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/R/grDevices	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/R/grDevices.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/R/grDevices.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/R/grDevices.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/R/grDevices.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/DESCRIPTION	(revision 2476)
@@ -0,0 +1,11 @@
+Package: grDevices
+Version: 3.3.2
+Priority: base
+Title: The R Graphics Devices and Support for Colours and Fonts
+Author: R Core Team and contributors worldwide
+Maintainer: R Core Team <R-core@r-project.org>
+Description: Graphics devices and support for base and grid graphics.
+License: Part of R 3.3.2
+Suggests: KernSmooth
+NeedsCompilation: yes
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:32:20 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n022003l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n022003l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/c059013l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/c059013l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n022004l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n022004l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Helvetica-Bold.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Helvetica-Bold.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/s050000l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/s050000l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/c059016l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/c059016l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Times-Italic.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Times-Italic.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/p052003l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/p052003l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvn_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvn_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/p052004l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/p052004l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvo_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvo_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ArialMT.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ArialMT.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvbo____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvbo____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/bkd_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/bkd_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ncb_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ncb_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/a010013l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/a010013l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Helvetica-BoldOblique.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Helvetica-BoldOblique.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/bkl_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/bkl_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/a010015l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/a010015l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/nci_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/nci_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Symbol.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Symbol.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Courier-Oblique.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Courier-Oblique.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvno____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvno____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/pob_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/pob_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/b018032l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/b018032l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ncr_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ncr_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/b018035l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/b018035l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n021003l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n021003l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/CM_regular_10.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/CM_regular_10.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n021004l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n021004l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/poi_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/poi_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/tibi____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/tibi____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/sy______.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/sy______.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Times-BoldItalic.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Times-BoldItalic.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019003l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019003l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/cmbxti10.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/cmbxti10.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019004l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019004l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvnb____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvnb____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019043l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019043l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/por_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/por_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019044l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019044l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ArialMT-Bold.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ArialMT-Bold.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Courier.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Courier.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvnbo___.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvnbo___.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/CM_boldx_italic_10.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/CM_boldx_italic_10.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n022023l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n022023l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/c059033l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/c059033l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n022024l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n022024l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/CM_italic_10.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/CM_italic_10.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/c059036l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/c059036l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Courier-Bold.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Courier-Bold.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/agd_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/agd_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/CM_boldx_10.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/CM_boldx_10.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/p052023l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/p052023l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/p052024l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/p052024l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Times-Roman.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Times-Roman.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ArialMT-Italic.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ArialMT-Italic.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/cmti10.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/cmti10.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/cob_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/cob_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Helvetica-Oblique.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Helvetica-Oblique.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/a010033l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/a010033l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/bkdi____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/bkdi____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/a010035l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/a010035l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/MustRead.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/MustRead.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/MustRead.html	(revision 2476)
@@ -0,0 +1,20 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+
+	<head>
+		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
+		<meta name="generator" content="Adobe GoLive 4">
+		<title>Core 14 AFM Files - ReadMe</title>
+	</head>
+
+	<body bgcolor="white">
+		<font color="white">or</font>
+		<table border="0" cellpadding="0" cellspacing="2">
+			<tr>
+				<td width="40"></td>
+				<td width="300">This file and the 14 PostScript(R) AFM files it accompanies may be used, copied, and distributed for any purpose and without charge, with or without modification, provided that all copyright notices are retained; that the AFM files are not distributed without this file; that all modifications to this file or any of the AFM files are prominently noted in the modified file(s); and that this paragraph is not modified. Adobe Systems has no responsibility or obligation to support the use of the AFM files. <font color="white">Col</font></td>
+			</tr>
+		</table>
+	</body>
+
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/MustRead.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/agdo____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/agdo____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Courier-BoldOblique.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Courier-BoldOblique.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ncbi____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ncbi____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/com_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/com_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/b018012l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/b018012l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/agw_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/agw_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/tib_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/tib_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/coo_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/coo_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/README
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/README	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/README	(revision 2476)
@@ -0,0 +1,20 @@
+The *___.afm files were downloaded from 
+ftp://ftp.adobe.com/pub/adobe/type/win/all/afmfiles/base35
+and coverted to LF line endings (from CRLF)
+
+The Courier*, Helvetica*, Times*, Symbol.afm and ZapfDingbats.afm files
+were downloaded from 
+http://partners.adobe.com/asn/tech/type/fontinfo/Core14_AFMs.zip 
+and have licence file MustRead.html.  They are unmodified.
+
+*l.afm are Copyright 1999 by (URW)++ Design & Development, distributed
+under GPL as part of GhostScript 6.52 and copied from there.
+Those for NimbusMon have been corrected to all be 'IsFixedPitch true'
+
+CM_*.afm were converted by Brian D'Urso from afms which are copyright
+by the American Mathematical Society, but `the AMS does require that
+the AMS copyright notice be removed from any derivative versions of
+the fonts which have been altered in any way'.
+
+
+BDR 2001-01-13, 2001-11-28
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/b018015l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/b018015l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ZapfDingbats.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ZapfDingbats.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/bkli____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/bkli____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/cobo____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/cobo____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/tii_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/tii_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n021023l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n021023l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n021024l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n021024l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/CM_symbol_10.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/CM_symbol_10.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/pobi____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/pobi____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019023l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019023l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/tir_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/tir_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/agwo____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/agwo____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019024l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019024l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019063l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019063l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ArialMT-BoldItalic.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/ArialMT-BoldItalic.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019064l.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/n019064l.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Times-Bold.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Times-Bold.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Helvetica.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/Helvetica.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hv______.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hv______.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvb_____.afm.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/afm/hvb_____.afm.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/demo/hclColors.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/demo/hclColors.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/demo/hclColors.R	(revision 2476)
@@ -0,0 +1,63 @@
+### ------ hcl() explorations
+
+hcl.wheel <-
+    function(chroma = 35, lums = 0:100, hues = 1:360, asp = 1,
+             p.cex = 0.6, do.label = FALSE, rev.lum = FALSE,
+             fixup = TRUE)
+{
+    ## Purpose: show chroma "sections" of hcl() color space; see  ?hcl
+    ## ----------------------------------------------------------------------
+    ## Arguments: chroma: can be vector -> multiple plots are done,
+    ##            lums, hues, fixup : all corresponding to hcl()'s args
+    ##            rev.lum: logical indicating if luminance
+    ## 			should go from outer to inner
+    ## ----------------------------------------------------------------------
+    ## Author: Martin Maechler, Date: 24 Jun 2005
+
+    require("graphics")
+    stopifnot(is.numeric(lums), lums >= 0, lums <= 100,
+              is.numeric(hues), hues >= 0, hues <= 360,
+              is.numeric(chroma), chroma >= 0, (nch <- length(chroma)) >= 1)
+    if(is.unsorted(hues)) hues <- sort(hues)
+    if(nch > 1) {
+        op <- par(mfrow= n2mfrow(nch), mar = c(0,0,0,0), xpd = TRUE)
+        on.exit(par(op))
+    }
+    for(i.c in 1:nch) {
+        plot(-1:1,-1:1, type="n", axes = FALSE, xlab="",ylab="", asp = asp)
+        ## main = sprintf("hcl(h = <angle>, c = %g)", chroma[i.c]),
+        text(0.4, 0.99, paste("chroma =", format(chroma[i.c])),
+             adj = 0, font = 4)
+        l.s <- (if(rev.lum) rev(lums) else lums) / max(lums) # <= 1
+        for(ang in hues) { # could do all this using outer() instead of for()...
+            a. <- ang * pi/180
+            z.a <- exp(1i * a.)
+            cols <- hcl(ang, c = chroma[i.c], l = lums, fixup = fixup)
+            points(l.s * z.a, pch = 16, col = cols, cex = p.cex)
+            ##if(do."text") : draw the 0,45,90,... angle "lines"
+            if(do.label)
+                text(z.a*1.05, labels = ang, col = cols[length(cols)/2],
+                     srt = ang)
+        }
+        if(!fixup) ## show the outline
+            lines(exp(1i * hues * pi/180))
+   }
+   invisible()
+}
+
+## and now a few interesting calls :
+
+hcl.wheel() # and watch it redraw when you fiddle with the graphic window
+hcl.wheel(rev.lum= TRUE) # ditto
+hcl.wheel(do.lab = TRUE) # ditto
+
+
+## Now watch:
+hcl.wheel(ch = c(25,35,45,55))
+
+hcl.wheel(ch = seq(10, 90, by = 10), p.cex = 0.4)
+hcl.wheel(ch = seq(10, 90, by = 10), p.cex = 0.3, fixup = FALSE)
+hcl.wheel(ch = seq(10, 90, by = 10), p.cex = 0.3, rev.lum = TRUE)
+if(dev.interactive()) # new "graphics window" -- to compare with previous :
+    dev.new()
+hcl.wheel(ch = seq(10, 90, by = 10), p.cex = 0.3, rev.lum = TRUE, fixup=FALSE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/demo/colors.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/demo/colors.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/demo/colors.R	(revision 2476)
@@ -0,0 +1,108 @@
+### ----------- Show (almost) all named colors ---------------------
+
+## 1) with traditional 'graphics' package:
+showCols1 <- function(bg = "gray", cex = 0.75, srt = 30) {
+    m <- ceiling(sqrt(n <- length(cl <- colors())))
+    length(cl) <- m*m; cm <- matrix(cl, m)
+    ##
+    require("graphics")
+    op <- par(mar=rep(0,4), ann=FALSE, bg = bg); on.exit(par(op))
+    plot(1:m,1:m, type="n", axes=FALSE)
+    text(col(cm), rev(row(cm)), cm,  col = cl, cex=cex, srt=srt)
+}
+showCols1()
+
+## 2) with 'grid' package:
+showCols2 <- function(bg = "grey", cex = 0.75, rot = 30) {
+    m <- ceiling(sqrt(n <- length(cl <- colors())))
+    length(cl) <- m*m; cm <- matrix(cl, m)
+    ##
+    require("grid")
+    grid.newpage(); vp <- viewport(w = .92, h = .92)
+    grid.rect(gp=gpar(fill=bg))
+    grid.text(cm, x = col(cm)/m, y = rev(row(cm))/m, rot = rot,
+              vp=vp, gp=gpar(cex = cex, col = cm))
+}
+showCols2()
+showCols2(bg = "gray33")
+
+###
+
+##' @title Comparing Colors
+##' @param col
+##' @param nrow
+##' @param ncol
+##' @param txt.col
+##' @return the grid layout, invisibly
+##' @author Marius Hofert, originally
+plotCol <- function(col, nrow=1, ncol=ceiling(length(col) / nrow),
+                    txt.col="black") {
+    stopifnot(nrow >= 1, ncol >= 1)
+    if(length(col) > nrow*ncol)
+        warning("some colors will not be shown")
+    require(grid)
+    grid.newpage()
+    gl <- grid.layout(nrow, ncol)
+    pushViewport(viewport(layout=gl))
+    ic <- 1
+    for(i in 1:nrow) {
+        for(j in 1:ncol) {
+            pushViewport(viewport(layout.pos.row=i, layout.pos.col=j))
+            grid.rect(gp= gpar(fill=col[ic]))
+            grid.text(col[ic], gp=gpar(col=txt.col))
+            upViewport()
+            ic <- ic+1
+        }
+    }
+    upViewport()
+    invisible(gl)
+}
+
+## A Chocolate Bar of colors:
+plotCol(c("#CC8C3C", paste0("chocolate", 2:4),
+          paste0("darkorange", c("",1:2)), paste0("darkgoldenrod", 1:2),
+          "orange", "orange1", "sandybrown", "tan1", "tan2"),
+        nrow=2)
+
+##' Find close R colors() to a given color {original by Marius Hofert)
+##' using Euclidean norm in (HSV / RGB / ...) color space
+nearRcolor <- function(rgb, cSpace = c("hsv", "rgb255", "Luv", "Lab"),
+                       dist = switch(cSpace, "hsv" = 0.10, "rgb255" = 30,
+                       "Luv" = 15, "Lab" = 12))
+{
+    if(is.character(rgb)) rgb <- col2rgb(rgb)
+    stopifnot(length(rgb <- as.vector(rgb)) == 3)
+    Rcol <- col2rgb(.cc <- colors())
+    uniqC <- !duplicated(t(Rcol)) # gray9 == grey9 (etc)
+    Rcol <- Rcol[, uniqC] ; .cc <- .cc[uniqC]
+    cSpace <- match.arg(cSpace)
+    convRGB2 <- function(Rgb, to)
+        t(convertColor(t(Rgb), from="sRGB", to=to, scale.in=255))
+    ## the transformation,  rgb{0..255} --> cSpace :
+    TransF <- switch(cSpace,
+                     "rgb255" = identity,
+                     "hsv" = rgb2hsv,
+                     "Luv" = function(RGB) convRGB2(RGB, "Luv"),
+                     "Lab" = function(RGB) convRGB2(RGB, "Lab"))
+    d <- sqrt(colSums((TransF(Rcol) - as.vector(TransF(rgb)))^2))
+    iS <- sort.list(d[near <- d <= dist])# sorted: closest first
+    setNames(.cc[near][iS], format(d[near][iS], digits=3))
+}
+
+nearRcolor(col2rgb("tan2"), "rgb")
+nearRcolor(col2rgb("tan2"), "hsv")
+nearRcolor(col2rgb("tan2"), "Luv")
+nearRcolor(col2rgb("tan2"), "Lab")
+
+nearRcolor("#334455")
+
+## Now, consider choosing a color by looking in the
+## neighborhood of one you know :
+
+plotCol(nearRcolor("deepskyblue", "rgb", dist=50))
+plotCol(nearRcolor("deepskyblue", dist=.1))
+
+plotCol(nearRcolor("tomato", "rgb", dist= 50), nrow=3)
+plotCol(nearRcolor("tomato", "hsv", dist=.12), nrow=3)
+plotCol(nearRcolor("tomato", "Luv", dist= 25), nrow=3)
+plotCol(nearRcolor("tomato", "Lab", dist= 18), nrow=3)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/html/00Index.html	(revision 2476)
@@ -0,0 +1,459 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: The R Graphics Devices and Support for Colours and Fonts</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> The R Graphics Devices and Support for Colours and Fonts
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;grDevices&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../demo">Code demos</a>.  Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="# "> </a>
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#G">G</a>
+<a href="#H">H</a>
+<a href="#I">I</a>
+<a href="#J">J</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#O">O</a>
+<a href="#P">P</a>
+<a href="#Q">Q</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#U">U</a>
+<a href="#W">W</a>
+<a href="#X">X</a>
+<a href="#misc">misc</a>
+</p>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="grDevices-package.html">grDevices-package</a></td>
+<td>The R Graphics Devices and Support for Colours and Fonts</td></tr>
+</table>
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="adjustcolor.html">adjustcolor</a></td>
+<td>Adjust Colors in One or More Directions Conveniently.</td></tr>
+<tr><td style="width: 25%;"><a href="as.graphicsAnnot.html">as.graphicsAnnot</a></td>
+<td>Coerce an Object for Graphics Annotation</td></tr>
+<tr><td style="width: 25%;"><a href="as.raster.html">as.raster</a></td>
+<td>Create a Raster Object</td></tr>
+<tr><td style="width: 25%;"><a href="as.raster.html">as.raster.array</a></td>
+<td>Create a Raster Object</td></tr>
+<tr><td style="width: 25%;"><a href="as.raster.html">as.raster.character</a></td>
+<td>Create a Raster Object</td></tr>
+<tr><td style="width: 25%;"><a href="as.raster.html">as.raster.logical</a></td>
+<td>Create a Raster Object</td></tr>
+<tr><td style="width: 25%;"><a href="as.raster.html">as.raster.matrix</a></td>
+<td>Create a Raster Object</td></tr>
+<tr><td style="width: 25%;"><a href="as.raster.html">as.raster.numeric</a></td>
+<td>Create a Raster Object</td></tr>
+<tr><td style="width: 25%;"><a href="as.raster.html">as.raster.raw</a></td>
+<td>Create a Raster Object</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">atop</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="axisTicks.html">axisTicks</a></td>
+<td>Compute Pretty Axis Tick Scales</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="plotmath.html">bar</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">bgroup</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="dev2bitmap.html">bitmap</a></td>
+<td>Graphics Device for Bitmap Files via Ghostscript</td></tr>
+<tr><td style="width: 25%;"><a href="densCols.html">blues9</a></td>
+<td>Colors for Smooth Density Plots</td></tr>
+<tr><td style="width: 25%;"><a href="png.html">bmp</a></td>
+<td>BMP, JPEG, PNG and TIFF graphics devices</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">bold</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">bolditalic</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="boxplot.stats.html">boxplot.stats</a></td>
+<td>Box Plot Statistics</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="cairo.html">cairo_pdf</a></td>
+<td>Cairographics-based SVG, PDF and PostScript Graphics Devices</td></tr>
+<tr><td style="width: 25%;"><a href="cairo.html">cairo_ps</a></td>
+<td>Cairographics-based SVG, PDF and PostScript Graphics Devices</td></tr>
+<tr><td style="width: 25%;"><a href="check.options.html">check.options</a></td>
+<td>Set Options with Consistency Checks</td></tr>
+<tr><td style="width: 25%;"><a href="chull.html">chull</a></td>
+<td>Compute Convex Hull of a Set of Points</td></tr>
+<tr><td style="width: 25%;"><a href="Type1Font.html">CIDFont</a></td>
+<td>Type 1 and CID Fonts</td></tr>
+<tr><td style="width: 25%;"><a href="cm.html">cm</a></td>
+<td>Unit Transformation</td></tr>
+<tr><td style="width: 25%;"><a href="palettes.html">cm.colors</a></td>
+<td>Color Palettes</td></tr>
+<tr><td style="width: 25%;"><a href="col2rgb.html">col2rgb</a></td>
+<td>Color to RGB Conversion</td></tr>
+<tr><td style="width: 25%;"><a href="make.rgb.html">colorConverter</a></td>
+<td>Create colour spaces</td></tr>
+<tr><td style="width: 25%;"><a href="colorRamp.html">colorRamp</a></td>
+<td>Color interpolation</td></tr>
+<tr><td style="width: 25%;"><a href="colorRamp.html">colorRampPalette</a></td>
+<td>Color interpolation</td></tr>
+<tr><td style="width: 25%;"><a href="colors.html">colors</a></td>
+<td>Color Names</td></tr>
+<tr><td style="width: 25%;"><a href="convertColor.html">colorspaces</a></td>
+<td>Convert between Colour Spaces</td></tr>
+<tr><td style="width: 25%;"><a href="colors.html">colours</a></td>
+<td>Color Names</td></tr>
+<tr><td style="width: 25%;"><a href="contourLines.html">contourLines</a></td>
+<td>Calculate Contour Lines</td></tr>
+<tr><td style="width: 25%;"><a href="convertColor.html">convertColor</a></td>
+<td>Convert between Colour Spaces</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="densCols.html">densCols</a></td>
+<td>Colors for Smooth Density Plots</td></tr>
+<tr><td style="width: 25%;"><a href="dev.capabilities.html">dev.capabilities</a></td>
+<td>Query Capabilities of the Current Graphics Device</td></tr>
+<tr><td style="width: 25%;"><a href="dev.capture.html">dev.capture</a></td>
+<td>Capture device output as a raster image</td></tr>
+<tr><td style="width: 25%;"><a href="dev2.html">dev.control</a></td>
+<td>Copy Graphics Between Multiple Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev2.html">dev.copy</a></td>
+<td>Copy Graphics Between Multiple Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev2.html">dev.copy2eps</a></td>
+<td>Copy Graphics Between Multiple Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev2.html">dev.copy2pdf</a></td>
+<td>Copy Graphics Between Multiple Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev.html">dev.cur</a></td>
+<td>Control Multiple Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev.flush.html">dev.flush</a></td>
+<td>Hold or Flush Output on an On-Screen Graphics Device.</td></tr>
+<tr><td style="width: 25%;"><a href="dev.flush.html">dev.hold</a></td>
+<td>Hold or Flush Output on an On-Screen Graphics Device.</td></tr>
+<tr><td style="width: 25%;"><a href="dev.interactive.html">dev.interactive</a></td>
+<td>Is the Current Graphics Device Interactive?</td></tr>
+<tr><td style="width: 25%;"><a href="dev.html">dev.list</a></td>
+<td>Control Multiple Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev.html">dev.new</a></td>
+<td>Control Multiple Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev.html">dev.next</a></td>
+<td>Control Multiple Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev.html">dev.off</a></td>
+<td>Control Multiple Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev.html">dev.prev</a></td>
+<td>Control Multiple Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev2.html">dev.print</a></td>
+<td>Copy Graphics Between Multiple Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev.html">dev.set</a></td>
+<td>Control Multiple Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev.size.html">dev.size</a></td>
+<td>Find Size of Device Surface</td></tr>
+<tr><td style="width: 25%;"><a href="dev2bitmap.html">dev2bitmap</a></td>
+<td>Graphics Device for Bitmap Files via Ghostscript</td></tr>
+<tr><td style="width: 25%;"><a href="devAskNewPage.html">devAskNewPage</a></td>
+<td>Prompt before New Page</td></tr>
+<tr><td style="width: 25%;"><a href="Devices.html">device</a></td>
+<td>List of Graphical Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev.interactive.html">deviceIsInteractive</a></td>
+<td>Is the Current Graphics Device Interactive?</td></tr>
+<tr><td style="width: 25%;"><a href="Devices.html">Devices</a></td>
+<td>List of Graphical Devices</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">displaystyle</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">dot</a></td>
+<td>Mathematical Annotation in R</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="embedFonts.html">embedFonts</a></td>
+<td>Embed Fonts in PostScript and PDF</td></tr>
+<tr><td style="width: 25%;"><a href="extendrange.html">extendrange</a></td>
+<td>Extend a Numerical Range by a Small Percentage</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="plotmath.html">frac</a></td>
+<td>Mathematical Annotation in R</td></tr>
+</table>
+
+<h2><a name="G">-- G --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="getGraphicsEvent.html">getGraphicsEvent</a></td>
+<td>Wait for a mouse or keyboard event from a graphics window</td></tr>
+<tr><td style="width: 25%;"><a href="getGraphicsEvent.html">getGraphicsEventEnv</a></td>
+<td>Wait for a mouse or keyboard event from a graphics window</td></tr>
+<tr><td style="width: 25%;"><a href="dev.html">graphics.off</a></td>
+<td>Control Multiple Devices</td></tr>
+<tr><td style="width: 25%;"><a href="gray.html">gray</a></td>
+<td>Gray Level Specification</td></tr>
+<tr><td style="width: 25%;"><a href="gray.colors.html">gray.colors</a></td>
+<td>Gray Color Palette</td></tr>
+<tr><td style="width: 25%;"><a href="grDevices-package.html">grDevices</a></td>
+<td>The R Graphics Devices and Support for Colours and Fonts</td></tr>
+<tr><td style="width: 25%;"><a href="gray.html">grey</a></td>
+<td>Gray Level Specification</td></tr>
+<tr><td style="width: 25%;"><a href="gray.colors.html">grey.colors</a></td>
+<td>Gray Color Palette</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">group</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="grSoftVersion.html">grSoftVersion</a></td>
+<td>Report Versions of Graphics Software</td></tr>
+</table>
+
+<h2><a name="H">-- H --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="plotmath.html">hat</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="hcl.html">hcl</a></td>
+<td>HCL Color Specification</td></tr>
+<tr><td style="width: 25%;"><a href="palettes.html">heat.colors</a></td>
+<td>Color Palettes</td></tr>
+<tr><td style="width: 25%;"><a href="Hershey.html">Hershey</a></td>
+<td>Hershey Vector Fonts in R</td></tr>
+<tr><td style="width: 25%;"><a href="hsv.html">hsv</a></td>
+<td>HSV Color Specification</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="plotmath.html">inf</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">integral</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="as.raster.html">is.raster</a></td>
+<td>Create a Raster Object</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">italic</a></td>
+<td>Mathematical Annotation in R</td></tr>
+</table>
+
+<h2><a name="J">-- J --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Japanese.html">Japanese</a></td>
+<td>Japanese characters in R</td></tr>
+<tr><td style="width: 25%;"><a href="png.html">jpeg</a></td>
+<td>BMP, JPEG, PNG and TIFF graphics devices</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="make.rgb.html">make.rgb</a></td>
+<td>Create colour spaces</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="n2mfrow.html">n2mfrow</a></td>
+<td>Compute Default mfrow From Number of Plots</td></tr>
+<tr><td style="width: 25%;"><a href="nclass.html">nclass.FD</a></td>
+<td>Compute the Number of Classes for a Histogram</td></tr>
+<tr><td style="width: 25%;"><a href="nclass.html">nclass.scott</a></td>
+<td>Compute the Number of Classes for a Histogram</td></tr>
+<tr><td style="width: 25%;"><a href="nclass.html">nclass.Sturges</a></td>
+<td>Compute the Number of Classes for a Histogram</td></tr>
+</table>
+
+<h2><a name="O">-- O --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="plotmath.html">over</a></td>
+<td>Mathematical Annotation in R</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="palette.html">palette</a></td>
+<td>Set or View the Graphics Palette</td></tr>
+<tr><td style="width: 25%;"><a href="pdf.html">pdf</a></td>
+<td>PDF Graphics Device</td></tr>
+<tr><td style="width: 25%;"><a href="pdf.options.html">pdf.options</a></td>
+<td>Auxiliary Function to Set/View Defaults for Arguments of pdf</td></tr>
+<tr><td style="width: 25%;"><a href="postscriptFonts.html">pdfFonts</a></td>
+<td>PostScript and PDF Font Families</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">phantom</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="pictex.html">pictex</a></td>
+<td>A PicTeX Graphics Driver</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">plain</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">plotmath</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="png.html">png</a></td>
+<td>BMP, JPEG, PNG and TIFF graphics devices</td></tr>
+<tr><td style="width: 25%;"><a href="postscript.html">postscript</a></td>
+<td>PostScript Graphics</td></tr>
+<tr><td style="width: 25%;"><a href="postscriptFonts.html">postscriptFonts</a></td>
+<td>PostScript and PDF Font Families</td></tr>
+<tr><td style="width: 25%;"><a href="pretty.Date.html">pretty.Date</a></td>
+<td>Pretty Breakpoints for Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="pretty.Date.html">pretty.POSIXt</a></td>
+<td>Pretty Breakpoints for Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="recordplot.html">print.recordedplot</a></td>
+<td>Record and Replay Plots</td></tr>
+<tr><td style="width: 25%;"><a href="ps.options.html">ps.options</a></td>
+<td>Auxiliary Function to Set/View Defaults for Arguments of postscript</td></tr>
+</table>
+
+<h2><a name="Q">-- Q --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="quartz.html">quartz</a></td>
+<td>macOS Quartz Device</td></tr>
+<tr><td style="width: 25%;"><a href="quartz.html">quartz.options</a></td>
+<td>macOS Quartz Device</td></tr>
+<tr><td style="width: 25%;"><a href="quartz.html">quartz.save</a></td>
+<td>macOS Quartz Device</td></tr>
+<tr><td style="width: 25%;"><a href="quartzFonts.html">quartzFont</a></td>
+<td>quartz Fonts</td></tr>
+<tr><td style="width: 25%;"><a href="quartzFonts.html">quartzFonts</a></td>
+<td>quartz Fonts</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="palettes.html">rainbow</a></td>
+<td>Color Palettes</td></tr>
+<tr><td style="width: 25%;"><a href="recordGraphics.html">recordGraphics</a></td>
+<td>Record Graphics Operations</td></tr>
+<tr><td style="width: 25%;"><a href="recordplot.html">recordPlot</a></td>
+<td>Record and Replay Plots</td></tr>
+<tr><td style="width: 25%;"><a href="recordplot.html">replayPlot</a></td>
+<td>Record and Replay Plots</td></tr>
+<tr><td style="width: 25%;"><a href="rgb.html">rgb</a></td>
+<td>RGB Color Specification</td></tr>
+<tr><td style="width: 25%;"><a href="rgb2hsv.html">rgb2hsv</a></td>
+<td>RGB to HSV Conversion</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">ring</a></td>
+<td>Mathematical Annotation in R</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="savePlot.html">savePlot</a></td>
+<td>Save Cairo X11 Plot to File</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">scriptscriptstyle</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">scriptstyle</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="ps.options.html">setEPS</a></td>
+<td>Auxiliary Function to Set/View Defaults for Arguments of postscript</td></tr>
+<tr><td style="width: 25%;"><a href="getGraphicsEvent.html">setGraphicsEventEnv</a></td>
+<td>Wait for a mouse or keyboard event from a graphics window</td></tr>
+<tr><td style="width: 25%;"><a href="getGraphicsEvent.html">setGraphicsEventHandlers</a></td>
+<td>Wait for a mouse or keyboard event from a graphics window</td></tr>
+<tr><td style="width: 25%;"><a href="ps.options.html">setPS</a></td>
+<td>Auxiliary Function to Set/View Defaults for Arguments of postscript</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">sup</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="cairo.html">svg</a></td>
+<td>Cairographics-based SVG, PDF and PostScript Graphics Devices</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">symbol</a></td>
+<td>Mathematical Annotation in R</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="palettes.html">terrain.colors</a></td>
+<td>Color Palettes</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">textstyle</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="png.html">tiff</a></td>
+<td>BMP, JPEG, PNG and TIFF graphics devices</td></tr>
+<tr><td style="width: 25%;"><a href="palettes.html">topo.colors</a></td>
+<td>Color Palettes</td></tr>
+<tr><td style="width: 25%;"><a href="trans3d.html">trans3d</a></td>
+<td>3D to 2D Transformation for Perspective Plots</td></tr>
+<tr><td style="width: 25%;"><a href="Type1Font.html">Type1Font</a></td>
+<td>Type 1 and CID Fonts</td></tr>
+</table>
+
+<h2><a name="U">-- U --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="plotmath.html">underline</a></td>
+<td>Mathematical Annotation in R</td></tr>
+</table>
+
+<h2><a name="W">-- W --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="plotmath.html">widehat</a></td>
+<td>Mathematical Annotation in R</td></tr>
+<tr><td style="width: 25%;"><a href="plotmath.html">widetilde</a></td>
+<td>Mathematical Annotation in R</td></tr>
+</table>
+
+<h2><a name="X">-- X --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="x11.html">X11</a></td>
+<td>X Window System Graphics</td></tr>
+<tr><td style="width: 25%;"><a href="x11.html">x11</a></td>
+<td>X Window System Graphics</td></tr>
+<tr><td style="width: 25%;"><a href="x11.html">X11.options</a></td>
+<td>X Window System Graphics</td></tr>
+<tr><td style="width: 25%;"><a href="x11Fonts.html">X11Font</a></td>
+<td>X11 Fonts</td></tr>
+<tr><td style="width: 25%;"><a href="x11Fonts.html">X11Fonts</a></td>
+<td>X11 Fonts</td></tr>
+<tr><td style="width: 25%;"><a href="xfig.html">xfig</a></td>
+<td>XFig Graphics Device</td></tr>
+<tr><td style="width: 25%;"><a href="xy.coords.html">xy.coords</a></td>
+<td>Extracting Plotting Structures</td></tr>
+<tr><td style="width: 25%;"><a href="xyTable.html">xyTable</a></td>
+<td>Multiplicities of (x,y) Points, e.g., for a Sunflower Plot</td></tr>
+<tr><td style="width: 25%;"><a href="xyz.coords.html">xyz.coords</a></td>
+<td>Extracting Plotting Structures</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="axisTicks.html">.axisPars</a></td>
+<td>Compute Pretty Axis Tick Scales</td></tr>
+<tr><td style="width: 25%;"><a href="postscript.html">.ps.prolog</a></td>
+<td>PostScript Graphics</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grDevices/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/data/Rdata.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/data/Rdata.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/data/Rdata.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/data/Rdata.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/data/Rdata.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/data/Rdata.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/data/datalist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/data/datalist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/data/datalist	(revision 2476)
@@ -0,0 +1,24 @@
+bladder: bladder bladder1 bladder2
+cancer
+cgd: cgd cgd0
+colon
+flchain
+genfan
+heart: heart jasa jasa1
+kidney
+leukemia: aml leukemia
+logan
+lung
+mgus: mgus mgus1
+mgus2
+nwtco
+ovarian
+pbc: pbc pbcseq
+rats: rats rats2
+retinopathy
+stanford2
+survexp: survexp.mn survexp.us survexp.usr
+tobin
+transplant
+uspop2
+veteran
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/libs/survival.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/libs/survival.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/CITATION	(revision 2476)
@@ -0,0 +1,18 @@
+bibentry(bibtype="Manual",
+         title = "A Package for Survival Analysis in S",
+	 author= person(c("Terry M"), "Therneau"),
+	 year =2015,
+	 note ="version 2.38",
+ 	 url="http://CRAN.R-project.org/package=survival",
+	 key= "survival-package"
+	 )
+bibentry(bibtype= "Book",
+         title="Modeling Survival Data: Extending the {C}ox Model",
+	 author=c(person(c("Terry M.", "Therneau")),
+	          person(c("Patricia M.", "Grambsch"))),
+         year = "2000",
+         publisher= "Springer",
+         address = "New York",
+         isbn = "0-387-98784-3",
+	 key = "survival-book"
+	 )
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/COPYRIGHTS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/COPYRIGHTS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/COPYRIGHTS	(revision 2476)
@@ -0,0 +1,3 @@
+Copyright 2000 Mayo Foundation for Medical Education and Research.  This
+software is accepted by users "as is" and without warranties or guarantees
+of any kind.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/NAMESPACE	(revision 2476)
@@ -0,0 +1,139 @@
+useDynLib(survival, .registration = TRUE)
+importFrom(splines, spline.des, ns)
+importFrom(stats, anova, approx, as.formula, coef, coefficients,
+           contr.treatment, cor, delete.response, extractAIC, formula, 
+           logLik, makepredictcall, median, model.extract,
+           model.frame, model.matrix, model.offset, model.response,
+           model.weights, na.fail, na.pass, napredict, naprint, naresid,
+           pchisq, pnorm, printCoefmat, predict, qnorm, quantile,
+           resid, residuals, runif, stat.anova, terms, var, vcov,
+           .checkMFClasses, .getXlevels)
+importFrom(graphics, plot, points, lines, axis, box, matlines, matplot, 
+           matpoints, par, segments)
+importFrom(Matrix, expm)
+importFrom(methods, as)
+importFrom(utils, getS3method, type.convert, methods)
+export(Surv, aareg, agreg.fit,
+       agexact.fit, attrassign, 
+       basehaz, cch, clogit, cluster, cox.zph, 
+       coxph, coxph.control, coxph.detail, coxph.fit,
+       coxph.wtest, finegray, format.Surv, 
+       frailty,  frailty.gamma, 
+       frailty.gaussian, frailty.t, is.Surv, 
+       is.na.Surv, is.ratetable, 
+       labels.survreg, match.ratetable, neardate,
+       psurvreg, qsurvreg, dsurvreg,
+       pspline, pyears, ratetable, ratetableDate, 
+       ridge, strata, survConcordance,
+       survSplit, survdiff, survexp,  survfit ,
+       survfit.formula,
+       survfitcoxph.fit, survfitKM, survfitCI,
+       survobrien,  
+       survpenal.fit, survConcordance.fit,
+       survreg, survreg.control, survreg.fit,
+       survreg.distributions, survregDtest, tcut,
+       tmerge, untangle.specials)
+S3method('[', aareg)
+S3method('[', Surv)
+S3method('[', cox.zph)
+S3method('[', coxph.penalty)
+S3method('[', ratetable)
+S3method('[', ratetable2)
+S3method('[', survfit)
+S3method('[', survfitms)
+S3method('[', tcut)
+S3method(Math, Surv)
+S3method(Math, ratetable)
+S3method(Ops, Surv)
+S3method(Ops, ratetable)
+S3method(Summary, Surv)
+S3method(anova, coxph)
+S3method(anova, coxphlist)
+S3method(anova, survreg)
+S3method(anova, survreglist)
+S3method(as.character, Surv)
+S3method(as.character, Surv)
+S3method(as.data.frame, Surv)
+S3method(as.matrix, ratetable)
+S3method(as.matrix, Surv)
+S3method(attrassign, default)
+S3method(attrassign, lm)
+S3method(extractAIC,coxph.penal)
+S3method(dim, survfit)
+S3method(format, Surv)
+S3method(is.na, Surv)
+S3method(is.na, coxph.penalty)
+S3method(is.na, ratetable)
+S3method(labels, survreg)
+S3method(levels, tcut)
+S3method(lines, aareg)
+S3method(lines, survexp)
+S3method(lines, survfit)
+S3method(logLik, coxph)
+S3method(logLik, survreg)
+S3method(makepredictcall, pspline)
+S3method(model.frame, coxph)
+S3method(model.frame, survreg)
+S3method(model.matrix, coxph)
+S3method(model.matrix, survreg)
+S3method(plot, aareg)
+S3method(plot, cox.zph)
+S3method(plot, survfit)
+S3method(points, survfit)
+S3method(predict, coxph)
+S3method(predict, coxph.penal)
+S3method(predict, pspline)
+S3method(predict, survreg)
+S3method(predict, survreg.penal)
+S3method(print, Surv)
+S3method(print, aareg)
+S3method(print, cch)
+S3method(print, clogit)
+S3method(print, cox.zph)
+S3method(print, coxph)
+S3method(print, coxph.null)
+S3method(print, coxph.penal)
+S3method(print, ratetable)
+S3method(print, summary.cch)
+S3method(print, summary.coxph)
+S3method(print, summary.coxph.penal)
+S3method(print, summary.survexp)
+S3method(print, summary.survfit)
+S3method(print, summary.survfitms)
+S3method(print, summary.survreg)
+S3method(print, survConcordance)
+S3method(print, survdiff)
+S3method(print, survexp)
+S3method(print, survfit)
+S3method(print, survfitms)
+S3method(print, survreg)
+S3method(print, survreg.penal)
+S3method(quantile, survfit)
+S3method(quantile, survfitms)
+S3method(ratetableDate, POSIXt)
+S3method(ratetableDate, Date)
+S3method(ratetableDate, date)
+S3method(ratetableDate, chron)
+S3method(rep, Surv)
+S3method(residuals, coxph)
+S3method(residuals, coxph.null)
+S3method(residuals, coxph.penal)
+S3method(residuals, survreg)
+S3method(residuals, survreg.penal)
+S3method(summary, aareg)
+S3method(summary, coxph)
+S3method(summary, coxph.penal)
+S3method(summary, ratetable)
+S3method(summary, pyears)
+S3method(summary, survexp)
+S3method(summary, survfit)
+S3method(summary, survfitms)
+S3method(summary, survreg)
+S3method(summary,cch)
+S3method(survfit, coxph)
+S3method(survfit, formula)
+S3method(survfit, matrix)
+S3method(survfit, Surv)
+S3method(vcov, cch)
+S3method(vcov, coxph)
+S3method(vcov, survreg)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/NEWS.Rd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/NEWS.Rd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/NEWS.Rd	(revision 2476)
@@ -0,0 +1,1223 @@
+\name{NEWS}
+\title{NEWS file for the survival package}
+
+\section{Changes in version 2.39-5}{
+  \itemize{
+    \item The summary.survfit routine assumed that the times argument
+    was sorted, contrary to the documentation.  Pointed out by Torsten
+    Hothorn.
+    \item The tmerge function would fail if the time variable was a Date
+      object.  It was due to the fact that as.Date(as.numeric(x)) 
+      fails when x is a date.  (A design flaw in Date, IMHO).  There were
+      also flaws when both the first and second data set were not sorted
+      by id; added a more complete test case for this.
+
+    \item An earlier change in dim.survfit had felled the survfit.matrix
+    function: it incorrectly assumed strata when there were none.
+    Unfortunately this didn't generate an error but rather multiple
+    copies of a single curve (and an incomprehensible explanation of
+    this single curve in the vignette).  Pointed out by E Lundt.
+
+    \item print.summary.survfitms would complain if only a single time
+    was specified.  A case where drop=FALSE was needed.
+}}
+
+\section{Changes in version 2.39-4}{
+  \itemize{
+    \item Create a stronger test suite for summary.survfit, and use
+    it to actually fix the error that 2.39-3 claimed to fix.  This
+    uncovered a long-standing inaccuracy with n.risk for in-between
+    time points.
+    \item Add a section on monotone splines to the splines vignette.
+}}
+  
+\section{Changes in version 2.39-3}{
+  \itemize{
+    \item For multi-state curves, the returned n.event component lost
+    its dimensions if any of the curves had only one observation.
+
+    \item Fix error in summary.survreg.  For multiple curves and
+    requested time points at or before the first time point in the data,
+    the values from curve 1 was used for all.  Pointed out by T Eigentler.
+
+    \item Fix an unitialized variable in C code, pointed out by Brian Ripley.
+}}
+
+\section{Changes in version 2.39-2}{
+  \itemize{
+    \item Small updates based on feedback from CRAN
+}}
+
+\section{Changes in version 2.39-1}{
+  \itemize{
+    \item Label the output dimnames from pyears with the variable names
+    from the model.  This makes it easier to read.
+    
+    \item Replace any refrences to model.frame with "stats::model.frame"
+    (all 38 of them).  The model.frame function uses non-standard
+    evaluation rules, and holding its hand like this is the only way to
+    ensure that we don't call a user function of the same name.
+    
+    \item The Surv function would almost always label the columns of the
+    resulting matrix, and the glmnet function depended on this. It now
+    always labels them per a request from Trevor Hastie.
+
+    \item Add the finegray function and expand the competing risks
+    vignette to document it.
+
+    \item Add a check to the quantile.survfit function for multi-state
+    models; quantiles are not well defined for this case.
+
+    \item Changes to the iteration path and convergence tests for coxph
+    models with (start, stop] data, driven by two user examples that
+    failed.  The data sets had serious statistical issues of
+    collinearity and/or outliers such that the final fits are not
+    practically useful, but now the routine finishes gracefully instead
+    of dying.  The upshot is much more care about the order in which
+    additions and subtractions of large numbers are done so as to avoid
+    cancellation error.
+
+    \item Fix an error to summary.survfit with the times argument: for
+    intermediate time points it would sometimes choose the wrong value
+    for the number at risk.  (Number at risk is a left continuous
+    function.) 
+}}
+    
+\section{Changes in version 2.38-5}{
+  \itemize{
+    \item Add more graphical arguments to plot.cox.zph in response to a user
+    request.
+    
+    \item Remove some of last vestiges of Splus support from the header
+    files for the C code, per a request from R core to remove mention of S.h.
+    
+    \item Multiple updates and corrections to the tmerge function,
+    including improvements to the vignette.  (As a result of using it in
+    a class where the TA tried out all manner of combinations.)
+    
+    \item Update survSplit: it now handles all types of status variables
+    (0/1, TRUE/FALSE, factors), the id and episode arguments are useful
+    for start/stop data, the data retains its original sort order (new
+    observations are inserted rather than put at the end), and the
+    function is illustrated in a vignette.
+    
+    \item Add the conf.times argument to plot.survfit.  This
+    allows for confidence bars at specified times, which are useful
+    when the plot is crowded.
+
+    \item Survfit changes that are NOT backward compatable!
+    \itemize{
+      \item Change the default for mark.time to FALSE
+      \item Change the behavior of xscale so that it matches that of
+      yscale, i.e., it changes only the label and not the underlying
+      scale.  Follow on annotations such as legend or locator are in the
+      orignal scale of the data.
+      \item For a matrix of curves, e.g. competing risks, print and
+      plot them in column major order rather than row major, so as 
+      to match the usual R behavior.
+      }
+    
+    \item Fix an error in the help page for the cohort
+    argument of survexp, pointed out by Karl Ove Hufthammer.
+
+    \item The anova and logLik functions would fail when given a
+    null model (right hand side of 1 or only an offset).  Pointed
+    out by Karl Ove Hufthammer.
+
+    \item The recently added code to generate an error when the same
+    variable appears on both sides of a formula in coxph (a good idea)
+    caused a failure if there was offset statement that contains a '-'
+    sign.  Pointed out by Abra Jeffers.
+}}
+
+\section{Changes in version 2.38-3}{
+  \itemize{
+    \item Add more imports to the NAMESPACE file per a request from CRAN
+
+    \item Add a length method for Surv objects.  Requested by Max Kuhn.
+    (2015/6/17).
+
+    \item Fix an error in neardate. When both input data sets were
+    unsorted the last match could be wrong.
+}}
+
+\section{Changes in version 2.38-2}{
+  \itemize{
+    \item Change print.coxph to use the printCoefmat routine, which l
+    leads to nicer p-values.  Other print routines will follow unless
+    there is an outcry.  (But I forced signif.stars=FALSE: my tolerance of
+    bad practice has limits.)
+    
+    \item Make those parts of the competing risks vignette which depend
+    on the cmprsk library conditional.  Otherwise the build fails for
+    those without the pacakge.
+    
+    \item The coxph function could fail converge for a set of very collinear
+    predictors when using (start, stop) data; revealed in a test case
+    sent by G Borstrom.  This was due to deficiency in a check for
+    near infinite coefficients, which had already been updated for some
+    but not all cases.  (2015/6/3)
+    
+    \item Update anova.coxph to use the model.frame.coxph function; the 
+    current code had scoping errors if embedded in a function.  Add an
+    anova.coxph.penal function to correctly handle models with pspline
+    terms.
+
+    \item Fix an error in the tmerge function.  Using the options
+    argument would generate a spurious error.
+    \item Pyears could fail on very long formulas due to a deparse() issue.
+    
+    \item Add the number of observations used and deleted due to missing
+    to summary.pyears.
+    
+    \item Allow the combination of a null coxph model (~1 on the right)
+    and the exact calculation for tied times.  No one had ever asked for
+    this before.  (2015/3/25)
+    
+    \item Shorten the default printout for survfit. The records, n.max
+    and n.start columns are often the same: if so suppress duplicates.
+    
+    \item Move the anova.coxphlist function from the survival package to
+    coxme.  (2015/3/3)
+
+    \item Change the logLik method for coxph models so that the nobs
+    component is the number of events rather than the number of rows in
+    the data.  This is superior for follow on methods such as AIC.
+
+    \item Add a test to the coxexact.c routine for too large a data set;
+    too many tied times could lead to integer overflow.  "Fixing" the error
+    is not sensible: the computation for such a data set would take decades.
+    Add some more explanation to the help pages as well.
+}}
+
+\section{Changes in version 2.38-1}{
+  \itemize{
+    \item Fix an error discovered by CRAN, which triggered a core dump
+    for them on a particular manual page (but never for me).  The linear
+    predictors from a frailty model contained NA values (incorrect),
+    leading to failure in survConcordance.fit. (2015/2/16).
+    
+    \item An error was found in the mgus data set (a progression after
+    death).  Now corrected, and added a little more follow-up time for
+    some subjects.
+    
+    \item Add error check for infitinte weights or offsets.  This in respose
+    to a bug report where someone did this on purpose, trying to mimic
+    cure fractions, and then found that survfit.coxph failed.
+
+    \item Robust variance is not supported for a coxph model with the
+    "exact" approximation.  (Rarely requested and a lot of work to add.)
+    Add an error message to clogit(), so users get a more useful notice of
+    the issue rather than a late error from residuals.coxph.
+    
+    \item Update the rats data set: it now includes both female and male
+    litters so as to match the documentation.
+    
+    \item The term frailty(x) would fail if x were a factor, and not all
+    levels were present.  Pointed out by Theodor Balan.
+    
+    \item Fix error of "abs" instead of "fabs" in the agfit4.c code;
+    pointed out to me by CRAN.
+    
+    \item Replace all instances of the obsolete prmatrix function.
+    
+    \item Modify pyears to allow cbind(time, count) as the response,
+    giving a cumulative sum of counts, when the counts per observation
+    may be other than 0/1.
+    
+    \item The lines.survfit function was incorrect for data sets that
+    used the start.time option and xscale (it neglected to rescale the
+    start time.)
+
+    \item An increasingly common error is for user to put the time
+    variable on both sides of a coxph equation in the mistaken belief
+    that this is a way to create time-dependent coefficients.  Generate
+    a warning message for this case.
+    
+    \item Update the basehaz function to a simple alias for "survfit".
+    Prior versions called surfit but then only returned part of the
+    object.  Update 2/2015: reverted the change.  It turns out that 6
+    different packages that depend on survival also depended on the
+    old behavior.  
+    
+    \item Make the default value for the shortlabel argument of strata()
+    more nuanced.  If the argument is a single factor, assume that we
+    don't need to prepend the variable name to its levels.
+    
+    \item Return the weights vector, if present, as part of the survreg
+    object.
+    
+    \item For interval censored points and the symmetric distributions
+    (Gaussian and logistic) response type residuals were incorrect.
+    Silly error: needed (x-mean)/scale not x/scale - mean.
+
+    \item Martingale residuals could be incorrect for the case of model with
+    (start, stop] data and a pspline term.  Refactor the code so that
+    all of the possible code paths call the same C routine to do the residuals.
+    Add a new test for this case, and further tests to verify that
+    predict(type='expected') and residuals agree.
+        
+    \item Fix bug pointed out by D Dunker: if a model had both tt() and
+    cluster() terms it would fail with a length error.
+    
+    \item Fix a rare bug in plot.survfit: if a multistate curve rose and
+    then later fell to exactly the same value, the line would be
+    incorrect.
+    
+    \item Add calls to the R_CheckUserInterrupt to several routines, so
+    that long calculations can be interrupted by the user.
+
+    \item The anova.coxph function would fail if the original call had a
+    subset argument. Pointed out by R Fisher.   11May2014
+}}
+    
+\section{Changes in version 2.37-7}{
+  \itemize{
+    \item Remove a dependency on the survey package from the adjusted
+    survival curves vignette, at the request of CRAN.  (The base +
+    required bundle needs to be capable of a stand-alone build.)
+    
+    \item Fix error in calcuation of the y-axis range for survival curve
+    plots whenever the "fun" argument could produce infinite values,
+    e.g., complimentary log-log plots transform 1 to -Inf.  Pointed out
+    by Eva Boj del Val.  (Add finite=TRUE to range() call).
+}}
+
+\section{Changes in version 2.37-6}{
+  \itemize{
+    \item The plot for competing risk curves could have a spurious
+    segment.  (Found within 3 hours of submitting 2.37-5 to CRAN.)
+
+    \item The lines method for survexp objects was defaulting to a
+    step function, restore the documented default of a connected
+    line.
+    \item Add a levels method for tcut objects. 14Jan2014
+  }
+}  
+\section{Changes in version 2.37-5}{
+  \itemize{
+    \item Add vignette on adjusted survival curves.
+    \item Add vignette concerning "type 3" tests.
+    
+    \item Make the tt() function invisible outside of a coxph formula.
+    There was a complaint about conflicts with another package, and
+    there is not really a good reason to have it be a global name.
+    An R-devel discussion just over 1 year ago showed how to accomplish this.
+   
+    \item The modeling routines are set in two parts, e.g., coxph sets
+    up the model and coxph.fit does the work.  Export more of the ".fit"
+    routines to make it easier for other packages to build on top of
+    this one.
+    
+    \item Updates to the model.matrix and model.frame logic for
+    coxph.  A note from F Harrell showed that I was not correctly
+    dealing with the "assign" attribute when there are strata * factor
+    interactions.  This led to cleanup in other cases that I had missed
+    but which never had proven fatal.  Also added support for tt() terms
+    to the stand alone model.matrix and model.frame functions.
+    (Residuals for tt models are still not available, but this was a
+    necessary first step to that end.) 26Dec13
+    
+    \item The Surv function now remembers attributes of the input
+    variables that were passed to it; they are saved as
+    "inputAttributes".  This allows the rms package, for instance, to
+    retain labels and units through the call.
+    
+    \item Update summary.coxph.penal to produce an object, which in turn
+    has a print method, i.e., make it a "standard" summary function.
+    
+    \item Add a logLik method for coxph and survfit objects.
+    
+    \item Allow for Inf as the end of the time interval, for interval
+    censored data in the Surv function.
+    
+    \item The predict.coxph function would fail if it had both a newdata
+    and a collapse argument.  Pointed out by Julian Bothe.  25Sep13
+    
+    \item Survexp can now produce expecteds based on a stratified Cox
+    model.  Add the 'individual.s' and 'individual.h' options to return
+    indivudual survival and cumulative hazard estimates, respectively.
+    The result of survfit now (sometimes) includes the cumulative
+    hazard.  This will be expanded. 29Jul13
+    
+2    \item Change code in the coxpenal.fit routine: the use of a vector of
+    symbols as arguments to my .C calls was confusing to a new CRAN
+    consistency check.  Both the old and new are legal R; but the old
+    was admittedly an unusual construction and it was simpler to change it.
+    
+    \item Fix a bug in survfit.coxph pointed out by Chris Andrews, whose
+    root cause was incorrect curve labels when the id option is used. 27Jun13
+    
+    \item Add rsurvreg routine.
+    
+    \item Change survfit.coxph routine so that it detects whether
+    newdata contains or does not contain strata variables, and acts
+    accordingly. If newdata does containe strata then  the output will
+    contain only those data-value and strata combinations specified by the
+    user. Retain strata levels in the coxph routine for use
+    in the survfit routine, to correctly reconstruct strata levels.
+    Warn about curves with interactions.  18Ju13
+
+    \item Add a dim method for survival curves.
+    
+    \item For competing risks curves that use the istate option, the
+    plotted curves now start with the correct (initial) prevalence of
+    each state.  22May13
+    
+    \item The survreg function failed with the "robust=T"
+    option. Pointed out by Jon Peck.  Test case added.  6May13
+    
+    \item Kazuki Yoshida pointed out that rep() had no method for Surv
+    objects.  This caused the survSplit routine to fail if the data
+    frame contained a Surv object.  3May13
+    
+    \item Per a request from Milan Bouchet-Valet fix an issue in survfit
+    that arose when the OutDec option is set to ',': it did not
+    correctly convert times back from character to numeric.
+
+    \item The plot.survfit function now obeys "cex" for the size of the
+      marks used for censored observations.
+}}
+
+\section{Changes in version 2.37-4}{
+  \itemize{
+    \item Subscripting error in predict.coxph for type=expected, se=T,
+    strata in the model, newdata, and multiple strata in the new data
+    set.  Pointed out by Chris Andrews.  The test program has been
+    tweaked to include multiple strata in newdata.
+}}
+    
+
+\section{Changes in version 2.37-3}{
+  \itemize{
+    \item Minor flaw in [.survfit.  If "fit" had multiple curves, and
+    fit$surv was a matrix, and one of those curves had only a single observation
+    time, fit[i,] would collapse columns when "i" selected that curve,
+    though it shouldn't.  
+
+    \item Changed all of the .C and .Call statements to make use of
+    "registered native routines", per R-core request. Add file src/init.c 
+
+    \item Error in plot.survfit pointed out by K Hoggart -- the "+"
+    signs for censored observations were printing one survival time to
+    the left of the proper spot.  Eik Vettorazi found another error if
+    mark.time is a vector of numerics.  These are the results of merging
+    the code for plot, lines and points due to some discrepancies between
+    them, plus not having any graphical checks in the test suite.
+    
+    \item Repair an error in using double subscripts for the survfitms
+    objects.
+    
+    \item Add the US population data set, with yearly totals by age and sex 
+    for 2000 onward.  It is named uspop2, since there is already a "uspop" 
+    data set containing decennial totals from 1790 to 1970.
+    
+    \item Not all combinations of strata Y/N and CI Y/N worked in the
+    quantile.survfit function, pointed out by Daniel Wallschlaeger
+    (missing a function argument in one if-else combination).
+    Added a new test routine that verifies all paths.
+
+    \item The first example in predict.survreg help file needed to have
+    \code{I(age^2)} instead of \code{age^2} in the model: R ignores the
+    second form. (I'm almost sure this worked at one time, perhaps in Splus).
+    It also needed different plot symbols to actually match the
+    referenced figure.  Pointed out by Evan Newell.
+
+    \item Fix a long-standing problem with cch pointed out by Ornulf Borgan
+    leading to incorrect standard errors.  A check in the underlying
+    coxph routines to deal with out of bounds exponents, added in
+    version 2.36-6, interacted badly with the -100 offset used in cch.
+    It only affected models using (start, stop) survival times. 
+}}
+
+\section{Changes in version 2.37-2}{
+  \itemize{
+    \item Two bugs were turned up by running tests for all the
+    packages that depend on survival (158 of them).
+}}
+\section{Changes in version 2.37-1}{
+  \itemize{
+    \item Add a new multi-state type to the Surv object.  Update the
+    survfit routine to work with it.  The major change is addition
+    of a proper variance for this case.
+    More functionality is planned.
+    
+    \item Remove the fr_colon.R test program.  It tests an ability that
+    has been superseded by coxme, on a numerically touchy data set, and
+    it was slow besides.  For several other tests that produce warning
+    messages and are supposed to produce said messages, add extra
+    comments to that effect so testers will know it is expected.
+    
+    \item The code has had several "if.R" clauses to accomodate Splus vs
+    R differences, which are mostly class vs oldClass.  These are now being
+    removed as I encounter them; since our institution no longer uses
+    Splus I can no longer test the clauses' validity.
+    
+    \item The fast subsets routine coxexact.fit incorrectly returned the
+    linear predictor vector in the (internal) sorted order rather than
+    data set order.  Pointed out by Tatsuki Koyama, affecting the result
+    of a clogit call.  6Nov2012
+    
+    \item Jason Law pointed out that the sample data set "rats" is from
+    the paper by Mantel et.al, but the documentation was for a data
+    set from Gail, Santner and Brown.  Added the Gail data as rats2 and
+    fixed the documentation for rats.
+    
+    \item For predict.coxph with type="terms", use "sample" as the
+    default value for the reference option.  For all others the default
+    remains "strata", the current value.  Type terms are nearly always passed
+    forward for further manipulation and per strata centering can mess
+    things up: termplot() for instance will no longer show a smooth
+    function if the results are recentered within strata.
+        
+    \item Fix bug in summary.aareg, which was unhappy (without cause) if
+    the maxtime option was used for a fit that did not include the
+    dfbeta option.  Pointed out by Asa Johannesen.
+    
+    \item The coxph fitting functions would report an error for a null model
+      (no X variables) if init was specified as numeric(0) rather than NULL.
+    
+    \item Update the description and citation files to use the new
+    "person" function described in the R Journal.  Also add the
+    ByteCompile directive per suggestion of R core.
+
+    \item Allow an ordinary vector as the left hand side of survConcordance.
+
+    \item Update anova.coxphlist to reject models with a robust variance.
+ 
+    \item The survfit function had an undocumented backwards-compatability 
+    that allows the newdata argument to be a vector with no names.  An
+    example from Damon Krstajic showed that this does not work when the
+    original model has a matrix in the formula.  Removed the feature.
+    (This is for survfit.coxph.)  Also clarified the code and its 
+    documentation about what is found where -- environments, formulas,
+    and the arguments of eval, which fixes a problem pointed out by xxx
+    where the result of a Surv call is used in the coxph formula.
+
+    \item Fix an issue in summary.survfit pointed out by Frank Harrell.  The
+    strata variable for the output always had its labels in sorted order,
+    even when a factor creating the survival curves was otherwise.  (This was
+    due to a call to factor() in the code.)  The print routine would then
+    list curves in sorted order, which might well be contrary to the user's
+    wishes.  The curves were numerically correct.
+
+    \item Add the anova.coxmelist function to the namespace so that it is
+    visible.  If someone has a list of models the first of which was
+    a coxph fit and the list includes coxme fits, then anova.coxph will
+    be the function called by R, and it will call anova.coxmelist.
+
+    \item Fix a bug pointed out by Yi Zhang and Mickael Hartweg.
+    If a coxph model used an offset, then a predicted survival curve
+    that used newdata (and the offset variable of course) would be
+    wrong, e.g. survival values > 1.
+    A simple misplaced parenthesis was the cause.
+    A recent paper by Langholz shows how to get absolute survival from
+    case-control data using an offset, which seems to have suddenly made this
+    feature popular.
+
+    \item Per further interaction with Yi Zhang, a few items were
+    missing from the S3methods in the NAMESPACE file: as.matrix.Surv,
+    model.matrix.coxph, model.matrix.survreg, model.frame.survreg.
+}}
+
+\section{Changes in version 2.36-14}{
+  \itemize{
+    \item A supposedly cosmetic change to coxph in the last release
+	caused formulas with a "." on the right hand side to fail.  Fix this
+	and add a case with "." to the test suite.
+      }
+    }
+
+\section{Changes in version 2.36-13}{
+  \itemize{
+    \item Add the anova.coxmelist function.  This is in the survival
+    package rather than in coxme since "anova(fit1, fit2)" is valid when
+    fit1 is a coxph and fit2 a coxme object, a case which will cause this
+    function to be called by way of anova.coxph.
+    
+    \item More work on "predvars" handling for the pspline function,
+    when used in predict calls.  Add a new test of this to the suite,
+    and the makepredictcall method to the namespace.
+    Fixes a bug pointed out by C Crowson.  
+
+    \item Deprecate the "robust" option of coxph.  When there are
+    multiple observations per subject it is almost surely the wrong
+    thing to do, while adding a "cluster(id)" term does the correct
+    thing. When there is only one obs per subject both methods work
+    correctly.
+
+    \item Add documentation of the output structure to the aareg help
+    file.
+
+    \item Change ratetableDate so that it still allows use of chron
+    objects, but doesn't need the chron library.  This eliminates a
+    warning messge from the package checks, but is also a reasonable
+    support strategy for a moribund package.  (Some of the local users keep
+    datasets for a long long time.)
+
+    \item Fix a bug in summary.survfit for a multiple-strata survival
+    object.  If one of the curves had no data after application of the
+    times argument, an output label was the wrong length.
+    
+    \item Fix a bug pointed out by Charles Berry: predict for a Cox
+    model which has strata, and the strata is a factor with not all its
+    levels represented in the data.  I had a mistake in the subscripting
+    logic: number of groups is not equal to max(as.integer(strata)).
+    
+    \item Changes to avoid overflow in the exponent made in 2.36-6
+    caused failure for one special usage: in case-cohort designs a dummy
+    offset of -100 could be added to some observations.  This was being
+    rounded away.  The solution is to 1: have coxsafe not truncate small
+    exponents and 2: do not recenter user provided offset values.
+
+    \item Fix bug in survfit.coxph.  Due to an indexing error I would
+    sometimes create a huge scratch vector midway through the
+    calculations (size = max value of "id"); the final result was always
+    correct however.  Data set provided by Cindy Crowson which had a
+    user id in the billions.
+
+    \item Fix bug pointed out by Nicholas Horton: predictions of
+    type expected, with newdata, from a Cox model without a strata
+    statement would fail with "x not found".  A misplaced parenthesis
+    from an earlier update caused it to not recreate the X matrix even
+    though it was needed later.  Also add some further information to
+    the predict manual page to clarify an issue with frailty terms.
+    }}
+
+\section{Changes in version 2.36-12}{
+  \itemize{
+    \item Fix a bug in the new fast subsets code.  The test suite had no
+    examples of strata + lots of tied times, so of course that's the
+    case where I had an indexing error.  Add a test case using the
+    clogit function, which exercises this.
+
+    \item Further memory tuning for survexp.
+    }}
+
+    \section{Changes in version 2.36-11}{
+  \itemize{
+    \item Make survexp more efficient.  The X matrix was being modified
+    in several places, leading to multiple copies of the data.  When the
+    data set was large this would lead to a memory shortage.
+
+    \item Cause anova.coxph to call anova.coxme when a list of models
+    has both coxph and coxme objects.
+
+    \item Add the quantile.survfit function.  This allows a user to
+    extract arbitrary quantiles from a fitted curve (and std err).
+
+    \item Fix an error in predict.coxph.  When the model had a strata
+    and the newdata and reference="sample" arguments were used, it
+    would (incorrectly) ask for a strata variable in the new data set.
+
+    \item Incorporate the fast subsets algorithm of Gail et al, when 
+    using coxph with the "exact" option.  The speed increase is profound 
+    though at the cost of some memory.    Reflect this in the
+    documentation for the clogit routine.
+    Note that the fast computation is not yet implemented for
+    (start,stop) coxph models.
+
+    \item Change the C routine used by coxph.fit from .C to .Call
+    semantics to improve memory efficiency, in particular fewer copies
+    of the X matrix.
+
+    \item Add scaling to the above routine.  This was prompted by a user
+    who had some variables with a 0-1 range and others that were
+    0 - 10^7, resulting in 0 digits of accuracy in the variance matrix.
+    (Economics data).
+
+    \item Comment out some code sections that are specific to Splus.
+    This reduced the number of "function not found" warnings from R CMD check.
+}}
+
+\section{Changes in version 2.36-10}{
+  \itemize{
+    \item 30 Sept 2011: The na.action argument was being ignored in
+    predict.coxph; pointed out by Cindy Crowson.
+
+    \item The log-likelihood for survreg was incorrect when there are
+    case weights in the model.  The error is a fixed constant for any
+    given data set, so had no impact on tests or inferences.  The error
+    and correction were pointed out by Robert Kusher.
+    
+    \item A variable name was incorrect in survpenal.fit.  This was in a
+    program path that had never been traversed until Carina Salt used
+    survreg with a psline(..., method='aic') call, leading to a
+    "variable not found" message.
+
+    \item Punctuation error in psline made it impossible for a user to
+    specify the boundary.knots argument.  Pointed out by Brandon
+    Stewart.
+
+    \item Add an "id" variable to the output of survobrien.
+
+    \item The survfitCI routine would fail for a curve with only one
+    jump point (a matrix collapsed into a vector).
+
+    \item Fix an error in survfit.coxph when the coxph model has both a
+    strata by covariate interaction and a cluster statement.  The
+    cluster term was not dropped from the Terms object as it should have
+    been, led to a spurious "variable not found" error.   Pointed out
+    by Eva Bouguen.
+
+    \item If a coxph model with penalized terms (frailty, pspline) also
+    had a redundant covariate, the linear predictor would be returned as
+    NA.  Pointed out by Pavel Krivitsky.
+}}
+
+\section{Changes in version 2.36-9}{
+  \itemize{
+    \item Due to a mistake in my script that submits to CRAN, the fix in
+    2.36-8 below was actually not propogated to the CRAN submission.
+
+    \item Fix an error in the Cauchy example found in the survreg.distributions
+    help page, pointed out by James Price.
+
+    \item Update the coxph.getdata routine to use the model.frame.coxph
+    and model.matrix.coxph methods.
+
+    \item Add the concordance statistic to the printout for penalized models.
+}}
+
+\section{Changes in version 2.36-8}{
+  \itemize{
+    \item Unitialized variable in calcuation of the variance of the
+    concordance.  Found on platform cross-checking by Brian Ripley.
+    \item Changed testci to use a fixed file of results from cmprsk
+    rather than invoking that package on-the-fly.  Suggested by the CRAN
+    maintainers.
+  }
+  }
+\section{Changes in version 2.36-7}{
+  \itemize{
+    \item Due to changes in R 2.13 default printout, the results of many of
+    the test programs change in trivial way (one more or fewer digits).
+    Update the necessary test/___.Rout.save files.  Per the core team's
+    suggestion the dependency for the package is marked as >=2.13.
+  }}
+  
+\section{Changes in version 2.36-6}{
+  \itemize{
+    \item An example from A Drummond caused iteration failure in
+    coxph: x=c(1,1,1,0,1, rep(0,35)), time=1:40, status=1.  The first
+    iteration overshoots the solution and lands on an almost perfectly
+    linear part of the loglik surface, which made the second iteration
+    go to a huge number and exp() overflows.  A sanity check routine
+    coxsafe is now invoked on all values of the linear predictor.
+    
+    \item 1 April: Fix minor bug in survfit.  For left censored data
+    where all the left censored are on the very left, it would give a
+    spurious warning message when trying to create a 0 row matrix that
+    it didn't need or use.  Pointed out by Steve Su.
+    
+    \item 31 March 2011: One of the plots in the r_sas test was wrong
+    (it's been a long time since I visually checked these).  The error
+    was in predict.survreg; it had not taken into account a change in
+    R2.7.1: the intercept attribute is reset to 1 whenever one
+    subscripts a terms object, leading to incorrect results for a model
+    with "-1" in the formula and a strata(): the intercept returned
+    when removing the strata.  I used this opportunity to move most of
+    the logic into model.frame.survreg and model.matrix.survreg
+    functions.  Small change to the model.frame.coxph and
+    model.matrix.coxph functions due to a better understanding of
+    xlevels processing.
+    
+    \item Round off error issue in survfit: it used both unique(time)
+    and table(time), and the resulting number of unique values is not
+    guarranteed to be the same for times that differ by a tiny amount.
+    Now times are coverted to a factor first.  Peter Savicky from the R
+    core team provided a nice discussion of the issue and helped me
+    clarify how best to deal with it.  The prior fix of first rounding
+    to 15 digits was good enough for almost every data set -- except the
+    one found by a local user just last week.
+    
+    \item Round off error in print.survfit pointed out by Micheal Faye.
+    If a survival value was .5 in truth, but .5- eps due to round off
+    the printed median was wrong. But it was ok for .5+eps. Simple
+    if-then logic error.
+    
+    \item Re-fix a bug in survfit.  It uses both unique and table in
+    various places, which do not round the same; I had added a
+    pre-rounding step to the code.  A data set from Fan Chun showed that
+    I didn't round quite enough. But the prior rounding did work for a
+    time of 2 vs (sqrt(2))^2: this bug is very hard to produce.  I now
+    use as.numeric(as.character(factor(x))), which induces exactly the
+    same rounding as table, since it is the same compuation path.
+
+    \item Further changes to pspline.  The new Boundary.knots argument
+    allows a user to set the boundary knots inside the range of data.
+    Code for extrapolation outside that range was needed,
+    essentially a copy of the code found in ns() for the same issue.
+    Also added a psplineinverse function, which may be useful with
+    certain tt() calls in coxph.
+    
+    \item 10 Mar 2011: Add the capablilty for time-dependent
+    transformations to coxph, along with a small vignette describing use
+    of the feature.  This code is still incompletely incorporated in
+    that the models work but other methods (residuals, predict, etc) are
+    not yet defined.
+    
+    \item 8 Mar 2011: Expand the survConcordance function.  The function
+    now correctly handles strata and  time dependent covariates, and
+    computes a standard error for the estimate.  All computation is based
+    on a balanced binary tree strucure, which leads to computation in
+    \eqn{O(n \log_2(n))}{O(n log(n))} time.
+    The \code{coxph} function now adds concordance to its output, and
+    \code{summary.coxph} displays the result.
+
+    \item 8 Mar 2011: Add the "reference" option to predict.coxph, a
+    feature and need pointed out by Stephen Bond.
+
+    \item 4 Mar 2011: Add a makepredictcall method for pspline(), which
+    in turn required addition of a Boundary.knots argument to the
+    function.
+    
+    \item 25 Feb 2011: Bug in pyears pointed out by Norm Phillips.  If a
+    subject started out with "off table" time, their age was not
+    incremented by that amount as they moved forward to the next "in
+    table" cell of the result.  This could lead to using the wrong
+    expected rate from the rate table.
+  }
+}
+
+\section{Changes in version 2.36-5}{
+  \itemize{
+    \item 20 Feb 2011: Update survConcordance to correctly handle case
+    weights, time dependent covariates, and strata.
+
+    \item 18 Feb 2011: Bug in predict.coxph found by a user (1 day after
+    36-4!).  If the coxph call had a subset and predict used newdata,
+    the subset clause was "remembered" in the newdata construction,
+    which is not appropriate.
+}}
+
+\section{Changes in version 2.36-4}{
+\itemize{
+  \item 17 Feb 2011: Fix to predict.coxph.  A small typo that only was
+  exercised if the coxph model had x=T.  Discovered via induced error in
+  the rankhazard package.  Added lines to the test suite to test for
+  this in the future.
+
+  \item Removed some files from test and src that are no longer needed.
+
+  \item Update the configure script per suggestion from Kurt H.
+  }}
+\section{Changes in version 2.36-3}{
+  \itemize{
+
+    \item 13 Feb 2011: Add the rmap argument to pyears, as was done for
+    survexp, and update the manual pages and examples. Fix one last bug
+    in predict.coxph (na.action use).  Passes all the
+    tests for inclusion on the next R release.
+
+    \item 8 Feb 2011: Change the name of the new survfit.coxph.fit routine to
+     survfitcoxph.fit; R was mistaking it for a survfit method.  Fix
+     errors in predict.coxph when there is a newdata argument, including
+     adding yet another test program.
+
+   \item 1 Feb 2011: Fix bugs in coxph and survreg pointed out by Heinz
+    Tuechler and dtdenes@cogpsyphy.hu, independently, that were the same
+    wrong line in both programs.  With interactions, a non-penalized
+    term could be marked as penalized due to a mismatched vector length,
+    leading to a spurious error message later in the code.
+  
+  \item 1 Feb 2011: Update survfit.coxph to handle the case of a strata by
+    covariate interaction.  All prior releases of the code did this
+    wrong, but it is a very rare case (found by Frank Harrell).  Added a
+    new test routine coxsurv4.  Also found a bug in [.survfit; for a
+    curve with both strata and multiple columns, as produced by
+    survfit.coxph, it could drop the n.censored item when subscripting.
+    A minor issue was fixed in coxph: when iter=0 the output coefficient
+    vector should be equal to the input even when the variance is
+    singular. 
+
+  \item 30 Jan 2011: Move the noweb files to a top level directory, out of
+    inst/.  They don't need to be copied to binary installs.
+    
+  \item 22 Jan 2011: Convert the Changelog files to the new inst/NEWS.Rd
+    format.
+  
+  \item 1 Jan 202011: The match.ratetable would fail when passed a data
+    frame with a character variable.  This was pointed out by Heinz
+    Tuechler, who also did most of the legwork to find it.  It was
+    triggered by the first few lines of tests/jasa.R (expect <- ....)
+    when options(stringsAsFactors=FALSE) is set. 
+ }
+}
+
+\section{Changes in version 2.36-2}{
+\itemize{
+  \item 20 Dec 2010: Add more test cases for survfit.coxph,
+    which led to significant updates in the code. 
+
+  \item 18 Nov 2010: Add nevent to the coxph output and printout in
+    response to a long standing user request.
+
+  \item 14 Dec 2010: Add an as.matrix method for Surv objects. 
+
+  \item 11 Nov 2010: The prior changes broke 5 packages: the dependencies form a bigger
+test suite than mine!  1. Survival curve for a coxph model with sparse
+frailty fit; fixed and added a new test case.  2. survexp could fail if 
+called from within a function due to a scoping error.  3. "Tsiatis" was once
+a valid type (alias for 'aalen')  for survfit.coxph; now removed from the 
+documentation but the code needed to be backwards compatable.  The other two
+conflicts were fixed in the packages that call survival.  There are still
+issues with the rms package which I am working out with Frank H.
+ }
+}
+
+\section{Changes in version 2.36-1}{
+ \itemize{
+  \item{27 Oct 2010: Finish corrections and test to the new code. It now passes
+the checks.  The predict.coxph routine now does strata and standard errors
+correctly, factors propogate through to predictions, and numerous small 
+errors are addressed.  Predicted survival curves for a Cox model has been
+rewritten in noweb and expanded. Change the version number to 2.36-1.}
+
+  \item{17 Oct 2010: Per a request from Frank Harrell (interaction with his library),
+survfit.coxph no longer reconstructs the model frame unless it really needs
+it: in some cases the 'x' and 'y' matrices may be sufficient, and may be
+saved in the result.  Add an argument "mf" to model.matrix.coxph for more 
+efficient interaction when a parent routine has already recovered the model 
+frame.
+  In general, we are trying to make use of model.matrix.coxph in many of the
+routines, so that the logic contained there (remove cluster() calls, pull
+out strata, how to handle intercepts) need not be replicated in multiple 
+places.}
+
+  \item{12 Oct 2010: Fix a bug in the modified lower limits for survfit (Dory & Korn).
+A logical vector was being inadvertently converted to numeric.  Pointed out
+by Andy Mugglin.  A new case was added to the test suite. }
+ }
+}
+
+\section{Changes in version 2.35}{ 
+ \itemize{
+  \item{15 July 2010: Add a coxph method for the logLik function.  This is used by
+the AIC function and was requested by a user.}
+
+  \item{29 July 2010: Fix 2 bugs in pyears.  The check for a US rate table was off
+(minor effect on calculations), and there was a call to julian which assumed
+that the origin argument could be a vector.  }
+
+  \item{21 July 2010: Fix a problem pointed out by a user: calling survfit with almost
+tied times, e.g., c(2, sqrt(2)^2), could lead to an inconsistent result.  Some
+parts of the code saw these as 2 unique values per the unique() function, some
+as a single value using the results of table().  We now pre-round the input
+times to one less decimal digit than the max from .Machine$double.digits.
+  Also added the noweb.R processing function from the coxme package, so that
+the noweb code can be extracted "on the fly" during installation using
+commands in the configure and cleanup scripts.  }
+
+  \item{11 July 2010: A rewrite of the majority of the survfit.coxph code.  The primary
+benefits are 1: finally tracked down and eliminated the bug for standard errors
+of case weights + Cox survival + Efron method; 2: the individual=TRUE and FALSE
+options now use the same underlying code for curves, before there were some
+options valid only for one or the other; 3: code was rewritten using noweb 
+with a considerable increase in documentation; 4: during the verification
+process some errors were found in the test suite and corrected, e.g., a 
+typo in my book led to failure of an all.equal test in book4.R.  Similar
+to the rewrite for survfit several years ago, the new code has far less use
+of .C to help transparency.}
+
+  \item{21 May 2010: Fix bug in summary.survfit.  For a survival curve from a Cox model
+with start,stop data, the 'times' argument would generate an error.}
+
+  \item{24 May 2010: Fix an annoyance in summary.survfit.  When the survival data 
+had an event or censor at time 0 and summary is called with a times argument,
+then my constructed call to approx() would have duplicate x values.  The answer
+was always right, but approx has begun to print a bothersome warning message.  
+A small change to the constructed argument vector avoids it.}
+
+  \item{7 April 2010: Minor bug pointed out by Fredrik Lundgren.  In survfit if the
+method was KM (default) and error = Tsiatis an error message results.  Simple
+fix: code went down the wrong branch.}
+
+  \item{24 Feb 2010: Serious bug pointed out by Kevin Buhr.  In Surv(time1, time2,stat)
+if there were i) missing values in time1 and/or time2, ii) illegal value
+sets with time1 >=time2, and iii) all the instances of ii do not preceed all
+the instances of i, then the wrong observation (not the illegal) will be 
+thrown out.  Repaired, and a new test added.
+  Minor updates to 3 test files: survreg2, testci, ratetable.}
+
+  \item{8 Feb 2010: Bug pointed out by Heinz Tuechler -- if a subscript was dropped from
+a rate table the 'type' attribute got dropped, e.g. survexp.usr[,1,,].}
+
+  \item{26 Jan 2010: At the request of Alex Bokov, added the xmax, xscale, and fun
+arguments to points.survfit.}
+
+  \item{26 Jan 2010: Fix bug pointed out by Thomas Lumley -- with case weights <1 a Cox 
+model with (start, stop) input would inappropriately decide it needed to do
+step halving to find a solution, eventually failing to converge.  It was
+treating a loglik >0 as an indication of failure, but such values arise for
+small case weights. Let L(w) be the loglik for a data set where everyone is
+given a weight of w, then L(w)= wL(1) - d log(w) where d=number of deaths in
+the data.  For small enough w positivity of L(w) is certain.}
+
+  \item{25 Jan 2010: Fix bug in summary.ratetable pointed out by Heinze Tuechler.  Added
+a call to the function to the test suite as well.}
+
+  \item{15 Dec 2009: Two users pointed out a bug that crept into survreg() with a
+cluster statement, when a t(x)%*%x was replaced with crossprod.  A trivial
+fix, but in response I added another test that more formally checks the
+dfbeta residuals and found a major oversight for the case of multiple
+strata.  }
+
+  \item{14 Dec 2009: 1.Fix bug in frailty.xxx, if there is a missing value in the levels
+it gets counted by "length(unique(x))" (frailty is called before NA
+removal.)  2.SurvfitCI had an incorrect CI with case weights, and 3. in
+survreg a call to resid instead of residuals.survreg, before the class
+was attached.}
+
+  \item{11 Nov 2009: The 'type' argument does not make sense for plot.survfit.  (If 
+type='p', should one plot the tops of the step function, the bottoms, or
+both?).  Make it explicitly disallowed in response to an R-help query,
+rather than the confusing error message that currently arose.}
+
+  \item{28 Oct 2009: The basehaz function would reorder the labels of the strata
+factor.  Not a bug really, but a "why do this?"  Unintended consequence of
+a character -> factor conversion.}
+
+  \item{1 Oct 2009: Fix a bug pointed out by Ben Domingue.  There was one if-then-else
+path into step-halving in the frailty.controldf routine that would refer to
+a non-existent variable.  A very rarely followed path, obviously, and with
+the obvious fix. The mathematics of the update was fine.}
+
+  \item{30 Sep 2009: For coxph and model.matrix.coxph, re-attach the
+attributues lost from the X matrix when the intercept is removed,
+i.e., X <- X[,1].  In particular, some downstream libraries depend on
+the assign attribute. 
+  For predict.coxph remove an earlier edit so that a single variable model
++ type='terms' returns a matrix, not a vector.  This is expected by the 
+termplot() function.  It led to a whole lot of changes in the test suite
+results, though, due to more "matrix" printouts.}
+
+  \item{4 Sep 2009: Added a model.matrix.coxph and model.frame.coxph methods.  The
+model.matrix.default function ceased to work for coxph models sometime
+between R 2.9 and 2.9.2 (best guess).  This wasn't picked up in the test
+suite but rather by failure of 3 packages that depend on survival.  Also added
+a test.  Update CRAN since this broke other's packages.}
+
+  \item{20 Aug 2009: One more fix to predict.coxph.  It needed to use 
+delete.response(Terms) rather than Terms, so as to not look for (unnecessarily)
+the response variable when the newdata argment is used.  Pointed out by Michael
+Conklin.}
+
+  \item{17 Aug 2009: Small bug in survfit.coxph.null pointed out by Frank Harrell.  The
+'n' component would be missing if the input data included strata, i.e., the
+initial model had used x=TRUE.  He also pointed out the fix.}
+
+  \item{10 June 2009: Fix an error pointed out by Nick Reich, who was the first to use
+interval censored data + user defined distribution in survreg, jointly.  There
+was no test case and creating one uncovered several errors (but only for this
+combination).  All the error cases led to catastrophic failure, highlighting
+the extreme rarity of a user requesting this combination.}
+
+  \item{2 June 2009: Surv(time1, time2, status, type='interval') would fail for an NA
+status code.  Pointed out by Achim Zeilus.}
+
+  \item{22 May 2009: Allow single subscripts to rate tables, e.g. survexp[1:10: .  
+Returns a simple vector of values.  The str() function does this to print out
+a short summary.  Problem pointed out by Heinz Tuechler.}
+
+  \item{21 May 2009: Create a test case for factor variables/newdata/predict for coxph 
+and survreg.  This led to a set of minor fixes; the code is now in line with
+the R standard for model functions.  One consequence is that model.frame.coxph
+and model.frame.survreg are no longer needed, so have been removed.}
+
+  \item{20 May 2009: The manual page for survfit was confusing, since it tries to 
+document both the standard KM (formula method) and the coxph method.  I've
+split them out so that now survfit documents only the basic method and points 
+a user the appropriate specialized page.}
+
+  \item{1 May 2009: The anova.coxph function was incorrect for models with a strata
+term.  Fixed this, and made chisquare tests the default.}
+
+  \item{22 April 2009: The coxph code had an override to iter and eps, making both of
+them more strict for a penalized model.  However, the overall default values
+have changed over time, so that these lines actually decreased accuracy - the
+opposite of their intent.  Removed the lines.  Also removed the iter.miss and
+eps.miss components (on which this check depended) from coxph.control, which
+makes that function match its documentation.}
+
+ }
+}
+
+\section{Changes in version 2.34 and earlier}{
+\subsection{Merge of the TMT source code tree with the Lumley code tree}{
+ \itemize{
+
+  \item Issues/decisions in remerging the Mayo and R code: 
+  For most of routines, it was easier to start with the Lumley code and add
+the Therneau fixes.  This is because Tom had expanded a lot of partial 
+matches, e.g., fit$coef in the TT code vs fit$coefficients.  Routines with
+substantial changes were, of course, a special case.
+  The most common change is an is.R() construct to choose class vs oldClass.
+  \item xtras.R: Move anova.coxph and anova.coxphlist to their own
+  source files.
+  The remainder of the code is R only.
+
+  \item survsum: removed from package
+
+  \item survreg.old: has been removed from the package
+
+  \item survfit.s: 
+   Depreciate the "formula with no ~1" option
+   Mayo code for [ allows for reordering curves
+   Separate out the R "basehaz" function as a separate source file
+
+  \item survfit.km.s: The major change of did not get copied into R, so lots of
+changes.  R had "new.time" and Splus 'start.time' for the same argument.  Allow
+them both as synonyms.
+   The output structure also changed: adapt the new one.  This is mostly some
+name changes in the components, removing unneeded redundancies created by
+a different programmer. 
+
+  \item survfit.coxph.s:  TMT code finally fixed the "Can't (yet) to case weights" 
+problem.  There must have been 10 years been the intent and execution. 
+
+  \item survexp.s:  Add "bareterms" function from R, which replaces a prior use of
+  terms.inner (in Splus but not R). 
+
+  \item survdiff.s: R code had the old (incorrect) expected <- sum(1-offset), since
+corrected to sum(-log(offset)) . 
+
+  \item{summary.coxph.s: This was a mess, since Tom and I had independently made the
+ addition of a print.summary.coxph function.  Below, TMT means that it was the
+ choice in the Splus code, TL means that it was the choice in R
+	1. Put the coef=T argument in the print function, not summary (TMT)
+	2. Change the output's name from coef to coefficients (suggestion of
+  Peter Dalgaard).  Also change one column name to Pr(>|z|) for R.
+	3. Remove last vestiges of a reference to the 'icc' component (TMT)
+	4. Do not include score, rscore, naive.var in the result (TL)
+	5. Do include loglik in the result (TMT)
+	6. Compute the test statistics (loglik, Wald, etc) in the summary
+   function rather than in the print.summary function (TL)
+	7. Remove the digits option from summary, it belongs in print.summary.
+   (neither)}
+
+  \item{strata.s: R code added a sep argument, this is ok
+     R changed the character string NA to as.character(NA).  Not okay
+          1. won't work with Splus, 
+          2. This is a label, designed for printing, 
+	          and so it should be a character string.  }
+
+  \item{residuals.coxph.s: R had added type='partial'.  (Which I'm not very partial to,
+  from their statistical properties.  But they are legal, and I assume that
+  someone requested them).}
+
+  \item{print.survfit.s: Rewritten as a part of the general survival rewrite.  Created
+the function 'survmean' which does most of the work, and is shared by print and
+summary, so that the values from 'print' are now available.
+   Fix the minmin function: min(NULL) gives NA in Splus, which is the right
+answer for a non-estimable median, but Inf in R.  Explicitly deal with this
+case, and add a bunch of comments.
+   R had the print.rmean option, this has been expanded to a more general
+rmean option that allows setting the cutoff point.
+   R added a print.n option with 3 choices, my code includes all 3 in the 
+output.  }
+
+  \item{lines.survfit.s: 
+    The S version has a new block of code for guessing "firstx" more
+intellegently when it is missing.  (Or, one hopes is is more intellegent!)}
+
+  \item{coxph.control.s: 
+   The R code had tighter tolerances (eps= 1e-9) than Splus (1e-4) and
+a higher iterationn count (20 vs 10). 
+   Set eps to 1e-8 and iter to 15, mostly bending to the world.  The tighter
+iteration is defensible, but I still maintain that a Cox model that takes >10 
+iterations is not going to finish if you give it 100.  The likelihood surface
+is almost perfectly quadratic near the minimum.  (Not true for survreg by the
+way).}
+
+  \item{: In Surv, the Mayo code creates NA's out of invalid status values or
+start,stop pairs, rather than a stop and error message.  This is to
+allow for example
+       coxph(Surv(time1,time2, status).... , subset=(goodlines))
+succeed, when "goodlines" is the subset with correct values.}
+}
+}
+
+\subsection{Older changes}{
+ \itemize{
+   \item{25SepO7: How embarrassing -- someone pointed out that I had Dave
+     Harrington's name spelled wrong in the options to survfit.coxph!}
+
+  \item{9Jul07: In a model with offsets, survreg mistakenly omitted the offset
+from the returned linear.predictor component.}
+
+  \item{10May07: Change summary.coxph so that it returns an object of class
+summary.coxph, and add a print method for that object.}
+
+  \item{22Jun06: Update match.ratetable, so that more liberal matches are now
+allowed.  For instance,  'F', 'f', 'female', 'fem', 'FEMA', etc are 
+now all considered matches to the dimname "female" in survexp.us.}
+
+  \item{26Apr06: Fix bug in summary.survfit, pointed out by Bob Treder.  With
+the times option, the value of n.risk would be wrong for "in between"
+times; e.g., the data had events and/or censoring at times 10,
+20,... and we asked for printout at time 15.  It should give n.risk at time
+20, it was returning the value at time 10. Interestingly, the code had
+a very careful treatment of this case, along with an example in the
+comments, and the "the right answer is" part of the comment was wrong!
+So the code correctly computed an incorrect answer.  Added another
+test case to the test suite, survtest2.}
+
+  \item{21Apr06: Fix problem in [.survfit, pointed out by Thomas Lumley.  If
+fit <- survfit(Surv(time, status) ~ ph.ecog, lung), then fit[2:1] did
+not reorder the output correctly.  I had never tested putting the 
+subscripts in non-increasing order.}
+
+  \item{7Feb06: Fix a problem in the coxph iteration (coxfit2.c, coxfit5, agfit3,
+agfit5, agexact).  It will likely never catch anyone again, even if I 
+didn't fix it.  In a particular data set, beta overshot and step halving
+was invoked.  During step halving, a loglik happened to occur that was
+within eps of the prior step's loglik --- and the routine decided, erroneously,
+that it had converged!  (A nice quadratic curve, a first guess b1 to the 
+left of  the desired max of the curve.  The next guess b2 overshot and ends 
+up with a lower loglik, on the right side of the max.  Back up to the 
+midpoint of b1 and b2, and this guess, still to the right of the max (still
+too large) has EXACTLY the same value of y as b1 did, but on the other side
+of the max from b1.  "Last two guesses give the same answer, I'm done" said
+the routine).}
+
+  \item{27Sep05: Found and fixed a nasty bug in survfit.  When method='fh2' and
+there were multiple groups I had a subscripting bug, leading to vectors
+that were supposed to be the same length, but weren't, passed into C.
+The resulting curves were obviously wrong -- survival precipitously drops 
+to zero.}
+
+  \item{5May05: Add the drop=F arg to one subscripting selection in survfit.coxph.
+	        temp <- (matrix(surv$y, ncol=3))[ntime,,drop=F] 
+If you selected only 1 time point (1 row) in the final output, the code
+would fail.  Pointed out by Cindy Crowson.}
+
+  \item{18Apr05: Bug in survfit.turnbull.  The strata variable was not being
+filled in (number of points per curve).  So if multiple curves were
+generated at once, i.e., with something on the right hand side of ~ in
+the formula, all the downstream print/plot functions would not work
+with the result.}
+
+  \item{8Feb05: Fix small typo in is.ratetable, introduced on 24Nov04: (Today
+was the first time I added to the standard library, and thus ended
+up using the non-verbose mode.)}
+
+  \item{8Feb05: Add the data.frame argument to pyears.  This causes the output
+to contain a dataframe rather than a set of arrays.  It is useful for
+further processing of the data using Poisson regression.}
+
+  \item{7Feb05: Modified print.ratetable to be more useful.  It now tells 
+about the ratetable, rather than printing all of its values.}
+
+  \item{8Dec04: Fix a small bug in survfit.turnbull. If there are people left 
+censored before the first
+time point of any other kind (interval, exact, or right censored),
+the the plotted height of the curve from "rightmost left censoring time"
+to "leftmost event time", that is the flat tail on the left, was at
+the wrong height.
+  Added another test to testreg/reliability.s for this.}
+
+  \item{24Nov04: Change is.ratetable to give longer messages}
+}
+}
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/R/survival.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/R/survival.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/R/survival
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/R/survival	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/R/survival	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/R/survival.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/R/survival.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_resid.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_resid.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_resid.R	(revision 2476)
@@ -0,0 +1,98 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# The residual methods treat a sparse frailty as a fixed offset with
+#   no variance
+#
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+kfit1 <- coxph(Surv(time, status) ~ age + sex + 
+	           frailty(id, dist='gauss'), kidney)
+tempf <- predict(kfit1, type='terms')[,3]
+temp  <- kfit1$frail[match(kidney$id, sort(unique(kidney$id)))]
+#all.equal(unclass(tempf), unclass(temp))
+all.equal(as.vector(tempf), as.vector(temp))
+
+# Now fit a model with explicit offset
+kfitx <- coxph(Surv(time, status) ~ age + sex + offset(tempf),kidney,
+	       eps=1e-7)
+
+# These are not always precisely the same, due to different iteration paths
+aeq(kfitx$coef, kfit1$coef)
+
+# This will make them identical
+kfitx <- coxph(Surv(time, status) ~ age + sex  + offset(temp),kidney,
+	       iter=0, init=kfit1$coef)
+aeq(resid(kfit1), resid(kfitx))
+aeq(resid(kfit1, type='score'), resid(kfitx, type='score'))
+aeq(resid(kfit1, type='schoe'), resid(kfitx, type='schoe'))
+
+# These are not the same, due to a different variance matrix
+#  The frailty model's variance is about 2x the naive "assume an offset" var
+# Expect a value of about 0.5
+aeq(resid(kfit1, type='dfbeta'), resid(kfitx, type='dfbeta'))
+
+# Force equality
+zed <- kfitx
+zed$var <- kfit1$var
+aeq(resid(kfit1, type='dfbeta'), resid(zed, type='dfbeta'))
+
+# The score residuals are equal, however.
+
+temp1 <- resid(kfit1, type='score')
+temp2 <- resid(kfitx, type='score')
+aeq(temp1, temp2)
+
+#
+# Now for some tests of predicted values
+#
+aeq(predict(kfit1, type='expected'), predict(kfitx, type='expected'))
+aeq(predict(kfit1, type='lp'), predict(kfitx, type='lp'))
+
+temp1 <- predict(kfit1, type='terms', se.fit=T)
+temp2 <- predict(kfitx, type='terms', se.fit=T)
+aeq(temp1$fit[,1:2], temp2$fit)
+# the next is not equal, all.equal returns a character string in that case
+is.character(aeq(temp1$se.fit[,1:2], temp2$se.fit))
+mean(temp1$se.fit[,1:2]/ temp2$se.fit)
+aeq(as.vector(temp1$se.fit[,3])^2, 
+	  as.vector(kfit1$fvar[match(kidney$id, sort(unique(kidney$id)))]))
+
+print(temp1)
+kfit1
+kfitx
+
+rm(temp1, temp2, kfitx, zed, tempf)
+#
+# The special case of a single sparse frailty
+#
+
+kfit1 <- coxph(Surv(time, status) ~ frailty(id, dist='gauss'), kidney)
+tempf <- predict(kfit1, type='terms')
+temp  <- kfit1$frail[match(kidney$id, sort(unique(kidney$id)))]
+all.equal(as.vector(tempf), as.vector(temp))
+
+# Now fit a model with explicit offset
+kfitx <- coxph(Surv(time, status) ~ offset(tempf),kidney, eps=1e-7)
+
+aeq(resid(kfit1), resid(kfitx))
+aeq(resid(kfit1, type='deviance'), resid(kfitx, type='deviance'))
+
+#
+# Some tests of predicted values
+#
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+aeq(predict(kfit1, type='expected'), predict(kfitx, type='expected'))
+aeq(predict(kfit1, type='lp'), predict(kfitx, type='lp'))
+
+temp1 <- predict(kfit1, type='terms', se.fit=T)
+aeq(temp1$fit, kfitx$linear)
+aeq(temp1$se.fit^2, 
+	  kfit1$fvar[match(kidney$id, sort(unique(kidney$id)))])
+
+temp1
+kfit1
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/model.matrix.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/model.matrix.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/model.matrix.R	(revision 2476)
@@ -0,0 +1,59 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Test out the revised model.matrix code
+#
+test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0),
+                    z= factor(c('a', 'a', 'b', 'b', 'c', 'c', 'a')))
+
+fit1 <- coxph(Surv(time, status) ~ z, test1, iter=1)
+fit2 <- coxph(Surv(time, status) ~z, test1, x=T, iter=1)
+all.equal(model.matrix(fit1), fit2$x)
+
+# This has no level 'b', make sure dummies recode properly
+test2 <- data.frame(time=  c(9, 3,1,1,6,6,8),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0),
+                    z= factor(c('a', 'a', 'a', 'a', 'c', 'c', 'a')))
+
+ftest <- model.frame(fit1, data=test2)
+all.equal(levels(ftest$z), levels(test1$z))
+
+# xtest will have one more row than the others, since it does not delete
+#  the observation with a missing value for status
+xtest <- model.matrix(fit1, data=test2)
+dummy <- fit2$x
+dummy[,1] <- 0
+all.equal(xtest[-2,], dummy, check.attributes=FALSE)
+
+# The case of a strata by factor interaction
+#  Use iter=0 since there are too many covariates and it won't converge
+test1$x2 <- factor(rep(1:2, length=7))
+fit3 <- coxph(Surv(time, status) ~ strata(x2)*z, test1, iter=0)
+xx <- model.matrix(fit3)
+all.equal(attr(xx, "assign"), c(2,2,3,3))
+all.equal(colnames(xx), c("zb", "zc", "strata(x2)2:zb",
+                          "strata(x2)2:zc"))
+all.equal(attr(xx, "contrasts"), 
+          list("strata(x2)"= "contr.treatment", z="contr.treatment"))
+
+fit3b <-   coxph(Surv(time, status) ~ strata(x2)*z, test1, iter=0, x=TRUE)
+all.equal(fit3b$x, xx)
+
+
+# A model with  a tt term
+fit4 <- coxph(Surv(time, status) ~ tt(x) + x, test1, iter=0,
+              tt = function(x, t, ...) x*t)
+ff <- model.frame(fit4)
+# There is 1 subject in the final risk set, 4 at risk at time 6, 6 at time 1
+# The .strata. variable numbers from last time point to first
+all.equal(ff$.strata., rep(1:3, c(1, 4,6)))
+all.equal(ff[["tt(x)"]], ff$x* c(9,6,1)[ff$.strata.])
+
+xx <- model.matrix(fit4)
+all.equal(xx[,1], ff[[2]], check.attributes=FALSE)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/aareg.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/aareg.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/aareg.Rout.save	(revision 2476)
@@ -0,0 +1,381 @@
+
+R version 2.14.0 Under development (unstable) (2011-04-10 r55401)
+Copyright (C) 2011 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Test aareg, for some simple data where the answers can be computed
+> #  in closed form
+> #
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+>    
+> test1 <- data.frame(time=  c(4, 3,1,1,2,2,3),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0),
++ 		    wt=    c(1, 1:6))
+> 
+> tfit  <- aareg(Surv(time, status) ~ x, test1)
+> aeq(tfit$times, c(1,2,2))
+[1] TRUE
+> aeq(tfit$nrisk, c(6,4,4))
+[1] TRUE
+> aeq(tfit$coefficient, matrix(c(0,0,1/3, 1/3, 1, -1/3), ncol=2))
+[1] TRUE
+> aeq(tfit$tweight, matrix(c(3,3,3, 3/2, 3/4, 3/4), ncol=2))
+[1] TRUE
+> aeq(tfit$test.statistic, c(1,1))
+[1] TRUE
+> aeq(tfit$test.var,       c(1, -1/4, -1/4, 1/4 + 9/16 + 1/16))
+[1] TRUE
+> 
+> tfit <- aareg(Surv(time, status) ~ x, test1, test='nrisk')
+> aeq(tfit$tweight, matrix(c(3,3,3, 3/2, 3/4, 3/4), ncol=2)) #should be as before
+[1] TRUE
+> aeq(tfit$test.statistic, c(4/3, 6/3+ 4 - 4/3))
+[1] TRUE
+> aeq(tfit$test.var,       c(16/9, -16/9, -16/9, 36/9 + 16 + 16/9))
+[1] TRUE
+> 
+> # In the 1-variable case, this is the same as the default Aalen weight
+> tfit <- aareg(Surv(time, status) ~ x, test1, test='variance')
+> aeq(tfit$test.statistic, c(1,1))
+[1] TRUE
+> aeq(tfit$test.var,       c(1, -1/4, -1/4, 1/4 + 9/16 + 1/16))
+[1] TRUE
+> 
+> #
+> # Repeat the above, with case weights
+> #
+> tfit <- aareg(Surv(time, status) ~x, test1, weights=wt)  
+> aeq(tfit$times, c(1,2,2))
+[1] TRUE
+> aeq(tfit$nrisk, c(21,16,16))
+[1] TRUE
+> aeq(tfit$coefficient, matrix(c(0,0,5/12, 2/9, 1, -5/12), ncol=2))
+[1] TRUE
+> aeq(tfit$tweight, matrix(c(12,12,12, 36/7, 3,3), ncol=2))
+[1] TRUE
+> aeq(tfit$test.statistic, c(5, 72/63 + 3 - 15/12))
+[1] TRUE
+> aeq(tfit$test.var,       c(25, -25/4, -25/4, (72/63)^2 + 9 + (5/4)^2))
+[1] TRUE
+> 
+> tfit <- aareg(Surv(time, status) ~x, test1, weights=wt, test='nrisk')
+> aeq(tfit$test.statistic, c(20/3,  42/9 + 16 - 16*5/12))
+[1] TRUE
+> aeq(tfit$test.var,       c(400/9, -400/9, -400/9, 
++ 			    (42/9)^2 + 16^2 + (16*5/12)^2))
+[1] TRUE
+> 
+> #
+> # Make a test data set with no NAs, in sorted order, no ties,
+> #   15 observations
+> tdata <- lung[15:29, c('time', 'status', 'age', 'sex', 'ph.ecog')]
+> tdata$status <- tdata$status -1
+> tdata <- tdata[order(tdata$time, tdata$status),]
+> row.names(tdata) <- 1:15
+> tdata$status[8] <- 0      #for some variety
+> 
+> afit <- aareg(Surv(time, status) ~ age + sex + ph.ecog, tdata, nmin=6)
+> #
+> # Now, do it "by hand"
+> cfit <- coxph(Surv(time, status) ~ age + sex + ph.ecog, tdata, iter=0,
++                method='breslow')
+> dt1   <- coxph.detail(cfit)
+> sch1  <- resid(cfit, type='schoen')
+> 
+> # First estimate of Aalen: from the Cox computations, first 9
+> #  The first and last cols of the ninth are somewhat unstable (approx =0)
+> mine <- rbind(solve(dt1$imat[,,1], sch1[1,]),
++               solve(dt1$imat[,,2], sch1[2,]),
++               solve(dt1$imat[,,3], sch1[3,]),
++               solve(dt1$imat[,,4], sch1[4,]),
++               solve(dt1$imat[,,5], sch1[5,]),
++               solve(dt1$imat[,,6], sch1[6,]),
++               solve(dt1$imat[,,7], sch1[7,]),
++               solve(dt1$imat[,,8], sch1[8,]),
++               solve(dt1$imat[,,9], sch1[9,])) 
+> mine <- diag(1/dt1$nrisk[1:9]) %*% mine
+> 
+> aeq(mine, afit$coef[1:9, -1])
+[1] TRUE
+> 
+> rm(tfit, afit, mine, dt1, cfit, sch1)
+> 
+> #
+> # Check out the dfbeta matrix from aareg
+> #   Note that it is kept internally in time order, not data set order
+> # Those who want residuals should use the resid function!
+> 
+> #
+> # First, the simple test case where I know the anwers
+> #
+> afit <- aareg(Surv(time, status) ~ x, test1, dfbeta=T)
+> temp <- c(rep(0,6),             #intercepts at time 1
++           c(2,-1,-1,0,0,0)/9,   #alpha at time 1
++           c(0,0,0,2, -1, -1)/9, #intercepts at time 2
++           c(0,0,0,-2,1,1)/9)    #alpha at time 2
+> aeq(afit$dfbeta, temp)
+[1] TRUE
+> 
+> #
+> #Now a multivariate data set
+> #
+> afit <- aareg(Surv(time, status) ~ age + sex + ph.ecog, lung, dfbeta=T)
+> 
+> ord <- order(lung$time, -lung$status)
+> cfit <- coxph(Surv(time, status) ~ age + sex + ph.ecog, lung[ord,],
++ 	        method='breslow', iter=0, x=T)
+> cdt  <- coxph.detail(cfit, riskmat=T)
+> 
+> # an arbitrary list of times
+> acoef <- rowsum(afit$coef, afit$times) #per death time coefs
+> indx <- match(cdt$time, afit$times)
+> for (i in c(2,5,27,54,101, 135)) {
++     lwho <- (cdt$riskmat[,i]==1)
++     lmx <- cfit$x[lwho,]
++     lmy <- 1*( cfit$y[lwho,2]==1 & cfit$y[lwho,1] == cdt$time[i])
++     fit <- lm(lmy~ lmx)
++     cat("i=", i, "coef=", aeq(fit$coef, acoef[i,]))
++ 
++     rr <- diag(resid(fit))
++     zz <- cbind(1,lmx)
++     zzinv <- solve(t(zz) %*% zz)
++     cat(" twt=", aeq(1/(diag(zzinv)), afit$tweight[indx[i],]))
++ 
++     df <- t(zzinv %*% t(zz)  %*% rr)
++     cat(" dfbeta=", aeq(df, afit$dfbeta[lwho,,i]), "\n")
++     }
+i= 2 coef= TRUE twt= TRUE dfbeta= TRUE 
+i= 5 coef= TRUE twt= TRUE dfbeta= TRUE 
+i= 27 coef= TRUE twt= TRUE dfbeta= TRUE 
+i= 54 coef= TRUE twt= TRUE dfbeta= TRUE 
+i= 101 coef= TRUE twt= TRUE dfbeta= TRUE 
+i= 135 coef= TRUE twt= TRUE dfbeta= TRUE 
+> 	  
+> rm(afit, cfit, cdt, lwho, lmx, lmy, fit, rr, zz, df)
+> 
+> 
+> # Repeat it with case weights
+> ww <- rep(1:5, length=nrow(lung))/ 3.0
+> afit <- aareg(Surv(time, status) ~ age + sex + ph.ecog, lung, dfbeta=T,
++ 	      weights=ww)
+> cfit <- coxph(Surv(time, status) ~ age + sex + ph.ecog, lung[ord,],
++ 	        method='breslow', iter=0, x=T, weight=ww[ord])
+> cdt  <- coxph.detail(cfit, riskmat=T)
+> 
+> acoef <- rowsum(afit$coef, afit$times) #per death time coefs
+> for (i in c(2,5,27,54,101, 135)) {
++     who <- (cdt$riskmat[,i]==1)
++     x <- cfit$x[who,]
++     y <- 1*( cfit$y[who,2]==1 & cfit$y[who,1] == cdt$time[i])
++     w <- cfit$weight[who]
++     fit <- lm(y~x, weights=w)
++     cat("i=", i, "coef=", aeq(fit$coef, acoef[i,]))
++ 
++     rr <- diag(resid(fit))
++     zz <- cbind(1,x)
++     zzinv <- solve(t(zz)%*% (w*zz))
++     cat(" twt=", aeq(1/(diag(zzinv)), afit$tweight[indx[i],]))
++  
++     df <- t(zzinv %*% t(zz) %*% (w*rr))
++     cat(" dfbeta=", aeq(df, afit$dfbeta[who,,i]), "\n")
++     }
+i= 2 coef= TRUE twt= TRUE dfbeta= TRUE 
+i= 5 coef= TRUE twt= TRUE dfbeta= TRUE 
+i= 27 coef= TRUE twt= TRUE dfbeta= TRUE 
+i= 54 coef= TRUE twt= TRUE dfbeta= TRUE 
+i= 101 coef= TRUE twt= TRUE dfbeta= TRUE 
+i= 135 coef= TRUE twt= TRUE dfbeta= TRUE 
+> 	  
+> rm(afit, cfit, cdt, who, x, y, fit, rr, zz, df)
+> rm(ord, acoef)
+>     
+> #
+> # Check that the test statistic computed within aareg and
+> #  the one recomputed within summary.aareg are the same.
+> # Of course, they could both be wrong, but at least they'll agree!
+> # If the maxtime argument is used in summary, it recomputes the test,
+> #  even if we know that it wouldn't have had to.
+> #
+> # Because the 1-variable and >1 variable case have different code, test
+> #  them both.
+> #
+> afit <- aareg(Surv(time, status) ~ age, lung, dfbeta=T)
+> asum <- summary(afit, maxtime=max(afit$times))
+> aeq(afit$test.stat, asum$test.stat)
+[1] TRUE
+> aeq(afit$test.var,  asum$test.var)
+[1] TRUE
+> aeq(afit$test.var2, asum$test.var2)
+[1] TRUE
+> 
+> print(afit)
+Call:
+aareg(formula = Surv(time, status) ~ age, data = lung, dfbeta = T)
+
+  n= 228 
+    139 out of 139 unique event times used
+
+              slope      coef se(coef) robust se      z      p
+Intercept -0.000872 -0.000905 4.26e-03  4.13e-03 -0.219 0.8270
+age        0.000110  0.000142 6.96e-05  6.75e-05  2.110 0.0351
+
+Chisq=4.44 on 1 df, p=0.035; test weights=aalen
+> 
+> afit <- aareg(Surv(time, status) ~ age, lung, dfbeta=T, test='nrisk')
+> asum <- summary(afit, maxtime=max(afit$times))
+> aeq(afit$test.stat, asum$test.stat)
+[1] TRUE
+> aeq(afit$test.var,  asum$test.var)
+[1] TRUE
+> aeq(afit$test.var2, asum$test.var2)
+[1] TRUE
+> 
+> summary(afit)
+$table
+                  slope        coef    se(coef)   robust se         z
+Intercept -0.0009538483 -0.11693804 0.534885651 0.533148054 -0.219335
+age        0.0001053024  0.01795521 0.008746523 0.008734005  2.055782
+                   p
+Intercept 0.82638908
+age       0.03980352
+
+$test
+[1] "nrisk"
+
+$test.statistic
+Intercept       age 
+-19.29478   2.96261 
+
+$test.var
+          [,1]        [,2]
+[1,] 7789.1449 -126.055872
+[2,] -126.0559    2.082758
+
+$test.var2
+          [,1]      [,2]
+[1,] 7738.6204 -125.5077
+[2,] -125.5077    2.0768
+
+$chisq
+        [,1]
+[1,] 4.22624
+
+$n
+[1] 228 139 139
+
+attr(,"class")
+[1] "summary.aareg"
+> 
+> #
+> # Mulitvariate
+> #
+> afit <- aareg(Surv(time, status) ~ age + sex + ph.karno + pat.karno, lung,
++ 	      dfbeta=T)
+> asum <- summary(afit, maxtime=max(afit$times))
+> aeq(afit$test.stat, asum$test.stat)
+[1] TRUE
+> aeq(afit$test.var,  asum$test.var)
+[1] TRUE
+> aeq(afit$test.var2, asum$test.var2)
+[1] TRUE
+> 
+> print(afit)
+Call:
+aareg(formula = Surv(time, status) ~ age + sex + ph.karno + pat.karno, 
+    data = lung, dfbeta = T)
+
+  n=224 (4 observations deleted due to missingness)
+    132 out of 136 unique event times used
+
+              slope      coef se(coef) robust se     z       p
+Intercept  2.15e-02  0.025000 8.45e-03  7.72e-03  3.25 0.00117
+age        3.09e-05  0.000076 7.32e-05  6.49e-05  1.17 0.24100
+sex       -2.96e-03 -0.004020 1.25e-03  1.23e-03 -3.27 0.00109
+ph.karno  -6.77e-05 -0.000083 6.69e-05  8.30e-05 -1.00 0.31700
+pat.karno -1.01e-04 -0.000112 5.59e-05  5.70e-05 -1.96 0.05010
+
+Chisq=23.36 on 4 df, p=0.00011; test weights=aalen
+> 
+> afit <- aareg(Surv(time, status) ~ age + sex + ph.karno + pat.karno, lung,
++ 	      dfbeta=T, test='nrisk')
+> asum <- summary(afit, maxtime=max(afit$times))
+> aeq(afit$test.stat, asum$test.stat)
+[1] TRUE
+> aeq(afit$test.var,  asum$test.var)
+[1] TRUE
+> aeq(afit$test.var2, asum$test.var2)
+[1] TRUE
+> 
+> summary(afit)
+$table
+                  slope        coef    se(coef)   robust se         z
+Intercept  2.119015e-02  3.05872822 1.044992929 0.955953617  3.199662
+age        3.181122e-05  0.01071085 0.009280348 0.008182931  1.308926
+sex       -2.985556e-03 -0.49368373 0.153217001 0.151559500 -3.257359
+ph.karno  -8.371983e-05 -0.01131957 0.007825769 0.009654398 -1.172478
+pat.karno -8.501076e-05 -0.01328844 0.007241150 0.007669582 -1.732617
+                   p
+Intercept 0.00137589
+age       0.19055946
+sex       0.00112454
+ph.karno  0.24100515
+pat.karno 0.08316385
+
+$test
+[1] "nrisk"
+
+$test.statistic
+ Intercept        age        sex   ph.karno  pat.karno 
+480.220330   1.681604 -77.508345  -1.777173  -2.086286 
+
+$test.var
+            b0                                                   
+b0 26916.95995 -177.3767597 -791.4141458 -103.5540756 -69.1210402
+    -177.37676    2.1228915    0.1752574    0.4055099   0.1622945
+    -791.41415    0.1752574  578.6463538   -0.9726495  -0.6320578
+    -103.55408    0.4055099   -0.9726495    1.5095704  -0.5793466
+     -69.12104    0.1622945   -0.6320578   -0.5793466   1.2924520
+
+$test.var2
+            [,1]         [,2]         [,3]         [,4]        [,5]
+[1,] 22525.42254 -109.0376340 -1294.620657 -135.7477106 -24.1718358
+[2,]  -109.03763    1.6505060     2.562655    0.1774270  -0.1206339
+[3,] -1294.62066    2.5626546   566.194480    7.4865489  -4.7691882
+[4,]  -135.74771    0.1774270     7.486549    2.2974694  -0.9877341
+[5,]   -24.17184   -0.1206339    -4.769188   -0.9877341   1.4499155
+
+$chisq
+        [,1]
+[1,] 22.3874
+
+$n
+[1] 224 132 136
+
+attr(,"class")
+[1] "summary.aareg"
+> 
+> # Weights play no role in the final computation of the test statistic, given
+> #  the coefficient matrix, nrisk, and dfbeta as inputs.  (Weights do
+> #  change the inputs).  So there is no need to reprise the above with
+> #  case weights.
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/difftest.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/difftest.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/difftest.R	(revision 2476)
@@ -0,0 +1,56 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Test some more features of surv.diff
+#
+#  First, what happens when one group is a dummy
+#
+
+
+#
+# The AML data, with a third group of early censorings "tacked on"
+#
+aml3 <- list(time=   c( 9, 13, 13, 18, 23, 28, 31, 34, 45, 48, 161,
+			   5,  5,  8,  8, 12, 16, 23, 27, 30, 33, 43, 45,
+			   1,  2,  2,  3,  3,  3,  4),
+	    status= c( 1,1,0,1,1,0,1,1,0,1,0, 1,1,1,1,1,0,1,1,1,1,1,1,
+				0,0,0,0,0,0,0),
+	    x     = as.factor(c(rep("Maintained", 11),
+				rep("Nonmaintained", 12), rep("Dummy",7) )))
+
+aml3 <- data.frame(aml3)
+
+# These should give the same result (chisq, df), but the second has an
+#  extra group
+survdiff(Surv(time, status) ~x, aml)
+survdiff(Surv(time, status) ~x, aml3)
+
+
+#
+# Now a test of the stratified log-rank
+#   There are no tied times within institution, so the coxph program
+#   can be used to give a complete test
+#
+fit <- survdiff(Surv(time, status) ~ pat.karno + strata(inst), cancer)
+
+cfit <- coxph(Surv(time, status) ~ factor(pat.karno) + strata(inst),
+		cancer, iter=0)
+
+tdata <- na.omit(cancer[,c('time', 'status', 'pat.karno', 'inst')])
+
+temp1 <- tapply(tdata$status-1, list(tdata$pat.karno, tdata$inst), sum)
+temp1 <- ifelse(is.na(temp1), 0, temp1)
+temp2 <- tapply(cfit$resid,  list(tdata$pat.karno, tdata$inst), sum)
+temp2 <- ifelse(is.na(temp2), 0, temp2)
+
+temp2 <- temp1 - temp2
+
+#Now temp1=observed, temp2=expected
+all.equal(c(temp1), c(fit$obs))
+all.equal(c(temp2), c(fit$exp))
+
+all.equal(fit$var[-1,-1], solve(cfit$var))
+
+rm(tdata, temp1, temp2)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testreg.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testreg.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testreg.R	(revision 2476)
@@ -0,0 +1,79 @@
+options(na.action=na.exclude)  #preserve length of missings
+library(survival)
+
+#
+# Run a test that can be verified using other packages (we used SAS)
+#
+test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0))
+fit1w <- survreg(Surv(time, status) ~x, test1, dist='weibull')
+fit1w
+summary(fit1w)
+
+fit1e <- survreg(Surv(time, status) ~x, test1, dist='exponential')
+fit1e
+summary(fit1e)
+
+fit1l <- survreg(Surv(time, status) ~x, test1, dist='loglogistic')
+fit1l
+summary(fit1l)
+
+fit1g <- survreg(Surv(time, status) ~x, test1, dist='lognormal')
+summary(fit1g)
+#
+#  Do a test with the ovarian data
+#
+fitfw <- survreg(Surv(futime, fustat) ~ age + ecog.ps, ovarian,
+	dist='weibull')
+fitfw
+
+fitfl <- survreg(Surv(futime, fustat) ~ age + ecog.ps, ovarian,
+	dist='loglogistic')
+fitfl
+
+#test out interval censoring, using some dummy time values
+
+idat <- read.table('data.interval', skip=3, header=T, sep=',')
+flsurv<- Surv(idat$ltime, idat$rtime, type='interval2')
+
+fitfw2 <- survreg(flsurv ~ age + ecog.ps, idat, dist='weibull')
+summary(fitfw2)
+
+fitfl2 <- survreg(flsurv ~ age + ecog.ps, idat, dist='loglogistic')
+summary(fitfl2)
+
+fitfg2 <- survreg(flsurv ~ age + ecog.ps, idat, dist='lognormal')
+summary(fitfg2)
+
+logt <- c(survreg.distributions$t, 
+          survreg.distributions$weibull[c('trans', 'itrans', 'dtrans')])
+logt$name <- 'log(t)'
+
+fitft2 <- survreg(Surv(ltime, rtime, type='interval2') ~ age + ecog.ps,
+            idat, dist=logt, parm=100)
+summary(fitft2)  #should be quite close to fitfg2
+
+#
+# Check out the survreg density and probability functions
+#
+
+# Gaussian
+x <- -10:10
+p <- seq(.1, .95, length=25)
+all.equal(dsurvreg(x, 1, 5, 'gaussian'), dnorm(x, 1, 5))
+all.equal(psurvreg(x, 1, 5, 'gaussian'), pnorm(x, 1, 5))
+all.equal(qsurvreg(p, 1, 5, 'gaussian'), qnorm(p, 1, 5))
+
+# Lognormal
+x <- 1:10
+all.equal(dsurvreg(x, 1, 5, 'lognormal'), dlnorm(x, 1, 5))
+all.equal(psurvreg(x, 1, 5, 'lognormal'), plnorm(x, 1, 5))
+all.equal(qsurvreg(p, 1, 5, 'lognormal'), qlnorm(p, 1, 5))
+
+# Weibull
+lambda <- exp(-2)
+rho    <- 1/3
+temp <- (lambda*x)^rho
+all.equal(psurvreg(x, 2, 3), 1- exp(-temp))
+all.equal(dsurvreg(x, 2, 3), lambda*rho*(lambda*x)^(rho-1)*exp(-temp))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/jasa.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/jasa.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/jasa.R	(revision 2476)
@@ -0,0 +1,85 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+expect <- survexp(futime ~ ratetable(age=(accept.dt - birth.dt), sex=1,
+		year=accept.dt, race='white'), jasa, cohort=F, 
+                  ratetable=survexp.usr)
+
+survdiff(Surv(jasa$futime, jasa$fustat) ~ offset(expect))
+# Now fit the 6 models found in Kalbfleisch and Prentice, p139
+sfit.1 <- coxph(Surv(start, stop, event)~ (age + surgery)*transplant,
+				jasa1, method='breslow')
+sfit.2 <- coxph(Surv(start, stop, event)~ year*transplant,
+				jasa1, method='breslow')
+sfit.3 <- coxph(Surv(start, stop, event)~ (age + year)*transplant,
+				jasa1, method='breslow')
+sfit.4 <- coxph(Surv(start, stop, event)~ (year +surgery) *transplant,
+				jasa1, method='breslow')
+sfit.5 <- coxph(Surv(start, stop, event)~ (age + surgery)*transplant + year ,
+				jasa1, method='breslow')
+sfit.6 <- coxph(Surv(start, stop, event)~ age*transplant + surgery + year,
+				jasa1, method='breslow')
+
+summary(sfit.1)
+sfit.2
+summary(sfit.3)
+sfit.4
+sfit.5
+sfit.6
+
+# Survival curve for an "average" subject,
+#  done once as overall, once via individual method
+surv1 <- survfit(sfit.1, newdata=list(age=-2, surgery=0, transplant=0))
+newdata <- data.frame(start=c(0,50,100), stop=c(50,100, max(jasa1$stop)), 
+                   event=c(1,1,1), age=rep(-2,3), surgery=rep(0,3),
+                   transplant=rep(0,3))
+surv2 <- survfit(sfit.1, newdata, individual=T)
+# Have to use unclass to avoid [.survfit trying to pick curves,
+#  remove the final element "call" because it won't match
+all.equal(unclass(surv1)[-length(surv1)],
+          unclass(surv2)[-length(surv2)])
+
+
+# Survival curve for a subject of age 50, with prior surgery, tx at 6 months
+#  Remember that 'age' in jasa 1 was centered at 48
+data <- data.frame(start=c(0,183), stop=c(183,3*365), event=c(1,1),
+		   age=c(2,2),  surgery=c(1,1), transplant=c(0,1))
+summary(survfit(sfit.1, data, individual=T))
+
+# These should all give the same answer
+# When there are offsets, the default curve is always for someone with
+#  the mean offset.
+j.age <- jasa$age -48
+fit1 <- coxph(Surv(futime, fustat) ~ j.age, data=jasa)
+fit2 <- coxph(Surv(futime, fustat) ~ j.age, jasa, init=fit1$coef, iter=0)
+fit3 <- coxph(Surv(start, stop, event) ~ age, jasa1)
+fit4 <- coxph(Surv(start, stop, event) ~ offset(age*fit1$coef), jasa1)
+
+s1 <- survfit(fit1, list(j.age=fit3$means), censor=FALSE)
+s2 <- survfit(fit2, list(j.age=fit3$means), censor=FALSE)
+s3 <- survfit(fit3, censor=FALSE)
+s4 <- survfit(fit4, censor=FALSE)
+
+all.equal(s1$surv, s2$surv)
+all.equal(s1$surv, s3$surv)
+all.equal(s1$surv, s4$surv)
+
+# Still the same answer, fit multiple strata at once
+#  Strata 1 has independent coefs of strata 2, so putting in
+#    the other data should not affect it
+ll <- nrow(jasa1)
+ss <- rep(0:1, c(ll,ll))
+tdata <- with(jasa1, data.frame(start=rep(start,2), stop=rep(stop,2),
+		    event=rep(event,2), ss=ss, age=rep(age,2),
+		    age2 = (rep(age,2))^2 * ss))
+fit <- coxph(Surv(start, stop, event) ~ age*strata(ss) + age2, tdata)
+#  Above replaced these 2 lines, which kill Splus5 as of 8/98
+#    Something with data frames, I expect.
+#fit <- coxph(Surv(rep(start,2), rep(stop,2), rep(event,2)) ~
+#			rep(age,2)*strata(ss) + I(rep(age,2)^2*ss) )
+all.equal(fit$coef[1], fit3$coef)
+s5 <- survfit(fit, data.frame(age=fit3$means, age2=0, ss=0), censor=FALSE)
+all.equal(s5$surv[1:(s5$strata[1])],  s3$surv)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survreg2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survreg2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survreg2.R	(revision 2476)
@@ -0,0 +1,62 @@
+library(survival)
+options(na.action=na.exclude, contrasts=c('contr.treatment', 'contr.poly'))
+
+# Verify stratified fits in a simple way, but combining two data
+#  sets and doing a single fit
+#
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+
+tdata <- data.frame(time=c(lung$time, ovarian$futime),
+                    status=c(lung$status-1, ovarian$fustat),
+                    group =rep(0:1, c(nrow(lung), nrow(ovarian))))
+fit1 <- survreg(Surv(time, status) ~ 1, lung)
+fit2 <- survreg(Surv(futime, fustat) ~ 1, ovarian)
+fit3 <- survreg(Surv(time, status) ~ group + strata(group), tdata)
+
+aeq(c(fit1$coef, fit2$coef-fit1$coef), fit3$coef)
+aeq(c(fit1$scale, fit2$scale), fit3$scale)
+aeq(fit1$loglik[2] + fit2$loglik[2], fit3$loglik[2])
+
+#
+# Test out the cluster term in survreg, which means first a test
+#  of the dfbeta residuals
+# I also am checking that missing values propogate
+test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0))
+fit1 <- survreg(Surv(time, status) ~ x + cluster(1:7), test1)
+
+db1 <- resid(fit1, 'dfbeta')
+ijack <-db1
+eps <- 1e-7
+for (i in 1:7) {
+    temp <- rep(1.0,7)
+    temp[i] <- 1-eps
+    tfit <- survreg(Surv(time, status) ~ x, test1, weight=temp)
+    ijack[i,] <- c(tfit$coef, log(tfit$scale)) 
+    }
+ijack[2,] <- NA  # stick the NA back in
+ijack <- (rep(c(fit1$coef, log(fit1$scale)), each=nrow(db1)) - ijack)/eps
+all.equal(db1, ijack, tolerance=eps)
+all.equal(t(db1[-2,])%*% db1[-2,], fit1$var)
+
+# This is a harder test since there are multiple strata and multiple 
+#  obs/subject.  Use of enum + strata(enum) in essenence fits a different
+#  baseline Weibull to each strata, with common coefficients for rx, size, and
+#  number.
+fit1 <- survreg(Surv(stop-start, event) ~  rx + size + number + 
+                factor(enum) + strata(enum), data=bladder2)
+
+db1 <- resid(fit1, type='dfbeta', collapse=bladder2$id)
+ijack <- db1  # a matrix of the same size
+for (i in 1:nrow(db1)) {
+    twt <- rep(1., nrow(bladder2))
+    twt[bladder2$id==i] <- 1-eps
+    tfit <- survreg(Surv(stop-start, event) ~ rx + size + number + 
+                    factor(enum) + strata(enum), data=bladder2, 
+                    weight=twt)
+    ijack[i,] <- c(coef(tfit), log(tfit$scale)) 
+    }
+ijack <- (rep(c(fit1$coef, log(fit1$scale)), each=nrow(db1)) - ijack)/eps
+all.equal(db1, ijack, tolerance=eps*2)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_strata.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_strata.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_strata.R	(revision 2476)
@@ -0,0 +1,60 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Test out the strata capabilities
+#
+tol <- survreg.control()$rel.tolerance
+aeq <- function(x,y,...) all.equal(as.vector(x), as.vector(y), ...)
+
+# intercept only models
+fit1 <- survreg(Surv(time, status) ~ strata(sex), lung)
+fit2 <- survreg(Surv(time, status) ~ strata(sex) + sex, lung)
+fit3a<- survreg(Surv(time,status) ~1, lung, subset=(sex==1))
+fit3b<- survreg(Surv(time,status) ~1, lung, subset=(sex==2))
+
+fit1
+fit2
+aeq(fit2$scale, c(fit3a$scale, fit3b$scale), tolerance=tol)
+aeq(fit2$loglik[2], (fit3a$loglik + fit3b$loglik)[2], tolerance=tol)
+aeq(fit2$coef[1] + 1:2*fit2$coef[2], c(fit3a$coef, fit3b$coef), tolerance=tol)
+
+#penalized models
+fit1 <- survreg(Surv(time, status) ~ pspline(age, theta=.92)+
+                strata(sex), lung)
+fit2 <- survreg(Surv(time, status) ~  pspline(age, theta=.92)+ 
+		strata(sex) + sex, lung)
+fit1
+fit2
+
+age1 <- ifelse(lung$sex==1, lung$age, mean(lung$age))
+age2 <- ifelse(lung$sex==2, lung$age, mean(lung$age))
+fit3 <- survreg(Surv(time,status) ~ pspline(age1, theta=.92) +
+		pspline(age2, theta=.95) + sex + strata(sex), lung)
+fit3a<- survreg(Surv(time,status) ~pspline(age, theta=.92), lung, 
+		    subset=(sex==1))
+fit3b<- survreg(Surv(time,status) ~pspline(age, theta=.95), lung, 
+		     subset=(sex==2))
+fit3b<- survreg(Surv(time,status) ~pspline(age, theta=.95),
+                lung[lung$sex==2,], x=T) 
+#
+# The above line is tricky, and it took me a long time to realize
+#  it's necessity.  The range of age1 = range(age) = 39-82.  That for
+#  age2 = range of females = 41-77.  The basis functions for pspline are
+#  based on age.  If I used data=lung, subset=(sex==2) in fit3b (earlier
+#  form of the test, the pspline function is called before the subset
+#  occurs, and fit3b has a different basis for the second spline than
+#  fit3 does; leading to failure of the all.equal tests below.  A theta
+#  of .95 on one basis is not exactly the same as a theta of .95 on the
+#  other. Coefficients were within 1%, but not the same.  
+
+aeq(fit3$scale, c(fit3a$scale, fit3b$scale))
+aeq(fit3$loglik[2], (fit3a$loglik + fit3b$loglik)[2])
+pred <- predict(fit3)
+aeq(pred[lung$sex==1] , predict(fit3a))
+aeq(pred[lung$sex==2],  predict(fit3b))
+
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_simple.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_simple.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_simple.R	(revision 2476)
@@ -0,0 +1,62 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Test the logic of the penalized code by fitting some no-frailty models
+#  (theta=0).  It should give exactly the same answers as 'ordinary' coxph.
+#
+test1 <- data.frame(time=  c(4, 3,1,1,2,2,3),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0))
+
+test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
+                    stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
+                    event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
+                    x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+
+zz <- rep(0, nrow(test1))
+tfit1 <- coxph(Surv(time,status) ~x, test1, eps=1e-7)
+tfit2 <- coxph(Surv(time,status) ~x + frailty(zz, theta=0, sparse=T), test1)
+tfit3 <- coxph(Surv(zz,time,status) ~x + frailty(zz, theta=0, sparse=T), test1)
+
+temp <- c('coefficients', 'var', 'loglik', 'linear.predictors',
+	  'means', 'n', 'concordance')
+
+all.equal(tfit1[temp], tfit2[temp])
+all.equal(tfit2[temp], tfit3[temp])
+
+zz <- rep(0, nrow(test2))
+tfit1 <- coxph(Surv(start, stop, event) ~x, test2, eps=1e-7)
+tfit2 <- coxph(Surv(start, stop, event) ~ x + frailty(zz, theta=0, sparse=T),
+	       test2)
+all.equal(tfit1[temp], tfit2[temp])
+
+
+#
+# Repeat the above tests, but with a strata added
+#  Because the data set is simply doubled, the loglik will double,
+#   beta is the same, variance is halved.
+#
+test3 <- rbind(test1, test1)
+test3$x2 <- rep(1:2, rep(nrow(test1),2))
+zz <- rep(0, nrow(test3))
+tfit1 <- coxph(Surv(time,status) ~x + strata(x2), test3, eps=1e-7)
+tfit2 <- coxph(Surv(time,status) ~x + frailty(zz, theta=0, sparse=T)
+	       + strata(x2), test3)
+tfit3 <- coxph(Surv(zz,time,status) ~x + frailty(zz, theta=0, sparse=T)
+	         + strata(x2), test3)
+
+all.equal(tfit1[temp], tfit2[temp])
+all.equal(tfit2[temp], tfit3[temp])
+
+
+test4 <- rbind(test2, test2)
+test4$x2 <- rep(1:2, rep(nrow(test2),2))
+zz <- rep(0, nrow(test4))
+tfit1 <- coxph(Surv(start, stop, event) ~x, test4, eps=1e-7)
+tfit2 <- coxph(Surv(start, stop, event) ~ x + frailty(zz, theta=0, sparse=T),
+	       test4)
+all.equal(tfit1[temp], tfit2[temp])
+
+rm(test3, test4, tfit1, tfit2, tfit3, temp, zz)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testci.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testci.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testci.Rout.save	(revision 2476)
@@ -0,0 +1,159 @@
+
+R Under development (unstable) (2016-04-12 r70470) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> aeq <- function(x,y,...) all.equal(as.vector(x), as.vector(y),...)
+> 
+> #
+> # Test out the survfit.ci function, which does competing risk
+> #   estimates
+> #
+> # First trivial test
+> tdata <- data.frame(time=c(1,2,2,3,3,3,5,6),
++                     status = c(0,1,0,1,0,1,0,1),
++                     event =  c(1,1,2,2,1,2,3,2),
++                     grp = c(1,2,1,2,1,2,1,2))
+> fit <- survfit(Surv(time, status*event, type='mstate') ~1, tdata)
+> 
+> byhand <- function() {
++     #everyone starts in state 0
++     p1 <- c(1,0,0)
++ 
++     p2 <- c(6/7, 1/7, 0)  # 0-1 transition at time 2
++     u2 <- matrix(rep(c(1/49, -1/49, 0), each=8), ncol=3) #leverage matrix at time 2
++     u2[1,] <- 0  #subject 1 is not present
++     u2[2,1:2] <- u2[2, 1:2] + c(-1/7, 1/7)
++ 
++     p3 <- c((6/7)*(3/5), 1/7, 12/35) # 0-2 transition at time 3, 5 at risk
++     h3 <- matrix(c(3/5, 0, 2/5, 0,1,0, 0,1,0), byrow=T, ncol=3) #hazard mat
++     u3 <- u2 %*% h3
++     u3[4:8,1] <- u3[4:8,1] + p2[1]*2/25
++     u3[4:8,3] <- u3[4:8,3]  -p2[1]*2/25
++     u3[4,] <- u3[4,] + c(-p2[1]/5, 0, p2[1]/5)
++     u3[6,] <- u3[4,]
++  
++     p6 <- c(0, 1/7, 6/7) # 0-2 at time 6, 1 at risk
++     h6 <- matrix(c(-1,0,1,0,1,0,0,1,0), byrow=T, ncol=3)
++     u6 <- cbind(0, u3[,2], -u3[,2])
++     
++     V <- rbind(0, colSums(u2^2), 
++                   colSums(u3^2),
++                   colSums(u3^2),
++                   colSums(u6^2))
++     list(P=rbind(p1, p2, p3, p3, p6), u2=u2, u3=u3, u6=u6, V=V)
++ }
+> bfit <- byhand()
+> aeq(fit$prev, bfit$P[,c(2,3,1)])
+[1] TRUE
+> aeq(fit$n.risk[,3], c(8,7,5,2,1))
+[1] TRUE
+> aeq(fit$n.event[,1:2], c(0,1,0,0,0, 0,0 ,2,0,1))
+[1] TRUE
+> aeq(fit$std^2, bfit$V[,c(2,3,1)])
+[1] TRUE
+> 
+> # Times purposely has values that are before the start, exact, intermediate
+> #  and after the end of the observed times
+> sfit <- summary(fit, times=c(0, 1, 3.5, 6, 7), extend=TRUE)
+> aeq(sfit$prev, rbind(c(0,0,1), bfit$P[c(1,3,5,5), c(2,3,1)]))
+[1] TRUE
+> aeq(sfit$n.risk[,3], c(8,8, 2, 1, 0))
+[1] TRUE
+> aeq(sfit$n.event,  matrix(c(0,0,1,0,0, 0,0,2,1,0, 0,0,0,0,0), ncol=3))
+[1] TRUE
+> 
+> #
+> # For this we need the competing risks MGUS data set, first
+> #  event
+> #
+> tdata <- mgus1[mgus1$enum==1,]
+> # Ensure the old-style call using "etype" works (backwards compatability)
+> fit1 <- survfit(Surv(stop, status) ~ 1, etype=event, tdata)
+> fit1b <-survfit(Surv(stop, event) ~1, tdata)
+> indx <- match("call", names(fit1)) 
+> all.equal(unclass(fit1)[-indx], unclass(fit1b)[-indx])
+[1] TRUE
+> 
+> # Now get the overall survival, and the hazard for progression
+> fit2 <- survfit(Surv(stop, status) ~1, tdata)  #overall to "first bad thing"
+> fit3 <- survfit(Surv(stop, status*(event=='pcm')) ~1, tdata,
++                 type='fleming')
+> fit4 <- survfit(Surv(stop, status*(event=='death')) ~1, tdata,
++                 type='fleming')
+> 
+> aeq(fit1$n.risk[,3], fit2$n.risk)
+[1] TRUE
+> aeq(rowSums(fit1$n.event), fit2$n.event)
+[1] TRUE
+> 
+> # Classic CI formula
+> #  integral [hazard(t) S(t-0) dt], where S= "survival to first event"
+> haz1 <- diff(c(0, -log(fit3$surv))) #Aalen hazard estimate for progression
+> haz2 <- diff(c(0, -log(fit4$surv))) #Aalen estimate for death
+> tsurv <- c(1, fit2$surv[-length(fit2$surv)])  #lagged survival
+> ci1 <- cumsum(haz1 *tsurv)
+> ci2 <- cumsum(haz2 *tsurv)
+> aeq(cbind(ci1, ci2), fit1$prev[,1:2])
+[1] TRUE
+> 
+> #
+> # Now, make sure that it works for subgroups
+> #
+> fit1 <- survfit(Surv(stop, event) ~ sex, tdata)
+> fit2 <- survfit(Surv(stop, event) ~ 1, tdata,
++                         subset=(sex=='female'))
+> fit3 <- survfit(Surv(stop, event) ~ 1, tdata,
++                    subset=(sex=='male'))
+> 
+> aeq(fit2$prev, fit1$prev[1:fit1$strata[1],])
+[1] TRUE
+> aeq(fit2$std, fit1$std[1:fit1$strata[1],])
+[1] TRUE
+> aeq(fit3$prev, fit1$prev[-(1:fit1$strata[1]),])
+[1] TRUE
+> 
+> #  A second test of cumulative incidence
+> # compare results to Bob Gray's functions
+> #  The file gray1 is the result of 
+> #    library(cmprsk)
+> #    tstat <- ifelse(tdata$status==0, 0, 1+ (tdata$event=='death'))
+> #    gray1 <- cuminc(tdata$stop, tstat)
+> load("gray1.rda")
+> fit2 <- survfit(Surv(stop, event) ~ 1, tdata)
+> 
+> if (FALSE) {
++     # lines of the two graphs should overlay
++     plot(gray1[[1]]$time, gray1[[1]]$est, type='l',
++          ylim=range(c(gray1[[1]]$est, gray1[[2]]$est)),
++          xlab="Time")
++     lines(gray1[[2]]$time, gray1[[2]]$est, lty=2)
++     matlines(fit2$time, fit2$prev, col=2, lty=1:2, type='s')
++ }
+> # To formally match these is a bit of a nuisance.
+> #  The cuminc function returns a full step function, and survfit only
+> # the bottoms of the steps.
+> temp1 <- tapply(gray1[[1]]$est, gray1[[1]]$time, max)[-1]  #toss time 0
+> indx1 <- match(names(temp1), fit2$time)
+> aeq(temp1, fit2$prev[indx1,1])
+[1] TRUE
+>     
+> 
+> proc.time()
+   user  system elapsed 
+  1.244   0.056   1.298 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv3.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv3.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv3.Rout.save	(revision 2476)
@@ -0,0 +1,127 @@
+
+R version 2.11.0 (2010-04-22)
+Copyright (C) 2010 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> library(survival)
+Loading required package: splines
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> # One more test on coxph survival curves, to test out the individual
+> #  option.  First fit a model with a time dependent covariate
+> #
+> test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
++                     stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
++                     event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
++                     x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+> 
+> # True hazard function, from the validation document
+> lambda <- function(beta, x=0, method='efron') {
++     r <- exp(beta)
++     lambda <- c(1/(r+1), 1/(r+2), 1/(3*r +2), 1/(3*r+1),
++                 1/(3*r+1), 1/(3*r+2) + 1/(2*r +2))
++     if (method == 'breslow') lambda[9] <- 2/(3*r +2)
++     list(time=c(2,3,6,7,8,9), lambda=lambda)
++     }
+> 
+> fit <- coxph(Surv(start, stop, event) ~x, test2)
+> # A curve for someone who never changes
+> surv1 <-survfit(fit, newdata=list(x=0), censor=FALSE)
+> 
+> true <- lambda(fit$coef, 0)
+> 
+> aeq(true$time, surv1$time)
+[1] TRUE
+> aeq(-log(surv1$surv), cumsum(true$lambda))
+[1] TRUE
+> 
+> # Reprise it with a time dependent subject who doesn't change
+> data2 <- data.frame(start=c(0, 4, 9, 11), stop=c(4, 9, 11, 17),
++                       event=c(0,0,0,0), x=c(0,0,0,0))
+> surv2 <- survfit(fit, newdata=data2, individual=TRUE, censor=FALSE)
+> aeq(surv2$surv, surv1$surv)
+[1] TRUE
+> 
+> 
+> #
+> # Now a more complex data set with multiple strata
+> #
+> test3 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8,
++                             0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
++                     stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17,
++                             1:11),
++                     event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
++                             0, 1, 1, 0, 0, 1, 1, 0, 1, 0,1),
++                     x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0,
++                             1, 2, 3, 2, 1, 1, 1, 0, 2, 1,0),
++                     grp = c(rep('a', 10), rep('b', 11)))
+> 
+> fit2 <- coxph(Surv(start, stop, event) ~ x + strata(grp), test3)
+> 
+> # The above tests show the program works for a simple case, use it to
+> #  get a true baseline for strata 2
+> fit2b <- coxph(Surv(start, stop, event) ~x, test3,
++                subset=(grp=='b'), init=fit2$coef, iter=0)
+> temp <- survfit(fit2b,  newdata=list(x=0), censor=F)
+> true2 <- list(time=temp$time, lambda=diff(c(0, -log(temp$surv))))
+> true1 <- lambda(fit2$coef, x=0)
+> 
+> # Separate strata, one value
+> surv3 <- survfit(fit2, list(x=0), censor=FALSE)
+> aeq(true1$time, (surv3[1])$time)
+[1] TRUE
+> aeq(-log(surv3[1]$surv), cumsum(true1$lambda))
+[1] TRUE
+> 
+> data4 <- data.frame(start=c(0, 4, 9, 11), stop=c(4, 9, 11, 17),
++                       event=c(0,0,0,0), x=c(0,0,0,0), grp=rep('a', 4))
+> surv4a <- survfit(fit2, newdata=data4, individual=T, censor=FALSE)
+> aeq(-log(surv4a$surv), cumsum(true1$lambda))
+[1] TRUE
+> 
+> data4$grp <- rep('b',4)
+> surv4b <- survfit(fit2, newdata=data4, individual=T, censor=FALSE)
+> aeq(-log(surv4b$surv), cumsum(true2$lambda))
+[1] TRUE
+> 
+> 
+> # Now for something more complex
+> # Subject 1 skips day 4.  Since there were no events that day the survival
+> #  will be the same, but the times will be different.
+> # Subject 2 spends some time in strata 1, some in strata 2, with
+> #   moving covariates
+> #
+> data5 <- data.frame(start=c(0,5,9,11,
++                              0, 4, 3),
++                     stop =c(4,9,11,17, 4,8,7),
++                     event=rep(0,7),
++                     x=c(1,1,1,1, 0,1,2),
++                     grp=c('a', 'a', 'a', 'a', 'a', 'a', 'b'),
++                     subject=c(1,1,1,1, 2,2,2))
+> surv5 <- survfit(fit2, newdata=data5, censor=FALSE, id=subject)
+> 
+> aeq(surv5[1]$time, c(2,3,5,6,7,8))  #surv1 has 2, 3, 6, 7, 8, 9
+[1] TRUE
+> aeq(surv5[1]$surv, surv3[1]$surv ^ exp(fit2$coef))
+[1] TRUE
+> 
+> tlam <- c(true1$lambda[1:2]* exp(fit2$coef * data5$x[5]),
++           true1$lambda[3:5]* exp(fit2$coef * data5$x[6]),      
++           true2$lambda[3:4]* exp(fit2$coef * data5$x[7]))
+> aeq(-log(surv5[2]$surv), cumsum(tlam))
+[1] TRUE
+> 
+>                           
+>                           
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tmerge.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tmerge.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tmerge.R	(revision 2476)
@@ -0,0 +1,58 @@
+library(survival)
+# Very simple tmerge example, for checking
+data1 <- data.frame(idd = c(1,5,4,3,2,6), x1=1:6, age=50:55)
+data2 <- data.frame(idd = c(2,5,1,2,1), x2=5:1, age=48:44)
+test1 <- tmerge(data1, data1, id=idd, death=event(age))
+test2 <- tmerge(test1, data2, id=idd, zed=tdc(age, x2))
+all.equal(test2$id, c(1,1,1,5,5,4,3,2,2,2,6))
+all.equal(test2$tstop, c(44, 46, 50, 47, 51, 52, 53, 45, 48, 54, 55))
+all.equal(test2$death, c(0,0,1,0,1,1,1,0,0,1,1))
+all.equal(test2$zed, c(NA, 5, 4,NA, 3, NA, NA, NA, 2, 1, NA))
+
+#add in a cumtdc variable and cumevent variable
+data3 <- data.frame(idd=c(5,5,1,1,6,4,3,2), 
+                    age=c(45, 50, 44, 48, 53,-5,0,20),
+                    x = c(1,5,2,3,7, 4,6,8))
+test3 <- tmerge(test2, data3, id=idd, x=cumtdc(age, x),
+                esum = cumevent(age))
+all.equal(test3$x, c(NA,1,1,6,NA, 2,2,5,7,4, NA, 6,6,6, NA,8))
+all.equal(test3$esum, c(1,0,2,0,1,0,2,0,0,0,1,0,0,0,1,0)) 
+
+
+# An example from Brendan Caroll
+# It went wrong because the data is not sorted
+
+ages <- data.frame( id = c(1L, 2L, 5L, 6L, 9L, 10L, 12L, 13L, 14L, 15L, 16L,
+ 17L, 18L, 20L, 21L, 24L, 26L, 27L, 28L, 29L, 30L, 31L, 34L, 35L, 36L, 37L, 
+38L, 39L, 40L, 42L, 45L, 46L, 43L, 48L, 49L, 50L, 51L, 52L, 54L, 55L, 57L, 
+58L, 59L, 60L, 61L, 62L, 63L, 64L, 65L, 66L, 68L, 69L, 70L, 71L, 72L, 73L, 
+74L, 75L, 8L, 19L, 22L, 23L, 33L, 41L), 
+                   age = c(13668, 21550, 15249, 21550, 
+16045, 21550, 14976, 14976, 6574, 21550, 4463, 16927, 16927, 15706, 4567, 
+21306, 17235, 22158, 19692, 17632, 17597, 4383, 5811, 7704, 5063, 17351, 
+17015, 16801, 4383, 5080, 13185, 12604, 19784, 5310, 15369, 13239, 1638, 
+21323, 10914, 21262, 7297, 17214, 17508, 14199, 14062, 2227, 8434, 4593, 
+14429, 21323, 4782, 10813, 2667, 2853, 5709, 3140, 12237, 7882, 21550, 
+15553, 16466, 16621, 19534, 21842))
+
+transitions <- data.frame(id=c(2,2, 8, 19, 22, 23, 24, 31, 
+                               33, 41, 43, 52, 55, 66, 6, 10, 43),
+                          transition = c(18993, 13668, 15706, 
+                                         11609, 4023, 9316, 16193, 1461, 
+                                         4584, 17824, 11261, 16818, 
+                                         10670, 15479, 15249, 15887,3713))
+
+# Unsorted
+tdata  <- tmerge(ages, ages, id=id, tstop=age)
+newdata<- tmerge(tdata, transitions, id=id, enum=cumtdc(transition))
+
+# sorted
+test1 <- ages[order(ages$id),]
+test2 <- tmerge(test1, test1, id=id, tstop=age)
+tran2 <- transitions[order(transitions$id, transitions$transition),]
+test3 <- tmerge(test2, tran2, id=id, enum=cumtdc(transition))
+all.equal(attr(newdata,'tcount'), attr(test3, 'tcount'))
+
+test4 <- newdata[order(newdata$id, newdata$tstart),]
+all.equal(test3, test4, check.attributes=FALSE) #rownames differ
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/stratatest.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/stratatest.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/stratatest.Rout.save	(revision 2476)
@@ -0,0 +1,68 @@
+
+R version 2.7.1 (2008-06-23)
+Copyright (C) 2008 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Trivial test of stratified residuals
+> #   Make a second strata = replicate of the first, and I should get the
+> #   exact same answers
+> test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0))
+> test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
++                     stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
++                     event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
++                     x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+> 
+> temp <- as.matrix(test1)
+> n    <- nrow(temp)
+> ndead<- sum(test1$status[!is.na(test1$status)])
+> temp <- data.frame(rbind(temp, temp)) #later releases of S have rbind.data.frame
+> tstrat <- rep(1:2, c(n,n))
+> 
+> fit1 <- coxph(Surv(time, status) ~x, test1)
+> fit2 <- coxph(Surv(time, status) ~x + strata(tstrat), temp)
+> 
+> all.equal(resid(fit1) , (resid(fit2))[1:n])
+[1] TRUE
+> all.equal(resid(fit1, type='score') , (resid(fit2, type='score'))[1:n])
+[1] TRUE
+> all.equal(resid(fit1, type='schoe') , (resid(fit2, type='schoe'))[1:ndead])
+[1] TRUE
+> 
+> 
+> #AG model
+> temp <- as.matrix(test2)
+> n    <- nrow(temp)
+> ndead<- sum(test2$event[!is.na(test2$event)])
+> temp <- data.frame(rbind(temp, temp))
+> tstrat <- rep(1:2, c(n,n))
+> 
+> fit1 <- coxph(Surv(start, stop, event) ~x, test2)
+> fit2 <- coxph(Surv(start, stop, event) ~x + strata(tstrat), temp)
+> 
+> all.equal(resid(fit1) , (resid(fit2))[1:n])
+[1] TRUE
+> all.equal(resid(fit1, type='score') , (resid(fit2, type='score'))[1:n])
+[1] TRUE
+> all.equal(resid(fit1, type='schoe') , (resid(fit2, type='schoe'))[1:ndead])
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/factor2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/factor2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/factor2.Rout.save	(revision 2476)
@@ -0,0 +1,52 @@
+
+R version 2.14.0 (2011-10-31)
+Copyright (C) 2011 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+Loading required package: splines
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> options(na.action=na.exclude)
+> #
+> # More tests of factors in prediction, using a new data set
+> #
+> fit <- coxph(Surv(time, status) ~  factor(ph.ecog), lung)
+> 
+> tdata <- data.frame(ph.ecog = factor(0:3))
+> p1 <- predict(fit, newdata=tdata, type='lp')
+> p2 <- predict(fit, type='lp')
+> aeq(p1, p2[match(0:3, lung$ph.ecog)])
+[1] TRUE
+> 
+> fit2 <- coxph(Surv(time, status) ~ factor(ph.ecog) + factor(sex), lung)
+> tdata <- expand.grid(ph.ecog = factor(0:3), sex=factor(1:2))
+> p1 <- predict(fit2, newdata=tdata, type='risk')
+> 
+> xdata <- expand.grid(ph.ecog=factor(1:3), sex=factor(1:2))
+> p2 <- predict(fit2, newdata=xdata, type='risk')
+> all.equal(p2, p1[c(2:4, 6:8)], check.attributes=FALSE)
+[1] TRUE
+> 
+> 
+> fit3 <- survreg(Surv(time, status) ~ factor(ph.ecog) + age, lung)
+> tdata <- data.frame(ph.ecog=factor(0:3), age=50)
+> predict(fit, type='lp', newdata=tdata)
+          1           2           3           4 
+-0.39518177 -0.02634168  0.52120527  1.81279848 
+> predict(fit3, type='lp', newdata=tdata)
+       1        2        3        4 
+6.399571 6.142938 5.770523 4.916993 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/infcox.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/infcox.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/infcox.R	(revision 2476)
@@ -0,0 +1,35 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# A test to exercise the "infinity" check on 2 variables
+#
+test3 <- data.frame(futime=1:12, fustat=c(1,0,1,0,1,0,0,0,0,0,0,0),
+		   x1=rep(0:1,6), x2=c(rep(0,6), rep(1,6)))
+
+# This will produce a warning message, which is the point of the test.
+# The variance is close to singular and gives different answers 
+#  on different machines
+fit3 <- coxph(Surv(futime, fustat) ~ x1 + x2, test3, iter=25)
+
+all(fit3$coef < -22)
+all.equal(round(fit3$log, 4),c(-6.8669, -1.7918))
+
+#
+# Actual solution
+#  time 1, 12 at risk,  3 each of x1/x2 = 00, 01, 10, 11
+#  time 2, 10 at risk,                     2, 3,  2 ,  3
+#  time 5, 8  at risk,                     1, 3,  1,   3
+# Let r1 = exp(beta1), r2= exp(beta2)
+# loglik = -log(3 + 3r1 + 3r2 + 3 r1*r2) - log(2 + 2r1 + 3r2 + 3 r1*r2) -
+#           log(1 + r1  + 3r2 + 3 r1*r2)
+true <- function(beta) {
+    r1 <- exp(beta[1])
+    r2 <- exp(beta[2])
+    loglik <- -log(3*(1+ r1+ r2+ r1*r2)) - log(2+ 2*r1 + 3*r2 + 3*r1*r2) -
+               log(1 + r1 + 3*r2 + 3*r1*r2)
+    loglik
+}
+
+all.equal(fit3$loglik[2], true(fit3$coef), check.attributes=FALSE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/detail.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/detail.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/detail.Rout.save	(revision 2476)
@@ -0,0 +1,89 @@
+
+R version 2.11.0 (2010-04-22)
+Copyright (C) 2010 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> # A short test on coxph.detail, to ensure that the computed hazard is
+> #  equal to the theoretical value
+> library(survival)
+Loading required package: splines
+> aeq <- function(a,b) all.equal(as.vector(a), as.vector(b))
+> 
+> # taken from book4.R
+> test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
++                     stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
++                     event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
++                     x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+> 
+> byhand <- function(beta, newx=0) {
++     r <- exp(beta)
++     loglik <- 4*beta - (log(r+1) + log(r+2) + 2*log(3*r+2) + 2*log(3*r+1) +
++         log(2*r +2))
++     u <- 1/(r+1) +  1/(3*r+1) + 2*(1/(3*r+2) + 1/(2*r+2)) -
++                  ( r/(r+2) +3*r/(3*r+2) + 3*r/(3*r+1))
++     imat <- r*(1/(r+1)^2 + 2/(r+2)^2 + 6/(3*r+2)^2 +
++             6/(3*r+1)^2 + 6/(3*r+2)^2 + 4/(2*r +2)^2)
++ 
++     hazard <-c( 1/(r+1), 1/(r+2), 1/(3*r+2), 1/(3*r+1), 1/(3*r+1),
++                1/(3*r+2), 1/(2*r +2) )
++ 
++ 
++     # The matrix of weights, one row per obs, one col per time
++     #   deaths at 2,3,6,7,8,9
++     wtmat <- matrix(c(1,0,0,0,1, 0, 0,0,0,0,
++                       0,1,0,1,1, 0, 0,0,0,0,
++                       0,0,1,1,1, 0, 1,1,0,0,
++                       0,0,0,1,1, 0, 1,1,0,0,
++                       0,0,0,0,1, 1, 1,1,0,0,
++                       0,0,0,0,0, 1, 1,1,1,1,
++                       0,0,0,0,0,.5,.5,1,1,1), ncol=7)
++     wtmat <- diag(c(r,1,1,r,1,r,r,r,1,1)) %*% wtmat
++ 
++     x      <- c(1,0,0,1,0,1,1,1,0,0)
++     status <- c(1,1,1,1,1,1,1,0,0,0)
++     xbar <- colSums(wtmat*x)/ colSums(wtmat)
++     n <- length(x)
++ 
++    # Table of sums for score and Schoenfeld resids
++     hazmat <- wtmat %*% diag(hazard) #each subject's hazard over time
++     dM <- -hazmat  #Expected part
++     for (i in 1:5) dM[i,i] <- dM[i,i] +1  #observed
++     dM[6:7,6:7] <- dM[6:7,6:7] +.5  # observed
++     mart <- rowSums(dM)
++ 
++     # Table of sums for score and Schoenfeld resids
++     #  Looks like the last table of appendix E.2.1 of the book
++     resid <- dM * outer(x, xbar, '-')
++     score <- rowSums(resid)
++     scho <- colSums(resid)
++ 
++     # We need to add the ties back up (they are symmetric)
++     scho[6:7] <- rep(mean(scho[6:7]), 2)
++ 
++     list(loglik=loglik, u=u, imat=imat, xbar=xbar, haz=hazard* exp(beta*newx),
++ 	     mart=mart,  score=score, rmat=resid,
++ 		scho=scho)
++     } 
+> 
+> # The actual coefficient of the fit is close to zero.  Using a larger
+> #  number pushes the test harder, but it should still work without
+> #  the init and iter arguments, i.e., for any coefficient.
+> fit1 <- coxph(Surv(start, stop, event) ~x, test2,init=-1, iter=0)
+> temp <- coxph.detail(fit1)
+> temp2 <- byhand(fit1$coef, fit1$means)
+> aeq(temp$haz, c(temp2$haz[1:5], sum(temp2$haz[6:7])))
+[1] TRUE
+>                   
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ratetable.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ratetable.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ratetable.Rout.save	(revision 2476)
@@ -0,0 +1,164 @@
+
+R version 2.11.1 (2010-05-31)
+Copyright (C) 2010 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Generate each of the messages from is.ratetable
+> #
+> {if (is.R()) mdy.date <- function(m, d, y) {
++     y <- ifelse(y<100, y+1900, y)
++     as.Date(paste(m,d,y, sep='/'), "%m/%d/%Y")
++     }
++ else mdy.date <- function(m,d,y) {
++     y <- ifelse(y<100, y+1900, y)
++     timeDate(paste(y, m, d, sep='/'), in.format="%Y/%m/%d")
++     }
++  }
+> 
+> temp <- runif(21*2*4)
+> 
+> # Good
+> attributes(temp) <- list(dim=c(21,2,4),
++     dimnames=list(c(as.character(75:95)), c("male","female"),
++                   c(as.character(2000:2003))),
++     dimid=c("age","sex","year"),
++     type=c(2,1,4),
++     cutpoints=list(c(75:95), NULL, mdy.date(1,1,2000) +c(0:3)*366.25),
++     class='ratetable')
+> is.ratetable(temp)
+[1] TRUE
+> 
+> # Factor problem + cutpoints length
+> attributes(temp) <- list(dim=c(21,2,4),
++     dimnames=list(c(as.character(75:95)), c("male","female"),
++                   c(as.character(2000:2003))),
++     dimid=c("age","sex","year"),
++     type=c(1,1,2),
++     cutpoints=list(c(75:95), NULL, mdy.date(1,1,2000) +c(0:4)*366.25),
++     class='ratetable')
+> is.ratetable(temp, verbose=T)
+[1] "type[ 1 ] is 1; cutpoint should be null"
+[2] "wrong length for cutpoints 3"           
+>  
+>                     
+> # missing dimid attribute + unsorted cutpoint
+> attributes(temp) <- list(dim=c(21,2,4),
++     dimnames=list(c(as.character(75:95)), c("male","female"),
++                   c(as.character(2000:2003))),
++     type=c(2,1,3),
++     cutpoints=list(c(75:95), NULL, mdy.date(1,1,2000) +c(4:1)*366.25),
++     class='ratetable')
+> is.ratetable(temp, verbose=T)
+[1] "missing attribute: dimid"           "wrong length for dimid"            
+[3] "unsorted cutpoints for dimension 3"
+> 
+> # wrong length for dimid and type, illegal type
+> attributes(temp) <- list(dim=c(21,2,4),
++     dimnames=list(c(as.character(75:95)), c("male","female"),
++                   c(as.character(2000:2003))),
++     dimid=c("age","sex","year", "zed"),
++     type=c(2,1,3,6),
++     cutpoints=list(c(75:95), NULL, mdy.date(1,1,2000) +c(0:3)*366.25),
++     class='ratetable')
+> is.ratetable(temp, verbose=T)
+[1] "wrong length for dimid"              
+[2] "type attribute must be 1, 2, 3, or 4"
+[3] "wrong length for type attribute"     
+> 
+> 
+> # Print and summary
+> print(survexp.us[1:30,,c('1953', '1985')] )
+Rate table with dimension(s): age sex year 
+, , 1953
+
+                male       female
+0-1d    1.157372e-02 8.844000e-03
+1-7d    1.446302e-03 1.027012e-03
+7-28d   1.379175e-04 1.106070e-04
+28-365d 2.814865e-05 2.346732e-05
+1       6.169963e-06 5.423669e-06
+2       3.860391e-06 3.161334e-06
+3       2.909162e-06 2.424089e-06
+4       2.448747e-06 1.950051e-06
+5       2.210350e-06 1.692520e-06
+6       1.988411e-06 1.481583e-06
+7       1.813065e-06 1.298053e-06
+8       1.684303e-06 1.169315e-06
+9       1.593900e-06 1.087146e-06
+10      1.569249e-06 1.051541e-06
+11      1.626780e-06 1.043325e-06
+12      1.771975e-06 1.089887e-06
+13      2.062389e-06 1.199447e-06
+14      2.462443e-06 1.347361e-06
+15      2.944779e-06 1.550072e-06
+16      3.410754e-06 1.752797e-06
+17      3.819231e-06 1.928140e-06
+18      4.164702e-06 2.056914e-06
+19      4.504735e-06 2.169256e-06
+20      4.822866e-06 2.289823e-06
+21      5.086174e-06 2.410395e-06
+22      5.278187e-06 2.511789e-06
+23      5.335795e-06 2.613186e-06
+24      5.286423e-06 2.714587e-06
+25      5.198648e-06 2.815992e-06
+26      5.130079e-06 2.917400e-06
+
+, , 1985
+
+                male       female
+0-1d    4.429985e-03 3.701977e-03
+1-7d    3.595869e-04 2.735770e-04
+7-28d   6.385309e-05 5.193376e-05
+28-365d 1.277308e-05 9.947467e-06
+1       2.451492e-06 2.108968e-06
+2       1.739100e-06 1.341882e-06
+3       1.369277e-06 1.013196e-06
+4       1.122754e-06 7.940941e-07
+5       9.995021e-07 7.530142e-07
+6       9.173378e-07 6.571643e-07
+7       8.488687e-07 5.887021e-07
+8       7.530153e-07 5.339338e-07
+9       6.297793e-07 4.791661e-07
+10      5.202416e-07 4.517830e-07
+11      5.202416e-07 4.517830e-07
+12      7.530134e-07 5.202412e-07
+13      1.232311e-06 6.571636e-07
+14      1.862374e-06 8.351727e-07
+15      2.533686e-06 1.026887e-06
+16      3.150341e-06 1.204921e-06
+17      3.657474e-06 1.341877e-06
+18      4.041315e-06 1.424054e-06
+19      4.315527e-06 1.465144e-06
+20      4.603481e-06 1.506233e-06
+21      4.864041e-06 1.561021e-06
+22      5.069759e-06 1.615810e-06
+23      5.138331e-06 1.643205e-06
+24      5.152035e-06 1.670600e-06
+25      5.110881e-06 1.697995e-06
+26      5.097158e-06 1.725391e-06
+
+> summary(survexp.usr)
+ Rate table with 4 dimensions:
+	age ranges from 0 to 39812.25; with 113 categories
+	sex has levels of: male female
+	race has levels of: white black
+	year ranges from 1940-01-01 to 2004-01-01; with 65 categories
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/finegray.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/finegray.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/finegray.Rout.save	(revision 2476)
@@ -0,0 +1,197 @@
+
+R Under development (unstable) (2016-04-12 r70470) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+> # Test data set 1 for Fine-Gray regression
+> fdata <- data.frame(time  =c(1,2,3,4,4,4,5,5,6,8,8, 9,10,12),
++                     status=factor(c(1,2,0,1,0,0,2,1,0,0,2, 0,1 ,0), 0:2,
++                              c("cen", "type1", "type2")),      
++                     x     =c(5,4,3,1,2,1,1,2,2,4,6,1,2, 0),
++                     id = 1:14)
+> test1 <- finegray(Surv(time, status) ~., fdata, count="fgcount")
+> test2 <- finegray(Surv(time, status) ~x, fdata, etype="type2")
+> 
+> # When creating the censoring time distribution remember that
+> #  censors happen after deaths, so the distribution does not drop until
+> #  time 3+, 4+, 6+, 8+ and 9+
+> csurv <- list(time=c(0, 3, 4, 6, 8, 9),
++               p = cumprod(c(1, 11/12, 8/10, 5/6, 3/4, 2/3)))
+> #
+> # For estimation of event type 1, the first subject of event type
+> #  2 will have weights of curve$p over (0,3], (3,4], (4,6], (6,8], (8,9] 
+> #  and (9,12].  All that really matters is the weight at times 1, 4, 5,
+> #  and 10, however, which are the points at which events of type 1 happen
+> #  
+> # The next subject of event type 2 occurs at time 5, and will have a
+> #  weight of (9,12] /(4,5] = (5*4*2)/(7*5*3) = 8/21 at time 10.  The last
+> #  censor at time 6 has a weight of 2/3 at time 10.
+> 
+> all.equal(test1$id, c(1, 2,2,2,2, 3:6, 7, 7, 8:11, 11, 12:14))
+[1] TRUE
+> twt <- c(1, csurv$p[c(1,2,3,6)], 1,1,1, 1, 1, 5/12, 1,1,1,  
++                          1, 1/2, 1,1,1)
+> all.equal(test1$fgwt, twt)
+[1] TRUE
+> #extra obs will end at times found in csurv$time, or max(time)=12
+> all.equal(test1$fgstop[test1$fgcount>0], c(4,6,12, 12,12))
+[1] TRUE
+> 
+> #
+> # Verify the data reproduces a multi-state curve
+> #  censoring times may be different in the two setups so only 
+> #  compare at the event times
+> sfit <- survfit(Surv(time, status) ~1, fdata)
+> sfit1<- survfit(Surv(fgstart, fgstop, fgstatus) ~1, test1, weight=fgwt)
+> i1 <- sfit$n.event[,1] > 0
+> i2 <- sfit1$n.event > 0
+> all.equal(sfit$prev[i1, 1], 1- sfit1$surv[i2])
+[1] TRUE
+> 
+> sfit2 <- survfit(Surv(fgstart, fgstop, fgstatus) ~1, test2, weight=fgwt)
+> i1 <- sfit$n.event[,2] > 0
+> i2 <- sfit2$n.event > 0
+> all.equal(sfit$prev[i1, 2], 1- sfit2$surv[i2])
+[1] TRUE
+> 
+> 
+> #
+> # Test data set 2: use the larger MGUS data set
+> #  Time is in months which leads to lots of ties
+> etime <- with(mgus2, ifelse(pstat==0, futime, ptime))
+> event <- with(mgus2, ifelse(pstat==0, 2*death, 1))
+> e2 <- factor(event, 0:2, c('censor', 'pcm', 'death'))
+> edata <- finegray(Surv(etime, e2) ~ sex + id, mgus2, etype="pcm")
+> 
+> # Build G(t) = the KM of the censoring distribution
+> # An event at time x is not "at risk" for censoring at time x (Geskus 2011)
+> tt <- sort(unique(etime))  # all the times
+> ntime <- length(tt)
+> nrisk <- nevent <- double(ntime)
+> for (i in 1:ntime) {
++     nrisk[i] <- sum((etime > tt[i] & event >0) | (etime >= tt[i] & event==0))
++     nevent[i] <- sum(etime == tt[i] & event==0)
++ }
+> G <- cumprod(1- nevent/nrisk)
+> 
+> # The weight is defined as w(t)= G(t-)/G(s-) where s is the event time
+> # for a subject who experiences an endpoint other then the one of interest
+> type2 <- event[edata$id]==2  # the rows to be expanded
+> # These rows are copied over as is: endpoint 1 and censors
+> all(edata$fgstop[!type2] == etime[edata$id[!type2]])
+[1] TRUE
+> all(edata$fgstart[!type2] ==0) 
+[1] TRUE
+> all(edata$fgwt[!type2] ==1)
+[1] TRUE
+> 
+> tdata <- edata[type2,]  #expanded rows
+> first <- match(tdata$id, tdata$id)  #points to the first row for each subject
+> Gwt <- c(1, G)[match(tdata$fgstop, tt)]  # G(t-)
+> all.equal(tdata$fgwt, Gwt/Gwt[first])
+[1] TRUE
+> 
+> # Test data 3, left truncation.
+> # Ties are assumed to be ordered as event, censor, entry
+> # H(t) = truncation distribution, and is calculated on a reverse time scale
+> # Since there is only one row per subject every obs is a "start" event.
+> # Per equation 5 and 6 of Geskus both G and H are right continuous functions
+> #  (the value at t- epsilon is different than the value at t).
+> fdata <- data.frame(time1 = c(0,0,0,3,2,0,0,1,0,7,5, 0, 0, 0),
++                     time2 = c(1,2,3,4,4,4,5,5,6,8,8, 9,10,12),
++                     status= c(1,2,0,1,0,0,2,1,0,0,2, 0, 1 ,0), 
++                     x     = c(5,4,3,1,2,1,1,2,2,4,6, 1, 2, 0),
++                     id = 1:14)
+> tt <- sort(unique(c(fdata$time1, fdata$time2)))
+> ntime <- length(tt)
+> Grisk <- Gevent <- double(ntime)
+> Hrisk <- Hevent <- double(ntime)
+> for (i in 1:ntime) {
++     Grisk[i] <- with(fdata, sum((time2 > tt[i] & status >0 & time1 < tt[i]) | 
++                                 (time2 >= tt[i] & status ==0 & time1 < tt[i])))
++     Gevent[i]<- with(fdata, sum(time2 == tt[i] & status==0))
++     Hrisk[i] <- with(fdata, sum(time2 > tt[i] & time1 <= tt[i]))
++     Hevent[i]<- with(fdata, sum(time1 == tt[i]))
++ }
+> G <- cumprod(1- Gevent/pmax(1,Grisk))
+> G2 <- survfit(Surv(time1, time2 - .1*(status !=0), status==0) ~1, fdata)
+> all.equal(G2$surv[G2$n.event>0], G[Gevent>0])
+[1] TRUE
+> 
+> H <- double(ntime)
+> # The loop below uses the definition of equation 6 in Geskus
+> for (i in 1:ntime) 
++     H[i] <- prod((1- Hevent/pmax(1, Hrisk))[-(i:1)])
+> H2 <- rev(cumprod(rev(1 - Hevent/pmax(1, Hrisk))))  #alternate form
+> H3 <- survfit(Surv(-time2, -time1, rep(1,14)) ~1, fdata) # alternate 3
+> all.equal(tt, -rev(H3$time))
+[1] TRUE
+> # c(0,H) = H(t-), H2 = H(t-) already due to the time reversal
+> all.equal(c(0, H), c(H2, 1))  
+[1] TRUE
+> all.equal(H2, rev(H3$surv))
+[1] TRUE
+> 
+> fg <- finegray(Surv(time1, time2, factor(status, 0:2)) ~ x, id=id, fdata)
+> stat2 <- !is.na(match(fg$id, fdata$id[fdata$status==2]))  #expanded ids
+> all(fg$fgwt[!stat2] ==1)  #ordinary rows are left alone
+[1] TRUE
+> all(fg$fgstart[!stat2] == fdata$time1[fdata$status !=2])
+[1] TRUE
+> all(fg$fgstop[!stat2]  == fdata$time2[fdata$status !=2])
+[1] TRUE
+> 
+> tdata <- fg[stat2,]
+> index <- match(tdata$id, tdata$id)   # points to the first row for each
+> Gwt <- c(1, G)[match(tdata$fgstop, tt)]  # G(t-)
+> Hwt <- c(0, H)[match(tdata$fgstop, tt)]  # H(t-)
+> all.equal(tdata$fgwt,  Gwt*Hwt/(Gwt*Hwt)[index])
+[1] TRUE
+> 
+> #
+> # Test data 4: mgus2 data on age scale
+> #
+> start <- mgus2$age  # age in years
+> end   <- start + etime/12  #etime in months
+> tt <- sort(unique(c(start, end)))  # all the times
+> ntime <- length(tt)
+> Grisk <- Gevent <-  double(ntime)
+> Hrisk <- Hevent <-  double(ntime)
+> for (i in 1:ntime) {
++     Grisk[i] <- sum(((end > tt[i] & event >0) | (end >= tt[i] & event==0)) &
++                       (tt[i] > start))
++     Gevent[i] <- sum(end == tt[i] & event==0)
++     Hrisk[i]  <- sum(start <= tt[i] & end > tt[i])
++     Hevent[i] <- sum(start == tt[i])
++ }
+> G <- cumprod(1 - Gevent/pmax(1, Grisk))         # pmax to avoid 0/0
+> H <- rev(cumprod(rev(1-Hevent/pmax(1,Hrisk))))
+> H <- c(H[-1], 1)  #make it right continuous
+> 
+> wdata <- finegray(Surv(start, end, e2) ~ ., id=id, mgus2)
+> type2 <- event[wdata$id]==2  # the rows to be expanded
+> tdata <- wdata[type2,]
+> first <- match(tdata$id, tdata$id)
+> 
+> Gwt <- c(1, G)[match(tdata$fgstop, tt)]  # G(t-)
+> Hwt <- c(0, H)[match(tdata$fgstop, tt)]  # H(t-)
+> all.equal(tdata$fgwt,  (Gwt/Gwt[first]) * (Hwt / Hwt[first]))
+[1] TRUE
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  1.948   0.044   1.984 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv2.R	(revision 2476)
@@ -0,0 +1,58 @@
+library(survival)
+#
+# Check that the survival curves from a Cox model with beta=0 
+#  match ordinary survival
+#
+#  Aalen
+surv1 <- survfit(Surv(time,status) ~ sex, data=lung, type='fleming',
+                 error='tsiatis')
+fit1 <- coxph(Surv(time, status) ~ age + strata(sex), data=lung, iter=0,
+              method='breslow')
+fit1$var <- 0*fit1$var   #sneaky, causes the extra term in the Cox variance
+                         # calculation to be zero
+surv2 <- survfit(fit1, type='aalen', vartype='tsiatis')
+surv3 <- survfit(fit1)
+
+arglist <- c('n', 'time', 'n.risk','n.event', 'n.censor', 'surv', 'strata',
+             'std.err', 'upper', 'lower')
+all.equal(unclass(surv1)[arglist], unclass(surv2)[arglist])
+all.equal(unclass(surv1)[arglist], unclass(surv3)[arglist])
+
+
+# Efron method
+surv1 <- survfit(Surv(time,status) ~ sex, data=lung, type='fh2',
+                 error='tsiatis')
+surv2 <- survfit(fit1, type='efron', vartype='efron')
+all.equal(unclass(surv1)[arglist], unclass(surv2)[arglist])
+
+# Kaplan-Meier
+surv1 <- survfit(Surv(time,status) ~ sex, data=lung)
+surv2 <- survfit(fit1, type='kalb', vartype='green')
+all.equal(unclass(surv1)[arglist], unclass(surv2)[arglist])
+
+
+# Now add some random weights
+rwt <- runif(nrow(lung), .5, 3)
+surv1 <- survfit(Surv(time,status) ~ sex, data=lung, type='fleming',
+                 error='tsiatis', weight=rwt)
+fit1 <- coxph(Surv(time, status) ~ age + strata(sex), data=lung, iter=0,
+              method='breslow', weight=rwt)
+fit1$var <- 0*fit1$var   #sneaky
+surv2 <- survfit(fit1, type='aalen', vartype='tsiatis')
+surv3 <- survfit(fit1)
+
+all.equal(unclass(surv1)[arglist], unclass(surv2)[arglist])
+all.equal(unclass(surv1)[arglist], unclass(surv3)[arglist])
+
+
+# Efron method
+surv1 <- survfit(Surv(time,status) ~ sex, data=lung, type='fh2',
+                 error='tsiatis', weight=rwt)
+surv2 <- survfit(fit1, type='efron', vartype='efron')
+all.equal(unclass(surv1)[arglist], unclass(surv2)[arglist])
+
+# Kaplan-Meier
+surv1 <- survfit(Surv(time,status) ~ sex, data=lung, weight=rwt)
+surv2 <- survfit(fit1, type='kalb', vartype='green')
+all.equal(unclass(surv1)[arglist], unclass(surv2)[arglist])
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/doaml.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/doaml.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/doaml.R	(revision 2476)
@@ -0,0 +1,64 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+#
+# These results can be found in Miller
+#
+fit <- coxph(Surv(aml$time, aml$status) ~ aml$x, method='breslow')
+fit
+resid(fit, type='mart')
+resid(fit, type='score')
+resid(fit, type='scho')
+
+# Test the drop of an itercept: should have no effect
+fit2 <- coxph(Surv(time, status) ~ x -1, method='breslow',
+                   data=aml)
+aeq(fit$loglik, fit2$loglik)
+aeq(coef(fit), coef(fit2))
+aeq(fit$var, fit2$var)
+
+fit <- survfit(Surv(aml$time, aml$status) ~ aml$x)
+fit
+summary(fit)
+survdiff(Surv(aml$time, aml$status)~ aml$x)
+
+#
+# Test out the weighted K-M
+#
+#  First, equal case weights- shouldn't change the survival, but will
+#    halve the variance
+temp2 <-survfit(Surv(aml$time, aml$status)~1, type='kaplan', weight=rep(2,23))
+temp  <-survfit(Surv(time, status)~1, aml)
+aeq(temp$surv, temp2$surv)
+aeq(temp$std.err^2, 2*temp2$std.err^2)
+
+# Risk weights-- use a null Cox model
+tfit <- coxph(Surv(aml$time, aml$status) ~ offset(log(1:23)))
+sfit <- survfit(tfit, type='aalen', censor=FALSE)
+
+# Now compute it by hand.  The survfit program will produce a curve
+#   corresponding to the mean offset.  This is a change on 7/2010,
+#   which caused S(new) = S(old)^exp(mean(log(1:23))).
+#  Ties are a nuisance
+rscore <- exp(log(1:23) - mean(log(1:23)))[order(aml$time)]
+atime <- sort(aml$time)
+denom <- rev(cumsum(rev(rscore)))
+denom <- denom[match(unique(atime), atime)]
+deaths <- tapply(aml$status, aml$time, sum)
+chaz <- cumsum(deaths/denom)
+all.equal(sfit$surv, as.vector(exp(-chaz[deaths>0])))
+cvar <- cumsum(deaths/denom^2)
+all.equal(sfit$std^2, as.vector(cvar[deaths>0]))
+
+# And the Efron result
+summary(survfit(tfit))
+
+# Lots of ties, so its a good test case
+x1 <- coxph(Surv(time, status)~x, aml, method='efron')
+x1
+x2 <- coxph(Surv(rep(0,23),time, status) ~x, aml, method='efron')
+aeq(x1$coef, x2$coef)
+
+
+rm(x1, x2, atime, denom, deaths, chaz,cvar, tfit, sfit, temp, temp2, fit)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/pspline.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/pspline.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/pspline.Rout.save	(revision 2476)
@@ -0,0 +1,85 @@
+
+R Under development (unstable) (2016-05-06 r70588) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+> #
+> # Tests with the pspline function, to verify the prediction aspects
+> #
+> options(na.action=na.exclude)
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> spfit <- coxph(Surv(time, status) ~ pspline(age) + ph.ecog, lung)
+> 
+> spfit2 <- coxph(Surv(time, status) ~ pspline(age) + ph.ecog, lung, x=TRUE)
+> x2 <- model.matrix(spfit)
+> all.equal(spfit2$x, x2)
+[1] TRUE
+> 
+> keep <- (lung$age < 60)
+> x3 <- model.matrix(spfit, data=lung[keep,])  
+> attr(x3, 'assign') <- NULL #subscripting loses the assign attr below
+> all.equal(napredict(spfit$na.action,x2)[keep,], x3)
+[1] TRUE
+> 
+> p2 <- predict(spfit, newdata=lung[keep,])
+> aeq(p2, predict(spfit)[keep])
+[1] TRUE
+> 
+> 
+> p3 <- survfit(spfit)
+> p4 <- survfit(spfit, newdata=lung[1:2,])
+> temp <- scale(x2[1:2,], center=spfit$means, scale=FALSE)%*% coef(spfit)
+> aeq(p3$time, p4$time)
+[1] TRUE
+> aeq(outer(-log(p3$surv), exp(temp), '*'), -log(p4$surv))
+[1] TRUE
+> 
+> # Check out model.frame
+> spfit3 <- coxph(Surv(time, status) ~ pspline(age) + sex, lung,
++                 model=TRUE)  #avoid the missing value
+> m2 <- model.frame(spfit3, data=lung[keep,])
+> all.equal(m2, spfit3$model[keep,], check.attributes=FALSE)
+[1] TRUE
+> 
+> #
+> # Test of residuals, in response to a reported bug.  The routines for
+> #  m-resids of penalized models were separate from other m-resid calcs;
+> #  refactored to change that.
+> #  These are three progam paths that should all lead to the same C routine
+> fit <- coxph(Surv(tstart, tstop, status) ~ sex + treat + pspline(age), cgd)
+> fit2 <- coxph(Surv(tstart, tstop, status) ~ fit$linear, cgd, iter=0, init=1)
+> fit3 <- coxph(Surv(tstart, tstop, status) ~ offset(fit$linear), cgd)
+> all.equal(fit$resid, fit2$resid)
+[1] TRUE
+> all.equal(fit$resid, fit3$resid)
+[1] TRUE
+> 
+> # 
+> # Check using coxph.detail. The matrix multiply below only is
+> #  valid for the breslow approximation.
+> fit4 <-  coxph(Surv(tstart, tstop, status) ~ sex + treat + pspline(age),
++                cgd, ties='breslow')
+> dt <- coxph.detail(fit4, riskmat=TRUE)
+> rscore <- exp(fit4$linear)
+> exp4 <- (rscore *dt$riskmat) %*% dt$hazard
+> r4 <- cgd$status - exp4
+> aeq(r4, fit4$resid)
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  1.296   0.032   1.323 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book3.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book3.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book3.Rout.save	(revision 2476)
@@ -0,0 +1,302 @@
+
+R Under development (unstable) (2016-03-23 r70368) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> 
+> #
+> # Tests from the appendix of Therneau and Grambsch
+> #  c. Data set 2 and Breslow estimate
+> #
+> test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
++                     stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
++                     event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
++                     x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+> fit0 <-coxph(Surv(start, stop, event) ~x, test2, iter=0, method='breslow')
+> 
+> byhand <- function(beta, newx=0) {
++     r <- exp(beta)
++     loglik <- 4*beta - log(r+1) - log(r+2) - 3*log(3*r+2) - 2*log(3*r+1)
++     u <- 1/(r+1) +  1/(3*r+1) + 4/(3*r+2) -
++                  ( r/(r+2) +3*r/(3*r+2) + 3*r/(3*r+1))
++     imat <- r/(r+1)^2 + 2*r/(r+2)^2 + 6*r/(3*r+2)^2 +
++             3*r/(3*r+1)^2 + 3*r/(3*r+1)^2 + 12*r/(3*r+2)^2
++ 
++     hazard <-c( 1/(r+1), 1/(r+2), 1/(3*r+2), 1/(3*r+1), 1/(3*r+1), 2/(3*r+2) )
++     xbar <- c(r/(r+1), r/(r+2), 3*r/(3*r+2), 3*r/(3*r+1), 3*r/(3*r+1),
++                 3*r/(3*r+2))
++ 
++     # The matrix of weights, one row per obs, one col per time
++     #   deaths at 2,3,6,7,8,9
++     wtmat <- matrix(c(1,0,0,0,1,0,0,0,0,0,
++                       0,1,0,1,1,0,0,0,0,0,
++                       0,0,1,1,1,0,1,1,0,0,
++                       0,0,0,1,1,0,1,1,0,0,
++                       0,0,0,0,1,1,1,1,0,0,
++                       0,0,0,0,0,1,1,1,1,1), ncol=6)
++     wtmat <- diag(c(r,1,1,r,1,r,r,r,1,1)) %*% wtmat
++ 
++     x      <- c(1,0,0,1,0,1,1,1,0,0)
++     status <- c(1,1,1,1,1,1,1,0,0,0)
++     xbar <- colSums(wtmat*x)/ colSums(wtmat)
++     n <- length(x)
++ 
++    # Table of sums for score and Schoenfeld resids
++     hazmat <- wtmat %*% diag(hazard) #each subject's hazard over time
++     dM <- -hazmat  #Expected part
++     for (i in 1:6) dM[i,i] <- dM[i,i] +1  #observed
++     dM[7,6] <- dM[7,6] +1  # observed
++     mart <- rowSums(dM)
++ 
++     # Table of sums for score and Schoenfeld resids
++     #  Looks like the last table of appendix E.2.1 of the book
++     resid <- dM * outer(x, xbar, '-')
++     score <- rowSums(resid)
++     scho <- colSums(resid)
++     # We need to split the two tied times up, to match coxph
++     scho <- c(scho[1:5], scho[6]/2, scho[6]/2)
++     var.g <- cumsum(hazard*hazard /c(1,1,1,1,1,2))
++     var.d <- cumsum( (xbar-newx)*hazard)
++ 
++     surv <- exp(-cumsum(hazard) * exp(beta*newx))
++     varhaz <- (var.g + var.d^2/imat)* exp(2*beta*newx)
++ 
++     list(loglik=loglik, u=u, imat=imat, xbar=xbar, haz=hazard,
++ 	     mart=mart,  score=score, rmat=resid,
++ 		scho=scho, surv=surv, var=varhaz)
++     }
+> 
+> 
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> 
+> fit0 <-coxph(Surv(start, stop, event) ~x, test2, iter=0, method='breslow')
+> truth0 <- byhand(0,0)
+> aeq(truth0$loglik, fit0$loglik[1])
+[1] TRUE
+> aeq(1/truth0$imat, fit0$var)
+[1] TRUE
+> aeq(truth0$mart, fit0$resid)
+[1] TRUE
+> aeq(truth0$scho, resid(fit0, 'schoen'))
+[1] TRUE
+> aeq(truth0$score, resid(fit0, 'score')) 
+[1] TRUE
+> sfit <- survfit(fit0, list(x=0), censor=FALSE)
+> aeq(sfit$std.err^2, truth0$var)
+[1] TRUE
+> aeq(sfit$surv, truth0$surv)
+[1] TRUE
+> 
+> beta1 <- truth0$u/truth0$imat
+> fit1 <- coxph(Surv(start, stop, event) ~x, test2, iter=1, ties="breslow")
+> aeq(beta1, coef(fit1))
+[1] TRUE
+> 
+> truth <- byhand(-0.084526081, 0)
+> fit <- coxph(Surv(start, stop, event) ~x, test2, eps=1e-8, method='breslow')
+> aeq(truth$loglik, fit$loglik[2])
+[1] TRUE
+> aeq(1/truth$imat, fit$var)
+[1] TRUE
+> aeq(truth$mart, fit$resid)
+[1] TRUE
+> aeq(truth$scho, resid(fit, 'schoen'))
+[1] TRUE
+> aeq(truth$score, resid(fit, 'score'))
+[1] TRUE
+> expect <- predict(fit, type='expected', newdata=test2) #force recalc
+> aeq(test2$event -fit$resid, expect) #tests the predict function
+[1] TRUE
+> 
+> sfit <- survfit(fit, list(x=0), censor=FALSE)
+> aeq(sfit$std.err^2, truth$var) 
+[1] TRUE
+> aeq(-log(sfit$surv), (cumsum(truth$haz)))
+[1] TRUE
+> 
+> # Reprise the test, with strata
+> #  offseting the times ensures that we will get the wrong risk sets
+> #  if strata were not kept separate
+> test2b <- rbind(test2, test2, test2)
+> test2b$group <- rep(1:3, each= nrow(test2))
+> test2b$start <- test2b$start + test2b$group
+> test2b$stop  <- test2b$stop  + test2b$group
+> fit0 <- coxph(Surv(start, stop, event) ~ x + strata(group), test2b, 
++               iter=0, method="breslow")
+> aeq(3*truth0$loglik, fit0$loglik[1])
+[1] TRUE
+> aeq(3*truth0$imat, 1/fit0$var)
+[1] TRUE
+> aeq(rep(truth0$mart,3), fit0$resid)
+[1] TRUE
+> aeq(rep(truth0$scho,3),  resid(fit0, 'schoen'))
+[1] TRUE
+> aeq(rep(truth0$score,3), resid(fit0, 'score')) 
+[1] TRUE
+> 
+> fit1 <- coxph(Surv(start, stop, event) ~ x + strata(group), test2b, 
++               iter=1, method="breslow")
+> aeq(fit1$coef, beta1)
+[1] TRUE
+> 
+> fit3 <- coxph(Surv(start, stop, event) ~x + strata(group),
++              test2b, eps=1e-8, method='breslow')
+> aeq(3*truth$loglik, fit3$loglik[2])
+[1] TRUE
+> aeq(3*truth$imat, 1/fit3$var)
+[1] TRUE
+> aeq(rep(truth$mart,3), fit3$resid)
+[1] TRUE
+> aeq(rep(truth$scho,3), resid(fit3, 'schoen'))
+[1] TRUE
+> aeq(rep(truth$score,3), resid(fit3, 'score'))
+[1] TRUE
+> 
+> # 
+> # Done with the formal test, now print out lots of bits
+> #
+> resid(fit)
+          1           2           3           4           5           6 
+ 0.52111895  0.65741078  0.78977654  0.24738772 -0.60629349  0.36902492 
+          7           8           9          10 
+-0.06876579 -1.06876579 -0.42044692 -0.42044692 
+> resid(fit, 'scor')
+          1           2           3           4           5           6 
+ 0.27156496 -0.20696709 -0.45771743 -0.09586133  0.13608234  0.19288983 
+          7           8           9          10 
+ 0.04655651 -0.37389040  0.24367131  0.24367131 
+> resid(fit, 'scho')
+         2          3          6          7          8          9          9 
+ 0.5211189 -0.3148216 -0.5795531  0.2661809 -0.7338191  0.4204469  0.4204469 
+> 
+> predict(fit, type='lp')
+ [1] -0.04226304  0.04226304  0.04226304 -0.04226304  0.04226304 -0.04226304
+ [7] -0.04226304 -0.04226304  0.04226304  0.04226304
+> predict(fit, type='risk')
+ [1] 0.9586176 1.0431688 1.0431688 0.9586176 1.0431688 0.9586176 0.9586176
+ [8] 0.9586176 1.0431688 1.0431688
+> predict(fit, type='expected')
+        1         2         3         4         5         6         7         8 
+0.4788811 0.3425892 0.2102235 0.7526123 1.6062935 0.6309751 1.0687658 1.0687658 
+        9        10 
+0.4204469 0.4204469 
+> predict(fit, type='terms')
+             x
+1  -0.04226304
+2   0.04226304
+3   0.04226304
+4  -0.04226304
+5   0.04226304
+6  -0.04226304
+7  -0.04226304
+8  -0.04226304
+9   0.04226304
+10  0.04226304
+attr(,"constant")
+[1] -0.04226304
+> predict(fit, type='lp', se.fit=T)
+$fit
+          1           2           3           4           5           6 
+-0.04226304  0.04226304  0.04226304 -0.04226304  0.04226304 -0.04226304 
+          7           8           9          10 
+-0.04226304 -0.04226304  0.04226304  0.04226304 
+
+$se.fit
+        1         2         3         4         5         6         7         8 
+0.3969086 0.3969086 0.3969086 0.3969086 0.3969086 0.3969086 0.3969086 0.3969086 
+        9        10 
+0.3969086 0.3969086 
+
+> predict(fit, type='risk', se.fit=T)
+$fit
+        1         2         3         4         5         6         7         8 
+0.9586176 1.0431688 1.0431688 0.9586176 1.0431688 0.9586176 0.9586176 0.9586176 
+        9        10 
+1.0431688 1.0431688 
+
+$se.fit
+        1         2         3         4         5         6         7         8 
+0.3886094 0.4053852 0.4053852 0.3886094 0.4053852 0.3886094 0.3886094 0.3886094 
+        9        10 
+0.4053852 0.4053852 
+
+> predict(fit, type='expected', se.fit=T)
+$fit
+        1         2         3         4         5         6         7         8 
+0.4788811 0.3425892 0.2102235 0.7526123 1.6062935 0.6309751 1.0687658 1.0687658 
+        9        10 
+0.4204469 0.4204469 
+
+$se.fit
+ [1] 0.5182381 0.3982700 0.3292830 0.6266797 1.0255146 0.5852364 0.7341340
+ [8] 0.7341340 0.6268550 0.6268550
+
+> predict(fit, type='terms', se.fit=T)
+$fit
+             x
+1  -0.04226304
+2   0.04226304
+3   0.04226304
+4  -0.04226304
+5   0.04226304
+6  -0.04226304
+7  -0.04226304
+8  -0.04226304
+9   0.04226304
+10  0.04226304
+attr(,"constant")
+[1] -0.04226304
+
+$se.fit
+           x
+1  0.3969086
+2  0.3969086
+3  0.3969086
+4  0.3969086
+5  0.3969086
+6  0.3969086
+7  0.3969086
+8  0.3969086
+9  0.3969086
+10 0.3969086
+
+> 
+> summary(survfit(fit))
+Call: survfit(formula = fit)
+
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+    2      2       1    0.607   0.303       0.2279        1.000
+    3      3       1    0.437   0.262       0.1347        1.000
+    6      5       1    0.357   0.226       0.1034        1.000
+    7      4       1    0.277   0.188       0.0729        1.000
+    8      4       1    0.214   0.156       0.0514        0.894
+    9      5       2    0.143   0.112       0.0308        0.667
+> summary(survfit(fit, list(x=2)))
+Call: survfit(formula = fit, newdata = list(x = 2))
+
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+    2      2       1    0.644   0.444      0.16657            1
+    3      3       1    0.482   0.511      0.06055            1
+    6      5       1    0.404   0.504      0.03491            1
+    7      4       1    0.322   0.475      0.01801            1
+    8      4       1    0.258   0.437      0.00928            1
+    9      5       2    0.181   0.377      0.00302            1
+> 
+> proc.time()
+   user  system elapsed 
+  0.364   0.028   0.392 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/summary_survfit.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/summary_survfit.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/summary_survfit.Rout.save	(revision 2476)
@@ -0,0 +1,175 @@
+
+R Under development (unstable) (2016-03-23 r70368) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> ## check that the scale option to summary.survfit works
+> ##  Marc Schwartz reported this as a bug in 2.35-3.
+> library(survival)
+> fit <- survfit(Surv(futime, fustat) ~rx, data=ovarian)
+> temp1 <- summary(fit)
+> temp2 <- summary(fit, scale=365.25)
+> 
+> all.equal(temp1$time/365.25, temp2$time)
+[1] TRUE
+> all.equal(temp1$rmean.endtime/365.25, temp2$rmean.endtime)
+[1] TRUE
+> all.equal(temp1$table[,5:6]/365.25,    temp2$table[,5:6])
+[1] TRUE
+> temp <- names(fit)
+> temp <- temp[!temp  %in% c("time", "table", "rmean.endtime")]
+> all.equal(temp1[temp], temp2[temp])
+[1] TRUE
+> 
+> # Reprise, using the rmean option
+> temp1 <- summary(fit, rmean=300)
+> temp2 <- summary(fit, rmean=300, scale=365.25)
+> all.equal(temp1$time/365.25, temp2$time)
+[1] TRUE
+> all.equal(temp1$rmean.endtime/365.25, temp2$rmean.endtime)
+[1] TRUE
+> all.equal(temp1$table[,5:6]/365.25,    temp2$table[,5:6])
+[1] TRUE
+> all.equal(temp1[temp], temp2[temp])
+[1] TRUE
+> 
+> # Repeat using multi-state data.  Time is in months for mgus2
+> etime <- with(mgus2, ifelse(pstat==0, futime, ptime))
+> event <- with(mgus2, ifelse(pstat==0, 2*death, 1))
+> event <- factor(event, 0:2, labels=c("censor", "pcm", "death"))
+> mfit <- survfit(Surv(etime, event) ~ sex, mgus2)
+> temp1 <- summary(mfit)
+> temp2 <- summary(mfit, scale=12)
+> 
+> all.equal(temp1$time/12, temp2$time)
+[1] TRUE
+> all.equal(temp1$rmean.endtime/12, temp2$rmean.endtime)
+[1] TRUE
+> all.equal(temp1$table[,3]/12,    temp2$table[,3])
+[1] TRUE
+> temp <- names(temp1)
+> temp <- temp[!temp  %in% c("time", "table", "rmean.endtime")]
+> all.equal(temp1[temp], temp2[temp])
+[1] TRUE
+> 
+> # Reprise, using the rmean option
+> temp1 <- summary(mfit, rmean=240)
+> temp2 <- summary(mfit, rmean=240, scale=12)
+> all.equal(temp1$time/12, temp2$time)
+[1] TRUE
+> all.equal(temp1$rmean.endtime/12, temp2$rmean.endtime)
+[1] TRUE
+> all.equal(temp1$table[,3]/12,    temp2$table[,3])
+[1] TRUE
+> all.equal(temp1[temp], temp2[temp])
+[1] TRUE
+> 
+> 
+> # The n.risk values from summary.survfit were off when there are multiple
+> #  curves (version 2.39-2)
+> # Verify all components by subscripting
+> m1 <- mfit[1,]
+> m2 <- mfit[2,]
+> s1 <- summary(m1, times=c(0,100, 200, 300))
+> s2 <- summary(m2, times=c(0,100, 200, 300))
+> s3 <- summary(mfit, times=c(0,100, 200, 300))
+> 
+> tfun <- function(what) {
++     if (is.matrix(s3[[what]]))
++         all.equal(rbind(s1[[what]], s2[[what]]), s3[[what]])
++     else all.equal(c(s1[[what]], s2[[what]]), s3[[what]])
++ }
+> tfun('n')
+[1] TRUE
+> tfun("time")
+[1] TRUE
+> tfun("n.risk")
+[1] TRUE
+> tfun("n.event")
+[1] TRUE
+> tfun("n.censor")
+[1] TRUE
+> tfun("prev")
+[1] TRUE
+> tfun("p0")
+[1] TRUE
+> tfun("std.err")
+[1] TRUE
+> tfun("lower")
+[1] TRUE
+> tfun("upper")
+[1] TRUE
+> 
+> # Check the cumulative sums
+> temp <- rbind(0, 0,
++               colSums(m1$n.event[m1$time <= 100,]),
++               colSums(m1$n.event[m1$time <= 200, ]),
++               colSums(m1$n.event[m1$time <= 300, ]))
+> all.equal(s1$n.event, apply(temp,2, diff))
+[1] TRUE
+> 
+> temp <- rbind(0, 0,
++               colSums(m2$n.event[m2$time <= 100,]),
++               colSums(m2$n.event[m2$time <= 200, ]),
++               colSums(m2$n.event[m2$time <= 300, ]))
+> all.equal(s2$n.event, apply(temp,2, diff))
+[1] TRUE
+> 
+> temp <- c(0, 0,sum(m1$n.censor[m1$time <= 100]),
++                sum(m1$n.censor[m1$time <= 200]),
++                sum(m1$n.censor[m1$time <= 300]))
+> all.equal(s1$n.censor, diff(temp))
+[1] TRUE
+>               
+> # check the same with survfit objects
+> s1 <- summary(fit[1], times=c(0, 200, 400, 600))
+> s2 <- summary(fit[2], times=c(0, 200, 400, 600))
+> s3 <- summary(fit, times=c(0, 200, 400, 600))
+> tfun('n')
+[1] TRUE
+> tfun("time")
+[1] TRUE
+> tfun("n.risk")
+[1] TRUE
+> tfun("n.event")
+[1] TRUE
+> tfun("n.censor")
+[1] TRUE
+> tfun("surv")
+[1] TRUE
+> tfun("std.err")
+[1] TRUE
+> tfun("lower")
+[1] TRUE
+> tfun("upper")
+[1] TRUE
+> 
+> f2 <- fit[2]
+> temp <- c(0, 0, sum(f2$n.event[f2$time <= 200]),
++                 sum(f2$n.event[f2$time <= 400]),
++                 sum(f2$n.event[f2$time <= 600]))
+> all.equal(s2$n.event, diff(temp))
+[1] TRUE
+> 
+> f1 <- fit[1]
+> temp <- c(0, 0,sum(f1$n.censor[f1$time <= 200]),
++                sum(f1$n.censor[f1$time <= 400]),
++                sum(f1$n.censor[f1$time <= 600]))
+> all.equal(s1$n.censor, diff(temp))
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  1.388   0.052   1.435 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/pyear.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/pyear.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/pyear.Rout.save	(revision 2476)
@@ -0,0 +1,672 @@
+
+R Under development (unstable) (2016-03-23 r70368) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> {if (is.R()) mdy.date <- function(m, d, y) {
++     y <- ifelse(y<100, y+1900, y)
++     as.Date(paste(m,d,y, sep='/'), "%m/%d/%Y")
++     }
++ else mdy.date <- function(m,d,y) {
++     y <- ifelse(y<100, y+1900, y)
++     timeDate(paste(y, m, d, sep='/'), in.format="%Y/%m/%d")
++     }
++  }
+> 
+> # 
+> # Simple case: a single male subject, born 6/6/36 and entered on study 6/6/55.
+> #
+> 
+> temp1 <- mdy.date(6,6,36)
+> temp2 <- mdy.date(6,6,55)# Now compare the results from person-years
+> #
+> temp.age <- tcut(temp2-temp1, floor(c(-1, (18:31 * 365.24))),
++ 	labels=c('0-18', paste(18:30, 19:31, sep='-')))
+> temp.yr  <- tcut(temp2, mdy.date(1,1,1954:1965), labels=1954:1964)
+> temp.time <- 3700   #total days of fu
+> py1 <- pyears(temp.time ~ temp.age + temp.yr, scale=1) #output in days
+> 
+> # The subject should appear in 20 cells
+> #    6/6/55 - 12/31/55, 209 days, age 19-20, 1955
+> #    1/1/56 -  6/ 4/56, 156 days, age 19-20, 1956
+> #    6/5/56 - 12/31/56, 210 days, age 20-21, 1956   (a leap year, and his
+> #			birthday computes one day earlier)
+> #    1/1/57 -  6/ 5/57, 156 days, age 20-21, 1957
+> #    6/6/57 - 12/31/57, 209 days, age 21-22, 1957
+> # and etc
+> #   with 203 days "off table", ie, beyond the last cell of the table
+> #
+> # It is a nuisance, but tcut follows 'cut' in that we give the ENDS of
+> #  the intervals, whereas the survival tables use the starts of intervals.
+> #  Thus this breakdown does not match that in doexpect.s
+> #
+> xx <- matrix(0, nrow=14, ncol=11)
+> xx[cbind(3:11, 3:11)] <- 156
+> xx[cbind(3:12, 2:11)] <- c(209, 210, rep(c(209, 209, 209, 210),2))
+> dimnames(xx) <- list(temp.age= c('0-18', paste(18:30, 19:31, sep='-')), 
++                      temp.yr = 1954:1964)
+> all.equal(xx, py1$pyears)
+[1] TRUE
+> all.equal(203, py1$offtable)
+[1] TRUE
+> all.equal(1*(xx>0), py1$n)
+[1] TRUE
+> 
+> #
+> # Now with expecteds
+> #
+> py2 <- pyears(temp.time ~ temp.age + temp.yr
++ 		+ ratetable(age=temp2-temp1, year=temp2, sex=1),
++ 	     scale=1, ratetable=survexp.us ) #output in days
+> all.equal(xx, py2$pyears)
+[1] TRUE
+> all.equal(203, py2$offtable)
+[1] TRUE
+> all.equal(1*(xx>0), py2$n)
+[1] TRUE
+> 
+> py2b <- pyears(temp.time ~ temp.age + temp.yr,
++ 	      rmap = list(age=temp2-temp1, year=temp2, sex=1),
++ 	     scale=1, ratetable=survexp.us ) #output in days
+> all.equal(xx, py2b$pyears)
+[1] TRUE
+> all.equal(203, py2b$offtable)
+[1] TRUE
+> all.equal(1*(xx>0), py2b$n)
+[1] TRUE
+> all.equal(py2$expected, py2b$expected)
+[1] TRUE
+> 
+> 
+> 
+> py3 <-  pyears(temp.time ~ temp.age + temp.yr,
++ 		rmap=list(age=temp2-temp1, year=temp2, sex=1),
++ 	     scale=1, ratetable=survexp.us , expect='pyears')
+> all.equal(py2$n, py3$n)
+[1] TRUE
+> all.equal(py2$pyear, py3$pyear)
+[1] TRUE
+> all.equal(py3$n, 1*(py3$expect>0))
+[1] TRUE
+> 
+> # Now, compute the py3 result "by hand".  Since there is only one person
+> #   it can be derived from py2.
+> #
+> xx1 <- py2$expect[py2$n>0]   		# the hazard over each interval
+> cumhaz <- cumsum(c(0, xx1[-length(xx1)]))     # the cumulative hazard	
+> xx2 <- py3$expect[py3$n>0]   		# the expected number of person days
+> xx3 <- py3$pyears[py3$n>0]   		# the potential number of person days
+> 
+> # This is the integral of the curve "exp(-haz *t)" over the interval
+> integral <- xx3 * exp(-cumhaz)* (1- exp(-xx1))/ xx1
+> # They might not be exactly equal, since the C code tracks changes in the
+> #   rate tables that occur -within- an interval.  So try for 6 digits
+> all.equal(round(integral,3), round(xx2,3))
+[1] TRUE
+> 
+> # Cut off the bottom of the table, instead of the side
+> temp.age <- tcut(temp2-temp1, floor(c(-1, (18:27 * 365.24))),
++ 	labels=c('0-18', paste(18:26, 19:27, sep='-')))
+> 
+> py4 <- eval(py3$call)
+> all.equal(py4$pyear, py3$pyear[1:10,])
+[1] TRUE
+> all.equal(py4$expect, py3$expect[1:10,])
+[1] TRUE
+> 
+> 
+> rm(temp.age, integral, xx1, xx2, xx3, cumhaz, py1, py2, py3, py4)
+> rm(temp1, temp2, temp.yr, temp.time, xx)
+> 
+> 
+> 
+> 
+> # 
+> # Simple case: a single male subject, born 6/6/36 and entered on study 6/6/55.
+> #
+> 
+> temp1 <- mdy.date(6,6,36)
+> temp2 <- mdy.date(6,6,55)# Now compare the results from person-years
+> #
+> temp.age <- tcut(temp2-temp1, floor(c(-1, (18:31 * 365.24))),
++ 	labels=c('0-18', paste(18:30, 19:31, sep='-')))
+> temp.yr  <- tcut(temp2, mdy.date(1,1,1954:1965), labels=1954:1964)
+> temp.time <- 3700   #total days of fu
+> py1 <- pyears(temp.time ~ temp.age + temp.yr, scale=1) #output in days
+> 
+> # The subject should appear in 20 cells
+> #    6/6/55 - 12/31/55, 209 days, age 19-20, 1955
+> #    1/1/56 -  6/ 4/56, 156 days, age 19-20, 1956
+> #    6/5/56 - 12/31/56, 210 days, age 20-21, 1956   (a leap year, and his
+> #			birthday computes one day earlier)
+> #    1/1/57 -  6/ 5/57, 156 days, age 20-21, 1957
+> #    6/6/57 - 12/31/57, 209 days, age 21-22, 1957
+> # and etc
+> #   with 203 days "off table", ie, beyond the last cell of the table
+> #
+> # It is a nuisance, but tcut follows 'cut' in that we give the ENDS of
+> #  the intervals, whereas the survival tables use the starts of intervals.
+> #
+> xx <- matrix(0, nrow=14, ncol=11)
+> xx[cbind(3:11, 3:11)] <- 156
+> xx[cbind(3:12, 2:11)] <- c(209, 210, rep(c(209, 209, 209, 210),2))
+> dimnames(xx) <- list(temp.age= c('0-18', paste(18:30, 19:31, sep='-')), 
++                      temp.yr = 1954:1964)
+> all.equal(xx, py1$pyears)
+[1] TRUE
+> all.equal(203, py1$offtable)
+[1] TRUE
+> all.equal(1*(xx>0), py1$n)
+[1] TRUE
+> 
+> #
+> # Now with expecteds
+> #
+> py2 <- pyears(temp.time ~ temp.age + temp.yr
++ 		+ ratetable(age=temp2-temp1, year=temp2, sex=1),
++ 	     scale=1, ratetable=survexp.us ) #output in days
+> all.equal(xx, py2$pyears)
+[1] TRUE
+> all.equal(203, py2$offtable)
+[1] TRUE
+> all.equal(1*(xx>0), py2$n)
+[1] TRUE
+> 
+> 
+> py3 <-  pyears(temp.time ~ temp.age + temp.yr
++ 		+ ratetable(age=temp2-temp1, year=temp2, sex=1),
++ 	     scale=1, ratetable=survexp.us , expect='pyears')
+> all.equal(py2$n, py3$n)
+[1] TRUE
+> all.equal(py2$pyear, py3$pyear)
+[1] TRUE
+> all.equal(py3$n, 1*(py3$expect>0))
+[1] TRUE
+> 
+> # Now, compute the py3 result "by hand".  Since there is only one person
+> #   it can be derived from py2.
+> #
+> xx1 <- py2$expect[py2$n>0]   		# the hazard over each interval
+> cumhaz <- cumsum(c(0, xx1[-length(xx1)]))     # the cumulative hazard	
+> xx2 <- py3$expect[py3$n>0]   		# the expected number of person days
+> xx3 <- py3$pyears[py3$n>0]   		# the potential number of person days
+> 
+> # This is the integral of the curve "exp(-haz *t)" over the interval
+> integral <- xx3 * exp(-cumhaz)* (1- exp(-xx1))/ xx1
+> # They might not be exactly equal, since the C code tracks changes in the
+> #   rate tables that occur -within- an interval.  So try for 6 digits
+> all.equal(round(integral,3), round(xx2,3))
+[1] TRUE
+> 
+> # Cut off the bottom of the table, instead of the side
+> temp.age <- tcut(temp2-temp1, floor(c(-1, (18:27 * 365.24))),
++ 	labels=c('0-18', paste(18:26, 19:27, sep='-')))
+> 
+> py4 <- eval(py3$call)
+> all.equal(py4$pyear, py3$pyear[1:10,])
+[1] TRUE
+> all.equal(py4$expect, py3$expect[1:10,])
+[1] TRUE
+> 
+> 
+> rm(temp.age, integral, xx1, xx2, xx3, cumhaz, py1, py2, py3, py4)
+> rm(temp1, temp2, temp.yr, temp.time, xx)
+> 
+> 
+> 
+> 
+> #
+> # Create a "user defined" rate table, using the smoking data
+> #
+> temp <- scan("data.smoke")/100000
+Read 224 items
+> temp <-  matrix(temp, ncol=8, byrow=T)
+> smoke.rate <- c(rep(temp[,1],6), rep(temp[,2],6), temp[,3:8])
+> attributes(smoke.rate) <- list(
++ 	dim=c(7,2,2,6,3),
++ 	dimnames=list(c("45-49","50-54","55-59","60-64","65-69","70-74","75-79"),
++ 		      c("1-20", "21+"),
++ 		      c("Male","Female"),
++ 		      c("<1", "1-2", "3-5", "6-10", "11-15", ">=16"),
++ 		      c("Never", "Current", "Former")),
++ 	dimid=c("age", "amount", "sex", "duration", "status"),
++ 	factor=c(0,1,1,0,1),
++ 	cutpoints=list(c(45,50,55,60,65,70,75),NULL, NULL,
++ 				     c(0,1,3,6,11,16),NULL),
++ 	class='ratetable'
++ 	)
+> rm(temp)
+> 
+> is.ratetable(smoke.rate)
+[1] TRUE
+> summary(smoke.rate)
+ Rate table with 5 dimensions:
+	age ranges from 45 to 75; with 7 categories
+	amount has levels of: 1-20 21+
+	sex has levels of: Male Female
+	duration ranges from 0 to 16; with 6 categories
+	status has levels of: Never Current Former
+> print(smoke.rate)
+Rate table with dimension(s): age amount sex duration status 
+, , Male, <1, Never
+
+          1-20      21+
+45-49 0.001860 0.001860
+50-54 0.002556 0.002556
+55-59 0.004489 0.004489
+60-64 0.007337 0.007337
+65-69 0.011194 0.011194
+70-74 0.020705 0.020705
+75-79 0.036753 0.036753
+
+, , Female, <1, Never
+
+          1-20      21+
+45-49 0.001257 0.001257
+50-54 0.001773 0.001773
+55-59 0.002448 0.002448
+60-64 0.003977 0.003977
+65-69 0.006921 0.006921
+70-74 0.011600 0.011600
+75-79 0.020708 0.020708
+
+, , Male, 1-2, Never
+
+          1-20      21+
+45-49 0.001860 0.001860
+50-54 0.002556 0.002556
+55-59 0.004489 0.004489
+60-64 0.007337 0.007337
+65-69 0.011194 0.011194
+70-74 0.020705 0.020705
+75-79 0.036753 0.036753
+
+, , Female, 1-2, Never
+
+          1-20      21+
+45-49 0.001257 0.001257
+50-54 0.001773 0.001773
+55-59 0.002448 0.002448
+60-64 0.003977 0.003977
+65-69 0.006921 0.006921
+70-74 0.011600 0.011600
+75-79 0.020708 0.020708
+
+, , Male, 3-5, Never
+
+          1-20      21+
+45-49 0.001860 0.001860
+50-54 0.002556 0.002556
+55-59 0.004489 0.004489
+60-64 0.007337 0.007337
+65-69 0.011194 0.011194
+70-74 0.020705 0.020705
+75-79 0.036753 0.036753
+
+, , Female, 3-5, Never
+
+          1-20      21+
+45-49 0.001257 0.001257
+50-54 0.001773 0.001773
+55-59 0.002448 0.002448
+60-64 0.003977 0.003977
+65-69 0.006921 0.006921
+70-74 0.011600 0.011600
+75-79 0.020708 0.020708
+
+, , Male, 6-10, Never
+
+          1-20      21+
+45-49 0.001860 0.001860
+50-54 0.002556 0.002556
+55-59 0.004489 0.004489
+60-64 0.007337 0.007337
+65-69 0.011194 0.011194
+70-74 0.020705 0.020705
+75-79 0.036753 0.036753
+
+, , Female, 6-10, Never
+
+          1-20      21+
+45-49 0.001257 0.001257
+50-54 0.001773 0.001773
+55-59 0.002448 0.002448
+60-64 0.003977 0.003977
+65-69 0.006921 0.006921
+70-74 0.011600 0.011600
+75-79 0.020708 0.020708
+
+, , Male, 11-15, Never
+
+          1-20      21+
+45-49 0.001860 0.001860
+50-54 0.002556 0.002556
+55-59 0.004489 0.004489
+60-64 0.007337 0.007337
+65-69 0.011194 0.011194
+70-74 0.020705 0.020705
+75-79 0.036753 0.036753
+
+, , Female, 11-15, Never
+
+          1-20      21+
+45-49 0.001257 0.001257
+50-54 0.001773 0.001773
+55-59 0.002448 0.002448
+60-64 0.003977 0.003977
+65-69 0.006921 0.006921
+70-74 0.011600 0.011600
+75-79 0.020708 0.020708
+
+, , Male, >=16, Never
+
+          1-20      21+
+45-49 0.001860 0.001860
+50-54 0.002556 0.002556
+55-59 0.004489 0.004489
+60-64 0.007337 0.007337
+65-69 0.011194 0.011194
+70-74 0.020705 0.020705
+75-79 0.036753 0.036753
+
+, , Female, >=16, Never
+
+          1-20      21+
+45-49 0.001257 0.001257
+50-54 0.001773 0.001773
+55-59 0.002448 0.002448
+60-64 0.003977 0.003977
+65-69 0.006921 0.006921
+70-74 0.011600 0.011600
+75-79 0.020708 0.020708
+
+, , Male, <1, Current
+
+          1-20      21+
+45-49 0.004392 0.006100
+50-54 0.007027 0.009156
+55-59 0.011324 0.013910
+60-64 0.019811 0.023934
+65-69 0.030030 0.034979
+70-74 0.046975 0.058613
+75-79 0.073406 0.062500
+
+, , Female, <1, Current
+
+          1-20      21+
+45-49 0.002256 0.002779
+50-54 0.003538 0.005179
+55-59 0.005428 0.008235
+60-64 0.008580 0.013029
+65-69 0.014962 0.019349
+70-74 0.020848 0.028270
+75-79 0.033195 0.042731
+
+, , Male, 1-2, Current
+
+          1-20      21+
+45-49 0.004392 0.006100
+50-54 0.007027 0.009156
+55-59 0.011324 0.013910
+60-64 0.019811 0.023934
+65-69 0.030030 0.034979
+70-74 0.046975 0.058613
+75-79 0.073406 0.062500
+
+, , Female, 1-2, Current
+
+          1-20      21+
+45-49 0.002256 0.002779
+50-54 0.003538 0.005179
+55-59 0.005428 0.008235
+60-64 0.008580 0.013029
+65-69 0.014962 0.019349
+70-74 0.020848 0.028270
+75-79 0.033195 0.042731
+
+, , Male, 3-5, Current
+
+          1-20      21+
+45-49 0.004392 0.006100
+50-54 0.007027 0.009156
+55-59 0.011324 0.013910
+60-64 0.019811 0.023934
+65-69 0.030030 0.034979
+70-74 0.046975 0.058613
+75-79 0.073406 0.062500
+
+, , Female, 3-5, Current
+
+          1-20      21+
+45-49 0.002256 0.002779
+50-54 0.003538 0.005179
+55-59 0.005428 0.008235
+60-64 0.008580 0.013029
+65-69 0.014962 0.019349
+70-74 0.020848 0.028270
+75-79 0.033195 0.042731
+
+, , Male, 6-10, Current
+
+          1-20      21+
+45-49 0.004392 0.006100
+50-54 0.007027 0.009156
+55-59 0.011324 0.013910
+60-64 0.019811 0.023934
+65-69 0.030030 0.034979
+70-74 0.046975 0.058613
+75-79 0.073406 0.062500
+
+, , Female, 6-10, Current
+
+          1-20      21+
+45-49 0.002256 0.002779
+50-54 0.003538 0.005179
+55-59 0.005428 0.008235
+60-64 0.008580 0.013029
+65-69 0.014962 0.019349
+70-74 0.020848 0.028270
+75-79 0.033195 0.042731
+
+, , Male, 11-15, Current
+
+          1-20      21+
+45-49 0.004392 0.006100
+50-54 0.007027 0.009156
+55-59 0.011324 0.013910
+60-64 0.019811 0.023934
+65-69 0.030030 0.034979
+70-74 0.046975 0.058613
+75-79 0.073406 0.062500
+
+, , Female, 11-15, Current
+
+          1-20      21+
+45-49 0.002256 0.002779
+50-54 0.003538 0.005179
+55-59 0.005428 0.008235
+60-64 0.008580 0.013029
+65-69 0.014962 0.019349
+70-74 0.020848 0.028270
+75-79 0.033195 0.042731
+
+, , Male, >=16, Current
+
+          1-20      21+
+45-49 0.004392 0.006100
+50-54 0.007027 0.009156
+55-59 0.011324 0.013910
+60-64 0.019811 0.023934
+65-69 0.030030 0.034979
+70-74 0.046975 0.058613
+75-79 0.073406 0.062500
+
+, , Female, >=16, Current
+
+          1-20      21+
+45-49 0.002256 0.002779
+50-54 0.003538 0.005179
+55-59 0.005428 0.008235
+60-64 0.008580 0.013029
+65-69 0.014962 0.019349
+70-74 0.020848 0.028270
+75-79 0.033195 0.042731
+
+, , Male, <1, Former
+
+          1-20      21+
+45-49 0.002344 0.004975
+50-54 0.005447 0.004828
+55-59 0.009452 0.017571
+60-64 0.011777 0.015784
+65-69 0.022449 0.023018
+70-74 0.042553 0.031746
+75-79 0.058824 0.040000
+
+, , Female, <1, Former
+
+          1-20      21+
+45-49 0.000000 0.002667
+50-54 0.001168 0.001387
+55-59 0.002874 0.004736
+60-64 0.010163 0.011148
+65-69 0.011080 0.023196
+70-74 0.006452 0.046358
+75-79 0.000000 0.024096
+
+, , Male, 1-2, Former
+
+          1-20      21+
+45-49 0.003658 0.002517
+50-54 0.004310 0.005007
+55-59 0.007288 0.009535
+60-64 0.015892 0.018472
+65-69 0.033803 0.037766
+70-74 0.050830 0.029740
+75-79 0.065972 0.044248
+
+, , Female, 1-2, Former
+
+          1-20      21+
+45-49 0.004339 0.001027
+50-54 0.000921 0.004668
+55-59 0.002595 0.006020
+60-64 0.003650 0.008621
+65-69 0.013485 0.012500
+70-74 0.014831 0.025172
+75-79 0.025806 0.057692
+
+, , Male, 3-5, Former
+
+          1-20      21+
+45-49 0.001596 0.004175
+50-54 0.004548 0.004889
+55-59 0.007294 0.010258
+60-64 0.013165 0.017901
+65-69 0.023749 0.020810
+70-74 0.044850 0.037129
+75-79 0.077075 0.073298
+
+, , Female, 3-5, Former
+
+          1-20      21+
+45-49 0.002120 0.001786
+50-54 0.002895 0.002701
+55-59 0.003759 0.003610
+60-64 0.006509 0.006996
+65-69 0.012632 0.016880
+70-74 0.012500 0.016873
+75-79 0.025907 0.031250
+
+, , Male, 6-10, Former
+
+          1-20      21+
+45-49 0.002169 0.001226
+50-54 0.003497 0.004029
+55-59 0.005902 0.007440
+60-64 0.012669 0.012207
+65-69 0.018202 0.027664
+70-74 0.038887 0.039888
+75-79 0.049451 0.063830
+
+, , Female, 6-10, Former
+
+          1-20      21+
+45-49 0.001072 0.002247
+50-54 0.002009 0.001902
+55-59 0.001658 0.004545
+60-64 0.004708 0.005417
+65-69 0.008648 0.008287
+70-74 0.011263 0.028487
+75-79 0.039604 0.029787
+
+, , Male, 11-15, Former
+
+          1-20      21+
+45-49 0.001674 0.001983
+50-54 0.002140 0.003939
+55-59 0.004473 0.006685
+60-64 0.008756 0.011000
+65-69 0.016691 0.022681
+70-74 0.031843 0.032686
+75-79 0.056180 0.076661
+
+, , Female, 11-15, Former
+
+          1-20      21+
+45-49 0.001359 0.001421
+50-54 0.001213 0.001168
+55-59 0.002022 0.004122
+60-64 0.005706 0.003731
+65-69 0.005866 0.007979
+70-74 0.010705 0.016212
+75-79 0.016667 0.028037
+
+, , Male, >=16, Former
+
+          1-20      21+
+45-49 0.001595 0.001934
+50-54 0.002504 0.003543
+55-59 0.004366 0.005378
+60-64 0.007030 0.009933
+65-69 0.011592 0.012307
+70-74 0.021949 0.024689
+75-79 0.041289 0.050481
+
+, , Female, >=16, Former
+
+          1-20      21+
+45-49 0.000910 0.001388
+50-54 0.001721 0.000830
+55-59 0.002472 0.001821
+60-64 0.003197 0.003564
+65-69 0.006180 0.005815
+70-74 0.012721 0.013634
+75-79 0.018615 0.021954
+
+> 
+> summary(smoke.rate[1:3,,1,,])  #test subscripting
+ Rate table with 4 dimensions:
+	age ranges from 45 to 55; with 3 categories
+	amount has levels of: 1-20 21+
+	duration ranges from 0 to 16; with 6 categories
+	status has levels of: Never Current Former
+> 
+> proc.time()
+   user  system elapsed 
+  0.416   0.032   0.446 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book7.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book7.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book7.Rout.save	(revision 2476)
@@ -0,0 +1,92 @@
+
+R Under development (unstable) (2015-05-14 r68368) -- "Unsuffered Consequences"
+Copyright (C) 2015 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+> options(na.action=na.exclude)
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> 
+> #
+> # Tests from the appendix of Therneau and Grambsch
+> #  Data set 1 + exact method
+> 
+> test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0))
+> 
+> byhand7 <- function(beta) {
++     r <- exp(beta)
++     loglik <- 2*(beta - log(3*r + 3))
++     u <- 2/(r+1)
++     imat <- 2*r/(r+1)^2
++     haz <- c(1/(3*r+3), 2/(r+3), 0, 1 )
++                  
++     ties <- c(1,1,2,2,3,4)
++     wt <- c(r,r,r,1,1,1)
++     mart <- c(1,0,1,1,0,1) -  wt* (cumsum(haz))[ties]  #martingale residual
++ 
++     list(loglik=loglik, u=u, imat=imat, mart=mart)
++ }
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> 
+> fit0 <-coxph(Surv(time, status) ~x, test1, iter=0, method='exact')
+> truth0 <- byhand7(0)
+> aeq(truth0$loglik, fit0$loglik[1])
+[1] TRUE
+> aeq(1/truth0$imat, fit0$var)
+[1] TRUE
+> aeq(truth0$mart, fit0$resid[c(2:6,1)])
+[1] TRUE
+> 
+> fit1 <- coxph(Surv(time, status) ~x, test1, iter=1, method='exact')
+> aeq(fit1$coef, truth0$u*fit0$var)
+[1] TRUE
+> truth1 <- byhand7(fit1$coef)
+> aeq(fit1$loglik[2], truth1$loglik)
+[1] TRUE
+> aeq(1/truth1$imat, fit1$var)
+[1] TRUE
+> aeq(truth1$mart, resid(fit1)[c(3:7,1)])
+[1] TRUE
+> 
+> # Beta is infinite for this model, so we will get a warning message
+> fit2 <-  coxph(Surv(time, status) ~x, test1, method='exact')
+Warning message:
+In fitter(X, Y, strats, offset, init, control, weights = weights,  :
+  Loglik converged before variable  1 ; beta may be infinite. 
+> aeq(resid(fit2)[-2], c(0, 2/3, -1/3, -4/3,  1, 0))  #values from the book
+[1] TRUE
+> 
+> 
+> #
+> # Now a multivariate case: start/stop data uses a different C routine
+> #
+> zz <- rep(0, nrow(lung))
+> fit1 <- coxph(Surv(time, status) ~ age + ph.ecog + sex, lung, method="exact")
+> fit2 <- coxph(Surv(zz, time, status) ~ age + ph.ecog + sex, lung,
++               method="exact")
+> aeq(fit1$loglik, fit2$loglik)
+[1] TRUE
+> aeq(fit1$var, fit2$var)
+[1] TRUE
+> aeq(fit1$score, fit2$score)
+[1] TRUE
+> aeq(fit1$resid, fit2$resid)
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  0.712   0.028   0.737 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv.R	(revision 2476)
@@ -0,0 +1,87 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Test out subscripting in the case of a coxph survival curve
+#
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+fit <- coxph(Surv(time, status) ~ age + sex + meal.cal + strata(ph.ecog),
+		data=cancer)
+
+surv1 <- survfit(fit)
+temp <- surv1[2:3]
+
+which <- cumsum(surv1$strata)
+zed   <- (which[1]+1):(which[3])
+aeq(surv1$surv[zed], temp$surv)
+aeq(surv1$time[zed], temp$time)
+
+# This call should not create a model frame in the code -- so same
+#  answer but a different path through the underlying code
+fit <- coxph(Surv(time, status) ~ age + sex + meal.cal + strata(ph.ecog),
+		x=T, data=cancer)
+surv2 <- survfit(fit)
+all.equal(surv1, surv2)
+
+#
+# Now a result with a matrix of survival curves
+#
+dummy <- data.frame(age=c(30,40,60), sex=c(1,2,2), meal.cal=c(500, 1000, 1500))
+surv2 <- survfit(fit, newdata=dummy)
+
+zed <- 1:which[1]
+aeq(surv2$surv[zed,1], surv2[1,1]$surv)
+aeq(surv2$surv[zed,2], surv2[1,2]$surv)
+aeq(surv2$surv[zed,3], surv2[1,3]$surv)
+aeq(surv2$surv[zed, ], surv2[1,1:3]$surv)
+aeq(surv2$surv[zed],   (surv2[1]$surv)[,1])
+aeq(surv2$surv[zed, ], surv2[1, ]$surv)
+
+fit <- coxph(Surv(time, status) ~ age + sex + meal.cal + strata(ph.ecog),
+		data=cancer)
+
+surv1 <- survfit(fit)
+temp <- surv1[2:3]
+
+which <- cumsum(surv1$strata)
+zed   <- (which[1]+1):(which[3])
+aeq(surv1$surv[zed], temp$surv)
+aeq(surv1$time[zed], temp$time)
+
+# This call should not create a model frame in the code -- so same
+#  answer but a different path through the underlying code
+fit <- coxph(Surv(time, status) ~ age + sex + meal.cal + strata(ph.ecog),
+		x=T, data=cancer)
+surv2 <- survfit(fit)
+all.equal(surv1, surv2)
+
+#
+# Now a result with a matrix of survival curves
+#
+dummy <- data.frame(age=c(30,40,60), sex=c(1,2,2), meal.cal=c(500, 1000, 1500))
+surv2 <- survfit(fit, newdata=dummy)
+
+zed <- 1:which[1]
+aeq(surv2$surv[zed,1], surv2[1,1]$surv)
+aeq(surv2$surv[zed,2], surv2[1,2]$surv)
+aeq(surv2$surv[zed,3], surv2[1,3]$surv)
+aeq(surv2$surv[zed, ], surv2[1,1:3]$surv)
+aeq(surv2$surv[zed],   (surv2[1]$surv)[,1])
+aeq(surv2$surv[zed, ], surv2[1, ]$surv)
+
+# And the depreciated form - call with a named vector as 'newdata'
+#  the resulting $call component  won't match so delete it before comparing
+surv3 <- survfit(fit, c(age=40, sex=2, meal.cal=1000))
+all.equal(unclass(surv2[,2])[-length(surv3)], unclass(surv3)[-length(surv3)])
+
+
+
+# Test out offsets, which have recently become popular due to a Langholz paper
+fit1 <- coxph(Surv(time, status) ~ age + ph.ecog, lung)
+fit2 <- coxph(Surv(time, status) ~ age + offset(ph.ecog * fit1$coef[2]), lung)
+
+surv1 <- survfit(fit1, newdata=data.frame(age=50, ph.ecog=1))
+surv2 <- survfit(fit2, newdata=data.frame(age=50, ph.ecog=1))
+all.equal(surv1$surv, surv2$surv)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survfit2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survfit2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survfit2.Rout.save	(revision 2476)
@@ -0,0 +1,33 @@
+
+R version 2.11.0 (2010-04-22)
+Copyright (C) 2010 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> library(survival)
+Loading required package: splines
+> #
+> # Check out the Dory&Korn confidence interval option
+> #
+> tdata <- data.frame(time= 1:10,
++                     status=c(1,0,1,0,1,0,0,0,1,0))
+> 
+> fit1 <- survfit(Surv(time, status) ~1, tdata, conf.lower='modified')
+> fit2 <- survfit(Surv(time, status) ~1, tdata)
+> 
+> stdlow <- fit2$std * sqrt(c(1, 10/9, 1, 8/7, 1, 6/5, 6/4, 6/3, 1, 2/1))
+> lower <- exp(log(fit2$surv) - qnorm(.975)*stdlow)
+> all.equal(fit1$lower, lower, check.attributes=FALSE)
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/frailty.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/frailty.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/frailty.R	(revision 2476)
@@ -0,0 +1,22 @@
+library(survival)
+#
+# The constuction of a survival curve with sparse frailties
+#
+# In this case the coefficient vector is kept in two parts, the
+#  fixed coefs and the (often very large) random effects coefficients
+# The survfit function treats the second set of coefficients as fixed
+#  values, to avoid an unmanagable variance matrix, and behaves like
+#  the second fit below.
+
+fit1 <- coxph(Surv(time, status) ~ age + frailty(inst), lung)
+sfit1 <- survfit(fit1)
+
+# A parallel model with the frailties treated as fixed offsets
+offvar <- fit1$frail[as.numeric(factor(lung$inst))]
+fit2 <- coxph(Surv(time, status) ~ age + offset(offvar),lung)
+fit2$var <- fit1$var  #force variances to match
+
+all.equal(fit1$coef, fit2$coef)
+sfit2 <- survfit(fit2, newdata=list(age=fit1$means, offvar=0))
+all.equal(sfit1$surv, sfit2$surv)
+all.equal(sfit1$var, sfit2$var)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/doweight.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/doweight.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/doweight.R	(revision 2476)
@@ -0,0 +1,240 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+# Tests of the weighted Cox model
+#
+# Similar data set to test1, but add weights,
+#                                    a double-death/censor tied time
+#                                    a censored last subject
+# The latter two are cases covered only feebly elsewhere.
+# 
+# The data set testw2 has the same data, but done via replication
+#
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+
+testw1 <- data.frame(time=  c(1,1,2,2,2,2,3,4,5),
+		    status= c(1,0,1,1,1,0,0,1,0),
+		    x=      c(2,0,1,1,0,1,0,1,0),
+		    wt =    c(1,2,3,4,3,2,1,2,1))
+xx <- c(1,2,3,4,3,2,1,2,1)
+testw2 <- data.frame(time=   rep(c(1,1,2,2,2,2,3,4,5), xx),
+		     status= rep(c(1,0,1,1,1,0,0,1,0), xx),
+		     x=      rep(c(2,0,1,1,0,1,0,1,0), xx),
+		     id=     rep(1:9, xx))
+indx <- match(1:9, testw2$id)
+testw2 <- data.frame(time=   rep(c(1,1,2,2,2,2,3,4,5), xx),
+		     status= rep(c(1,0,1,1,1,0,0,1,0), xx),
+		     x=      rep(c(2,0,1,1,0,1,0,1,0), xx),
+		     id=     rep(1:9, xx))
+indx <- match(1:9, testw2$id)
+
+fit0 <- coxph(Surv(time, status) ~x, testw1, weights=wt,
+		    method='breslow', iter=0)
+fit0b <- coxph(Surv(time, status) ~x, testw2, method='breslow', iter=0)
+fit  <- coxph(Surv(time, status) ~x, testw1, weights=wt, method='breslow')
+fitb <- coxph(Surv(time, status) ~x, testw2, method='breslow')
+
+texp <- function(beta) {  # expected, Breslow estimate
+    r <- exp(beta)
+    temp <- cumsum(c(1/(r^2 + 11*r +7), 10/(11*r +5), 2/(2*r+1)))
+    c(r^2, 1,r,r,1,r,1,r,1)* temp[c(1,1,2,2,2,2,2,3,3)]
+    }
+aeq(texp(0),  c(1/19, 1/19, rep(103/152, 5), rep(613/456,2))) #verify texp()
+
+xbar <- function(beta) { # xbar, Breslow estimate
+    r <- exp(beta)
+    temp <- r* rep(c(2*r + 11, 11/10, 1), c(2, 5, 2))
+    temp * texp(beta)
+    }
+
+fit0
+summary(fit)
+aeq(resid(fit0), testw1$status - texp(0))
+resid(fit0, type='score')
+resid(fit0, type='scho')
+
+aeq(resid(fit0, type='mart'), (resid(fit0b, type='mart'))[indx])
+aeq(resid(fit0, type='scor'), (resid(fit0b, type='scor'))[indx])
+aeq(unique(resid(fit0, type='scho')), unique(resid(fit0b, type='scho')))
+
+
+aeq(resid(fit, type='mart'), testw1$status - texp(fit$coef))
+resid(fit, type='score')
+resid(fit, type='scho')
+aeq(resid(fit, type='mart'), (resid(fitb, type='mart'))[indx])
+aeq(resid(fit, type='scor'), (resid(fitb, type='scor'))[indx])
+aeq(unique(resid(fit, type='scho')), unique(resid(fitb, type='scho')))
+rr1 <- resid(fit, type='mart')
+rr2 <- resid(fit, type='mart', weighted=T)
+aeq(rr2/rr1, testw1$wt)
+
+rr1 <- resid(fit, type='score')
+rr2 <- resid(fit, type='score', weighted=T)
+aeq(rr2/rr1, testw1$wt)
+
+fit  <- coxph(Surv(time, status) ~x, testw1, weights=wt, method='efron')
+fit
+resid(fit, type='mart')
+resid(fit, type='score')
+resid(fit, type='scho')
+
+# Tests of the weighted Cox model, AG form of the data
+#   Same solution as doweight1.s
+#
+testw3 <- data.frame(id  =  c( 1, 1, 2, 3, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9),
+		     begin= c( 0, 5, 0, 0,10,15, 0, 0,14, 0, 0, 0,23, 0),
+		     time=  c( 5,10,10,10,15,20,20,14,20,20,30,23,40,50),
+		    status= c( 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0),
+		    x=      c( 2, 2, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0),
+		    wt =    c( 1, 1, 2, 3, 3, 3, 4, 3, 3, 2, 1, 2, 2, 1))
+
+fit0 <- coxph(Surv(begin,time, status) ~x, testw3, weights=wt,
+		    method='breslow', iter=0)
+fit  <- coxph(Surv(begin,time, status) ~x, testw3, weights=wt, method='breslow')
+fit0
+summary(fit)
+resid(fit0, type='mart', collapse=testw3$id)
+resid(fit0, type='score', collapse=testw3$id)
+resid(fit0, type='scho')
+
+resid(fit, type='mart', collapse=testw3$id)
+resid(fit, type='score', collapse=testw3$id)
+resid(fit, type='scho')
+fit0 <- coxph(Surv(begin, time, status) ~x,testw3, weights=wt, iter=0)
+resid(fit0, 'mart', collapse=testw3$id)
+resid(coxph(Surv(begin, time, status) ~1, testw3, weights=wt)
+		      , collapse=testw3$id)  #Null model
+
+fit  <- coxph(Surv(begin,time, status) ~x, testw3, weights=wt, method='efron')
+fit
+resid(fit, type='mart', collapse=testw3$id)
+resid(fit, type='score', collapse=testw3$id)
+resid(fit, type='scho')
+#
+# Check out the impact of weights on the dfbetas
+#    Am I computing them correctly?
+#
+wtemp <- rep(1,26)
+wtemp[c(5,10,15)] <- 2:4
+fit <- coxph(Surv(futime, fustat) ~ age + ecog.ps, ovarian, weights=wtemp)
+rr <- resid(fit, 'dfbeta')
+
+fit1 <- coxph(Surv(futime, fustat) ~ age + ecog.ps, ovarian, weights=wtemp,
+	         subset=(-5))
+fit2 <- coxph(Surv(futime, fustat) ~ age + ecog.ps, ovarian, weights=wtemp,
+	         subset=(-10))
+fit3 <- coxph(Surv(futime, fustat) ~ age + ecog.ps, ovarian, weights=wtemp,
+	         subset=(-15))
+
+#
+# Effect of case weights on expected survival curves post Cox model
+#
+fit0  <- coxph(Surv(time, status) ~x, testw1, weights=wt, method='breslow',
+	       iter=0)
+fit0b <- coxph(Surv(time, status) ~x, testw2, method='breslow', iter=0)
+
+surv1 <- survfit(fit0, newdata=list(x=0))
+surv2 <- survfit(fit0b, newdata=list(x=0))
+aeq(surv1$surv, surv2$surv)
+#
+# Check out the Efron approx. 
+#
+
+fit0 <- coxph(Surv(time, status) ~x,testw1, weights=wt, iter=0)
+fit  <- coxph(Surv(time, status) ~x,testw1, weights=wt)
+resid(fit0, 'mart')
+resid(coxph(Surv(time, status) ~1, testw1, weights=wt))  #Null model
+
+# lfun is the known log-likelihood for this data set, worked out in the
+#   appendix of Therneau and Grambsch
+# ufun is the score vector and ifun the information matrix
+lfun <- function(beta) {
+    r <- exp(beta)
+    a <- 7*r +3
+    b <- 4*r +2
+    11*beta - ( log(r^2 + 11*r +7) + 
+	(10/3)*(log(a+b) + log(2*a/3 +b) + log(a/3 +b)) + 2*log(2*r +1))
+    }
+aeq(fit0$log[1], lfun(0))
+aeq(fit$log[2], lfun(fit$coef))
+
+ufun <- function(beta, efron=T) {  #score statistic
+    r <- exp(beta)
+    xbar1 <- (2*r^2+11*r)/(r^2+11*r +7)
+    xbar2 <- 11*r/(11*r +5)
+    xbar3 <-  2*r/(2*r +1)
+    xbar2b<- 26*r/(26*r+12)
+    xbar2c<- 19*r/(19*r + 9)
+    temp <- 11 - (xbar1 + 2*xbar3)
+    if (efron) temp - (10/3)*(xbar2 + xbar2b + xbar2c)
+    else       temp - 10*xbar2
+    }
+print(ufun(fit$coef) < 1e-4)  # Should be true
+
+ifun <- function(beta, efron=T) {  # information matrix
+    r <- exp(beta)
+    xbar1 <- (2*r^2+11*r)/(r^2+11*r +7)
+    xbar2 <- 11*r/(11*r +5)
+    xbar3 <-  2*r/(2*r +1)
+    xbar2b<- 26*r/(26*r+12)
+    xbar2c<- 19*r/(19*r + 9)
+    temp <- ((4*r^2 + 11*r)/(r^2+11*r +7) - xbar1^2) +
+	    2*(xbar3 - xbar3^2)
+    if (efron) temp + (10/3)*((xbar2- xbar2^2) + (xbar2b - xbar2b^2) +
+			      (xbar2c -xbar2c^2))
+    else       temp + 10 * (xbar2- xbar2^2)
+    }
+
+aeq(fit0$var, 1/ifun(0))
+aeq(fit$var, 1/ifun(fit$coef))
+
+
+      
+# Make sure that the weights pass through the residuals correctly
+rr1 <- resid(fit, type='mart')
+rr2 <- resid(fit, type='mart', weighted=T)
+aeq(rr2/rr1, testw1$wt)
+rr1 <- resid(fit, type='score')
+rr2 <- resid(fit, type='score', weighted=T)
+aeq(rr2/rr1, testw1$wt)
+
+#
+# Look at the individual components
+#
+dt0 <- coxph.detail(fit0)
+dt <- coxph.detail(fit)
+aeq(sum(dt$score), ufun(fit$coef))  #score statistic
+aeq(sum(dt0$score), ufun(0))
+aeq(dt0$hazard, c(1/19, (10/3)*(1/16 + 1/(6+20/3) + 1/(6+10/3)), 2/3))
+
+
+
+rm(fit, fit0, rr1, rr2, dt, dt0)
+#
+# Effect of weights on the robust variance
+#
+test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0),
+		    wt=    c(3,0,1,1,1,1,1),
+                    id=    1:7)
+testx <- data.frame(time=  c(4,4,4,1,1,2,2,3),
+                    status=c(1,1,1,1,0,1,1,0),
+                    x=     c(0,0,0,1,1,1,0,0),
+		    wt=    c(1,1,1,1,1,1,1,1),
+                    id=    1:8)
+ 
+fit1 <- coxph(Surv(time, status) ~x + cluster(id), test1, method='breslow',
+              weights=wt)
+fit2 <- coxph(Surv(time, status) ~x + cluster(id), testx, method='breslow')
+
+db1 <- resid(fit1, 'dfbeta', weighted=F)
+db1 <- db1[-2]         #toss the missing
+db2 <- resid(fit2, 'dfbeta')
+aeq(db1, db2[3:8])
+
+W <- c(3,1,1,1,1,1)   #Weights, after removal of the missing value
+aeq(fit2$var, sum(db1*db1*W))
+aeq(fit1$var, sum(db1*db1*W*W))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book2.R	(revision 2476)
@@ -0,0 +1,115 @@
+library(survival)
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+
+#
+# Tests from the appendix of Therneau and Grambsch
+#  b. Data set 1 and Efron estimate
+#
+test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0))
+
+byhand <- function(beta, newx=0) {
+    r <- exp(beta)
+    loglik <- 2*beta - (log(3*r +3) + log((r+5)/2) + log(r+3))
+    u <- (30 + 23*r - r^3)/ ((r+1)*(r+3)*(r+5))
+    tfun <- function(x)  x - x^2
+    imat <- tfun(r/(r+1)) + tfun(r/(r+5)) + tfun(r/(r+3))
+
+    # The matrix of weights, one row per obs, one col per time
+    #  Time of 1, 6, 6+0 (second death), and 9  
+    wtmat <- matrix(c(1,1,1,1,1,1,
+                      0,0,1,1,1,1,
+                      0,0,.5, .5, 1,1,
+                      0,0,0,0,0,1), ncol=4)
+    wtmat <- diag(c(r,r,r,1,1,1)) %*% wtmat
+
+    x <- c(1,1,1,0,0,0)
+    status <- c(1,0,1,1,0,1)
+    xbar <- colSums(wtmat*x)/ colSums(wtmat)
+    haz <-  1/ colSums(wtmat)  # one death at each of the times
+
+    hazmat <- wtmat %*% diag(haz) #each subject's hazard over time
+    mart <- status - rowSums(hazmat)
+
+    a <- r+1; b<- r+3; d<- r+5  # 'c' in the book, 'd' here
+    score <- c((2*r + 3)/ (3*a^2),
+               -r/ (3*a^2),
+               (675+ r*(1305 +r*(756 + r*(-4 +r*(-79 -13*r)))))/(3*(a*b*d)^2),
+               r*(1/(3*a^2) - a/(2*b^2) - b/(2*d^2)), 
+               2*r*(177 + r*(282 +r*(182 + r*(50 + 5*r)))) /(3*(a*b*d)^2), 
+               2*r*(177 + r*(282 +r*(182 + r*(50 + 5*r)))) /(3*(a*b*d)^2))
+
+    # Schoenfeld residual
+    d <- mean(xbar[2:3])
+    scho <- c(1/(r+1), 1- d, 0- d , 0)
+
+    surv  <- exp(-cumsum(haz)* exp(beta*newx))[c(1,3,4)]
+    varhaz.g <- cumsum(haz^2)  # since all numerators are 1
+
+    varhaz.d <- cumsum((newx-xbar) * haz)
+
+    varhaz <- (varhaz.g + varhaz.d^2/ imat) * exp(2*beta*newx)
+
+    list(loglik=loglik, u=u, imat=imat, xbar=xbar, haz=haz,
+	     mart=mart,  score=score, var.g=varhaz.g, var.d=varhaz.d,
+		scho=scho, surv=surv, var=varhaz[c(1,3,4)])
+    }
+
+
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+
+fit0 <-coxph(Surv(time, status) ~x, test1, iter=0)
+truth0 <- byhand(0,0)
+aeq(truth0$loglik, fit0$loglik[1])
+aeq(1/truth0$imat, fit0$var)
+aeq(truth0$mart, fit0$resid[c(2:6,1)])
+aeq(resid(fit0), c(-3/4, NA, 5/6, -1/6, 5/12, 5/12, -3/4))
+aeq(truth0$scho, resid(fit0, 'schoen'))
+aeq(truth0$score, resid(fit0, 'score')[c(3:7,1)])
+sfit <- survfit(fit0, list(x=0), censor=FALSE)
+aeq(sfit$std.err^2, truth0$var)
+aeq(sfit$surv, truth0$surv)
+
+fit <- coxph(Surv(time, status) ~x, test1, eps=1e-8)
+aeq(round(fit$coef,6), 1.676857)
+truebeta <- log(cos(acos((45/23)*sqrt(3/23))/3) * 2* sqrt(23/3))
+truth <- byhand(truebeta, 0)
+aeq(truth$loglik, fit$loglik[2])
+aeq(1/truth$imat, fit$var)
+aeq(truth$mart, fit$resid[c(2:6,1)])
+aeq(truth$scho, resid(fit, 'schoen'))
+aeq(truth$score, resid(fit, 'score')[c(3:7,1)])
+
+# Per comments in the source code, the below is expected to fail for Efron 
+#  at the tied death times.  (When predicting for new data, predict
+#  treats a time in the new data set that exactly matches one in the original
+#  as being just after the original, i.e., experiences the full hazard
+#  jump there, in the same way that censors do.)
+expect <- predict(fit, type='expected', newdata=test1) #force recalc
+use <- !(test1$time==6 | is.na(test1$status))
+aeq(test1$status[use] - resid(fit)[use], expect[use])  
+
+sfit <- survfit(fit, list(x=0), censor=FALSE)
+aeq(sfit$surv, truth$surv)
+aeq(sfit$std.err^2, truth$var)
+
+# 
+# Done with the formal test, now print out lots of bits
+#
+resid(fit)
+resid(fit, 'scor')
+resid(fit, 'scho')
+
+predict(fit, type='lp')
+predict(fit, type='risk')
+predict(fit, type='expected')
+predict(fit, type='terms')
+predict(fit, type='lp', se.fit=T)
+predict(fit, type='risk', se.fit=T)
+predict(fit, type='expected', se.fit=T)
+predict(fit, type='terms', se.fit=T)
+
+summary(survfit(fit))
+summary(survfit(fit, list(x=2)))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.cracks
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.cracks	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.cracks	(revision 2476)
@@ -0,0 +1,9 @@
+NA 	6.12 	5
+6.12 	19.92	16
+19.92	29.64	12
+29.64	35.40	18
+35.40	39.72	18
+39.72	45.24	2
+45.24	52.32	6
+52.32	63.48	17
+63.48	NA	73
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book6.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book6.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book6.R	(revision 2476)
@@ -0,0 +1,114 @@
+library(survival)
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+
+# Tests of the weighted Cox model
+#  This is section 1.3 of my appendix -- no yet found in any of the
+#  printings though, it awaits the next edition
+#
+# Efron approximation
+#
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+
+testw1 <- data.frame(time=  c(1,1,2,2,2,2,3,4,5),
+		    status= c(1,0,1,1,1,0,0,1,0),
+		    x=      c(2,0,1,1,0,1,0,1,0),
+		    wt =    c(1,2,3,4,3,2,1,2,1))
+xx <- testw1$wt
+
+# Efron estimate
+byhand <- function(beta, newx=0) {
+    r <- exp(beta)
+    a <- 7*r +3; b<- 4*r+2
+    loglik <- 11*beta - (log(r^2 + 11*r +7) + 10*log(11*r +5)/3 +
+                         10*log(a*2/3 +b)/3 + 10*log(a/3 +b)/3 +2*log(2*r+1))
+
+    hazard <- c(1/(r^2 + 11*r +7), 
+                10/(3*c(11*r +5, a*2/3 +b, a/3+b)), 2/(2*r+1))
+    temp <- c(hazard[1], hazard[1]+hazard[2] + hazard[3]*2/3 + hazard[4]/3,
+              cumsum(hazard)[4:5])
+    risk <- c(r^2, 1,r,r,1,r,1,r,1)
+    expected <- risk* temp[c(1,1,2,2,2,3,3,4,4)]
+    
+    # The matrix of weights, one row per obs, one col per death
+    #   deaths at 1,2,2,2, and 4
+    riskmat <- matrix(c(1,1,1,1,1,1,1,1,1,
+                        0,0,1,1,1,1,1,1,1,
+                        0,0,2/3,2/3,2/3,1,1,1,1,
+                        0,0,1/3,1/3,1/3,1,1,1,1,
+                        0,0,0,0,0,0,0,1,1), ncol=5)
+    wtmat <- diag(c(r^2, 2, 3*r, 4*r, 3, 2*r, 1, 2*r, 1)) %*% riskmat
+
+    x      <- c(2,0,1,1,0,1,0,1,0)
+    xbar   <- colSums(x*wtmat)/ colSums(wtmat)
+    imat   <- (4*r^2 + 11*r)*hazard[1] - xbar[1]^2  +
+              10* mean(xbar[2:4] - xbar[2:4]^2) + 2*(xbar[5] - xbar[5]^2)
+
+    status <- c(1,0,1,1,1,0,0,1,0)
+    wt     <- c(1,2,3,4,3,2,1,2,1)
+   # Table of sums for score  resids
+    hazmat <- riskmat %*% diag(c(1,10/3,10/3, 10/3,2)/colSums(wtmat)) 
+    dM <- -risk*hazmat  #Expected part
+    dM[1,1] <- dM[1,1] +1  # deaths at time 1
+    for (i in 2:4) dM[3:5, i] <- dM[3:5,i] + 1/3
+    dM[8,5] <- dM[8,5] +1
+    mart <- rowSums(dM)
+    resid <-dM * outer(x, xbar ,'-')
+
+    # Increments to the variance of the hazard
+    var.g <- cumsum(hazard^2* c(1,3/10, 3/10, 3/10, 1/2))
+    var.d <- cumsum((xbar-newx)*hazard)
+
+    sxbar <- c(xbar[1], mean(xbar[2:4]), xbar[5])  #xbar for Schoen
+    list(loglik=loglik, imat=imat, hazard=hazard, xbar=xbar,
+         mart=status-expected, expected=expected,
+         score=rowSums(resid), schoen=c(2,1,1,0,1) - sxbar[c(1,2,2,2,3)],
+         varhaz=((var.g + var.d^2/imat)* exp(2*beta*newx))[c(1,4,5)])
+    }
+
+# Verify
+temp <- byhand(0,0)
+aeq(temp$xbar, c(13/19, 11/16, 26/38, 19/28, 2/3))
+aeq(temp$hazard, c(1/19, 5/24, 5/19, 5/14, 2/3))
+
+fit0 <- coxph(Surv(time, status) ~x, testw1, weights=wt, iter=0)
+fit  <- coxph(Surv(time, status) ~x, testw1, weights=wt)
+
+truth0 <- byhand(0,pi)
+aeq(fit0$loglik[1], truth0$loglik)
+aeq(1/truth0$imat, fit0$var)
+aeq(truth0$mart, fit0$resid)
+aeq(truth0$scho, resid(fit0, 'schoen'))
+aeq(truth0$score, resid(fit0, 'score')) 
+sfit <- survfit(fit0, list(x=pi), censor=FALSE)
+aeq(sfit$std.err^2, truth0$var)  
+aeq(-log(sfit$surv), cumsum(truth0$hazard)[c(1,4,5)]) 
+
+truth <- byhand(fit$coef, .3)
+aeq(truth$loglik, fit$loglik[2])
+aeq(1/truth$imat, fit$var)
+aeq(truth$mart, fit$resid)
+aeq(truth$scho, resid(fit, 'schoen'))
+aeq(truth$score, resid(fit, 'score'))
+
+sfit <- survfit(fit, list(x=.3), censor=FALSE)
+aeq(sfit$std.err^2, truth$var)  
+aeq(-log(sfit$surv), (cumsum(truth$hazard)* exp(fit$coef*.3))[c(1,4,5)]) 
+
+
+fit0
+summary(fit)
+resid(fit0, type='score')
+resid(fit0, type='scho')
+
+resid(fit, type='score')
+resid(fit, type='scho')
+
+rr1 <- resid(fit, type='mart')
+rr2 <- resid(fit, type='mart', weighted=T)
+aeq(rr2/rr1, testw1$wt)
+
+rr1 <- resid(fit, type='score')
+rr2 <- resid(fit, type='score', weighted=T)
+aeq(rr2/rr1, testw1$wt)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_peterson.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_peterson.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_peterson.R	(revision 2476)
@@ -0,0 +1,44 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Data courtesy of Bercedis Peterson, Duke University.
+#  v4 of survreg fails due to 2 groups that have only 1 subject; the coef
+#  for them easily gets out of hand.  In fact, this data set is my toughest
+#  test of the minimizer.
+#
+# A shrinkage model for this coefficient is therefore interesting
+
+
+peterson <- data.frame(
+		  scan('data.peterson', what=list(grp=0, time=0, status=0)))
+
+fitp <- survreg(Surv(time, status) ~ factor(grp), peterson)
+summary(fitp)
+
+# Now a shrinkage model.  Give the group coefficients
+#  about 1/2 the scale parameter of the original model, i.e., .18.
+#
+ffit <- survreg(Surv(time, status) ~ frailty(grp, theta=.1), peterson)
+ffit
+
+#
+# Try 3 degrees of freedom, since there are 6 groups
+#   compare them to the unconstrained ones.  The frailty coefs are
+#   on a "sum to constant" constraint rather than "first coef=0", so
+#   some conversion is neccessary
+#
+ffit3 <- survreg(Surv(time, status) ~ frailty(grp, df=3), peterson)
+print(ffit3)
+
+temp <- mean(c(0, fitp$coef[-1])) - mean(ffit3$frail)
+temp2 <- c(fitp$coef[1] + temp, c(0,fitp$coef[-1]) - temp)
+xx <- rbind(c(nrow(peterson), table(peterson$grp)),
+	    temp2,
+	    c(ffit3$coef, ffit3$frail))
+dimnames(xx) <- list(c("N", "factor", "frailty"),
+		     c("Intercept", paste("grp", 1:6)))
+signif(xx,3)
+
+rm(ffit, ffit3, temp, temp2, xx, fitp)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.turbine
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.turbine	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.turbine	(revision 2476)
@@ -0,0 +1,23 @@
+NA  4  0                                           
+4  NA  39                                          
+NA 10  4                                           
+10 NA  49                                          
+NA 14  2                                           
+14 NA  31                                          
+NA 18  7                                           
+18 NA  66                                          
+NA 22  5                                           
+22 NA  25                                          
+NA 26  9                                           
+26 NA  30                                          
+NA 30  9                                           
+30 NA  33                                          
+NA 34  6                                           
+34 NA  7                                           
+NA 38  22                                          
+38 NA  12                                          
+NA 42  21                                          
+42 NA  19                                          
+NA 46  21                                          
+46 NA  15                                          
+  
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_rat1.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_rat1.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_rat1.Rout.save	(revision 2476)
@@ -0,0 +1,111 @@
+
+R Under development (unstable) (2015-06-04 r68474) -- "Unsuffered Consequences"
+Copyright (C) 2015 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> # Tests using the rats data
+> #
+> #  (Female rats, from Mantel et al, Cancer Research 37,
+> #    3863-3868, November 77)
+> 
+> rfit <- coxph(Surv(time,status) ~ rx + frailty(litter), rats,
++ 	     method='breslow', subset= (sex=='f'))
+> names(rfit)
+ [1] "coefficients"      "var"               "var2"             
+ [4] "loglik"            "iter"              "linear.predictors"
+ [7] "residuals"         "means"             "concordance"      
+[10] "method"            "frail"             "fvar"             
+[13] "df"                "df2"               "penalty"          
+[16] "pterms"            "assign2"           "history"          
+[19] "coxlist1"          "printfun"          "n"                
+[22] "nevent"            "terms"             "assign"           
+[25] "wald.test"         "y"                 "formula"          
+[28] "call"             
+> rfit
+Call:
+coxph(formula = Surv(time, status) ~ rx + frailty(litter), data = rats, 
+    subset = (sex == "f"), method = "breslow")
+
+                  coef se(coef)    se2  Chisq   DF     p
+rx               0.906    0.323  0.319  7.882  1.0 0.005
+frailty(litter)                        16.888 13.8 0.253
+
+Iterations: 6 outer, 25 Newton-Raphson
+     Variance of random effect= 0.474   I-likelihood = -181.1 
+Degrees of freedom for terms=  1.0 13.9 
+Likelihood ratio test=36.3  on 14.8 df, p=0.00144  n= 150 
+> 
+> rfit$iter
+[1]  6 25
+> rfit$df
+[1]  0.975943 13.854864
+> rfit$history[[1]]
+$theta
+[1] 0.4742849
+
+$done
+c.loglik 
+    TRUE 
+
+$history
+         theta    loglik  c.loglik
+[1,] 0.0000000 -181.8451 -181.8451
+[2,] 1.0000000 -168.3683 -181.5458
+[3,] 0.5000000 -173.3117 -181.0788
+[4,] 0.3090061 -175.9446 -181.1490
+[5,] 0.4645720 -173.7590 -181.0775
+[6,] 0.4736210 -173.6431 -181.0773
+
+$c.loglik
+[1] -181.0773
+
+> 
+> rfit1 <- coxph(Surv(time,status) ~ rx + frailty(litter, theta=1), rats,
++ 	     method='breslow', subset=(sex=="f"))
+> rfit1
+Call:
+coxph(formula = Surv(time, status) ~ rx + frailty(litter, theta = 1), 
+    data = rats, subset = (sex == "f"), method = "breslow")
+
+                            coef se(coef)    se2  Chisq   DF      p
+rx                         0.918    0.327  0.321  7.851  1.0 0.0051
+frailty(litter, theta = 1                        27.245 22.7 0.2324
+
+Iterations: 1 outer, 6 Newton-Raphson
+     Variance of random effect= 1   I-likelihood = -181.5 
+Degrees of freedom for terms=  1.0 22.7 
+Likelihood ratio test=50.7  on 23.7 df, p=0.001  n= 150 
+> 
+> rfit2 <- coxph(Surv(time,status) ~ frailty(litter), rats, subset=(sex=='f'))
+> rfit2
+Call:
+coxph(formula = Surv(time, status) ~ frailty(litter), data = rats, 
+    subset = (sex == "f"))
+
+                coef se(coef) se2 Chisq   DF    p
+frailty(litter)                      18 14.6 0.24
+
+Iterations: 6 outer, 22 Newton-Raphson
+     Variance of random effect= 0.504   I-likelihood = -184.8 
+Degrees of freedom for terms= 14.6 
+Likelihood ratio test=30  on 14.6 df, p=0.0101  n= 150 
+> 
+> proc.time()
+   user  system elapsed 
+  0.216   0.028   0.237 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_capacitor.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_capacitor.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_capacitor.R	(revision 2476)
@@ -0,0 +1,18 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+capacitor <- read.table('data.capacitor', row.names=1,
+			col.names=c('', 'days', 'event', 'voltage'))
+
+fitig <- survreg(Surv(days, event)~voltage, 
+	dist = "gaussian", data = capacitor)
+summary(fitig)
+
+fitix <- survreg(Surv(days, event)~voltage, 
+	dist = "extreme", data = capacitor)
+summary(fitix)
+
+fitil <- survreg(Surv(days, event)~voltage, 
+	dist = "logistic", data = capacitor)
+summary(fitil)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/gray1.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/gray1.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_lung.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_lung.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_lung.R	(revision 2476)
@@ -0,0 +1,29 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# A test with the lung data
+#  This caused problems in one release
+
+#
+#   First, get rid of some missings
+#
+lung2 <- na.omit(lung[c('time', 'status', 'wt.loss')])
+
+#
+# Test the logliklihoods
+#
+fit <- coxph(Surv(time, status) ~ pspline(wt.loss,3), lung2, x=T)
+fit0<- coxph(Surv(time, status) ~ 1, lung2)
+fit1<- coxph(Surv(time, status) ~ fit$x, lung2, iter=0, init=fit$coef)
+
+all.equal(fit$loglik[1], fit0$loglik)
+all.equal(fit$loglik[2], fit1$loglik[2])
+
+#
+# Check variances
+#
+imat <- solve(fit1$var)
+var2 <- fit$var %*% imat %*% fit$var
+all.equal(fit$var2, var2)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/mstate.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/mstate.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/mstate.R	(revision 2476)
@@ -0,0 +1,44 @@
+#
+# A tiny multi-state example
+#
+library(survival)
+mtest <- data.frame(id= c(1, 1, 1,  2,  3,  4, 4, 4,  5, 5),
+                    t1= c(0, 4, 9,  0,  2,  0, 2, 8,  1, 3),
+                    t2= c(4, 9, 10, 5,  9,  2, 8, 9,  3, 11),
+                    st= c(1, 2,  1, 2,  3,  1, 3, 0,  2,  0))
+
+mtest$state <- factor(mtest$st, 0:3, c("censor", "a", "b", "c"))
+mtest <- mtest[c(1,3,2,4,5,7,6,10, 9, 8),]  #not in time order
+
+mfit <- survfit(Surv(t1, t2, state) ~ 1, mtest, id=id)
+
+# True results
+#
+#time       state                    probabilities
+#         entry  a   b  c         entry  a    b     c
+#
+#0        124                      1     0    0     0
+#1+       1245
+#2+       1235   4                3/4   1/4   0     0    4 -> a, add 3
+#3+       123    4   5            9/16  1/4  3/16   0    5 -> b
+#4+        23    14  5            6/16  7/16 3/16   0    1 -> a
+#5+        3     14  5            3/16  7/16 6/16   0    2 -> b, exits
+#8+        3     1   5  4         3/16  7/32 6/16  7/32  4 -> c
+#9+                  15            0     0  19/32 13/32  1->b, 3->c & exit
+# 10+            1   5                19/64 19/64 13/32  1->a
+
+# In mfit, the "entry" state is last in the matrices
+all.equal(mfit$n.risk, matrix(c(0,1,1,2,2,1,0,0,
+                                0,0,1,1,1,1,2,1,
+                                0,0,0,0,0,1,0,0,
+                                4,4,3,2,1,1,0,0), ncol=4))
+all.equal(mfit$prev,  matrix(c(8,  8, 14, 14, 7, 0,  9.5, 9.5, 
+                                0,  6,  6, 12, 12,19,9.5, 9.5, 
+                                0,  0,  0,  0, 7, 13, 13, 13,
+                               24, 18, 12,  6, 6, 0, 0,  0)/32, ncol=4))
+all.equal(mfit$n.event, matrix(c(1,0,1,0,0,0,1,0,
+                                 0,1,0,1,0,1,0,0,
+                                 0,0,0,0,1,1,0,0,
+                                 0,0,0,0,0,0,0,0), ncol=4))
+all.equal(mfit$time, c(2, 3, 4, 5, 8, 9, 10, 11))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_tdist.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_tdist.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_tdist.Rout.save	(revision 2476)
@@ -0,0 +1,200 @@
+
+R version 2.7.1 (2008-06-23)
+Copyright (C) 2008 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Test out the t-distribution
+> #
+> 
+> capacitor <- read.table('data.capacitor', row.names=1,
++ 			col.names=c('', 'days', 'event', 'voltage'))
+> # First, a t-dist with 500 df should be nearly identical to the Gaussian
+> 
+> fitig <- survreg(Surv(days, event)~voltage, 
++         dist = "gaussian", data = capacitor)
+> fit1 <- survreg(Surv(days, event) ~ voltage,
++ 		 dist='t', parms=500, capacitor)
+> fitig
+Call:
+survreg(formula = Surv(days, event) ~ voltage, data = capacitor, 
+    dist = "gaussian")
+
+Coefficients:
+(Intercept)     voltage 
+ 1764.93485   -53.87917 
+
+Scale= 121.4319 
+
+Loglik(model)= -361.9   Loglik(intercept only)= -420.1
+	Chisq= 116.33 on 1 degrees of freedom, p= 0 
+n= 125 
+> summary(fit1, corr=F)
+
+Call:
+survreg(formula = Surv(days, event) ~ voltage, data = capacitor, 
+    dist = "t", parms = 500)
+             Value Std. Error     z        p
+(Intercept) 1765.8    163.137 10.82 2.64e-27
+voltage      -53.9      5.536 -9.74 2.06e-22
+Log(scale)     4.8      0.106 45.44 0.00e+00
+
+Scale= 121 
+
+Student-t distribution: parmameters= 500
+Loglik(model)= -361.9   Loglik(intercept only)= -420.1
+	Chisq= 116.48 on 1 degrees of freedom, p= 0 
+Number of Newton-Raphson Iterations: 6 
+n= 125 
+
+> 
+> # A more realistic fit
+> fit2 <- survreg(Surv(days, event) ~ voltage,
++ 		 dist='t', parms=5, capacitor)
+> print(fit2)
+Call:
+survreg(formula = Surv(days, event) ~ voltage, data = capacitor, 
+    dist = "t", parms = 5)
+
+Coefficients:
+(Intercept)     voltage 
+ 1819.28554   -55.74915 
+
+Scale= 96.84073 
+
+Loglik(model)= -360.4   Loglik(intercept only)= -424.7
+	Chisq= 128.55 on 1 degrees of freedom, p= 0 
+n= 125 
+> 
+> xx <- seq(1,125, by=10)
+> resid(fit2, type='response')[xx]
+         1         11         21         31         41         51         61 
+-404.30257 -404.30257 -404.30257  -98.07767  -69.80767  -69.80767  -69.80767 
+        71         81         91        101        111        121 
+ -69.80767  -93.94023   97.43977  113.88722  -33.24278  -20.67278 
+> resid(fit2, type='deviance')[xx]
+         1         11         21         31         41         51         61 
+ 0.0933622  0.0933622  0.0933622 -2.2347398  0.7614136  0.7614136  0.7614136 
+        71         81         91        101        111        121 
+ 0.7614136 -2.2156512  1.8511554  2.3107823 -2.0035571 -1.9821491 
+> resid(fit2, type='working') [xx]
+         1         11         21         31         41         51         61 
+  86.38692   86.38692   86.38692 -148.70263   83.43717   83.43717   83.43717 
+        71         81         91        101        111        121 
+  83.43717 -137.49634  467.64123  200.98252  -34.84748  -21.05308 
+> resid(fit2, type='dfbeta')[xx,]
+    (Intercept)     voltage    Log(scale)
+1     0.2105054 -0.00703909 -1.743331e-04
+11    0.2105054 -0.00703909 -1.743331e-04
+21    0.2105054 -0.00703909 -1.743331e-04
+31  -29.7982886  0.93975839 -1.076889e-02
+41    9.6554540 -0.30502561  3.507039e-05
+51    9.6554540 -0.30502561  3.507039e-05
+61    9.6554540 -0.30502561  3.507039e-05
+71    9.6554540 -0.30502561  3.507039e-05
+81   -7.9425298  0.20791541 -6.194989e-03
+91   16.3379622 -0.46035101  2.516742e-02
+101 -13.8131372  0.53202477  4.665894e-03
+111   0.7894992 -0.06147045 -1.308494e-02
+121  -1.7672591  0.03187567 -1.433810e-02
+> resid(fit2, type='dfbetas')[xx,]
+            [,1]         [,2]          [,3]
+1    0.001445482 -0.001447807 -0.0014173482
+11   0.001445482 -0.001447807 -0.0014173482
+21   0.001445482 -0.001447807 -0.0014173482
+31  -0.204616568  0.193290466 -0.0875522695
+41   0.066301320 -0.062737980  0.0002851263
+51   0.066301320 -0.062737980  0.0002851263
+61   0.066301320 -0.062737980  0.0002851263
+71   0.066301320 -0.062737980  0.0002851263
+81  -0.054539145  0.042764254 -0.0503659665
+91   0.112188247 -0.094685467  0.2046140370
+101 -0.094850975  0.109427398  0.0379342550
+111  0.005421271 -0.012643305 -0.1063820631
+121 -0.012135277  0.006556221 -0.1165704260
+> resid(fit2, type='ldresp')[xx]
+           1           11           21           31           41           51 
+6.303033e-06 6.303033e-06 6.303033e-06 4.198946e-02 1.121526e-02 1.121526e-02 
+          61           71           81           91          101          111 
+1.121526e-02 1.121526e-02 3.796054e-02 3.773652e-02 5.409081e-02 4.663892e-02 
+         121 
+4.455789e-02 
+> resid(fit2, type='ldshape')[xx]
+           1           11           21           31           41           51 
+8.281125e-05 8.281125e-05 8.281125e-05 1.355729e-01 1.789400e-04 1.789400e-04 
+          61           71           81           91          101          111 
+1.789400e-04 1.789400e-04 6.346182e-02 9.934752e-02 1.534546e-01 1.958545e-02 
+         121 
+7.748320e-03 
+> resid(fit2, type='ldcase')[xx]
+           1           11           21           31           41           51 
+6.114509e-06 6.114509e-06 6.114509e-06 5.563427e-02 6.706055e-03 6.706055e-03 
+          61           71           81           91          101          111 
+6.706055e-03 6.706055e-03 1.966021e-02 6.803951e-02 3.806159e-02 1.617087e-02 
+         121 
+1.551988e-02 
+> resid(fit2, type='matrix')[xx,]
+              g            dg           ddg          ds         dds
+1   -0.00435825  4.361059e-05 -5.048286e-07 -0.01763187 -0.06488770
+11  -0.00435825  4.361059e-05 -5.048286e-07 -0.01763187 -0.06488770
+21  -0.00435825  4.361059e-05 -5.048286e-07 -0.01763187 -0.06488770
+31  -6.10147902 -1.041351e-02 -7.002908e-05  0.02133278 -1.69495867
+41  -0.28987533  3.893573e-03 -4.666473e-05 -0.27180126  0.04439884
+51  -0.28987533  3.893573e-03 -4.666473e-05 -0.27180126  0.04439884
+61  -0.28987533  3.893573e-03 -4.666473e-05 -0.27180126  0.04439884
+71  -0.28987533  3.893573e-03 -4.666473e-05 -0.27180126  0.04439884
+81  -6.05900320 -1.011644e-02 -7.357605e-05 -0.04965962 -1.59963182
+91  -1.71338808  1.250705e-02 -2.674498e-05  1.21868456 -1.47261500
+101 -6.27430559  1.141518e-02 -5.679687e-05  0.30004293 -2.03671532
+111 -5.61156875 -4.155718e-03 -1.192545e-04 -0.86185235 -0.26993370
+121 -5.56890563 -2.621343e-03 -1.245112e-04 -0.94580955 -0.10740203
+              dsg
+1    0.0001604929
+11   0.0001604929
+21   0.0001604929
+31   0.0172817991
+41  -0.0006360167
+51  -0.0006360167
+61  -0.0006360167
+71  -0.0006360167
+81   0.0170281873
+91  -0.0151130795
+101 -0.0178836167
+111  0.0081200691
+121  0.0051953348
+> 
+> predict(fit2, type='response')[xx]
+ [1] 704.30257 704.30257 704.30257 369.80767 369.80767 369.80767 369.80767
+ [8] 369.80767 202.56023 202.56023  35.31278  35.31278  35.31278
+> predict(fit2, type='link')[xx]
+ [1] 704.30257 704.30257 704.30257 369.80767 369.80767 369.80767 369.80767
+ [8] 369.80767 202.56023 202.56023  35.31278  35.31278  35.31278
+> predict(fit2, type='terms')[xx,]
+         1         11         21         31         41         51         61 
+ 374.63428  374.63428  374.63428   40.13939   40.13939   40.13939   40.13939 
+        71         81         91        101        111        121 
+  40.13939 -127.10806 -127.10806 -294.35550 -294.35550 -294.35550 
+> predict(fit2, type='quantile')[xx]
+ [1]  561.37687  561.37687  561.37687  226.88198  226.88198  226.88198
+ [7]  226.88198  226.88198   59.63453   59.63453 -107.61291 -107.61291
+[13] -107.61291
+> 
+> rm(fitig, fit1, fit2, xx)
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/bladder.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/bladder.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/bladder.R	(revision 2476)
@@ -0,0 +1,37 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Fit the models found in Wei et. al.
+#
+wfit <- coxph(Surv(stop, event) ~ (rx + size + number)* strata(enum) +
+		 cluster(id), bladder, method='breslow')
+wfit
+
+# Check the rx coefs versus Wei, et al, JASA 1989
+rx <- c(1,4,5,6)  # the treatment coefs above
+cmat <- diag(4); cmat[1,] <- 1;          #contrast matrix
+wfit$coef[rx] %*% cmat                   # the coefs in their paper (table 5)
+t(cmat) %*% wfit$var[rx,rx] %*% cmat  # var matrix (eqn 3.2)
+
+# Anderson-Gill fit
+fita <- coxph(Surv(start, stop, event) ~ rx + size + number + cluster(id),
+		  bladder2,  method='breslow')
+summary(fita)
+
+# Prentice fits.  Their model 1 a and b are the same
+fit1p  <- coxph(Surv(stop, event) ~ rx + size + number, bladder2,
+		subset=(enum==1), method='breslow')
+fit2pa <- coxph(Surv(stop, event) ~ rx + size + number, bladder2,
+		subset=(enum==2), method='breslow')
+fit2pb <- coxph(Surv(stop-start,  event) ~ rx + size + number, bladder2,
+		   subset=(enum==2), method='breslow')
+fit3pa <- coxph(Surv(stop, event) ~ rx + size + number, bladder2,
+		subset=(enum==3), method='breslow')
+ #and etc.
+fit1p
+fit2pa
+fit2pb
+fit3pa
+rm(rx, cmat, wfit, fita, fit1p, fit2pa, fit2pb, fit3pa)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testci2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testci2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testci2.Rout.save	(revision 2476)
@@ -0,0 +1,135 @@
+
+R Under development (unstable) (2016-02-15 r70179) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+> 
+> #
+> # Test the multi-state version of the CI curve
+> #
+> tdata <- data.frame(id=c(1,1,1,1, 2,2,2, 3,3, 4,4,4,4, 5, 6, 6),
++                     time1=c(0, 10,20,30, 0, 5, 15,  0, 20, 0, 6,18,34, 0, 0,15),
++                     time2=c(10,20,30,40, 5, 15,25, 20, 22, 6,18,34,50,10,15,20),
++                     status=c(1,1,1,1, 1,1,1, 1,0, 1,1,1,0,0,1,0),
++                     event= letters[c(1,2,3,4, 2,4,3, 2,2, 3,1,2,2,1, 1,1)],
++                     wt = c(2,2,2,2, 1,1,1, 3,3, 1,1,1,1, 2, 1,1),
++                     stringsAsFactors=TRUE)
+> tdata$stat2 <- factor(tdata$status * as.numeric(tdata$event),
++                       labels=c(" ", levels(tdata$event)))
+>          
+> fit <- survfit(Surv(time1, time2, stat2) ~1, id=id, weight=wt, tdata)
+> 
+> # The exact figures for testci2.
+> # The subject data of  id, weight, (transition time, transition)
+> 
+> #1: 2 (10, 0->a)  (20, a->b)  (30, b->c)  (40, c->d)  no data after 40=censored
+> #2: 1 ( 5, 0->b)  (15, b->d)  (25, d->c)  no data after 25 implies censored then
+> #3: 3 (20, 0->b)  (22, censor)
+> #4: 1 ( 6, 0->c)  (18, c->a)  (34, a->b)  (50, censor)
+> #5: 2 (10, censor)
+> #6: 1 (15, 0->a)  (20, censor)
+> 
+> # Each line below follows a subject through time as a (state, rdist weight) pair
+> #  using the redistribute to the right algorithm.
+> # RDR algorithm: at each censoring (or last fu) a subject's weight is put into
+> #  a "pool" for that state and their weight goes to zero. The pool is
+> #  dynamically shared between all members of the state proportional to their
+> #  original case weight, when someone leaves they take their portion of the
+> #  pool to the new state.
+> 
+> # Table of case weights and state, blank is weight of zero
+> #    time   5    6   10   15    18    20     25    30    34    40    50
+> # -----------------------------------------------------------------------
+> # id, wt
+> #  1, 2     -    -    a    a      a    b      b     c     c     d    
+> #  2, 1     b    b    b    d      d    d      c    
+> #  3, 3     -    -    -    -      -    b      
+> #  4, 1     -    c    c    c      a    a      a     a     b     b     b
+> #  5, 2     -    -    -
+> #  6, 1     -    -    -    a      a    a      
+> 
+> # Pool weights
+> #         10  10+   15    18    20    20+   22+   25   25+   30   34    40   40+
+> #    -     0   2    3/2  3/2    0 
+> #    a     0   0    1/2  1/2    1/4   5/4   5/4   5/4  5/4   5/4
+> #    b     0   0     0    0     7/4   7/4  19/4  19/4 19/4        5/4   5/4  5/4
+> #    c     0   0     0    0     0                      1    23/4 23/4
+> #    d     0   0     0    0     0                                      23/4 31/4
+> 
+> # fit$prev for time i and state j = total weight at that time/state in the
+> #  above table (original weight + redistrib), divided by 10.
+> 
+> # time            5  6   10    15    18    20     25    30    34    40    50
+> truth <- matrix(c(0, 0,   2,    3,    4,    2,     1,    1,    0,    0,    0,
++                   1, 1,   1,    0,    0,    5,     2,    0,    1,    1,    1,
++                   0, 1,   1,    1,    0,    0,     1,    2,    2,    0,    0,
++                   0, 0,   0,    1,    1,    1,     0,    0,    0,    2,    0) +
++                 c(0, 0,   0,   .5,   .5,   1/4,   5/4,  5/4,   0,    0,    0,
++                   0, 0,   0,    0,    0,   7/4,  19/4,   0,   5/4,   5/4,  5/4,
++                   0, 0,   0,    0,    0,    0,     0,  23/4, 23/4,   0,    0, 
++                   0, 0,   0,    0,    0,    0,     0,    0,    0,  23/4,  31/4),
++                 ncol=4)
+> truth <- truth[c(1:6, 6:11),]/10  #the explicit censor at 22
+> 
+> #dimnames(truth) <- list(c(5, 6, 10, 15, 18, 20, 25, 30, 34, 40, 50),
+> #                        c('a', 'b', 'c', 'd')
+> all.equal(truth, fit$prev[,1:4])
+[1] TRUE
+> 
+> # Test the dfbetas
+> dfbeta <- array(0., dim=c(6, nrow(fit$prev), ncol(fit$prev)))
+> eps <- 1e-6
+> for (i in 1:6) {
++     twt <- tdata$wt
++     twt[tdata$id ==i] <- twt[tdata$id==i] + eps
++     tfit <- survfit(Surv(time1, time2, stat2) ~ cluster(id), tdata,
++                     weight=twt)
++     dfbeta[i,,] <- (tfit$prev - fit$prev)/eps
++ }
+> twt <- tdata$wt[match(1:6, tdata$id)]
+> temp <- (twt*dfbeta) * dfbeta
+> tstd <- sqrt(apply(temp, 2:3, sum))
+> all.equal(tstd, fit$std.err, tolerance=eps)
+[1] TRUE
+> 
+> if (FALSE) {
++     # a plot of the data that helped during creation of the example
++     plot(c(0,50), c(1,6), type='n', xlab='time', ylab='subject')
++     with(tdata, segments(time1, id, time2, id))
++     with(tdata, text(time2, id, as.numeric(stat2)-1, cex=1.5, col=2))
++ }
+> 
+> if (FALSE) {
++     # The following lines test out 4 error messages in the routine
++     #
++     # Gap in follow-up time, id 2
++     survfit(Surv(c(0,5,9,0,5,0), c(5,9,12, 4, 6, 3), factor(c(0,0,1,1,0,2))) ~1,
++             id=c(1,1,1,2,2,3))
++     # mismatched weights
++     survfit(Surv(c(0,5,9,0,5,0), c(5,9,12, 5, 6, 3), factor(c(0,0,1,1,0,2))) ~1,
++             id=c(1,1,1,2,2,3), weights=c(1,1,2,1,1,4))
++     # in two groups at once
++      survfit(Surv(c(0,5,9,0,5,0), c(5,9,12, 5, 6, 3), factor(c(0,0,1,1,0,2))) ~
++                c(1,1,2,1,1,2), id=c(1,1,1,2,2,3)) 
++     # state change that isn't a state change (went from 1 to 1)
++         survfit(Surv(c(0,5,9,0,5,0), c(5,9,12, 5, 6, 3), factor(c(0,1,1,1,0,2))) ~1,
++             id=c(1,1,1,2,2,3))
++ }
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  1.208   0.032   1.236 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/concordance.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/concordance.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/concordance.Rout.save	(revision 2476)
@@ -0,0 +1,153 @@
+
+R version 2.12.2 (2011-02-25)
+Copyright (C) 2011 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> library(survival)
+Loading required package: splines
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> 
+> #
+> # Simple tests of concordance.  These numbers were derived in multiple
+> #   codes.
+> #
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> grank <- function(x, time, grp, wt) 
++     unlist(tapply(x, grp, rank))
+> grank2 <- function(x, time, grp, wt) {  #for case weights
++     if (length(wt)==0) wt <- rep(1, length(x))
++     z <- double(length(x))
++     for (i in unique(grp)) {
++         indx <- which(grp==i)
++         temp <- tapply(wt[indx], x[indx], sum)
++         temp <- temp/2  + c(0, cumsum(temp)[-length(temp)])
++         z[indx] <- temp[match(x[indx], names(temp))]
++     }
++     z
++ }
+> 
+> 
+> tdata <- aml[aml$x=='Maintained',]
+> tdata$y <- c(1,6,2,7,3,7,3,8,4,4,5)
+> tdata$wt <- c(1,2,3,2,1,2,3,4,3,2,1)
+> fit <- survConcordance(Surv(time, status) ~y, tdata)
+> aeq(fit$stats[1:4], c(14,24,2,0))
+[1] TRUE
+> cfit <- coxph(Surv(time, status) ~ tt(y), tdata, tt=grank, method='breslow',
++               iter=0, x=T)
+> cdt <- coxph.detail(cfit)
+> aeq(4*sum(cdt$imat),fit$stats[5]^2) 
+[1] TRUE
+> aeq(2*sum(cdt$score), diff(fit$stats[2:1]))
+[1] TRUE
+> 
+> 
+> # Lots of ties
+> tempx <- Surv(c(1,2,2,2,3,4,4,4,5,2), c(1,0,1,0,1,0,1,1,0,1))
+> tempy <- c(5,5,4,4,3,3,7,6,5,4)
+> fit2 <- survConcordance(tempx ~ tempy)
+> aeq(fit2$stats[1:4], c(13,13,5,2))
+[1] TRUE
+> cfit2 <-  coxph(tempx ~ tt(tempy), tt=grank, method='breslow', iter=0)
+> aeq(4/cfit2$var, fit2$stats[5]^2)
+[1] TRUE
+> 
+> # Bigger data
+> fit3 <- survConcordance(Surv(time, status) ~ age, lung)
+> aeq(fit3$stats[1:4], c(10717, 8706, 591, 28))
+[1] TRUE
+> cfit3 <- coxph(Surv(time, status) ~ tt(age), lung, 
++                iter=0, method='breslow', tt=grank, x=T)
+> cdt <- coxph.detail(cfit3)
+> aeq(4*sum(cdt$imat),fit3$stats[5]^2) 
+[1] TRUE
+> aeq(2*sum(cdt$score), diff(fit3$stats[2:1]))
+[1] TRUE
+> 
+> 
+> # More ties
+> fit4 <- survConcordance(Surv(time, status) ~ ph.ecog, lung)
+> aeq(fit4$stats[1:4], c(8392, 4258, 7137, 28))
+[1] TRUE
+> cfit4 <- coxph(Surv(time, status) ~ tt(ph.ecog), lung, 
++                iter=0, method='breslow', tt=grank)
+> aeq(4/cfit4$var, fit4$stats[5]^2)
+[1] TRUE
+> 
+> # Case weights
+> fit5 <- survConcordance(Surv(time, status) ~ y, tdata, weight=wt)
+> fit6 <- survConcordance(Surv(time, status) ~y, tdata[rep(1:11,tdata$wt),])
+> aeq(fit5$stats[1:4], c(70, 91, 7, 0))  # checked by hand
+[1] TRUE
+> aeq(fit5$stats[1:3], fit6$stats[1:3])  #spurious "tied on time" value, ignore
+[1] TRUE
+> aeq(fit5$std, fit6$std)
+[1] TRUE
+> cfit5 <- coxph(Surv(time, status) ~ tt(y), tdata, weight=wt, 
++                iter=0, method='breslow', tt=grank2)
+> cfit6 <- coxph(Surv(time, status) ~ tt(y), tdata[rep(1:11,tdata$wt),], 
++                iter=0, method='breslow', tt=grank)
+> aeq(4/cfit6$var, fit6$stats[5]^2)
+[1] TRUE
+> aeq(cfit5$var, cfit6$var)
+[1] TRUE
+> 
+> # Start, stop simplest cases
+> fit7 <- survConcordance(Surv(rep(0,11), time, status) ~ y, tdata)
+> aeq(fit7$stats, fit$stats)
+[1] TRUE
+> aeq(fit7$std.err, fit$std.err)
+[1] TRUE
+> fit7 <- survConcordance(Surv(rep(0,11), time, status) ~ y, tdata, weight=wt)
+> aeq(fit5$stats, fit7$stats)
+[1] TRUE
+> 
+> # Multiple intervals for some, but same risk sets as tdata
+> tdata2 <- data.frame(time1=c(0,3, 5,  6,7,   0,  4,17,  7,  0,16,  2,  0, 
++                              0,9, 5),
++                      time2=c(3,9, 13, 7,13, 18, 17,23, 28, 16,31, 34, 45, 
++                              9,48, 60),
++                      status=c(0,1, 1, 0,0,  1,  0,1, 0, 0,1, 1, 0, 0,1, 0),
++                      y = c(1,1, 6, 2,2, 7, 3,3, 7, 3,3, 8, 4, 4,4, 5),
++                      wt= c(1,1, 2, 3,3, 2, 1,1, 2, 3,3, 4, 3, 2,2, 1))
+> fit8 <- survConcordance(Surv(time1, time2, status) ~y, tdata2, weight=wt)
+> aeq(fit5$stats, fit8$stats)
+[1] TRUE
+> aeq(fit5$std.err, fit8$std.err)
+[1] TRUE
+> cfit8 <- coxph(Surv(time1, time2, status) ~ tt(y), tdata2, weight=wt, 
++                iter=0, method='breslow', tt=grank2)
+> aeq(4/cfit8$var, fit8$stats[5]^2)
+[1] TRUE
+> aeq(fit8$stats[5]/(2*sum(fit8$stats[1:3])), fit8$std.err)
+[1] TRUE
+> 
+> # Stratified
+> tdata3 <- data.frame(time1=c(tdata2$time1, rep(0, nrow(lung))),
++                      time2=c(tdata2$time2, lung$time),
++                      status = c(tdata2$status, lung$status -1),
++                      x = c(tdata2$y, lung$ph.ecog),
++                      wt= c(tdata2$wt, rep(1, nrow(lung))),
++                      grp=rep(1:2, c(nrow(tdata2), nrow(lung))))
+> fit9 <- survConcordance(Surv(time1, time2, status) ~x + strata(grp),
++                         data=tdata3, weight=wt)
+> aeq(fit9$stats[1,], fit5$stats)
+[1] TRUE
+> aeq(fit9$stats[2,], fit4$stats)
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/strata2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/strata2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/strata2.Rout.save	(revision 2476)
@@ -0,0 +1,52 @@
+
+R version 2.15.2 (2012-10-26) -- "Trick or Treat"
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> # 
+> # New tests 4/2010 to validate strata by covariate interactions
+> #
+> library(survival)
+Loading required package: splines
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> 
+> tdata <- lung
+> tdata$sex <- lung$sex +3
+> 
+> # Both of these should produce warning messages about singular X, since there
+> #  are ph.ecog=3 subjects in only 1 of the strata. 
+> # Does not affect the test 
+> fit1 <- coxph(Surv(time, status) ~ age + sex:strata(ph.ecog), lung)
+Warning message:
+In coxph(Surv(time, status) ~ age + sex:strata(ph.ecog), lung) :
+  X matrix deemed to be singular; variable 5
+> fit2 <- coxph(Surv(time, status) ~ age + sex:strata(ph.ecog), tdata)
+Warning message:
+In coxph(Surv(time, status) ~ age + sex:strata(ph.ecog), tdata) :
+  X matrix deemed to be singular; variable 5
+> 
+> aeq(fit1$coef, fit2$coef)
+[1] TRUE
+> aeq(fit1$var, fit2$var)
+[1] TRUE
+> aeq(predict(fit1), predict(fit2))
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  0.200   0.028   0.224 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/nested.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/nested.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/nested.Rout.save	(revision 2476)
@@ -0,0 +1,40 @@
+
+R version 2.15.2 (2012-10-26) -- "Trick or Treat"
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+Loading required package: splines
+> #
+> # A test of nesting.  It makes sure the model.frame is built correctly
+> #
+> tfun <- function(fit, mydata) {
++     survfit(fit, newdata=mydata)
++     }
+> 
+> myfit <- coxph(Surv(time, status) ~ age + factor(sex), lung)
+> 
+> temp1 <- tfun(myfit, lung[1:5,])
+> temp2 <- survfit(myfit, lung[1:5,])
+> indx <- match('call', names(temp1))  #the call components won't match
+> 
+> all.equal(unclass(temp1)[-indx], unclass(temp2)[-indx])
+[1] TRUE
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.196   0.032   0.225 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ties.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ties.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.fluid
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.fluid	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.fluid	(revision 2476)
@@ -0,0 +1,41 @@
+   5.79 26kV 
+1579.52 26kV 
+2323.70 26kV    
+   7.74 30kV 
+  17.05 30kV   
+  20.46 30kV 
+  21.02 30kV   
+  22.66 30kV 
+  43.40 30kV  
+  47.30 30kV 
+ 139.07 30kV  
+ 144.12 30kV 
+ 175.88 30kV  
+ 194.90 30kV 
+   0.19 34kV  
+   0.78 34kV 
+   0.96 34kV   
+   1.31 34kV 
+   2.78 34kV  
+   3.16 34kV 
+   4.15 34kV   
+   4.67 34kV 
+   4.85 34kV  
+   6.50 34kV 
+   7.35 34kV   
+   8.01 34kV 
+   8.27 34kV  
+  12.06 34kV 
+  31.75 34kV  
+  32.52 34kV 
+  33.91 34kV  
+  36.71 34kV 
+  72.89 34kV  
+   0.09 38kV 
+   0.39 38kV   
+   0.47 38kV 
+   0.73 38kV  
+   0.74 38kV 
+   1.13 38kV   
+   1.40 38kV 
+   2.38 38kV              
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.capacitor
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.capacitor	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.capacitor	(revision 2476)
@@ -0,0 +1,125 @@
+  1 300.00     0      20
+  2 300.00     0      20
+  3 300.00     0      20
+  4 300.00     0      20
+  5 300.00     0      20
+  6 300.00     0      20
+  7 300.00     0      20
+  8 300.00     0      20
+  9 300.00     0      20
+ 10 300.00     0      20
+ 11 300.00     0      20
+ 12 300.00     0      20
+ 13 300.00     0      20
+ 14 300.00     0      20
+ 15 300.00     0      20
+ 16 300.00     0      20
+ 17 300.00     0      20
+ 18 300.00     0      20
+ 19 300.00     0      20
+ 20 300.00     0      20
+ 21 300.00     0      20
+ 22 300.00     0      20
+ 23 300.00     0      20
+ 24 300.00     0      20
+ 25 300.00     0      20
+ 26 277.33     1      26
+ 27 187.80     1      26
+ 28 214.28     1      26
+ 29  12.95     1      26
+ 30  63.10     1      26
+ 31 271.73     1      26
+ 32 201.28     1      26
+ 33 179.02     1      26
+ 34 139.37     1      26
+ 35 136.33     1      26
+ 36  28.41     1      26
+ 37 300.00     0      26
+ 38 300.00     0      26
+ 39 300.00     0      26
+ 40 300.00     0      26
+ 41 300.00     0      26
+ 42 300.00     0      26
+ 43 300.00     0      26
+ 44 300.00     0      26
+ 45 300.00     0      26
+ 46 300.00     0      26
+ 47 300.00     0      26
+ 48 300.00     0      26
+ 49 300.00     0      26
+ 50 300.00     0      26
+ 51 300.00     0      26
+ 52 300.00     0      26
+ 53 300.00     0      26
+ 54 300.00     0      26
+ 55 300.00     0      26
+ 56 300.00     0      26
+ 57 300.00     0      26
+ 58 300.00     0      26
+ 59 300.00     0      26
+ 60 300.00     0      26
+ 61 300.00     0      26
+ 62 300.00     0      26
+ 63 300.00     0      26
+ 64 300.00     0      26
+ 65 300.00     0      26
+ 66 300.00     0      26
+ 67 300.00     0      26
+ 68 300.00     0      26
+ 69 300.00     0      26
+ 70 300.00     0      26
+ 71 300.00     0      26
+ 72 300.00     0      26
+ 73 300.00     0      26
+ 74 300.00     0      26
+ 75 300.00     0      26
+ 76  45.85     1      29
+ 77 220.70     1      29
+ 78  73.87     1      29
+ 79  91.81     1      29
+ 80  40.69     1      29
+ 81 108.62     1      29
+ 82  55.73     1      29
+ 83  10.21     1      29
+ 84 102.64     1      29
+ 85 257.88     1      29
+ 86  50.41     1      29
+ 87 164.20     1      29
+ 88 112.15     1      29
+ 89 300.00     0      29
+ 90 300.00     0      29
+ 91 300.00     0      29
+ 92 300.00     0      29
+ 93 300.00     0      29
+ 94 300.00     0      29
+ 95 300.00     0      29
+ 96 118.37     1      32
+ 97  17.19     1      32
+ 98  11.51     1      32
+ 99   4.65     1      32
+100   1.95     1      32
+101 149.20     1      32
+102  65.79     1      32
+103   5.95     1      32
+104   5.72     1      32
+105  10.61     1      32
+106   0.68     1      32
+107   3.96     1      32
+108   9.56     1      32
+109 172.05     1      32
+110   2.81     1      32
+111   2.07     1      32
+112  19.98     1      32
+113  84.63     1      32
+114 132.52     1      32
+115 156.37     1      32
+116  11.81     1      32
+117  20.86     1      32
+118  66.33     1      32
+119  21.64     1      32
+120  65.90     1      32
+121  14.64     1      32
+122   6.26     1      32
+123  94.08     1      32
+124   5.45     1      32
+125  15.16     1      32
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/aareg.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/aareg.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/aareg.R	(revision 2476)
@@ -0,0 +1,210 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Test aareg, for some simple data where the answers can be computed
+#  in closed form
+#
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+   
+test1 <- data.frame(time=  c(4, 3,1,1,2,2,3),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0),
+		    wt=    c(1, 1:6))
+
+tfit  <- aareg(Surv(time, status) ~ x, test1)
+aeq(tfit$times, c(1,2,2))
+aeq(tfit$nrisk, c(6,4,4))
+aeq(tfit$coefficient, matrix(c(0,0,1/3, 1/3, 1, -1/3), ncol=2))
+aeq(tfit$tweight, matrix(c(3,3,3, 3/2, 3/4, 3/4), ncol=2))
+aeq(tfit$test.statistic, c(1,1))
+aeq(tfit$test.var,       c(1, -1/4, -1/4, 1/4 + 9/16 + 1/16))
+
+tfit <- aareg(Surv(time, status) ~ x, test1, test='nrisk')
+aeq(tfit$tweight, matrix(c(3,3,3, 3/2, 3/4, 3/4), ncol=2)) #should be as before
+aeq(tfit$test.statistic, c(4/3, 6/3+ 4 - 4/3))
+aeq(tfit$test.var,       c(16/9, -16/9, -16/9, 36/9 + 16 + 16/9))
+
+# In the 1-variable case, this is the same as the default Aalen weight
+tfit <- aareg(Surv(time, status) ~ x, test1, test='variance')
+aeq(tfit$test.statistic, c(1,1))
+aeq(tfit$test.var,       c(1, -1/4, -1/4, 1/4 + 9/16 + 1/16))
+
+#
+# Repeat the above, with case weights
+#
+tfit <- aareg(Surv(time, status) ~x, test1, weights=wt)  
+aeq(tfit$times, c(1,2,2))
+aeq(tfit$nrisk, c(21,16,16))
+aeq(tfit$coefficient, matrix(c(0,0,5/12, 2/9, 1, -5/12), ncol=2))
+aeq(tfit$tweight, matrix(c(12,12,12, 36/7, 3,3), ncol=2))
+aeq(tfit$test.statistic, c(5, 72/63 + 3 - 15/12))
+aeq(tfit$test.var,       c(25, -25/4, -25/4, (72/63)^2 + 9 + (5/4)^2))
+
+tfit <- aareg(Surv(time, status) ~x, test1, weights=wt, test='nrisk')
+aeq(tfit$test.statistic, c(20/3,  42/9 + 16 - 16*5/12))
+aeq(tfit$test.var,       c(400/9, -400/9, -400/9, 
+			    (42/9)^2 + 16^2 + (16*5/12)^2))
+
+#
+# Make a test data set with no NAs, in sorted order, no ties,
+#   15 observations
+tdata <- lung[15:29, c('time', 'status', 'age', 'sex', 'ph.ecog')]
+tdata$status <- tdata$status -1
+tdata <- tdata[order(tdata$time, tdata$status),]
+row.names(tdata) <- 1:15
+tdata$status[8] <- 0      #for some variety
+
+afit <- aareg(Surv(time, status) ~ age + sex + ph.ecog, tdata, nmin=6)
+#
+# Now, do it "by hand"
+cfit <- coxph(Surv(time, status) ~ age + sex + ph.ecog, tdata, iter=0,
+               method='breslow')
+dt1   <- coxph.detail(cfit)
+sch1  <- resid(cfit, type='schoen')
+
+# First estimate of Aalen: from the Cox computations, first 9
+#  The first and last cols of the ninth are somewhat unstable (approx =0)
+mine <- rbind(solve(dt1$imat[,,1], sch1[1,]),
+              solve(dt1$imat[,,2], sch1[2,]),
+              solve(dt1$imat[,,3], sch1[3,]),
+              solve(dt1$imat[,,4], sch1[4,]),
+              solve(dt1$imat[,,5], sch1[5,]),
+              solve(dt1$imat[,,6], sch1[6,]),
+              solve(dt1$imat[,,7], sch1[7,]),
+              solve(dt1$imat[,,8], sch1[8,]),
+              solve(dt1$imat[,,9], sch1[9,])) 
+mine <- diag(1/dt1$nrisk[1:9]) %*% mine
+
+aeq(mine, afit$coef[1:9, -1])
+
+rm(tfit, afit, mine, dt1, cfit, sch1)
+
+#
+# Check out the dfbeta matrix from aareg
+#   Note that it is kept internally in time order, not data set order
+# Those who want residuals should use the resid function!
+
+#
+# First, the simple test case where I know the anwers
+#
+afit <- aareg(Surv(time, status) ~ x, test1, dfbeta=T)
+temp <- c(rep(0,6),             #intercepts at time 1
+          c(2,-1,-1,0,0,0)/9,   #alpha at time 1
+          c(0,0,0,2, -1, -1)/9, #intercepts at time 2
+          c(0,0,0,-2,1,1)/9)    #alpha at time 2
+aeq(afit$dfbeta, temp)
+
+#
+#Now a multivariate data set
+#
+afit <- aareg(Surv(time, status) ~ age + sex + ph.ecog, lung, dfbeta=T)
+
+ord <- order(lung$time, -lung$status)
+cfit <- coxph(Surv(time, status) ~ age + sex + ph.ecog, lung[ord,],
+	        method='breslow', iter=0, x=T)
+cdt  <- coxph.detail(cfit, riskmat=T)
+
+# an arbitrary list of times
+acoef <- rowsum(afit$coef, afit$times) #per death time coefs
+indx <- match(cdt$time, afit$times)
+for (i in c(2,5,27,54,101, 135)) {
+    lwho <- (cdt$riskmat[,i]==1)
+    lmx <- cfit$x[lwho,]
+    lmy <- 1*( cfit$y[lwho,2]==1 & cfit$y[lwho,1] == cdt$time[i])
+    fit <- lm(lmy~ lmx)
+    cat("i=", i, "coef=", aeq(fit$coef, acoef[i,]))
+
+    rr <- diag(resid(fit))
+    zz <- cbind(1,lmx)
+    zzinv <- solve(t(zz) %*% zz)
+    cat(" twt=", aeq(1/(diag(zzinv)), afit$tweight[indx[i],]))
+
+    df <- t(zzinv %*% t(zz)  %*% rr)
+    cat(" dfbeta=", aeq(df, afit$dfbeta[lwho,,i]), "\n")
+    }
+	  
+rm(afit, cfit, cdt, lwho, lmx, lmy, fit, rr, zz, df)
+
+
+# Repeat it with case weights
+ww <- rep(1:5, length=nrow(lung))/ 3.0
+afit <- aareg(Surv(time, status) ~ age + sex + ph.ecog, lung, dfbeta=T,
+	      weights=ww)
+cfit <- coxph(Surv(time, status) ~ age + sex + ph.ecog, lung[ord,],
+	        method='breslow', iter=0, x=T, weight=ww[ord])
+cdt  <- coxph.detail(cfit, riskmat=T)
+
+acoef <- rowsum(afit$coef, afit$times) #per death time coefs
+for (i in c(2,5,27,54,101, 135)) {
+    who <- (cdt$riskmat[,i]==1)
+    x <- cfit$x[who,]
+    y <- 1*( cfit$y[who,2]==1 & cfit$y[who,1] == cdt$time[i])
+    w <- cfit$weight[who]
+    fit <- lm(y~x, weights=w)
+    cat("i=", i, "coef=", aeq(fit$coef, acoef[i,]))
+
+    rr <- diag(resid(fit))
+    zz <- cbind(1,x)
+    zzinv <- solve(t(zz)%*% (w*zz))
+    cat(" twt=", aeq(1/(diag(zzinv)), afit$tweight[indx[i],]))
+ 
+    df <- t(zzinv %*% t(zz) %*% (w*rr))
+    cat(" dfbeta=", aeq(df, afit$dfbeta[who,,i]), "\n")
+    }
+	  
+rm(afit, cfit, cdt, who, x, y, fit, rr, zz, df)
+rm(ord, acoef)
+    
+#
+# Check that the test statistic computed within aareg and
+#  the one recomputed within summary.aareg are the same.
+# Of course, they could both be wrong, but at least they'll agree!
+# If the maxtime argument is used in summary, it recomputes the test,
+#  even if we know that it wouldn't have had to.
+#
+# Because the 1-variable and >1 variable case have different code, test
+#  them both.
+#
+afit <- aareg(Surv(time, status) ~ age, lung, dfbeta=T)
+asum <- summary(afit, maxtime=max(afit$times))
+aeq(afit$test.stat, asum$test.stat)
+aeq(afit$test.var,  asum$test.var)
+aeq(afit$test.var2, asum$test.var2)
+
+print(afit)
+
+afit <- aareg(Surv(time, status) ~ age, lung, dfbeta=T, test='nrisk')
+asum <- summary(afit, maxtime=max(afit$times))
+aeq(afit$test.stat, asum$test.stat)
+aeq(afit$test.var,  asum$test.var)
+aeq(afit$test.var2, asum$test.var2)
+
+summary(afit)
+
+#
+# Mulitvariate
+#
+afit <- aareg(Surv(time, status) ~ age + sex + ph.karno + pat.karno, lung,
+	      dfbeta=T)
+asum <- summary(afit, maxtime=max(afit$times))
+aeq(afit$test.stat, asum$test.stat)
+aeq(afit$test.var,  asum$test.var)
+aeq(afit$test.var2, asum$test.var2)
+
+print(afit)
+
+afit <- aareg(Surv(time, status) ~ age + sex + ph.karno + pat.karno, lung,
+	      dfbeta=T, test='nrisk')
+asum <- summary(afit, maxtime=max(afit$times))
+aeq(afit$test.stat, asum$test.stat)
+aeq(afit$test.var,  asum$test.var)
+aeq(afit$test.var2, asum$test.var2)
+
+summary(afit)
+
+# Weights play no role in the final computation of the test statistic, given
+#  the coefficient matrix, nrisk, and dfbeta as inputs.  (Weights do
+#  change the inputs).  So there is no need to reprise the above with
+#  case weights.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.rat2
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.rat2	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.rat2	(revision 2476)
@@ -0,0 +1,253 @@
+1 1 1 60 182 1
+2 1 1 60 182 0
+3 1 1 60 63 1
+3 1 2 63 68 1
+3 1 3 68 182 0
+4 1 1 60 152 1
+4 1 2 152 182 0
+5 1 1 60 130 1
+5 1 2 130 134 1
+5 1 3 134 145 1
+6 1 1 60 98 1
+6 1 2 98 152 1
+6 1 1 60 98 1
+6 1 2 98 152 1
+6 1 3 152 182 1
+7 1 1 60 88 1
+7 1 2 88 95 1
+7 1 3 95 105 1
+7 1 4 105 130 1
+7 1 5 130 137 1
+7 1 6 137 167 1
+7 1 7 167 182 0
+8 1 1 60 152 1
+8 1 2 152 182 0
+9 1 1 60 81 1
+9 1 2 81 182 0
+10 1 1 60 71 1
+10 1 2 71 84 1
+10 1 3 84 126 1
+10 1 4 126 134 1
+10 1 5 134 152 1
+10 1 6 152 182 0
+11 1 1 60 116 1
+11 1 2 116 130 1
+11 1 3 130 182 0
+12 1 1 60 91 1
+12 1 2 91 182 0
+13 1 1 60 63 1
+13 1 2 63 68 1
+13 1 3 68 84 1
+13 1 4 84 95 1
+13 1 5 95 152 1
+13 1 6 152 182 0
+14 1 1 60 105 1
+14 1 2 103 152 1
+14 1 3 152 182 0
+15 1 1 60 63 1
+15 1 2 63 102 1
+15 1 3 102 152 1
+15 1 4 152 182 0
+16 1 1 60 63 1
+16 1 2 63 77 1
+16 1 3 77 112 1
+16 1 4 112 140 1
+16 1 5 140 182 0
+17 1 1 60 77 1
+17 1 2 77 119 1
+17 1 3 119 152 1
+17 1 4 152 161 1
+17 1 5 161 167 1
+17 1 6 167 182 0
+18 1 1 60 105 1
+18 1 2 105 112 1
+18 1 3 112 145 1
+18 1 4 145 161 1
+18 1 5 161 182 1
+19 1 1 60 152 1
+19 1 2 152 182 1
+20 1 1 60 81 1
+20 1 2 81 95 1
+20 1 3 95 182 0
+21 1 1 60 84 1
+21 1 2 84 91 1
+21 1 3 91 102 1
+21 1 4 102 108 1
+21 1 5 108 130 1
+21 1 6 130 134 1
+21 1 7 134 182 0
+22 1 1 60 182 0
+23 1 1 60 91 1
+23 1 2 91 182 0
+24 0 1 60 63 1
+24 0 2 63 102 1
+24 0 3 102 119 1
+24 0 4 119 161 1
+24 0 5 161 161 1
+24 0 6 161 172 1
+24 0 7 172 179 1
+24 0 8 179 182 0
+25 0 1 60 88 1
+25 0 2 88 91 1
+25 0 3 91 95 1
+25 0 4 95 105 1
+25 0 5 105 112 1
+25 0 6 112 119 1
+25 0 7 119 119 1
+25 0 8 119 137 1
+25 0 9 137 145 1
+25 0 10 145 167 1
+25 0 11 167 172 1
+25 0 12 172 182 0
+26 0 1 60 91 1
+26 0 2 91 98 1
+26 0 3 98 108 1
+26 0 4 108 112 1
+26 0 5 112 134 1
+26 0 6 134 137 1
+26 0 7 137 161 1
+26 0 8 161 161 1
+26 0 9 161 179 1
+26 0 10 179 182 0
+27 0 1 60 71 1
+27 0 2 71 174 1
+27 0 2 174 182 0
+28 0 1 60 95 1
+28 0 2 95 105 1
+28 0 3 105 134 1
+28 0 4 134 137 1
+28 0 5 137 140 1
+28 0 6 140 145 1
+28 0 7 145 150 1
+28 0 8 150 150 1
+28 0 9 150 182 0
+29 0 1 60 66 1
+29 0 2 66 68 1
+29 0 3 68 130 1
+29 0 4 130 137 1
+29 0 5 137 182 0
+30 0 1 60 77 1
+30 0 2 77 85 1
+30 0 3 85 112 1
+30 0 4 112 137 1
+30 0 5 137 161 1
+30 0 6 161 174 1
+30 0 7 174 182 0
+31 0 1 60 81 1
+31 0 2 81 84 1
+31 0 3 84 126 1
+31 0 4 125 134 1
+31 0 5 134 161 1
+31 0 6 161 161 1
+31 0 7 161 174 1
+31 0 8 174 182 0
+32 0 1 60 68 1
+32 0 2 68 77 1
+32 0 3 77 98 1
+32 0 4 98 102 1
+32 0 5 102 102 1
+32 0 6 102 102 1
+32 0 7 102 182 0
+33 0 1 60 112 1
+33 0 2 112 182 0
+34 0 1 60 88 1
+34 0 2 88 88 1
+34 0 3 88 91 1
+34 0 4 91 98 1
+34 0 5 98 112 1
+34 0 6 112 134 1
+34 0 7 134 134 1
+34 0 8 134 137 1
+34 0 9 137 137 1
+34 0 10 137 140 1
+34 0 11 140 140 1
+34 0 12 140 152 1
+34 0 13 152 152 1
+34 0 14 152 182 0
+35 0 1 60 77 1
+35 0 2 77 179 1
+35 0 3 179 182 0
+36 0 1 60 112 1
+36 0 2 112 182 0
+37 0 1 60 71 1
+37 0 2 71 71 1
+37 0 3 71 74 1
+37 0 4 74 77 1
+37 0 5 77 112 1
+37 0 6 112 116 1
+37 0 7 116 116 1
+37 0 8 116 140 1
+37 0 9 140 140 1
+37 0 10 140 167 1
+37 0 11 167 182 0
+38 0 1 60 77 1
+38 0 2 77 95 1
+38 0 3 95 126 1
+38 0 4 126 150 1
+38 0 5 150 182 0
+39 0 1 60 88 1
+39 0 2 88 126 1
+39 0 3 126 130 1
+39 0 4 130 130 1
+39 0 5 130 134 1
+39 0 6 134 182 0
+40 0 1 60 63 1
+40 0 2 63 74 1
+40 0 3 74 84 1
+40 0 4 84 84 1
+40 0 5 84 88 1
+40 0 6 88 91 1
+40 0 7 91 95 1
+40 0 8 95 108 1
+40 0 9 108 134 1
+40 0 10 134 137 1
+40 0 11 137 179 1
+40 0 12 179 182 0
+41 0 1 60 81 1
+41 0 2 81 88 1
+41 0 3 88 105 1
+41 0 4 105 116 1
+41 0 5 116 123 1
+41 0 6 123 140 1
+41 0 7 140 145 1
+41 0 8 145 152 1
+41 0 9 152 161 1
+41 0 10 161 161 1
+41 0 11 161 179 1
+41 0 12 179 182 0
+42 0 1 60 88 1
+42 0 2 88 95 1
+42 0 3 95 112 1
+42 0 4 112 119 1
+42 0 5 119 126 1
+42 0 6 126 126 1
+42 0 7 126 150 1
+42 0 8 150 157 1
+42 0 9 157 179 1
+42 0 10 179 182 0
+43 0 1 60 68 1
+43 0 2 68 68 1
+43 0 3 68 84 1
+43 0 4 84 102 1
+43 0 5 102 105 1
+43 0 6 105 119 1
+43 0 7 119 123 1
+43 0 8 123 123 1
+43 0 9 123 137 1
+43 0 10 137 161 1
+43 0 11 161 179 1
+43 0 12 179 182 0
+44 0 1 60 140 1
+44 0 2 140 182 0
+45 0 1 60 152 1
+45 0 2 152 182 1
+45 0 3 182 182 1
+46 0 1 60 81 1
+46 0 2 81 182 0
+47 0 1 60 63 1
+47 0 2 63 88 1
+47 0 3 88 134 1
+47 0 4 134 182 0
+48 0 1 60 84 1
+48 0 2 84 134 1
+48 0 3 134 182 1
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv4.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv4.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv4.Rout.save	(revision 2476)
@@ -0,0 +1,76 @@
+
+R version 3.0.1 (2013-05-16) -- "Good Sport"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+Loading required package: splines
+> 
+> # Strata by covariate interactions, a case pointed out in early 2011
+> #  by Frank Harrell, which as it turns out had never been computed
+> #  correctly by any version of the package.  Which shows how often this
+> #  case arises in practice.
+> #
+> aeq <- function(x, y, ...) all.equal(as.vector(x), as.vector(y))
+> fit1 <- coxph(Surv(time, status) ~ wt.loss + age*strata(sex) + strata(ph.ecog),
++               data=lung)
+> tdata <- data.frame(wt.loss=c(10,5,0,10, 15,20,25),
++                     age    =c(50,60,50,60,70,40,21),
++                     sex    =c(1,1,2,2,1,1,1),
++                     ph.ecog=c(0,0,1,1,2,2,2))
+> surv1 <- survfit(fit1, newdata=tdata)
+> 
+> fit2 <- coxph(Surv(time, status) ~ wt.loss + age + I(age*0), data=lung, 
++               init=fit1$coef, iter=0, subset=(sex==1 & ph.ecog==0))
+> fit2$var <- fit1$var
+> 
+> surv2 <- survfit(fit2, newdata=list(wt.loss=c(10,5), age=c(50,60)))
+> s1 <- surv1[1:2]
+> aeq(s1$surv, surv2$surv) #first a vector, second a matrix
+[1] TRUE
+> aeq(s1$std.err, surv2$std.err)
+[1] TRUE
+> aeq(s1[1]$time, surv2$time)
+[1] TRUE
+> aeq(s1[1]$n.event, surv2$n.event)
+[1] TRUE
+> 
+> fit3 <- coxph(Surv(time, status) ~ wt.loss + age + I(age*1),
++               data=lung, init=fit1$coef, iter=0,
++               subset=(sex==2 & ph.ecog==1))
+> fit3$var <- fit1$var
+> surv3 <- survfit(fit3, newdata=list(wt.loss=c(0,10), age=c(50,60)))
+> aeq(surv1[3:4]$surv, surv3$surv)
+[1] TRUE
+> aeq(surv1[3:4]$std, surv3$std)
+[1] TRUE
+> 
+> fit4 <- coxph(Surv(time, status) ~ wt.loss + age + I(age*0),
++               data=lung, init=fit1$coef, iter=0,
++               subset=(sex==1 & ph.ecog==2))
+> fit4$var <- fit1$var
+> surv4 <- survfit(fit4, newdata=list(wt.loss=c(15,20,25), age=c(70,40,21)))
+> 
+> aeq(surv1[5:7]$surv, surv4$surv)
+[1] TRUE
+> aeq(surv1[5:7]$std.err, surv4$std.err)
+[1] TRUE
+> aeq(surv1[5]$n.risk, surv4$n.risk)
+[1] TRUE
+>              
+> 
+> proc.time()
+   user  system elapsed 
+  0.324   0.052   0.356 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survtest.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survtest.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survtest.Rout.save	(revision 2476)
@@ -0,0 +1,99 @@
+
+R version 2.11.1 (2010-05-31)
+Copyright (C) 2010 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Simple test of (start, stop] Kaplan-Meier curves, using the test2 data
+> #   set
+> #
+> test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0))
+> test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
++                     stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
++                     event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
++                     x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> fit1 <- survfit(Surv(start, stop, event) ~1, test2, type='fh2',
++                 error='tsiatis')
+> fit2 <- survfit(Surv(start, stop, event) ~x, test2, start.time=3,
++ 		type='fh2')
+> 
+> cfit1<- survfit(coxph(Surv(start, stop, event)~1, test2))
+> cfit2<- survfit(coxph(Surv(start, stop, event) ~ strata(x), test2, subset=-1))
+> 
+> deaths <- (fit1$n.event + fit1$n.censor)>0
+> aeq(fit1$time[deaths], cfit1$time)
+[1] TRUE
+> aeq(fit1$n.risk[deaths], cfit1$n.risk)
+[1] TRUE
+> aeq(fit1$n.event[deaths], cfit1$n.event)
+[1] TRUE
+> aeq(fit1$surv[deaths], cfit1$surv)
+[1] TRUE
+> aeq(fit1$std.err[deaths], cfit1$std.err)
+[1] TRUE
+> 
+> deaths <- (fit2$n.event + fit2$n.censor)>0
+> aeq(fit2$time[deaths], cfit2$time)
+[1] TRUE
+> aeq(fit2$n.risk[deaths], cfit2$n.risk)
+[1] TRUE
+> aeq(fit2$n.event[deaths], cfit2$n.event)
+[1] TRUE
+> aeq(fit2$surv[deaths], cfit2$surv)
+[1] TRUE
+> 
+> fit3 <- survfit(Surv(start, stop, event) ~1, test2) #Kaplan-Meier
+> aeq(fit3$n, 10)
+[1] TRUE
+> aeq(fit3$time, c(1:9,14,17))
+[1] TRUE
+> aeq(fit3$n.risk, c(0,2,3,3,4,5,4,4,5,2,1))
+[1] TRUE
+> aeq(fit3$n.event,c(0,1,1,0,0,1,1,1,2,0,0))
+[1] TRUE
+> aeq(fit3$surv[fit3$n.event>0], c(.5, 1/3, 4/15, 1/5, 3/20, 9/100))
+[1] TRUE
+> #
+> #  Verify that both surv AND n.risk are right between time points.
+> #
+> fit <- survfit(Surv(time, status) ~1, test1)
+> temp <- summary(fit, time=c(.5,1, 1.5, 6, 7.5, 8, 8.9, 9, 10), extend=TRUE)
+> 
+> aeq(temp$n.risk, c(6,6,4,4,2,2,1,1,0))
+[1] TRUE
+> aeq(temp$surv, c(1, fit$surv[c(1,1,2,2,3,3,4,4)]))
+[1] TRUE
+> aeq(temp$n.event, c(0,1,0,2,0,0,0,1,0))
+[1] TRUE
+> aeq(temp$std.err, c(0, (fit$surv*fit$std.err)[c(1,1,2,2,3,3,4,4)]))
+[1] TRUE
+> 
+> 
+> fit <- survfit(Surv(start, stop, event) ~1, test2)
+> temp <- summary(fit, times=c(.5, 1.5, 2.5, 3, 6.5, 14.5, 16.5))
+> aeq(temp$surv, c(1, fit$surv[c(1,2,3,6, 10,10)]))
+[1] TRUE
+> aeq(temp$n.risk, c(0, 2, 3, 3, 4, 1,1))
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/frank.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/frank.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/frank.Rout.save	(revision 2476)
@@ -0,0 +1,50 @@
+
+R version 3.0.0 (2013-04-03) -- "Masked Marvel"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+Loading required package: splines
+> #
+> # Check out intercept/interaction for Frank H
+> #
+> age2 <- lung$age - 50
+> fit1 <- coxph(Surv(time, status) ~ age * strata(sex), lung)
+> fit2 <- coxph(Surv(time, status) ~ age2*strata(sex), lung)
+> 
+> tdata <- data.frame(age=50:60, age2=0:10, sex=c(1,2,1,2,1,2,1,2,1,2,1))
+> 
+> surv1 <- survfit(fit1, tdata)
+> surv2 <- survfit(fit2, tdata)
+> # The call won't match, but the rest should
+> icall <- match("call", names(surv1))
+> all.equal(unclass(surv1)[-icall], unclass(surv2)[-icall])
+[1] TRUE
+> 
+> 
+> # It should match what I get with a single strata fit
+> 
+> fit3 <- coxph(Surv(time, status) ~ age, data=lung,
++               init=fit1$coef[1], subset=(sex==1), iter=0)
+> surv1b <- survfit(fit3, newdata=list(age=c(50,52, 54)))
+> all.equal(c(surv1b$surv), surv1[c(1,3,5)]$surv)
+[1] TRUE
+> 
+> 
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.280   0.028   0.306 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tiedtime.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tiedtime.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tiedtime.Rout.save	(revision 2476)
@@ -0,0 +1,44 @@
+
+R version 2.12.2 (2011-02-25)
+Copyright (C) 2011 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # The survival code was failing for certain data sets when called as
+> #    survfit(Surv(time2-time1, status) ~ ......
+> # The issue was how tied floating point numbers are handled, and the
+> #    fact that unique(x), factor(x) and tapply(x) are not guarranteed to
+> #    all be the same.  
+> # This test fails in survival 2.36-5, fixed in 2.36-6.  Data sets that
+> #    can cause it are few and far between.
+> #
+> 
+> load('ties.rda')
+> x <- time2 -time1
+> 
+> #  Here is the heart of the old problem
+> #       length(unique(x))== length(table(x))
+> #  And the prior fix which worked ALMOST always
+> #       x <- round(x, 15)
+> #       length(unique(round(x,15)))== length(table(round(x,15)))
+> 
+> fit1 <- survfit(Surv(x) ~1)
+> length(fit1$time) == length(fit1$surv)
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testci.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testci.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testci.R	(revision 2476)
@@ -0,0 +1,123 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+aeq <- function(x,y,...) all.equal(as.vector(x), as.vector(y),...)
+
+#
+# Test out the survfit.ci function, which does competing risk
+#   estimates
+#
+# First trivial test
+tdata <- data.frame(time=c(1,2,2,3,3,3,5,6),
+                    status = c(0,1,0,1,0,1,0,1),
+                    event =  c(1,1,2,2,1,2,3,2),
+                    grp = c(1,2,1,2,1,2,1,2))
+fit <- survfit(Surv(time, status*event, type='mstate') ~1, tdata)
+
+byhand <- function() {
+    #everyone starts in state 0
+    p1 <- c(1,0,0)
+
+    p2 <- c(6/7, 1/7, 0)  # 0-1 transition at time 2
+    u2 <- matrix(rep(c(1/49, -1/49, 0), each=8), ncol=3) #leverage matrix at time 2
+    u2[1,] <- 0  #subject 1 is not present
+    u2[2,1:2] <- u2[2, 1:2] + c(-1/7, 1/7)
+
+    p3 <- c((6/7)*(3/5), 1/7, 12/35) # 0-2 transition at time 3, 5 at risk
+    h3 <- matrix(c(3/5, 0, 2/5, 0,1,0, 0,1,0), byrow=T, ncol=3) #hazard mat
+    u3 <- u2 %*% h3
+    u3[4:8,1] <- u3[4:8,1] + p2[1]*2/25
+    u3[4:8,3] <- u3[4:8,3]  -p2[1]*2/25
+    u3[4,] <- u3[4,] + c(-p2[1]/5, 0, p2[1]/5)
+    u3[6,] <- u3[4,]
+ 
+    p6 <- c(0, 1/7, 6/7) # 0-2 at time 6, 1 at risk
+    h6 <- matrix(c(-1,0,1,0,1,0,0,1,0), byrow=T, ncol=3)
+    u6 <- cbind(0, u3[,2], -u3[,2])
+    
+    V <- rbind(0, colSums(u2^2), 
+                  colSums(u3^2),
+                  colSums(u3^2),
+                  colSums(u6^2))
+    list(P=rbind(p1, p2, p3, p3, p6), u2=u2, u3=u3, u6=u6, V=V)
+}
+bfit <- byhand()
+aeq(fit$prev, bfit$P[,c(2,3,1)])
+aeq(fit$n.risk[,3], c(8,7,5,2,1))
+aeq(fit$n.event[,1:2], c(0,1,0,0,0, 0,0 ,2,0,1))
+aeq(fit$std^2, bfit$V[,c(2,3,1)])
+
+# Times purposely has values that are before the start, exact, intermediate
+#  and after the end of the observed times
+sfit <- summary(fit, times=c(0, 1, 3.5, 6, 7), extend=TRUE)
+aeq(sfit$prev, rbind(c(0,0,1), bfit$P[c(1,3,5,5), c(2,3,1)]))
+aeq(sfit$n.risk[,3], c(8,8, 2, 1, 0))
+aeq(sfit$n.event,  matrix(c(0,0,1,0,0, 0,0,2,1,0, 0,0,0,0,0), ncol=3))
+
+#
+# For this we need the competing risks MGUS data set, first
+#  event
+#
+tdata <- mgus1[mgus1$enum==1,]
+# Ensure the old-style call using "etype" works (backwards compatability)
+fit1 <- survfit(Surv(stop, status) ~ 1, etype=event, tdata)
+fit1b <-survfit(Surv(stop, event) ~1, tdata)
+indx <- match("call", names(fit1)) 
+all.equal(unclass(fit1)[-indx], unclass(fit1b)[-indx])
+
+# Now get the overall survival, and the hazard for progression
+fit2 <- survfit(Surv(stop, status) ~1, tdata)  #overall to "first bad thing"
+fit3 <- survfit(Surv(stop, status*(event=='pcm')) ~1, tdata,
+                type='fleming')
+fit4 <- survfit(Surv(stop, status*(event=='death')) ~1, tdata,
+                type='fleming')
+
+aeq(fit1$n.risk[,3], fit2$n.risk)
+aeq(rowSums(fit1$n.event), fit2$n.event)
+
+# Classic CI formula
+#  integral [hazard(t) S(t-0) dt], where S= "survival to first event"
+haz1 <- diff(c(0, -log(fit3$surv))) #Aalen hazard estimate for progression
+haz2 <- diff(c(0, -log(fit4$surv))) #Aalen estimate for death
+tsurv <- c(1, fit2$surv[-length(fit2$surv)])  #lagged survival
+ci1 <- cumsum(haz1 *tsurv)
+ci2 <- cumsum(haz2 *tsurv)
+aeq(cbind(ci1, ci2), fit1$prev[,1:2])
+
+#
+# Now, make sure that it works for subgroups
+#
+fit1 <- survfit(Surv(stop, event) ~ sex, tdata)
+fit2 <- survfit(Surv(stop, event) ~ 1, tdata,
+                        subset=(sex=='female'))
+fit3 <- survfit(Surv(stop, event) ~ 1, tdata,
+                   subset=(sex=='male'))
+
+aeq(fit2$prev, fit1$prev[1:fit1$strata[1],])
+aeq(fit2$std, fit1$std[1:fit1$strata[1],])
+aeq(fit3$prev, fit1$prev[-(1:fit1$strata[1]),])
+
+#  A second test of cumulative incidence
+# compare results to Bob Gray's functions
+#  The file gray1 is the result of 
+#    library(cmprsk)
+#    tstat <- ifelse(tdata$status==0, 0, 1+ (tdata$event=='death'))
+#    gray1 <- cuminc(tdata$stop, tstat)
+load("gray1.rda")
+fit2 <- survfit(Surv(stop, event) ~ 1, tdata)
+
+if (FALSE) {
+    # lines of the two graphs should overlay
+    plot(gray1[[1]]$time, gray1[[1]]$est, type='l',
+         ylim=range(c(gray1[[1]]$est, gray1[[2]]$est)),
+         xlab="Time")
+    lines(gray1[[2]]$time, gray1[[2]]$est, lty=2)
+    matlines(fit2$time, fit2$prev, col=2, lty=1:2, type='s')
+}
+# To formally match these is a bit of a nuisance.
+#  The cuminc function returns a full step function, and survfit only
+# the bottoms of the steps.
+temp1 <- tapply(gray1[[1]]$est, gray1[[1]]$time, max)[-1]  #toss time 0
+indx1 <- match(names(temp1), fit2$time)
+aeq(temp1, fit2$prev[indx1,1])
+    
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv3.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv3.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv3.R	(revision 2476)
@@ -0,0 +1,98 @@
+library(survival)
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+# One more test on coxph survival curves, to test out the individual
+#  option.  First fit a model with a time dependent covariate
+#
+test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
+                    stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
+                    event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
+                    x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+
+# True hazard function, from the validation document
+lambda <- function(beta, x=0, method='efron') {
+    r <- exp(beta)
+    lambda <- c(1/(r+1), 1/(r+2), 1/(3*r +2), 1/(3*r+1),
+                1/(3*r+1), 1/(3*r+2) + 1/(2*r +2))
+    if (method == 'breslow') lambda[9] <- 2/(3*r +2)
+    list(time=c(2,3,6,7,8,9), lambda=lambda)
+    }
+
+fit <- coxph(Surv(start, stop, event) ~x, test2)
+# A curve for someone who never changes
+surv1 <-survfit(fit, newdata=list(x=0), censor=FALSE)
+
+true <- lambda(fit$coef, 0)
+
+aeq(true$time, surv1$time)
+aeq(-log(surv1$surv), cumsum(true$lambda))
+
+# Reprise it with a time dependent subject who doesn't change
+data2 <- data.frame(start=c(0, 4, 9, 11), stop=c(4, 9, 11, 17),
+                      event=c(0,0,0,0), x=c(0,0,0,0))
+surv2 <- survfit(fit, newdata=data2, individual=TRUE, censor=FALSE)
+aeq(surv2$surv, surv1$surv)
+
+
+#
+# Now a more complex data set with multiple strata
+#
+test3 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8,
+                            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
+                    stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17,
+                            1:11),
+                    event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
+                            0, 1, 1, 0, 0, 1, 1, 0, 1, 0,1),
+                    x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0,
+                            1, 2, 3, 2, 1, 1, 1, 0, 2, 1,0),
+                    grp = c(rep('a', 10), rep('b', 11)))
+
+fit2 <- coxph(Surv(start, stop, event) ~ x + strata(grp), test3)
+
+# The above tests show the program works for a simple case, use it to
+#  get a true baseline for strata 2
+fit2b <- coxph(Surv(start, stop, event) ~x, test3,
+               subset=(grp=='b'), init=fit2$coef, iter=0)
+temp <- survfit(fit2b,  newdata=list(x=0), censor=F)
+true2 <- list(time=temp$time, lambda=diff(c(0, -log(temp$surv))))
+true1 <- lambda(fit2$coef, x=0)
+
+# Separate strata, one value
+surv3 <- survfit(fit2, list(x=0), censor=FALSE)
+aeq(true1$time, (surv3[1])$time)
+aeq(-log(surv3[1]$surv), cumsum(true1$lambda))
+
+data4 <- data.frame(start=c(0, 4, 9, 11), stop=c(4, 9, 11, 17),
+                      event=c(0,0,0,0), x=c(0,0,0,0), grp=rep('a', 4))
+surv4a <- survfit(fit2, newdata=data4, individual=T, censor=FALSE)
+aeq(-log(surv4a$surv), cumsum(true1$lambda))
+
+data4$grp <- rep('b',4)
+surv4b <- survfit(fit2, newdata=data4, individual=T, censor=FALSE)
+aeq(-log(surv4b$surv), cumsum(true2$lambda))
+
+
+# Now for something more complex
+# Subject 1 skips day 4.  Since there were no events that day the survival
+#  will be the same, but the times will be different.
+# Subject 2 spends some time in strata 1, some in strata 2, with
+#   moving covariates
+#
+data5 <- data.frame(start=c(0,5,9,11,
+                             0, 4, 3),
+                    stop =c(4,9,11,17, 4,8,7),
+                    event=rep(0,7),
+                    x=c(1,1,1,1, 0,1,2),
+                    grp=c('a', 'a', 'a', 'a', 'a', 'a', 'b'),
+                    subject=c(1,1,1,1, 2,2,2))
+surv5 <- survfit(fit2, newdata=data5, censor=FALSE, id=subject)
+
+aeq(surv5[1]$time, c(2,3,5,6,7,8))  #surv1 has 2, 3, 6, 7, 8, 9
+aeq(surv5[1]$surv, surv3[1]$surv ^ exp(fit2$coef))
+
+tlam <- c(true1$lambda[1:2]* exp(fit2$coef * data5$x[5]),
+          true1$lambda[3:5]* exp(fit2$coef * data5$x[6]),      
+          true2$lambda[3:4]* exp(fit2$coef * data5$x[7]))
+aeq(-log(surv5[2]$surv), cumsum(tlam))
+
+                          
+                          
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_scale.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_scale.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_scale.Rout.save	(revision 2476)
@@ -0,0 +1,72 @@
+
+R version 3.0.0 (2013-04-03) -- "Masked Marvel"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Verify that scale can be fixed at a value
+> #    coefs will differ slightly due to different iteration paths
+> tol <- .001
+> 
+> # Intercept only models
+> fit1 <- survreg(Surv(time,status) ~ 1, lung)
+> fit2 <- survreg(Surv(time,status) ~ 1, lung, scale=fit1$scale)
+> all.equal(fit1$coef, fit2$coef, tolerance= tol)
+[1] TRUE
+> all.equal(fit1$loglik, fit2$loglik, tolerance= tol)
+[1] TRUE
+> 
+> # The two robust variance matrices are not the same, since removing
+> #   an obs has a different effect on the two models.  This just
+> #   checks for failure, not for correctness
+> fit3 <- survreg(Surv(time,status) ~ 1, lung, robust=TRUE)
+> fit4 <- survreg(Surv(time,status) ~ 1, lung, scale=fit1$scale, robust=TRUE)
+> 
+> 
+> # multiple covariates
+> fit1 <- survreg(Surv(time,status) ~ age + ph.karno, lung)
+> fit2 <- survreg(Surv(time,status) ~ age + ph.karno, lung,
++ 		scale=fit1$scale)
+> all.equal(fit1$coef, fit2$coef, tolerance=tol)
+[1] TRUE
+> all.equal(fit1$loglik[2], fit2$loglik[2], tolerance=tol)
+[1] TRUE
+> 
+> fit3 <- survreg(Surv(time,status) ~ age + ph.karno, lung, robust=TRUE)
+> fit4 <- survreg(Surv(time,status) ~ age + ph.karno, lung, 
++                 scale=fit1$scale, robust=TRUE)
+> 
+> # penalized models
+> fit1 <- survreg(Surv(time, status) ~ pspline(age), lung)
+> fit2 <- survreg(Surv(time, status) ~ pspline(age), lung, scale=fit1$scale)
+> all.equal(fit1$coef, fit2$coef, tolerance=tol)
+[1] TRUE
+> all.equal(fit1$loglik[2], fit2$loglik[2], tolerance=tol)
+[1] TRUE
+> 
+> fit3 <- survreg(Surv(time,status) ~ pspline(age) + ph.karno, lung, robust=TRUE)
+> fit4 <- survreg(Surv(time,status) ~ pspline(age) + ph.karno, lung, 
++                 scale=fit1$scale, robust=TRUE)
+> 
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.304   0.044   0.344 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/stratatest.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/stratatest.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/stratatest.R	(revision 2476)
@@ -0,0 +1,43 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Trivial test of stratified residuals
+#   Make a second strata = replicate of the first, and I should get the
+#   exact same answers
+test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0))
+test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
+                    stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
+                    event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
+                    x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+
+temp <- as.matrix(test1)
+n    <- nrow(temp)
+ndead<- sum(test1$status[!is.na(test1$status)])
+temp <- data.frame(rbind(temp, temp)) #later releases of S have rbind.data.frame
+tstrat <- rep(1:2, c(n,n))
+
+fit1 <- coxph(Surv(time, status) ~x, test1)
+fit2 <- coxph(Surv(time, status) ~x + strata(tstrat), temp)
+
+all.equal(resid(fit1) , (resid(fit2))[1:n])
+all.equal(resid(fit1, type='score') , (resid(fit2, type='score'))[1:n])
+all.equal(resid(fit1, type='schoe') , (resid(fit2, type='schoe'))[1:ndead])
+
+
+#AG model
+temp <- as.matrix(test2)
+n    <- nrow(temp)
+ndead<- sum(test2$event[!is.na(test2$event)])
+temp <- data.frame(rbind(temp, temp))
+tstrat <- rep(1:2, c(n,n))
+
+fit1 <- coxph(Surv(start, stop, event) ~x, test2)
+fit2 <- coxph(Surv(start, stop, event) ~x + strata(tstrat), temp)
+
+all.equal(resid(fit1) , (resid(fit2))[1:n])
+all.equal(resid(fit1, type='score') , (resid(fit2, type='score'))[1:n])
+all.equal(resid(fit1, type='schoe') , (resid(fit2, type='schoe'))[1:ndead])
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testnull.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testnull.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testnull.Rout.save	(revision 2476)
@@ -0,0 +1,42 @@
+
+R version 2.7.1 (2008-06-23)
+Copyright (C) 2008 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # A test of  NULL models
+> #
+> fit1 <- coxph(Surv(stop, event) ~ rx + strata(number), bladder, iter=0)
+> fit2 <- coxph(Surv(stop, event) ~ strata(number), bladder)
+> 
+> all.equal(fit1$loglik[2], fit2$loglik)
+[1] TRUE
+> all.equal(fit1$resid, fit2$resid)
+[1] TRUE
+> 
+> 
+> fit1 <- coxph(Surv(start, stop, event) ~ rx + strata(number), bladder2, iter=0)
+> fit2 <- coxph(Surv(start, stop, event) ~ strata(number), bladder2)
+> 
+> all.equal(fit1$loglik[2], fit2$loglik)
+[1] TRUE
+> all.equal(fit1$resid, fit2$resid)
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/factor2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/factor2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/factor2.R	(revision 2476)
@@ -0,0 +1,26 @@
+library(survival)
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+options(na.action=na.exclude)
+#
+# More tests of factors in prediction, using a new data set
+#
+fit <- coxph(Surv(time, status) ~  factor(ph.ecog), lung)
+
+tdata <- data.frame(ph.ecog = factor(0:3))
+p1 <- predict(fit, newdata=tdata, type='lp')
+p2 <- predict(fit, type='lp')
+aeq(p1, p2[match(0:3, lung$ph.ecog)])
+
+fit2 <- coxph(Surv(time, status) ~ factor(ph.ecog) + factor(sex), lung)
+tdata <- expand.grid(ph.ecog = factor(0:3), sex=factor(1:2))
+p1 <- predict(fit2, newdata=tdata, type='risk')
+
+xdata <- expand.grid(ph.ecog=factor(1:3), sex=factor(1:2))
+p2 <- predict(fit2, newdata=xdata, type='risk')
+all.equal(p2, p1[c(2:4, 6:8)], check.attributes=FALSE)
+
+
+fit3 <- survreg(Surv(time, status) ~ factor(ph.ecog) + age, lung)
+tdata <- data.frame(ph.ecog=factor(0:3), age=50)
+predict(fit, type='lp', newdata=tdata)
+predict(fit3, type='lp', newdata=tdata)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/detail.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/detail.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/detail.R	(revision 2476)
@@ -0,0 +1,69 @@
+# A short test on coxph.detail, to ensure that the computed hazard is
+#  equal to the theoretical value
+library(survival)
+aeq <- function(a,b) all.equal(as.vector(a), as.vector(b))
+
+# taken from book4.R
+test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
+                    stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
+                    event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
+                    x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+
+byhand <- function(beta, newx=0) {
+    r <- exp(beta)
+    loglik <- 4*beta - (log(r+1) + log(r+2) + 2*log(3*r+2) + 2*log(3*r+1) +
+        log(2*r +2))
+    u <- 1/(r+1) +  1/(3*r+1) + 2*(1/(3*r+2) + 1/(2*r+2)) -
+                 ( r/(r+2) +3*r/(3*r+2) + 3*r/(3*r+1))
+    imat <- r*(1/(r+1)^2 + 2/(r+2)^2 + 6/(3*r+2)^2 +
+            6/(3*r+1)^2 + 6/(3*r+2)^2 + 4/(2*r +2)^2)
+
+    hazard <-c( 1/(r+1), 1/(r+2), 1/(3*r+2), 1/(3*r+1), 1/(3*r+1),
+               1/(3*r+2), 1/(2*r +2) )
+
+
+    # The matrix of weights, one row per obs, one col per time
+    #   deaths at 2,3,6,7,8,9
+    wtmat <- matrix(c(1,0,0,0,1, 0, 0,0,0,0,
+                      0,1,0,1,1, 0, 0,0,0,0,
+                      0,0,1,1,1, 0, 1,1,0,0,
+                      0,0,0,1,1, 0, 1,1,0,0,
+                      0,0,0,0,1, 1, 1,1,0,0,
+                      0,0,0,0,0, 1, 1,1,1,1,
+                      0,0,0,0,0,.5,.5,1,1,1), ncol=7)
+    wtmat <- diag(c(r,1,1,r,1,r,r,r,1,1)) %*% wtmat
+
+    x      <- c(1,0,0,1,0,1,1,1,0,0)
+    status <- c(1,1,1,1,1,1,1,0,0,0)
+    xbar <- colSums(wtmat*x)/ colSums(wtmat)
+    n <- length(x)
+
+   # Table of sums for score and Schoenfeld resids
+    hazmat <- wtmat %*% diag(hazard) #each subject's hazard over time
+    dM <- -hazmat  #Expected part
+    for (i in 1:5) dM[i,i] <- dM[i,i] +1  #observed
+    dM[6:7,6:7] <- dM[6:7,6:7] +.5  # observed
+    mart <- rowSums(dM)
+
+    # Table of sums for score and Schoenfeld resids
+    #  Looks like the last table of appendix E.2.1 of the book
+    resid <- dM * outer(x, xbar, '-')
+    score <- rowSums(resid)
+    scho <- colSums(resid)
+
+    # We need to add the ties back up (they are symmetric)
+    scho[6:7] <- rep(mean(scho[6:7]), 2)
+
+    list(loglik=loglik, u=u, imat=imat, xbar=xbar, haz=hazard* exp(beta*newx),
+	     mart=mart,  score=score, rmat=resid,
+		scho=scho)
+    } 
+
+# The actual coefficient of the fit is close to zero.  Using a larger
+#  number pushes the test harder, but it should still work without
+#  the init and iter arguments, i.e., for any coefficient.
+fit1 <- coxph(Surv(start, stop, event) ~x, test2,init=-1, iter=0)
+temp <- coxph.detail(fit1)
+temp2 <- byhand(fit1$coef, fit1$means)
+aeq(temp$haz, c(temp2$haz[1:5], sum(temp2$haz[6:7])))
+                  
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book4.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book4.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book4.Rout.save	(revision 2476)
@@ -0,0 +1,274 @@
+
+R Under development (unstable) (2016-03-23 r70368) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> #
+> # Tests from the appendix of Therneau and Grambsch
+> #  d. Data set 2 and Efron estimate
+> #
+> test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
++                     stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
++                     event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
++                     x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+> 
+> byhand <- function(beta, newx=0) {
++     r <- exp(beta)
++     loglik <- 4*beta - (log(r+1) + log(r+2) + 2*log(3*r+2) + 2*log(3*r+1) +
++         log(2*r +2))
++     u <- 1/(r+1) +  1/(3*r+1) + 2*(1/(3*r+2) + 1/(2*r+2)) -
++                  ( r/(r+2) +3*r/(3*r+2) + 3*r/(3*r+1))
++     imat <- r*(1/(r+1)^2 + 2/(r+2)^2 + 6/(3*r+2)^2 +
++             6/(3*r+1)^2 + 6/(3*r+2)^2 + 4/(2*r +2)^2)
++ 
++     hazard <-c( 1/(r+1), 1/(r+2), 1/(3*r+2), 1/(3*r+1), 1/(3*r+1),
++                1/(3*r+2), 1/(2*r +2) )
++ 
++ 
++     # The matrix of weights, one row per obs, one col per time
++     #   deaths at 2,3,6,7,8,9
++     wtmat <- matrix(c(1,0,0,0,1, 0, 0,0,0,0,
++                       0,1,0,1,1, 0, 0,0,0,0,
++                       0,0,1,1,1, 0, 1,1,0,0,
++                       0,0,0,1,1, 0, 1,1,0,0,
++                       0,0,0,0,1, 1, 1,1,0,0,
++                       0,0,0,0,0, 1, 1,1,1,1,
++                       0,0,0,0,0,.5,.5,1,1,1), ncol=7)
++     wtmat <- diag(c(r,1,1,r,1,r,r,r,1,1)) %*% wtmat
++ 
++     x      <- c(1,0,0,1,0,1,1,1,0,0)
++     status <- c(1,1,1,1,1,1,1,0,0,0)
++     xbar <- colSums(wtmat*x)/ colSums(wtmat)
++     n <- length(x)
++ 
++    # Table of sums for score and Schoenfeld resids
++     hazmat <- wtmat %*% diag(hazard) #each subject's hazard over time
++     dM <- -hazmat  #Expected part
++     for (i in 1:5) dM[i,i] <- dM[i,i] +1  #observed
++     dM[6:7,6:7] <- dM[6:7,6:7] +.5  # observed
++     mart <- rowSums(dM)
++ 
++     # Table of sums for score and Schoenfeld resids
++     #  Looks like the last table of appendix E.2.1 of the book
++     resid <- dM * outer(x, xbar, '-')
++     score <- rowSums(resid)
++     scho <- colSums(resid)
++ 
++     # We need to add the ties back up (they are symmetric)
++     scho[6:7] <- rep(mean(scho[6:7]), 2)
++ 
++     list(loglik=loglik, u=u, imat=imat, xbar=xbar, haz=hazard,
++ 	     mart=mart,  score=score, rmat=resid,
++ 		scho=scho)
++     }
+> 
+> 
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> 
+> fit0 <-coxph(Surv(start, stop, event) ~x, test2, iter=0)
+> truth0 <- byhand(0,0)
+> aeq(truth0$loglik, fit0$loglik[1])
+[1] TRUE
+> aeq(1/truth0$imat, fit0$var)
+[1] TRUE
+> aeq(truth0$mart, fit0$resid)
+[1] TRUE
+> aeq(truth0$scho, resid(fit0, 'schoen'))
+[1] TRUE
+> aeq(truth0$score, resid(fit0, 'score')) 
+[1] TRUE
+> 
+> 
+> fit <- coxph(Surv(start, stop, event) ~x, test2, eps=1e-8)
+> truth <- byhand(fit$coef, 0)
+> aeq(truth$loglik, fit$loglik[2])
+[1] TRUE
+> aeq(1/truth$imat, fit$var)
+[1] TRUE
+> aeq(truth$mart, fit$resid)
+[1] TRUE
+> aeq(truth$scho, resid(fit, 'schoen'))
+[1] TRUE
+> aeq(truth$score, resid(fit, 'score'))
+[1] TRUE
+> 
+> # Reprise the test, with strata
+> #  offseting the times ensures that we will get the wrong risk sets
+> #  if strata were not kept separate
+> test2b <- rbind(test2, test2, test2)
+> test2b$group <- rep(1:3, each= nrow(test2))
+> test2b$start <- test2b$start + test2b$group
+> test2b$stop  <- test2b$stop  + test2b$group
+> fit0 <- coxph(Surv(start, stop, event) ~ x + strata(group), test2b, iter=0)
+> aeq(3*truth0$loglik, fit0$loglik[1])
+[1] TRUE
+> aeq(3*truth0$imat, 1/fit0$var)
+[1] TRUE
+> aeq(rep(truth0$mart,3), fit0$resid)
+[1] TRUE
+> aeq(rep(truth0$scho,3),  resid(fit0, 'schoen'))
+[1] TRUE
+> aeq(rep(truth0$score,3), resid(fit0, 'score')) 
+[1] TRUE
+> 
+> fit3 <- coxph(Surv(start, stop, event) ~x + strata(group), test2b, eps=1e-8)
+> aeq(3*truth$loglik, fit3$loglik[2])
+[1] TRUE
+> aeq(3*truth$imat, 1/fit3$var)
+[1] TRUE
+> aeq(rep(truth$mart,3), fit3$resid)
+[1] TRUE
+> aeq(rep(truth$scho,3), resid(fit3, 'schoen'))
+[1] TRUE
+> aeq(rep(truth$score,3), resid(fit3, 'score'))
+[1] TRUE
+> 
+> # 
+> # Done with the formal test, now print out lots of bits
+> #
+> resid(fit)
+          1           2           3           4           5           6 
+ 0.50527611  0.66432995  0.79746211  0.22435805 -0.55144018  0.42933697 
+          7           8           9          10 
+-0.01764508 -1.14132605 -0.45517594 -0.45517594 
+> resid(fit, 'scor')
+         1          2          3          4          5          6          7 
+ 0.2553039 -0.2183386 -0.4744295 -0.1101520  0.1137126  0.2491954  0.1057078 
+         8          9         10 
+-0.4119611  0.2454808  0.2454808 
+> resid(fit, 'scho')
+         2          3          6          7          8          9          9 
+ 0.5052761 -0.3286599 -0.5949242  0.2539781 -0.7460219  0.4551759  0.4551759 
+> 
+> predict(fit, type='lp')
+ [1] -0.0105526  0.0105526  0.0105526 -0.0105526  0.0105526 -0.0105526
+ [7] -0.0105526 -0.0105526  0.0105526  0.0105526
+> predict(fit, type='risk')
+ [1] 0.9895029 1.0106085 1.0106085 0.9895029 1.0106085 0.9895029 0.9895029
+ [8] 0.9895029 1.0106085 1.0106085
+> predict(fit, type='expected')
+        1         2         3         4         5         6         7         8 
+0.4947239 0.3356701 0.2025379 0.7756420 1.5514402 0.5706630 1.0176451 1.1413261 
+        9        10 
+0.4551759 0.4551759 
+> predict(fit, type='terms')
+            x
+1  -0.0105526
+2   0.0105526
+3   0.0105526
+4  -0.0105526
+5   0.0105526
+6  -0.0105526
+7  -0.0105526
+8  -0.0105526
+9   0.0105526
+10  0.0105526
+attr(,"constant")
+[1] -0.0105526
+> predict(fit, type='lp', se.fit=T)
+$fit
+         1          2          3          4          5          6          7 
+-0.0105526  0.0105526  0.0105526 -0.0105526  0.0105526 -0.0105526 -0.0105526 
+         8          9         10 
+-0.0105526  0.0105526  0.0105526 
+
+$se.fit
+        1         2         3         4         5         6         7         8 
+0.3975884 0.3975884 0.3975884 0.3975884 0.3975884 0.3975884 0.3975884 0.3975884 
+        9        10 
+0.3975884 0.3975884 
+
+> predict(fit, type='risk', se.fit=T)
+$fit
+        1         2         3         4         5         6         7         8 
+0.9895029 1.0106085 1.0106085 0.9895029 1.0106085 0.9895029 0.9895029 0.9895029 
+        9        10 
+1.0106085 1.0106085 
+
+$se.fit
+        1         2         3         4         5         6         7         8 
+0.3954962 0.3996918 0.3996918 0.3954962 0.3996918 0.3954962 0.3954962 0.3954962 
+        9        10 
+0.3996918 0.3996918 
+
+> predict(fit, type='expected', se.fit=T)
+$fit
+        1         2         3         4         5         6         7         8 
+0.4947239 0.3356701 0.2025379 0.7756420 1.5514402 0.5706630 1.0176451 1.1413261 
+        9        10 
+0.4551759 0.4551759 
+
+$se.fit
+ [1] 0.5331623 0.3940109 0.3241963 0.6388491 1.0026838 0.6453101 0.7848594
+ [8] 0.7848594 0.6401915 0.6401915
+
+> predict(fit, type='terms', se.fit=T)
+$fit
+            x
+1  -0.0105526
+2   0.0105526
+3   0.0105526
+4  -0.0105526
+5   0.0105526
+6  -0.0105526
+7  -0.0105526
+8  -0.0105526
+9   0.0105526
+10  0.0105526
+attr(,"constant")
+[1] -0.0105526
+
+$se.fit
+           x
+1  0.3975884
+2  0.3975884
+3  0.3975884
+4  0.3975884
+5  0.3975884
+6  0.3975884
+7  0.3975884
+8  0.3975884
+9  0.3975884
+10 0.3975884
+
+> 
+> summary(survfit(fit))
+Call: survfit(formula = fit)
+
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+    2      2       1    0.607   0.303       0.2277        1.000
+    3      3       1    0.435   0.262       0.1337        1.000
+    6      5       1    0.356   0.226       0.1029        1.000
+    7      4       1    0.277   0.189       0.0729        1.000
+    8      4       1    0.215   0.157       0.0516        0.899
+    9      5       2    0.137   0.109       0.0288        0.655
+> summary(survfit(fit, list(x=2)))
+Call: survfit(formula = fit, newdata = list(x = 2))
+
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+    2      2       1    0.616   0.465      0.14013            1
+    3      3       1    0.447   0.519      0.04568            1
+    6      5       1    0.368   0.504      0.02512            1
+    7      4       1    0.288   0.464      0.01232            1
+    8      4       1    0.226   0.418      0.00603            1
+    9      5       2    0.146   0.343      0.00147            1
+> 
+> proc.time()
+   user  system elapsed 
+  0.244   0.020   0.259 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ratetable.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ratetable.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ratetable.R	(revision 2476)
@@ -0,0 +1,63 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Generate each of the messages from is.ratetable
+#
+{if (is.R()) mdy.date <- function(m, d, y) {
+    y <- ifelse(y<100, y+1900, y)
+    as.Date(paste(m,d,y, sep='/'), "%m/%d/%Y")
+    }
+else mdy.date <- function(m,d,y) {
+    y <- ifelse(y<100, y+1900, y)
+    timeDate(paste(y, m, d, sep='/'), in.format="%Y/%m/%d")
+    }
+ }
+
+temp <- runif(21*2*4)
+
+# Good
+attributes(temp) <- list(dim=c(21,2,4),
+    dimnames=list(c(as.character(75:95)), c("male","female"),
+                  c(as.character(2000:2003))),
+    dimid=c("age","sex","year"),
+    type=c(2,1,4),
+    cutpoints=list(c(75:95), NULL, mdy.date(1,1,2000) +c(0:3)*366.25),
+    class='ratetable')
+is.ratetable(temp)
+
+# Factor problem + cutpoints length
+attributes(temp) <- list(dim=c(21,2,4),
+    dimnames=list(c(as.character(75:95)), c("male","female"),
+                  c(as.character(2000:2003))),
+    dimid=c("age","sex","year"),
+    type=c(1,1,2),
+    cutpoints=list(c(75:95), NULL, mdy.date(1,1,2000) +c(0:4)*366.25),
+    class='ratetable')
+is.ratetable(temp, verbose=T)
+ 
+                    
+# missing dimid attribute + unsorted cutpoint
+attributes(temp) <- list(dim=c(21,2,4),
+    dimnames=list(c(as.character(75:95)), c("male","female"),
+                  c(as.character(2000:2003))),
+    type=c(2,1,3),
+    cutpoints=list(c(75:95), NULL, mdy.date(1,1,2000) +c(4:1)*366.25),
+    class='ratetable')
+is.ratetable(temp, verbose=T)
+
+# wrong length for dimid and type, illegal type
+attributes(temp) <- list(dim=c(21,2,4),
+    dimnames=list(c(as.character(75:95)), c("male","female"),
+                  c(as.character(2000:2003))),
+    dimid=c("age","sex","year", "zed"),
+    type=c(2,1,3,6),
+    cutpoints=list(c(75:95), NULL, mdy.date(1,1,2000) +c(0:3)*366.25),
+    class='ratetable')
+is.ratetable(temp, verbose=T)
+
+
+# Print and summary
+print(survexp.us[1:30,,c('1953', '1985')] )
+summary(survexp.usr)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/finegray.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/finegray.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/finegray.R	(revision 2476)
@@ -0,0 +1,158 @@
+library(survival)
+# Test data set 1 for Fine-Gray regression
+fdata <- data.frame(time  =c(1,2,3,4,4,4,5,5,6,8,8, 9,10,12),
+                    status=factor(c(1,2,0,1,0,0,2,1,0,0,2, 0,1 ,0), 0:2,
+                             c("cen", "type1", "type2")),      
+                    x     =c(5,4,3,1,2,1,1,2,2,4,6,1,2, 0),
+                    id = 1:14)
+test1 <- finegray(Surv(time, status) ~., fdata, count="fgcount")
+test2 <- finegray(Surv(time, status) ~x, fdata, etype="type2")
+
+# When creating the censoring time distribution remember that
+#  censors happen after deaths, so the distribution does not drop until
+#  time 3+, 4+, 6+, 8+ and 9+
+csurv <- list(time=c(0, 3, 4, 6, 8, 9),
+              p = cumprod(c(1, 11/12, 8/10, 5/6, 3/4, 2/3)))
+#
+# For estimation of event type 1, the first subject of event type
+#  2 will have weights of curve$p over (0,3], (3,4], (4,6], (6,8], (8,9] 
+#  and (9,12].  All that really matters is the weight at times 1, 4, 5,
+#  and 10, however, which are the points at which events of type 1 happen
+#  
+# The next subject of event type 2 occurs at time 5, and will have a
+#  weight of (9,12] /(4,5] = (5*4*2)/(7*5*3) = 8/21 at time 10.  The last
+#  censor at time 6 has a weight of 2/3 at time 10.
+
+all.equal(test1$id, c(1, 2,2,2,2, 3:6, 7, 7, 8:11, 11, 12:14))
+twt <- c(1, csurv$p[c(1,2,3,6)], 1,1,1, 1, 1, 5/12, 1,1,1,  
+                         1, 1/2, 1,1,1)
+all.equal(test1$fgwt, twt)
+#extra obs will end at times found in csurv$time, or max(time)=12
+all.equal(test1$fgstop[test1$fgcount>0], c(4,6,12, 12,12))
+
+#
+# Verify the data reproduces a multi-state curve
+#  censoring times may be different in the two setups so only 
+#  compare at the event times
+sfit <- survfit(Surv(time, status) ~1, fdata)
+sfit1<- survfit(Surv(fgstart, fgstop, fgstatus) ~1, test1, weight=fgwt)
+i1 <- sfit$n.event[,1] > 0
+i2 <- sfit1$n.event > 0
+all.equal(sfit$prev[i1, 1], 1- sfit1$surv[i2])
+
+sfit2 <- survfit(Surv(fgstart, fgstop, fgstatus) ~1, test2, weight=fgwt)
+i1 <- sfit$n.event[,2] > 0
+i2 <- sfit2$n.event > 0
+all.equal(sfit$prev[i1, 2], 1- sfit2$surv[i2])
+
+
+#
+# Test data set 2: use the larger MGUS data set
+#  Time is in months which leads to lots of ties
+etime <- with(mgus2, ifelse(pstat==0, futime, ptime))
+event <- with(mgus2, ifelse(pstat==0, 2*death, 1))
+e2 <- factor(event, 0:2, c('censor', 'pcm', 'death'))
+edata <- finegray(Surv(etime, e2) ~ sex + id, mgus2, etype="pcm")
+
+# Build G(t) = the KM of the censoring distribution
+# An event at time x is not "at risk" for censoring at time x (Geskus 2011)
+tt <- sort(unique(etime))  # all the times
+ntime <- length(tt)
+nrisk <- nevent <- double(ntime)
+for (i in 1:ntime) {
+    nrisk[i] <- sum((etime > tt[i] & event >0) | (etime >= tt[i] & event==0))
+    nevent[i] <- sum(etime == tt[i] & event==0)
+}
+G <- cumprod(1- nevent/nrisk)
+
+# The weight is defined as w(t)= G(t-)/G(s-) where s is the event time
+# for a subject who experiences an endpoint other then the one of interest
+type2 <- event[edata$id]==2  # the rows to be expanded
+# These rows are copied over as is: endpoint 1 and censors
+all(edata$fgstop[!type2] == etime[edata$id[!type2]])
+all(edata$fgstart[!type2] ==0) 
+all(edata$fgwt[!type2] ==1)
+
+tdata <- edata[type2,]  #expanded rows
+first <- match(tdata$id, tdata$id)  #points to the first row for each subject
+Gwt <- c(1, G)[match(tdata$fgstop, tt)]  # G(t-)
+all.equal(tdata$fgwt, Gwt/Gwt[first])
+
+# Test data 3, left truncation.
+# Ties are assumed to be ordered as event, censor, entry
+# H(t) = truncation distribution, and is calculated on a reverse time scale
+# Since there is only one row per subject every obs is a "start" event.
+# Per equation 5 and 6 of Geskus both G and H are right continuous functions
+#  (the value at t- epsilon is different than the value at t).
+fdata <- data.frame(time1 = c(0,0,0,3,2,0,0,1,0,7,5, 0, 0, 0),
+                    time2 = c(1,2,3,4,4,4,5,5,6,8,8, 9,10,12),
+                    status= c(1,2,0,1,0,0,2,1,0,0,2, 0, 1 ,0), 
+                    x     = c(5,4,3,1,2,1,1,2,2,4,6, 1, 2, 0),
+                    id = 1:14)
+tt <- sort(unique(c(fdata$time1, fdata$time2)))
+ntime <- length(tt)
+Grisk <- Gevent <- double(ntime)
+Hrisk <- Hevent <- double(ntime)
+for (i in 1:ntime) {
+    Grisk[i] <- with(fdata, sum((time2 > tt[i] & status >0 & time1 < tt[i]) | 
+                                (time2 >= tt[i] & status ==0 & time1 < tt[i])))
+    Gevent[i]<- with(fdata, sum(time2 == tt[i] & status==0))
+    Hrisk[i] <- with(fdata, sum(time2 > tt[i] & time1 <= tt[i]))
+    Hevent[i]<- with(fdata, sum(time1 == tt[i]))
+}
+G <- cumprod(1- Gevent/pmax(1,Grisk))
+G2 <- survfit(Surv(time1, time2 - .1*(status !=0), status==0) ~1, fdata)
+all.equal(G2$surv[G2$n.event>0], G[Gevent>0])
+
+H <- double(ntime)
+# The loop below uses the definition of equation 6 in Geskus
+for (i in 1:ntime) 
+    H[i] <- prod((1- Hevent/pmax(1, Hrisk))[-(i:1)])
+H2 <- rev(cumprod(rev(1 - Hevent/pmax(1, Hrisk))))  #alternate form
+H3 <- survfit(Surv(-time2, -time1, rep(1,14)) ~1, fdata) # alternate 3
+all.equal(tt, -rev(H3$time))
+# c(0,H) = H(t-), H2 = H(t-) already due to the time reversal
+all.equal(c(0, H), c(H2, 1))  
+all.equal(H2, rev(H3$surv))
+
+fg <- finegray(Surv(time1, time2, factor(status, 0:2)) ~ x, id=id, fdata)
+stat2 <- !is.na(match(fg$id, fdata$id[fdata$status==2]))  #expanded ids
+all(fg$fgwt[!stat2] ==1)  #ordinary rows are left alone
+all(fg$fgstart[!stat2] == fdata$time1[fdata$status !=2])
+all(fg$fgstop[!stat2]  == fdata$time2[fdata$status !=2])
+
+tdata <- fg[stat2,]
+index <- match(tdata$id, tdata$id)   # points to the first row for each
+Gwt <- c(1, G)[match(tdata$fgstop, tt)]  # G(t-)
+Hwt <- c(0, H)[match(tdata$fgstop, tt)]  # H(t-)
+all.equal(tdata$fgwt,  Gwt*Hwt/(Gwt*Hwt)[index])
+
+#
+# Test data 4: mgus2 data on age scale
+#
+start <- mgus2$age  # age in years
+end   <- start + etime/12  #etime in months
+tt <- sort(unique(c(start, end)))  # all the times
+ntime <- length(tt)
+Grisk <- Gevent <-  double(ntime)
+Hrisk <- Hevent <-  double(ntime)
+for (i in 1:ntime) {
+    Grisk[i] <- sum(((end > tt[i] & event >0) | (end >= tt[i] & event==0)) &
+                      (tt[i] > start))
+    Gevent[i] <- sum(end == tt[i] & event==0)
+    Hrisk[i]  <- sum(start <= tt[i] & end > tt[i])
+    Hevent[i] <- sum(start == tt[i])
+}
+G <- cumprod(1 - Gevent/pmax(1, Grisk))         # pmax to avoid 0/0
+H <- rev(cumprod(rev(1-Hevent/pmax(1,Hrisk))))
+H <- c(H[-1], 1)  #make it right continuous
+
+wdata <- finegray(Surv(start, end, e2) ~ ., id=id, mgus2)
+type2 <- event[wdata$id]==2  # the rows to be expanded
+tdata <- wdata[type2,]
+first <- match(tdata$id, tdata$id)
+
+Gwt <- c(1, G)[match(tdata$fgstop, tt)]  # G(t-)
+Hwt <- c(0, H)[match(tdata$fgstop, tt)]  # H(t-)
+all.equal(tdata$fgwt,  (Gwt/Gwt[first]) * (Hwt / Hwt[first]))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/clogit.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/clogit.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/clogit.Rout.save	(revision 2476)
@@ -0,0 +1,58 @@
+
+R version 2.14.0 (2011-10-31)
+Copyright (C) 2011 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+Loading required package: splines
+> #
+> # Test of the clogit function, and indirectly of the exact option
+> #
+> # Data set logan has the occupation of fathers, we create a 
+> #  multinomial response
+> #
+> nresp <- length(levels(logan$occupation))
+> n <- nrow(logan)
+> indx <- rep(1:n, nresp)
+> logan2 <- data.frame(logan[indx,],
++                      id = indx,
++                      occ2 = factor(rep(levels(logan$occupation), each=n)))
+> logan2$y <- (logan2$occupation == logan2$occ2)
+> 
+> #We expect two NA coefficients, so ignore the warning
+> fit1 <- clogit(y ~ occ2 + occ2:education + occ2:race + strata(id), logan2)
+Warning message:
+In coxph(formula = Surv(rep(1, 4190L), y) ~ occ2 + occ2:education +  :
+  X matrix deemed to be singular; variable 9 14
+> 
+> #since there is only one death per group, all methods are equal
+> dummy <- rep(1, nrow(logan2))
+> fit2 <- coxph(Surv(dummy, y) ~ occ2 + occ2:education + occ2:race + strata(id),
++                    logan2, method='breslow')
+Warning message:
+In coxph(Surv(dummy, y) ~ occ2 + occ2:education + occ2:race + strata(id),  :
+  X matrix deemed to be singular; variable 9 14
+> 
+> all.equal(fit1$coef, fit2$coef)
+[1] TRUE
+> all.equal(fit1$loglik, fit2$loglik)
+[1] TRUE
+> all.equal(fit1$var, fit2$var)
+[1] TRUE
+> all.equal(fit1$resid, fit2$resid)
+[1] TRUE
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_cancer.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_cancer.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_cancer.Rout.save	(revision 2476)
@@ -0,0 +1,121 @@
+
+R Under development (unstable) (2015-06-04 r68474) -- "Unsuffered Consequences"
+Copyright (C) 2015 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> #
+> # Here is a test case with multiple smoothing terms
+> #
+> 
+> fit0 <- coxph(Surv(time, status) ~ ph.ecog + age, lung)
+> fit1 <- coxph(Surv(time, status) ~ ph.ecog + pspline(age,3), lung)
+> fit2 <- coxph(Surv(time, status) ~ ph.ecog + pspline(age,4), lung)
+> fit3 <- coxph(Surv(time, status) ~ ph.ecog + pspline(age,8), lung)
+> 
+> 
+> 
+> fit4 <- coxph(Surv(time, status) ~ ph.ecog + pspline(wt.loss,3), lung)
+> 
+> fit5 <-coxph(Surv(time, status) ~ ph.ecog + pspline(age,3) + 
++ 	     pspline(wt.loss,3), lung)
+> 
+> fit1
+Call:
+coxph(formula = Surv(time, status) ~ ph.ecog + pspline(age, 3), 
+    data = lung)
+
+                            coef se(coef)      se2    Chisq   DF       p
+ph.ecog                  0.44802  0.11707  0.11678 14.64453 1.00 0.00013
+pspline(age, 3), linear  0.01126  0.00928  0.00928  1.47231 1.00 0.22498
+pspline(age, 3), nonlin                             2.07924 2.08 0.37143
+
+Iterations: 4 outer, 12 Newton-Raphson
+     Theta= 0.861 
+Degrees of freedom for terms= 1.0 3.1 
+Likelihood ratio test=21.9  on 4.08 df, p=0.000227
+  n=227 (1 observation deleted due to missingness)
+> fit2
+Call:
+coxph(formula = Surv(time, status) ~ ph.ecog + pspline(age, 4), 
+    data = lung)
+
+                            coef se(coef)      se2    Chisq   DF       p
+ph.ecog                  0.45047  0.11766  0.11723 14.65751 1.00 0.00013
+pspline(age, 4), linear  0.01117  0.00927  0.00927  1.45195 1.00 0.22822
+pspline(age, 4), nonlin                             2.95816 3.08 0.41197
+
+Iterations: 4 outer, 11 Newton-Raphson
+     Theta= 0.797 
+Degrees of freedom for terms= 1.0 4.1 
+Likelihood ratio test=22.7  on 5.07 df, p=0.000412
+  n=227 (1 observation deleted due to missingness)
+> fit3
+Call:
+coxph(formula = Surv(time, status) ~ ph.ecog + pspline(age, 8), 
+    data = lung)
+
+                            coef se(coef)      se2    Chisq   DF       p
+ph.ecog                  0.47640  0.12024  0.11925 15.69732 1.00 7.4e-05
+pspline(age, 8), linear  0.01172  0.00923  0.00923  1.61161 1.00    0.20
+pspline(age, 8), nonlin                             6.93188 6.99    0.43
+
+Iterations: 5 outer, 15 Newton-Raphson
+     Theta= 0.691 
+Degrees of freedom for terms= 1 8 
+Likelihood ratio test=27.6  on 8.97 df, p=0.00108
+  n=227 (1 observation deleted due to missingness)
+> fit4
+Call:
+coxph(formula = Surv(time, status) ~ ph.ecog + pspline(wt.loss, 
+    3), data = lung)
+
+                              coef se(coef)      se2    Chisq   DF     p
+ph.ecog                    0.51545  0.12960  0.12737 15.81939 1.00 7e-05
+pspline(wt.loss, 3), line -0.00702  0.00655  0.00655  1.14638 1.00  0.28
+pspline(wt.loss, 3), nonl                             2.44612 2.09  0.31
+
+Iterations: 3 outer, 10 Newton-Raphson
+     Theta= 0.776 
+Degrees of freedom for terms= 1.0 3.1 
+Likelihood ratio test=21.1  on 4.06 df, p=0.000326
+  n=213 (15 observations deleted due to missingness)
+> fit5
+Call:
+coxph(formula = Surv(time, status) ~ ph.ecog + pspline(age, 3) + 
+    pspline(wt.loss, 3), data = lung)
+
+                              coef se(coef)      se2    Chisq   DF       p
+ph.ecog                    0.47422  0.13495  0.13206 12.34842 1.00 0.00044
+pspline(age, 3), linear    0.01368  0.00976  0.00974  1.96406 1.00 0.16108
+pspline(age, 3), nonlin                               1.90116 2.07 0.40284
+pspline(wt.loss, 3), line -0.00717  0.00661  0.00660  1.17529 1.00 0.27832
+pspline(wt.loss, 3), nonl                             2.07729 2.03 0.35929
+
+Iterations: 4 outer, 12 Newton-Raphson
+     Theta= 0.85 
+     Theta= 0.779 
+Degrees of freedom for terms= 1.0 3.1 3.0 
+Likelihood ratio test=25.2  on 7.06 df, p=0.000726
+  n=213 (15 observations deleted due to missingness)
+> 
+> rm(fit1, fit2, fit3, fit4, fit5)
+> 
+> proc.time()
+   user  system elapsed 
+  0.276   0.024   0.294 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/expected2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/expected2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/expected2.Rout.save	(revision 2476)
@@ -0,0 +1,36 @@
+
+R version 2.11.1 (2010-05-31)
+Copyright (C) 2010 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> library(survival)
+Loading required package: splines
+> #
+> # A Cox model with a factor, followed by survexp.  
+> #
+> pfit2 <- coxph(Surv(time, status > 0) ~ trt + log(bili) +
++           log(protime) + age + platelet + sex, data = pbc)
+> esurv <- survexp(~ trt, ratetable = pfit2, data = pbc)
+> 
+> temp <- pbc
+> temp$sex2 <- factor(as.numeric(pbc$sex), levels=2:0,
++                     labels=c("f", "m", "unknown"))
+> esurv2 <- survexp(~ trt, ratetable = pfit2, data = temp, 
++                   rmap=list(sex=sex2))
+> 
+> # The call components won't match, which happen to be first
+> all.equal(unclass(esurv)[-1], unclass(esurv2)[-1])
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/pspline.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/pspline.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/pspline.R	(revision 2476)
@@ -0,0 +1,55 @@
+library(survival)
+#
+# Tests with the pspline function, to verify the prediction aspects
+#
+options(na.action=na.exclude)
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+spfit <- coxph(Surv(time, status) ~ pspline(age) + ph.ecog, lung)
+
+spfit2 <- coxph(Surv(time, status) ~ pspline(age) + ph.ecog, lung, x=TRUE)
+x2 <- model.matrix(spfit)
+all.equal(spfit2$x, x2)
+
+keep <- (lung$age < 60)
+x3 <- model.matrix(spfit, data=lung[keep,])  
+attr(x3, 'assign') <- NULL #subscripting loses the assign attr below
+all.equal(napredict(spfit$na.action,x2)[keep,], x3)
+
+p2 <- predict(spfit, newdata=lung[keep,])
+aeq(p2, predict(spfit)[keep])
+
+
+p3 <- survfit(spfit)
+p4 <- survfit(spfit, newdata=lung[1:2,])
+temp <- scale(x2[1:2,], center=spfit$means, scale=FALSE)%*% coef(spfit)
+aeq(p3$time, p4$time)
+aeq(outer(-log(p3$surv), exp(temp), '*'), -log(p4$surv))
+
+# Check out model.frame
+spfit3 <- coxph(Surv(time, status) ~ pspline(age) + sex, lung,
+                model=TRUE)  #avoid the missing value
+m2 <- model.frame(spfit3, data=lung[keep,])
+all.equal(m2, spfit3$model[keep,], check.attributes=FALSE)
+
+#
+# Test of residuals, in response to a reported bug.  The routines for
+#  m-resids of penalized models were separate from other m-resid calcs;
+#  refactored to change that.
+#  These are three progam paths that should all lead to the same C routine
+fit <- coxph(Surv(tstart, tstop, status) ~ sex + treat + pspline(age), cgd)
+fit2 <- coxph(Surv(tstart, tstop, status) ~ fit$linear, cgd, iter=0, init=1)
+fit3 <- coxph(Surv(tstart, tstop, status) ~ offset(fit$linear), cgd)
+all.equal(fit$resid, fit2$resid)
+all.equal(fit$resid, fit3$resid)
+
+# 
+# Check using coxph.detail. The matrix multiply below only is
+#  valid for the breslow approximation.
+fit4 <-  coxph(Surv(tstart, tstop, status) ~ sex + treat + pspline(age),
+               cgd, ties='breslow')
+dt <- coxph.detail(fit4, riskmat=TRUE)
+rscore <- exp(fit4$linear)
+exp4 <- (rscore *dt$riskmat) %*% dt$hazard
+r4 <- cgd$status - exp4
+aeq(r4, fit4$resid)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_ovarian.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_ovarian.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_ovarian.Rout.save	(revision 2476)
@@ -0,0 +1,75 @@
+
+R Under development (unstable) (2015-06-04 r68474) -- "Unsuffered Consequences"
+Copyright (C) 2015 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> #
+> # Test on the ovarian data
+> 
+> fit1 <- coxph(Surv(futime, fustat) ~ rx + age, ovarian)
+> fit2 <- coxph(Surv(futime, fustat) ~ rx + pspline(age, df=2), 
++ 		data=ovarian)
+> fit2$iter
+[1] 2 8
+> 
+> fit2$df
+[1] 0.9426611 1.9293051
+> 
+> fit2$history
+$`pspline(age, df = 2)`
+$`pspline(age, df = 2)`$theta
+[1] 0.4468868
+
+$`pspline(age, df = 2)`$done
+[1] TRUE
+
+$`pspline(age, df = 2)`$history
+        thetas      dfs
+[1,] 1.0000000 1.000000
+[2,] 0.0000000 5.000000
+[3,] 0.6000000 1.734267
+[4,] 0.4845205 1.929305
+
+$`pspline(age, df = 2)`$half
+[1] 0
+
+
+> 
+> fit4 <- coxph(Surv(futime, fustat) ~ rx + pspline(age, df=4), 
++ 		data=ovarian)
+> fit4
+Call:
+coxph(formula = Surv(futime, fustat) ~ rx + pspline(age, df = 4), 
+    data = ovarian)
+
+                            coef se(coef)    se2  Chisq   DF      p
+rx                        -0.373    0.761  0.749  0.241 1.00 0.6238
+pspline(age, df = 4), lin  0.139    0.044  0.044  9.978 1.00 0.0016
+pspline(age, df = 4), non                         2.592 2.93 0.4457
+
+Iterations: 3 outer, 14 Newton-Raphson
+     Theta= 0.242 
+Degrees of freedom for terms= 1.0 3.9 
+Likelihood ratio test=19.4  on 4.9 df, p=0.00149  n= 26 
+> 
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.204   0.020   0.218 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tt.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tt.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tt.Rout.save	(revision 2476)
@@ -0,0 +1,69 @@
+
+R Under development (unstable) (2016-04-12 r70470) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+> 
+> # A contrived example for the tt function
+> #
+> mkdata <- function(n, beta) {
++     age <- runif(n, 20, 60)
++     x <- rbinom(n, 1, .5)
++ 
++     futime <- rep(40, n)   # everyone has 40 years of follow-up
++     status <- rep(0, n)
++     dtime <-  runif(n/2, 1, 40)  # 1/2 of them die
++     dtime <- sort(dtime)
++ 
++     # The risk is set to beta[1]*x + beta[2]* f(current_age)
++     #   where f= 0 up to age 40, rises linear to age 70, flat after that
++     for (i in 1:length(dtime)) {
++         atrisk <- (futime >= dtime[i])
++         c.age <- age + dtime
++         age2 <- pmin(30, pmax(0, c.age-40))
++         xbeta <- beta[1]*x + beta[2]*age2
++         
++         # Select a death according to risk
++         risk <- ifelse(atrisk, exp(xbeta), 0)
++         dead <- sample(1:n, 1, prob=risk/sum(risk))
++         
++         futime[dead] <- dtime[i]
++         status[dead] <- 1
++     }
++     data.frame(futime=futime, status=status, age=age, x=x, risk=risk)
++ }
+> tdata <- mkdata(500, c(log(1.5), 2/30))
+> 
+> fit1 <- coxph(Surv(futime, status) ~ x + pspline(age), tdata)
+> fit2 <- coxph(Surv(futime, status) ~ x + tt(age), tdata,
++               tt= function(x, t, ...) pspline(x+t))
+> 
+> dfit <- coxph(Surv(futime, status) ~ x + tt(age), tdata,
++               tt= function(x, t, ...) x+t, iter=0, x=T)
+> 
+> #
+> # Check that cluster, weight, and offset were correctly expanded
+> #
+> tdata <- data.frame(tdata, grp=sample(1:100, 500, replace=TRUE),
++                     casewt = sample(1:5, 500, replace=TRUE),
++                     zz = rnorm(500))
+> dfit2 <- coxph(Surv(futime, status) ~ x + tt(age) + offset(zz) + cluster(grp),
++                weight=casewt, data=tdata,
++                tt= function(x, t, ...) x+t)
+> 
+> proc.time()
+   user  system elapsed 
+  7.400   0.376   7.779 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book3.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book3.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book3.R	(revision 2476)
@@ -0,0 +1,143 @@
+library(survival)
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+
+#
+# Tests from the appendix of Therneau and Grambsch
+#  c. Data set 2 and Breslow estimate
+#
+test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
+                    stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
+                    event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
+                    x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+fit0 <-coxph(Surv(start, stop, event) ~x, test2, iter=0, method='breslow')
+
+byhand <- function(beta, newx=0) {
+    r <- exp(beta)
+    loglik <- 4*beta - log(r+1) - log(r+2) - 3*log(3*r+2) - 2*log(3*r+1)
+    u <- 1/(r+1) +  1/(3*r+1) + 4/(3*r+2) -
+                 ( r/(r+2) +3*r/(3*r+2) + 3*r/(3*r+1))
+    imat <- r/(r+1)^2 + 2*r/(r+2)^2 + 6*r/(3*r+2)^2 +
+            3*r/(3*r+1)^2 + 3*r/(3*r+1)^2 + 12*r/(3*r+2)^2
+
+    hazard <-c( 1/(r+1), 1/(r+2), 1/(3*r+2), 1/(3*r+1), 1/(3*r+1), 2/(3*r+2) )
+    xbar <- c(r/(r+1), r/(r+2), 3*r/(3*r+2), 3*r/(3*r+1), 3*r/(3*r+1),
+                3*r/(3*r+2))
+
+    # The matrix of weights, one row per obs, one col per time
+    #   deaths at 2,3,6,7,8,9
+    wtmat <- matrix(c(1,0,0,0,1,0,0,0,0,0,
+                      0,1,0,1,1,0,0,0,0,0,
+                      0,0,1,1,1,0,1,1,0,0,
+                      0,0,0,1,1,0,1,1,0,0,
+                      0,0,0,0,1,1,1,1,0,0,
+                      0,0,0,0,0,1,1,1,1,1), ncol=6)
+    wtmat <- diag(c(r,1,1,r,1,r,r,r,1,1)) %*% wtmat
+
+    x      <- c(1,0,0,1,0,1,1,1,0,0)
+    status <- c(1,1,1,1,1,1,1,0,0,0)
+    xbar <- colSums(wtmat*x)/ colSums(wtmat)
+    n <- length(x)
+
+   # Table of sums for score and Schoenfeld resids
+    hazmat <- wtmat %*% diag(hazard) #each subject's hazard over time
+    dM <- -hazmat  #Expected part
+    for (i in 1:6) dM[i,i] <- dM[i,i] +1  #observed
+    dM[7,6] <- dM[7,6] +1  # observed
+    mart <- rowSums(dM)
+
+    # Table of sums for score and Schoenfeld resids
+    #  Looks like the last table of appendix E.2.1 of the book
+    resid <- dM * outer(x, xbar, '-')
+    score <- rowSums(resid)
+    scho <- colSums(resid)
+    # We need to split the two tied times up, to match coxph
+    scho <- c(scho[1:5], scho[6]/2, scho[6]/2)
+    var.g <- cumsum(hazard*hazard /c(1,1,1,1,1,2))
+    var.d <- cumsum( (xbar-newx)*hazard)
+
+    surv <- exp(-cumsum(hazard) * exp(beta*newx))
+    varhaz <- (var.g + var.d^2/imat)* exp(2*beta*newx)
+
+    list(loglik=loglik, u=u, imat=imat, xbar=xbar, haz=hazard,
+	     mart=mart,  score=score, rmat=resid,
+		scho=scho, surv=surv, var=varhaz)
+    }
+
+
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+
+fit0 <-coxph(Surv(start, stop, event) ~x, test2, iter=0, method='breslow')
+truth0 <- byhand(0,0)
+aeq(truth0$loglik, fit0$loglik[1])
+aeq(1/truth0$imat, fit0$var)
+aeq(truth0$mart, fit0$resid)
+aeq(truth0$scho, resid(fit0, 'schoen'))
+aeq(truth0$score, resid(fit0, 'score')) 
+sfit <- survfit(fit0, list(x=0), censor=FALSE)
+aeq(sfit$std.err^2, truth0$var)
+aeq(sfit$surv, truth0$surv)
+
+beta1 <- truth0$u/truth0$imat
+fit1 <- coxph(Surv(start, stop, event) ~x, test2, iter=1, ties="breslow")
+aeq(beta1, coef(fit1))
+
+truth <- byhand(-0.084526081, 0)
+fit <- coxph(Surv(start, stop, event) ~x, test2, eps=1e-8, method='breslow')
+aeq(truth$loglik, fit$loglik[2])
+aeq(1/truth$imat, fit$var)
+aeq(truth$mart, fit$resid)
+aeq(truth$scho, resid(fit, 'schoen'))
+aeq(truth$score, resid(fit, 'score'))
+expect <- predict(fit, type='expected', newdata=test2) #force recalc
+aeq(test2$event -fit$resid, expect) #tests the predict function
+
+sfit <- survfit(fit, list(x=0), censor=FALSE)
+aeq(sfit$std.err^2, truth$var) 
+aeq(-log(sfit$surv), (cumsum(truth$haz)))
+
+# Reprise the test, with strata
+#  offseting the times ensures that we will get the wrong risk sets
+#  if strata were not kept separate
+test2b <- rbind(test2, test2, test2)
+test2b$group <- rep(1:3, each= nrow(test2))
+test2b$start <- test2b$start + test2b$group
+test2b$stop  <- test2b$stop  + test2b$group
+fit0 <- coxph(Surv(start, stop, event) ~ x + strata(group), test2b, 
+              iter=0, method="breslow")
+aeq(3*truth0$loglik, fit0$loglik[1])
+aeq(3*truth0$imat, 1/fit0$var)
+aeq(rep(truth0$mart,3), fit0$resid)
+aeq(rep(truth0$scho,3),  resid(fit0, 'schoen'))
+aeq(rep(truth0$score,3), resid(fit0, 'score')) 
+
+fit1 <- coxph(Surv(start, stop, event) ~ x + strata(group), test2b, 
+              iter=1, method="breslow")
+aeq(fit1$coef, beta1)
+
+fit3 <- coxph(Surv(start, stop, event) ~x + strata(group),
+             test2b, eps=1e-8, method='breslow')
+aeq(3*truth$loglik, fit3$loglik[2])
+aeq(3*truth$imat, 1/fit3$var)
+aeq(rep(truth$mart,3), fit3$resid)
+aeq(rep(truth$scho,3), resid(fit3, 'schoen'))
+aeq(rep(truth$score,3), resid(fit3, 'score'))
+
+# 
+# Done with the formal test, now print out lots of bits
+#
+resid(fit)
+resid(fit, 'scor')
+resid(fit, 'scho')
+
+predict(fit, type='lp')
+predict(fit, type='risk')
+predict(fit, type='expected')
+predict(fit, type='terms')
+predict(fit, type='lp', se.fit=T)
+predict(fit, type='risk', se.fit=T)
+predict(fit, type='expected', se.fit=T)
+predict(fit, type='terms', se.fit=T)
+
+summary(survfit(fit))
+summary(survfit(fit, list(x=2)))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/summary_survfit.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/summary_survfit.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/summary_survfit.R	(revision 2476)
@@ -0,0 +1,114 @@
+## check that the scale option to summary.survfit works
+##  Marc Schwartz reported this as a bug in 2.35-3.
+library(survival)
+fit <- survfit(Surv(futime, fustat) ~rx, data=ovarian)
+temp1 <- summary(fit)
+temp2 <- summary(fit, scale=365.25)
+
+all.equal(temp1$time/365.25, temp2$time)
+all.equal(temp1$rmean.endtime/365.25, temp2$rmean.endtime)
+all.equal(temp1$table[,5:6]/365.25,    temp2$table[,5:6])
+temp <- names(fit)
+temp <- temp[!temp  %in% c("time", "table", "rmean.endtime")]
+all.equal(temp1[temp], temp2[temp])
+
+# Reprise, using the rmean option
+temp1 <- summary(fit, rmean=300)
+temp2 <- summary(fit, rmean=300, scale=365.25)
+all.equal(temp1$time/365.25, temp2$time)
+all.equal(temp1$rmean.endtime/365.25, temp2$rmean.endtime)
+all.equal(temp1$table[,5:6]/365.25,    temp2$table[,5:6])
+all.equal(temp1[temp], temp2[temp])
+
+# Repeat using multi-state data.  Time is in months for mgus2
+etime <- with(mgus2, ifelse(pstat==0, futime, ptime))
+event <- with(mgus2, ifelse(pstat==0, 2*death, 1))
+event <- factor(event, 0:2, labels=c("censor", "pcm", "death"))
+mfit <- survfit(Surv(etime, event) ~ sex, mgus2)
+temp1 <- summary(mfit)
+temp2 <- summary(mfit, scale=12)
+
+all.equal(temp1$time/12, temp2$time)
+all.equal(temp1$rmean.endtime/12, temp2$rmean.endtime)
+all.equal(temp1$table[,3]/12,    temp2$table[,3])
+temp <- names(temp1)
+temp <- temp[!temp  %in% c("time", "table", "rmean.endtime")]
+all.equal(temp1[temp], temp2[temp])
+
+# Reprise, using the rmean option
+temp1 <- summary(mfit, rmean=240)
+temp2 <- summary(mfit, rmean=240, scale=12)
+all.equal(temp1$time/12, temp2$time)
+all.equal(temp1$rmean.endtime/12, temp2$rmean.endtime)
+all.equal(temp1$table[,3]/12,    temp2$table[,3])
+all.equal(temp1[temp], temp2[temp])
+
+
+# The n.risk values from summary.survfit were off when there are multiple
+#  curves (version 2.39-2)
+# Verify all components by subscripting
+m1 <- mfit[1,]
+m2 <- mfit[2,]
+s1 <- summary(m1, times=c(0,100, 200, 300))
+s2 <- summary(m2, times=c(0,100, 200, 300))
+s3 <- summary(mfit, times=c(0,100, 200, 300))
+
+tfun <- function(what) {
+    if (is.matrix(s3[[what]]))
+        all.equal(rbind(s1[[what]], s2[[what]]), s3[[what]])
+    else all.equal(c(s1[[what]], s2[[what]]), s3[[what]])
+}
+tfun('n')
+tfun("time")
+tfun("n.risk")
+tfun("n.event")
+tfun("n.censor")
+tfun("prev")
+tfun("p0")
+tfun("std.err")
+tfun("lower")
+tfun("upper")
+
+# Check the cumulative sums
+temp <- rbind(0, 0,
+              colSums(m1$n.event[m1$time <= 100,]),
+              colSums(m1$n.event[m1$time <= 200, ]),
+              colSums(m1$n.event[m1$time <= 300, ]))
+all.equal(s1$n.event, apply(temp,2, diff))
+
+temp <- rbind(0, 0,
+              colSums(m2$n.event[m2$time <= 100,]),
+              colSums(m2$n.event[m2$time <= 200, ]),
+              colSums(m2$n.event[m2$time <= 300, ]))
+all.equal(s2$n.event, apply(temp,2, diff))
+
+temp <- c(0, 0,sum(m1$n.censor[m1$time <= 100]),
+               sum(m1$n.censor[m1$time <= 200]),
+               sum(m1$n.censor[m1$time <= 300]))
+all.equal(s1$n.censor, diff(temp))
+              
+# check the same with survfit objects
+s1 <- summary(fit[1], times=c(0, 200, 400, 600))
+s2 <- summary(fit[2], times=c(0, 200, 400, 600))
+s3 <- summary(fit, times=c(0, 200, 400, 600))
+tfun('n')
+tfun("time")
+tfun("n.risk")
+tfun("n.event")
+tfun("n.censor")
+tfun("surv")
+tfun("std.err")
+tfun("lower")
+tfun("upper")
+
+f2 <- fit[2]
+temp <- c(0, 0, sum(f2$n.event[f2$time <= 200]),
+                sum(f2$n.event[f2$time <= 400]),
+                sum(f2$n.event[f2$time <= 600]))
+all.equal(s2$n.event, diff(temp))
+
+f1 <- fit[1]
+temp <- c(0, 0,sum(f1$n.censor[f1$time <= 200]),
+               sum(f1$n.censor[f1$time <= 400]),
+               sum(f1$n.censor[f1$time <= 600]))
+all.equal(s1$n.censor, diff(temp))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/cancer.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/cancer.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/cancer.Rout.save	(revision 2476)
@@ -0,0 +1,222 @@
+
+R Under development (unstable) (2016-03-23 r70368) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> #
+> # Test out all of the routines on a more complex data set
+> #
+> temp <- survfit(Surv(time, status) ~ ph.ecog, lung)
+> summary(temp, times=c(30*1:11, 365*1:3))
+Call: survfit(formula = Surv(time, status) ~ ph.ecog, data = lung)
+
+1 observation deleted due to missingness 
+                ph.ecog=0 
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+   30     60       3    0.952  0.0268       0.9012        1.000
+   60     58       2    0.921  0.0341       0.8562        0.990
+   90     56       2    0.889  0.0396       0.8146        0.970
+  120     56       0    0.889  0.0396       0.8146        0.970
+  150     55       1    0.873  0.0419       0.7946        0.959
+  180     52       2    0.841  0.0461       0.7553        0.936
+  210     48       2    0.808  0.0498       0.7164        0.912
+  240     45       0    0.808  0.0498       0.7164        0.912
+  270     38       2    0.770  0.0543       0.6709        0.884
+  300     33       2    0.727  0.0591       0.6203        0.853
+  330     29       2    0.681  0.0637       0.5670        0.818
+  365     22       6    0.535  0.0728       0.4100        0.699
+  730      5      11    0.193  0.0707       0.0943        0.396
+
+                ph.ecog=1 
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+   30    111       2    0.982  0.0124       0.9583        1.000
+   60    110       3    0.956  0.0193       0.9186        0.994
+   90    104       4    0.920  0.0255       0.8718        0.972
+  120     99       5    0.876  0.0310       0.8174        0.939
+  150     93       6    0.823  0.0359       0.7556        0.896
+  180     82       8    0.751  0.0407       0.6756        0.836
+  210     68       9    0.666  0.0450       0.5831        0.760
+  240     57       6    0.604  0.0474       0.5176        0.704
+  270     53       4    0.561  0.0487       0.4729        0.665
+  300     46       3    0.527  0.0495       0.4384        0.633
+  330     40       4    0.480  0.0504       0.3903        0.589
+  365     34       4    0.431  0.0509       0.3417        0.543
+  730      7      21    0.114  0.0388       0.0582        0.222
+
+                ph.ecog=2 
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+   30     46       5   0.9000  0.0424      0.82057        0.987
+   60     43       2   0.8600  0.0491      0.76900        0.962
+   90     40       3   0.8000  0.0566      0.69647        0.919
+  120     34       4   0.7174  0.0641      0.60216        0.855
+  150     31       3   0.6541  0.0680      0.53342        0.802
+  180     26       6   0.5275  0.0719      0.40385        0.689
+  210     21       4   0.4431  0.0717      0.32266        0.608
+  240     17       3   0.3766  0.0705      0.26100        0.543
+  270     17       0   0.3766  0.0705      0.26100        0.543
+  300     13       3   0.3102  0.0677      0.20223        0.476
+  330     11       2   0.2624  0.0651      0.16135        0.427
+  365      9       2   0.2147  0.0614      0.12258        0.376
+  730      1       6   0.0371  0.0345      0.00601        0.229
+
+                ph.ecog=3 
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+   30      1       0        1       0            1            1
+   60      1       0        1       0            1            1
+   90      1       0        1       0            1            1
+
+> print(temp[2:3])
+Call: survfit(formula = Surv(time, status) ~ ph.ecog, data = lung)
+
+   1 observation deleted due to missingness 
+            n events median 0.95LCL 0.95UCL
+ph.ecog=1 113     82    306     268     429
+ph.ecog=2  50     44    199     156     288
+> 
+> temp <- survfit(Surv(time, status)~1, lung, type='fleming',
++ 		   conf.int=.9, conf.type='log-log', error='tsiatis')
+> summary(temp, times=30 *1:5)
+Call: survfit(formula = Surv(time, status) ~ 1, data = lung, type = "fleming", 
+    conf.int = 0.9, conf.type = "log-log", error = "tsiatis")
+
+ time n.risk n.event survival std.err lower 90% CI upper 90% CI
+   30    219      10    0.956  0.0135        0.928        0.974
+   60    213       7    0.926  0.0173        0.891        0.950
+   90    201      10    0.882  0.0213        0.842        0.913
+  120    189      10    0.838  0.0244        0.793        0.874
+  150    179      10    0.794  0.0268        0.745        0.834
+> 
+> temp <- survdiff(Surv(time, status) ~ inst, lung, rho=.5)
+> print(temp, digits=6)
+Call:
+survdiff(formula = Surv(time, status) ~ inst, data = lung, rho = 0.5)
+
+n=227, 1 observation deleted due to missingness.
+
+         N  Observed  Expected   (O-E)^2/E   (O-E)^2/V
+inst=1  36 21.190058 17.455181 0.799149708 1.171232977
+inst=2   5  3.173330  1.964395 0.744007932 0.860140808
+inst=3  19 10.663476 11.958755 0.140294489 0.200472362
+inst=4   4  2.245347  3.559344 0.485085848 0.677874608
+inst=5   9  5.010883  4.500982 0.057765161 0.077128402
+inst=6  14  8.862602  7.078516 0.449665221 0.582743947
+inst=7   8  4.445647  4.416133 0.000197254 0.000253632
+inst=10  4  2.901923  2.223283 0.207150016 0.249077097
+inst=11 18  7.807867  9.525163 0.309611863 0.422142221
+inst=12 23 14.009656 12.216768 0.263117640 0.365712493
+inst=13 20  9.140983 11.863298 0.624699853 0.874238212
+inst=15  6  3.170744  3.558447 0.042241456 0.057938955
+inst=16 16  8.870360  9.992612 0.126038005 0.175170113
+inst=21 13  9.263733  4.460746 5.171484268 6.149354145
+inst=22 17  8.278566 11.971473 1.139171459 1.645863937
+inst=26  6  1.627074  3.542694 1.035821659 1.286365543
+inst=32  7  1.792468  2.679904 0.293869782 0.343966668
+inst=33  2  0.929177  0.416202 0.632249272 0.676682390
+
+ Chisq= 15.1  on 17 degrees of freedom, p= 0.590384 
+> 
+> temp <- coxph(Surv(time, status) ~ ph.ecog + ph.karno + pat.karno + wt.loss 
++ 	      + sex + age + meal.cal + strata(inst), lung)
+> summary(temp)
+Call:
+coxph(formula = Surv(time, status) ~ ph.ecog + ph.karno + pat.karno + 
+    wt.loss + sex + age + meal.cal + strata(inst), data = lung)
+
+  n= 167, number of events= 120 
+   (61 observations deleted due to missingness)
+
+                coef  exp(coef)   se(coef)      z Pr(>|z|)   
+ph.ecog    0.7299987  2.0750779  0.2689397  2.714  0.00664 **
+ph.karno   0.0130512  1.0131368  0.0137362  0.950  0.34204   
+pat.karno -0.0140955  0.9860034  0.0093680 -1.505  0.13242   
+wt.loss   -0.0148821  0.9852281  0.0084811 -1.755  0.07931 . 
+sex       -0.6612534  0.5162039  0.2339979 -2.826  0.00471 **
+age        0.0050920  1.0051050  0.0137288  0.371  0.71071   
+meal.cal  -0.0002398  0.9997602  0.0003019 -0.794  0.42701   
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+          exp(coef) exp(-coef) lower .95 upper .95
+ph.ecog      2.0751     0.4819    1.2249    3.5153
+ph.karno     1.0131     0.9870    0.9862    1.0408
+pat.karno    0.9860     1.0142    0.9681    1.0043
+wt.loss      0.9852     1.0150    0.9690    1.0017
+sex          0.5162     1.9372    0.3263    0.8166
+age          1.0051     0.9949    0.9784    1.0325
+meal.cal     0.9998     1.0002    0.9992    1.0004
+
+Concordance= 0.696  (se = 0.115 )
+Rsquare= 0.167   (max possible= 0.912 )
+Likelihood ratio test= 30.6  on 7 df,   p=7.377e-05
+Wald test            = 28.15  on 7 df,   p=0.0002066
+Score (logrank) test = 30.72  on 7 df,   p=7e-05
+
+> cox.zph(temp)
+              rho  chisq      p
+ph.ecog    0.0276 0.1078 0.7427
+ph.karno   0.1331 2.0018 0.1571
+pat.karno  0.0250 0.0841 0.7718
+wt.loss   -0.0386 0.2122 0.6451
+sex        0.0399 0.1800 0.6713
+age        0.0639 0.5600 0.4543
+meal.cal   0.1611 3.6945 0.0546
+GLOBAL         NA 9.0115 0.2518
+> cox.zph(temp, transform='identity')
+              rho   chisq     p
+ph.ecog    0.0221  0.0688 0.793
+ph.karno   0.1217  1.6743 0.196
+pat.karno  0.0302  0.1227 0.726
+wt.loss   -0.0516  0.3790 0.538
+sex        0.0449  0.2280 0.633
+age        0.0719  0.7085 0.400
+meal.cal   0.1808  4.6537 0.031
+GLOBAL         NA 10.0537 0.186
+> 
+> coxph(Surv(rep(0,length(time)), time, status) ~ ph.ecog + ph.karno + pat.karno
++ 		+ wt.loss + sex + age + meal.cal + strata(inst), lung)
+Call:
+coxph(formula = Surv(rep(0, length(time)), time, status) ~ ph.ecog + 
+    ph.karno + pat.karno + wt.loss + sex + age + meal.cal + strata(inst), 
+    data = lung)
+
+               coef exp(coef)  se(coef)     z      p
+ph.ecog    0.729999  2.075078  0.268940  2.71 0.0066
+ph.karno   0.013051  1.013137  0.013736  0.95 0.3420
+pat.karno -0.014095  0.986003  0.009368 -1.50 0.1324
+wt.loss   -0.014882  0.985228  0.008481 -1.75 0.0793
+sex       -0.661253  0.516204  0.233998 -2.83 0.0047
+age        0.005092  1.005105  0.013729  0.37 0.7107
+meal.cal  -0.000240  0.999760  0.000302 -0.79 0.4270
+
+Likelihood ratio test=30.6  on 7 df, p=7.38e-05
+n= 167, number of events= 120 
+   (61 observations deleted due to missingness)
+> 
+> #
+> # Tests of using "."
+> #
+> fit1 <- coxph(Surv(time, status) ~ . - meal.cal - wt.loss - inst, lung)
+> fit2 <- update(fit1, .~. - ph.karno)
+> fit3 <- coxph(Surv(time, status) ~ age + sex + ph.ecog + pat.karno, lung)
+> all.equal(fit2, fit3)
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  1.816   0.088   1.902 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/pyear.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/pyear.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/pyear.R	(revision 2476)
@@ -0,0 +1,213 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+{if (is.R()) mdy.date <- function(m, d, y) {
+    y <- ifelse(y<100, y+1900, y)
+    as.Date(paste(m,d,y, sep='/'), "%m/%d/%Y")
+    }
+else mdy.date <- function(m,d,y) {
+    y <- ifelse(y<100, y+1900, y)
+    timeDate(paste(y, m, d, sep='/'), in.format="%Y/%m/%d")
+    }
+ }
+
+# 
+# Simple case: a single male subject, born 6/6/36 and entered on study 6/6/55.
+#
+
+temp1 <- mdy.date(6,6,36)
+temp2 <- mdy.date(6,6,55)# Now compare the results from person-years
+#
+temp.age <- tcut(temp2-temp1, floor(c(-1, (18:31 * 365.24))),
+	labels=c('0-18', paste(18:30, 19:31, sep='-')))
+temp.yr  <- tcut(temp2, mdy.date(1,1,1954:1965), labels=1954:1964)
+temp.time <- 3700   #total days of fu
+py1 <- pyears(temp.time ~ temp.age + temp.yr, scale=1) #output in days
+
+# The subject should appear in 20 cells
+#    6/6/55 - 12/31/55, 209 days, age 19-20, 1955
+#    1/1/56 -  6/ 4/56, 156 days, age 19-20, 1956
+#    6/5/56 - 12/31/56, 210 days, age 20-21, 1956   (a leap year, and his
+#			birthday computes one day earlier)
+#    1/1/57 -  6/ 5/57, 156 days, age 20-21, 1957
+#    6/6/57 - 12/31/57, 209 days, age 21-22, 1957
+# and etc
+#   with 203 days "off table", ie, beyond the last cell of the table
+#
+# It is a nuisance, but tcut follows 'cut' in that we give the ENDS of
+#  the intervals, whereas the survival tables use the starts of intervals.
+#  Thus this breakdown does not match that in doexpect.s
+#
+xx <- matrix(0, nrow=14, ncol=11)
+xx[cbind(3:11, 3:11)] <- 156
+xx[cbind(3:12, 2:11)] <- c(209, 210, rep(c(209, 209, 209, 210),2))
+dimnames(xx) <- list(temp.age= c('0-18', paste(18:30, 19:31, sep='-')), 
+                     temp.yr = 1954:1964)
+all.equal(xx, py1$pyears)
+all.equal(203, py1$offtable)
+all.equal(1*(xx>0), py1$n)
+
+#
+# Now with expecteds
+#
+py2 <- pyears(temp.time ~ temp.age + temp.yr
+		+ ratetable(age=temp2-temp1, year=temp2, sex=1),
+	     scale=1, ratetable=survexp.us ) #output in days
+all.equal(xx, py2$pyears)
+all.equal(203, py2$offtable)
+all.equal(1*(xx>0), py2$n)
+
+py2b <- pyears(temp.time ~ temp.age + temp.yr,
+	      rmap = list(age=temp2-temp1, year=temp2, sex=1),
+	     scale=1, ratetable=survexp.us ) #output in days
+all.equal(xx, py2b$pyears)
+all.equal(203, py2b$offtable)
+all.equal(1*(xx>0), py2b$n)
+all.equal(py2$expected, py2b$expected)
+
+
+
+py3 <-  pyears(temp.time ~ temp.age + temp.yr,
+		rmap=list(age=temp2-temp1, year=temp2, sex=1),
+	     scale=1, ratetable=survexp.us , expect='pyears')
+all.equal(py2$n, py3$n)
+all.equal(py2$pyear, py3$pyear)
+all.equal(py3$n, 1*(py3$expect>0))
+
+# Now, compute the py3 result "by hand".  Since there is only one person
+#   it can be derived from py2.
+#
+xx1 <- py2$expect[py2$n>0]   		# the hazard over each interval
+cumhaz <- cumsum(c(0, xx1[-length(xx1)]))     # the cumulative hazard	
+xx2 <- py3$expect[py3$n>0]   		# the expected number of person days
+xx3 <- py3$pyears[py3$n>0]   		# the potential number of person days
+
+# This is the integral of the curve "exp(-haz *t)" over the interval
+integral <- xx3 * exp(-cumhaz)* (1- exp(-xx1))/ xx1
+# They might not be exactly equal, since the C code tracks changes in the
+#   rate tables that occur -within- an interval.  So try for 6 digits
+all.equal(round(integral,3), round(xx2,3))
+
+# Cut off the bottom of the table, instead of the side
+temp.age <- tcut(temp2-temp1, floor(c(-1, (18:27 * 365.24))),
+	labels=c('0-18', paste(18:26, 19:27, sep='-')))
+
+py4 <- eval(py3$call)
+all.equal(py4$pyear, py3$pyear[1:10,])
+all.equal(py4$expect, py3$expect[1:10,])
+
+
+rm(temp.age, integral, xx1, xx2, xx3, cumhaz, py1, py2, py3, py4)
+rm(temp1, temp2, temp.yr, temp.time, xx)
+
+
+
+
+# 
+# Simple case: a single male subject, born 6/6/36 and entered on study 6/6/55.
+#
+
+temp1 <- mdy.date(6,6,36)
+temp2 <- mdy.date(6,6,55)# Now compare the results from person-years
+#
+temp.age <- tcut(temp2-temp1, floor(c(-1, (18:31 * 365.24))),
+	labels=c('0-18', paste(18:30, 19:31, sep='-')))
+temp.yr  <- tcut(temp2, mdy.date(1,1,1954:1965), labels=1954:1964)
+temp.time <- 3700   #total days of fu
+py1 <- pyears(temp.time ~ temp.age + temp.yr, scale=1) #output in days
+
+# The subject should appear in 20 cells
+#    6/6/55 - 12/31/55, 209 days, age 19-20, 1955
+#    1/1/56 -  6/ 4/56, 156 days, age 19-20, 1956
+#    6/5/56 - 12/31/56, 210 days, age 20-21, 1956   (a leap year, and his
+#			birthday computes one day earlier)
+#    1/1/57 -  6/ 5/57, 156 days, age 20-21, 1957
+#    6/6/57 - 12/31/57, 209 days, age 21-22, 1957
+# and etc
+#   with 203 days "off table", ie, beyond the last cell of the table
+#
+# It is a nuisance, but tcut follows 'cut' in that we give the ENDS of
+#  the intervals, whereas the survival tables use the starts of intervals.
+#
+xx <- matrix(0, nrow=14, ncol=11)
+xx[cbind(3:11, 3:11)] <- 156
+xx[cbind(3:12, 2:11)] <- c(209, 210, rep(c(209, 209, 209, 210),2))
+dimnames(xx) <- list(temp.age= c('0-18', paste(18:30, 19:31, sep='-')), 
+                     temp.yr = 1954:1964)
+all.equal(xx, py1$pyears)
+all.equal(203, py1$offtable)
+all.equal(1*(xx>0), py1$n)
+
+#
+# Now with expecteds
+#
+py2 <- pyears(temp.time ~ temp.age + temp.yr
+		+ ratetable(age=temp2-temp1, year=temp2, sex=1),
+	     scale=1, ratetable=survexp.us ) #output in days
+all.equal(xx, py2$pyears)
+all.equal(203, py2$offtable)
+all.equal(1*(xx>0), py2$n)
+
+
+py3 <-  pyears(temp.time ~ temp.age + temp.yr
+		+ ratetable(age=temp2-temp1, year=temp2, sex=1),
+	     scale=1, ratetable=survexp.us , expect='pyears')
+all.equal(py2$n, py3$n)
+all.equal(py2$pyear, py3$pyear)
+all.equal(py3$n, 1*(py3$expect>0))
+
+# Now, compute the py3 result "by hand".  Since there is only one person
+#   it can be derived from py2.
+#
+xx1 <- py2$expect[py2$n>0]   		# the hazard over each interval
+cumhaz <- cumsum(c(0, xx1[-length(xx1)]))     # the cumulative hazard	
+xx2 <- py3$expect[py3$n>0]   		# the expected number of person days
+xx3 <- py3$pyears[py3$n>0]   		# the potential number of person days
+
+# This is the integral of the curve "exp(-haz *t)" over the interval
+integral <- xx3 * exp(-cumhaz)* (1- exp(-xx1))/ xx1
+# They might not be exactly equal, since the C code tracks changes in the
+#   rate tables that occur -within- an interval.  So try for 6 digits
+all.equal(round(integral,3), round(xx2,3))
+
+# Cut off the bottom of the table, instead of the side
+temp.age <- tcut(temp2-temp1, floor(c(-1, (18:27 * 365.24))),
+	labels=c('0-18', paste(18:26, 19:27, sep='-')))
+
+py4 <- eval(py3$call)
+all.equal(py4$pyear, py3$pyear[1:10,])
+all.equal(py4$expect, py3$expect[1:10,])
+
+
+rm(temp.age, integral, xx1, xx2, xx3, cumhaz, py1, py2, py3, py4)
+rm(temp1, temp2, temp.yr, temp.time, xx)
+
+
+
+
+#
+# Create a "user defined" rate table, using the smoking data
+#
+temp <- scan("data.smoke")/100000
+temp <-  matrix(temp, ncol=8, byrow=T)
+smoke.rate <- c(rep(temp[,1],6), rep(temp[,2],6), temp[,3:8])
+attributes(smoke.rate) <- list(
+	dim=c(7,2,2,6,3),
+	dimnames=list(c("45-49","50-54","55-59","60-64","65-69","70-74","75-79"),
+		      c("1-20", "21+"),
+		      c("Male","Female"),
+		      c("<1", "1-2", "3-5", "6-10", "11-15", ">=16"),
+		      c("Never", "Current", "Former")),
+	dimid=c("age", "amount", "sex", "duration", "status"),
+	factor=c(0,1,1,0,1),
+	cutpoints=list(c(45,50,55,60,65,70,75),NULL, NULL,
+				     c(0,1,3,6,11,16),NULL),
+	class='ratetable'
+	)
+rm(temp)
+
+is.ratetable(smoke.rate)
+summary(smoke.rate)
+print(smoke.rate)
+
+summary(smoke.rate[1:3,,1,,])  #test subscripting
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book7.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book7.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book7.R	(revision 2476)
@@ -0,0 +1,56 @@
+library(survival)
+options(na.action=na.exclude)
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+
+#
+# Tests from the appendix of Therneau and Grambsch
+#  Data set 1 + exact method
+
+test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0))
+
+byhand7 <- function(beta) {
+    r <- exp(beta)
+    loglik <- 2*(beta - log(3*r + 3))
+    u <- 2/(r+1)
+    imat <- 2*r/(r+1)^2
+    haz <- c(1/(3*r+3), 2/(r+3), 0, 1 )
+                 
+    ties <- c(1,1,2,2,3,4)
+    wt <- c(r,r,r,1,1,1)
+    mart <- c(1,0,1,1,0,1) -  wt* (cumsum(haz))[ties]  #martingale residual
+
+    list(loglik=loglik, u=u, imat=imat, mart=mart)
+}
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+
+fit0 <-coxph(Surv(time, status) ~x, test1, iter=0, method='exact')
+truth0 <- byhand7(0)
+aeq(truth0$loglik, fit0$loglik[1])
+aeq(1/truth0$imat, fit0$var)
+aeq(truth0$mart, fit0$resid[c(2:6,1)])
+
+fit1 <- coxph(Surv(time, status) ~x, test1, iter=1, method='exact')
+aeq(fit1$coef, truth0$u*fit0$var)
+truth1 <- byhand7(fit1$coef)
+aeq(fit1$loglik[2], truth1$loglik)
+aeq(1/truth1$imat, fit1$var)
+aeq(truth1$mart, resid(fit1)[c(3:7,1)])
+
+# Beta is infinite for this model, so we will get a warning message
+fit2 <-  coxph(Surv(time, status) ~x, test1, method='exact')
+aeq(resid(fit2)[-2], c(0, 2/3, -1/3, -4/3,  1, 0))  #values from the book
+
+
+#
+# Now a multivariate case: start/stop data uses a different C routine
+#
+zz <- rep(0, nrow(lung))
+fit1 <- coxph(Surv(time, status) ~ age + ph.ecog + sex, lung, method="exact")
+fit2 <- coxph(Surv(zz, time, status) ~ age + ph.ecog + sex, lung,
+              method="exact")
+aeq(fit1$loglik, fit2$loglik)
+aeq(fit1$var, fit2$var)
+aeq(fit1$score, fit2$score)
+aeq(fit1$resid, fit2$resid)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survfit2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survfit2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survfit2.R	(revision 2476)
@@ -0,0 +1,13 @@
+library(survival)
+#
+# Check out the Dory&Korn confidence interval option
+#
+tdata <- data.frame(time= 1:10,
+                    status=c(1,0,1,0,1,0,0,0,1,0))
+
+fit1 <- survfit(Surv(time, status) ~1, tdata, conf.lower='modified')
+fit2 <- survfit(Surv(time, status) ~1, tdata)
+
+stdlow <- fit2$std * sqrt(c(1, 10/9, 1, 8/7, 1, 6/5, 6/4, 6/3, 1, 2/1))
+lower <- exp(log(fit2$surv) - qnorm(.975)*stdlow)
+all.equal(fit1$lower, lower, check.attributes=FALSE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/surv.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/surv.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/surv.Rout.save	(revision 2476)
@@ -0,0 +1,63 @@
+
+R version 3.0.1 (2013-05-16) -- "Good Sport"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> #
+> library(survival)
+Loading required package: splines
+> 
+> # Some simple tests of the Surv function
+> #  The first two are motivated by a bug, pointed out by Kevin Buhr,
+> #    where a mixture of NAs and invalid values didn't work right
+> #  Even for the simplest things a test case is good.
+> #  All but the third should produce warning messages
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> temp <- Surv(c(1, 10, 20, 30), c(2, NA, 0, 40), c(1,1,1,1))
+Warning message:
+In Surv(c(1, 10, 20, 30), c(2, NA, 0, 40), c(1, 1, 1, 1)) :
+  Stop time must be > start time, NA created
+> aeq(temp, c(1,10,NA,30,  2,NA,0,40, 1,1,1,1))
+[1] TRUE
+> 
+> temp <- Surv(c(1, 10, 20, 30), c(2, NA, 0, 40), type='interval2')
+Warning message:
+In Surv(c(1, 10, 20, 30), c(2, NA, 0, 40), type = "interval2") :
+  Invalid interval: start > stop, NA created
+> aeq(temp, c(1,10,20,30,  2,1,1,40, 3,0,NA,3))
+[1] TRUE
+> 
+> #No error
+> temp <- Surv(1:5)
+> aeq(temp, c(1:5, 1,1,1,1,1))
+[1] TRUE
+> 
+> temp1 <- Surv(c(1,10,NA, 30, 30), c(1,NA,10,20, 40), type='interval2')
+Warning message:
+In Surv(c(1, 10, NA, 30, 30), c(1, NA, 10, 20, 40), type = "interval2") :
+  Invalid interval: start > stop, NA created
+> temp2 <- Surv(c(1,10,10,30,30), c(9, NA, 5, 20,40), c(1, 0, 2,3,3),
++               type='interval')
+Warning message:
+In Surv(c(1, 10, 10, 30, 30), c(9, NA, 5, 20, 40), c(1, 0, 2, 3,  :
+  Invalid interval: start > stop, NA created
+> aeq(temp1, temp2)
+[1] TRUE
+> aeq(temp1, c(1,10,10,30,30, 1,1,1,1, 40, 1,0,2,NA,3))
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  0.292   0.052   0.336 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_rat2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_rat2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_rat2.Rout.save	(revision 2476)
@@ -0,0 +1,157 @@
+
+R Under development (unstable) (2016-01-29 r70039) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> # From Gail, Sautner and Brown, Biometrics 36, 255-66, 1980
+> 
+> # 48 rats were injected with a carcinogen, and then randomized to either
+> # drug or placebo.  The number of tumors ranges from 0 to 13; all rats were
+> # censored at 6 months after randomization.
+> 
+> # Variables: rat, treatment (1=drug, 0=control), o
+> # 	   observation # within rat,
+> #	   (start, stop] status
+> # The raw data has some intervals of zero length, i.e., start==stop.
+> #  We add .1 to these times as an approximate solution
+> #
+> rat2 <- read.table('data.rat2', col.names=c('id', 'rx', 'enum', 'start',
++ 				  'stop', 'status'))
+> temp1 <- rat2$start
+> temp2 <- rat2$stop
+> for (i in 1:nrow(rat2)) {
++     if (temp1[i] == temp2[i]) {
++ 	temp2[i] <- temp2[i] + .1
++ 	if (i < nrow(rat2) && rat2$id[i] == rat2$id[i+1]) {
++ 	    temp1[i+1] <- temp1[i+1] + .1
++ 	    if (temp2[i+1] <= temp1[i+1]) temp2[i+1] <- temp1[i+1]
++ 	    }
++         }
++     }
+> rat2$start <- temp1
+> rat2$stop  <- temp2
+> 
+> r2fit0 <- coxph(Surv(start, stop, status) ~ rx + cluster(id), rat2)
+> 
+> r2fitg <-  coxph(Surv(start, stop, status) ~ rx + frailty(id), rat2)
+> r2fitm <-  coxph(Surv(start, stop, status) ~ rx + frailty.gaussian(id), rat2)
+> 
+> r2fit0
+Call:
+coxph(formula = Surv(start, stop, status) ~ rx + cluster(id), 
+    data = rat2)
+
+     coef exp(coef) se(coef) robust se     z       p
+rx -0.827     0.438    0.151     0.204 -4.05 5.2e-05
+
+Likelihood ratio test=32.9  on 1 df, p=9.89e-09
+n= 253, number of events= 212 
+> r2fitg
+Call:
+coxph(formula = Surv(start, stop, status) ~ rx + frailty(id), 
+    data = rat2)
+
+              coef se(coef)    se2  Chisq   DF       p
+rx          -0.838    0.219  0.152 14.572  1.0 0.00013
+frailty(id)                        57.285 26.4 0.00045
+
+Iterations: 7 outer, 26 Newton-Raphson
+     Variance of random effect= 0.317   I-likelihood = -779.1 
+Degrees of freedom for terms=  0.5 26.3 
+Likelihood ratio test=120  on 26.8 df, p=8.43e-14  n= 253 
+> r2fitm
+Call:
+coxph(formula = Surv(start, stop, status) ~ rx + frailty.gaussian(id), 
+    data = rat2)
+
+                       coef se(coef)    se2  Chisq   DF       p
+rx                   -0.790    0.220  0.154 12.924  1.0 0.00032
+frailty.gaussian(id)                        60.939 24.9 7.3e-05
+
+Iterations: 6 outer, 23 Newton-Raphson
+     Variance of random effect= 0.303 
+Degrees of freedom for terms=  0.5 24.9 
+Likelihood ratio test=118  on 25.4 df, p=6.99e-14  n= 253 
+> 
+> #This example is unusual: the frailties variances end up about the same,
+> #  but the effect on rx differs.  Double check it
+> # Because of different iteration paths, the coef won't be exactly the
+> #     same, but darn close.
+> 
+> temp <- coxph(Surv(start, stop, status) ~ rx + offset(r2fitm$frail[id]), rat2)
+> all.equal(temp$coef, r2fitm$coef[1], tolerance=1e-7)
+[1] TRUE
+> 
+> temp <- coxph(Surv(start, stop, status) ~ rx + offset(r2fitg$frail[id]), rat2)
+> all.equal(temp$coef, r2fitg$coef[1], tolerance=1e-7)
+[1] TRUE
+> 
+> #
+> # What do I get with AIC
+> #
+> r2fita1 <- coxph(Surv(start, stop, status) ~ rx + frailty(id, method='aic'),
++ 		 rat2)
+> r2fita2 <- coxph(Surv(start, stop, status) ~ rx + frailty(id, method='aic',
++ 							  dist='gauss'), rat2)
+> r2fita3 <- coxph(Surv(start, stop, status) ~ rx + frailty(id, dist='t'),
++ 		 rat2)
+> 
+> r2fita1
+Call:
+coxph(formula = Surv(start, stop, status) ~ rx + frailty(id, 
+    method = "aic"), data = rat2)
+
+                            coef se(coef)    se2  Chisq   DF       p
+rx                        -0.838    0.230  0.151 13.315  1.0 0.00026
+frailty(id, method = "aic                        60.406 28.2 0.00039
+
+Iterations: 10 outer, 34 Newton-Raphson
+     Variance of random effect= 0.375   I-likelihood = -779.2 
+Degrees of freedom for terms=  0.4 28.2 
+Likelihood ratio test=124  on 28.6 df, p=7.92e-14  n= 253 
+> r2fita2
+Call:
+coxph(formula = Surv(start, stop, status) ~ rx + frailty(id, 
+    method = "aic", dist = "gauss"), data = rat2)
+
+                            coef se(coef)    se2  Chisq   DF       p
+rx                        -0.785    0.245  0.154 10.300  1.0  0.0013
+frailty(id, method = "aic                        70.383 28.5 2.1e-05
+
+Iterations: 9 outer, 33 Newton-Raphson
+     Variance of random effect= 0.436 
+Degrees of freedom for terms=  0.4 28.5 
+Likelihood ratio test=125  on 28.9 df, p=5.93e-14  n= 253 
+> r2fita3
+Call:
+coxph(formula = Surv(start, stop, status) ~ rx + frailty(id, 
+    dist = "t"), data = rat2)
+
+                          coef se(coef)    se2  Chisq DF       p
+rx                      -0.790    0.254  0.157  9.667  1 0.00188
+frailty(id, dist = "t")                        64.721 30 0.00024
+
+Iterations: 7 outer, 29 Newton-Raphson
+     Variance of random effect= 0.78 
+Degrees of freedom for terms=  0.4 30.0 
+Likelihood ratio test=126  on 30.4 df, p=1.39e-13  n= 253 
+> 
+> proc.time()
+   user  system elapsed 
+  0.288   0.024   0.306 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/singtest.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/singtest.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/singtest.Rout.save	(revision 2476)
@@ -0,0 +1,55 @@
+
+R version 2.15.2 (2012-10-26) -- "Trick or Treat"
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # A simple test of an overdetermined system
+> #  Should give a set of NA coefficients
+> #
+> test1 <- data.frame(time=  c(4, 3,1,1,2,2,3),
++ 		    status=c(1,NA,1,0,1,1,0),
++ 		    x=     c(0, 2,1,1,1,0,0))
+> 
+> temp <- rep(0:3, rep(7,4))
+> 
+> stest <- data.frame(start  = 10*temp,
++ 		    stop   = 10*temp + test1$time,
++ 		    status = rep(test1$status,4),
++ 		    x      = c(test1$x+ 1:7, rep(test1$x,3)),
++ 		    epoch  = rep(1:4, rep(7,4)))
+> 
+> # Will create a warning about a singular X matrix
+> fit1 <- coxph(Surv(start, stop, status) ~ x * factor(epoch), stest)
+Warning message:
+In coxph(Surv(start, stop, status) ~ x * factor(epoch), stest) :
+  X matrix deemed to be singular; variable 2 3 4
+> fit1$coef    # elements 2:4 should be NA
+               x   factor(epoch)2   factor(epoch)3   factor(epoch)4 
+       0.1041579               NA               NA               NA 
+x:factor(epoch)2 x:factor(epoch)3 x:factor(epoch)4 
+       1.5726996        1.5726996        1.5726996 
+> all.equal(is.na(fit1$coef), c(F,T,T,T,F,F,F), check.attributes=FALSE)
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  0.168   0.032   0.193 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/expected.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/expected.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/expected.Rout.save	(revision 2476)
@@ -0,0 +1,323 @@
+
+R version 3.0.1 (2013-05-16) -- "Good Sport"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #  Tests of expected survival
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> #
+> # This makes several scripts easier
+> #  Certain tests depended in the now-depreciated date library
+> {if (is.R()) mdy.date <- function(m, d, y) {
++     y <- ifelse(y<100, y+1900, y)
++     as.Date(paste(m,d,y, sep='/'), "%m/%d/%Y")
++     }
++ else mdy.date <- function(m,d,y) {
++     y <- ifelse(y<100, y+1900, y)
++     timeDate(paste(y, m, d, sep='/'), in.format="%Y/%m/%d")
++     }
++  }
+> 
+> # This function takes a single subject and walks down the rate table
+> # Input: the vector of starting points, futime, and a ratetable
+> # Output: the full history of walking through said table. Let n= #unique
+> #   rates that were used
+> #       cell = n by #dims of the table: index of the table cell
+> #       days = time spent in cell
+> #       hazard= accumulated hazard = days * rate
+> # This does not do date or factor conversions -- start has to be numeric
+> #
+> ratewalk <- function(start, futime, ratetable=survexp.us) {
++     if (!is.ratetable(ratetable)) stop("Bad rate table")
++     ratedim <- dim(ratetable)
++     nvar <- length(ratedim)
++     if (length(start) != nvar) stop("Wrong length for start")
++     if (futime <=0) stop("Invalid futime")
++ 
++     attR <- attributes(ratetable)
++     discrete <- (attR$type ==1)  #discrete categories
++ 
++     maxn <- sum(!discrete)*prod(ratedim[!discrete]) #most cells you can hit
++     cell <- matrix(0, nrow=maxn, ncol=nvar)
++     days <- hazard <- double(maxn)
++ 
++     eps <- 1e-8  #Avoid round off error
++     n <- 0
++     while (futime >0) {
++         n <- n+1
++         #what cell am I in?
++         # Note that at the edges of the rate table, we use the edge: if
++         #   it only goes up the the year 2000, year 2000 is used for any
++         #   dates beyond.  This effectively eliminates one boundary
++         cell[n,discrete] <- start[discrete]
++         edge <- futime  #time to nearest edge, or finish
++         for (j in which(!discrete)) {
++             indx <- sum(start[j] >= attR$cutpoints[[j]]-eps)
++             cell[n, j] <- max(1, indx)
++             if (indx < ratedim[j]) 
++                 edge <- min(edge, (attR$cutpoints[[j]])[indx+1] - start[j])
++             }
++         days[n] <- edge  #this many days in the cell
++         # using a matrix as a subscript is so handy sometimes
++         hazard[n] <- edge * (as.matrix(ratetable))[cell[n,,drop=F]]
++         futime <- futime - edge  #amount of time yet to account for
++         start[!discrete] <- start[!discrete] + edge  #walk forward in time
++         }
++     list(cell=cell[1:n,], days=days[1:n], hazard=hazard[1:n])
++     }
+> 
+> # Simple test of ratewalk: 20 years old, start on 7Sep 1960 (day 250)
+> #   116 days at the 1960, 20 year old male rate, through the end of the day
+> #     on 12/31/1960, then 84 days at the 1961 rate.  
+> #   The decennial q for 1960 males is .00169.
+> zz <- ratewalk(c(20.4*365.25, 1, 250), 200)
+> all.equal(zz$hazard[1], -(116/365.25)*log(1-.00169))
+[1] TRUE
+> all.equal(zz$days, c(116,84))
+[1] TRUE
+> 
+>         
+> #
+> # Simple case 1: a single male subject, born 1/1/36 and entered on study 1/2/55
+> #
+> #  Compute the 1, 5, 10 and 12 year expected survival
+> 
+> temp1 <- mdy.date(1,1,36)
+> temp2 <- mdy.date(1,2,55)
+> exp1 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=1, race='white'),
++ 		    ratetable=survexp.usr,times=c(366, 1827, 3653, 4383))
+> 
+> tyear <- as.numeric(temp2 - mdy.date(1,1,1960))
+> h1 <- ratewalk(c(temp2-temp1, 1, 1, tyear), 366,  survexp.usr)
+> h2 <- ratewalk(c(temp2-temp1, 1, 1, tyear), 1827, survexp.usr)
+> h3 <- ratewalk(c(temp2-temp1, 1, 1, tyear), 3653, survexp.usr)
+> h4 <- ratewalk(c(temp2-temp1, 1, 1, tyear), 4383, survexp.usr)
+> 
+> aeq(-log(exp1$surv), c(sum(h1$hazard), sum(h2$hazard), sum(h3$hazard),
++                        sum(h4$hazard)))
+[1] TRUE
+> 
+> 
+> # Just a little harder: 
+> #   Born 3/1/25 and entered the study on 6/10/55.  The code creates shifted
+> #   dates to align with US rate tables - entry is 59 days earlier (days from
+> #   1/1/25 to 3/1/25).
+> #
+> temp1 <- mdy.date(3,1,25)
+> temp2 <- mdy.date(6,10,55)
+> exp1 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=2, race='black'),
++ 		    ratetable=survexp.usr,times=c(366, 1827, 3653, 4383))
+> 
+> tyear <- as.numeric(temp2 - mdy.date(1,1,1960)) - 59
+> h1 <- ratewalk(c(temp2-temp1, 2, 2, tyear), 366,  survexp.usr)
+> h2 <- ratewalk(c(temp2-temp1, 2, 2, tyear), 1827, survexp.usr)
+> h3 <- ratewalk(c(temp2-temp1, 2, 2, tyear), 3653, survexp.usr)
+> h4 <- ratewalk(c(temp2-temp1, 2, 2, tyear), 4383, survexp.usr)
+> 
+> aeq(-log(exp1$surv), c(sum(h1$hazard), sum(h2$hazard), sum(h3$hazard),
++                        sum(h4$hazard)))
+[1] TRUE
+> 
+> #
+> # Simple case 2: make sure that the averages are correct, for Ederer method
+> #
+> #  Compute the 1, 5, 10 and 12 year expected survival
+> 
+> temp1 <- mdy.date(1:6,6:11,1890:1895)
+> temp2 <- mdy.date(6:1,11:6,c(55:50))
+> temp3 <- c(1,2,1,2,1,2)
+> age <- temp2 - temp1
+> 
+> exp1 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=temp3),
++ 		       times=c(366, 1827, 3653, 4383))
+> exp2 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=temp3) + I(1:6),
++ 			times=c(366, 1827, 3653, 4383))
+> exp3 <- exp2$surv
+> for (i in 1:length(temp1)){
++     exp3[,i] <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=temp3),
++                         times=c(366, 1827, 3653, 4383), subset=i)$surv
++     }
+> 
+>              
+> print(aeq(exp2$surv, exp3))
+[1] TRUE
+> print(all.equal(exp1$surv, apply(exp2$surv, 1, mean)))
+[1] TRUE
+> 
+> # They agree, but are they right?
+> #
+> for (i in 1:length(temp1)) {
++     offset <- as.numeric(temp1[i] - mdy.date(1,1, 1889+i))
++     tyear = (as.numeric(temp2[i] - mdy.date(1,1,1960))) - offset
++     haz1 <- ratewalk(c((temp2-temp1)[i], temp3[i], tyear), 366)
++     haz2 <- ratewalk(c((temp2-temp1)[i], temp3[i], tyear), 1827)
++     haz3 <- ratewalk(c((temp2-temp1)[i], temp3[i], tyear), 3653)
++     haz4 <- ratewalk(c((temp2-temp1)[i], temp3[i], tyear), 4383)
++     print(aeq(-log(exp2$surv[,i]), c(sum(haz1$hazard), sum(haz2$hazard),
++                                     sum(haz3$hazard), sum(haz4$hazard))))
++     }
+[1] TRUE
+[1] TRUE
+[1] TRUE
+[1] TRUE
+[1] TRUE
+[1] TRUE
+> 
+> #
+> # Check that adding more time points doesn't change things
+> #
+> exp4 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=temp3) + I(1:6),
++ 		times=sort(c(366, 1827, 3653, 4383, 30*(1:100))))
+> aeq(exp4$surv[match(exp2$time, exp4$time),], exp2$surv)
+[1] TRUE
+> 
+> exp4 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=temp3),
++ 		times=sort(c(366, 1827, 3653, 4383, 30*(1:100))))
+> aeq(exp1$surv, exp4$surv[match(exp1$time, exp4$time, nomatch=0)])
+[1] TRUE
+> 
+> 
+> #
+> # Now test Hakulinen's method, assuming an analysis date of 3/1/57
+> #
+> futime <- mdy.date(3,1,57) - temp2
+> xtime  <- sort(c(futime, 30, 60, 185, 365))
+> 
+> exp1 <- survexp(futime ~ ratetable(year=temp2, age=(temp2-temp1), sex=1),
++ 		times=xtime, conditional=F)
+> exp2 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=1) + I(1:6),
++ 			times=futime)
+> 
+> wt <- rep(1,6)
+> con <- double(6)
+> for (i in 1:6) {
++     con[i] <- sum(exp2$surv[i,i:6])/sum(wt[i:6])
++     wt <- exp2$surv[i,]
++     }
+> 
+> exp1$surv[match(futime, xtime)]
+[1] 0.9557362 0.9285840 0.9025661 0.8774220 0.8532489 0.8297416
+> aeq(exp1$surv[match(futime, xtime)], cumprod(con))
+[1] TRUE
+> 
+> 
+> #
+> # Now for the conditional method
+> #
+> exp1 <- survexp(futime ~ ratetable(year=temp2, age=(temp2-temp1), sex=1),
++ 		times=xtime, conditional=T)
+> 
+> cond <- exp2$surv
+> for (i in 6:2) cond[i,] <- (cond[i,]/cond[i-1,])  #conditional survival
+> for (i in 1:6) con[i] <- exp(mean(log(cond[i, i:6])))
+> 
+> all.equal(exp1$surv[match(futime, xtime)], cumprod(con))
+[1] TRUE
+> cumprod(con)
+[1] 0.9556656 0.9284398 0.9023612 0.8771798 0.8529944 0.8294940
+> 
+> #
+> # Test out expected survival, when the parent pop is another Cox model
+> #
+> test1 <- data.frame(time=  c(4, 3,1,1,2,2,3),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0))
+> 
+> fit <- coxph(Surv(time, status) ~x, test1, method='breslow')
+> 
+> dummy <- data.frame(time=c(.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5),
++ 		    status=c(1,0,1,0,1,0,1,1,1), x=(-4:4)/2)
+> 
+> efit <- survexp(time ~ ratetable(x=x), dummy, ratetable=fit, cohort=F)
+> 
+> #
+> # Now, compare to the true answer, which is known to us
+> #
+> ss <- exp(fit$coef)
+> haz <- c( 1/(3*ss+3), 2/(ss+3), 1) #truth at time 0,1,2,4+
+> chaz <- cumsum(c(0,haz))
+> chaz2 <- chaz[c(1,2,2,3,3,3,3,4,4)]
+> 
+> risk <- exp(fit$coef*dummy$x)
+> efit2 <- exp(-risk*chaz2)
+> 
+> all.equal(as.vector(efit), as.vector(efit2))  #ignore mismatched name attrib
+[1] TRUE
+> 
+> #
+> # Now test the direct-adjusted curve (Ederer)
+> #
+> efit <- survexp( ~ ratetable(x=x), dummy, ratetable=fit, se=F)
+> direct <- survfit(fit, newdata=dummy, censor=FALSE)$surv
+> 
+> chaz <- chaz[-1]                  #drop time 0
+> d2 <- exp(outer(-chaz, risk))
+> all.equal(as.vector(direct), as.vector(d2))   #this tests survfit
+[1] TRUE
+> 
+> all.equal(as.vector(efit$surv), as.vector(apply(direct,1,mean)))  #direct
+[1] TRUE
+> 
+> # Check out the "times" arg of survexp
+> efit2 <- survexp( ~ ratetable(x=x), dummy, ratetable=fit, se=F,
++                   times=c(.5, 2, 3.5,6))
+> aeq(efit2$surv, c(1, efit$surv[c(2,2,3)]))
+[1] TRUE
+> 
+> #
+> # Now test out the Hakulinen method (Bonsel's method)
+> #  By construction, we have a large correlation between x and censoring
+> #
+> # In theory, hak1 and hak2 would be the same.  In practice, like a KM and
+> #   F-H, they differ when n is small.
+> #
+> efit <- survexp( time ~ ratetable(x=x), dummy, ratetable=fit, se=F)
+> 
+> surv  <- wt <- rep(1,9)
+> tt <- c(1,2,4)
+> hak1 <- hak2 <- NULL
+> for (i in 1:3) {
++     wt[dummy$time < tt[i]]  <- 0
++     hak1 <- c(hak1,  exp(-sum(haz[i]*risk*surv*wt)/sum(surv*wt)))
++     hak2 <- c(hak2,  sum(exp(-haz[i]*risk)*surv*wt)/sum(surv*wt))
++     surv <- surv * exp(-haz[i]*risk)
++     }
+> 
+> all.equal(as.vector(efit$surv), as.vector(cumprod(hak1)))
+[1] TRUE
+> 
+> #
+> #  Now do the conditional estimate
+> #
+> efit <- survexp( time ~ ratetable(x=x), dummy, ratetable=fit, se=F,
++ 			conditional=T)
+> wt <- rep(1,9)
+> cond <- NULL
+> for (i in 1:3) {
++     wt[dummy$time < tt[i]]  <- 0
++     cond <- c(cond,  exp(-sum(haz[i]*risk*wt)/sum(wt)))
++     }
+> 
+> all.equal(as.vector(efit$surv), as.vector(cumprod(cond)))
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  0.692   0.076   0.766 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_stanford.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_stanford.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_stanford.Rout.save	(revision 2476)
@@ -0,0 +1,111 @@
+
+R version 2.9.0 (2009-04-17)
+Copyright (C) 2009 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # The Stanford data from 1980 is used in Escobar and Meeker, Biometrics 1992.
+> #	t5 = T5 mismatch score
+> #  Their case numbers correspond to a data set sorted by age
+> #
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> stanford2$t5 <- ifelse(stanford2$t5 <0, NA, stanford2$t5)
+> stanford2 <- stanford2[order(stanford2$age, stanford2$time),]
+> stanford2$time <- ifelse(stanford2$time==0, .5, stanford2$time)
+> 
+> cage <- stanford2$age - mean(stanford2$age)
+> fit1 <- survreg(Surv(time, status) ~ cage + I(cage^2), stanford2,
++ 		dist='lognormal')
+> fit1
+Call:
+survreg(formula = Surv(time, status) ~ cage + I(cage^2), data = stanford2, 
+    dist = "lognormal")
+
+Coefficients:
+ (Intercept)         cage    I(cage^2) 
+ 6.717591081 -0.061908619 -0.003504315 
+
+Scale= 2.362872 
+
+Loglik(model)= -863.6   Loglik(intercept only)= -868.8
+	Chisq= 10.5 on 2 degrees of freedom, p= 0.0053 
+n= 184 
+> ldcase <- resid(fit1, type='ldcase')
+> ldresp <- resid(fit1, type='ldresp')
+> # The ldcase and ldresp should be compared to table 1 in Escobar and 
+> #  Meeker, Biometrics 1992, p519; the colums they label as (1/2) A_{ii}
+> #  They give data for selected cases, entered below as mdata
+> mdata <- cbind(c(1,2,4,5,12,16,23,61,66,72,172,182,183,184),
++                c(.035, .244, .141, .159, .194, .402, 0,0, .143, .403,
++                  .178, .033, .005, .015),
++                c(.138, .145, .073, .076, .104, .159, 0,0, .109, .184,
++                  .116, .063, .103, .144))
+> dimnames(mdata) <- list(NULL, c("case#", "ldcase", "ldresp"))
+> aeq(round(ldcase[mdata[,1]],3), mdata[,2])
+[1] TRUE
+> aeq(round(ldresp[mdata[,1]],3), mdata[,3])             
+[1] TRUE
+> 
+> plot1 <- function() {
++     # make their figure 1, 2, and 6
++     temp <- predict(fit1, type='quantile', p=c(.1, .5, .9)) 
++     plot(stanford2$age, stanford2$time, log='y', xlab="Age", ylab="Days",
++ 	 ylim=range(stanford2$time, temp))
++     matlines(stanford2$age, temp, lty=c(1,2,2), col=1)
++ 
++     n <- length(ldcase)
++     plot(1:n, ldcase, xlab="Case Number", ylab="(1/2) A", type='l')
++     title (main="Case weight pertubations")
++     plot(1:n, ldresp, xlab="Case Number", ylab="(1/2) A", 
++          ylim=c(0, .2), type='l')
++     title(main="Response pertubations")
++     indx <- which(ldresp > .07)
++     text(indx, ldresp[indx]+ .005, indx%%10, cex=.6)
++     }
+> 
+> postscript('meekerplot.ps')
+> plot1()
+> dev.off()
+null device 
+          1 
+> #
+> # Stanford predictions in other ways
+> #
+> fit2 <- survreg(Surv(time, status) ~ poly(age,2), stanford2,
++ 		dist='lognormal')
+> 
+> p1 <- predict(fit1, type='response')
+> p2 <- predict(fit2, type='response')
+> aeq(p1, p2)
+[1] TRUE
+> 
+> p3 <- predict(fit2, type='terms', se=T)
+> p4 <- predict(fit2, type='lp', se=T)
+> p5 <- predict(fit1, type='lp', se=T)
+> # aeq(p3$fit + attr(p3$fit, 'constant'), p4$fit)  #R is missing the attribute
+> aeq(p4$fit, p5$fit)
+[1] TRUE
+> aeq(p3$se.fit, p4$se.fit)  #this one should be false
+[1] "Mean relative difference: 0.758395"
+> aeq(p4$se.fit, p5$se.fit)  #this one true
+[1] TRUE
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/turnbull.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/turnbull.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/turnbull.Rout.save	(revision 2476)
@@ -0,0 +1,194 @@
+
+R version 2.7.1 (2008-06-23)
+Copyright (C) 2008 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # The test data set from Turnbull, JASA 1974, 169-73.
+> #
+> #  status  0=right censored
+> #          1=exact
+> #          2=left censored
+> #
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> 
+> turnbull <- data.frame( time  =c( 1,1,1, 2,2,2, 3,3,3, 4,4,4),
++ 			status=c( 1,0,2, 1,0,2, 1,0,2, 1,0,2),
++ 			  n   =c(12,3,2, 6,2,4, 2,0,2, 3,3,5))
+> #
+> # Compute the K-M for the Turnbull data
+> #      via a slow EM calculation
+> #
+> 
+> emsurv <- function(time, status, wt, verbose=T) {
++     left.cen <- (status==2)
++     if (!any(left.cen)) stop("No left censored data!")
++     if (!any(status==1))stop("Must have some exact death times")
++ 
++     tempy <- Surv(time[!left.cen], status[!left.cen])
++     ww <- wt[!left.cen]
++     tempx <- factor(rep(1, sum(!left.cen)))
++     tfit <- survfit(tempy~tempx, weight=ww)
++     if (verbose)
++        cat("Iteration 0, survival=", format(round(tfit$surv[tfit$n.event>0],3)),
++ 		       "\n")
++ 
++     stimes <- tfit$time[tfit$n.event>0]
++     ltime <- time[left.cen]
++     lwt   <- wt[left.cen]
++     tempx <- factor(rep(1, length(stimes) + sum(!left.cen)))
++     tempy <- Surv(c(time[!left.cen], stimes),
++ 		  c(status[!left.cen], rep(1, length(stimes))))
++     for (iter in 1:4) {
++ 	wt2 <- stimes*0
++ 	ssurv <- tfit$surv[tfit$n.event>0]
++ 	sjump <- diff(c(1, ssurv))
++ 	for (j in 1:(length(ltime))) {
++ 	    k <- sum(ltime[j]>=stimes)   #index of the death time
++ 	    if (k==0)
++ 		stop("Left censored observation before the first death")
++ 	    wt2[1:k] <- wt2[1:k] + lwt[j]*sjump[1:k] /(ssurv[k]-1)
++ 	    }
++ 	tfit <- survfit(tempy~tempx, weight=c(ww, wt2))
++ 	if (verbose) {
++ 	   cat("Iteration", iter, "survival=",
++ 		 format(round(tfit$surv[tfit$n.event>0],3)),  "\n")
++ 	   cat("             weights=", format(round(wt2,3)), "\n")
++ 	   }
++ 	}
++     survfit(tempy ~ tempx, weights=c(ww, wt2))
++     }
+> 
+> temp <-emsurv(turnbull$time, turnbull$status, turnbull$n)
+Iteration 0, survival= 0.613 0.383 0.287 0.144 
+Iteration 1 survival= 0.549 0.303 0.214 0.094 
+             weights= 7.856 3.477 0.828 0.839 
+Iteration 2 survival= 0.540 0.296 0.210 0.095 
+             weights= 8.228 3.394 0.714 0.664 
+Iteration 3 survival= 0.538 0.295 0.210 0.095 
+             weights= 8.315 3.356 0.690 0.638 
+Iteration 4 survival= 0.538 0.295 0.210 0.095 
+             weights= 8.338 3.342 0.685 0.635 
+> print(summary(temp))
+Call: survfit(formula = tempy ~ tempx, weights = c(ww, wt2))
+
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+    1  44.00   20.34   0.5378  0.0752       0.4089        0.707
+    2  20.66    9.34   0.2946  0.0719       0.1827        0.475
+    3   9.32    2.68   0.2098  0.0673       0.1119        0.393
+    4   6.64    3.64   0.0948  0.0507       0.0333        0.270
+> # First check, use the data from Turnbull, JASA 1974, 169-173.
+> 
+> tdata <- data.frame(time  =c(1,1,1,2,2,2,3,3,3,4,4,4),
++ 		    status=rep(c(1,0,2),4),
++ 		    n     =c(12,3,2,6,2,4,2,0,2,3,3,5))
+> 
+> tfit <- survfit(Surv(time, time, status, type='interval') ~1, tdata, weight=n)
+> all.equal(round(tfit$surv,3), c(.538, .295, .210, .095))
+[1] TRUE
+> 
+> 
+> # Second check, compare to a reversed survival curve
+> # This is not as simple a test as one might think, because left and right
+> #  censored observations are not treated symmetrically by the routine:
+> #  time <= y for left and time> y for right (this is to make the routine
+> #  correct for the common situation of panel data).
+> # To get equivalence, make the left censoreds happen just a little bit
+> #  earlier.  The left-continuous/right-continuous shift is also a bother.
+> #
+> test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0))
+> fit1 <- survfit(Surv(time, status) ~1, test1)
+> temp <- ifelse(test1$status==0, 4.99,5) - test1$time
+> fit2 <- survfit(Surv(temp, status, type='left') ~1, test1)
+> 
+> all.equal(round(fit1$surv[1:2],5), round(1-fit2$surv[3:2],5))
+[1] TRUE
+> 
+> rm(tdata, tfit, fit1, temp, fit2)
+> #
+> # Create a data set similar to the one provided by Al Zinsmeister
+> #  It is a hard test case for survfit.turnbull
+> #
+> time1 <- c(rep(0,100), rep(1,200), 100, 200, 210, 220,
++            rep(365,100), rep(366,5), 731:741)
+> 
+> time2 <- c((1:100)*3,  10+1:100, rep(365:366, c(60,40)), NA, 500, NA, 450,
++            rep(730,90), rep(NA,10), c(528,571,691,730,731),
++            NA, 1095:1099, NA, 1400, 1200, 772, 1461)
+> 
+> zfit <- survfit(Surv(time1, time2, type='interval2') ~1)
+> 
+> #
+> # There are 100 intervals of the form (0,x) where x is from 3 to 300,
+> #  and 200 more of the form (1,x) where x is from 11 to 366.  These
+> #  lead to a mass point in the interval (1,3), which is placed at 2.
+> #  The starting estimate has far too little mass placed here, and it takes
+> #  the EM a long time to realize that most of the weight for the first 300
+> #  subjects goes here.  With acceleration, it takes 16 iterations, without
+> #  it takes >40.  (On Al's orginal data, without accel still wasn't there after
+> #  165 iters!)
+> #
+> # The next 4 obs give rise to potential jumps at 100.5, 200.5, 211.5, and
+> #  221.  However, the final estimate has no mass at all on any of these.
+> #  Assume mass of a,b, and c at 2, 100.5 and 365.5, and consider the 
+> #  contributions: 
+> #    123 obs that overlap a only
+> #    137 obs that overlap a and b
+> #     40 obs that overlap a, b, c
+> #      1 obs that overlap b, c
+> #    108 obs that overlap c   (200, 210,200, 365, and 366 starting points)
+> #  For some trial values of a,b,c, compare the loglik to that of (a+b),0,c
+> #   First one: a^123 (a+b)^137 (a+b+c)^40 (b+c) c^108
+> #   Second:    (a+b)^123 (a+b)^137 (a+b+c)^40 c c^108
+> #   Likelhood improves if (1 + b/a)^123 > 1+ b/c, which is true for almost
+> #     all a and c.  In particular, at the solution a and c are approx .7 and
+> #     .18, respectively.
+> #
+> # The program can't see this coming, of course, and so iterates towards a
+> #  KM with epsilon sized jumps at 100.5, 200.5, and 211.5.  Whether these
+> #  intervals should be removed during iteration, as detected, is an open
+> #  question for me.
+> #
+> #
+> # True solution: mass points at 2, 365.5, 408, and 756.5, of sizes a, b, c, d
+> # Likelihood:    a^260 (a+b)^40 (b+c)^92 (b+c+d)^12 c^5 d^11
+> # Solution: a=0.6958, b=0.1674, c=0.1079, d=0.0289
+> 
+> tfun <- function(x) {
++     if (length(x) ==3) x <- c(x, .03)
++     x <- x/sum(x)  #make probabilities sum to 1
++     loglik <- 260*log(x[1]) + 40*log(x[1]+x[2]) + 92*log(x[2] + x[3]) +
++                        12*log(x[2]+x[3]+x[4]) + 5*log(x[3]) + 11*log(x[4])
++     -loglik  #find the max, not the min
++     }
+> 
+> nfit <- nlminb(start=c(.7,.15, .1), tfun, lower=0, upper=1)
+> nparm <- c(nfit$par, .03)
+> nparm <- nparm / sum(nparm)
+> zparm <- -diff(c(1, zfit$surv[match(c(2, 365.5, 408, 756.5), zfit$time)]))
+> aeq(round(tfun(nparm),4), round(tfun(zparm),4))
+[1] TRUE
+> # .0001 is the tolerance in survfit.turnbull
+> 
+> rm(tfun, nfit, nparm, zparm, time1, time2, zfit) 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.interval
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.interval	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.interval	(revision 2476)
@@ -0,0 +1,30 @@
+ This data set is to test interval censoring.  It has 2 left censored, 14
+right censored, 2 exact and 8 interval censored observations, grafted onto
+covariates from the ovarian data set.
+"ltime","rtime","age","resid.ds","rx","ecog.ps"
+"1",NA,150,72.3315,2,1,1
+"2",NA,150,74.4932,2,1,1
+"3",146,166,66.4658,2,1,2
+"4",421,NA,53.3644,2,2,1
+"5",421,421,50.3397,2,1,1
+"6",448,NA,56.4301,1,1,2
+"7",454,474,56.937,2,2,2
+"8",465,485,59.8548,2,2,2
+"9",477,NA,64.1753,2,1,1
+"10",553,573,55.1781,1,2,2
+"11",628,648,56.7562,1,1,2
+"12",744,NA,50.1096,1,2,1
+"13",769,NA,59.6301,2,2,2
+"14",770,NA,57.0521,2,2,1
+"15",803,NA,39.2712,1,1,1
+"16",855,NA,43.1233,1,1,2
+"17",1040,NA,38.8932,2,1,2
+"18",1106,NA,44.6,1,1,1
+"19",1129,NA,53.9068,1,2,1
+"20",1206,NA,44.2055,2,2,1
+"21",1227,NA,59.589,1,2,2
+"22",258,278,74.5041,2,1,2
+"23",319,339,43.137,2,1,1
+"24",343,363,63.2192,1,2,2
+"25",375,375,64.4247,2,2,1
+"26",377,NA,58.3096,1,2,1
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_rat1.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_rat1.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_rat1.R	(revision 2476)
@@ -0,0 +1,24 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+# Tests using the rats data
+#
+#  (Female rats, from Mantel et al, Cancer Research 37,
+#    3863-3868, November 77)
+
+rfit <- coxph(Surv(time,status) ~ rx + frailty(litter), rats,
+	     method='breslow', subset= (sex=='f'))
+names(rfit)
+rfit
+
+rfit$iter
+rfit$df
+rfit$history[[1]]
+
+rfit1 <- coxph(Surv(time,status) ~ rx + frailty(litter, theta=1), rats,
+	     method='breslow', subset=(sex=="f"))
+rfit1
+
+rfit2 <- coxph(Surv(time,status) ~ frailty(litter), rats, subset=(sex=='f'))
+rfit2
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_kidney.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_kidney.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_kidney.Rout.save	(revision 2476)
@@ -0,0 +1,302 @@
+
+R Under development (unstable) (2016-01-29 r70039) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> # From:	McGilchrist and Aisbett, Biometrics 47, 461-66, 1991
+> # Data on the recurrence times to infection, at the point of insertion of
+> #  the catheter, for kidney patients using portable dialysis equipment.
+> #  Catheters may be removed for reasons other than infection, in which case
+> #  the observation is censored.  Each patient has exactly 2 observations.
+> 
+> # Variables: patient, time, status, age, 
+> #	   sex (1=male, 2=female),
+> #	   disease type (0=GN, 1=AN, 2=PKD, 3=Other)
+> #	   author's estimate of the frailty
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> # I don't match their answers, and I think that I'm right
+> kfit <- coxph(Surv(time, status)~ age + sex + disease + frailty(id), kidney)
+> kfit1<- coxph(Surv(time, status) ~age + sex + disease +
++ 	      frailty(id, theta=1), kidney, iter=20)
+> kfit0 <- coxph(Surv(time, status)~ age + sex + disease, kidney)
+> temp <-  coxph(Surv(time, status) ~age + sex + disease +
++ 	      frailty(id, theta=1, sparse=F), kidney)
+> 
+> 
+> # Check out the EM based score equations
+> #  temp1 and kfit1 should have essentially the same coefficients
+> #  temp2 should equal kfit1$frail
+> # equality won't be exact because of the different iteration paths
+> temp1 <- coxph(Surv(time, status) ~ age + sex + disease +
++ 	       offset(kfit1$frail[id]), kidney)
+> rr <- tapply(resid(temp1), kidney$id, sum)
+> temp2 <- log(rr/1 +1)
+> aeq(temp1$coef, kfit1$coef, tolerance=.005) 
+[1] TRUE
+> aeq(temp2, kfit1$frail, tolerance=.005)
+[1] TRUE
+> 
+> 
+> 
+> kfit
+Call:
+coxph(formula = Surv(time, status) ~ age + sex + disease + frailty(id), 
+    data = kidney)
+
+                 coef  se(coef)       se2     Chisq DF       p
+age          3.18e-03  1.11e-02  1.11e-02  8.14e-02  1   0.775
+sex         -1.48e+00  3.58e-01  3.58e-01  1.71e+01  1 3.5e-05
+diseaseGN    8.80e-02  4.06e-01  4.06e-01  4.68e-02  1   0.829
+diseaseAN    3.51e-01  4.00e-01  4.00e-01  7.70e-01  1   0.380
+diseasePKD  -1.43e+00  6.31e-01  6.31e-01  5.14e+00  1   0.023
+frailty(id)                                2.71e-05  0   0.933
+
+Iterations: 6 outer, 35 Newton-Raphson
+     Variance of random effect= 5e-07   I-likelihood = -179.1 
+Degrees of freedom for terms= 1 1 3 0 
+Likelihood ratio test=17.6  on 5 df, p=0.00342  n= 76 
+> kfit1
+Call:
+coxph(formula = Surv(time, status) ~ age + sex + disease + frailty(id, 
+    theta = 1), data = kidney, iter = 20)
+
+                           coef se(coef)      se2    Chisq   DF       p
+age                     0.00389  0.01959  0.00943  0.03933  1.0 0.84280
+sex                    -2.00764  0.59104  0.41061 11.53834  1.0 0.00068
+diseaseGN               0.35335  0.71653  0.38015  0.24319  1.0 0.62191
+diseaseAN               0.52341  0.72298  0.40463  0.52413  1.0 0.46909
+diseasePKD             -0.45938  1.08977  0.66088  0.17770  1.0 0.67336
+frailty(id, theta = 1)                            28.50571 18.8 0.06909
+
+Iterations: 1 outer, 14 Newton-Raphson
+     Variance of random effect= 1   I-likelihood = -182.5 
+Degrees of freedom for terms=  0.2  0.5  1.1 18.8 
+Likelihood ratio test=63.8  on 20.6 df, p=2.53e-06  n= 76 
+> kfit0
+Call:
+coxph(formula = Surv(time, status) ~ age + sex + disease, data = kidney)
+
+               coef exp(coef) se(coef)     z       p
+age         0.00318   1.00319  0.01115  0.29   0.775
+sex        -1.48314   0.22692  0.35823 -4.14 3.5e-05
+diseaseGN   0.08796   1.09194  0.40637  0.22   0.829
+diseaseAN   0.35079   1.42020  0.39972  0.88   0.380
+diseasePKD -1.43111   0.23904  0.63111 -2.27   0.023
+
+Likelihood ratio test=17.6  on 5 df, p=0.00342
+n= 76, number of events= 58 
+> temp
+Call:
+coxph(formula = Surv(time, status) ~ age + sex + disease + frailty(id, 
+    theta = 1, sparse = F), data = kidney)
+
+                              coef se(coef)      se2    Chisq   DF       p
+age                        0.00389  0.01865  0.01120  0.04342  1.0 0.83494
+sex                       -2.00763  0.57624  0.40799 12.13849  1.0 0.00049
+diseaseGN                  0.35335  0.67865  0.43154  0.27109  1.0 0.60260
+diseaseAN                  0.52340  0.68910  0.44038  0.57690  1.0 0.44753
+diseasePKD                -0.45934  1.01394  0.71297  0.20523  1.0 0.65053
+frailty(id, theta = 1, sp                            26.23016 18.7 0.11573
+
+Iterations: 1 outer, 5 Newton-Raphson
+     Variance of random effect= 1   I-likelihood = -182.5 
+Degrees of freedom for terms=  0.4  0.5  1.4 18.7 
+Likelihood ratio test=63.8  on 21 df, p=3.27e-06  n= 76 
+> 
+> #
+> # Now fit the data using REML
+> #
+> kfitm1 <- coxph(Surv(time,status) ~ age + sex + disease + 
++ 		frailty(id, dist='gauss'), kidney)
+> kfitm2 <- coxph(Surv(time,status) ~ age + sex + disease + 
++ 		      frailty(id, dist='gauss', sparse=F), kidney)
+> kfitm1
+Call:
+coxph(formula = Surv(time, status) ~ age + sex + disease + frailty(id, 
+    dist = "gauss"), data = kidney)
+
+                              coef se(coef)      se2    Chisq   DF       p
+age                        0.00489  0.01497  0.01059  0.10678  1.0 0.74384
+sex                       -1.69728  0.46101  0.36170 13.55454  1.0 0.00023
+diseaseGN                  0.17986  0.54485  0.39273  0.10897  1.0 0.74131
+diseaseAN                  0.39294  0.54482  0.39816  0.52016  1.0 0.47077
+diseasePKD                -1.13631  0.82519  0.61728  1.89621  1.0 0.16850
+frailty(id, dist = "gauss                            17.89195 12.1 0.12376
+
+Iterations: 7 outer, 42 Newton-Raphson
+     Variance of random effect= 0.493 
+Degrees of freedom for terms=  0.5  0.6  1.7 12.1 
+Likelihood ratio test=47.5  on 14.9 df, p=2.82e-05  n= 76 
+> summary(kfitm2)
+Call:
+coxph(formula = Surv(time, status) ~ age + sex + disease + frailty(id, 
+    dist = "gauss", sparse = F), data = kidney)
+
+  n= 76, number of events= 58 
+
+                          coef      se(coef) se2     Chisq DF    p      
+age                        0.004924 0.0149   0.01084  0.11  1.00 0.74000
+sex                       -1.702037 0.4631   0.36134 13.51  1.00 0.00024
+diseaseGN                  0.181733 0.5413   0.40169  0.11  1.00 0.74000
+diseaseAN                  0.394416 0.5428   0.40520  0.53  1.00 0.47000
+diseasePKD                -1.131602 0.8175   0.62981  1.92  1.00 0.17000
+frailty(id, dist = "gauss                            18.13 12.27 0.12000
+
+           exp(coef) exp(-coef) lower .95 upper .95
+age           1.0049     0.9951   0.97601    1.0347
+sex           0.1823     5.4851   0.07355    0.4519
+diseaseGN     1.1993     0.8338   0.41515    3.4646
+diseaseAN     1.4835     0.6741   0.51196    4.2988
+diseasePKD    0.3225     3.1006   0.06497    1.6010
+gauss:1       1.7011     0.5879   0.51805    5.5856
+gauss:2       1.4241     0.7022   0.38513    5.2662
+gauss:3       1.1593     0.8626   0.38282    3.5108
+gauss:4       0.6226     1.6063   0.23397    1.6566
+gauss:5       1.2543     0.7972   0.39806    3.9526
+gauss:6       1.1350     0.8811   0.38339    3.3599
+gauss:7       1.9726     0.5069   0.56938    6.8342
+gauss:8       0.6196     1.6140   0.21662    1.7721
+gauss:9       0.8231     1.2149   0.28884    2.3456
+gauss:10      0.5030     1.9882   0.17468    1.4482
+gauss:11      0.7565     1.3218   0.27081    2.1134
+gauss:12      1.1048     0.9052   0.33430    3.6510
+gauss:13      1.3022     0.7679   0.42746    3.9673
+gauss:14      0.5912     1.6915   0.18537    1.8855
+gauss:15      0.5449     1.8352   0.18580    1.5980
+gauss:16      1.0443     0.9576   0.31424    3.4702
+gauss:17      0.9136     1.0945   0.30004    2.7820
+gauss:18      0.9184     1.0889   0.32476    2.5970
+gauss:19      0.6426     1.5562   0.19509    2.1166
+gauss:20      1.1698     0.8549   0.34528    3.9631
+gauss:21      0.3336     2.9974   0.10202    1.0910
+gauss:22      0.6871     1.4554   0.23531    2.0064
+gauss:23      1.4778     0.6767   0.47560    4.5918
+gauss:24      1.0170     0.9832   0.31555    3.2779
+gauss:25      0.8096     1.2352   0.27491    2.3843
+gauss:26      0.6145     1.6274   0.21491    1.7570
+gauss:27      1.0885     0.9187   0.32819    3.6101
+gauss:28      1.5419     0.6485   0.49231    4.8292
+gauss:29      1.3785     0.7254   0.43766    4.3421
+gauss:30      1.3748     0.7274   0.44444    4.2530
+gauss:31      1.4447     0.6922   0.47031    4.4380
+gauss:32      1.1993     0.8339   0.35207    4.0850
+gauss:33      1.9449     0.5142   0.55229    6.8491
+gauss:34      0.8617     1.1605   0.27685    2.6820
+gauss:35      1.7031     0.5872   0.52657    5.5084
+gauss:36      0.8275     1.2085   0.22811    3.0015
+gauss:37      1.4707     0.6800   0.38936    5.5549
+gauss:38      1.0479     0.9543   0.30685    3.5789
+
+Iterations: 6 outer, 21 Newton-Raphson
+     Variance of random effect= 0.5090956 
+Degrees of freedom for terms=  0.5  0.6  1.7 12.3 
+Concordance= 0.796  (se = 0.046 )
+Likelihood ratio test= 117.9  on 15.14 df,   p=0
+
+> #
+> # Fit the kidney data using AIC
+> #
+> 
+> # gamma, corrected aic
+> coxph(Surv(time, status) ~ age + sex + frailty(id, method='aic', caic=T), 
++       kidney)
+Call:
+coxph(formula = Surv(time, status) ~ age + sex + frailty(id, 
+    method = "aic", caic = T), data = kidney)
+
+                              coef se(coef)      se2    Chisq   DF       p
+age                        0.00364  0.01048  0.00891  0.12053 1.00 0.72846
+sex                       -1.31953  0.39556  0.32497 11.12781 1.00 0.00085
+frailty(id, method = "aic                            13.55258 7.81 0.08692
+
+Iterations: 9 outer, 63 Newton-Raphson
+     Variance of random effect= 0.203   I-likelihood = -182.1 
+Degrees of freedom for terms= 0.7 0.7 7.8 
+Likelihood ratio test=33.3  on 9.21 df, p=0.000137  n= 76 
+> 
+> coxph(Surv(time, status) ~ age + sex + frailty(id, dist='t'), kidney)
+Call:
+coxph(formula = Surv(time, status) ~ age + sex + frailty(id, 
+    dist = "t"), data = kidney)
+
+                            coef se(coef)      se2    Chisq   DF       p
+age                      0.00561  0.01203  0.00872  0.21774  1.0 0.64077
+sex                     -1.65487  0.48294  0.38527 11.74180  1.0 0.00061
+frailty(id, dist = "t")                            20.33462 13.9 0.11752
+
+Iterations: 8 outer, 58 Newton-Raphson
+     Variance of random effect= 0.825 
+Degrees of freedom for terms=  0.5  0.6 13.9 
+Likelihood ratio test=48.6  on 15.1 df, p=2.18e-05  n= 76 
+> coxph(Surv(time, status) ~ age + sex + frailty(id, dist='gauss', method='aic',
++ 					       caic=T), kidney)
+Call:
+coxph(formula = Surv(time, status) ~ age + sex + frailty(id, 
+    dist = "gauss", method = "aic", caic = T), data = kidney)
+
+                              coef se(coef)      se2    Chisq   DF      p
+age                        0.00303  0.01031  0.00895  0.08646 1.00 0.7687
+sex                       -1.15152  0.36368  0.30556 10.02558 1.00 0.0015
+frailty(id, dist = "gauss                            12.35238 6.76 0.0800
+
+Iterations: 7 outer, 41 Newton-Raphson
+     Variance of random effect= 0.185 
+Degrees of freedom for terms= 0.8 0.7 6.8 
+Likelihood ratio test=28.4  on 8.22 df, p=0.000476  n= 76 
+> 
+> 
+> # uncorrected aic
+> coxph(Surv(time, status) ~ age + sex + frailty(id, method='aic', caic=F), 
++       kidney)
+Call:
+coxph(formula = Surv(time, status) ~ age + sex + frailty(id, 
+    method = "aic", caic = F), data = kidney)
+
+                              coef se(coef)      se2    Chisq   DF       p
+age                        0.00785  0.01503  0.00823  0.27284  1.0 0.60143
+sex                       -1.88990  0.56114  0.39941 11.34311  1.0 0.00076
+frailty(id, method = "aic                            37.45897 19.7 0.00918
+
+Iterations: 8 outer, 87 Newton-Raphson
+     Variance of random effect= 0.886   I-likelihood = -182.8 
+Degrees of freedom for terms=  0.3  0.5 19.7 
+Likelihood ratio test=61.2  on 20.5 df, p=6.25e-06  n= 76 
+Warning message:
+In coxpenal.fit(X, Y, strats, offset, init = init, control, weights = weights,  :
+  Inner loop failed to coverge for iterations 4
+> 
+> coxph(Surv(time, status) ~ age + sex + frailty(id, dist='t', caic=F), kidney)
+Call:
+coxph(formula = Surv(time, status) ~ age + sex + frailty(id, 
+    dist = "t", caic = F), data = kidney)
+
+                              coef se(coef)      se2    Chisq   DF       p
+age                        0.00561  0.01203  0.00872  0.21774  1.0 0.64077
+sex                       -1.65487  0.48294  0.38527 11.74180  1.0 0.00061
+frailty(id, dist = "t", c                            20.33462 13.9 0.11752
+
+Iterations: 8 outer, 58 Newton-Raphson
+     Variance of random effect= 0.825 
+Degrees of freedom for terms=  0.5  0.6 13.9 
+Likelihood ratio test=48.6  on 15.1 df, p=2.18e-05  n= 76 
+> 
+> proc.time()
+   user  system elapsed 
+  0.376   0.028   0.399 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_donnell.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_donnell.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_donnell.Rout.save	(revision 2476)
@@ -0,0 +1,103 @@
+
+R version 2.15.2 (2012-10-26) -- "Trick or Treat"
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Good initial values are key to this data set
+> #   It killed v4 of survreg; 
+> #   data courtesy of Deborah Donnell, Fred Hutchinson Cancer Center
+> #
+> 
+> donnell <- scan("data.donnell", what=list(time1=0, time2=0, status=0))
+Read 210 records
+> donnell <- data.frame(donnell)
+> 
+> dfit <- survreg(Surv(time1, time2, status, type='interval') ~1, donnell)
+> summary(dfit)
+
+Call:
+survreg(formula = Surv(time1, time2, status, type = "interval") ~ 
+    1, data = donnell)
+             Value Std. Error      z       p
+(Intercept)  2.390      0.804  2.972 0.00295
+Log(scale)  -0.237      0.346 -0.687 0.49232
+
+Scale= 0.789 
+
+Weibull distribution
+Loglik(model)= -51   Loglik(intercept only)= -51
+Number of Newton-Raphson Iterations: 11 
+n= 210 
+
+> 
+> #
+> # Fit the Donnell data using Statsci's code - should get the same coefs
+> #
+> if (exists('censorReg')) {
++     dfitc <- censorReg(censor(time1, time2, status, type='interval') ~1, 
++                    donnell)
++     summary(dfitc)
++     }
+> #
+> # Do a contour plot of the donnell data
+> #
+> npt <- 20
+> beta0  <- seq(.4, 3.4, length=npt)
+> logsig <- seq(-1.4, 0.41, length=npt)
+> donlog <- matrix(0,npt, npt)
+> 
+> for (i in 1:npt) {
++     for (j in 1:npt) {
++ 	fit <- survreg(Surv(time1, time2, status, type='interval') ~1,
++ 			donnell, init=c(beta0[i],logsig[j]),
++ 		        maxiter=0)
++ 	donlog[i,j] <- fit$log[1]
++ 	}
++     }
+> 
+> clev <- -c(51, 51.5, 52:60, 65, 75, 85, 100, 150)
+> #clev <-  seq(-51, -50, length=10)
+> 
+> contour(beta0, logsig, pmax(donlog, -200), levels=clev, xlab="Intercept",
++ 	ylab="Log(sigma)")
+> points(2.39, log(.7885), pch=1, col=2)
+> title("Donnell data")
+> #
+> # Compute the path of the iteration
+> #
+> #  All the intermediate stops produce an ignorable "did not converge"
+> # warning
+> options(warn=-1) #turn them off
+> niter <- 14
+> donpath <- matrix(0,niter+1,2)
+> for (i in 0:niter){
++     fit <- survreg(Surv(time1, time2, status, type='interval') ~1,
++ 		    donnell, maxiter=i)
++     donpath[i+1,] <- c(fit$coef, log(fit$scale))
++     }
+> points(donpath[,1], donpath[,2])
+> lines(donpath[,1], donpath[,2], col=4)
+> options(warn=0)  #reset
+> 
+> proc.time()
+   user  system elapsed 
+  1.196   0.020   1.209 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/factor.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/factor.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/factor.Rout.save	(revision 2476)
@@ -0,0 +1,56 @@
+
+R version 2.14.0 (2011-10-31)
+Copyright (C) 2011 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> #
+> # Ensure that factors work in prediction
+> #
+> library(survival)
+Loading required package: splines
+> 
+> options(na.action="na.exclude") # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> tfit <- coxph(Surv(time, status) ~ age + factor(ph.ecog), lung)
+> p1 <- predict(tfit, type='risk')
+> 
+> # Testing NA handling is important too
+> keep <- (is.na(lung$ph.ecog) | lung$ph.ecog !=1)
+> lung2 <- lung[keep,]
+> p2 <- predict(tfit, type='risk', newdata=lung[keep,])
+> aeq(p1[keep], p2)
+[1] TRUE
+> 
+> # Same, for survreg
+> tfit <- survreg(Surv(time, status) ~ age + factor(ph.ecog), lung)
+> p1 <- predict(tfit, type='response')
+> p2 <- predict(tfit, type='response', newdata=lung2)
+> aeq(p1[keep], p2)
+[1] TRUE
+> 
+> 
+> # Now repeat it tossing the missings
+> options(na.action=na.omit) 
+> keep2 <- (lung$ph.ecog[!is.na(lung$ph.ecog)] !=1)
+> 
+> tfit2 <- survreg(Surv(time, status) ~ age + factor(ph.ecog), lung)
+> p3 <- predict(tfit2, type='response')
+> p4 <- predict(tfit2, type='response', newdata=lung2, na.action=na.omit)
+> aeq(p3[keep2] , p4)
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.motor
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.motor	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.motor	(revision 2476)
@@ -0,0 +1,40 @@
+150 8064 0
+150 8064 0
+150 8064 0
+150 8064 0
+150 8064 0
+150 8064 0
+150 8064 0
+150 8064 0
+150 8064 0
+150 8064 0
+170 1764 1
+170 2772 1
+170 3444 1
+170 3542 1
+170 3780 1
+170 4860 1
+170 5196 1
+170 5448 0
+170 5448 0
+170 5448 0
+190  408 1
+190  408 1
+190 1344 1
+190 1344 1
+190 1440 1
+190 1680 0
+190 1680 0
+190 1680 0
+190 1680 0
+190 1680 0
+220  408 1
+220  408 1
+220  504 1
+220  504 1
+220  504 1
+220  528 0
+220  528 0
+220  528 0
+220  528 0
+220  528 0
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_tdist.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_tdist.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_tdist.R	(revision 2476)
@@ -0,0 +1,41 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Test out the t-distribution
+#
+
+capacitor <- read.table('data.capacitor', row.names=1,
+			col.names=c('', 'days', 'event', 'voltage'))
+# First, a t-dist with 500 df should be nearly identical to the Gaussian
+
+fitig <- survreg(Surv(days, event)~voltage, 
+        dist = "gaussian", data = capacitor)
+fit1 <- survreg(Surv(days, event) ~ voltage,
+		 dist='t', parms=500, capacitor)
+fitig
+summary(fit1, corr=F)
+
+# A more realistic fit
+fit2 <- survreg(Surv(days, event) ~ voltage,
+		 dist='t', parms=5, capacitor)
+print(fit2)
+
+xx <- seq(1,125, by=10)
+resid(fit2, type='response')[xx]
+resid(fit2, type='deviance')[xx]
+resid(fit2, type='working') [xx]
+resid(fit2, type='dfbeta')[xx,]
+resid(fit2, type='dfbetas')[xx,]
+resid(fit2, type='ldresp')[xx]
+resid(fit2, type='ldshape')[xx]
+resid(fit2, type='ldcase')[xx]
+resid(fit2, type='matrix')[xx,]
+
+predict(fit2, type='response')[xx]
+predict(fit2, type='link')[xx]
+predict(fit2, type='terms')[xx,]
+predict(fit2, type='quantile')[xx]
+
+rm(fitig, fit1, fit2, xx)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/rounding.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/rounding.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/rounding.Rout.save	(revision 2476)
@@ -0,0 +1,34 @@
+
+R version 2.11.0 (2010-04-22)
+Copyright (C) 2010 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> library(survival)
+Loading required package: splines
+> #
+> # Survival curves could fail with data that was almost exact.
+> #  The calculations use both unique() and table(), which don't 
+> #  necessarily give the same number of values.
+> # Check that the routine handles this properly
+> #  
+> 
+> tdata <- data.frame(time=c(1,2, sqrt(2)^2, 2, sqrt(2)^2),
++                     status=rep(1,5), 
++                     group=c(1,1,1,2,2))
+> fit <- survfit(Surv(time, status) ~ group, data=tdata)
+> 
+> all.equal(sum(fit$strata), length(fit$time))
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_lung.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_lung.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_lung.Rout.save	(revision 2476)
@@ -0,0 +1,165 @@
+
+R version 2.14.0 (2011-10-31)
+Copyright (C) 2011 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> lfit2 <- survreg(Surv(time, status) ~ age + ph.ecog + strata(sex), lung)
+> lfit3 <- survreg(Surv(time, status) ~ sex + (age+ph.ecog)*strata(sex), lung)
+> 
+> lfit4 <-  survreg(Surv(time, status) ~ age + ph.ecog , lung,
++ 		  subset=(sex==1))
+> lfit5 <- survreg(Surv(time, status) ~ age + ph.ecog , lung,
++ 		  subset=(sex==2))
+> 
+> if (exists('censorReg')) {
++     lfit1 <- censorReg(censor(time, status) ~ age + ph.ecog + strata(sex),lung)
++     aeq(lfit4$coef, lfit1[[1]]$coef)
++     aeq(lfit4$scale, lfit1[[1]]$scale)
++     aeq(c(lfit4$scale, lfit5$scale), sapply(lfit1, function(x) x$scale))
++     }
+> aeq(c(lfit4$scale, lfit5$scale), lfit3$scale )
+[1] TRUE
+> 
+> #
+> # Test out ridge regression and splines
+> #
+> lfit0 <- survreg(Surv(time, status) ~1, lung)
+> lfit1 <- survreg(Surv(time, status) ~ age + ridge(ph.ecog, theta=5), lung)
+> lfit2 <- survreg(Surv(time, status) ~ sex + ridge(age, ph.ecog, theta=1), lung)
+> lfit3 <- survreg(Surv(time, status) ~ sex + age + ph.ecog, lung)
+> 
+> lfit0
+Call:
+survreg(formula = Surv(time, status) ~ 1, data = lung)
+
+Coefficients:
+(Intercept) 
+   6.034904 
+
+Scale= 0.7593936 
+
+Loglik(model)= -1153.9   Loglik(intercept only)= -1153.9
+n= 228 
+> lfit1
+Call:
+survreg(formula = Surv(time, status) ~ age + ridge(ph.ecog, theta = 5), 
+    data = lung)
+
+               coef     se(coef) se2     Chisq DF p      
+(Intercept)     6.83082 0.42860  0.42860 254.0 1  0.00000
+age            -0.00783 0.00687  0.00687   1.3 1  0.25000
+ridge(ph.ecog) -0.32032 0.08484  0.08405  14.2 1  0.00016
+
+Scale= 0.738 
+
+Iterations: 1 outer, 5 Newton-Raphson
+Degrees of freedom for terms= 1 1 1 1 
+Likelihood ratio test=18.6  on 2 df, p=8.73e-05
+  n=227 (1 observation deleted due to missingness)
+> lfit2
+Call:
+survreg(formula = Surv(time, status) ~ sex + ridge(age, ph.ecog, 
+    theta = 1), data = lung)
+
+               coef     se(coef) se2     Chisq  DF p      
+(Intercept)     6.27163 0.45280  0.45210 191.84 1  0.0e+00
+sex             0.40096 0.12371  0.12371  10.50 1  1.2e-03
+ridge(age)     -0.00746 0.00675  0.00674   1.22 1  2.7e-01
+ridge(ph.ecog) -0.33848 0.08329  0.08314  16.51 1  4.8e-05
+
+Scale= 0.731 
+
+Iterations: 1 outer, 6 Newton-Raphson
+Degrees of freedom for terms= 1 1 2 1 
+Likelihood ratio test=30  on 3 df, p=1.37e-06
+  n=227 (1 observation deleted due to missingness)
+> lfit3
+Call:
+survreg(formula = Surv(time, status) ~ sex + age + ph.ecog, data = lung)
+
+Coefficients:
+ (Intercept)          sex          age      ph.ecog 
+ 6.273435252  0.401090541 -0.007475439 -0.339638098 
+
+Scale= 0.731109 
+
+Loglik(model)= -1132.4   Loglik(intercept only)= -1147.4
+	Chisq= 29.98 on 3 degrees of freedom, p= 1.4e-06 
+n=227 (1 observation deleted due to missingness)
+> 
+> 
+> xx <- pspline(lung$age, nterm=3, theta=.3)
+> xx <- matrix(unclass(xx), ncol=ncol(xx))   # the raw matrix
+> lfit4 <- survreg(Surv(time, status) ~xx, lung)
+> lfit5 <- survreg(Surv(time, status) ~age, lung)
+> 
+> lfit6 <- survreg(Surv(time, status)~pspline(age, df=2), lung)
+> 
+> lfit7 <- survreg(Surv(time, status) ~ offset(lfit6$lin), lung)
+> 
+> lfit4
+Call:
+survreg(formula = Surv(time, status) ~ xx, data = lung)
+
+Coefficients:
+(Intercept)         xx1         xx2         xx3         xx4         xx5 
+  13.551290   -7.615741   -7.424565   -7.533378   -7.571272  -14.527489 
+
+Scale= 0.755741 
+
+Loglik(model)= -1150.1   Loglik(intercept only)= -1153.9
+	Chisq= 7.52 on 5 degrees of freedom, p= 0.19 
+n= 228 
+> lfit5
+Call:
+survreg(formula = Surv(time, status) ~ age, data = lung)
+
+Coefficients:
+(Intercept)         age 
+ 6.88712062 -0.01360829 
+
+Scale= 0.7587515 
+
+Loglik(model)= -1151.9   Loglik(intercept only)= -1153.9
+	Chisq= 3.91 on 1 degrees of freedom, p= 0.048 
+n= 228 
+> lfit6
+Call:
+survreg(formula = Surv(time, status) ~ pspline(age, df = 2), 
+    data = lung)
+
+                          coef    se(coef) se2     Chisq  DF   p    
+(Intercept)                6.5918 0.63681  0.41853 107.15 1.00 0.000
+pspline(age, df = 2), lin -0.0136 0.00687  0.00687   3.94 1.00 0.047
+pspline(age, df = 2), non                            0.78 1.06 0.400
+
+Scale= 0.756 
+
+Iterations: 4 outer, 12 Newton-Raphson
+     Theta= 0.926 
+Degrees of freedom for terms= 0.4 2.1 1.0 
+Likelihood ratio test=5.2  on 1.5 df, p=0.0441  n= 228 
+> signif(lfit7$coef,6)
+(Intercept) 
+1.47899e-09 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_resid.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_resid.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_resid.Rout.save	(revision 2476)
@@ -0,0 +1,348 @@
+
+R version 2.7.1 (2008-06-23)
+Copyright (C) 2008 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> fit1 <- survreg(Surv(futime, fustat) ~ age + ecog.ps, ovarian)
+> fit4 <- survreg(Surv(log(futime), fustat) ~age + ecog.ps, ovarian,
++ 		dist='extreme')
+> 
+> print(fit1)
+Call:
+survreg(formula = Surv(futime, fustat) ~ age + ecog.ps, data = ovarian)
+
+Coefficients:
+(Intercept)         age     ecog.ps 
+12.28496723 -0.09702669  0.09977342 
+
+Scale= 0.6032744 
+
+Loglik(model)= -90   Loglik(intercept only)= -98
+	Chisq= 15.98 on 2 degrees of freedom, p= 0.00034 
+n= 26 
+> summary(fit4)		
+
+Call:
+survreg(formula = Surv(log(futime), fustat) ~ age + ecog.ps, 
+    data = ovarian, dist = "extreme")
+              Value Std. Error      z        p
+(Intercept) 12.2850     1.5015  8.182 2.80e-16
+age         -0.0970     0.0235 -4.127 3.67e-05
+ecog.ps      0.0998     0.3657  0.273 7.85e-01
+Log(scale)  -0.5054     0.2351 -2.149 3.16e-02
+
+Scale= 0.603 
+
+Extreme value distribution
+Loglik(model)= -21.8   Loglik(intercept only)= -29.8
+	Chisq= 15.98 on 2 degrees of freedom, p= 0.00034 
+Number of Newton-Raphson Iterations: 5 
+n= 26 
+
+> 
+> 
+> # Hypothesis (and I'm fairly sure): censorReg shares the fault of many
+> #  iterative codes -- it returns the loglik and variance for iteration k
+> #  but the coef vector of iteration k+1.  Hence the "all.equal" tests
+> #  below don't come out perfect.
+> #
+> if (exists('censorReg')) {  #true for Splus, not R
++     fit2 <- censorReg(censor(futime, fustat) ~ age + ecog.ps, ovarian)
++     fit3 <- survreg(Surv(futime, fustat) ~ age + ecog.ps, ovarian,
++ 		iter=0, init=c(fit2$coef,   log(fit2$scale)))
++ 
++     aeq(resid(fit2, type='working')[,1], resid(fit3, type='working'))
++     aeq(resid(fit2, type='response')[,1], resid(fit3, type='response'))
++ 
++     temp <- sign(resid(fit3, type='working'))
++     aeq(resid(fit2, type='deviance')[,1], 
++ 	temp*abs(resid(fit3, type='deviance')))
++     aeq(resid(fit2, type='deviance')[,1], resid(fit3, type='deviance'))
++     }
+> #
+> # Now check fit1 and fit4, which should follow identical iteration paths
+> #   These tests should all be true
+> #
+> aeq(fit1$coef, fit4$coef)
+[1] TRUE
+>  
+> resid(fit1, type='working')
+          1           2           3           4           5           6 
+ -4.5081778  -0.5909810  -2.4878519   0.6032744  -5.8993431   0.6032744 
+          7           8           9          10          11          12 
+ -1.7462937  -0.8102883   0.6032744  -1.6593962  -0.8235265   0.6032744 
+         13          14          15          16          17          18 
+  0.6032744   0.6032744   0.6032744   0.6032744   0.6032744   0.6032744 
+         19          20          21          22          23          24 
+  0.6032744   0.6032744   0.6032744   0.2572623 -31.8006867  -0.7426277 
+         25          26 
+ -0.2857597   0.6032744 
+> resid(fit1, type='response')
+          1           2           3           4           5           6 
+ -155.14523   -58.62744  -262.03173  -927.79842 -1377.84908  -658.86626 
+          7           8           9          10          11          12 
+ -589.74449  -318.93436     4.50671  -686.83338  -434.39281 -1105.68733 
+         13          14          15          16          17          18 
+  -42.43371  -173.09223 -4491.29974 -3170.49394 -5028.31053 -2050.91373 
+         19          20          21          22          23          24 
+ -150.65033 -2074.09345   412.32400    76.35826 -3309.40331  -219.81579 
+         25          26 
+  -96.19691  -457.76731 
+> resid(fit1, type='deviance')
+         1          2          3          4          5          6          7 
+-1.5842290 -0.6132746 -1.2876971  0.5387840 -1.7148539  0.6682580 -1.1102921 
+         8          9         10         11         12         13         14 
+-0.7460191  1.4253843 -1.0849419 -0.7531720  0.6648130  1.3526380  1.1954382 
+        15         16         17         18         19         20         21 
+ 0.2962391  0.3916044  0.3278067  0.5929057  1.2747643  0.6171130  1.9857606 
+        22         23         24         25         26 
+ 0.6125492 -2.4504208 -0.7080652 -0.3642424  0.7317955 
+> resid(fit1, type='dfbeta')
+   (Intercept)           age      ecog.ps   Log(scale)
+1   0.43370970 -1.087867e-02  0.126322520  0.048379059
+2   0.14426449 -5.144770e-03  0.088768478 -0.033939677
+3   0.25768057 -3.066698e-03 -0.066578834  0.021817646
+4   0.05772598 -5.068044e-04 -0.013121427 -0.007762466
+5  -0.58773456  6.676156e-03  0.084189274  0.008064026
+6   0.01499533 -7.881949e-04  0.026570173 -0.013513160
+7  -0.17869321  4.126121e-03 -0.072760519 -0.015006956
+8  -0.11851540  2.520303e-03 -0.045549628 -0.035686269
+9   0.08327656  3.206404e-03 -0.141835350  0.024490806
+10 -0.25083921  5.321702e-03 -0.073986269 -0.020648720
+11 -0.21333934  4.155746e-03 -0.049832434 -0.040215681
+12  0.13889770 -1.586136e-03 -0.019701151 -0.004686340
+13  0.07892133 -2.706713e-03  0.085242459  0.007847879
+14  0.29690157 -1.987141e-03 -0.085553120  0.017447343
+15  0.04344618 -6.319243e-04 -0.001944285 -0.003533279
+16  0.04866809 -1.068317e-03  0.012398602 -0.006340983
+17  0.04368104 -9.248316e-04  0.009428718 -0.004869178
+18  0.15684611 -2.081485e-03 -0.013068320 -0.003265399
+19  0.48839511 -4.775829e-03 -0.093258090  0.032703354
+20  0.17598922 -2.349254e-03 -0.014202966 -0.002486428
+21  0.37869758 -8.442011e-03  0.163476417  0.100850775
+22 -0.59761427  8.803638e-03  0.052784598 -0.053085234
+23 -0.79017984  1.092304e-02  0.053690092  0.080780399
+24 -0.02348526  8.331002e-04 -0.039028433 -0.032765737
+25 -0.13948485  3.687927e-04  0.056781884 -0.055647859
+26  0.05778937  3.766350e-06 -0.029232389 -0.008927920
+> resid(fit1, type='dfbetas')
+           [,1]          [,2]         [,3]        [,4]
+1   0.288846658 -0.4627232074  0.345395116  0.20574292
+2   0.096078819 -0.2188323823  0.242713641 -0.14433617
+3   0.171612884 -0.1304417700 -0.182041999  0.09278449
+4   0.038444974 -0.0215568869 -0.035877029 -0.03301165
+5  -0.391425795  0.2839697749  0.230193032  0.03429410
+6   0.009986751 -0.0335258093  0.072649027 -0.05746778
+7  -0.119008027  0.1755042532 -0.198944162 -0.06382048
+8  -0.078930164  0.1072008799 -0.124543264 -0.15176395
+9   0.055461420  0.1363841532 -0.387810796  0.10415271
+10 -0.167056601  0.2263581990 -0.202295647 -0.08781336
+11 -0.142082031  0.1767643342 -0.136253451 -0.17102630
+12  0.092504589 -0.0674661531 -0.053867524 -0.01992972
+13  0.052560878 -0.1151298322  0.233072686  0.03337488
+14  0.197733705 -0.0845228882 -0.233922105  0.07419878
+15  0.028934753 -0.0268788526 -0.005316126 -0.01502607
+16  0.032412497 -0.0454407662  0.033900659 -0.02696647
+17  0.029091172 -0.0393376416  0.025780305 -0.02070728
+18  0.104458066 -0.0885357994 -0.035731824 -0.01388685
+19  0.325266641 -0.2031395176 -0.254989284  0.13907843
+20  0.117207199 -0.0999253459 -0.038834208 -0.01057410
+21  0.252209096 -0.3590802699  0.446982501  0.42889079
+22 -0.398005596  0.3744620571  0.144325354 -0.22575700
+23 -0.526252483  0.4646108448  0.146801184  0.34353696
+24 -0.015640965  0.0354358527 -0.106712804 -0.13934372
+25 -0.092895624  0.0156865706  0.155254862 -0.23665514
+26  0.038487186  0.0001602014 -0.079928144 -0.03796800
+> resid(fit1, type='ldcase')
+          1           2           3           4           5           6 
+0.374432175 0.145690278 0.112678800 0.006399163 0.261176992 0.013280058 
+          7           8           9          10          11          12 
+0.109842490 0.074103234 0.248285282 0.128482147 0.094038203 0.016111951 
+         13          14          15          16          17          18 
+0.132812463 0.111857574 0.001698300 0.004730718 0.003131173 0.015840667 
+         19          20          21          22          23          24 
+0.179925399 0.019071941 0.797119488 0.233096445 0.666613755 0.062959708 
+         25          26 
+0.080117437 0.015922378 
+> resid(fit1, type='ldresp')
+          1           2           3           4           5           6 
+0.076910173 0.173810883 0.078356928 0.005310644 0.060742612 0.010002154 
+          7           8           9          10          11          12 
+0.067356838 0.067065693 0.355103899 0.067043195 0.068142828 0.016740944 
+         13          14          15          16          17          18 
+0.193444572 0.165021262 0.001494685 0.004083386 0.002767560 0.016400993 
+         19          20          21          22          23          24 
+0.269571809 0.020129806 1.409736499 1.040266083 0.058637282 0.071819025 
+         25          26 
+0.112702844 0.015105534 
+> resid(fit1, type='ldshape')
+          1           2           3           4           5           6 
+0.870628250 0.383362440 0.412503605 0.005534970 0.513991064 0.003310847 
+          7           8           9          10          11          12 
+0.291860593 0.154910362 0.256160646 0.312329770 0.183191309 0.004184904 
+         13          14          15          16          17          18 
+0.110215710 0.049299495 0.007678445 0.011633336 0.011588605 0.008641251 
+         19          20          21          22          23          24 
+0.112967758 0.008271358 2.246729275 0.966929220 1.022043272 0.143857170 
+         25          26 
+0.079754096 0.001606647 
+> resid(fit1, type='matrix')
+             g          dg         ddg          ds         dds        dsg
+1  -1.74950763 -1.46198129 -0.32429540  0.88466493 -2.42358635  1.8800360
+2  -0.68266980 -0.82027857 -1.38799493 -0.66206188 -0.57351872  1.3921043
+3  -1.32369884 -1.33411374 -0.53625126  0.31503768 -1.83606321  1.8626973
+4  -0.14514412  0.24059386 -0.39881329 -0.28013223 -0.26053084  0.2237590
+5  -1.96497889 -1.50383619 -0.25491587  1.15700933 -2.68145423  1.8694717
+6  -0.22328436  0.37012071 -0.61351964 -0.33477229 -0.16715487  0.1848047
+7  -1.11099124 -1.23201028 -0.70550005  0.01052036 -1.48515401  1.8106760
+8  -0.77288913 -0.95018808 -1.17265428 -0.51190170 -0.79753045  1.5525642
+9  -1.01586016  1.68391053 -2.79128447  0.01598527 -0.01623681 -1.7104080
+10 -1.08316634 -1.21566480 -0.73259465 -0.03052447 -1.43539383  1.7998987
+11 -0.77825093 -0.95675178 -1.16177415 -0.50314979 -0.81016011  1.5600720
+12 -0.22098818  0.36631452 -0.60721042 -0.33361394 -0.17002503  0.1866908
+13 -0.91481479  1.51641567 -2.51364157 -0.08144930  0.07419757 -1.3814037
+14 -0.71453621  1.18442981 -1.96333502 -0.24017106  0.15944438 -0.7863174
+15 -0.04387880  0.07273440 -0.12056602 -0.13717935 -0.29168773  0.1546569
+16 -0.07667699  0.12710134 -0.21068577 -0.19691828 -0.30879813  0.1993144
+17 -0.05372862  0.08906165 -0.14763041 -0.15709224 -0.30221555  0.1713377
+18 -0.17576861  0.29135764 -0.48296037 -0.30558900 -0.22570402  0.2151929
+19 -0.81251205  1.34683655 -2.23254376 -0.16869744  0.13367171 -1.0672002
+20 -0.19041424  0.31563454 -0.52320225 -0.31581218 -0.20797917  0.2078622
+21 -1.97162252  3.26820173 -5.41743790  1.33844939 -2.24706488 -5.4868428
+22 -0.68222519  1.23245193 -4.79064290 -0.58668577 -0.95209805 -2.8390386
+23 -3.49689798 -1.62675999 -0.05115487  2.90949868 -4.20494743  1.7496975
+24 -0.74529506 -0.91462436 -1.23160543 -0.55723389 -0.73139169  1.5108398
+25 -0.56095318 -0.53280415 -1.86451840 -0.87536233 -0.22666819  0.9689667
+26 -0.26776235  0.44384834 -0.73573207 -0.35281852 -0.11207472  0.1409908
+> 
+> aeq(resid(fit1, type='working'),resid(fit4, type='working'))
+[1] TRUE
+> #aeq(resid(fit1, type='response'), resid(fit4, type='response'))#should differ
+> aeq(resid(fit1, type='deviance'), resid(fit4, type='deviance'))
+[1] TRUE
+> aeq(resid(fit1, type='dfbeta'),   resid(fit4, type='dfbeta'))
+[1] TRUE
+> aeq(resid(fit1, type='dfbetas'),  resid(fit4, type='dfbetas'))
+[1] TRUE
+> aeq(resid(fit1, type='ldcase'),   resid(fit4, type='ldcase'))
+[1] TRUE
+> aeq(resid(fit1, type='ldresp'),   resid(fit4, type='ldresp'))
+[1] TRUE
+> aeq(resid(fit1, type='ldshape'),  resid(fit4, type='ldshape'))
+[1] TRUE
+> aeq(resid(fit1, type='matrix'),   resid(fit4, type='matrix'))
+[1] TRUE
+> #
+> # Some tests of the quantile residuals
+> #
+> motor <- read.table('data.motor', col.names=c('temp', 'time', 'status'))
+> 
+> # These should agree exactly with Ripley and Venables' book
+> fit1 <- survreg(Surv(time, status) ~ temp, data=motor)
+> summary(fit1)
+
+Call:
+survreg(formula = Surv(time, status) ~ temp, data = motor)
+              Value Std. Error     z         p
+(Intercept) 16.3185    0.62296  26.2 3.03e-151
+temp        -0.0453    0.00319 -14.2  6.74e-46
+Log(scale)  -1.0956    0.21480  -5.1  3.38e-07
+
+Scale= 0.334 
+
+Weibull distribution
+Loglik(model)= -147.4   Loglik(intercept only)= -169.5
+	Chisq= 44.32 on 1 degrees of freedom, p= 2.8e-11 
+Number of Newton-Raphson Iterations: 7 
+n= 40 
+
+> 
+> #
+> # The first prediction has the SE that I think is correct
+> #  The third is the se found in an early draft of Ripley; fit1 ignoring
+> #  the variation in scale estimate, except via it's impact on the
+> #  upper left corner of the inverse information matrix.
+> # Numbers 1 and 3 differ little for this dataset
+> #
+> predict(fit1, data.frame(temp=130), type='uquantile', p=c(.5, .1), se=T)
+$fit
+[1] 10.306068  9.676248
+
+$se.fit
+[1] 0.2135247 0.2202088
+
+> 
+> fit2 <- survreg(Surv(time, status) ~ temp, data=motor, scale=fit1$scale)
+> predict(fit2, data.frame(temp=130), type='uquantile', p=c(.5, .1), se=T)
+$fit
+[1] 10.306068  9.676248
+
+$se.fit
+        1         1 
+0.2057964 0.2057964 
+
+> 
+> fit3 <- fit2
+> fit3$var <- fit1$var[1:2,1:2]
+> predict(fit3, data.frame(temp=130), type='uquantile', p=c(.5, .1), se=T)
+$fit
+[1] 10.306068  9.676248
+
+$se.fit
+        1         1 
+0.2219959 0.2219959 
+
+> 
+> pp <- seq(.05, .7, length=40)
+> xx <- predict(fit1, data.frame(temp=130), type='uquantile', se=T,
++ 	      p=pp)
+> #matplot(pp, cbind(xx$fit, xx$fit+2*xx$se, xx$fit - 2*xx$se), type='l')
+> 
+> 
+> #
+> # Now try out the various combinations of strata, #predicted, and
+> #  number of quantiles desired
+> #
+> fit1 <- survreg(Surv(time, status) ~ inst + strata(inst) + age + sex, lung)
+> qq1 <- predict(fit1, type='quantile', p=.3, se=T)
+> qq2 <- predict(fit1, type='quantile', p=c(.2, .3, .4), se=T)
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> aeq(qq1$fit, qq2$fit[,2])
+[1] TRUE
+> aeq(qq1$se.fit, qq2$se.fit[,2])
+[1] TRUE
+> 
+> qq3 <- predict(fit1, type='quantile', p=c(.2, .3, .4), se=T,
++ 	       newdata= lung[1:5,])
+> aeq(qq3$fit, qq2$fit[1:5,])
+[1] TRUE
+> 
+> qq4 <- predict(fit1, type='quantile', p=c(.2, .3, .4), se=T, newdata=lung[7,])
+> aeq(qq4$fit, qq2$fit[7,])
+[1] TRUE
+> 
+> qq5 <- predict(fit1, type='quantile', p=c(.2, .3, .4), se=T, newdata=lung)
+> aeq(qq2$fit, qq5$fit)
+[1] TRUE
+> aeq(qq2$se.fit, qq5$se.fit)
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testci2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testci2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testci2.R	(revision 2476)
@@ -0,0 +1,112 @@
+library(survival)
+
+#
+# Test the multi-state version of the CI curve
+#
+tdata <- data.frame(id=c(1,1,1,1, 2,2,2, 3,3, 4,4,4,4, 5, 6, 6),
+                    time1=c(0, 10,20,30, 0, 5, 15,  0, 20, 0, 6,18,34, 0, 0,15),
+                    time2=c(10,20,30,40, 5, 15,25, 20, 22, 6,18,34,50,10,15,20),
+                    status=c(1,1,1,1, 1,1,1, 1,0, 1,1,1,0,0,1,0),
+                    event= letters[c(1,2,3,4, 2,4,3, 2,2, 3,1,2,2,1, 1,1)],
+                    wt = c(2,2,2,2, 1,1,1, 3,3, 1,1,1,1, 2, 1,1),
+                    stringsAsFactors=TRUE)
+tdata$stat2 <- factor(tdata$status * as.numeric(tdata$event),
+                      labels=c(" ", levels(tdata$event)))
+         
+fit <- survfit(Surv(time1, time2, stat2) ~1, id=id, weight=wt, tdata)
+
+# The exact figures for testci2.
+# The subject data of  id, weight, (transition time, transition)
+
+#1: 2 (10, 0->a)  (20, a->b)  (30, b->c)  (40, c->d)  no data after 40=censored
+#2: 1 ( 5, 0->b)  (15, b->d)  (25, d->c)  no data after 25 implies censored then
+#3: 3 (20, 0->b)  (22, censor)
+#4: 1 ( 6, 0->c)  (18, c->a)  (34, a->b)  (50, censor)
+#5: 2 (10, censor)
+#6: 1 (15, 0->a)  (20, censor)
+
+# Each line below follows a subject through time as a (state, rdist weight) pair
+#  using the redistribute to the right algorithm.
+# RDR algorithm: at each censoring (or last fu) a subject's weight is put into
+#  a "pool" for that state and their weight goes to zero. The pool is
+#  dynamically shared between all members of the state proportional to their
+#  original case weight, when someone leaves they take their portion of the
+#  pool to the new state.
+
+# Table of case weights and state, blank is weight of zero
+#    time   5    6   10   15    18    20     25    30    34    40    50
+# -----------------------------------------------------------------------
+# id, wt
+#  1, 2     -    -    a    a      a    b      b     c     c     d    
+#  2, 1     b    b    b    d      d    d      c    
+#  3, 3     -    -    -    -      -    b      
+#  4, 1     -    c    c    c      a    a      a     a     b     b     b
+#  5, 2     -    -    -
+#  6, 1     -    -    -    a      a    a      
+
+# Pool weights
+#         10  10+   15    18    20    20+   22+   25   25+   30   34    40   40+
+#    -     0   2    3/2  3/2    0 
+#    a     0   0    1/2  1/2    1/4   5/4   5/4   5/4  5/4   5/4
+#    b     0   0     0    0     7/4   7/4  19/4  19/4 19/4        5/4   5/4  5/4
+#    c     0   0     0    0     0                      1    23/4 23/4
+#    d     0   0     0    0     0                                      23/4 31/4
+
+# fit$prev for time i and state j = total weight at that time/state in the
+#  above table (original weight + redistrib), divided by 10.
+
+# time            5  6   10    15    18    20     25    30    34    40    50
+truth <- matrix(c(0, 0,   2,    3,    4,    2,     1,    1,    0,    0,    0,
+                  1, 1,   1,    0,    0,    5,     2,    0,    1,    1,    1,
+                  0, 1,   1,    1,    0,    0,     1,    2,    2,    0,    0,
+                  0, 0,   0,    1,    1,    1,     0,    0,    0,    2,    0) +
+                c(0, 0,   0,   .5,   .5,   1/4,   5/4,  5/4,   0,    0,    0,
+                  0, 0,   0,    0,    0,   7/4,  19/4,   0,   5/4,   5/4,  5/4,
+                  0, 0,   0,    0,    0,    0,     0,  23/4, 23/4,   0,    0, 
+                  0, 0,   0,    0,    0,    0,     0,    0,    0,  23/4,  31/4),
+                ncol=4)
+truth <- truth[c(1:6, 6:11),]/10  #the explicit censor at 22
+
+#dimnames(truth) <- list(c(5, 6, 10, 15, 18, 20, 25, 30, 34, 40, 50),
+#                        c('a', 'b', 'c', 'd')
+all.equal(truth, fit$prev[,1:4])
+
+# Test the dfbetas
+dfbeta <- array(0., dim=c(6, nrow(fit$prev), ncol(fit$prev)))
+eps <- 1e-6
+for (i in 1:6) {
+    twt <- tdata$wt
+    twt[tdata$id ==i] <- twt[tdata$id==i] + eps
+    tfit <- survfit(Surv(time1, time2, stat2) ~ cluster(id), tdata,
+                    weight=twt)
+    dfbeta[i,,] <- (tfit$prev - fit$prev)/eps
+}
+twt <- tdata$wt[match(1:6, tdata$id)]
+temp <- (twt*dfbeta) * dfbeta
+tstd <- sqrt(apply(temp, 2:3, sum))
+all.equal(tstd, fit$std.err, tolerance=eps)
+
+if (FALSE) {
+    # a plot of the data that helped during creation of the example
+    plot(c(0,50), c(1,6), type='n', xlab='time', ylab='subject')
+    with(tdata, segments(time1, id, time2, id))
+    with(tdata, text(time2, id, as.numeric(stat2)-1, cex=1.5, col=2))
+}
+
+if (FALSE) {
+    # The following lines test out 4 error messages in the routine
+    #
+    # Gap in follow-up time, id 2
+    survfit(Surv(c(0,5,9,0,5,0), c(5,9,12, 4, 6, 3), factor(c(0,0,1,1,0,2))) ~1,
+            id=c(1,1,1,2,2,3))
+    # mismatched weights
+    survfit(Surv(c(0,5,9,0,5,0), c(5,9,12, 5, 6, 3), factor(c(0,0,1,1,0,2))) ~1,
+            id=c(1,1,1,2,2,3), weights=c(1,1,2,1,1,4))
+    # in two groups at once
+     survfit(Surv(c(0,5,9,0,5,0), c(5,9,12, 5, 6, 3), factor(c(0,0,1,1,0,2))) ~
+               c(1,1,2,1,1,2), id=c(1,1,1,2,2,3)) 
+    # state change that isn't a state change (went from 1 to 1)
+        survfit(Surv(c(0,5,9,0,5,0), c(5,9,12, 5, 6, 3), factor(c(0,1,1,1,0,2))) ~1,
+            id=c(1,1,1,2,2,3))
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/concordance.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/concordance.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/concordance.R	(revision 2476)
@@ -0,0 +1,109 @@
+library(survival)
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+
+#
+# Simple tests of concordance.  These numbers were derived in multiple
+#   codes.
+#
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+grank <- function(x, time, grp, wt) 
+    unlist(tapply(x, grp, rank))
+grank2 <- function(x, time, grp, wt) {  #for case weights
+    if (length(wt)==0) wt <- rep(1, length(x))
+    z <- double(length(x))
+    for (i in unique(grp)) {
+        indx <- which(grp==i)
+        temp <- tapply(wt[indx], x[indx], sum)
+        temp <- temp/2  + c(0, cumsum(temp)[-length(temp)])
+        z[indx] <- temp[match(x[indx], names(temp))]
+    }
+    z
+}
+
+
+tdata <- aml[aml$x=='Maintained',]
+tdata$y <- c(1,6,2,7,3,7,3,8,4,4,5)
+tdata$wt <- c(1,2,3,2,1,2,3,4,3,2,1)
+fit <- survConcordance(Surv(time, status) ~y, tdata)
+aeq(fit$stats[1:4], c(14,24,2,0))
+cfit <- coxph(Surv(time, status) ~ tt(y), tdata, tt=grank, method='breslow',
+              iter=0, x=T)
+cdt <- coxph.detail(cfit)
+aeq(4*sum(cdt$imat),fit$stats[5]^2) 
+aeq(2*sum(cdt$score), diff(fit$stats[2:1]))
+
+
+# Lots of ties
+tempx <- Surv(c(1,2,2,2,3,4,4,4,5,2), c(1,0,1,0,1,0,1,1,0,1))
+tempy <- c(5,5,4,4,3,3,7,6,5,4)
+fit2 <- survConcordance(tempx ~ tempy)
+aeq(fit2$stats[1:4], c(13,13,5,2))
+cfit2 <-  coxph(tempx ~ tt(tempy), tt=grank, method='breslow', iter=0)
+aeq(4/cfit2$var, fit2$stats[5]^2)
+
+# Bigger data
+fit3 <- survConcordance(Surv(time, status) ~ age, lung)
+aeq(fit3$stats[1:4], c(10717, 8706, 591, 28))
+cfit3 <- coxph(Surv(time, status) ~ tt(age), lung, 
+               iter=0, method='breslow', tt=grank, x=T)
+cdt <- coxph.detail(cfit3)
+aeq(4*sum(cdt$imat),fit3$stats[5]^2) 
+aeq(2*sum(cdt$score), diff(fit3$stats[2:1]))
+
+
+# More ties
+fit4 <- survConcordance(Surv(time, status) ~ ph.ecog, lung)
+aeq(fit4$stats[1:4], c(8392, 4258, 7137, 28))
+cfit4 <- coxph(Surv(time, status) ~ tt(ph.ecog), lung, 
+               iter=0, method='breslow', tt=grank)
+aeq(4/cfit4$var, fit4$stats[5]^2)
+
+# Case weights
+fit5 <- survConcordance(Surv(time, status) ~ y, tdata, weight=wt)
+fit6 <- survConcordance(Surv(time, status) ~y, tdata[rep(1:11,tdata$wt),])
+aeq(fit5$stats[1:4], c(70, 91, 7, 0))  # checked by hand
+aeq(fit5$stats[1:3], fit6$stats[1:3])  #spurious "tied on time" value, ignore
+aeq(fit5$std, fit6$std)
+cfit5 <- coxph(Surv(time, status) ~ tt(y), tdata, weight=wt, 
+               iter=0, method='breslow', tt=grank2)
+cfit6 <- coxph(Surv(time, status) ~ tt(y), tdata[rep(1:11,tdata$wt),], 
+               iter=0, method='breslow', tt=grank)
+aeq(4/cfit6$var, fit6$stats[5]^2)
+aeq(cfit5$var, cfit6$var)
+
+# Start, stop simplest cases
+fit7 <- survConcordance(Surv(rep(0,11), time, status) ~ y, tdata)
+aeq(fit7$stats, fit$stats)
+aeq(fit7$std.err, fit$std.err)
+fit7 <- survConcordance(Surv(rep(0,11), time, status) ~ y, tdata, weight=wt)
+aeq(fit5$stats, fit7$stats)
+
+# Multiple intervals for some, but same risk sets as tdata
+tdata2 <- data.frame(time1=c(0,3, 5,  6,7,   0,  4,17,  7,  0,16,  2,  0, 
+                             0,9, 5),
+                     time2=c(3,9, 13, 7,13, 18, 17,23, 28, 16,31, 34, 45, 
+                             9,48, 60),
+                     status=c(0,1, 1, 0,0,  1,  0,1, 0, 0,1, 1, 0, 0,1, 0),
+                     y = c(1,1, 6, 2,2, 7, 3,3, 7, 3,3, 8, 4, 4,4, 5),
+                     wt= c(1,1, 2, 3,3, 2, 1,1, 2, 3,3, 4, 3, 2,2, 1))
+fit8 <- survConcordance(Surv(time1, time2, status) ~y, tdata2, weight=wt)
+aeq(fit5$stats, fit8$stats)
+aeq(fit5$std.err, fit8$std.err)
+cfit8 <- coxph(Surv(time1, time2, status) ~ tt(y), tdata2, weight=wt, 
+               iter=0, method='breslow', tt=grank2)
+aeq(4/cfit8$var, fit8$stats[5]^2)
+aeq(fit8$stats[5]/(2*sum(fit8$stats[1:3])), fit8$std.err)
+
+# Stratified
+tdata3 <- data.frame(time1=c(tdata2$time1, rep(0, nrow(lung))),
+                     time2=c(tdata2$time2, lung$time),
+                     status = c(tdata2$status, lung$status -1),
+                     x = c(tdata2$y, lung$ph.ecog),
+                     wt= c(tdata2$wt, rep(1, nrow(lung))),
+                     grp=rep(1:2, c(nrow(tdata2), nrow(lung))))
+fit9 <- survConcordance(Surv(time1, time2, status) ~x + strata(grp),
+                        data=tdata3, weight=wt)
+aeq(fit9$stats[1,], fit5$stats)
+aeq(fit9$stats[2,], fit4$stats)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/strata2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/strata2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/strata2.R	(revision 2476)
@@ -0,0 +1,20 @@
+# 
+# New tests 4/2010 to validate strata by covariate interactions
+#
+library(survival)
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+
+tdata <- lung
+tdata$sex <- lung$sex +3
+
+# Both of these should produce warning messages about singular X, since there
+#  are ph.ecog=3 subjects in only 1 of the strata. 
+# Does not affect the test 
+fit1 <- coxph(Surv(time, status) ~ age + sex:strata(ph.ecog), lung)
+fit2 <- coxph(Surv(time, status) ~ age + sex:strata(ph.ecog), tdata)
+
+aeq(fit1$coef, fit2$coef)
+aeq(fit1$var, fit2$var)
+aeq(predict(fit1), predict(fit2))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/nested.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/nested.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/nested.R	(revision 2476)
@@ -0,0 +1,16 @@
+library(survival)
+#
+# A test of nesting.  It makes sure the model.frame is built correctly
+#
+tfun <- function(fit, mydata) {
+    survfit(fit, newdata=mydata)
+    }
+
+myfit <- coxph(Surv(time, status) ~ age + factor(sex), lung)
+
+temp1 <- tfun(myfit, lung[1:5,])
+temp2 <- survfit(myfit, lung[1:5,])
+indx <- match('call', names(temp1))  #the call components won't match
+
+all.equal(unclass(temp1)[-indx], unclass(temp2)[-indx])
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_user.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_user.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_user.Rout.save	(revision 2476)
@@ -0,0 +1,53 @@
+
+R version 2.9.0 (2009-04-17)
+Copyright (C) 2009 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude)  #preserve length of missings
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Check out using a "user specified" distribution
+> #
+> mydist <- c(survreg.distributions$extreme, survreg.distributions$weibull[-1])
+> mydist$name <- "Weibull2"
+> mydist$dist <- NULL
+> 
+> fit1 <- survreg(Surv(time, status) ~ age + ph.ecog, lung)
+> fit2 <- survreg(Surv(time, status) ~ age + ph.ecog, lung, dist=mydist)
+> 
+> all.equal(fit1$coef, fit2$coef)
+[1] TRUE
+> all.equal(fit1$var, fit2$var)
+[1] TRUE
+> 
+> #
+> # And with an data set containing interval censoring
+> #
+> idat <- read.table('data.interval', skip=3, header=T, sep=',')
+> 
+> fit1 <- survreg(Surv(ltime, rtime, type='interval2') ~ age + ecog.ps, idat)
+> fit2 <- survreg(Surv(ltime, rtime, type='interval2') ~ age + ecog.ps, 
++                 data=idat, dist=mydist)
+> 
+> all.equal(fit1$coef, fit2$coef)
+[1] TRUE
+> all.equal(fit1$var, fit2$var)
+[1] TRUE
+> all.equal(fit1$log, fit2$log)
+[1] TRUE
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ovarian.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ovarian.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ovarian.Rout.save	(revision 2476)
@@ -0,0 +1,317 @@
+
+R Under development (unstable) (2016-01-29 r70039) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> #
+> # Test the coxph program on the Ovarian data
+> #
+> 
+> attach(ovarian)
+> 
+> summary(survfit(Surv(futime, fustat)~1), censor=TRUE)
+Call: survfit(formula = Surv(futime, fustat) ~ 1)
+
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+   59     26       1    0.962  0.0377        0.890        1.000
+  115     25       1    0.923  0.0523        0.826        1.000
+  156     24       1    0.885  0.0627        0.770        1.000
+  268     23       1    0.846  0.0708        0.718        0.997
+  329     22       1    0.808  0.0773        0.670        0.974
+  353     21       1    0.769  0.0826        0.623        0.949
+  365     20       1    0.731  0.0870        0.579        0.923
+  377     19       0    0.731  0.0870        0.579        0.923
+  421     18       0    0.731  0.0870        0.579        0.923
+  431     17       1    0.688  0.0919        0.529        0.894
+  448     16       0    0.688  0.0919        0.529        0.894
+  464     15       1    0.642  0.0965        0.478        0.862
+  475     14       1    0.596  0.0999        0.429        0.828
+  477     13       0    0.596  0.0999        0.429        0.828
+  563     12       1    0.546  0.1032        0.377        0.791
+  638     11       1    0.497  0.1051        0.328        0.752
+  744     10       0    0.497  0.1051        0.328        0.752
+  769      9       0    0.497  0.1051        0.328        0.752
+  770      8       0    0.497  0.1051        0.328        0.752
+  803      7       0    0.497  0.1051        0.328        0.752
+  855      6       0    0.497  0.1051        0.328        0.752
+ 1040      5       0    0.497  0.1051        0.328        0.752
+ 1106      4       0    0.497  0.1051        0.328        0.752
+ 1129      3       0    0.497  0.1051        0.328        0.752
+ 1206      2       0    0.497  0.1051        0.328        0.752
+ 1227      1       0    0.497  0.1051        0.328        0.752
+> 
+> # Various models
+> coxph(Surv(futime, fustat)~ age)
+Call:
+coxph(formula = Surv(futime, fustat) ~ age)
+
+      coef exp(coef) se(coef)    z      p
+age 0.1616    1.1754   0.0497 3.25 0.0012
+
+Likelihood ratio test=14.3  on 1 df, p=0.000156
+n= 26, number of events= 12 
+> coxph(Surv(futime, fustat)~ resid.ds)
+Call:
+coxph(formula = Surv(futime, fustat) ~ resid.ds)
+
+          coef exp(coef) se(coef)   z     p
+resid.ds 1.209     3.351    0.672 1.8 0.072
+
+Likelihood ratio test=3.76  on 1 df, p=0.0525
+n= 26, number of events= 12 
+> coxph(Surv(futime, fustat)~ rx)
+Call:
+coxph(formula = Surv(futime, fustat) ~ rx)
+
+     coef exp(coef) se(coef)     z    p
+rx -0.596     0.551    0.587 -1.02 0.31
+
+Likelihood ratio test=1.05  on 1 df, p=0.305
+n= 26, number of events= 12 
+> coxph(Surv(futime, fustat)~ ecog.ps)
+Call:
+coxph(formula = Surv(futime, fustat) ~ ecog.ps)
+
+         coef exp(coef) se(coef)    z   p
+ecog.ps 0.398     1.489    0.586 0.68 0.5
+
+Likelihood ratio test=0.47  on 1 df, p=0.494
+n= 26, number of events= 12 
+> 
+> coxph(Surv(futime, fustat)~ resid.ds + rx + ecog.ps)
+Call:
+coxph(formula = Surv(futime, fustat) ~ resid.ds + rx + ecog.ps)
+
+           coef exp(coef) se(coef)     z     p
+resid.ds  1.347     3.844    0.680  1.98 0.048
+rx       -0.749     0.473    0.595 -1.26 0.208
+ecog.ps   0.453     1.573    0.590  0.77 0.443
+
+Likelihood ratio test=6.03  on 3 df, p=0.11
+n= 26, number of events= 12 
+> coxph(Surv(futime, fustat)~ age + rx + ecog.ps)
+Call:
+coxph(formula = Surv(futime, fustat) ~ age + rx + ecog.ps)
+
+           coef exp(coef) se(coef)     z      p
+age      0.1470    1.1583   0.0463  3.17 0.0015
+rx      -0.8146    0.4428   0.6342 -1.28 0.1990
+ecog.ps  0.1032    1.1087   0.6064  0.17 0.8649
+
+Likelihood ratio test=15.9  on 3 df, p=0.00118
+n= 26, number of events= 12 
+> coxph(Surv(futime, fustat)~ age + resid.ds + ecog.ps)
+Call:
+coxph(formula = Surv(futime, fustat) ~ age + resid.ds + ecog.ps)
+
+          coef exp(coef) se(coef)    z      p
+age      0.142     1.153    0.052 2.74 0.0061
+resid.ds 0.663     1.940    0.750 0.88 0.3773
+ecog.ps  0.166     1.181    0.615 0.27 0.7867
+
+Likelihood ratio test=15.1  on 3 df, p=0.00173
+n= 26, number of events= 12 
+> coxph(Surv(futime, fustat)~ age + resid.ds + rx)
+Call:
+coxph(formula = Surv(futime, fustat) ~ age + resid.ds + rx)
+
+            coef exp(coef) se(coef)     z      p
+age       0.1285    1.1372   0.0473  2.72 0.0066
+resid.ds  0.6964    2.0065   0.7585  0.92 0.3586
+rx       -0.8489    0.4279   0.6392 -1.33 0.1842
+
+Likelihood ratio test=16.8  on 3 df, p=0.000789
+n= 26, number of events= 12 
+> 
+> # Residuals
+> fit <- coxph(Surv(futime, fustat)~ age + resid.ds + rx + ecog.ps )
+> resid(fit)
+          1           2           3           4           5           6 
+ 0.84103277  0.54424388  0.59670824 -0.11281376  0.75111588 -0.32609026 
+          7           8           9          10          11          12 
+ 0.59998927  0.29570718 -2.15325805  0.76243469  0.06474272 -0.11680752 
+         13          14          15          16          17          18 
+-1.22562781 -0.63474839 -0.07535824 -0.17058905 -0.22986038 -0.14654862 
+         19          20          21          22          23          24 
+-0.18762920 -0.12771548 -0.53373114 -0.65480022  0.95866131  0.82111675 
+         25          26 
+ 0.55136554 -0.09154014 
+> resid(fit, 'dev')
+          1           2           3           4           5           6 
+ 1.41281595  0.69505907  0.78916003 -0.47500266  1.13106322 -0.80757694 
+          7           8           9          10          11          12 
+ 0.79532966  0.33122166 -2.07521471  1.16179002  0.06619519 -0.48333740 
+         13          14          15          16          17          18 
+-1.56564862 -1.12671948 -0.38822221 -0.58410453 -0.67802711 -0.54138455 
+         19          20          21          22          23          24 
+-0.61258338 -0.50540178 -1.03318066 -0.54976346  2.11059000  1.34157009 
+         25          26 
+ 0.70736314 -0.42787881 
+> resid(fit, 'scor')
+            age    resid.ds          rx     ecog.ps
+1    2.26503249  0.05686357 -0.10565379 -0.42661688
+2    3.02525428  0.04641312 -0.08623662 -0.34821275
+3   -0.06851355  0.07131430 -0.13250357  0.06167527
+4    0.94597623 -0.02541510 -0.06423496  0.05971729
+5   -5.41507168  0.21605962 -0.32258092 -0.39333909
+6    1.48999552  0.24899474  0.14035143 -0.15380664
+7   -0.68612431  0.13740891  0.28392482  0.29196506
+8    0.93116906  0.08428957  0.16040160  0.18430641
+9   -8.20092595 -0.51356176  0.95647608  1.11337112
+10   0.95287510 -0.31078224  0.21463992  0.17363388
+11   2.85526159  0.09417730 -0.14186603 -0.07586086
+12   0.92721107  0.07495002 -0.05400751  0.07061578
+13  -1.93962967 -0.43919871 -0.56668535 -0.48467672
+14   0.63185387 -0.22745949 -0.29348437  0.38373600
+15   1.41495195  0.04835392  0.04051535  0.04555769
+16   2.54591188  0.10945916  0.09171493 -0.06745975
+17   4.40282381 -0.08236953  0.12358137 -0.09089870
+18   1.97071836  0.09403352  0.07878991  0.08859570
+19   0.77692371  0.12039304 -0.08675286  0.11343089
+20   1.76784279 -0.04576632 -0.05905095  0.07721016
+21  -0.82272526  0.34247077 -0.24677770 -0.21106494
+22  -3.48057998 -0.03965965  0.07368852 -0.26669335
+23 -14.86623758  0.28137017 -0.52279208 -0.43881151
+24   3.96084273 -0.56566921  0.34648950  0.44907410
+25   4.30025715  0.15241262  0.22417527 -0.20390438
+26   0.31490641  0.07091764 -0.05212198  0.04845623
+> resid(fit, 'scho')
+             age    resid.ds         rx    ecog.ps
+59    2.69315603  0.06761160 -0.1256239 -0.5072536
+115   5.36390105  0.08039116 -0.1493686 -0.6031318
+156  -0.89877512  0.10683985 -0.1985108  0.1984379
+268   6.95664326  0.12857949 -0.2389036  0.2388157
+329 -15.73656605  0.28889883 -0.5367805 -0.4634169
+353   4.06104389 -0.70587654  0.4535120  0.5282024
+365   5.50035833  0.25348264  0.4796230 -0.4413864
+431  -8.06809505  0.27490176 -0.4297023 -0.5248323
+464  -2.15471559  0.23158421  0.5066040  0.4814387
+475   0.57065051  0.25226659  0.5518479  0.5244351
+563   0.06487219 -0.47274522  0.3319974  0.2747028
+638   1.64752655 -0.50593437 -0.6446947  0.2939883
+> 
+> fit <- coxph(Surv(futime, fustat) ~ age + ecog.ps + strata(rx))
+> summary(fit)
+Call:
+coxph(formula = Surv(futime, fustat) ~ age + ecog.ps + strata(rx))
+
+  n= 26, number of events= 12 
+
+            coef exp(coef) se(coef)      z Pr(>|z|)   
+age      0.13853   1.14858  0.04801  2.885  0.00391 **
+ecog.ps -0.09670   0.90783  0.62994 -0.154  0.87800   
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+        exp(coef) exp(-coef) lower .95 upper .95
+age        1.1486     0.8706    1.0454     1.262
+ecog.ps    0.9078     1.1015    0.2641     3.120
+
+Concordance= 0.819  (se = 0.134 )
+Rsquare= 0.387   (max possible= 0.874 )
+Likelihood ratio test= 12.71  on 2 df,   p=0.001736
+Wald test            = 8.43  on 2 df,   p=0.01476
+Score (logrank) test = 12.24  on 2 df,   p=0.002195
+
+> summary(survfit(fit))
+Call: survfit(formula = fit)
+
+                rx=1 
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+   59     13       1    0.978  0.0266       0.9275            1
+  115     12       1    0.951  0.0478       0.8620            1
+  156     11       1    0.910  0.0760       0.7722            1
+  268     10       1    0.862  0.1055       0.6776            1
+  329      9       1    0.737  0.1525       0.4909            1
+  431      8       1    0.627  0.1704       0.3680            1
+  638      5       1    0.333  0.2296       0.0865            1
+
+                rx=2 
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+  353     13       1    0.943  0.0560        0.839        1.000
+  365     12       1    0.880  0.0812        0.735        1.000
+  464      9       1    0.789  0.1143        0.594        1.000
+  475      8       1    0.697  0.1349        0.477        1.000
+  563      7       1    0.597  0.1494        0.366        0.975
+
+> sfit <- survfit(fit, list(age=c(30,70), ecog.ps=c(2,3)))  #two columns
+> sfit
+Call: survfit(formula = fit, newdata = list(age = c(30, 70), ecog.ps = c(2, 
+    3)))
+
+         n events median 0.95LCL 0.95UCL
+rx=1, 1 13      7     NA      NA      NA
+rx=2, 1 13      5     NA      NA      NA
+rx=1, 2 13      7    268     115      NA
+rx=2, 2 13      5    365     353      NA
+> summary(sfit)
+Call: survfit(formula = fit, newdata = list(age = c(30, 70), ecog.ps = c(2, 
+    3)))
+
+                rx=1 
+ time n.risk n.event survival1 survival2
+   59     13       1     0.999   0.87905
+  115     12       1     0.999   0.74575
+  156     11       1     0.998   0.57398
+  268     10       1     0.996   0.41764
+  329      9       1     0.992   0.16673
+  431      8       1     0.988   0.06489
+  638      5       1     0.973   0.00161
+
+                rx=2 
+ time n.risk n.event survival1 survival2
+  353     13       1     0.999    0.7092
+  365     12       1     0.997    0.4738
+  464      9       1     0.994    0.2494
+  475      8       1     0.991    0.1207
+  563      7       1     0.987    0.0489
+
+> detach()
+> 
+> 
+> # Check of offset + surv, added 7/2000
+> fit1 <- coxph(Surv(futime, fustat) ~ age + rx, ovarian,
++ 	      control=coxph.control(eps=1e-8))
+> fit2 <- coxph(Surv(futime, fustat) ~ age + offset(rx*fit1$coef[2]), ovarian,
++ 	      control=coxph.control(eps=1e-8))
+> all.equal(fit1$coef[1], fit2$coef[1])
+[1] TRUE
+> 
+> fit <- coxph(Surv(futime, fustat) ~ age + offset(rx), ovarian)
+> survfit(fit, censor=FALSE)$surv^exp(-1.5)
+ [1] 0.9977751 0.9951975 0.9917927 0.9881504 0.9825769 0.9770280 0.9704304
+ [8] 0.9603196 0.9499085 0.9385539 0.9217097 0.9031334
+> 
+> # Check it by hand -- there are no tied times
+> #  Remember that offsets from survfit are centered, which is 1.5 for
+> #  this data set.
+> eta <- fit$coef*(ovarian$age - fit$mean) + (ovarian$rx - 1.5)
+> ord <- order(ovarian$futime)
+> risk <- exp(eta[ord])
+> rsum <- rev(cumsum(rev(risk)))   # cumulative risk at each time point
+> dead <- (ovarian$fustat[ord]==1)
+> baseline <- cumsum(1/rsum[dead])
+> all.equal(survfit(fit, censor=FALSE)$surv, exp(-baseline))
+[1] TRUE
+> 
+> rm(fit, fit1, fit2, ord, eta, risk, rsum, dead, baseline, sfit)
+> 
+> proc.time()
+   user  system elapsed 
+  0.280   0.012   0.284 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.valve
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.valve	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.valve	(revision 2476)
@@ -0,0 +1,89 @@
+251  761   -1
+252  759   -1
+327   98    1
+327  667   -1
+328  326    1
+328  653    1
+328  653    1
+328  667   -1
+329  665   -1
+330   84    1
+330  667   -1
+331   87    1
+331  663   -1
+389  646    1
+389  653   -1
+390   92    1
+390  653   -1
+391  651   -1
+392  258    1
+392  328    1
+392  377    1
+392  621    1
+392  650   -1
+393   61    1
+393  539    1
+393  648   -1
+394  254    1
+394  276    1
+394  298    1
+394  640    1
+394  644   -1
+395   76    1
+395  538    1
+395  642   -1
+396  635    1
+396  641   -1
+397  349    1
+397  404    1
+397  561    1
+397  649   -1
+398  631   -1
+399  596   -1
+400  120    1
+400  479    1
+400  614   -1
+401  323    1
+401  449    1
+401  582   -1
+402  139    1
+402  139    1
+402  589   -1
+403  593   -1
+404  573    1
+404  589   -1
+405  165    1
+405  408    1
+405  604    1
+405  606   -1
+406  249    1
+406  594   -1
+407  344    1
+407  497    1
+407  613   -1
+408  265    1
+408  586    1
+408  595   -1
+409  166    1
+409  206    1
+409  348    1
+409  389   -1
+410  601   -1
+411  410    1
+411  581    1
+411  601   -1
+412  611   -1
+413  608   -1
+414  587   -1
+415  367    1
+415  603   -1
+416  202    1
+416  563    1
+416  570    1
+416  585   -1
+417  587   -1
+418  578   -1
+419  578   -1
+420  586   -1
+421  585   -1
+422  582   -1
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/prednew.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/prednew.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/prednew.Rout.save	(revision 2476)
@@ -0,0 +1,118 @@
+
+R Under development (unstable) (2013-02-24 r62054) -- "Unsuffered Consequences"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> #
+> # Make sure that the newdata argument works for various
+> #   predictions
+> # We purposely use a subset of the lung data that has only some
+> #   of the levels of the ph.ecog
+> library(survival)
+Loading required package: splines
+> options(na.action=na.exclude, contrasts=c('contr.treatment', 'contr.poly'))
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> 
+> myfit <- coxph(Surv(time, status) ~ age + factor(ph.ecog) + strata(sex), lung)
+> 
+> keep <- which(lung$inst<13 & (lung$ph.ecog==1 | lung$ph.ecog==2))
+> p1 <- predict(myfit, type='lp')
+> p2 <- predict(myfit, type="lp", newdata=lung[keep,])
+> p3 <- predict(myfit, type='lp', se.fit=TRUE)
+> p4 <- predict(myfit, type="lp", newdata=lung[keep,], se.fit=TRUE)
+> aeq(p1[keep], p2)
+[1] TRUE
+> aeq(p1, p3$fit)
+[1] TRUE
+> aeq(p1[keep], p4$fit)
+[1] TRUE
+> aeq(p3$se.fit[keep], p4$se.fit)
+[1] TRUE
+> 
+> p1 <- predict(myfit, type='risk')
+> p2 <- predict(myfit, type="risk", newdata=lung[keep,])
+> p3 <- predict(myfit, type='risk', se.fit=TRUE)
+> p4 <- predict(myfit, type="risk", newdata=lung[keep,], se.fit=TRUE)
+> aeq(p1[keep], p2)
+[1] TRUE
+> aeq(p1, p3$fit)
+[1] TRUE
+> aeq(p1[keep], p4$fit)
+[1] TRUE
+> aeq(p3$se.fit[keep], p4$se.fit)
+[1] TRUE
+> 
+> # The all.equal fails for type=expected, Efron approx, and tied death
+> #  times due to use of an approximation.  See comments in the source code.
+> myfit <- coxph(Surv(time, status) ~ age + factor(ph.ecog) + strata(sex), 
++                data=lung, method='breslow')
+> p1 <- predict(myfit, type='expected')
+> p2 <- predict(myfit, type="expected", newdata=lung[keep,])
+> p3 <- predict(myfit, type='expected', se.fit=TRUE)
+> p4 <- predict(myfit, type="expected", newdata=lung[keep,], se.fit=TRUE)
+> aeq(p1[keep], p2)
+[1] TRUE
+> aeq(p1, p3$fit)
+[1] TRUE
+> aeq(p1[keep], p4$fit)
+[1] TRUE
+> aeq(p3$se.fit[keep], p4$se.fit)
+[1] TRUE
+> 
+> p1 <- predict(myfit, type='terms')
+> p2 <- predict(myfit, type="terms",newdata=lung[keep,])
+> p3 <- predict(myfit, type='terms', se.fit=T)
+> p4 <- predict(myfit, type="terms",newdata=lung[keep,], se.fit=T)
+> aeq(p1[keep,], p2)
+[1] TRUE
+> aeq(p1, p3$fit)
+[1] TRUE
+> aeq(p1[keep,], p4$fit)
+[1] TRUE
+> aeq(p3$se.fit[keep,], p4$se.fit)
+[1] TRUE
+> 
+> #
+> # Check out the logic whereby predict does not need to
+> #  recover the model frame.  The first call should not 
+> #  need to do so, the second should in each case.
+> #
+> myfit <- coxph(Surv(time, status) ~ age + factor(sex), lung, x=T)
+> p1 <- predict(myfit, type='risk', se=T)
+> myfit2 <- coxph(Surv(time, status) ~ age + factor(sex), lung)
+> p2 <- predict(myfit2, type='risk', se=T)
+> aeq(p1$fit, p2$fit)
+[1] TRUE
+> aeq(p1$se, p2$se)
+[1] TRUE
+> 
+> p1 <- predict(myfit, type='expected', se=T)
+> p2 <- predict(myfit2, type='expected', se=T)
+> aeq(p1$fit, p2$fit)
+[1] TRUE
+> aeq(p1$se.fit, p2$se.fit)
+[1] TRUE
+> 
+> p1 <- predict(myfit, type='terms', se=T)
+> p2 <- predict(myfit2, type='terms', se=T)
+> aeq(p1$fit, p2$fit)
+[1] TRUE
+> aeq(p1$se.fit, p2$se.fit)
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  0.380   0.016   0.394 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/anova.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/anova.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/anova.Rout.save	(revision 2476)
@@ -0,0 +1,62 @@
+
+R version 3.0.0 (2013-04-03) -- "Masked Marvel"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> #
+> # Test out anova, with strata terms
+> #
+> options(na.action=na.omit)
+> library(survival)
+Loading required package: splines
+> 
+> fit1 <- coxph(Surv(time, status) ~ ph.ecog + wt.loss + strata(sex) + 
++               poly(age,3), lung)
+> ztemp <- anova(fit1)
+> 
+> tdata <- na.omit(lung[, c('time', 'status', 'ph.ecog', 'wt.loss', 'sex', 'age')])
+> fit2 <- coxph(Surv(time, status)~ ph.ecog + wt.loss + poly(age,3) + strata(sex),
++               data=tdata)
+> ztemp2 <- anova(fit2)
+> all.equal(ztemp, ztemp2)
+[1] TRUE
+> 
+> 
+> fit2 <-  coxph(Surv(time, status) ~ ph.ecog + wt.loss + strata(sex), tdata)
+> fit3 <-  coxph(Surv(time, status) ~ ph.ecog + strata(sex), tdata)
+> 
+> all.equal(ztemp$loglik, c(fit1$loglik[1], fit3$loglik[2], fit2$loglik[2],
++                          fit1$loglik[2]))
+[1] TRUE
+> all.equal(ztemp$Chisq[-1], 2* diff(ztemp$loglik))
+[1] TRUE
+> all.equal(ztemp$Df[-1], c(1,1,3))
+[1] TRUE
+> 
+> ztemp2 <- anova(fit3, fit2, fit1)
+> all.equal(ztemp2$loglik, ztemp$loglik[-1])
+[1] TRUE
+> all.equal(ztemp2$Chisq[2:3], ztemp$Chisq[3:4])
+[1] TRUE
+> # Change from ztemp2$P; it's a data frame and in R 3.0.2 abbreviated names
+> #   give a warning
+> all.equal(ztemp2[[4]][2:3], ztemp[[4]][3:4])
+[1] TRUE
+> 
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.284   0.020   0.301 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_sas.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_sas.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_sas.Rout.save	(revision 2476)
@@ -0,0 +1,441 @@
+
+R Under development (unstable) (2013-02-24 r62054) -- "Unsuffered Consequences"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Reproduce example 1 in the SAS lifereg documentation
+> #
+> 
+> # this fit doesn't give the same log-lik that they claim
+> motor <- read.table('data.motor', col.names=c('temp', 'time', 'status'))
+> fit1 <- survreg(Surv(time, status) ~ I(1000/(273.2+temp)), motor,
++ 		subset=(temp>150), dist='lognormal')
+> summary(fit1)
+
+Call:
+survreg(formula = Surv(time, status) ~ I(1000/(273.2 + temp)), 
+    data = motor, subset = (temp > 150), dist = "lognormal")
+                         Value Std. Error     z        p
+(Intercept)            -10.471      2.772 -3.78 1.58e-04
+I(1000/(273.2 + temp))   8.322      1.284  6.48 9.13e-11
+Log(scale)              -0.504      0.183 -2.75 5.96e-03
+
+Scale= 0.604 
+
+Log Normal distribution
+Loglik(model)= -145.9   Loglik(intercept only)= -155
+	Chisq= 18.3 on 1 degrees of freedom, p= 1.9e-05 
+Number of Newton-Raphson Iterations: 6 
+n= 30 
+
+> 
+> # This one, with the loglik on the transformed scale (the inappropriate
+> #   scale, Ripley & Venables would argue) does agree.
+> # All coefs are of course identical.
+> fit2 <- survreg(Surv(log(time), status) ~ I(1000/(273.2+temp)), motor,
++ 		subset=(temp>150), dist='gaussian')
+> 
+> 
+> # Give the quantile estimates, which is the lower half of "output 48.1.5"
+> #  in the SAS 9.2 manual
+> 
+> pp1 <- predict(fit1, newdata=list(temp=c(130,150)), p=c(.1, .5, .9),
++ 		      type='quantile', se=T)
+> pp2 <- predict(fit1, newdata=list(temp=c(130,150)), p=c(.1, .5, .9),
++ 		      type='uquantile', se=T)
+> pp1
+$fit
+          [,1]      [,2]     [,3]
+[1,] 12033.185 26095.677 56592.20
+[2,]  4536.877  9838.864 21336.98
+
+$se.fit
+         [,1]      [,2]      [,3]
+[1,] 5482.338 11359.450 26036.917
+[2,] 1443.072  2901.155  7172.343
+
+> 
+> temp130 <- matrix(0, nrow=3, ncol=6)
+> temp130[,1] <- pp1$fit[1,]
+> temp130[,2] <- pp1$se.fit[1,]
+> temp130[,3] <- pp2$fit[1,]
+> temp130[,4] <- pp2$se.fit[1,]
+> temp130[,5] <- exp(pp2$fit[1,] - 1.64*pp2$se.fit[1,])
+> temp130[,6] <- exp(pp2$fit[1,] + 1.64*pp2$se.fit[1,])
+> dimnames(temp130) <- list(c("p=.1", "p=.2", "p=.3"),
++      c("Time", "se(time)", "log(time)", "se[log(time)]", 
++        "lower 90", "upper 90"))
+> print(temp130)
+         Time  se(time) log(time) se[log(time)]  lower 90  upper 90
+p=.1 12033.18  5482.338  9.395424     0.4556015  5700.089  25402.68
+p=.2 26095.68 11359.450 10.169525     0.4353001 12779.950  53285.37
+p=.3 56592.20 26036.917 10.943626     0.4600796 26611.422 120349.71
+> 
+> # A set of examples, copied from the manual pages of SAS procedure
+> #  "reliability", which is part of their QC product.
+> #
+> 
+> color <- c("black", "red", "green", "blue", "magenta", "red4",
++                         "orange", "DarkGreen", "cyan2", "DarkViolet")
+> palette(color)
+> pdf(file='reliability.pdf')
+> 
+> #
+> # Insulating fluids example
+> #
+> fluid <- read.table('data.fluid', col.names=c('time', 'voltage'))
+> 
+> # Adding a -1 to the fit just causes the each group to have it's own
+> # intercept, rather than a global intercept + constrasts.  The strata
+> # statement allows each to have a separate scale
+> ffit <- survreg(Surv(time) ~ voltage + strata(voltage) -1, fluid)
+> 
+> # Get predicted quantiles at each of the voltages
+> # By default predict() would give a line of results for each observation,
+> #  I only want the unique set of x's, i.e., only 4 cases
+> uvolt <- sort(unique(fluid$voltage))      #the unique levels
+> plist <- c(1, 2, 5, 1:9 *10, 95, 99)/100
+> pred  <- predict(ffit, type='quantile', p=plist,
++                  newdata=data.frame(voltage=factor(uvolt)))
+> tfun <- function(x) log(-log(1-x))
+> 
+> matplot(t(pred), tfun(plist), type='l', log='x', lty=1,
++         col=1:4, yaxt='n')
+> axis(2, tfun(plist), format(100*plist), adj=1)
+> 
+> kfit <- survfit(Surv(time) ~ voltage, fluid, type='fleming') #KM fit
+> for (i in 1:4) {
++     temp <- kfit[i]
++     points(temp$time, tfun(1-temp$surv), col=i, pch=i)
++     }
+> 
+> # Now a table
+> temp <- array(0, dim=c(4,4,4))  #4 groups by 4 parameters by 4 stats
+> temp[,1,1] <- ffit$coef         # "EV Location" in SAS manual
+> temp[,2,1] <- ffit$scale        # "EV scale"
+> temp[,3,1] <- exp(ffit$coef)    # "Weibull Scale"
+> temp[,4,1] <- 1/ffit$scale      # "Weibull Shape"
+>  
+> temp[,1,2] <- sqrt(diag(ffit$var))[1:4]   #standard error
+> temp[,2,2] <- sqrt(diag(ffit$var))[5:8] * ffit$scale
+> temp[,3,2] <- temp[,1,2] * temp[,3,1]
+> temp[,4,2] <- temp[,2,2] / (temp[,2,1])^2
+> 
+> temp[,1,3] <- temp[,1,1] - 1.96*temp[,1,2]  #lower conf limits 
+> temp[,1,4]  <- temp[,1,1] + 1.96*temp[,1,2] # upper
+> # log(scale) is the natural parameter, in which the routine did its fitting
+> #  and on which the std errors were computed
+> temp[,2, 3] <- exp(log(ffit$scale) - 1.96*sqrt(diag(ffit$var))[5:8])
+> temp[,2, 4] <- exp(log(ffit$scale) + 1.96*sqrt(diag(ffit$var))[5:8])
+> 
+> temp[,3, 3:4] <- exp(temp[,1,3:4])
+> temp[,4, 3:4] <- 1/temp[,2,4:3]
+> 
+> dimnames(temp) <- list(uvolt, c("EV Location", "EV Scale", "Weibull scale",
++                                 "Weibull shape"),
++                        c("Estimate", "SE", "lower 95% CI", "uppper 95% CI"))
+> print(aperm(temp, c(2,3,1)), digits=5)
+, , 26kV
+
+               Estimate         SE lower 95% CI uppper 95% CI
+EV Location     6.86249    1.10404      4.69857        9.0264
+EV Scale        1.83423    0.96114      0.65677        5.1227
+Weibull scale 955.74665 1055.18620    109.78973     8320.0103
+Weibull shape   0.54519    0.28568      0.19521        1.5226
+
+, , 30kV
+
+              Estimate       SE lower 95% CI uppper 95% CI
+EV Location    4.35133  0.30151      3.76037        4.9423
+EV Scale       0.94446  0.22544      0.59156        1.5079
+Weibull scale 77.58159 23.39176     42.96420      140.0911
+Weibull shape  1.05881  0.25274      0.66318        1.6904
+
+, , 34kV
+
+              Estimate      SE lower 95% CI uppper 95% CI
+EV Location    2.50326 0.31476      1.88632        3.1202
+EV Scale       1.29732 0.22895      0.91796        1.8334
+Weibull scale 12.22222 3.84707      6.59509       22.6506
+Weibull shape  0.77082 0.13603      0.54542        1.0894
+
+, , 38kV
+
+                Estimate      SE lower 95% CI uppper 95% CI
+EV Location   0.00092629 0.27318     -0.53450       0.53635
+EV Scale      0.73367610 0.20380      0.42565       1.26460
+Weibull scale 1.00092672 0.27343      0.58596       1.70976
+Weibull shape 1.36299929 0.37861      0.79077       2.34933
+
+> 
+> rm(temp, uvolt, plist, pred, ffit, kfit) 
+> 
+> #####################################################################
+> # Turbine cracks data
+> cracks <- read.table('data.cracks', col.names=c('time1', 'time2', 'n'))
+> cfit <- survreg(Surv(time1, time2, type='interval2') ~1, 
++                 dist='weibull', data=cracks, weight=n)
+> 
+> summary(cfit)
+
+Call:
+survreg(formula = Surv(time1, time2, type = "interval2") ~ 1, 
+    data = cracks, weights = n, dist = "weibull")
+             Value Std. Error     z        p
+(Intercept)  4.272     0.0744 57.43 0.00e+00
+Log(scale)  -0.396     0.0987 -4.01 6.06e-05
+
+Scale= 0.673 
+
+Weibull distribution
+Loglik(model)= -309.7   Loglik(intercept only)= -309.7
+Number of Newton-Raphson Iterations: 5 
+n= 9 
+
+> #Their output also has Wiebull scale = exp(cfit$coef), shape = 1/(cfit$scale)
+> 
+> # Draw the SAS plot
+> #  The "type=fleming" argument reflects that they estimate hazards rather than
+> #  survival, and forces a Nelson-Aalen hazard estimate
+> #
+> plist <-  c(1, 2, 5, 1:8 *10)/100
+> plot(qsurvreg(plist, cfit$coef, cfit$scale), tfun(plist), log='x',
++      yaxt='n', type='l',
++      xlab="Weibull Plot for Time", ylab="Percent")
+> axis(2, tfun(plist), format(100*plist), adj=1)
+> 
+> kfit <- survfit(Surv(time1, time2, type='interval2') ~1, data=cracks,
++                 weight=n, type='fleming')
+> # Only plot point where n.event > 0 
+> # Why?  I'm trying to match them.  Personally, all should be plotted.
+> who <- (kfit$n.event > 0)
+> points(kfit$time[who], tfun(1-kfit$surv[who]), pch='+')
+> points(kfit$time[who], tfun(1-kfit$upper[who]), pch='-')
+> points(kfit$time[who], tfun(1-kfit$lower[who]), pch='-')
+> 
+> text(rep(3,6), seq(.5, -1.0, length=6), 
++          c("Scale", "Shape", "Right Censored", "Left Censored", 
++            "Interval Censored", "Fit"), adj=0)
+> text(rep(9,6), seq(.5, -1.0, length=6), 
++          c(format(round(exp(cfit$coef), 2)),
++            format(round(1/cfit$scale, 2)),
++            format(tapply(cracks$n, cfit$y[,3], sum)), "ML"), adj=1)
+> 
+> # Now a portion of his percentiles table
+> #  I don't get the same SE as SAS, I haven't checked out why.  The
+> #  estimates and se for the underlying Weibull model are the same.
+> temp <- predict(cfit, type='quantile', p=plist, se=T)
+> tempse <- sqrt(temp$se[1,])
+> mat <- cbind(temp$fit[1,], tempse, 
++              temp$fit[1,] -1.96*tempse, temp$fit[1,] + 1.96*tempse)
+> dimnames(mat) <- list(plist*100, c("Estimate", "SE", "Lower .95", "Upper .95"))
+> print(mat)
+    Estimate       SE Lower .95  Upper .95
+1   3.239372 0.965006  1.347960   5.130784
+2   5.183283 1.121677  2.984796   7.381770
+5   9.705766 1.337420  7.084422  12.327109
+10 15.757758 1.491460 12.834497  18.681020
+20 26.115947 1.622573 22.935705  29.296190
+30 35.812585 1.704575 32.471618  39.153553
+40 45.610018 1.809448 42.063500  49.156536
+50 56.014351 1.973350 52.146585  59.882116
+60 67.592818 2.214072 63.253237  71.932400
+70 81.233457 2.543490 76.248217  86.218697
+80 98.764571 2.991889 92.900469 104.628673
+> 
+> #
+> # The cracks data has a particularly easy estimate, so use
+> # it to double check code
+> time <- c(cracks$time2[1], (cracks$time1 + cracks$time2)[2:8]/2, 
++           cracks$time1[9])
+> cdf  <- cumsum(cracks$n)/sum(cracks$n)
+> all.equal(kfit$time, time)
+[1] TRUE
+> all.equal(kfit$surv, 1-cdf[c(1:8,8)]) 
+[1] TRUE
+> rm(time, cdf, kfit)
+> 
+> 
+> #######################################################
+> #
+> # Valve data
+> #   The input data has id, time, and an indicator of whether there was an
+> #   event at that time: -1=no, 1=yes.  No one has an event at their last time.
+> #  Convert the data to (start, stop] form
+> #  The input data has two engines with dual failures: 328 loses 2 valves at 
+> #    time 653, and number 402 loses 2 at time 139.  For each, fudge the first
+> #    time to be .1 days earlier.
+> #
+> temp <- matrix(scan('data.valve'), byrow=T, ncol=3)
+Read 267 items
+> 
+> n <- nrow(temp)
+> valve <- data.frame(id=temp[,1], 
++                     time1 = c(0, ifelse(diff(temp[,1])==0, temp[-n,2],0)),
++                     time2 = temp[,2],
++                     status= as.numeric(temp[,3]==1))
+> 
+> indx <- (1:nrow(valve))[valve$time1==valve$time2]
+> valve$time1[indx]   <- valve$time1[indx] - .1
+> valve$time2[indx-1] <- valve$time2[indx-1] - .1
+> 
+> kfit <- survfit(Surv(time1, time2, status) ~1, valve, type='fh2')
+> 
+> plot(kfit, fun='cumhaz', ylab="Sample Mean Cumulative Failures", xlab='Time',
++      ylim=range(-log(kfit$lower)))
+> title("Valve replacement data")
+> 
+> # The summary.survfit function doesn't have an option for printing out
+> #   cumulative hazards instead of survival --- need to add that
+> #   so I just reprise the central code of print.summary.survfit
+> xx <- summary(kfit)
+> temp <- cbind(xx$time, xx$n.risk, xx$n.event, -log(xx$surv), 
++               xx$std.err/xx$surv, -log(xx$upper), -log(xx$lower))
+> dimnames(temp) <- list(rep("", nrow(temp)),
++                        c("time", "n.risk", "n.event", "Cum haz", "std.err",
++                          "lower 95%", "upper 95%"))
+> print(temp, digits=2)
+ time n.risk n.event Cum haz std.err lower 95% upper 95%
+   61     41       1   0.024   0.025   0.00000     0.073
+   76     41       1   0.049   0.035   0.00000     0.117
+   84     41       1   0.073   0.043   0.00000     0.157
+   87     41       1   0.098   0.049   0.00077     0.194
+   92     41       1   0.122   0.055   0.01373     0.230
+   98     41       1   0.146   0.060   0.02779     0.265
+  120     41       1   0.171   0.065   0.04268     0.299
+  139     41       1   0.195   0.070   0.05823     0.332
+  139     41       1   0.220   0.074   0.07432     0.365
+  165     41       1   0.244   0.078   0.09085     0.397
+  166     41       1   0.268   0.082   0.10778     0.429
+  202     41       1   0.293   0.086   0.12503     0.460
+  206     41       1   0.317   0.089   0.14257     0.492
+  249     41       1   0.341   0.092   0.16038     0.523
+  254     41       1   0.366   0.096   0.17841     0.553
+  258     41       1   0.390   0.099   0.19665     0.584
+  265     41       1   0.415   0.102   0.21508     0.614
+  276     41       1   0.439   0.105   0.23369     0.644
+  298     41       1   0.463   0.108   0.25245     0.674
+  323     41       1   0.488   0.110   0.27136     0.704
+  326     41       1   0.512   0.113   0.29041     0.734
+  328     41       1   0.537   0.116   0.30958     0.764
+  344     41       1   0.561   0.118   0.32887     0.793
+  348     41       1   0.585   0.121   0.34827     0.822
+  349     41       1   0.610   0.123   0.36777     0.852
+  367     41       1   0.634   0.126   0.38736     0.881
+  377     41       1   0.659   0.128   0.40705     0.910
+  404     40       1   0.684   0.131   0.42720     0.940
+  408     40       1   0.709   0.133   0.44745     0.970
+  410     40       1   0.734   0.136   0.46777     0.999
+  449     40       1   0.759   0.138   0.48818     1.029
+  479     40       1   0.784   0.140   0.50866     1.058
+  497     40       1   0.809   0.143   0.52922     1.088
+  538     40       1   0.834   0.145   0.54985     1.117
+  539     40       1   0.859   0.147   0.57054     1.147
+  561     40       1   0.884   0.149   0.59129     1.176
+  563     40       1   0.909   0.151   0.61211     1.205
+  570     40       1   0.934   0.153   0.63299     1.234
+  573     40       1   0.959   0.155   0.65392     1.263
+  581     38       1   0.985   0.158   0.67578     1.294
+  586     34       1   1.014   0.160   0.69970     1.329
+  604     22       1   1.060   0.167   0.73221     1.387
+  621     17       1   1.119   0.178   0.77014     1.467
+  635     16       1   1.181   0.189   0.81038     1.552
+  640     16       1   1.244   0.200   0.85188     1.635
+  646     13       1   1.320   0.215   0.89854     1.742
+  653      9       1   1.432   0.245   0.95056     1.913
+  653      9       1   1.543   0.272   1.00909     2.076
+> 
+> # Note that I have the same estimates but different SE's.  We are using a
+> #  different estimator. It's a statistical argument as to which is
+> #  better (one could defend both sides): do you favor JASA or Technometrics?
+> rm(temp, kfit, indx, xx)
+>                     
+> ######################################################
+> # Turbine data, lognormal fit
+> turbine <- read.table('data.turbine', 
++                       col.names=c("time1", "time2", "n"))
+> 
+> tfit <- survreg(Surv(time1, time2, type='interval2') ~1, turbine,
++                 dist='lognormal', weights=n, subset=(n>0))
+> 
+> summary(tfit)
+
+Call:
+survreg(formula = Surv(time1, time2, type = "interval2") ~ 1, 
+    data = turbine, weights = n, subset = (n > 0), dist = "lognormal")
+             Value Std. Error     z       p
+(Intercept)  3.700     0.0708 52.23 0.00000
+Log(scale)  -0.329     0.1232 -2.67 0.00763
+
+Scale= 0.72 
+
+Log Normal distribution
+Loglik(model)= -190.7   Loglik(intercept only)= -190.7
+Number of Newton-Raphson Iterations: 6 
+n= 21 
+
+> 
+> # Now, do his plot, but put bootstrap confidence bands on it!
+> #  First, make a simple data set without weights
+> tdata <- turbine[rep(1:nrow(turbine), turbine$n),]
+> 
+> qstat <- function(data) {
++     temp <- survreg(Surv(time1, time2, type='interval2') ~1, data=data,
++                     dist='lognormal')
++     qsurvreg(plist, temp$coef, temp$scale, dist='lognormal')
++     }
+> 
+> {if (exists('bootstrap')) {
++     bfit <- bootstrap(tdata, qstat, B=1000)
++     bci <- limits.bca(bfit, probs=c(.025, .975))
++     }
++ else {
++     values <- matrix(0, nrow=1000, ncol=length(plist))
++     n <- nrow(tdata)
++     for (i in 1:1000) {
++         subset <- sample(1:n, n, replace=T)
++         values[i,] <- qstat(tdata[subset,])
++         }
++     bci <- t(apply(values,2, quantile, c(.05, .95)))
++     }
++  }
+> xmat <- cbind(qsurvreg(plist, tfit$coef, tfit$scale, dist='lognormal'),
++               bci)
+> 
+> 
+> matplot(xmat, qnorm(plist), 
++         type='l', lty=c(1,2,2), col=c(1,1,1), 
++         log='x', yaxt='n', ylab='Percent', 
++         xlab='Time of Cracking (Hours x 100)')
+> axis(2, qnorm(plist), format(100*plist), adj=1)
+> title("Turbine Data")
+> kfit <- survfit(Surv(time1, time2, type='interval2') ~1, data=tdata)
+> points(kfit$time, qnorm(1-kfit$surv), pch='+')
+> 
+> dev.off()  #close the plot file
+pdf 
+  2 
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  5.312   0.044   5.358 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv4.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv4.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv4.R	(revision 2476)
@@ -0,0 +1,45 @@
+library(survival)
+
+# Strata by covariate interactions, a case pointed out in early 2011
+#  by Frank Harrell, which as it turns out had never been computed
+#  correctly by any version of the package.  Which shows how often this
+#  case arises in practice.
+#
+aeq <- function(x, y, ...) all.equal(as.vector(x), as.vector(y))
+fit1 <- coxph(Surv(time, status) ~ wt.loss + age*strata(sex) + strata(ph.ecog),
+              data=lung)
+tdata <- data.frame(wt.loss=c(10,5,0,10, 15,20,25),
+                    age    =c(50,60,50,60,70,40,21),
+                    sex    =c(1,1,2,2,1,1,1),
+                    ph.ecog=c(0,0,1,1,2,2,2))
+surv1 <- survfit(fit1, newdata=tdata)
+
+fit2 <- coxph(Surv(time, status) ~ wt.loss + age + I(age*0), data=lung, 
+              init=fit1$coef, iter=0, subset=(sex==1 & ph.ecog==0))
+fit2$var <- fit1$var
+
+surv2 <- survfit(fit2, newdata=list(wt.loss=c(10,5), age=c(50,60)))
+s1 <- surv1[1:2]
+aeq(s1$surv, surv2$surv) #first a vector, second a matrix
+aeq(s1$std.err, surv2$std.err)
+aeq(s1[1]$time, surv2$time)
+aeq(s1[1]$n.event, surv2$n.event)
+
+fit3 <- coxph(Surv(time, status) ~ wt.loss + age + I(age*1),
+              data=lung, init=fit1$coef, iter=0,
+              subset=(sex==2 & ph.ecog==1))
+fit3$var <- fit1$var
+surv3 <- survfit(fit3, newdata=list(wt.loss=c(0,10), age=c(50,60)))
+aeq(surv1[3:4]$surv, surv3$surv)
+aeq(surv1[3:4]$std, surv3$std)
+
+fit4 <- coxph(Surv(time, status) ~ wt.loss + age + I(age*0),
+              data=lung, init=fit1$coef, iter=0,
+              subset=(sex==1 & ph.ecog==2))
+fit4$var <- fit1$var
+surv4 <- survfit(fit4, newdata=list(wt.loss=c(15,20,25), age=c(70,40,21)))
+
+aeq(surv1[5:7]$surv, surv4$surv)
+aeq(surv1[5:7]$std.err, surv4$std.err)
+aeq(surv1[5]$n.risk, surv4$n.risk)
+             
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survtest.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survtest.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survtest.R	(revision 2476)
@@ -0,0 +1,60 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Simple test of (start, stop] Kaplan-Meier curves, using the test2 data
+#   set
+#
+test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0))
+test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
+                    stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
+                    event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
+                    x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+fit1 <- survfit(Surv(start, stop, event) ~1, test2, type='fh2',
+                error='tsiatis')
+fit2 <- survfit(Surv(start, stop, event) ~x, test2, start.time=3,
+		type='fh2')
+
+cfit1<- survfit(coxph(Surv(start, stop, event)~1, test2))
+cfit2<- survfit(coxph(Surv(start, stop, event) ~ strata(x), test2, subset=-1))
+
+deaths <- (fit1$n.event + fit1$n.censor)>0
+aeq(fit1$time[deaths], cfit1$time)
+aeq(fit1$n.risk[deaths], cfit1$n.risk)
+aeq(fit1$n.event[deaths], cfit1$n.event)
+aeq(fit1$surv[deaths], cfit1$surv)
+aeq(fit1$std.err[deaths], cfit1$std.err)
+
+deaths <- (fit2$n.event + fit2$n.censor)>0
+aeq(fit2$time[deaths], cfit2$time)
+aeq(fit2$n.risk[deaths], cfit2$n.risk)
+aeq(fit2$n.event[deaths], cfit2$n.event)
+aeq(fit2$surv[deaths], cfit2$surv)
+
+fit3 <- survfit(Surv(start, stop, event) ~1, test2) #Kaplan-Meier
+aeq(fit3$n, 10)
+aeq(fit3$time, c(1:9,14,17))
+aeq(fit3$n.risk, c(0,2,3,3,4,5,4,4,5,2,1))
+aeq(fit3$n.event,c(0,1,1,0,0,1,1,1,2,0,0))
+aeq(fit3$surv[fit3$n.event>0], c(.5, 1/3, 4/15, 1/5, 3/20, 9/100))
+#
+#  Verify that both surv AND n.risk are right between time points.
+#
+fit <- survfit(Surv(time, status) ~1, test1)
+temp <- summary(fit, time=c(.5,1, 1.5, 6, 7.5, 8, 8.9, 9, 10), extend=TRUE)
+
+aeq(temp$n.risk, c(6,6,4,4,2,2,1,1,0))
+aeq(temp$surv, c(1, fit$surv[c(1,1,2,2,3,3,4,4)]))
+aeq(temp$n.event, c(0,1,0,2,0,0,0,1,0))
+aeq(temp$std.err, c(0, (fit$surv*fit$std.err)[c(1,1,2,2,3,3,4,4)]))
+
+
+fit <- survfit(Surv(start, stop, event) ~1, test2)
+temp <- summary(fit, times=c(.5, 1.5, 2.5, 3, 6.5, 14.5, 16.5))
+aeq(temp$surv, c(1, fit$surv[c(1,2,3,6, 10,10)]))
+aeq(temp$n.risk, c(0, 2, 3, 3, 4, 1,1))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book1.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book1.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book1.Rout.save	(revision 2476)
@@ -0,0 +1,228 @@
+
+R Under development (unstable) (2014-05-11 r65563) -- "Unsuffered Consequences"
+Copyright (C) 2014 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+Loading required package: splines
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> 
+> #
+> # Tests from the appendix of Therneau and Grambsch
+> #  a. Data set 1 and Breslow estimate
+> #  The data below is not in time order, to also test sorting, and has 1 NA
+> #
+> test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0))
+> 
+> # Breslow estimate
+> byhand1 <- function(beta, newx=0) {
++     r <- exp(beta)
++     loglik <- 2*beta - (log(3*r+3) + 2*log(r+3))
++     u <- (6 + 3*r - r^2) / ((r+1)*(r+3))
++     imat <- r/(r+1)^2 + 6*r/(r+3)^2
++ 
++     x <- c(1,1,1,0,0,0)
++     status <- c(1,0,1,1,0,1)
++     xbar <- c(r/(r+1), r/(r+3), 0, 0)  # at times 1, 6, 8 and 9
++     haz <- c(1/(3*r+3), 2/(r+3), 0, 1 )
++     ties <- c(1,1,2,2,3,4)
++     wt <- c(r,r,r,1,1,1)
++     mart <- c(1,0,1,1,0,1) -  wt* (cumsum(haz))[ties]  #martingale residual
++ 
++     a <- 3*(r+1)^2; b<- (r+3)^2
++     score <- c((2*r+3)/a, -r/a, -r/a + 3*(3-r)/b,  r/a - r*(r+1)/b,
++                r/a + 2*r/b, r/a + 2*r/b)
++ 
++     # Schoenfeld residual
++     scho <- c(1/(r+1), 1- (r/(3+r)), 0-(r/(3+r)) , 0)
++ 
++     surv  <- exp(-cumsum(haz)* exp(beta*newx))
++     varhaz.g <- cumsum(c(1/(3*r+3)^2, 2/(r+3)^2, 0, 1 ))
++ 
++     varhaz.d <- cumsum((newx-xbar) * haz)
++ 
++     varhaz <- (varhaz.g + varhaz.d^2/ imat) * exp(2*beta*newx)
++ 
++     names(xbar) <- names(haz) <- 1:4
++     names(surv) <- names(varhaz) <- 1:4
++     list(loglik=loglik, u=u, imat=imat, xbar=xbar, haz=haz,
++ 	     mart=mart,  score=score,
++ 		scho=scho, surv=surv, var=varhaz,
++ 		varhaz.g=varhaz.g, varhaz.d=varhaz.d)
++     }
+> 
+> 
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> 
+> fit0 <-coxph(Surv(time, status) ~x, test1, iter=0, method='breslow')
+> truth0 <- byhand1(0,0)
+> aeq(truth0$loglik, fit0$loglik[1])
+[1] TRUE
+> aeq(1/truth0$imat, fit0$var)
+[1] TRUE
+> aeq(truth0$mart, fit0$resid[c(2:6,1)])
+[1] TRUE
+> aeq(truth0$scho, resid(fit0, 'schoen'))
+[1] TRUE
+> aeq(truth0$score, resid(fit0, 'score')[c(3:7,1)])
+[1] TRUE
+> sfit <- survfit(fit0, list(x=0))
+> aeq(sfit$std.err^2, c(7/180, 2/9, 2/9, 11/9))
+[1] TRUE
+> aeq(resid(fit0, 'score'), c(5/24, NA, 5/12, -1/12, 7/24, -1/24, 5/24))
+[1] TRUE
+> 
+> fit1 <- coxph(Surv(time, status) ~x, test1, iter=1, method='breslow')
+> aeq(fit1$coef, 8/5)
+[1] TRUE
+> 
+> # This next gives an ignorable warning message
+> fit2 <- coxph(Surv(time, status) ~x, test1, method='breslow', iter=2)
+Warning message:
+In fitter(X, Y, strats, offset, init, control, weights = weights,  :
+  Ran out of iterations and did not converge
+> aeq(round(fit2$coef, 6), 1.472724)
+[1] TRUE
+> 
+> fit <- coxph(Surv(time, status) ~x, test1, method='breslow', eps=1e-8)
+> aeq(round(fit$coef,7), 1.4752849)
+[1] TRUE
+> truth <- byhand1(fit$coef, 0)
+> aeq(truth$loglik, fit$loglik[2])
+[1] TRUE
+> aeq(1/truth$imat, fit$var)
+[1] TRUE
+> aeq(truth$mart, fit$resid[c(2:6,1)])
+[1] TRUE
+> aeq(truth$scho, resid(fit, 'schoen'))
+[1] TRUE
+> aeq(truth$score, resid(fit, 'score')[c(3:7,1)])
+[1] TRUE
+> expect <- predict(fit, type='expected', newdata=test1) #force recalc
+> aeq(test1$status[-2] -fit$resid, expect[-2]) #tests the predict function
+[1] TRUE
+> 
+> sfit <- survfit(fit, list(x=0), censor=FALSE)
+> aeq(sfit$std.err^2, truth$var[c(1,2,4)]) # sfit skips time 8 (no events there)
+[1] TRUE
+> aeq(-log(sfit$surv), (cumsum(truth$haz))[c(1,2,4)])
+[1] TRUE
+> sfit <- survfit(fit, list(x=0), censor=TRUE)
+> aeq(sfit$std.err^2, truth$var) 
+[1] TRUE
+> aeq(-log(sfit$surv), (cumsum(truth$haz)))
+[1] TRUE
+> 
+> 
+> # 
+> # Done with the formal test, now print out lots of bits
+> #
+> resid(fit)
+         1          2          3          4          5          6          7 
+-0.3333333         NA  0.7287136 -0.2712864 -0.4574271  0.6666667 -0.3333333 
+> resid(fit, 'scor')
+          1           2           3           4           5           6 
+ 0.21138938          NA  0.13564322 -0.05049744 -0.12624360 -0.38168095 
+          7 
+ 0.21138938 
+> resid(fit, 'scho')
+         1          6          6          9 
+ 0.1861407  0.4069297 -0.5930703  0.0000000 
+> 
+> predict(fit, type='lp')
+[1] -0.7376425         NA  0.7376425  0.7376425  0.7376425 -0.7376425 -0.7376425
+> predict(fit, type='risk')
+[1] 0.4782401        NA 2.0910001 2.0910001 2.0910001 0.4782401 0.4782401
+> predict(fit, type='expected')
+        1         2         3         4         5         6         7 
+1.3333333        NA 0.2712864 0.2712864 1.4574271 0.3333333 0.3333333 
+> predict(fit, type='terms')
+           x
+1 -0.7376425
+2         NA
+3  0.7376425
+4  0.7376425
+5  0.7376425
+6 -0.7376425
+7 -0.7376425
+> predict(fit, type='lp', se.fit=T)
+$fit
+         1          2          3          4          5          6          7 
+-0.7376425         NA  0.7376425  0.7376425  0.7376425 -0.7376425 -0.7376425 
+
+$se.fit
+        1         2         3         4         5         6         7 
+0.6278672        NA 0.6278672 0.6278672 0.6278672 0.6278672 0.6278672 
+
+> predict(fit, type='risk', se.fit=T)
+$fit
+        1         2         3         4         5         6         7 
+0.4782401        NA 2.0910001 2.0910001 2.0910001 0.4782401 0.4782401 
+
+$se.fit
+        1         2         3         4         5         6         7 
+0.4342009        NA 0.9079142 0.9079142 0.9079142 0.4342009 0.4342009 
+
+> predict(fit, type='expected', se.fit=T)
+$fit
+        1         2         3         4         5         6         7 
+1.3333333        NA 0.2712864 0.2712864 1.4574271 0.3333333 0.3333333 
+
+$se.fit
+[1] 1.0540926        NA 0.2785989 0.2785989 1.1069433 0.3333333 0.3333333
+
+> predict(fit, type='terms', se.fit=T)
+$fit
+           x
+1 -0.7376425
+2         NA
+3  0.7376425
+4  0.7376425
+5  0.7376425
+6 -0.7376425
+7 -0.7376425
+
+$se.fit
+          x
+1 0.6278672
+2        NA
+3 0.6278672
+4 0.6278672
+5 0.6278672
+6 0.6278672
+7 0.6278672
+
+> 
+> summary(survfit(fit))
+Call: survfit(formula = fit)
+
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+    1      6       1   0.8783   0.122      0.66827            1
+    6      4       2   0.4981   0.218      0.21125            1
+    9      1       1   0.0615   0.150      0.00051            1
+> summary(survfit(fit, list(x=2)))
+Call: survfit(formula = fit, newdata = list(x = 2))
+
+ time n.risk n.event survival  std.err lower 95% CI upper 95% CI
+    1      6       1 3.05e-01 6.50e-01     4.72e-03            1
+    6      4       2 1.71e-03 1.98e-02     2.33e-13            1
+    9      1       1 8.52e-12 5.29e-10     1.22e-64            1
+> 
+> proc.time()
+   user  system elapsed 
+  0.240   0.028   0.265 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/frank.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/frank.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/frank.R	(revision 2476)
@@ -0,0 +1,26 @@
+library(survival)
+#
+# Check out intercept/interaction for Frank H
+#
+age2 <- lung$age - 50
+fit1 <- coxph(Surv(time, status) ~ age * strata(sex), lung)
+fit2 <- coxph(Surv(time, status) ~ age2*strata(sex), lung)
+
+tdata <- data.frame(age=50:60, age2=0:10, sex=c(1,2,1,2,1,2,1,2,1,2,1))
+
+surv1 <- survfit(fit1, tdata)
+surv2 <- survfit(fit2, tdata)
+# The call won't match, but the rest should
+icall <- match("call", names(surv1))
+all.equal(unclass(surv1)[-icall], unclass(surv2)[-icall])
+
+
+# It should match what I get with a single strata fit
+
+fit3 <- coxph(Surv(time, status) ~ age, data=lung,
+              init=fit1$coef[1], subset=(sex==1), iter=0)
+surv1b <- survfit(fit3, newdata=list(age=c(50,52, 54)))
+all.equal(c(surv1b$surv), surv1[c(1,3,5)]$surv)
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.donnell
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.donnell	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.donnell	(revision 2476)
@@ -0,0 +1,210 @@
+0.558521561 1.000000000 0.000000000
+1.059548255 1.000000000 0.000000000
+1.659137577 1.000000000 0.000000000
+0.561259411 1.000000000 0.000000000
+1.108829569 1.000000000 0.000000000
+1.530458590 1.000000000 0.000000000
+0.550308008 1.000000000 0.000000000
+1.065023956 1.000000000 0.000000000
+1.546885695 1.000000000 0.000000000
+0.668035592 1.000000000 0.000000000
+1.048596851 1.000000000 0.000000000
+1.549623546 1.000000000 0.000000000
+0.594113621 1.000000000 0.000000000
+1.010266940 1.000000000 0.000000000
+1.577002053 1.000000000 0.000000000
+0.569472964 1.000000000 0.000000000
+1.045859001 1.000000000 0.000000000
+1.555099247 1.000000000 0.000000000
+0.605065024 1.000000000 0.000000000
+1.054072553 1.000000000 0.000000000
+1.566050650 1.000000000 0.000000000
+0.544832307 1.000000000 0.000000000
+1.048596851 1.000000000 0.000000000
+1.544147844 1.000000000 0.000000000
+0.550308008 1.000000000 0.000000000
+1.065023956 1.000000000 0.000000000
+1.568788501 1.000000000 0.000000000
+0.528405202 1.000000000 0.000000000
+1.070499658 1.000000000 0.000000000
+1.546885695 1.000000000 0.000000000
+0.813141684 1.000000000 0.000000000
+1.226557153 1.000000000 0.000000000
+1.744010951 1.000000000 0.000000000
+0.520191650 1.000000000 0.000000000
+1.075975359 1.000000000 0.000000000
+1.557837098 1.000000000 0.000000000
+0.577686516 1.000000000 0.000000000
+1.067761807 1.000000000 0.000000000
+1.590691307 1.000000000 0.000000000
+0.580424367 1.000000000 0.000000000
+1.043121150 1.000000000 0.000000000
+1.560574949 1.000000000 0.000000000
+0.539356605 1.000000000 0.000000000
+1.097878166 1.000000000 0.000000000
+1.557837098 1.000000000 0.000000000
+0.613278576 1.000000000 0.000000000
+1.065023956 1.000000000 0.000000000
+1.629021218 1.000000000 0.000000000
+0.542094456 1.000000000 0.000000000
+1.021218344 1.000000000 0.000000000
+1.535934292 1.000000000 0.000000000
+0.542094456 1.000000000 0.000000000
+1.084188912 1.000000000 0.000000000
+1.541409993 1.000000000 0.000000000
+0.479123888 1.000000000 0.000000000
+1.166324435 1.000000000 0.000000000
+1.609856263 1.000000000 0.000000000
+0.574948665 1.000000000 0.000000000
+1.032169747 1.000000000 0.000000000
+1.511293634 1.000000000 0.000000000
+0.580424367 1.000000000 0.000000000
+1.015742642 1.000000000 0.000000000
+1.593429158 1.000000000 0.000000000
+0.580424367 1.000000000 0.000000000
+0.580424367 1.059548255 3.000000000
+0.555783710 1.000000000 0.000000000
+1.073237509 1.000000000 0.000000000
+1.552361396 1.000000000 0.000000000
+0.558521561 1.000000000 0.000000000
+1.048596851 1.000000000 0.000000000
+1.549623546 1.000000000 0.000000000
+0.569472964 1.000000000 0.000000000
+1.048596851 1.000000000 0.000000000
+1.546885695 1.000000000 0.000000000
+0.591375770 1.000000000 0.000000000
+1.147159480 1.000000000 0.000000000
+1.549623546 1.000000000 0.000000000
+0.673511294 1.000000000 0.000000000
+1.111567420 1.000000000 0.000000000
+1.609856263 1.000000000 0.000000000
+0.574948665 1.000000000 0.000000000
+1.051334702 1.000000000 0.000000000
+1.566050650 1.000000000 0.000000000
+0.558521561 1.000000000 0.000000000
+1.034907598 1.000000000 0.000000000
+1.555099247 1.000000000 0.000000000
+0.539356605 1.000000000 0.000000000
+1.040383299 1.000000000 0.000000000
+1.615331964 1.000000000 0.000000000
+0.572210815 1.000000000 0.000000000
+1.056810404 1.000000000 0.000000000
+1.552361396 1.000000000 0.000000000
+0.550308008 1.000000000 0.000000000
+1.125256674 1.000000000 0.000000000
+ 1.596167009 1.000000000 0.000000000
+ 0.514715948 1.000000000 0.000000000
+ 1.010266940 1.000000000 0.000000000
+ 1.585215606 1.000000000 0.000000000
+ 0.555783710 1.000000000 0.000000000
+ 1.054072553 1.000000000 0.000000000
+ 1.566050650 1.000000000 0.000000000
+ 0.632443532 1.000000000 0.000000000
+ 1.073237509 1.000000000 0.000000000
+ 1.585215606 1.000000000 0.000000000
+ 0.569472964 1.000000000 0.000000000
+ 1.067761807 1.000000000 0.000000000
+ 1.612594114 1.000000000 0.000000000
+ 0.566735113 1.000000000 0.000000000
+ 1.125256674 1.000000000 0.000000000
+ 1.607118412 1.000000000 0.000000000
+ 0.728268309 1.000000000 0.000000000
+ 1.095140315 1.000000000 0.000000000
+ 1.634496920 1.000000000 0.000000000
+ 0.550308008 1.000000000 0.000000000
+ 1.149897331 1.000000000 0.000000000
+ 1.508555784 1.000000000 0.000000000
+ 0.553045859 1.000000000 0.000000000
+ 1.029431896 1.000000000 0.000000000
+ 1.546885695 1.000000000 0.000000000
+ 0.547570157 1.000000000 0.000000000
+ 1.070499658 1.000000000 0.000000000
+ 1.549623546 1.000000000 0.000000000
+ 0.607802875 1.000000000 0.000000000
+ 1.007529090 1.000000000 0.000000000
+ 1.508555784 1.000000000 0.000000000
+ 0.528405202 1.000000000 0.000000000
+ 1.056810404 1.000000000 0.000000000
+ 1.549623546 1.000000000 0.000000000
+ 0.522929500 1.000000000 0.000000000
+ 0.544832307 1.000000000 0.000000000
+ 1.084188912 1.000000000 0.000000000
+ 1.519507187 1.000000000 0.000000000
+ 0.563997262 1.000000000 0.000000000
+ 0.999315537 1.000000000 0.000000000
+ 1.503080082 1.000000000 0.000000000
+ 0.536618754 1.000000000 0.000000000
+ 1.103353867 1.000000000 0.000000000
+ 1.601642710 1.000000000 0.000000000
+ 0.520191650 1.000000000 0.000000000
+ 1.056810404 1.000000000 0.000000000
+ 1.541409993 1.000000000 0.000000000
+ 0.522929500 1.000000000 0.000000000
+ 1.095140315 1.000000000 0.000000000
+ 1.697467488 1.000000000 0.000000000
+ 0.659822040 1.000000000 0.000000000
+ 1.122518823 1.000000000 0.000000000
+ 1.648186174 1.000000000 0.000000000
+ 0.536618754 1.000000000 0.000000000
+ 1.078713210 1.000000000 0.000000000
+ 1.557837098 1.000000000 0.000000000
+ 0.517453799 1.000000000 0.000000000
+ 1.125256674 1.000000000 0.000000000
+ 1.571526352 1.000000000 0.000000000
+ 0.520191650 1.000000000 0.000000000
+ 1.026694045 1.000000000 0.000000000
+ 1.609856263 1.000000000 0.000000000
+ 0.561259411 1.000000000 0.000000000
+ 1.059548255 1.000000000 0.000000000
+ 1.538672142 1.000000000 0.000000000
+ 0.536618754 1.000000000 0.000000000
+ 1.021218344 1.000000000 0.000000000
+ 1.560574949 1.000000000 0.000000000
+ 0.613278576 1.000000000 0.000000000
+ 1.092402464 1.000000000 0.000000000
+ 1.596167009 1.000000000 0.000000000
+ 0.525667351 1.000000000 0.000000000
+ 1.023956194 1.000000000 0.000000000
+ 1.738535250 1.000000000 0.000000000
+ 0.542094456 1.000000000 0.000000000
+ 1.021218344 1.000000000 0.000000000
+ 1.524982888 1.000000000 0.000000000
+ 0.577686516 1.000000000 0.000000000
+ 1.097878166 1.000000000 0.000000000
+ 1.557837098 1.000000000 0.000000000
+ 0.572210815 1.000000000 0.000000000
+ 1.013004791 1.000000000 0.000000000
+ 1.516769336 1.000000000 0.000000000
+ 0.544832307 1.000000000 0.000000000
+ 0.999315537 1.000000000 0.000000000
+ 1.555099247 1.000000000 0.000000000
+ 0.536618754 1.000000000 0.000000000
+ 1.002053388 1.000000000 0.000000000
+ 1.494866530 1.000000000 0.000000000
+ 0.555783710 1.000000000 0.000000000
+ 1.059548255 1.000000000 0.000000000
+ 1.593429158 1.000000000 0.000000000
+ 0.522929500 1.000000000 0.000000000
+ 1.062286105 1.000000000 0.000000000
+ 1.571526352 1.000000000 0.000000000
+ 0.580424367 1.000000000 0.000000000
+ 1.037645448 1.000000000 0.000000000
+ 1.670088980 1.000000000 0.000000000
+ 0.536618754 1.000000000 0.000000000
+ 1.073237509 1.000000000 0.000000000
+ 1.494866530 1.000000000 0.000000000
+ 0.539356605 1.000000000 0.000000000
+ 1.054072553 1.000000000 0.000000000
+ 1.533196441 1.000000000 0.000000000
+ 0.670773443 1.000000000 0.000000000
+ 1.004791239 1.000000000 0.000000000
+ 0.580424367 1.059548255 3.000000000
+ 0.985626283 1.503080082 3.000000000
+ 0.002737851 0.539356605 3.000000000
+ 1.062286105 1.541409993 3.000000000
+ 0.002737851 0.501026694 3.000000000
+ 0.002737851 0.574948665 3.000000000
+ 0.002737851 0.583162218 3.000000000
+ 1.037645448 1.516769336 3.000000000
+ 0.574948665 1.114305270 3.000000000
+ 0.002737851 0.528405202 3.000000000
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/mrtest.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/mrtest.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/mrtest.Rout.save	(revision 2476)
@@ -0,0 +1,48 @@
+
+R version 2.7.1 (2008-06-23)
+Copyright (C) 2008 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> {if (is.R()) mdy.date <- function(m, d, y) {
++     y <- ifelse(y<100, y+1900, y)
++     as.Date(paste(m,d,y, sep='/'), "%m/%d/%Y")
++     }
++ else mdy.date <- function(m,d,y) {
++     y <- ifelse(y<100, y+1900, y)
++     timeDate(paste(y, m, d, sep='/'), in.format="%Y/%m/%d")
++     }
++  }
+> 
+> #
+> # A test of the match.ratetable function, specifically the
+> #  change to allow partial matching of strings 
+> #  Note that 10,000 days old is 27.4 years
+> #
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> temp1 <- data.frame(year=mdy.date(2,2,1960:1964),
++                     age =   10000 + 1:5,
++                     sex = c('M', 'fema', 'f', 'ma', 'F'))
+> 
+> temp2 <- ratetable(year=temp1$year, age=temp1$age, sex=temp1$sex)
+> temp3 <- match.ratetable(temp2, survexp.us)
+> aeq(temp3$R[,2], c(1,2,2,1,2))
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tiedtime.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tiedtime.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tiedtime.R	(revision 2476)
@@ -0,0 +1,23 @@
+library(survival)
+
+#
+# The survival code was failing for certain data sets when called as
+#    survfit(Surv(time2-time1, status) ~ ......
+# The issue was how tied floating point numbers are handled, and the
+#    fact that unique(x), factor(x) and tapply(x) are not guarranteed to
+#    all be the same.  
+# This test fails in survival 2.36-5, fixed in 2.36-6.  Data sets that
+#    can cause it are few and far between.
+#
+
+load('ties.rda')
+x <- time2 -time1
+
+#  Here is the heart of the old problem
+#       length(unique(x))== length(table(x))
+#  And the prior fix which worked ALMOST always
+#       x <- round(x, 15)
+#       length(unique(round(x,15)))== length(table(round(x,15)))
+
+fit1 <- survfit(Surv(x) ~1)
+length(fit1$time) == length(fit1$surv)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book5.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book5.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book5.Rout.save	(revision 2476)
@@ -0,0 +1,208 @@
+
+R Under development (unstable) (2016-01-29 r70039) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> 
+> # Tests of the weighted Cox model
+> #  This is section 1.3 of my appendix -- not yet found in the book
+> #  though, it awaits the next edition
+> #
+> # Similar data set to test1, but add weights,
+> #                                    a double-death/censor tied time
+> #                                    a censored last subject
+> # The latter two are cases covered only feebly elsewhere.
+> # 
+> # The data set testw2 has the same data, but done via replication
+> #
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> 
+> testw1 <- data.frame(time=  c(1,1,2,2,2,2,3,4,5),
++ 		    status= c(1,0,1,1,1,0,0,1,0),
++ 		    x=      c(2,0,1,1,0,1,0,1,0),
++ 		    wt =    c(1,2,3,4,3,2,1,2,1))
+> xx <- testw1$wt
+> testw2 <- data.frame(time=   rep(c(1,1,2,2,2,2,3,4,5), xx),
++ 		     status= rep(c(1,0,1,1,1,0,0,1,0), xx),
++ 		     x=      rep(c(2,0,1,1,0,1,0,1,0), xx),
++ 		     id=     rep(1:9, xx))
+> indx <- match(1:9, testw2$id)
+> 
+> # Breslow estimate
+> byhand <- function(beta, newx=0) {
++     r <- exp(beta)
++     loglik <- 11*beta - (log(r^2 + 11*r +7) + 10*log(11*r +5) +2*log(2*r+1))
++     hazard <- c(1/(r^2 + 11*r +7), 10/(11*r +5), 2/(2*r+1))
++     xbar <- c((2*r^2 + 11*r)*hazard[1], 11*r/(11*r +5), r*hazard[3])
++     U <- 11- (xbar[1] + 10*xbar[2] + 2*xbar[3])
++     imat <- (4*r^2 + 11*r)*hazard[1] - xbar[1]^2 +
++             10*(xbar[2] - xbar[2]^2) + 2*(xbar[3] - xbar[3]^2)
++ 
++     temp <- cumsum(hazard)
++     risk <- c(r^2, 1,r,r,1,r,1,r,1)
++     expected <- risk* temp[c(1,1,2,2,2,2,2,3,3)]
++     
++     # The matrix of weights, one row per obs, one col per death
++     #   deaths at 1,2,2,2, and 4
++     riskmat <- matrix(c(1,1,1,1,1,1,1,1,1,
++                         0,0,1,1,1,1,1,1,1,
++                         0,0,1,1,1,1,1,1,1,
++                         0,0,1,1,1,1,1,1,1,
++                         0,0,0,0,0,0,0,1,1), ncol=5)
++     wtmat <- diag(c(r^2, 2, 3*r, 4*r, 3, 2*r, 1, 2*r, 1)) %*% riskmat
++ 
++     x      <- c(2,0,1,1,0,1,0,1,0)
++     status <- c(1,0,1,1,1,0,0,1,0)
++     wt     <- c(1,2,3,4,3,2,1,2,1)
++    # Table of sums for score and Schoenfeld resids
++     hazmat <- riskmat %*% diag(c(1,3,4,3,2)/colSums(wtmat)) 
++     dM <- -risk*hazmat  #Expected part
++     dM[1,1] <- dM[1,1] +1  # deaths at time 1
++     for (i in 2:4) dM[i+1, i] <- dM[i+1,i] +1
++     dM[8,5] <- dM[8,5] +1
++     mart <- rowSums(dM)
++     resid <-dM * outer(x, xbar[c(1,2,2,2,3)] ,'-')
++ 
++     # Increments to the variance of the hazard
++     var.g <- cumsum(hazard^2/ c(1,10,2))
++     var.d <- cumsum((xbar-newx)*hazard)
++ 
++     list(loglik=loglik, U=U, imat=imat, hazard=hazard, xbar=xbar,
++          mart=c(1,0,1,1,1,0,0,1,0)-expected, expected=expected,
++          score=rowSums(resid), schoen=c(2,1,1,0,1) - xbar[c(1,2,2,2,3)],
++          varhaz=(var.g + var.d^2/imat)* exp(2*beta*newx))
++     }
+> 
+> aeq(byhand(0)$expected, c(1/19, 1/19, rep(103/152, 5), rep(613/456,2))) #verify 
+[1] TRUE
+> 
+> fit0 <- coxph(Surv(time, status) ~x, testw1, weights=wt,
++ 		    method='breslow', iter=0)
+> fit0b <- coxph(Surv(time, status) ~x, testw2, method='breslow', iter=0)
+> fit  <- coxph(Surv(time, status) ~x, testw1, weights=wt, method='breslow')
+> fitb <- coxph(Surv(time, status) ~x, testw2, method='breslow')
+> 
+> aeq(resid(fit0, type='mart'), (resid(fit0b, type='mart'))[indx])
+[1] TRUE
+> aeq(resid(fit0, type='scor'), (resid(fit0b, type='scor'))[indx])
+[1] TRUE
+> aeq(unique(resid(fit0, type='scho')), unique(resid(fit0b, type='scho')))
+[1] TRUE
+> 
+> truth0 <- byhand(0,pi)
+> aeq(fit0$loglik[1], truth0$loglik)
+[1] TRUE
+> aeq(1/truth0$imat, fit0$var)
+[1] TRUE
+> aeq(truth0$mart, fit0$resid)
+[1] TRUE
+> aeq(truth0$scho, resid(fit0, 'schoen'))
+[1] TRUE
+> aeq(truth0$score, resid(fit0, 'score')) 
+[1] TRUE
+> sfit <- survfit(fit0, list(x=pi), censor=FALSE)
+> aeq(sfit$std.err^2, truth0$var)
+[1] TRUE
+> aeq(-log(sfit$surv), cumsum(truth0$haz))
+[1] TRUE
+> 
+> truth <- byhand(0.85955744, .3)
+> aeq(truth$loglik, fit$loglik[2])
+[1] TRUE
+> aeq(1/truth$imat, fit$var)
+[1] TRUE
+> aeq(truth$mart, fit$resid)
+[1] TRUE
+> aeq(truth$scho, resid(fit, 'schoen'))
+[1] TRUE
+> aeq(truth$score, resid(fit, 'score'))
+[1] TRUE
+> 
+> sfit <- survfit(fit, list(x=.3), censor=FALSE)
+> aeq(sfit$std.err^2, truth$var) 
+[1] TRUE
+> aeq(-log(sfit$surv), (cumsum(truth$haz)* exp(fit$coef*.3)))
+[1] TRUE
+> 
+> 
+> fit0
+Call:
+coxph(formula = Surv(time, status) ~ x, data = testw1, weights = wt, 
+    method = "breslow", iter = 0)
+
+   coef exp(coef) se(coef) z p
+x 0.000     1.000    0.586 0 1
+
+Likelihood ratio test=0  on 1 df, p=1
+n= 9, number of events= 5 
+> summary(fit)
+Call:
+coxph(formula = Surv(time, status) ~ x, data = testw1, weights = wt, 
+    method = "breslow")
+
+  n= 9, number of events= 5 
+
+    coef exp(coef) se(coef)     z Pr(>|z|)
+x 0.8596    2.3621   0.7131 1.205    0.228
+
+  exp(coef) exp(-coef) lower .95 upper .95
+x     2.362     0.4233    0.5839     9.556
+
+Concordance= 0.638  (se = 0.159 )
+Rsquare= 0.171   (max possible= 0.999 )
+Likelihood ratio test= 1.69  on 1 df,   p=0.1932
+Wald test            = 1.45  on 1 df,   p=0.2281
+Score (logrank) test = 1.52  on 1 df,   p=0.217
+
+> resid(fit0, type='score')
+          1           2           3           4           5           6 
+ 1.24653740  0.03601108  0.10056700  0.10056700 -0.22180142 -0.21193300 
+          7           8           9 
+ 0.46569858 -0.10082189  0.91014302 
+> resid(fit0, type='scho')
+         1          2          2          2          4 
+ 1.3157895  0.3125000  0.3125000 -0.6875000  0.3333333 
+> 
+> resid(fit, type='score')
+          1           2           3           4           5           6 
+ 0.88681615  0.02497653  0.03608964  0.03608964 -0.54297652 -0.12528780 
+          7           8           9 
+ 0.29564605 -0.09476911  0.58400064 
+> resid(fit, type='scho')
+         1          2          2          2          4 
+ 1.0368337  0.1613774  0.1613774 -0.8386226  0.1746960 
+> aeq(resid(fit, type='mart'), (resid(fitb, type='mart'))[indx])
+[1] TRUE
+> aeq(resid(fit, type='scor'), (resid(fitb, type='scor'))[indx])
+[1] TRUE
+> aeq(unique(resid(fit, type='scho')), unique(resid(fitb, type='scho')))
+[1] TRUE
+> rr1 <- resid(fit, type='mart')
+> rr2 <- resid(fit, type='mart', weighted=T)
+> aeq(rr2/rr1, testw1$wt)
+[1] TRUE
+> 
+> rr1 <- resid(fit, type='score')
+> rr2 <- resid(fit, type='score', weighted=T)
+> aeq(rr2/rr1, testw1$wt)
+[1] TRUE
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.228   0.012   0.236 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/quantile.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/quantile.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/quantile.Rout.save	(revision 2476)
@@ -0,0 +1,106 @@
+
+R Under development (unstable) (2016-03-23 r70368) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> #
+> # Formal test of the quantile routine for survfit
+> library(survival)
+> aeq <- function(x, y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> # There are 8 cases:  strata Y/N,  ncol(surv) >1,  conf.int = T/F
+> #  Subcase: the quantile exactly agrees with a horizontal segment of 
+> #    the curve or not.
+> # First do the 4 cases where fit$surv is a vector
+> #
+> test1 <- data.frame(time=  c(9, 3,1,1,6,6,8, 10),
++                     status=c(1,NA,1,0,1,1,0,  0),
++                     x=     c(0, 2,1,1,1,0,0,  0))
+> 
+> # True survival = (6/7) * (3/5) * (1/2) for overall
+> #   The q's are chosen to include a point < first jump, mid, after last jump,
+> #   and exact intersections with the "flats" of the curve.
+> #   
+> qq <- c(13/14, 6/7, 2/3, .5, 9/35, .1)
+>  
+> # Nothing on the right hand side, simple survival (no strata)
+> fit1 <- survfit(Surv(time, status) ~ 1, test1, conf.type='none')
+> aeq(quantile(fit1, 1-qq), c(1, 3.5, 6, 9, 9.5, NA))  #without conf.int
+[1] TRUE
+> 
+> fit2 <-  survfit(Surv(time, status) ~ 1, test1)  #with conf.int
+> aeq(quantile(fit2, 1-qq), 
++     list(quantile = c(1, 3.5, 6, 9, 9.5, NA),
++          lower = c(1,1,1,6,6,9),
++          upper = rep(as.numeric(NA), 6)), check.attributes=FALSE)
+[1] TRUE
+> aeq(quantile(fit2, 1-qq, FALSE), c(1, 3.5, 6, 9, 9.5, NA)) 
+[1] TRUE
+> 
+> 
+> # Now a variable on the right (strata in the result)
+> #  curve 0: (t=6, S=3/4),  (t=9, S=3/8)
+> #  curve 1: (t=1, S=2/3),  (t=6, S= 0)
+> fit1 <- survfit(Surv(time, status) ~ x, test1, conf.type='none') 
+> aeq(quantile(fit1, 1-qq),
++     matrix(c(6,6,9,9,NA,NA,  1,1,3.5, 6,6,6), nrow=2, byrow=T))
+[1] TRUE
+> 
+> fit2 <- survfit(Surv(time, status) ~ x, test1)
+> aeq(quantile(fit2, 1-qq, FALSE),
++     matrix(c(6,6,9,9,NA,NA,  1,1,3.5, 6,6,6), nrow=2, byrow=T))
+[1] TRUE
+> 
+> temp <- quantile(fit2, 1-qq)
+> aeq(temp$quantile, matrix(c(6,6,9,9,NA,NA,  1,1,3.5, 6,6,6), nrow=2, byrow=T))
+[1] TRUE
+> aeq(temp$lower,    matrix(c(6,6,6,6,9,9,    1,1,1,1, NA,NA), nrow=2, byrow=T))
+[1] TRUE
+> aeq(temp$upper,    rep(as.numeric(NA), 12))
+[1] TRUE
+> 
+> # Second major case set -- a survfit object where fit$surv is a matrix
+> #  This arises from coxph models
+> #  There is only 1 subject with ph.ecog=3 which is a nice edge case
+> cfit <- coxph(Surv(time, status) ~ age + strata(ph.ecog), lung)
+> sfit <- survfit(cfit, newdata=data.frame(age=c(50, 70)))
+> qtot <- quantile(sfit, qq)
+> for (i in 1:4) {
++     for (j in 1:2) {
++         temp <- quantile(sfit[i,j], qq)
++         print(c(aeq(qtot$quantile[i,j,], temp$quantile),
++                 aeq(qtot$upper[i,j,], temp$upper),
++                 aeq(qtot$lower[i,j,], temp$lower)))
++     }
++ }
+[1] TRUE TRUE TRUE
+[1] TRUE TRUE TRUE
+[1] TRUE TRUE TRUE
+[1] TRUE TRUE TRUE
+[1] TRUE TRUE TRUE
+[1] TRUE TRUE TRUE
+[1] TRUE TRUE TRUE
+[1] TRUE TRUE TRUE
+> temp <- quantile(sfit, qq, conf.int=FALSE)
+> all.equal(qtot$quantile, temp)
+[1] TRUE
+> 
+> 
+> 
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.324   0.032   0.355 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_scale.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_scale.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_scale.R	(revision 2476)
@@ -0,0 +1,44 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Verify that scale can be fixed at a value
+#    coefs will differ slightly due to different iteration paths
+tol <- .001
+
+# Intercept only models
+fit1 <- survreg(Surv(time,status) ~ 1, lung)
+fit2 <- survreg(Surv(time,status) ~ 1, lung, scale=fit1$scale)
+all.equal(fit1$coef, fit2$coef, tolerance= tol)
+all.equal(fit1$loglik, fit2$loglik, tolerance= tol)
+
+# The two robust variance matrices are not the same, since removing
+#   an obs has a different effect on the two models.  This just
+#   checks for failure, not for correctness
+fit3 <- survreg(Surv(time,status) ~ 1, lung, robust=TRUE)
+fit4 <- survreg(Surv(time,status) ~ 1, lung, scale=fit1$scale, robust=TRUE)
+
+
+# multiple covariates
+fit1 <- survreg(Surv(time,status) ~ age + ph.karno, lung)
+fit2 <- survreg(Surv(time,status) ~ age + ph.karno, lung,
+		scale=fit1$scale)
+all.equal(fit1$coef, fit2$coef, tolerance=tol)
+all.equal(fit1$loglik[2], fit2$loglik[2], tolerance=tol)
+
+fit3 <- survreg(Surv(time,status) ~ age + ph.karno, lung, robust=TRUE)
+fit4 <- survreg(Surv(time,status) ~ age + ph.karno, lung, 
+                scale=fit1$scale, robust=TRUE)
+
+# penalized models
+fit1 <- survreg(Surv(time, status) ~ pspline(age), lung)
+fit2 <- survreg(Surv(time, status) ~ pspline(age), lung, scale=fit1$scale)
+all.equal(fit1$coef, fit2$coef, tolerance=tol)
+all.equal(fit1$loglik[2], fit2$loglik[2], tolerance=tol)
+
+fit3 <- survreg(Surv(time,status) ~ pspline(age) + ph.karno, lung, robust=TRUE)
+fit4 <- survreg(Surv(time,status) ~ pspline(age) + ph.karno, lung, 
+                scale=fit1$scale, robust=TRUE)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testnull.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testnull.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testnull.R	(revision 2476)
@@ -0,0 +1,19 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# A test of  NULL models
+#
+fit1 <- coxph(Surv(stop, event) ~ rx + strata(number), bladder, iter=0)
+fit2 <- coxph(Surv(stop, event) ~ strata(number), bladder)
+
+all.equal(fit1$loglik[2], fit2$loglik)
+all.equal(fit1$resid, fit2$resid)
+
+
+fit1 <- coxph(Surv(start, stop, event) ~ rx + strata(number), bladder2, iter=0)
+fit2 <- coxph(Surv(start, stop, event) ~ strata(number), bladder2)
+
+all.equal(fit1$loglik[2], fit2$loglik)
+all.equal(fit1$resid, fit2$resid)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/counting.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/counting.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/counting.Rout.save	(revision 2476)
@@ -0,0 +1,76 @@
+
+R version 2.10.0 (2009-10-26)
+Copyright (C) 2009 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> # Create a "counting process" version of the simplest test data set
+> #
+> test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0))
+> 
+> test1b<- list(start= c(0, 3,  0,  0, 5,  0, 6,14,  0,  0, 10,20,30, 0),
++ 	      stop = c(3,10, 10,  5,20,  6,14,20, 30,  10,20,30,40, 10),
++ 	      status=c(0, 1,  0,  0, 1,  0, 0, 1,  0,   0, 0, 0, 1,  0),
++ 	      x=     c(1, 1,  1,  1, 1,  0, 0, 0,  0,   0, 0, 0, 0,  NA),
++ 	      id =   c(3, 3,  4,  5, 5,  6, 6, 6,  7,   1, 1, 1, 1,   2))
+> 
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> #
+> #  Check out the various residuals under an Efron approximation
+> #
+> fit0 <- coxph(Surv(time, status)~ x, test1, iter=0)
+> fit  <- coxph(Surv(time, status) ~x, test1)
+> fit0b <- coxph(Surv(start, stop, status) ~ x, test1b, iter=0)
+> fitb  <- coxph(Surv(start, stop, status) ~x, test1b)
+> fitc  <- coxph(Surv(time, status) ~ offset(fit$coef*x), test1)
+> fitd  <- coxph(Surv(start, stop, status) ~ offset(fit$coef*x), test1b)
+> 
+> aeq(fit0b$coef, fit0$coef)
+[1] TRUE
+> 
+> aeq(resid(fit0), resid(fit0b, collapse=test1b$id))
+[1] TRUE
+> aeq(resid(fit), resid(fitb, collapse=test1b$id))
+[1] TRUE
+> aeq(resid(fitc), resid(fitd, collapse=test1b$id))
+[1] TRUE
+> aeq(resid(fitc), resid(fit))
+[1] TRUE
+> 
+> aeq(resid(fit0, type='score'), resid(fit0b, type='score', collapse=test1b$id))
+[1] TRUE
+> aeq(resid(fit, type='score'), resid(fitb, type='score', collapse=test1b$id))
+[1] TRUE
+> 
+> aeq(resid(fit0, type='scho'), resid(fit0b, type='scho', collapse=test1b$id))
+[1] TRUE
+> aeq(resid(fit, type='scho'), resid(fitb, type='scho', collapse=test1b$id))
+[1] TRUE
+> 
+> # The two survivals will have different censoring times
+> #  nrisk, nevent, surv, and std should be the same
+> temp1 <- survfit(fit, list(x=1), censor=FALSE)
+> temp2 <- survfit(fitb, list(x=1), censor=FALSE)
+> all.equal(unclass(temp1)[c(3,4,6,8)], unclass(temp2)[c(3,4,6,8)])
+[1] TRUE
+> 
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book4.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book4.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book4.R	(revision 2476)
@@ -0,0 +1,122 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Tests from the appendix of Therneau and Grambsch
+#  d. Data set 2 and Efron estimate
+#
+test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
+                    stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
+                    event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
+                    x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+
+byhand <- function(beta, newx=0) {
+    r <- exp(beta)
+    loglik <- 4*beta - (log(r+1) + log(r+2) + 2*log(3*r+2) + 2*log(3*r+1) +
+        log(2*r +2))
+    u <- 1/(r+1) +  1/(3*r+1) + 2*(1/(3*r+2) + 1/(2*r+2)) -
+                 ( r/(r+2) +3*r/(3*r+2) + 3*r/(3*r+1))
+    imat <- r*(1/(r+1)^2 + 2/(r+2)^2 + 6/(3*r+2)^2 +
+            6/(3*r+1)^2 + 6/(3*r+2)^2 + 4/(2*r +2)^2)
+
+    hazard <-c( 1/(r+1), 1/(r+2), 1/(3*r+2), 1/(3*r+1), 1/(3*r+1),
+               1/(3*r+2), 1/(2*r +2) )
+
+
+    # The matrix of weights, one row per obs, one col per time
+    #   deaths at 2,3,6,7,8,9
+    wtmat <- matrix(c(1,0,0,0,1, 0, 0,0,0,0,
+                      0,1,0,1,1, 0, 0,0,0,0,
+                      0,0,1,1,1, 0, 1,1,0,0,
+                      0,0,0,1,1, 0, 1,1,0,0,
+                      0,0,0,0,1, 1, 1,1,0,0,
+                      0,0,0,0,0, 1, 1,1,1,1,
+                      0,0,0,0,0,.5,.5,1,1,1), ncol=7)
+    wtmat <- diag(c(r,1,1,r,1,r,r,r,1,1)) %*% wtmat
+
+    x      <- c(1,0,0,1,0,1,1,1,0,0)
+    status <- c(1,1,1,1,1,1,1,0,0,0)
+    xbar <- colSums(wtmat*x)/ colSums(wtmat)
+    n <- length(x)
+
+   # Table of sums for score and Schoenfeld resids
+    hazmat <- wtmat %*% diag(hazard) #each subject's hazard over time
+    dM <- -hazmat  #Expected part
+    for (i in 1:5) dM[i,i] <- dM[i,i] +1  #observed
+    dM[6:7,6:7] <- dM[6:7,6:7] +.5  # observed
+    mart <- rowSums(dM)
+
+    # Table of sums for score and Schoenfeld resids
+    #  Looks like the last table of appendix E.2.1 of the book
+    resid <- dM * outer(x, xbar, '-')
+    score <- rowSums(resid)
+    scho <- colSums(resid)
+
+    # We need to add the ties back up (they are symmetric)
+    scho[6:7] <- rep(mean(scho[6:7]), 2)
+
+    list(loglik=loglik, u=u, imat=imat, xbar=xbar, haz=hazard,
+	     mart=mart,  score=score, rmat=resid,
+		scho=scho)
+    }
+
+
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+
+fit0 <-coxph(Surv(start, stop, event) ~x, test2, iter=0)
+truth0 <- byhand(0,0)
+aeq(truth0$loglik, fit0$loglik[1])
+aeq(1/truth0$imat, fit0$var)
+aeq(truth0$mart, fit0$resid)
+aeq(truth0$scho, resid(fit0, 'schoen'))
+aeq(truth0$score, resid(fit0, 'score')) 
+
+
+fit <- coxph(Surv(start, stop, event) ~x, test2, eps=1e-8)
+truth <- byhand(fit$coef, 0)
+aeq(truth$loglik, fit$loglik[2])
+aeq(1/truth$imat, fit$var)
+aeq(truth$mart, fit$resid)
+aeq(truth$scho, resid(fit, 'schoen'))
+aeq(truth$score, resid(fit, 'score'))
+
+# Reprise the test, with strata
+#  offseting the times ensures that we will get the wrong risk sets
+#  if strata were not kept separate
+test2b <- rbind(test2, test2, test2)
+test2b$group <- rep(1:3, each= nrow(test2))
+test2b$start <- test2b$start + test2b$group
+test2b$stop  <- test2b$stop  + test2b$group
+fit0 <- coxph(Surv(start, stop, event) ~ x + strata(group), test2b, iter=0)
+aeq(3*truth0$loglik, fit0$loglik[1])
+aeq(3*truth0$imat, 1/fit0$var)
+aeq(rep(truth0$mart,3), fit0$resid)
+aeq(rep(truth0$scho,3),  resid(fit0, 'schoen'))
+aeq(rep(truth0$score,3), resid(fit0, 'score')) 
+
+fit3 <- coxph(Surv(start, stop, event) ~x + strata(group), test2b, eps=1e-8)
+aeq(3*truth$loglik, fit3$loglik[2])
+aeq(3*truth$imat, 1/fit3$var)
+aeq(rep(truth$mart,3), fit3$resid)
+aeq(rep(truth$scho,3), resid(fit3, 'schoen'))
+aeq(rep(truth$score,3), resid(fit3, 'score'))
+
+# 
+# Done with the formal test, now print out lots of bits
+#
+resid(fit)
+resid(fit, 'scor')
+resid(fit, 'scho')
+
+predict(fit, type='lp')
+predict(fit, type='risk')
+predict(fit, type='expected')
+predict(fit, type='terms')
+predict(fit, type='lp', se.fit=T)
+predict(fit, type='risk', se.fit=T)
+predict(fit, type='expected', se.fit=T)
+predict(fit, type='terms', se.fit=T)
+
+summary(survfit(fit))
+summary(survfit(fit, list(x=2)))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/clogit.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/clogit.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/clogit.R	(revision 2476)
@@ -0,0 +1,28 @@
+library(survival)
+#
+# Test of the clogit function, and indirectly of the exact option
+#
+# Data set logan has the occupation of fathers, we create a 
+#  multinomial response
+#
+nresp <- length(levels(logan$occupation))
+n <- nrow(logan)
+indx <- rep(1:n, nresp)
+logan2 <- data.frame(logan[indx,],
+                     id = indx,
+                     occ2 = factor(rep(levels(logan$occupation), each=n)))
+logan2$y <- (logan2$occupation == logan2$occ2)
+
+#We expect two NA coefficients, so ignore the warning
+fit1 <- clogit(y ~ occ2 + occ2:education + occ2:race + strata(id), logan2)
+
+#since there is only one death per group, all methods are equal
+dummy <- rep(1, nrow(logan2))
+fit2 <- coxph(Surv(dummy, y) ~ occ2 + occ2:education + occ2:race + strata(id),
+                   logan2, method='breslow')
+
+all.equal(fit1$coef, fit2$coef)
+all.equal(fit1$loglik, fit2$loglik)
+all.equal(fit1$var, fit2$var)
+all.equal(fit1$resid, fit2$resid)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_resid.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_resid.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_resid.Rout.save	(revision 2476)
@@ -0,0 +1,363 @@
+
+R Under development (unstable) (2016-01-29 r70039) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> #
+> # The residual methods treat a sparse frailty as a fixed offset with
+> #   no variance
+> #
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> kfit1 <- coxph(Surv(time, status) ~ age + sex + 
++ 	           frailty(id, dist='gauss'), kidney)
+> tempf <- predict(kfit1, type='terms')[,3]
+> temp  <- kfit1$frail[match(kidney$id, sort(unique(kidney$id)))]
+> #all.equal(unclass(tempf), unclass(temp))
+> all.equal(as.vector(tempf), as.vector(temp))
+[1] TRUE
+> 
+> # Now fit a model with explicit offset
+> kfitx <- coxph(Surv(time, status) ~ age + sex + offset(tempf),kidney,
++ 	       eps=1e-7)
+> 
+> # These are not always precisely the same, due to different iteration paths
+> aeq(kfitx$coef, kfit1$coef)
+[1] TRUE
+> 
+> # This will make them identical
+> kfitx <- coxph(Surv(time, status) ~ age + sex  + offset(temp),kidney,
++ 	       iter=0, init=kfit1$coef)
+> aeq(resid(kfit1), resid(kfitx))
+[1] TRUE
+> aeq(resid(kfit1, type='score'), resid(kfitx, type='score'))
+[1] TRUE
+> aeq(resid(kfit1, type='schoe'), resid(kfitx, type='schoe'))
+[1] TRUE
+> 
+> # These are not the same, due to a different variance matrix
+> #  The frailty model's variance is about 2x the naive "assume an offset" var
+> # Expect a value of about 0.5
+> aeq(resid(kfit1, type='dfbeta'), resid(kfitx, type='dfbeta'))
+[1] "Mean relative difference: 0.5216263"
+> 
+> # Force equality
+> zed <- kfitx
+> zed$var <- kfit1$var
+> aeq(resid(kfit1, type='dfbeta'), resid(zed, type='dfbeta'))
+[1] TRUE
+> 
+> # The score residuals are equal, however.
+> 
+> temp1 <- resid(kfit1, type='score')
+> temp2 <- resid(kfitx, type='score')
+> aeq(temp1, temp2)
+[1] TRUE
+> 
+> #
+> # Now for some tests of predicted values
+> #
+> aeq(predict(kfit1, type='expected'), predict(kfitx, type='expected'))
+[1] TRUE
+> aeq(predict(kfit1, type='lp'), predict(kfitx, type='lp'))
+[1] TRUE
+> 
+> temp1 <- predict(kfit1, type='terms', se.fit=T)
+> temp2 <- predict(kfitx, type='terms', se.fit=T)
+> aeq(temp1$fit[,1:2], temp2$fit)
+[1] TRUE
+> # the next is not equal, all.equal returns a character string in that case
+> is.character(aeq(temp1$se.fit[,1:2], temp2$se.fit))
+[1] TRUE
+> mean(temp1$se.fit[,1:2]/ temp2$se.fit)
+[1] 1.433017
+> aeq(as.vector(temp1$se.fit[,3])^2, 
++ 	  as.vector(kfit1$fvar[match(kidney$id, sort(unique(kidney$id)))]))
+[1] TRUE
+> 
+> print(temp1)
+$fit
+            age       sex frailty(id, dist = "gauss")
+1  -0.073981042  1.039553                  0.59814468
+2  -0.073981042  1.039553                  0.59814468
+3   0.020278123 -0.371269                  0.38512389
+4   0.020278123 -0.371269                  0.38512389
+5  -0.055129209  1.039553                  0.20210998
+6  -0.055129209  1.039553                  0.20210998
+7  -0.059842167 -0.371269                 -0.55932015
+8  -0.055129209 -0.371269                 -0.55932015
+9  -0.158814289  1.039553                  0.28558387
+10 -0.158814289  1.039553                  0.28558387
+11 -0.130536540 -0.371269                  0.06628942
+12 -0.125823582 -0.371269                  0.06628942
+13  0.034416998  1.039553                  0.80505119
+14  0.034416998  1.039553                  0.80505119
+15  0.053268830 -0.371269                 -0.43834241
+16  0.057981789 -0.371269                 -0.43834241
+17  0.119250245 -0.371269                 -0.05631649
+18  0.119250245 -0.371269                 -0.05631649
+19  0.034416998  1.039553                 -0.49980572
+20  0.039129956  1.039553                 -0.49980572
+21  0.001426290 -0.371269                 -0.13028264
+22  0.001426290 -0.371269                 -0.13028264
+23 -0.045703292 -0.371269                  0.06377401
+24 -0.045703292 -0.371269                  0.06377401
+25 -0.040990334 -0.371269                  0.38815296
+26 -0.040990334 -0.371269                  0.38815296
+27 -0.007999626 -0.371269                 -0.47650510
+28 -0.007999626 -0.371269                 -0.47650510
+29 -0.125823582 -0.371269                 -0.66986830
+30 -0.125823582 -0.371269                 -0.66986830
+31  0.076833621  1.039553                  0.19359678
+32  0.076833621  1.039553                  0.19359678
+33  0.076833621 -0.371269                 -0.16483200
+34  0.076833621 -0.371269                 -0.16483200
+35 -0.003286668 -0.371269                 -0.15794998
+36  0.001426290 -0.371269                 -0.15794998
+37  0.043842914 -0.371269                 -0.46236014
+38  0.043842914 -0.371269                 -0.46236014
+39  0.001426290 -0.371269                  0.12603308
+40  0.001426290 -0.371269                  0.12603308
+41  0.010852206  1.039553                 -1.74303142
+42  0.015565165  1.039553                 -1.74303142
+43 -0.064555125 -0.371269                 -0.45211210
+44 -0.064555125 -0.371269                 -0.45211210
+45  0.086259538 -0.371269                  0.51574106
+46  0.090972496 -0.371269                  0.51574106
+47 -0.007999626 -0.371269                  0.09475123
+48 -0.003286668 -0.371269                  0.09475123
+49 -0.003286668  1.039553                  0.05790354
+50 -0.003286668  1.039553                  0.05790354
+51  0.062694747 -0.371269                 -0.37933234
+52  0.067407705 -0.371269                 -0.37933234
+53 -0.158814289 -0.371269                  0.11248891
+54 -0.158814289 -0.371269                  0.11248891
+55  0.039129956 -0.371269                  0.54791210
+56  0.039129956 -0.371269                  0.54791210
+57  0.043842914  1.039553                  0.45873482
+58  0.043842914  1.039553                  0.45873482
+59  0.048555872 -0.371269                  0.35639797
+60  0.048555872 -0.371269                  0.35639797
+61  0.057981789 -0.371269                  0.48803342
+62  0.057981789 -0.371269                  0.48803342
+63  0.029704039 -0.371269                  0.25597325
+64  0.034416998 -0.371269                  0.25597325
+65  0.062694747 -0.371269                  0.23054948
+66  0.062694747 -0.371269                  0.23054948
+67  0.001426290 -0.371269                 -0.13680005
+68  0.006139248 -0.371269                 -0.13680005
+69 -0.102258791 -0.371269                  0.51977995
+70 -0.102258791 -0.371269                  0.51977995
+71 -0.007999626 -0.371269                 -0.23878154
+72 -0.007999626 -0.371269                 -0.23878154
+73  0.039129956 -0.371269                  0.17174306
+74  0.039129956 -0.371269                  0.17174306
+75  0.076833621  1.039553                 -0.35822829
+76  0.076833621  1.039553                 -0.35822829
+
+$se.fit
+           age       sex frailty(id, dist = "gauss")
+1  0.195861829 0.3280279                   0.6246430
+2  0.195861829 0.3280279                   0.6246430
+3  0.053685514 0.1171528                   0.6954922
+4  0.053685514 0.1171528                   0.6954922
+5  0.145952360 0.3280279                   0.5705340
+6  0.145952360 0.3280279                   0.5705340
+7  0.158429727 0.1171528                   0.4894541
+8  0.145952360 0.1171528                   0.4894541
+9  0.420454437 0.3280279                   0.6071455
+10 0.420454437 0.3280279                   0.6071455
+11 0.345590234 0.1171528                   0.5633997
+12 0.333112867 0.1171528                   0.5633997
+13 0.091117615 0.3280279                   0.6641707
+14 0.091117615 0.3280279                   0.6641707
+15 0.141027084 0.1171528                   0.5101890
+16 0.153504451 0.1171528                   0.5101890
+17 0.315710223 0.1171528                   0.5491569
+18 0.315710223 0.1171528                   0.5491569
+19 0.091117615 0.3280279                   0.5264083
+20 0.103594982 0.3280279                   0.5264083
+21 0.003776045 0.1171528                   0.5180953
+22 0.003776045 0.1171528                   0.5180953
+23 0.120997626 0.1171528                   0.6208806
+24 0.120997626 0.1171528                   0.6208806
+25 0.108520259 0.1171528                   0.5811421
+26 0.108520259 0.1171528                   0.5811421
+27 0.021178689 0.1171528                   0.6247779
+28 0.021178689 0.1171528                   0.6247779
+29 0.333112867 0.1171528                   0.5615987
+30 0.333112867 0.1171528                   0.5615987
+31 0.203413919 0.3280279                   0.6532405
+32 0.203413919 0.3280279                   0.6532405
+33 0.203413919 0.1171528                   0.5247227
+34 0.203413919 0.1171528                   0.5247227
+35 0.008701322 0.1171528                   0.5106606
+36 0.003776045 0.1171528                   0.5106606
+37 0.116072349 0.1171528                   0.6284328
+38 0.116072349 0.1171528                   0.6284328
+39 0.003776045 0.1171528                   0.6320009
+40 0.003776045 0.1171528                   0.6320009
+41 0.028730780 0.3280279                   0.5235228
+42 0.041208147 0.3280279                   0.5235228
+43 0.170907094 0.1171528                   0.5492095
+44 0.170907094 0.1171528                   0.5492095
+45 0.228368654 0.1171528                   0.6058686
+46 0.240846021 0.1171528                   0.6058686
+47 0.021178689 0.1171528                   0.6267998
+48 0.008701322 0.1171528                   0.6267998
+49 0.008701322 0.3280279                   0.5526664
+50 0.008701322 0.3280279                   0.5526664
+51 0.165981818 0.1171528                   0.5556706
+52 0.178459185 0.1171528                   0.5556706
+53 0.420454437 0.1171528                   0.5849825
+54 0.420454437 0.1171528                   0.5849825
+55 0.103594982 0.1171528                   0.6081780
+56 0.103594982 0.1171528                   0.6081780
+57 0.116072349 0.3280279                   0.6010279
+58 0.116072349 0.3280279                   0.6010279
+59 0.128549717 0.1171528                   0.5762113
+60 0.128549717 0.1171528                   0.5762113
+61 0.153504451 0.1171528                   0.5982501
+62 0.153504451 0.1171528                   0.5982501
+63 0.078640248 0.1171528                   0.6614053
+64 0.091117615 0.1171528                   0.6614053
+65 0.165981818 0.1171528                   0.5609510
+66 0.165981818 0.1171528                   0.5609510
+67 0.003776045 0.1171528                   0.5844921
+68 0.016253412 0.1171528                   0.5844921
+69 0.270726031 0.1171528                   0.6089631
+70 0.270726031 0.1171528                   0.6089631
+71 0.021178689 0.1171528                   0.6795741
+72 0.021178689 0.1171528                   0.6795741
+73 0.103594982 0.1171528                   0.6421784
+74 0.103594982 0.1171528                   0.6421784
+75 0.203413919 0.3280279                   0.5779661
+76 0.203413919 0.3280279                   0.5779661
+
+> kfit1
+Call:
+coxph(formula = Surv(time, status) ~ age + sex + frailty(id, 
+    dist = "gauss"), data = kidney)
+
+                              coef se(coef)      se2    Chisq   DF      p
+age                        0.00471  0.01248  0.00856  0.14267  1.0 0.7056
+sex                       -1.41082  0.44518  0.31504 10.04319  1.0 0.0015
+frailty(id, dist = "gauss                            26.54461 14.7 0.0294
+
+Iterations: 6 outer, 39 Newton-Raphson
+     Variance of random effect= 0.569 
+Degrees of freedom for terms=  0.5  0.5 14.7 
+Likelihood ratio test=47.5  on 15.7 df, p=4.65e-05  n= 76 
+> kfitx
+Call:
+coxph(formula = Surv(time, status) ~ age + sex + offset(temp), 
+    data = kidney, init = kfit1$coef, iter = 0)
+
+        coef exp(coef) se(coef)     z     p
+age  0.00471   1.00472  0.00875  0.54  0.59
+sex -1.41082   0.24394  0.30916 -4.56 5e-06
+
+Likelihood ratio test=0  on 2 df, p=1
+n= 76, number of events= 58 
+> 
+> rm(temp1, temp2, kfitx, zed, tempf)
+> #
+> # The special case of a single sparse frailty
+> #
+> 
+> kfit1 <- coxph(Surv(time, status) ~ frailty(id, dist='gauss'), kidney)
+> tempf <- predict(kfit1, type='terms')
+> temp  <- kfit1$frail[match(kidney$id, sort(unique(kidney$id)))]
+> all.equal(as.vector(tempf), as.vector(temp))
+[1] TRUE
+> 
+> # Now fit a model with explicit offset
+> kfitx <- coxph(Surv(time, status) ~ offset(tempf),kidney, eps=1e-7)
+> 
+> aeq(resid(kfit1), resid(kfitx))
+[1] TRUE
+> aeq(resid(kfit1, type='deviance'), resid(kfitx, type='deviance'))
+[1] TRUE
+> 
+> #
+> # Some tests of predicted values
+> #
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> aeq(predict(kfit1, type='expected'), predict(kfitx, type='expected'))
+[1] TRUE
+> aeq(predict(kfit1, type='lp'), predict(kfitx, type='lp'))
+[1] TRUE
+> 
+> temp1 <- predict(kfit1, type='terms', se.fit=T)
+> aeq(temp1$fit, kfitx$linear)
+[1] TRUE
+> aeq(temp1$se.fit^2, 
++ 	  kfit1$fvar[match(kidney$id, sort(unique(kidney$id)))])
+[1] TRUE
+> 
+> temp1
+$fit
+ [1]  0.696003729  0.696003729  0.244575316  0.244575316  0.494175549
+ [6]  0.494175549 -0.659248798 -0.659248798  0.521423106  0.521423106
+[11] -0.114492938 -0.114492938  0.800127481  0.800127481 -0.488101282
+[16] -0.488101282 -0.120396647 -0.120396647  0.131121515  0.131121515
+[21] -0.214987009 -0.214987009 -0.054872789 -0.054872789  0.184657295
+[26]  0.184657295 -0.510007747 -0.510007747 -0.790746805 -0.790746805
+[31]  0.324674289  0.324674289 -0.239374060 -0.239374060 -0.264428564
+[36] -0.264428564 -0.472698773 -0.472698773  0.006304049  0.006304049
+[41] -0.873434085 -0.873434085 -0.530880840 -0.530880840  0.351411783
+[46]  0.351411783 -0.037212138 -0.037212138  0.442049266  0.442049266
+[51] -0.419206550 -0.419206550 -0.108012854 -0.108012854  0.346332076
+[56]  0.346332076  0.659300205  0.659300205  0.197278585  0.197278585
+[61]  0.304868889  0.304868889  0.139712997  0.139712997  0.093574024
+[66]  0.093574024 -0.209690355 -0.209690355  0.302070834  0.302070834
+[71] -0.278962288 -0.278962288  0.068599919  0.068599919  0.078493616
+[76]  0.078493616
+
+$se.fit
+ [1] 0.6150025 0.6150025 0.6160184 0.6160184 0.5715622 0.5715622 0.4393615
+ [8] 0.4393615 0.5761369 0.5761369 0.4834244 0.4834244 0.6421184 0.6421184
+[15] 0.4574824 0.4574824 0.4813578 0.4813578 0.5119792 0.5119792 0.4764145
+[22] 0.4764145 0.5532477 0.5532477 0.5195437 0.5195437 0.5534327 0.5534327
+[29] 0.4775572 0.4775572 0.6364522 0.6364522 0.4708988 0.4708988 0.4670896
+[36] 0.4670896 0.5600672 0.5600672 0.5641880 0.5641880 0.4650576 0.4650576
+[43] 0.4904715 0.4904715 0.5448430 0.5448430 0.5570120 0.5570120 0.5608187
+[50] 0.5608187 0.4996021 0.4996021 0.4831697 0.4831697 0.5452255 0.5452255
+[57] 0.6057428 0.6057428 0.5209402 0.5209402 0.5376594 0.5376594 0.5911350
+[64] 0.5911350 0.5065368 0.5065368 0.5290283 0.5290283 0.5368433 0.5368433
+[71] 0.5996077 0.5996077 0.5762814 0.5762814 0.5782753 0.5782753
+
+> kfit1
+Call:
+coxph(formula = Surv(time, status) ~ frailty(id, dist = "gauss"), 
+    data = kidney)
+
+                          coef se(coef) se2 Chisq   DF     p
+frailty(id, dist = "gauss                      23 13.8 0.057
+
+Iterations: 7 outer, 39 Newton-Raphson
+     Variance of random effect= 0.458 
+Degrees of freedom for terms= 13.8 
+Likelihood ratio test=33.4  on 13.8 df, p=0.00234  n= 76 
+> 
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.248   0.020   0.262 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_cancer.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_cancer.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_cancer.R	(revision 2476)
@@ -0,0 +1,27 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Here is a test case with multiple smoothing terms
+#
+
+fit0 <- coxph(Surv(time, status) ~ ph.ecog + age, lung)
+fit1 <- coxph(Surv(time, status) ~ ph.ecog + pspline(age,3), lung)
+fit2 <- coxph(Surv(time, status) ~ ph.ecog + pspline(age,4), lung)
+fit3 <- coxph(Surv(time, status) ~ ph.ecog + pspline(age,8), lung)
+
+
+
+fit4 <- coxph(Surv(time, status) ~ ph.ecog + pspline(wt.loss,3), lung)
+
+fit5 <-coxph(Surv(time, status) ~ ph.ecog + pspline(age,3) + 
+	     pspline(wt.loss,3), lung)
+
+fit1
+fit2
+fit3
+fit4
+fit5
+
+rm(fit1, fit2, fit3, fit4, fit5)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/expected2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/expected2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/expected2.R	(revision 2476)
@@ -0,0 +1,16 @@
+library(survival)
+#
+# A Cox model with a factor, followed by survexp.  
+#
+pfit2 <- coxph(Surv(time, status > 0) ~ trt + log(bili) +
+          log(protime) + age + platelet + sex, data = pbc)
+esurv <- survexp(~ trt, ratetable = pfit2, data = pbc)
+
+temp <- pbc
+temp$sex2 <- factor(as.numeric(pbc$sex), levels=2:0,
+                    labels=c("f", "m", "unknown"))
+esurv2 <- survexp(~ trt, ratetable = pfit2, data = temp, 
+                  rmap=list(sex=sex2))
+
+# The call components won't match, which happen to be first
+all.equal(unclass(esurv)[-1], unclass(esurv2)[-1])
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_ovarian.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_ovarian.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_ovarian.R	(revision 2476)
@@ -0,0 +1,21 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Test on the ovarian data
+
+fit1 <- coxph(Surv(futime, fustat) ~ rx + age, ovarian)
+fit2 <- coxph(Surv(futime, fustat) ~ rx + pspline(age, df=2), 
+		data=ovarian)
+fit2$iter
+
+fit2$df
+
+fit2$history
+
+fit4 <- coxph(Surv(futime, fustat) ~ rx + pspline(age, df=4), 
+		data=ovarian)
+fit4
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tt.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tt.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tt.R	(revision 2476)
@@ -0,0 +1,48 @@
+library(survival)
+
+# A contrived example for the tt function
+#
+mkdata <- function(n, beta) {
+    age <- runif(n, 20, 60)
+    x <- rbinom(n, 1, .5)
+
+    futime <- rep(40, n)   # everyone has 40 years of follow-up
+    status <- rep(0, n)
+    dtime <-  runif(n/2, 1, 40)  # 1/2 of them die
+    dtime <- sort(dtime)
+
+    # The risk is set to beta[1]*x + beta[2]* f(current_age)
+    #   where f= 0 up to age 40, rises linear to age 70, flat after that
+    for (i in 1:length(dtime)) {
+        atrisk <- (futime >= dtime[i])
+        c.age <- age + dtime
+        age2 <- pmin(30, pmax(0, c.age-40))
+        xbeta <- beta[1]*x + beta[2]*age2
+        
+        # Select a death according to risk
+        risk <- ifelse(atrisk, exp(xbeta), 0)
+        dead <- sample(1:n, 1, prob=risk/sum(risk))
+        
+        futime[dead] <- dtime[i]
+        status[dead] <- 1
+    }
+    data.frame(futime=futime, status=status, age=age, x=x, risk=risk)
+}
+tdata <- mkdata(500, c(log(1.5), 2/30))
+
+fit1 <- coxph(Surv(futime, status) ~ x + pspline(age), tdata)
+fit2 <- coxph(Surv(futime, status) ~ x + tt(age), tdata,
+              tt= function(x, t, ...) pspline(x+t))
+
+dfit <- coxph(Surv(futime, status) ~ x + tt(age), tdata,
+              tt= function(x, t, ...) x+t, iter=0, x=T)
+
+#
+# Check that cluster, weight, and offset were correctly expanded
+#
+tdata <- data.frame(tdata, grp=sample(1:100, 500, replace=TRUE),
+                    casewt = sample(1:5, 500, replace=TRUE),
+                    zz = rnorm(500))
+dfit2 <- coxph(Surv(futime, status) ~ x + tt(age) + offset(zz) + cluster(grp),
+               weight=casewt, data=tdata,
+               tt= function(x, t, ...) x+t)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/model.matrix.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/model.matrix.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/model.matrix.Rout.save	(revision 2476)
@@ -0,0 +1,90 @@
+
+R Under development (unstable) (2014-09-01 r66509) -- "Unsuffered Consequences"
+Copyright (C) 2014 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> #
+> # Test out the revised model.matrix code
+> #
+> test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0),
++                     z= factor(c('a', 'a', 'b', 'b', 'c', 'c', 'a')))
+> 
+> fit1 <- coxph(Surv(time, status) ~ z, test1, iter=1)
+> fit2 <- coxph(Surv(time, status) ~z, test1, x=T, iter=1)
+> all.equal(model.matrix(fit1), fit2$x)
+[1] TRUE
+> 
+> # This has no level 'b', make sure dummies recode properly
+> test2 <- data.frame(time=  c(9, 3,1,1,6,6,8),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0),
++                     z= factor(c('a', 'a', 'a', 'a', 'c', 'c', 'a')))
+> 
+> ftest <- model.frame(fit1, data=test2)
+> all.equal(levels(ftest$z), levels(test1$z))
+[1] TRUE
+> 
+> # xtest will have one more row than the others, since it does not delete
+> #  the observation with a missing value for status
+> xtest <- model.matrix(fit1, data=test2)
+> dummy <- fit2$x
+> dummy[,1] <- 0
+> all.equal(xtest[-2,], dummy, check.attributes=FALSE)
+[1] TRUE
+> 
+> # The case of a strata by factor interaction
+> #  Use iter=0 since there are too many covariates and it won't converge
+> test1$x2 <- factor(rep(1:2, length=7))
+> fit3 <- coxph(Surv(time, status) ~ strata(x2)*z, test1, iter=0)
+> xx <- model.matrix(fit3)
+> all.equal(attr(xx, "assign"), c(2,2,3,3))
+[1] TRUE
+> all.equal(colnames(xx), c("zb", "zc", "strata(x2)2:zb",
++                           "strata(x2)2:zc"))
+[1] TRUE
+> all.equal(attr(xx, "contrasts"), 
++           list("strata(x2)"= "contr.treatment", z="contr.treatment"))
+[1] TRUE
+> 
+> fit3b <-   coxph(Surv(time, status) ~ strata(x2)*z, test1, iter=0, x=TRUE)
+> all.equal(fit3b$x, xx)
+[1] TRUE
+> 
+> 
+> # A model with  a tt term
+> fit4 <- coxph(Surv(time, status) ~ tt(x) + x, test1, iter=0,
++               tt = function(x, t, ...) x*t)
+> ff <- model.frame(fit4)
+> # There is 1 subject in the final risk set, 4 at risk at time 6, 6 at time 1
+> # The .strata. variable numbers from last time point to first
+> all.equal(ff$.strata., rep(1:3, c(1, 4,6)))
+[1] TRUE
+> all.equal(ff[["tt(x)"]], ff$x* c(9,6,1)[ff$.strata.])
+[1] TRUE
+> 
+> xx <- model.matrix(fit4)
+> all.equal(xx[,1], ff[[2]], check.attributes=FALSE)
+[1] TRUE
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.196   0.028   0.220 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/cancer.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/cancer.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/cancer.R	(revision 2476)
@@ -0,0 +1,34 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Test out all of the routines on a more complex data set
+#
+temp <- survfit(Surv(time, status) ~ ph.ecog, lung)
+summary(temp, times=c(30*1:11, 365*1:3))
+print(temp[2:3])
+
+temp <- survfit(Surv(time, status)~1, lung, type='fleming',
+		   conf.int=.9, conf.type='log-log', error='tsiatis')
+summary(temp, times=30 *1:5)
+
+temp <- survdiff(Surv(time, status) ~ inst, lung, rho=.5)
+print(temp, digits=6)
+
+temp <- coxph(Surv(time, status) ~ ph.ecog + ph.karno + pat.karno + wt.loss 
+	      + sex + age + meal.cal + strata(inst), lung)
+summary(temp)
+cox.zph(temp)
+cox.zph(temp, transform='identity')
+
+coxph(Surv(rep(0,length(time)), time, status) ~ ph.ecog + ph.karno + pat.karno
+		+ wt.loss + sex + age + meal.cal + strata(inst), lung)
+
+#
+# Tests of using "."
+#
+fit1 <- coxph(Surv(time, status) ~ . - meal.cal - wt.loss - inst, lung)
+fit2 <- update(fit1, .~. - ph.karno)
+fit3 <- coxph(Surv(time, status) ~ age + sex + ph.ecog + pat.karno, lung)
+all.equal(fit2, fit3)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/difftest.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/difftest.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/difftest.Rout.save	(revision 2476)
@@ -0,0 +1,96 @@
+
+R version 2.14.0 Under development (unstable) (2011-04-10 r55401)
+Copyright (C) 2011 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Test some more features of surv.diff
+> #
+> #  First, what happens when one group is a dummy
+> #
+> 
+> 
+> #
+> # The AML data, with a third group of early censorings "tacked on"
+> #
+> aml3 <- list(time=   c( 9, 13, 13, 18, 23, 28, 31, 34, 45, 48, 161,
++ 			   5,  5,  8,  8, 12, 16, 23, 27, 30, 33, 43, 45,
++ 			   1,  2,  2,  3,  3,  3,  4),
++ 	    status= c( 1,1,0,1,1,0,1,1,0,1,0, 1,1,1,1,1,0,1,1,1,1,1,1,
++ 				0,0,0,0,0,0,0),
++ 	    x     = as.factor(c(rep("Maintained", 11),
++ 				rep("Nonmaintained", 12), rep("Dummy",7) )))
+> 
+> aml3 <- data.frame(aml3)
+> 
+> # These should give the same result (chisq, df), but the second has an
+> #  extra group
+> survdiff(Surv(time, status) ~x, aml)
+Call:
+survdiff(formula = Surv(time, status) ~ x, data = aml)
+
+                 N Observed Expected (O-E)^2/E (O-E)^2/V
+x=Maintained    11        7    10.69      1.27       3.4
+x=Nonmaintained 12       11     7.31      1.86       3.4
+
+ Chisq= 3.4  on 1 degrees of freedom, p= 0.0653 
+> survdiff(Surv(time, status) ~x, aml3)
+Call:
+survdiff(formula = Surv(time, status) ~ x, data = aml3)
+
+                 N Observed Expected (O-E)^2/E (O-E)^2/V
+x=Dummy          7        0     0.00       NaN       NaN
+x=Maintained    11        7    10.69      1.27       3.4
+x=Nonmaintained 12       11     7.31      1.86       3.4
+
+ Chisq= 3.4  on 1 degrees of freedom, p= 0.0653 
+> 
+> 
+> #
+> # Now a test of the stratified log-rank
+> #   There are no tied times within institution, so the coxph program
+> #   can be used to give a complete test
+> #
+> fit <- survdiff(Surv(time, status) ~ pat.karno + strata(inst), cancer)
+> 
+> cfit <- coxph(Surv(time, status) ~ factor(pat.karno) + strata(inst),
++ 		cancer, iter=0)
+> 
+> tdata <- na.omit(cancer[,c('time', 'status', 'pat.karno', 'inst')])
+> 
+> temp1 <- tapply(tdata$status-1, list(tdata$pat.karno, tdata$inst), sum)
+> temp1 <- ifelse(is.na(temp1), 0, temp1)
+> temp2 <- tapply(cfit$resid,  list(tdata$pat.karno, tdata$inst), sum)
+> temp2 <- ifelse(is.na(temp2), 0, temp2)
+> 
+> temp2 <- temp1 - temp2
+> 
+> #Now temp1=observed, temp2=expected
+> all.equal(c(temp1), c(fit$obs))
+[1] TRUE
+> all.equal(c(temp2), c(fit$exp))
+[1] TRUE
+> 
+> all.equal(fit$var[-1,-1], solve(cfit$var))
+[1] TRUE
+> 
+> rm(tdata, temp1, temp2)
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_rat2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_rat2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_rat2.R	(revision 2476)
@@ -0,0 +1,65 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+# From Gail, Sautner and Brown, Biometrics 36, 255-66, 1980
+
+# 48 rats were injected with a carcinogen, and then randomized to either
+# drug or placebo.  The number of tumors ranges from 0 to 13; all rats were
+# censored at 6 months after randomization.
+
+# Variables: rat, treatment (1=drug, 0=control), o
+# 	   observation # within rat,
+#	   (start, stop] status
+# The raw data has some intervals of zero length, i.e., start==stop.
+#  We add .1 to these times as an approximate solution
+#
+rat2 <- read.table('data.rat2', col.names=c('id', 'rx', 'enum', 'start',
+				  'stop', 'status'))
+temp1 <- rat2$start
+temp2 <- rat2$stop
+for (i in 1:nrow(rat2)) {
+    if (temp1[i] == temp2[i]) {
+	temp2[i] <- temp2[i] + .1
+	if (i < nrow(rat2) && rat2$id[i] == rat2$id[i+1]) {
+	    temp1[i+1] <- temp1[i+1] + .1
+	    if (temp2[i+1] <= temp1[i+1]) temp2[i+1] <- temp1[i+1]
+	    }
+        }
+    }
+rat2$start <- temp1
+rat2$stop  <- temp2
+
+r2fit0 <- coxph(Surv(start, stop, status) ~ rx + cluster(id), rat2)
+
+r2fitg <-  coxph(Surv(start, stop, status) ~ rx + frailty(id), rat2)
+r2fitm <-  coxph(Surv(start, stop, status) ~ rx + frailty.gaussian(id), rat2)
+
+r2fit0
+r2fitg
+r2fitm
+
+#This example is unusual: the frailties variances end up about the same,
+#  but the effect on rx differs.  Double check it
+# Because of different iteration paths, the coef won't be exactly the
+#     same, but darn close.
+
+temp <- coxph(Surv(start, stop, status) ~ rx + offset(r2fitm$frail[id]), rat2)
+all.equal(temp$coef, r2fitm$coef[1], tolerance=1e-7)
+
+temp <- coxph(Surv(start, stop, status) ~ rx + offset(r2fitg$frail[id]), rat2)
+all.equal(temp$coef, r2fitg$coef[1], tolerance=1e-7)
+
+#
+# What do I get with AIC
+#
+r2fita1 <- coxph(Surv(start, stop, status) ~ rx + frailty(id, method='aic'),
+		 rat2)
+r2fita2 <- coxph(Surv(start, stop, status) ~ rx + frailty(id, method='aic',
+							  dist='gauss'), rat2)
+r2fita3 <- coxph(Surv(start, stop, status) ~ rx + frailty(id, dist='t'),
+		 rat2)
+
+r2fita1
+r2fita2
+r2fita3
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/surv.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/surv.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/surv.R	(revision 2476)
@@ -0,0 +1,24 @@
+#
+library(survival)
+
+# Some simple tests of the Surv function
+#  The first two are motivated by a bug, pointed out by Kevin Buhr,
+#    where a mixture of NAs and invalid values didn't work right
+#  Even for the simplest things a test case is good.
+#  All but the third should produce warning messages
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+temp <- Surv(c(1, 10, 20, 30), c(2, NA, 0, 40), c(1,1,1,1))
+aeq(temp, c(1,10,NA,30,  2,NA,0,40, 1,1,1,1))
+
+temp <- Surv(c(1, 10, 20, 30), c(2, NA, 0, 40), type='interval2')
+aeq(temp, c(1,10,20,30,  2,1,1,40, 3,0,NA,3))
+
+#No error
+temp <- Surv(1:5)
+aeq(temp, c(1:5, 1,1,1,1,1))
+
+temp1 <- Surv(c(1,10,NA, 30, 30), c(1,NA,10,20, 40), type='interval2')
+temp2 <- Surv(c(1,10,10,30,30), c(9, NA, 5, 20,40), c(1, 0, 2,3,3),
+              type='interval')
+aeq(temp1, temp2)
+aeq(temp1, c(1,10,10,30,30, 1,1,1,1, 40, 1,0,2,NA,3))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/singtest.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/singtest.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/singtest.R	(revision 2476)
@@ -0,0 +1,24 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# A simple test of an overdetermined system
+#  Should give a set of NA coefficients
+#
+test1 <- data.frame(time=  c(4, 3,1,1,2,2,3),
+		    status=c(1,NA,1,0,1,1,0),
+		    x=     c(0, 2,1,1,1,0,0))
+
+temp <- rep(0:3, rep(7,4))
+
+stest <- data.frame(start  = 10*temp,
+		    stop   = 10*temp + test1$time,
+		    status = rep(test1$status,4),
+		    x      = c(test1$x+ 1:7, rep(test1$x,3)),
+		    epoch  = rep(1:4, rep(7,4)))
+
+# Will create a warning about a singular X matrix
+fit1 <- coxph(Surv(start, stop, status) ~ x * factor(epoch), stest)
+fit1$coef    # elements 2:4 should be NA
+all.equal(is.na(fit1$coef), c(F,T,T,T,F,F,F), check.attributes=FALSE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_stanford.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_stanford.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_stanford.R	(revision 2476)
@@ -0,0 +1,71 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# The Stanford data from 1980 is used in Escobar and Meeker, Biometrics 1992.
+#	t5 = T5 mismatch score
+#  Their case numbers correspond to a data set sorted by age
+#
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+stanford2$t5 <- ifelse(stanford2$t5 <0, NA, stanford2$t5)
+stanford2 <- stanford2[order(stanford2$age, stanford2$time),]
+stanford2$time <- ifelse(stanford2$time==0, .5, stanford2$time)
+
+cage <- stanford2$age - mean(stanford2$age)
+fit1 <- survreg(Surv(time, status) ~ cage + I(cage^2), stanford2,
+		dist='lognormal')
+fit1
+ldcase <- resid(fit1, type='ldcase')
+ldresp <- resid(fit1, type='ldresp')
+# The ldcase and ldresp should be compared to table 1 in Escobar and 
+#  Meeker, Biometrics 1992, p519; the colums they label as (1/2) A_{ii}
+#  They give data for selected cases, entered below as mdata
+mdata <- cbind(c(1,2,4,5,12,16,23,61,66,72,172,182,183,184),
+               c(.035, .244, .141, .159, .194, .402, 0,0, .143, .403,
+                 .178, .033, .005, .015),
+               c(.138, .145, .073, .076, .104, .159, 0,0, .109, .184,
+                 .116, .063, .103, .144))
+dimnames(mdata) <- list(NULL, c("case#", "ldcase", "ldresp"))
+aeq(round(ldcase[mdata[,1]],3), mdata[,2])
+aeq(round(ldresp[mdata[,1]],3), mdata[,3])             
+
+plot1 <- function() {
+    # make their figure 1, 2, and 6
+    temp <- predict(fit1, type='quantile', p=c(.1, .5, .9)) 
+    plot(stanford2$age, stanford2$time, log='y', xlab="Age", ylab="Days",
+	 ylim=range(stanford2$time, temp))
+    matlines(stanford2$age, temp, lty=c(1,2,2), col=1)
+
+    n <- length(ldcase)
+    plot(1:n, ldcase, xlab="Case Number", ylab="(1/2) A", type='l')
+    title (main="Case weight pertubations")
+    plot(1:n, ldresp, xlab="Case Number", ylab="(1/2) A", 
+         ylim=c(0, .2), type='l')
+    title(main="Response pertubations")
+    indx <- which(ldresp > .07)
+    text(indx, ldresp[indx]+ .005, indx%%10, cex=.6)
+    }
+
+postscript('meekerplot.ps')
+plot1()
+dev.off()
+#
+# Stanford predictions in other ways
+#
+fit2 <- survreg(Surv(time, status) ~ poly(age,2), stanford2,
+		dist='lognormal')
+
+p1 <- predict(fit1, type='response')
+p2 <- predict(fit2, type='response')
+aeq(p1, p2)
+
+p3 <- predict(fit2, type='terms', se=T)
+p4 <- predict(fit2, type='lp', se=T)
+p5 <- predict(fit1, type='lp', se=T)
+# aeq(p3$fit + attr(p3$fit, 'constant'), p4$fit)  #R is missing the attribute
+aeq(p4$fit, p5$fit)
+aeq(p3$se.fit, p4$se.fit)  #this one should be false
+aeq(p4$se.fit, p5$se.fit)  #this one true
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/expected.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/expected.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/expected.R	(revision 2476)
@@ -0,0 +1,277 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#  Tests of expected survival
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+#
+# This makes several scripts easier
+#  Certain tests depended in the now-depreciated date library
+{if (is.R()) mdy.date <- function(m, d, y) {
+    y <- ifelse(y<100, y+1900, y)
+    as.Date(paste(m,d,y, sep='/'), "%m/%d/%Y")
+    }
+else mdy.date <- function(m,d,y) {
+    y <- ifelse(y<100, y+1900, y)
+    timeDate(paste(y, m, d, sep='/'), in.format="%Y/%m/%d")
+    }
+ }
+
+# This function takes a single subject and walks down the rate table
+# Input: the vector of starting points, futime, and a ratetable
+# Output: the full history of walking through said table. Let n= #unique
+#   rates that were used
+#       cell = n by #dims of the table: index of the table cell
+#       days = time spent in cell
+#       hazard= accumulated hazard = days * rate
+# This does not do date or factor conversions -- start has to be numeric
+#
+ratewalk <- function(start, futime, ratetable=survexp.us) {
+    if (!is.ratetable(ratetable)) stop("Bad rate table")
+    ratedim <- dim(ratetable)
+    nvar <- length(ratedim)
+    if (length(start) != nvar) stop("Wrong length for start")
+    if (futime <=0) stop("Invalid futime")
+
+    attR <- attributes(ratetable)
+    discrete <- (attR$type ==1)  #discrete categories
+
+    maxn <- sum(!discrete)*prod(ratedim[!discrete]) #most cells you can hit
+    cell <- matrix(0, nrow=maxn, ncol=nvar)
+    days <- hazard <- double(maxn)
+
+    eps <- 1e-8  #Avoid round off error
+    n <- 0
+    while (futime >0) {
+        n <- n+1
+        #what cell am I in?
+        # Note that at the edges of the rate table, we use the edge: if
+        #   it only goes up the the year 2000, year 2000 is used for any
+        #   dates beyond.  This effectively eliminates one boundary
+        cell[n,discrete] <- start[discrete]
+        edge <- futime  #time to nearest edge, or finish
+        for (j in which(!discrete)) {
+            indx <- sum(start[j] >= attR$cutpoints[[j]]-eps)
+            cell[n, j] <- max(1, indx)
+            if (indx < ratedim[j]) 
+                edge <- min(edge, (attR$cutpoints[[j]])[indx+1] - start[j])
+            }
+        days[n] <- edge  #this many days in the cell
+        # using a matrix as a subscript is so handy sometimes
+        hazard[n] <- edge * (as.matrix(ratetable))[cell[n,,drop=F]]
+        futime <- futime - edge  #amount of time yet to account for
+        start[!discrete] <- start[!discrete] + edge  #walk forward in time
+        }
+    list(cell=cell[1:n,], days=days[1:n], hazard=hazard[1:n])
+    }
+
+# Simple test of ratewalk: 20 years old, start on 7Sep 1960 (day 250)
+#   116 days at the 1960, 20 year old male rate, through the end of the day
+#     on 12/31/1960, then 84 days at the 1961 rate.  
+#   The decennial q for 1960 males is .00169.
+zz <- ratewalk(c(20.4*365.25, 1, 250), 200)
+all.equal(zz$hazard[1], -(116/365.25)*log(1-.00169))
+all.equal(zz$days, c(116,84))
+
+        
+#
+# Simple case 1: a single male subject, born 1/1/36 and entered on study 1/2/55
+#
+#  Compute the 1, 5, 10 and 12 year expected survival
+
+temp1 <- mdy.date(1,1,36)
+temp2 <- mdy.date(1,2,55)
+exp1 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=1, race='white'),
+		    ratetable=survexp.usr,times=c(366, 1827, 3653, 4383))
+
+tyear <- as.numeric(temp2 - mdy.date(1,1,1960))
+h1 <- ratewalk(c(temp2-temp1, 1, 1, tyear), 366,  survexp.usr)
+h2 <- ratewalk(c(temp2-temp1, 1, 1, tyear), 1827, survexp.usr)
+h3 <- ratewalk(c(temp2-temp1, 1, 1, tyear), 3653, survexp.usr)
+h4 <- ratewalk(c(temp2-temp1, 1, 1, tyear), 4383, survexp.usr)
+
+aeq(-log(exp1$surv), c(sum(h1$hazard), sum(h2$hazard), sum(h3$hazard),
+                       sum(h4$hazard)))
+
+
+# Just a little harder: 
+#   Born 3/1/25 and entered the study on 6/10/55.  The code creates shifted
+#   dates to align with US rate tables - entry is 59 days earlier (days from
+#   1/1/25 to 3/1/25).
+#
+temp1 <- mdy.date(3,1,25)
+temp2 <- mdy.date(6,10,55)
+exp1 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=2, race='black'),
+		    ratetable=survexp.usr,times=c(366, 1827, 3653, 4383))
+
+tyear <- as.numeric(temp2 - mdy.date(1,1,1960)) - 59
+h1 <- ratewalk(c(temp2-temp1, 2, 2, tyear), 366,  survexp.usr)
+h2 <- ratewalk(c(temp2-temp1, 2, 2, tyear), 1827, survexp.usr)
+h3 <- ratewalk(c(temp2-temp1, 2, 2, tyear), 3653, survexp.usr)
+h4 <- ratewalk(c(temp2-temp1, 2, 2, tyear), 4383, survexp.usr)
+
+aeq(-log(exp1$surv), c(sum(h1$hazard), sum(h2$hazard), sum(h3$hazard),
+                       sum(h4$hazard)))
+
+#
+# Simple case 2: make sure that the averages are correct, for Ederer method
+#
+#  Compute the 1, 5, 10 and 12 year expected survival
+
+temp1 <- mdy.date(1:6,6:11,1890:1895)
+temp2 <- mdy.date(6:1,11:6,c(55:50))
+temp3 <- c(1,2,1,2,1,2)
+age <- temp2 - temp1
+
+exp1 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=temp3),
+		       times=c(366, 1827, 3653, 4383))
+exp2 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=temp3) + I(1:6),
+			times=c(366, 1827, 3653, 4383))
+exp3 <- exp2$surv
+for (i in 1:length(temp1)){
+    exp3[,i] <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=temp3),
+                        times=c(366, 1827, 3653, 4383), subset=i)$surv
+    }
+
+             
+print(aeq(exp2$surv, exp3))
+print(all.equal(exp1$surv, apply(exp2$surv, 1, mean)))
+
+# They agree, but are they right?
+#
+for (i in 1:length(temp1)) {
+    offset <- as.numeric(temp1[i] - mdy.date(1,1, 1889+i))
+    tyear = (as.numeric(temp2[i] - mdy.date(1,1,1960))) - offset
+    haz1 <- ratewalk(c((temp2-temp1)[i], temp3[i], tyear), 366)
+    haz2 <- ratewalk(c((temp2-temp1)[i], temp3[i], tyear), 1827)
+    haz3 <- ratewalk(c((temp2-temp1)[i], temp3[i], tyear), 3653)
+    haz4 <- ratewalk(c((temp2-temp1)[i], temp3[i], tyear), 4383)
+    print(aeq(-log(exp2$surv[,i]), c(sum(haz1$hazard), sum(haz2$hazard),
+                                    sum(haz3$hazard), sum(haz4$hazard))))
+    }
+
+#
+# Check that adding more time points doesn't change things
+#
+exp4 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=temp3) + I(1:6),
+		times=sort(c(366, 1827, 3653, 4383, 30*(1:100))))
+aeq(exp4$surv[match(exp2$time, exp4$time),], exp2$surv)
+
+exp4 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=temp3),
+		times=sort(c(366, 1827, 3653, 4383, 30*(1:100))))
+aeq(exp1$surv, exp4$surv[match(exp1$time, exp4$time, nomatch=0)])
+
+
+#
+# Now test Hakulinen's method, assuming an analysis date of 3/1/57
+#
+futime <- mdy.date(3,1,57) - temp2
+xtime  <- sort(c(futime, 30, 60, 185, 365))
+
+exp1 <- survexp(futime ~ ratetable(year=temp2, age=(temp2-temp1), sex=1),
+		times=xtime, conditional=F)
+exp2 <- survexp(~ratetable(year=temp2, age=(temp2-temp1), sex=1) + I(1:6),
+			times=futime)
+
+wt <- rep(1,6)
+con <- double(6)
+for (i in 1:6) {
+    con[i] <- sum(exp2$surv[i,i:6])/sum(wt[i:6])
+    wt <- exp2$surv[i,]
+    }
+
+exp1$surv[match(futime, xtime)]
+aeq(exp1$surv[match(futime, xtime)], cumprod(con))
+
+
+#
+# Now for the conditional method
+#
+exp1 <- survexp(futime ~ ratetable(year=temp2, age=(temp2-temp1), sex=1),
+		times=xtime, conditional=T)
+
+cond <- exp2$surv
+for (i in 6:2) cond[i,] <- (cond[i,]/cond[i-1,])  #conditional survival
+for (i in 1:6) con[i] <- exp(mean(log(cond[i, i:6])))
+
+all.equal(exp1$surv[match(futime, xtime)], cumprod(con))
+cumprod(con)
+
+#
+# Test out expected survival, when the parent pop is another Cox model
+#
+test1 <- data.frame(time=  c(4, 3,1,1,2,2,3),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0))
+
+fit <- coxph(Surv(time, status) ~x, test1, method='breslow')
+
+dummy <- data.frame(time=c(.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5),
+		    status=c(1,0,1,0,1,0,1,1,1), x=(-4:4)/2)
+
+efit <- survexp(time ~ ratetable(x=x), dummy, ratetable=fit, cohort=F)
+
+#
+# Now, compare to the true answer, which is known to us
+#
+ss <- exp(fit$coef)
+haz <- c( 1/(3*ss+3), 2/(ss+3), 1) #truth at time 0,1,2,4+
+chaz <- cumsum(c(0,haz))
+chaz2 <- chaz[c(1,2,2,3,3,3,3,4,4)]
+
+risk <- exp(fit$coef*dummy$x)
+efit2 <- exp(-risk*chaz2)
+
+all.equal(as.vector(efit), as.vector(efit2))  #ignore mismatched name attrib
+
+#
+# Now test the direct-adjusted curve (Ederer)
+#
+efit <- survexp( ~ ratetable(x=x), dummy, ratetable=fit, se=F)
+direct <- survfit(fit, newdata=dummy, censor=FALSE)$surv
+
+chaz <- chaz[-1]                  #drop time 0
+d2 <- exp(outer(-chaz, risk))
+all.equal(as.vector(direct), as.vector(d2))   #this tests survfit
+
+all.equal(as.vector(efit$surv), as.vector(apply(direct,1,mean)))  #direct
+
+# Check out the "times" arg of survexp
+efit2 <- survexp( ~ ratetable(x=x), dummy, ratetable=fit, se=F,
+                  times=c(.5, 2, 3.5,6))
+aeq(efit2$surv, c(1, efit$surv[c(2,2,3)]))
+
+#
+# Now test out the Hakulinen method (Bonsel's method)
+#  By construction, we have a large correlation between x and censoring
+#
+# In theory, hak1 and hak2 would be the same.  In practice, like a KM and
+#   F-H, they differ when n is small.
+#
+efit <- survexp( time ~ ratetable(x=x), dummy, ratetable=fit, se=F)
+
+surv  <- wt <- rep(1,9)
+tt <- c(1,2,4)
+hak1 <- hak2 <- NULL
+for (i in 1:3) {
+    wt[dummy$time < tt[i]]  <- 0
+    hak1 <- c(hak1,  exp(-sum(haz[i]*risk*surv*wt)/sum(surv*wt)))
+    hak2 <- c(hak2,  sum(exp(-haz[i]*risk)*surv*wt)/sum(surv*wt))
+    surv <- surv * exp(-haz[i]*risk)
+    }
+
+all.equal(as.vector(efit$surv), as.vector(cumprod(hak1)))
+
+#
+#  Now do the conditional estimate
+#
+efit <- survexp( time ~ ratetable(x=x), dummy, ratetable=fit, se=F,
+			conditional=T)
+wt <- rep(1,9)
+cond <- NULL
+for (i in 1:3) {
+    wt[dummy$time < tt[i]]  <- 0
+    cond <- c(cond,  exp(-sum(haz[i]*risk*wt)/sum(wt)))
+    }
+
+all.equal(as.vector(efit$surv), as.vector(cumprod(cond)))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testreg.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testreg.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/testreg.Rout.save	(revision 2476)
@@ -0,0 +1,301 @@
+
+R version 2.14.0 Under development (unstable) (2011-04-10 r55401)
+Copyright (C) 2011 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> options(na.action=na.exclude)  #preserve length of missings
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Run a test that can be verified using other packages (we used SAS)
+> #
+> test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0))
+> fit1w <- survreg(Surv(time, status) ~x, test1, dist='weibull')
+> fit1w
+Call:
+survreg(formula = Surv(time, status) ~ x, data = test1, dist = "weibull")
+
+Coefficients:
+(Intercept)           x 
+  2.2373335  -0.7442249 
+
+Scale= 0.4563163 
+
+Loglik(model)= -10.3   Loglik(intercept only)= -11.4
+	Chisq= 2.22 on 1 degrees of freedom, p= 0.14 
+n=6 (1 observation deleted due to missingness)
+> summary(fit1w)
+
+Call:
+survreg(formula = Surv(time, status) ~ x, data = test1, dist = "weibull")
+             Value Std. Error     z        p
+(Intercept)  2.237      0.330  6.78 1.18e-11
+x           -0.744      0.486 -1.53 1.26e-01
+Log(scale)  -0.785      0.433 -1.81 6.99e-02
+
+Scale= 0.456 
+
+Weibull distribution
+Loglik(model)= -10.3   Loglik(intercept only)= -11.4
+	Chisq= 2.22 on 1 degrees of freedom, p= 0.14 
+Number of Newton-Raphson Iterations: 8 
+n=6 (1 observation deleted due to missingness)
+
+> 
+> fit1e <- survreg(Surv(time, status) ~x, test1, dist='exponential')
+> fit1e
+Call:
+survreg(formula = Surv(time, status) ~ x, data = test1, dist = "exponential")
+
+Coefficients:
+(Intercept)           x 
+   2.442347   -1.056053 
+
+Scale fixed at 1 
+
+Loglik(model)= -11.7   Loglik(intercept only)= -12.2
+	Chisq= 1.07 on 1 degrees of freedom, p= 0.3 
+n=6 (1 observation deleted due to missingness)
+> summary(fit1e)
+
+Call:
+survreg(formula = Surv(time, status) ~ x, data = test1, dist = "exponential")
+            Value Std. Error     z        p
+(Intercept)  2.44      0.707  3.45 0.000552
+x           -1.06      1.000 -1.06 0.290944
+
+Scale fixed at 1 
+
+Exponential distribution
+Loglik(model)= -11.7   Loglik(intercept only)= -12.2
+	Chisq= 1.07 on 1 degrees of freedom, p= 0.3 
+Number of Newton-Raphson Iterations: 4 
+n=6 (1 observation deleted due to missingness)
+
+> 
+> fit1l <- survreg(Surv(time, status) ~x, test1, dist='loglogistic')
+> fit1l
+Call:
+survreg(formula = Surv(time, status) ~ x, data = test1, dist = "loglogistic")
+
+Coefficients:
+(Intercept)           x 
+   2.177208   -1.195672 
+
+Scale= 0.3847582 
+
+Loglik(model)= -10.7   Loglik(intercept only)= -12
+	Chisq= 2.7 on 1 degrees of freedom, p= 0.1 
+n=6 (1 observation deleted due to missingness)
+> summary(fit1l)
+
+Call:
+survreg(formula = Surv(time, status) ~ x, data = test1, dist = "loglogistic")
+             Value Std. Error     z        p
+(Intercept)  2.177      0.365  5.96 2.48e-09
+x           -1.196      0.711 -1.68 9.25e-02
+Log(scale)  -0.955      0.396 -2.41 1.58e-02
+
+Scale= 0.385 
+
+Log logistic distribution
+Loglik(model)= -10.7   Loglik(intercept only)= -12
+	Chisq= 2.7 on 1 degrees of freedom, p= 0.1 
+Number of Newton-Raphson Iterations: 4 
+n=6 (1 observation deleted due to missingness)
+
+> 
+> fit1g <- survreg(Surv(time, status) ~x, test1, dist='lognormal')
+> summary(fit1g)
+
+Call:
+survreg(formula = Surv(time, status) ~ x, data = test1, dist = "lognormal")
+             Value Std. Error     z        p
+(Intercept)  2.210      0.404  5.48 4.35e-08
+x           -1.268      0.585 -2.17 3.03e-02
+Log(scale)  -0.446      0.342 -1.30 1.93e-01
+
+Scale= 0.64 
+
+Log Normal distribution
+Loglik(model)= -10.5   Loglik(intercept only)= -12.1
+	Chisq= 3.26 on 1 degrees of freedom, p= 0.071 
+Number of Newton-Raphson Iterations: 5 
+n=6 (1 observation deleted due to missingness)
+
+> #
+> #  Do a test with the ovarian data
+> #
+> fitfw <- survreg(Surv(futime, fustat) ~ age + ecog.ps, ovarian,
++ 	dist='weibull')
+> fitfw
+Call:
+survreg(formula = Surv(futime, fustat) ~ age + ecog.ps, data = ovarian, 
+    dist = "weibull")
+
+Coefficients:
+(Intercept)         age     ecog.ps 
+12.28496723 -0.09702669  0.09977342 
+
+Scale= 0.6032744 
+
+Loglik(model)= -90   Loglik(intercept only)= -98
+	Chisq= 15.98 on 2 degrees of freedom, p= 0.00034 
+n= 26 
+> 
+> fitfl <- survreg(Surv(futime, fustat) ~ age + ecog.ps, ovarian,
++ 	dist='loglogistic')
+> fitfl
+Call:
+survreg(formula = Surv(futime, fustat) ~ age + ecog.ps, data = ovarian, 
+    dist = "loglogistic")
+
+Coefficients:
+(Intercept)         age     ecog.ps 
+11.50853384 -0.08876814  0.09033348 
+
+Scale= 0.4464064 
+
+Loglik(model)= -89.5   Loglik(intercept only)= -97.4
+	Chisq= 15.67 on 2 degrees of freedom, p= 4e-04 
+n= 26 
+> 
+> #test out interval censoring, using some dummy time values
+> 
+> idat <- read.table('data.interval', skip=3, header=T, sep=',')
+> flsurv<- Surv(idat$ltime, idat$rtime, type='interval2')
+> 
+> fitfw2 <- survreg(flsurv ~ age + ecog.ps, idat, dist='weibull')
+> summary(fitfw2)
+
+Call:
+survreg(formula = flsurv ~ age + ecog.ps, data = idat, dist = "weibull")
+              Value Std. Error      z        p
+(Intercept) 12.3886     1.6027  7.730 1.08e-14
+age         -0.0986     0.0254 -3.885 1.02e-04
+ecog.ps      0.0971     0.3776  0.257 7.97e-01
+Log(scale)  -0.4773     0.2583 -1.848 6.47e-02
+
+Scale= 0.62 
+
+Weibull distribution
+Loglik(model)= -56.2   Loglik(intercept only)= -64
+	Chisq= 15.57 on 2 degrees of freedom, p= 0.00042 
+Number of Newton-Raphson Iterations: 6 
+n= 26 
+
+> 
+> fitfl2 <- survreg(flsurv ~ age + ecog.ps, idat, dist='loglogistic')
+> summary(fitfl2)
+
+Call:
+survreg(formula = flsurv ~ age + ecog.ps, data = idat, dist = "loglogistic")
+              Value Std. Error      z        p
+(Intercept) 11.5268      1.528  7.542 4.62e-14
+age         -0.0888      0.024 -3.703 2.13e-04
+ecog.ps      0.0818      0.364  0.225 8.22e-01
+Log(scale)  -0.8023      0.271 -2.965 3.03e-03
+
+Scale= 0.448 
+
+Log logistic distribution
+Loglik(model)= -55.9   Loglik(intercept only)= -63.5
+	Chisq= 15.35 on 2 degrees of freedom, p= 0.00046 
+Number of Newton-Raphson Iterations: 5 
+n= 26 
+
+> 
+> fitfg2 <- survreg(flsurv ~ age + ecog.ps, idat, dist='lognormal')
+> summary(fitfg2)
+
+Call:
+survreg(formula = flsurv ~ age + ecog.ps, data = idat, dist = "lognormal")
+              Value Std. Error      z        p
+(Intercept) 11.1548     1.4347  7.775 7.56e-15
+age         -0.0855     0.0238 -3.598 3.20e-04
+ecog.ps      0.2066     0.3828  0.540 5.89e-01
+Log(scale)  -0.2297     0.2508 -0.916 3.60e-01
+
+Scale= 0.795 
+
+Log Normal distribution
+Loglik(model)= -56   Loglik(intercept only)= -63.5
+	Chisq= 14.94 on 2 degrees of freedom, p= 0.00057 
+Number of Newton-Raphson Iterations: 5 
+n= 26 
+
+> 
+> logt <- c(survreg.distributions$t, 
++           survreg.distributions$weibull[c('trans', 'itrans', 'dtrans')])
+> logt$name <- 'log(t)'
+> 
+> fitft2 <- survreg(Surv(ltime, rtime, type='interval2') ~ age + ecog.ps,
++             idat, dist=logt, parm=100)
+> summary(fitft2)  #should be quite close to fitfg2
+
+Call:
+survreg(formula = Surv(ltime, rtime, type = "interval2") ~ age + 
+    ecog.ps, data = idat, dist = logt, parms = 100)
+              Value Std. Error      z        p
+(Intercept) 11.1856     1.4419  7.758 8.66e-15
+age         -0.0858     0.0238 -3.609 3.07e-04
+ecog.ps      0.1978     0.3814  0.519 6.04e-01
+Log(scale)  -0.2394     0.2522 -0.949 3.43e-01
+
+Scale= 0.787 
+
+log(t) distribution: parmameters= 100
+Loglik(model)= -56   Loglik(intercept only)= -63.5
+	Chisq= 14.97 on 2 degrees of freedom, p= 0.00056 
+Number of Newton-Raphson Iterations: 5 
+n= 26 
+
+> 
+> #
+> # Check out the survreg density and probability functions
+> #
+> 
+> # Gaussian
+> x <- -10:10
+> p <- seq(.1, .95, length=25)
+> all.equal(dsurvreg(x, 1, 5, 'gaussian'), dnorm(x, 1, 5))
+[1] TRUE
+> all.equal(psurvreg(x, 1, 5, 'gaussian'), pnorm(x, 1, 5))
+[1] TRUE
+> all.equal(qsurvreg(p, 1, 5, 'gaussian'), qnorm(p, 1, 5))
+[1] TRUE
+> 
+> # Lognormal
+> x <- 1:10
+> all.equal(dsurvreg(x, 1, 5, 'lognormal'), dlnorm(x, 1, 5))
+[1] TRUE
+> all.equal(psurvreg(x, 1, 5, 'lognormal'), plnorm(x, 1, 5))
+[1] TRUE
+> all.equal(qsurvreg(p, 1, 5, 'lognormal'), qlnorm(p, 1, 5))
+[1] TRUE
+> 
+> # Weibull
+> lambda <- exp(-2)
+> rho    <- 1/3
+> temp <- (lambda*x)^rho
+> all.equal(psurvreg(x, 2, 3), 1- exp(-temp))
+[1] TRUE
+> all.equal(dsurvreg(x, 2, 3), lambda*rho*(lambda*x)^(rho-1)*exp(-temp))
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/jasa.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/jasa.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/jasa.Rout.save	(revision 2476)
@@ -0,0 +1,286 @@
+
+R Under development (unstable) (2016-01-29 r70039) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> expect <- survexp(futime ~ ratetable(age=(accept.dt - birth.dt), sex=1,
++ 		year=accept.dt, race='white'), jasa, cohort=F, 
++                   ratetable=survexp.usr)
+> 
+> survdiff(Surv(jasa$futime, jasa$fustat) ~ offset(expect))
+Call:
+survdiff(formula = Surv(jasa$futime, jasa$fustat) ~ offset(expect))
+
+Observed Expected        Z        p 
+  75.000    0.587  -97.119    0.000 
+> # Now fit the 6 models found in Kalbfleisch and Prentice, p139
+> sfit.1 <- coxph(Surv(start, stop, event)~ (age + surgery)*transplant,
++ 				jasa1, method='breslow')
+> sfit.2 <- coxph(Surv(start, stop, event)~ year*transplant,
++ 				jasa1, method='breslow')
+> sfit.3 <- coxph(Surv(start, stop, event)~ (age + year)*transplant,
++ 				jasa1, method='breslow')
+> sfit.4 <- coxph(Surv(start, stop, event)~ (year +surgery) *transplant,
++ 				jasa1, method='breslow')
+> sfit.5 <- coxph(Surv(start, stop, event)~ (age + surgery)*transplant + year ,
++ 				jasa1, method='breslow')
+> sfit.6 <- coxph(Surv(start, stop, event)~ age*transplant + surgery + year,
++ 				jasa1, method='breslow')
+> 
+> summary(sfit.1)
+Call:
+coxph(formula = Surv(start, stop, event) ~ (age + surgery) * 
+    transplant, data = jasa1, method = "breslow")
+
+  n= 170, number of events= 75 
+
+                       coef exp(coef) se(coef)      z Pr(>|z|)
+age                 0.01386   1.01395  0.01813  0.765    0.445
+surgery            -0.54652   0.57896  0.61091 -0.895    0.371
+transplant          0.11572   1.12268  0.32729  0.354    0.724
+age:transplant      0.03473   1.03534  0.02725  1.274    0.202
+surgery:transplant -0.29037   0.74799  0.75819 -0.383    0.702
+
+                   exp(coef) exp(-coef) lower .95 upper .95
+age                    1.014     0.9862    0.9786     1.051
+surgery                0.579     1.7272    0.1748     1.917
+transplant             1.123     0.8907    0.5911     2.132
+age:transplant         1.035     0.9659    0.9815     1.092
+surgery:transplant     0.748     1.3369    0.1692     3.306
+
+Concordance= 0.595  (se = 0.037 )
+Rsquare= 0.071   (max possible= 0.97 )
+Likelihood ratio test= 12.45  on 5 df,   p=0.02915
+Wald test            = 11.62  on 5 df,   p=0.04031
+Score (logrank) test = 12.02  on 5 df,   p=0.03457
+
+> sfit.2
+Call:
+coxph(formula = Surv(start, stop, event) ~ year * transplant, 
+    data = jasa1, method = "breslow")
+
+                  coef exp(coef) se(coef)     z     p
+year            -0.265     0.767    0.105 -2.52 0.012
+transplant      -0.287     0.750    0.514 -0.56 0.576
+year:transplant  0.137     1.147    0.141  0.97 0.331
+
+Likelihood ratio test=8.61  on 3 df, p=0.0349
+n= 170, number of events= 75 
+> summary(sfit.3)
+Call:
+coxph(formula = Surv(start, stop, event) ~ (age + year) * transplant, 
+    data = jasa1, method = "breslow")
+
+  n= 170, number of events= 75 
+
+                    coef exp(coef) se(coef)      z Pr(>|z|)   
+age              0.01558   1.01571  0.01734  0.899  0.36887   
+year            -0.27413   0.76023  0.10588 -2.589  0.00962 **
+transplant      -0.59388   0.55218  0.54222 -1.095  0.27339   
+age:transplant   0.03380   1.03438  0.02795  1.209  0.22653   
+year:transplant  0.20228   1.22419  0.14247  1.420  0.15566   
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+                exp(coef) exp(-coef) lower .95 upper .95
+age                1.0157     0.9845    0.9818    1.0508
+year               0.7602     1.3154    0.6178    0.9356
+transplant         0.5522     1.8110    0.1908    1.5981
+age:transplant     1.0344     0.9668    0.9792    1.0926
+year:transplant    1.2242     0.8169    0.9259    1.6185
+
+Concordance= 0.63  (se = 0.037 )
+Rsquare= 0.084   (max possible= 0.97 )
+Likelihood ratio test= 14.85  on 5 df,   p=0.01102
+Wald test            = 13.77  on 5 df,   p=0.01716
+Score (logrank) test = 14.06  on 5 df,   p=0.01525
+
+> sfit.4
+Call:
+coxph(formula = Surv(start, stop, event) ~ (year + surgery) * 
+    transplant, data = jasa1, method = "breslow")
+
+                     coef exp(coef) se(coef)     z     p
+year               -0.254     0.776    0.108 -2.36 0.018
+surgery            -0.237     0.789    0.628 -0.38 0.707
+transplant         -0.297     0.743    0.505 -0.59 0.557
+year:transplant     0.165     1.180    0.142  1.17 0.243
+surgery:transplant -0.550     0.577    0.776 -0.71 0.479
+
+Likelihood ratio test=12.4  on 5 df, p=0.0302
+n= 170, number of events= 75 
+> sfit.5
+Call:
+coxph(formula = Surv(start, stop, event) ~ (age + surgery) * 
+    transplant + year, data = jasa1, method = "breslow")
+
+                      coef exp(coef) se(coef)     z     p
+age                 0.0150    1.0152   0.0176  0.85 0.393
+surgery            -0.4202    0.6569   0.6156 -0.68 0.495
+transplant          0.0741    1.0769   0.3311  0.22 0.823
+year               -0.1363    0.8726   0.0710 -1.92 0.055
+age:transplant      0.0269    1.0273   0.0271  0.99 0.321
+surgery:transplant -0.2966    0.7434   0.7580 -0.39 0.696
+
+Likelihood ratio test=16.2  on 6 df, p=0.0127
+n= 170, number of events= 75 
+> sfit.6
+Call:
+coxph(formula = Surv(start, stop, event) ~ age * transplant + 
+    surgery + year, data = jasa1, method = "breslow")
+
+                  coef exp(coef) se(coef)     z     p
+age             0.0153    1.0154   0.0175  0.87 0.383
+transplant      0.0446    1.0456   0.3217  0.14 0.890
+surgery        -0.6211    0.5373   0.3679 -1.69 0.091
+year           -0.1361    0.8728   0.0709 -1.92 0.055
+age:transplant  0.0270    1.0274   0.0271  1.00 0.319
+
+Likelihood ratio test=16.1  on 5 df, p=0.00669
+n= 170, number of events= 75 
+> 
+> # Survival curve for an "average" subject,
+> #  done once as overall, once via individual method
+> surv1 <- survfit(sfit.1, newdata=list(age=-2, surgery=0, transplant=0))
+> newdata <- data.frame(start=c(0,50,100), stop=c(50,100, max(jasa1$stop)), 
++                    event=c(1,1,1), age=rep(-2,3), surgery=rep(0,3),
++                    transplant=rep(0,3))
+> surv2 <- survfit(sfit.1, newdata, individual=T)
+> # Have to use unclass to avoid [.survfit trying to pick curves,
+> #  remove the final element "call" because it won't match
+> all.equal(unclass(surv1)[-length(surv1)],
++           unclass(surv2)[-length(surv2)])
+[1] TRUE
+> 
+> 
+> # Survival curve for a subject of age 50, with prior surgery, tx at 6 months
+> #  Remember that 'age' in jasa 1 was centered at 48
+> data <- data.frame(start=c(0,183), stop=c(183,3*365), event=c(1,1),
++ 		   age=c(2,2),  surgery=c(1,1), transplant=c(0,1))
+> summary(survfit(sfit.1, data, individual=T))
+Call: survfit(formula = sfit.1, newdata = data, individual = T)
+
+   time n.risk n.event survival std.err lower 95% CI upper 95% CI
+    0.5    103       1    0.994 0.00722        0.980        1.000
+    1.0    102       3    0.975 0.01860        0.939        1.000
+    2.0     99       3    0.956 0.02914        0.900        1.000
+    4.0     96       2    0.943 0.03605        0.875        1.000
+    5.0     94       2    0.930 0.04286        0.849        1.000
+    7.0     92       1    0.923 0.04623        0.837        1.000
+    8.0     91       1    0.917 0.04959        0.824        1.000
+   11.0     89       1    0.910 0.05294        0.812        1.000
+   15.0     88       3    0.890 0.06278        0.775        1.000
+   16.0     85       1    0.883 0.06608        0.763        1.000
+   17.0     84       1    0.877 0.06928        0.751        1.000
+   20.0     83       2    0.864 0.07538        0.728        1.000
+   27.0     81       1    0.857 0.07849        0.716        1.000
+   29.0     80       1    0.850 0.08160        0.705        1.000
+   31.0     78       1    0.844 0.08473        0.693        1.000
+   34.0     77       1    0.837 0.08786        0.681        1.000
+   35.0     76       1    0.830 0.09098        0.669        1.000
+   36.0     75       1    0.823 0.09412        0.658        1.000
+   38.0     74       1    0.816 0.09727        0.646        1.000
+   39.0     72       2    0.802 0.10349        0.623        1.000
+   42.0     70       1    0.795 0.10664        0.611        1.000
+   44.0     69       1    0.788 0.10982        0.600        1.000
+   49.0     68       1    0.781 0.11300        0.588        1.000
+   50.0     67       1    0.774 0.11614        0.577        1.000
+   52.0     66       1    0.767 0.11925        0.565        1.000
+   57.0     65       1    0.760 0.12238        0.554        1.000
+   60.0     64       1    0.752 0.12552        0.542        1.000
+   65.0     63       1    0.745 0.12866        0.531        1.000
+   67.0     62       2    0.730 0.13494        0.508        1.000
+   68.0     60       1    0.722 0.13809        0.497        1.000
+   71.0     59       2    0.707 0.14420        0.474        1.000
+   76.0     57       1    0.699 0.14729        0.463        1.000
+   77.0     56       1    0.691 0.15043        0.451        1.000
+   79.0     55       1    0.683 0.15362        0.439        1.000
+   80.0     54       1    0.674 0.15680        0.428        1.000
+   84.0     53       1    0.666 0.16005        0.416        1.000
+   89.0     52       1    0.657 0.16326        0.404        1.000
+   95.0     51       1    0.648 0.16648        0.392        1.000
+   99.0     50       1    0.639 0.16972        0.380        1.000
+  101.0     49       1    0.630 0.17293        0.368        1.000
+  109.0     47       1    0.621 0.17611        0.356        1.000
+  148.0     45       1    0.611 0.17927        0.344        1.000
+  152.0     44       1    0.601 0.18236        0.332        1.000
+  164.0     43       1    0.592 0.18551        0.320        1.000
+  185.0     41       1    0.583 0.12737        0.380        0.894
+  187.0     40       1    0.574 0.12889        0.370        0.891
+  206.0     39       1    0.565 0.13036        0.359        0.888
+  218.0     38       1    0.556 0.13180        0.349        0.885
+  262.0     37       1    0.546 0.13320        0.339        0.881
+  284.0     35       2    0.527 0.13585        0.318        0.874
+  307.0     33       1    0.517 0.13707        0.308        0.869
+  333.0     32       1    0.507 0.13823        0.297        0.865
+  339.0     31       1    0.497 0.13930        0.287        0.861
+  342.0     29       1    0.486 0.14029        0.276        0.856
+  583.0     21       1    0.471 0.14187        0.261        0.850
+  674.0     17       1    0.452 0.14361        0.243        0.843
+  732.0     16       1    0.433 0.14506        0.225        0.835
+  851.0     14       1    0.410 0.14622        0.204        0.825
+  979.0     11       1    0.383 0.14698        0.180        0.813
+  995.0     10       1    0.356 0.14735        0.158        0.801
+ 1031.0      9       1    0.330 0.14743        0.137        0.792
+> 
+> # These should all give the same answer
+> # When there are offsets, the default curve is always for someone with
+> #  the mean offset.
+> j.age <- jasa$age -48
+> fit1 <- coxph(Surv(futime, fustat) ~ j.age, data=jasa)
+> fit2 <- coxph(Surv(futime, fustat) ~ j.age, jasa, init=fit1$coef, iter=0)
+> fit3 <- coxph(Surv(start, stop, event) ~ age, jasa1)
+> fit4 <- coxph(Surv(start, stop, event) ~ offset(age*fit1$coef), jasa1)
+> 
+> s1 <- survfit(fit1, list(j.age=fit3$means), censor=FALSE)
+> s2 <- survfit(fit2, list(j.age=fit3$means), censor=FALSE)
+> s3 <- survfit(fit3, censor=FALSE)
+> s4 <- survfit(fit4, censor=FALSE)
+> 
+> all.equal(s1$surv, s2$surv)
+[1] TRUE
+> all.equal(s1$surv, s3$surv)
+[1] TRUE
+> all.equal(s1$surv, s4$surv)
+[1] TRUE
+> 
+> # Still the same answer, fit multiple strata at once
+> #  Strata 1 has independent coefs of strata 2, so putting in
+> #    the other data should not affect it
+> ll <- nrow(jasa1)
+> ss <- rep(0:1, c(ll,ll))
+> tdata <- with(jasa1, data.frame(start=rep(start,2), stop=rep(stop,2),
++ 		    event=rep(event,2), ss=ss, age=rep(age,2),
++ 		    age2 = (rep(age,2))^2 * ss))
+> fit <- coxph(Surv(start, stop, event) ~ age*strata(ss) + age2, tdata)
+> #  Above replaced these 2 lines, which kill Splus5 as of 8/98
+> #    Something with data frames, I expect.
+> #fit <- coxph(Surv(rep(start,2), rep(stop,2), rep(event,2)) ~
+> #			rep(age,2)*strata(ss) + I(rep(age,2)^2*ss) )
+> all.equal(fit$coef[1], fit3$coef)
+[1] TRUE
+> s5 <- survfit(fit, data.frame(age=fit3$means, age2=0, ss=0), censor=FALSE)
+> all.equal(s5$surv[1:(s5$strata[1])],  s3$surv)
+[1] TRUE
+> 
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.344   0.040   0.379 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_strata.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_strata.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_strata.Rout.save	(revision 2476)
@@ -0,0 +1,148 @@
+
+R version 2.11.1 (2010-05-31)
+Copyright (C) 2010 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Test out the strata capabilities
+> #
+> tol <- survreg.control()$rel.tolerance
+> aeq <- function(x,y,...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> # intercept only models
+> fit1 <- survreg(Surv(time, status) ~ strata(sex), lung)
+> fit2 <- survreg(Surv(time, status) ~ strata(sex) + sex, lung)
+> fit3a<- survreg(Surv(time,status) ~1, lung, subset=(sex==1))
+> fit3b<- survreg(Surv(time,status) ~1, lung, subset=(sex==2))
+> 
+> fit1
+Call:
+survreg(formula = Surv(time, status) ~ strata(sex), data = lung)
+
+Coefficients:
+(Intercept) 
+   6.062171 
+
+Scale:
+    sex=1     sex=2 
+0.8167551 0.6533036 
+
+Loglik(model)= -1152.5   Loglik(intercept only)= -1152.5
+n= 228 
+> fit2
+Call:
+survreg(formula = Surv(time, status) ~ strata(sex) + sex, data = lung)
+
+Coefficients:
+(Intercept)         sex 
+   5.494409    0.380171 
+
+Scale:
+    sex=1     sex=2 
+0.8084294 0.6355816 
+
+Loglik(model)= -1147.1   Loglik(intercept only)= -1152.5
+	Chisq= 10.9 on 1 degrees of freedom, p= 0.00096 
+n= 228 
+> aeq(fit2$scale, c(fit3a$scale, fit3b$scale), tolerance=tol)
+[1] TRUE
+> aeq(fit2$loglik[2], (fit3a$loglik + fit3b$loglik)[2], tolerance=tol)
+[1] TRUE
+> aeq(fit2$coef[1] + 1:2*fit2$coef[2], c(fit3a$coef, fit3b$coef), tolerance=tol)
+[1] TRUE
+> 
+> #penalized models
+> fit1 <- survreg(Surv(time, status) ~ pspline(age, theta=.92)+
++                 strata(sex), lung)
+> fit2 <- survreg(Surv(time, status) ~  pspline(age, theta=.92)+ 
++ 		strata(sex) + sex, lung)
+> fit1
+Call:
+survreg(formula = Surv(time, status) ~ pspline(age, theta = 0.92) + 
+    strata(sex), data = lung)
+
+                          coef    se(coef) se2    Chisq DF   p      
+(Intercept)                6.9036 0.8469   0.5688 66.45 1.00 3.3e-16
+pspline(age, theta = 0.92 -0.0124 0.0067   0.0067  3.45 1.00 6.3e-02
+pspline(age, theta = 0.92                          2.53 2.65 4.0e-01
+
+Scale:
+sex=1 sex=2 
+0.807 0.654 
+
+Iterations: 1 outer, 4 Newton-Raphson
+     Theta= 0.92 
+Degrees of freedom for terms= 0.5 3.6 2.0 
+Likelihood ratio test=6.54  on 3.1 df, p=0.0937  n= 228 
+> fit2
+Call:
+survreg(formula = Surv(time, status) ~ pspline(age, theta = 0.92) + 
+    strata(sex) + sex, data = lung)
+
+                          coef    se(coef) se2     Chisq DF   p      
+(Intercept)                6.3729 0.84471  0.59118 56.92 1.00 4.5e-14
+pspline(age, theta = 0.92 -0.0111 0.00666  0.00666  2.77 1.00 9.6e-02
+pspline(age, theta = 0.92                           2.46 2.68 4.2e-01
+sex                        0.3686 0.11711  0.11685  9.91 1.00 1.6e-03
+
+Scale:
+sex=1 sex=2 
+0.800 0.636 
+
+Iterations: 1 outer, 5 Newton-Raphson
+     Theta= 0.92 
+Degrees of freedom for terms= 0.5 3.7 1.0 2.0 
+Likelihood ratio test=16.8  on 4.2 df, p=0.00245  n= 228 
+> 
+> age1 <- ifelse(lung$sex==1, lung$age, mean(lung$age))
+> age2 <- ifelse(lung$sex==2, lung$age, mean(lung$age))
+> fit3 <- survreg(Surv(time,status) ~ pspline(age1, theta=.92) +
++ 		pspline(age2, theta=.95) + sex + strata(sex), lung)
+> fit3a<- survreg(Surv(time,status) ~pspline(age, theta=.92), lung, 
++ 		    subset=(sex==1))
+> fit3b<- survreg(Surv(time,status) ~pspline(age, theta=.95), lung, 
++ 		     subset=(sex==2))
+> fit3b<- survreg(Surv(time,status) ~pspline(age, theta=.95),
++                 lung[lung$sex==2,], x=T) 
+> #
+> # The above line is tricky, and it took me a long time to realize
+> #  it's necessity.  The range of age1 = range(age) = 39-82.  That for
+> #  age2 = range of females = 41-77.  The basis functions for pspline are
+> #  based on age.  If I used data=lung, subset=(sex==2) in fit3b (earlier
+> #  form of the test, the pspline function is called before the subset
+> #  occurs, and fit3b has a different basis for the second spline than
+> #  fit3 does; leading to failure of the all.equal tests below.  A theta
+> #  of .95 on one basis is not exactly the same as a theta of .95 on the
+> #  other. Coefficients were within 1%, but not the same.  
+> 
+> aeq(fit3$scale, c(fit3a$scale, fit3b$scale))
+[1] TRUE
+> aeq(fit3$loglik[2], (fit3a$loglik + fit3b$loglik)[2])
+[1] TRUE
+> pred <- predict(fit3)
+> aeq(pred[lung$sex==1] , predict(fit3a))
+[1] TRUE
+> aeq(pred[lung$sex==2],  predict(fit3b))
+[1] TRUE
+> 
+> 
+> 
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survreg2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survreg2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/survreg2.Rout.save	(revision 2476)
@@ -0,0 +1,90 @@
+
+R Under development (unstable) (2014-05-11 r65563) -- "Unsuffered Consequences"
+Copyright (C) 2014 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+Loading required package: splines
+> options(na.action=na.exclude, contrasts=c('contr.treatment', 'contr.poly'))
+> 
+> # Verify stratified fits in a simple way, but combining two data
+> #  sets and doing a single fit
+> #
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> 
+> tdata <- data.frame(time=c(lung$time, ovarian$futime),
++                     status=c(lung$status-1, ovarian$fustat),
++                     group =rep(0:1, c(nrow(lung), nrow(ovarian))))
+> fit1 <- survreg(Surv(time, status) ~ 1, lung)
+> fit2 <- survreg(Surv(futime, fustat) ~ 1, ovarian)
+> fit3 <- survreg(Surv(time, status) ~ group + strata(group), tdata)
+> 
+> aeq(c(fit1$coef, fit2$coef-fit1$coef), fit3$coef)
+[1] TRUE
+> aeq(c(fit1$scale, fit2$scale), fit3$scale)
+[1] TRUE
+> aeq(fit1$loglik[2] + fit2$loglik[2], fit3$loglik[2])
+[1] TRUE
+> 
+> #
+> # Test out the cluster term in survreg, which means first a test
+> #  of the dfbeta residuals
+> # I also am checking that missing values propogate
+> test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0))
+> fit1 <- survreg(Surv(time, status) ~ x + cluster(1:7), test1)
+> 
+> db1 <- resid(fit1, 'dfbeta')
+> ijack <-db1
+> eps <- 1e-7
+> for (i in 1:7) {
++     temp <- rep(1.0,7)
++     temp[i] <- 1-eps
++     tfit <- survreg(Surv(time, status) ~ x, test1, weight=temp)
++     ijack[i,] <- c(tfit$coef, log(tfit$scale)) 
++     }
+> ijack[2,] <- NA  # stick the NA back in
+> ijack <- (rep(c(fit1$coef, log(fit1$scale)), each=nrow(db1)) - ijack)/eps
+> all.equal(db1, ijack, tolerance=eps)
+[1] TRUE
+> all.equal(t(db1[-2,])%*% db1[-2,], fit1$var)
+[1] TRUE
+> 
+> # This is a harder test since there are multiple strata and multiple 
+> #  obs/subject.  Use of enum + strata(enum) in essenence fits a different
+> #  baseline Weibull to each strata, with common coefficients for rx, size, and
+> #  number.
+> fit1 <- survreg(Surv(stop-start, event) ~  rx + size + number + 
++                 factor(enum) + strata(enum), data=bladder2)
+> 
+> db1 <- resid(fit1, type='dfbeta', collapse=bladder2$id)
+> ijack <- db1  # a matrix of the same size
+> for (i in 1:nrow(db1)) {
++     twt <- rep(1., nrow(bladder2))
++     twt[bladder2$id==i] <- 1-eps
++     tfit <- survreg(Surv(stop-start, event) ~ rx + size + number + 
++                     factor(enum) + strata(enum), data=bladder2, 
++                     weight=twt)
++     ijack[i,] <- c(coef(tfit), log(tfit$scale)) 
++     }
+> ijack <- (rep(c(fit1$coef, log(fit1$scale)), each=nrow(db1)) - ijack)/eps
+> all.equal(db1, ijack, tolerance=eps*2)
+[1] TRUE
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.732   0.028   0.759 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_simple.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_simple.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_simple.Rout.save	(revision 2476)
@@ -0,0 +1,95 @@
+
+R Under development (unstable) (2016-03-23 r70368) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> #
+> # Test the logic of the penalized code by fitting some no-frailty models
+> #  (theta=0).  It should give exactly the same answers as 'ordinary' coxph.
+> #
+> test1 <- data.frame(time=  c(4, 3,1,1,2,2,3),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0))
+> 
+> test2 <- data.frame(start=c(1, 2, 5, 2, 1, 7, 3, 4, 8, 8),
++                     stop =c(2, 3, 6, 7, 8, 9, 9, 9,14,17),
++                     event=c(1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
++                     x    =c(1, 0, 0, 1, 0, 1, 1, 1, 0, 0) )
+> 
+> zz <- rep(0, nrow(test1))
+> tfit1 <- coxph(Surv(time,status) ~x, test1, eps=1e-7)
+> tfit2 <- coxph(Surv(time,status) ~x + frailty(zz, theta=0, sparse=T), test1)
+> tfit3 <- coxph(Surv(zz,time,status) ~x + frailty(zz, theta=0, sparse=T), test1)
+Warning message:
+In coxph(Surv(zz, time, status) ~ x + frailty(zz, theta = 0, sparse = T),  :
+  a variable appears on both the left and right sides of the formula
+> 
+> temp <- c('coefficients', 'var', 'loglik', 'linear.predictors',
++ 	  'means', 'n', 'concordance')
+> 
+> all.equal(tfit1[temp], tfit2[temp])
+[1] TRUE
+> all.equal(tfit2[temp], tfit3[temp])
+[1] TRUE
+> 
+> zz <- rep(0, nrow(test2))
+> tfit1 <- coxph(Surv(start, stop, event) ~x, test2, eps=1e-7)
+> tfit2 <- coxph(Surv(start, stop, event) ~ x + frailty(zz, theta=0, sparse=T),
++ 	       test2)
+> all.equal(tfit1[temp], tfit2[temp])
+[1] TRUE
+> 
+> 
+> #
+> # Repeat the above tests, but with a strata added
+> #  Because the data set is simply doubled, the loglik will double,
+> #   beta is the same, variance is halved.
+> #
+> test3 <- rbind(test1, test1)
+> test3$x2 <- rep(1:2, rep(nrow(test1),2))
+> zz <- rep(0, nrow(test3))
+> tfit1 <- coxph(Surv(time,status) ~x + strata(x2), test3, eps=1e-7)
+> tfit2 <- coxph(Surv(time,status) ~x + frailty(zz, theta=0, sparse=T)
++ 	       + strata(x2), test3)
+> tfit3 <- coxph(Surv(zz,time,status) ~x + frailty(zz, theta=0, sparse=T)
++ 	         + strata(x2), test3)
+Warning message:
+In coxph(Surv(zz, time, status) ~ x + frailty(zz, theta = 0, sparse = T) +  :
+  a variable appears on both the left and right sides of the formula
+> 
+> all.equal(tfit1[temp], tfit2[temp])
+[1] TRUE
+> all.equal(tfit2[temp], tfit3[temp])
+[1] TRUE
+> 
+> 
+> test4 <- rbind(test2, test2)
+> test4$x2 <- rep(1:2, rep(nrow(test2),2))
+> zz <- rep(0, nrow(test4))
+> tfit1 <- coxph(Surv(start, stop, event) ~x, test4, eps=1e-7)
+> tfit2 <- coxph(Surv(start, stop, event) ~ x + frailty(zz, theta=0, sparse=T),
++ 	       test4)
+> all.equal(tfit1[temp], tfit2[temp])
+[1] TRUE
+> 
+> rm(test3, test4, tfit1, tfit2, tfit3, temp, zz)
+> 
+> proc.time()
+   user  system elapsed 
+  0.308   0.024   0.325 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/turnbull.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/turnbull.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/turnbull.R	(revision 2476)
@@ -0,0 +1,156 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# The test data set from Turnbull, JASA 1974, 169-73.
+#
+#  status  0=right censored
+#          1=exact
+#          2=left censored
+#
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+
+turnbull <- data.frame( time  =c( 1,1,1, 2,2,2, 3,3,3, 4,4,4),
+			status=c( 1,0,2, 1,0,2, 1,0,2, 1,0,2),
+			  n   =c(12,3,2, 6,2,4, 2,0,2, 3,3,5))
+#
+# Compute the K-M for the Turnbull data
+#      via a slow EM calculation
+#
+
+emsurv <- function(time, status, wt, verbose=T) {
+    left.cen <- (status==2)
+    if (!any(left.cen)) stop("No left censored data!")
+    if (!any(status==1))stop("Must have some exact death times")
+
+    tempy <- Surv(time[!left.cen], status[!left.cen])
+    ww <- wt[!left.cen]
+    tempx <- factor(rep(1, sum(!left.cen)))
+    tfit <- survfit(tempy~tempx, weight=ww)
+    if (verbose)
+       cat("Iteration 0, survival=", format(round(tfit$surv[tfit$n.event>0],3)),
+		       "\n")
+
+    stimes <- tfit$time[tfit$n.event>0]
+    ltime <- time[left.cen]
+    lwt   <- wt[left.cen]
+    tempx <- factor(rep(1, length(stimes) + sum(!left.cen)))
+    tempy <- Surv(c(time[!left.cen], stimes),
+		  c(status[!left.cen], rep(1, length(stimes))))
+    for (iter in 1:4) {
+	wt2 <- stimes*0
+	ssurv <- tfit$surv[tfit$n.event>0]
+	sjump <- diff(c(1, ssurv))
+	for (j in 1:(length(ltime))) {
+	    k <- sum(ltime[j]>=stimes)   #index of the death time
+	    if (k==0)
+		stop("Left censored observation before the first death")
+	    wt2[1:k] <- wt2[1:k] + lwt[j]*sjump[1:k] /(ssurv[k]-1)
+	    }
+	tfit <- survfit(tempy~tempx, weight=c(ww, wt2))
+	if (verbose) {
+	   cat("Iteration", iter, "survival=",
+		 format(round(tfit$surv[tfit$n.event>0],3)),  "\n")
+	   cat("             weights=", format(round(wt2,3)), "\n")
+	   }
+	}
+    survfit(tempy ~ tempx, weights=c(ww, wt2))
+    }
+
+temp <-emsurv(turnbull$time, turnbull$status, turnbull$n)
+print(summary(temp))
+# First check, use the data from Turnbull, JASA 1974, 169-173.
+
+tdata <- data.frame(time  =c(1,1,1,2,2,2,3,3,3,4,4,4),
+		    status=rep(c(1,0,2),4),
+		    n     =c(12,3,2,6,2,4,2,0,2,3,3,5))
+
+tfit <- survfit(Surv(time, time, status, type='interval') ~1, tdata, weight=n)
+all.equal(round(tfit$surv,3), c(.538, .295, .210, .095))
+
+
+# Second check, compare to a reversed survival curve
+# This is not as simple a test as one might think, because left and right
+#  censored observations are not treated symmetrically by the routine:
+#  time <= y for left and time> y for right (this is to make the routine
+#  correct for the common situation of panel data).
+# To get equivalence, make the left censoreds happen just a little bit
+#  earlier.  The left-continuous/right-continuous shift is also a bother.
+#
+test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0))
+fit1 <- survfit(Surv(time, status) ~1, test1)
+temp <- ifelse(test1$status==0, 4.99,5) - test1$time
+fit2 <- survfit(Surv(temp, status, type='left') ~1, test1)
+
+all.equal(round(fit1$surv[1:2],5), round(1-fit2$surv[3:2],5))
+
+rm(tdata, tfit, fit1, temp, fit2)
+#
+# Create a data set similar to the one provided by Al Zinsmeister
+#  It is a hard test case for survfit.turnbull
+#
+time1 <- c(rep(0,100), rep(1,200), 100, 200, 210, 220,
+           rep(365,100), rep(366,5), 731:741)
+
+time2 <- c((1:100)*3,  10+1:100, rep(365:366, c(60,40)), NA, 500, NA, 450,
+           rep(730,90), rep(NA,10), c(528,571,691,730,731),
+           NA, 1095:1099, NA, 1400, 1200, 772, 1461)
+
+zfit <- survfit(Surv(time1, time2, type='interval2') ~1)
+
+#
+# There are 100 intervals of the form (0,x) where x is from 3 to 300,
+#  and 200 more of the form (1,x) where x is from 11 to 366.  These
+#  lead to a mass point in the interval (1,3), which is placed at 2.
+#  The starting estimate has far too little mass placed here, and it takes
+#  the EM a long time to realize that most of the weight for the first 300
+#  subjects goes here.  With acceleration, it takes 16 iterations, without
+#  it takes >40.  (On Al's orginal data, without accel still wasn't there after
+#  165 iters!)
+#
+# The next 4 obs give rise to potential jumps at 100.5, 200.5, 211.5, and
+#  221.  However, the final estimate has no mass at all on any of these.
+#  Assume mass of a,b, and c at 2, 100.5 and 365.5, and consider the 
+#  contributions: 
+#    123 obs that overlap a only
+#    137 obs that overlap a and b
+#     40 obs that overlap a, b, c
+#      1 obs that overlap b, c
+#    108 obs that overlap c   (200, 210,200, 365, and 366 starting points)
+#  For some trial values of a,b,c, compare the loglik to that of (a+b),0,c
+#   First one: a^123 (a+b)^137 (a+b+c)^40 (b+c) c^108
+#   Second:    (a+b)^123 (a+b)^137 (a+b+c)^40 c c^108
+#   Likelhood improves if (1 + b/a)^123 > 1+ b/c, which is true for almost
+#     all a and c.  In particular, at the solution a and c are approx .7 and
+#     .18, respectively.
+#
+# The program can't see this coming, of course, and so iterates towards a
+#  KM with epsilon sized jumps at 100.5, 200.5, and 211.5.  Whether these
+#  intervals should be removed during iteration, as detected, is an open
+#  question for me.
+#
+#
+# True solution: mass points at 2, 365.5, 408, and 756.5, of sizes a, b, c, d
+# Likelihood:    a^260 (a+b)^40 (b+c)^92 (b+c+d)^12 c^5 d^11
+# Solution: a=0.6958, b=0.1674, c=0.1079, d=0.0289
+
+tfun <- function(x) {
+    if (length(x) ==3) x <- c(x, .03)
+    x <- x/sum(x)  #make probabilities sum to 1
+    loglik <- 260*log(x[1]) + 40*log(x[1]+x[2]) + 92*log(x[2] + x[3]) +
+                       12*log(x[2]+x[3]+x[4]) + 5*log(x[3]) + 11*log(x[4])
+    -loglik  #find the max, not the min
+    }
+
+nfit <- nlminb(start=c(.7,.15, .1), tfun, lower=0, upper=1)
+nparm <- c(nfit$par, .03)
+nparm <- nparm / sum(nparm)
+zparm <- -diff(c(1, zfit$surv[match(c(2, 365.5, 408, 756.5), zfit$time)]))
+aeq(round(tfun(nparm),4), round(tfun(zparm),4))
+# .0001 is the tolerance in survfit.turnbull
+
+rm(tfun, nfit, nparm, zparm, time1, time2, zfit) 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tmerge.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tmerge.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/tmerge.Rout.save	(revision 2476)
@@ -0,0 +1,87 @@
+
+R Under development (unstable) (2016-06-16 r70793) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> library(survival)
+> # Very simple tmerge example, for checking
+> data1 <- data.frame(idd = c(1,5,4,3,2,6), x1=1:6, age=50:55)
+> data2 <- data.frame(idd = c(2,5,1,2,1), x2=5:1, age=48:44)
+> test1 <- tmerge(data1, data1, id=idd, death=event(age))
+> test2 <- tmerge(test1, data2, id=idd, zed=tdc(age, x2))
+> all.equal(test2$id, c(1,1,1,5,5,4,3,2,2,2,6))
+[1] TRUE
+> all.equal(test2$tstop, c(44, 46, 50, 47, 51, 52, 53, 45, 48, 54, 55))
+[1] TRUE
+> all.equal(test2$death, c(0,0,1,0,1,1,1,0,0,1,1))
+[1] TRUE
+> all.equal(test2$zed, c(NA, 5, 4,NA, 3, NA, NA, NA, 2, 1, NA))
+[1] TRUE
+> 
+> #add in a cumtdc variable and cumevent variable
+> data3 <- data.frame(idd=c(5,5,1,1,6,4,3,2), 
++                     age=c(45, 50, 44, 48, 53,-5,0,20),
++                     x = c(1,5,2,3,7, 4,6,8))
+> test3 <- tmerge(test2, data3, id=idd, x=cumtdc(age, x),
++                 esum = cumevent(age))
+> all.equal(test3$x, c(NA,1,1,6,NA, 2,2,5,7,4, NA, 6,6,6, NA,8))
+[1] TRUE
+> all.equal(test3$esum, c(1,0,2,0,1,0,2,0,0,0,1,0,0,0,1,0)) 
+[1] TRUE
+> 
+> 
+> # An example from Brendan Caroll
+> # It went wrong because the data is not sorted
+> 
+> ages <- data.frame( id = c(1L, 2L, 5L, 6L, 9L, 10L, 12L, 13L, 14L, 15L, 16L,
++  17L, 18L, 20L, 21L, 24L, 26L, 27L, 28L, 29L, 30L, 31L, 34L, 35L, 36L, 37L, 
++ 38L, 39L, 40L, 42L, 45L, 46L, 43L, 48L, 49L, 50L, 51L, 52L, 54L, 55L, 57L, 
++ 58L, 59L, 60L, 61L, 62L, 63L, 64L, 65L, 66L, 68L, 69L, 70L, 71L, 72L, 73L, 
++ 74L, 75L, 8L, 19L, 22L, 23L, 33L, 41L), 
++                    age = c(13668, 21550, 15249, 21550, 
++ 16045, 21550, 14976, 14976, 6574, 21550, 4463, 16927, 16927, 15706, 4567, 
++ 21306, 17235, 22158, 19692, 17632, 17597, 4383, 5811, 7704, 5063, 17351, 
++ 17015, 16801, 4383, 5080, 13185, 12604, 19784, 5310, 15369, 13239, 1638, 
++ 21323, 10914, 21262, 7297, 17214, 17508, 14199, 14062, 2227, 8434, 4593, 
++ 14429, 21323, 4782, 10813, 2667, 2853, 5709, 3140, 12237, 7882, 21550, 
++ 15553, 16466, 16621, 19534, 21842))
+> 
+> transitions <- data.frame(id=c(2,2, 8, 19, 22, 23, 24, 31, 
++                                33, 41, 43, 52, 55, 66, 6, 10, 43),
++                           transition = c(18993, 13668, 15706, 
++                                          11609, 4023, 9316, 16193, 1461, 
++                                          4584, 17824, 11261, 16818, 
++                                          10670, 15479, 15249, 15887,3713))
+> 
+> # Unsorted
+> tdata  <- tmerge(ages, ages, id=id, tstop=age)
+> newdata<- tmerge(tdata, transitions, id=id, enum=cumtdc(transition))
+> 
+> # sorted
+> test1 <- ages[order(ages$id),]
+> test2 <- tmerge(test1, test1, id=id, tstop=age)
+> tran2 <- transitions[order(transitions$id, transitions$transition),]
+> test3 <- tmerge(test2, tran2, id=id, enum=cumtdc(transition))
+> all.equal(attr(newdata,'tcount'), attr(test3, 'tcount'))
+[1] TRUE
+> 
+> test4 <- newdata[order(newdata$id, newdata$tstart),]
+> all.equal(test3, test4, check.attributes=FALSE) #rownames differ
+[1] TRUE
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  1.452   0.048   1.494 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_kidney.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_kidney.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_kidney.R	(revision 2476)
@@ -0,0 +1,70 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+# From:	McGilchrist and Aisbett, Biometrics 47, 461-66, 1991
+# Data on the recurrence times to infection, at the point of insertion of
+#  the catheter, for kidney patients using portable dialysis equipment.
+#  Catheters may be removed for reasons other than infection, in which case
+#  the observation is censored.  Each patient has exactly 2 observations.
+
+# Variables: patient, time, status, age, 
+#	   sex (1=male, 2=female),
+#	   disease type (0=GN, 1=AN, 2=PKD, 3=Other)
+#	   author's estimate of the frailty
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+# I don't match their answers, and I think that I'm right
+kfit <- coxph(Surv(time, status)~ age + sex + disease + frailty(id), kidney)
+kfit1<- coxph(Surv(time, status) ~age + sex + disease +
+	      frailty(id, theta=1), kidney, iter=20)
+kfit0 <- coxph(Surv(time, status)~ age + sex + disease, kidney)
+temp <-  coxph(Surv(time, status) ~age + sex + disease +
+	      frailty(id, theta=1, sparse=F), kidney)
+
+
+# Check out the EM based score equations
+#  temp1 and kfit1 should have essentially the same coefficients
+#  temp2 should equal kfit1$frail
+# equality won't be exact because of the different iteration paths
+temp1 <- coxph(Surv(time, status) ~ age + sex + disease +
+	       offset(kfit1$frail[id]), kidney)
+rr <- tapply(resid(temp1), kidney$id, sum)
+temp2 <- log(rr/1 +1)
+aeq(temp1$coef, kfit1$coef, tolerance=.005) 
+aeq(temp2, kfit1$frail, tolerance=.005)
+
+
+
+kfit
+kfit1
+kfit0
+temp
+
+#
+# Now fit the data using REML
+#
+kfitm1 <- coxph(Surv(time,status) ~ age + sex + disease + 
+		frailty(id, dist='gauss'), kidney)
+kfitm2 <- coxph(Surv(time,status) ~ age + sex + disease + 
+		      frailty(id, dist='gauss', sparse=F), kidney)
+kfitm1
+summary(kfitm2)
+#
+# Fit the kidney data using AIC
+#
+
+# gamma, corrected aic
+coxph(Surv(time, status) ~ age + sex + frailty(id, method='aic', caic=T), 
+      kidney)
+
+coxph(Surv(time, status) ~ age + sex + frailty(id, dist='t'), kidney)
+coxph(Surv(time, status) ~ age + sex + frailty(id, dist='gauss', method='aic',
+					       caic=T), kidney)
+
+
+# uncorrected aic
+coxph(Surv(time, status) ~ age + sex + frailty(id, method='aic', caic=F), 
+      kidney)
+
+coxph(Surv(time, status) ~ age + sex + frailty(id, dist='t', caic=F), kidney)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/infcox.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/infcox.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/infcox.Rout.save	(revision 2476)
@@ -0,0 +1,63 @@
+
+R version 3.0.0 (2013-04-03) -- "Masked Marvel"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # A test to exercise the "infinity" check on 2 variables
+> #
+> test3 <- data.frame(futime=1:12, fustat=c(1,0,1,0,1,0,0,0,0,0,0,0),
++ 		   x1=rep(0:1,6), x2=c(rep(0,6), rep(1,6)))
+> 
+> # This will produce a warning message, which is the point of the test.
+> # The variance is close to singular and gives different answers 
+> #  on different machines
+> fit3 <- coxph(Surv(futime, fustat) ~ x1 + x2, test3, iter=25)
+Warning message:
+In fitter(X, Y, strats, offset, init, control, weights = weights,  :
+  Loglik converged before variable  1,2 ; beta may be infinite. 
+> 
+> all(fit3$coef < -22)
+[1] TRUE
+> all.equal(round(fit3$log, 4),c(-6.8669, -1.7918))
+[1] TRUE
+> 
+> #
+> # Actual solution
+> #  time 1, 12 at risk,  3 each of x1/x2 = 00, 01, 10, 11
+> #  time 2, 10 at risk,                     2, 3,  2 ,  3
+> #  time 5, 8  at risk,                     1, 3,  1,   3
+> # Let r1 = exp(beta1), r2= exp(beta2)
+> # loglik = -log(3 + 3r1 + 3r2 + 3 r1*r2) - log(2 + 2r1 + 3r2 + 3 r1*r2) -
+> #           log(1 + r1  + 3r2 + 3 r1*r2)
+> true <- function(beta) {
++     r1 <- exp(beta[1])
++     r2 <- exp(beta[2])
++     loglik <- -log(3*(1+ r1+ r2+ r1*r2)) - log(2+ 2*r1 + 3*r2 + 3*r1*r2) -
++                log(1 + r1 + 3*r2 + 3*r1*r2)
++     loglik
++ }
+> 
+> all.equal(fit3$loglik[2], true(fit3$coef), check.attributes=FALSE)
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  0.216   0.020   0.233 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_donnell.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_donnell.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_donnell.R	(revision 2476)
@@ -0,0 +1,64 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Good initial values are key to this data set
+#   It killed v4 of survreg; 
+#   data courtesy of Deborah Donnell, Fred Hutchinson Cancer Center
+#
+
+donnell <- scan("data.donnell", what=list(time1=0, time2=0, status=0))
+donnell <- data.frame(donnell)
+
+dfit <- survreg(Surv(time1, time2, status, type='interval') ~1, donnell)
+summary(dfit)
+
+#
+# Fit the Donnell data using Statsci's code - should get the same coefs
+#
+if (exists('censorReg')) {
+    dfitc <- censorReg(censor(time1, time2, status, type='interval') ~1, 
+                   donnell)
+    summary(dfitc)
+    }
+#
+# Do a contour plot of the donnell data
+#
+npt <- 20
+beta0  <- seq(.4, 3.4, length=npt)
+logsig <- seq(-1.4, 0.41, length=npt)
+donlog <- matrix(0,npt, npt)
+
+for (i in 1:npt) {
+    for (j in 1:npt) {
+	fit <- survreg(Surv(time1, time2, status, type='interval') ~1,
+			donnell, init=c(beta0[i],logsig[j]),
+		        maxiter=0)
+	donlog[i,j] <- fit$log[1]
+	}
+    }
+
+clev <- -c(51, 51.5, 52:60, 65, 75, 85, 100, 150)
+#clev <-  seq(-51, -50, length=10)
+
+contour(beta0, logsig, pmax(donlog, -200), levels=clev, xlab="Intercept",
+	ylab="Log(sigma)")
+points(2.39, log(.7885), pch=1, col=2)
+title("Donnell data")
+#
+# Compute the path of the iteration
+#
+#  All the intermediate stops produce an ignorable "did not converge"
+# warning
+options(warn=-1) #turn them off
+niter <- 14
+donpath <- matrix(0,niter+1,2)
+for (i in 0:niter){
+    fit <- survreg(Surv(time1, time2, status, type='interval') ~1,
+		    donnell, maxiter=i)
+    donpath[i+1,] <- c(fit$coef, log(fit$scale))
+    }
+points(donpath[,1], donpath[,2])
+lines(donpath[,1], donpath[,2], col=4)
+options(warn=0)  #reset
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/factor.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/factor.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/factor.R	(revision 2476)
@@ -0,0 +1,33 @@
+#
+# Ensure that factors work in prediction
+#
+library(survival)
+
+options(na.action="na.exclude") # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+tfit <- coxph(Surv(time, status) ~ age + factor(ph.ecog), lung)
+p1 <- predict(tfit, type='risk')
+
+# Testing NA handling is important too
+keep <- (is.na(lung$ph.ecog) | lung$ph.ecog !=1)
+lung2 <- lung[keep,]
+p2 <- predict(tfit, type='risk', newdata=lung[keep,])
+aeq(p1[keep], p2)
+
+# Same, for survreg
+tfit <- survreg(Surv(time, status) ~ age + factor(ph.ecog), lung)
+p1 <- predict(tfit, type='response')
+p2 <- predict(tfit, type='response', newdata=lung2)
+aeq(p1[keep], p2)
+
+
+# Now repeat it tossing the missings
+options(na.action=na.omit) 
+keep2 <- (lung$ph.ecog[!is.na(lung$ph.ecog)] !=1)
+
+tfit2 <- survreg(Surv(time, status) ~ age + factor(ph.ecog), lung)
+p3 <- predict(tfit2, type='response')
+p4 <- predict(tfit2, type='response', newdata=lung2, na.action=na.omit)
+aeq(p3[keep2] , p4)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv2.Rout.save	(revision 2476)
@@ -0,0 +1,85 @@
+
+R version 2.11.1 (2010-05-31)
+Copyright (C) 2010 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> library(survival)
+Loading required package: splines
+> #
+> # Check that the survival curves from a Cox model with beta=0 
+> #  match ordinary survival
+> #
+> #  Aalen
+> surv1 <- survfit(Surv(time,status) ~ sex, data=lung, type='fleming',
++                  error='tsiatis')
+> fit1 <- coxph(Surv(time, status) ~ age + strata(sex), data=lung, iter=0,
++               method='breslow')
+> fit1$var <- 0*fit1$var   #sneaky, causes the extra term in the Cox variance
+>                          # calculation to be zero
+> surv2 <- survfit(fit1, type='aalen', vartype='tsiatis')
+> surv3 <- survfit(fit1)
+> 
+> arglist <- c('n', 'time', 'n.risk','n.event', 'n.censor', 'surv', 'strata',
++              'std.err', 'upper', 'lower')
+> all.equal(unclass(surv1)[arglist], unclass(surv2)[arglist])
+[1] TRUE
+> all.equal(unclass(surv1)[arglist], unclass(surv3)[arglist])
+[1] TRUE
+> 
+> 
+> # Efron method
+> surv1 <- survfit(Surv(time,status) ~ sex, data=lung, type='fh2',
++                  error='tsiatis')
+> surv2 <- survfit(fit1, type='efron', vartype='efron')
+> all.equal(unclass(surv1)[arglist], unclass(surv2)[arglist])
+[1] TRUE
+> 
+> # Kaplan-Meier
+> surv1 <- survfit(Surv(time,status) ~ sex, data=lung)
+> surv2 <- survfit(fit1, type='kalb', vartype='green')
+> all.equal(unclass(surv1)[arglist], unclass(surv2)[arglist])
+[1] TRUE
+> 
+> 
+> # Now add some random weights
+> rwt <- runif(nrow(lung), .5, 3)
+> surv1 <- survfit(Surv(time,status) ~ sex, data=lung, type='fleming',
++                  error='tsiatis', weight=rwt)
+> fit1 <- coxph(Surv(time, status) ~ age + strata(sex), data=lung, iter=0,
++               method='breslow', weight=rwt)
+> fit1$var <- 0*fit1$var   #sneaky
+> surv2 <- survfit(fit1, type='aalen', vartype='tsiatis')
+> surv3 <- survfit(fit1)
+> 
+> all.equal(unclass(surv1)[arglist], unclass(surv2)[arglist])
+[1] TRUE
+> all.equal(unclass(surv1)[arglist], unclass(surv3)[arglist])
+[1] TRUE
+> 
+> 
+> # Efron method
+> surv1 <- survfit(Surv(time,status) ~ sex, data=lung, type='fh2',
++                  error='tsiatis', weight=rwt)
+> surv2 <- survfit(fit1, type='efron', vartype='efron')
+> all.equal(unclass(surv1)[arglist], unclass(surv2)[arglist])
+[1] TRUE
+> 
+> # Kaplan-Meier
+> surv1 <- survfit(Surv(time,status) ~ sex, data=lung, weight=rwt)
+> surv2 <- survfit(fit1, type='kalb', vartype='green')
+> all.equal(unclass(surv1)[arglist], unclass(surv2)[arglist])
+[1] TRUE
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/doaml.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/doaml.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/doaml.Rout.save	(revision 2476)
@@ -0,0 +1,186 @@
+
+R Under development (unstable) (2016-01-29 r70039) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> #
+> # These results can be found in Miller
+> #
+> fit <- coxph(Surv(aml$time, aml$status) ~ aml$x, method='breslow')
+> fit
+Call:
+coxph(formula = Surv(aml$time, aml$status) ~ aml$x, method = "breslow")
+
+                    coef exp(coef) se(coef)    z     p
+aml$xNonmaintained 0.904     2.470    0.512 1.77 0.078
+
+Likelihood ratio test=3.3  on 1 df, p=0.0694
+n= 23, number of events= 18 
+> resid(fit, type='mart')
+          1           2           3           4           5           6 
+ 0.86225539  0.79200985 -0.20799015  0.74818869  0.65652976 -0.39796610 
+          7           8           9          10          11          12 
+ 0.45424957  0.25475051 -1.05400917 -0.55400917 -1.55400917  0.87844483 
+         13          14          15          16          17          18 
+ 0.87844483  0.74006941  0.74006941  0.57677292 -0.51373647  0.15162716 
+         19          20          21          22          23 
+ 0.01702219 -0.14897252 -0.56448258 -1.15185244 -1.60340676 
+> resid(fit, type='score')
+           1            2            3            4            5            6 
+-0.546856248 -0.492501830  0.141063944 -0.479907930 -0.447416819  0.268453990 
+           7            8            9           10           11           12 
+-0.235908976 -0.072655945  0.640826596  0.640826596  0.640826596  0.237767767 
+          13           14           15           16           17           18 
+ 0.237767767  0.232585063  0.232585063  0.203878910 -0.165307985  0.044923326 
+          19           20           21           22           23 
+ 0.007079721 -0.039651990 -0.181184547 -0.395076175 -0.472116894 
+> resid(fit, type='scho')
+         5          5          8          8          9         12         13 
+ 0.2706690  0.2706690  0.3081229  0.3081229 -0.6423931  0.3360212 -0.6335658 
+        18         23         23         27         30         31         33 
+-0.6494307 -0.6791937  0.3208063  0.3269751  0.3360212 -0.5970995  0.3505693 
+        34         43         45         48 
+-0.5525731  0.3778334  0.5484457  0.0000000 
+> 
+> # Test the drop of an itercept: should have no effect
+> fit2 <- coxph(Surv(time, status) ~ x -1, method='breslow',
++                    data=aml)
+> aeq(fit$loglik, fit2$loglik)
+[1] TRUE
+> aeq(coef(fit), coef(fit2))
+[1] TRUE
+> aeq(fit$var, fit2$var)
+[1] TRUE
+> 
+> fit <- survfit(Surv(aml$time, aml$status) ~ aml$x)
+> fit
+Call: survfit(formula = Surv(aml$time, aml$status) ~ aml$x)
+
+                     n events median 0.95LCL 0.95UCL
+aml$x=Maintained    11      7     31      18      NA
+aml$x=Nonmaintained 12     11     23       8      NA
+> summary(fit)
+Call: survfit(formula = Surv(aml$time, aml$status) ~ aml$x)
+
+                aml$x=Maintained 
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+    9     11       1    0.909  0.0867       0.7541        1.000
+   13     10       1    0.818  0.1163       0.6192        1.000
+   18      8       1    0.716  0.1397       0.4884        1.000
+   23      7       1    0.614  0.1526       0.3769        0.999
+   31      5       1    0.491  0.1642       0.2549        0.946
+   34      4       1    0.368  0.1627       0.1549        0.875
+   48      2       1    0.184  0.1535       0.0359        0.944
+
+                aml$x=Nonmaintained 
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+    5     12       2   0.8333  0.1076       0.6470        1.000
+    8     10       2   0.6667  0.1361       0.4468        0.995
+   12      8       1   0.5833  0.1423       0.3616        0.941
+   23      6       1   0.4861  0.1481       0.2675        0.883
+   27      5       1   0.3889  0.1470       0.1854        0.816
+   30      4       1   0.2917  0.1387       0.1148        0.741
+   33      3       1   0.1944  0.1219       0.0569        0.664
+   43      2       1   0.0972  0.0919       0.0153        0.620
+   45      1       1   0.0000     NaN           NA           NA
+
+> survdiff(Surv(aml$time, aml$status)~ aml$x)
+Call:
+survdiff(formula = Surv(aml$time, aml$status) ~ aml$x)
+
+                     N Observed Expected (O-E)^2/E (O-E)^2/V
+aml$x=Maintained    11        7    10.69      1.27       3.4
+aml$x=Nonmaintained 12       11     7.31      1.86       3.4
+
+ Chisq= 3.4  on 1 degrees of freedom, p= 0.0653 
+> 
+> #
+> # Test out the weighted K-M
+> #
+> #  First, equal case weights- shouldn't change the survival, but will
+> #    halve the variance
+> temp2 <-survfit(Surv(aml$time, aml$status)~1, type='kaplan', weight=rep(2,23))
+> temp  <-survfit(Surv(time, status)~1, aml)
+> aeq(temp$surv, temp2$surv)
+[1] TRUE
+> aeq(temp$std.err^2, 2*temp2$std.err^2)
+[1] TRUE
+> 
+> # Risk weights-- use a null Cox model
+> tfit <- coxph(Surv(aml$time, aml$status) ~ offset(log(1:23)))
+> sfit <- survfit(tfit, type='aalen', censor=FALSE)
+> 
+> # Now compute it by hand.  The survfit program will produce a curve
+> #   corresponding to the mean offset.  This is a change on 7/2010,
+> #   which caused S(new) = S(old)^exp(mean(log(1:23))).
+> #  Ties are a nuisance
+> rscore <- exp(log(1:23) - mean(log(1:23)))[order(aml$time)]
+> atime <- sort(aml$time)
+> denom <- rev(cumsum(rev(rscore)))
+> denom <- denom[match(unique(atime), atime)]
+> deaths <- tapply(aml$status, aml$time, sum)
+> chaz <- cumsum(deaths/denom)
+> all.equal(sfit$surv, as.vector(exp(-chaz[deaths>0])))
+[1] TRUE
+> cvar <- cumsum(deaths/denom^2)
+> all.equal(sfit$std^2, as.vector(cvar[deaths>0]))
+[1] TRUE
+> 
+> # And the Efron result
+> summary(survfit(tfit))
+Call: survfit(formula = tfit)
+
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+    5     23       2    0.932  0.0461       0.8463        1.000
+    8     21       2    0.863  0.0637       0.7467        0.997
+    9     19       1    0.827  0.0704       0.6999        0.977
+   12     18       1    0.793  0.0755       0.6576        0.955
+   13     17       1    0.757  0.0801       0.6152        0.931
+   18     14       1    0.719  0.0846       0.5709        0.905
+   23     13       2    0.645  0.0907       0.4893        0.849
+   27     11       1    0.607  0.0929       0.4496        0.819
+   30      9       1    0.565  0.0955       0.4054        0.787
+   31      8       1    0.519  0.0982       0.3579        0.752
+   33      7       1    0.474  0.0994       0.3140        0.715
+   34      6       1    0.423  0.1009       0.2649        0.675
+   43      5       1    0.373  0.1006       0.2198        0.633
+   45      4       1    0.312  0.1009       0.1657        0.588
+   48      2       1    0.199  0.1102       0.0674        0.589
+> 
+> # Lots of ties, so its a good test case
+> x1 <- coxph(Surv(time, status)~x, aml, method='efron')
+> x1
+Call:
+coxph(formula = Surv(time, status) ~ x, data = aml, method = "efron")
+
+                coef exp(coef) se(coef)    z     p
+xNonmaintained 0.916     2.498    0.512 1.79 0.074
+
+Likelihood ratio test=3.38  on 1 df, p=0.0658
+n= 23, number of events= 18 
+> x2 <- coxph(Surv(rep(0,23),time, status) ~x, aml, method='efron')
+> aeq(x1$coef, x2$coef)
+[1] TRUE
+> 
+> 
+> rm(x1, x2, atime, denom, deaths, chaz,cvar, tfit, sfit, temp, temp2, fit)
+> 
+> proc.time()
+   user  system elapsed 
+  0.204   0.036   0.236 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/rounding.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/rounding.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/rounding.R	(revision 2476)
@@ -0,0 +1,14 @@
+library(survival)
+#
+# Survival curves could fail with data that was almost exact.
+#  The calculations use both unique() and table(), which don't 
+#  necessarily give the same number of values.
+# Check that the routine handles this properly
+#  
+
+tdata <- data.frame(time=c(1,2, sqrt(2)^2, 2, sqrt(2)^2),
+                    status=rep(1,5), 
+                    group=c(1,1,1,2,2))
+fit <- survfit(Surv(time, status) ~ group, data=tdata)
+
+all.equal(sum(fit$strata), length(fit$time))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_lung.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_lung.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_lung.R	(revision 2476)
@@ -0,0 +1,49 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+lfit2 <- survreg(Surv(time, status) ~ age + ph.ecog + strata(sex), lung)
+lfit3 <- survreg(Surv(time, status) ~ sex + (age+ph.ecog)*strata(sex), lung)
+
+lfit4 <-  survreg(Surv(time, status) ~ age + ph.ecog , lung,
+		  subset=(sex==1))
+lfit5 <- survreg(Surv(time, status) ~ age + ph.ecog , lung,
+		  subset=(sex==2))
+
+if (exists('censorReg')) {
+    lfit1 <- censorReg(censor(time, status) ~ age + ph.ecog + strata(sex),lung)
+    aeq(lfit4$coef, lfit1[[1]]$coef)
+    aeq(lfit4$scale, lfit1[[1]]$scale)
+    aeq(c(lfit4$scale, lfit5$scale), sapply(lfit1, function(x) x$scale))
+    }
+aeq(c(lfit4$scale, lfit5$scale), lfit3$scale )
+
+#
+# Test out ridge regression and splines
+#
+lfit0 <- survreg(Surv(time, status) ~1, lung)
+lfit1 <- survreg(Surv(time, status) ~ age + ridge(ph.ecog, theta=5), lung)
+lfit2 <- survreg(Surv(time, status) ~ sex + ridge(age, ph.ecog, theta=1), lung)
+lfit3 <- survreg(Surv(time, status) ~ sex + age + ph.ecog, lung)
+
+lfit0
+lfit1
+lfit2
+lfit3
+
+
+xx <- pspline(lung$age, nterm=3, theta=.3)
+xx <- matrix(unclass(xx), ncol=ncol(xx))   # the raw matrix
+lfit4 <- survreg(Surv(time, status) ~xx, lung)
+lfit5 <- survreg(Surv(time, status) ~age, lung)
+
+lfit6 <- survreg(Surv(time, status)~pspline(age, df=2), lung)
+
+lfit7 <- survreg(Surv(time, status) ~ offset(lfit6$lin), lung)
+
+lfit4
+lfit5
+lfit6
+signif(lfit7$coef,6)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_resid.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_resid.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_resid.R	(revision 2476)
@@ -0,0 +1,109 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+fit1 <- survreg(Surv(futime, fustat) ~ age + ecog.ps, ovarian)
+fit4 <- survreg(Surv(log(futime), fustat) ~age + ecog.ps, ovarian,
+		dist='extreme')
+
+print(fit1)
+summary(fit4)		
+
+
+# Hypothesis (and I'm fairly sure): censorReg shares the fault of many
+#  iterative codes -- it returns the loglik and variance for iteration k
+#  but the coef vector of iteration k+1.  Hence the "all.equal" tests
+#  below don't come out perfect.
+#
+if (exists('censorReg')) {  #true for Splus, not R
+    fit2 <- censorReg(censor(futime, fustat) ~ age + ecog.ps, ovarian)
+    fit3 <- survreg(Surv(futime, fustat) ~ age + ecog.ps, ovarian,
+		iter=0, init=c(fit2$coef,   log(fit2$scale)))
+
+    aeq(resid(fit2, type='working')[,1], resid(fit3, type='working'))
+    aeq(resid(fit2, type='response')[,1], resid(fit3, type='response'))
+
+    temp <- sign(resid(fit3, type='working'))
+    aeq(resid(fit2, type='deviance')[,1], 
+	temp*abs(resid(fit3, type='deviance')))
+    aeq(resid(fit2, type='deviance')[,1], resid(fit3, type='deviance'))
+    }
+#
+# Now check fit1 and fit4, which should follow identical iteration paths
+#   These tests should all be true
+#
+aeq(fit1$coef, fit4$coef)
+ 
+resid(fit1, type='working')
+resid(fit1, type='response')
+resid(fit1, type='deviance')
+resid(fit1, type='dfbeta')
+resid(fit1, type='dfbetas')
+resid(fit1, type='ldcase')
+resid(fit1, type='ldresp')
+resid(fit1, type='ldshape')
+resid(fit1, type='matrix')
+
+aeq(resid(fit1, type='working'),resid(fit4, type='working'))
+#aeq(resid(fit1, type='response'), resid(fit4, type='response'))#should differ
+aeq(resid(fit1, type='deviance'), resid(fit4, type='deviance'))
+aeq(resid(fit1, type='dfbeta'),   resid(fit4, type='dfbeta'))
+aeq(resid(fit1, type='dfbetas'),  resid(fit4, type='dfbetas'))
+aeq(resid(fit1, type='ldcase'),   resid(fit4, type='ldcase'))
+aeq(resid(fit1, type='ldresp'),   resid(fit4, type='ldresp'))
+aeq(resid(fit1, type='ldshape'),  resid(fit4, type='ldshape'))
+aeq(resid(fit1, type='matrix'),   resid(fit4, type='matrix'))
+#
+# Some tests of the quantile residuals
+#
+motor <- read.table('data.motor', col.names=c('temp', 'time', 'status'))
+
+# These should agree exactly with Ripley and Venables' book
+fit1 <- survreg(Surv(time, status) ~ temp, data=motor)
+summary(fit1)
+
+#
+# The first prediction has the SE that I think is correct
+#  The third is the se found in an early draft of Ripley; fit1 ignoring
+#  the variation in scale estimate, except via it's impact on the
+#  upper left corner of the inverse information matrix.
+# Numbers 1 and 3 differ little for this dataset
+#
+predict(fit1, data.frame(temp=130), type='uquantile', p=c(.5, .1), se=T)
+
+fit2 <- survreg(Surv(time, status) ~ temp, data=motor, scale=fit1$scale)
+predict(fit2, data.frame(temp=130), type='uquantile', p=c(.5, .1), se=T)
+
+fit3 <- fit2
+fit3$var <- fit1$var[1:2,1:2]
+predict(fit3, data.frame(temp=130), type='uquantile', p=c(.5, .1), se=T)
+
+pp <- seq(.05, .7, length=40)
+xx <- predict(fit1, data.frame(temp=130), type='uquantile', se=T,
+	      p=pp)
+#matplot(pp, cbind(xx$fit, xx$fit+2*xx$se, xx$fit - 2*xx$se), type='l')
+
+
+#
+# Now try out the various combinations of strata, #predicted, and
+#  number of quantiles desired
+#
+fit1 <- survreg(Surv(time, status) ~ inst + strata(inst) + age + sex, lung)
+qq1 <- predict(fit1, type='quantile', p=.3, se=T)
+qq2 <- predict(fit1, type='quantile', p=c(.2, .3, .4), se=T)
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+aeq(qq1$fit, qq2$fit[,2])
+aeq(qq1$se.fit, qq2$se.fit[,2])
+
+qq3 <- predict(fit1, type='quantile', p=c(.2, .3, .4), se=T,
+	       newdata= lung[1:5,])
+aeq(qq3$fit, qq2$fit[1:5,])
+
+qq4 <- predict(fit1, type='quantile', p=c(.2, .3, .4), se=T, newdata=lung[7,])
+aeq(qq4$fit, qq2$fit[7,])
+
+qq5 <- predict(fit1, type='quantile', p=c(.2, .3, .4), se=T, newdata=lung)
+aeq(qq2$fit, qq5$fit)
+aeq(qq2$se.fit, qq5$se.fit)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/coxsurv.Rout.save	(revision 2476)
@@ -0,0 +1,130 @@
+
+R version 2.15.1 (2012-06-22) -- "Roasted Marshmallows"
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Test out subscripting in the case of a coxph survival curve
+> #
+> aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+> 
+> fit <- coxph(Surv(time, status) ~ age + sex + meal.cal + strata(ph.ecog),
++ 		data=cancer)
+> 
+> surv1 <- survfit(fit)
+> temp <- surv1[2:3]
+> 
+> which <- cumsum(surv1$strata)
+> zed   <- (which[1]+1):(which[3])
+> aeq(surv1$surv[zed], temp$surv)
+[1] TRUE
+> aeq(surv1$time[zed], temp$time)
+[1] TRUE
+> 
+> # This call should not create a model frame in the code -- so same
+> #  answer but a different path through the underlying code
+> fit <- coxph(Surv(time, status) ~ age + sex + meal.cal + strata(ph.ecog),
++ 		x=T, data=cancer)
+> surv2 <- survfit(fit)
+> all.equal(surv1, surv2)
+[1] TRUE
+> 
+> #
+> # Now a result with a matrix of survival curves
+> #
+> dummy <- data.frame(age=c(30,40,60), sex=c(1,2,2), meal.cal=c(500, 1000, 1500))
+> surv2 <- survfit(fit, newdata=dummy)
+> 
+> zed <- 1:which[1]
+> aeq(surv2$surv[zed,1], surv2[1,1]$surv)
+[1] TRUE
+> aeq(surv2$surv[zed,2], surv2[1,2]$surv)
+[1] TRUE
+> aeq(surv2$surv[zed,3], surv2[1,3]$surv)
+[1] TRUE
+> aeq(surv2$surv[zed, ], surv2[1,1:3]$surv)
+[1] TRUE
+> aeq(surv2$surv[zed],   (surv2[1]$surv)[,1])
+[1] TRUE
+> aeq(surv2$surv[zed, ], surv2[1, ]$surv)
+[1] TRUE
+> 
+> fit <- coxph(Surv(time, status) ~ age + sex + meal.cal + strata(ph.ecog),
++ 		data=cancer)
+> 
+> surv1 <- survfit(fit)
+> temp <- surv1[2:3]
+> 
+> which <- cumsum(surv1$strata)
+> zed   <- (which[1]+1):(which[3])
+> aeq(surv1$surv[zed], temp$surv)
+[1] TRUE
+> aeq(surv1$time[zed], temp$time)
+[1] TRUE
+> 
+> # This call should not create a model frame in the code -- so same
+> #  answer but a different path through the underlying code
+> fit <- coxph(Surv(time, status) ~ age + sex + meal.cal + strata(ph.ecog),
++ 		x=T, data=cancer)
+> surv2 <- survfit(fit)
+> all.equal(surv1, surv2)
+[1] TRUE
+> 
+> #
+> # Now a result with a matrix of survival curves
+> #
+> dummy <- data.frame(age=c(30,40,60), sex=c(1,2,2), meal.cal=c(500, 1000, 1500))
+> surv2 <- survfit(fit, newdata=dummy)
+> 
+> zed <- 1:which[1]
+> aeq(surv2$surv[zed,1], surv2[1,1]$surv)
+[1] TRUE
+> aeq(surv2$surv[zed,2], surv2[1,2]$surv)
+[1] TRUE
+> aeq(surv2$surv[zed,3], surv2[1,3]$surv)
+[1] TRUE
+> aeq(surv2$surv[zed, ], surv2[1,1:3]$surv)
+[1] TRUE
+> aeq(surv2$surv[zed],   (surv2[1]$surv)[,1])
+[1] TRUE
+> aeq(surv2$surv[zed, ], surv2[1, ]$surv)
+[1] TRUE
+> 
+> # And the depreciated form - call with a named vector as 'newdata'
+> #  the resulting $call component  won't match so delete it before comparing
+> surv3 <- survfit(fit, c(age=40, sex=2, meal.cal=1000))
+> all.equal(unclass(surv2[,2])[-length(surv3)], unclass(surv3)[-length(surv3)])
+[1] TRUE
+> 
+> 
+> 
+> # Test out offsets, which have recently become popular due to a Langholz paper
+> fit1 <- coxph(Surv(time, status) ~ age + ph.ecog, lung)
+> fit2 <- coxph(Surv(time, status) ~ age + offset(ph.ecog * fit1$coef[2]), lung)
+> 
+> surv1 <- survfit(fit1, newdata=data.frame(age=50, ph.ecog=1))
+> surv2 <- survfit(fit2, newdata=data.frame(age=50, ph.ecog=1))
+> all.equal(surv1$surv, surv2$surv)
+[1] TRUE
+> 
+> proc.time()
+   user  system elapsed 
+  0.316   0.032   0.342 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/frailty.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/frailty.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/frailty.Rout.save	(revision 2476)
@@ -0,0 +1,44 @@
+
+R version 2.11.1 (2010-05-31)
+Copyright (C) 2010 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> library(survival)
+Loading required package: splines
+> #
+> # The constuction of a survival curve with sparse frailties
+> #
+> # In this case the coefficient vector is kept in two parts, the
+> #  fixed coefs and the (often very large) random effects coefficients
+> # The survfit function treats the second set of coefficients as fixed
+> #  values, to avoid an unmanagable variance matrix, and behaves like
+> #  the second fit below.
+> 
+> fit1 <- coxph(Surv(time, status) ~ age + frailty(inst), lung)
+> sfit1 <- survfit(fit1)
+> 
+> # A parallel model with the frailties treated as fixed offsets
+> offvar <- fit1$frail[as.numeric(factor(lung$inst))]
+> fit2 <- coxph(Surv(time, status) ~ age + offset(offvar),lung)
+> fit2$var <- fit1$var  #force variances to match
+> 
+> all.equal(fit1$coef, fit2$coef)
+[1] TRUE
+> sfit2 <- survfit(fit2, newdata=list(age=fit1$means, offvar=0))
+> all.equal(sfit1$surv, sfit2$surv)
+[1] TRUE
+> all.equal(sfit1$var, sfit2$var)
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ovarian.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ovarian.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/ovarian.R	(revision 2476)
@@ -0,0 +1,61 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Test the coxph program on the Ovarian data
+#
+
+attach(ovarian)
+
+summary(survfit(Surv(futime, fustat)~1), censor=TRUE)
+
+# Various models
+coxph(Surv(futime, fustat)~ age)
+coxph(Surv(futime, fustat)~ resid.ds)
+coxph(Surv(futime, fustat)~ rx)
+coxph(Surv(futime, fustat)~ ecog.ps)
+
+coxph(Surv(futime, fustat)~ resid.ds + rx + ecog.ps)
+coxph(Surv(futime, fustat)~ age + rx + ecog.ps)
+coxph(Surv(futime, fustat)~ age + resid.ds + ecog.ps)
+coxph(Surv(futime, fustat)~ age + resid.ds + rx)
+
+# Residuals
+fit <- coxph(Surv(futime, fustat)~ age + resid.ds + rx + ecog.ps )
+resid(fit)
+resid(fit, 'dev')
+resid(fit, 'scor')
+resid(fit, 'scho')
+
+fit <- coxph(Surv(futime, fustat) ~ age + ecog.ps + strata(rx))
+summary(fit)
+summary(survfit(fit))
+sfit <- survfit(fit, list(age=c(30,70), ecog.ps=c(2,3)))  #two columns
+sfit
+summary(sfit)
+detach()
+
+
+# Check of offset + surv, added 7/2000
+fit1 <- coxph(Surv(futime, fustat) ~ age + rx, ovarian,
+	      control=coxph.control(eps=1e-8))
+fit2 <- coxph(Surv(futime, fustat) ~ age + offset(rx*fit1$coef[2]), ovarian,
+	      control=coxph.control(eps=1e-8))
+all.equal(fit1$coef[1], fit2$coef[1])
+
+fit <- coxph(Surv(futime, fustat) ~ age + offset(rx), ovarian)
+survfit(fit, censor=FALSE)$surv^exp(-1.5)
+
+# Check it by hand -- there are no tied times
+#  Remember that offsets from survfit are centered, which is 1.5 for
+#  this data set.
+eta <- fit$coef*(ovarian$age - fit$mean) + (ovarian$rx - 1.5)
+ord <- order(ovarian$futime)
+risk <- exp(eta[ord])
+rsum <- rev(cumsum(rev(risk)))   # cumulative risk at each time point
+dead <- (ovarian$fustat[ord]==1)
+baseline <- cumsum(1/rsum[dead])
+all.equal(survfit(fit, censor=FALSE)$surv, exp(-baseline))
+
+rm(fit, fit1, fit2, ord, eta, risk, rsum, dead, baseline, sfit)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/doweight.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/doweight.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/doweight.Rout.save	(revision 2476)
@@ -0,0 +1,427 @@
+
+R Under development (unstable) (2016-01-29 r70039) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> # Tests of the weighted Cox model
+> #
+> # Similar data set to test1, but add weights,
+> #                                    a double-death/censor tied time
+> #                                    a censored last subject
+> # The latter two are cases covered only feebly elsewhere.
+> # 
+> # The data set testw2 has the same data, but done via replication
+> #
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> 
+> testw1 <- data.frame(time=  c(1,1,2,2,2,2,3,4,5),
++ 		    status= c(1,0,1,1,1,0,0,1,0),
++ 		    x=      c(2,0,1,1,0,1,0,1,0),
++ 		    wt =    c(1,2,3,4,3,2,1,2,1))
+> xx <- c(1,2,3,4,3,2,1,2,1)
+> testw2 <- data.frame(time=   rep(c(1,1,2,2,2,2,3,4,5), xx),
++ 		     status= rep(c(1,0,1,1,1,0,0,1,0), xx),
++ 		     x=      rep(c(2,0,1,1,0,1,0,1,0), xx),
++ 		     id=     rep(1:9, xx))
+> indx <- match(1:9, testw2$id)
+> testw2 <- data.frame(time=   rep(c(1,1,2,2,2,2,3,4,5), xx),
++ 		     status= rep(c(1,0,1,1,1,0,0,1,0), xx),
++ 		     x=      rep(c(2,0,1,1,0,1,0,1,0), xx),
++ 		     id=     rep(1:9, xx))
+> indx <- match(1:9, testw2$id)
+> 
+> fit0 <- coxph(Surv(time, status) ~x, testw1, weights=wt,
++ 		    method='breslow', iter=0)
+> fit0b <- coxph(Surv(time, status) ~x, testw2, method='breslow', iter=0)
+> fit  <- coxph(Surv(time, status) ~x, testw1, weights=wt, method='breslow')
+> fitb <- coxph(Surv(time, status) ~x, testw2, method='breslow')
+> 
+> texp <- function(beta) {  # expected, Breslow estimate
++     r <- exp(beta)
++     temp <- cumsum(c(1/(r^2 + 11*r +7), 10/(11*r +5), 2/(2*r+1)))
++     c(r^2, 1,r,r,1,r,1,r,1)* temp[c(1,1,2,2,2,2,2,3,3)]
++     }
+> aeq(texp(0),  c(1/19, 1/19, rep(103/152, 5), rep(613/456,2))) #verify texp()
+[1] TRUE
+> 
+> xbar <- function(beta) { # xbar, Breslow estimate
++     r <- exp(beta)
++     temp <- r* rep(c(2*r + 11, 11/10, 1), c(2, 5, 2))
++     temp * texp(beta)
++     }
+> 
+> fit0
+Call:
+coxph(formula = Surv(time, status) ~ x, data = testw1, weights = wt, 
+    method = "breslow", iter = 0)
+
+   coef exp(coef) se(coef) z p
+x 0.000     1.000    0.586 0 1
+
+Likelihood ratio test=0  on 1 df, p=1
+n= 9, number of events= 5 
+> summary(fit)
+Call:
+coxph(formula = Surv(time, status) ~ x, data = testw1, weights = wt, 
+    method = "breslow")
+
+  n= 9, number of events= 5 
+
+    coef exp(coef) se(coef)     z Pr(>|z|)
+x 0.8596    2.3621   0.7131 1.205    0.228
+
+  exp(coef) exp(-coef) lower .95 upper .95
+x     2.362     0.4233    0.5839     9.556
+
+Concordance= 0.638  (se = 0.159 )
+Rsquare= 0.171   (max possible= 0.999 )
+Likelihood ratio test= 1.69  on 1 df,   p=0.1932
+Wald test            = 1.45  on 1 df,   p=0.2281
+Score (logrank) test = 1.52  on 1 df,   p=0.217
+
+> aeq(resid(fit0), testw1$status - texp(0))
+[1] TRUE
+> resid(fit0, type='score')
+          1           2           3           4           5           6 
+ 1.24653740  0.03601108  0.10056700  0.10056700 -0.22180142 -0.21193300 
+          7           8           9 
+ 0.46569858 -0.10082189  0.91014302 
+> resid(fit0, type='scho')
+         1          2          2          2          4 
+ 1.3157895  0.3125000  0.3125000 -0.6875000  0.3333333 
+> 
+> aeq(resid(fit0, type='mart'), (resid(fit0b, type='mart'))[indx])
+[1] TRUE
+> aeq(resid(fit0, type='scor'), (resid(fit0b, type='scor'))[indx])
+[1] TRUE
+> aeq(unique(resid(fit0, type='scho')), unique(resid(fit0b, type='scho')))
+[1] TRUE
+> 
+> 
+> aeq(resid(fit, type='mart'), testw1$status - texp(fit$coef))
+[1] TRUE
+> resid(fit, type='score')
+          1           2           3           4           5           6 
+ 0.88681615  0.02497653  0.03608964  0.03608964 -0.54297652 -0.12528780 
+          7           8           9 
+ 0.29564605 -0.09476911  0.58400064 
+> resid(fit, type='scho')
+         1          2          2          2          4 
+ 1.0368337  0.1613774  0.1613774 -0.8386226  0.1746960 
+> aeq(resid(fit, type='mart'), (resid(fitb, type='mart'))[indx])
+[1] TRUE
+> aeq(resid(fit, type='scor'), (resid(fitb, type='scor'))[indx])
+[1] TRUE
+> aeq(unique(resid(fit, type='scho')), unique(resid(fitb, type='scho')))
+[1] TRUE
+> rr1 <- resid(fit, type='mart')
+> rr2 <- resid(fit, type='mart', weighted=T)
+> aeq(rr2/rr1, testw1$wt)
+[1] TRUE
+> 
+> rr1 <- resid(fit, type='score')
+> rr2 <- resid(fit, type='score', weighted=T)
+> aeq(rr2/rr1, testw1$wt)
+[1] TRUE
+> 
+> fit  <- coxph(Surv(time, status) ~x, testw1, weights=wt, method='efron')
+> fit
+Call:
+coxph(formula = Surv(time, status) ~ x, data = testw1, weights = wt, 
+    method = "efron")
+
+   coef exp(coef) se(coef)    z    p
+x 0.873     2.393    0.713 1.22 0.22
+
+Likelihood ratio test=1.75  on 1 df, p=0.186
+n= 9, number of events= 5 
+> resid(fit, type='mart')
+          1           2           3           4           5           6 
+ 0.85334536 -0.02560716  0.32265266  0.32265266  0.71696234 -1.07772629 
+          7           8           9 
+-0.45034077 -0.90490339 -0.79598658 
+> resid(fit, type='score')
+          1           2           3           4           5           6 
+ 0.88116056  0.02477248  0.06057806  0.06057806 -0.59724033 -0.16737066 
+          7           8           9 
+ 0.38040295 -0.13750290  0.66631324 
+> resid(fit, type='scho')
+         1          2          2          2          4 
+ 1.0325955  0.1621759  0.1621759 -0.8378241  0.1728229 
+> 
+> # Tests of the weighted Cox model, AG form of the data
+> #   Same solution as doweight1.s
+> #
+> testw3 <- data.frame(id  =  c( 1, 1, 2, 3, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9),
++ 		     begin= c( 0, 5, 0, 0,10,15, 0, 0,14, 0, 0, 0,23, 0),
++ 		     time=  c( 5,10,10,10,15,20,20,14,20,20,30,23,40,50),
++ 		    status= c( 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0),
++ 		    x=      c( 2, 2, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0),
++ 		    wt =    c( 1, 1, 2, 3, 3, 3, 4, 3, 3, 2, 1, 2, 2, 1))
+> 
+> fit0 <- coxph(Surv(begin,time, status) ~x, testw3, weights=wt,
++ 		    method='breslow', iter=0)
+> fit  <- coxph(Surv(begin,time, status) ~x, testw3, weights=wt, method='breslow')
+> fit0
+Call:
+coxph(formula = Surv(begin, time, status) ~ x, data = testw3, 
+    weights = wt, method = "breslow", iter = 0)
+
+   coef exp(coef) se(coef) z p
+x 0.000     1.000    0.586 0 1
+
+Likelihood ratio test=0  on 1 df, p=1
+n= 14, number of events= 5 
+> summary(fit)
+Call:
+coxph(formula = Surv(begin, time, status) ~ x, data = testw3, 
+    weights = wt, method = "breslow")
+
+  n= 14, number of events= 5 
+
+    coef exp(coef) se(coef)     z Pr(>|z|)
+x 0.8596    2.3621   0.7131 1.205    0.228
+
+  exp(coef) exp(-coef) lower .95 upper .95
+x     2.362     0.4233    0.5839     9.556
+
+Concordance= 0.638  (se = 0.159 )
+Rsquare= 0.114   (max possible= 0.991 )
+Likelihood ratio test= 1.69  on 1 df,   p=0.1932
+Wald test            = 1.45  on 1 df,   p=0.2281
+Score (logrank) test = 1.52  on 1 df,   p=0.217
+
+> resid(fit0, type='mart', collapse=testw3$id)
+          1           2           3           4           5           6 
+ 0.94736842 -0.05263158  0.32236842  0.32236842  0.32236842 -0.67763158 
+          7           8           9 
+-0.67763158 -0.34429825 -1.34429825 
+> resid(fit0, type='score', collapse=testw3$id)
+          1           2           3           4           5           6 
+ 1.24653740  0.03601108  0.10056700  0.10056700 -0.22180142 -0.21193300 
+          7           8           9 
+ 0.46569858 -0.10082189  0.91014302 
+> resid(fit0, type='scho')
+        10         20         20         20         40 
+ 1.3157895  0.3125000  0.3125000 -0.6875000  0.3333333 
+> 
+> resid(fit, type='mart', collapse=testw3$id)
+          1           2           3           4           5           6 
+ 0.85531186 -0.02593169  0.17636221  0.17636221  0.65131344 -0.82363779 
+          7           8           9 
+-0.34868656 -0.64894181 -0.69807852 
+> resid(fit, type='score', collapse=testw3$id)
+          1           2           3           4           5           6 
+ 0.88681615  0.02497653  0.03608964  0.03608964 -0.54297652 -0.12528780 
+          7           8           9 
+ 0.29564605 -0.09476911  0.58400064 
+> resid(fit, type='scho')
+        10         20         20         20         40 
+ 1.0368337  0.1613774  0.1613774 -0.8386226  0.1746960 
+> fit0 <- coxph(Surv(begin, time, status) ~x,testw3, weights=wt, iter=0)
+> resid(fit0, 'mart', collapse=testw3$id)
+          1           2           3           4           5           6 
+ 0.94736842 -0.05263158  0.44454887  0.44454887  0.44454887 -0.88126566 
+          7           8           9 
+-0.88126566 -0.54793233 -1.54793233 
+> resid(coxph(Surv(begin, time, status) ~1, testw3, weights=wt)
++ 		      , collapse=testw3$id)  #Null model
+          1           2           3           4           5           6 
+ 0.94736842 -0.05263158  0.44454887  0.44454887  0.44454887 -0.88126566 
+          7           8           9 
+-0.88126566 -0.54793233 -1.54793233 
+> 
+> fit  <- coxph(Surv(begin,time, status) ~x, testw3, weights=wt, method='efron')
+> fit
+Call:
+coxph(formula = Surv(begin, time, status) ~ x, data = testw3, 
+    weights = wt, method = "efron")
+
+   coef exp(coef) se(coef)    z    p
+x 0.873     2.393    0.713 1.22 0.22
+
+Likelihood ratio test=1.75  on 1 df, p=0.186
+n= 14, number of events= 5 
+> resid(fit, type='mart', collapse=testw3$id)
+          1           2           3           4           5           6 
+ 0.85334536 -0.02560716  0.32265266  0.32265266  0.71696234 -1.07772629 
+          7           8           9 
+-0.45034077 -0.90490339 -0.79598658 
+> resid(fit, type='score', collapse=testw3$id)
+          1           2           3           4           5           6 
+ 0.88116056  0.02477248  0.06057806  0.06057806 -0.59724033 -0.16737066 
+          7           8           9 
+ 0.38040295 -0.13750290  0.66631324 
+> resid(fit, type='scho')
+        10         20         20         20         40 
+ 1.0325955  0.1621759  0.1621759 -0.8378241  0.1728229 
+> #
+> # Check out the impact of weights on the dfbetas
+> #    Am I computing them correctly?
+> #
+> wtemp <- rep(1,26)
+> wtemp[c(5,10,15)] <- 2:4
+> fit <- coxph(Surv(futime, fustat) ~ age + ecog.ps, ovarian, weights=wtemp)
+> rr <- resid(fit, 'dfbeta')
+> 
+> fit1 <- coxph(Surv(futime, fustat) ~ age + ecog.ps, ovarian, weights=wtemp,
++ 	         subset=(-5))
+> fit2 <- coxph(Surv(futime, fustat) ~ age + ecog.ps, ovarian, weights=wtemp,
++ 	         subset=(-10))
+> fit3 <- coxph(Surv(futime, fustat) ~ age + ecog.ps, ovarian, weights=wtemp,
++ 	         subset=(-15))
+> 
+> #
+> # Effect of case weights on expected survival curves post Cox model
+> #
+> fit0  <- coxph(Surv(time, status) ~x, testw1, weights=wt, method='breslow',
++ 	       iter=0)
+> fit0b <- coxph(Surv(time, status) ~x, testw2, method='breslow', iter=0)
+> 
+> surv1 <- survfit(fit0, newdata=list(x=0))
+> surv2 <- survfit(fit0b, newdata=list(x=0))
+> aeq(surv1$surv, surv2$surv)
+[1] TRUE
+> #
+> # Check out the Efron approx. 
+> #
+> 
+> fit0 <- coxph(Surv(time, status) ~x,testw1, weights=wt, iter=0)
+> fit  <- coxph(Surv(time, status) ~x,testw1, weights=wt)
+> resid(fit0, 'mart')
+          1           2           3           4           5           6 
+ 0.94736842 -0.05263158  0.44454887  0.44454887  0.44454887 -0.88126566 
+          7           8           9 
+-0.88126566 -0.54793233 -1.54793233 
+> resid(coxph(Surv(time, status) ~1, testw1, weights=wt))  #Null model
+          1           2           3           4           5           6 
+ 0.94736842 -0.05263158  0.44454887  0.44454887  0.44454887 -0.88126566 
+          7           8           9 
+-0.88126566 -0.54793233 -1.54793233 
+> 
+> # lfun is the known log-likelihood for this data set, worked out in the
+> #   appendix of Therneau and Grambsch
+> # ufun is the score vector and ifun the information matrix
+> lfun <- function(beta) {
++     r <- exp(beta)
++     a <- 7*r +3
++     b <- 4*r +2
++     11*beta - ( log(r^2 + 11*r +7) + 
++ 	(10/3)*(log(a+b) + log(2*a/3 +b) + log(a/3 +b)) + 2*log(2*r +1))
++     }
+> aeq(fit0$log[1], lfun(0))
+[1] TRUE
+> aeq(fit$log[2], lfun(fit$coef))
+[1] TRUE
+> 
+> ufun <- function(beta, efron=T) {  #score statistic
++     r <- exp(beta)
++     xbar1 <- (2*r^2+11*r)/(r^2+11*r +7)
++     xbar2 <- 11*r/(11*r +5)
++     xbar3 <-  2*r/(2*r +1)
++     xbar2b<- 26*r/(26*r+12)
++     xbar2c<- 19*r/(19*r + 9)
++     temp <- 11 - (xbar1 + 2*xbar3)
++     if (efron) temp - (10/3)*(xbar2 + xbar2b + xbar2c)
++     else       temp - 10*xbar2
++     }
+> print(ufun(fit$coef) < 1e-4)  # Should be true
+   x 
+TRUE 
+> 
+> ifun <- function(beta, efron=T) {  # information matrix
++     r <- exp(beta)
++     xbar1 <- (2*r^2+11*r)/(r^2+11*r +7)
++     xbar2 <- 11*r/(11*r +5)
++     xbar3 <-  2*r/(2*r +1)
++     xbar2b<- 26*r/(26*r+12)
++     xbar2c<- 19*r/(19*r + 9)
++     temp <- ((4*r^2 + 11*r)/(r^2+11*r +7) - xbar1^2) +
++ 	    2*(xbar3 - xbar3^2)
++     if (efron) temp + (10/3)*((xbar2- xbar2^2) + (xbar2b - xbar2b^2) +
++ 			      (xbar2c -xbar2c^2))
++     else       temp + 10 * (xbar2- xbar2^2)
++     }
+> 
+> aeq(fit0$var, 1/ifun(0))
+[1] TRUE
+> aeq(fit$var, 1/ifun(fit$coef))
+[1] TRUE
+> 
+> 
+>       
+> # Make sure that the weights pass through the residuals correctly
+> rr1 <- resid(fit, type='mart')
+> rr2 <- resid(fit, type='mart', weighted=T)
+> aeq(rr2/rr1, testw1$wt)
+[1] TRUE
+> rr1 <- resid(fit, type='score')
+> rr2 <- resid(fit, type='score', weighted=T)
+> aeq(rr2/rr1, testw1$wt)
+[1] TRUE
+> 
+> #
+> # Look at the individual components
+> #
+> dt0 <- coxph.detail(fit0)
+> dt <- coxph.detail(fit)
+> aeq(sum(dt$score), ufun(fit$coef))  #score statistic
+[1] TRUE
+> aeq(sum(dt0$score), ufun(0))
+[1] TRUE
+> aeq(dt0$hazard, c(1/19, (10/3)*(1/16 + 1/(6+20/3) + 1/(6+10/3)), 2/3))
+[1] TRUE
+> 
+> 
+> 
+> rm(fit, fit0, rr1, rr2, dt, dt0)
+> #
+> # Effect of weights on the robust variance
+> #
+> test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0),
++ 		    wt=    c(3,0,1,1,1,1,1),
++                     id=    1:7)
+> testx <- data.frame(time=  c(4,4,4,1,1,2,2,3),
++                     status=c(1,1,1,1,0,1,1,0),
++                     x=     c(0,0,0,1,1,1,0,0),
++ 		    wt=    c(1,1,1,1,1,1,1,1),
++                     id=    1:8)
+>  
+> fit1 <- coxph(Surv(time, status) ~x + cluster(id), test1, method='breslow',
++               weights=wt)
+> fit2 <- coxph(Surv(time, status) ~x + cluster(id), testx, method='breslow')
+> 
+> db1 <- resid(fit1, 'dfbeta', weighted=F)
+> db1 <- db1[-2]         #toss the missing
+> db2 <- resid(fit2, 'dfbeta')
+> aeq(db1, db2[3:8])
+[1] TRUE
+> 
+> W <- c(3,1,1,1,1,1)   #Weights, after removal of the missing value
+> aeq(fit2$var, sum(db1*db1*W))
+[1] TRUE
+> aeq(fit1$var, sum(db1*db1*W*W))
+[1] TRUE
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.268   0.032   0.296 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_user.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_user.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_user.R	(revision 2476)
@@ -0,0 +1,29 @@
+options(na.action=na.exclude)  #preserve length of missings
+library(survival)
+
+#
+# Check out using a "user specified" distribution
+#
+mydist <- c(survreg.distributions$extreme, survreg.distributions$weibull[-1])
+mydist$name <- "Weibull2"
+mydist$dist <- NULL
+
+fit1 <- survreg(Surv(time, status) ~ age + ph.ecog, lung)
+fit2 <- survreg(Surv(time, status) ~ age + ph.ecog, lung, dist=mydist)
+
+all.equal(fit1$coef, fit2$coef)
+all.equal(fit1$var, fit2$var)
+
+#
+# And with an data set containing interval censoring
+#
+idat <- read.table('data.interval', skip=3, header=T, sep=',')
+
+fit1 <- survreg(Surv(ltime, rtime, type='interval2') ~ age + ecog.ps, idat)
+fit2 <- survreg(Surv(ltime, rtime, type='interval2') ~ age + ecog.ps, 
+                data=idat, dist=mydist)
+
+all.equal(fit1$coef, fit2$coef)
+all.equal(fit1$var, fit2$var)
+all.equal(fit1$log, fit2$log)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book2.Rout.save	(revision 2476)
@@ -0,0 +1,226 @@
+
+R Under development (unstable) (2016-01-29 r70039) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> 
+> #
+> # Tests from the appendix of Therneau and Grambsch
+> #  b. Data set 1 and Efron estimate
+> #
+> test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
++                     status=c(1,NA,1,0,1,1,0),
++                     x=     c(0, 2,1,1,1,0,0))
+> 
+> byhand <- function(beta, newx=0) {
++     r <- exp(beta)
++     loglik <- 2*beta - (log(3*r +3) + log((r+5)/2) + log(r+3))
++     u <- (30 + 23*r - r^3)/ ((r+1)*(r+3)*(r+5))
++     tfun <- function(x)  x - x^2
++     imat <- tfun(r/(r+1)) + tfun(r/(r+5)) + tfun(r/(r+3))
++ 
++     # The matrix of weights, one row per obs, one col per time
++     #  Time of 1, 6, 6+0 (second death), and 9  
++     wtmat <- matrix(c(1,1,1,1,1,1,
++                       0,0,1,1,1,1,
++                       0,0,.5, .5, 1,1,
++                       0,0,0,0,0,1), ncol=4)
++     wtmat <- diag(c(r,r,r,1,1,1)) %*% wtmat
++ 
++     x <- c(1,1,1,0,0,0)
++     status <- c(1,0,1,1,0,1)
++     xbar <- colSums(wtmat*x)/ colSums(wtmat)
++     haz <-  1/ colSums(wtmat)  # one death at each of the times
++ 
++     hazmat <- wtmat %*% diag(haz) #each subject's hazard over time
++     mart <- status - rowSums(hazmat)
++ 
++     a <- r+1; b<- r+3; d<- r+5  # 'c' in the book, 'd' here
++     score <- c((2*r + 3)/ (3*a^2),
++                -r/ (3*a^2),
++                (675+ r*(1305 +r*(756 + r*(-4 +r*(-79 -13*r)))))/(3*(a*b*d)^2),
++                r*(1/(3*a^2) - a/(2*b^2) - b/(2*d^2)), 
++                2*r*(177 + r*(282 +r*(182 + r*(50 + 5*r)))) /(3*(a*b*d)^2), 
++                2*r*(177 + r*(282 +r*(182 + r*(50 + 5*r)))) /(3*(a*b*d)^2))
++ 
++     # Schoenfeld residual
++     d <- mean(xbar[2:3])
++     scho <- c(1/(r+1), 1- d, 0- d , 0)
++ 
++     surv  <- exp(-cumsum(haz)* exp(beta*newx))[c(1,3,4)]
++     varhaz.g <- cumsum(haz^2)  # since all numerators are 1
++ 
++     varhaz.d <- cumsum((newx-xbar) * haz)
++ 
++     varhaz <- (varhaz.g + varhaz.d^2/ imat) * exp(2*beta*newx)
++ 
++     list(loglik=loglik, u=u, imat=imat, xbar=xbar, haz=haz,
++ 	     mart=mart,  score=score, var.g=varhaz.g, var.d=varhaz.d,
++ 		scho=scho, surv=surv, var=varhaz[c(1,3,4)])
++     }
+> 
+> 
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> 
+> fit0 <-coxph(Surv(time, status) ~x, test1, iter=0)
+> truth0 <- byhand(0,0)
+> aeq(truth0$loglik, fit0$loglik[1])
+[1] TRUE
+> aeq(1/truth0$imat, fit0$var)
+[1] TRUE
+> aeq(truth0$mart, fit0$resid[c(2:6,1)])
+[1] TRUE
+> aeq(resid(fit0), c(-3/4, NA, 5/6, -1/6, 5/12, 5/12, -3/4))
+[1] TRUE
+> aeq(truth0$scho, resid(fit0, 'schoen'))
+[1] TRUE
+> aeq(truth0$score, resid(fit0, 'score')[c(3:7,1)])
+[1] TRUE
+> sfit <- survfit(fit0, list(x=0), censor=FALSE)
+> aeq(sfit$std.err^2, truth0$var)
+[1] TRUE
+> aeq(sfit$surv, truth0$surv)
+[1] TRUE
+> 
+> fit <- coxph(Surv(time, status) ~x, test1, eps=1e-8)
+> aeq(round(fit$coef,6), 1.676857)
+[1] TRUE
+> truebeta <- log(cos(acos((45/23)*sqrt(3/23))/3) * 2* sqrt(23/3))
+> truth <- byhand(truebeta, 0)
+> aeq(truth$loglik, fit$loglik[2])
+[1] TRUE
+> aeq(1/truth$imat, fit$var)
+[1] TRUE
+> aeq(truth$mart, fit$resid[c(2:6,1)])
+[1] TRUE
+> aeq(truth$scho, resid(fit, 'schoen'))
+[1] TRUE
+> aeq(truth$score, resid(fit, 'score')[c(3:7,1)])
+[1] TRUE
+> 
+> # Per comments in the source code, the below is expected to fail for Efron 
+> #  at the tied death times.  (When predicting for new data, predict
+> #  treats a time in the new data set that exactly matches one in the original
+> #  as being just after the original, i.e., experiences the full hazard
+> #  jump there, in the same way that censors do.)
+> expect <- predict(fit, type='expected', newdata=test1) #force recalc
+> use <- !(test1$time==6 | is.na(test1$status))
+> aeq(test1$status[use] - resid(fit)[use], expect[use])  
+[1] TRUE
+> 
+> sfit <- survfit(fit, list(x=0), censor=FALSE)
+> aeq(sfit$surv, truth$surv)
+[1] TRUE
+> aeq(sfit$std.err^2, truth$var)
+[1] TRUE
+> 
+> # 
+> # Done with the formal test, now print out lots of bits
+> #
+> resid(fit)
+         1          2          3          4          5          6          7 
+-0.3655434         NA  0.7191707 -0.2808293 -0.4383414  0.7310869 -0.3655434 
+> resid(fit, 'scor')
+         1          2          3          4          5          6          7 
+ 0.2208584         NA  0.1132780 -0.0442340 -0.1029199 -0.4078409  0.2208584 
+> resid(fit, 'scho')
+        1         6         6         9 
+ 0.157512  0.421244 -0.578756  0.000000 
+> 
+> predict(fit, type='lp')
+[1] -0.8384287         NA  0.8384287  0.8384287  0.8384287 -0.8384287 -0.8384287
+> predict(fit, type='risk')
+[1] 0.4323894        NA 2.3127302 2.3127302 2.3127302 0.4323894 0.4323894
+> predict(fit, type='expected')
+        1         2         3         4         5         6         7 
+1.3655434        NA 0.2808293 0.2808293 1.4383414 0.2689131 0.3655434 
+> predict(fit, type='terms')
+           x
+1 -0.8384287
+2         NA
+3  0.8384287
+4  0.8384287
+5  0.8384287
+6 -0.8384287
+7 -0.8384287
+> predict(fit, type='lp', se.fit=T)
+$fit
+         1          2          3          4          5          6          7 
+-0.8384287         NA  0.8384287  0.8384287  0.8384287 -0.8384287 -0.8384287 
+
+$se.fit
+        1         2         3         4         5         6         7 
+0.6388078        NA 0.6388078 0.6388078 0.6388078 0.6388078 0.6388078 
+
+> predict(fit, type='risk', se.fit=T)
+$fit
+        1         2         3         4         5         6         7 
+0.4323894        NA 2.3127302 2.3127302 2.3127302 0.4323894 0.4323894 
+
+$se.fit
+        1         2         3         4         5         6         7 
+0.4200565        NA 0.9714774 0.9714774 0.9714774 0.4200565 0.4200565 
+
+> predict(fit, type='expected', se.fit=T)
+$fit
+        1         2         3         4         5         6         7 
+1.3655434        NA 0.2808293 0.2808293 1.4383414 0.2689131 0.3655434 
+
+$se.fit
+[1] 1.0649293        NA 0.2864593 0.2864593 1.5922983 0.3661617 0.3661617
+
+> predict(fit, type='terms', se.fit=T)
+$fit
+           x
+1 -0.8384287
+2         NA
+3  0.8384287
+4  0.8384287
+5  0.8384287
+6 -0.8384287
+7 -0.8384287
+
+$se.fit
+          x
+1 0.6388078
+2        NA
+3 0.6388078
+4 0.6388078
+5 0.6388078
+6 0.6388078
+7 0.6388078
+
+> 
+> summary(survfit(fit))
+Call: survfit(formula = fit)
+
+ time n.risk n.event survival std.err lower 95% CI upper 95% CI
+    1      6       1   0.8857   0.117     0.683036            1
+    6      4       2   0.4294   0.237     0.145743            1
+    9      1       1   0.0425   0.116     0.000198            1
+> summary(survfit(fit, list(x=2)))
+Call: survfit(formula = fit, newdata = list(x = 2))
+
+ time n.risk n.event survival  std.err lower 95% CI upper 95% CI
+    1      6       1 2.23e-01 5.97e-01     1.16e-03            1
+    6      4       2 2.87e-05 5.69e-04     3.96e-22            1
+    9      1       1 1.08e-17 1.04e-15     1.07e-99            1
+> 
+> proc.time()
+   user  system elapsed 
+  0.232   0.012   0.238 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/anova.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/anova.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/anova.R	(revision 2476)
@@ -0,0 +1,33 @@
+#
+# Test out anova, with strata terms
+#
+options(na.action=na.omit)
+library(survival)
+
+fit1 <- coxph(Surv(time, status) ~ ph.ecog + wt.loss + strata(sex) + 
+              poly(age,3), lung)
+ztemp <- anova(fit1)
+
+tdata <- na.omit(lung[, c('time', 'status', 'ph.ecog', 'wt.loss', 'sex', 'age')])
+fit2 <- coxph(Surv(time, status)~ ph.ecog + wt.loss + poly(age,3) + strata(sex),
+              data=tdata)
+ztemp2 <- anova(fit2)
+all.equal(ztemp, ztemp2)
+
+
+fit2 <-  coxph(Surv(time, status) ~ ph.ecog + wt.loss + strata(sex), tdata)
+fit3 <-  coxph(Surv(time, status) ~ ph.ecog + strata(sex), tdata)
+
+all.equal(ztemp$loglik, c(fit1$loglik[1], fit3$loglik[2], fit2$loglik[2],
+                         fit1$loglik[2]))
+all.equal(ztemp$Chisq[-1], 2* diff(ztemp$loglik))
+all.equal(ztemp$Df[-1], c(1,1,3))
+
+ztemp2 <- anova(fit3, fit2, fit1)
+all.equal(ztemp2$loglik, ztemp$loglik[-1])
+all.equal(ztemp2$Chisq[2:3], ztemp$Chisq[3:4])
+# Change from ztemp2$P; it's a data frame and in R 3.0.2 abbreviated names
+#   give a warning
+all.equal(ztemp2[[4]][2:3], ztemp[[4]][3:4])
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/prednew.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/prednew.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/prednew.R	(revision 2476)
@@ -0,0 +1,73 @@
+#
+# Make sure that the newdata argument works for various
+#   predictions
+# We purposely use a subset of the lung data that has only some
+#   of the levels of the ph.ecog
+library(survival)
+options(na.action=na.exclude, contrasts=c('contr.treatment', 'contr.poly'))
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+
+myfit <- coxph(Surv(time, status) ~ age + factor(ph.ecog) + strata(sex), lung)
+
+keep <- which(lung$inst<13 & (lung$ph.ecog==1 | lung$ph.ecog==2))
+p1 <- predict(myfit, type='lp')
+p2 <- predict(myfit, type="lp", newdata=lung[keep,])
+p3 <- predict(myfit, type='lp', se.fit=TRUE)
+p4 <- predict(myfit, type="lp", newdata=lung[keep,], se.fit=TRUE)
+aeq(p1[keep], p2)
+aeq(p1, p3$fit)
+aeq(p1[keep], p4$fit)
+aeq(p3$se.fit[keep], p4$se.fit)
+
+p1 <- predict(myfit, type='risk')
+p2 <- predict(myfit, type="risk", newdata=lung[keep,])
+p3 <- predict(myfit, type='risk', se.fit=TRUE)
+p4 <- predict(myfit, type="risk", newdata=lung[keep,], se.fit=TRUE)
+aeq(p1[keep], p2)
+aeq(p1, p3$fit)
+aeq(p1[keep], p4$fit)
+aeq(p3$se.fit[keep], p4$se.fit)
+
+# The all.equal fails for type=expected, Efron approx, and tied death
+#  times due to use of an approximation.  See comments in the source code.
+myfit <- coxph(Surv(time, status) ~ age + factor(ph.ecog) + strata(sex), 
+               data=lung, method='breslow')
+p1 <- predict(myfit, type='expected')
+p2 <- predict(myfit, type="expected", newdata=lung[keep,])
+p3 <- predict(myfit, type='expected', se.fit=TRUE)
+p4 <- predict(myfit, type="expected", newdata=lung[keep,], se.fit=TRUE)
+aeq(p1[keep], p2)
+aeq(p1, p3$fit)
+aeq(p1[keep], p4$fit)
+aeq(p3$se.fit[keep], p4$se.fit)
+
+p1 <- predict(myfit, type='terms')
+p2 <- predict(myfit, type="terms",newdata=lung[keep,])
+p3 <- predict(myfit, type='terms', se.fit=T)
+p4 <- predict(myfit, type="terms",newdata=lung[keep,], se.fit=T)
+aeq(p1[keep,], p2)
+aeq(p1, p3$fit)
+aeq(p1[keep,], p4$fit)
+aeq(p3$se.fit[keep,], p4$se.fit)
+
+#
+# Check out the logic whereby predict does not need to
+#  recover the model frame.  The first call should not 
+#  need to do so, the second should in each case.
+#
+myfit <- coxph(Surv(time, status) ~ age + factor(sex), lung, x=T)
+p1 <- predict(myfit, type='risk', se=T)
+myfit2 <- coxph(Surv(time, status) ~ age + factor(sex), lung)
+p2 <- predict(myfit2, type='risk', se=T)
+aeq(p1$fit, p2$fit)
+aeq(p1$se, p2$se)
+
+p1 <- predict(myfit, type='expected', se=T)
+p2 <- predict(myfit2, type='expected', se=T)
+aeq(p1$fit, p2$fit)
+aeq(p1$se.fit, p2$se.fit)
+
+p1 <- predict(myfit, type='terms', se=T)
+p2 <- predict(myfit2, type='terms', se=T)
+aeq(p1$fit, p2$fit)
+aeq(p1$se.fit, p2$se.fit)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book6.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book6.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book6.Rout.save	(revision 2476)
@@ -0,0 +1,191 @@
+
+R Under development (unstable) (2016-01-29 r70039) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> library(survival)
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> 
+> # Tests of the weighted Cox model
+> #  This is section 1.3 of my appendix -- no yet found in any of the
+> #  printings though, it awaits the next edition
+> #
+> # Efron approximation
+> #
+> aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+> 
+> testw1 <- data.frame(time=  c(1,1,2,2,2,2,3,4,5),
++ 		    status= c(1,0,1,1,1,0,0,1,0),
++ 		    x=      c(2,0,1,1,0,1,0,1,0),
++ 		    wt =    c(1,2,3,4,3,2,1,2,1))
+> xx <- testw1$wt
+> 
+> # Efron estimate
+> byhand <- function(beta, newx=0) {
++     r <- exp(beta)
++     a <- 7*r +3; b<- 4*r+2
++     loglik <- 11*beta - (log(r^2 + 11*r +7) + 10*log(11*r +5)/3 +
++                          10*log(a*2/3 +b)/3 + 10*log(a/3 +b)/3 +2*log(2*r+1))
++ 
++     hazard <- c(1/(r^2 + 11*r +7), 
++                 10/(3*c(11*r +5, a*2/3 +b, a/3+b)), 2/(2*r+1))
++     temp <- c(hazard[1], hazard[1]+hazard[2] + hazard[3]*2/3 + hazard[4]/3,
++               cumsum(hazard)[4:5])
++     risk <- c(r^2, 1,r,r,1,r,1,r,1)
++     expected <- risk* temp[c(1,1,2,2,2,3,3,4,4)]
++     
++     # The matrix of weights, one row per obs, one col per death
++     #   deaths at 1,2,2,2, and 4
++     riskmat <- matrix(c(1,1,1,1,1,1,1,1,1,
++                         0,0,1,1,1,1,1,1,1,
++                         0,0,2/3,2/3,2/3,1,1,1,1,
++                         0,0,1/3,1/3,1/3,1,1,1,1,
++                         0,0,0,0,0,0,0,1,1), ncol=5)
++     wtmat <- diag(c(r^2, 2, 3*r, 4*r, 3, 2*r, 1, 2*r, 1)) %*% riskmat
++ 
++     x      <- c(2,0,1,1,0,1,0,1,0)
++     xbar   <- colSums(x*wtmat)/ colSums(wtmat)
++     imat   <- (4*r^2 + 11*r)*hazard[1] - xbar[1]^2  +
++               10* mean(xbar[2:4] - xbar[2:4]^2) + 2*(xbar[5] - xbar[5]^2)
++ 
++     status <- c(1,0,1,1,1,0,0,1,0)
++     wt     <- c(1,2,3,4,3,2,1,2,1)
++    # Table of sums for score  resids
++     hazmat <- riskmat %*% diag(c(1,10/3,10/3, 10/3,2)/colSums(wtmat)) 
++     dM <- -risk*hazmat  #Expected part
++     dM[1,1] <- dM[1,1] +1  # deaths at time 1
++     for (i in 2:4) dM[3:5, i] <- dM[3:5,i] + 1/3
++     dM[8,5] <- dM[8,5] +1
++     mart <- rowSums(dM)
++     resid <-dM * outer(x, xbar ,'-')
++ 
++     # Increments to the variance of the hazard
++     var.g <- cumsum(hazard^2* c(1,3/10, 3/10, 3/10, 1/2))
++     var.d <- cumsum((xbar-newx)*hazard)
++ 
++     sxbar <- c(xbar[1], mean(xbar[2:4]), xbar[5])  #xbar for Schoen
++     list(loglik=loglik, imat=imat, hazard=hazard, xbar=xbar,
++          mart=status-expected, expected=expected,
++          score=rowSums(resid), schoen=c(2,1,1,0,1) - sxbar[c(1,2,2,2,3)],
++          varhaz=((var.g + var.d^2/imat)* exp(2*beta*newx))[c(1,4,5)])
++     }
+> 
+> # Verify
+> temp <- byhand(0,0)
+> aeq(temp$xbar, c(13/19, 11/16, 26/38, 19/28, 2/3))
+[1] TRUE
+> aeq(temp$hazard, c(1/19, 5/24, 5/19, 5/14, 2/3))
+[1] TRUE
+> 
+> fit0 <- coxph(Surv(time, status) ~x, testw1, weights=wt, iter=0)
+> fit  <- coxph(Surv(time, status) ~x, testw1, weights=wt)
+> 
+> truth0 <- byhand(0,pi)
+> aeq(fit0$loglik[1], truth0$loglik)
+[1] TRUE
+> aeq(1/truth0$imat, fit0$var)
+[1] TRUE
+> aeq(truth0$mart, fit0$resid)
+[1] TRUE
+> aeq(truth0$scho, resid(fit0, 'schoen'))
+[1] TRUE
+> aeq(truth0$score, resid(fit0, 'score')) 
+[1] TRUE
+> sfit <- survfit(fit0, list(x=pi), censor=FALSE)
+> aeq(sfit$std.err^2, truth0$var)  
+[1] TRUE
+> aeq(-log(sfit$surv), cumsum(truth0$hazard)[c(1,4,5)]) 
+[1] TRUE
+> 
+> truth <- byhand(fit$coef, .3)
+> aeq(truth$loglik, fit$loglik[2])
+[1] TRUE
+> aeq(1/truth$imat, fit$var)
+[1] TRUE
+> aeq(truth$mart, fit$resid)
+[1] TRUE
+> aeq(truth$scho, resid(fit, 'schoen'))
+[1] TRUE
+> aeq(truth$score, resid(fit, 'score'))
+[1] TRUE
+> 
+> sfit <- survfit(fit, list(x=.3), censor=FALSE)
+> aeq(sfit$std.err^2, truth$var)  
+[1] TRUE
+> aeq(-log(sfit$surv), (cumsum(truth$hazard)* exp(fit$coef*.3))[c(1,4,5)]) 
+[1] TRUE
+> 
+> 
+> fit0
+Call:
+coxph(formula = Surv(time, status) ~ x, data = testw1, weights = wt, 
+    iter = 0)
+
+   coef exp(coef) se(coef) z p
+x 0.000     1.000    0.584 0 1
+
+Likelihood ratio test=0  on 1 df, p=1
+n= 9, number of events= 5 
+> summary(fit)
+Call:
+coxph(formula = Surv(time, status) ~ x, data = testw1, weights = wt)
+
+  n= 9, number of events= 5 
+
+    coef exp(coef) se(coef)     z Pr(>|z|)
+x 0.8726    2.3931   0.7126 1.225    0.221
+
+  exp(coef) exp(-coef) lower .95 upper .95
+x     2.393     0.4179    0.5921     9.672
+
+Concordance= 0.638  (se = 0.159 )
+Rsquare= 0.177   (max possible= 0.999 )
+Likelihood ratio test= 1.75  on 1 df,   p=0.1858
+Wald test            = 1.5  on 1 df,   p=0.2207
+Score (logrank) test = 1.58  on 1 df,   p=0.2094
+
+> resid(fit0, type='score')
+          1           2           3           4           5           6 
+ 1.24653740  0.03601108  0.14118105  0.14118105 -0.30336782 -0.27962308 
+          7           8           9 
+ 0.60164259 -0.16851197  1.04608703 
+> resid(fit0, type='scho')
+         1          2          2          2          4 
+ 1.3157895  0.3165727  0.3165727 -0.6834273  0.3333333 
+> 
+> resid(fit, type='score')
+          1           2           3           4           5           6 
+ 0.88116056  0.02477248  0.06057806  0.06057806 -0.59724033 -0.16737066 
+          7           8           9 
+ 0.38040295 -0.13750290  0.66631324 
+> resid(fit, type='scho')
+         1          2          2          2          4 
+ 1.0325955  0.1621759  0.1621759 -0.8378241  0.1728229 
+> 
+> rr1 <- resid(fit, type='mart')
+> rr2 <- resid(fit, type='mart', weighted=T)
+> aeq(rr2/rr1, testw1$wt)
+[1] TRUE
+> 
+> rr1 <- resid(fit, type='score')
+> rr2 <- resid(fit, type='score', weighted=T)
+> aeq(rr2/rr1, testw1$wt)
+[1] TRUE
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.220   0.020   0.233 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_peterson.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_peterson.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_peterson.Rout.save	(revision 2476)
@@ -0,0 +1,117 @@
+
+R version 2.14.0 Under development (unstable) (2011-04-10 r55401)
+Copyright (C) 2011 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # Data courtesy of Bercedis Peterson, Duke University.
+> #  v4 of survreg fails due to 2 groups that have only 1 subject; the coef
+> #  for them easily gets out of hand.  In fact, this data set is my toughest
+> #  test of the minimizer.
+> #
+> # A shrinkage model for this coefficient is therefore interesting
+> 
+> 
+> peterson <- data.frame(
++ 		  scan('data.peterson', what=list(grp=0, time=0, status=0)))
+Read 19 records
+> 
+> fitp <- survreg(Surv(time, status) ~ factor(grp), peterson)
+> summary(fitp)
+
+Call:
+survreg(formula = Surv(time, status) ~ factor(grp), data = peterson)
+              Value Std. Error     z        p
+(Intercept)   2.291      0.115 19.92 2.93e-88
+factor(grp)2  0.786      0.177  4.44 8.79e-06
+factor(grp)3  0.728      0.183  3.97 7.09e-05
+factor(grp)4 -1.598      0.218 -7.32 2.48e-13
+factor(grp)5 -0.500      0.218 -2.29 2.21e-02
+factor(grp)6  0.475      0.170  2.79 5.23e-03
+Log(scale)   -1.684      0.257 -6.54 6.09e-11
+
+Scale= 0.186 
+
+Weibull distribution
+Loglik(model)= -26.7   Loglik(intercept only)= -40.7
+	Chisq= 28.18 on 5 degrees of freedom, p= 3.4e-05 
+Number of Newton-Raphson Iterations: 9 
+n= 19 
+
+> 
+> # Now a shrinkage model.  Give the group coefficients
+> #  about 1/2 the scale parameter of the original model, i.e., .18.
+> #
+> ffit <- survreg(Surv(time, status) ~ frailty(grp, theta=.1), peterson)
+> ffit
+Call:
+survreg(formula = Surv(time, status) ~ frailty(grp, theta = 0.1), 
+    data = peterson)
+
+                          coef se(coef) se2    Chisq DF   p     
+(Intercept)               2.62 0.172    0.0874 232.0 1.00 0.0000
+frailty(grp, theta = 0.1)                       10.4 2.15 0.0067
+
+Scale= 0.301 
+
+Iterations: 1 outer, 6 Newton-Raphson
+     Variance of random effect= 0.1   I-likelihood = -11.8 
+Degrees of freedom for terms= 0.3 2.2 0.7 
+Likelihood ratio test=13.8  on 1.1 df, p=0.00027  n= 19 
+> 
+> #
+> # Try 3 degrees of freedom, since there are 6 groups
+> #   compare them to the unconstrained ones.  The frailty coefs are
+> #   on a "sum to constant" constraint rather than "first coef=0", so
+> #   some conversion is neccessary
+> #
+> ffit3 <- survreg(Surv(time, status) ~ frailty(grp, df=3), peterson)
+> print(ffit3)
+Call:
+survreg(formula = Surv(time, status) ~ frailty(grp, df = 3), 
+    data = peterson)
+
+                     coef se(coef) se2    Chisq DF   p      
+(Intercept)          2.54 0.187    0.0685 184.1 1.00 0.00000
+frailty(grp, df = 3)                       16.7 3.06 0.00088
+
+Scale= 0.227 
+
+Iterations: 6 outer, 32 Newton-Raphson
+     Variance of random effect= 0.17   I-likelihood = -10.1 
+Degrees of freedom for terms= 0.1 3.1 0.3 
+Likelihood ratio test=22.9  on 1.5 df, p=4.58e-06  n= 19 
+> 
+> temp <- mean(c(0, fitp$coef[-1])) - mean(ffit3$frail)
+> temp2 <- c(fitp$coef[1] + temp, c(0,fitp$coef[-1]) - temp)
+> xx <- rbind(c(nrow(peterson), table(peterson$grp)),
++ 	    temp2,
++ 	    c(ffit3$coef, ffit3$frail))
+> dimnames(xx) <- list(c("N", "factor", "frailty"),
++ 		     c("Intercept", paste("grp", 1:6)))
+> signif(xx,3)
+        Intercept  grp 1 grp 2 grp 3 grp 4  grp 5 grp 6
+N           19.00  3.000 6.000 6.000  1.00  1.000 2.000
+factor       2.43 -0.137 0.649 0.591 -1.74 -0.636 0.338
+frailty      2.54 -0.255 0.474 0.438 -1.21 -0.554 0.180
+> 
+> rm(ffit, ffit3, temp, temp2, xx, fitp)
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.peterson
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.peterson	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.peterson	(revision 2476)
@@ -0,0 +1,20 @@
+1 4 1
+1 7 1
+1 12 1
+2 3 0
+2 10 0
+2 22 1
+2 21 1
+2 11 0
+2 12 0
+6 18 1
+6 9 1
+3 12 0
+3 19 1
+3 16 0
+3 5 0
+3 14 0
+3 20 1
+4 2 1
+5 6 1
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_sas.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_sas.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_sas.R	(revision 2476)
@@ -0,0 +1,259 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+#
+# Reproduce example 1 in the SAS lifereg documentation
+#
+
+# this fit doesn't give the same log-lik that they claim
+motor <- read.table('data.motor', col.names=c('temp', 'time', 'status'))
+fit1 <- survreg(Surv(time, status) ~ I(1000/(273.2+temp)), motor,
+		subset=(temp>150), dist='lognormal')
+summary(fit1)
+
+# This one, with the loglik on the transformed scale (the inappropriate
+#   scale, Ripley & Venables would argue) does agree.
+# All coefs are of course identical.
+fit2 <- survreg(Surv(log(time), status) ~ I(1000/(273.2+temp)), motor,
+		subset=(temp>150), dist='gaussian')
+
+
+# Give the quantile estimates, which is the lower half of "output 48.1.5"
+#  in the SAS 9.2 manual
+
+pp1 <- predict(fit1, newdata=list(temp=c(130,150)), p=c(.1, .5, .9),
+		      type='quantile', se=T)
+pp2 <- predict(fit1, newdata=list(temp=c(130,150)), p=c(.1, .5, .9),
+		      type='uquantile', se=T)
+pp1
+
+temp130 <- matrix(0, nrow=3, ncol=6)
+temp130[,1] <- pp1$fit[1,]
+temp130[,2] <- pp1$se.fit[1,]
+temp130[,3] <- pp2$fit[1,]
+temp130[,4] <- pp2$se.fit[1,]
+temp130[,5] <- exp(pp2$fit[1,] - 1.64*pp2$se.fit[1,])
+temp130[,6] <- exp(pp2$fit[1,] + 1.64*pp2$se.fit[1,])
+dimnames(temp130) <- list(c("p=.1", "p=.2", "p=.3"),
+     c("Time", "se(time)", "log(time)", "se[log(time)]", 
+       "lower 90", "upper 90"))
+print(temp130)
+
+# A set of examples, copied from the manual pages of SAS procedure
+#  "reliability", which is part of their QC product.
+#
+
+color <- c("black", "red", "green", "blue", "magenta", "red4",
+                        "orange", "DarkGreen", "cyan2", "DarkViolet")
+palette(color)
+pdf(file='reliability.pdf')
+
+#
+# Insulating fluids example
+#
+fluid <- read.table('data.fluid', col.names=c('time', 'voltage'))
+
+# Adding a -1 to the fit just causes the each group to have it's own
+# intercept, rather than a global intercept + constrasts.  The strata
+# statement allows each to have a separate scale
+ffit <- survreg(Surv(time) ~ voltage + strata(voltage) -1, fluid)
+
+# Get predicted quantiles at each of the voltages
+# By default predict() would give a line of results for each observation,
+#  I only want the unique set of x's, i.e., only 4 cases
+uvolt <- sort(unique(fluid$voltage))      #the unique levels
+plist <- c(1, 2, 5, 1:9 *10, 95, 99)/100
+pred  <- predict(ffit, type='quantile', p=plist,
+                 newdata=data.frame(voltage=factor(uvolt)))
+tfun <- function(x) log(-log(1-x))
+
+matplot(t(pred), tfun(plist), type='l', log='x', lty=1,
+        col=1:4, yaxt='n')
+axis(2, tfun(plist), format(100*plist), adj=1)
+
+kfit <- survfit(Surv(time) ~ voltage, fluid, type='fleming') #KM fit
+for (i in 1:4) {
+    temp <- kfit[i]
+    points(temp$time, tfun(1-temp$surv), col=i, pch=i)
+    }
+
+# Now a table
+temp <- array(0, dim=c(4,4,4))  #4 groups by 4 parameters by 4 stats
+temp[,1,1] <- ffit$coef         # "EV Location" in SAS manual
+temp[,2,1] <- ffit$scale        # "EV scale"
+temp[,3,1] <- exp(ffit$coef)    # "Weibull Scale"
+temp[,4,1] <- 1/ffit$scale      # "Weibull Shape"
+ 
+temp[,1,2] <- sqrt(diag(ffit$var))[1:4]   #standard error
+temp[,2,2] <- sqrt(diag(ffit$var))[5:8] * ffit$scale
+temp[,3,2] <- temp[,1,2] * temp[,3,1]
+temp[,4,2] <- temp[,2,2] / (temp[,2,1])^2
+
+temp[,1,3] <- temp[,1,1] - 1.96*temp[,1,2]  #lower conf limits 
+temp[,1,4]  <- temp[,1,1] + 1.96*temp[,1,2] # upper
+# log(scale) is the natural parameter, in which the routine did its fitting
+#  and on which the std errors were computed
+temp[,2, 3] <- exp(log(ffit$scale) - 1.96*sqrt(diag(ffit$var))[5:8])
+temp[,2, 4] <- exp(log(ffit$scale) + 1.96*sqrt(diag(ffit$var))[5:8])
+
+temp[,3, 3:4] <- exp(temp[,1,3:4])
+temp[,4, 3:4] <- 1/temp[,2,4:3]
+
+dimnames(temp) <- list(uvolt, c("EV Location", "EV Scale", "Weibull scale",
+                                "Weibull shape"),
+                       c("Estimate", "SE", "lower 95% CI", "uppper 95% CI"))
+print(aperm(temp, c(2,3,1)), digits=5)
+
+rm(temp, uvolt, plist, pred, ffit, kfit) 
+
+#####################################################################
+# Turbine cracks data
+cracks <- read.table('data.cracks', col.names=c('time1', 'time2', 'n'))
+cfit <- survreg(Surv(time1, time2, type='interval2') ~1, 
+                dist='weibull', data=cracks, weight=n)
+
+summary(cfit)
+#Their output also has Wiebull scale = exp(cfit$coef), shape = 1/(cfit$scale)
+
+# Draw the SAS plot
+#  The "type=fleming" argument reflects that they estimate hazards rather than
+#  survival, and forces a Nelson-Aalen hazard estimate
+#
+plist <-  c(1, 2, 5, 1:8 *10)/100
+plot(qsurvreg(plist, cfit$coef, cfit$scale), tfun(plist), log='x',
+     yaxt='n', type='l',
+     xlab="Weibull Plot for Time", ylab="Percent")
+axis(2, tfun(plist), format(100*plist), adj=1)
+
+kfit <- survfit(Surv(time1, time2, type='interval2') ~1, data=cracks,
+                weight=n, type='fleming')
+# Only plot point where n.event > 0 
+# Why?  I'm trying to match them.  Personally, all should be plotted.
+who <- (kfit$n.event > 0)
+points(kfit$time[who], tfun(1-kfit$surv[who]), pch='+')
+points(kfit$time[who], tfun(1-kfit$upper[who]), pch='-')
+points(kfit$time[who], tfun(1-kfit$lower[who]), pch='-')
+
+text(rep(3,6), seq(.5, -1.0, length=6), 
+         c("Scale", "Shape", "Right Censored", "Left Censored", 
+           "Interval Censored", "Fit"), adj=0)
+text(rep(9,6), seq(.5, -1.0, length=6), 
+         c(format(round(exp(cfit$coef), 2)),
+           format(round(1/cfit$scale, 2)),
+           format(tapply(cracks$n, cfit$y[,3], sum)), "ML"), adj=1)
+
+# Now a portion of his percentiles table
+#  I don't get the same SE as SAS, I haven't checked out why.  The
+#  estimates and se for the underlying Weibull model are the same.
+temp <- predict(cfit, type='quantile', p=plist, se=T)
+tempse <- sqrt(temp$se[1,])
+mat <- cbind(temp$fit[1,], tempse, 
+             temp$fit[1,] -1.96*tempse, temp$fit[1,] + 1.96*tempse)
+dimnames(mat) <- list(plist*100, c("Estimate", "SE", "Lower .95", "Upper .95"))
+print(mat)
+
+#
+# The cracks data has a particularly easy estimate, so use
+# it to double check code
+time <- c(cracks$time2[1], (cracks$time1 + cracks$time2)[2:8]/2, 
+          cracks$time1[9])
+cdf  <- cumsum(cracks$n)/sum(cracks$n)
+all.equal(kfit$time, time)
+all.equal(kfit$surv, 1-cdf[c(1:8,8)]) 
+rm(time, cdf, kfit)
+
+
+#######################################################
+#
+# Valve data
+#   The input data has id, time, and an indicator of whether there was an
+#   event at that time: -1=no, 1=yes.  No one has an event at their last time.
+#  Convert the data to (start, stop] form
+#  The input data has two engines with dual failures: 328 loses 2 valves at 
+#    time 653, and number 402 loses 2 at time 139.  For each, fudge the first
+#    time to be .1 days earlier.
+#
+temp <- matrix(scan('data.valve'), byrow=T, ncol=3)
+
+n <- nrow(temp)
+valve <- data.frame(id=temp[,1], 
+                    time1 = c(0, ifelse(diff(temp[,1])==0, temp[-n,2],0)),
+                    time2 = temp[,2],
+                    status= as.numeric(temp[,3]==1))
+
+indx <- (1:nrow(valve))[valve$time1==valve$time2]
+valve$time1[indx]   <- valve$time1[indx] - .1
+valve$time2[indx-1] <- valve$time2[indx-1] - .1
+
+kfit <- survfit(Surv(time1, time2, status) ~1, valve, type='fh2')
+
+plot(kfit, fun='cumhaz', ylab="Sample Mean Cumulative Failures", xlab='Time',
+     ylim=range(-log(kfit$lower)))
+title("Valve replacement data")
+
+# The summary.survfit function doesn't have an option for printing out
+#   cumulative hazards instead of survival --- need to add that
+#   so I just reprise the central code of print.summary.survfit
+xx <- summary(kfit)
+temp <- cbind(xx$time, xx$n.risk, xx$n.event, -log(xx$surv), 
+              xx$std.err/xx$surv, -log(xx$upper), -log(xx$lower))
+dimnames(temp) <- list(rep("", nrow(temp)),
+                       c("time", "n.risk", "n.event", "Cum haz", "std.err",
+                         "lower 95%", "upper 95%"))
+print(temp, digits=2)
+
+# Note that I have the same estimates but different SE's.  We are using a
+#  different estimator. It's a statistical argument as to which is
+#  better (one could defend both sides): do you favor JASA or Technometrics?
+rm(temp, kfit, indx, xx)
+                    
+######################################################
+# Turbine data, lognormal fit
+turbine <- read.table('data.turbine', 
+                      col.names=c("time1", "time2", "n"))
+
+tfit <- survreg(Surv(time1, time2, type='interval2') ~1, turbine,
+                dist='lognormal', weights=n, subset=(n>0))
+
+summary(tfit)
+
+# Now, do his plot, but put bootstrap confidence bands on it!
+#  First, make a simple data set without weights
+tdata <- turbine[rep(1:nrow(turbine), turbine$n),]
+
+qstat <- function(data) {
+    temp <- survreg(Surv(time1, time2, type='interval2') ~1, data=data,
+                    dist='lognormal')
+    qsurvreg(plist, temp$coef, temp$scale, dist='lognormal')
+    }
+
+{if (exists('bootstrap')) {
+    bfit <- bootstrap(tdata, qstat, B=1000)
+    bci <- limits.bca(bfit, probs=c(.025, .975))
+    }
+else {
+    values <- matrix(0, nrow=1000, ncol=length(plist))
+    n <- nrow(tdata)
+    for (i in 1:1000) {
+        subset <- sample(1:n, n, replace=T)
+        values[i,] <- qstat(tdata[subset,])
+        }
+    bci <- t(apply(values,2, quantile, c(.05, .95)))
+    }
+ }
+xmat <- cbind(qsurvreg(plist, tfit$coef, tfit$scale, dist='lognormal'),
+              bci)
+
+
+matplot(xmat, qnorm(plist), 
+        type='l', lty=c(1,2,2), col=c(1,1,1), 
+        log='x', yaxt='n', ylab='Percent', 
+        xlab='Time of Cracking (Hours x 100)')
+axis(2, qnorm(plist), format(100*plist), adj=1)
+title("Turbine Data")
+kfit <- survfit(Surv(time1, time2, type='interval2') ~1, data=tdata)
+points(kfit$time, qnorm(1-kfit$surv), pch='+')
+
+dev.off()  #close the plot file
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book1.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book1.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book1.R	(revision 2476)
@@ -0,0 +1,108 @@
+library(survival)
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+
+#
+# Tests from the appendix of Therneau and Grambsch
+#  a. Data set 1 and Breslow estimate
+#  The data below is not in time order, to also test sorting, and has 1 NA
+#
+test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0))
+
+# Breslow estimate
+byhand1 <- function(beta, newx=0) {
+    r <- exp(beta)
+    loglik <- 2*beta - (log(3*r+3) + 2*log(r+3))
+    u <- (6 + 3*r - r^2) / ((r+1)*(r+3))
+    imat <- r/(r+1)^2 + 6*r/(r+3)^2
+
+    x <- c(1,1,1,0,0,0)
+    status <- c(1,0,1,1,0,1)
+    xbar <- c(r/(r+1), r/(r+3), 0, 0)  # at times 1, 6, 8 and 9
+    haz <- c(1/(3*r+3), 2/(r+3), 0, 1 )
+    ties <- c(1,1,2,2,3,4)
+    wt <- c(r,r,r,1,1,1)
+    mart <- c(1,0,1,1,0,1) -  wt* (cumsum(haz))[ties]  #martingale residual
+
+    a <- 3*(r+1)^2; b<- (r+3)^2
+    score <- c((2*r+3)/a, -r/a, -r/a + 3*(3-r)/b,  r/a - r*(r+1)/b,
+               r/a + 2*r/b, r/a + 2*r/b)
+
+    # Schoenfeld residual
+    scho <- c(1/(r+1), 1- (r/(3+r)), 0-(r/(3+r)) , 0)
+
+    surv  <- exp(-cumsum(haz)* exp(beta*newx))
+    varhaz.g <- cumsum(c(1/(3*r+3)^2, 2/(r+3)^2, 0, 1 ))
+
+    varhaz.d <- cumsum((newx-xbar) * haz)
+
+    varhaz <- (varhaz.g + varhaz.d^2/ imat) * exp(2*beta*newx)
+
+    names(xbar) <- names(haz) <- 1:4
+    names(surv) <- names(varhaz) <- 1:4
+    list(loglik=loglik, u=u, imat=imat, xbar=xbar, haz=haz,
+	     mart=mart,  score=score,
+		scho=scho, surv=surv, var=varhaz,
+		varhaz.g=varhaz.g, varhaz.d=varhaz.d)
+    }
+
+
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+
+fit0 <-coxph(Surv(time, status) ~x, test1, iter=0, method='breslow')
+truth0 <- byhand1(0,0)
+aeq(truth0$loglik, fit0$loglik[1])
+aeq(1/truth0$imat, fit0$var)
+aeq(truth0$mart, fit0$resid[c(2:6,1)])
+aeq(truth0$scho, resid(fit0, 'schoen'))
+aeq(truth0$score, resid(fit0, 'score')[c(3:7,1)])
+sfit <- survfit(fit0, list(x=0))
+aeq(sfit$std.err^2, c(7/180, 2/9, 2/9, 11/9))
+aeq(resid(fit0, 'score'), c(5/24, NA, 5/12, -1/12, 7/24, -1/24, 5/24))
+
+fit1 <- coxph(Surv(time, status) ~x, test1, iter=1, method='breslow')
+aeq(fit1$coef, 8/5)
+
+# This next gives an ignorable warning message
+fit2 <- coxph(Surv(time, status) ~x, test1, method='breslow', iter=2)
+aeq(round(fit2$coef, 6), 1.472724)
+
+fit <- coxph(Surv(time, status) ~x, test1, method='breslow', eps=1e-8)
+aeq(round(fit$coef,7), 1.4752849)
+truth <- byhand1(fit$coef, 0)
+aeq(truth$loglik, fit$loglik[2])
+aeq(1/truth$imat, fit$var)
+aeq(truth$mart, fit$resid[c(2:6,1)])
+aeq(truth$scho, resid(fit, 'schoen'))
+aeq(truth$score, resid(fit, 'score')[c(3:7,1)])
+expect <- predict(fit, type='expected', newdata=test1) #force recalc
+aeq(test1$status[-2] -fit$resid, expect[-2]) #tests the predict function
+
+sfit <- survfit(fit, list(x=0), censor=FALSE)
+aeq(sfit$std.err^2, truth$var[c(1,2,4)]) # sfit skips time 8 (no events there)
+aeq(-log(sfit$surv), (cumsum(truth$haz))[c(1,2,4)])
+sfit <- survfit(fit, list(x=0), censor=TRUE)
+aeq(sfit$std.err^2, truth$var) 
+aeq(-log(sfit$surv), (cumsum(truth$haz)))
+
+
+# 
+# Done with the formal test, now print out lots of bits
+#
+resid(fit)
+resid(fit, 'scor')
+resid(fit, 'scho')
+
+predict(fit, type='lp')
+predict(fit, type='risk')
+predict(fit, type='expected')
+predict(fit, type='terms')
+predict(fit, type='lp', se.fit=T)
+predict(fit, type='risk', se.fit=T)
+predict(fit, type='expected', se.fit=T)
+predict(fit, type='terms', se.fit=T)
+
+summary(survfit(fit))
+summary(survfit(fit, list(x=2)))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_capacitor.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_capacitor.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/r_capacitor.Rout.save	(revision 2476)
@@ -0,0 +1,88 @@
+
+R version 2.7.1 (2008-06-23)
+Copyright (C) 2008 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> capacitor <- read.table('data.capacitor', row.names=1,
++ 			col.names=c('', 'days', 'event', 'voltage'))
+> 
+> fitig <- survreg(Surv(days, event)~voltage, 
++ 	dist = "gaussian", data = capacitor)
+> summary(fitig)
+
+Call:
+survreg(formula = Surv(days, event) ~ voltage, data = capacitor, 
+    dist = "gaussian")
+             Value Std. Error     z        p
+(Intercept) 1764.9    163.387 10.80 3.36e-27
+voltage      -53.9      5.545 -9.72 2.56e-22
+Log(scale)     4.8      0.105 45.56 0.00e+00
+
+Scale= 121 
+
+Gaussian distribution
+Loglik(model)= -361.9   Loglik(intercept only)= -420.1
+	Chisq= 116.33 on 1 degrees of freedom, p= 0 
+Number of Newton-Raphson Iterations: 6 
+n= 125 
+
+> 
+> fitix <- survreg(Surv(days, event)~voltage, 
++ 	dist = "extreme", data = capacitor)
+> summary(fitix)
+
+Call:
+survreg(formula = Surv(days, event) ~ voltage, data = capacitor, 
+    dist = "extreme")
+              Value Std. Error     z        p
+(Intercept) 2055.59    180.349  11.4 4.28e-30
+voltage      -62.21      5.967 -10.4 1.88e-25
+Log(scale)     4.53      0.108  41.9 0.00e+00
+
+Scale= 92.9 
+
+Extreme value distribution
+Loglik(model)= -360   Loglik(intercept only)= -427.1
+	Chisq= 134.25 on 1 degrees of freedom, p= 0 
+Number of Newton-Raphson Iterations: 7 
+n= 125 
+
+> 
+> fitil <- survreg(Surv(days, event)~voltage, 
++ 	dist = "logistic", data = capacitor)
+> summary(fitil)
+
+Call:
+survreg(formula = Surv(days, event) ~ voltage, data = capacitor, 
+    dist = "logistic")
+              Value Std. Error     z         p
+(Intercept) 1811.56    148.853  12.2  4.48e-34
+voltage      -55.48      4.986 -11.1  9.39e-29
+Log(scale)     4.19      0.117  35.8 2.03e-280
+
+Scale= 66.3 
+
+Logistic distribution
+Loglik(model)= -360.4   Loglik(intercept only)= -423.7
+	Chisq= 126.5 on 1 degrees of freedom, p= 0 
+Number of Newton-Raphson Iterations: 6 
+n= 125 
+
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/mrtest.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/mrtest.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/mrtest.R	(revision 2476)
@@ -0,0 +1,28 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+{if (is.R()) mdy.date <- function(m, d, y) {
+    y <- ifelse(y<100, y+1900, y)
+    as.Date(paste(m,d,y, sep='/'), "%m/%d/%Y")
+    }
+else mdy.date <- function(m,d,y) {
+    y <- ifelse(y<100, y+1900, y)
+    timeDate(paste(y, m, d, sep='/'), in.format="%Y/%m/%d")
+    }
+ }
+
+#
+# A test of the match.ratetable function, specifically the
+#  change to allow partial matching of strings 
+#  Note that 10,000 days old is 27.4 years
+#
+aeq <- function(x,y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+temp1 <- data.frame(year=mdy.date(2,2,1960:1964),
+                    age =   10000 + 1:5,
+                    sex = c('M', 'fema', 'f', 'ma', 'F'))
+
+temp2 <- ratetable(year=temp1$year, age=temp1$age, sex=temp1$sex)
+temp3 <- match.ratetable(temp2, survexp.us)
+aeq(temp3$R[,2], c(1,2,2,1,2))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book5.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book5.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/book5.R	(revision 2476)
@@ -0,0 +1,125 @@
+library(survival)
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+
+# Tests of the weighted Cox model
+#  This is section 1.3 of my appendix -- not yet found in the book
+#  though, it awaits the next edition
+#
+# Similar data set to test1, but add weights,
+#                                    a double-death/censor tied time
+#                                    a censored last subject
+# The latter two are cases covered only feebly elsewhere.
+# 
+# The data set testw2 has the same data, but done via replication
+#
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+
+testw1 <- data.frame(time=  c(1,1,2,2,2,2,3,4,5),
+		    status= c(1,0,1,1,1,0,0,1,0),
+		    x=      c(2,0,1,1,0,1,0,1,0),
+		    wt =    c(1,2,3,4,3,2,1,2,1))
+xx <- testw1$wt
+testw2 <- data.frame(time=   rep(c(1,1,2,2,2,2,3,4,5), xx),
+		     status= rep(c(1,0,1,1,1,0,0,1,0), xx),
+		     x=      rep(c(2,0,1,1,0,1,0,1,0), xx),
+		     id=     rep(1:9, xx))
+indx <- match(1:9, testw2$id)
+
+# Breslow estimate
+byhand <- function(beta, newx=0) {
+    r <- exp(beta)
+    loglik <- 11*beta - (log(r^2 + 11*r +7) + 10*log(11*r +5) +2*log(2*r+1))
+    hazard <- c(1/(r^2 + 11*r +7), 10/(11*r +5), 2/(2*r+1))
+    xbar <- c((2*r^2 + 11*r)*hazard[1], 11*r/(11*r +5), r*hazard[3])
+    U <- 11- (xbar[1] + 10*xbar[2] + 2*xbar[3])
+    imat <- (4*r^2 + 11*r)*hazard[1] - xbar[1]^2 +
+            10*(xbar[2] - xbar[2]^2) + 2*(xbar[3] - xbar[3]^2)
+
+    temp <- cumsum(hazard)
+    risk <- c(r^2, 1,r,r,1,r,1,r,1)
+    expected <- risk* temp[c(1,1,2,2,2,2,2,3,3)]
+    
+    # The matrix of weights, one row per obs, one col per death
+    #   deaths at 1,2,2,2, and 4
+    riskmat <- matrix(c(1,1,1,1,1,1,1,1,1,
+                        0,0,1,1,1,1,1,1,1,
+                        0,0,1,1,1,1,1,1,1,
+                        0,0,1,1,1,1,1,1,1,
+                        0,0,0,0,0,0,0,1,1), ncol=5)
+    wtmat <- diag(c(r^2, 2, 3*r, 4*r, 3, 2*r, 1, 2*r, 1)) %*% riskmat
+
+    x      <- c(2,0,1,1,0,1,0,1,0)
+    status <- c(1,0,1,1,1,0,0,1,0)
+    wt     <- c(1,2,3,4,3,2,1,2,1)
+   # Table of sums for score and Schoenfeld resids
+    hazmat <- riskmat %*% diag(c(1,3,4,3,2)/colSums(wtmat)) 
+    dM <- -risk*hazmat  #Expected part
+    dM[1,1] <- dM[1,1] +1  # deaths at time 1
+    for (i in 2:4) dM[i+1, i] <- dM[i+1,i] +1
+    dM[8,5] <- dM[8,5] +1
+    mart <- rowSums(dM)
+    resid <-dM * outer(x, xbar[c(1,2,2,2,3)] ,'-')
+
+    # Increments to the variance of the hazard
+    var.g <- cumsum(hazard^2/ c(1,10,2))
+    var.d <- cumsum((xbar-newx)*hazard)
+
+    list(loglik=loglik, U=U, imat=imat, hazard=hazard, xbar=xbar,
+         mart=c(1,0,1,1,1,0,0,1,0)-expected, expected=expected,
+         score=rowSums(resid), schoen=c(2,1,1,0,1) - xbar[c(1,2,2,2,3)],
+         varhaz=(var.g + var.d^2/imat)* exp(2*beta*newx))
+    }
+
+aeq(byhand(0)$expected, c(1/19, 1/19, rep(103/152, 5), rep(613/456,2))) #verify 
+
+fit0 <- coxph(Surv(time, status) ~x, testw1, weights=wt,
+		    method='breslow', iter=0)
+fit0b <- coxph(Surv(time, status) ~x, testw2, method='breslow', iter=0)
+fit  <- coxph(Surv(time, status) ~x, testw1, weights=wt, method='breslow')
+fitb <- coxph(Surv(time, status) ~x, testw2, method='breslow')
+
+aeq(resid(fit0, type='mart'), (resid(fit0b, type='mart'))[indx])
+aeq(resid(fit0, type='scor'), (resid(fit0b, type='scor'))[indx])
+aeq(unique(resid(fit0, type='scho')), unique(resid(fit0b, type='scho')))
+
+truth0 <- byhand(0,pi)
+aeq(fit0$loglik[1], truth0$loglik)
+aeq(1/truth0$imat, fit0$var)
+aeq(truth0$mart, fit0$resid)
+aeq(truth0$scho, resid(fit0, 'schoen'))
+aeq(truth0$score, resid(fit0, 'score')) 
+sfit <- survfit(fit0, list(x=pi), censor=FALSE)
+aeq(sfit$std.err^2, truth0$var)
+aeq(-log(sfit$surv), cumsum(truth0$haz))
+
+truth <- byhand(0.85955744, .3)
+aeq(truth$loglik, fit$loglik[2])
+aeq(1/truth$imat, fit$var)
+aeq(truth$mart, fit$resid)
+aeq(truth$scho, resid(fit, 'schoen'))
+aeq(truth$score, resid(fit, 'score'))
+
+sfit <- survfit(fit, list(x=.3), censor=FALSE)
+aeq(sfit$std.err^2, truth$var) 
+aeq(-log(sfit$surv), (cumsum(truth$haz)* exp(fit$coef*.3)))
+
+
+fit0
+summary(fit)
+resid(fit0, type='score')
+resid(fit0, type='scho')
+
+resid(fit, type='score')
+resid(fit, type='scho')
+aeq(resid(fit, type='mart'), (resid(fitb, type='mart'))[indx])
+aeq(resid(fit, type='scor'), (resid(fitb, type='scor'))[indx])
+aeq(unique(resid(fit, type='scho')), unique(resid(fitb, type='scho')))
+rr1 <- resid(fit, type='mart')
+rr2 <- resid(fit, type='mart', weighted=T)
+aeq(rr2/rr1, testw1$wt)
+
+rr1 <- resid(fit, type='score')
+rr2 <- resid(fit, type='score', weighted=T)
+aeq(rr2/rr1, testw1$wt)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_lung.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_lung.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/fr_lung.Rout.save	(revision 2476)
@@ -0,0 +1,51 @@
+
+R version 2.11.1 (2010-05-31)
+Copyright (C) 2010 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+Loading required package: splines
+> 
+> #
+> # A test with the lung data
+> #  This caused problems in one release
+> 
+> #
+> #   First, get rid of some missings
+> #
+> lung2 <- na.omit(lung[c('time', 'status', 'wt.loss')])
+> 
+> #
+> # Test the logliklihoods
+> #
+> fit <- coxph(Surv(time, status) ~ pspline(wt.loss,3), lung2, x=T)
+> fit0<- coxph(Surv(time, status) ~ 1, lung2)
+> fit1<- coxph(Surv(time, status) ~ fit$x, lung2, iter=0, init=fit$coef)
+> 
+> all.equal(fit$loglik[1], fit0$loglik)
+[1] TRUE
+> all.equal(fit$loglik[2], fit1$loglik[2])
+[1] TRUE
+> 
+> #
+> # Check variances
+> #
+> imat <- solve(fit1$var)
+> var2 <- fit$var %*% imat %*% fit$var
+> all.equal(fit$var2, var2)
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/bladder.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/bladder.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/bladder.Rout.save	(revision 2476)
@@ -0,0 +1,155 @@
+
+R Under development (unstable) (2016-01-29 r70039) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> options(na.action=na.exclude) # preserve missings
+> options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+> library(survival)
+> 
+> #
+> # Fit the models found in Wei et. al.
+> #
+> wfit <- coxph(Surv(stop, event) ~ (rx + size + number)* strata(enum) +
++ 		 cluster(id), bladder, method='breslow')
+> wfit
+Call:
+coxph(formula = Surv(stop, event) ~ (rx + size + number) * strata(enum) + 
+    cluster(id), data = bladder, method = "breslow")
+
+                             coef exp(coef) se(coef) robust se     z      p
+rx                        -0.5176    0.5959   0.3158    0.3075 -1.68 0.0923
+size                       0.0679    1.0702   0.1012    0.0853  0.80 0.4260
+number                     0.2360    1.2662   0.0761    0.0721  3.27 0.0011
+rx:strata(enum)enum=2     -0.1018    0.9032   0.5043    0.3265 -0.31 0.7552
+rx:strata(enum)enum=3     -0.1823    0.8334   0.5579    0.3916 -0.47 0.6417
+rx:strata(enum)enum=4     -0.1332    0.8753   0.6581    0.4968 -0.27 0.7887
+size:strata(enum)enum=2   -0.1440    0.8659   0.1680    0.1119 -1.29 0.1981
+size:strata(enum)enum=3   -0.2792    0.7564   0.2086    0.1511 -1.85 0.0647
+size:strata(enum)enum=4   -0.2711    0.7626   0.2515    0.1856 -1.46 0.1442
+number:strata(enum)enum=2 -0.0984    0.9063   0.1193    0.1144 -0.86 0.3895
+number:strata(enum)enum=3 -0.0662    0.9360   0.1298    0.1167 -0.57 0.5708
+number:strata(enum)enum=4  0.0928    1.0972   0.1466    0.1175  0.79 0.4298
+
+Likelihood ratio test=29.4  on 12 df, p=0.00344
+n= 340, number of events= 112 
+> 
+> # Check the rx coefs versus Wei, et al, JASA 1989
+> rx <- c(1,4,5,6)  # the treatment coefs above
+> cmat <- diag(4); cmat[1,] <- 1;          #contrast matrix
+> wfit$coef[rx] %*% cmat                   # the coefs in their paper (table 5)
+           [,1]       [,2]       [,3]       [,4]
+[1,] -0.5176209 -0.6194404 -0.6998771 -0.6507935
+> t(cmat) %*% wfit$var[rx,rx] %*% cmat  # var matrix (eqn 3.2)
+           [,1]       [,2]       [,3]      [,4]
+[1,] 0.09455501 0.06017669 0.05677331 0.0437777
+[2,] 0.06017669 0.13242834 0.13011557 0.1160420
+[3,] 0.05677331 0.13011557 0.17235879 0.1590865
+[4,] 0.04377770 0.11604200 0.15908650 0.2398112
+> 
+> # Anderson-Gill fit
+> fita <- coxph(Surv(start, stop, event) ~ rx + size + number + cluster(id),
++ 		  bladder2,  method='breslow')
+> summary(fita)
+Call:
+coxph(formula = Surv(start, stop, event) ~ rx + size + number + 
+    cluster(id), data = bladder2, method = "breslow")
+
+  n= 178, number of events= 112 
+
+           coef exp(coef) se(coef) robust se      z Pr(>|z|)   
+rx     -0.45979   0.63142  0.19996   0.25801 -1.782  0.07474 . 
+size   -0.04256   0.95833  0.06903   0.07555 -0.563  0.57317   
+number  0.17164   1.18726  0.04733   0.06131  2.799  0.00512 **
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+       exp(coef) exp(-coef) lower .95 upper .95
+rx        0.6314     1.5837    0.3808     1.047
+size      0.9583     1.0435    0.8264     1.111
+number    1.1873     0.8423    1.0528     1.339
+
+Concordance= 0.634  (se = 0.03 )
+Rsquare= 0.09   (max possible= 0.994 )
+Likelihood ratio test= 16.77  on 3 df,   p=0.000787
+Wald test            = 11.76  on 3 df,   p=0.008256
+Score (logrank) test = 18.57  on 3 df,   p=0.0003355,   Robust = 11.44  p=0.009588
+
+  (Note: the likelihood ratio and score tests assume independence of
+     observations within a cluster, the Wald and robust score tests do not).
+> 
+> # Prentice fits.  Their model 1 a and b are the same
+> fit1p  <- coxph(Surv(stop, event) ~ rx + size + number, bladder2,
++ 		subset=(enum==1), method='breslow')
+> fit2pa <- coxph(Surv(stop, event) ~ rx + size + number, bladder2,
++ 		subset=(enum==2), method='breslow')
+> fit2pb <- coxph(Surv(stop-start,  event) ~ rx + size + number, bladder2,
++ 		   subset=(enum==2), method='breslow')
+> fit3pa <- coxph(Surv(stop, event) ~ rx + size + number, bladder2,
++ 		subset=(enum==3), method='breslow')
+>  #and etc.
+> fit1p
+Call:
+coxph(formula = Surv(stop, event) ~ rx + size + number, data = bladder2, 
+    subset = (enum == 1), method = "breslow")
+
+          coef exp(coef) se(coef)     z      p
+rx     -0.5176    0.5959   0.3158 -1.64 0.1012
+size    0.0679    1.0702   0.1012  0.67 0.5025
+number  0.2360    1.2662   0.0761  3.10 0.0019
+
+Likelihood ratio test=9.66  on 3 df, p=0.0216
+n= 85, number of events= 47 
+> fit2pa
+Call:
+coxph(formula = Surv(stop, event) ~ rx + size + number, data = bladder2, 
+    subset = (enum == 2), method = "breslow")
+
+           coef exp(coef) se(coef)     z    p
+rx     -0.42421   0.65428  0.40220 -1.05 0.29
+size   -0.12503   0.88247  0.11709 -1.07 0.29
+number  0.00199   1.00199  0.09376  0.02 0.98
+
+Likelihood ratio test=2.02  on 3 df, p=0.569
+n= 46, number of events= 29 
+> fit2pb
+Call:
+coxph(formula = Surv(stop - start, event) ~ rx + size + number, 
+    data = bladder2, subset = (enum == 2), method = "breslow")
+
+           coef exp(coef) se(coef)     z    p
+rx     -0.25911   0.77174  0.40511 -0.64 0.52
+size   -0.11636   0.89015  0.11924 -0.98 0.33
+number -0.00571   0.99431  0.09667 -0.06 0.95
+
+Likelihood ratio test=1.27  on 3 df, p=0.735
+n= 46, number of events= 29 
+> fit3pa
+Call:
+coxph(formula = Surv(stop, event) ~ rx + size + number, data = bladder2, 
+    subset = (enum == 3), method = "breslow")
+
+          coef exp(coef) se(coef)     z    p
+rx     -0.8985    0.4072   0.5535 -1.62 0.10
+size    0.0850    1.0887   0.2086  0.41 0.68
+number -0.0172    0.9830   0.1280 -0.13 0.89
+
+Likelihood ratio test=4.16  on 3 df, p=0.245
+n= 27, number of events= 22 
+> rm(rx, cmat, wfit, fita, fit1p, fit2pa, fit2pb, fit3pa)
+> 
+> proc.time()
+   user  system elapsed 
+  0.200   0.028   0.225 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/quantile.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/quantile.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/quantile.R	(revision 2476)
@@ -0,0 +1,68 @@
+#
+# Formal test of the quantile routine for survfit
+library(survival)
+aeq <- function(x, y, ...) all.equal(as.vector(x), as.vector(y), ...)
+
+# There are 8 cases:  strata Y/N,  ncol(surv) >1,  conf.int = T/F
+#  Subcase: the quantile exactly agrees with a horizontal segment of 
+#    the curve or not.
+# First do the 4 cases where fit$surv is a vector
+#
+test1 <- data.frame(time=  c(9, 3,1,1,6,6,8, 10),
+                    status=c(1,NA,1,0,1,1,0,  0),
+                    x=     c(0, 2,1,1,1,0,0,  0))
+
+# True survival = (6/7) * (3/5) * (1/2) for overall
+#   The q's are chosen to include a point < first jump, mid, after last jump,
+#   and exact intersections with the "flats" of the curve.
+#   
+qq <- c(13/14, 6/7, 2/3, .5, 9/35, .1)
+ 
+# Nothing on the right hand side, simple survival (no strata)
+fit1 <- survfit(Surv(time, status) ~ 1, test1, conf.type='none')
+aeq(quantile(fit1, 1-qq), c(1, 3.5, 6, 9, 9.5, NA))  #without conf.int
+
+fit2 <-  survfit(Surv(time, status) ~ 1, test1)  #with conf.int
+aeq(quantile(fit2, 1-qq), 
+    list(quantile = c(1, 3.5, 6, 9, 9.5, NA),
+         lower = c(1,1,1,6,6,9),
+         upper = rep(as.numeric(NA), 6)), check.attributes=FALSE)
+aeq(quantile(fit2, 1-qq, FALSE), c(1, 3.5, 6, 9, 9.5, NA)) 
+
+
+# Now a variable on the right (strata in the result)
+#  curve 0: (t=6, S=3/4),  (t=9, S=3/8)
+#  curve 1: (t=1, S=2/3),  (t=6, S= 0)
+fit1 <- survfit(Surv(time, status) ~ x, test1, conf.type='none') 
+aeq(quantile(fit1, 1-qq),
+    matrix(c(6,6,9,9,NA,NA,  1,1,3.5, 6,6,6), nrow=2, byrow=T))
+
+fit2 <- survfit(Surv(time, status) ~ x, test1)
+aeq(quantile(fit2, 1-qq, FALSE),
+    matrix(c(6,6,9,9,NA,NA,  1,1,3.5, 6,6,6), nrow=2, byrow=T))
+
+temp <- quantile(fit2, 1-qq)
+aeq(temp$quantile, matrix(c(6,6,9,9,NA,NA,  1,1,3.5, 6,6,6), nrow=2, byrow=T))
+aeq(temp$lower,    matrix(c(6,6,6,6,9,9,    1,1,1,1, NA,NA), nrow=2, byrow=T))
+aeq(temp$upper,    rep(as.numeric(NA), 12))
+
+# Second major case set -- a survfit object where fit$surv is a matrix
+#  This arises from coxph models
+#  There is only 1 subject with ph.ecog=3 which is a nice edge case
+cfit <- coxph(Surv(time, status) ~ age + strata(ph.ecog), lung)
+sfit <- survfit(cfit, newdata=data.frame(age=c(50, 70)))
+qtot <- quantile(sfit, qq)
+for (i in 1:4) {
+    for (j in 1:2) {
+        temp <- quantile(sfit[i,j], qq)
+        print(c(aeq(qtot$quantile[i,j,], temp$quantile),
+                aeq(qtot$upper[i,j,], temp$upper),
+                aeq(qtot$lower[i,j,], temp$lower)))
+    }
+}
+temp <- quantile(sfit, qq, conf.int=FALSE)
+all.equal(qtot$quantile, temp)
+
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/mstate.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/mstate.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/mstate.Rout.save	(revision 2476)
@@ -0,0 +1,69 @@
+
+R Under development (unstable) (2016-02-15 r70179) -- "Unsuffered Consequences"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: i686-pc-linux-gnu (32-bit)
+
+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.
+
+> #
+> # A tiny multi-state example
+> #
+> library(survival)
+> mtest <- data.frame(id= c(1, 1, 1,  2,  3,  4, 4, 4,  5, 5),
++                     t1= c(0, 4, 9,  0,  2,  0, 2, 8,  1, 3),
++                     t2= c(4, 9, 10, 5,  9,  2, 8, 9,  3, 11),
++                     st= c(1, 2,  1, 2,  3,  1, 3, 0,  2,  0))
+> 
+> mtest$state <- factor(mtest$st, 0:3, c("censor", "a", "b", "c"))
+> mtest <- mtest[c(1,3,2,4,5,7,6,10, 9, 8),]  #not in time order
+> 
+> mfit <- survfit(Surv(t1, t2, state) ~ 1, mtest, id=id)
+> 
+> # True results
+> #
+> #time       state                    probabilities
+> #         entry  a   b  c         entry  a    b     c
+> #
+> #0        124                      1     0    0     0
+> #1+       1245
+> #2+       1235   4                3/4   1/4   0     0    4 -> a, add 3
+> #3+       123    4   5            9/16  1/4  3/16   0    5 -> b
+> #4+        23    14  5            6/16  7/16 3/16   0    1 -> a
+> #5+        3     14  5            3/16  7/16 6/16   0    2 -> b, exits
+> #8+        3     1   5  4         3/16  7/32 6/16  7/32  4 -> c
+> #9+                  15            0     0  19/32 13/32  1->b, 3->c & exit
+> # 10+            1   5                19/64 19/64 13/32  1->a
+> 
+> # In mfit, the "entry" state is last in the matrices
+> all.equal(mfit$n.risk, matrix(c(0,1,1,2,2,1,0,0,
++                                 0,0,1,1,1,1,2,1,
++                                 0,0,0,0,0,1,0,0,
++                                 4,4,3,2,1,1,0,0), ncol=4))
+[1] TRUE
+> all.equal(mfit$prev,  matrix(c(8,  8, 14, 14, 7, 0,  9.5, 9.5, 
++                                 0,  6,  6, 12, 12,19,9.5, 9.5, 
++                                 0,  0,  0,  0, 7, 13, 13, 13,
++                                24, 18, 12,  6, 6, 0, 0,  0)/32, ncol=4))
+[1] TRUE
+> all.equal(mfit$n.event, matrix(c(1,0,1,0,0,0,1,0,
++                                  0,1,0,1,0,1,0,0,
++                                  0,0,0,0,1,1,0,0,
++                                  0,0,0,0,0,0,0,0), ncol=4))
+[1] TRUE
+> all.equal(mfit$time, c(2, 3, 4, 5, 8, 9, 10, 11))
+[1] TRUE
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  1.152   0.064   1.209 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/counting.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/counting.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/counting.R	(revision 2476)
@@ -0,0 +1,47 @@
+options(na.action=na.exclude) # preserve missings
+options(contrasts=c('contr.treatment', 'contr.poly')) #ensure constrast type
+library(survival)
+
+# Create a "counting process" version of the simplest test data set
+#
+test1 <- data.frame(time=  c(9, 3,1,1,6,6,8),
+                    status=c(1,NA,1,0,1,1,0),
+                    x=     c(0, 2,1,1,1,0,0))
+
+test1b<- list(start= c(0, 3,  0,  0, 5,  0, 6,14,  0,  0, 10,20,30, 0),
+	      stop = c(3,10, 10,  5,20,  6,14,20, 30,  10,20,30,40, 10),
+	      status=c(0, 1,  0,  0, 1,  0, 0, 1,  0,   0, 0, 0, 1,  0),
+	      x=     c(1, 1,  1,  1, 1,  0, 0, 0,  0,   0, 0, 0, 0,  NA),
+	      id =   c(3, 3,  4,  5, 5,  6, 6, 6,  7,   1, 1, 1, 1,   2))
+
+aeq <- function(x,y) all.equal(as.vector(x), as.vector(y))
+#
+#  Check out the various residuals under an Efron approximation
+#
+fit0 <- coxph(Surv(time, status)~ x, test1, iter=0)
+fit  <- coxph(Surv(time, status) ~x, test1)
+fit0b <- coxph(Surv(start, stop, status) ~ x, test1b, iter=0)
+fitb  <- coxph(Surv(start, stop, status) ~x, test1b)
+fitc  <- coxph(Surv(time, status) ~ offset(fit$coef*x), test1)
+fitd  <- coxph(Surv(start, stop, status) ~ offset(fit$coef*x), test1b)
+
+aeq(fit0b$coef, fit0$coef)
+
+aeq(resid(fit0), resid(fit0b, collapse=test1b$id))
+aeq(resid(fit), resid(fitb, collapse=test1b$id))
+aeq(resid(fitc), resid(fitd, collapse=test1b$id))
+aeq(resid(fitc), resid(fit))
+
+aeq(resid(fit0, type='score'), resid(fit0b, type='score', collapse=test1b$id))
+aeq(resid(fit, type='score'), resid(fitb, type='score', collapse=test1b$id))
+
+aeq(resid(fit0, type='scho'), resid(fit0b, type='scho', collapse=test1b$id))
+aeq(resid(fit, type='scho'), resid(fitb, type='scho', collapse=test1b$id))
+
+# The two survivals will have different censoring times
+#  nrisk, nevent, surv, and std should be the same
+temp1 <- survfit(fit, list(x=1), censor=FALSE)
+temp2 <- survfit(fitb, list(x=1), censor=FALSE)
+all.equal(unclass(temp1)[c(3,4,6,8)], unclass(temp2)[c(3,4,6,8)])
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.smoke
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.smoke	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/tests/data.smoke	(revision 2476)
@@ -0,0 +1,33 @@
+ 186.0  439.2  234.4  365.8  159.6  216.9  167.4  159.5
+ 255.6  702.7  544.7  431.0  454.8  349.7  214.0  250.4
+ 448.9 1132.4  945.2  728.8  729.4  590.2  447.3  436.6
+ 733.7 1981.1 1177.7 1589.2 1316.5 1266.9  875.6  703.0
+1119.4 3003.0 2244.9 3380.3 2374.9 1820.2 1669.1 1159.2
+2070.5 4697.5 4255.3 5083.0 4485.0 3888.7 3184.3 2194.9
+3675.3 7340.6 5882.4 6597.2 7707.5 4945.1 5618.0 4128.9
+
+ 186.0  610.0  497.5  251.7  417.5  122.6  198.3  193.4
+ 255.6  915.6  482.8  500.7  488.9  402.9  393.9  354.3
+ 448.9 1391.0 1757.1  953.5 1025.8  744.0  668.5  537.8
+ 733.7 2393.4 1578.4 1847.2 1790.1 1220.7 1100.0  993.3
+1119.4 3497.9 2301.8 3776.6 2081.0 2766.4 2268.1 1230.7
+2070.5 5861.3 3174.6 2974.0 3712.9 3988.8 3268.6 2468.9
+3675.3 6250.0 4000.0 4424.8 7329.8 6383.0 7666.1 5048.1
+
+
+ 125.7  225.6    0    433.9  212.0  107.2  135.9   91.0
+ 177.3  353.8  116.8   92.1  289.5  200.9  121.3  172.1
+ 244.8  542.8  287.4  259.5  375.9  165.8  202.2  247.2
+ 397.7  858.0 1016.3  365.0  650.9  470.8  570.6  319.7
+ 692.1 1496.2 1108.0 1348.5 1263.2  864.8  586.6  618.0
+1160.0 2084.8  645.2 1483.1 1250.0 1126.3 1070.5 1272.1
+2070.8 3319.5    0   2580.6 2590.7 3960.4 1666.7 1861.5
+
+ 125.7  277.9  266.7  102.7  178.6  224.7  142.1  138.8
+ 177.3  517.9  138.7  466.8  270.1  190.2  116.8   83.0
+ 244.8  823.5  473.6  602.0  361.0  454.5  412.2  182.1
+ 397.7 1302.9 1114.8  862.1  699.6  541.7  373.1  356.4
+ 692.1 1934.9 2319.6 1250.0 1688.0  828.7  797.9  581.5
+1160.0 2827.0 4635.8 2517.2 1687.3 2848.7 1621.2 1363.4
+2070.8 4273.1 2409.6 5769.2 3125.0 2978.7 2803.7 2195.4
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/DESCRIPTION	(revision 2476)
@@ -0,0 +1,27 @@
+Title: Survival Analysis
+Maintainer: Terry M Therneau <therneau.terry@mayo.edu>
+Priority: recommended
+Package: survival
+Version: 2.39-5
+Depends: R (>= 2.13.0)
+Imports: graphics, Matrix, methods, splines, stats, utils
+LazyData: Yes
+LazyLoad: Yes
+ByteCompile: Yes
+Authors@R: c(person(c("Terry", "M"), "Therneau",
+                    email="therneau.terry@mayo.edu",
+	            role=c("aut", "cre")),
+               person("Thomas", "Lumley", role=c("ctb", "trl"),
+	       comment="original S->R port and maintainer until 2009"))
+Description: Contains the core survival analysis routines, including
+	     definition of Surv objects, 
+	     Kaplan-Meier and Aalen-Johansen (multi-state) curves, Cox models,
+	     and parametric accelerated failure time models.
+License: LGPL (>= 2)
+NeedsCompilation: yes
+Packaged: 2016-06-25 17:36:16 UTC; therneau
+Author: Terry M Therneau [aut, cre],
+  Thomas Lumley [ctb, trl] (original S->R port and maintainer until 2009)
+Repository: CRAN
+Date/Publication: 2016-06-26 14:19:51
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:35:21 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/html/00Index.html	(revision 2476)
@@ -0,0 +1,517 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Survival Analysis</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Survival Analysis
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;survival&rsquo; version 2.39-5</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#G">G</a>
+<a href="#H">H</a>
+<a href="#I">I</a>
+<a href="#J">J</a>
+<a href="#K">K</a>
+<a href="#L">L</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#O">O</a>
+<a href="#P">P</a>
+<a href="#Q">Q</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#U">U</a>
+<a href="#V">V</a>
+<a href="#misc">misc</a>
+</p>
+
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="aareg.html">aareg</a></td>
+<td>Aalen's additive regression model for censored data</td></tr>
+<tr><td style="width: 25%;"><a href="agreg.fit.html">agreg.fit</a></td>
+<td>Cox model fitting functions</td></tr>
+<tr><td style="width: 25%;"><a href="aml.html">aml</a></td>
+<td>Acute Myelogenous Leukemia survival data</td></tr>
+<tr><td style="width: 25%;"><a href="anova.coxph.html">anova.coxph</a></td>
+<td>Analysis of Deviance for a Cox model.</td></tr>
+<tr><td style="width: 25%;"><a href="anova.coxph.html">anova.coxphlist</a></td>
+<td>Analysis of Deviance for a Cox model.</td></tr>
+<tr><td style="width: 25%;"><a href="survreg.html">anova.survreg</a></td>
+<td>Regression for a Parametric Survival Model</td></tr>
+<tr><td style="width: 25%;"><a href="survreg.html">anova.survreglist</a></td>
+<td>Regression for a Parametric Survival Model</td></tr>
+<tr><td style="width: 25%;"><a href="Surv.html">as.character.Surv</a></td>
+<td>Create a Survival Object</td></tr>
+<tr><td style="width: 25%;"><a href="Surv.html">as.data.frame.Surv</a></td>
+<td>Create a Survival Object</td></tr>
+<tr><td style="width: 25%;"><a href="Surv.html">as.matrix.Surv</a></td>
+<td>Create a Survival Object</td></tr>
+<tr><td style="width: 25%;"><a href="attrassign.html">attrassign</a></td>
+<td>Create new-style "assign" attribute</td></tr>
+<tr><td style="width: 25%;"><a href="attrassign.html">attrassign.default</a></td>
+<td>Create new-style "assign" attribute</td></tr>
+<tr><td style="width: 25%;"><a href="attrassign.html">attrassign.lm</a></td>
+<td>Create new-style "assign" attribute</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="basehaz.html">basehaz</a></td>
+<td>Alias for the survfit function</td></tr>
+<tr><td style="width: 25%;"><a href="bladder.html">bladder</a></td>
+<td>Bladder Cancer Recurrences</td></tr>
+<tr><td style="width: 25%;"><a href="bladder.html">bladder1</a></td>
+<td>Bladder Cancer Recurrences</td></tr>
+<tr><td style="width: 25%;"><a href="bladder.html">bladder2</a></td>
+<td>Bladder Cancer Recurrences</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="lung.html">cancer</a></td>
+<td>NCCTG Lung Cancer Data</td></tr>
+<tr><td style="width: 25%;"><a href="cch.html">cch</a></td>
+<td>Fits proportional hazards regression model to case-cohort data</td></tr>
+<tr><td style="width: 25%;"><a href="cgd.html">cgd</a></td>
+<td>Chronic Granulotomous Disease data</td></tr>
+<tr><td style="width: 25%;"><a href="cgd.html">cgd.raw</a></td>
+<td>Chronic Granulotomous Disease data</td></tr>
+<tr><td style="width: 25%;"><a href="cgd0.html">cgd0</a></td>
+<td>Chronic Granulotomous Disease data</td></tr>
+<tr><td style="width: 25%;"><a href="clogit.html">clogit</a></td>
+<td>Conditional logistic regression</td></tr>
+<tr><td style="width: 25%;"><a href="cluster.html">cluster</a></td>
+<td>Identify clusters.</td></tr>
+<tr><td style="width: 25%;"><a href="colon.html">colon</a></td>
+<td>Chemotherapy for Stage B/C colon cancer</td></tr>
+<tr><td style="width: 25%;"><a href="cox.zph.html">cox.zph</a></td>
+<td>Test the Proportional Hazards Assumption of a Cox Regression</td></tr>
+<tr><td style="width: 25%;"><a href="coxph.html">coxph</a></td>
+<td>Fit Proportional Hazards Regression Model</td></tr>
+<tr><td style="width: 25%;"><a href="coxph.control.html">coxph.control</a></td>
+<td>Ancillary arguments for controling coxph fits</td></tr>
+<tr><td style="width: 25%;"><a href="coxph.detail.html">coxph.detail</a></td>
+<td>Details of a Cox Model Fit</td></tr>
+<tr><td style="width: 25%;"><a href="agreg.fit.html">coxph.fit</a></td>
+<td>Cox model fitting functions</td></tr>
+<tr><td style="width: 25%;"><a href="coxph.html">coxph.getdata</a></td>
+<td>Fit Proportional Hazards Regression Model</td></tr>
+<tr><td style="width: 25%;"><a href="coxph.object.html">coxph.object</a></td>
+<td>Proportional Hazards Regression Object</td></tr>
+<tr><td style="width: 25%;"><a href="coxph.html">coxph.penalty</a></td>
+<td>Fit Proportional Hazards Regression Model</td></tr>
+<tr><td style="width: 25%;"><a href="coxph.wtest.html">coxph.wtest</a></td>
+<td>Compute a quadratic form</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="dsurvreg.html">dsurvreg</a></td>
+<td>Distributions available in survreg.</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="coxph.object.html">extractAIC.coxph.penal</a></td>
+<td>Proportional Hazards Regression Object</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="finegray.html">finegray</a></td>
+<td>Create data for a Fine-Gray model</td></tr>
+<tr><td style="width: 25%;"><a href="flchain.html">flchain</a></td>
+<td>Assay of serum free light chain for 7874 subjects.</td></tr>
+<tr><td style="width: 25%;"><a href="Surv.html">format.Surv</a></td>
+<td>Create a Survival Object</td></tr>
+<tr><td style="width: 25%;"><a href="frailty.html">frailty</a></td>
+<td>Random effects terms</td></tr>
+<tr><td style="width: 25%;"><a href="frailty.html">frailty.gamma</a></td>
+<td>Random effects terms</td></tr>
+<tr><td style="width: 25%;"><a href="frailty.html">frailty.gaussian</a></td>
+<td>Random effects terms</td></tr>
+<tr><td style="width: 25%;"><a href="frailty.html">frailty.t</a></td>
+<td>Random effects terms</td></tr>
+</table>
+
+<h2><a name="G">-- G --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="genfan.html">genfan</a></td>
+<td>Generator fans</td></tr>
+</table>
+
+<h2><a name="H">-- H --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="heart.html">heart</a></td>
+<td>Stanford Heart Transplant data</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="ratetable.html">is.na.ratetable</a></td>
+<td>Ratetable reference in formula</td></tr>
+<tr><td style="width: 25%;"><a href="Surv.html">is.na.Surv</a></td>
+<td>Create a Survival Object</td></tr>
+<tr><td style="width: 25%;"><a href="is.ratetable.html">is.ratetable</a></td>
+<td>Verify that an object is of class ratetable.</td></tr>
+<tr><td style="width: 25%;"><a href="Surv.html">is.Surv</a></td>
+<td>Create a Survival Object</td></tr>
+</table>
+
+<h2><a name="J">-- J --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="heart.html">jasa</a></td>
+<td>Stanford Heart Transplant data</td></tr>
+<tr><td style="width: 25%;"><a href="heart.html">jasa1</a></td>
+<td>Stanford Heart Transplant data</td></tr>
+</table>
+
+<h2><a name="K">-- K --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="kidney.html">kidney</a></td>
+<td>Kidney catheter data</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="survreg.html">labels.survreg</a></td>
+<td>Regression for a Parametric Survival Model</td></tr>
+<tr><td style="width: 25%;"><a href="aml.html">leukemia</a></td>
+<td>Acute Myelogenous Leukemia survival data</td></tr>
+<tr><td style="width: 25%;"><a href="tcut.html">levels.tcut</a></td>
+<td>Factors for person-year calculations</td></tr>
+<tr><td style="width: 25%;"><a href="lines.survfit.html">lines.survexp</a></td>
+<td>Add Lines or Points to a Survival Plot</td></tr>
+<tr><td style="width: 25%;"><a href="lines.survfit.html">lines.survfit</a></td>
+<td>Add Lines or Points to a Survival Plot</td></tr>
+<tr><td style="width: 25%;"><a href="logan.html">logan</a></td>
+<td>Data from the 1972-78 GSS data used by Logan</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.coxph.html">logLik.coxph</a></td>
+<td>logLik method for a Cox model</td></tr>
+<tr><td style="width: 25%;"><a href="logLik.coxph.html">logLik.survreg</a></td>
+<td>logLik method for a Cox model</td></tr>
+<tr><td style="width: 25%;"><a href="lung.html">lung</a></td>
+<td>NCCTG Lung Cancer Data</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="is.ratetable.html">Math.ratetable</a></td>
+<td>Verify that an object is of class ratetable.</td></tr>
+<tr><td style="width: 25%;"><a href="Surv.html">Math.Surv</a></td>
+<td>Create a Survival Object</td></tr>
+<tr><td style="width: 25%;"><a href="mgus.html">mgus</a></td>
+<td>Monoclonal gammapothy data</td></tr>
+<tr><td style="width: 25%;"><a href="mgus.html">mgus1</a></td>
+<td>Monoclonal gammapothy data</td></tr>
+<tr><td style="width: 25%;"><a href="mgus2.html">mgus2</a></td>
+<td>Monoclonal gammapothy data</td></tr>
+<tr><td style="width: 25%;"><a href="model.frame.coxph.html">model.frame.coxph</a></td>
+<td>Model.frame method for coxph objects</td></tr>
+<tr><td style="width: 25%;"><a href="survreg.html">model.frame.survreg</a></td>
+<td>Regression for a Parametric Survival Model</td></tr>
+<tr><td style="width: 25%;"><a href="model.matrix.coxph.html">model.matrix.coxph</a></td>
+<td>Model.matrix method for coxph models</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="neardate.html">neardate</a></td>
+<td>Find the index of the closest value in data set 2, for each entry in data set one.</td></tr>
+<tr><td style="width: 25%;"><a href="nwtco.html">nwtco</a></td>
+<td>Data from the National Wilm's Tumor Study</td></tr>
+</table>
+
+<h2><a name="O">-- O --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="is.ratetable.html">Ops.ratetable</a></td>
+<td>Verify that an object is of class ratetable.</td></tr>
+<tr><td style="width: 25%;"><a href="Surv.html">Ops.Surv</a></td>
+<td>Create a Survival Object</td></tr>
+<tr><td style="width: 25%;"><a href="ovarian.html">ovarian</a></td>
+<td>Ovarian Cancer Survival Data</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="pbc.html">pbc</a></td>
+<td>Mayo Clinic Primary Biliary Cirrhosis Data</td></tr>
+<tr><td style="width: 25%;"><a href="pbcseq.html">pbcseq</a></td>
+<td>Mayo Clinic Primary Biliary Cirrhosis, sequential data</td></tr>
+<tr><td style="width: 25%;"><a href="plot.aareg.html">plot.aareg</a></td>
+<td>Plot an aareg object.</td></tr>
+<tr><td style="width: 25%;"><a href="plot.cox.zph.html">plot.cox.zph</a></td>
+<td>Graphical Test of Proportional Hazards</td></tr>
+<tr><td style="width: 25%;"><a href="plot.survfit.html">plot.survfit</a></td>
+<td>Plot method for 'survfit' objects</td></tr>
+<tr><td style="width: 25%;"><a href="lines.survfit.html">points.survfit</a></td>
+<td>Add Lines or Points to a Survival Plot</td></tr>
+<tr><td style="width: 25%;"><a href="predict.coxph.html">predict.coxph</a></td>
+<td>Predictions for a Cox model</td></tr>
+<tr><td style="width: 25%;"><a href="predict.coxph.html">predict.coxph.penal</a></td>
+<td>Predictions for a Cox model</td></tr>
+<tr><td style="width: 25%;"><a href="predict.survreg.html">predict.survreg</a></td>
+<td>Predicted Values for a 'survreg' Object</td></tr>
+<tr><td style="width: 25%;"><a href="predict.survreg.html">predict.survreg.penal</a></td>
+<td>Predicted Values for a 'survreg' Object</td></tr>
+<tr><td style="width: 25%;"><a href="print.aareg.html">print.aareg</a></td>
+<td>Print an aareg object</td></tr>
+<tr><td style="width: 25%;"><a href="cox.zph.html">print.cox.zph</a></td>
+<td>Test the Proportional Hazards Assumption of a Cox Regression</td></tr>
+<tr><td style="width: 25%;"><a href="coxph.object.html">print.coxph</a></td>
+<td>Proportional Hazards Regression Object</td></tr>
+<tr><td style="width: 25%;"><a href="coxph.html">print.coxph.null</a></td>
+<td>Fit Proportional Hazards Regression Model</td></tr>
+<tr><td style="width: 25%;"><a href="coxph.html">print.coxph.penal</a></td>
+<td>Fit Proportional Hazards Regression Model</td></tr>
+<tr><td style="width: 25%;"><a href="ratetable.html">print.ratetable</a></td>
+<td>Ratetable reference in formula</td></tr>
+<tr><td style="width: 25%;"><a href="print.summary.coxph.html">print.summary.coxph</a></td>
+<td>Print method for summary.coxph objects</td></tr>
+<tr><td style="width: 25%;"><a href="print.summary.survexp.html">print.summary.survexp</a></td>
+<td>Print Survexp Summary</td></tr>
+<tr><td style="width: 25%;"><a href="print.summary.survfit.html">print.summary.survfit</a></td>
+<td>Print Survfit Summary</td></tr>
+<tr><td style="width: 25%;"><a href="survreg.html">print.summary.survreg</a></td>
+<td>Regression for a Parametric Survival Model</td></tr>
+<tr><td style="width: 25%;"><a href="Surv.html">print.Surv</a></td>
+<td>Create a Survival Object</td></tr>
+<tr><td style="width: 25%;"><a href="survdiff.html">print.survdiff</a></td>
+<td>Test Survival Curve Differences</td></tr>
+<tr><td style="width: 25%;"><a href="survexp.html">print.survexp</a></td>
+<td>Compute Expected Survival</td></tr>
+<tr><td style="width: 25%;"><a href="print.survfit.html">print.survfit</a></td>
+<td>Print a Short Summary of a Survival Curve</td></tr>
+<tr><td style="width: 25%;"><a href="survreg.object.html">print.survreg</a></td>
+<td>Parametric Survival Model Object</td></tr>
+<tr><td style="width: 25%;"><a href="survreg.html">print.survreg.penal</a></td>
+<td>Regression for a Parametric Survival Model</td></tr>
+<tr><td style="width: 25%;"><a href="pspline.html">pspline</a></td>
+<td>Smoothing splines using a pspline basis</td></tr>
+<tr><td style="width: 25%;"><a href="pspline.html">psplineinverse</a></td>
+<td>Smoothing splines using a pspline basis</td></tr>
+<tr><td style="width: 25%;"><a href="dsurvreg.html">psurvreg</a></td>
+<td>Distributions available in survreg.</td></tr>
+<tr><td style="width: 25%;"><a href="pyears.html">pyears</a></td>
+<td>Person Years</td></tr>
+</table>
+
+<h2><a name="Q">-- Q --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="dsurvreg.html">qsurvreg</a></td>
+<td>Distributions available in survreg.</td></tr>
+<tr><td style="width: 25%;"><a href="quantile.survfit.html">quantile.survfit</a></td>
+<td>Quantiles from a survfit object</td></tr>
+<tr><td style="width: 25%;"><a href="quantile.survfit.html">quantile.survfitms</a></td>
+<td>Quantiles from a survfit object</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="ratetable.html">ratetable</a></td>
+<td>Ratetable reference in formula</td></tr>
+<tr><td style="width: 25%;"><a href="ratetableDate.html">ratetableDate</a></td>
+<td>Convert date objects to ratetable form</td></tr>
+<tr><td style="width: 25%;"><a href="rats.html">rats</a></td>
+<td>Rat treatment data from Mantel et al</td></tr>
+<tr><td style="width: 25%;"><a href="rats2.html">rats2</a></td>
+<td>Rat data from Gail et al.</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.coxph.html">residuals.coxph</a></td>
+<td>Calculate Residuals for a 'coxph' Fit</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.coxph.html">residuals.coxph.null</a></td>
+<td>Calculate Residuals for a 'coxph' Fit</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.coxph.html">residuals.coxph.penal</a></td>
+<td>Calculate Residuals for a 'coxph' Fit</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.survreg.html">residuals.survreg</a></td>
+<td>Compute Residuals for 'survreg' Objects</td></tr>
+<tr><td style="width: 25%;"><a href="residuals.survreg.html">residuals.survreg.penal</a></td>
+<td>Compute Residuals for 'survreg' Objects</td></tr>
+<tr><td style="width: 25%;"><a href="retinopathy.html">retinopathy</a></td>
+<td>Diabetic Retinopathy</td></tr>
+<tr><td style="width: 25%;"><a href="ridge.html">ridge</a></td>
+<td>Ridge regression</td></tr>
+<tr><td style="width: 25%;"><a href="dsurvreg.html">rsurvreg</a></td>
+<td>Distributions available in survreg.</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="stanford2.html">stanford2</a></td>
+<td>More Stanford Heart Transplant data</td></tr>
+<tr><td style="width: 25%;"><a href="strata.html">strata</a></td>
+<td>Identify Stratification Variables</td></tr>
+<tr><td style="width: 25%;"><a href="summary.aareg.html">summary.aareg</a></td>
+<td>Summarize an aareg fit</td></tr>
+<tr><td style="width: 25%;"><a href="summary.coxph.html">summary.coxph</a></td>
+<td>Summary method for Cox models</td></tr>
+<tr><td style="width: 25%;"><a href="coxph.html">summary.coxph.penal</a></td>
+<td>Fit Proportional Hazards Regression Model</td></tr>
+<tr><td style="width: 25%;"><a href="ratetable.html">summary.ratetable</a></td>
+<td>Ratetable reference in formula</td></tr>
+<tr><td style="width: 25%;"><a href="Surv.html">Summary.Surv</a></td>
+<td>Create a Survival Object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.survexp.html">summary.survexp</a></td>
+<td>Summary function for a survexp object</td></tr>
+<tr><td style="width: 25%;"><a href="summary.survfit.html">summary.survfit</a></td>
+<td>Summary of a Survival Curve</td></tr>
+<tr><td style="width: 25%;"><a href="survreg.object.html">summary.survreg</a></td>
+<td>Parametric Survival Model Object</td></tr>
+<tr><td style="width: 25%;"><a href="Surv.html">Surv</a></td>
+<td>Create a Survival Object</td></tr>
+<tr><td style="width: 25%;"><a href="survConcordance.html">survConcordance</a></td>
+<td>Compute a concordance measure.</td></tr>
+<tr><td style="width: 25%;"><a href="survConcordance.html">survConcordance.fit</a></td>
+<td>Compute a concordance measure.</td></tr>
+<tr><td style="width: 25%;"><a href="survdiff.html">survdiff</a></td>
+<td>Test Survival Curve Differences</td></tr>
+<tr><td style="width: 25%;"><a href="survexp.html">survexp</a></td>
+<td>Compute Expected Survival</td></tr>
+<tr><td style="width: 25%;"><a href="survexp.us.html">survexp.az</a></td>
+<td>Census Data Sets for the Expected Survival and Person Years Functions</td></tr>
+<tr><td style="width: 25%;"><a href="survexp.us.html">survexp.azr</a></td>
+<td>Census Data Sets for the Expected Survival and Person Years Functions</td></tr>
+<tr><td style="width: 25%;"><a href="survexp.fit.html">survexp.fit</a></td>
+<td>Compute Expected Survival</td></tr>
+<tr><td style="width: 25%;"><a href="survexp.us.html">survexp.fl</a></td>
+<td>Census Data Sets for the Expected Survival and Person Years Functions</td></tr>
+<tr><td style="width: 25%;"><a href="survexp.us.html">survexp.flr</a></td>
+<td>Census Data Sets for the Expected Survival and Person Years Functions</td></tr>
+<tr><td style="width: 25%;"><a href="survexp.us.html">survexp.mn</a></td>
+<td>Census Data Sets for the Expected Survival and Person Years Functions</td></tr>
+<tr><td style="width: 25%;"><a href="survexp.us.html">survexp.mnwhite</a></td>
+<td>Census Data Sets for the Expected Survival and Person Years Functions</td></tr>
+<tr><td style="width: 25%;"><a href="survexp.object.html">survexp.object</a></td>
+<td>Expected Survival Curve Object</td></tr>
+<tr><td style="width: 25%;"><a href="survexp.us.html">survexp.us</a></td>
+<td>Census Data Sets for the Expected Survival and Person Years Functions</td></tr>
+<tr><td style="width: 25%;"><a href="survexp.us.html">survexp.usr</a></td>
+<td>Census Data Sets for the Expected Survival and Person Years Functions</td></tr>
+<tr><td style="width: 25%;"><a href="survexp.us.html">survexp.wnc</a></td>
+<td>Census Data Sets for the Expected Survival and Person Years Functions</td></tr>
+<tr><td style="width: 25%;"><a href="survfit.html">survfit</a></td>
+<td>Create survival curves</td></tr>
+<tr><td style="width: 25%;"><a href="survfit.coxph.html">survfit.coxph</a></td>
+<td>Compute a Survival Curve from a Cox model</td></tr>
+<tr><td style="width: 25%;"><a href="survfit.formula.html">survfit.formula</a></td>
+<td>Compute a Survival Curve for Censored Data</td></tr>
+<tr><td style="width: 25%;"><a href="survfit.matrix.html">survfit.matrix</a></td>
+<td>Create Aalen-Johansen estimates of multi-state survival from a matrix of hazards.</td></tr>
+<tr><td style="width: 25%;"><a href="survfit.object.html">survfit.object</a></td>
+<td>Survival Curve Object</td></tr>
+<tr><td style="width: 25%;"><a href="survfitcoxph.fit.html">survfitcoxph.fit</a></td>
+<td>A direct interface to the 'computational engine' of survfit.coxph</td></tr>
+<tr><td style="width: 25%;"><a href="survfit.object.html">survfitms.object</a></td>
+<td>Survival Curve Object</td></tr>
+<tr><td style="width: 25%;"><a href="survobrien.html">survobrien</a></td>
+<td>O'Brien's Test for Association of a Single Variable with Survival</td></tr>
+<tr><td style="width: 25%;"><a href="survreg.html">survReg</a></td>
+<td>Regression for a Parametric Survival Model</td></tr>
+<tr><td style="width: 25%;"><a href="survreg.html">survreg</a></td>
+<td>Regression for a Parametric Survival Model</td></tr>
+<tr><td style="width: 25%;"><a href="survreg.control.html">survreg.control</a></td>
+<td>Package options for survreg and coxph</td></tr>
+<tr><td style="width: 25%;"><a href="survreg.distributions.html">survreg.distributions</a></td>
+<td>Parametric Survival Distributions</td></tr>
+<tr><td style="width: 25%;"><a href="survreg.object.html">survreg.object</a></td>
+<td>Parametric Survival Model Object</td></tr>
+<tr><td style="width: 25%;"><a href="survregDtest.html">survregDtest</a></td>
+<td>Verify a survreg distribution</td></tr>
+<tr><td style="width: 25%;"><a href="survSplit.html">survSplit</a></td>
+<td>Split a survival data set at specified times</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="tcut.html">tcut</a></td>
+<td>Factors for person-year calculations</td></tr>
+<tr><td style="width: 25%;"><a href="tmerge.html">tmerge</a></td>
+<td>Time based merge for survival data</td></tr>
+<tr><td style="width: 25%;"><a href="tobin.html">tobin</a></td>
+<td>Tobin's Tobit data</td></tr>
+<tr><td style="width: 25%;"><a href="transplant.html">transplant</a></td>
+<td>Liver transplant waiting list</td></tr>
+</table>
+
+<h2><a name="U">-- U --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="untangle.specials.html">untangle.specials</a></td>
+<td>Help Process the 'specials' Argument of the 'terms' Function.</td></tr>
+<tr><td style="width: 25%;"><a href="uspop2.html">uspop2</a></td>
+<td>Projected US Population</td></tr>
+</table>
+
+<h2><a name="V">-- V --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="coxph.html">vcov.coxph</a></td>
+<td>Fit Proportional Hazards Regression Model</td></tr>
+<tr><td style="width: 25%;"><a href="survreg.html">vcov.survreg</a></td>
+<td>Regression for a Parametric Survival Model</td></tr>
+<tr><td style="width: 25%;"><a href="veteran.html">veteran</a></td>
+<td>Veterans' Administration Lung Cancer study</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="cox.zph.html">[.cox.zph</a></td>
+<td>Test the Proportional Hazards Assumption of a Cox Regression</td></tr>
+<tr><td style="width: 25%;"><a href="coxph.html">[.coxph.penalty</a></td>
+<td>Fit Proportional Hazards Regression Model</td></tr>
+<tr><td style="width: 25%;"><a href="ratetable.html">[.ratetable</a></td>
+<td>Ratetable reference in formula</td></tr>
+<tr><td style="width: 25%;"><a href="ratetable.html">[.ratetable2</a></td>
+<td>Ratetable reference in formula</td></tr>
+<tr><td style="width: 25%;"><a href="Surv.html">[.Surv</a></td>
+<td>Create a Survival Object</td></tr>
+<tr><td style="width: 25%;"><a href="survfit.formula.html">[.survfit</a></td>
+<td>Compute a Survival Curve for Censored Data</td></tr>
+<tr><td style="width: 25%;"><a href="tcut.html">[.tcut</a></td>
+<td>Factors for person-year calculations</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/compete.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/compete.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/compete.R	(revision 2476)
@@ -0,0 +1,387 @@
+### R code from vignette source 'compete.Rnw'
+
+###################################################
+### code chunk number 1: compete.Rnw:23-29
+###################################################
+options(continue="  ", width=60)
+options(SweaveHooks=list(fig=function() par(mar=c(4.1, 4.1, .3, 1.1))))
+pdf.options(pointsize=10) #text in graph about the same as regular text
+options(contrasts=c("contr.treatment", "contr.poly")) #ensure default
+
+require("survival")
+
+
+###################################################
+### code chunk number 2: sfig1
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+# A note to readers of this code: drawing multi-state figures in this
+#  way via polygon and arrows statements is a major PITA.  Don't mimic
+#  the code below, instead do yourself a favor and use a package
+#  designed for the task such as diagram, DiagrammeR, shape or Gmisc.
+# Survival is a recommended package that is included by lots of others so
+#  I try to limit dependencies in the survival vignettes.
+#
+par(mar=c(.1, .1, .1, .1))
+frame()
+oldpar <- par(usr=c(0,100,0,100))
+# first figure
+xx <- c(0, 10, 10, 0)
+yy <- c(0, 0, 10, 10)
+polygon(xx +10, yy+70)
+polygon(xx +30, yy+70)
+arrows( 22, 75, 28, 75, length=.1)
+text(c(15, 35), c(75,75), c("Alive", "Dead"))
+
+# second figure
+polygon(xx +60, yy+70)  
+for (j in c(55, 70, 85)) {
+    polygon(xx +80, yy+j)
+    arrows(72, (5*75 +j+5)/6, 78, (100+j*5)/6, length=.1)
+}
+text(c(65, 85,85,85), c(70,55,70,85)+5, c("A", "D3", "D2", "D1")) 
+
+# third figure
+polygon(xx+10, yy+25)
+for (j in c(15,35)) {
+    polygon(xx +30, yy+j)
+    arrows(22, (5*30 +j+4)/6, 28, (54+j*5)/6, length=.1)
+}
+arrows(28, 2+(65 + 35*5)/6, 22, 2+ (160 + 40)/6, length=.1)
+arrows(35, 33, 35, 27, length=.1)
+text(c(15, 35,35), c(30, 20, 40), c("Health", "Death", "Illness"))
+
+# fourth
+for (i in c(50, 68)) polygon(xx+i, yy+25)
+arrows(62, 30, 67, 30, length=.1)
+arrows(80, 30, 84, 30, length=.1)
+text(90, 30, "...", cex=2)
+text(c(55, 73), c(30, 30), c("0", "1"))
+par(oldpar)
+
+
+###################################################
+### code chunk number 3: crfig2
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+par(mar=c(.1, .1, .1, .1))
+frame()
+oldpar <- par(usr=c(0,100,0,100))
+# first figure
+xx <- c(0, 10, 10, 0)
+yy <- c(0, 0, 10, 10)
+polygon(xx +10, yy+70) 
+temp <- c(60, 80) 
+for (j in 1:2) {
+    polygon(xx + 30, yy+ temp[j])
+    arrows(22, 70 + 3*j, 28, temp[j] +5, length=.1)
+}
+text(c(15, 35, 35), c(75, 65, 85),c("Entry", "Death", "PCM")) 
+text(25, 55, "Competing Risk")
+
+# Second figure
+polygon(xx +60, yy+70)  
+for (j in 1:2) {
+    polygon(xx + 80, yy+ temp[j])
+    arrows(72, 70+ 3*j, 78, temp[j] +5, length=.1)
+}
+text(50+ c(15, 35, 35), c(75, 65, 85),c("Entry", "Death", "PCM")) 
+arrows(85, 78, 85, 72, length=.1)
+text(75, 55, "Multi-state 1")
+
+# third figure
+polygon(xx+10, yy+25)
+temp <- c(15, 35) 
+for (j in 1:2) {
+    polygon(2*xx +30, yy + temp[j])
+    arrows(22, 25 + 3*j, 28, temp[j] +5, length=.1)
+}
+text(c(15, 40, 40), c(30, 20, 40),c("Entry", "Death w/o PCM", "PCM")) 
+polygon(2*xx + 60, yy+temp[2])
+arrows(52, 40, 58, 40, length=.1)
+text(70, 40, "Death after PCM")
+text(40, 10, "Multi-state 2")
+
+
+###################################################
+### code chunk number 4: mgus1
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+oldpar <- par(mfrow=c(1,2))
+hist(mgus2$age, nclass=30, main='', xlab="Age")
+with(mgus2, tapply(age, sex, mean))
+
+mfit1 <- survfit(Surv(futime, death) ~ sex, data=mgus2)
+mfit1
+plot(mfit1, col=c(1,2), xscale=12, mark.time=FALSE, lwd=2,
+     xlab="Years post diagnosis", ylab="Survival")
+legend("topright", c("female", "male"), col=1:2, lwd=2, bty='n')
+par(oldpar)
+
+
+###################################################
+### code chunk number 5: mgus2
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+etime <- with(mgus2, ifelse(pstat==0, futime, ptime))
+event <- with(mgus2, ifelse(pstat==0, 2*death, 1))
+event <- factor(event, 0:2, labels=c("censor", "pcm", "death"))
+table(event)
+
+mfit2 <- survfit(Surv(etime, event) ~ sex, data=mgus2)
+print(mfit2, rmean=240, scale=12)
+mfit2$transitions
+
+plot(mfit2, col=c(1,2,1,2), lty=c(2,2,1,1),
+     mark.time=FALSE, lwd=2,  xscale=12,
+     xlab="Years post diagnosis", ylab="Probability in State")
+legend(240, .6, c("death:female", "death:male", "pcm:female", "pcm:male"), 
+       col=c(1,2,1,2), lty=c(1,1,2,2), lwd=2, bty='n')
+
+
+###################################################
+### code chunk number 6: mgus3
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+pcmbad <- survfit(Surv(etime, pstat) ~ sex, data=mgus2)
+plot(pcmbad[2], mark.time=FALSE, lwd=2, fun="event", conf.int=FALSE, xscale=12,
+     xlab="Years post diagnosis", ylab="Fraction with PCM")
+lines(mfit2[2,1], lty=2, lwd=2, mark.time=FALSE, conf.int=FALSE)
+legend(0, .25, c("Males, PCM, incorrect curve", "Males, PCM, competing risk"),
+       col=1, lwd=2, lty=c(1,2), bty='n')
+
+
+###################################################
+### code chunk number 7: mgus4
+###################################################
+ptemp <- with(mgus2, ifelse(ptime==futime & pstat==1, ptime-.1, ptime))
+newdata <- tmerge(mgus2, mgus2,  id=id, death=event(futime, death),
+                  pcm = event(ptemp, pstat))
+newdata <- tmerge(newdata, newdata, id, enum=cumtdc(tstart))
+with(newdata, table(death, pcm))
+
+
+###################################################
+### code chunk number 8: mgus4g
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+temp <- with(newdata, ifelse(death==1, 2, pcm))
+newdata$event <- factor(temp, 0:2, labels=c("censor", "pcm", "death"))  
+mfit3 <- survfit(Surv(tstart, tstop, event) ~ sex, data=newdata, id=id)
+print(mfit3, rmean=240, digits=2)
+mfit3$transitions
+plot(mfit3[,1], mark.time=FALSE, col=1:2, lty=1:2, lwd=2,
+     xscale=12,
+     xlab="Years post MGUS diagnosis", ylab="Prevalence of PCM")
+legend(48, .04, c("female", "male"), lty=1:2, col=1:2, lwd=2, bty='n') 
+
+
+###################################################
+### code chunk number 9: mgus5
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+# Death after PCM will correspond to data rows with
+#  enum = 2 and event = death 
+d2 <- with(newdata, ifelse(enum==2 & event=='death', 4, as.numeric(event)))
+e2 <- factor(d2, labels=c("censor", "pcm", "death w/o pcm", 
+                          "death after pcm"))
+mfit4 <- survfit(Surv(tstart, tstop, e2) ~ sex, data=newdata, id=id)
+plot(mfit2[2,], lty=c(1,2),
+     xscale=12, mark.time=FALSE, lwd=2, 
+     xlab="Years post diagnosis", ylab="Prevalence")
+lines(mfit4[2,3], mark.time=FALSE, col=2, lty=1, lwd=2,
+      conf.int=FALSE)
+
+legend(200, .5, c("Death w/o PCM", "ever PCM", 
+                  "Death after PCM"), col=c(1,1,2), lty=c(2,1,1), 
+             lwd=2, bty='n', cex=.82)
+
+
+###################################################
+### code chunk number 10: cfit1
+###################################################
+options(show.signif.stars = FALSE)  # display intelligence
+cfit2 <- coxph(Surv(etime, event=="death") ~ age + sex + mspike, mgus2)
+summary(cfit2, scale=c(10, 1, 1))   # scale age in decades 
+
+
+
+###################################################
+### code chunk number 11: cfit2
+###################################################
+cfit1 <- coxph(Surv(etime, event=="pcm") ~ age + sex + mspike, mgus2)
+cfit1
+quantile(mgus2$mspike, na.rm=TRUE)
+
+
+###################################################
+### code chunk number 12: mpyears
+###################################################
+pfit1 <- pyears(Surv(ptime, pstat) ~ sex, mgus2, scale=12)
+round(100* pfit1$event/pfit1$pyears, 1)  # PCM rate per year
+
+temp <- summary(mfit1, rmean="common")  #print the mean survival time
+round(temp$table[,1:6], 1)
+
+
+###################################################
+### code chunk number 13: PCMcurve
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+newdata <- expand.grid(sex=c("F", "M"), age=c(60, 80), mspike=1.2)
+newdata
+
+temp <- matrix(list(), 3,3)
+dimnames(temp) <- list(from=c("Entry", "PCM", "Death"),
+                       to  =c("Entry", "PCM", "Death"))
+temp[1,2] <- list(survfit(cfit1, newdata, std.err=FALSE))
+temp[1,3] <- list(survfit(cfit2, newdata, std.err=FALSE))
+csurv  <- survfit(temp, p0 =c(1,0,0))
+plot(csurv[,2], xmax=25*12, xscale=12, 
+     xlab="Years after MGUS diagnosis", ylab="PCM",
+     col=1:2, lty=c(1,1,2,2), lwd=2)
+legend(10, .14, outer(c("female", "male   "), 
+                     c("diagnosis at age 60", "diagnosis at age 80"), 
+                      paste, sep=", "),
+       col=1:2, lty=c(1,1,2,2), bty='n', lwd=2)
+
+
+###################################################
+### code chunk number 14: year20
+###################################################
+# Print out a M/F results at 20 years
+temp <- summary(csurv, time=20*12)$prev
+cbind(newdata, PCM= round(100*temp[,2], 1))
+
+
+###################################################
+### code chunk number 15: fg1
+###################################################
+# (first three lines are identical to an earlier section)
+etime <- with(mgus2, ifelse(pstat==0, futime, ptime))
+event <- with(mgus2, ifelse(pstat==0, 2*death, 1))
+event <- factor(event, 0:2, labels=c("censor", "pcm", "death"))
+
+pcmdat <- finegray(Surv(etime, event) ~ ., data=mgus2,
+                   etype="pcm")
+pcmdat[1:4, c(1:3, 11:14)]
+
+deathdat <- finegray(Surv(etime, event) ~ ., data=mgus2,
+                     etype="death")
+dim(pcmdat)
+dim(deathdat)
+dim(mgus2)
+
+
+###################################################
+### code chunk number 16: pfit2
+###################################################
+# The PCM curves of the multi-state model
+pfit2 <- survfit(Surv(fgstart, fgstop, fgstatus) ~ sex,
+                data=pcmdat, weight=fgwt)
+# The death curves of the multi-state model
+dfit2 <- survfit(Surv(fgstart, fgstop, fgstatus) ~ sex, 
+                  data=deathdat, weight=fgwt)
+
+
+###################################################
+### code chunk number 17: fg2
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+fgfit1 <- coxph(Surv(fgstart, fgstop, fgstatus) ~ sex, data=pcmdat,
+               weight= fgwt)
+summary(fgfit1)
+fgfit2 <- coxph(Surv(fgstart, fgstop, fgstatus) ~ sex, data=deathdat,
+               weight= fgwt)
+fgfit2
+
+mfit2 <- survfit(Surv(etime, event) ~ sex, data=mgus2) #reprise the AJ
+plot(mfit2[,1], col=1:2,
+     lwd=2,  xscale=12,
+     conf.times=c(5, 15, 25)*12,
+     xlab="Years post diagnosis", ylab="Fraction with PCM")
+ndata <- data.frame(sex=c("F", "M"))
+fgsurv1 <- survfit(fgfit1, ndata)
+lines(fgsurv1, fun="event", lty=2, lwd=2, col=1:2)
+legend("topleft", c("Female, Aalen-Johansen", "Male, Aalen-Johansen",
+                 "Female, Fine-Gray", "Male, Fine-Gray"),
+       col=1:2, lty=c(1,1,2,2), bty='n')
+
+# rate models with only sex
+pfitr <- coxph(Surv(etime, event=="pcm") ~ sex, mgus2)
+dfitr <- coxph(Surv(etime, event=="death") ~ sex, mgus2)
+temp <- matrix(list(), 3,3)
+temp[1,2] <- list(survfit(pfitr, ndata, std.err=FALSE))
+temp[1,3] <- list(survfit(dfitr, ndata, std.err=FALSE))
+rcurve <- survfit(temp, p0=c(entry=1, pcm=0, death=0))
+
+
+###################################################
+### code chunk number 18: fg3
+###################################################
+fgfit2a <- coxph(Surv(fgstart, fgstop, fgstatus) ~ age + sex + mspike,
+                 data=pcmdat, weight=fgwt)
+
+fgfit2b <-  coxph(Surv(fgstart, fgstop, fgstatus) ~ age + sex + mspike,
+                 data=deathdat, weight=fgwt)
+round(rbind(PCM= coef(fgfit2a), death=coef(fgfit2b)), 3)
+
+
+###################################################
+### code chunk number 19: finegray2
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+oldpar <- par(mfrow=c(1,2))
+newdata <- expand.grid(sex= c("F", "M"), age=c(60, 80), mspike=1.2)
+fsurv1 <- survfit(fgfit2a, newdata)  # time to progression curves
+plot(fsurv1, xscale=12, col=1:2, lty=c(1,1,2,2), lwd=2, fun='event',
+     xlab="Years", ylab="Fine-Gray predicted", 
+     xmax=12*25, ylim=c(0, .15))
+legend(1, .15, c("Female, 60", "Male, 60","Female: 80", "Male, 80"),
+       col=c(1,2,1,2), lty=c(1,1,2,2), lwd=2, bty='n')
+
+plot(csurv[,2], xscale=12, col=1:2, lty=c(1,1,2,2), lwd=2,
+     xlab="Years", ylab="Multi-state predicted", 
+     xmax=12*25, ylim=c(0, .15))
+legend(1, .15, c("Female, 60", "Male, 60","Female: 80", "Male, 80"),
+       col=c(1,2,1,2), lty=c(1,1,2,2), lwd=2, bty='n')
+par(oldpar)
+
+
+###################################################
+### code chunk number 20: finegray-check
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+zph.fgfit2a <- cox.zph(fgfit2a)
+zph.fgfit2a
+plot(zph.fgfit2a[1])
+abline(h=coef(fgfit2a)[1], lty=2, col=2)
+
+
+###################################################
+### code chunk number 21: finegray3
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+fsurv2 <- survfit(fgfit2b, newdata)  # time to progression curves
+xtime <- 0:(30*12)  #30 years
+y1a <- 1 - summary(fsurv1, times=xtime)$surv  #predicted pcm
+y1b <- 1 - summary(fsurv2, times=xtime)$surv #predicted deaths before pcm
+y1  <- (y1a + y1b)  #either
+
+matplot(xtime/12, y1, col=1:2, lty=c(1,1,2,2), type='l',
+        xlab="Years post diagnosis", ylab="FG: either endpoint")
+abline(h=1, col=3)
+legend("bottomright", c("Female, 60", "Male, 60","Female: 80", "Male, 80"),
+       col=c(1,2,1,2), lty=c(1,1,2,2), lwd=2, bty='n')
+
+
+###################################################
+### code chunk number 22: pcmstack
+###################################################
+temp1 <- data.frame(mgus2, time=etime, status=(event=="pcm"), group='pcm')
+temp2 <- data.frame(mgus2, time=etime, status=(event=="death"), group="death")
+stacked <- rbind(temp1, temp2)
+allfit <- coxph(Surv(time, status) ~ hgb + (age + sex)*strata(group),
+                 data=stacked)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/timedep.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/timedep.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/timedep.Rnw	(revision 2476)
@@ -0,0 +1,1128 @@
+\documentclass{article}
+\usepackage{amsmath}
+\usepackage{Sweave}
+\addtolength{\textwidth}{1in}
+\addtolength{\oddsidemargin}{-.5in}
+\setlength{\evensidemargin}{\oddsidemargin}
+\newcommand{\code}[1]{\texttt{#1}}
+
+%\VignetteIndexEntry{Using Time Dependent Covariates}
+
+\title{Using Time Dependent Covariates and Time Dependent Coefficients 
+  in the Cox Model}
+\author{Terry Therneau \and Cynthia Crowson \and Elizabeth Atkinson\\ 
+   \emph{Mayo Clinic}}
+
+\begin{document}
+\maketitle
+
+\SweaveOpts{prefix.string=compete,width=6,height=4}
+\setkeys{Gin}{width=\textwidth}
+\SweaveOpts{keep.source=TRUE}
+
+<<preamble, echo=F>>=
+options(width=60, continue=" ")
+makefig <- function(file, top=1, right=1, left=4) {
+    pdf(file, width=9.5, height=7, pointsize=18)
+    par(mar=c(4, left, top, right) +.1)
+    }
+library(survival)
+@ 
+
+\section{Introduction}
+This vignette covers 3  different but interrelated concepts:
+\begin{itemize}
+  \item An introduction to time dependent covariates, along with some
+    of the most common mistakes.
+  \item Tools for creating time-dependent covariates, or rather the
+    data sets used to encode them.
+  \item Time dependent coefficients.
+\end{itemize}
+
+\section{Time dependent covariates}
+One of the strengths of the Cox model is its ability to encompass covariates
+that change over time.  
+The practical reason that time-dependent covariates work
+is based on the underlying way in which the Cox
+model works: at each event time the program compares the current 
+covariate values of the subject
+who had the event to the current values of all others who were at risk
+at that time. 
+One can think of it as a lottery model, where at 
+each death time there is a drawing to decide which subject ``wins'' the
+event.  Each subject's risk score $\exp(X\beta)$
+determines how likely they are to win,
+e.g., how many ``tickets'' they have purchased for the drawing.
+The model tries to assign a risk score to each subject that best predicts
+the outcome of each drawing based on 
+\begin{itemize}
+  \item The risk set: which subjects are present for each event; the set of
+    those able to ``win the prize''.
+  \item The covariate values of each subject just prior to the event time.
+\end{itemize}
+
+The model has a theoretical foundation in martingale theory,
+a mathematical construct which arose out of the study of games of chance.
+A key underlying condition for a martingale like game is that present
+actions depend only on the past. The decision of whether to play
+(is one in the risk set or not) and the
+size of a bet (covariates) can depend in any way on
+prior bets and patterns of won/lost, but cannot look into the future.
+If this holds then multiple properties can be proven about the
+resulting process.
+
+A simple way to code time-dependent covariates uses intervals of time.
+Consider a subject with follow-up from time 0 to death at 185 days, 
+and assume that we have a time dependent covariate (creatinine) that was 
+measured at day 0, 90 and 120 with values of .9, 1.5, and 1.2 mg/dl.
+A way to encode that data for the computer is to break 
+the subject's time into 3 time intervals 0-90, 90-120, 120-185, 
+with one row of data for each interval.  
+The data might look like the following
+<<testdata, echo=FALSE, eval=TRUE>>=
+tdata <- data.frame(subject=c(5,5,5), time1=c(0,90, 120),
+                    time2 = c(90, 120, 185), death=c(0,0,1),
+                    creatinine=c(0.9, 1.5, 1.2))
+tdata
+@ 
+We read this as stating that over the interval from 0 to 90 the creatinine
+for subject ``5'' was 0.9 (last known level), 
+and that this interval did not end in a death.
+The underlying code treats intervals as open on the left and closed on the
+right, e.g. the creatinine on exactly day 90 is 0.9. 
+One way to think of this is that all changes for a given day (covariates or
+status) are recorded at the end of the day.
+
+
+The key rule for time dependent covariates in a Cox model is simple
+and essentially the same as that for gambling: \emph{you cannot look
+into the future}.
+A covariate may change in any way based on past data or outcomes, but it
+may not reach forward in time.
+In the above simple data set this means that we cannot add a linear
+interpolation between the creatinine values 0.9 and 1.5 to get a
+predicted value of 1.1 on day 100; on day 100 the later value of 1.5 has
+not yet been seen.
+
+A an example consider a recent analysis from the Mayo Clinic
+study of aging (MCSA), a study which enrolled a stratified random sample from
+the population of Olmsted County and then has followed them forward in
+time.  The occurrence of mild cognitive impairment (MCI), dementia, and
+death are all of interest.  
+The paper starts out with a table comparing baseline covariates for those
+who never progress to MCI versus those who ever did,
+there is also a table of baseline covariates versus survival.
+Both of these are fine: if you think in terms of an R formula they
+could be written with future outcomes on the left hand side of the formula
+and past information on the right.  
+A table that compared the survival of those who did or did not progress
+to MCI, however, would be invalid.
+It corresponds to a model with a future occurrence on
+both sides of the equation.
+
+One of the more well known examples of this error is analysis by 
+treatment response:
+at the end of a trial a survival curve is made comparing those who had an
+early response to treatment (shrinkage of tumor, lowering of cholesterol,
+or whatever) to those who did not, and it discovered that responders have
+a better curve.  
+A Cox model fit to the same data will demonstrate a strong 
+``significant'' effect.
+The problem arises because any early deaths, those that occur before response 
+can be assessed,
+will all be assigned to the non-responder group, even deaths that have
+nothing to do with the condition under study.
+Below is a simple example based on the advanced lung cancer data set.
+Assume that subjects came in monthly for 12 cycles of treatment,
+and randomly declare a ``response'' for 5\% of the subjects at each
+visit.
+<<fake, fig=TRUE>>=
+set.seed(1953)  # a good year
+nvisit <- floor(pmin(lung$time/30.5, 12))
+response <- rbinom(nrow(lung), nvisit, .05) > 0
+badfit <- survfit(Surv(time/365.25, status) ~ response, data=lung)
+plot(badfit, mark.time=FALSE, lty=1:2, 
+     xlab="Years post diagnosis", ylab="Survival")
+legend(1.5, .85, c("Responders", "Non-responders"), 
+       lty=2:1, bty='n')
+@ 
+What is most surprising about this error is the \emph{size} of the
+false effect that is produced.
+A Cox model using the above data reports a hazard ratio of 1.9 fold
+with a p-value of less than 1 in 1000.
+
+The alarm about this incorrect approach has been sounded often
+\cite{Anderson83, Buyse96, Suissa08} but the analysis is routinely 
+re-discovered.
+A slightly subtler form of the error is discussed in Redmond et al
+\cite{Redmond83}.  Breast cancer chemotherapy patients were
+divided into three groups based on whether the patient eventually
+received $>85$\%, 65--85\% or $<65$\% of the dose planned at the start of
+their treatment.  The chemotherapy regimen spans 12 weeks of treatment
+and the early deaths, not surprisingly, do not get all their dose.  
+
+If response is instead coded as a time-dependent covariate whose values 
+depend only on the past, then the problem disappears.
+For treatment response this will be a variable that starts at
+0 for all subjects and is recoded to 1 only when the response occurs.
+For dose it would measure cumulative dose to date.
+
+There are many variations on the error: interpolation of the values of a
+laboratory test linearly between observation times, removing subjects who do
+not finish the treatment plan, imputing the date of an adverse event as midway
+between observation times, etc. 
+Using future data will often generate large positive or negative bias in the 
+coefficients, but sometimes it generates little bias at all.
+It is nearly impossible to predict a priori which of these will occur in any
+given data set.
+Using such a covariate is similar to jogging across a Los Angeles freeway:
+disaster is not guaranteed --- but it is likely.
+
+The most common way to encode time-dependent covariates is to use the
+(start, stop] form of the model.
+<<echo=TRUE, eval=FALSE>>=
+fit <- coxph(Surv(time1, time2, status) ~ age + creatinine, 
+             data=mydata)
+@ 
+In data set \code{mydata} a patient might have the following observations
+\begin{center}
+  \begin{tabular}{ccccccc}
+    subject  & time1 & time2 & status & age & creatinine & \ldots \\ \hline
+    1 & 0 & 15 & 0 & 25 & 1.3 \\
+    1 & 15& 46 & 0 & 25 & 1.5 \\
+    1 & 46& 73 & 0 & 25 & 1.4 \\
+    1 & 73& 100& 1 & 25 & 1.6 \\
+\end{tabular}
+\end{center}
+In this case the variable \code{age} = age at entry to the study stays the
+same from line to line, while the value of creatinine varies and is treated as
+1.3 over the interval $(0, 15]$, 1.5 over $(15, 46]$, etc.  The intervals are
+open on the left and closed on the right, which means that the creatinine
+is taken to be 1.3 on day 15.
+The status variable describes whether or not each interval ends in an event.
+
+One common question with this data setup is whether we need to worry about
+correlated data, since a given subject has multiple observations.
+The answer is no, we do not.  The reason is that this representation is
+simply a programming trick.
+The likelihood equations at any time point
+use only one copy of any subject, the program picks out the correct
+row of data at each time.
+There two exceptions to this rule:
+\begin{itemize}
+  \item When subjects have multiple events, then the rows for the events are
+    correlated within subject and a cluster variance is needed.
+  \item When a subject appears in overlapping intervals.  This however is 
+    almost always a data error, since it corresponds to two copies of the
+    subject being present in the same strata at the same time, e.g.,
+    she could meet herself at a party.
+\end{itemize}
+A subject can be at risk in multiple strata at the same time, however.  
+This corresponds to being simultaneously at risk for two distinct outcomes.
+
+
+\section{Building time-dependent sets with tmerge}
+\subsection{The function}
+A useful function for building data sets is \code{tmerge}, which is
+part of the survival library.
+The idea is to build up a time dependent data set one endpoint at at time.
+The primary arguments are
+\begin{itemize}
+  \item data1: the base data set that will be added onto
+  \item data2: the source for new information
+  \item id: the subject identifier in the new data
+  \item \ldots: additional arguments that add variables to the data set
+  \item tstart, tstop: used to set the time range for each subject
+  \item options
+\end{itemize}
+The created data set has three new variables (at least), which are
+\code{id}, \code{tstart} and \code{tstop}.
+
+The key part of the call are the ``\ldots'' arguments 
+which each can be one of four types:
+tdc() and cumtdc() add a time dependent variable, event() and cumevent()
+add a new endpoint.
+In the survival routines time intervals are open on the left and
+closed on the right, i.e.,  (tstart, tstop].
+Time dependent covariates apply from the start of an interval and events
+occur at the end of an interval.
+If a data set already had intervals of (0,10] and (10, 14] a new time
+dependent covariate or event at time 8 would lead to three intervals of
+(0,8], (8,10], and (10,14];
+the new time-dependent covariate value would be added to the second interval,
+a new event would be added to the first one.
+
+The basic form of the function is 
+<<eval=FALSE, echo=TRUE>>=
+newdata <- tmerge(data1, data2, id, newvar=tdc(time, value), ...)
+@ 
+Where \code{data1} is the starting data set and additions to the data are
+taken from \code{data2}.
+The idea behind the function is that each addition will be ``slipped in''
+to the original data in the same way that one
+would slide a new card into an existing deck of cards. 
+It is a complex function, and we illustrate it below with a set of
+examples that sequentially reveal its features.
+
+\subsection{CGD data set}
+Chronic granulomatous disease (CGD) is a heterogeneous group of uncommon
+inherited disorders characterized by recurrent pyogenic infections that
+usually begin early in life and may lead to death in childhood.
+In 1986, Genentech, Inc. conducted a
+randomized, double-blind, placebo-controlled trial in 128 CGD patients who
+received Genentech's humanized interferon gamma (rIFN-g) or placebo three %'
+times daily for a year. Data were collected on all serious
+infections until the end of followup,
+which occurred before day 400 for most patients.
+  One patient was taken off on the day of his last infection; all others
+have some followup after their last episode.
+
+Below are the first 10 observations, see the help page for \texttt{cgd0}
+for the full list of variable names. The last few columns contain the 
+duration of follow-up for the subject followed by infection times.
+Subject 1 was followed for 414 days and had infections on days 219 and 373, 
+subject 2 had 7 infections and subject 3 had none.
+\small
+\begin{verbatim}
+  1 204 082888 1 2 12 147.0  62.0 2 2 2 2 414 219 373
+  2 204 082888 0 1 15 159.0  47.5 2 2 1 2 439   8  26 152 241 249 322 350
+  3 204 082988 1 1 19 171.0  72.7 1 2 1 2 382
+  4 204 091388 1 1 12 142.0  34.0 1 2 1 2 388
+  5 238 092888 0 1 17 162.5  52.7 1 2 1 1 383 246 253
+  6 245 093088 1 2 44 153.3  45.0 2 2 2 2 364
+  7 245 093088 0 1 22 175.0  59.7 1 2 1 2 364 292
+  8 245 093088 1 1  7 111.0  17.4 1 2 1 2 363
+  9 238 100488 0 1 27 176.0  82.8 2 2 1 1 349 294
+ 10 238 100488 1 1  5 113.0  19.5 1 2 1 1 371
+\end{verbatim}
+\normalsize
+The data set is included as \code{cgd0} in the survival
+library. 
+Here is the R printout of the first four subjects.
+<<>>=
+cgd0[1:4,]
+@ 
+
+We want to turn this into a data set that has survival in a counting
+process form.
+\begin{itemize}
+  \item Each row of the resulting data set represents a time interval
+    (time1, time2] which is open on the left and closed on the right.
+    Covariate values for that row are the covariate values that apply
+    over that interval.
+  \item The event variable for each row $i$ is 1 if the time interval ends
+    with an event and 0 otherwise.
+\end{itemize}
+
+We don't need variables etime1--etime7 in the final data set, so they are
+left out of the data1 argument in the first call.
+<<cgd1>>=
+dim(cgd0)
+newcgd <- tmerge(data1=cgd0[, 1:13], data2=cgd0, id=id, tstop=futime)
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime1)) 
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime2)) 
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime3)) 
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime4)) 
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime5)) 
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime6)) 
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime7)) 
+newcgd <- tmerge(newcgd, newcgd, id, enum=cumtdc(tstart))
+dim(newcgd)
+newcgd[1:5,c(1, 4:6, 13:17)]
+attr(newcgd, "tcount")
+coxph(Surv(tstart, tstop, infect) ~ treat + inherit + steroids +
+      + cluster(id), newcgd)
+@ 
+
+These lines show the canonical way to use tmerge: each call adds one
+more bit of information to the data set.
+\begin{itemize}
+  \item The first call sets the \emph{time range} for each subject to
+    be from 0 (default) to last follow-up.  If a later call tried to
+    add an event outside that range, at time = -2 say, that addition
+    would be ignored.  The range can be set explicitly by using
+    the tstop and (optional) tstart arguments, or implicitly
+    as will be done in the heart transplant example below.
+    This first result has \Sexpr{nrow(cgd0)} rows, the same number as
+    \code{cgd0}.
+  \item Each additional call then adds either an endpoint or a covariate,
+    splitting individual rows of the input in two as necessary.
+    An \code{event} or \code{cumevent} directive adds events, while
+    a \code{tdc} or \code{cumtdc} one adds a time dependent covariate.
+    Events happen at the ends of intervals and time-dependent covariates 
+    change at the start of an interval.  
+  \item Additions from \code{data2} with a missing time value are ignored.
+  \item The result of \code{tmerge} is a data frame with a few extra
+    attributes. One of these, tcount, is designed to help visualize
+    the process and was printed out after the last step above.
+    Assume that a subject already had 3 intervals of (2,5), (5,10)
+    and (14,40).
+    A new event added at time 1 would be ``early'' while one at time 50
+    is after any interval and would be recorded as ``late''.
+    An event at
+    time 3 is within an interval, one at 5 is on the border of two
+    intervals, one at 14 is at the leading edge of an interval, one at
+    time 10 in on the trailing edge and at time 11 is in a gap.
+    In this data set all new additions fell strictly within prior intervals.
+    We also see that etime6 and etime7 each added only a single event to 
+    the data.
+  \item If two observations in data2 for a single person share exactly
+    the same time, the created value will be the later contribution for
+    tdc() or event() calls, cumtdc() and cumevent() will add.
+    The ``tied'' column tells how often this happened; in some
+    data sets this behavior might not be desired and one would need to
+    break the ties before calling tmerge.
+  \item The last tmerge call adds a
+    simple time-dependent variable \code{enum} which is a running observation
+    count for each subject.  This can often be a useful variable in later
+    models or processing, e.g. \code{enum==1} selects off the first row
+    for each subject.
+  \item The extra attributes of the data frame are ephemeral: they will be
+    lost as soon as any further manipulation is done.  This is intentional.
+  \item One can verify that the resulting data set is equivalent to
+    \code{cgd}, a (start, stop] version of the CGD data in the
+    survival library which had been created by hand several years earlier.
+\end{itemize}
+
+The \code{tmerge} function processes arguments sequentially, and the 
+above example can be rewritten as below.  There is no computational
+advantage of one form versus the other.
+<<cgd1b>>= 
+test  <- tmerge(cgd0[, 1:13], cgd0, id=id, tstop=futime,
+                 infect = event(etime1), infect= event(etime2),
+                 infect = event(etime3), infect= event(etime4),
+                 infect = event(etime5), infect= event(etime6),
+                 infect = event(etime7))
+test <- tmerge(test, test,  id= id, enum = cumtdc(tstart))
+all.equal(newcgd, test)
+@ 
+
+\subsection{Stanford heart transplant}
+The \code{jasa} data set contains information from the Stanford heart
+transplant study, in the form that it appeared in the 
+paper of Crowley and Hu \cite{Crowley77}.
+The data set has one line per subject
+which contains the baseline covariates along with
+dates of enrollment, transplant, and death or last follow-up.
+We want to create \code{transplant} as a time dependent covariate.
+As is often the case with real data, this data set contains a few anomalies 
+that need to be dealt with when setting up an analysis data set.
+\begin{enumerate}
+  \item One subject died on the day of entry.  However (0,0) is an illegal
+    time interval for the \code{coxph} routine.  
+    It suffices to have them die on day 0.5.
+    An alternative is to add 1 day to everyone's follow-up, e.g., subject
+    2 who enrolled on Jan 2 1968 and died on Jan 7 would be credited with 6
+    days.  (This is what Kalbfleisch and Prentice do in their
+    textbook.)  The result of the final \code{coxph} call is the
+     same from either strategy.
+
+  \item A subject transplanted on day 10 is considered to have been on medical
+    treatment for days 1--10 and as transplanted starting on day 11.
+    That is, except for patient 38 who died on the same day as their procedure.
+    They should be treated as a transplant death; the problem is resolved by
+    moving this transplant back .5 day.
+
+  \item The treatment coefficients in table 6.1 of the 
+    definitive analysis found in
+    Kalbfliesch and Prentice \cite{Kalbfleisch02}
+    will only be obtained if covariates are defined
+    in precisely the same way, since their models include interactions.
+    (Table 5.2 in the original edition of the book).
+    For age this is (age in days)/ 365.25 - 48 
+    years, and for year of enrollment it is the number of years since the
+    start of the study: (entry date - 1967/10/1)/365.25. 
+    (Until I figured this out I would get occasional ``why is coxph giving
+    the wrong answers'' emails.)
+\end{enumerate}
+Since time is in days the fractional time of 0.5 could be any value
+between 0 and 1, our choice will not affect the results.
+
+<<stanford>>=
+jasa$subject <- 1:nrow(jasa)  #we need an identifier variable
+tdata <- with(jasa, data.frame(subject = subject,
+                               futime= pmax(.5, fu.date - accept.dt),
+                               txtime= ifelse(tx.date== fu.date,
+                                              (tx.date -accept.dt) -.5,
+                                              (tx.date - accept.dt)),
+                               fustat = fustat
+                             ))
+
+sdata <- tmerge(jasa, tdata, id=subject,
+                  death = event(futime, fustat),
+                  trt   =  tdc(txtime), 
+                  options= list(idname="subject"))
+attr(sdata, "tcount")
+sdata$age <- sdata$age -48
+sdata$year <- as.numeric(sdata$accept.dt - as.Date("1967-10-01"))/365.25
+
+# model 6 of the table in K&P
+coxph(Surv(tstart, tstop, death) ~ age*trt + surgery + year, 
+      data= sdata, ties="breslow")
+@ 
+
+This example shows a special case for the \code{tmerge} function that 
+is quite common: if the first
+created variable is an event then the time range for each subject is
+inferred to be from 0 to the event time: explicit \code{tstop} 
+and \code{tstart} arguments are not required.
+It also makes use of a two argument form of \code{event}.
+Each of the \code{event}, \code{cumevent}, \code{tdc} and \code{cumtdc}
+functions
+may have a second argument, which if present will be used as the value
+for the event code or time dependent covariate.
+If this second argument is not present a value of 1 is used.
+
+If a created variable is not already in data1, 
+the starting value \emph{before} the first definition of that
+variable is a NA for a
+\code{tdc} or \code{cumtdc} call that has two arguments and 0
+in all other cases.
+If the variable being created is already a part of data1, 
+then our updates make changes to that variable.
+Be careful of this.  This feature is what allowed for the 
+\code{infection} indicator to be build up incrementally in the cgd
+example above, but quite surprising results can occur when you
+think a new variable is being created de novo but its name is already
+in use.  For example, if we name the new variable
+`transplant' in the third line of \code{sdata} above it collides
+with an existing variable in the \code{jasa} data set; the result
+is to not create a time-dependent transplant variable at all.
+(The author made this mistake himself when creating this vignette,
+ and then spent several hours searching the tmerge
+code for an error that wasn't there.)
+
+The \code{tcount} table for the above fit shows all the deaths at the
+trailing edge of their interval, which is expected since the time
+of death or last follow-up was
+used to define each subject's interval of risk.
+Two of the transplants happened on day 0
+and are listed as occurring on the leading edge of the first
+follow-up interval for the subject.  
+The other 67 transplants were strictly within the (0, last follow up)
+interval of each subject.
+
+\subsection{PBC data}
+The \code{pbc} data set contains baseline data and follow-up status
+for a set of subjects with primary biliary cirrhosis, while the
+\code{pbcseq} data set contains repeated laboratory values for those
+subjects.  
+The first data set contains data on 312 subjects in a clinical trial plus
+106 that agreed to be followed off protocol, the second data set has data
+only on the trial subjects.
+
+<<pbc>>=
+temp <- subset(pbc, id <= 312, select=c(id:sex, stage)) # baseline
+pbc2 <- tmerge(temp, temp, id=id, death = event(time, status)) #set range
+pbc2 <- tmerge(pbc2, pbcseq, id=id, ascites = tdc(day, ascites),
+               bili = tdc(day, bili), albumin = tdc(day, albumin),
+               protime = tdc(day, protime), alk.phos = tdc(day, alk.phos))
+fit1 <- coxph(Surv(time, status==2) ~ log(bili) + log(protime), pbc)
+fit2 <- coxph(Surv(tstart, tstop, death==2) ~ log(bili) + log(protime), pbc2)
+rbind('baseline fit' = coef(fit1),
+      'time dependent' = coef(fit2))
+@ 
+We start the build with a baseline data set that has a subset of
+the variables.  
+This is due to my own frugality --- I happen to like data sets that are 
+more trim.  It is not a requirement of the tmerge function, however,
+and a user is certainly free to skip the first step above and build
+\code{pbc2} directly from data set \code{pbc}.
+
+The coefficients of bilirubin and prothrombin time are somewhat larger in
+the time-dependent analysis than the fit using only baseline values.  
+In this autoimmune disease there is steady progression of liver damage,
+accompanied by a steady rise in these two markers of dysfunction.  
+The baseline analysis captures patients' disease status at the start, the
+time-dependent analysis is able to account for those who progress more quickly.
+In the pbc data set the status variable is 0= censored, 1= liver transplant 
+and 2= death; the above analyses were models of time to death, censoring
+at transplant.  
+(At the time of the PBC study liver transplantation was still in its infancy and
+it is fair to view the 19/312 subjects who received the procedure as a
+random sample. 
+In the modern era there are far more waiting recipients than organs and
+available livers are directed to those patients who illness is most dire;
+censoring at transplant would not lead to an interpretable result.)
+
+By default \code{tmerge} ignores any updates from \code{data2} that have
+a missing value for either the time or the value.
+In the pbcseq data set there are several observations with a 
+missing alkaline phosphotase value.
+A consequence of this behavior is that the pbc2 data set effectively
+uses ``last value carried forward'' values for alk.phos, replacing those
+missing values. 
+Subject 6 for instance has a total follow-up of 2503, and alk.phos values
+of 682 and NA on days 1492 and 2453, respectively; in the final data
+set it is coded 682 from day 1492 until last follow up.
+One can change this default by adding 
+\code{options=list(na.rm=FALSE)} to the second call above, in which case 
+the alkaline phosphotase value over the
+interval (2453, 2503] will become missing.
+Any \code{tdc} calls with a missing time are still ignored, independent
+of the na.rm value, since we would not know where to insert them.
+
+<<>>=
+attr(pbc2, "tcount")
+@
+<<echo=FALSE>>=
+#grab a couple of numbers for the paragraph below
+atemp <- attr(pbc2, "tcount")[2:3,]
+@ 
+The tcount results are interesting.  For the first addition of ascites we
+have \Sexpr{atemp[1, 'leading']} observations on a leading edge of follow up,
+which is all of
+the baseline lab values at time 0,  
+and \Sexpr{atemp[1, 'within']} further additions within the subjects' follow-up
+interval.  The latter cause a new break point to be added at each of these
+intermediate laboratory dates,
+for subsequent additions these \Sexpr{atemp[1, 'within']} times lie on
+a boundary of two intervals.  
+Another \Sexpr{atemp[1, 'late']} non-missing alkaline phosphotase
+values occurred after the last follow-up date
+of the pbc data set and are ignored.  
+Bilirubin is missing on no subjects, so it's addition creates a few more
+unique break points in the follow-up, namely those clinical visits for
+which the ascites value was missing.
+
+The data for the pbcseq data set was assembled at a later calendar time
+than the primary data set.
+Since having lab test results is a certain marker that the patient is still
+alive,
+would a  better analysis have used this test information
+to extend the last follow-up date for these \Sexpr{atemp[2,'late']} 
+``late'' subjects
+with a later laboratory date?
+Not necessarily.
+
+Odd things happen in survival analysis when risk sets are extended piecemeal.
+A basic tenet of the Cox model is that if someone is
+marked as being ``at risk'' over some interval $(s, t)$, this means that 
+``if they had had an event over that interval, we would have recorded it.''
+Say someone ended their initial follow-up time at 3000 days and then had a
+lab test at 3350 days (subjects returned about once a year).
+If we only extend the time of those who had a test, then saying that this
+subject was at risk during the interval (3000, 3350) is false: if they
+had died in that interval, they would not have had the lab test and would not
+obtained the extension, nor would their death have been updated in the
+original \code{pbc} data set.
+The cutoff rule of \code{tmerge} is purposefully conservative to avoid
+creating such anomalies.
+
+In the case of the PBC data set this author happens to know that active
+follow-up \emph{was} continued for all subjects, both those that did and did not
+return for further laboratory tests.  This updated follow-up information is
+included in the pbcseq data and could have been used to set a wider 
+time range.  Such is not always the case, however.  
+Automatic additions to a data set via electronic systems can be particularly
+troublesome.  
+One case from the author's experience involved a study of patient outcomes
+after organ transplant. Cases
+were actively followed up for 3 years, at which time priorities shifted and 
+the clerical staff responsible for the active follow-up were reassigned.  
+Automatic updates
+from a state death index continued to accumulate, however.  A Kaplan-Meier
+curve computed at 5 years showed the remarkable result of a 3 year survival 
+of .9 followed by a precipitous drop to 0 at 5 years!
+This is because there was, by definition, 100\% mortality
+in all those subjects with more than 3 years of supposed follow-up.
+
+\subsection{Time delay and other options}
+The \code{options} argument to the tmerge routine is a list with
+one or more of the following five elements, listed below along with their
+default values.
+\begin{itemize}
+  \item idname = 'id'
+  \item tstartname = 'tstart'
+  \item tstopname = 'tstop'
+  \item na.rm = TRUE
+  \item delay  = 0
+\end{itemize}
+The first three of these are the variable names that will be used
+for the identifier, start, and stop variables which are added to 
+the output data set. 
+They only need to be specified one time within a series of tmerge calls in
+order to effect a change.
+The na.rm option has been discussed above; it affects tdc() and
+cumtdc() directives within a single tmerge call.
+The delay option causes any tdc
+or cumtdc action in the tmerge call to be delayed by a fixed amount.
+The final two tmerge calls below are \emph{almost} identical in their action:
+<<echo=TRUE, eval=FALSE>>=
+temp <- subset(pbc, id <= 312, select=c(id:sex, stage))
+pbc2 <- tmerge(temp, temp, id=id, death = event(time, status))
+pbc2a <- tmerge(pbc2, pbcseq, id=id, ascites = tdc(day, ascites),
+               bili = tdc(day, bili), options= list(delay=14))
+pbc2b <- tmerge(pbc2, pbcseq, id=id, ascites = tdc(day+14, ascites),
+               bili = tdc(day+14, bili))
+@ 
+The difference between \code{pbc2a} and \code{pbc2b}
+is that the first call does not defer
+baseline values for each subject, i.e., any value with a time that is
+on or before the the  subject's first time point, as that will introduce 
+intervals with a missing value into the result.
+
+The more important question is \emph{why} one would wish to delay
+or lag a time dependent covariate.
+One reason is to check for cases of reverse causality.  It is sometimes
+the case that a covariate measured soon before death is not a predictor
+of death but rather is simply a marker for an event that is
+already in progress.
+A simple example would the the time dependent covariate ``have called
+the family for a final visit''.  
+A less obvious one from the author's experience occurs when a clinical
+visit spans more than one day, the endpoint is progression, and one or more
+laboratory results that were used to define ``progression'' get recorded in
+the data set 1-2 days before the progression event.  
+(They were perhaps pulled automatically from a laboratory information system).
+One then ends up with the tautology of a test value predicting its own result.
+
+Even more subtle biases can occur via coding errors.
+For any data set containing constructed time-dependent covariates,
+it has become the author's practice to re-run the analyses after adding 
+a 7-14 day lag to key variables.
+When the results show a substantial change, and this is not infrequent,
+understanding why this occurred is an critical step.  
+Even if there is not an actual error, one has to question the value of a
+covariate that can predict death within the next week but fails 
+for a longer horizon. 
+
+\subsection{Cumulative events}
+The action of the \code{cumevent} operator is different than \code{cumtdc}
+in several ways.  Say that we have a subject with outcomes of one
+type at times 5, 10, and 15 and another type at times 6 and 15, with a
+follow-up interval of 0 to 20. 
+For illustration I'll call the first event 'athsma' and the second 'IBD' 
+(a disease
+flare in inflammatory bowel disease).  A resulting data set would have the
+following form:
+\begin{center}
+  \begin{tabular}{rcccc}
+    &\multicolumn{2}{c}{cumtdc} & \multicolumn{2}{c}{cumevent} \\
+interval  & athsma & IBD & athsma & IBD \\ \hline
+(0, 5] & 0 &0 & 1 & 0 \\
+(5, 6] & 1 &0 & 0 & 1 \\
+(6, 10]& 1 &1 & 2 & 0 \\
+(10, 15] & 2& 1& 3 & 2 \\
+(15, 20] & 3& 2& 0 & 0
+\end{tabular}
+\end{center}
+Events happen at the ends of an interval and time-dependent covariates
+change the following intervals. 
+More importantly, time-dependent covariates persist while events
+do not, a \code{cumevent} action simply changes the label attached
+to an event.  
+
+\subsubsection{REP}
+The motivating case for \code{tmerge} came from a particular problem:
+the Rochester Epidemiology Project has tracked all subjects living in
+Olmsted County, Minnesota, from 1965 to the present.  
+For an investigation of cumulative comorbidity we had three data sets
+\begin{itemize}
+  \item base: demographic data such as sex and birth date
+  \item timeline: one or more rows for each subject containing 
+    age intervals during which they were a resident of the county.  
+    The important variables are id, age1 and age2; each (age1, age2)
+    pair marks an interval of residence. Disjoint intervals are not
+    uncommon.
+  \item outcome: one row for the first occurrence of each outcome of interest.  
+    The outcomes were 20 comorbid conditions as defined by a particular
+    research initiative from the National Institutes of Health.
+\end{itemize}
+
+The structure for building the data is shown below.
+(The data for this example unfortunately cannot be included with the survival
+library so the code is shown but not executed.)
+
+<<rep, eval=FALSE, echo=TRUE>>=
+newd <- tmerge(data1=base, data2=timeline, id=repid, tstart=age1, 
+               tstop=age2, options(id="repid"))
+newd <- tmerge(newd, outcome, id=repid, mcount = cumtdc(age))
+newd <- tmerge(newd, subset(outcome, event='diabetes'), 
+               diabetes= tdc(age))
+newd <- tmerge(newd, subset(outcome, event='arthritis'), 
+               arthritis= tdc(age))
+@ 
+The first call to tmerge adds the time line for each observation to the
+baseline data.
+For this first call both data1 and data2 
+must contain a copy of the
+id variable (here \code{repid}), and data1 is constrained to have only a
+single line for each id value. (Subjects have a single baseline.) 
+Each subsequent call adds a new variable to the data set.
+The second line creates a covariate which is a cumulative count of
+the number of comorbidities thus far for each subject.  
+The third line creates a time dependent covariate (tdc) which will
+be 0 until the age of diabetes and is 1 thereafter, the fourth
+line creates a time dependent variable for the presence of arthritis.
+
+Time dependent covariates that occur before the start of a subject's
+follow-up interval or during a gap in time do not generate a new time
+point, but they do set the value of that covariate for future times.
+Events that occur in a gap are not counted.
+The rationale is that during a subject's time within the county we would
+like the variable ``prior diagnosis of diabetes'' 
+to be accurate, even if that diagnosis occurred during a prior period when
+the subject was not a resident. 
+For events outside of the time line, we have no way to know who the appropriate
+comparison group is, and so must ignore those events.  
+(Formally, the risk set would be the set of
+all non-residents who, if they were to have had an event at the same age, 
+we would find out about it
+because they will later move to the county, have a medical encounter here,
+and have that event written into the ``prior
+conditions'' section of their medical record.)
+
+
+\section{Time dependent coefficients}
+Time dependent covariates and time dependent coefficients are two
+different extensions of a Cox model, as shown in the two equations
+below.
+\begin{align}
+  \lambda(t) &= \lambda_0(t) e^{\beta X(t)} \label{tdcovar} \\
+  \lambda(t) &= \lambda_0(t) e^{\beta(t) X} \label{tdbeta} 
+\end{align}
+Equation \eqref{tdcovar} is a time dependent covariate, a commonly used
+and well understood usage.
+Equation \eqref{tdbeta} has a time dependent coefficient.
+These models are much less common, but represent one way to deal with
+non-proportional hazards -- the proportional hazard assumption is
+precisely that the coefficient does not change over time: $\beta(t) = c$.
+The \code{cox.zph} function will plot an estimate of $\beta(t)$ for
+a study and is used to diagnose and understand non-proportional
+hazards.
+Here for example is a test case using the veterans cancer data.
+
+<<veteran1, fig=TRUE>>=
+options(show.signif.stars = FALSE)  # display user intelligence
+vfit <- coxph(Surv(time, status) ~ trt + prior + karno, veteran)
+vfit
+quantile(veteran$karno)
+
+zp <- cox.zph(vfit, transform= function(time) log(time +20))
+zp
+plot(zp[3])    # a plot for the 3rd variable in the fit
+abline(0,0, col=2)
+abline(h= vfit$coef[3], col=3, lwd=2, lty=2)
+@ 
+
+Karnofsky score is a very important predictor, but its effect is not
+constant over time as shown by both the test and the plot. 
+Early on it has a large negative
+effect: the risk of someone at the first quartile is
+approximately exp(35*.03377) = 3.2 fold times that of someone at
+the third quartile, but by 200 days this has waned and is not much
+different from zero.  
+One explanation is that, in this very acute illness, any measure
+that is over 6 months old is no longer relevant.
+
+The proportional hazards model estimates an average hazard over time,
+the value of which is shown by the dashed horizontal line.
+The use of an average hazard is often reasonable, the proportional hazards
+assumption is after all never precisely true.
+In this case, however, the departure is quite large and a time dependent
+coefficient is a more useful summary of the actual state.
+The cox.zph plot is excellent for diagnosis but does not, however,
+produce a formal fit of $\beta(t)$.
+What if we want to fit the model?
+
+\subsection{Step functions}
+One of the simplest extensions is a step function for $\beta(t)$, i.e.,
+different coefficients over different time intervals.
+An easy way to do this is to use the \code{survSplit} function to
+break the data set into time dependent parts.
+We will arbitrarily divide the veteran's data into 3 epochs of the first
+3 months, 3-6 months, and greater than 6 months.
+<<split>>=
+vet2 <- survSplit(Surv(time, status) ~ ., data= veteran, cut=c(90, 180), 
+                  episode= "tgroup", id="id")
+vet2[1:7, c("id", "tstart", "time", "status", "tgroup", "age", "karno")]
+@ 
+The first subject died at 72 days, his data is unchanged.
+The second and third subjects contribute time to each of the three
+intervals.
+<<split2>>=
+vfit2 <- coxph(Surv(tstart, time, status) ~ trt + prior + 
+                  karno:strata(tgroup), data=vet2)
+vfit2
+cox.zph(vfit2)
+@ 
+A fit to the revised data shows that the effect of baseline Karnofsky score
+is essentially limited to the first two months.
+The \code{cox.zph} function shows no further time dependent effect
+of Karnofsky score.
+This last is of course no surprise, since we used the original graph to
+pick the cut points.  
+A ``test'' that the coefficients for the three intervals are different
+will be biased by this sequential process and should be viewed with
+caution.
+
+Survival curves post fit require a little more care.
+The default curve uses the mean covariate values, 
+which is always problematic and completely useless in this case.  
+Look at the set of saved means for the model:
+<<split3>>=
+vfit2$means
+@ 
+The default curve will be for someone on treatment arm
+\Sexpr{round(vfit2$means[1], 2)},  %$
+which applies to no one,
+and a single set of ``blended'' values of the Karnofsky score, each times
+the three Karnofsky coefficients.
+This is easily rectified by creating a new data set with time intervals.
+
+<<split4>>=
+quantile(veteran$karno)
+cdata <- data.frame(tstart= rep(c(0,30,60), 2),
+                    time =  rep(c(30,60, 100), 2),
+                    status= rep(0,6),   #necessary, but ignored
+                    tgroup= rep(1:3, 2),
+                    trt  =  rep(1,6),
+                    prior=  rep(0,6),
+                    karno=  rep(c(40, 75), each=3),
+                    curve=  rep(1:2, each=3))
+cdata
+sfit <- survfit(vfit2, newdata=cdata, id=curve)
+km <- survfit(Surv(time, status) ~ I(karno>60), veteran)
+plot(km, xmax=120, col=1:2, lwd=2, 
+     xlab="Days from enrollment", ylab="Survival")
+lines(sfit, col=1:2, lty=2, lwd=2)
+@ 
+In the new data set the \code{tgroup} variable correctly tracks time
+intervals. 
+The default behavior for survival curves based on a coxph model is to
+create one curve for each line in the input data; the \code{id}
+option causes it to use a set of lines for each curve.
+Karnofsky scores at the 25th and 75th percentiles roughly represent the 
+average score for the lower half of the subjects and that for the upper half,
+respectively, and are plotted over the top of the Kaplan-Meier
+curves for those below and above the median.
+At 30 days the Cox model curves essentially become parallel.
+
+\subsection{Continuous time-dependent coefficients}
+If $\beta(t)$ is assumed to have a simple functional form we can 
+fool an ordinary Cox model program in to doing the fit.
+The particular form $\beta(t) = a + b\log(t)$ has for instance often
+been assumed.  
+Then $\beta(t) x = ax + b \log(t) x = ax + b z$ for the special time
+dependent covariate $z = \log(t) x$.
+The time scale for the \code{cox.zph} plot used
+further above of $\log(t + 20)$ was chosen
+to make the first 200 days of the plot roughly linear.
+Per the figure this simple linear model does not fit over the entire range, 
+but we will forge ahead and use it as an example anyway.
+(After all, most who fit the log(t) form have not bothered to even 
+look at a plot.)
+An obvious but incorrect approach is
+<<vfit3, echo=TRUE, eval=FALSE>>=
+vfit3 <- coxph(Surv(time, status) ~ trt + prior + karno +
+                I(karno * log(time + 20)), data=veteran)
+@ 
+This mistake has been made often enough the the \code{coxph} routine has been
+updated to print an error message for such attempts.
+The issue is that the above code does not actually create a time dependent 
+covariate,
+rather it creates a time-static value for each subject based on their value
+for the covariate \code{time}; no differently than if we had
+constructed the variable outside of a \code{coxph} call.
+This variable most definitely breaks the rule about not looking into the
+future, and one would quickly find the circularity: large values of 
+\code{time} predict long survival,  because long survival leads to 
+large values for \code{time}.
+
+A true time-dependent covariate can be constructed using the 
+\emph{time-transform} functionality of coxph.
+<<vet3>>=
+vfit3 <-  coxph(Surv(time, status) ~ trt + prior + karno + tt(karno),
+                data=veteran,
+                tt = function(x, t, ...) x * log(t+20))
+vfit3
+@ 
+The time dependent coefficient is estimated to be
+$\beta(t) =$ \Sexpr{round(coef(vfit3)[3], 3)} + 
+  \Sexpr{round(coef(vfit3)[4], 3)} * log(t + 20).
+We can add said line to the \code{cox.zph} plot.
+Not surprisingly, the result is rather too high for time $>$ 200
+and underestimates the initial slope.
+Still the fit is better than a horizontal line, as confirmed
+by the p-value for the slope term in \code{vfit3}.
+(The p-value for that term from cox.zph is nearly identical, as it
+must be, since the tests in cox.zph are for a linear effect on the
+chosen time scale.)
+<<vet3b, fig=TRUE>>=
+plot(zp[3])
+abline(coef(vfit3)[3:4], col=2)
+@ 
+
+This same coding dichotomy exists in SAS phreg, by the way.  Adding
+\code{time} to the right hand side of the model statement will create
+the time-fixed (incorrect) variable,
+while a programming statement within phreg that 
+uses \code{time} as a variable will generate time-dependent objects.
+The error is less likely there because phreg's model statement has no
+equivalent to the \code{I()} function, i.e., you cannot simply write
+``log(time)'' on the right hand side.
+
+
+
+\section{Predictable time-dependent covariates}
+Occasionally one has a time-dependent covariate whose values in the future
+are predictable.
+The most obvious of these is patient age, occasionally this may also be
+true for the cumulative dose of a drug.
+If age is entered as a linear term in the model, then the effect of changing
+age can be ignored in a Cox model, due to the structure of the partial
+likelihood.  Assume that subject $i$ has an event at time $t_i$, with other
+subject $j \in R_i$ at risk at that time, with $a$ denoting age.
+The partial likelihood term is
+\begin{equation*}
+  \frac{e^{\beta * a_i}}{\sum_{j \in R_i} e^{\beta* a_j}} =
+  \frac{e^{\beta * (a_i + t_i)}}{\sum_{j \in R_i} e^{\beta* (a_j + t_i)}} 
+\end{equation*}
+We see that using time-dependent age (the right hand version) or age at
+baseline (left hand), the partial likelihood term is identical since
+$\exp(\beta t_i)$ cancels out of the fraction.
+However, if the effect of age on risk is \emph{non-linear}, this
+cancellation does not occur.
+
+Since age changes continuously, we would in theory need a very large
+data set to completely capture the effect, an interval
+per day to match the usual resolution for death times.
+In practice this level of resolution is not necessary; though we all
+grow older, risk does not increase so rapidly that we need to know
+our age to the day!  
+
+One method to create a time-changing covariate is to use the
+\emph{time-transform} feature of coxph.  Below is an example using
+the pbc data set.  The longest follow-up time in that data
+set is over 13 years, follow-up time is in days,  and we might worry that
+the intermediate data set would be huge.
+The program only needs the value of the time dependent covariate(s) for
+each subject at the times of events, however, so the maximum number
+of rows in the intermediate data set is
+the number of subjects times the number of unique event times.
+<<pbctime>>=
+pfit1 <- coxph(Surv(time, status==2) ~ log(bili) + ascites + age, pbc)
+pfit2 <- coxph(Surv(time, status==2) ~ log(bili) + ascites + tt(age),
+                data=pbc,
+                tt=function(x, t, ...) {
+                    age <- x + t/365.25 
+                    cbind(age=age, age2= (age-50)^2, age3= (age-50)^3)
+                })
+pfit2
+anova(pfit2)
+# anova(pfit1, pfit2)  #this fails
+2*(pfit2$loglik - pfit1$loglik)[2]
+@ 
+Since initial age is in years and time is in days, it was important
+to scale within the pspline function.
+The likelihood ratio of 10.8 on 2 degrees of freedom shows that the additional
+terms are mildly significant.
+
+When there are one or more terms on the right hand side of the equation
+marked with the tt() operator, the program will pre-compute the values
+of that variable for each unique event time.
+A user-defined function is called with arguments of
+\begin{itemize}
+  \item the covariate: whatever is inside the tt() call
+  \item the event time
+  \item the event number: if there are multiple strata and the same event
+    time occurs in two of them, they can be treated separately
+  \item the weight for the observation, if the call used weights
+\end{itemize}
+There is a single call to the function with a large $x$ vector, 
+it contains an element for each subject at risk at each event time.
+If there are multiple tt() terms in the formula, then the tt argument
+should be a list of functions with the requisite number of elements.
+
+There are other interesting uses for the time-transform capability.
+One example is O'Brien's logit-rank test procedure \cite{obrien78}.
+He proposed replacing the covariate at each event time with a logit
+transform of its ranks.  
+This removes the influence of any outliers in the predictor $x$.
+For this case we ignore the event time argument and concentrate on the
+groupings.
+<<>>=
+function(x, t, riskset, weights){ 
+    obrien <- function(x) {
+        r <- rank(x)
+        (r-.5)/(.5+length(r)-r)
+    }
+    unlist(tapply(x, riskset, obrien))
+}
+@ 
+This relies on the fact that the input arguments to tt() are ordered by the 
+event number or risk set.
+This function is used as a default if no tt argument is present in the
+coxph call, but there are tt terms in the model formula.
+(Doing so allowed me to depreciate the survobrien function).
+
+Another interesting usage is to replace the data by simple ranks, not
+rescaled to 0--1.
+<<>>=
+function(x, t, riskset, weights) 
+    unlist(tapply(x, riskset, rank))
+@ 
+The score statistic for this model is $(C-D)/2$, where $C$ and $D$ are the
+number of concordant and discordant pairs, see the
+survConcordance function.  
+The score statistic from this fit is then a test for significance of the
+concordance statistics, and is in fact the basis for the standard error
+reported by survConcordance.  
+The O'Brien test can be viewed as concordance statistic that gives equal  %'
+weight to each event time, whereas the standard concordance weights each
+event proportionally to the size of the risk set.
+(The Cox score statistic depends on the mean $x$ at each event time;
+since ranks go from 1 to number at risk the mean also scales.)
+
+Although handy, the computational impact of the tt argument should be
+considered before using it.
+The Cox model requires computation of a weighted mean and variance of
+the covariates at each event time, a process that is inherently 
+$O(ndp^2)$ where $n$ = the sample size, $d$ = the number of events and $p$=
+the number of covariates.  
+Much of the algorithmic effort in coxph() is to use updating methods for
+the mean and variance matrices, reducing the compute time to $O((n+d) p^2)$.
+When a tt term appears updating is not possible; for even moderate size
+data sets the impact of $nd$ versus $n+d$ can be surprising.
+
+
+The time-transform is a new addition and still has some rough edges.
+At this moment the $x=TRUE$ argument is needed to get proper residuals and
+predicted values, and termplot is unable to properly reconstruct the
+data to plot a fit.
+Please communicate any concerns or interesting examples to the author.
+
+\begin{thebibliography}{9}
+  \bibitem{Anderson83} Anderson JR, Cain KC, and Gelber RD. 
+    Analysis of survival by tumor response. J Clinical Oncology
+    1:710--719, 1983.
+
+    \bibitem{Buyse96} M Buyse and P Piedbois.  
+      The relationship between response to treatment
+and survival time.  Stat in Med 15:2797--2812, 1996.
+
+   \bibitem{Crowley77} J Crowley and M Hu.
+     Covariance analysis of heart transplant survival data.
+     J American Statistical Assoc, 72:27--36, 1977.
+
+   \bibitem{Gail72} M H Gail. Does cardiac transplantation prolong life? 
+     A reassessment. Annals Int Medicine 76:815-17, 1972.
+       
+   \bibitem{Kalbfleisch02} J Kalbfleisch and R Prentice.  
+      The statistical analysis of failure
+       time data, second edition. Wiley, 2002.
+
+  \bibitem{obrien78} O'Brien, Peter. A non-parametric test for     
+    association with censored data, Biometrics 34:243--250, 1978.
+
+  \bibitem{Redmond83} Redmond C, Fisher B, Wieand HS. 
+      The methodologic dilemma in retrospectively correlating the amount of
+      chemotherapy received in adjuvant therapy protocols with disease free 
+      survival: a commentary. 
+      Cancer Treatment Reports 67:519--526, 1983.
+
+   \bibitem{Suissa08} S Suissa. 
+    Immortal time bias in pharmacoepidemiology. Am J Epi, 167:492-499, 2008.
+\end{thebibliography}
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/validate.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/validate.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/validate.Rnw	(revision 2476)
@@ -0,0 +1,1130 @@
+\documentclass{article}[11pt]
+\usepackage{Sweave}
+\usepackage{amsmath}
+\addtolength{\textwidth}{1in}
+\addtolength{\oddsidemargin}{-.5in}
+\setlength{\evensidemargin}{\oddsidemargin}
+
+\SweaveOpts{keep.source=TRUE, fig=FALSE}
+% Ross Ihaka suggestions
+\DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em}
+\DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em}
+\fvset{listparameters={\setlength{\topsep}{0pt}}}
+\renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}}
+
+\SweaveOpts{prefix.string=adjcurve,width=6,height=4}
+\setkeys{Gin}{width=\textwidth}
+%\VignetteIndexEntry{Validation}
+<<init, echo=FALSE>>=
+options(continue="  ", width=60)
+options(SweaveHooks=list(fig=function() par(mar=c(4.1, 4.1, .3, 1.1))))
+pdf.options(pointsize=8) #text in graph about the same as regular text
+require(survival, quietly=TRUE)
+@ 
+
+\newcommand{\imat}{H}  % use H for the hessian rather than script I
+\newcommand{\Cvar}{H^{-1}}  % use H for the hessian rather than script I
+\newcommand{\splus}{R} % ``the survival package'' would be an alternate
+\newcommand{\xbar}{\overline x}
+\newcommand{\lhat}{\hat \Lambda}
+\def\bhat{\hat\beta}         %define "bhat" to mean "beta hat"
+\def\Mhat{\widehat M}        %define "Mhat" to mean M-hat
+\newcommand{\code}[1]{\texttt{#1}}
+
+\title{Validation}
+\author{Terry M Therneau}
+\date{Dec 2015}
+\begin{document}
+\maketitle
+\section{Introduction}
+\begin{quotation}
+ `When I use a word,' Humpty Dumpty said, in rather a scornful tone, 
+  `it means just what I choose it to mean - neither more nor less.'
+  
+ `The question is,' said Alice, `whether you can make words mean so 
+  many different things.'
+
+  `The question is,' said Humpty Dumpty, `which is to be master - that's all.'
+  
+  -Lewis Caroll, \emph{Through the Looking Glass}
+\end{quotation}
+
+``Validatation'' is a label which is used for many different things in 
+scientific research, so much so that the word is essentially meaningless
+without further clarification.
+One of the more common meanings assigned to it in the software
+realm is ``repeatability'', i.e. 
+that a new release of a given package or routine
+will give the same results as it did the week before.
+Users of the software often assume the word implies a more 
+rigorous criterion, namely that the routine gives \emph{correct} answers.
+
+Validation of the latter type is rare, however; 
+and I surmise that a primary reason for this is that
+working out correct answers is boring, tedious work.
+This note contains a set of examples, often very simple, that have evolved over
+multiple decades.
+They have proven extremely useful in debugging the methods, not least
+because all the intermediate steps of each calculation are transparent,
+and have been incorporated into the formal test suite for the
+survival package as the files \code{book1.R}, \code{book2.R}, etc.
+They also continue to be a resource for package's defence:
+I have been told multiple times that some person or group cannot use R
+in their work because ``SAS is validated'' while R is not. 
+The survival package passes all of the tests below   
+and SAS passes many but not all of them.
+
+It is my hope that the formal test cases will 
+be a resource for developers on multiple platforms.
+Portions of this work were included as an appendix in 
+the textbook of Therneau and Grambsch
+\cite{Therneau2000} precisely for this reason.
+
+\section{Basic formulas}
+All these examples have a single covariate.
+Let $x_i$ be the covariate for each subject, $r_i= exp(x_i \beta)$
+the risk score for the subject, and $w_i$ the case weight, if any.
+Let $Y_i(t)$ be 1 if subject $i$ is at risk at time $t$ and 0 otherwise,
+and $\delta_i(t)$ be the death indicator which is 1 if subject $i$ has
+an event at time $t$.
+At each death time we have the following quantities:
+\begin{align}
+  d(t) &= \sum_i Y_i(t) w_i r_i \\
+  LPL(t) &= \left( \sum_i \delta_i(t) \log(r_i) \right) / \log(d(t)) \\
+  \xbar(t) &= \left( \sum_i Y_i(t) w_i r_i x_i \right) /d(t) \\
+  U(t)     &= \sum_i \delta_i(t) (x_i - \xbar(t)) \label{U1} \\
+  H(t)     &= \sum_i Y_i(t) (x_i - \xbar(t))^2 / d(t) \\
+           &=  \left(\sum_i Y_i(t) x_i^2/d(t) \right)- \xbar(t)^2 
+               \label{H2} \\
+ \lambda(t) &= \sum_i  \delta_i(t)/ d(t)
+ \end{align}
+The denominator $d$ is the weighted number of subjects at the time, 
+$LPL$ is the contribution to the log partial likelihood at time $t$, and
+$\xbar$ and $H$ are the weighted mean and variance of the covariate $x$
+at each time.  
+The sum of $H(t)$ over the death times is the second derivative of the
+LPL, also known as the Hessian matrix.
+$U$ is the contribution to the first derivative of the LPL at time $t$
+and $\lambda$ is the increment in the baseline hazard function.
+
+\section{Test data 1}
+This data set of $n=6$ subjects has a single 0/1 covariate $x$.
+There is one tied death time, one time with both a death and a censored 
+observation,
+one with only a death, and one with only censoring.
+(This is as small as a data set can be and still cover these four 
+important cases.) 
+Let $r = \exp(\beta)$ be the risk score for a subject with $x=1$;
+the risk score is $\exp(0) =1$ for those with $x=0$.
+Table \ref{tab:val1} shows the data set along with the mean and
+increment to the hazard at each time point.
+
+\begin{table}[b] \centering
+\begin{tabular}{ccc|cc|cc}
+&&& \multicolumn{2}{c|}{$\xbar(t)$} & \multicolumn{2}{c}{$d\lhat_0(t)$} \\
+Time& Status& $x$& Breslow& Efron& Breslow& Efron \\ \hline 
+1&1&1&$r/(r+1)$ & $r/(r+1)$& $1/(3r+3)$ & $1/(3r+3)$ \\
+1&0&1&&&&\\
+6&1&1& $r/(r+3)$ & $r/(r+3)$ & $1/(r+3)$& $1/(r+3)$ \\
+6&1&0& $r/(r+3)$ & $r/(r+5)$ & $1/(r+3)$& $1/(r+5)$ \\
+8&0&0&&&& \\
+9&1&0&0&0& 1& 1\\
+\end{tabular}
+\caption{Test data 1}
+\label{tab:val1}
+\end{table}
+
+\subsection{Breslow estimates}
+\label{sect:valbreslow}
+The log partial likelihood (LPL) has a term for each event; each term is
+the log of the ratio of the score for the subject who had an event over
+the sum of scores for those who did not.
+The LPL, first derivative $U$ of the LPL and 
+second derivative (or Hession) $\imat$ are:
+\begin{eqnarray*}
+LPL &=& \{\beta- \log(3r+3)\} + \{\beta - \log(r+3)\} +
+   \{0-\log(r+3)\} + \{0-0\} \\
+   &=& 2\beta - \log(3r+3) - 2\log(r+3). \\ \\
+U &=& \left(1-\frac{r}{r+1}\right) + \left(1-\frac{r}{r+3}\right) + 
+	\left(0-\frac{r}{r+3} \right) + (0-0) \\
+  &=& \frac{-r^2 + 3r + 6}{(r+1)(r+3)} .\\ \\
+-\imat&=&   \left\{\frac{r}{r+1} - \left( \frac{r}{r+1} \right )^2\right\}
+        +2 \left\{\frac{r}{r+3} - \left( \frac{r}{r+3} \right )^2\right\} +
+		 (0-0) \\
+  &=& \frac{r}{(r+1)^2} + \frac{6r}{(r+3)^2}.
+\end{eqnarray*}
+(For a 0/1 covariate the variance formula \eqref{H2} simplifies to
+$\xbar - \xbar^2$, but only in that case.  We used this fact above.)
+
+The following function computes these quantities.
+<<breslow1>>=
+breslow1 <- function(beta) {
+    # first test data set, Breslow approximation
+    r = exp(beta)
+    lpl = 2*beta - (log(3*r +3) + 2*log(r+3))
+    U   = (6+ 3*r - r^2)/((r+1)*(r+3))
+    H   =  r/(r+1)^2 + 6*r/(r+3)^2
+    c(beta=beta, loglik=lpl, U=U, H=H)
+}
+beta <- log((3 + sqrt(33))/2)
+temp <- rbind(breslow1(0), breslow1(beta))
+dimnames(temp)[[1]] <- c("beta=0", "beta=solution")
+temp
+@ 
+
+The maximum partial likelihood occurs when $U(\beta)=0$, namely 
+$r^2 -3r -6 =0$.  
+Using the usual formula for a quadratic equation gives
+$r=(1/2)(3 + \sqrt{33})$ and $\bhat = \log(r) \approx 1.475285$.  
+The above call to \code{breslow1} verifies that the first derivative
+is zero at this point.
+
+Newton--Raphson iteration has increments of $-\Cvar U$.
+Starting with the usual initial estimate of $\beta=0$, the first
+iteration is $\beta=8/5$ and further ones are shown below.
+<<>>=
+iter <- matrix(0, nrow=6, ncol=4,
+               dimnames=list(paste("iter", 0:5),
+                             c("beta", "loglik", "U", "H")))
+# Exact Newton-Raphson
+beta <- 0
+for (i in 1:6) {
+    iter[i,] <- breslow1(beta)
+    beta <- beta + iter[i,"U"]/iter[i,"H"]
+}
+iter
+
+# coxph fits
+test1 <- data.frame(time=  c(1, 1, 6, 6, 8, 9),
+                    status=c(1, 0, 1, 1, 0, 1),
+                    x=     c(1, 1, 1, 0, 0, 0))
+temp <- matrix(0, nrow=6, ncol=4, 
+                 dimnames=list(1:6, c("iter", "beta", "loglik", "H")))
+for (i in 0:5) {
+    tfit <- coxph(Surv(time, status) ~ x, data=test1, 
+                  ties="breslow", iter.max=i)
+    temp[i+1,] <- c(tfit$iter, coef(tfit), tfit$loglik[2], 1/vcov(tfit))
+}
+temp
+@ 
+The \code{coxph} routine declares convergence after 4 iterations for this
+data set, so the last two calls with \code{iter.max} of 4 and 5 give 
+identical results.
+
+The martingale residuals are defined as $O-E$ = observed - expected, where
+the observed is the number of events for the subject (0 or 1) and
+$E$ is the expected number assuming that the model is 
+completely correct.  
+For the first death all 6 subjects are at risk,
+and the martingale formulation views the outcome as a lottery in which
+the subjects hold $r$, $r$, $r$, 1, 1 and 1 tickets, respectively.  
+The contribution to $E$ for subject 1 at time 1 is thus $r/(r+3)$.
+Carrying this forward the residuals can be written as simple function of the 
+cumulative baseline hazard $\Lambda_0(t)$, the Nelson
+cumulative hazard estimator with case weights of $w_ir_i$; this is 
+shown in the `Breslow' column of table \ref{tab:val1}.
+(Also known as the Aalen estimate, Breslow estimate, and all possible
+combinations of the three names.)
+Then the residual can be written as
+
+\begin{equation}
+  M_i = \delta_i - \exp(x_i\beta)\lhat(t_i) \label{mart}
+\end{equation}
+Each of the two subjects who die at time 6 are credited with the full
+hazard increment at time 6.
+Residuals at $\beta=0$ and $\bhat$ are shown in the table below.
+<<mresid1, echo=FALSE>>=
+mresid1 <- function(r) {
+    status <- c(1,0,1,1,0,1)
+    xbeta  <- c(r,r,r,1,1,1)
+    temp1 <- 1/(3*r +3)
+    temp2 <- 2/(r+3) + temp1
+    status - xbeta*c(temp1, temp1, temp2, temp2, temp2, 1+ temp2)
+}
+r0 <- mresid1(1)
+r1 <- round(mresid1((3 + sqrt(33))/2), 6)
+@ 
+\begin{center}
+\begin{tabular}{c|lrr}
+Subject &\multicolumn{1}{c}{$\Lambda_0$} & $\Mhat(0)$ & $\Mhat(\bhat)$ \\ 
+	\hline
+1& $1/(3r+3)$ & $5/6$ & \Sexpr{r1[1]} \\
+2& $1/(3r+3)$ & $-1/6$ & \Sexpr{r1[2]} \\
+3& $1/(3r+3) + 2/(r+3)$ &$1/3$ & \Sexpr{r1[3]} \\
+4& $1/(3r+3) + 2/(r+3)$ &$1/3$ & \Sexpr{r1[4]} \\
+5&   $1/(3r+3) + 2/(r+3)$ & $-2/3$ & \Sexpr{r1[5]} \\
+6 &   $1/(3r+3) + 2/(r+3) +1$ & $-2/3$ & \Sexpr{r1[6]}
+\end{tabular}
+\end{center}
+
+ 
+The score statistic $U$ can be written as a two way sum
+involving the covariate(s) and the martingale residuals
+\begin{equation}
+  U = \sum_{i=1}^n \int [x_i - \xbar(t)] dM_i(t) \label{score}
+\end{equation}
+The martingale residual $M$ has jumps at the observed 
+deaths, leading to the table below with 6 rows and 3 columns.
+The score residuals $L_i$ are defined as the per-patient contributions to
+this total, i.e., the row sums, and the Schoenfeld residuals are the
+per-time point contributions, i.e., the column sums.
+
+\begin{center}
+  \begin{tabular}{cccc}
+    &\multicolumn{3}{c}{Time} \\
+  Subject & 1 & 6 & 9 \\ \hline
+ 1&$ \left(1- \frac{r}{r+1} \right) \left(1- \frac{r}{3r+3} \right)$ &0&0  \\
+ 2& $\left(1- \frac{r}{r+1} \right) \left(0- \frac{r}{3r+3} \right)$ &0&0 \\
+ 3& $\left(1- \frac{r}{r+1} \right) \left(0- \frac{r}{3r+3} \right)$ &
+    $\left(1- \frac{r}{r+3} \right) \left(1- \frac{2r}{r+3} \right)$ & 0\\
+ 4& $\left(0- \frac{r}{r+1} \right) \left(0- \frac{1}{3r+3} \right)$ &
+    $\left(0- \frac{r}{r+3} \right) \left(1- \frac{2}{r+3} \right)$ & 0\\
+ 5& $\left(0- \frac{r}{r+1} \right) \left(0- \frac{1}{3r+3} \right)$ &
+    $\left(0- \frac{r}{r+3} \right) \left(0- \frac{2}{r+3} \right)$ & 0\\
+ 6& $\left(0- \frac{r}{r+1} \right) \left(0- \frac{1}{3r+3} \right)$ &
+    $\left(0- \frac{r}{r+3} \right) \left(0- \frac{2}{r+3} \right)$ & 
+    (0 - 0) (1-1)
+    \end{tabular}
+\end{center}
+
+At $\beta=0$ the score residuals are 5/12, -1/12, 7/24, -1/24, 5/24 and 5/24.
+Showing that the three column sums are identical to the three terms of
+equation \eqref{U1} is left as an exercise for the reader, namely
+$1- \xbar(1)$, $(1- \xbar(6)) + (0- \xbar(6))$ and $1 - \xbar(9)$.
+The computer program returns 4 residuals, one per event, rather than one
+per death time as this has proven to be more useful for plots and other
+downstream computations.
+
+In the multivariate case there will be a matrix like the above for each
+covariate. 
+Let $L$ be the $n$ by $p$ matrix made up of the collection of row sums where
+$n$ is the number of subjects and $p$ is the number of covariates,
+this is the matrix of score residuals.
+The dfbeta residuals are the $n$ by $p$ matrix $D = L \Cvar$; $\imat$ has
+been defined above for this data set. 
+$D$ is an approximate measure of the influence of each observation on the
+solution vector.
+Similarly, the scaled Schoenfeld residuals are the (number of events) by $p$
+matrix obtained by multiplying the Schoenfeld residuals by $\Cvar$.
+
+As stated above there is a close connection between the
+Nelson--Aalen estimate estimate of cumulative hazard and the
+Breslow approximation for ties.
+The baseline hazard is shown as the column $\Lambda_0$ in table \ref{tab:val1}.
+The estimated hazard for a subject with covariate $x_i$ is
+$\Lambda_i(t) = \exp(x_i \beta) \Lambda_0(t)$ and the survival
+estimate for the subject is $S_i(t)= \exp(-\Lambda_i(t))$.
+The variance of the cumulative hazard is the sum of two terms.  
+Term 1 is a natural extension of 
+the Nelson--Aalen estimator to the case where there are
+weights.  It is a running sum, with an increment at each death of
+$1/(\sum Y_i(t)r_i(t))^2$.
+For a subject with covariate $x_i$ this term is multiplied by
+$[\exp(x_i \beta)]^2$.
+The second term is $c\Cvar c'$, where $\imat$ is the 
+information matrix of the
+Cox model and $c$ is a vector.  
+The second term accounts for the fact that the
+weights themselves have a variance; 
+$c$ is the derivative of $S(t)$ with respect to $\beta$
+and can be formally written as
+$$         \exp(x\beta) \int_0^t (\bar x(s) - x_i) d\hat\Lambda_0 (s)\,.
+$$
+This can be recognized as $-1$ times the score residual process
+for a subject with $x_i$ as covariates and no events; it measures
+leverage of a particular observation on the estimate of $\beta$.  It is
+intuitive that a small score residual --- an observation whose 
+covariates has little influence on $\beta$ --- results in a small added
+variance; that is, $\beta$ has little influence on the estimated survival.  
+
+\begin{center}
+\begin{tabular}{c|l}
+Time & Term 1  \\ \hline
+1& $1/(3r+3)^2$ \\
+6& $1/(3r+3)^2 + 2/(r+3)^2$ \\
+9& $1/(3r+3)^2 + 2/(r+3)^2 + 1/1^2$ \\ \multicolumn{2}{c}{} \\
+Time  & $c$ \\ \hline
+1&  $(r/(r+1))* 1/(3r+3)$ \\
+6&  $(r/(r+1))* 1/(3r+3) + (r/(r+3))* 2/(r+3)$ \\
+9& $(r/(r+1))* 1/(3r+3) + (r/(r+3))* 2/(r+3)  + 0*1$\\
+\end{tabular}
+\end{center}
+
+ For $\beta=0$, $x=0$:
+\begin{center}
+\begin{tabular}{c|lll}
+     Time  &   \multicolumn{2}{c}{Variance}&\\ \hline 
+       1   &      1/36            &+ $1.6*(1/12)^2          $ &= 7/180\\
+       6   &     (1/36 + 2/16)    &+ $1.6*(1/12 + 2/16)^2   $ &= 2/9\\
+       9   &     (1/36 + 2/16 + 1)&+ $1.6*(1/12 + 2/16 + 0)^2$&= 11/9\\
+\end{tabular}
+\end{center}
+
+   For $\beta=1.4752849$, $ x=0$
+\begin{center}
+\begin{tabular}{c|lll}
+     Time  &   \multicolumn{2}{c}{Variance}&\\ \hline 
+       1  &     0.0038498  &+  .004021  &= 0.007871\\
+       2   &    0.040648   &+ .0704631  &= 0.111111\\
+       4    &   1.040648   &+ .0704631  &= 1.111111\\
+\end{tabular}
+\end{center}
+
+
+\subsection{Efron approximation}
+The Efron approximation \cite{Efron77}
+differs from the Breslow only at day 6, where two
+deaths occur.
+A useful way to view the approximation is to recast the problem as
+a lottery model.  On day 1 there were 6 subjects in the lottery and
+1 ticket was drawn, at which time the winner became inelegible for further
+drawings and withdrew.
+On day 6 there were 4 subjects in the drawing (at risk) 
+and two tickets (deaths) were drawn.
+The Breslow approximation considers all four subjects to be eligible for
+both drawings, which implies that one of them could in theory have won 
+both, that is, died twice.  This is of clearly impossible.
+The Efron approximation treats the two drawings on day 6 as sequential.
+All four living subjects are at risk for the first of them, then the
+winner is withdrawn.
+Three subjects are elibible for the second drawing,
+either subjects 3, 5, and 6 or subjects 2, 5, and 6, but we
+do not know which.  
+In some sense then, subjects 3 and 4 each have ``.5 probability" of 
+being at risk for the second event at time 6.
+In the computation, we treat the two deaths at time 6 as two separate times 
+(two terms
+in the loglik), with subjects 3 and 4 each having a case weight of 1/2 for the
+second one.
+The mean covariate for the second event is then
+$$
+ \frac{1*r/2 + 0*1/2 + 0*1 + 0*1 }
+      {r/2 + 1/2 + 1+1} =  \frac{r}{r+5}
+$$
+and the main quantities are
+\begin{eqnarray*}
+LL &=& \{\beta- \log(3r+3)\} + \{\beta - \log(r+3)\} + \{0-\log(r/2 +5/2)\} 
+	+ \{0-0\}  \\
+   &=& 2\beta - \log(3r+3) - \log(r+3) - \log(r/2 +5/2)\\ \\
+U &=& \left(1-\frac{r}{r+1}\right) + \left(1-\frac{r}{r+3}\right) 
+	+ \left(0-\frac{r}{r+5}\right) + (0-0) \\
+  &=& \frac{-r^3 + 23r + 30}{(r+1)(r+3)(r+5)} \\ \\
+I&=&     \left\{\frac{r}{r+1} - \left( \frac{r}{r+1} \right )^2\right\}
+        + \left\{\frac{r}{r+3} - \left( \frac{r}{r+3} \right )^2\right\} \\
+  &&    + \left\{\frac{r}{r+5} - \left( \frac{r}{r+5} \right )^2\right\}. 
+\end{eqnarray*}
+
+The solution corresponds to the one positive root of $U(\beta)=0$, which is
+$r=2\sqrt{23/3}\cos(\phi/3)$
+where $\phi=\arccos\{(45/23)\sqrt{3/23}\}$ via the standard formula
+for the roots of a cubic equation.
+This yields $r \approx 5.348721$ or $\bhat = \log(r) \approx 1.676857$.
+Plugging this value into the formulas above yields
+$$
+\begin{array}{ll}
+ LL(0)=-4.276666 & LL(\bhat)=-3.358979 \\
+ U(0) = 52/48 & U(\bhat) = 0 \\
+ \imat(0) = 83/144  & \imat(\bhat) = 0.652077.
+\end{array}
+$$
+
+The martingale residuals are again $O-E$, but the expected part of the
+calculation changes.
+For the first drawing at time 6 the total number of ``tickets'' in the
+drawing is $r+1+1+1$; subject 4 has an increment of $r/(r+3)$ and the others
+$1/(r+3)$ to their expected value.
+For the second event at time 6 subjects 3 and 4 have a weight of 1/2,
+the total number of tickets is $(r+5)/2$
+and the consequent increment in the cumulative hazard is $2/(r+5)$.
+This $\beta=0$ this calculation is equivalent to the Fleming-Harrington \cite{Fleming84}
+estimate of cumulative hazard.
+Subjects 3 and 4 recieve 1/2 of this second increment to $E$ and subjects
+5 and 6 the full increment.
+Efron \cite{Efron77} did not discuss residuals so did not investigate this
+aspect of the approximation, we neverthess sometime refer to 
+this using combinations of
+Fleming, Harrington, Efron in the same way as the Nelson-Aalen-Breslow
+estimate.  The martingale residuals are
+\begin{center}
+\begin{tabular}{cl}
+   Subject & $M_i$ \\ \hline
+   1 & $1 - r/(3r+3)$ \\
+   2 & $0 - r/(3r+3)$ \\
+   3 & $1 - r/(3r+3) - r/(r+3) - r/(r+5)$ \\
+   4 & $1 - 1/(3r+3) - 1/(r+3) - 1/(r+5)$ \\
+   5 & $0 - 1/(3r+3) - 1/(r+3) - 2/(r+5)$ \\
+   6 & $0 - 1/(3r+3) - 1/(r+3) - 2/(r+5) - 1$ \\
+\end{tabular}  
+\end{center}
+giving residuals at $\beta=0$ of 5/6, -1/6, 5/12, 5/12, -3/4 and -3/4.
+
+The matrix defining the score and Schoenfeld residuals 
+has the same first column (time 1) and last column as before, with the
+following contributions at time 6.
+\begin{center}
+  \begin{tabular}{ccc}
+    &\multicolumn{2}{c}{Time} \\
+  Subject & 6 (first) & 6 (second)\\ \hline
+ 1&0 & 0 \\
+ 2&0 & 0 \\
+ 3& $\left(1- \frac{r}{r+3} \right) \left(1- \frac{r}{r+3} \right)$ &
+    $\left(1- \frac{r}{r+5} \right) \left(1- \frac{2r}{r+5} \right)/2$ \\
+ 4& $\left(0- \frac{r}{r+3} \right) \left(0- \frac{1}{r+3} \right)$ &
+    $\left(0- \frac{r}{r+5} \right) \left(1- \frac{2}{r+5} \right)/2$ \\
+ 5& $\left(0- \frac{r}{r+3} \right) \left(0- \frac{1}{r+3} \right)$ &
+    $\left(0- \frac{r}{r+5} \right) \left(0- \frac{2}{r+5} \right)$ \\
+ 6& $\left(0- \frac{r}{r+3} \right) \left(0- \frac{1}{r+3} \right)$ &
+    $\left(0- \frac{r}{r+5} \right) \left(0- \frac{2}{r+5} \right)$ 
+    \end{tabular}
+\end{center}
+The score residuals at $\beta=0$ are 5/12, -1/12, 55/144, -5/144, 
+29/144 and 29/144.
+
+It is an error to generate residuals for the Efron method by using
+formula \eqref{mart}, which was derived from the Breslow approximation.
+It is clear that some packages
+do exactly this, however, which can be verified using formulas from above.
+(Statistical forensics is another use for our results.)
+What are the conseqences of this? 
+On a formal level the resulting ``martingal residuals'' no longer have
+an expected value of 0 and thus are not martingales,
+so one loses theoretical backing for derived plots or statistics.
+The score, Schoenfeld, dfbeta and scaled Schoenfeld residuals are based on
+the martingale residual so suffer the same loss.
+On a practical level, when the fraction of ties is small it is quite often the
+case that $\bhat$ is nearly the same when using the Breslow and Efron 
+approach.  We have normally found the correct and ad hoc residuals to
+be similar as well in that case, sufficiently so that
+explorations of functional form (martingale residuals), leverage and robust
+variance (dfbeta) and proportional hazards (scaled Schoenfeld) led to
+the same conclusions.
+This will not hold when there are a moderate to large number of ties.
+
+  The variance formula for the baseline hazard function in the Efron case
+is evaluated the same way as before, as 
+the sum of $(\mbox{hazard increment})^2$, 
+treating a tied death as multiple separate
+hazard increments.
+In term 1 of the variance, the variance increment at time 6 is
+now $1/(r+3)^2 + 4/(r+5)^2$ rather than $2/(r+3)^2$.
+The increment to $d$ at time 6 is
+$(r/(r+3))* 1/(r+3) + (r/(r+5))* 2/(r+5)$.
+(Numerically, the result of this
+computation is intermediate between the 
+Nelson--Aalen variance and the
+Greenwood variance used in the Kaplan--Meier.)
+
+ For $\beta=0$, $x=0$, let $v= \Cvar = 144/83$.
+\begin{center}
+\begin{tabular}{c|ll}
+     Time  &   \multicolumn{2}{c}{Variance}\\ \hline 
+       1   &      1/36          \\  &
+	\quad + $v(1/12)^2  $ &= \phantom{0}119/2988\\
+       6   &     (1/36 + 1/16 + 4/25)& \\ 
+	         &\quad + $v(1/12 + 1/16+ 1/18)^2$ &= 1996/6225\\
+       9   &     (1/36 + 1/16 + 4/25 + 1) \\&
+	\quad + $v(1/12 + 1/16 + 1/18 +0)^2$&= 8221/6225\\
+\end{tabular}
+\end{center}
+
+   For $\beta=1.676857$, $ x=0$.
+\begin{center}
+\begin{tabular}{c|ll}
+     Time  &   \multicolumn{2}{c}{Variance}\\ \hline 
+       1  &     0.00275667 + .00319386 & = 0.0059505\\
+       2  &     0.05445330 + .0796212  & = 0.134075\\
+       4  &     1.05445330 + .0796212   &= 1.134075\\
+\end{tabular}
+\end{center}
+
+\subsection{Exact partial likelihood}
+Returning to the lottery analogy, for the two deaths at time 6
+the exact partial likelihood computes the direct probability that
+those two subjects would be selected given that a pair will be chosen.
+The numerator is $r_3 r_4$, the product of the risk scores of the subjects 
+with an event, and the denominator is the sum over all 6 pairs
+who could have been chosen: $r_3r_4 + r_3r_5 + r_3r_6 + r_4 r_5 + r_4r_6
++ r_5r_6$.
+(If there were 10 tied deaths from a pool of 60 available the
+sum will have over 75 billion terms, each a product of 10 values;
+a truly formidable computation!)
+In our case, three of the four subjects at risk at time 6 have a risk score
+of $\exp(0x)=1$ and one a risk score of $r$,
+and the denominator is $r +r+ r+1 +1 +1$.
+\begin{eqnarray*}
+LL &=& \{\beta- \log(3r+3)\} + \{\beta - \log(3r+3)\}  + \{0-0\} \\
+   &=& 2\{\beta - \log(3r+3)\}. \\ \\
+U &=& \left(1-\frac{r}{r+1}\right) + \left(1-\frac{r}{r+1}\right) + (0-0)\\ 
+  &=& \frac{2}{r+1}. \\ \\
+-\imat&=&  \frac{2r}{(r+1)^2}. \\
+\end{eqnarray*}
+
+The solution $U(\beta)=0$ corresponds to $r=\infty$, with a loglikelihood
+that asymptotes to $-2\log(3)$ = 2.1972. 
+The Newton--Raphson iteration has increments of $(r+1)/r$ leading to 
+the following iteration for $\bhat$:
+<<iter>>=
+temp <- matrix(0, 8, 3)
+dimnames(temp) <- list(paste0("iteration ", 0:7, ':'), c("beta", "loglik", "H"))
+bhat <- 0
+for (i in 1:8) {
+    r <- exp(bhat)
+    temp[i,] <- c(bhat,  2*(bhat - log(3*r +3)), 2*r/(r+1)^2)
+    bhat <- bhat + (r+1)/r 
+}
+round(temp,3)
+@ 
+The Newton-Raphson iteration quickly settles down to addition of a constant 
+increment to $\bhat$ at each step
+while the partial likelihood approaches an asymptote:
+this is a fairly common case when the Cox MLE is infinite.
+A solution at $\bhat=10$ or 15 is hardly different in likelihood from the
+true maximum, and most programs will stop iterating around this point. 
+The information matrix, which measures the curvature of the likelihood
+function at $\beta$, rapidly goes to zero as $\beta$ grows.
+
+It is difficult to describe a satisfactory definition of the expected number
+of events for each subject and thus a definition of the proper
+martingale residual for the exact calculation.
+Among other things it should lead to a consistent score residual,
+i.e., ones that sum to the total score statistic $U$
+\begin{align*}
+  L_i &= \int (x_i - \xbar(t)) dM_i(t) \\
+  \sum L_i &= U
+\end{align*}
+The residuals defined above for the Breslow and Efron approximations have this property,
+for instance.
+The exact partial likelihood contribution to $U$ for a set of set of $k$
+tied deaths, however, is a sum of all subsets of size $k$; how would one
+partition this term as a simple sum over subjects?
+
+The exact partial likelihood is infrequently used and examination of 
+post fit residuals is even rarer.
+The survival package (and all others that I know of) takes the easy
+road in this case and uses equation \eqref{mart} along with the 
+Nelson-Aalen-Breslow hazard to form residuals.
+They are certainly not correct, but the viable options were to use
+this, the Efron residuals, or print an error message.
+
+At $\bhat=\infty$ the Breslow residuals are still well defined.
+Subjects 1 to 3, those with a covariate of 1, experience a hazard of
+$r/(3r+3)=1/3$ at time 1.  Subject 3 accumulates a hazard of 1/3 at
+time 1 and a further hazard of 2 at time 6.
+The remaining subjects are at an infinitely lower risk during days
+1 to 6 and accumulate no hazard then, with subject 6 being credited with
+1 unit of hazard at the last event.
+The residuals are thus $1-1/3=2/3$, $0-1/3$, $1-7/3= -4/3$, $1-0$, 0, and 0, 
+respectively, for the six subjects.
+
+\section{Test data 2}
+This data set also has a single covariate, but in this case 
+a (start, stop] style of input is employed.
+Table \ref{tab:val2} shows the data sorted by the end time of the risk
+intervals.  The columns for $\xbar$ and hazard are the values
+at the event times; events occur at the end of 
+each interval for which status = 1.
+\begin{table}\centering
+\begin{tabular}{ccc|ccc}
+&&&Number& \\
+Time&Status&$x$&at Risk& $\xbar$& $d\lhat$ \\ \hline 
+(1,2] &1 &1 &2 &$r/(r+1)$    & $1/(r+1)$\\
+(2,3] &1 &0 &3 & $r/(r+2)$   & $1/(r+2)$ \\
+(5,6] &1 &0 &5 & $3r/(3r+2)$ & $1/(3r+2)$ \\
+(2,7] &1 &1 &4 & $3r/(3r+1)$ & $1/(3r+1)$ \\
+(1,8] &1 &0 &4 & $3r/(3r+1)$ & $1/(3r+1)$ \\
+(7,9] &1 &1 &5 & $3r/(3r+2)$ & $2/(3r+2)$ \\
+(3,9] &1 &1 && \\
+(4,9] &0 &1 && \\
+(8,14]&0 &0 &2& 0&0 \\
+(8,17]&0 &0 &1& 0&0 \\
+\end{tabular}
+\caption{Test data 2}
+\label{tab:val2}
+\end{table}
+
+\subsection{Breslow approximation}
+For the Breslow approximation we have
+\begin{eqnarray*}
+LL &=&   \log\left(\frac{r}{r+1}\right)
+	+\log\left(\frac{1}{r+2}\right)
+	+\log\left(\frac{1}{3r+2}\right) +\\
+    &&	\log\left(\frac{r}{3r+1}\right)
+	+\log\left(\frac{1}{3r+1}\right)
+	+2\log\left(\frac{r}{3r+2}\right)  \\
+   &=& 4\beta - \log(r+1) - \log(r+3)- 3\log(3r+2) -2\log(3r+1). \\ \\
+U &=& \left(1-\frac{r}{r+1}\right) + \left(0-\frac{r}{r+2}\right) 
+	+ \left(0-\frac{3r}{3r+2}\right) + \\
+    &&	 \left(1-\frac{3r}{3r+1}\right) + 
+	 \left(0-\frac{3r}{3r+1}\right) + 
+	 2\left(1-\frac{3r}{3r+2}\right) \\
+		\\ \\
+\imat &=&  \frac{r}{(r+1)^2} + \frac{2r}{(r+2)^2} +
+   	\frac{6r}{(3r+2)^2} + \frac{3r}{(3r+1)^2} \\
+      && \frac{3r}{(3r+1)^2} + \frac{12r}{(3r+2)^2} . \\
+\end{eqnarray*}
+
+In this case $U$ is a quartic equation
+and we find the solution numerically.
+<<breslow2>>=
+ufun <- function(r) {
+    4 - (r/(r+1) + r/(r+2) + 3*r/(3*r+2) + 6*r/(3*r+1) + 6*r/(3*r+2))
+}
+rhat <- uniroot(ufun, c(.5, 1.5), tol=1e-8)$root
+bhat <- log(rhat)
+c(rhat=rhat, bhat=bhat)
+@ 
+The solution is at $U(\bhat)=0$ or $r \approx .9189477$;
+$\bhat = \log(r) \approx -.084526$.
+Then
+<<temp, echo=FALSE>>=
+true2 <- function(beta, newx=0) {
+    r <- exp(beta)
+    loglik <- 4*beta - log(r+1) - log(r+2) - 3*log(3*r+2) - 2*log(3*r+1)
+    u <- 1/(r+1) +  1/(3*r+1) + 4/(3*r+2) -
+                 ( r/(r+2) +3*r/(3*r+2) + 3*r/(3*r+1))
+    imat <- r/(r+1)^2 + 2*r/(r+2)^2 + 6*r/(3*r+2)^2 +
+            3*r/(3*r+1)^2 + 3*r/(3*r+1)^2 + 12*r/(3*r+2)^2
+
+    hazard <-c( 1/(r+1), 1/(r+2), 1/(3*r+2), 1/(3*r+1), 1/(3*r+1), 2/(3*r+2) )
+    xbar <- c(r/(r+1), r/(r+2), 3*r/(3*r+2), 3*r/(3*r+1), 3*r/(3*r+1),
+                3*r/(3*r+2))
+   # The matrix of weights, one row per obs, one col per time
+    #   deaths at 2,3,6,7,8,9
+    wtmat <- matrix(c(1,0,0,0,1,0,0,0,0,0,
+                      0,1,0,1,1,0,0,0,0,0,
+                      0,0,1,1,1,0,1,1,0,0,
+                      0,0,0,1,1,0,1,1,0,0,
+                      0,0,0,0,1,1,1,1,0,0,
+                      0,0,0,0,0,1,1,1,1,1), ncol=6)
+    wtmat <- diag(c(r,1,1,r,1,r,r,r,1,1)) %*% wtmat
+
+    x      <- c(1,0,0,1,0,1,1,1,0,0)
+    status <- c(1,1,1,1,1,1,1,0,0,0)
+    xbar <- colSums(wtmat*x)/ colSums(wtmat)
+    n <- length(x)
+
+   # Table of sums for score and Schoenfeld resids
+    hazmat <- wtmat %*% diag(hazard) #each subject's hazard over time
+    dM <- -hazmat  #Expected part
+    for (i in 1:6) dM[i,i] <- dM[i,i] +1  #observed
+    dM[7,6] <- dM[7,6] +1  # observed
+    mart <- rowSums(dM)
+
+    # Table of sums for score and Schoenfeld resids
+    #  Looks like the last table of appendix E.2.1 of the book
+    resid <- dM * outer(x, xbar, '-')
+    score <- rowSums(resid)
+    scho <- colSums(resid)
+    # We need to split the two tied times up, to match coxph
+    scho <- c(scho[1:5], scho[6]/2, scho[6]/2)
+    var.g <- cumsum(hazard*hazard /c(1,1,1,1,1,2))
+    var.d <- cumsum( (xbar-newx)*hazard)
+
+    surv <- exp(-cumsum(hazard) * exp(beta*newx))
+    varhaz <- (var.g + var.d^2/imat)* exp(2*beta*newx)
+
+    list(loglik=loglik, u=u, imat=imat, xbar=xbar, haz=hazard,
+	     mart=mart,  score=score, rmat=resid,
+		scho=scho, surv=surv, var=varhaz)
+    }
+val2 <- true2(bhat)
+rtemp <- round(val2$mart, 6)
+@
+$$
+\begin{array}{ll}
+ LL(0)= \Sexpr{round(true2(0)$loglik, 6)} & 
+         LL(\bhat)= \Sexpr{round(val2$loglik,6)} \\
+  U(0) = -2/15 & U(\bhat) = 0 \\
+ \imat(0) = 2821/1800  & \imat(\bhat) = \Sexpr{round(val2$imat,6)}     %$
+\end{array}
+$$
+
+\def\haz{\hat \lambda}
+The martingale residuals are (status--cumulative hazard) 
+or $O-E = \delta_i - \int Y_i(s) r_i d\lhat(s)$.
+Let $\haz_1, \ldots, \haz_6$ be the six increments to the cumulative
+hazard listed in Table \ref{tab:val2}.  Then the cumulative hazards and
+martingale residuals for the subjects are as follows.
+\begin{center}
+\begin{tabular}{c|lrr}
+Subject &$\Lambda_i$ & $\Mhat(0)$ & $\Mhat(\bhat)$ \\ \hline
+1& $r\haz_1$ 	& 1--30/60  &   \Sexpr{rtemp[1]} \\
+2& $\haz_2 $	& 1--20/60   &  \Sexpr{rtemp[2]}\\
+3& $\haz_3 $ 	& 1--12/60   &  \Sexpr{rtemp[3]} \\
+4& $r(\haz_2 + \haz_3 + \haz_4)$& 1--47/60 & \Sexpr{rtemp[4]}\\
+5& $\haz_1+\haz_2+\haz_3+\haz_4+\haz_5$& 1--92/60 & \Sexpr{rtemp[5]}\\
+6 &$r*(\haz_5 + \haz_6) $& 1--39/60 & \Sexpr{rtemp[6]} \\
+7& $r*(\haz_3+\haz_4+\haz_5+ \haz_6)$& 1--66/60& \Sexpr{rtemp[7]}\\
+8& $r*(\haz_3+\haz_4+\haz_5+ \haz_6)$& 0--66/60&\Sexpr{rtemp[8]} \\
+9& $\haz_6$ 	& 0--24/60 &  \Sexpr{rtemp[9]} \\  
+10& $\haz_6$ 	& 0--24/60 &  \Sexpr{rtemp[10]}   
+\end{tabular}
+\end{center}
+
+The score and Schoenfeld residuals can be laid out in a tabular fashion.
+Each entry in the table is the value of $\{x_i - \xbar(t_j)\} d\Mhat_i(t_j)$
+for subject $i$ and event time $t_j$.  
+The row sums of the table are the score residuals for the subject; 
+the column sums are the Schoenfeld residuals at each event time.
+Below is the table for $\beta= \log(2)$ ($r=2$).  
+This is a slightly more stringent test than the table for $\beta=0$,
+since in this latter case a program could be missing a factor of 
+$r = \exp(\beta)=1$ and give the correct answer.
+However, the results are much more compact than those for $\bhat$,
+since the solutions are exact fractions.
+
+%\newcommand{\pf}[2]{$\left(\frac{#1}{#2}\right)$}   %positive fraction
+%\newcommand{\nf}[2]{$\left(\frac{-#1}{#2}\right)$}  %negative fraction
+\newcommand{\pf}[2]{$\phantom{-}\frac{#1}{#2}$}   %positive fraction
+\newcommand{\nf}[2]{$-\frac{#1}{#2}$}  %negative fraction
+\renewcommand{\arraystretch}{1.5}
+
+\begin{center}
+\begin{tabular}{c|cccccc|c}
+& \multicolumn{6}{c|}{Event Time} & Score\\
+Id&2&3&6&7&8&9& Resid \\ \hline
+1&\pf{1}{9} &&&&&&  $\phantom{-}\frac{1}{9}$ \\
+2&&\nf{3}{8} &&&&& $-\frac{3}{8}$ \\
+3&&&\nf{21}{32}&&&& $-\frac{21}{32}$ \\
+4&&\nf{1}{4} & \nf{1}{16} & \pf{5}{49} &&&
+		$-\frac{165}{784} $\\
+5&\pf{2}{9}& \pf{1}{8} & \pf{3}{32} &
+		\pf{6}{49} & \nf{36}{49}&& 
+		$-\frac{2417}{14112} $\\
+6&&&&&  \nf{2}{49} & \pf{1}{8}  & 
+		$\phantom{-}\frac{33}{392}$ \\
+7&&&  \nf{1}{16} &  \nf{2}{49}&  \nf{2}{49} &
+	\pf{1}{8}  & $-\frac{15}{784}$ \\
+8&&&  \nf{1}{16} &  \nf{2}{49}&  \nf{2}{49} &
+	 \nf{1}{8} & $-\frac{211}{784}$ \\
+9&&&&&& \pf{3}{16}  &$ \phantom{-}\frac{3}{16}$ \\
+10&&&&&& \pf{3}{16}  & $\phantom{-}\frac{3}{16}$ \\ \hline
+& \pf{1}{3} &\nf{1}{2}  & \nf{3}{4}  & 
+	    \pf{1}{7} & \nf{6}{7}  & \pf{1}{2}  &  \nf{95}{84} \\
+
+&&&&&&& \\
+& $\frac{1}{r+1}$ & $\frac{-r}{r+2}$ & $\frac{-3r}{r+2}$ & $\frac{1}{3r+1}$ &
+	$\frac{3r}{3r+1}$ & $\frac{4}{3r+2}$
+\end{tabular}
+\end{center}
+Both the Schoenfeld and score residuals sum to the score statistic $U(\beta)$.
+As discussed further above, programs will return two Schoenfeld residuals
+at time 7, one for each subject who had an event at that time.
+
+\subsection{Efron approximation}
+This example has only one tied death time, so only the term(s) for the
+event at time 9 change.  The main quantities at that time point are as follows.
+\begin{center}
+\begin{tabular}{r|cc}
+&Breslow & Efron \\ \hline
+$LL$ & $2\log\left(\frac{r}{3r+2}\right)$ &
+       $\log\left(\frac{r}{3r+2}\right) + \log\left(\frac{r}{2r+2}\right)$ \\
+$U$ &  $\frac{2}{3r+2}$& $\frac{1}{3r+2} + \frac{1}{2r+2}$ \\
+$\imat$& $2\frac{6r}{(3r+2)^2} $ &$\frac{6r}{(3r+2)^2} + \frac{4r}{(2r+2)^2}$\\
+$d\lhat$ & $\frac{2}{3r+2} $ &  $\frac{1}{3r+2} + \frac{1}{2r+2}$ 
+\end{tabular}
+\end{center}
+\renewcommand{\arraystretch}{1}
+
+
+\section{Test data 3}
+This is very similar to test data 1, but with the addition of case
+weights.
+There are 9 observations, $x$ is a 0/1/2 covariate, and weights range from
+1 to 4.
+As before, let $r = \exp(\beta)$ be the risk score for a subject with $x=1$.
+Table \ref{tab:val3} shows the data set along with the mean and
+increment to the hazard at each point.
+
+\begin{table} \centering
+\begin{tabular}{cccc|cc}
+Time&Status&$X$ & Wt& $\xbar(t)$ & $d\lhat_0(t)$ \\ \hline
+1& 1& 2 & 1& $(2r^2+11r) d\lhat_0 =\xbar_1$ & $1/(r^2 + 11r +7)$ \\
+1& 0& 0 & 2&& \\
+2& 1& 1 & 3& $11r/(11r+5) = \xbar_2$ & $10/(11r+5)$ \\
+2& 1& 1 & 4&& \\
+2& 1& 0 & 3&& \\
+2& 0& 1 & 2&& \\
+3& 0& 0 & 1&& \\
+4& 1& 1 & 2&   $2r/(2r+1)= \xbar_3$ & $ 2/(2r+1)$ \\
+5& 0& 0 & 1 & \\
+\end{tabular}
+\caption{Test data 3}
+\label{tab:val3}
+\end{table}
+
+\subsection{Breslow estimates}
+The likelihood is a product of terms, one for each death, of
+the form
+$$
+    \left( \frac{e^{X_i \beta}}{\sum_j Y_j(t_i) w_j e^{X_j \beta}} 
+    \right) ^{w_i}
+$$
+For integer weights, this gives the same results as would
+be obtained by replicating each observation the specified number of times,
+which is in fact one motivation for the definition.
+The definitions for the score vector $U$ and information matrix $\imat$
+simply replace the mean and variance with weighted versions of the same.
+Let $PL(\beta,w)$ be the log partial liklihood when all the observations 
+are given
+a common case weight of $w$; 
+it is easy to prove that $PL(\beta,w) = wPL(\beta,1) - d\log(w)$ where $d$ is
+the number of events.
+One consequence of this is that $PL$ can be positive for weights
+that are less than 1, a case which
+sometimes occurs in survey sampling applications.  (This can be a big
+surprise the first time one encounters it.)
+\begin{eqnarray*}
+LL &=& \{2\beta - \log(r^2 + 11r +7)\} + 3\{\beta - \log(11r+5)\} \\
+   &&	+ 4\{\beta - \log(11r+5)\}  +3\{0 - \log(11r+5)\}  \\
+   &&	+  2\{\beta - \log(2r+1) \} \\
+   &=& 11\beta - \log(r^2 + 11r +7) -10\log(11r+5) - 2\log(2r+1) \\\\
+U  &=& (2- \xbar_1) + 3(0-\xbar_2) + 4(1-\xbar_2) + 3(1-\xbar_2) + 
+	2(1-\xbar_3) \\ 
+   &=&  11 - [(2r^2+11r)/(r^2+11r+7) + 10(11r/(11r+5)) +  2(2r/(2r+1))]  \\
+I  &=& [(4r^2 + 11r)/(r^2 + 11r +7) - \xbar_1^2] + 10(\xbar_2 - \xbar_2^2) 
+	+ 2(\xbar_3 - \xbar_3^2) \\
+\end{eqnarray*}
+
+ The solution corresponds to $U(\beta)=0$ and can be computed using a
+simple search for the zero of the equation.
+<<wt1>>=
+ufun <- function(r) {
+    xbar <- c( (2*r^2 + 11*r)/(r^2 + 11*r +7), 11*r/(11*r + 5), 2*r/(2*r +1))
+    11- (xbar[1] + 10* xbar[2] + 2* xbar[3])
+}
+rhat <- uniroot(ufun, c(1,3), tol= 1e-9)$root
+bhat <- log(rhat)
+c(rhat=rhat, bhat=bhat)
+@ 
+From this we have
+<<wt2>>=
+wfun <- function(r) {
+    beta <- log(r)
+    pl <- 11*beta - (log(r^2 + 11*r + 7) + 10*log(11*r +5) + 2*log(2*r +1))
+    xbar <- c((2*r^2 + 11*r)/(r^2 + 11*r +7), 11*r/(11*r +5), 2*r/(2*r +1))
+    U <- 11 - (xbar[1] + 10*xbar[2] + 2*xbar[3])
+    H <- ((4*r^2 + 11*r)/(r^2 + 11*r +7)- xbar[1]^2) + 
+        10*(xbar[2] - xbar[2]^2) +  2*(xbar[3]- xbar[3]^2)
+    c(loglik=pl, U=U, H=H)
+}
+temp <- matrix(c(wfun(1), wfun(rhat)), ncol=2, 
+       dimnames=list(c("loglik", "U", "H"), c("beta=0", "beta-hat")))
+round(temp, 6)       
+@ 
+
+When $\beta=0$, the three unique values for $\xbar$ 
+at $t=1$, 2, and 4
+are 13/19, 11/16 and 2/3,
+respectively, and the increments to the cumulative hazard are
+1/19, 10/16 = 5/8, and 2/3, see table \ref{tab:val3}.
+The martingale and score residuals at $\beta=0$ and
+$\bhat$ are
+\begin{center}
+\begin{tabular}{cc|lr}
+Id &Time& \multicolumn{1}{c}{$M(0)$} &\multicolumn{1}{c}{$M(\bhat)$} \\ \hline
+A&1 & $1-1/19 = 18/19             $&0.85531\\
+B&1 & $0-1/19 = -1/19             $&-0.02593\\
+C&2 & $1-(1/19 + 5/8)= 49/152     $&0.17636 \\
+D&2 & $1-(1/19 + 5/8)= 49/152     $&0.17636\\
+E&2 & $1-(1/19 + 5/8)= 49/152     $&0.65131\\
+F&2 & $0-(1/19 + 5/8)= -103/152     $&-0.82364\\
+G&3 & $0-(1/19 + 5/8)=  -103/152     $&-0.34869\\
+H&4 & $1-(1/19 + 5/8 +2/3)= -157/456 $&-0.64894\\
+I&5 & $0-(1/19 + 5/8 +2/3)= -613/456 $&-0.69808\\
+\end{tabular}
+\end{center}
+Score residuals at $\beta=0$ are
+\begin{center}
+\begin{tabular}{cc|r}
+Id &Time& Score \\ \hline
+A&1 &$(2-13/19)(1-1/19)$\\
+B&1 &$(0-13/19)(0-1/19)$\\
+C&2 &$ (1-13/19)(0-1/19) + (1-11/16)(1-5/8) $ \\
+D&2 &$(1-13/19)(0-1/19) + (1-11/16)(1-5/8)$ \\
+E&2 &$(0-13/19)(0-1/19) + (0-11/16)(1-5/8)$ \\
+F&2 &$(1-13/19)(0-1/19) + (1-11/16)(0-5/8)$ \\
+G&3 &$(1-13/19)(0-1/19) + (0-11/16)(0-5/8)$ \\
+H&4 &$(1-13/19)(0-1/19) + (1-11/16)(0-5/8) $ \\
+      &&                $  + (1-2/3)(1-2/3)$ \\
+I&5 &$(1-13/19)(0-1/19) + (1-11/16)(0-5/8)$  \\
+      &	&$+ (0-2/3)(0-2/3) $ \\
+\end{tabular}
+\end{center}
+
+{\splus} also returns unweighted residuals by default, with an option to
+return the weighted version;
+it is the weighted sum of residuals that totals zero, $\sum w_i \Mhat_i=0$.
+Whether the weighted or the unweighted form is more useful depends on the
+intended application, neither is more ``correct'' than the other.
+{\splus} does differ for the dfbeta residuals, for which the default is
+to return weighted values.  For the third observation in this data set,
+for instance, the unweighted dfbeta is an approximation to the change in
+$\bhat$ that will occur if the case weight is changed from 2 to 3,
+corresponding to deletion of one of the three ``subjects'' that this
+observation represents, and the weighted form approximates a change in 
+the case weight from 0 to 3, i.e., deletion of the entire observation.
+
+ The increments of the Nelson-Aalen estimate of the hazard are shown
+in the rightmost column of table \ref{tab:val3}.
+The hazard estimate for a hypothetical subject with covariate $X^\dagger$ is
+$\Lambda_i(t) = \exp(X^\dagger \beta) \Lambda_0(t)$ and the survival
+estimate is $S_i(t)= \exp(-\Lambda_i(t))$.
+The two term of the variance, for $X^\dagger=0$, are Term1 + $d'Vd$:
+\begin{center}
+\begin{tabular}{c|l}
+Time & Term 1  \\ \hline
+1& $1/(r^2 + 11r+7)^2$ \\
+2& $1/(r^2 + 11r+7)^2 + 10/(11r+5)^2$ \\
+4& $1/(r^2 + 11r+7)^2 + 10/(11r+5)^2 + 2/(2r+1)^2$ \\ 
+\multicolumn{2}{c}{} \\
+Time  & $d$ \\ \hline
+1&  $(2r^2+11r)/(r^2+11r+7)^2$ \\
+2&  $(2r^2+11r)/(r^2+11r+7)^2 + 110r/(11r+5)^2$ \\
+4&  $(2r^2+11r)/(r^2+11r+7)^2 + 110r/(11r+5)^2 + 4r/(2r+1)^2$
+\end{tabular}
+\end{center}
+
+ For $\beta=\log(2)$ and  $X^\dagger =0$, 
+where $k\equiv$  the variance of
+$\bhat$ = 1/2.153895 this reduces to
+\begin{center}
+\begin{tabular}{c|ll}
+     Time  &   \multicolumn{2}{c}{Variance}\\ \hline 
+       1   &      1/1089                &+ $k(30/1089)^2$ \\
+       2   &     (1/1089+ 10/729)       &+ $k(30/1089+ 220/729)^2   $ \\
+       4   &     (1/1089+ 10/729 + 2/25)&+ $k(30/1089+ 220/729 + 8/25)^2$\\
+\end{tabular}
+\end{center}
+giving numeric values of 0.0012706, 0.0649885, and 0.2903805, 
+respectively.
+
+\subsection{Efron approximation}
+For the Efron approximation the combination of tied times and case weights
+can be approached in at least two ways.  
+One is to treat the case weights as replication counts.  There are then
+10 tied deaths at time 2 in the data above, and the Efron approximation
+involves 10 different denominator terms.  
+Let $a= 7r+3$, the sum of risk scores for the 3 observations with an event
+at time 2 and $b=4r+2$, the sum of risk scores for the other subjects at
+risk at time 2.
+For the replication approach, the loglikelihood is 
+\begin{eqnarray*}
+LL &=& \{2\beta - \log(r^2 + 11r +7)\} + \\ 
+   &&	\{7\beta - \log(a+b) - \log(.9a+b) - \ldots - \log(.1a+b) \} + \\
+   &&	 \{2\beta - \log(2r+1) - \log(r+1)\}. 
+\end{eqnarray*}
+A test program can be created by comparing results from the weighted
+data set (9 observations) to the unweighted replicated data set (19
+observations).
+This is the approach taken by SAS \code{phreg} using the \code{freq}
+statement.  It's advantage is that the appropriate
+result for all of the weighted computations is perfectly clear
+the disadvantage is that the only integer case weights are supported.
+(A secondary advantage is that I did not need to create another
+algebraic derivation for this appendix.)
+
+A second approach, used in {\splus}, allows for non-integer weights.
+The data is considered to be 3 tied observations, and the
+log-likelihood at time 2 is the sum of 3 weighted terms.
+The first term of the three is one of
+\begin{eqnarray*}
+	&& 3 [\beta - \log(a+b)]	\\
+	&& 4 [\beta - \log(a+b)]     \\
+ &{\rm or}&3 [0 - \log(a+b)],
+\end{eqnarray*}
+depending on whether the event for observation C, D or E 
+actually happened first
+(had we observed the time scale more exactly); 
+the leading multiplier of 3, 4  or
+3 is the case weight.
+The second term is one of 
+\begin{eqnarray*}
+	&& 4 [\beta - \log(4s+3+b)]     \\
+	&& 3 [0 -     \log(4s+3+b)]	\\
+	&& 3 [\beta - \log(3s+3+b)]	\\
+	&& 3 [\beta - \log(3s+3+b)]     \\
+	&& 3 [0     - \log(4s+3+b)]     \\
+ &{\rm or}&4 [\beta - \log(4s+3+b)].
+\end{eqnarray*}
+The first choice corresponds to an event order of observation C then D
+(subject D has the event, with D and E still at risk), the
+second to $C \rightarrow E$, then $D\rightarrow C$, $D\rightarrow E$,
+$E \rightarrow C$ and $E \rightarrow D$, respectively.
+For a weighted Efron approximation first replace the argument to the $\log$
+function by its average argument, just as in the unweighted case.
+Once this is done the average term in the above corresponds to using an
+average weight of 10/3.
+
+
+The final log-likelihood and score statistic are
+\begin{eqnarray*}
+LL &=&  \{2\beta - \log(r^2 + 11r +7)\} \\ &&  + 
+	\{7\beta - (10/3)[\log(a+b) + \log(2a/3 +b) + \log(a/3+b)] \} \\&& +
+	 2\{\beta - \log(2r+1) \} \\ \\
+U  &=& (2- \xbar_1) + 2(1-\xbar_3) \\
+   && + 7 - (10/3)[\xbar_2 + 26r/(26r+12) + 19r/(19r+9)] \\
+   &=& 11 -(\xbar_1 + (10/3)(\xbar_2 + \xbar_{2b} +\xbar_{2c}) 
+		+ 2\xbar_3)\\ \\
+I  &=& [(4s^2+11s)/(s^2+11s+7)- \xbar_1^2] \\ 
+   &&+ (10/3)[ (\xbar_2- \xbar_2^2) + (\xbar_{2b}- \xbar_{2b}^2)
+			+ (\xbar_{2b}- \xbar_{2b}^2) \\
+   &&+2(\xbar_3 - \xbar_3^2) \\
+\end{eqnarray*}
+The solution is at $\beta=.87260425$, and 
+$$
+\begin{array}{ll}
+ LL(0)=-30.29218 & LL(\bhat)=-29.41678 \\
+ U(0) = 2.148183 & U(\bhat) = 0 \\
+ \imat(0) = 2.929182 & \imat(\bhat) = 1.969447 \,.
+\end{array}
+$$
+
+The hazard increment and mean at times 1 and 4 are identical to those
+for the Breslow approximation, as shown in table \ref{tab:val3}.
+At time 2, the number at risk for the first, second and third portions
+of the hazard increment
+are $n_1= 11r+5$, $n_2= (2/3)(7r+3) + 4r+2 = (26r+12)/3$, and
+$n_3=(1/3)(7r+3) + 4r+2 = (19r+9)/3$.
+Subjects F--I experience the full  hazard at time 2 
+of $(10/3)(1/n_1 + 1/n_2 + 1/n_3)$,
+subjects B--D experience $(10/3)(1/n_1 + 2/3n_2 + 1/3n_3)$.
+Thus, at $\beta=0$ the martingale residuals are
+\begin{center}
+\begin{tabular}{cc|ll}
+Id& Time & \multicolumn{1}{c}{$\Mhat(0)$} \\ \hline
+A & 1 & 1 - 1/19 & = 18/19 \\
+B & 1 & 0 - 1/19 & = -1/19 \\
+C & 2 & 1 - (1/19 + 10/48 + 20/114 + 10/84)& =473/1064 \\
+D & 2 & 1 - (1/19 + 10/48 + 20/114 + 10/84)& =473/1064 \\
+E & 2 & 1 - (1/19 + 10/48 + 20/114 + 10/84) &=473/1064 \\
+F & 2 & 0 - (1/19 + 10/48 + 10/38\phantom{4}  + 10/28)& =-2813/3192 \\
+G & 3 & 0 - (1/19 + 10/48 + 10/38\phantom{4}  + 10/28) &=-2813/3192 \\
+H & 4 & 1 - (1/19 + 10/48 + 10/38\phantom{4}  + 10/28 + 2/3) &=-1749/3192 \\
+I & 5 & 0 - (1/19 + 10/48 + 10/38\phantom{4}  + 10/28 + 2/3) &=-4941/3192
+\end{tabular}
+\end{center}
+
+The hazard estimate for a hypothetical subject with covariate $X^\dagger$ is
+$\Lambda_i(t) = \exp(X^\dagger \beta) \Lambda_0(t)$, 
+$\Lambda_0$ has increments of $1/(r^2 + 11r +7$,  
+$(10/3)(1/n_1 + 1/n_2 + 1/n_3)$ and $2/(2r+1)$.  
+This increment at time 2 is a little larger than the Breslow jump of
+$10/d1$.
+The first term of the variance will have an increment of
+$[\exp((X^\dagger \beta)(]^2 (10/3)(1/n_1^2 + 1/n_2^2 + 1/n_3^2)$ at time 2.
+The increment to the cumulative distance from the center $d$ will be
+\begin{eqnarray*}
+  && [X^\dagger - \frac{11r}{11r+5}] \frac{10}{3 n_1} \\
+  &+& [X^\dagger -\frac{(2/3)7r + 4r}{n2} ] (10/3)(1/n_2) \\
+  &+& [X^\dagger -\frac{(1/3)7r + 4r}{n2} ] (10/3)(1/n_3) 
+\end{eqnarray*}
+
+For $X^\dagger = 1$ and $\beta=\pi/3$ we get cumulative hazard and variance 
+below.  We have $r\equiv e^\pi/3$, $V$=
+%\begin{tabular}{l$=$l|l$+$l$=$r}
+%\multicolumn{2}{c}{$\Lambda$} & \multicolumn{3}{c}{Variance} \\ \hline
+%e/(r^2+ 11r+7) &  0.03272832 & e^2/(r^2+ 11r+7)^2 & 
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/timedep.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/timedep.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/validate.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/validate.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/compete.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/compete.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/compete.Rnw	(revision 2476)
@@ -0,0 +1,1137 @@
+\documentclass{article}[11pt]
+\usepackage{Sweave}
+\usepackage{amsmath}
+\addtolength{\textwidth}{1in}
+\addtolength{\oddsidemargin}{-.5in}
+\setlength{\evensidemargin}{\oddsidemargin}
+%\VignetteIndexEntry{Multi-state models and competing risks}
+
+\SweaveOpts{keep.source=TRUE, fig=FALSE}
+% Ross Ihaka suggestions
+\DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em}
+\DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em}
+\fvset{listparameters={\setlength{\topsep}{0pt}}}
+\renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}}
+
+% I had been putting figures in the figures/ directory, but the standard
+%  R build script does not copy it and then R CMD check fails
+\SweaveOpts{prefix.string=compete,width=6,height=4}
+\newcommand{\myfig}[1]{\includegraphics[height=!, width=\textwidth]
+                        {compete-#1.pdf}}
+\setkeys{Gin}{width=\textwidth}
+<<echo=FALSE>>=
+options(continue="  ", width=60)
+options(SweaveHooks=list(fig=function() par(mar=c(4.1, 4.1, .3, 1.1))))
+pdf.options(pointsize=10) #text in graph about the same as regular text
+options(contrasts=c("contr.treatment", "contr.poly")) #ensure default
+
+require("survival")
+@
+
+\title{Multi-state models and competing risks}
+\author{Terry Therneau \and Cynthia Crowson \and Elizabeth Atkinson}
+\newcommand{\code}[1]{\texttt{#1}}
+
+\begin{document}
+\maketitle
+
+\section{Multi-state models}
+\begin{figure}
+
+<<sfig1, fig=TRUE, echo=FALSE>>=
+# A note to readers of this code: drawing multi-state figures in this
+#  way via polygon and arrows statements is a major PITA.  Don't mimic
+#  the code below, instead do yourself a favor and use a package
+#  designed for the task such as diagram, DiagrammeR, shape or Gmisc.
+# Survival is a recommended package that is included by lots of others so
+#  I try to limit dependencies in the survival vignettes.
+#
+par(mar=c(.1, .1, .1, .1))
+frame()
+oldpar <- par(usr=c(0,100,0,100))
+# first figure
+xx <- c(0, 10, 10, 0)
+yy <- c(0, 0, 10, 10)
+polygon(xx +10, yy+70)
+polygon(xx +30, yy+70)
+arrows( 22, 75, 28, 75, length=.1)
+text(c(15, 35), c(75,75), c("Alive", "Dead"))
+
+# second figure
+polygon(xx +60, yy+70)  
+for (j in c(55, 70, 85)) {
+    polygon(xx +80, yy+j)
+    arrows(72, (5*75 +j+5)/6, 78, (100+j*5)/6, length=.1)
+}
+text(c(65, 85,85,85), c(70,55,70,85)+5, c("A", "D3", "D2", "D1")) 
+
+# third figure
+polygon(xx+10, yy+25)
+for (j in c(15,35)) {
+    polygon(xx +30, yy+j)
+    arrows(22, (5*30 +j+4)/6, 28, (54+j*5)/6, length=.1)
+}
+arrows(28, 2+(65 + 35*5)/6, 22, 2+ (160 + 40)/6, length=.1)
+arrows(35, 33, 35, 27, length=.1)
+text(c(15, 35,35), c(30, 20, 40), c("Health", "Death", "Illness"))
+
+# fourth
+for (i in c(50, 68)) polygon(xx+i, yy+25)
+arrows(62, 30, 67, 30, length=.1)
+arrows(80, 30, 84, 30, length=.1)
+text(90, 30, "...", cex=2)
+text(c(55, 73), c(30, 30), c("0", "1"))
+par(oldpar)
+@
+  \caption{Four multi-state models.  The upper left panel depicts simple survival,
+ the upper right is an example of competing risks, 
+ the lower left panel is a multi-state
+ illness-death model, and the lower right panel depicts sequential events.}
+ \label{mfig1}
+\end{figure}
+
+A multi-state model is used to model a process where subjects transition from one state to the next. For instance, a standard survival curve can be thought of as a simple multi-state model with two states (alive and dead) and one transition between those two states.  A diagram illustrating this process is shown in the top left corner of figure \ref{mfig1}. In these types of diagrams, each box is a state and each arrow is a possible transition. The top right diagram depicts a classic competing risk analysis, where
+all subjects start on the left and each subject can make a single transition
+to one of 3 terminal states.
+The bottom left diagram shows a common multi-state situation known as
+the illness-death model with recovery.
+Finally, the lower right diagram represents sequential events, such as repeated
+infections in the CGD study. In that case one subject had 8
+events so there are 9 states corresponding to entry into the study 
+(0 infections) and the first, second, \ldots, eighth events.
+
+As will be shown below, there are often multiple choices for the
+state and transition diagram, and for some data sets it is revealing to
+look at a problem from multiple views. In addition to deciding the diagram that best matches the research questions, the two other primary decisions are the choice of time scale for
+the fits, e.g., time from entry in the study vs. time from entry in
+the state, and what covariates will be used.
+
+\section{Multi-state curves}
+\subsection{Aalen-Johansen estimate}
+As a starting point for the analysis, it is important to compute and plot 
+estimates of $p(t)$, which is a vector containing the probability of being
+in each of the states at time $t$.
+If there is no censoring then $p$ becomes a simple tabulation at time
+$t$ of all the states.
+For the general case, we compute this using the Aalen-Johansen estimate via the 
+\code{survfit} function.
+
+Mathematically the estimate is simple.
+For each unique time where an event occurs, form the
+transition matrix $T(t)$ with elements or rates of 
+ $\lambda_{ij}(t) =$ the fraction of subjects who transition from
+state $i$ to $j$ at time $t$, among those in state $i$ just prior to 
+time $t$.
+($T$ is equal to the identity matrix at any time point without an
+observed transition.) 
+Then
+\begin{equation}
+  p(t) = p(0) \prod_{s \le t} T(s)  \label{AJ}
+\end{equation}
+where $p(0)$ is the initial distribution of subjects.
+
+Let's work this out for the simple two-state alive $\rightarrow$ {death} model.
+Let $n(t)$ be the number of subjects still at risk at time $t$ and
+$d(t)$ the number of deaths at that time point.
+All subjects start in the alive state and thus $p(0) = (1,0)$ and
+the transition matrix is 
+\begin{equation*}
+  T(s) = \left( \begin{array}{cc} 
+    \frac{n(s)- d(s)}{n(s)}  & \frac{n(s)}{d(s)} \\\\ 0 & 1 \end{array}
+  \right)
+\end{equation*}
+The second row corresponds to the fact that death is an absorbing state.
+
+Writing out the matrices for the first few transitions and multiplying
+them leads to
+\begin{equation}
+  p_1(t) = \prod_{s \le t} \left[n(s) - d(s)\right] /n(s) \label{km}
+\end{equation}
+which we recognize as the Kaplan-Meier estimate of survival.
+For the two state alive-dead model the Aalen-Johansen (AJ) estimate
+has reprised the KM.
+In the competing risks case $p(t)$ 
+has an alternate form known as the \emph{cumulative incidence} (CI) function
+\begin{equation}
+  CI_k(t) = \int_0^t \lambda_k(u) S(u-) du \label{cuminc}
+\end{equation}
+where $\lambda_k$ is the incidence function for outcome $k$, and $S$ is the
+overall survival curve for ``time to any endpoint''.  
+(The label ``cumulative incidence''  is one of the more unfortunate ones in 
+the survival lexicon,
+since we normally use `incidence' and `hazard' as interchangeable synonyms but 
+the CI is \emph{not} a cumulative hazard.)
+Repeating the same matrix exercise for the competing risks, i.e. writing
+out the Aalen-Johansen computation, exactly recovers the CI formula.
+The CI is also a special case of the Aalen-Johansen.
+The AJ estimate is very flexible; subjects can visit multiple states
+during the course of a study, subjects can start after time 0 (delayed
+entry), and they can start in any of the states. 
+The \code{survfit} function implements the AJ estimate and 
+will handle all these cases.
+
+The standard error of the estimates is computed using an
+infinitesimal jackknife.
+Let $D(t)$ be a matrix with one row per subject and one column per state.
+Each row contains the \emph{change} in $p(t)$ corresponding to subject $i$,
+i.e., the derivative of $p$ with respect to the $i$th subject's case
+weight $dp(t)/dw_i$. Then $V(t) = D'WD$ is the estimated variance-covariance
+matrix of the estimates at time $t$, where $W$ is a diagonal matrix of
+observation weights.
+If a single subject is represented by multiple rows in the data set, then
+$D$ is first collapsed to have one row per subject, the new row for subject
+$i$ is the sum of the rows for the observations that represented the 
+subject.  This is essentially the same algorithm as the robust variance for
+a Cox model.
+For simple two state alive -> dead model, the IJ estimate of variance 
+is identical to the traditional Greenwood estimate for the variance of the
+surivival curve $S$. 
+(This was a surprise when we first observed it; proving the equivalence
+was not straightforward.)
+
+
+The $p(t)$ vector obeys the obvious constraint that its sum at 
+any time
+is equal to one; each person has to be somewhere.
+I prefer the label \emph{current prevalence} estimate, 
+since it estimates what fraction of the subjects are in any
+given state across time.  
+However the word ``prevalence'' is likely to generate confusion whenever
+death is one of the states, due to its traditional use as the fraction of
+living subjects who have a particular condition.
+We will use the phrase \emph{probability in state} or simply $p$
+from this point forward.
+
+In the simple two state model Pr(alive) is the 
+usual KM survival estimate, and we have 
+$p_1(t) = 1- p2(t)$, Pr(alive) = 1 - Pr(dead).  
+Plots for the 2 state case sometimes choose to show Pr(alive)
+and sometimes Pr(dead). Which one is used often depends on a historical
+whim of the disease specialty; 
+cardiology journals for instance quite often use Pr(event) resulting in curves
+that rise starting from zero, 
+while oncology journals invariably use Pr(alive) giving curves that fall 
+downhill from 1.
+The \code{survfit} routine's historical default for the 2 state case is to 
+print and plot Pr(alive)= $p_1(t)$, which reflects that the
+author of the routine was working primarily in cancer trials at the time 
+said default was chosen.
+
+For simple survival we have gotten used to the idea of using Pr(dead) and
+Pr(alive) interchangeably, but that habit needs to be left behind for
+multi-state models, as curves of $1-p_k(t)$ 
+= probability(any other state than $k$) are not useful.
+In the multi-state case, individual curves can go both up and down.
+For competing risks the curve for the initial state (leftmost
+in the diagram) is rarely included in the final plot. Since the curves sum to
+1, the full set is redundant.  Pr(nothing yet) is usually the least 
+interesting of the set and so it is left off to make the plot less busy.
+The remaining curves in the competing risks case rise from 0.
+(This bothers some researchers as it 'just looks wrong' to them.)
+
+\subsection{Examples}
+
+\begin{figure}
+<<crfig2, echo=FALSE, fig=TRUE>>=
+par(mar=c(.1, .1, .1, .1))
+frame()
+oldpar <- par(usr=c(0,100,0,100))
+# first figure
+xx <- c(0, 10, 10, 0)
+yy <- c(0, 0, 10, 10)
+polygon(xx +10, yy+70) 
+temp <- c(60, 80) 
+for (j in 1:2) {
+    polygon(xx + 30, yy+ temp[j])
+    arrows(22, 70 + 3*j, 28, temp[j] +5, length=.1)
+}
+text(c(15, 35, 35), c(75, 65, 85),c("Entry", "Death", "PCM")) 
+text(25, 55, "Competing Risk")
+
+# Second figure
+polygon(xx +60, yy+70)  
+for (j in 1:2) {
+    polygon(xx + 80, yy+ temp[j])
+    arrows(72, 70+ 3*j, 78, temp[j] +5, length=.1)
+}
+text(50+ c(15, 35, 35), c(75, 65, 85),c("Entry", "Death", "PCM")) 
+arrows(85, 78, 85, 72, length=.1)
+text(75, 55, "Multi-state 1")
+
+# third figure
+polygon(xx+10, yy+25)
+temp <- c(15, 35) 
+for (j in 1:2) {
+    polygon(2*xx +30, yy + temp[j])
+    arrows(22, 25 + 3*j, 28, temp[j] +5, length=.1)
+}
+text(c(15, 40, 40), c(30, 20, 40),c("Entry", "Death w/o PCM", "PCM")) 
+polygon(2*xx + 60, yy+temp[2])
+arrows(52, 40, 58, 40, length=.1)
+text(70, 40, "Death after PCM")
+text(40, 10, "Multi-state 2")
+@ 
+\caption{Three models for the MGUS data.}
+\label{mfig2}
+\end{figure} 
+
+Start with a simple competing risks problem as illustrated in the first diagram of figure \ref{mfig2}.
+The \code{mgus2} data set contains the time to plasma cell malignancy (PCM)
+and/or death
+for 1384 subjects diagnosed with monoclonal gammopathy of undetermined
+significance (MGUS).  Survival and progression time are in months. 
+The code below creates an ordinary Kaplan-Meier curve of
+post-diagnosis survival for these subjects, along with a histogram of
+age at diagnosis.
+The mean age at diagnosis is just over 70 years.
+
+<<mgus1, fig=TRUE>>=
+oldpar <- par(mfrow=c(1,2))
+hist(mgus2$age, nclass=30, main='', xlab="Age")
+with(mgus2, tapply(age, sex, mean))
+
+mfit1 <- survfit(Surv(futime, death) ~ sex, data=mgus2)
+mfit1
+plot(mfit1, col=c(1,2), xscale=12, mark.time=FALSE, lwd=2,
+     xlab="Years post diagnosis", ylab="Survival")
+legend("topright", c("female", "male"), col=1:2, lwd=2, bty='n')
+par(oldpar)
+@ 
+
+The xscale and yscale arguments to \code{plot.survfit} affect only the
+axis labels, not the data.  Further additions to the plot region
+such as \code{legend}, \code{lines}, or \code{text} remain in the 
+original scale.  This simplifies programmatic additions such as adding
+another curve to the plot, while making interactive additions such as a 
+legend somewhat less simple.
+
+As a second model for these subjects we will use competing risks
+with PCM and death without malignancy
+as the two terminal states, as shown in the upper left of figure \ref{mfig2}.
+For this model we are only interested in the first event for each
+subject.
+Formally we are treating progression to a PCM
+as an \emph{absorbing state}, i.e., one 
+that subjects never exit.  
+We create a variable \code{etime} containing the time to 
+the first of progression, death, or last follow-up along with an event
+variable that contains the outcome.
+The starting data set \code{mgus2} has two pairs of variables
+\code{(ptime, pstat)} that contain the time to progression
+and \code{(futime, status)} that contain the time to death or last known
+alive.
+The code below creates the necessary \code{etime} and \code{event}
+variables, then computes and plots the competing risks estimate.
+
+<<mgus2, echo=TRUE, fig=TRUE>>=
+etime <- with(mgus2, ifelse(pstat==0, futime, ptime))
+event <- with(mgus2, ifelse(pstat==0, 2*death, 1))
+event <- factor(event, 0:2, labels=c("censor", "pcm", "death"))
+table(event)
+
+mfit2 <- survfit(Surv(etime, event) ~ sex, data=mgus2)
+print(mfit2, rmean=240, scale=12)
+mfit2$transitions
+
+plot(mfit2, col=c(1,2,1,2), lty=c(2,2,1,1),
+     mark.time=FALSE, lwd=2,  xscale=12,
+     xlab="Years post diagnosis", ylab="Probability in State")
+legend(240, .6, c("death:female", "death:male", "pcm:female", "pcm:male"), 
+       col=c(1,2,1,2), lty=c(1,1,2,2), lwd=2, bty='n')
+@ 
+
+The \code{mfit2} call is nearly identical to that for an ordinary Kaplan-Meier, 
+with the exception of the \code{event} variable.
+\begin{enumerate}
+  \item The event variable was created as a \emph{factor}, 
+    whereas for ordinary single
+    state survival the status is either 0/1 or TRUE/FALSE.  
+    The first level of the factor must be censoring, which is the status code
+    for those whose follow-up terminated without reaching a new endpoint.
+    Codes for the remaining states can be in any order. The labels for the
+    states are unrestricted, e.g., the first one does not have to be ``censor''.
+    (It will however be treated as censoring, whatever the name.)
+  \item A simple print of the \code{mfit2} object shows the order in
+    which the curves will be displayed.  This information was used to 
+    choose the line types and colors for the curves.
+  \item The \code{mfit2} object contains curves for all the states, but 
+    by default the entry state will not be plotted.
+    The remaining curves all start at 0.
+  \item The transitions component of the result is useful as a
+    data check, e.g., if it showed a transition from death to PCM.
+  \item Each subject's initial state is specified by the \code{istate}
+    argument.  When this is omitted all subjects 
+    are assumed to start from an entry state named `` '' (the empty
+    string), as seen in the printout above.
+\end{enumerate}
+
+The printout shows that a male subject will spend, on average,
+8.7 of his first 20 years post diagnosis in the entry state, 1.1
+years in the PCM state and 10.3 of those 20 in the death state.
+If a cutoff time is not given the default is to use the maximum observed
+time for all curves, which is 424 months in this case.
+
+The result of a multi-state \code{survfit} is a matrix of probabilities with
+one row per time and one column per state.
+First are the states found in the event variable (excluding
+censoring) and then the states found in the \code{istate} variable,
+removing any duplicates.  
+By default any unnamed state is not plotted -- point 3 above --
+for the simple reason that multiple event curves can 
+very quickly get overcrowded with all the multiple lines.
+Since the three MGUS states of entry/pcm/death must sum to 1 at any
+given time (everyone has to be somewhere), one of the
+three curves is redundant and the ``fraction still in the entry state''
+curve is normally the least interesting. 
+One can easily add this last state to the plot if desired, e.g.,
+\code{lines(mfit2[,3], col=4, lty=1:2)}, since entry is the third state
+in the printout.
+(One can use, e.g., \code{mfit2[, 'pcm']} to select a state as
+well, but an empty string does not work as the subscript.)
+
+A common mistake with competing risks is to use the Kaplan-Meier
+separately on each
+event type while treating other event types as censored.
+The next plot is an example of this for the PCM endpoint.
+<<mgus3, fig=TRUE>>=
+pcmbad <- survfit(Surv(etime, pstat) ~ sex, data=mgus2)
+plot(pcmbad[2], mark.time=FALSE, lwd=2, fun="event", conf.int=FALSE, xscale=12,
+     xlab="Years post diagnosis", ylab="Fraction with PCM")
+lines(mfit2[2,1], lty=2, lwd=2, mark.time=FALSE, conf.int=FALSE)
+legend(0, .25, c("Males, PCM, incorrect curve", "Males, PCM, competing risk"),
+       col=1, lwd=2, lty=c(1,2), bty='n')
+@ 
+
+There are two problems with the \code{pcmbad} fit.  
+The first is that it attempts to estimate the expected rate of
+plasma cell malignancy (PCM)
+if all other causes of death were to be disallowed.
+In this hypothetical world it is indeed true that many more subjects would
+progress to PCM (the incorrect curve is higher), but it is also 
+not a world that any of us will ever inhabit.
+This author views the result in much the same light as discussions of
+survival after the zombie apocalypse.
+The second problem is that the computation for this
+hypothetical case is only correct if all of the competing endpoints
+are independent, a situation which is almost never true.
+We thus have an unreliable estimate of an uninteresting quantity.
+The competing risks curve, on the other hand,
+estimates the fraction of MGUS subjects who \emph{will experience} 
+PCM, a quantity sometimes known as the lifetime risk,
+and one which is actually observable.
+
+The last example chose to plot only a subset of the curves, something that is
+often desirable in competing risks problems to avoid a
+``tangle of yarn'' plot that simply has too many elements.
+This is done by subscripting the \code{survfit} object.
+For subscripting, multi-state curves behave as a matrix
+with the outcomes as the second subscript. 
+The columns are in order of the levels of \code{event},
+i.e., as displayed by our earlier call to \code{table(event)}.   
+The first subscript indexes the groups formed by the right hand side of
+the model formula, and will be in the same order as simple survival curves.
+Thus \code{mfit2[2,1]} corresponds to males (2) and the PCM endpoint (1).
+Curves are listed and plotted in the usual matrix order of R.
+
+A third example using the MGUS data treats it as a multi-state model
+and it shown in the upper right of figure \ref{mfig2}.
+In this version a subject can have multiple transitions and thus multiple
+rows in the data set.  In this case it is necessary to identify which data rows go
+with which subject via the \code{id} argument of \code{survfit};
+valid estimates of the curves and their standard errors both depend on this.
+Our model looks like the illness-death model of figure \ref{mfig1} but
+with ``PCM'' as the upper state and no arrow for
+a return from that state to health.  
+The necessary data set will have two rows for any subject who has further
+follow-up after a PCM and a single row for all others.
+The data set is created below using the \code{tmerge} function, which is
+discussed in detail in another vignette.
+
+We need to decide what to do with the 9 subjects who have PCM
+and death declared at the same month. 
+(Some of these were cancer cases discovered at autopsy.)
+They slipped through without comment in the earlier competing risks analysis;
+only when setting up this second data set did we notice the ties.  Looking
+back at the code, the prior example counted these subjects as a progression. 
+In retrospect this is a defensible choice: even though
+undetected before death, 
+the disease must have been present for some amount of time previous and
+so progression did occur first.
+For the multi-state model we need to be explicit in how this is
+coded since a sojourn time of 0 within a state is not allowed.
+Below we push the progression time back by .1 month when there is a tie, but
+that amount is entirely arbitrary.
+
+<<mgus4, echo=TRUE>>=
+ptemp <- with(mgus2, ifelse(ptime==futime & pstat==1, ptime-.1, ptime))
+newdata <- tmerge(mgus2, mgus2,  id=id, death=event(futime, death),
+                  pcm = event(ptemp, pstat))
+newdata <- tmerge(newdata, newdata, id, enum=cumtdc(tstart))
+with(newdata, table(death, pcm))
+@ 
+The table above shows that there are no observations in \code{newdata}
+that have both a PCM and death, i.e., the ties have been resolved.
+The last \code{tmerge} line above creates a variable \code{enum} which
+simply counts rows for each person; it will be used later.
+
+<<mgus4g, fig=TRUE>>=
+temp <- with(newdata, ifelse(death==1, 2, pcm))
+newdata$event <- factor(temp, 0:2, labels=c("censor", "pcm", "death"))  
+mfit3 <- survfit(Surv(tstart, tstop, event) ~ sex, data=newdata, id=id)
+print(mfit3, rmean=240, digits=2)
+mfit3$transitions
+plot(mfit3[,1], mark.time=FALSE, col=1:2, lty=1:2, lwd=2,
+     xscale=12,
+     xlab="Years post MGUS diagnosis", ylab="Prevalence of PCM")
+legend(48, .04, c("female", "male"), lty=1:2, col=1:2, lwd=2, bty='n') 
+@ 
+This plot is quite different in that it shows the fraction of subjects
+\emph{currently} in the PCM state. 
+Looking at our multi-state diagram this is the fraction
+of subjects in the upper right PCM box.
+The curve goes up whenever someone enters the box (progression) and down when
+they leave (death).
+Myeloma survival was quite short during the era of this study and the 
+proportion currently in the PCM state rarely rises above 2 percent.
+
+The result of \code{print(mfit3)} reveals, as expected, less time spent
+in the PCM state.  In the prior \code{mfit2} model, subjects who enter
+that state remain there for the duration; in this one they quickly
+pass through.
+It is worthwhile to check the \code{transitions} table in the output 
+simply as a data check. In this case it shows subjects going from the
+entry (unnamed) state to PCM and death along with transitions from PCM
+to death.  This is as expected.  
+An error in creating the input data can lead to surprising counts
+and an even more surprising curve.
+
+We have often found the three curve display below useful in the case
+of a transient state.
+It combines the results from competing risk model used above
+along with a second fit that treats death
+after PCM as a separate state from death before progression,
+the \emph{multi-state 2} model of figure \ref{mfig2}.
+In this plot the fraction of subjects currently in the PCM state
+is shown by the distance between the two curves.
+Only males are shown in the plot to minimize overlap.
+<<mgus5, echo=TRUE, fig=TRUE>>=
+# Death after PCM will correspond to data rows with
+#  enum = 2 and event = death 
+d2 <- with(newdata, ifelse(enum==2 & event=='death', 4, as.numeric(event)))
+e2 <- factor(d2, labels=c("censor", "pcm", "death w/o pcm", 
+                          "death after pcm"))
+mfit4 <- survfit(Surv(tstart, tstop, e2) ~ sex, data=newdata, id=id)
+plot(mfit2[2,], lty=c(1,2),
+     xscale=12, mark.time=FALSE, lwd=2, 
+     xlab="Years post diagnosis", ylab="Prevalence")
+lines(mfit4[2,3], mark.time=FALSE, col=2, lty=1, lwd=2,
+      conf.int=FALSE)
+
+legend(200, .5, c("Death w/o PCM", "ever PCM", 
+                  "Death after PCM"), col=c(1,1,2), lty=c(2,1,1), 
+             lwd=2, bty='n', cex=.82)
+@ 
+
+\subsection{Further notes}
+The Aalen-Johansen method used by \code{survfit} does not account for 
+interval censoring, also known as panel data, 
+where a subject's current state is recorded at some fixed time such as a
+medical center visit but the actual times of transitions are unknown.
+Such data requires further assumptions about the transition process in
+order to model the outcomes and has a more complex likelihood. 
+The \code{msm} package, for instance, deals with data of this type.
+If subjects reliably come in at regular intervals then the 
+difference between the two results can be small, e.g., the 
+\code{msm} routine estimates time until progression \emph{occurred}
+whereas \code{survfit} estimates time until progression was \emph{observed}.
+
+\begin{itemize}
+  \item When using multi-state data to create Aalen-Johansen estimates, 
+    individuals
+    are not allowed to have gaps in the middle of their time line.
+    An example of this would be a data set with 
+    (0, 30, pcm] and (50,70, death] as the two observations
+    for a subject where the time from 30-70 is not accounted for.
+  \item Subjects must stay in the same group over their entire observation
+    time, i.e., variables on the right hand side of the equation cannot be
+    time-dependent. 
+  \item A transition to the same state is allowed, e.g., observations of
+    (0,50, 1], (50, 75, 3], (75, 89, 4], (89, 93, 4] and (93, 100, 4] 
+    for a subject who goes
+    from entry to state 1, then to state 3, and finally to state 4.
+    However, a warning message is issued for the data set in this case, since
+    stuttering may instead be the result of a coding mistake.
+    The same result is obtained if 
+    the last three observations were collapsed to a single row of 
+    (75, 100, 4].
+\end{itemize}
+
+\section{Rate models}
+For simple two-state survival, the Cox model leads to three relationships
+\begin{align}
+  \lambda(t)  &= \lambda_0(t) e^{X\beta}  \label{hazard} \\
+  \Lambda(t)  &= \Lambda_0(t) e^{X\beta} \label{cumhaz}\\
+  S(t)       &= \exp(-\Lambda(t))  \label{surv}
+  \end{align}
+where $\lambda$, $\Lambda$ and $S$ are the hazard, cumulative hazard
+and survival functions, respectively.
+There is a single linear predictor which governs
+both the rate $\lambda$ (the arrow in figure \ref{mfig1}) and probability
+of residing in the left hand box of the figure.
+For multi-state models this simplicity no longer holds; proportional
+hazards does not lead to proportional $p(t)$ curves.
+The task before us is more complex.
+
+The analysis of multi-state data has four
+key steps.  In order of importance:
+\begin{enumerate}
+  \item Draw a box and arrow figure describing the model.
+  \item Think through the rates (arrows).
+    \begin{enumerate}
+      \item Which covariates should be attached to each rate? 
+        Sometimes a covariate is important for one transition, but not for
+        another.
+      \item For which transitions should one or more of the covariates be 
+        constrained to have the same coefficient? 
+        Sometimes there will be a biologic rationale for this.  For other 
+        studies an equivalence is forced simply because we have too many 
+        unknowns and cannot accommodate them all.
+        (This is the often the same reason that models
+        contain very few interaction terms).
+      \item Which, if any, of the transitions should share the same baseline 
+          hazard?  Most of the time the baseline rates are all assumed to
+          be different.
+       \item Should there be random effects, and if so what is an appropriate
+         correlation structure? 
+         Do some pairs of transitions have a shared effect,  
+         some pairs separate effects and others no random effect?   
+         Mixed effects Cox models tend to need larger sample size --- does 
+         the data set have enough events? 
+    \end{enumerate}
+  \item Build an appropriate data set.
+  \item Fit the data.  Examine multiple summaries of the
+    model fit, including the predicted occupancy curves.
+\end{enumerate}
+Step 1 is key to the entire endeavor.
+We saw in figure \ref{mfig2} and the examples above that multiple views of a
+multi-state process can be useful, and this will hold for modeling as well.
+Step 3 will often
+be the one that demands the most attention to detail.
+
+\subsection{MGUS example}
+Start with the simplest model for the MGUS data: 
+a competing risks model (upper left diagram of figure \ref{mfig2}), distinct baseline
+hazards for the two rates, no shared coefficients, and three covariates.
+<<cfit1>>=
+options(show.signif.stars = FALSE)  # display intelligence
+cfit2 <- coxph(Surv(etime, event=="death") ~ age + sex + mspike, mgus2)
+summary(cfit2, scale=c(10, 1, 1))   # scale age in decades 
+
+@ 
+The effect of age and sex on non-PCM mortality is profound, which is not
+a surprise given the median starting age of \Sexpr{median(mgus2$age)}. Risk rises \Sexpr{round(exp(10*coef(cfit2)[1]),1)} fold per decade of age and
+the death rate for males is \Sexpr{round(exp(coef(cfit2)[2]),1)} times as great
+as that for females.  
+The size of the serum monoclonal spike has almost no impact on non-PCM 
+mortality.
+A 1 unit increase changes mortality by only 6\%.
+
+<<cfit2>>=
+cfit1 <- coxph(Surv(etime, event=="pcm") ~ age + sex + mspike, mgus2)
+cfit1
+quantile(mgus2$mspike, na.rm=TRUE)
+@ 
+The mspike size has a major impact on progression, however; each 1 gram
+change increases risk by \Sexpr{round(exp(coef(cfit1)[3]) ,1)} fold.
+The interquartile range of \code{mspike} is 0.9 gram so this risk increase
+is clinically important.
+The effect of age on the progression rate is much less pronounced,
+with a coefficient only 1/4 that for mortality, while the effect of sex
+on progression is completely negligible.
+
+The effect of sex on the \emph{lifetime} probability of PCM is not zero,
+however.  Because of a longer lifetime, a female with MGUS will on average
+spend more total years at risk for PCM than the average male, and so has
+a larger lifetime risk of PCM.  
+The average rate of progression is about 1\% per year, as shown below,
+while the mean post diagnosis lifetime is 19 months longer for 
+females. 
+The overall effect is a 1.6\% increase in lifetime risk.
+<<mpyears>>=
+pfit1 <- pyears(Surv(ptime, pstat) ~ sex, mgus2, scale=12)
+round(100* pfit1$event/pfit1$pyears, 1)  # PCM rate per year
+
+temp <- summary(mfit1, rmean="common")  #print the mean survival time
+round(temp$table[,1:6], 1)
+@ 
+
+Notice that each \code{coxph} fit essentially ignores the other event type(s).
+In the figure, each rate (arrow) depends only on the box from which
+it originates and the events which it enumerates.
+Rates are instantaneous quantities, and depend only on the set of subjects
+who are at risk at at a given  moment;
+if someone is not at risk it really does not matter why.
+
+When computing $p(t)$, on the other hand, all the
+rates must be considered at once.  
+The Aalen-Johansen estimate applies as before, but now the individual
+entries $\lambda_{ij}(t)$ in each cell of the transition matrix are taken
+from the relevant fit.
+As is also the case with predicted survival curves from a simple 
+Cox model, predicted prevalence curves correspond to a set of
+prespecified covariate values.  
+As an example we will generate the curves for four hypothetical
+subjects: male and female, age 60 and 80, and serum m-spike of 1.2 grams.
+These are the approximate quartiles of age, and the median mspike.
+
+The Aalen-Johansen estimate for this simple 3-state competing risks setup
+works with a matrix of this form:
+\begin{equation*}
+  \left( \begin{array}{ccc}  & \lambda_{12}{t} & \lambda_{13}(t) \\
+       0 &  & 0 \\ 0 & 0 &  \end{array} \right)
+\end{equation*}
+As before, the diagonal elements are chosen so that each row sums to 1.  
+Standard survival curve calculations for a Cox model can be used to
+obtain $\lambda_{12}$, the rate of transition to the PCM state for our
+four subjects, and $\lambda_{13}$ = the rate of transition to the ``death
+before PCM'' state.  These are placed into a matrix and 
+combined using a third call.
+The standard errors from the individual curves won't be used and the
+survfit routine is a bit faster if we skip them.
+
+<<PCMcurve, fig=TRUE>>=
+newdata <- expand.grid(sex=c("F", "M"), age=c(60, 80), mspike=1.2)
+newdata
+
+temp <- matrix(list(), 3,3)
+dimnames(temp) <- list(from=c("Entry", "PCM", "Death"),
+                       to  =c("Entry", "PCM", "Death"))
+temp[1,2] <- list(survfit(cfit1, newdata, std.err=FALSE))
+temp[1,3] <- list(survfit(cfit2, newdata, std.err=FALSE))
+csurv  <- survfit(temp, p0 =c(1,0,0))
+plot(csurv[,2], xmax=25*12, xscale=12, 
+     xlab="Years after MGUS diagnosis", ylab="PCM",
+     col=1:2, lty=c(1,1,2,2), lwd=2)
+legend(10, .14, outer(c("female", "male   "), 
+                     c("diagnosis at age 60", "diagnosis at age 80"), 
+                      paste, sep=", "),
+       col=1:2, lty=c(1,1,2,2), bty='n', lwd=2)
+@ 
+The individual survival curves that result from \code{survfit(cfit1)}
+and \code{survfit(cfit2)} are not actually of interest, since 
+each is a Cox model analog of the pcmbad curve we criticized earlier.
+The cumulative hazard portion of the results is what is used to
+build an Aalen-Johansen estimate.
+(Calling \code{survfit} on a set of \code{survfit} objects is, I admit, a
+bit confusing.  
+It would perhaps have been better to name the second routine
+``AalenJohansen'', but we use this often and didn't want to type that 
+long a name.)
+
+Sex has nearly no effect on the hazard of PCM, i.e., on any given day the
+risk of conversion for a male is essentially the same as for a female of the
+same age.  
+Yet we see above that the fitted Cox models predict a higher lifetime risk 
+for females, and an age effect on lifetime risk that is far from proportional.
+Very few subjects acquire PCM more than 15 years after a MGUS diagnosis at
+age 80 for the obvious reason: very few of them will still 
+be alive.
+
+Creating the `list' form matrix above is quite easy, in particular we do
+not need to fill in elements on the diagonal, nor those for which no 
+transitions occur, e.g., from death back to the entry state. 
+The resulting \code{survfit} object is easy to plot or print using standard calls.
+The approach has a number of caveats, however.
+\begin{itemize}
+  \item It does not produce standard errors for the curves, as a consequence
+    of being two steps removed from the data.
+  \item It is easy to ``fool'' the program.  For instance if you were to get 
+    curves for females and males from \code{cfit1}, but the curves from 
+    \code{cfit2} were in the reverse order of male then female, results will
+    still be produced but they would not be valid.  The user is responsible
+    for setting the problem up correctly.
+  \item The R syntax for a matrix of lists is rather fussy, e.g., you can't
+    leave the \code{list} function out of the lines that assign elements
+    to \code{temp} above.
+\end{itemize}
+The \code{mstate} package addresses these issues, at the price of a 
+somewhat more complex syntax.
+ 
+<<year20>>=
+# Print out a M/F results at 20 years
+temp <- summary(csurv, time=20*12)$prev
+cbind(newdata, PCM= round(100*temp[,2], 1))
+@ 
+The above table shows that females are modeled to 
+have a higher risk of 20 year progression, even
+though their hazard at any given moment is nearly identical to males.
+The difference at 20 years is on the order of our ``back of the napkin''
+person-years estimate of 1\% progression per year * 1.7 more years of life
+for the females, but the progression fraction varies substantially by group.  
+
+\section{Fine-Gray model}
+For the competing risk case the Fine-Gray model provides an alternate way of
+looking at the data. 
+As we saw above, the impact of a particular covariate on the final prevalence
+values $P$ can be complex, even if the models for the hazards are relatively
+simple. 
+The primary idea of the Fine-Gray approach is to turn the multi-state 
+problem into a collection of two-state ones. 
+In the upper right diagram of figure 1, draw a circle around all of the
+states except the chosen endpoint and collapse them into a single meta-state.
+For the MGUS data these are 
+\begin{itemize}
+  \item Model 1
+    \begin{itemize}
+      \item left box: All subjects in the entry or ``death first'' state
+      \item right box: PCM
+    \end{itemize}
+  \item Model 2
+    \begin{itemize}
+      \item left box: All subjects in the entry or ``PCM first'' state
+      \item right box: Death (without PCM)
+    \end{itemize}
+\end{itemize}
+
+An interesting aspect of this is that the fit can be done as a
+two stage process: the first stage creates a special data set while the
+second fits a weighted \code{coxph} or \code{survfit} model to the data.
+The data set can be created using the \code{finegray} command.
+
+<<fg1>>=
+# (first three lines are identical to an earlier section)
+etime <- with(mgus2, ifelse(pstat==0, futime, ptime))
+event <- with(mgus2, ifelse(pstat==0, 2*death, 1))
+event <- factor(event, 0:2, labels=c("censor", "pcm", "death"))
+
+pcmdat <- finegray(Surv(etime, event) ~ ., data=mgus2,
+                   etype="pcm")
+pcmdat[1:4, c(1:3, 11:14)]
+
+deathdat <- finegray(Surv(etime, event) ~ ., data=mgus2,
+                     etype="death")
+dim(pcmdat)
+dim(deathdat)
+dim(mgus2)
+@ 
+The \code{finegray} command has been used to create two data sets:
+one for the PCM endpoint and one for the death endpoint.
+In each, four new variables have been added containing a survival
+time \code{(fgstart, fgstop, fgstatus)} with an `ordinary' status of
+0/1, along with a case weight and a large number of new rows.
+We can use this new data set as yet another way to compute
+multi-state survival curves, though there is no good reason to use this
+rather roundabout approach instead of 
+the simpler \code{survfit(Surv(etime, event) \textasciitilde sex)}.
+<<pfit2>>=
+# The PCM curves of the multi-state model
+pfit2 <- survfit(Surv(fgstart, fgstop, fgstatus) ~ sex,
+                data=pcmdat, weight=fgwt)
+# The death curves of the multi-state model
+dfit2 <- survfit(Surv(fgstart, fgstop, fgstatus) ~ sex, 
+                  data=deathdat, weight=fgwt)
+@ 
+The two new curves are almost identical to the prior estimates, 
+and in fact would be identical if we
+had accounted for the slightly different censoring patterns in males and
+females (by adding \code{strata(sex)} to the right hand side of the
+\code{finegray} formulas).
+
+
+A Cox model fit to the constructed data set yields the Fine-Gray
+models for PCM and for death.  
+<<fg2, fig=TRUE>>=
+fgfit1 <- coxph(Surv(fgstart, fgstop, fgstatus) ~ sex, data=pcmdat,
+               weight= fgwt)
+summary(fgfit1)
+fgfit2 <- coxph(Surv(fgstart, fgstop, fgstatus) ~ sex, data=deathdat,
+               weight= fgwt)
+fgfit2
+
+mfit2 <- survfit(Surv(etime, event) ~ sex, data=mgus2) #reprise the AJ
+plot(mfit2[,1], col=1:2,
+     lwd=2,  xscale=12,
+     conf.times=c(5, 15, 25)*12,
+     xlab="Years post diagnosis", ylab="Fraction with PCM")
+ndata <- data.frame(sex=c("F", "M"))
+fgsurv1 <- survfit(fgfit1, ndata)
+lines(fgsurv1, fun="event", lty=2, lwd=2, col=1:2)
+legend("topleft", c("Female, Aalen-Johansen", "Male, Aalen-Johansen",
+                 "Female, Fine-Gray", "Male, Fine-Gray"),
+       col=1:2, lty=c(1,1,2,2), bty='n')
+
+# rate models with only sex
+pfitr <- coxph(Surv(etime, event=="pcm") ~ sex, mgus2)
+dfitr <- coxph(Surv(etime, event=="death") ~ sex, mgus2)
+temp <- matrix(list(), 3,3)
+temp[1,2] <- list(survfit(pfitr, ndata, std.err=FALSE))
+temp[1,3] <- list(survfit(dfitr, ndata, std.err=FALSE))
+rcurve <- survfit(temp, p0=c(entry=1, pcm=0, death=0))
+@ 
+The FG model states that males have a lower rate of \emph{observed} PCM, 
+by a factor of \Sexpr{round(exp(coef(fgfit1)), 2)}, and that
+this hazard ratio is constant over time.
+An overlaid plot of the non-parametric Aalen-Johansen estimates for the
+PCM state (from \code{survfit}) along with predicted curves from the 
+Fine-Gray model show that proportional hazards is not unreasonable for 
+this particular fit.
+The predicted values from the rate model, computed just above but not 
+plotted on the curve, also fit well with the data.
+
+When there is only a single categorical 0/1 covariate the Fine-Gray model
+reduces to Gray's test of the subdistribution function, in the same way
+that a \code{coxph} fit with a single categorical predictor is equivalent
+to the log-rank test.
+
+The mathematics behind the Fine-Gray estimate starts with
+the functions $F_k(t) = p_k(t)$, where $p$ is the probability in state
+function estimated by the AJ estimate.  This can
+be thought of as the distribution function for the improper random variable
+$T^*= I(\mbox{event type}=k)T + I(\mbox{event type}\ne k)\infty$.
+Fine and Gray refer to $F_k$ as a subdistribution function.
+In analogy to the survival probability in the two state model define
+\begin{equation}
+  \gamma_k(t) = - d \log[1-F_k(t)]/dt \label{FG}I 
+\end{equation}
+and assume that $\gamma_k(t;x) = \gamma_{k0}(t) \exp(X\beta)$.
+In a 2 state alive $\longrightarrow$ death model, $\gamma$ becomes the
+usual hazard function $\lambda$.
+In the same way that our multivariate Cox model \code{cfit2} made the
+simplifying assumption that the impact of male sex is to increase the
+hazard for death
+by a factor of \Sexpr{round(exp(coef(cfit2)['sexM']), 2)}, 
+independent of the subject's age or serum mspike value,
+the Fine-Gray model assumes that each covariate's effect on $\log(1-F)$ 
+is a constant,
+independent of other variables.  
+Both model's assumptions are wonderfully simplifying with respect to 
+understanding
+a covariate, since we can think about each one separately from the others.
+This is, of course, under the assumption that the model is correct:
+additivity across covariates, linearity, and proportional hazards 
+all hold.
+In a multi-state model, however, these assumptions cannot hold for 
+both the per-transition and Fine-Gray models formulations at the same time;
+if it is true for one, it will not be true for the other.
+
+Now consider a multivariate fit on age, sex, and serum m-spike.
+<<fg3>>=
+fgfit2a <- coxph(Surv(fgstart, fgstop, fgstatus) ~ age + sex + mspike,
+                 data=pcmdat, weight=fgwt)
+
+fgfit2b <-  coxph(Surv(fgstart, fgstop, fgstatus) ~ age + sex + mspike,
+                 data=deathdat, weight=fgwt)
+round(rbind(PCM= coef(fgfit2a), death=coef(fgfit2b)), 3)
+@ 
+The Fine-Gray fits show an effect of all three  variables on the subdistribution
+rates.  Males have a lower lifetime risk of PCM before death and a higher 
+risk of death before PCM, while a high serum m-spike works in the opposite
+direction.  
+The Cox models showed no effect of sex on the instantaneous hazard 
+of PCM and none
+for serum m-spike on the death rate.
+However, as shown in the last section, the Cox models do predict 
+a greater lifetime risk for females.
+We had also seen that older subjects are less likely to experience PCM
+due to the competing risk of death;
+this is reflected in the FG model as a negative coefficient for age.
+
+Now compute predicted survival curves for the model, and show them
+alongside the predictions from the multi-state model.
+
+<<finegray2, fig=TRUE>>=
+oldpar <- par(mfrow=c(1,2))
+newdata <- expand.grid(sex= c("F", "M"), age=c(60, 80), mspike=1.2)
+fsurv1 <- survfit(fgfit2a, newdata)  # time to progression curves
+plot(fsurv1, xscale=12, col=1:2, lty=c(1,1,2,2), lwd=2, fun='event',
+     xlab="Years", ylab="Fine-Gray predicted", 
+     xmax=12*25, ylim=c(0, .15))
+legend(1, .15, c("Female, 60", "Male, 60","Female: 80", "Male, 80"),
+       col=c(1,2,1,2), lty=c(1,1,2,2), lwd=2, bty='n')
+
+plot(csurv[,2], xscale=12, col=1:2, lty=c(1,1,2,2), lwd=2,
+     xlab="Years", ylab="Multi-state predicted", 
+     xmax=12*25, ylim=c(0, .15))
+legend(1, .15, c("Female, 60", "Male, 60","Female: 80", "Male, 80"),
+       col=c(1,2,1,2), lty=c(1,1,2,2), lwd=2, bty='n')
+par(oldpar)
+@ 
+
+The predictions as a function of age group are quite different for the
+Fine-Gray model: new PCM cases are predicted 20+ years after diagnosis
+in both the old and young age groups, while they are predicted to cease
+in the multi-state fit.  
+The average of the curves is nearly the same at each age, but 
+the global proportional hazards assumption of
+the FG model forces the curves to remain parallel.
+
+We can check the proportional hazards assumption of the models using
+the \code{cox.zph} function,
+linearity of the continuous variables age and mspike by using
+non-linear terms such as \code{pspline} or \code{ns}, and
+additivity by exploring interactions.  
+All are obvious and important next steps.  For instance, the proportional hazards assumption for age shows clear violations.
+
+<<finegray-check, fig=TRUE>>=
+zph.fgfit2a <- cox.zph(fgfit2a)
+zph.fgfit2a
+plot(zph.fgfit2a[1])
+abline(h=coef(fgfit2a)[1], lty=2, col=2)
+@
+
+A weakness of the Fine-Gray approach is that since the two endpoints
+are modeled separately, the results do not have to be consistent.
+Below is a graph of the predicted fraction who have experienced neither
+endpoint.  For subjects diagnosed at age 80 the Fine-Gray models predict that more than 
+100\% will either progress or die by 30 years.
+Predictions based on the Aalen-Johansen approach do not have this issue.
+<<finegray3, fig=TRUE>>=
+fsurv2 <- survfit(fgfit2b, newdata)  # time to progression curves
+xtime <- 0:(30*12)  #30 years
+y1a <- 1 - summary(fsurv1, times=xtime)$surv  #predicted pcm
+y1b <- 1 - summary(fsurv2, times=xtime)$surv #predicted deaths before pcm
+y1  <- (y1a + y1b)  #either
+
+matplot(xtime/12, y1, col=1:2, lty=c(1,1,2,2), type='l',
+        xlab="Years post diagnosis", ylab="FG: either endpoint")
+abline(h=1, col=3)
+legend("bottomright", c("Female, 60", "Male, 60","Female: 80", "Male, 80"),
+       col=c(1,2,1,2), lty=c(1,1,2,2), lwd=2, bty='n')
+@ 
+
+
+The primary strength of the Fine-Gray model with respect to the Cox model
+approach is that if lifetime risk is a primary question, then 
+the model has given
+us a simple and digestible answer to that question:
+``females have a 1.2 fold higher chance of PCM, after adjustment for age 
+and serum m-spike''.
+This simplicity is not without a price, however, and these authors are 
+not proponents of the approach.
+There are five issues.
+\begin{enumerate}
+  \item The attempt to capture a complex process as a single value is
+    grasping for a simplicity that does not exist for many (perhaps most)
+    data sets.
+     The necessary assumptions in a multivariate Cox model of proportional
+    hazards, linearity of continuous variables, and no interactions are
+    strong ones.  For the FG model these need to hold for a combined process
+    --- the mixture of transition rates to each endpoint --- which turns out
+    to be a more difficult barrier. 
+  \item The sum of predictions need not be consistent.
+  \item From the per-transition models one can work forward and compute
+    $p(t)$, the occupancy probabilities for each state over time;
+    both the hazard ratios and $p$ are useful summaries of the data.
+    We don't have tools to work backwards from a Fine-Gray fit to the
+    per transition hazards.
+  \item The approach is viable only for competing risks and not for
+    other multi-state models.
+  \item The risk sets are odd.
+\end{enumerate}
+The last of these is perhaps the most frequently listed issue with the Fine-Gray
+model, but it is actually a minor complaint.  
+The state probabilities $p(t)$ in a multi-state model are implicitly 
+fractions of the total population
+we started with: someone who dies in month 1 is still a part of the denominator
+for the fraction of subjects with PCM at 20 years.  
+In the Fine-Gray formulas this subject explicitly appears in risk set 
+denominators at a later time, which looks odd but is more of an artifact.
+
+The first issue is substantial, however,
+and checking the model assumptions of a Fine-Gray fit is
+mandatory.  The second point is alarming, but it does not have a practical
+impact unless there is long follow-up.
+
+\section{Stacked data sets}
+How does one fit risk models that have shared coefficients or baseline hazards?
+One approach is to
+fit the set of Cox models for the rates `all at once' on a combined
+data set.  For the simple competing risks MGUS fit above, assume that
+we wanted to add hemoglobin to the fit, with a common coefficient for
+both the PCM and death endpoint.  (Anemia is a feature of both PCM and old
+age.)  Create a stacked data set with $2n$ observations.  The first $n$
+rows are the data set we would use for a time to PCM analysis, 
+with a simple 0/1 status variable encoding the PCM outcome.
+The second $n$ rows are the data set we would have used for the 
+`death before PCM' fits, with status encoding the death-before-PCM endpoint.
+A last variable, \code{group},  is 'pcm' for the first $n$ 
+observations and
+'death' for the remainder.  Then fit a model
+<<pcmstack, echo=TRUE>>=
+temp1 <- data.frame(mgus2, time=etime, status=(event=="pcm"), group='pcm')
+temp2 <- data.frame(mgus2, time=etime, status=(event=="death"), group="death")
+stacked <- rbind(temp1, temp2)
+allfit <- coxph(Surv(time, status) ~ hgb + (age + sex)*strata(group),
+                 data=stacked)
+@ 
+This fits a common effect for hemoglobin (hgb) but separate age and sex
+effects for the two endpoints, along with separate baseline hazards.
+
+
+\section{Other software}
+\subsection{The mstate package}
+As the number of states + transitions (arrows + boxes) gets larger then
+the `by hand' approach used above for creating a stacked data set, labeling
+coefficients, and producing multi-state curves becomes a challenge.
+(It is still fairly easy to do, just not as easy to ensure it has
+been done \emph{correctly}.)
+The \code{mstate} package starts with a definition of the matrix of possible
+transitions and uses that to drive tools that build and analyze the stacked
+data set in a more automated fashion. 
+We recommend it for more complex models.  (The tutorial above is about at
+our personal threshold.)
+A second advantage of \code{mstate} is that all the Cox
+model fits are now in one well indexed object, which allows for calculation 
+of proper confidence intervals for the state probabilities $p(t)$.
+(Since all of the steps used the same transition matrix template, the
+necessary computations are scripted and reliable.)
+
+\subsection{The \code{msm} package}
+There are two broad classes of multi-state data:
+\begin{itemize}
+  \item Panel data arises when subjects have regular visits, with the
+    current state assessed at each visit.  We don't know when the transitions
+    between states occur, or if other states may have been visited in the
+    interim --- only the subject's state at specific times.  
+  \item Survival data arises when we observe the transition times;
+    death, for example.
+\end{itemize}
+
+The overall model (boxes and arrows), the quantities of interest (transition
+rates and $p(t)$), and the desired printout and graphs are identical for
+the two cases.  Much of the work in
+creating a data set is also nearly the same.  
+The underlying likelihood equations and resulting analytical methods for
+solving the problem are, however, completely different.  
+The \code{msm} package addresses panel data, while \code{survival}, \code{mstate}, and a host of
+others are devoted to survival data.
+
+\section{Conclusions}
+When working with acute diseases,  such as advanced cancer or end-stage liver
+disease, there is often a single dominating endpoint.
+Ordinary single event Kaplan-Meier curves and Cox models are then
+efficient and sufficient tools for much of the analysis.  
+Such data was the primary use case for survival analysis earlier in the
+authors' careers.  
+Data with multiple important endpoints is now common, and multi-state
+methods are an important addition to the statistical toolbox.  
+As shown above, they are now readily available and easy to use.
+
+It is sometimes assumed that the presence of competing risks 
+\emph{requires} the use of a Fine-Gray model (we have seen it in referee
+reports), but this is not correct.  
+The model may often be useful, but is one available option among many.
+Grasping the big picture for a multi-state data set is always a challenge
+and we should make use of as many tools as possible.
+We are often reminded of the story of a centenarian on his 100th birthday
+proclaiming that he was looking forward to many more years ahead because
+``I read the obituaries every day, and you almost never see someone 
+over 100 listed there''.  
+It is not always easy to jump between observed
+deaths, hazard rates, and lifetime risk.
+
+%\bibliographystyle{plain}
+%\bibliography{refer}
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/tests.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/tests.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/tests.R	(revision 2476)
@@ -0,0 +1,393 @@
+### R code from vignette source 'tests.Rnw'
+
+###################################################
+### code chunk number 1: tests.Rnw:20-24
+###################################################
+options(continue="  ", width=60)
+options(SweaveHooks=list(fig=function() par(mar=c(4.1, 4.1, .3, 1.1))))
+pdf.options(pointsize=8) #text in graph about the same as regular text
+options(contrasts=c("contr.treatment", "contr.poly")) #reset default
+
+
+###################################################
+### code chunk number 2: tests.Rnw:44-52
+###################################################
+library(survival)
+age2 <- cut(flchain$age, c(49, 59, 69, 79, 89, 120),                   
+            labels=c("50-59", "60-69", "70-79", "80-89", "90+"))
+
+flchain$flc <- flchain$kappa + flchain$lambda                    
+tab1 <- with(flchain, tapply(flc, list(sex, age2), mean))
+cat("female&" , paste(round(tab1[1,], 1), collapse=" & "), "\\\\ \n")
+cat("male &"  , paste(round(tab1[2,], 1), collapse=" & "), "\n")
+
+
+###################################################
+### code chunk number 3: data
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+library(survival)
+library(splines)
+age2 <- cut(flchain$age, c(49, 59, 69, 79, 89, 120),                   
+            labels=c("50-59", "60-69", "70-79", "80-89", "90+"))
+counts <- with(flchain, table(sex, age2))
+counts
+#
+flchain$flc <- flchain$kappa + flchain$lambda                    
+male <- (flchain$sex=='M')
+mlow <- with(flchain[male,],  smooth.spline(age, flc))
+flow <- with(flchain[!male,], smooth.spline(age, flc))
+plot(flow, type='l', ylim=range(flow$y, mlow$y),
+     xlab="Age", ylab="FLC")
+lines(mlow, col=2)
+cellmean <- with(flchain, tapply(flc, list(sex, age2), mean, na.rm=T))
+matpoints(c(55,65,75, 85, 95), t(cellmean), pch='fm', col=1:2)
+
+round(cellmean, 2)
+
+
+###################################################
+### code chunk number 4: tests.Rnw:384-393
+###################################################
+us2000 <- rowSums(uspop2[51:101,,'2000'])
+
+fit1 <- lm(flc ~ sex, flchain, x=TRUE)
+fit2 <- lm(flc ~ sex + ns(age,4), flchain, x=TRUE)
+c(fit1$coef[2], fit2$coef[2])
+
+wt1  <- solve(t(fit1$x)%*%fit1$x, t(fit1$x))[2,] # unadjusted
+wt2 <-  solve(t(fit2$x)%*%fit2$x, t(fit2$x))[2,] # age-adjusted
+table(wt1, flchain$sex)
+
+
+###################################################
+### code chunk number 5: pop
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+us2000 <- rowSums(uspop2[51:101,,'2000'])
+tab0 <- table(flchain$age)
+tab2 <- tapply(abs(wt2), flchain$age, sum)
+matplot(50:100, cbind(tab0/sum(tab0), tab2/sum(tab2)),
+        type='l', lty=1,
+        xlab="Age", ylab="Density")
+
+us2000 <- rowSums(uspop2[51:101,,'2000'])
+matpoints(50:100, us2000/sum(us2000), pch='u')
+legend(60, .02, c("Empirical reference", "LS reference"),
+       lty=1, col=1:2, bty='n')
+
+
+###################################################
+### code chunk number 6: yfit
+###################################################
+yatesfit <- lm(flc ~ interaction(sex, age2) -1, data=flchain)
+theta <- matrix(coef(yatesfit), nrow=2)
+dimnames(theta) <- dimnames(counts)
+round(theta,2)
+
+
+###################################################
+### code chunk number 7: tests.Rnw:548-570
+###################################################
+qform <- function(beta, var) # quadratic form b' (V-inverse) b
+    sum(beta * solve(var, beta))
+contrast <- function(cmat, fit) {
+    varmat <- vcov(fit)
+    if (class(fit) == "lm") sigma2 <- summary(fit)$sigma^2              
+    else sigma2 <- 1   # for the Cox model case
+
+    beta <- coef(fit)
+    if (!is.matrix(cmat)) cmat <- matrix(cmat, nrow=1)
+    if (ncol(cmat) != length(beta)) stop("wrong dimension for contrast")
+
+    estimate <- drop(cmat %*% beta)  #vector of contrasts
+    ss <- qform(estimate, cmat %*% varmat %*% t(cmat)) *sigma2
+    list(estimate=estimate, ss=ss, var=drop(cmat %*% varmat %*% t(cmat)))
+    }
+
+yates.sex <- matrix(0, 2, 10)
+yates.sex[1, c(1,3,5,7,9)] <-  1/5    #females
+yates.sex[2, c(2,4,6,8,10)] <- 1/5    #males
+
+contrast(yates.sex, yatesfit)$estimate  # the estimated "average" FLC for F/M
+contrast(yates.sex[2,]-yates.sex[,1], yatesfit) # male - female contrast
+
+
+###################################################
+### code chunk number 8: tests.Rnw:573-599
+###################################################
+# Create the estimates table -- lots of fits
+emat <- matrix(0., 6, 3)
+dimnames(emat) <- list(c("Unadjusted", "MVUE: continuous age", 
+                         "MVUE: categorical age", "Empirical (data) reference",
+                         "US200 reference", "Uniform (Yates)"),
+                       c("est", "se", "SS"))
+
+#unadjusted
+emat[1,] <- c(summary(fit1)$coef[2,1:2], anova(fit1)["sex", "Sum Sq"])
+# MVUE -- do the two fits
+fit2 <- lm(flc ~ ns(age,4) + sex, flchain)
+emat[2,] <- c(summary(fit2)$coef[6, 1:2], anova(fit2)["sex", "Sum Sq"])
+fit2 <- lm(flc ~ age2 + sex, flchain)
+emat[3,] <- c(summary(fit2)$coef[6, 1:2], anova(fit2)["sex", "Sum Sq"])
+
+#Remainder, use contrasts
+tfun <- function(wt) {
+    cvec <- c(matrix(c(-wt, wt), nrow=2, byrow=TRUE))
+    temp <- contrast(cvec, yatesfit)
+    c(temp$est, sqrt(temp$var), temp$ss)
+}
+emat[4,] <- tfun(colSums(counts)/sum(counts))
+
+usgroup <- tapply(us2000, rep(1:5, c(10,10,10,10,11)), sum)/sum(us2000)
+emat[5,]<- tfun(usgroup)
+emat[6,] <- tfun(rep(1/5,5))
+
+
+###################################################
+### code chunk number 9: tests.Rnw:604-608
+###################################################
+temp <- dimnames(emat)[[1]]
+for (i in 1:nrow(emat))
+   cat(temp[i], sprintf(" &%5.3f", emat[i,1]),sprintf(" &%6.5f", emat[i,2]), 
+       sprintf(" & %6.1f", emat[i,3]), "\\\\ \n")
+
+
+###################################################
+### code chunk number 10: weights
+###################################################
+casewt <- array(1, dim=c(2,5,4)) # case weights by sex, age group, estimator
+csum <- colSums(counts)
+casewt[,,2] <- counts[2:1,] / rep(csum, each=2)
+casewt[,,3] <- rep(csum, each=2)/counts
+casewt[,,4] <- 1/counts
+#renorm each so that the mean weight is 1
+for (i in 1:4) {
+    for (j in 1:2) {
+        meanwt <- sum(casewt[j,,i]*counts[j,])/ sum(counts[j,])
+        casewt[j,,i] <- casewt[j,,i]/ meanwt
+    }
+}
+
+
+###################################################
+### code chunk number 11: tests.Rnw:652-662
+###################################################
+tname <- c("Unadjusted", "Min var", "Empirical", "Yates")
+for (i in 1:2) {
+    for (j in 1:4) {
+        cat("&",tname[j], " & ",
+            paste(sprintf("%4.2f", casewt[i,,j]), collapse= " & "),
+             "\\\\\n")
+       if (j==1) cat(c("Female", "Male")[i])
+    }
+    if (i==1) cat("\\hline ")
+}
+
+
+###################################################
+### code chunk number 12: tests.Rnw:705-709
+###################################################
+temp <- 1/colSums(1/counts)
+temp <- temp/sum(temp)
+cat("Female", sprintf(" & %5.3f", -temp), "\\\\ \n")
+cat("Male",   sprintf(" & %5.3f", temp), "\\\\ \n")
+
+
+###################################################
+### code chunk number 13: treatment
+###################################################
+fit3 <- lm(flc ~ sex * age2, flchain)
+coef(fit3)
+contrast(c(0,1, 0,0,0,0, .2,.2,.2,.2), fit3) #Yates
+
+
+###################################################
+### code chunk number 14: SAS
+###################################################
+options(contrasts=c("contr.SAS", "contr.poly"))
+sfit1 <- lm(flc ~ sex, flchain)
+sfit2 <- lm(flc ~ sex + age2, flchain)
+sfit3 <- lm(flc ~ sex * age2, flchain)
+contrast(c(0,-1, 0,0,0,0, -.2,-.2,-.2,-.2), sfit3) # Yates for SAS coding
+
+
+###################################################
+### code chunk number 15: nstt
+###################################################
+options(contrasts = c("contr.treatment", "contr.poly")) #R default
+fit3a <- lm(flc ~ sex * age2, flchain)
+options(contrasts = c("contr.SAS", "contr.poly"))
+fit3b <- lm(flc~ sex * age2, flchain)
+options(contrasts=c("contr.sum", "contr.poly"))
+fit3c <- lm(flc ~ sex * age2, flchain)
+#
+nstt <- c(0,1, rep(0,8))  #test only the sex coef = the NSTT method
+temp <- rbind(unlist(contrast(nstt, fit3a)),
+              unlist(contrast(nstt, fit3b)),
+              unlist(contrast(nstt, fit3c)))[,1:2]
+dimnames(temp) <- list(c("R", "SAS", "sum"), c("effect", "SS"))
+print(temp)
+#
+drop1(fit3a, .~.)
+
+
+###################################################
+### code chunk number 16: anova
+###################################################
+options(show.signif.stars = FALSE) #exhibit intelligence
+sfit0  <- lm(flc ~ 1, flchain)
+sfit1b <- lm(flc ~ age2, flchain)
+anova(sfit0, sfit1b, sfit2, sfit3)
+
+
+###################################################
+### code chunk number 17: relrate
+###################################################
+options(contrasts= c("contr.treatment", "contr.poly")) # R default
+cfit0 <- coxph(Surv(futime, death) ~ interaction(sex, age2), flchain)
+cmean <- matrix(c(0, coef(cfit0)), nrow=2)
+cmean <- rbind(cmean, cmean[2,] - cmean[1,])
+dimnames(cmean) <- list(c("F", "M", "M/F ratio"), dimnames(counts)[[2]])
+signif(exp(cmean),3)
+
+
+###################################################
+### code chunk number 18: cox anova
+###################################################
+options(contrasts=c("contr.SAS", "contr.poly"))
+cfit1 <- coxph(Surv(futime, death) ~ sex, flchain)
+cfit2 <- coxph(Surv(futime, death) ~ age2 + sex, flchain)
+cfit3 <- coxph(Surv(futime, death) ~ sex + strata(age2), flchain)
+# Unadjusted
+summary(cfit1)
+#
+# LRT
+anova(cfit2)
+#
+# Stratified
+anova(cfit3)
+summary(cfit3)
+#
+# Wald test
+signif(summary(cfit2)$coefficients, 3)
+#
+anova(cfit1, cfit2)
+
+
+###################################################
+### code chunk number 19: coxfit
+###################################################
+wtindx <- with(flchain, tapply(death, list(sex, age2)))
+cfitpop <- coxph(Surv(futime, death) ~ sex, flchain,
+                robust=TRUE, weight = (casewt[,,3])[wtindx]) 
+cfityates <- coxph(Surv(futime, death) ~ sex, flchain,
+                robust=TRUE, weight = (casewt[,,4])[wtindx])
+#
+# Glue it into a table for viewing
+#
+tfun <- function(fit, indx=1) {
+    c(fit$coef[indx], sqrt(fit$var[indx,indx]))
+  }
+coxp <- rbind(tfun(cfit1), tfun(cfit2,5), tfun(cfitpop), tfun(cfityates))
+dimnames(coxp) <- list(c("Unadjusted", "Additive", "Empirical Population", 
+                         "Uniform Population"),
+                      c("Effect", "se(effect)"))
+signif(coxp,3)
+
+
+###################################################
+### code chunk number 20: tests.Rnw:1219-1235
+###################################################
+cfit4 <- coxph(Surv(futime, death) ~ sex * age2, flchain)
+# Uniform population contrast
+ysex <- c(0,-1, 0,0,0,0, -.2,-.2,-.2,-.2) #Yates for sex, SAS coding
+contrast(ysex[-1], cfit4) 
+# Verify using cell means coding
+cfit4b <- coxph(Surv(futime, death) ~ interaction(sex, age2), flchain)
+temp <- matrix(c(0, coef(cfit4b)),2)  # the female 50-59 is reference
+diff(rowMeans(temp)) #direct estimate of the Yates
+#
+temp2 <- rbind(temp, temp[2,] - temp[1,])
+dimnames(temp2) <- list(c('female', 'male', 'difference'), levels(age2))
+round(temp2, 3)
+#                        
+#
+# NSTT contrast
+contrast(c(1,0,0,0,0,0,0,0,0), cfit4)
+
+
+###################################################
+### code chunk number 21: nstt-lrt
+###################################################
+xmat4 <- model.matrix(cfit4)
+cfit4b <- coxph(Surv(futime, death) ~ xmat4[,-1], flchain)
+anova(cfit4b, cfit4)
+
+
+###################################################
+### code chunk number 22: ydata
+###################################################
+data1 <- data.frame(y = rep(1:6, length=20),
+                    x1 = factor(letters[rep(1:3, length=20)]),
+                    x2 = factor(LETTERS[rep(1:4, length=10)]),
+		    x3 = 1:20)
+data1$x1[19] <- 'c'
+data1 <- data1[order(data1$x1, data1$x2),]
+row.names(data1) <- NULL
+with(data1, table(x1,x2))
+     
+# data2 -- single missing cell
+indx <- with(data1, x1=='a' & x2=='D')
+data2 <- data1[!indx,]
+
+#data3 -- missing the diagonal
+data3 <- data1[as.numeric(data1$x1) != as.numeric(data1$x2),]
+
+
+###################################################
+### code chunk number 23: tests.Rnw:1411-1414
+###################################################
+options(contrasts=c("contr.sum", "contr.poly"))
+fit1 <- lm(y ~ x1*x2, data1)
+drop1(fit1, .~.)
+
+
+###################################################
+### code chunk number 24: tests.Rnw:1421-1427
+###################################################
+options(contrasts=c("contr.SAS", "contr.poly"))
+fit2 <- lm(y ~ x1*x2, data1)
+drop1(fit2, .~.)
+options(contrasts=c("contr.treatment", "contr.poly"))
+fit3 <- lm(y ~ x1*x2, data1)
+drop1(fit3, .~.)
+
+
+###################################################
+### code chunk number 25: att
+###################################################
+X <- model.matrix(fit2)
+ux <- unique(X)
+ux
+indx <- rep(1:3, c(4,4,4))
+effects <- t(rowsum(ux, indx)/4)  # turn sideways to fit the paper better
+effects
+yates <- effects[,-1] - effects[,1]
+yates
+
+
+###################################################
+### code chunk number 26: tests.Rnw:1467-1470
+###################################################
+wt <- solve(t(X) %*% X, t(X)) # twelve rows (one per coef), n columns
+casewt <- t(effects) %*% wt   # case weights for the three "row efffects"
+for (i in 1:3) print(tapply(casewt[i,], data1$x2, sum))
+
+
+###################################################
+### code chunk number 27: tests.Rnw:1507-1508
+###################################################
+fit4 <- lm(y ~ x1*x2 + x3, data=data1)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/adjcurve.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/adjcurve.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/adjcurve.R	(revision 2476)
@@ -0,0 +1,445 @@
+### R code from vignette source 'adjcurve.Rnw'
+
+###################################################
+### code chunk number 1: init
+###################################################
+options(continue="  ", width=60)
+options(SweaveHooks=list(fig=function() par(mar=c(4.1, 4.1, .3, 1.1))))
+pdf.options(pointsize=8) #text in graph about the same as regular text
+require(survival, quietly=TRUE)
+fdata <- flchain[flchain$futime > 7,]
+fdata$age2 <- cut(fdata$age, c(0,54, 59,64, 69,74,79, 89, 110),
+                  labels = c(paste(c(50,55,60,65,70,75,80),
+                                 c(54,59,64,69,74,79,89), sep='-'), "90+"))
+
+
+###################################################
+### code chunk number 2: adjcurve.Rnw:181-195
+###################################################
+group3 <- factor(1+ 1*(fdata$flc.grp >7) + 1*(fdata$flc.grp >9),
+                      levels=1:3, 
+                      labels=c("FLC < 3.38", "3.38 - 4.71", "FLC > 4.71"))
+age1 <- cut(fdata$age, c(49,59,69,79, 110))
+levels(age1) <- c(paste(c(50,60,70), c(59,69,79), sep='-'), '80+')
+temp1 <- table(group3, age1)
+temp2 <- round(100* temp1/rowSums(temp1))
+pfun <- function(x,y) {
+    paste(ifelse(x<1000, "\\phantom{0}", ""), x, " (", 
+          ifelse(y<10,   "\\phantom{0}", ""), y,  ") ", sep="")
+}
+cat(paste(c("FLC $<$ 3.38", pfun(temp1[1,], temp2[1,])), collapse=" & "), "\\\\\n")
+cat(paste(c("FLC 3.38--4.71", pfun(temp1[2,], temp2[2,])), collapse=" & "), "\\\\\n")
+cat(paste(c("FLC $>$ 4.71", pfun(temp1[3,], temp2[3,])), collapse=" & "), "\n")
+
+
+###################################################
+### code chunk number 3: flc1
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+fdata <- flchain[flchain$futime >=7,]
+fdata$age2 <- cut(fdata$age, c(0,54, 59,64, 69,74,79, 89, 110),
+                  labels = c(paste(c(50,55,60,65,70,75,80),
+                                 c(54,59,64,69,74,79,89), sep='-'), "90+"))
+fdata$group <- factor(1+ 1*(fdata$flc.grp >7) + 1*(fdata$flc.grp >9),
+                      levels=1:3, 
+                      labels=c("FLC < 3.38", "3.38 - 4.71", "FLC > 4.71"))
+		      
+sfit1 <- survfit(Surv(futime, death) ~ group, fdata)
+plot(sfit1, mark.time=F, col=c(1,2,4), lty=1, lwd=2,
+     xscale=365.25, xlab="Years from Sample", 
+     ylab="Survival")
+text(c(11.1, 10.5, 7.5), c(.88, .57, .4),
+     c("FLC < 3.38", "3.38 - 4.71", "FLC > 4.71"), col=c(1,2,4))     
+
+
+###################################################
+### code chunk number 4: adjcurve.Rnw:271-276
+###################################################
+
+tab1 <- with(fdata, table(group, age2, sex))
+cat("Low&", paste(tab1[1,,1], collapse=" &"), "\\\\\n")
+cat("Med&", paste(tab1[2,,1], collapse=" &"), "\\\\\n")
+cat("High&", paste(tab1[3,,1], collapse=" &"), "\\\\\n")
+
+
+###################################################
+### code chunk number 5: adjcurve.Rnw:281-284
+###################################################
+cat("Low&", paste(tab1[1,,2], collapse=" &"), "\\\\\n")
+cat("Med&", paste(tab1[2,,2], collapse=" &"), "\\\\\n")
+cat("High&", paste(tab1[3,,2], collapse=" &"), "\n")
+
+
+###################################################
+### code chunk number 6: flc2
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+temp <- with(fdata, table(group, age2, sex))
+dd <- dim(temp)
+
+# Select subjects
+set.seed(1978)
+select <- array(vector('list', length=prod(dd)), dim=dd)
+for (j in 1:dd[2]) {
+    for (k in 1:dd[3]) {
+        n <- temp[3,j,k] # how many to select
+        for (i in 1:2) {
+            indx <- which(as.numeric(fdata$group)==i &
+                          as.numeric(fdata$age2) ==j &
+                          as.numeric(fdata$sex) ==k)
+            select[i,j,k] <- list(sample(indx, n, replace=(n> temp[i,j,k])))
+        }
+        indx <- which(as.numeric(fdata$group)==3 &
+                      as.numeric(fdata$age2) ==j &
+                      as.numeric(fdata$sex) ==k)
+        select[3,j,k] <- list(indx)  #keep all the group 3 = high
+    }
+}
+
+data2 <- fdata[unlist(select),]
+sfit2 <- survfit(Surv(futime, death) ~ group, data2)
+plot(sfit2, mark.time=F, col=c(1,2,4), lty=1, lwd=2,
+     xscale=365.25, xlab="Years from Sample", 
+     ylab="Survival")
+lines(sfit1,  mark.time=F, col=c(1,2,4), lty=2, lwd=1,
+      xscale=365.25)
+legend(2,.4, levels(fdata$group), lty=1, col=c(1,2,4),
+               bty='n', lwd=2)
+
+
+###################################################
+### code chunk number 7: adjcurve.Rnw:390-396
+###################################################
+# I can't seem to put this all into an Sexpr
+z1 <- with(fdata,table(age, sex, group))
+z2<- apply(z1, 1:2, min)
+ztemp <-  3*sum(z2)
+z1b <- with(fdata, table(age>64, sex, group))
+ztemp2 <- sum(apply(z1b, 1:2, min))
+
+
+###################################################
+### code chunk number 8: adjcurve.Rnw:414-415
+###################################################
+survdiff(Surv(futime, death) ~ group, data=data2)
+
+
+###################################################
+### code chunk number 9: adjcurve.Rnw:443-449
+###################################################
+refpop <- uspop2[as.character(50:100),c("female", "male"), "2000"]
+pi.us  <- refpop/sum(refpop)
+age100 <- factor(ifelse(fdata$age >100, 100, fdata$age), levels=50:100)
+tab100 <- with(fdata, table(age100, sex, group))/ nrow(fdata)
+us.wt  <- rep(pi.us, 3)/ tab100  #new weights by age,sex, group
+range(us.wt)
+
+
+###################################################
+### code chunk number 10: adjcurve.Rnw:460-469
+###################################################
+temp <- as.numeric(cut(50:100, c(49, 54, 59, 64, 69, 74, 79, 89, 110)+.5))
+pi.us<- tapply(refpop, list(temp[row(refpop)], col(refpop)), sum)/sum(refpop)
+tab2 <- with(fdata, table(age2, sex, group))/ nrow(fdata)
+us.wt <- rep(pi.us, 3)/ tab2
+range(us.wt)
+index <- with(fdata, cbind(as.numeric(age2), as.numeric(sex), 
+                           as.numeric(group)))
+fdata$uswt <- us.wt[index]                      
+sfit3a <-survfit(Surv(futime, death) ~ group, data=fdata, weight=uswt) 
+
+
+###################################################
+### code chunk number 11: flc3a
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+tab1 <- with(fdata, table(age2, sex))/ nrow(fdata)
+matplot(1:8, cbind(pi.us, tab1), pch="fmfm", col=c(2,2,1,1),
+        xlab="Age group", ylab="Fraction of population",
+        xaxt='n')
+axis(1, 1:8, levels(fdata$age2))
+
+tab2 <- with(fdata, table(age2, sex, group))/nrow(fdata)
+tab3 <- with(fdata, table(group)) / nrow(fdata)
+
+rwt <- rep(tab1,3)/tab2 
+fdata$rwt <- rwt[index]  # add per subject weights to the data set
+sfit3 <- survfit(Surv(futime, death) ~ group, data=fdata, weight=rwt)
+
+temp <- rwt[,1,]   #show female data
+temp <- temp %*% diag(1/apply(temp,2,min))
+round(temp, 1) #show female data
+
+
+###################################################
+### code chunk number 12: flc3
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+plot(sfit3, mark.time=F, col=c(1,2,4), lty=1, lwd=2,
+     xscale=365.25, xlab="Years from Sample", 
+     ylab="Survival")
+lines(sfit3a,  mark.time=F, col=c(1,2,4), lty=1, lwd=1,
+      xscale=365.25)
+lines(sfit1,  mark.time=F, col=c(1,2,4), lty=2, lwd=1,
+      xscale=365.25)
+legend(2,.4, levels(fdata$group), lty=1, col=c(1,2,4),
+               bty='n', lwd=2)
+
+
+###################################################
+### code chunk number 13: adjcurve.Rnw:553-562
+###################################################
+id <- 1:nrow(fdata)
+cfit <- coxph(Surv(futime, death) ~ group + cluster(id), data=fdata, 
+              weight=rwt)
+summary(cfit)$robscore
+
+if (exists("svykm")) { #true if the survey package is loaded
+    sdes <- svydesign(id = ~0, weights=~rwt, data=fdata)
+    dfit <- svykm(Surv(futime, death) ~ group, design=sdes, se=TRUE)
+}
+
+
+###################################################
+### code chunk number 14: ipw
+###################################################
+options(na.action="na.exclude")
+gg <- as.numeric(fdata$group)
+lfit1 <- glm(I(gg==1) ~ factor(age2) * sex, data=fdata,
+            family="binomial")
+lfit2 <- glm(I(gg==2) ~ factor(age2) * sex, data=fdata,
+            family="binomial")
+lfit3 <- glm(I(gg==3) ~ factor(age2) * sex, data=fdata,
+            family="binomial")
+temp <- ifelse(gg==1, predict(lfit1, type='response'),
+               ifelse(gg==2, predict(lfit2, type='response'),
+                      predict(lfit3, type='response')))
+all.equal(1/temp, fdata$rwt)
+
+
+###################################################
+### code chunk number 15: flc4
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+lfit1b <-glm(I(gg==1) ~ age + sex, data=fdata,
+            family="binomial")
+lfit2b <- glm(I(gg==2) ~ age +sex, data=fdata,
+            family="binomial")
+lfit3b <- glm(I(gg==3) ~ age + sex, data=fdata,
+            family="binomial")
+
+# weights for each group using simple logistic
+twt <- ifelse(gg==1, 1/predict(lfit1b, type="response"),
+              ifelse(gg==2, 1/predict(lfit2b, type="response"),
+                                     1/predict(lfit3b, type="response")))
+tdata <- data.frame(fdata, lwt=twt)
+
+#grouped plot for the females
+temp <- tdata[tdata$sex=='F',]
+temp$gg <- as.numeric(temp$group)
+c1 <- with(temp[temp$gg==1,], tapply(lwt, age2, sum))
+c2 <- with(temp[temp$gg==2,], tapply(lwt, age2, sum))
+c3 <- with(temp[temp$gg==3,], tapply(lwt, age2, sum))
+
+xtemp <- outer(1:8, c(-.1, 0, .1), "+") #avoid overplotting
+ytemp <- 100* cbind(c1/sum(c1), c2/sum(c2), c3/sum(c3))
+
+matplot(xtemp, ytemp, col=c(1,2,4),
+        xlab="Age group", ylab="Weighted frequency (%)", xaxt='n')
+ztab <- table(fdata$age2)
+points(1:8, 100*ztab/sum(ztab), pch='+', cex=1.5, lty=2)
+# Add the unadjusted
+temp <- tab2[,1,]
+temp <- scale(temp, center=F, scale=colSums(temp))
+matlines(1:8, 100*temp, pch='o', col=c(1,2,4), lty=2)
+axis(1, 1:8, levels(fdata$age2))
+
+
+###################################################
+### code chunk number 16: adjcurve.Rnw:694-704
+###################################################
+# compute new weights
+wtscale <- table(fdata$group)/ tapply(fdata$rwt, fdata$group, sum)
+wt2 <- c(fdata$rwt * wtscale[fdata$group])
+c("rescaled cv"= sd(wt2)/mean(wt2), "rwt cv"=sd(fdata$rwt)/mean(fdata$rwt))
+
+cfit2a <- coxph(Surv(futime, death) ~ group + cluster(id),
+                data=fdata, weight= rwt)
+cfit2b <- coxph(Surv(futime, death) ~ group + cluster(id),
+                data=fdata, weight=wt2) 
+round(c(cfit2a$rscore, cfit2b$rscore),1)
+
+
+###################################################
+### code chunk number 17: strata
+###################################################
+allfit <- survfit(Surv(futime/365.25, death) ~ group + 
+                               age2 + sex, fdata)
+temp <- summary(allfit)$table
+temp[1:6, c(1,4)] #abbrev printout to fit page
+
+
+###################################################
+### code chunk number 18: flc5
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+xtime <- seq(0, 14, length=57)  #four points/year for 14 years
+smat <- matrix(0, nrow=57, ncol=3) # survival curves
+serr <- smat  #matrix of standard errors
+pi <- with(fdata, table(age2, sex))/nrow(fdata)  #overall dist
+for (i in 1:3) {
+    temp <- allfit[1:16 + (i-1)*16] #curves for group i
+    for (j in 1:16) {
+        stemp <- summary(temp[j], times=xtime, extend=T)
+        smat[,i] <- smat[,i] + pi[j]*stemp$surv
+        serr[,i] <- serr[,i] + pi[i]*stemp$std.err^2
+        }
+    }
+serr <- sqrt(serr)
+
+matplot(xtime, smat, type='l', lwd=2, col=c(1,2,4), ylim=c(0,1),
+        lty=1, xlab="Years from sample", ylab="Survival")
+lines(sfit1, mark.time=F, lty=2, col=c(1,2,4), xscale=365.25)
+
+
+###################################################
+### code chunk number 19: adjcurve.Rnw:829-830
+###################################################
+survdiff(Surv(futime, death) ~ group + strata(age2, sex), fdata)
+
+
+###################################################
+### code chunk number 20: flc8
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+cfit4a <- coxph(Surv(futime, death) ~ age + sex + strata(group),
+               data=fdata)
+surv4a <- survfit(cfit4a)
+plot(surv4a, col=c(1,2,4), mark.time=F, xscale=365.25,
+     xlab="Years post sample", ylab="Survival")
+
+
+###################################################
+### code chunk number 21: flc6
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+tab4a <- with(fdata, table(age, sex))
+uage <- as.numeric(dimnames(tab4a)[[1]])
+tdata <- data.frame(age = uage[row(tab4a)],
+                    sex = c("F","M")[col(tab4a)],
+                    count= c(tab4a))
+tdata3 <- tdata[rep(1:nrow(tdata), 3),]  #three copies
+tdata3$group <- factor(rep(1:3, each=nrow(tdata)), 
+                       labels=levels(fdata$group))
+sfit4a <- survexp(~group, data=tdata3, weight = count, 
+                    ratetable=cfit4a) 
+
+plot(sfit4a, mark.time=F, col=c(1,2,4), lty=1, lwd=2,
+     xscale=365.25, xlab="Years from Sample", 
+     ylab="Survival")
+lines(sfit3,  mark.time=F, col=c(1,2,4), lty=2, lwd=1,
+      xscale=365.25)
+legend(2,.4, c("FLC low", "FLC med", "FLC high"), lty=1, col=c(1,2,4),
+               bty='n', lwd=2)
+
+
+###################################################
+### code chunk number 22: adjcurve.Rnw:941-948
+###################################################
+tfit <- survfit(cfit4a, newdata=tdata, se.fit=FALSE)
+curves <- vector('list', 3)
+twt <- c(tab4a)/sum(tab4a)
+for (i in 1:3) {
+    temp <- tfit[i,]
+    curves[[i]] <- list(time=temp$time, surv= c(temp$surv %*% twt))
+    }
+
+
+###################################################
+### code chunk number 23: flc6b
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+par(mfrow=c(1,2))
+cfit4b <- coxph(Surv(futime, death) ~ age*sex + strata(group),
+                fdata)
+sfit4b <- survexp(~group, data=tdata3, ratetable=cfit4b, weights=count)
+plot(sfit4b, fun='event', xscale=365.25,
+     xlab="Years from sample", ylab="Deaths")
+lines(sfit3, mark.time=FALSE, fun='event', xscale=365.25, lty=2)
+lines(sfit4a, fun='event', xscale=365.25, col=2)
+
+temp <- median(fdata$sample.yr)                                
+mrate <- survexp.mn[as.character(uage),, as.character(temp)]
+crate <- predict(cfit4b, newdata=tdata, reference='sample', type='lp')
+crate <- matrix(crate, ncol=2)[,2:1] # mrate has males then females, match it
+# crate contains estimated log(hazards) relative to a baseline,
+#  and mrate absolute hazards, make both relative to a 70 year old
+for (i in 1:2) {
+    mrate[,i] <- log(mrate[,i]/ mrate[21,2])
+    crate[,i] <- crate[,i] - crate[21,2]
+    }
+matplot(mrate, crate, col=2:1, type='l')
+abline(0, 1, lty=2, col=4)
+
+
+###################################################
+### code chunk number 24: adjcurve.Rnw:1019-1027
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+obs <- with(fdata, tapply(death, list(age2, sex, group), sum))
+pred<- with(fdata, tapply(predict(cfit4b, type='expected'),
+              list(age2, sex, group), sum))
+excess <- matrix(obs/pred, nrow=8)  #collapse 3 way array to 2
+dimnames(excess) <- list(dimnames(obs)[[1]], c("low F", "low M",
+                                               "med F", "med M",
+                                               "high F", "high M"))
+round(excess, 1)
+
+
+###################################################
+### code chunk number 25: adjcurve.Rnw:1043-1052
+###################################################
+cfit5a <- coxph(Surv(futime, death) ~ strata(group):age +sex, fdata)
+cfit5b <- coxph(Surv(futime, death) ~ strata(group):(age +sex), fdata)
+cfit5c <- coxph(Surv(futime, death) ~ strata(group):(age *sex), fdata)
+
+options(show.signif.stars=FALSE) # see footnote
+anova(cfit4a, cfit5a, cfit5b, cfit5c)
+temp <- coef(cfit5a)
+names(temp) <- c("sex", "ageL", "ageM", "ageH")
+round(temp,3)
+
+
+###################################################
+### code chunk number 26: flc7
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+pred5a <- with(fdata, tapply(predict(cfit5a, type='expected'),
+              list(age2, sex, group), sum))
+excess5a <- matrix(obs/pred5a, nrow=8,
+                   dimnames=dimnames(excess))
+round(excess5a, 1)
+
+sfit5  <- survexp(~group,  data=tdata3, ratetable=cfit5a, weights=count)
+plot(sfit3, fun='event', xscale=365.25, mark.time=FALSE, lty=2, col=c(1,2,4),
+     xlab="Years from sample", ylab="Deaths")
+lines(sfit5, fun='event', xscale=365.25, col=c(1,2,4))
+
+
+###################################################
+### code chunk number 27: flc8
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+# there is a spurious warning from the model below: R creates 3 unneeded
+# columns in the X matrix
+cfit6 <- coxph(Surv(futime, death) ~ strata(group):age2 + sex, fdata)
+
+saspop <- with(fdata, expand.grid(age2= levels(age2), sex= levels(sex),
+                                  group = levels(group)))
+
+sfit6  <- survexp(~group,  data=saspop, ratetable=cfit6)
+plot(sfit6, fun='event', xscale=365.25, mark.time=FALSE, lty=1, col=c(1,2,4),
+     xlab="Years from sample", ylab="Deaths")
+lines(sfit5, fun='event', xscale=365.25, lty=2, col=c(1,2,4))
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/compete.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/compete.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/tests.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/tests.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/tests.Rnw	(revision 2476)
@@ -0,0 +1,2050 @@
+\documentclass{article}[11pt]
+\usepackage{Sweave}
+\usepackage{amsmath}
+\addtolength{\textwidth}{1in}
+\addtolength{\oddsidemargin}{-.5in}
+\setlength{\evensidemargin}{\oddsidemargin}
+%\VignetteIndexEntry{Cox models and ``type 3'' Tests}
+
+\SweaveOpts{prefix.string=tests,width=6,height=4, keep.source=TRUE, fig=FALSE}
+% Ross Ihaka suggestions
+\DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em}
+\DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em}
+\fvset{listparameters={\setlength{\topsep}{0pt}}}
+\renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}}
+
+\SweaveOpts{width=6,height=4}
+\setkeys{Gin}{width=\textwidth}
+
+<<echo=FALSE>>=
+options(continue="  ", width=60)
+options(SweaveHooks=list(fig=function() par(mar=c(4.1, 4.1, .3, 1.1))))
+pdf.options(pointsize=8) #text in graph about the same as regular text
+options(contrasts=c("contr.treatment", "contr.poly")) #reset default
+@ 
+
+\title{Contrasts, populations, and ``type III'' tests}
+\author{Terry M Therneau \\ \emph{Mayo Clinic}}
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\myfig}[1]{\includegraphics[height=!, width=\textwidth]
+                        {tests-#1.pdf}}
+
+\newcommand{\ybar}{\overline{y}}
+
+\begin{document}
+  \maketitle
+  \tableofcontents
+
+\section{Introduction}
+\begin{table} \centering
+  \begin{tabular} {crrrrr} 
+    & \multicolumn{5}{c}{Group} \\
+    &A & B & C & D & E \\
+<<echo=FALSE, results=tex>>=
+library(survival)
+age2 <- cut(flchain$age, c(49, 59, 69, 79, 89, 120),                   
+            labels=c("50-59", "60-69", "70-79", "80-89", "90+"))
+
+flchain$flc <- flchain$kappa + flchain$lambda                    
+tab1 <- with(flchain, tapply(flc, list(sex, age2), mean))
+cat("female&" , paste(round(tab1[1,], 1), collapse=" & "), "\\\\ \n")
+cat("male &"  , paste(round(tab1[2,], 1), collapse=" & "), "\n")
+@ 
+\end{tabular}
+ \caption{Fitted values from a linear model with two factors.}
+ \label{tab1}
+ \end{table}
+
+One of the annoying design shortfalls of R, inherited from S, is how 
+modeling functions deal with categorical predictors.
+For a simple model such as \code{y ~ age + treatment} where the latter is
+a categorical, we will normally want to compare pairs of treatments.
+One way to do this is to set up the columns of 0/1 dummy variables that
+represent treatment so that the comparisons of interest appear directly
+as coefficients in the fit. If for instance there were three treatments,
+a control and two active agents then the two natural comparisons are
+control vs. agent1 and control vs. agent2.
+R does this for us without a hitch and nearly automatically, with several
+options to help control exactly how said 0/1 variables are created.
+But what if there were 4 treatments and we want to look at all 6 pairwise
+comparisons?  This cannot be set up so that all 6 will appear as one
+coefficient in the fit, 
+one needs a mechanism to compute these 6 estimates or \emph{contrasts} after the
+fit. 
+As a more complex case consider the simple data shown in table \ref{tab1}, 
+which are fitted values
+from a linear model on two factors along with their interaction.
+There are any number of comparisons that we might want to make 
+in the data set: a trend test across the groups, overall or separately for
+each sex, all pairwise comparisons between groups, etc.
+A standard mechanism for this after-the-fit estimates has been lacking.
+There are several addons that address parts of the question such as
+\code{pairwise.t.tests} or \code{TukeyHSD}, but they are not applicable to
+coxph models.  
+
+The \code{yates} function was motivated by the more perplexing problem of
+population contrasts, which it also addresses.
+
+
+
+
+This note started with an interchange on the R-help.
+A user asked ``how do I do a type III test using the Cox model'', and I
+replied that this was not a well defined question.
+If he/she could define exactly what it was that they were after, then
+I would look into it.
+To which the response was that ``SAS does it''.
+A grant deadline was looming so the discussion did not get any further
+at that point, but it eventually led to a much longer investigation
+on my part, which is summarized in this note.  
+There are three central ideas as it turns out: populations, computation,
+and the mapping linear models ideas onto the Cox model.
+
+The first idea, and perhaps the central one, is using the model fit from 
+a current data set to predict for a new population.  
+This plays an important role in predicted survival curves, see for instance
+the vignette on that topic or chapter 10 of our book \cite{Therneau00};
+recognizing that ``type 3'' tests are simply another variant on that theme was
+a pivotal step in my understanding.  
+This immediately leads to the important subtopic of ``prediction for
+\emph{which} population''.  The SAS type 3 computations corresponds to a very 
+particular and inflexible choice.
+
+The second theme is computational: given some summary measure and a population
+for which you wish to predict it, the result will be some sort of weighted
+average.  There are two primary ways to set up this computation.  In a linear
+model one of them can be reduced to a particular contrast 
+$C \hat\beta$ in the fitted coefficients $\hat\beta$, which is an appealing
+choice since follow-up computations such as the variance of the estimate
+become particularly simple.  A common, simple, but unreliable algorithm
+for creating $C$ has been a major source of confusion (hereafter referred to
+as the NSTT: not safe type three).
+
+The last theme is how the linear models formulae map to the Cox model case.
+In particular, there is a strong temptation to use $C \hat\beta$ with
+$C$ taken from linear models machinery and $\hat\beta$ from a fitted
+Cox model.  The problem is that this implicitly requires a replacement
+of $E[\exp(X)]$ with $\exp(E[X])$.
+For a Cox model $C \beta$ is certainly a valid statistic for any $C$,
+we just have no clear idea of what it is testing.
+
+For the impatient readers among you I'll list the main conclusions
+of this report at the start.
+\begin{itemize}
+  \item SAS type 3 predicts for a population with a uniform distribution
+    across all categorical predictors.
+    Scholarly papers discussing fundamental issues with using
+        such an approach as a default analysis method
+        have appeared almost biannually in the statistics
+        literature, with little apparent effect on the usage of the 
+        method. 
+    SAS documentation of type 3 is almost entirely focused on the
+    algorithm they use for computing $C$ and ignores the population issue.
+  \item Population predictions very often make sense, including the
+    question the type 3 approach is attempting to address.  There are
+    valid ways to compute these estimates for a Cox model, they are
+    closely related the inverse probability weight (IPW) methods used
+    in propensity scores and marginal structural models.
+  \item The algorithm used to compute $C$ by the SAS glm procedure is 
+    sophisticated and reliable. 
+    The SAS phreg procedure uses the linear models approach
+    of $C \hat\beta$ to compute a ``type 3'' contrast, 
+    with $C$ computed via the NSTT.
+    The combination is a statistical disaster.     
+    (This is true for SAS version 9.4; I will update this note if 
+    things change.)
+\end{itemize} 
+    
+\section{Linear approximations and the Cox model}
+\label{sect:transfer}
+One foundation of my concern has to do with the relationship between
+linear models and coxph.
+The solution to the Cox model equations
+can be represented as an iteratively reweighted least-squares problem, with
+an updated weight matrix and adjusted dependent variable at each iteration,
+rather like a GLM model.
+This fact has been rediscovered multiple times, and leads to the notion
+that since the last iteration of the fit \emph{looks} 
+just like a set of least-squares
+equations, then various least squares ideas could be carried over to the
+proportional hazards model by simply writing them out using these final terms.
+
+In practice, sometimes this works and sometimes it doesn't.  
+The Wald statistic is one example of the former type, which
+is completely reliable as long as the coefficients $\beta$ are not too  
+large\footnote{
+  In practice failure only occurs in the rare case that one of the coefficients 
+is tending to infinity.  However, in that case the failure is complete: 
+the likelihood
+ratio and score tests behave perfectly well but the Wald test is worthless.}.
+A counter example is found in two ideas used to examine model
+adequacy: adjusted variable plots and constructed variable plots, each
+of which was carried over to the Cox model case by reprising the 
+linear-model equations.
+After a fair bit of exploring I found neither is worth doing
+\cite{Therneau00}.
+Copying over a linear models formula simply did not work in this case.
+
+\begin{figure}
+  \myfig{data}
+  \caption{Average free light chain for males and females.  The figure
+    shows both a smooth and the means within deciles of age.}
+  \label{fig:data}
+  \end{figure}
+
+\section{Data set}
+We will motivate our discussion with the simple case of a two-way
+analysis.
+The \code{flchain} data frame contains the results of a small number
+of laboratory tests done on a large fraction of the 1995
+population of Olmsted County, Minnesota aged 50 or older
+\cite{Kyle06, Dispenzieri12}.
+The R data set contains a 50\% random sample of this larger study
+and is included as a part of the survival package.
+The primary purpose of the study was to measure the amount of
+plasma immunoglobulins and its components.  
+Intact immunoglobulins are composed of a heavy chain and light chain
+portion.  In normal subjects there is overproduction of the light chain 
+component by the immune cells leading to a small amount of 
+\emph{free light chain}  in the circulation.
+Excessive amounts of free light chain (FLC) are thought to be a marker of
+disregulation in the immune system.
+Free light chains have two major forms denoted as kappa and lambda,
+we will use the sum of the two.
+
+An important medical question is whether high levels of FLC have an
+impact on survival, which will be explored using a Cox model.  
+To explore linear models we will compare FLC values between males
+and females.
+A confounding factor is that free light chain values rise with age, in
+part because it is eliminated by the kidneys and renal function
+declines with age.
+The age distribution of males and females differs, so we
+will need to adjust our simple comparison between the sexes
+for age effects.
+The impact of age on mortality is of course even greater
+and so correction for the age imbalance is is critical when exploring
+the impact of FLC on survival.
+
+Figure \ref{fig:data} shows the trend in free light chain values
+as a function of age.
+For illustration of linear models using factors, we have also
+created a categorical age value using deciles of age.
+The table of counts shows that the sex distribution becomes increasingly
+unbalanced at the older ages, from about 1/2 females in the youngest
+group to a 4:1 ratio in the oldest.
+<<data, fig=TRUE, include=FALSE>>=
+library(survival)
+library(splines)
+age2 <- cut(flchain$age, c(49, 59, 69, 79, 89, 120),                   
+            labels=c("50-59", "60-69", "70-79", "80-89", "90+"))
+counts <- with(flchain, table(sex, age2))
+counts
+#
+flchain$flc <- flchain$kappa + flchain$lambda                    
+male <- (flchain$sex=='M')
+mlow <- with(flchain[male,],  smooth.spline(age, flc))
+flow <- with(flchain[!male,], smooth.spline(age, flc))
+plot(flow, type='l', ylim=range(flow$y, mlow$y),
+     xlab="Age", ylab="FLC")
+lines(mlow, col=2)
+cellmean <- with(flchain, tapply(flc, list(sex, age2), mean, na.rm=T))
+matpoints(c(55,65,75, 85, 95), t(cellmean), pch='fm', col=1:2)
+
+round(cellmean, 2)
+@
+Notice that the male/female difference in FLC varies with age, 
+\Sexpr{round(cellmean[1,1],1)} versus \Sexpr{round(cellmean[2,1],1)}
+at age 50--59 and \Sexpr{round(cellmean[1,5],1)} versus
+ \Sexpr{round(cellmean[2,5],1)} at age 90.
+The data does not fit a simple additive model; there are ``interactions''
+to use statistical parlance.
+An excess of free light chain is thought to be at least partly a reflection of 
+immune senescence, and due to our hormonal backgrounds men and women simply
+do not age in quite the same way.
+
+\section{Population averages}
+The question of how to test for a main effect in the presence of interaction
+is an old one.
+At one time this author considered the phrase ``main effect in the presence
+of interaction'' to be an oxymoron, but long experience with clinical
+data sets has led me to the opposite conclusion.
+Real data always has interactions.  
+The treatment effect of a drug will not be
+exactly the same for old and young, thin and obese, physically active and
+sedentary, etc.  
+Explicit recognition of this is
+an underlying rationale of the current drive towards ``personalized medicine'',
+though that buzzword often focuses only on genetic differences.
+Any given data set may often be too small to explore these variations and
+our statistical models will of necessity smooth over the complexity,
+but interactions are nevertheless still present.
+
+Consider the data shown in figure \ref{fig:data} above, which shows a particular
+laboratory test value by age and sex.  
+We see that the sex effect varies by age.  
+Given this, what could be meant by a ``main effect'' of sex? 
+One sensible approach is to select a fixed \emph{population} for the
+ages, and then compute the
+average sex effect over that population.
+Indeed this is precisely what many computations do behind the scenes,
+e.g. the ``type 3'' estimates found in linear models.
+
+There are three essential components to the calculation: a reference
+population for the confounders, a summary measure of interest, and
+a computational algorithm.  
+To understand how linear models methods may (or may not) extend to the
+proportional hazards model it is useful consider all three facets;
+each is revealing.
+
+Four possible choices for a target population of ages are given below.
+\begin{enumerate}
+  \item Empirical: the age distribution of the sample at hand, also called
+    the data distribution. In our sample this would be the age distribution
+    of all \Sexpr{nrow(flchain)} subjects, ignoring sex.
+  \item SAS: a uniform distribution is assumed over all categorical
+    adjusters, and the data distribution for continuous ones.
+  \item External reference: a fixed external population, e.g. the age 
+    distribution of the US 2010 census.  
+  \item MVUE: minimum variance unbiased; the implicit population corresponding
+    to a multivariate least squares fit.
+\end{enumerate}
+Method 3 is common in epidemiology, method 1 is found in traditional
+survey sampling and in other common cases as we will see below.
+The type 3 estimates of SAS correspond to population 2.
+If there an interaction between two categorical variables x1 and x2, then
+the uniform distribution is taken to be over all combinations 
+formed by the pair, and similarly for higher order interactions.
+
+\section{Linear models and populations}
+If we ignore the age effect, then everyone agrees on the best estimate
+of mean FLC: the simple average of FLC values
+within each sex.
+The male-female difference is estimated as the difference of these means.
+This is what is obtained from a simple linear regression of FLC on sex.
+Once we step beyond this and adjust for age, 
+the relevant linear models can be looked
+at in several ways; we will explore three of them below:
+contrasts, case weights, and nesting.
+This ``all roads lead to Rome'' property of linear models is one of their
+fascinating aspects, at least mathematically.
+
+\subsection{Case weights}
+\begin{figure}
+  \myfig{pop}
+  \caption{Three possible adjusting populations for the FLC data
+    set, a empirical reference in black, least squares based
+  one in red, and the US 2000 reference population as `u'.}
+  \label{fig:pop}
+\end{figure}
+
+How do we form a single number summary of 
+``the effect of sex on FLC''?
+Here are four common choices.
+\begin{enumerate}
+  \item Unadjusted.  The mean for males minus the mean for females.
+    The major problem with this is that a difference in age distributions
+    will bias the result.  Looking at figure \ref{fig:data} imagine that
+    this were two treatments A and B rather than male/female, and that
+    the upper one had been given to predominantly 50-65 year olds and the 
+    lower predominantly to subjects over 80.  An unadjusted difference
+    would actually reverse the true ordering of the curves.
+  \item Population adjusted.  An average difference between the curves,
+    weighted by age. Three common weightings are
+    \begin{enumerate}
+      \item External reference.  It is common practice in epidemiology
+        to use an external population as the reference age distribution,
+        for instance the US 2000 census distribution.  This aids in 
+        comparing results between studies.
+      \item Empirical population.  The overall population structure of the 
+        observed data.
+      \item Least squares.  The population structure that minimizes the
+        variance of the estimated female-male difference.
+    \end{enumerate}
+\end{enumerate}
+The principle idea behind case weights is to reweight the data such that
+confounders become balanced, i.e., ages are balanced when examining the
+sex effect and sex is balanced when examining age.
+Any fitted least squares estimate
+can be rewritten as a weighted sum of the data points with weight
+matrix $W= (X'X)^{-1}X'$. $W$ has $p$ rows, one per coefficient,
+each row is the weight vector for
+the corresponding element of $\hat\beta$.  So we can backtrack and
+see what population assumption was underneath any given fit
+by looking at the weights for the relevant coefficient(s).
+Consider the two fits below. 
+In both the second coefficient is an estimate of the overall 
+difference in FLC values between the sexes.  
+(The relationship in figure \ref{fig:data} is clearly curved so we have
+foregone the use of a simple linear term for age; there is no point
+in fitting an obviously incorrect model.)
+Since $\beta_2$ is a contrast the underlying weight vectors have
+negative values for the females and positive for the males.
+<<>>=
+us2000 <- rowSums(uspop2[51:101,,'2000'])
+
+fit1 <- lm(flc ~ sex, flchain, x=TRUE)
+fit2 <- lm(flc ~ sex + ns(age,4), flchain, x=TRUE)
+c(fit1$coef[2], fit2$coef[2])
+
+wt1  <- solve(t(fit1$x)%*%fit1$x, t(fit1$x))[2,] # unadjusted
+wt2 <-  solve(t(fit2$x)%*%fit2$x, t(fit2$x))[2,] # age-adjusted
+table(wt1, flchain$sex)
+@ 
+
+To reconstruct the implied population density, one can
+use the density function with \code{wt1} or \code{wt2} as
+the case weights.
+Examination of \code{wt1} immediately shows that the values
+are $-1/n_f$ for females and $1/n_m$ for males where
+$n_f$ and $n_m$ are number of males and females, respectively.
+The linear model \code{fit1} is the simple difference in male
+and female means; the implied population structure for
+males and females is the unweighted density of each.
+
+Because this data set is very large and age is coded in years
+we can get a density estimate for fit2 by simple counting.
+The result is coded below and shown in figure \ref{fig:pop}.
+The empirical reference and least squares reference are nearly
+identical.  This is not a surprise.
+Least squares fits produce minimum variance unbiased estimates (MVUE),
+and the variance of a weighted average is minimized by using weights
+proportional to the sample size, thus the MVUE estimate will give highest
+weights to those ages with a lot of people.
+The weights are not \emph{exactly} proportional to sample size for
+each age.
+As we all know, for a given sample size $n$ a study comparing two groups 
+will have
+the most power with equal allocation between the groups.  
+Because the M/F ratio is more unbalanced at the right edge of the age
+distribution the MVUE estimate gives just a little less weight there,
+but the difference between it and the overall data set population
+will be slight for all but those pathological
+cases where there is minimal overlap between M/F age distributions.
+(And in that case the entire discussion about what ``adjustment'' can or
+should mean is much more difficult.)
+<<pop, fig=TRUE, include=FALSE>>=
+us2000 <- rowSums(uspop2[51:101,,'2000'])
+tab0 <- table(flchain$age)
+tab2 <- tapply(abs(wt2), flchain$age, sum)
+matplot(50:100, cbind(tab0/sum(tab0), tab2/sum(tab2)),
+        type='l', lty=1,
+        xlab="Age", ylab="Density")
+
+us2000 <- rowSums(uspop2[51:101,,'2000'])
+matpoints(50:100, us2000/sum(us2000), pch='u')
+legend(60, .02, c("Empirical reference", "LS reference"),
+       lty=1, col=1:2, bty='n')
+@ 
+The LS calculation does a population adjustment automatically
+for us behind the scenes via the matrix algebra of linear models.
+If we try to apply population reference adjustment directly
+a problem immediately arises: in the US reference 
+\Sexpr{round(100*us2000[46]/sum(us2000),2)}\% of the population is
+aged 95 years, and our sample has no 95 year old males; it is
+not possible to re weight the sample so as to exactly match the
+US population reference.
+This occurs in any data set that is divided into small strata.
+The traditional epidemiology approach to this is to use wider
+age intervals of 5 or 10 years.
+Weights are chosen for each
+age/sex strata such that the
+sum of weights for females = sum of weights for males within each age
+group (balance), and the total sum of weights in an age group is 
+equal to the reference population.  The next section goes into this further.
+An increasingly popular approach for producing results that are standardized
+to the empirical reference population (i.e. the data distribution)
+is to use a smoothed age effect, obtained through 
+inverse probability weights which are based on logistic regression,
+e.g. in the causal models literature and propensity score literature.
+This approach is illustrated in a vignette on adjusted survival
+curves which is also in the survival package.
+
+\subsection{Categorical predictors and contrasts}
+When the adjusting variable or variables are categorical --- a factor in R or a 
+class variable in SAS --- then two more aspects come into play.
+The first is that any estimate of interest can be written in terms
+of the cell means. 
+Formally, the cell means are a \emph{sufficient statistic} for the data.
+For our data set and using the categorized variable \code{age2}
+let $\theta_{ij}$ parameterize these means.
+$$
+  \begin{tabular}{cccccc}
+    &50--59 & 60--69 & 70-79 & 80-89 & 90+ \\ \hline
+ Female & $\theta_{11}$ & $\theta_{12}$ & $\theta_{13}$& $\theta_{14}$& 
+                    $\theta_{15}$ \\
+ Male & $\theta_{21}$ & $\theta_{22}$ & $\theta_{23}$& $\theta_{24}$ &
+                    $\theta_{25}$ \\
+\end{tabular}
+  $$
+For a design with three factors we will have $\theta_{ijk}$, etc.
+Because it is a sufficient statistic, 
+any estimate or contrast of interest can be written as a weighted sum of the
+$\theta$s. 
+Formulas for the resulting estimates along with their variances and
+tests were worked out by Yates in 1934 \cite{Yates34} and are often referred
+to as a Yates weighted means estimates.  
+For higher order designs the computations can be rearranged in a form that
+is manageable on a desk calculator, and this is in fact the primary point of
+that paper.  
+(Interestingly, his computational process turns out to be closely 
+related to the fast Fourier transform.)
+
+The second facet of categorical variables is that another adjustment 
+is added to the list of common estimates:
+\begin{enumerate}
+  \item Unadjusted 
+  \item Population adjusted
+    \begin{enumerate}
+      \item External reference
+      \item Empirical (data set) reference
+      \item Least squares
+      \item Uniform. A population in which each combination of the
+        factors has the same frequency of occurrence.
+    \end{enumerate}
+\end{enumerate}
+
+The uniform population plays a special role in the case of designed
+experiments, where equal allocation corresponds to the optimal study
+design.  The Yates estimates are particularly simple in this
+case.  For a hypothetical population with equal numbers in each
+age category the estimated average FLC for females turns out to be
+$\mu_f = \sum_j \theta_{1j} /5$ 
+and the male - female contrast is $\sum_j(\theta_{2j}-\theta_{1j})/5$.
+We will refer to these as the ``Yates'' estimates and contrast for
+an effect.
+Conversely, the estimated age effects, treating sex as a confounding
+effect and assuming an equal distribution of females and males as the
+reference population, gives 
+an estimated average FLC for the 60-69 year olds of
+$\mu_{60-69}= (\theta_{12} + \theta_{22})/2$, and etc for the other age
+groups.
+
+We can obtain the building blocks for Yates estimates by using the
+interaction function and omitting the intercept.
+<<yfit>>=
+yatesfit <- lm(flc ~ interaction(sex, age2) -1, data=flchain)
+theta <- matrix(coef(yatesfit), nrow=2)
+dimnames(theta) <- dimnames(counts)
+round(theta,2)
+@ 
+For a linear model fit,
+any particular weighted average of the coefficients along with its
+variance and the corresponding sums of squares can be computed using
+the \code{contrast} function given below.
+Let $C$ be a contrast matrix with $k$ rows, each containing
+one column per coefficient.
+Then $C\theta$ is a vector of length $k$ containing the weighted
+averages and
+$V = \hat\sigma^2 C (X'X)^{-1}C'$ is its variance matrix.
+The sums of squares is the increase in the sum of squared residuals if the
+fit were restricted to the subspace $C\theta =0$.
+Formulas are from chapter 5 of Searle \cite{Searle71}.
+Some authors reserve the word \emph{contrast} for the case where each
+row of $C$ sums to zero and use \emph{estimate} for all others;
+I am being less restrictive since the same computation serves for
+both.
+<<>>=
+qform <- function(beta, var) # quadratic form b' (V-inverse) b
+    sum(beta * solve(var, beta))
+contrast <- function(cmat, fit) {
+    varmat <- vcov(fit)
+    if (class(fit) == "lm") sigma2 <- summary(fit)$sigma^2              
+    else sigma2 <- 1   # for the Cox model case
+
+    beta <- coef(fit)
+    if (!is.matrix(cmat)) cmat <- matrix(cmat, nrow=1)
+    if (ncol(cmat) != length(beta)) stop("wrong dimension for contrast")
+
+    estimate <- drop(cmat %*% beta)  #vector of contrasts
+    ss <- qform(estimate, cmat %*% varmat %*% t(cmat)) *sigma2
+    list(estimate=estimate, ss=ss, var=drop(cmat %*% varmat %*% t(cmat)))
+    }
+
+yates.sex <- matrix(0, 2, 10)
+yates.sex[1, c(1,3,5,7,9)] <-  1/5    #females
+yates.sex[2, c(2,4,6,8,10)] <- 1/5    #males
+
+contrast(yates.sex, yatesfit)$estimate  # the estimated "average" FLC for F/M
+contrast(yates.sex[2,]-yates.sex[,1], yatesfit) # male - female contrast
+@
+
+<<echo=FALSE>>=
+# Create the estimates table -- lots of fits
+emat <- matrix(0., 6, 3)
+dimnames(emat) <- list(c("Unadjusted", "MVUE: continuous age", 
+                         "MVUE: categorical age", "Empirical (data) reference",
+                         "US200 reference", "Uniform (Yates)"),
+                       c("est", "se", "SS"))
+
+#unadjusted
+emat[1,] <- c(summary(fit1)$coef[2,1:2], anova(fit1)["sex", "Sum Sq"])
+# MVUE -- do the two fits
+fit2 <- lm(flc ~ ns(age,4) + sex, flchain)
+emat[2,] <- c(summary(fit2)$coef[6, 1:2], anova(fit2)["sex", "Sum Sq"])
+fit2 <- lm(flc ~ age2 + sex, flchain)
+emat[3,] <- c(summary(fit2)$coef[6, 1:2], anova(fit2)["sex", "Sum Sq"])
+
+#Remainder, use contrasts
+tfun <- function(wt) {
+    cvec <- c(matrix(c(-wt, wt), nrow=2, byrow=TRUE))
+    temp <- contrast(cvec, yatesfit)
+    c(temp$est, sqrt(temp$var), temp$ss)
+}
+emat[4,] <- tfun(colSums(counts)/sum(counts))
+
+usgroup <- tapply(us2000, rep(1:5, c(10,10,10,10,11)), sum)/sum(us2000)
+emat[5,]<- tfun(usgroup)
+emat[6,] <- tfun(rep(1/5,5))
+@ 
+\begin{table} \centering
+  \begin{tabular}{l|ccc}
+    & estimate & sd & SS \\ \hline
+<<echo=FALSE, results=tex>>=
+temp <- dimnames(emat)[[1]]
+for (i in 1:nrow(emat))
+   cat(temp[i], sprintf(" &%5.3f", emat[i,1]),sprintf(" &%6.5f", emat[i,2]), 
+       sprintf(" & %6.1f", emat[i,3]), "\\\\ \n")
+@ 
+\end{tabular}
+  \caption{Estimates of the male-female difference along with their
+    standard errors.  The last 4 rows are based on categorized age.}
+  \label{tab:allest}
+\end{table}
+Table \ref{tab:est} shows all of the estimates of the male/female
+difference we have considered so far along with their standard errors.
+Because it gives a much larger weight to the 90+ age group than any of
+the other estimates, and that group has the largest M-F difference,
+the projected difference for a uniform population (Yates estimate)
+yields the largest contrast.
+It pays a large price for this in terms of standard error, however, and is
+over twice the value of the other approaches.
+As stated earlier, any least squares parameter estimate can be written
+as a weighted sum of the y values.
+Weighted averages have 
+minimal variance when all of the weights are close to 1.  
+The unadjusted estimate adheres to this precisely and the data-reference
+and MVUE stay as close as possible to constant weights, subject to balancing the
+population.  The Yates estimate, by treating every cell equally,
+implicitly gives much larger weights to the oldest ages.
+Table \ref{tab:est} shows the effective observation weights used for each of the
+age categories.
+
+<<weights>>=
+casewt <- array(1, dim=c(2,5,4)) # case weights by sex, age group, estimator
+csum <- colSums(counts)
+casewt[,,2] <- counts[2:1,] / rep(csum, each=2)
+casewt[,,3] <- rep(csum, each=2)/counts
+casewt[,,4] <- 1/counts
+#renorm each so that the mean weight is 1
+for (i in 1:4) {
+    for (j in 1:2) {
+        meanwt <- sum(casewt[j,,i]*counts[j,])/ sum(counts[j,])
+        casewt[j,,i] <- casewt[j,,i]/ meanwt
+    }
+}
+@ 
+
+\begin{table} \centering
+  \begin{tabular}{rlrrrrr}
+    &&50--59& 60--69 & 70--79 & 80--89 & 90+ \\ \hline
+<<echo=FALSE, results=tex>>=
+tname <- c("Unadjusted", "Min var", "Empirical", "Yates")
+for (i in 1:2) {
+    for (j in 1:4) {
+        cat("&",tname[j], " & ",
+            paste(sprintf("%4.2f", casewt[i,,j]), collapse= " & "),
+             "\\\\\n")
+       if (j==1) cat(c("Female", "Male")[i])
+    }
+    if (i==1) cat("\\hline ")
+}
+@     
+  \end{tabular}
+  \caption{Observation weights for each data point
+    corresponding to four basic approaches. 
+    All weights are normed so as to have an average value of 1.}
+  \label{tab:est}
+\end{table}
+
+Looking at table \ref{tab:est} notice the per observation weights for 
+the $\ge 90$ age group, 
+which is the one with the greatest female/male imbalance in the
+population.  
+For all but the unbalanced estimate (which ignores age) the males are
+given a weight that is approximately 3 times that for females
+in order to re balance the shortage of males in that category.
+However, the
+absolute values of the weights differ considerably.
+
+\subsection{Different codings}
+Because the cell means are a sufficient statistic, all of the estimates based
+on categorical age can be written in terms of the cell means $\hat\theta$.
+The Yates contrast is the simplest to write down:
+$$ \begin{tabular} {rrrrrr}
+  & 50--59 & 60--69 & 70--79 & 80--89 & 90+ \\ \hline
+  Female & -1/5 & -1/5 & -1/5 & -1/5 & -1/5 \\
+  Male & 1/5 & 1/5 & 1/5 & 1/5 & 1/5
+\end{tabular}
+$$
+%(Note that for calculating a sum of squares we will get the exact same
+%result from a matrix using $\pm 1$ rather than $\pm 1/5$;
+%the Yates contrast is often written this way.)
+For the data set weighting the values of 1/5 are replaced by
+$n_{+j}/n_{++}$, the overall frequency of each age group, where a $+$
+in the subscript stands for addition over that subscript in the table
+of counts.  
+The US population weights use the population frequency of each age group.
+The MVUE contrast has weights of
+$w_j/\sum w_j$ where $w_j = 1/(1/n_{1j} + 1/n_{2j})$, which are admittedly
+not very intuitive.
+$$
+\begin{tabular}{rrrrrr}
+  & 50--59 & 60--69 & 70--79 & 80--89 & 90+ \\ \hline
+<<echo=FALSE, results=tex>>=
+temp <- 1/colSums(1/counts)
+temp <- temp/sum(temp)
+cat("Female", sprintf(" & %5.3f", -temp), "\\\\ \n")
+cat("Male",   sprintf(" & %5.3f", temp), "\\\\ \n")
+@ 
+\end{tabular}
+$$
+In the alternate model \code{y \textasciitilde sex + age2} 
+the MVUE contrast is much
+simpler, namely (0, 1, 0,0,0,0,0), and can be read directly off the
+printout as $\beta/se(\beta)$.  
+The computer's calculation of $(X'X)^{-1}$ has derived the ``complex''
+MVUE weights for us without needing to lift a pencil.
+The Yates contrast, however, cannot be created from the coefficients of the
+simpler model at all.
+This observation holds in general: a contrast that is simple to write down
+in one coding may appear complicated in another, or not even be possible.
+
+The usual and more familiar coding for a two way model is
+\begin{equation}
+  y_{ij} = \mu + \alpha_i + \beta_j + \gamma_{ij} \label{std}
+\end{equation}
+What do the Yates' estimates look like in this form?  Let $e_i$ be the
+Yates estimate for row $i$ and $k$ the number of columns in the two way table
+of $\theta$ values.  Then
+\begin{align*}
+  e_i &= (1/k)\sum_{j=1}^k \theta_{ij} \\
+      &= \mu + \alpha_i + \sum_j \left(\beta_j + \gamma_{ij}\right)/k 
+\end{align*}
+and the Yates test for row effect is
+\begin{align}
+  0 &= e_i - e_{i'} \quad \forall i,i' \nonumber \\
+    &= (\alpha_i - \alpha_{i'}) + (1/k)\sum_j(\gamma_{ij} - \gamma_{i'j})
+             \label{ycont}
+\end{align}
+
+Equation \eqref{std} is over determined and all computer
+programs add constraints in order to guarantee a unique solution.
+However those constraints are applied, however, equation \eqref{ycont}
+holds.
+The default in R is treatment contrasts, which use the first level
+of any factor as a reference level.
+Under this constraint the reference coefficients are set to zero, i.e., all
+coefficients of equations \eqref{std} and \eqref{ycont} 
+above where $i=1$ or $j=1$.
+We have been computing the male - female contrast,
+corresponding to $i=2$ and $i'=1$
+in equation \eqref{ycont}, and the Yates contrast for sex becomes
+$\alpha_2 + 1/5(\gamma_{22} +\gamma_{23} +\gamma_{24} +\gamma_{25})$.
+The code below verifies that this contrast plus the usual R fit replicates
+the results in table \ref{tab:allest}.
+<<treatment>>=
+fit3 <- lm(flc ~ sex * age2, flchain)
+coef(fit3)
+contrast(c(0,1, 0,0,0,0, .2,.2,.2,.2), fit3) #Yates
+@ 
+The usual constraint is SAS is to use the last level of any class 
+variable as the reference group,
+i.e., all coefficients with $i=2$ or $j=5$ in equations 
+\eqref{std} and \eqref{ycont} are set to zero.
+<<SAS>>=
+options(contrasts=c("contr.SAS", "contr.poly"))
+sfit1 <- lm(flc ~ sex, flchain)
+sfit2 <- lm(flc ~ sex + age2, flchain)
+sfit3 <- lm(flc ~ sex * age2, flchain)
+contrast(c(0,-1, 0,0,0,0, -.2,-.2,-.2,-.2), sfit3) # Yates for SAS coding
+@
+The appendix contains SAS code and output for the three models
+\code{sfit1, sfit2} and \code{sfit3} above.
+The \code{E3} option was added to the SAS model statements, which causes
+a symbolic form of the contrasts that were used for 
+``type III'' results to be included in the printout.
+Look down the column labeled ``SEX'' and you will see exactly the
+coefficients used just above, after a bit of
+SAS to English translation.
+\begin{itemize}
+  \item The SAS printout is labeled per equation \eqref{std}, so
+    L1= column 1 of the full $X$ matrix = intercept.  L2 = column 2
+    = females, L3 = column 3 = males, L4= column 4 = age 50--59, etc.
+   \item In the symbolic printout they act as though sum constraints were
+     in force: the last column of age is labeled with a symbolic value that
+     would cause the age coefficients to sum to zero.  
+     However, in actuality these coefficients are set to zero.  The table of
+     parameter estimates at the end of the printout reveals this; forced
+     zeros have a blank for their standard error.
+  \item When calculating the contrast one can of course skip over the 
+    zero coefficients, and the R functions do not include them in the
+    coefficient vector.  
+    Remove all of these aliased rows from the SAS symbolic printout to get
+    the actual contrast that is used; this will agree with my notation.
+  \item The SAS printout corresponds to a female-male contrast and I have
+    been using male-female for illustration.  
+    This changes the signs of the contrast coefficients
+    but not the result.
+\end{itemize}
+The \code{estimate} statement in the SAS code required that all of
+the coefficients be listed, even the aliased ones
+(someone more proficient in SAS may
+know a way to avoid this and enter only the non-aliased values.)
+
+%A general principle is that a given hypothesis may be represented as
+%a simple contrast in one coding but be complex in another.  
+%The unadjusted test is a trivial contrast in the sfit1 coding, but a 
+%complex one in the sfit3 coding.
+%The Yates test cannot be expressed as a contrast using the sfit1 or sfit2
+%coding, is simple and obvious in the cell means coding, and has
+%simple but non obvious coefficients in the sfit3 coding.
+%Que sera sera.
+
+So, how do we actually compute the Yates contrast in a computer program?
+We will take it as a give that no one wants to memorize contrast formulas.
+Appendix \ref{sect:coding} describes three algorithms for the computation.
+
+One of these three (NSTT) is completely unreliable, but is included because
+it is so often found in code.
+If one uses the sum constraints commonly found in textbooks,
+which corresponds to the \code{contr.sum} constraint in R and to \code{effect}
+constraints in SAS, and there are no missing cells, then the last term
+in equation \eqref{ycont} is zero and the simple 
+contrast $\alpha_i =0$ will be equal to the Yates contrast for sex. 
+I often see this method recommended on R help in response to
+the question of ``how to obtain type III'', computed either by use of the 
+\code{drop1} command or the \code{Anova} function found within the car
+package, but said advice almost never mentions the need for this particular
+non-default setting of the contrasts option\footnote{The Companion to Applied
+Regression (car) package is designed to be used with the book of the same
+name by John Fox, and the book does clarify the need for sum constraints.}.
+When applied to other codings the results of this procedure can be 
+surprising.
+<<nstt>>=
+options(contrasts = c("contr.treatment", "contr.poly")) #R default
+fit3a <- lm(flc ~ sex * age2, flchain)
+options(contrasts = c("contr.SAS", "contr.poly"))
+fit3b <- lm(flc~ sex * age2, flchain)
+options(contrasts=c("contr.sum", "contr.poly"))
+fit3c <- lm(flc ~ sex * age2, flchain)
+#
+nstt <- c(0,1, rep(0,8))  #test only the sex coef = the NSTT method
+temp <- rbind(unlist(contrast(nstt, fit3a)),
+              unlist(contrast(nstt, fit3b)),
+              unlist(contrast(nstt, fit3c)))[,1:2]
+dimnames(temp) <- list(c("R", "SAS", "sum"), c("effect", "SS"))
+print(temp)
+#
+drop1(fit3a, .~.)
+@ 
+For the case of a two level effect such as sex, the 
+NSTT contrast under the default R coding is a comparison of males to
+females in the first age group \textbf{only},
+and under the default SAS coding it is a comparison of males to females
+within the \textbf{last} age group.
+Due to this easy creation of a test statistic which has no relation to
+the global comparison one expects from the ``type 3'' label the acronym
+\emph{not safe type three}(NSTT) was chosen, ``not SAS'' and ``nonsense''
+are alternate mnemonics.
+
+\subsection{Sums of squares and projections}
+\label{sect:anova}
+The most classic exposition of least squares is as a set of
+projections, each on to a smaller space.
+Computationally we represent this as a series of model fits,
+each fit summarized by the change from the prior fit 
+in terms of residual sum of squares.
+<<anova>>=
+options(show.signif.stars = FALSE) #exhibit intelligence
+sfit0  <- lm(flc ~ 1, flchain)
+sfit1b <- lm(flc ~ age2, flchain)
+anova(sfit0, sfit1b, sfit2, sfit3)
+@ 
+The second row is a test for the age effect.
+The third row of the above table summarizes the improvement in
+fit for the model with sex + age2 over the model with just age2,
+a test of ``sex, adjusted for age''.
+This test is completely identical to the minimum variance contrast,
+and is in fact the way in which that SS is normally obtained.
+The test for a sex effect, unadjusted for age, 
+is identical to an anova table that compares
+the intercept-only fit to one with sex, i.e., the second line from
+a call to \code{anova(sfit0, sfit1)}.
+
+The anova table for a nested sequence of models $A$, $A+B$, $A + B +C$, \ldots
+has a simple interpretation, outside of contrasts or populations,
+as an improvement in fit.  Did the variable(s) $B$ add significantly 
+to the goodness of fit for a model with just $A$, was $C$ an important
+addition to a model that already includes $A$ and $B$?  
+The assessment of improvement is based on the likelihood ratio test (LRT),
+and extends naturally to all other models based on likelihoods.
+The tests based on a target population (external, data population,
+or Yates) do not fit naturally into this approach, however.
+
+%Obtaining the Yates contrast using a sequential sums of squares approach
+%is possible but a bit contrived.
+%Our final fit in the table will be \code{sfit3}, but
+%the one prior to it needs to be from a constrained version of \code{sfit3},
+%whose solution lies in the space spanned by  the Yates contrast 
+%$\beta_2 + \beta_7/5 + \beta_8/5 + \beta_9/5 + \beta_{10}/5 = 0$. 
+%There is no simple way to write down an ordinary LS model equation that
+%will do this, and instead one must use one a program for constrained
+%linear regression; these are far less familiar.
+%There are many algorithms to fit a constrained linear regression, one is
+%to transform the problem as $X\beta = (XQ)(Q'\beta) = Z \phi$
+%where $Q$ is an orthogonal transformation matrix.
+%If the first column of $Q$ is chosen as a scaled version of the Yates
+%contrast, then setting that contrast equal to zero is the same as
+%the constraint $\phi_1 =0$; it suffices to fit a model using all but the
+%first column of $Z$. 
+
+\subsection{What is SAS type 3?}
+We are now in a position to fully describe the SAS sums of squares.
+\begin{itemize}
+  \item Type 1 is the output of the ANOVA table, where terms are entered
+    in the order specified in the model.
+  \item Type 2 is the result of a two stage process
+    \begin{enumerate}
+      \item Order the terms by level: 0= intercept, 1= main effects, 
+        2= 2 way interactions, \ldots.
+      \item For terms of level k, print the MVUE contrast from a model
+        that includes all terms of levels $0-k$.
+        Each of these will be equivalent to the corresponding line of
+        a sequential ANOVA table where the term in question was entered
+        as the last one of its level.
+    \end{enumerate}
+  \item Type 3 and 4 are also a 2 stage process
+    \begin{enumerate}
+      \item Segregate the terms into those for which a Yates contrast
+        can be formed versus those for which it can not.  The second group
+        includes the intercept, any continuous variables, and any factor
+        (class) variables that do not participate in interactions with
+        other class variables.
+      \item For variables in the first group compute Yates contrasts. For
+        those in the second group compute the type 2 results.
+    \end{enumerate}
+\end{itemize}
+
+SAS has two different algorithms for computing the Yates contrast, which
+correspond to the \code{ATT} and \code{STT} options of the \code{yates}
+function.
+SAS describes the two contrast algorithms
+in their document 
+``The four types of estimable functions'' \cite{SASguide}, 
+one of which defines type 3 and the other type 4.
+I found it very challenging to recreate their algorithm from this document.
+Historical knowledge of the underlying linear model algorithms used by
+SAS is a useful
+and almost necessary adjunct, as many of the steps in the document are side
+effects of their calculation.
+
+When there are missing cells, then it is not possible to compute a 
+contrast that corresponds to a uniform
+distribution over the cells, and thus the standard Yates contrast is 
+also not defined.
+The SAS type 3 and 4 algorithms still produce a value, however. 
+What exactly this result ``means'' and whether it is a good idea has
+been the subject of lengthy debates which I will not explore here. Sometimes
+the type 3 and type 4 algorithms will agree but often do not when there
+are missing cells, which further muddies the waters.
+
+Thus we have 3 different tests: the MVUE comparison which will be close
+but not exactly equal to the data set population, Yates comparisons which
+correspond to a uniform reference population, and the SAS type 3 (STT) which
+prints out a chimeric blend of uniform population weighting for 
+those factor variables that participate in
+interactions and the MVUE weighting for all the other terms.  
+
+
+\subsection{Which estimate is best?}
+Deciding which estimate is the best is complicated.
+Unfortunately a lot of statistical textbooks emphasize the peculiar
+situation of balanced data with exactly the same number of subjects 
+in each cell.
+Such data is \emph{extremely} peculiar if you work in medicine;
+in 30 years work and several hundred studies I have seen 2 instances.
+In this peculiar case the unadjusted, MVUE, empirical reference and Yates
+populations are all correspond to a uniform population and 
+so give identical results.
+No thinking about which estimate is best is required.
+This has led many to avoid the above question, instead pining for that
+distant Eden where the meaning of ``row effect'' is perfectly unambiguous.
+But we are faced with real data and need to make a choice.
+
+The question has long been debated in depth by wiser heads than mine.
+In a companion paper to his presentation at the joint statistical meetings
+in 1992, Macnaughton \cite{Macnaughton92} lists 54 references to the topic
+between 1952 and 1991.  
+Several discussion points recur:
+\begin{enumerate}
+  \item Many take the sequential ANOVA table as primary, i.e., a set of
+    nested models along with likelihood ratio tests (LRT), and decry
+    all comparisons of ``main effects in the presence of interaction.''
+    Population weightings other than the LS one do not fit nicely into
+    the nested framework.
+  \item Others are distressed by the fact that the MVUE adjusting population
+    is data dependent, so that one is ``never sure exactly what 
+    hypothesis being tested''.  
+  \item A few look at the contrast coefficients themselves, with a preference
+    for simple patterns since they ``are interpretable''.
+  \item No one approach works for all problems.  Any author who proposes
+    a uniform rule is quickly presented with counterexamples.
+\end{enumerate}
+Those in group 1 argue strongly against the Yates weighting and those in group 2
+argue for the Yates contrast.  
+Group 3 is somewhat inexplicable to me since any
+change in the choice of constraint type will change all the patterns.
+I fear that an opening phrase from the 1986 overview/review of Herr
+\cite{Herr86}
+is still apropos, ``In an attempt to understand how we have arrived at our
+present state of ignorance \ldots''.
+
+There are some cases where the Yates approach is clearly sensible, for instance
+a designed experiment which has become unbalanced due to a failed
+assay or other misadventure that has caused a few data points to be missing.
+There are cases such as the FLC data where the Yates contrast 
+makes little sense at
+all --- the hypothetical population with equal numbers of 50 and 90 year olds is
+one that will never be seen--- so it is rather like speculating on the the
+potential covariate effect in dryads and centaurs.
+The most raucous debate has circled around the case of testing for a treatment
+effect in the presence of multiple enrolling centers.  
+Do we give each patient equal weight (MVUE) or each center equal weight (Yates).
+A tongue-in-cheek but nevertheless excellent commentary on the subject is
+given by the old curmudgeon, aka Guernsey McPearson \cite{Senn1, Senn2}.
+A modern summary with focus on the clinical trials arena is found in 
+chapter 14 of the textbook by  Senn \cite{Senn07}
+
+I have found two papers particularly useful in thinking about this.
+Senn \cite{Senn00} points out the strong parallels between tests for 
+main effects
+when there may be interactions and meta analyses, cross connecting these two
+approaches is illuminating.
+A classic reference is the 1978 paper by Aitkin \cite{Aitkin78}.
+This was read before the Royal Statistical
+Society and includes remarks by 10 discussants forming a who's who of
+statistical theory (F Yates, J Nelder, DR Cox, DF Andrews, KR Gabriel, \ldots).
+The summary of the paper states that 
+``It is shown that a standard method of analysis used in many ANOVA programs,
+equivalent to Yates method of weighted squares of means, may lead to 
+inappropriate models''; the paper goes on to carefully show why no one
+method can work in all cases.
+Despite the long tradition among RSS discussants of first congratulating the 
+speaker and then skewering every one their conclusions, 
+not one defense of the always-Yates approach is raised!
+This includes the discussion by Yates himself, who protests that his original
+paper advocated the proposed approach with reservations, it's primary advantage
+being that the computations could be performed on a desk calculator.
+
+I have two primary problems with the SAS type 3 approach.
+The first and greatest is that their documentation recommends the method
+with no reference to this substantial and sophisticated literature
+discussing strengths and weaknesses of the Yates contrast.  
+This represents a level of narcissism which is completely unprofessional.
+%Recommending the type III approach as best for all cases, as they do, has
+%caused actual harm.
+The second is that their documentation explains the method is a way that
+is almost impenetrably opaque.  
+If this is the only documentation one has, there will not be 1 statistician 
+in 20 who would be able to
+explain the actual biological hypothesis which is being addressed by 
+a type 3 test.
+
+\section{Cox models}
+\subsection{Tests and contrasts}
+Adapting the Yates test to a Cox model is problematic from the start.
+First, what do we mean by a ``balanced population''?
+In survival data, the variance of the hazard ratio for each particular
+sex/age combination is proportional to the number of deaths in that
+cell rather than the number of subjects.
+Carrying this forward to the canonical problem of adjusting a treatment
+effect for enrolling center, does this
+lead to equal numbers of subjects
+or equal numbers of events?
+Two centers might have equal numbers of patients but different number
+of events because one initiated the study at a later time (less
+follow up per subject), or it might have the same follow up time but
+a lower death rate.  Should we reweight in one case (which one), both,
+or neither?
+The second issue is that the per-cell hazard ratio estimates are no
+longer a minimally sufficient statistic, so underlying arguments
+about a reference population no longer directly translate into a contrast
+of the parameters.  
+A third but more minor issue is that the three common forms of
+the test statistic ---  Wald, score, and LRT --- are identical in a linear
+model but not for the Cox model, so which should we choose?
+
+To start, take a look at the overall data and
+compute the relative death rates for each age/sex cell.
+<<relrate>>=
+options(contrasts= c("contr.treatment", "contr.poly")) # R default
+cfit0 <- coxph(Surv(futime, death) ~ interaction(sex, age2), flchain)
+cmean <- matrix(c(0, coef(cfit0)), nrow=2)
+cmean <- rbind(cmean, cmean[2,] - cmean[1,])
+dimnames(cmean) <- list(c("F", "M", "M/F ratio"), dimnames(counts)[[2]])
+signif(exp(cmean),3)
+@ 
+Since the Cox model is a relative risk model all of the
+death rates are relative to one of the cells, in this case the
+50--59 year old females has been arbitrarily chosen as the reference cell
+and so has a defined rate of 1.00.  
+Death rates rise dramatically with age for both males and females
+(no surprise),
+with males always slightly ahead in the race to a coffin.
+The size of the disadvantage for males decreases in the last 2
+decades, however.
+
+The possible ways to adjust for age in comparing the two sexes
+are
+\begin{enumerate}
+  \item The likelihood ratio test.  This is analogous to the
+    sequential ANOVA table in a linear model, and has the strongest
+    theoretical justification.
+  \item A stratified Cox model, with age group as the stratification
+    factor.  This gives a more general and rigorous adjustment for
+    age.  Stratification on institution is a common approach in clinical trials.
+ \item The Wald or score test for the sex coefficient, in a model that
+    adjusts for age.  This is analogous to Wald tests in the linear
+    model, and is asymptotically equivalent the the LRT.
+  \item The test from a reweighted model, using case weights.  Results
+    using this approach have been central to causal model literature,
+    particularly adjustment
+    for covariate imbalances in observational studies.  (Also known
+    as \emph{marginal structural models}).  
+    Adjustment to a uniform population is also possible.
+  \item A Yates-like contrast in the Cox model coefficients.
+    \begin{itemize}
+      \item A reliable algorithm such as cell means coding.
+      \item Unreliable approach such as the NSTT
+        \end{itemize}
+\end{enumerate}
+I have listed these in order from the most to the least available 
+justification, both in terms of practical experience and
+available theory.
+The two standard models are for sex alone, and sex after age.
+Likelihood ratio tests for these models are the natural analog to
+anova tables for the linear model, and are produced by the
+same R command.  Here are results for the first three, along
+with the unadjusted model that contains sex only.
+<<cox anova>>=
+options(contrasts=c("contr.SAS", "contr.poly"))
+cfit1 <- coxph(Surv(futime, death) ~ sex, flchain)
+cfit2 <- coxph(Surv(futime, death) ~ age2 + sex, flchain)
+cfit3 <- coxph(Surv(futime, death) ~ sex + strata(age2), flchain)
+# Unadjusted
+summary(cfit1)
+#
+# LRT
+anova(cfit2)
+#
+# Stratified
+anova(cfit3)
+summary(cfit3)
+#
+# Wald test
+signif(summary(cfit2)$coefficients, 3)
+#
+anova(cfit1, cfit2)
+@ 
+Without adjustment for age the LRT for sex is only
+\Sexpr{round(2*diff(cfit1$loglik),1)}, and after adjustment for  %$
+a it increases to \Sexpr{round(anova(cfit2)[3,2],2)}.
+Since females are older, not adjusting for age almost completely
+erases the evidence of their actual survival advantage.
+Results of the LRT
+are unchanged if we change to any of the other possible codings for
+the factor variables (not shown).
+Adjusting for age group using a stratified model gives almost identical
+results to the sequential LRT, in this case.
+The Wald tests for sex are equal to $[\beta/ se(\beta)]^2$ using the
+sex coefficient from the fits,
+\Sexpr{round(summary(cfit1)$coef[1,4]^2,2)} and 
+\Sexpr{round(summary(cfit2)$coef[5,4]^2,2)}
+for the unadjusted and adjusted models, respectively.
+Unlike a linear model they are not exactly equal to the 
+anova table results based on the log-likelihood, but tell the same story.
+
+Now consider weighted models, with both empirical and uniform distributions
+as the target age distribution.
+The fits require use of a robust variance,
+since we are approaching it via a survey sampling computation.
+The tapply function creates a per-subject index into the case weight
+table created earlier.
+<<coxfit>>=
+wtindx <- with(flchain, tapply(death, list(sex, age2)))
+cfitpop <- coxph(Surv(futime, death) ~ sex, flchain,
+                robust=TRUE, weight = (casewt[,,3])[wtindx]) 
+cfityates <- coxph(Surv(futime, death) ~ sex, flchain,
+                robust=TRUE, weight = (casewt[,,4])[wtindx])
+#
+# Glue it into a table for viewing
+#
+tfun <- function(fit, indx=1) {
+    c(fit$coef[indx], sqrt(fit$var[indx,indx]))
+  }
+coxp <- rbind(tfun(cfit1), tfun(cfit2,5), tfun(cfitpop), tfun(cfityates))
+dimnames(coxp) <- list(c("Unadjusted", "Additive", "Empirical Population", 
+                         "Uniform Population"),
+                      c("Effect", "se(effect)"))
+signif(coxp,3)
+@ 
+The population estimates based on reweighting lie somewhere between
+the unadjusted and the sequential results.
+We expect that balancing to the empirical population will give a
+solution that is similar to the age + sex model, in the same
+way that the close but not identical to the MVUE estimate in a linear
+model. 
+Balancing to a hypothetical population with equal numbers in each
+age group yields a substantially smaller estimate of effect. since it gives
+large weights to the oldest age group, 
+where in this data set the male/female difference is smallest.
+
+Last, look at constructed contrasts from a cell means model.  We
+can either fit this using the interaction, or apply the previous
+contrast matrix to the coefficients found above.
+Since the ``intercept'' of a Cox model is absorbed into the baseline
+hazard our contrast matrix will have one less column.
+<<>>=
+cfit4 <- coxph(Surv(futime, death) ~ sex * age2, flchain)
+# Uniform population contrast
+ysex <- c(0,-1, 0,0,0,0, -.2,-.2,-.2,-.2) #Yates for sex, SAS coding
+contrast(ysex[-1], cfit4) 
+# Verify using cell means coding
+cfit4b <- coxph(Surv(futime, death) ~ interaction(sex, age2), flchain)
+temp <- matrix(c(0, coef(cfit4b)),2)  # the female 50-59 is reference
+diff(rowMeans(temp)) #direct estimate of the Yates
+#
+temp2 <- rbind(temp, temp[2,] - temp[1,])
+dimnames(temp2) <- list(c('female', 'male', 'difference'), levels(age2))
+round(temp2, 3)
+#                        
+#
+# NSTT contrast
+contrast(c(1,0,0,0,0,0,0,0,0), cfit4)
+@ 
+In the case of a two level covariate such as sex, the NSTT algorithm 
+plus the SAS coding yields an estimate and test for a difference in
+sex for the \emph{first} age group;
+the proper contrast is an average.
+Since it gives more weight to the larger ages, where the sex effect
+is smallest, the Yates-like contrast is smaller than the result from an
+additive model \code{cfit2}.
+Nevertheless, this contrast and
+the sequential test are more similar for the survival 
+outcome than for the linear models.
+This is due to the fact that the variances of the individual hazards
+for each sex/age combination are proportional to the number of
+deaths in that cell rather than the number of subjects per cell.
+A table of the number of deaths is not as imbalanced as the
+table of subject counts, and so the Yates and MLE ``populations''
+are not as far apart as they were for the linear regression.
+There are fewer subjects at the higher ages but they die more
+frequently.
+ 
+Why is the Yates-like contrast so different than the result of 
+creating a uniform age distribution using case weights followed
+by an MLE estimate?  Again, the MLE estimate has death counts as
+the effective weights; the case-weighted uniform population
+has smaller weights for the youngest age group and that group also
+has the lowest death rate, resulting in lower influence for that group
+and an estimate shrunken towards the 90+ difference of
+\Sexpr{round(temp2[3,5], 3)}.
+All told, for survival models 
+adjustment to a uniform population is a slippery target.
+
+\subsection{SAS phreg results}
+Now for the main event: what does SAS do?
+First, for the simple case of an additive model
+the SAS results are identical to those shown above.
+The coefficients, variances and log-likelihoods for cfit2
+are identical to the phreg output for an additive model, as
+found in the appendix.
+As would be expected from the linear models case, 
+the ``type III'' results for the additive model
+are simply the Wald tests for the fit, repackaged with a new label.
+
+Now look at the model that contains interactions.
+We originally surmised that a contrast calculation would be the
+most likely
+way in which the phreg code would implement type 3, as it is the
+easiest to integrate with existing code. 
+Results are shown in the last SAS fit of the appendix.
+Comparing these results of the SAS printout labeled as ``Type III Wald''
+to the contrasts calculated above shows that phreg is using the NSTT method.
+This is a bit of a shock.
+All of the SAS literature on type III emphasizes the care with which 
+they form the calculation so as to always produce a Yates contrast
+(or in the case of missing cells a Yates-like one),
+and there was no hint in the documentation that phreg does anything different.
+As a double check direct contrast statements
+corresponding to the Yates and NSTT contrasts were added to the SAS code,
+and give confirmatory results.  
+A further run which forced sum constraints by adding
+\code{'/ effect'} to the SAS class statement (not shown) restored the
+correct Yates contrast, as expected.
+As a final check, look at the NSTT version of the LRT, which corresponds
+to simply dropping the sex column from the $X$ matrix.
+<<nstt-lrt>>=
+xmat4 <- model.matrix(cfit4)
+cfit4b <- coxph(Surv(futime, death) ~ xmat4[,-1], flchain)
+anova(cfit4b, cfit4)
+@ 
+This agrees with the LR ``type 3'' test of the phreg printout.
+
+\subsection{Conclusion}
+Overall, both rebalanced estimates and coefficient contrasts are 
+interesting exercises for the Cox model, but their actual utility
+is unclear.  
+It is difficult to make a global optimality argument for
+either one, particularly in comparison to the sequential tests
+which have the entire weight of likelihood theory as a justification.
+Case reweighted estimates do play a key role when attempting to 
+adjust for non-random treatment assignment, as found in the
+literature for causal analysis and marginal structural models;
+a topic and literature far too extensive and nuanced for discussion
+in this note.
+
+No special role is apparent, at least to this author, for regular or even
+sporadic use of a Yates contrast in survival models.  
+The addition of such a feature and label to the SAS phreg package is
+a statistical calamity, one that knowledgeable and conscientious
+statistical practitioners will likely have to fight for the rest of their
+careers.
+In the common case of a treatment comparison, adjusted for enrolling center,
+the default ``type III'' printout from phreg corresponds to a comparison
+of treatments within the last center;
+the only contribution of the remainder of the data set is to help define
+the baseline hazard function and the effect of any continuous adjusters that
+happen to be in the model.
+The quadruple whammy of a third rate implementation (the NSTT),
+defaults that lead to a useless and misleading result,
+no documentation of the actual computation that is being done,
+and irrational reverence for the type III label conspire
+to make this a particularly unfortunate event.
+
+\appendix
+\section{Computing the Yates estimate}
+\label{sect:coding}
+We will take it as a given that no one wants to memorize contrast formulas,
+and so we need a way to compute Yates contrasts automatically in a computer
+program.  
+The most direct method is to encode the original fit in terms of the 
+cell means, as has been done throughout this report.  
+The Yates contrast is then simply an average of estimates across the
+appropriate margin.
+However, we normally will want to solve the linear or Cox model fit in
+a more standard coding and then compute the Yates contrast after the fact.
+Note that any population re norming requires estimates of the cell means, 
+whether
+they were explicit parameters or not, i.e., the model fit must include
+interaction terms.
+
+Here are three algorithms for this post-hoc computation.
+All of them depend, directly or indirectly, on the breakdown found earlier
+in equation \eqref{std}.
+\begin{align}
+  y_{ij} &= \mu + \alpha_i + \beta_j + \gamma_{ij} + \epsilon \label{a1} \\
+         &= \theta_{ij} + \epsilon \label{a2}\\
+  \theta_{ij} &=  \mu + \alpha_i + \beta_j + \gamma_{ij} \label{a3} \\
+\end{align}
+Equation \eqref{a1} is the standard form from our linear models textbooks,
+equation \eqref{a2} is the cell means form, and \eqref{a3} is the
+result of matching them together.
+Using this equivalence a Yates test for row effects will be
+\begin{align}
+  0 &= e_i - e_{i'} \quad \forall i,i' \nonumber \\
+    &= (\alpha_i - \alpha_{i'}) + (1/k)\sum_j(\gamma_{ij} - \gamma_{i'j})
+             \label{ycont2}
+\end{align}
+where the subscripts $i$ and $i'$ range over the rows and $k$ is the
+number of columns.
+
+To illustrate the methods we will use 3 small data sets defined below.
+All are unbalanced.  The second data set removes the aD observation and
+so has a zero cell, the third removes the diagonal and has 3 missing
+cells.
+
+<<ydata>>= 
+data1 <- data.frame(y = rep(1:6, length=20),
+                    x1 = factor(letters[rep(1:3, length=20)]),
+                    x2 = factor(LETTERS[rep(1:4, length=10)]),
+		    x3 = 1:20)
+data1$x1[19] <- 'c'
+data1 <- data1[order(data1$x1, data1$x2),]
+row.names(data1) <- NULL
+with(data1, table(x1,x2))
+     
+# data2 -- single missing cell
+indx <- with(data1, x1=='a' & x2=='D')
+data2 <- data1[!indx,]
+
+#data3 -- missing the diagonal
+data3 <- data1[as.numeric(data1$x1) != as.numeric(data1$x2),]
+@
+
+\subsection{NSTT method}
+The first calculation method is based on a simple observation.  
+If we impose the standard sums constraint on equation \eqref{a1}
+which is often found in textbooks (but nowhere else) of
+$\sum_i \alpha_i = \sum_j \beta_j = 0$, $\sum_i\gamma_{ij} =0 \; \forall j$ 
+and $\sum_j \gamma_{ij} = 0 \; \forall i$,
+then the last term in equation \eqref{ycont2} is identically 0.
+Thus the Yates contrast corresponds exactly to a test of $\alpha=0$.
+In R we can choose this coding by using the \code{contr.sum} option.
+This approach has the appearance of simplicity: we can do an ordinary
+test for row effects within an interaction model.
+Here is R code that is often proposed for ``type III'' computation, 
+which is based on the same process.
+
+<<>>=
+options(contrasts=c("contr.sum", "contr.poly"))
+fit1 <- lm(y ~ x1*x2, data1)
+drop1(fit1, .~.)
+@ 
+
+The problem with this approach is that it depends critically on use of
+the sum constraints.  If we apply the same code after fitting the data
+set under the more usual constraints a completely different value 
+ensues.
+<<>>=
+options(contrasts=c("contr.SAS", "contr.poly"))
+fit2 <- lm(y ~ x1*x2, data1)
+drop1(fit2, .~.)
+options(contrasts=c("contr.treatment", "contr.poly"))
+fit3 <- lm(y ~ x1*x2, data1)
+drop1(fit3, .~.)
+@ 
+Both common choices of contrasts give a different answer than contr.sum,
+and both are useless.
+I thus refer to this as the Not Safe Type Three (NSTT) algorithm,
+``not SAS type three'' and ``nonsense type three'' are two other sensible
+expansions.
+This approach should NEVER be used in practice.
+
+\subsection{ATT}
+The key idea of the averaging approach (Averaged Type Three)
+is to directly evaluate equation \eqref{ycont2}.
+The first step of the computation is shown below
+<<att>>=
+X <- model.matrix(fit2)
+ux <- unique(X)
+ux
+indx <- rep(1:3, c(4,4,4))
+effects <- t(rowsum(ux, indx)/4)  # turn sideways to fit the paper better
+effects
+yates <- effects[,-1] - effects[,1]
+yates
+@ 
+The data set ux has 12 rows, one for each of the 12 unique x*x2 combinations.
+Because data1 was sorted, the first 4 rows correspond to x=1, the next 4
+to x=2 and the next to x=3 which is useful for illustration but has no
+impact on the computation.
+The average of rows 1-4 (column 1 of \code{effects} above) is the estimated
+average response for subjects with x1=a, assuming a uniform distribution over
+the 12 cells.  
+Any two differences between the three effects is an equivalent basis for
+computing the Yates contrast.
+
+We can verify that the resulting estimates correspond to a uniform 
+target population by directly examining the case weights for the estimate.
+Each of them gives a total weight of 1/4 to each level of x2.
+Each element of $\beta\beta$ is a weighted average of the data, revealed
+by the rows of the matrix $(X'X)^{-1}X'$.   
+The estimate are a weighted sum of the coefficients, so are also a
+weighted average of the $y$ values.
+<<>>=
+wt <- solve(t(X) %*% X, t(X)) # twelve rows (one per coef), n columns
+casewt <- t(effects) %*% wt   # case weights for the three "row efffects"
+for (i in 1:3) print(tapply(casewt[i,], data1$x2, sum))
+@ 
+
+\subsection{STT}
+The SAS type III method takes a different approach, based on a
+a dependency matrix $D$.  Start by writing the
+$X$ matrix for the problem using all of the parameters in equation \eqref{a1}.
+For our flc example this will have columns for intercept (1), sex (2), age group
+(5) and the age group by sex interaction (10) = 18 columns.  Now define the
+lower triangular square matrix $D$ such that 
+\begin{itemize}
+  \item If the $i$th column of $X$ can be written as a linear combination of
+    columns 1 through $i-1$, then row $i$ of $D$ contains that linear
+    combination and $D_{ii}=0$.
+  \item If the $i$th column is not linearly dependent on earlier ones then
+    $D_{ii}=1$ and $D_{ij}=0$ for all $j \ne i$.
+\end{itemize}
+Columns of $D$ that correspond to linearly dependent columns of $X$ will be
+identically zero and can be discarded (or not) at this point.  
+The result of this operation replicates table 12.2 in the SAS reference
+\cite{SASguide} labeled ``the form of estimable functions''.
+To obtain the Yates contrasts for an effect replace the appropriate
+columns of $D$ with the residuals from a regression on all columns to the
+right of it.
+Simple inspection shows that the columns of $D$ corresponding to any given
+effect will already be orthogonal to other effects in $D$ \emph{except}
+those for interactions that contain it; so the regression does not have
+to include all columns to the right.  
+
+It is easy to demonstrate that this gives the uniform population contrast
+(Yates) for a large number of data sets, 
+but I have not yet constructed a proof. 
+(I suspect it could be approached using the Rao-Blackwell theorem.)  
+
+\subsection{Bystanders}
+What about a model that has a extra predictor, such as \code{x3} in
+our example data and in the fit below?
+<<>>=
+fit4 <- lm(y ~ x1*x2 + x3, data=data1)
+@ 
+The standard approach is to ignore this variable when setting up
+``type III'' tests: the contrast for \code{x1} will be the same as
+it was in the prior model, with a 0 row in the middle for the x3
+coefficient.
+
+\subsection{Missing cells}
+When there are combinations of factors with 0 subjects in that group,
+it is not possible to create a uniform population via reweighting of either
+subjects or parameters. 
+There is thus no Yates contrast corresponding to the hypothetical
+population of interest.  
+For that matter, adjustment to any fixed population is no longer possible,
+such as the US 2000 reference, unless groups are pooled so as to remove any
+counts of zero, and even then the estimate could be problematic due to extreme
+weights.
+
+This fact does not stop each of the above 3 algorithms from 
+executing and producing a number. 
+This raises two further issues.
+First, what does that number \emph{mean}?  Much ink has been spilled on this
+subject, but I personally have never been able to come to grips with a
+satisfactory explanation and so have nothing to offer on the topic.
+I am  reluctant to use such estimates.
+The second issue is that the computational algorithms become more fragile.
+\begin{itemize}
+  \item The NSTT algorithm is a disaster in waiting, 
+    so no more needs to be said about situations where its behavior
+    may be even worse.
+  \item When fitting the original model, there will be one or more NA
+    coefficients due to the linear dependencies that arise.  A natural
+    extension of the ATT method is to leave these out of the sums 
+    when computing each average.
+    However, there are data sets for which the particular set of coefficients
+    returned as missing will depend on the order in which variables 
+    were listed in
+    the model statement, which in turn will change the ATT result.
+  \item For the STT method, our statement that certain other columns in $D$ 
+    will be orthogonal to the chosen effect is no longer true.  To match
+    SAS, the orthogonalization step above should include only those
+    effects further to the right that contain the chosen effect (the one we
+    are constructing a contrast vector for).
+    As a side effect, this makes the 
+    STT result invariant to the order of the variables in the
+    model statement.
+\end{itemize}
+
+\section{SAS computations}
+The following code was executed in version 9.3 of SAS.
+\begin{verbatim}
+options ls=70;
+libname save "sasdata";
+
+title "Sex only";
+proc glm data=save.flc;
+    class sex;
+    model flc = sex;
+title "Sex only";
+    
+
+proc glm data=save.flc;
+    class sex age2;
+    model flc = age2 sex /solution E1 E2 E3;
+title "Second fit, no interaction";
+
+
+proc glm data=save.flc;
+    class sex age2;
+    model flc = sex  age2  sex*age2/solution E1 E2 E3;
+
+    estimate 'yates' sex 1 -1  sex*age2 .2 .2 .2 .2 .2 -.2 -.2 -.2 -.2 -.2;
+    
+title "Third fit, interaction";
+
+proc phreg data=save.flc;
+    class sex age2;
+    model futime * death(0) = sex age2/ ties=efron;
+title "Phreg fit, sex and age, additive";
+
+proc phreg data=save.flc;
+    class sex age2;
+    model futime * death(0) = sex age2  sex*age2 /
+          ties=efron type3(all);
+    
+    estimate 'Yates sex' sex 1 sex*age2  .2 .2 .2 .2;
+    contrast 'NSTT sex ' sex 1 ;
+    contrast 'NSTT age' age2 1 0 0 0 ,
+                         age2 0 1 0 0 ,
+                         age2 0 0 1 0 ,
+                         age2 0 0 0 1;
+title "Phreg fit, sex and age with interaction";
+
+proc phreg data=save.flc;
+    class sex age2/ param=effect;
+    model futime * death(0) = sex age2  sex*age2 / ties=efron;
+title "Phreg, using effect coding";
+\end{verbatim}
+
+The SAS output is voluminous, covering over a dozen pages.  
+A subset is extracted below, leaving out portions that are unimportant
+to our comparison.
+First the GLM model for sex only.  There are no differences
+between type 1 and type 3 output for this model.
+\small
+\begin{verbatim}
+...
+               Number of Observations Read        7874
+               Number of Observations Used        7874
+...
+Dependent Variable: flc   
+
+                                      Sum of
+Source                     DF        Squares    Mean Square   F Value
+
+Model                       1      142.19306      142.19306     42.27
+
+Error                    7872    26481.86345        3.36406          
+
+Corrected Total          7873    26624.05652                         
+\end{verbatim}
+\normalsize
+
+The second fit with sex and then age.
+\small
+\begin{verbatim}
+                     Type I Estimable Functions
+ 
+                   -----------------Coefficients------------------
+   Effect          age2                                        sex
+
+   Intercept       0                                           0  
+
+   age2      1     L2                                          0  
+   age2      2     L3                                          0  
+   age2      3     L4                                          0  
+   age2      4     L5                                          0  
+   age2      5     -L2-L3-L4-L5                                0  
+
+   sex       F     -0.2571*L2-0.2576*L3-0.1941*L4-0.0844*L5    L7 
+   sex       M     0.2571*L2+0.2576*L3+0.1941*L4+0.0844*L5     -L7
+
+
+
+                     Type II Estimable Functions
+ 
+                                 ---Coefficients----
+                 Effect          age2            sex
+
+                 Intercept       0               0  
+
+                 age2      1     L2              0  
+                 age2      2     L3              0  
+                 age2      3     L4              0  
+                 age2      4     L5              0  
+                 age2      5     -L2-L3-L4-L5    0  
+
+                 sex       F     0               L7 
+                 sex       M     0               -L7
+
+
+
+                    Type III Estimable Functions
+ 
+                                 ---Coefficients----
+                 Effect          age2            sex
+
+                 Intercept       0               0  
+
+                 age2      1     L2              0  
+                 age2      2     L3              0  
+                 age2      3     L4              0  
+                 age2      4     L5              0  
+                 age2      5     -L2-L3-L4-L5    0  
+
+                 sex       F     0               L7 
+                 sex       M     0               -L7
+
+Dependent Variable: flc   
+
+                                      Sum of
+Source                     DF        Squares    Mean Square   F Value
+
+Model                       5     2212.13649      442.42730    142.60
+
+Error                    7868    24411.92003        3.10268          
+
+Corrected Total          7873    26624.05652                         
+
+
+
+Source                     DF      Type I SS    Mean Square   F Value
+
+age2                        4    1929.642183     482.410546    155.48
+sex                         1     282.494304     282.494304     91.05
+
+
+Source                     DF     Type II SS    Mean Square   F Value
+
+age2                        4    2069.943424     517.485856    166.79
+sex                         1     282.494304     282.494304     91.05
+
+
+Source                     DF    Type III SS    Mean Square   F Value
+
+age2                        4    2069.943424     517.485856    166.79
+sex                         1     282.494304     282.494304     91.05
+
+
+
+                                      Standard
+Parameter           Estimate             Error    t Value    Pr > |t|
+
+Intercept        5.503757546 B      0.17553667      31.35      <.0001
+age2      1     -2.587424744 B      0.17584961     -14.71      <.0001
+age2      2     -2.249164537 B      0.17684133     -12.72      <.0001
+age2      3     -1.770342603 B      0.17834253      -9.93      <.0001
+age2      4     -1.082104827 B      0.18584656      -5.82      <.0001
+age2      5      0.000000000 B                                       
+sex       F     -0.383454133 B      0.04018624      -9.54      <.0001
+sex       M      0.000000000 B                                       
+\end{verbatim}
+\normalsize
+
+The third linear models fit, containing interactions.
+For first portion I have trimmed off long printout on the right, i.e.
+the estimable functions for the age2*sex effect since they are not
+of interest.
+\small
+\begin{verbatim}
+                      Type I Estimable Functions
+ 
+                 --------------------Coefficients--------
+Effect           sex          age2
+
+Intercept        0            0                                       
+
+sex       F      L2           0                                       
+sex       M      -L2          0                                       
+
+age2      1      -0.0499*L2   L4                                      
+age2      2      -0.0373*L2   L5                                      
+age2      3      0.0269*L2    L6                                      
+age2      4      0.0482*L2    L7                                      
+age2      5      0.0121*L2    -L4-L5-L6-L7                            
+
+sex*age2  F 1    0.3786*L2    0.6271*L4+0.1056*L5+0.0796*L6+0.0346*L7 
+sex*age2  F 2    0.2791*L2    0.0778*L4+0.5992*L5+0.0587*L6+0.0255*L7 
+sex*age2  F 3    0.2182*L2    0.0527*L4+0.0528*L5+0.6245*L6+0.0173*L7 
+sex*age2  F 4    0.1055*L2    0.0188*L4+0.0188*L5+0.0142*L6+0.7006*L7 
+sex*age2  F 5    0.0186*L2    -0.7764*L4-0.7764*L5-0.777*L6-0.7781*L7 
+sex*age2  M 1    -0.4285*L2   0.3729*L4-0.1056*L5-0.0796*L6-0.0346*L7 
+sex*age2  M 2    -0.3164*L2   -0.0778*L4+0.4008*L5-0.0587*L6-0.0255*L7
+sex*age2  M 3    -0.1913*L2   -0.0527*L4-0.0528*L5+0.3755*L6-0.0173*L7
+sex*age2  M 4    -0.0573*L2   -0.0188*L4-0.0188*L5-0.0142*L6+0.2994*L7
+sex*age2  M 5    -0.0065*L2   -0.2236*L4-0.2236*L5-0.223*L6-0.2219*L7 
+
+                     Type II Estimable Functions
+ 
+                 --------------------Coefficients---------------------
+Effect           sex          age2
+
+Intercept        0            0                                       
+
+sex       F      L2           0                                       
+sex       M      -L2          0                                       
+
+age2      1      0            L4                                      
+age2      2      0            L5                                      
+age2      3      0            L6                                      
+age2      4      0            L7                                      
+age2      5      0            -L4-L5-L6-L7                            
+
+sex*age2  F 1    0.41*L2      0.6271*L4+0.1056*L5+0.0796*L6+0.0346*L7 
+sex*age2  F 2    0.3025*L2    0.0778*L4+0.5992*L5+0.0587*L6+0.0255*L7 
+sex*age2  F 3    0.2051*L2    0.0527*L4+0.0528*L5+0.6245*L6+0.0173*L7 
+sex*age2  F 4    0.073*L2     0.0188*L4+0.0188*L5+0.0142*L6+0.7006*L7 
+sex*age2  F 5    0.0093*L2    -0.7764*L4-0.7764*L5-0.777*L6-0.7781*L7 
+sex*age2  M 1    -0.41*L2     0.3729*L4-0.1056*L5-0.0796*L6-0.0346*L7 
+sex*age2  M 2    -0.3025*L2   -0.0778*L4+0.4008*L5-0.0587*L6-0.0255*L7
+sex*age2  M 3    -0.2051*L2   -0.0527*L4-0.0528*L5+0.3755*L6-0.0173*L7
+sex*age2  M 4    -0.073*L2    -0.0188*L4-0.0188*L5-0.0142*L6+0.2994*L7
+sex*age2  M 5    -0.0093*L2   -0.2236*L4-0.2236*L5-0.223*L6-0.2219*L7 
+
+
+                     Type III Estimable Functions
+ 
+                ---------------------Coefficients---------------------
+Effect          sex      age2                          sex*age2
+
+Intercept       0        0                             0              
+
+sex       F     L2       0                             0              
+sex       M     -L2      0                             0              
+
+age2      1     0        L4                            0              
+age2      2     0        L5                            0              
+age2      3     0        L6                            0              
+age2      4     0        L7                            0              
+age2      5     0        -L4-L5-L6-L7                  0              
+
+sex*age2  F 1   0.2*L2   0.5*L4                        L9             
+sex*age2  F 2   0.2*L2   0.5*L5                        L10            
+sex*age2  F 3   0.2*L2   0.5*L6                        L11            
+sex*age2  F 4   0.2*L2   0.5*L7                        L12            
+sex*age2  F 5   0.2*L2   -0.5*L4-0.5*L5-0.5*L6-0.5*L7  -L9-L10-L11-L12
+sex*age2  M 1   -0.2*L2  0.5*L4                        -L9            
+sex*age2  M 2   -0.2*L2  0.5*L5                        -L10           
+sex*age2  M 3   -0.2*L2  0.5*L6                        -L11           
+sex*age2  M 4   -0.2*L2  0.5*L7                        -L12           
+sex*age2  M 5   -0.2*L2  -0.5*L4-0.5*L5-0.5*L6-0.5*L7  L9+L10+L11+L12 
+
+
+Source                     DF      Type I SS    Mean Square   F Value
+
+sex                         1     142.193063     142.193063     45.97
+age2                        4    2069.943424     517.485856    167.30
+sex*age2                    4      87.218363      21.804591      7.05
+
+Source                     DF     Type II SS    Mean Square   F Value
+
+sex                         1     282.494304     282.494304     91.33
+age2                        4    2069.943424     517.485856    167.30
+sex*age2                    4      87.218363      21.804591      7.05
+
+
+Source                     DF    Type III SS    Mean Square   F Value
+
+sex                         1     126.961986     126.961986     41.05
+age2                        4    1999.446491     499.861623    161.60
+sex*age2                    4      87.218363      21.804591      7.05
+
+                                         Standard
+ Parameter                 Estimate         Error  t Value  Pr > |t|
+
+ yates                  -0.58972607    0.09204824    -6.41    <.0001
+
+                                       Standard
+ Parameter            Estimate            Error   t Value   Pr > |t|
+
+ Intercept         6.003043478 B     0.36672295     16.37     <.0001
+ sex       F      -1.024512614 B     0.41553944     -2.47     0.0137
+ sex       M       0.000000000 B                                    
+ age2      1      -3.176876326 B     0.36950532     -8.60     <.0001
+ age2      2      -2.787597918 B     0.37048599     -7.52     <.0001
+ age2      3      -2.088127335 B     0.37292760     -5.60     <.0001
+ age2      4      -1.353746449 B     0.38703805     -3.50     0.0005
+ age2      5       0.000000000 B                                    
+ sex*age2  F 1     0.813889663 B     0.42023749      1.94     0.0528
+ sex*age2  F 2     0.716160958 B     0.42189464      1.70     0.0896
+ sex*age2  F 3     0.330651265 B     0.42487846      0.78     0.4365
+ sex*age2  F 4     0.313230835 B     0.44127621      0.71     0.4778
+ sex*age2  F 5     0.000000000 B                                    
+ sex*age2  M 1     0.000000000 B                                    
+ sex*age2  M 2     0.000000000 B                                    
+ sex*age2  M 3     0.000000000 B                                    
+ sex*age2  M 4     0.000000000 B                                    
+ sex*age2  M 5     0.000000000 B                                    
+\end{verbatim}
+\normalsize
+
+The phreg printout for the additive  model with age and sex.
+\small
+\begin{verbatim}
+                 Testing Global Null Hypothesis: BETA=0
+
+         Test                 Chi-Square       DF     Pr > ChiSq
+
+         Likelihood Ratio      2357.5239        5         <.0001
+         Score                 3823.3905        5         <.0001
+         Wald                  2374.5250        5         <.0001
+
+
+                               Type 3 Tests
+
+                                        Wald
+                Effect      DF    Chi-Square    Pr > ChiSq
+
+                sex          1       69.9646        <.0001
+                age2         4     2374.5211        <.0001
+
+
+            Analysis of Maximum Likelihood Estimates
+
+                Parameter   Standard                        
+Parameter   DF   Estimate      Error Chi-Square Pr > ChiSq  
+
+sex       F  1   -0.36617    0.04378    69.9646     <.0001  
+age2      1  1   -4.18209    0.12180  1179.0289     <.0001  
+age2      2  1   -3.23859    0.11418   804.5068     <.0001  
+age2      3  1   -2.17521    0.10963   393.6524     <.0001  
+age2      4  1   -1.15226    0.11072   108.3077     <.0001  
+\end{verbatim}
+\normalsize
+
+The model with age*sex interaction.
+\small
+\begin{verbatim}
+                        Model Fit Statistics
+ 
+                                Without           With
+               Criterion     Covariates     Covariates
+
+               -2 LOG L       37736.900      35374.050
+               AIC            37736.900      35392.050
+               SBC            37736.900      35443.188
+
+
+               Testing Global Null Hypothesis: BETA=0
+ 
+       Test                 Chi-Square       DF     Pr > ChiSq
+
+       Likelihood Ratio      2362.8497        9         <.0001
+       Score                 3873.5113        9         <.0001
+       Wald                  2357.9498        9         <.0001
+
+
+                             Type 3 Tests
+ 
+                                   LR Statistics
+             Effect        DF    Chi-Square    Pr > ChiSq
+
+             sex            1        0.4607        0.4973
+             age2           4      932.1371        <.0001
+             sex*age2       4        5.3258        0.2555
+
+ 
+                                 Score Statistics
+             Effect        DF    Chi-Square    Pr > ChiSq
+
+             sex            1        0.4757        0.4904
+             age2           4     1506.8699        <.0001
+             sex*age2       4        5.2516        0.2624
+
+ 
+                                  Wald Statistics
+             Effect        DF    Chi-Square    Pr > ChiSq
+
+             sex            1        0.4833        0.4869
+             age2           4      964.6007        <.0001
+             sex*age2       4        5.2322        0.2643
+
+
+               Analysis of Maximum Likelihood Estimates
+ 
+                      Parameter     Standard
+Parameter       DF     Estimate        Error   Chi-Square   
+
+sex       F      1     -0.16537      0.23789       0.4833   
+age2      1      1     -4.02699      0.22585     317.9171   
+age2      2      1     -3.04796      0.21843     194.7187   
+age2      3      1     -1.99577      0.21577      85.5504   
+age2      4      1     -1.10659      0.22256      24.7216   
+sex*age2  F 1    1     -0.21121      0.26896       0.6167   
+sex*age2  F 2    1     -0.29334      0.25518       1.3214   
+sex*age2  F 3    1     -0.25663      0.24829       1.0684   
+sex*age2  F 4    1     -0.04339      0.25527       0.0289   
+
+
+                 Contrast      DF    Chi-Square    Pr > ChiSq
+
+                 NSTT sex       1        0.4833        0.4869
+                 NSTT age       4      964.6007        <.0001
+
+ 
+          Likelihood Ratio Statistics for Type 1 Analysis
+ 
+                                                      LR
+Source                    -2 Log L      DF    Chi-Square    Pr > ChiSq
+
+(Without Covariates)    37736.8997                                    
+sex                     37733.0932       1        3.8066        0.0511
+age2                    35379.3758       4     2353.7173        <.0001
+sex*age2                35374.0501       4        5.3258        0.2555
+
+ 
+                              Standard
+         Label    Estimate       Error    z Value    Pr > |z|
+
+         Yates     -0.3263     0.06149      -5.31      <.0001
+\end{verbatim}
+\normalsize
+
+\begin{thebibliography}{9}
+  \bibitem{Aitkin78} M. Aitkin (1978).
+    The analysis of unbalanced cross classifications (with discussion).
+    \emph{J Royal Stat Soc A} 141:195-223.
+
+  \bibitem{Dispenzieri12} A. Dispenzieri, J. Katzmann, R. Kyle, 
+    D. Larson, T. Therneau, C. Colby,
+         R. Clark, .G Mead, S. Kumar, 
+         L..J Melton III and  S.V. Rajkumar (2012).
+    Use of monoclonal serum immunoglobulin free light chains to predict 
+            overall survival in the general population,
+    \emph{Mayo Clinic Proc} 87:512--523.
+    
+  \bibitem{Herr86} D. G. Herr (1986).
+   On the History of ANOVA in Unbalanced, Factorial Designs: The First 30 Years.
+    \emph{Amer Statistician} 40:265-270. 
+  
+  \bibitem{Kyle06} R. Kyle, T. Therneau, S.V. Rajkumar,
+            D. Larson, M. Plevak, J. Offord,
+            A. Dispenzieri, J. Katzmann, and L.J. Melton, III (2006),
+	    Prevalence of monoclonal gammopathy of 
+              undetermined significance,
+	    \emph{New England J Medicine} 354:1362--1369.
+            
+  \bibitem{Macnaughton92}
+    D. B. Macnaughton (1992).  Which sum of squares are best in an
+    unbalanced analysis of variance.  www.matstat.com/ss.
+                 
+  \bibitem{Nelder77} J. Nelder (1977).  A reformulation of linear models 
+     (with discussion). 
+     \emph{J Royal Stat Soc A} 140:48--76.
+           
+  \bibitem{SASguide} SAS Institute Inc. (2008), 
+  The four types of estimable functions.  SAS/STAT 9.2 User's Guide,
+    chapter 15.
+   
+   \bibitem{Searle71} S. R. Searle, \emph{Linear Models}, Wiley, New York, 1971.
+   
+   \bibitem{Senn1} S. Senn. Multi-centre trials and the finally decisive 
+     argument. www.senns.demon.co.uk/wprose.html\#FDA. 
+
+   \bibitem{Senn2} S. Senn. Good mixed centre practice.
+          www.senns.demon.co.uk/wprose.html\#Mixed. 
+
+   \bibitem{Senn07} S. Senn. Statistical Issues in Drug Development,
+      Wiley, New York, 2007.
+
+   \bibitem{Senn00} S. Senn. The many modes of meta.
+            Drug Information J 34:535-549, 2000.
+
+  \bibitem{Therneau00} T. M. Therneau and P. M. Grambsch, \emph{Modeling Survival
+    Data: Extending the Cox Model}, Springer-Verlag, New York, 2000.
+    
+  \bibitem{Yates34} F. Yates (1934). 
+    The analysis of multiple classifications with
+    unequal numbers in the different classes. \emph{J Am Stat Assoc},
+    29:51--66.
+
+\end{thebibliography}
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/adjcurve.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/adjcurve.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/adjcurve.Rnw	(revision 2476)
@@ -0,0 +1,1185 @@
+\documentclass{article}[11pt]
+\usepackage{Sweave}
+\usepackage{amsmath}
+\addtolength{\textwidth}{1in}
+\addtolength{\oddsidemargin}{-.5in}
+\setlength{\evensidemargin}{\oddsidemargin}
+
+\SweaveOpts{keep.source=TRUE, fig=FALSE}
+% Ross Ihaka suggestions
+\DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em}
+\DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em}
+\fvset{listparameters={\setlength{\topsep}{0pt}}}
+\renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}}
+
+\SweaveOpts{prefix.string=adjcurve,width=6,height=4}
+\setkeys{Gin}{width=\textwidth}
+%\VignetteIndexEntry{Adjusted Survival Curves}
+
+<<init, echo=FALSE>>=
+options(continue="  ", width=60)
+options(SweaveHooks=list(fig=function() par(mar=c(4.1, 4.1, .3, 1.1))))
+pdf.options(pointsize=8) #text in graph about the same as regular text
+require(survival, quietly=TRUE)
+fdata <- flchain[flchain$futime > 7,]
+fdata$age2 <- cut(fdata$age, c(0,54, 59,64, 69,74,79, 89, 110),
+                  labels = c(paste(c(50,55,60,65,70,75,80),
+                                 c(54,59,64,69,74,79,89), sep='-'), "90+"))
+@ 
+
+\title{Adjusted Survival Curves}
+\author{Terry M Therneau, Cynthia S Crowson, Elizabeth J Atkinson}
+\date{Jan 2015}  
+\newcommand{\myfig}[1]{\includegraphics[height=!, width=\textwidth]
+                        {adjcurve-#1.pdf}}
+
+\begin{document}
+  \maketitle
+
+\section{Introduction}
+Suppose we want to investigate to what extent some factor influences
+survival, as an example we might compare the experience of 
+diabetic patients who are using metformin versus those on injected
+insulin as their primary treatment modality.  
+There is some evidence that metformin has a positive influence,
+particularly in cancers, 
+but the ascertainment is confounded by the fact that it is a
+first line therapy:
+the patients on metformin will on average be younger and have had
+a diabetes diagnosis for a shorter amount of time than those
+using insulin.
+``Young people live longer'' is not a particularly novel observation.
+
+
+The ideal way to test this is with a controlled clinical trial.
+This is of course not always possible, and assessments using available 
+data that includes and adjusts for such confounders is also needed.
+There is extensive literature --- and debate --- on this topic in the 
+areas of modeling and testing.
+The subtopic of how to create honest survival curve estimates in the
+presence of confounders is less well known, and is the focus
+of this note.
+   
+Assume that we have an effect of interest, treatment say, 
+and a set of possible confounding variables. 
+Creation a pair of adjusted survival curves has two parts:
+definition of a reference population for the confounders, 
+and then the computation of estimated curves for
+that population.  There are important choices in both steps.
+The first, definition of a target, is often not explicitly stated but
+can be critical.
+If an outcome differs with age, myocardial infarction say, and two treatments
+also had age dependent efficacy, then the comparison will depend greatly on
+whether we are talking about a population of young, middle aged, or older 
+subjects.
+
+The computational step has two main approaches.  
+The first, sometimes known as \emph{marginal} analysis, first reweights
+the data such that each subgroup's weighted distribution matches that
+of our population target.
+An immediate consequence is that all subgroups will be 
+ balanced with respect to the confounding variables.
+We can then proceed with a simple analysis of survival using the 
+reformulated data, ignoring the confounders.
+The second approach seeks to understand and model the effect of each
+confounder, with this we can then correct for them.  
+From a comprehensive overall model we can obtain predicted survival curves
+for any configuration of variables, and from these get predicted overall
+curves for the reference population.
+This is often called the \emph{conditional} approach since we are
+using conditional survival curves given covariates $x$.
+
+A third but more minor choice is division of the covariates $x$ into effects
+of interest vs. confounders.  
+For instance, we might want to see separate curves for two treatments, each
+adjusted for age and sex.  The reference population will describe the age and
+sex distribution.  For simplicity we will use $x$ to describe all the
+confounding variables and use $c$ for the control variable(s), e.g. treatment.
+The set $c$ might be empty, producing a single overall curve, but this is
+the uncommon case.
+As shown below, our two methods differ essentially in the \emph{order}
+in which the two necessary operations are done, balancing and survival
+curve creation.
+\begin{center}
+  \begin{tabular}{rccc}
+    Marginal: & balance data on $x$ & $\longrightarrow$ & 
+             form survival curves for each $c$\\
+    Conditional: & predicted curves for $\{x,c\}$ subset
+    & $\longrightarrow$ & average the predictions for each $c$
+   \end{tabular}
+\end{center}
+We can think of them as ``balance and then model'' versus 
+``model then balance''.
+An analysis might use a combinations of these, of course, balancing on
+some factors and modeling others.
+All analyses are marginal analyses with respect to important predictors
+that are unknown to us, although in that case we have no assurance of
+balance on those factors.
+
+\begin{figure}[tb]
+  \myfig{flc1}
+  \caption{Survival of \Sexpr{nrow(flchain)}  residents of Olmsted County, 
+    broken into three cohorts based on FLC value.}
+  \label{flc1}
+\end{figure}
+
+\section{Free Light Chain}
+Our example data set for this comparison uses a particular
+assay of plasma immunoglobulins and is based on work of Dr Angela Dispenzieri
+and her colleagues at the Mayo Clinic \cite{Dispenzieri12}.
+In brief: plasma cells (PC) are responsible for the production of
+immunoglobulins, but PC comprise only a small portion ($<1$\%) of the 
+total blood and marrow hematapoetic cell population in normal patients.
+The normal human repertoire is estimated to contain over
+$10^{8}$ unique immunoglobulins, conferring a broad range of immune
+protection.  In multiple myeloma, the most common form of plasma
+cell malignancy, almost all of
+the circulating antigen will be identical, the product of a single malignant 
+clone.
+An electrophoresis examination of circulating immunoglobulins will
+exhibit a ``spike'' corresponding to this unique molecule.
+This anomaly is used both as a diagnostic method and in monitoring
+the course of the disease under treatment.
+
+The presence of a similar, albeit much smaller, spike in normal patients has
+been a long term research interest of the Mayo Clinic
+hematology research group \cite{Kyle93}.  In 1995
+Dr Robert Kyle undertook a population based study of this, and collected
+serum samples on 19,261 of the 24,539 residents of Olmsted County, Minnesota,
+aged 50 years or more \cite{Kyle06}.
+In 2010 Dr. Angela Dispenzieri assayed a sub fraction of the immunoglobulins,
+the free light chain (FLC), on 15,748 of these subjects who had sufficient 
+remaining sera from the original sample collection.
+All studies took place under the oversight of the appropriate Institutional 
+Review Boards, which ensure rigorous safety and ethical standards in
+research.
+
+A subset of the Dispenzieri study is available in the survival
+package as data set \texttt{flchain}.  
+Because the original study assayed nearly the entire population, there is
+concern that some portions of the anonymized data could be linked to actual
+subjects by a diligent searcher, and so only a subset of the study has been
+made available as a measure to strengthen anonymity.
+It was randomly selected from the whole within sex and age 
+group strata so as to preserve the age/sex structure. 
+The data set contains 3 subjects whose blood sample was obtained on the day
+of their death.  It is rather odd to think of a sample obtained on
+the final day as ``predicting'' death, or indeed for any results obtained
+during a patient's final mortality cascade. 
+There are also a few patients with no follow-up beyond the clinic visit
+at which the assay occurred.
+We have chosen in this analysis to exclude 
+the handful of subjects with less 
+than 7 days of follow-up, leaving \Sexpr{nrow(fdata)} observations.
+
+
+\begin{table} \centering
+  \begin{tabular}{l|cccc}
+  & 50--59 & 60--69 & 70--79 & 80+ \\ \hline
+
+<<echo=FALSE, fig=FALSE, results=tex>>=
+group3 <- factor(1+ 1*(fdata$flc.grp >7) + 1*(fdata$flc.grp >9),
+                      levels=1:3, 
+                      labels=c("FLC < 3.38", "3.38 - 4.71", "FLC > 4.71"))
+age1 <- cut(fdata$age, c(49,59,69,79, 110))
+levels(age1) <- c(paste(c(50,60,70), c(59,69,79), sep='-'), '80+')
+temp1 <- table(group3, age1)
+temp2 <- round(100* temp1/rowSums(temp1))
+pfun <- function(x,y) {
+    paste(ifelse(x<1000, "\\phantom{0}", ""), x, " (", 
+          ifelse(y<10,   "\\phantom{0}", ""), y,  ") ", sep="")
+}
+cat(paste(c("FLC $<$ 3.38", pfun(temp1[1,], temp2[1,])), collapse=" & "), "\\\\\n")
+cat(paste(c("FLC 3.38--4.71", pfun(temp1[2,], temp2[2,])), collapse=" & "), "\\\\\n")
+cat(paste(c("FLC $>$ 4.71", pfun(temp1[3,], temp2[3,])), collapse=" & "), "\n")
+@ 
+\end{tabular}
+\caption{Comparison of the age distributions (percents) for each of the
+  three groups.}
+\label{tflc1}
+\end{table}
+
+Figure \ref{flc1} shows the survival curves for three subgroups of
+the patients: those whose total free light chain (FLC) is in the upper
+10\% of all values found in the full study,
+those in the 70--89th percentile, and the remainder.
+There is a clear survival effect.  
+Average free light chain amounts rise with age, however, 
+at least in part because it is eliminated through the kidneys and renal
+function declines with age.  
+Table \ref{tflc1} shows the age distribution for each of the three groups. 
+In the highest decile of FLC (group 3)  over half the subjects are
+age 70 or older compared to only 23\% in those below the 70th percentile.
+How much of the survival difference is truly associated with FLC
+and how much is simply an artifact of age?
+ (The cut points are arbitrary, but we have chosen to mimic the original study
+and retain them.  Division into three groups is a convenient number to 
+illustrate the methods in this vignette, but we do not make any claim that
+such a categorization is optimal or even sensible statistical practice.)
+ The R code for figure 1 is shown below.  
+<<flc1, fig=TRUE, include=FALSE>>=
+fdata <- flchain[flchain$futime >=7,]
+fdata$age2 <- cut(fdata$age, c(0,54, 59,64, 69,74,79, 89, 110),
+                  labels = c(paste(c(50,55,60,65,70,75,80),
+                                 c(54,59,64,69,74,79,89), sep='-'), "90+"))
+fdata$group <- factor(1+ 1*(fdata$flc.grp >7) + 1*(fdata$flc.grp >9),
+                      levels=1:3, 
+                      labels=c("FLC < 3.38", "3.38 - 4.71", "FLC > 4.71"))
+		      
+sfit1 <- survfit(Surv(futime, death) ~ group, fdata)
+plot(sfit1, mark.time=F, col=c(1,2,4), lty=1, lwd=2,
+     xscale=365.25, xlab="Years from Sample", 
+     ylab="Survival")
+text(c(11.1, 10.5, 7.5), c(.88, .57, .4),
+     c("FLC < 3.38", "3.38 - 4.71", "FLC > 4.71"), col=c(1,2,4))     
+@ 
+
+\section{Reference populations}
+There are a few populations that are commonly used as the
+reference group.
+\begin{enumerate}
+  \item Empirical.  The overall distribution of confounders $x$ in the
+    data set as a whole.  For this study we would use the observed
+    age/sex distribution, ignoring FLC group.  This is also
+    called the ``sample'' or ``data'' distribution.
+  \item External reference.  The distribution from some external
+    study or standard.  
+  \item Internal reference.  A particular subset of the data is
+    chosen as the reference, and other subsets are then aligned with
+    it.  
+\end{enumerate}
+Method 2 is common in epidemiology, using a reference population based
+on a large external population such as the age/sex distribution of the
+2000 United States census.  Method 3 most often arises in
+the case-control setting, where one group is small and precious 
+(a rare disease say) and the other group (the controls) from which we can
+sample is much larger.  
+In each case the final result of the computation can be thought of as the
+expected answer we ``would obtain'' in a study that was perfectly balanced with
+respect to the list of confounders $x$.
+Population 1 is the most frequent.
+
+
+\section{Marginal approach}
+\begin{table} \centering
+  \begin{tabular}{crrrrrrrr}
+  \multicolumn{3}{c}{Females} \\
+& \multicolumn{8}{c}{Age} \\
+FLC group & 50--54& 55--59& 60--64 & 65--69 & 70--74 & 75--79 & 80--89& 90+ \\
+   \hline
+<<echo=F, results=tex>>=
+
+tab1 <- with(fdata, table(group, age2, sex))
+cat("Low&", paste(tab1[1,,1], collapse=" &"), "\\\\\n")
+cat("Med&", paste(tab1[2,,1], collapse=" &"), "\\\\\n")
+cat("High&", paste(tab1[3,,1], collapse=" &"), "\\\\\n")
+@ 
+\\  \multicolumn{3}{c}{Males} \\
+% & 50--54& 55--59& 60--64 & 65--69 & 70--74 & 75--79 & 80--89& 90+ \\ \hline
+
+<<echo=F, results=tex>>=
+cat("Low&", paste(tab1[1,,2], collapse=" &"), "\\\\\n")
+cat("Med&", paste(tab1[2,,2], collapse=" &"), "\\\\\n")
+cat("High&", paste(tab1[3,,2], collapse=" &"), "\n")
+@ 
+\end{tabular}
+\caption{Detailed age and sex distribution for the study population}
+\label{tab2}
+\end{table}
+
+\subsection{Selection}
+One approach for balancing is to select a subset of the data
+such that its distribution matches
+the referent for each level of $c$, i.e., for each curve that we wish to
+obtain.  
+As an example we take a case-control like approach to the FLC data,
+with FLC high
+as the ``cases'' since it is the smallest group.
+Table \ref{tab2} shows a detailed distribution of the data with
+respect to age and sex.
+ The balanced subset has all \Sexpr{tab1[3,1,1]} 
+females aged 50--54 from the high FLC group,
+a random sample of \Sexpr{tab1[3,1,1]} out of the \Sexpr{tab1[1,1,1]}
+females in the age 50--54 low FLC group, 
+and \Sexpr{tab1[3,1,1]} out of \Sexpr{tab1[2,1,1]} for the middle FLC.
+Continue this for all age/sex subsets.
+We cannot \emph{quite} compute a true case-control estimate for this
+data since there are not enough ``controls'' in the female 90+ category
+to be able to select one unique control for each case,
+and likewise in the male 80-89 and 90+ age groups.  
+To get around this we will sample with 
+replacement in these strata.
+
+\begin{figure}[tb]
+  \myfig{flc2}
+  \caption{Survival curves from a case-control sample are shown as solid
+        lines, dashed lines are curves for the unweighted data set 
+           (as found in  figure \ref{flc1}).}
+\label{flc2}
+\end{figure}
+<<flc2, echo=TRUE, fig=TRUE, include=FALSE>>=
+temp <- with(fdata, table(group, age2, sex))
+dd <- dim(temp)
+
+# Select subjects
+set.seed(1978)
+select <- array(vector('list', length=prod(dd)), dim=dd)
+for (j in 1:dd[2]) {
+    for (k in 1:dd[3]) {
+        n <- temp[3,j,k] # how many to select
+        for (i in 1:2) {
+            indx <- which(as.numeric(fdata$group)==i &
+                          as.numeric(fdata$age2) ==j &
+                          as.numeric(fdata$sex) ==k)
+            select[i,j,k] <- list(sample(indx, n, replace=(n> temp[i,j,k])))
+        }
+        indx <- which(as.numeric(fdata$group)==3 &
+                      as.numeric(fdata$age2) ==j &
+                      as.numeric(fdata$sex) ==k)
+        select[3,j,k] <- list(indx)  #keep all the group 3 = high
+    }
+}
+
+data2 <- fdata[unlist(select),]
+sfit2 <- survfit(Surv(futime, death) ~ group, data2)
+plot(sfit2, mark.time=F, col=c(1,2,4), lty=1, lwd=2,
+     xscale=365.25, xlab="Years from Sample", 
+     ylab="Survival")
+lines(sfit1,  mark.time=F, col=c(1,2,4), lty=2, lwd=1,
+      xscale=365.25)
+legend(2,.4, levels(fdata$group), lty=1, col=c(1,2,4),
+               bty='n', lwd=2)
+@ 
+
+
+
+%\begin{table}[tb] \centering
+%  \begin{tabular}{ccccccc}
+%  &\multicolumn{2}{c}{FLC low} & \multicolumn{2}{c}{FLC med}&
+%    \multicolumn{2}{c}{FLC high} \\
+% & Total & Subset & Total & Subset & Total & Subset \\ \hline
+%<<echo=FALSE, results=tex>>=
+%tab3 <- with(fdata, table(age2, group))
+%tab3 <- round(100*scale(tab3, center=F, scale=colSums(tab3)))
+%tab4 <- with(data2, table(age2, group))
+%tab4 <- round(100*scale(tab4, center=F, scale=colSums(tab4)))
+%tab5 <- cbind(tab3[,1], tab4[,1], tab3[,2], tab4[,2], tab3[,3], tab4[,3])
+%pfun <- function(x) paste(ifelse(x<10, paste("\\phantom{0}", x), x),
+%                          collapse=" &")
+%dtemp <- dimnames(tab5)[[1]]
+%for (j in 1:7) 
+%    cat(dtemp[j], " &", pfun(tab5[j,]), "\\\\\n")
+%cat(dtemp[8], " & ",    pfun(tab5[8,]), "\n")
+%@ 
+%\end{tabular}
+%\caption{Age distributions (\%) of the original data set along with that of
+%         the subset, for the three FLC groups.}
+%\label{tflc2}
+%\end{table}
+
+The survival curves for the subset data are shown in figure \ref{flc2}.  
+The curve for the high risk group is unchanged, since by definition
+all of those subjects were retained.  We see that adjustment for
+age and sex has reduced the apparent survival difference between
+the groups by about half, but a clinically important effect for
+high FLC values remains.
+The curve for group 1 has moved more than that for group 2 since the
+age/sex adjustment is more severe for that group.
+
+<<echo=FALSE>>=
+# I can't seem to put this all into an Sexpr
+z1 <- with(fdata,table(age, sex, group))
+z2<- apply(z1, 1:2, min)
+ztemp <-  3*sum(z2)
+z1b <- with(fdata, table(age>64, sex, group))
+ztemp2 <- sum(apply(z1b, 1:2, min))
+@ 
+
+In actual practice, case-control designs arise when matching and
+selection can occur \emph{before} data collection, leading to a
+substantial decrease in the amount of data that needs to be
+gathered and a consequent cost or time savings.  
+When a data set is already in hand it has two major disadvantages.
+The first is that the approach wastes data; throwing away information in
+order to achieve balance is always a bad idea.
+Second is that though it returns an unbiased comparison, the result
+is for a very odd reference population.
+
+One advantage of matched subsets is that standard variance calculations
+for the curves are correct; the values provided by the usual Kaplan-Meier
+program need no further processing.
+We can also use the usual statistical tests to check for
+differences between the curves.
+<<>>=
+survdiff(Surv(futime, death) ~ group, data=data2)
+@ 
+
+\subsection{Reweighting}
+\label{sect:logistic}
+A more natural way to adjust the data distribution is by weighting.
+Let $\pi(a,s)$, $a$ = age group, $s$ = sex be a target population age/sex
+distribution for our graph,
+and $p(a,s,i)$ the observed probability of each age/sex/group combination
+in the data.  Both $\pi$ and $p$ sum to 1.
+Then if each observation in the data set is given a case weight of
+\begin{equation}
+  w_{asi} = \frac{\pi(a,s)}{p(a,s,i)} \label{wt1}
+\end{equation}
+the weighted age/sex distribution for each of the groups will equal 
+the target distribution $\pi$.
+An obvious advantage of this approach
+is that the resulting curves represent a tangible and well defined group.
+
+As an example, we will first adjust our curves to match the age/sex distribution
+of the 2000 US population, a common reference target in epidemiology studies.
+The \texttt{uspop2} data set is found in later releases of the survival
+package in R.  It is an array of counts with dimensions of age,
+sex, and calendar year.  We only want ages of 50 and over, and the population
+data set has collapsed ages of 100 and over into a single category.
+We create a table \texttt{tab100} of observed age/sex counts within group 
+for our own data, using the same upper age threshold.
+New weights are the values $\pi/p$ = \texttt{pi.us/tab100}.
+<<>>=
+refpop <- uspop2[as.character(50:100),c("female", "male"), "2000"]
+pi.us  <- refpop/sum(refpop)
+age100 <- factor(ifelse(fdata$age >100, 100, fdata$age), levels=50:100)
+tab100 <- with(fdata, table(age100, sex, group))/ nrow(fdata)
+us.wt  <- rep(pi.us, 3)/ tab100  #new weights by age,sex, group
+range(us.wt)
+@ 
+There are infinite weights!  This is because the US population has coverage
+at all ages, but our data set does not have representatives in every 
+age/sex/FLC group combination; there are for instance no 95 year old males in
+in the data set. 
+Let us repeat the process, collapsing the US population from single years into
+the 8 age groups used previously in table \ref{tab2}.
+Merging the per age/sex/group weights found in the 3-dimensional array
+\texttt{us.wt} into the data set as per-subject weights uses matrix 
+subscripts, a useful but less known feature of R.
+<<>>=
+temp <- as.numeric(cut(50:100, c(49, 54, 59, 64, 69, 74, 79, 89, 110)+.5))
+pi.us<- tapply(refpop, list(temp[row(refpop)], col(refpop)), sum)/sum(refpop)
+tab2 <- with(fdata, table(age2, sex, group))/ nrow(fdata)
+us.wt <- rep(pi.us, 3)/ tab2
+range(us.wt)
+index <- with(fdata, cbind(as.numeric(age2), as.numeric(sex), 
+                           as.numeric(group)))
+fdata$uswt <- us.wt[index]                      
+sfit3a <-survfit(Surv(futime, death) ~ group, data=fdata, weight=uswt) 
+@ 
+\begin{figure}[tb]
+  \myfig{flc3a}
+  \caption{Population totals for the US reference (red) and for the observed
+    data set (black).}
+  \label{flc3a}
+\end{figure}
+
+A more common choice is to use the overall age/sex distribution of the 
+sample itself as
+our target distribution $\pi$, i.e., the empirical distribution.
+Since FLC data set is population based and has excellent coverage
+of the county, this will not differ greatly from the US population in this
+case, as is displayed in figure \ref{flc3a}.
+
+<<flc3a,  fig=TRUE, include=FALSE >>=
+tab1 <- with(fdata, table(age2, sex))/ nrow(fdata)
+matplot(1:8, cbind(pi.us, tab1), pch="fmfm", col=c(2,2,1,1),
+        xlab="Age group", ylab="Fraction of population",
+        xaxt='n')
+axis(1, 1:8, levels(fdata$age2))
+
+tab2 <- with(fdata, table(age2, sex, group))/nrow(fdata)
+tab3 <- with(fdata, table(group)) / nrow(fdata)
+
+rwt <- rep(tab1,3)/tab2 
+fdata$rwt <- rwt[index]  # add per subject weights to the data set
+sfit3 <- survfit(Surv(futime, death) ~ group, data=fdata, weight=rwt)
+
+temp <- rwt[,1,]   #show female data
+temp <- temp %*% diag(1/apply(temp,2,min))
+round(temp, 1) #show female data
+@ 
+
+\begin{figure}[tb]
+  \myfig{flc3}
+  \caption{Survival curves for the three groups using reweighted data
+           are shown with solid lines, the original unweighted analysis
+           as dashed lines. The heavier solid line adjusts to the Olmsted
+           population and the lighter one to the US population.}
+  \label{flc3}
+\end{figure}
+
+<<flc3, fig=TRUE, include=FALSE>>=
+plot(sfit3, mark.time=F, col=c(1,2,4), lty=1, lwd=2,
+     xscale=365.25, xlab="Years from Sample", 
+     ylab="Survival")
+lines(sfit3a,  mark.time=F, col=c(1,2,4), lty=1, lwd=1,
+      xscale=365.25)
+lines(sfit1,  mark.time=F, col=c(1,2,4), lty=2, lwd=1,
+      xscale=365.25)
+legend(2,.4, levels(fdata$group), lty=1, col=c(1,2,4),
+               bty='n', lwd=2)
+@ 
+
+The calculation of weights is shown above, and finishes with a table
+of the weights for the females.  The table was scaled so as 
+to have a minimum weight
+of 1 in each column for simpler reading.
+We see that for the low FLC group there are larger weights for
+the older ages, whereas the high FLC group requires substantial
+weights for the youngest ages in order to achieve balance.
+The resulting survival curve is shown in figure \ref{flc3}.  The
+distance between the adjusted curves is similar to the results
+from subset selection, which is as expected since both approaches
+are correcting for the same bias, but results are now for an overall population 
+distribution that matches Olmsted County.
+The curves estimate what the results would have looked like, had
+each of the FLC groups contained the full distribution of ages.
+
+Estimation based on reweighted data is a common theme in survey sampling.
+Correct standard errors for the curves are readily computed using
+methods from that literature, and are available in some software packages.
+In R the \texttt{svykm} routine in the \texttt{survey} package handles both this
+simple case and more complex sampling schemes.  
+Tests of the curves can be done using a weighted Cox model;
+the robust variance produced by \texttt{coxph} is identical to the standard
+Horvitz-Thompsen variance estimate used in survey sampling \cite{Binder92}.
+The robust score test from \texttt{coxph} corresponds to a log-rank test 
+corrected for weighting.
+(In the example below the svykm function is only run if the survey package
+is already loaded, as the variance calculation is very slow for this large
+data set.)
+<<>>=
+id <- 1:nrow(fdata)
+cfit <- coxph(Surv(futime, death) ~ group + cluster(id), data=fdata, 
+              weight=rwt)
+summary(cfit)$robscore
+
+if (exists("svykm")) { #true if the survey package is loaded
+    sdes <- svydesign(id = ~0, weights=~rwt, data=fdata)
+    dfit <- svykm(Surv(futime, death) ~ group, design=sdes, se=TRUE)
+}
+@ 
+Note: including the \texttt{cluster} term in the coxph call causes it to
+treat the weights as resampling values and thus use the proper 
+survey sampling style variance.  
+The default without that term would be to treat the case weights as
+replication counts. 
+This same alternate variance estimate is also called for when there are
+correlated observations; many users will be more familiar with the
+cluster statement in that context.
+
+\paragraph{Inverse probability weighting}
+Notice that when using the overall population as the target distribution
+$\pi$ we can use Bayes rule to rewrite the weights as
+\begin{align*}
+  \frac{1}{w_{asi}} &= \frac{{\rm Pr}({\rm age}=a, {\rm sex} =s, 
+                                          {\rm group}=i)}
+            {{\rm Pr}({\rm age}=a, {\rm sex} =s)} \\
+    &= {\rm Pr}({\rm group}=i | {\rm age}=a, {\rm sex} =s)
+\end{align*}
+
+This last is precisely the probability estimated by a logistic
+regression model, leading to \emph{inverse probability weighting}
+as an alternate label for this approach.
+We can reproduce the weights calculated just above with three
+logistic regression models.
+<<ipw>>=
+options(na.action="na.exclude")
+gg <- as.numeric(fdata$group)
+lfit1 <- glm(I(gg==1) ~ factor(age2) * sex, data=fdata,
+            family="binomial")
+lfit2 <- glm(I(gg==2) ~ factor(age2) * sex, data=fdata,
+            family="binomial")
+lfit3 <- glm(I(gg==3) ~ factor(age2) * sex, data=fdata,
+            family="binomial")
+temp <- ifelse(gg==1, predict(lfit1, type='response'),
+               ifelse(gg==2, predict(lfit2, type='response'),
+                      predict(lfit3, type='response')))
+all.equal(1/temp, fdata$rwt)
+@ 
+If there were only 2 groups then only a single regression model is
+needed since P(group 2) = 1 - P(group 1).
+Note the setting of na.action, which causes the predicted vector to have
+the same length as the original data even when there are missing values.
+This simplifies merging the derived weights with the original data set.
+
+An advantage of the regression framework is that one can easily
+accommodate more variables by using a model with additive terms
+and only a few selected interactions, and the model can contain continuous
+as well as categorical predictors.
+The disadvantage is that such models are often used without the necessary
+work to check their validity.  
+For instance models with \texttt{age + sex} could have been used above.
+This makes the assumption that the odds of being a member of group 1
+is linear in age and with the same slope for males and females; ditto
+for the models for group 2 and group 3.
+How well does this work?
+Since the goal of reweighting is to standardize the ages,
+a reasonable check is to compute and plot the reweighted 
+age distribution for each flc group.
+ 
+\begin{figure}[tb]
+  \myfig{flc4}
+  \caption{The re-weighted age distribution using logistic regression
+    with continuous age, for females, FLC groups 1--3.
+    The target distribution is shown as a ``+''. 
+  The original unadjusted distribution is shown as dashed lines.}
+  \label{flc4}
+\end{figure}
+Figure \ref{flc4} shows the result. 
+The reweighted age distribution is not perfectly balanced, i.e., the 
+`1', `2' and `3' symbols do no exactly overlay one another,
+but in this case the simple linear
+model has done an excellent job.
+We emphasize that whenever the reweighting is based on a simplified model
+then such a check is obligatory.  
+It is quite common that a simple model is not sufficient and the resulting
+weight adjustment is inadequate. 
+Like a duct tape auto repair, proceeding forward as though
+the underlying problem has been addressed is then most unwise.
+<<flc4, fig=T, include=F>>=
+lfit1b <-glm(I(gg==1) ~ age + sex, data=fdata,
+            family="binomial")
+lfit2b <- glm(I(gg==2) ~ age +sex, data=fdata,
+            family="binomial")
+lfit3b <- glm(I(gg==3) ~ age + sex, data=fdata,
+            family="binomial")
+
+# weights for each group using simple logistic
+twt <- ifelse(gg==1, 1/predict(lfit1b, type="response"),
+              ifelse(gg==2, 1/predict(lfit2b, type="response"),
+                                     1/predict(lfit3b, type="response")))
+tdata <- data.frame(fdata, lwt=twt)
+
+#grouped plot for the females
+temp <- tdata[tdata$sex=='F',]
+temp$gg <- as.numeric(temp$group)
+c1 <- with(temp[temp$gg==1,], tapply(lwt, age2, sum))
+c2 <- with(temp[temp$gg==2,], tapply(lwt, age2, sum))
+c3 <- with(temp[temp$gg==3,], tapply(lwt, age2, sum))
+
+xtemp <- outer(1:8, c(-.1, 0, .1), "+") #avoid overplotting
+ytemp <- 100* cbind(c1/sum(c1), c2/sum(c2), c3/sum(c3))
+
+matplot(xtemp, ytemp, col=c(1,2,4),
+        xlab="Age group", ylab="Weighted frequency (%)", xaxt='n')
+ztab <- table(fdata$age2)
+points(1:8, 100*ztab/sum(ztab), pch='+', cex=1.5, lty=2)
+# Add the unadjusted
+temp <- tab2[,1,]
+temp <- scale(temp, center=F, scale=colSums(temp))
+matlines(1:8, 100*temp, pch='o', col=c(1,2,4), lty=2)
+axis(1, 1:8, levels(fdata$age2))
+@
+
+\paragraph{Rescaled weights}
+As the weights were defined in equation \ref{wt1}, the sum of weights
+for each of the groups is \Sexpr{nrow(fdata)}, 
+the number of observations in the
+data set.  Since the number of subjects in group 3 is one seventh
+of that in group 1, the average weight in group 3 is much larger.
+An alternative is to define weights in terms of the \emph{within}
+group distribution rather than the overall distribution, leading to 
+the rescaled weights $w^*$
+\begin{align}
+   w^* &= \frac{\pi(a,s)}{p(a,s|i)} \label{wt2} \\
+      &=  \frac{{\rm P}({\rm group}=i)}
+       {{\rm P}({\rm group}=i | {\rm age}=a, {\rm sex}=s)} \label{wt2b}
+\end{align}
+Each group's weights are rescaled by the overall prevalence of the group.
+In its simplest form, the weights in each group are scaled to add up to the
+number of subjects in the group.
+<<>>=
+# compute new weights
+wtscale <- table(fdata$group)/ tapply(fdata$rwt, fdata$group, sum)
+wt2 <- c(fdata$rwt * wtscale[fdata$group])
+c("rescaled cv"= sd(wt2)/mean(wt2), "rwt cv"=sd(fdata$rwt)/mean(fdata$rwt))
+
+cfit2a <- coxph(Surv(futime, death) ~ group + cluster(id),
+                data=fdata, weight= rwt)
+cfit2b <- coxph(Surv(futime, death) ~ group + cluster(id),
+                data=fdata, weight=wt2) 
+round(c(cfit2a$rscore, cfit2b$rscore),1)
+@ 
+The rescaling results in weights that are much less variable
+across groups.
+This operation has no impact on the individual survival curves or
+their standard errors, since within group we have multiplied all weights
+by a constant.
+When comparing curves across groups, however, the rescaled weights
+reduce the standard error of the test statistic.
+This results in increased power for the robust score test, although in
+this particular data set the improvement is not very large.
+
+\section{Conditional method}
+In the marginal approach we first balance the data set and then compute
+results on the adjusted data.  
+In the conditional approach we first compute a predicted survival curve
+for each subject that accounts for flc group, age and sex, 
+and then take a weighted average of the curves to get an overall estimate
+for each flc group.
+For both methods a central consideration is the population of interest,
+which drives the weights.  Modeling has not removed the question of
+\emph{who} these curves should represent, it has simply changed the order of
+operation between the weighting step and the survival curves step.
+
+\subsection{Stratification}
+Our first approach is to subset the data into homogeneous age/sex strata,
+compute survival curves within each strata, and then combine results.
+We will use the same age/sex combinations as before.
+The interpretation of these groups is different, however. 
+In the marginal approach it was important to find age/sex groups for
+which the probability of membership within each FLC group was constant
+within the strata (independent of age and sex, within strata), 
+in this case it is important that the survival for each FLC group is
+constant in each age/sex stratum.  Homogeneity of
+membership within each stratum and homogeneity of survival within each
+stratum may lead to different partitions for some data sets.
+
+Computing curves for all the combinations is easy.
+<<strata>>=
+allfit <- survfit(Surv(futime/365.25, death) ~ group + 
+                               age2 + sex, fdata)
+temp <- summary(allfit)$table
+temp[1:6, c(1,4)] #abbrev printout to fit page
+@ 
+The resultant survival object has 48 curves: 8 age groups * 2 sexes *
+3 FLC groups.
+To get a single curve for the first FLC group we need to take a weighted
+average over the 16 age/sex combinations that apply to that group,
+and similarly for the second and third FLC subset.
+Combining the curves is a bit of a nuisance computationally
+because each of them is reported on a different set of time points.
+A solution is to use the 
+\texttt{summary} function for survfit objects along with the \texttt{times}
+argument of that function.  
+This feature was originally designed to allow printout of curves at selected
+time points (6 months, 1 year, \ldots), but can also be used to 
+select a common set of time points for averaging.
+We will arbitrarily use 4 per year, which is sufficient to create a
+visually smooth plot over the time span of interest.
+By default \texttt{summary} does not return data for times beyond the
+end of a curve,
+i.e., when there are no subjects left at risk;
+the \texttt{extend} argument causes
+a full set of times to always be reported.
+As seen in the printout above, the computed curves are in
+sex within age within group order.
+The overall curve is a weighted average chosen to match the original
+age/sex distribution of the population.
+
+<<flc5, fig=TRUE, include=FALSE>>=
+xtime <- seq(0, 14, length=57)  #four points/year for 14 years
+smat <- matrix(0, nrow=57, ncol=3) # survival curves
+serr <- smat  #matrix of standard errors
+pi <- with(fdata, table(age2, sex))/nrow(fdata)  #overall dist
+for (i in 1:3) {
+    temp <- allfit[1:16 + (i-1)*16] #curves for group i
+    for (j in 1:16) {
+        stemp <- summary(temp[j], times=xtime, extend=T)
+        smat[,i] <- smat[,i] + pi[j]*stemp$surv
+        serr[,i] <- serr[,i] + pi[i]*stemp$std.err^2
+        }
+    }
+serr <- sqrt(serr)
+
+matplot(xtime, smat, type='l', lwd=2, col=c(1,2,4), ylim=c(0,1),
+        lty=1, xlab="Years from sample", ylab="Survival")
+lines(sfit1, mark.time=F, lty=2, col=c(1,2,4), xscale=365.25)
+@ 
+\begin{figure}[tb]
+  \myfig{flc5}
+  \caption{Estimated curves from a stratified model, along with those
+    from the uncorrected fit as dashed lines.}
+  \label{flc5}
+\end{figure}
+Figure \ref{flc5} shows the resulting averaged curves.
+Overlaid are the curves for the unadjusted model.
+Very careful comparison of these curves with the weighted estimate
+shows that they have almost identical spread, with just a tiny amount
+of downward shift.
+
+There are two major disadvantages to the stratified curves.
+The first is that when the original data set is small 
+or the number of confounders is
+large, it is not always feasible to stratify into a
+large enough set of groups that each will be homogeneous.
+The second is a technical aspect of the standard error estimate.
+Since the curves are formed from disjoint sets of observations they
+are independent and the variance of the weighted average is then a weighted
+sum of variances.  However,
+when a Kaplan-Meier curve drops to zero the usual standard error
+estimate at that point involves 0/0 and becomes undefined,
+leading to the NaN (not a number) value in R. 
+Thus the  overall standard error becomes undefined if any of the 
+component curves falls to zero.  
+In the above example this happens  at about the
+half way point of the graph.
+(Other software packages carry forward the se value from the last
+no-zero point on the curve, but the statistical validity of this is
+uncertain.)
+
+To test for overall difference between the curves we can use a stratified
+test statistic, which is a sum of the test statistics computed within each
+subgroup.  The most common choice is the stratified log-rank statistic
+which is shown below.  
+The score test from a stratified Cox model would give the same result.
+<<>>=
+survdiff(Surv(futime, death) ~ group + strata(age2, sex), fdata)
+@ 
+
+\subsection{Modeling}
+The other approach for conditional estimation
+is to model the risks due to the confounders.
+Though we have left it till last, this is usually the first 
+(and most often the only) approach used by most data analysts.
+
+Let's start with the very simplest method: a stratified Cox
+model.
+<<flc8, echo=TRUE, eval=TRUE, fig=TRUE, include=FALSE>>=
+cfit4a <- coxph(Surv(futime, death) ~ age + sex + strata(group),
+               data=fdata)
+surv4a <- survfit(cfit4a)
+plot(surv4a, col=c(1,2,4), mark.time=F, xscale=365.25,
+     xlab="Years post sample", ylab="Survival")
+@ 
+This is a very fast and easy way to produce a set of curves,
+but it has three problems.
+First is the assumption that this simple
+model adequately accounts for the effects of age and sex on survival.
+That is, it assumes that the effect of age on mortality is linear, the 
+sex difference is constant across all ages, and that the
+coefficients for both are identical for the three FLC groups.
+The second problem with this approach is that it
+produces the predicted curve for a single hypothetical subject 
+of age \Sexpr{round(cfit4a[['means']][1], 1)} years and sex
+\Sexpr{round(cfit4a[['means']][2],2)}, the means of the
+covariates, under each of the 3 FLC scenarios. 
+However, we are interested in the adjusted survival of a \emph{cohort}
+of subjects in each range of FLC, and
+the survival of an ``average'' subject is not the average
+survival of a cohort.
+The third and most serious issue is that it is not clear exactly
+what these ``adjusted'' curves represent --- 
+exactly who \emph{is} this subject a sex of 
+\Sexpr{round(cfit4a[['means']][2],2)}?
+Multiple authors have commented on this problem,
+see Thomsen et al \cite{Thomsen91}, Nieto and Coresh \cite{Nieto96}
+or chapter 10 of Therneau and Grambsh \cite{Therneau00} for examples.
+Even worse is a Cox model that treated the FLC group as a covariate,
+since that will impose a an additional constraint of proportional 
+hazards across the 3 FLC groups.
+
+\begin{figure}
+  \myfig{flc6}
+  \caption{Curves for the three groups, adjusted for age and sex via
+    a risk model.  Dotted lines show the curves from marginal adjustment.
+    Solid curves are for the simple risk model \texttt{cfit4a}.}
+  \label{flc6}
+\end{figure}
+
+We can address this last problem  problem by doing a proper average.
+A Cox model fit can produce the predicted curves for any
+age/sex combination. The key idea is to produce a predicted survival
+curve for every subject of some hypothetical population, and then
+take the average of these curves.
+The most straightforward approach is to retrieve the predicted individual 
+curves for all
+\Sexpr{nrow(fdata)} subjects in the data set, assuming each of the three
+FLC strata one by one, and take a simple average for each strata.
+For this particular data set that is a bit slow since it involves
+\Sexpr{nrow(fdata)} curves.  However there are only 98
+unique age/sex pairs in the data, 
+it is sufficient to obtain the 98 * 3 FLC groups unique curves and
+take a weighted average.
+We will make use of the survexp function, which is designed for just this
+purpose.
+Start by creating a data set which has one row for each age/sex combination
+along with its count.
+Then replicate it into 3 copies, assigning one copy to each of the three
+FLC strata.  
+
+<<flc6, echo=TRUE, fig=TRUE, include=FALSE>>=
+tab4a <- with(fdata, table(age, sex))
+uage <- as.numeric(dimnames(tab4a)[[1]])
+tdata <- data.frame(age = uage[row(tab4a)],
+                    sex = c("F","M")[col(tab4a)],
+                    count= c(tab4a))
+tdata3 <- tdata[rep(1:nrow(tdata), 3),]  #three copies
+tdata3$group <- factor(rep(1:3, each=nrow(tdata)), 
+                       labels=levels(fdata$group))
+sfit4a <- survexp(~group, data=tdata3, weight = count, 
+                    ratetable=cfit4a) 
+
+plot(sfit4a, mark.time=F, col=c(1,2,4), lty=1, lwd=2,
+     xscale=365.25, xlab="Years from Sample", 
+     ylab="Survival")
+lines(sfit3,  mark.time=F, col=c(1,2,4), lty=2, lwd=1,
+      xscale=365.25)
+legend(2,.4, c("FLC low", "FLC med", "FLC high"), lty=1, col=c(1,2,4),
+               bty='n', lwd=2)
+@ 
+Figure \ref{flc6} shows the result.  Comparing this to the prior 3
+adjustments shown in figures \ref{flc3}, \ref{flc4}, and \ref{flc5}
+we see that this result is different.  Why?
+Part of the reason is due to the fact that $E[f(X)] \ne f(E[X])$
+for any non-linear operation $f$, so that averages of survival
+curves and survival curves of averages will never be exactly
+the same.
+This may explain the small difference between the stratified and
+the marginal approaches of figures \ref{flc3} and \ref{flc5},
+which were based on the same subsets.
+The Cox based result is systematically higher than the stratified
+one, however, so something more is indicated.
+
+Aside: 
+An alternate computational approach is to create the individual 
+survival curves using
+the \texttt{survfit} function and then take averages.
+<<>>=
+tfit <- survfit(cfit4a, newdata=tdata, se.fit=FALSE)
+curves <- vector('list', 3)
+twt <- c(tab4a)/sum(tab4a)
+for (i in 1:3) {
+    temp <- tfit[i,]
+    curves[[i]] <- list(time=temp$time, surv= c(temp$surv %*% twt))
+    }
+@ 
+The above code is a bit sneaky.  I know that the result from the
+survfit function contains a matrix \texttt{tfit\$surv} 
+of 104 columns, one for each row in the tdata data
+frame, each column containing the curves for the three strata one after
+the other.  Sub setting \texttt{tfit} results in the matrix for a single
+flc group.
+Outside of R an approach like the above may be needed, however.
+
+\begin{figure}
+  \myfig{flc6b}
+  \caption{Left panel: comparison of Cox model based adjustment (solid) with the
+     curves based on marginal adjustment (dashed).  
+     The Cox model curves without (black) and with (red) an age*sex interaction
+           term overlay.
+     Right panel: plot of the predicted relative risks from a Cox model
+     \texttt{crate} versus population values from 
+     the Minnesota rate table.}
+  \label{flc6b}
+\end{figure}
+
+So why are the modeling results so different than either reweighting
+or stratification?
+Suspicion first falls on the use of a simple linear model for
+age and sex, so start by
+fitting a slightly more refined model that allows
+for a different slope for the two sexes, but is still linear in age.
+In this particular data set an external check on the fit is also
+available via the Minnesota death rate tables, which are included
+with the survival package as \texttt{survexp.mn}.  This is an
+array that contains daily death rates by age, sex, and calender year.
+<<flc6b, fig=TRUE, include=FALSE>>=
+par(mfrow=c(1,2))
+cfit4b <- coxph(Surv(futime, death) ~ age*sex + strata(group),
+                fdata)
+sfit4b <- survexp(~group, data=tdata3, ratetable=cfit4b, weights=count)
+plot(sfit4b, fun='event', xscale=365.25,
+     xlab="Years from sample", ylab="Deaths")
+lines(sfit3, mark.time=FALSE, fun='event', xscale=365.25, lty=2)
+lines(sfit4a, fun='event', xscale=365.25, col=2)
+
+temp <- median(fdata$sample.yr)                                
+mrate <- survexp.mn[as.character(uage),, as.character(temp)]
+crate <- predict(cfit4b, newdata=tdata, reference='sample', type='lp')
+crate <- matrix(crate, ncol=2)[,2:1] # mrate has males then females, match it
+# crate contains estimated log(hazards) relative to a baseline,
+#  and mrate absolute hazards, make both relative to a 70 year old
+for (i in 1:2) {
+    mrate[,i] <- log(mrate[,i]/ mrate[21,2])
+    crate[,i] <- crate[,i] - crate[21,2]
+    }
+matplot(mrate, crate, col=2:1, type='l')
+abline(0, 1, lty=2, col=4)
+@ 
+The resulting curves are shown in the left panel of
+figure \ref{flc6b} and reveal that addition of an interaction term
+did not change the predictions, and that the Cox model result
+for the highest risk group is distinctly different
+predicted survival for the highest FLC group is distinctly different
+when using model based prediction.
+The right hand panel of the figure shows that though there are slight
+differences with the Minnesota values, linearity of the age effect
+is very well supported. 
+So where exactly does the model go wrong?  Since this is such a
+large data set we have the luxury of looking at subsets.
+This would be a very large number of curves to plot ---
+age by sex by FLC = 48 --- so an overlay of the observed and expected
+curves by group would be too confusing.
+Instead we will summarize each of the groups according to their
+observed and predicted number of events.
+<<fig=TRUE, include=FALSE>>=
+obs <- with(fdata, tapply(death, list(age2, sex, group), sum))
+pred<- with(fdata, tapply(predict(cfit4b, type='expected'),
+              list(age2, sex, group), sum))
+excess <- matrix(obs/pred, nrow=8)  #collapse 3 way array to 2
+dimnames(excess) <- list(dimnames(obs)[[1]], c("low F", "low M",
+                                               "med F", "med M",
+                                               "high F", "high M"))
+round(excess, 1)
+@ 
+The excess risks, defined as the observed/expected number of deaths,
+are mostly modest ranging from .8 to 1.2.
+The primary exception exception is the high FLC group for ages 50--59
+which has values of 1.6 to 2.5;  
+the Cox model fit has greatly overestimated the survival for the
+age 50--54 and 55--59 groups.
+Since this is also the age category with the highest count in the data
+set, this overestimation will have a large impact on the overall
+curve for high FLC subset, which is exactly where the the deviation
+in figure \ref{flc6b} is observed to lie.
+There is also mild evidence for a linear trend in age for the low FLC females,
+in the other direction.
+Altogether this suggests that the model might need to have a different
+age coefficient for each of the three FLC groups.
+<<>>=
+cfit5a <- coxph(Surv(futime, death) ~ strata(group):age +sex, fdata)
+cfit5b <- coxph(Surv(futime, death) ~ strata(group):(age +sex), fdata)
+cfit5c <- coxph(Surv(futime, death) ~ strata(group):(age *sex), fdata)
+
+options(show.signif.stars=FALSE) # see footnote
+anova(cfit4a, cfit5a, cfit5b, cfit5c)
+temp <- coef(cfit5a)
+names(temp) <- c("sex", "ageL", "ageM", "ageH")
+round(temp,3)
+@ 
+The model with separate age coefficients for each FLC group gives a
+major improvement in goodness of fit, 
+but adding separate sex coefficients per group
+or further interactions does not add importantly
+beyond that. 
+\footnote{There are certain TV shows that make one dumber just by
+  watching them; adding stars to the output has the same effect on 
+  statisticians.}
+
+\begin{figure}
+  \myfig{flc7}
+  \caption{Adjusted survival for the 3 FLC groups based on the
+    improved Cox model fit. Dashed lines show the predictions
+    from the marginal model.}
+  \label{flc7}
+\end{figure}
+
+A recheck of the observed/expected values now shows a much more
+random pattern, though some excess remains in the upper
+right corner.  The updated survival curves are shown in
+figure \ref{flc7} and now are 
+in closer concordance with the marginal fit.
+<<flc7, include=FALSE, fig=TRUE>>=
+pred5a <- with(fdata, tapply(predict(cfit5a, type='expected'),
+              list(age2, sex, group), sum))
+excess5a <- matrix(obs/pred5a, nrow=8,
+                   dimnames=dimnames(excess))
+round(excess5a, 1)
+
+sfit5  <- survexp(~group,  data=tdata3, ratetable=cfit5a, weights=count)
+plot(sfit3, fun='event', xscale=365.25, mark.time=FALSE, lty=2, col=c(1,2,4),
+     xlab="Years from sample", ylab="Deaths")
+lines(sfit5, fun='event', xscale=365.25, col=c(1,2,4))
+@ 
+One problem with the model based estimate is that standard errors for the
+curves are complex.
+Standard errors of the individual curves for each age/sex/FLC combination
+are a standard output of the survfit function, but the collection of curves is
+correlated since they all depend on a common estimate of the model's coefficient
+vector $\beta$.
+Curves with disparate ages are anti-correlated (an increase in the age coefficient
+of the model would raise one and lower the other) whereas those for close ages are
+positively correlated.  
+A proper variance for the unweighted average has been derived by Gail and
+Byar \cite{Gail86},
+but this has not been implemented in any of the standard packages, nor extended
+to the weighted case.  
+A bootstrap estimate would appear to be the most feasible.
+
+\section{Conclusions}
+When two populations need to be adjusted and one is much larger than the other, 
+the balanced subset method has been popular.
+It is most often seen in the
+context of a case-control study, with cases as the rarer group and a set
+of matched controls selected from the larger one.  
+This method has the advantage that the usual standard error estimates from a 
+standard package are appropriate, so no further work is required.
+However, in the general situation it leads to a correct answer but for the wrong
+problem, i.e., not for a population in which we are interested.
+
+
+The population reweighted estimate is flexible, has a readily available variance
+in some statistical packages (but not all), and the result is directly
+interpretable.  It is the method we recommend in general.
+The approach can be extended to a large number of balancing factors by using a
+regression model to derive the weights.  Exploration and checking of said model
+for adequacy is an important step in this case.  
+The biggest downside to the method
+arises when there is a subset which is rare in the data sample but frequent in 
+the adjusting population.  In this case subjects in that subset will be assigned
+large weights, and the resulting curves will have high variance.
+
+The stratified method is closely related to reweighting (not shown).  
+It does not
+do well if the sample size is small, however.
+
+Risk set modeling is a very flexible method, but is also the one where it is 
+easiest to go wrong by using an inadequate model, and variance estimation is
+also difficult.
+To the extent that the fitted model is relevant, it 
+allows for interpolation and extrapolation to a reference population with
+a different distribution of covariates than the one in the training data.
+It may be applicable in cases such as rare subsets where population
+reweighting is problematic, with the understanding that one is depending
+heavily on extrapolation in this case, which is always dangerous.
+
+\section{A note on type 3 tests}
+One particular software package (not R) and its proponents are very fond
+of something called ``type 3'' tests.
+Said tests are closely tied to a particular reference population:
+\begin{itemize}
+  \item For all continuous covariates in the model, the empirical 
+    distribution is used as the reference.
+  \item For all categorical adjusters, a uniform distribution over the 
+    categories is used.
+\end{itemize}
+
+  Figure \ref{flc8} shows the fit from such a model.  Not surprisingly, the
+predicted death rate is very high: 1/4 of our population is over 80 years old! 
+The authors do not find such a prediction particularly useful
+since we don't ever expect to see a population like this
+(it's sort of like planning for the zombie apocalypse),
+but for those enamored of type 3 tests this shows how to create the
+corresponding curves.
+
+<<flc8, include=FALSE, fig=TRUE>>=
+# there is a spurious warning from the model below: R creates 3 unneeded
+# columns in the X matrix
+cfit6 <- coxph(Surv(futime, death) ~ strata(group):age2 + sex, fdata)
+
+saspop <- with(fdata, expand.grid(age2= levels(age2), sex= levels(sex),
+                                  group = levels(group)))
+
+sfit6  <- survexp(~group,  data=saspop, ratetable=cfit6)
+plot(sfit6, fun='event', xscale=365.25, mark.time=FALSE, lty=1, col=c(1,2,4),
+     xlab="Years from sample", ylab="Deaths")
+lines(sfit5, fun='event', xscale=365.25, lty=2, col=c(1,2,4))
+@ 
+\begin{figure}
+  \myfig{flc8}
+  \caption{Adjusted survival for the 3 FLC groups based on a fit with
+    categorical age, and predicting for a uniform age/sex population.
+    Dashed lines show the predictions from the marginal model.}
+  \label{flc8}
+\end{figure}
+
+
+\bibliographystyle{plain}
+\bibliography{refer}
+\end{document}
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/index.html	(revision 2476)
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'survival'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/survival/doc/adjcurve.pdf">survival::adjcurve</a></td>
+<td></td><td valign="top">Adjusted Survival Curves</td>
+<td valign="top"><a href="../../../library/survival/doc/adjcurve.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/survival/doc/adjcurve.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/survival/doc/adjcurve.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/survival/doc/compete.pdf">survival::compete</a></td>
+<td></td><td valign="top">Multi-state models and competing risks</td>
+<td valign="top"><a href="../../../library/survival/doc/compete.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/survival/doc/compete.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/survival/doc/compete.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/survival/doc/splines.pdf">survival::splines</a></td>
+<td></td><td valign="top">Splines, plots, and interactions</td>
+<td valign="top"><a href="../../../library/survival/doc/splines.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/survival/doc/splines.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/survival/doc/splines.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/survival/doc/tests.pdf">survival::tests</a></td>
+<td></td><td valign="top">Cox models and ``type 3'' Tests</td>
+<td valign="top"><a href="../../../library/survival/doc/tests.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/survival/doc/tests.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/survival/doc/tests.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/survival/doc/timedep.pdf">survival::timedep</a></td>
+<td></td><td valign="top">Using Time Dependent Covariates</td>
+<td valign="top"><a href="../../../library/survival/doc/timedep.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/survival/doc/timedep.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/survival/doc/timedep.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/survival/doc/validate.pdf">survival::validate</a></td>
+<td></td><td valign="top">Validation</td>
+<td valign="top"><a href="../../../library/survival/doc/validate.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/survival/doc/validate.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/survival/doc/validate.R">R code</a></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/tests.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/tests.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/adjcurve.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/adjcurve.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/splines.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/splines.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/splines.R	(revision 2476)
@@ -0,0 +1,159 @@
+### R code from vignette source 'splines.Rnw'
+
+###################################################
+### code chunk number 1: splines.Rnw:21-25
+###################################################
+options(continue="  ", width=60)
+options(SweaveHooks=list(fig=function() par(mar=c(4.1, 4.1, .3, 1.1))))
+pdf.options(pointsize=8) #text in graph about the same as regular text
+options(contrasts=c("contr.treatment", "contr.poly")) #reset default
+
+
+###################################################
+### code chunk number 2: mplot
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+require(survival)
+mfit <- coxph(Surv(futime, death) ~ sex + pspline(age, df=4), data=mgus)
+mfit
+termplot(mfit, term=2, se=TRUE, col.term=1, col.se=1)
+
+
+###################################################
+### code chunk number 3: mplot2
+###################################################
+ptemp <- termplot(mfit, se=TRUE, plot=FALSE)
+attributes(ptemp)
+ptemp$age[1:4,]
+
+
+###################################################
+### code chunk number 4: mplot3
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+ageterm <- ptemp$age  # this will be a data frame
+center <- with(ageterm, y[x==50])
+ytemp <- ageterm$y + outer(ageterm$se, c(0, -1.96, 1.96), '*')
+matplot(ageterm$x, exp(ytemp - center), log='y',
+        type='l', lty=c(1,2,2), col=1, 
+        xlab="Age at diagnosis", ylab="Relative death rate")
+
+
+###################################################
+### code chunk number 5: hgb
+###################################################
+fit <- coxph(Surv(futime, death) ~ age + pspline(hgb, 4), mgus2)
+fit
+termplot(fit, se=TRUE, term=2, col.term=1, col.se=1,
+         xlab="Hemoglobin level")
+
+
+###################################################
+### code chunk number 6: df
+###################################################
+termplot(fit, se=TRUE, col.term=1, col.se=1, term=2,
+         xlab="Hemoglobin level", ylim=c(-.4, 1.3))
+df <- c(3, 2.5, 2)
+for (i in 1:3) {
+    tfit <- coxph(Surv(futime, death) ~ age + 
+                  pspline(hgb, df[i], nterm=8), mgus2)
+    temp <- termplot(tfit, se=FALSE, plot=FALSE, term=2)
+    lines(temp$hgb$x, temp$hgb$y, col=i+1, lwd=2)
+}
+legend(14, 1, paste("df=", c(4, df)), lty=1, col=1:4, lwd=2)
+
+
+###################################################
+### code chunk number 7: fit2.5
+###################################################
+fit2a <- coxph(Surv(futime, death) ~ age + pspline(hgb, 2.5, nterm=8), mgus2)
+coef(fit2a)
+plot(1:10, coef(fit2a)[-1])
+
+
+###################################################
+### code chunk number 8: fit2b
+###################################################
+temp <- c(1:7, 8,8,8)
+fit2b <- coxph(Surv(futime, death) ~ age + 
+               pspline(hgb, 2.5, nterm=8, combine=temp), 
+               data= mgus2)
+temp2 <- c(1:6, 7,7,7,7)
+fit2c <- coxph(Surv(futime, death) ~ age + 
+               pspline(hgb, 2.5, nterm=8, combine=temp2), 
+               data= mgus2)
+matplot(1:10, cbind(coef(fit2a)[-1], coef(fit2b)[temp+1], 
+                    coef(fit2c)[temp2+1]), type='b', pch='abc',
+                    xlab="Term", ylab="Pspline coef")
+
+
+###################################################
+### code chunk number 9: fit1
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+options(show.signif.stars=FALSE) # display intelligence
+fit1 <- coxph(Surv(futime, death) ~ sex + pspline(age, 3), data=flchain)
+fit1
+termplot(fit1, term=2, se=TRUE, col.term=1, col.se=1,
+         ylab="log hazard")
+
+
+###################################################
+### code chunk number 10: nfit
+###################################################
+options(show.signif.stars=FALSE)  # display statistical intellegence
+require(splines, quietly=TRUE)
+nfit1 <- coxph(Surv(futime, death) ~ sex + age, flchain)
+nfit2 <- coxph(Surv(futime, death) ~ sex + ns(age, df=3), flchain)
+nfit3 <- coxph(Surv(futime, death) ~ sex * ns(age, df=3), flchain)
+anova(nfit1, nfit2, nfit3)
+
+
+###################################################
+### code chunk number 11: nfit2
+###################################################
+pdata <- expand.grid(age= 50:99, sex=c("F", "M"))
+pdata[1:5,]
+
+ypred <- predict(nfit3, newdata=pdata, se=TRUE)
+yy <- ypred$fit + outer(ypred$se, c(0, -1.96, 1.96), '*')
+matplot(50:99, exp(matrix(yy, ncol=6)), type='l', lty=c(1,1,2,2,2,2),
+        lwd=2, col=1:2, log='y',
+        xlab="Age", ylab="Relative risk")
+legend(55, 20, c("Female", "Male"), lty=1, lwd=2, col=1:2, bty='n')
+abline(h=1)
+
+
+###################################################
+### code chunk number 12: fit2
+###################################################
+agem <- with(flchain, ifelse(sex=="M", age, 60))
+agef <- with(flchain, ifelse(sex=="F", age, 60))
+fit2 <- coxph(Surv(futime, death) ~ sex + pspline(agef, df=3)
+              + pspline(agem, df=3), data=flchain)
+anova(fit2, fit1)
+
+
+###################################################
+### code chunk number 13: plot2
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+# predictions
+pdata2 <- pdata
+pdata2$agem <- with(pdata2, ifelse(sex=="M", age, 60))
+pdata2$agef <- with(pdata2, ifelse(sex=="F", age, 60))
+ypred2 <- predict(fit2, pdata2, se=TRUE)
+yy <- ypred2$fit + outer(ypred2$se, c(0, -1.96, 1.96), '*')
+
+# reference
+refdata <- data.frame(sex='F', agef=65, agem=60)
+ref <- predict(fit2, newdata=refdata, type="lp")
+
+# plot
+matplot(50:99, exp(matrix(yy-ref, ncol=6)), type='l', lty=c(1,1,2,2,2,2),
+        lwd=2, col=1:2, log='y',
+        xlab="Age", ylab="Relative risk")
+legend(55, 20, c("Female", "Male"), lty=1, lwd=2, col=1:2, bty='n')
+abline(h=1)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/splines.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/splines.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/splines.Rnw	(revision 2476)
@@ -0,0 +1,328 @@
+\documentclass{article}
+\usepackage{amsmath}
+\usepackage{Sweave}
+\addtolength{\textwidth}{1in}
+\addtolength{\oddsidemargin}{-.5in}
+\setlength{\evensidemargin}{\oddsidemargin}
+
+\SweaveOpts{keep.source=TRUE, fig=FALSE}
+%\VignetteIndexEntry{Splines, plots, and interactions}
+% Ross Ihaka suggestions
+\DefineVerbatimEnvironment{Sinput}{Verbatim} {xleftmargin=2em}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em}
+\DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em}
+\fvset{listparameters={\setlength{\topsep}{0pt}}}
+\renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}}
+
+\SweaveOpts{prefix.string=splines,width=6,height=4}
+\setkeys{Gin}{width=\textwidth}
+\newcommand{\code}[1]{\texttt{#1}}
+
+<<echo=FALSE>>=
+options(continue="  ", width=60)
+options(SweaveHooks=list(fig=function() par(mar=c(4.1, 4.1, .3, 1.1))))
+pdf.options(pointsize=8) #text in graph about the same as regular text
+options(contrasts=c("contr.treatment", "contr.poly")) #reset default
+@ 
+
+\title{Spline terms in a Cox model}
+\author{Terry Therneau}
+
+\begin{document}
+\maketitle
+This is a trio of topics that comes up just often enough in my work 
+that I end up re-discovering how to do it correctly about once a year.
+A note showing how may be useful to others, it is certainly a useful
+reference for me.
+
+\section{Plotting smooth terms}
+Here is a simple example using the MGUS data.
+I prefer a simpler color palette than the default found in termplot.
+<<mplot, fig=TRUE>>=
+require(survival)
+mfit <- coxph(Surv(futime, death) ~ sex + pspline(age, df=4), data=mgus)
+mfit
+termplot(mfit, term=2, se=TRUE, col.term=1, col.se=1)
+@ 
+Note that the \code{term=2} option is passed directly from the
+\code{termplot} routine to a \code{predict(fit, type='terms')} call.
+For coxph models, the \code{predict} function allows terms to be
+specified either by position or name.
+Other routines, e.g. \code{gam}, respond only to a name.
+(This can be a bit of a pain since it must exactly match the 
+\emph{printed} call
+in both spelling and spacing; and the printed spacing
+may not match what the user typed.)
+
+Three questions are whether the curve is significantly 
+non-linear, how the curve is centered and whether we
+can easily plot it on the hazard as opposed to the log hazard scale.
+The first question is answered by the printout,
+the solution to the others is to use the plot=FALSE option of termplot,
+which returns the data points that would be plotted back to the user.
+
+<<mplot2>>=
+ptemp <- termplot(mfit, se=TRUE, plot=FALSE)
+attributes(ptemp)
+ptemp$age[1:4,]
+@ 
+
+The termplot function depends on a call to predict with type='terms',
+which returns a centered set of predictions.
+Like a simple linear model fit, the intercept is a separate term, which is
+found in the ``constant'' attribute above,
+and each column of the result is centered so that the average predicted
+value is zero.
+Since any given $x$ value may appear multiple times in the data and thus in
+the result of predict, 
+and the termplot function removes duplicates, the data returned by
+\code{termplot} may not be precisely centered at zero.
+
+Now suppose we want to redraw this on log scale with age 50 as the reference,
+i.e., the  risk is 1 for a 50 year old.  
+Since the Cox model is a relative hazards model we can choose whatever center
+we like.
+(If there were no one of exactly age 50 in the data set the first line 
+below would need to do an interpolation, e.g. by using the approx function.)
+
+<<mplot3, fig=TRUE>>=
+ageterm <- ptemp$age  # this will be a data frame
+center <- with(ageterm, y[x==50])
+ytemp <- ageterm$y + outer(ageterm$se, c(0, -1.96, 1.96), '*')
+matplot(ageterm$x, exp(ytemp - center), log='y',
+        type='l', lty=c(1,2,2), col=1, 
+        xlab="Age at diagnosis", ylab="Relative death rate")
+@ 
+
+Voila! We now have a plot that is interpretable with respect to a fixed
+reference.
+
+The approach is appropriate for any term, not just psplines.
+The above plot uses log scale for the y axis which is appropriate
+for the question of whether a non-linear age effect was even necessary
+for this model (it is not),
+one could remove the log argument to emphasize the Gomperzian effect of
+age on mortality.
+
+\section{Monotone splines}
+Consider the following model using the \code{mgus2} data set.
+<<hgb>>=
+fit <- coxph(Surv(futime, death) ~ age + pspline(hgb, 4), mgus2)
+fit
+termplot(fit, se=TRUE, term=2, col.term=1, col.se=1,
+         xlab="Hemoglobin level")
+@ 
+Low hemoglobin or anemia is a recognized marker of frailty in older
+age, so the rise in risk for low levels is not surprising.
+The rise on the right hand portion of the curve is less 
+believeable --- the normal range of HGB is 12-15.5 for women and
+13.5 to 17.5 for men, why would we expect a rise there?
+A monotone fit that forces the curve to be horizontal from 14 
+onward fits well within the confidence bands, so we might want
+to force monotonicity.
+
+There are two tools for this within the pspline function.  
+The first is to decrease the overall degrees of freedom and the 
+second is to use \code{combine} option to force equality of
+selected coefficients.
+Start by decreasing the degrees of freedom.
+The pspline function automatically picks the number of basis
+(nterms) to be ``sufficiently large'' for the given degrees
+of freedom.  We fix it at a single value for the rest of
+this example to better isolate the effects of degrees of freedom
+and of constraints.
+
+<<df>>=
+termplot(fit, se=TRUE, col.term=1, col.se=1, term=2,
+         xlab="Hemoglobin level", ylim=c(-.4, 1.3))
+df <- c(3, 2.5, 2)
+for (i in 1:3) {
+    tfit <- coxph(Surv(futime, death) ~ age + 
+                  pspline(hgb, df[i], nterm=8), mgus2)
+    temp <- termplot(tfit, se=FALSE, plot=FALSE, term=2)
+    lines(temp$hgb$x, temp$hgb$y, col=i+1, lwd=2)
+}
+legend(14, 1, paste("df=", c(4, df)), lty=1, col=1:4, lwd=2)
+@ 
+
+This has reduced, but not eliminated, the right hand rise at the
+expense of a less sharp transition at the value of 14.
+The \code{combine} option
+makes use of a property of the P-spline basis, which is
+that the curve will be monotone if and only if the coefficients
+are monotone.
+We can then use a pool adjacent violators algorithm to sequentially
+force equality for those coefficients which go the wrong way.
+Look at the coefficients for the fit with 2.5 degrees of freedom.
+
+<<fit2.5>>=
+fit2a <- coxph(Surv(futime, death) ~ age + pspline(hgb, 2.5, nterm=8), mgus2)
+coef(fit2a)
+plot(1:10, coef(fit2a)[-1])
+@ 
+
+Now force the last 3 to be equal, then the last 4,
+and see how this changes the fit.
+
+<<fit2b>>=
+temp <- c(1:7, 8,8,8)
+fit2b <- coxph(Surv(futime, death) ~ age + 
+               pspline(hgb, 2.5, nterm=8, combine=temp), 
+               data= mgus2)
+temp2 <- c(1:6, 7,7,7,7)
+fit2c <- coxph(Surv(futime, death) ~ age + 
+               pspline(hgb, 2.5, nterm=8, combine=temp2), 
+               data= mgus2)
+matplot(1:10, cbind(coef(fit2a)[-1], coef(fit2b)[temp+1], 
+                    coef(fit2c)[temp2+1]), type='b', pch='abc',
+                    xlab="Term", ylab="Pspline coef")
+@ 
+
+We see that constraining the last four terms along with a 
+degrees of freedom of is almost enough to force monotonicity;
+it may be sufficient if our goal is a simple plot for display.  
+
+This dance between degrees of freedom, number of terms, and
+constraints has a component of artistry.  When all three values
+become large the result will begin to approach a step function,
+reminiscent of non-parametric isotonic regression, whereas
+small values begin to approach a linear fit. 
+The best compromise of smoothness and constraints will be problem specific.
+
+\section{Splines in an interaction}
+As an example we will use the effect of age on survival in the 
+\texttt{flchain} data set, a population based sample of subjects from
+Olmsted County, Minnesota.
+If we look at a simple model using age and sex we see that both 
+are very significant.
+<<fit1, fig=TRUE>>=
+options(show.signif.stars=FALSE) # display intelligence
+fit1 <- coxph(Surv(futime, death) ~ sex + pspline(age, 3), data=flchain)
+fit1
+termplot(fit1, term=2, se=TRUE, col.term=1, col.se=1,
+         ylab="log hazard")
+@ 
+
+We used a \code{pspline} term rather than \code{ns}, say, 
+because the printout for a pspline nicely
+segregates the linear and non-linear age effects.
+The non-linearity is not very large, as compared to the linear portion,
+but still may be important.
+
+We would like to go forward and fit separate age curves for the males and
+the females, since the above fit makes an untested
+assumption that the male/female
+ratio of death rates will be the same at all ages. 
+The primary problem is that a formula of 
+\texttt{sex * pspline(age)} does not work;
+the coxph routine is not clever enough to do the right thing automatically
+for \code{pspline} interactions.
+(Perhaps some future version will be sufficiently intelligent, but don't hold
+your breath).
+
+As a first solution we will use regression splines, i.e., splines
+that can be represented using a basis matrix.
+
+<<nfit>>=
+options(show.signif.stars=FALSE)  # display statistical intellegence
+require(splines, quietly=TRUE)
+nfit1 <- coxph(Surv(futime, death) ~ sex + age, flchain)
+nfit2 <- coxph(Surv(futime, death) ~ sex + ns(age, df=3), flchain)
+nfit3 <- coxph(Surv(futime, death) ~ sex * ns(age, df=3), flchain)
+anova(nfit1, nfit2, nfit3)
+@ 
+The nonlinear term is significant but the interaction is not.
+Nevertheless we would like to plot the two estimated curves for 
+\code{nfit3}, expecting that they will be approximately parallel.
+The \code{termplot} routine is not able to deal with models that
+have an interaction and will bow out with a warning message;
+we use explicit prediction instead, which is nearly as easy.
+<<nfit2>>=
+pdata <- expand.grid(age= 50:99, sex=c("F", "M"))
+pdata[1:5,]
+
+ypred <- predict(nfit3, newdata=pdata, se=TRUE)
+yy <- ypred$fit + outer(ypred$se, c(0, -1.96, 1.96), '*')
+matplot(50:99, exp(matrix(yy, ncol=6)), type='l', lty=c(1,1,2,2,2,2),
+        lwd=2, col=1:2, log='y',
+        xlab="Age", ylab="Relative risk")
+legend(55, 20, c("Female", "Male"), lty=1, lwd=2, col=1:2, bty='n')
+abline(h=1)
+@
+The \code{ns} function generates a basis of dummy variables to represent
+the spline, which will work automatically in interactions. 
+The coefficients that result are not very interpretable, but the result of
+predict is invariant to this.  
+The issues as compared to using \code{termplot} are
+\begin{enumerate}
+  \item We need to provide our own set of predictor values for the plot,
+    whereas \code{termplot} would automatcially use the set of unique
+    age and sex values.  
+  \item Keeping track of the indexing.  The predict function produces
+    two vectors each of length \code{nrow(pdata)} with a predicted
+    value and its standard error, one value for each row of 
+    \code{pdata}.  The data set is in order of females, then males.
+    We fold it into an appropriate matrix for use with matplot.
+  \item The vertical centering of the curves corresponds to an average
+    population predictor of$\eta = X\beta =0$; i.e., the average over the
+    subjects in the data set.  This is a consequence of the
+    variable centering that \code{coxph} does for numerical stability.
+    To center at some particular (age, sex) pair obtain the predicted
+    value for that fictional subject and subtract the resulting
+    value from \code{yy}.
+\end{enumerate}   
+
+To create the same figure with \code{pspline} curves it is necessary
+to code the males and females as two separate terms.
+To do this create our own dummy variables to handle the interaction.
+
+<<fit2>>=
+agem <- with(flchain, ifelse(sex=="M", age, 60))
+agef <- with(flchain, ifelse(sex=="F", age, 60))
+fit2 <- coxph(Surv(futime, death) ~ sex + pspline(agef, df=3)
+              + pspline(agem, df=3), data=flchain)
+anova(fit2, fit1)
+@ 
+You might well ask why we used 60 as a dummy value of \texttt{agem} for
+the females instead of 0?
+If a value of 0 is used it forces the pspline function to create a basis
+set that includes all the empty space between 0 and 50, and do predictions
+at 0; these last can become numerically unstable leading to errors or
+incorrect values.
+Best is to pick a value close to the mean, though any value within the
+range will do.  For this plot we will use a 65 year old female as the
+reference.
+
+<<plot2, fig=TRUE>>=
+# predictions
+pdata2 <- pdata
+pdata2$agem <- with(pdata2, ifelse(sex=="M", age, 60))
+pdata2$agef <- with(pdata2, ifelse(sex=="F", age, 60))
+ypred2 <- predict(fit2, pdata2, se=TRUE)
+yy <- ypred2$fit + outer(ypred2$se, c(0, -1.96, 1.96), '*')
+
+# reference
+refdata <- data.frame(sex='F', agef=65, agem=60)
+ref <- predict(fit2, newdata=refdata, type="lp")
+
+# plot
+matplot(50:99, exp(matrix(yy-ref, ncol=6)), type='l', lty=c(1,1,2,2,2,2),
+        lwd=2, col=1:2, log='y',
+        xlab="Age", ylab="Relative risk")
+legend(55, 20, c("Female", "Male"), lty=1, lwd=2, col=1:2, bty='n')
+abline(h=1)
+@ 
+
+The final curves for males and female are not quite parallel,
+most of the difference is at the highest ages, however, where there
+are very few subjects.
+One thing the plot does not display is that the spacing between the
+male and female points also has a standard error.
+This moves the entire bundle of three red curves up and down.  It is not
+clear how best to add this information into the plot.
+For questions of parallelism and shape, as here, it seemed best to
+ignore it, which is what the termplot function also does.
+If someone were reading individual male/female differences off the plot
+a different choice would be appropriate.
+\end{document}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/splines.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/splines.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/timedep.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/timedep.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/timedep.R	(revision 2476)
@@ -0,0 +1,280 @@
+### R code from vignette source 'timedep.Rnw'
+
+###################################################
+### code chunk number 1: preamble
+###################################################
+options(width=60, continue=" ")
+makefig <- function(file, top=1, right=1, left=4) {
+    pdf(file, width=9.5, height=7, pointsize=18)
+    par(mar=c(4, left, top, right) +.1)
+    }
+library(survival)
+
+
+###################################################
+### code chunk number 2: testdata
+###################################################
+tdata <- data.frame(subject=c(5,5,5), time1=c(0,90, 120),
+                    time2 = c(90, 120, 185), death=c(0,0,1),
+                    creatinine=c(0.9, 1.5, 1.2))
+tdata
+
+
+###################################################
+### code chunk number 3: fake
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+set.seed(1953)  # a good year
+nvisit <- floor(pmin(lung$time/30.5, 12))
+response <- rbinom(nrow(lung), nvisit, .05) > 0
+badfit <- survfit(Surv(time/365.25, status) ~ response, data=lung)
+plot(badfit, mark.time=FALSE, lty=1:2, 
+     xlab="Years post diagnosis", ylab="Survival")
+legend(1.5, .85, c("Responders", "Non-responders"), 
+       lty=2:1, bty='n')
+
+
+###################################################
+### code chunk number 4: timedep.Rnw:183-185 (eval = FALSE)
+###################################################
+## fit <- coxph(Surv(time1, time2, status) ~ age + creatinine, 
+##              data=mydata)
+
+
+###################################################
+### code chunk number 5: timedep.Rnw:256-257 (eval = FALSE)
+###################################################
+## newdata <- tmerge(data1, data2, id, newvar=tdc(time, value), ...)
+
+
+###################################################
+### code chunk number 6: timedep.Rnw:302-303
+###################################################
+cgd0[1:4,]
+
+
+###################################################
+### code chunk number 7: cgd1
+###################################################
+dim(cgd0)
+newcgd <- tmerge(data1=cgd0[, 1:13], data2=cgd0, id=id, tstop=futime)
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime1)) 
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime2)) 
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime3)) 
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime4)) 
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime5)) 
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime6)) 
+newcgd <- tmerge(newcgd, cgd0, id=id, infect = event(etime7)) 
+newcgd <- tmerge(newcgd, newcgd, id, enum=cumtdc(tstart))
+dim(newcgd)
+newcgd[1:5,c(1, 4:6, 13:17)]
+attr(newcgd, "tcount")
+coxph(Surv(tstart, tstop, infect) ~ treat + inherit + steroids +
+      + cluster(id), newcgd)
+
+
+###################################################
+### code chunk number 8: cgd1b
+###################################################
+test  <- tmerge(cgd0[, 1:13], cgd0, id=id, tstop=futime,
+                 infect = event(etime1), infect= event(etime2),
+                 infect = event(etime3), infect= event(etime4),
+                 infect = event(etime5), infect= event(etime6),
+                 infect = event(etime7))
+test <- tmerge(test, test,  id= id, enum = cumtdc(tstart))
+all.equal(newcgd, test)
+
+
+###################################################
+### code chunk number 9: stanford
+###################################################
+jasa$subject <- 1:nrow(jasa)  #we need an identifier variable
+tdata <- with(jasa, data.frame(subject = subject,
+                               futime= pmax(.5, fu.date - accept.dt),
+                               txtime= ifelse(tx.date== fu.date,
+                                              (tx.date -accept.dt) -.5,
+                                              (tx.date - accept.dt)),
+                               fustat = fustat
+                             ))
+
+sdata <- tmerge(jasa, tdata, id=subject,
+                  death = event(futime, fustat),
+                  trt   =  tdc(txtime), 
+                  options= list(idname="subject"))
+attr(sdata, "tcount")
+sdata$age <- sdata$age -48
+sdata$year <- as.numeric(sdata$accept.dt - as.Date("1967-10-01"))/365.25
+
+# model 6 of the table in K&P
+coxph(Surv(tstart, tstop, death) ~ age*trt + surgery + year, 
+      data= sdata, ties="breslow")
+
+
+###################################################
+### code chunk number 10: pbc
+###################################################
+temp <- subset(pbc, id <= 312, select=c(id:sex, stage)) # baseline
+pbc2 <- tmerge(temp, temp, id=id, death = event(time, status)) #set range
+pbc2 <- tmerge(pbc2, pbcseq, id=id, ascites = tdc(day, ascites),
+               bili = tdc(day, bili), albumin = tdc(day, albumin),
+               protime = tdc(day, protime), alk.phos = tdc(day, alk.phos))
+fit1 <- coxph(Surv(time, status==2) ~ log(bili) + log(protime), pbc)
+fit2 <- coxph(Surv(tstart, tstop, death==2) ~ log(bili) + log(protime), pbc2)
+rbind('baseline fit' = coef(fit1),
+      'time dependent' = coef(fit2))
+
+
+###################################################
+### code chunk number 11: timedep.Rnw:565-566
+###################################################
+attr(pbc2, "tcount")
+
+
+###################################################
+### code chunk number 12: timedep.Rnw:568-570
+###################################################
+#grab a couple of numbers for the paragraph below
+atemp <- attr(pbc2, "tcount")[2:3,]
+
+
+###################################################
+### code chunk number 13: timedep.Rnw:651-657 (eval = FALSE)
+###################################################
+## temp <- subset(pbc, id <= 312, select=c(id:sex, stage))
+## pbc2 <- tmerge(temp, temp, id=id, death = event(time, status))
+## pbc2a <- tmerge(pbc2, pbcseq, id=id, ascites = tdc(day, ascites),
+##                bili = tdc(day, bili), options= list(delay=14))
+## pbc2b <- tmerge(pbc2, pbcseq, id=id, ascites = tdc(day+14, ascites),
+##                bili = tdc(day+14, bili))
+
+
+###################################################
+### code chunk number 14: rep (eval = FALSE)
+###################################################
+## newd <- tmerge(data1=base, data2=timeline, id=repid, tstart=age1, 
+##                tstop=age2, options(id="repid"))
+## newd <- tmerge(newd, outcome, id=repid, mcount = cumtdc(age))
+## newd <- tmerge(newd, subset(outcome, event='diabetes'), 
+##                diabetes= tdc(age))
+## newd <- tmerge(newd, subset(outcome, event='arthritis'), 
+##                arthritis= tdc(age))
+
+
+###################################################
+### code chunk number 15: veteran1
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+options(show.signif.stars = FALSE)  # display user intelligence
+vfit <- coxph(Surv(time, status) ~ trt + prior + karno, veteran)
+vfit
+quantile(veteran$karno)
+
+zp <- cox.zph(vfit, transform= function(time) log(time +20))
+zp
+plot(zp[3])    # a plot for the 3rd variable in the fit
+abline(0,0, col=2)
+abline(h= vfit$coef[3], col=3, lwd=2, lty=2)
+
+
+###################################################
+### code chunk number 16: split
+###################################################
+vet2 <- survSplit(Surv(time, status) ~ ., data= veteran, cut=c(90, 180), 
+                  episode= "tgroup", id="id")
+vet2[1:7, c("id", "tstart", "time", "status", "tgroup", "age", "karno")]
+
+
+###################################################
+### code chunk number 17: split2
+###################################################
+vfit2 <- coxph(Surv(tstart, time, status) ~ trt + prior + 
+                  karno:strata(tgroup), data=vet2)
+vfit2
+cox.zph(vfit2)
+
+
+###################################################
+### code chunk number 18: split3
+###################################################
+vfit2$means
+
+
+###################################################
+### code chunk number 19: split4
+###################################################
+quantile(veteran$karno)
+cdata <- data.frame(tstart= rep(c(0,30,60), 2),
+                    time =  rep(c(30,60, 100), 2),
+                    status= rep(0,6),   #necessary, but ignored
+                    tgroup= rep(1:3, 2),
+                    trt  =  rep(1,6),
+                    prior=  rep(0,6),
+                    karno=  rep(c(40, 75), each=3),
+                    curve=  rep(1:2, each=3))
+cdata
+sfit <- survfit(vfit2, newdata=cdata, id=curve)
+km <- survfit(Surv(time, status) ~ I(karno>60), veteran)
+plot(km, xmax=120, col=1:2, lwd=2, 
+     xlab="Days from enrollment", ylab="Survival")
+lines(sfit, col=1:2, lty=2, lwd=2)
+
+
+###################################################
+### code chunk number 20: vfit3 (eval = FALSE)
+###################################################
+## vfit3 <- coxph(Surv(time, status) ~ trt + prior + karno +
+##                 I(karno * log(time + 20)), data=veteran)
+
+
+###################################################
+### code chunk number 21: vet3
+###################################################
+vfit3 <-  coxph(Surv(time, status) ~ trt + prior + karno + tt(karno),
+                data=veteran,
+                tt = function(x, t, ...) x * log(t+20))
+vfit3
+
+
+###################################################
+### code chunk number 22: vet3b
+###################################################
+getOption("SweaveHooks")[["fig"]]()
+plot(zp[3])
+abline(coef(vfit3)[3:4], col=2)
+
+
+###################################################
+### code chunk number 23: pbctime
+###################################################
+pfit1 <- coxph(Surv(time, status==2) ~ log(bili) + ascites + age, pbc)
+pfit2 <- coxph(Surv(time, status==2) ~ log(bili) + ascites + tt(age),
+                data=pbc,
+                tt=function(x, t, ...) {
+                    age <- x + t/365.25 
+                    cbind(age=age, age2= (age-50)^2, age3= (age-50)^3)
+                })
+pfit2
+anova(pfit2)
+# anova(pfit1, pfit2)  #this fails
+2*(pfit2$loglik - pfit1$loglik)[2]
+
+
+###################################################
+### code chunk number 24: timedep.Rnw:1045-1052
+###################################################
+function(x, t, riskset, weights){ 
+    obrien <- function(x) {
+        r <- rank(x)
+        (r-.5)/(.5+length(r)-r)
+    }
+    unlist(tapply(x, riskset, obrien))
+}
+
+
+###################################################
+### code chunk number 25: timedep.Rnw:1062-1064
+###################################################
+function(x, t, riskset, weights) 
+    unlist(tapply(x, riskset, rank))
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/validate.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/validate.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/doc/validate.R	(revision 2476)
@@ -0,0 +1,181 @@
+### R code from vignette source 'validate.Rnw'
+
+###################################################
+### code chunk number 1: init
+###################################################
+options(continue="  ", width=60)
+options(SweaveHooks=list(fig=function() par(mar=c(4.1, 4.1, .3, 1.1))))
+pdf.options(pointsize=8) #text in graph about the same as regular text
+require(survival, quietly=TRUE)
+
+
+###################################################
+### code chunk number 2: breslow1
+###################################################
+breslow1 <- function(beta) {
+    # first test data set, Breslow approximation
+    r = exp(beta)
+    lpl = 2*beta - (log(3*r +3) + 2*log(r+3))
+    U   = (6+ 3*r - r^2)/((r+1)*(r+3))
+    H   =  r/(r+1)^2 + 6*r/(r+3)^2
+    c(beta=beta, loglik=lpl, U=U, H=H)
+}
+beta <- log((3 + sqrt(33))/2)
+temp <- rbind(breslow1(0), breslow1(beta))
+dimnames(temp)[[1]] <- c("beta=0", "beta=solution")
+temp
+
+
+###################################################
+### code chunk number 3: validate.Rnw:186-209
+###################################################
+iter <- matrix(0, nrow=6, ncol=4,
+               dimnames=list(paste("iter", 0:5),
+                             c("beta", "loglik", "U", "H")))
+# Exact Newton-Raphson
+beta <- 0
+for (i in 1:6) {
+    iter[i,] <- breslow1(beta)
+    beta <- beta + iter[i,"U"]/iter[i,"H"]
+}
+iter
+
+# coxph fits
+test1 <- data.frame(time=  c(1, 1, 6, 6, 8, 9),
+                    status=c(1, 0, 1, 1, 0, 1),
+                    x=     c(1, 1, 1, 0, 0, 0))
+temp <- matrix(0, nrow=6, ncol=4, 
+                 dimnames=list(1:6, c("iter", "beta", "loglik", "H")))
+for (i in 0:5) {
+    tfit <- coxph(Surv(time, status) ~ x, data=test1, 
+                  ties="breslow", iter.max=i)
+    temp[i+1,] <- c(tfit$iter, coef(tfit), tfit$loglik[2], 1/vcov(tfit))
+}
+temp
+
+
+###################################################
+### code chunk number 4: mresid1
+###################################################
+mresid1 <- function(r) {
+    status <- c(1,0,1,1,0,1)
+    xbeta  <- c(r,r,r,1,1,1)
+    temp1 <- 1/(3*r +3)
+    temp2 <- 2/(r+3) + temp1
+    status - xbeta*c(temp1, temp1, temp2, temp2, temp2, 1+ temp2)
+}
+r0 <- mresid1(1)
+r1 <- round(mresid1((3 + sqrt(33))/2), 6)
+
+
+###################################################
+### code chunk number 5: iter
+###################################################
+temp <- matrix(0, 8, 3)
+dimnames(temp) <- list(paste0("iteration ", 0:7, ':'), c("beta", "loglik", "H"))
+bhat <- 0
+for (i in 1:8) {
+    r <- exp(bhat)
+    temp[i,] <- c(bhat,  2*(bhat - log(3*r +3)), 2*r/(r+1)^2)
+    bhat <- bhat + (r+1)/r 
+}
+round(temp,3)
+
+
+###################################################
+### code chunk number 6: breslow2
+###################################################
+ufun <- function(r) {
+    4 - (r/(r+1) + r/(r+2) + 3*r/(3*r+2) + 6*r/(3*r+1) + 6*r/(3*r+2))
+}
+rhat <- uniroot(ufun, c(.5, 1.5), tol=1e-8)$root
+bhat <- log(rhat)
+c(rhat=rhat, bhat=bhat)
+
+
+###################################################
+### code chunk number 7: temp
+###################################################
+true2 <- function(beta, newx=0) {
+    r <- exp(beta)
+    loglik <- 4*beta - log(r+1) - log(r+2) - 3*log(3*r+2) - 2*log(3*r+1)
+    u <- 1/(r+1) +  1/(3*r+1) + 4/(3*r+2) -
+                 ( r/(r+2) +3*r/(3*r+2) + 3*r/(3*r+1))
+    imat <- r/(r+1)^2 + 2*r/(r+2)^2 + 6*r/(3*r+2)^2 +
+            3*r/(3*r+1)^2 + 3*r/(3*r+1)^2 + 12*r/(3*r+2)^2
+
+    hazard <-c( 1/(r+1), 1/(r+2), 1/(3*r+2), 1/(3*r+1), 1/(3*r+1), 2/(3*r+2) )
+    xbar <- c(r/(r+1), r/(r+2), 3*r/(3*r+2), 3*r/(3*r+1), 3*r/(3*r+1),
+                3*r/(3*r+2))
+   # The matrix of weights, one row per obs, one col per time
+    #   deaths at 2,3,6,7,8,9
+    wtmat <- matrix(c(1,0,0,0,1,0,0,0,0,0,
+                      0,1,0,1,1,0,0,0,0,0,
+                      0,0,1,1,1,0,1,1,0,0,
+                      0,0,0,1,1,0,1,1,0,0,
+                      0,0,0,0,1,1,1,1,0,0,
+                      0,0,0,0,0,1,1,1,1,1), ncol=6)
+    wtmat <- diag(c(r,1,1,r,1,r,r,r,1,1)) %*% wtmat
+
+    x      <- c(1,0,0,1,0,1,1,1,0,0)
+    status <- c(1,1,1,1,1,1,1,0,0,0)
+    xbar <- colSums(wtmat*x)/ colSums(wtmat)
+    n <- length(x)
+
+   # Table of sums for score and Schoenfeld resids
+    hazmat <- wtmat %*% diag(hazard) #each subject's hazard over time
+    dM <- -hazmat  #Expected part
+    for (i in 1:6) dM[i,i] <- dM[i,i] +1  #observed
+    dM[7,6] <- dM[7,6] +1  # observed
+    mart <- rowSums(dM)
+
+    # Table of sums for score and Schoenfeld resids
+    #  Looks like the last table of appendix E.2.1 of the book
+    resid <- dM * outer(x, xbar, '-')
+    score <- rowSums(resid)
+    scho <- colSums(resid)
+    # We need to split the two tied times up, to match coxph
+    scho <- c(scho[1:5], scho[6]/2, scho[6]/2)
+    var.g <- cumsum(hazard*hazard /c(1,1,1,1,1,2))
+    var.d <- cumsum( (xbar-newx)*hazard)
+
+    surv <- exp(-cumsum(hazard) * exp(beta*newx))
+    varhaz <- (var.g + var.d^2/imat)* exp(2*beta*newx)
+
+    list(loglik=loglik, u=u, imat=imat, xbar=xbar, haz=hazard,
+	     mart=mart,  score=score, rmat=resid,
+		scho=scho, surv=surv, var=varhaz)
+    }
+val2 <- true2(bhat)
+rtemp <- round(val2$mart, 6)
+
+
+###################################################
+### code chunk number 8: wt1
+###################################################
+ufun <- function(r) {
+    xbar <- c( (2*r^2 + 11*r)/(r^2 + 11*r +7), 11*r/(11*r + 5), 2*r/(2*r +1))
+    11- (xbar[1] + 10* xbar[2] + 2* xbar[3])
+}
+rhat <- uniroot(ufun, c(1,3), tol= 1e-9)$root
+bhat <- log(rhat)
+c(rhat=rhat, bhat=bhat)
+
+
+###################################################
+### code chunk number 9: wt2
+###################################################
+wfun <- function(r) {
+    beta <- log(r)
+    pl <- 11*beta - (log(r^2 + 11*r + 7) + 10*log(11*r +5) + 2*log(2*r +1))
+    xbar <- c((2*r^2 + 11*r)/(r^2 + 11*r +7), 11*r/(11*r +5), 2*r/(2*r +1))
+    U <- 11 - (xbar[1] + 10*xbar[2] + 2*xbar[3])
+    H <- ((4*r^2 + 11*r)/(r^2 + 11*r +7)- xbar[1]^2) + 
+        10*(xbar[2] - xbar[2]^2) +  2*(xbar[3]- xbar[3]^2)
+    c(loglik=pl, U=U, H=H)
+}
+temp <- matrix(c(wfun(1), wfun(rhat)), ncol=2, 
+       dimnames=list(c("loglik", "U", "H"), c("beta=0", "beta-hat")))
+round(temp, 6)       
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/INDEX	(revision 2476)
@@ -0,0 +1,105 @@
+Surv                    Create a Survival Object
+aareg                   Aalen's additive regression model for censored
+                        data
+agreg.fit               Cox model fitting functions
+aml                     Acute Myelogenous Leukemia survival data
+anova.coxph             Analysis of Deviance for a Cox model.
+attrassign              Create new-style "assign" attribute
+basehaz                 Alias for the survfit function
+bladder                 Bladder Cancer Recurrences
+cch                     Fits proportional hazards regression model to
+                        case-cohort data
+cgd                     Chronic Granulotomous Disease data
+cgd0                    Chronic Granulotomous Disease data
+clogit                  Conditional logistic regression
+cluster                 Identify clusters.
+colon                   Chemotherapy for Stage B/C colon cancer
+cox.zph                 Test the Proportional Hazards Assumption of a
+                        Cox Regression
+coxph                   Fit Proportional Hazards Regression Model
+coxph.control           Ancillary arguments for controling coxph fits
+coxph.detail            Details of a Cox Model Fit
+coxph.object            Proportional Hazards Regression Object
+coxph.wtest             Compute a quadratic form
+dsurvreg                Distributions available in survreg.
+finegray                Create data for a Fine-Gray model
+flchain                 Assay of serum free light chain for 7874
+                        subjects.
+frailty                 Random effects terms
+genfan                  Generator fans
+heart                   Stanford Heart Transplant data
+is.ratetable            Verify that an object is of class ratetable.
+kidney                  Kidney catheter data
+lines.survfit           Add Lines or Points to a Survival Plot
+logLik.coxph            logLik method for a Cox model
+logan                   Data from the 1972-78 GSS data used by Logan
+lung                    NCCTG Lung Cancer Data
+mgus                    Monoclonal gammapothy data
+mgus2                   Monoclonal gammapothy data
+model.frame.coxph       Model.frame method for coxph objects
+model.matrix.coxph      Model.matrix method for coxph models
+neardate                Find the index of the closest value in data set
+                        2, for each entry in data set one.
+nwtco                   Data from the National Wilm's Tumor Study
+ovarian                 Ovarian Cancer Survival Data
+pbc                     Mayo Clinic Primary Biliary Cirrhosis Data
+pbcseq                  Mayo Clinic Primary Biliary Cirrhosis,
+                        sequential data
+plot.aareg              Plot an aareg object.
+plot.cox.zph            Graphical Test of Proportional Hazards
+plot.survfit            Plot method for 'survfit' objects
+predict.coxph           Predictions for a Cox model
+predict.survreg         Predicted Values for a 'survreg' Object
+print.aareg             Print an aareg object
+print.summary.coxph     Print method for summary.coxph objects
+print.summary.survexp   Print Survexp Summary
+print.summary.survfit   Print Survfit Summary
+print.survfit           Print a Short Summary of a Survival Curve
+pspline                 Smoothing splines using a pspline basis
+pyears                  Person Years
+quantile.survfit        Quantiles from a survfit object
+ratetable               Ratetable reference in formula
+ratetableDate           Convert date objects to ratetable form
+rats                    Rat treatment data from Mantel et al
+rats2                   Rat data from Gail et al.
+residuals.coxph         Calculate Residuals for a 'coxph' Fit
+residuals.survreg       Compute Residuals for 'survreg' Objects
+retinopathy             Diabetic Retinopathy
+ridge                   Ridge regression
+stanford2               More Stanford Heart Transplant data
+strata                  Identify Stratification Variables
+summary.aareg           Summarize an aareg fit
+summary.coxph           Summary method for Cox models
+summary.survexp         Summary function for a survexp object
+summary.survfit         Summary of a Survival Curve
+survConcordance         Compute a concordance measure.
+survSplit               Split a survival data set at specified times
+survdiff                Test Survival Curve Differences
+survexp                 Compute Expected Survival
+survexp.fit             Compute Expected Survival
+survexp.object          Expected Survival Curve Object
+survexp.us              Census Data Sets for the Expected Survival and
+                        Person Years Functions
+survfit                 Create survival curves
+survfit.coxph           Compute a Survival Curve from a Cox model
+survfit.formula         Compute a Survival Curve for Censored Data
+survfit.matrix          Create Aalen-Johansen estimates of multi-state
+                        survival from a matrix of hazards.
+survfit.object          Survival Curve Object
+survfitcoxph.fit        A direct interface to the 'computational
+                        engine' of survfit.coxph
+survobrien              O'Brien's Test for Association of a Single
+                        Variable with Survival
+survreg                 Regression for a Parametric Survival Model
+survreg.control         Package options for survreg and coxph
+survreg.distributions   Parametric Survival Distributions
+survreg.object          Parametric Survival Model Object
+survregDtest            Verify a survreg distribution
+tcut                    Factors for person-year calculations
+tmerge                  Time based merge for survival data
+tobin                   Tobin's Tobit data
+transplant              Liver transplant waiting list
+untangle.specials       Help Process the 'specials' Argument of the
+                        'terms' Function.
+uspop2                  Projected US Population
+veteran                 Veterans' Administration Lung Cancer study
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/help/survival.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/help/survival.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/help/survival.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/help/survival.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/help/AnIndex	(revision 2476)
@@ -0,0 +1,189 @@
+aareg	aareg
+agexact.fit	survival-internal
+agreg.fit	agreg.fit
+aml	aml
+anova.coxph	anova.coxph
+anova.coxphlist	anova.coxph
+anova.survreg	survreg
+anova.survreglist	survreg
+as.character.Surv	Surv
+as.data.frame.Surv	Surv
+as.matrix.ratetable	survival-internal
+as.matrix.Surv	Surv
+attrassign	attrassign
+attrassign.default	attrassign
+attrassign.lm	attrassign
+basehaz	basehaz
+bladder	bladder
+bladder1	bladder
+bladder2	bladder
+cancer	lung
+cch	cch
+cgd	cgd
+cgd.raw	cgd
+cgd0	cgd0
+clogit	clogit
+cluster	cluster
+colon	colon
+cox.zph	cox.zph
+coxpenal.df	survival-internal
+coxpenal.fit	survival-internal
+coxph	coxph
+coxph.control	coxph.control
+coxph.detail	coxph.detail
+coxph.fit	agreg.fit
+coxph.getdata	coxph
+coxph.object	coxph.object
+coxph.penalty	coxph
+coxph.wtest	coxph.wtest
+dsurvreg	dsurvreg
+extractAIC.coxph.penal	coxph.object
+finegray	finegray
+flchain	flchain
+format.Surv	Surv
+frailty	frailty
+frailty.gamma	frailty
+frailty.gaussian	frailty
+frailty.t	frailty
+genfan	genfan
+heart	heart
+is.na.coxph.penalty	survival-internal
+is.na.ratetable	ratetable
+is.na.ratetable2	survival-internal
+is.na.Surv	Surv
+is.ratetable	is.ratetable
+is.Surv	Surv
+jasa	heart
+jasa1	heart
+kidney	kidney
+labels.survreg	survreg
+leukemia	aml
+levels.tcut	tcut
+lines.survexp	lines.survfit
+lines.survfit	lines.survfit
+logan	logan
+logLik.coxph	logLik.coxph
+logLik.survreg	logLik.coxph
+lung	lung
+match.ratetable	survival-internal
+Math.ratetable	is.ratetable
+Math.Surv	Surv
+mgus	mgus
+mgus1	mgus
+mgus2	mgus2
+model.frame.coxph	model.frame.coxph
+model.frame.survreg	survreg
+model.matrix.coxph	model.matrix.coxph
+neardate	neardate
+nwtco	nwtco
+Ops.ratetable	is.ratetable
+Ops.Surv	Surv
+ovarian	ovarian
+pbc	pbc
+pbcseq	pbcseq
+plot.aareg	plot.aareg
+plot.cox.zph	plot.cox.zph
+plot.survfit	plot.survfit
+points.survfit	lines.survfit
+predict.coxph	predict.coxph
+predict.coxph.penal	predict.coxph
+predict.survreg	predict.survreg
+predict.survreg.penal	predict.survreg
+print.aareg	print.aareg
+print.cox.zph	cox.zph
+print.coxph	coxph.object
+print.coxph.null	coxph
+print.coxph.penal	coxph
+print.ratetable	ratetable
+print.summary.coxph	print.summary.coxph
+print.summary.survexp	print.summary.survexp
+print.summary.survfit	print.summary.survfit
+print.summary.survreg	survreg
+print.Surv	Surv
+print.survdiff	survdiff
+print.survexp	survexp
+print.survfit	print.survfit
+print.survreg	survreg.object
+print.survreg.penal	survreg
+pspline	pspline
+psplineinverse	pspline
+psurvreg	dsurvreg
+pyears	pyears
+qsurvreg	dsurvreg
+quantile.survfit	quantile.survfit
+quantile.survfitms	quantile.survfit
+ratetable	ratetable
+ratetableDate	ratetableDate
+rats	rats
+rats2	rats2
+residuals.coxph	residuals.coxph
+residuals.coxph.null	residuals.coxph
+residuals.coxph.penal	residuals.coxph
+residuals.survreg	residuals.survreg
+residuals.survreg.penal	residuals.survreg
+retinopathy	retinopathy
+ridge	ridge
+rsurvreg	dsurvreg
+stanford2	stanford2
+strata	strata
+summary.aareg	summary.aareg
+summary.coxph	summary.coxph
+summary.coxph.penal	coxph
+summary.ratetable	ratetable
+Summary.Surv	Surv
+summary.survexp	summary.survexp
+summary.survfit	summary.survfit
+summary.survreg	survreg.object
+Surv	Surv
+survConcordance	survConcordance
+survConcordance.fit	survConcordance
+survdiff	survdiff
+survdiff.fit	survival-internal
+survexp	survexp
+survexp.az	survexp.us
+survexp.azr	survexp.us
+survexp.fit	survexp.fit
+survexp.fl	survexp.us
+survexp.flr	survexp.us
+survexp.mn	survexp.us
+survexp.mnwhite	survexp.us
+survexp.object	survexp.object
+survexp.us	survexp.us
+survexp.usr	survexp.us
+survexp.wnc	survexp.us
+survfit	survfit
+survfit.coxph	survfit.coxph
+survfit.formula	survfit.formula
+survfit.matrix	survfit.matrix
+survfit.object	survfit.object
+survfitCI	survival-internal
+survfitcoxph.fit	survfitcoxph.fit
+survfitKM	survival-internal
+survfitms.object	survfit.object
+survival-internal	survival-internal
+survobrien	survobrien
+survpenal.fit	survival-internal
+survReg	survreg
+survreg	survreg
+survreg.control	survreg.control
+survreg.distributions	survreg.distributions
+survreg.fit	survival-internal
+survreg.object	survreg.object
+survregDtest	survregDtest
+survSplit	survSplit
+tcut	tcut
+tmerge	tmerge
+tobin	tobin
+transplant	transplant
+untangle.specials	untangle.specials
+uspop2	uspop2
+vcov.coxph	coxph
+vcov.survreg	survreg
+veteran	veteran
+[.cox.zph	cox.zph
+[.coxph.penalty	coxph
+[.ratetable	ratetable
+[.ratetable2	ratetable
+[.Surv	Surv
+[.survfit	survfit.formula
+[.tcut	tcut
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/survival/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/DESCRIPTION	(revision 2476)
@@ -0,0 +1,63 @@
+Package: mice
+Type: Package
+Version: 2.30
+Title: Multivariate Imputation by Chained Equations
+Date: 2017-02-18
+Authors@R: c(person("Stef", "van Buuren", role = c("aut","cre"),
+    email = "stef.vanbuuren@tno.nl"),
+    person("Karin", "Groothuis-Oudshoorn", role = "aut",
+    email = "c.g.m.oudshoorn@utwente.nl"),
+    person("Alexander", "Robitzsch", role = "ctb",
+    email = "a.robitzsch@bifie.at"),
+    person("Gerko","Vink", role = "ctb",
+    email = "g.vink@uu.nl"),
+    person("Lisa","Doove", role = "ctb",
+    email = "lisa.doove@ppw.kuleuven.be"),
+    person("Shahab","Jolani", role = "ctb",
+    email = "s.jolani@maastrichtuniversity.nl"),
+    person("Rianne","Schouten", role = "ctb",
+    email = "R.M.Schouten@uu.nl"),
+    person("Philipp","Gaffert", role = "ctb",
+    email = "philipp.gaffert@gfk.com"),
+    person("Florian","Meinfelder", role = "ctb",
+    email = "florian.meinfelder@uni-bamberg.de"))
+Maintainer: Stef van Buuren <stef.vanbuuren@tno.nl>
+Depends: methods, R (>= 2.10.0)
+Imports: lattice, grDevices, graphics, MASS, nnet, rpart, splines,
+        stats, survival, utils, Rcpp
+Suggests: AGD, CALIBERrfimpute, gamlss, lme4, mitools, nlme, pan,
+        randomForest, Zelig, BSDA, knitr, rmarkdown
+LinkingTo: Rcpp
+Description: Multiple imputation using Fully Conditional Specification (FCS)
+    implemented by the MICE algorithm as described in Van Buuren and 
+    Groothuis-Oudshoorn (2011) <doi:10.18637/jss.v045.i03>. Each variable has 
+    its own imputation model. Built-in imputation models are provided for 
+    continuous data (predictive mean matching, normal), binary data (logistic 
+    regression), unordered categorical data (polytomous logistic regression) 
+    and ordered categorical data (proportional odds). MICE can also impute 
+    continuous two-level data (normal model, pan, second-level variables). 
+    Passive imputation can be used to maintain consistency between variables. 
+    Various diagnostic plots are available to inspect the quality of the 
+    imputations.
+License: GPL-2 | GPL-3
+LazyLoad: yes
+LazyData: yes
+VignetteBuilder: knitr
+URL: http://www.stefvanbuuren.nl , http://www.multiple-imputation.com
+BugReports: https://github.com/stefvanbuuren/mice/issues
+RoxygenNote: 5.0.1
+NeedsCompilation: yes
+Packaged: 2017-02-18 20:42:30 UTC; buurensv
+Author: Stef van Buuren [aut, cre],
+  Karin Groothuis-Oudshoorn [aut],
+  Alexander Robitzsch [ctb],
+  Gerko Vink [ctb],
+  Lisa Doove [ctb],
+  Shahab Jolani [ctb],
+  Rianne Schouten [ctb],
+  Philipp Gaffert [ctb],
+  Florian Meinfelder [ctb]
+Repository: CRAN
+Date/Publication: 2017-02-18 22:39:19
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2017-02-19 11:25:22 UTC; unix
+Archs: mice.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/INDEX	(revision 2476)
@@ -0,0 +1,144 @@
+.pmm.match              Finds an imputed value from matches in the
+                        predictive metric
+ampute                  Generate Missing Data for Simulation Purposes
+ampute.continuous       Multivariate Amputation Based On Continuous
+                        Probability Functions
+ampute.default.freq     Default 'freq' in 'ampute'
+ampute.default.odds     Default 'odds' in 'ampute()'
+ampute.default.patterns
+                        Default 'patterns' in 'ampute'
+ampute.default.type     Default 'type' in 'ampute()'
+ampute.default.weights
+                        Default 'weights' in 'ampute'
+ampute.discrete         Multivariate Amputation Based On Discrete
+                        Probability Functions
+ampute.mcar             Multivariate Amputation In A MCAR Manner
+appendbreak             Appends specified break to the data
+as.mids                 Converts an multiply imputed dataset (long
+                        format) into a 'mids' object
+as.mira                 Create a 'mira' object from repeated analyses
+boys                    Growth of Dutch boys
+bwplot.mads             Box-and-whisker plot of amputed and non-amputed
+                        data
+bwplot.mids             Box-and-whisker plot of observed and imputed
+                        data
+cbind.mids              Columnwise combination of a 'mids' object.
+cc                      Select complete cases
+cci                     Complete case indicator
+complete                Creates imputed data sets from a 'mids' object
+densityplot.mids        Density plot of observed and imputed data
+extractBS               Extract broken stick estimates from a 'lmer'
+                        object
+fdd                     SE Fireworks disaster data
+fdgs                    Fifth Dutch growth study 2009
+fico                    Fraction of incomplete cases among cases with
+                        observed
+flux                    Influx and outflux of multivariate missing data
+                        patterns
+fluxplot                Fluxplot of the missing data pattern
+getfit                  Extracts fit objects from 'mira' object
+glm.mids                Generalized linear model for 'mids' object
+ibind                   Combine imputations fitted to the same data
+ic                      Select incomplete cases
+ici                     Incomplete case indicator
+is.mads                 Check for 'mads' object
+is.mids                 Check for 'mids' object
+is.mipo                 Check for 'mipo' object
+is.mira                 Check for 'mira' object
+leiden85                Leiden 85+ study
+lm.mids                 Linear regression for 'mids' object
+mads-class              Multivariate Amputed Data Set ('mads')
+mammalsleep             Mammal sleep data
+md.pairs                Missing data pattern by variable pairs
+md.pattern              Missing data pattern
+mdc                     Graphical parameter for missing data plots.
+mice                    Multivariate Imputation by Chained Equations
+                        (MICE)
+mice.impute.2l.norm     Imputation by a two-level normal model
+mice.impute.2l.pan      Imputation by a two-level normal model using
+                        'pan'
+mice.impute.2lonly.mean
+                        Imputation of the mean within the class
+mice.impute.2lonly.norm
+                        Imputation at level 2 by Bayesian linear
+                        regression
+mice.impute.2lonly.pmm
+                        Imputation at level 2 by predictive mean
+                        matching
+mice.impute.cart        Imputation by classification and regression
+                        trees
+mice.impute.fastpmm     Imputation by fast predictive mean matching
+mice.impute.lda         Imputation by linear discriminant analysis
+mice.impute.logreg      Imputation by logistic regression
+mice.impute.logreg.boot
+                        Imputation by logistic regression using the
+                        bootstrap
+mice.impute.mean        Imputation by the mean
+mice.impute.midastouch
+                        Predictive Mean Matching with distance aided
+                        selection of donors
+mice.impute.norm        Imputation by Bayesian linear regression
+mice.impute.norm.boot   Imputation by linear regression, bootstrap
+                        method
+mice.impute.norm.nob    Imputation by linear regression (non Bayesian)
+mice.impute.norm.predict
+                        Imputation by linear regression, prediction
+                        method
+mice.impute.passive     Passive imputation
+mice.impute.pmm         Imputation by predictive mean matching
+mice.impute.polr        Imputation by polytomous regression - ordered
+mice.impute.polyreg     Imputation by polytomous regression - unordered
+mice.impute.quadratic   Imputation of quadratric terms
+mice.impute.rf          Imputation by random forests
+mice.impute.ri          Imputation by the random indicator method for
+                        nonignorable data
+mice.impute.sample      Imputation by simple random sampling
+mice.mids               Multivariate Imputation by Chained Equations
+                        (Iteration Step)
+mice.theme              Set the theme for the plotting Trellis
+                        functions
+mids-class              Multiply imputed data set ('mids')
+mids2mplus              Export 'mids' object to Mplus
+mids2spss               Export 'mids' object to SPSS
+mipo-class              Multiply imputed pooled analysis ('mipo')
+mira-class              Multiply imputed repeated analyses ('mira')
+ncc                     Number of complete cases
+nelsonaalen             Cumulative hazard rate or Nelson-Aalen
+                        estimator
+nhanes                  NHANES example - all variables numerical
+nhanes2                 NHANES example - mixed numerical and discrete
+                        variables
+nic                     Number of incomplete cases
+norm.draw               Draws values of beta and sigma by Bayesian
+                        linear regression
+pattern                 Datasets with various missing data patterns
+plot.mids               Plot the trace lines of the MICE algorithm
+pool                    Multiple imputation pooling
+pool.compare            Compare two nested models fitted to imputed
+                        data
+pool.r.squared          Pooling: R squared
+pool.scalar             Multiple imputation pooling: univariate version
+popmis                  Hox pupil popularity data with missing
+                        popularity scores
+pops                    Project on preterm and small for gestational
+                        age infants (POPS)
+potthoffroy             Potthoff-Roy data
+print.mads              Print a 'mads' object
+print.mids              Print a 'mids' object
+quickpred               Quick selection of predictors from the data
+rbind.mids              Rowwise combination of a 'mids' object.
+selfreport              Self-reported and measured BMI
+squeeze                 Squeeze the imputed values to be within
+                        specified boundaries.
+stripplot.mids          Stripplot of observed and imputed data
+summary.mira            Summary of a 'mira' object
+supports.transparent    Supports semi-transparent foreground colors?
+tbc                     Terneuzen birth cohort
+version                 Echoes the package version number
+walking                 Walking disability data
+windspeed               Subset of Irish wind speed data
+with.mids               Evaluate an expression in multiple imputed
+                        datasets
+xyplot.mads             Scatterplot of amputed and non-amputed data
+                        against weighted sum scores
+xyplot.mids             Scatterplot of observed and imputed data
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/libs/mice.so.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/libs/mice.so.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/libs/mice.so.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.mice.so</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/libs/mice.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/libs/mice.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/CITATION	(revision 2476)
@@ -0,0 +1,18 @@
+citHeader("To cite mice in publications use:")
+
+citEntry(entry = "Article",
+  title        = "{mice}: Multivariate Imputation by Chained Equations in R",
+  author       = personList(person("Stef", "van Buuren"),
+                   as.person("Karin Groothuis-Oudshoorn")),
+  journal      = "Journal of Statistical Software",
+  year         = "2011",
+  volume       = "45",
+  number       = "3",
+  pages        = "1--67",
+  url          = "http://www.jstatsoft.org/v45/i03/",
+
+  textVersion  =
+  paste("Stef van Buuren, Karin Groothuis-Oudshoorn (2011).",
+        "mice: Multivariate Imputation by Chained Equations in R.",
+        "Journal of Statistical Software, 45(3), 1-67.",
+        "URL http://www.jstatsoft.org/v45/i03/."))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/NAMESPACE	(revision 2476)
@@ -0,0 +1,175 @@
+# Generated by roxygen2: do not edit by hand
+
+S3method(bwplot,mads)
+S3method(bwplot,mids)
+S3method(cc,data.frame)
+S3method(cc,default)
+S3method(cc,matrix)
+S3method(cc,mids)
+S3method(cci,default)
+S3method(cci,mids)
+S3method(densityplot,mids)
+S3method(ic,data.frame)
+S3method(ic,default)
+S3method(ic,matrix)
+S3method(ic,mids)
+S3method(ici,default)
+S3method(ici,mids)
+S3method(plot,mids)
+S3method(print,mads)
+S3method(print,mids)
+S3method(print,mipo)
+S3method(print,mira)
+S3method(stripplot,mids)
+S3method(summary,mads)
+S3method(summary,mids)
+S3method(summary,mipo)
+S3method(summary,mira)
+S3method(with,mids)
+S3method(xyplot,mads)
+S3method(xyplot,mids)
+export(.norm.draw)
+export(.pmm.match)
+export(ampute)
+export(ampute.continuous)
+export(ampute.default.freq)
+export(ampute.default.odds)
+export(ampute.default.patterns)
+export(ampute.default.type)
+export(ampute.default.weights)
+export(ampute.discrete)
+export(ampute.mcar)
+export(appendbreak)
+export(as.mids)
+export(as.mira)
+export(cbind.mids)
+export(cc)
+export(cci)
+export(complete)
+export(extractBS)
+export(fico)
+export(flux)
+export(fluxplot)
+export(getfit)
+export(glm.mids)
+export(ibind)
+export(ic)
+export(ici)
+export(is.mads)
+export(is.mids)
+export(is.mipo)
+export(is.mira)
+export(lm.mids)
+export(md.pairs)
+export(md.pattern)
+export(mdc)
+export(mice)
+export(mice.impute.2l.norm)
+export(mice.impute.2l.pan)
+export(mice.impute.2lonly.mean)
+export(mice.impute.2lonly.norm)
+export(mice.impute.2lonly.pmm)
+export(mice.impute.cart)
+export(mice.impute.fastpmm)
+export(mice.impute.lda)
+export(mice.impute.logreg)
+export(mice.impute.logreg.boot)
+export(mice.impute.mean)
+export(mice.impute.midastouch)
+export(mice.impute.norm)
+export(mice.impute.norm.boot)
+export(mice.impute.norm.nob)
+export(mice.impute.norm.predict)
+export(mice.impute.passive)
+export(mice.impute.pmm)
+export(mice.impute.polr)
+export(mice.impute.polyreg)
+export(mice.impute.quadratic)
+export(mice.impute.rf)
+export(mice.impute.ri)
+export(mice.impute.sample)
+export(mice.mids)
+export(mice.theme)
+export(mids2mplus)
+export(mids2spss)
+export(ncc)
+export(nelsonaalen)
+export(nic)
+export(norm.draw)
+export(pool)
+export(pool.compare)
+export(pool.r.squared)
+export(pool.scalar)
+export(quickpred)
+export(rbind.mids)
+export(squeeze)
+export(supports.transparent)
+export(version)
+exportClasses(mads)
+exportClasses(mids)
+exportClasses(mipo)
+exportClasses(mira)
+import(methods)
+importFrom(MASS,eqscplot)
+importFrom(MASS,lda)
+importFrom(MASS,mvrnorm)
+importFrom(MASS,polr)
+importFrom(MASS,truehist)
+importFrom(Rcpp,sourceCpp)
+importFrom(grDevices,dev.capabilities)
+importFrom(grDevices,hcl)
+importFrom(grDevices,palette)
+importFrom(graphics,abline)
+importFrom(graphics,plot)
+importFrom(graphics,points)
+importFrom(graphics,text)
+importFrom(lattice,bwplot)
+importFrom(lattice,densityplot)
+importFrom(lattice,stripplot)
+importFrom(lattice,xyplot)
+importFrom(nnet,multinom)
+importFrom(nnet,nnet)
+importFrom(rpart,rpart)
+importFrom(rpart,rpart.control)
+importFrom(splines,bs)
+importFrom(stats,C)
+importFrom(stats,aggregate)
+importFrom(stats,as.formula)
+importFrom(stats,binomial)
+importFrom(stats,coef)
+importFrom(stats,complete.cases)
+importFrom(stats,contr.treatment)
+importFrom(stats,cor)
+importFrom(stats,df.residual)
+importFrom(stats,fitted)
+importFrom(stats,formula)
+importFrom(stats,gaussian)
+importFrom(stats,glm)
+importFrom(stats,lm)
+importFrom(stats,model.frame)
+importFrom(stats,model.matrix)
+importFrom(stats,na.exclude)
+importFrom(stats,pf)
+importFrom(stats,predict)
+importFrom(stats,pt)
+importFrom(stats,qt)
+importFrom(stats,quantile)
+importFrom(stats,rbinom)
+importFrom(stats,rchisq)
+importFrom(stats,rgamma)
+importFrom(stats,rnorm)
+importFrom(stats,runif)
+importFrom(stats,summary.glm)
+importFrom(stats,update)
+importFrom(stats,var)
+importFrom(stats,vcov)
+importFrom(survival,Surv)
+importFrom(survival,basehaz)
+importFrom(survival,coxph)
+importFrom(utils,flush.console)
+importFrom(utils,head)
+importFrom(utils,methods)
+importFrom(utils,packageDescription)
+importFrom(utils,tail)
+importFrom(utils,write.table)
+useDynLib(mice)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mice/NEWS	(revision 2476)
@@ -0,0 +1,296 @@
+MICE: Multivariate Imputation by Chained Equations
+
+MICE is an R package implementing multiple imputation of
+incomplete multivariate data according the principle of
+Fully Conditional Specification (FCS).
+
+Questions and suggestions about MICE can be directed to
+
+    https://github.com/stefvanbuuren/mice/issues
+
+
+CHANGELOG MICE
+~~~~~~~~~~~~~~
+V2.30    04feb2017 SvB
+ADDED    README for GitHub
+ADDED    new ampute functions and vignette (thanks Rianne Schouten)
+CHANGED  rename ccn-->ncc, icn-->nic
+CHANGED  helpers cc(), ncc(), cci(), ic(), nic() and ici() use S3 dispatch
+CHANGED  issues tracker now on Github - add BugReports URL #21
+FIXED    multinom MaxNWts type fix in polyreg and polr #9
+FIXED    better checking of nested models in pool.compare #12
+FIXED    bug fix in as.mids if names not same as all columns #11
+FIXED    extension for glmer models #5
+
+V2.29    05oct2016 SvB
+ADDED    midastouch: predictive mean matching for small samples (thanks Philip Gaffert, Florian Meinfelder)
+
+V2.28    05oct2016 SvB
+FIXED    repaired dots problem in rpart call
+
+V2.27    27jul2016 SvB
+FIXED    add ridge to 2l.norm()
+
+V2.26    12may2016 SvB
+FIXED    removed .o files
+
+V2.25    09nov2015 SvB
+FIXED    fix as.mids() bug that crashed miceadds::mice.1chain()
+
+V2.23    04nov2015 SvB
+FIXED    update of example code on /doc
+FIXED    remove lots of dependencies, general cleanup 
+FIXED    impute.polyreg() bug that bombed if there were no predictors (thanks Jan Graffelman)
+FIXED    as.mids() bug that gave incorrect m (several users)
+FIXED    pool.compare() error for lmer object (thanks Claudio Bustos)
+FIXED    error in mice.impute.2l.norm() if just one NA (thanks Jeroen Hoogland)
+
+V2.22    11jun2014 SvB
+ADDED    about six times faster predictive mean matching
+ADDED    pool.scalar() now can do Barnard-Rubin adjustment
+ADDED    pool() now handles class 'lmerMod' from the 'lme4' package
+CHANGED  added automatic bounds on donors in .pmm.match() for safety
+CHANGED  added donors argument to mice.impute.pmm() for increased visibility
+CHANGED  default number of trees in mice.impute.rf() from 100 to 10 (thanks Anoop Shah) 
+DELETED  long2mids() deprecated. Use as.mids() instead
+FIXED    put lattice back into DEPENDS to find generic xyplot() and friends
+FIXED    error in 2lonly.pmm (thanks Alexander Robitzsch, Gerko Vink, Judith Godin)
+FIXED    number of imputations in as.mids() (thanks Tommy Nyberg, Gerko Vink)
+FIXED    colors to mdc() in example mice.impute.quadratic()
+FIXED    error in mice.impute.rf() if just one NA (thanks Anoop Shah)
+FIXED    error in summary.mipo() when names(x$qbar) equals NULL (thanks Aiko Kuhn)
+FIXED    improper testing in ncol() in mice.impute.2lonly.mean() 
+
+V2.21    02-05-2014 SvB
+FIXED    compilation problem in match.cpp on solaris CC 
+
+V2.20    02-02-2014 SvB
+ADDED    experimental fastpmm() function using Rcpp
+FIXED    fixes to mice.impute.cart() and mice.impute.rf() (thanks Anoop Shah)
+
+V2.19    21-01-2014 SvB
+ADDED    mice.impute.rf() for random forest imputation (thanks Lisa Doove)
+CHANGED  default number of donors in mice.impute.pmm() changed from 3 to 5.
+         Use mice(..., donors = 3) to get the old behavior.
+CHANGED  speedup in .norm.draw() by using crossprod() (thanks Alexander Robitzsch)
+CHANGED  speedup in .imputation.level2() (thanks Alexander Robitzsch)
+FIXED    define MASS, nnet, lattice as imports instead of depends
+FIXED    proper handling of rare case in remove.lindep() that removed all predictors (thanks Jaap Brand)
+
+V2.18    31-07-2013 SvB
+ADDED    as.mids() for converting long format in a mids object (thanks Gerko Vink)
+FIXED    mice.impute.logreg.boot() now properly exported (thanks Suresh Pujar)
+FIXED    two bugs in rbind.mids() (thanks Gerko Vink)
+
+V2.17    10-05-2013 SvB
+ADDED    new form argument to mice() to specify imputation models using forms (contributed Ross Boylan)
+FIXED    with.mids(), is.mids(), is.mira() and is.mipo() exported
+FIXED    eliminated errors in the documentation of pool.scalar()
+FIXED    error in mice.impute.ri() (thanks Shahab Jolani)
+
+V2.16    27-04-2013 SvB
+ADDED    random indicator imputation by mice.impute.ri() for nonignorable models (thanks Shahab Jolani)
+ADDED    workhorse functions .norm.draw() and .pmm.match() are exported
+FIXED    bug in 2.14 and 2.15 in mice.impute.pmm() that produced an error on factors
+FIXED    bug that crashed R when the class variable was incomplete (thanks Robert Long)
+FIXED    bug in 2l.pan and 2l.norm by convert a class factor to integer (thanks Robert Long)
+FIXED    warning eliminated caused by character variables (thanks Robert Long)
+
+V2.15 - 02-04-2013 SvB
+CHANGED  complete reorganization of documentation and source files
+ADDED    source published on GitHub.com
+ADDED    new imputation method mice.impute.cart() (thanks Lisa Doove)
+FIXED    calculation of degrees of freedom in pool.compare() (thanks Lorenz Uhlmann)
+FIXED    error in DESCRIPTION file (thanks Kurt Hornik)
+
+V2.14 - 11-03-2013 / SvB
+ADDED    mice.impute.2l.mean() for imputing class means at level 2
+ADDED    sampler(): new checks of degrees of freedom per variable at iteration 1
+ADDED    function check.df() to throw a warning about low degrees of freedom
+FIXED    tolower() added in "2l" test in sampler()
+FIXED    conversion of factors that have other roles (multilevel) in padModel()
+FIXED    family argument in call to glm() in glm.mids() (thanks Nicholas Horton)
+FIXED    .norm.draw(): evading NaN imputed values by setting df in rchisq() to a minimum of 1
+FIXED    bug in mice.df() that prevented the classic Rubin df calculation (thanks Jean-Batiste Pingaul)
+FIXED    bug fixed in mice.impute.2l.norm() (thanks Robert Long)
+CHANGED  faster .pmm.match2() from version 2.12 renamed to default .pmm.match()
+
+V2.13 - 03-07-2012 / SvB
+ADDED    new multilevel functions 2l.pan(), 2lonly.norm(), 2lonly.pmm() (contributed by Alexander Robitzsch)
+ADDED    new quadratic imputation function: quadratic() (contributed by Gerko Vink)
+ADDED    pmm2(), five times faster than pmm()
+ADDED    new argument data.init in mice() for initialization (suggested by Alexander Robitzsch)
+ADDED    mice() now accepts pmm as method for (ordered) factors
+ADDED    warning and a note to 2l.norm() that advises to use type=2 for the predictors
+FIXED    bug that chrashed plot.mids() if there was only one incomplete variable (thanks Dennis Prangle)
+FIXED    bug in sample() in .pmm.match() when donor=1 (thanks Alexander Robitzsch)
+FIXED    bug in sample() in mice.impute.sample()
+FIXED    fixed '?data' bug in check.method()
+REMOVED	 wp.twin(). Now available from the AGD package
+
+V2.12 - 25-03-2012 / SvB
+UPDATE   version for launch of Flexible Imputation of Missing Data (FIMD)
+ADDED    code fimd1.r-fim9.r to inst/doc for calculating solutions in FIMD
+FIXED    more robust version of supports.transparent() (thanks Brian Ripley)
+ADDED    auxiliary functions ifdo(), long2mids(), appendbreak(), extractBS(), wp.twin()
+ADDED    getfit() function
+ADDED    datasets: tbc, potthoffroy, selfreport, walking, fdd, fdgs, pattern1-pattern4, mammalsleep
+FIXED    as.mira() added to namespace
+ADDED 	 functions flux(), fluxplot() and fico() for missing data patterns
+ADDED    function nelsonaalen() for imputing survival data
+CHANGED  rm.whitespace() shortened
+FIXED    bug in pool() that crashed on nonstandard behavior of survreg() (thanks Erich Studerus)
+CHANGED  pool() streamlined, warnings about incompatibility in lengths of coef() and vcov()
+FIXED    mdc() bug that ignored transparent=FALSE argument, now made visible
+FIXED    bug in md.pattern() for >32 variables (thanks Sascha Vieweg, Joshua Wiley)
+
+V2.11 - 21-11-2011 / SvB
+UPDATED  definite reference to JSS paper
+ADDED    rm.whitespace() to do string manipulation (thanks Gerko Vink)
+ADDED    function mids2mplus() to export data to Mplus (thanks Gerko Vink)
+CHANGED  plot.mids() changed into trellis version
+ADDED    code used in JSS-paper
+FIXED    bug in check.method() (thanks Gerko Vink)
+
+V2.10 - 14-09-2011 / SvB
+FIXED:  arguments dec and sep in mids2spss (thanks Nicole Haag)
+FIXED:  bug in keyword "monotone" in mice() (thanks Alain D)
+
+V2.9 - 31-08-2011 / SvB
+FIXED:   appropriate trimming of ynames and xnames in Trellis plots
+FIXED:   exported: spss2mids(), mice.impute.2L.norm()
+ADDED:   mice.impute.norm.predict(), mice.impute.norm.boot(), mice.impute.logreg.boot()
+ADDED:   supports.transparent() to detect whether .Device can do semi-transparent colors
+FIXED:   stringr package is now properly loaded
+ADDED:   trellis version of plot.mids()
+ADDED:   automatic semi-transparancy detection in mdc()
+FIXED:   documentation of mira class (thanks Sandro Tsang)
+
+V2.8 - 24-03-2011 / SvB
+FIXED:   bug fixed in find.collinear() that bombed when only one variable was left
+
+V2.7 - 16-03-2011 / SvB
+CHANGED: check.data(), remove.lindep(): fully missing variables are imputed if allow.na=TRUE (Alexander Robitzsch)
+FIXED:   bug in check.data(). Now checks collinearity in predictors only (Alexander Robitzsch)
+CHANGED: abbreviations of arguments eliminated to evade linux warnings
+
+V2.6 - 03-03-2011 / SvB
+ADDED:   bwplot(), stripplot(), densityplot() and xyplot() for creating Trellis graphs
+ADDED:   function mdc() and mice.theme() for graphical parameters
+ADDED:   argument passing from mice() to lower-level functions (requested by Juned Siddique)
+FIXED:   erroneous rgamma() replaced by rchisq() in .norm.draw, lowers variance a bit for small n
+ADDED:   with.mids() extended to handle expression objects
+FIXED:   reporting bug in summary.mipo()
+CHANGED: df calculation in pool(), intervals may become slightly wider
+ADDED:   internal functions mice.df() and df.residual()
+FIXED:   error in rm calculation for "likelihood" in pool.compare()
+CHANGED: default ridge parameter changed
+
+V2.5 - 06-01-2011 / SvB
+ADDED:   various stability enhancements and code clean-up
+ADDED:   find.collinear() function
+CHANGED: automatic removal of constant and collinear variables
+ADDED:   ridge parameter in .norm.draw() and .norm.fix()
+ADDED:   mice.impute.polr() for ordered factors
+FIXED:   chainMean and chainVar in mice.mids()
+FIXED:   iteration counter for mice.mids and sampler()
+ADDED:   component 'loggedEvents' to mids-object for logging actions
+REMOVED: annoying warnings about removed predictors
+ADDED:   updateLog() function
+CHANGED: smarter handling of model setup in mice()
+CHANGED: .pmm.match() now draws from the three closest donors
+ADDED:   mids2spss() for shipping a mids-object to SPSS
+FIXED:   change in summary.mipo() to work with as.mira()
+ADDED:   function mice.impute.2L.norm.noint()
+ADDED:   function as.mira()
+FIXED:   global assign() removed from mice.impute.polyreg()
+FIXED:   improved handling of factors by complete()
+FIXED:   improved labeling of nhanes2 data
+
+V2.4 - 17-10-2010 / SvB
+ADDED:   pool() now supports class 'polr' (Jean-Baptiste Pingault)
+FIXED:   solved problem in mice.impute.polyreg when one of the variables was named y or x
+FIXED:   remove.lindep: intercept prediction bug
+ADDED:   version() function
+ADDED:   cc(), cci() and ccn() convenience functions
+
+V2.3 - 14-02-2010 / SvB
+FIXED:   check.method: logicals are now treated as binary variables (Emmanuel Charpentier)
+FIXED:   complete: the NULL imputation case is now properly handled
+FIXED:   mice.impute.pmm: now creates between imputation variability for univariate predictor
+FIXED:   remove.lindep: returns 'keep' vector instead of data
+
+V2.2 - 13-01-2010 / SvB
+ADDED:   pool() now supports class 'multinom' (Jean-Baptiste Pingault)
+FIXED:   bug fixed in check.data for data consisting of two columns (Rogier Donders, Thomas Koepsell)
+ADDED:   new function remove.lindep() that removes predictors that are (almost) linearly dependent
+FIXED:   bug fixed in pool() that produced an (innocent) warning message (Qi Zheng)
+
+V2.1 - 14-09-2009 / SvB
+ADDED:   pool() now also supports class 'mer'
+CHANGED: nlme and lme4 are now only loaded if needed (by pool())
+FIXED:   bug fixed in mice.impute.polyreg() when there was one missing entry (Emmanuel Charpentier)
+FIXED:   bug fixed in plot.mids() when there was one missing entry (Emmanuel Charpentier)
+CHANGED: NAMESPACE expanded to allow easy access to function code
+FIXED:   mice() can now find mice.impute.xxx() functions in the .GlobalEnv
+
+v2.0 - 26-08-2009 / SvB, KO 	Major upgrade for JSS manuscript
+ADDED:   new functions cbind.mids(), rbind.mids(), ibind()
+ADDED:   new argument in mice(): 'post' in post-processing imputations
+ADDED:   new functions: pool.scaler(), pool.compare(), pool.r.squared()
+ADDED:	 new data: boys, popmis, windspeed
+FIXED:	 function summary.mipo all(object$df) command fixed
+DELETED: data.frame.to.matrix replaced by the internal data.matrix function
+ADDED:   new imputation method mice.impute.2l.norm() for multilevel data
+CHANGED: pool now works for any class having a vcov() method
+ADDED:   with.mids() provides a general complete-data analysis
+ADDED:   type checking in mice() to ensure appropriate imputation methods
+ADDED:   warning added in mice() for constant predictors
+ADDED:   prevention of perfect prediction in mice.impute.logreg() and mice.impute.polyreg()
+CHANGED: mice.impute.norm.improper() changed into mice.impute.norm.nob()
+DELETED: mice.impute.polyreg2() deleted
+ADDED:   new 'include' argument in complete()
+ADDED:   support for the empty imputation method in mice()
+ADDED:   new function md.pairs()
+ADDED:   support for intercept imputation
+ADDED:   new function quickpred()
+FIXED:   plot.mids() bug fix when number of variables > 5
+
+
+v1.21 - 15/3/2009 SvB  Maintainance release
+
+FIXED:   Stricter type checking on logicals in mice() to evade warnings.
+CHANGED: Modernization of all help files.
+FIXED:   padModel: treatment changed to contr.treatment
+CHANGED: Functions check.visitSequence, check.predictorMatrix, check.imputationMethod are now coded as local to mice()
+FIXED:   existsFunction in check.imputationMethod now works both under S-Plus and R
+
+v1.16 - 6/25/2007
+
+FIXED: The impution function impute.logreg used convergence criteria that were too optimistic when fitting a GLM with glm.fit. Thanks to Ulrike Gromping.
+
+v1.15 - 01/09/2006
+
+FIXED: In the lm.mids and glm.mids functions, parameters were not passed through to glm and lm.
+
+v1.14R - 9/26/2005 11:44AM
+FIXED: Passive imputation works again. (Roel de Jong)
+CHANGED: Random seed is now left alone, UNLESS the argument "seed" is specified. This means that unless you
+specify identical seed values, imputations of the same dataset will be different for multiple calls to mice. (Roel de Jong)
+FIXED (docs): Documentation for "impute.mean" (Roel de Jong)
+FIXED: Function 'summary.mids' now works (Roel de Jong)
+FIXED: Imputation function 'impute.polyreg' and 'impute.lda' should now work under R
+
+v1.13
+Changed function checkImputationMethod, Feb 6, 2004
+
+v1.12
+Maintainance, S-Plus 6.1 and R 1.8 unicode, January 2004
+
+v1.1
+R version (with help of Peter Malewski and Frank Harrell), Feb 2001
+
+v1.0
+Original S-PLUS release, June 14 2000
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/R/splines.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/R/splines.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/R/splines
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/R/splines	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/R/splines	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/R/splines.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/R/splines.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/tests/spline-tst.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/tests/spline-tst.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/tests/spline-tst.R	(revision 2476)
@@ -0,0 +1,219 @@
+require("splines")
+
+## Bug report PR#16549 - 'bad value from splineDesign'
+## Date: Wed, 30 Sep 2015 12:12:47 +0000
+## https://bugs.r-project.org/bugzilla/show_bug.cgi?id=16549
+
+## Reporter: roconnor@health.usf.edu  (extended original example code)
+
+kn8.01 <- c(0,0,0,0,1,1,1,1)
+m1  <- rbind(c(1, 0,0,0))
+m.1 <- rbind(c(0,0,0, 1))
+stopifnot(
+    ## the first gave (0 0 0 0) instead of m1 :
+    all.equal(splineDesign(kn8.01, c(0,2),    outer.ok = TRUE), rbind(m1, 0)),
+    all.equal(splineDesign(kn8.01, c( 0,1,2), outer.ok = TRUE), rbind(m1, m.1, 0)),
+    all.equal(splineDesign(kn8.01, c(-1,0,1), outer.ok = TRUE), rbind(0, m1, m.1)),
+    all.equal(splineDesign(kn8.01, 0, outer.ok = TRUE), m1),
+    all.equal(splineDesign(kn8.01, 0), m1),
+    TRUE)
+
+## The original fix proposal introduced a new bug, visible here:
+S <- splineDesign(c(-3, -3, -2, 0, 2, 3, 3), x= -3:3, outer.ok=TRUE)
+## (had a NaN in the lower-right corner)
+stopifnot(all.equal(S,
+		    rbind(0, c(22,3,0)/45, c(193, 6*23, 9)/360,
+			  c(1,3,1)/5,
+			  c(9, 6*23, 193)/360,
+			  c(0,3,22)/45, 0),
+		    tolerance = 1e-14))
+
+chkSum.Ok <- TRUE ## for check
+chkSum <- function(knots, n = 1 + 2^9, ord = 4) {
+    stopifnot(is.numeric(knots), !is.unsorted(knots), (n.k <- length(knots)) >= ord)
+    dk <- diff(rk <- range(uk <- unique(knots)))
+    if(dk == 0) dk <- uk[1]/4
+    d.x <- dk / (2*n.k)
+    ## x: the unique knots
+    x <- sort(c(uk, seq.int(min(knots)-d.x, max(knots)+d.x, length.out = n)))
+    bb <- splineDesign(knots, x = x, ord = ord, outer.ok = TRUE)
+    is.x.in <- knots[ord] <= x & x <= knots[n.k-(ord-1)]
+    ##                   ~~~~     ~~~~  same as in splineDesign(*, outer.ok=TRUE)
+    ##
+### no longer needed:
+    ## work around "infelicity" (or not; not sure if to call "bug")
+    ## n.RHk := #{duplicated RHS boundary knots}
+    ## n.RHk <- match(FALSE, rev(duplicated(knots)))
+    ## if(ord > 1 && n.RHk > ord) { ## the (ord == 1) case "works" via spike = 1
+    ##     ## <==> knots[n.k -j ] == knots[n.k] for j = 0,1,..,(n.RHk-1)
+    ##     ## then spl(x= RHS-knot, knots) == 0, even though "should" be 1
+    ##     ## "FIX it up" for here. FIXME: do in splineDesign() or it's C code ?!
+    ##     iR <- which(x == knots[n.k])
+    ##     ## ncol(bb) == n.k - ord
+    ##     j <- n.k - n.RHk # == ncol(bb) - (n.RHk - ord)
+    ##     if(any(bb[iR, j] == 0)) bb[iR, j] <- 1
+    ## }
+    sumB <- rowSums(bb)
+    if(any(iBad <- !is.finite(sumB))) {
+	chkSum.Ok <<- FALSE ## for check
+	cat("** _FIXME_ NON-finite values in sumB: ord = ", ord, "; |knots| =", n.k,"\n")
+	cat("knots <- "); dput(knots)
+	cat("non-finite at x = "); dput(x[iBad])
+    } else if(length(bb)) { # only when bb[] is not 0-dimensional
+	eps <- 3*.Machine$double.eps
+	stopifnot(abs(1 - sumB[is.x.in]) <= 2*eps, 0 <= sumB+eps, sumB-2*eps <= 1)
+	## TODO: now also check derivatives
+    }
+    invisible(bb)
+}
+
+plotSplD <- function(knots, n = 2^10, ord = 4, type = "l",
+		     ylim = c(0,1), ylab = "B-splines", ...) {
+    stopifnot(is.numeric(knots), !is.unsorted(knots), (n.k <- length(knots)) >= ord)
+    dk <- diff(range(uk <- unique(knots)))
+    if(dk == 0) dk <- uk[1]/4
+    d.x <- dk / (2*n.k)
+    ## x: will contain the unique knots uk
+    x <- sort(c(uk, seq.int(min(knots)-d.x, max(knots)+d.x, length.out = n)))
+    bb <- splineDesign(knots, x = x, ord = ord, outer.ok = TRUE)
+    matplot(x, bb, type=type, ylim=ylim, ylab=ylab, ...)
+    sumB <- rowSums(bb)
+    abline(v = knots, lty = 3, col = "light gray")
+    abline(v = knots[c(ord, n.k-(ord-1))], lty = 3, col = "gray10")
+    lines(x, sumB, col = adjustcolor("red", 0.4), lwd = 3)
+    abline(h=1, lty=2, col = adjustcolor(1, 0.4), lwd = 2)
+    ## lty, col,: from matplot()
+    legend(mean(x), 0.98, legend = paste0("B_", 1:ncol(bb)), lty=1:5, col=1:6,
+	   bty = "n", xjust = 0.5)
+    invisible(list(x=x, splineDesign = bb))
+}
+
+if(!dev.interactive(orNone=TRUE)) pdf("spline-tst.pdf")
+
+plotSplD(kn8.01)
+chkSum  (kn8.01)
+
+## from ../man/splineDesign.Rd :
+knots <- c(1,1.8,3:5,6.5,7,8.1,9.2,10)  # 10 => 10-4 = 6 Basis splines
+str(plotSplD(knots))       # cubic     splines, adding to 1 in [ 4, 7 ]
+str(plotSplD(knots, ord=3))# quadratic splines, adding to 1 in [ 3, 8.1]
+str(plotSplD(knots, ord=2))# linear    splines, adding to 1 in [1.8,9.2]
+str(plotSplD(knots, ord=1))# constant  splines, adding to 1 in [1, 10]
+
+chkSum(knots)
+chkSum(knots, ord=3)
+chkSum(knots, ord=2)
+chkSum(knots, ord=1)
+
+## cases that failed too {Linux lynne 4.1.6 x86_64}
+chkSum(c(1:5, 9,9),     ord=2) # ok for ord in {1,3,4}
+chkSum(c(1:4, 9,9,9),   ord=3)
+chkSum(c(1:3, 9,9,9,9), ord=4)
+## These failed in R <= 3.2.2 (but not after first fix):
+chkSum(c(0,0,0,0, 1:3), ord=4)
+chkSum(c(0,0,0,   1:4), ord=3)
+chkSum(c(0,0,     1:5), ord=2)
+
+## This should be symmetric, but was not;
+## the graphic is maybe most convincing:
+k6.01 <- c(0,0,0, 1,1,1)
+round(with(plotSplD(k6.01, ord=2, n=16), cbind(x, splineDesign)), 4)
+x8 <- (0:8)/8
+sp8 <- splineDesign(k6.01, x=x8, ord=2)
+print.table(8*sp8, zero.print=".")
+stopifnot(all.equal(8*sp8,
+		    cbind(0, 8:0, 0:8, 0), tol = 1e-14))
+## or just
+splineDesign(k6.01, x=0:1, ord=2)
+##  0 1 0 0
+##  0 0 1 0 --- [finally !]
+stopifnot(identical(cbind(0, diag(2), 0),
+		    splineDesign(k6.01, x=0:1, ord=2)))
+
+## Further:
+for(k in 0:8)
+    chkSum(c(0:k, 9,9,9),     ord=2)
+for(k in 0:8)
+    chkSum(c(0:k, 9,9,9,9),   ord=3)
+for(k in 0:8)
+    chkSum(c(0:k, 9,9,9,9,9), ord=4)
+
+## look at two examples
+r  <- plotSplD(c(0:4, 8.9,9,9,9), ord=3)# B_6 is narrow spike
+r. <- plotSplD(c(0:4,  9, 9,9,9), ord=3)# B_6 diverged to all zero.
+if(interactive())
+    round(with(r., cbind(x, splineDesign)), 4)
+stopifnot(r.$splineDesign[, 6] == 0)
+## one could argue that B_6 should also have finite area, and hence be "a delta".
+## ==> sum_j B_j(x = 9) would then be Inf or undefined ..
+## more sensible: B_6 should be omitted and should have B_5(9) == 1
+## now implemented:
+stopifnot(identical(c(0, 0, 0, 0, 1, 0),
+		    with(r., splineDesign[x == 9,])))
+
+## Everything is fine, if  left-right  mirrored / reversed :
+r03 <- plotSplD(c(0,0,0,0,  1:5), ord=3)
+## here, B_1 is "delta" and should rather be omitted
+stopifnot(identical(c(0, 1, 0, 0, 0, 0),
+		    with(r03, splineDesign[x == 0,])))
+## 0 1 0 0 0 0 -- as it should be ..
+round(with(r03, cbind(x, splineDesign)[50:60,]), 4)
+
+r04 <- plotSplD(c(0,0,0,0,  1:5), ord=4)
+## here, B_1 is "delta" and should rather be omitted
+stopifnot(identical(c(1, 0, 0, 0, 0),
+		    with(r04, splineDesign[x == 0,])))
+round(with(r04, cbind(x, splineDesign)[50:60,]), 4)
+
+r0.4 <- plotSplD(c(0,0,0, 1:5), ord=4) # basis is nice and correct
+
+
+set.seed(17)
+
+for(n in 1:1000) {
+    if(n %% 50 == 0) cat(sprintf("n = %4d\n",n))
+    kn <- sort.int(round(10* rnorm(4 + rpois(1, lambda=4))))
+    for(oo in 1:4)
+	## if(inherits(r <- tryCatch(chkSum(kn, ord=oo), error=identity), "error"))
+	##     cat(r$message, "\n chkSum(", deparse(kn), ", ord = ", oo, ")\n")
+	chkSum(kn, ord = oo)
+}
+
+## One of the cases with NaN {when used  ( . <= x & x <= . )}:
+
+bb <- chkSum(c(-14, -4, 3, 5, 6, 15, 15))
+stopifnot(is.finite(rowSums(bb)))
+
+
+stopifnot(chkSum.Ok)
+
+proc.time()
+
+###---- "Bug report" (to R-core) from Trevor Hastie ---
+###---->  bs(*, Boundary.knots = .)
+### needing boundary ajustment for correct extrapolation
+
+## Trevor's Example, slightly modified and extended:
+x <- seq(1.5, 8.5, by = 1/4)
+set.seed(13)
+y <- x + .01*(x - 5)^3 + rnorm(x)
+
+fit0 <- lm(y ~ bs(x, degree=3, knots=4))
+fit0.<- lm(y ~ bs(x, degree=3, knots=4, Boundary.knots=c(1,9)))# *NOT* outside
+fit1 <- lm(y ~ bs(x, degree=3, knots=4, Boundary.knots=c(1,8)))# warning
+fit2 <- lm(y ~ bs(x, degree=3, knots=4, Boundary.knots=c(2,8)))# warning "2 x"
+
+jx <- seq(from=-2,to=12, by=0.1)
+p0 <- predict(fit0, list(x=jx))
+p0.<- predict(fit0, list(x=jx))
+p1 <- predict(fit1, list(x=jx))
+p2 <- predict(fit2, list(x=jx))
+stopifnot(all.equal(p0, p0.,tol=1e-14),
+          all.equal(p0, p1, tol=1e-14),
+          all.equal(p0, p2, tol=1e-14))
+## ^^  p1 and p2 differed from p0 in R <= 3.2.2
+## See numerical fuzz:
+all.equal(p0, p0., tol=0)
+all.equal(p0, p1,  tol=0)
+all.equal(p0, p2,  tol=0)
+all.equal(p1, p2,  tol=0)# interestingly almost the same
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/tests/sparse-tst.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/tests/sparse-tst.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/tests/sparse-tst.R	(revision 2476)
@@ -0,0 +1,35 @@
+###----------------- sparse / dense   interpSpline() ---------------------------
+
+## This requires recommended package Matrix.
+
+if(!requireNamespace("Matrix", quietly = TRUE)) q()
+
+require("splines")
+
+## from  help(interpSpline) -- ../man/interpSpline.Rd
+ispl <- interpSpline( women$height, women$weight)
+isp. <- interpSpline( women$height, women$weight, sparse=TRUE)
+stopifnot(all.equal(ispl, isp., tol = 1e-12)) # seen 1.65e-14
+
+##' @title Interpolate size-n version of the 'women' data sparsely and densely
+##' @param n size of "women-like" data to interpolate
+##' @return list with dense and sparse \code{\link{system.time}()}s
+##' @author Martin Maechler
+ipStime <- function(n) { # and using 'ispl'
+    h <- seq(55, 75, length.out = n)
+    w <- predict(ispl, h)$y
+    c.d <- system.time(is.d <- interpSpline(h, w, sparse=FALSE))
+    c.s <- system.time(is.s <- interpSpline(h, w, sparse=TRUE ))
+    stopifnot(all.equal(is.d, is.s, tol = 1e-7)) # seen 9.4e-10 (n=1000), 1.3e-7 (n=5000)
+    list(d.time = c.d, s.time = c.s)
+}
+
+n.s <- 25 * round(2^seq(1,6, by=.5))
+if(!interactive())# save 'check time'
+    n.s <- n.s[100 <= n.s & n.s <= 800]
+(ipL <- lapply(setNames(n.s, paste0("n=",n.s)), ipStime))
+## sparse is *an order of magnitude* faster for n ~= 1000 but somewhat slower for n ~< 200:
+sapply(ipL, function(ip) round(ip$d.time / ip$s.time, 1)[c(1,3)])
+##           n=50 n=75 n=100 n=150 n=200 n=275 n=400 n=575 n=800 n=1125 n=1600 -- nb-mm4, i7-5600U
+## user.self  0.5  0.5   0.5   0.5   0.7   2.5   4.3  12.3  33.7   70.5  116.1
+## elapsed    0.5  0.3   0.5   0.7   1.0   2.5   4.3  13.0  26.2   57.4  117.3
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/DESCRIPTION	(revision 2476)
@@ -0,0 +1,13 @@
+Package: splines
+Version: 3.3.2
+Priority: base
+Imports: graphics, stats
+Title: Regression Spline Functions and Classes
+Author: Douglas M. Bates <bates@stat.wisc.edu> and
+ William N. Venables <Bill.Venables@csiro.au>
+Maintainer: R Core Team <R-core@r-project.org>
+Description: Regression spline functions and classes.
+License: Part of R 3.3.2
+Suggests: Matrix, methods
+NeedsCompilation: yes
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:33:25 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/html/00Index.html	(revision 2476)
@@ -0,0 +1,68 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Regression Spline Functions and Classes</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Regression Spline Functions and Classes
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;splines&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="splines-package.html">splines-package</a></td>
+<td>Regression Spline Functions and Classes</td></tr>
+<tr><td style="width: 25%;"><a href="polySpline.html">as.polySpline</a></td>
+<td>Piecewise Polynomial Spline Representation</td></tr>
+<tr><td style="width: 25%;"><a href="asVector.html">asVector</a></td>
+<td>Coerce an Object to a Vector</td></tr>
+<tr><td style="width: 25%;"><a href="backSpline.html">backSpline</a></td>
+<td>Monotone Inverse Spline</td></tr>
+<tr><td style="width: 25%;"><a href="bs.html">bs</a></td>
+<td>B-Spline Basis for Polynomial Splines</td></tr>
+<tr><td style="width: 25%;"><a href="interpSpline.html">interpSpline</a></td>
+<td>Create an Interpolation Spline</td></tr>
+<tr><td style="width: 25%;"><a href="ns.html">ns</a></td>
+<td>Generate a Basis Matrix for Natural Cubic Splines</td></tr>
+<tr><td style="width: 25%;"><a href="periodicSpline.html">periodicSpline</a></td>
+<td>Create a Periodic Interpolation Spline</td></tr>
+<tr><td style="width: 25%;"><a href="polySpline.html">polySpline</a></td>
+<td>Piecewise Polynomial Spline Representation</td></tr>
+<tr><td style="width: 25%;"><a href="predict.bs.html">predict.bs</a></td>
+<td>Evaluate a Spline Basis</td></tr>
+<tr><td style="width: 25%;"><a href="predict.bSpline.html">predict.bSpline</a></td>
+<td>Evaluate a Spline at New Values of x</td></tr>
+<tr><td style="width: 25%;"><a href="predict.bSpline.html">predict.nbSpline</a></td>
+<td>Evaluate a Spline at New Values of x</td></tr>
+<tr><td style="width: 25%;"><a href="predict.bSpline.html">predict.npolySpline</a></td>
+<td>Evaluate a Spline at New Values of x</td></tr>
+<tr><td style="width: 25%;"><a href="predict.bs.html">predict.ns</a></td>
+<td>Evaluate a Spline Basis</td></tr>
+<tr><td style="width: 25%;"><a href="predict.bSpline.html">predict.pbSpline</a></td>
+<td>Evaluate a Spline at New Values of x</td></tr>
+<tr><td style="width: 25%;"><a href="predict.bSpline.html">predict.ppolySpline</a></td>
+<td>Evaluate a Spline at New Values of x</td></tr>
+<tr><td style="width: 25%;"><a href="splineDesign.html">spline.des</a></td>
+<td>Design Matrix for B-splines</td></tr>
+<tr><td style="width: 25%;"><a href="splineDesign.html">splineDesign</a></td>
+<td>Design Matrix for B-splines</td></tr>
+<tr><td style="width: 25%;"><a href="splineKnots.html">splineKnots</a></td>
+<td>Knot Vector from a Spline</td></tr>
+<tr><td style="width: 25%;"><a href="splineOrder.html">splineOrder</a></td>
+<td>Determine the Order of a Spline</td></tr>
+<tr><td style="width: 25%;"><a href="splines-package.html">splines</a></td>
+<td>Regression Spline Functions and Classes</td></tr>
+<tr><td style="width: 25%;"><a href="xyVector.html">xyVector</a></td>
+<td>Construct an 'xyVector' Object</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/INDEX	(revision 2476)
@@ -0,0 +1,15 @@
+asVector                Coerce an Object to a Vector
+backSpline              Monotone Inverse Spline
+bs                      B-Spline Basis for Polynomial Splines
+interpSpline            Create an Interpolation Spline
+ns                      Generate a Basis Matrix for Natural Cubic
+                        Splines
+periodicSpline          Create a Periodic Interpolation Spline
+polySpline              Piecewise Polynomial Spline Representation
+predict.bSpline         Evaluate a Spline at New Values of x
+predict.bs              Evaluate a Spline Basis
+splineDesign            Design Matrix for B-splines
+splineKnots             Knot Vector from a Spline
+splineOrder             Determine the Order of a Spline
+splines-package         Regression Spline Functions and Classes
+xyVector                Construct an 'xyVector' Object
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/help/splines.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/help/splines.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/help/AnIndex	(revision 2476)
@@ -0,0 +1,22 @@
+splines-package	splines-package
+as.polySpline	polySpline
+asVector	asVector
+backSpline	backSpline
+bs	bs
+interpSpline	interpSpline
+ns	ns
+periodicSpline	periodicSpline
+polySpline	polySpline
+predict.bs	predict.bs
+predict.bSpline	predict.bSpline
+predict.nbSpline	predict.bSpline
+predict.npolySpline	predict.bSpline
+predict.ns	predict.bs
+predict.pbSpline	predict.bSpline
+predict.ppolySpline	predict.bSpline
+spline.des	splineDesign
+splineDesign	splineDesign
+splineKnots	splineKnots
+splineOrder	splineOrder
+splines	splines-package
+xyVector	xyVector
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/help/splines.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/help/splines.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/libs/splines.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/libs/splines.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/splines/NAMESPACE	(revision 2476)
@@ -0,0 +1,45 @@
+useDynLib(splines, .registration = TRUE, .fixes = "C_")
+
+export(as.polySpline, asVector, backSpline, bs, interpSpline, ns,
+       periodicSpline, polySpline, spline.des, splineDesign,
+       splineKnots, splineOrder, xyVector)
+
+# documented but not exported
+# export(predict.bs, predict.bSpline, predict.nbSpline,
+#        predict.npolySpline, predict.ns, predict.pbSpline,
+#        predict.ppolySpline)
+
+importFrom(graphics, plot)
+importFrom(stats, as.formula, coef, makepredictcall, na.fail, predict, quantile)
+
+S3method(as.data.frame, xyVector)
+S3method(asVector, xyVector)
+S3method(backSpline, nbSpline)
+S3method(backSpline, npolySpline)
+S3method(interpSpline, default)
+S3method(interpSpline, formula)
+S3method(makepredictcall, bs)
+S3method(makepredictcall, ns)
+S3method(periodicSpline, default)
+S3method(periodicSpline, formula)
+S3method(plot, spline)
+S3method(plot, xyVector)
+S3method(polySpline, bSpline)
+S3method(polySpline, nbSpline)
+S3method(polySpline, pbSpline)
+S3method(polySpline, polySpline)
+S3method(predict, bs)
+S3method(predict, bs)
+S3method(predict, bSpline)
+S3method(predict, nbSpline)
+S3method(predict, npolySpline)
+S3method(predict, polySpline)
+S3method(predict, ppolySpline)
+S3method(predict, ns)
+S3method(predict, pbSpline)
+S3method(print, bSpline)
+S3method(print, polySpline)
+S3method(print, ppolySpline)
+S3method(splineOrder, bSpline)
+S3method(splineKnots, spline)
+S3method(splineOrder, polySpline)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/INDEX	(revision 2476)
@@ -0,0 +1,115 @@
+%s+%                    Concatenate Two Character Vectors
+%s<%                    Compare Strings with or without Collation
+stri_compare            Compare Strings with or without Collation
+stri_count              Count the Number of Pattern Matches
+stri_count_boundaries   Count the Number of Text Boundaries
+stri_datetime_add       [DRAFT API] Date and Time Arithmetic
+stri_datetime_create    [DRAFT API] Create a Date-Time Object
+stri_datetime_fields    [DRAFT API] Get Values for Date and Time Fields
+stri_datetime_format    [DRAFT API] Date and Time Formatting and
+                        Parsing
+stri_datetime_fstr      [DRAFT API] Convert 'strptime'-style Format
+                        Strings
+stri_datetime_now       [DRAFT API] Get Current Date and Time
+stri_datetime_symbols   [DRAFT API] List Localizable Date-Time
+                        Formatting Data
+stri_detect             Detect a Pattern Match
+stri_dup                Duplicate Strings
+stri_duplicated         Determine Duplicated Elements
+stri_enc_detect         [DRAFT API] Detect Character Set and Language
+stri_enc_detect2        [DRAFT API] Detect Locale-Sensitive Character
+                        Encoding
+stri_enc_fromutf32      Convert From UTF-32
+stri_enc_info           Query a Character Encoding
+stri_enc_isascii        Check If a Data Stream Is Possibly in ASCII
+stri_enc_isutf16be      Check If a Data Stream Is Possibly in UTF16 or
+                        UTF32
+stri_enc_isutf8         Check If a Data Stream Is Possibly in UTF-8
+stri_enc_list           List Known Character Encodings
+stri_enc_mark           Get Declared Encodings of Each String
+stri_enc_set            Set or Get Default Character Encoding in
+                        'stringi'
+stri_enc_toascii        Convert To ASCII
+stri_enc_tonative       Convert Strings To Native Encoding
+stri_enc_toutf32        Convert Strings To UTF-32
+stri_enc_toutf8         Convert Strings To UTF-8
+stri_encode             Convert Strings Between Given Encodings
+stri_escape_unicode     Escape Unicode Code Points
+stri_extract_all        Extract Occurrences of a Pattern
+stri_extract_all_boundaries
+                        Extract Text Between Text Boundaries
+stri_flatten            Flatten a String
+stri_info               Query Default Settings for 'stringi'
+stri_install_check      Installation-Related Utilities [DEPRECATED]
+stri_isempty            Determine if a String is of Length Zero
+stri_join               Concatenate Character Vectors
+stri_join_list          Concatenate Strings in a List
+stri_length             Count the Number of Code Points
+stri_list2matrix        Convert a List to a Character Matrix
+stri_locale_info        Query Given Locale
+stri_locale_list        List Available Locales
+stri_locale_set         Set or Get Default Locale in 'stringi'
+stri_locate_all         Locate Occurrences of a Pattern
+stri_locate_all_boundaries
+                        Locate Specific Text Boundaries
+stri_match_all          Extract Regex Pattern Matches, Together with
+                        Capture Groups
+stri_numbytes           Count the Number of Bytes
+stri_opts_brkiter       Generate a List with BreakIterator Settings
+stri_opts_collator      Generate a List with Collator Settings
+stri_opts_fixed         Generate a List with Fixed Pattern Search
+                        Engine's Settings
+stri_opts_regex         Generate a List with Regex Matcher Settings
+stri_order              Ordering Permutation and Sorting
+stri_pad_both           Pad (Center/Left/Right Align) a String
+stri_rand_lipsum        A Lorem Ipsum Generator
+stri_rand_shuffle       Randomly Shuffle Code Points in Each String
+stri_rand_strings       Generate Random Strings
+stri_read_lines         [DRAFT API] Read Text Lines from a Text File
+stri_read_raw           [DRAFT API] Read Whole Text File as Raw
+stri_replace_all        Replace Occurrences of a Pattern
+stri_replace_na         Replace Missing Values in a Character Vector
+stri_reverse            Reverse Each String
+stri_split              Split a String By Pattern Matches
+stri_split_boundaries   Split a String at Specific Text Boundaries
+stri_split_lines        Split a String Into Text Lines
+stri_startswith         Determine if the Start or End of a String
+                        Matches a Pattern
+stri_stats_general      General Statistics for a Character Vector
+stri_stats_latex        Statistics for a Character Vector Containing
+                        LaTeX Commands
+stri_sub                Extract a Substring From or Replace a Substring
+                        In a Character Vector
+stri_subset             Select Elements that Match a Given Pattern
+stri_timezone_get       [DRAFT API] Set or Get Default Time Zone in
+                        'stringi'
+stri_timezone_info      [DRAFT API] Query a Given Time Zone
+stri_timezone_list      [DRAFT API] List Available Time Zone
+                        Identifiers
+stri_trans_char         Translate Characters
+stri_trans_general      General Text Transforms, Including
+                        Transliteration
+stri_trans_list         List Available Text Transforms and
+                        Transliterators
+stri_trans_nfc          Perform or Check For Unicode Normalization
+stri_trans_tolower      Transform String with Case Mapping
+stri_trim_both          Trim Characters from the Left and/or Right Side
+                        of a String
+stri_unescape_unicode   Unescape All Escape Sequences
+stri_unique             Extract Unique Elements
+stri_width              Determine the Width of Code Points
+stri_wrap               Word Wrap Text to Format Paragraphs
+stri_write_lines        [DRAFT API] Write Text Lines to a Text File
+stringi-arguments       Passing Arguments to Functions in 'stringi'
+stringi-encoding        Character Encodings and 'stringi'
+stringi-locale          Locales and 'stringi'
+stringi-package         THE String Processing Package
+stringi-search          String Searching
+stringi-search-boundaries
+                        Text Boundary Analysis in 'stringi'
+stringi-search-charclass
+                        Character Classes in 'stringi'
+stringi-search-coll     Locale-Sensitive Text Searching in 'stringi'
+stringi-search-fixed    Locale-Insensitive Fixed Pattern Matching in
+                        'stringi'
+stringi-search-regex    Regular Expressions in 'stringi'
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/help/stringi.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/help/stringi.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/help/AnIndex	(revision 2476)
@@ -0,0 +1,245 @@
+stringi-package	stringi-package
+%s!=%	oper_comparison
+%s!==%	oper_comparison
+%s+%	oper_plus
+%s<%	oper_comparison
+%s<=%	oper_comparison
+%s==%	oper_comparison
+%s===%	oper_comparison
+%s>%	oper_comparison
+%s>=%	oper_comparison
+%stri!=%	oper_comparison
+%stri!==%	oper_comparison
+%stri+%	oper_plus
+%stri<%	oper_comparison
+%stri<=%	oper_comparison
+%stri==%	oper_comparison
+%stri===%	oper_comparison
+%stri>%	oper_comparison
+%stri>=%	oper_comparison
+stringi	stringi-package
+stringi-arguments	stringi-arguments
+stringi-encoding	stringi-encoding
+stringi-locale	stringi-locale
+stringi-search	stringi-search
+stringi-search-boundaries	stringi-search-boundaries
+stringi-search-charclass	stringi-search-charclass
+stringi-search-coll	stringi-search-coll
+stringi-search-fixed	stringi-search-fixed
+stringi-search-regex	stringi-search-regex
+stri_c	stri_join
+stri_cmp	stri_compare
+stri_cmp_eq	stri_compare
+stri_cmp_equiv	stri_compare
+stri_cmp_ge	stri_compare
+stri_cmp_gt	stri_compare
+stri_cmp_le	stri_compare
+stri_cmp_lt	stri_compare
+stri_cmp_neq	stri_compare
+stri_cmp_nequiv	stri_compare
+stri_compare	stri_compare
+stri_conv	stri_encode
+stri_count	stri_count
+stri_count_boundaries	stri_count_boundaries
+stri_count_charclass	stri_count
+stri_count_coll	stri_count
+stri_count_fixed	stri_count
+stri_count_regex	stri_count
+stri_count_words	stri_count_boundaries
+stri_c_list	stri_join_list
+stri_datetime_add	stri_datetime_add
+stri_datetime_add<-	stri_datetime_add
+stri_datetime_create	stri_datetime_create
+stri_datetime_fields	stri_datetime_fields
+stri_datetime_format	stri_datetime_format
+stri_datetime_fstr	stri_datetime_fstr
+stri_datetime_now	stri_datetime_now
+stri_datetime_parse	stri_datetime_format
+stri_datetime_symbols	stri_datetime_symbols
+stri_detect	stri_detect
+stri_detect_charclass	stri_detect
+stri_detect_coll	stri_detect
+stri_detect_fixed	stri_detect
+stri_detect_regex	stri_detect
+stri_dup	stri_dup
+stri_duplicated	stri_duplicated
+stri_duplicated_any	stri_duplicated
+stri_encode	stri_encode
+stri_enc_detect	stri_enc_detect
+stri_enc_detect2	stri_enc_detect2
+stri_enc_fromutf32	stri_enc_fromutf32
+stri_enc_get	stri_enc_set
+stri_enc_info	stri_enc_info
+stri_enc_isascii	stri_enc_isascii
+stri_enc_isutf16be	stri_enc_isutf16
+stri_enc_isutf16le	stri_enc_isutf16
+stri_enc_isutf32be	stri_enc_isutf16
+stri_enc_isutf32le	stri_enc_isutf16
+stri_enc_isutf8	stri_enc_isutf8
+stri_enc_list	stri_enc_list
+stri_enc_mark	stri_enc_mark
+stri_enc_set	stri_enc_set
+stri_enc_toascii	stri_enc_toascii
+stri_enc_tonative	stri_enc_tonative
+stri_enc_toutf32	stri_enc_toutf32
+stri_enc_toutf8	stri_enc_toutf8
+stri_endswith	stri_startsendswith
+stri_endswith_charclass	stri_startsendswith
+stri_endswith_coll	stri_startsendswith
+stri_endswith_fixed	stri_startsendswith
+stri_escape_unicode	stri_escape_unicode
+stri_extract	stri_extract
+stri_extract_all	stri_extract
+stri_extract_all_boundaries	stri_extract_boundaries
+stri_extract_all_charclass	stri_extract
+stri_extract_all_coll	stri_extract
+stri_extract_all_fixed	stri_extract
+stri_extract_all_regex	stri_extract
+stri_extract_all_words	stri_extract_boundaries
+stri_extract_first	stri_extract
+stri_extract_first_boundaries	stri_extract_boundaries
+stri_extract_first_charclass	stri_extract
+stri_extract_first_coll	stri_extract
+stri_extract_first_fixed	stri_extract
+stri_extract_first_regex	stri_extract
+stri_extract_first_words	stri_extract_boundaries
+stri_extract_last	stri_extract
+stri_extract_last_boundaries	stri_extract_boundaries
+stri_extract_last_charclass	stri_extract
+stri_extract_last_coll	stri_extract
+stri_extract_last_fixed	stri_extract
+stri_extract_last_regex	stri_extract
+stri_extract_last_words	stri_extract_boundaries
+stri_flatten	stri_flatten
+stri_info	stri_info
+stri_install_check	stri_install
+stri_install_icudt	stri_install
+stri_isempty	stri_isempty
+stri_join	stri_join
+stri_join_list	stri_join_list
+stri_length	stri_length
+stri_list2matrix	stri_list2matrix
+stri_locale_get	stri_locale_set
+stri_locale_info	stri_locale_info
+stri_locale_list	stri_locale_list
+stri_locale_set	stri_locale_set
+stri_locate	stri_locate
+stri_locate_all	stri_locate
+stri_locate_all_boundaries	stri_locate_boundaries
+stri_locate_all_charclass	stri_locate
+stri_locate_all_coll	stri_locate
+stri_locate_all_fixed	stri_locate
+stri_locate_all_regex	stri_locate
+stri_locate_all_words	stri_locate_boundaries
+stri_locate_first	stri_locate
+stri_locate_first_boundaries	stri_locate_boundaries
+stri_locate_first_charclass	stri_locate
+stri_locate_first_coll	stri_locate
+stri_locate_first_fixed	stri_locate
+stri_locate_first_regex	stri_locate
+stri_locate_first_words	stri_locate_boundaries
+stri_locate_last	stri_locate
+stri_locate_last_boundaries	stri_locate_boundaries
+stri_locate_last_charclass	stri_locate
+stri_locate_last_coll	stri_locate
+stri_locate_last_fixed	stri_locate
+stri_locate_last_regex	stri_locate
+stri_locate_last_words	stri_locate_boundaries
+stri_match	stri_match
+stri_match_all	stri_match
+stri_match_all_regex	stri_match
+stri_match_first	stri_match
+stri_match_first_regex	stri_match
+stri_match_last	stri_match
+stri_match_last_regex	stri_match
+stri_numbytes	stri_numbytes
+stri_opts_brkiter	stri_opts_brkiter
+stri_opts_collator	stri_opts_collator
+stri_opts_fixed	stri_opts_fixed
+stri_opts_regex	stri_opts_regex
+stri_order	stri_order
+stri_pad	stri_pad
+stri_pad_both	stri_pad
+stri_pad_left	stri_pad
+stri_pad_right	stri_pad
+stri_paste	stri_join
+stri_paste_list	stri_join_list
+stri_rand_lipsum	stri_rand_lipsum
+stri_rand_shuffle	stri_rand_shuffle
+stri_rand_strings	stri_rand_strings
+stri_read_lines	stri_read_lines
+stri_read_raw	stri_read_raw
+stri_replace	stri_replace
+stri_replace_all	stri_replace
+stri_replace_all_charclass	stri_replace
+stri_replace_all_coll	stri_replace
+stri_replace_all_fixed	stri_replace
+stri_replace_all_regex	stri_replace
+stri_replace_first	stri_replace
+stri_replace_first_charclass	stri_replace
+stri_replace_first_coll	stri_replace
+stri_replace_first_fixed	stri_replace
+stri_replace_first_regex	stri_replace
+stri_replace_last	stri_replace
+stri_replace_last_charclass	stri_replace
+stri_replace_last_coll	stri_replace
+stri_replace_last_fixed	stri_replace
+stri_replace_last_regex	stri_replace
+stri_replace_na	stri_replace_na
+stri_reverse	stri_reverse
+stri_sort	stri_order
+stri_split	stri_split
+stri_split_boundaries	stri_split_boundaries
+stri_split_charclass	stri_split
+stri_split_coll	stri_split
+stri_split_fixed	stri_split
+stri_split_lines	stri_split_lines
+stri_split_lines1	stri_split_lines
+stri_split_regex	stri_split
+stri_startswith	stri_startsendswith
+stri_startswith_charclass	stri_startsendswith
+stri_startswith_coll	stri_startsendswith
+stri_startswith_fixed	stri_startsendswith
+stri_stats_general	stri_stats_general
+stri_stats_latex	stri_stats_latex
+stri_sub	stri_sub
+stri_sub<-	stri_sub
+stri_subset	stri_subset
+stri_subset<-	stri_subset
+stri_subset_charclass	stri_subset
+stri_subset_charclass<-	stri_subset
+stri_subset_coll	stri_subset
+stri_subset_coll<-	stri_subset
+stri_subset_fixed	stri_subset
+stri_subset_fixed<-	stri_subset
+stri_subset_regex	stri_subset
+stri_subset_regex<-	stri_subset
+stri_timezone_get	stri_timezone_set
+stri_timezone_info	stri_timezone_info
+stri_timezone_list	stri_timezone_list
+stri_timezone_set	stri_timezone_set
+stri_trans_char	stri_trans_char
+stri_trans_general	stri_trans_general
+stri_trans_isnfc	stri_trans_nf
+stri_trans_isnfd	stri_trans_nf
+stri_trans_isnfkc	stri_trans_nf
+stri_trans_isnfkc_casefold	stri_trans_nf
+stri_trans_isnfkd	stri_trans_nf
+stri_trans_list	stri_trans_list
+stri_trans_nfc	stri_trans_nf
+stri_trans_nfd	stri_trans_nf
+stri_trans_nfkc	stri_trans_nf
+stri_trans_nfkc_casefold	stri_trans_nf
+stri_trans_nfkd	stri_trans_nf
+stri_trans_tolower	stri_trans_casemap
+stri_trans_totitle	stri_trans_casemap
+stri_trans_toupper	stri_trans_casemap
+stri_trim	stri_trim
+stri_trim_both	stri_trim
+stri_trim_left	stri_trim
+stri_trim_right	stri_trim
+stri_unescape_unicode	stri_unescape_unicode
+stri_unique	stri_unique
+stri_width	stri_width
+stri_wrap	stri_wrap
+stri_write_lines	stri_write_lines
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/help/stringi.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/help/stringi.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/libs/stringi.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/libs/stringi.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/libs/LICENSE.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/libs/LICENSE.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/libs/LICENSE.txt	(revision 2476)
@@ -0,0 +1,360 @@
+The ICU4C library and Unicode Character Database
+is distributed in under the following conditions.
+
+For more information refer to http://www.icu-project.org
+and http://www.unicode.org/copyright.html
+
+==============================================================================
+
+ICU License - ICU 1.8.1 and later
+
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (C) 1995-2015 IBM and others
+
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, and/or sell copies of the
+Software, and to permit persons to whom the Software is furnished to do so,
+provided that the above copyright notice(s) and this permission notice appear in
+all copies of the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT
+SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY
+CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder shall not be
+used in advertising or otherwise to promote the sale, use or other dealings in
+this Software without prior written authorization of the copyright holder.
+
+All trademarks and registered trademarks mentioned herein are the property of
+their respective owners.
+
+=================================================================================
+Third-Party Software Licenses
+
+This section contains third-party software notices and/or additional terms for
+licensed third-party software components included within ICU libraries.
+
+1. Unicode Data Files and Software
+EXHIBIT 1
+UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
+
+    Unicode Data Files include all data files under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
+http://www.unicode.org/cldr/data/. Unicode Data Files do not include PDF online
+code charts under the directory http://www.unicode.org/Public/. Software
+includes any source code published in the Unicode Standard or under the
+directories http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
+http://www.unicode.org/cldr/data/.
+
+    NOTICE TO USER: Carefully read the following legal agreement. BY
+DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES
+("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND
+AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU
+DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES
+OR SOFTWARE.
+
+    COPYRIGHT AND PERMISSION NOTICE
+
+    Copyright (C) 1991-2015 Unicode, Inc. All rights reserved. Distributed under
+the Terms of Use in http://www.unicode.org/copyright.html.
+
+    Permission is hereby granted, free of charge, to any person obtaining a copy
+of the Unicode data files and any associated documentation (the "Data Files") or
+Unicode software and any associated documentation (the "Software") to deal in
+the Data Files or Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, and/or sell copies of
+the Data Files or Software, and to permit persons to whom the Data Files or
+Software are furnished to do so, provided that (a) the above copyright notice(s)
+and this permission notice appear with all copies of the Data Files or Software,
+(b) both the above copyright notice(s) and this permission notice appear in
+associated documentation, and (c) there is clear notice in each modified Data
+File or in the Software as well as in the documentation associated with the Data
+File(s) or Software that the data or software has been modified.
+
+    THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD
+PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR
+SOFTWARE.
+
+    Except as contained in this notice, the name of a copyright holder shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in these Data Files or Software without prior written authorization of the
+copyright holder.
+
+    Unicode and the Unicode logo are trademarks of Unicode, Inc. in the United
+States and other countries. All third party trademarks referenced herein are the
+property of their respective owners.
+
+2. Chinese/Japanese Word Break Dictionary Data (cjdict.txt)
+
+The Google Chrome software developed by Google is licensed under the BSD
+license. Other software included in this distribution is provided under other
+licenses, as set forth below.
+
+The BSD License
+http://opensource.org/licenses/bsd-license.php
+Copyright (C) 2006-2008, Google Inc.
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+Neither the name of  Google Inc. nor the names of its contributors may be
+used to endorse or promote products derived from this software without
+specific prior written permission.
+
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+The word list in cjdict.txt are generated by combining three word lists listed
+below with further processing for compound word breaking. The frequency is generated
+with an iterative training against Google web corpora.
+
+* Libtabe (Chinese)
+  - https://sourceforge.net/project/?group_id=1519
+  - Its license terms and conditions are shown below.
+
+* IPADIC (Japanese)
+  - http://chasen.aist-nara.ac.jp/chasen/distribution.html
+  - Its license terms and conditions are shown below.
+
+---------COPYING.libtabe ---- BEGIN--------------------
+
+/*
+ * Copyrighy (c) 1999 TaBE Project.
+ * Copyright (c) 1999 Pai-Hsiang Hsiao.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * . Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * . Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in
+ *   the documentation and/or other materials provided with the
+ *   distribution.
+ * . Neither the name of the TaBE Project nor the names of its
+ *   contributors may be used to endorse or promote products derived
+ *   from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1999 Computer Systems and Communication Lab,
+ *                    Institute of Information Science, Academia Sinica.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * . Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * . Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in
+ *   the documentation and/or other materials provided with the
+ *   distribution.
+ * . Neither the name of the Computer Systems and Communication Lab
+ *   nor the names of its contributors may be used to endorse or
+ *   promote products derived from this software without specific
+ *   prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+Copyright 1996 Chih-Hao Tsai @ Beckman Institute, University of Illinois
+c-tsai4@uiuc.edu  http://casper.beckman.uiuc.edu/~c-tsai4
+
+---------------COPYING.libtabe-----END------------------------------------
+
+
+---------------COPYING.ipadic-----BEGIN------------------------------------
+
+Copyright 2000, 2001, 2002, 2003 Nara Institute of Science
+and Technology.  All Rights Reserved.
+
+Use, reproduction, and distribution of this software is permitted.
+Any copy of this software, whether in its original form or modified,
+must include both the above copyright notice and the following
+paragraphs.
+
+Nara Institute of Science and Technology (NAIST),
+the copyright holders, disclaims all warranties with regard to this
+software, including all implied warranties of merchantability and
+fitness, in no event shall NAIST be liable for
+any special, indirect or consequential damages or any damages
+whatsoever resulting from loss of use, data or profits, whether in an
+action of contract, negligence or other tortuous action, arising out
+of or in connection with the use or performance of this software.
+
+A large portion of the dictionary entries
+originate from ICOT Free Software.  The following conditions for ICOT
+Free Software applies to the current dictionary as well.
+
+Each User may also freely distribute the Program, whether in its
+original form or modified, to any third party or parties, PROVIDED
+that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear
+on, or be attached to, the Program, which is distributed substantially
+in the same form as set out herein and that such intended
+distribution, if actually made, will neither violate or otherwise
+contravene any of the laws and regulations of the countries having
+jurisdiction over the User or the intended distribution itself.
+
+NO WARRANTY
+
+The program was produced on an experimental basis in the course of the
+research and development conducted during the project and is provided
+to users as so produced on an experimental basis.  Accordingly, the
+program is provided without any warranty whatsoever, whether express,
+implied, statutory or otherwise.  The term "warranty" used herein
+includes, but is not limited to, any warranty of the quality,
+performance, merchantability and fitness for a particular purpose of
+the program and the nonexistence of any infringement or violation of
+any right of any third party.
+
+Each user of the program will agree and understand, and be deemed to
+have agreed and understood, that there is no warranty whatsoever for
+the program and, accordingly, the entire risk arising from or
+otherwise connected with the program is assumed by the user.
+
+Therefore, neither ICOT, the copyright holder, or any other
+organization that participated in or was otherwise related to the
+development of the program and their respective officials, directors,
+officers and other employees shall be held liable for any and all
+damages, including, without limitation, general, special, incidental
+and consequential damages, arising out of or otherwise in connection
+with the use or inability to use the program or any product, material
+or result produced or otherwise obtained by using the program,
+regardless of whether they have been advised of, or otherwise had
+knowledge of, the possibility of such damages at any time during the
+project or thereafter.  Each user will be deemed to have agreed to the
+foregoing by his or her commencement of use of the program.  The term
+"use" as used herein includes, but is not limited to, the use,
+modification, copying and distribution of the program and the
+production of secondary products from the program.
+
+In the case where the program, whether in its original form or
+modified, was distributed or delivered to or received by a user from
+any person, organization or entity other than ICOT, unless it makes or
+grants independently of ICOT any specific warranty to the user in
+writing, such person, organization or entity, will also be exempted
+from and not be held liable to the user for any such damages as noted
+above as far as the program is concerned.
+
+---------------COPYING.ipadic-----END------------------------------------
+
+3. Lao Word Break Dictionary Data (laodict.txt)
+
+Copyright (c) 2013 International Business Machines Corporation
+and others. All Rights Reserved.
+
+Project:    http://code.google.com/p/lao-dictionary/
+Dictionary: http://lao-dictionary.googlecode.com/git/Lao-Dictionary.txt
+License:    http://lao-dictionary.googlecode.com/git/Lao-Dictionary-LICENSE.txt
+            (copied below)
+
+This file is derived from the above dictionary, with slight modifications.
+--------------------------------------------------------------------------------
+Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+	Redistributions of source code must retain the above copyright notice, this
+	list of conditions and the following disclaimer. Redistributions in binary
+	form must reproduce the above copyright notice, this list of conditions and
+	the following disclaimer in the documentation and/or other materials
+	provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--------------------------------------------------------------------------------
+
+4. Time Zone Database
+
+ICU uses the public domain data and code derived from Time Zone Database for
+its time zone support. The ownership of the TZ database is explained in BCP 175:
+Procedure for Maintaining the Time Zone Database section 7.
+
+7.  Database Ownership
+
+   The TZ database itself is not an IETF Contribution or an IETF
+   document.  Rather it is a pre-existing and regularly updated work
+   that is in the public domain, and is intended to remain in the public
+   domain.  Therefore, BCPs 78 [RFC5378] and 79 [RFC3979] do not apply
+   to the TZ Database or contributions that individuals make to it.
+   Should any claims be made and substantiated against the TZ Database,
+   the organization that is providing the IANA Considerations defined in
+   this RFC, under the memorandum of understanding with the IETF,
+   currently ICANN, may act in accordance with all competent court
+   orders.  No ownership claims will be made by ICANN or the IETF Trust
+   on the database or the code.  Any person making a contribution to the
+   database or code waives all rights to future claims in that
+   contribution or in the TZ Database.

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/libs/LICENSE.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/libs/icudt55l.dat
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/libs/icudt55l.dat
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/CITATION	(revision 2476)
@@ -0,0 +1,13 @@
+citHeader("To cite package 'stringi' in publications use:")
+
+citEntry(entry = "Manual",
+  title = "R package stringi: Character string processing facilities",
+  author = personList(as.person("Marek Gagolewski"), as.person("Bartek Tartanus")),
+  year = "2016",
+  url = "http://www.gagolewski.com/software/stringi/",
+  textVersion =
+  paste("Gagolewski M., Tartanus B. (2016).",
+        "R package stringi: Character string processing facilities.",
+        "http://www.gagolewski.com/software/stringi/.",
+        "DOI:10.5281/zenodo.32557")
+)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/NAMESPACE	(revision 2476)
@@ -0,0 +1,243 @@
+# Generated by roxygen2: do not edit by hand
+
+export("%s!=%")
+export("%s!==%")
+export("%s+%")
+export("%s<%")
+export("%s<=%")
+export("%s==%")
+export("%s===%")
+export("%s>%")
+export("%s>=%")
+export("%stri!=%")
+export("%stri!==%")
+export("%stri+%")
+export("%stri<%")
+export("%stri<=%")
+export("%stri==%")
+export("%stri===%")
+export("%stri>%")
+export("%stri>=%")
+export("stri_datetime_add<-")
+export("stri_sub<-")
+export("stri_subset<-")
+export("stri_subset_charclass<-")
+export("stri_subset_coll<-")
+export("stri_subset_fixed<-")
+export("stri_subset_regex<-")
+export(stri_c)
+export(stri_c_list)
+export(stri_cmp)
+export(stri_cmp_eq)
+export(stri_cmp_equiv)
+export(stri_cmp_ge)
+export(stri_cmp_gt)
+export(stri_cmp_le)
+export(stri_cmp_lt)
+export(stri_cmp_neq)
+export(stri_cmp_nequiv)
+export(stri_compare)
+export(stri_conv)
+export(stri_count)
+export(stri_count_boundaries)
+export(stri_count_charclass)
+export(stri_count_coll)
+export(stri_count_fixed)
+export(stri_count_regex)
+export(stri_count_words)
+export(stri_datetime_add)
+export(stri_datetime_create)
+export(stri_datetime_fields)
+export(stri_datetime_format)
+export(stri_datetime_fstr)
+export(stri_datetime_now)
+export(stri_datetime_parse)
+export(stri_datetime_symbols)
+export(stri_detect)
+export(stri_detect_charclass)
+export(stri_detect_coll)
+export(stri_detect_fixed)
+export(stri_detect_regex)
+export(stri_dup)
+export(stri_duplicated)
+export(stri_duplicated_any)
+export(stri_enc_detect)
+export(stri_enc_detect2)
+export(stri_enc_fromutf32)
+export(stri_enc_get)
+export(stri_enc_info)
+export(stri_enc_isascii)
+export(stri_enc_isutf16be)
+export(stri_enc_isutf16le)
+export(stri_enc_isutf32be)
+export(stri_enc_isutf32le)
+export(stri_enc_isutf8)
+export(stri_enc_list)
+export(stri_enc_mark)
+export(stri_enc_set)
+export(stri_enc_toascii)
+export(stri_enc_tonative)
+export(stri_enc_toutf32)
+export(stri_enc_toutf8)
+export(stri_encode)
+export(stri_endswith)
+export(stri_endswith_charclass)
+export(stri_endswith_coll)
+export(stri_endswith_fixed)
+export(stri_escape_unicode)
+export(stri_extract)
+export(stri_extract_all)
+export(stri_extract_all_boundaries)
+export(stri_extract_all_charclass)
+export(stri_extract_all_coll)
+export(stri_extract_all_fixed)
+export(stri_extract_all_regex)
+export(stri_extract_all_words)
+export(stri_extract_first)
+export(stri_extract_first_boundaries)
+export(stri_extract_first_charclass)
+export(stri_extract_first_coll)
+export(stri_extract_first_fixed)
+export(stri_extract_first_regex)
+export(stri_extract_first_words)
+export(stri_extract_last)
+export(stri_extract_last_boundaries)
+export(stri_extract_last_charclass)
+export(stri_extract_last_coll)
+export(stri_extract_last_fixed)
+export(stri_extract_last_regex)
+export(stri_extract_last_words)
+export(stri_flatten)
+export(stri_info)
+export(stri_install_check)
+export(stri_install_icudt)
+export(stri_isempty)
+export(stri_join)
+export(stri_join_list)
+export(stri_length)
+export(stri_list2matrix)
+export(stri_locale_get)
+export(stri_locale_info)
+export(stri_locale_list)
+export(stri_locale_set)
+export(stri_locate)
+export(stri_locate_all)
+export(stri_locate_all_boundaries)
+export(stri_locate_all_charclass)
+export(stri_locate_all_coll)
+export(stri_locate_all_fixed)
+export(stri_locate_all_regex)
+export(stri_locate_all_words)
+export(stri_locate_first)
+export(stri_locate_first_boundaries)
+export(stri_locate_first_charclass)
+export(stri_locate_first_coll)
+export(stri_locate_first_fixed)
+export(stri_locate_first_regex)
+export(stri_locate_first_words)
+export(stri_locate_last)
+export(stri_locate_last_boundaries)
+export(stri_locate_last_charclass)
+export(stri_locate_last_coll)
+export(stri_locate_last_fixed)
+export(stri_locate_last_regex)
+export(stri_locate_last_words)
+export(stri_match)
+export(stri_match_all)
+export(stri_match_all_regex)
+export(stri_match_first)
+export(stri_match_first_regex)
+export(stri_match_last)
+export(stri_match_last_regex)
+export(stri_numbytes)
+export(stri_opts_brkiter)
+export(stri_opts_collator)
+export(stri_opts_fixed)
+export(stri_opts_regex)
+export(stri_order)
+export(stri_pad)
+export(stri_pad_both)
+export(stri_pad_left)
+export(stri_pad_right)
+export(stri_paste)
+export(stri_paste_list)
+export(stri_rand_lipsum)
+export(stri_rand_shuffle)
+export(stri_rand_strings)
+export(stri_read_lines)
+export(stri_read_raw)
+export(stri_replace)
+export(stri_replace_all)
+export(stri_replace_all_charclass)
+export(stri_replace_all_coll)
+export(stri_replace_all_fixed)
+export(stri_replace_all_regex)
+export(stri_replace_first)
+export(stri_replace_first_charclass)
+export(stri_replace_first_coll)
+export(stri_replace_first_fixed)
+export(stri_replace_first_regex)
+export(stri_replace_last)
+export(stri_replace_last_charclass)
+export(stri_replace_last_coll)
+export(stri_replace_last_fixed)
+export(stri_replace_last_regex)
+export(stri_replace_na)
+export(stri_reverse)
+export(stri_sort)
+export(stri_split)
+export(stri_split_boundaries)
+export(stri_split_charclass)
+export(stri_split_coll)
+export(stri_split_fixed)
+export(stri_split_lines)
+export(stri_split_lines1)
+export(stri_split_regex)
+export(stri_startswith)
+export(stri_startswith_charclass)
+export(stri_startswith_coll)
+export(stri_startswith_fixed)
+export(stri_stats_general)
+export(stri_stats_latex)
+export(stri_sub)
+export(stri_subset)
+export(stri_subset_charclass)
+export(stri_subset_coll)
+export(stri_subset_fixed)
+export(stri_subset_regex)
+export(stri_timezone_get)
+export(stri_timezone_info)
+export(stri_timezone_list)
+export(stri_timezone_set)
+export(stri_trans_char)
+export(stri_trans_general)
+export(stri_trans_isnfc)
+export(stri_trans_isnfd)
+export(stri_trans_isnfkc)
+export(stri_trans_isnfkc_casefold)
+export(stri_trans_isnfkd)
+export(stri_trans_list)
+export(stri_trans_nfc)
+export(stri_trans_nfd)
+export(stri_trans_nfkc)
+export(stri_trans_nfkc_casefold)
+export(stri_trans_nfkd)
+export(stri_trans_tolower)
+export(stri_trans_totitle)
+export(stri_trans_toupper)
+export(stri_trim)
+export(stri_trim_both)
+export(stri_trim_left)
+export(stri_trim_right)
+export(stri_unescape_unicode)
+export(stri_unique)
+export(stri_width)
+export(stri_wrap)
+export(stri_write_lines)
+importFrom(stats,rnorm)
+importFrom(stats,runif)
+importFrom(tools,md5sum)
+importFrom(utils,download.file)
+importFrom(utils,packageVersion)
+importFrom(utils,unzip)
+useDynLib(stringi, .registration = TRUE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/NEWS	(revision 2476)
@@ -0,0 +1,524 @@
+                   stringi package NEWS and CHANGELOG
+===============================================================================
+
+## Known bugs in ICU
+
+* [REGEX] #147: regex look-behind assertions may fail to find a multibyte
+Unicode search pattern [solved in ICU4C 57m1, see
+http://bugs.icu-project.org/trac/ticket/11554]
+
+-------------------------------------------------------------------------------
+
+## 1.1.2 (2016-09-30) **CRAN**
+
+* [BUGFIX] round(), snprintf() is not C++98
+
+-------------------------------------------------------------------------------
+
+## 1.1.1 (2016-05-25) **CRAN**
+
+* [BUGFIX] #214: allow a regex pattern like `.*`  to match an empty string.
+
+* [BUGFIX] #210: `stri_replace_all_fixed(c("1", "NULL"), "NULL", NA)`
+now results in `c("1", NA)`.
+
+* [NEW FEATURE] #199: `stri_sub<-` now allows for ignoring `NA` locations
+(a new `omit_na` argument added).
+
+* [NEW FEATURE] #207: `stri_sub<-` now allows for substring insertions
+(via `length=0`).
+
+* [NEW FUNCTION] #124: `stri_subset<-` functions added.
+
+* [NEW FEATURE] #216: `stri_detect`, `stri_subset`, `stri_subset<-` gained
+a `negate` argument.
+
+* [NEW FUNCTION] #175: `stri_join_list` concatenates all strings
+in a list of character vectors. Useful with, e.g., `stri_extract_all_regex`,
+`stri_extract_all_words` etc.
+
+-------------------------------------------------------------------------------
+
+## 1.0-1 (2015-10-22) **CRAN**
+
+* [GENERAL] #88: C API is now available for use in, e.g., Rcpp packages, see
+https://github.com/gagolews/ExampleRcppStringi for an example.
+
+* [BUGFIX] #183: Floating point exception raised in `stri_sub()` and
+`stri_sub<-()` when `to` or `length` was a zero-length numeric vector.
+
+* [BUGFIX] #180: `stri_c()` warned incorrectly (recycling rule) when using more
+than 2 elements.
+
+-------------------------------------------------------------------------------
+
+## 0.5-5 (2015-06-28) **CRAN**
+
+* [BACKWARD INCOMPATIBILITY] `stri_install_check()` and `stri_install_icudt()`
+are now deprecated. From now on they are supposed to be used only
+by the `stringi` installer.
+
+* [BUGFIX] #176: a patch for `sys/feature_tests.h` no longer included
+(the original file was copyrighted by Sun Microsystems); fixed the *Compiler
+or options invalid for pre-UNIX 03 X/Open applications and pre-2001 POSIX
+applications* error by forcing (conditionally) `_XPG6` conformance.
+
+* [BUGFIX] #174: `stri_paste()` did not generate any warning when
+the recycling rule is violated and `sep==""`.
+
+* [BUGFIX] #170: `icu::setDataDirectory` no longer called if our ICU source bundle
+is not used (this used to cause build problems on openSUSE).
+
+* [BUILD TIME] #169: `./configure` now tries to switch to the "standard"
+C++ compiler if a C++11 one is not properly configured.
+
+* [BUILD TIME] `configure.win` (`Biarch: TRUE`) now mimics `autoconf`'s
+`AC_SUBST` and `AC_CONFIG_FILES` so that the build process is now
+more similar across different platforms.
+
+* [NEW FEATURE] `stri_info()` now also gives information about which version
+of ICU4C is in use (system or bundle).
+
+-------------------------------------------------------------------------------
+
+## 0.5-2 (2015-06-21) **CRAN**
+
+* [BACKWARD INCOMPATIBILITY] The second argument to `stri_pad_*()` has
+been renamed `width`.
+
+* [GENERAL] #69: `stringi` is now bundled with ICU4C 55.1.
+
+* [NEW FUNCTIONS] `stri_extract_*_boundaries()` extract text between text
+boundaries.
+
+* [NEW FUNCTION] #46: `stri_trans_char()` is a `stringi`-flavoured
+`chartr()` equivalent.
+
+* [NEW FUNCTION] #8: `stri_width()` approximates the *width* of a string
+in a more Unicodish fashion than `nchar(..., "width")`
+
+* [NEW FEATURE] #149: `stri_pad()` and `stri_wrap()` now by default bases on
+code point widths instead of the number of code points. Moreover, the default
+behavior of `stri_wrap()` is now such that it does not get rid
+of non-breaking, zero width, etc. spaces
+
+* [NEW FEATURE] #133: `stri_wrap()` silently allows for `width <= 0`
+(for compatibility with `strwrap()`).
+
+* [NEW FEATURE] #139: `stri_wrap()` gained a new argument: `whitespace_only`.
+
+* [NEW FUNCTIONS] #137: date-time formatting/parsing:
+     * `stri_timezone_list()` - lists all known time zone identifiers
+     * `stri_timezone_set()`, `stri_timezone_get()` - manage current default time zone
+     * `stri_timezone_info()` - basic information on a given time zone
+     * `stri_datetime_symbols()` - localizable date-time formatting data
+     * `stri_datetime_fstr()` - convert a `strptime`-like format string
+            to an ICU date/time format string
+     * `stri_datetime_format()` - convert date/time to string
+     * `stri_datetime_parse()` - convert string to date/time object
+     * `stri_datetime_create()` - construct date-time objects
+            from numeric representations
+     * `stri_datetime_now()` - return current date-time
+     * `stri_datetime_fields()` - get values for date-time fields
+     * `stri_datetime_add()` - add specific number of date-time units
+            to a date-time object
+
+* [GENERAL] #144: Performance improvements in handling ASCII strings
+(these affect `stri_sub()`, `stri_locate()` and other string index-based
+ operations)
+
+* [GENERAL] #143: Searching for short fixed patterns (`stri_*_fixed()`) now
+relies on the current `libC`'s implementation of `strchr()` and `strstr()`.
+This is very fast e.g. on `glibc` utilizing the `SSE2/3/4` instruction set.
+
+* [BUILD TIME] #141: a local copy of `icudt*.zip` may be used on package
+install; see the `INSTALL` file for more information.
+
+* [BUILD TIME] #165: the `./configure` option `--disable-icu-bundle`
+forces the use of system ICU when building the package.
+
+* [BUGFIX] locale specifiers are now normalized in a more intelligent way:
+e.g. `@calendar=gregorian` expands to `DEFAULT_LOCALE@calendar=gregorian`.
+
+* [BUGFIX] #134: `stri_extract_all_words()` did not accept `simplify=NA`.
+
+* [BUGFIX] #132: incorrect behavior in `stri_locate_regex()` for matches
+of zero lengths
+
+* [BUGFIX] stringr/#73: `stri_wrap()` returned `CHARSXP` instead of `STRSXP`
+on empty string input with `simplify=FALSE` argument.
+
+* [BUGFIX] #164: `libicu-dev` usage used to fail on Ubuntu
+(`LIBS` shall be passed after `LDFLAGS` and the list of `.o` files).
+
+* [BUGFIX] #168: Build now fails if `icudt` is not available.
+
+* [BUGFIX] #135: C++11 is now used by default (see the `INSTALL` file,
+however) to build `stringi` from sources. This is because ICU4C uses the
+`long long` type which is not part of the C++98 standard.
+
+* [BUGFIX] #154: Dates and other objects with a custom class attribute
+were not coerced to the character type correctly.
+
+* [BUGFIX] Force ICU `u_init()` call on `stringi` dynlib load.
+
+* [BUGFIX] #157: many overfull hboxes in the package PDF manual has been
+corrected.
+
+-------------------------------------------------------------------------------
+
+## 0.4-1 (2014-12-11) **CRAN**
+
+* [IMPORTANT CHANGE] `n_max` argument in `stri_split_*()` has been renamed `n`.
+
+* [IMPORTANT CHANGE] `simplify=FALSE` in `stri_extract_all_*()` and
+`stri_split_*()` now calls `stri_list2matrix()` with `fill=""`.
+`fill=NA_character_` may be obtained by using `simplify=NA`.
+
+* [IMPORTANT CHANGE, NEW FUNCTIONS] #120: `stri_extract_words` has been
+renamed `stri_extract_all_words` and `stri_locate_boundaries` -
+`stri_locate_all_boundaries` as well as `stri_locate_words` -
+`stri_locate_all_words`. New functions are now available:
+`stri_locate_first_boundaries`, `stri_locate_last_boundaries`,
+`stri_locate_first_words`, `stri_locate_last_words`,
+`stri_extract_first_words`, `stri_extract_last_words`.
+
+* [IMPORTANT CHANGE] #111: `opts_regex`, `opts_collator`, `opts_fixed`, and
+`opts_brkiter` can now be supplied individually via `...`.
+In other words, you may now simply call e.g.
+`stri_detect_regex(str, pattern, case_insensitive=TRUE)` instead of
+`stri_detect_regex(str, pattern, opts_regex=stri_opts_regex(case_insensitive=TRUE))`.
+
+* [NEW FEATURE] #110: Fixed pattern search engine's settings can
+now be supplied via `opts_fixed` argument in `stri_*_fixed()`,
+see `stri_opts_fixed()`. A simple (not suitable for natural language
+processing) yet very fast `case_insensitive` pattern matching can be
+performed now. `stri_extract_*_fixed` is again available.
+
+* [NEW FEATURE] #23: `stri_extract_all_fixed`, `stri_count`, and
+`stri_locate_all_fixed` may now also look for overlapping pattern
+matches, see `?stri_opts_fixed`.
+
+* [NEW FEATURE] #129: `stri_match_*_regex` gained a `cg_missing` argument.
+
+* [NEW FEATURE] #117: `stri_extract_all_*()`, `stri_locate_all_*()`,
+`stri_match_all_*()` gained a new argument: `omit_no_match`.
+Setting it to `TRUE` makes these functions compatible with their
+`stringr` equivalents.
+
+* [NEW FEATURE] #118: `stri_wrap()` gained `indent`, `exdent`, `initial`,
+and `prefix` arguments. Moreover Knuth's dynamic word wrapping algorithm
+now assumes that the cost of printing the last line is zero, see #128.
+
+* [NEW FEATURE] #122: `stri_subset()` gained an `omit_na` argument.
+
+* [NEW FEATURE] `stri_list2matrix()` gained an `n_min` argument.
+
+* [NEW FEATURE] #126: `stri_split()` now is also able to act
+just like `stringr::str_split_fixed()`.
+
+* [NEW FEATURE] #119:  `stri_split_boundaries()` now have
+`n`, `tokens_only`, and `simplify` arguments. Additionally,
+`stri_extract_all_words()` is now equipped with `simplify` arg.
+
+* [NEW FEATURE] #116: `stri_paste()` gained a new argument:
+`ignore_null`. Setting it to `TRUE` makes this function more compatible
+with `paste()`.
+
+* [OTHER] #123: `useDynLib` is used to speed up symbol look-up in
+the compiled dynamic library.
+
+* [BUGFIX] #114: `stri_paste()`: could return result in an incorrect order.
+
+* [BUGFIX]  #94: Run-time errors on Solaris caused by setting
+`-DU_DISABLE_RENAMING=1` -- memory allocation errors in i.a. ICU's
+UnicodeString. This setting also caused some ABSan sanity check
+failures within ICU code.
+
+-------------------------------------------------------------------------------
+
+## 0.3-1 (2014-11-06) **CRAN**
+
+* [IMPORTANT CHANGE] #87: `%>%` overlapped with the pipe operator from
+the `magrittr` package; now each operator like `%>%` has been renamed `%s>%`.
+
+* [IMPORTANT CHANGE] #108: Now the BreakIterator (for text boundary analysis)
+may be better controlled via `stri_opts_brkiter()` (see options `type`
+and `locale` which aim to replace now-removed `boundary` and `locale` parameters
+to `stri_locate_boundaries`, `stri_split_boundaries`, `stri_trans_totitle`,
+`stri_extract_words`, `stri_locate_words`).
+
+* [NEW FUNCTIONS] #109: `stri_count_boundaries()` and `stri_count_words()`
+count the number of text boundaries in a string.
+
+* [NEW FUNCTIONS] #41: `stri_startswith_*()` and `stri_endswith_*()`
+determine whether a string starts or ends with a given pattern.
+
+* [NEW FEATURE] #102: `stri_replace_all_*()` gained a `vectorize_all()` parameter,
+which defaults to TRUE for backward compatibility.
+
+* [NEW FUNCTION] #91: `stri_subset_*()`, a convenient and more efficient
+substitute for `str[stri_detect_*(str, ...)]`, added.
+
+* [NEW FEATURE] #100: `stri_split_fixed()`, `stri_split_charclass()`,
+`stri_split_regex()`, `stri_split_coll()` gained a `tokens_only` parameter,
+which defaults to `FALSE` for backward compatibility.
+
+* [NEW FUNCTION] #105: `stri_list2matrix()` converts lists of atomic vectors
+to character matrices, useful in connection with `stri_split`
+and `stri_extract`.
+
+* [NEW FEATURE] #107: `stri_split_*()` now allow setting an `omit_empty=NA` argument.
+
+* [NEW FEATURE] #106: `stri_split()` and `stri_extract_all()` gained a `simplify`
+argument (if `TRUE`, then `stri_list2matrix(..., byrow=TRUE)`
+is called on the resulting list.
+
+* [NEW FUNCTION] #77: `stri_rand_lipsum()` generates
+(pseudo)random dummy *lorem ipsum* text.
+
+* [NEW FEATURE] #98: `stri_trans_totitle()` gained a `opts_brkiter`
+parameter; it indicates which ICU BreakIterator should be used when
+performing case mapping.
+
+* [NEW FEATURE] `stri_wrap()` gained a new parameter: `normalize`.
+
+* [BUGFIX] #86: `stri_*_fixed()`, `stri_*_coll()`, and `stri_*_regex()` could
+give incorrect results if one of search strings were of length 0.
+
+* [BUGFIX] #99: `stri_replace_all()` did not use the `replacement` arg.
+
+* [BUGFIX] #112: Some of the objects were not PROTECTed from
+being garbage collected, which might have caused spontaneous SEGFAULTS.
+
+* [BUGFIX] Some collator's options were not passed correctly to ICU services.
+
+* [BUGFIX] Memory leaks causes as detected by
+`valgrind --tool=memcheck --leak-check=full` have been removed.
+
+* [DOCUMENTATION] Significant extensions/clean ups in the `stringi` manual.
+
+-------------------------------------------------------------------------------
+
+## 0.2-5 (2014-05-16) **CRAN**
+
+* ~~icudt-dependent examples are no longer run if `icudt` is not available.~~
+
+-------------------------------------------------------------------------------
+
+## 0.2-4 (2014-05-15) **CRAN**
+
+* [BUGFIX] Issues with loading of misaligned addresses in `stri_*_fixed()`.
+
+-------------------------------------------------------------------------------
+
+## 0.2-3 (2014-05-14) **CRAN**
+
+* [IMPORTANT CHANGE] `stri_cmp*()` now do not allow for passing
+ `opts_collator=NA`. From now on, `stri_cmp_eq`, `stri_cmp_neq`,
+ and the new operators `%===%`, `%!==%`, `%stri===%`, and `%stri!==%`
+ are locale-independent operations, which base on code point comparisons.
+ New functions `stri_cmp_equiv` and `stri_cmp_nequiv`
+ (and from now on also `%==%`, `%!=%`, `%stri==%`, and `%stri!=%`)
+ test for canonical equivalence.
+
+* [IMPORTANT CHANGE] `stri_*_fixed()` search functions now perform
+ a locale-independent exact (byte-wise, of course after conversion to UTF-8)
+ pattern search. All the Collator-based, locale-dependent search routines
+ are now available via `stri_*_coll()`. The reason for this is that
+ ICU USearch has currently very poor performance and in many search tasks
+ in fact it is sufficient to do exact pattern matching.
+
+* [GENERAL] `stri_*_fixed` now use a tweaked Knuth-Morris-Pratt search
+ algorithm, which improves the search performance drastically.
+
+* [IMPORTANT CHANGE] `stri_enc_nf*()` and `stri_enc_isnf*()` function families
+have been renamed to `stri_trans_nf*()` and `stri_trans_isnf*()`,
+respectively. This is because they deal with text transforming,
+and not with character encoding. Moreover, all such operations may
+also be performed by ICU's Transliterator (see below).
+
+* [NEW FUNCTION] `stri_trans_general()` and `stri_trans_list()` give access
+to ICU's Transliterator: may be used to perform very general
+text transforms.
+
+* [NEW FUNCTION `stri_split_boundaries()` utilizes ICU's BreakIterator
+to split strings at specific text boundaries. Moreover,
+stri_locate_boundaries indicates positions of these boundaries.
+
+* [NEW FUNCTION] `stri_extract_words()` uses ICU's BreakIterator to
+extract all words from a text. Additionally, `stri_locate_words`
+locates start and end positions of words in a text.
+
+* [NEW FUNCTION] `stri_pad()`, `stri_pad_left()`, `stri_pad_right()`,
+and `stri_pad_both` pad a string with a specific code point.
+
+* [NEW FUNCTION] `stri_wrap()` breaks paragraphs of text into lines.
+Two algorithms (greedy and minimal raggedness) are available.
+
+* [IMPORTANT CHANGE] `stri_*_charclass()` search functions now
+rely solely on ICU's UnicodeSet patterns. All previously accepted
+charclass identifiers became invalid. However, new patterns
+should now be more familiar to the users (they are regex-like).
+Moreover, we observe a very nice performance gain.
+
+* [IMPORTANT CHANGE] `stri_sort()` now does not include `NA`s
+in output vectors by default, for compatibility with `sort()`.
+Moreover, currently none of the input vector's attributes are preserved.
+
+* [NEW FUNCTION] `stri_unique()` extracts unique elements from
+a character vector.
+
+* [NEW FUNCTIONS] `stri_duplicated()` and `stri_duplicated_any()`
+determine duplicate elements in a character vector.
+
+* [NEW FUNCTION] `stri_replace_na()` replaces `NA`s in a character vector
+with a given string, useful for emulating e.g. R's `paste()` behavior.
+
+* [NEW FUNCTION] `stri_rand_shuffle()` generates a random permutation
+of code points in a string.
+
+* [NEW FUNCTION] `stri_rand_strings()` generates random strings.
+
+* [NEW FUNCTIONS] New functions and binary operators for string comparison:
+`stri_cmp_eq()`, `stri_cmp_neq()`, `stri_cmp_lt()`, `stri_cmp_le()`,
+`stri_cmp_gt()`, `stri_cmp_ge()`, `%==%`, `%!=%`, `%<%`, `%<=%`, `%>%`, `%>=%`.
+
+* [NEW FUNCTION] `stri_enc_mark()` reads declared encodings of character
+strings as seen by `stringi`.
+
+* [NEW FUNCTION] `stri_enc_tonative(str)` is an alias to
+`stri_encode(str, NULL, NULL)`.
+
+* [NEW FEATURE] `stri_order()` and `stri_sort()` now have an additional argument
+`na_last` (defaults to `TRUE` and `NA`, respectively).
+
+* [NEW FEATURE] `stri_replace_all_charclass()`, `stri_extract_all_charclass()`,
+and `stri_locate_all_charclass()` now have a new arg, `merge`
+(defaults to `FALSE` for backward-compatibility). It may be used
+to e.g. replace sequences of white spaces with a single space.
+
+* [NEW FEATURE] `stri_enc_toutf8()` now has a new `validate` arg (defaults
+to FALSE for backward-compatibility). It may be used in a (rare) case
+in which a user wants to fix an invalid UTF-8 byte sequence.
+stri_length (among others) now detect invalid UTF-8 byte sequences.
+
+* [NEW FEATURE] All binary operators `%???%` now also have aliases `%stri???%`.
+
+* [GENERAL] Performance improvements in `StriContainerUTF8`
+and `StriContainerUTF16` (they affect most other functions).
+
+* [GENERAL] Significant performance improvements in `stri_join()`,
+`stri_flatten()`, `stri_cmp()`, `stri_trans_to*()`, and others.
+
+* [GENERAL] Added 3rd mirror site for our `icudt` binary distribution.
+
+* `U_MISSING_RESOURCE_ERROR` message in `StriException` now suggests
+calling `stri_install_check()`.
+
+* [BUGFIX] UTF-8 BOMs are now silently removed from input strings.
+
+* [BUGFIX] no more attempts to re-encode UTF-8 encoded strings
+if native encoding=UTF-8 in `StriContainerUTF8`.
+
+* [BUGFIX] possible memory leaks when throwing errors via `Rf_error()`.
+
+* [BUGFIX] `stri_order()` and `stri_cmp()` could return incorrect results
+for `opts_collator=NA`.
+
+* [BUGFIX] `stri_sort()` did not guarantee to return strings in UTF-8.
+
+-------------------------------------------------------------------------------
+
+## 0.1-25 (2014-03-12) **CRAN**
+
+* LICENSE tweaks.
+
+* Initial CRAN release.
+
+-------------------------------------------------------------------------------
+
+## 0.1-24 (2014-03-11) **devel**
+
+* Fixed bugs detected with `ASan` and `UBSan`,
+   e.g. fixed `CharClass::gcmask` type (`enum` -> `uint32_t`)
+   (reported by `UBSan`).
+
+* Fixed array over-runs detected with `valgrind` in `string8.h`.
+
+* Fixed unitialized class fields in `StriContainerUTF8`
+   (reported by `valgrind`).
+
+-------------------------------------------------------------------------------
+
+## 0.1-23 (2014-03-11) **devel**
+
+* License changed to BSD-3-clause, COPYRIGHTS updated.
+
+* `icudt` is not shipped with `stringi` anymore;
+   it is now downloaded in `install.libs.R` from one of our servers.
+
+* New functions: `stri_install_check()`, `stri_install_icudt()`.
+
+-------------------------------------------------------------------------------
+
+## 0.1-22 (2014-02-20) **devel**
+
+* System ICU is used on systems which do have one (version >= 50 needed).
+  ICU is autodetected with `pkg-config` in `./configure`.
+  Pass `'--disable-pkg-config'` to `./configure` to force building
+  ICU from sources.
+
+* `icudt52b` (custom subset) is now shipped with `stringi`
+  (for big-endian, ASCII systems).
+
+-------------------------------------------------------------------------------
+
+## 0.1-21 (2014-02-19) **devel**
+
+* Fixed some Solaris-related issues while preparing `stringi`
+  for CRAN submission.
+
+-------------------------------------------------------------------------------
+
+## 0.1-20 (2014-02-17) **devel**
+
+* ICU4C 52.1 sources included (common, i18n, stubdata + icu52dt.dat
+  loaded dynamically). Compilation via Makevars.
+
+* `stringi` now does not depend on any external libraries.
+
+-------------------------------------------------------------------------------
+
+## 0.1-11 (2013-11-16) **devel**
+
+* ICU4C is now statically linked on Windows.
+
+* First OS X binary build.
+
+* The package is being intensively tested by our students @ FMIS WUT.
+
+-------------------------------------------------------------------------------
+
+## 0.1-10 (2013-11-13) **devel**
+
+* Using `pkg-config` via `./configure` to look for ICU4C libs.
+
+-------------------------------------------------------------------------------
+
+## 0.1-6 (2013-07-05) **devel**
+
+* First Windows binary build.
+
+* Compilation passed on Oracle Sun Studio compiler collection.
+
+* By now we have implemented most of the functionality
+  scheduled for milestone 0.1.
+
+-------------------------------------------------------------------------------
+
+## 0.1-1 (2013-01-05) **devel**
+
+* The `stringi` project has been established on GitHub.
+
+-------------------------------------------------------------------------------
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/R/stringi.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/R/stringi.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/R/stringi.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/R/stringi.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/R/stringi
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/R/stringi	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/R/stringi	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/LICENSE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/LICENSE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/LICENSE	(revision 2476)
@@ -0,0 +1,73 @@
+** The R and C++ source code of the stringi package **
+** [including src/stri_* files]                     **
+
+Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+** The ICU4C library   **
+** [src/icu55/* files] **
+
+Copyright (c) 1991-2016 IBM; Unicode, Inc; Google, Inc; TaBE
+Project; Pai-Hsiang Hsiao; Computer Systems and Communication Lab,
+Institute of Information Science, Academia Sinica; Chih-Hao Tsai;
+Nara Institute of Science and Technology; Brian Eugene Wilson; Robert
+Martin Campbell
+
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, and/or sell copies of the
+Software, and to permit persons to whom the Software is furnished to do so,
+provided that the above copyright notice(s) and this permission notice appear
+in all copies of the Software and that both the above copyright notice(s) and
+this permission notice appear in supporting documentation.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE
+LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
+IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+See src/icu55/license.html,
+http://source.icu-project.org/repos/icu/icu/trunk/license.html, and
+http://source.icu-project.org/repos/icu/icuhtml/trunk/legal/copyright.html.
+
+
+** Unicode Data Files and Software **
+
+Copyright (c) 1991-2016 Unicode, Inc.
+Distributed under the Terms of Use
+in http://www.unicode.org/copyright.html.
+See also http://source.icu-project.org/repos/icu/icu/trunk/license.html.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/DESCRIPTION	(revision 2476)
@@ -0,0 +1,33 @@
+Package: stringi
+Version: 1.1.2
+Date: 2016-09-30
+Title: Character String Processing Facilities
+Description: Allows for fast, correct, consistent, portable,
+    as well as convenient character string/text processing in every locale
+    and any native encoding. Owing to the use of the ICU library,
+    the package provides R users with platform-independent functions
+    known to Java, Perl, Python, PHP, and Ruby programmers. Among available
+    features there are: pattern searching (e.g., with ICU Java-like regular
+    expressions or the Unicode Collation Algorithm), random string generation,
+    case mapping, string transliteration, concatenation,
+    Unicode normalization, date-time formatting and parsing, etc.
+URL: http://www.gagolewski.com/software/stringi/
+        http://site.icu-project.org/ http://www.unicode.org/
+BugReports: http://github.com/gagolews/stringi/issues
+SystemRequirements: ICU4C (>= 50, optional)
+Type: Package
+Depends: R (>= 2.13.1)
+Imports: tools, utils, stats
+Biarch: TRUE
+License: file LICENSE
+Author: Marek Gagolewski [aut, cre] and Bartek Tartanus [ctb] (stringi source code);
+    IBM and other contributors (ICU4C 55.1 source code);
+    Unicode, Inc. (Unicode Character Database)
+Maintainer: Marek Gagolewski <gagolews@rexamine.com>
+RoxygenNote: 5.0.1
+NeedsCompilation: yes
+Packaged: 2016-09-30 14:18:17 UTC; gagolews
+License_is_FOSS: yes
+Repository: CRAN
+Date/Publication: 2016-10-01 14:26:04
+Built: R 3.3.0; x86_64-apple-darwin13.4.0; 2016-10-06 13:44:09 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/include/stringi.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/include/stringi.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/include/stringi.cpp	(revision 2476)
@@ -0,0 +1,1160 @@
+/* This file is part of the 'stringi' package for R.
+ * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <stringi.h>
+#include <R_ext/Rdynload.h>
+SEXP stri_cmp(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_cmp");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_cmp_le(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_cmp_le");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_cmp_lt(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_cmp_lt");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_cmp_ge(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_cmp_ge");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_cmp_gt(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_cmp_gt");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_cmp_equiv(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_cmp_equiv");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_cmp_nequiv(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_cmp_nequiv");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_cmp_eq(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_cmp_eq");
+      return fun(e1, e2);
+   }
+
+SEXP stri_cmp_neq(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_cmp_neq");
+      return fun(e1, e2);
+   }
+
+SEXP stri_sort(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_sort");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_order(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_order");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_unique(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_unique");
+      return fun(e1, e2);
+   }
+
+SEXP stri_duplicated(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_duplicated");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_duplicated_any(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_duplicated_any");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_info() {
+      static SEXP(*fun)() = NULL;
+      if (!fun)
+         fun = (SEXP(*)()) R_GetCCallable("stringi", "C_stri_info");
+      return fun();
+   }
+
+SEXP stri_escape_unicode(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_escape_unicode");
+      return fun(e1);
+   }
+
+SEXP stri_unescape_unicode(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_unescape_unicode");
+      return fun(e1);
+   }
+
+SEXP stri_flatten(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_flatten");
+      return fun(e1, e2);
+   }
+
+SEXP stri_join(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_join");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_join_list(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_join_list");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_join2(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_join2");
+      return fun(e1, e2);
+   }
+
+SEXP stri_dup(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_dup");
+      return fun(e1, e2);
+   }
+
+SEXP stri_numbytes(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_numbytes");
+      return fun(e1);
+   }
+
+SEXP stri_length(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_length");
+      return fun(e1);
+   }
+
+SEXP stri_isempty(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_isempty");
+      return fun(e1);
+   }
+
+SEXP stri_width(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_width");
+      return fun(e1);
+   }
+
+SEXP stri_reverse(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_reverse");
+      return fun(e1);
+   }
+
+SEXP stri_sub(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_sub");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_sub_replacement(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5, SEXP e6) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_sub_replacement");
+      return fun(e1, e2, e3, e4, e5, e6);
+   }
+
+SEXP stri_enc_list() {
+      static SEXP(*fun)() = NULL;
+      if (!fun)
+         fun = (SEXP(*)()) R_GetCCallable("stringi", "C_stri_enc_list");
+      return fun();
+   }
+
+SEXP stri_enc_info(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_enc_info");
+      return fun(e1);
+   }
+
+SEXP stri_enc_set(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_enc_set");
+      return fun(e1);
+   }
+
+SEXP stri_enc_mark(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_enc_mark");
+      return fun(e1);
+   }
+
+SEXP stri_locale_info(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_locale_info");
+      return fun(e1);
+   }
+
+SEXP stri_locale_list() {
+      static SEXP(*fun)() = NULL;
+      if (!fun)
+         fun = (SEXP(*)()) R_GetCCallable("stringi", "C_stri_locale_list");
+      return fun();
+   }
+
+SEXP stri_locale_set(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_locale_set");
+      return fun(e1);
+   }
+
+SEXP stri_trim_both(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_trim_both");
+      return fun(e1, e2);
+   }
+
+SEXP stri_trim_left(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_trim_left");
+      return fun(e1, e2);
+   }
+
+SEXP stri_trim_right(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_trim_right");
+      return fun(e1, e2);
+   }
+
+SEXP stri_rand_shuffle(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_rand_shuffle");
+      return fun(e1);
+   }
+
+SEXP stri_rand_strings(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_rand_strings");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_stats_general(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_stats_general");
+      return fun(e1);
+   }
+
+SEXP stri_stats_latex(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_stats_latex");
+      return fun(e1);
+   }
+
+SEXP stri_trans_list() {
+      static SEXP(*fun)() = NULL;
+      if (!fun)
+         fun = (SEXP(*)()) R_GetCCallable("stringi", "C_stri_trans_list");
+      return fun();
+   }
+
+SEXP stri_trans_general(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_trans_general");
+      return fun(e1, e2);
+   }
+
+SEXP stri_list2matrix(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_list2matrix");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_encode(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_encode");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_enc_fromutf32(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_enc_fromutf32");
+      return fun(e1);
+   }
+
+SEXP stri_enc_toutf32(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_enc_toutf32");
+      return fun(e1);
+   }
+
+SEXP stri_enc_toutf8(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_enc_toutf8");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_enc_toascii(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_enc_toascii");
+      return fun(e1);
+   }
+
+SEXP stri_enc_detect2(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_enc_detect2");
+      return fun(e1, e2);
+   }
+
+SEXP stri_enc_detect(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_enc_detect");
+      return fun(e1, e2);
+   }
+
+SEXP stri_enc_isascii(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_enc_isascii");
+      return fun(e1);
+   }
+
+SEXP stri_enc_isutf8(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_enc_isutf8");
+      return fun(e1);
+   }
+
+SEXP stri_enc_isutf16le(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_enc_isutf16le");
+      return fun(e1);
+   }
+
+SEXP stri_enc_isutf16be(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_enc_isutf16be");
+      return fun(e1);
+   }
+
+SEXP stri_enc_isutf32le(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_enc_isutf32le");
+      return fun(e1);
+   }
+
+SEXP stri_enc_isutf32be(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_enc_isutf32be");
+      return fun(e1);
+   }
+
+SEXP stri_pad(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_pad");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_wrap(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5, SEXP e6, SEXP e7, SEXP e8, SEXP e9, SEXP e10) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_wrap");
+      return fun(e1, e2, e3, e4, e5, e6, e7, e8, e9, e10);
+   }
+
+SEXP stri_trans_char(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_trans_char");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_trans_totitle(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_trans_totitle");
+      return fun(e1, e2);
+   }
+
+SEXP stri_trans_tolower(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_trans_tolower");
+      return fun(e1, e2);
+   }
+
+SEXP stri_trans_toupper(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_trans_toupper");
+      return fun(e1, e2);
+   }
+
+SEXP stri_trans_nfc(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_trans_nfc");
+      return fun(e1);
+   }
+
+SEXP stri_trans_nfd(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_trans_nfd");
+      return fun(e1);
+   }
+
+SEXP stri_trans_nfkc(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_trans_nfkc");
+      return fun(e1);
+   }
+
+SEXP stri_trans_nfkd(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_trans_nfkd");
+      return fun(e1);
+   }
+
+SEXP stri_trans_nfkc_casefold(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_trans_nfkc_casefold");
+      return fun(e1);
+   }
+
+SEXP stri_trans_isnfc(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_trans_isnfc");
+      return fun(e1);
+   }
+
+SEXP stri_trans_isnfd(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_trans_isnfd");
+      return fun(e1);
+   }
+
+SEXP stri_trans_isnfkc(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_trans_isnfkc");
+      return fun(e1);
+   }
+
+SEXP stri_trans_isnfkd(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_trans_isnfkd");
+      return fun(e1);
+   }
+
+SEXP stri_trans_isnfkc_casefold(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_trans_isnfkc_casefold");
+      return fun(e1);
+   }
+
+SEXP stri_split_lines(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_split_lines");
+      return fun(e1, e2);
+   }
+
+SEXP stri_split_lines1(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_split_lines1");
+      return fun(e1);
+   }
+
+SEXP stri_replace_na(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_replace_na");
+      return fun(e1, e2);
+   }
+
+SEXP stri_detect_coll(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_detect_coll");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_count_coll(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_count_coll");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_locate_all_coll(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_all_coll");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_locate_first_coll(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_first_coll");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_locate_last_coll(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_last_coll");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_extract_first_coll(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_first_coll");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_extract_last_coll(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_last_coll");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_extract_all_coll(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_all_coll");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_replace_all_coll(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_replace_all_coll");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_replace_first_coll(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_replace_first_coll");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_replace_last_coll(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_replace_last_coll");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_split_coll(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5, SEXP e6, SEXP e7) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_split_coll");
+      return fun(e1, e2, e3, e4, e5, e6, e7);
+   }
+
+SEXP stri_endswith_coll(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_endswith_coll");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_startswith_coll(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_startswith_coll");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_subset_coll(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_subset_coll");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_subset_coll_replacement(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_subset_coll_replacement");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_detect_fixed(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_detect_fixed");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_count_fixed(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_count_fixed");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_locate_all_fixed(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_all_fixed");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_locate_first_fixed(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_first_fixed");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_locate_last_fixed(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_last_fixed");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_extract_first_fixed(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_first_fixed");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_extract_last_fixed(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_last_fixed");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_extract_all_fixed(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_all_fixed");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_replace_all_fixed(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_replace_all_fixed");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_replace_first_fixed(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_replace_first_fixed");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_replace_last_fixed(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_replace_last_fixed");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_split_fixed(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5, SEXP e6, SEXP e7) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_split_fixed");
+      return fun(e1, e2, e3, e4, e5, e6, e7);
+   }
+
+SEXP stri_subset_fixed(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_subset_fixed");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_endswith_fixed(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_endswith_fixed");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_startswith_fixed(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_startswith_fixed");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_subset_fixed_replacement(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_subset_fixed_replacement");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_detect_regex(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_detect_regex");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_count_regex(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_count_regex");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_locate_all_regex(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_all_regex");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_locate_first_regex(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_first_regex");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_locate_last_regex(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_last_regex");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_replace_all_regex(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_replace_all_regex");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_replace_first_regex(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_replace_first_regex");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_replace_last_regex(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_replace_last_regex");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_split_regex(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5, SEXP e6, SEXP e7) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_split_regex");
+      return fun(e1, e2, e3, e4, e5, e6, e7);
+   }
+
+SEXP stri_subset_regex(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_subset_regex");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_extract_first_regex(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_first_regex");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_extract_last_regex(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_last_regex");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_extract_all_regex(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_all_regex");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_match_first_regex(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_match_first_regex");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_match_last_regex(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_match_last_regex");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_match_all_regex(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_match_all_regex");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_subset_regex_replacement(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_subset_regex_replacement");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_count_charclass(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_count_charclass");
+      return fun(e1, e2);
+   }
+
+SEXP stri_detect_charclass(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_detect_charclass");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_extract_first_charclass(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_first_charclass");
+      return fun(e1, e2);
+   }
+
+SEXP stri_extract_last_charclass(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_last_charclass");
+      return fun(e1, e2);
+   }
+
+SEXP stri_extract_all_charclass(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_all_charclass");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_locate_first_charclass(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_first_charclass");
+      return fun(e1, e2);
+   }
+
+SEXP stri_locate_last_charclass(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_last_charclass");
+      return fun(e1, e2);
+   }
+
+SEXP stri_locate_all_charclass(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_all_charclass");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_replace_last_charclass(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_replace_last_charclass");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_replace_first_charclass(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_replace_first_charclass");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_replace_all_charclass(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_replace_all_charclass");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_split_charclass(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5, SEXP e6) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_split_charclass");
+      return fun(e1, e2, e3, e4, e5, e6);
+   }
+
+SEXP stri_endswith_charclass(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_endswith_charclass");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_startswith_charclass(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_startswith_charclass");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_subset_charclass(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_subset_charclass");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_subset_charclass_replacement(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_subset_charclass_replacement");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_extract_all_boundaries(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_all_boundaries");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_extract_first_boundaries(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_first_boundaries");
+      return fun(e1, e2);
+   }
+
+SEXP stri_extract_last_boundaries(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_extract_last_boundaries");
+      return fun(e1, e2);
+   }
+
+SEXP stri_locate_all_boundaries(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_all_boundaries");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_locate_first_boundaries(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_first_boundaries");
+      return fun(e1, e2);
+   }
+
+SEXP stri_locate_last_boundaries(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_locate_last_boundaries");
+      return fun(e1, e2);
+   }
+
+SEXP stri_split_boundaries(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_split_boundaries");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_count_boundaries(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_count_boundaries");
+      return fun(e1, e2);
+   }
+
+SEXP stri_timezone_list(SEXP e1, SEXP e2) {
+      static SEXP(*fun)(SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_timezone_list");
+      return fun(e1, e2);
+   }
+
+SEXP stri_timezone_set(SEXP e1) {
+      static SEXP(*fun)(SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP)) R_GetCCallable("stringi", "C_stri_timezone_set");
+      return fun(e1);
+   }
+
+SEXP stri_timezone_info(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_timezone_info");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_datetime_symbols(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_datetime_symbols");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_datetime_now() {
+      static SEXP(*fun)() = NULL;
+      if (!fun)
+         fun = (SEXP(*)()) R_GetCCallable("stringi", "C_stri_datetime_now");
+      return fun();
+   }
+
+SEXP stri_datetime_add(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_datetime_add");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
+SEXP stri_datetime_fields(SEXP e1, SEXP e2, SEXP e3) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_datetime_fields");
+      return fun(e1, e2, e3);
+   }
+
+SEXP stri_datetime_create(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5, SEXP e6, SEXP e7, SEXP e8, SEXP e9) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_datetime_create");
+      return fun(e1, e2, e3, e4, e5, e6, e7, e8, e9);
+   }
+
+SEXP stri_datetime_format(SEXP e1, SEXP e2, SEXP e3, SEXP e4) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_datetime_format");
+      return fun(e1, e2, e3, e4);
+   }
+
+SEXP stri_datetime_parse(SEXP e1, SEXP e2, SEXP e3, SEXP e4, SEXP e5) {
+      static SEXP(*fun)(SEXP,SEXP,SEXP,SEXP,SEXP) = NULL;
+      if (!fun)
+         fun = (SEXP(*)(SEXP,SEXP,SEXP,SEXP,SEXP)) R_GetCCallable("stringi", "C_stri_datetime_parse");
+      return fun(e1, e2, e3, e4, e5);
+   }
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/include/stringi.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/include/stringi.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/include/stringi.h	(revision 2476)
@@ -0,0 +1,330 @@
+/* This file is part of the 'stringi' package for R.
+ * Copyright (C) 2013-2016, Marek Gagolewski and Bartek Tartanus
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the copyright holder nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+#ifndef __stri_exports_h
+#define __stri_exports_h
+
+#include <R.h>
+#include <Rdefines.h>
+
+
+// compare.cpp:
+SEXP stri_cmp(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
+SEXP stri_cmp_le(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
+SEXP stri_cmp_lt(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
+SEXP stri_cmp_ge(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
+SEXP stri_cmp_gt(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
+SEXP stri_cmp_equiv(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
+SEXP stri_cmp_nequiv(SEXP e1, SEXP e2, SEXP opts_collator=R_NilValue);
+SEXP stri_cmp_eq(SEXP e1, SEXP e2);
+SEXP stri_cmp_neq(SEXP e1, SEXP e2);
+
+// sort.cpp
+SEXP stri_sort(SEXP str, SEXP decreasing=Rf_ScalarLogical(FALSE),
+   SEXP na_last=Rf_ScalarLogical(NA_LOGICAL), SEXP opts_collator=R_NilValue);
+SEXP stri_order(SEXP str, SEXP decreasing=Rf_ScalarLogical(FALSE),
+   SEXP na_last=Rf_ScalarLogical(TRUE), SEXP opts_collator=R_NilValue);
+
+SEXP stri_unique(SEXP str, SEXP opts_collator=R_NilValue);
+SEXP stri_duplicated(SEXP str, SEXP fromLast=Rf_ScalarLogical(FALSE),
+   SEXP opts_collator=R_NilValue);
+SEXP stri_duplicated_any(SEXP str, SEXP fromLast=Rf_ScalarLogical(FALSE),
+   SEXP opts_collator=R_NilValue);
+
+// ICU_settings.cpp:
+SEXP stri_info();
+
+// escape.cpp
+SEXP stri_escape_unicode(SEXP str);
+SEXP stri_unescape_unicode(SEXP str);
+
+// join.cpp:
+SEXP stri_flatten(SEXP str, SEXP collapse=Rf_mkString(""));
+SEXP stri_join(SEXP strlist, SEXP sep=Rf_mkString(""),
+   SEXP collapse=R_NilValue, SEXP ignore_null=Rf_ScalarLogical(FALSE));
+SEXP stri_join_list(SEXP x, SEXP sep=Rf_mkString(""),
+   SEXP collapse=R_NilValue);
+SEXP stri_join2(SEXP e1, SEXP e2);
+SEXP stri_dup(SEXP str, SEXP times);
+
+// length.cpp
+SEXP stri_numbytes(SEXP str);
+SEXP stri_length(SEXP str);
+SEXP stri_isempty(SEXP str);
+SEXP stri_width(SEXP str);
+
+// reverse.cpp
+SEXP stri_reverse(SEXP s);
+
+// sub.cpp
+SEXP stri_sub(SEXP str, SEXP from, SEXP to, SEXP length);
+SEXP stri_sub_replacement(SEXP str, SEXP from, SEXP to, SEXP length, SEXP omit_na, SEXP value);
+
+// encoding_management.cpp:
+SEXP stri_enc_list();
+SEXP stri_enc_info(SEXP enc=R_NilValue);
+SEXP stri_enc_set(SEXP enc);
+SEXP stri_enc_mark(SEXP str);
+
+// uloc.cpp:
+SEXP stri_locale_info(SEXP loc=R_NilValue);
+SEXP stri_locale_list();
+SEXP stri_locale_set(SEXP loc);
+
+// trim.cpp:
+SEXP stri_trim_both(SEXP str, SEXP pattern);
+SEXP stri_trim_left(SEXP str, SEXP pattern);
+SEXP stri_trim_right(SEXP str, SEXP pattern);
+
+// random.cpp
+SEXP stri_rand_shuffle(SEXP str);
+SEXP stri_rand_strings(SEXP n, SEXP length, SEXP pattern=Rf_mkString("[A-Za-z0-9]"));
+
+// stats.cpp
+SEXP stri_stats_general(SEXP str);
+SEXP stri_stats_latex(SEXP str);
+
+// trans_transliterate.cpp:
+SEXP stri_trans_list();
+SEXP stri_trans_general(SEXP str, SEXP id);
+
+// utils.cpp
+SEXP stri_list2matrix(SEXP x, SEXP byrow=Rf_ScalarLogical(FALSE),
+   SEXP fill=Rf_ScalarString(NA_STRING), SEXP n_min=Rf_ScalarInteger(0));
+
+
+// encoding_conversion.cpp:
+SEXP stri_encode(SEXP str, SEXP from=R_NilValue, SEXP to=R_NilValue,
+   SEXP to_raw=Rf_ScalarLogical(FALSE));
+SEXP stri_enc_fromutf32(SEXP str);
+SEXP stri_enc_toutf32(SEXP str);
+SEXP stri_enc_toutf8(SEXP str, SEXP is_unknown_8bit=Rf_ScalarLogical(FALSE),
+   SEXP validate=Rf_ScalarLogical(FALSE));
+SEXP stri_enc_toascii(SEXP str);
+
+
+// encoding_detection.cpp:
+SEXP stri_enc_detect2(SEXP str, SEXP loc=R_NilValue);
+SEXP stri_enc_detect(SEXP str, SEXP filter_angle_brackets=Rf_ScalarLogical(FALSE));
+SEXP stri_enc_isascii(SEXP str);
+SEXP stri_enc_isutf8(SEXP str);
+SEXP stri_enc_isutf16le(SEXP str);
+SEXP stri_enc_isutf16be(SEXP str);
+SEXP stri_enc_isutf32le(SEXP str);
+SEXP stri_enc_isutf32be(SEXP str);
+
+// pad.cpp
+SEXP stri_pad(SEXP str, SEXP width, SEXP side=Rf_mkString("left"),
+   SEXP pad=Rf_mkString(" "), SEXP use_length=Rf_ScalarLogical(FALSE));
+
+// wrap.cpp
+SEXP stri_wrap(SEXP str, SEXP width, SEXP cost_exponent=Rf_ScalarInteger(2),
+   SEXP indent=Rf_ScalarInteger(0), SEXP exdent=Rf_ScalarInteger(0),
+   SEXP prefix=Rf_mkString(""), SEXP initial=Rf_mkString(""),
+   SEXP whitespace_only=Rf_ScalarLogical(FALSE),
+   SEXP use_length=Rf_ScalarLogical(FALSE), SEXP locale=R_NilValue);
+
+// trans_other.cpp:
+SEXP stri_trans_char(SEXP str, SEXP pattern, SEXP replacement);
+
+// trans_casemap.cpp:
+SEXP stri_trans_totitle(SEXP str, SEXP opts_brkiter=R_NilValue);
+SEXP stri_trans_tolower(SEXP str, SEXP locale=R_NilValue);
+SEXP stri_trans_toupper(SEXP str, SEXP locale=R_NilValue);
+
+// trans_normalization.cpp:
+SEXP stri_trans_nfc(SEXP s);
+SEXP stri_trans_nfd(SEXP s);
+SEXP stri_trans_nfkc(SEXP s);
+SEXP stri_trans_nfkd(SEXP s);
+SEXP stri_trans_nfkc_casefold(SEXP s);
+SEXP stri_trans_isnfc(SEXP s);
+SEXP stri_trans_isnfd(SEXP s);
+SEXP stri_trans_isnfkc(SEXP s);
+SEXP stri_trans_isnfkd(SEXP s);
+SEXP stri_trans_isnfkc_casefold(SEXP s);
+
+// search
+SEXP stri_split_lines(SEXP str, SEXP omit_empty=Rf_ScalarLogical(FALSE));
+SEXP stri_split_lines1(SEXP str);
+
+SEXP stri_replace_na(SEXP str, SEXP replacement=Rf_mkString("NA"));
+
+SEXP stri_detect_coll(SEXP str, SEXP pattern, SEXP negate=Rf_ScalarLogical(FALSE), SEXP opts_collator=R_NilValue);
+SEXP stri_count_coll(SEXP str, SEXP pattern, SEXP opts_collator=R_NilValue);
+SEXP stri_locate_all_coll(SEXP str, SEXP pattern,
+   SEXP omit_no_match=Rf_ScalarLogical(FALSE), SEXP opts_collator=R_NilValue);
+SEXP stri_locate_first_coll(SEXP str, SEXP pattern, SEXP opts_collator=R_NilValue);
+SEXP stri_locate_last_coll(SEXP str, SEXP pattern, SEXP opts_collator=R_NilValue);
+SEXP stri_extract_first_coll(SEXP str, SEXP pattern, SEXP opts_collator=R_NilValue);
+SEXP stri_extract_last_coll(SEXP str, SEXP pattern, SEXP opts_collator=R_NilValue);
+SEXP stri_extract_all_coll(SEXP str, SEXP pattern,
+   SEXP simplify=Rf_ScalarLogical(FALSE),
+   SEXP omit_no_match=Rf_ScalarLogical(FALSE), SEXP opts_collator=R_NilValue);
+SEXP stri_replace_all_coll(SEXP str, SEXP pattern, SEXP replacement,
+   SEXP vectorize_all=Rf_ScalarLogical(TRUE), SEXP opts_collator=R_NilValue);
+SEXP stri_replace_first_coll(SEXP str, SEXP pattern, SEXP replacement,
+   SEXP opts_collator=R_NilValue);
+SEXP stri_replace_last_coll(SEXP str, SEXP pattern, SEXP replacement,
+   SEXP opts_collator=R_NilValue);
+SEXP stri_split_coll(SEXP str, SEXP split, SEXP n=Rf_ScalarInteger(-1),
+   SEXP omit_empty=Rf_ScalarLogical(FALSE), SEXP tokens_only=Rf_ScalarLogical(FALSE),
+   SEXP simplify=Rf_ScalarLogical(FALSE), SEXP opts_collator=R_NilValue);
+SEXP stri_endswith_coll(SEXP str, SEXP pattern, SEXP to=Rf_ScalarInteger(-1),
+   SEXP opts_collator=R_NilValue);
+SEXP stri_startswith_coll(SEXP str, SEXP pattern, SEXP from=Rf_ScalarInteger(1),
+   SEXP opts_collator=R_NilValue);
+SEXP stri_subset_coll(SEXP str, SEXP pattern,
+   SEXP omit_na=Rf_ScalarLogical(FALSE), SEXP negate=Rf_ScalarLogical(FALSE), SEXP opts_collator=R_NilValue);
+SEXP stri_subset_coll_replacement(SEXP str, SEXP pattern, SEXP negate, SEXP opts_collator, SEXP value);
+
+SEXP stri_detect_fixed(SEXP str, SEXP pattern, SEXP negate=Rf_ScalarLogical(FALSE), SEXP opts_fixed=R_NilValue);
+SEXP stri_count_fixed(SEXP str, SEXP pattern, SEXP opts_fixed=R_NilValue);
+SEXP stri_locate_all_fixed(SEXP str, SEXP pattern,
+   SEXP omit_no_match=Rf_ScalarLogical(FALSE), SEXP opts_fixed=R_NilValue);
+SEXP stri_locate_first_fixed(SEXP str, SEXP pattern, SEXP opts_fixed=R_NilValue);
+SEXP stri_locate_last_fixed(SEXP str, SEXP pattern, SEXP opts_fixed=R_NilValue);
+SEXP stri_extract_first_fixed(SEXP str, SEXP pattern, SEXP opts_fixed=R_NilValue);
+SEXP stri_extract_last_fixed(SEXP str, SEXP pattern, SEXP opts_fixed=R_NilValue);
+SEXP stri_extract_all_fixed(SEXP str, SEXP pattern,
+   SEXP simplify=Rf_ScalarLogical(FALSE),
+   SEXP omit_no_match=Rf_ScalarLogical(FALSE), SEXP opts_fixed=R_NilValue);
+SEXP stri_replace_all_fixed(SEXP str, SEXP pattern, SEXP replacement,
+   SEXP vectorize_all=Rf_ScalarLogical(TRUE), SEXP opts_fixed=R_NilValue);
+SEXP stri_replace_first_fixed(SEXP str, SEXP pattern, SEXP replacement,
+   SEXP opts_fixed=R_NilValue);
+SEXP stri_replace_last_fixed(SEXP str, SEXP pattern, SEXP replacement,
+   SEXP opts_fixed=R_NilValue);
+SEXP stri_split_fixed(SEXP str, SEXP split, SEXP n=Rf_ScalarInteger(-1),
+   SEXP omit_empty=Rf_ScalarLogical(FALSE), SEXP tokens_only=Rf_ScalarLogical(FALSE),
+   SEXP simplify=Rf_ScalarLogical(FALSE), SEXP opts_fixed=R_NilValue);
+SEXP stri_subset_fixed(SEXP str, SEXP pattern,
+   SEXP omit_na=Rf_ScalarLogical(FALSE), SEXP negate=Rf_ScalarLogical(FALSE), SEXP opts_fixed=R_NilValue);
+SEXP stri_endswith_fixed(SEXP str, SEXP pattern, SEXP to=Rf_ScalarInteger(-1),
+   SEXP opts_fixed=R_NilValue);
+SEXP stri_startswith_fixed(SEXP str, SEXP pattern, SEXP from=Rf_ScalarInteger(1),
+   SEXP opts_fixed=R_NilValue);
+SEXP stri_subset_fixed_replacement(SEXP str, SEXP pattern, SEXP negate, SEXP opts_fixed, SEXP value);
+
+SEXP stri_detect_regex(SEXP str, SEXP pattern, SEXP negate=Rf_ScalarLogical(FALSE), SEXP opts_regex=R_NilValue);
+SEXP stri_count_regex(SEXP str, SEXP pattern, SEXP opts_regex=R_NilValue);
+SEXP stri_locate_all_regex(SEXP str, SEXP pattern,
+   SEXP omit_no_match=Rf_ScalarLogical(FALSE), SEXP opts_regex=R_NilValue);
+SEXP stri_locate_first_regex(SEXP str, SEXP pattern, SEXP opts_regex=R_NilValue);
+SEXP stri_locate_last_regex(SEXP str, SEXP pattern, SEXP opts_regex=R_NilValue);
+SEXP stri_replace_all_regex(SEXP str, SEXP pattern, SEXP replacement,
+   SEXP vectorize_all=Rf_ScalarLogical(FALSE), SEXP opts_regex=R_NilValue);
+SEXP stri_replace_first_regex(SEXP str, SEXP pattern, SEXP replacement,
+   SEXP opts_regex=R_NilValue);
+SEXP stri_replace_last_regex(SEXP str, SEXP pattern, SEXP replacement,
+   SEXP opts_regex=R_NilValue);
+SEXP stri_split_regex(SEXP str, SEXP pattern, SEXP n=Rf_ScalarInteger(-1),
+   SEXP omit_empty=Rf_ScalarLogical(FALSE), SEXP tokens_only=Rf_ScalarLogical(FALSE),
+   SEXP simplify=Rf_ScalarLogical(FALSE), SEXP opts_regex=R_NilValue);
+SEXP stri_subset_regex(SEXP str, SEXP pattern,
+   SEXP omit_na=Rf_ScalarLogical(FALSE), SEXP negate=Rf_ScalarLogical(FALSE), SEXP opts_regex=R_NilValue);
+SEXP stri_extract_first_regex(SEXP str, SEXP pattern, SEXP opts_regex=R_NilValue);
+SEXP stri_extract_last_regex(SEXP str, SEXP pattern, SEXP opts_regex=R_NilValue);
+SEXP stri_extract_all_regex(SEXP str, SEXP pattern,
+   SEXP simplify=Rf_ScalarLogical(FALSE), SEXP omit_no_match=Rf_ScalarLogical(FALSE),
+   SEXP opts_regex=R_NilValue);
+SEXP stri_match_first_regex(SEXP str, SEXP pattern,
+   SEXP cg_missing=Rf_ScalarString(NA_STRING), SEXP opts_regex=R_NilValue);
+SEXP stri_match_last_regex(SEXP str, SEXP pattern,
+   SEXP cg_missing=Rf_ScalarString(NA_STRING), SEXP opts_regex=R_NilValue);
+SEXP stri_match_all_regex(SEXP str, SEXP pattern,
+   SEXP omit_no_match=Rf_ScalarLogical(FALSE),
+   SEXP cg_missing=Rf_ScalarString(NA_STRING), SEXP opts_regex=R_NilValue);
+SEXP stri_subset_regex_replacement(SEXP str, SEXP pattern, SEXP negate, SEXP opts_regex, SEXP value);
+
+SEXP stri_count_charclass(SEXP str, SEXP pattern);
+SEXP stri_detect_charclass(SEXP str, SEXP pattern, SEXP negate=Rf_ScalarLogical(FALSE));
+SEXP stri_extract_first_charclass(SEXP str, SEXP pattern);
+SEXP stri_extract_last_charclass(SEXP str, SEXP pattern);
+SEXP stri_extract_all_charclass(SEXP str, SEXP pattern,
+   SEXP merge=Rf_ScalarLogical(TRUE), SEXP simplify=Rf_ScalarLogical(FALSE),
+   SEXP omit_no_match=Rf_ScalarLogical(FALSE));
+SEXP stri_locate_first_charclass(SEXP str, SEXP pattern);
+SEXP stri_locate_last_charclass(SEXP str, SEXP pattern);
+SEXP stri_locate_all_charclass(SEXP str, SEXP pattern,
+   SEXP merge=Rf_ScalarLogical(TRUE), SEXP omit_no_match=Rf_ScalarLogical(FALSE));
+SEXP stri_replace_last_charclass(SEXP str, SEXP pattern, SEXP replacement);
+SEXP stri_replace_first_charclass(SEXP str, SEXP pattern, SEXP replacement);
+SEXP stri_replace_all_charclass(SEXP str, SEXP pattern, SEXP replacement,
+   SEXP merge=Rf_ScalarLogical(FALSE), SEXP vectorize_all=Rf_ScalarLogical(TRUE));
+SEXP stri_split_charclass(SEXP str, SEXP pattern, SEXP n=Rf_ScalarInteger(-1),
+   SEXP omit_empty=Rf_ScalarLogical(FALSE),
+   SEXP tokens_only=Rf_ScalarLogical(FALSE), SEXP simplify=Rf_ScalarLogical(FALSE));
+SEXP stri_endswith_charclass(SEXP str, SEXP pattern, SEXP to=Rf_ScalarInteger(-1));
+SEXP stri_startswith_charclass(SEXP str, SEXP pattern, SEXP from=Rf_ScalarInteger(1));
+SEXP stri_subset_charclass(SEXP str, SEXP pattern, SEXP omit_na=Rf_ScalarLogical(FALSE), SEXP negate=Rf_ScalarLogical(FALSE));
+SEXP stri_subset_charclass_replacement(SEXP str, SEXP pattern, SEXP negate, SEXP value);
+
+SEXP stri_extract_all_boundaries(SEXP str, SEXP simplify,
+   SEXP omit_no_match=Rf_ScalarLogical(FALSE), SEXP opts_brkiter=R_NilValue);
+SEXP stri_extract_first_boundaries(SEXP str, SEXP opts_brkiter=R_NilValue);
+SEXP stri_extract_last_boundaries(SEXP str, SEXP opts_brkiter=R_NilValue);
+SEXP stri_locate_all_boundaries(SEXP str,
+   SEXP omit_no_match=Rf_ScalarLogical(FALSE), SEXP opts_brkiter=R_NilValue);
+SEXP stri_locate_first_boundaries(SEXP str, SEXP opts_brkiter=R_NilValue);
+SEXP stri_locate_last_boundaries(SEXP str, SEXP opts_brkiter=R_NilValue);
+SEXP stri_split_boundaries(SEXP str, SEXP n=Rf_ScalarInteger(-1),
+   SEXP tokens_only=Rf_ScalarLogical(FALSE),
+   SEXP simplify=Rf_ScalarLogical(FALSE), SEXP opts_brkiter=R_NilValue);
+SEXP stri_count_boundaries(SEXP str, SEXP opts_brkiter=R_NilValue);
+
+
+// date/time
+SEXP stri_timezone_list(SEXP region=Rf_ScalarString(NA_STRING),
+   SEXP offset=Rf_ScalarInteger(NA_INTEGER));
+SEXP stri_timezone_set(SEXP tz);
+SEXP stri_timezone_info(SEXP tz=R_NilValue, SEXP locale=R_NilValue,
+   SEXP display_type=Rf_mkString("long"));
+
+SEXP stri_datetime_symbols(SEXP locale=R_NilValue,
+   SEXP context=Rf_mkString("standalone"), SEXP width=Rf_mkString("wide"));
+
+SEXP stri_datetime_now();
+SEXP stri_datetime_add(SEXP time, SEXP value=Rf_ScalarInteger(1),
+   SEXP units=Rf_mkString("seconds"), SEXP tz=R_NilValue, SEXP locale=R_NilValue);
+SEXP stri_datetime_fields(SEXP time, SEXP tz=R_NilValue, SEXP locale=R_NilValue);
+SEXP stri_datetime_create(SEXP year, SEXP month, SEXP day,
+   SEXP hour=Rf_ScalarInteger(12), SEXP minute=Rf_ScalarInteger(0),
+   SEXP second=Rf_ScalarInteger(0), SEXP lenient=Rf_ScalarLogical(FALSE),
+   SEXP tz=R_NilValue, SEXP locale=R_NilValue);
+SEXP stri_datetime_format(SEXP time, SEXP format=Rf_mkString("uuuu-MM-dd HH:mm:ss"),
+   SEXP tz=R_NilValue, SEXP locale=R_NilValue);
+SEXP stri_datetime_parse(SEXP str, SEXP format=Rf_mkString("uuuu-MM-dd HH:mm:ss"),
+   SEXP lenient=Rf_ScalarLogical(FALSE), SEXP tz=R_NilValue, SEXP locale=R_NilValue);
+
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/html/00Index.html	(revision 2476)
@@ -0,0 +1,531 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Character String Processing Facilities</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Character String Processing Facilities
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;stringi&rsquo; version 1.1.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="# "> </a>
+<a href="#S">S</a>
+<a href="#misc">misc</a>
+</p>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="stringi-package.html">stringi-package</a></td>
+<td>THE String Processing Package</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="stringi-package.html">stringi</a></td>
+<td>THE String Processing Package</td></tr>
+<tr><td style="width: 25%;"><a href="stringi-arguments.html">stringi-arguments</a></td>
+<td>Passing Arguments to Functions in 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stringi-encoding.html">stringi-encoding</a></td>
+<td>Character Encodings and 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stringi-locale.html">stringi-locale</a></td>
+<td>Locales and 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stringi-search.html">stringi-search</a></td>
+<td>String Searching</td></tr>
+<tr><td style="width: 25%;"><a href="stringi-search-boundaries.html">stringi-search-boundaries</a></td>
+<td>Text Boundary Analysis in 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stringi-search-charclass.html">stringi-search-charclass</a></td>
+<td>Character Classes in 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stringi-search-coll.html">stringi-search-coll</a></td>
+<td>Locale-Sensitive Text Searching in 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stringi-search-fixed.html">stringi-search-fixed</a></td>
+<td>Locale-Insensitive Fixed Pattern Matching in 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stringi-search-regex.html">stringi-search-regex</a></td>
+<td>Regular Expressions in 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stri_join.html">stri_c</a></td>
+<td>Concatenate Character Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="stri_compare.html">stri_cmp</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="stri_compare.html">stri_cmp_eq</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="stri_compare.html">stri_cmp_equiv</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="stri_compare.html">stri_cmp_ge</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="stri_compare.html">stri_cmp_gt</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="stri_compare.html">stri_cmp_le</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="stri_compare.html">stri_cmp_lt</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="stri_compare.html">stri_cmp_neq</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="stri_compare.html">stri_cmp_nequiv</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="stri_compare.html">stri_compare</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="stri_encode.html">stri_conv</a></td>
+<td>Convert Strings Between Given Encodings</td></tr>
+<tr><td style="width: 25%;"><a href="stri_count.html">stri_count</a></td>
+<td>Count the Number of Pattern Matches</td></tr>
+<tr><td style="width: 25%;"><a href="stri_count_boundaries.html">stri_count_boundaries</a></td>
+<td>Count the Number of Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_count.html">stri_count_charclass</a></td>
+<td>Count the Number of Pattern Matches</td></tr>
+<tr><td style="width: 25%;"><a href="stri_count.html">stri_count_coll</a></td>
+<td>Count the Number of Pattern Matches</td></tr>
+<tr><td style="width: 25%;"><a href="stri_count.html">stri_count_fixed</a></td>
+<td>Count the Number of Pattern Matches</td></tr>
+<tr><td style="width: 25%;"><a href="stri_count.html">stri_count_regex</a></td>
+<td>Count the Number of Pattern Matches</td></tr>
+<tr><td style="width: 25%;"><a href="stri_count_boundaries.html">stri_count_words</a></td>
+<td>Count the Number of Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_join_list.html">stri_c_list</a></td>
+<td>Concatenate Strings in a List</td></tr>
+<tr><td style="width: 25%;"><a href="stri_datetime_add.html">stri_datetime_add</a></td>
+<td>[DRAFT API] Date and Time Arithmetic</td></tr>
+<tr><td style="width: 25%;"><a href="stri_datetime_add.html">stri_datetime_add&lt;-</a></td>
+<td>[DRAFT API] Date and Time Arithmetic</td></tr>
+<tr><td style="width: 25%;"><a href="stri_datetime_create.html">stri_datetime_create</a></td>
+<td>[DRAFT API] Create a Date-Time Object</td></tr>
+<tr><td style="width: 25%;"><a href="stri_datetime_fields.html">stri_datetime_fields</a></td>
+<td>[DRAFT API] Get Values for Date and Time Fields</td></tr>
+<tr><td style="width: 25%;"><a href="stri_datetime_format.html">stri_datetime_format</a></td>
+<td>[DRAFT API] Date and Time Formatting and Parsing</td></tr>
+<tr><td style="width: 25%;"><a href="stri_datetime_fstr.html">stri_datetime_fstr</a></td>
+<td>[DRAFT API] Convert 'strptime'-style Format Strings</td></tr>
+<tr><td style="width: 25%;"><a href="stri_datetime_now.html">stri_datetime_now</a></td>
+<td>[DRAFT API] Get Current Date and Time</td></tr>
+<tr><td style="width: 25%;"><a href="stri_datetime_format.html">stri_datetime_parse</a></td>
+<td>[DRAFT API] Date and Time Formatting and Parsing</td></tr>
+<tr><td style="width: 25%;"><a href="stri_datetime_symbols.html">stri_datetime_symbols</a></td>
+<td>[DRAFT API] List Localizable Date-Time Formatting Data</td></tr>
+<tr><td style="width: 25%;"><a href="stri_detect.html">stri_detect</a></td>
+<td>Detect a Pattern Match</td></tr>
+<tr><td style="width: 25%;"><a href="stri_detect.html">stri_detect_charclass</a></td>
+<td>Detect a Pattern Match</td></tr>
+<tr><td style="width: 25%;"><a href="stri_detect.html">stri_detect_coll</a></td>
+<td>Detect a Pattern Match</td></tr>
+<tr><td style="width: 25%;"><a href="stri_detect.html">stri_detect_fixed</a></td>
+<td>Detect a Pattern Match</td></tr>
+<tr><td style="width: 25%;"><a href="stri_detect.html">stri_detect_regex</a></td>
+<td>Detect a Pattern Match</td></tr>
+<tr><td style="width: 25%;"><a href="stri_dup.html">stri_dup</a></td>
+<td>Duplicate Strings</td></tr>
+<tr><td style="width: 25%;"><a href="stri_duplicated.html">stri_duplicated</a></td>
+<td>Determine Duplicated Elements</td></tr>
+<tr><td style="width: 25%;"><a href="stri_duplicated.html">stri_duplicated_any</a></td>
+<td>Determine Duplicated Elements</td></tr>
+<tr><td style="width: 25%;"><a href="stri_encode.html">stri_encode</a></td>
+<td>Convert Strings Between Given Encodings</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_detect.html">stri_enc_detect</a></td>
+<td>[DRAFT API] Detect Character Set and Language</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_detect2.html">stri_enc_detect2</a></td>
+<td>[DRAFT API] Detect Locale-Sensitive Character Encoding</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_fromutf32.html">stri_enc_fromutf32</a></td>
+<td>Convert From UTF-32</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_set.html">stri_enc_get</a></td>
+<td>Set or Get Default Character Encoding in 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_info.html">stri_enc_info</a></td>
+<td>Query a Character Encoding</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_isascii.html">stri_enc_isascii</a></td>
+<td>Check If a Data Stream Is Possibly in ASCII</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_isutf16.html">stri_enc_isutf16be</a></td>
+<td>Check If a Data Stream Is Possibly in UTF16 or UTF32</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_isutf16.html">stri_enc_isutf16le</a></td>
+<td>Check If a Data Stream Is Possibly in UTF16 or UTF32</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_isutf16.html">stri_enc_isutf32be</a></td>
+<td>Check If a Data Stream Is Possibly in UTF16 or UTF32</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_isutf16.html">stri_enc_isutf32le</a></td>
+<td>Check If a Data Stream Is Possibly in UTF16 or UTF32</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_isutf8.html">stri_enc_isutf8</a></td>
+<td>Check If a Data Stream Is Possibly in UTF-8</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_list.html">stri_enc_list</a></td>
+<td>List Known Character Encodings</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_mark.html">stri_enc_mark</a></td>
+<td>Get Declared Encodings of Each String</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_set.html">stri_enc_set</a></td>
+<td>Set or Get Default Character Encoding in 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_toascii.html">stri_enc_toascii</a></td>
+<td>Convert To ASCII</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_tonative.html">stri_enc_tonative</a></td>
+<td>Convert Strings To Native Encoding</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_toutf32.html">stri_enc_toutf32</a></td>
+<td>Convert Strings To UTF-32</td></tr>
+<tr><td style="width: 25%;"><a href="stri_enc_toutf8.html">stri_enc_toutf8</a></td>
+<td>Convert Strings To UTF-8</td></tr>
+<tr><td style="width: 25%;"><a href="stri_startsendswith.html">stri_endswith</a></td>
+<td>Determine if the Start or End of a String Matches a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_startsendswith.html">stri_endswith_charclass</a></td>
+<td>Determine if the Start or End of a String Matches a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_startsendswith.html">stri_endswith_coll</a></td>
+<td>Determine if the Start or End of a String Matches a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_startsendswith.html">stri_endswith_fixed</a></td>
+<td>Determine if the Start or End of a String Matches a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_escape_unicode.html">stri_escape_unicode</a></td>
+<td>Escape Unicode Code Points</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_all</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract_boundaries.html">stri_extract_all_boundaries</a></td>
+<td>Extract Text Between Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_all_charclass</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_all_coll</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_all_fixed</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_all_regex</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract_boundaries.html">stri_extract_all_words</a></td>
+<td>Extract Text Between Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_first</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract_boundaries.html">stri_extract_first_boundaries</a></td>
+<td>Extract Text Between Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_first_charclass</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_first_coll</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_first_fixed</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_first_regex</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract_boundaries.html">stri_extract_first_words</a></td>
+<td>Extract Text Between Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_last</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract_boundaries.html">stri_extract_last_boundaries</a></td>
+<td>Extract Text Between Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_last_charclass</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_last_coll</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_last_fixed</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract.html">stri_extract_last_regex</a></td>
+<td>Extract Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_extract_boundaries.html">stri_extract_last_words</a></td>
+<td>Extract Text Between Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_flatten.html">stri_flatten</a></td>
+<td>Flatten a String</td></tr>
+<tr><td style="width: 25%;"><a href="stri_info.html">stri_info</a></td>
+<td>Query Default Settings for 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stri_install.html">stri_install_check</a></td>
+<td>Installation-Related Utilities [DEPRECATED]</td></tr>
+<tr><td style="width: 25%;"><a href="stri_install.html">stri_install_icudt</a></td>
+<td>Installation-Related Utilities [DEPRECATED]</td></tr>
+<tr><td style="width: 25%;"><a href="stri_isempty.html">stri_isempty</a></td>
+<td>Determine if a String is of Length Zero</td></tr>
+<tr><td style="width: 25%;"><a href="stri_join.html">stri_join</a></td>
+<td>Concatenate Character Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="stri_join_list.html">stri_join_list</a></td>
+<td>Concatenate Strings in a List</td></tr>
+<tr><td style="width: 25%;"><a href="stri_length.html">stri_length</a></td>
+<td>Count the Number of Code Points</td></tr>
+<tr><td style="width: 25%;"><a href="stri_list2matrix.html">stri_list2matrix</a></td>
+<td>Convert a List to a Character Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locale_set.html">stri_locale_get</a></td>
+<td>Set or Get Default Locale in 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locale_info.html">stri_locale_info</a></td>
+<td>Query Given Locale</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locale_list.html">stri_locale_list</a></td>
+<td>List Available Locales</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locale_set.html">stri_locale_set</a></td>
+<td>Set or Get Default Locale in 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_all</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate_boundaries.html">stri_locate_all_boundaries</a></td>
+<td>Locate Specific Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_all_charclass</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_all_coll</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_all_fixed</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_all_regex</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate_boundaries.html">stri_locate_all_words</a></td>
+<td>Locate Specific Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_first</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate_boundaries.html">stri_locate_first_boundaries</a></td>
+<td>Locate Specific Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_first_charclass</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_first_coll</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_first_fixed</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_first_regex</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate_boundaries.html">stri_locate_first_words</a></td>
+<td>Locate Specific Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_last</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate_boundaries.html">stri_locate_last_boundaries</a></td>
+<td>Locate Specific Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_last_charclass</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_last_coll</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_last_fixed</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate.html">stri_locate_last_regex</a></td>
+<td>Locate Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_locate_boundaries.html">stri_locate_last_words</a></td>
+<td>Locate Specific Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_match.html">stri_match</a></td>
+<td>Extract Regex Pattern Matches, Together with Capture Groups</td></tr>
+<tr><td style="width: 25%;"><a href="stri_match.html">stri_match_all</a></td>
+<td>Extract Regex Pattern Matches, Together with Capture Groups</td></tr>
+<tr><td style="width: 25%;"><a href="stri_match.html">stri_match_all_regex</a></td>
+<td>Extract Regex Pattern Matches, Together with Capture Groups</td></tr>
+<tr><td style="width: 25%;"><a href="stri_match.html">stri_match_first</a></td>
+<td>Extract Regex Pattern Matches, Together with Capture Groups</td></tr>
+<tr><td style="width: 25%;"><a href="stri_match.html">stri_match_first_regex</a></td>
+<td>Extract Regex Pattern Matches, Together with Capture Groups</td></tr>
+<tr><td style="width: 25%;"><a href="stri_match.html">stri_match_last</a></td>
+<td>Extract Regex Pattern Matches, Together with Capture Groups</td></tr>
+<tr><td style="width: 25%;"><a href="stri_match.html">stri_match_last_regex</a></td>
+<td>Extract Regex Pattern Matches, Together with Capture Groups</td></tr>
+<tr><td style="width: 25%;"><a href="stri_numbytes.html">stri_numbytes</a></td>
+<td>Count the Number of Bytes</td></tr>
+<tr><td style="width: 25%;"><a href="stri_opts_brkiter.html">stri_opts_brkiter</a></td>
+<td>Generate a List with BreakIterator Settings</td></tr>
+<tr><td style="width: 25%;"><a href="stri_opts_collator.html">stri_opts_collator</a></td>
+<td>Generate a List with Collator Settings</td></tr>
+<tr><td style="width: 25%;"><a href="stri_opts_fixed.html">stri_opts_fixed</a></td>
+<td>Generate a List with Fixed Pattern Search Engine's Settings</td></tr>
+<tr><td style="width: 25%;"><a href="stri_opts_regex.html">stri_opts_regex</a></td>
+<td>Generate a List with Regex Matcher Settings</td></tr>
+<tr><td style="width: 25%;"><a href="stri_order.html">stri_order</a></td>
+<td>Ordering Permutation and Sorting</td></tr>
+<tr><td style="width: 25%;"><a href="stri_pad.html">stri_pad</a></td>
+<td>Pad (Center/Left/Right Align) a String</td></tr>
+<tr><td style="width: 25%;"><a href="stri_pad.html">stri_pad_both</a></td>
+<td>Pad (Center/Left/Right Align) a String</td></tr>
+<tr><td style="width: 25%;"><a href="stri_pad.html">stri_pad_left</a></td>
+<td>Pad (Center/Left/Right Align) a String</td></tr>
+<tr><td style="width: 25%;"><a href="stri_pad.html">stri_pad_right</a></td>
+<td>Pad (Center/Left/Right Align) a String</td></tr>
+<tr><td style="width: 25%;"><a href="stri_join.html">stri_paste</a></td>
+<td>Concatenate Character Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="stri_join_list.html">stri_paste_list</a></td>
+<td>Concatenate Strings in a List</td></tr>
+<tr><td style="width: 25%;"><a href="stri_rand_lipsum.html">stri_rand_lipsum</a></td>
+<td>A Lorem Ipsum Generator</td></tr>
+<tr><td style="width: 25%;"><a href="stri_rand_shuffle.html">stri_rand_shuffle</a></td>
+<td>Randomly Shuffle Code Points in Each String</td></tr>
+<tr><td style="width: 25%;"><a href="stri_rand_strings.html">stri_rand_strings</a></td>
+<td>Generate Random Strings</td></tr>
+<tr><td style="width: 25%;"><a href="stri_read_lines.html">stri_read_lines</a></td>
+<td>[DRAFT API] Read Text Lines from a Text File</td></tr>
+<tr><td style="width: 25%;"><a href="stri_read_raw.html">stri_read_raw</a></td>
+<td>[DRAFT API] Read Whole Text File as Raw</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_all</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_all_charclass</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_all_coll</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_all_fixed</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_all_regex</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_first</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_first_charclass</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_first_coll</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_first_fixed</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_first_regex</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_last</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_last_charclass</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_last_coll</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_last_fixed</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace.html">stri_replace_last_regex</a></td>
+<td>Replace Occurrences of a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_replace_na.html">stri_replace_na</a></td>
+<td>Replace Missing Values in a Character Vector</td></tr>
+<tr><td style="width: 25%;"><a href="stri_reverse.html">stri_reverse</a></td>
+<td>Reverse Each String</td></tr>
+<tr><td style="width: 25%;"><a href="stri_order.html">stri_sort</a></td>
+<td>Ordering Permutation and Sorting</td></tr>
+<tr><td style="width: 25%;"><a href="stri_split.html">stri_split</a></td>
+<td>Split a String By Pattern Matches</td></tr>
+<tr><td style="width: 25%;"><a href="stri_split_boundaries.html">stri_split_boundaries</a></td>
+<td>Split a String at Specific Text Boundaries</td></tr>
+<tr><td style="width: 25%;"><a href="stri_split.html">stri_split_charclass</a></td>
+<td>Split a String By Pattern Matches</td></tr>
+<tr><td style="width: 25%;"><a href="stri_split.html">stri_split_coll</a></td>
+<td>Split a String By Pattern Matches</td></tr>
+<tr><td style="width: 25%;"><a href="stri_split.html">stri_split_fixed</a></td>
+<td>Split a String By Pattern Matches</td></tr>
+<tr><td style="width: 25%;"><a href="stri_split_lines.html">stri_split_lines</a></td>
+<td>Split a String Into Text Lines</td></tr>
+<tr><td style="width: 25%;"><a href="stri_split_lines.html">stri_split_lines1</a></td>
+<td>Split a String Into Text Lines</td></tr>
+<tr><td style="width: 25%;"><a href="stri_split.html">stri_split_regex</a></td>
+<td>Split a String By Pattern Matches</td></tr>
+<tr><td style="width: 25%;"><a href="stri_startsendswith.html">stri_startswith</a></td>
+<td>Determine if the Start or End of a String Matches a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_startsendswith.html">stri_startswith_charclass</a></td>
+<td>Determine if the Start or End of a String Matches a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_startsendswith.html">stri_startswith_coll</a></td>
+<td>Determine if the Start or End of a String Matches a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_startsendswith.html">stri_startswith_fixed</a></td>
+<td>Determine if the Start or End of a String Matches a Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_stats_general.html">stri_stats_general</a></td>
+<td>General Statistics for a Character Vector</td></tr>
+<tr><td style="width: 25%;"><a href="stri_stats_latex.html">stri_stats_latex</a></td>
+<td>Statistics for a Character Vector Containing LaTeX Commands</td></tr>
+<tr><td style="width: 25%;"><a href="stri_sub.html">stri_sub</a></td>
+<td>Extract a Substring From or Replace a Substring In a Character Vector</td></tr>
+<tr><td style="width: 25%;"><a href="stri_sub.html">stri_sub&lt;-</a></td>
+<td>Extract a Substring From or Replace a Substring In a Character Vector</td></tr>
+<tr><td style="width: 25%;"><a href="stri_subset.html">stri_subset</a></td>
+<td>Select Elements that Match a Given Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_subset.html">stri_subset&lt;-</a></td>
+<td>Select Elements that Match a Given Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_subset.html">stri_subset_charclass</a></td>
+<td>Select Elements that Match a Given Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_subset.html">stri_subset_charclass&lt;-</a></td>
+<td>Select Elements that Match a Given Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_subset.html">stri_subset_coll</a></td>
+<td>Select Elements that Match a Given Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_subset.html">stri_subset_coll&lt;-</a></td>
+<td>Select Elements that Match a Given Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_subset.html">stri_subset_fixed</a></td>
+<td>Select Elements that Match a Given Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_subset.html">stri_subset_fixed&lt;-</a></td>
+<td>Select Elements that Match a Given Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_subset.html">stri_subset_regex</a></td>
+<td>Select Elements that Match a Given Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_subset.html">stri_subset_regex&lt;-</a></td>
+<td>Select Elements that Match a Given Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="stri_timezone_set.html">stri_timezone_get</a></td>
+<td>[DRAFT API] Set or Get Default Time Zone in 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stri_timezone_info.html">stri_timezone_info</a></td>
+<td>[DRAFT API] Query a Given Time Zone</td></tr>
+<tr><td style="width: 25%;"><a href="stri_timezone_list.html">stri_timezone_list</a></td>
+<td>[DRAFT API] List Available Time Zone Identifiers</td></tr>
+<tr><td style="width: 25%;"><a href="stri_timezone_set.html">stri_timezone_set</a></td>
+<td>[DRAFT API] Set or Get Default Time Zone in 'stringi'</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_char.html">stri_trans_char</a></td>
+<td>Translate Characters</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_general.html">stri_trans_general</a></td>
+<td>General Text Transforms, Including Transliteration</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_nf.html">stri_trans_isnfc</a></td>
+<td>Perform or Check For Unicode Normalization</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_nf.html">stri_trans_isnfd</a></td>
+<td>Perform or Check For Unicode Normalization</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_nf.html">stri_trans_isnfkc</a></td>
+<td>Perform or Check For Unicode Normalization</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_nf.html">stri_trans_isnfkc_casefold</a></td>
+<td>Perform or Check For Unicode Normalization</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_nf.html">stri_trans_isnfkd</a></td>
+<td>Perform or Check For Unicode Normalization</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_list.html">stri_trans_list</a></td>
+<td>List Available Text Transforms and Transliterators</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_nf.html">stri_trans_nfc</a></td>
+<td>Perform or Check For Unicode Normalization</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_nf.html">stri_trans_nfd</a></td>
+<td>Perform or Check For Unicode Normalization</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_nf.html">stri_trans_nfkc</a></td>
+<td>Perform or Check For Unicode Normalization</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_nf.html">stri_trans_nfkc_casefold</a></td>
+<td>Perform or Check For Unicode Normalization</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_nf.html">stri_trans_nfkd</a></td>
+<td>Perform or Check For Unicode Normalization</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_casemap.html">stri_trans_tolower</a></td>
+<td>Transform String with Case Mapping</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_casemap.html">stri_trans_totitle</a></td>
+<td>Transform String with Case Mapping</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trans_casemap.html">stri_trans_toupper</a></td>
+<td>Transform String with Case Mapping</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trim.html">stri_trim</a></td>
+<td>Trim Characters from the Left and/or Right Side of a String</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trim.html">stri_trim_both</a></td>
+<td>Trim Characters from the Left and/or Right Side of a String</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trim.html">stri_trim_left</a></td>
+<td>Trim Characters from the Left and/or Right Side of a String</td></tr>
+<tr><td style="width: 25%;"><a href="stri_trim.html">stri_trim_right</a></td>
+<td>Trim Characters from the Left and/or Right Side of a String</td></tr>
+<tr><td style="width: 25%;"><a href="stri_unescape_unicode.html">stri_unescape_unicode</a></td>
+<td>Unescape All Escape Sequences</td></tr>
+<tr><td style="width: 25%;"><a href="stri_unique.html">stri_unique</a></td>
+<td>Extract Unique Elements</td></tr>
+<tr><td style="width: 25%;"><a href="stri_width.html">stri_width</a></td>
+<td>Determine the Width of Code Points</td></tr>
+<tr><td style="width: 25%;"><a href="stri_wrap.html">stri_wrap</a></td>
+<td>Word Wrap Text to Format Paragraphs</td></tr>
+<tr><td style="width: 25%;"><a href="stri_write_lines.html">stri_write_lines</a></td>
+<td>[DRAFT API] Write Text Lines to a Text File</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%s!=%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%s!==%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_plus.html">%s+%</a></td>
+<td>Concatenate Two Character Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%s&lt;%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%s&lt;=%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%s==%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%s===%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%s&gt;%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%s&gt;=%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%stri!=%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%stri!==%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_plus.html">%stri+%</a></td>
+<td>Concatenate Two Character Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%stri&lt;%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%stri&lt;=%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%stri==%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%stri===%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%stri&gt;%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+<tr><td style="width: 25%;"><a href="oper_comparison.html">%stri&gt;=%</a></td>
+<td>Compare Strings with or without Collation</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/AUTHORS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/AUTHORS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringi/AUTHORS	(revision 2476)
@@ -0,0 +1,45 @@
+** stringi authors and contributors **
+
+* Marek Gagolewski (gagolews at rexamine dot com) [aut,cre]
+* Bartek Tartanus [ctb]
+
+
+** ICU source code contributors **
+
+The overwhelming majority of all ICU4C code has been contributed by IBM
+employees, or by people under contract to IBM. The following lists
+the contributions from non-IBMers. Except for some minor contributions,
+these are all covered by Joint Copyright Assignment letters between
+IBM and the contributors.
+
+* Apple Computer
+* Open Forum of Cambodia, represented by Javier Sola
+* Software Ventures, Inc., represented by Scott Duchin
+* Ge'ez Frontier Foundation, represented by Daniel Yacob
+* Language Analysis Systems, Inc., represented by Richard T. Gillam
+   and Leonard A. Shaefer
+* PalmSource, Inc., represented by Vivek Magotra;
+   contribution by Ken Krugler under PalmSource contract
+* Department of Information Technology (DIT) - Royal Government of Bhutan,
+   represented by Pema Geyleg
+* Adobe Systems Incorporated, represented by Niti Hantaweepant
+* Yahoo! Inc., represented by Badi Kumar Sudhakaran and Tex Texin
+* Dominic Ludlam
+* Jonas Utterstrom
+* Yves Arrouye
+* Carl Brown
+* Robert Buck
+* Sean Hunter
+* Michael Lecuyer
+* and others
+
+for more details see:
+http://source.icu-project.org/repos/icu/icuhtml/trunk/legal/contributions/code_contributions.html
+as well as the source files in the package's src/icu55/ directory
+and http://site.icu-project.org/ for general information on the ICU project.
+
+
+** Unicode Character Database **
+
+UCD is provided and maintained by Unicode, Inc.
+See http://www.unicode.org/copyright.html
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/INDEX	(revision 2476)
@@ -0,0 +1,65 @@
+agnes			Agglomerative Nesting
+clara			Clustering Large Applications
+daisy			Dissimilarity Matrix Calculation
+diana                   DIvisive ANAlysis Clustering
+fanny			Fuzzy Analysis Clustering
+mona			MONothetic Analysis Clustering of Binary Variables
+pam			Partitioning Around Medoids
+
+dissimilarity.object	Dissimilarity Matrix Object
+partition.object	Partitioning Object
+twins.object		Hierarchical Clustering Object
+
+agnes.object		Agglomerative Nesting (AGNES) Object
+clara.object		Clustering Large Applications (CLARA) Object
+diana.object		Divisive Analysis (DIANA) Object
+fanny.object		Fuzzy Analysis (FANNY) Object
+mona.object		Monothetic Analysis (MONA) Object
+pam.object		Partitioning Around Medoids (PAM) Object
+sizeDiss		Sample Size of Dissimilarity Like Object
+
+clusplot		Cluster Plot - Generic Function
+clusplot.default	Bivariate Cluster Plot (Clusplot) Default Method
+clusplot.partition	Bivariate Clusplot of a Partitioning Object
+coef.hclust             Agglomerative Coefficient for 'hclust' Objects
+pltree			Clustering Trees - Generic Function
+pltree.twins		Clustering Tree of a Hierarchical Clustering
+
+bannerplot		Plot Banner (of Hierarchical Clustering)
+silhouette		Compute or Extract Silhouette Information from
+			Clustering
+ellipsoidhull		Compute the Ellipsoid Hull or Spanning Ellipsoid
+			of a Point Set
+predict.ellipsoid	Predict Method for Ellipsoid Objects
+volume.ellipsoid	Compute the Volume of Planar Object
+lower.to.upper.tri.inds Permute Indices for Triangular Matrices
+
+plot.agnes		Plots of an Agglomerative Hierarchical Clustering
+plot.diana		Plots of a Divisive Hierarchical Clustering
+plot.mona		Banner of Monothetic Divisive Hierarchical Clusterings
+plot.partition		Plot of a Partition of the Data Set
+print.dissimilarity	Print and Summary Methods for Dissimilarity Objects
+print.agnes		Print Method for AGNES Objects
+print.clara		Print Method for CLARA Objects
+print.diana		Print Method for DIANA Objects
+print.fanny		Print Method for FANNY Objects
+print.mona		Print Method for MONA Objects
+print.pam		Print Method for PAM Objects
+summary.agnes		Summary Method for 'agnes' Objects
+summary.clara		Summary Method for 'clara' Objects
+summary.diana		Summary Method for 'diana' Objects
+summary.fanny		Summary Method for 'fanny' Objects
+summary.mona		Summary Method for 'mona'  Objects
+summary.pam		Summary Method for PAM Objects
+cluster-internal        Internal cluster functions
+
+
+	  DATASETS
+
+agriculture		European Union Agricultural Workforces
+animals			Attributes of Animals
+flower			Flower Characteristics
+pluton                  Isotopic Composition Plutonium Batches
+ruspini			Ruspini Data
+votes.repub		Votes for Republican Candidate in Presidential Elections
+xclara			Bivariate Data Set with 3 Clusters
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/data/Rdata.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/data/Rdata.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/data/Rdata.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/data/Rdata.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/data/Rdata.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/data/Rdata.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/CITATION	(revision 2476)
@@ -0,0 +1,26 @@
+## -*- R -*-
+citHeader("To cite the R package 'cluster' in publications use:")
+
+year <- sub(".*(2[[:digit:]]{3})-.*", "\\1", meta$Date)
+vers <- paste("R package version", meta$Version)
+
+citEntry(entry	= "Manual",
+	 title	= "cluster: Cluster Analysis Basics and Extensions",
+	 author = c(
+         person("Martin", "Maechler", email="maechler@stat.math.ethz.ch",
+                role = c("aut", "cre"),
+                comment = "enhancements, speed improvements, bug fixes, since 2000"),
+         person("Peter", "Rousseeuw", email="rousse@uia.ua.ac.be", role="aut"),
+         person("Anja", "Struyf", email="Anja.Struyf@uia.ua.ac.be", role="aut"),
+         person("Mia", "Hubert", email="Mia.Hubert@uia.ua.ac.be", role="aut"),
+         person("Kurt", "Hornik", role=c("trl","ctb"), comment = "R port; and much initial help file fixing, 1998--2000")
+         ),
+	 year = year,
+	 note = paste(vers,"---",
+	 "For new features, see the 'Changelog' file (in the package source)"),
+## FIXME:  rather give the URL to the manual on CRAN ???
+##	   url = "http://stat.ethz.ch/CRAN/src/contrib/........",
+	 textVersion = paste(
+	 "Maechler, M., Rousseeuw, P., Struyf, A., Hubert, M., Hornik, K.(",
+         year, ").  cluster: Cluster Analysis Basics and Extensions. ",
+	 vers, ".", sep=""))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/NAMESPACE	(revision 2476)
@@ -0,0 +1,86 @@
+useDynLib(cluster, .registration=TRUE)
+
+## S3 Generics:
+export(clusplot, pltree, silhouette, volume)
+## Normal functions (non-generics, non-methods):
+## The original constructors:
+export(agnes, clara, daisy, diana, fanny, mona, pam)
+## and the rest
+export(bannerplot, ellipsoidhull, ellipsoidPoints,
+       clusGap, maxSE,
+       lower.to.upper.tri.inds, upper.to.lower.tri.inds,
+       meanabsdev, sizeDiss, sortSilhouette)
+
+## Methods also useful as 'standalone functions':
+export(predict.ellipsoid)
+export(coef.hclust, coefHier)
+
+importFrom("stats", as.hclust, as.dist, as.dendrogram, cmdscale,
+           coef, cov.wt, dist,
+           mahalanobis, median, na.omit,
+           princomp, runif, setNames, var, weighted.mean)
+## For now, we keep *depending* on 'stats' just so that
+## S3 methods *.hclust, *.dist etc will work
+
+importFrom("graphics", ## probably needs more:
+           arrows, axis, barplot,
+           identify, mtext,
+           par, plot, points, polygon, rect, segments, text, title)
+
+importFrom("grDevices", dev.interactive)
+
+importFrom("utils", menu, str)
+
+###---- Methods ---- all documented but not exported
+
+## of own generics
+S3method(clusplot, default)
+S3method(clusplot, partition)
+S3method(pltree, twins)
+S3method(silhouette, default)
+S3method(silhouette, clara)
+S3method(silhouette, partition)
+S3method(volume, ellipsoid)
+
+## register all the method for generics elsewhere in case namespace is
+## loaded but not currently attached.
+S3method(as.dendrogram, twins)
+S3method(coef, hclust)
+S3method(coef, twins)
+
+S3method(plot, agnes)
+S3method(plot, diana)
+S3method(plot, mona)
+S3method(plot, partition)
+S3method(plot, silhouette)
+S3method(plot, clusGap)
+
+#exported:
+S3method(predict, ellipsoid)
+
+S3method(print, agnes)
+S3method(print, clara)
+S3method(print, diana)
+S3method(print, dissimilarity)
+S3method(print, ellipsoid)
+S3method(print, fanny)
+S3method(print, mona)
+S3method(print, pam)
+S3method(print, clusGap)
+S3method(print, summary.agnes)
+S3method(print, summary.clara)
+S3method(print, summary.diana)
+S3method(print, summary.dissimilarity)
+S3method(print, summary.fanny)
+S3method(print, summary.mona)
+S3method(print, summary.pam)
+S3method(print, summary.silhouette)
+
+S3method(summary, agnes)
+S3method(summary, clara)
+S3method(summary, diana)
+S3method(summary, dissimilarity)
+S3method(summary, fanny)
+S3method(summary, mona)
+S3method(summary, pam)
+S3method(summary, silhouette)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/ko/LC_MESSAGES/R-cluster.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/ko/LC_MESSAGES/R-cluster.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/ko/LC_MESSAGES/cluster.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/ko/LC_MESSAGES/cluster.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/en@quot/LC_MESSAGES/R-cluster.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/en@quot/LC_MESSAGES/R-cluster.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/en@quot/LC_MESSAGES/cluster.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/en@quot/LC_MESSAGES/cluster.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/pl/LC_MESSAGES/R-cluster.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/pl/LC_MESSAGES/R-cluster.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/fr/LC_MESSAGES/R-cluster.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/fr/LC_MESSAGES/R-cluster.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/de/LC_MESSAGES/R-cluster.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/de/LC_MESSAGES/R-cluster.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/de/LC_MESSAGES/cluster.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/po/de/LC_MESSAGES/cluster.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/NEWS.Rd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/NEWS.Rd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/NEWS.Rd	(revision 2476)
@@ -0,0 +1,315 @@
+% Check from R:
+%  news(db = tools:::.build_news_db_from_package_NEWS_Rd("~/R/Pkgs/cluster/inst/NEWS.Rd"))!
+\name{NEWS}
+\title{News for \R Package \pkg{cluster}}% MM: look into ../svn-log-from.all
+\encoding{UTF-8}
+\newcommand{\CRANpkg}{\href{http://CRAN.R-project.org/package=#1}{\pkg{#1}}}
+%% NB: The date (yyyy-mm-dd) is the "Packaged:" date in ../DESCRIPTION
+
+\section{Changes in version 2.0.5 (2016-09-24, svn r....)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{clusGap()} gets a new option \code{scaleH0}, and
+      \code{scaleH0 = "original"} is an alternative to the default PCA
+      rotation.%% still see ../TODO-MM !
+
+      \item \code{clusGap()} now also stores its \code{call} and uses
+      that for \code{print()}ing and (by default in the \code{main} title)
+      for \code{plot()}ing \code{"clusGap"} objects.
+
+      \item
+      __ MOSTLY NOT IMPLEMENTED yet __
+
+      \code{diana()} gets new optional argument \code{stop.at.k}.
+      When a positive integer, the DIANA algorithm will stop early, as
+      much desirable for large \eqn{n}.
+
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item \code{daisy()} gets 3+1 new options \code{warn*} which allow
+      to suppress three different kind of warnings, as these are
+      undesirable in some cases.  With thanks to Kirill Müller for the
+      convincing context.
+
+      \item \code{pam()} now signals an error when there are more than
+      65536 observational units (whereas it could segfault previously),
+      thanks to a patch from Mikko Korpela, Helsinki.
+    }
+  }
+}
+
+\section{Changes in version 2.0.4 (2016-04-16, svn r7186)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{clusGap()} gets a new option \code{d.power = 1}
+      allowing to choose the basic weight statistic as it was originally
+      proposed, namely \emph{squared} distances by setting \code{d.power = 2}.
+      %% ~/R/MM/Pkg-ex/cluster/Gonzalez-on-clusGap.R <--
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item fix small glitch in silhouette's help page.
+
+      \item Finally fixed a bug (in the original Fortran code from
+      Rousseeuw!) in clara's distance computation when there are
+      \code{NA}s in the data.  As the fix is not backward compatible,
+      a warning is produced (for the time being) if there \emph{are}
+      \code{NA}s and the user does not explicitly use \code{clara(*, correct.d = TRUE)}.
+    }
+  }
+}
+
+\section{Changes in version 2.0.3 (2015-07-20, svn r6985)}{
+  \subsection{New Features}{
+    \itemize{
+      \item This new \file{NEWS.Rd} file -- going to replace \file{ChangeLog}
+      eventually.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item import all we need (but not more) from the "base" pkgs
+      (stats, graphics, ...).
+    }
+  }
+}
+
+\section{Changes in version 2.0.2 (2015-06-18, svn r6955)}{
+  \subsection{New Features}{
+    \itemize{
+      \item using new \code{anyNA()} where appropriate.
+      \item New Korean translations, thanks to Chel Hee Lee.
+      \item \code{plotpart()}: \code{cmdscale()} tweaks.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item valgrind detected missing allocation (\code{nisol["1"]} for k=1).
+      \item typo R/daisy.q (R bug %once we require R >= 3.2.0: \PR{16430}
+      \Sexpr[results=rd]{tools:::Rd_expr_PR(16430)}).
+    }
+  }
+}
+
+\section{Changes in version 2.0.1 (2015-01-31, svn r6877)}{
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item Fix \code{silhouette( obj )} for \code{obj <- pam(x, k = 1)}.
+    }
+  }
+}
+
+\section{Changes in version 2.0.0 (2015-01-29, svn r6874)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{pam()} now using \code{.Call()} instead of
+      \code{.C()} is potentially considerably more efficient.
+      \item \code{agnes()} has improved \code{trace} behaviour; also,
+      some invalid \code{par.method = *} settings now give an early and
+      understandable error message.
+      \item \code{lower.to.upper.tri.inds()} (etc) now returns \code{integer}.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item \code{.C(..)} and \code{.Fortran(..)}: no longer using
+      \code{DUP=FALSE} as that has become deprecated.
+    }
+  }
+}
+
+\section{Changes in version 1.15.3 (2014-09-04, svn r6804)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{agnes()} and \code{diana()} finally get, respectively
+      work with a \code{trace.lev} option.
+      \item \code{plot.(agnes|diana)()} now deals well with long
+      \code{call}s, by using multiple title lines.
+      \item Message translations now also for C level error messages.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item \code{agnes(*, method="flexible", par.method = c(a1, a2, b, c))},
+      i.e., \code{length(alpha) == 4}, finally works \emph{correctly}.
+    }
+  }
+}
+
+\section{Changes in version 1.15.2 (2014-03-31, svn r6724)}{
+  \subsection{New Features}{
+    \itemize{
+      \item Rewrote parts of the R level messages so they are more
+      easily translatable, thanks to proposals by Lukasz Daniel.
+      \item French translations from Philippe Grosjean.
+    }
+  }
+}
+
+\section{Changes in version 1.15.1 (2014-03-13, svn r6676)}{
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item \code{mona} example not working in \R < 3.0.x.
+    }
+  }
+}
+
+\section{Changes in version 1.15.0 (2014-03-11, svn r6672)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{agnes(*, method = "gaverage")} contributed by Pierre
+      Roudier.
+      \item documentation improvements;
+      \item better translatable messages and translation updates.
+    }
+  }
+}
+
+
+%% ============================== FIXME ===========================
+%%        ~~~~~~~~~
+%% use ../ChangeLog
+%%        ~~~~~~~~~
+%% and then
+%%
+%% use ../svn-log-from.all
+%%        ~~~~~~~~~~~~~~~~
+%% and ../../cluster_Archive.lst  {~= CRAN  src/contrib/Archive/cluster/ :
+%%
+\section{Changes in version 1.14.4 (2013-03-26, svn r....)}{
+  \subsection{New Features}{
+    \itemize{
+      \item -
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item -
+    }
+  }
+}
+
+\section{Changes in version 1.14.3 (2012-10-14, svn r....)}{
+  \subsection{New Features}{
+    \itemize{
+      \item Polnish translations from Lukasz Daniel.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item -
+    }
+  }
+}
+
+
+\section{Changes in version 1.14.2 (2012-02-06, svn r....)}{
+  \subsection{New Features}{
+    \itemize{
+      \item New \code{clusGap()} to compute the \dQuote{cluster Gap}
+      goodness-of-fit statistic.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item -
+    }
+  }
+}
+
+\section{Changes in version 1.14.1 (2011-10-16, svn r....)}{
+  \subsection{New Features}{
+    \itemize{
+      \item First translations (into German, thanks to Detlef Steuer).
+      \item better \code{citation("cluster")}
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item \code{plot.silhouette(..., col = <one per cluster>)} had
+      ordering bug.
+    }
+  }
+}
+
+
+%%  253036  Mar 26  2013   cluster_1.14.4.tar.gz
+%%  259743  Oct 14  2012   cluster_1.14.3.tar.gz
+%%  250936  Feb  8  2012   cluster_1.14.2.tar.gz
+%%  246438  Oct 17  2011   cluster_1.14.1.tar.gz
+%%  226332  Jun  8  2011   cluster_1.14.0.tar.gz
+%%  214765  Feb 21  2011   cluster_1.13.3.tar.gz
+%%  213663  Nov 10  2010   cluster_1.13.2.tar.gz
+%%  214083  Jun 25  2010   cluster_1.13.1.tar.gz
+%%  214677  Apr  2  2010   cluster_1.12.3.tar.gz
+%%  214577  Oct  6  2009   cluster_1.12.1.tar.gz
+%%  215041  May 13  2009   cluster_1.12.0.tar.gz
+
+%% ============================== FIXME ===========================
+
+
+
+%% \section{Version 0.2-4}{
+%% \subsection{..., 0.3-1, 0.3-n (n=3,5,...,26): 22 more CRAN releases}{
+%%   \itemize{ \item ............................................. } }}
+
+% How can I add vertical space ?
+% \preformatted{} is not allowed, nor is \cr
+
+
+\section{Version 1.2-0 (1999-04-11)}{
+  \subsection{First CRAN release of the \pkg{cluster} package, by Kurt Hornik}{
+    \itemize{
+      \item Martin Maechler had its own version independently.
+      \item Both closely modeled after \code{clus} the tarball off JSS.
+  }}
+
+  \subsection{R Functions -- Fortran Files}{
+    \itemize{
+      \item \code{agnes()} -- \file{twins.f} for the \dQuote{twins} \code{agnes} and \code{diana}.
+      \item \code{clara()} -- \code{clara.f}
+      \item \code{daisy()} -- \file{daisy.f} (and \file{meet.f})
+      \item \code{diana()} -- (twins.f)
+      \item \code{fanny()} -- \file{fanny.f}
+      \item \code{mona()}  -- \file{mona.f}
+      \item \code{pam()}   -- \file{pam.f}
+    }
+  }
+  \subsection{Data Sets}{
+    \itemize{
+      \item agriculture
+      \item animals
+      \item flower
+      \item ruspini
+      \item votes.repub
+    }
+  }
+
+  \subsection{Further Features}{
+    \itemize{
+      \item all Examples in \file{man/*.Rd} hand edited to become
+      executable.
+      \item \code{summary()}, \code{print()} (and
+    \code{print.summary.**()} methods) for the six basic \R functions above.
+    }
+  }
+}
+
+
+
+\section{Version 1.1-2 (1998-06-16)}{
+  \subsection{Renamed previous \pkg{clus} to \pkg{cluster}}{
+    \itemize{ \item . }
+  }
+}
+\section{Version 1.1-1 (1998-06-15)}{
+  \subsection{New Features}{
+    \itemize{
+      \item started \file{ChangeLog}
+    }
+  }
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/cluster/DESCRIPTION	(revision 2476)
@@ -0,0 +1,43 @@
+Package: cluster
+Version: 2.0.5
+Date: 2016-09-16
+Priority: recommended
+Title: "Finding Groups in Data": Cluster Analysis Extended Rousseeuw et
+        al.
+Description: Methods for Cluster analysis.  Much extended the original from
+	Peter Rousseeuw, Anja Struyf and Mia Hubert,
+	based on Kaufman and Rousseeuw (1990) "Finding Groups in Data".
+Maintainer: Martin Maechler <maechler@stat.math.ethz.ch>
+Authors@R: c(person("Martin","Maechler", role=c("aut","cre"), email="maechler@stat.math.ethz.ch")
+ ,person("Peter", "Rousseeuw", role="aut", email="rousse@uia.ua.ac.be",
+         comment = "Fortran original")
+ ,person("Anja", "Struyf", role="aut", comment= "S original")
+ ,person("Mia", "Hubert", role="aut", email= "Mia.Hubert@uia.ua.ac.be", comment= "S original")
+ ,person("Kurt", "Hornik", role=c("trl", "ctb"),
+ 	email="Kurt.Hornik@R-project.org", comment="port to R; maintenance(1999-2000)")
+ ,person("Matthias", "Studer", role="ctb")
+ ,person("Pierre",  "Roudier", role="ctb")
+ ,person("Juan",   "Gonzalez", role="ctb")
+ )
+Depends: R (>= 3.0.1)
+Imports: graphics, grDevices, stats, utils
+Suggests: MASS
+SuggestsNote: two small examples using MASS' cov.rob() and mvrnorm()
+LazyLoad: yes
+LazyData: yes
+ByteCompile: yes
+BuildResaveData: no
+License: GPL (>= 2)
+NeedsCompilation: yes
+Packaged: 2016-10-07 09:47:50 UTC; maechler
+Author: Martin Maechler [aut, cre],
+  Peter Rousseeuw [aut] (Fortran original),
+  Anja Struyf [aut] (S original),
+  Mia Hubert [aut] (S original),
+  Kurt Hornik [trl, ctb] (port to R; maintenance(1999-2000)),
+  Matthias Studer [ctb],
+  Pierre Roudier [ctb],
+  Juan Gonzalez [ctb]
+Repository: CRAN
+Date/Publication: 2016-10-08 08:19:31
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:34:07 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/R/tcltk.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/R/tcltk.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/R/tcltk
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/R/tcltk	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/R/tcltk	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/R/tcltk.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/R/tcltk.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/DESCRIPTION	(revision 2476)
@@ -0,0 +1,11 @@
+Package: tcltk
+Version: 3.3.2
+Priority: base
+Title: Tcl/Tk Interface
+Author: R Core Team
+Maintainer: R Core Team <R-core@r-project.org>
+Description: Interface and language bindings to Tcl/Tk GUI elements.
+License: Part of R 3.3.2
+Imports: utils
+NeedsCompilation: yes
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:33:27 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/demo/tkcanvas.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/demo/tkcanvas.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/demo/tkcanvas.R	(revision 2476)
@@ -0,0 +1,151 @@
+###
+### This demonstration script creates a canvas widget showing a 2-D
+### plot with data points that can be dragged with the mouse.
+###
+### It is a ripoff of the plot.tcl demo from the tk 8.0 distribution
+### All I did was to add the code to plot the fitted regression line.
+
+#  Copyright (C) 2000-2008 The R Core Team
+
+require(tcltk) || stop("tcl/tk library not available")
+require(graphics); require(stats)
+local({
+    have_ttk <- as.character(tcl("info", "tclversion")) >= "8.5"
+    if(have_ttk) {
+        tkbutton <- ttkbutton
+        tkframe <- ttkframe
+        tklabel <- ttklabel
+    }
+    tclServiceMode(FALSE) # don't display until complete
+    top <- tktoplevel()
+    tktitle(top) <- "Plot Demonstration"
+
+    msg <- tklabel(top,
+                   font="helvetica",
+                   wraplength="4i",
+                   justify="left",
+                   text="This window displays a canvas widget containing a simple 2-dimensional plot.  You can doctor the data by dragging any of the points with mouse button 1.")
+
+    tkpack(msg, side="top")
+
+    buttons <- tkframe(top)
+    tkpack(buttons, side="bottom", fill="x", pady="2m")
+    dismiss <- tkbutton(buttons, text="Dismiss",
+                        command=function()tkdestroy(top))
+    tkpack(dismiss, side="left", expand=TRUE)
+
+    canvas <- tkcanvas(top, relief="raised", width=450, height=300)
+    tkpack(canvas, side="top", fill="x")
+
+    plotFont <- "Helvetica 18"
+
+    tkcreate(canvas, "line", 100, 250, 400, 250, width=2)
+    tkcreate(canvas, "line", 100, 250, 100, 50, width=2)
+    tkcreate(canvas, "text", 225, 20, text="A Simple Plot",
+             font=plotFont, fill="brown")
+
+    # X tickmarks & labels
+    for (i in 0:10) {
+        x <- 100 + i * 30
+        tkcreate(canvas, "line", x, 250, x, 245, width=2)
+        tkcreate(canvas, "text", x, 254,
+                 text=10*i, anchor="n", font=plotFont)
+    }
+    # Y tickmarks & labels
+    for (i in 0:5) {
+        y <- 250 - i * 40
+        tkcreate(canvas, "line", 100, y, 105, y, width=2)
+        tkcreate(canvas, "text", 96, y,
+                 text=formatC(50*i,format="f",digits=1),
+                 anchor="e", font=plotFont)
+    }
+
+    # The (original) data
+    points <- matrix(c(12, 56,
+                       20, 94,
+                       33, 98,
+                       32, 120,
+                       61, 180,
+                       75, 160,
+                       98, 223), ncol=2, byrow=TRUE)
+
+    ## `self-drawing' point object
+    point.items <- apply(points, 1, function(row) {
+        x <- 100 + 3 * row[1]
+        y <- 250 - 4/5 * row[2]
+        item <- tkcreate(canvas, "oval", x - 6, y - 6, x + 6, y + 6,
+                         width=1, outline="black",
+                         fill="SkyBlue2")
+        tkaddtag(canvas, "point", "withtag", item)
+        item
+    })
+
+    plotDown <- function(x, y) {
+      ## This procedure is invoked when the mouse is pressed over one
+      ## of the data points.  It sets up state to allow the point
+      ## to be dragged.
+      ##
+      ## Arguments:
+      ## x, y -	The coordinates of the mouse press.
+      x <- as.numeric(x)
+      y <- as.numeric(y)
+      tkdtag(canvas, "selected")
+      tkaddtag(canvas, "selected", "withtag", "current")
+      tkitemraise(canvas,"current")
+      lastX <<- x
+      lastY <<- y
+    }
+
+    plotMove <- function(x, y) {
+        ## This procedure is invoked during mouse motion events.
+        ## It drags the current item.
+        ##
+        ## Arguments:
+        ## x, y -	The coordinates of the mouse.
+        x <- as.numeric(x)
+        y <- as.numeric(y)
+        tkmove(canvas, "selected", x - lastX, y - lastY)
+        lastX <<- x
+        lastY <<- y
+    }
+### FIXME : Don't allow points to be moved outside the canvas !!
+
+    plotLine <- function(){
+        coords <- lapply(point.items,
+                         function(item)
+                         as.double(tkcoords(canvas,item)))
+        x <- sapply(coords, function(z) (z[1]+z[3])/2)
+        y <- sapply(coords, function(z) (z[2]+z[4])/2)
+        lm.out <- lm(y~x)
+        x0 <- range(x)
+        y0 <- predict(lm.out, data.frame(x=x0))
+        tkcreate(canvas, "line", x0[1], y0[1], x0[2], y0[2], width=3)
+    }
+
+    line <- plotLine()
+
+    lastX <- 0
+    lastY <- 0
+
+    tkitembind(canvas, "point", "<Any-Enter>",
+               function() tkitemconfigure(canvas, "current",
+                                          fill="red"))
+    tkitembind(canvas, "point", "<Any-Leave>",
+               function() tkitemconfigure(canvas, "current",
+                                          fill="SkyBlue2"))
+    tkitembind(canvas, "point", "<1>", plotDown)
+    tkitembind(canvas, "point", "<ButtonRelease-1>",
+               function(x){
+                   tkdtag(canvas, "selected")
+                   tkdelete(canvas, "withtag", line)
+                   line <<- plotLine()
+               })
+    tkbind(canvas, "<B1-Motion>", plotMove)
+    tclServiceMode(TRUE)
+
+    cat("******************************************************\n",
+        "The source for this demo can be found in the file:\n",
+        file.path(system.file(package = "tcltk"), "demo", "tkcanvas.R"),
+        "\n******************************************************\n")
+
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/demo/tkdensity.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/demo/tkdensity.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/demo/tkdensity.R	(revision 2476)
@@ -0,0 +1,104 @@
+### Interactive density plots. Based on Tcl version by Guido Masarotto
+
+#  Copyright (C) 2000-2009 The R Core Team
+
+require(tcltk) || stop("tcltk support is absent")
+require(graphics); require(stats)
+local({
+    have_ttk <- as.character(tcl("info", "tclversion")) >= "8.5"
+    if(have_ttk) {
+        tkbutton <- ttkbutton
+        tkframe <- ttkframe
+        tklabel <- ttklabel
+        tkradiobutton <- ttkradiobutton
+    }
+
+    y <- NULL
+    xlim <- NULL
+    size  <- tclVar(50)
+    dist  <- tclVar(1)
+    kernel<- tclVar("gaussian")
+    bw    <- tclVar(1)
+    bw.sav <- 1 # in case replot.maybe is called too early
+
+    replot <- function(...) {
+        if (is.null(y)) return() # too early...
+        bw.sav <<- b <- as.numeric(tclObj(bw))
+        k <- as.character(tclObj(kernel))
+        sz <- as.numeric(tclObj(size))
+        eval(substitute(plot(density(y, bw=b, kernel=k),xlim=xlim)))
+        points(y,rep(0,sz))
+    }
+
+    replot.maybe <- function(...)
+    {
+        if (as.numeric(tclObj(bw)) != bw.sav) replot()
+    }
+
+    regen <- function(...) {
+        if (tclvalue(dist)=="1") y<<-rnorm(as.numeric(tclObj(size)))
+        else y<<-rexp(as.numeric(tclObj(size)))
+        xlim <<- range(y) + c(-2,2)
+        replot()
+    }
+
+    grDevices::devAskNewPage(FALSE) # override setting in demo()
+    tclServiceMode(FALSE)
+    base <- tktoplevel()
+    tkwm.title(base, "Density")
+
+    spec.frm <- tkframe(base,borderwidth=2)
+    left.frm <- tkframe(spec.frm)
+    right.frm <- tkframe(spec.frm)
+
+    ## Two left frames:
+    frame1 <- tkframe(left.frm, relief="groove", borderwidth=2)
+    tkpack(tklabel(frame1, text="Distribution"))
+    tkpack(tkradiobutton(frame1, command=regen, text="Normal",
+                         value=1, variable=dist), anchor="w")
+    tkpack(tkradiobutton(frame1, command=regen, text="Exponential",
+                         value=2, variable=dist), anchor="w")
+
+    frame2 <- tkframe(left.frm, relief="groove", borderwidth=2)
+    tkpack(tklabel(frame2, text="Kernel"))
+    for ( i in c("gaussian", "epanechnikov", "rectangular",
+                 "triangular", "cosine") ) {
+        tmp <- tkradiobutton(frame2, command=replot,
+                             text=i, value=i, variable=kernel)
+        tkpack(tmp, anchor="w")
+    }
+
+    ## Two right frames:
+    frame3 <-tkframe(right.frm, relief="groove", borderwidth=2)
+    tkpack(tklabel(frame3, text="Sample size"))
+    for ( i in c(50,100,200,300) ) {
+        tmp <- tkradiobutton(frame3, command=regen,
+                             text=i,value=i,variable=size)
+        tkpack(tmp, anchor="w")
+
+    }
+
+    frame4 <-tkframe(right.frm, relief="groove", borderwidth=2)
+    tkpack(tklabel (frame4, text="Bandwidth"))
+    tkpack(tkscale(frame4, command=replot.maybe, from=0.05, to=2.00,
+                   showvalue=FALSE, variable=bw,
+                   resolution=0.05, orient="horiz"))
+
+    tkpack(frame1, frame2, fill="x")
+    tkpack(frame3, frame4, fill="x")
+    tkpack(left.frm, right.frm,side="left", anchor="n")
+
+    ## `Bottom frame' (on base):
+    q.but <- tkbutton(base,text="Quit",
+                      command=function() tkdestroy(base))
+
+    tkpack(spec.frm, q.but)
+    tclServiceMode(TRUE)
+
+    cat("******************************************************\n",
+        "The source for this demo can be found in the file:\n",
+        file.path(system.file(package = "tcltk"), "demo", "tkdensity.R"),
+        "\n******************************************************\n")
+
+    regen()
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/demo/tkttest.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/demo/tkttest.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/demo/tkttest.R	(revision 2476)
@@ -0,0 +1,89 @@
+#  Copyright (C) 2000-2008 The R Core Team
+
+require(tcltk) || stop("tcltk support is absent")
+require(stats)
+
+local({
+    have_ttk <- as.character(tcl("info", "tclversion")) >= "8.5"
+    if(have_ttk) {
+        tkbutton <- ttkbutton
+        tkcheckbutton <- ttkcheckbutton
+        tkentry <- ttkentry
+        tkframe <- ttkframe
+        tklabel <- ttklabel
+        tkradiobutton <- ttkradiobutton
+    }
+    dialog.t.test <- function(){
+        tt <- tktoplevel()
+        tkwm.title(tt,"t test")
+        x.entry <- tkentry(tt, textvariable=xvar)
+        y.entry <- tkentry(tt, textvariable=yvar)
+	alt <- tclVar("two.sided")
+	done <- tclVar(0)
+	eqvar <- tclVar(0)
+
+        reset <- function()
+        {
+            tclvalue(xvar)<-""
+            tclvalue(yvar)<-""
+            tclvalue(alt)<-"two.sided"
+            tclvalue(eqvar)<-"0"
+        }
+        reset.but <- tkbutton(tt, text="Reset", command=reset)
+        submit.but <- tkbutton(tt, text="submit",
+                               command=function()tclvalue(done)<-1)
+
+        build <- function()
+        {
+            ## notice that tclvalue() is correct here, since it is the
+            ## string representation of xvar and yvar that is being
+            ## displayed in the entry fields
+
+            x  <- parse(text=tclvalue(xvar))[[1]]
+            y  <- parse(text=tclvalue(yvar))[[1]]
+            a <- tclvalue(alt)
+            vv <- as.logical(tclObj(eqvar))
+            substitute(t.test(x,y,alternative=a,var.equal=vv))
+        }
+        var.cbut <- tkcheckbutton(tt, text="Equal variance", variable=eqvar)
+        alt.rbuts <- tkframe(tt)
+
+        tkpack(tklabel(alt.rbuts, text="Alternative"))
+        for ( i in c("two.sided", "less", "greater")){
+            tmp <- tkradiobutton(alt.rbuts, text=i, variable=alt, value=i)
+            tkpack(tmp,anchor="w")
+        }
+
+        tkgrid(tklabel(tt,text="t-test"),columnspan=2)
+        tkgrid(tklabel(tt,text="x variable"), x.entry)
+        tkgrid(tklabel(tt,text="y variable"), y.entry)
+        tkgrid(var.cbut, alt.rbuts)
+        tkgrid(submit.but, reset.but)
+
+        if (tclvalue(alt)=="") tclvalue(alt)<-"two.sided"
+
+        ## capture destroy (e.g. from window controls
+        ## otherwise the tkwait hangs with nowhere to go
+        tkbind(tt, "<Destroy>", function()tclvalue(done)<-2)
+
+        tkwait.variable(done)
+
+        if(tclvalue(done)=="2") stop("aborted")
+
+        tkdestroy(tt)
+        cmd <- build()
+        cat("### Command executed via Tk ###\n")
+        cat(deparse(build()),sep="\n")
+        cat("### -----\n")
+        eval.parent(cmd)
+    }
+
+    cat("******************************************************\n",
+        "The source for this demo can be found in the file:\n",
+        file.path(system.file(package = "tcltk"), "demo", "tkttest.R"),
+        "\n******************************************************\n")
+
+    xvar <- tclVar("Ozone[Month==5]")
+    yvar <- tclVar("Ozone[Month==8]")
+    with(airquality, dialog.t.test())
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/demo/tkfaq.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/demo/tkfaq.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/demo/tkfaq.R	(revision 2476)
@@ -0,0 +1,32 @@
+#  Copyright (C) 2000-2008 The R Core Team
+
+require(tcltk) || stop("tcltk support is absent")
+local({
+    have_ttk <- as.character(tcl("info", "tclversion")) >= "8.5"
+
+    tt <- tktoplevel()
+    tkwm.title(tt, "R FAQ")
+#    Gave tiny font on some systems
+#    txt <- tktext(tt, bg="white", font="courier")
+    txt <- tktext(tt, bg="white")
+    scr <- if(have_ttk) ttkscrollbar(tt, command=function(...)tkyview(txt,...))
+    else tkscrollbar(tt, repeatinterval=5,
+                     command=function(...)tkyview(txt,...))
+    ## Safest to make sure scr exists before setting yscrollcommand
+    tkconfigure(txt, yscrollcommand=function(...)tkset(scr,...))
+    tkpack(txt, side="left", fill="both", expand=TRUE)
+    tkpack(scr, side="right", fill="y")
+
+    chn <- tclopen(file.path(R.home("doc"), "FAQ"))
+    tkinsert(txt, "end", tclread(chn))
+    tclclose(chn)
+
+    tkconfigure(txt, state="disabled")
+    tkmark.set(txt,"insert","0.0")
+    tkfocus(txt)
+
+    cat("******************************************************\n",
+        "The source for this demo can be found in the file:\n",
+        file.path(system.file(package = "tcltk"), "demo", "tkfaq.R"),
+        "\n******************************************************\n")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util.tcl
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util.tcl	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util.tcl	(revision 2476)
@@ -0,0 +1,895 @@
+# util.tcl --
+#
+#	This file implements package ::Utility, which  ...
+#
+# Copyright (c) 1997-8 Jeffrey Hobbs
+#
+# See the file "license.terms" for information on usage and
+# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+
+## The provide goes first to prevent the recursive provide/require
+## loop for subpackages
+package provide ::Utility 1.0
+
+## This assumes that all util-*.tcl files are in the same directory
+if {[lsearch -exact $auto_path [file dirname [info script]]]==-1} {
+    lappend auto_path [file dirname [info script]]
+}
+
+namespace eval ::Utility {;
+
+## Protos
+namespace export -clear *
+
+proc get_opts args {}
+proc get_opts2 args {}
+proc lremove args {}
+proc lrandomize args {}
+proc lunique args {}
+proc luniqueo args {}
+proc line_append args {}
+proc highlight args {}
+proc echo args {}
+proc alias args {}
+proc which args {}
+proc ls args {}
+proc dir args {}
+proc fit_format args {}
+proc validate args {}
+proc allow_null_elements args {}
+proc deny_null_elements args {}
+
+}; # end of ::Utility namespace prototype headers
+
+package require ::Utility::number
+package require ::Utility::string
+package require ::Utility::dump
+package require ::Utility::expand
+package require ::Utility::tk
+
+namespace eval ::Utility {;
+
+foreach namesp [namespace children [namespace current]] {
+    namespace import -force ${namesp}::*
+}
+
+# psource --
+#
+#   ADD COMMENTS HERE
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+;proc psource {file namesp {import *}} {
+    uplevel \#0 [subst {
+	source $file
+	namespace import -force ${namesp}::$import
+    }
+    ]
+}
+
+# get_opts --
+#
+#   Processes -* named options, with or w/o possible associated value
+#   and returns remaining args
+#
+# Arguments:
+#   var		variable into which option values should be stored
+#   arglist	argument list to parse
+#   optlist	list of valid options with default value
+#   typelist	optional list of option types that can be used to
+#		validate incoming options
+#   nocomplain	whether to complain about unknown -switches (0 - default)
+#		or not (1)
+# Results:
+#   Returns unprocessed arguments.
+#
+;proc get_opts {var arglist optlist {typelist {}} {nocomplain 0}} {
+    upvar 1 $var data
+
+    if {![llength $optlist] || ![llength $arglist]} { return $arglist }
+    array set opts $optlist
+    array set types $typelist
+    set i 0
+    while {[llength $arglist]} {
+	set key [lindex $arglist $i]
+	if {[string match -- $key]} {
+	    set arglist [lreplace $arglist $i $i]
+	    break
+	} elseif {![string match -* $key]} {
+	    break
+	} elseif {[string match {} [set akey [array names opts $key]]]} {
+	    set akey [array names opts ${key}*]
+	}
+	switch [llength $akey] {
+	    0		{ ## oops, no keys matched
+		if {$nocomplain} {
+		    incr i
+		} else {
+		    return -code error "unknown switch '$key', must be:\
+			    [join [array names opts] {, }]"
+		}
+	    }
+	    1		{ ## Perfect, found just the right key
+		if {$opts($akey)} {
+		    set val [lrange $arglist [expr {$i+1}] \
+			    [expr {$i+$opts($akey)}]]
+		    set arglist [lreplace $arglist $i [expr {$i+$opts($akey)}]]
+		    if {[info exists types($akey)] && \
+			    ([string compare none $types($akey)] && \
+			    ![validate $types($akey) $val])} {
+			return -code error "the value for \"$akey\" is not in\
+				proper $types($akey) format"
+		    }
+		    set data($akey) $val
+		} else {
+		    set arglist [lreplace $arglist $i [expr {$i+$opts($akey)}]]
+		    set data($akey) 1
+		}
+	    }
+	    default	{ ## Oops, matches too many possible keys
+		return -code error "ambiguous option \"$key\",\
+			must be one of: [join $akey {, }]"
+	    }
+	}
+    }
+    return $arglist
+}
+
+# get_opts2 --
+#
+#   Process options into an array.  -- short-circuits the processing
+#
+# Arguments:
+#   var		variable into which option values should be stored
+#   arglist	argument list to parse
+#   optlist	list of valid options with default value
+#   typelist	optional list of option types that can be used to
+#		validate incoming options
+# Results:
+#   Returns unprocessed arguments.
+#
+;proc get_opts2 {var arglist optlist {typelist {}}} {
+    upvar 1 $var data
+
+    if {![llength $optlist] || ![llength $arglist]} { return $arglist }
+    array set data $optlist
+    array set types $typelist
+    foreach {key val} $arglist {
+	if {[string match -- $key]} {
+	    set arglist [lreplace $arglist 0 0]
+	    break
+	}
+	if {[string match {} [set akey [array names data $key]]]} {
+	    set akey [array names data ${key}*]
+	}
+	switch [llength $akey] {
+	    0		{ ## oops, no keys matched
+		return -code error "unknown switch '$key', must be:\
+			[join [array names data] {, }]"
+	    }
+	    1		{ ## Perfect, found just the right key
+		if {[info exists types($akey)] && \
+			![validate $types($akey) $val]} {
+		    return -code error "the value for \"$akey\" is not in\
+			    proper $types($akey) format"
+		}
+		set data($akey) $val
+	    }
+	    default	{ ## Oops, matches too many possible keys
+		return -code error "ambiguous option \"$key\",\
+			must be one of: [join $akey {, }]"
+	    }
+	}
+	set arglist [lreplace $arglist 0 1]
+    }
+    return $arglist
+}
+
+# lremove --
+#   remove items from a list
+# Arguments:
+#   ?-all?	remove all instances of said item
+#   list	list to remove items from
+#   args	items to remove
+# Returns:
+#   The list with items removed
+#
+;proc lremove {args} {
+    set all 0
+    if {[string match \-a* [lindex $args 0]]} {
+	set all 1
+	set args [lreplace $args 0 0]
+    }
+    set l [lindex $args 0]
+    foreach i [join [lreplace $args 0 0]] {
+	if {[set ix [lsearch -exact $l $i]] == -1} continue
+	set l [lreplace $l $ix $ix]
+	if {$all} {
+	    while {[set ix [lsearch -exact $l $i]] != -1} {
+		set l [lreplace $l $ix $ix]
+	    }
+	}
+    }
+    return $l
+}
+
+# lrandomize --
+#   randomizes a list
+# Arguments:
+#   ls		list to randomize
+# Returns:
+#   returns list in with randomized items
+#
+;proc lrandomize ls {
+    set res {}
+    while {[string compare $ls {}]} {
+	set i [randrng [llength $ls]]
+	lappend res [lindex $ls $i]
+	set ls [lreplace $ls $i $i]
+    }
+    return $res
+}
+
+# lunique --
+#   order independent list unique proc, not most efficient.
+# Arguments:
+#   ls		list of items to make unique
+# Returns:
+#   list of only unique items, order not defined
+#
+;proc lunique ls {
+    foreach l $ls {set ($l) x}
+    return [array names {}]
+}
+
+# lunique --
+#   order independent list unique proc.  most efficient, but requires
+#   __LIST never be an element of the input list
+# Arguments:
+#   __LIST	list of items to make unique
+# Returns:
+#   list of only unique items, order not defined
+#
+;proc lunique __LIST {
+    if {[llength $__LIST]} {
+	foreach $__LIST $__LIST break
+	unset __LIST
+	return [info locals]
+    }
+}
+
+# luniqueo --
+#   order dependent list unique proc
+# Arguments:
+#   ls		list of items to make unique
+# Returns:
+#   list of only unique items in same order as input
+#
+;proc luniqueo ls {
+    set rs {}
+    foreach l $ls {
+	if {[info exist ($l)]} { continue }
+	lappend rs $l
+	set ($l) 0
+    }
+    return $rs
+}
+
+# flist --
+#
+#   list open files and sockets
+#
+# Arguments:
+#   pattern	restrictive regexp pattern for numbers
+#   manum	max socket/file number to search until
+# Results:
+#   Returns ...
+#
+;proc flist {{pattern .*} {maxnum 1025}} {
+    set result {}
+    for {set i 1} {$i <= $maxnum} {incr i} {
+	if {![regexp $pattern $i]} { continue }
+        if {![catch {fconfigure file$i} conf]} {
+            lappend result [list file$i $conf]
+        }
+        if {![catch {fconfigure sock$i} conf]} {
+            array set c {-peername {} -sockname {}}
+            array set c $conf
+            lappend result [list sock$i $c(-peername) $c(-sockname)]
+        }
+    }
+    return $result
+}
+
+
+# highlight --
+#
+#    searches in text widget for $str and highlights it
+#    If $str is empty, it just deletes any highlighting
+#    This really belongs in ::Utility::tk
+#
+# Arguments:
+#   w			text widget
+#   str			string to search for
+#   -nocase		specifies to be case insensitive
+#   -regexp		specifies that $str is a pattern
+#   -tag   tagId	name of tag in text widget
+#   -color color	color of tag in text widget
+# Results:
+#   Returns ...
+#
+;proc highlight {w str args} {
+    $w tag remove __highlight 1.0 end
+    array set opts {
+	-nocase	0
+	-regexp	0
+	-tag	__highlight
+	-color	yellow
+    }
+    set args [get_opts opts $args {-nocase 0 -regexp 0 -tag 1 -color 1}]
+    if {[string match {} $str]} return
+    set pass {}
+    if {$opts(-nocase)} { append pass "-nocase " }
+    if {$opts(-regexp)} { append pass "-regexp " }
+    $w tag configure $opts(-tag) -background $opts(-color)
+    $w mark set $opts(-tag) 1.0
+    while {[string compare {} [set ix [eval $w search $pass -count numc -- \
+	    [list $str] $opts(-tag) end]]]} {
+	$w tag add $opts(-tag) $ix ${ix}+${numc}c
+	$w mark set $opts(-tag) ${ix}+1c
+    }
+    catch {$w see $opts(-tag).first}
+    return [expr {[llength [$w tag ranges $opts(-tag)]]/2}]
+}
+
+
+# best_match --
+#   finds the best unique match in a list of names
+#   The extra $e in this argument allows us to limit the innermost loop a
+#   little further.
+# Arguments:
+#   l		list to find best unique match in
+#   e		currently best known unique match
+# Returns:
+#   longest unique match in the list
+#
+;proc best_match {l {e {}}} {
+    set ec [lindex $l 0]
+    if {[llength $l]>1} {
+	set e  [string length $e]; incr e -1
+	set ei [string length $ec]; incr ei -1
+	foreach l $l {
+	    while {$ei>=$e && [string first $ec $l]} {
+		set ec [string range $ec 0 [incr ei -1]]
+	    }
+	}
+    }
+    return $ec
+}
+
+# getrandfile --
+#
+#   returns a random line from a file
+#
+# Arguments:
+#   file	filename to get line from
+# Results:
+#   Returns a line as a string
+#
+;proc getrandfile {file} {
+    set fid [open $file]
+    set data [split [read $fid] \n]
+    close $fid
+    return [lindex $data [randrng [llength $data]]]
+}
+
+# randrng --
+#   gets random number within input range
+# Arguments:
+#   rng		range to limit output to
+# Returns:
+#   returns random number within range 0..$rng
+;proc randrng {rng} {
+    return [expr {int($rng * rand())}]
+}
+
+# grep --
+#   cheap grep routine
+# Arguments:
+#   exp		regular expression to look for
+#   args	files to search in
+# Returns:
+#   list of lines that in files that matched $exp
+#
+;proc grep {exp args} {
+    if 0 {
+	## To be implemented
+	-count -nocase -number -names -reverse -exact
+    }
+    if {[string match {} $args]} return
+    set output {}
+    foreach file [eval glob $args] {
+	set fid [open $file]
+	foreach line [split [read $fid] \n] {
+	    if {[regexp $exp $line]} { lappend output $line }
+	}
+	close $fid
+    }
+    return $output
+}
+
+# line_append --
+#   appends a string to the end of every line of data from a file
+# Arguments:
+#   file	file to get data from
+#   stuff	stuff to append to each line
+# Returns:
+#   file data with stuff appended to each line
+#
+;proc line_append {file stuff} {
+    set fid [open $file]
+    set data [read $fid]
+    catch {close $fid}
+    return [join [split $data \n] $stuff\n]
+}
+
+
+# alias --
+#   akin to the csh alias command
+# Arguments:
+#   newcmd	(optional) command to bind alias to
+#   args	command and args being aliased
+# Returns:
+#   If called with no args, then it dumps out all current aliases
+#   If called with one arg, returns the alias of that arg (or {} if none)
+#
+;proc alias {{newcmd {}} args} {
+    if {[string match {} $newcmd]} {
+	set res {}
+	foreach a [interp aliases] {
+	    lappend res [list $a -> [interp alias {} $a]]
+	}
+	return [join $res \n]
+    } elseif {[string match {} $args]} {
+	interp alias {} $newcmd
+    } else {
+	eval interp alias [list {} $newcmd {}] $args
+    }
+}
+
+# echo --
+#   Relaxes the one string restriction of 'puts'
+# Arguments:
+#   args	any number of strings to output to stdout
+# Returns:
+#   Outputs all input to stdout
+#
+;proc echo args { puts [concat $args] }
+
+# which --
+#   tells you where a command is found
+# Arguments:
+#   cmd		command name
+# Returns:
+#   where command is found (internal / external / unknown)
+#
+;proc which cmd {
+    ## FIX - make namespace friendly
+    set lcmd [list $cmd]
+    if {
+	[string compare {} [uplevel info commands $lcmd]] ||
+	([uplevel auto_load $lcmd] &&
+	[string compare {} [uplevel info commands $lcmd]])
+    } {
+	set ocmd [uplevel namespace origin $lcmd]
+	# First check to see if it is an alias
+	# This requires two checks because interp aliases doesn't
+	# canonically return fully (un)qualified names
+	set aliases [interp aliases]
+	if {[lsearch -exact $aliases $ocmd] > -1} {
+	    set result "$cmd: aliased to \"[alias $ocmd]\""
+	} elseif {[lsearch -exact $aliases $cmd] > -1} {
+	    set result "$cmd: aliased to \"[alias $cmd]\""
+	} elseif {[string compare {} [uplevel info procs $lcmd]] || \
+		([string match ?*::* $ocmd] && \
+		[string compare {} [namespace eval \
+		[namespace qualifiers $ocmd] \
+		[list info procs [namespace tail $ocmd]]]])} {
+	    # Here we checked if the proc that has been imported before
+	    # deciding it is a regular command
+	    set result "$cmd: procedure $ocmd"
+	} else {
+	    set result "$cmd: command"
+	}
+	global auto_index
+	if {[info exists auto_index($cmd)]} {
+	    # This tells you where the command MIGHT have come from -
+	    # not true if the command was redefined interactively or
+	    # existed before it had to be auto_loaded.  This is just
+	    # provided as a hint at where it MAY have come from
+	    append result " ($auto_index($cmd))"
+	}
+	return $result
+    } elseif {[string compare {} [auto_execok $cmd]]} {
+	return [auto_execok $cmd]
+    } else {
+	return -code error "$cmd: command not found"
+    }
+}
+
+# ls --
+#   mini-ls equivalent (directory lister)
+# Arguments:
+#   ?-all?	list hidden files as well (Unix dot files)
+#   ?-long?	list in full format "permissions size date filename"
+#   ?-full?	displays / after directories and link paths for links
+#   args	names/glob patterns of directories to list
+# Returns:
+#   a directory listing
+#
+interp alias {} ::Utility::dir {} namespace inscope ::Utility ls
+;proc ls {args} {
+    array set s {
+	-all 0 -full 0 -long 0
+	0 --- 1 --x 2 -w- 3 -wx 4 r-- 5 r-x 6 rw- 7 rwx
+    }
+    set args [get_opts s $args [array get s -*]]
+    set sep [string trim [file join . .] .]
+    if {[string match {} $args]} { set args . }
+    foreach arg $args {
+	if {[file isdir $arg]} {
+	    set arg [string trimr $arg $sep]$sep
+	    if {$s(-all)} {
+		lappend out [list $arg [lsort [glob -nocomplain -- $arg.* $arg*]]]
+	    } else {
+		lappend out [list $arg [lsort [glob -nocomplain -- $arg*]]]
+	    }
+	} else {
+	    lappend out [list [file dirname $arg]$sep \
+		    [lsort [glob -nocomplain -- $arg]]]
+	}
+    }
+    if {$s(-long)} {
+	global tcl_platform
+	set old [clock scan {1 year ago}]
+	switch -exact -- $tcl_platform(os) {
+	    windows	{ set fmt "%-5s %8d %s %s\n" }
+	    default	{ set fmt "%s %-8s %-8s %8d %s %s\n" }
+	}
+	foreach o $out {
+	    set d [lindex $o 0]
+	    if {[llength $out]>1} { append res $d:\n }
+	    foreach f [lindex $o 1] {
+		file lstat $f st
+		array set st [file attrib $f]
+		set f [file tail $f]
+		if {$s(-full)} {
+		    switch -glob $st(type) {
+			dir* { append f $sep }
+			link { append f " -> [file readlink $d$sep$f]" }
+			fifo { append f | }
+			default { if {[file exec $d$sep$f]} { append f * } }
+		    }
+		}
+		switch -exact -- $st(type) {
+		    file	{ set mode - }
+		    fifo	{ set mode p }
+		    default	{ set mode [string index $st(type) 0] }
+		}
+		set cfmt [expr {$st(mtime)>$old?{%b %d %H:%M}:{%b %d  %Y}}]
+		switch -exact -- $tcl_platform(os) {
+		    windows	{
+			# RHSA
+			append mode $st(-readonly) $st(-hidden) \
+				$st(-system) $st(-archive)
+			append res [format $fmt $mode $st(size) \
+				[clock format $st(mtime) -format $cfmt] $f]
+		    }
+		    macintosh	{
+			append mode $st(-readonly) $st(-hidden)
+			append res [format $fmt $mode $st(-creator) \
+				$st(-type) $st(size) \
+				[clock format $st(mtime) -format $cfmt] $f]
+		    }
+		    default	{ ## Unix is our default platform type
+			foreach j [split [format %o \
+				[expr {$st(mode)&0777}]] {}] {
+			    append mode $s($j)
+			}
+			append res [format $fmt $mode $st(-owner) $st(-group) \
+				$st(size) \
+				[clock format $st(mtime) -format $cfmt] $f]
+		    }
+		}
+	    }
+	    append res \n
+	}
+    } else {
+	foreach o $out {
+	    set d [lindex $o 0]
+	    if {[llength $out]>1} { append res $d:\n }
+	    set i 0
+	    foreach f [lindex $o 1] {
+		if {[string len [file tail $f]] > $i} {
+		    set i [string len [file tail $f]]
+		}
+	    }
+	    set i [expr {$i+2+$s(-full)}]
+	    ## Assume we have at least 70 char cols
+	    set j [expr {70/$i}]
+	    set k 0
+	    foreach f [lindex $o 1] {
+		set f [file tail $f]
+		if {$s(-full)} {
+		    switch -glob [file type $d$sep$f] {
+			d* { append f $sep }
+			l* { append f @ }
+			default { if {[file exec $d$sep$f]} { append f * } }
+		    }
+		}
+		append res [format "%-${i}s" $f]
+		if {[incr k]%$j == 0} {set res [string trimr $res]\n}
+	    }
+	    append res \n\n
+	}
+    }
+    return [string trimr $res]
+}
+
+# fit_format --
+# This procedure attempts to format a value into a particular format string.
+#
+# Arguments:
+# format	- The format to fit
+# val		- The value to be validated
+#
+# Returns:	0 or 1 (whether it fits the format or not)
+#
+# Switches:
+# -fill ?var?	- Default values will be placed to fill format to spec
+#		  and the resulting value will be placed in variable 'var'.
+#		  It will equal {} if the match invalid
+#		  (doesn't work all that great currently)
+# -best ?var?	- 'Fixes' value to fit format, placing best correct value
+#		  in variable 'var'.  If current value is ok, the 'var'
+#		  will equal it, otherwise it removes chars from the end
+#		  until it fits the format, then adds any fixed format
+#		  chars to value.  Can be slow (recursive tkFormat op).
+# -strict	- Value must be an exact match for format (format && length)
+# --		- End of switches
+
+;proc fit_format {args} {
+    set fill {}; set strict 0; set best {}; set result 1;
+    set name [lindex [info level 0] 0]
+    while {[string match {-*} [lindex $args 0]]} {
+	switch -- [string index [lindex $args 0] 1] {
+	    b {
+		set best [lindex $args 1]
+		set args [lreplace $args 0 1]
+	    }
+	    f {
+		set fill [lindex $args 1]
+		set args [lreplace $args 0 1]
+	    }
+	    s {
+		set strict 1
+		set args [lreplace $args 0 0]
+	    }
+	    - {
+		set args [lreplace $args 0 0]
+		break
+	    }
+	    default {
+		return -code error "bad $name option \"[lindex $args 0]\",\
+			must be: -best, -fill, -strict, or --"
+	    }
+	}
+    }
+
+    if {[llength $args] != 2} {
+	return -code error "wrong \# args: should be \"$name ?-best varname?\
+		?-fill varname? ?-strict? ?--? format value\""
+    }
+    set format [lindex $args 0]
+    set val    [lindex $args 1]
+
+    set flen [string length $format]
+    set slen [string length $val]
+    if {$slen > $flen} {set result 0}
+    if {$strict} { if {$slen != $flen} {set result 0} }
+
+    if {$result} {
+	set regform {}
+	foreach c [split $format {}] {
+	    set special 0
+	    if {[string match {[0AaWzZ]} $c]} {
+		set special 1
+		switch $c {
+		    0	{set fmt {[0-9]}}
+		    A	{set fmt {[A-Z]}}
+		    a	{set fmt {[a-z]}}
+		    W	{set fmt "\[ \t\r\n\]"}
+		    z	{set fmt {[A-Za-z]}}
+		    Z	{set fmt {[A-Za-z0-9]}}
+		}
+	    } else {
+		set fmt $c
+	    }
+	    
+	}
+	echo $regform $format $val
+	set result [string match $regform $val]
+    }
+
+    if [string compare $fill {}] {
+	upvar $fill fvar
+	if {$result} {
+	    set fvar $val[string range $format $i end]
+	} else {
+	    set fvar {}
+	}
+    }
+
+    if [string compare $best {}] {
+	upvar $best bvar
+	set bvar $val
+	set len [string length $bvar]
+	if {!$result} {
+	    incr len -2
+	    set bvar [string range $bvar 0 $len]
+	    # Remove characters until it's in valid format
+	    while {$len > 0 && ![tkFormat $format $bvar]} {
+		set bvar [string range $bvar 0 [incr len -1]]
+	    }
+	    # Add back characters that are fixed
+	    while {($len<$flen) && ![string match \
+		    {[0AaWzZ]} [string index $format [incr len]]]} {
+		append bvar [string index $format $len]
+	    }
+	} else {
+	    # If it's already valid, at least we can add fixed characters
+	    while {($len<$flen) && ![string match \
+		    {[0AaWzZ]} [string index $format $len]]} {
+		append bvar [string index $format $len]
+		incr len
+	    }
+	}
+    }
+
+    return $result
+}
+
+
+# validate --
+# This procedure validates particular types of numbers/formats
+#
+# Arguments:
+# type		- The type of validation (alphabetic, alphanumeric, date,
+#		hex, integer, numeric, real).  Date is always strict.
+# val		- The value to be validated
+#
+# Returns:	0 or 1 (whether or not it resembles the type)
+#
+# Switches:
+# -incomplete	enable less precise (strict) pattern matching on number
+#		useful for when the number might be half-entered
+#
+# Example use:	validate real 55e-5
+#		validate -incomplete integer -505
+#
+
+;proc validate {args} {
+    if {[string match [lindex $args 0]* "-incomplete"]} {
+	set strict 0
+	set opt *
+	set args [lreplace $args 0 0]
+    } else {
+	set strict 1
+	set opt +
+    }
+
+    if {[llength $args] != 2} {
+	return -code error "wrong \# args: should be\
+		\"[lindex [info level 0] 0] ?-incomplete? type value\""
+    } else {
+	set type [lindex $args 0]
+	set val  [lindex $args 1]
+    }
+
+    ## This is a big switch for speed reasons
+    switch -glob -- $type {
+	alphab*	{ # alphabetic
+	    return [regexp -nocase "^\[a-z\]$opt\$" $val]
+	}
+	alphan* { # alphanumeric
+	    return [regexp -nocase "^\[a-z0-9\]$opt\$" $val]
+	}
+	b*	{ # boolean - would be nice if it were more than 0/1
+	    return [regexp "^\[01\]$opt\$" $val]
+	}
+	d*	{ # date - always strict
+	    return [expr {![catch {clock scan $val}]}]
+	}
+	h*	{ # hexadecimal
+	    return [regexp -nocase "^(0x)?\[0-9a-f\]$opt\$" $val]
+	}
+	i*	{ # integer
+	    return [regexp "^\[-+\]?\[0-9\]$opt\$" $val]
+	}
+	n*	{ # numeric
+	    return [regexp "^\[0-9\]$opt\$" $val]
+	}
+	rea*	{ # real
+	    return [regexp -nocase [expr {$strict
+	    ?{^[-+]?([0-9]+\.?[0-9]*|[0-9]*\.?[0-9]+)(e[-+]?[0-9]+)?$}
+	    :{^[-+]?[0-9]*\.?[0-9]*([0-9]\.?e[-+]?[0-9]*)?$}}] $val]
+	}
+	reg*	{ # regexp
+	    return [expr {![catch {regexp $val {}}]}]
+	}
+	val*	{ # value
+	    return [expr {![catch {expr {1*$val}}]}]
+	}
+	l*	{ # list
+	    return [expr {![catch {llength $val}]}]
+	}
+	w*	{ # widget
+	    return [winfo exists $val]
+	}
+	default {
+	    return -code error "bad [lindex [info level 0] 0] type \"$type\":\
+		    \nmust be [join [lsort {alphabetic alphanumeric date \
+		    hexadecimal integer numeric real value \
+		    list boolean}] {, }]"
+	}
+    }
+    return
+}
+
+# allow_null_elements --
+#
+#   Sets up a read trace on an array to allow reading any value
+#   and ensure that some default exists
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+;proc allow_null_elements {array {default {}}} {
+    uplevel 1 [list trace variable $array r [list \
+	    [namespace code ensure_default] $default]]
+}
+
+;proc ensure_default {val array idx op} {
+    upvar $array var
+    if {[array exists var]} {
+	if {![info exists var($idx)]} {
+	    set var($idx) $val
+	}
+    } elseif {![info exists var]} {
+	set var $val
+    }
+}
+
+# deny_null_elements --
+#
+#   ADD COMMENTS HERE
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+;proc deny_null_elements {array {default {}}} {
+    ## FIX: should use vinfo and remove any *ensure_default* read traces
+    uplevel 1 [list trace vdelete $array r [list \
+	    [namespace code ensure_default] $default]]
+}
+
+
+}; # end namespace ::Utility
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/hierarchy.tcl
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/hierarchy.tcl	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/hierarchy.tcl	(revision 2476)
@@ -0,0 +1,1271 @@
+##
+## Layout routines taken from oooold code, author unkown.
+## Copyright 1995-1998 Jeffrey Hobbs, jeff.hobbs@acm.org
+##
+## Last Update: 28 June 1997
+##
+package require Widget 2.0
+package provide Hierarchy 2.0
+
+##-----------------------------------------------------------------------
+## PROCEDURE(S)
+##	hierarchy, hierarchy_dir, hierarchy_widget
+##
+## ARGUMENTS && DESCRIPTION
+##
+## hierarchy <window pathname> <options>
+##	Implements a hierarchical listbox
+## hierarchy_dir <window pathname> <options>
+##	Implements a hierarchical listbox using a directory view structure
+##	for the default methods
+## hierarchy_widget <window pathname> <options>
+##	Implements a hierarchical listbox using a widget view structure
+##	for the default methods
+##
+## OPTIONS
+##	(Any canvas option may be used with a hierarchy)
+##
+## -autoscrollbar TCL_BOOLEAN			DEFAULT: 1
+##	Determines whether scrollbars automagically pop-up or
+##	are permanently there.
+##
+## -browsecmd procedure				DEFAULT: noop
+##	A command which the widget will execute when the node is expanded
+##	to retrieve the children of a node.  The widget and node path are
+##	appended to the command as a list of node names which
+##	form a path to the node from the root.  Thus the first
+##	element of this list will always be the root node.
+##
+## -command procedure				DEFAULT: noop
+##	A command which the widget will execute when the node is toggled.
+##	The name of the widget, the node path, and whether the children of
+##	the node are showing (0/1) is appended to the procedure args.
+##
+## -decoration TCL_BOOLEAN			DEFAULT: 1
+##	If this is true, the "tree" lines are drawn.
+##
+## -expand #					DEFAULT: 1
+##	an integer value for an initial depth to expand to.
+##
+## -font fontname				DEFAULT: fixed
+##	The default font used for the text.
+##
+## -foreground color				DEFAULT: black
+##	The default foreground color used for text of unselected nodes.
+##
+## -ipad #					DEFAULT: 3
+##	The internal space added between the image and the text for a
+##	given node.
+##
+## -nodelook procedure				DEFAULT: noop
+##	A command the widget will execute to get the look of a node.
+##	The node is appended to the command as a list of
+##	node-names which form a path to the node from the root.
+##	Thus the first element of this list will always be the
+##	root node.  Also appended is a 
+##	boolean value which indicates whether the node's children
+##	are currently displayed.  This allows the node's
+##	look to change if it is "opened" or "closed".
+##
+##	This command must return a 4-tuple list containing:
+##		0. the text to display at the node
+##		1. the font to use for the text
+##		2. an image to display
+##		3. the foreground color to use for the node
+##	If no font (ie. {}) is specified then
+##	the value from -font is used.  If no image is specified
+##	then no image is displayed.
+##	The default is a command to which produces a nice look
+##	for a file manager.  
+##
+## -paddepth #					DEFAULT: 12
+##	The indent space added for child branches.
+##
+## -padstack #					DEFAULT: 2
+##	The space added between two rows
+##
+## -root rootname				DEFAULT: {}
+##  	The name of the root node of the tree.  Each node
+##	name must be unique amongst the children of each node.
+##
+## -selectbackground color			DEFAULT: red
+##	The default background color used for the text of selected nodes.
+##
+## -selectmode (single|browse|multiple)		DEFAULT: browse
+##	Like listbox modes, "multiple" is a mix of multiple && extended.
+##
+## -showall TCL_BOOLEAN				DEFAULT: 0
+##	For directory nodelook, also show Unix '.' (hidden) files/dirs.
+##
+## -showfiles TCL_BOOLEAN			DEFAULT: 0
+##	Show files as well as directories.
+##
+## -showparent string				DEFAULT: {}
+##	For hierarchy_dir nodelook, if string != {}, then it will show that
+##	string which will reset the root node to its parent.
+##
+## METHODS
+##	These are the methods that the hierachical listbox object recognizes.
+##	(ie - hierachy .h ; .h <method> <args>)
+##	Any unique substring is acceptable
+##
+## configure ?option? ?value option value ...?
+## cget option
+##	Standard tk widget routines.
+##
+## close index
+##	Closes the specified index (will trigger -command).
+##
+## curselection
+##	Returns the indices of the selected items.  This differs from the
+##	listbox method because indices here have no implied order.
+##
+## get index ?index ...?
+##	Returns the node paths of the items referenced.  Ranges are not
+##	allowed.  Index specification is like that allowed by the index
+##	method.
+##
+## qget index ?index ...?
+##	As above, but the indices must be that of the item (as returned
+##	by the index or curselection method).
+##
+## index index
+##	Returns the hierarchy numerical index of the item (the numerical
+##	index has no implied order relative to the list items).  index
+##	may be of the form:
+##
+##	number - Specifies the element as a numerical index.
+##	root   - specifies the root item.
+##	string - Specifis an item that has that text in it's node.
+##	@x,y   - Indicates the element that covers the point in
+##		the listbox window specified by x and y (in pixel
+##		coordinates).  If no element covers that point,
+##		then the closest element to that point is used.
+##
+## open index
+##	Opens the specified index (will trigger -command).
+##
+## see index
+##	Ensures that the item specified by the index is viewable.
+##
+## refresh
+##	Refreshes all open nodes
+##
+## selection option arg
+##	This works like the listbox selection method with the following
+##	exceptions:
+##
+##	The selection clear option can take multiple indices, but not a range.
+##	No arguments to clear means clear all the selected elements.
+##
+##	The selection set option can take multiple indices, but not a range.
+##	The key word 'all' sets the selection for all elements.
+##
+## size
+##	Returns the number of items in the hierarchical listbox.
+##
+## toggle index
+##	Toggles (open or closed) the item specified by index
+##	(triggers -command).
+##
+## BINDINGS
+##	Most Button-1 bindings on the hierarchy work in the same manner
+##	as those for the listbox widget, as defined by the selectmode.
+##	Those that vary are listed below:
+##
+## <Double-Button-1>
+##	Toggles a node in the hierarchy
+##
+## NAMESPACE & STATE
+##	The megawidget creates a global array with the classname, and a
+## global array which is the name of each megawidget is created.  The latter
+## array is deleted when the megawidget is destroyed.
+##	Public procs of $CLASSNAME and [string tolower $CLASSNAME] are used.
+## Other procs that begin with $CLASSNAME are private.  For each widget,
+## commands named .$widgetname and $CLASSNAME$widgetname are created.
+##
+##-----------------------------------------------------------------------
+
+# Create this to make sure there are registered in auto_mkindex
+# these must come before the [widget create ...]
+proc Hierarchy args {}
+proc hierarchy args {}
+
+## In general, we cannot use $data(basecmd) in the construction, but the
+## scrollbar commands won't be called until after it really exists as a
+## proper command
+widget create Hierarchy -type frame -base canvas -components {
+    {base canvas canvas {-relief sunken -bd 1 -highlightthickness 1 \
+	    -yscrollcommand [list $data(yscrollbar) set] \
+	    -xscrollcommand [list $data(xscrollbar) set]}}
+    {scrollbar xscrollbar sx {-orient h -bd 1 -highlightthickness 1\
+	    -command [list $data(basecmd) xview]}}
+    {scrollbar yscrollbar sy {-orient v -bd 1 -highlightthickness 1\
+	    -command [list $data(basecmd) yview]}}
+} -options {
+    {-autoscrollbar	autoScrollbar	AutoScrollbar	1}
+    {-browsecmd		browseCmd	BrowseCmd	{}}
+    {-command		command		Command		{}}
+    {-decoration	decoration	Decoration	1}
+    {-expand		expand		Expand		1}
+    {-font		font		Font		fixed}
+    {-foreground	foreground	Foreground	black}
+    {-ipad		ipad		Ipad		3}
+    {-nodelook		nodeLook	NodeLook	{}}
+    {-paddepth		padDepth	PadDepth	12}
+    {-padstack		padStack	PadStack	2}
+    {-root		root		Root		{}}
+    {-selectmode	selectMode	SelectMode	browse}
+    {-selectbackground	selectBackground SelectBackground red}
+    {-state		state		State		normal}
+
+    {-showall		showAll		ShowAll		0}
+    {-showparent	showParent	ShowParent	{}}
+    {-showfiles		showFiles	ShowFiles	0}
+}
+
+proc hierarchy_dir {w args} {
+    uplevel [list hierarchy $w -root [pwd] \
+	    -nodelook  {namespace inscope ::Widget::Hierarchy FileLook} \
+	    -command   {namespace inscope ::Widget::Hierarchy FileActivate} \
+	    -browsecmd {namespace inscope ::Widget::Hierarchy FileList}] \
+	    $args
+}
+
+proc hierarchy_widget {w args} {
+    uplevel [list hierarchy $w -root . \
+	    -nodelook  {namespace inscope ::Widget::Hierarchy WidgetLook} \
+	    -command   {namespace inscope ::Widget::Hierarchy WidgetActivate} \
+	    -browsecmd {namespace inscope ::Widget::Hierarchy WidgetList}] \
+	    $args
+}
+
+namespace eval ::Widget::Hierarchy {;
+
+;proc construct w {
+    upvar \#0 [namespace current]::$w data
+
+    ## Private variables
+    array set data [list \
+	    hasnodelook	0 \
+	    halfpstk	[expr $data(-padstack)/2] \
+	    width	400 \
+	    ]
+
+    grid $data(canvas) $data(yscrollbar) -sticky news
+    grid $data(xscrollbar) -sticky ew
+    grid columnconfig $w 0 -weight 1
+    grid rowconfig $w 0 -weight 1
+    bind $data(canvas) <Configure> [namespace code [list Resize $w %w %h]]
+}
+
+;proc init w {
+    upvar \#0 [namespace current]::$w data
+
+    set data(:$data(-root),showkids) 0
+    ExpandNodeN $w $data(-root) $data(-expand)
+    if {[catch {$w see $data(-root)}]} {
+	$data(basecmd) configure -scrollregion {0 0 1 1}
+    }
+}
+
+;proc configure {w args} {
+    upvar \#0 [namespace current]::$w data
+
+    set truth {^(1|yes|true|on)$}
+    array set config { resize 0 root 0 showall 0 }
+    foreach {key val} $args {
+	switch -- $key {
+	    -autoscrollbar {
+		set val [regexp -nocase $truth $val]
+		if {$val} {
+		    set config(resize) 1
+		} else {
+		    grid $data(xscrollbar)
+		    grid $data(yscrollbar)
+		}
+	    }
+	    -decoration	{ set val [regexp -nocase $truth $val] }
+	    -padstack	{ set data(halfpstk) [expr {$val/2}] }
+	    -nodelook	{
+		## We set this special bool val because it saves some
+		## computation in ExpandNode, a deeply nested proc
+		set data(hasnodelook) [string compare $val {}]
+	    }
+	    -root		{
+		if {[info exists data(:$data(-root),showkids)]} {
+		    ## All data about items and selection should be
+		    ## cleared and the items deleted
+		    foreach name [concat [array names data :*] \
+			    [array names data S,*]] {unset data($name)}
+		    $data(basecmd) delete all
+		    set data(-root) $val
+		    set config(root) 1
+		    ## Avoid setting data($key) below
+		    continue
+		}
+	    }
+	    -selectbackground {
+		foreach i [array names data S,*] {
+		    $data(basecmd) itemconfigure [string range $i 2 end] \
+			    -fill $val
+		}
+	    }
+	    -state	{
+		if {![regexp {^(normal|disabled)$} $val junk val]} {
+		    return -code error "bad state value \"$val\":\
+			    must be normal or disabled"
+		}
+	    }
+	    -showall	-
+	    -showfiles	{
+		set val [regexp -nocase $truth $val]
+		if {$val == $data($key)} continue
+		set config(showall) 1
+	    }
+	}
+	set data($key) $val
+    }
+    if {$config(root)} {
+	set data(:$val,showkids) 0
+	ExpandNodeN $w $val $data(-expand)
+    } elseif {$config(showall) && [info exists data(:$data(-root),showkids)]} {
+	_refresh $w
+    } elseif {$config(resize)} {
+	Resize $w [winfo width $data(canvas)] [winfo height $data(canvas)]
+    }
+}
+
+## Cryptic source code arguments explained:
+## (these, or a similar form, might appear as variables later)
+## np   == node path
+## cnp  == changed np
+## knp  == kids np
+## xcnp == extra cnp
+
+;proc _index { w idx } {
+    upvar \#0 [namespace current]::$w data
+    set c $data(basecmd)
+    if {[string match all $idx]} {
+	return [$c find withtag box]
+    } elseif {[regexp {^(root|anchor)$} $idx]} {
+	return [$c find withtag box:$data(-root)]
+    }
+    foreach i [$c find withtag $idx] {
+	if {[string match rec* [$c type $i]]} { return $i }
+    }
+    if {[regexp {@(-?[0-9]+),(-?[0-9]+)} $idx z x y]} {
+	return [$c find closest [$w canvasx $x] [$w canvasy $y] 1 text]
+    }
+    foreach i [$c find withtag box:[lindex $idx 0]] { return $i }
+    return -code error "bad hierarchy index \"$idx\":\
+	    must be current, @x,y, a number, or a node name"
+}
+
+;proc _selection { w args } {
+    if {[string match {} $args]} {
+	return -code error \
+		"wrong \# args: should be \"$w selection option args\""
+    }
+    upvar \#0 [namespace current]::$w data
+    set err [catch {_index $w [lindex $args 1]} idx]
+    switch -glob -- [lindex $args 0] {
+	an* {
+	    ## anchor
+	    ## stubbed out - too complicated to support
+	}
+	cl* {
+	    ## clear
+	    set c $data(basecmd)
+	    if {$err} {
+		foreach arg [array names data S,*] { unset data($arg) }
+		$c itemconfig box -fill {}
+	    } else {
+		catch {unset data(S,$idx)}
+		$c itemconfig $idx -fill {}
+		foreach idx [lrange $args 2 end] {
+		    if {[catch {_index $w $idx} idx]} {
+			catch {unset data(S,$idx)}
+			$c itemconfig $idx -fill {}
+		    }
+		}
+	    }
+	}
+	in* {
+	    ## includes
+	    if {$err} {
+		if {[llength $args]==2} {
+		    return -code error $idx
+		} else {
+		    return -code error "wrong \# args:\
+			    should be \"$w selection includes index\""
+		}
+	    }
+	    return [info exists data(S,$idx)]
+	}
+	se* {
+	    ## set
+	    if {$err} {
+		if {[string compare {} $args]} return
+		return -code error "wrong \# args:\
+			should be \"$w selection set index ?index ...?\""
+	    } else {
+		set c $data(basecmd); set col $data(-selectbackground)
+		if {[string match all [lindex $args 1]]} {
+		    foreach i $idx { set data(S,$i) 1 }
+		    $c itemconfig box -fill $col
+		} else {
+		    set data(S,$idx) 1
+		    $c itemconfig $idx -fill $col
+		    foreach idx [lrange $args 2 end] {
+			if {![catch {_index $w $idx} idx]} {
+			    set data(S,$idx) 1
+			    $c itemconfig $idx -fill $col
+			}
+		    }
+		}
+	    }
+	}
+	default {
+	    return -code error "bad selection option \"[lindex $args 0]\":\
+		    must be clear, includes, set"
+	}
+    }
+}
+
+;proc _curselection {w} {
+    upvar \#0 [namespace current]::$w data
+
+    set res {}
+    foreach i [array names data S,*] { lappend res [string range $i 2 end] }
+    return $res
+}
+
+;proc _get {w args} {
+    upvar \#0 [namespace current]::$w data
+
+    set nps {}
+    foreach arg $args {
+	if {![catch {_index $w $arg} idx] && \
+		[string compare {} $idx]} {
+	    set tags [$data(basecmd) gettags $idx]
+	    if {[set i [lsearch -glob $tags box:*]]>-1} {
+		lappend nps [string range [lindex $tags $i] 4 end]
+	    }
+	}
+    }
+    return $nps
+}
+
+;proc _qget {w args} {
+    upvar \#0 [namespace current]::$w data
+
+    ## Quick get.  Avoids expensive _index call
+    set nps {}
+    foreach arg $args {
+	set tags [$data(basecmd) itemcget $arg -tags]
+	if {[set i [lsearch -glob $tags box:*]]>-1} {
+	    lappend nps [string range [lindex $tags $i] 4 end]
+	}
+    }
+    return $nps
+}
+
+;proc _see {w args} {
+    upvar \#0 [namespace current]::$w data
+
+    if {[catch {_index $w $args} idx]} {
+	return -code error $idx
+    } elseif {[string compare {} $idx]} {
+	set c $data(basecmd)
+	foreach {x y x1 y1} [$c bbox $idx] {top btm} [$c yview] {
+	    set stk [lindex [$c cget -scrollregion] 3]
+	    set pos [expr (($y1+$y)/2.0)/$stk - ($btm-$top)/2.0]
+	}
+	$c yview moveto $pos
+    }
+}
+
+;proc _refresh {w} {
+    upvar \#0 [namespace current]::$w data
+
+    array set expanded [array get data ":*,showkids"]
+    foreach i [concat [array names data :*] \
+	    [array names data S,*]] {unset data($i)}
+    $data(basecmd) delete all
+    ## -dec makes it sort in root-first order
+    foreach i [lsort -ascii -decreasing [array names expanded]] {
+	if {$expanded($i)} {
+	    regexp {^:(.*),showkids$} $i junk np
+	    ## Quick way to remove the last element of a list
+	    set prnt [lreplace $np end end]
+	    ## checks to get rid of dead, previously opened nodes
+	    if {[string match {} $prnt] || ([info exists data(:$prnt,kids)] \
+		    && [lsearch -exact $data(:$prnt,kids) \
+		    [lindex $np end]] != -1)} {
+		set data($i) 0
+		ExpandNode $w $np
+	    }
+	}
+    }
+    Redraw $w $data(-root)
+    Resize $w [winfo width $data(canvas)] [winfo height $data(canvas)]
+}
+
+;proc _size {w} {
+    upvar \#0 [namespace current]::$w data
+    return [llength [$data(basecmd) find withtag box]]
+}
+
+## This will be the one called by <Double-Button-1> on the canvas,
+## if -state is normal, so we have to make sure that $w is correct.
+##
+;proc _toggle { w index } {
+    toggle $w $index toggle
+}
+
+;proc _close { w index } {
+    toggle $w $index close
+}
+
+;proc _open { w index } {
+    toggle $w $index open
+}
+
+;proc toggle { w index which } {
+    if {[string compare Hierarchy [winfo class $w]]} {
+	set w [winfo parent $w]
+    }
+    upvar \#0 [namespace current]::$w data
+
+    if {[string match {} [set np [_get $w $index]]]} return
+    set np [lindex $np 0]
+
+    set old [$data(basecmd) cget -cursor]
+    $data(basecmd) config -cursor watch
+    update
+    switch $which {
+	close	{ CollapseNodeAll $w $np }
+	open	{ ExpandNodeN $w $np 1 }
+	toggle	{
+	    if {$data(:$np,showkids)} {
+		CollapseNodeAll $w $np
+	    } else {
+		ExpandNodeN $w $np 1
+	    }
+	}
+    }
+    if {[string compare {} $data(-command)]} {
+	uplevel \#0 $data(-command) [list $w $np $data(:$np,showkids)]
+    }
+    $data(basecmd) config -cursor $old
+    return
+}
+
+;proc Resize { w wid hgt } {
+    upvar \#0 [namespace current]::$w data
+    set c $data(basecmd)
+    if {[string compare {} [set box [$c bbox image text]]]} {
+	set X [lindex $box 2]
+	if {$data(-autoscrollbar)} {
+	    set Y [lindex $box 3]
+	    if {$wid>$X} {
+		set X $wid
+		grid remove $data(xscrollbar)
+	    } else {
+		grid $data(xscrollbar)
+	    }
+	    if {$hgt>$Y} {
+		set Y $hgt
+		grid remove $data(yscrollbar)
+	    } else {
+		grid $data(yscrollbar)
+	    }
+	    $c config -scrollregion "0 0 $X $Y"
+	}
+	## This makes full width highlight boxes
+	## data(width) is the default width of boxes
+	if {$X>$data(width)} {
+	    set data(width) $X
+	    foreach b [$c find withtag box] {
+		foreach {x y x1 y1} [$c coords $b] { $c coords $b 0 $y $X $y1 }
+	    }
+	}
+    } elseif {$data(-autoscrollbar)} {
+	grid remove $data(xscrollbar) $data(yscrollbar)
+    }
+}
+
+;proc CollapseNodeAll { w np } {
+    if {[CollapseNode $w $np]} {
+	upvar \#0 [namespace current]::$w data
+	Redraw $w $np
+	DiscardChildren $w $np
+	Resize $w [winfo width $data(canvas)] [winfo height $data(canvas)]
+    }
+}
+
+;proc ExpandNodeN { w np n } {
+    upvar \#0 [namespace current]::$w data
+    if {[ExpandNodeN_aux $w $np $n] || \
+	    ([string compare $data(-root) {}] && \
+	    ![string compare $data(-root) $np])} {
+	Redraw $w $np
+	Resize $w [winfo width $data(canvas)] [winfo height $data(canvas)]
+    }
+}
+
+;proc ExpandNodeN_aux { w np n } {
+    if {![ExpandNode $w $np]} { return 0 }
+    if {$n==1} { return 1 }
+    incr n -1
+    upvar \#0 [namespace current]::$w data
+    foreach k $data(:$np,kids) {
+	ExpandNodeN_aux $w "$np [list $k]" $n
+    }
+    return 1
+}
+
+########################################################################
+##
+## Private routines to collapse and expand a single node w/o redrawing
+## Most routines return 0/1 to indicate if any change has occurred
+##
+########################################################################
+
+;proc ExpandNode { w np } {
+    upvar \#0 [namespace current]::$w data
+
+    if {$data(:$np,showkids)} { return 0 }
+    set data(:$np,showkids) 1
+    if {![info exists data(:$np,kids)]} {
+	if {[string compare $data(-browsecmd) {}]} {
+	    set data(:$np,kids) [uplevel \#0 $data(-browsecmd) [list $w $np]]
+	} else {
+	    set data(:$np,kids) {}
+	}
+    }
+    if $data(hasnodelook) {
+	set data(:$np,look) [uplevel \#0 $data(-nodelook) [list $w $np 1]]
+    } else {
+	set data(:$np,look) {}
+    }
+    if {[string match {} $data(:$np,kids)]} {
+	## This is needed when there are no kids to make sure the
+	## look of the node will be updated appropriately
+	foreach {txt font img fg} $data(:$np,look) {
+	    lappend tags box:$np box $np
+	    set c $data(basecmd)
+	    if {[string compare $img {}]} {
+		## Catch just in case the image doesn't exist
+		catch {
+		    $c itemconfigure img:$np -image $img
+		    lappend tags $img
+		}
+	    }
+	    if {[string compare $txt {}]} {
+		if {[string match {} $font]} { set font $data(-font) }
+		if {[string match {} $fg]}   { set fg $data(-foreground) }
+		$c itemconfigure txt:$np -fill $fg -text $txt -font $font
+		if {[string compare $np $txt]} { lappend tags $txt }
+	    }
+	    $c itemconfigure box:$np -tags $tags
+	    ## We only want to go through once
+	    break
+	}
+	return 0
+    }
+    foreach k $data(:$np,kids) {
+	set knp "$np [list $k]"
+	## Check to make sure it doesn't already exist,
+	## in case we are refreshing the node or something
+	if {![info exists data(:$knp,showkids)]} { set data(:$knp,showkids) 0 }
+	if $data(hasnodelook) {
+	    set data(:$knp,look) [uplevel \#0 $data(-nodelook) [list $w $knp 0]]
+	} else {
+	    set data(:$knp,look) {}
+	}
+    }
+    return 1
+}
+
+;proc CollapseNode { w np } {
+    upvar \#0 [namespace current]::$w data
+    if {!$data(:$np,showkids)} { return 0 }
+    set data(:$np,showkids) 0
+    if {[string match {} $data(:$np,kids)]} { return 0 }
+    if {[string compare $data(-nodelook) {}]} {
+	set data(:$np,look) [uplevel \#0 $data(-nodelook) [list $w $np 0]]
+    } else {
+	set data(:$np,look) {}
+    }
+    foreach k $data(:$np,kids) { CollapseNode $w "$np [list $k]" }
+    return 1
+}
+
+;proc DiscardChildren { w np } {
+    upvar \#0 [namespace current]::$w data
+    if {[info exists data(:$np,kids)]} {
+	foreach k $data(:$np,kids) {
+	    set knp "$np [list $k]"
+	    $data(basecmd) delete img:$knp txt:$knp box:$knp
+	    foreach i {showkids look stkusg stack iwidth offset} {
+		catch {unset data(:$knp,$i)}
+	    }
+	    DiscardChildren $w $knp
+	}
+	unset data(:$np,kids)
+    }
+}
+
+## REDRAW mechanism
+## 2 parts:	recompute offsets of all children from changed node path
+##		then redraw children based on their offsets and look
+##
+;proc Redraw { w cnp } {
+    upvar \#0 [namespace current]::$w data
+
+    set c $data(basecmd)
+    # When a node changes, the positions of a whole lot of things
+    # change.  The size of the scroll region also changes.
+    $c delete decor
+
+    # Calculate the new offset locations of everything
+    Recompute $w $data(-root) [lrange $cnp 1 end]
+
+    # Next recursively move all the bits around to their correct positions.
+    # We choose an initial point (4,4) to begin at.
+    Redraw_aux $w $data(-root) 4 4
+
+    # Necessary to make sure find closest gets the right item
+    # ordering: image > text > box
+    after idle "catch { [list $c] raise image text; [list $c] lower box text }"
+}
+
+## RECOMPUTE recurses through the tree working out the relative offsets
+## of children from their parents in terms of stack values.  
+##
+## "cnp" is either empty or a node name which indicates where the only
+## changes have occured in the hierarchy since the last call to Recompute.
+## This is used because when a node is toggled on/off deep in the
+## hierarchy then not all the positions of items need to be recomputed.
+## The only ones that do are everything below the changed node (of
+## course), and also everything which might depend on the stack usage of
+## that node (i.e. everything above it).  Specifically the usages of the
+## changed node's siblings do *not* need to be recomputed.
+##
+;proc Recompute { w np cnp } {
+    upvar \#0 [namespace current]::$w data
+    # If the cnp now has only one element then
+    # it must be one of the children of the current node.
+    # We do not need to Recompute the usages of its siblings if it is.
+    set cnode_is_child [expr {[llength $cnp]==1}]
+    if {$cnode_is_child} {
+	set cnode [lindex $cnp 0]
+    } else {
+	set xcnp [lrange $cnp 1 end]
+    }
+    
+    # Run through the children, recursively calculating their usage of
+    # stack real-estate, and allocating an intial placement for each child
+    #
+    # Values do not need to be recomputed for siblings of the changed
+    # node and their descendants.  For the cnode itself, in the
+    # recursive call we set the value of cnode to {} to prevent
+    # any further cnode checks.
+
+    set children_stack 0
+    if {$data(:$np,showkids)} { 
+	foreach k $data(:$np,kids) {
+	    set knp "$np [list $k]"
+	    set data(:$knp,offset) $children_stack
+	    if {$cnode_is_child && [string match $cnode $k]} {
+		set data(:$knp,stkusg) [Recompute $w $knp {}]
+	    } elseif {!$cnode_is_child} {
+		set data(:$knp,stkusg) [Recompute $w $knp $xcnp]
+	    }
+	    incr children_stack $data(:$knp,stkusg)
+	    incr children_stack $data(-padstack)
+	}
+    }
+
+    ## Make the image/text if they don't exist.
+    ## Positioning occurs in Redraw_aux.
+    ## And calculate the stack usage of our little piece of the world.
+    set img_height 0; set img_width 0; set txt_width 0; set txt_height 0
+
+    foreach {txt font img fg} $data(:$np,look) {
+	lappend tags box:$np box $np
+	set c $data(basecmd)
+	if {[string compare $img {}]} {
+	    if {[string match {} [$c find withtag img:$np]]} {
+		$c create image 0 0 -anchor nw -tags [list img:$np image]
+	    }
+	    ## Catch just in case the image doesn't exist
+	    catch {
+		$c itemconfigure img:$np -image $img
+		lappend tags $img
+		foreach {x y img_width img_height} [$c bbox img:$np] {
+		    incr img_width -$x; incr img_height -$y
+		}
+	    }
+	}
+	if {[string compare $txt {}]} {
+	    if {[string match {} [$c find withtag txt:$np]]} {
+		$c create text 0 0 -anchor nw -tags [list txt:$np text]
+	    }
+	    if {[string match {} $font]} { set font $data(-font) }
+	    if {[string match {} $fg]}   { set fg $data(-foreground) }
+	    $c itemconfigure txt:$np -fill $fg -text $txt -font $font
+	    if {[string compare $np $txt]} { lappend tags $txt }
+	    foreach {x y txt_width txt_height} [$c bbox txt:$np] {
+		incr txt_width -$x; incr txt_height -$y
+	    }
+	}
+	if {[string match {} [$c find withtag box:$np]]} {
+	    $c create rect 0 0 1 1 -tags [list box:$np box] -outline {}
+	}
+	$c itemconfigure box:$np -tags $tags
+	## We only want to go through this once
+	break
+    }
+
+    set stack [expr {$txt_height>$img_height?$txt_height:$img_height}]
+
+    # Now reposition the children downward by "stack"
+    set overall_stack [expr {$children_stack+$stack}]
+
+    if {$data(:$np,showkids)} { 
+	set off [expr {$stack+$data(-padstack)}]
+	foreach k $data(:$np,kids) {
+	    set knp "$np [list $k]"
+	    incr data(:$knp,offset) $off
+	}
+    }
+    # remember some facts for locating the image and drawing decor
+    array set data [list :$np,stack $stack :$np,iwidth $img_width]
+
+    return $overall_stack
+}
+
+;proc Redraw_aux {w np deppos stkpos} {
+    upvar \#0 [namespace current]::$w data
+
+    set c $data(basecmd)
+    $c coords img:$np $deppos $stkpos
+    $c coords txt:$np [expr {$deppos+$data(:$np,iwidth)+$data(-ipad)}] $stkpos
+    $c coords box:$np 0 [expr {$stkpos-$data(halfpstk)}] \
+	    $data(width) [expr {$stkpos+$data(:$np,stack)+$data(halfpstk)}]
+
+    if {!$data(:$np,showkids) || [string match {} $data(:$np,kids)]} return
+
+    set minkid_stkpos 100000
+    set maxkid_stkpos 0
+    set bar_deppos [expr {$deppos+$data(-paddepth)/2}]
+    set kid_deppos [expr {$deppos+$data(-paddepth)}]
+
+    foreach k $data(:$np,kids) {
+	set knp "$np [list $k]"
+	set kid_stkpos [expr {$stkpos+$data(:$knp,offset)}]
+	Redraw_aux $w $knp $kid_deppos $kid_stkpos
+	
+	if {$data(-decoration)} {
+	    if {$kid_stkpos<$minkid_stkpos} {set minkid_stkpos $kid_stkpos}
+	    set kid_stkpos [expr {$kid_stkpos+$data(:$knp,stack)/2}]
+	    if {$kid_stkpos>$maxkid_stkpos} {set maxkid_stkpos $kid_stkpos}
+	    
+	    $c create line $bar_deppos $kid_stkpos $kid_deppos $kid_stkpos \
+		    -width 1 -tags decor
+	}
+    }
+    if {$data(-decoration)} {
+	$c create line $bar_deppos $minkid_stkpos $bar_deppos $maxkid_stkpos \
+		-width 1 -tags decor
+    }
+}
+
+
+##
+## DEFAULT BINDINGS FOR HIERARCHY
+##
+## Since we give no border to the frame, all Hierarchy bindings
+## will always register on the canvas widget
+##
+bind Hierarchy <Double-Button-1> {
+    set w [winfo parent %W]
+    if {[string match normal [$w cget -state]]} {
+	$w toggle @%x,%y
+    }
+}
+bind Hierarchy <ButtonPress-1> {
+    if {[winfo exists %W]} {
+	namespace eval ::Widget::Hierarchy \
+		[list BeginSelect [winfo parent %W] @%x,%y]
+    }
+}
+bind Hierarchy <B1-Motion> {
+    set tkPriv(x) %x
+    set tkPriv(y) %y
+    namespace eval ::Widget::Hierarchy [list Motion [winfo parent %W] @%x,%y]
+}
+bind Hierarchy <ButtonRelease-1> { tkCancelRepeat }
+bind Hierarchy <Shift-1>   [namespace code \
+	{ BeginExtend [winfo parent %W] @%x,%y }]
+bind Hierarchy <Control-1> [namespace code \
+	{ BeginToggle [winfo parent %W] @%x,%y }]
+bind Hierarchy <B1-Leave> {
+    set tkPriv(x) %x
+    set tkPriv(y) %y
+    namespace eval ::Widget::Hierarchy [list AutoScan [winfo parent %W]]
+}
+bind Hierarchy <B1-Enter>	{ tkCancelRepeat }
+
+## Should reserve L/R U/D for traversing nodes
+bind Hierarchy <Up>		{ %W yview scroll -1 units }
+bind Hierarchy <Down>		{ %W yview scroll  1 units }
+bind Hierarchy <Left>		{ %W xview scroll -1 units }
+bind Hierarchy <Right>		{ %W xview scroll  1 units }
+
+bind Hierarchy <Control-Up>	{ %W yview scroll -1 pages }
+bind Hierarchy <Control-Down>	{ %W yview scroll  1 pages }
+bind Hierarchy <Control-Left>	{ %W xview scroll -1 pages }
+bind Hierarchy <Control-Right>	{ %W xview scroll  1 pages }
+bind Hierarchy <Prior>		{ %W yview scroll -1 pages }
+bind Hierarchy <Next>		{ %W yview scroll  1 pages }
+bind Hierarchy <Control-Prior>	{ %W xview scroll -1 pages }
+bind Hierarchy <Control-Next>	{ %W xview scroll  1 pages }
+bind Hierarchy <Home>		{ %W xview moveto 0 }
+bind Hierarchy <End>		{ %W xview moveto 1 }
+bind Hierarchy <Control-slash>	[namespace code \
+	{ SelectAll [winfo parent %W] }]
+bind Hierarchy <Control-backslash> [namespace code \
+	{ [winfo parent %W] selection clear }]
+
+bind Hierarchy <2> {
+    set tkPriv(x) %x
+    set tkPriv(y) %y
+    %W scan mark %x %y
+}
+bind Hierarchy <B2-Motion> {
+    %W scan dragto $tkPriv(x) %y
+}
+
+## BINDING HELPER PROCEDURES
+##
+## These are mostly mirrored from the Listbox class bindings.
+##
+## Some of these are hacked up to be more efficient by making calls
+## that require forknowledge of the megawidget structure.
+##
+
+# BeginSelect --
+#
+# This procedure is typically invoked on button-1 presses.  It begins
+# the process of making a selection in the hierarchy.  Its exact behavior
+# depends on the selection mode currently in effect for the hierarchy;
+# see the Motif documentation for details.
+#
+# Arguments:
+# w -		The hierarchy widget.
+# el -		The element for the selection operation (typically the
+#		one under the pointer).  Must be in numerical form.
+
+;proc BeginSelect {w el} {
+    global tkPriv
+    if {[catch {_index $w $el} el]} return
+    _selection $w clear
+    _selection $w set $el
+    set tkPriv(hierarchyPrev) $el
+}
+
+# Motion --
+#
+# This procedure is called to process mouse motion events while
+# button 1 is down.  It may move or extend the selection, depending
+# on the hierarchy's selection mode.
+#
+# Arguments:
+# w -		The hierarchy widget.
+# el -		The element under the pointer (must be a number).
+
+;proc Motion {w el} {
+    global tkPriv
+    if {[catch {_index $w $el} el] || \
+	    [string match $el $tkPriv(hierarchyPrev)]} return
+    switch [_cget $w -selectmode] {
+	browse {
+	    _selection $w clear 0 end
+	    if {![catch {_selection $w set $el}]} {
+		set tkPriv(hierarchyPrev) $el
+	    }
+	}
+	multiple {
+	    ## This happens when a double-1 occurs and all the index boxes
+	    ## have changed
+	    if {[catch {_selection $w includes \
+		    $tkPriv(hierarchyPrev)} inc]} {
+		set tkPriv(hierarchyPrev) [_index $w $el]
+		return
+	    }
+	    if {$inc} {
+		_selection $w set $el
+	    } else {
+		_selection $w clear $el
+	    }
+	    set tkPriv(hierarchyPrev) $el
+	}
+    }
+}
+
+# BeginExtend --
+#
+# This procedure is typically invoked on shift-button-1 presses.  It
+# begins the process of extending a selection in the hierarchy.  Its
+# exact behavior depends on the selection mode currently in effect
+# for the hierarchy;
+#
+# Arguments:
+# w -		The hierarchy widget.
+# el -		The element for the selection operation (typically the
+#		one under the pointer).  Must be in numerical form.
+
+;proc BeginExtend {w el} {
+    if {[catch {_index $w $el} el]} return
+    if {[string match multiple [_cget $w -selectmode]]} {
+	Motion $w $el
+    }
+}
+
+# BeginToggle --
+#
+# This procedure is typically invoked on control-button-1 presses.  It
+# begins the process of toggling a selection in the hierarchy.  Its
+# exact behavior depends on the selection mode currently in effect
+# for the hierarchy;  see the Motif documentation for details.
+#
+# Arguments:
+# w -		The hierarchy widget.
+# el -		The element for the selection operation (typically the
+#		one under the pointer).  Must be in numerical form.
+
+;proc BeginToggle {w el} {
+    global tkPriv
+    if {[catch {_index $w $el} el]} return
+    if {[string match multiple [_cget $w -selectmode]]} {
+	_selection $w anchor $el
+	if {[_selection $w includes $el]} {
+	    _selection $w clear $el
+	} else {
+	    _selection $w set $el
+	}
+	set tkPriv(hierarchyPrev) $el
+    }
+}
+
+# AutoScan --
+# This procedure is invoked when the mouse leaves an entry window
+# with button 1 down.  It scrolls the window up, down, left, or
+# right, depending on where the mouse left the window, and reschedules
+# itself as an "after" command so that the window continues to scroll until
+# the mouse moves back into the window or the mouse button is released.
+#
+# Arguments:
+# w -		The hierarchy widget.
+
+;proc AutoScan {w} {
+    global tkPriv
+    if {![winfo exists $w]} return
+    set x $tkPriv(x)
+    set y $tkPriv(y)
+    if {$y>=[winfo height $w]} {
+	$w yview scroll 1 units
+    } elseif {$y<0} {
+	$w yview scroll -1 units
+    } elseif {$x>=[winfo width $w]} {
+	$w xview scroll 2 units
+    } elseif {$x<0} {
+	$w xview scroll -2 units
+    } else {
+	return
+    }
+    #Motion $w [$w index @$x,$y]
+    set tkPriv(afterId) [after 50 [namespace current]::AutoScan $w]
+}
+
+# SelectAll
+#
+# This procedure is invoked to handle the "select all" operation.
+# For single and browse mode, it just selects the root element.
+# Otherwise it selects everything in the widget.
+#
+# Arguments:
+# w -		The hierarchy widget.
+
+;proc SelectAll w {
+    if {[regexp (browse|single) [_cget $w -selectmode]]} {
+	_selection $w clear
+	_selection $w set root
+    } else {
+	_selection $w set all
+    }
+}
+
+#------------------------------------------------------------
+# Default nodelook methods
+#------------------------------------------------------------
+
+;proc FileLook { w np isopen } {
+    upvar \#0 [namespace current]::$w data
+    set path [eval file join $np]
+    set file [lindex $np end]
+    set bmp  {}
+    if {[file readable $path]} {
+	if {[file isdirectory $path]} {
+	    if {$isopen} {
+		## We know that kids will always be set by the time
+		## the isopen is set to 1
+		if {[string compare $data(:$np,kids) {}]} {
+		    set bmp ::Widget::Hierarchy::bmp:dir_minus
+		} else {
+		    set bmp ::Widget::Hierarchy::bmp:dir
+		}
+	    } else {
+		set bmp ::Widget::Hierarchy::bmp:dir_plus
+	    }
+	    if 0 {
+		## NOTE: accurate, but very expensive
+		if {[string compare [FileList $w $np] {}]} {
+		    set bmp [expr {$isopen ?\
+			    {::Widget::Hierarchy::bmp:dir_minus} :\
+			    {::Widget::Hierarchy::bmp:dir_plus}}]
+		} else {
+		    set bmp ::Widget::Hierarchy::bmp:dir
+		}
+	    }
+	}
+	set fg \#000000
+    } elseif {[string compare $data(-showparent) {}] && \
+	    [string match $data(-showparent) $file]} {
+	set fg \#0000FF
+	set bmp ::Widget::Hierarchy::bmp:up
+    } else {
+	set fg \#a9a9a9
+	if {[file isdirectory $path]} {set bmp ::Widget::Hierarchy::bmp:dir}
+    }
+    return [list $file $data(-font) $bmp $fg] 
+}
+
+## FileList
+# ARGS:	w	hierarchy widget
+#	np	node path	
+# Returns:	directory listing
+##
+;proc FileList { w np } {
+    set pwd [pwd]
+    if {[catch "cd \[file join $np\]"]} {
+	set list {}
+    } else {
+	global tcl_platform
+	upvar \#0 [namespace current]::$w data
+	set str *
+	if {!$data(-showfiles)} { append str / }
+	if {$data(-showall) && [string match unix $tcl_platform(platform)]} {
+	    ## NOTE: Use of non-core lremove
+	    if {[catch {lsort [concat [glob -nocomplain $str] \
+		    [lremove [glob -nocomplain .$str] {. ..}]]} list]} {
+		return {}
+	    }
+	} else {
+	    ## The extra catch is necessary for unusual error conditions
+	    if {[catch {lsort [glob -nocomplain $str]} list]} {
+		return {}
+	    }
+	}
+	set root $data(-root)
+	if {[string compare {} $data(-showparent)] && \
+		[string match $root $np]} {
+	    if {![regexp {^(.:)?/+$} $root] && \
+		    [string compare [file dir $root] $root]} {
+		set list [linsert $list 0 $data(-showparent)]
+	    }
+	}
+    }
+    cd $pwd
+    return $list
+}
+
+;proc FileActivate { w np isopen } {
+    upvar \#0 [namespace current]::$w data
+    set path [eval file join $np]
+    if {[file isdirectory $path]} return
+    if {[string compare $data(-showparent) {}] && \
+	    [string match $data(-showparent) [lindex $np end]]} {
+	$w configure -root [file dir $data(-root)]
+    }
+}
+
+;proc WidgetLook { W np isopen } {
+    upvar \#0 [namespace current]::$W data
+    if {$data(-showall)} {
+	set w [lindex $np end]
+    } else {
+	set w [join $np {}]
+	regsub {\.\.} $w {.} w
+    }
+    if {[string compare [winfo children $w] {}]} {set fg blue} {set fg black}
+    return [list "\[[winfo class $w]\] [lindex $np end]" {} {} $fg]
+}
+
+;proc WidgetList { W np } {
+    upvar \#0 [namespace current]::$W data
+    if {$data(-showall)} {
+	set w [lindex $np end]
+    } else {
+	set w [join $np {}]
+	regsub {\.\.} $w {.} w
+    }
+    set kids {}
+    foreach i [lsort [winfo children $w]] {
+	if {$data(-showall)} {
+	    lappend kids $i
+	} else {
+	    lappend kids [file extension $i]
+	}
+    }
+    return $kids
+}
+
+;proc WidgetActivate { w np isopen } {}
+
+
+## BITMAPS
+##
+image create bitmap ::Widget::Hierarchy::bmp:dir -data {#define folder_width 16
+#define folder_height 12
+static char folder_bits[] = {
+  0x00, 0x1f, 0x80, 0x20, 0x40, 0x20, 0xfc, 0x7f, 0x02, 0x40, 0x02, 0x40,
+  0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0xfe, 0x7f};}
+image create bitmap ::Widget::Hierarchy::bmp:dir_plus -data {#define folder_plus_width 16
+  #define folder_plus_height 12
+static char folder_plus_bits[] = {
+  0x00, 0x1f, 0x80, 0x20, 0x40, 0x20, 0xfc, 0x7f, 0x02, 0x40, 0x82, 0x40,
+  0x82, 0x40, 0xe2, 0x43, 0x82, 0x40, 0x82, 0x40, 0x02, 0x40, 0xfe, 0x7f};}
+image create bitmap ::Widget::Hierarchy::bmp:dir_minus -data {#define folder_minus_width 16
+#define folder_minus_height 12
+static char folder_minus_bits[] = {
+  0x00, 0x1f, 0x80, 0x20, 0x40, 0x20, 0xfc, 0x7f, 0x02, 0x40, 0x02, 0x40,
+  0x02, 0x40, 0xe2, 0x43, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0xfe, 0x7f};}
+image create bitmap ::Widget::Hierarchy::bmp:up -data {#define up.xbm_width 16
+#define up.xbm_height 12
+static unsigned char up.xbm_bits[] = {
+  0x00, 0x00, 0x10, 0x00, 0x38, 0x00, 0x7c, 0x00, 0xfe, 0x00, 0x38, 0x00,
+  0x38, 0x00, 0x38, 0x00, 0xf8, 0x7f, 0xf0, 0x7f, 0xe0, 0x7f, 0x00, 0x00};}
+image create bitmap ::Widget::Hierarchy::bmp:text -data {#define text_width 15
+#define text_height 14
+static char text_bits[] = {
+  0xff,0x07,0x01,0x0c,0x01,0x04,0x01,0x24,0xf9,0x7d,0x01,0x78,0x01,0x40,0xf1,
+  0x41,0x01,0x40,0x01,0x40,0xf1,0x41,0x01,0x40,0x01,0x40,0xff,0x7f};}
+
+}; # end namespace ::Widget::Hierarchy
+
+return
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-dump.tcl
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-dump.tcl	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-dump.tcl	(revision 2476)
@@ -0,0 +1,660 @@
+# util-dump.tcl --
+#
+#	This file implements package ::Utility::dump, which  ...
+#
+# Copyright (c) 1997-8 Jeffrey Hobbs
+#
+# See the file "license.terms" for information on usage and
+# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+
+package require ::Utility
+package provide ::Utility::dump 1.0
+
+namespace eval ::Utility::dump {;
+
+namespace export -clear dump*
+namespace import -force ::Utility::get_opts*
+
+# dump --
+#   outputs recognized item info in source'able form.
+#   Accepts glob style pattern matching for the names
+# Arguments:
+#   type	type of item to dump
+#   -nocomplain	
+#   -filter	pattern
+#		specifies a glob filter pattern to be used by the variable
+#		method as an array filter pattern (it filters down for
+#		nested elements) and in the widget method as a config
+#		option filter pattern
+#   -procs	
+#   -vars	
+#   -recursive	
+#   -imports	
+#   --		forcibly ends options recognition
+# Results:
+#	the values of the requested items in a 'source'able form
+;proc dump {type arg
+s} {
+    if {![llength $args]} {
+	## If no args, assume they gave us something to dump and
+	## we'll try anything
+	set args [list $type]
+	set type multi
+    }
+    ## Args are handled individually by the routines because of the
+    ## variable parameters for each type
+    set prefix [namespace current]::dump_
+    if {[string match {} [set arg [info commands $prefix$type]]]} {
+	set arg [info commands $prefix$type*]
+    }
+    set result {}
+    set code ok
+    switch [llength $arg] {
+	1 { set code [catch {uplevel $arg $args} result] }
+	0 {
+	    set arg [info commands $prefix*]
+	    regsub -all $prefix $arg {} arg
+	    return -code error "unknown [lindex [info level 0] 0] type\
+		    \"$type\", must be one of: [join [lsort $arg] {, }]"
+	}
+	default {
+	    regsub -all $prefix $arg {} arg
+	    return -code error "ambiguous type \"$type\",\
+		    could be one of: [join [lsort $arg] {, }]"
+	}
+    }
+    return -code $code $result
+}
+
+# dump_multi --
+#
+#   Tries to work the args into one of the main dump types:
+#   variable, command, widget, namespace
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+proc dump_multi {args} {
+    array set opts {
+	-nocomplain 0
+    }
+    set namesp [namespace current]
+    set args [get_opts opts $args {-nocomplain 0} {} 1]
+    set code ok
+    if {
+	[catch {uplevel ${namesp}::dump var $args} err] &&
+	[catch {uplevel ${namesp}::dump com $args} err] &&
+	[catch {uplevel ${namesp}::dump wid $args} err] &&
+	[catch {uplevel ${namesp}::dump nam $args} err]
+    } {
+	set result "# unable to resolve type for \"$args\"\n"
+	if {!$opts(-nocomplain)} {
+	    set code error
+	}
+    } else {
+	set result $err
+    }
+    return -code $code [string trimright $result \n]
+}
+
+# dump_command --
+#
+# outputs commands by figuring out, as well as possible,
+# it does not attempt to auto-load anything
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+proc dump_command {args} {
+    array set opts {
+	-nocomplain 0 -origin 0
+    }
+    set args [get_opts opts $args {-nocomplain 0 -origin 0}]
+    if {[string match {} $args]} {
+	if {$opts(-nocomplain)} {
+	    return
+	} else {
+	    return -code error "wrong \# args: dump command ?-nocomplain?"
+	}
+    }
+    set code ok
+    set result {}
+    set namesp [namespace current]
+    foreach arg $args {
+	if {[string compare {} [set cmds \
+		[uplevel info command [list $arg]]]]} {
+	    foreach cmd [lsort $cmds] {
+		if {[lsearch -exact [interp aliases] $cmd] > -1} {
+		    append result "\#\# ALIAS:   $cmd =>\
+			    [interp alias {} $cmd]\n"
+		} elseif {![catch {uplevel ${namesp}::dump_proc \
+			[expr {$opts(-origin)?{-origin}:{}}] \
+			-- [list $cmd]} msg]} {
+		    append result $msg\n
+		} else {
+		    if {$opts(-origin) || [string compare $namesp \
+			    [uplevel namespace current]]} {
+			set cmd [uplevel namespace origin [list $cmd]]
+		    }
+		    append result "\#\# COMMAND: $cmd\n"
+		}
+	    }
+	} elseif {!$opts(-nocomplain)} {
+	    append result "\#\# No known command $arg\n"
+	    set code error
+	}
+    }
+    return -code $code [string trimright $result \n]
+}
+
+# dump_proc --
+#
+#   ADD COMMENTS HERE
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+proc dump_proc {args} {
+    array set opts {
+	-nocomplain 0 -origin 0
+    }
+    set args [get_opts opts $args {-nocomplain 0 -origin 0}]
+    if {[string match {} $args]} {
+	if {$opts(-nocomplain)} {
+	    return
+	} else {
+	    return -code error "wrong \# args: dump proc ?-nocomplain?"
+	}
+    }
+    set code ok
+    set result {}
+    foreach arg $args {
+	set procs [uplevel info command [list $arg]]
+	set count 0
+	if {[string compare $procs {}]} {
+	    foreach p [lsort $procs] {
+		set cmd [uplevel namespace origin [list $p]]
+		set namesp [namespace qualifiers $cmd]
+		if {[string match {} $namesp]} { set namesp :: }
+		if {[string compare [namespace eval $namesp \
+			info procs [list [namespace tail $cmd]]] {}]} {
+		    incr count
+		} else {
+		    continue
+		}
+		set pargs {}
+		foreach a [info args $cmd] {
+		    if {[info default $cmd $a tmp]} {
+			lappend pargs [list $a $tmp]
+		    } else {
+			lappend pargs $a
+		    }
+		}
+		if {$opts(-origin) || [string compare $namesp \
+			[uplevel namespace current]]} {
+		    ## This is ideal, but list can really screw with the
+		    ## format of the body for some procs with odd whitespacing
+		    ## (everything comes out backslashed)
+		    #append result [list proc $cmd $pargs [info body $cmd]]
+		    append result [list proc $cmd $pargs]
+		} else {
+		    ## We don't include the full namespace qualifiers
+		    ## if we are in the namespace of origin
+		    #append result [list proc $p $pargs [info body $cmd]]
+		    append result [list proc $p $pargs]
+		}
+		append result " \{[info body $cmd]\}\n\n"
+	    }
+	}
+	if {!$count && !$opts(-nocomplain)} {
+	    append result "\#\# No known proc $arg\n"
+	    set code error
+	}
+    }
+    return -code $code [string trimright $result \n]
+}
+
+# dump_variable --
+#
+# outputs variable value(s), whether array or simple, namespaced or otherwise
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+## FIX perhaps a little namespace which is necessary here
+proc dump_variable {args} {
+    array set opts {
+	-nocomplain 0 -filter *
+    }
+    set args [get_opts opts $args {-nocomplain 0 -filter 1}]
+    if {[string match {} $args]} {
+	if {$opts(-nocomplain)} {
+	    return
+	} else {
+	    return -code error "wrong \# args: dump variable ?-nocomplain?\
+		    ?-filter glob? ?--? pattern ?pattern ...?"
+	}
+    }
+    set code ok
+    set result {}
+    foreach arg $args {
+	if {[string match {} [set vars [uplevel info vars [list $arg]]]]} {
+	    if {[uplevel info exists $arg]} {
+		set vars $arg
+	    } elseif {!$opts(-nocomplain)} {
+		append result "\#\# No known variable $arg\n"
+		set code error
+		continue
+	    } else { continue }
+	}
+	foreach var [lsort -dictionary $vars] {
+	    set var [uplevel [list namespace which -variable $var]]
+	    upvar $var v
+	    if {[array exists v] || [catch {string length $v}]} {
+		set nest {}
+		append result "array set $var \{\n"
+		foreach i [lsort -dictionary [array names v $opts(-filter)]] {
+		    upvar 0 v\($i\) __ary
+		    if {[array exists __ary]} {
+			append nest "\#\# NESTED ARRAY ELEMENT: $i\n"
+			append nest "upvar 0 [list $var\($i\)] __ary;\
+				[dump v -filter $opts(-filter) __ary]\n"
+		    } else {
+			append result "    [list $i]\t[list $v($i)]\n"
+		    }
+		}
+		append result "\}\n$nest"
+	    } else {
+		append result [list set $var $v]\n
+	    }
+	}
+    }
+    return -code $code [string trimright $result \n]
+}
+
+# dump_namespace --
+#
+#   ADD COMMENTS HERE
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+proc dump_namespace {args} {
+    array set opts {
+	-nocomplain 0 -filter *	-procs 1 -vars 1 -recursive 0 -imports 1
+    }
+    set args [get_opts opts $args {-nocomplain 0 -procs 1 -vars 1 \
+	    -recursive 0 -imports 1} {-procs boolean -vars boolean \
+	    -imports boolean}]
+    if {[string match {} $args]} {
+	if {$opts(-nocomplain)} {
+	    return
+	} else {
+	    return -code error "wrong \# args: dump namespace ?-nocomplain?\
+		    ?-procs 0/1? ?-vars 0/1? ?-recursive? ?-imports 0/1?\
+		    ?--? pattern ?pattern ...?"
+	}
+    }
+    set code ok
+    set result {}
+    foreach arg $args {
+	set cur [uplevel namespace current]
+	# Namespace search order:
+	# If it starts with ::, try and break it apart and see if we find
+	# children matching the pattern
+	# Then do the same in $cur if it has :: anywhere in it
+	# Then look in the calling namespace for children matching $arg
+	# Then look in the global namespace for children matching $arg
+	if {
+	    ([string match ::* $arg] &&
+	    [catch [list namespace children [namespace qualifiers $arg] \
+		    [namespace tail $arg]] names]) &&
+	    ([string match *::* $arg] &&
+	    [catch [list namespace eval $cur [list namespace children \
+		    [namespace qualifiers $arg] \
+		    [namespace tail $arg]] names]]) &&
+	    [catch [list namespace children $cur $arg] names] && 
+	    [catch [list namespace children :: $arg] names]
+	} {
+	    if {!$opts(-nocomplain)} {
+		append result "\#\# No known namespace $arg\n"
+		set code error
+	    }
+	}
+	if {[string compare $names {}]} {
+	    set count 0
+	    foreach name [lsort $names] {
+		append result "namespace eval $name \{;\n\n"
+		if {$opts(-vars)} {
+		    set vars [lremove [namespace eval $name info vars] \
+			    [info globals]]
+		    append result [namespace eval $name \
+			    [namespace current]::dump_variable [lsort $vars]]\n
+		}
+		set procs [namespace eval $name info procs]
+		if {$opts(-procs)} {
+		    set export [namespace eval $name namespace export]
+		    if {[string compare $export {}]} {
+			append result "namespace export -clear $export\n\n"
+		    }
+		    append result [namespace eval $name \
+			    [namespace current]::dump_proc [lsort $procs]]
+		}
+		if {$opts(-imports)} {
+		    set cmds [info commands ${name}::*]
+		    regsub -all ${name}:: $cmds {} cmds
+		    set cmds [lremove $cmds $procs]
+		    foreach cmd [lsort $cmds] {
+			set cmd [namespace eval $name \
+				[list namespace origin $cmd]]
+			if {[string compare $name \
+				[namespace qualifiers $cmd]]} {
+			    ## Yup, it comes from somewhere else
+			    append result [list namespace import -force $cmd]
+			} else {
+			    ## It is probably an alias
+			    set alt [interp alias {} $cmd]
+			    if {[string compare $alt {}]} {
+				append result "interp alias {} $cmd {} $alt"
+			    } else {
+				append result "# CANNOT HANDLE $cmd"
+			    }
+			}
+			append result \n
+		    }
+		    append result \n
+		}
+		if {$opts(-recursive)} {
+		    append result [uplevel [namespace current]::dump_namespace\
+			    [namespace children $name]]
+		}
+		append result "\}; # end of namespace $name\n\n"
+	    }
+	} elseif {!$opts(-nocomplain)} {
+	    append result "\#\# No known namespace $arg\n"
+	    set code error
+	}
+    }
+    return -code $code [string trimright $result \n]
+}
+
+# dump_widget --
+#   Outputs a widget configuration in source'able but human readable form.
+# Arguments:
+#   args	comments
+# Results:
+#   Returns widget configuration in "source"able form.
+#
+proc dump_widget {args} {
+    if {[string match {} [info command winfo]]} {
+	return -code error "winfo not present, cannot dump widgets"
+    }
+    array set opts {
+	-nocomplain 0 -filter .* -default 0
+    }
+    set args [get_opts opts $args {-nocomplain 0 -filter 1 -default 0} \
+	    {-filter regexp}]
+    if {[string match {} $args]} {
+	if {$opts(-nocomplain)} {
+	    return
+	} else {
+	    return -code error "wrong \# args: dump widget ?-nocomplain?\
+		    ?-default? ?-filter regexp? ?--? pattern ?pattern ...?"
+	}
+    }
+    set code ok
+    set result {}
+    foreach arg $args {
+	if {[string compare {} [set ws [info command $arg]]]} {
+	    foreach w [lsort $ws] {
+		if {[winfo exists $w]} {
+		    if {[catch {$w configure} cfg]} {
+			append result "\#\# Widget $w\
+				does not support configure method"
+			if {!$opts(-nocomplain)} {
+			    set code error
+			}
+		    } else {
+			append result "\#\# [winfo class $w] $w\n$w configure"
+			foreach c $cfg {
+			    if {[llength $c] != 5} continue
+			    ## Filter options according to user provided
+			    ## filter, and then check to see that they
+			    ## are a default
+			    if {[regexp -nocase -- $opts(-filter) $c] && \
+				    ($opts(-default) || [string compare \
+				    [lindex $c 3] [lindex $c 4]])} {
+				append result " \\\n\t[list [lindex $c 0]\
+					[lindex $c 4]]"
+			    }
+			}
+			append result \n
+		    }
+		}
+	    }
+	} elseif {!$opts(-nocomplain)} {
+	    append result "\#\# No known widget $arg\n"
+	    set code error
+	}
+    }
+    return -code $code [string trimright $result \n]
+}
+
+# dump_canvas --
+#
+#   ADD COMMENTS HERE
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+proc dump_canvas {args} {
+    if {[string match {} [info command winfo]]} {
+	return -code error "winfo not present, cannot dump widgets"
+    }
+    array set opts {
+	-nocomplain 0 -default 0 -configure 0 -filter .*
+    }
+    set args [get_opts opts $args {-nocomplain 0 -filter 1 -default 0 \
+	    -configure 0} {-filter regexp}]
+    if {[string match {} $args]} {
+	if {$opts(-nocomplain)} {
+	    return
+	} else {
+	    return -code error "wrong \# args: dump canvas ?-nocomplain?\
+		    ?-configure? ?-default? ?-filter regexp? ?--? pattern\
+		    ?pattern ...?"
+	}
+    }
+    set code ok
+    set result {}
+    foreach arg $args {
+	if {[string compare {} [set ws [info command $arg]]]} {
+	    foreach w [lsort $ws] {
+		if {[winfo exists $w]} {
+		    if {[string compare Canvas [winfo class $w]]} {
+			append result "\#\# Widget $w is not a canvas widget"
+			if {!$opts(-nocomplain)} {
+			    set code error
+			}
+		    } else {
+			if {$opts(-configure)} {
+			    append result [dump_widget -filter $opts(-filter) \
+				    [expr {$opts(-default)?{-default}:{-no}}] \
+				    $w]
+			    append result \n
+			} else {
+			    append result "\#\# Canvas $w items\n"
+			}
+			## Output canvas items in numerical order
+			foreach i [lsort -integer [$w find all]] {
+			    append result "\#\# Canvas item $i\n" \
+				    "$w create [$w type $i] [$w coords $i]"
+			    foreach c [$w itemconfigure $i] {
+				if {[llength $c] != 5} continue
+				if {$opts(-default) || [string compare \
+					[lindex $c 3] [lindex $c 4]]} {
+				    append result " \\\n\t[list [lindex $c 0]\
+					    [lindex $c 4]]"
+				}
+			    }
+			    append result \n
+			}
+		    }
+		}
+	    }
+	} elseif {!$opts(-nocomplain)} {
+	    append result "\#\# No known widget $arg\n"
+	    set code error
+	}
+    }
+    return -code $code [string trimright $result \n]
+}
+
+# dump_text --
+#
+#   ADD COMMENTS HERE
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+proc dump_text {args} {
+    if {[string match {} [info command winfo]]} {
+	return -code error "winfo not present, cannot dump widgets"
+    }
+    array set opts {
+	-nocomplain 0 -default 0 -configure 0 -start 1.0 -end end
+    }
+    set args [get_opts opts $args {-nocomplain 0 -default 0 \
+	    -configure 0 -start 1 -end 1}]
+    if {[string match {} $args]} {
+	if {$opts(-nocomplain)} {
+	    return
+	} else {
+	    return -code error "wrong \# args: dump text ?-nocomplain?\
+		    ?-configure? ?-default? ?-filter regexp? ?--? pattern\
+		    ?pattern ...?"
+	}
+    }
+    set code ok
+    set result {}
+    foreach arg $args {
+	if {[string compare {} [set ws [info command $arg]]]} {
+	    foreach w [lsort $ws] {
+		if {[winfo exists $w]} {
+		    if {[string compare Text [winfo class $w]]} {
+			append result "\#\# Widget $w is not a text widget"
+			if {!$opts(-nocomplain)} {
+			    set code error
+			}
+		    } else {
+			if {$opts(-configure)} {
+			    append result [dump_widget -filter $opts(-filter) \
+				    [expr {$opts(-default)?{-default}:{-no}}] \
+				    $w]
+			    append result \n
+			} else {
+			    append result "\#\# Text $w dump\n"
+			}
+			catch {unset tags}
+			catch {unset marks}
+			set text {}
+			foreach {k v i} [$w dump $opts(-start) $opts(-end)] {
+			    switch -exact $k {
+				text {
+				    append text $v
+				}
+				window {
+				    # must do something with windows
+				    # will require extra options to determine
+				    # whether to rebuild the window or to
+				    # just reference it
+				    append result "#[list $w] window create\
+					    $i [$w window configure $i]\n"
+				}
+				mark {set marks($v) $i}
+				tagon {lappend tags($v) $i}
+				tagoff {lappend tags($v) $i}
+				default {
+				    error "[info level 0]:\
+					    should not be in this switch arm"
+				}
+			    }
+			}
+			append result "[list $w insert $opts(-start) $text]\n"
+			foreach i [$w tag names] {
+			    append result "[list $w tag configure $i]\
+				    [$w tag configure $i]\n"
+			    if {[info exists tags($i)]} {
+				append result "[list $w tag add $i]\
+					$tags($i)\n"
+			    }
+			    foreach seq [$w tag bind $i] {
+				append result "[list $w tag bind $i $seq \
+					[$w tag bind $i $seq]]\n"
+			    }
+			}
+			foreach i [array names marks] {
+			    append result "[list $w mark set $i $marks($i)]\n"
+			}
+		    }
+		}
+	    }
+	} elseif {!$opts(-nocomplain)} {
+	    append result "\#\# No known widget $arg\n"
+	    set code error
+	}
+    }
+    return -code $code [string trimright $result \n]
+}
+
+# dump_interface -- NOT FUNCTIONAL
+#
+#   the end-all-be-all of Tk dump commands.  This should dump the widgets
+#   of an interface with all the geometry management.
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+proc dump_interface {args} {
+
+}
+
+# dump_state --
+#
+#   This dumps the state of an interpreter.  This is primarily a wrapper
+#   around other dump commands with special options.
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+proc dump_state {args} {
+
+}
+
+
+## Force the parent namespace to include the exported commands
+##
+catch {namespace eval ::Utility namespace import -force ::Utility::dump::*}
+
+}; # end of namespace ::Utility::dump
+
+return
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-string.tcl
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-string.tcl	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-string.tcl	(revision 2476)
@@ -0,0 +1,149 @@
+# util-string.tcl --
+#
+#	This file implements package ::Utility::string, which  ...
+#
+# Copyright (c) 1997 Jeffrey Hobbs
+#
+# See the file "license.terms" for information on usage and
+# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+#
+
+#package require NAME VERSION
+package provide ::Utility::string 1.0; # SET VERSION
+
+namespace eval ::Utility::string {;
+
+namespace export -clear *
+
+# string_cap --
+#
+#   Capitalize a string, or one char in it
+#
+# Arguments:
+#   str		input string
+#   idx		idx to capitalize
+# Results:
+#   Returns string with specified capitalization
+#
+proc string_cap {str {idx -1}} {
+    if {$i>-1} {
+	if {[string length $str]>$i} {
+	    return $str
+	} else {
+	}
+    } else {
+	return [string toupper [string index $str 0]][string tolower \
+		[string range $str 1 end]]
+    }
+}
+
+# string_reverse --
+#   reverses input string
+# Arguments:
+#   s		input string to reverse
+# Returns:
+#   string with chars reversed
+#
+;proc string_reverse s {
+    if {[set i [string len $s]]} {
+	while {$i} {append r [string index $s [incr i -1]]}
+	return $r
+    }
+}
+
+# obfuscate --
+#   If I describe it, it ruins it...
+# Arguments:
+#   s		input string
+# Returns:
+#   output
+#
+;proc obfuscate s {
+    if {[set len [string len $s]]} {
+	set i -1
+	while {[incr i]<$len} {
+	    set c [string index $s $i]
+	    if {[regexp "\[\]\\\[ \{\}\t\n\"\]" $c]} {
+		append r $c
+	    } else {
+		scan $c %c c
+		append r \\[format %0.3o $c]
+	    }
+	}
+	return $r
+    }
+}
+
+# untabify --
+#   removes tabs from a string, replacing with appropriate number of spaces
+# Arguments:
+#   str		input string
+#   tablen	tab length, defaults to 8
+# Returns:
+#   string sans tabs
+#
+;proc untabify {str {tablen 8}} {
+    set out {}
+    while {[set i [string first "\t" $str]] != -1} {
+	set j [expr {$tablen-($i%$tablen)}]
+	append out [string range $str 0 [incr i -1]][format %*s $j { }]
+	set str [string range $str [incr i 2] end]
+    }
+    return $out$str
+}
+
+# tabify --
+#   converts excess spaces to tab chars
+# Arguments:
+#   str		input string
+#   tablen	tab length, defaults to 8
+# Returns:
+#   string with tabs replacing excess space where appropriate
+#
+;proc tabify {str {tablen 8}} {
+    ## We must first untabify so that \t is not interpreted to be one char
+    set str [untabify $str]
+    set out {}
+    while {[set i [string first { } $str]] != -1} {
+	## Align i to the upper tablen boundary
+	set i [expr {$i+$tablen-($i%$tablen)-1}]
+	set s [string range $str 0 $i]
+	if {[string match {* } $s]} {
+	    append out [string trimright $s { }]\t
+	} else {
+	    append out $s
+	}
+	set str [string range $str [incr i] end]
+    }
+    return $out$str
+}
+
+# wrap_lines --
+#   wraps text to a specific max line length
+# Arguments:
+#   txt		input text
+#   len		desired max line length+1, defaults to 75
+#   P		paragraph boundary chars, defaults to \n\n
+#   P2		substitute for $P while processing, defaults to \254
+#		this char must not be in the input text
+# Returns:
+#   text with lines no longer than $len, except where a single word
+#   is longer than $len chars.  does not preserve paragraph boundaries.
+#
+;proc wrap_lines "txt {len 75} {P \n\n} {P2 \254}" {
+    regsub -all $P $txt $P2 txt
+    regsub -all "\n" $txt { } txt
+    incr len -1
+    set out {}
+    while {[string len $txt]>$len} {
+	set i [string last { } [string range $txt 0 $len]]
+	if {$i == -1 && [set i [string first { } $txt]] == -1} break
+	append out [string trim [string range $txt 0 [incr i -1]]]\n
+	set txt [string range $txt [incr i 2] end]
+    }
+    regsub -all $P2 $out$txt $P txt
+    return $txt
+}
+
+}; # end of namespace ::Utility::string
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/console.tcl
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/console.tcl	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/console.tcl	(revision 2476)
@@ -0,0 +1,79 @@
+menu .menu
+toplevel .tk-R -menu .menu
+wm protocol .tk-R WM_DELETE_WINDOW {}
+pack [frame .tk-R.toolbar] -anchor n -fill x
+pack [text .tk-R.term -bg white -font [list Courier 14]] -expand true -fill both
+
+## Implements a "stop button" which sends SIGINT to the R process.
+## Unfortunately, SIGINTs are not handled gracefully...
+# pack [frame .tk-R.toolbar.stop -container true] -side right
+# set stopscript $env(R_HOME)/library/tcltk/exec/stopit.tcl 
+# update
+# exec wish -use [winfo id .tk-R.toolbar.stop] < $stopscript [pid] &
+
+.tk-R.term mark set insert-mark "end - 1 chars"
+focus .tk-R.term
+
+set hist {}
+set nhist 0
+set saved {}
+
+bind .tk-R.term <Return> {
+    .tk-R.term see end
+    .tk-R.term insert end "\n"
+    .tk-R.term mark set insert-mark "end - 1 chars"
+    .tk-R.term mark gravity insert-mark right
+    set terminput [.tk-R.term get process-mark "end - 1 chars"]
+    break
+}
+
+bind .tk-R.term <Up> {
+    global hist phist nhist saved
+    if ($phist<=0) break
+    if ($phist==$nhist) {
+        set saved  [.tk-R.term get process-mark "end - 1 chars"]
+    }
+    .tk-R.term delete process-mark "end - 1 chars"
+    incr phist -1
+    .tk-R.term insert process-mark [lindex $hist $phist]
+    break
+}
+
+bind .tk-R.term <Down> {
+    global hist phist nhist saved
+    if ($phist>=$nhist) break
+    .tk-R.term delete process-mark "end - 1 chars"
+    incr phist 
+    if ($phist<$nhist) {
+	.tk-R.term insert process-mark [lindex $hist $phist]
+    } else {
+	.tk-R.term insert process-mark $saved
+    }
+    break
+}
+
+proc Rc_read { prompt addtohistory } {
+    global terminput hist nhist phist
+    .tk-R.term mark set insert-mark "end - 1 chars"
+    .tk-R.term mark gravity insert-mark left
+    .tk-R.term insert insert-mark $prompt
+    .tk-R.term mark gravity insert-mark right
+    .tk-R.term mark set process-mark "end - 1 chars"
+    .tk-R.term mark gravity process-mark left
+    .tk-R.term see end
+    set phist $nhist
+    tkwait variable terminput
+    .tk-R.term mark set insert end
+    if ($addtohistory) then {
+	lappend hist [string trimright $terminput]
+	incr nhist
+    }
+    return $terminput
+}
+
+proc Rc_write { buf } {
+    .tk-R.term insert insert-mark $buf
+    .tk-R.term see end
+    #.tk-R.term mark set insert end
+    #update
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-number.tcl
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-number.tcl	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-number.tcl	(revision 2476)
@@ -0,0 +1,101 @@
+# util-number.tcl --
+#
+#	This file implements package ::Utility::number, which  ...
+#
+# Copyright (c) 1997 Jeffrey Hobbs
+#
+# See the file "license.terms" for information on usage and
+# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+
+#package require NAME VERSION
+package provide ::Utility::number 1.0
+
+namespace eval ::Utility::number {;
+
+namespace export -clear *
+
+# get_square_size --
+#   gets the minimum square size for an input
+# Arguments:
+#   num		number
+# Returns:
+#   returns smallest square size that would fit number
+#
+;proc get_square_size num {
+    set i 1
+    while {[expr {$i*$i}] < $num} { incr i }
+    return $i
+}
+
+# roman2dec --
+#   converts a roman numeral to decimal
+# Arguments:
+#   x		number in roman numeral format
+# Returns:
+#   decimal number
+#
+;proc roman2dec {x} {
+    set result ""
+    foreach elem {
+	{ 1000	m }	{ 900	cm }    
+	{ 500	d }	{ 400	id }    
+	{ 100	c }	{ 90	ic }    
+	{ 50	l }    
+	{ 10	x }	{ 9	ix }    
+	{ 5	v }	{ 4	iv }    
+	{ 1	i }
+    } {
+	set digit [lindex $elem 0]
+	set roman [lindex $elem 1]
+	while {$x >= $digit} {
+	    append result $roman
+	    incr x -$digit
+	}
+    }
+    return $result
+}
+
+# bin2hex --
+#   converts binary to hex number
+# Arguments:
+#   bin		number in binary format
+# Returns:
+#   hexadecimal number
+#
+;proc bin2hex bin {
+    ## No sanity checking is done
+    array set t {
+	0000 0 0001 1 0010 2 0011 3 0100 4
+	0101 5 0110 6 0111 7 1000 8 1001 9
+	1010 a 1011 b 1100 c 1101 d 1110 e 1111 f
+    }
+    set diff [expr {4-[string length $bin]%4}]
+    if {$diff != 4} {
+        set bin [format %0${diff}d$bin 0]
+    }
+    regsub -all .... $bin {$t(&)} hex
+    return [subst $hex]
+}
+
+
+# hex2bin --
+#   converts hex number to bin
+# Arguments:
+#   hex		number in hex format
+# Returns:
+#   binary number (in chars, not binary format)
+#
+;proc hex2bin hex {
+    array set t {
+	0 0000 1 0001 2 0010 3 0011 4 0100
+	5 0101 6 0110 7 0111 8 1000 9 1001
+	a 1010 b 1011 c 1100 d 1101 e 1110 f 1111
+	A 1010 B 1011 C 1100 D 1101 E 1110 F 1111
+    }
+    regsub {^0[xX]} $hex {} hex
+    regsub -all . $hex {$t(&)} bin
+    return [subst $bin]
+}
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/widget.tcl
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/widget.tcl	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/widget.tcl	(revision 2476)
@@ -0,0 +1,975 @@
+## Barebones requirements for creating and querying megawidgets
+##
+## Copyright 1997-8 Jeffrey Hobbs, jeff.hobbs@acm.org
+##
+## Initiated: 5 June 1997
+## Last Update: 1998
+
+package require Tk 8
+package require ::Utility
+package provide Widget 2.0
+
+##------------------------------------------------------------------------
+## PROCEDURE
+##	widget
+##
+## DESCRIPTION
+##	Implements and modifies megawidgets
+##
+## ARGUMENTS
+##	widget <subcommand> ?<args>?
+##
+## <classname> specifies a global array which is the name of a class and
+## contains options database information.
+##
+## add classname option ?args?
+##	adds ...
+##
+## create classname
+##	creates the widget class $classname based on the specifications
+##	in the global array of the same name
+##
+## classes ?pattern?
+##	returns the classes created with this command.
+##
+## delete classname option ?args?
+##	deletes ...
+##
+## value classname key
+##	returns the value of a key from the special class variable.
+##
+## OPTIONS
+##	none
+##
+## RETURNS
+##	the namespace for the widget class (::Widget::$CLASS)
+##
+## NAMESPACE & STATE
+##	The namespace Widget is used, with public procedure "widget".
+##
+##------------------------------------------------------------------------
+##
+## For a well-commented example for creating a megawidget using this method,
+## see the ScrolledText example at the end of the file.
+##
+## SHORT LIST OF IMPORTANT THINGS TO KNOW:
+##
+## Specify the "type", "base", & "components" keys of the $CLASS global array
+##
+## In the $w global array that is created for each instance of a megawidget,
+## the following keys are set by the "widget create $CLASS" procedure:
+##   "base", "basecmd", "container", "class", any option specified in the
+##   $CLASS array, each component will have a named key
+##
+## The following public methods are created for you in the namespace:
+##   cget	::Widget::$CLASS::_cget
+##   configure	::Widget::$CLASS::_configure
+##   destruct	::Widget::$CLASS::_destruct
+##   subwidget	::Widget::$CLASS::_subwidget
+## The following additional submethods are required (you write them):
+##   construct	::Widget::$CLASS::construct
+##   configure	::Widget::$CLASS::configure
+## You may want the following that will be called when appropriate:
+##   init	::Widget::$CLASS::init
+##	(after initial configuration)
+##   destruct	::Widget::$CLASS::destruct
+##	(called first thing when widget is being destroyed)
+##
+## All ::Widget::$CLASS::_* commands are considered public methods.  The
+## megawidget routine will match your options and methods on a unique
+## substring basis.
+##
+## END OF SHORT LIST
+
+
+## Dummy call for indexers
+proc widget args {}
+
+namespace eval ::Widget {;
+
+namespace export -clear widget
+variable CLASSES
+variable CONTAINERS {frame toplevel}
+namespace import -force ::Utility::get_opts*
+
+;proc widget {cmd args} {
+    ## Establish the prefix of public commands
+    set prefix [namespace current]::_
+    if {[string match {} [set arg [info commands $prefix$cmd]]]} {
+	set arg [info commands $prefix$cmd*]
+    }
+    switch [llength $arg] {
+	1 { return [uplevel $arg $args] }
+	0 {
+	    set arg [info commands $prefix*]
+	    regsub -all $prefix $arg {} arg
+	    return -code error "unknown [lindex [info level 0] 0] method\
+		    \"$cmd\", must be one of: [join [lsort $arg] {, }]"
+	}
+	default {
+	    regsub -all $prefix $arg {} arg
+	    return -code error "ambiguous method \"$cmd\",\
+		    could be one of: [join [lsort $arg] {, }]"
+	}
+    }
+}
+
+;proc verify_class {CLASS} {
+    variable CLASSES
+    if {![info exists CLASSES($CLASS)]} {
+	return -code error "no known class \"$CLASS\""
+    }
+    return
+}
+
+;proc _add {CLASS what args} {
+    variable CLASSES
+    verify_class $CLASS
+    if {[string match ${what}* options]} {
+	add_options $CLASSES($CLASS) $CLASS $args
+    } else {
+	return -code error "unknown type for add, must be one of:\
+		options, components"
+    }
+}
+
+;proc _find_class {CLASS {root .}} {
+    if {[string match $CLASS [winfo class $root]]} {
+	return $root
+    } else {
+	foreach w [winfo children $root] {
+	    set w [_find_class $CLASS $w]
+	    if {[string compare {} $w]} {
+		return $w
+	    }
+	}
+    }
+}
+
+;proc _delete {CLASS what args} {
+    variable CLASSES
+    verify_class $CLASS
+}
+
+;proc _classes {{pattern "*"}} {
+    variable CLASSES
+    return [array names CLASSES $pattern]
+}
+
+;proc _value {CLASS key} {
+    variable CLASSES
+    verify_class $CLASS
+    upvar \#0 $CLASSES($CLASS)::class class
+    if {[info exists class($key)]} {
+	return $class($key)
+    } else {
+	return -code error "unknown key \"$key\" in class \"$CLASS\""
+    }
+}
+
+## handle
+## Handles the method calls for a widget.  This is the command to which
+## all megawidget dummy commands are redirected for interpretation.
+##
+;proc handle {namesp w subcmd args} {
+    upvar \#0 ${namesp}::$w data
+    if {[string match {} [set arg [info commands ${namesp}::_$subcmd]]]} {
+	set arg [info commands ${namesp}::_$subcmd*]
+    }
+    set num [llength $arg]
+    if {$num==1} {
+	return [uplevel $arg [list $w] $args]
+    } elseif {$num} {
+	regsub -all "${namesp}::_" $arg {} arg
+	return -code error "ambiguous method \"$subcmd\",\
+		could be one of: [join $arg {, }]"
+    } elseif {[catch {uplevel [list $data(basecmd) $subcmd] $args} err]} {
+	return -code error $err
+    } else {
+	return $err
+    }
+}
+
+## construct
+## Constructs the megawidget instance instantiation proc based on the
+## current knowledge of the megawidget. 
+##
+;proc construct {namesp CLASS} {
+    upvar \#0 ${namesp}::class class \
+	    ${namesp}::components components
+
+    lappend dataArrayVals [list class $CLASS]
+    if {[string compare $class(type) $class(base)]} {
+	## If -type and -base don't match, we need a special setup
+	lappend dataArrayVals "base \$w.[list [lindex $components(base) 1]]" \
+		"basecmd ${namesp}::\$w.[list [lindex $components(base) 1]]" \
+		"container ${namesp}::.\$w"
+	## If the base widget is not the container, then we want to rename
+	## its widget commands and add the CLASS and container bind tables
+	## to its bindtags in case certain bindings are made
+	## Interp alias is the optimal solution, but exposes
+	## a bug in Tcl7/8 when renaming aliases
+	#interp alias {} \$base {} ::Widget::handle $namesp \$w
+	set renamingCmd "rename \$base \$data(basecmd)
+	;proc ::\$base args \"uplevel ::Widget::handle $namesp \[list \$w\] \\\$args\"
+	bindtags \$base \[linsert \[bindtags \$base\] 1\
+		[expr {[string match toplevel $class(type)]?{}:{$w}}] $CLASS\]"
+    } else {
+	## -type and -base are the same, we only create for one
+	lappend dataArrayVals "base \$w" \
+		"basecmd ${namesp}::\$w" \
+		"container ${namesp}::\$w"
+	if {[string compare {} [lindex $components(base) 3]]} {
+	    lappend dataArrayVals "[lindex $components(base) 3] \$w"
+	}
+	## When the base widget and container are the same, we have a
+	## straightforward renaming of commands
+	set renamingCmd {}
+    }
+    set baseConstruction {}
+    foreach name [array names components] {	
+	if {[string match base $name]} {
+	    continue
+	}
+	foreach {type wid opts} $components($name) break
+	lappend dataArrayVals "[list $name] \$w.[list $wid]"
+	lappend baseConstruction "$type \$w.[list $wid] $opts"
+	if {[string match toplevel $type]} {
+	    lappend baseConstruction "wm withdraw \$data($name)"
+	}
+    }
+    set dataArrayVals [join $dataArrayVals " \\\n\t"]
+    ## the lsort ensure that parents are created before children
+    set baseConstruction [join [lsort -index 1 $baseConstruction] "\n    "]
+
+    ## More of this proc could be configured ahead of time for increased
+    ## construction speed.  It's delicate, so handle with extreme care.
+    ;proc ${namesp}::$CLASS {w args} [subst {
+	variable options
+	upvar \#0 ${namesp}::\$w data
+	$class(type) \$w -class $CLASS
+	[expr [string match toplevel $class(type)]?{wm withdraw \$w\n}:{}]
+	## Populate data array with user definable options
+	foreach o \[array names options\] {
+	    if {\[string match -* \$options(\$o)\]} continue
+	    set data(\$o) \[option get \$w \[lindex \$options(\$o) 0\] $CLASS\]
+	}
+
+	## Populate the data array
+	array set data \[list $dataArrayVals\]
+	## Create all the base and component widgets
+	$baseConstruction
+
+	## Allow for an initialization proc to be eval'ed
+	## The user must create one
+	if {\[catch {construct \$w} err\]} {
+	    catch {_destruct \$w}
+	    return -code error \"megawidget construction error: \$err\"
+	}
+
+	set base \$data(base)
+	rename \$w \$data(container)
+	$renamingCmd
+	;proc ::\$w args \"uplevel ::Widget::handle $namesp \[list \$w\] \\\$args\"
+	#interp alias {} \$w {} ::Widget::handle $namesp \$w
+
+	## Do the configuring here and eval the post initialization procedure
+	if {(\[string compare {} \$args\] && \
+		\[catch {uplevel 1 ${namesp}::_configure \$w \$args} err\]) || \
+		\[catch {${namesp}::init \$w} err\]} {
+	    catch { ${namesp}::_destruct \$w }
+	    return -code error \"megawidget initialization error: \$err\"
+	}
+
+	return \$w
+    }
+    ]
+}
+
+;proc add_options {namesp CLASS optlist} {
+    upvar \#0 ${namesp}::class class \
+	    ${namesp}::options options \
+	    ${namesp}::widgets widgets
+    ## Go through the option definition, substituting for ALIAS where
+    ## necessary and setting up the options database for this $CLASS
+    ## There are several possible formats:
+    ## 1. -optname -optnamealias
+    ## 2. -optname dbname dbcname value
+    ## 3. -optname ALIAS componenttype option
+    ## 4. -optname ALIAS componenttype option dbname dbcname
+    foreach optdef $optlist {
+	foreach {optname alias type opt dbname dbcname} $optdef break
+	set len [llength $optdef]
+	switch -glob -- $alias {
+	    -*	{
+		if {$len != 2} {
+		    return -code error "wrong \# args for option alias,\
+			    must be: {-aliasoptioname -realoptionname}"
+		}
+		set options($optname) $alias
+		continue
+	    }
+	    ALIAS - alias {
+		if {$len != 4 && $len != 6} {
+		    return -code error "wrong \# args for ALIAS, must be:\
+			    {-optionname ALIAS componenttype option\
+			    ?databasename databaseclass?}"
+		}
+		if {![info exists widgets($type)]} {
+		    return -code error "cannot create alias \"$optname\" to\
+			    $CLASS component type \"$type\" option \"$opt\":\
+			    component type does not exist"
+		} elseif {![info exists config($type)]} {
+		    if {[string compare toplevel $type]} {
+			set w .__widget__$type
+			catch {destroy $w}
+			## Make sure the component widget type exists,
+			## returns the widget name,
+			## and accepts configure as a subcommand
+			if {[catch {$type $w} result] || \
+				[string compare $result $w] || \
+				[catch {$w configure} config($type)]} {
+			    ## Make sure we destroy it if it was a bad widget
+			    catch {destroy $w}
+			    ## Or rename it if it was a non-widget command
+			    catch {rename $w {}}
+			    return -code error "invalid widget type \"$type\""
+			}
+			catch {destroy $w}
+		    } else {
+			set config($type) [. configure]
+		    }
+		}
+		set i [lsearch -glob $config($type) "$opt\[ \t\]*"]
+		if {$i == -1} {
+		    return -code error "cannot create alias \"$o\" to $CLASS\
+			    component type \"$type\" option \"$opt\":\
+			    option does not exist"
+		}
+		if {$len==4} {
+		    foreach {opt dbname dbcname def} \
+			    [lindex $config($type) $i] break
+		} elseif {$len==6} {
+		    set def [lindex [lindex $config($type) $i] 3]
+		}
+	    }
+	    default {
+		if {$len != 4} {
+		    return -code error "wrong \# args for option \"$optdef\",\
+			    must be:\
+			    {-optioname databasename databaseclass defaultval}"
+		}
+		foreach {optname dbname dbcname def} $optdef break
+	    }
+	}
+	set options($optname) [list $dbname $dbcname $def]
+	option add *$CLASS.$dbname $def widgetDefault
+    }
+}
+
+;proc _create {CLASS args} {
+    if {![string match {[A-Z]*} $CLASS] || [string match { } $CLASS]} {
+	return -code error "invalid class name \"$CLASS\": it must begin\
+		with a capital letter and contain no spaces"
+    }
+
+    variable CONTAINERS
+    variable CLASSES
+    set namesp [namespace current]::$CLASS
+    namespace eval $namesp {
+	variable class
+	variable options
+	variable components
+	variable widgets
+	catch {unset class}
+	catch {unset options}
+	catch {unset components}
+	catch {unset widgets}
+    }
+    upvar \#0 ${namesp}::class class \
+	    ${namesp}::options options \
+	    ${namesp}::components components \
+	    ${namesp}::widgets widgets
+
+    get_opts2 classopts $args {
+	-type		frame
+	-base		frame
+	-components	{}
+	-options	{}
+    } {
+	-type		list
+	-base		list
+	-components	list
+	-options	list
+    }
+
+    ## First check to see that their container type is valid
+    ## I'd like to include canvas and text, but they don't accept the
+    ## -class option yet, which would thus require some voodoo on the
+    ## part of the constructor to make it think it was the proper class
+    if {![regexp ^([join $CONTAINERS |])\$ $classopts(-type)]} {
+	return -code error "invalid class container type\
+		\"$classopts(-type)\", must be one of:\
+		[join $CONTAINERS {, }]"
+    }
+
+    ## Then check to see that their base widget type is valid
+    ## We will create a default widget of the appropriate type just in
+    ## case they use the DEFAULT keyword as a default value in their
+    ## megawidget class definition
+    if {[info exists classopts(-base)]} {
+	## We check to see that we can create the base, that it returns
+	## the same widget value we put in, and that it accepts cget.
+	if {[string match toplevel $classopts(-base)] && \
+		[string compare toplevel $classopts(-type)]} {
+	    return -code error "\"toplevel\" is not allowed as the base\
+		    widget of a megawidget (perhaps you intended it to\
+		    be the class type)"
+	}
+    } else {
+	## The container is the default base widget
+	set classopts(-base) $classopts(-type)
+    }
+
+    ## Ensure that the class is set correctly
+    array set class [list class $CLASS \
+	    base $classopts(-base) \
+	    type $classopts(-type)]
+
+    set widgets($class(type)) 0
+
+    if {![info exists classopts(-components)]} {
+	set classopts(-components) {}
+    }
+    foreach compdef $classopts(-components) {
+	set opts {}
+	switch [llength $compdef] {
+	    0 continue
+	    1 { set name [set type [set wid $compdef]] }
+	    2 {
+		set type [lindex $compdef 0]
+		set name [set wid [lindex $compdef 1]]
+	    }
+	    default {
+		foreach {type name wid opts} $compdef break
+		set opts [string trim $opts]
+	    }
+	}
+	if {[info exists components($name)]} {
+	    return -code error "component name \"$name\" occurs twice\
+		    in $CLASS class"
+	}
+	if {[info exists widnames($wid)]} {
+	    return -code error "widget name \"$wid\" occurs twice\
+		    in $CLASS class"
+	}
+	if {[regexp {(^[\.A-Z]| |\.$)} $wid]} {
+	    return -code error "invalid $CLASS class component widget\
+		    name \"$wid\": it cannot begin with a capital letter,\
+		    contain spaces or start or end with a \".\""
+	}
+	if {[string match *.* $wid] && \
+		![info exists widnames([file root $wid])]} {
+	    ## If the widget name contains a '.', then make sure we will
+	    ## have created all the parents first.  [file root $wid] is
+	    ## a cheap trick to remove the last .child string from $wid
+	    return -code error "no specified parent for $CLASS class\
+		    component widget name \"$wid\""
+	}
+	if {[string match base $type]} {
+	    set type $class(base)
+	    set components(base) [list $type $wid $opts $name]
+	    if {[string match $type $class(type)]} continue
+	}
+	set components($name) [list $type $wid $opts]
+	set widnames($wid) 0
+	set widgets($type) 0
+    }
+    if {![info exists components(base)]} {
+	set components(base) [list $class(base) $class(base) {}]
+	# What should we really do here?
+	#set components($class(base)) $components(base)
+	set widgets($class(base)) 0
+	if {![regexp ^([join $CONTAINERS |])\$ $class(base)] && \
+		![info exists components($class(base))]} {
+	    set components($class(base)) $components(base)
+	}
+    }
+
+    ## Process options
+    add_options $namesp $CLASS $classopts(-options)
+
+    namespace eval $namesp {
+	set CLASS [namespace tail [namespace current]]
+	## The _destruct must occur to remove excess state elements.
+	## The [winfo class %W] will work in this Destroy, which is necessary
+	## to determine if we are destroying the actual megawidget container.
+	bind $CLASS <Destroy> [namespace code {
+	    if {[string compare {} [::widget classes [::winfo class %W]]]} {
+		if [catch {_destruct %W} err] { puts $err }
+	    }
+	}]
+    }
+    ## This creates the basic constructor procedure for the class
+    ## as ${namesp}::$CLASS
+    construct $namesp $CLASS
+
+    ## Both $CLASS and [string tolower $CLASS] commands will be created
+    ## in the global namespace
+    namespace eval $namesp [list namespace export -clear $CLASS]
+    namespace eval :: [list namespace import -force ${namesp}::$CLASS]
+    interp alias {} ::[string tolower $CLASS] {} ::$CLASS
+
+    ## These are provided so that errors due to lack of the command
+    ## existing don't arise.  Since they are stubbed out here, the
+    ## user can't depend on 'unknown' or 'auto_load' to get this proc.
+    if {[string match {} [info commands ${namesp}::construct]]} {
+	;proc ${namesp}::construct {w} {
+	    # the user should rewrite this
+	    # without the following error, a simple megawidget that was just
+	    # a frame would be created by default
+	    return -code error "user must write their own\
+		    [lindex [info level 0] 0] function"
+	}
+    }
+    if {[string match {} [info commands ${namesp}::init]]} {
+	;proc ${namesp}::init {w} {
+	    # the user should rewrite this
+	}
+    }
+
+    ## The user is not supposed to change this proc
+    set comps [lsort [array names components]]
+    ;proc ${namesp}::_subwidget {w {widget return} args} [subst {
+	variable \$w
+	upvar 0 \$w data
+	switch -- \$widget {
+	    return	{
+		return [list $comps]
+	    }
+	    all {
+		if {\[string compare {} \$args\]} {
+		    foreach sub [list $comps] {
+			catch {uplevel 1 \[list \$data(\$sub)\] \$args}
+		    }
+		} else {
+		    return [list $comps]
+		}
+	    }
+	    [join $comps { - }] {
+		if {\[string compare {} \$args\]} {
+		    return \[uplevel 1 \[list \$data(\$widget)\] \$args\]
+		} else {
+		    return \$data(\$widget)
+		}
+	    }
+	    default {
+		return -code error \"No \$data(class) subwidget \\\"\$widget\\\",\
+			must be one of: [join $comps {, }]\"
+	    }
+	}
+    }]
+
+    ## The user is not supposed to change this proc
+    ## Instead they create a ::Widget::$CLASS::destruct proc
+    ## Some of this may be redundant, but at least it does the job
+    ;proc ${namesp}::_destruct {w} "
+    upvar \#0 ${namesp}::\$w data
+    catch {${namesp}::destruct \$w}
+    catch {::destroy \$data(base)}
+    catch {::destroy \$w}
+    catch {rename \$data(basecmd) {}}
+    catch {rename ::\$data(base) {}}
+    catch {rename ::\$w {}}
+    catch {unset data}
+    return\n"
+    
+    if {[string match {} [info commands ${namesp}::destruct]]} {
+	## The user can optionally provide a special destroy handler
+	;proc ${namesp}::destruct {w args} {
+	    # empty
+	}
+    }
+
+    ## The user is not supposed to change this proc
+    ;proc ${namesp}::_cget {w args} {
+	if {[llength $args] != 1} {
+	    return -code error "wrong \# args: should be \"$w cget option\""
+	}
+	set namesp [namespace current]
+	upvar \#0 ${namesp}::$w data ${namesp}::options options
+	if {[info exists options($args)]&&[string match -* $options($args)]} {
+	    set args $options($args)
+	}
+	if {[string match {} [set arg [array names data $args]]]} {
+	    set arg [array names data ${args}*]
+	}
+	set num [llength $arg]
+	if {$num==1} {
+	    return $data($arg)
+	} elseif {$num} {
+	    return -code error "ambiguous option \"$args\",\
+		    must be one of: [join $arg {, }]"
+	} elseif {[catch {$data(basecmd) cget $args} err]} {
+	    return -code error $err
+	} else {
+	    return $err
+	}
+    }
+
+    ## The user is not supposed to change this proc
+    ## Instead they create a $CLASS:configure proc
+    ;proc ${namesp}::_configure {w args} {
+	set namesp [namespace current]
+	upvar \#0 ${namesp}::$w data ${namesp}::options options
+
+	set num [llength $args]
+	if {$num==1} {
+	    if {[info exists options($args)] && \
+		    [string match -* $options($args)]} {
+		set args $options($args)
+	    }
+	    if {[string match {} [set arg [array names data $args]]]} {
+		set arg [array names data ${args}*]
+	    }
+	    set num [llength $arg]
+	    if {$num==1} {
+		## FIX one-elem config
+		return "[list $arg] $options($arg) [list $data($arg)]"
+	    } elseif {$num} {
+		return -code error "ambiguous option \"$args\",\
+			must be one of: [join $arg {, }]"
+	    } elseif {[catch {$data(basecmd) configure $args} err]} {
+		return -code error $err
+	    } else {
+		return $err
+	    }
+	} elseif {$num} {
+	    ## Group the {key val} pairs to be distributed
+	    if {$num&1} {
+		set last [lindex $args end]
+		set args [lrange $args 0 [incr num -2]]
+	    }
+	    set widargs {}
+	    set cmdargs {}
+	    foreach {key val} $args {
+		if {[info exists options($key)] && \
+			[string match -* $options($key)]} {
+		    set key $options($key)
+		}
+		if {[string match {} [set arg [array names data $key]]]} {
+		    set arg [array names data $key*]
+		}
+		set len [llength $arg]
+		if {$len==1} {
+		    lappend widargs $arg $val
+		} elseif {$len} {
+		    set ambarg [list $key $arg]
+		    break
+		} else {
+		    lappend cmdargs $key $val
+		}
+	    }
+	    if {[string compare {} $widargs]} {
+		uplevel ${namesp}::configure [list $w] $widargs
+	    }
+	    if {[string compare {} $cmdargs] && [catch \
+		    {uplevel [list $data(basecmd)] configure $cmdargs} err]} {
+		return -code error $err
+	    }
+	    if {[info exists ambarg]} {
+		return -code error "ambiguous option \"[lindex $ambarg 0]\",\
+			must be one of: [join [lindex $ambarg 1] {, }]"
+	    }
+	    if {[info exists last]} {
+		return -code error "value for \"$last\" missing"
+	    }
+	} else {
+	    foreach opt [$data(basecmd) configure] {
+		set opts([lindex $opt 0]) [lrange $opt 1 end]
+	    }
+	    foreach opt [array names options] {
+		if {[string match -* $options($opt)]} {
+		    set opts($opt) [string range $options($opt) 1 end]
+		} else {
+		    set opts($opt) "$options($opt) [list $data($opt)]"
+		}
+	    }
+	    foreach opt [lsort [array names opts]] {
+		lappend config "$opt $opts($opt)"
+	    }
+	    return $config
+	}
+    }
+
+    if {[string match {} [info commands ${namesp}::configure]]} {
+	## The user is intended to rewrite this one
+	;proc ${namesp}::configure {w args}  {
+	    foreach {key val} $args {
+		puts "$w: configure $key to [list $value]"
+	    }
+	}
+    }
+
+    set CLASSES($CLASS) $namesp
+    return $namesp
+}
+
+}; #end namespace ::Widget
+
+namespace eval :: { namespace import -force ::Widget::widget }
+
+########################################################################
+########################## EXAMPLES ####################################
+########################################################################
+
+########################################################################
+########################## ScrolledText ################################
+########################################################################
+
+##------------------------------------------------------------------------
+## PROCEDURE
+##	scrolledtext
+##
+## DESCRIPTION
+##	Implements a ScrolledText mega-widget
+##
+## ARGUMENTS
+##	scrolledtext <window pathname> <options>
+##
+## OPTIONS
+##	(Any text widget option may be used in addition to these)
+##
+## -autoscrollbar TCL_BOOLEAN			DEFAULT: 1
+##	Whether to have dynamic or static scrollbars.
+##
+## RETURNS: the window pathname
+##
+## METHODS/SUBCOMMANDS
+##	These are the subcmds that an instance of this megawidget recognizes.
+##	Aside from those listed here, it accepts subcmds that are valid for
+##	text widgets.
+##
+## subwidget widget
+##	Returns the true widget path of the specified widget.  Valid
+##	widgets are text, xscrollbar, yscrollbar.
+##
+## BINDINGS (in addition to default widget bindings)
+##
+## NAMESPACE & STATE
+##	The megawidget creates a global array with the classname, and a
+## global array which is the name of each megawidget is created.  The latter
+## array is deleted when the megawidget is destroyed.
+##	Public procs of $CLASSNAME and [string tolower $CLASSNAME] are used.
+## Other procs that begin with $CLASSNAME are private.  For each widget,
+## commands named .$widgetname and $CLASSNAME$widgetname are created.
+##
+## EXAMPLE USAGE:
+##
+## pack [scrolledtext .st -width 40 -height 10] -fill both -exp 1
+##
+##------------------------------------------------------------------------
+
+## Each widget created will also have a global array created by the
+## instantiation procedure that is the name of the widget (represented
+## as $w below).  There three special key names in the $CLASS array:
+##
+## -type
+##    the type of base container we want to use (frame or toplevel).
+##    This would default to frame.  This widget will be created for us
+##    by the constructor function.  The $w array will have a "container"
+##    key that will point to the exact widget name.
+##
+## -base
+##   the base widget type for this class.  This key is optional and
+##   represents what kind of widget will be the base for the class. This
+##   way we know what default methods/options you'll have.  If not
+##   specified, it defaults to the container type.  
+##   To the global $w array, the key "basecmd" will be added by the widget
+##   instantiation function to point to a new proc that will be the direct
+##   accessor command for the base widget ("text" in the case of the
+##   ScrolledText megawidget).  The $w "base" key will be the valid widget
+##   name (for passing to [winfo] and such), but "basecmd" will be the
+##   valid direct accessor function
+##
+## -components
+##   the component widgets of the megawidget.  This is a list of tuples
+##   (ie: {{listbox listbox} {scrollbar yscrollbar} {scrollbar xscrollbar}})
+##   where each item is in the form {widgettype name}.  These components
+##   will be created before the $CLASS::construct proc is called and the $w
+##   array will have keys with each name pointing to the appropriate
+##   widget in it.  Use these keys to access your subwidgets.  It is from
+##   this component list and the base and type about that the subwidget
+##   method is created.
+##  
+## -options
+##   A list of lists, this specifies the
+##   options that this megawidget handles.  The value can either be a
+##   3-tuple list of the form {databaseName databaseClass defaultValue}, or
+##   it can be one element matching -*, which means this key (say -bd) is
+##   an alias for the option specified in the value (say -borderwidth)
+##   which must be specified fully somewhere else in the class array.
+##
+## If the value is a list beginning with "ALIAS", then the option is derived
+## from a component of the megawidget.  The form of the value must be a list
+## with the elements:
+##	{ALIAS componenttype option ?databasename databaseclass?}
+## An example of this would be inheriting a label components anchor:
+##	{ALIAS label -anchor labelAnchor Anchor}
+## If the databasename is not specified, it determines the final options
+## database info from the component and uses the components default value.
+## Otherwise, just the components default value is used.
+##
+## The $w array will be populated by the instantiation procedure with the
+## default values for all the specified $CLASS options.
+##
+
+# Create this to make sure there are registered in auto_mkindex
+# these must come before the [widget create ...]
+proc ScrolledText args {}
+proc scrolledtext args {}
+widget create ScrolledText -type frame -base text -components {
+    {base text text {-xscrollcommand [list $data(xscrollbar) set] \
+	    -yscrollcommand [list $data(yscrollbar) set]}}
+    {scrollbar xscrollbar sx {-orient h -bd 1 -highlightthickness 1 \
+	    -command [list $w xview]}}
+    {scrollbar yscrollbar sy {-orient v -bd 1 -highlightthickness 1 \
+	    -command [list $w yview]}}
+} -options {
+    {-autoscrollbar autoScrollbar AutoScrollbar 1}
+}
+
+## Then we "create" the widget.  This makes all the necessary default widget
+## routines.  It creates the public accessor functions ($CLASSNAME and
+## [string tolower $CLASSNAME]) as well as the public cget, configure, destroy
+## and subwidget methods.  The cget and configure commands work like the
+## regular Tk ones.  The destroy method is superfluous, as megawidgets will
+## respond properly to [destroy $widget] (the Tk destroy command).
+## The subwidget method has the following form:
+##
+##   $widget subwidget name
+##	name	- the component widget name
+##   Returns the widget patch to the component widget name.
+##   Allows the user direct access to your subwidgets.
+##
+## THE USER SHOULD PROVIDE AT LEAST THE FOLLOWING:
+##
+## $NAMESPACE::construct {w}		=> return value ignored
+##	w	- the widget name, also the name of the global data array
+## This procedure is called by the public accessor (instantiation) proc
+## right after creating all component widgets and populating the global $w
+## array with all the default option values, the "base" key and the key
+## names for any other components.  The user should then grid/pack all
+## subwidgets into $w.  At this point, the initial configure has not
+## occured, so the widget options are all the default.  If this proc
+## errors, so does the main creation routine, returning your error.
+##
+## $NAMESPACE::configure {w args}	=> return ignored (should be empty)
+##	w	- the widget name, also the name of the global data array
+##	args	- a list of key/vals (already verified to exist)
+## The user should process the key/vals however they require  If this
+## proc errors, so does the main creation routine, returning your error.
+##
+## THE FOLLOWING IS OPTIONAL:
+##
+## $NAMESPACE::init {w}			=> return value ignored
+##	w	- the widget name, also the name of the global data array
+## This procedure is called after the public configure routine and after
+## the "basecmd" key has been added to the $w array.  Ideally, this proc
+## would be used to do any widget specific one-time initialization.
+##
+## $NAMESPACE::destruct {w}		=> return ignored (should be empty)
+##	w	- the widget name, also the name of the global data array
+## A default destroy handler is provided that cleans up after the megawidget
+## (all state info), but if special cleanup stuff is needed, you would provide
+## it in this procedure.  This is the first proc called in the default destroy
+## handler.
+##
+
+namespace eval ::Widget::ScrolledText {;
+
+;proc construct {w} {
+    upvar \#0 [namespace current]::$w data
+
+    grid $data(text) $data(yscrollbar) -sticky news
+    grid $data(xscrollbar) -sticky ew
+    grid columnconfig $w 0 -weight 1
+    grid rowconfig $w 0 -weight 1
+    grid remove $data(yscrollbar) $data(xscrollbar)
+    bind $data(text) <Configure> [namespace code [list resize $w 1]]
+}
+
+;proc configure {w args} {
+    upvar \#0 [namespace current]::$w data
+    set truth {^(1|yes|true|on)$}
+    foreach {key val} $args {
+	switch -- $key {
+	    -autoscrollbar	{
+		set data($key) [regexp -nocase $truth $val]
+		if {$data($key)} {
+		    resize $w 0
+		} else {
+		    grid $data(xscrollbar)
+		    grid $data(yscrollbar)
+		}
+	    }
+	}
+    }
+}
+
+# captures xview commands to the text widget
+;proc _xview {w args} {
+    upvar \#0 [namespace current]::$w data
+    if {[catch {uplevel $data(basecmd) xview $args} err]} {
+	return -code error $err
+    }
+}
+
+# captures yview commands to the text widget
+;proc _yview {w args} {
+    upvar \#0 [namespace current]::$w data
+    if {[catch {uplevel $data(basecmd) yview $args} err]} {
+	return -code error $err
+    } elseif {![winfo ismapped $data(xscrollbar)] && \
+	    [string compare {0 1} [$data(basecmd) xview]]} {
+	## If the xscrollbar was unmapped, but is now needed, show it
+	grid $data(xscrollbar)
+    }
+}
+
+# captures insert commands to the text widget
+;proc _insert {w args} {
+    upvar \#0 [namespace current]::$w data
+    set code [catch {uplevel $data(basecmd) insert $args} err]
+    if {[winfo ismapped $w]} { resize $w 0 }
+    return -code $code $err
+}
+
+# captures delete commands to the text widget
+;proc _delete {w args} {
+    upvar \#0 [namespace current]::$w data
+    set code [catch {uplevel $data(basecmd) delete $args} err]
+    if {[winfo ismapped $w]} { resize $w 1 }
+    return -code $code $err
+}
+
+# called when the ScrolledText widget is resized by the user or possibly
+# needs the scrollbars (de|at)tached due to insert/delete.
+;proc resize {w d} {
+    upvar \#0 [namespace current]::$w data
+    ## Only when deleting should we consider removing the scrollbars
+    if {!$data(-autoscrollbar)} return
+    if {[string compare {0 1} [$data(basecmd) xview]]} {
+	grid $data(xscrollbar)
+    } elseif {$d} {
+	grid remove $data(xscrollbar)
+    }
+    if {[string compare {0 1} [$data(basecmd) yview]]} {
+	grid $data(yscrollbar)
+    } elseif {$d} {
+	grid remove $data(yscrollbar)
+    }
+}
+
+
+}; #end namespace ::Widget::ScrolledText
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/pkgIndex.tcl
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/pkgIndex.tcl	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/pkgIndex.tcl	(revision 2476)
@@ -0,0 +1,50 @@
+# Tcl package index file, version 1.0
+
+
+package ifneeded Hierarchy 2.0 [list tclPkgSetup $dir Hierarchy 2.0 {
+    {hierarchy.tcl source {
+	Hierarchy hierarchy hierarchy_dir hierarchy_widget
+}   }   }]
+
+package ifneeded Widget 2.0 [list tclPkgSetup $dir Widget 2.0 {
+    {widget.tcl source {
+	widget scrolledtext ScrolledText
+}   }   }]
+
+package ifneeded ::Utility 1.0 [subst {
+    source [file join $dir util.tcl]
+}]
+#	get_opts get_opts2 randrng best_match grep
+#	lremove lrandomize lunique luniqueo
+#	line_append echo alias which ls dir validate fit_format
+
+package ifneeded ::Utility::dump 1.0 [subst {
+    source [file join $dir util-dump.tcl]
+}]
+#	dump
+
+package ifneeded ::Utility::string 1.0 [subst {
+    source [file join $dir util-string.tcl]
+}]
+#	string_reverse obfuscate untabify tabify wrap_lines
+
+package ifneeded ::Utility::number 1.0 [subst {
+    source [file join $dir util-number.tcl]
+}]
+#	get_square_size roman2dec bin2hex hex2bin
+
+package ifneeded ::Utility::tk 1.0 [subst {
+    source [file join $dir util-tk.tcl]
+}]
+#	warn place_window canvas_center canvas_see
+
+package ifneeded ::Utility::expand 1.0 [subst {
+    source [file join $dir util-expand.tcl]
+}]
+#	expand
+
+
+package ifneeded PBar 1.0 [list tclPkgSetup $dir PBar 1.0 {
+    {progressbar.tcl source {
+	PBar ProgressBar ProgressBar::create ProgressBar::use
+}   }   }]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/progressbar.tcl
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/progressbar.tcl	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/progressbar.tcl	(revision 2476)
@@ -0,0 +1,2435 @@
+# ----------------------------------------------------------------------------
+#  progressbar.tcl
+#  This file is part of Unifix BWidget Toolkit
+# ----------------------------------------------------------------------------
+#  Index of commands:
+#     - ProgressBar::create
+#     - ProgressBar::configure
+#     - ProgressBar::cget
+#     - ProgressBar::_destroy
+#     - ProgressBar::_modify
+# ----------------------------------------------------------------------------
+
+package provide PBar 1.0
+
+# ----------------------------------------------------------------------------
+#  utils.tcl
+#  This file is part of Unifix BWidget Toolkit
+#  $Id: utils.tcl,v 1.12 2004/09/24 23:57:13 hobbs Exp $
+# ----------------------------------------------------------------------------
+#  Index of commands:
+#     - GlobalVar::exists
+#     - GlobalVar::setvarvar
+#     - GlobalVar::getvarvar
+#     - BWidget::assert
+#     - BWidget::clonename
+#     - BWidget::get3dcolor
+#     - BWidget::XLFDfont
+#     - BWidget::place
+#     - BWidget::grab
+#     - BWidget::focus
+# ----------------------------------------------------------------------------
+
+namespace eval GlobalVar {
+    proc use {} {}
+}
+
+
+namespace eval BWidget {
+    variable _top
+    variable _gstack {}
+    variable _fstack {}
+    proc use {} {}
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command GlobalVar::exists
+# ----------------------------------------------------------------------------
+proc GlobalVar::exists { varName } {
+    return [uplevel \#0 [list info exists $varName]]
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command GlobalVar::setvar
+# ----------------------------------------------------------------------------
+proc GlobalVar::setvar { varName value } {
+    return [uplevel \#0 [list set $varName $value]]
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command GlobalVar::getvar
+# ----------------------------------------------------------------------------
+proc GlobalVar::getvar { varName } {
+    return [uplevel \#0 [list set $varName]]
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command GlobalVar::tracevar
+# ----------------------------------------------------------------------------
+proc GlobalVar::tracevar { cmd varName args } {
+    return [uplevel \#0 [list trace $cmd $varName] $args]
+}
+
+
+
+# ----------------------------------------------------------------------------
+#  Command BWidget::lreorder
+# ----------------------------------------------------------------------------
+proc BWidget::lreorder { list neworder } {
+    set pos     0
+    set newlist {}
+    foreach e $neworder {
+        if { [lsearch -exact $list $e] != -1 } {
+            lappend newlist $e
+            set tabelt($e)  1
+        }
+    }
+    set len [llength $newlist]
+    if { !$len } {
+        return $list
+    }
+    if { $len == [llength $list] } {
+        return $newlist
+    }
+    set pos 0
+    foreach e $list {
+        if { ![info exists tabelt($e)] } {
+            set newlist [linsert $newlist $pos $e]
+        }
+        incr pos
+    }
+    return $newlist
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command BWidget::assert
+# ----------------------------------------------------------------------------
+proc BWidget::assert { exp {msg ""}} {
+    set res [uplevel 1 expr $exp]
+    if { !$res} {
+        if { $msg == "" } {
+            return -code error "Assertion failed: {$exp}"
+        } else {
+            return -code error $msg
+        }
+    }
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command BWidget::clonename
+# ----------------------------------------------------------------------------
+proc BWidget::clonename { menu } {
+    set path     ""
+    set menupath ""
+    set found    0
+    foreach widget [lrange [split $menu "."] 1 end] {
+        if { $found || [winfo class "$path.$widget"] == "Menu" } {
+            set found 1
+            append menupath "#" $widget
+            append path "." $menupath
+        } else {
+            append menupath "#" $widget
+            append path "." $widget
+        }
+    }
+    return $path
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command BWidget::getname
+# ----------------------------------------------------------------------------
+proc BWidget::getname { name } {
+    if { [string length $name] } {
+        set text [option get . "${name}Name" ""]
+        if { [string length $text] } {
+            return [parsetext $text]
+        }
+    }
+    return {}
+ }
+
+
+# ----------------------------------------------------------------------------
+#  Command BWidget::parsetext
+# ----------------------------------------------------------------------------
+proc BWidget::parsetext { text } {
+    set result ""
+    set index  -1
+    set start  0
+    while { [string length $text] } {
+        set idx [string first "&" $text]
+        if { $idx == -1 } {
+            append result $text
+            set text ""
+        } else {
+            set char [string index $text [expr {$idx+1}]]
+            if { $char == "&" } {
+                append result [string range $text 0 $idx]
+                set    text   [string range $text [expr {$idx+2}] end]
+                set    start  [expr {$start+$idx+1}]
+            } else {
+                append result [string range $text 0 [expr {$idx-1}]]
+                set    text   [string range $text [expr {$idx+1}] end]
+                incr   start  $idx
+                set    index  $start
+            }
+        }
+    }
+    return [list $result $index]
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command BWidget::get3dcolor
+# ----------------------------------------------------------------------------
+proc BWidget::get3dcolor { path bgcolor } {
+    foreach val [winfo rgb $path $bgcolor] {
+        lappend dark [expr {60*$val/100}]
+        set tmp1 [expr {14*$val/10}]
+        if { $tmp1 > 65535 } {
+            set tmp1 65535
+        }
+        set tmp2 [expr {(65535+$val)/2}]
+        lappend light [expr {($tmp1 > $tmp2) ? $tmp1:$tmp2}]
+    }
+    return [list [eval format "#%04x%04x%04x" $dark] [eval format "#%04x%04x%04x" $light]]
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command BWidget::XLFDfont
+# ----------------------------------------------------------------------------
+proc BWidget::XLFDfont { cmd args } {
+    switch -- $cmd {
+        create {
+            set font "-*-*-*-*-*-*-*-*-*-*-*-*-*-*"
+        }
+        configure {
+            set font [lindex $args 0]
+            set args [lrange $args 1 end]
+        }
+        default {
+            return -code error "XLFDfont: commande incorrect: $cmd"
+        }
+    }
+    set lfont [split $font "-"]
+    if { [llength $lfont] != 15 } {
+        return -code error "XLFDfont: description XLFD incorrect: $font"
+    }
+
+    foreach {option value} $args {
+        switch -- $option {
+            -foundry { set index 1 }
+            -family  { set index 2 }
+            -weight  { set index 3 }
+            -slant   { set index 4 }
+            -size    { set index 7 }
+            default  { return -code error "XLFDfont: option incorrecte: $option" }
+        }
+        set lfont [lreplace $lfont $index $index $value]
+    }
+    return [join $lfont "-"]
+}
+
+
+
+# ----------------------------------------------------------------------------
+#  Command BWidget::place
+# ----------------------------------------------------------------------------
+#
+# Notes:
+#  For Windows systems with more than one monitor the available screen area may
+#  have negative positions. Geometry settings with negative numbers are used
+#  under X to place wrt the right or bottom of the screen. On windows, Tk
+#  continues to do this. However, a geometry such as 100x100+-200-100 can be
+#  used to place a window onto a secondary monitor. Passing the + gets Tk
+#  to pass the remainder unchanged so the Windows manager then handles -200
+#  which is a position on the left hand monitor.
+#  I've tested this for left, right, above and below the primary monitor.
+#  Currently there is no way to ask Tk the extent of the Windows desktop in 
+#  a multi monitor system. Nor what the legal co-ordinate range might be.
+#
+proc BWidget::place { path w h args } {
+    variable _top
+
+    update idletasks
+    set reqw [winfo reqwidth  $path]
+    set reqh [winfo reqheight $path]
+    if { $w == 0 } {set w $reqw}
+    if { $h == 0 } {set h $reqh}
+
+    set arglen [llength $args]
+    if { $arglen > 3 } {
+        return -code error "BWidget::place: bad number of argument"
+    }
+
+    if { $arglen > 0 } {
+        set where [lindex $args 0]
+	set list  [list "at" "center" "left" "right" "above" "below"]
+        set idx   [lsearch $list $where]
+        if { $idx == -1 } {
+	    return -code error [BWidget::badOptionString position $where $list]
+        }
+        if { $idx == 0 } {
+            set err [catch {
+                # purposely removed the {} around these expressions - [PT]
+                set x [expr int([lindex $args 1])]
+                set y [expr int([lindex $args 2])]
+            }]
+            if { $err } {
+                return -code error "BWidget::place: incorrect position"
+            }
+            if {$::tcl_platform(platform) == "windows"} {
+                # handle windows multi-screen. -100 != +-100
+                if {[string index [lindex $args 1] 0] != "-"} {
+                    set x "+$x"
+                }
+                if {[string index [lindex $args 2] 0] != "-"} {
+                    set y "+$y"
+                }
+            } else {
+                if { $x >= 0 } {
+                    set x "+$x"
+                }
+                if { $y >= 0 } {
+                    set y "+$y"
+                }
+            }
+        } else {
+            if { $arglen == 2 } {
+                set widget [lindex $args 1]
+                if { ![winfo exists $widget] } {
+                    return -code error "BWidget::place: \"$widget\" does not exist"
+                }
+	    } else {
+		set widget .
+	    }
+            set sw [winfo screenwidth  $path]
+            set sh [winfo screenheight $path]
+            if { $idx == 1 } {
+                if { $arglen == 2 } {
+                    # center to widget
+                    set x0 [expr {[winfo rootx $widget] + ([winfo width  $widget] - $w)/2}]
+                    set y0 [expr {[winfo rooty $widget] + ([winfo height $widget] - $h)/2}]
+                } else {
+                    # center to screen
+                    set x0 [expr {([winfo screenwidth  $path] - $w)/2 - [winfo vrootx $path]}]
+                    set y0 [expr {([winfo screenheight $path] - $h)/2 - [winfo vrooty $path]}]
+                }
+                set x "+$x0"
+                set y "+$y0"
+                if {$::tcl_platform(platform) != "windows"} {
+                    if { $x0+$w > $sw } {set x "-0"; set x0 [expr {$sw-$w}]}
+                    if { $x0 < 0 }      {set x "+0"}
+                    if { $y0+$h > $sh } {set y "-0"; set y0 [expr {$sh-$h}]}
+                    if { $y0 < 0 }      {set y "+0"}
+                }
+            } else {
+                set x0 [winfo rootx $widget]
+                set y0 [winfo rooty $widget]
+                set x1 [expr {$x0 + [winfo width  $widget]}]
+                set y1 [expr {$y0 + [winfo height $widget]}]
+                if { $idx == 2 || $idx == 3 } {
+                    set y "+$y0"
+                    if {$::tcl_platform(platform) != "windows"} {
+                        if { $y0+$h > $sh } {set y "-0"; set y0 [expr {$sh-$h}]}
+                        if { $y0 < 0 }      {set y "+0"}
+                    }
+                    if { $idx == 2 } {
+                        # try left, then right if out, then 0 if out
+                        if { $x0 >= $w } {
+                            set x [expr {$x0-$sw}]
+                        } elseif { $x1+$w <= $sw } {
+                            set x "+$x1"
+                        } else {
+                            set x "+0"
+                        }
+                    } else {
+                        # try right, then left if out, then 0 if out
+                        if { $x1+$w <= $sw } {
+                            set x "+$x1"
+                        } elseif { $x0 >= $w } {
+                            set x [expr {$x0-$sw}]
+                        } else {
+                            set x "-0"
+                        }
+                    }
+                } else {
+                    set x "+$x0"
+                    if {$::tcl_platform(platform) != "windows"} {
+                        if { $x0+$w > $sw } {set x "-0"; set x0 [expr {$sw-$w}]}
+                        if { $x0 < 0 }      {set x "+0"}
+                    }
+                    if { $idx == 4 } {
+                        # try top, then bottom, then 0
+                        if { $h <= $y0 } {
+                            set y [expr {$y0-$sh}]
+                        } elseif { $y1+$h <= $sh } {
+                            set y "+$y1"
+                        } else {
+                            set y "+0"
+                        }
+                    } else {
+                        # try bottom, then top, then 0
+                        if { $y1+$h <= $sh } {
+                            set y "+$y1"
+                        } elseif { $h <= $y0 } {
+                            set y [expr {$y0-$sh}]
+                        } else {
+                            set y "-0"
+                        }
+                    }
+                }
+            }
+        }
+
+        ## If there's not a + or - in front of the number, we need to add one.
+        if {[string is integer [string index $x 0]]} { set x +$x }
+        if {[string is integer [string index $y 0]]} { set y +$y }
+
+        wm geometry $path "${w}x${h}${x}${y}"
+    } else {
+        wm geometry $path "${w}x${h}"
+    }
+    update idletasks
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command BWidget::grab
+# ----------------------------------------------------------------------------
+proc BWidget::grab { option path } {
+    variable _gstack
+
+    if { $option == "release" } {
+        catch {::grab release $path}
+        while { [llength $_gstack] } {
+            set grinfo  [lindex $_gstack end]
+            set _gstack [lreplace $_gstack end end]
+            foreach {oldg mode} $grinfo {
+                if { ![string equal $oldg $path] && [winfo exists $oldg] } {
+                    if { $mode == "global" } {
+                        catch {::grab -global $oldg}
+                    } else {
+                        catch {::grab $oldg}
+                    }
+                    return
+                }
+            }
+        }
+    } else {
+        set oldg [::grab current]
+        if { $oldg != "" } {
+            lappend _gstack [list $oldg [::grab status $oldg]]
+        }
+        if { $option == "global" } {
+            ::grab -global $path
+        } else {
+            ::grab $path
+        }
+    }
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command BWidget::focus
+# ----------------------------------------------------------------------------
+proc BWidget::focus { option path {refocus 1} } {
+    variable _fstack
+
+    if { $option == "release" } {
+        while { [llength $_fstack] } {
+            set oldf [lindex $_fstack end]
+            set _fstack [lreplace $_fstack end end]
+            if { ![string equal $oldf $path] && [winfo exists $oldf] } {
+                if {$refocus} {catch {::focus -force $oldf}}
+                return
+            }
+        }
+    } elseif { $option == "set" } {
+        lappend _fstack [::focus]
+        ::focus -force $path
+    }
+}
+
+# BWidget::refocus --
+#
+#	Helper function used to redirect focus from a container frame in 
+#	a megawidget to a component widget.  Only redirects focus if
+#	focus is already on the container.
+#
+# Arguments:
+#	container	container widget to redirect from.
+#	component	component widget to redirect to.
+#
+# Results:
+#	None.
+
+proc BWidget::refocus {container component} {
+    if { [string equal $container [::focus]] } {
+	::focus $component
+    }
+    return
+}
+
+## These mirror tk::(Set|Restore)FocusGrab
+
+# BWidget::SetFocusGrab --
+#   swap out current focus and grab temporarily (for dialogs)
+# Arguments:
+#   grab	new window to grab
+#   focus	window to give focus to
+# Results:
+#   Returns nothing
+#
+proc BWidget::SetFocusGrab {grab {focus {}}} {
+    variable _focusGrab
+    set index "$grab,$focus"
+
+    lappend _focusGrab($index) [::focus]
+    set oldGrab [::grab current $grab]
+    lappend _focusGrab($index) $oldGrab
+    if {[winfo exists $oldGrab]} {
+	lappend _focusGrab($index) [::grab status $oldGrab]
+    }
+    # The "grab" command will fail if another application
+    # already holds the grab.  So catch it.
+    catch {::grab $grab}
+    if {[winfo exists $focus]} {
+	::focus $focus
+    }
+}
+
+# BWidget::RestoreFocusGrab --
+#   restore old focus and grab (for dialogs)
+# Arguments:
+#   grab	window that had taken grab
+#   focus	window that had taken focus
+#   destroy	destroy|withdraw - how to handle the old grabbed window
+# Results:
+#   Returns nothing
+#
+proc BWidget::RestoreFocusGrab {grab focus {destroy destroy}} {
+    variable _focusGrab
+    set index "$grab,$focus"
+    if {[info exists _focusGrab($index)]} {
+	foreach {oldFocus oldGrab oldStatus} $_focusGrab($index) break
+	unset _focusGrab($index)
+    } else {
+	set oldGrab ""
+    }
+
+    catch {::focus $oldFocus}
+    ::grab release $grab
+    if {[string equal $destroy "withdraw"]} {
+	wm withdraw $grab
+    } else {
+	::destroy $grab
+    }
+    if {[winfo exists $oldGrab] && [winfo ismapped $oldGrab]} {
+	if {[string equal $oldStatus "global"]} {
+	    ::grab -global $oldGrab
+	} else {
+	    ::grab $oldGrab
+	}
+    }
+}
+
+# BWidget::badOptionString --
+#
+#	Helper function to return a proper error string when an option
+#       doesn't match a list of given options.
+#
+# Arguments:
+#	type	A string that represents the type of option.
+#	value	The value that is in-valid.
+#       list	A list of valid options.
+#
+# Results:
+#	None.
+proc BWidget::badOptionString {type value list} {
+    set last [lindex $list end]
+    set list [lreplace $list end end]
+    return "bad $type \"$value\": must be [join $list ", "], or $last"
+}
+
+
+proc BWidget::wrongNumArgsString { string } {
+    return "wrong # args: should be \"$string\""
+}
+
+
+proc BWidget::read_file { file } {
+    set fp [open $file]
+    set x  [read $fp [file size $file]]
+    close $fp
+    return $x
+}
+
+
+proc BWidget::classes { class } {
+    variable use
+
+    ${class}::use
+    set classes [list $class]
+    if {![info exists use($class)]} { return }
+    foreach class $use($class) {
+	eval lappend classes [classes $class]
+    }
+    return [lsort -unique $classes]
+}
+
+
+proc BWidget::library { args } {
+    variable use
+
+    set libs    [list widget init utils]
+    set classes [list]
+    foreach class $args {
+	${class}::use
+        eval lappend classes [classes $class]
+    }
+
+    eval lappend libs [lsort -unique $classes]
+
+    set library ""
+    foreach lib $libs {
+	if {![info exists use($lib,file)]} {
+	    set file [file join $::BWIDGET::LIBRARY $lib.tcl]
+	} else {
+	    set file [file join $::BWIDGET::LIBRARY $use($lib,file).tcl]
+	}
+        append library [read_file $file]
+    }
+
+    return $library
+}
+
+
+proc BWidget::inuse { class } {
+    variable ::Widget::_inuse
+
+    if {![info exists _inuse($class)]} { return 0 }
+    return [expr $_inuse($class) > 0]
+}
+
+
+proc BWidget::write { filename {mode w} } {
+    variable use
+
+    if {![info exists use(classes)]} { return }
+
+    set classes [list]
+    foreach class $use(classes) {
+	if {![inuse $class]} { continue }
+	lappend classes $class
+    }
+
+    set fp [open $filename $mode]
+    puts $fp [eval library $classes]
+    close $fp
+
+    return
+}
+
+
+# BWidget::bindMouseWheel --
+#
+#	Bind mouse wheel actions to a given widget.
+#
+# Arguments:
+#	widget - The widget to bind.
+#
+# Results:
+#	None.
+proc BWidget::bindMouseWheel { widget } {
+    bind $widget <MouseWheel>         {%W yview scroll [expr {-%D/24}]  units}
+    bind $widget <Shift-MouseWheel>   {%W yview scroll [expr {-%D/120}] pages}
+    bind $widget <Control-MouseWheel> {%W yview scroll [expr {-%D/120}] units}
+
+    bind $widget <Button-4> {event generate %W <MouseWheel> -delta  120}
+    bind $widget <Button-5> {event generate %W <MouseWheel> -delta -120}
+}
+
+
+# ----------------------------------------------------------------------------
+#  widget.tcl
+#  This file is part of Unifix BWidget Toolkit
+#  $Id: widget.tcl,v 1.29 2005/07/28 00:40:42 hobbs Exp $
+# ----------------------------------------------------------------------------
+#  Index of commands:
+#     - Widget::tkinclude
+#     - Widget::bwinclude
+#     - Widget::declare
+#     - Widget::addmap
+#     - Widget::init
+#     - Widget::destroy
+#     - Widget::setoption
+#     - Widget::configure
+#     - Widget::cget
+#     - Widget::subcget
+#     - Widget::hasChanged
+#     - Widget::options
+#     - Widget::_get_tkwidget_options
+#     - Widget::_test_tkresource
+#     - Widget::_test_bwresource
+#     - Widget::_test_synonym
+#     - Widget::_test_string
+#     - Widget::_test_flag
+#     - Widget::_test_enum
+#     - Widget::_test_int
+#     - Widget::_test_boolean
+# ----------------------------------------------------------------------------
+# Each megawidget gets a namespace of the same name inside the Widget namespace
+# Each of these has an array opt, which contains information about the 
+# megawidget options.  It maps megawidget options to a list with this format:
+#     {optionType defaultValue isReadonly {additionalOptionalInfo}}
+# Option types and their additional optional info are:
+#	TkResource	{genericTkWidget genericTkWidgetOptionName}
+#	BwResource	{nothing}
+#	Enum		{list of enumeration values}
+#	Int		{Boundary information}
+#	Boolean		{nothing}
+#	String		{nothing}
+#	Flag		{string of valid flag characters}
+#	Synonym		{nothing}
+#	Color		{nothing}
+#
+# Next, each namespace has an array map, which maps class options to their
+# component widget options:
+#	map(-foreground) => {.e -foreground .f -foreground}
+#
+# Each has an array ${path}:opt, which contains the value of each megawidget
+# option for a particular instance $path of the megawidget, and an array
+# ${path}:mod, which stores the "changed" status of configuration options.
+
+# Steps for creating a bwidget megawidget:
+# 1. parse args to extract subwidget spec
+# 2. Create frame with appropriate class and command line options
+# 3. Get initialization options from optionDB, using frame
+# 4. create subwidgets
+
+# Uses newer string operations
+package require Tcl 8.1.1
+
+namespace eval Widget {
+    variable _optiontype
+    variable _class
+    variable _tk_widget
+
+    # This controls whether we try to use themed widgets from Tile
+    variable _theme 0
+
+    variable _aqua [expr {($::tcl_version >= 8.4) &&
+			  [string equal [tk windowingsystem] "aqua"]}]
+
+    array set _optiontype {
+        TkResource Widget::_test_tkresource
+        BwResource Widget::_test_bwresource
+        Enum       Widget::_test_enum
+        Int        Widget::_test_int
+        Boolean    Widget::_test_boolean
+        String     Widget::_test_string
+        Flag       Widget::_test_flag
+        Synonym    Widget::_test_synonym
+        Color      Widget::_test_color
+        Padding    Widget::_test_padding
+    }
+
+    proc use {} {}
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::tkinclude
+#     Includes tk widget resources to BWidget widget.
+#  class      class name of the BWidget
+#  tkwidget   tk widget to include
+#  subpath    subpath to configure
+#  args       additionnal args for included options
+# ----------------------------------------------------------------------------
+proc Widget::tkinclude { class tkwidget subpath args } {
+    foreach {cmd lopt} $args {
+        # cmd can be
+        #   include      options to include            lopt = {opt ...}
+        #   remove       options to remove             lopt = {opt ...}
+        #   rename       options to rename             lopt = {opt newopt ...}
+        #   prefix       options to prefix             lopt = {pref opt opt ..}
+        #   initialize   set default value for options lopt = {opt value ...}
+        #   readonly     set readonly flag for options lopt = {opt flag ...}
+        switch -- $cmd {
+            remove {
+                foreach option $lopt {
+                    set remove($option) 1
+                }
+            }
+            include {
+                foreach option $lopt {
+                    set include($option) 1
+                }
+            }
+            prefix {
+                set prefix [lindex $lopt 0]
+                foreach option [lrange $lopt 1 end] {
+                    set rename($option) "-$prefix[string range $option 1 end]"
+                }
+            }
+            rename     -
+            readonly   -
+            initialize {
+                array set $cmd $lopt
+            }
+            default {
+                return -code error "invalid argument \"$cmd\""
+            }
+        }
+    }
+
+    namespace eval $class {}
+    upvar 0 ${class}::opt classopt
+    upvar 0 ${class}::map classmap
+    upvar 0 ${class}::map$subpath submap
+    upvar 0 ${class}::optionExports exports
+
+    set foo [$tkwidget ".ericFoo###"]
+    # create resources informations from tk widget resources
+    foreach optdesc [_get_tkwidget_options $tkwidget] {
+        set option [lindex $optdesc 0]
+        if { (![info exists include] || [info exists include($option)]) &&
+             ![info exists remove($option)] } {
+            if { [llength $optdesc] == 3 } {
+                # option is a synonym
+                set syn [lindex $optdesc 1]
+                if { ![info exists remove($syn)] } {
+                    # original option is not removed
+                    if { [info exists rename($syn)] } {
+                        set classopt($option) [list Synonym $rename($syn)]
+                    } else {
+                        set classopt($option) [list Synonym $syn]
+                    }
+                }
+            } else {
+                if { [info exists rename($option)] } {
+                    set realopt $option
+                    set option  $rename($option)
+                } else {
+                    set realopt $option
+                }
+                if { [info exists initialize($option)] } {
+                    set value $initialize($option)
+                } else {
+                    set value [lindex $optdesc 1]
+                }
+                if { [info exists readonly($option)] } {
+                    set ro $readonly($option)
+                } else {
+                    set ro 0
+                }
+                set classopt($option) \
+			[list TkResource $value $ro [list $tkwidget $realopt]]
+
+		# Add an option database entry for this option
+		set optionDbName ".[lindex [_configure_option $option ""] 0]"
+		if { ![string equal $subpath ":cmd"] } {
+		    set optionDbName "$subpath$optionDbName"
+		}
+		option add *${class}$optionDbName $value widgetDefault
+		lappend exports($option) "$optionDbName"
+
+		# Store the forward and backward mappings for this
+		# option <-> realoption pair
+                lappend classmap($option) $subpath "" $realopt
+		set submap($realopt) $option
+            }
+        }
+    }
+    ::destroy $foo
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::bwinclude
+#     Includes BWidget resources to BWidget widget.
+#  class    class name of the BWidget
+#  subclass BWidget class to include
+#  subpath  subpath to configure
+#  args     additionnal args for included options
+# ----------------------------------------------------------------------------
+proc Widget::bwinclude { class subclass subpath args } {
+    foreach {cmd lopt} $args {
+        # cmd can be
+        #   include      options to include            lopt = {opt ...}
+        #   remove       options to remove             lopt = {opt ...}
+        #   rename       options to rename             lopt = {opt newopt ...}
+        #   prefix       options to prefix             lopt = {prefix opt opt ...}
+        #   initialize   set default value for options lopt = {opt value ...}
+        #   readonly     set readonly flag for options lopt = {opt flag ...}
+        switch -- $cmd {
+            remove {
+                foreach option $lopt {
+                    set remove($option) 1
+                }
+            }
+            include {
+                foreach option $lopt {
+                    set include($option) 1
+                }
+            }
+            prefix {
+                set prefix [lindex $lopt 0]
+                foreach option [lrange $lopt 1 end] {
+                    set rename($option) "-$prefix[string range $option 1 end]"
+                }
+            }
+            rename     -
+            readonly   -
+            initialize {
+                array set $cmd $lopt
+            }
+            default {
+                return -code error "invalid argument \"$cmd\""
+            }
+        }
+    }
+
+    namespace eval $class {}
+    upvar 0 ${class}::opt classopt
+    upvar 0 ${class}::map classmap
+    upvar 0 ${class}::map$subpath submap
+    upvar 0 ${class}::optionExports exports
+    upvar 0 ${subclass}::opt subclassopt
+    upvar 0 ${subclass}::optionExports subexports
+
+    # create resources informations from BWidget resources
+    foreach {option optdesc} [array get subclassopt] {
+	set subOption $option
+        if { (![info exists include] || [info exists include($option)]) &&
+             ![info exists remove($option)] } {
+            set type [lindex $optdesc 0]
+            if { [string equal $type "Synonym"] } {
+                # option is a synonym
+                set syn [lindex $optdesc 1]
+                if { ![info exists remove($syn)] } {
+                    if { [info exists rename($syn)] } {
+                        set classopt($option) [list Synonym $rename($syn)]
+                    } else {
+                        set classopt($option) [list Synonym $syn]
+                    }
+                }
+            } else {
+                if { [info exists rename($option)] } {
+                    set realopt $option
+                    set option  $rename($option)
+                } else {
+                    set realopt $option
+                }
+                if { [info exists initialize($option)] } {
+                    set value $initialize($option)
+                } else {
+                    set value [lindex $optdesc 1]
+                }
+                if { [info exists readonly($option)] } {
+                    set ro $readonly($option)
+                } else {
+                    set ro [lindex $optdesc 2]
+                }
+                set classopt($option) \
+			[list $type $value $ro [lindex $optdesc 3]]
+
+		# Add an option database entry for this option
+		foreach optionDbName $subexports($subOption) {
+		    if { ![string equal $subpath ":cmd"] } {
+			set optionDbName "$subpath$optionDbName"
+		    }
+		    # Only add the option db entry if we are overriding the
+		    # normal widget default
+		    if { [info exists initialize($option)] } {
+			option add *${class}$optionDbName $value \
+				widgetDefault
+		    }
+		    lappend exports($option) "$optionDbName"
+		}
+
+		# Store the forward and backward mappings for this
+		# option <-> realoption pair
+                lappend classmap($option) $subpath $subclass $realopt
+		set submap($realopt) $option
+            }
+        }
+    }
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::declare
+#    Declares new options to BWidget class.
+# ----------------------------------------------------------------------------
+proc Widget::declare { class optlist } {
+    variable _optiontype
+
+    namespace eval $class {}
+    upvar 0 ${class}::opt classopt
+    upvar 0 ${class}::optionExports exports
+    upvar 0 ${class}::optionClass optionClass
+
+    foreach optdesc $optlist {
+        set option  [lindex $optdesc 0]
+        set optdesc [lrange $optdesc 1 end]
+        set type    [lindex $optdesc 0]
+
+        if { ![info exists _optiontype($type)] } {
+            # invalid resource type
+            return -code error "invalid option type \"$type\""
+        }
+
+        if { [string equal $type "Synonym"] } {
+            # test existence of synonym option
+            set syn [lindex $optdesc 1]
+            if { ![info exists classopt($syn)] } {
+                return -code error "unknow option \"$syn\" for Synonym \"$option\""
+            }
+            set classopt($option) [list Synonym $syn]
+            continue
+        }
+
+        # all other resource may have default value, readonly flag and
+        # optional arg depending on type
+        set value [lindex $optdesc 1]
+        set ro    [lindex $optdesc 2]
+        set arg   [lindex $optdesc 3]
+
+        if { [string equal $type "BwResource"] } {
+            # We don't keep BwResource. We simplify to type of sub BWidget
+            set subclass    [lindex $arg 0]
+            set realopt     [lindex $arg 1]
+            if { ![string length $realopt] } {
+                set realopt $option
+            }
+
+            upvar 0 ${subclass}::opt subclassopt
+            if { ![info exists subclassopt($realopt)] } {
+                return -code error "unknow option \"$realopt\""
+            }
+            set suboptdesc $subclassopt($realopt)
+            if { $value == "" } {
+                # We initialize default value
+                set value [lindex $suboptdesc 1]
+            }
+            set type [lindex $suboptdesc 0]
+            set ro   [lindex $suboptdesc 2]
+            set arg  [lindex $suboptdesc 3]
+	    set optionDbName ".[lindex [_configure_option $option ""] 0]"
+	    option add *${class}${optionDbName} $value widgetDefault
+	    set exports($option) $optionDbName
+            set classopt($option) [list $type $value $ro $arg]
+            continue
+        }
+
+        # retreive default value for TkResource
+        if { [string equal $type "TkResource"] } {
+            set tkwidget [lindex $arg 0]
+	    set foo [$tkwidget ".ericFoo##"]
+            set realopt  [lindex $arg 1]
+            if { ![string length $realopt] } {
+                set realopt $option
+            }
+            set tkoptions [_get_tkwidget_options $tkwidget]
+            if { ![string length $value] } {
+                # We initialize default value
+		set ind [lsearch $tkoptions [list $realopt *]]
+                set value [lindex [lindex $tkoptions $ind] end]
+            }
+	    set optionDbName ".[lindex [_configure_option $option ""] 0]"
+	    option add *${class}${optionDbName} $value widgetDefault
+	    set exports($option) $optionDbName
+            set classopt($option) [list TkResource $value $ro \
+		    [list $tkwidget $realopt]]
+	    set optionClass($option) [lindex [$foo configure $realopt] 1]
+	    ::destroy $foo
+            continue
+        }
+
+	set optionDbName ".[lindex [_configure_option $option ""] 0]"
+	option add *${class}${optionDbName} $value widgetDefault
+	set exports($option) $optionDbName
+        # for any other resource type, we keep original optdesc
+        set classopt($option) [list $type $value $ro $arg]
+    }
+}
+
+
+proc Widget::define { class filename args } {
+    # variable ::BWidget::use
+    set use($class)      $args
+    set use($class,file) $filename
+    lappend use(classes) $class
+
+    if {[set x [lsearch -exact $args "-classonly"]] > -1} {
+	set args [lreplace $args $x $x]
+    } else {
+	interp alias {} ::${class} {} ${class}::create
+	proc ::${class}::use {} {}
+
+	bind $class <Destroy> [list Widget::destroy %W]
+    }
+
+    foreach class $args { ${class}::use }
+}
+
+
+proc Widget::create { class path {rename 1} } {
+    if {$rename} { rename $path ::$path:cmd }
+    proc ::$path { cmd args } \
+    	[subst {return \[eval \[linsert \$args 0 ${class}::\$cmd [list $path]\]\]}]
+    return $path
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::addmap
+# ----------------------------------------------------------------------------
+proc Widget::addmap { class subclass subpath options } {
+    upvar 0 ${class}::opt classopt
+    upvar 0 ${class}::optionExports exports
+    upvar 0 ${class}::optionClass optionClass
+    upvar 0 ${class}::map classmap
+    upvar 0 ${class}::map$subpath submap
+
+    foreach {option realopt} $options {
+        if { ![string length $realopt] } {
+            set realopt $option
+        }
+	set val [lindex $classopt($option) 1]
+	set optDb ".[lindex [_configure_option $realopt ""] 0]"
+	if { ![string equal $subpath ":cmd"] } {
+	    set optDb "$subpath$optDb"
+	}
+	option add *${class}${optDb} $val widgetDefault
+	lappend exports($option) $optDb
+	# Store the forward and backward mappings for this
+	# option <-> realoption pair
+        lappend classmap($option) $subpath $subclass $realopt
+	set submap($realopt) $option
+    }
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::syncoptions
+# ----------------------------------------------------------------------------
+proc Widget::syncoptions { class subclass subpath options } {
+    upvar 0 ${class}::sync classync
+
+    foreach {option realopt} $options {
+        if { ![string length $realopt] } {
+            set realopt $option
+        }
+        set classync($option) [list $subpath $subclass $realopt]
+    }
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::init
+# ----------------------------------------------------------------------------
+proc Widget::init { class path options } {
+    variable _inuse
+
+    upvar 0 ${class}::opt classopt
+    upvar 0 ${class}::$path:opt  pathopt
+    upvar 0 ${class}::$path:mod  pathmod
+    upvar 0 ${class}::map classmap
+    upvar 0 ${class}::$path:init pathinit
+
+    if { [info exists pathopt] } {
+	unset pathopt
+    }
+    if { [info exists pathmod] } {
+	unset pathmod
+    }
+    # We prefer to use the actual widget for option db queries, but if it
+    # doesn't exist yet, do the next best thing:  create a widget of the
+    # same class and use that.
+    set fpath $path
+    set rdbclass [string map [list :: ""] $class]
+    if { ![winfo exists $path] } {
+	set fpath ".#BWidget.#Class#$class"
+	# encapsulation frame to not pollute '.' childspace
+	if {![winfo exists ".#BWidget"]} { frame ".#BWidget" }
+	if { ![winfo exists $fpath] } {
+	    frame $fpath -class $rdbclass
+	}
+    }
+    foreach {option optdesc} [array get classopt] {
+        set pathmod($option) 0
+	if { [info exists classmap($option)] } {
+	    continue
+	}
+        set type [lindex $optdesc 0]
+        if { [string equal $type "Synonym"] } {
+	    continue
+        }
+        if { [string equal $type "TkResource"] } {
+            set alt [lindex [lindex $optdesc 3] 1]
+        } else {
+            set alt ""
+        }
+        set optdb [lindex [_configure_option $option $alt] 0]
+        set def   [option get $fpath $optdb $rdbclass]
+        if { [string length $def] } {
+            set pathopt($option) $def
+        } else {
+            set pathopt($option) [lindex $optdesc 1]
+        }
+    }
+
+    if {![info exists _inuse($class)]} { set _inuse($class) 0 }
+    incr _inuse($class)
+
+    set Widget::_class($path) $class
+    foreach {option value} $options {
+        if { ![info exists classopt($option)] } {
+            unset pathopt
+            unset pathmod
+            return -code error "unknown option \"$option\""
+        }
+        set optdesc $classopt($option)
+        set type    [lindex $optdesc 0]
+        if { [string equal $type "Synonym"] } {
+            set option  [lindex $optdesc 1]
+            set optdesc $classopt($option)
+            set type    [lindex $optdesc 0]
+        }
+        set pathopt($option) [$Widget::_optiontype($type) $option $value [lindex $optdesc 3]]
+	set pathinit($option) $pathopt($option)
+    }
+}
+
+# Bastien Chevreux (bach@mwgdna.com)
+#
+# copyinit performs basically the same job as init, but it uses a
+#  existing template to initialize its values. So, first a perferct copy
+#  from the template is made just to be altered by any existing options
+#  afterwards.
+# But this still saves time as the first initialization parsing block is
+#  skipped.
+# As additional bonus, items that differ in just a few options can be
+#  initialized faster by leaving out the options that are equal.
+
+# This function is currently used only by ListBox::multipleinsert, but other
+#  calls should follow :)
+
+# ----------------------------------------------------------------------------
+#  Command Widget::copyinit
+# ----------------------------------------------------------------------------
+proc Widget::copyinit { class templatepath path options } {
+    upvar 0 ${class}::opt classopt \
+	    ${class}::$path:opt	 pathopt \
+	    ${class}::$path:mod	 pathmod \
+	    ${class}::$path:init pathinit \
+	    ${class}::$templatepath:opt	  templatepathopt \
+	    ${class}::$templatepath:mod	  templatepathmod \
+	    ${class}::$templatepath:init  templatepathinit
+
+    if { [info exists pathopt] } {
+	unset pathopt
+    }
+    if { [info exists pathmod] } {
+	unset pathmod
+    }
+
+    # We use the template widget for option db copying, but it has to exist!
+    array set pathmod  [array get templatepathmod]
+    array set pathopt  [array get templatepathopt]
+    array set pathinit [array get templatepathinit]
+
+    set Widget::_class($path) $class
+    foreach {option value} $options {
+	if { ![info exists classopt($option)] } {
+	    unset pathopt
+	    unset pathmod
+	    return -code error "unknown option \"$option\""
+	}
+	set optdesc $classopt($option)
+	set type    [lindex $optdesc 0]
+	if { [string equal $type "Synonym"] } {
+	    set option	[lindex $optdesc 1]
+	    set optdesc $classopt($option)
+	    set type	[lindex $optdesc 0]
+	}
+	set pathopt($option) [$Widget::_optiontype($type) $option $value [lindex $optdesc 3]]
+	set pathinit($option) $pathopt($option)
+    }
+}
+
+# Widget::parseArgs --
+#
+#	Given a widget class and a command-line spec, cannonize and validate
+#	the given options, and return a keyed list consisting of the 
+#	component widget and its masked portion of the command-line spec, and
+#	one extra entry consisting of the portion corresponding to the 
+#	megawidget itself.
+#
+# Arguments:
+#	class	widget class to parse for.
+#	options	command-line spec
+#
+# Results:
+#	result	keyed list of portions of the megawidget and that segment of
+#		the command line in which that portion is interested.
+
+proc Widget::parseArgs {class options} {
+    upvar 0 ${class}::opt classopt
+    upvar 0 ${class}::map classmap
+    
+    foreach {option val} $options {
+	if { ![info exists classopt($option)] } {
+	    error "unknown option \"$option\""
+	}
+        set optdesc $classopt($option)
+        set type    [lindex $optdesc 0]
+        if { [string equal $type "Synonym"] } {
+            set option  [lindex $optdesc 1]
+            set optdesc $classopt($option)
+            set type    [lindex $optdesc 0]
+        }
+	if { [string equal $type "TkResource"] } {
+	    # Make sure that the widget used for this TkResource exists
+	    Widget::_get_tkwidget_options [lindex [lindex $optdesc 3] 0]
+	}
+	set val [$Widget::_optiontype($type) $option $val [lindex $optdesc 3]]
+		
+	if { [info exists classmap($option)] } {
+	    foreach {subpath subclass realopt} $classmap($option) {
+		lappend maps($subpath) $realopt $val
+	    }
+	} else {
+	    lappend maps($class) $option $val
+	}
+    }
+    return [array get maps]
+}
+
+# Widget::initFromODB --
+#
+#	Initialize a megawidgets options with information from the option
+#	database and from the command-line arguments given.
+#
+# Arguments:
+#	class	class of the widget.
+#	path	path of the widget -- should already exist.
+#	options	command-line arguments.
+#
+# Results:
+#	None.
+
+proc Widget::initFromODB {class path options} {
+    variable _inuse
+    variable _class
+
+    upvar 0 ${class}::$path:opt  pathopt
+    upvar 0 ${class}::$path:mod  pathmod
+    upvar 0 ${class}::map classmap
+
+    if { [info exists pathopt] } {
+	unset pathopt
+    }
+    if { [info exists pathmod] } {
+	unset pathmod
+    }
+    # We prefer to use the actual widget for option db queries, but if it
+    # doesn't exist yet, do the next best thing:  create a widget of the
+    # same class and use that.
+    set fpath [_get_window $class $path]
+    set rdbclass [string map [list :: ""] $class]
+    if { ![winfo exists $path] } {
+	set fpath ".#BWidget.#Class#$class"
+	# encapsulation frame to not pollute '.' childspace
+	if {![winfo exists ".#BWidget"]} { frame ".#BWidget" }
+	if { ![winfo exists $fpath] } {
+	    frame $fpath -class $rdbclass
+	}
+    }
+
+    foreach {option optdesc} [array get ${class}::opt] {
+        set pathmod($option) 0
+	if { [info exists classmap($option)] } {
+	    continue
+	}
+        set type [lindex $optdesc 0]
+        if { [string equal $type "Synonym"] } {
+	    continue
+        }
+	if { [string equal $type "TkResource"] } {
+            set alt [lindex [lindex $optdesc 3] 1]
+        } else {
+            set alt ""
+        }
+        set optdb [lindex [_configure_option $option $alt] 0]
+        set def   [option get $fpath $optdb $rdbclass]
+        if { [string length $def] } {
+            set pathopt($option) $def
+        } else {
+            set pathopt($option) [lindex $optdesc 1]
+        }
+    }
+
+    if {![info exists _inuse($class)]} { set _inuse($class) 0 }
+    incr _inuse($class)
+
+    set _class($path) $class
+    array set pathopt $options
+}
+
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::destroy
+# ----------------------------------------------------------------------------
+proc Widget::destroy { path } {
+    variable _class
+    variable _inuse
+
+    if {![info exists _class($path)]} { return }
+
+    set class $_class($path)
+    upvar 0 ${class}::$path:opt pathopt
+    upvar 0 ${class}::$path:mod pathmod
+    upvar 0 ${class}::$path:init pathinit
+
+    if {[info exists _inuse($class)]} { incr _inuse($class) -1 }
+
+    if {[info exists pathopt]} {
+        unset pathopt
+    }
+    if {[info exists pathmod]} {
+        unset pathmod
+    }
+    if {[info exists pathinit]} {
+        unset pathinit
+    }
+
+    if {![string equal [info commands $path] ""]} { rename $path "" }
+
+    ## Unset any variables used in this widget.
+    foreach var [info vars ::${class}::$path:*] { unset $var }
+
+    unset _class($path)
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::configure
+# ----------------------------------------------------------------------------
+proc Widget::configure { path options } {
+    set len [llength $options]
+    if { $len <= 1 } {
+        return [_get_configure $path $options]
+    } elseif { $len % 2 == 1 } {
+        return -code error "incorrect number of arguments"
+    }
+
+    variable _class
+    variable _optiontype
+
+    set class $_class($path)
+    upvar 0 ${class}::opt  classopt
+    upvar 0 ${class}::map  classmap
+    upvar 0 ${class}::$path:opt pathopt
+    upvar 0 ${class}::$path:mod pathmod
+
+    set window [_get_window $class $path]
+    foreach {option value} $options {
+        if { ![info exists classopt($option)] } {
+            return -code error "unknown option \"$option\""
+        }
+        set optdesc $classopt($option)
+        set type    [lindex $optdesc 0]
+        if { [string equal $type "Synonym"] } {
+            set option  [lindex $optdesc 1]
+            set optdesc $classopt($option)
+            set type    [lindex $optdesc 0]
+        }
+        if { ![lindex $optdesc 2] } {
+            set newval [$_optiontype($type) $option $value [lindex $optdesc 3]]
+            if { [info exists classmap($option)] } {
+		set window [_get_window $class $window]
+                foreach {subpath subclass realopt} $classmap($option) {
+                    if { [string length $subclass] } {
+			set curval [${subclass}::cget $window$subpath $realopt]
+                        ${subclass}::configure $window$subpath $realopt $newval
+                    } else {
+			set curval [$window$subpath cget $realopt]
+                        $window$subpath configure $realopt $newval
+                    }
+                }
+            } else {
+		set curval $pathopt($option)
+		set pathopt($option) $newval
+	    }
+	    set pathmod($option) [expr {![string equal $newval $curval]}]
+        }
+    }
+
+    return {}
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::cget
+# ----------------------------------------------------------------------------
+proc Widget::cget { path option } {
+    if { ![info exists ::Widget::_class($path)] } {
+        return -code error "unknown widget $path"
+    }
+
+    set class $::Widget::_class($path)
+    if { ![info exists ${class}::opt($option)] } {
+        return -code error "unknown option \"$option\""
+    }
+
+    set optdesc [set ${class}::opt($option)]
+    set type    [lindex $optdesc 0]
+    if {[string equal $type "Synonym"]} {
+        set option [lindex $optdesc 1]
+    }
+
+    if { [info exists ${class}::map($option)] } {
+	foreach {subpath subclass realopt} [set ${class}::map($option)] {break}
+	set path "[_get_window $class $path]$subpath"
+	return [$path cget $realopt]
+    }
+    upvar 0 ${class}::$path:opt pathopt
+    set pathopt($option)
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::subcget
+# ----------------------------------------------------------------------------
+proc Widget::subcget { path subwidget } {
+    set class $::Widget::_class($path)
+    upvar 0 ${class}::$path:opt pathopt
+    upvar 0 ${class}::map$subwidget submap
+    upvar 0 ${class}::$path:init pathinit
+
+    set result {}
+    foreach realopt [array names submap] {
+	if { [info exists pathinit($submap($realopt))] } {
+	    lappend result $realopt $pathopt($submap($realopt))
+	}
+    }
+    return $result
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::hasChanged
+# ----------------------------------------------------------------------------
+proc Widget::hasChanged { path option pvalue } {
+    upvar    $pvalue value
+    set class $::Widget::_class($path)
+    upvar 0 ${class}::$path:mod pathmod
+
+    set value   [Widget::cget $path $option]
+    set result  $pathmod($option)
+    set pathmod($option) 0
+
+    return $result
+}
+
+proc Widget::hasChangedX { path option args } {
+    set class $::Widget::_class($path)
+    upvar 0 ${class}::$path:mod pathmod
+
+    set result  $pathmod($option)
+    set pathmod($option) 0
+    foreach option $args {
+	lappend result $pathmod($option)
+	set pathmod($option) 0
+    }
+
+    set result
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::setoption
+# ----------------------------------------------------------------------------
+proc Widget::setoption { path option value } {
+#    variable _class
+
+#    set class $_class($path)
+#    upvar 0 ${class}::$path:opt pathopt
+
+#    set pathopt($option) $value
+    Widget::configure $path [list $option $value]
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::getoption
+# ----------------------------------------------------------------------------
+proc Widget::getoption { path option } {
+#    set class $::Widget::_class($path)
+#    upvar 0 ${class}::$path:opt pathopt
+
+#    return $pathopt($option)
+    return [Widget::cget $path $option]
+}
+
+# Widget::getMegawidgetOption --
+#
+#	Bypass the superfluous checks in cget and just directly peer at the
+#	widget's data space.  This is much more fragile than cget, so it 
+#	should only be used with great care, in places where speed is critical.
+#
+# Arguments:
+#	path	widget to lookup options for.
+#	option	option to retrieve.
+#
+# Results:
+#	value	option value.
+
+proc Widget::getMegawidgetOption {path option} {
+    set class $::Widget::_class($path)
+    upvar 0 ${class}::${path}:opt pathopt
+    set pathopt($option)
+}
+
+# Widget::setMegawidgetOption --
+#
+#	Bypass the superfluous checks in cget and just directly poke at the
+#	widget's data space.  This is much more fragile than configure, so it 
+#	should only be used with great care, in places where speed is critical.
+#
+# Arguments:
+#	path	widget to lookup options for.
+#	option	option to retrieve.
+#	value	option value.
+#
+# Results:
+#	value	option value.
+
+proc Widget::setMegawidgetOption {path option value} {
+    set class $::Widget::_class($path)
+    upvar 0 ${class}::${path}:opt pathopt
+    set pathopt($option) $value
+}
+
+# ----------------------------------------------------------------------------
+#  Command Widget::_get_window
+#  returns the window corresponding to widget path
+# ----------------------------------------------------------------------------
+proc Widget::_get_window { class path } {
+    set idx [string last "#" $path]
+    if { $idx != -1 && [string equal [string range $path [expr {$idx+1}] end] $class] } {
+        return [string range $path 0 [expr {$idx-1}]]
+    } else {
+        return $path
+    }
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::_get_configure
+#  returns the configuration list of options
+#  (as tk widget do - [$w configure ?option?])
+# ----------------------------------------------------------------------------
+proc Widget::_get_configure { path options } {
+    variable _class
+
+    set class $_class($path)
+    upvar 0 ${class}::opt classopt
+    upvar 0 ${class}::map classmap
+    upvar 0 ${class}::$path:opt pathopt
+    upvar 0 ${class}::$path:mod pathmod
+
+    set len [llength $options]
+    if { !$len } {
+        set result {}
+        foreach option [lsort [array names classopt]] {
+            set optdesc $classopt($option)
+            set type    [lindex $optdesc 0]
+            if { [string equal $type "Synonym"] } {
+                set syn     $option
+                set option  [lindex $optdesc 1]
+                set optdesc $classopt($option)
+                set type    [lindex $optdesc 0]
+            } else {
+                set syn ""
+            }
+            if { [string equal $type "TkResource"] } {
+                set alt [lindex [lindex $optdesc 3] 1]
+            } else {
+                set alt ""
+            }
+            set res [_configure_option $option $alt]
+            if { $syn == "" } {
+                lappend result [concat $option $res [list [lindex $optdesc 1]] [list [cget $path $option]]]
+            } else {
+                lappend result [list $syn [lindex $res 0]]
+            }
+        }
+        return $result
+    } elseif { $len == 1 } {
+        set option  [lindex $options 0]
+        if { ![info exists classopt($option)] } {
+            return -code error "unknown option \"$option\""
+        }
+        set optdesc $classopt($option)
+        set type    [lindex $optdesc 0]
+        if { [string equal $type "Synonym"] } {
+            set option  [lindex $optdesc 1]
+            set optdesc $classopt($option)
+            set type    [lindex $optdesc 0]
+        }
+        if { [string equal $type "TkResource"] } {
+            set alt [lindex [lindex $optdesc 3] 1]
+        } else {
+            set alt ""
+        }
+        set res [_configure_option $option $alt]
+        return [concat $option $res [list [lindex $optdesc 1]] [list [cget $path $option]]]
+    }
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::_configure_option
+# ----------------------------------------------------------------------------
+proc Widget::_configure_option { option altopt } {
+    variable _optiondb
+    variable _optionclass
+
+    if { [info exists _optiondb($option)] } {
+        set optdb $_optiondb($option)
+    } else {
+        set optdb [string range $option 1 end]
+    }
+    if { [info exists _optionclass($option)] } {
+        set optclass $_optionclass($option)
+    } elseif { [string length $altopt] } {
+        if { [info exists _optionclass($altopt)] } {
+            set optclass $_optionclass($altopt)
+        } else {
+            set optclass [string range $altopt 1 end]
+        }
+    } else {
+        set optclass [string range $option 1 end]
+    }
+    return [list $optdb $optclass]
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::_get_tkwidget_options
+# ----------------------------------------------------------------------------
+proc Widget::_get_tkwidget_options { tkwidget } {
+    variable _tk_widget
+    variable _optiondb
+    variable _optionclass
+
+    set widget ".#BWidget.#$tkwidget"
+    # encapsulation frame to not pollute '.' childspace
+    if {![winfo exists ".#BWidget"]} { frame ".#BWidget" }
+    if { ![winfo exists $widget] || ![info exists _tk_widget($tkwidget)] } {
+	set widget [$tkwidget $widget]
+	# JDC: Withdraw toplevels, otherwise visible
+	if {[string equal $tkwidget "toplevel"]} {
+	    wm withdraw $widget
+	}
+	set config [$widget configure]
+	foreach optlist $config {
+	    set opt [lindex $optlist 0]
+	    if { [llength $optlist] == 2 } {
+		set refsyn [lindex $optlist 1]
+		# search for class
+		set idx [lsearch $config [list * $refsyn *]]
+		if { $idx == -1 } {
+		    if { [string index $refsyn 0] == "-" } {
+			# search for option (tk8.1b1 bug)
+			set idx [lsearch $config [list $refsyn * *]]
+		    } else {
+			# last resort
+			set idx [lsearch $config [list -[string tolower $refsyn] * *]]
+		    }
+		    if { $idx == -1 } {
+			# fed up with "can't read classopt()"
+			return -code error "can't find option of synonym $opt"
+		    }
+		}
+		set syn [lindex [lindex $config $idx] 0]
+		# JDC: used 4 (was 3) to get def from optiondb
+		set def [lindex [lindex $config $idx] 4]
+		lappend _tk_widget($tkwidget) [list $opt $syn $def]
+	    } else {
+		# JDC: used 4 (was 3) to get def from optiondb
+		set def [lindex $optlist 4]
+		lappend _tk_widget($tkwidget) [list $opt $def]
+		set _optiondb($opt)    [lindex $optlist 1]
+		set _optionclass($opt) [lindex $optlist 2]
+	    }
+	}
+    }
+    return $_tk_widget($tkwidget)
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::_test_tkresource
+# ----------------------------------------------------------------------------
+proc Widget::_test_tkresource { option value arg } {
+#    set tkwidget [lindex $arg 0]
+#    set realopt  [lindex $arg 1]
+    foreach {tkwidget realopt} $arg break
+    set path     ".#BWidget.#$tkwidget"
+    set old      [$path cget $realopt]
+    $path configure $realopt $value
+    set res      [$path cget $realopt]
+    $path configure $realopt $old
+
+    return $res
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::_test_bwresource
+# ----------------------------------------------------------------------------
+proc Widget::_test_bwresource { option value arg } {
+    return -code error "bad option type BwResource in widget"
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::_test_synonym
+# ----------------------------------------------------------------------------
+proc Widget::_test_synonym { option value arg } {
+    return -code error "bad option type Synonym in widget"
+}
+
+# ----------------------------------------------------------------------------
+#  Command Widget::_test_color
+# ----------------------------------------------------------------------------
+proc Widget::_test_color { option value arg } {
+    if {[catch {winfo rgb . $value} color]} {
+        return -code error "bad $option value \"$value\": must be a colorname \
+		or #RRGGBB triplet"
+    }
+
+    return $value
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::_test_string
+# ----------------------------------------------------------------------------
+proc Widget::_test_string { option value arg } {
+    set value
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::_test_flag
+# ----------------------------------------------------------------------------
+proc Widget::_test_flag { option value arg } {
+    set len [string length $value]
+    set res ""
+    for {set i 0} {$i < $len} {incr i} {
+        set c [string index $value $i]
+        if { [string first $c $arg] == -1 } {
+            return -code error "bad [string range $option 1 end] value \"$value\": characters must be in \"$arg\""
+        }
+        if { [string first $c $res] == -1 } {
+            append res $c
+        }
+    }
+    return $res
+}
+
+
+# -----------------------------------------------------------------------------
+#  Command Widget::_test_enum
+# -----------------------------------------------------------------------------
+proc Widget::_test_enum { option value arg } {
+    if { [lsearch $arg $value] == -1 } {
+        set last [lindex   $arg end]
+        set sub  [lreplace $arg end end]
+        if { [llength $sub] } {
+            set str "[join $sub ", "] or $last"
+        } else {
+            set str $last
+        }
+        return -code error "bad [string range $option 1 end] value \"$value\": must be $str"
+    }
+    return $value
+}
+
+
+# -----------------------------------------------------------------------------
+#  Command Widget::_test_int
+# -----------------------------------------------------------------------------
+proc Widget::_test_int { option value arg } {
+    if { ![string is int -strict $value] || \
+	    ([string length $arg] && \
+	    ![expr [string map [list %d $value] $arg]]) } {
+		    return -code error "bad $option value\
+			    \"$value\": must be integer ($arg)"
+    }
+    return $value
+}
+
+
+# -----------------------------------------------------------------------------
+#  Command Widget::_test_boolean
+# -----------------------------------------------------------------------------
+proc Widget::_test_boolean { option value arg } {
+    if { ![string is boolean -strict $value] } {
+        return -code error "bad $option value \"$value\": must be boolean"
+    }
+
+    # Get the canonical form of the boolean value (1 for true, 0 for false)
+    return [string is true $value]
+}
+
+
+# -----------------------------------------------------------------------------
+#  Command Widget::_test_padding
+# -----------------------------------------------------------------------------
+proc Widget::_test_padding { option values arg } {
+    set len [llength $values]
+    if {$len < 1 || $len > 2} {
+        return -code error "bad pad value \"$values\":\
+                        must be positive screen distance"
+    }
+
+    foreach value $values {
+        if { ![string is int -strict $value] || \
+            ([string length $arg] && \
+            ![expr [string map [list %d $value] $arg]]) } {
+                return -code error "bad pad value \"$value\":\
+                                must be positive screen distance ($arg)"
+        }
+    }
+    return $values
+}
+
+
+# Widget::_get_padding --
+#
+#       Return the requesting padding value for a padding option.
+#
+# Arguments:
+#	path		Widget to get the options for.
+#       option          The name of the padding option.
+#	index		The index of the padding.  If the index is empty,
+#                       the first padding value is returned.
+#
+# Results:
+#	Return a numeric value that can be used for padding.
+proc Widget::_get_padding { path option {index 0} } {
+    set pad [Widget::cget $path $option]
+    set val [lindex $pad $index]
+    if {$val == ""} { set val [lindex $pad 0] }
+    return $val
+}
+
+
+# -----------------------------------------------------------------------------
+#  Command Widget::focusNext
+#  Same as tk_focusNext, but call Widget::focusOK
+# -----------------------------------------------------------------------------
+proc Widget::focusNext { w } {
+    set cur $w
+    while 1 {
+
+	# Descend to just before the first child of the current widget.
+
+	set parent $cur
+	set children [winfo children $cur]
+	set i -1
+
+	# Look for the next sibling that isn't a top-level.
+
+	while 1 {
+	    incr i
+	    if {$i < [llength $children]} {
+		set cur [lindex $children $i]
+		if {[string equal [winfo toplevel $cur] $cur]} {
+		    continue
+		} else {
+		    break
+		}
+	    }
+
+	    # No more siblings, so go to the current widget's parent.
+	    # If it's a top-level, break out of the loop, otherwise
+	    # look for its next sibling.
+
+	    set cur $parent
+	    if {[string equal [winfo toplevel $cur] $cur]} {
+		break
+	    }
+	    set parent [winfo parent $parent]
+	    set children [winfo children $parent]
+	    set i [lsearch -exact $children $cur]
+	}
+	if {[string equal $cur $w] || [focusOK $cur]} {
+	    return $cur
+	}
+    }
+}
+
+
+# -----------------------------------------------------------------------------
+#  Command Widget::focusPrev
+#  Same as tk_focusPrev, except:
+#	+ Don't traverse from a child to a direct ancestor
+#	+ Call Widget::focusOK instead of tk::focusOK
+# -----------------------------------------------------------------------------
+proc Widget::focusPrev { w } {
+    set cur $w
+    set origParent [winfo parent $w]
+    while 1 {
+
+	# Collect information about the current window's position
+	# among its siblings.  Also, if the window is a top-level,
+	# then reposition to just after the last child of the window.
+
+	if {[string equal [winfo toplevel $cur] $cur]}  {
+	    set parent $cur
+	    set children [winfo children $cur]
+	    set i [llength $children]
+	} else {
+	    set parent [winfo parent $cur]
+	    set children [winfo children $parent]
+	    set i [lsearch -exact $children $cur]
+	}
+
+	# Go to the previous sibling, then descend to its last descendant
+	# (highest in stacking order.  While doing this, ignore top-levels
+	# and their descendants.  When we run out of descendants, go up
+	# one level to the parent.
+
+	while {$i > 0} {
+	    incr i -1
+	    set cur [lindex $children $i]
+	    if {[string equal [winfo toplevel $cur] $cur]} {
+		continue
+	    }
+	    set parent $cur
+	    set children [winfo children $parent]
+	    set i [llength $children]
+	}
+	set cur $parent
+	if {[string equal $cur $w]} {
+	    return $cur
+	}
+	# If we are just at the original parent of $w, skip it as a
+	# potential focus accepter.  Extra safety in this is to see if
+	# that parent is also a proc (not a C command), which is what
+	# BWidgets makes for any megawidget.  Could possibly also check
+	# for '[info commands ::${origParent}:cmd] != ""'.  [Bug 765667]
+	if {[string equal $cur $origParent]
+	    && [info procs ::$origParent] != ""} {
+	    continue
+	}
+	if {[focusOK $cur]} {
+	    return $cur
+	}
+    }
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command Widget::focusOK
+#  Same as tk_focusOK, but handles -editable option and whole tags list.
+# ----------------------------------------------------------------------------
+proc Widget::focusOK { w } {
+    set code [catch {$w cget -takefocus} value]
+    if { $code == 1 } {
+        return 0
+    }
+    if {($code == 0) && ($value != "")} {
+	if {$value == 0} {
+	    return 0
+	} elseif {$value == 1} {
+	    return [winfo viewable $w]
+	} else {
+	    set value [uplevel \#0 $value $w]
+            if {$value != ""} {
+		return $value
+	    }
+        }
+    }
+    if {![winfo viewable $w]} {
+	return 0
+    }
+    set code [catch {$w cget -state} value]
+    if {($code == 0) && ($value == "disabled")} {
+	return 0
+    }
+    set code [catch {$w cget -editable} value]
+    if {($code == 0) && ($value == 0)} {
+        return 0
+    }
+
+    set top [winfo toplevel $w]
+    foreach tags [bindtags $w] {
+        if { ![string equal $tags $top]  &&
+             ![string equal $tags "all"] &&
+             [regexp Key [bind $tags]] } {
+            return 1
+        }
+    }
+    return 0
+}
+
+
+proc Widget::traverseTo { w } {
+    set focus [focus]
+    if {![string equal $focus ""]} {
+	event generate $focus <<TraverseOut>>
+    }
+    focus $w
+
+    event generate $w <<TraverseIn>>
+}
+
+
+# Widget::varForOption --
+#
+#	Retrieve a fully qualified variable name for the option specified.
+#	If the option is not one for which a variable exists, throw an error 
+#	(ie, those options that map directly to widget options).
+#
+# Arguments:
+#	path	megawidget to get an option var for.
+#	option	option to get a var for.
+#
+# Results:
+#	varname	name of the variable, fully qualified, suitable for tracing.
+
+proc Widget::varForOption {path option} {
+    variable _class
+    variable _optiontype
+
+    set class $_class($path)
+    upvar 0 ${class}::$path:opt pathopt
+
+    if { ![info exists pathopt($option)] } {
+	error "unable to find variable for option \"$option\""
+    }
+    set varname "::Widget::${class}::$path:opt($option)"
+    return $varname
+}
+
+# Widget::getVariable --
+#
+#       Get a variable from within the namespace of the widget.
+#
+# Arguments:
+#	path		Megawidget to get the variable for.
+#	varName		The variable name to retrieve.
+#       newVarName	The variable name to refer to in the calling proc.
+#
+# Results:
+#	Creates a reference to newVarName in the calling proc.
+proc Widget::getVariable { path varName {newVarName ""} } {
+    variable _class
+    set class $_class($path)
+    if {![string length $newVarName]} { set newVarName $varName }
+    uplevel 1 [list upvar \#0 ${class}::$path:$varName $newVarName]
+}
+
+# Widget::options --
+#
+#       Return a key-value list of options for a widget.  This can
+#       be used to serialize the options of a widget and pass them
+#       on to a new widget with the same options.
+#
+# Arguments:
+#	path		Widget to get the options for.
+#	args		A list of options.  If empty, all options are returned.
+#
+# Results:
+#	Returns list of options as: -option value -option value ...
+proc Widget::options { path args } {
+    if {[llength $args]} {
+        foreach option $args {
+            lappend options [_get_configure $path $option]
+        }
+    } else {
+        set options [_get_configure $path {}]
+    }
+
+    set result [list]
+    foreach list $options {
+        if {[llength $list] < 5} { continue }
+        lappend result [lindex $list 0] [lindex $list end]
+    }
+    return $result
+}
+
+
+# Widget::getOption --
+#
+#	Given a list of widgets, determine which option value to use.
+#	The widgets are given to the command in order of highest to
+#	lowest.  Starting with the lowest widget, whichever one does
+#	not match the default option value is returned as the value.
+#	If all the widgets are default, we return the highest widget's
+#	value.
+#
+# Arguments:
+#	option		The option to check.
+#	default		The default value.  If any widget in the list
+#			does not match this default, its value is used.
+#	args		A list of widgets.
+#
+# Results:
+#	Returns the value of the given option to use.
+#
+proc Widget::getOption { option default args } {
+    for {set i [expr [llength $args] -1]} {$i >= 0} {incr i -1} {
+	set widget [lindex $args $i]
+	set value  [Widget::cget $widget $option]
+	if {[string equal $value $default]} { continue }
+	return $value
+    }
+    return $value
+}
+
+
+proc Widget::nextIndex { path node } {
+    Widget::getVariable $path autoIndex
+    if {![info exists autoIndex]} { set autoIndex -1 }
+    return [string map [list #auto [incr autoIndex]] $node]
+}
+
+
+proc Widget::exists { path } {
+    variable _class
+    return [info exists _class($path)]
+}
+
+proc Widget::theme {{bool {}}} {
+    # Private, *experimental* API that may change at any time - JH
+    variable _theme
+    if {[llength [info level 0]] == 2} {
+	# set theme-ability
+	if {[catch {package require tile 0.6}]
+	    && [catch {package require tile 1}]} {
+	    return -code error "BWidget's theming requires tile 0.6+"
+	} else {
+	    catch {style default BWSlim.Toolbutton -padding 0}
+	}
+	set _theme [string is true -strict $bool]
+    }
+    return $_theme
+}
+
+
+namespace eval ProgressBar {
+    Widget::define ProgressBar progressbar
+
+    Widget::declare ProgressBar {
+        {-type        Enum       normal     0
+                      {normal incremental infinite nonincremental_infinite}}
+        {-maximum     Int        100        0 "%d > 0"}
+        {-background  TkResource ""         0 frame}
+        {-foreground  TkResource "blue"     0 label}
+        {-borderwidth TkResource 2          0 frame}
+        {-troughcolor TkResource ""         0 scrollbar}
+        {-relief      TkResource sunken     0 label}
+        {-orient      Enum       horizontal 1 {horizontal vertical}}
+        {-variable    String     ""         0}
+        {-idle        Boolean    0          0}
+        {-width       TkResource 100        0 frame}
+        {-height      TkResource 4m         0 frame}
+        {-bg          Synonym    -background}
+        {-fg          Synonym    -foreground}
+        {-bd          Synonym    -borderwidth}
+    }
+
+    Widget::addmap ProgressBar "" :cmd {-background {} -width {} -height {}}
+    Widget::addmap ProgressBar "" .bar {
+	-troughcolor -background -borderwidth {} -relief {}
+    }
+
+    variable _widget
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command ProgressBar::create
+# ----------------------------------------------------------------------------
+proc ProgressBar::create { path args } {
+    variable _widget
+
+    array set maps [list ProgressBar {} :cmd {} .bar {}]
+    array set maps [Widget::parseArgs ProgressBar $args]
+    eval frame $path $maps(:cmd) -class ProgressBar -bd 0 \
+	    -highlightthickness 0 -relief flat
+    Widget::initFromODB ProgressBar $path $maps(ProgressBar)
+
+    set c  [eval [list canvas $path.bar] $maps(.bar) -highlightthickness 0]
+    set fg [Widget::cget $path -foreground]
+    if { [string equal [Widget::cget $path -orient] "horizontal"] } {
+        $path.bar create rectangle -1 0 0 0 -fill $fg -outline $fg -tags rect
+    } else {
+        $path.bar create rectangle 0 1 0 0 -fill $fg -outline $fg -tags rect
+    }
+
+    set _widget($path,val) 0
+    set _widget($path,dir) 1
+    set _widget($path,var) [Widget::cget $path -variable]
+    if {$_widget($path,var) != ""} {
+        GlobalVar::tracevar variable $_widget($path,var) w \
+		[list ProgressBar::_modify $path]
+        set _widget($path,afterid) \
+	    [after idle [list ProgressBar::_modify $path]]
+    }
+
+    bind $path.bar <Destroy>   [list ProgressBar::_destroy $path]
+    bind $path.bar <Configure> [list ProgressBar::_modify $path]
+
+    return [Widget::create ProgressBar $path]
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command ProgressBar::configure
+# ----------------------------------------------------------------------------
+proc ProgressBar::configure { path args } {
+    variable _widget
+
+    set res [Widget::configure $path $args]
+
+    if { [Widget::hasChangedX $path -variable] } {
+	set newv [Widget::cget $path -variable]
+        if { $_widget($path,var) != "" } {
+            GlobalVar::tracevar vdelete $_widget($path,var) w \
+		    [list ProgressBar::_modify $path]
+        }
+        if { $newv != "" } {
+            set _widget($path,var) $newv
+            GlobalVar::tracevar variable $newv w \
+		    [list ProgressBar::_modify $path]
+	    if {![info exists _widget($path,afterid)]} {
+		set _widget($path,afterid) \
+		    [after idle [list ProgressBar::_modify $path]]
+	    }
+        } else {
+            set _widget($path,var) ""
+        }
+    }
+
+    foreach {cbd cor cma} [Widget::hasChangedX $path -borderwidth \
+	    -orient -maximum] break
+
+    if { $cbd || $cor || $cma } {
+	if {![info exists _widget($path,afterid)]} {
+	    set _widget($path,afterid) \
+		[after idle [list ProgressBar::_modify $path]]
+	}
+    }
+    if { [Widget::hasChangedX $path -foreground] } {
+	set fg [Widget::cget $path -foreground]
+        $path.bar itemconfigure rect -fill $fg -outline $fg
+    }
+    return $res
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command ProgressBar::cget
+# ----------------------------------------------------------------------------
+proc ProgressBar::cget { path option } {
+    return [Widget::cget $path $option]
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command ProgressBar::_modify
+# ----------------------------------------------------------------------------
+proc ProgressBar::_modify { path args } {
+    variable _widget
+
+    catch {unset _widget($path,afterid)}
+    if { ![GlobalVar::exists $_widget($path,var)] ||
+	 [set val [GlobalVar::getvar $_widget($path,var)]] < 0 } {
+        catch {place forget $path.bar}
+    } else {
+	place $path.bar -relx 0 -rely 0 -relwidth 1 -relheight 1
+	set type [Widget::getoption $path -type]
+	if { $val != 0 && $type != "normal" && \
+		$type != "nonincremental_infinite"} {
+	    set val [expr {$val+$_widget($path,val)}]
+	}
+	set _widget($path,val) $val
+	set max [Widget::getoption $path -maximum]
+	set bd  [expr {2*[$path.bar cget -bd]}]
+	set w   [winfo width  $path.bar]
+	set h   [winfo height $path.bar]
+	if {$type == "infinite" || $type == "nonincremental_infinite"} {
+	    # JDC: New infinite behaviour
+	    set tval [expr {$val % $max}]
+	    if { $tval < ($max / 2.0) } {
+		set x0 [expr {double($tval) / double($max) * 1.5}]
+	    } else {
+		set x0 [expr {(1.0-(double($tval) / double($max))) * 1.5}]
+	    }
+	    set x1 [expr {$x0 + 0.25}]
+	    # convert coords to ints to prevent triggering canvas refresh
+	    # bug related to fractional coords
+	    if {[Widget::getoption $path -orient] == "horizontal"} {
+		$path.bar coords rect [expr {int($x0*$w)}] 0 \
+		    [expr {int($x1*$w)}] $h
+	    } else {
+		$path.bar coords rect 0 [expr {int($h-$x0*$h)}] $w \
+		    [expr {int($x1*$h)}]
+	    }
+	} else {
+	    if { $val > $max } {set val $max}
+	    if {[Widget::getoption $path -orient] == "horizontal"} {
+		$path.bar coords rect -1 0 [expr {int(double($val)*$w/$max)}] $h
+	    } else {
+		$path.bar coords rect 0 [expr {$h+1}] $w \
+		    [expr {int($h*(1.0 - double($val)/$max))}]
+	    }
+	}
+    }
+    if {![Widget::cget $path -idle]} {
+	update idletasks
+    }
+}
+
+
+# ----------------------------------------------------------------------------
+#  Command ProgressBar::_destroy
+# ----------------------------------------------------------------------------
+proc ProgressBar::_destroy { path } {
+    variable _widget
+
+    if {[info exists _widget($path,afterid)]} {
+	after cancel $_widget($path,afterid)
+	unset _widget($path,afterid)
+    }
+    if {[info exists _widget($path,var)]} {
+	if {$_widget($path,var) != ""} {
+	    GlobalVar::tracevar vdelete $_widget($path,var) w \
+		[list ProgressBar::_modify $path]
+	}
+	unset _widget($path,var)
+    }
+    unset _widget($path,dir)
+    Widget::destroy $path
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-tk.tcl
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-tk.tcl	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-tk.tcl	(revision 2476)
@@ -0,0 +1,244 @@
+# util-tk.tcl --
+#
+#	This file implements package ::Utility::tk, which  ...
+#
+# Copyright (c) 1997-8 Jeffrey Hobbs
+#
+# See the file "license.terms" for information on usage and
+# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+
+package require Tk
+package require ::Utility
+package provide ::Utility::tk 1.0
+
+namespace eval ::Utility::tk {;
+
+namespace export -clear *
+
+## PROBLEM HERE
+## 
+## Only uncomment one of the following namespace import lines
+##
+
+## This is what I theoretically need, but it causes the Abort in
+## regular wish.  This works for wish with TCL_MEM_DEBUG.
+#namespace import -force ::Utility::get_opts ::Utility::highlight
+
+## This works, but is essentially useless in my situation
+#namespace import -force ::Utility::expand::* ::Utility::dump::*
+
+## This works too, but is silly
+after idle [namespace code [list namespace import -force \
+	::Utility::highlight ::Utility::get_opts]]
+
+## This causes constant Bus Error on startup with regular wish
+## but the Abort with debugging wish.
+#namespace import -force ::Utility::*
+
+## The abort message mentioned above is:
+
+#DeleteImportedCmd: did not find cmd in real cmd's list of import references
+#Abort
+
+## If I try loading the above interactively as opposed to the tour at
+## command line, I get a seg fault instead of a bus error.
+
+##
+## YOU CAN IGNORE THE REST
+##
+
+# warn --
+#
+#   Simple warning alias to ease programming
+#
+# Arguments:
+#   msg		The warning message to display
+# Results:
+#   Returns nothing important.
+#
+proc warn {msg} {
+    bell
+    tk_dialog .__warning Warning $msg warning 0 OK
+}
+
+# place_window --
+#   place a toplevel at a particular position
+# Arguments:
+#   toplevel	name of toplevel window
+#   ?placement?	pointer ?center? ; places $w centered on the pointer
+#		widget widget_name ; centers $w over widget_name
+#		defaults to placing toplevel in the middle of the screen
+#   ?anchor?
+# Results:
+#   Returns nothing
+#
+proc place_window {w {placement ""} {anchor ""}} {
+    wm withdraw $w
+    update idletasks
+    switch -glob -- $placement {
+	p*	{ ## place at POINTER (centered is $anchor == center)
+	    if {[string match "c*" $anchor]} {
+		wm geometry $w +[expr \
+			{[winfo pointerx $w]-[winfo width $w]/2}]+[expr \
+			{[winfo pointery $w]-[winfo height $w]/2}]
+	    } else {
+		wm geometry $w +[winfo pointerx $w]+[winfo pointery $w]
+	    }
+	}
+	w*	{ ## center about WIDGET $anchor
+	    wm geometry $w +[expr {[winfo rootx $anchor]+([winfo width \
+		    $anchor]-[winfo width $w])/2}]+[expr {[winfo rooty \
+		    $anchor]+([winfo height $anchor]-[winfo height $w])/2}]
+	}
+	default	{
+	    wm geometry $w +[expr {([winfo screenwidth $w]-\
+		    [winfo reqwidth $w])/2}]+[expr \
+		    {([winfo screenheight $w]-[winfo reqheight $w])/2}]
+	}
+    }
+    wm deiconify $w
+}
+
+## Centers the canvas around points x & y
+##
+## Unoptimized, this looks like:
+##    set xtenth [expr .10 * [winfo width $w]]
+##    set ytenth [expr .10 * [winfo height $w]]
+##    set X [expr [winfo width $w] / 2]
+##    set Y [expr [winfo height $w] / 2]
+##    set x1 [expr round(($x-$X)/$xtenth)]
+##    set y1 [expr round(($y-$Y)/$ytenth)]
+##    $w xview scroll $x1 units
+##    $w yview scroll $y1 units
+##
+proc canvas_center {w x y} {
+    $w xview scroll [expr {round(10.0*$x/[winfo width $w]-5)}] units
+    $w yview scroll [expr {round(10.0*$y/[winfo height $w]-5)}] units
+}
+
+## "see" method alternative for canvas
+## Aligns the named item as best it can in the middle of the screen
+## Behavior depends on whether -scrollregion is set
+##
+## c    - a canvas widget
+## item - a canvas tagOrId
+proc canvas_see {c item} {
+    set box [$c bbox $item]
+    if {[string match {} $box]} return
+    if {[string match {} [$c cget -scrollregion]]} {
+	## People really should set -scrollregion you know...
+	foreach {x y x1 y1} $box {
+	    set x [expr {round(2.5*($x1+$x)/[winfo width $c])}]
+	    set y [expr {round(2.5*($y1+$y)/[winfo height $c])}]
+	}
+	$c xview moveto 0
+	$c yview moveto 0
+	$c xview scroll $x units
+	$c yview scroll $y units
+    } else {
+	## If -scrollregion is set properly, use this
+	foreach {x y x1 y1} $box {top btm} [$c yview] {left right} [$c xview] \
+		{p q xmax ymax} [$c cget -scrollregion] {
+	    set xpos [expr {(($x1+$x)/2.0)/$xmax - ($right-$left)/2.0}]
+	    set ypos [expr {(($y1+$y)/2.0)/$ymax - ($btm-$top)/2.0}]
+	}
+	$c xview moveto $xpos
+	$c yview moveto $ypos
+    }
+}
+
+## Set cursor of widget $w and its descendants to $cursor
+## Ignores {} cursors
+proc cursor_set {w cursor} {
+    variable CURSOR
+    if {[string compare {} [set CURSOR($w) [$w cget -cursor]]]} {
+	$w config -cursor $cursor
+    } else {
+	unset CURSOR($w)
+    }
+    foreach child [winfo children $w] { cursor_set $child $cursor }
+}
+
+## Restore cursor based on CURSOR($w) for $w and its descendants
+## $cursor is the default cursor (if none was cached)
+proc cursor_restore {w {cursor {}}} {
+    variable CURSOR
+    if {[info exists CURSOR($w)]} {
+	$w config -cursor $CURSOR($w)
+    } else {
+	$w config -cursor $cursor
+    }
+    foreach child [winfo children $w] { cursor_restore $child $cursor }
+}
+
+# highlight_dialog --
+#
+#   creates minimal dialog interface to highlight
+#
+# Arguments:
+#   w	text widget
+#   str	optional seed string for HIGHLIGHT(string)
+# Results:
+#   Returns null.
+#
+proc highlight_dialog {w {str {}}} {
+    variable HIGHLIGHT
+
+    set namesp [namespace current]
+    set var ${namesp}::HIGHLIGHT
+    set base $w.__highlight
+    if {![winfo exists $base]} {
+	toplevel $base
+	wm withdraw $base
+	wm title $base "Find String"
+
+	pack [frame $base.f] -fill x -expand 1
+	label $base.f.l -text "Find:"
+	entry $base.f.e -textvariable ${var}($w,string)
+	pack [frame $base.opt] -fill x
+	checkbutton $base.opt.c -text "Case Sensitive" \
+		-variable ${var}($w,nocase)
+	checkbutton $base.opt.r -text "Use Regexp" -variable ${var}($w,regexp)
+	pack $base.f.l -side left
+	pack $base.f.e $base.opt.c $base.opt.r -side left -fill both -expand 1
+	pack [frame $base.sep -bd 2 -relief sunken -height 4] -fill x
+	pack [frame $base.btn] -fill both
+	button $base.btn.fnd -text "Find" -width 6
+	button $base.btn.clr -text "Clear" -width 6
+	button $base.btn.dis -text "Dismiss" -width 6
+	eval pack [winfo children $base.btn] -padx 4 -pady 2 \
+		-side left -fill both
+
+	focus $base.f.e
+
+	bind $base.f.e <Return> [list $base.btn.fnd invoke]
+	bind $base.f.e <Escape> [list $base.btn.dis invoke]
+    }
+    ## FIX namespace
+    $base.btn.fnd config -command [namespace code \
+	    "highlight [list $w] \[set ${var}($w,string)\] \
+	    \[expr {\[set ${var}($w,nocase)\]?{}:{-nocase}}] \
+	    \[expr {\[set ${var}($w,regexp)\]?{-regexp}:{}}] \
+	    -tag __highlight -color [list yellow]"]
+    $base.btn.clr config -command \
+	    "[list $w] tag remove __highlight 1.0 end;\
+	    set [list ${var}($w,string)] {}"
+    $base.btn.dis config -command \
+	    "[list $w] tag remove __highlight 1.0 end;\
+	    wm withdraw [list $base]"
+    if {[string compare {} $str]} {
+	set ${var}($w,string) $str
+	$base.btn.fnd invoke
+    }
+
+    if {[string compare normal [wm state $base]]} {
+	wm deiconify $base
+    } else {
+	raise $base
+    }
+    $base.f.e select range 0 end
+}
+
+
+}; # end namespace ::Utility::Tk
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/Tk-frontend.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/Tk-frontend.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/Tk-frontend.R	(revision 2476)
@@ -0,0 +1,25 @@
+#  File src/library/tools/R/news.R
+#  Part of the R package, https://www.R-project.org
+#
+#  Copyright (C) 2003 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  https://www.R-project.org/Licenses/
+
+{
+    # NOTE: This file resides in the exec directory rather than the R
+    # directory  because it does not define functions but is intended to
+    # be sourced into a running R.
+    library(tcltk)
+    tkStartGUI()
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-expand.tcl
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-expand.tcl	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/exec/util-expand.tcl	(revision 2476)
@@ -0,0 +1,207 @@
+# util-expand.tcl --
+#
+#	This file implements package ::Utility::expand, which  ...
+#
+# Copyright (c) 1997-8 Jeffrey Hobbs
+#
+# See the file "license.terms" for information on usage and
+# redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+
+package require ::Utility
+package provide ::Utility::expand 1.0
+
+namespace eval ::Utility::expand {;
+
+namespace export -clear expand*
+namespace import -force ::Utility::*
+
+##
+## NOTE: In places where uplevel is used, it is highly likely that
+## a further eval redirect is otherwise necessary for foreign interps
+##
+
+# expand --
+#
+#	The string to match is expanded to the longest possible match.
+#	If data(-showmultiple) is non-zero and the user longest match
+#	equaled the string to expand, then all possible matches are
+#	output to stdout.  Triggers bell if no matches are found.
+#
+# Arguments:
+#    type	type of expansion (path / proc / variable)
+#
+# Returns:
+#	number of matches found
+#
+proc expand {args} {
+    array set opts {
+	-type any -widget {}
+    }
+    set args [get_opts opts $args {-type 1 -widget 1} {-widget widget}]
+    if {[string match {} $opts(-widget)] && [llength $args]!=1} {
+	return -code error "wrong # args: should be\
+		\"[lindex [info level 0] 0] ?-type type?\
+		?-widget widget || str?"
+    }
+    set prefix [namespace current]::expand_
+    if {[string match {} [set arg [info commands $prefix$opts(-type)]]]} {
+	set arg [info commands $prefix$opts(-type)*]
+    }
+    set result {}
+    set code ok
+    if 0 {
+	set exp "\[^\\]\[ \t\n\r\[\{\"\$]"
+	set tmp [$w search -backwards -regexp $exp insert-1c limit-1c]
+	if {[string compare {} $tmp]} {append tmp +2c} else {set tmp limit}
+	if {[$w compare $tmp >= insert]} return
+	set str [$w get $tmp insert]
+    }
+    switch [llength $arg] {
+	1 { set code [catch {uplevel $arg $args} result] }
+	0 {
+	    set arg [info commands $prefix*]
+	    regsub -all $prefix $arg {} arg
+	    return -code error "unknown [lindex [info level 0] 0] type\
+		    \"$opts(-type)\", must be one of: [join [lsort $arg] {, }]"
+	}
+	default {
+	    regsub -all $prefix $arg {} arg
+	    return -code error "ambiguous type \"$opts(-type)\",\
+		    could be one of: [join [lsort $arg] {, }]"
+	}
+    }
+    if 0 {
+	set len [llength $res]
+	if {$len} {
+	    $w delete $tmp insert
+	    $w insert $tmp [lindex $res 0]
+	    if {$len > 1} {
+		upvar \#0 [namespace current]::[winfo parent $w] data
+		if {$data(-showmultiple) && \
+			![string compare [lindex $res 0] $str]} {
+		    puts stdout [lsort [lreplace $res 0 0]]
+		}
+	    }
+	} else { bell }
+	return [incr len -1]
+    }
+    return -code $code [string trimright $result \n]
+}
+
+# expand_pathname --
+#
+#    expand a file pathname based on $str
+#    This is based on UNIX file name conventions
+#
+# Arguments:
+#   str		partial file pathname to expand
+# Results:
+#   Returns list containing longest unique match followed by all the
+#   possible further matches
+#
+proc expand_pathname {str} {
+    #reval pwd, cd, glob and final cd
+    set pwd [pwd]
+    if {[catch {cd [file dirname $str]} err]} {
+	return -code error $err
+    }
+    if {[catch {glob [file tail $str]*} m]} {
+	set match {}
+    } else {
+	if {[llength $m] > 1} {
+	    global tcl_platform
+	    if {[string match windows $tcl_platform(platform)]} {
+		## Windows is screwy because it can be case insensitive
+		set tmp [best_match [string tolower [lsort $m]] \
+			[string tolower [file tail $str]]]
+	    } else {
+		set tmp [best_match [lsort $m] [file tail $str]]
+	    }
+	    if {[string match ?*/* $str]} {
+		set tmp [file dirname $str]/$tmp
+	    } elseif {[string match /* $str]} {
+		set tmp /$tmp
+	    }
+	    regsub -all { } $tmp {\\ } tmp
+	    set match [linsert $m 0 $tmp]
+	} else {
+	    ## This may look goofy, but it handles spaces in path names
+	    eval append match $m
+	    if {[file isdir $match]} {append match /}
+	    if {[string match ?*/* $str]} {
+		set match [file dirname $str]/$match
+	    } elseif {[string match /* $str]} {
+		set match /$match
+	    }
+	    regsub -all { } $match {\\ } match
+	    ## Why is this one needed and the ones below aren't!!
+	    set match [list $match]
+	}
+    }
+    cd $pwd
+    return $match
+}
+
+# expand_proc --
+#
+## ExpandProcname - expand a tcl proc name based on $str
+# ARGS:	str	- partial proc name to expand
+# Calls:	best_match
+# Returns:	list containing longest unique match followed by all the
+#		possible further matches
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+proc expand_proc {str} {
+    #reval info
+    set match [uplevel info commands [list $str]*]
+    if {[llength $match] > 1} {
+	regsub -all { } [best_match $match $str] {\\ } str
+	set match [linsert $match 0 $str]
+    } else {
+	regsub -all { } $match {\\ } match
+    }
+    return $match
+}
+
+# expand_variable --
+#
+## ExpandVariable - expand a tcl variable name based on $str
+# ARGS:	str	- partial tcl var name to expand
+# Calls:	best_match
+# Returns:	list containing longest unique match followed by all the
+#		possible further matches
+#
+# Arguments:
+#   args	comments
+# Results:
+#   Returns ...
+#
+proc expand_variable {str} {
+    #reval "array names", "info vars"
+    if {[regexp {([^\(]*)\((.*)} $str junk ary str]} {
+	## Looks like they're trying to expand an array.
+	set match [array names $ary $str*]
+	if {[llength $match] > 1} {
+	    set vars $ary\([best_match $match $str]
+	    foreach var $match {lappend vars $ary\($var\)}
+	    return $vars
+	} else {set match $ary\($match\)}
+	## Space transformation avoided for array names.
+    } else {
+	set match [info vars $str*]
+	if {[llength $match] > 1} {
+	    regsub -all { } [best_match $match $str] {\\ } str
+	    set match [linsert $match 0 $str]
+	} else {
+	    regsub -all { } $match {\\ } match
+	}
+    }
+    return $match
+}
+
+}; # end of namespace ::Utility::expand
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/html/00Index.html	(revision 2476)
@@ -0,0 +1,677 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Tcl/Tk Interface</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Tcl/Tk Interface
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;tcltk&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../demo">Code demos</a>.  Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="# "> </a>
+<a href="#A">A</a>
+<a href="#C">C</a>
+<a href="#G">G</a>
+<a href="#I">I</a>
+<a href="#L">L</a>
+<a href="#N">N</a>
+<a href="#P">P</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#misc">misc</a>
+</p>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="tcltk-package.html">tcltk-package</a></td>
+<td>Tcl/Tk Interface</td></tr>
+</table>
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="TclInterface.html">addTclPath</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">as.character.tclObj</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">as.character.tclVar</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">as.double.tclObj</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">as.integer.tclObj</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">as.logical.tclObj</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">as.raw.tclObj</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">as.tclObj</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="tkProgressBar.html">close.tkProgressBar</a></td>
+<td>Progress Bars via Tk</td></tr>
+</table>
+
+<h2><a name="G">-- G --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="tkProgressBar.html">getTkProgressBar</a></td>
+<td>Progress Bars via Tk</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="TclInterface.html">is.tclObj</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">is.tkwin</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="TclInterface.html">length.tclArray</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">length&lt;-.tclArray</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="TclInterface.html">names.tclArray</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">names&lt;-.tclArray</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="TclInterface.html">print.tclObj</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="tkProgressBar.html">setTkProgressBar</a></td>
+<td>Progress Bars via Tk</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="TkCommands.html">tcl</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclArray</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tclclose</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tclfile.dir</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tclfile.tail</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">TclInterface</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclObj</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclObj.tclVar</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclObj&lt;-</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclObj&lt;-.tclVar</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tclopen</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tclputs</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tclread</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclRequire</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="tclServiceMode.html">tclServiceMode</a></td>
+<td>Allow Tcl events to be serviced or not</td></tr>
+<tr><td style="width: 25%;"><a href="tcltk-package.html">tcltk</a></td>
+<td>Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclvalue</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclvalue.default</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclvalue.tclObj</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclvalue.tclVar</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclvalue&lt;-</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclvalue&lt;-.default</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclvalue&lt;-.tclVar</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclVar</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclvar</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tclVersion</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkactivate</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkadd</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkaddtag</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkbbox</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkbell</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkbind</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkbindtags</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tkbutton</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tkcanvas</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkcanvasx</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkcanvasy</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkcget</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tkcheckbutton</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkchooseDirectory</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkclipboard.append</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkclipboard.clear</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">TkCommands</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkcompare</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkconfigure</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkcoords</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkcreate</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkcurselection</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkdchars</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkdebug</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkdelete</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkdelta</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkdeselect</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">tkdestroy</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkdialog</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkdlineinfo</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkdtag</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkdump</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tkentry</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkentrycget</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkentryconfigure</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkevent.add</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkevent.delete</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkevent.generate</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkevent.info</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkfind</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkflash</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkfocus</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkfont.actual</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkfont.configure</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkfont.create</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkfont.delete</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkfont.families</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkfont.measure</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkfont.metrics</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkfont.names</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkfraction</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tkframe</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkget</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgetOpenFile</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgetSaveFile</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkgettags</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrab</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrab.current</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrab.release</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrab.set</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrab.status</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrid</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrid.bbox</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrid.columnconfigure</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrid.configure</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrid.forget</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrid.info</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrid.location</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrid.propagate</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrid.remove</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrid.rowconfigure</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrid.size</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkgrid.slaves</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkicursor</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkidentify</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkimage.create</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkimage.delete</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkimage.height</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkimage.inuse</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkimage.names</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkimage.type</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkimage.types</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkimage.width</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkindex</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkinsert</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkinvoke</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkitembind</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkitemcget</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkitemconfigure</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkitemfocus</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkitemlower</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkitemraise</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkitemscale</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tklabel</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tklistbox</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tklower</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkmark.gravity</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkmark.names</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkmark.next</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkmark.previous</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkmark.set</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkmark.unset</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tkmenu</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tkmenubutton</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tkmessage</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkmessageBox</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkmove</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tknearest</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkpack</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkpack.configure</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkpack.forget</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkpack.info</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkpack.propagate</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkpack.slaves</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="tkpager.html">tkpager</a></td>
+<td>Page file using Tk text widget</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkplace</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkplace.configure</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkplace.forget</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkplace.info</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkplace.slaves</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkpopup</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkpost</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkpostcascade</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkpostscript</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="tkProgressBar.html">tkProgressBar</a></td>
+<td>Progress Bars via Tk</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tkradiobutton</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkraise</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tkscale</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkscan.dragto</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkscan.mark</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tkscrollbar</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tksearch</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tksee</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkselect</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkselection.adjust</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkselection.anchor</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkselection.clear</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkselection.from</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkselection.includes</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkselection.present</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkselection.range</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkselection.set</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkselection.to</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkset</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tksize</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="tkStartGUI.html">tkStartGUI</a></td>
+<td>Tcl/Tk GUI startup</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktag.add</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktag.bind</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktag.cget</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktag.configure</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktag.delete</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktag.lower</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktag.names</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktag.nextrange</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktag.prevrange</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktag.raise</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktag.ranges</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktag.remove</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tktext</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tktitle</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tktitle&lt;-</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktoggle</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tktoplevel</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tktype</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkunpost</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwait.variable</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwait.visibility</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwait.window</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">tkwidget</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">TkWidgetcmds</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">TkWidgets</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkwindow.cget</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkwindow.configure</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkwindow.create</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkwindow.names</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwinfo</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.aspect</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.client</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.colormapwindows</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.command</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.deiconify</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.focusmodel</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.frame</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.geometry</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.grid</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.group</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.iconbitmap</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.iconify</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.iconmask</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.iconname</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.iconposition</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.iconwindow</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.maxsize</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.minsize</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.overrideredirect</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.positionfrom</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.protocol</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.resizable</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.sizefrom</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.state</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.title</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.transient</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkwm.withdraw</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkXselection.clear</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkXselection.get</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkXselection.handle</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkCommands.html">tkXselection.own</a></td>
+<td>Tk non-widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkxview</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkxview.moveto</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkxview.scroll</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkyposition</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkyview</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkyview.moveto</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgetcmds.html">tkyview.scroll</a></td>
+<td>Tk widget commands</td></tr>
+<tr><td style="width: 25%;"><a href="tk_choose.dir.html">tk_choose.dir</a></td>
+<td>Choose a Folder Interactively</td></tr>
+<tr><td style="width: 25%;"><a href="tk_choose.files.html">tk_choose.files</a></td>
+<td>Choose a List of Files Interactively</td></tr>
+<tr><td style="width: 25%;"><a href="tk_messageBox.html">tk_messageBox</a></td>
+<td>Tk Message Box</td></tr>
+<tr><td style="width: 25%;"><a href="tk_select.list.html">tk_select.list</a></td>
+<td>Select Items from a List</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttkbutton</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttkcheckbutton</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttkcombobox</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttkentry</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttkframe</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttklabel</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttklabelframe</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttkmenubutton</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttknotebook</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttkpanedwindow</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttkprogressbar</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttkradiobutton</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttkscale</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttkscrollbar</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttkseparator</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttksizegrip</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttkspinbox</a></td>
+<td>Tk widgets</td></tr>
+<tr><td style="width: 25%;"><a href="TkWidgets.html">ttktreeview</a></td>
+<td>Tk widgets</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="TclInterface.html">$.tclArray</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">$&lt;-.tclArray</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">.Tcl</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">.Tcl.args</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">.Tcl.args.objv</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">.Tcl.callback</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">.Tcl.objv</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">.Tk.ID</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">.Tk.newwin</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">.Tk.subwin</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">.TkRoot</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">[[.tclArray</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+<tr><td style="width: 25%;"><a href="TclInterface.html">[[&lt;-.tclArray</a></td>
+<td>Low-level Tcl/Tk Interface</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/Meta/demo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/Meta/demo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/INDEX	(revision 2476)
@@ -0,0 +1,13 @@
+TclInterface            Low-level Tcl/Tk Interface
+TkCommands              Tk non-widget commands
+TkWidgetcmds            Tk widget commands
+TkWidgets               Tk widgets
+tclServiceMode          Allow Tcl events to be serviced or not
+tcltk-package           Tcl/Tk Interface
+tkProgressBar           Progress Bars via Tk
+tkStartGUI              Tcl/Tk GUI startup
+tk_choose.dir           Choose a Folder Interactively
+tk_choose.files         Choose a List of Files Interactively
+tk_messageBox           Tk Message Box
+tk_select.list          Select Items from a List
+tkpager                 Page file using Tk text widget
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/help/tcltk.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/help/tcltk.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/help/tcltk.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/help/tcltk.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/help/AnIndex	(revision 2476)
@@ -0,0 +1,304 @@
+tcltk-package	tcltk-package
+$.tclArray	TclInterface
+$.tclvar	tcltk-defunct
+$<-.tclArray	TclInterface
+$<-.tclvar	tcltk-defunct
+.Tcl	TclInterface
+.Tcl.args	TclInterface
+.Tcl.args.objv	TclInterface
+.Tcl.callback	TclInterface
+.Tcl.objv	TclInterface
+.Tk.ID	TclInterface
+.Tk.newwin	TclInterface
+.Tk.subwin	TclInterface
+.TkRoot	TclInterface
+addTclPath	TclInterface
+as.character.tclObj	TclInterface
+as.character.tclVar	TclInterface
+as.double.tclObj	TclInterface
+as.integer.tclObj	TclInterface
+as.logical.tclObj	TclInterface
+as.raw.tclObj	TclInterface
+as.tclObj	TclInterface
+close.tkProgressBar	tkProgressBar
+getTkProgressBar	tkProgressBar
+is.tclObj	TclInterface
+is.tkwin	TclInterface
+length.tclArray	TclInterface
+length<-.tclArray	TclInterface
+names.tclArray	TclInterface
+names<-.tclArray	TclInterface
+print.tclObj	TclInterface
+setTkProgressBar	tkProgressBar
+tcl	TkCommands
+tclArray	TclInterface
+tclclose	TkCommands
+tclfile.dir	TkCommands
+tclfile.tail	TkCommands
+TclInterface	TclInterface
+tclObj	TclInterface
+tclObj.tclVar	TclInterface
+tclObj<-	TclInterface
+tclObj<-.tclVar	TclInterface
+tclopen	TkCommands
+tclputs	TkCommands
+tclread	TkCommands
+tclRequire	TclInterface
+tclServiceMode	tclServiceMode
+tcltk	tcltk-package
+tcltk-defunct	tcltk-defunct
+tclvalue	TclInterface
+tclvalue.default	TclInterface
+tclvalue.tclObj	TclInterface
+tclvalue.tclVar	TclInterface
+tclvalue<-	TclInterface
+tclvalue<-.default	TclInterface
+tclvalue<-.tclVar	TclInterface
+tclVar	TclInterface
+tclvar	TclInterface
+tclVersion	TclInterface
+tkactivate	TkWidgetcmds
+tkadd	TkWidgetcmds
+tkaddtag	TkWidgetcmds
+tkbbox	TkWidgetcmds
+tkbell	TkCommands
+tkbind	TkCommands
+tkbindtags	TkCommands
+tkbutton	TkWidgets
+tkcanvas	TkWidgets
+tkcanvasx	TkWidgetcmds
+tkcanvasy	TkWidgetcmds
+tkcget	TkWidgetcmds
+tkcheckbutton	TkWidgets
+tkchooseDirectory	TkCommands
+tkclipboard.append	TkCommands
+tkclipboard.clear	TkCommands
+tkclose	tcltk-defunct
+tkcmd	tcltk-defunct
+TkCommands	TkCommands
+tkcompare	TkWidgetcmds
+tkconfigure	TkWidgetcmds
+tkcoords	TkWidgetcmds
+tkcreate	TkWidgetcmds
+tkcurselection	TkWidgetcmds
+tkdchars	TkWidgetcmds
+tkdebug	TkWidgetcmds
+tkdelete	TkWidgetcmds
+tkdelta	TkWidgetcmds
+tkdeselect	TkWidgetcmds
+tkdestroy	TclInterface
+tkdialog	TkCommands
+tkdlineinfo	TkWidgetcmds
+tkdtag	TkWidgetcmds
+tkdump	TkWidgetcmds
+tkentry	TkWidgets
+tkentrycget	TkWidgetcmds
+tkentryconfigure	TkWidgetcmds
+tkevent.add	TkCommands
+tkevent.delete	TkCommands
+tkevent.generate	TkCommands
+tkevent.info	TkCommands
+tkfile.dir	tcltk-defunct
+tkfile.tail	tcltk-defunct
+tkfind	TkWidgetcmds
+tkflash	TkWidgetcmds
+tkfocus	TkCommands
+tkfont.actual	TkCommands
+tkfont.configure	TkCommands
+tkfont.create	TkCommands
+tkfont.delete	TkCommands
+tkfont.families	TkCommands
+tkfont.measure	TkCommands
+tkfont.metrics	TkCommands
+tkfont.names	TkCommands
+tkfraction	TkWidgetcmds
+tkframe	TkWidgets
+tkget	TkWidgetcmds
+tkgetOpenFile	TkCommands
+tkgetSaveFile	TkCommands
+tkgettags	TkWidgetcmds
+tkgrab	TkCommands
+tkgrab.current	TkCommands
+tkgrab.release	TkCommands
+tkgrab.set	TkCommands
+tkgrab.status	TkCommands
+tkgrid	TkCommands
+tkgrid.bbox	TkCommands
+tkgrid.columnconfigure	TkCommands
+tkgrid.configure	TkCommands
+tkgrid.forget	TkCommands
+tkgrid.info	TkCommands
+tkgrid.location	TkCommands
+tkgrid.propagate	TkCommands
+tkgrid.remove	TkCommands
+tkgrid.rowconfigure	TkCommands
+tkgrid.size	TkCommands
+tkgrid.slaves	TkCommands
+tkicursor	TkWidgetcmds
+tkidentify	TkWidgetcmds
+tkimage.create	TkCommands
+tkimage.delete	TkCommands
+tkimage.height	TkCommands
+tkimage.inuse	TkCommands
+tkimage.names	TkCommands
+tkimage.type	TkCommands
+tkimage.types	TkCommands
+tkimage.width	TkCommands
+tkindex	TkWidgetcmds
+tkinsert	TkWidgetcmds
+tkinvoke	TkWidgetcmds
+tkitembind	TkWidgetcmds
+tkitemcget	TkWidgetcmds
+tkitemconfigure	TkWidgetcmds
+tkitemfocus	TkWidgetcmds
+tkitemlower	TkWidgetcmds
+tkitemraise	TkWidgetcmds
+tkitemscale	TkWidgetcmds
+tklabel	TkWidgets
+tklistbox	TkWidgets
+tklower	TkCommands
+tkmark.gravity	TkWidgetcmds
+tkmark.names	TkWidgetcmds
+tkmark.next	TkWidgetcmds
+tkmark.previous	TkWidgetcmds
+tkmark.set	TkWidgetcmds
+tkmark.unset	TkWidgetcmds
+tkmenu	TkWidgets
+tkmenubutton	TkWidgets
+tkmessage	TkWidgets
+tkmessageBox	TkCommands
+tkmove	TkWidgetcmds
+tknearest	TkWidgetcmds
+tkopen	tcltk-defunct
+tkpack	TkCommands
+tkpack.configure	TkCommands
+tkpack.forget	TkCommands
+tkpack.info	TkCommands
+tkpack.propagate	TkCommands
+tkpack.slaves	TkCommands
+tkpager	tkpager
+tkplace	TkCommands
+tkplace.configure	TkCommands
+tkplace.forget	TkCommands
+tkplace.info	TkCommands
+tkplace.slaves	TkCommands
+tkpopup	TkCommands
+tkpost	TkWidgetcmds
+tkpostcascade	TkWidgetcmds
+tkpostscript	TkWidgetcmds
+tkProgressBar	tkProgressBar
+tkputs	tcltk-defunct
+tkradiobutton	TkWidgets
+tkraise	TkCommands
+tkread	tcltk-defunct
+tkscale	TkWidgets
+tkscan.dragto	TkWidgetcmds
+tkscan.mark	TkWidgetcmds
+tkscrollbar	TkWidgets
+tksearch	TkWidgetcmds
+tksee	TkWidgetcmds
+tkselect	TkWidgetcmds
+tkselection.adjust	TkWidgetcmds
+tkselection.anchor	TkWidgetcmds
+tkselection.clear	TkWidgetcmds
+tkselection.from	TkWidgetcmds
+tkselection.includes	TkWidgetcmds
+tkselection.present	TkWidgetcmds
+tkselection.range	TkWidgetcmds
+tkselection.set	TkWidgetcmds
+tkselection.to	TkWidgetcmds
+tkset	TkWidgetcmds
+tksize	TkWidgetcmds
+tkStartGUI	tkStartGUI
+tktag.add	TkWidgetcmds
+tktag.bind	TkWidgetcmds
+tktag.cget	TkWidgetcmds
+tktag.configure	TkWidgetcmds
+tktag.delete	TkWidgetcmds
+tktag.lower	TkWidgetcmds
+tktag.names	TkWidgetcmds
+tktag.nextrange	TkWidgetcmds
+tktag.prevrange	TkWidgetcmds
+tktag.raise	TkWidgetcmds
+tktag.ranges	TkWidgetcmds
+tktag.remove	TkWidgetcmds
+tktext	TkWidgets
+tktitle	TkCommands
+tktitle<-	TkCommands
+tktoggle	TkWidgetcmds
+tktoplevel	TkWidgets
+tktype	TkWidgetcmds
+tkunpost	TkWidgetcmds
+tkwait.variable	TkCommands
+tkwait.visibility	TkCommands
+tkwait.window	TkCommands
+tkwidget	TkWidgets
+TkWidgetcmds	TkWidgetcmds
+TkWidgets	TkWidgets
+tkwindow.cget	TkWidgetcmds
+tkwindow.configure	TkWidgetcmds
+tkwindow.create	TkWidgetcmds
+tkwindow.names	TkWidgetcmds
+tkwinfo	TkCommands
+tkwm.aspect	TkCommands
+tkwm.client	TkCommands
+tkwm.colormapwindows	TkCommands
+tkwm.command	TkCommands
+tkwm.deiconify	TkCommands
+tkwm.focusmodel	TkCommands
+tkwm.frame	TkCommands
+tkwm.geometry	TkCommands
+tkwm.grid	TkCommands
+tkwm.group	TkCommands
+tkwm.iconbitmap	TkCommands
+tkwm.iconify	TkCommands
+tkwm.iconmask	TkCommands
+tkwm.iconname	TkCommands
+tkwm.iconposition	TkCommands
+tkwm.iconwindow	TkCommands
+tkwm.maxsize	TkCommands
+tkwm.minsize	TkCommands
+tkwm.overrideredirect	TkCommands
+tkwm.positionfrom	TkCommands
+tkwm.protocol	TkCommands
+tkwm.resizable	TkCommands
+tkwm.sizefrom	TkCommands
+tkwm.state	TkCommands
+tkwm.title	TkCommands
+tkwm.transient	TkCommands
+tkwm.withdraw	TkCommands
+tkXselection.clear	TkCommands
+tkXselection.get	TkCommands
+tkXselection.handle	TkCommands
+tkXselection.own	TkCommands
+tkxview	TkWidgetcmds
+tkxview.moveto	TkWidgetcmds
+tkxview.scroll	TkWidgetcmds
+tkyposition	TkWidgetcmds
+tkyview	TkWidgetcmds
+tkyview.moveto	TkWidgetcmds
+tkyview.scroll	TkWidgetcmds
+tk_choose.dir	tk_choose.dir
+tk_choose.files	tk_choose.files
+tk_messageBox	tk_messageBox
+tk_select.list	tk_select.list
+ttkbutton	TkWidgets
+ttkcheckbutton	TkWidgets
+ttkcombobox	TkWidgets
+ttkentry	TkWidgets
+ttkframe	TkWidgets
+ttklabel	TkWidgets
+ttklabelframe	TkWidgets
+ttkmenubutton	TkWidgets
+ttknotebook	TkWidgets
+ttkpanedwindow	TkWidgets
+ttkprogressbar	TkWidgets
+ttkradiobutton	TkWidgets
+ttkscale	TkWidgets
+ttkscrollbar	TkWidgets
+ttkseparator	TkWidgets
+ttksizegrip	TkWidgets
+ttkspinbox	TkWidgets
+ttktreeview	TkWidgets
+[[.tclArray	TclInterface
+[[<-.tclArray	TclInterface
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/libs/tcltk.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/libs/tcltk.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tcltk/NAMESPACE	(revision 2476)
@@ -0,0 +1,36 @@
+exportPattern("^tcl[[:alnum:]]*($|<-)") # skip S3 methods
+exportPattern("^tk")
+exportPattern("^ttk")
+exportPattern("^.Tcl")
+exportPattern("^.Tk")
+export(addTclPath, as.tclObj, is.tclObj, is.tkwin)
+export(tclfile.dir, tclfile.tail)
+export(getTkProgressBar, setTkProgressBar)
+
+##S3method("$", tclvar)
+##S3method("$<-", tclvar)
+S3method(as.character, tclObj)
+S3method(as.character, tclVar)
+S3method(as.double, tclObj)
+S3method(as.integer, tclObj)
+S3method(as.logical, tclObj)
+S3method(as.raw, tclObj)
+S3method(print, tclObj)
+S3method("[[", tclArray)
+S3method("[[<-", tclArray)
+S3method("$", tclArray)
+S3method("$<-", tclArray)
+S3method("names", tclArray)
+S3method("names<-", tclArray)
+S3method("length", tclArray)
+S3method("length<-", tclArray)
+S3method(tclObj, tclVar)
+S3method("tclObj<-", tclVar)
+S3method("tclvalue", default)
+S3method("tclvalue", tclObj)
+S3method("tclvalue", tclVar)
+S3method("tclvalue<-", default)
+S3method("tclvalue<-", tclVar)
+
+S3method(close, tkProgressBar)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/DESCRIPTION	(revision 2476)
@@ -0,0 +1,7 @@
+Package: translations
+Version: 3.3.2
+Title: The R Translations Package
+Author: R Core Team and contributors worldwide
+Maintainer: R Core Team <R-core@r-project.org>
+Description: Compiled translations of messages.
+License: Part of R 3.3.2
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-compiler.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-compiler.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-stats4.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-stats4.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/R-grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/da/LC_MESSAGES/grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/R-stats4.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/R-stats4.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/R-stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/R-stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/R-tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/R-tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/R-utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/tr/LC_MESSAGES/R-utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fa/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fa/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fa/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fa/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fa/LC_MESSAGES/R-utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fa/LC_MESSAGES/R-utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fa/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fa/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-compiler.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-compiler.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-stats4.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-stats4.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/R-grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ru/LC_MESSAGES/grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-compiler.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-compiler.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-stats4.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-stats4.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/de/LC_MESSAGES/R-grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-compiler.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-compiler.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-stats4.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-stats4.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/R-methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ja/LC_MESSAGES/methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_TW/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_TW/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_TW/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_TW/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_TW/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_TW/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-compiler.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-compiler.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-stats4.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/zh_CN/LC_MESSAGES/R-stats4.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-compiler.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-compiler.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-stats4.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-stats4.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/R-grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pt_BR/LC_MESSAGES/grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/es/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/es/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/es/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/es/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/es/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/es/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-compiler.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-compiler.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-stats4.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-stats4.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/fr/LC_MESSAGES/R-grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-compiler.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-compiler.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-stats4.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-stats4.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/R-grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/ko/LC_MESSAGES/grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en_GB/LC_MESSAGES/R-grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en_GB/LC_MESSAGES/R-grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en_GB/LC_MESSAGES/grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en_GB/LC_MESSAGES/grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en_GB/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en_GB/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-stats4.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-stats4.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-compiler.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-compiler.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/R-splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/pl/LC_MESSAGES/splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/nn/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/nn/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/nn/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/nn/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/nn/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/nn/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/nn/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/nn/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-compiler.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-compiler.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/splines.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/splines.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-stats4.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-stats4.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/parallel.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/parallel.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/utils.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/utils.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/R-methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/methods.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/en@quot/LC_MESSAGES/methods.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-tcltk.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-tcltk.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-stats4.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-stats4.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/grid.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/grid.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/RGui.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/RGui.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-base.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-base.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/grDevices.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/grDevices.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/stats.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/stats.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-graphics.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-graphics.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-tools.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/translations/it/LC_MESSAGES/R-tools.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/html/00Index.html	(revision 2476)
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: 'Markdown' Rendering for R</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> 'Markdown' Rendering for R
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;markdown&rsquo; version 0.7.7</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="markdown.html">markdown-package</a></td>
+<td>Markdown rendering for R</td></tr>
+<tr><td style="width: 25%;"><a href="markdown.html">markdown</a></td>
+<td>Markdown rendering for R</td></tr>
+<tr><td style="width: 25%;"><a href="markdownExtensions.html">markdownExtensions</a></td>
+<td>Markdown extensions</td></tr>
+<tr><td style="width: 25%;"><a href="markdownHTMLOptions.html">markdownHTMLOptions</a></td>
+<td>Markdown HTML rendering options</td></tr>
+<tr><td style="width: 25%;"><a href="markdownToHTML.html">markdownToHTML</a></td>
+<td>Render markdown to HTML</td></tr>
+<tr><td style="width: 25%;"><a href="registeredRenderers.html">registeredRenderers</a></td>
+<td>List of Registered Markdown Renderers</td></tr>
+<tr><td style="width: 25%;"><a href="rendererExists.html">rendererExists</a></td>
+<td>Testing for existence of a markdown renderer</td></tr>
+<tr><td style="width: 25%;"><a href="rendererOutputType.html">rendererOutputType</a></td>
+<td>Fetch the Renderer Output Type</td></tr>
+<tr><td style="width: 25%;"><a href="renderMarkdown.html">renderMarkdown</a></td>
+<td>Render markdown to an HTML fragment</td></tr>
+<tr><td style="width: 25%;"><a href="rpubsUpload.html">rpubsUpload</a></td>
+<td>Upload an HTML file to RPubs</td></tr>
+<tr><td style="width: 25%;"><a href="smartypants.html">smartypants</a></td>
+<td>smartypants: ASCII punctuation to HTML entities</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/INDEX	(revision 2476)
@@ -0,0 +1,10 @@
+markdown                Markdown rendering for R
+markdownExtensions      Markdown extensions
+markdownHTMLOptions     Markdown HTML rendering options
+markdownToHTML          Render markdown to HTML
+registeredRenderers     List of Registered Markdown Renderers
+renderMarkdown          Render markdown to an HTML fragment
+rendererExists          Testing for existence of a markdown renderer
+rendererOutputType      Fetch the Renderer Output Type
+rpubsUpload             Upload an HTML file to RPubs
+smartypants             smartypants: ASCII punctuation to HTML entities
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/COPYING
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/COPYING	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/COPYING	(revision 2476)
@@ -0,0 +1,344 @@
+The markdown package is licensed to you under the GPLv2, the terms of
+which are included below. The markdown pacakge includes other open
+source software whose license terms can be found in the file NOTICE.
+
+  	    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/help/markdown.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/help/markdown.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/help/AnIndex	(revision 2476)
@@ -0,0 +1,11 @@
+markdown-package	markdown
+markdown	markdown
+markdownExtensions	markdownExtensions
+markdownHTMLOptions	markdownHTMLOptions
+markdownToHTML	markdownToHTML
+registeredRenderers	registeredRenderers
+rendererExists	rendererExists
+rendererOutputType	rendererOutputType
+renderMarkdown	renderMarkdown
+rpubsUpload	rpubsUpload
+smartypants	smartypants
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/help/markdown.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/help/markdown.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/NAMESPACE	(revision 2476)
@@ -0,0 +1,10 @@
+export(markdownExtensions)
+export(markdownHTMLOptions)
+export(markdownToHTML)
+export(registeredRenderers)
+export(renderMarkdown)
+export(rendererExists)
+export(rendererOutputType)
+export(rpubsUpload)
+export(smartypants)
+useDynLib(markdown, .registration = TRUE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/NEWS	(revision 2476)
@@ -0,0 +1,219 @@
+			      CHANGES IN markdown VERSION 0.7.7
+
+BUG FIXES
+
+  o renderMarkdown() works now even if text = character(0) or ""
+
+  o added an `encoding` argument to renderMarkdown() since multi-byte characters
+  in renderMarkdown() did not work on Windows (thanks, Kohske Takahashi, #63)
+
+  o fixed #64: invalid 'n' argument in rpubsUpload() (thanks, Wouter van
+  Atteveldt)
+
+MAJOR CHANGES
+
+  o if renderMarkdown() returns a character vector, it will be marked with the
+  UTF-8 encoding if it contains multi-byte characters
+
+			      CHANGES IN markdown VERSION 0.7.4
+
+NEW FEATURES
+
+  o when an image is the only element of its parent node in the HTML output
+  document, it is automatically centered on the page
+
+MINOR CHANGES
+
+  o images that have already been base64 encoded will not be encoded again (#61)
+
+  o the URL of the MathJax CDN was updated to cdn.mathjax.org
+
+			      CHANGES IN markdown VERSION 0.7.2
+
+BUG FIXES
+
+  o fixed #60: MathJax may be included even if it is unnecessary when syntax
+  highlighting is enabled (thanks, @aoles)
+
+  o fixed a bug which may hang R when building R Markdown vignettes in a wrong
+  locale (thanks, Dan Tenenbaum, yihui/knitr#782)
+
+			      CHANGES IN markdown VERSION 0.7
+
+BUG FIXES
+
+  o if both the 'file' and 'text' arguments are provided but file = NULL,
+  e.g. markdownToHTML(file = NULL, text = ?), markdownToHTML() can throw an
+  error indicating the file is invalid (thanks, Tyler Rinker,
+  hadley/staticdocs#66)
+
+  o markdownToHTML(text = ?, output = ?) was broken (#54)
+
+			      CHANGES IN markdown VERSION 0.6.5
+
+NEW FEATURES
+
+  o added an argument 'encoding' to markdownToHTML() to specify the
+  character encoding of the input markdown file, and the HTML output file is
+  always encoded in UTF-8 now (thanks, Kohske Takahashi, #50)
+
+			      CHANGES IN markdown VERSION 0.6.4
+
+NEW FEATURES
+
+  o added 'mathjax_embed' to HTML options for embedding the MathJax
+  JavaScript in the HTML document rather than linking to it online. Note the
+  JavaScript code is read from the http instead of https MathJax URL.
+  Contributed by Henrik Bengtsson.
+
+  o added another vignette to show the HTML output of the original vignette
+  (see browseVignettes('markdown'))
+
+  o the default CSS style was tweaked (major changes include: page width is
+  at most 800px, more line height, slightly larger fonts, and a different
+  syntax highlighting theme)
+
+			      CHANGES IN markdown VERSION 0.6.3
+
+NEW FEATURES
+
+  o added a new argument 'template' to markdownToHTML() so that we can
+  customize the HTML template (by default, it uses the template
+  'resources/markdown.html' in this package); thanks, Nacho Caballero
+
+  o the options markdown.HTML.stylesheet and markdown.HTML.header used in
+  markdownToHTML() can be character vectors (they will be processed by
+  paste(x, collapse = '\n')
+
+MAJOR CHANGES
+
+  o the 'text' argument in markdownToHTML() and renderMarkdown() is treated
+  as lines of input now, i.e. if 'text' is provided, it is passed to the
+  markdown renderer as paste(text, collapse = '\n'); in the previous
+  versions, it was processed by paste(text, collapse = '')
+
+			      CHANGES IN markdown VERSION 0.6
+
+DOCUMENTATION
+
+  o added a package vignette; see browseVignettes(package = 'markdown')
+
+			      CHANGES IN markdown VERSION 0.5.5
+NEW FEATURES
+
+  o added a new argument 'header' to markdownToHTML() to insert code
+  into the HTML header (e.g. custom CSS styles)
+
+BUG FIXES
+
+  o fixed #25 and #27: minor documentation problems
+
+  o fixed #26: the HTML output file will be written relative to the
+  current working directory now when it contains images that need to
+  be base64 encoded
+
+  o fixed #28: the image URL should be decoded before the image is
+  based64 encoded
+
+MISC
+
+  o Yihui Xie has taken over the maintainership for this package
+  from Jeffrey Horner
+
+			      CHANGES IN markdown VERSION 0.5.4
+NEW FEATURES
+
+  o Both Pandoc title blocks and Jekyll front matter sections are
+    skipped when rendering markdown documents.
+
+			      CHANGES IN markdown VERSION 0.5.3
+
+NEW FEATURES
+
+  o C/C++ is now a supported language for code block highlighting.
+
+MAJOR CHANGES
+
+  o 'hard_wrap' has been dropped while 'mathjax' and 'highlight_code'
+    have been added to the default list of html options.
+
+BUG FIXES
+
+  o fixed parsing of math equations when located at the end of
+    a line.
+
+			      CHANGES IN markdown VERSION 0.5.2
+
+NEW FEATURES
+
+  o with the new 'latex_math' markdown extensions, users can
+    include math equations using several syntaxes. For
+    block level equations, use $$latex ... $$, $$ ... $$, or
+    \[ ... \]. For inline equations, use $latex...$, $...$,
+    or \( ... \).
+
+MAJOR CHANGES
+
+  o the markdown extension 'ingore_math' was replaced with
+    'latex_math'.
+
+  o users can now use the markdown.HTML.stylesheet option to
+    override the package default stylesheet.
+
+  o setting the fragment_only rendering option or the fragment.only
+    parameter to markdownToHTML will base64 encode images if
+    applicable. version 0.5.1 did not.
+
+			      CHANGES IN markdown VERSION 0.5.1
+
+BUG FIXES
+
+  o fixed a GUIDgenerator bug; for escaping math equations before
+    markdown parsing begins.
+
+  o image encoding was fixed for the case when there are more than
+    one included in a markdown document.
+
+			      CHANGES IN markdown VERSION 0.5
+
+NEW FEATURES
+
+  o added fragment.only parameter to markdownToHTML
+
+  o added new html rendering options base64_images, fragment_only,
+    mathjax, and highlight_code
+
+  o added new markdown extension ignore_math
+
+MAJOR CHANGES
+
+  o removed safelink from default html rendering options
+
+  o the default html rendering options are now hard_wrap, use_xhtml,
+    smartypants, and base64_images.
+
+BUG FIXES
+
+  o fixed syntax errors in C exports
+
+			      CHANGES IN markdown VERSION 0.4
+
+NEW FEATURES
+
+  o added support for post-processing HTML using smartypants filter
+
+  o added optional support for rendering a table of contents
+
+MAJOR CHANGES
+
+  o changed exported C functions to use an rmd_ prefix (eliminating
+    potential symbol conflicts with other packages)
+
+  o changed default html rendering options to use_xhtml, hard_wrap,
+    safelink, and smartypants
+
+BUG FIXES
+
+  o eliminated name collision with render_markdown function in knitr
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/examples/HTMLOptions.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/examples/HTMLOptions.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/examples/HTMLOptions.R	(revision 2476)
@@ -0,0 +1,51 @@
+# HTML OPTIONS
+
+# The following examples are short, so we allways add the HTML option 'fragment_only'
+tOpt <- "fragment_only"
+
+# skip_html example
+mkd = '<style></style><img src="http://cran.rstudio.com/Rlogo.jpg"><a href="#">Hello</a>'
+cat(markdownToHTML(text = mkd, options = c(tOpt)))
+cat(markdownToHTML(text = mkd, options = c(tOpt, "skip_html")))
+
+# skip_style example
+cat(markdownToHTML(text = mkd, options = c(tOpt)))
+cat(markdownToHTML(text = mkd, options = c(tOpt, "skip_style")))
+
+# skip_images example
+cat(markdownToHTML(text = mkd, options = c(tOpt)))
+cat(markdownToHTML(text = mkd, options = c(tOpt, "skip_images")))
+
+# skip_links example
+cat(markdownToHTML(text = mkd, options = c(tOpt)))
+cat(markdownToHTML(text = mkd, options = c(tOpt, "skip_links")))
+
+# safelink example
+cat(markdownToHTML(text = '[foo](http://google.com "baz")', options = c(tOpt)))
+cat(markdownToHTML(text = '[foo](http://google.com "baz")', options = c(tOpt, "safelink")))
+
+# toc example
+mkd <- paste(c("# Header 1", "p1", "## Header 2", "p2"), collapse = "\n")
+
+cat(markdownToHTML(text = mkd, options = c(tOpt)))
+cat(markdownToHTML(text = mkd, options = c(tOpt, "toc")))
+
+# hard_wrap example
+cat(markdownToHTML(text = "foo\nbar\n", options = c(tOpt)))
+cat(markdownToHTML(text = "foo\nbar\n", options = c(tOpt, "hard_wrap")))
+
+# use_xhtml example
+cat(markdownToHTML(text = "foo\nbar\n", options = c(tOpt, "hard_wrap")))
+cat(markdownToHTML(text = "foo\nbar\n", options = c(tOpt, "hard_wrap", "use_xhtml")))
+
+# escape example
+mkd = '<style></style><img src="http://cran.rstudio.com/Rlogo.jpg"><a href="#">Hello</a>'
+cat(markdownToHTML(text = mkd, options = c(tOpt, "skip_html")))
+# overrides all 'skip_*' options
+cat(markdownToHTML(text = mkd, options = c(tOpt, "skip_html", "escape")))
+
+# smartypants example
+cat(markdownToHTML(text = "1/2 (c)", options = c(tOpt)))
+cat(markdownToHTML(text = "1/2 (c)", options = c(tOpt, "smartypants")))
+
+cat(smartypants(text = "1/2 (c)\n"))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/examples/markdownExtensions.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/examples/markdownExtensions.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/examples/markdownExtensions.R	(revision 2476)
@@ -0,0 +1,68 @@
+# The following examples are short, so we set the HTML option 'fragment_only'
+
+options(markdown.HTML.options = "fragment_only")
+
+# no_intra_emphasis example
+cat(markdownToHTML(text = "foo_bar_function", extensions = c()))
+cat(markdownToHTML(text = "foo_bar_function", extensions = c("no_intra_emphasis")))
+
+# tables example (need 4 spaces at beginning of line here)
+cat(markdownToHTML(text = "
+    First Header  | Second Header
+    ------------- | -------------
+    Content Cell  | Content Cell
+    Content Cell  | Content Cell
+", extensions = c()))
+
+# but not here
+cat(markdownToHTML(text = "
+First Header  | Second Header
+------------- | -------------
+Content Cell  | Content Cell
+Content Cell  | Content Cell
+", extensions = c("tables")))
+
+# fenced_code example (need at least three leading ~ or `)
+fenced_block <- function(text, x = "`", n = 3) {
+  fence <- paste(rep(x, n), collapse = "")
+  paste(fence, text, fence, sep = "")
+}
+cat(markdownToHTML(text = fenced_block("
+preformatted text here without having to indent
+first line.
+"), extensions = c()))
+
+cat(markdownToHTML(text = fenced_block("
+preformatted text here without having to indent
+first line.
+"), extensions = c("fenced_code")))
+
+# autolink example
+cat(markdownToHTML(text = "http://www.r-project.org/", extensions = c()))
+cat(markdownToHTML(text = "http://www.r-project.org/", extensions = c("autolink")))
+
+# strikethrough example
+cat(markdownToHTML(text = "~~awesome~~", extensions = c()))
+cat(markdownToHTML(text = "~~awesome~~", extensions = c("strikethrough")))
+
+# lax_spacing
+cat(markdownToHTML(text = "
+Embedding html without surrounding with empty newline.
+<div>_markdown_</div>
+extra text.
+", extensions = c("")))
+cat(markdownToHTML(text = "
+Embedding html without surrounding with empty newline.
+<div>_markdown_</div>
+extra text.
+", extensions = c("lax_spacing")))
+
+# space_headers example
+cat(markdownToHTML(text = "#A Header\neven though there is no space between # and A",
+                   extensions = c("")))
+cat(markdownToHTML(text = "#Not A Header\nbecause there is no space between # and N",
+                   extensions = c("space_headers")))
+
+# superscript example
+cat(markdownToHTML(text = "2^10", extensions = c()))
+cat(markdownToHTML(text = "2^10", extensions = c("superscript")))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/NOTICE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/NOTICE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/NOTICE	(revision 2476)
@@ -0,0 +1,47 @@
+The markdown package includes a copy of the Sundown markdown library.
+The license for the Sundown library is as follows:
+
+Permission to use, copy, modify, and distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+
+---
+
+The markdown package also includes source code from
+
+http://base64.sourceforge.net/b64.c 
+
+fetched on 2012-05-11. The license for b64.c is as follows:
+
+Copyright (c) 2001 Bob Trower, Trantor Standard Systems Inc.
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated
+documentation files (the "Software"), to deal in the
+Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute,
+sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall
+be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
+OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/R/markdown.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/R/markdown.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/R/markdown.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/R/markdown.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/R/markdown
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/R/markdown	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/R/markdown	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/DESCRIPTION	(revision 2476)
@@ -0,0 +1,24 @@
+Package: markdown
+Type: Package
+Title: 'Markdown' Rendering for R
+Version: 0.7.7
+Date: 2015-04-23
+Author: JJ Allaire, Jeffrey Horner, Vicent Marti, and Natacha Porte
+Maintainer: Yihui Xie <xie@yihui.name>
+Description: Provides R bindings to the 'Sundown' 'Markdown' rendering library
+   (https://github.com/vmg/sundown). 'Markdown' is a plain-text formatting
+   syntax that can be converted to 'XHTML' or other formats. See
+   http://en.wikipedia.org/wiki/Markdown for more information about 'Markdown'.
+Depends: R (>= 2.11.1)
+Imports: mime (>= 0.3)
+Suggests: knitr, RCurl
+License: GPL-2
+URL: https://github.com/rstudio/markdown
+BugReports: https://github.com/rstudio/markdown/issues
+VignetteBuilder: knitr
+NeedsCompilation: yes
+Packaged: 2015-04-22 15:26:12 UTC; yihui
+Repository: CRAN
+Date/Publication: 2015-04-22 22:33:46
+Built: R 3.3.0; x86_64-apple-darwin13.4.0; 2016-05-04 14:37:06 UTC; unix
+Archs: markdown.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/autolink.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/autolink.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/autolink.h	(revision 2476)
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2011, Vicent Marti
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef UPSKIRT_AUTOLINK_H
+#define UPSKIRT_AUTOLINK_H
+
+#include "buffer.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int
+sd_autolink_issafe(const uint8_t *link, size_t link_len);
+
+extern size_t
+sd_autolink__www(size_t *rewind_p, struct buf *link, uint8_t *data, size_t offset, size_t size);
+
+extern size_t
+sd_autolink__email(size_t *rewind_p, struct buf *link, uint8_t *data, size_t offset, size_t size);
+
+extern size_t
+sd_autolink__url(size_t *rewind_p, struct buf *link, uint8_t *data, size_t offset, size_t size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/* vim: set filetype=c: */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/buffer.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/buffer.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/buffer.h	(revision 2476)
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2008, Natacha Porté
+ * Copyright (c) 2011, Vicent Martí
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef BUFFER_H__
+#define BUFFER_H__
+
+#include <stddef.h>
+#include <stdarg.h>
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(_MSC_VER)
+#define __attribute__(x)
+#define inline
+#endif
+
+typedef enum {
+	BUF_OK = 0,
+	BUF_ENOMEM = -1,
+} buferror_t;
+
+/* struct buf: character array buffer */
+struct buf {
+	uint8_t *data;		/* actual character data */
+	size_t size;	/* size of the string */
+	size_t asize;	/* allocated size (0 = volatile buffer) */
+	size_t unit;	/* reallocation unit size (0 = read-only buffer) */
+};
+
+/* CONST_BUF: global buffer from a string litteral */
+#define BUF_STATIC(string) \
+	{ (uint8_t *)string, sizeof string -1, sizeof string, 0, 0 }
+
+/* VOLATILE_BUF: macro for creating a volatile buffer on the stack */
+#define BUF_VOLATILE(strname) \
+	{ (uint8_t *)strname, strlen(strname), 0, 0, 0 }
+
+/* BUFPUTSL: optimized bufputs of a string litteral */
+#define BUFPUTSL(output, literal) \
+	bufput(output, literal, sizeof literal - 1)
+
+/* bufgrow: increasing the allocated size to the given value */
+int bufgrow(struct buf *, size_t);
+
+/* bufnew: allocation of a new buffer */
+struct buf *bufnew(size_t) __attribute__ ((malloc));
+
+/* bufnullterm: NUL-termination of the string array (making a C-string) */
+const char *bufcstr(struct buf *);
+
+/* bufprefix: compare the beginning of a buffer with a string */
+int bufprefix(const struct buf *buf, const char *prefix);
+
+/* bufput: appends raw data to a buffer */
+void bufput(struct buf *, const void *, size_t);
+
+/* bufputs: appends a NUL-terminated string to a buffer */
+void bufputs(struct buf *, const char *);
+
+/* bufputc: appends a single char to a buffer */
+void bufputc(struct buf *, int);
+
+/* bufrelease: decrease the reference count and free the buffer if needed */
+void bufrelease(struct buf *);
+
+/* bufreset: frees internal data of the buffer */
+void bufreset(struct buf *);
+
+/* bufslurp: removes a given number of bytes from the head of the array */
+void bufslurp(struct buf *, size_t);
+
+/* bufprintf: formatted printing to a buffer */
+void bufprintf(struct buf *, const char *, ...) __attribute__ ((format (printf, 2, 3)));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/markdown_rstubs.c
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/markdown_rstubs.c	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/markdown_rstubs.c	(revision 2476)
@@ -0,0 +1,242 @@
+/*
+ * markdown_rstubs.c
+ * 
+ * Copyright (C) 2009-2013 by RStudio, Inc.
+ * 
+ * This program is licensed to you under the terms of version 2 of the
+ * GNU General Public License. This program is distributed WITHOUT ANY
+ * EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
+ * GPL (http://www.gnu.org/licenses/gpl-2.0.txt) for more details.
+ *
+ */
+
+/* Inspird by Matrix/inst/include/Matrix_stubs.c */
+
+#include "markdown_rstubs.h"
+
+int rstub_bufgrow(struct buf *buf, size_t sz)
+{
+   static int (*fun)(struct buf *, size_t) = NULL;
+   if (fun==NULL)
+      fun = (int (*)(struct buf *,size_t))R_GetCCallable("markdown","bufgrow");
+   return fun(buf,sz);
+}
+
+struct buf *rstub_bufnew(size_t sz)
+{
+   static struct buf *(*fun)(size_t) = NULL;
+   if (fun==NULL)
+      fun = (struct buf *(*)(size_t))R_GetCCallable("markdown","bufnew");
+   return fun(sz);
+}
+
+const char *rstub_bufcstr(struct buf *buf)
+{
+   static const char *(*fun)(struct buf *) = NULL;
+   if (fun==NULL)
+      fun = (const char *(*)(struct buf *))R_GetCCallable("markdown","bufcstr");
+   return fun(buf);
+}
+
+int rstub_bufprefix(const struct buf *buf, const char *prefix)
+{
+   static int (*fun)(const struct buf *, const char *) = NULL;
+   if (fun==NULL)
+      fun = (int (*)(const struct buf *, const char *))R_GetCCallable("markdown","bufprefix");
+   return fun(buf,prefix);
+}
+
+void rstub_bufput(struct buf *buf, const void *v, size_t sz)
+{
+   static void (*fun)(struct buf *, const void *, size_t) = NULL;
+   if (fun==NULL)
+      fun = (void (*)(struct buf *, const void *, size_t))R_GetCCallable("markdown","bufput");
+   return fun(buf,v,sz);
+}
+
+void rstub_bufputs(struct buf *buf, const char *c)
+{
+   static void (*fun)(struct buf *, const char *) = NULL;
+   if (fun==NULL)
+      fun = (void (*)(struct buf *, const char *))R_GetCCallable("markdown","bufputs");
+   return fun(buf,c);
+}
+
+void rstub_bufputc(struct buf *buf, int i)
+{
+   static void (*fun)(struct buf *, int) = NULL;
+   if (fun==NULL)
+      fun = (void (*)(struct buf *, int))R_GetCCallable("markdown","bufputc");
+   return fun(buf,i);
+}
+
+void rstub_bufrelease(struct buf *buf)
+{
+   static void (*fun)(struct buf *) = NULL;
+   if (fun==NULL)
+      fun = (void (*)(struct buf *t))R_GetCCallable("markdown","bufrelease");
+   return fun(buf);
+}
+   
+void rstub_bufreset(struct buf *buf)
+{
+   static void (*fun)(struct buf *) = NULL;
+   if (fun==NULL)
+      fun = (void (*)(struct buf *t))R_GetCCallable("markdown","bufreset");
+   return fun(buf);
+}
+
+void rstub_bufslurp(struct buf *buf, size_t sz)
+{
+   static int (*fun)(struct buf *, size_t) = NULL;
+   if (fun==NULL)
+      fun = (int (*)(struct buf *,size_t))R_GetCCallable("markdown","bufslurp");
+   fun(buf,sz);
+}
+
+void rstub_bufprintf(struct buf *buf, const char *fmt, ...)
+{
+   va_list ap;
+   static int (*fun)(struct buf *, const char *, ...) = NULL;
+   if (fun==NULL)
+      fun = (int (*)(struct buf *,const char *, ...))
+         R_GetCCallable("markdown","bufprintf");
+
+	va_start(ap, fmt);
+   fun(buf,fmt,ap);
+   va_end(ap);
+}
+
+int
+rstub_sd_autolink_issafe(const uint8_t *link, size_t link_len){
+   static int (*fun)(const uint8_t *, size_t) = NULL;
+   if (fun==NULL)
+      fun = (int (*)(const uint8_t *, size_t))
+         R_GetCCallable("markdown","sd_autolink_issafe");
+   return fun(link,link_len);
+}
+
+size_t
+rstub_sd_autolink__www(size_t *rewind_p, struct buf *link, uint8_t *data,
+                     size_t offset, size_t size)
+{
+   static size_t (*fun)(size_t *rewind_p, struct buf *link, uint8_t *data,
+                        size_t offset, size_t size) = NULL;
+   if (fun==NULL)
+      fun = (size_t (*)(size_t *rewind_p, struct buf *link, uint8_t *data,
+                           size_t offset, size_t size))
+         R_GetCCallable("markdown","sd_autolink__www");
+   return fun(rewind_p,link,data,offset,size);
+}
+
+size_t
+rstub_sd_autolink__email(size_t *rewind_p, struct buf *link, uint8_t *data,
+                       size_t offset, size_t size)
+{
+   static size_t (*fun)(size_t *rewind_p, struct buf *link, uint8_t *data,
+                        size_t offset, size_t size) = NULL;
+   if (fun==NULL)
+      fun = (size_t (*)(size_t *rewind_p, struct buf *link, uint8_t *data,
+                           size_t offset, size_t size))
+         R_GetCCallable("markdown","sd_autolink__email");
+   return fun(rewind_p,link,data,offset,size);
+}
+
+size_t
+rstub_sd_autolink__url(size_t *rewind_p, struct buf *link, uint8_t *data,
+                     size_t offset, size_t size)
+{
+   static size_t (*fun)(size_t *rewind_p, struct buf *link, uint8_t *data,
+                        size_t offset, size_t size) = NULL;
+   if (fun==NULL)
+      fun = (size_t (*)(size_t *rewind_p, struct buf *link, uint8_t *data,
+                           size_t offset, size_t size))
+         R_GetCCallable("markdown","sd_autolink__url");
+   return fun(rewind_p,link,data,offset,size);
+}
+
+struct sd_markdown *
+rstub_sd_markdown_new(unsigned int extensions, size_t max_nesting,
+                    const struct sd_callbacks *callbacks, void *opaque)
+{
+   static struct sd_markdown *(*fun)(unsigned int, size_t,
+                                     const struct sd_callbacks *callbacks,
+                                     void *) = NULL;
+   if (fun==NULL)
+      fun = (struct sd_markdown *(*)(unsigned int, size_t,
+                                     const struct sd_callbacks *callbacks,
+                                     void *))
+         R_GetCCallable("markdown","sd_markdown_new");
+   return fun(extensions,max_nesting,callbacks,opaque);
+}
+
+void
+rstub_sd_markdown_render(struct buf *ob, const uint8_t *document, 
+                       size_t doc_size, struct sd_markdown *md)
+{
+   static void (*fun)(struct buf *, const uint8_t *, size_t,
+                      struct sd_markdown *) = NULL;
+   if (fun==NULL)
+      fun = (void (*)(struct buf *, const uint8_t *, size_t,
+                      struct sd_markdown *))
+         R_GetCCallable("markdown","sd_markdown_render");
+   return fun(ob,document,doc_size,md);
+}
+
+void
+rstub_sd_markdown_free(struct sd_markdown *md)
+{
+   static void (*fun)(struct sd_markdown *) = NULL;
+   if (fun==NULL)
+      fun = (void (*)(struct sd_markdown *))
+         R_GetCCallable("markdown","sd_markdown_free");
+   return fun(md);
+}
+
+void
+rstub_sd_version(int *major, int *minor, int *revision)
+{
+   static void (*fun)(int *, int *, int *) = NULL;
+   if (fun==NULL)
+      fun = (void (*)(int *, int *, int *))
+         R_GetCCallable("markdown","sd_version");
+   return fun(major,minor,revision);
+}
+
+Rboolean rstub_rmd_register_renderer(struct rmd_renderer *renderer)
+{
+   static Rboolean (*fun)(struct rmd_renderer *) = NULL;
+   if (fun==NULL)
+      fun = (Rboolean (*)(struct rmd_renderer *))
+         R_GetCCallable("markdown","rmd_register_renderer");
+   return fun(renderer);
+}
+
+Rboolean rstub_rmd_renderer_exists(const char *name)
+{
+   static SEXP (*fun)(SEXP) = NULL;
+   if (fun==NULL)
+      fun = (SEXP (*)(SEXP))
+         R_GetCCallable("markdown","rmd_renderer_exists");
+   return fun(name);
+}
+
+Rboolean rstub_rmd_buf_to_output(struct buf *ob, SEXP Soutput, 
+                                        SEXP *raw_vec)
+{
+   static Rboolean (*fun)(struct buf *, SEXP, SEXP *) = NULL;
+   if (fun==NULL)
+      fun = (Rboolean (*)(struct buf *, SEXP, SEXP *))
+         R_GetCCallable("markdown","rmd_buf_to_output");
+   return fun(ob,Soutput,raw_vec);
+}
+
+Rboolean rstub_rmd_input_to_buf(SEXP Sfile, SEXP Stext, struct buf *ib)
+{
+   static Rboolean (*fun)(SEXP, SEXP, struct buf *) = NULL;
+   if (fun==NULL)
+      fun = (Rboolean (*)(SEXP, SEXP, struct buf *))
+         R_GetCCallable("markdown","rmd_input_to_buf");
+   return fun(Sfile,Stext,ib);
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/markdown.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/markdown.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/markdown.h	(revision 2476)
@@ -0,0 +1,138 @@
+/* markdown.h - generic markdown parser */
+
+/*
+ * Copyright (c) 2009, Natacha Porté
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef UPSKIRT_MARKDOWN_H
+#define UPSKIRT_MARKDOWN_H
+
+#include "buffer.h"
+#include "autolink.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SUNDOWN_VERSION "1.16.0"
+#define SUNDOWN_VER_MAJOR 1
+#define SUNDOWN_VER_MINOR 16
+#define SUNDOWN_VER_REVISION 0
+
+/********************
+ * TYPE DEFINITIONS *
+ ********************/
+
+/* mkd_autolink - type of autolink */
+enum mkd_autolink {
+	MKDA_NOT_AUTOLINK,	/* used internally when it is not an autolink*/
+	MKDA_NORMAL,		/* normal http/http/ftp/mailto/etc link */
+	MKDA_EMAIL,			/* e-mail link without explit mailto: */
+};
+
+enum mkd_tableflags {
+	MKD_TABLE_ALIGN_L = 1,
+	MKD_TABLE_ALIGN_R = 2,
+	MKD_TABLE_ALIGN_CENTER = 3,
+	MKD_TABLE_ALIGNMASK = 3,
+	MKD_TABLE_HEADER = 4
+};
+
+enum mkd_extensions {
+	MKDEXT_NO_INTRA_EMPHASIS = (1 << 0),
+	MKDEXT_TABLES = (1 << 1),
+	MKDEXT_FENCED_CODE = (1 << 2),
+	MKDEXT_AUTOLINK = (1 << 3),
+	MKDEXT_STRIKETHROUGH = (1 << 4),
+	MKDEXT_SPACE_HEADERS = (1 << 6),
+	MKDEXT_SUPERSCRIPT = (1 << 7),
+	MKDEXT_LAX_SPACING = (1 << 8),
+};
+
+/* sd_callbacks - functions for rendering parsed data */
+struct sd_callbacks {
+	/* block level callbacks - NULL skips the block */
+	void (*blockcode)(struct buf *ob, const struct buf *text, const struct buf *lang, void *opaque);
+	void (*blockquote)(struct buf *ob, const struct buf *text, void *opaque);
+	void (*blockhtml)(struct buf *ob,const  struct buf *text, void *opaque);
+	void (*header)(struct buf *ob, const struct buf *text, int level, void *opaque);
+	void (*hrule)(struct buf *ob, void *opaque);
+	void (*list)(struct buf *ob, const struct buf *text, int flags, void *opaque);
+	void (*listitem)(struct buf *ob, const struct buf *text, int flags, void *opaque);
+	void (*paragraph)(struct buf *ob, const struct buf *text, void *opaque);
+	void (*table)(struct buf *ob, const struct buf *header, const struct buf *body, void *opaque);
+	void (*table_row)(struct buf *ob, const struct buf *text, void *opaque);
+	void (*table_cell)(struct buf *ob, const struct buf *text, int flags, void *opaque);
+
+
+	/* span level callbacks - NULL or return 0 prints the span verbatim */
+	int (*autolink)(struct buf *ob, const struct buf *link, enum mkd_autolink type, void *opaque);
+	int (*codespan)(struct buf *ob, const struct buf *text, void *opaque);
+	int (*double_emphasis)(struct buf *ob, const struct buf *text, void *opaque);
+	int (*emphasis)(struct buf *ob, const struct buf *text, void *opaque);
+	int (*image)(struct buf *ob, const struct buf *link, const struct buf *title, const struct buf *alt, void *opaque);
+	int (*linebreak)(struct buf *ob, void *opaque);
+	int (*link)(struct buf *ob, const struct buf *link, const struct buf *title, const struct buf *content, void *opaque);
+	int (*raw_html_tag)(struct buf *ob, const struct buf *tag, void *opaque);
+	int (*triple_emphasis)(struct buf *ob, const struct buf *text, void *opaque);
+	int (*strikethrough)(struct buf *ob, const struct buf *text, void *opaque);
+	int (*superscript)(struct buf *ob, const struct buf *text, void *opaque);
+
+	/* low level callbacks - NULL copies input directly into the output */
+	void (*entity)(struct buf *ob, const struct buf *entity, void *opaque);
+	void (*normal_text)(struct buf *ob, const struct buf *text, void *opaque);
+
+	/* header and footer */
+	void (*doc_header)(struct buf *ob, void *opaque);
+	void (*doc_footer)(struct buf *ob, void *opaque);
+};
+
+struct sd_markdown;
+
+/*********
+ * FLAGS *
+ *********/
+
+/* list/listitem flags */
+#define MKD_LIST_ORDERED	1
+#define MKD_LI_BLOCK		2  /* <li> containing block data */
+
+/**********************
+ * EXPORTED FUNCTIONS *
+ **********************/
+
+extern struct sd_markdown *
+sd_markdown_new(
+	unsigned int extensions,
+	size_t max_nesting,
+	const struct sd_callbacks *callbacks,
+	void *opaque);
+
+extern void
+sd_markdown_render(struct buf *ob, const uint8_t *document, size_t doc_size, struct sd_markdown *md);
+
+extern void
+sd_markdown_free(struct sd_markdown *md);
+
+extern void
+sd_version(int *major, int *minor, int *revision);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+/* vim: set filetype=c: */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/markdown_rstubs.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/markdown_rstubs.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/markdown/include/markdown_rstubs.h	(revision 2476)
@@ -0,0 +1,130 @@
+/*
+ * markdown_rstubs.h
+ * 
+ * Copyright (C) 2009-2013 by RStudio, Inc.
+ * 
+ * This program is licensed to you under the terms of version 2 of the
+ * GNU General Public License. This program is distributed WITHOUT ANY
+ * EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
+ * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
+ * GPL (http://www.gnu.org/licenses/gpl-2.0.txt) for more details.
+ *
+ */
+
+#ifndef MARKDOWN_RSTUBS
+#define MARKDOWN_RSTUBS
+
+#include <Rinternals.h>
+#include <R_ext/Rdynload.h>
+#include "markdown.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* bufgrow: increasing the allocated size to the given value */
+int rstub_bufgrow(struct buf *, size_t);
+#define bufgrow rstub_bufgrow
+
+/* bufnew: allocation of a new buffer */
+struct buf *rstub_bufnew(size_t) __attribute__ ((malloc));
+#define bufnew rstub_bufnew
+
+/* bufnullterm: NUL-termination of the string array (making a C-string) */
+const char *rstub_bufcstr(struct buf *);
+#define bufcstr rstub_bufcstr
+
+/* bufprefix: compare the beginning of a buffer with a string */
+int rstub_bufprefix(const struct buf *buf, const char *prefix);
+#define bufprefix rstub_bufprefix
+
+/* bufput: appends raw data to a buffer */
+void rstub_bufput(struct buf *, const void *, size_t);
+#define bufput rstub_bufput
+
+/* bufputs: appends a NUL-terminated string to a buffer */
+void rstub_bufputs(struct buf *, const char *);
+#define bufputs rstub_bufputs
+
+/* bufputc: appends a single char to a buffer */
+void rstub_bufputc(struct buf *, int);
+#define bufputc rstub_bufputc
+
+/* bufrelease: decrease the reference count and free the buffer if needed */
+void rstub_bufrelease(struct buf *);
+#define bufrelease rstub_bufrelease
+
+/* bufreset: frees internal data of the buffer */
+void rstub_bufreset(struct buf *);
+#define bufreset rstub_bufreset
+
+/* bufslurp: removes a given number of bytes from the head of the array */
+void rstub_bufslurp(struct buf *, size_t);
+#define bufslurp rstub_bufslurp
+
+/* bufprintf: formatted printing to a buffer */
+void rstub_bufprintf(struct buf *, const char *, ...) __attribute__ ((format (printf, 2, 3)));
+#define bufprintf rstub_bufprintf
+
+extern int
+rstub_sd_autolink_issafe(const uint8_t *link, size_t link_len);
+#define sd_autolink_issafe rstub_sd_autolink_issafe
+
+extern size_t
+rstub_sd_autolink__www(size_t *rewind_p, struct buf *link, uint8_t *data,
+                     size_t offset, size_t size);
+#define sd_autolink__www rstub_sd_autolink__www
+
+extern size_t
+rstub_sd_autolink__email(size_t *rewind_p, struct buf *link, uint8_t *data,
+                       size_t offset, size_t size);
+#define sd_autolink__email rstub_sd_autolink__email
+
+extern size_t
+rstub_sd_autolink__url(size_t *rewind_p, struct buf *link, uint8_t *data,
+                     size_t offset, size_t size);
+#define sd_autolink__url rstub_sd_autolink__url
+
+extern struct sd_markdown *
+rstub_sd_markdown_new(
+	unsigned int extensions,
+	size_t max_nesting,
+	const struct sd_callbacks *callbacks,
+	void *opaque);
+#define sd_markdown_new rstub_sd_markdown_new
+
+extern void
+rstub_sd_markdown_render(struct buf *ob, const uint8_t *document, size_t doc_size,
+                       struct sd_markdown *md);
+#define sd_markdown_render rstub_sd_markdown_render
+
+extern void
+rstub_sd_markdown_free(struct sd_markdown *md);
+#define sd_markdown_free rstub_sd_markdown_free
+
+extern void
+rstub_sd_version(int *major, int *minor, int *revision);
+#define sd_version rstub_sd_version
+
+struct rmd_renderer {
+   char *name;
+   Rboolean (*render)(struct buf *,struct buf *, SEXP, SEXP);
+};
+
+Rboolean rstub_rmd_register_renderer(struct rmd_renderer *);
+#define rmd_register_renderer rstub_rmd_register_renderer
+
+Rboolean rstub_rmd_renderer_exists(const char *);
+#define rmd_renderer_exists rstub_rmd_renderer_exists
+
+Rboolean rstub_rmd_buf_to_output(struct buf *, SEXP, SEXP *);
+#define rmd_buf_to_output rstub_rmd_buf_to_output
+
+Rboolean rstub_rmd_input_to_buf(SEXP, SEXP, struct buf *);
+#define rmd_input_to_buf rstub_rmd_input_to_buf
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MARKDOWN_RSTUBS
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/NAMESPACE	(revision 2476)
@@ -0,0 +1,9 @@
+useDynLib(RSclient)
+# old client
+export(RSassign, RSattach, RSclose, RSconnect, RSdetach, RSeval, RSevalDetach, RSlogin, RSshutdown, RSserverEval, RSserverSource)
+# new client
+export(RS.connect, RS.eval, RS.eval.qap, RS.close, RS.switch, RS.authkey, RS.login, RS.collect, RS.assign, RS.oobCallbacks)
+export(RS.server.eval, RS.server.source, RS.server.shutdown)
+S3method(print, RserveConnection)
+S3method("!=", RserveConnection)
+S3method("==", RserveConnection)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/NEWS	(revision 2476)
@@ -0,0 +1,46 @@
+0.7-3	2015-07-27
+   o	fix an error when handling OOB if no handlers are registered
+
+   o	RS.oobCallbacks(c) would always return NULL callabcks
+
+
+0.7-2	2013-07-02
+   o	add RS.eval(..., lazy=FALSE) which evaluates the argument
+	locally and then remotely. This allows the construction of
+	remote calls with both remote and local symbols.
+
+   o	add RS.eval.qap() which uses Rserve QAP encoding instead of
+	native R serialization (requires Rserve 1.7-0 with DT_SEXP
+	support in CMD_eval).
+
+   o	add support for Rserve object-capability (OC) model mode.
+	OC calls are issued using RS.eval.qap() with OCref
+	as the function to call.
+
+   o	switch the order of winsock2.h and windows.h
+
+
+0.7-1	2013-02-19
+   o	add support for asynchronous connections and OOB streaming
+
+   o	add support for non-transparent proxy protocol (RSpx)
+
+   o	allow queuing of asynchronous RS.eval() and RS.assign()
+
+   o	add basic methods for connections such as print, == and !=
+
+   o	allow convenient RS.assign(c, x) syntax
+
+
+0.7-0	2012-11-05
+   o	initial CRAN release - the R client is based on Rserve 0.6-8
+	The function names on this old client are in the form RSxxx()
+
+	Included is a new C-based client which uses sockets directly
+	and thus supports features that cannot be supported with an
+ 	R-based client such as TLS/SSL connections, switching,
+	RSA secure authentication, multi-client selection.
+	The function names for the new client are of the form RS.xxx()
+
+	Handles of the two clients are not interchangeable, so you can
+	only use one or the other for one connection.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/LICENSE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/LICENSE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/LICENSE	(revision 2476)
@@ -0,0 +1,316 @@
+    [Summary: GPL-2 with OpenSSL linking exception]
+
+    RSclient
+    Copyright (C) 2002-2013 Simon Urbanek
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; version 2 of the License.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+    In addition, as a special exception, the copyright holders give
+    permission to link the code of portions of this program with the
+    OpenSSL project's "OpenSSL" library (or with modified versions of
+    it that use the same license as the "OpenSSL" library - see
+    http://www.openssl.org/), and distribute linked combinations
+    including the two.
+
+    You must obey the GNU General Public License in all respects
+    for all of the code used other than OpenSSL.  If you modify
+    file(s) with this exception, you may extend this exception to your
+    version of the file(s), but you are not obligated to do so.  If you
+    do not wish to do so, delete this exception statement from your
+    version.  If you delete this exception statement from all source
+    files in the program, then also delete it here.
+
+
+Full text of GPL-2 follows:
+
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/DESCRIPTION	(revision 2476)
@@ -0,0 +1,15 @@
+Package: RSclient
+Version: 0.7-3
+Title: Client for Rserve
+Author: Simon Urbanek <Simon.Urbanek@r-project.org>
+Maintainer: Simon Urbanek <Simon.Urbanek@r-project.org>
+Depends: R (>= 2.7.0)
+Description: Client for Rserve, allowing to connect to Rserve instances and issue commands.
+License: GPL-2 | file LICENSE
+URL: http://www.rforge.net/RSclient/
+NeedsCompilation: yes
+Packaged: 2015-07-27 21:09:21 UTC; svnuser
+Repository: CRAN
+Date/Publication: 2015-07-28 08:03:34
+Built: R 3.3.0; x86_64-apple-darwin13.4.0; 2016-05-05 00:24:33 UTC; unix
+Archs: RSclient.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RSclient/INDEX	(revision 2476)
@@ -0,0 +1,4 @@
+RC-methods              Methods for the RserveConnection class
+RCC                     Functions to talk to an Rserve instance (new
+                        version)
+Rclient                 Functions to talk to an Rserve
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/R/textometry.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/R/textometry.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/R/textometry.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/R/textometry.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/R/textometry
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/R/textometry	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/R/textometry	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/DESCRIPTION	(revision 2476)
@@ -0,0 +1,19 @@
+Package: textometry
+Type: Package
+Title: Textual Data Analysis Package used by the TXM Software
+Version: 0.1.4
+Date: 2015-01-08
+Author: Sylvain Loiseau, Lise Vaudor, Matthieu Decorde, Serge Heiden
+Maintainer: Matthieu Decorde <matthieu.decorde@ens-lyon.fr>
+Description: Statistical exploration of textual corpora using several methods
+    from French 'Textometrie' (new name of 'Lexicometrie') and French 'Data Analysis' schools.
+    It includes methods for exploring irregularity of distribution of lexicon features across
+    text sets or parts of texts (Specificity analysis); multi-dimensional exploration (Factorial analysis), etc. 
+    Those methods are used in the TXM software.
+License: GPL (>= 3)
+Depends: R (>= 1.5.0)
+Packaged: 2015-01-09 08:44:42 UTC; mdecorde
+NeedsCompilation: no
+Repository: CRAN
+Date/Publication: 2015-01-09 21:55:58
+Built: R 3.3.0; ; 2016-05-05 01:52:51 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/html/00Index.html	(revision 2476)
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Textual Data Analysis Package used by the TXM Software</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Textual Data Analysis Package used by the TXM Software
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;textometry&rsquo; version 0.1.4</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="textometry-package.html">textometry-package</a></td>
+<td>Textual Data Analysis Package used by the TXM Software</td></tr>
+<tr><td style="width: 25%;"><a href="bfm.html">bfm</a></td>
+<td>adverbs frequency from 5 different domains of the BFM database</td></tr>
+<tr><td style="width: 25%;"><a href="progression.html">progression</a></td>
+<td>Draw progression graphic</td></tr>
+<tr><td style="width: 25%;"><a href="robespierre.html">robespierre</a></td>
+<td>5 words from Robespierre's discourses</td></tr>
+<tr><td style="width: 25%;"><a href="specificities.html">specificities</a></td>
+<td>Calculate Lexical Specificity Score</td></tr>
+<tr><td style="width: 25%;"><a href="specificities.distribution.plot.html">specificities.distribution.plot</a></td>
+<td>Display specificities probability</td></tr>
+<tr><td style="width: 25%;"><a href="specificities.lexicon.html">specificities.lexicon</a></td>
+<td>*OBSOLETE FUNCTION (see 'specificities.lexicon.new')* specificities association score with two frequency lists.</td></tr>
+<tr><td style="width: 25%;"><a href="specificities.lexicon.new.html">specificities.lexicon.new</a></td>
+<td>specificities association score with two frequency list.</td></tr>
+<tr><td style="width: 25%;"><a href="specificities.probabilities.html">specificities.probabilities</a></td>
+<td>Calculate specificity probabilities</td></tr>
+<tr><td style="width: 25%;"><a href="specificities.probabilities.vector.html">specificities.probabilities.vector</a></td>
+<td>Vector raw hypergeometric probabilities</td></tr>
+<tr><td style="width: 25%;"><a href="textometry-package.html">textometry</a></td>
+<td>Textual Data Analysis Package used by the TXM Software</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/INDEX	(revision 2476)
@@ -0,0 +1,19 @@
+bfm                     adverbs frequency from 5 different domains of
+                        the BFM database
+progression             Draw progression graphic
+robespierre             5 words from Robespierre's discourses
+specificities           Calculate Lexical Specificity Score
+specificities.distribution.plot
+                        Display specificities probability
+specificities.lexicon   *OBSOLETE FUNCTION (see
+                        'specificities.lexicon.new')* specificities
+                        association score with two frequency lists.
+specificities.lexicon.new
+                        specificities association score with two
+                        frequency list.
+specificities.probabilities
+                        Calculate specificity probabilities
+specificities.probabilities.vector
+                        Vector raw hypergeometric probabilities
+textometry-package      Textual Data Analysis Package used by the TXM
+                        Software
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/help/AnIndex	(revision 2476)
@@ -0,0 +1,11 @@
+textometry-package	textometry-package
+bfm	bfm
+progression	progression
+robespierre	robespierre
+specificities	specificities
+specificities.distribution.plot	specificities.distribution.plot
+specificities.lexicon	specificities.lexicon
+specificities.lexicon.new	specificities.lexicon.new
+specificities.probabilities	specificities.probabilities
+specificities.probabilities.vector	specificities.probabilities.vector
+textometry	textometry-package
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/help/textometry.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/help/textometry.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/help/textometry.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/help/textometry.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/data/robespierre.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/data/robespierre.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/data/bfm.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/data/bfm.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/CITATION	(revision 2476)
@@ -0,0 +1,40 @@
+citHeader("To cite 'textometry' in publications use:")
+
+bibentry(bibtype = "Manual",
+title = "TXM Manual",
+author = person("TXM Team"),
+organization = "ICAR Laboratory, Lyon University & CNRS",
+address = "Lyon, France",
+year = 2013,
+url = "http://textometrie.ens-lyon.fr/?lang=en",
+textVersion="TXM Team (2013). TXM Manual. ICAR Laboratory, Lyon University & CNRS, Lyon, France. URL http://textometrie.ens-lyon.fr/?lang=en.")
+
+bibentry(bibtype = "InProceedings",
+title = "The TXM Platform: Building Open-Source Textual Analysis Software Compatible with the TEI Encoding Scheme",
+booktitle = "Proceedings of the 24th Pacific Asia Conference on Language, Information and Computation (PACLIC 24). 4-7 November 2010, Sendai",
+publisher = "Institute for Digital Enhancement of Cognitive Development, Waseda University",
+author = person("Heiden, Serge"),
+editor = "Ryo Otoguro, Kiyoshi Ishikawa",
+month = "nov",
+year = 2010,
+keywords = "xml-tei corpora ; search engine ; statistical analysis ; textometry ; open-source",
+pages = "389--398",
+url = "http://halshs.archives-ouvertes.fr/halshs-00549764/en",
+abstract = "This paper describes the rationale and design of an XML-TEI encoded corpora compatible analysis platform for text mining called TXM. The design of this platform is based on a synthesis of the best available algorithms in existing textometry software. It also relies on identifying the most relevant open-source technologies for processing textual resources encoded in XML and Unicode, for efficient full-text search on annotated corpora and for statistical data analysis. The architecture is based on a Java toolbox articulating a full-text search engine component with a statistical computing environment and with an original import environment able to process a large variety of data sources, including XML-TEI, and to apply embedded NLP tools to them. The platform is distributed as an open-source Eclipse project for developers and in the form of two demonstrator applications for end users: a standard application to install on a workstation and an online web application framework.",
+textVersion = "Heiden, S. (2010). The TXM Platform: Building Open-Source Textual Analysis Software Compatible with the TEI Encoding Scheme. In K. I. Ryo Otoguro (Ed.), 24th Pacific Asia Conference on Language, Information and Computation - PACLIC24 (p. 389-398). Institute for Digital Enhancement of Cognitive Development, Waseda University, Sendai, Japan.")
+
+bibentry(bibtype = "Article",
+title = "Sur la variabilit\'e de la fr\'equence des formes dans un corpus",
+author = person("Lafon, Pierre"),
+journal = "Mots",
+volume = "1",
+number = "1",
+pages = "127--165",
+year = "1980",
+ISSN = "0243-6450",
+url = "http://www.persee.fr/web/revues/home/prescript/article/mots_0243-6450_1980_num_1_1_1008",
+doi="10.3406/mots.1980.1008",
+language= "fre",
+publisher = "Presses de la Fondation nationale des sciences politiques, 27 Rue Saint Guillaume, 75341, Paris",
+abstract = "FORM FREQUENCY VARIABILITY IN A CORPUS P. L. is studying the distribution of the frequency of a word in a corpus divided into several fragments. Contrary to current work in this field, he proposes to use the formulae of the hypergeometric distribution, choosing the whole corpus as the norm of the fragments. These choices lead to the calculation of a probabilistic index valid for the whole range of frequencies. The calculation of this index for every form in the vocabulary enables us to define two complementary subsets of forms : that of specific forms and that of basic forms, and to attribute to each fragment its own lexical specifications.")
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/textometry/NAMESPACE	(revision 2476)
@@ -0,0 +1,12 @@
+import("grDevices")
+
+# file "R/specificities.R"
+export(specificities,
+	   specificities.distribution.plot,
+	   specificities.lexicon,
+	   specificities.lexicon.new,
+	   specificities.probabilities,
+	   specificities.probabilities.vector)
+
+# file "R/progression.R"
+export(progression)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/bugs.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/bugs.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/bugs.R	(revision 2476)
@@ -0,0 +1,30 @@
+library(grid)
+
+# Physical units in viewport of height 0
+pushViewport(viewport(h=0))
+stopifnot(is.finite(convertHeight(unit(72, "bigpts"), "inches")))
+popViewport()
+
+# The gpar font settings for a grob should affect the grob itself
+stopifnot(round(convertHeight(grobHeight(rectGrob(height=unit(1, "lines"), 
+                                                  gp=gpar(lineheight=2))),
+                              "inches", valueOnly=TRUE) -
+                convertHeight(grobHeight(rectGrob(height=unit(1, "lines"),
+                                                  vp=viewport(
+                                                    gp=gpar(lineheight=2)))),
+                              "inches", valueOnly=TRUE),
+                digits=5) == 0)
+
+# Calculation of size of packed grob with gp which is non-empty
+gf1 <- frameGrob(gp=gpar(fontsize=20))
+gf1 <- packGrob(gf1, textGrob("howdy"))
+gf1 <- packGrob(gf1, rectGrob(), col=1, row=1)
+gf2 <- frameGrob()
+gf2 <- packGrob(gf2, gf1)
+gf2 <- packGrob(gf2, rectGrob(gp=gpar(col="red")), col=1, row=1)
+stopifnot(round(convertWidth(grobWidth(gf1),
+                             "inches", valueOnly=TRUE) -
+                convertWidth(grobWidth(gf2),
+                             "inches", valueOnly=TRUE),
+                digits=5) == 0)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/units.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/units.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/units.R	(revision 2476)
@@ -0,0 +1,171 @@
+
+library(grid)
+
+unitCheck <- function(u1, u2) {
+    stopifnot(identical(as.character(u1), as.character(u2)))
+}
+
+# Mixture of rep() arguments based on example(rep) examples
+
+# simple tests
+simpleUnit <- unit(1:4, "npc")
+
+unitCheck(rep(simpleUnit, 2),
+          unit(rep(1:4, 2), "npc"))
+unitCheck(rep(simpleUnit, each=2),
+          unit(rep(1:4, each=2), "npc"))
+unitCheck(rep(simpleUnit, c(2, 1, 2, 1)),
+          unit(rep(1:4, c(2, 1, 2, 1)), "npc"))
+unitCheck(rep(simpleUnit, each=2, len=4),
+          unit(rep(1:4, each=2, len=4), "npc"))
+unitCheck(rep(simpleUnit, each=2, len=10),
+          unit(rep(1:4, each=2, len=10), "npc"))
+unitCheck(rep(simpleUnit, each=2, times=3),
+          unit(rep(1:4, each=2, times=3), "npc"))
+
+simpleUnitMixed <- unit(1:4, c("npc", "cm"))
+
+unitCheck(rep(simpleUnitMixed, 2),
+          unit(rep(1:4, 2), c("npc", "cm")))
+unitCheck(rep(simpleUnitMixed, each=2),
+          unit(rep(1:4, each=2),
+               rep(c("npc", "cm"), each=2)))
+unitCheck(rep(simpleUnitMixed, c(2, 1, 2, 1)),
+          unit(rep(1:4, c(2, 1, 2, 1)),
+               rep(c("npc", "cm"), c(2, 1))))
+unitCheck(rep(simpleUnitMixed, each=2, len=4),
+          unit(rep(1:4, each=2, len=4),
+               rep(c("npc", "cm"), each=2, len=4)))
+unitCheck(rep(simpleUnitMixed, each=2, len=10),
+          unit(rep(1:4, each=2, len=10),
+               rep(c("npc", "cm"), each=2, len=10)))
+unitCheck(rep(simpleUnitMixed, each=2, times=3),
+          unit(rep(1:4, each=2, times=3),
+               rep(c("npc", "cm"), each=2, times=3)))
+
+units <- c("npc", "inch", "strwidth", "cm")
+dataL <- list(NULL, NULL, "test", NULL)
+unitWithData <- unit(1:4, units, data=dataL)
+unitCheck(rep(unitWithData, 2),
+          unit(rep(1:4, 2),
+               rep(units, 2),
+               rep(dataL, 2)))
+unitCheck(rep(unitWithData, each=2),
+          unit(rep(1:4, each=2),
+               rep(units, each=2),
+               rep(dataL, each=2)))
+unitCheck(rep(unitWithData, c(2, 1, 2, 1)),
+          unit(rep(1:4, c(2, 1, 2, 1)),
+               rep(units, c(2, 1, 2, 1)),
+               rep(dataL, c(2, 1, 2, 1))))
+unitCheck(rep(unitWithData, each=2, len=4),
+          unit(rep(1:4, each=2, len=4),
+               rep(units, each=2, len=4),
+               rep(dataL, each=2, len=4)))
+unitCheck(rep(unitWithData, each=2, len=10),
+          unit(rep(1:4, each=2, len=10),
+               rep(units, each=2, len=10),
+               rep(dataL, each=2, len=10)))
+unitCheck(rep(unitWithData, each=2, times=3),
+          unit(rep(1:4, each=2, times=3),
+               rep(units, each=2, times=3),
+               rep(dataL, each=2, times=3)))
+
+# unit.arithmetic
+unitArith <- unit(1, "npc") + unit(1:2, "inch")
+
+unitCheck(rep(unitArith, 2),
+          unit(1, "npc") + unit(rep(1:2, 2), "inch"))
+unitCheck(rep(unitArith, each=2),
+          unit(1, "npc") + unit(rep(1:2, each=2), "inch"))
+unitCheck(rep(unitArith, c(2, 1)),
+          unit(1, "npc") + unit(rep(1:2, c(2 ,1)), "inch"))
+unitCheck(rep(unitArith, each=2, len=3),
+          unit(1, "npc") + unit(rep(1:2, each=2, len=3), "inch"))
+unitCheck(rep(unitArith, each=2, len=5),
+          unit(1, "npc") + unit(rep(1:2, each=2, len=5), "inch"))
+unitCheck(rep(unitArith, each=2, times=3),
+          unit(1, "npc") + unit(rep(1:2, each=2, times=3), "inch"))
+
+# unit.list
+arg1 <- unit(1, "npc") + unit(1:2, "inch")
+arg2 <- unit(3, "cm")
+unitList <- unit.c(arg1, arg2)
+
+unitCheck(rep(unitList, 2),
+          unit.c(arg1, arg2, arg1, arg2))
+unitCheck(rep(unitList, each=2),
+          unit.c(rep(arg1, each=2), rep(arg2, 2)))
+unitCheck(rep(unitList, c(2, 1, 2)),
+          unit.c(rep(arg1, c(2, 1)), rep(arg2, 2)))
+unitCheck(rep(unitList, each=2, len=4),
+          rep(arg1, each=2))
+unitCheck(rep(unitList, each=2, len=8),
+          unit.c(rep(arg1, each=2), rep(arg2, 2), rep(arg1, each=2, len=2)))
+unitCheck(rep(unitList, each=2, times=3),
+          unit.c(rep(arg1, each=2), rep(arg2, 2),
+                 rep(arg1, each=2), rep(arg2, 2),
+                 rep(arg1, each=2), rep(arg2, 2)))
+
+# Special test
+# rep() unit.arithmetic where operands have different lengths
+uaDiffLength <- unit(1:2, "npc") + unit(1:3, "npc")
+uaSameLength <- unit(c(1, 2, 1), "npc") + unit(1:3, "npc")
+unitCheck(rep(uaDiffLength, 2),
+          rep(uaSameLength, 2))
+
+
+# Bug report PR#14170 test
+
+x <- unit.c(unit(5,"mm"),unit(3,"npc"))
+rep(x, 2)
+rep(x, each=2)
+rep(x, c(2, 2))
+
+x <- x - unit(1,"mm")
+rep(x, 2)
+rep(x, each=2)
+rep(x, c(2, 2))
+
+
+## grid::unit.pmax, PR#14443
+x <- unit(1, "cm")
+stopifnot(length(unit.pmax(x)) == 1L, length(unit.pmin(x)) == 1L)
+## was 3 in R <= 2.12.0
+
+# Unit subassignment
+a <- unit(1:3, c("cm", "in", "npc"))
+b <- a + unit(1, "npc")
+a[2] <- unit(2,"pt")
+b[2] <- unit(2,"npc")
+
+unitCheck(a, unit(1:3, c("cm", "pt", "npc")))
+unitCheck(b, unit.c(unit(1, "cm") + unit(1, "npc"),
+                    unit(2, "npc"),
+                    unit(3, "npc") + unit(1, "npc")))
+
+c <- unit(1:10, "mm")
+
+# assign to range
+c[5:9] <- unit(9:5, "pt")
+unitCheck(c, unit(c(1:4, 9:5, 10),
+                  c(rep("mm", 4), rep("pt", 5), "mm")))
+
+# recycle
+c[2:3] <- unit(1, "in") + unit(.5, "npc")
+unitCheck(c, unit.c(unit(1, "mm"),
+                    rep(unit(1, "in") + unit(.5, "npc"), 2),
+                    unit(4, "mm"),
+                    unit(9:5, "pt"),
+                    unit(10, "mm")))
+
+# recycle non-multiple
+c[6:8] <- stringWidth(c("a", "b"))
+unitCheck(c, unit.c(unit(1, "mm"),
+                    rep(unit(1, "in") + unit(.5, "npc"), 2),
+                    unit(4, "mm"),
+                    unit(9, "pt"),
+                    stringWidth(c("a", "b", "a")),
+                    unit(5, "pt"),
+                    unit(10, "mm")))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/testls.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/testls.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/testls.Rout.save	(revision 2476)
@@ -0,0 +1,343 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> library(grid)
+> 
+> # Test hole in DL (deleted grob)
+> grid.lines(name="foo")
+> grid.lines(x=1:0, name="foo2")
+> grid.ls()
+foo
+foo2
+> grid.remove("foo")
+> grid.ls()
+foo2
+> # New blank page
+> grid.newpage()
+> 
+> 
+> #######
+> # GROBS
+> #######
+> # Plain grob
+> grid.ls(grob(name="g1"))
+g1
+> # gList
+> grid.ls(gList(grob(name="gl1"), grob(name="gl2")))
+gl1
+gl2
+> # gTree
+> grid.ls(gTree(children=gList(grob(name="child")),
++               name="parent"))
+parent
+  child
+> grid.ls(gTree(children=gList(grob(name="child1"), grob(name="child1")),
++               name="parent"))
+parent
+  child1
+  child1
+> 
+> ###########
+> # VIEWPORTS
+> ###########
+> # Plain viewport
+> grid.ls(viewport(name="vp1"),
++         view=TRUE)
+vp1
+> # vpList
+> grid.ls(vpList(viewport(name="vpl1")),
++         view=TRUE)
+vpl1
+> grid.ls(vpList(viewport(name="vpl1"), viewport(name="vpl2")),
++         view=TRUE)
+vpl1
+  1
+vpl2
+> grid.ls(vpList(viewport(name="vpl1"), viewport(name="vpl2"),
++                viewport(name="vpl3")),
++         view=TRUE)
+vpl1
+  1
+vpl2
+  1
+vpl3
+> # vpStack
+> grid.ls(vpStack(viewport(name="vps1"), viewport(name="vps2")),
++         view=TRUE)
+vps1
+  vps2
+> grid.ls(vpStack(viewport(name="vps1"), viewport(name="vps2"),
++                 viewport(name="vps3")),
++         view=TRUE)
+vps1
+  vps2
+    vps3
+> # vpTrees
+> grid.ls(vpTree(viewport(name="parentvp"), vpList(viewport(name="childvp"))),
++         view=TRUE)
+parentvp
+  childvp
+> grid.ls(vpTree(viewport(name="parentvp"),
++                vpList(viewport(name="cvp1"), viewport(name="cvp2"))),
++         view=TRUE)
+parentvp
+  cvp1
+    1
+  cvp2
+> # vpPaths
+> grid.ls(vpPath("A"),
++         view=TRUE)
+A
+> grid.ls(vpPath("A", "B"),
++         view=TRUE)
+A
+  B
+> grid.ls(vpPath("A", "B", "C"),
++         view=TRUE)
+A
+  B
+    C
+> 
+> ##########
+> # MIXTURES
+> ##########
+> # grob with vp viewport
+> g1 <- grob(vp=viewport(name="gvp"), name="g1")
+> grid.ls(g1, view=TRUE, full=TRUE)
+viewport[gvp]
+  grob[g1]
+  upViewport[1]
+> grid.ls(g1, view=TRUE, full=TRUE, grob=FALSE)
+viewport[gvp]
+  upViewport[1]
+> # grob with vp vpList
+> grid.ls(grob(vp=vpList(viewport(name="vpl")), name="g1"),
++         view=TRUE, full=TRUE)
+viewport[vpl]
+  grob[g1]
+  upViewport[1]
+> grid.ls(grob(vp=vpList(viewport(name="vpl1"), viewport(name="vpl2")),
++              name="g1"),
++         view=TRUE, full=TRUE)
+viewport[vpl1]
+  upViewport[1]
+viewport[vpl2]
+  grob[g1]
+  upViewport[1]
+> # grob with vp vpStack
+> grid.ls(grob(vp=vpStack(viewport(name="vps1"), viewport(name="vps2")),
++              name="g1"),
++         view=TRUE, full=TRUE)
+viewport[vps1]
+  viewport[vps2]
+    grob[g1]
+    upViewport[2]
+> grid.ls(grob(vp=vpStack(viewport(name="vps1"), viewport(name="vps2"),
++                viewport(name="vps3")),
++              name="g1"),
++         view=TRUE)
+vps1
+  vps2
+    vps3
+      g1
+      3
+> # grob with vp vpTree
+> grid.ls(grob(vp=vpTree(viewport(name="parentvp"),
++                vpList(viewport(name="cvp"))),
++              name="g1"),
++         view=TRUE, full=TRUE)
+viewport[parentvp]
+  viewport[cvp]
+    grob[g1]
+    upViewport[2]
+> grid.ls(grob(vp=vpTree(viewport(name="parentvp"),
++                vpList(viewport(name="cvp1"), viewport(name="cvp2"))),
++              name="g1"),
++         view=TRUE, full=TRUE)
+viewport[parentvp]
+  viewport[cvp1]
+    upViewport[1]
+  viewport[cvp2]
+    grob[g1]
+    upViewport[2]
+> # gTree with vp viewport
+> # and child grob with vp viewport
+> grid.ls(gTree(children=gList(grob(vp=viewport(name="childvp"), name="cg1"),
++                 grob(name="cg2")),
++               name="parent",
++               vp=viewport(name="parentvp")),
++         view=TRUE)
+parentvp
+  parent
+    childvp
+      cg1
+      1
+    cg2
+  1
+> # gTree with childrenvp viewport
+> grid.ls(gTree(childrenvp=viewport(name="vp"), name="gtree"),
++         view=TRUE, full=TRUE)
+gTree[gtree]
+  viewport[vp]
+    upViewport[1]
+> grid.ls(gTree(childrenvp=viewport(name="vp"), name="gtree"),
++         view=TRUE, full=TRUE, grob=FALSE)
+viewport[vp]
+  upViewport[1]
+> grid.ls(gTree(children=gList(grob(name="child")),
++               name="parent",
++               childrenvp=viewport(name="vp")),
++         view=TRUE, full=TRUE)
+gTree[parent]
+  viewport[vp]
+    upViewport[1]
+  grob[child]
+> grid.ls(gTree(children=gList(grob(name="child1"), grob(name="child2")),
++               name="parent",
++               childrenvp=viewport(name="vp")),
++         view=TRUE, full=TRUE)
+gTree[parent]
+  viewport[vp]
+    upViewport[1]
+  grob[child1]
+  grob[child2]
+> grid.ls(gTree(children=gList(grob(name="child")),
++               childrenvp=viewport(name="vp"),
++               name="parent"), 
++         view=TRUE, full=TRUE)
+gTree[parent]
+  viewport[vp]
+    upViewport[1]
+  grob[child]
+> grid.ls(gTree(children=gList(grob(name="child1"), grob(name="child2")),
++               name="parent",
++               childrenvp=viewport(name="vp")),
++         view=TRUE, full=TRUE, grob=FALSE)
+viewport[vp]
+  upViewport[1]
+> # gTree with childrenvp vpTree
+> grid.ls(gTree(childrenvp=vpTree(parent=viewport(name="vp1"),
++                 children=vpList(viewport(name="vp2"))),
++               name="gtree"),
++         view=TRUE, full=TRUE)
+gTree[gtree]
+  viewport[vp1]
+    viewport[vp2]
+      upViewport[2]
+> grid.ls(gTree(children=gList(grob(name="child")),
++               name="parent",
++               childrenvp=vpTree(parent=viewport(name="vp1"),
++                 children=vpList(viewport(name="vp2")))),
++         view=TRUE, full=TRUE)
+gTree[parent]
+  viewport[vp1]
+    viewport[vp2]
+      upViewport[2]
+  grob[child]
+> # gTree with childrenvp vpTree
+> # and child grob with vp vpPath
+> # A gTree, called "parent", with childrenvp vpTree (vp2 within vp1)
+> # and child grob, called "child", with vp vpPath (down to vp2)
+> sampleGTree <- gTree(name="parent",
++                      children=gList(grob(name="child", vp="vp1::vp2")),
++                      childrenvp=vpTree(parent=viewport(name="vp1"),
++                                        children=vpList(viewport(name="vp2"))))
+> grid.ls(sampleGTree)
+parent
+  child
+> # Show viewports too
+> grid.ls(sampleGTree, view=TRUE)
+parent
+  vp1
+    vp2
+      2
+  vp1
+    vp2
+      child
+      2
+> # Only show viewports
+> grid.ls(sampleGTree, view=TRUE, grob=FALSE)
+vp1
+  vp2
+    2
+vp1
+  vp2
+    2
+> # Alternate displays
+> # nested listing, custom indent
+> grid.ls(sampleGTree, view=TRUE, print=nestedListing, gindent="--")
+parent
+--vp1
+----vp2
+------2
+--vp1
+----vp2
+------child
+------2
+> # path listing
+> grid.ls(sampleGTree, view=TRUE, print=pathListing)
+            | parent
+vp1
+vp1::vp2
+vp1::vp2::2
+vp1
+vp1::vp2
+vp1::vp2    | parent::child
+vp1::vp2::2
+> # path listing, without grobs aligned
+> grid.ls(sampleGTree, view=TRUE, print=pathListing, gAlign=FALSE)
+ | parent
+vp1
+vp1::vp2
+vp1::vp2::2
+vp1
+vp1::vp2
+vp1::vp2 | parent::child
+vp1::vp2::2
+> # grob path listing 
+> grid.ls(sampleGTree, view=TRUE, print=grobPathListing)
+         | parent
+vp1::vp2 | parent::child
+> # path listing, grobs only
+> grid.ls(sampleGTree, print=pathListing)
+ | parent
+ | parent::child
+> # path listing, viewports only
+> grid.ls(sampleGTree, view=TRUE, grob=FALSE, print=pathListing)
+vp1
+vp1::vp2
+vp1::vp2::2
+vp1
+vp1::vp2
+vp1::vp2::2
+> # raw flat listing
+> str(grid.ls(sampleGTree, view=TRUE, print=FALSE))
+List of 6
+ $ name   : chr [1:8] "parent" "vp1" "vp2" "2" ...
+ $ gDepth : num [1:8] 0 1 1 1 1 1 1 1
+ $ vpDepth: num [1:8] 0 0 1 2 0 1 2 2
+ $ gPath  : chr [1:8] "" "parent" "parent" "parent" ...
+ $ vpPath : chr [1:8] "" "" "vp1" "vp1::vp2" ...
+ $ type   : chr [1:8] "gTreeListing" "vpListing" "vpListing" "vpUpListing" ...
+ - attr(*, "class")= chr "flatGridListing"
+> 
+> 
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.231   0.015   0.233 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/reg.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/reg.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/reg.R	(revision 2476)
@@ -0,0 +1,433 @@
+library(grid)
+
+# Unit conversions
+stopifnot(round(convertX(unit(1, "inches"), "inches", valueOnly=TRUE) - 1,
+                digits=5) == 0)
+stopifnot(round(convertX(unit(2.54, "cm"), "inches", valueOnly=TRUE) - 1,
+                digits=5) == 0)
+stopifnot(round(convertX(unit(25.4, "mm"), "inches", valueOnly=TRUE) - 1,
+                digits=5) == 0)
+stopifnot(round(convertX(unit(72.27, "points"), "inches", valueOnly=TRUE) - 1,
+                digits=5) == 0)
+stopifnot(round(convertX(unit(1/12*72.27, "picas"), "inches",
+                         valueOnly=TRUE) - 1, digits=5) == 0)
+stopifnot(round(convertX(unit(72, "bigpts"), "inches", valueOnly=TRUE) - 1,
+                digits=5) == 0)
+stopifnot(round(convertX(unit(1157/1238*72.27, "dida"), "inches",
+                         valueOnly=TRUE) - 1, digits=5) == 0)
+stopifnot(round(convertX(unit(1/12*1157/1238*72.27, "cicero"), "inches",
+                         valueOnly=TRUE) - 1, digits=5) == 0)
+stopifnot(round(convertX(unit(65536*72.27, "scaledpts"), "inches",
+                         valueOnly=TRUE) - 1, digits=5) == 0)
+stopifnot(round(convertX(unit(1/2.54, "inches"), "cm", valueOnly=TRUE) - 1,
+                digits=5) == 0)
+stopifnot(round(convertX(unit(1/25.4, "inches"), "mm", valueOnly=TRUE) - 1,
+                digits=5) == 0)
+stopifnot(round(convertX(unit(1/72.27, "inches"), "points",
+                         valueOnly=TRUE) - 1, digits=5) == 0)
+stopifnot(round(convertX(unit(1/(1/12*72.27), "inches"), "picas",
+                         valueOnly=TRUE) - 1, digits=5) == 0)
+stopifnot(round(convertX(unit(1/72, "inches"), "bigpts", valueOnly=TRUE) - 1,
+                digits=5) == 0)
+stopifnot(round(convertX(unit(1/(1157/1238*72.27), "inches"), "dida",
+                         valueOnly=TRUE) - 1, digits=5) == 0)
+stopifnot(round(convertX(unit(1/(1/12*1157/1238*72.27), "inches"), "cicero",
+                         valueOnly=TRUE) - 1, digits=5) == 0)
+stopifnot(round(convertX(unit(1/(65536*72.27), "inches"), "scaledpts",
+                         valueOnly=TRUE) - 1, digits=5) == 0)
+
+pushViewport(viewport(width=unit(1, "inches"),
+                       height=unit(2, "inches"),
+                       xscale=c(0, 1),
+                       yscale=c(1, 3)))
+  ## Location versus dimension
+stopifnot(round(convertY(unit(2, "native"), "inches", valueOnly=TRUE) -
+                1, digits=5) == 0)
+stopifnot(round(convertHeight(unit(2, "native"), "inches", valueOnly=TRUE) -
+                2, digits=5) == 0)
+  ## From "x" to "y" (the conversion is via "inches")
+stopifnot(round(convertUnit(unit(1, "native"), "native",
+                            axisFrom="x", axisTo="y", valueOnly=TRUE) -
+                2, digits=5) == 0)
+  ## Convert several values at once
+stopifnot(all(round(convertX(unit(c(0.5, 2.54), c("npc", "cm")),
+                             c("inches", "native"), valueOnly=TRUE) -
+                    c(0.5, 1), digits=5) == 0))
+popViewport()
+
+# packing a frame inside a frame
+fg <- frameGrob()
+fg <- packGrob(fg, textGrob("Hi there"))
+
+fg2 <- frameGrob()
+fg2 <- packGrob(fg2, fg)
+fg2 <- packGrob(fg2, rectGrob(), side="bottom")
+fg2 <- packGrob(fg2, rectGrob(height=unit(1, "inches")), side="top")
+
+stopifnot(convertHeight(fg2$framevp$layout$heights, "inches",
+                        valueOnly=TRUE)[2] < 1)
+
+# Regression tests for:
+
+# A: grob[X|Y|Width|Height]
+
+# B: grid.[circle|lines|segments|rect|polygon|text|xspline|points]
+
+# C: at angles seq(0, 360, 45)[-1]
+
+# D: single AND multiple output 
+
+# In each casem, set up a situation where the answer is (easily) known,
+# then compare the numeric answer
+
+test <- function(x, y) {
+    on.exit(cat(paste("x =", x, " ; y =", y, "\n")))
+    stopifnot(isTRUE(all.equal(x, y)))
+}
+
+testX <- function(x1, x2) {
+    test(convertX(x1, "inches", valueOnly=TRUE),
+         convertX(x2, "inches", valueOnly=TRUE))
+}
+
+testY <- function(y1, y2) {
+    test(convertY(y1, "inches", valueOnly=TRUE),
+         convertY(y2, "inches", valueOnly=TRUE))
+}
+
+testWidth <- function(w1, w2) {
+    test(convertWidth(w1, "inches", valueOnly=TRUE),
+         convertWidth(w2, "inches", valueOnly=TRUE))
+}
+
+testHeight <- function(h1, h2) {
+    test(convertHeight(h1, "inches", valueOnly=TRUE),
+         convertHeight(h2, "inches", valueOnly=TRUE))
+}
+
+########
+# CIRCLE
+########
+# A = X;  B = circle; C = ALL; D = BOTH
+for (theta in seq(0, 360, 45)[-1]) {
+    testX(grobX(circleGrob(r=unit(.5, "inches")), theta),
+          unit(.5, "npc") + cos(theta/180*pi)*unit(.5, "inches"))
+    # Bounding box is 1" by 1"
+    testX(grobX(circleGrob(x=unit(.5, "npc") + unit(c(-.25, .25), "inches"),
+                           y=unit(.5, "npc") + unit(c(-.25, .25), "inches"),
+                           r=unit(.25, "inches")),
+                theta),
+          switch(as.character(theta),
+                 "360"=, "315"=,
+                 "45"=unit(.5, "npc") + unit(.5, "inches"),
+                 "180"=, "225"=,
+                 "135"=unit(.5, "npc") - unit(.5, "inches"),
+                 "90"=,
+                 "270"=unit(.5, "npc")))
+}
+
+# A = Y;  B = circle; C = ALL; D = BOTH
+for (theta in seq(0, 360, 45)[-1]) {
+    testY(grobY(circleGrob(r=unit(.5, "inches")), theta),
+          unit(.5, "npc") + sin(theta/180*pi)*unit(.5, "inches"))
+    # Bounding box is 1" by 1"
+    testY(grobY(circleGrob(x=unit(.5, "npc") + unit(c(-.25, .25), "inches"),
+                           y=unit(.5, "npc") + unit(c(-.25, .25), "inches"),
+                           r=unit(.25, "inches")),
+                theta),
+          switch(as.character(theta),
+                 "90"=, "135"=,
+                 "45"=unit(.5, "npc") + unit(.5, "inches"),
+                 "270"=, "315"=,
+                 "225"=unit(.5, "npc") - unit(.5, "inches"),
+                 "180"=,
+                 "360"=unit(.5, "npc")))
+}
+
+# A = Width;  B = circle; C = ALL; D = BOTH
+testWidth(grobWidth(circleGrob(r=unit(.5, "inches"))),
+          unit(1, "inches"))
+testWidth(grobWidth(circleGrob(x=unit(.5, "npc") +
+                               unit(c(-.25, .25), "inches"),
+                               y=unit(.5, "npc") +
+                               unit(c(-.25, .25), "inches"),
+                               r=unit(.25, "inches"))),
+          unit(1, "inches"))          
+                    
+# A = Height;  B = circle; C = ALL; D = BOTH
+testHeight(grobHeight(circleGrob(r=unit(.5, "inches"))),
+          unit(1, "inches"))
+testHeight(grobHeight(circleGrob(x=unit(.5, "npc") +
+                                 unit(c(-.25, .25), "inches"),
+                                 y=unit(.5, "npc") +
+                                 unit(c(-.25, .25), "inches"),
+                                 r=unit(.25, "inches"))),
+           unit(1, "inches"))          
+                    
+########
+# RECT
+########
+# A = X;  B = rect; C = ALL; D = BOTH
+for (theta in seq(0, 360, 45)[-1]) {
+    testX(grobX(rectGrob(width=unit(1, "inches"),
+                         height=unit(1, "inches")), theta),
+          switch(as.character(theta),
+                 "360"=, "315"=,
+                 "45"=unit(.5, "npc") + unit(.5, "inches"),
+                 "180"=, "225"=,
+                 "135"=unit(.5, "npc") - unit(.5, "inches"),
+                 "90"=,
+                 "270"=unit(.5, "npc")))
+    # Bounding box is 1" by 1"
+    testX(grobX(rectGrob(x=unit(.5, "npc") + unit(c(-.25, .25), "inches"),
+                         y=unit(.5, "npc") + unit(c(-.25, .25), "inches"),
+                         width=unit(.5, "inches"),
+                         height=unit(.5, "inches")),
+                theta),
+          switch(as.character(theta),
+                 "360"=, "315"=,
+                 "45"=unit(.5, "npc") + unit(.5, "inches"),
+                 "180"=, "225"=,
+                 "135"=unit(.5, "npc") - unit(.5, "inches"),
+                 "90"=,
+                 "270"=unit(.5, "npc")))
+}
+
+# A = Y;  B = rect; C = ALL; D = BOTH
+for (theta in seq(0, 360, 45)[-1]) {
+    testY(grobY(rectGrob(width=unit(1, "inches"),
+                         height=unit(1, "inches")), theta),
+          switch(as.character(theta),
+                 "90"=, "135"=,
+                 "45"=unit(.5, "npc") + unit(.5, "inches"),
+                 "270"=, "315"=,
+                 "225"=unit(.5, "npc") - unit(.5, "inches"),
+                 "180"=,
+                 "360"=unit(.5, "npc")))
+    # Bounding box is 1" by 1"
+    testY(grobY(rectGrob(x=unit(.5, "npc") + unit(c(-.25, .25), "inches"),
+                         y=unit(.5, "npc") + unit(c(-.25, .25), "inches"),
+                         width=unit(.5, "inches"),
+                         height=unit(.5, "inches")),
+                theta),
+          switch(as.character(theta),
+                 "90"=, "135"=,
+                 "45"=unit(.5, "npc") + unit(.5, "inches"),
+                 "270"=, "315"=,
+                 "225"=unit(.5, "npc") - unit(.5, "inches"),
+                 "180"=,
+                 "360"=unit(.5, "npc")))
+}
+
+# A = Width;  B = rect; C = ALL; D = BOTH
+testWidth(grobWidth(rectGrob(width=unit(1, "inches"),
+                             height=unit(1, "inches"))),
+          unit(1, "inches"))
+testWidth(grobWidth(rectGrob(x=unit(.5, "npc") +
+                             unit(c(-.25, .25), "inches"),
+                             y=unit(.5, "npc") +
+                             unit(c(-.25, .25), "inches"),
+                             width=unit(.5, "inches"),
+                             height=unit(.5, "inches"))),
+          unit(1, "inches"))          
+                    
+# A = Height;  B = rect; C = ALL; D = BOTH
+testHeight(grobHeight(rectGrob(width=unit(1, "inches"),
+                               height=unit(1, "inches"))),
+           unit(1, "inches"))
+testHeight(grobHeight(rectGrob(x=unit(.5, "npc") +
+                               unit(c(-.25, .25), "inches"),
+                               y=unit(.5, "npc") +
+                               unit(c(-.25, .25), "inches"),
+                               width=unit(.5, "inches"),
+                               height=unit(.5, "inches"))),
+           unit(1, "inches"))          
+                    
+########
+# polygon
+# Four locations in a diamond
+########
+# A = X;  B = polygon; C = ALL; D = BOTH
+for (theta in seq(0, 360, 45)[-1]) {
+    testX(grobX(polygonGrob(x=unit(.5, "npc") +
+                            unit(c(-.5, 0, .5, 0), "inches"),
+                            y=unit(.5, "npc") +
+                            unit(c(0, -.5, 0, .5), "inches")),
+                theta),
+          switch(as.character(theta),
+                 "45"=,
+                 "315"=unit(.5, "npc") + unit(.25, "inches"),
+                 "90"=,
+                 "270"=unit(.5, "npc"),
+                 "135"=,
+                 "225"=unit(.5, "npc") - unit(.25, "inches"),
+                 "180"=unit(.5, "npc") - unit(.5, "inches"),
+                 "360"=unit(.5, "npc") + unit(.5, "inches")))
+    # NOTE:  for polygons, even if there are multiple polygons,
+    # we still produce edge of hull for ALL points
+    testX(grobX(polygonGrob(x=unit(.5, "npc") +
+                            unit(c(-.5, -.25, 0, -.25,
+                                   0, .25, .5, .25), "inches"),
+                            y=unit(.5, "npc") +
+                            unit(c(-.25, -.5, -.25, 0,
+                                   .25, 0, .25, .5), "inches"),
+                            id=rep(1:2, each=4)),
+                theta),
+          switch(as.character(theta),
+                 "45"=unit(.5, "npc") + unit(.375, "inches"),
+                 "90"=unit(.5, "npc"),
+                 "135"=unit(.5, "npc") - unit(.125, "inches"),
+                 "180"=unit(.5, "npc") - unit(.25, "inches"),
+                 "225"=unit(.5, "npc") - unit(.375, "inches"),
+                 "270"=unit(.5, "npc"),
+                 "315"=unit(.5, "npc") + unit(.125, "inches"),
+                 "360"=unit(.5, "npc") + unit(.25, "inches")))
+}
+
+# A = Y;  B = polygon; C = ALL; D = BOTH
+for (theta in seq(0, 360, 45)[-1]) {
+    testY(grobY(polygonGrob(x=unit(.5, "npc") +
+                            unit(c(-.5, 0, .5, 0), "inches"),
+                            y=unit(.5, "npc") +
+                            unit(c(0, -.5, 0, .5), "inches")),
+                theta),
+          switch(as.character(theta),
+                 "45"=,
+                 "135"=unit(.5, "npc") + unit(.25, "inches"),
+                 "90"=unit(.5, "npc") + unit(.5, "inches"),
+                 "180"=,
+                 "360"=unit(.5, "npc"),
+                 "225"=,
+                 "315"=unit(.5, "npc") - unit(.25, "inches"),
+                 "270"=unit(.5, "npc") - unit(.5, "inches")))
+    # NOTE:  for polygons, even if there are multiple polygons,
+    # we still produce edge of hull for ALL points
+    testY(grobY(polygonGrob(x=unit(.5, "npc") +
+                            unit(c(-.5, -.25, 0, -.25,
+                                   0, .25, .5, .25), "inches"),
+                            y=unit(.5, "npc") +
+                            unit(c(-.25, -.5, -.25, 0,
+                                   .25, 0, .25, .5), "inches"),
+                            id=rep(1:2, each=4)),
+                theta),
+          switch(as.character(theta),
+                 "45"=unit(.5, "npc") + unit(.375, "inches"),
+                 "90"=unit(.5, "npc") + unit(.25, "inches"),
+                 "135"=unit(.5, "npc") + unit(.125, "inches"),
+                 "180"=unit(.5, "npc"),
+                 "225"=unit(.5, "npc") - unit(.375, "inches"),
+                 "270"=unit(.5, "npc") - unit(.25, "inches"),
+                 "315"=unit(.5, "npc") - unit(.125, "inches"),
+                 "360"=unit(.5, "npc")))
+}
+
+# A = Width;  B = polygon; C = ALL; D = BOTH
+testWidth(grobWidth(polygonGrob(x=unit(.5, "npc") +
+                            unit(c(-.5, 0, .5, 0), "inches"),
+                            y=unit(.5, "npc") +
+                            unit(c(0, -.5, 0, .5), "inches"))),
+          unit(1, "inches"))
+testWidth(grobWidth(polygonGrob(x=unit(.5, "npc") +
+                            unit(c(-.5, -.25, 0, -.25,
+                                   0, .25, .5, .25), "inches"),
+                            y=unit(.5, "npc") +
+                            unit(c(-.25, -.5, -.25, 0,
+                                   .25, 0, .25, .5), "inches"),
+                            id=rep(1:2, each=4))),
+          unit(1, "inches"))          
+                    
+# A = Height;  B = polygon; C = ALL; D = BOTH
+testHeight(grobHeight(polygonGrob(x=unit(.5, "npc") +
+                            unit(c(-.5, 0, .5, 0), "inches"),
+                            y=unit(.5, "npc") +
+                            unit(c(0, -.5, 0, .5), "inches"))),
+          unit(1, "inches"))
+testHeight(grobHeight(polygonGrob(x=unit(.5, "npc") +
+                            unit(c(-.5, -.25, 0, -.25,
+                                   0, .25, .5, .25), "inches"),
+                            y=unit(.5, "npc") +
+                            unit(c(-.25, -.5, -.25, 0,
+                                   .25, 0, .25, .5), "inches"),
+                            id=rep(1:2, each=4))),
+           unit(1, "inches"))          
+                    
+########
+# TEXT
+########
+# A = X;  B = text; C = ALL; D = BOTH
+str <- "testcase"
+strw <- stringWidth(str)
+strh <- stringHeight(str)
+for (theta in seq(0, 360, 45)[-1]) {
+    testX(grobX(textGrob(str), theta),
+          switch(as.character(theta),
+                 "360"=unit(.5, "npc") + 0.5*strw,
+                 "135"=,
+                 "45"=unit(.5, "npc") + 1/tan(theta/180*pi)*0.5*strh,
+                 "315"=,
+                 "225"=unit(.5, "npc") - 1/tan(theta/180*pi)*0.5*strh,
+                 "180"=unit(.5, "npc") - 0.5*strw,
+                 "90"=,
+                 "270"=unit(.5, "npc")))
+    # Bounding box is 1" by 1"
+    testX(grobX(textGrob(str,
+                         x=unit(.5, "npc") + unit(c(-.5, .5), "inches"),
+                         y=unit(.5, "npc") + unit(c(-.5, .5), "inches"),
+                         hjust=c(0, 1), vjust=c(0, 1)),
+                theta),
+          switch(as.character(theta),
+                 "360"=, "315"=,
+                 "45"=unit(.5, "npc") + unit(.5, "inches"),
+                 "180"=, "225"=,
+                 "135"=unit(.5, "npc") - unit(.5, "inches"),
+                 "90"=,
+                 "270"=unit(.5, "npc")))
+}
+
+# A = Y;  B = text; C = ALL; D = BOTH
+for (theta in seq(0, 360, 45)[-1]) {
+    testY(grobY(textGrob(str), theta),
+          switch(as.character(theta),
+                 "90"=, "135"=,
+                 "45"=unit(.5, "npc") + 0.5*strh,
+                 "270"=, "315"=,
+                 "225"=unit(.5, "npc") - 0.5*strh,
+                 "180"=,
+                 "360"=unit(.5, "npc")))
+    # Bounding box is 1" by 1"
+    testY(grobY(textGrob(str,
+                         x=unit(.5, "npc") + unit(c(-.5, .5), "inches"),
+                         y=unit(.5, "npc") + unit(c(-.5, .5), "inches"),
+                         hjust=c(0, 1), vjust=c(0, 1)),
+                theta),
+          switch(as.character(theta),
+                 "90"=, "135"=,
+                 "45"=unit(.5, "npc") + unit(.5, "inches"),
+                 "270"=, "315"=,
+                 "225"=unit(.5, "npc") - unit(.5, "inches"),
+                 "180"=,
+                 "360"=unit(.5, "npc")))
+}
+
+# A = Width;  B = text; C = ALL; D = BOTH
+testWidth(grobWidth(textGrob(str)),
+          strw)
+testWidth(grobWidth(textGrob(str,
+                             x=unit(.5, "npc") + unit(c(-.5, .5), "inches"),
+                             y=unit(.5, "npc") + unit(c(-.5, .5), "inches"),
+                             hjust=c(0, 1), vjust=c(0, 1))),
+          unit(1, "inches"))          
+                    
+# A = Height;  B = text; C = ALL; D = BOTH
+testHeight(grobHeight(textGrob(str)),
+          strh)
+testHeight(grobHeight(textGrob(str,
+                               x=unit(.5, "npc") + unit(c(-.5, .5), "inches"),
+                               y=unit(.5, "npc") + unit(c(-.5, .5), "inches"),
+                               hjust=c(0, 1), vjust=c(0, 1))),
+           unit(1, "inches"))
+
+# Determining unit lengths
+stopifnot(length(unit.c(unit(1, "npc") + unit(1, "cm"), unit(2, "cm"))) == 2)
+stopifnot(length(unit.c(unit(1, "npc") + unit(1, "cm"), unit(2:4, "cm"))) == 4)
+stopifnot(length(unit.c(unit(1:3, "npc") + unit(1, "cm"), unit(2:4, "cm"))) == 6)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/testls.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/testls.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/tests/testls.R	(revision 2476)
@@ -0,0 +1,158 @@
+library(grid)
+
+# Test hole in DL (deleted grob)
+grid.lines(name="foo")
+grid.lines(x=1:0, name="foo2")
+grid.ls()
+grid.remove("foo")
+grid.ls()
+# New blank page
+grid.newpage()
+
+
+#######
+# GROBS
+#######
+# Plain grob
+grid.ls(grob(name="g1"))
+# gList
+grid.ls(gList(grob(name="gl1"), grob(name="gl2")))
+# gTree
+grid.ls(gTree(children=gList(grob(name="child")),
+              name="parent"))
+grid.ls(gTree(children=gList(grob(name="child1"), grob(name="child1")),
+              name="parent"))
+
+###########
+# VIEWPORTS
+###########
+# Plain viewport
+grid.ls(viewport(name="vp1"),
+        view=TRUE)
+# vpList
+grid.ls(vpList(viewport(name="vpl1")),
+        view=TRUE)
+grid.ls(vpList(viewport(name="vpl1"), viewport(name="vpl2")),
+        view=TRUE)
+grid.ls(vpList(viewport(name="vpl1"), viewport(name="vpl2"),
+               viewport(name="vpl3")),
+        view=TRUE)
+# vpStack
+grid.ls(vpStack(viewport(name="vps1"), viewport(name="vps2")),
+        view=TRUE)
+grid.ls(vpStack(viewport(name="vps1"), viewport(name="vps2"),
+                viewport(name="vps3")),
+        view=TRUE)
+# vpTrees
+grid.ls(vpTree(viewport(name="parentvp"), vpList(viewport(name="childvp"))),
+        view=TRUE)
+grid.ls(vpTree(viewport(name="parentvp"),
+               vpList(viewport(name="cvp1"), viewport(name="cvp2"))),
+        view=TRUE)
+# vpPaths
+grid.ls(vpPath("A"),
+        view=TRUE)
+grid.ls(vpPath("A", "B"),
+        view=TRUE)
+grid.ls(vpPath("A", "B", "C"),
+        view=TRUE)
+
+##########
+# MIXTURES
+##########
+# grob with vp viewport
+g1 <- grob(vp=viewport(name="gvp"), name="g1")
+grid.ls(g1, view=TRUE, full=TRUE)
+grid.ls(g1, view=TRUE, full=TRUE, grob=FALSE)
+# grob with vp vpList
+grid.ls(grob(vp=vpList(viewport(name="vpl")), name="g1"),
+        view=TRUE, full=TRUE)
+grid.ls(grob(vp=vpList(viewport(name="vpl1"), viewport(name="vpl2")),
+             name="g1"),
+        view=TRUE, full=TRUE)
+# grob with vp vpStack
+grid.ls(grob(vp=vpStack(viewport(name="vps1"), viewport(name="vps2")),
+             name="g1"),
+        view=TRUE, full=TRUE)
+grid.ls(grob(vp=vpStack(viewport(name="vps1"), viewport(name="vps2"),
+               viewport(name="vps3")),
+             name="g1"),
+        view=TRUE)
+# grob with vp vpTree
+grid.ls(grob(vp=vpTree(viewport(name="parentvp"),
+               vpList(viewport(name="cvp"))),
+             name="g1"),
+        view=TRUE, full=TRUE)
+grid.ls(grob(vp=vpTree(viewport(name="parentvp"),
+               vpList(viewport(name="cvp1"), viewport(name="cvp2"))),
+             name="g1"),
+        view=TRUE, full=TRUE)
+# gTree with vp viewport
+# and child grob with vp viewport
+grid.ls(gTree(children=gList(grob(vp=viewport(name="childvp"), name="cg1"),
+                grob(name="cg2")),
+              name="parent",
+              vp=viewport(name="parentvp")),
+        view=TRUE)
+# gTree with childrenvp viewport
+grid.ls(gTree(childrenvp=viewport(name="vp"), name="gtree"),
+        view=TRUE, full=TRUE)
+grid.ls(gTree(childrenvp=viewport(name="vp"), name="gtree"),
+        view=TRUE, full=TRUE, grob=FALSE)
+grid.ls(gTree(children=gList(grob(name="child")),
+              name="parent",
+              childrenvp=viewport(name="vp")),
+        view=TRUE, full=TRUE)
+grid.ls(gTree(children=gList(grob(name="child1"), grob(name="child2")),
+              name="parent",
+              childrenvp=viewport(name="vp")),
+        view=TRUE, full=TRUE)
+grid.ls(gTree(children=gList(grob(name="child")),
+              childrenvp=viewport(name="vp"),
+              name="parent"), 
+        view=TRUE, full=TRUE)
+grid.ls(gTree(children=gList(grob(name="child1"), grob(name="child2")),
+              name="parent",
+              childrenvp=viewport(name="vp")),
+        view=TRUE, full=TRUE, grob=FALSE)
+# gTree with childrenvp vpTree
+grid.ls(gTree(childrenvp=vpTree(parent=viewport(name="vp1"),
+                children=vpList(viewport(name="vp2"))),
+              name="gtree"),
+        view=TRUE, full=TRUE)
+grid.ls(gTree(children=gList(grob(name="child")),
+              name="parent",
+              childrenvp=vpTree(parent=viewport(name="vp1"),
+                children=vpList(viewport(name="vp2")))),
+        view=TRUE, full=TRUE)
+# gTree with childrenvp vpTree
+# and child grob with vp vpPath
+# A gTree, called "parent", with childrenvp vpTree (vp2 within vp1)
+# and child grob, called "child", with vp vpPath (down to vp2)
+sampleGTree <- gTree(name="parent",
+                     children=gList(grob(name="child", vp="vp1::vp2")),
+                     childrenvp=vpTree(parent=viewport(name="vp1"),
+                                       children=vpList(viewport(name="vp2"))))
+grid.ls(sampleGTree)
+# Show viewports too
+grid.ls(sampleGTree, view=TRUE)
+# Only show viewports
+grid.ls(sampleGTree, view=TRUE, grob=FALSE)
+# Alternate displays
+# nested listing, custom indent
+grid.ls(sampleGTree, view=TRUE, print=nestedListing, gindent="--")
+# path listing
+grid.ls(sampleGTree, view=TRUE, print=pathListing)
+# path listing, without grobs aligned
+grid.ls(sampleGTree, view=TRUE, print=pathListing, gAlign=FALSE)
+# grob path listing 
+grid.ls(sampleGTree, view=TRUE, print=grobPathListing)
+# path listing, grobs only
+grid.ls(sampleGTree, print=pathListing)
+# path listing, viewports only
+grid.ls(sampleGTree, view=TRUE, grob=FALSE, print=pathListing)
+# raw flat listing
+str(grid.ls(sampleGTree, view=TRUE, print=FALSE))
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/DESCRIPTION	(revision 2476)
@@ -0,0 +1,13 @@
+Package: grid
+Version: 3.3.2
+Priority: base
+Title: The Grid Graphics Package
+Author: Paul Murrell <paul@stat.auckland.ac.nz>
+Maintainer: R Core Team <R-core@r-project.org>
+Description: A rewrite of the graphics layout capabilities, plus some
+  support for interaction.
+Imports: grDevices, utils
+Suggests: lattice
+License: Part of R 3.3.2
+NeedsCompilation: yes
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:33:19 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/html/00Index.html	(revision 2476)
@@ -0,0 +1,533 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: The Grid Graphics Package</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> The Grid Graphics Package
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;grid&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="# "> </a>
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#G">G</a>
+<a href="#H">H</a>
+<a href="#I">I</a>
+<a href="#L">L</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#P">P</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#U">U</a>
+<a href="#V">V</a>
+<a href="#W">W</a>
+<a href="#X">X</a>
+<a href="#Y">Y</a>
+</p>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="grid-package.html">grid-package</a></td>
+<td>The Grid Graphics Package</td></tr>
+</table>
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="absolute.size.html">absolute.size</a></td>
+<td>Absolute Size of a Grob</td></tr>
+<tr><td style="width: 25%;"><a href="grid.add.html">addGrob</a></td>
+<td>Add a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="gEdit.html">applyEdit</a></td>
+<td>Create and Apply Edit Objects</td></tr>
+<tr><td style="width: 25%;"><a href="gEdit.html">applyEdits</a></td>
+<td>Create and Apply Edit Objects</td></tr>
+<tr><td style="width: 25%;"><a href="grid.curve.html">arcCurvature</a></td>
+<td>Draw a Curve Between Locations</td></tr>
+<tr><td style="width: 25%;"><a href="arrow.html">arrow</a></td>
+<td>Describe arrows to add to a line.</td></tr>
+<tr><td style="width: 25%;"><a href="widthDetails.html">ascentDetails</a></td>
+<td>Width and Height of a grid grob</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="grid.bezier.html">bezierGrob</a></td>
+<td>Draw a Bezier Curve</td></tr>
+<tr><td style="width: 25%;"><a href="xsplinePoints.html">bezierPoints</a></td>
+<td>Return the points that would be used to draw an Xspline (or a Bezier curve).</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="calcStringMetric.html">calcStringMetric</a></td>
+<td>Calculate Metric Information for Text</td></tr>
+<tr><td style="width: 25%;"><a href="grid.grob.html">childNames</a></td>
+<td>Create Grid Graphical Objects, aka "Grob"s</td></tr>
+<tr><td style="width: 25%;"><a href="grid.circle.html">circleGrob</a></td>
+<td>Draw a Circle</td></tr>
+<tr><td style="width: 25%;"><a href="grid.clip.html">clipGrob</a></td>
+<td>Set the Clipping Region</td></tr>
+<tr><td style="width: 25%;"><a href="grid.convert.html">convertHeight</a></td>
+<td>Convert Between Different grid Coordinate Systems</td></tr>
+<tr><td style="width: 25%;"><a href="grid.convert.html">convertUnit</a></td>
+<td>Convert Between Different grid Coordinate Systems</td></tr>
+<tr><td style="width: 25%;"><a href="grid.convert.html">convertWidth</a></td>
+<td>Convert Between Different grid Coordinate Systems</td></tr>
+<tr><td style="width: 25%;"><a href="grid.convert.html">convertX</a></td>
+<td>Convert Between Different grid Coordinate Systems</td></tr>
+<tr><td style="width: 25%;"><a href="grid.convert.html">convertY</a></td>
+<td>Convert Between Different grid Coordinate Systems</td></tr>
+<tr><td style="width: 25%;"><a href="current.viewport.html">current.parent</a></td>
+<td>Get the Current Grid Viewport (Tree)</td></tr>
+<tr><td style="width: 25%;"><a href="current.viewport.html">current.rotation</a></td>
+<td>Get the Current Grid Viewport (Tree)</td></tr>
+<tr><td style="width: 25%;"><a href="current.viewport.html">current.transform</a></td>
+<td>Get the Current Grid Viewport (Tree)</td></tr>
+<tr><td style="width: 25%;"><a href="current.viewport.html">current.viewport</a></td>
+<td>Get the Current Grid Viewport (Tree)</td></tr>
+<tr><td style="width: 25%;"><a href="current.viewport.html">current.vpPath</a></td>
+<td>Get the Current Grid Viewport (Tree)</td></tr>
+<tr><td style="width: 25%;"><a href="current.viewport.html">current.vpTree</a></td>
+<td>Get the Current Grid Viewport (Tree)</td></tr>
+<tr><td style="width: 25%;"><a href="grid.curve.html">curveGrob</a></td>
+<td>Draw a Curve Between Locations</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="dataViewport.html">dataViewport</a></td>
+<td>Create a Viewport with Scales based on Data</td></tr>
+<tr><td style="width: 25%;"><a href="grid.delay.html">delayGrob</a></td>
+<td>Encapsulate calculations and generating a grob</td></tr>
+<tr><td style="width: 25%;"><a href="depth.html">depth</a></td>
+<td>Determine the number of levels in an object.</td></tr>
+<tr><td style="width: 25%;"><a href="depth.html">depth.path</a></td>
+<td>Determine the number of levels in an object.</td></tr>
+<tr><td style="width: 25%;"><a href="depth.html">depth.viewport</a></td>
+<td>Determine the number of levels in an object.</td></tr>
+<tr><td style="width: 25%;"><a href="widthDetails.html">descentDetails</a></td>
+<td>Width and Height of a grid grob</td></tr>
+<tr><td style="width: 25%;"><a href="viewports.html">downViewport</a></td>
+<td>Maintaining and Navigating the Grid Viewport Tree</td></tr>
+<tr><td style="width: 25%;"><a href="drawDetails.html">drawDetails</a></td>
+<td>Customising grid Drawing</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="editDetails.html">editDetails</a></td>
+<td>Customising grid Editing</td></tr>
+<tr><td style="width: 25%;"><a href="grid.edit.html">editGrob</a></td>
+<td>Edit the Description of a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.display.list.html">engine.display.list</a></td>
+<td>Control the Grid Display List</td></tr>
+<tr><td style="width: 25%;"><a href="explode.html">explode</a></td>
+<td>Explode a path into its components.</td></tr>
+<tr><td style="width: 25%;"><a href="explode.html">explode.character</a></td>
+<td>Explode a path into its components.</td></tr>
+<tr><td style="width: 25%;"><a href="explode.html">explode.path</a></td>
+<td>Explode a path into its components.</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="grid.force.html">forceGrob</a></td>
+<td>Force a grob into its components</td></tr>
+<tr><td style="width: 25%;"><a href="grid.frame.html">frameGrob</a></td>
+<td>Create a Frame for Packing Objects</td></tr>
+<tr><td style="width: 25%;"><a href="grid.function.html">functionGrob</a></td>
+<td>Draw a curve representing a function</td></tr>
+</table>
+
+<h2><a name="G">-- G --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="gEdit.html">gEdit</a></td>
+<td>Create and Apply Edit Objects</td></tr>
+<tr><td style="width: 25%;"><a href="gEdit.html">gEditList</a></td>
+<td>Create and Apply Edit Objects</td></tr>
+<tr><td style="width: 25%;"><a href="gpar.html">get.gpar</a></td>
+<td>Handling Grid Graphical Parameters</td></tr>
+<tr><td style="width: 25%;"><a href="grid.get.html">getGrob</a></td>
+<td>Get a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="getNames.html">getNames</a></td>
+<td>List the names of grobs on the display list</td></tr>
+<tr><td style="width: 25%;"><a href="grid.grob.html">gList</a></td>
+<td>Create Grid Graphical Objects, aka "Grob"s</td></tr>
+<tr><td style="width: 25%;"><a href="gpar.html">gpar</a></td>
+<td>Handling Grid Graphical Parameters</td></tr>
+<tr><td style="width: 25%;"><a href="gPath.html">gPath</a></td>
+<td>Concatenate Grob Names</td></tr>
+<tr><td style="width: 25%;"><a href="Grid.html">Grid</a></td>
+<td>Grid Graphics</td></tr>
+<tr><td style="width: 25%;"><a href="grid.function.html">grid.abline</a></td>
+<td>Draw a curve representing a function</td></tr>
+<tr><td style="width: 25%;"><a href="grid.add.html">grid.add</a></td>
+<td>Add a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.bezier.html">grid.bezier</a></td>
+<td>Draw a Bezier Curve</td></tr>
+<tr><td style="width: 25%;"><a href="grid.cap.html">grid.cap</a></td>
+<td>Capture a raster image</td></tr>
+<tr><td style="width: 25%;"><a href="grid.circle.html">grid.circle</a></td>
+<td>Draw a Circle</td></tr>
+<tr><td style="width: 25%;"><a href="grid.clip.html">grid.clip</a></td>
+<td>Set the Clipping Region</td></tr>
+<tr><td style="width: 25%;"><a href="grid.copy.html">grid.copy</a></td>
+<td>Make a Copy of a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.curve.html">grid.curve</a></td>
+<td>Draw a Curve Between Locations</td></tr>
+<tr><td style="width: 25%;"><a href="grid.delay.html">grid.delay</a></td>
+<td>Encapsulate calculations and generating a grob</td></tr>
+<tr><td style="width: 25%;"><a href="grid.display.list.html">grid.display.list</a></td>
+<td>Control the Grid Display List</td></tr>
+<tr><td style="width: 25%;"><a href="grid.DLapply.html">grid.DLapply</a></td>
+<td>Modify the Grid Display List</td></tr>
+<tr><td style="width: 25%;"><a href="grid.draw.html">grid.draw</a></td>
+<td>Draw a grid grob</td></tr>
+<tr><td style="width: 25%;"><a href="grid.edit.html">grid.edit</a></td>
+<td>Edit the Description of a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.force.html">grid.force</a></td>
+<td>Force a grob into its components</td></tr>
+<tr><td style="width: 25%;"><a href="grid.force.html">grid.force.default</a></td>
+<td>Force a grob into its components</td></tr>
+<tr><td style="width: 25%;"><a href="grid.force.html">grid.force.gPath</a></td>
+<td>Force a grob into its components</td></tr>
+<tr><td style="width: 25%;"><a href="grid.force.html">grid.force.grob</a></td>
+<td>Force a grob into its components</td></tr>
+<tr><td style="width: 25%;"><a href="grid.frame.html">grid.frame</a></td>
+<td>Create a Frame for Packing Objects</td></tr>
+<tr><td style="width: 25%;"><a href="grid.function.html">grid.function</a></td>
+<td>Draw a curve representing a function</td></tr>
+<tr><td style="width: 25%;"><a href="grid.edit.html">grid.gedit</a></td>
+<td>Edit the Description of a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.get.html">grid.get</a></td>
+<td>Get a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.get.html">grid.gget</a></td>
+<td>Get a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.grab.html">grid.grab</a></td>
+<td>Grab the current grid output</td></tr>
+<tr><td style="width: 25%;"><a href="grid.grab.html">grid.grabExpr</a></td>
+<td>Grab the current grid output</td></tr>
+<tr><td style="width: 25%;"><a href="grid.remove.html">grid.gremove</a></td>
+<td>Remove a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.grep.html">grid.grep</a></td>
+<td>Search for grobs</td></tr>
+<tr><td style="width: 25%;"><a href="grid.grill.html">grid.grill</a></td>
+<td>Draw a Grill</td></tr>
+<tr><td style="width: 25%;"><a href="grid.layout.html">grid.layout</a></td>
+<td>Create a Grid Layout</td></tr>
+<tr><td style="width: 25%;"><a href="legendGrob.html">grid.legend</a></td>
+<td>Constructing a Legend Grob</td></tr>
+<tr><td style="width: 25%;"><a href="grid.move.to.html">grid.line.to</a></td>
+<td>Move or Draw to a Specified Position</td></tr>
+<tr><td style="width: 25%;"><a href="grid.lines.html">grid.lines</a></td>
+<td>Draw Lines in a Grid Viewport</td></tr>
+<tr><td style="width: 25%;"><a href="grid.locator.html">grid.locator</a></td>
+<td>Capture a Mouse Click</td></tr>
+<tr><td style="width: 25%;"><a href="grid.ls.html">grid.ls</a></td>
+<td>List the names of grobs or viewports</td></tr>
+<tr><td style="width: 25%;"><a href="grid.move.to.html">grid.move.to</a></td>
+<td>Move or Draw to a Specified Position</td></tr>
+<tr><td style="width: 25%;"><a href="grid.newpage.html">grid.newpage</a></td>
+<td>Move to a New Page on a Grid Device</td></tr>
+<tr><td style="width: 25%;"><a href="grid.null.html">grid.null</a></td>
+<td>Null Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.pack.html">grid.pack</a></td>
+<td>Pack an Object within a Frame</td></tr>
+<tr><td style="width: 25%;"><a href="grid.path.html">grid.path</a></td>
+<td>Draw a Path</td></tr>
+<tr><td style="width: 25%;"><a href="grid.place.html">grid.place</a></td>
+<td>Place an Object within a Frame</td></tr>
+<tr><td style="width: 25%;"><a href="grid.plot.and.legend.html">grid.plot.and.legend</a></td>
+<td>A Simple Plot and Legend Demo</td></tr>
+<tr><td style="width: 25%;"><a href="grid.points.html">grid.points</a></td>
+<td>Draw Data Symbols</td></tr>
+<tr><td style="width: 25%;"><a href="grid.polygon.html">grid.polygon</a></td>
+<td>Draw a Polygon</td></tr>
+<tr><td style="width: 25%;"><a href="grid.lines.html">grid.polyline</a></td>
+<td>Draw Lines in a Grid Viewport</td></tr>
+<tr><td style="width: 25%;"><a href="grid.pretty.html">grid.pretty</a></td>
+<td>Generate a Sensible Set of Breakpoints</td></tr>
+<tr><td style="width: 25%;"><a href="grid.raster.html">grid.raster</a></td>
+<td>Render a raster object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.record.html">grid.record</a></td>
+<td>Encapsulate calculations and drawing</td></tr>
+<tr><td style="width: 25%;"><a href="grid.rect.html">grid.rect</a></td>
+<td>Draw rectangles</td></tr>
+<tr><td style="width: 25%;"><a href="grid.refresh.html">grid.refresh</a></td>
+<td>Refresh the current grid scene</td></tr>
+<tr><td style="width: 25%;"><a href="grid.remove.html">grid.remove</a></td>
+<td>Remove a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.reorder.html">grid.reorder</a></td>
+<td>Reorder the children of a gTree</td></tr>
+<tr><td style="width: 25%;"><a href="grid.force.html">grid.revert</a></td>
+<td>Force a grob into its components</td></tr>
+<tr><td style="width: 25%;"><a href="grid.force.html">grid.revert.gPath</a></td>
+<td>Force a grob into its components</td></tr>
+<tr><td style="width: 25%;"><a href="grid.force.html">grid.revert.grob</a></td>
+<td>Force a grob into its components</td></tr>
+<tr><td style="width: 25%;"><a href="grid.roundrect.html">grid.roundrect</a></td>
+<td>Draw a rectangle with rounded corners</td></tr>
+<tr><td style="width: 25%;"><a href="grid.segments.html">grid.segments</a></td>
+<td>Draw Line Segments</td></tr>
+<tr><td style="width: 25%;"><a href="grid.set.html">grid.set</a></td>
+<td>Set a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.show.layout.html">grid.show.layout</a></td>
+<td>Draw a Diagram of a Grid Layout</td></tr>
+<tr><td style="width: 25%;"><a href="grid.show.viewport.html">grid.show.viewport</a></td>
+<td>Draw a Diagram of a Grid Viewport</td></tr>
+<tr><td style="width: 25%;"><a href="grid.text.html">grid.text</a></td>
+<td>Draw Text</td></tr>
+<tr><td style="width: 25%;"><a href="grid.xaxis.html">grid.xaxis</a></td>
+<td>Draw an X-Axis</td></tr>
+<tr><td style="width: 25%;"><a href="grid.xspline.html">grid.xspline</a></td>
+<td>Draw an Xspline</td></tr>
+<tr><td style="width: 25%;"><a href="grid.yaxis.html">grid.yaxis</a></td>
+<td>Draw a Y-Axis</td></tr>
+<tr><td style="width: 25%;"><a href="grid.grob.html">grob</a></td>
+<td>Create Grid Graphical Objects, aka "Grob"s</td></tr>
+<tr><td style="width: 25%;"><a href="grobWidth.html">grobAscent</a></td>
+<td>Create a Unit Describing the Width of a Grob</td></tr>
+<tr><td style="width: 25%;"><a href="grobWidth.html">grobDescent</a></td>
+<td>Create a Unit Describing the Width of a Grob</td></tr>
+<tr><td style="width: 25%;"><a href="grobWidth.html">grobHeight</a></td>
+<td>Create a Unit Describing the Width of a Grob</td></tr>
+<tr><td style="width: 25%;"><a href="grobName.html">grobName</a></td>
+<td>Generate a Name for a Grob</td></tr>
+<tr><td style="width: 25%;"><a href="grid.ls.html">grobPathListing</a></td>
+<td>List the names of grobs or viewports</td></tr>
+<tr><td style="width: 25%;"><a href="grid.grob.html">grobTree</a></td>
+<td>Create Grid Graphical Objects, aka "Grob"s</td></tr>
+<tr><td style="width: 25%;"><a href="grobWidth.html">grobWidth</a></td>
+<td>Create a Unit Describing the Width of a Grob</td></tr>
+<tr><td style="width: 25%;"><a href="grobX.html">grobX</a></td>
+<td>Create a Unit Describing a Grob Boundary Location</td></tr>
+<tr><td style="width: 25%;"><a href="grobX.html">grobY</a></td>
+<td>Create a Unit Describing a Grob Boundary Location</td></tr>
+<tr><td style="width: 25%;"><a href="grid.grob.html">gTree</a></td>
+<td>Create Grid Graphical Objects, aka "Grob"s</td></tr>
+</table>
+
+<h2><a name="H">-- H --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="widthDetails.html">heightDetails</a></td>
+<td>Width and Height of a grid grob</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="grid.grob.html">is.grob</a></td>
+<td>Create Grid Graphical Objects, aka "Grob"s</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="legendGrob.html">legendGrob</a></td>
+<td>Constructing a Legend Grob</td></tr>
+<tr><td style="width: 25%;"><a href="grid.lines.html">linesGrob</a></td>
+<td>Draw Lines in a Grid Viewport</td></tr>
+<tr><td style="width: 25%;"><a href="grid.move.to.html">lineToGrob</a></td>
+<td>Move or Draw to a Specified Position</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="makeContent.html">makeContent</a></td>
+<td>Customised grid Grobs</td></tr>
+<tr><td style="width: 25%;"><a href="makeContent.html">makeContext</a></td>
+<td>Customised grid Grobs</td></tr>
+<tr><td style="width: 25%;"><a href="grid.move.to.html">moveToGrob</a></td>
+<td>Move or Draw to a Specified Position</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="grid.ls.html">nestedListing</a></td>
+<td>List the names of grobs or viewports</td></tr>
+<tr><td style="width: 25%;"><a href="grid.null.html">nullGrob</a></td>
+<td>Null Graphical Object</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="grid.pack.html">packGrob</a></td>
+<td>Pack an Object within a Frame</td></tr>
+<tr><td style="width: 25%;"><a href="grid.path.html">pathGrob</a></td>
+<td>Draw a Path</td></tr>
+<tr><td style="width: 25%;"><a href="grid.ls.html">pathListing</a></td>
+<td>List the names of grobs or viewports</td></tr>
+<tr><td style="width: 25%;"><a href="grid.place.html">placeGrob</a></td>
+<td>Place an Object within a Frame</td></tr>
+<tr><td style="width: 25%;"><a href="plotViewport.html">plotViewport</a></td>
+<td>Create a Viewport with a Standard Plot Layout</td></tr>
+<tr><td style="width: 25%;"><a href="grid.points.html">pointsGrob</a></td>
+<td>Draw Data Symbols</td></tr>
+<tr><td style="width: 25%;"><a href="grid.polygon.html">polygonGrob</a></td>
+<td>Draw a Polygon</td></tr>
+<tr><td style="width: 25%;"><a href="grid.lines.html">polylineGrob</a></td>
+<td>Draw Lines in a Grid Viewport</td></tr>
+<tr><td style="width: 25%;"><a href="viewports.html">popViewport</a></td>
+<td>Maintaining and Navigating the Grid Viewport Tree</td></tr>
+<tr><td style="width: 25%;"><a href="drawDetails.html">postDrawDetails</a></td>
+<td>Customising grid Drawing</td></tr>
+<tr><td style="width: 25%;"><a href="drawDetails.html">preDrawDetails</a></td>
+<td>Customising grid Drawing</td></tr>
+<tr><td style="width: 25%;"><a href="viewports.html">pushViewport</a></td>
+<td>Maintaining and Navigating the Grid Viewport Tree</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="grid.raster.html">rasterGrob</a></td>
+<td>Render a raster object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.record.html">recordGrob</a></td>
+<td>Encapsulate calculations and drawing</td></tr>
+<tr><td style="width: 25%;"><a href="grid.rect.html">rectGrob</a></td>
+<td>Draw rectangles</td></tr>
+<tr><td style="width: 25%;"><a href="grid.remove.html">removeGrob</a></td>
+<td>Remove a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.reorder.html">reorderGrob</a></td>
+<td>Reorder the children of a gTree</td></tr>
+<tr><td style="width: 25%;"><a href="valid.just.html">resolveHJust</a></td>
+<td>Validate a Justification</td></tr>
+<tr><td style="width: 25%;"><a href="resolveRasterSize.html">resolveRasterSize</a></td>
+<td>Utility function to resolve the size of a raster grob</td></tr>
+<tr><td style="width: 25%;"><a href="valid.just.html">resolveVJust</a></td>
+<td>Validate a Justification</td></tr>
+<tr><td style="width: 25%;"><a href="grid.roundrect.html">roundrect</a></td>
+<td>Draw a rectangle with rounded corners</td></tr>
+<tr><td style="width: 25%;"><a href="grid.roundrect.html">roundrectGrob</a></td>
+<td>Draw a rectangle with rounded corners</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="viewports.html">seekViewport</a></td>
+<td>Maintaining and Navigating the Grid Viewport Tree</td></tr>
+<tr><td style="width: 25%;"><a href="grid.segments.html">segmentsGrob</a></td>
+<td>Draw Line Segments</td></tr>
+<tr><td style="width: 25%;"><a href="grid.add.html">setChildren</a></td>
+<td>Add a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="grid.set.html">setGrob</a></td>
+<td>Set a Grid Graphical Object</td></tr>
+<tr><td style="width: 25%;"><a href="showGrob.html">showGrob</a></td>
+<td>Label grid grobs.</td></tr>
+<tr><td style="width: 25%;"><a href="showViewport.html">showViewport</a></td>
+<td>Display grid viewports.</td></tr>
+<tr><td style="width: 25%;"><a href="stringWidth.html">stringAscent</a></td>
+<td>Create a Unit Describing the Width and Height of a String or Math Expression</td></tr>
+<tr><td style="width: 25%;"><a href="stringWidth.html">stringDescent</a></td>
+<td>Create a Unit Describing the Width and Height of a String or Math Expression</td></tr>
+<tr><td style="width: 25%;"><a href="stringWidth.html">stringHeight</a></td>
+<td>Create a Unit Describing the Width and Height of a String or Math Expression</td></tr>
+<tr><td style="width: 25%;"><a href="stringWidth.html">stringWidth</a></td>
+<td>Create a Unit Describing the Width and Height of a String or Math Expression</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="grid.text.html">textGrob</a></td>
+<td>Draw Text</td></tr>
+</table>
+
+<h2><a name="U">-- U --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="unit.html">unit</a></td>
+<td>Function to Create a Unit Object</td></tr>
+<tr><td style="width: 25%;"><a href="unit.c.html">unit.c</a></td>
+<td>Combine Unit Objects</td></tr>
+<tr><td style="width: 25%;"><a href="unit.length.html">unit.length</a></td>
+<td>Length of a Unit Object</td></tr>
+<tr><td style="width: 25%;"><a href="unit.pmin.html">unit.pmax</a></td>
+<td>Parallel Unit Minima and Maxima</td></tr>
+<tr><td style="width: 25%;"><a href="unit.pmin.html">unit.pmin</a></td>
+<td>Parallel Unit Minima and Maxima</td></tr>
+<tr><td style="width: 25%;"><a href="unit.rep.html">unit.rep</a></td>
+<td>Replicate Elements of Unit Objects</td></tr>
+<tr><td style="width: 25%;"><a href="viewports.html">upViewport</a></td>
+<td>Maintaining and Navigating the Grid Viewport Tree</td></tr>
+</table>
+
+<h2><a name="V">-- V --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="valid.just.html">valid.just</a></td>
+<td>Validate a Justification</td></tr>
+<tr><td style="width: 25%;"><a href="validDetails.html">validDetails</a></td>
+<td>Customising grid grob Validation</td></tr>
+<tr><td style="width: 25%;"><a href="viewport.html">viewport</a></td>
+<td>Create a Grid Viewport</td></tr>
+<tr><td style="width: 25%;"><a href="viewport.html">vpList</a></td>
+<td>Create a Grid Viewport</td></tr>
+<tr><td style="width: 25%;"><a href="vpPath.html">vpPath</a></td>
+<td>Concatenate Viewport Names</td></tr>
+<tr><td style="width: 25%;"><a href="viewport.html">vpStack</a></td>
+<td>Create a Grid Viewport</td></tr>
+<tr><td style="width: 25%;"><a href="viewport.html">vpTree</a></td>
+<td>Create a Grid Viewport</td></tr>
+</table>
+
+<h2><a name="W">-- W --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="widthDetails.html">widthDetails</a></td>
+<td>Width and Height of a grid grob</td></tr>
+</table>
+
+<h2><a name="X">-- X --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="grid.xaxis.html">xaxisGrob</a></td>
+<td>Draw an X-Axis</td></tr>
+<tr><td style="width: 25%;"><a href="xDetails.html">xDetails</a></td>
+<td>Boundary of a grid grob</td></tr>
+<tr><td style="width: 25%;"><a href="grid.xspline.html">xsplineGrob</a></td>
+<td>Draw an Xspline</td></tr>
+<tr><td style="width: 25%;"><a href="xsplinePoints.html">xsplinePoints</a></td>
+<td>Return the points that would be used to draw an Xspline (or a Bezier curve).</td></tr>
+</table>
+
+<h2><a name="Y">-- Y --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="grid.yaxis.html">yaxisGrob</a></td>
+<td>Draw a Y-Axis</td></tr>
+<tr><td style="width: 25%;"><a href="xDetails.html">yDetails</a></td>
+<td>Boundary of a grid grob</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grobs.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grobs.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grobs.Rnw	(revision 2476)
@@ -0,0 +1,487 @@
+% File src/library/grid/vignettes/grobs.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2001-13 Paul Murrell and the R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+
+\usepackage{Rd}
+
+% \VignetteIndexEntry{Working with grid grobs}
+% \VignettePackage{grid}
+
+\newcommand{\grid}{\pkg{grid}}
+\newcommand{\grob}{\code{grob}}
+\newcommand{\gTree}{\code{gTree}}
+\newcommand{\gPath}{\code{gPath}}
+\newcommand{\lattice}{\CRANpkg{lattice}}
+
+\setlength{\parindent}{0in}
+\setlength{\parskip}{.1in}
+\setlength{\textwidth}{140mm}
+\setlength{\oddsidemargin}{10mm}
+
+\title{Modifying \grid{} \code{grob}s}
+\author{Paul Murrell}
+
+\begin{document}
+\maketitle
+
+<<echo=FALSE, results=hide>>=
+library(grDevices)
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+@
+There is a distinction between \grob{}s which are just stored
+in user-level \R{} objects and \grob{}s which represent
+drawn output (i.e., \grob{}s on the \grid{} display list).
+There is a naming convention that \code{grid.*()}  functions are
+(mainly) used for their side-effect of producing output or
+modifying existing output (they create/affect \grob{}s on the display list).
+Functions of the form \code{*Grob()} are used for their return value;
+the \grob{} that they create/modify.
+For example, the following creates a \grob{} and then modifies it, but
+performs absolutely no drawing;  this is purely manipulating a
+description of a graphical object.
+
+<<>>=
+gl <- linesGrob()
+gl <- editGrob(gl, gp = gpar(col = "green"))
+@
+
+The next example produces output.  A \grob{} is returned,
+but that \grob{} is just a description of the output that was drawn
+and has no direct link to the output.  It is possible to access the
+grob representing the output by
+using the \grob{}'s \code{name}.  In order to access a \grob{}
+which represents drawn output (i.e., a \grob{} on the display list),
+you must specify a \gPath{}.  The \gPath{} should be created using the
+\code{gPath()} function for writing scripts, but in interactive use, it
+is possible to specify the \gPath{} directly as a string.  The code below
+shows both approaches.
+
+<<results=hide>>=
+grid.newpage()
+grid.lines(name = "lines")
+grid.edit(gPath("lines"), gp = gpar(col = "pink"))
+grid.edit("lines", gp = gpar(col = "red"))
+@
+
+Complex graphical objects are provided by the \gTree{} class.  A
+\gTree{} is a \grob{} which may have other \grob{}s as children.  The
+\code{xaxis} and \code{yaxis} \grob{}s provided by \grid{} are
+examples of \gTree{}s; the children of an axis include a lines \grob{}
+for the tick-marks and a text \grob{} for the tick-mark labels.  The
+function \code{childNames()} can be used to list the names of the
+children of a \gTree{}.  When dealing with these hierarchical objects,
+more complex \gPath{}s can be used to access children of a \gTree{}.
+In the following example, an x-axis is drawn, then the xaxis itself is
+edited to modify the locations of the tick-marks, then the xaxis's
+text child is edited to modify the location of the labels on the
+tick-marks.
+
+<<results=hide>>=
+grid.newpage()
+pushViewport(viewport(w = .5, h = .5))
+grid.rect(gp = gpar(col = "grey"))
+grid.xaxis(name = "myxaxis")
+grid.edit("myxaxis", at = 1:4/5)
+grid.edit(gPath("myxaxis", "labels"), y = unit(-1, "lines"))
+
+@
+
+This next example extends the idea a step further to edit the child of
+a child of a \gTree{}.  It also shows the use of the \gTree{} function
+to construct a simple \gTree{} (this is just creating an instance of
+the \gTree{} class -- it is also possible to extend the \gTree{} class
+in order to provide specialised behaviour for drawing and other
+things; more on this later).  Finally, the example demonstrates how
+\gPath{}s of depth greater than 1 can be specified directly as a
+string.
+
+<<results=hide>>=
+grid.newpage()
+pushViewport(viewport(w = .5, h = .5))
+myplot <-
+    gTree(name = "myplot",
+          children = gList(rectGrob(name = "box", gp = gpar(col = "grey")),
+                           xaxisGrob(name = "xaxis")))
+grid.draw(myplot)
+grid.edit("myplot::xaxis", at = 1:10/11)
+grid.edit("myplot::xaxis::labels", label = round(1:10/11, 2))
+grid.edit("myplot::xaxis::labels", y = unit(-1, "lines"))
+@
+\code{"grobwidth"} units require a \grob{} to give the width of.
+There are two ways to specify the \grob{}.  The following example
+shows the most obvious method of simply supplying a \grob{}.  Notice
+that if you modify \code{gt} it will have no effect on the width of
+the drawn rectangle.
+
+<<results=hide>>=
+grid.newpage()
+gt <- grid.text("Hi there")
+grid.rect(width = unit(1, "grobwidth", gt))
+@
+In order to allow a \code{"grobwidth"} unit to track changes in the
+\grob{}, it is possible to specify a \gPath{} rather than a \grob{} as
+the data for a \code{"grobwidth"} unit.  The following example
+modifies the previous example to use a \gPath{}.  Now, the width of
+the rectangle changes when the width of the underlying \grob{}
+changes.
+
+<<results=hide>>=
+grid.newpage()
+gt <- grid.text("Hi there", name = "sometext")
+grid.rect(width = unit(1, "grobwidth", "sometext"))
+grid.edit("sometext", label = "Something different")
+@
+
+One issue in the evaluation of \code{"grobwidth"} units involves
+establishing the correct ``context'' for a \grob{} when determining its width
+(if a \grob{} has a viewport in its \code{vp} slot then that viewport gets
+pushed before the \grob{} is drawn;  that viewport should also be pushed
+when determining the width
+of the \grob{}).
+To achieve this there are
+\code{preDrawDetails()},  \code{drawDetails()}, and \code{postDrawDetails()}
+generic functions.
+(suggestions for better names welcome!).  The idea is that
+pushing and popping of viewports should occur in the \code{pre} and
+\code{post} generics, and any actual drawing happens in the main
+\code{drawDetails()} generic.  This allows the code that calculates a
+\grob{} width to call the \code{preDrawDetails()} in order to establish
+the context in which the \grob{} would be drawn before calculating its
+width.  The following example shows a test case;  a \grob{} is created
+(extending to a new class to allow specific methods to be written),
+and methods are provided which establish a particular context
+for drawing the \grob{}.  These methods are used both in the drawing
+of the \grob{} and in the calculation of the \grob{}'s width (when
+drawing a bounding rectangle).
+
+<<results=hide>>=
+grid.newpage()
+mygrob <- grob(name = "mygrob", cl = "mygrob")
+preDrawDetails.mygrob <- function(x)
+    pushViewport(viewport(gp = gpar(fontsize = 20)))
+
+drawDetails.mygrob <- function(x, recording = TRUE)
+    grid.draw(textGrob("hi there"), recording = FALSE)
+
+postDrawDetails.mygrob <- function(x) popViewport()
+
+widthDetails.mygrob <- function(x) unit(1, "strwidth", "hi there")
+
+grid.draw(mygrob)
+grid.rect(width = unit(1, "grobwidth", mygrob))
+@
+
+This next example shows a slightly different test case where the
+standard \code{preDrawDetails()} and \code{postDrawDetails()} methods
+are used, but the \grob{} does have a \code{vp} slot so these methods
+do something.  Another interesting feature of this example is the
+slightly more complex \gTree{} that is created.  The \gTree{} has a
+\code{childrenvp} specified.  When the \gTree{} is drawn, this
+viewport is pushed and then ``up''ed before the children of the
+\gTree{} are drawn.  This means that the children of the \gTree{} can
+specify a \code{vpPath} to the viewport they should be in.  This
+allows the parent \gTree{} to create a suite of viewports and then
+children of the \gTree{} select which one they want -- this can be
+more efficient than having each child push and pop the viewports it
+needs, especially if several children are drawn within the same
+viewport.  Another, more realistic example of this is given later.
+
+<<results=hide>>=
+grid.newpage()
+mygtree <- gTree(name = "mygrob",
+                 childrenvp = viewport(name = "labelvp",
+                                       gp = gpar(fontsize = 20)),
+                 children = gList(textGrob("hi there", name = "label",
+                   vp = "labelvp")),
+                 cl = "mygtree")
+widthDetails.mygtree <- function(x)
+    unit(1, "grobwidth", getGrob(x, "label"))
+
+grid.draw(mygtree)
+grid.rect(width = unit(1, "grobwidth", mygtree))
+@
+
+Constructing a description of a \code{frame} \grob{} must be
+done via \code{packGrob()} and \code{placeGrob()}.  The following example
+shows the construction of a simple frame consisting of two
+equal-size columns.
+
+<<results = hide>>=
+grid.newpage()
+fg <- frameGrob(layout = grid.layout(1, 2))
+fg <- placeGrob(fg, textGrob("Hi there"), col = 1)
+fg <- placeGrob(fg, rectGrob(), col = 2)
+grid.draw(fg)
+@
+
+This next example constructs a slightly fancier frame using packing.
+
+<<results=hide>>=
+grid.newpage()
+pushViewport(viewport(layout = grid.layout(2, 2)))
+drawIt <- function(row, col) {
+    pushViewport(viewport(layout.pos.col = col, layout.pos.row = row))
+    grid.rect(gp = gpar(col = "grey"))
+    grid.draw(fg)
+    upViewport()
+}
+fg <- frameGrob()
+fg <- packGrob(fg, textGrob("Hi there"))
+fg <- placeGrob(fg, rectGrob())
+drawIt(1, 1)
+fg <- packGrob(fg, textGrob("Hello again"), side = "right")
+drawIt(1, 2)
+fg <- packGrob(fg, rectGrob(), side = "right", width = unit(1, "null"))
+drawIt(2, 2)
+@
+
+In order to allow frames to update when the objects packed within them
+are modified, there is a \code{dynamic} argument to \code{packGrob()}
+(and \code{grid.pack()}).  The following extends the previous example
+to show how this might be used.  Another feature of this example is
+the demonstration of ``non-strict'' searching that occurs in the
+\code{grid.edit()} call; the \grob{} called \code{"midtext"} is not at
+the top-level, but is still found.  Something like
+\code{grid.get("midtext", strict = TRUE)} would fail.
+
+<<results=hide>>=
+grid.newpage()
+fg <- frameGrob()
+fg <- packGrob(fg, textGrob("Hi there"))
+fg <- placeGrob(fg, rectGrob())
+fg <- packGrob(fg, textGrob("Hello again", name = "midtext"),
+               side = "right", dynamic = TRUE)
+fg <- packGrob(fg, rectGrob(), side = "right", width = unit(1, "null"))
+grid.draw(fg)
+grid.edit("midtext", label = "something much longer")
+@
+
+There have been a few examples already which have involved creating a
+\gTree{}.  This next example explicitly demonstrates this technique.
+A \gTree{} is created with two important components.  The
+\code{childrenvp} is a \code{vpTree} consisting of a
+\code{"plotRegion"} viewport to provide margins around a plot and a
+\code{"dataRegion"} viewport to provide x- and y-scales.  The
+\code{"dataRegion"} gets pushed within the \code{"plotRegion"} and
+both are pushed and then ``up''ed before the children are drawn.  The
+\code{children} of the \gTree{} are an \code{xaxis} and a \code{yaxis}
+both drawn within the \code{"dataRegion"}, and a \code{rect} drawn
+around the border of the \code{"plotRegion"}.  A further feature of
+this example is the use of the \code{addGrob()} and
+\code{removeGrob()} functions to modify the \gTree{}.  The first
+modification involves adding a new child to the \gTree{} which is a
+set of points drawn within the \code{"dataRegion"}.  The second
+modification involves adding another set of points with a different
+symbol (NOTE that this second set of points is given a name so that it
+is easy to identify this set amongst the children of the \gTree{}).
+The final modification is to remove the second set of points from the
+\gTree{}.
+
+<<results=hide>>=
+grid.newpage()
+pushViewport(viewport(layout = grid.layout(2, 2)))
+drawIt <- function(row, col) {
+    pushViewport(viewport(layout.pos.col = col, layout.pos.row = row))
+    grid.rect(gp = gpar(col = "grey"))
+    grid.draw(gplot)
+    upViewport()
+}
+gplot <- gTree(x = NULL, y = NULL,
+               childrenvp = vpTree(
+                 plotViewport(c(5, 4, 4, 2), name = "plotRegion"),
+                 vpList(viewport(name = "dataRegion"))),
+               children = gList(
+                 xaxisGrob(vp = "plotRegion::dataRegion"),
+                 yaxisGrob(vp = "plotRegion::dataRegion"),
+                 rectGrob(vp = "plotRegion")))
+drawIt(1, 1)
+gplot <- addGrob(gplot, pointsGrob(vp = "plotRegion::dataRegion"))
+drawIt(1, 2)
+gplot <- addGrob(gplot, pointsGrob(name = "data1", pch = 2,
+                                   vp = "plotRegion::dataRegion"))
+drawIt(2, 1)
+gplot <- removeGrob(gplot, "data1")
+drawIt(2, 2)
+@
+
+This next example provides a simple demonstration of saving and
+loading \grid{} \grob{}s.  It is also a nice demonstration that
+\grob{}s copy like normal \R{} objects.
+
+<<results=hide>>=
+gplot <- gTree(x = NULL, y = NULL,
+               childrenvp = vpTree(
+                 plotViewport(c(5, 4, 4, 2), name = "plotRegion"),
+                   vpList(viewport(name = "dataRegion"))),
+               children = gList(
+                 xaxisGrob(vp = "plotRegion::dataRegion"),
+                 yaxisGrob(vp = "plotRegion::dataRegion"),
+                 rectGrob(vp = "plotRegion")))
+save(gplot, file = "gplot1")
+gplot <- addGrob(gplot, pointsGrob(vp = "plotRegion::dataRegion"))
+save(gplot, file = "gplot2")
+grid.newpage()
+pushViewport(viewport(layout = grid.layout(1, 2)))
+pushViewport(viewport(layout.pos.col = 1))
+load("gplot1")
+grid.draw(gplot)
+popViewport()
+pushViewport(viewport(layout.pos.col = 2))
+load("gplot2")
+grid.draw(gplot)
+popViewport()
+@
+
+This next example just demonstrates that it is possible to use a
+\gPath{} to access the children of a \gTree{} when editing.  This is
+the \code{editGrob()} equivalent of an earlier example that used
+\code{grid.edit()}.  One useful application of this API is the ability
+to modify the appearance of quite precise elements of a large, complex
+graphical object by editing the \code{gp} slot of a child (of a child
+\ldots{}) of a \gTree{}.
+
+<<results = hide>>=
+myplot <- gTree(name = "myplot",
+                children = gList(
+                  rectGrob(name = "box", gp = gpar(col = "grey")),
+                  xaxisGrob(name = "xaxis")))
+myplot <- editGrob(myplot, gPath = "xaxis", at = 1:10/11)
+myplot <- editGrob(myplot, gPath = "xaxis::labels", label = round(1:10/11, 2))
+myplot <- editGrob(myplot, gPath = "xaxis::labels", y = unit(-1, "lines"))
+grid.newpage()
+pushViewport(viewport(w = .5, h = .5))
+grid.draw(myplot)
+
+@
+The following example demonstrates
+the use of the \code{getGrob()} and \code{grid.get()} (along with
+\gPath{}s) to access \grob{}s.
+
+<<results = hide>>=
+myplot <- gTree(name = "myplot",
+                children = gList(
+                  rectGrob(name = "box", gp = gpar(col = "grey")),
+                  xaxisGrob(name = "xaxis")))
+getGrob(myplot, "xaxis")
+myplot <- editGrob(myplot, gPath="xaxis", at=1:10/11)
+getGrob(myplot, "xaxis::labels")
+grid.newpage()
+pushViewport(viewport(w=.5, h=.5))
+grid.draw(myplot)
+grid.get("myplot")
+grid.get("myplot::xaxis")
+grid.get("myplot::xaxis::labels")
+@
+
+There is also an API for (re)setting children of a \gTree{}
+or any drawn \grob{}.  This is not intended for general user use,
+but provides a simple way for developers to perform modifications
+to the structure of a \gTree{} by doing something like \ldots{}
+
+\begin{verbatim}
+grob <- getGrob(<spec>)
+<modify grob>
+setGrob(<spec>, grob)
+\end{verbatim}
+
+This approach is used in the implementation of packing and placing grobs.
+The following example shows some simple usage of the
+\code{setGrob()} and \code{grid.set()} functions to replace
+children of a \gTree{} with different \grob{}s.  NOTE that currently
+such replacement can only occur if the name of the new \grob{}
+is the same as the name of the old \grob{}.
+
+<<results=hide>>=
+myplot <- gTree(name = "myplot",
+                children = gList(rectGrob(name = "box", gp = gpar(col = "grey")),
+                  xaxisGrob(name = "xaxis")))
+myplot <- setGrob(myplot, "xaxis", rectGrob(name = "xaxis"))
+grid.newpage()
+pushViewport(viewport(w = .5, h = .5))
+grid.draw(myplot)
+grid.set("myplot::xaxis", xaxisGrob(name = "xaxis", at = 1:3/4))
+grid.set("myplot::xaxis::labels",
+         textGrob(name = "labels", x = unit(1:3/4, "native"),
+                  y = unit(-1, "lines"), label = letters[1:3]))
+myplot <- setGrob(grid.get("myplot"), "xaxis::labels",
+                  circleGrob(name = "labels"))
+grid.newpage()
+pushViewport(viewport(w = .5, h = .5))
+grid.draw(myplot)
+@
+
+This next example just shows more complex use of the add/remove
+facilities for modifying \grob{}s.  Again, \code{addGrob()} and
+\code{removeGrob()} are for constructing descriptions of graphical
+objects and \code{grid.add()} and \code{grid.remove()} are for
+modifying drawn output.  Of particular note are the last two lines
+involving \code{grid.remove()}.  The first point is that there are
+multiple \grob{}s on the display list with the same name.  The example
+only affects the first one it finds; this could easily be extended to
+affect the display list ``globally'' (for children of \gTree{}s, there
+cannot be multiple children with the same name so the issue does not
+arise).  The last line is interesting because it actually erases the
+\grob{} named \code{"plot1"} from the display list altogether (well,
+the first instance on the display list of a \grob{} called
+\code{"plot1"} anyway).
+
+<<results=hide>>=
+drawIt <- function(row, col) {
+  pushViewport(viewport(layout.pos.col = col, layout.pos.row = row))
+  grid.rect(gp = gpar(col = "grey"))
+  grid.draw(gplot)
+  upViewport()
+}
+gplot <- gTree(name = "plot1",
+               childrenvp = vpTree(
+                 plotViewport(c(5, 4, 4, 2), name = "plotRegion"),
+                 vpList(viewport(name = "dataRegion"))),
+               children = gList(
+                 xaxisGrob(name = "xaxis", vp = "plotRegion::dataRegion"),
+                 yaxisGrob(name = "yaxis", vp = "plotRegion::dataRegion"),
+                 rectGrob(name = "box", vp = "plotRegion")))
+grid.newpage()
+pushViewport(viewport(layout = grid.layout(2, 2)))
+drawIt(1, 1)
+grid.add("plot1", pointsGrob(0.5, 0.5, name = "data1",
+                             vp = "plotRegion::dataRegion"))
+grid.add("plot1::xaxis",
+         textGrob("X Axis", y = unit(-2, "lines"), name = "xlab"))
+grid.edit("plot1::xaxis::xlab", y = unit(-3, "lines"))
+gplot <- grid.get("plot1")
+gplot <- addGrob(gplot, gPath = "yaxis",
+                 textGrob("Y Axis", x = unit(-3, "lines"), rot = 90,
+                          name = "ylab"))
+drawIt(1, 2)
+gplot <- removeGrob(gplot, "xaxis::xlab")
+drawIt(2, 1)
+grid.remove("plot1::data1")
+grid.remove("plot1")
+@
+
+The next example is just a \code{grid.place()} and \code{grid.pack()}
+equivalent of an earlier example involving
+\code{placeGrob()} and \code{packGrob()}.  The interesting feature is
+that each action is reflected in the output as it occurs.
+
+<<results=hide>>=
+grid.newpage()
+grid.frame(name = "myframe", layout = grid.layout(1, 2))
+grid.place("myframe", textGrob("Hi there"), col = 1)
+grid.place("myframe", rectGrob(), col = 2)
+grid.newpage()
+grid.frame(name = "frame2")
+grid.pack("frame2", textGrob("Hi there"))
+grid.place("frame2", rectGrob())
+grid.pack("frame2", textGrob("Hello again"), side = "right")
+grid.pack("frame2", rectGrob(), side = "right", width = unit(1, "null"))
+@
+\end{document}
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/interactive.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/interactive.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/interactive.Rnw	(revision 2476)
@@ -0,0 +1,137 @@
+% File src/library/grid/vignettes/interactive.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2001-13 Paul Murrell and the R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+%\VignetteIndexEntry{Editing grid Graphics}
+%\VignettePackage{grid}
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\pkg}[1]{{\normalfont\fontseries{b}\selectfont #1}}
+\newcommand{\grid}{\pkg{grid}}
+\newcommand{\R}{{\sffamily R}}
+\setlength{\parindent}{0in}
+\setlength{\parskip}{.1in}
+\setlength{\textwidth}{140mm}
+\setlength{\oddsidemargin}{10mm}
+\title{An Example of Interactive Graphics Editing in \grid}
+\author{Paul Murrell}
+
+\begin{document}
+\maketitle
+
+<<echo=FALSE, results=hide>>=
+library(grDevices)
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+@
+First of all, we create an x-axis and draw it on the device.
+It is very important that we specify a \code{name} for the object
+so that we can refer to it later.
+
+<<fig1, results=hide, fig=TRUE, width=6, height=2, include=FALSE>>=
+grid.xaxis(at = 1:4/5, vp = viewport(w = .5, h = 0.01), name = "gxa")
+@
+\begin{center}
+{
+\includegraphics[width=3in, height=1in]{interactive-fig1}
+}
+\end{center}
+@
+
+Now we edit the axis, changing the colour of the entire axis to red.
+Notice that we refer to the x-axis by its name.
+
+<<edit1, eval=FALSE>>=
+grid.edit("gxa", gp = gpar(col = "red"))
+<<fig2, echo=FALSE, results=hide, fig=TRUE, width=6, height=2, include=FALSE>>=
+gxa <- xaxisGrob(at = 1:4/5, vp = viewport(w = .5, h = .01))
+gxa <- editGrob(gxa, gp = gpar(col = "red"))
+grid.draw(gxa)
+@
+\begin{center}
+{
+\includegraphics[width=3in, height=1in]{interactive-fig2}
+}
+\end{center}
+
+@
+
+Now we change just the labels of the x-axis to green.  We use the
+\code{gPath()} function to concatenate the grob names (we could have used
+\code{"gxa::labels"} here, but \code{gPath()} is recommended for
+writing code that will be reused).
+
+<<edit2, eval=FALSE>>=
+grid.edit(gPath("gxa", "labels"), gp = gpar(col = "green"))
+<<fig3, echo=FALSE, results=hide, fig=TRUE, width=6, height=2, include=FALSE>>=
+gxa <- xaxisGrob(at = 1:4/5, vp = viewport(w = .5, h = .01))
+gxa <- editGrob(gxa, gp = gpar(col = "red"))
+gxa <- editGrob(gxa, gPath = "labels", gp = gpar(col = "green"))
+grid.draw(gxa)
+@
+\begin{center}
+{
+\includegraphics[width=3in, height=1in]{interactive-fig3}
+}
+\end{center}
+@
+
+It is also possible to change the number of tick marks.
+Notice that the labels all change back to red;  this happens
+because new labels are created by the axis and these ``inherit''
+the colour of the axis by default.  In other words, the
+colour specification of the old labels was specific to the old labels
+and was discarded when the old labels were discarded.
+
+<<edit3, eval=FALSE>>=
+grid.edit("gxa", at = c(0.0, 0.5, 1.0))
+<<fig4, echo=FALSE, results=hide, fig=TRUE, width=6, height=2, include=FALSE>>=
+gxa <- xaxisGrob(at = 1:4/5, vp = viewport(w = .5, h = .01))
+gxa <- editGrob(gxa, gp = gpar(col = "red"))
+gxa <- editGrob(gxa, gPath = "labels", gp = gpar(col = "green"))
+gxa <- editGrob(gxa, at = c(0.0, 0.5, 1.0))
+grid.draw(gxa)
+@
+\begin{center}
+{
+\includegraphics[width=3in, height=1in]{interactive-fig4}
+}
+\end{center}
+@
+
+Finally, we change the labels back to black and rotate them all $30\deg$.
+
+<<edit4, eval=FALSE>>=
+grid.edit("gxa::labels", gp = gpar(col = "black"), rot = 30)
+<<fig5, echo=FALSE, results=hide, fig=TRUE, width=6, height=2, include=FALSE>>=
+gxa <- xaxisGrob(at = 1:4/5, vp = viewport(w = .5, h = .01))
+gxa <- editGrob(gxa, gp = gpar(col = "red"))
+gxa <- editGrob(gxa, gPath = "labels", gp = gpar(col = "green"))
+gxa <- editGrob(gxa, at = c(0.0, 0.5, 1.0))
+gxa <- editGrob(gxa, gPath = "labels", gp = gpar(col = "black"), rot = 30)
+grid.draw(gxa)
+@
+\begin{center}
+{
+\includegraphics[width=3in, height=1in]{interactive-fig5}
+}
+\end{center}
+@
+
+The above examples describe how to perform editing on a grid object
+and have the changes updated on screen.  The equivalent can be done
+entirely ``off-screen'', by just working with the grid object.
+The off-screen equivalent in this case would look like:
+
+<<results=hide>>=
+gxa <- xaxisGrob(at = 1:4/5, vp = viewport(w = .5, h = .01))
+gxa <- editGrob(gxa, gp = gpar(col = "red"))
+gxa <- editGrob(gxa, gPath = "labels", gp = gpar(col = "green"))
+gxa <- editGrob(gxa, at = c(0.0, 0.5, 1.0))
+gxa <- editGrob(gxa, gPath = "labels", gp = gpar(col = "black"), rot = 30)
+grid.draw(gxa)
+@
+\end{document}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/moveline.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/moveline.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/moveline.Rnw	(revision 2476)
@@ -0,0 +1,69 @@
+% File src/library/grid/vignettes/moveline.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2001-13 Paul Murrell and the R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+%\VignetteIndexEntry{Demonstrating move-to and line-to}
+%\VignettePackage{grid}
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\pkg}[1]{{\normalfont\fontseries{b}\selectfont #1}}
+\newcommand{\grid}{\pkg{grid}}
+\newcommand{\R}{{\sffamily R}}
+\setlength{\parindent}{0in}
+\setlength{\parskip}{.1in}
+\setlength{\textwidth}{140mm}
+\setlength{\oddsidemargin}{10mm}
+\title{Drawing Lines Between Viewports: \\
+\code{grid.move.to} and \code{grid.line.to}}
+\author{Paul Murrell}
+
+\begin{document}
+\maketitle
+
+<<echo=FALSE, results=hide>>=
+library(grDevices)
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+@
+
+Many graphics systems have the notion of a current drawing location.
+This has been added to Grid, with the additional benefit that the
+drawing location can be specified relative to an arbitrary viewport.
+This allows drawing across coordinate
+systems\footnote{There was a request on R-help for exactly this
+sort of thing - I will try to find the exact reference - and there has
+since been another (From: Ross Darnell; Subject: Problems with
+segments and multiple graphs). }.
+
+The following code demonstrates a simple example (the output is
+given after the code).
+
+<<fig, results=hide, fig=TRUE, width=5, height=4, include=FALSE>>=
+pushViewport(
+    viewport(w = 0.8, h = 0.8,
+             layout = grid.layout(1, 3,
+                                  widths = unit(rep(1, 3),
+                                  c("null", "inches", "null")))))
+pushViewport(viewport(layout.pos.col = 1, yscale = c(0, 4)))
+grid.grill(); grid.yaxis(); grid.xaxis()
+grid.points(0.5, unit(2, "native"))
+grid.move.to(0.5, unit(2,"native"))
+popViewport()
+pushViewport(viewport(layout.pos.col = 3, yscale = c(0, 2)))
+grid.grill(); grid.yaxis(); grid.xaxis()
+grid.points(0.5, unit(2, "native"))
+grid.line.to(0.5, unit(2,"native"))
+@
+\begin{center}
+{
+\includegraphics[width=5in, height=4in]{moveline-fig}
+}
+\end{center}
+
+@
+\end{document}
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grobs.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grobs.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grid.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grid.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grid.R	(revision 2476)
@@ -0,0 +1,329 @@
+### R code from vignette source 'grid.Rnw'
+
+###################################################
+### code chunk number 1: grid.Rnw:32-38
+###################################################
+library(grDevices)
+library(graphics) # for par
+library(stats) # for rnorm
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+
+
+###################################################
+### code chunk number 2: grid.Rnw:80-81 (eval = FALSE)
+###################################################
+## viewport(x = 0.5, y = 0.5, width = 0.5, height = 0.25, angle=45)
+
+
+###################################################
+### code chunk number 3: viewport
+###################################################
+grid.show.viewport(viewport(x = 0.5, y = 0.5, width = 0.5, height = 0.25,
+                            angle = 45))
+
+
+###################################################
+### code chunk number 4: pushviewports
+###################################################
+grid.rect(gp = gpar(lty = "dashed"))
+vp1 <- viewport(x = 0, y = 0.5, w = 0.5, h = 0.5,
+                just = c("left", "bottom"), name = "vp1")
+vp2 <- viewport(x = 0.5, y = 0, w = 0.5, h = 0.5,
+                just = c("left", "bottom"))
+pushViewport(vp1)
+grid.rect(gp = gpar(col = "grey"))
+grid.text("Some drawing in graphics region 1", y = 0.8)
+upViewport()
+pushViewport(vp2)
+grid.rect(gp = gpar(col = "grey"))
+grid.text("Some drawing in graphics region 2", y = 0.8)
+upViewport()
+downViewport("vp1")
+grid.text("MORE drawing in graphics region 1", y = 0.2)
+popViewport()
+
+
+###################################################
+### code chunk number 5: vpstack
+###################################################
+grid.rect(gp = gpar(lty = "dashed"))
+vp <- viewport(width = 0.5, height = 0.5)
+pushViewport(vp)
+grid.rect(gp = gpar(col = "grey"))
+grid.text("quarter of the page", y = 0.85)
+pushViewport(vp)
+grid.rect()
+grid.text("quarter of the\nprevious viewport")
+popViewport(2)
+
+
+###################################################
+### code chunk number 6: units
+###################################################
+unit(1, "npc")
+unit(1:3/4, "npc")
+unit(1:3/4, "npc")[2]
+unit(1:3/4, "npc") + unit(1, "inches")
+min(unit(0.5, "npc"), unit(1, "inches"))
+unit.c(unit(0.5, "npc"), unit(2, "inches") + unit(1:3/4, "npc"),
+       unit(1, "strwidth", "hi there"))
+
+
+###################################################
+### code chunk number 7: vpcoords
+###################################################
+pushViewport(viewport(y = unit(3, "lines"), width = 0.9, height = 0.8,
+                      just = "bottom", xscale = c(0, 100)))
+grid.rect(gp = gpar(col = "grey"))
+grid.xaxis()
+pushViewport(viewport(x = unit(60, "native"), y = unit(0.5, "npc"),
+                      width = unit(1, "strwidth", "coordinates for everyone"),
+                      height = unit(3, "inches")))
+grid.rect()
+grid.text("coordinates for everyone")
+popViewport(2)
+
+
+###################################################
+### code chunk number 8: vplayout
+###################################################
+pushViewport(viewport(layout = grid.layout(4, 5)))
+grid.rect(gp = gpar(col = "grey"))
+grid.segments(c(1:4/5, rep(0, 3)), c(rep(0, 4), 1:3/4),
+              c(1:4/5, rep(1, 3)), c(rep(1, 4), 1:3/4),
+              gp = gpar(col = "grey"))
+pushViewport(viewport(layout.pos.col = 2:3, layout.pos.row = 3))
+grid.rect(gp = gpar(lwd = 3))
+popViewport(2)
+
+
+###################################################
+### code chunk number 9: layoutcomplex
+###################################################
+grid.show.layout(grid.layout(4, 4, widths = unit(c(3, 1, 1, 1),
+                             c("lines", "null", "null", "cm")),
+                             heights = c(1, 1, 2, 3),
+                             c("cm", "null", "null", "lines")))
+
+
+###################################################
+### code chunk number 10: gpar
+###################################################
+pushViewport(viewport(gp = gpar(fill = "grey", fontface = "italic")))
+grid.rect()
+grid.rect(width = 0.8, height = 0.6, gp = gpar(fill = "white"))
+grid.text(paste("This text and the inner rectangle",
+                "have specified their own gpar settings", sep = "\n"),
+          y = 0.75, gp = gpar(fontface = "plain"))
+grid.text(paste("This text and the outer rectangle",
+                "accept the gpar settings of the viewport", sep = "\n"),
+          y = 0.25)
+popViewport()
+
+
+###################################################
+### code chunk number 11: simpleplot
+###################################################
+grid.rect(gp = gpar(lty = "dashed"))
+x <- y <- 1:10
+pushViewport(plotViewport(c(5.1, 4.1, 4.1, 2.1)))
+pushViewport(dataViewport(x, y))
+grid.rect()
+grid.xaxis()
+grid.yaxis()
+grid.points(x, y)
+grid.text("1:10", x = unit(-3, "lines"), rot = 90)
+popViewport(2)
+
+
+###################################################
+### code chunk number 12: bpdata
+###################################################
+barData <- matrix(sample(1:4, 16, replace = TRUE), ncol = 4)
+
+
+###################################################
+### code chunk number 13: barconstraint
+###################################################
+boxColours <- 1:4
+
+
+###################################################
+### code chunk number 14: bpfun
+###################################################
+bp <- function(barData) {
+    nbars <- dim(barData)[2]
+    nmeasures <- dim(barData)[1]
+    barTotals <- rbind(rep(0, nbars), apply(barData, 2, cumsum))
+    barYscale <- c(0, max(barTotals)*1.05)
+    pushViewport(plotViewport(c(5, 4, 4, 1),
+                              yscale = barYscale,
+                              layout = grid.layout(1, nbars)))
+    grid.rect()
+    grid.yaxis()
+    for (i in 1:nbars) {
+        pushViewport(viewport(layout.pos.col = i, yscale = barYscale))
+        grid.rect(x = rep(0.5, nmeasures),
+                  y = unit(barTotals[1:nmeasures, i], "native"),
+                  height = unit(diff(barTotals[,i]), "native"),
+                  width = 0.8, just = "bottom", gp = gpar(fill = boxColours))
+        popViewport()
+    }
+    popViewport()
+}
+
+
+###################################################
+### code chunk number 15: legendlabels
+###################################################
+legLabels <- c("Group A", "Group B", "Group C", "Something Longer")
+boxSize <- unit(0.5, "inches")
+
+
+###################################################
+### code chunk number 16: legfun
+###################################################
+leg <- function(legLabels) {
+    nlabels <- length(legLabels)
+    pushViewport(viewport(layout = grid.layout(nlabels, 1)))
+    for (i in 1:nlabels) {
+        pushViewport(viewport(layout.pos.row = i))
+        grid.rect(width = boxSize, height = boxSize, just = "bottom",
+                  gp = gpar(fill = boxColours[i]))
+        grid.text(legLabels[i], y = unit(0.5, "npc") - unit(1, "lines"))
+        popViewport()
+    }
+    popViewport()
+}
+
+
+###################################################
+### code chunk number 17: barplot
+###################################################
+grid.rect(gp = gpar(lty = "dashed"))
+legend.width <- max(unit(rep(1, length(legLabels)),
+                         "strwidth", as.list(legLabels)) +
+                    unit(2, "lines"),
+                    unit(0.5, "inches") + unit(2, "lines"))
+pushViewport(viewport(layout = grid.layout(1, 2,
+                      widths = unit.c(unit(1,"null"), legend.width))))
+pushViewport(viewport(layout.pos.col = 1))
+bp(barData)
+popViewport()
+pushViewport(viewport(layout.pos.col = 2))
+pushViewport(plotViewport(c(5, 0, 4, 0)))
+leg(legLabels)
+popViewport(3)
+
+
+###################################################
+### code chunk number 18: grid.Rnw:654-655
+###################################################
+library(lattice)
+
+
+###################################################
+### code chunk number 19: trellisdata (eval = FALSE)
+###################################################
+## x <- rnorm(100)
+## y <- rnorm(100)
+## g <- sample(1:8, 100, replace = TRUE)
+
+
+###################################################
+### code chunk number 20: trellispanelplot (eval = FALSE)
+###################################################
+## xyplot(y ~ x | g, panel = function(x, y) {
+##     panel.xyplot(x, y);
+##     grid.lines(unit(c(0, 1), "npc"), unit(0, "native"),
+##                gp = gpar(col = "grey"))
+## })
+
+
+###################################################
+### code chunk number 21: trellispanel
+###################################################
+x <- rnorm(100)
+y <- rnorm(100)
+g <- sample(1:8, 100, replace = TRUE)
+xyplot(y ~ x | g, panel = function(x, y) {
+    panel.xyplot(x, y);
+    grid.lines(unit(c(0, 1), "npc"), unit(0, "native"),
+               gp = gpar(col = "grey"))
+})
+
+
+###################################################
+### code chunk number 22: trellisstripplot (eval = FALSE)
+###################################################
+## xyplot(y ~ x | g, strip = function(which.given, which.panel, ...) {
+##     grid.text(paste("Variable ", which.given, ": Level ",
+##                     which.panel[which.given], sep = ""),
+##               unit(1, "mm"), .5, just = "left")
+## })
+
+
+###################################################
+### code chunk number 23: trellisstrip
+###################################################
+x <- rnorm(100)
+y <- rnorm(100)
+g <- sample(1:8, 100, replace = TRUE)
+xyplot(y ~ x | g, strip = function(which.given, which.panel, ...) {
+    grid.text(paste("Variable ", which.given, ": Level ",
+                    which.panel[which.given], sep = ""),
+              unit(1, "mm"), .5, just = "left")
+})
+
+
+###################################################
+### code chunk number 24: trellisgridplot (eval = FALSE)
+###################################################
+## someText <- paste("A panel of text", "produced using", "raw grid code",
+##                   "that could be used", "to describe",
+##                   "the plot", "to the right.", sep = "\n")
+## latticePlot <- xyplot(y ~ x | g, layout = c(2, 4))
+## grid.rect(gp = gpar(lty = "dashed"))
+## pushViewport(viewport(layout = grid.layout(1, 2,
+##                       widths = unit.c(unit(1, "strwidth", someText) +
+##                       unit(2, "cm"),
+##                       unit(1, "null")))))
+## pushViewport(viewport(layout.pos.col = 1))
+## grid.rect(gp = gpar(fill = "light grey"))
+## grid.text(someText,
+##           x = unit(1, "cm"), y = unit(1, "npc") - unit(1, "inches"),
+##           just = c("left", "top"))
+## popViewport()
+## pushViewport(viewport(layout.pos.col = 2))
+## print(latticePlot, newpage = FALSE)
+## popViewport(2)
+
+
+###################################################
+### code chunk number 25: trellisgrid
+###################################################
+x <- rnorm(100)
+y <- rnorm(100)
+g <- sample(1:8, 100, replace = TRUE)
+someText <- paste("A panel of text", "produced using", "raw grid code",
+                  "that could be used", "to describe",
+                  "the plot", "to the right.", sep = "\n")
+latticePlot <- xyplot(y ~ x | g, layout = c(2, 4))
+grid.rect(gp = gpar(lty = "dashed"))
+pushViewport(viewport(layout = grid.layout(1, 2,
+                      widths = unit.c(unit(1, "strwidth", someText) +
+                      unit(2, "cm"),
+                      unit(1, "null")))))
+pushViewport(viewport(layout.pos.col = 1))
+grid.rect(gp = gpar(fill = "light grey"))
+grid.text(someText,
+          x = unit(1, "cm"), y = unit(1, "npc") - unit(1, "inches"),
+          just = c("left", "top"))
+popViewport()
+pushViewport(viewport(layout.pos.col = 2))
+print(latticePlot, newpage = FALSE)
+popViewport(2)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/interactive.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/interactive.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/changes.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/changes.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/changes.txt	(revision 2476)
@@ -0,0 +1,1523 @@
+
+Changes from grid_3.2.* to grid_3.3.0:
+-------------------------------------
+
+1.  Added "pseudonym" units to check made in absolute.size() so that,
+    for example, absolute.size(unit(1, "in")) works properly
+    (reported by Baptiste Auguie).
+
+2.  Registered absolute.units() methods in NAMESPACE, so that, for
+    example, a call to absolute.size(unit(1,"npc") + unit(2,"mm"))
+    works outside of 'grid' (reported by Baptiste Auguie).
+
+3.  Refactored grid.draw() so that grid.draw(NULL) now works 
+    (by doing nothing).  Reported by Hadley Wickham.
+
+4.  Modified grid.ls() so that it returns nothing if there are no
+    active devices (rather than opening a new device).
+  
+5.  Modified grid.grep() so that it returns an empty list (rather than
+    throwing an error) when the 'grid' display list is empty.
+
+6.  Added subassignment methods for unit objects
+    (e.g., x <- unit(1:3, "cm"); x[2] <- unit(.5, "npc"))
+
+    Thanks to Baptiste Auguie for code suggestions.
+
+
+Changes from grid_3.1.* to grid_3.2.0:
+-------------------------------------
+
+1.  Fixed evaluation of "pure null" units (by making evaluation recursive).
+    Previously, for example, a unit list with a unit list as its first
+    component would evaluate to NA.  This typically only affects layouts 
+    in grid.
+
+    Problem reported by Baptiste Auguie.
+
+2.  Fixed problem in validDetails.beziergrob(), which used to fail if
+    you tried to specify 'id.lengths'
+
+3.  Fixed bug in downViewport() when descending more than one
+    viewport.  It was possible for this to end up with the wrong
+    clipping region (because if you ended up in a viewport that
+    inherited its clipping region from a parent, that clipping region
+    was not enforced).
+
+
+Changes from grid_3.0.* to grid_3.1.0:
+-------------------------------------
+
+1.  New current.rotation() function.
+
+2.  vpPath() and gPath() now automatically expand any embedded path 
+    separators in their input.
+
+3.  New functions depth(), for determining the depth of a viewport 
+    hierarchy or path, and explode(), for expanding a path into
+    its components.
+
+4.  New function grid.grep()
+    (based on ideas and code from Simon Potter).
+
+5.  The grid.force() function now accepts an explicit grob to (draw 
+    and) force or a gPath to force a specific already-drawn grob.
+    Ditto the grid.revert() function.
+
+6.  New current.parent() function to return parent of current viewport.
+
+7.  New resolveRasterSize() function.
+
+8.  Made 'vp' argument of current.viewport() defunct.
+
+9.  Deprecated functions made defunct: 
+    grid.grob, grid.arrows, arrowsGrob, grid.convert, grid.convertX,
+    grid.convertY, grid.convertWidth, grid.convertHeight,
+    grid.collection, push.viewport, pop.viewport, viewport.transform,
+    draw.details, convertNative.
+
+10. Down viewports are now recorded on the display list as full-depth
+    strict vpPaths even when downViewport() is called with non-strict
+    vpPath (which can produce a down viewport of greater depth than
+    the depth of the vpPath).
+
+11. Exported generic forceGrob().
+
+12. Bug fix for recording viewport pushes on the graphics engine display
+    list (reported by the friendly folks from RStudio).
+
+    The bug could be tickled by copying a grid scene from one graphics
+    device to another and then attempting to navigate within 
+    viewports on the original graphics device.
+
+13. Better defenses against division-by-zero in unit resolution/conversion
+    (see ./DivByZero.txt).
+
+
+Changes from grid_3.0.0 to grid_3.0.1:
+-------------------------------------
+
+1.  Added str() method for "unit.arithmetic"
+    Reported by Andreas Leha.
+
+
+Changes from grid_2.15.0 to grid_3.0.0:
+--------------------------------------
+
+1.  Bug fix for showViewport() when the viewport is a
+    "vpStack" and one of the components of the stack
+    is NOT just a simple viewport (e.g., when one of
+    the components of the "vpStack" is a "vpStack").
+
+2.  Bug fix for grid.ls(viewports = TRUE) when listing a
+    "vpStack" and one of the components of the stack
+    is NOT just a simple viewport (e.g., when one of
+    the components of the "vpStack" is a "vpStack").
+
+3.  Added support for "vpPaths" within a "vpStack",
+    "vpList", or "vpTree" (i.e., mixing of viewports
+    and "vpPaths").
+
+4.  New functions grid.reorder() and reorderGrob() to  
+    modify the order in which the children of a gTree 
+    are drawn.
+
+5.  Bug fix for grid.ls() to report children of a gTree
+    in the correct order.
+
+6.  New makeContext() and makeContent() "hook" functions
+    to allow alternative method for creating custom grobs.
+
+7.  Standard behaviour for grobs is now to use upViewport()
+    rather than popViewport() on the 'vp' slot.
+
+8.  New grid.force() function to provide access to grobs 
+    that are generated only at drawing time (for grobs that 
+    use the new makeContent() hook).
+
+9.  New grid.revert() function to revert the effect of 
+    grid.force().
+
+10. Implementation of "xaxis", "yaxis", "frame", "cellGrob",
+    "roundrect", "beziergrob", "curve", and "functiongrob"
+    changed to use makeContext() and makeContent() hooks.
+
+11. New grid.delay() and delayGrob() functions;  analogues
+    of grid.record() and recordGrob() that are implemented
+    via makeContent() hooks.
+
+
+Changes from grid_2.14.0 to grid_2.15.0:
+---------------------------------------
+
+1.  Added calcStringMetric() function.
+
+2.  Added "strascent" and "strdescent" units, plus 
+    stringAscent() and stringDescent() convenience functions.
+
+3.  Added "grobascent" and "grobdescent" units, plus 
+    grobAscent() and grobDescent() convenience functions.
+
+    The "ascent" of a grob is equivalent to its height by default,
+    but ascentDetails() methods can be written 
+    (e.g., text grobs are different).
+
+    The "descent" of a grob is zero by default,
+    but descentDetails() methods can be written 
+    (e.g., text grobs are different).
+
+4.  Fix for xsplinePoints() so that it copes with xspline grob
+    with non-NULL 'id' AND so that it takes the 'vp' and 'gp'
+    settings into account.
+
+5.  Added grid.bezier() function to draw Bezier curve
+    (using an X-spline approximation).
+
+    Also added bezierPoints() function.
+
+6.  Added grid.DLapply() function.
+
+
+Changes from grid_2.12.0 to grid_2.13.0:
+---------------------------------------
+
+1.  Added grid.function() for drawing lines to represent functions.
+
+2.  Fixed bug in calculation of x, y, width, and height of segments
+    grobs.
+
+3.  Fixed bug in grid.grab(wrap = TRUE) when the scene includes 
+    downViewport()s.
+
+4.  Added showGrob() function.
+
+
+Changes from grid_2.11.0 to grid_2.12.0:
+---------------------------------------
+
+1.  Neither width nor height need to be specified in 
+    grid.raster().  The image aspect ratio will be used
+    to calculate an appropriate image size for the 
+    current viewport.
+
+2.  Added [x|y|width|height]Details() methods for "rastergrob"s
+
+3.  "roundrect" grobs now obey their 'just' setting
+    (bug reported by Beau Benjamin Bruce)
+
+4.  Added grid.path() for rendering paths with holes.
+
+
+Changes from grid_2.10.0 to grid_2.11.0:
+---------------------------------------
+
+1.  Added xsplinePoints() function to return the (x, y) 
+    locations that an Xspline would be drawn through.
+    Useful for, e.g., clipping an Xspline against a
+    boundary.
+
+2.  Added grid.raster() function for rendering raster images.
+
+3.  Added grid.cap() function for capturing output on
+    current graphics device as a raster image.
+
+4.  Fixed PROTECT() bug in grid.rect() PR#14199
+    Thanks to Andrew Runnalls for the bug report.
+
+5.  Fixed multiple problems in rep.unit() and unit subsetting.
+    Motivated by PR#14170.  Thanks to Bert Gunter.
+    
+
+Changes from grid_2.9.0 to grid_2.10.0:
+--------------------------------------
+
+1.  Added showViewport() function for displaying viewport trees
+    graphically.
+
+2.  Fixed bug in unit() indexing;  negative integer indices now work.
+
+3.  Modified behaviour of editGrob() and addGrob() so that they 
+    return the original grob if the specified gPath does not exist,
+    and issue a warning (if new argument 'warn' is TRUE).
+    
+
+Changes from grid_2.8.0 to grid_2.9.0:
+-------------------------------------
+
+1.  Copied grid.roundRect() from 'RGraphics' package into 'grid'.
+
+    Renamed to grid.roundrect() and also used roundrectGrob()
+    rather than roundRect(), partly for more consistent naming,
+    partly to avoid namespace collision until original functions
+    get removed from 'RGraphics' package.
+
+2.  Fixed bug in grid.curve() when curve is horizontal or vertical
+    straight line.
+
+3.  Exposed is.grob() and valid.just() via the NAMESPACE.
+
+4.  Fixed bug in downViewport(), which meant that unsuccessful
+    downViewport()s were still being recorded on the graphics
+    engine display list.  This could cause interesting results
+    when a window is resized (i.e., when the display list is 
+    replayed).  
+
+    Bug reported by Felix Andrews.
+
+5.  Added some pseudonyms for come units.  For example, it is now
+    possible to specify just "in" instead of "inches".
+
+
+Changes from grid_2.7.0 to grid_2.8.0:
+-------------------------------------
+
+1.  Added grid.null() and nullGrob();  grob that is guaranteed
+    to have zero-width, zero-height, and draw nothing.
+
+    Useful as zero-size placeholder AND as invisible reference
+    point for other grobs to draw relative to.
+
+2.  Fixed bug in listing, via grid.ls(), of frame grobs.  If the frame
+    had a vpPath in its 'vp' component, you got an error from vpStack().
+
+    Problem reported by Hadley Wickham.
+
+3.  Fixed a bug in grid.ls() when attempting to list the display list
+    following the removal of a grob (i.e., so that there were NULLs
+    in the display list).
+
+    Problem reported by Felix Andrews.
+
+
+Changes from grid_2.6.0 to grid_2.7.0:
+-------------------------------------
+
+1.  Grid will no longer complain about clipping to a rotated
+    viewport if the rotation is a multiple of 90 degrees.
+
+    Prompted by report from Gustaf Rydevik.
+
+2.  Open Xsplines must have zero shape for first and last
+    control point, but this was not being enforced correctly
+    for the case where there were multiple Xsplines in a
+    single grid.xspline() call (i.e., with use of 'id' or
+    'id.length').  The problem can be seen with this code
+    (most curves do not connect to the first control point
+    [there are also subtle errors in the curve shapes]):
+
+        grid.newpage()
+        pushViewport(viewport(w=.5, h=.5))
+        grid.xspline(x=outer(c(0, .5, 1, .5), 5:1/5),
+                     s=1,
+                     y=outer(c(.5, 1, .5, 0), 5:1/5),
+                     id.lengths=rep(4, 5),
+                     gp=gpar(col=1:5, lwd=3))
+        grid.rect()
+
+3.  Frame grobs have been improved so that all of the viewports
+    that are generated during the drawing of a frame (and its
+    cells) are left on the display list (previously, they were
+    popped).
+
+    This has implications particularly for ggplot[2] because
+    it means that it is now possible to downViewport() to 
+    viewports created during the drawing of a ggplot[2] plot
+    to, for example, add further annotations to the plot.
+
+4.  Small fixes to grid.ls():
+
+    - viewports pushed by cellGrobs within frames are now
+      shown by grid.ls()
+
+    - fixed warning (bug really) when display list contains
+      only one grob (and padPrefix() is called).
+
+
+Changes from grid_2.5.0 to grid_2.6.0:
+-------------------------------------
+
+1.  Added grid.gedit() as convenience wrapper for grid.edit()
+    based on usage patterns of Hadley Wickham when working with
+    'ggplot' package.
+
+    Ditto, grid.gget() and grid.gremove().
+
+2.  Improved implementation of 'id' and 'id.lengths' arguments
+    for drawing multiple polygons/polylines/xsplines to gain 
+    order 2 speed improvement.  
+
+    Problem independently reported by Luke Tierney, Deepayan Sarkar and
+    Vilmos Prokaj.
+
+3.  Bug fixes for grid.remove(), especially for grep=TRUE and global=TRUE
+    (i.e., removing all grobs from DL where the name matches a pattern).
+
+    Also some fixes to grid.remove() error messages when no match found.
+
+    Bug reports from Hadley Wickham.
+
+4.  New function grid.ls() for listing grob trees and viewport trees
+    (including both grob trees and viewport trees interlaced).
+
+    Useful for exploring current grob/viewport tree, explaining
+    grob/viewport trees, and programming on or debugging 
+    grob/viewport trees.
+
+
+Changes from grid_2.4.0 to grid_2.5.0:
+-------------------------------------
+
+1.  Added 'open' argument to grid.curve().  This allows, for example,
+    filling the segment of a circle.
+
+2.  Fixed bug in arrow() function:  segfault produced if either 
+    'ends' or 'type' argument are given as NULL.  Thanks to
+    Sebastien Luque for the report.
+
+
+Changes from grid_2.3.0 to grid_2.4.0:
+-------------------------------------
+
+1.  Bug fix for colour used when drawing a rectangle in a
+    rotated viewport (reported by Olaf Burger).
+
+2.  Removed 'units.per.obs' argument from grid.lines() and 
+    grid.segments() 
+
+    (This is a bug fix;  should have been removed long ago).
+
+3.  Added extra check on 'data' argument of unit(), which means
+    that if you supply a non-NULL value where the 'unit' is
+    not "str[width|height]" or "grob[x|y|width|height]", you
+    get an error.  This may impact on existing code.
+
+4.  Radii in grid.circle() are now silently converted to their
+    absolute value (negative values used to trigger an error).
+
+5.  New function grobName() for generating unique (within-session)
+    grob names (based on class of grob).
+
+    Also, modified default naming of grobs to be based on class
+    of grob.  This should not impact on existing code because
+    noone should be depending on the default names generated by grid.
+
+
+Changes from grid_2.2.0 to grid_2.3.0:
+-------------------------------------
+
+1.  Bug fix for stringWidth() and stringHeight() with mathematical 
+    annotation.
+
+    These used to always convert the argument to "character".
+    Now they let language objects (e.g., expressions) pass through.
+
+2.  New grid.xspline() function to draw X-splines (a general curve
+    approximated or interpolated relative to control points).
+
+3.  New 'arrow' argument to grid.line.to(), grid.lines(), and
+    grid.segments().  This provides a new way to specify arrow
+    heads on either end of a line.
+
+    grid.arrows() has been deprecated.
+
+    NOTE: that the new 'arrow' arguments have been added BEFORE
+    the name, gp and vp arguments so existing code that specifies
+    any of these arguments *by position* (not by name) will fail.
+
+4.  Added "[" (subset) methods for "gpar" objects.
+
+5.  New grobX() and grobY() functions for producing units 
+    describing a location on the boundary of a grob.
+
+6.  Units produced by grobX() and grobY() make use of new 
+    xDetails() and yDetails() generic functions to calculate the 
+    boundary of a grob.  Methods for these functions are provided
+    for all grid graphical primitives.
+
+7.  Bug fix for grid.polygon() when 'x' is not just a simple unit
+    (e.g., it is unit arithmetic);  'index' was being calculated
+    incorrectly so not all of polygon would be drawn or, if 
+    'id' or 'id.length' were used, only a single polygon would
+    be drawn (with unexpected shape).
+
+8.  New grid.curve() primitive for drawing a curve between two
+    locations.  
+
+    Together with new grobX() and grobY() provides support for
+    drawing simple node-and-edge graphs and flow diagrams.
+
+9.  New grid.clip() primitive for setting the clipping region
+    (more accurately, the clipping rectangle).  Has effect until
+    the next grid.clip() or when the current viewport is popped.
+
+10. New dim.layout() method for layout objects.  Allows easy
+    access to dimensions of layout via nrow() and ncol().
+
+11. unit.rep() deprecated in favour of unit method(s) for rep() function.
+
+12. unit.length() deprecated in favour of unit method(s) for length() function.
+
+13. New grid.polyline() primitive.  Just like grid.lines() except has
+    'id' and 'id.lengths' arguments.
+
+    These work like the corresponding arguments in grid.polygon() and
+    grid.xspline(), allowing multiple polylines to be drawn from a
+    single grid.polyline() call.
+
+14. Fixed drawing of top-level gList objects so that they 
+    (actually the grobs in the gList) are recorded on the 
+    grid display list.
+
+    Allowed a gList to be component of a gList 
+    (the gList constructor merges sub-gList into resulting gList).
+
+    Added subset method for gList objects 
+    (so that result is still a gList).
+
+15. Bug fix for grid.rect() and grid.circle() with gpar(lty="blank").
+    (problem was actually in the graphics engine).
+    
+    Reported by John Braun (private correspondence).
+
+
+Changes from grid_2.1.0 to grid_2.2.0:
+-------------------------------------
+
+1.  current.vpPath() now exported.
+
+2.  Grid now uses the 'fg' and 'bg' settings (if any) for
+    graphics devices to set the initial graphical parameter
+    settings of the top-level viewport (i.e., the 'gp' arg
+    of viewport[ROOT]).
+
+3.  Fixed bug in evaluation of grobWidth(polygonGrob()).
+    The C function L_locnBounds was not exported AND
+    the widthDetails.polygon method was not exposed properly
+    via the NAMESPACE.
+
+    Reported in private correspondence by Deepayan Sarkar.
+
+    Also corrected export of heightDetails, validDetails, and	
+    widthDetails for arrows, circle, polygon, points, rect, and
+    segments primitives.
+
+
+Changes from grid_2.0.1 to grid_2.1.0:
+------------------------------------
+
+1.  preDrawDetails(), drawDetails(), and postDrawDetails() 
+    methods are now recorded on the graphics engine
+    display list.   This means that calculations within these 
+    methods are now run when a device is resized or
+    when output is copied from one device to another.  A simple
+    example (the rectangle remains 1inch wide when resizing the
+    device -- it does not in previous versions) ...
+
+        testgrob <- grob(cl="test")
+	drawDetails.test <- function(x, recording) {
+	  w <- convertWidth(unit(1, "inches"), "npc")
+	  grid.rect(width=w)
+	}
+	grid.draw(testgrob)
+
+2.  Fixed bug in grid.text() when "rot" argument has length 0.
+    (privately reported by Emmanuel Paradis)
+
+3.  New getNames() function to return just the names of all top-level
+    grobs on the display list.
+
+4.  Recording on the grid display list is turned off within 
+    preDrawDetails(), drawDetails(), and postDrawDetails() methods.
+
+    This means that you do not need to worry about specifying
+    recording=FALSE within these methods.
+    
+5.  Grid should recover better from errors or user-interrupts
+    during drawing (i.e., not leave you in a strange viewport
+    or with strange graphical parameter settings).
+
+6.  New function grid.refresh() to redraw the grid display list.
+
+7.  New function grid.record() to capture calculations
+    with grid graphics output.  For example ...
+
+        grid.record({
+                      w <- convertWidth(unit(1, "inches"), "npc")
+	              grid.rect(width=w)
+                    },
+                    list())
+
+8.  grobWidth and grobHeight ("grobwidth" and "grobheight" units)
+    for primitives (text, rects, etc, ...) are now
+    calculated based on a bounding box for the relevant grob.
+
+    These used to be calculated assuming a grob was scalar
+    rather than vector.  For example, the following now behaves
+    much more sensibly ...
+
+        txt <- textGrob(c("This is a repeat", "This is a repeat"),
+	                y=1:2/3, rot=45)
+        grid.draw(txt)
+        grid.rect(width=grobWidth(txt), height=grobHeight(txt))
+
+    NOTE: this has changed the calculation of the size of a scalar
+    rect (or circle or lines) so that, for example, something like ...
+
+        grid.pack(frame, rectGrob())
+
+    ... needs to become ...
+
+        grid.pack(frame, rectGrob(), 
+                  width=unit(1, "null"), height=unit(1, "null"))
+
+    ... if you just want a rectangle that fills the space available.
+
+9.  New arguments "warn" and "wrap" for function grid.grab()
+    
+    If warn>0 will warn if know (or, if warn>1,  if even suspect) 
+    that the grab has not faithfully captured the output.  
+
+    If wrap=TRUE, will capture output by wrapping all non-grobs
+    on the display list in grobs.  Resulting gTree is less 
+    elegant and harder to work with, but should always faithfully
+    capture output.
+
+10. New function grid.grabExpr() which captures the output from
+    an expression (i.e., not from the current scene) without
+    doing any drawing (i.e., no impact on the current scene).
+
+11. upViewport() now (invisibly) returns the path that it goes up
+    (suggested by Ross Ihaka).
+
+    This makes it possible to do things like ...
+
+        upPath <- upViewport(n)
+	...
+	downViewport(upPath)
+
+    ... (i.e., navigate up and then back down to where you came from).
+
+12. The "gamma" gpar has been deprecated (this is a device property
+    not a property of graphical objects;  suggested by Ross Ihaka).
+
+13. New "lex" gpar;  a line width multiplier.
+    The final line width is calculated as ...
+
+        gpar("lex")*gpar("lwd")
+
+    ... and the multiplier is cumulative (like cex) ...
+
+      grid.rect(height=0.5, width=0.5, 
+                gp=gpar(lwd=16))                # lex = 1
+      pushViewport(viewport(gp=gpar(lex=0.5)))
+      grid.rect(height=0.5, width=0.5, 
+                gp=gpar(lwd=16, col="red"))     # lex = 0.5
+      pushViewport(viewport(gp=gpar(lex=0.5)))
+      grid.rect(height=0.5, width=0.5, 
+                gp=gpar(lwd=16, col="green"))   # lex = 0.25!
+
+    This (along with cex) provides support for "zooming" a grid scene.
+
+14. grid.text() now handles any language object as mathematical
+    annotation (instead of just expressions).  For example ...
+
+      grid.text(call("sin", pi))
+ 
+15. plotViewport() has default value for "margins" argument (that match
+    the default value for par(mar)).
+
+16. The "extension" argument to dataViewport() can now be vector, 
+    in which case the first value is used to extend the xscale and
+    the second value is used to extend the y scale.
+    (suggested by Ross Ihaka).
+
+17. All "just" arguments (for viewports, layouts, rectangles, text)
+    can now be numeric values (typically between 0 [left] and 1 [right])
+    as well as character values ("left", "right", ...).
+
+    For rectangles and text, there are additional "hjust" and "vjust"
+    arguments which allow numeric vectors of justification in
+    each direction (e.g., so that several pieces of text can have 
+    different justifications).  If these are specified, they
+    override the "just" argument.
+    (suggested by Ross Ihaka)
+
+18. New "edits" argument for grid.xaxis() and grid.yaxis() to
+    allow specification of on-the-fly edits to axis children
+    (when at == NULL, so children are generated on-the-fly).
+
+19. applyEdit(x, edit) returns x if target of edit (i.e., child
+    specified by a gPath) cannot be found.
+
+20. Fix for calculation of length of max/min/sum unit.  Length is
+    now (correctly) reported as 1 (was reported as length of first arg).
+
+21. Viewport names can now be any string (they used to have to be a
+    valid R symbol).
+
+    The documentation now says that grob names can be any string
+    (they always could be, but the documentation said they had to
+     be a valid R symbol)
+
+22. The "label" argument for grid.xaxis() and grid.yaxis() can now 
+    also be a language object or string vector, in which case it 
+    specifies custom labels for the tick marks.
+
+
+Changes from grid_2.0.0 to grid_2.0.1:
+------------------------------------
+
+1.  Fixed bug in grid.newpage();  it was not starting new page
+    on first grid call if there was already traditional graphics
+    output on the device (i.e., the device was "dirty" but not 
+    "grid dirty").
+
+2.  Fixed bug in grid.grab() when no viewports have been pushed.
+
+
+Changes from grid_1.9.0 to grid_2.0.0:
+------------------------------------
+
+1.  Calculation of number of circles to draw in circleGrob now
+    looks at length of y and r as well as length of x.
+
+2.  Calculation of number of rectangles to draw in rectGrob now
+    looks at length of y, w, and h as well as length of x.
+
+3.  All primitives (rectangles, lines, text, ...) now handle 
+    non-finite values (NA, Inf, -Inf, NaN) for locations and
+    sizes.
+
+    Non-finite values for locations, sizes, and scales of
+    viewports result in error messages.
+
+    There is a new vignette("nonfinite") which describes this
+    new behaviour.
+
+4.  Fixed (unreported) bug in drawing circles.  Now checks that
+    radius is non-negative.
+
+5.  downViewport() now reports the depth it went down to find a 
+    viewport.  Handy for "going back" to where you started, e.g., ...
+
+      depth <- downViewport("vpname")
+      <draw stuff>
+      upViewport(depth)
+
+6.  The "alpha" gpar() is now combined with the alpha channel of
+    colours when creating a gcontext as follows:
+
+      finalAlpha = gpar("alpha")*(R_ALPHA(col)/255)
+
+    This means that gpar(alpha=) settings now affect internal
+    colours so grid alpha transparency settings now are sent to
+    graphics devices.
+
+    The alpha setting is also cumulative.  For example, ...
+      
+      grid.rect(width=0.5, height=0.5, 
+                gp=gpar(fill="blue"))              # alpha = 1
+      pushViewport(viewport(gp=gpar(alpha=0.5)))
+      grid.rect(height=0.25, gp=gpar(fill="red"))  # alpha = 0.5
+      pushViewport(viewport(gp=gpar(alpha=0.5)))
+      grid.rect(width=0.25, gp=gpar(fill="red"))   # alpha = 0.25 !
+
+7.  Editing a gp slot in a grob is now incremental.  For example ...
+
+      grid.lines(name="line")
+      grid.edit("line", gp=gpar(col="red")) # line turns red
+      grid.edit("line", gp=gpar(lwd=3)) # line becomes thick AND STAYS red
+      
+8.  The "cex" gpar is now cumulative.  For example ...
+      
+      grid.rect(height=unit(4, "char")) # cex = 1
+      pushViewport(viewport(gp=gpar(cex=0.5)))
+      grid.rect(height=unit(4, "char")) # cex = 0.5
+      pushViewport(viewport(gp=gpar(cex=0.5)))
+      grid.rect(height=unit(4, "char")) # cex = 0.125 !!!
+
+9.  New childNames() function to list the names of children
+    of a gTree.
+
+10. The "grep" and "global" arguments have been implemented for 
+    grid.[add|edit|get|remove]Grob() functions.
+
+    The "grep" argument has also been implemented for the
+    grid.set() and setGrob().
+
+11. New function grid.grab() which creates a gTree from the 
+    current display list (i.e., the current page of output can
+    be converted into a single gTree object with all grobs
+    on the current page as children of the gTree and all the 
+    viewports used in drawing the current page in the childrenvp
+    slot of the gTree).
+
+12. New "lineend", "linejoin", and "linemitre" gpar()s:
+
+      line end can be "round", "butt", or "square".
+      line join can be "round", "mitre", or "bevel".
+      line mitre can be any number larger than 1
+        (controls when a mitre join gets turned into a bevel join;  
+         proportional to angle between lines at join;
+	 very big number means that conversion only happens for lines
+	 that are almost parallel at join).
+
+13. New grid.prompt() function for controlling whether the user is
+    prompted before starting a new page of output.
+
+    Grid no longer responds to the par(ask) setting in the "graphics"
+    package.
+
+
+Changes from grid_1.9.0 to grid_1.9.1:
+------------------------------------
+
+1.  Fixed (unreported) bug in internal calculation of unitArithmetic
+    object when op = * and numeric operand longer than unit operand
+
+2.  Fixed (unreported) bug in creation of unitArithmetic objects
+    when numeric operand is integer.  All numeric operands are now
+    coerced to real.
+
+
+Changes from grid_1.8.0 to grid_1.9.0:
+------------------------------------
+
+1.  Renamed push/pop.viewport() to push/popViewport().
+
+2.  Added upViewport(), downViewport(), and seekViewport() to 
+    allow creation and navigation of viewport tree 
+    (rather than just viewport stack).
+
+3.  Added id and id.lengths arguments to grid.polygon() to allow
+    multiple polygons within single grid.polygon() call.
+
+4.  Added vpList(), vpStack(), vpTree(), and current.vpTree()
+    to allow creation of viewport "bundles" that may be pushed
+    at once (lists are pushed in parallel, stacks in series).
+
+    current.vpTree() returns the current viewport tree.
+
+5.  Added vpPath() to allow specification of viewport path
+    in downViewport() and seekViewport().
+    
+    See ?viewports for an example of its use.
+
+    NOTE: it is also possible to specify a path directly,
+    e.g., something like "vp1::vp2", but this is only
+    advised for interactive use (in case I decide to change the
+    separator :: in later versions).
+
+6.  Added "just" argument to grid.layout() to allow justification
+    of layout relative to parent viewport *IF* the layout is not
+    the same size as the viewport.  There's an example in
+    help(grid.layout).
+
+7.  Allowed the "vp" slot in a grob to be a viewport name or a
+    vpPath.  The interpretation of these new alternatives is to
+    call downViewport() with the name or vpPath before drawing the
+    grob and upViewport() the appropriate amount after drawing the
+    grob.  Here's an example of the possible usage:
+
+        pushViewport(viewport(w=.5, h=.5, name="A"))
+	grid.rect()
+	pushViewport(viewport(w=.5, h=.5, name="B"))
+	grid.rect(gp=gpar(col="grey"))
+	upViewport(2)
+	grid.rect(vp="A", gp=gpar(fill="red"))
+	grid.rect(vp=vpPath("A", "B"), gp=gpar(fill="blue"))
+
+8.  Added engine.display.list() function.  This allows the user to
+    tell grid NOT to use the graphics engine display list and to handle
+    ALL redraws using its own display list (including redraws after
+    device resizes and copies).
+
+    This provides a way to avoid some of the problems with resizing
+    a device when you have used grid.convert(), or the gridBase package,
+    or even base functions such as legend().
+
+    There is a document discussing the use of display lists in grid
+    on the grid web site 
+    (http://www.stat.auckland.ac.nz/~paul/grid/grid.html)
+
+9.  Changed the implementation of grob objects.  They are no longer 
+    implemented as external references.  They are now regular R objects
+    which copy-by-value.  This means that they can be saved/loaded
+    like normal R objects.  In order to retain some existing grob
+    behaviour, the following changes were necessary:
+
+    - grobs all now have a "name" slot.  The grob name is used to
+      uniquely identify a "drawn" grob (i.e., a grob on the display
+      list).  
+    - grid.edit() and grid.pack() now take a grob name as the first
+      argument instead of a grob.  (Actually, they take a gPath -
+      see below)
+    - the "grobwidth" and "grobheight" units take either a grob
+      OR a grob name (actually a gPath - see below).  Only in the 
+      latter case will the unit be updated if the grob "pointed to"
+      is modified.
+
+    In addition, the following features are now possible with grobs:
+
+    - grobs now save()/load() like any normal R object.
+    - many grid.*() functions now have a *Grob() counterpart.  The
+      grid.*() version is used for its side-effect of drawing 
+      something or modifying something which has been drawn;  the
+      *Grob() version is used for its return value, which is a grob.
+      This makes it more convenient to just work with grob objects without
+      producing any graphical output (by using the *Grob() functions).
+    - there is a gTree object (derived from grob), which is a grob 
+      which can have children.  A gTree also has a "childrenvp" slot
+      which is a viewport which is pushed and then "up"ed before the
+      children are drawn;  this allows the children of a gTree to 
+      place themselves somewhere in the viewports specified in the
+      childrenvp by having a vpPath in their vp slot. 
+    - there is a gPath object, which is essentially a concatenation
+      of grob names.  This is used to specify the child of (a child of ...)
+      a gTree.
+    - there is a new API for creating/accessing/modifying grob objects:
+      grid.add(), grid.remove(), grid.edit(), grid.get() (and their
+      *Grob() counterparts can be used to add, remove, edit, or extract
+      a grob or the child of a gTree.  NOTE: the new grid.edit() API
+      is incompatible with the previous version.
+
+10. Added stringWidth(), stringHeight(), grobWidth(), and grobHeight()
+    convenience functions (they produce "strwidth", "strheight",
+    "grobwidth", and "grobheight" unit objects, respectively).
+
+11. Allowed viewports to turn off clipping altogether.  Possible settings
+    for viewport clip arg are now:
+
+      "on"      = clip to the viewport (was TRUE)
+      "inherit" = clip to whatever parent says (was FALSE)
+      "off"     = turn off clipping 
+
+    Still accept logical values (and NA maps to "off")
+
+
+Changes from grid_1.8.0 to grid_1.8.1:
+------------------------------------
+
+1.  I have effectively disabled the "mystrwidth", "mystrheight",
+    "mychars", and "mylines" units.  These are now identical in
+    behaviour to the equivalent units without the "my".
+
+    Another way to look at it is that I have modified the behaviour
+    of "lines", "chars", "strwidth", and "strheight" so that they
+    ALWAYS obey the latest gpar settings (including any gpar 
+    settings in a grob).  
+
+    Some examples ...
+
+    This text is sized AND positioned in terms of a fontsize of 6:
+
+      grid.text("small text and small lines", y=unit(2, "lines"), 
+                gp=gpar(fontsize=6))
+
+    This text is 6 pt in size, but is positioned in terms of the
+    (default on X11) fontsize 12:
+
+      push.viewport(viewport(y=unit(2, "lines")))
+      grid.text("small test and big lines", gp=gpar(fontsize=6))
+      pop.viewport()
+
+2.  Fixed a bug in the calculation of "grobwidth" and "grobheight"
+    units.  The following code demonstrates the problem (the black
+    rectangle should snugly bound the grey rectangles):
+
+      grid.newpage()
+      # Create a frame with fontsize=6
+      gf <- grid.frame(layout=grid.layout(10, 10,
+                       widths=unit(rep(1, 10), "strwidth",
+                         as.list(rep("o", 10))),
+                       heights=unit(rep(1, 10), "strheight",
+                         as.list(rep("o", 10)))),
+                     gp=gpar(fontsize=6))
+      # Add a rect to the frame
+      for (i in 1:10)
+        grid.place(gf, grid.rect(gp=gpar(col="grey"), draw=FALSE),
+                   col=i, row=i)
+      grid.draw(gf)
+      # Now draw a rect around the frame
+      grid.rect(width=unit(1, "grobwidth", gf),
+                height=unit(1, "grobheight", gf))
+
+3.  Fixed a bug in the implementation of the "cex" gpar.  This is now
+    used correctly in the transformation code in unit.c
+
+    The bug was demonstrated by the following simple example
+    (the second set of points should be twice the radius of the
+    first set of points):
+
+      grid.newpage()
+      push.viewport(viewport())
+      grid.points()
+      grid.points(gp = gpar(cex = 2))
+      
+    Another demonstration from the original bug report from David Hinds:
+
+      xyplot(1:4~1:4, cex=1:4, pch=1)
+
+4.  Fixed a bug in multiplication of scalar by unit object, when the
+    scalar has length > 1.  The following example demonstrates
+    the problem:
+
+      grid.segments(x0=1:3/4, y0=0.1, x1=1:3/4,
+                    y1=1:3/4*unit(1, "npc"))
+
+    This should behave the same as:
+
+      grid.segments(x0=1:3/4, y0=0.1, x1=1:3/4,
+                    y1=unit(1:3/4, "npc"))
+      
+
+Changes from grid_0.7-4 to grid_1.8.0:
+------------------------------------
+
+1.  grid.text() now checks that the rot argument is numeric and finite.
+
+2.  dataViewport() checks for is.null(<arg>) rather than missing(<arg>)
+    and has renamed arguments x and y to xData and yData.
+
+    All to avoid confusion with specifying x= and y= in the ... argument.
+
+    This also fortuitously fixed a bug in dataViewport where the 
+    calculation of the x-range was partially dependent on the y-range(!)
+
+    Thanks to Russell Norvell for spotting and reporting the bug.
+
+3.  unit() checks that units argument is character mode.
+
+    Fix for bug (first reported by Achim Zeileis) produced by, 
+    for example ...
+
+	unit(1, 2)
+
+4.  The function absolute.units() was recursive and now uses a loop.
+
+    Fixes the following problem (from Deepayan Sarkar):
+
+        gf <- grid.frame(layout = grid.layout(nrow=1, ncol=1), draw = FALSE)
+        grob.rect <- grid.rect(x = 1:99/100, y = 1:99/100,
+                               h = rep(.01, 100), w = rep(.05, 100),
+                               gp = gpar(col = terrain.colors(100)),
+                               draw = FALSE)
+        grid.pack(frame = gf, row = 1, col = 1,
+                  grob = grob.rect,
+                  draw = FALSE)
+        grid.draw(gf)  # Fails with stack overflow
+
+5.  There is now a grid.locator() function for interactively selecting
+    locations within the current grid viewport with a mouse.
+
+6.  There is a new grid.convert() function for converting between
+    different coordinate systems.  
+
+    The convertNative() function has been deprecated.
+
+7.  The default "top-level" viewport that is generated by grid
+    now has its "native" coordinate system set to the "native"
+    coordinate system of the device.  For example, "native"
+    units at the top-level correspond to points on a PostScript
+    device, pixels on an X11 device, and so on.
+
+    For example, try the following:
+
+        library(grid)
+	x11()
+	grid.rect(x=10, y=10, width=10, height=10,
+                 default.units="native")
+
+    This may cause consternation if you ever plot grid.points()
+    at the top-level because the default units for grid.points()
+    are "native" ... I consider this an unlikely occurrence.
+
+8.  Added a new gpar called "alpha" for specifying transparency.
+    This is supposed to be a number from 1 (opaque) to 0 (transparent).
+    No R devices will take any notice of this whatsoever as yet.
+
+9.  Modified "xaxis" and "yaxis" grobs so that they extend the 
+    "collection" class.  This means that, when a new generic function
+    is created, it may be possible to write methods just for the 
+    collection class and not also separate xaxis and yaxis methods.
+
+10. Modified unit subsetting so that logical indices work.  
+    For example ...
+
+        unit(1:4, "npc")[1:4 == 3]
+
+11. Fixed detaching/reloading of grid package (was causing an error).
+ 
+12. There is a new grid.arrows() primitive.  
+
+    See the help file for example usage.
+
+13. Grid is now a base package (hence version number leap!)
+
+
+Changes from grid_0.7-3 to grid_0.7-4:
+------------------------------------
+
+1.  Fixed the bug in the bug-fix in item 7. below.
+
+
+Changes from grid_0.7-2 to grid_0.7-3:
+------------------------------------
+
+1.  Properly removed "origin" settings from viewports.
+
+2.  Modified grid.pretty() slightly so that it would respond
+    sensibly/usefully to things like ...
+
+        grid.pretty(c(10, 0))
+
+    A side-effect of this is that the following sort of viewport
+    scale specifications become sensible/useful ...
+
+        push.viewport(viewport(layout=grid.layout(1, 2)))
+        push.viewport(viewport(layout.pos.col=1))
+        push.viewport(viewport(w=.8, h=.8,
+                               xscale=c(10,0)))
+        grid.points(1:10, 1:10/11)
+        grid.xaxis()
+        grid.yaxis()
+        pop.viewport(2)
+        push.viewport(viewport(layout.pos.col=2))
+        push.viewport(viewport(w=.8, h=.8,
+                               yscale=c(10,0)))
+        grid.points(1:10/11, 1:10)
+        grid.xaxis()
+        grid.yaxis()
+        pop.viewport(3)
+
+3.  Fixed the calculation of number of "vertices" in grid.lines so that
+    it is the maximum of length(x) and length(y).
+
+    Used to be calculated solely on length(x).
+
+4.  Grid now throws an error if you try to create a unit of length 0.
+
+    This to fix a bug reported by Bud Gibson, the essence of which was ...
+
+        grid.points(size=unit(numeric(0), "mm"))
+
+5.  The default value of the "at" argument for grid.xaxis() and
+    grid.yaxis() is NULL (was NA;  NA was inconsistent with other
+    default argument settings and basically a dumb idea)
+
+6.  Grid now throws an error if you try to create a gpar object with
+    an element of length 0.
+
+    This is to fix a bug reported by Michael Friendly (and diagnosed by
+    Brian Ripley), the essence of which was ...
+
+         grid.lines(gpar(fontsize=numeric(0)))
+
+7.  grid.text() now converts its label argument to a string.
+
+    This is to fix a bug where "grobwidth" or "grobheight" would 
+    segfault if given a text grob for which the label was not a string.
+    (The fix involved including a check for "mystrwidth" and "mystrheight"
+     units in valid.data).
+
+    The bug could be produced by ...
+    
+        grid.rect(w=unit(1, "grobwidth", data=grid.text(5)))
+    
+
+Changes from grid_0.7-1 to grid_0.7-2:
+-------------------------------------
+
+1.  Fixed some generic/method incompatibilities (pointed out by Kurt).
+
+
+Changes from grid_0.7 to grid_0.7-1:
+------------------------------------
+
+1.  Fixed a bug where layout matrix respect was not being applied to
+    the correct cell.  For example, the following caused the cell
+    1,3 to be respected rather than 1,2 ...
+
+	lt.resp <- matrix(0, 2, 3)
+	lt.resp[1,2] <- 1
+	grid.show.layout(grid.layout(2, 3, respect = lt.resp))
+
+    Reported by Deepayan Sarkar.
+
+
+Changes from grid_0.6 to grid_0.7:
+------------------------------------
+
+1.  The web pages for grid have moved to ...
+   
+	http://www.stat.auckland.ac.nz/~paul/grid/grid.html
+
+2.  Mathematical annotation is now available in grid.
+
+    Wherever grid expects a string, an expression may be used instead.
+    This covers not only producing mathematical annotation output,
+    but also correctly calculating width and height of expressions,
+    and checking for overlapping expressions.
+
+3.  If you try to save/load a grid grob, it will now fail gracefully
+    rather than seg faulting.
+
+4.  If you save a display list containing grid output, then detach
+    grid, then try to run the display list again, it will now fail 
+    gracefully rather than seg faulting.
+
+5.  All gpar() settings can now be vectors.  Well, they could always
+    be vectors, but now values other than the first one will have an
+    effect.  This will not happen in all contexts, for example, 
+    viewports will only take notice of the first value in each setting,
+    but for graphics functions where multiple items can be output,
+    multiple settings may be sensibly given.  Some examples are:
+
+    # multiple points with different colours
+    grid.points(1:10/11, 1:10/11, gp=gpar(col=1:10))
+
+    # multiple segments with different colours
+    grid.segments(1:10/11, 0, 1:10/11, 1, gp=gpar(col=1:10))
+
+    # multiple points with different sizes
+    grid.points(1:10/11, 1:10/11, size=unit(1:10, "mm"))
+
+    # multiple pieces of text with different font sizes
+    grid.text(1:10, x=1:10/11, gp=gpar(fontsize=10:20))
+
+    # multiple rects with different lineheights (and height is in "lines")
+    grid.rect(width=.05, x=1:10/11,
+              height=unit(1, "mylines"),
+              gp=gpar(lineheight=1:10))
+
+6.  (Because of a fix to R/src/main/engine.c ...)
+    Multiple-line text (i.e., text with "\n"s in it) is now correctly
+    spaced vertically (i.e., takes notice of the current value of 
+    "fontsize").
+    
+    NOTE, however, that multiple-line text still takes no notice of the
+    current value of "lineheight".
+
+7.  Fixed a bug in grid.layout().  It was the case that, if you 
+    entered widths or heights which were not unit objects, they
+    were not converted properly to unit objects.
+
+8.  Modified the defaulting of "just" arguments when a single value
+    is provided.  See the new example in grid.text.
+
+9.  Fixed a bug where grid.points(pch=NULL) would cause a crash.
+    This now defaults pch to the value 1.
+
+10. Added "fontfamily" and "fontface" gpar() settings.  The fontfamily
+    setting will mostly be ignored until devices are modified to take
+    notice of the extra information, BUT this can be used NOW to 
+    specify a Hershey Font family (on all devices).  The fontface 
+    setting is designed to take over from the old "face" setting,
+    but the latter is retained for backward compatibility.
+
+
+Changes from grid_0.5-1 to grid_0.6:
+------------------------------------
+
+1.  Some internal changes to speed up creation of unit objects.  
+    This may have a noticeable effect on drawing legends and anything 
+    that relies on grid frames (e.g., "key"s in lattice).
+
+2.  A couple of bug fixes for "grobwidth" and "grobheight" units.
+    Symptoms were legends not being allocated the correct amount of 
+    space.
+
+    Thanks to Deepayan Sarkar and Peter Kleiweg for help diagnosing
+    the bug and testing the fix.
+
+3.  Added plotViewport() and dataViewport() 
+    convenience function for creating a 
+    viewport that has the typical layout of an R plot.
+
+4.  Altered viewport() function so that layout.pos.row and layout.pos.col
+    can be specified as a sequence and only the range() of that 
+    sequence is used.
+
+5.  Removed most documentation from the package to reduce the download
+    size.  The user's guide and changes file are included with the
+    tar ball, but the other documents are only available via 
+    http://www.stat.auckland.ac.nz/PEOPLE/paul/grid/grid.html
+
+    Also changed the format of the user's guide from postscript to pdf.
+
+6.  Fixed bug in unit.length where the length of a unit.arithmetic object
+    was calculated incorrectly if the length() of the scalar multiplier
+    was longer than the unit.length() of the unit object being multiplied.
+
+7.  Allowed character settings for pch in grid.points()
+
+8.  The crash on Windows platforms when plot history is turned on
+    has been fixed in R version 1.5.  
+
+    This fix means that grid_0.6 will only run on R version >= 1.5.0
+
+9.  Added handling of NULL values for gpar elements.  Except for col
+    and fill, this now means the same as specifying no setting at all
+    for the element -- previous behaviour was a segfault.
+
+
+Changes from grid_0.5 to grid_0.5-1:
+------------------------------------
+
+1.  Fix for some grid bugs.
+    
+    The problems were:
+	(i)   grid output could not be saved in metafile format 
+	(ii)  non-grid output could not be saved in metafile format when
+	      grid was loaded
+	(iii) empty page at start of grid postscript output
+	(iv)  empty page at start of non-grid postscript output when
+	      grid was loaded
+	(v)   copying grid output from x11 to postscript (dev.copy)
+	      produced blank pages in postscript
+
+    These problems were due to two things in grid:
+	(i)  grid created a new page whenever a new device was started.
+	(ii) grid created a new page whenever the display list was
+	     replayed (e.g., when a device was resized or the output
+	     was copied from one device to another)
+
+    Grid now only creates a new page the first time grid output is
+    produced on a device AND only creates a new page for replaying
+    the display list IF there has already been grid output on the device.
+
+
+Changes from grid_0.2 to grid_0.5:
+----------------------------------
+
+1.  R has a new device API and a new graphics engine.  Grid uses these.
+
+    This means that this version will NOT work on R versions before 1.4.0
+
+    Another known "bug" is that this version of grid will crash R if
+    used in Windows with plot history recording turned on (although
+    "add"ing individual grid "plots" to the plot history should still
+    work).
+    
+2.  Added "mystrwidth" and "mystrheight" units;  basically these just
+    complete the set of units which depend on font, fontsize, and/or 
+    lineheight and therefore may refer to the current viewport settings
+    of these parameters OR to the current settings of the grob being
+    drawn.
+
+3.  Added unit.rep function (the base rep() function is not generic
+    so I could not simply write a rep.unit method).
+
+4.  Added new gpar, "gamma", for gamma-correction of colours
+    (defaults to 1).  NOTE that only windows devices will currently
+    respond to on-the-fly changes in gamma.
+
+5.  Added "clip" flag to viewports.  If "clip" is TRUE, then output
+    is clipped to the viewport.
+
+    Clipping obeys only the most recent viewport clip setting.
+    For example, if you clip to viewport1, then clip to viewport2,
+    the clipping region is determined wholly by viewport2, the
+    size and shape of viewport1 is irrelevant (until viewport2
+    is popped of course).
+
+    If a viewport is rotated (because of its own "angle" setting
+    or because it is within another viewport which is rotated) then
+    the "clip" flag is ignored.
+  
+6.  The functions grid.start() and grid.stop() have been removed.
+    grid automatically "registers" with devices.
+
+7.  Grid no longer automatically opens a device when it is loaded.
+    Instead, a device is created, if there are none open, when the
+    first drawing occurs or when the first viewport is pushed.
+
+8.  Added new functions unit.pmin() and unit.pmax() which are unit
+    versions of pmax() and pmin()
+
+9.  Added new function grid.place() which provides a simpler 
+    interface to grid.pack() and is useful for using grid "frame"s
+    as just a convenient way of defining a layout and sticking 
+    things in it.
+
+
+Changes from grid_0.1 to grid_0.2:
+----------------------------------
+
+1. Fixed bug in rotating viewports;  this should be more reliable now.
+
+2. Added grid.line.to() and grid.move.to().  These allow drawing BETWEEN
+   different coordinate systems.  See example in inst/doc/demo3.ps.
+
+3. Added some more demonstrations to the doc directory.
+
+4. Added more test code to the tests directory.
+
+5. Added "grobwidth" and "grobheight" units.  See the document
+   grid/inst/doc/advanced/parentchild.ps
+
+6. Added more detailed documentation to grid/inst/doc/advanced.  This
+   stuff is not as friendly for the reader, but may be useful if you're
+   tearing your hair out wondering why some strange effect is occurring.
+
+7. Changed frames and packing to use the new "grobwidth" and "grobheight"
+   units.  This fixes some problems with frames and packing.
+
+8. Fixed a bug where the gpar settings for "fontsize" and "lineheight"
+   _within a grob_ would not affect the location or size of the grob
+   if they were specified in "lines" or "char" units.
+
+   This required adding new "mylines" and "mychar" units (alternative
+   suggestions for names welcome !) so that you can specify whether
+   a grob's a location/size is in terms of the current viewport's
+   fontsize and lineheight ("lines" and "char") or in terms of its own
+   fontsize and lineheight ("mylines" and "mychar").
+
+9. Added grid.polygon() and grid.circle() primitives
+
+10. Added newpage=TRUE argument to grid.start() so that you can restart
+    grid graphics mode without having to move to a new page.
+
+    For example, try ...
+
+	postscript()
+	grid.start()
+	grid.polygon()
+	grid.stop()
+	grid.start() # moves to new page
+	grid.circle()
+	grid.stop()
+	grid.start(newpage=FALSE) # does NOT move to new page
+	grid.rect()
+	grid.stop()
+	dev.off()
+
+11. Changed interface for pop.viewport().  This now just takes a
+    number of viewports to pop, which defaults to 1.  
+    For example ...
+
+        push.viewport(viewport())
+	pop.viewport(current.viewport())
+
+    ... becomes ...
+    
+        push.viewport(viewport())
+	pop.viewport()
+
+    ... and ...
+
+        vp1 <- viewport()
+	vp2 <- viewport()
+	push.viewport(vp1, vp2)
+	pop.viewport(vp2, vp1)
+
+    ... becomes ...
+
+        vp1 <- viewport()
+	vp2 <- viewport()
+	push.viewport(vp1, vp2)
+	pop.viewport(2)
+	
+12. Speed-up of pushing and popping viewports.  This will probably not
+    be noticeable in normal usage, but makes a big difference for 
+    frames and packing.
+
+Changes from lattice_0.2 to grid_0.1:
+-------------------------------------
+
+0. Change of package name from "lattice" to "grid" (!!!!)
+
+   This means that most user functions have changed from l<something>
+   to grid.<something>
+
+1. Slight speed up of grid.push.viewport and grid.pop.viewport.
+
+2. Added sum() method for units.
+
+   For example, try ...
+
+       grid.rect(w=sum(unit(c(.25,.25), "npc")))
+       grid.rect(w=sum(unit(c(.25,.25), "npc"), unit(1, "cm")), border="red")
+
+3. Changed the usage of grid.edit() slightly.  If you want to specify 
+   several new values at once, you must use grid.prop.list() rather
+   than just list().  For example, for a single new value use ...
+
+       grid.edit(<grob>, col="red")
+
+   ... as before, but for multiple new values use ...
+
+       grid.edit(<grob>, grid.prop.list(col="red", lty="dashed"))
+
+   ... rather than ...
+   
+       grid.edit(<grob>, list(col="red", lty="dashed"))
+
+4. Added a new grid.frame() grob.  This acts a bit like a simple 
+   grid.collection() BUT controls the placement of its children.  
+   You add children using the grid.pack() function.
+
+5. All viewports and grobs now have a "gp" slot which contains a
+   "gpar" object.  This is a list of graphical parameters, which 
+   replaces the specification of individual graphical parameters
+   for each different type of grob.  
+
+   For example, instead of the old ...
+   
+       grid.rect(w=.8, h=.8, border="red")
+
+   ... we have the new ...
+
+       grid.rect(w=.8, h=.8, gp=gpar(border="red"))
+
+   This may seem like a loss (because you have to type more stuff),
+   and it is a loss, but the (hopefully greater) win is that (i) you only
+   have one parameter for all graphical settings, for example, ...
+
+       grid.rect(w=.8, h=.8, gp=gpar(border="red", lwd=3))
+
+   ... and (ii) this applies for all grobs, for example, ...
+
+       grid.text("hi", gp=gpar(col="red", fontsize=10))
+
+   ... and (iii) you can add more graphical parameters with minimal fuss,
+   for example, ...
+
+       grid.text("hi", gp=gpar(col="red", fontsize=10, new.par=whatever))
+
+   ... and (iv) its easier to automate things (see below).
+
+   Graphical parameter settings are "permanent" so, for example, if
+   an axis sets the colour to "red" then all of its children are
+   drawn in "red" unless they set colour to something else.
+
+   For example, try ...
+
+       grid.multipanel(vp = grid.viewport(0.5, 0.5, 0.8, 0.8, 
+                                          gp=gpar(fontsize=20)))
+
+   ... and notice that all of the components of the multipanel take
+   notice of the fontsize setting of the parent viewport (except the
+   axis labels because they explicitly set the fontsize to 20 themselves).
+
+   The setting of graphical parameters is automated;  
+   if you have a slot called "gp" in your grob, Lattice will
+   set the graphical parameters in that slot before calling
+   draw.details() and unset the parameters afterwards.
+
+6. The pushing and popping of "local" viewports has been automated.
+   If you have a slot called "vp" in your grob, Lattice will call
+   grid.push.viewport() on that slot before calling draw.details() 
+   and grid.pop.viewport() afterwards.
+
+7. "collection" grobs and "[x|y]axis" grobs no longer pass editing
+   operations down to their children.  
+
+   This was mainly (only ?) for sharing graphical parameter settings
+   and that duty is now performed by the gpar stuff in point 5 above.
+
+   This is a good thing because there are some cases where passing
+   down editing operations could cause serious damage.  For example, 
+   consider what would have happened if you had edited the "vp" slot
+   of a collection grob (!)
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/changes.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/moveline.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/moveline.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/plotexample.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/plotexample.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/plotexample.R	(revision 2476)
@@ -0,0 +1,465 @@
+### R code from vignette source 'plotexample.Rnw'
+
+###################################################
+### code chunk number 1: plotexample.Rnw:33-38
+###################################################
+library(grDevices)
+library(stats) # for runif()
+library(grid)
+ps.options(pointsize=12)
+options(width=60)
+
+
+###################################################
+### code chunk number 2: plotexample.Rnw:93-95
+###################################################
+x <- runif(10)
+y <- runif(10)
+
+
+###################################################
+### code chunk number 3: datavp
+###################################################
+data.vp <- viewport(x = unit(5, "lines"),
+                    y = unit(4, "lines"),
+                    width = unit(1, "npc") - unit(7, "lines"),
+                    height = unit(1, "npc") - unit(7, "lines"),
+                    just = c("left", "bottom"),
+                    xscale = range(x) + c(-0.05, 0.05)*diff(range(x)),
+                    yscale = range(y) + c(-0.05, 0.05)*diff(range(y)))
+
+
+###################################################
+### code chunk number 4: procplot
+###################################################
+pushViewport(data.vp)
+grid.points(x, y)
+grid.rect()
+grid.xaxis()
+grid.yaxis()
+grid.text("x axis", y = unit(-3, "lines"),
+          gp = gpar(fontsize = 14))
+grid.text("y axis", x = unit(-4, "lines"),
+          gp = gpar(fontsize = 14), rot = 90)
+grid.text("A Simple Plot",
+          y = unit(1, "npc") + unit(1.5, "lines"),
+          gp = gpar(fontsize = 16))
+popViewport()
+
+
+###################################################
+### code chunk number 5: plotexample.Rnw:130-131
+###################################################
+pushViewport(data.vp)
+grid.points(x, y)
+grid.rect()
+grid.xaxis()
+grid.yaxis()
+grid.text("x axis", y = unit(-3, "lines"),
+          gp = gpar(fontsize = 14))
+grid.text("y axis", x = unit(-4, "lines"),
+          gp = gpar(fontsize = 14), rot = 90)
+grid.text("A Simple Plot",
+          y = unit(1, "npc") + unit(1.5, "lines"),
+          gp = gpar(fontsize = 16))
+popViewport()
+
+
+###################################################
+### code chunk number 6: ann1
+###################################################
+pushViewport(data.vp)
+grid.text(date(), x = unit(1, "npc"), y = 0,
+          just = c("right", "bottom"), gp = gpar(col="grey"))
+popViewport()
+
+
+###################################################
+### code chunk number 7: plotexample.Rnw:147-149
+###################################################
+pushViewport(data.vp)
+grid.points(x, y)
+grid.rect()
+grid.xaxis()
+grid.yaxis()
+grid.text("x axis", y = unit(-3, "lines"),
+          gp = gpar(fontsize = 14))
+grid.text("y axis", x = unit(-4, "lines"),
+          gp = gpar(fontsize = 14), rot = 90)
+grid.text("A Simple Plot",
+          y = unit(1, "npc") + unit(1.5, "lines"),
+          gp = gpar(fontsize = 16))
+popViewport()
+pushViewport(data.vp)
+grid.text(date(), x = unit(1, "npc"), y = 0,
+          just = c("right", "bottom"), gp = gpar(col="grey"))
+popViewport()
+
+
+###################################################
+### code chunk number 8: plotexample.Rnw:164-185
+###################################################
+data.vp <- viewport(name = "dataregion",
+                    x = unit(5, "lines"),
+                    y = unit(4, "lines"),
+                    width = unit(1, "npc") - unit(7, "lines"),
+                    height = unit(1, "npc") - unit(7, "lines"),
+                    just = c("left", "bottom"),
+                    xscale = range(x) + c(-0.05, 0.05)*diff(range(x)),
+                    yscale = range(y) + c(-0.05, 0.05)*diff(range(y)))
+pushViewport(data.vp)
+grid.points(x, y)
+grid.rect()
+grid.xaxis()
+grid.yaxis()
+grid.text("x axis", y = unit(-3, "lines"),
+          gp = gpar(fontsize = 14))
+grid.text("y axis", x = unit(-4, "lines"),
+          gp = gpar(fontsize = 14), rot = 90)
+grid.text("A Simple Plot",
+          y = unit(1, "npc") + unit(1.5, "lines"),
+          gp = gpar(fontsize = 16))
+upViewport()
+
+
+###################################################
+### code chunk number 9: plotexample.Rnw:191-195
+###################################################
+downViewport("dataregion")
+grid.text(date(), x = unit(1, "npc"), y  =  0,
+          just = c("right", "bottom"), gp = gpar(col = "grey"))
+upViewport()
+
+
+###################################################
+### code chunk number 10: funcplot
+###################################################
+splot <- function(x = runif(10), y = runif(10), title = "A Simple Plot") {
+    data.vp <- viewport(name = "dataregion",
+                        x = unit(5, "lines"),
+                        y = unit(4, "lines"),
+                        width = unit(1, "npc") - unit(7, "lines"),
+                        height = unit(1, "npc") - unit(7, "lines"),
+                        just = c("left", "bottom"),
+                        xscale = range(x) + c(-.05, .05)*diff(range(x)),
+                        yscale = range(y) + c(-.05, .05)*diff(range(y)))
+    pushViewport(data.vp)
+    grid.points(x, y)
+    grid.rect()
+    grid.xaxis()
+    grid.yaxis()
+    grid.text("y axis", x = unit(-4, "lines"),
+              gp = gpar(fontsize = 14), rot = 90)
+    grid.text(title, y = unit(1, "npc") + unit(1.5, "lines"),
+              gp = gpar(fontsize = 16))
+    upViewport()
+}
+
+
+###################################################
+### code chunk number 11: embed
+###################################################
+grid.rect(gp = gpar(fill = "grey"))
+message <-
+    paste("I could draw all sorts",
+          "of stuff over here",
+          "then create a viewport",
+          "over there and stick",
+          "a scatterplot in it.", sep = "\n")
+grid.text(message, x = 0.25)
+grid.lines(x = unit.c(unit(0.25, "npc") + 0.5*stringWidth(message) +
+           unit(2, "mm"),
+           unit(0.5, "npc") - unit(2, "mm")),
+           y = 0.5,
+           arrow = arrow(angle = 15, type = "closed"),
+           gp = gpar(lwd = 3, fill = "black"))
+pushViewport(viewport(x = 0.5, height = 0.5, width = 0.45, just = "left",
+                      gp = gpar(cex = 0.5)))
+grid.rect(gp = gpar(fill = "white"))
+splot(1:10, 1:10, title = "An Embedded Plot")
+upViewport()
+
+
+###################################################
+### code chunk number 12: ann2 (eval = FALSE)
+###################################################
+## downViewport("dataregion")
+## grid.text(date(), x = unit(1, "npc"), y  =  0,
+##           just = c("right", "bottom"), gp = gpar(col = "grey"))
+## upViewport(0)
+
+
+###################################################
+### code chunk number 13: plotexample.Rnw:271-273
+###################################################
+grid.rect(gp = gpar(fill = "grey"))
+message <-
+    paste("I could draw all sorts",
+          "of stuff over here",
+          "then create a viewport",
+          "over there and stick",
+          "a scatterplot in it.", sep = "\n")
+grid.text(message, x = 0.25)
+grid.lines(x = unit.c(unit(0.25, "npc") + 0.5*stringWidth(message) +
+           unit(2, "mm"),
+           unit(0.5, "npc") - unit(2, "mm")),
+           y = 0.5,
+           arrow = arrow(angle = 15, type = "closed"),
+           gp = gpar(lwd = 3, fill = "black"))
+pushViewport(viewport(x = 0.5, height = 0.5, width = 0.45, just = "left",
+                      gp = gpar(cex = 0.5)))
+grid.rect(gp = gpar(fill = "white"))
+splot(1:10, 1:10, title = "An Embedded Plot")
+upViewport()
+downViewport("dataregion")
+grid.text(date(), x = unit(1, "npc"), y  =  0,
+          just = c("right", "bottom"), gp = gpar(col = "grey"))
+upViewport(0)
+
+
+###################################################
+### code chunk number 14: plotexample.Rnw:300-336
+###################################################
+splot.data.vp <- function(x, y) {
+  viewport(name = "dataregion",
+           x = unit(5, "lines"),
+           y = unit(4, "lines"),
+           width = unit(1, "npc") - unit(7, "lines"),
+           height = unit(1, "npc") - unit(7, "lines"),
+           just = c("left", "bottom"),
+           xscale = range(x) + c(-.05, .05)*diff(range(x)),
+           yscale = range(y) + c(-.05, .05)*diff(range(y)))
+}
+
+splot.title <- function(title) {
+      textGrob(title, name = "title",
+               y = unit(1, "npc") + unit(1.5, "lines"),
+               gp = gpar(fontsize = 16), vp = "dataregion")
+}
+
+splot <- function(x, y, title, name=NULL, draw=TRUE, gp=gpar(), vp=NULL) {
+    spg <- gTree(x = x, y = y, title = title, name = name,
+                 childrenvp  =  splot.data.vp(x, y),
+                 children = gList(rectGrob(name = "border",
+                                           vp = "dataregion"),
+                 xaxisGrob(name = "xaxis", vp = "dataregion"),
+                 yaxisGrob(name = "yaxis", vp = "dataregion"),
+                 pointsGrob(x, y, name = "points", vp = "dataregion"),
+                 textGrob("x axis", y = unit(-3, "lines"), name = "xlab",
+                          gp = gpar(fontsize = 14), vp = "dataregion"),
+                 textGrob("y axis", x = unit(-4, "lines"), name = "ylab",
+                          gp = gpar(fontsize = 14), rot = 90,
+                          vp = "dataregion"),
+                 splot.title(title)),
+                 gp = gp, vp = vp,
+                 cl = "splot")
+    if (draw) grid.draw(spg)
+    spg
+}
+
+
+###################################################
+### code chunk number 15: splotgrob (eval = FALSE)
+###################################################
+## sg <- splot(1:10, 1:10, "Same as Before", name = "splot", draw = FALSE)
+
+
+###################################################
+### code chunk number 16: plotexample.Rnw:353-358
+###################################################
+splot(1:10, 1:10, "Same as Before", name = "splot")
+downViewport("dataregion")
+grid.text(date(), x = unit(1, "npc"), y = 0,
+          just = c("right", "bottom"), gp = gpar(col = "grey"))
+upViewport(0)
+
+
+###################################################
+### code chunk number 17: plotexample.Rnw:406-408
+###################################################
+splot(1:10, 1:10, "Same as Before", name = "splot")
+grid.edit("splot", gp = gpar(cex=0.5))
+
+
+###################################################
+### code chunk number 18: plotexample.Rnw:409-412
+###################################################
+sg <- splot(1:10, 1:10, "Same as Before", name = "splot", draw = FALSE)
+sg <- editGrob(sg, gp = gpar(cex = 0.5))
+grid.draw(sg)
+
+
+###################################################
+### code chunk number 19: plotexample.Rnw:418-420
+###################################################
+splot(1:10, 1:10, "Same as Before", name = "splot")
+grid.edit(gPath("splot", "points"), gp = gpar(col = 1:10))
+
+
+###################################################
+### code chunk number 20: plotexample.Rnw:421-425
+###################################################
+sg <- splot(1:10, 1:10, "Same as Before", name = "splot", draw = FALSE)
+sg <- editGrob(sg, gPath = "points", gp = gpar(col = 1:10))
+grid.draw(sg)
+
+
+
+###################################################
+### code chunk number 21: plotexample.Rnw:433-445
+###################################################
+editDetails.splot <- function(x, specs) {
+    if (any(c("x", "y") %in% names(specs))) {
+        if (is.null(specs$x)) xx <- x$x else xx <- specs$x
+        if (is.null(specs$y)) yy <- x$y else yy <- specs$y
+        x$childrenvp <- splot.data.vp(xx, yy)
+        x <- addGrob(x, pointsGrob(xx, yy, name = "points",
+                                   vp = "dataregion"))
+    }
+  x
+}
+splot(1:10, 1:10, "Same as Before", name = "splot")
+grid.edit("splot", x = 1:100, y = (1:100)^2)
+
+
+###################################################
+### code chunk number 22: plotexample.Rnw:446-449
+###################################################
+sg <- splot(1:10, 1:10, "Same as Before", name = "splot", draw = FALSE)
+sg <- editGrob(sg, x = 1:100, y = (1:100)^2)
+grid.draw(sg)
+
+
+###################################################
+### code chunk number 23: plotexample.Rnw:460-501
+###################################################
+cellname <- function(i, j) paste("cell", i, j, sep = "")
+
+splom.vpTree <- function(n) {
+    vplist <- vector("list", n^2)
+    for (i in 1:n)
+        for (j in 1:n)
+            vplist[[(i - 1)*n + j]] <-
+              viewport(layout.pos.row = i, layout.pos.col = j,
+                       name = cellname(i, j))
+    vpTree(viewport(layout = grid.layout(n, n), name = "cellgrid"),
+    do.call("vpList", vplist))
+}
+
+cellpath <- function(i, j) vpPath("cellgrid", cellname(i, j))
+
+splom <- function(df, name = NULL, draw = TRUE) {
+    n <- dim(df)[2]
+    glist <- vector("list", n*n)
+    for (i in 1:n)
+        for (j in 1:n) {
+            glist[[(i - 1)*n + j]] <-if (i == j)
+                textGrob(paste("diag", i, sep = ""),
+                         gp = gpar(col = "grey"), vp = cellpath(i, j))
+            else if (j > i)
+                textGrob(cellname(i, j),
+                         name = cellname(i, j),
+                         gp = gpar(col = "grey"), vp = cellpath(i, j))
+            else
+                splot(df[,j], df[,i], "",
+                      name = paste("plot", i, j, sep = ""),
+                      vp = cellpath(i, j),
+                      gp = gpar(cex = 0.5), draw = FALSE)
+        }
+    smg <- gTree(name = name, childrenvp = splom.vpTree(n),
+                 children = do.call("gList", glist))
+    if (draw) grid.draw(smg)
+    smg
+}
+
+df <- data.frame(x = rnorm(10), y = rnorm(10), z = rnorm(10))
+splom(df)
+
+
+###################################################
+### code chunk number 24: plotexample.Rnw:506-511
+###################################################
+splom(df)
+grid.edit("plot21::xlab", label = "", redraw = FALSE)
+grid.edit("plot32::ylab", label = "", redraw = FALSE)
+grid.edit("plot21::xaxis", label = FALSE, redraw = FALSE)
+grid.edit("plot32::yaxis", label = FALSE)
+
+
+###################################################
+### code chunk number 25: splomgrob (eval = FALSE)
+###################################################
+## smg <- splom(df, draw = FALSE)
+
+
+###################################################
+### code chunk number 26: plotexample.Rnw:514-520
+###################################################
+smg <- splom(df, draw = FALSE)
+smg <- editGrob(smg, gPath = "plot21::xaxis", label = FALSE)
+smg <- editGrob(smg, gPath = "plot21::xlab", label = "")
+smg <- editGrob(smg, gPath = "plot32::yaxis", label = FALSE)
+smg <- editGrob(smg, gPath = "plot32::ylab", label = "")
+grid.draw(smg)
+
+
+###################################################
+### code chunk number 27: plotexample.Rnw:530-535
+###################################################
+splom(df, name = "splom")
+grid.remove("cell12")
+grid.add("splom", textGrob(date(), name = "date",
+                           gp = gpar(fontface = "italic"),
+                           vp = "cellgrid::cell12"))
+
+
+###################################################
+### code chunk number 28: plotexample.Rnw:536-542
+###################################################
+smg <- splom(df, draw = FALSE)
+smg <- removeGrob(smg, "cell12")
+smg <- addGrob(smg, textGrob(date(), name = "date",
+                             gp = gpar(fontface = "italic"),
+                             vp = "cellgrid::cell12"))
+grid.draw(smg)
+
+
+###################################################
+### code chunk number 29: plotexample.Rnw:550-566
+###################################################
+splom(df, name = "splom")
+grid.remove("cell12")
+grid.add("splom", textGrob(date(), name = "date",
+                           gp = gpar(fontface = "italic"),
+                           vp = "cellgrid::cell12"))
+smg <- grid.get("splom")
+save(smg, file = "splom.RData")
+load("splom.RData")
+plot <- getGrob(smg, "plot31")
+date <- getGrob(smg, "date")
+plot <- editGrob(plot, vp = NULL, gp = gpar(cex = 1))
+date <- editGrob(date, y = unit(1, "npc") - unit(1, "lines"), vp = NULL)
+grid.newpage()
+grid.draw(plot)
+grid.draw(date)
+
+
+
+###################################################
+### code chunk number 30: plotexample.Rnw:567-580
+###################################################
+smg <- splom(df, draw = FALSE)
+smg <- removeGrob(smg, "cell12")
+smg <- addGrob(smg, textGrob(date(), name = "date",
+                             gp = gpar(fontface = "italic"),
+                             vp = "cellgrid::cell12"))
+save(smg, file = "splom.RData")
+load("splom.RData")
+plot <- getGrob(smg, "plot31")
+date <- getGrob(smg, "date")
+plot <- editGrob(plot, vp = NULL, gp = gpar(cex = 1))
+date <- editGrob(date, y = unit(1, "npc") - unit(1, "lines"), vp = NULL)
+grid.draw(plot)
+grid.draw(date)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/nonfinite.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/nonfinite.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/nonfinite.Rnw	(revision 2476)
@@ -0,0 +1,140 @@
+% File src/library/grid/vignettes/nonfinite.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2001-13 Paul Murrell and the R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+%\VignetteIndexEntry{Non-finite values}
+%\VignettePackage{grid}
+\newcommand{\pkg}[1]{{\normalfont\fontseries{b}\selectfont #1}}
+\newcommand{\grid}{\pkg{grid}}
+\setlength{\parindent}{0in}
+\setlength{\parskip}{.1in}
+\setlength{\textwidth}{140mm}
+\setlength{\oddsidemargin}{10mm}
+\title{How \grid{} Responds to Non-Finite Values}
+\author{Paul Murrell}
+
+\begin{document}
+\maketitle
+
+<<echo=FALSE, results=hide>>=
+library(grDevices)
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+@
+
+It is possible to include non-finite values, \texttt{NA}, \texttt{NaN}, {\tt
+  Inf}, and \texttt{-Inf}, in specifications of locations and sizes in
+\grid{} functions.  This document describes how \grid{} responds to
+non-finite values in different cases.
+
+\textbf{viewports} {~} \\
+Non-finite values are not permitted in the location, size, or
+scales of a viewport.  Viewport scales are checked
+when a viewport is created.  It is very hard to be certain that
+locations and sizes are not non-finite when the viewport is created
+so this is only checked
+when the viewport is pushed.
+Non-finite values result in error messages.
+
+\textbf{lines},
+\textbf{segments},
+\textbf{rectangles},
+\textbf{text},
+\textbf{points},
+\textbf{circles} {~} \\
+For all of these primitives, non-finite values for locations or
+sizes result in the corresponding primitive not being drawn.
+The following image provides a simple demonstration.  Each primitive
+is drawn at seven x-locations, with the fourth location made non-finite
+ (as indicated by a grey \texttt{"NA"}).
+
+<<prim1, echo=FALSE, fig=TRUE, results=hide, width=4, height=2, include=FALSE>>=
+pushViewport(viewport(layout = grid.layout(1, 2,
+                      widths = unit(c(1, 1), c("inches", "null")))))
+grid.rect(gp = gpar(col = "grey"))
+pushViewport(viewport(layout.pos.col = 1))
+grid.text(c("segments", "text", "lines", "rectangles", "circles", "points"),
+          x = 1, just = "right", y = c(0.75, 6:2/10), gp = gpar(col = "grey"))
+popViewport()
+pushViewport(viewport(layout.pos.col = 2))
+x <- 1:7/8
+x[4] <- NA
+grid.lines(x, 0.5)
+grid.text(letters[1:5], x, 0.6)
+grid.segments(x, 0.7, x, 0.8)
+grid.points(x, rep(0.2, 7))
+grid.rect(x, 0.4, 0.02, 0.02)
+grid.circle(x, 0.3, 0.02)
+grid.text("NA", 0.5, 2:8/10, gp = gpar(col = "grey"))
+popViewport(2)
+@
+
+\vspace{.5in}
+\includegraphics{nonfinite-prim1}
+
+\newpage
+
+\textbf{lineTo} {~} \\
+A line segment is only drawn if the previous location and the
+new location are both not non-finite.
+
+\textbf{polygon} {~} \\
+A non-finite value breaks the polygon into two separate polygons.
+NOTE that this break happens within the current polygon as specified
+by the \texttt{id} argument.  All polygons with the same \texttt{id}
+receive the same \texttt{gp} settings.
+
+\textbf{arrows} {~} \\
+An arrow head is only drawn if the first or last line segment is
+drawn.
+
+The following image demonstrates the behaviour of these primitives
+where x- and y-locations are seven equally-spaced locations around
+the perimeter of a circle.  In the top-left figure, all locations
+are not non-finite.  In each of the other figures, two locations have
+been made non-finite (indicated in each case by grey text).
+
+<<prim2, echo=FALSE, fig=TRUE, results=hide, include=FALSE>>=
+n <- 7
+primtest2 <- function(nas, na) {
+    t <- seq(0, 2*pi, length = n+1)[-(n+1)]
+    y <- 0.5 + 0.4*sin(t)
+    x <- 0.5 + 0.4*cos(t)
+    if (any(nas))
+        grid.text(paste("NA", (1:n)[nas], sep = ""),
+                  x[nas], y[nas], gp = gpar(col = "grey"))
+    x[nas] <- na
+    y[nas] <- na
+    grid.move.to(x[1], y[1])
+    for (i in 2:n)
+        grid.line.to(x[i], y[i], gp = gpar(lty = "dashed", lwd = 5))
+    grid.polygon(x, y, gp = gpar(fill = "grey", col = NULL))
+    grid.lines(x, y, arrow = arrow())
+}
+celltest <- function(r, c, nas, na) {
+    pushViewport(viewport(layout.pos.col = c, layout.pos.row = r))
+    primtest2(nas, na)
+    grid.rect(gp = gpar(col = "grey"))
+    popViewport()
+}
+cellnas <- function(i) {
+    temp <- rep(FALSE, n)
+    temp[i] <- TRUE
+    temp[n - 3 + i] <- TRUE
+    temp
+}
+pushViewport(viewport(layout = grid.layout(2, 2)))
+celltest(1, 1, rep(FALSE, n), NA)
+celltest(1, 2, cellnas(1), NA)
+celltest(2, 1, cellnas(2), NA)
+celltest(2, 2, cellnas(3), NA)
+popViewport()
+@
+
+\vspace{.5in}
+\includegraphics{nonfinite-prim2}
+\end{document}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/frame.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/frame.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/frame.Rnw	(revision 2476)
@@ -0,0 +1,389 @@
+% File src/library/grid/vignettes/frame.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2001-13 Paul Murrell and the R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+%\VignetteIndexEntry{Frames and packing grobs}
+%\VignettePackage{grid}
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\pkg}[1]{{\normalfont\fontseries{b}\selectfont #1}}
+\newcommand{\grid}{\pkg{grid}}
+\newcommand{\R}{{\sffamily R}}
+\setlength{\parindent}{0in}
+\setlength{\parskip}{.1in}
+\setlength{\textwidth}{140mm}
+\setlength{\oddsidemargin}{10mm}
+
+\title{A GUI-Builder Approach to \grid{} Graphics}
+\author{Paul Murrell}
+
+\begin{document}
+\maketitle
+
+<<echo=FALSE, results=hide>>=
+library(grDevices)
+library(stats) # for runif
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+@
+Grid contains a lot of support for locating, sizing, and arranging
+graphical components on a device and with respect to each other.
+However, most of this support relies on \emph{either} the parent
+object dictating both location and size (layouts) \emph{or} the child
+dictating both location and size.
+
+Some sorts of arrangements are more conveniently handled by having the
+parent dictate the location, but letting the child dictate the size.
+This is the situation for GUI-builders (software which forms
+arrangements of GUI components or widgets).  The approach taken by
+(many ?) GUI-builders is to allow the user to create a parent
+\emph{frame} and then \emph{pack} widgets into this frame.  The frame
+locates and arranges the children with the help of hints such as
+``place this widget at the bottom of the frame'', and the children
+dictate what size they would like to be.
+
+This document describes a first attempt at such an interface for
+arranging Grid graphical objects.
+
+\section*{The \code{"frame"} grob}
+You can create a \code{"frame"} graphical object using the function
+\code{frameGrob()}.  You must assign the result to a variable in order
+to pack grobs into it.
+
+<<results=hide>>=
+gf <- frameGrob()
+@
+\section*{The \code{packGrob()} function}
+Having created a frame, you can then pack other graphical objects into
+it using the \code{packGrob()} function.  This function has a complex
+interface which allows for a variety of methods of packing graphical
+objects.  The required arguments are:
+\begin{description}
+\item[\code{frame}] is a \code{"frame"} object created by \code{grid.frame}.
+\item[\code{grob}] is the grob to pack into the frame.
+\end{description}
+The remaining arguments specify where the grob is located in the frame
+and possibly how much space the grob should occupy.  The frame is effectively
+just a layout;  you can add grobs to existing rows and columns
+or you can append the grob in a new row and/or column.  If the
+grob is added to an existing row then the height of
+that row  becomes the maximum of the new height and
+the previous height.  If the row  is new then it just
+gets the specified height.  Similar rules apply for column widths.
+\begin{description}
+\item[\code{col}] is the column to put the grob in.  This can be 1 greater than
+the existing number of columns (in which case a new column is added).
+\item[\code{row}]  is like \code{col} but for rows.
+\item[\code{col.after}] specifies that the grob should be put in a
+new column inserted between \code{col.after} and \code{col.after + 1}.
+\item[\code{col.before}] specifies that the grob should be put in a
+new column inserted between \code{col.before} and \code{col.before + 1}.
+\item[\code{row.after} and \code{row.before}] do what you would expect.
+\item[\code{side}]  specifies which side to append the new grob to.
+The valid values are \code{"left"}, \code{"right"}, \code{"bottom"},
+and \code{"top"}.
+\item[\code{width}]  is the width of the row that the grob is being packed
+into.  If this is not given then the grob supplies the width.
+\item[\code{height}] is like \code{width} but for rows.
+\end{description}
+It is possible to modify this default behaviour.  For example, it is possible
+to add a grob to a row and force that row to have the specified height
+by setting \code{force.height=TRUE} (and similarly for column widths).
+It is also possible to pack a graphical object into several rows or
+columns at once (although you cannot simultaneously affect the heights or
+widths of those rows and columns).
+
+The result of this function is the modified frame, so you must
+assign the result to a variable.
+
+<<results=hide>>=
+gf <- packGrob(gf, textGrob("Hello frame!"))
+@
+\section*{\code{"grobwidth"} and \code{"grobheight"} units}
+
+A \code{"frame"} object allows a grob to specify its size by making
+use of \code{"grobwidth"} and \code{"grobheight"} units.
+These units may, of course, be used outside of frames too so
+their use is described here.
+
+Consider a simple example where I want to draw a rectangle around
+a piece of text.  I can get the size of the piece of text from the
+\code{"text"} grob as follows:
+
+<<frame1, include=FALSE, width=4, height=2, fig=TRUE, results=hide>>=
+st <- grid.text("some text")
+grid.rect(width = unit(1, "grobwidth", st),
+          height = unit(1, "grobheight", st))
+@
+\begin{center}
+\includegraphics[height=1in, width=2in]{frame-frame1}
+\end{center}
+@
+You could do the same thing with simple \code{"strwidth"}
+and \code{"strheight"} units, but \code{"grobwidth"} and \code{"grobheight"}
+give you a lot more power.  The biggest gain is that you
+can get the size of other objects besides pieces of text (more on that
+soon).  Another thing you can do is provide a ``reference'' to a grob
+rather than the grob itself; you do this by giving the name of a grob.
+What this does is make the unit ``dynamic'' so that changes in the
+grob affect the unit.  The following is a dynamic version of the
+previous example.
+
+<<frame1, include=FALSE, width=4, height=2, fig=TRUE, results=hide>>=
+grid.text("some text", name = "st")
+grid.rect(width = unit(1, "grobwidth", "st"),
+          height = unit(1, "grobheight", "st"))
+@
+Now watch what happens if I modify the text grob named \code{"st"}:
+
+<<results=hide, eval=FALSE>>=
+grid.edit("st", gp = gpar(fontsize = 20))
+
+<<frame2, echo=FALSE, include=FALSE, width=4, height=2, fig=TRUE, results=hide>>=
+my.text <- textGrob("some text")
+my.text <- editGrob(my.text, gp = gpar(fontsize = 20))
+my.rect <- rectGrob(width = unit(1, "grobwidth", my.text),
+                    height = unit(1, "grobheight", my.text))
+grid.draw(my.text)
+grid.draw(my.rect)
+@
+\begin{center}
+\includegraphics[height=1in, width=2in]{frame-frame2}
+\end{center}
+@
+Similarly, I can change the text itself:
+
+<<results=hide, eval=FALSE>>=
+grid.edit("st", label="some different text")
+
+<<frame3, echo=FALSE, include=FALSE, width=4, height=2, fig=TRUE, results=hide>>=
+my.text <- textGrob("some text")
+my.text <- editGrob(my.text, gp = gpar(fontsize = 20))
+my.text <- editGrob(my.text, label = "some different text")
+my.rect <- rectGrob(width = unit(1, "grobwidth", my.text),
+                    height = unit(1, "grobheight", my.text))
+grid.draw(my.text)
+grid.draw(my.rect)
+@
+\begin{center}
+\includegraphics[height=1in, width=2in]{frame-frame3}
+\end{center}
+@
+\section*{The \code{widthDetails} and \code{heightDetails} generic functions}
+
+The calculation of \code{"grobwidth"} and \code{"grobheight"} units
+is a bit complicated, but fortunately most of it is automated.
+The simple part is that a grob provides a normal \code{"unit"} object
+to express its width or height.  The complication comes because that
+\code{"unit"} object has to be evaluated in the correct context;  in
+particular, if the grob has a non-\code{NULL} \code{vp} argument then
+those viewports have to be pushed so that the size of the grob is
+the size it would be when it is drawn.  This is achieved by calling the
+\code{preDrawDetails()} function for the grob and in most cases what
+happens by default will be correct.  The thing to avoid is having
+any viewport operations in a \code{drawDetails()} method for your
+grob;  they should go in a  \code{preDrawDetails()} method.
+
+All that needs to be written (usually) are the functions that
+provide the \code{"unit"} objects.  These functions need to be
+\code{widthDetails} and \code{heightDetails} methods.
+
+The default methods return \code{unit(1, "null")}
+so your grob will be of this size unless you write your own methods.
+
+The classic example methods are those for \code{"text"} grobs;  these
+return \code{unit(1, "mystrwidth", <text grob label>)} and
+\code{unit(1, "mystrheight", <text grob label>)} respectively.
+
+The other very important examples of these methods are those for
+\code{"frame"} grobs.  These return the \code{sum} of the
+widths (heights) of the columns (rows) of the layout that has been
+built up by packing grobs into the frame.  This means that
+when a \code{"frame"} grob is packed within another \code{"frame"} grob
+the parent automatically leaves enough room for the child.
+
+Another useful pair of examples are those for \code{"rect"} grobs.
+These methods make use of the \code{absolute.size} function.
+When a grob is asked to specify its size, it makes sense to respond
+with the grob's width and height if the grob has an ``absolute'' size
+(e.g., \code{"inches"}, \code{"cm"}, \code{"lines"}, etc;
+ i.e., the grob knows exactly how big itself is).
+On the other hand, it does not make sense to respond with the grob's
+width and height if the grob has a ``relative'' size (e.g., \code{"npc"} or
+\code{"native"};  i.e.,
+the grob needs to know about it's parent's size before it can figure
+out its own).  The \code{absolute.size} function leaves absolute
+units alone, but converts relative units to \code{"null"} units
+(i.e., the child says to the parent, ``you decide how big I should be''), so
+you can return something like \code{absolute.size(width(<grob>))} in order
+to always give a sensible answer.
+
+@
+\section*{Examples}
+The original motivating example for this GUI-builder approach was
+to be able to produce a quite general-purpose legend grob.
+
+A legend consists of data symbols and associated textual descriptions.
+In order to be quite general, it would be nice to allow, for example,
+multiple lines of text per data symbol.  Rather than having to look at
+the text supplied for the legend in order to determine the arrangement
+of the legend, it would be nice to be able to simply specify the
+composition of the legend and let it figure out the arrangement for
+us.  The code below defines just such a legend grob, using the new
+\code{"frame"} grob and \code{packGrob()} function.  Some points to
+note are:
+
+\begin{itemize}
+\item The use of \code{border}s to create space around the legend
+components.
+\item The size of the data symbol component is specified, but the
+size of the text components are taken from the \code{"text"} grobs.
+
+\item The heights of the rows in the legend will be the maximum of
+$\code{vgap} + \code{unit(1, "lines")}$ and $\code{vgap} +
+\code{unit(1, "grobheight", <text grob>)}$.
+
+\item We have two functions, one for generating a grob and one
+for producing output.
+\end{itemize}
+
+<<>>=
+legendGrob <- function(pch, labels, frame = TRUE,
+                        hgap = unit(1, "lines"), vgap = unit(1, "lines"),
+                        default.units = "lines",
+                        vp = NULL) {
+  nkeys <- length(labels)
+  gf <- frameGrob(vp = vp)
+  for (i in 1:nkeys) {
+    if (i == 1) {
+        symbol.border <- unit.c(vgap, hgap, vgap, hgap)
+        text.border <- unit.c(vgap, unit(0, "npc"), vgap,
+            hgap)
+    } else {
+        symbol.border <- unit.c(vgap, hgap, unit(0, "npc"), hgap)
+        text.border <- unit.c(vgap, unit(0, "npc"), unit(0, "npc"), hgap)
+    }
+    gf <- packGrob(gf, pointsGrob(0.5, 0.5, pch = pch[i]),
+                   col = 1, row = i, border = symbol.border,
+                   width = unit(1, "lines"),
+                   height = unit(1, "lines"), force.width = TRUE)
+    gf <- packGrob(gf, textGrob(labels[i], x = 0, y = 0.5,
+                                just = c("left", "centre")),
+                   col = 2, row = i, border = text.border)
+  }
+  gf
+}
+
+grid.legend <- function(pch, labels, frame = TRUE,
+                        hgap = unit(1, "lines"), vgap = unit(1, "lines"),
+                        default.units = "lines", draw = TRUE,
+                        vp = NULL) {
+  gf <- legendGrob(pch, labels, frame, hgap, vgap, default.units, vp)
+  if (draw) grid.draw(gf)
+  gf
+}
+@
+The next piece of code shows the \code{grid.legend()} function being
+used procedurally;  the output is shown below the code.
+
+<<legend, include=FALSE, width=4, height=2, fig=TRUE, results=hide>>=
+grid.legend(1:3, c("one line", "two\nlines", "three\nlines\nof text"))
+
+@
+\begin{center}
+\includegraphics[height=2in, width=4in]{frame-legend}
+\end{center}
+
+@
+The legend example might not seem too difficult to do by hand rather
+than using frames and packing, but the next example shows how
+useful it can be.
+
+Suppose you want to arrange a legend next to a plot.  This requires
+leaving enough space for the legend and then filling the remaining
+space with the plot.  This requires figuring out how much space the
+legend needs, and that is a task that is neither trivial nor
+easy to cater for in the general case.  Ideally, we want to know
+as little as possible about the legend.
+
+With the GUI-builder
+approach this becomes extremely simple.  The code below
+shows how the construction of such a scene might be performed; the
+output from the code is again shown below.
+
+The following points are noteworthy:
+
+\begin{itemize}
+\item We don't need to know anything about how the legend was
+constructed;  it could be any sort of grob.
+\item We specify the height of the legend to be \code{unit(1, "null")}
+so that it will occupy the full height of the plot.  If we
+did not do this then the plot would be forced to be the height of
+the legend (because of the way that \code{"null"} units interact
+with other units).
+\item The width of the legend is calculated from the contents of the
+legend because the legend is a \code{"frame"} grob.
+\item The dimensions of the ``plot'' default to \code{unit(1, "null")}
+because \code{"collection"} grobs have no width or height methods, which
+means that the plot fills up whatever space remains once the
+legend has been accommodated.
+\end{itemize}
+
+<<plot, echo=FALSE, include=FALSE, fig=TRUE, results=hide>>=
+top.vp <- viewport(width = 0.8, height = 0.8)
+pushViewport(top.vp)
+x <- runif(10)
+y1 <- runif(10)
+y2 <- runif(10)
+pch <- 1:3
+labels <- c("Girls", "Boys", "Other")
+gf <- frameGrob()
+plt <- gTree(children = gList(rectGrob(),
+                              pointsGrob(x, y1, pch = 1),
+                              pointsGrob(x, y2, pch = 2),
+                              xaxisGrob(),
+                              yaxisGrob()))
+gf <- packGrob(gf, plt)
+gf <- packGrob(gf, legendGrob(pch, labels),
+               height = unit(1, "null"), side = "right")
+grid.rect(gp = gpar(col = "grey"))
+grid.draw(gf)
+popViewport()
+grid.rect(gp = gpar(lty = "dashed"), width = .99, height = .99)
+@
+\begin{center}
+\includegraphics{frame-plot}
+\end{center}
+@
+\section*{Notes}
+\begin{enumerate}
+\item There are \code{grid.frame()} and \code{grid.pack()} equivalents
+for these functions, but these are really only useful to see the
+changes in the frame as each packing operation takes place.
+
+\item This frame-and-packing stuff is easier to use, \emph{but}
+(in almost all cases) it is less efficient than specifying the
+arrangement by hand.  There is consequently a penalty to pay in
+terms of memory (inconsequential I think) and in terms of speed
+(noticeably slower).
+
+Perhaps one sensible use of these functions is to
+build an image interactively using the simple arguments,
+which will be slow, then attempt to speed up the drawing
+by exploring some of the more advanced arguments.
+
+One way to speed things up a bit is to specify the layout when
+the frame is initially created and then use the \code{placeGrob()} function
+to put grobs into existing rows and columns.
+
+The speed penalty in the cases I have seen are mostly due to the time
+taken to generate the (sometimes very) complicated unit objects that
+express the heights and widths of the rows and columns of the frame
+layout.  Future effort will be put into speeding up the creation of
+unit objects.
+\end{enumerate}
+\end{document}
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/sharing.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/sharing.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/sharing.Rnw	(revision 2476)
@@ -0,0 +1,115 @@
+% File src/library/grid/vignettes/sharing.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2001-13 Paul Murrell and the R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+%\VignetteIndexEntry{Modifying multiple grobs simultaneously}
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\pkg}[1]{{\normalfont\fontseries{b}\selectfont #1}}
+\newcommand{\grid}{\pkg{grid}}
+\newcommand{\R}{{\sffamily R}}
+\setlength{\parindent}{0in}
+\setlength{\parskip}{.1in}
+\title{An Example of ``Linking'' Graphical Objects in \grid{}}
+\author{Paul Murrell}
+
+\begin{document}
+\maketitle
+
+<<echo=FALSE, results=hide>>=
+library(grDevices)
+library(graphics)
+library(stats) # for rnorm
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+@
+Suppose that I am drawing two graphs on a page, which are the results
+from two subjects in an experiment.  I want the graphs to have the same
+axes to aid in comparison of the subjects.
+
+First of all, I will split the page up into two bits for the two graphs.
+
+<<axes1, eval=FALSE, results=hide>>=
+pushViewport(viewport(layout = grid.layout(1, 2, respect = TRUE)))
+@
+Now I generate some data and draw the first plot.
+
+<<axes2, eval=FALSE, results=hide>>=
+x <- 1:10
+y1 <- rnorm(10)
+vp1a <- viewport(layout.pos.col = 1)
+vp1b <- viewport(width = 0.6, height = 0.6,
+                 xscale = c(0, 11), yscale = c(-4, 4))
+pushViewport(vp1a, vp1b)
+grid.xaxis(name = "xaxis")
+grid.yaxis(name = "yaxis")
+grid.points(x, y1)
+popViewport(2)
+@
+Notice that I have named the graphical objects for the axes.
+When I draw the second plot I will use the same names for the
+axis objects.
+
+<<axes3, eval=FALSE, results=hide>>=
+y2 <- rnorm(10)
+vp2a <- viewport(layout.pos.col = 2)
+vp2b <- viewport(width = 0.6, height = 0.6,
+                 xscale = c(0, 11), yscale = c(-4, 4))
+pushViewport(vp2a, vp2b)
+grid.xaxis
+grid.xaxis(name = "xaxis")
+grid.yaxis(name = "yaxis")
+grid.points(x, y2)
+popViewport(2)
+@
+The output looks like the figure below.
+
+<<shared, results=hide, fig=TRUE, echo=FALSE, width=4, height=2, include=FALSE>>=
+<<axes1>>
+<<axes2>>
+<<axes3>>
+
+@
+\begin{center}
+\includegraphics[width=4in, height=2in]{sharing-shared}
+\end{center}
+@
+
+Because I have used the same name for the axis objects in both plots,
+ I can edit the axes for both plots
+simultaneously rather than having to edit each one in turn.
+For example ...
+
+<<axesedit, eval=FALSE, results=hide>>=
+grid.edit("xaxis", at = c(1, 5, 9), global = TRUE)
+
+@
+The output now looks like the figure below.
+
+<<shared2, results=hide, echo=FALSE>>=
+postscript("shared2-%02d.eps", onefile = FALSE, paper = "special",
+           width = 4, height = 2)
+<<axes1>>
+<<axes2>>
+<<axes3>>
+<<axesedit>>
+dev.off()
+
+pdf("shared2-%02d.pdf", onefile = FALSE, width = 4, height = 2)
+<<axes1>>
+<<axes2>>
+<<axes3>>
+<<axesedit>>
+dev.off()
+@
+\begin{center}
+\includegraphics[width=4in, height=2in]{shared2-02}
+\end{center}
+@
+
+This might seem a very small gain in this example, but it is
+potentially of great use in, for example, the implementation of a scatterplot
+matrix.
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/displaylist.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/displaylist.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/displaylist.R	(revision 2476)
@@ -0,0 +1,130 @@
+### R code from vignette source 'displaylist.Rnw'
+
+###################################################
+### code chunk number 1: displaylist.Rnw:30-36
+###################################################
+library(grDevices)
+library(graphics) # for plot()
+library(stats) # for runif()
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+
+
+###################################################
+### code chunk number 2: guts1 (eval = FALSE)
+###################################################
+## plot(1:10)
+## par(new = TRUE)
+## grid.rect(width = 0.5, height = 0.5, gp = gpar(lwd = 3), name = "gr")
+## 
+
+
+###################################################
+### code chunk number 3: ex1
+###################################################
+plot(1:10)
+par(new = TRUE)
+grid.rect(width = 0.5, height = 0.5, gp = gpar(lwd = 3), name = "gr")
+
+grid.rect(width = 0.99, height = 0.99, gp = gpar(lty = "dashed"))
+
+
+###################################################
+### code chunk number 4: ex2
+###################################################
+grid.rect(width = 0.5, height = 0.5, gp = gpar(col = "red", lwd = 3))
+grid.rect(width = 0.99, height = 0.99, gp = gpar(lty = "dashed"))
+
+
+
+###################################################
+### code chunk number 5: displaylist.Rnw:106-107 (eval = FALSE)
+###################################################
+## grid.edit("gr", gp = gpar(col = "red", lwd = 3))
+
+
+###################################################
+### code chunk number 6: displaylist.Rnw:137-138
+###################################################
+grid.rect(width = convertWidth(unit(1, "inches"), "npc"))
+
+
+###################################################
+### code chunk number 7: displaylist.Rnw:146-151
+###################################################
+drawDetails.myrect <- function(x, recording) {
+    gr <- rectGrob(width = convertWidth(unit(1, "inches"), "npc"))
+    grid.draw(gr)
+}
+grid.draw(grob(cl = "myrect"))
+
+
+###################################################
+### code chunk number 8: displaylist.Rnw:165-181
+###################################################
+x <- c(0.88, 1.00, 0.67, 0.34)
+y <- c(0.87, 0.43, 0.04, 0.94)
+z <- matrix(runif(4*2), ncol = 2)
+
+maxpiesize <- unit(1, "inches")
+totals <- apply(z, 1, sum)
+sizemult <- totals/max(totals)
+
+gs <- segmentsGrob(x0 = unit(c(rep(0, 4), x),
+                             rep(c("npc", "native"), each = 4)),
+                   x1 = unit(c(x, x), rep("native", 8)),
+                   y0 = unit(c(y, rep(0, 4)),
+                             rep(c("native", "npc"), each = 4)),
+                   y1 = unit(c(y, y), rep("native", 8)),
+                   gp = gpar(lty = "dashed", col = "grey"))
+gr <- rectGrob(gp = gpar(col = "grey", fill = "white", lty = "dashed"))
+
+
+###################################################
+### code chunk number 9: displaylist.Rnw:188-206
+###################################################
+drawDetails.pieplot <- function(x, recording) {
+    plot(x$x, x$y, xlim = c(-0.2, 1.2), ylim = c(-0.2, 1.2), type = "n")
+    vps <- baseViewports()
+    pushViewport(vps$inner, vps$figure, vps$plot, recording = FALSE)
+    grid.draw(x$gs, recording = FALSE)
+    for (i in 1:4) {
+        pushViewport(viewport(x = unit(x$x[i], "native"),
+                              y = unit(x$y[i], "native"),
+                              width = x$sizemult[i]*x$maxpiesize,
+                              height = x$sizemult[i]*x$maxpiesize),
+                     recording = FALSE)
+        grid.draw(x$gr, recording = FALSE)
+        par(plt = gridPLT(), new = TRUE)
+        pie(x$z[i, ], radius = 1, labels = rep("", 2))
+        popViewport(recording = FALSE)
+    }
+    popViewport(3, recording = FALSE)
+}
+
+
+###################################################
+### code chunk number 10: displaylist.Rnw:215-220
+###################################################
+if (suppressWarnings(require("gridBase", quietly = TRUE))) {
+grid.draw(grob(x = x, y = y, z = z,
+               maxpiesize = maxpiesize, sizemult = sizemult,
+               gs = gs, gr = gr, cl = "pieplot"))
+}
+
+
+###################################################
+### code chunk number 11: displaylist.Rnw:236-245
+###################################################
+drawDetails.mylegend <- function(x, recording) {
+    x <- 0:64/64
+    y <- sin(3*pi*x)
+    plot(x, y, type = "l", col = "blue",
+         main = "points with bg & legend(*, pt.bg)")
+    points(x, y, pch = 21, bg = "white")
+    legend(.4,1, "sin(c x)", pch = 21, pt.bg = "white", lty = 1, col = "blue")
+}
+grid.draw(grob(cl = "mylegend"))
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/nonfinite.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/nonfinite.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/frame.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/frame.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/rotated.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/rotated.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/rotated.R	(revision 2476)
@@ -0,0 +1,188 @@
+### R code from vignette source 'rotated.Rnw'
+
+###################################################
+### code chunk number 1: rotated.Rnw:23-29
+###################################################
+library(grDevices)
+library(graphics) # for boxplot
+library(stats) # for rnorm
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+
+
+###################################################
+### code chunk number 2: rotated.Rnw:35-38
+###################################################
+pushViewport(viewport(h = .8, w = .8, angle = 15))
+grid.multipanel(newpage = FALSE)
+popViewport()
+
+
+###################################################
+### code chunk number 3: complex1
+###################################################
+x <- rnorm(50)
+y <- x + rnorm(50, 1, 2)
+
+
+###################################################
+### code chunk number 4: complex2
+###################################################
+# We will extend the axes over the entire region so
+# extrapolate scale from main data region
+scale <- extendrange(r = range(x,y))
+extscale <- c(min(scale), max(scale)+diff(scale)*1/3)
+
+
+###################################################
+### code chunk number 5: complex3
+###################################################
+lay <- grid.layout(2, 2,
+                   widths = unit(c(3, 1), "inches"),
+                   heights = unit(c(1, 3), "inches"))
+vp1 <- viewport(width = unit(4, "inches"), height = unit(4, "inches"),
+                layout = lay, xscale = extscale, yscale = extscale)
+
+
+###################################################
+### code chunk number 6: complex4
+###################################################
+grid.newpage()
+pushViewport(vp1)
+grid.rect()
+grid.xaxis()
+grid.text("Test", y = unit(-3, "lines"))
+grid.yaxis()
+grid.text("Retest", x = unit(-3, "lines"), rot = 90)
+
+
+###################################################
+### code chunk number 7: complex5
+###################################################
+vp2 <- viewport(layout.pos.row = 2, layout.pos.col = 1,
+                xscale = scale, yscale = scale)
+pushViewport(vp2)
+grid.lines()
+grid.points(x, y, gp = gpar(col = "blue"))
+popViewport()
+
+
+###################################################
+### code chunk number 8: complex6
+###################################################
+diffs <- (y - x)
+rdiffs <- range(diffs)
+ddiffs <- diff(rdiffs)
+bxp <- boxplot(diffs, plot = FALSE)
+vp3 <- viewport(x = unit(3, "inches"),
+                y = unit(3, "inches"),
+                width = unit(.5, "inches"),
+                # NOTE that the axis on the boxplot represents
+                # actual (y - x) values BUT to make
+                # the bits of the boxplot line
+                # up with the data points we have to plot
+                # (y - x)/sqrt(2)
+                # Hence the sin(pi/4) below
+                height = unit(ddiffs*sin(pi/4)/diff(scale)*3, "inches"),
+                just = c("centre", "center"),
+                angle = 45,
+	        gp = gpar(col = "red"),
+                yscale = c(-ddiffs/2, ddiffs/2))
+pushViewport(vp3)
+left <- -.3
+width <- .8
+middle <- left + width/2
+grid.rect(x = left, y = unit(bxp$conf[1,1], "native"),
+          width = width, height = unit(diff(bxp$conf[,1]), "native"),
+          just = c("left", "bottom"),
+	  gp = gpar(col = NULL, fill = "orange"))
+grid.rect(x = left, y = unit(bxp$stats[4,1], "native"),
+          width = width, height = unit(diff(bxp$stats[4:3,1]), "native"),
+          just = c("left", "bottom"))
+grid.rect(x = left, y = unit(bxp$stats[3,1], "native"),
+          width = width, height = unit(diff(bxp$stats[3:2,1]), "native"),
+          just = c("left", "bottom"))
+grid.lines(x = c(middle, middle), y = unit(bxp$stats[1:2,1], "native"))
+grid.lines(x = c(middle, middle), y = unit(bxp$stats[4:5,1], "native"))
+grid.lines(x = c(middle-.1, middle+.1), y = unit(bxp$stats[1,1], "native"))
+grid.lines(x = c(middle-.1, middle+.1), y = unit(bxp$stats[5,1], "native"))
+np <- length(bxp$out)
+if (np > 0)
+  grid.points(x = rep(middle, np), y = unit(bxp$out, "native"))
+grid.yaxis(main = FALSE)
+popViewport(2)
+
+
+
+###################################################
+### code chunk number 9: rotated.Rnw:144-150
+###################################################
+x <- rnorm(50)
+y <- x + rnorm(50, 1, 2)
+# We will extend the axes over the entire region so
+# extrapolate scale from main data region
+scale <- extendrange(r = range(x,y))
+extscale <- c(min(scale), max(scale)+diff(scale)*1/3)
+lay <- grid.layout(2, 2,
+                   widths = unit(c(3, 1), "inches"),
+                   heights = unit(c(1, 3), "inches"))
+vp1 <- viewport(width = unit(4, "inches"), height = unit(4, "inches"),
+                layout = lay, xscale = extscale, yscale = extscale)
+grid.newpage()
+pushViewport(vp1)
+grid.rect()
+grid.xaxis()
+grid.text("Test", y = unit(-3, "lines"))
+grid.yaxis()
+grid.text("Retest", x = unit(-3, "lines"), rot = 90)
+vp2 <- viewport(layout.pos.row = 2, layout.pos.col = 1,
+                xscale = scale, yscale = scale)
+pushViewport(vp2)
+grid.lines()
+grid.points(x, y, gp = gpar(col = "blue"))
+popViewport()
+diffs <- (y - x)
+rdiffs <- range(diffs)
+ddiffs <- diff(rdiffs)
+bxp <- boxplot(diffs, plot = FALSE)
+vp3 <- viewport(x = unit(3, "inches"),
+                y = unit(3, "inches"),
+                width = unit(.5, "inches"),
+                # NOTE that the axis on the boxplot represents
+                # actual (y - x) values BUT to make
+                # the bits of the boxplot line
+                # up with the data points we have to plot
+                # (y - x)/sqrt(2)
+                # Hence the sin(pi/4) below
+                height = unit(ddiffs*sin(pi/4)/diff(scale)*3, "inches"),
+                just = c("centre", "center"),
+                angle = 45,
+	        gp = gpar(col = "red"),
+                yscale = c(-ddiffs/2, ddiffs/2))
+pushViewport(vp3)
+left <- -.3
+width <- .8
+middle <- left + width/2
+grid.rect(x = left, y = unit(bxp$conf[1,1], "native"),
+          width = width, height = unit(diff(bxp$conf[,1]), "native"),
+          just = c("left", "bottom"),
+	  gp = gpar(col = NULL, fill = "orange"))
+grid.rect(x = left, y = unit(bxp$stats[4,1], "native"),
+          width = width, height = unit(diff(bxp$stats[4:3,1]), "native"),
+          just = c("left", "bottom"))
+grid.rect(x = left, y = unit(bxp$stats[3,1], "native"),
+          width = width, height = unit(diff(bxp$stats[3:2,1]), "native"),
+          just = c("left", "bottom"))
+grid.lines(x = c(middle, middle), y = unit(bxp$stats[1:2,1], "native"))
+grid.lines(x = c(middle, middle), y = unit(bxp$stats[4:5,1], "native"))
+grid.lines(x = c(middle-.1, middle+.1), y = unit(bxp$stats[1,1], "native"))
+grid.lines(x = c(middle-.1, middle+.1), y = unit(bxp$stats[5,1], "native"))
+np <- length(bxp$out)
+if (np > 0)
+  grid.points(x = rep(middle, np), y = unit(bxp$out, "native"))
+grid.yaxis(main = FALSE)
+popViewport(2)
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/viewports.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/viewports.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/viewports.R	(revision 2476)
@@ -0,0 +1,288 @@
+### R code from vignette source 'viewports.Rnw'
+
+###################################################
+### code chunk number 1: viewports.Rnw:26-31
+###################################################
+library(grDevices)
+library(stats) # for runif()
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+
+
+###################################################
+### code chunk number 2: viewports.Rnw:50-53
+###################################################
+pushViewport(viewport())
+upViewport()
+pushViewport(viewport())
+
+
+###################################################
+### code chunk number 3: viewports.Rnw:68-70
+###################################################
+grid.newpage()
+
+
+
+###################################################
+### code chunk number 4: viewports.Rnw:71-76
+###################################################
+pushViewport(viewport(name = "A"))
+upViewport()
+pushViewport(viewport(name = "B"))
+upViewport()
+downViewport("A")
+
+
+###################################################
+### code chunk number 5: viewports.Rnw:85-86
+###################################################
+seekViewport("B")
+
+
+###################################################
+### code chunk number 6: viewports.Rnw:91-93
+###################################################
+current.vpTree()
+
+
+
+###################################################
+### code chunk number 7: vpstackguts
+###################################################
+vp <- viewport(width = 0.5, height = 0.5)
+grid.rect(vp = vpStack(vp, vp))
+
+
+###################################################
+### code chunk number 8: viewports.Rnw:114-116
+###################################################
+grid.rect(gp = gpar(col = "grey"))
+vp <- viewport(width = 0.5, height = 0.5)
+grid.rect(vp = vpStack(vp, vp))
+
+
+###################################################
+### code chunk number 9: viewports.Rnw:140-142
+###################################################
+grid.newpage()
+
+
+
+###################################################
+### code chunk number 10: viewports.Rnw:143-146
+###################################################
+pushViewport(viewport(name = "A"))
+pushViewport(viewport(name = "B"))
+pushViewport(viewport(name = "A"))
+
+
+###################################################
+### code chunk number 11: viewports.Rnw:152-154
+###################################################
+seekViewport("A")
+current.vpTree(FALSE)
+
+
+###################################################
+### code chunk number 12: viewports.Rnw:159-161
+###################################################
+seekViewport(vpPath("B", "A"))
+current.vpTree(FALSE)
+
+
+###################################################
+### code chunk number 13: viewports.Rnw:166-167
+###################################################
+vpPath("A", "B")
+
+
+###################################################
+### code chunk number 14: viewports.Rnw:174-176 (eval = FALSE)
+###################################################
+## seekViewport(vpPath("A", "B"))
+## seekViewport("A::B")
+
+
+###################################################
+### code chunk number 15: viewports.Rnw:185-187
+###################################################
+x <- runif(10)
+y <- runif(10)
+
+
+###################################################
+### code chunk number 16: viewports.Rnw:192-194
+###################################################
+xscale <- extendrange(x)
+yscale <- extendrange(y)
+
+
+###################################################
+### code chunk number 17: viewports.Rnw:203-208
+###################################################
+top.vp <-
+    viewport(layout=grid.layout(3, 3,
+             widths=unit(c(5, 1, 2), c("lines", "null", "lines")),
+             heights=unit(c(5, 1, 4), c("lines", "null", "lines"))))
+
+
+
+###################################################
+### code chunk number 18: viewports.Rnw:209-210
+###################################################
+grid.show.layout(viewport.layout(top.vp))
+
+
+###################################################
+### code chunk number 19: viewports.Rnw:217-227
+###################################################
+margin1 <- viewport(layout.pos.col = 2, layout.pos.row = 3,
+                    name = "margin1")
+margin2 <- viewport(layout.pos.col = 1, layout.pos.row = 2,
+                    name = "margin2")
+margin3 <- viewport(layout.pos.col = 2, layout.pos.row = 1,
+                    name = "margin3")
+margin4 <- viewport(layout.pos.col = 3, layout.pos.row = 2,
+                    name = "margin4")
+plot <- viewport(layout.pos.col = 2, layout.pos.row = 2,
+                 name = "plot", xscale = xscale, yscale = yscale)
+
+
+###################################################
+### code chunk number 20: viewports.Rnw:234-235
+###################################################
+splot <- vpTree(top.vp, vpList(margin1, margin2, margin3, margin4, plot))
+
+
+###################################################
+### code chunk number 21: viewports
+###################################################
+pushViewport(splot)
+
+
+###################################################
+### code chunk number 22: grid (eval = FALSE)
+###################################################
+## labelvp <- function(name) {
+##     seekViewport(name)
+##     grid.rect(gp = gpar(col = "grey", lwd = 5))
+##     grid.rect(x = 0, y = 1, width = unit(1, "strwidth", name) + unit(2, "mm"),
+##               height = unit(1, "lines"), just = c("left", "top"),
+##               gp = gpar(fill = "grey", col = NULL))
+##     grid.text(name, x = unit(1, "mm"), y = unit(1, "npc") - unit(1, "mm"),
+##               just = c("left", "top"), gp = gpar(col = "white"))
+## }
+## labelvp("plot")
+## labelvp("margin1")
+## labelvp("margin2")
+## labelvp("margin3")
+## labelvp("margin4")
+
+
+###################################################
+### code chunk number 23: plot (eval = FALSE)
+###################################################
+## seekViewport("plot")
+## grid.points(x, y)
+## grid.xaxis()
+## grid.yaxis()
+## grid.rect()
+
+
+###################################################
+### code chunk number 24: margin1 (eval = FALSE)
+###################################################
+## seekViewport("margin1")
+## grid.text("Random X", y = unit(1, "lines"))
+
+
+###################################################
+### code chunk number 25: margin2 (eval = FALSE)
+###################################################
+## seekViewport("margin2")
+## grid.text("Random Y", x = unit(1, "lines"), rot = 90)
+## 
+
+
+###################################################
+### code chunk number 26: viewports.Rnw:287-293
+###################################################
+pushViewport(viewport(w = 0.9, h = 0.9))
+pushViewport(splot)
+labelvp <- function(name) {
+    seekViewport(name)
+    grid.rect(gp = gpar(col = "grey", lwd = 5))
+    grid.rect(x = 0, y = 1, width = unit(1, "strwidth", name) + unit(2, "mm"),
+              height = unit(1, "lines"), just = c("left", "top"),
+              gp = gpar(fill = "grey", col = NULL))
+    grid.text(name, x = unit(1, "mm"), y = unit(1, "npc") - unit(1, "mm"),
+              just = c("left", "top"), gp = gpar(col = "white"))
+}
+labelvp("plot")
+labelvp("margin1")
+labelvp("margin2")
+labelvp("margin3")
+labelvp("margin4")
+seekViewport("plot")
+grid.points(x, y)
+grid.xaxis()
+grid.yaxis()
+grid.rect()
+seekViewport("margin1")
+grid.text("Random X", y = unit(1, "lines"))
+seekViewport("margin2")
+grid.text("Random Y", x = unit(1, "lines"), rot = 90)
+
+
+
+###################################################
+### code chunk number 27: viewports.Rnw:307-308
+###################################################
+upViewport(0)
+
+
+###################################################
+### code chunk number 28: annguts (eval = FALSE)
+###################################################
+## seekViewport("margin3")
+## grid.text("The user adds a title!", gp = gpar(fontsize = 20))
+## 
+
+
+###################################################
+### code chunk number 29: viewports.Rnw:325-333
+###################################################
+pushViewport(viewport(w = 0.9, h = 0.9))
+pushViewport(splot)
+labelvp <- function(name) {
+    seekViewport(name)
+    grid.rect(gp = gpar(col = "grey", lwd = 5))
+    grid.rect(x = 0, y = 1, width = unit(1, "strwidth", name) + unit(2, "mm"),
+              height = unit(1, "lines"), just = c("left", "top"),
+              gp = gpar(fill = "grey", col = NULL))
+    grid.text(name, x = unit(1, "mm"), y = unit(1, "npc") - unit(1, "mm"),
+              just = c("left", "top"), gp = gpar(col = "white"))
+}
+labelvp("plot")
+labelvp("margin1")
+labelvp("margin2")
+labelvp("margin3")
+labelvp("margin4")
+seekViewport("plot")
+grid.points(x, y)
+grid.xaxis()
+grid.yaxis()
+grid.rect()
+seekViewport("margin1")
+grid.text("Random X", y = unit(1, "lines"))
+seekViewport("margin2")
+grid.text("Random Y", x = unit(1, "lines"), rot = 90)
+
+seekViewport("margin3")
+grid.text("The user adds a title!", gp = gpar(fontsize = 20))
+
+popViewport(0)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/saveload.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/saveload.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/saveload.Rnw	(revision 2476)
@@ -0,0 +1,115 @@
+% File src/library/grid/vignettes/saveload.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2001-13 Paul Murrell and the R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+%\VignetteIndexEntry{Persistent representations}
+%\VignettePackage{grid}
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\pkg}[1]{{\normalfont\fontseries{b}\selectfont #1}}
+\newcommand{\grid}{\pkg{grid}}
+\newcommand{\R}{{\sffamily R}}
+\setlength{\parindent}{0in}
+\setlength{\parskip}{.1in}
+\setlength{\textwidth}{140mm}
+\setlength{\oddsidemargin}{10mm}
+\title{Saving and Loading \grid{} Graphics}
+\author{Paul Murrell}
+
+\begin{document}
+\maketitle
+
+<<echo=FALSE, results=hide>>=
+library(grDevices)
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+@
+This is a general discussion concerning how you might go about
+creating (and reusing) persistent representations of \grid{}
+graphics, and some of the pitfalls in the various options.
+
+\subsection*{\R{} code}
+
+The way I usually work with graphics is to write \R{} code in a text file
+and copy-and-paste or \code{source()} it into R.  In this case,
+the persistent
+representation of the graphics is the raw \R{} code.
+
+The representation is fully editable.
+
+The representation is persistent across \R{} sessions, but may not be
+persistent across \R{} versions because the names, argument lists,
+and/or behaviour of the \grid{} functions may
+change.  The representation can be reloaded into R.
+Incompatibilities between versions should be handled gracefully by
+\R{}'s argument-matching, type-checking, and/or version-checking.
+
+\subsection*{\grid{} \code{grob}s}
+
+The next most flexible way of creating a persistent version of \grid{}
+graphics is to \code{save()} a \grid{} \code{grob} \ldots
+
+<<>>=
+gt <- textGrob("hi")
+save(gt, file = "mygridplot")
+@
+The representation is reloadable so you can reproduce an image \ldots{}
+
+<<results=hide>>=
+load("mygridplot")
+grid.draw(gt)
+@
+And the representation is editable;  there is an API for interacting
+with \grid{} \code{grobs}, including adding new elements, removing
+elements, editing features of a \code{grob} and so on.  See
+\code{getGrob()}, \code{addGrob()}, \code{removeGrob()},
+and \code{editGrob()}.
+
+The representation is persistent across \R{} sessions, but is
+vulnerable to changes in the internal representation of \grid{}
+\code{grob}s.  The advantage of this representation is that it is
+possible to share and edit graphics produced by someone else,
+without seeing the code they used to produce it.
+
+\subsection*{Device output}
+
+A third way of creating a persistent version of \grid{} graphics is to
+``save'' it to a persistent device format (e.g., PostScript, PDF, \ldots).
+
+It is possible to edit these representations, but hardly convenient.
+In particular, none of the coordinate systems used in the
+construction of plots (e.g., axis scales) are available for editing.
+
+The representation is persistent regardless of \R{} sessions or versions,
+but it cannot be reloaded into \R{}.
+
+\subsection*{Display lists}
+
+This final option is \emph{not} recommended, but it is possible to do
+so its downsides need to be explained.
+
+What you can do is ``save'' an \R{} display list using, for example, \ldots
+
+<<>>=
+grid.grill()
+temp <- recordPlot()
+save(temp, file = "mygridplot")
+@
+This representation is not editable\footnote{Well, there's nothing stopping
+you editing it, but you should take out life insurance first.}, but it can be
+reloaded
+and rerun to reproduce the output \ldots
+
+<<>>=
+load("mygridplot")
+temp
+@
+The representation is persistent across \R{} sessions, but the saved
+information involves non-public interfaces and structures which may
+change between \R{} versions.  You also have to make sure that \grid{}
+has been reloaded.  Differences between \grid{} and/or \R{} versions
+may lead to segmentation faults.
+\end{document}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/sharing.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/sharing.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/saveload.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/saveload.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/locndimn.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/locndimn.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/locndimn.Rnw	(revision 2476)
@@ -0,0 +1,122 @@
+% File src/library/grid/vignettes/locndimn.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2001-13 Paul Murrell and the R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+%\VignetteIndexEntry{Locations versus Dimensions}
+%\VignettePackage{grid}
+\setlength{\parindent}{0in}
+\setlength{\parskip}{.1in}
+\setlength{\textwidth}{140mm}
+\setlength{\oddsidemargin}{10mm}
+
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\pkg}[1]{{\normalfont\fontseries{b}\selectfont #1}}
+\newcommand{\grid}{\pkg{grid}}
+
+\title{The difference between Locations and Dimensions in \grid{}}
+\author{Paul Murrell}
+
+\begin{document}
+
+\maketitle
+
+<<echo=FALSE, results=hide>>=
+library(grDevices)
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+@
+\grid{} makes use of unit objects to express both the locations and
+dimensions of graphical components.  For example, the \code{grid.rect()}
+function treats its x- and y-arguments as locations within the current
+viewport, and its width- and height-arguments as dimensions within the
+current viewport.
+
+These different interpretations of units are usually implicit like this;
+if its an x- or y-value then its a location, if its a width- or height-value
+then its a dimension.
+
+The distinction is made at all because, in some coordinate systems, notably
+\code{"native"} coordinates, the location $x$ can have a very different
+meaning
+from the dimension $x$ -- basically, whenever the minimum value of the
+coordinate system is not zero.
+
+In the specification of simple units, the difference between locations
+and dimensions is often not noticeable.  However, there are a couple
+of tricky areas:
+
+\begin{enumerate}
+\item When adding (or performing any arithmetic operation on) units,
+it is important to keep in mind that locations are added like vectors
+and dimensions are added like lengths.  The following
+diagram demonstrates the difference:
+
+<<fig=TRUE, echo=FALSE, results=hide>>=
+diagram.locn <- function(i, n, locn) {
+  x <- i/(n+1)
+  grid.lines(x = unit(rep(x, 2), "npc"),
+             y = unit.c(unit(0, "npc"), locn))
+  grid.lines(x = unit(x, "npc") + unit(c(-2, 0, 2), "mm"),
+             y = locn + unit(c(-2, 0, -2), "mm"))
+  grid.text(paste(as.character(locn), "as a location"),
+            x = unit(x, "npc") - unit(1, "mm"),
+            y = locn - unit(3, "mm"),
+            just = c("right", "bottom"),
+            rot = 90)
+}
+diagram.dimn <- function(i, n, dimn) {
+  x <- i/(n+1)
+  pushViewport(viewport(x = unit(x, "npc"), y = unit(0, "native"),
+            h = dimn, w = unit(1, "lines"), just = c("centre", "bottom")))
+  grid.rect()
+  grid.text(paste(as.character(dimn), "as a dimension"),
+            rot = 90)
+  popViewport()
+}
+pushViewport(viewport(w = 0.8, y=unit(1.7, "inches"),
+                      h = unit(4, "inches"),
+                      just = c("centre", "bottom"),
+                      yscale = c(-0.6, 1.3)))
+grid.grill(v = c(0, 1), h = seq(-0.5, 1, 0.5), default.units = "native")
+grid.rect()
+grid.yaxis()
+n <- 10
+diagram.locn(1, n, unit(1, "native"))
+diagram.locn(2, n, unit(-0.4, "native"))
+diagram.locn(3, n, unit(0.4, "native"))
+diagram.locn(4, n, unit(1, "native") + unit(-0.4, "native"))
+diagram.locn(5, n, unit(1, "native") - unit(0.4, "native"))
+diagram.dimn(6, n, unit(1, "native"))
+diagram.dimn(7, n, unit(-0.4, "native"))
+diagram.dimn(8, n, unit(0.4, "native"))
+diagram.dimn(9, n, unit(1, "native") + unit(-0.4, "native"))
+diagram.dimn(10, n, unit(1, "native") - unit(0.4, "native"))
+@
+\item The functions \code{convertX},
+\code{convertY}, \code{convertWidth}, \code{convertHeight}
+  are used to convert from one coordinate system to another.
+Again, it is important whether the conversion is for a location or
+for a dimension.
+The following code
+demonstrates some results from these functions based on a similar
+situation to that in the preceding diagram:
+
+<<fig=FALSE>>=
+pushViewport(viewport(yscale = c(-0.6, 1.3)))
+# Unexpected results?
+convertY(unit(1,'native'), "native")
+convertY(unit(-.4,'native'), "native")
+convertY(unit(1,'native')+unit(-.4,'native'), "native")
+convertY(unit(1,'native')-unit(.4,'native'), "native")
+# Expected results
+convertHeight(unit(1,'native'), "native")
+convertHeight(unit(-.4,'native'), "native")
+convertHeight(unit(1,'native')+unit(-.4,'native'), "native")
+convertHeight(unit(1,'native')-unit(.4,'native'), "native")
+popViewport()
+@
+\end{enumerate}
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/index.html	(revision 2476)
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'grid'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/grid/doc/displaylist.pdf">grid::displaylist</a></td>
+<td></td><td valign="top">Display Lists in grid</td>
+<td valign="top"><a href="../../../library/grid/doc/displaylist.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/grid/doc/displaylist.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/grid/doc/displaylist.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/grid/doc/frame.pdf">grid::frame</a></td>
+<td></td><td valign="top">Frames and packing grobs</td>
+<td valign="top"><a href="../../../library/grid/doc/frame.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/grid/doc/frame.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/grid/doc/frame.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/grid/doc/grid.pdf">grid::grid</a></td>
+<td></td><td valign="top">Introduction to grid</td>
+<td valign="top"><a href="../../../library/grid/doc/grid.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/grid/doc/grid.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/grid/doc/grid.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/grid/doc/grobs.pdf">grid::grobs</a></td>
+<td></td><td valign="top">Working with grid grobs</td>
+<td valign="top"><a href="../../../library/grid/doc/grobs.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/grid/doc/grobs.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/grid/doc/grobs.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/grid/doc/interactive.pdf">grid::interactive</a></td>
+<td></td><td valign="top">Editing grid Graphics</td>
+<td valign="top"><a href="../../../library/grid/doc/interactive.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/grid/doc/interactive.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/grid/doc/interactive.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/grid/doc/locndimn.pdf">grid::locndimn</a></td>
+<td></td><td valign="top">Locations versus Dimensions</td>
+<td valign="top"><a href="../../../library/grid/doc/locndimn.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/grid/doc/locndimn.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/grid/doc/locndimn.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/grid/doc/moveline.pdf">grid::moveline</a></td>
+<td></td><td valign="top">Demonstrating move-to and line-to</td>
+<td valign="top"><a href="../../../library/grid/doc/moveline.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/grid/doc/moveline.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/grid/doc/moveline.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/grid/doc/nonfinite.pdf">grid::nonfinite</a></td>
+<td></td><td valign="top">Non-finite values</td>
+<td valign="top"><a href="../../../library/grid/doc/nonfinite.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/grid/doc/nonfinite.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/grid/doc/nonfinite.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/grid/doc/plotexample.pdf">grid::plotexample</a></td>
+<td></td><td valign="top">Writing grid Code</td>
+<td valign="top"><a href="../../../library/grid/doc/plotexample.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/grid/doc/plotexample.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/grid/doc/plotexample.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/grid/doc/rotated.pdf">grid::rotated</a></td>
+<td></td><td valign="top">Rotated Viewports</td>
+<td valign="top"><a href="../../../library/grid/doc/rotated.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/grid/doc/rotated.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/grid/doc/rotated.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/grid/doc/saveload.pdf">grid::saveload</a></td>
+<td></td><td valign="top">Persistent representations</td>
+<td valign="top"><a href="../../../library/grid/doc/saveload.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/grid/doc/saveload.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/grid/doc/saveload.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/grid/doc/sharing.pdf">grid::sharing</a></td>
+<td></td><td valign="top">Modifying multiple grobs simultaneously</td>
+<td valign="top"><a href="../../../library/grid/doc/sharing.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/grid/doc/sharing.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/grid/doc/sharing.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/grid/doc/viewports.pdf">grid::viewports</a></td>
+<td></td><td valign="top">Working with viewports</td>
+<td valign="top"><a href="../../../library/grid/doc/viewports.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/grid/doc/viewports.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/grid/doc/viewports.R">R code</a></td></tr>
+</table>
+<h2>Other files in the <span class="samp">doc</span> directory</h2>
+<table width="100%">
+<col style="width: 24%;" />
+<col style="width: 50%;" />
+<col style="width: 24%;" />
+<tr><td></td><td><span class="samp"><a href="DivByZero.txt">DivByZero.txt</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="changes.txt">changes.txt</a></span></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/locndimn.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/locndimn.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grobs.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grobs.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grobs.R	(revision 2476)
@@ -0,0 +1,313 @@
+### R code from vignette source 'grobs.Rnw'
+
+###################################################
+### code chunk number 1: grobs.Rnw:30-34
+###################################################
+library(grDevices)
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+
+
+###################################################
+### code chunk number 2: grobs.Rnw:48-50
+###################################################
+gl <- linesGrob()
+gl <- editGrob(gl, gp = gpar(col = "green"))
+
+
+###################################################
+### code chunk number 3: grobs.Rnw:64-68
+###################################################
+grid.newpage()
+grid.lines(name = "lines")
+grid.edit(gPath("lines"), gp = gpar(col = "pink"))
+grid.edit("lines", gp = gpar(col = "red"))
+
+
+###################################################
+### code chunk number 4: grobs.Rnw:84-91
+###################################################
+grid.newpage()
+pushViewport(viewport(w = .5, h = .5))
+grid.rect(gp = gpar(col = "grey"))
+grid.xaxis(name = "myxaxis")
+grid.edit("myxaxis", at = 1:4/5)
+grid.edit(gPath("myxaxis", "labels"), y = unit(-1, "lines"))
+
+
+
+###################################################
+### code chunk number 5: grobs.Rnw:103-113
+###################################################
+grid.newpage()
+pushViewport(viewport(w = .5, h = .5))
+myplot <-
+    gTree(name = "myplot",
+          children = gList(rectGrob(name = "box", gp = gpar(col = "grey")),
+                           xaxisGrob(name = "xaxis")))
+grid.draw(myplot)
+grid.edit("myplot::xaxis", at = 1:10/11)
+grid.edit("myplot::xaxis::labels", label = round(1:10/11, 2))
+grid.edit("myplot::xaxis::labels", y = unit(-1, "lines"))
+
+
+###################################################
+### code chunk number 6: grobs.Rnw:121-124
+###################################################
+grid.newpage()
+gt <- grid.text("Hi there")
+grid.rect(width = unit(1, "grobwidth", gt))
+
+
+###################################################
+### code chunk number 7: grobs.Rnw:133-137
+###################################################
+grid.newpage()
+gt <- grid.text("Hi there", name = "sometext")
+grid.rect(width = unit(1, "grobwidth", "sometext"))
+grid.edit("sometext", label = "Something different")
+
+
+###################################################
+### code chunk number 8: grobs.Rnw:162-176
+###################################################
+grid.newpage()
+mygrob <- grob(name = "mygrob", cl = "mygrob")
+preDrawDetails.mygrob <- function(x)
+    pushViewport(viewport(gp = gpar(fontsize = 20)))
+
+drawDetails.mygrob <- function(x, recording = TRUE)
+    grid.draw(textGrob("hi there"), recording = FALSE)
+
+postDrawDetails.mygrob <- function(x) popViewport()
+
+widthDetails.mygrob <- function(x) unit(1, "strwidth", "hi there")
+
+grid.draw(mygrob)
+grid.rect(width = unit(1, "grobwidth", mygrob))
+
+
+###################################################
+### code chunk number 9: grobs.Rnw:194-206
+###################################################
+grid.newpage()
+mygtree <- gTree(name = "mygrob",
+                 childrenvp = viewport(name = "labelvp",
+                                       gp = gpar(fontsize = 20)),
+                 children = gList(textGrob("hi there", name = "label",
+                   vp = "labelvp")),
+                 cl = "mygtree")
+widthDetails.mygtree <- function(x)
+    unit(1, "grobwidth", getGrob(x, "label"))
+
+grid.draw(mygtree)
+grid.rect(width = unit(1, "grobwidth", mygtree))
+
+
+###################################################
+### code chunk number 10: grobs.Rnw:214-219
+###################################################
+grid.newpage()
+fg <- frameGrob(layout = grid.layout(1, 2))
+fg <- placeGrob(fg, textGrob("Hi there"), col = 1)
+fg <- placeGrob(fg, rectGrob(), col = 2)
+grid.draw(fg)
+
+
+###################################################
+### code chunk number 11: grobs.Rnw:224-240
+###################################################
+grid.newpage()
+pushViewport(viewport(layout = grid.layout(2, 2)))
+drawIt <- function(row, col) {
+    pushViewport(viewport(layout.pos.col = col, layout.pos.row = row))
+    grid.rect(gp = gpar(col = "grey"))
+    grid.draw(fg)
+    upViewport()
+}
+fg <- frameGrob()
+fg <- packGrob(fg, textGrob("Hi there"))
+fg <- placeGrob(fg, rectGrob())
+drawIt(1, 1)
+fg <- packGrob(fg, textGrob("Hello again"), side = "right")
+drawIt(1, 2)
+fg <- packGrob(fg, rectGrob(), side = "right", width = unit(1, "null"))
+drawIt(2, 2)
+
+
+###################################################
+### code chunk number 12: grobs.Rnw:252-261
+###################################################
+grid.newpage()
+fg <- frameGrob()
+fg <- packGrob(fg, textGrob("Hi there"))
+fg <- placeGrob(fg, rectGrob())
+fg <- packGrob(fg, textGrob("Hello again", name = "midtext"),
+               side = "right", dynamic = TRUE)
+fg <- packGrob(fg, rectGrob(), side = "right", width = unit(1, "null"))
+grid.draw(fg)
+grid.edit("midtext", label = "something much longer")
+
+
+###################################################
+### code chunk number 13: grobs.Rnw:285-309
+###################################################
+grid.newpage()
+pushViewport(viewport(layout = grid.layout(2, 2)))
+drawIt <- function(row, col) {
+    pushViewport(viewport(layout.pos.col = col, layout.pos.row = row))
+    grid.rect(gp = gpar(col = "grey"))
+    grid.draw(gplot)
+    upViewport()
+}
+gplot <- gTree(x = NULL, y = NULL,
+               childrenvp = vpTree(
+                 plotViewport(c(5, 4, 4, 2), name = "plotRegion"),
+                 vpList(viewport(name = "dataRegion"))),
+               children = gList(
+                 xaxisGrob(vp = "plotRegion::dataRegion"),
+                 yaxisGrob(vp = "plotRegion::dataRegion"),
+                 rectGrob(vp = "plotRegion")))
+drawIt(1, 1)
+gplot <- addGrob(gplot, pointsGrob(vp = "plotRegion::dataRegion"))
+drawIt(1, 2)
+gplot <- addGrob(gplot, pointsGrob(name = "data1", pch = 2,
+                                   vp = "plotRegion::dataRegion"))
+drawIt(2, 1)
+gplot <- removeGrob(gplot, "data1")
+drawIt(2, 2)
+
+
+###################################################
+### code chunk number 14: grobs.Rnw:316-337
+###################################################
+gplot <- gTree(x = NULL, y = NULL,
+               childrenvp = vpTree(
+                 plotViewport(c(5, 4, 4, 2), name = "plotRegion"),
+                   vpList(viewport(name = "dataRegion"))),
+               children = gList(
+                 xaxisGrob(vp = "plotRegion::dataRegion"),
+                 yaxisGrob(vp = "plotRegion::dataRegion"),
+                 rectGrob(vp = "plotRegion")))
+save(gplot, file = "gplot1")
+gplot <- addGrob(gplot, pointsGrob(vp = "plotRegion::dataRegion"))
+save(gplot, file = "gplot2")
+grid.newpage()
+pushViewport(viewport(layout = grid.layout(1, 2)))
+pushViewport(viewport(layout.pos.col = 1))
+load("gplot1")
+grid.draw(gplot)
+popViewport()
+pushViewport(viewport(layout.pos.col = 2))
+load("gplot2")
+grid.draw(gplot)
+popViewport()
+
+
+###################################################
+### code chunk number 15: grobs.Rnw:348-359
+###################################################
+myplot <- gTree(name = "myplot",
+                children = gList(
+                  rectGrob(name = "box", gp = gpar(col = "grey")),
+                  xaxisGrob(name = "xaxis")))
+myplot <- editGrob(myplot, gPath = "xaxis", at = 1:10/11)
+myplot <- editGrob(myplot, gPath = "xaxis::labels", label = round(1:10/11, 2))
+myplot <- editGrob(myplot, gPath = "xaxis::labels", y = unit(-1, "lines"))
+grid.newpage()
+pushViewport(viewport(w = .5, h = .5))
+grid.draw(myplot)
+
+
+
+###################################################
+### code chunk number 16: grobs.Rnw:365-378
+###################################################
+myplot <- gTree(name = "myplot",
+                children = gList(
+                  rectGrob(name = "box", gp = gpar(col = "grey")),
+                  xaxisGrob(name = "xaxis")))
+getGrob(myplot, "xaxis")
+myplot <- editGrob(myplot, gPath="xaxis", at=1:10/11)
+getGrob(myplot, "xaxis::labels")
+grid.newpage()
+pushViewport(viewport(w=.5, h=.5))
+grid.draw(myplot)
+grid.get("myplot")
+grid.get("myplot::xaxis")
+grid.get("myplot::xaxis::labels")
+
+
+###################################################
+### code chunk number 17: grobs.Rnw:399-415
+###################################################
+myplot <- gTree(name = "myplot",
+                children = gList(rectGrob(name = "box", gp = gpar(col = "grey")),
+                  xaxisGrob(name = "xaxis")))
+myplot <- setGrob(myplot, "xaxis", rectGrob(name = "xaxis"))
+grid.newpage()
+pushViewport(viewport(w = .5, h = .5))
+grid.draw(myplot)
+grid.set("myplot::xaxis", xaxisGrob(name = "xaxis", at = 1:3/4))
+grid.set("myplot::xaxis::labels",
+         textGrob(name = "labels", x = unit(1:3/4, "native"),
+                  y = unit(-1, "lines"), label = letters[1:3]))
+myplot <- setGrob(grid.get("myplot"), "xaxis::labels",
+                  circleGrob(name = "labels"))
+grid.newpage()
+pushViewport(viewport(w = .5, h = .5))
+grid.draw(myplot)
+
+
+###################################################
+### code chunk number 18: grobs.Rnw:433-464
+###################################################
+drawIt <- function(row, col) {
+  pushViewport(viewport(layout.pos.col = col, layout.pos.row = row))
+  grid.rect(gp = gpar(col = "grey"))
+  grid.draw(gplot)
+  upViewport()
+}
+gplot <- gTree(name = "plot1",
+               childrenvp = vpTree(
+                 plotViewport(c(5, 4, 4, 2), name = "plotRegion"),
+                 vpList(viewport(name = "dataRegion"))),
+               children = gList(
+                 xaxisGrob(name = "xaxis", vp = "plotRegion::dataRegion"),
+                 yaxisGrob(name = "yaxis", vp = "plotRegion::dataRegion"),
+                 rectGrob(name = "box", vp = "plotRegion")))
+grid.newpage()
+pushViewport(viewport(layout = grid.layout(2, 2)))
+drawIt(1, 1)
+grid.add("plot1", pointsGrob(0.5, 0.5, name = "data1",
+                             vp = "plotRegion::dataRegion"))
+grid.add("plot1::xaxis",
+         textGrob("X Axis", y = unit(-2, "lines"), name = "xlab"))
+grid.edit("plot1::xaxis::xlab", y = unit(-3, "lines"))
+gplot <- grid.get("plot1")
+gplot <- addGrob(gplot, gPath = "yaxis",
+                 textGrob("Y Axis", x = unit(-3, "lines"), rot = 90,
+                          name = "ylab"))
+drawIt(1, 2)
+gplot <- removeGrob(gplot, "xaxis::xlab")
+drawIt(2, 1)
+grid.remove("plot1::data1")
+grid.remove("plot1")
+
+
+###################################################
+### code chunk number 19: grobs.Rnw:472-482
+###################################################
+grid.newpage()
+grid.frame(name = "myframe", layout = grid.layout(1, 2))
+grid.place("myframe", textGrob("Hi there"), col = 1)
+grid.place("myframe", rectGrob(), col = 2)
+grid.newpage()
+grid.frame(name = "frame2")
+grid.pack("frame2", textGrob("Hi there"))
+grid.place("frame2", rectGrob())
+grid.pack("frame2", textGrob("Hello again"), side = "right")
+grid.pack("frame2", rectGrob(), side = "right", width = unit(1, "null"))
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/interactive.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/interactive.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/interactive.R	(revision 2476)
@@ -0,0 +1,90 @@
+### R code from vignette source 'interactive.Rnw'
+
+###################################################
+### code chunk number 1: interactive.Rnw:23-27
+###################################################
+library(grDevices)
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+
+
+###################################################
+### code chunk number 2: fig1
+###################################################
+grid.xaxis(at = 1:4/5, vp = viewport(w = .5, h = 0.01), name = "gxa")
+
+
+###################################################
+### code chunk number 3: edit1 (eval = FALSE)
+###################################################
+## grid.edit("gxa", gp = gpar(col = "red"))
+
+
+###################################################
+### code chunk number 4: fig2
+###################################################
+gxa <- xaxisGrob(at = 1:4/5, vp = viewport(w = .5, h = .01))
+gxa <- editGrob(gxa, gp = gpar(col = "red"))
+grid.draw(gxa)
+
+
+###################################################
+### code chunk number 5: edit2 (eval = FALSE)
+###################################################
+## grid.edit(gPath("gxa", "labels"), gp = gpar(col = "green"))
+
+
+###################################################
+### code chunk number 6: fig3
+###################################################
+gxa <- xaxisGrob(at = 1:4/5, vp = viewport(w = .5, h = .01))
+gxa <- editGrob(gxa, gp = gpar(col = "red"))
+gxa <- editGrob(gxa, gPath = "labels", gp = gpar(col = "green"))
+grid.draw(gxa)
+
+
+###################################################
+### code chunk number 7: edit3 (eval = FALSE)
+###################################################
+## grid.edit("gxa", at = c(0.0, 0.5, 1.0))
+
+
+###################################################
+### code chunk number 8: fig4
+###################################################
+gxa <- xaxisGrob(at = 1:4/5, vp = viewport(w = .5, h = .01))
+gxa <- editGrob(gxa, gp = gpar(col = "red"))
+gxa <- editGrob(gxa, gPath = "labels", gp = gpar(col = "green"))
+gxa <- editGrob(gxa, at = c(0.0, 0.5, 1.0))
+grid.draw(gxa)
+
+
+###################################################
+### code chunk number 9: edit4 (eval = FALSE)
+###################################################
+## grid.edit("gxa::labels", gp = gpar(col = "black"), rot = 30)
+
+
+###################################################
+### code chunk number 10: fig5
+###################################################
+gxa <- xaxisGrob(at = 1:4/5, vp = viewport(w = .5, h = .01))
+gxa <- editGrob(gxa, gp = gpar(col = "red"))
+gxa <- editGrob(gxa, gPath = "labels", gp = gpar(col = "green"))
+gxa <- editGrob(gxa, at = c(0.0, 0.5, 1.0))
+gxa <- editGrob(gxa, gPath = "labels", gp = gpar(col = "black"), rot = 30)
+grid.draw(gxa)
+
+
+###################################################
+### code chunk number 11: interactive.Rnw:128-134
+###################################################
+gxa <- xaxisGrob(at = 1:4/5, vp = viewport(w = .5, h = .01))
+gxa <- editGrob(gxa, gp = gpar(col = "red"))
+gxa <- editGrob(gxa, gPath = "labels", gp = gpar(col = "green"))
+gxa <- editGrob(gxa, at = c(0.0, 0.5, 1.0))
+gxa <- editGrob(gxa, gPath = "labels", gp = gpar(col = "black"), rot = 30)
+grid.draw(gxa)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/moveline.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/moveline.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/moveline.R	(revision 2476)
@@ -0,0 +1,30 @@
+### R code from vignette source 'moveline.Rnw'
+
+###################################################
+### code chunk number 1: moveline.Rnw:24-28
+###################################################
+library(grDevices)
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+
+
+###################################################
+### code chunk number 2: fig
+###################################################
+pushViewport(
+    viewport(w = 0.8, h = 0.8,
+             layout = grid.layout(1, 3,
+                                  widths = unit(rep(1, 3),
+                                  c("null", "inches", "null")))))
+pushViewport(viewport(layout.pos.col = 1, yscale = c(0, 4)))
+grid.grill(); grid.yaxis(); grid.xaxis()
+grid.points(0.5, unit(2, "native"))
+grid.move.to(0.5, unit(2,"native"))
+popViewport()
+pushViewport(viewport(layout.pos.col = 3, yscale = c(0, 2)))
+grid.grill(); grid.yaxis(); grid.xaxis()
+grid.points(0.5, unit(2, "native"))
+grid.line.to(0.5, unit(2,"native"))
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/nonfinite.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/nonfinite.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/nonfinite.R	(revision 2476)
@@ -0,0 +1,73 @@
+### R code from vignette source 'nonfinite.Rnw'
+
+###################################################
+### code chunk number 1: nonfinite.Rnw:21-25
+###################################################
+library(grDevices)
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+
+
+###################################################
+### code chunk number 2: prim1
+###################################################
+pushViewport(viewport(layout = grid.layout(1, 2,
+                      widths = unit(c(1, 1), c("inches", "null")))))
+grid.rect(gp = gpar(col = "grey"))
+pushViewport(viewport(layout.pos.col = 1))
+grid.text(c("segments", "text", "lines", "rectangles", "circles", "points"),
+          x = 1, just = "right", y = c(0.75, 6:2/10), gp = gpar(col = "grey"))
+popViewport()
+pushViewport(viewport(layout.pos.col = 2))
+x <- 1:7/8
+x[4] <- NA
+grid.lines(x, 0.5)
+grid.text(letters[1:5], x, 0.6)
+grid.segments(x, 0.7, x, 0.8)
+grid.points(x, rep(0.2, 7))
+grid.rect(x, 0.4, 0.02, 0.02)
+grid.circle(x, 0.3, 0.02)
+grid.text("NA", 0.5, 2:8/10, gp = gpar(col = "grey"))
+popViewport(2)
+
+
+###################################################
+### code chunk number 3: prim2
+###################################################
+n <- 7
+primtest2 <- function(nas, na) {
+    t <- seq(0, 2*pi, length = n+1)[-(n+1)]
+    y <- 0.5 + 0.4*sin(t)
+    x <- 0.5 + 0.4*cos(t)
+    if (any(nas))
+        grid.text(paste("NA", (1:n)[nas], sep = ""),
+                  x[nas], y[nas], gp = gpar(col = "grey"))
+    x[nas] <- na
+    y[nas] <- na
+    grid.move.to(x[1], y[1])
+    for (i in 2:n)
+        grid.line.to(x[i], y[i], gp = gpar(lty = "dashed", lwd = 5))
+    grid.polygon(x, y, gp = gpar(fill = "grey", col = NULL))
+    grid.lines(x, y, arrow = arrow())
+}
+celltest <- function(r, c, nas, na) {
+    pushViewport(viewport(layout.pos.col = c, layout.pos.row = r))
+    primtest2(nas, na)
+    grid.rect(gp = gpar(col = "grey"))
+    popViewport()
+}
+cellnas <- function(i) {
+    temp <- rep(FALSE, n)
+    temp[i] <- TRUE
+    temp[n - 3 + i] <- TRUE
+    temp
+}
+pushViewport(viewport(layout = grid.layout(2, 2)))
+celltest(1, 1, rep(FALSE, n), NA)
+celltest(1, 2, cellnas(1), NA)
+celltest(2, 1, cellnas(2), NA)
+celltest(2, 2, cellnas(3), NA)
+popViewport()
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/frame.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/frame.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/frame.R	(revision 2476)
@@ -0,0 +1,148 @@
+### R code from vignette source 'frame.Rnw'
+
+###################################################
+### code chunk number 1: frame.Rnw:24-29
+###################################################
+library(grDevices)
+library(stats) # for runif
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+
+
+###################################################
+### code chunk number 2: frame.Rnw:55-56
+###################################################
+gf <- frameGrob()
+
+
+###################################################
+### code chunk number 3: frame.Rnw:101-102
+###################################################
+gf <- packGrob(gf, textGrob("Hello frame!"))
+
+
+###################################################
+### code chunk number 4: frame1
+###################################################
+st <- grid.text("some text")
+grid.rect(width = unit(1, "grobwidth", st),
+          height = unit(1, "grobheight", st))
+
+
+###################################################
+### code chunk number 5: frame1
+###################################################
+grid.text("some text", name = "st")
+grid.rect(width = unit(1, "grobwidth", "st"),
+          height = unit(1, "grobheight", "st"))
+
+
+###################################################
+### code chunk number 6: frame.Rnw:141-143 (eval = FALSE)
+###################################################
+## grid.edit("st", gp = gpar(fontsize = 20))
+## 
+
+
+###################################################
+### code chunk number 7: frame2
+###################################################
+my.text <- textGrob("some text")
+my.text <- editGrob(my.text, gp = gpar(fontsize = 20))
+my.rect <- rectGrob(width = unit(1, "grobwidth", my.text),
+                    height = unit(1, "grobheight", my.text))
+grid.draw(my.text)
+grid.draw(my.rect)
+
+
+###################################################
+### code chunk number 8: frame.Rnw:158-160 (eval = FALSE)
+###################################################
+## grid.edit("st", label="some different text")
+## 
+
+
+###################################################
+### code chunk number 9: frame3
+###################################################
+my.text <- textGrob("some text")
+my.text <- editGrob(my.text, gp = gpar(fontsize = 20))
+my.text <- editGrob(my.text, label = "some different text")
+my.rect <- rectGrob(width = unit(1, "grobwidth", my.text),
+                    height = unit(1, "grobheight", my.text))
+grid.draw(my.text)
+grid.draw(my.rect)
+
+
+###################################################
+### code chunk number 10: frame.Rnw:252-286
+###################################################
+legendGrob <- function(pch, labels, frame = TRUE,
+                        hgap = unit(1, "lines"), vgap = unit(1, "lines"),
+                        default.units = "lines",
+                        vp = NULL) {
+  nkeys <- length(labels)
+  gf <- frameGrob(vp = vp)
+  for (i in 1:nkeys) {
+    if (i == 1) {
+        symbol.border <- unit.c(vgap, hgap, vgap, hgap)
+        text.border <- unit.c(vgap, unit(0, "npc"), vgap,
+            hgap)
+    } else {
+        symbol.border <- unit.c(vgap, hgap, unit(0, "npc"), hgap)
+        text.border <- unit.c(vgap, unit(0, "npc"), unit(0, "npc"), hgap)
+    }
+    gf <- packGrob(gf, pointsGrob(0.5, 0.5, pch = pch[i]),
+                   col = 1, row = i, border = symbol.border,
+                   width = unit(1, "lines"),
+                   height = unit(1, "lines"), force.width = TRUE)
+    gf <- packGrob(gf, textGrob(labels[i], x = 0, y = 0.5,
+                                just = c("left", "centre")),
+                   col = 2, row = i, border = text.border)
+  }
+  gf
+}
+
+grid.legend <- function(pch, labels, frame = TRUE,
+                        hgap = unit(1, "lines"), vgap = unit(1, "lines"),
+                        default.units = "lines", draw = TRUE,
+                        vp = NULL) {
+  gf <- legendGrob(pch, labels, frame, hgap, vgap, default.units, vp)
+  if (draw) grid.draw(gf)
+  gf
+}
+
+
+###################################################
+### code chunk number 11: legend
+###################################################
+grid.legend(1:3, c("one line", "two\nlines", "three\nlines\nof text"))
+
+
+
+###################################################
+### code chunk number 12: plot
+###################################################
+top.vp <- viewport(width = 0.8, height = 0.8)
+pushViewport(top.vp)
+x <- runif(10)
+y1 <- runif(10)
+y2 <- runif(10)
+pch <- 1:3
+labels <- c("Girls", "Boys", "Other")
+gf <- frameGrob()
+plt <- gTree(children = gList(rectGrob(),
+                              pointsGrob(x, y1, pch = 1),
+                              pointsGrob(x, y2, pch = 2),
+                              xaxisGrob(),
+                              yaxisGrob()))
+gf <- packGrob(gf, plt)
+gf <- packGrob(gf, legendGrob(pch, labels),
+               height = unit(1, "null"), side = "right")
+grid.rect(gp = gpar(col = "grey"))
+grid.draw(gf)
+popViewport()
+grid.rect(gp = gpar(lty = "dashed"), width = .99, height = .99)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grid.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grid.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grid.Rnw	(revision 2476)
@@ -0,0 +1,756 @@
+% File src/library/grid/vignettes/grid.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2001-13 Paul Murrell and the R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+
+\usepackage{Rd}
+
+% \VignetteIndexEntry{Introduction to grid}
+% \VignettePackage{grid}
+% \VignetteDepends{lattice}
+
+% Definitions
+\newcommand{\slan}{{\sffamily S}}
+\newcommand{\rlan}{{\sffamily R}}
+\newcommand{\grid}{\pkg{grid}}
+\newcommand{\lattice}{\CRANpkg{lattice}}
+
+\setlength{\parindent}{0in}
+\setlength{\parskip}{.1in}
+\setlength{\textwidth}{140mm}
+\setlength{\oddsidemargin}{10mm}
+
+\title{\grid{} Graphics}
+\author{Paul Murrell}
+
+\begin{document}
+
+\maketitle
+
+<<echo=FALSE, results=hide>>=
+library(grDevices)
+library(graphics) # for par
+library(stats) # for rnorm
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+@
+\grid{} is a low-level graphics system which provides a great deal
+of control and flexibility in the appearance and arrangement of
+graphical output.  \grid{} does not provide high-level functions which
+create complete plots.  What it does provide is a basis for developing
+such high-level functions (e.g., the \lattice{} and \CRANpkg{ggplot2}
+packages), the facilities for customising and manipulating \lattice{}
+output, the ability to produce high-level plots or non-statistical
+images from scratch, and the ability to add sophisticated annotations
+to the output from base graphics functions (see the \CRANpkg{gridBase}
+package).
+
+This document provides an introduction to the fundamental concepts
+underlying the \grid{} package:  {\bf viewports}, {\bf units}, and
+{\bf graphical parameters}.  There are also several examples to
+demonstrate what can be achieved and how to achieve it.
+
+The description of the fundamental \grid{} concepts is predicated on the
+following approach to constructing a statistical graphic
+(plot).  You must be able to:
+\begin{enumerate}
+\item create and control different graphical regions
+and coordinate systems.
+\item control which graphical region and
+coordinate system graphical output goes into.
+\item produce graphical output (lines, points, text, \ldots{})
+including controlling its appearance (colour, line type, line width, \ldots{}).
+\end{enumerate}
+
+\section{Creating and Controlling Graphics Regions and Coordinate Systems}
+
+In \grid{} there can be any number of graphics regions.  A graphics
+region is referred to as a \emph{viewport} and is created using the
+\code{viewport()} function.  A viewport can be positioned anywhere on
+a graphics device (page, window, \ldots{}), it can be rotated, and it can
+be clipped to.  The following code describes a viewport which is
+centred within the page, and is half
+the width of the page, one quarter of the height of the page,
+and rotated $45^{\circ}$;  Figure \ref{figure:viewport}
+shows a diagram of this viewport.
+
+<<eval=FALSE>>=
+viewport(x = 0.5, y = 0.5, width = 0.5, height = 0.25, angle=45)
+<<viewport, echo=FALSE, results=hide, fig=TRUE, width=6, height=6, include=FALSE>>=
+grid.show.viewport(viewport(x = 0.5, y = 0.5, width = 0.5, height = 0.25,
+                            angle = 45))
+@
+\begin{figure}[p]
+\begin{center}
+{
+\includegraphics[width=3.5in, height=3.5in]{grid-viewport}
+}
+\end{center}
+\caption{
+  \label{figure:viewport}
+  A diagram of a simple \grid{} viewport (produced using the
+  \code{grid.show.viewport()} function.}
+\end{figure}
+
+The object returned by the \code{viewport()} function is only a
+\emph{description} of a graphics region.  A graphics region is only
+created on a graphics device when a viewport is ``pushed'' onto that
+device.  This is achieved using the \code{pushViewport()} function.
+Each device has only one ``current viewport'' (by default this is the
+entire device surface), but it maintains a ``tree'' of viewports that
+have been pushed.  The current viewport is a node on the viewport
+tree.  The \code{pushViewport()} function adds a viewport as a leaf of
+the tree -- the previous ``current viewport'' becomes the parent of
+this leaf and the new leaf becomes the current viewport.  The
+\code{popViewport()} function prunes the current viewport (and all its
+children) from the tree -- the parent of the pruned leaf becomes the
+current viewport.  The function \code{upViewport()} acts like
+\code{popViewport()} in terms of setting the current viewport, but
+does not prune the previous ``current viewport''.  The
+\code{downViewport()} function navigates down the tree to a viewport
+which has been specified by name (it adds no new viewports to the
+tree).  This means that there is always only one graphics region
+selected to draw into, but it is possible to return to a previous
+graphics region through the appropriate set of push/pop/up/down
+operations.
+
+As an example, the following code creates a graphics
+region in the top-left corner of the page using \code{pushViewport()}.
+This viewport is given the name \code{"vp1"}.
+It then does some drawing and calls \code{upViewport()} to return
+to the root of the viewport tree.  Next, it
+creates another region in the bottom-right corner of the page
+(again using \code{pushViewport()}) and does
+some drawing there.  Finally, it performs an \code{upViewport()}
+to the root of the tree and a \code{downViewport()} to
+return to the first graphics region and
+does some more drawing there (see Figure \ref{figure:viewports}).
+
+<<pushviewports, results=hide, fig=TRUE, width=6, height=6, include=FALSE>>=
+grid.rect(gp = gpar(lty = "dashed"))
+vp1 <- viewport(x = 0, y = 0.5, w = 0.5, h = 0.5,
+                just = c("left", "bottom"), name = "vp1")
+vp2 <- viewport(x = 0.5, y = 0, w = 0.5, h = 0.5,
+                just = c("left", "bottom"))
+pushViewport(vp1)
+grid.rect(gp = gpar(col = "grey"))
+grid.text("Some drawing in graphics region 1", y = 0.8)
+upViewport()
+pushViewport(vp2)
+grid.rect(gp = gpar(col = "grey"))
+grid.text("Some drawing in graphics region 2", y = 0.8)
+upViewport()
+downViewport("vp1")
+grid.text("MORE drawing in graphics region 1", y = 0.2)
+popViewport()
+@
+\begin{figure}[p]
+\begin{center}
+{
+\includegraphics[width=3.5in, height=3.5in]{grid-pushviewports}
+}
+\end{center}
+\caption{\label{figure:viewports}
+        Defining and drawing in multiple graphics regions.}
+\end{figure}
+@
+When several viewports are pushed onto the viewport tree, leaf
+viewports are located and sized within the context of their parent
+viewports.  The following code gives an example;  a viewport is defined
+which is one-quarter the size of its parent (half the width and half the
+height), and this viewport is pushed twice. The first time it
+gets pushed the parent is the root of the viewport tree (which is the
+entire device) so it is quarter of the size of the page.
+The second time the viewport is pushed,
+it is quarter of the size of \emph{its parent viewport}.
+Figure \ref{figure:vpstack} shows the output of these
+commands.
+
+<<vpstack, results=hide, fig=TRUE, width=6, height=6, include=FALSE>>=
+grid.rect(gp = gpar(lty = "dashed"))
+vp <- viewport(width = 0.5, height = 0.5)
+pushViewport(vp)
+grid.rect(gp = gpar(col = "grey"))
+grid.text("quarter of the page", y = 0.85)
+pushViewport(vp)
+grid.rect()
+grid.text("quarter of the\nprevious viewport")
+popViewport(2)
+@
+\begin{figure}[p]
+\begin{center}
+{
+\includegraphics[width=3.5in, height=3.5in]{grid-vpstack}
+}
+\end{center}
+\caption{\label{figure:vpstack}
+        The result of pushing the same viewport onto the viewport
+stack twice.}
+\end{figure}
+@
+
+Each viewport has a number of coordinate systems available.  The full
+set is described in Table \ref{table:coords}, but there are four main
+types: absolute coordinates (e.g., \code{"inches"}, \code{"cm"}) allow
+locations and sizes in terms of physical coordinates -- there is no
+dependence on the size of the page; normalised coordinates (e.g.,
+\code{"npc"}) allow locations and sizes as a proportion of the page
+size (or the current viewport); relative coordinates (i.e.,
+\code{"native"}) allow locations and sizes relative to a user-defined
+set of x- and y-ranges; referential coordinates (e.g.,
+\code{"strwidth"}) where locations and sizes are based on the size of
+some other graphical object.
+
+It is possible to specify the coordinate system
+for relative coordinates, but all other coordinate systems
+are implicitly defined based on the location and size of the viewport
+and/or the size of other graphical objects.
+
+\begin{table}[p]
+\begin{center}
+\begin{tabular}{l l} \hline
+{\bf Coordinate} & \\
+{\bf System Name} & {\bf Description} \\ \hline
+\code{"npc"} & \parbox[t]{3in}{Normalised Parent Coordinates.  Treats
+the bottom-left corner of the current
+viewport as the location $(0, 0)$ and the top-right corner
+as $(1,1)$. }  \\
+\code{"native"} & \parbox[t]{3in}{Locations and sizes are relative
+to the x- and y-scales for the current viewport.} \\
+\code{"inches"} & \parbox[t]{3in}{Locations and sizes are in terms
+of physical inches.  For locations, $(0,0)$ is at the bottom-left
+of the viewport.} \\
+\code{"cm"} & \parbox[t]{3in}{Same as \code{"inches"}, except in
+centimetres.} \\
+\code{"mm"} & \parbox[t]{3in}{Millimetres.} \\
+\code{"points"} & \parbox[t]{3in}{Points.  There are 72.27 points per inch.} \\
+\code{"bigpts"} & \parbox[t]{3in}{Big points. There are 72 big points per inch.} \\
+\code{"picas"} & \parbox[t]{3in}{Picas.  There are 12 points per pica.} \\
+\code{"dida"} & \parbox[t]{3in}{Dida.  1157 dida equals 1238 points. } \\
+\code{"cicero"} & \parbox[t]{3in}{Cicero.  There are 12 dida per cicero. } \\
+\code{"scaledpts"} & \parbox[t]{3in}{Scaled points. There are 65536 scaled
+points per point. } \\
+\code{"char"} & \parbox[t]{3in}{Locations and sizes are specified in
+terms of multiples of the current nominal \code{fontheight}.} \\
+\code{"lines"} & \parbox[t]{3in}{Locations and sizes are specified in
+terms of multiples of the height of a line of text
+ (dependent on both the current \code{fontsize} and
+the current \code{lineheight}).} \\
+\code{"snpc"} & \parbox[t]{3in}{Square Normalised Parent Coordinates.
+Locations and size are expressed as a proportion of the \emph{smaller}
+of the
+width and height of the current viewport.} \\
+\code{"strwidth"} & \parbox[t]{3in}{Locations and sizes are
+expressed as multiples of the width of a given string (dependent
+on the string and the current \code{fontsize}).} \\
+\code{"strheight"} & \parbox[t]{3in}{Locations and sizes are
+expressed as multiples of the height of a given string (dependent
+on the string and the current \code{fontsize}).} \\
+\code{"grobwidth"} & \parbox[t]{3in}{Locations and sizes are
+expressed as multiples of the width of a given graphical object
+(dependent on the current state of the graphical object). } \\
+\code{"grobheight"} & \parbox[t]{3in}{Locations and sizes are
+expressed as multiples of the height of a given graphical object
+(dependent on the current state of the graphical object). } \\
+\hline
+\end{tabular}
+\end{center}
+\caption{\label{table:coords}
+         The full set of coordinate systems available in \grid{}
+viewports.}
+\end{table}
+
+
+\section{Directing Graphics Output into Different \\Graphics Regions
+and Coordinate Systems}
+
+Graphics output is always relative to the current viewport (on the
+current device).  Selecting which region you want is a matter of
+push/pop/up/downing the appropriate viewports.  However, that is not
+all;  every viewport has a number of coordinate systems associated with
+it, so it is also necessary to select the coordinate system that you
+want to work with.
+
+The selection of which coordinate system to use within the current
+viewport is made using the \code{unit()} function.  The
+\code{unit()} function creates an object which is a combination
+of a value and a coordinate system (plus  some extra
+information for certain coordinate systems).  Here are some examples
+from the \code{help(unit)} page:
+
+<<units>>=
+unit(1, "npc")
+unit(1:3/4, "npc")
+unit(1:3/4, "npc")[2]
+unit(1:3/4, "npc") + unit(1, "inches")
+min(unit(0.5, "npc"), unit(1, "inches"))
+unit.c(unit(0.5, "npc"), unit(2, "inches") + unit(1:3/4, "npc"),
+       unit(1, "strwidth", "hi there"))
+@
+Notice that unit objects are treated much like numeric vectors.  You
+can index a unit object, it is possible to do simple arithmetic
+(including \code{min} and \code{max}), and there are several
+unit-versions of common functions (e.g., \code{unit.c},
+\code{unit.rep}, and \code{unit.length}; \code{unit.pmin}, and
+\code{unit.pmax})).
+
+\grid{} functions that have arguments specifying locations and sizes
+typically assume a default coordinate system is being used.  Most
+often this default is \code{"npc"}.  In other words, if a raw numeric
+value, \code{x}, is specified this is implicitly taken to mean
+\code{unit(x, "npc")}.  The \code{viewport()} function is one that
+assumes \code{"npc"} coordinates, so in all of the viewport examples
+to this point, we have only used \code{"npc"} coordinates to position
+viewports within the page or within each other.  It is also possible
+to position viewports using any of the coordinate systems described in
+Table \ref{table:coords}.
+
+As an example, the following code makes use of \code{"npc"},
+\code{"native"}, \code{"inches"}, and \code{"strwidth"}
+coordinates.  It first pushes a viewport with a user-defined
+x-scale, then pushes another viewport which is centred at the x-value
+60 and half-way up the first viewport, and
+is 3 inches high\footnote{If you want to check the figure, the scaling
+factor is $3.5/6$ (i.e., the rectangle in the figure should be 1.75\code{"} or
+3.94cm high).}  and as wide as the text ``coordinates for everyone''.
+Figure \ref{figure:vpcoords} shows the resulting output.
+
+<<vpcoords, results=hide, fig=TRUE, width=6, height=6, include=FALSE>>=
+pushViewport(viewport(y = unit(3, "lines"), width = 0.9, height = 0.8,
+                      just = "bottom", xscale = c(0, 100)))
+grid.rect(gp = gpar(col = "grey"))
+grid.xaxis()
+pushViewport(viewport(x = unit(60, "native"), y = unit(0.5, "npc"),
+                      width = unit(1, "strwidth", "coordinates for everyone"),
+                      height = unit(3, "inches")))
+grid.rect()
+grid.text("coordinates for everyone")
+popViewport(2)
+@
+\begin{figure}[p]
+\begin{center}
+{
+\includegraphics[width=3.5in, height=3.5in]{grid-vpcoords}
+}
+\end{center}
+\caption{\label{figure:vpcoords}
+        A viewport positioned using a variety of coordinate systems.}
+\end{figure}
+
+\clearpage
+\subsection{Layouts}
+
+\grid{} provides an alternative method for positioning viewports
+within each other based on \emph{layouts}\footnote{The primary reference
+for layouts is \cite{murrell:1999}.  Layouts in \grid{} represent
+an extension of the idea to allow a greater range of units for
+specifying row heights and column widths. \grid{} also differs in the
+way that children of the layout specify their location within the layout.}.
+A layout may be specified
+for any viewport.  Any viewport pushed immediately after a viewport
+containing a layout may specify its location with respect to that
+layout.  In the following simple example, a viewport is pushed
+with  a layout
+with 4 rows and 5 columns, then another viewport is pushed which
+occupies the second and third columns of the third row of the layout.
+
+<<vplayout, results=hide, fig=TRUE, width=6, height=6, include=FALSE>>=
+pushViewport(viewport(layout = grid.layout(4, 5)))
+grid.rect(gp = gpar(col = "grey"))
+grid.segments(c(1:4/5, rep(0, 3)), c(rep(0, 4), 1:3/4),
+              c(1:4/5, rep(1, 3)), c(rep(1, 4), 1:3/4),
+              gp = gpar(col = "grey"))
+pushViewport(viewport(layout.pos.col = 2:3, layout.pos.row = 3))
+grid.rect(gp = gpar(lwd = 3))
+popViewport(2)
+@
+\begin{figure}[tbp]
+\begin{center}
+{
+\includegraphics[width=3.5in, height=3.5in]{grid-vplayout}
+}
+\end{center}
+\caption{\label{figure:vplayout}
+        A viewport positioned using a layout.}
+\end{figure}
+
+Layouts introduce a special sort of unit called \code{"null"}.  These
+can be used in layouts to specify relative column-widths or
+row-heights.  In the following, slightly more complex, example, the
+layout specifies something similar to a standard plot arrangement;
+there are bottom and left margins 3 lines of text wide, top and right
+margins 1cm wide, and two rows and columns within these margins where
+the bottom row is twice the height of the top row (see Figure
+\ref{figure:vplayoutcomplex}).
+
+<<layoutcomplex, results=hide, fig=TRUE, width=6, height=6, include=FALSE>>=
+grid.show.layout(grid.layout(4, 4, widths = unit(c(3, 1, 1, 1),
+                             c("lines", "null", "null", "cm")),
+                             heights = c(1, 1, 2, 3),
+                             c("cm", "null", "null", "lines")))
+@
+\begin{figure}[tbp]
+\begin{center}
+{
+\includegraphics[width=3.5in, height=3.5in]{grid-layoutcomplex}
+}
+\end{center}
+\caption{\label{figure:vplayoutcomplex}
+        A more complex layout.}
+\end{figure}
+
+\clearpage
+\section{Producing Graphics Output}
+
+\grid{} provides a standard set of graphical primitives: lines,
+text, points, rectangles, polygons, and circles.  There are also
+two higher level components:  x- and y-axes.  Table \ref{table:primitives}
+lists the \grid{} functions that produce these primitives.
+
+{\bf NOTE:} all of these graphical primitives are available in
+all graphical regions and coordinate systems.
+
+There used to be (prior to R 2.3.0) a separate \code{grid.arrows()}
+function, but this has been superseded by an \code{arrow} argument
+to the line-drawing primitives (lines, segments, line-to).
+
+\begin{table}[h!]
+\begin{center}
+\begin{tabular}{l l} \hline
+\code{grid.text} & Can specify angle of rotation. \\
+\code{grid.rect} &  \\
+\code{grid.circle} &  \\
+\code{grid.polygon} &  \\
+\code{grid.points} & Can specify type of plotting symbol. \\
+\code{grid.lines} &  \\
+\code{grid.segments} &  \\
+\code{grid.grill} & Convenience function for drawing grid lines \\
+\code{grid.move.to} &  \\
+\code{grid.line.to} &  \\
+& \\
+\code{grid.xaxis} & Top or bottom axis \\
+\code{grid.yaxis} & Left or right axis \\
+\hline
+\end{tabular}
+\end{center}
+\caption{\label{table:primitives}
+         \grid{} graphical primitives.}
+\end{table}
+
+
+\subsection{Controlling the Appearance of Graphics Output}
+
+\grid{} recognises a fixed set of graphical parameters for modifying
+the appearance of graphical output (see Table \ref{table:gpars}).
+
+\begin{table}[h!]
+\begin{center}
+\begin{tabular}{l l} \hline
+\code{col} & colour of lines, text, \ldots{} \\
+\code{fill} & colour for filling rectangles, circles, polygons, \ldots{} \\
+\code{lwd} & line width \\
+\code{lty} & line type \\
+\code{fontsize} & The size of text (in points) \\
+\code{fontface} &  The font face (bold, italic, \ldots{}) \\
+\code{fontfamily} & The font family \\
+\hline
+\end{tabular}
+\end{center}
+\caption{\label{table:gpars}
+         \grid{} graphical parameters.}
+\end{table}
+
+Graphical parameter settings may be specified for both viewports
+and graphical objects.  A graphical parameter setting for a viewport
+will hold for all graphical output within that viewport {\em and} for
+all viewports subsequently pushed onto the viewport stack, {\em unless}
+the graphical object or viewport specifies a different parameter
+setting.
+
+A description of graphical parameter settings is created using
+the \code{gpar()} function, and this description is associated with a
+viewport or a graphical object via the \code{gp} argument.
+The following code demonstrates the effect of graphical parameter
+settings (see Figure \ref{figure:gpar}).
+
+<<gpar, results=hide, fig=TRUE, width=6, height=6, include=FALSE>>=
+pushViewport(viewport(gp = gpar(fill = "grey", fontface = "italic")))
+grid.rect()
+grid.rect(width = 0.8, height = 0.6, gp = gpar(fill = "white"))
+grid.text(paste("This text and the inner rectangle",
+                "have specified their own gpar settings", sep = "\n"),
+          y = 0.75, gp = gpar(fontface = "plain"))
+grid.text(paste("This text and the outer rectangle",
+                "accept the gpar settings of the viewport", sep = "\n"),
+          y = 0.25)
+popViewport()
+@
+\begin{figure}[tbp]
+\begin{center}
+{
+\includegraphics[width=3.5in, height=3.5in]{grid-gpar}
+}
+\end{center}
+\caption{\label{figure:gpar}
+        The effect of different graphical parameter settings.}
+\end{figure}
+
+\clearpage
+\section{Examples}
+
+The remaining sections provide some code examples of the use
+of \grid{}.
+
+The first example constructs a simple scatterplot from first
+principles.
+Just like in base graphics, it is quite straightforward
+to create a simple plot by hand.  The following code produces the equivalent
+of a  standard \code{plot(1:10)} (see Figure \ref{figure:simpleplot}).
+
+<<simpleplot, results=hide, fig=TRUE, width=6, height=6, include=FALSE>>=
+grid.rect(gp = gpar(lty = "dashed"))
+x <- y <- 1:10
+pushViewport(plotViewport(c(5.1, 4.1, 4.1, 2.1)))
+pushViewport(dataViewport(x, y))
+grid.rect()
+grid.xaxis()
+grid.yaxis()
+grid.points(x, y)
+grid.text("1:10", x = unit(-3, "lines"), rot = 90)
+popViewport(2)
+@
+\begin{figure}[p]
+\begin{center}
+{
+\includegraphics[width=3.5in, height=3.5in]{grid-simpleplot}
+}
+\end{center}
+\caption{\label{figure:simpleplot}
+        The grid equivalent of \code{plot(1:10)}.}
+\end{figure}
+
+Now consider a more complex example, where we create a barplot
+with a legend (see Figure \ref{figure:barplot}).
+There are two main parts to this because
+grid has no predefined barplot function;  the construction of the
+barplot will itself be instructive, so we will start with just that.
+
+The data to be plotted are as follows:  we have four measures to
+represent at four levels;  the data are in a matrix with the measures
+for each level in a column.
+
+<<bpdata>>=
+barData <- matrix(sample(1:4, 16, replace = TRUE), ncol = 4)
+@
+We will use colours to differentiate
+the measures.
+
+<<barconstraint>>=
+boxColours <- 1:4
+@
+We create the barplot within a function so that we can easily
+reproduce it when we combine it with the legend.
+
+<<bpfun>>=
+bp <- function(barData) {
+    nbars <- dim(barData)[2]
+    nmeasures <- dim(barData)[1]
+    barTotals <- rbind(rep(0, nbars), apply(barData, 2, cumsum))
+    barYscale <- c(0, max(barTotals)*1.05)
+    pushViewport(plotViewport(c(5, 4, 4, 1),
+                              yscale = barYscale,
+                              layout = grid.layout(1, nbars)))
+    grid.rect()
+    grid.yaxis()
+    for (i in 1:nbars) {
+        pushViewport(viewport(layout.pos.col = i, yscale = barYscale))
+        grid.rect(x = rep(0.5, nmeasures),
+                  y = unit(barTotals[1:nmeasures, i], "native"),
+                  height = unit(diff(barTotals[,i]), "native"),
+                  width = 0.8, just = "bottom", gp = gpar(fill = boxColours))
+        popViewport()
+    }
+    popViewport()
+}
+@
+
+Now we turn our attention to the legend.  We need some labels
+and we will enforce the constraint that the boxes in the legend should
+be 0.5\code{"} square:
+
+<<legendlabels>>=
+legLabels <- c("Group A", "Group B", "Group C", "Something Longer")
+boxSize <- unit(0.5, "inches")
+@
+
+The following draws the legend elements in a column, with each
+element consisting of a box with a label beneath.
+
+<<legfun>>=
+leg <- function(legLabels) {
+    nlabels <- length(legLabels)
+    pushViewport(viewport(layout = grid.layout(nlabels, 1)))
+    for (i in 1:nlabels) {
+        pushViewport(viewport(layout.pos.row = i))
+        grid.rect(width = boxSize, height = boxSize, just = "bottom",
+                  gp = gpar(fill = boxColours[i]))
+        grid.text(legLabels[i], y = unit(0.5, "npc") - unit(1, "lines"))
+        popViewport()
+    }
+    popViewport()
+}
+@
+
+Now that we have the two components, we can arrange them together to
+form a complete image.  Notice that we can perform some calculations
+to make sure that we leave enough room for the legend, including
+1 line of text as left and right margins.  We also impose top and bottom
+margins on the legend to match the plot margins.
+
+<<barplot, results=hide, fig=TRUE, width=6, height=6, include=FALSE>>=
+grid.rect(gp = gpar(lty = "dashed"))
+legend.width <- max(unit(rep(1, length(legLabels)),
+                         "strwidth", as.list(legLabels)) +
+                    unit(2, "lines"),
+                    unit(0.5, "inches") + unit(2, "lines"))
+pushViewport(viewport(layout = grid.layout(1, 2,
+                      widths = unit.c(unit(1,"null"), legend.width))))
+pushViewport(viewport(layout.pos.col = 1))
+bp(barData)
+popViewport()
+pushViewport(viewport(layout.pos.col = 2))
+pushViewport(plotViewport(c(5, 0, 4, 0)))
+leg(legLabels)
+popViewport(3)
+@
+\begin{figure}[p]
+\begin{center}
+{
+\includegraphics[width=3.5in, height=3.5in]{grid-barplot}
+}
+\end{center}
+\caption{\label{figure:barplot}
+        A barplot plus legend from first principles using \grid{}.}
+\end{figure}
+
+
+\section{\grid{} and \lattice{}}
+
+The \lattice{} package is built on top of \grid{} and provides a
+quite sophisticated example of writing high-level plotting functions
+using \grid{}.  Because \lattice{} consists of \grid{} calls, it is
+possible to both add \grid{} output to \lattice{} output, and
+\lattice{} output to \grid{} output.
+
+\subsection*{Adding \grid{} to \lattice{}}
+
+Panel functions in \lattice{} can include \grid{} calls.
+The following example adds a horizontal line at 0 to a standard
+\code{xyplot} (see Figure \ref{figure:trellispanel}):
+
+<<echo=FALSE, results=hide>>=
+library(lattice)
+<<trellisdata, echo=FALSE, eval=FALSE>>=
+x <- rnorm(100)
+y <- rnorm(100)
+g <- sample(1:8, 100, replace = TRUE)
+@
+% This is the code the reader sees
+% This WILL get run by checking code, but by then lattice will be
+% installed so it will be ok
+<<trellispanelplot, eval=FALSE>>=
+xyplot(y ~ x | g, panel = function(x, y) {
+    panel.xyplot(x, y);
+    grid.lines(unit(c(0, 1), "npc"), unit(0, "native"),
+               gp = gpar(col = "grey"))
+})
+@
+% This generates the actual plot
+<<trellispanel, echo=FALSE, results=hide, fig=TRUE, width=6, height=6, include=FALSE>>=
+<<trellisdata>>
+<<trellispanelplot>>
+@
+\begin{figure}[p]
+\begin{center}
+{
+\includegraphics[width=3.5in, height=3.5in]{grid-trellispanel}
+}
+\end{center}
+\caption{\label{figure:trellispanel}
+        A \lattice{} panel function using \grid{}.}
+\end{figure}
+@
+The following  example writes a left-justified label in each strip
+(see Figure \ref{figure:trellisstrip}):
+
+<<trellisstripplot, eval=FALSE>>=
+xyplot(y ~ x | g, strip = function(which.given, which.panel, ...) {
+    grid.text(paste("Variable ", which.given, ": Level ",
+                    which.panel[which.given], sep = ""),
+              unit(1, "mm"), .5, just = "left")
+})
+<<trellisstrip, echo=FALSE, results=hide, fig=TRUE, width=6, height=6, include=FALSE>>=
+<<trellisdata>>
+<<trellisstripplot>>
+@
+\begin{figure}[p]
+\begin{center}
+{
+\includegraphics[width=3.5in, height=3.5in]{grid-trellisstrip}
+}
+\end{center}
+\caption{\label{figure:trellisstrip}
+        A \lattice{} strip function using \grid{}.}
+\end{figure}
+
+\subsection*{Adding \lattice{} to \grid{}}
+
+It is also possible to use a \lattice{} plot as an element of
+a \grid{} image.  The following example splits up the page
+so that there is an \code{xyplot} beside a panel of text
+(see Figure \ref{figure:trellisgrid}).  First of all, the
+lattice plot is created, but
+not drawn.  \grid{} is used to create some regions and the lattice
+plot is drawn into one of those regions.
+
+<<trellisgridplot, eval=FALSE>>=
+someText <- paste("A panel of text", "produced using", "raw grid code",
+                  "that could be used", "to describe",
+                  "the plot", "to the right.", sep = "\n")
+latticePlot <- xyplot(y ~ x | g, layout = c(2, 4))
+grid.rect(gp = gpar(lty = "dashed"))
+pushViewport(viewport(layout = grid.layout(1, 2,
+                      widths = unit.c(unit(1, "strwidth", someText) +
+                      unit(2, "cm"),
+                      unit(1, "null")))))
+pushViewport(viewport(layout.pos.col = 1))
+grid.rect(gp = gpar(fill = "light grey"))
+grid.text(someText,
+          x = unit(1, "cm"), y = unit(1, "npc") - unit(1, "inches"),
+          just = c("left", "top"))
+popViewport()
+pushViewport(viewport(layout.pos.col = 2))
+print(latticePlot, newpage = FALSE)
+popViewport(2)
+<<trellisgrid, echo=FALSE, results=hide, fig=TRUE, width=6, height=6, include=FALSE>>=
+<<trellisdata>>
+<<trellisgridplot>>
+@
+\begin{figure}[tbp]
+\begin{center}
+{
+\includegraphics[width=3.5in, height=3.5in]{grid-trellisgrid}
+}
+\end{center}
+\caption{\label{figure:trellisgrid}
+        A \lattice{} plot used as a component of a larger \grid{} image.}
+\end{figure}
+
+
+\bibliographystyle{plain}
+\bibliography{grid}
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/DivByZero.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/DivByZero.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/DivByZero.txt	(revision 2476)
@@ -0,0 +1,50 @@
+
+DIVISION BY ZERO in grid units:
+
+- There are two main conversion scenarios in grid:
+
+  + converting a unit to a final location/dimension for drawing
+    (or for determining the boundary of a drawn object)
+
+    - The grid graphics package converts all incoming units to INCHES 
+      (then uses R graphics engine to convert to device coordinates)
+
+    - Almost all conversions to INCHES involve multiplication only
+
+    - The exception is "native" units, which require a division by
+      the range of the native scale.  This creates the possibility
+      of division by zero if the range of the native scale is zero
+      (i.e., the scale limits are identical).
+
+      SOLUTION:  make it an error to set a scale with identical limits.
+
+  + converting from one unit to another (within a viewport context)
+
+    - Conversions, via convertUnit(), involve two steps: 
+      conversion from the original unit TO inches and then 
+      conversion FROM inches to the final unit.
+
+    - Any division-by-zero in the conversion TO inches is avoided
+      by the solution above.
+
+    - Division-by-zero in the conversion FROM inches can occur 
+      IF the viewport has zero physical width or height 
+      AND the final unit is relative ("npc" or "native").
+
+      SOLUTION:  (i) IF original unit is also relative ...
+                     (a) IF original unit is plain unit AND we are NOT
+                         converting 'x' to 'y' (or vice versa) catch this
+                         as special case and make it work.
+                     (b) OTHERWISE (original unit is complex or we are
+                         converting 'x' to 'y' or vice versa)
+                         return zero.
+                 (ii) IF original unit is absolute, throw an error
+      (because the conversion does not make sense) UNLESS the original
+      unit value is zero, in which case return zero.
+
+    - NOTE that conversion FROM anything TO an absolute final unit
+      does not risk division-by-zero, even when viewport has zero
+      physical width or height.  (The result is either zero, if
+      the original unit is relative, or an identity operation [in 
+      terms of the physical result] if the original unit is absolute.)
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/DivByZero.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/sharing.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/sharing.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/sharing.R	(revision 2476)
@@ -0,0 +1,140 @@
+### R code from vignette source 'sharing.Rnw'
+
+###################################################
+### code chunk number 1: sharing.Rnw:20-26
+###################################################
+library(grDevices)
+library(graphics)
+library(stats) # for rnorm
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+
+
+###################################################
+### code chunk number 2: axes1 (eval = FALSE)
+###################################################
+## pushViewport(viewport(layout = grid.layout(1, 2, respect = TRUE)))
+
+
+###################################################
+### code chunk number 3: axes2 (eval = FALSE)
+###################################################
+## x <- 1:10
+## y1 <- rnorm(10)
+## vp1a <- viewport(layout.pos.col = 1)
+## vp1b <- viewport(width = 0.6, height = 0.6,
+##                  xscale = c(0, 11), yscale = c(-4, 4))
+## pushViewport(vp1a, vp1b)
+## grid.xaxis(name = "xaxis")
+## grid.yaxis(name = "yaxis")
+## grid.points(x, y1)
+## popViewport(2)
+
+
+###################################################
+### code chunk number 4: axes3 (eval = FALSE)
+###################################################
+## y2 <- rnorm(10)
+## vp2a <- viewport(layout.pos.col = 2)
+## vp2b <- viewport(width = 0.6, height = 0.6,
+##                  xscale = c(0, 11), yscale = c(-4, 4))
+## pushViewport(vp2a, vp2b)
+## grid.xaxis
+## grid.xaxis(name = "xaxis")
+## grid.yaxis(name = "yaxis")
+## grid.points(x, y2)
+## popViewport(2)
+
+
+###################################################
+### code chunk number 5: shared
+###################################################
+pushViewport(viewport(layout = grid.layout(1, 2, respect = TRUE)))
+x <- 1:10
+y1 <- rnorm(10)
+vp1a <- viewport(layout.pos.col = 1)
+vp1b <- viewport(width = 0.6, height = 0.6,
+                 xscale = c(0, 11), yscale = c(-4, 4))
+pushViewport(vp1a, vp1b)
+grid.xaxis(name = "xaxis")
+grid.yaxis(name = "yaxis")
+grid.points(x, y1)
+popViewport(2)
+y2 <- rnorm(10)
+vp2a <- viewport(layout.pos.col = 2)
+vp2b <- viewport(width = 0.6, height = 0.6,
+                 xscale = c(0, 11), yscale = c(-4, 4))
+pushViewport(vp2a, vp2b)
+grid.xaxis
+grid.xaxis(name = "xaxis")
+grid.yaxis(name = "yaxis")
+grid.points(x, y2)
+popViewport(2)
+
+
+
+###################################################
+### code chunk number 6: axesedit (eval = FALSE)
+###################################################
+## grid.edit("xaxis", at = c(1, 5, 9), global = TRUE)
+## 
+
+
+###################################################
+### code chunk number 7: shared2
+###################################################
+postscript("shared2-%02d.eps", onefile = FALSE, paper = "special",
+           width = 4, height = 2)
+pushViewport(viewport(layout = grid.layout(1, 2, respect = TRUE)))
+x <- 1:10
+y1 <- rnorm(10)
+vp1a <- viewport(layout.pos.col = 1)
+vp1b <- viewport(width = 0.6, height = 0.6,
+                 xscale = c(0, 11), yscale = c(-4, 4))
+pushViewport(vp1a, vp1b)
+grid.xaxis(name = "xaxis")
+grid.yaxis(name = "yaxis")
+grid.points(x, y1)
+popViewport(2)
+y2 <- rnorm(10)
+vp2a <- viewport(layout.pos.col = 2)
+vp2b <- viewport(width = 0.6, height = 0.6,
+                 xscale = c(0, 11), yscale = c(-4, 4))
+pushViewport(vp2a, vp2b)
+grid.xaxis
+grid.xaxis(name = "xaxis")
+grid.yaxis(name = "yaxis")
+grid.points(x, y2)
+popViewport(2)
+grid.edit("xaxis", at = c(1, 5, 9), global = TRUE)
+
+dev.off()
+
+pdf("shared2-%02d.pdf", onefile = FALSE, width = 4, height = 2)
+pushViewport(viewport(layout = grid.layout(1, 2, respect = TRUE)))
+x <- 1:10
+y1 <- rnorm(10)
+vp1a <- viewport(layout.pos.col = 1)
+vp1b <- viewport(width = 0.6, height = 0.6,
+                 xscale = c(0, 11), yscale = c(-4, 4))
+pushViewport(vp1a, vp1b)
+grid.xaxis(name = "xaxis")
+grid.yaxis(name = "yaxis")
+grid.points(x, y1)
+popViewport(2)
+y2 <- rnorm(10)
+vp2a <- viewport(layout.pos.col = 2)
+vp2b <- viewport(width = 0.6, height = 0.6,
+                 xscale = c(0, 11), yscale = c(-4, 4))
+pushViewport(vp2a, vp2b)
+grid.xaxis
+grid.xaxis(name = "xaxis")
+grid.yaxis(name = "yaxis")
+grid.points(x, y2)
+popViewport(2)
+grid.edit("xaxis", at = c(1, 5, 9), global = TRUE)
+
+dev.off()
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grid.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/grid.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/saveload.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/saveload.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/saveload.R	(revision 2476)
@@ -0,0 +1,40 @@
+### R code from vignette source 'saveload.Rnw'
+
+###################################################
+### code chunk number 1: saveload.Rnw:23-27
+###################################################
+library(grDevices)
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+
+
+###################################################
+### code chunk number 2: saveload.Rnw:54-56
+###################################################
+gt <- textGrob("hi")
+save(gt, file = "mygridplot")
+
+
+###################################################
+### code chunk number 3: saveload.Rnw:60-62
+###################################################
+load("mygridplot")
+grid.draw(gt)
+
+
+###################################################
+### code chunk number 4: saveload.Rnw:95-98
+###################################################
+grid.grill()
+temp <- recordPlot()
+save(temp, file = "mygridplot")
+
+
+###################################################
+### code chunk number 5: saveload.Rnw:105-107
+###################################################
+load("mygridplot")
+temp
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/plotexample.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/plotexample.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/plotexample.Rnw	(revision 2476)
@@ -0,0 +1,587 @@
+% File src/library/grid/vignettes/plotexample.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2001-13 Paul Murrell and the R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+%\VignetteIndexEntry{Writing grid Code}
+%\VignettePackage{grid}
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\pkg}[1]{{\normalfont\fontseries{b}\selectfont #1}}
+\newcommand{\grid}{\pkg{grid}}
+\newcommand{\grob}{\code{grob}}
+\newcommand{\gTree}{\code{gTree}}
+\newcommand{\R}{{\sffamily R}}
+\setlength{\parindent}{0in}
+\setlength{\parskip}{.1in}
+\setlength{\textwidth}{140mm}
+\setlength{\oddsidemargin}{10mm}
+
+\newcommand{\aside}[1]{\begin{list}{}
+                                   {\setlength{\leftmargin}{1in}
+                                    \setlength{\rightmargin}{1in}
+                                    \setlength{\itemindent}{0in}}
+                       \item \textsc{Aside:} \emph{#1}
+                       \end{list}}
+
+\title{Writing \grid{} Code}
+\author{Paul Murrell}
+
+\begin{document}
+\maketitle
+
+<<echo=FALSE, results=hide>>=
+library(grDevices)
+library(stats) # for runif()
+library(grid)
+ps.options(pointsize=12)
+options(width=60)
+@
+
+The \grid{} system contains a degree of complexity in order
+to allow things like editing graphical objects, ``packing'' graphical
+objects, and so on.  This means that many of the
+predefined Grid graphics functions are
+relatively complicated\footnote{Although there are exceptions;  some
+functions, such as \code{grid.show.viewport}, are purely for producing
+illustrative diagrams and remain simple and procedural.}.
+
+One design aim of \grid{} is to allow users to create simple graphics
+simply and not to force them to use complicated concepts or write
+complicated code unless they actually need to.  Along similar lines,
+it is intended that people should be able to prototype even complex
+graphics very simply and then refine the implementation into a more
+sophisticated form if necessary.
+
+With the predefined graphics functions being fully-developed and
+complicated implementations, there is a lack of examples of simple,
+prototype code.  Furthermore, given that the aim is to allow a range
+of ways to produce the same graphical output, there is a need for
+examples which demonstrate the various stages, from simple to complex,
+that a piece of \grid{} code can go through.
+
+This document describes the construction of a scatterplot object, like
+that shown below, going from the simplest, prototype implementation to
+the most complex and sophisticated.  It demonstrates that if you only
+want simple graphics output then you can do it pretty simply and
+quickly.  It also demonstrates how to write functions that allow your
+graphics to be used by other people.  Finally, it demonstrates how to
+make your graphics fully interactive (or at least as interactive as
+Grid will let you make it).
+
+@
+This document should be read {\em after} the \grid{} Users'
+Guide.  Here we are assuming that the reader has an understanding
+of viewports, layouts, and units.  For the later sections of the
+document, it will also be helpful to have an understanding of
+\R{}'s \code{S3} object system.
+
+\section*{Procedural \grid{}}
+
+The simplest way to produce graphical output in Grid is just like
+producing standard R graphical output.  You simply issue a series of
+graphics commands and each command adds more ink to the plot.  The
+purpose of the commands is simply to produce graphics output; in
+particular, we are not concerned with any values returned by the
+plotting functions.  I will call this \emph{procedural graphics}.
+
+In order to draw a simple scatterplot, we can  issue a series
+of commands which draw the various components of the plot.
+
+Here are some random data to plot.
+
+<<>>=
+x <- runif(10)
+y <- runif(10)
+@
+\noindent
+The first step in creating the plot involves defining a ``data'' region.
+This is a region which has sensible scales on the axes for plotting the
+data and margins around the outside
+for the axes to fit in, with a space for a title at the top.
+
+<<datavp>>=
+data.vp <- viewport(x = unit(5, "lines"),
+                    y = unit(4, "lines"),
+                    width = unit(1, "npc") - unit(7, "lines"),
+                    height = unit(1, "npc") - unit(7, "lines"),
+                    just = c("left", "bottom"),
+                    xscale = range(x) + c(-0.05, 0.05)*diff(range(x)),
+                    yscale = range(y) + c(-0.05, 0.05)*diff(range(y)))
+@
+\noindent
+Now we create the data region and draw the components of the plot
+relative to it: points, axes, labels, and a title.
+
+<<procplot>>=
+pushViewport(data.vp)
+grid.points(x, y)
+grid.rect()
+grid.xaxis()
+grid.yaxis()
+grid.text("x axis", y = unit(-3, "lines"),
+          gp = gpar(fontsize = 14))
+grid.text("y axis", x = unit(-4, "lines"),
+          gp = gpar(fontsize = 14), rot = 90)
+grid.text("A Simple Plot",
+          y = unit(1, "npc") + unit(1.5, "lines"),
+          gp = gpar(fontsize = 16))
+popViewport()
+<<fig=TRUE, echo=FALSE, results=hide>>=
+<<procplot>>
+@
+\section*{Facilitating Annotation}
+
+Issuing a series of commands to produce a plot, like in the previous
+section, allows the user to have a great deal of flexibility.
+It is always possible to recreate viewports in order to add
+further annotations.  For example, the following code
+recreates the data region in order to place the date
+at the bottom right corner.
+
+<<ann1>>=
+pushViewport(data.vp)
+grid.text(date(), x = unit(1, "npc"), y = 0,
+          just = c("right", "bottom"), gp = gpar(col="grey"))
+popViewport()
+<<fig=TRUE, echo=FALSE, results=hide>>=
+<<procplot>>
+<<ann1>>
+@
+
+When more complex arrangements of viewports are involved, there may be
+a bewildering array of viewports created, which may make it difficult
+for other users to revisit a particular region of a plot.  A
+\code{lattice} plot is a good example.  In such cases, it will be more
+cooperative to use \code{upViewport()} rather than
+\code{popViewport()} and leave the viewports that were created during
+the drawing of the plot.  Other users can then use \code{vpPath}s to
+navigate to the desired region.  For example, here is a slight
+modification of the original series of commands, where the original
+data viewport is given a name and \code{upViewport()} is used at the
+end.
+
+<<results=hide>>=
+data.vp <- viewport(name = "dataregion",
+                    x = unit(5, "lines"),
+                    y = unit(4, "lines"),
+                    width = unit(1, "npc") - unit(7, "lines"),
+                    height = unit(1, "npc") - unit(7, "lines"),
+                    just = c("left", "bottom"),
+                    xscale = range(x) + c(-0.05, 0.05)*diff(range(x)),
+                    yscale = range(y) + c(-0.05, 0.05)*diff(range(y)))
+pushViewport(data.vp)
+grid.points(x, y)
+grid.rect()
+grid.xaxis()
+grid.yaxis()
+grid.text("x axis", y = unit(-3, "lines"),
+          gp = gpar(fontsize = 14))
+grid.text("y axis", x = unit(-4, "lines"),
+          gp = gpar(fontsize = 14), rot = 90)
+grid.text("A Simple Plot",
+          y = unit(1, "npc") + unit(1.5, "lines"),
+          gp = gpar(fontsize = 16))
+upViewport()
+@
+
+The date is now added using \code{downViewport()} to get to the data
+region.
+
+<<results=hide>>=
+downViewport("dataregion")
+grid.text(date(), x = unit(1, "npc"), y  =  0,
+          just = c("right", "bottom"), gp = gpar(col = "grey"))
+upViewport()
+@
+\section*{Writing a \grid{} Function}
+
+Here is the scatterplot code wrapped up as a simple function.
+
+<<funcplot>>=
+splot <- function(x = runif(10), y = runif(10), title = "A Simple Plot") {
+    data.vp <- viewport(name = "dataregion",
+                        x = unit(5, "lines"),
+                        y = unit(4, "lines"),
+                        width = unit(1, "npc") - unit(7, "lines"),
+                        height = unit(1, "npc") - unit(7, "lines"),
+                        just = c("left", "bottom"),
+                        xscale = range(x) + c(-.05, .05)*diff(range(x)),
+                        yscale = range(y) + c(-.05, .05)*diff(range(y)))
+    pushViewport(data.vp)
+    grid.points(x, y)
+    grid.rect()
+    grid.xaxis()
+    grid.yaxis()
+    grid.text("y axis", x = unit(-4, "lines"),
+              gp = gpar(fontsize = 14), rot = 90)
+    grid.text(title, y = unit(1, "npc") + unit(1.5, "lines"),
+              gp = gpar(fontsize = 16))
+    upViewport()
+}
+@
+There are several advantages to creating a
+function:
+\begin{enumerate}
+\item We get the standard advantages of a function:
+we can reuse and maintain the plot code more easily.
+\item We can slightly generalise the plot.  In this case, we can use it for
+different data and have a different title.  We could
+add more arguments to allow different margins, control over
+the axis scales, and so on.
+\item The plot can be embedded in other graphics output.
+\end{enumerate}
+Here is an example which uses the \code{splot()} function to
+create a slightly modified scatterplot, embedded within
+other \grid{} output.
+
+<<embed, fig=TRUE, results=hide>>=
+grid.rect(gp = gpar(fill = "grey"))
+message <-
+    paste("I could draw all sorts",
+          "of stuff over here",
+          "then create a viewport",
+          "over there and stick",
+          "a scatterplot in it.", sep = "\n")
+grid.text(message, x = 0.25)
+grid.lines(x = unit.c(unit(0.25, "npc") + 0.5*stringWidth(message) +
+           unit(2, "mm"),
+           unit(0.5, "npc") - unit(2, "mm")),
+           y = 0.5,
+           arrow = arrow(angle = 15, type = "closed"),
+           gp = gpar(lwd = 3, fill = "black"))
+pushViewport(viewport(x = 0.5, height = 0.5, width = 0.45, just = "left",
+                      gp = gpar(cex = 0.5)))
+grid.rect(gp = gpar(fill = "white"))
+splot(1:10, 1:10, title = "An Embedded Plot")
+upViewport()
+@
+
+It is still straightforward to annotate the scatterplot as long as
+we have enough information about the viewports.  In this case,
+a non-strict \code{downViewport()} will still work (though note
+that \code{upViewport({\bf 0})} is required to get right back to the
+top level).
+
+<<ann2, echo = FALSE, eval=FALSE>>=
+downViewport("dataregion")
+grid.text(date(), x = unit(1, "npc"), y  =  0,
+          just = c("right", "bottom"), gp = gpar(col = "grey"))
+upViewport(0)
+<<echo=FALSE, results=hide>>=
+<<embed>>
+<<ann2>>
+@
+\section*{Creating \grid{} Graphical Objects}
+
+A \grid{} function like the one in the previous section provides
+output which is very flexible and can be annotated in arbitrary ways
+and can be embedded within other output.  This is likely
+to satisfy most uses.
+
+However, there are some things that cannot be done (or at least would
+be extremely hard to do) with such a function.  The output produced by
+the function cannot be addressed as a coherent whole.  It is not
+possible, for example, to to change the \code{x} and \code{y} data
+used in the plot and have the points and axes update automatically.
+There is no scatterplot object to save; the individual components
+exist, but they are not bound together as a whole.  If/when these
+sorts of issues become important, it becomes necessary to create a
+\grid{} graphical object (a \grob{}) to represent the plot.
+
+The first step is to write a function which will create a \grob{}
+-- a \emph{constructor} function.  In most cases, this will involve
+creating a special sort of \grob{} called a \gTree{};  this is just
+a \grob{} that can have other \grob{}s as children.  Here's an example
+for creating an \code{splot} \grob{}.  I have put bits of the
+construction into separate functions, for reasons which will become
+apparent later.
+
+<<>>=
+splot.data.vp <- function(x, y) {
+  viewport(name = "dataregion",
+           x = unit(5, "lines"),
+           y = unit(4, "lines"),
+           width = unit(1, "npc") - unit(7, "lines"),
+           height = unit(1, "npc") - unit(7, "lines"),
+           just = c("left", "bottom"),
+           xscale = range(x) + c(-.05, .05)*diff(range(x)),
+           yscale = range(y) + c(-.05, .05)*diff(range(y)))
+}
+
+splot.title <- function(title) {
+      textGrob(title, name = "title",
+               y = unit(1, "npc") + unit(1.5, "lines"),
+               gp = gpar(fontsize = 16), vp = "dataregion")
+}
+
+splot <- function(x, y, title, name=NULL, draw=TRUE, gp=gpar(), vp=NULL) {
+    spg <- gTree(x = x, y = y, title = title, name = name,
+                 childrenvp  =  splot.data.vp(x, y),
+                 children = gList(rectGrob(name = "border",
+                                           vp = "dataregion"),
+                 xaxisGrob(name = "xaxis", vp = "dataregion"),
+                 yaxisGrob(name = "yaxis", vp = "dataregion"),
+                 pointsGrob(x, y, name = "points", vp = "dataregion"),
+                 textGrob("x axis", y = unit(-3, "lines"), name = "xlab",
+                          gp = gpar(fontsize = 14), vp = "dataregion"),
+                 textGrob("y axis", x = unit(-4, "lines"), name = "ylab",
+                          gp = gpar(fontsize = 14), rot = 90,
+                          vp = "dataregion"),
+                 splot.title(title)),
+                 gp = gp, vp = vp,
+                 cl = "splot")
+    if (draw) grid.draw(spg)
+    spg
+}
+@
+
+There are four important additions to the argument list compared
+to the original \code{splot()} function:
+\begin{enumerate}
+\item The \code{name} argument allows a string identifier to be
+  associated with the scatterplot object we create.  This is important
+  for being able to specify the scatterplot when we try to edit it
+  after drawing it and/or when it is part of a larger \grob{} (see
+  later examples).
+
+\item The \code{draw} argument makes it possible to use the function
+  in a procedural manner as before:
+
+<<splotgrob, eval=FALSE, echo=FALSE>>=
+sg <- splot(1:10, 1:10, "Same as Before", name = "splot", draw = FALSE)
+<<>>=
+splot(1:10, 1:10, "Same as Before", name = "splot")
+downViewport("dataregion")
+grid.text(date(), x = unit(1, "npc"), y = 0,
+          just = c("right", "bottom"), gp = gpar(col = "grey"))
+upViewport(0)
+@
+\item The \code{gp} argument allows the user to supply \code{gpar()}
+  settings for the scatterplot as a whole.
+
+\item The \code{vp} argument allows the user to supply a viewport for
+  the \code{splot} \grob{} to be drawn in.  This is especially useful
+  for specifying a \code{vpPath} when the \code{splot} is used as a
+  component of another \grob{} (see scatterplot matrix example below).
+\end{enumerate}
+
+The important parts of the \gTree{}  definition are:
+\begin{enumerate}
+\item The \code{children} argument provides a list of \grob{}s which
+  are part of the scatterplot.  When the scatterplot is drawn, all
+  children will be drawn.  Notice that instead of the procedural
+  \code{grid.*()} functions we use \code{*Grob()} functions which just
+  produce \grob{}s and do not perform any drawing.  Also notice that I
+  have given each of the children a name; this will make it possible
+  to access the components of the scatterplot (see later examples).
+\item The \code{childrenvp} argument provides a viewport (or
+  \code{vpStack}, \code{vpList}, or \code{vpTree}) which will be
+  pushed before the children are drawn.  The difference between this
+  argument and the \code{vp} argument common to all \grob{}s is that
+  the \code{vp} is pushed before drawing the children and then popped
+  after, whereas the \code{childrenvp} gets pushed \emph{and} then a
+  call to \code{upViewport()} is made before the children are drawn.
+  This allows the children to simply specify the viewport they should
+  be drawn in by way of a \code{vpPath} in their \code{vp} argument.
+  In this way, viewports remain available for further annotation such
+  as we have already seen in procedural code.
+\item The \code{gp} and \code{vp} arguments are automatically handled
+  by the \gTree{} drawing methods so that \code{gpar()} settings will
+  be enforced and the viewport will be pushed when the \code{splot} is
+  drawn.
+\item The \code{cl} argument means that the \grob{} created is a
+  special sort of \grob{} called \code{splot}.  This will allow us to
+  write methods specifically for our scatterplot (see later examples).
+\end{enumerate}
+
+
+@
+
+Now that we have a \grob{}, there are some more interesting things
+that we can do with it.  First of all, the \code{splot} \grob{}
+provides a container for the \grob{}s which make up the scatterplot.
+If we modify the \code{splot} \grob{}, it affects all of the children.
+
+<<results=hide>>=
+splot(1:10, 1:10, "Same as Before", name = "splot")
+grid.edit("splot", gp = gpar(cex=0.5))
+<<fig=TRUE, echo=FALSE, results=hide>>=
+<<splotgrob>>
+sg <- editGrob(sg, gp = gpar(cex = 0.5))
+grid.draw(sg)
+@
+
+We can access elements of the \code{splot} \grob{} to edit them
+individually.
+
+<<results=hide>>=
+splot(1:10, 1:10, "Same as Before", name = "splot")
+grid.edit(gPath("splot", "points"), gp = gpar(col = 1:10))
+<<fig=TRUE, echo=FALSE, results=hide>>=
+<<splotgrob>>
+sg <- editGrob(sg, gPath = "points", gp = gpar(col = 1:10))
+grid.draw(sg)
+
+@
+
+With a little more work we can make the scatterplot a bit more dynamic.
+The following describes a \code{editDetails()} method for the
+\code{splot} \grob{}.  This will be called whenever a scatterplot
+is edited and will update the components of the scatterplot.
+
+<<>>=
+editDetails.splot <- function(x, specs) {
+    if (any(c("x", "y") %in% names(specs))) {
+        if (is.null(specs$x)) xx <- x$x else xx <- specs$x
+        if (is.null(specs$y)) yy <- x$y else yy <- specs$y
+        x$childrenvp <- splot.data.vp(xx, yy)
+        x <- addGrob(x, pointsGrob(xx, yy, name = "points",
+                                   vp = "dataregion"))
+    }
+  x
+}
+splot(1:10, 1:10, "Same as Before", name = "splot")
+grid.edit("splot", x = 1:100, y = (1:100)^2)
+<<fig=TRUE, echo=FALSE, results=hide>>=
+<<splotgrob>>
+sg <- editGrob(sg, x = 1:100, y = (1:100)^2)
+grid.draw(sg)
+@
+
+The \code{splot} \grob{} can also be used in the construction of other
+\grob{}s.  Here's a simple scatterplot matrix \grob{}\footnote{{\bf
+    Warning:} As the number of \grob{}s in a \gTree{} gets larger the
+  construction of the \gTree{} will get slow.  If this happens, the
+  best solution is to just use a \grid{} function rather than a
+  \gTree{}, and wait for me to implement some ideas for speeding
+  things up!}.
+
+<<fig=TRUE>>=
+cellname <- function(i, j) paste("cell", i, j, sep = "")
+
+splom.vpTree <- function(n) {
+    vplist <- vector("list", n^2)
+    for (i in 1:n)
+        for (j in 1:n)
+            vplist[[(i - 1)*n + j]] <-
+              viewport(layout.pos.row = i, layout.pos.col = j,
+                       name = cellname(i, j))
+    vpTree(viewport(layout = grid.layout(n, n), name = "cellgrid"),
+    do.call("vpList", vplist))
+}
+
+cellpath <- function(i, j) vpPath("cellgrid", cellname(i, j))
+
+splom <- function(df, name = NULL, draw = TRUE) {
+    n <- dim(df)[2]
+    glist <- vector("list", n*n)
+    for (i in 1:n)
+        for (j in 1:n) {
+            glist[[(i - 1)*n + j]] <-if (i == j)
+                textGrob(paste("diag", i, sep = ""),
+                         gp = gpar(col = "grey"), vp = cellpath(i, j))
+            else if (j > i)
+                textGrob(cellname(i, j),
+                         name = cellname(i, j),
+                         gp = gpar(col = "grey"), vp = cellpath(i, j))
+            else
+                splot(df[,j], df[,i], "",
+                      name = paste("plot", i, j, sep = ""),
+                      vp = cellpath(i, j),
+                      gp = gpar(cex = 0.5), draw = FALSE)
+        }
+    smg <- gTree(name = name, childrenvp = splom.vpTree(n),
+                 children = do.call("gList", glist))
+    if (draw) grid.draw(smg)
+    smg
+}
+
+df <- data.frame(x = rnorm(10), y = rnorm(10), z = rnorm(10))
+splom(df)
+@
+
+This \grob{} can be edited as usual:
+
+<<>>=
+splom(df)
+grid.edit("plot21::xlab", label = "", redraw = FALSE)
+grid.edit("plot32::ylab", label = "", redraw = FALSE)
+grid.edit("plot21::xaxis", label = FALSE, redraw = FALSE)
+grid.edit("plot32::yaxis", label = FALSE)
+<<splomgrob, eval=FALSE, echo=FALSE>>=
+smg <- splom(df, draw = FALSE)
+<<fig=TRUE, echo=FALSE, results=hide>>=
+<<splomgrob>>
+smg <- editGrob(smg, gPath = "plot21::xaxis", label = FALSE)
+smg <- editGrob(smg, gPath = "plot21::xlab", label = "")
+smg <- editGrob(smg, gPath = "plot32::yaxis", label = FALSE)
+smg <- editGrob(smg, gPath = "plot32::ylab", label = "")
+grid.draw(smg)
+@
+
+But of more interest, because this is a \grob{}, is the
+\emph{programmatic} interface.  With a \grob{} (as opposed to a
+function) it is possible to modify the description of what is being
+drawn via an API (as opposed to having to edit the original code).  In
+the following, we remove one of the ``spare'' cell labels and put in
+its place the current date.
+
+<<>>=
+splom(df, name = "splom")
+grid.remove("cell12")
+grid.add("splom", textGrob(date(), name = "date",
+                           gp = gpar(fontface = "italic"),
+                           vp = "cellgrid::cell12"))
+<<fig=TRUE, echo=FALSE, results=hide>>=
+<<splomgrob>>
+smg <- removeGrob(smg, "cell12")
+smg <- addGrob(smg, textGrob(date(), name = "date",
+                             gp = gpar(fontface = "italic"),
+                             vp = "cellgrid::cell12"))
+grid.draw(smg)
+@
+
+With the date added as a component of the scatterplot matrix, it is
+saved as part of the matrix.  The next sequence saves the scatterplot
+matrix, loads it again, extracts the bottom-left plot and the date
+and just draws those two objects together.
+
+<<>>=
+splom(df, name = "splom")
+grid.remove("cell12")
+grid.add("splom", textGrob(date(), name = "date",
+                           gp = gpar(fontface = "italic"),
+                           vp = "cellgrid::cell12"))
+smg <- grid.get("splom")
+save(smg, file = "splom.RData")
+load("splom.RData")
+plot <- getGrob(smg, "plot31")
+date <- getGrob(smg, "date")
+plot <- editGrob(plot, vp = NULL, gp = gpar(cex = 1))
+date <- editGrob(date, y = unit(1, "npc") - unit(1, "lines"), vp = NULL)
+grid.newpage()
+grid.draw(plot)
+grid.draw(date)
+
+<<fig=TRUE, echo=FALSE, results=hide>>=
+<<splomgrob>>
+smg <- removeGrob(smg, "cell12")
+smg <- addGrob(smg, textGrob(date(), name = "date",
+                             gp = gpar(fontface = "italic"),
+                             vp = "cellgrid::cell12"))
+save(smg, file = "splom.RData")
+load("splom.RData")
+plot <- getGrob(smg, "plot31")
+date <- getGrob(smg, "date")
+plot <- editGrob(plot, vp = NULL, gp = gpar(cex = 1))
+date <- editGrob(date, y = unit(1, "npc") - unit(1, "lines"), vp = NULL)
+grid.draw(plot)
+grid.draw(date)
+@
+
+All of this may seem a bit irrelevant to interactive use, but it does
+provide a basis for creating an editable plot interface as used in
+M.~Kondrin's \pkg{Rgrace} package (available on CRAN 2005--7).
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/plotexample.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/plotexample.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/locndimn.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/locndimn.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/locndimn.R	(revision 2476)
@@ -0,0 +1,72 @@
+### R code from vignette source 'locndimn.Rnw'
+
+###################################################
+### code chunk number 1: locndimn.Rnw:25-29
+###################################################
+library(grDevices)
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+
+
+###################################################
+### code chunk number 2: locndimn.Rnw:57-96
+###################################################
+diagram.locn <- function(i, n, locn) {
+  x <- i/(n+1)
+  grid.lines(x = unit(rep(x, 2), "npc"),
+             y = unit.c(unit(0, "npc"), locn))
+  grid.lines(x = unit(x, "npc") + unit(c(-2, 0, 2), "mm"),
+             y = locn + unit(c(-2, 0, -2), "mm"))
+  grid.text(paste(as.character(locn), "as a location"),
+            x = unit(x, "npc") - unit(1, "mm"),
+            y = locn - unit(3, "mm"),
+            just = c("right", "bottom"),
+            rot = 90)
+}
+diagram.dimn <- function(i, n, dimn) {
+  x <- i/(n+1)
+  pushViewport(viewport(x = unit(x, "npc"), y = unit(0, "native"),
+            h = dimn, w = unit(1, "lines"), just = c("centre", "bottom")))
+  grid.rect()
+  grid.text(paste(as.character(dimn), "as a dimension"),
+            rot = 90)
+  popViewport()
+}
+pushViewport(viewport(w = 0.8, y=unit(1.7, "inches"),
+                      h = unit(4, "inches"),
+                      just = c("centre", "bottom"),
+                      yscale = c(-0.6, 1.3)))
+grid.grill(v = c(0, 1), h = seq(-0.5, 1, 0.5), default.units = "native")
+grid.rect()
+grid.yaxis()
+n <- 10
+diagram.locn(1, n, unit(1, "native"))
+diagram.locn(2, n, unit(-0.4, "native"))
+diagram.locn(3, n, unit(0.4, "native"))
+diagram.locn(4, n, unit(1, "native") + unit(-0.4, "native"))
+diagram.locn(5, n, unit(1, "native") - unit(0.4, "native"))
+diagram.dimn(6, n, unit(1, "native"))
+diagram.dimn(7, n, unit(-0.4, "native"))
+diagram.dimn(8, n, unit(0.4, "native"))
+diagram.dimn(9, n, unit(1, "native") + unit(-0.4, "native"))
+diagram.dimn(10, n, unit(1, "native") - unit(0.4, "native"))
+
+
+###################################################
+### code chunk number 3: locndimn.Rnw:107-119
+###################################################
+pushViewport(viewport(yscale = c(-0.6, 1.3)))
+# Unexpected results?
+convertY(unit(1,'native'), "native")
+convertY(unit(-.4,'native'), "native")
+convertY(unit(1,'native')+unit(-.4,'native'), "native")
+convertY(unit(1,'native')-unit(.4,'native'), "native")
+# Expected results
+convertHeight(unit(1,'native'), "native")
+convertHeight(unit(-.4,'native'), "native")
+convertHeight(unit(1,'native')+unit(-.4,'native'), "native")
+convertHeight(unit(1,'native')-unit(.4,'native'), "native")
+popViewport()
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/displaylist.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/displaylist.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/displaylist.Rnw	(revision 2476)
@@ -0,0 +1,248 @@
+% File src/library/grid/vignettes/displaylist.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2001-13 Paul Murrell and the R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+
+\usepackage{Rd}
+
+% \VignetteIndexEntry{Display Lists in grid}
+% \VignettePackage{grid}
+% \VignetteDepends{graphics}
+% \VignetteDepends{gridBase}
+
+\newcommand{\grid}{\pkg{grid}}
+\newcommand{\gridBase}{\CRANpkg{gridBase}}
+\newcommand{\lattice}{\CRANpkg{lattice}}
+
+\setlength{\parindent}{0in}
+\setlength{\parskip}{.1in}
+\setlength{\textwidth}{140mm}
+\setlength{\oddsidemargin}{10mm}
+
+\title{Display Lists in \grid{}}
+\author{Paul Murrell}
+
+\begin{document}
+\maketitle
+
+<<echo=FALSE, results=hide>>=
+library(grDevices)
+library(graphics) # for plot()
+library(stats) # for runif()
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+@
+A display list is a record of drawing operations.  It is used
+to redraw graphics output when a graphics window is resized,
+when graphics output is copied from one device to another, and
+when graphics output is edited (via \code{grid.edit}).
+
+There are two display lists that can be used when working with
+\grid{}.  \R{}'s graphics engine maintains a display list and
+\grid{} maintains its own display list.  The former is maintained at
+the C code level and records both base graphics output and
+\grid{} graphics output.  The latter is maintained at the
+R code level and only records \grid{} output.
+
+In standard usage,
+the graphics engine's display list is used to redraw when a window
+is resized and when copying between devices.  \grid{}'s display list
+is used for redrawing when editing \grid{} output.
+
+There are two main problems with this standard usage:
+\begin{enumerate}
+\item The graphics engine display list only records graphics output;
+none of the calculations leading up to producing the output are
+recorded.  This particularly impacts on plots which perform calculations
+based on the physical dimensions of the device -- an example is
+the legend function which performs calculations in order to
+arrange the elements of the legend.  The effect can be seen from
+any example which uses the legend function.  Try running
+\code{example(legend)} then resize the device (make it quite
+tall and thin or quite wide and fat);  the legend will start
+to look pretty sick.
+
+{\bf NOTE:} that this is a problem with the graphics engine display
+list -- it is not specific to \grid{}.  In fact, much of \grid{}'s
+behaviour is protected from this problem because things like \grid{}
+units are ``declarative'' and will be re-evaluated on each redraw.
+However, there are situations where \grid{} output can be afflicted,
+in particular, whenever the \code{convertUnit()} function (or one of
+its variants) is used (the help file for \code{convertUnit()} gives an
+example).
+
+A situation where this problem becomes very relevant for
+\grid{} output is when the \gridBase{} package is used.
+This is a situation where lots of calculations are performed
+in order to align base and grid output, but these calculations
+are not recorded on the graphics engine display list, so
+if the device is resized the output will become very yukky.
+
+\item \grid{}'s display list does not record base graphics
+output\footnote{This is not quite true;  it is possible
+to include base graphics output on the \grid{} display list
+as we will see later.} so if both base and \grid{} output appear
+on the same device then the result of editing will not redraw the
+base output.  The following code provides a simple example:
+
+<<guts1, eval=FALSE>>=
+plot(1:10)
+par(new = TRUE)
+grid.rect(width = 0.5, height = 0.5, gp = gpar(lwd = 3), name = "gr")
+
+<<ex1, echo=FALSE, fig=TRUE, width=4, height=3, include=FALSE>>=
+<<guts1>>
+grid.rect(width = 0.99, height = 0.99, gp = gpar(lty = "dashed"))
+@
+\includegraphics[width=4in, height=3in]{displaylist-ex1}
+
+<<ex2, echo=FALSE, fig=TRUE, width=4, height=3, include=FALSE>>=
+grid.rect(width = 0.5, height = 0.5, gp = gpar(col = "red", lwd = 3))
+grid.rect(width = 0.99, height = 0.99, gp = gpar(lty = "dashed"))
+
+<<eval=FALSE>>=
+grid.edit("gr", gp = gpar(col = "red", lwd = 3))
+@
+\includegraphics[width=4in, height=3in]{displaylist-ex2}
+
+After the \code{grid.edit}, the rectangle has been redrawn, but the
+base plot has not.
+\end{enumerate}
+
+\section*{Saving calculations on the graphics engine display list\\
+and saving base graphics on the \grid{} display list}
+
+Both of the problems described in the previous section can be
+avoided by using a \code{drawDetails()} method in \grid{}.
+When a \grid{} grob is drawn, the \code{drawDetails} method
+for that grob is called;  if calculations are put within
+a \code{drawDetails} method, then the calculations will be
+performed every time the grob is drawn.
+
+This means that it is possible, for example, to use \code{convertUnit()}
+and have the result consistent across device resizes or
+copies\footnote{In
+each of the examples that follow, you should execute the example
+code, resize the device to see any inconsistency, then close the
+device before trying the next example.}.
+This next piece of code is an example where the output becomes
+inconsistent when the device is resized.  We specify a width for
+the rectangle in inches, but convert it (gratuitously) to
+NPC coordinates -- when the device is resized, the NPC coordinates
+will no longer correspond to 1''.
+
+<<results=hide>>=
+grid.rect(width = convertWidth(unit(1, "inches"), "npc"))
+@
+
+The next piece of code demonstrates that, if we
+place the calculations within a \code{drawDetails} method, then
+the output remains consistent across device resizes and
+copies.
+
+<<results=hide>>=
+drawDetails.myrect <- function(x, recording) {
+    gr <- rectGrob(width = convertWidth(unit(1, "inches"), "npc"))
+    grid.draw(gr)
+}
+grid.draw(grob(cl = "myrect"))
+@
+
+The next example shows that a \code{drawDetails()} method can also be
+used to save base graphics output on the \grid{} display list.  This
+example uses \gridBase{} to combine base and \grid{} graphics output.
+Here I replicate the last example from the \gridBase{} vignette -- a
+set of base pie charts within \grid{} viewports within a base plot.
+In this case, I can produce all of the grobs required in the normal
+manner -- their locations and sizes are not based on special
+calculations\footnote{The example is wrapped inside a check for
+  whether the \CRANpkg{gridBase} package is installed so that the code
+  will still ``run'' on systems without \CRANpkg{gridBase}.}.
+
+<<results=hide>>=
+x <- c(0.88, 1.00, 0.67, 0.34)
+y <- c(0.87, 0.43, 0.04, 0.94)
+z <- matrix(runif(4*2), ncol = 2)
+
+maxpiesize <- unit(1, "inches")
+totals <- apply(z, 1, sum)
+sizemult <- totals/max(totals)
+
+gs <- segmentsGrob(x0 = unit(c(rep(0, 4), x),
+                             rep(c("npc", "native"), each = 4)),
+                   x1 = unit(c(x, x), rep("native", 8)),
+                   y0 = unit(c(y, rep(0, 4)),
+                             rep(c("native", "npc"), each = 4)),
+                   y1 = unit(c(y, y), rep("native", 8)),
+                   gp = gpar(lty = "dashed", col = "grey"))
+gr <- rectGrob(gp = gpar(col = "grey", fill = "white", lty = "dashed"))
+@
+What is important is that I place the calls to the \gridBase{} functions
+within the  \code{drawDetails} method so that they are performed
+every time the grob is drawn {\em and} the calls to the base graphics
+functions are in here too so that they are called for every redraw.
+
+<<results=hide>>=
+drawDetails.pieplot <- function(x, recording) {
+    plot(x$x, x$y, xlim = c(-0.2, 1.2), ylim = c(-0.2, 1.2), type = "n")
+    vps <- baseViewports()
+    pushViewport(vps$inner, vps$figure, vps$plot, recording = FALSE)
+    grid.draw(x$gs, recording = FALSE)
+    for (i in 1:4) {
+        pushViewport(viewport(x = unit(x$x[i], "native"),
+                              y = unit(x$y[i], "native"),
+                              width = x$sizemult[i]*x$maxpiesize,
+                              height = x$sizemult[i]*x$maxpiesize),
+                     recording = FALSE)
+        grid.draw(x$gr, recording = FALSE)
+        par(plt = gridPLT(), new = TRUE)
+        pie(x$z[i, ], radius = 1, labels = rep("", 2))
+        popViewport(recording = FALSE)
+    }
+    popViewport(3, recording = FALSE)
+}
+@
+The ``pieplot'' is created by assembling the component grobs
+into a collective grob of the appropriate class; the \code{drawDetails}
+method takes care of actually producing the output.
+
+% produce figure, but don't include
+% (to avoid par setting contamination between code segments)
+
+<<results=hide, fig=TRUE, width=6, height=6, include=FALSE>>=
+if (suppressWarnings(require("gridBase", quietly = TRUE))) {
+grid.draw(grob(x = x, y = y, z = z,
+               maxpiesize = maxpiesize, sizemult = sizemult,
+               gs = gs, gr = gr, cl = "pieplot"))
+}
+@
+
+The output from this example can be resized safely; \grid{} handles
+all of the redrawing, and performs all of the actions within the
+\code{drawDetails} method for each redraw, including redrawing the
+base graphics output!
+
+As a final example, we will harness the \grid{} display list purely to
+achieve consistency in base graphics output.  The following reproduces
+the last example from the \code{legend()} help page, but produces
+output which can be resized without the legend going crazy.
+
+% produce figure, but don't include
+% (to avoid par setting contamination between code segments)
+
+<<results=hide, fig=TRUE, include=FALSE>>=
+drawDetails.mylegend <- function(x, recording) {
+    x <- 0:64/64
+    y <- sin(3*pi*x)
+    plot(x, y, type = "l", col = "blue",
+         main = "points with bg & legend(*, pt.bg)")
+    points(x, y, pch = 21, bg = "white")
+    legend(.4,1, "sin(c x)", pch = 21, pt.bg = "white", lty = 1, col = "blue")
+}
+grid.draw(grob(cl = "mylegend"))
+@
+\end{document}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/rotated.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/rotated.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/rotated.Rnw	(revision 2476)
@@ -0,0 +1,161 @@
+% File src/library/grid/vignettes/rotated.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2001-13 Paul Murrell and the R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+%\VignetteIndexEntry{Rotated Viewports}
+%\VignettePackage{grid}
+\newcommand{\code}[1]{\texttt{#1}}
+\newcommand{\pkg}[1]{{\normalfont\fontseries{b}\selectfont #1}}
+\newcommand{\grid}{\pkg{grid}}
+\newcommand{\R}{{\sffamily R}}
+\setlength{\parindent}{0in}
+\setlength{\parskip}{.1in}
+\setlength{\textwidth}{140mm}
+\setlength{\oddsidemargin}{10mm}
+\title{Rotated Viewports}
+\author{Paul Murrell}
+
+\begin{document}
+\maketitle
+
+<<echo=FALSE, results=hide>>=
+library(grDevices)
+library(graphics) # for boxplot
+library(stats) # for rnorm
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+@
+It is possible to specify an angle of rotation for a Grid viewport.
+For example, the following code draws the example multipanel plot
+at an angle of $15^\circ$.
+
+<<fig=TRUE, results=hide>>=
+pushViewport(viewport(h = .8, w = .8, angle = 15))
+grid.multipanel(newpage = FALSE)
+popViewport()
+@
+
+\vspace{.5in}
+A more complicated example is now developed.  First of all we
+generate some data to plot; an $x$ and a $y$ with an obvious correlation.
+
+<<complex1, results=hide>>=
+x <- rnorm(50)
+y <- x + rnorm(50, 1, 2)
+@
+\noindent
+Next we generate some statistics from the data.
+
+<<complex2, results=hide>>=
+# We will extend the axes over the entire region so
+# extrapolate scale from main data region
+scale <- extendrange(r = range(x,y))
+extscale <- c(min(scale), max(scale)+diff(scale)*1/3)
+@
+\noindent
+Now generate a layout of regions:  a 3" by 3" region for a
+scatterplot, inside a 4" by 4" region.
+
+<<complex3, results=hide>>=
+lay <- grid.layout(2, 2,
+                   widths = unit(c(3, 1), "inches"),
+                   heights = unit(c(1, 3), "inches"))
+vp1 <- viewport(width = unit(4, "inches"), height = unit(4, "inches"),
+                layout = lay, xscale = extscale, yscale = extscale)
+@
+\noindent
+We draw a box around the outside and axes on the entire region.
+
+<<complex4, results=hide>>=
+grid.newpage()
+pushViewport(vp1)
+grid.rect()
+grid.xaxis()
+grid.text("Test", y = unit(-3, "lines"))
+grid.yaxis()
+grid.text("Retest", x = unit(-3, "lines"), rot = 90)
+@
+\noindent
+We draw points within the interior region.
+
+<<complex5, results=hide>>=
+vp2 <- viewport(layout.pos.row = 2, layout.pos.col = 1,
+                xscale = scale, yscale = scale)
+pushViewport(vp2)
+grid.lines()
+grid.points(x, y, gp = gpar(col = "blue"))
+popViewport()
+@
+\noindent
+Now we use a rotated viewport to draw a boxplot which indicates
+the distribution of the distances between the points in the scatterplot
+and the line $y = x$\footnote{This may look like a large amount of
+code, but that's mostly because its doing a boxplot by hand
+rather than using a predefined high-level function.}.
+
+The final output is shown on the last page.
+
+<<complex6, results=hide>>=
+diffs <- (y - x)
+rdiffs <- range(diffs)
+ddiffs <- diff(rdiffs)
+bxp <- boxplot(diffs, plot = FALSE)
+vp3 <- viewport(x = unit(3, "inches"),
+                y = unit(3, "inches"),
+                width = unit(.5, "inches"),
+                # NOTE that the axis on the boxplot represents
+                # actual (y - x) values BUT to make
+                # the bits of the boxplot line
+                # up with the data points we have to plot
+                # (y - x)/sqrt(2)
+                # Hence the sin(pi/4) below
+                height = unit(ddiffs*sin(pi/4)/diff(scale)*3, "inches"),
+                just = c("centre", "center"),
+                angle = 45,
+	        gp = gpar(col = "red"),
+                yscale = c(-ddiffs/2, ddiffs/2))
+pushViewport(vp3)
+left <- -.3
+width <- .8
+middle <- left + width/2
+grid.rect(x = left, y = unit(bxp$conf[1,1], "native"),
+          width = width, height = unit(diff(bxp$conf[,1]), "native"),
+          just = c("left", "bottom"),
+	  gp = gpar(col = NULL, fill = "orange"))
+grid.rect(x = left, y = unit(bxp$stats[4,1], "native"),
+          width = width, height = unit(diff(bxp$stats[4:3,1]), "native"),
+          just = c("left", "bottom"))
+grid.rect(x = left, y = unit(bxp$stats[3,1], "native"),
+          width = width, height = unit(diff(bxp$stats[3:2,1]), "native"),
+          just = c("left", "bottom"))
+grid.lines(x = c(middle, middle), y = unit(bxp$stats[1:2,1], "native"))
+grid.lines(x = c(middle, middle), y = unit(bxp$stats[4:5,1], "native"))
+grid.lines(x = c(middle-.1, middle+.1), y = unit(bxp$stats[1,1], "native"))
+grid.lines(x = c(middle-.1, middle+.1), y = unit(bxp$stats[5,1], "native"))
+np <- length(bxp$out)
+if (np > 0)
+  grid.points(x = rep(middle, np), y = unit(bxp$out, "native"))
+grid.yaxis(main = FALSE)
+popViewport(2)
+
+<<echo=FALSE, fig=TRUE, results=hide>>=
+<<complex1>>
+<<complex2>>
+<<complex3>>
+<<complex4>>
+<<complex5>>
+<<complex6>>
+@
+\section*{Problems}
+
+\begin{enumerate}
+\item Data symbols will not be affected by the angle of rotation.  For
+  round data symbols this does not matter, but it will make just about
+  everything else look pretty odd.
+\end{enumerate}
+
+@
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/viewports.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/viewports.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/viewports.Rnw	(revision 2476)
@@ -0,0 +1,337 @@
+% File src/library/grid/vignettes/viewports.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2001-13 Paul Murrell and the R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+
+\usepackage{Rd}
+
+% \VignetteIndexEntry{Working with viewports}
+
+\newcommand{\grid}{\pkg{grid}}
+\newcommand{\lattice}{\CRANpkg{lattice}}
+
+\setlength{\parindent}{0in}
+\setlength{\parskip}{.1in}
+\setlength{\textwidth}{140mm}
+\setlength{\oddsidemargin}{10mm}
+
+\title{Working with \grid{} Viewports}
+\author{Paul Murrell}
+
+\begin{document}
+\maketitle
+
+<<echo=FALSE, results=hide>>=
+library(grDevices)
+library(stats) # for runif()
+library(grid)
+ps.options(pointsize = 12)
+options(width = 60)
+@
+This document describes some features of \grid{} viewports which
+make it easy to travel back and forth between multiple regions
+on a device (without having to recreate those regions), and provides a
+mechanism for a complex plotting function to provide users with access
+to all of the regions created during plotting.
+
+\section*{The viewport tree}
+
+\grid{} maintains a
+tree of pushed viewports on each device.
+When the \code{upViewport()}
+function is called it works like \code{popViewport()} except that
+it does not remove viewports from the viewport tree.
+For example, the following code pushes a viewport, then navigates
+back up to the top level viewport and pushes another viewport,
+without removing the first viewport.
+
+<<>>=
+pushViewport(viewport())
+upViewport()
+pushViewport(viewport())
+@
+There are now two viewports pushed directly beneath the top-level
+viewport.  This immediately creates an ambiguity;  if I navigate
+back up to the top-level and attempt to revisit one of the
+viewports, how can I specify which one I want?  The answer is that
+viewports have a \code{name} argument\footnote{The print method
+for viewports shows the viewport name within square brackets.  Try
+typing \code{current.viewport()}.}.  This name, combined with
+the \code{downViewport()} function, makes it possible to
+navigate back down to viewports in the viewport tree.  Consider the
+following example, which pushes two viewports called \code{"A"} and
+\code{"B"}, then navigates to viewport \code{"A"} from the
+top level.
+
+<<echo=FALSE, results=hide>>=
+grid.newpage()
+
+<<>>=
+pushViewport(viewport(name = "A"))
+upViewport()
+pushViewport(viewport(name = "B"))
+upViewport()
+downViewport("A")
+@
+The \code{downViewport()} function searches down the tree from the
+current position in the tree.  The \code{seekViewport()}
+function is similar, but it always starts searching from the top-level
+viewport.  In the previous example we ended up in viewport
+\code{"A"};  the following command navigates from \code{"A"} to \code{"B"}
+in a single step.
+
+<<>>=
+seekViewport("B")
+@
+The function \code{current.vpTree()} provides a
+(textual) view of the current viewport tree.
+
+<<>>=
+current.vpTree()
+
+@
+\section*{Viewport stacks, lists, and trees}
+
+It is possible to create multiple viewport descriptions
+\emph{and their relationships}.  The functions
+\code{vpStack()}, \code{vpList()}, and
+\code{vpTree()} can be used to create a stack, a list, or a tree
+of viewport descriptions, respectively.  It is then possible to
+push these multiple descriptions at once;  viewports in a stack
+are pushed in series, viewports in  a list are pushed in parallel,
+and for a tree of viewports, the parent is pushed then the children
+are pushed in parallel.  The following simple
+example demonstrates one usage of this feature;  a \grid{} rectangle
+is drawn \emph{two} viewports below the current level by
+specifying a stack of viewports in its \code{vp} argument.
+
+
+<<vpstackguts>>=
+vp <- viewport(width = 0.5, height = 0.5)
+grid.rect(vp = vpStack(vp, vp))
+<<echo=FALSE, fig=TRUE>>=
+grid.rect(gp = gpar(col = "grey"))
+<<vpstackguts>>
+@
+\section*{Viewport paths}
+The previous example demonstrates a subtle feature of \grid{}'s viewport
+tree.  The same viewport, \emph{with the same name}, was pushed
+twice (in series).  This demonstrates that viewport names only
+have to be unique for viewports which share the same parent.
+This makes it possible, especially in repetitive plot arrangements,
+to reuse convenient viewport names.  For example, in a \lattice{}
+style plot, each panel could have a viewport called \code{"strip"}
+to represent the strip region.
+
+This design creates a further ambiguity because there may be
+more than one viewport with the same name within the viewport
+tree\footnote{\code{downViewport()} and \code{seekViewport()} will stop at the
+first match they find (the search is currently depth-first).}.
+This ambiguity can be resolved by using the \code{vpPath()}
+function to generate a specification of a stack of viewports
+that must be matched by name.  This path can be passed to
+either \code{downViewport()} or \code{seekViewport()} as in the
+following example;  notice that we are calling
+\code{current.vpTree(FALSE)} in order to see the current viewport
+tree \emph{only from the current viewport down}.
+
+<<echo=FALSE, results=hide>>=
+grid.newpage()
+
+<<>>=
+pushViewport(viewport(name = "A"))
+pushViewport(viewport(name = "B"))
+pushViewport(viewport(name = "A"))
+@
+
+When we do a seek on just \code{"A"}, we find the first \code{"A"}
+(just below the top-level viewport).
+
+<<>>=
+seekViewport("A")
+current.vpTree(FALSE)
+@
+By specifying a \code{vpPath}, we can get the \code{"A"} directly
+below viewport \code{"B"}.
+
+<<>>=
+seekViewport(vpPath("B", "A"))
+current.vpTree(FALSE)
+@
+A viewport path is conceptually just a concatenation of several
+names using a path separator (currently \code{::}).
+
+<<>>=
+vpPath("A", "B")
+@
+For interactive use, it is possible to specify the path as a simple
+string, but this is not recommended otherwise in case the path
+separator changes in future versions of \grid{}.  As an example, the
+following two commands are currently equivalent.
+
+<<eval=FALSE>>=
+seekViewport(vpPath("A", "B"))
+seekViewport("A::B")
+@
+\section*{An example}
+
+In this section, we consider a simple example to demonstrate
+how these new viewport features might be used together.
+The goal is to produce a simple scatterplot.  We will work
+with some random data.
+
+<<>>=
+x <- runif(10)
+y <- runif(10)
+@
+We will be establishing some scales appropriate for these data,
+so we calculate sensible ranges now.
+
+<<>>=
+xscale <- extendrange(x)
+yscale <- extendrange(y)
+@
+We now produce a set of viewports that will be useful in creating the
+plot.  The first viewport contains a layout to divide the drawing region
+into several rows and columns.  The left and right columns and top and
+bottom rows provide room for axes and labels, while the central cell provides
+a region for plotting the data.  The diagram below the code shows
+the layout that we create.
+
+<<>>=
+top.vp <-
+    viewport(layout=grid.layout(3, 3,
+             widths=unit(c(5, 1, 2), c("lines", "null", "lines")),
+             heights=unit(c(5, 1, 4), c("lines", "null", "lines"))))
+
+<<echo=FALSE, fig=TRUE>>=
+grid.show.layout(viewport.layout(top.vp))
+@
+
+Next we create a set of viewports which will occupy different areas within the
+layout, corresponding to the margins for axes and labels, and the plotting
+region.
+
+<<>>=
+margin1 <- viewport(layout.pos.col = 2, layout.pos.row = 3,
+                    name = "margin1")
+margin2 <- viewport(layout.pos.col = 1, layout.pos.row = 2,
+                    name = "margin2")
+margin3 <- viewport(layout.pos.col = 2, layout.pos.row = 1,
+                    name = "margin3")
+margin4 <- viewport(layout.pos.col = 3, layout.pos.row = 2,
+                    name = "margin4")
+plot <- viewport(layout.pos.col = 2, layout.pos.row = 2,
+                 name = "plot", xscale = xscale, yscale = yscale)
+@
+Notice that we have not pushed any of these viewports yet so no regions
+exist on the output device.  We first of all arrange the viewports into
+a tree structure, with  the \code{top.vp} as the parent node and
+all of the other viewports as its children.
+
+<<>>=
+splot <- vpTree(top.vp, vpList(margin1, margin2, margin3, margin4, plot))
+@
+Now we can push this entire tree of viewports in order to create all of the
+different areas within the drawing region that we need to draw the
+scatterplot.
+The result of this push is that we are left in the \code{plot} viewport.
+
+<<viewports>>=
+pushViewport(splot)
+@
+Now we can navigate to whichever viewport we require and draw the
+different elements of the plot\footnote{The named viewports that we created
+are drawn as grey rectangles as a guide.}.
+
+<<grid, echo=FALSE, eval=FALSE>>=
+labelvp <- function(name) {
+    seekViewport(name)
+    grid.rect(gp = gpar(col = "grey", lwd = 5))
+    grid.rect(x = 0, y = 1, width = unit(1, "strwidth", name) + unit(2, "mm"),
+              height = unit(1, "lines"), just = c("left", "top"),
+              gp = gpar(fill = "grey", col = NULL))
+    grid.text(name, x = unit(1, "mm"), y = unit(1, "npc") - unit(1, "mm"),
+              just = c("left", "top"), gp = gpar(col = "white"))
+}
+labelvp("plot")
+labelvp("margin1")
+labelvp("margin2")
+labelvp("margin3")
+labelvp("margin4")
+@
+The data symbols and axes are drawn relative to the plot region \ldots{}
+
+<<plot, eval=FALSE>>=
+seekViewport("plot")
+grid.points(x, y)
+grid.xaxis()
+grid.yaxis()
+grid.rect()
+@
+\ldots{} the x-axis label is drawn in margin 1 \ldots{}
+
+<<margin1, eval=FALSE>>=
+seekViewport("margin1")
+grid.text("Random X", y = unit(1, "lines"))
+@
+\ldots{} and the y-axis label is drawn in margin 2 (the final output
+is shown on the next page).
+
+<<margin2, eval=FALSE>>=
+seekViewport("margin2")
+grid.text("Random Y", x = unit(1, "lines"), rot = 90)
+
+<<echo=FALSE, results=hide, fig=TRUE>>=
+pushViewport(viewport(w = 0.9, h = 0.9))
+<<viewports>>
+<<grid>>
+<<plot>>
+<<margin1>>
+<<margin2>>
+@
+
+As a final step, we navigate back to the top-level viewport (i.e.,
+back to the viewport we started in)\footnote{Here we have used
+  \code{0} to indicate ``navigate to the top-level viewport''.  When
+  writing code that could be used by others (i.e., a graphical
+  component that could be embedded within something else), it would be
+  necessary to specify a precise number of viewports to navigate back
+  up.  In this case, the number would be {\tt} 2.  The
+  \code{downViewport()} function returns the number of viewports it
+  went down, so a general solution is of the form: \code{depth <-
+    downViewport("avp"); upViewport(depth)}.}.
+
+<<>>=
+upViewport(0)
+@
+So far this example has just shown
+an alternative way of constructing this sort of plot.  The output we have
+generated so far could have been done using \code{pushViewport()}
+and \code{popViewport()}.  The difference is that we still have
+all of the viewports in the \grid{} viewport tree (and they are addressable
+by name).  This means that a user can seek any of the viewports
+we used to construct the plot (by name) and add annotations or
+use \code{grid.locator()} or whatever.  For example, a user could
+use the following commands
+to add a title.
+
+<<annguts, eval=FALSE>>=
+seekViewport("margin3")
+grid.text("The user adds a title!", gp = gpar(fontsize = 20))
+
+<<echo=FALSE, results=hide, fig=TRUE>>=
+pushViewport(viewport(w = 0.9, h = 0.9))
+<<viewports>>
+<<grid>>
+<<plot>>
+<<margin1>>
+<<margin2>>
+<<annguts>>
+popViewport(0)
+@
+
+\end{document}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/displaylist.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/displaylist.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/rotated.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/rotated.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/viewports.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/doc/viewports.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/INDEX	(revision 2476)
@@ -0,0 +1,94 @@
+Grid                    Grid Graphics
+absolute.size           Absolute Size of a Grob
+arrow                   Describe arrows to add to a line.
+calcStringMetric        Calculate Metric Information for Text
+convertUnit             Convert Between Different grid Coordinate
+                        Systems
+current.viewport        Get the Current Grid Viewport (Tree)
+dataViewport            Create a Viewport with Scales based on Data
+depth                   Determine the number of levels in an object.
+drawDetails             Customising grid Drawing
+editDetails             Customising grid Editing
+explode                 Explode a path into its components.
+gEdit                   Create and Apply Edit Objects
+gPath                   Concatenate Grob Names
+getNames                List the names of grobs on the display list
+gpar                    Handling Grid Graphical Parameters
+grid-package            The Grid Graphics Package
+grid.DLapply            Modify the Grid Display List
+grid.add                Add a Grid Graphical Object
+grid.bezier             Draw a Bezier Curve
+grid.cap                Capture a raster image
+grid.circle             Draw a Circle
+grid.clip               Set the Clipping Region
+grid.copy               Make a Copy of a Grid Graphical Object
+grid.curve              Draw a Curve Between Locations
+grid.delay              Encapsulate calculations and generating a grob
+grid.display.list       Control the Grid Display List
+grid.draw               Draw a grid grob
+grid.edit               Edit the Description of a Grid Graphical Object
+grid.force              Force a grob into its components
+grid.frame              Create a Frame for Packing Objects
+grid.function           Draw a curve representing a function
+grid.get                Get a Grid Graphical Object
+grid.grab               Grab the current grid output
+grid.grep               Search for grobs
+grid.grill              Draw a Grill
+grid.layout             Create a Grid Layout
+grid.lines              Draw Lines in a Grid Viewport
+grid.locator            Capture a Mouse Click
+grid.ls                 List the names of grobs or viewports
+grid.move.to            Move or Draw to a Specified Position
+grid.newpage            Move to a New Page on a Grid Device
+grid.null               Null Graphical Object
+grid.pack               Pack an Object within a Frame
+grid.path               Draw a Path
+grid.place              Place an Object within a Frame
+grid.plot.and.legend    A Simple Plot and Legend Demo
+grid.points             Draw Data Symbols
+grid.polygon            Draw a Polygon
+grid.pretty             Generate a Sensible Set of Breakpoints
+grid.raster             Render a raster object
+grid.record             Encapsulate calculations and drawing
+grid.rect               Draw rectangles
+grid.refresh            Refresh the current grid scene
+grid.remove             Remove a Grid Graphical Object
+grid.reorder            Reorder the children of a gTree
+grid.segments           Draw Line Segments
+grid.set                Set a Grid Graphical Object
+grid.show.layout        Draw a Diagram of a Grid Layout
+grid.show.viewport      Draw a Diagram of a Grid Viewport
+grid.text               Draw Text
+grid.xaxis              Draw an X-Axis
+grid.xspline            Draw an Xspline
+grid.yaxis              Draw a Y-Axis
+grob                    Create Grid Graphical Objects, aka "Grob"s
+grobName                Generate a Name for a Grob
+grobWidth               Create a Unit Describing the Width of a Grob
+grobX                   Create a Unit Describing a Grob Boundary
+                        Location
+legendGrob              Constructing a Legend Grob
+makeContent             Customised grid Grobs
+plotViewport            Create a Viewport with a Standard Plot Layout
+pushViewport            Maintaining and Navigating the Grid Viewport
+                        Tree
+resolveRasterSize       Utility function to resolve the size of a
+                        raster grob
+roundrect               Draw a rectangle with rounded corners
+showGrob                Label grid grobs.
+showViewport            Display grid viewports.
+stringWidth             Create a Unit Describing the Width and Height
+                        of a String or Math Expression
+unit                    Function to Create a Unit Object
+unit.c                  Combine Unit Objects
+unit.length             Length of a Unit Object
+unit.pmin               Parallel Unit Minima and Maxima
+unit.rep                Replicate Elements of Unit Objects
+valid.just              Validate a Justification
+validDetails            Customising grid grob Validation
+viewport                Create a Grid Viewport
+vpPath                  Concatenate Viewport Names
+widthDetails            Width and Height of a grid grob
+xDetails                Boundary of a grid grob
+xsplinePoints           Return the points that would be used to draw an
+                        Xspline (or a Bezier curve).
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/help/grid.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/help/grid.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/help/grid.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/help/grid.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/help/AnIndex	(revision 2476)
@@ -0,0 +1,213 @@
+grid-package	grid-package
+absolute.size	absolute.size
+addGrob	grid.add
+applyEdit	gEdit
+applyEdits	gEdit
+arcCurvature	grid.curve
+arrow	arrow
+arrowsGrob	grid-defunct
+ascentDetails	widthDetails
+bezierGrob	grid.bezier
+bezierPoints	xsplinePoints
+calcStringMetric	calcStringMetric
+childNames	grid.grob
+circleGrob	grid.circle
+clipGrob	grid.clip
+convertHeight	grid.convert
+convertNative	grid-defunct
+convertUnit	grid.convert
+convertWidth	grid.convert
+convertX	grid.convert
+convertY	grid.convert
+current.parent	current.viewport
+current.rotation	current.viewport
+current.transform	current.viewport
+current.viewport	current.viewport
+current.vpPath	current.viewport
+current.vpTree	current.viewport
+curveGrob	grid.curve
+dataViewport	dataViewport
+delayGrob	grid.delay
+depth	depth
+depth.path	depth
+depth.viewport	depth
+descentDetails	widthDetails
+downViewport	viewports
+draw.details	grid-defunct
+drawDetails	drawDetails
+editDetails	editDetails
+editGrob	grid.edit
+engine.display.list	grid.display.list
+explode	explode
+explode.character	explode
+explode.path	explode
+forceGrob	grid.force
+frameGrob	grid.frame
+functionGrob	grid.function
+gEdit	gEdit
+gEditList	gEdit
+get.gpar	gpar
+getGrob	grid.get
+getNames	getNames
+gList	grid.grob
+gpar	gpar
+gPath	gPath
+Grid	Grid
+grid-defunct	grid-defunct
+grid.abline	grid.function
+grid.add	grid.add
+grid.arrows	grid-defunct
+grid.bezier	grid.bezier
+grid.cap	grid.cap
+grid.circle	grid.circle
+grid.clip	grid.clip
+grid.collection	grid-defunct
+grid.convert	grid-defunct
+grid.convertHeight	grid-defunct
+grid.convertWidth	grid-defunct
+grid.convertX	grid-defunct
+grid.convertY	grid-defunct
+grid.copy	grid.copy
+grid.curve	grid.curve
+grid.delay	grid.delay
+grid.display.list	grid.display.list
+grid.DLapply	grid.DLapply
+grid.draw	grid.draw
+grid.edit	grid.edit
+grid.force	grid.force
+grid.force.default	grid.force
+grid.force.gPath	grid.force
+grid.force.grob	grid.force
+grid.frame	grid.frame
+grid.function	grid.function
+grid.gedit	grid.edit
+grid.get	grid.get
+grid.gget	grid.get
+grid.grab	grid.grab
+grid.grabExpr	grid.grab
+grid.gremove	grid.remove
+grid.grep	grid.grep
+grid.grill	grid.grill
+grid.grob	grid-defunct
+grid.layout	grid.layout
+grid.legend	legendGrob
+grid.line.to	grid.move.to
+grid.lines	grid.lines
+grid.locator	grid.locator
+grid.ls	grid.ls
+grid.move.to	grid.move.to
+grid.multipanel	grid-internal
+grid.newpage	grid.newpage
+grid.null	grid.null
+grid.pack	grid.pack
+grid.panel	grid-internal
+grid.path	grid.path
+grid.place	grid.place
+grid.plot.and.legend	grid.plot.and.legend
+grid.points	grid.points
+grid.polygon	grid.polygon
+grid.polyline	grid.lines
+grid.pretty	grid.pretty
+grid.raster	grid.raster
+grid.record	grid.record
+grid.rect	grid.rect
+grid.refresh	grid.refresh
+grid.remove	grid.remove
+grid.reorder	grid.reorder
+grid.revert	grid.force
+grid.revert.gPath	grid.force
+grid.revert.grob	grid.force
+grid.roundrect	grid.roundrect
+grid.segments	grid.segments
+grid.set	grid.set
+grid.show.layout	grid.show.layout
+grid.show.viewport	grid.show.viewport
+grid.strip	grid-internal
+grid.text	grid.text
+grid.xaxis	grid.xaxis
+grid.xspline	grid.xspline
+grid.yaxis	grid.yaxis
+grob	grid.grob
+grobAscent	grobWidth
+grobDescent	grobWidth
+grobHeight	grobWidth
+grobName	grobName
+grobPathListing	grid.ls
+grobTree	grid.grob
+grobWidth	grobWidth
+grobX	grobX
+grobY	grobX
+gTree	grid.grob
+heightDetails	widthDetails
+is.grob	grid.grob
+is.unit	grid-internal
+layout.heights	grid-internal
+layout.torture	grid-internal
+layout.widths	grid-internal
+layoutRegion	grid-internal
+legendGrob	legendGrob
+linesGrob	grid.lines
+lineToGrob	grid.move.to
+makeContent	makeContent
+makeContext	makeContent
+moveToGrob	grid.move.to
+nestedListing	grid.ls
+nullGrob	grid.null
+packGrob	grid.pack
+pathGrob	grid.path
+pathListing	grid.ls
+placeGrob	grid.place
+plotViewport	plotViewport
+pointsGrob	grid.points
+polygonGrob	grid.polygon
+polylineGrob	grid.lines
+pop.viewport	grid-defunct
+popViewport	viewports
+postDrawDetails	drawDetails
+preDrawDetails	drawDetails
+push.viewport	grid-defunct
+pushViewport	viewports
+rasterGrob	grid.raster
+recordGrob	grid.record
+rectGrob	grid.rect
+removeGrob	grid.remove
+reorderGrob	grid.reorder
+resolveHJust	valid.just
+resolveRasterSize	resolveRasterSize
+resolveVJust	valid.just
+roundrect	grid.roundrect
+roundrectGrob	grid.roundrect
+seekViewport	viewports
+segmentsGrob	grid.segments
+setChildren	grid.add
+setGrob	grid.set
+showGrob	showGrob
+showViewport	showViewport
+stringAscent	stringWidth
+stringDescent	stringWidth
+stringHeight	stringWidth
+stringWidth	stringWidth
+textGrob	grid.text
+unit	unit
+unit.c	unit.c
+unit.length	unit.length
+unit.pmax	unit.pmin
+unit.pmin	unit.pmin
+unit.rep	unit.rep
+upViewport	viewports
+valid.just	valid.just
+validDetails	validDetails
+viewport	viewport
+viewport.layout	grid-internal
+viewport.transform	grid-defunct
+vpList	viewport
+vpPath	vpPath
+vpStack	viewport
+vpTree	viewport
+widthDetails	widthDetails
+xaxisGrob	grid.xaxis
+xDetails	xDetails
+xsplineGrob	grid.xspline
+xsplinePoints	xsplinePoints
+yaxisGrob	grid.yaxis
+yDetails	xDetails
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/libs/grid.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/libs/grid.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/NAMESPACE	(revision 2476)
@@ -0,0 +1,414 @@
+useDynLib("grid", .registration = TRUE)
+
+import(grDevices)
+importFrom(utils, str)
+
+export(
+       "arcCurvature", "arrow",
+       # Conversion of units
+       "convertUnit", "convertX", "convertY",
+       "convertWidth", "convertHeight",
+       "calcStringMetric",
+       # Deprecated conversion functions
+       "convertNative",
+       "grid.convertWidth", "grid.convertX", "grid.convertY",
+       "grid.convert", "grid.convertHeight",
+
+       "current.viewport", "current.vpPath", "current.vpTree",
+       "current.transform", "current.rotation", "current.parent",
+       "depth", "explode",
+       "engine.display.list",
+       "gpar", "get.gpar",
+       "grid.collection",
+       "grid.copy", "grid.display.list", "grid.draw",
+       "grid.record", "grid.delay", "grid.DLapply",
+       "grid.grill",
+       "grid.layout", "grid.locator",
+       "grid.newpage",
+       "grid.plot.and.legend",
+       "grid.pretty",
+       "grid.refresh",
+       "grid.show.layout", "grid.show.viewport",
+
+       "unit",
+       "is.unit",
+       "unit.c", "unit.length", "unit.pmax", "unit.pmin", "unit.rep",
+       "stringWidth", "stringHeight", "stringAscent", "stringDescent",
+       "grobX", "grobY", "grobWidth", "grobHeight",
+       "grobAscent", "grobDescent",
+       "absolute.size",
+
+       "valid.just", "resolveHJust", "resolveVJust",
+       "resolveRasterSize",
+
+       "viewport", "vpList", "vpStack", "vpTree", "vpPath",
+       "pop.viewport", "push.viewport",
+       "popViewport", "pushViewport",
+       "dataViewport", "plotViewport",
+       "downViewport", "upViewport", "seekViewport",
+       "showViewport",
+
+       "makeContext", "makeContent",
+       "drawDetails", "preDrawDetails", "postDrawDetails",
+       "editDetails",
+       "validDetails",
+       "heightDetails", "widthDetails",
+       "xDetails", "yDetails",
+       "ascentDetails", "descentDetails",
+
+#       "height", "heightDetails",
+#       "width", "widthDetails",
+
+       # Creating and modifying grobs (and gTrees)
+       "is.grob",
+       "grid.grob",
+       "grob", "gList", "gTree", "gPath", "grobTree",
+       "grobName",
+       "grid.get", "grid.set", "grid.add", "grid.remove", "grid.edit",
+       "grid.gedit", "grid.gremove", "grid.gget",
+       "getGrob", "setGrob", "addGrob", "removeGrob", "editGrob", "forceGrob",
+       "gEdit", "gEditList", "applyEdit", "applyEdits",
+       "grid.grab", "grid.grabExpr",
+       "grid.force", "grid.revert",
+       "grid.reorder", "reorderGrob",
+       "grid.cap",
+       "setChildren",
+       "showGrob",
+
+       # Listing grobs and viewports
+       "grid.ls",
+       "nestedListing", "pathListing", "grobPathListing",
+       "grid.grep",
+       # Deprecated
+       "getNames", "childNames",
+
+       # Creating and drawing predefined grobs and gTrees
+       "grid.abline",
+       "grid.arrows", "grid.circle", "grid.clip", "grid.curve",
+       "grid.function",
+       "grid.line.to", "grid.lines", "grid.move.to", "grid.null",
+       "grid.points", "grid.path", "grid.polygon", "grid.polyline",
+       "grid.raster", "grid.rect", "grid.roundrect",
+       "grid.segments", "grid.text", "grid.xspline", "grid.bezier",
+       "arrowsGrob", "circleGrob", "clipGrob", "curveGrob",
+       "functionGrob",
+       "linesGrob", "lineToGrob", "moveToGrob", "nullGrob",
+       "pointsGrob", "pathGrob", "polygonGrob", "polylineGrob",
+       "rasterGrob", "rectGrob", "roundrectGrob",
+       "segmentsGrob", "textGrob", "xsplineGrob", "bezierGrob",
+       "xsplinePoints", "bezierPoints",
+
+       "grid.xaxis", "grid.yaxis",
+       "xaxisGrob", "yaxisGrob",
+
+       # Frames and packing
+       "grid.frame", "grid.pack", "grid.place",
+       "frameGrob", "packGrob", "placeGrob"
+       )
+
+## Documented as internal but in Paul's first attempt at a sensible
+## export list:
+export("draw.details",
+       "grid.legend", "legendGrob",
+       "grid.multipanel",
+       "grid.panel", "grid.strip",
+       "layoutRegion",
+       "layout.widths", "layout.heights",
+       "viewport.layout", "viewport.transform")
+
+## Manipulated via C code ...
+## export("get.gpar", "grid.top.level.vp")
+
+## <FIXME>
+## In the grid.layout.Rd \example ...
+export("layout.torture")
+## </FIXME>
+
+## S3 methods for generics in base
+S3method("[", "arrow")
+S3method("[", "gList")
+S3method("[", "gpar")
+S3method("[", "unit")
+S3method("[", "unit.arithmetic")
+S3method("[", "unit.list")
+S3method("[", "vpPath")
+S3method("[<-", "unit")
+S3method("Ops", "unit")
+S3method("Summary", "unit")
+S3method("as.character", "grob")
+S3method("as.character", "gList")
+S3method("as.character", "path")
+S3method("as.character", "unit")
+S3method("as.character", "unit.arithmetic")
+S3method("as.character", "unit.list")
+S3method("as.character", "viewport")
+S3method("as.character", "vpList")
+S3method("as.character", "vpStack")
+S3method("as.character", "vpTree")
+S3method("print", "grob")
+S3method("print", "gList")
+S3method("print", "unit")
+S3method("print", "viewport")
+S3method("print", "path")
+S3method("print", "gpar")
+S3method("print", "flatGridListing")
+
+## S3 methods for exported generics in grid
+S3method("downViewport", "default")
+S3method("downViewport", "vpPath")
+
+S3method("drawDetails", "arrows")
+S3method("drawDetails", "circle")
+S3method("drawDetails", "grob")
+S3method("drawDetails", "line.to")
+S3method("drawDetails", "lines")
+S3method("drawDetails", "move.to")
+S3method("drawDetails", "points")
+S3method("drawDetails", "pathgrob")
+S3method("drawDetails", "polygon")
+S3method("drawDetails", "polyline")
+S3method("drawDetails", "xspline")
+S3method("drawDetails", "rect")
+S3method("drawDetails", "segments")
+S3method("drawDetails", "text")
+
+S3method("editDetails", "default")
+S3method("editDetails", "xaxis")
+S3method("editDetails", "yaxis")
+
+S3method("grid.draw", "grob")
+S3method("grid.draw", "gList")
+S3method("grid.draw", "gTree")
+S3method("grid.draw", "viewport")
+S3method("grid.draw", "vpPath")
+S3method("grid.draw", "pop")
+S3method("grid.draw", "up")
+
+S3method("gridList", "default")
+S3method("gridList", "grob")
+S3method("gridList", "gList")
+S3method("gridList", "gTree")
+S3method("gridList", "viewport")
+S3method("gridList", "vpList")
+S3method("gridList", "vpStack")
+S3method("gridList", "vpTree")
+S3method("gridList", "vpPath")
+S3method("gridList", "pop")
+S3method("gridList", "up")
+
+S3method("grobHeight", "grob")
+S3method("grobHeight", "gList")
+S3method("grobHeight", "gPath")
+S3method("grobHeight", "default")
+S3method("grobWidth", "grob")
+S3method("grobWidth", "gList")
+S3method("grobWidth", "gPath")
+S3method("grobWidth", "default")
+
+S3method("grobX", "grob")
+S3method("grobX", "gList")
+S3method("grobX", "gPath")
+S3method("grobX", "default")
+S3method("grobY", "grob")
+S3method("grobY", "gList")
+S3method("grobY", "gPath")
+S3method("grobY", "default")
+
+S3method("grobAscent", "grob")
+S3method("grobAscent", "gList")
+S3method("grobAscent", "gPath")
+S3method("grobAscent", "default")
+S3method("grobDescent", "grob")
+S3method("grobDescent", "gList")
+S3method("grobDescent", "gPath")
+S3method("grobDescent", "default")
+
+S3method("heightDetails", "arrows")
+S3method("heightDetails", "circle")
+S3method("heightDetails", "curve")
+S3method("heightDetails", "functiongrob")
+S3method("heightDetails", "default")
+S3method("heightDetails", "frame")
+S3method("heightDetails", "lines")
+S3method("heightDetails", "points")
+S3method("heightDetails", "polygon")
+S3method("heightDetails", "polyline")
+S3method("heightDetails", "rect")
+S3method("heightDetails", "roundrect")
+S3method("heightDetails", "segments")
+S3method("heightDetails", "text")
+S3method("heightDetails", "xspline")
+S3method("heightDetails", "beziergrob")
+S3method("heightDetails", "rastergrob")
+#S3method("height.details", "viewport")
+
+S3method("postDraw", "grob")
+S3method("preDraw", "grob")
+S3method("preDraw", "gTree")
+
+S3method("preDrawDetails", "grob")
+
+S3method("postDrawDetails", "grob")
+
+S3method("record", "default")
+S3method("record", "grob")
+S3method("record", "viewport")
+S3method("record", "vpPath")
+
+S3method("validDetails", "arrows")
+S3method("validDetails", "circle")
+S3method("validDetails", "clip")
+S3method("validDetails", "curve")
+S3method("validDetails", "functiongrob")
+S3method("validDetails", "grob")
+S3method("validDetails", "lines")
+S3method("validDetails", "line.to")
+S3method("validDetails", "move.to")
+S3method("validDetails", "polygon")
+S3method("validDetails", "polyline")
+S3method("validDetails", "points")
+S3method("validDetails", "rect")
+S3method("validDetails", "roundrect")
+S3method("validDetails", "segments")
+S3method("validDetails", "text")
+S3method("validDetails", "xspline")
+S3method("validDetails", "beziergrob")
+S3method("validDetails", "rastergrob")
+
+S3method("widthDetails", "arrows")
+S3method("widthDetails", "circle")
+S3method("widthDetails", "curve")
+S3method("widthDetails", "functiongrob")
+S3method("widthDetails", "default")
+S3method("widthDetails", "frame")
+S3method("widthDetails", "lines")
+S3method("widthDetails", "points")
+S3method("widthDetails", "polygon")
+S3method("widthDetails", "polyline")
+S3method("widthDetails", "rect")
+S3method("widthDetails", "roundrect")
+S3method("widthDetails", "segments")
+S3method("widthDetails", "text")
+S3method("widthDetails", "xspline")
+S3method("widthDetails", "beziergrob")
+S3method("widthDetails", "rastergrob")
+#S3method("width.details", "viewport")
+
+S3method("xDetails", "circle")
+S3method("xDetails", "curve")
+S3method("xDetails", "functiongrob")
+S3method("xDetails", "lines")
+S3method("xDetails", "points")
+S3method("xDetails", "polygon")
+S3method("xDetails", "polyline")
+S3method("xDetails", "rect")
+S3method("xDetails", "roundrect")
+S3method("xDetails", "segments")
+S3method("xDetails", "text")
+S3method("xDetails", "xspline")
+S3method("xDetails", "beziergrob")
+S3method("xDetails", "rastergrob")
+
+S3method("yDetails", "circle")
+S3method("yDetails", "curve")
+S3method("yDetails", "functiongrob")
+S3method("yDetails", "lines")
+S3method("yDetails", "points")
+S3method("yDetails", "polygon")
+S3method("yDetails", "polyline")
+S3method("yDetails", "rect")
+S3method("yDetails", "roundrect")
+S3method("yDetails", "segments")
+S3method("yDetails", "text")
+S3method("yDetails", "xspline")
+S3method("yDetails", "beziergrob")
+S3method("yDetails", "rastergrob")
+
+S3method("ascentDetails", "default")
+S3method("ascentDetails", "grob")
+S3method("ascentDetails", "text")
+
+S3method("descentDetails", "default")
+S3method("descentDetails", "text")
+
+S3method("forceGrob", "default")
+S3method("forceGrob", "grob")
+S3method("forceGrob", "gTree")
+
+S3method("absolute.units", "unit")
+S3method("absolute.units", "unit.list")
+S3method("absolute.units", "unit.arithmetic")
+
+# S3 methods for internal generics that are used in calls to external fns
+S3method("depth", "viewport")
+S3method("depth", "vpList")
+S3method("depth", "vpStack")
+S3method("depth", "vpTree")
+S3method("depth", "path")
+S3method("explode", "character")
+S3method("explode", "path")
+S3method("drawVP", "viewport")
+S3method("drawVP", "vpList")
+S3method("drawVP", "vpStack")
+S3method("drawVP", "vpTree")
+S3method("drawVP", "vpPath")
+S3method("labelGrob", "grob")
+S3method("labelGrob", "gTree")
+S3method("leafPaths", "viewport")
+S3method("leafPaths", "vpList")
+S3method("leafPaths", "vpStack")
+S3method("leafPaths", "vpTree")
+S3method("leafPaths", "vpPath")
+S3method("pushgrobvp", "viewport")
+S3method("pushgrobvp", "vpPath")
+S3method("popgrobvp", "viewport")
+S3method("popgrobvp", "vpPath")
+S3method("setvpgpar", "viewport")
+S3method("setvpgpar", "vpStack")
+S3method("setvpgpar", "vpList")
+S3method("setvpgpar", "vpTree")
+S3method("push.vp", "default")
+S3method("push.vp", "viewport")
+S3method("push.vp", "vpList")
+S3method("push.vp", "vpStack")
+S3method("push.vp", "vpTree")
+S3method("push.vp", "vpPath")
+
+# S3 method for generic dim (in base)
+S3method("dim", "layout")
+
+# S3 method for generic rep (in base)
+S3method("rep", "unit")
+S3method("rep", "arrow")
+
+# S3 method for generic length (in base)
+S3method("length", "unit")
+S3method("length", "unit.arithmetic")
+S3method("length", "unit.list")
+S3method("length", "arrow")
+
+# S3 method for generic str (in utils)
+S3method("str", "unit.arithmetic")
+
+S3method("makeContent", "beziergrob")
+S3method("makeContent", "roundrect")
+S3method("makeContent", "curve")
+S3method("makeContent", "functiongrob")
+S3method("makeContent", "delayedgrob")
+S3method("makeContent", "xaxis")
+S3method("makeContent", "yaxis")
+S3method("makeContent", "forcedgrob")
+
+S3method("makeContext", "roundrect")
+S3method("makeContext", "frame")
+S3method("makeContext", "cellGrob")
+S3method("makeContext", "forcedgrob")
+
+S3method("grid.force", "default")
+S3method("grid.force", "grob")
+S3method("grid.force", "character")
+S3method("grid.force", "gPath")
+S3method("grid.revert", "default")
+S3method("grid.revert", "grob")
+S3method("grid.revert", "character")
+S3method("grid.revert", "gPath")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/R/grid.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/R/grid.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/R/grid.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/R/grid.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/R/grid
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/R/grid	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/grid/R/grid	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/NAMESPACE	(revision 2476)
@@ -0,0 +1,5 @@
+export(guess_type)
+export(mimemap)
+export(parse_multipart)
+import(utils)
+useDynLib(mime)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/NEWS	(revision 2476)
@@ -0,0 +1,50 @@
+		 CHANGES IN mime VERSION 0.5
+
+MAJOR CHANGES
+
+  o the package license was changed from GPL-2 to GPL
+
+		 CHANGES IN mime VERSION 0.4
+
+NEW FEATURES
+
+  o added a new content type: .geojson -> application/vnd.geo+json (thanks,
+  @dmpe, #3)
+
+BUG FIXES
+
+  o guess_type() may fail on Windows when the file paths are too long (#2)
+
+		 CHANGES IN mime VERSION 0.3
+
+NEW FEATURES
+
+  o added a few more content types
+
+		 CHANGES IN mime VERSION 0.2
+
+NEW FEATURES
+
+  o added a function parse_multipart() to parse multipart form data submitted via
+  HTTP POST
+
+		 CHANGES IN mime VERSION 0.1.2
+
+BUG FIXES
+
+  o guess_type() returned wrong values for filenames without extensions: it
+  should have used the 'empty' argument.
+
+		 CHANGES IN mime VERSION 0.1.1
+
+BUG FIXES
+
+  o mime::guess_type() may not work when mime is loaded but not attached,
+  because R does not load the mimemap data in this case. Now mimemap is exported
+  in the package namespace.
+
+		 CHANGES IN mime VERSION 0.1
+
+NEW FEATURES
+
+  o The initial version of mime. The main function is mime::guess_type().
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/DESCRIPTION	(revision 2476)
@@ -0,0 +1,24 @@
+Package: mime
+Type: Package
+Title: Map Filenames to MIME Types
+Version: 0.5
+Date: 2016-07-07
+Authors@R: c(person("Jeffrey", "Horner", role = "ctb"),
+    person("Yihui", "Xie", role = c("aut", "cre"), email = "xie@yihui.name"))
+Maintainer: Yihui Xie <xie@yihui.name>
+Description: Guesses the MIME type from a filename extension using the data
+    derived from /etc/mime.types in UNIX-type systems.
+Imports: tools
+License: GPL
+URL: https://github.com/yihui/mime
+BugReports: https://github.com/yihui/mime/issues
+LazyData: TRUE
+RoxygenNote: 5.0.1
+NeedsCompilation: yes
+Packaged: 2016-07-07 04:44:41 UTC; yihui
+Author: Jeffrey Horner [ctb],
+  Yihui Xie [aut, cre]
+Repository: CRAN
+Date/Publication: 2016-07-07 07:38:00
+Built: R 3.3.0; x86_64-apple-darwin13.4.0; 2016-07-08 11:11:47 UTC; unix
+Archs: mime.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/html/00Index.html	(revision 2476)
@@ -0,0 +1,33 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Map Filenames to MIME Types</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Map Filenames to MIME Types
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;mime&rsquo; version 0.5</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="guess_type.html">guess_type</a></td>
+<td>Guess the MIME types from filenames</td></tr>
+<tr><td style="width: 25%;"><a href="mimemap.html">mimeextra</a></td>
+<td>Tables for mapping filename extensions to MIME types</td></tr>
+<tr><td style="width: 25%;"><a href="mimemap.html">mimemap</a></td>
+<td>Tables for mapping filename extensions to MIME types</td></tr>
+<tr><td style="width: 25%;"><a href="parse_multipart.html">parse_multipart</a></td>
+<td>Parse multipart form data</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mime/INDEX	(revision 2476)
@@ -0,0 +1,4 @@
+guess_type              Guess the MIME types from filenames
+mimemap                 Tables for mapping filename extensions to MIME
+                        types
+parse_multipart         Parse multipart form data
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/INDEX	(revision 2476)
@@ -0,0 +1,34 @@
+case                    Convert case of a string.
+invert_match            Switch location of matches to location of
+                        non-matches.
+modifiers               Control matching behaviour with modifier
+                        functions.
+str_c                   Join multiple strings into a single string.
+str_conv                Specify the encoding of a string.
+str_count               Count the number of matches in a string.
+str_detect              Detect the presence or absence of a pattern in
+                        a string.
+str_dup                 Duplicate and concatenate strings within a
+                        character vector.
+str_extract             Extract matching patterns from a string.
+str_interp              String interpolation.
+str_length              The length of a string.
+str_locate              Locate the position of patterns in a string.
+str_match               Extract matched groups from a string.
+str_order               Order or sort a character vector.
+str_pad                 Pad a string.
+str_replace             Replace matched patterns in a string.
+str_replace_na          Turn NA into "NA"
+str_split               Split up a string into pieces.
+str_sub                 Extract and replace substrings from a character
+                        vector.
+str_subset              Keep strings matching a pattern, or find
+                        positions.
+str_trim                Trim whitespace from start and end of string.
+str_trunc               Truncate a character string.
+str_view                View HTML rendering of regular expression
+                        match.
+str_wrap                Wrap strings into nicely formatted paragraphs.
+stringr-data            Sample character vectors for practicing string
+                        manipulations.
+word                    Extract words from a sentence.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/NEWS.md
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/NEWS.md	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/NEWS.md	(revision 2476)
@@ -0,0 +1,187 @@
+# stringr 1.2.0
+
+## API changes
+
+* `str_match_all()` now returns NA if an optional group doesn't match 
+  (previously it returned ""). This is more consistent with `str_match()`
+  and other match failures (#134).
+
+## New features
+
+* In `str_replace()`, `replacement` can now be a function that is called once
+  for each match and who's return value is used to replace the match.
+
+* New `str_which()` mimics `grep()` (#129).
+
+* A new vignette (`vignette("regular-expressions")`) describes the 
+  details of the regular expressions supported by stringr.
+  The main vignette (`vignette("stringr")`) has been updated to 
+  give a high-level overview of the package.
+
+## Minor improvements and bug fixes
+
+* `str_order()` and `str_sort()` gain explicit `numeric` argument for sorting
+  mixed numbers and strings.
+
+* `str_replace_all()` now throws an error if `replacement` is not a character
+  vector. If `replacement` is `NA_character_` it replaces the complete string 
+  with replaces with `NA` (#124).
+
+* All functions that take a locale (e.g. `str_to_lower()` and `str_sort()`)
+  default to "en" (English) to ensure that the default is consistent across
+  platforms.
+  
+# stringr 1.1.0
+
+* Add sample datasets: `fruit`, `words` and `sentences`.
+
+* `fixed()`, `regex()`, and `coll()` now throw an error if you use them with
+  anything other than a plain string (#60). I've clarified that the replacement
+  for `perl()` is `regex()` not `regexp()` (#61). `boundary()` has improved
+  defaults when splitting on non-word boundaries (#58, @lmullen).
+
+* `str_detect()` now can detect boundaries (by checking for a `str_count()` > 0)
+  (#120). `str_subset()` works similarly.
+  
+* `str_extract()` and `str_extract_all()` now work with `boundary()`. This is
+  particularly useful if you want to extract logical constructs like words
+  or sentences. `str_extract_all()` respects the `simplify` argument
+  when used with `fixed()` matches.
+
+* `str_subset()` now respects custom options for `fixed()` patterns 
+  (#79, @gagolews).
+  
+* `str_replace()` and `str_replace_all()` now behave correctly when a
+  replacement string contains `$`s, `\\\\1`, etc. (#83, #99).
+
+* `str_split()` gains a `simplify` argument to match `str_extract_all()` 
+  etc.
+  
+* `str_view()` and `str_view_all()` create HTML widgets that display regular 
+  expression matches (#96).
+  
+* `word()` returns `NA` for indexes greater than number of words (#112).
+
+# stringr 1.0.0
+
+* stringr is now powered by [stringi](https://github.com/Rexamine/stringi) 
+  instead of base R regular expressions. This improves unicode and support, and 
+  makes most operations considerably faster.  If you find stringr inadequate for
+  your string processing needs, I highly recommend looking at stringi in more
+  detail.
+
+* stringr gains a vignette, currently a straight forward update of the article
+  that appeared in the R Journal.
+
+* `str_c()` now returns a zero length vector if any of its inputs are 
+  zero length vectors. This is consistent with all other functions, and
+  standard R recycling rules. Similarly, using `str_c("x", NA)` now
+  yields `NA`. If you want `"xNA"`, use `str_replace_na()` on the inputs.
+
+* `str_replace_all()` gains a convenient syntax for applying multiple pairs of
+  pattern and replacement to the same vector:
+  
+    ```R
+    input <- c("abc", "def")
+    str_replace_all(input, c("[ad]" = "!", "[cf]" = "?"))
+    ```
+
+* `str_match()` now returns NA if an optional group doesn't match 
+  (previously it returned ""). This is more consistent with `str_extract()`
+  and other match failures.
+
+* New `str_subset()` keeps values that match a pattern. It's a convenient
+  wrapper for `x[str_detect(x)]` (#21, @jiho).
+
+* New `str_order()` and `str_sort()` allow you to sort and order strings
+  in a specified locale.
+
+* New `str_conv()` to convert strings from specified encoding to UTF-8.
+
+* New modifier `boundary()` allows you to count, locate and split by
+  character, word, line and sentence boundaries.
+
+* The documentation got a lot of love, and very similar functions (e.g.
+  first and all variants) are now documented together. This should hopefully
+  make it easier to locate the function you need.
+
+* `ignore.case(x)` has been deprecated in favour of 
+  `fixed|regex|coll(x, ignore.case = TRUE)`, `perl(x)` has been deprecated in 
+  favour of `regex(x)`.
+
+* `str_join()` is deprecated, please use `str_c()` instead.
+
+# stringr 0.6.2
+
+* fixed path in `str_wrap` example so works for more R installations.
+
+* remove dependency on plyr
+
+# stringr 0.6.1
+
+* Zero input to `str_split_fixed` returns 0 row matrix with `n` columns
+
+* Export `str_join`
+
+# stringr 0.6
+
+* new modifier `perl` that switches to Perl regular expressions
+
+* `str_match` now uses new base function `regmatches` to extract matches -
+  this should hopefully be faster than my previous pure R algorithm
+
+# stringr 0.5
+
+* new `str_wrap` function which gives `strwrap` output in a more convenient
+  format
+
+* new `word` function extract words from a string given user defined
+  separator (thanks to suggestion by David Cooper)
+
+* `str_locate` now returns consistent type when matching empty string (thanks
+  to Stavros Macrakis)
+
+* new `str_count` counts number of matches in a string.
+
+* `str_pad` and `str_trim` receive performance tweaks - for large vectors this
+  should give at least a two order of magnitude speed up
+
+* str_length returns NA for invalid multibyte strings
+
+* fix small bug in internal `recyclable` function
+
+# stringr 0.4
+
+ * all functions now vectorised with respect to string, pattern (and
+   where appropriate) replacement parameters
+ * fixed() function now tells stringr functions to use fixed matching, rather
+   than escaping the regular expression.  Should improve performance for
+   large vectors.
+ * new ignore.case() modifier tells stringr functions to ignore case of
+   pattern.
+ * str_replace renamed to str_replace_all and new str_replace function added.
+   This makes str_replace consistent with all functions.
+ * new str_sub<- function (analogous to substring<-) for substring replacement
+ * str_sub now understands negative positions as a position from the end of
+   the string. -1 replaces Inf as indicator for string end.
+ * str_pad side argument can be left, right, or both (instead of center)
+ * str_trim gains side argument to better match str_pad
+ * stringr now has a namespace and imports plyr (rather than requiring it)
+
+# stringr 0.3
+
+ * fixed() now also escapes |
+ * str_join() renamed to str_c()
+ * all functions more carefully check input and return informative error
+   messages if not as expected.
+ * add invert_match() function to convert a matrix of location of matches to
+   locations of non-matches
+ * add fixed() function to allow matching of fixed strings.
+
+# stringr 0.2
+
+ * str_length now returns correct results when used with factors
+ * str_sub now correctly replaces Inf in end argument with length of string
+ * new function str_split_fixed returns fixed number of splits in a character
+   matrix
+ * str_split no longer uses strsplit to preserve trailing breaks
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/htmlwidgets/lib/str_view.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/htmlwidgets/lib/str_view.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/htmlwidgets/lib/str_view.css	(revision 2476)
@@ -0,0 +1,11 @@
+.str_view ul, .str_view li {
+  list-style: none;
+  padding: 0;
+  margin: 0.5em 0;
+  font-family: monospace;
+}
+
+.str_view .match {
+  border: 1px solid #ccc;
+  background-color: #eee;
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/htmlwidgets/lib/str_view.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/htmlwidgets/str_view.js
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/htmlwidgets/str_view.js	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/htmlwidgets/str_view.js	(revision 2476)
@@ -0,0 +1,17 @@
+HTMLWidgets.widget({
+
+  name: 'str_view',
+
+  type: 'output',
+
+  initialize: function(el, width, height) {
+  },
+
+  renderValue: function(el, x, instance) {
+    el.innerHTML = x.html;
+  },
+
+  resize: function(el, width, height, instance) {
+  }
+
+});

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/htmlwidgets/str_view.js
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/htmlwidgets/str_view.yaml
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/htmlwidgets/str_view.yaml	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/htmlwidgets/str_view.yaml	(revision 2476)
@@ -0,0 +1,5 @@
+dependencies:
+ - name: str_view
+   version: 0.1.0
+   src: htmlwidgets/lib/
+   stylesheet: str_view.css
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/NAMESPACE	(revision 2476)
@@ -0,0 +1,47 @@
+# Generated by roxygen2: do not edit by hand
+
+export("%>%")
+export("str_sub<-")
+export(boundary)
+export(coll)
+export(fixed)
+export(ignore.case)
+export(invert_match)
+export(perl)
+export(regex)
+export(str_c)
+export(str_conv)
+export(str_count)
+export(str_detect)
+export(str_dup)
+export(str_extract)
+export(str_extract_all)
+export(str_interp)
+export(str_join)
+export(str_length)
+export(str_locate)
+export(str_locate_all)
+export(str_match)
+export(str_match_all)
+export(str_order)
+export(str_pad)
+export(str_replace)
+export(str_replace_all)
+export(str_replace_na)
+export(str_sort)
+export(str_split)
+export(str_split_fixed)
+export(str_sub)
+export(str_subset)
+export(str_to_lower)
+export(str_to_title)
+export(str_to_upper)
+export(str_trim)
+export(str_trunc)
+export(str_view)
+export(str_view_all)
+export(str_which)
+export(str_wrap)
+export(word)
+import(stringi)
+importFrom(magrittr,"%>%")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/LICENSE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/LICENSE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/LICENSE	(revision 2476)
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stringr/DESCRIPTION	(revision 2476)
@@ -0,0 +1,29 @@
+Package: stringr
+Version: 1.2.0
+Title: Simple, Consistent Wrappers for Common String Operations
+Description: A consistent, simple and easy to use set of wrappers around the
+    fantastic 'stringi' package. All function and argument names (and positions)
+    are consistent, all functions deal with "NA"'s and zero length vectors
+    in the same way, and the output from one function is easy to feed into
+    the input of another.
+Authors@R: c(
+    person("Hadley", "Wickham", , "hadley@rstudio.com", c("aut", "cre", "cph")),
+    person("RStudio", role = "cph")
+    )
+License: GPL-2 | file LICENSE
+Depends: R (>= 2.14)
+Imports: stringi (>= 0.4.1), magrittr
+Suggests: testthat, knitr, htmltools, htmlwidgets, rmarkdown, covr
+VignetteBuilder: knitr
+URL: http://stringr.tidyverse.org, https://github.com/tidyverse/stringr
+BugReports: https://github.com/tidyverse/stringr/issues
+RoxygenNote: 6.0.1
+LazyData: true
+NeedsCompilation: no
+Packaged: 2017-02-17 15:23:03 UTC; hadley
+Author: Hadley Wickham [aut, cre, cph],
+  RStudio [cph]
+Maintainer: Hadley Wickham <hadley@rstudio.com>
+Repository: CRAN
+Date/Publication: 2017-02-18 21:23:06
+Built: R 3.3.2; ; 2017-02-19 11:26:53 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/fr/LC_MESSAGES/R-foreign.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/fr/LC_MESSAGES/R-foreign.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/fr/LC_MESSAGES/foreign.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/fr/LC_MESSAGES/foreign.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/de/LC_MESSAGES/R-foreign.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/de/LC_MESSAGES/R-foreign.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/de/LC_MESSAGES/foreign.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/de/LC_MESSAGES/foreign.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/en@quot/LC_MESSAGES/R-foreign.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/en@quot/LC_MESSAGES/R-foreign.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/en@quot/LC_MESSAGES/foreign.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/en@quot/LC_MESSAGES/foreign.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/pl/LC_MESSAGES/R-foreign.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/pl/LC_MESSAGES/R-foreign.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/pl/LC_MESSAGES/foreign.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/po/pl/LC_MESSAGES/foreign.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/R/foreign
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/R/foreign	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/R/foreign	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/R/foreign.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/R/foreign.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/R/foreign.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/R/foreign.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/files/HillRace.SYD
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/files/HillRace.SYD
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/files/Iris.syd
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/files/Iris.syd
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/files/sids.dbf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/files/sids.dbf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/compressed.dta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/compressed.dta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/stata.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/stata.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/stata.R	(revision 2476)
@@ -0,0 +1,47 @@
+library(foreign)
+pc5 <- read.dta("pc5.dta")
+summary(pc5)
+str(pc5)
+compressed <- read.dta("compressed.dta")
+summary(compressed)
+all.equal(summary(pc5), summary(compressed))
+sun6 <- read.dta("sun6.dta")
+summary(sun6)
+str(sun6)
+all.equal(summary(sun6),summary(pc5))
+df <- read.dta("datefactor.dta")
+summary(df)
+data(esoph)
+write.dta(esoph,esophile <- tempfile())
+esoph2 <- read.dta(esophile)
+all.equal(ordered(esoph2$alcgp),esoph$alcgp)
+write.dta(esoph,esophile,convert.factors="string")
+esoph2 <- read.dta(esophile)
+all.equal(as.character(esoph$alcgp),esoph2$alcgp)
+write.dta(esoph,esophile,convert.factors="code")
+esoph2 <- read.dta(esophile)
+all.equal(as.numeric(esoph$alcgp),as.numeric(esoph2$alcgp))
+
+se <- read.dta("stata7se.dta")
+print(se)
+v8 <- read.dta("stata8mac.dta")
+print(v8)
+
+stata8 <- read.dta("auto8.dta",missing.type=TRUE,convert.underscore=FALSE)
+str(stata8)
+
+bq <- read.dta("MLLabelsWithNotesChar.dta")
+str(bq)
+write.dta(bq, "bq.dta", version = 12)
+str(read.dta('bq.dta'))
+unlink("bq.dta")
+
+## PR#15290
+bq <- read.dta("OneVarTwoValLabels.dta")
+str(bq)
+
+## Dates and date-times in Stata12
+Sys.setenv(TZ = "UTC") # avoid timezone differences: cannot unset so must be last
+read.dta("xxx12.dta")
+
+q()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/pbc.sys
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/pbc.sys
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/octave.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/octave.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/octave.R	(revision 2476)
@@ -0,0 +1,5 @@
+library("foreign")
+otd <- read.octave("octave.dat")
+summary(otd)
+str(otd)
+q()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/mval_bug.sav
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/mval_bug.sav
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/S3.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/S3.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/S3.R	(revision 2476)
@@ -0,0 +1,9 @@
+library(foreign)
+read.S("mySobj")
+data.restore("dumpdata", print = TRUE)
+print(myobj)
+data.restore("tsdumpdata", print = TRUE, verbose = TRUE)
+sunspot
+utils::str(carbon.dioxide)
+carbon.dioxide[1:60]
+q()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/sas.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/sas.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/sas.R	(revision 2476)
@@ -0,0 +1,12 @@
+## This site was unresponsive in Jan 2014
+if(!nzchar(Sys.getenv("R_FOREIGN_FULL_TEST"))) q("no")
+library("foreign")
+setwd(tempdir())
+tfile <- "int1982ag.zip"
+download.file("ftp://cusk.nmfs.noaa.gov/mrfss/intercept/ag/int1982ag.zip",
+              tfile, quiet=TRUE, mode="wb")
+zip.file.extract("int1982ag.xpt", tfile)
+dfs <- read.xport("int1982ag.xpt")
+foo <- dfs$I3_19822
+nrow(foo)
+stopifnot(nrow(foo) == 3650)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/octave.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/octave.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/octave.dat	(revision 2476)
@@ -0,0 +1,122 @@
+# Created by Octave 2.1.60, Mon Dec 27 12:13:21 2004 CET <hornik@mithrandir>
+# name: a_string
+# type: string
+# elements: 2
+# length: 3
+foo
+# length: 3
+bar
+# name: a_bool
+# type: bool
+0
+# name: a_struct
+# type: struct
+# length: 3
+# name: a
+# type: scalar
+1
+# name: b
+# type: matrix
+# rows: 2
+# columns: 2
+ 1 2
+ 3 4
+# name: c
+# type: string
+# elements: 1
+# length: 3
+foo
+# name: a_cell
+# type: cell
+# rows: 2
+# columns: 2
+# name: <cell-element>
+# type: scalar
+1
+# name: <cell-element>
+# type: string
+# elements: 1
+# length: 3
+foo
+
+# name: <cell-element>
+# type: matrix
+# rows: 2
+# columns: 2
+ 1 2
+ 3 4
+# name: <cell-element>
+# type: string
+# elements: 1
+# length: 3
+bar
+
+# name: a_complex_scalar
+# type: complex scalar
+(0,1)
+# name: a_list
+# type: list
+# length: 3
+# name: _0
+# type: scalar
+1
+# name: _1
+# type: matrix
+# rows: 2
+# columns: 2
+ 1 2
+ 3 4
+# name: _2
+# type: string
+# elements: 1
+# length: 3
+foo
+# name: a_complex_matrix
+# type: complex matrix
+# rows: 2
+# columns: 2
+ (1,2) (3,-4)
+ (5,0) (-6,0)
+# name: a_range
+# type: range
+# base, limit, increment
+1 5 1
+# name: a_scalar
+# type: scalar
+1
+# name: a_complex_3_d_array
+# type: complex matrix
+# ndims: 3
+ 2 2 2
+ (1,1)
+ (3,1)
+ (2,1)
+ (4,1)
+ (5,-1)
+ (7,-1)
+ (6,-1)
+ (8,-1)
+# name: a_3_d_array
+# type: matrix
+# ndims: 3
+ 2 2 2
+ 1
+ 3
+ 2
+ 4
+ 5
+ 7
+ 6
+ 8
+# name: a_matrix
+# type: matrix
+# rows: 2
+# columns: 2
+ 1 2
+ 3 4
+# name: a_bool_matrix
+# type: bool matrix
+# rows: 2
+# columns: 2
+ 1 0
+ 0 1
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/test.xpt
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/test.xpt
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/sample100.sav
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/sample100.sav
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/pbcold.sav
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/pbcold.sav
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/dumpdata
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/dumpdata	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/dumpdata	(revision 2476)
@@ -0,0 +1,60 @@
+myobj
+structure
+4
+.Data
+list
+4
+factor
+structure
+3
+.Data
+integer
+3
+1
+2
+3
+.Label
+character
+3
+a
+bc
+def
+class
+character
+1
+factor
+ints
+integer
+3
+N
+2
+3
+floats
+numeric
+3
+1.1
+1.2
+1.3
+logs
+logical
+3
+1
+N
+0
+.Names
+character
+4
+factor
+ints
+floats
+logs
+row.names
+character
+3
+1
+2
+3
+class
+character
+1
+data.frame
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/sample100.por
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/sample100.por	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/sample100.por	(revision 2476)
@@ -0,0 +1,106 @@
+�����@����@����@����@@@@@@@@@@@@@@@@@@@@ASCII SPSS PORT FILE                    
+00000-0000-0000-0000--------------------!3#))0303300/240&),%00000000000000000000
+0200002'220'&)3000#0000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst
+uvwxyz .<(+0&[]!$*);^-/|,%_>?`:#@'="000000~000000000000000000000{}\0000000000000
+00000000000000000000000000000000000000000000000000000000SPSSPORTA8/200012126/151
+333112/SPSS for MS WINDOWS Release 10.04B/5B/70/4/YEAR5/4/0/5/4/0/CM/YEAR OF ADM
+INISTRATION70/8/DISTRICT5/6/0/5/6/0/CM/COUNTY DISTRICT NUMBER70/6/CAMPUS5/9/0/5/
+9/0/CT/COUNTY DISTRICT CAMPUS NUMBER7F/5/DNAME1/F/0/1/F/0/CD/DISTRICT NAME7F/5/C
+NAME1/F/0/1/F/0/CB/CAMPUS NAME71/3/SEX1/1/0/1/1/0/CE/SEX OF STUDENT73/7/DISADVG1
+/3/0/1/3/0/CQ/ECONOMICALLY DISADVANTAGED78/8/ETHNICTY1/8/0/1/8/0/C9/ETHNICITY79/
+5/STUID1/9/0/1/9/0/CK/SCRAMBLED STUDENT ID70/6/TLIMTH5/F/0/5/F/0/C10/TEXAS LEARN
+ING INDEX  - MATHEM70/5/GRADE5/1/0/5/1/0/CH/GRADE DESIGNATIONF39/24AE/2BESS5/C/M
+ESQUITE ISDE/A C NEW MIDDLE1/F2/NO5/WHITE9/00614371S30/8/34/24AE/2BET06/C/MESQUI
+TE ISDC/MCWHORTER EL1/F2/NO5/WHITE9/00614372S2Q/3/34/24AE/2BET0A/C/MESQUITE ISDD
+/RUTHERFORD EL1/ 1/ 1/ 9/00614373S27/3/35/24AE/2BET0N/C/MESQUITE ISDE/JOEY M PIR
+RUNG1/F2/NO8/HISPANIC9/00614373S2H/4/36/24AE/2BET0H/C/MESQUITE ISD9/PORTER EL1/ 
+1/ 1/ 9/00614373S2H/5/37/24AE/2BET0H/C/MESQUITE ISD9/PORTER EL1/ 1/ 1/ 9/0061437
+3S2J/6/38/24AE/2BESS6/C/MESQUITE ISDF/R S KIMBROUGH M1/F2/NO8/HISPANIC9/00614373
+S2Q/7/39/24AE/2BESS6/C/MESQUITE ISDF/R S KIMBROUGH M1/F2/NO8/HISPANIC9/00614373S
+2R/8/34/24AE/2BET04/C/MESQUITE ISDD/JOHN HANBY EL1/F2/NO5/WHITE9/00614375S2T/3/3
+5/24AE/2BET0B/C/MESQUITE ISD9/SHANDS EL1/F2/NO5/WHITE9/00614375S2P/4/34/24AE/2BE
+T0N/C/MESQUITE ISDE/JOEY M PIRRUNG1/M2/NO5/WHITE9/00614378S2Q/3/35/24AE/2BET0N/C
+/MESQUITE ISDE/JOEY M PIRRUNG1/M2/NO5/WHITE9/00614378S2N/4/36/24AE/2BET0R/C/MESQ
+UITE ISDB/THOMPSON EL1/M2/NO5/WHITE9/00614378S2R/5/37/24AE/2BET0R/C/MESQUITE ISD
+B/THOMPSON EL1/M2/NO5/WHITE9/00614378S2R/6/38/24AE/2BESS7/C/MESQUITE ISDC/BERRY 
+MIDDLE1/M2/NO5/WHITE9/00614378S2Q/7/39/24AE/2BESS7/C/MESQUITE ISDC/BERRY MIDDLE1
+/M2/NO5/WHITE9/00614378S2N/8/35/24AE/2BET0N/C/MESQUITE ISDE/JOEY M PIRRUNG1/M2/N
+O5/WHITE9/00614379S2A/3/36/24AE/2BET0R/C/MESQUITE ISDB/THOMPSON EL1/M2/NO5/WHITE
+9/00614379S2S/4/37/24AE/2BET0R/C/MESQUITE ISDB/THOMPSON EL1/M2/NO5/WHITE9/006143
+79S2Q/5/38/24AE/2BET0R/C/MESQUITE ISDB/THOMPSON EL1/M2/NO5/WHITE9/00614379S2P/6/
+39/24AE/2BESS7/C/MESQUITE ISDC/BERRY MIDDLE1/M2/NO5/WHITE9/00614379S2P/7/26K/24A
+E/2BESS7/C/MESQUITE ISDC/BERRY MIDDLE1/M2/NO5/WHITE9/00614379S32/8/34/24AE/2BET0
+5/C/MESQUITE ISD9/HODGES EL1/M2/NO5/WHITE9/00614382S28/4/35/24AE/2BET05/C/MESQUI
+TE ISD9/HODGES EL1/M2/NO5/WHITE9/00614382S1R/5/36/24AE/2BESS5/C/MESQUITE ISDE/A 
+C NEW MIDDLE1/M2/NO5/WHITE9/00614382S2A/6/34/24AE/2BET0K/C/MESQUITE ISDF/VERNON 
+PRICE EL1/F2/NO5/WHITE9/00614384S2O/4/35/24AE/2BET0K/C/MESQUITE ISDF/VERNON PRIC
+E EL1/F2/NO5/WHITE9/00614384S2G/5/36/24AE/2BET0K/C/MESQUITE ISDF/VERNON PRICE EL
+1/F2/NO5/WHITE9/00614384S2P/6/37/24AE/2BESS2/C/MESQUITE ISDE/VANSTON MIDDLE1/F2/
+NO5/WHITE9/00614384S2J/7/38/24AE/2BESS2/C/MESQUITE ISDE/VANSTON MIDDLE1/F2/NO5/W
+HITE9/00614384S2E/8/34/24AE/2BET04/C/MESQUITE ISDD/JOHN HANBY EL1/F3/YES5/WHITE9
+/00614389S2K/3/35/24AE/2BET04/C/MESQUITE ISDD/JOHN HANBY EL1/F3/YES5/WHITE9/0061
+4389S2N/4/36/24AE/2BET04/C/MESQUITE ISDD/JOHN HANBY EL1/F3/YES5/WHITE9/00614389S
+2B/5/37/24AE/2BESS3/C/MESQUITE ISDF/WILKINSON MIDDL1/F3/YES5/WHITE9/00614389S2G/
+6/38/24AE/2BESS3/C/MESQUITE ISDF/WILKINSON MIDDL1/F2/NO5/WHITE9/00614389S2J/7/39
+/24AE/2BESS3/C/MESQUITE ISDF/WILKINSON MIDDL1/F2/NO5/WHITE9/00614389S2O/8/34/24A
+5/2BEJ0Q/A/DALLAS ISDA/CENTRAL EL1/F3/YES5/WHITE9/00614390S2T/4/34/24AE/2BET0B/C
+/MESQUITE ISD9/SHANDS EL1/F2/NO5/WHITE9/00614391S22/5/37/24AE/2BET0I/C/MESQUITE 
+ISDB/MCKENZIE EL1/ 1/ 1/ 9/00614392S2C/6/38/24AE/2BESS4/C/MESQUITE ISDF/MCDONALD
+ MIDDLE1/M2/NO5/OTHER9/00614392S2E/7/39/24AE/2BESS4/C/MESQUITE ISDF/MCDONALD MID
+DLE1/M2/NO5/OTHER9/00614392S2B/8/35/24AE/2BET0K/C/MESQUITE ISDF/VERNON PRICE EL1
+/F2/NO5/WHITE9/00614393S1R/3/36/24AE/2BET0K/C/MESQUITE ISDF/VERNON PRICE EL1/F2/
+NO5/WHITE9/00614393S2P/4/37/24AE/2BET0K/C/MESQUITE ISDF/VERNON PRICE EL1/F2/NO5/
+WHITE9/00614393S2B/5/38/24AE/2BET0K/C/MESQUITE ISDF/VERNON PRICE EL1/F2/NO5/WHIT
+E9/00614393S2L/6/39/24AE/2BESS2/C/MESQUITE ISDE/VANSTON MIDDLE1/F2/NO5/WHITE9/00
+614393S2K/7/34/24AE/2BET0B/C/MESQUITE ISD9/SHANDS EL1/F2/NO5/WHITE9/00614396S25/
+3/35/24AE/2BET0B/C/MESQUITE ISD9/SHANDS EL1/F2/NO5/WHITE9/00614396S24/4/34/24AE/
+2BET0M/C/MESQUITE ISDF/GEORGIA W KIMBA1/F2/NO5/WHITE9/00614397S2O/3/35/24AE/2BET
+0M/C/MESQUITE ISDF/GEORGIA W KIMBA1/F2/NO5/WHITE9/00614397S2T/4/36/24AE/2BET0M/C
+/MESQUITE ISDF/GEORGIA W KIMBA1/F2/NO5/WHITE9/00614397S2S/5/37/24AE/2BET0M/C/MES
+QUITE ISDF/GEORGIA W KIMBA1/F2/NO5/WHITE9/00614397S2S/6/38/24AE/2BESS6/C/MESQUIT
+E ISDF/R S KIMBROUGH M1/F2/NO5/WHITE9/00614397S2T/7/39/24AE/2BESS6/C/MESQUITE IS
+DF/R S KIMBROUGH M1/F2/NO5/WHITE9/00614397S31/8/35/8GGP/9F216L/B/HARMONY ISDE/JA
+MES POOLE EL1/M2/NO5/WHITE9/00614402S2J/4/34/24AE/2BET0P/C/MESQUITE ISDD/J C AUS
+TIN EL1/F2/NO5/WHITE9/00614403S2M/3/35/24AE/2BET0P/C/MESQUITE ISDD/J C AUSTIN EL
+1/F2/NO5/WHITE9/00614403S2P/4/36/24AE/2BET0P/C/MESQUITE ISDD/J C AUSTIN EL1/F2/N
+O5/WHITE9/00614403S2Q/5/37/24AE/2BET0P/C/MESQUITE ISDD/J C AUSTIN EL1/F2/NO5/WHI
+TE9/00614403S2Q/6/38/24AE/2BESS6/C/MESQUITE ISDF/R S KIMBROUGH M1/F2/NO5/WHITE9/
+00614403S30/7/39/24AE/2BESS6/C/MESQUITE ISDF/R S KIMBROUGH M1/F2/NO5/WHITE9/0061
+4403S2Q/8/34/24AE/2BET0P/C/MESQUITE ISDD/J C AUSTIN EL1/F2/NO5/WHITE9/00614406S1
+O/3/35/24AE/2BET0P/C/MESQUITE ISDD/J C AUSTIN EL1/F2/NO5/WHITE9/00614406S2F/4/36
+/24AE/2BET0P/C/MESQUITE ISDD/J C AUSTIN EL1/F2/NO5/WHITE9/00614406S27/5/37/24AE/
+2BET0P/C/MESQUITE ISDD/J C AUSTIN EL1/F2/NO5/WHITE9/00614406S2C/6/38/24AE/2BESS6
+/C/MESQUITE ISDF/R S KIMBROUGH M1/F2/NO5/WHITE9/00614406S2G/7/39/24AE/2BESS6/C/M
+ESQUITE ISDF/R S KIMBROUGH M1/F2/NO5/WHITE9/00614406S2P/8/34/24AE/2BET0C/C/MESQU
+ITE ISDB/TISINGER EL1/M2/NO5/WHITE9/00614414S2A/3/35/24AE/2BET0C/C/MESQUITE ISDB
+/TISINGER EL1/M2/NO5/WHITE9/00614414S23/4/36/24AE/2BET0C/C/MESQUITE ISDB/TISINGE
+R EL1/M2/NO5/WHITE9/00614414S27/5/37/24AE/2BESS3/C/MESQUITE ISDF/WILKINSON MIDDL
+1/M2/NO5/WHITE9/00614414S24/6/38/24AE/2BESS3/C/MESQUITE ISDF/WILKINSON MIDDL1/M2
+/NO5/WHITE9/00614414S2E/7/39/24AE/2BESS3/C/MESQUITE ISDF/WILKINSON MIDDL1/M2/NO5
+/WHITE9/00614414S2H/8/34/24AE/2BET0C/C/MESQUITE ISDB/TISINGER EL1/F2/NO5/WHITE9/
+00614416S23/3/35/24AE/2BET0C/C/MESQUITE ISDB/TISINGER EL1/F2/NO5/WHITE9/00614416
+S26/4/36/24AE/2BET0C/C/MESQUITE ISDB/TISINGER EL1/F2/NO5/WHITE9/00614416S26/5/37
+/24AE/2BESS3/C/MESQUITE ISDF/WILKINSON MIDDL1/F2/NO5/WHITE9/00614416S29/6/38/24A
+E/2BESS3/C/MESQUITE ISDF/WILKINSON MIDDL1/F3/YES5/WHITE9/00614416S2N/7/39/24AE/2
+BESS3/C/MESQUITE ISDF/WILKINSON MIDDL1/F2/NO5/WHITE9/00614416S2M/8/34/24AE/2BET0
+P/C/MESQUITE ISDD/J C AUSTIN EL1/M2/NO5/WHITE9/00614417S2Q/3/35/24AE/2BET0P/C/ME
+SQUITE ISDD/J C AUSTIN EL1/M2/NO5/WHITE9/00614417S2T/4/36/24AE/2BET0P/C/MESQUITE
+ ISDD/J C AUSTIN EL1/M2/NO5/WHITE9/00614417S2R/5/37/24AE/2BET0P/C/MESQUITE ISDD/
+J C AUSTIN EL1/M2/NO5/WHITE9/00614417S2S/6/38/24AJ/2BF4GL/D/SUNNYVALE ISDC/SUNNY
+VALE EL1/M2/NO5/WHITE9/00614417S2R/7/39/24AJ/2BF4GL/D/SUNNYVALE ISDC/SUNNYVALE E
+L1/M2/NO5/WHITE9/00614417S2M/8/34/24AE/2BET0P/C/MESQUITE ISDD/J C AUSTIN EL1/F2/
+NO5/WHITE9/00614420S2T/3/35/24AE/2BET0P/C/MESQUITE ISDD/J C AUSTIN EL1/M2/NO5/WH
+ITE9/00614420S2S/4/36/24AE/2BET0P/C/MESQUITE ISDD/J C AUSTIN EL1/F2/NO5/WHITE9/0
+0614420S2R/5/37/24AE/2BET0P/C/MESQUITE ISDD/J C AUSTIN EL1/F2/NO5/WHITE9/0061442
+0S32/6/38/24AE/2BESS6/C/MESQUITE ISDF/R S KIMBROUGH M1/F2/NO5/WHITE9/00614420S33
+/7/39/24AE/2BESS6/C/MESQUITE ISDF/R S KIMBROUGH M1/F2/NO5/WHITE9/00614420S31/8/3
+4/24AE/2BET0P/C/MESQUITE ISDD/J C AUSTIN EL1/F2/NO5/WHITE9/00614421S2I/3/35/24AE
+/2BET0P/C/MESQUITE ISDD/J C AUSTIN EL1/F2/NO5/WHITE9/00614421S2T/4/36/24AE/2BET0
+P/C/MESQUITE ISDD/J C AUSTIN EL1/F2/NO5/WHITE9/00614421S2Q/5/37/24AE/2BET0P/C/ME
+SQUITE ISDD/J C AUSTIN EL1/F2/NO5/WHITE9/00614421S2Q/6/38/24AE/2BESS6/C/MESQUITE
+ ISDF/R S KIMBROUGH M1/F2/NO5/WHITE9/00614421S31/7/39/24AE/2BESS6/C/MESQUITE ISD
+F/R S KIMBROUGH M1/F2/NO5/WHITE9/00614421S30/8/34/24AE/2BET0P/C/MESQUITE ISDD/J 
+C AUSTIN EL1/M2/NO5/WHITE9/00614423S2T/3/35/24AE/2BET0P/C/MESQUITE ISDD/J C AUST
+IN EL1/M2/NO5/WHITE9/00614423S2S/4/36/24AE/2BET0P/C/MESQUITE ISDD/J C AUSTIN EL1
+/M2/NO5/WHITE9/00614423S2Q/5/ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/xport.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/xport.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/xport.Rout.save	(revision 2476)
@@ -0,0 +1,115 @@
+
+R : Copyright 2003, The R Development Core Team
+Version 1.7.0 Patched (2003-04-24)
+
+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.
+
+Type `demo()' for some demos, `help()' for on-line help, or
+`help.start()' for a HTML browser interface to help.
+Type `q()' to quit R.
+
+> library(foreign)
+> lookup.xport("Alfalfa.xpt")
+$SPEC
+$SPEC$headpad
+[1] 1360
+
+$SPEC$type
+[1] "character" "numeric"   "numeric"   "numeric"   "numeric"   "numeric"  
+
+$SPEC$width
+[1] 8 8 8 8 8 8
+
+$SPEC$index
+[1] 1 2 3 4 5 6
+
+$SPEC$position
+[1]  0  8 16 24 32 40
+
+$SPEC$name
+[1] "POP"    "SAMPLE" "REP"    "SEEDWT" "HARV1"  "HARV2" 
+
+$SPEC$label
+[1] "" "" "" "" "" ""
+
+$SPEC$format
+[1] "" "" "" "" "" ""
+
+$SPEC$sexptype
+[1] 16 14 14 14 14 14
+
+$SPEC$tailpad
+[1] 0
+
+$SPEC$length
+[1] 40
+
+
+> Alfalfa <- read.xport("Alfalfa.xpt")
+> summary(Alfalfa)
+  POP         SAMPLE         REP           SEEDWT          HARV1      
+ MAX:20   Min.   :0.0   Min.   :1.00   Min.   :35.00   Min.   :120.6  
+ min:20   1st Qu.:2.0   1st Qu.:1.75   1st Qu.:47.75   1st Qu.:148.3  
+          Median :4.5   Median :2.50   Median :59.00   Median :165.8  
+          Mean   :4.5   Mean   :2.50   Mean   :56.08   Mean   :163.0  
+          3rd Qu.:7.0   3rd Qu.:3.25   3rd Qu.:62.25   3rd Qu.:176.4  
+          Max.   :9.0   Max.   :4.00   Max.   :75.00   Max.   :193.4  
+     HARV2      
+ Min.   :129.1  
+ 1st Qu.:150.6  
+ Median :163.2  
+ Mean   :167.1  
+ 3rd Qu.:179.6  
+ Max.   :235.3  
+> ## test data provided by FRohde@birchdavis.com
+> lookup.xport("test.xpt")
+$TEST
+$TEST$headpad
+[1] 800
+
+$TEST$type
+[1] "numeric" "numeric"
+
+$TEST$width
+[1] 8 8
+
+$TEST$index
+[1] 1 2
+
+$TEST$position
+[1] 0 8
+
+$TEST$name
+[1] "I" "K"
+
+$TEST$label
+[1] "" ""
+
+$TEST$format
+[1] "" ""
+
+$TEST$sexptype
+[1] 14 14
+
+$TEST$tailpad
+[1] 48
+
+$TEST$length
+[1] 12
+
+
+> testdata <- read.xport("test.xpt")
+> summary(testdata)
+       I              K    
+ Min.   :1.00   Min.   :1  
+ 1st Qu.:1.75   1st Qu.:1  
+ Median :2.50   Median :2  
+ Mean   :2.50   Mean   :2  
+ 3rd Qu.:3.25   3rd Qu.:3  
+ Max.   :4.00   Max.   :3  
+> q()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/writeForeignSPSS.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/writeForeignSPSS.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/writeForeignSPSS.Rout.save	(revision 2476)
@@ -0,0 +1,31 @@
+
+R Under development (unstable) (2013-12-04 r64388) -- "Unsuffered Consequences"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: x86_64-apple-darwin13.0.0 (64-bit)
+
+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.
+
+> library(foreign)
+> 
+> DF <- data.frame(X1 = 1:3, X2 = 4:6, X3 = paste0("str_", 1:3), 
++                  stringsAsFactors = FALSE)
+> 
+> write.foreign(DF, "datafile.dat", "codefile.sps", "SPSS")
+> 
+> files <- c( "datafile.dat", "codefile.sps")
+> for(f in files) tools::Rdiff(f, file.path("keep", f))
+> unlink(files)
+> 
+> proc.time()
+   user  system elapsed 
+  0.223   0.031   0.239 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/mySobj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/mySobj
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/arff.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/arff.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/arff.Rout.save	(revision 2476)
@@ -0,0 +1,36 @@
+
+R version 2.5.0 Under development (unstable) (2007-03-25 r40887)
+Copyright (C) 2007 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> library("foreign")
+> df <- read.arff("contact-lenses.arff")
+> summary(df)
+             age       spectacle-prescrip astigmatism tear-prod-rate
+ pre-presbyopic:8   hypermetrope:12       no :12      normal :12    
+ presbyopic    :8   myope       :12       yes:12      reduced:12    
+ young         :8                                                   
+ contact-lenses
+ hard: 4       
+ none:15       
+ soft: 5       
+> str(df)
+'data.frame':	24 obs. of  5 variables:
+ $ age               : Factor w/ 3 levels "pre-presbyopic",..: 3 3 3 3 3 3 3 3 1 1 ...
+ $ spectacle-prescrip: Factor w/ 2 levels "hypermetrope",..: 2 2 2 2 1 1 1 1 2 2 ...
+ $ astigmatism       : Factor w/ 2 levels "no","yes": 1 1 2 2 1 1 2 2 1 1 ...
+ $ tear-prod-rate    : Factor w/ 2 levels "normal","reduced": 2 1 2 1 2 1 2 1 2 1 ...
+ $ contact-lenses    : Factor w/ 3 levels "hard","none",..: 2 3 2 1 2 3 2 1 2 3 ...
+> q()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/MLLabelsWithNotesChar.dta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/MLLabelsWithNotesChar.dta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/minitab.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/minitab.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/minitab.Rout.save	(revision 2476)
@@ -0,0 +1,37 @@
+
+R version 2.9.0 Under development (unstable) (2009-01-28 r47758)
+Copyright (C) 2009 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> library(foreign)
+> ex1.51 <- read.mtp("ex1-51.mtp")
+> summary(ex1.51)
+        Length Class  Mode   
+control 26     -none- numeric
+seeded  26     -none- numeric
+> str(ex1.51)
+List of 2
+ $ control: num [1:26] 1203 830 372 346 321 ...
+ $ seeded : num [1:26] 2746 1698 1656 978 703 ...
+> ex1.51 <- data.frame(ex1.51)
+> summary(ex1.51)
+    control            seeded       
+ Min.   :   1.00   Min.   :   4.10  
+ 1st Qu.:  24.82   1st Qu.:  98.12  
+ Median :  44.20   Median : 221.60  
+ Mean   : 164.59   Mean   : 441.98  
+ 3rd Qu.: 159.20   3rd Qu.: 406.02  
+ Max.   :1202.60   Max.   :2745.60  
+> q()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/xport.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/xport.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/xport.R	(revision 2476)
@@ -0,0 +1,9 @@
+library(foreign)
+lookup.xport("Alfalfa.xpt")
+Alfalfa <- read.xport("Alfalfa.xpt")
+summary(Alfalfa)
+## test data provided by FRohde@birchdavis.com
+lookup.xport("test.xpt")
+testdata <- read.xport("test.xpt")
+summary(testdata)
+q()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/octave.m
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/octave.m	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/octave.m	(revision 2476)
@@ -0,0 +1,22 @@
+## Run this through (a recent enough version of) Octave to (re)create
+## 'octave.dat', using 'octave < octave.m'.
+
+a_scalar = 1;
+a_complex_scalar = i;
+a_matrix = [1, 2; 3, 4];
+a_complex_matrix = [1+2i, 3-4i; 5, -6];
+a_range = 1 : 5;
+a_string = [ "foo"; "bar" ];
+a_3_d_array = zeros(2, 2, 2);
+a_3_d_array(:,:,1) = a_matrix;
+a_3_d_array(:,:,2) = a_matrix + 4;
+a_complex_3_d_array = a_3_d_array;
+a_complex_3_d_array(:,:,1) = a_complex_3_d_array(:,:,1) + i;
+a_complex_3_d_array(:,:,2) = a_complex_3_d_array(:,:,2) - i;
+a_struct = struct("a", a_scalar, "b", a_matrix, "c", "foo");
+a_list = list(a_scalar, a_matrix, "foo");
+a_cell = { a_scalar, a_matrix; "foo", "bar" };
+a_bool = false;
+a_bool_matrix = [ true, false ; false, true ];
+
+save -ascii "octave.dat" a_*;
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/writeForeignSPSS.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/writeForeignSPSS.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/writeForeignSPSS.R	(revision 2476)
@@ -0,0 +1,10 @@
+library(foreign)
+
+DF <- data.frame(X1 = 1:3, X2 = 4:6, X3 = paste0("str_", 1:3), 
+                 stringsAsFactors = FALSE)
+
+write.foreign(DF, "datafile.dat", "codefile.sps", "SPSS")
+
+files <- c( "datafile.dat", "codefile.sps")
+for(f in files) tools::Rdiff(f, file.path("keep", f))
+unlink(files)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/spss.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/spss.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/spss.Rout.save	(revision 2476)
@@ -0,0 +1,327 @@
+
+R Under development (unstable) (2012-02-09 r58309)
+Copyright (C) 2012 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: i386-apple-darwin9.8.0/i386 (32-bit)
+
+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.
+
+> library(foreign)
+> 
+> sample100 <- read.spss("sample100.sav",FALSE)
+> summary(sample100)
+         Length Class  Mode     
+YEAR     100    -none- numeric  
+DISTRICT 100    -none- numeric  
+CAMPUS   100    -none- numeric  
+DNAME    100    -none- character
+CNAME    100    -none- character
+SEX      100    -none- character
+DISADVG  100    -none- character
+ETHNICTY 100    -none- character
+STUID    100    -none- character
+TLIMTH   100    -none- numeric  
+GRADE    100    -none- numeric  
+> str(sample100)
+List of 11
+ $ YEAR    : num [1:100] 99 94 94 95 96 97 98 99 94 95 ...
+ $ DISTRICT: num [1:100] 57914 57914 57914 57914 57914 ...
+ $ CAMPUS  : num [1:100] 57914045 57914106 57914110 57914123 57914117 ...
+ $ DNAME   : chr [1:100] "MESQUITE ISD   " "MESQUITE ISD   " "MESQUITE ISD   " "MESQUITE ISD   " ...
+ $ CNAME   : chr [1:100] "A C NEW MIDDLE " "MCWHORTER EL   " "RUTHERFORD EL  " "JOEY M PIRRUNG " ...
+ $ SEX     : chr [1:100] "F" "F" " " "F" ...
+ $ DISADVG : chr [1:100] "NO " "NO " "   " "NO " ...
+ $ ETHNICTY: chr [1:100] "WHITE   " "WHITE   " "        " "HISPANIC" ...
+ $ STUID   : chr [1:100] "00614371S" "00614372S" "00614373S" "00614373S" ...
+ $ TLIMTH  : num [1:100] 90 86 67 77 77 79 86 87 89 85 ...
+ $ GRADE   : num [1:100] 8 3 3 4 5 6 7 8 3 4 ...
+ - attr(*, "label.table")=List of 11
+  ..$ YEAR    : NULL
+  ..$ DISTRICT: NULL
+  ..$ CAMPUS  : NULL
+  ..$ DNAME   : NULL
+  ..$ CNAME   : NULL
+  ..$ SEX     : NULL
+  ..$ DISADVG : NULL
+  ..$ ETHNICTY: NULL
+  ..$ STUID   : NULL
+  ..$ TLIMTH  : NULL
+  ..$ GRADE   : NULL
+ - attr(*, "variable.labels")= Named chr [1:11] "YEAR OF ADMINISTRATION" "COUNTY DISTRICT NUMBER" "COUNTY DISTRICT CAMPUS NUMBER" "DISTRICT NAME" ...
+  ..- attr(*, "names")= chr [1:11] "YEAR" "DISTRICT" "CAMPUS" "DNAME" ...
+> d.sample100 <- data.frame(sample100)
+> summary(d.sample100)
+      YEAR           DISTRICT          CAMPUS                      DNAME   
+ Min.   :  94.0   Min.   : 57905   Min.   : 57905126   DALLAS ISD     : 1  
+ 1st Qu.:  95.0   1st Qu.: 57914   1st Qu.: 57914046   HARMONY ISD    : 1  
+ Median :  96.0   Median : 57914   Median : 57914112   MESQUITE ISD   :96  
+ Mean   : 115.4   Mean   : 59644   Mean   : 59644015   SUNNYVALE ISD  : 2  
+ 3rd Qu.:  98.0   3rd Qu.: 57914   3rd Qu.: 57914125                       
+ Max.   :2000.0   Max.   :230905   Max.   :230905101                       
+                                                                           
+             CNAME    SEX    DISADVG      ETHNICTY        STUID   
+ J C AUSTIN EL  :23    : 4      : 4           : 4   00614373S: 6  
+ R S KIMBROUGH M:12   F:62   NO :90   HISPANIC: 3   00614378S: 6  
+ WILKINSON MIDDL: 9   M:34   YES: 6   OTHER   : 2   00614379S: 6  
+ VERNON PRICE EL: 7                   WHITE   :91   00614389S: 6  
+ TISINGER EL    : 6                                 00614397S: 6  
+ THOMPSON EL    : 5                                 00614403S: 6  
+ (Other)        :38                                 (Other)  :64  
+     TLIMTH          GRADE     
+ Min.   :54.00   Min.   :3.00  
+ 1st Qu.:74.00   1st Qu.:4.00  
+ Median :84.00   Median :5.00  
+ Mean   :80.16   Mean   :5.37  
+ 3rd Qu.:87.00   3rd Qu.:7.00  
+ Max.   :93.00   Max.   :8.00  
+                               
+> s100 <- sample100
+> sample100 <- read.spss("sample100.por",FALSE)
+> stopifnot(identical(s100, sample100)) # no need for further summary() etc
+> 
+> pbc <- read.spss("pbc.sav",FALSE)
+> summary(pbc)
+         Length Class  Mode   
+AGE      418    -none- numeric
+ALB      418    -none- numeric
+ALKPHOS  418    -none- numeric
+ASCITES  418    -none- numeric
+BILI     418    -none- numeric
+CHOL     418    -none- numeric
+EDEMA    418    -none- numeric
+EDTRT    418    -none- numeric
+HEPMEG   418    -none- numeric
+TIME     418    -none- numeric
+PLATELET 418    -none- numeric
+PROTIME  418    -none- numeric
+SEX      418    -none- numeric
+SGOT     418    -none- numeric
+SPIDERS  418    -none- numeric
+STAGE    418    -none- numeric
+STATUS   418    -none- numeric
+TRT      418    -none- numeric
+TRIG     418    -none- numeric
+COPPER   418    -none- numeric
+> str(pbc)
+List of 20
+ $ AGE     : num [1:418] 58.8 56.4 70.1 54.7 38.1 ...
+ $ ALB     : num [1:418] 2.6 4.14 3.48 2.54 3.53 3.98 4.09 4 3.08 2.74 ...
+ $ ALKPHOS : num [1:418] 1718 7395 516 6122 671 ...
+ $ ASCITES : num [1:418] 1 0 0 0 0 0 0 0 0 1 ...
+ $ BILI    : num [1:418] 14.5 1.1 1.4 1.8 3.4 0.8 1 0.3 3.2 12.6 ...
+ $ CHOL    : num [1:418] 261 302 176 244 279 248 322 280 562 200 ...
+ $ EDEMA   : num [1:418] 1 0 1 1 0 0 0 0 0 1 ...
+ $ EDTRT   : num [1:418] 1 0 0.5 0.5 0 0 0 0 0 1 ...
+ $ HEPMEG  : num [1:418] 1 1 0 1 1 1 1 0 0 0 ...
+ $ TIME    : num [1:418] 400 4500 1012 1925 1504 ...
+ $ PLATELET: num [1:418] 190 221 151 183 136 -9 204 373 251 302 ...
+ $ PROTIME : num [1:418] 12.2 10.6 12 10.3 10.9 11 9.7 11 11 11.5 ...
+ $ SEX     : num [1:418] 1 1 0 1 1 1 1 1 1 1 ...
+ $ SGOT    : num [1:418] 137.9 113.5 96.1 60.6 113.2 ...
+ $ SPIDERS : num [1:418] 1 1 0 1 1 0 0 0 1 1 ...
+ $ STAGE   : num [1:418] 4 3 4 4 3 3 3 3 2 4 ...
+ $ STATUS  : num [1:418] 1 0 1 1 0 1 0 1 1 1 ...
+ $ TRT     : num [1:418] 1 1 1 1 2 2 2 2 1 2 ...
+ $ TRIG    : num [1:418] 172 88 55 92 72 63 213 189 88 143 ...
+ $ COPPER  : num [1:418] 156 54 210 64 143 50 52 52 79 140 ...
+ - attr(*, "label.table")=List of 20
+  ..$ AGE     : NULL
+  ..$ ALB     : NULL
+  ..$ ALKPHOS : NULL
+  ..$ ASCITES : NULL
+  ..$ BILI    : NULL
+  ..$ CHOL    : NULL
+  ..$ EDEMA   : NULL
+  ..$ EDTRT   : NULL
+  ..$ HEPMEG  : NULL
+  ..$ TIME    : NULL
+  ..$ PLATELET: NULL
+  ..$ PROTIME : NULL
+  ..$ SEX     : NULL
+  ..$ SGOT    : NULL
+  ..$ SPIDERS : NULL
+  ..$ STAGE   : NULL
+  ..$ STATUS  : NULL
+  ..$ TRT     : NULL
+  ..$ TRIG    : NULL
+  ..$ COPPER  : NULL
+> d.pbc <- data.frame(pbc)
+> summary(d.pbc)
+      AGE             ALB           ALKPHOS         ASCITES      
+ Min.   :26.28   Min.   :1.960   Min.   :   -9   Min.   :-9.000  
+ 1st Qu.:42.83   1st Qu.:3.243   1st Qu.:   -9   1st Qu.:-9.000  
+ Median :51.00   Median :3.530   Median : 1009   Median : 0.000  
+ Mean   :50.74   Mean   :3.497   Mean   : 1478   Mean   :-2.225  
+ 3rd Qu.:58.24   3rd Qu.:3.770   3rd Qu.: 1708   3rd Qu.: 0.000  
+ Max.   :78.44   Max.   :4.640   Max.   :13862   Max.   : 1.000  
+      BILI             CHOL            EDEMA            EDTRT       
+ Min.   : 0.300   Min.   :  -9.0   Min.   :0.0000   Min.   :0.0000  
+ 1st Qu.: 0.800   1st Qu.:  -9.0   1st Qu.:0.0000   1st Qu.:0.0000  
+ Median : 1.400   Median : 252.5   Median :0.0000   Median :0.0000  
+ Mean   : 3.221   Mean   : 248.2   Mean   :0.1196   Mean   :0.1005  
+ 3rd Qu.: 3.400   3rd Qu.: 347.8   3rd Qu.:0.0000   3rd Qu.:0.0000  
+ Max.   :28.000   Max.   :1775.0   Max.   :1.0000   Max.   :1.0000  
+     HEPMEG          TIME         PLATELET        PROTIME           SEX        
+ Min.   :-9.0   Min.   :  41   Min.   : -9.0   Min.   : 9.00   Min.   :-9.000  
+ 1st Qu.:-9.0   1st Qu.:1093   1st Qu.:181.0   1st Qu.:10.00   1st Qu.:-9.000  
+ Median : 0.0   Median :1730   Median :248.0   Median :10.60   Median : 1.000  
+ Mean   :-1.9   Mean   :1918   Mean   :250.0   Mean   :10.73   Mean   :-1.622  
+ 3rd Qu.: 1.0   3rd Qu.:2614   3rd Qu.:315.5   3rd Qu.:11.10   3rd Qu.: 1.000  
+ Max.   : 1.0   Max.   :4795   Max.   :721.0   Max.   :18.00   Max.   : 1.000  
+      SGOT           SPIDERS           STAGE              STATUS      
+ Min.   : -9.00   Min.   :-9.000   Min.   :-9.00000   Min.   :0.0000  
+ 1st Qu.: -9.00   1st Qu.:-9.000   1st Qu.:-9.00000   1st Qu.:0.0000  
+ Median : 90.45   Median : 0.000   Median : 3.00000   Median :0.0000  
+ Mean   : 89.20   Mean   :-2.067   Mean   :-0.01914   Mean   :0.3852  
+ 3rd Qu.:135.75   3rd Qu.: 0.000   3rd Qu.: 4.00000   3rd Qu.:1.0000  
+ Max.   :457.25   Max.   : 1.000   Max.   : 4.00000   Max.   :1.0000  
+      TRT              TRIG           COPPER      
+ Min.   :-9.000   Min.   : -9.0   Min.   : -9.00  
+ 1st Qu.:-9.000   1st Qu.: -9.0   1st Qu.: -9.00  
+ Median : 1.000   Median : 85.0   Median : 50.50  
+ Mean   :-1.167   Mean   : 81.2   Mean   : 70.09  
+ 3rd Qu.: 2.000   3rd Qu.:127.8   3rd Qu.:100.75  
+ Max.   : 2.000   Max.   :598.0   Max.   :588.00  
+> pbco <- read.spss("pbcold.sav",FALSE)
+> stopifnot(identical(pbc, pbco))
+> ## summary(pbco)
+> ## str(pbco)
+> ## d.pbco <- data.frame(pbco)
+> ## summary(d.pbco)
+> pbc. <- read.spss("pbc.por",FALSE)
+> summary(pbc.)
+         Length Class  Mode   
+AGE      418    -none- numeric
+ALB      418    -none- numeric
+ALKPHOS  418    -none- numeric
+ASCITES  418    -none- numeric
+BILI     418    -none- numeric
+CHOL     418    -none- numeric
+EDEMA    418    -none- numeric
+EDTRT    418    -none- numeric
+HEPMEG   418    -none- numeric
+TIME     418    -none- numeric
+PLATELET 418    -none- numeric
+PROTIME  418    -none- numeric
+SEX      418    -none- numeric
+SGOT     418    -none- numeric
+SPIDERS  418    -none- numeric
+STAGE    418    -none- numeric
+STATUS   418    -none- numeric
+TRT      418    -none- numeric
+TRIG     418    -none- numeric
+COPPER   418    -none- numeric
+> str(pbc.) # has variable.labels
+List of 20
+ $ AGE     : num [1:418] 58.8 56.4 70.1 54.7 38.1 ...
+ $ ALB     : num [1:418] 2.6 4.14 3.48 2.54 3.53 3.98 4.09 4 3.08 2.74 ...
+ $ ALKPHOS : num [1:418] 1718 7395 516 6122 671 ...
+ $ ASCITES : num [1:418] 1 0 0 0 0 0 0 0 0 1 ...
+ $ BILI    : num [1:418] 14.5 1.1 1.4 1.8 3.4 0.8 1 0.3 3.2 12.6 ...
+ $ CHOL    : num [1:418] 261 302 176 244 279 248 322 280 562 200 ...
+ $ EDEMA   : num [1:418] 1 0 1 1 0 0 0 0 0 1 ...
+ $ EDTRT   : num [1:418] 1 0 0.5 0.5 0 0 0 0 0 1 ...
+ $ HEPMEG  : num [1:418] 1 1 0 1 1 1 1 0 0 0 ...
+ $ TIME    : num [1:418] 400 4500 1012 1925 1504 ...
+ $ PLATELET: num [1:418] 190 221 151 183 136 -9 204 373 251 302 ...
+ $ PROTIME : num [1:418] 12.2 10.6 12 10.3 10.9 11 9.7 11 11 11.5 ...
+ $ SEX     : num [1:418] 1 1 0 1 1 1 1 1 1 1 ...
+ $ SGOT    : num [1:418] 137.9 113.5 96.1 60.6 113.2 ...
+ $ SPIDERS : num [1:418] 1 1 0 1 1 0 0 0 1 1 ...
+ $ STAGE   : num [1:418] 4 3 4 4 3 3 3 3 2 4 ...
+ $ STATUS  : num [1:418] 1 0 1 1 0 1 0 1 1 1 ...
+ $ TRT     : num [1:418] 1 1 1 1 2 2 2 2 1 2 ...
+ $ TRIG    : num [1:418] 172 88 55 92 72 63 213 189 88 143 ...
+ $ COPPER  : num [1:418] 156 54 210 64 143 50 52 52 79 140 ...
+ - attr(*, "label.table")=List of 20
+  ..$ AGE     : NULL
+  ..$ ALB     : NULL
+  ..$ ALKPHOS : NULL
+  ..$ ASCITES : NULL
+  ..$ BILI    : NULL
+  ..$ CHOL    : NULL
+  ..$ EDEMA   : NULL
+  ..$ EDTRT   : NULL
+  ..$ HEPMEG  : NULL
+  ..$ TIME    : NULL
+  ..$ PLATELET: NULL
+  ..$ PROTIME : NULL
+  ..$ SEX     : NULL
+  ..$ SGOT    : NULL
+  ..$ SPIDERS : NULL
+  ..$ STAGE   : NULL
+  ..$ STATUS  : NULL
+  ..$ TRT     : NULL
+  ..$ TRIG    : NULL
+  ..$ COPPER  : NULL
+ - attr(*, "variable.labels")= Named chr [1:20] " " " " " " " " ...
+  ..- attr(*, "names")= chr [1:20] "AGE" "ALB" "ALKPHOS" "ASCITES" ...
+> stopifnot(all.equal(d.pbc, data.frame(pbc.), tolerance = 1e-15))
+> 
+> electric.s  <- read.spss("electric.sav",TRUE,TRUE)
+> electric.p  <- read.spss("electric.por",TRUE,TRUE)
+> electric.s4 <- read.spss("electric.sav",TRUE,TRUE,max.value.labels = 4)
+> summary(electric.s)
+     CASEID                 FIRSTCHD        AGE           DBP58       
+ Min.   :   1.00   NO CHD       :120   Min.   :40.0   Min.   : 65.00  
+ 1st Qu.:  73.75   SUDDEN  DEATH: 36   1st Qu.:45.0   1st Qu.: 80.00  
+ Median : 144.50   NONFATALMI   : 72   Median :48.0   Median : 87.00  
+ Mean   : 572.94   FATAL   MI   :  9   Mean   :47.8   Mean   : 88.79  
+ 3rd Qu.:1042.25   OTHER   CHD  :  3   3rd Qu.:51.0   3rd Qu.: 96.50  
+ Max.   :2098.00                       Max.   :54.0   Max.   :160.00  
+                                                      NA's   :1       
+     EDUYR           CHOL58          CGT58            HT58      
+ Min.   : 6.00   Min.   :106.0   Min.   : 0.00   Min.   :60.90  
+ 1st Qu.: 9.75   1st Qu.:228.8   1st Qu.: 0.00   1st Qu.:66.50  
+ Median :12.00   Median :261.0   Median :10.00   Median :68.15  
+ Mean   :11.66   Mean   :264.1   Mean   :11.58   Mean   :68.51  
+ 3rd Qu.:14.00   3rd Qu.:293.2   3rd Qu.:20.00   3rd Qu.:70.20  
+ Max.   :18.00   Max.   :515.0   Max.   :60.00   Max.   :77.00  
+ NA's   :28                      NA's   :1                      
+      WT58           DAYOFWK     VITAL10    FAMHXCVR       CHD     
+ Min.   :123.0   SUNDAY  : 19   ALIVE:179   NO :178   Min.   :0.0  
+ 1st Qu.:156.0   TUESDAY : 19   DEAD : 61   YES: 62   1st Qu.:0.0  
+ Median :171.0   WEDNSDAY: 17                         Median :0.5  
+ Mean   :173.4   SATURDAY: 16                         Mean   :0.5  
+ 3rd Qu.:187.0   THURSDAY: 15                         3rd Qu.:1.0  
+ Max.   :278.0   (Other) : 24                         Max.   :1.0  
+                 NA's    :130                                      
+> ii <- c(2,10)
+> vl <- list(FIRSTCHD = c("OTHER   CHD"= 6, "FATAL   MI"= 5, "NONFATALMI"= 3,
++ 			"SUDDEN  DEATH" = 2, "NO CHD" = 1),
++ 	   DAYOFWK = c(SATURDAY=7, FRIDAY=6, THURSDAY=5,
++ 		       WEDNSDAY=4, TUESDAY=3, MONDAY=2, SUNDAY=1))
+> stopifnot(identical(electric.s,	     electric.p),
++ 	  identical(electric.s[-ii], electric.s4[-ii]),
++ 	  identical(vl, lapply(electric.s4[ii], attr, "value.labels")),
++ 	  identical(lapply(vl, names),
++ 		    lapply(electric.s[ii], function(.) rev(levels(.)))))
+> 
+> 
+> ## after "long label patch":
+> 
+> invisible(Sys.setlocale (locale="C")) ## to resolve locale problem
+> ldat <- read.spss("spss_long.sav", to.data.frame=TRUE)
+> ldat
+  variable1 variable2
+1         1         1
+2         2         1
+3         2         3
+> nnms <- nms <- names(ldat)
+> names(nnms) <- nms
+> stopifnot(identical(nms,  c("variable1", "variable2")),
++ 	  identical(nnms, attr(ldat, "variable.labels")))
+> 
+> proc.time()
+   user  system elapsed 
+  0.732   0.076   0.785 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/arff.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/arff.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/arff.R	(revision 2476)
@@ -0,0 +1,5 @@
+library("foreign")
+df <- read.arff("contact-lenses.arff")
+summary(df)
+str(df)
+q()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/ex1-51.mtp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/ex1-51.mtp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/ex1-51.mtp	(revision 2476)
@@ -0,0 +1,15 @@
+Minitab Portable Worksheet P1.1             1994 522 Release 9.1               .
+%      3      1     26      0 control                                          .
+ 1.202599976E+03 8.300999756E+02 3.723999939E+02 3.454999695E+02 3.211999817E+02
+ 2.442999878E+02 1.629999847E+02 1.477999878E+02 9.499999237E+01 8.699999237E+01
+ 8.119999695E+01 6.849999237E+01 4.729999924E+01 4.109999847E+01 3.659999847E+01
+ 2.899999809E+01 2.859999847E+01 2.629999924E+01 2.609999847E+01 2.439999962E+01
+ 2.169999886E+01 1.729999924E+01 1.149999905E+01 4.899999619E+00 4.899999619E+00
+ 0.999999940E+00                                                               .
+%      3      2     26      0 seeded                                           .
+ 2.745599854E+03 1.697799927E+03 1.655999878E+03 9.779999390E+02 7.033999634E+02
+ 4.890999756E+02 4.299999695E+02 3.340999756E+02 3.027999878E+02 2.746999817E+02
+ 2.746999817E+02 2.549999847E+02 2.424999847E+02 2.006999969E+02 1.985999908E+02
+ 1.295999908E+02 1.189999924E+02 1.182999954E+02 1.152999954E+02 9.239999390E+01
+ 4.059999847E+01 3.269999695E+01 3.139999962E+01 1.749999809E+01 7.699999809E+00
+ 4.099999905E+00                                                               .
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/OneVarTwoValLabels.dta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/OneVarTwoValLabels.dta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/mval_bug.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/mval_bug.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/mval_bug.Rout.save	(revision 2476)
@@ -0,0 +1,143 @@
+
+R Under development (unstable) (2013-01-01 r61505) -- "Unsuffered Consequences"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-apple-darwin11.4.2/x86_64 (64-bit)
+
+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.
+
+> library(foreign)
+> 
+> mydata <- read.spss("mval_bug.sav", use.value.labels = TRUE,
++                     to.data.frame = TRUE, use.missings = TRUE)
+re-encoding from latin1
+Warning message:
+In read.spss("mval_bug.sav", use.value.labels = TRUE, to.data.frame = TRUE,  :
+  mval_bug.sav: Unrecognized record type 7, subtype 18 encountered in system file
+> 
+> levels(mydata$Q1_MISSING_NONE)
+[1] "(-3) Missing"            "(-2) Don't know"        
+[3] "(-1) Refused"            "(1) Approve STRONGLY"   
+[5] "(2) Approve SOMEWHAT"    "(3) Disapprove SOMEWHAT"
+[7] "(4) Disapprove STRONGLY" "(99) Coding error"      
+> table(mydata$Q1_MISSING_NONE)
+
+           (-3) Missing         (-2) Don't know            (-1) Refused 
+                     17                       8                       5 
+   (1) Approve STRONGLY    (2) Approve SOMEWHAT (3) Disapprove SOMEWHAT 
+                    142                     104                      71 
+(4) Disapprove STRONGLY       (99) Coding error 
+                    250                       3 
+> 
+> levels(mydata$Q1_MISSING_1)
+[1] "(-3) Missing"            "(-2) Don't know"        
+[3] "(1) Approve STRONGLY"    "(2) Approve SOMEWHAT"   
+[5] "(3) Disapprove SOMEWHAT" "(4) Disapprove STRONGLY"
+[7] "(99) Coding error"      
+> table(mydata$Q1_MISSING_1)
+
+           (-3) Missing         (-2) Don't know    (1) Approve STRONGLY 
+                     17                       8                     142 
+   (2) Approve SOMEWHAT (3) Disapprove SOMEWHAT (4) Disapprove STRONGLY 
+                    104                      71                     250 
+      (99) Coding error 
+                      3 
+> 
+> levels(mydata$Q1_MISSING_2)
+[1] "(-3) Missing"            "(1) Approve STRONGLY"   
+[3] "(2) Approve SOMEWHAT"    "(3) Disapprove SOMEWHAT"
+[5] "(4) Disapprove STRONGLY" "(99) Coding error"      
+> table(mydata$Q1_MISSING_2)
+
+           (-3) Missing    (1) Approve STRONGLY    (2) Approve SOMEWHAT 
+                     17                     142                     104 
+(3) Disapprove SOMEWHAT (4) Disapprove STRONGLY       (99) Coding error 
+                     71                     250                       3 
+> 
+> levels(mydata$Q1_MISSING_3)
+[1] "(1) Approve STRONGLY"    "(2) Approve SOMEWHAT"   
+[3] "(3) Disapprove SOMEWHAT" "(4) Disapprove STRONGLY"
+[5] "(99) Coding error"      
+> table(mydata$Q1_MISSING_3)
+
+   (1) Approve STRONGLY    (2) Approve SOMEWHAT (3) Disapprove SOMEWHAT 
+                    142                     104                      71 
+(4) Disapprove STRONGLY       (99) Coding error 
+                    250                       3 
+> 
+> levels(mydata$Q1_MISSING_RANGE)
+[1] "(1) Approve STRONGLY"    "(2) Approve SOMEWHAT"   
+[3] "(3) Disapprove SOMEWHAT" "(4) Disapprove STRONGLY"
+[5] "(99) Coding error"      
+> table(mydata$Q1_MISSING_RANGE)
+
+   (1) Approve STRONGLY    (2) Approve SOMEWHAT (3) Disapprove SOMEWHAT 
+                    142                     104                      71 
+(4) Disapprove STRONGLY       (99) Coding error 
+                    250                       3 
+> 
+> levels(mydata$Q1_MISSING_LOW)
+[1] "(1) Approve STRONGLY"    "(2) Approve SOMEWHAT"   
+[3] "(3) Disapprove SOMEWHAT" "(4) Disapprove STRONGLY"
+[5] "(99) Coding error"      
+> table(mydata$Q1_MISSING_LOW)
+
+   (1) Approve STRONGLY    (2) Approve SOMEWHAT (3) Disapprove SOMEWHAT 
+                    142                     104                      71 
+(4) Disapprove STRONGLY       (99) Coding error 
+                    250                       3 
+> 
+> levels(mydata$Q1_MISSING_HIGH)
+[1] "(-1) Coding error"       "(1) Approve STRONGLY"   
+[3] "(2) Approve SOMEWHAT"    "(3) Disapprove SOMEWHAT"
+[5] "(4) Disapprove STRONGLY"
+> table(mydata$Q1_MISSING_HIGH)
+
+      (-1) Coding error    (1) Approve STRONGLY    (2) Approve SOMEWHAT 
+                      3                     142                     104 
+(3) Disapprove SOMEWHAT (4) Disapprove STRONGLY 
+                     71                     250 
+> 
+> levels(mydata$Q1_MISSING_RANGE_1)
+[1] "(1) Approve STRONGLY"    "(2) Approve SOMEWHAT"   
+[3] "(3) Disapprove SOMEWHAT" "(4) Disapprove STRONGLY"
+> table(mydata$Q1_MISSING_RANGE_1)
+
+   (1) Approve STRONGLY    (2) Approve SOMEWHAT (3) Disapprove SOMEWHAT 
+                    142                     104                      71 
+(4) Disapprove STRONGLY 
+                    250 
+> 
+> levels(mydata$Q1_MISSING_LOW_1)
+[1] "(1) Approve STRONGLY"    "(2) Approve SOMEWHAT"   
+[3] "(3) Disapprove SOMEWHAT" "(4) Disapprove STRONGLY"
+> table(mydata$Q1_MISSING_LOW_1)
+
+   (1) Approve STRONGLY    (2) Approve SOMEWHAT (3) Disapprove SOMEWHAT 
+                    142                     104                      71 
+(4) Disapprove STRONGLY 
+                    250 
+> 
+> levels(mydata$Q1_MISSING_HIGH_1)
+[1] "(1) Approve STRONGLY"    "(2) Approve SOMEWHAT"   
+[3] "(3) Disapprove SOMEWHAT" "(4) Disapprove STRONGLY"
+> table(mydata$Q1_MISSING_HIGH_1)
+
+   (1) Approve STRONGLY    (2) Approve SOMEWHAT (3) Disapprove SOMEWHAT 
+                    142                     104                      71 
+(4) Disapprove STRONGLY 
+                    250 
+> 
+> proc.time()
+   user  system elapsed 
+  0.284   0.029   0.300 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/electric.sav
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/electric.sav
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/testEmpty.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/testEmpty.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/testEmpty.Rout.save	(revision 2476)
@@ -0,0 +1,163 @@
+
+R Under development (unstable) (2013-07-06 r63202) -- "Unsuffered Consequences"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: x86_64-apple-darwin12.4.0 (64-bit)
+
+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.
+
+> ## regression test for PR#15346
+> 
+> library(foreign)
+> 
+> ## The testEmpty.xpt dataset was created using the following code:
+> ## library(SASxport)
+> ## data(iris)
+> ## write.xport(Iris1=iris[1:2,],    # two row dataset
+> ##             empty=data.frame(),  # empty dataset
+> ##             Iris2=iris[3:4,],    # two row dataset
+> ##             file="testEmpty.xpt",
+> ##             autogen.formats=FALSE # prevent autocreation of FORMATS dataset
+> ##             )
+> 
+> ## Test that lookup.xport retrieves all three datsets
+> empty.f <- lookup.xport(file="testEmpty.xpt")
+> empty.f
+$IRIS1
+$IRIS1$headpad
+[1] 1200
+
+$IRIS1$type
+[1] "numeric"   "numeric"   "numeric"   "numeric"   "character"
+
+$IRIS1$width
+[1] 8 8 8 8 8
+
+$IRIS1$index
+[1] 1 2 3 4 5
+
+$IRIS1$position
+[1]  0  8 16 24 32
+
+$IRIS1$name
+[1] "SEPAL_LE" "SEPAL_WI" "PETAL_LE" "PETAL_WI" "SPECIES" 
+
+$IRIS1$label
+[1] "" "" "" "" ""
+
+$IRIS1$format
+[1] "" "" "" "" ""
+
+$IRIS1$sexptype
+[1] 14 14 14 14 16
+
+$IRIS1$tailpad
+[1] 0
+
+$IRIS1$length
+[1] 2
+
+
+$EMPTY
+$EMPTY$headpad
+[1] 480
+
+$EMPTY$type
+character(0)
+
+$EMPTY$width
+integer(0)
+
+$EMPTY$index
+integer(0)
+
+$EMPTY$position
+integer(0)
+
+$EMPTY$name
+character(0)
+
+$EMPTY$label
+character(0)
+
+$EMPTY$format
+character(0)
+
+$EMPTY$sexptype
+integer(0)
+
+$EMPTY$tailpad
+[1] 0
+
+$EMPTY$length
+[1] 0
+
+
+$IRIS2
+$IRIS2$headpad
+[1] 1200
+
+$IRIS2$type
+[1] "numeric"   "numeric"   "numeric"   "numeric"   "character"
+
+$IRIS2$width
+[1] 8 8 8 8 8
+
+$IRIS2$index
+[1] 1 2 3 4 5
+
+$IRIS2$position
+[1]  0  8 16 24 32
+
+$IRIS2$name
+[1] "SEPAL_LE" "SEPAL_WI" "PETAL_LE" "PETAL_WI" "SPECIES" 
+
+$IRIS2$label
+[1] "" "" "" "" ""
+
+$IRIS2$format
+[1] "" "" "" "" ""
+
+$IRIS2$sexptype
+[1] 14 14 14 14 16
+
+$IRIS2$tailpad
+[1] 0
+
+$IRIS2$length
+[1] 2
+
+
+> stopifnot(length(empty.f) == 3L)
+> 
+> 
+> dat.f <- read.xport(file="testEmpty.xpt")
+> dat.f
+$IRIS1
+  SEPAL_LE SEPAL_WI PETAL_LE PETAL_WI SPECIES
+1      5.1      3.5      1.4      0.2  setosa
+2      4.9      3.0      1.4      0.2  setosa
+
+$EMPTY
+data frame with 0 columns and 0 rows
+
+$IRIS2
+  SEPAL_LE SEPAL_WI PETAL_LE PETAL_WI SPECIES
+1      4.7      3.2      1.3      0.2  setosa
+2      4.6      3.1      1.5      0.2  setosa
+
+> stopifnot(length(dat.f)==3)
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  0.220   0.027   0.231 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/datefactor.dta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/datefactor.dta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/minitab.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/minitab.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/minitab.R	(revision 2476)
@@ -0,0 +1,7 @@
+library(foreign)
+ex1.51 <- read.mtp("ex1-51.mtp")
+summary(ex1.51)
+str(ex1.51)
+ex1.51 <- data.frame(ex1.51)
+summary(ex1.51)
+q()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/spss.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/spss.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/spss.R	(revision 2476)
@@ -0,0 +1,52 @@
+library(foreign)
+
+sample100 <- read.spss("sample100.sav",FALSE)
+summary(sample100)
+str(sample100)
+d.sample100 <- data.frame(sample100)
+summary(d.sample100)
+s100 <- sample100
+sample100 <- read.spss("sample100.por",FALSE)
+stopifnot(identical(s100, sample100)) # no need for further summary() etc
+
+pbc <- read.spss("pbc.sav",FALSE)
+summary(pbc)
+str(pbc)
+d.pbc <- data.frame(pbc)
+summary(d.pbc)
+pbco <- read.spss("pbcold.sav",FALSE)
+stopifnot(identical(pbc, pbco))
+## summary(pbco)
+## str(pbco)
+## d.pbco <- data.frame(pbco)
+## summary(d.pbco)
+pbc. <- read.spss("pbc.por",FALSE)
+summary(pbc.)
+str(pbc.) # has variable.labels
+stopifnot(all.equal(d.pbc, data.frame(pbc.), tolerance = 1e-15))
+
+electric.s  <- read.spss("electric.sav",TRUE,TRUE)
+electric.p  <- read.spss("electric.por",TRUE,TRUE)
+electric.s4 <- read.spss("electric.sav",TRUE,TRUE,max.value.labels = 4)
+summary(electric.s)
+ii <- c(2,10)
+vl <- list(FIRSTCHD = c("OTHER   CHD"= 6, "FATAL   MI"= 5, "NONFATALMI"= 3,
+			"SUDDEN  DEATH" = 2, "NO CHD" = 1),
+	   DAYOFWK = c(SATURDAY=7, FRIDAY=6, THURSDAY=5,
+		       WEDNSDAY=4, TUESDAY=3, MONDAY=2, SUNDAY=1))
+stopifnot(identical(electric.s,	     electric.p),
+	  identical(electric.s[-ii], electric.s4[-ii]),
+	  identical(vl, lapply(electric.s4[ii], attr, "value.labels")),
+	  identical(lapply(vl, names),
+		    lapply(electric.s[ii], function(.) rev(levels(.)))))
+
+
+## after "long label patch":
+
+invisible(Sys.setlocale (locale="C")) ## to resolve locale problem
+ldat <- read.spss("spss_long.sav", to.data.frame=TRUE)
+ldat
+nnms <- nms <- names(ldat)
+names(nnms) <- nms
+stopifnot(identical(nms,  c("variable1", "variable2")),
+	  identical(nnms, attr(ldat, "variable.labels")))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/electric.por
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/electric.por	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/electric.por	(revision 2476)
@@ -0,0 +1,123 @@
+�����@����@����@����@@@@@@@@@@@@@@@@@@@@ASCII SPSS PORT FILE                    
+00000-0000-0000-0000--------------------!3#))0303300/240&),%00000000000000000000
+0200002'220'&)3000#0000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst
+uvwxyz .<(+0&[]!$*);^-/|,%_>?`:#@'="000000~000000000000000000000{}\0000000000000
+00000000000000000000000000000000000000000000000000000000SPSSPORTA8/200201116/171
+348112/SPSS for MS WINDOWS Release 10.0311/                       SPSS/PC+4D/5B/
+70/6/CASEID5/4/0/5/4/0/CQ/CASE IDENTIFICATION NUMBER70/8/FIRSTCHD5/1/0/5/1/0/CF/
+FIRST CHD EVENT70/3/AGE5/2/0/5/2/0/CC/AGE AT ENTRY70/5/DBP585/3/0/5/3/0/C11/AVER
+AGE DIAST BLOOD PRESSURE 5870/5/EDUYR5/2/0/5/2/0/CI/YEARS OF EDUCATION70/6/CHOL5
+85/3/0/5/3/0/C13/SERUM CHOLESTEROL 58 -- MG PER DL70/5/CGT585/2/0/5/2/0/C12/NO O
+F CIGARETTES PER DAY IN 195870/4/HT585/5/1/5/5/1/C16/STATURE, 1958 -- TO NEAREST
+ 0.1 INCH70/4/WT585/3/0/5/3/0/CO/BODY WEIGHT, 1958 -- LBS70/7/DAYOFWK5/1/0/5/1/0
+/89/CC/DAY OF DEATH70/7/VITAL105/1/0/5/1/0/CJ/STATUS AT TEN YEARS71/8/FAMHXCVR1/
+1/0/1/1/0/CL/FAMILY HISTORY OF CHD70/3/CHD5/1/0/5/1/0/C15/INCIDENCE OF CORONARY 
+HEART DISEASED1/8/FIRSTCHD5/1/6/NO CHD2/D/SUDDEN  DEATH3/A/NONFATALMI5/A/FATAL  
+ MI6/B/OTHER   CHDD1/7/DAYOFWK8/1/6/SUNDAY2/6/MONDAY3/7/TUESDAY4/8/WEDNSDAY5/8/T
+HURSDAY6/6/FRIDAY7/8/SATURDAY9/7/MISSINGD1/7/VITAL102/0/5/ALIVE1/4/DEADD1/8/FAMH
+XCVR2/1/N2/NO1/Y3/YESFD/3/1A/2A/G/AL/0/28.O/6A/9/0/1/Y1/10/3/1J/2R/B/86/20/2C.6/
+6O/5/0/1/N1/1N/2/1D/2T/C/8M/0/29/5C/7/1/1/N1/2O/3/1K/3F/8/95/F/22.F/52/4/0/1/Y1/
+2T/2/1D/3K/*.A1/P/28/4S/2/1/1/N1/3C/3/1K/2S/8/8L/10/28/4M/1/1/1/N1/3R/3/1F/2A/*.
+72/0/26.F/6G/9/0/1/N1/4C/3/1H/2J/9/CC/10/27/6D/1/0/1/N1/51/2/1N/3C/C/76/0/27/5M/
+3/1/1/N1/53/2/1J/39/E/8B/A/24.9/5C/5/1/1/Y1/5B/6/1O/33/9/8P/0/25.F/5F/7/1/1/Y1/5
+I/2/1I/2D/B/57/K/2C.O/5B/4/1/1/N1/5S/3/1M/2N/9/8T/F/28.O/4K/4/1/1/Y1/60/5/1D/3S/
+B/BJ/K/27.3/5I/5/1/1/Y1/76/3/1B/32/A/7I/K/27.C/5I/9/0/1/Y1/9L/3/1I/32/C/9T/K/27.
+O/57/9/0/1/N1/AE/3/1N/31/7/9M/0/20.R/4T/9/0/1/N1/AH/3/1K/2S/*.8K/K/27.F/5O/5/1/1
+/N1/BE/2/1M/3H/*.BL/0/28/5A/6/1/1/Y1/BF/2/1E/3F/*.7R/0/26.O/53/6/1/1/Y1/BJ/3/1M/
+2N/E/9M/A/24.C/54/5/0/1/N1/CO/3/1I/2P/E/8G/0/27/67/3/1/1/Y1/D9/3/1H/2K/9/AC/K/2A
+.I/5C/9/0/1/N1/DE/3/1G/36/8/9L/K/29/79/7/0/1/N1/E9/3/1O/30/8/7P/0/2E.R/8E/6/0/1/
+N1/EE/2/1J/41/A/97/0/23.O/64/3/1/1/N1/FA/3/1N/39/*.93/10/27.9/5I/4/0/1/N1/FH/2/1
+O/38/8/75/K/27.C/5L/4/1/1/N1/FK/3/1C/2Q/D/7P/10/26.3/68/9/0/1/N1/G2/2/1O/2R/B/9D
+/M/28.R/61/2/1/1/Y1/G5/2/1K/3K/D/6R/K/2D.O/6Q/1/1/1/Y1/HO/3/1H/3D/E/AR/A/25.O/60
+/1/1/1/N1/IS/3/1E/2A/D/90/K/24.I/4C/7/0/1/N1/J4/3/1L/28/A/9C/0/29.I/67/9/0/1/N1/
+M8/3/1F/3D/8/9O/0/2D.L/70/9/0/1/N1/MD/3/1H/30/A/68/0/2A.C/66/2/0/1/Y1/MH/2/1N/38
+/B/78/0/2C.R/60/2/1/1/N1/NA/3/1H/2I/B/AE/K/27.R/4N/2/0/1/Y1/OG/2/1K/2C/8/6E/O/29
+.C/5A/1/1/1/N1/OR/2/1N/2K/C/CF/K/25.L/59/1/1/1/N1/P0/3/1L/2R/9/BE/C/2A.6/6L/3/0/
+1/Y1/P2/2/1J/45/*.B8/0/27.F/6K/3/1/1/N1/Q7/2/1I/2K/8/9P/0/26.L/56/4/1/1/N1/QF/3/
+1L/2Q/A/8I/10/28/4S/9/0/1/Y1/QP/3/1L/37/9/86/0/2A.3/6K/3/0/1/Y1/R7/5/1G/2K/D/87/
+K/29.O/5I/7/1/1/N1/SG/2/1H/3P/A/C8/6/27.F/60/7/1/1/N1/SK/2/1E/2N/*.9F/K/29.6/5G/
+4/1/1/N1/101/3/1D/32/9/BJ/A/26.F/59/9/0/1/N1/10C/3/1B/37/9/7I/K/29.O/66/3/0/1/N1
+/10D/2/1J/2O/8/3G/0/26.C/66/5/1/1/N1/11G/3/1B/2N/C/E5/K/26.R/61/9/0/1/N1/11I/3/1
+O/2F/8/BM/A/28.L/55/9/0/1/N1/121/2/1L/3F/B/9C/K/2A.F/5L/1/1/1/Y1/12K/3/1L/2D/8/7
+7/K/2A.R/5I/6/0/1/Y1/12Q/3/1F/4D/A/6Q/0/2A.O/6M/9/0/1/N1/13I/3/1M/2T/E/9N/10/2B.
+I/6K/4/1/1/N1/13O/5/1L/2K/B/5Q/10/29/5B/7/1/1/N1/144/3/1J/30/A/82/G/26.F/4M/7/1/
+1/N1/14L/2/1L/38/8/98/0/26.F/54/6/1/1/N1/14Q/2/1L/2P/9/95/K/28.I/51/4/1/1/Y1/156
+/2/1F/36/G/AF/K/27.F/47/1/1/1/N1/15B/3/1B/2R/C/6P/K/2D.6/6B/3/0/1/Y1/160/3/1M/2L
+/E/8D/1A/2A.L/6D/6/0/1/Y1/16B/3/1J/2I/C/8K/0/29.C/5O/9/0/1/N1/17C/3/1L/2K/8/6Q/K
+/23.C/43/1/0/1/N1/18C/3/1O/3D/8/H5/0/24.F/66/2/0/1/Y1/18P/3/1I/2K/A/82/K/2B.6/5E
+/5/0/1/N1/1AH/2/1O/2K/I/9K/1A/2A.I/56/4/1/1/N1/1AI/3/1O/30/D/7I/B/2B.6/59/9/0/1/
+Y1/1BN/2/1F/3A/8/9C/0/28.9/5L/4/1/1/N1/1D9/2/1M/2T/A/7L/K/27.F/5H/6/1/1/N1/1EE/5
+/1O/25/6/7P/K/28.6/51/3/1/1/Y1/1F0/3/1F/37/D/7P/0/27.F/4I/9/0/1/Y1/1F2/3/1K/32/I
+/AM/P/2A.6/7J/2/1/1/N1/1FK/3/1H/2H/*.64/0/2E.F/6F/9/0/1/N1/1GJ/2/1H/2H/*.8O/K/29
+.C/5B/1/1/1/N1/1GL/5/1F/2C/*.AS/K/29.C/5P/5/1/1/N1/1HK/2/1I/2K/C/A8/10/29.L/5I/7
+/1/1/N1/1IM/3/1L/2Q/G/8O/F/2C/5T/5/1/1/N1/1IQ/3/1J/2H/8/91/A/27/52/9/0/1/N1/1IR/
+5/1F/2T/G/82/K/2A.6/6A/1/1/1/N1/1JE/5/1O/38/*.8O/2/28/5I/4/1/1/N1/1L1/3/1B/2M/C/
+98/K/26.F/4S/9/0/1/N1/1L2/3/1M/2J/8/7A/I/2B/62/1/0/1/Y1/1M7/2/1L/2N/G/8G/0/27.O/
+5T/1/1/1/N1/1N0/3/1D/2T/C/5Q/P/28.6/5S/7/0/1/N1/1N8/6/1K/2F/*.9M/A/2A.O/4N/2/1/1
+/Y1/1NA/5/1C/31/C/6P/K/27.L/63/7/1/1/N1/1O4/3/1M/38/C/7A/K/28.I/5F/9/0/1/Y1/1O7/
+3/1B/2K/G/A0/1A/29.I/56/9/0/1/N1/1Q5/3/1N/2R/F/CS/0/29.L/5P/1/0/1/Y1/1Q9/3/1A/2G
+/B/C6/0/26.O/5N/2/0/1/Y1/1RC/3/1M/2P/B/54/0/2B/7N/9/0/1/N1/1RM/3/1M/2K/A/89/0/29
+.6/5D/9/0/1/N1/1S0/3/1M/2I/8/AM/K/26.R/59/9/0/1/N1/1SJ/2/1J/2R/*.7P/0/2B.I/5B/7/
+1/1/N1/1ST/3/1L/2O/8/B0/C/24.3/4J/9/0/1/N1/1TG/3/1J/3N/9/AF/0/27.3/5E/9/0/1/Y1/1
+TK/2/1B/2B/A/82/0/27/67/3/1/1/N1/1TS/3/1B/2A/9/6I/F/26.F/4Q/9/0/1/N1/207/3/1G/3I
+/C/8O/10/26.9/59/9/0/1/N1/20B/2/1I/3R/*.7P/K/2C.C/6F/5/1/1/Y1/21I/3/1L/2P/C/AF/0
+/28.6/56/9/0/1/Y1/21N/5/1L/2N/E/6I/0/27.I/5F/6/1/1/N1/21R/3/1F/3J/9/7A/K/28.R/5L
+/4/1/1/Y1/22J/3/1C/2F/B/B8/K/28/4K/1/0/1/N1/22K/3/1O/2P/A/82/0/2B.C/75/5/1/1/Y1/
+22T/3/1F/39/A/BS/0/24.F/5H/3/0/1/N1/231/3/1H/2L/F/7I/0/25.R/57/7/0/1/N1/247/3/1M
+/40/9/AN/K/29.9/63/4/1/1/N1/24A/2/1I/2T/8/6B/P/2D/6T/6/1/1/Y1/251/2/1L/2F/8/92/0
+/26.9/5L/6/1/1/N1/25M/2/1O/2F/A/92/10/2B/71/1/1/1/N1/26Q/3/1G/3K/B/8G/0/28.3/7C/
+2/0/1/Y1/279/3/1N/3H/E/8G/A/29/55/9/0/1/N1/27J/3/1I/2R/9/82/K/27/5K/5/0/1/Y1/286
+/2/1H/2L/C/7H/K/29.F/54/2/1/1/N1/28A/3/1H/2R/C/AG/K/27.L/6H/7/1/1/N1/29S/6/1A/5A
+/*.63/0/2H/98/3/1/1/N1/1/1/1L/2K/G/90/0/28.6/5Q/9/0/1/N0/3/1/1N/38/H/8A/10/24.6/
+4L/3/0/1/Y0/4/1/1J/2K/G/9K/0/28.O/62/9/0/1/N0/5/1/1D/2K/*.8T/I/29.O/5L/9/0/1/N0/
+6/1/1J/2I/C/AT/0/2A.C/62/9/0/1/N0/7/1/1K/3K/F/93/1A/2G/7C/5/0/1/N0/8/1/1O/2F/G/A
+1/0/27.O/53/9/0/1/N0/9/1/1O/2F/I/6A/0/2E/6A/9/0/1/N0/B/1/1G/2R/G/6P/0/2A/67/4/0/
+1/N0/C/1/1O/*.G/70/F/2C.L/5A/7/0/1/N0/E/1/1L/3J/E/77/0/2A.6/5R/4/0/1/N0/G/1/1J/2
+G/D/7R/0/2B.O/60/9/0/1/N0/I/1/1C/34/E/5P/F/27.I/5L/9/0/1/N0/K/1/1C/2I/G/AT/3/27/
+6B/9/0/1/N0/L/1/1I/3F/E/9A/K/26.F/56/1/0/1/N0/M/1/1E/2Q/G/9Q/9/2D.F/7D/9/0/1/N0/
+N/1/1F/2Q/D/D3/F/25.F/5S/9/0/1/N0/O/1/1O/2Q/D/B0/0/2B.F/7C/9/0/1/Y0/P/1/1O/2O/H/
+CD/0/26.F/5D/9/0/1/N0/Q/1/1H/37/C/A8/K/26.O/5E/9/0/1/N0/R/1/1I/30/H/90/0/2A.C/54
+/9/0/1/N0/S/1/1H/32/G/9C/F/28.R/52/9/0/1/N0/12/1/1N/38/F/7T/0/27.O/5I/9/0/1/N0/1
+3/1/1H/3P/G/91/10/25.F/5M/3/0/1/N0/14/1/1H/33/C/9D/K/29.F/5D/1/0/1/N0/15/1/1A/37
+/A/6J/0/2C.6/75/7/0/1/Y0/17/1/1J/3F/9/76/6/28.F/5M/9/0/1/Y0/18/1/1M/30/E/7N/4/2A
+/4K/9/0/1/N0/19/1/1C/38/C/C3/0/26.F/5H/9/0/1/N0/1A/1/1O/30/A/81/K/25/45/9/0/1/N0
+/1B/1/1C/2F/C/9A/F/28.6/45/9/0/1/N0/1C/1/1H/2H/C/AE/0/2C.6/4L/9/0/1/N0/1D/1/1E/2
+8/*.8A/0/24.F/4K/9/0/1/Y0/1E/1/1C/37/C/91/K/28.F/56/9/0/1/Y0/1F/1/1C/2K/*.6R/K/2
+7.F/5I/9/0/1/Y0/1G/1/1F/25/9/7R/K/2A/50/9/0/1/N0/1H/1/1K/25/E/8G/5/2B/6D/9/0/1/Y
+0/1J/1/1L/30/8/BE/K/2B.C/5L/5/0/1/Y0/1K/1/1F/2O/C/8F/0/2C.O/6A/9/0/1/N0/1L/1/1C/
+2P/C/8C/A/24.F/4F/9/0/1/N0/1M/1/1E/2P/G/7J/0/2B/73/9/0/1/N0/1O/1/1N/2S/C/96/K/2D
+.F/6G/9/0/1/N0/1Q/1/1O/45/A/8O/0/25.F/58/9/0/1/Y0/1R/1/1G/2R/G/AB/0/28.F/50/9/0/
+1/N0/1T/1/1N/31/8/6I/0/27.O/6D/3/0/1/N0/20/1/1J/2K/8/7J/0/2B.C/72/9/0/1/N0/21/1/
+1J/2S/8/7L/K/27.F/4O/9/0/1/Y0/22/1/1G/2P/*.71/A/25.9/4Q/9/0/1/N0/23/1/1E/36/9/8D
+/K/28/6B/3/0/1/N0/25/1/1J/36/9/88/K/24/47/9/0/1/N0/26/1/1I/2I/A/94/0/27.F/5K/9/0
+/1/N0/28/1/1E/2R/B/5R/K/27.F/65/9/0/1/Y0/29/1/1D/31/C/BA/F/26/5M/9/0/1/N0/2A/1/1
+K/2H/*.9T/0/2B.O/7I/9/0/1/N0/2B/1/1E/28/G/7B/K/2B.F/6O/9/0/1/N0/2C/1/1L/3D/A/70/
+20/22.R/50/3/0/1/N0/2D/1/1F/3D/A/AA/0/29/6L/1/0/1/Y0/2E/1/1C/2H/G/64/*.2A.6/5F/9
+/0/1/N0/2F/1/1H/31/C/A8/0/27.F/5P/9/0/1/N0/2G/1/1D/2J/D/99/K/2C/63/9/0/1/N0/2H/1
+/1K/2T/A/AK/0/28.6/5I/9/0/1/N0/2I/1/1J/2M/H/9I/1/27.O/60/9/0/1/N0/2J/1/1F/2L/*.8
+O/K/28/5E/9/0/1/N0/2K/1/1E/3C/C/7P/0/2A.9/62/9/0/1/N0/2L/1/1F/33/E/8G/0/27.F/7H/
+9/0/1/N0/2M/1/1C/2M/D/A6/1A/2D/7C/9/0/1/N0/2N/1/1K/32/A/80/A/29/5S/9/0/1/Y0/2P/1
+/1C/2K/B/AP/0/27.F/4B/9/0/1/N0/2Q/1/1M/3C/8/9C/4/25.O/5J/9/0/1/N0/2R/1/1M/2H/G/A
+K/0/26.6/56/9/0/1/N0/2S/1/1C/2Q/G/9A/1A/29.O/5P/9/0/1/N0/30/1/1M/2S/A/95/10/2D/6
+P/5/0/1/N0/31/1/1B/38/B/7D/0/29.9/7D/9/0/1/Y0/32/1/1D/35/C/7P/0/29/69/9/0/1/N0/3
+4/1/1N/33/D/6M/0/24.9/5R/9/0/1/N0/35/1/1B/2H/C/7H/0/26.F/4I/9/0/1/N0/36/1/1B/32/
+*.8I/0/2A.F/66/9/0/1/N0/37/1/1O/39/E/7H/0/25.F/7E/9/0/1/N0/38/1/1G/2E/A/AK/K/26.
+F/4P/3/0/1/N0/39/1/1H/36/A/82/10/24/60/9/0/1/Y0/3B/1/1I/2K/8/8S/0/27.F/6Q/9/0/1/
+N0/3D/1/1K/2R/A/86/0/29.O/71/6/0/1/N0/3E/1/1K/2J/G/8K/A/29.C/51/4/0/1/N0/3F/1/1G
+/2R/*.93/1A/2E.9/6S/9/0/1/N0/3G/1/1F/2P/C/98/F/27.C/5J/9/0/1/N0/3H/1/1H/3B/B/8G/
+K/2F.9/72/9/0/1/N0/3J/1/1B/2L/G/9E/0/26/5T/9/0/1/N0/3K/1/1I/2H/*.7Q/0/2A/5S/9/0/
+1/N0/3L/1/1D/2H/*.81/0/28/5I/9/0/1/N0/3M/1/1J/3A/B/8L/0/25.F/4T/9/0/1/Y0/3N/1/1F
+/31/D/8O/F/26/4C/9/0/1/Y0/3O/1/1F/2T/8/8P/K/2A/5A/9/0/1/N0/3P/1/1I/2K/A/9O/K/28/
+60/3/0/1/N0/3Q/1/1B/2P/C/86/10/28.9/4J/9/0/1/N0/3T/1/1L/33/A/69/K/27.O/68/6/0/1/
+N0/40/1/1E/2I/A/7G/F/28.9/5A/9/0/1/N0/41/1/1H/3A/A/7O/0/26.9/6A/9/0/1/N0/42/1/1I
+/31/B/8E/0/2C/6K/9/0/1/N0/43/1/1J/35/A/7S/0/24.F/5T/9/0/1/Y0/44/1/1I/2M/C/76/0/2
+6.9/5M/9/0/1/N0/47/1/1O/2N/C/AA/0/25.O/5Q/9/0/1/N0/48/1/1O/3A/8/7R/0/25.6/5C/9/0
+/1/N0/4A/1/1B/32/A/7F/0/26.9/5I/9/0/1/Y0/4B/1/1H/2K/*.6R/A/28/53/9/0/1/N0/4D/1/1
+C/31/C/AA/0/2B.9/6N/9/0/1/N0/4F/1/1F/39/C/8O/K/2C.9/50/9/0/1/N0/4H/1/1B/30/C/BQ/
+0/25/4M/9/0/1/Y0/4J/1/1M/2K/9/B9/0/25/50/9/0/1/Y0/4K/1/1N/2K/F/9C/0/2A.I/5N/9/0/
+1/N0/4M/1/1L/2E/8/8Q/0/27/4H/9/0/1/Y0/4N/1/1O/2T/9/6R/0/25.O/58/9/0/1/N0/4O/1/1D
+/3T/C/86/0/26/5D/9/0/1/N0/4P/1/1F/2B/F/8R/0/2A/5N/9/0/1/N0/4Q/1/1B/2M/C/9I/K/27.
+O/6F/9/0/1/N0/4R/1/1F/3F/E/6K/10/26.F/5L/6/0/1/N0/4S/1/1J/2R/F/5J/K/29/6D/9/0/1/
+N0/4T/1/1O/29/9/6R/K/24.F/4G/9/0/1/N0/50/1/1C/2B/G/5S/0/29.O/5M/9/0/1/N0/54/1/1N
+/2H/I/7F/A/2B.9/5P/9/0/1/N0/55/1/1H/2N/*.6Q/0/26/65/9/0/1/N0/ZZZZZZZZZZZZZZZZZZZ
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/pbc.sav
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/pbc.sav
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/mval_bug.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/mval_bug.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/mval_bug.R	(revision 2476)
@@ -0,0 +1,34 @@
+library(foreign)
+
+mydata <- read.spss("mval_bug.sav", use.value.labels = TRUE,
+                    to.data.frame = TRUE, use.missings = TRUE)
+
+levels(mydata$Q1_MISSING_NONE)
+table(mydata$Q1_MISSING_NONE)
+
+levels(mydata$Q1_MISSING_1)
+table(mydata$Q1_MISSING_1)
+
+levels(mydata$Q1_MISSING_2)
+table(mydata$Q1_MISSING_2)
+
+levels(mydata$Q1_MISSING_3)
+table(mydata$Q1_MISSING_3)
+
+levels(mydata$Q1_MISSING_RANGE)
+table(mydata$Q1_MISSING_RANGE)
+
+levels(mydata$Q1_MISSING_LOW)
+table(mydata$Q1_MISSING_LOW)
+
+levels(mydata$Q1_MISSING_HIGH)
+table(mydata$Q1_MISSING_HIGH)
+
+levels(mydata$Q1_MISSING_RANGE_1)
+table(mydata$Q1_MISSING_RANGE_1)
+
+levels(mydata$Q1_MISSING_LOW_1)
+table(mydata$Q1_MISSING_LOW_1)
+
+levels(mydata$Q1_MISSING_HIGH_1)
+table(mydata$Q1_MISSING_HIGH_1)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/stata8mac.dta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/stata8mac.dta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/pc5.dta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/pc5.dta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/testEmpty.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/testEmpty.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/testEmpty.R	(revision 2476)
@@ -0,0 +1,24 @@
+## regression test for PR#15346
+
+library(foreign)
+
+## The testEmpty.xpt dataset was created using the following code:
+## library(SASxport)
+## data(iris)
+## write.xport(Iris1=iris[1:2,],    # two row dataset
+##             empty=data.frame(),  # empty dataset
+##             Iris2=iris[3:4,],    # two row dataset
+##             file="testEmpty.xpt",
+##             autogen.formats=FALSE # prevent autocreation of FORMATS dataset
+##             )
+
+## Test that lookup.xport retrieves all three datsets
+empty.f <- lookup.xport(file="testEmpty.xpt")
+empty.f
+stopifnot(length(empty.f) == 3L)
+
+
+dat.f <- read.xport(file="testEmpty.xpt")
+dat.f
+stopifnot(length(dat.f)==3)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/contact-lenses.arff
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/contact-lenses.arff	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/contact-lenses.arff	(revision 2476)
@@ -0,0 +1,85 @@
+% 1. Title: Database for fitting contact lenses
+% 
+% 2. Sources:
+%      (a) Cendrowska, J. "PRISM: An algorithm for inducing modular rules",
+%          International Journal of Man-Machine Studies, 1987, 27, 349-370
+%      (b) Donor: Benoit Julien (Julien@ce.cmu.edu)
+%      (c) Date: 1 August 1990
+% 
+% 3. Past Usage:
+%       1. See above.
+%       2. Witten, I. H. & MacDonald, B. A. (1988). Using concept
+%          learning for knowledge acquisition. International Journal of
+%          Man-Machine Studies, 27, (pp. 349-370).
+% 
+%  Notes:  This database is complete (all possible combinations of
+%          attribute-value pairs are represented).
+% 
+%          Each instance is complete and correct.
+% 
+%          9 rules cover the training set.
+% 
+% 4. Relevant Information Paragraph:
+%     The examples are complete and noise free.
+%     The examples highly simplified the problem. The attributes do not
+%     fully describe all the factors affecting the decision as to which type,
+%     if any, to fit.
+% 
+% 5. Number of Instances: 24
+% 
+% 6. Number of Attributes: 4 (all nominal)
+% 
+% 7. Attribute Information:
+%     -- 3 Classes
+%      1 : the patient should be fitted with hard contact lenses,
+%      2 : the patient should be fitted with soft contact lenses,
+%      1 : the patient should not be fitted with contact lenses.
+% 
+%     1. age of the patient: (1) young, (2) pre-presbyopic, (3) presbyopic
+%     2. spectacle prescription:  (1) myope, (2) hypermetrope
+%     3. astigmatic:     (1) no, (2) yes
+%     4. tear production rate:  (1) reduced, (2) normal
+% 
+% 8. Number of Missing Attribute Values:   0
+% 
+% 9. Class Distribution:
+%    1. hard contact lenses: 4
+%    2. soft contact lenses: 5
+%    3. no contact lenses: 15
+
+@relation contact-lenses
+
+@attribute age 			{young, pre-presbyopic, presbyopic}
+@attribute spectacle-prescrip	{myope, hypermetrope}
+@attribute astigmatism		{no, yes}
+@attribute tear-prod-rate	{reduced, normal}
+@attribute contact-lenses	{soft, hard, none}
+
+@data
+%
+% 24 instances
+%
+young,myope,no,reduced,none
+young,myope,no,normal,soft
+young,myope,yes,reduced,none
+young,myope,yes,normal,hard
+young,hypermetrope,no,reduced,none
+young,hypermetrope,no,normal,soft
+young,hypermetrope,yes,reduced,none
+young,hypermetrope,yes,normal,hard
+pre-presbyopic,myope,no,reduced,none
+pre-presbyopic,myope,no,normal,soft
+pre-presbyopic,myope,yes,reduced,none
+pre-presbyopic,myope,yes,normal,hard
+pre-presbyopic,hypermetrope,no,reduced,none
+pre-presbyopic,hypermetrope,no,normal,soft
+pre-presbyopic,hypermetrope,yes,reduced,none
+pre-presbyopic,hypermetrope,yes,normal,none
+presbyopic,myope,no,reduced,none
+presbyopic,myope,no,normal,none
+presbyopic,myope,yes,reduced,none
+presbyopic,myope,yes,normal,hard
+presbyopic,hypermetrope,no,reduced,none
+presbyopic,hypermetrope,no,normal,soft
+presbyopic,hypermetrope,yes,reduced,none
+presbyopic,hypermetrope,yes,normal,none
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/spss_long.sav
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/spss_long.sav
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/Alfalfa.xpt
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/Alfalfa.xpt
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/create-dumpdata.S
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/create-dumpdata.S	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/create-dumpdata.S	(revision 2476)
@@ -0,0 +1,5 @@
+## file ./dumpdata was created by these (S-PLUS 6.2.1 for Linux):
+myobj <-  data.frame(factor = factor(1:3, labels=c("a", "bc", "def")),
+		     ints = 1:3, floats = 1+(1:3)/10, logs= c(T,NA,F))
+myobj[1,2] <- NA
+data.dump("myobj",file="dumpdata", oldStyle=TRUE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/stata.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/stata.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/stata.Rout.save	(revision 2476)
@@ -0,0 +1,403 @@
+
+R Under development (unstable) (2015-07-02 r68622) -- "Unsuffered Consequences"
+Copyright (C) 2015 The R Foundation for Statistical Computing
+Platform: x86_64-apple-darwin14.3.0 (64-bit)
+
+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.
+
+> library(foreign)
+> pc5 <- read.dta("pc5.dta")
+Warning message:
+In read.dta("pc5.dta") : cannot read factor labels from Stata 5 files
+> summary(pc5)
+      age             alb           alkphos         ascites      
+ Min.   :26.28   Min.   :1.960   Min.   :   -9   Min.   :-9.000  
+ 1st Qu.:42.71   1st Qu.:3.330   1st Qu.:  423   1st Qu.: 0.000  
+ Median :50.47   Median :3.570   Median : 1009   Median : 0.000  
+ Mean   :50.45   Mean   :3.543   Mean   : 1525   Mean   :-2.074  
+ 3rd Qu.:56.99   3rd Qu.:3.820   3rd Qu.: 1677   3rd Qu.: 0.000  
+ Max.   :78.44   Max.   :4.640   Max.   :13862   Max.   : 1.000  
+      bili             chol            edema            edemarx       
+ Min.   : 0.300   Min.   :  -9.0   Min.   :0.00000   Min.   :0.00000  
+ 1st Qu.: 0.700   1st Qu.:  -9.0   1st Qu.:0.00000   1st Qu.:0.00000  
+ Median : 1.200   Median : 256.0   Median :0.00000   Median :0.00000  
+ Mean   : 2.688   Mean   : 245.8   Mean   :0.09256   Mean   :0.07815  
+ 3rd Qu.: 3.000   3rd Qu.: 346.0   3rd Qu.:0.00000   3rd Qu.:0.00000  
+ Max.   :28.000   Max.   :1775.0   Max.   :1.00000   Max.   :1.00000  
+     hepmeg           time          plate        protime           sex        
+ Min.   :-9.00   Min.   :  41   Min.   : -9   Min.   : 9.00   Min.   :-9.000  
+ 1st Qu.: 0.00   1st Qu.:1434   1st Qu.:181   1st Qu.:10.00   1st Qu.: 0.000  
+ Median : 0.00   Median :1487   Median :249   Median :10.60   Median : 1.000  
+ Mean   :-1.75   Mean   :1760   Mean   :252   Mean   :10.67   Mean   :-1.434  
+ 3rd Qu.: 1.00   3rd Qu.:2153   3rd Qu.:321   3rd Qu.:11.00   3rd Qu.: 1.000  
+ Max.   : 1.00   Max.   :4795   Max.   :721   Max.   :18.00   Max.   : 1.000  
+      sgot           spiders           stage              cens       
+ Min.   : -9.00   Min.   :-9.000   Min.   :-9.0000   Min.   :0.0000  
+ 1st Qu.: 44.20   1st Qu.: 0.000   1st Qu.: 1.0000   1st Qu.:0.0000  
+ Median : 88.35   Median : 0.000   Median : 3.0000   Median :0.0000  
+ Mean   : 88.22   Mean   :-1.914   Mean   : 0.1351   Mean   :0.2443  
+ 3rd Qu.:130.20   3rd Qu.: 0.000   3rd Qu.: 3.0000   3rd Qu.:0.0000  
+ Max.   :457.25   Max.   : 1.000   Max.   : 4.0000   Max.   :1.0000  
+       rx               trig            copper             id       
+ Min.   :-9.0000   Min.   : -9.00   Min.   : -9.00   Min.   :  1.0  
+ 1st Qu.: 1.0000   1st Qu.: -9.00   1st Qu.: 10.00   1st Qu.: 99.5  
+ Median : 1.0000   Median : 85.00   Median : 48.00   Median :195.0  
+ Mean   :-0.9788   Mean   : 81.44   Mean   : 65.26   Mean   :199.6  
+ 3rd Qu.: 2.0000   3rd Qu.:126.00   3rd Qu.: 88.00   3rd Qu.:302.5  
+ Max.   : 2.0000   Max.   :598.00   Max.   :588.00   Max.   :418.0  
+     first             late              t0        
+ Min.   :0.0000   Min.   :0.0000   Min.   :   0.0  
+ 1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:   0.0  
+ Median :0.0000   Median :0.0000   Median :   0.0  
+ Mean   :0.3657   Mean   :0.3657   Mean   : 543.8  
+ 3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:1487.0  
+ Max.   :1.0000   Max.   :1.0000   Max.   :1487.0  
+> str(pc5)
+'data.frame':	659 obs. of  24 variables:
+ $ age    : num  58.8 56.4 56.4 70.1 54.7 ...
+ $ alb    : num  2.6 4.14 4.14 3.48 2.54 ...
+ $ alkphos: num  1718 7395 7395 516 6122 ...
+ $ ascites: num  1 0 0 0 0 0 0 0 0 0 ...
+ $ bili   : num  14.5 1.1 1.1 1.4 1.8 ...
+ $ chol   : num  261 302 302 176 244 244 279 279 248 248 ...
+ $ edema  : num  1 0 0 1 1 1 0 0 0 0 ...
+ $ edemarx: num  1 0 0 0.5 0.5 0.5 0 0 0 0 ...
+ $ hepmeg : num  1 1 1 0 1 1 1 1 1 1 ...
+ $ time   : num  400 1487 4500 1012 1487 ...
+ $ plate  : num  190 221 221 151 183 183 136 136 -9 -9 ...
+ $ protime: num  12.2 10.6 10.6 12 10.3 ...
+ $ sex    : num  1 1 1 0 1 1 1 1 1 1 ...
+ $ sgot   : num  137.9 113.5 113.5 96.1 60.6 ...
+ $ spiders: num  1 1 1 0 1 1 1 1 0 0 ...
+ $ stage  : num  4 3 3 4 4 4 3 3 3 3 ...
+ $ cens   : num  1 0 0 1 0 1 0 0 0 1 ...
+ $ rx     : num  1 1 1 1 1 1 2 2 2 2 ...
+ $ trig   : num  172 88 88 55 92 92 72 72 63 63 ...
+ $ copper : num  156 54 54 210 64 64 143 143 50 50 ...
+ $ id     : num  1 2 2 3 4 4 5 5 6 6 ...
+ $ first  : num  0 1 0 0 1 0 1 0 1 0 ...
+ $ late   : num  0 0 1 0 0 1 0 1 0 1 ...
+ $ t0     : num  0 0 1487 0 0 ...
+ - attr(*, "datalabel")= chr ""
+ - attr(*, "time.stamp")= chr "14 Feb 1997 14:22"
+ - attr(*, "formats")= chr  "%9.0g" "%9.0g" "%9.0g" "%9.0g" ...
+ - attr(*, "types")= int  102 102 102 102 102 102 102 102 102 102 ...
+ - attr(*, "val.labels")= chr  "" "" "" "" ...
+ - attr(*, "var.labels")= chr  "" "" "" "" ...
+ - attr(*, "version")= int 5
+> compressed <- read.dta("compressed.dta")
+> summary(compressed)
+      age             alb           alkphos         ascites      
+ Min.   :26.28   Min.   :1.960   Min.   :   -9   Min.   :-9.000  
+ 1st Qu.:42.71   1st Qu.:3.330   1st Qu.:  423   1st Qu.: 0.000  
+ Median :50.47   Median :3.570   Median : 1009   Median : 0.000  
+ Mean   :50.45   Mean   :3.543   Mean   : 1525   Mean   :-2.074  
+ 3rd Qu.:56.99   3rd Qu.:3.820   3rd Qu.: 1677   3rd Qu.: 0.000  
+ Max.   :78.44   Max.   :4.640   Max.   :13862   Max.   : 1.000  
+      bili             chol            edema            edemarx       
+ Min.   : 0.300   Min.   :  -9.0   Min.   :0.00000   Min.   :0.00000  
+ 1st Qu.: 0.700   1st Qu.:  -9.0   1st Qu.:0.00000   1st Qu.:0.00000  
+ Median : 1.200   Median : 256.0   Median :0.00000   Median :0.00000  
+ Mean   : 2.688   Mean   : 245.8   Mean   :0.09256   Mean   :0.07815  
+ 3rd Qu.: 3.000   3rd Qu.: 346.0   3rd Qu.:0.00000   3rd Qu.:0.00000  
+ Max.   :28.000   Max.   :1775.0   Max.   :1.00000   Max.   :1.00000  
+     hepmeg           time          plate        protime           sex        
+ Min.   :-9.00   Min.   :  41   Min.   : -9   Min.   : 9.00   Min.   :-9.000  
+ 1st Qu.: 0.00   1st Qu.:1434   1st Qu.:181   1st Qu.:10.00   1st Qu.: 0.000  
+ Median : 0.00   Median :1487   Median :249   Median :10.60   Median : 1.000  
+ Mean   :-1.75   Mean   :1760   Mean   :252   Mean   :10.67   Mean   :-1.434  
+ 3rd Qu.: 1.00   3rd Qu.:2153   3rd Qu.:321   3rd Qu.:11.00   3rd Qu.: 1.000  
+ Max.   : 1.00   Max.   :4795   Max.   :721   Max.   :18.00   Max.   : 1.000  
+      sgot           spiders           stage              cens       
+ Min.   : -9.00   Min.   :-9.000   Min.   :-9.0000   Min.   :0.0000  
+ 1st Qu.: 44.20   1st Qu.: 0.000   1st Qu.: 1.0000   1st Qu.:0.0000  
+ Median : 88.35   Median : 0.000   Median : 3.0000   Median :0.0000  
+ Mean   : 88.22   Mean   :-1.914   Mean   : 0.1351   Mean   :0.2443  
+ 3rd Qu.:130.20   3rd Qu.: 0.000   3rd Qu.: 3.0000   3rd Qu.:0.0000  
+ Max.   :457.25   Max.   : 1.000   Max.   : 4.0000   Max.   :1.0000  
+       rx               trig            copper             id       
+ Min.   :-9.0000   Min.   : -9.00   Min.   : -9.00   Min.   :  1.0  
+ 1st Qu.: 1.0000   1st Qu.: -9.00   1st Qu.: 10.00   1st Qu.: 99.5  
+ Median : 1.0000   Median : 85.00   Median : 48.00   Median :195.0  
+ Mean   :-0.9788   Mean   : 81.44   Mean   : 65.26   Mean   :199.6  
+ 3rd Qu.: 2.0000   3rd Qu.:126.00   3rd Qu.: 88.00   3rd Qu.:302.5  
+ Max.   : 2.0000   Max.   :598.00   Max.   :588.00   Max.   :418.0  
+     first             late              t0        
+ Min.   :0.0000   Min.   :0.0000   Min.   :   0.0  
+ 1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:   0.0  
+ Median :0.0000   Median :0.0000   Median :   0.0  
+ Mean   :0.3657   Mean   :0.3657   Mean   : 543.8  
+ 3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:1487.0  
+ Max.   :1.0000   Max.   :1.0000   Max.   :1487.0  
+> all.equal(summary(pc5), summary(compressed))
+[1] TRUE
+> sun6 <- read.dta("sun6.dta")
+> summary(sun6)
+      age             alb           alkphos         ascites      
+ Min.   :26.28   Min.   :1.960   Min.   :   -9   Min.   :-9.000  
+ 1st Qu.:42.71   1st Qu.:3.330   1st Qu.:  423   1st Qu.: 0.000  
+ Median :50.47   Median :3.570   Median : 1009   Median : 0.000  
+ Mean   :50.45   Mean   :3.543   Mean   : 1525   Mean   :-2.074  
+ 3rd Qu.:56.99   3rd Qu.:3.820   3rd Qu.: 1677   3rd Qu.: 0.000  
+ Max.   :78.44   Max.   :4.640   Max.   :13862   Max.   : 1.000  
+      bili             chol            edema            edemarx       
+ Min.   : 0.300   Min.   :  -9.0   Min.   :0.00000   Min.   :0.00000  
+ 1st Qu.: 0.700   1st Qu.:  -9.0   1st Qu.:0.00000   1st Qu.:0.00000  
+ Median : 1.200   Median : 256.0   Median :0.00000   Median :0.00000  
+ Mean   : 2.688   Mean   : 245.8   Mean   :0.09256   Mean   :0.07815  
+ 3rd Qu.: 3.000   3rd Qu.: 346.0   3rd Qu.:0.00000   3rd Qu.:0.00000  
+ Max.   :28.000   Max.   :1775.0   Max.   :1.00000   Max.   :1.00000  
+     hepmeg           time          plate        protime           sex        
+ Min.   :-9.00   Min.   :  41   Min.   : -9   Min.   : 9.00   Min.   :-9.000  
+ 1st Qu.: 0.00   1st Qu.:1434   1st Qu.:181   1st Qu.:10.00   1st Qu.: 0.000  
+ Median : 0.00   Median :1487   Median :249   Median :10.60   Median : 1.000  
+ Mean   :-1.75   Mean   :1760   Mean   :252   Mean   :10.67   Mean   :-1.434  
+ 3rd Qu.: 1.00   3rd Qu.:2153   3rd Qu.:321   3rd Qu.:11.00   3rd Qu.: 1.000  
+ Max.   : 1.00   Max.   :4795   Max.   :721   Max.   :18.00   Max.   : 1.000  
+      sgot           spiders           stage              cens       
+ Min.   : -9.00   Min.   :-9.000   Min.   :-9.0000   Min.   :0.0000  
+ 1st Qu.: 44.20   1st Qu.: 0.000   1st Qu.: 1.0000   1st Qu.:0.0000  
+ Median : 88.35   Median : 0.000   Median : 3.0000   Median :0.0000  
+ Mean   : 88.22   Mean   :-1.914   Mean   : 0.1351   Mean   :0.2443  
+ 3rd Qu.:130.20   3rd Qu.: 0.000   3rd Qu.: 3.0000   3rd Qu.:0.0000  
+ Max.   :457.25   Max.   : 1.000   Max.   : 4.0000   Max.   :1.0000  
+       rx               trig            copper             id       
+ Min.   :-9.0000   Min.   : -9.00   Min.   : -9.00   Min.   :  1.0  
+ 1st Qu.: 1.0000   1st Qu.: -9.00   1st Qu.: 10.00   1st Qu.: 99.5  
+ Median : 1.0000   Median : 85.00   Median : 48.00   Median :195.0  
+ Mean   :-0.9788   Mean   : 81.44   Mean   : 65.26   Mean   :199.6  
+ 3rd Qu.: 2.0000   3rd Qu.:126.00   3rd Qu.: 88.00   3rd Qu.:302.5  
+ Max.   : 2.0000   Max.   :598.00   Max.   :588.00   Max.   :418.0  
+     first             late              t0        
+ Min.   :0.0000   Min.   :0.0000   Min.   :   0.0  
+ 1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:   0.0  
+ Median :0.0000   Median :0.0000   Median :   0.0  
+ Mean   :0.3657   Mean   :0.3657   Mean   : 543.8  
+ 3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:1487.0  
+ Max.   :1.0000   Max.   :1.0000   Max.   :1487.0  
+> str(sun6)
+'data.frame':	659 obs. of  24 variables:
+ $ age    : num  58.8 56.4 56.4 70.1 54.7 ...
+ $ alb    : num  2.6 4.14 4.14 3.48 2.54 ...
+ $ alkphos: num  1718 7395 7395 516 6122 ...
+ $ ascites: int  1 0 0 0 0 0 0 0 0 0 ...
+ $ bili   : num  14.5 1.1 1.1 1.4 1.8 ...
+ $ chol   : int  261 302 302 176 244 244 279 279 248 248 ...
+ $ edema  : int  1 0 0 1 1 1 0 0 0 0 ...
+ $ edemarx: num  1 0 0 0.5 0.5 0.5 0 0 0 0 ...
+ $ hepmeg : int  1 1 1 0 1 1 1 1 1 1 ...
+ $ time   : int  400 1487 4500 1012 1487 1925 1487 1504 1487 2503 ...
+ $ plate  : int  190 221 221 151 183 183 136 136 -9 -9 ...
+ $ protime: num  12.2 10.6 10.6 12 10.3 ...
+ $ sex    : int  1 1 1 0 1 1 1 1 1 1 ...
+ $ sgot   : num  137.9 113.5 113.5 96.1 60.6 ...
+ $ spiders: int  1 1 1 0 1 1 1 1 0 0 ...
+ $ stage  : int  4 3 3 4 4 4 3 3 3 3 ...
+ $ cens   : int  1 0 0 1 0 1 0 0 0 1 ...
+ $ rx     : int  1 1 1 1 1 1 2 2 2 2 ...
+ $ trig   : int  172 88 88 55 92 92 72 72 63 63 ...
+ $ copper : int  156 54 54 210 64 64 143 143 50 50 ...
+ $ id     : int  1 2 2 3 4 4 5 5 6 6 ...
+ $ first  : int  0 1 0 0 1 0 1 0 1 0 ...
+ $ late   : int  0 0 1 0 0 1 0 1 0 1 ...
+ $ t0     : int  0 0 1487 0 0 1487 0 1487 0 1487 ...
+ - attr(*, "datalabel")= chr ""
+ - attr(*, "time.stamp")= chr "14 Sep 2000 10:40"
+ - attr(*, "formats")= chr  "%9.0g" "%9.0g" "%9.0g" "%9.0g" ...
+ - attr(*, "types")= int  102 102 102 98 102 105 98 102 98 105 ...
+ - attr(*, "val.labels")= chr  "" "" "" "" ...
+ - attr(*, "var.labels")= chr  "" "" "" "" ...
+ - attr(*, "version")= int 6
+> all.equal(summary(sun6),summary(pc5))
+[1] TRUE
+> df <- read.dta("datefactor.dta")
+> summary(df)
+      hlth159         id            adate           
+ EXCELLENT: 0   Min.   : 1.00   Min.   :1960-01-02  
+ VERY GOOD: 6   1st Qu.: 8.25   1st Qu.:1960-01-09  
+ GOOD     : 8   Median :15.50   Median :1960-01-16  
+ FAIR     : 4   Mean   :15.50   Mean   :1960-01-16  
+ POOR     : 1   3rd Qu.:22.75   3rd Qu.:1960-01-23  
+ NA's     :11   Max.   :30.00   Max.   :1960-01-31  
+> data(esoph)
+> write.dta(esoph,esophile <- tempfile())
+> esoph2 <- read.dta(esophile)
+> all.equal(ordered(esoph2$alcgp),esoph$alcgp)
+[1] TRUE
+> write.dta(esoph,esophile,convert.factors="string")
+> esoph2 <- read.dta(esophile)
+> all.equal(as.character(esoph$alcgp),esoph2$alcgp)
+[1] TRUE
+> write.dta(esoph,esophile,convert.factors="code")
+> esoph2 <- read.dta(esophile)
+> all.equal(as.numeric(esoph$alcgp),as.numeric(esoph2$alcgp))
+[1] TRUE
+> 
+> se <- read.dta("stata7se.dta")
+> print(se)
+      race number
+1    white      2
+2    asian      5
+3 hispanic      5
+4    white      4
+5    black      5
+6    white      6
+7    black      7
+> v8 <- read.dta("stata8mac.dta")
+> print(v8)
+      race number
+1    white      2
+2    asian      5
+3 hispanic      5
+4    white      4
+5    black      5
+6    white      6
+7    black      7
+> 
+> stata8 <- read.dta("auto8.dta",missing.type=TRUE,convert.underscore=FALSE)
+> str(stata8)
+'data.frame':	74 obs. of  13 variables:
+ $ make        : chr  "AMC Concord" "AMC Pacer" "AMC Spirit" "Buick Century" ...
+ $ price       : int  4099 4749 3799 4816 7827 5788 4453 5189 10372 4082 ...
+ $ mpg         : int  22 17 22 20 15 18 26 20 16 19 ...
+ $ rep78       : int  3 3 NA 3 4 3 NA 3 3 3 ...
+ $ headroom    : num  2.5 3 3 4.5 4 4 3 2 3.5 3.5 ...
+ $ trunk       : int  11 11 12 16 20 21 10 16 17 13 ...
+ $ weight      : int  2930 3350 2640 3250 4080 3670 2230 3280 3880 3400 ...
+ $ length      : int  186 173 168 196 222 218 170 200 207 200 ...
+ $ turn        : int  40 40 35 40 43 43 34 42 43 42 ...
+ $ displacement: int  121 258 121 196 350 231 304 196 231 231 ...
+ $ gear_ratio  : num  3.58 2.53 3.08 2.93 2.41 ...
+ $ foreign     : Factor w/ 2 levels "Domestic","Foreign": 1 1 1 1 1 1 1 1 1 1 ...
+ $ testmiss    : num  NA NA NA NA NA NA NA NA NA NA ...
+ - attr(*, "datalabel")= chr "1978 Automobile Data"
+ - attr(*, "time.stamp")= chr "20 May 2003 14:39"
+ - attr(*, "formats")= chr  "%-18s" "%8.0gc" "%8.0g" "%8.0g" ...
+ - attr(*, "types")= int  18 252 252 252 254 252 252 252 252 252 ...
+ - attr(*, "val.labels")= chr  "" "" "" "" ...
+ - attr(*, "var.labels")= chr  "Make and Model" "Price" "Mileage (mpg)" "Repair Record 1978" ...
+ - attr(*, "version")= int 8
+ - attr(*, "label.table")=List of 1
+  ..$ origin: Named int  0 1
+  .. ..- attr(*, "names")= chr  "Domestic" "Foreign"
+ - attr(*, "missing")=List of 13
+  ..$ make        : NULL
+  ..$ price       : num  NA NA NA NA NA NA NA NA NA NA ...
+  ..$ mpg         : num  NA NA NA NA NA NA NA NA NA NA ...
+  ..$ rep78       : num  NA NA 0 NA NA NA 0 NA NA NA ...
+  ..$ headroom    : num  NA NA NA NA NA NA NA NA NA NA ...
+  ..$ trunk       : num  NA NA NA NA NA NA NA NA NA NA ...
+  ..$ weight      : num  NA NA NA NA NA NA NA NA NA NA ...
+  ..$ length      : num  NA NA NA NA NA NA NA NA NA NA ...
+  ..$ turn        : num  NA NA NA NA NA NA NA NA NA NA ...
+  ..$ displacement: num  NA NA NA NA NA NA NA NA NA NA ...
+  ..$ gear_ratio  : num  NA NA NA NA NA NA NA NA NA NA ...
+  ..$ foreign     : num  NA NA NA NA NA NA NA NA NA NA ...
+  ..$ testmiss    : num  18 18 18 18 18 18 18 18 18 18 ...
+> 
+> bq <- read.dta("MLLabelsWithNotesChar.dta")
+> str(bq)
+'data.frame':	0 obs. of  1 variable:
+ $ female: Factor w/ 2 levels "No","Yes": 
+ - attr(*, "datalabel")= chr "datalabelBQ"
+ - attr(*, "time.stamp")= chr "27 Apr 2013 16:16"
+ - attr(*, "formats")= chr "%8.0g"
+ - attr(*, "types")= int 251
+ - attr(*, "val.labels")= chr "female_lbl_def"
+ - attr(*, "var.labels")= chr "Is it female"
+ - attr(*, "expansion.fields")=List of 11
+  ..$ : chr  "female" "question" "Are you Female?"
+  ..$ : chr  "_dta" "_lang_c" "default"
+  ..$ : chr  "_dta" "_lang_v_spanish" "etiqdataBQ"
+  ..$ : chr  "female" "_lang_l_spanish" "female_lbl_es"
+  ..$ : chr  "female" "_lang_v_spanish" "Femenino"
+  ..$ : chr  "_dta" "note1" "datasetNoteTxt"
+  ..$ : chr  "_dta" "note0" "1"
+  ..$ : chr  "female" "note2" "FemaleNote2Txt"
+  ..$ : chr  "female" "note0" "2"
+  ..$ : chr  "female" "note1" "FemaleNoteTxt"
+  ..$ : chr  "_dta" "_lang_list" "default spanish"
+ - attr(*, "version")= int 12
+ - attr(*, "label.table")=List of 2
+  ..$ female_lbl_es : Named int  0 1
+  .. ..- attr(*, "names")= chr  "No" "Si"
+  ..$ female_lbl_def: Named int  0 1
+  .. ..- attr(*, "names")= chr  "No" "Yes"
+> write.dta(bq, "bq.dta", version = 12)
+> str(read.dta('bq.dta'))
+'data.frame':	0 obs. of  1 variable:
+ $ female: Factor w/ 2 levels "No","Yes": 
+ - attr(*, "datalabel")= chr "datalabelBQ"
+ - attr(*, "time.stamp")= chr ""
+ - attr(*, "formats")= chr "%9.0g"
+ - attr(*, "types")= int 253
+ - attr(*, "val.labels")= chr "female_lbl_def"
+ - attr(*, "var.labels")= chr "Is it female"
+ - attr(*, "expansion.fields")=List of 11
+  ..$ : chr  "female" "question" "Are you Female?"
+  ..$ : chr  "_dta" "_lang_c" "default"
+  ..$ : chr  "_dta" "_lang_v_spanish" "etiqdataBQ"
+  ..$ : chr  "female" "_lang_l_spanish" "female_lbl_es"
+  ..$ : chr  "female" "_lang_v_spanish" "Femenino"
+  ..$ : chr  "_dta" "note1" "datasetNoteTxt"
+  ..$ : chr  "_dta" "note0" "1"
+  ..$ : chr  "female" "note2" "FemaleNote2Txt"
+  ..$ : chr  "female" "note0" "2"
+  ..$ : chr  "female" "note1" "FemaleNoteTxt"
+  ..$ : chr  "_dta" "_lang_list" "default spanish"
+ - attr(*, "version")= int 12
+ - attr(*, "label.table")=List of 2
+  ..$ female_lbl_def: Named int  1 2
+  .. ..- attr(*, "names")= chr  "No" "Yes"
+  ..$ female_lbl_es : Named int  0 1
+  .. ..- attr(*, "names")= chr  "No" "Si"
+> unlink("bq.dta")
+> 
+> ## PR#15290
+> bq <- read.dta("OneVarTwoValLabels.dta")
+> str(bq)
+'data.frame':	0 obs. of  1 variable:
+ $ female: Factor w/ 2 levels "Male","Female": 
+ - attr(*, "datalabel")= chr ""
+ - attr(*, "time.stamp")= chr "25 Apr 2013 21:40"
+ - attr(*, "formats")= chr "%9.0g"
+ - attr(*, "types")= int 251
+ - attr(*, "val.labels")= chr "fem_lbl_val_en"
+ - attr(*, "var.labels")= chr ""
+ - attr(*, "expansion.fields")=List of 3
+  ..$ : chr  "_dta" "_lang_c" "default"
+  ..$ : chr  "female" "_lang_l_spanish" "fem_lbl_val_es"
+  ..$ : chr  "_dta" "_lang_list" "default spanish"
+ - attr(*, "version")= int 12
+ - attr(*, "label.table")=List of 2
+  ..$ fem_lbl_val_es: Named int  0 1
+  .. ..- attr(*, "names")= chr  "Masculino" "Femenino"
+  ..$ fem_lbl_val_en: Named int  0 1
+  .. ..- attr(*, "names")= chr  "Male" "Female"
+> 
+> ## Dates and date-times in Stata12
+> Sys.setenv(TZ = "UTC") # avoid timezone differences: cannot unset so must be last
+> read.dta("xxx12.dta")
+                     x                  xc               xbigc      xdate
+1  2014-01-23 20:07:16 2014-01-23 20:07:16 2014-01-23 20:07:16 2014-01-23
+2  2014-01-23 20:07:17 2014-01-23 20:07:17 2014-01-23 20:07:17 2014-01-23
+3  2014-01-23 20:07:18 2014-01-23 20:07:18 2014-01-23 20:07:18 2014-01-23
+4  2014-01-23 20:07:19 2014-01-23 20:07:19 2014-01-23 20:07:19 2014-01-23
+5  2014-01-23 20:07:20 2014-01-23 20:07:20 2014-01-23 20:07:20 2014-01-23
+6  2014-01-23 20:07:21 2014-01-23 20:07:21 2014-01-23 20:07:21 2014-01-23
+7  2014-01-23 20:07:22 2014-01-23 20:07:22 2014-01-23 20:07:22 2014-01-23
+8  2014-01-23 20:07:23 2014-01-23 20:07:23 2014-01-23 20:07:23 2014-01-23
+9  2014-01-23 20:07:24 2014-01-23 20:07:24 2014-01-23 20:07:24 2014-01-23
+10 2014-01-23 20:07:25 2014-01-23 20:07:25 2014-01-23 20:07:25 2014-01-23
+> 
+> q()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/xxx12.dta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/xxx12.dta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/stata7se.dta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/stata7se.dta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/sun6.dta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/sun6.dta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/pbc.por
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/pbc.por	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/pbc.por	(revision 2476)
@@ -0,0 +1,340 @@
+�����@����@����@����@@@@@@@@@@@@@@@@@@@@ASCII SPSS PORT FILE                    
+00000-0000-0000-0000--------------------!3#))0303300/240&),%00000000000000000000
+0200002'220'&)3000#0000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst
+uvwxyz .<(+0&[]!$*);^-/|,%_>?`:#@'="000000~000000000000000000000{}\0000000000000
+00000000000000000000000000000000000000000000000000000000SPSSPORTA8/200012126/130
+234112/SPSS for MS WINDOWS Release 10.04K/5B/70/3/AGE5/7/2/5/7/2/C1/ 70/3/ALB5/4
+/2/5/4/2/C1/ 70/7/ALKPHOS5/7/2/5/7/2/C1/ 70/7/ASCITES5/1/0/5/1/0/C1/ 70/4/BILI5/
+4/2/5/4/2/C1/ 70/4/CHOL5/4/2/5/4/2/C1/ 70/5/EDEMA5/1/0/5/1/0/C1/ 70/5/EDTRT5/3/2
+/5/3/2/C1/ 70/6/HEPMEG5/1/0/5/1/0/C1/ 70/4/TIME5/4/2/5/4/2/C1/ 70/8/PLATELET5/3/
+2/5/3/2/C1/ 70/7/PROTIME5/4/2/5/4/2/C1/ 70/3/SEX5/1/0/5/1/0/C1/ 70/4/SGOT5/6/2/5
+/6/2/C1/ 70/7/SPIDERS5/1/0/5/1/0/C1/ 70/5/STAGE5/1/0/5/1/0/C1/ 70/6/STATUS5/1/0/
+5/1/0/C1/ 70/3/TRT5/1/0/5/1/0/C1/ 70/4/TRIG5/3/2/5/3/2/C1/ 70/6/COPPER5/3/2/5/3/
+2/C1/ F1S.MSKC/2.I/1R8/1/E.F/8L/1/1/1/DA/6A/C.6/1/4H.SF/1/4/1/1/5M/56/1Q.DBK3/4.
+46/86E.O/0/1.3/A2/0/0/1/5+2/7B/A.I/1/3N.FI/1/3/0/1/2S/1O/2A.25A6/3.EC/H6/0/1.C/5
+Q/1/.F/0/13M/51/C/0/36.3/0/4/1/1/1P/70/1O.M6G6/2.G6/6O1.O/0/1.O/84/1/.F/1/245/63
+/A.9/1/20.IR/1/4/1/1/32/24/18.34PO/3.FR/MB/0/3.C/99/0/0/1/1K4/4G/A.R/1/3N.4F/1/3
+/0/2/2C/4N/26.7MOR/3.TC/11E/0/.O/88/0/0/1/2ND/-9/B/1/33/0/3/1/2/23/1K/1P.G146/4.
+2L/RE/0/1/AM/0/0/1/212/6O/9.L/1/20.DF/0/3/0/2/73/1M/1N.1L3I/4/551.6/0/.9/9A/0/0/
+0/2M6/CD/B/1/S.BBTTTTTTTT/0/3/1/2/69/1M/1C.F739/3.2C/2FQ/0/3.6/IM/0/0/0/2K0/8B/B
+/1/4O.4F/1/2/1/1/2S/2J/2A.GNR9/2.M6/10I/1/C.I/6K/1/1/0/1L/A2/B.F/1/4R.7F/1/4/1/2
+/4N/4K/1N.LCF9/4.4O/16O/0/1.C/8J/0/0/1/45C/8I/C/1/2J.1F/1/4/1/2/2J/1G/1T.43P6/3.
+FI/JL/0/3.I/7Q/0/0/0/A4/2B/D.I/1/2M.4F/1/4/1/2/35/34/1F.KKB3/3.PF/19B/0/.L/9B/0/
+0/0/3T7/84/A.I/1/2S.AF/0/3/0/2/4A/1A/1Q.6JII/2.83/O8/1/.O/-9/1/1/1/1AH/56/B/0/2B
+/0/4/1/2/-9/1D/24.JBEL/3.Q3/A09.NTTTTTTT/0/.O/7L/0/0/0/3TE/9P/B/1/47.L9/0/3/1/1/
+36/5N/1A.D94F/3.JO/MP/0/.L/6O/0/0/0/42C/6I/A.O/1/2C.PF/0/3/0/2/1S/S/1M.5F1O/3.4F
+/1L3/0/2.L/94/0/0/1/PJ/7E/A.F/1/3R.O/0/4/1/2/48/59/1N.RR5C/2.O/121/0/B.C/5S/1/1/
+1/4B/9D/C.C/1/9A.GF/1/4/1/1/6K/JI/1J.GOG6/3.GO/22L/0/.L/7P/0/.F/1/4L2/6T/B/1/33/
+0/3/0/1/43/19/1T.SI4F/3.F9/23T/0/5.3/CE/0/0/1/1F6/AM/D/1/42.DF/0/4/1/2/4F/4K/24.
+5K09/3.OR/S3/0/.I/8C/0/0/1/3OP/B6/B.C/0/25.3/1/4/0/2/2N/1B/1Q.88PF/3.IR/1FQ/0/3.
+C/91/0/0/0/MD/5N/B.I/1/40.R/1/4/1/1/1P/FE/1P.T0BL/2.S6/6M4.O/1/H.BTTTTTTTTT/D5/1
+/1/1/8O/74/B.L/1/7H.16/1/4/1/2/6B/II/1E.FI5C/4/6AJ/0/2.3/F6/0/0/1/4FT/2A/9.R/0/7
+B.QC/0/2/1/1/7K/44/1F.25QC/4.3/M1/0/.L/9S/0/0/0/4HH/AO/B.9/1/3G.SF/0/2/0/2/26/1A
+/1M.0M46/3.KC/3HI/0/5.6/17I/0/0/1/1I4/E1/9.R/1/5F.PETTTTTTT/1/3/1/2/5G/1N/1O.D5D
+O/3.99/437.C/1/L.I000000001/5P/1/.F/1/2H/2K/C/1/3B.R9/1/4/1/2/5I/7B/1E.SCH3/3.6R
+/25P/1/H.6/7C/1/1/1/I9/4O/D/1/69.3/1/4/1/2/6F/6T/23.Q93I/3.NC/6ED/0/.L/CA/0/0/0/
+509/D0/A.I/1/2D.FR/0/2/0/2/2Q/O/1B.BGPO/2.G6/82H/0/3.I/8K/0/0/1/AL/44/B/1/41.7O/
+1/4/1/2/58/5M/1B.GH4O/3.D6/B13.60000001/0/4.L/9Q/0/0/1/47T/6F/A.9/1/6Q.C/0/2/1/2
+/3B/3O/1N.TQ99/3.A6/82H/0/1.O/8M/0/0/1/50N/9G/A.I/1/2M.GO/0/4/0/2/58/3B/1L.8ECR/
+3.5L/1N2/0/.O/70/0/0/0/3FK/60/C/1/78.GF/0/3/1/2/3N/2M/1M.1O5C/3.L/21A/0/.O/C4/0/
+0/0/4B3/93/A.F/1/5K.F/0/2/0/1/24/17/1I.IGRI/3.6/DII.O/0/1.6/AE/0/0/0/34R/EB/A.I/
+1/2C.76/0/3/1/2/51/6L/1Q.C9IR/3.BL/II/0/.9/5M/0/0/0/40B/AB/A.I/1/2B.9/0/2/0/2/36
+/I/21.LOP6/3.09/7L1.6/1/7.3/B4/1/1/1/7D/3C/C/1/60.I/0/4/1/1/3S/50/16.IO9/3.FR/1B
+4/0/3.9/CN/0/0/1/3I4/7O/B/1/4H.SF/1/4/1/2/2R/3C/1P.BMTC/3/A26.O/0/.L/9C/0/0/1/2G
+H/IN/A.I/1/2C.76/0/4/1/1/3L/1M/1G.K2DO/3.A6/C86.I0000001/0/1.9/-9/0/0/0/4SR/BS/B
+/1/3E.EL/0/4/0/1/-9/3F/13.J11F/3.7O/1AF/0/6.O/-9/0/0/1/1F0/7G/B.L/1/51.R/0/4/1/1
+/-9/36/13.KP6R/3.G6/9MI/0/2.3/-9/0/0/1/4SD/BE/B/1/1Q.MO/1/4/0/2/-9/42/1I.Q3G6/3.
+J6/610.6/0/1.3/C1/0/0/0/51Q/6N/A.I/1/27.2C/0/2/0/1/2T/16/17.HE7F/3.GF/149/0/3.9/
+9T/1/1/1/3O8/6J/B.L/1/3T.AF/1/3/1/2/1K/4B/1B.NNT3/3.RR/20Q/0/.I/-9/0/0/0/4E5/FO/
+A.R/1/2B.9/0/2/0/2/-9/J/1F.NSRI/2.P6/CP2/0/5.L/G2/0/0/1/2F6/H8/C.L/1/4G.M6/0/3/1
+/1/5F/5B/1H.CP0I/3.JF/1R6/0/.F/AG/0/0/0/2PQ/BQ/9.O/1/67.GF/0/3/0/2/2B/28/1J.42HC
+/3.L/BGG.NTTTTTTT/0/1.R/8J/0/0/0/4RH/74/B/0/68.A6/0/3/0/2/5S/9B/21.4HA6/3.OI/MI/
+0/.O/-9/0/0/1/NI/7N/B/1/37.JF/0/4/1/2/-9/1S/1N.F7M6/3.AO/160/0/1.3/8H/0/0/1/2QI/
+48/A.I/1/3G.SF/0/4/1/1/2D/1D/1M.2IP6/3.I/4OC/0/.O/96/0/0/0/48D/93/A.I/1/39.9R/0/
+2/1/2/4N/1O/1K.G6IR/3.L/5JE.C/0/6/KE/0/0/0/2JG/C2/A.I/0/6Q.C/0/1/1/1/33/58/27.C7
+M6/3.3/756.6/0/2.I/-9/0/0/1/13A/74/B/1/1Q.MO/0/4/1/1/-9/34/19.5S0I/3.C/62R.6/1/1
+.9/9I/1/1/1/1HO/8E/B/1/2D.FR/1/4/1/1/45/8M/25.MQQC/3.S6/B8P/0/1.O/DQ/0/0/0/1FA/7
+3/B/0/2J.TC/0/3/1/1/79/41/13.IG8L/3.O/FC2.C/0/1.3/GI/0/0/1/21H/C5/A.I/1/35.DO/1/
+2/1/2/AJ/2S/1N.H4AF/3.5C/CHA.6/0/2.9/8K/1/.F/1/3JC/76/C.C/1/3F.NC/0/3/1/1/34/7L/
+1E.H2GF/4.2C/6GA/0/.L/82/0/0/0/4SJ/-9/A.I/0/1Q.MO/0/1/0/1/3S/2D/1A.BOQ3/3.F/8E2.
+O/0/.O/AT/0/0/1/2E4/AL/A.I/1/46.CI/1/3/1/1/44/1J/1S.BDL9/3.C/T6/0/.R/K4/0/0/0/4P
+F/7I/A.9/1/2B.9/0/3/0/1/1S/2M/1D.QSOR/3.S6/K1/0/.I/76/0/0/0/4LQ/71/D/0/20.DF/0/1
+/0/2/68/S/20.L5MO/2.MF/1KN/1/1.9/A2/0/0/0/3D0/AT/D.6/1/1D.C/0/4/1/2/3M/1S/1G.IPE
+3/3.3I/5TQ/0/M.F/112/1/1/0/SJ/5F/B.I/1/84.R/1/3/1/2/4D/35/22.R6P6/3.F/13J/0/2.3/
+CD/0/0/1/1JH/5S/B/1/50.AF/0/3/1/2/68/1M/1A.62A6/3.I/O4/0/1.6/8G/0/0/0/4D2/EA/A/1
+/4L.1F/0/1/0/1/3I/2E/1G.DHNL/3.L/23J/0/1.C/E7/0/0/1/4JL/43/B/0/62.R/0/3/1/1/5L/3
+F/1L.8JBC/3.R9/1TH/0/1.3/FG/0/0/0/329/8L/A/1/AS.I00000001/0/3/1/2/65/2O/12.IBT3/
+4.2L/LC/0/.L/5O/0/0/0/4EJ/6N/A.I/1/2B.9/0/3/0/1/1G/1S/1J.A4RI/3.DO/3JM/0/K/LM/0/
+.F/1/190/7H/C.C/1/75.DF/1/3/1/1/64/59/1Q.BTLR/4.J6/M6/0/.I/-9/0/0/0/3P8/8P/A.I/1
+/1O.7F/0/2/0/1/-9/K/1I.PBC/3.H3/2DB/0/1.6/8I/0/0/1/4JQ/DK/B.F/1/40.R/0/4/0/2/2G/
+2J/12.ENFI/3.G6/1BD/0/.F/AK/0/0/0/4JE/7F/A/1/42.DF/0/3/0/2/2K/1L/18.EONC/3.I/E3/
+0/.L/4C/0/0/0/4JK/8P/B/1/1J.I/0/1/0/2/1Q/H/1L.RIG6/3.TL/127/0/8.C/II/0/0/1/20R/9
+8/B/1/2T.R/1/4/1/1/A9/9A/1D.FG8L/2.FR/298/1/H.3000000001/ME/1/.F/1/19L/8S/B.F/1/
+62.R/1/4/1/1/JS/6R/1L.S87F/3.2C/2B2/0/C.6/D4/1/.F/1/2B/5F/B.I/1/55/1/4/1/1/83/3L
+/1J.ONEL/3.C9/20J/0/6.I/84/1/.F/1/AQ/4C/C.3/1/5K.F/1/3/1/2/31/6J/1H.SAKC/3.0I/2C
+G/0/6.9/EG/0/0/1/1QA/7Q/A.I/1/5K.F/0/4/1/1/3E/2F/1G.FEEL/4.76/1OH/0/.O/AF/0/0/1/
+43H/E6/A.R/1/5K.F/0/3/0/1/2A/D/27.CA7O/3.LI/1DD/0/7.6/87/0/0/1/TK/C0/B.6/0/5Q.L/
+0/4/1/2/31/8T/23.7R4F/3.JF/1AI/0/E.C/ES/0/0/1/2OK/CP/B.L/1/20.DF/1/4/1/1/AI/14/2
+7.992L/4.2L/1MK/0/4.F/FM/0/0/0/3T4/DM/B.3/1/3R.O/0/3/1/1/92/54/1Q.0C9R/3.F/17S/0
+/1.9/8A/1/.F/1/4F0/2L/C.R/1/2B.9/0/4/0/1/3A/1I/1P.OR83/3.MO/1EP/0/.C/8N/0/0/0/4E
+C/61/B.6/1/4H.SF/0/3/0/2/2E/T/1H.6F9/3.EC/285/0/2.3/8M/0/0/1/3LS/7F/B.F/1/2T.R/0
+/4/1/2/2O/1S/1M.MMGO/3.69/2SG/0/5/1NA/0/0/1/1P7/61/A.R/1/2M.4F/1/3/1/1/5O/2F/17.
+8AM6/4.C/220/0/1.3/BF/0/0/0/6I/ER/A.L/1/78.GF/0/3/1/1/2C/2F/1B.BO76/4.1O/14C/0/.
+I/9Q/1/.F/0/2LM/EM/C/1/2K.I/0/3/0/2/2N/17/1M.D94F/3.JF/163/0/2/DI/0/0/1/1S1/6K/B
+.C/1/3K.1F/0/2/1/1/38/1K/13.E83R/4.6I/21R/0/1.I/M0/0/0/0/2TJ/B7/B/0/51.R/0/2/1/1
+/55/34/1F.I6BL/3.E3/2M0/0/5/AP/1/.F/1/FA/EA/B.R/1/86.DF/1/4/1/2/1Q/3K/2G.L85L/3.
+3R/1O6/1/1.C/6Q/1/1/0/CS/4P/C.6/1/2Q.O/0/4/1/1/2A/16/16.G0F9/3.K3/27T/0/1.9/BN/0
+/0/0/4AD/CK/B.3/1/7M.F00000001/0/2/0/1/28/2D/1N.REPF/3.39/1AC/0/3.6/6L/0/0/1/P0/
+68/B.O/1/59.JF/1/4/1/1/29/5S/1G.BL2L/2.J6/IJ/1/H.BTTTTTTTTT/-9/1/1/1/4A/DB/B.L/1
+/3T.AF/1/2/1/2/-9/62/1I.PBC/3.L/1BS/0/1/-9/0/0/0/48A/B8/A.C/1/39.6/0/3/0/1/-9/13
+/2B.QNQC/3.7O/3GG/0/2/E0/1/.F/1/KB/BE/B.C/0/2H.F/0/3/1/2/31/22/S.QFQ3/3.N3/22H/0
+/1/7T/0/0/0/47D/AC/A.6/1/37.JF/0/1/0/1/3B/2H/1I.E1BC/3.AF/1J2/0/1.O/FA/0/0/0/47A
+/5M/A.6/0/3I.F/0/2/0/2/3S/4S/1L.E209/3/OQ/0/2.9/5S/0/0/1/IC/3T/C/0/5S.7F/0/4/1/2
+/42/4P/1E.SF/3.I/1Q9/0/.R/DA/0/0/0/3TB/AR/A.C/1/5E.9/0/3/0/2/5G/11/1Q.H2GF/3.T3/
+LG/0/.R/88/0/0/0/3D9/48/A.3/1/22/0/1/0/1/2O/5M/1I.SR9R/3.K3/1CD/1/2.F/68/1/1/1/3
+K/3K/B.3/1/3T.AF/1/4/1/2/3C/1R/1D.0FBL/3.J6/2A8/0/1.3/A3/0/0/0/3CQ/BJ/B.3/1/48.J
+F/0/2/1/1/1N/K/14.15LR/4.6/1OO/0/1.3/FE/0/0/1/3D2/BI/A.9/1/51.R/0/3/0/2/3C/18/28
+.F88C/3.R/167/1/2.3/-9/0/0/1/3HC/4H/A.I/1/3D.PF/0/2/1/1/-9/1K/22.FJD6/4.0R/LI/0/
+.I/72/0/0/0/3MS/AG/H.3000000001/1/2B.9/0/1/0/2/2H/A/1K.ALH3/3.F/15C/0/.C/47/0/0/
+0/2Q3/B4/A.9/1/1J.I/0/2/1/1/2O/E/1E.1QL/3.I9/QO/0/.F/40/0/0/0/2NE/91/A.I/1/3K.1F
+/0/3/0/2/1M/1N/18.R983/3.G6/152/0/1.R/G6/0/0/1/2A5/4L/A.R/1/3I.F/1/3/1/1/3J/2E/1
+B.4HA6/4.5C/2K4/0/5.F/HI/0/0/0/2IA/FH/A.L/1/5M.1F/0/3/0/1/2I/2H/1P.DM39/3.K3/P4/
+0/2/8R/0/0/1/3OP/4G/B.O/1/6G.PF/1/4/1/2/30/2T/1L.701O/3.M6/12J/0/6.L/CE/0/0/1/12
+K/8Q/B.3/1/48.JF/1/4/1/1/3A/3D/1M.OO3I/4.9/14K/0/3.6/8J/0/0/0/3N5/8S/B.L/0/3K.1F
+/0/3/1/2/2I/6S/1C.J5B3/4.5L/1MO/0/.L/A3/0/0/0/3O2/A7/A.9/1/3L.I/1/3/0/2/56/2L/21
+.23DF/3.IR/1MS/0/3/F8/1/.F/0/3L6/EI/9.R/1/3G.SF/1/3/0/1/CM/2E/1J.JKMO/3.39/2J4/0
+/6.F/11K/0/0/1/163/BO/B/1/5K.F/1/4/1/1/4T/3L/1I.PINC/3.9/T8/0/3.F/D0/0/0/1/2G8/6
+R/A.6/1/4H.SF/0/3/1/1/33/27/1O.7KC/3.OR/11E/0/.I/L6/0/0/0/H5/A6/9.F/1/37.JF/1/3/
+1/1/3O/49/15.4G53/3.TC/PG/0/3.F/AP/0/0/0/27N/BE/A.I/0/4A.6/0/3/0/1/70/EO/27.R669
+/3.2C/172/1/1.9/51/1/1/1/6B/73/D.6/0/1G.F/0/4/1/2/1J/2D/1P.D2C/4.3R/P8/0/.I/9S/0
+/0/0/3JR/8G/A.L/1/25.3/0/3/0/1/2P/T/1F.OIIR/3.6R/QA/0/5.3/-9/1/1/1/12B/3E/D/1/5T
+.O/1/4/1/1/-9/I/1M.QKOI/3.R/ML/0/.I/8B/0/0/1/3C9/62/A.O/0/1R.AF/0/4/0/1/3H/P/1H.
+5D7O/3.F9/18M/0/1.9/AG/0/0/1/2M8/7S/A/1/4R.7F/0/4/0/2/4H/2F/1N.HT09/3.3I/1I1/1/1
+.6/8T/0/0/1/RE/5G/B.3/1/5F.PETTTTTTT/1/4/1/1/28/-9/1E.33I/4.2C/194/0/.F/8S/0/0/0
+/3IF/F3/A/1/2Q.O/0/2/0/2/35/9/1B.SEB3/2.QL/20S/0/G.6/-9/0/0/1/14H/43/C.I/1/9T.4E
+TTTTTTT/1/4/1/1/-9/1C/23.ICI/3.Q3/13J/0/.R/E0/0/0/1/3HT/-9/9.L/1/1R.AF/0/3/0/1/7
+M/10/1E.6OEC/3.CR/28P/0/H.BTTTTTTTTT/1T5/0/0/1/1H3/DS/B.F/1/5F.PETTTTTTT/1/3/1/2
+/37/6P/22.017O/3.O/KE/0/2.O/82/0/0/1/SA/41/D.6/1/4G.C/1/4/1/2/3E/2E/1A.GHL/3.OR/
+152/0/1.R/ES/0/0/0/384/61/9.O/1/47.3/0/3/0/1/5P/20/22.JA9I/3.SF/J7/0/1.F/B1/0/0/
+0/336/5F/A.3/0/48.JF/0/4/1/2/39/D/1C.A1PO/3.K3/1F3/0/.L/J8/0/0/0/3ET/E7/A.L/1/47
+.3/0/2/0/2/3F/15/1C.T10I/3.H3/RQ/0/.C/8N/0/0/0/3F0/EP/B/1/2E.C/0/2/0/1/41/43/1P.
+SPFR/3.AF/1OG/0/.O/8N/0/0/0/3D8/6Q/9.O/1/3Q.7F/0/2/0/1/29/R/22.POTL/3.I/3PM/0/1.
+3/D9/0/0/0/39K/BE/A.3/1/55/0/2/0/1/52/2J/1L.7EOI/3.RR/2KO/0/7.9/E6/0/0/1/1D7/8C/
+A.F/0/4P.L/0/3/1/1/78/8M/1G.MQ7F/3.99/1C0/0/1.3/AS/0/0/1/2A6/4M/B.I/1/34.GF/0/4/
+0/2/4E/59/1O.27N3/4.2L/2AK/0/1.3/9K/0/0/1/3BT/AI/A/1/66/0/3/0/1/4Q/18/1H.12K3/3.
+N3/QE/0/.R/BG/0/0/0/3BK/B6/A.I/1/45.GF/0/2/0/1/1Q/1T/1P.LNHC/3.EC/O0/0/1/C4/0/0/
+1/2KJ/9D/9.R/1/4E.PF/0/2/1/2/2S/K/1G.32CR/3.I/1JM/0/2.R/B2/0/0/1/Q6/97/B/1/4E.PF
+/0/4/1/2/3D/2Q/1M.8IMF/3.7O/49Q/0/S/IG/0/.F/1/11D/B5/A/1/6I.C/0/3/1/2/5L/52/1L.6
+0DF/3.P6/SI/0/.L/A9/0/0/0/396/8D/B.C/1/1B.PF/1/3/0/2/3G/36/13.PS1F/3.QL/1CO/0/1.
+6/-9/0/.F/0/2R5/7T/9.C/1/5N.I/0/3/0/2/-9/1S/2F.0AD6/3.B3/QB/0/1.6/9I/1/.F/0/39P/
+73/A.L/1/1R.AF/0/2/0/1/3O/12/10.PRCI/3.7O/47Q/0/7.6/13P/0/0/1/1HH/B0/9.O/1/6I.C/
+0/3/1/2/9A/87/21.O3NC/3.NL/1PE/0/3/8H/1/.F/1/PC/4K/9.R/0/3C.9/1/4/1/1/3M/9K/14.T
+I9/3.IR/1L6/0/1/-9/0/0/0/36B/7N/A/1/4E.PF/1/1/0/2/-9/1R/1P.17II/3.0R/O1/0/.R/FA/
+0/0/0/35K/A1/9.C/1/2P.7F/0/2/0/1/5O/1R/29.S6TL/3.09/2FQ/0/2.9/JG/0/0/1/18C/B9/A.
+R/0/3O.L/0/3/1/1/46/83/1J.I3SO/3.PF/F3/0/.F/77/0/0/0/35D/90/B.3/1/1O.7F/0/1/0/1/
+28/28/29.B9BL/2.GO/156/0/2.C/5I/1/1/0/4K/3I/E.3/0/40.R/1/3/1/1/2F/7F/1D.GKPF/3.A
+F/1O0/0/.I/7A/0/.F/1/2SQ/AB/B.6/1/53.DF/1/4/0/2/2K/1R/1T.C7M6/3.FI/2M8/0/P.F/BS/
+0/0/1/SD/51/B.F/1/6L.F/0/2/1/2/6P/79/1I.MMGO/3.CI/228/0/.I/9G/0/0/0/34F/G7/A/1/2
+H.F/0/2/0/2/6Q/14/16.ENFI/3.B3/1GS/0/3.C/F0/0/0/0/2MF/AD/B.6/1/3Q.7F/0/2/0/1/3S/
+12/1F.MOAO/3.DO/NO/0/2.F/AH/0/0/0/1L6/6R/A.3/0/4A.6/0/3/1/2/4K/77/1R.B4FR/3.II/D
+O/0/.I/77/0/0/0/32C/7E/A.F/1/2F.SF/0/3/0/2/3T/D/1C.M8T3/3.GO/124/0/2.9/GM/0/0/0/
+337/8T/9.I/1/40.R/0/2/0/2/60/4/1S.OFEC/3.5L/R5/0/3.6/8K/0/0/1/66/5A/C/1/47.3/1/4
+/1/2/3B/31/1N.ERP6/4.2C/KM/0/.9/7N/0/0/0/28F/BS/9.R/1/26.JF/0/3/1/1/28/K/1D.CCKL
+/3.A6/1HI/0/8.F/-9/0/.F/1/8O/2S/D.9/1/61.AF/1/4/1/2/-9/5B/1N.95C/3.DF/2N6/0/4/6G
+/0/0/1/15R/72/B.9/0/4D.9/0/4/1/1/4M/2K/1B.AJKC/3.7O/25A/0/5.L/1JA/0/0/1/30L/73/9
+.F/1/F7.7F/0/2/0/2/3I/2O/20.SMBC/3.PO/13P/0/.R/CG/0/0/1/1Q2/7S/A.9/0/2N.L/0/4/1/
+1/54/6K/1H.MI76/3.O/S2/0/.C/8H/0/0/1/30D/-9/9.6/1/37.JF/0/2/0/2/3K/1E/15.ELLI/4.
+6I/1G7/0/1.9/DI/0/0/0/1AC/9P/A.3/1/4M.I/0/3/1/2/4H/27/1I.JQA6/3.I9/1K9/0/1.6/D0/
+0/0/0/2TM/8N/9/1/2S.AF/0/3/0/1/1M/12/1M.K16/4.FI/Q4/0/.F/-9/0/0/0/2PO/C1/A.3/1/2
+E.C/0/3/0/1/-9/11/1J.Q3/3.A6/14B/0/1.9/6P/0/0/0/2GL/77/9.O/1/31.DF/1/3/0/2/46/25
+/10.87KC/3.CI/1GN/0/3/7Q/0/0/1/2SH/GD/9.O/1/2T.R/1/2/0/1/2Q/2G/1P.H0JO/3.PF/M3/0
+/.F/-9/0/0/0/2S4/AB/9.L/1/2J.1F/0/1/0/1/-9/23/1M.4HT3/3.O/NS/0/.O/9D/0/0/0/2RE/B
+A/A.3/1/3I.F/0/3/0/2/5I/52/1B.I8R9/3.GO/1TK/0/3.6/-9/0/0/1/1JM/4T/A.3/1/4J.F/1/4
+/1/1/-9/2H/1P.DH4O/4.09/IJ/0/.R/8I/0/0/0/2QT/97/A.C/1/1D.C/0/2/0/2/4D/1J/2A.03KL
+/4.2C/M5/0/.I/-9/0/0/0/2Q0/AP/A.6/1/2E.C/0/4/0/1/-9/1L/1D.S87F/3.OR/2BI/0/1.O/D6
+/0/0/1/2PN/98/9.R/1/3C.9/0/4/0/2/4D/19/1C.H18L/4.BC/1O9/0/4.L/FS/0/0/0/2PD/5P/A.
+C/1/7R.4F/0/3/0/2/2G/1E/1E.H2GF/3.HC/IE/0/1.C/88/0/0/1/2P6/2J/A.9/1/2F.SF/1/4/0/
+1/3G/23/1Q.SA46/3.KL/ME/0/.I/-9/0/0/1/2P5/HT/9.R/1/Q.AF00000001/0/2/0/1/-9/5B/1A
+.7O2L/3.LR/1EP/0/.F/6L/0/0/0/2EL/EP/A.3/1/1O.7F/0/2/0/2/4P/1E/17.I6BL/3.GF/2KC/0
+/B/ME/0/0/1/12E/FL/9.O/1/5H.C/0/3/1/2/4K/BS/1I.AP7O/3.G6/17M/0/.O/8G/0/0/0/2O7/6
+C/A.F/1/2E.C/0/3/0/1/34/1C/2A.P2MO/3.FR/113/0/2/7F/0/.F/0/1MG/6K/C.L/1/29.MF/1/3
+/1/1/22/1L/15.NML9/3.CR/35K/0/E/QS/0/0/1/OD/8S/B.F/1/53.DF/0/3/1/2/4H/8B/22.IKI9
+/3.EC/LO/0/.L/67/0/0/1/2HM/5E/B/1/40.R/0/4/0/1/38/1B/1K.JCMF/3.IR/20C/0/1.9/C0/0
+/0/1/2LQ/8G/9.R/1/37.JF/0/3/0/2/5E/1M/1O.FO9/3.RR/20S/0/2.9/-9/0/0/0/2NE/AR/A.6/
+1/4D.9/1/2/0/1/-9/O/1M.KNCR/3.AF/44K/1/O.F/16C/0/0/1/76/D9/F.5TTTTTTTTT/1/4R.7F/
+1/4/1/2/EC/7N/1M.LI2L/3.KL/N6/0/.R/A8/0/0/1/2LD/BE/9.O/1/1L.4F/0/4/0/1/3B/27/1Q.
+N4QL/3.5L/2CO/0/A.O/112/0/0/0/QH/CM/A.C/1/5B.6/0/4/1/2/57/8R/1E.BR9/4.9/12F/0/1.
+F/9N/0/0/0/2LJ/B6/9.3/1/45.GF/0/2/0/1/1Q/1K/T.GJHL/3.R/2OO/0/3.L/BH/0/0/1/2HK/49
+/B.F/1/7B.JF/0/4/0/1/30/2G/1R.16AO/3.AO/R0/0/1.C/7G/0/0/1/2IN/3R/B.I/1/2C.PF/1/4
+/0/1/22/D/1E.IO9/3.T3/18O/0/.I/8Q/0/0/0/2IP/6L/A.3/1/3C.9/0/2/0/1/3C/P/15.NRJO/2
+.R/1QC/0/.L/9G/0/0/0/2IH/CL/9.I/1/4L.1F/1/2/0/2/30/18/1A.LFH3/3.CR/1GF/0/2.3/D2/
+0/0/0/1N2/AS/A.6/1/64.DF/0/3/0/1/6E/1M/12.6TCR/3.GF/1GB/0/4.L/7Q/0/0/0/2H8/B2/9.
+R/1/4H.SF/1/3/0/2/3O/3M/1B.2N4O/3.6/1SI/0/.I/7P/0/0/1/2GE/7I/A.O/1/3G.SF/0/4/0/2
+/27/Q/21.J6/3.O/14O/0/.F/7D/0/0/0/2FM/H4/A/1/2K.I/0/2/0/1/2T/F/17.1L3I/4.16/JS/0
+/.F/4T/0/0/1/2E1/5G/9.R/1/1M.L/0/2/0/2/1R/7H/22.HB5L/3.M6/144/0/.L/8F/0/0/0/29K/
+9B/A.6/1/2H.F/0/3/1/2/1S/N/1I.T9JO/3.GF/1KG/1/2.F/CM/0/0/0/29B/46/A.9/1/7S.L/0/3
+/1/1/-9/3I/21.TLAO/4.23/5QK/0/.I/73/0/0/0/2F5/80/B/1/1R.AF/0/1/0/1/28/C/2C.N4QL/
+3.9R/OD/0/.I/-9/1/.F/0/2CB/8J/A.3/1/2P.7F/0/4/0/1/-9/E/21.8PF/3.6/1I0/0/3.R/D6/0
+/0/1/104/56/A/1/53.DF/0/4/1/1/4B/1S/1M.ILNC/4.09/1AA/0/.L/8C/0/0/1/2DQ/A9/9.F/1/
+2C.PF/1/2/0/2/1S/B/1J.MQQC/3.B3/16I/0/.R/BG/0/0/1/2E4/9S/A/0/42.DF/0/2/0/2/30/2L
+/1M.RCSO/3.MO/1CM/0/1.9/-9/0/0/0/2D5/3O/A.9/1/3A.MF/0/3/0/2/-9/R/1H.7R4F/3.TC/15
+O/0/1.6/7M/0/0/0/2CG/7D/9.R/1/3A.MF/0/3/0/2/39/B/1K.63I/3.C/17O/0/.F/DA/0/0/0/2C
+I/BQ/A.6/1/36.3/1/3/0/1/1P/9/29.AC9/3.CR/226/0/.R/DE/0/0/1/1TG/7Q/9.R/1/2J.1F/0/
+3/1/2/7E/14/1B.525L/3.PF/1A4/0/5.R/1CG/0/0/0/160/76/A.L/1/6N.1F/0/3/1/2/57/4L/1T
+.4SF/3.KC/SG/0/.F/-9/0/0/0/2C8/4Q/A.C/1/1P.O/0/3/0/1/-9/K/16.2BDO/3.99/1TK/0/B.C
+/K8/0/0/1/QA/9S/A.O/1/51.R/0/4/1/2/70/25/14.HPSF/3.QL/TR/0/.F/-9/0/0/0/2CA/E3/A.
+3/1/26.JF/0/1/0/1/-9/T/1C.LBQC/4.53/116/0/1.I/75/0/0/0/2BR/5Q/9.I/1/4E.PF/0/3/0/
+2/2P/27/23.IRAO/3.6I/30G/0/3.O/E6/0/0/0/1B5/7I/A.I/1/70.O/1/2/1/1/3N/36/1Q.IQLR/
+3.JF/3G6/0/.R/C0/0/0/1/28A/8T/9.L/1/34.GF/0/4/0/2/54/2C/1G.7RNC/3.BC/2H0/0/4.F/C
+C/0/0/1/JR/80/C.C/1/5H.C/0/3/1/2/4F/7H/21.78L/2.CR/213/1/E.3/ES/1/1/1/B4/70/B/1/
+4E/0/4/1/1/55/43/18.II2L/3.JO/1AE/0/1/A9/0/0/0/24P/A9/9.L/1/58.3/0/3/0/1/3B/27/1
+8.N3IR/3.JO/15F/0/.L/94/0/0/0/27C/8B/A.3/1/2S.AF/0/2/0/1/4F/3I/1Q.KPPO/3.L/TE/0/
+.F/7D/0/0/1/25S/7L/9.I/1/2F.SF/0/3/0/2/3E/19/1S.SG7O/3.AF/1NB/0/2.9/AG/0/0/0/139
+/D4/9.L/0/5T.O/0/2/1/1/23/5M/16.RKCR/3.AF/LF/0/.L/75/0/0/0/25H/5F/9.I/1/33/0/3/0
+/2/2E/1B/22.CD9I/3.1F/140/1/4.F/6B/1/.F/1/BI/4J/B.C/1/5P.4F/0/4/1/1/3S/6K/14.I88
+C/3.C9/AA/0/3.9/A2/0/0/1/25T/35/B.F/1/2N.L/1/4/0/2/1E/1L/1S.A1PO/1.SO/2F0/0/3.C/
+H8/0/0/1/18P/6A/A.L/1/6N.1F/1/4/1/2/30/3P/1K.5DQL/3.0I/13B/0/.C/8R/0/0/1/251/8P/
+A.I/1/4D.9/0/3/0/1/2R/1H/1C.KH6I/3.1O/2RC/0/.R/H4/0/0/1/24C/9E/9.O/1/3F.C/1/4/0/
+1/2R/DM/14.BB8C/3.AF/12G/0/.R/J8/0/0/0/1T6/AM/B.6/1/3Q.7F/0/2/0/2/5R/2I/13.5EFI/
+4.4O/3R0/0/D/1EG/0/0/1/22M/B8/B.R/1/6T.7F/0/3/0/2/3L/2B/18.BDL9/3.NL/13G/0/1.F/8
+D/0/0/1/23I/BB/9.L/1/4J.F/1/3/0/1/3G/27/1T.MPII/2.SF/RA/0/1.I/EM/0/0/1/22M/61/A.
+3/1/2P.7F/0/3/0/1/3I/3F/26.CAO/3.AF/16D/0/.I/9A/0/.F/0/22E/9P/9.O/1/48.JF/0/2/0/
+2/2L/-9/1G.NKR9/2.S6/1TO/0/.O/A0/0/0/1/N4/AJ/B.6/1/4A.6/1/4/1/1/39/7L/1Q.2BDO/3.
+LI/C9/0/.C/7M/0/0/0/211/AQ/A.3/1/1L.4F/0/3/0/1/4J/O/1B.B6SO/3.II/179/0/4.C/AG/0/
+0/1/RR/9C/9.O/1/3O.L/1/4/0/2/AM/A8/24.H4TC/2.T3/1LN/0/1.R/BO/0/0/1/20A/97/9.R/1/
+6G.PF/0/3/0/1/52/2Q/27.EJ6/2.O9/26T/0/8/FI/0/0/1/110/7N/A/1/6I.C/0/4/1/2/4J/4J/1
+E.OQJ6/3.6I/1C8/0/3.R/BK/0/0/0/1QA/90/9.I/1/92.O/1/3/1/1/7L/41/1F.N47O/3.JF/QE/0
+/.I/93/0/0/1/1TK/A5/9.I/1/1M.L/0/3/0/2/74/1I/12.SF/3.N3/1NN/0/2.3/CR/0/0/1/1HP/6
+5/A.3/1/50.AF/0/4/0/1/13/23/1B.6ITL/2.OR/42L/0/6.3/1R2/0/0/1/OC/9R/A/1/58.3/0/3/
+0/1/4J/2T/1P.CF3I/3.F9/1B7/0/.O/AO/0/0/1/1TF/CB/A/1/26.JF/0/3/0/2/4Q/19/1H.TCLI/
+3.6/1LQ/0/1.9/82/0/0/0/1TD/6F/A.I/1/5P.4F/1/4/0/1/2B/15/1A.NM2C/3.AO/329/0/.I/9T
+/0/0/1/1ST/A3/A.R/1/7A.3/0/4/0/2/2P/N/1Q.T76R/3.I9/MG/0/.F/7H/0/0/0/1IH/89/9.R/1
+/2N/0/2/0/1/40/1A/28.DQCR/3.AF/10O/0/1.3/86/0/0/1/1T0/AH/A/1/3N.4F/1/4/0/1/30/3Q
+/2I.D5DO/3.0R/12N/1/7.3/83/0/0/1/1SP/37/B.6/0/58.3/1/4/0/1/54/CK/19.PLP6/3.MF/17
+Q/0/3.3/7H/0/0/1/OH/8O/A/1/3K/1/3/0/1/31/41/15.992L/3.PF/FG/0/.L/6D/0/0/1/1RP/56
+/A.9/1/1N/1/3/0/2/3S/15/11.D9NC/3.M6/RD/0/1.3/B6/0/0/0/1QL/82/9.L/1/2O/0/3/0/1/3
+I/1I/1S.7RNC/4.6R/CH/0/.F/9A/0/0/0/1NO/7H/A.I/1/1Q/0/2/0/1/4Q/16/1L.EJ6/3.D6/13D
+/0/1.3/DO/0/0/0/1QM/91/9.I/1/39/0/1/0/1/1P/2K/1T.T2R9/2.T3/170/0/3.3/97/0/0/1/1N
+P/7B/9.O/1/45/0/3/0/2/46/1C/2E.FLQ3/3.HL/17A/0/5.I/7M/0/0/1/1P6/88/A.R/0/38/0/4/
+0/2/48/68/1M.ARKL/3.46/SH/0/3.6/CF/0/0/1/1PR/CF/9.F/1/2T/1/3/0/2/-9/49/1C.NIBL/3
+.1O/2PC/0/2.O/AM/0/0/1/1PG/7L/9.F/1/31/0/3/0/2/6T/25/14.Q76R/3.H3/1GQ/0/1.3/EC/0
+/.F/1/1DB/88/B.C/1/6A/1/4/0/2/2H/1F/1E.45J6/3.3I/23L/0/3.C/BQ/0/0/1/1LC/AI/B.6/1
+/32/1/3/0/2/4A/68/1G.BDL9/3.6/118/0/3.F/BI/0/0/1/164/9Q/A/1/40/0/4/0/2/4Q/41/1Q.
+98DO/3.9I/KD/0/.F/AI/0/0/0/1NO/99/A.6/1/2A/0/3/0/1/8K/1M/2A.R6P6/2.9R/KK/1/6.I/7
+C/1/1/1/5T/6F/C.3/1/3G/1/4/1/1/31/4I/1P.BPC9/2.MF/RO/1/6.C/BE/0/.F/1/19L/4T/B/1/
+2M/0/4/1/1/5T/G/1F.2FNC/3.F/1HI/0/3.I/CE/0/0/0/1FD/51/A.3/1/68/0/2/0/2/1E/4N/Q.8
+A38TTTTTT/3.M6/17I/0/1/ES/0/0/1/1M8/7I/A.6/1/2B/1/3/0/1/3R/3C/1K.E523/3.F/11P/0/
+1/AL/0/0/1/1M9/9J/9.L/1/3L/0/3/0/2/5R/34/18.BSGO/2.RR/ME/0/.F/7G/0/0/0/1KP/53/9.
+O/1/1S/0/1/0/1/2P/M/1H.CHJ6/3.DO/1PR/0/2.6/AS/0/0/0/1LS/6M/9.I/1/2R/1/3/0/2/3Q/2
+F/1H.TCLI/3.23/26F/0/1.I/-9/0/0/0/1I7/CC/9.I/1/48/0/4/0/1/-9/4G/18.9EHC/3.N3/2O0
+/0/2.6/J2/0/0/0/1ET/A9/9.F/1/32/0/4/0/1/3O/2H/1K.378L/3.PF/LA/0/1/79/0/0/0/1JB/3
+5/A.L/1/4P/0/2/0/1/3I/27/15.2JE3/3.GO/1OG/0/1/AH/0/.F/0/1HO/D4/9.O/1/2O/0/3/0/2/
+3L/1E/12.F3CI/3.L/2B9/0/5.I/B8/0/0/0/1HA/75/9.R/1/65/0/4/0/2/6D/4A/1Q.4HT3/3.N3/
+10B/0/.F/6I/0/0/0/1HN/9A/9.O/1/1R/0/2/0/2/1Q/18/1G.4J6R/3.KL/2Q3/0/1.I/AP/0/0/0/
+1H2/9E/9.I/1/4M/0/3/0/1/4K/29/25.QF76/2.3/NF/1/H.QTTTTTTTTT/5P/1/1/0/1B/22/C.R/1
+/B8/0/4/1/1/7J/7A/13.S9F9/3.FI/1O2/0/1.9/A4/0/0/1/1IF/8F/9.F/1/2B/0/4/0/2/5J/37/
+22.POTL/3.TL/1D3/0/1.3/DM/0/0/0/14A/E2/9.I/1/31/0/4/0/2/3N/3D/1I.GRI/3.D6/162/0/
+1.9/9L/0/0/0/1H8/8B/9.F/1/2P/0/3/0/2/6F/2F/1G.AE5L/3.EC/MS/0/.O/8D/0/0/0/1GL/8C/
+A/1/1R/0/1/0/1/2K/25/18.PHFI/3.AO/1BR/0/2/AA/0/0/1/1GS/4N/9.O/1/42/1/3/0/1/3S/2A
+/1S.JCMF/3.DO/1SS/0/6.C/CD/0/0/0/1B4/8I/A.3/1/40/1/4/0/1/51/55/1I.S2K3/3.QL/L7/0
+/8.L/AA/1/.F/1/15H/9S/9.I/1/3R/0/2/0/2/82/3H/27.H5I9/3.TL/120/0/4/DQ/0/.F/1/QJ/8
+T/9.O/0/2Q/0/2/1/1/82/5R/25.TGC9/3.H3/O2/0/1.C/9O/0/0/0/1FD/9D/9.O/1/33/0/3/0/1/
+29/13/1A.R0LI/3.5C/3L6/0/3.6/B9/0/0/0/101/A4/9.R/1/6P/0/4/0/1/2O/43/1K.7AF/3.LR/
+15K/0/8.I/I6/0/0/1/1E9/9L/B.6/0/47/0/3/0/2/53/2O/1R.5QMO/2.TC/R5/0/8.F/6E/1/1/1/
+1E0/42/C.9/1/5D/1/4/0/2/2I/6G/20.G2S6/3.23/3F0/0/6.I/13A/0/0/1/1DC/9T/A.R/0/6D/0
+/4/0/1/4D/2S/15.AFTL/3.OR/SF/0/2.C/LG/0/0/0/T7/A6/A.9/0/47/0/3/0/1/6E/3C/11.BD2C
+/3.99/16P/0/.O/AS/0/0/0/1E1/9N/A.R/1/4H/0/4/0/2/35/22/1P.THK3/3.CR/182/0/1.6/95/
+0/0/1/HN/77/B.9/0/2F/0/4/0/1/31/3A/1M.LMSF/3.B3/9J/0/1.3/BA/0/0/1/1DA/83/A.6/1/3
+7/0/3/0/2/33/2D/18.2MFR/3.MO/1P3/0/2.C/BC/0/0/0/1D3/73/A.O/1/50/0/3/0/1/47/30/1S
+.53TL/2.6R/K1/0/5.6/-9/0/0/1/6R/6Q/C.9/1/4F/0/4/1/2/-9/7O/1F.692L/3.H3/1DH/0/1/D
+3/0/0/0/1D5/9P/A.F/1/2E/0/4/0/2/3D/1K/17.NSRI/3.SF/LR/0/.L/B5/0/0/0/1CB/8S/A.I/1
+/1M/0/2/0/1/3E/1D/20.JNOI/3.7F/19K/0/1/CC/0/0/1/1BK/88/A.I/1/4K/1/4/0/2/1P/3I/15
+.G146/3.RR/M3/0/.F/79/0/0/0/1B0/86/A.O/1/1F/0/3/0/1/2F/M/1D.1TMO/3.I9/5MO/0/2.R/
+E6/0/0/1/1AG/95/A.I/1/9I/1/3/0/2/4O/2D/1Q.BMAF/3.DF/15M/0/.I/7T/0/0/1/1AG/7H/A.L
+/1/1P/0/2/0/2/24/11/10.H676/3.GO/1CM/0/.O/93/0/0/0/189/BE/A.F/1/4A/0/2/0/2/1T/1M
+/21.5EFI/3.HC/QH/0/.C/86/0/0/1/18D/9I/A.C/1/31/0/2/0/1/3N/O/1S.8TOI/2.MF/18Q/0/.
+C/8K/0/0/0/134/7L/A.O/1/2A/0/2/0/2/2M/1B/22.9TA6/3.AF/1R3/0/1.L/EE/0/0/0/119/7O/
+A.6/1/5L/0/2/0/1/3A/19/17.TSM6/3.4O/150/0/2/87/0/0/0/RT/B5/A.F/1/3R/0/2/0/1/2S/2
+9/13.4HA6/3.NL/2AF/0/6.C/J6/0/0/0/Q8/6K/A.O/1/4G/1/2/0/2/4T/66/20/3.JF/-9/-9/.L/
+-9/0/0/-9/4FC/CI/B/-9/-9/-9/-9/0/-9/-9/-9/25/3.16/-9/-9/1.C/-9/1/.F/-9/3SL/B1/C.
+3/-9/-9/-9/-9/1/-9/-9/-9/1O/4.0R/-9/-9/.L/-9/0/0/-9/34O/7G/9.O/-9/-9/-9/-9/0/-9/
+-9/-9/2F/3.SO/-9/-9/.L/-9/0/.F/-9/291/-9/B.9/-9/-9/-9/-9/1/-9/-9/-9/22/2.EC/-9/-
+9/.O/-9/0/0/-9/3B0/93/A/-9/-9/-9/-9/0/-9/-9/-9/1D/3.KC/-9/-9/.L/-9/0/0/-9/1Q0/A6
+/9.F/-9/-9/-9/-9/0/-9/-9/-9/1G/2.RR/-9/-9/5/-9/1/0/-9/1B/8K/A.C/-9/-9/-9/-9/1/-9
+/-9/-9/1E/3.O9/-9/-9/.C/-9/0/.F/-9/2K3/7G/A.F/-9/-9/-9/-9/0/-9/-9/-9/21/3.C9/-9/
+-9/1.9/-9/1/.F/-9/190/8J/A.R/-9/-9/-9/-9/0/-9/-9/-9/24/3.KL/-9/-9/1.3/-9/0/0/-9/
+271/4J/A.F/-9/-9/-9/-9/1/-9/-9/-9/1A/4.16/-9/-9/.I/-9/0/0/-9/3RD/4A/B.6/-9/-9/-9
+/-9/0/-9/-9/-9/23/3.S6/-9/-9/.I/-9/0/0/-9/3PI/7O/B.F/-9/-9/-9/-9/0/-9/-9/-9/14/3
+.76/-9/-9/1.O/-9/0/0/-9/59P/-9/I/-9/-9/-9/-9/0/-9/-9/-9/1M/3.CI/-9/-9/1.F/-9/0/0
+/-9/1B6/86/A.9/-9/-9/-9/-9/0/-9/-9/-9/1J/3.TL/-9/-9/1.6/-9/0/0/-9/4KE/-9/B.6/-9/
+-9/-9/-9/0/-9/-9/-9/1O/3.I/-9/-9/1/-9/0/0/-9/2AB/-9/C.3/-9/-9/-9/-9/1/-9/-9/-9/2
+3/3.C/-9/-9/.L/-9/0/0/-9/1IM/CB/A.3/-9/-9/-9/-9/1/-9/-9/-9/1O/3.IR/-9/-9/3.F/-9/
+0/0/-9/1S6/AP/A.9/-9/-9/-9/-9/1/-9/-9/-9/1G/3.GO/-9/-9/3.3/-9/0/.F/-9/34/4M/D.I/
+-9/-9/-9/-9/1/-9/-9/-9/1N/2.Q3/-9/-9/C.I/-9/1/0/-9/Q5/3O/B.O/-9/-9/-9/-9/1/-9/-9
+/-9/1Q/3.RI/-9/-9/2.O/-9/0/0/-9/1KI/-9/A.I/-9/-9/-9/-9/1/-9/-9/-9/1Q/3.F9/-9/-9/
+7.3/-9/0/0/-9/FG/O1/B.O/-9/-9/-9/-9/1/-9/-9/-9/1P/4.4F/-9/-9/.I/-9/0/0/-9/3RH/9A
+/A.3/-9/-9/-9/-9/0/-9/-9/-9/25/3.A6/-9/-9/2.3/-9/0/0/-9/2RP/55/A.3/-9/-9/-9/-9/0
+/-9/-9/-9/1Q/3.J6/-9/-9/1.O/-9/0/0/-9/2G6/4L/A/-9/-9/-9/-9/1/-9/-9/-9/1H/3.CI/-9
+/-9/G/-9/0/0/-9/QB/FP/D.O/-9/-9/-9/-9/1/-9/-9/-9/20/4.BC/-9/-9/.I/-9/0/0/-9/3QC/
+8T/A.I/-9/-9/-9/-9/0/-9/-9/-9/1N/4.5L/-9/-9/5.C/-9/0/0/-9/3QF/4L/B.6/-9/-9/-9/-9
+/0/-9/-9/-9/1O/3.8L/-9/-9/9/-9/1/0/-9/3L/9G/D.3/-9/-9/-9/-9/1/-9/-9/-9/1K/4.09/-
+9/-9/.R/-9/0/0/-9/3HL/84/A.F/-9/-9/-9/-9/0/-9/-9/-9/1I/2.P6/-9/-9/B.3/-9/0/0/-9/
+KP/-9/C.6/-9/-9/-9/-9/1/-9/-9/-9/16/3.MO/-9/-9/8.R/-9/0/0/-9/3F7/6T/A.I/-9/-9/-9
+/-9/0/-9/-9/-9/1I/3.MO/-9/-9/.F/-9/0/0/-9/3AL/CS/A.3/-9/-9/-9/-9/0/-9/-9/-9/2A/3
+.O9/-9/-9/.I/-9/1/.F/-9/IJ/5A/B/-9/-9/-9/-9/1/-9/-9/-9/1L/3.RI/-9/-9/3.C/-9/0/0/
+-9/33M/-9/9.9/-9/-9/-9/-9/1/-9/-9/-9/1M/3.46/-9/-9/.R/-9/0/0/-9/34E/6B/C.9/-9/-9
+/-9/-9/0/-9/-9/-9/1O/3.OI/-9/-9/1.C/-9/0/0/-9/355/89/A.9/-9/-9/-9/-9/0/-9/-9/-9/
+1I/4.3/-9/-9/2.3/-9/0/0/-9/M2/6K/9/-9/-9/-9/-9/1/-9/-9/-9/26/3.C/-9/-9/F/-9/0/0/
+-9/O7/50/B.3/-9/-9/-9/-9/1/-9/-9/-9/1N/4.5L/-9/-9/.I/-9/0/0/-9/30G/B0/9.R/-9/-9/
+-9/-9/0/-9/-9/-9/22/3.C/-9/-9/1.9/-9/0/0/-9/2TS/5H/A.I/-9/-9/-9/-9/0/-9/-9/-9/1T
+/3.3I/-9/-9/1.9/-9/0/0/-9/130/45/9.I/-9/-9/-9/-9/1/-9/-9/-9/19/3.MF/-9/-9/1.I/-9
+/0/0/-9/2HS/4P/A.C/-9/-9/-9/-9/0/-9/-9/-9/27/3.7O/-9/-9/2.6/-9/1/.F/-9/1NQ/5L/B.
+3/-9/-9/-9/-9/1/-9/-9/-9/1S/3.DO/-9/-9/3/-9/0/0/-9/2PD/3J/A.C/-9/-9/-9/-9/0/-9/-
+9/-9/24/3.EL/-9/-9/.O/-9/0/0/-9/2OH/AE/A.9/-9/-9/-9/-9/0/-9/-9/-9/1G/2.QL/-9/-9/
+.O/-9/0/0/-9/2OE/DT/A.GF/-9/-9/-9/-9/0/-9/-9/-9/24/3.4F/-9/-9/1.O/-9/0/0/-9/PS/6
+3/A.C/-9/-9/-9/-9/1/-9/-9/-9/1B/2.99/-9/-9/5.F/-9/0/0/-9/KH/H7/A.C/-9/-9/-9/-9/0
+/-9/-9/-9/1J/3.16/-9/-9/I/-9/0/0/-9/2FH/EC/9.L/-9/-9/-9/-9/0/-9/-9/-9/1E/3.F/-9/
+-9/.I/-9/0/0/-9/2ET/50/9.R/-9/-9/-9/-9/0/-9/-9/-9/1T/3.AF/-9/-9/2.L/-9/0/0/-9/BT
+/4M/B.F/-9/-9/-9/-9/1/-9/-9/-9/23/3.HC/-9/-9/.R/-9/0/0/-9/245/7E/A/-9/-9/-9/-9/0
+/-9/-9/-9/21/3.09/-9/-9/1.9/-9/0/0/-9/89/7D/A.L/-9/-9/-9/-9/1/-9/-9/-9/24/3.EL/-
+9/-9/1.3/-9/0/0/-9/2DC/5G/9.O/-9/-9/-9/-9/0/-9/-9/-9/1J/2.N3/-9/-9/D.O/-9/1/0/-9
+/1D/CS/B.3I/-9/-9/-9/-9/1/-9/-9/-9/1C/4.FI/-9/-9/4.C/-9/0/0/-9/19R/3C/A.O/-9/-9/
+-9/-9/1/-9/-9/-9/1K/3.AO/-9/-9/G/-9/0/0/-9/16F/CO/A/-9/-9/-9/-9/1/-9/-9/-9/1L/3.
+FI/-9/-9/7.9/-9/1/.F/-9/G9/8P/B.3/-9/-9/-9/-9/1/-9/-9/-9/17/3.GF/-9/-9/.I/-9/0/0
+/-9/2BJ/88/A.9/-9/-9/-9/-9/0/-9/-9/-9/22/3.8L/-9/-9/.L/-9/0/0/-9/2A3/6A/9.O/-9/-
+9/-9/-9/0/-9/-9/-9/1L/3.3/-9/-9/.L/-9/0/0/-9/260/94/A.I/-9/-9/-9/-9/0/-9/-9/-9/1
+M/3.76/-9/-9/1.L/-9/0/0/-9/1ER/7L/A.F/-9/-9/-9/-9/0/-9/-9/-9/1E/3.IR/-9/-9/9.F/-
+9/0/0/-9/1J8/9M/A.6/-9/-9/-9/-9/1/-9/-9/-9/13/3.MO/-9/-9/2.6/-9/0/0/-9/267/8D/9.
+R/-9/-9/-9/-9/0/-9/-9/-9/20/3.II/-9/-9/1.O/-9/0/.F/-9/18S/7F/9.R/-9/-9/-9/-9/1/-
+9/-9/-9/23/2.LR/-9/-9/3.9/-9/1/.F/-9/JR/7E/B.3/-9/-9/-9/-9/1/-9/-9/-9/13/4.2C/-9
+/-9/2.R/-9/0/0/-9/1RF/DS/A.F/-9/-9/-9/-9/0/-9/-9/-9/1B/3.JO/-9/-9/1.L/-9/0/0/-9/
+239/32/B/-9/-9/-9/-9/0/-9/-9/-9/1L/2.HC/-9/-9/E/-9/0/0/-9/7B/6A/B.I/-9/-9/-9/-9/
+1/-9/-9/-9/17/3/-9/-9/.O/-9/0/.F/-9/142/2G/A.O/-9/-9/-9/-9/0/-9/-9/-9/1T/3.C/-9/
+-9/1.9/-9/0/0/-9/1OJ/83/9.L/-9/-9/-9/-9/0/-9/-9/-9/1P/2.RR/-9/-9/.L/-9/0/0/-9/1O
+F/6T/A.I/-9/-9/-9/-9/0/-9/-9/-9/1O/2.BC/-9/-9/1.L/-9/0/0/-9/1P4/5G/9.O/-9/-9/-9/
+-9/0/-9/-9/-9/1J/3/-9/-9/D.I/-9/0/.F/-9/1P3/7N/9.R/-9/-9/-9/-9/0/-9/-9/-9/1A/3.F
+/-9/-9/.R/-9/0/0/-9/1M0/3R/A.R/-9/-9/-9/-9/0/-9/-9/-9/27/3.1O/-9/-9/.L/-9/1/0/-9
+/1ML/5F/A/-9/-9/-9/-9/0/-9/-9/-9/28/3.4F/-9/-9/3/-9/0/0/-9/1H9/4J/A/-9/-9/-9/-9/
+0/-9/-9/-9/1B/2.O/-9/-9/1.6/-9/0/0/-9/1I3/40/B/-9/-9/-9/-9/0/-9/-9/-9/29/3.0R/-9
+/-9/.C/-9/0/0/-9/1FI/5N/A.R/-9/-9/-9/-9/0/-9/-9/-9/1M/2.SO/-9/-9/.L/-9/1/.F/-9/6
+D/AJ/9.R/-9/-9/-9/-9/1/-9/-9/-9/1R/3.23/-9/-9/2/-9/1/.F/-9/1FH/2K/C.3/-9/-9/-9/-
+9/0/-9/-9/-9/16/3.TC/-9/-9/1.C/-9/0/0/-9/1E9/DC/B/-9/-9/-9/-9/0/-9/-9/-9/1K/3.EC
+/-9/-9/1.I/-9/0/0/-9/1EN/97/A.6/-9/-9/-9/-9/0/-9/-9/-9/24/3.JF/-9/-9/.F/-9/0/0/-
+9/1E8/E5/A.6/-9/-9/-9/-9/0/-9/-9/-9/22/3.EL/-9/-9/7.9/-9/0/0/-9/1FP/69/A.R/-9/-9
+/-9/-9/0/-9/-9/-9/1C/2.OI/-9/-9/8.3/-9/0/0/-9/1C0/6D/A.C/-9/-9/-9/-9/0/-9/-9/-9/
+1E/3.A6/-9/-9/.F/-9/0/0/-9/1AN/8I/A.I/-9/-9/-9/-9/0/-9/-9/-9/29/3.5L/-9/-9/4.6/-
+9/0/0/-9/115/40/B.3/-9/-9/-9/-9/1/-9/-9/-9/1M/3.09/-9/-9/.O/-9/0/0/-9/11D/8G/A.I
+/-9/-9/-9/-9/0/-9/-9/-9/26/3.9R/-9/-9/2.F/-9/0/0/-9/181/8G/A.O/-9/-9/-9/-9/0/-9/
+-9/-9/1A/3.I/-9/-9/4.I/-9/0/0/-9/16C/B7/A.C/-9/-9/-9/-9/0/-9/-9/-9/1M/3.J6/-9/-9
+/1/-9/0/0/-9/18A/BA/A.I/-9/-9/-9/-9/0/-9/-9/-9/1G/2.KC/-9/-9/4.F/-9/0/0/-9/ND/79
+/B.F/-9/-9/-9/-9/1/-9/-9/-9/1O/3.KL/-9/-9/1.3/-9/0/0/-9/17J/7A/A.O/-9/-9/-9/-9/0
+/-9/-9/-9/1L/3.53/-9/-9/1.R/-9/0/.F/-9/166/5C/A.L/-9/-9/-9/-9/0/-9/-9/-9/1D/3.LR
+/-9/-9/.L/-9/0/0/-9/15H/74/A.O/-9/-9/-9/-9/0/-9/-9/-9/19/3.O9/-9/-9/1.F/-9/0/0/-
+9/15M/8F/A.O/-9/-9/-9/-9/0/-9/-9/-9/1L/3.H3/-9/-9/.I/-9/0/0/-9/179/9G/A.I/-9/-9/
+-9/-9/0/-9/-9/-9/27/3.HC/-9/-9/1/-9/0/0/-9/16H/84/A.O/-9/-9/-9/-9/0/-9/-9/-9/15/
+3.6R/-9/-9/.L/-9/0/0/-9/12T/AC/A.O/-9/-9/-9/-9/0/-9/-9/-9/27/2.SO/-9/-9/1.6/-9/0
+/0/-9/ML/5O/A.R/-9/-9/-9/-9/1/-9/-9/-9/19/3.OR/-9/-9/.R/-9/0/0/-9/16N/60/B.6/-9/
+-9/-9/-9/0/-9/-9/-9/1R/3.CI/-9/-9/1.I/-9/0/0/-9/155/4N/9.R/-9/-9/-9/-9/0/-9/-9/-
+9/1S/3.MF/-9/-9/.O/-9/0/0/-9/N1/8T/A.C/-9/-9/-9/-9/0/-9/-9/-9/1N/3.8L/-9/-9/.L/-
+9/0/0/-9/12G/BK/A.I/-9/-9/-9/-9/0/-9/-9/-9/ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/octave.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/octave.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/octave.Rout.save	(revision 2476)
@@ -0,0 +1,61 @@
+
+R version 2.12.0 Under development (unstable) (2010-03-25 r51410)
+Copyright (C) 2010 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+> library("foreign")
+> otd <- read.octave("octave.dat")
+> summary(otd)
+                    Length Class  Mode     
+a_string            2      -none- character
+a_bool              1      -none- logical  
+a_struct            3      -none- list     
+a_cell              4      -none- list     
+a_complex_scalar    1      -none- complex  
+a_list              3      -none- list     
+a_complex_matrix    4      -none- complex  
+a_range             5      -none- numeric  
+a_scalar            1      -none- numeric  
+a_complex_3_d_array 8      -none- complex  
+a_3_d_array         8      -none- numeric  
+a_matrix            4      -none- numeric  
+a_bool_matrix       4      -none- logical  
+> str(otd)
+List of 13
+ $ a_string           : chr [1:2] "foo" "bar"
+ $ a_bool             : logi FALSE
+ $ a_struct           :List of 3
+  ..$ a: num 1
+  ..$ b: num [1:2, 1:2] 1 3 2 4
+  ..$ c: chr "foo"
+ $ a_cell             :List of 4
+  ..$ : num 1
+  ..$ : chr "foo"
+  ..$ : num [1:2, 1:2] 1 3 2 4
+  ..$ : chr "bar"
+  ..- attr(*, "dim")= int [1:2] 2 2
+ $ a_complex_scalar   : cplx 0+1i
+ $ a_list             :List of 3
+  ..$ : num 1
+  ..$ : num [1:2, 1:2] 1 3 2 4
+  ..$ : chr "foo"
+ $ a_complex_matrix   : cplx [1:2, 1:2] 1+2i 5+0i 3-4i ...
+ $ a_range            : num [1:5] 1 2 3 4 5
+ $ a_scalar           : num 1
+ $ a_complex_3_d_array: cplx [1:2, 1:2, 1:2] 1+1i 3+1i 2+1i ...
+ $ a_3_d_array        : num [1:2, 1:2, 1:2] 1 3 2 4 5 7 6 8
+ $ a_matrix           : num [1:2, 1:2] 1 3 2 4
+ $ a_bool_matrix      : logi [1:2, 1:2] TRUE FALSE FALSE TRUE
+> q()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/tsdumpdata
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/tsdumpdata	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/tsdumpdata	(revision 2476)
@@ -0,0 +1,455 @@
+sunspot
+structure
+3
+.Data
+numeric
+37
+40
+115
+100
+80
+60
+40
+23
+10
+10
+25
+75
+145
+130
+130
+80
+65
+20
+10
+5
+10
+60
+190
+180
+175
+120
+50
+35
+20
+10
+15
+30
+60
+105
+105
+105
+80
+65
+.Tsp
+numeric
+3
+1936
+1972
+1
+class
+character
+2
+ts
+numeric
+carbon.dioxide
+structure
+3
+.Data
+numeric
+384
+315.42
+316.32
+316.49
+317.56
+318.13
+318
+316.39
+314.66
+313.68
+313.18
+314.66
+315.43
+316.27
+316.81
+317.42
+318.87
+319.87
+319.43
+318.01
+315.75
+314
+313.68
+314.84
+316.03
+316.73
+317.54
+318.38
+319.31
+320.42
+319.61
+318.42
+316.64
+314.83
+315.15
+315.95
+316.85
+317.78
+318.4
+319.53
+320.41
+320.85
+320.45
+319.44
+317.25
+316.12
+315.27
+316.53
+317.53
+318.58
+318.92
+319.7
+321.22
+322.08
+321.31
+319.58
+317.61
+316.05
+315.83
+316.91
+318.2
+319.41
+320.07
+320.74
+321.4
+322.06
+321.73
+320.27
+318.54
+316.54
+316.71
+317.53
+318.55
+319.27
+320.28
+320.73
+321.97
+322
+321.71
+321.05
+318.71
+317.65
+317.14
+318.71
+319.25
+320.46
+321.43
+322.22
+323.54
+323.91
+323.59
+322.26
+320.21
+318.48
+317.94
+319.63
+320.87
+322.17
+322.34
+322.88
+324.25
+324.83
+323.93
+322.39
+320.76
+319.1
+319.23
+320.56
+321.8
+322.4
+322.99
+323.73
+324.86
+325.41
+325.19
+323.97
+321.92
+320.1
+319.96
+320.97
+322.48
+323.52
+323.89
+325.04
+326.01
+326.67
+325.96
+325.13
+322.9
+321.61
+321.01
+322.08
+323.37
+324.34
+325.3
+326.29
+327.54
+327.54
+327.21
+325.98
+324.42
+322.91
+322.9
+323.85
+324.96
+326.01
+326.51
+327.01
+327.62
+328.76
+328.4
+327.2
+325.28
+323.2
+323.4
+324.64
+325.85
+326.6
+327.47
+327.58
+329.56
+329.9
+328.92
+327.89
+326.17
+324.68
+325.04
+326.34
+327.39
+328.37
+329.4
+330.14
+331.33
+332.31
+331.9
+330.7
+329.15
+327.34
+327.02
+327.99
+328.48
+329.18
+330.55
+331.32
+332.48
+332.92
+332.08
+331.02
+329.24
+327.28
+327.21
+328.29
+329.41
+330.23
+331.24
+331.87
+333.14
+333.8
+333.42
+331.73
+329.9
+328.4
+328.17
+329.32
+330.59
+331.58
+332.39
+333.33
+334.41
+334.71
+334.17
+332.88
+330.77
+329.14
+328.77
+330.14
+331.52
+332.75
+333.25
+334.53
+335.9
+336.57
+336.1
+334.76
+332.59
+331.41
+330.98
+332.24
+333.68
+334.8
+335.22
+336.47
+337.59
+337.84
+337.72
+336.37
+334.51
+332.6
+332.37
+333.75
+334.79
+336.05
+336.59
+337.79
+338.71
+339.3
+339.12
+337.56
+335.92
+333.74
+333.7
+335.13
+336.56
+337.84
+338.19
+339.9
+340.6
+341.29
+341
+339.39
+337.43
+335.72
+335.84
+336.93
+338.04
+339.06
+340.3
+341.21
+342.33
+342.74
+342.07
+340.32
+338.27
+336.52
+336.68
+338.19
+339.44
+340.57
+341.44
+342.53
+343.39
+343.96
+343.18
+341.88
+339.65
+337.8
+337.69
+339.09
+340.32
+341.2
+342.35
+342.93
+344.77
+345.58
+345.14
+343.81
+342.22
+339.69
+339.82
+340.98
+342.82
+343.52
+344.33
+345.11
+346.88
+347.25
+346.61
+345.22
+343.11
+340.9
+341.17
+342.8
+344.04
+344.79
+345.82
+347.25
+348.17
+348.75
+348.07
+346.38
+344.52
+342.92
+342.63
+344.06
+345.38
+346.12
+346.79
+347.69
+349.38
+350.04
+349.38
+347.78
+345.75
+344.7
+344.01
+345.5
+346.75
+347.86
+348.32
+349.26
+350.84
+351.7
+351.11
+349.37
+347.97
+346.31
+346.22
+347.68
+348.82
+350.29
+351.58
+352.08
+353.45
+354.08
+353.66
+352.25
+350.3
+348.58
+348.74
+349.93
+351.21
+352.62
+352.93
+353.54
+355.27
+355.52
+354.97
+353.74
+351.51
+349.63
+349.82
+351.12
+352.35
+353.47
+354.51
+355.18
+355.98
+356.94
+355.99
+354.58
+352.68
+350.72
+350.92
+352.55
+353.91
+.Tsp
+numeric
+3
+1959
+1990.9166666666667
+12
+class
+character
+2
+ts
+numeric
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/auto8.dta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/auto8.dta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/download.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/download.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/download.R	(revision 2476)
@@ -0,0 +1,10 @@
+library(foreign)
+if(!nzchar(Sys.getenv("R_FOREIGN_FULL_TEST"))) q("no")
+
+read.dta("http://www.principlesofeconometrics.com/stata/airline.dta")
+
+## no longer exists, Jan 2014
+##str(read.spss("http://psyweb.psy.ox.ac.uk/dapweb/teaching/graduate/data/crime.sav",
+##              to.data.frame=TRUE))
+
+q()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/testEmpty.xpt
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/testEmpty.xpt
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/S3.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/S3.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/tests/S3.Rout.save	(revision 2476)
@@ -0,0 +1,59 @@
+
+R : Copyright 2004, The R Foundation for Statistical Computing
+Version 2.1.0 Under development (unstable) (2004-12-02), ISBN 3-900051-07-0
+
+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 a HTML browser interface to help.
+Type 'q()' to quit R.
+
+> library(foreign)
+> read.S("mySobj")
+  factor ints floats
+1      a    1    1.1
+2     bc    2    1.2
+3    def    3    1.3
+> data.restore("dumpdata", print = TRUE)
+"myobj": structure
+[1] "dumpdata"
+> print(myobj)
+  factor ints floats  logs
+1      a   NA    1.1  TRUE
+2     bc    2    1.2    NA
+3    def    3    1.3 FALSE
+> data.restore("tsdumpdata", print = TRUE, verbose = TRUE)
+"sunspot": structure
+  sunspot structure 3 
+    .Data numeric 37 
+    .Tsp numeric 3 
+    class character 2 
+"carbon.dioxide": structure
+  carbon.dioxide structure 3 
+    .Data numeric 384 
+    .Tsp numeric 3 
+    class character 2 
+[1] "tsdumpdata"
+> sunspot
+Time Series:
+Start = 1936 
+End = 1972 
+Frequency = 1 
+ [1]  40 115 100  80  60  40  23  10  10  25  75 145 130 130  80  65  20  10   5
+[20]  10  60 190 180 175 120  50  35  20  10  15  30  60 105 105 105  80  65
+> utils::str(carbon.dioxide)
+ Time-Series [1:384] from 1959 to 1991: 315 316 316 318 318 ...
+> carbon.dioxide[1:60]
+ [1] 315.42 316.32 316.49 317.56 318.13 318.00 316.39 314.66 313.68 313.18
+[11] 314.66 315.43 316.27 316.81 317.42 318.87 319.87 319.43 318.01 315.75
+[21] 314.00 313.68 314.84 316.03 316.73 317.54 318.38 319.31 320.42 319.61
+[31] 318.42 316.64 314.83 315.15 315.95 316.85 317.78 318.40 319.53 320.41
+[41] 320.85 320.45 319.44 317.25 316.12 315.27 316.53 317.53 318.58 318.92
+[51] 319.70 321.22 322.08 321.31 319.58 317.61 316.05 315.83 316.91 318.20
+> q()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/DESCRIPTION	(revision 2476)
@@ -0,0 +1,50 @@
+Package: foreign
+Priority: recommended
+Version: 0.8-67
+Date: 2016-09-12
+Title: Read Data Stored by Minitab, S, SAS, SPSS, Stata, Systat, Weka,
+        dBase, ...
+Depends: R (>= 3.0.0)
+Imports: methods, utils, stats
+Authors@R: c(
+   person("R Core Team",
+      email = "R-core@R-project.org", role = c("aut", "cph", "cre")),
+    person("Roger", "Bivand", role = c("ctb", "cph")),
+    person(c("Vincent", "J."), "Carey", role = c("ctb", "cph")),
+    person("Saikat", "DebRoy", role = c("ctb", "cph")),
+    person("Stephen", "Eglen", role = c("ctb", "cph")),
+    person("Rajarshi", "Guha", role = c("ctb", "cph")),
+    person("Nicholas", "Lewin-Koh", role = c("ctb", "cph")),
+    person("Mark", "Myatt", role = c("ctb", "cph")),
+    person("Ben", "Pfaff", role = "ctb"),
+    person("Brian", "Quistorff", role = "ctb"),
+    person("Frank", "Warmerdam", role = c("ctb", "cph")),
+    person("Stephen", "Weigand", role = c("ctb", "cph")),
+    person("Free Software Foundation, Inc.", role = "cph"))
+Copyright: see file COPYRIGHTS
+Description: Functions for reading and writing data stored by some versions of
+	Epi Info, Minitab, S, SAS, SPSS, Stata, Systat and Weka
+	and for reading and writing some dBase files.
+ByteCompile: yes
+Biarch: yes
+License: GPL (>= 2)
+BugReports: https://bugs.r-project.org
+NeedsCompilation: yes
+Packaged: 2016-09-13 10:12:04 UTC; hornik
+Author: R Core Team [aut, cph, cre],
+  Roger Bivand [ctb, cph],
+  Vincent J. Carey [ctb, cph],
+  Saikat DebRoy [ctb, cph],
+  Stephen Eglen [ctb, cph],
+  Rajarshi Guha [ctb, cph],
+  Nicholas Lewin-Koh [ctb, cph],
+  Mark Myatt [ctb, cph],
+  Ben Pfaff [ctb],
+  Brian Quistorff [ctb],
+  Frank Warmerdam [ctb, cph],
+  Stephen Weigand [ctb, cph],
+  Free Software Foundation, Inc. [cph]
+Maintainer: R Core Team <R-core@R-project.org>
+Repository: CRAN
+Date/Publication: 2016-09-13 13:04:33
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:33:56 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/html/00Index.html	(revision 2476)
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Read Data Stored by Minitab, S, SAS, SPSS, Stata, Systat, Weka,
+dBase, ...</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Read Data Stored by Minitab, S, SAS, SPSS, Stata, Systat, Weka,
+dBase, ...
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;foreign&rsquo; version 0.8-67</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="read.S.html">data.restore</a></td>
+<td>Read an S3 Binary or data.dump File</td></tr>
+<tr><td style="width: 25%;"><a href="lookup.xport.html">lookup.xport</a></td>
+<td>Lookup Information on a SAS XPORT Format Library</td></tr>
+<tr><td style="width: 25%;"><a href="read.arff.html">read.arff</a></td>
+<td>Read Data from ARFF Files</td></tr>
+<tr><td style="width: 25%;"><a href="read.dbf.html">read.dbf</a></td>
+<td>Read a DBF File</td></tr>
+<tr><td style="width: 25%;"><a href="read.dta.html">read.dta</a></td>
+<td>Read Stata Binary Files</td></tr>
+<tr><td style="width: 25%;"><a href="read.epiinfo.html">read.epiinfo</a></td>
+<td>Read Epi Info Data Files</td></tr>
+<tr><td style="width: 25%;"><a href="read.mtp.html">read.mtp</a></td>
+<td>Read a Minitab Portable Worksheet</td></tr>
+<tr><td style="width: 25%;"><a href="read.octave.html">read.octave</a></td>
+<td>Read Octave Text Data Files</td></tr>
+<tr><td style="width: 25%;"><a href="read.S.html">read.S</a></td>
+<td>Read an S3 Binary or data.dump File</td></tr>
+<tr><td style="width: 25%;"><a href="read.spss.html">read.spss</a></td>
+<td>Read an SPSS Data File</td></tr>
+<tr><td style="width: 25%;"><a href="read.ssd.html">read.ssd</a></td>
+<td>Obtain a Data Frame from a SAS Permanent Dataset, via read.xport</td></tr>
+<tr><td style="width: 25%;"><a href="read.systat.html">read.systat</a></td>
+<td>Obtain a Data Frame from a Systat File</td></tr>
+<tr><td style="width: 25%;"><a href="read.xport.html">read.xport</a></td>
+<td>Read a SAS XPORT Format Library</td></tr>
+<tr><td style="width: 25%;"><a href="write.arff.html">write.arff</a></td>
+<td>Write Data into ARFF Files</td></tr>
+<tr><td style="width: 25%;"><a href="write.dbf.html">write.dbf</a></td>
+<td>Write a DBF File</td></tr>
+<tr><td style="width: 25%;"><a href="write.dta.html">write.dta</a></td>
+<td>Write Files in Stata Binary Format</td></tr>
+<tr><td style="width: 25%;"><a href="write.foreign.html">write.foreign</a></td>
+<td>Write Text Files and Code to Read Them</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/INDEX	(revision 2476)
@@ -0,0 +1,18 @@
+data.restore            Read an S3 Binary or data.dump File
+lookup.xport            Lookup Information on a SAS XPORT Format
+                        Library
+read.arff               Read Data from ARFF Files
+read.dbf                Read a DBF File
+read.dta                Read Stata Binary Files
+read.epiinfo            Read Epi Info Data Files
+read.mtp                Read a Minitab Portable Worksheet
+read.octave             Read Octave Text Data Files
+read.spss               Read an SPSS Data File
+read.ssd                Obtain a Data Frame from a SAS Permanent
+                        Dataset, via read.xport
+read.systat             Obtain a Data Frame from a Systat File
+read.xport              Read a SAS XPORT Format Library
+write.arff              Write Data into ARFF Files
+write.dbf               Write a DBF File
+write.dta               Write Files in Stata Binary Format
+write.foreign           Write Text Files and Code to Read Them
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/help/foreign.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/help/foreign.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/help/AnIndex	(revision 2476)
@@ -0,0 +1,17 @@
+data.restore	read.S
+lookup.xport	lookup.xport
+read.arff	read.arff
+read.dbf	read.dbf
+read.dta	read.dta
+read.epiinfo	read.epiinfo
+read.mtp	read.mtp
+read.octave	read.octave
+read.S	read.S
+read.spss	read.spss
+read.ssd	read.ssd
+read.systat	read.systat
+read.xport	read.xport
+write.arff	write.arff
+write.dbf	write.dbf
+write.dta	write.dta
+write.foreign	write.foreign
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/help/foreign.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/help/foreign.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/libs/foreign.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/libs/foreign.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/COPYRIGHTS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/COPYRIGHTS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/COPYRIGHTS	(revision 2476)
@@ -0,0 +1,143 @@
+Various files in this package have different copyrights.
+
+The DFB read/write facilities are based on code originally written 
+by Nicholas Lewin-Koh and modified by Roger Bivand and Brian Ripley.
+
+R/dbf.R
+src/Rdbfread.c
+src/Rdbfwrite.c
+
+Copyright 2000-2001 (c) Nicholas Lewin-Koh
+Changes for the foreign package (C) 2004-7 R Core Team
+
+
+src/dbfopen.c
+src/shapefil.h
+
+Corrected versions of files from shapelib by Frank Warmerdam.  The
+original files were (c) 1999, Frank Warmerdam.  His code is available
+under the MIT or LGPL licence, and the latter is chosen here.
+
+
+man/read.dbf.Rd
+man/write.dbf.Rd
+Nicholas Lewin-Koh and Roger Bivand,
+Changes for the foreign package (C) 2004 R Core Team
+
+
+R/R_systat.R
+man/read.systat.Rd
+
+Copyright 2004 by Roger Bivand
+Changes for the foreign package (C) 2004 R Core Team
+
+
+src/R_systat.c
+
+Copyright (C) 1990-1992, 2004 Roger Bivand
+Patches (C) 2004 B. D. Ripley
+
+
+src/avl.c
+src/avl.h
+
+Copyright (C) 1998-9, 2000 Free Software Foundation, Inc.
+Written by Ben Pfaff <blp@gnu.org> (for libAVL:
+then <http://www.stanford.edu/~blp/avl/index.html>, now
+<http://adtinfo.org/index.html>)
+Modified for R foreign package by Saikat DebRoy <saikat@stat.wisc.edu>.
+
+
+The following files are based on an early version of PSPP
+(then <http://www.stanford.edu/~blp/projects.html>, now
+<http://benpfaff.org/projects.html>).
+
+src/file-handle.c
+src/file-handle.h
+src/format.c
+src/format.h
+src/pfm-read.c
+src/pfm-h
+src/sfm-read.c
+src/sfm.h
+src/sfmP.h
+
+Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
+Written by Ben Pfaff <blp@gnu.org>.
+Modified for R foreign package by Saikat DebRoy <saikat@stat.wisc.edu>
+and others.
+
+
+src/minitab.c
+src/SASxport.c
+
+Copyright 1999 Douglas M. Bates <bates@stat.wisc.edu>,
+               Saikat DebRoy <saikat@stat.wisc.edu>
+
+
+src/foreign.h
+src/spss.c
+
+Copyright 2000 Saikat DebRoy <saikat@stat.wisc.edu>
+               Thomas Lumley <tlumley@u.washington.edu>
+
+
+src/stataread.c
+
+(c) 1999, 2000, 2001, 2002 Thomas Lumley.
+    2000 Saikat DebRoy
+  Patches by the R Core Team and Brian Quistorff.
+
+
+man/read.dta.Rd
+man/write.dta.Rd
+man/write.foreign.Rd
+
+Thomas Lumley (Patches by the R Core Team)
+
+
+man/read.mtp.Rd
+
+Douglas M. Bates
+
+
+man/read.S.Rd
+
+Duncan Murdoch
+
+
+man/read.spss.Rd
+man/read.xport.Rd
+
+Saikat DebRoy
+
+
+R/read.ssd.R
+man/read.ssd.Rd
+
+(c) 2002 VJ Carey
+(c) 2002-7 R Core Team
+
+
+man/read.systat.Rd
+
+Roger Bivand
+
+
+R/read.epiinfo.R
+(c) 2002-4 Thomas Lumley
+Patches (c) 2002 Mark Myatt
+
+src/minitab.c
+Patches (c) 2004 Rajarshi Guha
+
+
+R/octave.R
+man/read.octave.Rd
+(c) 2004 Stephen Eglen
+Enhancements (c) 2004-7 R Core Team
+
+
+R/writeForeignSAS.R
+(c) 2004-5  R Core Team
+Enhancements (c) 2006 Stephen Weigand
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/foreign/NAMESPACE	(revision 2476)
@@ -0,0 +1,11 @@
+useDynLib(foreign, .registration = TRUE)
+
+export(data.restore, lookup.xport, read.arff, read.dbf, read.dta,
+       read.epiinfo, read.mtp, read.octave, read.S, read.spss, read.ssd,
+       read.systat, read.xport, write.arff, write.dbf, write.dta,
+       write.foreign)
+
+# not exported: SModeNames writeForeignStata writeForeignSPSS
+
+importFrom(utils, download.file, read.table, write.table)
+importFrom(stats, na.omit)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/INDEX	(revision 2476)
@@ -0,0 +1,8 @@
+bkde                    Compute a Binned Kernel Density Estimate
+bkde2D                  Compute a 2D Binned Kernel Density Estimate
+bkfe                    Compute a Binned Kernel Functional Estimate
+dpih                    Select a Histogram Bin Width
+dpik                    Select a Bandwidth for Kernel Density
+                        Estimation
+dpill                   Select a Bandwidth for Local Linear Regression
+locpoly                 Estimate Functions Using Local Polynomials
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/help/KernSmooth.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/help/KernSmooth.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/help/KernSmooth.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/help/KernSmooth.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/help/AnIndex	(revision 2476)
@@ -0,0 +1,7 @@
+bkde	bkde
+bkde2D	bkde2D
+bkfe	bkfe
+dpih	dpih
+dpik	dpik
+dpill	dpill
+locpoly	locpoly
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/libs/KernSmooth.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/libs/KernSmooth.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/NAMESPACE	(revision 2476)
@@ -0,0 +1,4 @@
+useDynLib(KernSmooth, .registration = TRUE, .fixes = "F_")
+export(bkde, bkde2D, bkfe, dpih, dpik,  dpill, locpoly)
+
+importFrom(stats, dbeta, dnorm, fft, quantile, var)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/po/fr/LC_MESSAGES/R-KernSmooth.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/po/fr/LC_MESSAGES/R-KernSmooth.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/po/de/LC_MESSAGES/R-KernSmooth.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/po/de/LC_MESSAGES/R-KernSmooth.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/po/ko/LC_MESSAGES/R-KernSmooth.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/po/ko/LC_MESSAGES/R-KernSmooth.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/po/en@quot/LC_MESSAGES/R-KernSmooth.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/po/en@quot/LC_MESSAGES/R-KernSmooth.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/po/pl/LC_MESSAGES/R-KernSmooth.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/po/pl/LC_MESSAGES/R-KernSmooth.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/R/KernSmooth.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/R/KernSmooth.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/R/KernSmooth
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/R/KernSmooth	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/R/KernSmooth	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/R/KernSmooth.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/R/KernSmooth.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/tests/bkfe.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/tests/bkfe.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/tests/bkfe.R	(revision 2476)
@@ -0,0 +1,8 @@
+## failed in bkfe with exaxt powers of 2 prior to 2.23-5
+library(KernSmooth)
+x <- 1:100
+dpik(x, gridsize = 256)
+## and for bkde for some x.
+x <- c(0.036, 0.042, 0.052, 0.216, 0.368, 0.511, 0.705, 0.753, 0.776, 0.84)
+bkde(x, gridsize = 256, range.x = range(x))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/DESCRIPTION	(revision 2476)
@@ -0,0 +1,25 @@
+Package: KernSmooth
+Priority: recommended
+Version: 2.23-15
+Date: 2015-06-29
+Title: Functions for Kernel Smoothing Supporting Wand & Jones (1995)
+Authors@R: c(person("Matt", "Wand", role = "aut",
+	             email = "Matt.Wand@uts.edu.au"),
+             person("Brian", "Ripley", role = c("trl", "cre", "ctb"),
+                    email = "ripley@stats.ox.ac.uk",
+		    comment = "R port and updates"))
+Depends: R (>= 2.5.0), stats
+Suggests: MASS
+Description: Functions for kernel smoothing (and density estimation)
+  corresponding to the book: 
+  Wand, M.P. and Jones, M.C. (1995) "Kernel Smoothing".
+License: Unlimited
+ByteCompile: yes
+NeedsCompilation: yes
+Packaged: 2015-06-29 08:37:00 UTC; ripley
+Author: Matt Wand [aut],
+  Brian Ripley [trl, cre, ctb] (R port and updates)
+Maintainer: Brian Ripley <ripley@stats.ox.ac.uk>
+Repository: CRAN
+Date/Publication: 2015-06-29 17:13:50
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:33:56 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/html/00Index.html	(revision 2476)
@@ -0,0 +1,38 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Functions for Kernel Smoothing Supporting Wand &amp; Jones (1995)</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Functions for Kernel Smoothing Supporting Wand &amp; Jones (1995)
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;KernSmooth&rsquo; version 2.23-15</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="bkde.html">bkde</a></td>
+<td>Compute a Binned Kernel Density Estimate</td></tr>
+<tr><td style="width: 25%;"><a href="bkde2D.html">bkde2D</a></td>
+<td>Compute a 2D Binned Kernel Density Estimate</td></tr>
+<tr><td style="width: 25%;"><a href="bkfe.html">bkfe</a></td>
+<td>Compute a Binned Kernel Functional Estimate</td></tr>
+<tr><td style="width: 25%;"><a href="dpih.html">dpih</a></td>
+<td>Select a Histogram Bin Width</td></tr>
+<tr><td style="width: 25%;"><a href="dpik.html">dpik</a></td>
+<td>Select a Bandwidth for Kernel Density Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="dpill.html">dpill</a></td>
+<td>Select a Bandwidth for Local Linear Regression</td></tr>
+<tr><td style="width: 25%;"><a href="locpoly.html">locpoly</a></td>
+<td>Estimate Functions Using Local Polynomials</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/KernSmooth/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/R/scatterplot3d.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/R/scatterplot3d.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/R/scatterplot3d.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/R/scatterplot3d.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/R/scatterplot3d
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/R/scatterplot3d	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/R/scatterplot3d	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/DESCRIPTION	(revision 2476)
@@ -0,0 +1,16 @@
+Package: scatterplot3d
+Version: 0.3-38
+Date: 2017-01-05
+Title: 3D Scatter Plot
+Author: Uwe Ligges <ligges@statistik.tu-dortmund.de>, Martin Maechler, Sarah Schnackenberg
+Maintainer: Uwe Ligges <ligges@statistik.tu-dortmund.de>
+Description: Plots a three dimensional (3D) point cloud.
+Depends: R (>= 2.7.0)
+License: GPL-2
+Encoding: latin1
+Imports: grDevices, graphics, stats
+NeedsCompilation: no
+Packaged: 2017-01-05 16:11:38 UTC; ligges
+Repository: CRAN
+Date/Publication: 2017-01-05 19:03:19
+Built: R 3.3.2; ; 2017-01-06 11:51:11 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/INDEX	(revision 2476)
@@ -0,0 +1 @@
+scatterplot3d           3D Scatter Plot
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/help/AnIndex	(revision 2476)
@@ -0,0 +1 @@
+scatterplot3d	scatterplot3d
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/help/scatterplot3d.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/help/scatterplot3d.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/help/scatterplot3d.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/help/scatterplot3d.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/CITATION	(revision 2476)
@@ -0,0 +1,17 @@
+citHeader("To cite scatterplot3d in publications use:")
+
+citEntry(entry       = "article",
+	title        = "Scatterplot3d - an R Package for Visualizing Multivariate Data",
+	author       = c(person(given="Uwe", family="Ligges", email="Uwe.Ligges@R-project.org"),
+			 person(given="Martin", family='M{\\"a}chler', email="Martin.Maechler@R-project.org")),
+	journal      = "Journal of Statistical Software",
+	year         = 2003,
+	pages        = "1--20",
+	number       = 11,
+        volume       = 8,
+	url          = "http://www.jstatsoft.org",
+	textVersion  = paste("Ligges, U. and M�chler, M. (2003).",
+		"Scatterplot3d - an R Package for Visualizing Multivariate Data.",
+		"Journal of Statistical Software 8(11), 1-20.")
+	)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/scatterplot3d/NAMESPACE	(revision 2476)
@@ -0,0 +1,4 @@
+importFrom("grDevices", "rgb", "xyz.coords")
+importFrom("graphics", "lines", "mtext", "par", "plot.new", "plot.window", "points", "polygon", "segments", "strwidth", "text", "title")
+importFrom("stats", "coef")
+export(scatterplot3d)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/NAMESPACE	(revision 2476)
@@ -0,0 +1,186 @@
+useDynLib(mgcv, .registration = TRUE, .fixes = "C_")
+
+export(anova.gam, bam, bam.update,bandchol, betar, cox.ph,concurvity, 
+       cSplineDes,
+       exclude.too.far,extract.lme.cov, extract.lme.cov2,
+       formXtViX, full.score, formula.gam,fixDependence,fix.family.link,
+       fix.family.var, fix.family.ls, fix.family.qf,fix.family.rd,   
+       fs.test,fs.boundary,gam, gam2derivative, 
+       gam2objective,
+       gamm, gam.check, gam.control,gam.fit3,
+       gam.fit, gam.outer,gam.vcomp, gamSim , 
+       gaulss,gam.side,get.var,gevlss,
+       influence.gam, 
+       in.out,inSide,interpret.gam,initial.sp,
+       jagam, 
+       ldTweedie,
+       logLik.gam,ls.size,
+       magic, magic.post.proc, model.matrix.gam, 
+       mono.con, mroot, multinom, mvn, nb, negbin, new.name, 
+       notExp,notExp2,notLog,notLog2,pcls,null.space.dimension, 
+       ocat,
+       pen.edf,pdIdnot,pdTens,
+       place.knots, plot.gam, polys.plot,print.anova.gam,
+       print.gam,print.summary.gam,predict.gam,predict.bam,
+       PredictMat,Predict.matrix,Predict.matrix2,
+       Predict.matrix.Bspline.smooth,
+       Predict.matrix.cr.smooth,
+       Predict.matrix.duchon.spline,
+       Predict.matrix.cs.smooth,
+       Predict.matrix.cyclic.smooth,
+       Predict.matrix.tensor.smooth,
+       Predict.matrix.tprs.smooth,
+       Predict.matrix.ts.smooth,
+       Predict.matrix.sos.smooth,
+       Predict.matrix.soap.film,
+       Predict.matrix.sf,
+       Predict.matrix.sw,
+       Predict.matrix.mrf.smooth,
+       Predict.matrix.pspline.smooth,
+       Predict.matrix.random.effect,
+       Predict.matrix.t2.smooth,
+       Predict.matrix.gp.smooth,
+       qq.gam,
+       residuals.gam,rig,rTweedie,rmvn, 
+       Rrank,s,scat,sdiag,"sdiag<-",
+       sim2jam,
+       slanczos,smooth2random,
+       smoothCon,smooth.construct,smooth.construct2,
+       smooth.construct.bs.smooth.spec,
+       smooth.construct.cc.smooth.spec,
+       smooth.construct.cp.smooth.spec,
+       smooth.construct.cr.smooth.spec,
+       smooth.construct.cs.smooth.spec,
+       smooth.construct.ds.smooth.spec,
+       smooth.construct.tensor.smooth.spec,
+       smooth.construct.tp.smooth.spec,
+       smooth.construct.ts.smooth.spec,
+       smooth.construct.ps.smooth.spec,
+       smooth.construct.re.smooth.spec,
+       smooth.construct.mrf.smooth.spec,
+       smooth.construct.gp.smooth.spec,
+       smooth.construct.sos.smooth.spec,
+       smooth.construct.so.smooth.spec,
+       smooth.construct.sf.smooth.spec,
+       smooth.construct.sw.smooth.spec,   
+       smooth.construct.ad.smooth.spec,
+       smooth.construct.t2.smooth.spec,
+       summary.gam,sp.vcov,
+       spasm.construct,spasm.sp,spasm.smooth,
+       t2,te,ti,tensor.prod.model.matrix,tensor.prod.penalties,
+       trichol,Tweedie,tw,uniquecombs, vcov.gam, vis.gam, ziP, ziplss)
+
+importFrom(grDevices,cm.colors,dev.interactive,devAskNewPage,gray,grey,heat.colors,terrain.colors,topo.colors)
+importFrom(graphics,abline,axis,axTicks,box,contour,hist,image,lines,
+           mtext, par, persp,plot,points,
+           polygon,rect,strheight,strwidth,text,title)
+
+importFrom(stats,.checkMFClasses,.getXlevels,anova,approx,as.formula,
+binomial,coef,contrasts,"contrasts<-",cooks.distance,cor,cov,
+delete.response,dbeta,dgamma,dnorm,dpois,fitted,formula,gaussian,glm,
+influence,logLik,lm,mad,
+make.link,median,model.frame,model.offset,model.matrix,nlm,
+na.pass,napredict,na.omit,naresid,optim,pchisq,pnorm,pt,pf,
+power,predict,printCoefmat,quantile,
+qbeta,qbinom,qchisq,qnbinom,qgamma,qnorm,qpois,qqline,qqnorm,qqplot,
+reformulate,residuals,
+rbeta,rbinom,rgamma,rnbinom,rnorm,rpois,runif,sd,
+termplot,terms.formula,terms,uniroot,var,vcov,weights)
+
+importFrom(utils,object.size)
+
+importFrom(nlme,Dim,corMatrix,logDet,pdConstruct,pdFactor,pdMatrix,getGroupsFormula,lme,varFixed,lmeControl)
+importMethodsFrom(Matrix,t,colMeans,colSums,chol,solve,lu,expand)
+importFrom(Matrix,Diagonal,sparseMatrix,Matrix)
+importFrom(methods,cbind2,as)
+importFrom(stats,weighted.mean)
+
+S3method(anova, gam)
+S3method(influence, gam)
+S3method(cooks.distance, gam)
+S3method(formula, gam)
+S3method(logLik, gam)
+S3method(model.matrix,gam)
+S3method(plot, gam)
+S3method(plot, jam)
+S3method(predict, gam)
+S3method(predict, bam)
+S3method(predict, jam)
+S3method(print, anova.gam)
+S3method(print, gam)
+S3method(print, jam)
+S3method(print, summary.gam)
+S3method(residuals, gam)
+S3method(summary, gam)
+S3method(vcov,gam)
+S3method(vcov,jam)
+
+S3method(coef,pdTens)
+S3method(pdConstruct,pdTens)
+S3method(pdFactor,pdTens)
+S3method(pdMatrix,pdTens)
+S3method(summary,pdTens)
+
+S3method(Dim,pdIdnot)
+S3method(coef,pdIdnot)
+S3method(corMatrix,pdIdnot)
+S3method(logDet,pdIdnot)
+S3method(pdConstruct,pdIdnot)
+S3method(pdFactor,pdIdnot)
+S3method(pdMatrix,pdIdnot)
+S3method(solve,pdIdnot)
+S3method(summary,pdIdnot)
+
+S3method(fix.family.link,family)
+S3method(fix.family.link,extended.family)
+S3method(fix.family.link,general.family)
+S3method(smooth.construct,ad.smooth.spec)
+S3method(smooth.construct,bs.smooth.spec)
+S3method(smooth.construct, cc.smooth.spec)
+S3method(smooth.construct,cp.smooth.spec)
+S3method(smooth.construct, cr.smooth.spec)
+S3method(smooth.construct, cs.smooth.spec)
+S3method(smooth.construct,ds.smooth.spec)
+S3method(smooth.construct, fs.smooth.spec)
+S3method(smooth.construct, mrf.smooth.spec)
+S3method(smooth.construct, gp.smooth.spec)
+S3method(smooth.construct,ps.smooth.spec)
+S3method(smooth.construct, re.smooth.spec)
+S3method(smooth.construct,so.smooth.spec)
+S3method(smooth.construct,sw.smooth.spec)
+S3method(smooth.construct,sf.smooth.spec)
+S3method(smooth.construct,sos.smooth.spec)
+S3method(smooth.construct, tp.smooth.spec)
+S3method(smooth.construct, tensor.smooth.spec)
+S3method(smooth.construct, t2.smooth.spec)
+S3method(smooth.construct, ts.smooth.spec)
+
+S3method(Predict.matrix,Bspline.smooth)
+S3method(Predict.matrix,cr.smooth)
+S3method(Predict.matrix,cs.smooth)
+S3method(Predict.matrix,cyclic.smooth)
+S3method(Predict.matrix,cpspline.smooth)
+S3method(Predict.matrix,duchon.spline)
+S3method(Predict.matrix,fs.interaction)
+S3method(Predict.matrix,mrf.smooth)
+S3method(Predict.matrix,pspline.smooth)
+S3method(Predict.matrix,random.effect)
+S3method(Predict.matrix,tprs.smooth)
+S3method(Predict.matrix,ts.smooth)
+S3method(Predict.matrix,tensor.smooth)
+S3method(Predict.matrix,t2.smooth)
+S3method(Predict.matrix,soap.film)
+S3method(Predict.matrix,sf)
+S3method(Predict.matrix,sw)
+S3method(Predict.matrix,sos.smooth)
+S3method(Predict.matrix,gp.smooth)
+
+
+S3method(spasm.construct,cus)
+S3method(spasm.sp,cus)
+S3method(spasm.smooth,cus)
+
+S3method(smooth2random,mgcv.smooth)
+S3method(smooth2random,fs.interaction)
+S3method(smooth2random,tensor.smooth)
+S3method(smooth2random,t2.smooth)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/DESCRIPTION	(revision 2476)
@@ -0,0 +1,22 @@
+Package: mgcv
+Version: 1.8-15
+Author: Simon Wood <simon.wood@r-project.org>
+Maintainer: Simon Wood <simon.wood@r-project.org>
+Title: Mixed GAM Computation Vehicle with GCV/AIC/REML Smoothness
+        Estimation
+Description: GAMs, GAMMs and other generalized ridge regression with 
+             multiple smoothing parameter estimation by GCV, REML or UBRE/AIC. 
+             Includes a gam() function, a wide variety of smoothers, JAGS 
+             support and distributions beyond the exponential family.
+Priority: recommended
+Depends: R (>= 2.14.0), nlme (>= 3.1-64)
+Imports: methods, stats, graphics, Matrix
+Suggests: splines, parallel, survival, MASS
+LazyLoad: yes
+ByteCompile: yes
+License: GPL (>= 2)
+NeedsCompilation: yes
+Packaged: 2016-09-13 10:00:39 UTC; sw283
+Repository: CRAN
+Date/Publication: 2016-09-14 18:51:00
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:35:20 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/INDEX	(revision 2476)
@@ -0,0 +1,185 @@
+Predict.matrix          Prediction methods for smooth terms in a GAM
+Predict.matrix.cr.smooth
+                        Predict matrix method functions
+Predict.matrix.soap.film
+                        Prediction matrix for soap film smooth
+Rrank                   Find rank of upper triangular matrix
+Tweedie                 GAM Tweedie families
+anova.gam               Approximate hypothesis tests related to GAM
+                        fits
+bam                     Generalized additive models for very large
+                        datasets
+bam.update              Update a strictly additive bam model for new
+                        data.
+bandchol                Choleski decomposition of a band diagonal
+                        matrix
+betar                   GAM beta regression family
+bug.reports.mgcv        Reporting mgcv bugs.
+cSplineDes              Evaluate cyclic B spline basis
+choose.k                Basis dimension choice for smooths
+columb                  Reduced version of Columbus OH crime data
+concurvity              GAM concurvity measures
+cox.ph                  Additive Cox Proportional Hazard Model
+cox.pht                 Additive Cox proportional hazard models with
+                        time varying covariates
+exclude.too.far         Exclude prediction grid points too far from
+                        data
+extract.lme.cov         Extract the data covariance matrix from an lme
+                        object
+family.mgcv             Distribution families in mgcv
+fix.family.link         Modify families for use in GAM fitting and
+                        checking
+fixDependence           Detect linear dependencies of one matrix on
+                        another
+formXtViX               Form component of GAMM covariance matrix
+formula.gam             GAM formula
+fs.test                 FELSPLINE test function
+full.score              GCV/UBRE score for use within nlm
+gam                     Generalized additive models with integrated
+                        smoothness estimation
+gam.check               Some diagnostics for a fitted gam model
+gam.control             Setting GAM fitting defaults
+gam.convergence         GAM convergence and performance issues
+gam.fit                 GAM P-IRLS estimation with GCV/UBRE smoothness
+                        estimation
+gam.fit3                P-IRLS GAM estimation with GCV & UBRE/AIC or
+                        RE/ML derivative calculation
+gam.models              Specifying generalized additive models
+gam.outer               Minimize GCV or UBRE score of a GAM using
+                        'outer' iteration
+gam.scale               Scale parameter estimation in GAMs
+gam.selection           Generalized Additive Model Selection
+gam.side                Identifiability side conditions for a GAM
+gam.vcomp               Report gam smoothness estimates as variance
+                        components
+gam2objective           Objective functions for GAM smoothing parameter
+                        estimation
+gamObject               Fitted gam object
+gamSim                  Simulate example data for GAMs
+gamm                    Generalized Additive Mixed Models
+gaulss                  Gaussian location-scale model family
+get.var                 Get named variable or evaluate expression from
+                        list or data.frame
+gevlss                  Generalized Extreme Value location-scale model
+                        family
+identifiability         Identifiability constraints
+in.out                  Which of a set of points lie within a polygon
+                        defined region
+inSide                  Are points inside boundary?
+influence.gam           Extract the diagonal of the influence/hat
+                        matrix for a GAM
+initial.sp              Starting values for multiple smoothing
+                        parameter estimation
+interpret.gam           Interpret a GAM formula
+jagam                   Just Another Gibbs Additive Modeller: JAGS
+                        support for mgcv.
+ldTweedie               Log Tweedie density evaluation
+linear.functional.terms
+                        Linear functionals of a smooth in GAMs
+logLik.gam              Log likelihood for a fitted GAM, for AIC
+ls.size                 Size of list elements
+magic                   Stable Multiple Smoothing Parameter Estimation
+                        by GCV or UBRE
+magic.post.proc         Auxilliary information from magic fit
+mgcv.FAQ                Frequently Asked Questions for package mgcv
+mgcv.package            Mixed GAM Computation Vehicle with GCV/AIC/REML
+                        smoothness estimation and GAMMs by REML/PQL
+mgcv.parallel           Parallel computation in mgcv.
+missing.data            Missing data in GAMs
+model.matrix.gam        Extract model matrix from GAM fit
+mono.con                Monotonicity constraints for a cubic regression
+                        spline
+mroot                   Smallest square root of matrix
+multinom                GAM multinomial logistic regression
+mvn                     Multivariate normal additive models
+negbin                  GAM negative binomial families
+new.name                Obtain a name for a new variable that is not
+                        already in use
+notExp                  Functions for better-than-log positive
+                        parameterization
+notExp2                 Alternative to log parameterization for
+                        variance components
+null.space.dimension    The basis of the space of un-penalized
+                        functions for a TPRS
+ocat                    GAM ordered categorical family
+one.se.rule             The one standard error rule for smoother models
+pcls                    Penalized Constrained Least Squares Fitting
+pdIdnot                 Overflow proof pdMat class for multiples of the
+                        identity matrix
+pdTens                  Functions implementing a pdMat class for tensor
+                        product smooths
+pen.edf                 Extract the effective degrees of freedom
+                        associated with each penalty in a gam fit
+place.knots             Automatically place a set of knots evenly
+                        through covariate values
+plot.gam                Default GAM plotting
+polys.plot              Plot geographic regions defined as polygons
+predict.bam             Prediction from fitted Big Additive Model model
+predict.gam             Prediction from fitted GAM model
+print.gam               Print a Generalized Additive Model object.
+qq.gam                  QQ plots for gam model residuals
+rTweedie                Generate Tweedie random deviates
+random.effects          Random effects in GAMs
+residuals.gam           Generalized Additive Model residuals
+rig                     Generate inverse Gaussian random deviates
+rmvn                    Generate multivariate normal deviates
+s                       Defining smooths in GAM formulae
+scat                    GAM scaled t family for heavy tailed data
+sdiag                   Extract or modify diagonals of a matrix
+single.index            Single index models with mgcv
+slanczos                Compute truncated eigen decomposition of a
+                        symmetric matrix
+smooth.construct        Constructor functions for smooth terms in a GAM
+smooth.construct.ad.smooth.spec
+                        Adaptive smooths in GAMs
+smooth.construct.bs.smooth.spec
+                        Penalized B-splines in GAMs
+smooth.construct.cr.smooth.spec
+                        Penalized Cubic regression splines in GAMs
+smooth.construct.ds.smooth.spec
+                        Low rank Duchon 1977 splines
+smooth.construct.fs.smooth.spec
+                        Factor smooth interactions in GAMs
+smooth.construct.gp.smooth.spec
+                        Low rank Gaussian process smooths
+smooth.construct.mrf.smooth.spec
+                        Markov Random Field Smooths
+smooth.construct.ps.smooth.spec
+                        P-splines in GAMs
+smooth.construct.re.smooth.spec
+                        Simple random effects in GAMs
+smooth.construct.so.smooth.spec
+                        Soap film smoother constructer
+smooth.construct.sos.smooth.spec
+                        Splines on the sphere
+smooth.construct.t2.smooth.spec
+                        Tensor product smoothing constructor
+smooth.construct.tensor.smooth.spec
+                        Tensor product smoothing constructor
+smooth.construct.tp.smooth.spec
+                        Penalized thin plate regression splines in GAMs
+smooth.terms            Smooth terms in GAM
+smooth2random           Convert a smooth to a form suitable for
+                        estimating as random effect
+smoothCon               Prediction/Construction wrapper functions for
+                        GAM smooth terms
+sp.vcov                 Extract smoothing parameter estimator
+                        covariance matrix from (RE)ML GAM fit
+spasm.construct         Experimental sparse smoothers
+step.gam                Alternatives to step.gam
+summary.gam             Summary for a GAM fit
+t2                      Define alternative tensor product smooths in
+                        GAM formulae
+te                      Define tensor product smooths or tensor product
+                        interactions in GAM formulae
+tensor.prod.model.matrix
+                        Utility functions for constructing tensor
+                        product smooths
+trichol                 Choleski decomposition of a tri-diagonal matrix
+uniquecombs             find the unique rows in a matrix
+vcov.gam                Extract parameter (estimator) covariance matrix
+                        from GAM fit
+vis.gam                 Visualization of GAM objects
+ziP                     GAM zero-inflated Poisson regression family
+ziplss                  Zero inflated Poisson location-scale model
+                        family
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/help/mgcv.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/help/mgcv.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/help/AnIndex	(revision 2476)
@@ -0,0 +1,208 @@
+mgcv-package	mgcv-package
+adaptive.smooth	smooth.construct.ad.smooth.spec
+AIC.gam	logLik.gam
+anova.gam	anova.gam
+b.spline	smooth.construct.bs.smooth.spec
+bam	bam
+bam.update	bam.update
+bandchol	bandchol
+betar	Beta
+bug.reports.mgcv	bug.reports.mgcv
+choose.k	choose.k
+coef.pdIdnot	pdIdnot
+coef.pdTens	pdTens
+columb	columb
+columb.polys	columb
+concurvity	concurvity
+corMatrix.pdIdnot	pdIdnot
+cox.ph	coxph
+cox.pht	coxpht
+cSplineDes	cSplineDes
+cubic.regression.spline	smooth.construct.cr.smooth.spec
+cyclic.cubic.spline	smooth.construct.cr.smooth.spec
+cyclic.p.spline	smooth.construct.ps.smooth.spec
+Dim.pdIdnot	pdIdnot
+Duchon.spline	smooth.construct.ds.smooth.spec
+exclude.too.far	exclude.too.far
+extract.lme.cov	extract.lme.cov
+extract.lme.cov2	extract.lme.cov
+factor.smooth.interaction	smooth.construct.fs.smooth.spec
+family.mgcv	family.mgcv
+fix.family.link	fix.family.link
+fix.family.ls	fix.family.link
+fix.family.qf	fix.family.link
+fix.family.rd	fix.family.link
+fix.family.var	fix.family.link
+fixDependence	fixDependence
+formula.gam	formula.gam
+formXtViX	formXtViX
+fs.boundary	fs.test
+fs.test	fs.test
+full.score	full.score
+function.predictors	linear.functional.terms
+gam	gam
+gam.check	gam.check
+gam.control	gam.control
+gam.convergence	gam.convergence
+gam.fit	gam.fit
+gam.fit3	gam.fit3
+gam.models	gam.models
+gam.outer	gam.outer
+gam.performance	gam.convergence
+gam.scale	gam.scale
+gam.selection	gam.selection
+gam.side	gam.side
+gam.vcomp	gam.vcomp
+gam2derivative	gam2objective
+gam2objective	gam2objective
+gamm	gamm
+gamObject	gamObject
+gamSim	gamSim
+gaulss	gaulss
+get.var	get.var
+gevlss	gevlss
+gp.smooth	smooth.construct.gp.smooth.spec
+identifiability	identifiability
+in.out	in.out
+influence.gam	influence.gam
+initial.sp	initial.sp
+inSide	inSide
+interpret.gam	interpret.gam
+jagam	jagam
+ldTweedie	ldTweedie
+linear.functional.terms	linear.functional.terms
+logDet.pdIdnot	pdIdnot
+logLik.gam	logLik.gam
+ls.size	ls.size
+magic	magic
+magic.post.proc	magic.post.proc
+mgcv	mgcv-package
+mgcv.FAQ	mgcv-FAQ
+mgcv.package	mgcv-package
+mgcv.parallel	mgcv-parallel
+missing.data	missing.data
+model.matrix.gam	model.matrix.gam
+mono.con	mono.con
+mrf	smooth.construct.mrf.smooth.spec
+mroot	mroot
+multinom	multinom
+mvn	mvn
+nb	negbin
+negbin	negbin
+new.name	new.name
+notExp	notExp
+notExp2	notExp2
+notLog	notExp
+notLog2	notExp2
+null.space.dimension	null.space.dimension
+ocat	ocat
+one.se.rule	one.se.rule
+ordered.categorical	ocat
+p.spline	smooth.construct.ps.smooth.spec
+pcls	pcls
+pdConstruct.pdIdnot	pdIdnot
+pdConstruct.pdTens	pdTens
+pdFactor.pdIdnot	pdIdnot
+pdFactor.pdTens	pdTens
+pdIdnot	pdIdnot
+pdMatrix.pdIdnot	pdIdnot
+pdMatrix.pdTens	pdTens
+pdTens	pdTens
+pen.edf	pen.edf
+persp.gam	vis.gam
+place.knots	place.knots
+plot.gam	plot.gam
+polys.plot	polys.plot
+predict.bam	predict.bam
+predict.gam	predict.gam
+Predict.matrix	Predict.matrix
+Predict.matrix.Bspline.smooth	smooth.construct.bs.smooth.spec
+Predict.matrix.cr.smooth	Predict.matrix.cr.smooth
+Predict.matrix.cs.smooth	Predict.matrix.cr.smooth
+Predict.matrix.cyclic.smooth	Predict.matrix.cr.smooth
+Predict.matrix.duchon.spline	smooth.construct.ds.smooth.spec
+Predict.matrix.fs.interaction	smooth.construct.fs.smooth.spec
+Predict.matrix.gp.smooth	smooth.construct.gp.smooth.spec
+Predict.matrix.mrf.smooth	smooth.construct.mrf.smooth.spec
+Predict.matrix.pspline.smooth	Predict.matrix.cr.smooth
+Predict.matrix.random.effect	smooth.construct.re.smooth.spec
+Predict.matrix.sf	Predict.matrix.soap.film
+Predict.matrix.soap.film	Predict.matrix.soap.film
+Predict.matrix.sos.smooth	smooth.construct.sos.smooth.spec
+Predict.matrix.sw	Predict.matrix.soap.film
+Predict.matrix.t2.smooth	Predict.matrix.cr.smooth
+Predict.matrix.tensor.smooth	Predict.matrix.cr.smooth
+Predict.matrix.tprs.smooth	Predict.matrix.cr.smooth
+Predict.matrix.ts.smooth	Predict.matrix.cr.smooth
+Predict.matrix2	Predict.matrix
+PredictMat	smoothCon
+print.anova.gam	anova.gam
+print.gam	print.gam
+print.summary.gam	summary.gam
+qq.gam	qq.gam
+random.effects	random.effects
+residuals.gam	residuals.gam
+rig	rig
+rmvn	rmvn
+Rrank	Rrank
+rTweedie	rTweedie
+s	s
+scat	scat
+sdiag	sdiag
+sdiag<-	sdiag
+signal.regression	linear.functional.terms
+sim2jam	jagam
+single.index	single.index
+slanczos	slanczos
+smooth.construct	smooth.construct
+smooth.construct.ad.smooth.spec	smooth.construct.ad.smooth.spec
+smooth.construct.bs.smooth.spec	smooth.construct.bs.smooth.spec
+smooth.construct.cc.smooth.spec	smooth.construct.cr.smooth.spec
+smooth.construct.cp.smooth.spec	smooth.construct.ps.smooth.spec
+smooth.construct.cr.smooth.spec	smooth.construct.cr.smooth.spec
+smooth.construct.cs.smooth.spec	smooth.construct.cr.smooth.spec
+smooth.construct.ds.smooth.spec	smooth.construct.ds.smooth.spec
+smooth.construct.fs.smooth.spec	smooth.construct.fs.smooth.spec
+smooth.construct.gp.smooth.spec	smooth.construct.gp.smooth.spec
+smooth.construct.mrf.smooth.spec	smooth.construct.mrf.smooth.spec
+smooth.construct.ps.smooth.spec	smooth.construct.ps.smooth.spec
+smooth.construct.re.smooth.spec	smooth.construct.re.smooth.spec
+smooth.construct.sf.smooth.spec	smooth.construct.so.smooth.spec
+smooth.construct.so.smooth.spec	smooth.construct.so.smooth.spec
+smooth.construct.sos.smooth.spec	smooth.construct.sos.smooth.spec
+smooth.construct.sw.smooth.spec	smooth.construct.so.smooth.spec
+smooth.construct.t2.smooth.spec	smooth.construct.t2.smooth.spec
+smooth.construct.tensor.smooth.spec	smooth.construct.tensor.smooth.spec
+smooth.construct.tp.smooth.spec	smooth.construct.tp.smooth.spec
+smooth.construct.ts.smooth.spec	smooth.construct.tp.smooth.spec
+smooth.construct2	smooth.construct
+smooth.terms	smooth.terms
+smooth2random	smooth2random
+smoothCon	smoothCon
+soap	smooth.construct.so.smooth.spec
+solve.pdIdnot	pdIdnot
+sp.vcov	sp.vcov
+spasm.construct	spasm.construct
+spasm.smooth	spasm.construct
+spasm.sp	spasm.construct
+Spherical.Spline	smooth.construct.sos.smooth.spec
+step.gam	step.gam
+summary.gam	summary.gam
+summary.pdIdnot	pdIdnot
+summary.pdTens	pdTens
+t.scaled	scat
+t2	t2
+te	te
+tensor.prod.model.matrix	tensor.prod.model.matrix
+tensor.prod.penalties	tensor.prod.model.matrix
+ti	te
+tprs	smooth.construct.tp.smooth.spec
+trichol	trichol
+tw	Tweedie
+Tweedie	Tweedie
+uniquecombs	uniquecombs
+user.defined.smooth	smooth.construct
+vcov.gam	vcov.gam
+vis.gam	vis.gam
+ziP	ziP
+ziplss	ziplss
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/help/mgcv.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/help/mgcv.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mgcv/CITATION	(revision 2476)
@@ -0,0 +1,70 @@
+citHeader("2011 for generalized additive model method; 
+2004 for strictly additive GCV based model method and basics of gamm; 
+2006 for overview; 2003 for thin plate regression splines; 
+2000 is the original method, now superceded.")
+
+citEntry(
+ entry="Article",
+ title="Fast stable restricted maximum likelihood and marginal 
+likelihood estimation of semiparametric generalized linear models",
+ journal="Journal of the Royal Statistical Society (B)",
+ volume= "73",
+ number="1",
+ pages="3-36",
+ year="2011",
+ author="S. N. Wood",
+ textVersion="Wood, S.N. (2011) Fast stable restricted maximum likelihood 
+and marginal likelihood estimation of semiparametric generalized linear 
+models. Journal of the Royal Statistical Society (B) 73(1):3-36" )
+
+citEntry(
+ entry="Article",
+ title= "Stable and efficient multiple smoothing parameter estimation for 
+         generalized additive models",
+ journal="Journal of the American Statistical Association",
+ volume= "99",
+ number="467",
+ pages="673-686",
+ year="2004",
+ author="S. N. Wood",
+ textVersion="Wood, S.N. (2004) Stable and efficient multiple smoothing 
+ parameter estimation for generalized additive models.Journal of the 
+ American Statistical Association. 99:673-686."
+)
+
+citEntry(
+entry="Book",
+title="Generalized Additive Models: An Introduction with R",
+year="2006",
+author="S.N Wood",
+publisher="Chapman and Hall/CRC",
+textVersion="Wood, S.N. (2006) Generalized Additive Models: An 
+Introduction with R. Chapman and Hall/CRC. "
+)
+
+citEntry(
+ entry="Article",
+ title="Thin-plate regression splines",
+ journal="Journal of the Royal Statistical Society (B)",
+ volume= "65",
+ number="1",
+ pages="95-114",
+ year="2003",
+ author="S. N. Wood",
+ textVersion="Wood, S.N. (2003) Thin-plate regression splines.
+Journal of the Royal Statistical Society (B) 65(1):95-114." )
+
+
+citEntry(
+ entry="Article",
+ title="Modelling and smoothing parameter estimation with 
+        multiple quadratic penalties",
+ journal="Journal of the Royal Statistical Society (B)",
+ volume= "62",
+ number="2",
+ pages="413-428",
+ year="2000",
+ author="S. N. Wood",
+ textVersion="Wood, S.N. (2000) Modelling and smoothing parameter 
+estimation with multiple quadratic penalties. Journal of the Royal 
+Statistical Society (B) 62(2):413-428. " )
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/R/parallel.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/R/parallel.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/R/parallel.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/R/parallel.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/R/parallel
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/R/parallel	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/R/parallel	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/DESCRIPTION	(revision 2476)
@@ -0,0 +1,15 @@
+Package: parallel
+Version: 3.3.2
+Priority: base
+Title: Support for Parallel computation in R
+Author: R Core Team
+Maintainer: R Core Team <R-core@r-project.org>
+Description: Support for parallel computation, including by forking
+   (taken from package multicore), by sockets (taken from package snow)
+   and random-number generation.
+License: Part of R 3.3.2
+Imports: tools
+Suggests: methods
+Enhances: snow, nws, Rmpi
+NeedsCompilation: yes
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:33:28 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/html/00Index.html	(revision 2476)
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Support for Parallel computation in R</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Support for Parallel computation in R
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;parallel&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="parallel-package.html">parallel-package</a></td>
+<td>Support for Parallel Computation</td></tr>
+<tr><td style="width: 25%;"><a href="children.html">children</a></td>
+<td>Low-level Functions for Management of Forked Processes</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">clusterApply</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">clusterApplyLB</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">clusterCall</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">clusterEvalQ</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">clusterExport</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">clusterMap</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="RngStream.html">clusterSetRNGStream</a></td>
+<td>Implementation of Pierre L'Ecuyer's RngStreams</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">clusterSplit</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="detectCores.html">detectCores</a></td>
+<td>Detect the Number of CPU Cores</td></tr>
+<tr><td style="width: 25%;"><a href="makeCluster.html">makeCluster</a></td>
+<td>Create a Parallel Socket Cluster</td></tr>
+<tr><td style="width: 25%;"><a href="makeCluster.html">makeForkCluster</a></td>
+<td>Create a Parallel Socket Cluster</td></tr>
+<tr><td style="width: 25%;"><a href="makeCluster.html">makePSOCKcluster</a></td>
+<td>Create a Parallel Socket Cluster</td></tr>
+<tr><td style="width: 25%;"><a href="RngStream.html">mc.reset.stream</a></td>
+<td>Implementation of Pierre L'Ecuyer's RngStreams</td></tr>
+<tr><td style="width: 25%;"><a href="mcaffinity.html">mcaffinity</a></td>
+<td>Get or Set CPU Affinity Mask of the Current Process</td></tr>
+<tr><td style="width: 25%;"><a href="mcparallel.html">mccollect</a></td>
+<td>Evaluate an R Expression Asynchronously in a Separate Process</td></tr>
+<tr><td style="width: 25%;"><a href="mcfork.html">mcexit</a></td>
+<td>Fork a Copy of the Current R Process</td></tr>
+<tr><td style="width: 25%;"><a href="mcfork.html">mcfork</a></td>
+<td>Fork a Copy of the Current R Process</td></tr>
+<tr><td style="width: 25%;"><a href="children.html">mckill</a></td>
+<td>Low-level Functions for Management of Forked Processes</td></tr>
+<tr><td style="width: 25%;"><a href="mclapply.html">mclapply</a></td>
+<td>Parallel Versions of 'lapply' and 'mapply' using Forking</td></tr>
+<tr><td style="width: 25%;"><a href="mclapply.html">mcMap</a></td>
+<td>Parallel Versions of 'lapply' and 'mapply' using Forking</td></tr>
+<tr><td style="width: 25%;"><a href="mclapply.html">mcmapply</a></td>
+<td>Parallel Versions of 'lapply' and 'mapply' using Forking</td></tr>
+<tr><td style="width: 25%;"><a href="mcparallel.html">mcparallel</a></td>
+<td>Evaluate an R Expression Asynchronously in a Separate Process</td></tr>
+<tr><td style="width: 25%;"><a href="RngStream.html">nextRNGStream</a></td>
+<td>Implementation of Pierre L'Ecuyer's RngStreams</td></tr>
+<tr><td style="width: 25%;"><a href="RngStream.html">nextRNGSubStream</a></td>
+<td>Implementation of Pierre L'Ecuyer's RngStreams</td></tr>
+<tr><td style="width: 25%;"><a href="parallel-package.html">parallel</a></td>
+<td>Support for Parallel Computation</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">parApply</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">parCapply</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">parLapply</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">parLapplyLB</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">parRapply</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">parSapply</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="clusterApply.html">parSapplyLB</a></td>
+<td>Apply Operations using Clusters</td></tr>
+<tr><td style="width: 25%;"><a href="pvec.html">pvec</a></td>
+<td>Parallelize a Vector Map Function using Forking</td></tr>
+<tr><td style="width: 25%;"><a href="children.html">readChild</a></td>
+<td>Low-level Functions for Management of Forked Processes</td></tr>
+<tr><td style="width: 25%;"><a href="children.html">readChildren</a></td>
+<td>Low-level Functions for Management of Forked Processes</td></tr>
+<tr><td style="width: 25%;"><a href="makeCluster.html">R_PARALLEL_PORT</a></td>
+<td>Create a Parallel Socket Cluster</td></tr>
+<tr><td style="width: 25%;"><a href="children.html">selectChildren</a></td>
+<td>Low-level Functions for Management of Forked Processes</td></tr>
+<tr><td style="width: 25%;"><a href="children.html">sendChildStdin</a></td>
+<td>Low-level Functions for Management of Forked Processes</td></tr>
+<tr><td style="width: 25%;"><a href="children.html">sendMaster</a></td>
+<td>Low-level Functions for Management of Forked Processes</td></tr>
+<tr><td style="width: 25%;"><a href="makeCluster.html">setDefaultCluster</a></td>
+<td>Create a Parallel Socket Cluster</td></tr>
+<tr><td style="width: 25%;"><a href="splitIndices.html">splitIndices</a></td>
+<td>Divide Tasks for Distribution in a Cluster</td></tr>
+<tr><td style="width: 25%;"><a href="makeCluster.html">stopCluster</a></td>
+<td>Create a Parallel Socket Cluster</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/doc/parallel.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/doc/parallel.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/doc/index.html	(revision 2476)
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'parallel'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/parallel/doc/parallel.pdf">parallel::parallel</a></td>
+<td></td><td valign="top">Package 'parallel'</td>
+<td valign="top"><a href="../../../library/parallel/doc/parallel.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/parallel/doc/parallel.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/parallel/doc/parallel.R">R code</a></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/doc/parallel.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/doc/parallel.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/doc/parallel.R	(revision 2476)
@@ -0,0 +1,224 @@
+### R code from vignette source 'parallel.Rnw'
+
+###################################################
+### code chunk number 1: parallel.Rnw:473-474 (eval = FALSE)
+###################################################
+## library(parallel)
+
+
+###################################################
+### code chunk number 2: parallel.Rnw:499-506 (eval = FALSE)
+###################################################
+## library(boot)
+## cd4.rg <- function(data, mle) MASS::mvrnorm(nrow(data), mle$m, mle$v)
+## cd4.mle <- list(m = colMeans(cd4), v = var(cd4))
+## cd4.boot <- boot(cd4, corr, R = 999, sim = "parametric",
+##                  ran.gen = cd4.rg, mle = cd4.mle)
+## boot.ci(cd4.boot,  type = c("norm", "basic", "perc"),
+##         conf = 0.9, h = atanh, hinv = tanh)
+
+
+###################################################
+### code chunk number 3: parallel.Rnw:511-521 (eval = FALSE)
+###################################################
+## cd4.rg <- function(data, mle) MASS::mvrnorm(nrow(data), mle$m, mle$v)
+## cd4.mle <- list(m = colMeans(cd4), v = var(cd4))
+## run1 <- function(...) boot(cd4, corr, R = 500, sim = "parametric",
+##                            ran.gen = cd4.rg, mle = cd4.mle)
+## mc <- 2 # set as appropriate for your hardware
+## ## To make this reproducible:
+## set.seed(123, "L'Ecuyer")
+## cd4.boot <- do.call(c, mclapply(seq_len(mc), run1) )
+## boot.ci(cd4.boot,  type = c("norm", "basic", "perc"),
+##         conf = 0.9, h = atanh, hinv = tanh)
+
+
+###################################################
+### code chunk number 4: parallel.Rnw:526-527 (eval = FALSE)
+###################################################
+## do.call(c, lapply(seq_len(mc), run1))
+
+
+###################################################
+### code chunk number 5: parallel.Rnw:531-546 (eval = FALSE)
+###################################################
+## run1 <- function(...) {
+##    library(boot)
+##    cd4.rg <- function(data, mle) MASS::mvrnorm(nrow(data), mle$m, mle$v)
+##    cd4.mle <- list(m = colMeans(cd4), v = var(cd4))
+##    boot(cd4, corr, R = 500, sim = "parametric",
+##         ran.gen = cd4.rg, mle = cd4.mle)
+## }
+## cl <- makeCluster(mc)
+## ## make this reproducible
+## clusterSetRNGStream(cl, 123)
+## library(boot) # needed for c() method on master
+## cd4.boot <- do.call(c, parLapply(cl, seq_len(mc), run1) )
+## boot.ci(cd4.boot,  type = c("norm", "basic", "perc"),
+##         conf = 0.9, h = atanh, hinv = tanh)
+## stopCluster(cl)
+
+
+###################################################
+### code chunk number 6: parallel.Rnw:556-569 (eval = FALSE)
+###################################################
+## cl <- makeCluster(mc)
+## cd4.rg <- function(data, mle) MASS::mvrnorm(nrow(data), mle$m, mle$v)
+## cd4.mle <- list(m = colMeans(cd4), v = var(cd4))
+## clusterExport(cl, c("cd4.rg", "cd4.mle"))
+## junk <- clusterEvalQ(cl, library(boot)) # discard result
+## clusterSetRNGStream(cl, 123)
+## res <- clusterEvalQ(cl, boot(cd4, corr, R = 500,
+##                     sim = "parametric", ran.gen = cd4.rg, mle = cd4.mle))
+## library(boot) # needed for c() method on master
+## cd4.boot <- do.call(c, res)
+## boot.ci(cd4.boot,  type = c("norm", "basic", "perc"),
+##         conf = 0.9, h = atanh, hinv = tanh)
+## stopCluster(cl)
+
+
+###################################################
+### code chunk number 7: parallel.Rnw:574-588 (eval = FALSE)
+###################################################
+## R <- 999; M <- 999 ## we would like at least 999 each
+## cd4.nest <- boot(cd4, nested.corr, R=R, stype="w", t0=corr(cd4), M=M)
+## ## nested.corr is a function in package boot
+## op <- par(pty = "s", xaxs = "i", yaxs = "i")
+## qqplot((1:R)/(R+1), cd4.nest$t[, 2], pch = ".", asp = 1,
+##         xlab = "nominal", ylab = "estimated")
+## abline(a = 0, b = 1, col = "grey")
+## abline(h = 0.05, col = "grey")
+## abline(h = 0.95, col = "grey")
+## par(op)
+## 
+## nominal <- (1:R)/(R+1)
+## actual <- cd4.nest$t[, 2]
+## 100*nominal[c(sum(actual <= 0.05), sum(actual < 0.95))]
+
+
+###################################################
+### code chunk number 8: parallel.Rnw:593-601 (eval = FALSE)
+###################################################
+## mc <- 9
+## R <- 999; M <- 999; RR <- floor(R/mc)
+## run2 <- function(...)
+##     cd4.nest <- boot(cd4, nested.corr, R=RR, stype="w", t0=corr(cd4), M=M)
+## cd4.nest <- do.call(c, mclapply(seq_len(mc), run2, mc.cores = mc) )
+## nominal <- (1:R)/(R+1)
+## actual <- cd4.nest$t[, 2]
+## 100*nominal[c(sum(actual <= 0.05), sum(actual < 0.95))]
+
+
+###################################################
+### code chunk number 9: parallel.Rnw:615-626 (eval = FALSE)
+###################################################
+## library(spatial)
+## towns <- ppinit("towns.dat")
+## tget <- function(x, r=3.5) sum(dist(cbind(x$x, x$y)) < r)
+## t0 <- tget(towns)
+## R <- 1000
+## c <- seq(0, 1, 0.1)
+## ## res[1] = 0
+## res <- c(0, sapply(c[-1], function(c)
+##     mean(replicate(R, tget(Strauss(69, c=c, r=3.5))))))
+## plot(c, res, type="l", ylab="E t")
+## abline(h=t0, col="grey")
+
+
+###################################################
+### code chunk number 10: parallel.Rnw:630-639 (eval = FALSE)
+###################################################
+## run3 <- function(c) {
+##     library(spatial)
+##     towns <- ppinit("towns.dat") # has side effects
+##     mean(replicate(R, tget(Strauss(69, c=c, r=3.5))))
+## }
+## cl <- makeCluster(10, methods = FALSE)
+## clusterExport(cl, c("R", "towns", "tget"))
+## res <- c(0, parSapply(cl, c[-1], run3)) # 10 tasks
+## stopCluster(cl)
+
+
+###################################################
+### code chunk number 11: parallel.Rnw:643-647 (eval = FALSE)
+###################################################
+## cl <- makeForkCluster(10)  # fork after the variables have been set up
+## run4 <- function(c)  mean(replicate(R, tget(Strauss(69, c=c, r=3.5))))
+## res <- c(0, parSapply(cl, c[-1], run4))
+## stopCluster(cl)
+
+
+###################################################
+### code chunk number 12: parallel.Rnw:650-652 (eval = FALSE)
+###################################################
+## run4 <- function(c)  mean(replicate(R, tget(Strauss(69, c=c, r=3.5))))
+## res <- c(0, unlist(mclapply(c[-1], run4, mc.cores = 10)))
+
+
+###################################################
+### code chunk number 13: parallel.Rnw:683-717 (eval = FALSE)
+###################################################
+## pkgs <- "<names of packages to be installed>"
+## M <- 20 # number of parallel installs
+## M <- min(M, length(pkgs))
+## library(parallel)
+## unlink("install_log")
+## cl <- makeCluster(M, outfile = "install_log")
+## clusterExport(cl, c("tars", "fakes", "gcc")) # variables needed by do_one
+## 
+## ## set up available via a call to available.packages() for
+## ## repositories containing all the packages involved and all their
+## ## dependencies.
+## DL <- utils:::.make_dependency_list(pkgs, available, recursive = TRUE)
+## DL <- lapply(DL, function(x) x[x %in% pkgs])
+## lens <- sapply(DL, length)
+## ready <- names(DL[lens == 0L])
+## done <- character() # packages already installed
+## n <- length(ready)
+## submit <- function(node, pkg)
+##     parallel:::sendCall(cl[[node]], do_one, list(pkg), tag = pkg)
+## for (i in 1:min(n, M)) submit(i, ready[i])
+## DL <- DL[!names(DL) %in% ready[1:min(n, M)]]
+## av <- if(n < M) (n+1L):M else integer() # available workers
+## while(length(done) < length(pkgs)) {
+##     d <- parallel:::recvOneResult(cl)
+##     av <- c(av, d$node)
+##     done <- c(done, d$tag)
+##     OK <- unlist(lapply(DL, function(x) all(x %in% done) ))
+##     if (!any(OK)) next
+##     p <- names(DL)[OK]
+##     m <- min(length(p), length(av)) # >= 1
+##     for (i in 1:m) submit(av[i], p[i])
+##     av <- av[-(1:m)]
+##     DL <- DL[!names(DL) %in% p[1:m]]
+## }
+
+
+###################################################
+### code chunk number 14: parallel.Rnw:730-747 (eval = FALSE)
+###################################################
+##     fn <- function(r) statistic(data, i[r, ], ...)
+##     RR <- sum(R)
+##     res <- if (ncpus > 1L && (have_mc || have_snow)) {
+##         if (have_mc) {
+##             parallel::mclapply(seq_len(RR), fn, mc.cores = ncpus)
+##         } else if (have_snow) {
+##             list(...) # evaluate any promises
+##             if (is.null(cl)) {
+##                 cl <- parallel::makePSOCKcluster(rep("localhost", ncpus))
+##                 if(RNGkind()[1L] == "L'Ecuyer-CMRG")
+##                     parallel::clusterSetRNGStream(cl)
+##                 res <- parallel::parLapply(cl, seq_len(RR), fn)
+##                 parallel::stopCluster(cl)
+##                 res
+##             } else parallel::parLapply(cl, seq_len(RR), fn)
+##         }
+##     } else lapply(seq_len(RR), fn)
+
+
+###################################################
+### code chunk number 15: parallel.Rnw:750-751 (eval = FALSE)
+###################################################
+##             list(...) # evaluate any promises
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/doc/parallel.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/doc/parallel.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/doc/parallel.Rnw	(revision 2476)
@@ -0,0 +1,804 @@
+% File src/library/parallel/vignettes/parallel.Rnw
+% Part of the R package, https://www.R-project.org
+% Copyright 2011-2016  R Core Team
+% Distributed under GPL 2 or later
+
+\documentclass[a4paper]{article}
+
+\usepackage{Rd, parskip, amsmath, enumerate}
+\usepackage[round]{natbib}
+\usepackage{hyperref}
+\usepackage{color}
+\definecolor{Blue}{rgb}{0,0,0.8}
+\hypersetup{%
+colorlinks,%
+plainpages=true,%
+linkcolor=black,%
+citecolor=black,%
+urlcolor=Blue,%
+pdfstartview={XYZ null null 1},% 100%
+pdfview={XYZ null null null},%
+pdfpagemode=UseNone,% for no outline
+pdfauthor={R Core},%
+pdftitle={Package `parallel'}% Could also have pdfusetitle
+}
+
+%\VignetteIndexEntry{Package 'parallel'}
+%\VignettePackage{parallel}
+
+
+\title{Package `parallel'}
+\author{R-core}
+
+
+\begin{document}
+
+\maketitle
+
+\section{Introduction}
+
+Package \pkg{parallel} was first included in \R{} 2.14.0.  It builds
+on the work done for CRAN packages \CRANpkg{multicore} \citep{multicore}
+and \CRANpkg{snow} \citep{snow} and provides drop-in replacements for most
+of the functionality of those packages, with integrated handling of
+random-number generation.
+
+Parallelism can be done in computation at many different levels: this
+package is principally concerned with `coarse-grained
+parallelization'.  At the lowest level, modern CPUs can do several
+basic operations simultaneously (e.g.{} integer and floating-point
+arithmetic), and several implementations of external BLAS libraries
+use multiple threads to do parts of basic vector/matrix operations in
+parallel.  Several contributed \R{} packages use multiple threads at C
+level \emph{via} OpenMP or pthreads.
+
+This package handles running much larger chunks of computations in
+parallel.  A typical example is to evaluate the same \R{} function on
+many different sets of data: often simulated data as in bootstrap
+computations (or with `data' being the random-number stream).  The
+crucial point is that these chunks of computation are unrelated and do
+not need to communicate in any way.  It is often the case that the
+chunks take approximately the same length of time.  The basic
+computational model is
+\begin{enumerate}[(a)]
+\item Start up $M$ `worker' processes, and do any initialization
+  needed on the workers.
+\item Send any data required for each task to the workers.
+\item Split the task into $M$ roughly equally-sized chunks, and send
+  the chunks (including the \R{} code needed) to the workers.
+\item Wait for all the workers to complete their tasks, and ask them
+  for their results.
+\item Repeat steps (b--d) for any further tasks.
+\item Shut down the worker processes.
+\end{enumerate}
+Amongst the initializations which may be needed are to load packages
+and initialize the random-number stream.
+
+There are implementations of this model in the functions
+\code{mclapply} and \code{parLapply} as near-drop-in replacements for
+\code{lapply}.
+
+A slightly different model is to split the task into $M_1 > M$ chunks,
+send the first $M$ chunks to the workers, then repeatedly wait for any
+worker to complete and send it the next remaining task: see the
+section on `load balancing'.
+
+In principle the workers could be implemented by threads\footnote{only
+  `in principle' since the \R{} interpreter is not thread-safe.} or
+lightweight processes, but in the current implementation they are full
+processes.  They can be created in one of three ways:
+\begin{enumerate}
+\item \emph{Via} \code{system("Rscript")} or similar to launch a new
+  process on the current machine or a similar machine with an identical
+  \R{} installation.  This then needs a way to communicate between
+  master and worker processes, which is usually done \emph{via}
+  sockets.
+
+  This should be available on all \R{} platforms, although it is
+  conceivable that zealous security measures could block the
+  inter-process communication \emph{via} sockets.  Users of Windows
+  and macOS may expect pop-up dialog boxes from the firewall asking
+  if an \R{} process should accept incoming connections.
+
+  Following \CRANpkg{snow}, a pool of worker processes listening
+  \emph{via} sockets for commands from the master is called a
+  `cluster' of nodes.
+
+\item \emph{Via} forking.  \emph{Fork} is a
+  concept\footnote{\url{https://en.wikipedia.org/wiki/Fork_(operating_system)}}
+  from POSIX operating systems, and should be available on all \R{}
+  platforms except Windows.  This creates a new \R{} process by taking
+  a complete copy of the master process, including the workspace and
+  state of the random-number stream.  However, the copy will (in any
+  reasonable OS) share memory pages with the master until modified so
+  forking is very fast.
+
+  The use of forking was pioneered by package \CRANpkg{multicore}.
+
+  Note that as it does share the complete process, it also shares any
+  GUI elements, for example an \R{} console and on-screen devices.
+  This can cause havoc.\footnote{Some precautions are taken on macOS:
+    for example the event loops for \command{R.app} and the
+    \code{quartz} device are inhibited in the child.  This information
+    is available at C level in the \code{Rboolean} variable
+    \code{R\_isForkedChild}.}
+
+  There needs to be a way to communicate between master and worker.
+  Once again there are several possibilities since master and workers
+  share memory. In \CRANpkg{multicore} the initial fork sends an \R{}
+  expression to be evaluated to the worker, and the master process
+  opens a pipe for reading that is used by the worker to return the
+  results.  Both that and creating a cluster of nodes communicating
+  \emph{via} sockets are supported in package \pkg{parallel}.
+
+\item Using OS-level facilities to set up a means to send tasks to
+  other members of a group of machines.  There are several ways to do
+  that, and for example package \CRANpkg{snow} can make use of MPI
+  (`message passing interface') using \R{} package \CRANpkg{Rmpi}.
+  Communication overheads can dominate computation times in this
+  approach, so it is most often used on tightly-coupled networks of
+  computers with high-speed interconnects.
+
+  CRAN packages following this approach include \CRANpkg{GridR} (using
+  Condor or Globus) and \CRANpkg{Rsge} (using SGE, currently called
+  `Oracle Grid Engine').
+
+  It will not be considered further in this vignette, but those parts
+  of \pkg{parallel} which provide \CRANpkg{snow}-like functions will
+  accept \CRANpkg{snow} clusters including MPI clusters.
+\end{enumerate}
+
+The landscape of parallel computing has changed with the advent of
+shared-memory computers with multiple (and often many) CPU cores.
+Until the late 2000's parallel computing was mainly done on clusters
+of large numbers of single- or dual-CPU computers: nowadays even
+laptops have two or four cores, and servers with 8, 32 or more cores
+are commonplace.  It is such hardware that package \pkg{parallel} is
+designed to exploit.  It can also be used with several computers
+running the same version of \R{} connected by (reasonable-speed)
+ethernet: the computers need not be running the same OS.
+
+Note that all these methods of communication use
+\code{serialize}/\code{unserialize} to send \R{} objects between
+processes.  This has limits (typically hundreds of millions of
+elements) which a well-designed parallelized algorithm should not
+approach.
+
+%<<>>=
+%library(parallel)
+%@
+
+\section{Numbers of CPUs/cores}
+
+In setting up parallel computations it can be helpful to have some
+idea of the number of CPUs or cores available, but this is a rather
+slippery concept.  Nowadays almost all physical CPUs contain two or
+more cores that run more-or-less independently (they may share parts
+of the cache memory, and they do share access to RAM).  However, on
+some processors these cores may themselves be able to run multiple
+tasks simultaneously, and some OSes (e.g.{} Windows) have the concept
+of \emph{logical} CPUs which may exceed the number of cores.
+
+Note that all a program can possibly determine is the total number of
+CPUs and/or cores available.  This is not necessarily the same as the
+number of CPUs available \emph{to the current user} which may well be
+restricted by system policies on multi-user systems.  Nor does it give
+much idea of a reasonable number of CPUs to use for the current task:
+the user may be running many \R{} processes simultaneously, and those
+processes may themselves be using multiple threads through a
+multi-threaded BLAS, compiled code using OpenMP or other low-level
+forms of parallelism.  We have even seen instances of
+\CRANpkg{multicore}'s \code{mclapply} being called
+recursively,\footnote{\code{parallel::mclapply} detects this and runs
+  nested calls serially.} generating $2n + n^2$ processes on a machine
+estimated to have $n = 16$ cores.
+
+But in so far as it is a useful guideline, function
+\code{detectCores()} tries to determine the number of CPU cores in the
+machine on which \R{} is running: it has ways to do so on all known
+current \R{} platforms.  What exactly it measures is OS-specific: we
+try where possible to report the number of logical cores available.
+
+On Windows the default is to report the number of logical CPUs.  On
+modern hardware (e.g.{} Intel \emph{Core i7}) the latter may not be
+unreasonable as hyper-threading does give a significant extra
+throughput.  What \code{detectCores(logical = FALSE)} reports is
+OS-version-dependent: on recent versions of Windows it reports the
+number of physical cores but on older versions it might report the
+number of physical CPU packages.
+
+\section{Analogues of apply functions}
+
+By far the most common direct applications of packages \CRANpkg{multicore}
+and \CRANpkg{snow} have been to provide parallelized replacements of
+\code{lapply}, \code{sapply}, \code{apply} and related functions.
+
+As analogues of \code{lapply} there are
+\begin{verbatim}
+parLapply(cl, x, FUN, ...)
+mclapply(X, FUN, ..., mc.cores)
+\end{verbatim}
+where \code{mclapply} is not available\footnote{except as a stub
+  which simply calls \code{lapply}.} on Windows and has further
+arguments discussed on its help page.  They differ slightly in
+philosophy: \code{mclapply} sets up a pool of \code{mc.cores} workers
+just for this computation, whereas \code{parLapply} uses a less
+ephemeral pool specified by the object \code{cl} created by a call to
+\code{makeCluster} (which \emph{inter alia} specifies the size of the
+pool).  So the workflow is
+\begin{verbatim}
+cl <- makeCluster(<size of pool>)
+# one or more parLapply calls
+stopCluster(cl)
+\end{verbatim}
+% we could arrange to stop a cluster when cl is gc-ed
+
+For matrices there are the rarely used \code{parApply} and
+\code{parCapply} functions, and the more commonly used
+\code{parRapply}, a parallel row \code{apply} for a matrix.
+
+\section{SNOW Clusters}
+
+The package contains a slightly revised copy of much of \CRANpkg{snow},
+and the functions it contains can also be used with clusters created
+by \CRANpkg{snow} (provided the package is on the search path).
+
+Two functions are provided to create SNOW clusters,
+\code{makePSOCKcluster} (a streamlined version of
+\code{snow::makeSOCKcluster}) and (except on Windows)
+\code{makeForkCluster}.  They differ only in the way they spawn worker
+processes: \code{makePSOCKcluster} uses \code{Rscript} to launch
+further copies of \R{} (on the same host or optionally elsewhere)
+whereas \code{makeForkCluster} forks the workers on the current host
+(which thus inherit the environment of the current session).
+
+These functions would normally be called \emph{via} \code{makeCluster}.
+
+Both \code{stdout()} and \code{stderr()} of the workers are
+redirected, by default being discarded but they can be logged using
+the \code{outfile} option.  Note that the previous sentence refers to
+the \emph{connections} of those names, not the C-level file handles.
+Thus properly written \R{} packages using \code{Rprintf} will have
+their output redirected, but not direct C-level output.
+
+A default cluster can be registered by a call to
+\code{setDefaultCluster()}: this is then used whenever one of the
+higher-level functions such as \code{parApply} is called without an
+explicit cluster.  A little care is needed when repeatedly re-using a
+pool of workers, as their workspaces will accumulate objects from past
+usage, and packages may get added to the search path.
+
+If clusters are to be created on a host other than the current machine
+(\samp{localhost}), \code{makeCluster} may need to be be given more
+information in the shape of extra arguments.
+\begin{itemize}
+  \item If the worker machines are not set up in exactly the same way
+    as the master (for example if they are of a different
+    architecture), use \code{homogeneous = FALSE} and perhaps set
+    \code{rscript} to the full path to \command{Rscript} on the workers.
+  \item The worker machines need to know how to communicate with the
+    master: normally this can be done using the hostname found by
+    \code{Sys.info()}, but on private networks this need not be the
+    case and \code{master} may need to be supplied as a name or IP
+    address, e.g. \code{master = "192.168.1.111"}.
+  \item By default \command{ssh} is used to launch R on the workers.
+    If it is known by some other name, use e.g.{}
+    \code{rshcmd = "plink.exe"} for a Windows box using PUTTY.
+    SSH should be set
+    up to use silent authentication: setups which require a password
+    to be supplied may or may not work.
+  \item Socket communication is done over port a randomly chosen port
+    in the range \code{11000:11999}: site policies
+    might require some other port to be used, in which case set
+    argument \code{port} or environment variable \env{R\_PARALLEL\_PORT}.
+\end{itemize}
+
+\section{Forking}
+
+Except on Windows, the package contains a copy of \CRANpkg{multicore}:
+there a few names with the added prefix \code{mc}, e.g.{}
+\code{mccollect} and \code{mcparallel}.  (Package \CRANpkg{multicore}
+used these names, but also the versions without the prefix which are
+too easily masked: e.g.{} package \CRANpkg{lattice} used to have a
+function \code{parallel}.)
+
+The low-level functions from \CRANpkg{multicore} are provided but not
+exported from the namespace.
+
+There are high-level functions \code{mclapply} and \code{pvec}: unlike
+the versions in \CRANpkg{multicore} these default to 2 cores, but this can
+be controlled by setting \code{options("mc.cores")}, and that takes
+its default from environment variable \code{MC\_CORES} when the
+package is loaded.  (Setting this to \code{1} inhibits parallel
+operation: there are stub versions of these functions on Windows which
+force \code{mc.cores = 1}.)
+
+Functions \code{mcmapply} and \code{mcMap} provide analogues of
+\code{mapply} and \code{Map}.
+
+Note the earlier comments about using forking in a GUI environment.
+
+The parent and forked \R{} processes share the per-session temporary
+directory \code{tempdir()}, which can be a problem as a lot of code
+has assumed it is private to the \R{} process.  Further, prior to \R{}
+2.14.1 it was possibly for \code{tempfile} in two processes to select
+the same filename in that temporary directory, and do it sufficiently
+simultaneously that neither saw it as being in use.
+
+The forked workers share file handles with the master: this means that
+any output from the worker should go to the same place as
+\file{stdout} and \file{stderr} of the master process.  (This does not
+work reliably on all OSes: problems have also been noted when forking
+a session that is processing batch input from \file{stdin}.)  Setting
+argument \code{mc.silent = TRUE} silences \file{stdout} for the child:
+\file{stderr} is not affected.
+
+Sharing file handles also impacts graphics devices as forked workers
+inherit all open graphics devices of the parent: they should not
+attempt to make use of them.
+
+
+\section{Random-number generation}
+
+Some care is needed with parallel computation using (pseudo-)random
+numbers: the processes/threads which run separate parts of the
+computation need to run independent (and preferably reproducible)
+random-number streams.  One way to avoid any difficulties is (where
+possible) to do all the randomization in the master process: this is
+done where possible in package \CRANpkg{boot} (version 1.3-1 and later).
+
+When an \R{} process is started up it takes the random-number seed
+from the object \code{.Random.seed} in a saved workspace or constructs
+one from the clock time and process ID when random-number generation
+is first used (see the help on \code{RNG}).  Thus worker processes
+might get the same seed because a workspace containing
+\code{.Random.seed} was restored or the random number generator has
+been used before forking: otherwise these get a non-reproducible seed
+(but with very high probability a different seed for each worker).
+
+The alternative is to set separate seeds for each worker process in
+some reproducible way from the seed in the master process.  This is
+generally plenty safe enough, but there have been worries that the
+random-number streams in the workers might somehow get into step.  One
+approach is to take the seeds a long way apart in the random-number
+stream: note that random numbers taken a long (fixed) distance apart
+in a single stream are not necessarily (and often are not) as
+independent as those taken a short distance apart.  Yet another idea
+(as used by e.g.{} \pkg{JAGS}) is to use different random-number
+generators for each separate run/process.
+
+Package \pkg{parallel} contains an implementation of the ideas of
+\citet{lecuyer.2002}: this uses a single RNG and make \emph{streams}
+with seeds $2^{127}$ steps apart in the random number stream (which
+has period approximately $2^{191}$).  This is based on the generator
+of \citet{lecuyer.1999}; the reason for choosing that
+generator\footnote{apart from the commonality of authors!} is that it
+has a fairly long period with a small seed (6 integers), and unlike
+\R{}'s default \code{"Mersenne-Twister"} RNG, it is simple to advance
+the seed by a fixed number of steps.  The generator is the combination
+of two:
+\begin{eqnarray*}
+  x_n &=& 1403580 \times x_{n-2} - 810728 \times x_{n-3} \mod{(2^{32} - 209)}\\
+  y_n &=& 527612 \times y_{n-1} - 1370589 \times y_{n-3} \mod{(2^{32} - 22853)}\\
+  z_n &=& (x_n - y_n) \mod{4294967087}\\
+  u_n &=& z_n/4294967088\ \mbox{unless $z_n = 0$}
+\end{eqnarray*}
+The `seed' then consists of $(x_{n-3}, x_{n-2}, x_{n-1}, y_{n-3}, y_{n-2}, y_{n-1})$,
+and the recursion for each of $x_n$ and $y_n$ can have
+pre-computed coefficients for $k$ steps ahead.  For $k = 2^{127}$, the
+seed is advanced by $k$ steps by \R{} call
+\code{.Random.seed <- nextRNGStream(.Random.seed)}.
+
+% use \verb to get consistent quote mapping.
+The \citet{lecuyer.1999} generator is available \emph{via}
+\verb|RNGkind("L'Ecuyer-CMRG")|.  Thus using the ideas of
+\citet{lecuyer.2002} is as simple as
+\begin{verbatim}
+RNGkind("L'Ecuyer-CMRG")
+set.seed(<something>)
+## start M workers
+s <- .Random.seed
+for (i in 1:M) {
+    s <- nextRNGStream(s)
+    # send s to worker i as .Random.seed
+}
+\end{verbatim}
+and this is is implemented for SNOW clusters in function
+\code{clusterSetRNGStream}, and as part of \code{mcparallel} and
+\code{mclapply} (by default).
+
+Apart from \emph{streams} ($2^{127}$ steps apart), there is the concept of
+\emph{sub-streams} starting from seeds $2^{76}$ steps apart.  Function
+\code{nextRNGSubStream} advances to the next substream.
+
+A direct \R{} interface to the (clunkier) original C implementation is
+available in CRAN package \CRANpkg{rlecuyer} \citep{rlecuyer}.  That works
+with named streams, each of which have three 6-element seeds
+associated with them.  This can easily be emulated in \R{} by storing
+\code{.Random.seed} at suitable times.  There is another interface
+using S4 classes in package \CRANpkg{rstream} \citep{rstream}.
+
+\section{Load balancing}
+
+The introduction mentioned a different strategy which dynamically
+allocates tasks to workers: this is sometimes known as `load
+balancing' and is implemented in \code{mclapply(mc.preschedule =
+  FALSE)}, \code{clusterApplyLB} and wrappers.
+
+Load balancing is potentially advantageous when the tasks take quite
+dissimilar amounts of computation time, or where the nodes are of
+disparate capabilities.  But some \emph{caveats} are in order:
+\begin{enumerate}[(a)]
+\item Random number streams are allocated to nodes, so if the tasks
+  involve random numbers they are likely to be non-repeatable (as the
+  allocation of tasks to nodes depends on the workloads of the nodes).
+  It would however take only slightly more work to allocate a stream to
+  each task.
+\item More care is needed is allocating the tasks.  If 1000 tasks need
+  to be allocated to 10 nodes, the standard approach send chunks of
+  100 tasks to each of the nodes.  The load-balancing approach sends
+  tasks one at a time to a node, and the communication overhead may be
+  high.  So it makes sense to have substantially more tasks than
+  nodes, but not by a factor of 100 (and maybe not by 10).
+\end{enumerate}
+
+\section{Portability considerations}
+
+People wanting to provide parallel facilities in their code need to
+decide how hard they want to try to be portable and efficient: no
+approach works optimally on all platforms.
+
+Using \code{mclapply} is usually the simplest approach, but will run
+serial versions of the code on Windows.  This may suffice where
+parallel computation is only required for use on a single multi-core
+Unix-alike server---for \code{mclapply} can only run on a single
+shared-memory system.  There is fallback to serial use when needed, by
+setting \code{mc.cores = 1}.
+
+Using \code{parLapply} will work everywhere that socket communication
+works, and can be used, for example, to harness all the CPU cores in a
+lab of machines that are not otherwise in use.  But socket
+communication may be blocked even when using a single machine and is
+quite likely to be blocked between machines in a lab.  There is not
+currently any fallback to serial use, nor could there easily be (as
+the workers start with a different \R{} environment from the one
+current on the master).
+
+An example of providing access to both approaches as well as serial
+code is package \CRANpkg{boot}, version \code{1.3-3} or later.
+
+\section{Extended examples}
+
+\SweaveOpts{eval=FALSE}
+<<hide=TRUE>>=
+library(parallel)
+@
+
+Probably the most common use of coarse-grained parallelization in
+statistics is to do multiple simulation runs, for example to do large
+numbers of bootstrap replicates or several runs of an MCMC simulation.
+We show an example of each.
+
+Note that some of the examples will only work serially on Windows and
+some actually are computer-intensive.
+
+\subsection{Bootstrapping}
+
+Package \CRANpkg{boot} \citep{boot} is support software for the monograph
+by \citet{Davison.Hinkley.97}.  Bootstrapping is often used as an
+example of easy parallelization, and some methods of producing
+confidence intervals require many thousands of bootstrap samples.
+As from version \code{1.3-1} the package itself has parallel support
+within its main functions, but we illustrate how to use the original
+(serial) functions in parallel computations.
+
+We consider two examples using the \code{cd4} dataset from package
+\CRANpkg{boot} where the interest is in the correlation between before and
+after measurements.  The first is a straight simulation, often called
+a \emph{parametric bootstrap}.  The non-parallel form is
+<<>>=
+library(boot)
+cd4.rg <- function(data, mle) MASS::mvrnorm(nrow(data), mle$m, mle$v)
+cd4.mle <- list(m = colMeans(cd4), v = var(cd4))
+cd4.boot <- boot(cd4, corr, R = 999, sim = "parametric",
+                 ran.gen = cd4.rg, mle = cd4.mle)
+boot.ci(cd4.boot,  type = c("norm", "basic", "perc"),
+        conf = 0.9, h = atanh, hinv = tanh)
+@
+
+To do this with \code{mclapply} we need to break this into separate
+runs, and we will illustrate two runs of 500 simulations each:
+<<>>=
+cd4.rg <- function(data, mle) MASS::mvrnorm(nrow(data), mle$m, mle$v)
+cd4.mle <- list(m = colMeans(cd4), v = var(cd4))
+run1 <- function(...) boot(cd4, corr, R = 500, sim = "parametric",
+                           ran.gen = cd4.rg, mle = cd4.mle)
+mc <- 2 # set as appropriate for your hardware
+## To make this reproducible:
+set.seed(123, "L'Ecuyer")
+cd4.boot <- do.call(c, mclapply(seq_len(mc), run1) )
+boot.ci(cd4.boot,  type = c("norm", "basic", "perc"),
+        conf = 0.9, h = atanh, hinv = tanh)
+@
+There are many ways to program things like this: often the neatest is
+to encapsulate the computation in a function, so this is the parallel
+form of
+<<eval=FALSE>>=
+do.call(c, lapply(seq_len(mc), run1))
+@
+
+To run this with \code{parLapply} we could take a similar approach by
+<<>>=
+run1 <- function(...) {
+   library(boot)
+   cd4.rg <- function(data, mle) MASS::mvrnorm(nrow(data), mle$m, mle$v)
+   cd4.mle <- list(m = colMeans(cd4), v = var(cd4))
+   boot(cd4, corr, R = 500, sim = "parametric",
+        ran.gen = cd4.rg, mle = cd4.mle)
+}
+cl <- makeCluster(mc)
+## make this reproducible
+clusterSetRNGStream(cl, 123)
+library(boot) # needed for c() method on master
+cd4.boot <- do.call(c, parLapply(cl, seq_len(mc), run1) )
+boot.ci(cd4.boot,  type = c("norm", "basic", "perc"),
+        conf = 0.9, h = atanh, hinv = tanh)
+stopCluster(cl)
+@
+Note that whereas with \code{mclapply} all the packages and objects
+we use are automatically available on the workers, this is not in
+general\footnote{it is with clusters set up with
+  \code{makeForkCluster}.} the case with the \code{parLapply}
+approach.  There is often a delicate choice of where to do the
+computations: for example we could compute \code{cd4.mle} on the
+workers (as above) or on the master and send the value to the
+workers. We illustrate the latter by the following code
+<<>>=
+cl <- makeCluster(mc)
+cd4.rg <- function(data, mle) MASS::mvrnorm(nrow(data), mle$m, mle$v)
+cd4.mle <- list(m = colMeans(cd4), v = var(cd4))
+clusterExport(cl, c("cd4.rg", "cd4.mle"))
+junk <- clusterEvalQ(cl, library(boot)) # discard result
+clusterSetRNGStream(cl, 123)
+res <- clusterEvalQ(cl, boot(cd4, corr, R = 500,
+                    sim = "parametric", ran.gen = cd4.rg, mle = cd4.mle))
+library(boot) # needed for c() method on master
+cd4.boot <- do.call(c, res)
+boot.ci(cd4.boot,  type = c("norm", "basic", "perc"),
+        conf = 0.9, h = atanh, hinv = tanh)
+stopCluster(cl)
+@
+
+Running the double bootstrap on the same problem is far more
+computer-intensive.  The standard version is
+<<fig=TRUE>>=
+R <- 999; M <- 999 ## we would like at least 999 each
+cd4.nest <- boot(cd4, nested.corr, R=R, stype="w", t0=corr(cd4), M=M)
+## nested.corr is a function in package boot
+op <- par(pty = "s", xaxs = "i", yaxs = "i")
+qqplot((1:R)/(R+1), cd4.nest$t[, 2], pch = ".", asp = 1,
+        xlab = "nominal", ylab = "estimated")
+abline(a = 0, b = 1, col = "grey")
+abline(h = 0.05, col = "grey")
+abline(h = 0.95, col = "grey")
+par(op)
+
+nominal <- (1:R)/(R+1)
+actual <- cd4.nest$t[, 2]
+100*nominal[c(sum(actual <= 0.05), sum(actual < 0.95))]
+@
+which took about 55 secs on one core of an 8-core Linux server.
+
+Using \code{mclapply} we could use
+<<eval=FALSE>>=
+mc <- 9
+R <- 999; M <- 999; RR <- floor(R/mc)
+run2 <- function(...)
+    cd4.nest <- boot(cd4, nested.corr, R=RR, stype="w", t0=corr(cd4), M=M)
+cd4.nest <- do.call(c, mclapply(seq_len(mc), run2, mc.cores = mc) )
+nominal <- (1:R)/(R+1)
+actual <- cd4.nest$t[, 2]
+100*nominal[c(sum(actual <= 0.05), sum(actual < 0.95))]
+@
+which ran in 11 secs (elapsed) using all of that server.
+
+\subsection{MCMC runs}
+
+\citet{Ripley.88} discusses the maximum-likelihood estimation of the
+Strauss process, which is done by solving a moment equation
+\[
+E_c T = t
+\]
+where $T$ is the number of $R$-close pairs and $t$ is the observed
+value, $30$ in the following example.  A serial approach to the
+initial exploration might be
+<<>>=
+library(spatial)
+towns <- ppinit("towns.dat")
+tget <- function(x, r=3.5) sum(dist(cbind(x$x, x$y)) < r)
+t0 <- tget(towns)
+R <- 1000
+c <- seq(0, 1, 0.1)
+## res[1] = 0
+res <- c(0, sapply(c[-1], function(c)
+    mean(replicate(R, tget(Strauss(69, c=c, r=3.5))))))
+plot(c, res, type="l", ylab="E t")
+abline(h=t0, col="grey")
+@
+which takes about 20 seconds today, but many hours when first done
+in 1985.  A parallel version might be
+<<>>=
+run3 <- function(c) {
+    library(spatial)
+    towns <- ppinit("towns.dat") # has side effects
+    mean(replicate(R, tget(Strauss(69, c=c, r=3.5))))
+}
+cl <- makeCluster(10, methods = FALSE)
+clusterExport(cl, c("R", "towns", "tget"))
+res <- c(0, parSapply(cl, c[-1], run3)) # 10 tasks
+stopCluster(cl)
+@
+which took about 4.5 secs, plus 2 secs to set up the cluster.  Using a
+fork cluster (not on Windows) makes the startup much faster and setup easier:
+<<eval=FALSE>>=
+cl <- makeForkCluster(10)  # fork after the variables have been set up
+run4 <- function(c)  mean(replicate(R, tget(Strauss(69, c=c, r=3.5))))
+res <- c(0, parSapply(cl, c[-1], run4))
+stopCluster(cl)
+@
+As one might expect, the \code{mclapply} version is slightly simpler:
+<<eval=FALSE>>=
+run4 <- function(c)  mean(replicate(R, tget(Strauss(69, c=c, r=3.5))))
+res <- c(0, unlist(mclapply(c[-1], run4, mc.cores = 10)))
+@
+If you do not have as many as 10 cores, you might want to consider
+load-balancing in a task like this as the time taken per simulation
+does vary with \code{c}.  This can be done using
+\code{mclapply(mc.preschedule = FALSE)} or \code{parSapplyLB}.  The
+disadvantage is that the results would not be reproducible (which does
+not matter here).
+
+\subsection{Package installation}
+
+With over 4000 \R{} packages available, it is often helpful to do a
+comprehensive install in parallel. We provide facilities to do so in
+\code{install.packages} \emph{via} a parallel \command{make}, but that
+approach may not be suitable.\footnote{A parallel \command{make} might
+  not be available, and we have seen a couple of instances of package
+  installation not working correctly when run from \command{make}.}
+Some of the tasks take many times longer than others, and we do not
+know in advance which these are.
+
+We illustrate an approach using package \pkg{parallel} which is used
+on part of the CRAN check farm.  Suppose that there is a function
+\code{do\_one(pkg)} which installs a single package and then returns.
+Then the task is to run \code{do\_one} on as many of the \code{M}
+workers as possible whilst ensuring that all of the direct and
+indirect dependencies of \code{pkg} are installed before \code{pkg}
+itself.  As the installation of a single package can block several
+others, we do need to allow the number of installs running
+simultaneously to vary: the following code achieves that, but needs to
+use low-level functions to do so.
+
+<<eval=FALSE>>=
+pkgs <- "<names of packages to be installed>"
+M <- 20 # number of parallel installs
+M <- min(M, length(pkgs))
+library(parallel)
+unlink("install_log")
+cl <- makeCluster(M, outfile = "install_log")
+clusterExport(cl, c("tars", "fakes", "gcc")) # variables needed by do_one
+
+## set up available via a call to available.packages() for
+## repositories containing all the packages involved and all their
+## dependencies.
+DL <- utils:::.make_dependency_list(pkgs, available, recursive = TRUE)
+DL <- lapply(DL, function(x) x[x %in% pkgs])
+lens <- sapply(DL, length)
+ready <- names(DL[lens == 0L])
+done <- character() # packages already installed
+n <- length(ready)
+submit <- function(node, pkg)
+    parallel:::sendCall(cl[[node]], do_one, list(pkg), tag = pkg)
+for (i in 1:min(n, M)) submit(i, ready[i])
+DL <- DL[!names(DL) %in% ready[1:min(n, M)]]
+av <- if(n < M) (n+1L):M else integer() # available workers
+while(length(done) < length(pkgs)) {
+    d <- parallel:::recvOneResult(cl)
+    av <- c(av, d$node)
+    done <- c(done, d$tag)
+    OK <- unlist(lapply(DL, function(x) all(x %in% done) ))
+    if (!any(OK)) next
+    p <- names(DL)[OK]
+    m <- min(length(p), length(av)) # >= 1
+    for (i in 1:m) submit(av[i], p[i])
+    av <- av[-(1:m)]
+    DL <- DL[!names(DL) %in% p[1:m]]
+}
+@
+
+\subsection{Passing \code{...}}
+
+The semantics of \code{...} do not fit well with parallel operation,
+since lazy evaluation may be delayed until the tasks have been sent to
+the workers.  This is no problem in the forking approach, as the
+information needed for lazy evaluation will be present in the forked workers.
+
+For \CRANpkg{snow}-like clusters the trick is to ensure that \code{...}
+has any promises forced whilst the information is still available.
+This is how \CRANpkg{boot} does it:
+<<eval=FALSE>>=
+    fn <- function(r) statistic(data, i[r, ], ...)
+    RR <- sum(R)
+    res <- if (ncpus > 1L && (have_mc || have_snow)) {
+        if (have_mc) {
+            parallel::mclapply(seq_len(RR), fn, mc.cores = ncpus)
+        } else if (have_snow) {
+            list(...) # evaluate any promises
+            if (is.null(cl)) {
+                cl <- parallel::makePSOCKcluster(rep("localhost", ncpus))
+                if(RNGkind()[1L] == "L'Ecuyer-CMRG")
+                    parallel::clusterSetRNGStream(cl)
+                res <- parallel::parLapply(cl, seq_len(RR), fn)
+                parallel::stopCluster(cl)
+                res
+            } else parallel::parLapply(cl, seq_len(RR), fn)
+        }
+    } else lapply(seq_len(RR), fn)
+@
+Note that \code{...} is an argument to \code{boot}, and so after
+<<eval=FALSE>>=
+            list(...) # evaluate any promises
+@
+it refers to objects within the evaluation frame of \code{boot} and
+hence the environment of \code{fn} which will therefore be sent to the
+workers along with \code{fn}.
+
+\section{Differences from earlier versions}
+
+The support of parallel RNG differs from \CRANpkg{snow}: \CRANpkg{multicore}
+had no support.
+
+\subsection{Differences from multicore}
+
+\CRANpkg{multicore} had quite elaborate code to inhibit the Aqua event
+loop for \command{R.app} and the event loop for the \code{quartz}
+graphics device.  This has been replaced by recording a flag in the
+\R{} executable for a child process.
+
+Functions \code{fork} and \code{kill} have \code{mc} prefixes and are
+not exported.  This avoids confusion with other packages (such as
+package \CRANpkg{fork}), and note that \code{mckill} is not as general as
+\code{tools::pskill}.
+
+Aliased functions \code{collect} and \code{parallel} are no longer provided.
+
+\subsection{Differences from snow}
+
+\CRANpkg{snow} set a timeout that exceeded the maximum value required by
+POSIX, and did not provide a means to set the timeout on the workers.
+This resulted in process interlocks on Solaris.
+
+\code{makeCluster} creates MPI or NWS clusters by calling \CRANpkg{snow}.
+
+\code{makePSOCKcluster} has been streamlined, as package \pkg{parallel} is in
+a known location on all systems, and \command{Rscript} is these days
+always available.  Logging of workers is set up to append to the file,
+so multiple processes can be logged.
+
+\code{parSapply} has been brought into line with \code{sapply}.
+
+\code{clusterMap()} gains \code{SIMPLIFY} and \code{USE.NAMES}
+arguments to make it a parallel version of \code{mapply} and \code{Map}.
+
+The timing interface has not been copied.
+
+\bibliographystyle{jss}
+\bibliography{parallel}
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/INDEX	(revision 2476)
@@ -0,0 +1,16 @@
+children                Low-level Functions for Management of Forked
+                        Processes
+clusterApply            Apply Operations using Clusters
+detectCores             Detect the Number of CPU Cores
+makeCluster             Create a Parallel Socket Cluster
+mcaffinity              Get or Set CPU Affinity Mask of the Current
+                        Process
+mcfork                  Fork a Copy of the Current R Process
+mclapply                Parallel Versions of 'lapply' and 'mapply'
+                        using Forking
+mcparallel              Evaluate an R Expression Asynchronously in a
+                        Separate Process
+nextRNGStream           Implementation of Pierre L'Ecuyer's RngStreams
+parallel-package        Support for Parallel Computation
+pvec                    Parallelize a Vector Map Function using Forking
+splitIndices            Divide Tasks for Distribution in a Cluster
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/help/parallel.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/help/parallel.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/help/AnIndex	(revision 2476)
@@ -0,0 +1,44 @@
+parallel-package	parallel-package
+children	children
+clusterApply	clusterApply
+clusterApplyLB	clusterApply
+clusterCall	clusterApply
+clusterEvalQ	clusterApply
+clusterExport	clusterApply
+clusterMap	clusterApply
+clusterSetRNGStream	RngStream
+clusterSplit	clusterApply
+detectCores	detectCores
+makeCluster	makeCluster
+makeForkCluster	makeCluster
+makePSOCKcluster	makeCluster
+mc.reset.stream	RngStream
+mcaffinity	mcaffinity
+mccollect	mcparallel
+mcexit	mcfork
+mcfork	mcfork
+mckill	children
+mclapply	mclapply
+mcMap	mclapply
+mcmapply	mclapply
+mcparallel	mcparallel
+nextRNGStream	RngStream
+nextRNGSubStream	RngStream
+parallel	parallel-package
+parApply	clusterApply
+parCapply	clusterApply
+parLapply	clusterApply
+parLapplyLB	clusterApply
+parRapply	clusterApply
+parSapply	clusterApply
+parSapplyLB	clusterApply
+pvec	pvec
+readChild	children
+readChildren	children
+R_PARALLEL_PORT	makeCluster
+selectChildren	children
+sendChildStdin	children
+sendMaster	children
+setDefaultCluster	makeCluster
+splitIndices	splitIndices
+stopCluster	makeCluster
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/help/parallel.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/help/parallel.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/libs/parallel.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/libs/parallel.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/parallel/NAMESPACE	(revision 2476)
@@ -0,0 +1,41 @@
+## Namespace for package 'parallel'
+useDynLib("parallel", .registration = TRUE, .fixes = "C_")
+
+export(nextRNGStream, nextRNGSubStream, clusterSetRNGStream)
+
+if(tools:::.OStype() == "unix") {
+    export(mccollect, mcparallel, mc.reset.stream, mcaffinity)
+}
+
+export(clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
+       clusterExport, clusterMap, clusterSplit, detectCores,
+       makeCluster, makeForkCluster, makePSOCKcluster, mcMap,
+       mclapply, mcmapply, parApply, parCapply, parLapply,
+       parLapplyLB, parRapply, parSapply, parSapplyLB, pvec,
+       setDefaultCluster, splitIndices, stopCluster)
+
+S3method(print, SOCKcluster)
+S3method(print, SOCKnode)
+S3method(print, SOCK0node)
+S3method("[", cluster)
+S3method(closeNode, SOCKnode)
+S3method(closeNode, SOCK0node)
+S3method(closeNode, default)
+S3method(recvData, SOCKnode)
+S3method(recvData, SOCK0node)
+S3method(recvOneData, SOCKcluster)
+S3method(sendData, SOCKnode)
+S3method(sendData, SOCK0node)
+S3method(stopCluster, default)
+
+## To support snow clusters
+S3method(closeNode, NWSnode)
+S3method(recvData, MPInode)
+S3method(recvData, NWSnode)
+S3method(recvOneData, MPIcluster)
+S3method(recvOneData, NWScluster)
+S3method(sendData, MPInode)
+S3method(sendData, NWSnode)
+S3method(stopCluster, MPIcluster)
+S3method(stopCluster, NWScluster)
+S3method(stopCluster, spawnedMPIcluster)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/DESCRIPTION	(revision 2476)
@@ -0,0 +1,25 @@
+Package: spatial
+Priority: recommended
+Version: 7.3-11
+Date: 2015-08-29
+Depends: R (>= 3.0.0), graphics, stats, utils
+Suggests: MASS
+Authors@R: c(person("Brian", "Ripley", role = c("aut", "cre", "cph"),
+                    email = "ripley@stats.ox.ac.uk"),
+	     person("Roger", "Bivand", role = "ctb"),
+             person("William", "Venables", role = "cph"))
+Description: Functions for kriging and point pattern analysis.
+Title: Functions for Kriging and Point Pattern Analysis
+LazyLoad: yes
+ByteCompile: yes
+License: GPL-2 | GPL-3
+URL: http://www.stats.ox.ac.uk/pub/MASS4/
+NeedsCompilation: yes
+Packaged: 2015-08-28 15:25:37 UTC; ripley
+Author: Brian Ripley [aut, cre, cph],
+  Roger Bivand [ctb],
+  William Venables [cph]
+Maintainer: Brian Ripley <ripley@stats.ox.ac.uk>
+Repository: CRAN
+Date/Publication: 2015-08-30 08:59:02
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:33:56 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/html/00Index.html	(revision 2476)
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Functions for Kriging and Point Pattern Analysis</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Functions for Kriging and Point Pattern Analysis
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;spatial&rsquo; version 7.3-11</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="anova.trls.html">anova.trls</a></td>
+<td>Anova tables for fitted trend surface objects</td></tr>
+<tr><td style="width: 25%;"><a href="anova.trls.html">anovalist.trls</a></td>
+<td>Anova tables for fitted trend surface objects</td></tr>
+<tr><td style="width: 25%;"><a href="correlogram.html">correlogram</a></td>
+<td>Compute Spatial Correlograms</td></tr>
+<tr><td style="width: 25%;"><a href="expcov.html">expcov</a></td>
+<td>Spatial Covariance Functions</td></tr>
+<tr><td style="width: 25%;"><a href="expcov.html">gaucov</a></td>
+<td>Spatial Covariance Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Kaver.html">Kaver</a></td>
+<td>Average K-functions from Simulations</td></tr>
+<tr><td style="width: 25%;"><a href="Kenvl.html">Kenvl</a></td>
+<td>Compute Envelope and Average of Simulations of K-fns</td></tr>
+<tr><td style="width: 25%;"><a href="Kfn.html">Kfn</a></td>
+<td>Compute K-fn of a Point Pattern</td></tr>
+<tr><td style="width: 25%;"><a href="trls.influence.html">plot.trls</a></td>
+<td>Regression diagnostics for trend surfaces</td></tr>
+<tr><td style="width: 25%;"><a href="ppgetregion.html">ppgetregion</a></td>
+<td>Get Domain for Spatial Point Pattern Analyses</td></tr>
+<tr><td style="width: 25%;"><a href="ppinit.html">ppinit</a></td>
+<td>Read a Point Process Object from a File</td></tr>
+<tr><td style="width: 25%;"><a href="pplik.html">pplik</a></td>
+<td>Pseudo-likelihood Estimation of a Strauss Spatial Point Process</td></tr>
+<tr><td style="width: 25%;"><a href="ppregion.html">ppregion</a></td>
+<td>Set Domain for Spatial Point Pattern Analyses</td></tr>
+<tr><td style="width: 25%;"><a href="predict.trls.html">predict.trls</a></td>
+<td>Predict method for trend surface fits</td></tr>
+<tr><td style="width: 25%;"><a href="prmat.html">prmat</a></td>
+<td>Evaluate Kriging Surface over a Grid</td></tr>
+<tr><td style="width: 25%;"><a href="Psim.html">Psim</a></td>
+<td>Simulate Binomial Spatial Point Process</td></tr>
+<tr><td style="width: 25%;"><a href="semat.html">semat</a></td>
+<td>Evaluate Kriging Standard Error of Prediction over a Grid</td></tr>
+<tr><td style="width: 25%;"><a href="expcov.html">sphercov</a></td>
+<td>Spatial Covariance Functions</td></tr>
+<tr><td style="width: 25%;"><a href="SSI.html">SSI</a></td>
+<td>Simulates Sequential Spatial Inhibition Point Process</td></tr>
+<tr><td style="width: 25%;"><a href="Strauss.html">Strauss</a></td>
+<td>Simulates Strauss Spatial Point Process</td></tr>
+<tr><td style="width: 25%;"><a href="surf.gls.html">surf.gls</a></td>
+<td>Fits a Trend Surface by Generalized Least-squares</td></tr>
+<tr><td style="width: 25%;"><a href="surf.ls.html">surf.ls</a></td>
+<td>Fits a Trend Surface by Least-squares</td></tr>
+<tr><td style="width: 25%;"><a href="trls.influence.html">trls.influence</a></td>
+<td>Regression diagnostics for trend surfaces</td></tr>
+<tr><td style="width: 25%;"><a href="trmat.html">trmat</a></td>
+<td>Evaluate Trend Surface over a Grid</td></tr>
+<tr><td style="width: 25%;"><a href="variogram.html">variogram</a></td>
+<td>Compute Spatial Variogram</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/INDEX	(revision 2476)
@@ -0,0 +1,26 @@
+Kaver                   Average K-functions from Simulations
+Kenvl                   Compute Envelope and Average of Simulations of
+                        K-fns
+Kfn                     Compute K-fn of a Point Pattern
+Psim                    Simulate Binomial Spatial Point Process
+SSI                     Simulates Sequential Spatial Inhibition Point
+                        Process
+Strauss                 Simulates Strauss Spatial Point Process
+anova.trls              Anova tables for fitted trend surface objects
+correlogram             Compute Spatial Correlograms
+expcov                  Spatial Covariance Functions
+ppgetregion             Get Domain for Spatial Point Pattern Analyses
+ppinit                  Read a Point Process Object from a File
+pplik                   Pseudo-likelihood Estimation of a Strauss
+                        Spatial Point Process
+ppregion                Set Domain for Spatial Point Pattern Analyses
+predict.trls            Predict method for trend surface fits
+prmat                   Evaluate Kriging Surface over a Grid
+semat                   Evaluate Kriging Standard Error of Prediction
+                        over a Grid
+surf.gls                Fits a Trend Surface by Generalized
+                        Least-squares
+surf.ls                 Fits a Trend Surface by Least-squares
+trls.influence          Regression diagnostics for trend surfaces
+trmat                   Evaluate Trend Surface over a Grid
+variogram               Compute Spatial Variogram
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/help/spatial.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/help/spatial.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/help/AnIndex	(revision 2476)
@@ -0,0 +1,25 @@
+anova.trls	anova.trls
+anovalist.trls	anova.trls
+correlogram	correlogram
+expcov	expcov
+gaucov	expcov
+Kaver	Kaver
+Kenvl	Kenvl
+Kfn	Kfn
+plot.trls	trls.influence
+ppgetregion	ppgetregion
+ppinit	ppinit
+pplik	pplik
+ppregion	ppregion
+predict.trls	predict.trls
+prmat	prmat
+Psim	Psim
+semat	semat
+sphercov	expcov
+SSI	SSI
+Strauss	Strauss
+surf.gls	surf.gls
+surf.ls	surf.ls
+trls.influence	trls.influence
+trmat	trmat
+variogram	variogram
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/help/spatial.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/help/spatial.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/eagles.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/eagles.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/eagles.dat	(revision 2476)
@@ -0,0 +1,18 @@
+14
+EAGLES
+0 80 0 80 1
+4 39
+25 55
+43 72
+63 74
+74 60
+45 56
+32 41
+21 38
+35 21
+55 42
+53 18
+63 9
+55 1
+47 32
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/pereg.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/pereg.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/pereg.dat	(revision 2476)
@@ -0,0 +1,23 @@
+20
+PEREGRINES
+0 80 20 100 80
+11 25
+18 55
+14 66
+14 82
+33 39
+33 45
+38 64
+32 68
+59 21
+56 53
+48 55
+50 76
+56 81
+42 90
+59 92
+78 25
+63 37
+63 66
+74 70
+70 85
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/agter.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/agter.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/agter.dat	(revision 2476)
@@ -0,0 +1,43 @@
+40
+Agterberg
+0 7 0 7 0.1
+5.96 3.28
+5.38 2.46
+2.34 1.46
+3.94 4.54
+3.58 3.39
+2.79 6.69
+6.94 3.00
+5.49 4.69
+0.36 2.16
+1.31 1.93
+2.12 4.35
+1.86 3.26
+2.83 0.96
+4.37 3.64
+3.75 4.29
+3.51 4.41
+3.66 4.35
+4.14 1.29
+4.29 1.09
+4.26 0.92
+4.11 1.01
+3.75 3.21
+4.09 0.71
+3.58 0.77
+3.49 0.90
+5.94 3.41
+3.56 2.74
+5.12 3.47
+3.04 2.57
+5.14 2.79
+1.52 2.96
+5.27 2.83
+3.64 4.44
+2.81 2.68
+2.91 6.21
+2.23 4.29
+5.55 3.58
+0.13 2.40
+5.59 4.22
+4.78 5.14
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/cells.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/cells.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/cells.dat	(revision 2476)
@@ -0,0 +1,45 @@
+42
+CELLS
+0 1 0 1 1
+.35  .025
+.487 .087
+.637 .05
+.775 .025
+.825 .125
+.087 .187
+.237 .15
+.4 .162
+.575 .212
+.737 .237
+.062 .362
+.212 .337
+.325 .287
+.45 .287
+.65 .362
+.9 .262
+.337 .462
+.462 .425
+.6 .475
+.8 .387
+.938 .4
+.15 .5
+.35 .6
+.562 .575
+.725 .512
+.862 .525
+.987 .512
+.062 .75
+.175 .65
+.337 .750
+.462 .75
+.525 .65
+.737 .687
+.862 .637
+.237 .787
+.637 .812
+.775 .85
+.9 .775
+.175 .912
+.35 .962
+.462 .9
+.625 .95
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/redwood.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/redwood.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/redwood.dat	(revision 2476)
@@ -0,0 +1,65 @@
+62
+REDWOODS
+0 1 -1 0 1
+0.36 -0.08
+0.44 -0.1
+0.48 -0.08
+0.48 -0.14
+0.5 -0.1
+0.76 -0.14
+0.78 -0.12
+0.78 -0.16
+0.84 -0.08
+0.86 -0.18
+0.9 -0.08
+0.9 -0.1
+0.9 -0.16
+0.9 -0.2
+0.18 -0.4
+0.18 -0.38
+0.2 -0.42
+0.6 -0.34
+0.62 -0.34
+0.64 -0.36
+0.64 -0.28
+0.68 -0.32
+0.68 -0.24
+0.7 -0.28
+0.72 -0.26
+0.1 -0.58
+0.12 -0.58
+0.12 -0.62
+0.14 -0.58
+0.18 -0.56
+0.18 -0.54
+0.2 -0.52
+0.2 -0.5
+0.22 -0.46
+0.24 -0.48
+0.52 -0.58
+0.5 -0.6
+0.58 -0.58
+0.94 -0.52
+0.96 -0.54
+0.22 -0.8
+0.22 -0.84
+0.26 -0.7
+0.44 -0.76
+0.48 -0.78
+0.5 -0.76
+0.9 -0.76
+0.9 -0.78
+0.48 -0.68
+0.52 -0.66
+0.56 -0.64
+0.999 -0.84
+0.44 -0.82
+0.48 -0.82
+0.34 -0.84
+0.38 -0.84
+0.26 -0.86
+0.4 -0.86
+0.28 -0.86
+0.74 -0.9
+0.86 -0.9
+0.96 -0.96
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/tokyo.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/tokyo.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/tokyo.dat	(revision 2476)
@@ -0,0 +1,235 @@
+232
+Toshima
+65 1890 978 2105 270
+    65  1355
+    68  1808
+    69  1136
+    74  1151
+    79  1701
+    89  1384
+    89  1175
+    99  1580
+   124  1865
+   134  1842
+   151  1353
+   159  1680
+   169  2076
+   171  1628
+   178  2020
+   179  1461
+   206  1580
+   213   992
+   218  1785
+   218  1251
+   266  1641
+   298  1686
+   299  2099
+   300  1074
+   305  1303
+   306  1517
+   309  1040
+   316  1477
+   322  1500
+   342  1513
+   343  1584
+   351  1004
+   355  1235
+   357  1500
+   363  1516
+   369  1559
+   372  1573
+   378  1550
+   391  2066
+   392  1647
+   415  2077
+   422  1074
+   427  1807
+   439  1359
+   440  1096
+   443  1520
+   454  1347
+   468  1345
+   474  1330
+   488  1313
+   492  1786
+   496  1061
+   500  1971
+   507  1750
+   517  1469
+   524  1251
+   526  1530
+   555  2024
+   556  1622
+   556  1452
+   556  1952
+   587  1484
+   596  1875
+   599  1447
+   607  1304
+   608  2043
+   614  1258
+   618  1664
+   622  1114
+   624  1430
+   629  2054
+   632  1402
+   655  1439
+   661  1412
+   668  1076
+   672  1647
+   677  1130
+   677  1439
+   682   981
+   683  1729
+   684  2070
+   694  1695
+   704  1950
+   708  2024
+   714  1950
+   720  2097
+   722  1273
+   722  1535
+   724  1953
+   732  1746
+   734  1667
+   741  1732
+   752  1304
+   755  1134
+   757  1835
+   764  1006
+   769  1663
+   775  1019
+   778  2096
+   806  1439
+   813  1079
+   816  1824
+   851  1754
+   860  1748
+   865  1739
+   870  1500
+   883  1736
+   885  1758
+   896  1664
+   903  1079
+   910  1928
+   918  1006
+   925   994
+   943  1888
+   946  1458
+   948  1701
+   950  1380
+   964  1684
+   966  1474
+   974  1624
+   984  1971
+   988  1955
+  1016  1067
+  1024  1277
+  1027  1831
+  1030  1322
+  1045  1880
+  1046  1848
+  1050  1311
+  1059  1541
+  1070  1683
+  1082  1950
+  1087  1933
+  1092  1391
+  1108  1182
+  1109  1097
+  1118  1378
+  1121  1301
+  1132  1834
+  1141  1909
+  1151  1865
+  1156  1363
+  1166  1762
+  1175  1754
+  1179  1627
+  1180  1211
+  1196  2052
+  1203  1196
+  1207  1661
+  1208  1844
+  1215  1055
+  1216  1595
+  1218  1703
+  1219   989
+  1220  1695
+  1230  1256
+  1246  1909
+  1268  1781
+  1271  1408
+  1271  1199
+  1275  1929
+  1279  1939
+  1288  1963
+  1295  1946
+  1300  2040
+  1303  1954
+  1311  1969
+  1311  1325
+  1328  1425
+  1340  1939
+  1344  1099
+  1345  1425
+  1349  1087
+  1363  1431
+  1366  2034
+  1372  1670
+  1379  1645
+  1384  1624
+  1406  2042
+  1406  2029
+  1408  1863
+  1419  1551
+  1425  1943
+  1431  1554
+  1438  1848
+  1438  1145
+  1462  1069
+  1478  1306
+  1478  1680
+  1481  1381
+  1521  1907
+  1524  1260
+  1542  1935
+  1553  1833
+  1566  1440
+  1568  1505
+  1573  1721
+  1579  1468
+  1579  1053
+  1587  1281
+  1634  1539
+  1640  1968
+  1642  1356
+  1648  2052
+  1662  1972
+  1670  1553
+  1677  1496
+  1687  1125
+  1692  1920
+  1702  1650
+  1709  1903
+  1721  1586
+  1722  1263
+  1722  1888
+  1723  1878
+  1735  1444
+  1736  1246
+  1741  1524
+  1743  1989
+  1753  1388
+  1777  1371
+  1778  1201
+  1781  1018
+  1788  1005
+  1810  1484
+  1818  1829
+  1819  1962
+  1835  1328
+  1853  1843
+  1872  1814
+  1884  1694
+  1886  1820
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/davis.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/davis.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/davis.dat	(revision 2476)
@@ -0,0 +1,50 @@
+47
+CRYSTALS
+0 80 0 100 1
+2  41
+4   3
+4  15
+9  13
+7  35
+8  44
+10 58
+14  2
+22  2
+21 56
+22 53
+24 31
+27 12
+27 34
+28 76
+37 14
+37 61
+11 25
+15 15
+38 25
+38 7
+41 51
+46  2
+47 12
+50 13
+51 25
+56 12
+58 40
+59 28
+60 61
+62 70
+66  1
+66 15
+65 75
+69 38
+71 27
+76  1
+77  4
+ 1 86
+ 8 95
+12 88
+35 93
+45 82
+50 83
+49 96
+69 83
+27 85
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/grocery.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/grocery.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/grocery.dat	(revision 2476)
@@ -0,0 +1,83 @@
+79
+GROCERY
+0 54 54 0 54
+7 4
+5 4
+1 6
+13 6
+25 8
+4 9
+20 9
+25 9
+32 9
+44.5 10.5
+44 10
+5 12
+10 13
+21 13
+5 15
+23 16
+43 17
+12 17
+22 18
+52.5 17.5
+52 18
+9 19
+6 20
+28 24
+24 27
+19 28
+40 28
+24 29
+29 29
+18 30
+38 30
+41 30
+19 31
+20 31
+43 31
+17 32
+21 33
+16 33
+20 33
+27 33
+18 34
+36 34
+18.5 35.5
+19 35
+25 35
+33 35
+18 36
+22 36
+26 36
+37 36
+21 37
+19 37
+25 37
+23 38
+23 29
+10 39
+19 39
+21 39
+26 39
+31 39
+9 40
+19 40
+21 40
+36 40
+21 41
+19 42
+46 42
+12 43
+6 44
+8 44
+5 45
+13 46
+15 46
+19 47
+21 47
+38 47
+24 48
+24 52
+29 53
+-EOR-
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/drumlin.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/drumlin.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/drumlin.dat	(revision 2476)
@@ -0,0 +1,235 @@
+232
+Drumlin
+44 1353 910 2220 164
+0438 2169
+0351 2140
+0095 2122
+0057 2084
+0355 2065
+0402 2079
+0423 1990
+0248 2024
+0182 2012
+0440 1886
+0057 1904
+0439 1807
+0436 1750
+0444 1654
+0313 1663
+0444 1583
+0383 1570
+0112 1541
+0174 1545
+0440 1515
+0376 1500
+0064 1452
+0180 1435
+0421 1434
+0106 1409
+0393 1379
+0344 1360
+0298 1350
+0247 1368
+0078 1343
+0446 1341
+0182 1303
+0343 1303
+0126 1271
+0285 1258
+0366 1258
+0350 1208
+0094 1176
+0205 1175
+0257 1175
+0396 1176
+0450 1173
+0319 1152
+0362 1140
+0070 1137
+0418 1125
+0046 1110
+0107 1110
+0190 1103
+0242 1108
+0308 1054
+0434 1043
+0097 1043
+0053 1012
+0146 0997
+0206 1010
+0271 1010
+0442 1010
+0369 0978
+0399 0961
+0429 0974
+0123 0934
+0207 0919
+0270 0915
+0353 0936
+0378 0924
+0631 2212
+0702 2180
+0566 2143
+0720 2154
+0762 2151
+0745 2123
+0835 2125
+0569 2090
+0630 2103
+0675 2113
+0701 2106
+0697 2072
+0580 2012
+0679 2030
+0716 1992
+0682 1947
+0580 1889
+0536 1852
+0795 1860
+0886 1856
+0697 1829
+0537 1806
+0848 1800
+0826 1784
+0530 1734
+0721 1730
+0827 1717
+0505 1672
+0567 1694
+0671 1663
+0702 1677
+0794 1667
+0900 1637
+0695 1621
+0536 1628
+0487 1601
+0588 1606
+0904 1594
+0555 1569
+0687 1571
+0756 1571
+0883 1559
+0517 1542
+0626 1505
+0697 1514
+0881 1503
+0594 1484
+0684 1480
+0473 1466
+0825 1460
+0554 1444
+0511 1426
+0689 1430
+0848 1421
+0709 1393
+0571 1371
+0827 1366
+0555 1348
+0917 1343
+0695 1336
+0497 1328
+0664 1302
+0505 1282
+0754 1288
+0839 1268
+0524 1242
+0695 1237
+0779 1237
+0518 1170
+0629 1164
+0650 1178
+0905 1172
+0517 1117
+0825 1118
+0624 1097
+0682 1092
+0490 1065
+0752 1046
+0899 1031
+0617 0998
+0787 0997
+0503 0965
+0745 0972
+0858 0973
+0584 0933
+0700 0913
+0795 0913
+0934 0918
+0901 2206
+1025 2157
+1095 2142
+0951 2124
+0926 2085
+1005 2091
+1080 2093
+1219 2088
+1257 2054
+0937 2031
+0990 2033
+1020 2022
+0952 1960
+1000 1958
+1336 1969
+0927 1909
+1034 1919
+1345 1911
+1082 1887
+1258 1885
+0955 1823
+0991 1814
+1018 1826
+1076 1829
+1177 1815
+1186 1840
+1288 1820
+0926 1795
+1221 1795
+0925 1765
+1090 1768
+1193 1761
+1019 1710
+1166 1721
+1350 1708
+0924 1695
+1040 1697
+1271 1686
+0978 1684
+1331 1664
+0984 1620
+1334 1591
+0946 1561
+1240 1562
+1342 1551
+1185 1530
+1291 1524
+1345 1509
+0938 1486
+1344 1449
+1128 1421
+1292 1424
+1283 1358
+1090 1330
+1077 1288
+1218 1268
+1285 1240
+1036 1210
+1082 1149
+1093 1170
+1253 1177
+1316 1162
+0954 1103
+1004 1128
+1158 1109
+1217 1108
+1282 1122
+1044 1090
+1084 1070
+1026 1030
+1117 0996
+1153 1042
+0955 0956
+1004 0986
+1093 0968
+1210 0962
+1062 0924
+1194 0917
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/schools.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/schools.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/schools.dat	(revision 2476)
@@ -0,0 +1,43 @@
+40
+schools
+300 1225 560 1830 100
+   421   836
+   462  1462
+   463  1292
+   473  1344
+   488   763
+   497  1281
+   507  1040
+   538   670
+   569  1298
+   571   875
+   575  1242
+   588   985
+   593  1397
+   597   759
+   654   755
+   666   678
+   668  1323
+   709   914
+   726   783
+   732  1623
+   736  1205
+   752  1113
+   755  1669
+   760  1465
+   765  1352
+   783  1096
+   806  1533
+   815   975
+   853  1202
+   862  1299
+   884  1654
+   910  1237
+   917  1526
+   973  1717
+   978  1425
+  1007  1143
+  1011  1545
+  1045  1660
+  1056  1388
+  1106  1533
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/towns.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/towns.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/towns.dat	(revision 2476)
@@ -0,0 +1,72 @@
+69
+TOWNS
+0 40 0 40 1
+  .84 39.16
+  .84 33.20
+ 4.24 34.04
+ 2.56 32.36
+ 9.36 37.44
+12.76 37.44
+13.60 39.16
+17.04 36.60
+17.04 34.88
+18.72 38.28
+17.88 34.88
+20.44 35.76
+21.28 33.20
+18.72 31.48
+25.52 35.76
+28.08 33.20
+28.92 32.36
+29.80 36.60
+31.48 37.44
+35.76 35.76
+39.16 33.20
+39.16 39.16
+ 4.24 29.80
+ 8.52 24.68
+10.20 26.40
+15.32 30.64
+23.84 30.64
+18.72 23.84
+22.12 25.52
+26.40 23.84
+27.24 28.92
+20.44 29.80
+30.64 25.52
+34.88 24.68
+35.76 28.08
+38.28 28.08
+ 1.72 15.32
+ 2.56 20.44
+ 9.36 21.28
+15.32 15.32
+16.16 18.72
+23.84 19.56
+26.40 17.88
+27.24 22.12
+34.04 14.48
+33.20 20.44
+36.60 18.72
+ 1.72  7.64
+ 5.96 13.60
+ 5.96 11.08
+ 9.36 13.60
+ 9.36  7.64
+15.32 11.92
+17.04  5.96
+17.88  8.52
+22.96  7.64
+24.68 13.60
+28.08 11.92
+29.80  7.64
+35.76 12.76
+36.60 10.20
+ 4.24  4.24
+ 5.96  5.12
+ 8.52  4.24
+10.20  4.24
+18.72     0
+22.96  3.40
+29.80  2.56
+31.48   .84
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/hccells.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/hccells.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/hccells.dat	(revision 2476)
@@ -0,0 +1,45 @@
+42
+HC CELLS
+0 1 0 1 1
+.063 .619
+.328 .238
+.8 .177
+.923 .734
+.541 .736
+.767 .303
+.674 .732
+.063 .247
+.842 .431
+.627 .585
+.111 .958
+.253 .882
+.280 .586
+.681 .894
+.393 .702
+.175 .762
+.337 .462
+.861 .989
+.520 .334
+.057 .516
+.611 .135
+.543 .523
+.41 .86
+.407 .553
+.925 .848
+.365 .027
+.156 .318
+.062 .75
+.544 .012
+.46 .119
+.796 .619
+.288 .368
+.385 .321
+.762 .064
+.215 .034
+.63 .351
+.121 .160
+.974 .97
+.001 .131
+.898 .347
+.585 .831
+.716 .470
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/pines.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/pines.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/pines.dat	(revision 2476)
@@ -0,0 +1,75 @@
+71
+PINES
+0 96 0 100 10
+1 99
+1 72
+2 62
+2 84
+7 45
+9 75
+11 85
+13 63
+14 16
+16 54
+17 26
+17 41
+20 2
+21 80
+23 87
+24 11
+25 70
+26 57
+27 54
+28 42
+28 26
+33 52
+33 63
+36 59
+37 80
+39 34
+39 47
+39 91
+41 17
+45 23
+48 53
+49 63
+52 43
+52 75
+53 98
+53 13
+56 78
+58 18
+59 68
+60 55
+61 43
+61 32
+61 25
+63 41
+65 81
+66 89
+66 16
+69 4
+72 52
+72 60
+73 42
+74 36
+74 54
+75 93
+76 17
+79 85
+81 45
+82 67
+83 10
+84 32
+85 20
+86 9
+87 87
+92 60
+92 81
+93 8
+94 10
+94 26
+95 23
+95 46
+95 62
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/stowns1.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/stowns1.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/stowns1.dat	(revision 2476)
@@ -0,0 +1,73 @@
+80
+towns
+380 1055 1307 1951 16.3
+1032 1931
+0764 1929
+0709 1916
+0620 1938
+0601 1919
+0555 1919
+0540 1951
+0418 1939
+0514 1903
+0662 1904
+0893 1902
+0925 1910
+0983 1875
+0813 1880
+0733 1882
+0657 1868
+0409 1844
+0456 1855
+0740 1845
+0867 1842
+0874 1837
+0779 1805
+0688 1818
+0634 1802
+1048 1842
+0454 1773
+0841 1751
+0874 1766
+0983 1762
+1032 1764
+0533 1706
+0567 1726
+0705 1680
+0765 1710
+0826 1684
+0906 1710
+0967 1702
+0842 1656
+0943 1629
+0544 1630
+0444 1622
+0651 1601
+0773 1612
+0833 1590
+0999 1594
+0950 1542
+0643 1539
+0423 1542
+0493 1518
+0555 1511
+0801 1515
+0978 1516
+0485 1476
+0631 1482
+0861 1476
+0998 1478
+0428 1412
+0549 1422
+0676 1446
+0758 1423
+0896 1422
+0657 1398
+0442 1365
+0482 1375
+0527 1370
+0581 1371
+0750 1364
+0871 1347
+0906 1323
+0697 1311
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/caveolae.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/caveolae.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/caveolae.dat	(revision 2476)
@@ -0,0 +1,437 @@
+434
+CAVEOLAE
+0 1000 0 1000 1
+ 98 994
+ 76 925
+108 935
+155 985
+190 989
+204 948
+188 937
+133 922
+226 968
+228 947
+280 947
+251 916
+309 974
+422 951
+417 989
+530 993
+532 976
+573 999
+522 920
+603 935
+611 987
+634 982
+655 982
+675 995
+659 996
+721 993
+780 963
+840 973
+888 826
+854 828
+826 890
+705 811
+685 836
+660 866
+632 880
+609 877
+579 843
+546 826
+532 805
+503 822
+430 818
+432 899
+381 817
+321 818
+310 889
+290 868
+267 842
+270 814
+246 822
+223 878
+216 891
+189 893
+180 868
+151 815
+133 815
+132 901
+ 71 888
+ 18 861
+ 31 760
+ 24 758
+ 30 724
+ 68 727
+ 97 745
+ 82 754
+ 87 776
+119 791
+169 794
+178 747
+133 737
+148 726
+225 753
+240 768
+245 799
+303 788
+294 765
+284 755
+267 741
+351 772
+344 760
+344 726
+393 735
+409 742
+471 776
+483 797
+490 774
+486 741
+578 743
+589 704
+605 784
+630 766
+655 755
+670 757
+703 714
+723 712
+755 716
+758 769
+817 782
+828 746
+838 714
+880 763
+909 731
+917 773
+942 789
+941 686
+928 666
+938 609
+831 668
+780 622
+763 635
+765 680
+780 689
+689 665
+638 622
+685 689
+619 686
+560 693
+526 699
+519 680
+520 660
+517 634
+571 630
+563 642
+463 635
+467 652
+482 662
+434 691
+420 678
+417 707
+352 664
+363 673
+305 655
+312 643
+292 627
+295 693
+275 697
+211 701
+197 695
+167 668
+129 688
+110 690
+109 671
+178 609
+ 59 623
+ 11 586
+ 32 595
+ 38 568
+ 84 529
+ 78 566
+ 98 539
+113 549
+107 576
+128 592
+119 600
+167 541
+188 588
+146 561
+216 584
+213 534
+244 518
+271 541
+284 543
+274 590
+268 601
+336 565
+330 575
+301 531
+308 516
+400 566
+413 584
+409 591
+440 576
+463 580
+475 561
+425 535
+530 595
+515 578
+534 564
+573 547
+594 557
+580 503
+621 526
+622 576
+662 555
+681 564
+696 570
+696 556
+681 551
+686 516
+663 522
+666 508
+700 507
+794 567
+808 551
+831 560
+844 574
+848 551
+867 565
+913 535
+969 518
+986 494
+989 476
+951 490
+929 499
+927 481
+953 452
+908 414
+876 424
+890 485
+863 489
+861 464
+843 443
+821 423
+790 441
+764 417
+724 420
+729 488
+692 473
+679 456
+667 457
+699 449
+610 413
+581 427
+569 415
+548 416
+595 446
+566 461
+532 466
+510 460
+498 475
+474 498
+473 449
+450 459
+420 447
+401 430
+384 433
+369 426
+359 435
+334 483
+272 424
+294 445
+274 493
+261 503
+257 463
+225 488
+180 501
+165 498
+174 477
+155 480
+137 445
+111 443
+133 486
+ 60 462
+ 42 470
+ 38 416
+ 98 414
+ 89 488
+ 60 501
+ 86 395
+ 77 366
+ 67 334
+ 47 325
+100 341
+103 360
+116 372
+124 347
+144 367
+180 390
+188 393
+173 367
+196 349
+148 334
+209 315
+228 316
+240 366
+286 332
+269 313
+305 387
+319 366
+328 389
+335 401
+367 399
+350 376
+359 366
+326 343
+338 320
+367 320
+386 341
+407 406
+450 401
+433 350
+538 320
+588 347
+593 382
+509 374
+607 353
+638 364
+693 382
+701 363
+714 372
+820 377
+815 317
+876 372
+893 391
+919 378
+930 397
+961 331
+951 347
+948 364
+998 399
+994 315
+973 220
+926 228
+854 270
+811 257
+840 241
+625 281
+609 289
+621 252
+628 242
+706 297
+485 266
+442 295
+418 271
+431 245
+460 214
+371 230
+358 278
+358 299
+336 259
+292 281
+273 292
+244 293
+258 284
+233 299
+212 297
+225 273
+213 259
+266 228
+185 286
+136 222
+171 216
+ 85 209
+ 57 218
+ 29 284
+ 22 266
+  9 237
+ 16 108
+ 16 126
+ 25 146
+ 58 181
+ 38 173
+ 76 158
+ 85 143
+ 96 128
+ 60 107
+107 122
+111 191
+146 188
+138 122
+185 141
+198 180
+227 146
+240 154
+280 170
+282 108
+365 161
+394 116
+307 136
+320 126
+399 199
+417 200
+497 177
+516 199
+577 113
+580 143
+541 148
+513 122
+593 102
+671 153
+690 159
+744 154
+831 112
+859 150
+901 141
+916 125
+948 145
+961 189
+986 134
+998 162
+977  94
+997  41
+935  10
+930  71
+903  55
+884  79
+856   5
+841  47
+841  66
+817  81
+876  39
+758  67
+744  95
+652  57
+627   3
+598   8
+582  39
+552  80
+490  18
+414  83
+443 104
+380  12
+323  30
+332  42
+328  66
+311  80
+318  92
+303  81
+279  70
+270  22
+242  11
+225  45
+182  17
+166  66
+196  80
+154  35
+111  36
+125  60
+112  93
+ 81  53
+ 79  26
+ 48  43
+ 34  20
+ 18  34
+ 54  76
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/pairfn.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/pairfn.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/pairfn.dat	(revision 2476)
@@ -0,0 +1,45 @@
+42
+PAIRFN
+0 1 0 1 1
+.997 .962
+.968 .448
+.583 .741
+.091 .152
+.807 .396
+.971 .103
+.532 .041
+.208 .009
+.824 .813
+.587 .266
+.115 .509
+.221 .622
+.937 .32
+.664 .086
+.651 .608
+.989 .814
+.656 .342
+.238 .403
+.426 .309
+.827 .989
+.586 .878
+.709 .511
+.349 .068
+.181 .754
+.929 .65
+.448 .836
+.354 .668
+.289 .272
+.709 .932
+.809 .108
+.154 .884
+.777 .681
+.894 .220
+.231 .148
+.066 .635
+.339 .914
+.852 .535
+.537 .449
+.354 .494
+.448 .155
+.073 .372
+.471 .630
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig1b.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig1b.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig1b.dat	(revision 2476)
@@ -0,0 +1,317 @@
+314
+fig1b
+0 256 0 256 256
+    31  211
+    28  223
+    34  229
+    40  228
+    45  221
+    39  218
+    27  215
+    19  209
+    20  203
+    24  198
+    28  197
+    38  201
+    47  202
+    48  203
+    57  209
+    59  217
+    59  218
+    53  227
+    48  237
+    38  238
+    24  233
+    16  222
+    16  215
+    30  209
+    35  204
+    48  212
+    54  217
+    45  188
+    35  186
+    29  190
+    22  152
+    31  144
+    30  138
+    22  131
+    17  120
+    16  114
+    25   84
+    39   79
+   107   84
+   127   96
+   171  126
+   177  139
+   182  183
+   177  203
+   139  229
+    84  209
+   125  183
+   129  200
+   120  224
+   165  205
+   176  198
+   202  172
+   207  182
+   215  209
+   213  231
+   186  238
+   226  201
+   227  163
+   214  142
+   211  137
+   209  126
+   209  122
+   219  107
+   226  106
+   229   93
+   220   72
+   222   60
+   229   51
+   232   49
+   226   42
+   212   26
+   202   25
+   187   27
+   175   44
+   195   58
+   209   75
+   210   96
+   184  120
+   173  122
+   145   89
+   133   81
+   113   58
+    86   56
+    82   81
+    83  130
+    56  110
+   100   97
+   141  118
+   141  127
+   130  137
+    96  152
+    81  171
+    87  175
+    98  177
+   116  181
+   152  153
+   159  156
+   154  172
+   137  191
+   152  199
+   162  209
+   167  221
+   158  221
+   113  215
+    96  209
+    67  193
+    59  176
+    49  158
+    45  155
+    38  144
+    38  141
+    35  119
+    36  111
+    37   96
+    46   72
+    41   63
+    27   50
+    20   47
+    17   42
+    32   37
+    47   28
+    69   28
+   103   19
+   146   12
+   156   12
+   172    6
+   173    6
+   187   10
+   206    7
+   218   10
+   230   11
+   237   16
+   239   37
+   245   72
+   248  100
+   242  125
+   242  139
+   242  144
+   243  152
+   243  159
+   243  171
+   245  176
+   240  200
+   235  229
+   233  233
+   214  233
+   197  229
+   189  228
+   180  228
+   165  249
+   149  249
+   129  246
+   113  241
+    97  238
+    85  244
+    84  236
+    75  227
+    66  219
+    58  209
+    47  198
+    35  189
+    27  185
+    30  174
+    43  170
+    34  183
+    36  193
+    41  205
+    56  214
+    76  219
+    80  231
+    63  234
+    49  225
+    47  229
+    36  238
+    21  230
+    10  198
+     7  185
+    12  172
+    11  157
+   159   50
+   136   57
+   130   46
+   150   68
+   169   64
+   170   55
+   176   64
+   184   69
+   205   66
+   182   90
+   183   55
+   211   49
+   198   37
+   173   46
+   144   33
+   168   17
+   174   19
+   166   33
+   149   19
+   168   19
+   174   12
+   191    7
+   228   13
+   186   21
+   188   38
+   197   35
+   227   28
+   232   30
+   240   39
+   236   54
+   212   70
+   241   66
+   241   70
+   232   78
+   214   86
+   173   82
+   165   65
+   193   56
+   197   42
+   221   43
+   187   24
+   204   10
+   231   21
+   232   10
+   225   47
+   222   75
+   188   75
+   181   71
+   147   99
+   115  132
+   106  139
+    79  183
+   100  203
+    84  218
+    72  237
+    77  243
+    92  232
+    58  254
+    39  244
+    23  244
+    15  220
+    14  196
+    32  162
+    43  161
+    52  168
+    73  188
+    82  209
+    84  216
+    90  227
+    90  244
+    62  224
+    65  201
+    49  186
+    42  171
+    49  183
+    54  181
+    59  184
+    64  190
+    57  199
+    67  189
+    64  208
+    70  221
+    98  226
+    85  171
+    70  147
+    92  155
+    68  163
+    66  165
+    85  173
+    92  177
+   102  175
+   101  152
+    93  145
+    76  136
+    59  131
+    53  115
+    56  112
+    61  103
+    68   97
+    76   92
+    79   88
+    96   58
+    97   80
+    95   99
+    92  112
+    85  125
+    77  143
+    81  158
+    99  154
+   101  145
+   104  131
+    99  109
+    94  106
+   101  104
+   108  114
+   113  105
+    98  117
+    80  130
+    81  141
+    87  156
+    71  142
+    73  167
+    77  172
+    85  180
+    88  188
+    86  196
+    79  195
+    62  151
+    52  137
+    57  121
+    68  109
+    75  103
+    78  104
+    80  104
+    81   92
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig2a.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig2a.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig2a.dat	(revision 2476)
@@ -0,0 +1,142 @@
+137
+fig2a
+0 256 0 256 256
+    25  209
+   132  201
+   212  147
+   155   67
+    43   57
+    79  141
+   216  215
+   216  214
+   200   67
+   166   29
+   144  115
+    86  203
+   168  163
+    45  162
+    91   74
+    80   32
+    28  200
+    31  208
+    32  215
+    25  214
+    18  208
+    20  205
+    39  162
+    44  170
+    47  167
+    49  163
+    41  159
+    44  155
+    48  157
+    78  198
+    82  200
+    82  201
+    85  206
+    85  206
+    89  204
+    89  210
+    81  207
+    77  203
+   133  197
+   137  204
+   138  204
+   132  204
+   127  201
+   126  197
+   214  208
+   212  213
+   212  219
+   218  218
+   224  216
+   220  213
+   218  211
+    76  141
+    78  146
+    78  146
+    82  145
+    81  142
+    76  137
+    81  138
+    83  141
+    43   62
+    39   59
+    39   56
+    43   55
+    43   55
+    47   57
+    48   60
+    92   72
+    92   72
+    88   73
+    89   75
+    93   77
+    94   75
+    89   70
+    95   73
+    95   73
+    74   32
+    78   32
+    79   36
+    79   36
+    77   36
+    77   36
+    82   36
+    82   32
+    82   32
+    78   30
+    78   30
+    79   28
+    79   28
+    77   27
+    77   27
+    84   28
+   167   31
+   165   32
+   160   31
+   160   27
+   163   29
+   162   26
+   168   26
+   168   26
+   153   64
+   154   68
+   152   68
+   152   68
+   152   64
+   158   61
+   157   65
+   203   65
+   203   65
+   200   69
+   202   69
+   197   71
+   196   67
+   197   65
+   200   64
+   214  143
+   214  143
+   211  143
+   209  146
+   209  146
+   210  150
+   215  148
+   215  149
+   170  160
+   163  162
+   165  167
+   172  166
+   172  164
+   172  164
+   167  168
+   167  161
+   147  112
+   149  116
+   144  117
+   142  115
+   143  113
+   143  110
+   147  115
+  
+ 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig1c.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig1c.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig1c.dat	(revision 2476)
@@ -0,0 +1,372 @@
+367
+fig1c
+0 256 0 256 256
+    11  194
+    17  201
+    27  206
+    35  210
+    39  216
+    41  223
+    42  225
+    46  230
+    53  234
+    59  236
+    63  242
+    63  247
+    57  246
+    50  243
+    39  238
+     6  122
+    23  136
+    39  150
+    56  161
+    77  173
+    91  183
+   107  195
+   124  206
+   141  217
+   151  224
+   163  232
+   171  237
+   174  239
+   179  242
+   188  246
+   197  250
+   201  251
+     9   65
+    34   81
+    62   92
+    79  106
+    98  117
+   116  128
+   137  140
+   153  153
+   174  171
+   197  182
+   207  189
+   210  191
+   219  196
+   224  199
+   231  203
+   234  205
+   243  210
+   250  215
+   254  217
+    17   10
+    36   20
+    58   35
+    72   46
+    93   60
+   111   75
+   142   94
+   171  112
+   179  116
+   203  125
+   229  138
+   240  145
+   248  149
+    94    9
+    96   10
+   136   20
+   143   21
+   164   27
+   183   43
+   209   53
+   233   58
+   246   64
+   250   67
+   254   72
+    12  200
+    16  208
+    17  214
+    21  216
+    29  220
+    29  220
+    20  213
+    17  211
+    12  209
+     8  205
+     5  201
+     5  201
+    17  207
+    27  217
+    29  219
+    45  234
+    54  243
+    57  245
+    62  251
+    59  250
+    58  249
+    48  242
+    34  232
+    33  231
+    23  226
+    17  232
+    21  241
+    38  245
+    44  227
+    31  219
+    26  217
+    23  216
+    26  213
+    12  203
+    11  201
+    13  190
+    11  185
+     7  131
+    20  144
+    35  156
+    42  161
+    58  169
+    62  171
+    88  186
+   108  197
+   122  208
+   136  217
+   156  231
+   168  237
+   181  243
+   185  245
+   191  249
+   193  252
+   198  255
+   215  247
+   212  244
+   204  241
+   189  234
+   171  227
+   156  219
+   153  217
+   139  206
+   118  193
+   101  182
+    95  178
+    81  168
+    77  165
+    66  157
+    62  153
+    49  143
+    44  138
+    32  131
+    28  128
+    17  122
+    13  120
+     8  117
+    28  134
+    45  147
+    48  150
+    51  163
+    54  154
+    54  152
+    61  160
+    76  166
+    78  166
+    93  177
+    98  188
+   103  194
+   110  198
+   121  211
+   120  214
+   130  204
+   138  200
+   154  198
+   160  208
+   175  219
+   192  225
+   224  230
+   250  233
+   248  239
+   139  201
+   121  220
+   102  226
+    76  221
+    34  184
+    54  182
+    63  225
+    95  194
+   107  241
+   128  236
+    72  209
+    44  213
+    26  178
+    14  160
+    14  157
+    14   52
+    42   89
+    48   95
+    67   93
+    82   94
+    85   97
+   101  109
+   128  118
+   150  137
+   182  157
+   210  172
+   216  177
+   234  189
+   250  201
+   247  201
+   219  177
+   173  161
+   137  147
+    88  123
+    37   90
+    25   72
+    24   66
+    55   59
+    70   91
+   104  120
+   141  128
+   137  143
+   150  152
+   195  170
+   244  202
+   254  207
+   248  213
+   230  183
+   214  160
+   192  160
+   153  167
+   121  145
+   106  135
+    86  108
+    62   85
+    33   43
+    14   39
+    14   35
+    35   23
+    58   58
+    69   46
+    89   52
+   114   69
+   143   94
+   166  102
+   199  132
+   211  111
+   217  115
+   228  140
+   243  133
+   225  107
+   196  105
+   184  105
+   155   94
+   126   74
+    98   53
+    76   39
+    49   25
+    69   20
+   104   54
+   128   68
+   159   78
+   167   82
+   203   97
+   214  104
+   236  121
+   241  134
+   223  130
+   204  111
+   151   89
+   109   76
+    96   72
+    77   70
+    53   47
+    49   42
+    35   33
+    35   12
+    55   10
+    59    3
+    97    4
+   120    7
+   126    5
+   134    7
+   131   18
+   141   13
+   149   33
+   155    9
+   161   37
+   166   42
+   171   32
+   178   29
+   180   43
+   181   30
+   187   23
+   194   51
+   192   16
+   198   33
+   217   23
+   222   28
+   214   42
+   215   43
+   226   47
+   239   49
+   242   57
+   250   53
+   247   43
+   247   40
+   242   31
+   233   28
+   225   27
+   204   27
+   199   35
+   206   46
+   234   55
+   248   68
+   236   62
+   245   68
+   240   69
+   226   64
+   201   70
+   203   83
+   248   86
+   226   76
+   175   64
+   171   66
+   151   61
+   125   37
+   108   34
+   102   36
+    39   98
+    60  126
+    95  135
+   103  155
+   123  161
+   131  172
+   131  182
+   165  190
+   188  197
+   227  209
+   128  219
+   143  232
+   145  233
+   167  233
+    21  111
+    15  103
+    10   92
+    16  144
+    43  144
+   133   82
+   150   82
+   154   84
+   138   67
+   125   59
+    97   63
+    76   53
+    98   47
+   177   74
+   186   79
+   188   81
+   191   98
+   171   96
+   178   86
+   190  115
+   196  116
+   215  126
+   237  113
+   247  124
+   251  135
+   249  141
+   211  132
+   219  136
+   191  122
+  
+ 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig2b.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig2b.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig2b.dat	(revision 2476)
@@ -0,0 +1,304 @@
+299
+fig2b
+0 256 0 256 256
+    19  196
+    31  225
+    50  214
+    54  226
+     9  226
+    20  205
+    33  181
+    52  179
+    57  198
+    32  201
+    22  182
+    26  169
+    31  168
+    45  168
+    43  199
+    69  223
+    53  244
+    51  242
+    32  238
+    17  236
+    15  235
+    18  214
+     7  198
+     9  173
+    22  155
+    52  156
+    61  157
+    74  174
+    68  193
+    69  198
+    74  213
+   127  186
+   110  182
+   106  181
+    88  170
+    85  165
+    82  156
+    81  152
+    81  136
+    88  124
+    92  121
+   111  101
+   117  100
+   147   98
+   171  118
+   178  142
+   177  150
+   169  165
+   161  173
+   130  191
+   112  181
+   134  173
+   146  179
+   144  156
+   106  150
+   108  163
+    84  141
+   106  117
+   114  135
+   129  156
+   118  133
+   118   99
+   120   97
+   129  115
+   149  112
+   168  118
+   169  135
+   170  138
+   151  166
+   155  149
+   133  145
+   135  128
+   137  127
+   153  130
+   149  134
+   116  140
+   119  142
+   126  157
+   121  169
+    99  169
+    95  149
+    99  123
+    28  114
+    28  114
+    15  104
+    45  109
+    61   99
+    65   90
+    64   88
+    44   83
+    18   82
+    14   82
+    18   92
+    27   95
+    37   89
+    47   91
+    48   92
+    48   95
+    48   95
+    34   97
+    28  103
+    57   87
+    51   84
+    45   82
+    24   82
+    20   81
+    26   80
+    36   79
+    44   77
+   137  154
+   164  180
+   187  188
+   205  179
+   224  160
+   224  156
+   231  128
+   228  104
+   226  101
+   214   90
+   197   82
+   194   83
+   180   93
+   161  112
+   153  129
+   155  135
+   167  148
+   185  112
+   193  106
+   198  105
+   211  103
+   222  112
+   224  115
+   219  128
+   205  141
+   199  149
+   199  153
+   205  162
+   199  178
+   187  179
+   186  170
+   181  161
+   186  148
+   179  139
+   180  129
+   179  128
+   177  122
+   188  122
+   200  115
+   200  123
+   200  125
+   188  136
+   191  134
+   210  110
+   209  129
+   213  147
+   220  148
+   239  147
+   201   95
+   190  102
+   189  102
+   175  102
+    72   18
+    80   34
+    83   37
+    98   41
+   113   38
+   120   30
+   122   25
+   129   13
+   131    1
+   116    4
+   108    9
+    94   14
+    86    9
+    98    2
+    72   21
+    78   13
+    76   12
+    91   23
+   108   23
+   116   15
+    95   42
+    99   30
+   104   31
+   107   31
+   108   30
+   158  237
+   149  227
+   147  213
+   154  205
+   169  200
+   179  200
+   181  201
+   186  206
+   189  209
+   199  223
+   203  239
+   204  245
+   196  250
+   194  252
+   179  254
+   176  253
+   166  250
+   162  249
+   174  244
+   187  237
+   183  245
+   189  246
+   190  245
+   194  238
+   194  234
+   191  224
+   181  212
+   174  210
+   166  208
+   157  213
+   154  227
+   160  232
+   162  234
+   173  237
+   180  227
+   180  224
+   170  220
+   166  225
+   170  226
+   189   46
+   189   46
+   175   43
+   175   43
+   168   37
+   162   32
+   161   29
+   160   22
+   164   12
+   173    8
+   175    6
+   207   15
+   208   29
+   207   32
+   196   45
+   194   34
+   181   38
+   177   34
+   177   28
+   184   16
+   186   15
+   196    9
+   195   16
+   184   22
+   185   23
+   187   26
+   186   28
+   186   31
+   190   27
+   196   22
+   187   19
+   180   24
+   179   25
+   176   23
+   183   17
+    37  197
+    38  197
+    42  204
+    39  212
+    38  212
+    31  208
+    24  194
+    30  181
+    46  184
+    39   90
+    39   91
+    35   92
+    39   96
+   177  220
+   171  223
+   180  230
+   175  226
+   120  130
+   118  138
+   126  147
+   127  137
+   132  135
+   130  139
+   114  146
+   117  155
+   214  127
+   199  132
+   195  136
+   193  139
+   182  134
+   186  127
+   192  123
+   194  129
+   190  121
+   192  116
+   198  115
+   201  128
+   186  139
+   154  145
+  
+ 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig3a.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig3a.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig3a.dat	(revision 2476)
@@ -0,0 +1,76 @@
+71
+fig3a
+0 256 0 256 256
+    47  200
+   107  224
+   174  187
+   123  158
+    85  150
+    42  124
+    31   77
+   104   29
+   178   26
+   233   75
+   219  137
+   224  204
+   155  217
+   159  130
+   168   76
+   116  104
+    73   94
+   116   62
+    56   36
+    61  238
+    40  161
+    31   71
+    32   82
+    42  117
+    41  130
+    40  156
+    40  167
+    46  196
+    48  206
+    63  234
+    58  242
+   107  220
+   107  228
+    84  154
+    86  146
+    86  146
+    72   98
+    75   89
+    54   39
+    59   33
+   223  198
+   225  210
+   218  132
+   219  143
+   234   80
+   232   70
+   178   30
+   178   20
+   178   20
+   168   72
+   167   73
+   169   80
+   160  126
+   160  126
+   157  134
+   172  182
+   173  182
+   176  192
+   156  213
+   154  220
+   123  162
+   123  153
+   121  151
+   116  107
+   116   99
+   116   99
+   115   63
+   119   59
+   119   60
+   103   32
+   104   24
+  
+ 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig3b.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig3b.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig3b.dat	(revision 2476)
@@ -0,0 +1,70 @@
+65
+fig2c
+0 256 0 256 256
+    16  218
+    43  218
+    73  216
+   101  216
+   130  216
+   161  215
+   195  214
+   224  214
+   210  237
+   178  237
+   148  237
+   118  236
+    89  237
+    63  237
+    35  238
+    27  195
+    55  193
+    90  190
+   116  189
+   149  190
+   180  192
+   209  188
+   242  191
+   241  241
+    14  163
+    39  164
+    39  164
+    70  162
+   103  161
+   133  161
+   164  158
+   195  155
+   231  155
+    31  132
+    54  130
+    87  129
+   119  126
+   148  125
+   179  126
+   214  123
+   244  123
+    16   99
+    42   95
+    71   90
+   101   91
+   132   89
+   165   89
+   196   85
+   231   88
+    24   63
+    55   59
+    86   57
+   114   55
+   150   56
+   183   49
+   213   48
+   243   46
+    34   33
+    70   30
+    98   28
+   128   26
+   160   23
+   197   20
+   225   15
+    13   16
+  
+ 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/nztrees.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/nztrees.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/nztrees.dat	(revision 2476)
@@ -0,0 +1,90 @@
+86
+N.Z. TREES
+0 153 0 95 1.1
+1 20
+1 42
+1 72
+2 67
+3 22
+5 16
+6 32
+14 3
+14 54
+17 3
+17 33
+19 35
+20 9
+26 37
+28 53
+29 29
+30 43
+32 88
+33 85
+33 15
+39 59
+41 71
+42 6
+43 3
+43 0
+46 86
+50 63
+50 65
+53 63
+52 9
+55 21
+56 10
+56 48
+61 53
+61 56
+65 85
+66 58
+70 22
+75 51
+75 81
+79 10
+83 55
+90 44
+90 46
+91 52
+91 71
+92 88
+94 12
+96 43
+104 15
+104 18
+106 47
+108 52
+109 84
+110 14
+112 38
+113 86
+116 43
+117 48
+116 71
+117 69
+118 55
+120 47
+123 49
+122 20
+124 64
+125 88
+127 28
+129 21
+129 38
+126 7
+137 92
+141 52
+143 70
+143 81
+143 89
+147 87
+148 91
+150 7
+150 14
+150 23
+150 33
+150 44
+150 62
+150 78
+150 92
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig3c.dat
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig3c.dat	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/ppdata/fig3c.dat	(revision 2476)
@@ -0,0 +1,83 @@
+80
+fig3c
+0 256 0 256 256
+    31  196
+    91  196
+   157  196
+   220  198
+    33  128
+    92  127
+   157  125
+   222  125
+    30   59
+    90   57
+   158   54
+   226   51
+    35  203
+    38  196
+    98  202
+    99  196
+   163  201
+   165  195
+   225  202
+   227  197
+    39  133
+    41  128
+    97  132
+   100  126
+   159  129
+   162  124
+   225  131
+   229  122
+   230   58
+   234   51
+   163   60
+   164   53
+    95   64
+    97   57
+    36   65
+    35   58
+    27  198
+    29  189
+    92  187
+    98  190
+    84  190
+    87  201
+   149  193
+   152  202
+   157  188
+   223  190
+   215  189
+   211  196
+   213  202
+   218  203
+   220  132
+   215  128
+   215  120
+   223  118
+   151  128
+   149  123
+   157  118
+    92  133
+    83  129
+    89  122
+    95  120
+    33  133
+    26  128
+    31  122
+    37  123
+    29   64
+    22   60
+    26   54
+    87   63
+    82   57
+    93   49
+    83   49
+   154   59
+   148   53
+   152   47
+   160   47
+   222   57
+   215   50
+   221   44
+   230   46
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/CITATION	(revision 2476)
@@ -0,0 +1,18 @@
+citHeader("To cite the spatial package in publications use:")
+
+citEntry(entry="Book",
+         title = "Modern Applied Statistics with S",
+         author = personList(as.person("W. N. Venables"), 
+                             as.person("B. D. Ripley")),
+	 publisher = "Springer",
+         edition = "Fourth",
+         address      = "New York",
+         year         = 2002,
+         note         = "ISBN 0-387-95457-0",
+         url          = "http://www.stats.ox.ac.uk/pub/MASS4",
+         
+         textVersion = 
+         paste("Venables, W. N. & Ripley, B. D. (2002)", 
+               "Modern Applied Statistics with S.",
+               "Fourth Edition. Springer, New York. ISBN 0-387-95457-0")
+)
\ No newline at end of file
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/NAMESPACE	(revision 2476)
@@ -0,0 +1,20 @@
+useDynLib(spatial, .registration = TRUE)
+
+export(anova.trls, anovalist.trls, correlogram, expcov, gaucov, Kaver,
+       Kenvl, Kfn, plot.trls, ppgetregion, ppinit, pplik, ppregion,
+       predict.trls, prmat, Psim, semat, sphercov, SSI, Strauss,
+       surf.gls, surf.ls, trls.influence, trmat, variogram)
+
+importFrom(graphics, abline, plot, points, symbols)
+importFrom(stats, anova, deviance, df.residual, extractAIC, fitted,
+           pf, predict, quantile, residuals, var)
+
+S3method(anova,trls)
+S3method(deviance,trls)
+S3method(df.residual,trls)
+S3method(extractAIC,trls)
+S3method(fitted,trls)
+S3method(plot,trls)
+S3method(predict,trls)
+S3method(residuals,trls)
+S3method(summary,trls)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/NEWS	(revision 2476)
@@ -0,0 +1,13 @@
+Software and datasets to support 'Modern Applied Statistics with S',
+fourth edition, by W. N. Venables and B. D. Ripley.
+Springer, 2002, ISBN 0-387-95457-0.
+
+This file documents software changes since the third edition.
+
+
+- Methods for class "surf.ls" contributed by Roger Bivand.
+- surf.ls and surf.gls now check for x,y,z cols in a data frame given for x.
+- PP datasets moved from data to ppdata
+- no longer duplicate topo dataset from MASS
+- Strauss and SSI are now interruptible
+- the extractAIC method for "trls" objects was using incorrect edf
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/PP.files
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/PP.files	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/PP.files	(revision 2476)
@@ -0,0 +1,50 @@
+List of point pattern files
+===========================
+
+caveolae.dat		Appleyard et al (1985)
+cells.dat		Ripley (1977)
+davis.dat		Ripley (1981) fig 8.8
+drumlin.dat		Upton & Fingleton (1985, p.77), Ripley (1990)
+eagles.dat		Ripley (1981) fig 8.11
+fig1b.dat		Ripley (1988)
+fig1c.dat		Ripley (1988)
+fig2a.dat		Ripley (1988)
+fig2b.dat		Ripley (1988)
+fig3a.dat		Ripley (1988)
+fig3b.dat		Ripley (1988)
+fig3c.dat		Ripley (1988)
+grocery.dat		Ripley (1979)
+hccells.dat		Ripley (1977)
+nztrees.dat		Ripley (1981) fig 8.6
+pairfn.dat		Ripley (1977)
+pereg.dat		Ripley (1981) fig 8.12
+pines.dat		Ripley (1981) fig 8.7
+redwood.dat		Ripley (1977)
+schools.dat		Upton & Fingleton (1985, p.77)
+stowns1.dat		Ripley (1990)
+tokyo.dat		Okabe & Miki (1984) meat stores in figure 3
+towns.dat		Ripley (1977)
+
+S.T. Appleyard, J.A. Witkowski, B.D. Ripley, D.M. Shotton and V.
+Dubowicz (1985) A novel procedure for pattern analysis of features
+present on freeze fractured plasma membranes. J. Cell Science 74,
+105-117.
+
+Okabe, A. & Miki, F. (1984) Environment & Planning, 16, 163-171.
+
+Ripley (1977) Modelling spatial patterns (with discussion).
+J. Roy. Statist. Soc.B 39, 172--212.
+
+Ripley (1979) The analysis of geographical maps.
+In Exploratory and Explanatory Statistical Analysis of Spatial Data eds
+C.P.A. Bartels and R.H. Ketellapper, Martinus Nijhoff, Boston, 53--72.
+
+Ripley (1981) Spatial Statistics. Wiley
+
+Ripley (1988) Point processes in the earth sciences. 
+In  Quantitative Analysis of Mineral and Energy Resources  eds C.-J.F.
+Chung, A.G. Fabbri and R. Sinding-Larsen, Reidel, Dordrecht, 301-322.
+
+Ripley (1990) Gibbsian interaction models. In 'Spatial Statistics:
+Past, Present and Future' ed D.A. Griffith, Institute of
+Mathematical Geography (IMAGE) Ann Arbor, pp. 3-25.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/R/spatial.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/R/spatial.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/R/spatial
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/R/spatial	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/R/spatial	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/R/spatial.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/R/spatial.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/tests/Examples/spatial-Ex.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/tests/Examples/spatial-Ex.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/spatial/tests/Examples/spatial-Ex.Rout.save	(revision 2476)
@@ -0,0 +1,514 @@
+
+R Under development (unstable) (2013-02-09 r61878) -- "Unsuffered Consequences"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+  Natural language support but running in an English locale
+
+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.
+
+> pkgname <- "spatial"
+> source(file.path(R.home("share"), "R", "examples-header.R"))
+> options(warn = 1)
+> library('spatial')
+> 
+> base::assign(".oldSearch", base::search(), pos = 'CheckExEnv')
+> cleanEx()
+> nameEx("Kaver")
+> ### * Kaver
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: Kaver
+> ### Title: Average K-functions from Simulations
+> ### Aliases: Kaver
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> towns <- ppinit("towns.dat")
+> par(pty="s")
+> plot(Kfn(towns, 40), type="b")
+> plot(Kfn(towns, 10), type="b", xlab="distance", ylab="L(t)")
+> for(i in 1:10) lines(Kfn(Psim(69), 10))
+> lims <- Kenvl(10,100,Psim(69))
+> lines(lims$x,lims$lower, lty=2, col="green")
+> lines(lims$x,lims$upper, lty=2, col="green")
+> lines(Kaver(10,25,Strauss(69,0.5,3.5)),  col="red")
+> 
+> 
+> 
+> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
+> cleanEx()
+> nameEx("Kenvl")
+> ### * Kenvl
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: Kenvl
+> ### Title: Compute Envelope and Average of Simulations of K-fns
+> ### Aliases: Kenvl
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> towns <- ppinit("towns.dat")
+> par(pty="s")
+> plot(Kfn(towns, 40), type="b")
+> plot(Kfn(towns, 10), type="b", xlab="distance", ylab="L(t)")
+> for(i in 1:10) lines(Kfn(Psim(69), 10))
+> lims <- Kenvl(10,100,Psim(69))
+> lines(lims$x,lims$lower, lty=2, col="green")
+> lines(lims$x,lims$upper, lty=2, col="green")
+> lines(Kaver(10,25,Strauss(69,0.5,3.5)), col="red")
+> 
+> 
+> 
+> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
+> cleanEx()
+> nameEx("Kfn")
+> ### * Kfn
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: Kfn
+> ### Title: Compute K-fn of a Point Pattern
+> ### Aliases: Kfn
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> towns <- ppinit("towns.dat")
+> par(pty="s")
+> plot(Kfn(towns, 10), type="s", xlab="distance", ylab="L(t)")
+> 
+> 
+> 
+> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
+> cleanEx()
+> nameEx("Psim")
+> ### * Psim
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: Psim
+> ### Title: Simulate Binomial Spatial Point Process
+> ### Aliases: Psim
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> towns <- ppinit("towns.dat")
+> par(pty="s")
+> plot(Kfn(towns, 10), type="s", xlab="distance", ylab="L(t)")
+> for(i in 1:10) lines(Kfn(Psim(69), 10))
+> 
+> 
+> 
+> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
+> cleanEx()
+> nameEx("SSI")
+> ### * SSI
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: SSI
+> ### Title: Simulates Sequential Spatial Inhibition Point Process
+> ### Aliases: SSI
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> towns <- ppinit("towns.dat")
+> par(pty = "s")
+> plot(Kfn(towns, 10), type = "b", xlab = "distance", ylab = "L(t)")
+> lines(Kaver(10, 25, SSI(69, 1.2)))
+> 
+> 
+> 
+> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
+> cleanEx()
+> nameEx("Strauss")
+> ### * Strauss
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: Strauss
+> ### Title: Simulates Strauss Spatial Point Process
+> ### Aliases: Strauss
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> towns <- ppinit("towns.dat")
+> par(pty="s")
+> plot(Kfn(towns, 10), type="b", xlab="distance", ylab="L(t)")
+> lines(Kaver(10, 25, Strauss(69,0.5,3.5)))
+> 
+> 
+> 
+> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
+> cleanEx()
+> nameEx("anova.trls")
+> ### * anova.trls
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: anova.trls
+> ### Title: Anova tables for fitted trend surface objects
+> ### Aliases: anova.trls anovalist.trls
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> library(stats)
+> data(topo, package="MASS")
+> topo0 <- surf.ls(0, topo)
+> topo1 <- surf.ls(1, topo)
+> topo2 <- surf.ls(2, topo)
+> topo3 <- surf.ls(3, topo)
+> topo4 <- surf.ls(4, topo)
+> anova(topo0, topo1, topo2, topo3, topo4)
+Analysis of Variance Table
+
+Model 1: surf.ls(np = 0, x = topo)
+Model 2: surf.ls(np = 1, x = topo)
+Model 3: surf.ls(np = 2, x = topo)
+Model 4: surf.ls(np = 3, x = topo)
+Model 5: surf.ls(np = 4, x = topo)
+  Res.Df Res.Sum Sq Df Sum Sq F value    Pr(>F)
+1     51     196030                            
+2     49      67186  2 128844 46.9843 4.040e-12
+3     46      39958  3  27228 10.4482 2.325e-05
+4     42      21577  4  18381  8.9447 2.558e-05
+5     37      14886  5   6691  3.3265     0.014
+> summary(topo4)
+Analysis of Variance Table
+ Model: surf.ls(np = 4, x = topo)
+             Sum Sq Df    Mean Sq  F value     Pr(>F)
+Regression 181144.0 14 12938.8567 32.16092 2.2204e-16
+Deviation   14885.7 37   402.3162                    
+Total      196029.7 51                               
+Multiple R-Squared: 0.9241,	Adjusted R-squared: 0.8953 
+AIC: (df = 15) 324.1594
+Fitted:
+   Min     1Q Median     3Q    Max 
+ 702.1  785.0  836.3  880.5  939.1 
+Residuals:
+    Min      1Q  Median      3Q     Max 
+-34.077 -12.568  -2.085  14.056  50.161 
+> 
+> 
+> 
+> cleanEx()
+> nameEx("correlogram")
+> ### * correlogram
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: correlogram
+> ### Title: Compute Spatial Correlograms
+> ### Aliases: correlogram
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> data(topo, package="MASS")
+> topo.kr <- surf.ls(2, topo)
+> correlogram(topo.kr, 25)
+> d <- seq(0, 7, 0.1)
+> lines(d, expcov(d, 0.7))
+> 
+> 
+> 
+> cleanEx()
+> nameEx("expcov")
+> ### * expcov
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: expcov
+> ### Title: Spatial Covariance Functions
+> ### Aliases: expcov gaucov sphercov
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> data(topo, package="MASS")
+> topo.kr <- surf.ls(2, topo)
+> correlogram(topo.kr, 25)
+> d <- seq(0, 7, 0.1)
+> lines(d, expcov(d, 0.7))
+> 
+> 
+> 
+> cleanEx()
+> nameEx("ppinit")
+> ### * ppinit
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: ppinit
+> ### Title: Read a Point Process Object from a File
+> ### Aliases: ppinit
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> towns <- ppinit("towns.dat")
+> par(pty="s")
+> plot(Kfn(towns, 10), type="b", xlab="distance", ylab="L(t)")
+> 
+> 
+> 
+> graphics::par(get("par.postscript", pos = 'CheckExEnv'))
+> cleanEx()
+> nameEx("pplik")
+> ### * pplik
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: pplik
+> ### Title: Pseudo-likelihood Estimation of a Strauss Spatial Point Process
+> ### Aliases: pplik
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> pines <- ppinit("pines.dat")
+> pplik(pines, 0.7)
+[1] 0.1508756
+> 
+> 
+> 
+> cleanEx()
+> nameEx("predict.trls")
+> ### * predict.trls
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: predict.trls
+> ### Title: Predict method for trend surface fits
+> ### Aliases: predict.trls
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> data(topo, package="MASS")
+> topo2 <- surf.ls(2, topo)
+> topo4 <- surf.ls(4, topo)
+> x <- c(1.78, 2.21)
+> y <- c(6.15, 6.15)
+> z2 <- predict(topo2, x, y)
+> z4 <- predict(topo4, x, y)
+> cat("2nd order predictions:", z2, "\n4th order predictions:", z4, "\n")
+2nd order predictions: 756.0682 747.0624 
+4th order predictions: 765.5547 742.3738 
+> 
+> 
+> 
+> cleanEx()
+> nameEx("prmat")
+> ### * prmat
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: prmat
+> ### Title: Evaluate Kriging Surface over a Grid
+> ### Aliases: prmat
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> data(topo, package="MASS")
+> topo.kr <- surf.gls(2, expcov, topo, d=0.7)
+> prsurf <- prmat(topo.kr, 0, 6.5, 0, 6.5, 50)
+> contour(prsurf, levels=seq(700, 925, 25))
+> 
+> 
+> 
+> cleanEx()
+> nameEx("semat")
+> ### * semat
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: semat
+> ### Title: Evaluate Kriging Standard Error of Prediction over a Grid
+> ### Aliases: semat
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> data(topo, package="MASS")
+> topo.kr <- surf.gls(2, expcov, topo, d=0.7)
+> prsurf <- prmat(topo.kr, 0, 6.5, 0, 6.5, 50)
+> contour(prsurf, levels=seq(700, 925, 25))
+> sesurf <- semat(topo.kr, 0, 6.5, 0, 6.5, 30)
+> contour(sesurf, levels=c(22,25))
+> 
+> 
+> 
+> cleanEx()
+> nameEx("surf.gls")
+> ### * surf.gls
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: surf.gls
+> ### Title: Fits a Trend Surface by Generalized Least-squares
+> ### Aliases: surf.gls
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> library(MASS)  # for eqscplot
+> data(topo, package="MASS")
+> topo.kr <- surf.gls(2, expcov, topo, d=0.7)
+> trsurf <- trmat(topo.kr, 0, 6.5, 0, 6.5, 50)
+> eqscplot(trsurf, type = "n")
+> contour(trsurf, add = TRUE)
+> 
+> prsurf <- prmat(topo.kr, 0, 6.5, 0, 6.5, 50)
+> contour(prsurf, levels=seq(700, 925, 25))
+> sesurf <- semat(topo.kr, 0, 6.5, 0, 6.5, 30)
+> eqscplot(sesurf, type = "n")
+> contour(sesurf, levels = c(22, 25), add = TRUE)
+> 
+> 
+> 
+> cleanEx()
+
+detaching ‘package:MASS’
+
+> nameEx("surf.ls")
+> ### * surf.ls
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: surf.ls
+> ### Title: Fits a Trend Surface by Least-squares
+> ### Aliases: surf.ls
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> library(MASS)  # for eqscplot
+> data(topo, package="MASS")
+> topo.kr <- surf.ls(2, topo)
+> trsurf <- trmat(topo.kr, 0, 6.5, 0, 6.5, 50)
+> eqscplot(trsurf, type = "n")
+> contour(trsurf, add = TRUE)
+> points(topo)
+> 
+> eqscplot(trsurf, type = "n")
+> contour(trsurf, add = TRUE)
+> plot(topo.kr, add = TRUE)
+> title(xlab= "Circle radius proportional to Cook's influence statistic")
+> 
+> 
+> 
+> cleanEx()
+
+detaching ‘package:MASS’
+
+> nameEx("trls.influence")
+> ### * trls.influence
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: trls.influence
+> ### Title: Regression diagnostics for trend surfaces
+> ### Aliases: trls.influence plot.trls
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> library(MASS)  # for eqscplot
+> data(topo, package = "MASS")
+> topo2 <- surf.ls(2, topo)
+> infl.topo2 <- trls.influence(topo2)
+> (cand <- as.data.frame(infl.topo2)[abs(infl.topo2$stresid) > 1.5, ])
+           r        hii   stresid         Di
+1   61.21889 0.35476783  2.585852 0.61275133
+4  -45.58507 0.13493260 -1.662930 0.07188916
+12  44.71663 0.21022336  1.707234 0.12930392
+31  52.05575 0.07154233  1.833006 0.04314966
+37  54.75944 0.06974770  1.926349 0.04637112
+48  97.75499 0.08574061  3.468809 0.18807312
+50 -63.25149 0.27530059 -2.520972 0.40237779
+> cand.xy <- topo[as.integer(rownames(cand)), c("x", "y")]
+> trsurf <- trmat(topo2, 0, 6.5, 0, 6.5, 50)
+> eqscplot(trsurf, type = "n")
+> contour(trsurf, add = TRUE, col = "grey")
+> plot(topo2, add = TRUE, div = 3)
+> points(cand.xy, pch = 16, col = "orange")
+> text(cand.xy, labels = rownames(cand.xy), pos = 4, offset = 0.5)
+> 
+> 
+> 
+> cleanEx()
+
+detaching ‘package:MASS’
+
+> nameEx("trmat")
+> ### * trmat
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: trmat
+> ### Title: Evaluate Trend Surface over a Grid
+> ### Aliases: trmat
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> data(topo, package="MASS")
+> topo.kr <- surf.ls(2, topo)
+> trsurf <- trmat(topo.kr, 0, 6.5, 0, 6.5, 50)
+> 
+> 
+> 
+> cleanEx()
+> nameEx("variogram")
+> ### * variogram
+> 
+> flush(stderr()); flush(stdout())
+> 
+> ### Name: variogram
+> ### Title: Compute Spatial Variogram
+> ### Aliases: variogram
+> ### Keywords: spatial
+> 
+> ### ** Examples
+> 
+> data(topo, package="MASS")
+> topo.kr <- surf.ls(2, topo)
+> variogram(topo.kr, 25)
+> 
+> 
+> 
+> ### * <FOOTER>
+> ###
+> base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
+Time elapsed:  0.713 0.036 0.776 0 0 
+> grDevices::dev.off()
+null device 
+          1 
+> ###
+> ### Local variables: ***
+> ### mode: outline-minor ***
+> ### outline-regexp: "\\(> \\)?### [*]+" ***
+> ### End: ***
+> quit('no')
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/INDEX	(revision 2476)
@@ -0,0 +1,36 @@
+MIMCA                   Multiple Imputation with MCA
+MIPCA                   Multiple Imputation with PCA
+Overimpute              Overimputation diagnostic plot
+TitanicNA               Categorical data set with missing values:
+                        Survival of passengers on the Titanic
+estim_ncpFAMD           Estimate the number of dimensions for the
+                        Factorial Analysis of Mixed Data by
+                        cross-validation
+estim_ncpMCA            Estimate the number of dimensions for the
+                        Multiple Correspondence Analysis by
+                        cross-validation
+estim_ncpPCA            Estimate the number of dimensions for the
+                        Principal Component Analysis by
+                        cross-validation
+gene                    Gene expression
+geno                    Genotype-environment data set with missing
+                        values
+imputeFAMD              Impute mixed dataset
+imputeMCA               Impute categorical dataset
+imputeMFA               Impute dataset with variables structured into
+                        groups of variables (groups of continuous or
+                        categorical variables)
+imputePCA               Impute dataset with PCA
+missMDA-package         Handling missing values with/in multivariate
+                        data analysis (principal component methods)
+orange                  Sensory description of 12 orange juices by 8
+                        attributes.
+ozone                   Daily measurements of meteorological variables
+                        and ozone concentration
+plot.MIPCA              Plot the graphs for the Multiple Imputation in
+                        PCA
+prelim                  Converts a dataset imputed by MIMCA or MIPCA
+                        into a mids object
+snorena                 Characterization of people who snore
+vnf                     Questionnaire done by 1232 individuals who
+                        answered 14 questions
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/help/missMDA.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/help/missMDA.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/help/AnIndex	(revision 2476)
@@ -0,0 +1,21 @@
+missMDA-package	missMDA-package
+estim_ncpFAMD	estim_ncpFAMD
+estim_ncpMCA	estim_ncpMCA
+estim_ncpPCA	estim_ncpPCA
+gene	gene
+geno	geno
+imputeFAMD	imputeFAMD
+imputeMCA	imputeMCA
+imputeMFA	imputeMFA
+imputePCA	imputePCA
+MIMCA	MIMCA
+MIPCA	MIPCA
+missMDA	missMDA-package
+orange	orange
+Overimpute	Overimpute
+ozone	ozone
+plot.MIPCA	plot.MIPCA
+prelim	prelim
+snorena	snorena
+TitanicNA	TitanicNA
+vnf	vnf
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/help/missMDA.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/help/missMDA.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/geno.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/geno.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/vnf.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/vnf.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/TitanicNA.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/TitanicNA.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/ozone.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/ozone.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/orange.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/orange.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/gene.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/gene.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/snorena.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/data/snorena.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/CITATION	(revision 2476)
@@ -0,0 +1,22 @@
+bibentry(bibtype = "Article",
+  title        = "{missMDA}: A Package for Handling Missing Values in Multivariate Data Analysis",
+  author       = c(person(given = "Julie",
+                          family = "Josse",
+                          email = "josse@agrocampus-ouest.fr"),
+                   person(given = "Fran\\c{c}ois",
+                          family = "Husson")),
+  journal      = "Journal of Statistical Software",
+  year         = "2016",
+  volume       = "70",
+  number       = "1",
+  pages        = "1--31",
+  doi          = "10.18637/jss.v070.i01",
+
+  header       = "To cite missMDA in publications use:",
+  textVersion  =
+  paste("Julie Josse, Francois Husson (2016).",
+        "missMDA: A Package for Handling Missing Values in Multivariate Data Analysis.",
+        "Journal of Statistical Software, 70(1), 1-31.",
+        "doi:10.18637/jss.v070.i01")
+)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/NAMESPACE	(revision 2476)
@@ -0,0 +1,10 @@
+export(estim_ncpFAMD,estim_ncpPCA,estim_ncpMCA,imputeFAMD,imputeMCA,imputeMFA,imputePCA,MIMCA,MIPCA,Overimpute,prelim,plot.MIPCA)
+importFrom(FactoMineR,PCA,MCA,MFA,FAMD,svd.triplet,coord.ellipse,reconst,tab.disjonctif.prop)
+importFrom(graphics,plot,points,abline,segments,legend,par)
+importFrom(grDevices,dev.new,heat.colors)
+importFrom(mice,as.mids)
+importFrom(mvtnorm,rmvnorm)
+importFrom(stats,sd,rnorm,quantile)
+importFrom(utils,txtProgressBar,setTxtProgressBar)
+
+S3method(plot, MIPCA)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/R/missMDA.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/R/missMDA.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/R/missMDA
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/R/missMDA	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/R/missMDA	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/R/missMDA.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/R/missMDA.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/DESCRIPTION	(revision 2476)
@@ -0,0 +1,20 @@
+Package: missMDA
+Type: Package
+Title: Handling Missing Values with Multivariate Data Analysis
+Version: 1.10
+Date: 2016-03-25
+Author: Francois Husson, Julie Josse
+Maintainer: Francois Husson <husson@agrocampus-ouest.fr>
+Description: Imputation of incomplete continuous or categorical datasets; Missing values are imputed with a principal component analysis (PCA), a multiple correspondence analysis (MCA) model or a multiple factor analysis (MFA) model; Perform multiple imputation with and in PCA.
+Depends: R (>= 3.2.0)
+Imports: FactoMineR (>=
+        1.32),graphics,grDevices,mice,mvtnorm,stats,utils
+License: GPL (>= 2)
+URL: http://www.agrocampus-ouest.fr/math/husson, http://juliejosse.com/
+Encoding: latin1
+LazyLoad: yes
+NeedsCompilation: no
+Packaged: 2016-03-25 13:42:45 UTC; husson
+Repository: CRAN
+Date/Publication: 2016-03-25 20:01:02
+Built: R 3.3.0; ; 2016-05-05 19:34:46 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/html/00Index.html	(revision 2476)
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Handling Missing Values with Multivariate Data Analysis</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Handling Missing Values with Multivariate Data Analysis
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;missMDA&rsquo; version 1.10</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="missMDA-package.html">missMDA-package</a></td>
+<td>Handling missing values with/in multivariate data analysis (principal component methods)</td></tr>
+<tr><td style="width: 25%;"><a href="estim_ncpFAMD.html">estim_ncpFAMD</a></td>
+<td>Estimate the number of dimensions for the Factorial Analysis of Mixed Data by cross-validation</td></tr>
+<tr><td style="width: 25%;"><a href="estim_ncpMCA.html">estim_ncpMCA</a></td>
+<td>Estimate the number of dimensions for the Multiple Correspondence Analysis by cross-validation</td></tr>
+<tr><td style="width: 25%;"><a href="estim_ncpPCA.html">estim_ncpPCA</a></td>
+<td>Estimate the number of dimensions for the Principal Component Analysis by cross-validation</td></tr>
+<tr><td style="width: 25%;"><a href="gene.html">gene</a></td>
+<td>Gene expression</td></tr>
+<tr><td style="width: 25%;"><a href="geno.html">geno</a></td>
+<td>Genotype-environment data set with missing values</td></tr>
+<tr><td style="width: 25%;"><a href="imputeFAMD.html">imputeFAMD</a></td>
+<td>Impute mixed dataset</td></tr>
+<tr><td style="width: 25%;"><a href="imputeMCA.html">imputeMCA</a></td>
+<td>Impute categorical dataset</td></tr>
+<tr><td style="width: 25%;"><a href="imputeMFA.html">imputeMFA</a></td>
+<td>Impute dataset with variables structured into groups of variables (groups of continuous or categorical variables)</td></tr>
+<tr><td style="width: 25%;"><a href="imputePCA.html">imputePCA</a></td>
+<td>Impute dataset with PCA</td></tr>
+<tr><td style="width: 25%;"><a href="MIMCA.html">MIMCA</a></td>
+<td>Multiple Imputation with MCA</td></tr>
+<tr><td style="width: 25%;"><a href="MIPCA.html">MIPCA</a></td>
+<td>Multiple Imputation with PCA</td></tr>
+<tr><td style="width: 25%;"><a href="missMDA-package.html">missMDA</a></td>
+<td>Handling missing values with/in multivariate data analysis (principal component methods)</td></tr>
+<tr><td style="width: 25%;"><a href="orange.html">orange</a></td>
+<td>Sensory description of 12 orange juices by 8 attributes.</td></tr>
+<tr><td style="width: 25%;"><a href="Overimpute.html">Overimpute</a></td>
+<td>Overimputation diagnostic plot</td></tr>
+<tr><td style="width: 25%;"><a href="ozone.html">ozone</a></td>
+<td>Daily measurements of meteorological variables and ozone concentration</td></tr>
+<tr><td style="width: 25%;"><a href="plot.MIPCA.html">plot.MIPCA</a></td>
+<td>Plot the graphs for the Multiple Imputation in PCA</td></tr>
+<tr><td style="width: 25%;"><a href="prelim.html">prelim</a></td>
+<td>Converts a dataset imputed by MIMCA or MIPCA into a mids object</td></tr>
+<tr><td style="width: 25%;"><a href="snorena.html">snorena</a></td>
+<td>Characterization of people who snore</td></tr>
+<tr><td style="width: 25%;"><a href="TitanicNA.html">TitanicNA</a></td>
+<td>Categorical data set with missing values: Survival of passengers on the Titanic</td></tr>
+<tr><td style="width: 25%;"><a href="vnf.html">vnf</a></td>
+<td>Questionnaire done by 1232 individuals who answered 14 questions</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/missMDA/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/R/pbkrtest.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/R/pbkrtest.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/R/pbkrtest.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/R/pbkrtest.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/R/pbkrtest
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/R/pbkrtest	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/R/pbkrtest	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/DESCRIPTION	(revision 2476)
@@ -0,0 +1,26 @@
+Package: pbkrtest
+Version: 0.4-6
+Title: Parametric Bootstrap and Kenward Roger Based Methods for Mixed
+        Model Comparison
+Author: Ulrich Halekoh <uhalekoh@health.sdu.dk> S�ren H�jsgaard <sorenh@math.aau.dk>
+Maintainer: S�ren H�jsgaard <sorenh@math.aau.dk>
+Description: Test in mixed effects models.
+ .
+    Attention is on mixed effects models as implemented in the
+ 'lme4' package.
+ .
+    This package implements a parametric bootstrap test and a Kenward Roger 
+ modification of F-tests for linear mixed effects models and a parametric bootstrap 
+ test for generalized linear mixed models.
+URL: http://people.math.aau.dk/~sorenh/software/pbkrtest/
+Depends: R (>= 3.2.3), lme4 (>= 1.1.10)
+Imports: Matrix (>= 1.2.3), parallel, MASS, methods
+Suggests: gplots
+Encoding: latin1
+ZipData: no
+License: GPL (>= 2)
+NeedsCompilation: no
+Packaged: 2016-01-27 16:02:56 UTC; sorenh
+Repository: CRAN
+Date/Publication: 2016-01-27 20:39:58
+Built: R 3.3.0; ; 2016-05-05 16:22:04 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/html/00Index.html	(revision 2476)
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Parametric Bootstrap and Kenward Roger Based Methods for Mixed
+Model Comparison</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Parametric Bootstrap and Kenward Roger Based Methods for Mixed
+Model Comparison
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;pbkrtest&rsquo; version 0.4-6</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="DATA-beets.html">beets</a></td>
+<td>Yield and sugar percentage in sugar beets from a split plot experiment.</td></tr>
+<tr><td style="width: 25%;"><a href="DATA-budworm.html">budworm</a></td>
+<td>Effect of Insecticide on survivial of tobacco budworms</td></tr>
+<tr><td style="width: 25%;"><a href="getKR.html">getKR</a></td>
+<td>Extract (or "get") components from a 'KRmodcomp' object.</td></tr>
+<tr><td style="width: 25%;"><a href="PBmodcomp.html">getLRT</a></td>
+<td>Model comparison using parametric bootstrap methods.</td></tr>
+<tr><td style="width: 25%;"><a href="PBmodcomp.html">getLRT.lm</a></td>
+<td>Model comparison using parametric bootstrap methods.</td></tr>
+<tr><td style="width: 25%;"><a href="PBmodcomp.html">getLRT.mer</a></td>
+<td>Model comparison using parametric bootstrap methods.</td></tr>
+<tr><td style="width: 25%;"><a href="PBmodcomp.html">getLRT.merMod</a></td>
+<td>Model comparison using parametric bootstrap methods.</td></tr>
+<tr><td style="width: 25%;"><a href="get_ddf_Lb.html">get_Lb_ddf</a></td>
+<td>Adjusted denomintor degress freedom for linear estimate for linear mixed model.</td></tr>
+<tr><td style="width: 25%;"><a href="get_ddf_Lb.html">get_Lb_ddf.lmerMod</a></td>
+<td>Adjusted denomintor degress freedom for linear estimate for linear mixed model.</td></tr>
+<tr><td style="width: 25%;"><a href="vcovAdj.html">get_SigmaG</a></td>
+<td>Ajusted covariance matrix for linear mixed models according to Kenward and Roger</td></tr>
+<tr><td style="width: 25%;"><a href="vcovAdj.html">get_SigmaG.lmerMod</a></td>
+<td>Ajusted covariance matrix for linear mixed models according to Kenward and Roger</td></tr>
+<tr><td style="width: 25%;"><a href="vcovAdj.html">get_SigmaG.mer</a></td>
+<td>Ajusted covariance matrix for linear mixed models according to Kenward and Roger</td></tr>
+<tr><td style="width: 25%;"><a href="KRmodcomp.html">KRmodcomp</a></td>
+<td>Ftest and degrees of freedom based on Kenward-Roger approximation</td></tr>
+<tr><td style="width: 25%;"><a href="KRmodcomp.html">KRmodcomp.lmerMod</a></td>
+<td>Ftest and degrees of freedom based on Kenward-Roger approximation</td></tr>
+<tr><td style="width: 25%;"><a href="KRmodcomp.html">KRmodcomp.mer</a></td>
+<td>Ftest and degrees of freedom based on Kenward-Roger approximation</td></tr>
+<tr><td style="width: 25%;"><a href="KRmodcomp.html">KRmodcomp_internal</a></td>
+<td>Ftest and degrees of freedom based on Kenward-Roger approximation</td></tr>
+<tr><td style="width: 25%;"><a href="get_ddf_Lb.html">Lb_ddf</a></td>
+<td>Adjusted denomintor degress freedom for linear estimate for linear mixed model.</td></tr>
+<tr><td style="width: 25%;"><a href="vcovAdj.html">LMM_Sigma_G</a></td>
+<td>Ajusted covariance matrix for linear mixed models according to Kenward and Roger</td></tr>
+<tr><td style="width: 25%;"><a href="model2restrictionMatrix.html">model2restrictionMatrix</a></td>
+<td>Conversion between a model object and a restriction matrix</td></tr>
+<tr><td style="width: 25%;"><a href="model2restrictionMatrix.html">model2restrictionMatrix.lm</a></td>
+<td>Conversion between a model object and a restriction matrix</td></tr>
+<tr><td style="width: 25%;"><a href="model2restrictionMatrix.html">model2restrictionMatrix.mer</a></td>
+<td>Conversion between a model object and a restriction matrix</td></tr>
+<tr><td style="width: 25%;"><a href="model2restrictionMatrix.html">model2restrictionMatrix.merMod</a></td>
+<td>Conversion between a model object and a restriction matrix</td></tr>
+<tr><td style="width: 25%;"><a href="PBmodcomp.html">PBmodcomp</a></td>
+<td>Model comparison using parametric bootstrap methods.</td></tr>
+<tr><td style="width: 25%;"><a href="PBmodcomp.html">PBmodcomp.lm</a></td>
+<td>Model comparison using parametric bootstrap methods.</td></tr>
+<tr><td style="width: 25%;"><a href="PBmodcomp.html">PBmodcomp.mer</a></td>
+<td>Model comparison using parametric bootstrap methods.</td></tr>
+<tr><td style="width: 25%;"><a href="PBmodcomp.html">PBmodcomp.merMod</a></td>
+<td>Model comparison using parametric bootstrap methods.</td></tr>
+<tr><td style="width: 25%;"><a href="PBrefdist.html">PBrefdist</a></td>
+<td>Calculate reference distribution using parametric bootstrap</td></tr>
+<tr><td style="width: 25%;"><a href="PBrefdist.html">PBrefdist.lm</a></td>
+<td>Calculate reference distribution using parametric bootstrap</td></tr>
+<tr><td style="width: 25%;"><a href="PBrefdist.html">PBrefdist.mer</a></td>
+<td>Calculate reference distribution using parametric bootstrap</td></tr>
+<tr><td style="width: 25%;"><a href="PBrefdist.html">PBrefdist.merMod</a></td>
+<td>Calculate reference distribution using parametric bootstrap</td></tr>
+<tr><td style="width: 25%;"><a href="PBmodcomp.html">plot.XXmodcomp</a></td>
+<td>Model comparison using parametric bootstrap methods.</td></tr>
+<tr><td style="width: 25%;"><a href="model2restrictionMatrix.html">restrictionMatrix2model</a></td>
+<td>Conversion between a model object and a restriction matrix</td></tr>
+<tr><td style="width: 25%;"><a href="model2restrictionMatrix.html">restrictionMatrix2model.lm</a></td>
+<td>Conversion between a model object and a restriction matrix</td></tr>
+<tr><td style="width: 25%;"><a href="model2restrictionMatrix.html">restrictionMatrix2model.mer</a></td>
+<td>Conversion between a model object and a restriction matrix</td></tr>
+<tr><td style="width: 25%;"><a href="model2restrictionMatrix.html">restrictionMatrix2model.merMod</a></td>
+<td>Conversion between a model object and a restriction matrix</td></tr>
+<tr><td style="width: 25%;"><a href="vcovAdj.html">vcovAdj</a></td>
+<td>Ajusted covariance matrix for linear mixed models according to Kenward and Roger</td></tr>
+<tr><td style="width: 25%;"><a href="vcovAdj.html">vcovAdj.lmerMod</a></td>
+<td>Ajusted covariance matrix for linear mixed models according to Kenward and Roger</td></tr>
+<tr><td style="width: 25%;"><a href="vcovAdj.html">vcovAdj.mer</a></td>
+<td>Ajusted covariance matrix for linear mixed models according to Kenward and Roger</td></tr>
+<tr><td style="width: 25%;"><a href="vcovAdj.html">vcovAdj0</a></td>
+<td>Ajusted covariance matrix for linear mixed models according to Kenward and Roger</td></tr>
+<tr><td style="width: 25%;"><a href="vcovAdj.html">vcovAdj2</a></td>
+<td>Ajusted covariance matrix for linear mixed models according to Kenward and Roger</td></tr>
+<tr><td style="width: 25%;"><a href="vcovAdj.html">vcovAdj_internal</a></td>
+<td>Ajusted covariance matrix for linear mixed models according to Kenward and Roger</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/doc/pbkrtest-introduction.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/doc/pbkrtest-introduction.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/doc/pbkrtest-introduction.R	(revision 2476)
@@ -0,0 +1,152 @@
+### R code from vignette source 'pbkrtest-introduction.Rnw'
+### Encoding: UTF-8
+
+###################################################
+### code chunk number 1: pbkrtest-introduction.Rnw:19-22
+###################################################
+require( pbkrtest )
+prettyVersion <- packageDescription("pbkrtest")$Version
+prettyDate <- format(Sys.Date())
+
+
+###################################################
+### code chunk number 2: pbkrtest-introduction.Rnw:65-67
+###################################################
+options(prompt = "R> ", continue = "+  ", width = 80, useFancyQuotes=FALSE)
+dir.create("figures")
+
+
+###################################################
+### code chunk number 3: pbkrtest-introduction.Rnw:72-73
+###################################################
+library(pbkrtest)
+
+
+###################################################
+### code chunk number 4: pbkrtest-introduction.Rnw:82-84
+###################################################
+data(shoes, package="MASS")
+shoes
+
+
+###################################################
+### code chunk number 5: pbkrtest-introduction.Rnw:90-93
+###################################################
+plot(A~1, data=shoes, col="red",lwd=2, pch=1, ylab="wear", xlab="boy")
+points(B~1, data=shoes, col="blue", lwd=2, pch=2)
+points(I((A+B)/2)~1, data=shoes, pch="-", lwd=2)
+
+
+###################################################
+### code chunk number 6: pbkrtest-introduction.Rnw:101-104
+###################################################
+r1<-t.test(shoes$A, shoes$B, paired=T)
+r2<-t.test(shoes$A-shoes$B)
+r1
+
+
+###################################################
+### code chunk number 7: pbkrtest-introduction.Rnw:112-120
+###################################################
+boy <- rep(1:10,2)
+boyf<- factor(letters[boy])
+mat <- factor(c(rep("A", 10), rep("B",10)))
+## Balanced data:
+shoe.b <- data.frame(wear=unlist(shoes), boy=boy, boyf=boyf, mat=mat)
+head(shoe.b)
+## Imbalanced data; delete (boy=1, mat=1) and (boy=2, mat=b)
+shoe.i <-  shoe.b[-c(1,12),]
+
+
+###################################################
+### code chunk number 8: pbkrtest-introduction.Rnw:126-130
+###################################################
+lmm1.b  <- lmer( wear ~ mat + (1|boyf), data=shoe.b )
+lmm0.b  <- update( lmm1.b, .~. - mat)
+lmm1.i  <- lmer( wear ~ mat + (1|boyf), data=shoe.i )
+lmm0.i  <- update(lmm1.i, .~. - mat)
+
+
+###################################################
+### code chunk number 9: pbkrtest-introduction.Rnw:137-139
+###################################################
+anova( lmm1.b, lmm0.b, test="Chisq" ) ## Balanced data
+anova( lmm1.i, lmm0.i, test="Chisq" ) ## Imbalanced data
+
+
+###################################################
+### code chunk number 10: pbkrtest-introduction.Rnw:150-151
+###################################################
+( kr.b<-KRmodcomp(lmm1.b, lmm0.b) )
+
+
+###################################################
+### code chunk number 11: pbkrtest-introduction.Rnw:155-156
+###################################################
+summary( kr.b )
+
+
+###################################################
+### code chunk number 12: pbkrtest-introduction.Rnw:162-163
+###################################################
+getKR(kr.b, "ddf")
+
+
+###################################################
+### code chunk number 13: pbkrtest-introduction.Rnw:168-169
+###################################################
+( kr.i<-KRmodcomp(lmm1.i, lmm0.i) )
+
+
+###################################################
+### code chunk number 14: pbkrtest-introduction.Rnw:176-178
+###################################################
+shoes2 <- list(A=shoes$A[-(1:2)], B=shoes$B[-(1:2)])
+t.test(shoes2$A, shoes2$B, paired=T)
+
+
+###################################################
+### code chunk number 15: pbkrtest-introduction.Rnw:191-192
+###################################################
+( pb.b <- PBmodcomp(lmm1.b, lmm0.b, nsim=500) )
+
+
+###################################################
+### code chunk number 16: pbkrtest-introduction.Rnw:196-197
+###################################################
+summary( pb.b )
+
+
+###################################################
+### code chunk number 17: pbkrtest-introduction.Rnw:205-206
+###################################################
+( pb.i<-PBmodcomp(lmm1.i, lmm0.i, nsim=500) )
+
+
+###################################################
+### code chunk number 18: pbkrtest-introduction.Rnw:210-211
+###################################################
+summary( pb.i )
+
+
+###################################################
+### code chunk number 19: pbkrtest-introduction.Rnw:223-227
+###################################################
+shoe3 <- subset(shoe.b, boy<=5)
+shoe3 <- shoe3[order(shoe3$boy), ]
+lmm1  <- lmer( wear ~ mat + (1|boyf), data=shoe3 )
+str( SG <- get_SigmaG( lmm1 ), max=2)
+
+
+###################################################
+### code chunk number 20: pbkrtest-introduction.Rnw:231-232
+###################################################
+round( SG$Sigma*10 )
+
+
+###################################################
+### code chunk number 21: pbkrtest-introduction.Rnw:236-237
+###################################################
+SG$G
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/doc/pbkrtest-introduction.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/doc/pbkrtest-introduction.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/doc/pbkrtest-introduction.Rnw	(revision 2476)
@@ -0,0 +1,265 @@
+%\VignetteIndexEntry{pbkrtest-introduction: Introduction to pbkrtest}
+%\VignettePackage{pbkrtest}
+
+\documentclass[11pt]{article}
+\usepackage{url,a4}
+
+\usepackage[latin1]{inputenc}
+%\usepackage{inputenx}
+\usepackage{boxedminipage,color}
+\usepackage[noae]{Sweave}
+
+\parindent0pt\parskip5pt
+\def\code#1{{\texttt{#1}}}
+\def\pkg#1{{\texttt{#1}}}
+\def\R{\texttt{R}}
+
+
+
+<<echo=FALSE,print=FALSE>>=
+require( pbkrtest )
+prettyVersion <- packageDescription("pbkrtest")$Version
+prettyDate <- format(Sys.Date())
+@
+
+
+\title{On the usage of the  \pkg{pbkrtest} package}
+\author{S{\o}ren H{\o}jsgaard and Ulrich Halekoh}
+\date{\pkg{pbkrtest} version \Sexpr{prettyVersion} as of \Sexpr{prettyDate}}
+
+\SweaveOpts{prefix.string=figures/pbkr, keep.source=T, height=4}
+
+\begin{document}
+
+\definecolor{darkred}{rgb}{.7,0,0}
+\definecolor{midnightblue}{rgb}{0.098,0.098,0.439}
+
+\DefineVerbatimEnvironment{Sinput}{Verbatim}{
+  fontfamily=tt,
+  %%fontseries=b,
+  %% xleftmargin=2em,
+  formatcom={\color{midnightblue}}
+}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}{
+  fontfamily=tt,
+  %%fontseries=b,
+  %% xleftmargin=2em,
+  formatcom={\color{darkred}}
+}
+\DefineVerbatimEnvironment{Scode}{Verbatim}{
+  fontfamily=tt,
+  %%fontseries=b,
+  %% xleftmargin=2em,
+  formatcom={\color{blue}}
+}
+
+\fvset{listparameters={\setlength{\topsep}{-2pt}}}
+\renewenvironment{Schunk}{\linespread{.90}}{}
+
+
+
+\maketitle
+\tableofcontents
+
+@
+<<echo=F,results=hide>>=
+options(prompt = "R> ", continue = "+  ", width = 80, useFancyQuotes=FALSE)
+dir.create("figures")
+@ %def
+
+%% useFancyQuotes = FALSE
+@
+<<echo=FALSE>>=
+library(pbkrtest)
+@ %def
+
+\section{Introduction}
+
+The \code{shoes} data is a list of two vectors, giving the wear of
+shoes of materials A and B for one foot each of ten boys.
+
+@
+<<>>=
+data(shoes, package="MASS")
+shoes
+@ %def
+
+A plot clearly reveals that boys wear their shoes differently.
+
+@
+<<fig=T>>=
+plot(A~1, data=shoes, col="red",lwd=2, pch=1, ylab="wear", xlab="boy")
+points(B~1, data=shoes, col="blue", lwd=2, pch=2)
+points(I((A+B)/2)~1, data=shoes, pch="-", lwd=2)
+@ %def
+
+
+One option for testing the effect of materials is to make a paired
+$t$--test. The following forms are equivalent:
+
+@
+<<>>=
+r1<-t.test(shoes$A, shoes$B, paired=T)
+r2<-t.test(shoes$A-shoes$B)
+r1
+@ %def
+
+
+To work with data in a mixed model setting we create a dataframe, and
+for later use we also create an imbalanced version of data:
+
+@
+<<>>=
+boy <- rep(1:10,2)
+boyf<- factor(letters[boy])
+mat <- factor(c(rep("A", 10), rep("B",10)))
+## Balanced data:
+shoe.b <- data.frame(wear=unlist(shoes), boy=boy, boyf=boyf, mat=mat)
+head(shoe.b)
+## Imbalanced data; delete (boy=1, mat=1) and (boy=2, mat=b)
+shoe.i <-  shoe.b[-c(1,12),]
+@ %def
+
+We fit models to the two datasets:
+
+@
+<<>>=
+lmm1.b  <- lmer( wear ~ mat + (1|boyf), data=shoe.b )
+lmm0.b  <- update( lmm1.b, .~. - mat)
+lmm1.i  <- lmer( wear ~ mat + (1|boyf), data=shoe.i )
+lmm0.i  <- update(lmm1.i, .~. - mat)
+@ %def
+
+The asymptotic likelihood ratio test shows stronger significance than
+the $t$--test:
+
+@
+<<>>=
+anova( lmm1.b, lmm0.b, test="Chisq" ) ## Balanced data
+anova( lmm1.i, lmm0.i, test="Chisq" ) ## Imbalanced data
+@ %def
+
+\section{Kenward--Roger approach}
+\label{sec:kenw-roger-appr}
+
+
+The Kenward--Roger approximation is exact for the balanced data in the
+sense that it produces the same result as the paired $t$--test.
+
+@
+<<>>=
+( kr.b<-KRmodcomp(lmm1.b, lmm0.b) )
+@ %def
+
+@
+<<>>=
+summary( kr.b )
+@ %def
+
+Relevant information can be retrieved with
+
+@
+<<>>=
+getKR(kr.b, "ddf")
+@ %def
+
+For the imbalanced data we get
+@
+<<>>=
+( kr.i<-KRmodcomp(lmm1.i, lmm0.i) )
+@ %def
+
+Notice that this result is similar to but not identical to the paired
+$t$--test when the two relevant boys are removed:
+
+@
+<<>>=
+shoes2 <- list(A=shoes$A[-(1:2)], B=shoes$B[-(1:2)])
+t.test(shoes2$A, shoes2$B, paired=T)
+@ %def
+
+
+\section{Parametric bootstrap}
+\label{sec:parametric-bootstrap}
+
+Parametric bootstrap provides an alternative but many simulations are
+often needed to provide credible results (also many more than shown
+here; in this connection it can be useful to exploit that computings
+can be made en parallel, see the documentation):
+
+@
+<<>>=
+( pb.b <- PBmodcomp(lmm1.b, lmm0.b, nsim=500) )
+@ %def
+
+@
+<<>>=
+summary( pb.b )
+@ %def
+
+
+For the imbalanced data, the result is similar to the result from the
+paired $t$ test.
+
+@
+<<>>=
+( pb.i<-PBmodcomp(lmm1.i, lmm0.i, nsim=500) )
+@ %def
+
+@
+<<>>=
+summary( pb.i )
+@ %def
+
+
+\appendix
+
+\section{Matrices for random effects}
+\label{sec:matr-rand-effects}
+
+The matrices involved in the random effects can be obtained with
+
+@
+<<>>=
+shoe3 <- subset(shoe.b, boy<=5)
+shoe3 <- shoe3[order(shoe3$boy), ]
+lmm1  <- lmer( wear ~ mat + (1|boyf), data=shoe3 )
+str( SG <- get_SigmaG( lmm1 ), max=2)
+@ %def
+
+@
+<<>>=
+round( SG$Sigma*10 )
+@ %def
+
+@
+<<>>=
+SG$G
+@ %def
+
+
+
+
+\end{document}
+
+
+
+% \section{With linear models}
+% \label{sec:with-linear-models}
+
+
+% @
+% <<>>=
+% lm1.b <- lm( wear ~ mat + boyf, data=shoe.b )
+% lm0.b <- update( lm1.b, .~. - mat )
+% anova( lm1.b, lm0.b )
+% @ %def
+
+
+% @
+% <<>>=
+% lm1.i <- lm( wear ~ mat + boyf, data=shoedf2 )
+% lm0.i <- update( lm1.i, .~. - mat )
+% anova( lm1.i, lm0.i )
+% @ %def
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/doc/pbkrtest-introduction.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/doc/pbkrtest-introduction.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/doc/index.html	(revision 2476)
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'pbkrtest'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/pbkrtest/doc/pbkrtest-introduction.pdf">pbkrtest::pbkrtest-introduction</a></td>
+<td></td><td valign="top">pbkrtest-introduction: Introduction to pbkrtest</td>
+<td valign="top"><a href="../../../library/pbkrtest/doc/pbkrtest-introduction.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/pbkrtest/doc/pbkrtest-introduction.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/pbkrtest/doc/pbkrtest-introduction.R">R code</a></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/INDEX	(revision 2476)
@@ -0,0 +1,19 @@
+KRmodcomp               Ftest and degrees of freedom based on
+                        Kenward-Roger approximation
+PBmodcomp               Model comparison using parametric bootstrap
+                        methods.
+PBrefdist               Calculate reference distribution using
+                        parametric bootstrap
+beets                   Yield and sugar percentage in sugar beets from
+                        a split plot experiment.
+budworm                 Effect of Insecticide on survivial of tobacco
+                        budworms
+getKR                   Extract (or "get") components from a
+                        'KRmodcomp' object.
+get_Lb_ddf              Adjusted denomintor degress freedom for linear
+                        estimate for linear mixed model.
+model2restrictionMatrix
+                        Conversion between a model object and a
+                        restriction matrix
+vcovAdj                 Ajusted covariance matrix for linear mixed
+                        models according to Kenward and Roger
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/help/pbkrtest.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/help/pbkrtest.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/help/AnIndex	(revision 2476)
@@ -0,0 +1,58 @@
+as.data.frame.XXmodcomp	pbkrtest-internal
+beets	DATA-beets
+budworm	DATA-budworm
+ddf_Lb	pbkrtest-internal
+getKR	getKR
+getLRT	PBmodcomp
+getLRT.lm	PBmodcomp
+getLRT.mer	PBmodcomp
+getLRT.merMod	PBmodcomp
+get_ddf_Lb	pbkrtest-internal
+get_ddf_Lb.lmerMod	pbkrtest-internal
+get_Lb_ddf	get_ddf_Lb
+get_Lb_ddf.lmerMod	get_ddf_Lb
+get_SigmaG	vcovAdj
+get_SigmaG.lmerMod	vcovAdj
+get_SigmaG.mer	vcovAdj
+KRmodcomp	KRmodcomp
+KRmodcomp.lmerMod	KRmodcomp
+KRmodcomp.mer	KRmodcomp
+KRmodcomp_init	pbkrtest-internal
+KRmodcomp_init.lmerMod	pbkrtest-internal
+KRmodcomp_init.mer	pbkrtest-internal
+KRmodcomp_internal	KRmodcomp
+Lb_ddf	get_ddf_Lb
+LMM_Sigma_G	vcovAdj
+model2restrictionMatrix	model2restrictionMatrix
+model2restrictionMatrix.lm	model2restrictionMatrix
+model2restrictionMatrix.mer	model2restrictionMatrix
+model2restrictionMatrix.merMod	model2restrictionMatrix
+PBmodcomp	PBmodcomp
+PBmodcomp.lm	PBmodcomp
+PBmodcomp.mer	PBmodcomp
+PBmodcomp.merMod	PBmodcomp
+PBrefdist	PBrefdist
+PBrefdist.lm	PBrefdist
+PBrefdist.mer	PBrefdist
+PBrefdist.merMod	PBrefdist
+plot.PBmodcomp	pbkrtest-internal
+plot.XXmodcomp	PBmodcomp
+print.KRmodcomp	pbkrtest-internal
+print.PBmodcomp	pbkrtest-internal
+print.summaryPB	pbkrtest-internal
+restrictionMatrix2model	model2restrictionMatrix
+restrictionMatrix2model.lm	model2restrictionMatrix
+restrictionMatrix2model.mer	model2restrictionMatrix
+restrictionMatrix2model.merMod	model2restrictionMatrix
+summary.KRmodcomp	pbkrtest-internal
+summary.PBmodcomp	pbkrtest-internal
+vcovAdj	vcovAdj
+vcovAdj.lmerMod	vcovAdj
+vcovAdj.mer	vcovAdj
+vcovAdj0	vcovAdj
+vcovAdj15	pbkrtest-internal
+vcovAdj15_internal	pbkrtest-internal
+vcovAdj16	pbkrtest-internal
+vcovAdj16_internal	pbkrtest-internal
+vcovAdj2	vcovAdj
+vcovAdj_internal	vcovAdj
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/help/pbkrtest.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/help/pbkrtest.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/data/budworm.txt.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/data/budworm.txt.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/data/beets.txt.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/data/beets.txt.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/CITATION	(revision 2476)
@@ -0,0 +1,20 @@
+citHeader("To cite pbkrtest in publications use:")
+
+citEntry(entry = "Article",
+  title        = "A Kenward-Roger Approximation and Parametric Bootstrap Methods for Tests in Linear Mixed Models -- The {R} Package {pbkrtest}",
+  author       = personList(as.person("Ulrich Halekoh"),
+                   as.person("S{\\o}ren H{\\o}jsgaard")),
+  journal      = "Journal of Statistical Software",
+  year         = "2014",
+  volume       = "59",
+  number       = "9",
+  pages        = "1--30",
+  url          = "http://www.jstatsoft.org/v59/i09/",
+
+  textVersion  =
+  paste("Ulrich Halekoh, S�ren H�jsgaard (2014).",
+        "A Kenward-Roger Approximation and Parametric Bootstrap Methods for Tests in Linear Mixed Models - The R Package pbkrtest.",
+        "Journal of Statistical Software, 59(9), 1-30.",
+        "URL http://www.jstatsoft.org/v59/i09/.")
+)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/pbkrtest/NAMESPACE	(revision 2476)
@@ -0,0 +1,104 @@
+exportPattern("^[^\\.]")
+
+import(lme4)
+importFrom(MASS, ginv)
+
+importFrom(parallel, clusterCall, clusterExport, clusterSetRNGStream)
+
+importClassesFrom(Matrix, Matrix)
+importFrom(Matrix, Matrix, sparseMatrix, rankMatrix)
+importMethodsFrom(Matrix, t, isSymmetric, "%*%", solve, diag, chol, chol2inv, forceSymmetric, "*")
+
+
+importFrom("graphics", "abline", "legend", "lines", "plot")
+importFrom("methods", "as", "is")
+importFrom("stats", "as.formula", "family", "formula", "getCall",
+             "logLik", "model.matrix", "pchisq", "pf", "pgamma",
+             "printCoefmat", "quantile", "simulate", "terms",
+             "update", "update.formula", "var", "vcov")
+
+if(getRversion() >= "3.3.0") importFrom("stats", "sigma")
+
+
+
+S3method( getLRT, mer                          )
+S3method( get_SigmaG, mer                      )
+S3method( KRmodcomp_init, mer                  )
+S3method( KRmodcomp, mer                       )
+S3method( model2restrictionMatrix, mer         )
+S3method( PBmodcomp, mer                       )
+S3method( PBrefdist, mer                       )
+S3method( restrictionMatrix2model, mer         )
+S3method( vcovAdj, mer                         )
+
+
+S3method( as.data.frame, XXmodcomp             )
+S3method( get_ddf_Lb, lmerMod                  )
+S3method( get_Lb_ddf, lmerMod                  )
+S3method( getLRT, lm                           )
+S3method( getLRT, merMod                       )
+S3method( get_SigmaG, lmerMod                  )
+
+S3method( KRmodcomp_init, lmerMod              )
+
+S3method( KRmodcomp, lmerMod                   )
+S3method( model2restrictionMatrix, lm          )
+
+S3method( model2restrictionMatrix, merMod      )
+S3method( PBmodcomp, lm                        )
+
+S3method( PBmodcomp, merMod                    )
+S3method( PBrefdist, lm                        )
+
+S3method( PBrefdist, merMod                    )
+S3method( plot, PBmodcomp                      )
+S3method( print, KRmodcomp                     )
+S3method( print, PBmodcomp                     )
+S3method( print, summaryPB                     )
+S3method( restrictionMatrix2model, lm          )
+
+S3method( restrictionMatrix2model, merMod      )
+S3method( summary, KRmodcomp                   )
+S3method( summary, PBmodcomp                   )
+S3method( vcovAdj, lmerMod                     )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/tests/undoc.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/tests/undoc.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/tests/undoc.R	(revision 2476)
@@ -0,0 +1,4 @@
+require("tools")
+
+(ud4 <- undoc("stats4"))
+stopifnot(sapply(ud4, length) == 0)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/DESCRIPTION	(revision 2476)
@@ -0,0 +1,11 @@
+Package: tools
+Version: 3.3.2
+Priority: base
+Title: Tools for Package Development
+Author: R Core Team
+Maintainer: R Core Team <R-core@r-project.org>
+Description: Tools for package development, administration and documentation.
+License: Part of R 3.3.2
+Suggests: codetools, methods, xml2
+NeedsCompilation: yes
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:31:29 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/html/00Index.html	(revision 2476)
@@ -0,0 +1,428 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Tools for Package Development</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Tools for Package Development
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;tools&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="# "> </a>
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#G">G</a>
+<a href="#H">H</a>
+<a href="#I">I</a>
+<a href="#L">L</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#P">P</a>
+<a href="#Q">Q</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#U">U</a>
+<a href="#V">V</a>
+<a href="#W">W</a>
+<a href="#X">X</a>
+<a href="#misc">misc</a>
+</p>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="tools-package.html">tools-package</a></td>
+<td>Tools for Package Development</td></tr>
+</table>
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="add_datalist.html">add_datalist</a></td>
+<td>Add a 'datalist' File to a Package</td></tr>
+<tr><td style="width: 25%;"><a href="charsets.html">Adobe_glyphs</a></td>
+<td>Conversion Tables between Character Sets</td></tr>
+<tr><td style="width: 25%;"><a href="parse_Rd.html">as.character.Rd</a></td>
+<td>Parse an Rd file</td></tr>
+<tr><td style="width: 25%;"><a href="assertCondition.html">assertCondition</a></td>
+<td>Asserting Error Conditions</td></tr>
+<tr><td style="width: 25%;"><a href="assertCondition.html">assertError</a></td>
+<td>Asserting Error Conditions</td></tr>
+<tr><td style="width: 25%;"><a href="assertCondition.html">assertWarning</a></td>
+<td>Asserting Error Conditions</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="bibstyle.html">bibstyle</a></td>
+<td>Select or define a bibliography style.</td></tr>
+<tr><td style="width: 25%;"><a href="buildVignette.html">buildVignette</a></td>
+<td>Build one vignette</td></tr>
+<tr><td style="width: 25%;"><a href="buildVignettes.html">buildVignettes</a></td>
+<td>List and Build Package Vignettes</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="charsets.html">charset_to_Unicode</a></td>
+<td>Conversion Tables between Character Sets</td></tr>
+<tr><td style="width: 25%;"><a href="QC.html">checkDocFiles</a></td>
+<td>QC Checks for R Code and/or Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="QC.html">checkDocStyle</a></td>
+<td>QC Checks for R Code and/or Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="checkFF.html">checkFF</a></td>
+<td>Check Foreign Function Calls</td></tr>
+<tr><td style="width: 25%;"><a href="checkMD5sums.html">checkMD5sums</a></td>
+<td>Check and Create MD5 Checksum Files</td></tr>
+<tr><td style="width: 25%;"><a href="checkPoFiles.html">checkPoFile</a></td>
+<td>Check translation files for inconsistent format strings.</td></tr>
+<tr><td style="width: 25%;"><a href="checkPoFiles.html">checkPoFiles</a></td>
+<td>Check translation files for inconsistent format strings.</td></tr>
+<tr><td style="width: 25%;"><a href="checkRd.html">checkRd</a></td>
+<td>Check an Rd Object</td></tr>
+<tr><td style="width: 25%;"><a href="checkRdaFiles.html">checkRdaFiles</a></td>
+<td>Report on Details of Saved Images or Re-saves them</td></tr>
+<tr><td style="width: 25%;"><a href="QC.html">checkReplaceFuns</a></td>
+<td>QC Checks for R Code and/or Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="QC.html">checkS3methods</a></td>
+<td>QC Checks for R Code and/or Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="checkTnF.html">checkTnF</a></td>
+<td>Check R Packages or Code for T/F</td></tr>
+<tr><td style="width: 25%;"><a href="checkVignettes.html">checkVignettes</a></td>
+<td>Check Package Vignettes</td></tr>
+<tr><td style="width: 25%;"><a href="check_packages_in_dir.html">check_packages_in_dir</a></td>
+<td>Check Source Packages and Their Reverse Dependencies</td></tr>
+<tr><td style="width: 25%;"><a href="check_packages_in_dir.html">check_packages_in_dir_changes</a></td>
+<td>Check Source Packages and Their Reverse Dependencies</td></tr>
+<tr><td style="width: 25%;"><a href="codoc.html">codoc</a></td>
+<td>Check Code/Documentation Consistency</td></tr>
+<tr><td style="width: 25%;"><a href="codoc.html">codocClasses</a></td>
+<td>Check Code/Documentation Consistency</td></tr>
+<tr><td style="width: 25%;"><a href="codoc.html">codocData</a></td>
+<td>Check Code/Documentation Consistency</td></tr>
+<tr><td style="width: 25%;"><a href="compactPDF.html">compactPDF</a></td>
+<td>Compact PDF Files</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="delimMatch.html">delimMatch</a></td>
+<td>Delimited Pattern Matching</td></tr>
+<tr><td style="width: 25%;"><a href="parseLatex.html">deparseLatex</a></td>
+<td>These experimental functions work with a subset of LaTeX code.</td></tr>
+<tr><td style="width: 25%;"><a href="dependsOnPkgs.html">dependsOnPkgs</a></td>
+<td>Find Reverse Dependencies</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="encoded.html">encoded_text_to_latex</a></td>
+<td>Translate non-ASCII Text to LaTeX Escapes</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="fileutils.html">file_ext</a></td>
+<td>File Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="fileutils.html">file_path_as_absolute</a></td>
+<td>File Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="fileutils.html">file_path_sans_ext</a></td>
+<td>File Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="HTMLlinks.html">findHTMLlinks</a></td>
+<td>Collect HTML Links from Package Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="find_gs_cmd.html">find_gs_cmd</a></td>
+<td>Find a GhostScript Executable</td></tr>
+<tr><td style="width: 25%;"><a href="compactPDF.html">format.compactPDF</a></td>
+<td>Compact PDF Files</td></tr>
+</table>
+
+<h2><a name="G">-- G --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="bibstyle.html">getBibstyle</a></td>
+<td>Select or define a bibliography style.</td></tr>
+<tr><td style="width: 25%;"><a href="getDepList.html">getDepList</a></td>
+<td>Functions to Retrieve Dependency Information</td></tr>
+<tr><td style="width: 25%;"><a href="getVignetteInfo.html">getVignetteInfo</a></td>
+<td>Get information on installed vignettes.</td></tr>
+<tr><td style="width: 25%;"><a href="find_gs_cmd.html">GSC</a></td>
+<td>Find a GhostScript Executable</td></tr>
+</table>
+
+<h2><a name="H">-- H --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="startDynamicHelp.html">help.ports</a></td>
+<td>Start the Dynamic HTML Help System</td></tr>
+<tr><td style="width: 25%;"><a href="HTMLheader.html">HTMLheader</a></td>
+<td>Generate a standard HTML header for R help</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="installFoundDepends.html">installFoundDepends</a></td>
+<td>A function to install unresolved dependencies</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="QC.html">langElts</a></td>
+<td>QC Checks for R Code and/or Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="parseLatex.html">latexToUtf8</a></td>
+<td>These experimental functions work with a subset of LaTeX code.</td></tr>
+<tr><td style="width: 25%;"><a href="fileutils.html">list_files_with_exts</a></td>
+<td>File Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="fileutils.html">list_files_with_type</a></td>
+<td>File Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="loadRdMacros.html">loadPkgRdMacros</a></td>
+<td>Load user-defined Rd help system macros.</td></tr>
+<tr><td style="width: 25%;"><a href="loadRdMacros.html">loadRdMacros</a></td>
+<td>Load user-defined Rd help system macros.</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="makevars.html">makevars_site</a></td>
+<td>User and Site Compilation Variables</td></tr>
+<tr><td style="width: 25%;"><a href="makevars.html">makevars_user</a></td>
+<td>User and Site Compilation Variables</td></tr>
+<tr><td style="width: 25%;"><a href="make_translations_pkg.html">make_translations_pkg</a></td>
+<td>Package the Current Translations in the R sources</td></tr>
+<tr><td style="width: 25%;"><a href="md5sum.html">md5sum</a></td>
+<td>Compute MD5 Checksums</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="QC.html">nonS3methods</a></td>
+<td>QC Checks for R Code and/or Documentation</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="package.dependencies.html">package.dependencies</a></td>
+<td>Check Package Dependencies</td></tr>
+<tr><td style="width: 25%;"><a href="package_dependencies.html">package_dependencies</a></td>
+<td>Computations on the Dependency Hierarchy of Packages</td></tr>
+<tr><td style="width: 25%;"><a href="parseLatex.html">parseLatex</a></td>
+<td>These experimental functions work with a subset of LaTeX code.</td></tr>
+<tr><td style="width: 25%;"><a href="parse_Rd.html">parse_Rd</a></td>
+<td>Parse an Rd file</td></tr>
+<tr><td style="width: 25%;"><a href="getDepList.html">pkgDepends</a></td>
+<td>Functions to Retrieve Dependency Information</td></tr>
+<tr><td style="width: 25%;"><a href="buildVignettes.html">pkgVignettes</a></td>
+<td>List and Build Package Vignettes</td></tr>
+<tr><td style="width: 25%;"><a href="QC.html">print.checkDocFiles</a></td>
+<td>QC Checks for R Code and/or Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="QC.html">print.checkDocStyle</a></td>
+<td>QC Checks for R Code and/or Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="checkFF.html">print.checkFF</a></td>
+<td>Check Foreign Function Calls</td></tr>
+<tr><td style="width: 25%;"><a href="QC.html">print.checkReplaceFuns</a></td>
+<td>QC Checks for R Code and/or Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="QC.html">print.checkS3methods</a></td>
+<td>QC Checks for R Code and/or Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="checkTnF.html">print.checkTnF</a></td>
+<td>Check R Packages or Code for T/F</td></tr>
+<tr><td style="width: 25%;"><a href="checkVignettes.html">print.checkVignettes</a></td>
+<td>Check Package Vignettes</td></tr>
+<tr><td style="width: 25%;"><a href="codoc.html">print.codoc</a></td>
+<td>Check Code/Documentation Consistency</td></tr>
+<tr><td style="width: 25%;"><a href="codoc.html">print.codocClasses</a></td>
+<td>Check Code/Documentation Consistency</td></tr>
+<tr><td style="width: 25%;"><a href="codoc.html">print.codocData</a></td>
+<td>Check Code/Documentation Consistency</td></tr>
+<tr><td style="width: 25%;"><a href="parse_Rd.html">print.Rd</a></td>
+<td>Parse an Rd file</td></tr>
+<tr><td style="width: 25%;"><a href="undoc.html">print.undoc</a></td>
+<td>Find Undocumented Objects</td></tr>
+<tr><td style="width: 25%;"><a href="pskill.html">pskill</a></td>
+<td>Kill a Process</td></tr>
+<tr><td style="width: 25%;"><a href="psnice.html">psnice</a></td>
+<td>Get or Set the Priority (Niceness) of a Process</td></tr>
+</table>
+
+<h2><a name="Q">-- Q --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="QC.html">QC</a></td>
+<td>QC Checks for R Code and/or Documentation</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Rcmd.html">Rcmd</a></td>
+<td>R CMD Interface</td></tr>
+<tr><td style="width: 25%;"><a href="Rd2HTML.html">Rd2ex</a></td>
+<td>Rd Converters</td></tr>
+<tr><td style="width: 25%;"><a href="Rd2HTML.html">Rd2HTML</a></td>
+<td>Rd Converters</td></tr>
+<tr><td style="width: 25%;"><a href="Rd2HTML.html">Rd2latex</a></td>
+<td>Rd Converters</td></tr>
+<tr><td style="width: 25%;"><a href="Rd2HTML.html">Rd2txt</a></td>
+<td>Rd Converters</td></tr>
+<tr><td style="width: 25%;"><a href="Rd2txt_options.html">Rd2txt_options</a></td>
+<td>Set formatting options for text help</td></tr>
+<tr><td style="width: 25%;"><a href="Rdiff.html">Rdiff</a></td>
+<td>Difference R Output Files</td></tr>
+<tr><td style="width: 25%;"><a href="Rdindex.html">Rdindex</a></td>
+<td>Generate Index from Rd Files</td></tr>
+<tr><td style="width: 25%;"><a href="RdTextFilter.html">RdTextFilter</a></td>
+<td>Select text in an Rd file.</td></tr>
+<tr><td style="width: 25%;"><a href="Rdutils.html">Rd_db</a></td>
+<td>Rd Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="read.00Index.html">read.00Index</a></td>
+<td>Read 00Index-style Files</td></tr>
+<tr><td style="width: 25%;"><a href="checkRdaFiles.html">resaveRdaFiles</a></td>
+<td>Report on Details of Saved Images or Re-saves them</td></tr>
+<tr><td style="width: 25%;"><a href="startDynamicHelp.html">R_DISABLE_HTTPD</a></td>
+<td>Start the Dynamic HTML Help System</td></tr>
+<tr><td style="width: 25%;"><a href="find_gs_cmd.html">R_GSCMD</a></td>
+<td>Find a GhostScript Executable</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="showNonASCII.html">showNonASCII</a></td>
+<td>Pick Out Non-ASCII Characters</td></tr>
+<tr><td style="width: 25%;"><a href="showNonASCII.html">showNonASCIIfile</a></td>
+<td>Pick Out Non-ASCII Characters</td></tr>
+<tr><td style="width: 25%;"><a href="pskill.html">SIGCHLD</a></td>
+<td>Kill a Process</td></tr>
+<tr><td style="width: 25%;"><a href="pskill.html">SIGCONT</a></td>
+<td>Kill a Process</td></tr>
+<tr><td style="width: 25%;"><a href="pskill.html">SIGHUP</a></td>
+<td>Kill a Process</td></tr>
+<tr><td style="width: 25%;"><a href="pskill.html">SIGINT</a></td>
+<td>Kill a Process</td></tr>
+<tr><td style="width: 25%;"><a href="pskill.html">SIGKILL</a></td>
+<td>Kill a Process</td></tr>
+<tr><td style="width: 25%;"><a href="pskill.html">SIGQUIT</a></td>
+<td>Kill a Process</td></tr>
+<tr><td style="width: 25%;"><a href="pskill.html">SIGSTOP</a></td>
+<td>Kill a Process</td></tr>
+<tr><td style="width: 25%;"><a href="pskill.html">SIGTERM</a></td>
+<td>Kill a Process</td></tr>
+<tr><td style="width: 25%;"><a href="pskill.html">SIGTSTP</a></td>
+<td>Kill a Process</td></tr>
+<tr><td style="width: 25%;"><a href="pskill.html">SIGUSR1</a></td>
+<td>Kill a Process</td></tr>
+<tr><td style="width: 25%;"><a href="pskill.html">SIGUSR2</a></td>
+<td>Kill a Process</td></tr>
+<tr><td style="width: 25%;"><a href="startDynamicHelp.html">startDynamicHelp</a></td>
+<td>Start the Dynamic HTML Help System</td></tr>
+<tr><td style="width: 25%;"><a href="check_packages_in_dir.html">summarize_check_packages_in_dir_depends</a></td>
+<td>Check Source Packages and Their Reverse Dependencies</td></tr>
+<tr><td style="width: 25%;"><a href="check_packages_in_dir.html">summarize_check_packages_in_dir_results</a></td>
+<td>Check Source Packages and Their Reverse Dependencies</td></tr>
+<tr><td style="width: 25%;"><a href="check_packages_in_dir.html">summarize_check_packages_in_dir_timings</a></td>
+<td>Check Source Packages and Their Reverse Dependencies</td></tr>
+<tr><td style="width: 25%;"><a href="SweaveTeXFilter.html">SweaveTeXFilter</a></td>
+<td>Strip R code out of Sweave file</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="testInstalledPackage.html">testInstalledBasic</a></td>
+<td>Test Installed Packages</td></tr>
+<tr><td style="width: 25%;"><a href="testInstalledPackage.html">testInstalledPackage</a></td>
+<td>Test Installed Packages</td></tr>
+<tr><td style="width: 25%;"><a href="testInstalledPackage.html">testInstalledPackages</a></td>
+<td>Test Installed Packages</td></tr>
+<tr><td style="width: 25%;"><a href="testInstalledPackage.html">TEST_MC_CORES</a></td>
+<td>Test Installed Packages</td></tr>
+<tr><td style="width: 25%;"><a href="texi2dvi.html">texi2dvi</a></td>
+<td>Compile LaTeX Files</td></tr>
+<tr><td style="width: 25%;"><a href="texi2dvi.html">texi2pdf</a></td>
+<td>Compile LaTeX Files</td></tr>
+<tr><td style="width: 25%;"><a href="toHTML.html">toHTML</a></td>
+<td>Display an object in HTML.</td></tr>
+<tr><td style="width: 25%;"><a href="toHTML.html">toHTML.news_db</a></td>
+<td>Display an object in HTML.</td></tr>
+<tr><td style="width: 25%;"><a href="toHTML.html">toHTML.packageIQR</a></td>
+<td>Display an object in HTML.</td></tr>
+<tr><td style="width: 25%;"><a href="tools-package.html">tools</a></td>
+<td>Tools for Package Development</td></tr>
+<tr><td style="width: 25%;"><a href="tools-deprecated.html">tools-deprecated</a></td>
+<td>Deprecated Objects in Package 'tools'</td></tr>
+<tr><td style="width: 25%;"><a href="toRd.html">toRd</a></td>
+<td>Generic function to convert object to a fragment of Rd code.</td></tr>
+<tr><td style="width: 25%;"><a href="toRd.html">toRd.bibentry</a></td>
+<td>Generic function to convert object to a fragment of Rd code.</td></tr>
+<tr><td style="width: 25%;"><a href="toRd.html">toRd.default</a></td>
+<td>Generic function to convert object to a fragment of Rd code.</td></tr>
+<tr><td style="width: 25%;"><a href="toTitleCase.html">toTitleCase</a></td>
+<td>Convert Titles to Title Case</td></tr>
+</table>
+
+<h2><a name="U">-- U --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="undoc.html">undoc</a></td>
+<td>Find Undocumented Objects</td></tr>
+<tr><td style="width: 25%;"><a href="update_pkg_po.html">update_pkg_po</a></td>
+<td>Prepare Translations for a Package</td></tr>
+</table>
+
+<h2><a name="V">-- V --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="vignetteDepends.html">vignetteDepends</a></td>
+<td>Retrieve Dependency Information for a Vignette</td></tr>
+<tr><td style="width: 25%;"><a href="vignetteEngine.html">vignetteEngine</a></td>
+<td>Set or Get a Vignette Processing Engine</td></tr>
+</table>
+
+<h2><a name="W">-- W --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="writePACKAGES.html">write_PACKAGES</a></td>
+<td>Generate PACKAGES files</td></tr>
+</table>
+
+<h2><a name="X">-- X --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="xgettext.html">xgettext</a></td>
+<td>Extract Translatable Messages from R Files in a Package</td></tr>
+<tr><td style="width: 25%;"><a href="xgettext.html">xgettext2pot</a></td>
+<td>Extract Translatable Messages from R Files in a Package</td></tr>
+<tr><td style="width: 25%;"><a href="xgettext.html">xngettext</a></td>
+<td>Extract Translatable Messages from R Files in a Package</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="print.via.format.html">.print.via.format</a></td>
+<td>Printing Utilities</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/INDEX	(revision 2476)
@@ -0,0 +1,70 @@
+.print.via.format       Printing Utilities
+Adobe_glyphs            Conversion Tables between Character Sets
+HTMLheader              Generate a standard HTML header for R help
+QC                      QC Checks for R Code and/or Documentation
+Rcmd                    R CMD Interface
+Rd2HTML                 Rd Converters
+Rd2txt_options          Set formatting options for text help
+RdTextFilter            Select text in an Rd file.
+Rd_db                   Rd Utilities
+Rdiff                   Difference R Output Files
+Rdindex                 Generate Index from Rd Files
+SweaveTeXFilter         Strip R code out of Sweave file
+add_datalist            Add a 'datalist' File to a Package
+assertCondition         Asserting Error Conditions
+bibstyle                Select or define a bibliography style.
+buildVignette           Build one vignette
+buildVignettes          List and Build Package Vignettes
+checkFF                 Check Foreign Function Calls
+checkMD5sums            Check and Create MD5 Checksum Files
+checkPoFiles            Check translation files for inconsistent format
+                        strings.
+checkRd                 Check an Rd Object
+checkRdaFiles           Report on Details of Saved Images or Re-saves
+                        them
+checkTnF                Check R Packages or Code for T/F
+checkVignettes          Check Package Vignettes
+check_packages_in_dir   Check Source Packages and Their Reverse
+                        Dependencies
+codoc                   Check Code/Documentation Consistency
+compactPDF              Compact PDF Files
+delimMatch              Delimited Pattern Matching
+dependsOnPkgs           Find Reverse Dependencies
+encoded_text_to_latex   Translate non-ASCII Text to LaTeX Escapes
+file_ext                File Utilities
+findHTMLlinks           Collect HTML Links from Package Documentation
+find_gs_cmd             Find a GhostScript Executable
+getDepList              Functions to Retrieve Dependency Information
+getVignetteInfo         Get information on installed vignettes.
+installFoundDepends     A function to install unresolved dependencies
+loadRdMacros            Load user-defined Rd help system macros.
+make_translations_pkg   Package the Current Translations in the R
+                        sources
+makevars_user           User and Site Compilation Variables
+md5sum                  Compute MD5 Checksums
+package.dependencies    Check Package Dependencies
+package_dependencies    Computations on the Dependency Hierarchy of
+                        Packages
+parseLatex              These experimental functions work with a subset
+                        of LaTeX code.
+parse_Rd                Parse an Rd file
+pskill                  Kill a Process
+psnice                  Get or Set the Priority (Niceness) of a Process
+read.00Index            Read 00Index-style Files
+showNonASCII            Pick Out Non-ASCII Characters
+startDynamicHelp        Start the Dynamic HTML Help System
+testInstalledPackage    Test Installed Packages
+texi2dvi                Compile LaTeX Files
+toHTML                  Display an object in HTML.
+toRd                    Generic function to convert object to a
+                        fragment of Rd code.
+toTitleCase             Convert Titles to Title Case
+tools-deprecated        Deprecated Objects in Package 'tools'
+tools-package           Tools for Package Development
+undoc                   Find Undocumented Objects
+update_pkg_po           Prepare Translations for a Package
+vignetteDepends         Retrieve Dependency Information for a Vignette
+vignetteEngine          Set or Get a Vignette Processing Engine
+write_PACKAGES          Generate PACKAGES files
+xgettext                Extract Translatable Messages from R Files in a
+                        Package
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/help/AnIndex	(revision 2476)
@@ -0,0 +1,139 @@
+tools-package	tools-package
+.print.via.format	print.via.format
+add_datalist	add_datalist
+Adobe_glyphs	charsets
+as.character.Rd	parse_Rd
+assertCondition	assertCondition
+assertError	assertCondition
+assertWarning	assertCondition
+bibstyle	bibstyle
+buildVignette	buildVignette
+buildVignettes	buildVignettes
+charset_to_Unicode	charsets
+checkDocFiles	QC
+checkDocStyle	QC
+checkFF	checkFF
+checkMD5sums	checkMD5sums
+checkNEWS	tools-defunct
+checkPoFile	checkPoFiles
+checkPoFiles	checkPoFiles
+checkRd	checkRd
+checkRdaFiles	checkRdaFiles
+checkReplaceFuns	QC
+checkS3methods	QC
+checkTnF	checkTnF
+checkVignettes	checkVignettes
+check_packages_in_dir	check_packages_in_dir
+check_packages_in_dir_changes	check_packages_in_dir
+codoc	codoc
+codocClasses	codoc
+codocData	codoc
+compactPDF	compactPDF
+delimMatch	delimMatch
+deparseLatex	parseLatex
+dependsOnPkgs	dependsOnPkgs
+encoded_text_to_latex	encoded
+file_ext	fileutils
+file_path_as_absolute	fileutils
+file_path_sans_ext	fileutils
+findHTMLlinks	HTMLlinks
+find_gs_cmd	find_gs_cmd
+format.compactPDF	compactPDF
+getBibstyle	bibstyle
+getDepList	getDepList
+getVignetteInfo	getVignetteInfo
+GSC	find_gs_cmd
+help.ports	startDynamicHelp
+HTMLheader	HTMLheader
+installFoundDepends	installFoundDepends
+langElts	QC
+latexToUtf8	parseLatex
+list_files_with_exts	fileutils
+list_files_with_type	fileutils
+loadPkgRdMacros	loadRdMacros
+loadRdMacros	loadRdMacros
+makeLazyLoading	makeLazyLoading
+makevars_site	makevars
+makevars_user	makevars
+make_translations_pkg	make_translations_pkg
+md5sum	md5sum
+nonS3methods	QC
+package.dependencies	package.dependencies
+package_dependencies	package_dependencies
+parseLatex	parseLatex
+parse_Rd	parse_Rd
+pkgDepends	getDepList
+pkgVignettes	buildVignettes
+print.checkDocFiles	QC
+print.checkDocStyle	QC
+print.checkFF	checkFF
+print.checkReplaceFuns	QC
+print.checkS3methods	QC
+print.checkTnF	checkTnF
+print.checkVignettes	checkVignettes
+print.codoc	codoc
+print.codocClasses	codoc
+print.codocData	codoc
+print.Rd	parse_Rd
+print.undoc	undoc
+pskill	pskill
+psnice	psnice
+QC	QC
+Rcmd	Rcmd
+Rd2ex	Rd2HTML
+Rd2HTML	Rd2HTML
+Rd2latex	Rd2HTML
+Rd2txt	Rd2HTML
+Rd2txt_options	Rd2txt_options
+Rdiff	Rdiff
+Rdindex	Rdindex
+RdTextFilter	RdTextFilter
+Rd_db	Rdutils
+Rd_parse	tools-defunct
+read.00Index	read.00Index
+readNEWS	tools-defunct
+resaveRdaFiles	checkRdaFiles
+R_DISABLE_HTTPD	startDynamicHelp
+R_GSCMD	find_gs_cmd
+showNonASCII	showNonASCII
+showNonASCIIfile	showNonASCII
+SIGCHLD	pskill
+SIGCONT	pskill
+SIGHUP	pskill
+SIGINT	pskill
+SIGKILL	pskill
+SIGQUIT	pskill
+SIGSTOP	pskill
+SIGTERM	pskill
+SIGTSTP	pskill
+SIGUSR1	pskill
+SIGUSR2	pskill
+startDynamicHelp	startDynamicHelp
+summarize_check_packages_in_dir_depends	check_packages_in_dir
+summarize_check_packages_in_dir_results	check_packages_in_dir
+summarize_check_packages_in_dir_timings	check_packages_in_dir
+SweaveTeXFilter	SweaveTeXFilter
+testInstalledBasic	testInstalledPackage
+testInstalledPackage	testInstalledPackage
+testInstalledPackages	testInstalledPackage
+TEST_MC_CORES	testInstalledPackage
+texi2dvi	texi2dvi
+texi2pdf	texi2dvi
+toHTML	toHTML
+toHTML.news_db	toHTML
+toHTML.packageIQR	toHTML
+tools	tools-package
+tools-defunct	tools-defunct
+tools-deprecated	tools-deprecated
+toRd	toRd
+toRd.bibentry	toRd
+toRd.default	toRd
+toTitleCase	toTitleCase
+undoc	undoc
+update_pkg_po	update_pkg_po
+vignetteDepends	vignetteDepends
+vignetteEngine	vignetteEngine
+write_PACKAGES	writePACKAGES
+xgettext	xgettext
+xgettext2pot	xgettext
+xngettext	xgettext
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/help/tools.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/help/tools.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/help/tools.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/help/tools.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/libs/tools.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/libs/tools.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/NAMESPACE	(revision 2476)
@@ -0,0 +1,179 @@
+useDynLib(tools, .registration = TRUE)
+
+## Bootstrapping R ==> do _not_ import, rather use  ' :: '
+
+export("Adobe_glyphs", "HTMLheader", "Rcmd", "Rd2HTML", "Rd2ex",
+       "Rd2latex", "Rd2txt", "Rd2txt_options", "RdTextFilter", "Rd_db",
+       "Rdiff", "Rdindex", "SweaveTeXFilter", "add_datalist",
+       "assertCondition", "assertError", "assertWarning", "bibstyle",
+       "buildVignette", "buildVignettes", "charset_to_Unicode",
+       "checkDocFiles", "checkDocStyle", "checkFF", "checkMD5sums",
+       "checkNEWS", "checkRd", "checkPoFile", "checkPoFiles",
+       "checkRdaFiles", "checkReplaceFuns", "checkS3methods",
+       "checkTnF", "checkVignettes", "codoc", "codocClasses",
+       "codocData", "compactPDF", "delimMatch", "deparseLatex",
+       "dependsOnPkgs", "encoded_text_to_latex", "file_ext",
+       "file_path_as_absolute", "file_path_sans_ext", "findHTMLlinks",
+       "find_gs_cmd", "getBibstyle", "getVignetteInfo",
+       langElts, "latexToUtf8", "list_files_with_exts",
+       "list_files_with_type", "loadRdMacros", "loadPkgRdMacros",
+       "makevars_site", "makevars_user",
+       nonS3methods,
+       "make_translations_pkg", "md5sum",
+       package.dependencies,# R/package.dependencies.R man/package.dependencies.Rd
+       getDepList, pkgDepends, installFoundDepends,# R/pkgDepends.R man/getDepList.Rd man/installFoundDepends.Rd
+       ## but vignetteDepends() calls  getDepList()
+       "package_dependencies", "parseLatex", "parse_Rd",
+       "pkgVignettes", "pskill", "psnice", "read.00Index", "readNEWS",
+       "resaveRdaFiles", "showNonASCII", "showNonASCIIfile",
+       "startDynamicHelp", "testInstalledBasic",
+       "testInstalledPackage", "testInstalledPackages", "texi2dvi",
+       "texi2pdf", "toHTML", "toRd", "toTitleCase", "undoc",
+       "update_pkg_po", "vignetteDepends", "vignetteEngine",
+       "write_PACKAGES", "xgettext", "xgettext2pot", "xngettext")
+
+export("check_packages_in_dir",
+       "summarize_check_packages_in_dir_depends",
+       "summarize_check_packages_in_dir_results",
+       "summarize_check_packages_in_dir_timings",
+       "check_packages_in_dir_changes")
+
+export(".print.via.format")
+
+exportPattern("^SIG.+")
+
+S3method("[", "pdf_doc")
+S3method("[[", "pdf_doc")
+
+S3method("as.character", "Rd")
+
+S3method("format", "check_Rd_contents")
+S3method("format", "check_Rd_line_widths")
+S3method("format", "check_Rd_metadata")
+S3method("format", "check_Rd_xrefs")
+S3method("format", "check_T_and_F")
+S3method("format", "check_code_usage_in_package")
+S3method("format", "check_compiled_code")
+S3method("format", "check_depdef")
+S3method("format", "check_details")
+S3method("format", "check_doi_db")
+S3method("format", "check_dotInternal")
+S3method("format", "check_make_vars")
+S3method("format", "check_package_CRAN_incoming")
+S3method("format", "check_package_code_assign_to_globalenv")
+S3method("format", "check_package_code_attach")
+S3method("format", "check_package_code_startup_functions")
+S3method("format", "check_package_datasets")
+S3method("format", "check_package_depends")
+S3method("format", "check_package_description2")
+S3method("format", "check_package_description_encoding")
+S3method("format", "check_package_license")
+S3method("format", "check_packages_in_dir_changes")
+S3method("format", "check_packages_used")
+S3method("format", "check_so_symbols")
+S3method("format", "check_nonAPI_calls")
+S3method("format", "check_url_db")
+S3method("format", "checkDocFiles")
+S3method("format", "checkDocStyle")
+S3method("format", "checkFF")
+S3method("format", "checkReplaceFuns")
+S3method("format", "checkS3methods")
+S3method("format", "checkTnF")
+S3method("format", "codocClasses")
+S3method("format", "codocData")
+S3method("format", "compactPDF")
+S3method("format", "subdir_tests")
+S3method("format", "undoc")
+
+S3method("format", "CRAN_package_reverse_dependencies_and_views")
+S3method("format", "summarize_CRAN_check_status")
+
+S3method("format", "pdf_fonts")
+S3method("format", "pdf_info")
+S3method("format", "PDF_Array")
+S3method("format", "PDF_Dictionary")
+S3method("format", "PDF_Indirect_Reference")
+S3method("format", "PDF_Stream")
+S3method("format", "PDF_String")
+
+S3method("length", "pdf_doc")
+
+S3method("names", "pdf_doc")
+
+S3method("print", "LaTeX")
+S3method("print", "Rd")
+S3method("print", "checkDocFiles", .print.via.format)
+S3method("print", "checkDocStyle", .print.via.format)
+S3method("print", "checkFF", .print.via.format)
+S3method("print", "checkRd")
+S3method("print", "checkReplaceFuns", .print.via.format)
+S3method("print", "checkS3methods", .print.via.format)
+S3method("print", "checkTnF", .print.via.format)
+S3method("print", "checkVignettes")
+S3method("print", "codoc")
+S3method("print", "codocClasses", .print.via.format)
+S3method("print", "codocData", .print.via.format)
+S3method("print", "compactPDF", .print.via.format)
+S3method("print", "subdir_tests", .print.via.format)
+S3method("print", "undoc", .print.via.format)
+S3method("print", "xgettext")
+S3method("print", "xngettext")
+
+S3method("print", "pdf_doc")
+S3method("print", "pdf_fonts")
+S3method("print", "pdf_info", .print.via.format)
+S3method("print", "PDF_Array", .print.via.format)
+S3method("print", "PDF_Dictionary", .print.via.format)
+S3method("print", "PDF_Indirect_Reference", .print.via.format)
+S3method("print", "PDF_Keyword")
+S3method("print", "PDF_Name")
+S3method("print", "PDF_Stream", .print.via.format)
+S3method("print", "PDF_String", .print.via.format)
+
+S3method("print", "check_Rd_contents", .print.via.format)
+S3method("print", "check_Rd_line_widths", .print.via.format)
+S3method("print", "check_Rd_metadata", .print.via.format)
+S3method("print", "check_Rd_xrefs", .print.via.format)
+S3method("print", "check_T_and_F", .print.via.format)
+S3method("print", "check_code_usage_in_package", .print.via.format)
+S3method("print", "check_compiled_code", .print.via.format)
+S3method("print", "check_demo_index")
+S3method("print", "check_depdef", .print.via.format)
+S3method("print", "check_details")
+S3method("print", "check_doi_db")
+S3method("print", "check_dotInternal", .print.via.format)
+S3method("print", "check_make_vars", .print.via.format)
+S3method("print", "check_package_CRAN_incoming")
+S3method("print", "check_package_code_assign_to_globalenv", .print.via.format)
+S3method("print", "check_package_code_attach", .print.via.format)
+S3method("print", "check_package_code_data_into_globalenv", .print.via.format)
+S3method("print", "check_package_code_startup_functions", .print.via.format)
+S3method("print", "check_package_code_syntax")
+S3method("print", "check_package_code_unload_functions", .print.via.format)
+S3method("print", "check_package_depends", .print.via.format)
+S3method("print", "check_package_description")
+S3method("print", "check_package_description_encoding", .print.via.format)
+S3method("print", "check_package_license", .print.via.format)
+S3method("print", "check_package_datasets", .print.via.format)
+S3method("print", "check_package_compact_datasets")
+S3method("print", "check_packages_in_dir")
+S3method("print", "check_packages_in_dir_changes")
+S3method("print", "check_packages_used", .print.via.format)
+S3method("print", "check_po_files")
+S3method("print", "check_so_symbols", .print.via.format)
+S3method("print", "check_nonAPI_calls", .print.via.format)
+S3method("print", "check_url_db")
+S3method("print", "check_vignette_index")
+
+S3method("print", "CRAN_package_reverse_dependencies_and_views")
+S3method("print", "summarize_CRAN_check_status")
+
+S3method("summary", "PDF_Dictionary")
+S3method("summary", "PDF_Stream")
+S3method("summary", "check_packages_in_dir")
+
+S3method("toHTML", "news_db")
+S3method("toHTML", "packageIQR")
+
+S3method("toRd", "bibentry")
+S3method("toRd", "default")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/R/sysdata.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/R/sysdata.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/R/tools
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/R/tools	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/R/tools	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/R/sysdata.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/R/sysdata.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/R/tools.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/R/tools.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/R/tools.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/tools/R/tools.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/persp.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/persp.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/persp.R	(revision 2476)
@@ -0,0 +1,86 @@
+### Demos for  persp()  plots   -- things not in  example(persp)
+### -------------------------
+
+require(datasets)
+require(grDevices); require(graphics)
+
+## (1) The Obligatory Mathematical surface.
+##     Rotated sinc function.
+
+x <- seq(-10, 10, length.out = 50)
+y <- x
+rotsinc <- function(x,y)
+{
+    sinc <- function(x) { y <- sin(x)/x ; y[is.na(y)] <- 1; y }
+    10 * sinc( sqrt(x^2+y^2) )
+}
+sinc.exp <- expression(z == Sinc(sqrt(x^2 + y^2)))
+
+z <- outer(x, y, rotsinc)
+
+
+oldpar <- par(bg = "white")
+persp(x, y, z, theta = 30, phi = 30, expand = 0.5, col = "lightblue")
+title(sub=".")## work around persp+plotmath bug
+title(main = sinc.exp)
+
+persp(x, y, z, theta = 30, phi = 30, expand = 0.5, col = "lightblue",
+      ltheta = 120, shade = 0.75, ticktype = "detailed",
+      xlab = "X", ylab = "Y", zlab = "Z")
+title(sub=".")## work around persp+plotmath bug
+title(main = sinc.exp)
+
+
+
+## (2) Visualizing a simple DEM model
+
+z <- 2 * volcano        # Exaggerate the relief
+x <- 10 * (1:nrow(z))   # 10 meter spacing (S to N)
+y <- 10 * (1:ncol(z))   # 10 meter spacing (E to W)
+persp(x, y, z, theta = 120, phi = 15, scale = FALSE, axes = FALSE)
+
+
+## (3) Now something more complex
+##     We border the surface, to make it more "slice like"
+##     and color the top and sides of the surface differently.
+
+z0 <- min(z) - 20
+z <- rbind(z0, cbind(z0, z, z0), z0)
+x <- c(min(x) - 1e-10, x, max(x) + 1e-10)
+y <- c(min(y) - 1e-10, y, max(y) + 1e-10)
+
+fill <- matrix("green3", nrow = nrow(z)-1, ncol = ncol(z)-1)
+fill[ , i2 <- c(1,ncol(fill))] <- "gray"
+fill[i1 <- c(1,nrow(fill)) , ] <- "gray"
+
+par(bg = "lightblue")
+persp(x, y, z, theta = 120, phi = 15, col = fill, scale = FALSE, axes = FALSE)
+title(main = "Maunga Whau\nOne of 50 Volcanoes in the Auckland Region.",
+      font.main = 4)
+
+par(bg = "slategray")
+persp(x, y, z, theta = 135, phi = 30, col = fill, scale = FALSE,
+      ltheta = -120, lphi = 15, shade = 0.65, axes = FALSE)
+## Don't draw the grid lines :  border = NA
+persp(x, y, z, theta = 135, phi = 30, col = "green3", scale = FALSE,
+      ltheta = -120, shade = 0.75, border = NA, box = FALSE)
+
+## `color gradient in the soil' :
+fcol <- fill ; fcol[] <- terrain.colors(nrow(fcol))
+persp(x, y, z, theta = 135, phi = 30, col = fcol, scale = FALSE,
+      ltheta = -120, shade = 0.3, border = NA, box = FALSE)
+
+## `image like' colors on top :
+fcol <- fill
+zi <- volcano[ -1,-1] + volcano[ -1,-61] +
+           volcano[-87,-1] + volcano[-87,-61]  ## / 4
+fcol[-i1,-i2] <-
+    terrain.colors(20)[cut(zi,
+                           stats::quantile(zi, seq(0,1, length.out = 21)),
+                           include.lowest = TRUE)]
+persp(x, y, 2*z, theta = 110, phi = 40, col = fcol, scale = FALSE,
+      ltheta = -120, shade = 0.4, border = NA, box = FALSE)
+
+
+## reset par():
+par(oldpar)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/graphics.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/graphics.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/graphics.R	(revision 2476)
@@ -0,0 +1,145 @@
+#  Copyright (C) 1997-2009 The R Core Team
+
+require(datasets)
+require(grDevices); require(graphics)
+
+## Here is some code which illustrates some of the differences between
+## R and S graphics capabilities.  Note that colors are generally specified
+## by a character string name (taken from the X11 rgb.txt file) and that line
+## textures are given similarly.  The parameter "bg" sets the background
+## parameter for the plot and there is also an "fg" parameter which sets
+## the foreground color.
+
+
+x <- stats::rnorm(50)
+opar <- par(bg = "white")
+plot(x, ann = FALSE, type = "n")
+abline(h = 0, col = gray(.90))
+lines(x, col = "green4", lty = "dotted")
+points(x, bg = "limegreen", pch = 21)
+title(main = "Simple Use of Color In a Plot",
+      xlab = "Just a Whisper of a Label",
+      col.main = "blue", col.lab = gray(.8),
+      cex.main = 1.2, cex.lab = 1.0, font.main = 4, font.lab = 3)
+
+
+## A little color wheel.	 This code just plots equally spaced hues in
+## a pie chart.	If you have a cheap SVGA monitor (like me) you will
+## probably find that numerically equispaced does not mean visually
+## equispaced.  On my display at home, these colors tend to cluster at
+## the RGB primaries.  On the other hand on the SGI Indy at work the
+## effect is near perfect.
+
+par(bg = "gray")
+pie(rep(1,24), col = rainbow(24), radius = 0.9)
+title(main = "A Sample Color Wheel", cex.main = 1.4, font.main = 3)
+title(xlab = "(Use this as a test of monitor linearity)",
+      cex.lab = 0.8, font.lab = 3)
+
+
+## We have already confessed to having these.  This is just showing off X11
+## color names (and the example (from the postscript manual) is pretty "cute".
+
+pie.sales <- c(0.12, 0.3, 0.26, 0.16, 0.04, 0.12)
+names(pie.sales) <- c("Blueberry", "Cherry",
+		      "Apple", "Boston Cream", "Other", "Vanilla Cream")
+pie(pie.sales,
+    col = c("purple","violetred1","green3","cornsilk","cyan","white"))
+title(main = "January Pie Sales", cex.main = 1.8, font.main = 1)
+title(xlab = "(Don't try this at home kids)", cex.lab = 0.8, font.lab = 3)
+
+
+## Boxplots:  I couldn't resist the capability for filling the "box".
+## The use of color seems like a useful addition, it focuses attention
+## on the central bulk of the data.
+
+par(bg="cornsilk")
+n <- 10
+g <- gl(n, 100, n*100)
+x <- rnorm(n*100) + sqrt(as.numeric(g))
+boxplot(split(x,g), col="lavender", notch=TRUE)
+title(main="Notched Boxplots", xlab="Group", font.main=4, font.lab=1)
+
+
+## An example showing how to fill between curves.
+
+par(bg="white")
+n <- 100
+x <- c(0,cumsum(rnorm(n)))
+y <- c(0,cumsum(rnorm(n)))
+xx <- c(0:n, n:0)
+yy <- c(x, rev(y))
+plot(xx, yy, type="n", xlab="Time", ylab="Distance")
+polygon(xx, yy, col="gray")
+title("Distance Between Brownian Motions")
+
+
+## Colored plot margins, axis labels and titles.	 You do need to be
+## careful with these kinds of effects.	It's easy to go completely
+## over the top and you can end up with your lunch all over the keyboard.
+## On the other hand, my market research clients love it.
+
+x <- c(0.00, 0.40, 0.86, 0.85, 0.69, 0.48, 0.54, 1.09, 1.11, 1.73, 2.05, 2.02)
+par(bg="lightgray")
+plot(x, type="n", axes=FALSE, ann=FALSE)
+usr <- par("usr")
+rect(usr[1], usr[3], usr[2], usr[4], col="cornsilk", border="black")
+lines(x, col="blue")
+points(x, pch=21, bg="lightcyan", cex=1.25)
+axis(2, col.axis="blue", las=1)
+axis(1, at=1:12, lab=month.abb, col.axis="blue")
+box()
+title(main= "The Level of Interest in R", font.main=4, col.main="red")
+title(xlab= "1996", col.lab="red")
+
+
+## A filled histogram, showing how to change the font used for the
+## main title without changing the other annotation.
+
+par(bg="cornsilk")
+x <- rnorm(1000)
+hist(x, xlim=range(-4, 4, x), col="lavender", main="")
+title(main="1000 Normal Random Variates", font.main=3)
+
+
+## A scatterplot matrix
+## The good old Iris data (yet again)
+
+pairs(iris[1:4], main="Edgar Anderson's Iris Data", font.main=4, pch=19)
+pairs(iris[1:4], main="Edgar Anderson's Iris Data", pch=21,
+      bg = c("red", "green3", "blue")[unclass(iris$Species)])
+
+
+## Contour plotting
+## This produces a topographic map of one of Auckland's many volcanic "peaks".
+
+x <- 10*1:nrow(volcano)
+y <- 10*1:ncol(volcano)
+lev <- pretty(range(volcano), 10)
+par(bg = "lightcyan")
+pin <- par("pin")
+xdelta <- diff(range(x))
+ydelta <- diff(range(y))
+xscale <- pin[1]/xdelta
+yscale <- pin[2]/ydelta
+scale <- min(xscale, yscale)
+xadd <- 0.5*(pin[1]/scale - xdelta)
+yadd <- 0.5*(pin[2]/scale - ydelta)
+plot(numeric(0), numeric(0),
+     xlim = range(x)+c(-1,1)*xadd, ylim = range(y)+c(-1,1)*yadd,
+     type = "n", ann = FALSE)
+usr <- par("usr")
+rect(usr[1], usr[3], usr[2], usr[4], col="green3")
+contour(x, y, volcano, levels = lev, col="yellow", lty="solid", add=TRUE)
+box()
+title("A Topographic Map of Maunga Whau", font= 4)
+title(xlab = "Meters North", ylab = "Meters West", font= 3)
+mtext("10 Meter Contour Spacing", side=3, line=0.35, outer=FALSE,
+      at = mean(par("usr")[1:2]), cex=0.7, font=3)
+
+## Conditioning plots
+
+par(bg="cornsilk")
+coplot(lat ~ long | depth, data = quakes, pch = 21, bg = "green3")
+
+par(opar)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/image.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/image.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/image.R	(revision 2476)
@@ -0,0 +1,37 @@
+#  Copyright (C) 1997-2009 The R Core Team
+
+require(datasets)
+require(grDevices); require(graphics)
+
+x <- 10*(1:nrow(volcano)); x.at <- seq(100, 800, by=100)
+y <- 10*(1:ncol(volcano)); y.at <- seq(100, 600, by=100)
+
+					# Using Terrain Colors
+
+image(x, y, volcano, col=terrain.colors(100),axes=FALSE)
+contour(x, y, volcano, levels=seq(90, 200, by=5), add=TRUE, col="brown")
+axis(1, at=x.at)
+axis(2, at=y.at)
+box()
+title(main="Maunga Whau Volcano", sub = "col=terrain.colors(100)", font.main=4)
+
+					# Using Heat Colors
+
+image(x, y, volcano, col=heat.colors(100), axes=FALSE)
+contour(x, y, volcano, levels=seq(90, 200, by=5), add=TRUE, col="brown")
+axis(1, at=x.at)
+axis(2, at=y.at)
+box()
+title(main="Maunga Whau Volcano", sub = "col=heat.colors(100)", font.main=4)
+
+					# Using Gray Scale
+
+image(x, y, volcano, col=gray(100:200/200), axes=FALSE)
+contour(x, y, volcano, levels=seq(90, 200, by=5), add=TRUE, col="black")
+axis(1, at=x.at)
+axis(2, at=y.at)
+box()
+title(main="Maunga Whau Volcano \n col=gray(100:200/200)", font.main=4)
+
+## Filled Contours are even nicer sometimes :
+example(filled.contour)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/Japanese.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/Japanese.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/Japanese.R	(revision 2476)
@@ -0,0 +1,716 @@
+#  Copyright (C) 2003-2009 The R Core Team
+
+require(grDevices); require(graphics)
+
+## --- Japanese characters in the Hershey Vector Fonts
+
+######
+# create tables of Japanese characters
+######
+make.table <- function(nr, nc) {
+    opar <- par(mar=rep(0, 4), pty="s")
+    plot(c(0, nc*(10%/%nc) + 1), c(0, -(nr + 1)),
+         type="n", xlab="", ylab="", axes=FALSE)
+    invisible(opar)
+}
+
+get.r <- function(i, nr)   i %% nr + 1
+get.c <- function(i, nr)   i %/% nr + 1
+Esc2 <- function(str)	   paste("\\", str, sep="")
+
+draw.title <- function(title, nc)
+    text((nc*(10%/%nc) + 1)/2, 0, title, font=2)
+
+draw.vf.cell <- function(typeface, fontindex, string, i, nr, raw.string=NULL) {
+    r <- get.r(i, nr)
+    c <- get.c(i, nr)
+    x0 <- 2*(c - 1)
+    if (is.null(raw.string)) raw.string <- Esc2(string)
+    text(x0 + 1.1, -r, raw.string, col="grey")
+    text(x0 + 2,   -r, string, vfont=c(typeface, fontindex))
+    rect(x0 +  .5, -(r - .5), x0 + 2.5, -(r + .5), border="grey")
+}
+
+draw.vf.cell2 <- function(string, alt, i, nr) {
+    r <- get.r(i, nr)
+    c <- get.c(i, nr)
+    x0 <- 3*(c - 1)
+    text(x0 + 1.1, -r, Esc2(string <- Esc2(string)), col="grey")
+    text(x0 + 2.2, -r, Esc2(Esc2(alt)), col="grey", cex=.6)
+    text(x0 + 3,   -r, string, vfont=c("serif", "plain"))
+    rect(x0 +  .5, -(r - .5), x0 + 3.5, -(r + .5), border="grey")
+}
+
+tf <- "serif"
+fi <- "plain"
+nr <- 25
+nc <- 4
+oldpar <- make.table(nr, nc)
+index <- 0
+digits <- c(0:9,"a","b","c","d","e","f")
+draw.title("Hiragana : \\\\#J24nn", nc)
+for (i in 2:7) {
+    for (j in 1:16) {
+	if (!((i == 2 && j == 1) || (i == 7 && j > 4))) {
+	    draw.vf.cell(tf, fi, paste("\\#J24", i, digits[j], sep=""),
+	                 index, nr)
+            index <- index + 1
+	}
+    }
+}
+
+nr <- 25
+nc <- 4
+make.table(nr, nc)
+index <- 0
+digits <- c(0:9,"a","b","c","d","e","f")
+draw.title("Katakana : \\\\#J25nn", nc)
+for (i in 2:7) {
+    for (j in 1:16) {
+	if (!((i == 2 && j == 1) || (i == 7 && j > 7))) {
+	    draw.vf.cell(tf, fi, paste("\\#J25", i, digits[j], sep=""),
+	                 index, nr)
+            index <- index + 1
+	}
+    }
+}
+
+nr <- 26
+nc <- 3
+make.table(nr, nc)
+i <- 0
+draw.title("Kanji (1)", nc)
+draw.vf.cell2("#J3021", "#N0043", i, nr); i <- i + 1
+draw.vf.cell2("#J3026", "#N2829", i, nr); i <- i + 1
+draw.vf.cell2("#J302d", "#N0062", i, nr); i <- i + 1
+draw.vf.cell2("#J3035", "#N0818", i, nr); i <- i + 1
+draw.vf.cell2("#J303f", "#N1802", i, nr); i <- i + 1
+draw.vf.cell2("#J3045", "#N2154", i, nr); i <- i + 1
+draw.vf.cell2("#J304c", "#N0401", i, nr); i <- i + 1
+draw.vf.cell2("#J3057", "#N2107", i, nr); i <- i + 1
+draw.vf.cell2("#J3059", "#N0138", i, nr); i <- i + 1
+draw.vf.cell2("#J305b", "#N3008", i, nr); i <- i + 1
+draw.vf.cell2("#J305e", "#N3579", i, nr); i <- i + 1
+draw.vf.cell2("#J3061", "#N4214", i, nr); i <- i + 1
+draw.vf.cell2("#J306c", "#N0001", i, nr); i <- i + 1
+draw.vf.cell2("#J3070", "#N3294", i, nr); i <- i + 1
+draw.vf.cell2("#J3078", "#N1026", i, nr); i <- i + 1
+draw.vf.cell2("#J307a", "#N1562", i, nr); i <- i + 1
+draw.vf.cell2("#J3122", "#N5006", i, nr); i <- i + 1
+draw.vf.cell2("#J3126", "#N0878", i, nr); i <- i + 1
+draw.vf.cell2("#J3127", "#N1280", i, nr); i <- i + 1
+draw.vf.cell2("#J3129", "#N3673", i, nr); i <- i + 1
+draw.vf.cell2("#J312b", "#N5042", i, nr); i <- i + 1
+draw.vf.cell2("#J3132", "#N2629", i, nr); i <- i + 1
+draw.vf.cell2("#J313b", "#N2973", i, nr); i <- i + 1
+draw.vf.cell2("#J313f", "#N4725", i, nr); i <- i + 1
+draw.vf.cell2("#J3140", "#N5046", i, nr); i <- i + 1
+draw.vf.cell2("#J314a", "#N0130", i, nr); i <- i + 1
+draw.vf.cell2("#J3155", "#N2599", i, nr); i <- i + 1
+draw.vf.cell2("#J315f", "#N0617", i, nr); i <- i + 1
+draw.vf.cell2("#J3173", "#N4733", i, nr); i <- i + 1
+draw.vf.cell2("#J3176", "#N1125", i, nr); i <- i + 1
+draw.vf.cell2("#J3177", "#N2083", i, nr); i <- i + 1
+draw.vf.cell2("#J317e", "#N1504", i, nr); i <- i + 1
+draw.vf.cell2("#J3221", "#N1885", i, nr); i <- i + 1
+draw.vf.cell2("#J3223", "#N2361", i, nr); i <- i + 1
+draw.vf.cell2("#J3226", "#N2922", i, nr); i <- i + 1
+draw.vf.cell2("#J322b", "#N5399", i, nr); i <- i + 1
+draw.vf.cell2("#J322f", "#N0551", i, nr); i <- i + 1
+draw.vf.cell2("#J3235", "#N0260", i, nr); i <- i + 1
+draw.vf.cell2("#J3239", "#N2634", i, nr); i <- i + 1
+draw.vf.cell2("#J323b", "#N5110", i, nr); i <- i + 1
+draw.vf.cell2("#J323c", "#N0009", i, nr); i <- i + 1
+draw.vf.cell2("#J323d", "#N0350", i, nr); i <- i + 1
+draw.vf.cell2("#J323f", "#N0409", i, nr); i <- i + 1
+draw.vf.cell2("#J3241", "#N0422", i, nr); i <- i + 1
+draw.vf.cell2("#J3243", "#N0716", i, nr); i <- i + 1
+draw.vf.cell2("#J3244", "#N0024", i, nr); i <- i + 1
+draw.vf.cell2("#J3246", "#N0058", i, nr); i <- i + 1
+draw.vf.cell2("#J3248", "#N1311", i, nr); i <- i + 1
+draw.vf.cell2("#J324a", "#N3272", i, nr); i <- i + 1
+draw.vf.cell2("#J324c", "#N0107", i, nr); i <- i + 1
+draw.vf.cell2("#J324f", "#N2530", i, nr); i <- i + 1
+draw.vf.cell2("#J3250", "#N2743", i, nr); i <- i + 1
+draw.vf.cell2("#J3256", "#N3909", i, nr); i <- i + 1
+draw.vf.cell2("#J3259", "#N3956", i, nr); i <- i + 1
+draw.vf.cell2("#J3261", "#N4723", i, nr); i <- i + 1
+draw.vf.cell2("#J3267", "#N2848", i, nr); i <- i + 1
+draw.vf.cell2("#J3268", "#N0050", i, nr); i <- i + 1
+draw.vf.cell2("#J3272", "#N4306", i, nr); i <- i + 1
+draw.vf.cell2("#J3273", "#N1028", i, nr); i <- i + 1
+draw.vf.cell2("#J3323", "#N2264", i, nr); i <- i + 1
+draw.vf.cell2("#J3324", "#N2553", i, nr); i <- i + 1
+draw.vf.cell2("#J3326", "#N2998", i, nr); i <- i + 1
+draw.vf.cell2("#J3328", "#N3537", i, nr); i <- i + 1
+draw.vf.cell2("#J332b", "#N4950", i, nr); i <- i + 1
+draw.vf.cell2("#J332d", "#N4486", i, nr); i <- i + 1
+draw.vf.cell2("#J3330", "#N1168", i, nr); i <- i + 1
+draw.vf.cell2("#J3346", "#N1163", i, nr); i <- i + 1
+draw.vf.cell2("#J334b", "#N2254", i, nr); i <- i + 1
+draw.vf.cell2("#J3351", "#N4301", i, nr); i <- i + 1
+draw.vf.cell2("#J3353", "#N4623", i, nr); i <- i + 1
+draw.vf.cell2("#J3357", "#N5088", i, nr); i <- i + 1
+draw.vf.cell2("#J3358", "#N1271", i, nr); i <- i + 1
+draw.vf.cell2("#J335a", "#N2324", i, nr); i <- i + 1
+draw.vf.cell2("#J3364", "#N0703", i, nr); i <- i + 1
+draw.vf.cell2("#J3424", "#N2977", i, nr); i <- i + 1
+draw.vf.cell2("#J3428", "#N1322", i, nr); i <- i + 1
+
+make.table(nr, nc)
+i <- 0
+draw.title("Kanji (2)", nc)
+draw.vf.cell2("#J342c", "#N1466", i, nr); i <- i + 1
+draw.vf.cell2("#J3433", "#N1492", i, nr); i <- i + 1
+draw.vf.cell2("#J3434", "#N0790", i, nr); i <- i + 1
+draw.vf.cell2("#J3436", "#N1731", i, nr); i <- i + 1
+draw.vf.cell2("#J3437", "#N1756", i, nr); i <- i + 1
+draw.vf.cell2("#J3445", "#N2988", i, nr); i <- i + 1
+draw.vf.cell2("#J3449", "#N3416", i, nr); i <- i + 1
+draw.vf.cell2("#J3454", "#N4750", i, nr); i <- i + 1
+draw.vf.cell2("#J3456", "#N4949", i, nr); i <- i + 1
+draw.vf.cell2("#J3458", "#N4958", i, nr); i <- i + 1
+draw.vf.cell2("#J346f", "#N0994", i, nr); i <- i + 1
+draw.vf.cell2("#J3470", "#N1098", i, nr); i <- i + 1
+draw.vf.cell2("#J3476", "#N1496", i, nr); i <- i + 1
+draw.vf.cell2("#J347c", "#N3785", i, nr); i <- i + 1
+draw.vf.cell2("#J3521", "#N2379", i, nr); i <- i + 1
+draw.vf.cell2("#J3522", "#N1582", i, nr); i <- i + 1
+draw.vf.cell2("#J3524", "#N2480", i, nr); i <- i + 1
+draw.vf.cell2("#J3525", "#N2507", i, nr); i <- i + 1
+draw.vf.cell2("#J352d", "#N4318", i, nr); i <- i + 1
+draw.vf.cell2("#J3530", "#N4610", i, nr); i <- i + 1
+draw.vf.cell2("#J3534", "#N5276", i, nr); i <- i + 1
+draw.vf.cell2("#J3535", "#N5445", i, nr); i <- i + 1
+draw.vf.cell2("#J3546", "#N3981", i, nr); i <- i + 1
+draw.vf.cell2("#J3555", "#N4685", i, nr); i <- i + 1
+draw.vf.cell2("#J355a", "#N0154", i, nr); i <- i + 1
+draw.vf.cell2("#J355b", "#N0885", i, nr); i <- i + 1
+draw.vf.cell2("#J355d", "#N1560", i, nr); i <- i + 1
+draw.vf.cell2("#J3565", "#N2941", i, nr); i <- i + 1
+draw.vf.cell2("#J3566", "#N3314", i, nr); i <- i + 1
+draw.vf.cell2("#J3569", "#N3496", i, nr); i <- i + 1
+draw.vf.cell2("#J356d", "#N2852", i, nr); i <- i + 1
+draw.vf.cell2("#J356e", "#N1051", i, nr); i <- i + 1
+draw.vf.cell2("#J356f", "#N1387", i, nr); i <- i + 1
+draw.vf.cell2("#J3575", "#N4109", i, nr); i <- i + 1
+draw.vf.cell2("#J3577", "#N4548", i, nr); i <- i + 1
+draw.vf.cell2("#J357b", "#N5281", i, nr); i <- i + 1
+draw.vf.cell2("#J357e", "#N0295", i, nr); i <- i + 1
+draw.vf.cell2("#J3621", "#N0431", i, nr); i <- i + 1
+draw.vf.cell2("#J3626", "#N0581", i, nr); i <- i + 1
+draw.vf.cell2("#J362d", "#N1135", i, nr); i <- i + 1
+draw.vf.cell2("#J362f", "#N1571", i, nr); i <- i + 1
+draw.vf.cell2("#J3635", "#N2052", i, nr); i <- i + 1
+draw.vf.cell2("#J3636", "#N2378", i, nr); i <- i + 1
+draw.vf.cell2("#J364a", "#N0103", i, nr); i <- i + 1
+draw.vf.cell2("#J364b", "#N2305", i, nr); i <- i + 1
+draw.vf.cell2("#J364c", "#N2923", i, nr); i <- i + 1
+draw.vf.cell2("#J3651", "#N1065", i, nr); i <- i + 1
+draw.vf.cell2("#J3661", "#N4671", i, nr); i <- i + 1
+draw.vf.cell2("#J3662", "#N4815", i, nr); i <- i + 1
+draw.vf.cell2("#J3664", "#N4855", i, nr); i <- i + 1
+draw.vf.cell2("#J3665", "#N0146", i, nr); i <- i + 1
+draw.vf.cell2("#J3671", "#N3128", i, nr); i <- i + 1
+draw.vf.cell2("#J3675", "#N3317", i, nr); i <- i + 1
+draw.vf.cell2("#J367e", "#N1386", i, nr); i <- i + 1
+draw.vf.cell2("#J3738", "#N0449", i, nr); i <- i + 1
+draw.vf.cell2("#J3739", "#N0534", i, nr); i <- i + 1
+draw.vf.cell2("#J373e", "#N2937", i, nr); i <- i + 1
+draw.vf.cell2("#J373f", "#N1077", i, nr); i <- i + 1
+draw.vf.cell2("#J3741", "#N1589", i, nr); i <- i + 1
+draw.vf.cell2("#J3742", "#N1602", i, nr); i <- i + 1
+draw.vf.cell2("#J374f", "#N0195", i, nr); i <- i + 1
+draw.vf.cell2("#J3750", "#N3523", i, nr); i <- i + 1
+draw.vf.cell2("#J3757", "#N4312", i, nr); i <- i + 1
+draw.vf.cell2("#J375a", "#N4620", i, nr); i <- i + 1
+draw.vf.cell2("#J3767", "#N2412", i, nr); i <- i + 1
+draw.vf.cell2("#J3768", "#N2509", i, nr); i <- i + 1
+draw.vf.cell2("#J376a", "#N3313", i, nr); i <- i + 1
+draw.vf.cell2("#J376b", "#N3540", i, nr); i <- i + 1
+draw.vf.cell2("#J376c", "#N4205", i, nr); i <- i + 1
+draw.vf.cell2("#J376e", "#N2169", i, nr); i <- i + 1
+draw.vf.cell2("#J3777", "#N1045", i, nr); i <- i + 1
+draw.vf.cell2("#J3824", "#N2868", i, nr); i <- i + 1
+draw.vf.cell2("#J3826", "#N3180", i, nr); i <- i + 1
+draw.vf.cell2("#J3828", "#N3543", i, nr); i <- i + 1
+draw.vf.cell2("#J382b", "#N4284", i, nr); i <- i + 1
+draw.vf.cell2("#J3833", "#N5220", i, nr); i <- i + 1
+
+make.table(nr, nc)
+i <- 0
+draw.title("Kanji (3)", nc)
+draw.vf.cell2("#J3835", "#N0275", i, nr); i <- i + 1
+draw.vf.cell2("#J3836", "#N0825", i, nr); i <- i + 1
+draw.vf.cell2("#J3839", "#N1568", i, nr); i <- i + 1
+draw.vf.cell2("#J383a", "#N2637", i, nr); i <- i + 1
+draw.vf.cell2("#J383b", "#N2656", i, nr); i <- i + 1
+draw.vf.cell2("#J383d", "#N2943", i, nr); i <- i + 1
+draw.vf.cell2("#J3840", "#N4309", i, nr); i <- i + 1
+draw.vf.cell2("#J3842", "#N4987", i, nr); i <- i + 1
+draw.vf.cell2("#J3845", "#N0770", i, nr); i <- i + 1
+draw.vf.cell2("#J3847", "#N1036", i, nr); i <- i + 1
+draw.vf.cell2("#J384c", "#N1567", i, nr); i <- i + 1
+draw.vf.cell2("#J384d", "#N1817", i, nr); i <- i + 1
+draw.vf.cell2("#J384e", "#N2044", i, nr); i <- i + 1
+draw.vf.cell2("#J385d", "#N5415", i, nr); i <- i + 1
+draw.vf.cell2("#J385e", "#N0015", i, nr); i <- i + 1
+draw.vf.cell2("#J3861", "#N0162", i, nr); i <- i + 1
+draw.vf.cell2("#J3865", "#N1610", i, nr); i <- i + 1
+draw.vf.cell2("#J3866", "#N1628", i, nr); i <- i + 1
+draw.vf.cell2("#J386c", "#N4374", i, nr); i <- i + 1
+draw.vf.cell2("#J3872", "#N0290", i, nr); i <- i + 1
+draw.vf.cell2("#J3877", "#N1358", i, nr); i <- i + 1
+draw.vf.cell2("#J3878", "#N0579", i, nr); i <- i + 1
+draw.vf.cell2("#J387d", "#N0868", i, nr); i <- i + 1
+draw.vf.cell2("#J387e", "#N0101", i, nr); i <- i + 1
+draw.vf.cell2("#J3929", "#N1451", i, nr); i <- i + 1
+draw.vf.cell2("#J3931", "#N1683", i, nr); i <- i + 1
+draw.vf.cell2("#J393d", "#N2343", i, nr); i <- i + 1
+draw.vf.cell2("#J3943", "#N0092", i, nr); i <- i + 1
+draw.vf.cell2("#J394d", "#N3684", i, nr); i <- i + 1
+draw.vf.cell2("#J3954", "#N4213", i, nr); i <- i + 1
+draw.vf.cell2("#J3955", "#N1641", i, nr); i <- i + 1
+draw.vf.cell2("#J395b", "#N4843", i, nr); i <- i + 1
+draw.vf.cell2("#J395d", "#N4883", i, nr); i <- i + 1
+draw.vf.cell2("#J395f", "#N4994", i, nr); i <- i + 1
+draw.vf.cell2("#J3960", "#N1459", i, nr); i <- i + 1
+draw.vf.cell2("#J3961", "#N5188", i, nr); i <- i + 1
+draw.vf.cell2("#J3962", "#N5248", i, nr); i <- i + 1
+draw.vf.cell2("#J3966", "#N0882", i, nr); i <- i + 1
+draw.vf.cell2("#J3967", "#N0383", i, nr); i <- i + 1
+draw.vf.cell2("#J3971", "#N1037", i, nr); i <- i + 1
+draw.vf.cell2("#J3975", "#N5403", i, nr); i <- i + 1
+draw.vf.cell2("#J397c", "#N5236", i, nr); i <- i + 1
+draw.vf.cell2("#J397e", "#N4660", i, nr); i <- i + 1
+draw.vf.cell2("#J3a21", "#N2430", i, nr); i <- i + 1
+draw.vf.cell2("#J3a23", "#N0352", i, nr); i <- i + 1
+draw.vf.cell2("#J3a2c", "#N2261", i, nr); i <- i + 1
+draw.vf.cell2("#J3a38", "#N1455", i, nr); i <- i + 1
+draw.vf.cell2("#J3a39", "#N3662", i, nr); i <- i + 1
+draw.vf.cell2("#J3a42", "#N1515", i, nr); i <- i + 1
+draw.vf.cell2("#J3a46", "#N0035", i, nr); i <- i + 1
+draw.vf.cell2("#J3a47", "#N2146", i, nr); i <- i + 1
+draw.vf.cell2("#J3a59", "#N3522", i, nr); i <- i + 1
+draw.vf.cell2("#J3a5f", "#N1055", i, nr); i <- i + 1
+draw.vf.cell2("#J3a6e", "#N0407", i, nr); i <- i + 1
+draw.vf.cell2("#J3a72", "#N2119", i, nr); i <- i + 1
+draw.vf.cell2("#J3a79", "#N2256", i, nr); i <- i + 1
+draw.vf.cell2("#J3b2e", "#N3113", i, nr); i <- i + 1
+draw.vf.cell2("#J3b30", "#N0008", i, nr); i <- i + 1
+draw.vf.cell2("#J3b33", "#N1407", i, nr); i <- i + 1
+draw.vf.cell2("#J3b36", "#N2056", i, nr); i <- i + 1
+draw.vf.cell2("#J3b3b", "#N3415", i, nr); i <- i + 1
+draw.vf.cell2("#J3b40", "#N4789", i, nr); i <- i + 1
+draw.vf.cell2("#J3b45", "#N0362", i, nr); i <- i + 1
+draw.vf.cell2("#J3b4d", "#N1025", i, nr); i <- i + 1
+draw.vf.cell2("#J3b4e", "#N1160", i, nr); i <- i + 1
+draw.vf.cell2("#J3b4f", "#N1208", i, nr); i <- i + 1
+draw.vf.cell2("#J3b52", "#N1264", i, nr); i <- i + 1
+draw.vf.cell2("#J3b54", "#N0284", i, nr); i <- i + 1
+draw.vf.cell2("#J3b57", "#N3001", i, nr); i <- i + 1
+draw.vf.cell2("#J3b58", "#N1904", i, nr); i <- i + 1
+draw.vf.cell2("#J3b59", "#N2039", i, nr); i <- i + 1
+draw.vf.cell2("#J3b5e", "#N2211", i, nr); i <- i + 1
+draw.vf.cell2("#J3b5f", "#N2429", i, nr); i <- i + 1
+draw.vf.cell2("#J3b60", "#N2439", i, nr); i <- i + 1
+draw.vf.cell2("#J3b61", "#N2478", i, nr); i <- i + 1
+draw.vf.cell2("#J3b64", "#N3265", i, nr); i <- i + 1
+
+make.table(nr, nc)
+i <- 0
+draw.title("Kanji (4)", nc)
+draw.vf.cell2("#J3b65", "#N3492", i, nr); i <- i + 1
+draw.vf.cell2("#J3b66", "#N3510", i, nr); i <- i + 1
+draw.vf.cell2("#J3b6a", "#N3845", i, nr); i <- i + 1
+draw.vf.cell2("#J3b73", "#N2435", i, nr); i <- i + 1
+draw.vf.cell2("#J3b75", "#N5428", i, nr); i <- i + 1
+draw.vf.cell2("#J3b76", "#N0272", i, nr); i <- i + 1
+draw.vf.cell2("#J3b7a", "#N1281", i, nr); i <- i + 1
+draw.vf.cell2("#J3b7d", "#N1903", i, nr); i <- i + 1
+draw.vf.cell2("#J3b7e", "#N2126", i, nr); i <- i + 1
+draw.vf.cell2("#J3c21", "#N0638", i, nr); i <- i + 1
+draw.vf.cell2("#J3c27", "#N3209", i, nr); i <- i + 1
+draw.vf.cell2("#J3c28", "#N3228", i, nr); i <- i + 1
+draw.vf.cell2("#J3c2a", "#N3697", i, nr); i <- i + 1
+draw.vf.cell2("#J3c2b", "#N3841", i, nr); i <- i + 1
+draw.vf.cell2("#J3c2d", "#N3860", i, nr); i <- i + 1
+draw.vf.cell2("#J3c2f", "#N5375", i, nr); i <- i + 1
+draw.vf.cell2("#J3c30", "#N1556", i, nr); i <- i + 1
+draw.vf.cell2("#J3c34", "#N4619", i, nr); i <- i + 1
+draw.vf.cell2("#J3c37", "#N0261", i, nr); i <- i + 1
+draw.vf.cell2("#J3c3c", "#N1300", i, nr); i <- i + 1
+draw.vf.cell2("#J3c3e", "#N2631", i, nr); i <- i + 1
+draw.vf.cell2("#J3c41", "#N4518", i, nr); i <- i + 1
+draw.vf.cell2("#J3c42", "#N1297", i, nr); i <- i + 1
+draw.vf.cell2("#J3c4d", "#N4603", i, nr); i <- i + 1
+draw.vf.cell2("#J3c50", "#N2074", i, nr); i <- i + 1
+draw.vf.cell2("#J3c54", "#N3685", i, nr); i <- i + 1
+draw.vf.cell2("#J3c56", "#N4608", i, nr); i <- i + 1
+draw.vf.cell2("#J3c5c", "#N1377", i, nr); i <- i + 1
+draw.vf.cell2("#J3c61", "#N4809", i, nr); i <- i + 1
+draw.vf.cell2("#J3c63", "#N3926", i, nr); i <- i + 1
+draw.vf.cell2("#J3c67", "#N0285", i, nr); i <- i + 1
+draw.vf.cell2("#J3c68", "#N3699", i, nr); i <- i + 1
+draw.vf.cell2("#J3c6a", "#N1827", i, nr); i <- i + 1
+draw.vf.cell2("#J3c6f", "#N3295", i, nr); i <- i + 1
+draw.vf.cell2("#J3c72", "#N2573", i, nr); i <- i + 1
+draw.vf.cell2("#J3c73", "#N5186", i, nr); i <- i + 1
+draw.vf.cell2("#J3c7e", "#N0622", i, nr); i <- i + 1
+draw.vf.cell2("#J3d29", "#N3273", i, nr); i <- i + 1
+draw.vf.cell2("#J3d2a", "#N3521", i, nr); i <- i + 1
+draw.vf.cell2("#J3d2e", "#N3863", i, nr); i <- i + 1
+draw.vf.cell2("#J3d39", "#N4798", i, nr); i <- i + 1
+draw.vf.cell2("#J3d3d", "#N0768", i, nr); i <- i + 1
+draw.vf.cell2("#J3d3e", "#N1613", i, nr); i <- i + 1
+draw.vf.cell2("#J3d44", "#N3597", i, nr); i <- i + 1
+draw.vf.cell2("#J3d45", "#N0224", i, nr); i <- i + 1
+draw.vf.cell2("#J3d50", "#N0097", i, nr); i <- i + 1
+draw.vf.cell2("#J3d51", "#N1621", i, nr); i <- i + 1
+draw.vf.cell2("#J3d55", "#N2122", i, nr); i <- i + 1
+draw.vf.cell2("#J3d60", "#N0791", i, nr); i <- i + 1
+draw.vf.cell2("#J3d63", "#N3509", i, nr); i <- i + 1
+draw.vf.cell2("#J3d68", "#N1162", i, nr); i <- i + 1
+draw.vf.cell2("#J3d6b", "#N2138", i, nr); i <- i + 1
+draw.vf.cell2("#J3d71", "#N3719", i, nr); i <- i + 1
+draw.vf.cell2("#J3d77", "#N1185", i, nr); i <- i + 1
+draw.vf.cell2("#J3d7c", "#N4993", i, nr); i <- i + 1
+draw.vf.cell2("#J3e26", "#N0321", i, nr); i <- i + 1
+draw.vf.cell2("#J3e2e", "#N1355", i, nr); i <- i + 1
+draw.vf.cell2("#J3e2f", "#N0166", i, nr); i <- i + 1
+draw.vf.cell2("#J3e3d", "#N2137", i, nr); i <- i + 1
+draw.vf.cell2("#J3e3e", "#N2212", i, nr); i <- i + 1
+draw.vf.cell2("#J3e46", "#N2772", i, nr); i <- i + 1
+draw.vf.cell2("#J3e4b", "#N3192", i, nr); i <- i + 1
+draw.vf.cell2("#J3e4e", "#N3280", i, nr); i <- i + 1
+draw.vf.cell2("#J3e57", "#N1638", i, nr); i <- i + 1
+draw.vf.cell2("#J3e5a", "#N4341", i, nr); i <- i + 1
+draw.vf.cell2("#J3e5d", "#N4472", i, nr); i <- i + 1
+draw.vf.cell2("#J3e65", "#N0798", i, nr); i <- i + 1
+draw.vf.cell2("#J3e68", "#N0223", i, nr); i <- i + 1
+draw.vf.cell2("#J3e6c", "#N1113", i, nr); i <- i + 1
+draw.vf.cell2("#J3e6f", "#N1364", i, nr); i <- i + 1
+draw.vf.cell2("#J3e75", "#N2839", i, nr); i <- i + 1
+draw.vf.cell2("#J3e78", "#N4002", i, nr); i <- i + 1
+draw.vf.cell2("#J3f22", "#N2303", i, nr); i <- i + 1
+draw.vf.cell2("#J3f27", "#N3889", i, nr); i <- i + 1
+draw.vf.cell2("#J3f29", "#N5154", i, nr); i <- i + 1
+draw.vf.cell2("#J3f2d", "#N0403", i, nr); i <- i + 1
+
+make.table(nr, nc)
+i <- 0
+draw.title("Kanji (5)", nc)
+draw.vf.cell2("#J3f34", "#N1645", i, nr); i <- i + 1
+draw.vf.cell2("#J3f36", "#N1920", i, nr); i <- i + 1
+draw.vf.cell2("#J3f37", "#N2080", i, nr); i <- i + 1
+draw.vf.cell2("#J3f39", "#N2301", i, nr); i <- i + 1
+draw.vf.cell2("#J3f3f", "#N0783", i, nr); i <- i + 1
+draw.vf.cell2("#J3f43", "#N3837", i, nr); i <- i + 1
+draw.vf.cell2("#J3f48", "#N4601", i, nr); i <- i + 1
+draw.vf.cell2("#J3f49", "#N4646", i, nr); i <- i + 1
+draw.vf.cell2("#J3f4a", "#N4709", i, nr); i <- i + 1
+draw.vf.cell2("#J3f4c", "#N5055", i, nr); i <- i + 1
+draw.vf.cell2("#J3f4d", "#N0339", i, nr); i <- i + 1
+draw.vf.cell2("#J3f5e", "#N1034", i, nr); i <- i + 1
+draw.vf.cell2("#J3f62", "#N0211", i, nr); i <- i + 1
+draw.vf.cell2("#J3f65", "#N2482", i, nr); i <- i + 1
+draw.vf.cell2("#J3f69", "#N3676", i, nr); i <- i + 1
+draw.vf.cell2("#J3f74", "#N2057", i, nr); i <- i + 1
+draw.vf.cell2("#J402d", "#N1666", i, nr); i <- i + 1
+draw.vf.cell2("#J402e", "#N1799", i, nr); i <- i + 1
+draw.vf.cell2("#J4030", "#N2436", i, nr); i <- i + 1
+draw.vf.cell2("#J4031", "#N2121", i, nr); i <- i + 1
+draw.vf.cell2("#J4032", "#N2143", i, nr); i <- i + 1
+draw.vf.cell2("#J4035", "#N0027", i, nr); i <- i + 1
+draw.vf.cell2("#J4038", "#N2991", i, nr); i <- i + 1
+draw.vf.cell2("#J403e", "#N4273", i, nr); i <- i + 1
+draw.vf.cell2("#J4044", "#N5076", i, nr); i <- i + 1
+draw.vf.cell2("#J4045", "#N5077", i, nr); i <- i + 1
+draw.vf.cell2("#J404e", "#N2108", i, nr); i <- i + 1
+draw.vf.cell2("#J404f", "#N2194", i, nr); i <- i + 1
+draw.vf.cell2("#J4050", "#N3176", i, nr); i <- i + 1
+draw.vf.cell2("#J4051", "#N3306", i, nr); i <- i + 1
+draw.vf.cell2("#J4056", "#N4534", i, nr); i <- i + 1
+draw.vf.cell2("#J405a", "#N0667", i, nr); i <- i + 1
+draw.vf.cell2("#J405c", "#N1951", i, nr); i <- i + 1
+draw.vf.cell2("#J405e", "#N1855", i, nr); i <- i + 1
+draw.vf.cell2("#J4063", "#N5044", i, nr); i <- i + 1
+draw.vf.cell2("#J4064", "#N3539", i, nr); i <- i + 1
+draw.vf.cell2("#J4065", "#N3855", i, nr); i <- i + 1
+draw.vf.cell2("#J4068", "#N0571", i, nr); i <- i + 1
+draw.vf.cell2("#J4069", "#N0156", i, nr); i <- i + 1
+draw.vf.cell2("#J406e", "#N1447", i, nr); i <- i + 1
+draw.vf.cell2("#J4070", "#N1823", i, nr); i <- i + 1
+draw.vf.cell2("#J407e", "#N3580", i, nr); i <- i + 1
+draw.vf.cell2("#J4125", "#N3873", i, nr); i <- i + 1
+draw.vf.cell2("#J4130", "#N0595", i, nr); i <- i + 1
+draw.vf.cell2("#J4133", "#N2770", i, nr); i <- i + 1
+draw.vf.cell2("#J4134", "#N0384", i, nr); i <- i + 1
+draw.vf.cell2("#J4147", "#N3511", i, nr); i <- i + 1
+draw.vf.cell2("#J4148", "#N3520", i, nr); i <- i + 1
+draw.vf.cell2("#J4150", "#N0859", i, nr); i <- i + 1
+draw.vf.cell2("#J4158", "#N1402", i, nr); i <- i + 1
+draw.vf.cell2("#J415b", "#N1728", i, nr); i <- i + 1
+draw.vf.cell2("#J4161", "#N2100", i, nr); i <- i + 1
+draw.vf.cell2("#J416a", "#N2241", i, nr); i <- i + 1
+draw.vf.cell2("#J416d", "#N3567", i, nr); i <- i + 1
+draw.vf.cell2("#J4170", "#N3939", i, nr); i <- i + 1
+draw.vf.cell2("#J4175", "#N4234", i, nr); i <- i + 1
+draw.vf.cell2("#J4176", "#N4539", i, nr); i <- i + 1
+draw.vf.cell2("#J417c", "#N0540", i, nr); i <- i + 1
+draw.vf.cell2("#J417d", "#N1137", i, nr); i <- i + 1
+draw.vf.cell2("#J4224", "#N4701", i, nr); i <- i + 1
+draw.vf.cell2("#J4226", "#N0509", i, nr); i <- i + 1
+draw.vf.cell2("#J422b", "#N0196", i, nr); i <- i + 1
+draw.vf.cell2("#J422c", "#N2632", i, nr); i <- i + 1
+draw.vf.cell2("#J422d", "#N4546", i, nr); i <- i + 1
+draw.vf.cell2("#J422e", "#N4700", i, nr); i <- i + 1
+draw.vf.cell2("#J4233", "#N3544", i, nr); i <- i + 1
+draw.vf.cell2("#J4236", "#N0590", i, nr); i <- i + 1
+draw.vf.cell2("#J4238", "#N1267", i, nr); i <- i + 1
+draw.vf.cell2("#J423e", "#N0361", i, nr); i <- i + 1
+draw.vf.cell2("#J423f", "#N1169", i, nr); i <- i + 1
+draw.vf.cell2("#J4240", "#N1172", i, nr); i <- i + 1
+draw.vf.cell2("#J424a", "#N2313", i, nr); i <- i + 1
+draw.vf.cell2("#J424e", "#N0405", i, nr); i <- i + 1
+draw.vf.cell2("#J4250", "#N2067", i, nr); i <- i + 1
+draw.vf.cell2("#J4256", "#N1743", i, nr); i <- i + 1
+draw.vf.cell2("#J4265", "#N0364", i, nr); i <- i + 1
+
+make.table(nr, nc)
+i <- 0
+draw.title("Kanji (6)", nc)
+draw.vf.cell2("#J4267", "#N1171", i, nr); i <- i + 1
+draw.vf.cell2("#J4268", "#N3385", i, nr); i <- i + 1
+draw.vf.cell2("#J426a", "#N2164", i, nr); i <- i + 1
+draw.vf.cell2("#J426c", "#N2655", i, nr); i <- i + 1
+draw.vf.cell2("#J4274", "#N2503", i, nr); i <- i + 1
+draw.vf.cell2("#J4323", "#N4721", i, nr); i <- i + 1
+draw.vf.cell2("#J432b", "#N4458", i, nr); i <- i + 1
+draw.vf.cell2("#J432f", "#N4384", i, nr); i <- i + 1
+draw.vf.cell2("#J4331", "#N0139", i, nr); i <- i + 1
+draw.vf.cell2("#J433a", "#N1418", i, nr); i <- i + 1
+draw.vf.cell2("#J433b", "#N3172", i, nr); i <- i + 1
+draw.vf.cell2("#J4346", "#N1575", i, nr); i <- i + 1
+draw.vf.cell2("#J434b", "#N2996", i, nr); i <- i + 1
+draw.vf.cell2("#J434d", "#N0488", i, nr); i <- i + 1
+draw.vf.cell2("#J434e", "#N3169", i, nr); i <- i + 1
+draw.vf.cell2("#J434f", "#N1056", i, nr); i <- i + 1
+draw.vf.cell2("#J4356", "#N3644", i, nr); i <- i + 1
+draw.vf.cell2("#J4359", "#N4722", i, nr); i <- i + 1
+draw.vf.cell2("#J435d", "#N3366", i, nr); i <- i + 1
+draw.vf.cell2("#J4362", "#N3325", i, nr); i <- i + 1
+draw.vf.cell2("#J4363", "#N3940", i, nr); i <- i + 1
+draw.vf.cell2("#J4365", "#N3665", i, nr); i <- i + 1
+draw.vf.cell2("#J4366", "#N0081", i, nr); i <- i + 1
+draw.vf.cell2("#J4368", "#N1291", i, nr); i <- i + 1
+draw.vf.cell2("#J436b", "#N0053", i, nr); i <- i + 1
+draw.vf.cell2("#J436c", "#N2236", i, nr); i <- i + 1
+draw.vf.cell2("#J436e", "#N4115", i, nr); i <- i + 1
+draw.vf.cell2("#J442b", "#N3788", i, nr); i <- i + 1
+draw.vf.cell2("#J442c", "#N2702", i, nr); i <- i + 1
+draw.vf.cell2("#J4436", "#N4543", i, nr); i <- i + 1
+draw.vf.cell2("#J4439", "#N4938", i, nr); i <- i + 1
+draw.vf.cell2("#J443b", "#N5340", i, nr); i <- i + 1
+draw.vf.cell2("#J443e", "#N0775", i, nr); i <- i + 1
+draw.vf.cell2("#J444c", "#N4703", i, nr); i <- i + 1
+draw.vf.cell2("#J4463", "#N0406", i, nr); i <- i + 1
+draw.vf.cell2("#J446a", "#N1296", i, nr); i <- i + 1
+draw.vf.cell2("#J446c", "#N1508", i, nr); i <- i + 1
+draw.vf.cell2("#J446d", "#N1514", i, nr); i <- i + 1
+draw.vf.cell2("#J4472", "#N1914", i, nr); i <- i + 1
+draw.vf.cell2("#J4478", "#N3285", i, nr); i <- i + 1
+draw.vf.cell2("#J4479", "#N3581", i, nr); i <- i + 1
+draw.vf.cell2("#J4526", "#N1987", i, nr); i <- i + 1
+draw.vf.cell2("#J452a", "#N3097", i, nr); i <- i + 1
+draw.vf.cell2("#J452f", "#N0931", i, nr); i <- i + 1
+draw.vf.cell2("#J4534", "#N4844", i, nr); i <- i + 1
+draw.vf.cell2("#J4535", "#N0588", i, nr); i <- i + 1
+draw.vf.cell2("#J4537", "#N0016", i, nr); i <- i + 1
+draw.vf.cell2("#J453e", "#N4615", i, nr); i <- i + 1
+draw.vf.cell2("#J4540", "#N0804", i, nr); i <- i + 1
+draw.vf.cell2("#J4544", "#N2994", i, nr); i <- i + 1
+draw.vf.cell2("#J4545", "#N5050", i, nr); i <- i + 1
+draw.vf.cell2("#J454c", "#N1614", i, nr); i <- i + 1
+draw.vf.cell2("#J4559", "#N1511", i, nr); i <- i + 1
+draw.vf.cell2("#J455a", "#N1050", i, nr); i <- i + 1
+draw.vf.cell2("#J455f", "#N1161", i, nr); i <- i + 1
+draw.vf.cell2("#J4561", "#N0665", i, nr); i <- i + 1
+draw.vf.cell2("#J4563", "#N1109", i, nr); i <- i + 1
+draw.vf.cell2("#J4567", "#N0230", i, nr); i <- i + 1
+draw.vf.cell2("#J456c", "#N0213", i, nr); i <- i + 1
+draw.vf.cell2("#J4574", "#N2745", i, nr); i <- i + 1
+draw.vf.cell2("#J4576", "#N1359", i, nr); i <- i + 1
+draw.vf.cell2("#J4579", "#N3396", i, nr); i <- i + 1
+draw.vf.cell2("#J4626", "#N4465", i, nr); i <- i + 1
+draw.vf.cell2("#J4630", "#N0730", i, nr); i <- i + 1
+draw.vf.cell2("#J4631", "#N0619", i, nr); i <- i + 1
+draw.vf.cell2("#J4633", "#N1354", i, nr); i <- i + 1
+draw.vf.cell2("#J463b", "#N4724", i, nr); i <- i + 1
+draw.vf.cell2("#J463c", "#N4853", i, nr); i <- i + 1
+draw.vf.cell2("#J4643", "#N2860", i, nr); i <- i + 1
+draw.vf.cell2("#J4649", "#N4375", i, nr); i <- i + 1
+draw.vf.cell2("#J465e", "#N2160", i, nr); i <- i + 1
+draw.vf.cell2("#J4662", "#N0082", i, nr); i <- i + 1
+draw.vf.cell2("#J466e", "#N0778", i, nr); i <- i + 1
+draw.vf.cell2("#J4671", "#N5038", i, nr); i <- i + 1
+draw.vf.cell2("#J4673", "#N0273", i, nr); i <- i + 1
+draw.vf.cell2("#J4679", "#N3724", i, nr); i <- i + 1
+
+make.table(nr, nc)
+i <- 0
+draw.title("Kanji (7)", nc)
+draw.vf.cell2("#J467c", "#N2097", i, nr); i <- i + 1
+draw.vf.cell2("#J467e", "#N0574", i, nr); i <- i + 1
+draw.vf.cell2("#J4721", "#N1189", i, nr); i <- i + 1
+draw.vf.cell2("#J472e", "#N2797", i, nr); i <- i + 1
+draw.vf.cell2("#J472f", "#N0188", i, nr); i <- i + 1
+draw.vf.cell2("#J4733", "#N2808", i, nr); i <- i + 1
+draw.vf.cell2("#J4734", "#N3472", i, nr); i <- i + 1
+draw.vf.cell2("#J4748", "#N2529", i, nr); i <- i + 1
+draw.vf.cell2("#J474f", "#N5191", i, nr); i <- i + 1
+draw.vf.cell2("#J4769", "#N3275", i, nr); i <- i + 1
+draw.vf.cell2("#J4772", "#N3095", i, nr); i <- i + 1
+draw.vf.cell2("#J477e", "#N5385", i, nr); i <- i + 1
+draw.vf.cell2("#J4821", "#N0049", i, nr); i <- i + 1
+draw.vf.cell2("#J482c", "#N0577", i, nr); i <- i + 1
+draw.vf.cell2("#J482f", "#N3092", i, nr); i <- i + 1
+draw.vf.cell2("#J483e", "#N0132", i, nr); i <- i + 1
+draw.vf.cell2("#J483f", "#N0817", i, nr); i <- i + 1
+draw.vf.cell2("#J4841", "#N1469", i, nr); i <- i + 1
+draw.vf.cell2("#J484c", "#N3865", i, nr); i <- i + 1
+draw.vf.cell2("#J4856", "#N4811", i, nr); i <- i + 1
+draw.vf.cell2("#J4860", "#N1604", i, nr); i <- i + 1
+draw.vf.cell2("#J4866", "#N2470", i, nr); i <- i + 1
+draw.vf.cell2("#J4869", "#N3109", i, nr); i <- i + 1
+draw.vf.cell2("#J4873", "#N5080", i, nr); i <- i + 1
+draw.vf.cell2("#J4874", "#N5152", i, nr); i <- i + 1
+draw.vf.cell2("#J4878", "#N1383", i, nr); i <- i + 1
+draw.vf.cell2("#J4879", "#N1631", i, nr); i <- i + 1
+draw.vf.cell2("#J487e", "#N3658", i, nr); i <- i + 1
+draw.vf.cell2("#J4921", "#N5421", i, nr); i <- i + 1
+draw.vf.cell2("#J492e", "#N3397", i, nr); i <- i + 1
+draw.vf.cell2("#J4934", "#N0033", i, nr); i <- i + 1
+draw.vf.cell2("#J4938", "#N2359", i, nr); i <- i + 1
+draw.vf.cell2("#J4939", "#N0131", i, nr); i <- i + 1
+draw.vf.cell2("#J493d", "#N0108", i, nr); i <- i + 1
+draw.vf.cell2("#J4942", "#N3042", i, nr); i <- i + 1
+draw.vf.cell2("#J4943", "#N3271", i, nr); i <- i + 1
+draw.vf.cell2("#J494a", "#N0923", i, nr); i <- i + 1
+draw.vf.cell2("#J4954", "#N0017", i, nr); i <- i + 1
+draw.vf.cell2("#J495b", "#N1468", i, nr); i <- i + 1
+draw.vf.cell2("#J4963", "#N2832", i, nr); i <- i + 1
+draw.vf.cell2("#J4969", "#N4488", i, nr); i <- i + 1
+draw.vf.cell2("#J4977", "#N5148", i, nr); i <- i + 1
+draw.vf.cell2("#J497d", "#N1484", i, nr); i <- i + 1
+draw.vf.cell2("#J4a23", "#N4255", i, nr); i <- i + 1
+draw.vf.cell2("#J4a26", "#N0173", i, nr); i <- i + 1
+draw.vf.cell2("#J4a2a", "#N2857", i, nr); i <- i + 1
+draw.vf.cell2("#J4a2c", "#N0578", i, nr); i <- i + 1
+draw.vf.cell2("#J4a38", "#N2064", i, nr); i <- i + 1
+draw.vf.cell2("#J4a39", "#N4959", i, nr); i <- i + 1
+draw.vf.cell2("#J4a3f", "#N0026", i, nr); i <- i + 1
+draw.vf.cell2("#J4a42", "#N0589", i, nr); i <- i + 1
+draw.vf.cell2("#J4a44", "#N4945", i, nr); i <- i + 1
+draw.vf.cell2("#J4a46", "#N3461", i, nr); i <- i + 1
+draw.vf.cell2("#J4a50", "#N0511", i, nr); i <- i + 1
+draw.vf.cell2("#J4a51", "#N0306", i, nr); i <- i + 1
+draw.vf.cell2("#J4a52", "#N2842", i, nr); i <- i + 1
+draw.vf.cell2("#J4a55", "#N4661", i, nr); i <- i + 1
+draw.vf.cell2("#J4a6c", "#N2466", i, nr); i <- i + 1
+draw.vf.cell2("#J4a7c", "#N2084", i, nr); i <- i + 1
+draw.vf.cell2("#J4a7d", "#N2082", i, nr); i <- i + 1
+draw.vf.cell2("#J4b21", "#N2535", i, nr); i <- i + 1
+draw.vf.cell2("#J4b26", "#N3749", i, nr); i <- i + 1
+draw.vf.cell2("#J4b4c", "#N0751", i, nr); i <- i + 1
+draw.vf.cell2("#J4b4f", "#N5404", i, nr); i <- i + 1
+draw.vf.cell2("#J4b5c", "#N0096", i, nr); i <- i + 1
+draw.vf.cell2("#J4b63", "#N5390", i, nr); i <- i + 1
+draw.vf.cell2("#J4b68", "#N2467", i, nr); i <- i + 1
+draw.vf.cell2("#J4b74", "#N0855", i, nr); i <- i + 1
+draw.vf.cell2("#J4b7c", "#N0007", i, nr); i <- i + 1
+draw.vf.cell2("#J4c23", "#N0913", i, nr); i <- i + 1
+draw.vf.cell2("#J4c24", "#N0179", i, nr); i <- i + 1
+draw.vf.cell2("#J4c29", "#N1316", i, nr); i <- i + 1
+draw.vf.cell2("#J4c35", "#N2773", i, nr); i <- i + 1
+draw.vf.cell2("#J4c37", "#N3164", i, nr); i <- i + 1
+draw.vf.cell2("#J4c3e", "#N1170", i, nr); i <- i + 1
+draw.vf.cell2("#J4c40", "#N2110", i, nr); i <- i + 1
+
+make.table(nr, nc)
+i <- 0
+draw.title("Kanji (8)", nc)
+draw.vf.cell2("#J4c4c", "#N5087", i, nr); i <- i + 1
+draw.vf.cell2("#J4c53", "#N2473", i, nr); i <- i + 1
+draw.vf.cell2("#J4c5a", "#N2170", i, nr); i <- i + 1
+draw.vf.cell2("#J4c5c", "#N3127", i, nr); i <- i + 1
+draw.vf.cell2("#J4c64", "#N4944", i, nr); i <- i + 1
+draw.vf.cell2("#J4c67", "#N4940", i, nr); i <- i + 1
+draw.vf.cell2("#J4c6b", "#N0298", i, nr); i <- i + 1
+draw.vf.cell2("#J4c70", "#N3168", i, nr); i <- i + 1
+draw.vf.cell2("#J4c72", "#N1598", i, nr); i <- i + 1
+draw.vf.cell2("#J4c74", "#N4074", i, nr); i <- i + 1
+draw.vf.cell2("#J4c78", "#N2233", i, nr); i <- i + 1
+draw.vf.cell2("#J4c7d", "#N2534", i, nr); i <- i + 1
+draw.vf.cell2("#J4d2d", "#N3727", i, nr); i <- i + 1
+draw.vf.cell2("#J4d30", "#N2565", i, nr); i <- i + 1
+draw.vf.cell2("#J4d3a", "#N5030", i, nr); i <- i + 1
+draw.vf.cell2("#J4d3c", "#N1167", i, nr); i <- i + 1
+draw.vf.cell2("#J4d3e", "#N0408", i, nr); i <- i + 1
+draw.vf.cell2("#J4d4f", "#N2659", i, nr); i <- i + 1
+draw.vf.cell2("#J4d51", "#N2993", i, nr); i <- i + 1
+draw.vf.cell2("#J4d53", "#N3656", i, nr); i <- i + 1
+draw.vf.cell2("#J4d55", "#N4001", i, nr); i <- i + 1
+draw.vf.cell2("#J4d57", "#N4274", i, nr); i <- i + 1
+draw.vf.cell2("#J4d5b", "#N5012", i, nr); i <- i + 1
+draw.vf.cell2("#J4d63", "#N3680", i, nr); i <- i + 1
+draw.vf.cell2("#J4d68", "#N0202", i, nr); i <- i + 1
+draw.vf.cell2("#J4d6b", "#N5049", i, nr); i <- i + 1
+draw.vf.cell2("#J4d70", "#N3856", i, nr); i <- i + 1
+draw.vf.cell2("#J4d71", "#N0199", i, nr); i <- i + 1
+draw.vf.cell2("#J4d72", "#N1431", i, nr); i <- i + 1
+draw.vf.cell2("#J4d78", "#N3264", i, nr); i <- i + 1
+draw.vf.cell2("#J4d7d", "#N2942", i, nr); i <- i + 1
+draw.vf.cell2("#J4e24", "#N4813", i, nr); i <- i + 1
+draw.vf.cell2("#J4e25", "#N5040", i, nr); i <- i + 1
+draw.vf.cell2("#J4e26", "#N5005", i, nr); i <- i + 1
+draw.vf.cell2("#J4e28", "#N0319", i, nr); i <- i + 1
+draw.vf.cell2("#J4e29", "#N3343", i, nr); i <- i + 1
+draw.vf.cell2("#J4e2e", "#N2576", i, nr); i <- i + 1
+draw.vf.cell2("#J4e32", "#N3191", i, nr); i <- i + 1
+draw.vf.cell2("#J4e33", "#N3471", i, nr); i <- i + 1
+draw.vf.cell2("#J4e35", "#N5440", i, nr); i <- i + 1
+draw.vf.cell2("#J4e3e", "#N0034", i, nr); i <- i + 1
+draw.vf.cell2("#J4e41", "#N3468", i, nr); i <- i + 1
+draw.vf.cell2("#J4e49", "#N3885", i, nr); i <- i + 1
+draw.vf.cell2("#J4e4c", "#N2141", i, nr); i <- i + 1
+draw.vf.cell2("#J4e4f", "#N0715", i, nr); i <- i + 1
+draw.vf.cell2("#J4e53", "#N2210", i, nr); i <- i + 1
+draw.vf.cell2("#J4e55", "#N2807", i, nr); i <- i + 1
+draw.vf.cell2("#J4e58", "#N4630", i, nr); i <- i + 1
+draw.vf.cell2("#J4e60", "#N5138", i, nr); i <- i + 1
+draw.vf.cell2("#J4e63", "#N0428", i, nr); i <- i + 1
+draw.vf.cell2("#J4e64", "#N0642", i, nr); i <- i + 1
+draw.vf.cell2("#J4e6d", "#N5048", i, nr); i <- i + 1
+draw.vf.cell2("#J4e6e", "#N5056", i, nr); i <- i + 1
+draw.vf.cell2("#J4e73", "#N2438", i, nr); i <- i + 1
+draw.vf.cell2("#J4f22", "#N4702", i, nr); i <- i + 1
+draw.vf.cell2("#J4f27", "#N2750", i, nr); i <- i + 1
+draw.vf.cell2("#J4f29", "#N4561", i, nr); i <- i + 1
+draw.vf.cell2("#J4f37", "#N3683", i, nr); i <- i + 1
+draw.vf.cell2("#J4f3b", "#N0283", i, nr); i <- i + 1
+draw.vf.cell2("#J4f40", "#N4391", i, nr); i <- i + 1
+draw.vf.cell2("#J4f42", "#N3268", i, nr); i <- i + 1
+draw.vf.cell2("#J4f43", "#N4358", i, nr); i <- i + 1
+draw.vf.cell2("#J4f44", "#N0054", i, nr); i <- i + 1
+draw.vf.cell2("#J4f47", "#N1710", i, nr); i <- i + 1
+
+draw.vf.cell2("#J534c", "#N0973", i, nr); i <- i + 1
+draw.vf.cell2("#J5879", "#N1794", i, nr); i <- i + 1
+draw.vf.cell2("#J5960", "#N1942", i, nr); i <- i + 1
+draw.vf.cell2("#J626f", "#N3200", i, nr); i <- i + 1
+draw.vf.cell2("#J6446", "#N3458", i, nr); i <- i + 1
+draw.vf.cell2("#J6647", "#N5083", i, nr); i <- i + 1
+draw.vf.cell2("#J6d55", "#N4633", i, nr); i <- i + 1
+
+par(oldpar)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/Hershey.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/Hershey.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/Hershey.R	(revision 2476)
@@ -0,0 +1,394 @@
+#  Copyright (C) 2003-2009 The R Core Team
+
+#### --- Hershey Vector Fonts ---
+
+require(grDevices); require(graphics)
+
+######
+# create tables of vector font functionality
+######
+make.table <- function(nr, nc) {
+    savepar <- par(mar=rep(0, 4), pty="s")
+    plot(c(0, nc*2 + 1), c(0, -(nr + 1)),
+         type="n", xlab="", ylab="", axes=FALSE)
+    invisible(savepar)
+}
+
+get.r <- function(i, nr)     i %% nr + 1
+get.c <- function(i, nr)     i %/% nr + 1
+
+draw.title <- function(title, i = 0, nr, nc) {
+    r <- get.r(i, nr)
+    c <- get.c(i, nr)
+    text((nc*2 + 1)/2, 0, title, font=2)
+}
+
+draw.sample.cell <- function(typeface, fontindex, string, i, nr) {
+    r <- get.r(i, nr)
+    c <- get.c(i, nr)
+    text(2*(c - 1) + 1, -r, paste(typeface, fontindex))
+    text(2*c, -r, string, vfont=c(typeface, fontindex), cex=1.5)
+    rect(2*(c - 1) + .5, -(r - .5), 2*c + .5, -(r + .5), border="grey")
+}
+
+draw.vf.cell <- function(typeface, fontindex, string, i, nr, raw.string=NULL) {
+    r <- get.r(i, nr)
+    c <- get.c(i, nr)
+    if (is.null(raw.string))
+        raw.string <- paste("\\", string, sep="")
+    text(2*(c - 1) + 1, -r, raw.string, col="grey")
+    text(2*c, -r, string, vfont=c(typeface, fontindex))
+    rect(2*(c - 1) + .5, -(r - .5), (2*c + .5), -(r + .5), border="grey")
+}
+
+nr <- 23
+nc <- 1
+oldpar <- make.table(nr, nc)
+i <- 0
+draw.title("Sample 'a' for each available font", i, nr, nc)
+draw.sample.cell("serif", "plain", "a", i, nr); i <- i + 1
+draw.sample.cell("serif", "italic", "a", i, nr); i <- i + 1
+draw.sample.cell("serif", "bold", "a", i, nr); i <- i + 1
+draw.sample.cell("serif", "bold italic", "a", i, nr); i <- i + 1
+draw.sample.cell("serif", "cyrillic", "\301", i, nr); i <- i + 1
+draw.sample.cell("serif", "oblique cyrillic", "\301", i, nr); i <- i + 1
+draw.sample.cell("serif", "EUC", "a", i, nr); i <- i + 1
+draw.sample.cell("sans serif", "plain", "a", i, nr); i <- i + 1
+draw.sample.cell("sans serif", "italic", "a", i, nr); i <- i + 1
+draw.sample.cell("sans serif", "bold", "a", i, nr); i <- i + 1
+draw.sample.cell("sans serif", "bold italic", "a", i, nr); i <- i + 1
+draw.sample.cell("script", "plain", "a", i, nr); i <- i + 1
+draw.sample.cell("script", "italic", "a", i, nr); i <- i + 1
+draw.sample.cell("script", "bold", "a", i, nr); i <- i + 1
+draw.sample.cell("gothic english", "plain", "a", i, nr); i <- i + 1
+draw.sample.cell("gothic german", "plain", "a", i, nr); i <- i + 1
+draw.sample.cell("gothic italian", "plain", "a", i, nr); i <- i + 1
+draw.sample.cell("serif symbol", "plain", "a", i, nr); i <- i + 1
+draw.sample.cell("serif symbol", "italic", "a", i, nr); i <- i + 1
+draw.sample.cell("serif symbol", "bold", "a", i, nr); i <- i + 1
+draw.sample.cell("serif symbol", "bold italic", "a", i, nr); i <- i + 1
+draw.sample.cell("sans serif symbol", "plain", "a", i, nr); i <- i + 1
+draw.sample.cell("sans serif symbol", "italic", "a", i, nr); i <- i + 1
+
+nr <- 25
+nc <- 6
+tf <- "serif"
+fi <- "plain"
+make.table(nr, nc)
+i <- 0
+draw.title("Symbol (incl. Greek) Escape Sequences", i, nr, nc)
+## Greek alphabet in order
+draw.vf.cell(tf, fi, "\\*A", i, nr); i<-i+1; { "Alpha"}
+draw.vf.cell(tf, fi, "\\*B", i, nr); i<-i+1; { "Beta"}
+draw.vf.cell(tf, fi, "\\*G", i, nr); i<-i+1; { "Gamma"}
+draw.vf.cell(tf, fi, "\\*D", i, nr); i<-i+1; { "Delta"}
+draw.vf.cell(tf, fi, "\\*E", i, nr); i<-i+1; { "Epsilon"}
+draw.vf.cell(tf, fi, "\\*Z", i, nr); i<-i+1; { "Zeta"}
+draw.vf.cell(tf, fi, "\\*Y", i, nr); i<-i+1; { "Eta"}
+draw.vf.cell(tf, fi, "\\*H", i, nr); i<-i+1; { "Theta"}
+draw.vf.cell(tf, fi, "\\*I", i, nr); i<-i+1; { "Iota"}
+draw.vf.cell(tf, fi, "\\*K", i, nr); i<-i+1; { "Kappa"}
+draw.vf.cell(tf, fi, "\\*L", i, nr); i<-i+1; { "Lambda"}
+draw.vf.cell(tf, fi, "\\*M", i, nr); i<-i+1; { "Mu"}
+draw.vf.cell(tf, fi, "\\*N", i, nr); i<-i+1; { "Nu"}
+draw.vf.cell(tf, fi, "\\*C", i, nr); i<-i+1; { "Xi"}
+draw.vf.cell(tf, fi, "\\*O", i, nr); i<-i+1; { "Omicron"}
+draw.vf.cell(tf, fi, "\\*P", i, nr); i<-i+1; { "Pi"}
+draw.vf.cell(tf, fi, "\\*R", i, nr); i<-i+1; { "Rho"}
+draw.vf.cell(tf, fi, "\\*S", i, nr); i<-i+1; { "Sigma"}
+draw.vf.cell(tf, fi, "\\*T", i, nr); i<-i+1; { "Tau"}
+draw.vf.cell(tf, fi, "\\*U", i, nr); i<-i+1; { "Upsilon"}
+draw.vf.cell(tf, fi, "\\+U", i, nr); i<-i+1; { "Upsilon1"}
+draw.vf.cell(tf, fi, "\\*F", i, nr); i<-i+1; { "Phi"}
+draw.vf.cell(tf, fi, "\\*X", i, nr); i<-i+1; { "Chi"}
+draw.vf.cell(tf, fi, "\\*Q", i, nr); i<-i+1; { "Psi"}
+draw.vf.cell(tf, fi, "\\*W", i, nr); i<-i+1; { "Omega"}
+#
+draw.vf.cell(tf, fi, "\\*a", i, nr); i<-i+1; { "alpha"}
+draw.vf.cell(tf, fi, "\\*b", i, nr); i<-i+1; { "beta"}
+draw.vf.cell(tf, fi, "\\*g", i, nr); i<-i+1; { "gamma"}
+draw.vf.cell(tf, fi, "\\*d", i, nr); i<-i+1; { "delta"}
+draw.vf.cell(tf, fi, "\\*e", i, nr); i<-i+1; { "epsilon"}
+draw.vf.cell(tf, fi, "\\*z", i, nr); i<-i+1; { "zeta"}
+draw.vf.cell(tf, fi, "\\*y", i, nr); i<-i+1; { "eta"}
+draw.vf.cell(tf, fi, "\\*h", i, nr); i<-i+1; { "theta"}
+draw.vf.cell(tf, fi, "\\+h", i, nr); i<-i+1; { "theta1"}
+draw.vf.cell(tf, fi, "\\*i", i, nr); i<-i+1; { "iota"}
+draw.vf.cell(tf, fi, "\\*k", i, nr); i<-i+1; { "kappa"}
+draw.vf.cell(tf, fi, "\\*l", i, nr); i<-i+1; { "lambda"}
+draw.vf.cell(tf, fi, "\\*m", i, nr); i<-i+1; { "mu"}
+draw.vf.cell(tf, fi, "\\*n", i, nr); i<-i+1; { "nu"}
+draw.vf.cell(tf, fi, "\\*c", i, nr); i<-i+1; { "xi"}
+draw.vf.cell(tf, fi, "\\*o", i, nr); i<-i+1; { "omicron"}
+draw.vf.cell(tf, fi, "\\*p", i, nr); i<-i+1; { "pi"}
+draw.vf.cell(tf, fi, "\\*r", i, nr); i<-i+1; { "rho"}
+draw.vf.cell(tf, fi, "\\*s", i, nr); i<-i+1; { "sigma"}
+draw.vf.cell(tf, fi, "\\ts", i, nr); i<-i+1; { "sigma1"}
+draw.vf.cell(tf, fi, "\\*t", i, nr); i<-i+1; { "tau"}
+draw.vf.cell(tf, fi, "\\*u", i, nr); i<-i+1; { "upsilon"}
+draw.vf.cell(tf, fi, "\\*f", i, nr); i<-i+1; { "phi"}
+draw.vf.cell(tf, fi, "\\+f", i, nr); i<-i+1; { "phi1"}
+draw.vf.cell(tf, fi, "\\*x", i, nr); i<-i+1; { "chi"}
+draw.vf.cell(tf, fi, "\\*q", i, nr); i<-i+1; { "psi"}
+draw.vf.cell(tf, fi, "\\*w", i, nr); i<-i+1; { "omega"}
+draw.vf.cell(tf, fi, "\\+p", i, nr); i<-i+1; { "omega1"}
+#
+draw.vf.cell(tf, fi, "\\fa", i, nr); i<-i+1; { "universal"}
+draw.vf.cell(tf, fi, "\\te", i, nr); i<-i+1; { "existential"}
+draw.vf.cell(tf, fi, "\\st", i, nr); i<-i+1; { "suchthat"}
+draw.vf.cell(tf, fi, "\\**", i, nr); i<-i+1; { "asteriskmath"}
+draw.vf.cell(tf, fi, "\\=~", i, nr); i<-i+1; { "congruent"}
+draw.vf.cell(tf, fi, "\\tf", i, nr); i<-i+1; { "therefore"}
+draw.vf.cell(tf, fi, "\\pp", i, nr); i<-i+1; { "perpendicular"}
+draw.vf.cell(tf, fi, "\\ul", i, nr); i<-i+1; { "underline"}
+draw.vf.cell(tf, fi, "\\rx", i, nr); i<-i+1; { "radicalex"}
+
+draw.vf.cell(tf, fi, "\\ap", i, nr); i<-i+1; { "similar"}
+draw.vf.cell(tf, fi, "\\fm", i, nr); i<-i+1; { "minute"}
+draw.vf.cell(tf, fi, "\\<=", i, nr); i<-i+1; { "lessequal"}
+draw.vf.cell(tf, fi, "\\f/", i, nr); i<-i+1; { "fraction"}
+draw.vf.cell(tf, fi, "\\if", i, nr); i<-i+1; { "infinity"}
+draw.vf.cell(tf, fi, "\\Fn", i, nr); i<-i+1; { "florin"}
+draw.vf.cell(tf, fi, "\\CL", i, nr); i<-i+1; { "club"}
+draw.vf.cell(tf, fi, "\\DI", i, nr); i<-i+1; { "diamond"}
+draw.vf.cell(tf, fi, "\\HE", i, nr); i<-i+1; { "heart"}
+draw.vf.cell(tf, fi, "\\SP", i, nr); i<-i+1; { "spade"}
+draw.vf.cell(tf, fi, "\\<>", i, nr); i<-i+1; { "arrowboth"}
+draw.vf.cell(tf, fi, "\\<-", i, nr); i<-i+1; { "arrowleft"}
+draw.vf.cell(tf, fi, "\\ua", i, nr); i<-i+1; { "arrowup"}
+draw.vf.cell(tf, fi, "\\->", i, nr); i<-i+1; { "arrowright"}
+draw.vf.cell(tf, fi, "\\da", i, nr); i<-i+1; { "arrowdown"}
+draw.vf.cell(tf, fi, "\\de", i, nr); i<-i+1; { "degree"}
+draw.vf.cell(tf, fi, "\\+-", i, nr); i<-i+1; { "plusminus"}
+draw.vf.cell(tf, fi, "\\sd", i, nr); i<-i+1; { "second"}
+draw.vf.cell(tf, fi, "\\>=", i, nr); i<-i+1; { "greaterequal"}
+draw.vf.cell(tf, fi, "\\mu", i, nr); i<-i+1; { "multiply"}
+draw.vf.cell(tf, fi, "\\pt", i, nr); i<-i+1; { "proportional"}
+draw.vf.cell(tf, fi, "\\pd", i, nr); i<-i+1; { "partialdiff"}
+draw.vf.cell(tf, fi, "\\bu", i, nr); i<-i+1; { "bullet"}
+draw.vf.cell(tf, fi, "\\di", i, nr); i<-i+1; { "divide"}
+draw.vf.cell(tf, fi, "\\!=", i, nr); i<-i+1; { "notequal"}
+draw.vf.cell(tf, fi, "\\==", i, nr); i<-i+1; { "equivalence"}
+draw.vf.cell(tf, fi, "\\~~", i, nr); i<-i+1; { "approxequal"}
+draw.vf.cell(tf, fi, "\\..", i, nr); i<-i+1; { "ellipsis"}
+draw.vf.cell(tf, fi, "\\an", i, nr); i<-i+1; { "arrowhorizex"}
+draw.vf.cell(tf, fi, "\\CR", i, nr); i<-i+1; { "carriagereturn"}
+draw.vf.cell(tf, fi, "\\Ah", i, nr); i<-i+1; { "aleph"}
+draw.vf.cell(tf, fi, "\\Im", i, nr); i<-i+1; { "Ifraktur"}
+draw.vf.cell(tf, fi, "\\Re", i, nr); i<-i+1; { "Rfraktur"}
+draw.vf.cell(tf, fi, "\\wp", i, nr); i<-i+1; { "weierstrass"}
+draw.vf.cell(tf, fi, "\\c*", i, nr); i<-i+1; { "circlemultiply"}
+draw.vf.cell(tf, fi, "\\c+", i, nr); i<-i+1; { "circleplus"}
+draw.vf.cell(tf, fi, "\\es", i, nr); i<-i+1; { "emptyset"}
+draw.vf.cell(tf, fi, "\\ca", i, nr); i<-i+1; { "cap"}
+draw.vf.cell(tf, fi, "\\cu", i, nr); i<-i+1; { "cup"}
+draw.vf.cell(tf, fi, "\\SS", i, nr); i<-i+1; { "superset"}
+draw.vf.cell(tf, fi, "\\ip", i, nr); i<-i+1; { "reflexsuperset"}
+draw.vf.cell(tf, fi, "\\n<", i, nr); i<-i+1; { "notsubset"}
+draw.vf.cell(tf, fi, "\\SB", i, nr); i<-i+1; { "subset"}
+draw.vf.cell(tf, fi, "\\ib", i, nr); i<-i+1; { "reflexsubset"}
+draw.vf.cell(tf, fi, "\\mo", i, nr); i<-i+1; { "element"}
+draw.vf.cell(tf, fi, "\\nm", i, nr); i<-i+1; { "notelement"}
+draw.vf.cell(tf, fi, "\\/_", i, nr); i<-i+1; { "angle"}
+draw.vf.cell(tf, fi, "\\gr", i, nr); i<-i+1; { "nabla"}
+draw.vf.cell(tf, fi, "\\rg", i, nr); i<-i+1; { "registerserif"}
+draw.vf.cell(tf, fi, "\\co", i, nr); i<-i+1; { "copyrightserif"}
+draw.vf.cell(tf, fi, "\\tm", i, nr); i<-i+1; { "trademarkserif"}
+draw.vf.cell(tf, fi, "\\PR", i, nr); i<-i+1; { "product"}
+draw.vf.cell(tf, fi, "\\sr", i, nr); i<-i+1; { "radical"}
+draw.vf.cell(tf, fi, "\\md", i, nr); i<-i+1; { "dotmath"}
+draw.vf.cell(tf, fi, "\\no", i, nr); i<-i+1; { "logicalnot"}
+draw.vf.cell(tf, fi, "\\AN", i, nr); i<-i+1; { "logicaland"}
+draw.vf.cell(tf, fi, "\\OR", i, nr); i<-i+1; { "logicalor"}
+draw.vf.cell(tf, fi, "\\hA", i, nr); i<-i+1; { "arrowdblboth"}
+draw.vf.cell(tf, fi, "\\lA", i, nr); i<-i+1; { "arrowdblleft"}
+draw.vf.cell(tf, fi, "\\uA", i, nr); i<-i+1; { "arrowdblup"}
+draw.vf.cell(tf, fi, "\\rA", i, nr); i<-i+1; { "arrowdblright"}
+draw.vf.cell(tf, fi, "\\dA", i, nr); i<-i+1; { "arrowdbldown"}
+draw.vf.cell(tf, fi, "\\lz", i, nr); i<-i+1; { "lozenge"}
+draw.vf.cell(tf, fi, "\\la", i, nr); i<-i+1; { "angleleft"}
+draw.vf.cell(tf, fi, "\\RG", i, nr); i<-i+1; { "registersans"}
+draw.vf.cell(tf, fi, "\\CO", i, nr); i<-i+1; { "copyrightsans"}
+draw.vf.cell(tf, fi, "\\TM", i, nr); i<-i+1; { "trademarksans"}
+draw.vf.cell(tf, fi, "\\SU", i, nr); i<-i+1; { "summation"}
+draw.vf.cell(tf, fi, "\\lc", i, nr); i<-i+1; { "bracketlefttp"}
+draw.vf.cell(tf, fi, "\\lf", i, nr); i<-i+1; { "bracketleftbt"}
+draw.vf.cell(tf, fi, "\\ra", i, nr); i<-i+1; { "angleright"}
+draw.vf.cell(tf, fi, "\\is", i, nr); i<-i+1; { "integral"}
+draw.vf.cell(tf, fi, "\\rc", i, nr); i<-i+1; { "bracketrighttp"}
+draw.vf.cell(tf, fi, "\\rf", i, nr); i<-i+1; { "bracketrightbt"}
+draw.vf.cell(tf, fi, "\\~=", i, nr); i<-i+1; { "congruent"}
+draw.vf.cell(tf, fi, "\\pr", i, nr); i<-i+1; { "minute"}
+draw.vf.cell(tf, fi, "\\in", i, nr); i<-i+1; { "infinity"}
+draw.vf.cell(tf, fi, "\\n=", i, nr); i<-i+1; { "notequal"}
+draw.vf.cell(tf, fi, "\\dl", i, nr); i<-i+1; { "nabla"}
+
+nr <- 25
+nc <- 4
+make.table(nr, nc)
+i <- 0
+draw.title("ISO Latin-1 Escape Sequences", i, nr, nc)
+draw.vf.cell(tf, fi, "\\r!", i, nr); i<-i+1; { "exclamdown"}
+draw.vf.cell(tf, fi, "\\ct", i, nr); i<-i+1; { "cent"}
+draw.vf.cell(tf, fi, "\\Po", i, nr); i<-i+1; { "sterling"}
+draw.vf.cell(tf, fi, "\\Ye", i, nr); i<-i+1; { "yen"}
+draw.vf.cell(tf, fi, "\\bb", i, nr); i<-i+1; { "brokenbar"}
+draw.vf.cell(tf, fi, "\\sc", i, nr); i<-i+1; { "section"}
+draw.vf.cell(tf, fi, "\\ad", i, nr); i<-i+1; { "dieresis"}
+draw.vf.cell(tf, fi, "\\co", i, nr); i<-i+1; { "copyright"}
+draw.vf.cell(tf, fi, "\\Of", i, nr); i<-i+1; { "ordfeminine"}
+draw.vf.cell(tf, fi, "\\no", i, nr); i<-i+1; { "logicalnot"}
+draw.vf.cell(tf, fi, "\\hy", i, nr); i<-i+1; { "hyphen"}
+draw.vf.cell(tf, fi, "\\rg", i, nr); i<-i+1; { "registered"}
+draw.vf.cell(tf, fi, "\\a-", i, nr); i<-i+1; { "macron"}
+draw.vf.cell(tf, fi, "\\de", i, nr); i<-i+1; { "degree"}
+draw.vf.cell(tf, fi, "\\+-", i, nr); i<-i+1; { "plusminus"}
+draw.vf.cell(tf, fi, "\\S2", i, nr); i<-i+1; { "twosuperior"}
+draw.vf.cell(tf, fi, "\\S3", i, nr); i<-i+1; { "threesuperior"}
+draw.vf.cell(tf, fi, "\\aa", i, nr); i<-i+1; { "acute"}
+draw.vf.cell(tf, fi, "\\*m", i, nr); i<-i+1; { "mu"}
+draw.vf.cell(tf, fi, "\\md", i, nr); i<-i+1; { "periodcentered"}
+draw.vf.cell(tf, fi, "\\S1", i, nr); i<-i+1; { "onesuperior"}
+draw.vf.cell(tf, fi, "\\Om", i, nr); i<-i+1; { "ordmasculine"}
+draw.vf.cell(tf, fi, "\\14", i, nr); i<-i+1; { "onequarter"}
+draw.vf.cell(tf, fi, "\\12", i, nr); i<-i+1; { "onehalf"}
+draw.vf.cell(tf, fi, "\\34", i, nr); i<-i+1; { "threequarters"}
+draw.vf.cell(tf, fi, "\\r?", i, nr); i<-i+1; { "questiondown"}
+draw.vf.cell(tf, fi, "\\`A", i, nr); i<-i+1; { "Agrave"}
+draw.vf.cell(tf, fi, "\\'A", i, nr); i<-i+1; { "Aacute"}
+draw.vf.cell(tf, fi, "\\^A", i, nr); i<-i+1; { "Acircumflex"}
+draw.vf.cell(tf, fi, "\\~A", i, nr); i<-i+1; { "Atilde"}
+draw.vf.cell(tf, fi, "\\:A", i, nr); i<-i+1; { "Adieresis"}
+draw.vf.cell(tf, fi, "\\oA", i, nr); i<-i+1; { "Aring"}
+draw.vf.cell(tf, fi, "\\AE", i, nr); i<-i+1; { "AE"}
+draw.vf.cell(tf, fi, "\\,C", i, nr); i<-i+1; { "Ccedilla"}
+draw.vf.cell(tf, fi, "\\`E", i, nr); i<-i+1; { "Egrave"}
+draw.vf.cell(tf, fi, "\\'E", i, nr); i<-i+1; { "Eacute"}
+draw.vf.cell(tf, fi, "\\^E", i, nr); i<-i+1; { "Ecircumflex"}
+draw.vf.cell(tf, fi, "\\:E", i, nr); i<-i+1; { "Edieresis"}
+draw.vf.cell(tf, fi, "\\`I", i, nr); i<-i+1; { "Igrave"}
+draw.vf.cell(tf, fi, "\\'I", i, nr); i<-i+1; { "Iacute"}
+draw.vf.cell(tf, fi, "\\^I", i, nr); i<-i+1; { "Icircumflex"}
+draw.vf.cell(tf, fi, "\\:I", i, nr); i<-i+1; { "Idieresis"}
+draw.vf.cell(tf, fi, "\\~N", i, nr); i<-i+1; { "Ntilde"}
+draw.vf.cell(tf, fi, "\\`O", i, nr); i<-i+1; { "Ograve"}
+draw.vf.cell(tf, fi, "\\'O", i, nr); i<-i+1; { "Oacute"}
+draw.vf.cell(tf, fi, "\\^O", i, nr); i<-i+1; { "Ocircumflex"}
+draw.vf.cell(tf, fi, "\\~O", i, nr); i<-i+1; { "Otilde"}
+draw.vf.cell(tf, fi, "\\:O", i, nr); i<-i+1; { "Odieresis"}
+draw.vf.cell(tf, fi, "\\mu", i, nr); i<-i+1; { "multiply"}
+draw.vf.cell(tf, fi, "\\/O", i, nr); i<-i+1; { "Oslash"}
+draw.vf.cell(tf, fi, "\\`U", i, nr); i<-i+1; { "Ugrave"}
+draw.vf.cell(tf, fi, "\\'U", i, nr); i<-i+1; { "Uacute"}
+draw.vf.cell(tf, fi, "\\^U", i, nr); i<-i+1; { "Ucircumflex"}
+draw.vf.cell(tf, fi, "\\:U", i, nr); i<-i+1; { "Udieresis"}
+draw.vf.cell(tf, fi, "\\'Y", i, nr); i<-i+1; { "Yacute"}
+draw.vf.cell(tf, fi, "\\ss", i, nr); i<-i+1; { "germandbls"} # WRONG!
+draw.vf.cell(tf, fi, "\\`a", i, nr); i<-i+1; { "agrave"}
+draw.vf.cell(tf, fi, "\\'a", i, nr); i<-i+1; { "aacute"}
+draw.vf.cell(tf, fi, "\\^a", i, nr); i<-i+1; { "acircumflex"}
+draw.vf.cell(tf, fi, "\\~a", i, nr); i<-i+1; { "atilde"}
+draw.vf.cell(tf, fi, "\\:a", i, nr); i<-i+1; { "adieresis"}
+draw.vf.cell(tf, fi, "\\oa", i, nr); i<-i+1; { "aring"}
+draw.vf.cell(tf, fi, "\\ae", i, nr); i<-i+1; { "ae"}
+draw.vf.cell(tf, fi, "\\,c", i, nr); i<-i+1; { "ccedilla"}
+draw.vf.cell(tf, fi, "\\`e", i, nr); i<-i+1; { "egrave"}
+draw.vf.cell(tf, fi, "\\'e", i, nr); i<-i+1; { "eacute"}
+draw.vf.cell(tf, fi, "\\^e", i, nr); i<-i+1; { "ecircumflex"}
+draw.vf.cell(tf, fi, "\\:e", i, nr); i<-i+1; { "edieresis"}
+draw.vf.cell(tf, fi, "\\`i", i, nr); i<-i+1; { "igrave"}
+draw.vf.cell(tf, fi, "\\'i", i, nr); i<-i+1; { "iacute"}
+draw.vf.cell(tf, fi, "\\^i", i, nr); i<-i+1; { "icircumflex"}
+draw.vf.cell(tf, fi, "\\:i", i, nr); i<-i+1; { "idieresis"}
+draw.vf.cell(tf, fi, "\\~n", i, nr); i<-i+1; { "ntilde"}
+draw.vf.cell(tf, fi, "\\`o", i, nr); i<-i+1; { "ograve"}
+draw.vf.cell(tf, fi, "\\'o", i, nr); i<-i+1; { "oacute"}
+draw.vf.cell(tf, fi, "\\^o", i, nr); i<-i+1; { "ocircumflex"}
+draw.vf.cell(tf, fi, "\\~o", i, nr); i<-i+1; { "otilde"}
+draw.vf.cell(tf, fi, "\\:o", i, nr); i<-i+1; { "odieresis"}
+draw.vf.cell(tf, fi, "\\di", i, nr); i<-i+1; { "divide"}
+draw.vf.cell(tf, fi, "\\/o", i, nr); i<-i+1; { "oslash"}
+draw.vf.cell(tf, fi, "\\`u", i, nr); i<-i+1; { "ugrave"}
+draw.vf.cell(tf, fi, "\\'u", i, nr); i<-i+1; { "uacute"}
+draw.vf.cell(tf, fi, "\\^u", i, nr); i<-i+1; { "ucircumflex"}
+draw.vf.cell(tf, fi, "\\:u", i, nr); i<-i+1; { "udieresis"}
+draw.vf.cell(tf, fi, "\\'y", i, nr); i<-i+1; { "yacute"}
+draw.vf.cell(tf, fi, "\\:y", i, nr); i<-i+1; { "ydieresis"}
+
+nr <- 25
+nc <- 2
+make.table(nr, nc)
+i <- 0
+draw.title("Special Escape Sequences", i, nr, nc)
+draw.vf.cell(tf, fi, "\\AR", i, nr); i<-i+1; { "aries"}
+draw.vf.cell(tf, fi, "\\TA", i, nr); i<-i+1; { "taurus"}
+draw.vf.cell(tf, fi, "\\GE", i, nr); i<-i+1; { "gemini"}
+draw.vf.cell(tf, fi, "\\CA", i, nr); i<-i+1; { "cancer"}
+draw.vf.cell(tf, fi, "\\LE", i, nr); i<-i+1; { "leo"}
+draw.vf.cell(tf, fi, "\\VI", i, nr); i<-i+1; { "virgo"}
+draw.vf.cell(tf, fi, "\\LI", i, nr); i<-i+1; { "libra"}
+draw.vf.cell(tf, fi, "\\SC", i, nr); i<-i+1; { "scorpio"}
+draw.vf.cell(tf, fi, "\\SG", i, nr); i<-i+1; { "sagittarius"}
+draw.vf.cell(tf, fi, "\\CP", i, nr); i<-i+1; { "capricornus"}
+draw.vf.cell(tf, fi, "\\AQ", i, nr); i<-i+1; { "aquarius"}
+draw.vf.cell(tf, fi, "\\PI", i, nr); i<-i+1; { "pisces"}
+draw.vf.cell(tf, fi, "\\~-", i, nr); i<-i+1; { "modifiedcongruent"}
+draw.vf.cell(tf, fi, "\\hb", i, nr); i<-i+1; { "hbar"}
+draw.vf.cell(tf, fi, "\\IB", i, nr); i<-i+1; { "interbang"}
+draw.vf.cell(tf, fi, "\\Lb", i, nr); i<-i+1; { "lambdabar"}
+draw.vf.cell(tf, fi, "\\UD", i, nr); i<-i+1; { "undefined"}
+draw.vf.cell(tf, fi, "\\SO", i, nr); i<-i+1; { "sun"}
+draw.vf.cell(tf, fi, "\\ME", i, nr); i<-i+1; { "mercury"}
+draw.vf.cell(tf, fi, "\\VE", i, nr); i<-i+1; { "venus"}
+draw.vf.cell(tf, fi, "\\EA", i, nr); i<-i+1; { "earth"}
+draw.vf.cell(tf, fi, "\\MA", i, nr); i<-i+1; { "mars"}
+draw.vf.cell(tf, fi, "\\JU", i, nr); i<-i+1; { "jupiter"}
+draw.vf.cell(tf, fi, "\\SA", i, nr); i<-i+1; { "saturn"}
+draw.vf.cell(tf, fi, "\\UR", i, nr); i<-i+1; { "uranus"}
+draw.vf.cell(tf, fi, "\\NE", i, nr); i<-i+1; { "neptune"}
+draw.vf.cell(tf, fi, "\\PL", i, nr); i<-i+1; { "pluto"}
+draw.vf.cell(tf, fi, "\\LU", i, nr); i<-i+1; { "moon"}
+draw.vf.cell(tf, fi, "\\CT", i, nr); i<-i+1; { "comet"}
+draw.vf.cell(tf, fi, "\\ST", i, nr); i<-i+1; { "star"}
+draw.vf.cell(tf, fi, "\\AS", i, nr); i<-i+1; { "ascendingnode"}
+draw.vf.cell(tf, fi, "\\DE", i, nr); i<-i+1; { "descendingnode"}
+draw.vf.cell(tf, fi, "\\s-", i, nr); i<-i+1; { "s1"}
+draw.vf.cell(tf, fi, "\\dg", i, nr); i<-i+1; { "dagger"}
+draw.vf.cell(tf, fi, "\\dd", i, nr); i<-i+1; { "daggerdbl"}
+draw.vf.cell(tf, fi, "\\li", i, nr); i<-i+1; { "line integral"}
+draw.vf.cell(tf, fi, "\\-+", i, nr); i<-i+1; { "minusplus"}
+draw.vf.cell(tf, fi, "\\||", i, nr); i<-i+1; { "parallel"}
+draw.vf.cell(tf, fi, "\\rn", i, nr); i<-i+1; { "overscore"}
+draw.vf.cell(tf, fi, "\\ul", i, nr); i<-i+1; { "underscore"}
+
+nr <- 25
+nc <- 3
+make.table(nr, nc)
+## octal escape codes, as decimals
+code <- c(300:307,310:317,320:327,330:337,340:347,350:357,360:367,370:377,
+          243,263)
+ocode <- 64*(code%/%100) + 8*(code%/%10)%%10 + code%%10
+string <- rawToChar(as.raw(ocode), multiple=TRUE)
+draw.title("Cyrillic Octal Codes", i = 0, nr ,nc)
+for (i in 1:66)
+    draw.vf.cell(tf, "cyrillic", string[i], i-1, nr,
+                 raw.string=paste("\\", as.character(code[i]), sep=""))
+
+nr <- 25
+nc <- 3
+make.table(nr, nc)
+code <- c(252,254,256,262:269,275,278:281,284,745,746,750:768,796:802,
+          804:807,809,814:828,830:834,840:844)
+draw.title("Raw Hershey Escape Sequences", i=0, nr, nc)
+for (i in 1:75)
+    draw.vf.cell(tf, fi, paste("\\#H",formatC(code[i],wid=4,flag="0"),sep=""),
+                 i-1, nr)
+make.table(nr, nc)
+code <- c(845:847,850:856,860:874,899:909,2296:2299,2318:2332,2367:2382,
+          4014,4109)
+draw.title("More Raw Hershey Escape Sequences", i=0, nr, nc)
+for (i in 1:73)
+    draw.vf.cell(tf, fi, paste("\\#H",formatC(code[i],wid=4,flag="0"),sep=""),
+                 i-1, nr)
+
+par(oldpar)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/plotmath.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/plotmath.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/demo/plotmath.R	(revision 2476)
@@ -0,0 +1,193 @@
+#  Copyright (C) 2002-2009 The R Core Team
+
+require(datasets)
+require(grDevices); require(graphics)
+
+## --- "math annotation" in plots :
+
+######
+# create tables of mathematical annotation functionality
+######
+make.table <- function(nr, nc) {
+    savepar <- par(mar=rep(0, 4), pty="s")
+    plot(c(0, nc*2 + 1), c(0, -(nr + 1)),
+         type="n", xlab="", ylab="", axes=FALSE)
+    savepar
+}
+
+get.r <- function(i, nr) {
+    i %% nr + 1
+}
+
+get.c <- function(i, nr) {
+    i %/% nr + 1
+}
+
+draw.title.cell <- function(title, i, nr) {
+    r <- get.r(i, nr)
+    c <- get.c(i, nr)
+    text(2*c - .5, -r, title)
+    rect((2*(c - 1) + .5), -(r - .5), (2*c + .5), -(r + .5))
+}
+
+draw.plotmath.cell <- function(expr, i, nr, string = NULL) {
+    r <- get.r(i, nr)
+    c <- get.c(i, nr)
+    if (is.null(string)) {
+        string <- deparse(expr)
+        string <- substr(string, 12, nchar(string) - 1)
+    }
+    text((2*(c - 1) + 1), -r, string, col="grey")
+    text((2*c), -r, expr, adj=c(.5,.5))
+    rect((2*(c - 1) + .5), -(r - .5), (2*c + .5), -(r + .5), border="grey")
+}
+
+nr <- 20
+nc <- 2
+oldpar <- make.table(nr, nc)
+i <- 0
+draw.title.cell("Arithmetic Operators", i, nr); i <- i + 1
+draw.plotmath.cell(expression(x + y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x - y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x * y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x / y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %+-% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %/% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %*% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %.% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(-x), i, nr); i <- i + 1
+draw.plotmath.cell(expression(+x), i, nr); i <- i + 1
+draw.title.cell("Sub/Superscripts", i, nr); i <- i + 1
+draw.plotmath.cell(expression(x[i]), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x^2), i, nr); i <- i + 1
+draw.title.cell("Juxtaposition", i, nr); i <- i + 1
+draw.plotmath.cell(expression(x * y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(paste(x, y, z)), i, nr); i <- i + 1
+draw.title.cell("Radicals", i, nr); i <- i + 1
+draw.plotmath.cell(expression(sqrt(x)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(sqrt(x, y)), i, nr); i <- i + 1
+draw.title.cell("Lists", i, nr); i <- i + 1
+draw.plotmath.cell(expression(list(x, y, z)), i, nr); i <- i + 1
+draw.title.cell("Relations", i, nr); i <- i + 1
+draw.plotmath.cell(expression(x == y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x != y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x < y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x <= y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x > y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x >= y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %~~% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %=~% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %==% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %prop% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %~% y), i, nr); i <- i + 1
+draw.title.cell("Typeface", i, nr); i <- i + 1
+draw.plotmath.cell(expression(plain(x)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(italic(x)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(bold(x)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(bolditalic(x)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(underline(x)), i, nr); i <- i + 1
+
+# Need fewer, wider columns for ellipsis ...
+nr <- 20
+nc <- 2
+make.table(nr, nc)
+i <- 0
+draw.title.cell("Ellipsis", i, nr); i <- i + 1
+draw.plotmath.cell(expression(list(x[1], ..., x[n])), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x[1] + ... + x[n]), i, nr); i <- i + 1
+draw.plotmath.cell(expression(list(x[1], cdots, x[n])), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x[1] + ldots + x[n]), i, nr); i <- i + 1
+draw.title.cell("Set Relations", i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %subset% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %subseteq% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %supset% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %supseteq% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %notsubset% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %in% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %notin% y), i, nr); i <- i + 1
+draw.title.cell("Accents", i, nr); i <- i + 1
+draw.plotmath.cell(expression(hat(x)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(tilde(x)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(ring(x)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(bar(xy)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(widehat(xy)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(widetilde(xy)), i, nr); i <- i + 1
+draw.title.cell("Arrows", i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %<->% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %->% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %<-% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %up% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %down% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %<=>% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %=>% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %<=% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %dblup% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %dbldown% y), i, nr); i <- i + 1
+draw.title.cell("Symbolic Names", i, nr); i <- i + 1
+draw.plotmath.cell(expression(Alpha - Omega), i, nr); i <- i + 1
+draw.plotmath.cell(expression(alpha - omega), i, nr); i <- i + 1
+draw.plotmath.cell(expression(phi1 + sigma1), i, nr); i <- i + 1
+draw.plotmath.cell(expression(Upsilon1), i, nr); i <- i + 1
+draw.plotmath.cell(expression(infinity), i, nr); i <- i + 1
+draw.plotmath.cell(expression(32 * degree), i, nr); i <- i + 1
+draw.plotmath.cell(expression(60 * minute), i, nr); i <- i + 1
+draw.plotmath.cell(expression(30 * second), i, nr); i <- i + 1
+
+# Need even fewer, wider columns for typeface and style ...
+nr <- 20
+nc <- 1
+make.table(nr, nc)
+i <- 0
+draw.title.cell("Style", i, nr); i <- i + 1
+draw.plotmath.cell(expression(displaystyle(x)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(textstyle(x)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(scriptstyle(x)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(scriptscriptstyle(x)), i, nr); i <- i + 1
+draw.title.cell("Spacing", i, nr); i <- i + 1
+draw.plotmath.cell(expression(x ~~ y), i, nr); i <- i + 1
+
+# Need fewer, taller rows for fractions ...
+# cheat a bit to save pages
+par(new = TRUE)
+nr <- 10
+nc <- 1
+make.table(nr, nc)
+i <- 4
+draw.plotmath.cell(expression(x + phantom(0) + y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x + over(1, phantom(0))), i, nr); i <- i + 1
+draw.title.cell("Fractions", i, nr); i <- i + 1
+draw.plotmath.cell(expression(frac(x, y)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(over(x, y)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(atop(x, y)), i, nr); i <- i + 1
+
+# Need fewer, taller rows and fewer, wider columns for big operators ...
+nr <- 10
+nc <- 1
+make.table(nr, nc)
+i <- 0
+draw.title.cell("Big Operators", i, nr); i <- i + 1
+draw.plotmath.cell(expression(sum(x[i], i=1, n)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(prod(plain(P)(X == x), x)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(integral(f(x) * dx, a, b)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(union(A[i], i==1, n)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(intersect(A[i], i==1, n)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(lim(f(x), x %->% 0)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(min(g(x), x >= 0)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(inf(S)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(sup(S)), i, nr); i <- i + 1
+
+make.table(nr, nc)
+i <- 0
+draw.title.cell("Grouping", i, nr); i <- i + 1
+draw.plotmath.cell(expression((x + y)*z), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x^y + z), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x^(y + z)), i, nr); i <- i + 1
+# have to do this one by hand
+draw.plotmath.cell(expression(x^{y + z}), i, nr, string="x^{y + z}"); i <- i + 1
+draw.plotmath.cell(expression(group("(", list(a, b), "]")), i, nr); i <- i + 1
+draw.plotmath.cell(expression(bgroup("(", atop(x, y), ")")), i, nr); i <- i + 1
+draw.plotmath.cell(expression(group(lceil, x, rceil)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(group(lfloor, x, rfloor)), i, nr); i <- i + 1
+draw.plotmath.cell(expression(group("|", x, "|")), i, nr); i <- i + 1
+
+par(oldpar)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/html/00Index.html	(revision 2476)
@@ -0,0 +1,223 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: The R Graphics Package</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> The R Graphics Package
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;graphics&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../demo">Code demos</a>.  Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="graphics-package.html">graphics-package</a></td>
+<td>The R Graphics Package</td></tr>
+<tr><td style="width: 25%;"><a href="filled.contour.html">.filled.contour</a></td>
+<td>Level (Contour) Plots</td></tr>
+<tr><td style="width: 25%;"><a href="par.html">.Pars</a></td>
+<td>Set or Query Graphical Parameters</td></tr>
+<tr><td style="width: 25%;"><a href="abline.html">abline</a></td>
+<td>Add Straight Lines to a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="arrows.html">arrows</a></td>
+<td>Add Arrows to a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="plot.window.html">asp</a></td>
+<td>Set up World Coordinates for Graphics Window</td></tr>
+<tr><td style="width: 25%;"><a href="assocplot.html">assocplot</a></td>
+<td>Association Plots</td></tr>
+<tr><td style="width: 25%;"><a href="zAxis.html">Axis</a></td>
+<td>Generic Function to Add an Axis to a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="axis.html">axis</a></td>
+<td>Add an Axis to a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="axis.POSIXct.html">axis.POSIXct</a></td>
+<td>Date and Date-time Plotting Functions</td></tr>
+<tr><td style="width: 25%;"><a href="axTicks.html">axTicks</a></td>
+<td>Compute Axis Tickmark Locations</td></tr>
+<tr><td style="width: 25%;"><a href="barplot.html">barplot</a></td>
+<td>Bar Plots</td></tr>
+<tr><td style="width: 25%;"><a href="box.html">box</a></td>
+<td>Draw a Box around a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="boxplot.html">boxplot</a></td>
+<td>Box Plots</td></tr>
+<tr><td style="width: 25%;"><a href="boxplot.matrix.html">boxplot.matrix</a></td>
+<td>Draw a Boxplot for each Column (Row) of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="bxp.html">bxp</a></td>
+<td>Draw Box Plots from Summaries</td></tr>
+<tr><td style="width: 25%;"><a href="cdplot.html">cdplot</a></td>
+<td>Conditional Density Plots</td></tr>
+<tr><td style="width: 25%;"><a href="clip.html">clip</a></td>
+<td>Set Clipping Region</td></tr>
+<tr><td style="width: 25%;"><a href="screen.html">close.screen</a></td>
+<td>Creating and Controlling Multiple Screens on a Single Device</td></tr>
+<tr><td style="width: 25%;"><a href="coplot.html">co.intervals</a></td>
+<td>Conditioning Plots</td></tr>
+<tr><td style="width: 25%;"><a href="contour.html">contour</a></td>
+<td>Display Contours</td></tr>
+<tr><td style="width: 25%;"><a href="coplot.html">coplot</a></td>
+<td>Conditioning Plots</td></tr>
+<tr><td style="width: 25%;"><a href="curve.html">curve</a></td>
+<td>Draw Function Plots</td></tr>
+<tr><td style="width: 25%;"><a href="dotchart.html">dotchart</a></td>
+<td>Cleveland's Dot Plots</td></tr>
+<tr><td style="width: 25%;"><a href="screen.html">erase.screen</a></td>
+<td>Creating and Controlling Multiple Screens on a Single Device</td></tr>
+<tr><td style="width: 25%;"><a href="filled.contour.html">filled.contour</a></td>
+<td>Level (Contour) Plots</td></tr>
+<tr><td style="width: 25%;"><a href="fourfoldplot.html">fourfoldplot</a></td>
+<td>Fourfold Plots</td></tr>
+<tr><td style="width: 25%;"><a href="frame.html">frame</a></td>
+<td>Create / Start a New Plot Frame</td></tr>
+<tr><td style="width: 25%;"><a href="par.html">graphical parameter</a></td>
+<td>Set or Query Graphical Parameters</td></tr>
+<tr><td style="width: 25%;"><a href="par.html">graphical parameters</a></td>
+<td>Set or Query Graphical Parameters</td></tr>
+<tr><td style="width: 25%;"><a href="graphics-package.html">graphics</a></td>
+<td>The R Graphics Package</td></tr>
+<tr><td style="width: 25%;"><a href="convertXY.html">grconvertX</a></td>
+<td>Convert between Graphics Coordinate Systems</td></tr>
+<tr><td style="width: 25%;"><a href="convertXY.html">grconvertY</a></td>
+<td>Convert between Graphics Coordinate Systems</td></tr>
+<tr><td style="width: 25%;"><a href="grid.html">grid</a></td>
+<td>Add Grid to a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="hist.html">hist</a></td>
+<td>Histograms</td></tr>
+<tr><td style="width: 25%;"><a href="hist.POSIXt.html">hist.POSIXt</a></td>
+<td>Histogram of a Date or Date-Time Object</td></tr>
+<tr><td style="width: 25%;"><a href="identify.html">identify</a></td>
+<td>Identify Points in a Scatter Plot</td></tr>
+<tr><td style="width: 25%;"><a href="image.html">image</a></td>
+<td>Display a Color Image</td></tr>
+<tr><td style="width: 25%;"><a href="layout.html">layout</a></td>
+<td>Specifying Complex Plot Arrangements</td></tr>
+<tr><td style="width: 25%;"><a href="layout.html">lcm</a></td>
+<td>Specifying Complex Plot Arrangements</td></tr>
+<tr><td style="width: 25%;"><a href="legend.html">legend</a></td>
+<td>Add Legends to Plots</td></tr>
+<tr><td style="width: 25%;"><a href="lines.html">lines</a></td>
+<td>Add Connected Line Segments to a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="plot.formula.html">lines.formula</a></td>
+<td>Formula Notation for Scatterplots</td></tr>
+<tr><td style="width: 25%;"><a href="plothistogram.html">lines.histogram</a></td>
+<td>Plot Histograms</td></tr>
+<tr><td style="width: 25%;"><a href="plot.table.html">lines.table</a></td>
+<td>Plot Methods for 'table' Objects</td></tr>
+<tr><td style="width: 25%;"><a href="locator.html">locator</a></td>
+<td>Graphical Input</td></tr>
+<tr><td style="width: 25%;"><a href="matplot.html">matlines</a></td>
+<td>Plot Columns of Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="matplot.html">matplot</a></td>
+<td>Plot Columns of Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="matplot.html">matpoints</a></td>
+<td>Plot Columns of Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="mosaicplot.html">mosaicplot</a></td>
+<td>Mosaic Plots</td></tr>
+<tr><td style="width: 25%;"><a href="mtext.html">mtext</a></td>
+<td>Write Text into the Margins of a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="pairs.html">pairs</a></td>
+<td>Scatterplot Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="panel.smooth.html">panel.smooth</a></td>
+<td>Simple Panel Plot</td></tr>
+<tr><td style="width: 25%;"><a href="par.html">par</a></td>
+<td>Set or Query Graphical Parameters</td></tr>
+<tr><td style="width: 25%;"><a href="points.html">pch</a></td>
+<td>Add Points to a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="persp.html">persp</a></td>
+<td>Perspective Plots</td></tr>
+<tr><td style="width: 25%;"><a href="pie.html">pie</a></td>
+<td>Pie Charts</td></tr>
+<tr><td style="width: 25%;"><a href="plot.html">plot</a></td>
+<td>Generic X-Y Plotting</td></tr>
+<tr><td style="width: 25%;"><a href="plot.dataframe.html">plot.data.frame</a></td>
+<td>Plot Method for Data Frames</td></tr>
+<tr><td style="width: 25%;"><a href="plot.default.html">plot.default</a></td>
+<td>The Default Scatterplot Function</td></tr>
+<tr><td style="width: 25%;"><a href="plot.design.html">plot.design</a></td>
+<td>Plot Univariate Effects of a Design or Model</td></tr>
+<tr><td style="width: 25%;"><a href="plot.factor.html">plot.factor</a></td>
+<td>Plotting Factor Variables</td></tr>
+<tr><td style="width: 25%;"><a href="plot.formula.html">plot.formula</a></td>
+<td>Formula Notation for Scatterplots</td></tr>
+<tr><td style="width: 25%;"><a href="curve.html">plot.function</a></td>
+<td>Draw Function Plots</td></tr>
+<tr><td style="width: 25%;"><a href="plothistogram.html">plot.histogram</a></td>
+<td>Plot Histograms</td></tr>
+<tr><td style="width: 25%;"><a href="frame.html">plot.new</a></td>
+<td>Create / Start a New Plot Frame</td></tr>
+<tr><td style="width: 25%;"><a href="plot.raster.html">plot.raster</a></td>
+<td>Plotting Raster Images</td></tr>
+<tr><td style="width: 25%;"><a href="plot.table.html">plot.table</a></td>
+<td>Plot Methods for 'table' Objects</td></tr>
+<tr><td style="width: 25%;"><a href="plot.window.html">plot.window</a></td>
+<td>Set up World Coordinates for Graphics Window</td></tr>
+<tr><td style="width: 25%;"><a href="plot.xy.html">plot.xy</a></td>
+<td>Basic Internal Plot Function</td></tr>
+<tr><td style="width: 25%;"><a href="points.html">points</a></td>
+<td>Add Points to a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="plot.formula.html">points.formula</a></td>
+<td>Formula Notation for Scatterplots</td></tr>
+<tr><td style="width: 25%;"><a href="plot.table.html">points.table</a></td>
+<td>Plot Methods for 'table' Objects</td></tr>
+<tr><td style="width: 25%;"><a href="polygon.html">polygon</a></td>
+<td>Polygon Drawing</td></tr>
+<tr><td style="width: 25%;"><a href="polypath.html">polypath</a></td>
+<td>Path Drawing</td></tr>
+<tr><td style="width: 25%;"><a href="rasterImage.html">rasterImage</a></td>
+<td>Draw One or More Raster Images</td></tr>
+<tr><td style="width: 25%;"><a href="rect.html">rect</a></td>
+<td>Draw One or More Rectangles</td></tr>
+<tr><td style="width: 25%;"><a href="rug.html">rug</a></td>
+<td>Add a Rug to a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="screen.html">screen</a></td>
+<td>Creating and Controlling Multiple Screens on a Single Device</td></tr>
+<tr><td style="width: 25%;"><a href="segments.html">segments</a></td>
+<td>Add Line Segments to a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="smoothScatter.html">smoothScatter</a></td>
+<td>Scatterplots with Smoothed Densities Color Representation</td></tr>
+<tr><td style="width: 25%;"><a href="spineplot.html">spineplot</a></td>
+<td>Spine Plots and Spinograms</td></tr>
+<tr><td style="width: 25%;"><a href="screen.html">split.screen</a></td>
+<td>Creating and Controlling Multiple Screens on a Single Device</td></tr>
+<tr><td style="width: 25%;"><a href="stars.html">stars</a></td>
+<td>Star (Spider/Radar) Plots and Segment Diagrams</td></tr>
+<tr><td style="width: 25%;"><a href="stem.html">stem</a></td>
+<td>Stem-and-Leaf Plots</td></tr>
+<tr><td style="width: 25%;"><a href="strwidth.html">strheight</a></td>
+<td>Plotting Dimensions of Character Strings and Math Expressions</td></tr>
+<tr><td style="width: 25%;"><a href="stripchart.html">stripchart</a></td>
+<td>1-D Scatter Plots</td></tr>
+<tr><td style="width: 25%;"><a href="strwidth.html">strwidth</a></td>
+<td>Plotting Dimensions of Character Strings and Math Expressions</td></tr>
+<tr><td style="width: 25%;"><a href="sunflowerplot.html">sunflowerplot</a></td>
+<td>Produce a Sunflower Scatter Plot</td></tr>
+<tr><td style="width: 25%;"><a href="symbols.html">symbols</a></td>
+<td>Draw Symbols (Circles, Squares, Stars, Thermometers, Boxplots)</td></tr>
+<tr><td style="width: 25%;"><a href="text.html">text</a></td>
+<td>Add Text to a Plot</td></tr>
+<tr><td style="width: 25%;"><a href="plot.formula.html">text.formula</a></td>
+<td>Formula Notation for Scatterplots</td></tr>
+<tr><td style="width: 25%;"><a href="title.html">title</a></td>
+<td>Plot Annotation</td></tr>
+<tr><td style="width: 25%;"><a href="units.html">xinch</a></td>
+<td>Graphical Units</td></tr>
+<tr><td style="width: 25%;"><a href="plot.window.html">xlim</a></td>
+<td>Set up World Coordinates for Graphics Window</td></tr>
+<tr><td style="width: 25%;"><a href="xspline.html">xspline</a></td>
+<td>Draw an X-spline</td></tr>
+<tr><td style="width: 25%;"><a href="units.html">xyinch</a></td>
+<td>Graphical Units</td></tr>
+<tr><td style="width: 25%;"><a href="units.html">yinch</a></td>
+<td>Graphical Units</td></tr>
+<tr><td style="width: 25%;"><a href="plot.window.html">ylim</a></td>
+<td>Set up World Coordinates for Graphics Window</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/INDEX	(revision 2476)
@@ -0,0 +1,76 @@
+Axis                    Generic Function to Add an Axis to a Plot
+abline                  Add Straight Lines to a Plot
+arrows                  Add Arrows to a Plot
+assocplot               Association Plots
+axTicks                 Compute Axis Tickmark Locations
+axis                    Add an Axis to a Plot
+axis.POSIXct            Date and Date-time Plotting Functions
+barplot                 Bar Plots
+box                     Draw a Box around a Plot
+boxplot                 Box Plots
+boxplot.matrix          Draw a Boxplot for each Column (Row) of a
+                        Matrix
+bxp                     Draw Box Plots from Summaries
+cdplot                  Conditional Density Plots
+clip                    Set Clipping Region
+contour                 Display Contours
+coplot                  Conditioning Plots
+curve                   Draw Function Plots
+dotchart                Cleveland's Dot Plots
+filled.contour          Level (Contour) Plots
+fourfoldplot            Fourfold Plots
+frame                   Create / Start a New Plot Frame
+graphics-package        The R Graphics Package
+grconvertX              Convert between Graphics Coordinate Systems
+grid                    Add Grid to a Plot
+hist                    Histograms
+hist.POSIXt             Histogram of a Date or Date-Time Object
+identify                Identify Points in a Scatter Plot
+image                   Display a Color Image
+layout                  Specifying Complex Plot Arrangements
+legend                  Add Legends to Plots
+lines                   Add Connected Line Segments to a Plot
+locator                 Graphical Input
+matplot                 Plot Columns of Matrices
+mosaicplot              Mosaic Plots
+mtext                   Write Text into the Margins of a Plot
+pairs                   Scatterplot Matrices
+panel.smooth            Simple Panel Plot
+par                     Set or Query Graphical Parameters
+persp                   Perspective Plots
+pie                     Pie Charts
+plot                    Generic X-Y Plotting
+plot.data.frame         Plot Method for Data Frames
+plot.default            The Default Scatterplot Function
+plot.design             Plot Univariate Effects of a Design or Model
+plot.factor             Plotting Factor Variables
+plot.formula            Formula Notation for Scatterplots
+plot.histogram          Plot Histograms
+plot.raster             Plotting Raster Images
+plot.table              Plot Methods for 'table' Objects
+plot.window             Set up World Coordinates for Graphics Window
+plot.xy                 Basic Internal Plot Function
+points                  Add Points to a Plot
+polygon                 Polygon Drawing
+polypath                Path Drawing
+rasterImage             Draw One or More Raster Images
+rect                    Draw One or More Rectangles
+rug                     Add a Rug to a Plot
+screen                  Creating and Controlling Multiple Screens on a
+                        Single Device
+segments                Add Line Segments to a Plot
+smoothScatter           Scatterplots with Smoothed Densities Color
+                        Representation
+spineplot               Spine Plots and Spinograms
+stars                   Star (Spider/Radar) Plots and Segment Diagrams
+stem                    Stem-and-Leaf Plots
+stripchart              1-D Scatter Plots
+strwidth                Plotting Dimensions of Character Strings and
+                        Math Expressions
+sunflowerplot           Produce a Sunflower Scatter Plot
+symbols                 Draw Symbols (Circles, Squares, Stars,
+                        Thermometers, Boxplots)
+text                    Add Text to a Plot
+title                   Plot Annotation
+xinch                   Graphical Units
+xspline                 Draw an X-spline
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/pch.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/pch.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/mai.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/mai.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/oma.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/oma.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/pch.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/pch.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/oma.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/oma.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/pch.svg
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/pch.svg	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/pch.svg	(revision 2476)
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="50pt" viewBox="0 0 504 50" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke: none;" d="M 0.1875 0 L 0.1875 -4.296875 L 3.609375 -4.296875 L 3.609375 0 L 0.1875 0 Z M 3.078125 -0.546875 L 3.078125 -3.765625 L 0.734375 -3.765625 L 0.734375 -0.546875 L 3.078125 -0.546875 Z M 3.078125 -0.546875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke: none;" d="M 1.625 -4.203125 C 2.164062 -4.203125 2.554688 -3.976562 2.796875 -3.53125 C 2.984375 -3.175781 3.078125 -2.703125 3.078125 -2.109375 C 3.078125 -1.535156 2.992188 -1.0625 2.828125 -0.6875 C 2.578125 -0.15625 2.175781 0.109375 1.625 0.109375 C 1.113281 0.109375 0.738281 -0.109375 0.5 -0.546875 C 0.289062 -0.910156 0.1875 -1.398438 0.1875 -2.015625 C 0.1875 -2.492188 0.25 -2.898438 0.375 -3.234375 C 0.601562 -3.878906 1.019531 -4.203125 1.625 -4.203125 Z M 1.625 -0.359375 C 1.894531 -0.359375 2.109375 -0.476562 2.265625 -0.71875 C 2.429688 -0.96875 2.515625 -1.421875 2.515625 -2.078125 C 2.515625 -2.554688 2.453125 -2.945312 2.328125 -3.25 C 2.210938 -3.5625 1.988281 -3.71875 1.65625 -3.71875 C 1.34375 -3.71875 1.113281 -3.570312 0.96875 -3.28125 C 0.832031 -2.988281 0.765625 -2.5625 0.765625 -2 C 0.765625 -1.5625 0.804688 -1.21875 0.890625 -0.96875 C 1.035156 -0.5625 1.28125 -0.359375 1.625 -0.359375 Z M 1.625 -0.359375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke: none;" d="M 0.578125 -2.96875 L 0.578125 -3.375 C 0.953125 -3.414062 1.210938 -3.476562 1.359375 -3.5625 C 1.515625 -3.644531 1.628906 -3.847656 1.703125 -4.171875 L 2.125 -4.171875 L 2.125 0 L 1.5625 0 L 1.5625 -2.96875 L 0.578125 -2.96875 Z M 0.578125 -2.96875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke: none;" d="M 0.1875 0 C 0.207031 -0.363281 0.28125 -0.675781 0.40625 -0.9375 C 0.539062 -1.207031 0.796875 -1.453125 1.171875 -1.671875 L 1.734375 -2 C 1.984375 -2.144531 2.160156 -2.269531 2.265625 -2.375 C 2.421875 -2.53125 2.5 -2.71875 2.5 -2.9375 C 2.5 -3.175781 2.425781 -3.367188 2.28125 -3.515625 C 2.132812 -3.660156 1.941406 -3.734375 1.703125 -3.734375 C 1.335938 -3.734375 1.085938 -3.59375 0.953125 -3.3125 C 0.878906 -3.164062 0.835938 -2.960938 0.828125 -2.703125 L 0.296875 -2.703125 C 0.296875 -3.066406 0.363281 -3.363281 0.5 -3.59375 C 0.71875 -4 1.117188 -4.203125 1.703125 -4.203125 C 2.179688 -4.203125 2.53125 -4.070312 2.75 -3.8125 C 2.976562 -3.5625 3.09375 -3.273438 3.09375 -2.953125 C 3.09375 -2.617188 2.972656 -2.332031 2.734375 -2.09375 C 2.597656 -1.957031 2.351562 -1.789062 2 -1.59375 L 1.59375 -1.359375 C 1.40625 -1.253906 1.253906 -1.15625 1.140625 -1.0625 C 0.953125 -0.894531 0.832031 -0.707031 0.78125 -0.5 L 3.0625 -0.5 L 3.0625 0 L 0.1875 0 Z M 0.1875 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke: none;" d="M 1.5625 0.109375 C 1.0625 0.109375 0.695312 -0.0234375 0.46875 -0.296875 C 0.25 -0.566406 0.140625 -0.898438 0.140625 -1.296875 L 0.6875 -1.296875 C 0.71875 -1.015625 0.769531 -0.816406 0.84375 -0.703125 C 0.976562 -0.472656 1.226562 -0.359375 1.59375 -0.359375 C 1.863281 -0.359375 2.082031 -0.429688 2.25 -0.578125 C 2.425781 -0.734375 2.515625 -0.925781 2.515625 -1.15625 C 2.515625 -1.445312 2.425781 -1.648438 2.25 -1.765625 C 2.070312 -1.878906 1.820312 -1.9375 1.5 -1.9375 C 1.46875 -1.9375 1.429688 -1.9375 1.390625 -1.9375 C 1.359375 -1.9375 1.328125 -1.9375 1.296875 -1.9375 L 1.296875 -2.40625 C 1.347656 -2.394531 1.390625 -2.390625 1.421875 -2.390625 C 1.460938 -2.390625 1.503906 -2.390625 1.546875 -2.390625 C 1.742188 -2.390625 1.90625 -2.421875 2.03125 -2.484375 C 2.257812 -2.585938 2.375 -2.78125 2.375 -3.0625 C 2.375 -3.269531 2.296875 -3.429688 2.140625 -3.546875 C 1.992188 -3.660156 1.820312 -3.71875 1.625 -3.71875 C 1.269531 -3.71875 1.023438 -3.601562 0.890625 -3.375 C 0.816406 -3.238281 0.773438 -3.050781 0.765625 -2.8125 L 0.25 -2.8125 C 0.25 -3.125 0.3125 -3.390625 0.4375 -3.609375 C 0.65625 -4.003906 1.035156 -4.203125 1.578125 -4.203125 C 2.003906 -4.203125 2.332031 -4.101562 2.5625 -3.90625 C 2.800781 -3.71875 2.921875 -3.445312 2.921875 -3.09375 C 2.921875 -2.832031 2.847656 -2.625 2.703125 -2.46875 C 2.617188 -2.363281 2.507812 -2.285156 2.375 -2.234375 C 2.59375 -2.171875 2.765625 -2.050781 2.890625 -1.875 C 3.015625 -1.707031 3.078125 -1.5 3.078125 -1.25 C 3.078125 -0.84375 2.941406 -0.515625 2.671875 -0.265625 C 2.410156 -0.015625 2.039062 0.109375 1.5625 0.109375 Z M 1.5625 0.109375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke: none;" d="M 1.984375 -1.484375 L 1.984375 -3.390625 L 0.640625 -1.484375 L 1.984375 -1.484375 Z M 2 0 L 2 -1.03125 L 0.15625 -1.03125 L 0.15625 -1.546875 L 2.078125 -4.203125 L 2.515625 -4.203125 L 2.515625 -1.484375 L 3.140625 -1.484375 L 3.140625 -1.03125 L 2.515625 -1.03125 L 2.515625 0 L 2 0 Z M 2 0 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke: none;" d="M 0.734375 -1.0625 C 0.773438 -0.769531 0.914062 -0.566406 1.15625 -0.453125 C 1.28125 -0.390625 1.425781 -0.359375 1.59375 -0.359375 C 1.90625 -0.359375 2.132812 -0.457031 2.28125 -0.65625 C 2.4375 -0.851562 2.515625 -1.070312 2.515625 -1.3125 C 2.515625 -1.613281 2.425781 -1.84375 2.25 -2 C 2.070312 -2.15625 1.859375 -2.234375 1.609375 -2.234375 C 1.421875 -2.234375 1.257812 -2.195312 1.125 -2.125 C 1 -2.0625 0.890625 -1.96875 0.796875 -1.84375 L 0.34375 -1.859375 L 0.671875 -4.125 L 2.84375 -4.125 L 2.84375 -3.609375 L 1.0625 -3.609375 L 0.875 -2.453125 C 0.976562 -2.523438 1.070312 -2.578125 1.15625 -2.609375 C 1.3125 -2.679688 1.492188 -2.71875 1.703125 -2.71875 C 2.085938 -2.71875 2.410156 -2.59375 2.671875 -2.34375 C 2.941406 -2.09375 3.078125 -1.773438 3.078125 -1.390625 C 3.078125 -0.992188 2.953125 -0.644531 2.703125 -0.34375 C 2.460938 -0.0390625 2.078125 0.109375 1.546875 0.109375 C 1.203125 0.109375 0.894531 0.015625 0.625 -0.171875 C 0.363281 -0.367188 0.21875 -0.664062 0.1875 -1.0625 L 0.734375 -1.0625 Z M 0.734375 -1.0625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke: none;" d="M 1.75 -4.21875 C 2.21875 -4.21875 2.546875 -4.09375 2.734375 -3.84375 C 2.921875 -3.601562 3.015625 -3.351562 3.015625 -3.09375 L 2.484375 -3.09375 C 2.453125 -3.257812 2.40625 -3.390625 2.34375 -3.484375 C 2.21875 -3.660156 2.023438 -3.75 1.765625 -3.75 C 1.472656 -3.75 1.238281 -3.613281 1.0625 -3.34375 C 0.882812 -3.070312 0.785156 -2.679688 0.765625 -2.171875 C 0.890625 -2.347656 1.046875 -2.476562 1.234375 -2.5625 C 1.398438 -2.644531 1.585938 -2.6875 1.796875 -2.6875 C 2.140625 -2.6875 2.441406 -2.570312 2.703125 -2.34375 C 2.972656 -2.125 3.109375 -1.789062 3.109375 -1.34375 C 3.109375 -0.96875 2.984375 -0.628906 2.734375 -0.328125 C 2.484375 -0.0351562 2.128906 0.109375 1.671875 0.109375 C 1.273438 0.109375 0.929688 -0.0351562 0.640625 -0.328125 C 0.359375 -0.628906 0.21875 -1.132812 0.21875 -1.84375 C 0.21875 -2.363281 0.285156 -2.804688 0.421875 -3.171875 C 0.660156 -3.867188 1.101562 -4.21875 1.75 -4.21875 Z M 1.71875 -0.359375 C 2 -0.359375 2.207031 -0.453125 2.34375 -0.640625 C 2.476562 -0.828125 2.546875 -1.046875 2.546875 -1.296875 C 2.546875 -1.515625 2.484375 -1.71875 2.359375 -1.90625 C 2.234375 -2.101562 2.007812 -2.203125 1.6875 -2.203125 C 1.457031 -2.203125 1.257812 -2.125 1.09375 -1.96875 C 0.925781 -1.820312 0.84375 -1.597656 0.84375 -1.296875 C 0.84375 -1.035156 0.914062 -0.8125 1.0625 -0.625 C 1.21875 -0.445312 1.4375 -0.359375 1.71875 -0.359375 Z M 1.71875 -0.359375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke: none;" d="M 3.140625 -4.125 L 3.140625 -3.671875 C 3.003906 -3.535156 2.820312 -3.304688 2.59375 -2.984375 C 2.375 -2.660156 2.175781 -2.3125 2 -1.9375 C 1.832031 -1.570312 1.707031 -1.238281 1.625 -0.9375 C 1.5625 -0.738281 1.488281 -0.425781 1.40625 0 L 0.8125 0 C 0.945312 -0.800781 1.242188 -1.597656 1.703125 -2.390625 C 1.960938 -2.859375 2.242188 -3.257812 2.546875 -3.59375 L 0.21875 -3.59375 L 0.21875 -4.125 L 3.140625 -4.125 Z M 3.140625 -4.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke: none;" d="M 1.625 -2.4375 C 1.863281 -2.4375 2.046875 -2.5 2.171875 -2.625 C 2.304688 -2.757812 2.375 -2.914062 2.375 -3.09375 C 2.375 -3.25 2.3125 -3.390625 2.1875 -3.515625 C 2.0625 -3.648438 1.867188 -3.71875 1.609375 -3.71875 C 1.359375 -3.71875 1.175781 -3.648438 1.0625 -3.515625 C 0.945312 -3.390625 0.890625 -3.238281 0.890625 -3.0625 C 0.890625 -2.863281 0.960938 -2.707031 1.109375 -2.59375 C 1.253906 -2.488281 1.425781 -2.4375 1.625 -2.4375 Z M 1.671875 -0.359375 C 1.910156 -0.359375 2.109375 -0.421875 2.265625 -0.546875 C 2.429688 -0.679688 2.515625 -0.882812 2.515625 -1.15625 C 2.515625 -1.425781 2.429688 -1.628906 2.265625 -1.765625 C 2.097656 -1.910156 1.882812 -1.984375 1.625 -1.984375 C 1.375 -1.984375 1.164062 -1.910156 1 -1.765625 C 0.84375 -1.617188 0.765625 -1.421875 0.765625 -1.171875 C 0.765625 -0.953125 0.835938 -0.757812 0.984375 -0.59375 C 1.128906 -0.4375 1.359375 -0.359375 1.671875 -0.359375 Z M 0.921875 -2.234375 C 0.765625 -2.296875 0.648438 -2.367188 0.578125 -2.453125 C 0.421875 -2.609375 0.34375 -2.8125 0.34375 -3.0625 C 0.34375 -3.375 0.453125 -3.640625 0.671875 -3.859375 C 0.898438 -4.085938 1.222656 -4.203125 1.640625 -4.203125 C 2.046875 -4.203125 2.363281 -4.097656 2.59375 -3.890625 C 2.820312 -3.679688 2.9375 -3.429688 2.9375 -3.140625 C 2.9375 -2.878906 2.867188 -2.671875 2.734375 -2.515625 C 2.660156 -2.421875 2.546875 -2.328125 2.390625 -2.234375 C 2.566406 -2.160156 2.703125 -2.070312 2.796875 -1.96875 C 2.984375 -1.769531 3.078125 -1.515625 3.078125 -1.203125 C 3.078125 -0.835938 2.953125 -0.523438 2.703125 -0.265625 C 2.453125 -0.00390625 2.101562 0.125 1.65625 0.125 C 1.25 0.125 0.898438 0.015625 0.609375 -0.203125 C 0.328125 -0.429688 0.1875 -0.753906 0.1875 -1.171875 C 0.1875 -1.421875 0.25 -1.632812 0.375 -1.8125 C 0.5 -2 0.679688 -2.140625 0.921875 -2.234375 Z M 0.921875 -2.234375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke: none;" d="M 0.796875 -1.015625 C 0.816406 -0.722656 0.929688 -0.519531 1.140625 -0.40625 C 1.242188 -0.351562 1.363281 -0.328125 1.5 -0.328125 C 1.75 -0.328125 1.960938 -0.429688 2.140625 -0.640625 C 2.316406 -0.847656 2.441406 -1.273438 2.515625 -1.921875 C 2.398438 -1.734375 2.253906 -1.597656 2.078125 -1.515625 C 1.910156 -1.441406 1.726562 -1.40625 1.53125 -1.40625 C 1.125 -1.40625 0.800781 -1.53125 0.5625 -1.78125 C 0.332031 -2.039062 0.21875 -2.367188 0.21875 -2.765625 C 0.21875 -3.140625 0.332031 -3.472656 0.5625 -3.765625 C 0.789062 -4.054688 1.132812 -4.203125 1.59375 -4.203125 C 2.207031 -4.203125 2.628906 -3.925781 2.859375 -3.375 C 2.984375 -3.070312 3.046875 -2.691406 3.046875 -2.234375 C 3.046875 -1.722656 2.96875 -1.269531 2.8125 -0.875 C 2.5625 -0.207031 2.128906 0.125 1.515625 0.125 C 1.109375 0.125 0.796875 0.015625 0.578125 -0.203125 C 0.367188 -0.421875 0.265625 -0.691406 0.265625 -1.015625 L 0.796875 -1.015625 Z M 1.59375 -1.875 C 1.800781 -1.875 1.988281 -1.941406 2.15625 -2.078125 C 2.332031 -2.210938 2.421875 -2.453125 2.421875 -2.796875 C 2.421875 -3.109375 2.34375 -3.335938 2.1875 -3.484375 C 2.039062 -3.640625 1.847656 -3.71875 1.609375 -3.71875 C 1.347656 -3.71875 1.140625 -3.628906 0.984375 -3.453125 C 0.835938 -3.285156 0.765625 -3.054688 0.765625 -2.765625 C 0.765625 -2.492188 0.828125 -2.273438 0.953125 -2.109375 C 1.085938 -1.953125 1.300781 -1.875 1.59375 -1.875 Z M 1.59375 -1.875 "/>
+</symbol>
+</g>
+<clipPath id="clip1">
+  <path d="M 0 0 L 505 0 L 505 51 L 0 51 Z M 0 0 "/>
+</clipPath>
+</defs>
+<g id="surface0">
+<rect x="0" y="0" width="504" height="50" style="fill: rgb(100%,100%,100%); fill-opacity: 1; stroke: none;"/>
+<g clip-path="url(#clip1)" clip-rule="nonzero">
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-1" x="34.28125" y="22.417969"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-2" x="51.566406" y="22.457031"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-3" x="68.851562" y="22.472656"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-4" x="86.132812" y="22.417969"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-5" x="103.417969" y="22.472656"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-6" x="120.703125" y="22.378906"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-7" x="137.988281" y="22.425781"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-8" x="155.269531" y="22.433594"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-9" x="172.554688" y="22.410156"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-10" x="189.839844" y="22.410156"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-2" x="205.453125" y="22.417969"/>
+  <use xlink:href="#glyph0-1" x="208.790039" y="22.417969"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-2" x="222.738281" y="22.457031"/>
+  <use xlink:href="#glyph0-2" x="226.075195" y="22.457031"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-2" x="240.023438" y="22.472656"/>
+  <use xlink:href="#glyph0-3" x="243.360352" y="22.472656"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-2" x="257.304688" y="22.417969"/>
+  <use xlink:href="#glyph0-4" x="260.641602" y="22.417969"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-2" x="274.589844" y="22.472656"/>
+  <use xlink:href="#glyph0-5" x="277.926758" y="22.472656"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-2" x="291.875" y="22.402344"/>
+  <use xlink:href="#glyph0-6" x="295.211914" y="22.402344"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-2" x="309.15625" y="22.425781"/>
+  <use xlink:href="#glyph0-7" x="312.493164" y="22.425781"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-2" x="326.441406" y="22.457031"/>
+  <use xlink:href="#glyph0-8" x="329.77832" y="22.457031"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-2" x="343.726562" y="22.410156"/>
+  <use xlink:href="#glyph0-9" x="347.063477" y="22.410156"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-2" x="361.007812" y="22.410156"/>
+  <use xlink:href="#glyph0-10" x="364.344727" y="22.410156"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-3" x="378.292969" y="22.417969"/>
+  <use xlink:href="#glyph0-1" x="381.629883" y="22.417969"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-3" x="395.578125" y="22.472656"/>
+  <use xlink:href="#glyph0-2" x="398.915039" y="22.472656"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-3" x="412.863281" y="22.472656"/>
+  <use xlink:href="#glyph0-3" x="416.200195" y="22.472656"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-3" x="430.144531" y="22.417969"/>
+  <use xlink:href="#glyph0-4" x="433.481445" y="22.417969"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-3" x="447.429688" y="22.472656"/>
+  <use xlink:href="#glyph0-5" x="450.766602" y="22.472656"/>
+</g>
+<g style="fill: rgb(0%,0%,0%); fill-opacity: 1;">
+  <use xlink:href="#glyph0-3" x="464.714844" y="22.417969"/>
+  <use xlink:href="#glyph0-6" x="468.051758" y="22.417969"/>
+</g>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 33.25 36.960938 L 38.648438 36.960938 L 38.648438 31.5625 L 33.25 31.5625 Z M 33.25 36.960938 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 55.933594 34.257812 C 55.933594 37.859375 50.535156 37.859375 50.535156 34.257812 C 50.535156 30.660156 55.933594 30.660156 55.933594 34.257812 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 70.519531 30.058594 L 70.519531 30.058594 L 74.15625 36.359375 L 66.882812 36.359375 L 70.519531 30.058594 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 83.984375 34.257812 L 91.621094 34.257812 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 87.800781 38.078125 L 87.800781 30.441406 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 102.386719 36.960938 L 107.785156 31.558594 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 102.386719 31.558594 L 107.785156 36.960938 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 118.550781 34.257812 L 118.550781 34.257812 L 122.371094 30.441406 L 126.1875 34.257812 L 122.371094 38.078125 L 118.550781 34.257812 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 139.65625 38.457031 L 139.65625 38.457031 L 143.289062 32.160156 L 136.019531 32.160156 L 139.65625 38.457031 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 154.238281 36.960938 L 159.636719 36.960938 L 159.636719 31.5625 L 154.238281 31.5625 Z M 154.238281 36.960938 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 154.238281 36.960938 L 159.636719 31.558594 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 154.238281 31.558594 L 159.636719 36.960938 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 171.523438 36.960938 L 176.921875 31.558594 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 171.523438 31.558594 L 176.921875 36.960938 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 170.402344 34.257812 L 178.039062 34.257812 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 174.222656 38.078125 L 174.222656 30.441406 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 187.6875 34.257812 L 195.324219 34.257812 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 191.507812 38.078125 L 191.507812 30.441406 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 187.6875 34.257812 L 187.6875 34.257812 L 191.507812 30.441406 L 195.324219 34.257812 L 191.507812 38.078125 L 187.6875 34.257812 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 211.488281 34.257812 C 211.488281 37.859375 206.089844 37.859375 206.089844 34.257812 C 206.089844 30.660156 211.488281 30.660156 211.488281 34.257812 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 206.089844 34.257812 L 211.488281 34.257812 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 208.789062 36.960938 L 208.789062 31.558594 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 226.074219 38.457031 L 226.074219 38.457031 L 229.710938 31.109375 L 222.4375 31.109375 L 226.074219 38.457031 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 226.074219 30.058594 L 226.074219 30.058594 L 229.710938 37.410156 L 222.4375 37.410156 L 226.074219 30.058594 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 240.65625 34.257812 L 246.058594 34.257812 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 243.359375 36.960938 L 243.359375 31.558594 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 240.65625 36.960938 L 246.054688 36.960938 L 246.054688 31.5625 L 240.65625 31.5625 Z M 240.65625 36.960938 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 263.34375 34.257812 C 263.34375 37.859375 257.941406 37.859375 257.941406 34.257812 C 257.941406 30.660156 263.34375 30.660156 263.34375 34.257812 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 257.941406 36.960938 L 263.34375 31.558594 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 257.941406 31.558594 L 263.34375 36.960938 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 277.925781 36.960938 L 277.925781 36.960938 L 280.625 31.558594 L 275.226562 31.558594 L 277.925781 36.960938 "/>
+<path style="fill: none; stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 275.226562 31.558594 L 280.625 31.558594 L 280.625 36.957031 L 275.226562 36.957031 Z M 275.226562 31.558594 "/>
+<path style=" stroke:none;fill-rule: nonzero; fill: rgb(0%,0%,0%); fill-opacity: 1;" d="M 292.511719 36.960938 L 292.511719 36.960938 L 297.910156 36.960938 L 297.910156 31.558594 L 292.511719 31.558594 Z M 292.511719 36.960938 "/>
+<path style=" stroke:none;fill-rule: nonzero; fill: rgb(0%,0%,0%); fill-opacity: 1;" d="M 315.195312 34.257812 C 315.195312 37.859375 309.792969 37.859375 309.792969 34.257812 C 309.792969 30.660156 315.195312 30.660156 315.195312 34.257812 "/>
+<path style=" stroke:none;fill-rule: nonzero; fill: rgb(0%,0%,0%); fill-opacity: 1;" d="M 329.777344 30.058594 L 329.777344 30.058594 L 333.414062 36.359375 L 326.140625 36.359375 Z M 329.777344 30.058594 "/>
+<path style=" stroke:none;fill-rule: nonzero; fill: rgb(0%,0%,0%); fill-opacity: 1;" d="M 344.363281 34.257812 L 344.363281 34.257812 L 347.0625 31.558594 L 349.761719 34.257812 L 347.0625 36.960938 Z M 344.363281 34.257812 "/>
+<path style="fill-rule: nonzero; fill: rgb(0%,0%,0%); fill-opacity: 1;stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 367.046875 34.257812 C 367.046875 37.859375 361.644531 37.859375 361.644531 34.257812 C 361.644531 30.660156 367.046875 30.660156 367.046875 34.257812 "/>
+<path style="fill-rule: nonzero; fill: rgb(0%,0%,0%); fill-opacity: 1;stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 383.429688 34.257812 C 383.429688 36.660156 379.828125 36.660156 379.828125 34.257812 C 379.828125 31.859375 383.429688 31.859375 383.429688 34.257812 "/>
+<path style="fill-rule: nonzero; fill: rgb(74.509804%,74.509804%,74.509804%); fill-opacity: 1;stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 401.613281 34.257812 C 401.613281 37.859375 396.214844 37.859375 396.214844 34.257812 C 396.214844 30.660156 401.613281 30.660156 401.613281 34.257812 "/>
+<path style="fill-rule: nonzero; fill: rgb(74.509804%,74.509804%,74.509804%); fill-opacity: 1;stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 413.804688 36.652344 L 418.589844 36.652344 L 418.589844 31.867188 L 413.804688 31.867188 Z M 413.804688 36.652344 "/>
+<path style="fill-rule: nonzero; fill: rgb(74.509804%,74.509804%,74.509804%); fill-opacity: 1;stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 433.480469 37.644531 L 433.480469 37.644531 L 436.867188 34.257812 L 433.480469 30.875 L 430.097656 34.257812 Z M 433.480469 37.644531 "/>
+<path style="fill-rule: nonzero; fill: rgb(74.509804%,74.509804%,74.509804%); fill-opacity: 1;stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 450.765625 30.058594 L 450.765625 30.058594 L 454.402344 36.359375 L 447.128906 36.359375 Z M 450.765625 30.058594 "/>
+<path style="fill-rule: nonzero; fill: rgb(74.509804%,74.509804%,74.509804%); fill-opacity: 1;stroke-width: 0.75; stroke-linecap: round; stroke-linejoin: round; stroke: rgb(0%,0%,0%); stroke-opacity: 1;stroke-miterlimit: 10; " d="M 468.050781 38.457031 L 468.050781 38.457031 L 471.6875 32.160156 L 464.414062 32.160156 Z M 468.050781 38.457031 "/>
+</g>
+</g>
+</svg>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/mai.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/figures/mai.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/AnIndex	(revision 2476)
@@ -0,0 +1,129 @@
+graphics-package	graphics-package
+.filled.contour	filled.contour
+.Pars	par
+abline	abline
+arrows	arrows
+asp	plot.window
+assocplot	assocplot
+Axis	zAxis
+axis	axis
+axis.Date	axis.POSIXct
+axis.POSIXct	axis.POSIXct
+axTicks	axTicks
+barplot	barplot
+barplot.default	barplot
+box	box
+boxplot	boxplot
+boxplot.default	boxplot
+boxplot.formula	boxplot
+boxplot.matrix	boxplot.matrix
+bxp	bxp
+cdplot	cdplot
+cdplot.default	cdplot
+cdplot.formula	cdplot
+clip	clip
+close.screen	screen
+co.intervals	coplot
+contour	contour
+contour.default	contour
+coplot	coplot
+curve	curve
+dotchart	dotchart
+dotplot	graphics-defunct
+erase.screen	screen
+filled.contour	filled.contour
+fourfoldplot	fourfoldplot
+frame	frame
+graphical parameter	par
+graphical parameters	par
+graphics	graphics-package
+graphics-defunct	graphics-defunct
+grconvertX	convertXY
+grconvertY	convertXY
+grid	grid
+hist	hist
+hist.Date	hist.POSIXt
+hist.default	hist
+hist.POSIXt	hist.POSIXt
+identify	identify
+identify.default	identify
+image	image
+image.default	image
+layout	layout
+layout.show	layout
+lcm	layout
+legend	legend
+lines	lines
+lines.default	lines
+lines.formula	plot.formula
+lines.histogram	plothistogram
+lines.table	plot.table
+locator	locator
+matlines	matplot
+matplot	matplot
+matpoints	matplot
+mosaicplot	mosaicplot
+mosaicplot.default	mosaicplot
+mosaicplot.formula	mosaicplot
+mtext	mtext
+pairs	pairs
+pairs.default	pairs
+pairs.formula	pairs
+panel.smooth	panel.smooth
+par	par
+pch	points
+persp	persp
+persp.default	persp
+pie	pie
+piechart	graphics-defunct
+plot	plot
+plot.data.frame	plot.dataframe
+plot.default	plot.default
+plot.design	plot.design
+plot.factor	plot.factor
+plot.formula	plot.formula
+plot.function	curve
+plot.histogram	plothistogram
+plot.new	frame
+plot.raster	plot.raster
+plot.table	plot.table
+plot.window	plot.window
+plot.xy	plot.xy
+points	points
+points.default	points
+points.formula	plot.formula
+points.table	plot.table
+polygon	polygon
+polypath	polypath
+rasterImage	rasterImage
+rect	rect
+rug	rug
+screen	screen
+segments	segments
+smoothScatter	smoothScatter
+spineplot	spineplot
+spineplot.default	spineplot
+spineplot.formula	spineplot
+split.screen	screen
+stars	stars
+stem	stem
+strheight	strwidth
+stripchart	stripchart
+stripchart.default	stripchart
+stripchart.formula	stripchart
+stripplot	graphics-defunct
+strwidth	strwidth
+sunflowerplot	sunflowerplot
+sunflowerplot.default	sunflowerplot
+sunflowerplot.formula	sunflowerplot
+symbols	symbols
+text	text
+text.default	text
+text.formula	plot.formula
+title	title
+xinch	units
+xlim	plot.window
+xspline	xspline
+xyinch	units
+yinch	units
+ylim	plot.window
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/graphics.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/graphics.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/graphics.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/help/graphics.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/libs/graphics.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/libs/graphics.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/NAMESPACE	(revision 2476)
@@ -0,0 +1,74 @@
+useDynLib(graphics, 
+          C_contour, C_contourDef, C_filledcontour, C_image,
+          C_persp, C_abline, C_arrows, C_axis, C_box, C_clip,
+          C_convertX, C_convertY, C_dend, C_dendwindow, C_erase,
+          C_layout, C_mtext, C_par, C_path, C_plotXY, C_plot_window,
+          C_polygon, C_raster, C_rect, C_segments, C_strHeight,
+          C_strWidth, C_symbols, C_text, C_title, C_xspline,
+          C_plot_new, C_locator, C_identify, C_StemLeaf, C_BinCount,
+          RunregisterBase)
+
+import(grDevices)
+
+export(abline, arrows, assocplot, axTicks, Axis, axis, axis.Date,
+       axis.POSIXct, barplot, box, boxplot, bxp, cdplot, clip,
+       close.screen, co.intervals, contour, coplot, curve, dotchart,
+       erase.screen, filled.contour, fourfoldplot, frame, grconvertX,
+       grconvertY, grid, hist, identify, image, layout, layout.show,
+       lcm, legend, lines, locator, matlines, matplot, matpoints,
+       mosaicplot, mtext, pairs, panel.smooth, par, persp, pie, plot,
+       plot.design, plot.function, plot.new, plot.window, plot.xy,
+       points, polygon, polypath, rasterImage, rect, rug, screen,
+       segments, smoothScatter, spineplot, split.screen, stars, stem,
+       strheight, stripchart, strwidth, sunflowerplot, symbols, text,
+       title, xinch, xspline, xyinch, yinch, .filled.contour)
+
+# leave most of the default methods visible as people seem to call them.
+export(barplot.default, boxplot.default, boxplot.matrix,
+       contour.default, hist.default, image.default, lines.default,
+       pairs.default, plot.default, points.default, text.default)
+
+S3method(Axis, default)
+S3method(Axis, Date)
+S3method(Axis, POSIXt)
+S3method(Axis, table)
+S3method(barplot, default)
+S3method(boxplot, default)
+S3method(boxplot, formula)
+S3method(boxplot, matrix)
+S3method(cdplot, default)
+S3method(cdplot, formula)
+S3method(contour, default)
+S3method(hist, Date)
+S3method(hist, default)
+S3method(hist, POSIXt)
+S3method(identify, default)
+S3method(image, default)
+S3method(lines, default)
+S3method(lines, formula)
+S3method(lines, histogram)
+S3method(lines, table)
+S3method(mosaicplot, default)
+S3method(mosaicplot, formula)
+S3method(pairs, default)
+S3method(pairs, formula)
+S3method(persp, default)
+S3method(plot, data.frame)
+S3method(plot, default)
+S3method(plot, factor)
+S3method(plot, formula)
+S3method(plot, "function")
+S3method(plot, histogram)
+S3method(plot, raster)
+S3method(plot, table)
+S3method(points, default)
+S3method(points, formula)
+S3method(points, table)
+S3method(spineplot, default)
+S3method(spineplot, formula)
+S3method(stripchart, default)
+S3method(stripchart, formula)
+S3method(sunflowerplot, default)
+S3method(sunflowerplot, formula)
+S3method(text, default)
+S3method(text, formula)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/R/graphics.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/R/graphics.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/R/graphics
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/R/graphics	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/R/graphics	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/R/graphics.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/R/graphics.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/graphics/DESCRIPTION	(revision 2476)
@@ -0,0 +1,11 @@
+Package: graphics
+Version: 3.3.2
+Priority: base
+Title: The R Graphics Package
+Author: R Core Team and contributors worldwide
+Maintainer: R Core Team <R-core@r-project.org>
+Description: R functions for base graphics.
+Imports: grDevices
+License: Part of R 3.3.2
+NeedsCompilation: yes
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:32:25 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/implicit.re
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/implicit.re	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/implicit.re	(revision 2476)
@@ -0,0 +1,110 @@
+#include "yaml.h"
+
+yaml_char_t *
+find_implicit_tag(str, len)
+  const yaml_char_t *str;
+  size_t len;
+{
+  /* This bit was taken from implicit.re, which is in the Syck library.
+   *
+   * Copyright (C) 2003 why the lucky stiff */
+
+  const yaml_char_t *cursor, *limit, *marker;
+  cursor = str;
+  limit = str + len;
+
+/*!re2c
+
+re2c:define:YYCTYPE  = "yaml_char_t";
+re2c:define:YYCURSOR = cursor;
+re2c:define:YYMARKER = marker;
+re2c:define:YYLIMIT  = limit;
+re2c:yyfill:enable   = 0;
+
+NULL = [\000] ;
+ANY = [\001-\377] ;
+DIGIT = [0-9] ;
+DIGITSC = [0-9,] ;
+DIGITSP = [0-9.] ;
+YEAR = DIGIT DIGIT DIGIT DIGIT ;
+MON = DIGIT DIGIT ;
+SIGN = [-+] ;
+HEX = [0-9a-fA-F,] ;
+OCT = [0-7,] ;
+INTHEX = SIGN? "0x" HEX+ ; 
+INTOCT = SIGN? "0" OCT+ ;
+INTSIXTY = SIGN? DIGIT DIGITSC* ( ":" [0-5]? DIGIT )+ ;
+INTCANON = SIGN? ( "0" | [1-9] DIGITSC* ) ;
+FLOATFIX = SIGN? DIGIT DIGITSC* "." DIGITSC* ;
+FLOATEXP = SIGN? DIGIT DIGITSC* "." DIGITSP* [eE] SIGN DIGIT+ ;
+FLOATSIXTY = SIGN? DIGIT DIGITSC* ( ":" [0-5]? DIGIT )+ "." DIGITSC* ;
+INF = ( "inf" | "Inf" | "INF" ) ;
+FLOATINF = [+]? "." INF ;
+FLOATNEGINF = [-] "." INF ;
+FLOATNAN = "." ( "nan" | "NaN" | "NAN" ) ;
+NULLTYPE = ( "~" | "null" | "Null" | "NULL" )? ;
+BOOLYES = ( "y" | "Y" | "yes" | "Yes" | "YES" | "true" | "True" | "TRUE" | "on" | "On" | "ON" ) ;
+BOOLNO = ( "n" | "N" | "no" | "No" | "NO" | "false" | "False" | "FALSE" | "off" | "Off" | "OFF" ) ;
+INTNA = ".na.integer" ;
+FLOATNA = ".na.real" ;
+STRNA = ".na.character" ;
+BOOLNA = ".na" ;
+TIMEZ = ( "Z" | [-+] DIGIT DIGIT ( ":" DIGIT DIGIT )? ) ;
+TIMEYMD = YEAR "-" MON "-" MON ;
+TIMEISO = YEAR "-" MON "-" MON [Tt] MON ":" MON ":" MON ( "." DIGIT* )? TIMEZ ;
+TIMESPACED = YEAR "-" MON "-" MON [ \t]+ MON ":" MON ":" MON ( "." DIGIT* )? [ \t]+ TIMEZ ;
+TIMECANON = YEAR "-" MON "-" MON "T" MON ":" MON ":" MON ( "." DIGIT* [1-9]+ )? "Z" ;
+MERGE = "<<" ;
+DEFAULTKEY = "=" ;
+
+NULLTYPE NULL       {   return (yaml_char_t *)"null"; }
+
+BOOLYES NULL        {   return (yaml_char_t *)"bool#yes"; }
+
+BOOLNO NULL         {   return (yaml_char_t *)"bool#no"; }
+
+BOOLNA NULL         {   return (yaml_char_t *)"bool#na"; }
+
+INTHEX NULL         {   return (yaml_char_t *)"int#hex"; }
+
+INTOCT NULL         {   return (yaml_char_t *)"int#oct"; }
+
+INTSIXTY NULL       {   return (yaml_char_t *)"int#base60"; }
+
+INTNA NULL          {   return (yaml_char_t *)"int#na"; }
+
+INTCANON NULL       {   return (yaml_char_t *)"int"; }
+
+FLOATFIX NULL       {   return (yaml_char_t *)"float#fix"; }
+
+FLOATEXP NULL       {   return (yaml_char_t *)"float#exp"; }
+
+FLOATSIXTY NULL     {   return (yaml_char_t *)"float#base60"; }
+
+FLOATINF NULL       {   return (yaml_char_t *)"float#inf"; }
+
+FLOATNEGINF NULL    {   return (yaml_char_t *)"float#neginf"; }
+
+FLOATNAN NULL       {   return (yaml_char_t *)"float#nan"; }
+
+FLOATNA NULL        {   return (yaml_char_t *)"float#na"; }
+
+TIMEYMD NULL        {   return (yaml_char_t *)"timestamp#ymd"; }
+
+TIMEISO NULL        {   return (yaml_char_t *)"timestamp#iso8601"; }
+
+TIMESPACED NULL     {   return (yaml_char_t *)"timestamp#spaced"; }
+
+TIMECANON NULL      {   return (yaml_char_t *)"timestamp"; }
+
+STRNA NULL          {   return (yaml_char_t *)"str#na"; }
+
+DEFAULTKEY NULL     {   return (yaml_char_t *)"default"; }
+
+MERGE NULL          {   return (yaml_char_t *)"merge"; }
+
+ANY                 {   return (yaml_char_t *)"str"; }
+
+*/
+
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/R/yaml
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/R/yaml	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/R/yaml	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/R/yaml.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/R/yaml.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/R/yaml.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/R/yaml.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/LICENSE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/LICENSE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/LICENSE	(revision 2476)
@@ -0,0 +1,3 @@
+YEAR: 2008-2014
+COPYRIGHT HOLDER: Jeremy Stephens
+ORGANIZATION: Vanderbilt University
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/tests/test_yaml_load_file.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/tests/test_yaml_load_file.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/tests/test_yaml_load_file.R	(revision 2476)
@@ -0,0 +1,21 @@
+context("yaml.load_file")
+
+test_that("reading from a connection works", {
+  cat("foo: 123", file="files/foo.yml", sep="\n")
+  foo <- file('files/foo.yml', 'r')
+  x <- yaml.load_file(foo)
+  close(foo)
+  unlink("files/foo.yml")
+  expect_equal(123L, x$foo)
+})
+
+test_that("reading from specified filename works", {
+  cat("foo: 123", file="files/foo.yml", sep="\n")
+  x <- yaml.load_file('files/foo.yml')
+  unlink("files/foo.yml")
+  expect_equal(123L, x$foo)
+})
+
+test_that("reading a complicated document works", {
+  x <- yaml.load_file('files/test.yml')
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/tests/test_yaml_load.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/tests/test_yaml_load.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/tests/test_yaml_load.R	(revision 2476)
@@ -0,0 +1,497 @@
+context("yaml.load")
+
+test_that("named list is not returned", {
+  x <- yaml.load("hey: man\n123: 456\n", FALSE)
+  expect_equal(2L, length(x))
+  expect_equal(2L, length(attr(x, "keys")))
+
+  x <- yaml.load("- dude\n- sup\n- 1.2345", FALSE)
+  expect_equal(3L, length(x))
+  expect_equal(0L, length(attr(x, "keys")))
+  expect_equal("sup", x[[2]])
+
+  x <- yaml.load("dude:\n  - 123\n  - sup", FALSE)
+  expect_equal(1L, length(x))
+  expect_equal(1L, length(attr(x, "keys")))
+  expect_equal(2L, length(x[[1]]))
+})
+
+test_that("conflicts are handled", {
+  expect_that(yaml.load("hey: buddy\nhey: guy"), throws_error());
+})
+
+test_that("named list is returned", {
+  x <- yaml.load("hey: man\n123: 456\n", TRUE)
+  expect_equal(2L, length(x))
+  expect_equal(2L, length(names(x)))
+  expect_equal(c("123", "hey"), sort(names(x)))
+  expect_equal("man", x$hey)
+})
+
+test_that("uniform sequences are coerced", {
+  x <- yaml.load("- 1\n- 2\n- 3")
+  expect_equal(1:3, x)
+
+  x <- yaml.load("- yes\n- no\n- yes")
+  expect_equal(c(TRUE, FALSE, TRUE), x)
+
+  x <- yaml.load("- 3.1\n- 3.14\n- 3.141")
+  expect_equal(c(3.1, 3.14, 3.141), x)
+
+  x <- yaml.load("- hey\n- hi\n- hello")
+  expect_equal(c("hey", "hi", "hello"), x)
+})
+
+test_that("tag type conflicts throws error", {
+  expect_that(yaml.load("!!str [1, 2, 3]"), throws_error())
+  expect_that(yaml.load("!!str {foo: bar}"), throws_error())
+})
+
+test_that("sequences are not collapsed", {
+  x <- yaml.load("- [1, 2]\n- 3\n- [4, 5]")
+  expect_equal(list(1:2, 3L, 4:5), x)
+})
+
+test_that("named maps are merged", {
+  x <- yaml.load("foo: bar\n<<: {baz: boo}", TRUE)
+  expect_equal(2L, length(x))
+  expect_equal("bar", x$foo)
+  expect_equal("boo", x$baz)
+
+  x <- yaml.load("foo: bar\n<<: [{quux: quux}, {foo: doo}, {foo: junk}, {baz: blah}, {baz: boo}]", TRUE)
+  expect_equal(3L, length(x))
+  expect_equal("blah", x$baz)
+  expect_equal("bar", x$foo)
+  expect_equal("quux", x$quux)
+
+  x <- yaml.load("foo: bar\n<<: {foo: baz}\n<<: {foo: quux}")
+  expect_equal(1L, length(x))
+  expect_equal("bar", x$foo)
+
+  x <- yaml.load("<<: {foo: baz}\n<<: {foo: quux}\nfoo: bar")
+  expect_equal(1L, length(x))
+  expect_equal("baz", x$foo)
+})
+
+test_that("unnamed maps are merged", {
+  x <- yaml.load("foo: bar\n<<: {baz: boo}", FALSE)
+  expect_equal(2L, length(x))
+  expect_equal(list("foo", "baz"), attr(x, 'keys'))
+  expect_equal("bar", x[[1]])
+  expect_equal("boo", x[[2]])
+
+  x <- yaml.load("foo: bar\n<<: [{quux: quux}, {foo: doo}, {baz: boo}]", FALSE)
+  expect_equal(3L, length(x))
+  expect_equal(list("foo", "quux", "baz"), attr(x, 'keys'))
+  expect_equal("bar", x[[1]])
+  expect_equal("quux", x[[2]])
+  expect_equal("boo", x[[3]])
+})
+
+test_that("merging duplicate keys throws an error", {
+  expect_that(yaml.load("foo: bar\nfoo: baz\n<<: {foo: quux}", TRUE),
+    throws_error())
+})
+
+test_that("invalid merges throw errors", {
+  expect_that(yaml.load("foo: bar\n<<: [{leet: hax}, blargh, 123]", TRUE),
+    throws_error())
+
+  expect_that(yaml.load("foo: bar\n<<: [123, blargh, {leet: hax}]", TRUE),
+    throws_error())
+
+  expect_that(yaml.load("foo: bar\n<<: junk", TRUE),
+    throws_error())
+})
+
+test_that("syntax errors throw errors", {
+  expect_that(yaml.load("[whoa, this is some messed up]: yaml?!: dang"),
+    throws_error())
+})
+
+test_that("null types are converted", {
+  x <- yaml.load("~")
+  expect_equal(NULL, x)
+})
+
+#test_should_handle_binary_type <- function() {
+#  x <- yaml.load("!!binary 0b101011")
+#  expect_equal("0b101011", x)
+#}
+
+test_that("bool yes type is converted", {
+  x <- yaml.load("yes")
+  expect_equal(TRUE, x)
+})
+
+test_that("bool no type is converted", {
+  x <- yaml.load("no")
+  expect_equal(FALSE, x)
+})
+
+test_that("int hex type is converted", {
+  x <- yaml.load("0xF")
+  expect_equal(15L, x)
+})
+
+test_that("int oct type is converted", {
+  x <- yaml.load("015")
+  expect_equal(13L, x)
+})
+
+#test_should_handle_int_base60_type <- function() {
+#  x <- yaml.load("1:20")
+#  expect_equal("1:20", x)
+#}
+
+test_that("int type is converted", {
+  x <- yaml.load("31337")
+  expect_equal(31337L, x)
+})
+
+test_that("explicit int type is converted", {
+  x <- yaml.load("!!int 31337")
+  expect_equal(31337L, x)
+})
+
+#test_should_handle_float_base60_type <- function() {
+#  x <- yaml.load("1:20.5")
+#  expect_equal("1:20.5", x)
+#}
+
+test_that("float nan type is converted", {
+  x <- yaml.load(".NaN")
+  expect_true(is.nan(x))
+})
+
+test_that("float inf type is converted", {
+  x <- yaml.load(".inf")
+  expect_equal(Inf, x)
+})
+
+test_that("float neginf type is converted", {
+  x <- yaml.load("-.inf")
+  expect_equal(-Inf, x)
+})
+
+test_that("float type is converted", {
+  x <- yaml.load("123.456")
+  expect_equal(123.456, x)
+})
+
+#test_should_handle_timestamp_iso8601_type <- function() {
+#  x <- yaml.load("!timestamp#iso8601 2001-12-14t21:59:43.10-05:00")
+#  expect_equal("2001-12-14t21:59:43.10-05:00", x)
+#}
+
+#test_should_handle_timestamp_spaced_type <- function() {
+#  x <- yaml.load("!timestamp#spaced 2001-12-14 21:59:43.10 -5")
+#  expect_equal("2001-12-14 21:59:43.10 -5", x)
+#}
+
+#test_should_handle_timestamp_ymd_type <- function() {
+#  x <- yaml.load("!timestamp#ymd 2008-03-03")
+#  expect_equal("2008-03-03", x)
+#}
+
+#test_should_handle_timestamp_type <- function() {
+#  x <- yaml.load("!timestamp 2001-12-14t21:59:43.10-05:00")
+#  expect_equal("2001-12-14t21:59:43.10-05:00", x)
+#}
+
+test_that("aliases are handled", {
+  x <- yaml.load("- &foo bar\n- *foo")
+  expect_equal(c("bar", "bar"), x)
+})
+
+test_that("str type is converted", {
+  x <- yaml.load("lickety split")
+  expect_equal("lickety split", x)
+})
+
+test_that("bad anchors are handled", {
+  x <- yaml.load("*blargh")
+  expected <- "_yaml.bad-anchor_"
+  class(expected) <- "_yaml.bad-anchor_"
+  expect_equal(expected, x)
+})
+
+test_that("custom null handler is applied", {
+  x <- yaml.load("~", handlers=list("null"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom binary handler is applied", {
+  x <- yaml.load("!binary 0b101011", handlers=list("binary"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom bool yes handler is applied", {
+  x <- yaml.load("yes", handlers=list("bool#yes"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom bool no handler is applied", {
+  x <- yaml.load("no", handlers=list("bool#no"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom int hex handler is applied", {
+  x <- yaml.load("0xF", handlers=list("int#hex"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom int oct handler is applied", {
+  x <- yaml.load("015", handlers=list("int#oct"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom int base60 handler is applied", {
+  x <- yaml.load("1:20", handlers=list("int#base60"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom int handler is applied", {
+  x <- yaml.load("31337", handlers=list("int"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom float base60 handler is applied", {
+  x <- yaml.load("1:20.5", handlers=list("float#base60"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom float nan handler is applied", {
+  x <- yaml.load(".NaN", handlers=list("float#nan"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom float inf handler is applied", {
+  x <- yaml.load(".inf", handlers=list("float#inf"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom float neginf handler is applied", {
+  x <- yaml.load("-.inf", handlers=list("float#neginf"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom float handler is applied", {
+  x <- yaml.load("123.456", handlers=list("float#fix"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom timestamp iso8601 handler is applied", {
+  x <- yaml.load("2001-12-14t21:59:43.10-05:00", handlers=list("timestamp#iso8601"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+#test_should_use_custom_timestamp_spaced_handler <- function() {
+#  x <- yaml.load('!"timestamp#spaced" 2001-12-14 21:59:43.10 -5', handlers=list("timestamp#spaced"=function(x) { "argh!" }))
+#  expect_equal("argh!", x)
+#}
+
+test_that("custom timestamp ymd handler is applied", {
+  x <- yaml.load("2008-03-03", handlers=list("timestamp#ymd"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("custom merge handler is NOT applied", {
+  x <- yaml.load("foo: &foo\n  bar: 123\n  baz: 456\n\njunk:\n  <<: *foo\n  bah: 789", handlers=list("merge"=function(x) { "argh!" }))
+  expect_equal(list(foo=list(bar=123, baz=456), junk=list(bar=123, baz=456, bah=789)), x)
+})
+
+test_that("custom str handler is applied", {
+  x <- yaml.load("lickety split", handlers=list("str"=function(x) { "argh!" }))
+  expect_equal("argh!", x)
+})
+
+test_that("handler for unknown type is applied", {
+  x <- yaml.load("!viking pillage", handlers=list(viking=function(x) { paste(x, "the village") }))
+  expect_equal("pillage the village", x)
+})
+
+test_that("custom seq handler is applied", {
+  x <- yaml.load("- 1\n- 2\n- 3", handlers=list(seq=function(x) { as.integer(x) + 3L }))
+  expect_equal(4:6, x)
+})
+
+test_that("custom map handler is applied", {
+  x <- yaml.load("foo: bar", handlers=list(map=function(x) { x$foo <- paste(x$foo, "yarr"); x }))
+  expect_equal("bar yarr", x$foo)
+})
+
+test_that("custom typed seq handler is applied", {
+  x <- yaml.load("!foo\n- 1\n- 2", handlers=list(foo=function(x) { as.integer(x) + 1L }))
+  expect_equal(2:3, x)
+})
+
+test_that("custom typed map handler is applied", {
+  x <- yaml.load("!foo\nuno: 1\ndos: 2", handlers=list(foo=function(x) { x$uno <- "uno"; x$dos <- "dos"; x }))
+  expect_equal(list(uno="uno", dos="dos"), x)
+})
+
+# NOTE: this works, but R_tryEval doesn't return when called non-interactively
+#test_should_handle_a_bad_handler <- function() {
+#  x <- yaml.load("foo", handlers=list(str=function(x) { blargh }))
+#  str(x)
+#}
+
+test_that("empty documents are loaded", {
+  x <- yaml.load("")
+  expect_equal(NULL, x)
+  x <- yaml.load("# this document only has\n   # wickedly awesome comments")
+  expect_equal(NULL, x)
+})
+
+test_that("omaps are loaded", {
+  x <- yaml.load("--- !omap\n- foo:\n  - 1\n  - 2\n- bar:\n  - 3\n  - 4")
+  expect_equal(2L, length(x))
+  expect_equal(c("foo", "bar"), names(x))
+  expect_equal(1:2, x$foo)
+  expect_equal(3:4, x$bar)
+})
+
+test_that("omaps are loaded when named = FALSE", {
+  x <- yaml.load("--- !omap\n- 123:\n  - 1\n  - 2\n- bar:\n  - 3\n  - 4", FALSE)
+  expect_equal(2L, length(x))
+  expect_equal(list(123L, "bar"), attr(x, "keys"))
+  expect_equal(1:2, x[[1]])
+  expect_equal(3:4, x[[2]])
+})
+
+test_that("named opam with duplicate key causes error", {
+  expect_that(yaml.load("--- !omap\n- foo:\n  - 1\n  - 2\n- foo:\n  - 3\n  - 4"),
+    throws_error())
+})
+
+test_that("unnamed omap with duplicate key causes error", {
+  expect_that(yaml.load("--- !omap\n- foo:\n  - 1\n  - 2\n- foo:\n  - 3\n  - 4", FALSE),
+    throws_error())
+})
+
+test_that("invalid omap causes error", {
+  expect_that(yaml.load("--- !omap\nhey!"),
+    throws_error())
+
+  expect_that(yaml.load("--- !omap\n- sup?"),
+    throws_error())
+})
+
+test_that("expressions are converted", {
+  x <- yaml.load("!expr |\n  function() \n  {\n    'hey!'\n  }")
+  expect_equal("function", class(x))
+  expect_equal("hey!", x())
+})
+
+test_that("invalid expressions cause error", {
+  expect_that(yaml.load("!expr |\n  1+"),
+    throws_error())
+})
+
+# NOTE: this works, but R_tryEval doesn't return when called non-interactively
+#test_should_error_for_expressions_with_eval_errors <- function() {
+#  x <- try(yaml.load("!expr |\n  1 + non.existent.variable"))
+#  assert(inherits(x, "try-error"))
+#}
+
+test_that("maps are in ordered", {
+  x <- yaml.load("{a: 1, b: 2, c: 3}")
+  expect_equal(c('a', 'b', 'c'), names(x))
+})
+
+test_that("illegal recursive anchor is handled", {
+  x <- yaml.load('&foo {foo: *foo}')
+  expected <- "_yaml.bad-anchor_"
+  class(expected) <- "_yaml.bad-anchor_"
+  expect_equal(expected, x$foo)
+})
+
+test_that("dereferenced aliases have unshared names", {
+  x <- yaml.load('{foo: &foo {one: 1, two: 2}, bar: *foo}')
+  x$foo$one <- 'uno'
+  expect_equal(1L, x$bar$one)
+})
+
+test_that("multiple anchors are handled", {
+  x <- yaml.load('{foo: &foo {one: 1}, bar: &bar {one: 1}, baz: *foo, quux: *bar}')
+})
+
+test_that("quoted strings are preserved", {
+  x <- yaml.load("'12345'")
+  expect_equal("12345", x)
+})
+
+test_that("Inf is loaded properly", {
+  result <- yaml.load(".inf\n...\n")
+  expect_equal(Inf, result, expected.label = result)
+})
+
+test_that("-Inf is loaded properly", {
+  result <- yaml.load("-.inf\n...\n")
+  expect_equal(-Inf, result, expected.label = result)
+})
+
+test_that("NaN is loaded properly", {
+  result <- yaml.load(".nan\n...\n")
+  expect_equal(NaN, result, expected.label = result)
+})
+
+test_that("NA (logical) is loaded properly", {
+  result <- yaml.load(".na\n...\n")
+  expect_equal(NA, result, expected.label = result)
+})
+
+test_that("NA (numeric) is loaded properly", {
+  result <- yaml.load(".na.real\n...\n")
+  expect_equal(NA_real_, result, expected.label = result)
+})
+
+test_that("NA (integer) is loaded properly", {
+  result <- yaml.load(".na.integer\n...\n")
+  expect_equal(NA_integer_, result, expected.label = result)
+})
+
+test_that("NA (string) is loaded properly", {
+  result <- yaml.load(".na.character\n...\n")
+  expect_equal(NA_character_, result, expected.label = result)
+})
+
+test_that("TRUE is loaded properly from 'y'", {
+  result <- yaml.load("y\n...\n")
+  expect_equal(TRUE, result, expected.label = result)
+})
+
+test_that("FALSE is loaded properly from 'n'", {
+  result <- yaml.load("n\n...\n")
+  expect_equal(FALSE, result, expected.label = result)
+})
+
+test_that("numeric sequence with NAs loads properly", {
+  result <- yaml.load("[1.2, 3.4, .na.real]")
+  expect_equal(c(1.2, 3.4, NA), result, expected.label = result)
+})
+
+test_that("integer sequence with NAs loads properly", {
+  result <- yaml.load("[1, 2, .na.integer]")
+  expect_equal(c(1, 2, NA), result, expected.label = result)
+})
+
+test_that("string sequence with NAs loads properly", {
+  result <- yaml.load("[foo, bar, .na.character]")
+  expect_equal(c("foo", "bar", NA), result, expected.label = result)
+})
+
+test_that("logical sequence with NAs loads properly", {
+  result <- yaml.load("[y, n, .na]")
+  expect_equal(c(TRUE, FALSE, NA), result, expected.label = result)
+})
+
+test_that("numeric sequence with NaNs loads properly", {
+  result <- yaml.load("[1.2, 3.4, .nan]")
+  expect_equal(c(1.2, 3.4, NaN), result, expected.label = result)
+})
+
+test_that("numeric represented in exponential form is loaded properly", {
+  expect_equal(1000000, yaml.load("1.0e+06"))
+});
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/tests/files/test.yml
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/tests/files/test.yml	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/tests/files/test.yml	(revision 2476)
@@ -0,0 +1,18 @@
+foo: &foo
+  one: 1
+  two: 2
+bar: &bar
+  three: 3
+  four: 4
+baz:
+  - *foo
+  - *bar
+quux: &quux
+  <<: *foo
+  <<: *bar
+  five: 5
+  six: 6
+corge:
+  - *quux
+  - xyzzy:
+      <<: *quux
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/tests/test_as_yaml.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/tests/test_as_yaml.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/tests/test_as_yaml.R	(revision 2476)
@@ -0,0 +1,231 @@
+context("as.yaml")
+
+test_that("named list is converted", {
+  expect_equal("foo: bar\n", as.yaml(list(foo="bar")))
+
+  x <- list(foo=1:10, bar=c("junk", "test"))
+  y <- yaml.load(as.yaml(x))
+  expect_equal(y$foo, x$foo)
+  expect_equal(y$bar, x$bar)
+
+  x <- list(foo=1:10, bar=list(foo=11:20, bar=letters[1:10]))
+  y <- yaml.load(as.yaml(x))
+  expect_equal(x$foo, y$foo)
+  expect_equal(x$bar$foo, y$bar$foo)
+  expect_equal(x$bar$bar, y$bar$bar)
+
+  # nested lists
+  x <- list(foo = list(a = 1, b = 2), bar = list(b = 4))
+  y <- yaml.load(as.yaml(x))
+  expect_equal(x$foo$a, y$foo$a)
+  expect_equal(x$foo$b, y$foo$b)
+  expect_equal(x$bar$b, y$bar$b)
+})
+
+test_that("data frame is converted", {
+  x <- data.frame(a=1:10, b=letters[1:10], c=11:20)
+  y <- as.data.frame(yaml.load(as.yaml(x)))
+  expect_equal(x$a, y$a)
+  expect_equal(x$b, y$b)
+  expect_equal(x$c, y$c)
+
+  x <- as.yaml(x, column.major = FALSE)
+  y <- yaml.load(x)
+  expect_equal(5L,  y[[5]]$a)
+  expect_equal("e", y[[5]]$b)
+  expect_equal(15L, y[[5]]$c)
+})
+
+test_that("empty nested list is converted", {
+  x <- list(foo=list())
+  expect_equal("foo: []\n", as.yaml(x))
+})
+
+test_that("empty nested data frame is converted", {
+  x <- list(foo=data.frame())
+  expect_equal("foo: {}\n", as.yaml(x))
+})
+
+test_that("empty nested vector is converted", {
+  x <- list(foo=character())
+  expect_equal("foo: []\n", as.yaml(x))
+})
+
+test_that("list is converted as omap", {
+  x <- list(a=1:2, b=3:4)
+  expected <- "!omap\n- a:\n  - 1\n  - 2\n- b:\n  - 3\n  - 4\n"
+  expect_equal(expected, as.yaml(x, omap=TRUE))
+})
+
+test_that("nested list is converted as omap", {
+  x <- list(a=list(c=list(e=1L, f=2L)), b=list(d=list(g=3L, h=4L)))
+  expected <- "!omap\n- a: !omap\n  - c: !omap\n    - e: 1\n    - f: 2\n- b: !omap\n  - d: !omap\n    - g: 3\n    - h: 4\n"
+  expect_equal(expected, as.yaml(x, omap=TRUE))
+})
+
+test_that("omap is loaded", {
+  x <- yaml.load(as.yaml(list(a=1:2, b=3:4, c=5:6, d=7:8), omap=TRUE))
+  expect_equal(c("a", "b", "c", "d"), names(x))
+})
+
+test_that("numeric is converted correctly", {
+  result <- as.yaml(c(1, 5, 10, 15))
+  expect_equal(result, "- 1.0\n- 5.0\n- 10.0\n- 15.0\n", label = result)
+})
+
+test_that("multiline string is converted", {
+  expect_equal("|-\n  foo\n  bar\n", as.yaml("foo\nbar"))
+  expect_equal("- foo\n- |-\n  bar\n  baz\n", as.yaml(c("foo", "bar\nbaz")))
+  expect_equal("foo: |-\n  foo\n  bar\n", as.yaml(list(foo = "foo\nbar")))
+  expect_equal("a:\n- foo\n- bar\n- |-\n  baz\n  quux\n", as.yaml(data.frame(a = c('foo', 'bar', 'baz\nquux'))))
+})
+
+test_that("function is converted", {
+  x <- function() { runif(100) }
+  expected <- "!expr |\n  function ()\n  {\n      runif(100)\n  }\n"
+  result <- as.yaml(x)
+  expect_equal(expected, result)
+})
+
+test_that("list with unnamed items is converted", {
+  x <- list(foo=list(list(a = 1L, b = 2L), list(a = 3L, b = 4L)))
+  expected <- "foo:
+- a: 1
+  b: 2
+- a: 3
+  b: 4
+"
+  result <- as.yaml(x)
+  expect_equal(result, expected)
+})
+
+test_that("pound signs are escaped in strings", {
+  result <- as.yaml("foo # bar")
+  expect_equal("'foo # bar'\n", result)
+})
+
+test_that("NULL is converted", {
+  expect_equal("~\n...\n", as.yaml(NULL))
+})
+
+test_that("different line seps are used", {
+  result <- as.yaml(c('foo', 'bar'), line.sep = "\n")
+  expect_equal("- foo\n- bar\n", result)
+
+  result <- as.yaml(c('foo', 'bar'), line.sep = "\r\n")
+  expect_equal("- foo\r\n- bar\r\n", result)
+
+  result <- as.yaml(c('foo', 'bar'), line.sep = "\r")
+  expect_equal("- foo\r- bar\r", result)
+})
+
+test_that("custom indent is used", {
+  result <- as.yaml(list(foo=list(bar=list('foo', 'bar'))), indent = 3)
+  expect_equal("foo:\n   bar:\n   - foo\n   - bar\n", result)
+})
+
+test_that("block sequences in mapping context are indented when indent.mapping.sequence is TRUE", {
+  result <- as.yaml(list(foo=list(bar=list('foo', 'bar'))), indent.mapping.sequence = TRUE)
+  expect_equal("foo:\n  bar:\n    - foo\n    - bar\n", result)
+})
+
+test_that("indent value is validated", {
+  expect_that(as.yaml(list(foo=list(bar=list('foo', 'bar'))), indent = 0),
+    throws_error())
+})
+
+test_that("strings are escaped properly", {
+  result <- as.yaml("12345")
+  expect_equal("'12345'\n", result)
+})
+
+test_that("unicode strings are not escaped", {
+  x <- list('име' = 'Александар', 'презиме' = 'Благотић')
+  result <- as.yaml(x, unicode = TRUE)
+  expect_equal("име: Александар\nпрезиме: Благотић\n", result, label = result)
+})
+
+test_that("unicode strings are escaped", {
+  x <- 'é'
+  result <- as.yaml(x, unicode = FALSE)
+  expect_equal("\"\\xE9\"\n", result, expected.label = result)
+})
+
+test_that("unknown objects cause error", {
+  expect_that(as.yaml(expression(foo <- bar)), throws_error())
+})
+
+test_that("Inf is emitted properly", {
+  result <- as.yaml(Inf)
+  expect_equal(".inf\n...\n", result, expected.label = result)
+})
+
+test_that("-Inf is emitted properly", {
+  result <- as.yaml(-Inf)
+  expect_equal("-.inf\n...\n", result, expected.label = result)
+})
+
+test_that("NaN is emitted properly", {
+  result <- as.yaml(NaN)
+  expect_equal(".nan\n...\n", result, expected.label = result)
+})
+
+test_that("NA (logical) is emitted properly", {
+  result <- as.yaml(NA)
+  expect_equal(".na\n...\n", result, expected.label = result)
+})
+
+test_that("NA (numeric) is emitted properly", {
+  result <- as.yaml(NA_real_)
+  expect_equal(".na.real\n...\n", result, expected.label = result)
+})
+
+test_that("NA (integer) is emitted properly", {
+  result <- as.yaml(NA_integer_)
+  expect_equal(".na.integer\n...\n", result, expected.label = result)
+})
+
+test_that("NA (string) is emitted properly", {
+  result <- as.yaml(NA_character_)
+  expect_equal(".na.character\n...\n", result, expected.label = result)
+})
+
+test_that("TRUE is emitted properly", {
+  result <- as.yaml(TRUE)
+  expect_equal("yes\n...\n", result, expected.label = result)
+})
+
+test_that("FALSE is emitted properly", {
+  result <- as.yaml(FALSE)
+  expect_equal("no\n...\n", result, expected.label = result)
+})
+
+test_that("named list keys are escaped properly", {
+  result <- as.yaml(list(n = 123))
+  expect_equal("'n': 123.0\n", result, expected.label = result)
+})
+
+test_that("data frame keys are escaped properly when row major", {
+  result <- as.yaml(data.frame(n=1:3), column.major = FALSE)
+  expect_equal("- 'n': 1\n- 'n': 2\n- 'n': 3\n", result, expected.label = result)
+})
+
+test_that("scientific notation is valid YAML", {
+  result <- as.yaml(10000000)
+  expect_equal("1.0e+07\n...\n", result, expected.label = result)
+})
+
+test_that("precision must be in the range 1..22", {
+  expect_that(as.yaml(12345, precision = -1),
+    throws_error())
+  expect_that(as.yaml(12345, precision = 0),
+    throws_error())
+  expect_that(as.yaml(12345, precision = 23),
+    throws_error())
+})
+
+test_that("factor with NAs is emitted properly", {
+  x <- factor('foo', levels=c('bar', 'baz'))
+  result <- as.yaml(x)
+  expect_equal(".na.character\n...\n", result, expected.label = result)
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/DESCRIPTION	(revision 2476)
@@ -0,0 +1,16 @@
+Package: yaml
+Type: Package
+Title: Methods to Convert R Data to YAML and Back
+Version: 2.1.14
+Suggests: testthat
+Date: 2016-11-12
+Author: Jeremy Stephens <jeremy.stephens@vanderbilt.edu>
+Maintainer: Jeremy Stephens <jeremy.stephens@vanderbilt.edu>
+License: BSD_3_clause + file LICENSE
+Description: Implements the 'libyaml' 'YAML' 1.1 parser and emitter (<http://pyyaml.org/wiki/LibYAML>) for R.
+NeedsCompilation: yes
+Packaged: 2016-11-12 15:41:59 UTC; viking
+Repository: CRAN
+Date/Publication: 2016-11-12 19:55:17
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-11-13 11:17:05 UTC; unix
+Archs: yaml.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/html/00Index.html	(revision 2476)
@@ -0,0 +1,30 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Methods to Convert R Data to YAML and Back</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Methods to Convert R Data to YAML and Back
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;yaml&rsquo; version 2.1.14</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="as.yaml.html">as.yaml</a></td>
+<td>Convert an R object into a YAML string</td></tr>
+<tr><td style="width: 25%;"><a href="yaml.load.html">yaml.load</a></td>
+<td>Convert a YAML string into R objects</td></tr>
+<tr><td style="width: 25%;"><a href="yaml.load.html">yaml.load_file</a></td>
+<td>Convert a YAML string into R objects</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/CHANGELOG
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/CHANGELOG	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/CHANGELOG	(revision 2476)
@@ -0,0 +1,98 @@
+v2.1.14
+  - mark character input/output as UTF-8 (patch submitted by Yihui Xie)
+  - update LibYAML to 0.1.7
+
+v2.1.13
+  - fix integer overflow issue
+  - explicitly cast pointers from char to yaml_char_t, and vice versa
+
+v2.1.12
+  - properly emit factors with NAs (bug submitted by Jenny Bryan)
+  - update LibYAML to 0.1.6
+
+v2.1.11
+  - update LibYAML to 0.1.5
+
+v2.1.10
+  - properly escape names in data frames and lists (bug submitted
+    by Paul Hodor)
+  - remove extra digit in Windows when formatting exponential numbers
+
+v2.1.9
+  - CRAN maintainers changed memcpy to memmove
+
+v2.1.8
+  - properly emit and consume numeric values in scientific
+    notiation (bug submitted by Gergely Daróczi)
+  - add 'precision' argument to as.yaml to control how many digits
+    are printed when emitting
+
+v2.1.7
+  - properly emit and consume special values: Inf, -Inf, NaN, NA, TRUE,
+    and FALSE (bug submitted by Richard Cotton)
+    - Inf is emitted as '.inf'
+    - -Inf as '-.inf'
+    - NaN as '.nan'
+    - TRUE is now emitted as 'yes', and FALSE as 'no'
+  - because the YAML specification does not specify how to handle NA values,
+    the various NA types are emitted as follows:
+    - NA: .na
+    - NA_real_: .na.real
+    - NA_integer_: .na.integer
+    - NA_character_: .na.character
+
+v2.1.6
+  - add unicode option to as.yaml() (bug submissions by Gergely Daróczi
+    and Aleksandar Blagotić)
+
+v2.1.5
+  - fix yaml.load() ignoring explicit quotes around strings (bug submitted
+    by Jonas Zimmermann)
+  - fix as.yaml() not quoting strings that need to be quoted
+
+v2.1.4
+  - replace lang5() function for backwards compatibility with R < 2.12.0
+    (bug submitted by Philipp Hofmann)
+
+v2.1.3
+  - fix as.yaml() converting numeric vectors incorrectly (bug submitted
+    by Markus Göker)
+
+v2.1.2
+  - fix multiple anchor bug (bug submitted by apshaar)
+
+v2.1.1
+  - remove redundant yaml-package help page
+  - fix solaris compilation error
+  - remove printf/assert symbols from the compiled library
+
+v2.1.0
+  - re-wrote as.yaml in C (using libyaml's emitter)
+  - removed the `pre.indent` option to as.yaml, mainly because libyaml
+    doesn't support pre-indention and I'm not sure the option is useful
+    anymore; will revisit if requested
+
+v2.0.0
+  - switch from the Syck parser to the libyaml (0.1.4) parser
+  - changed behavior:
+    - sequences of sequences no longer collapse when they contain the same
+      type; ex: yaml.load("[1, [2, 3], 4]") returns list(1L, c(2L, 3L), 4L)
+
+v1.2.0
+  - added support for loading R expressions (using the !expr tag)
+  - added multiline string support
+  - added support for nameless lists in as.yaml (converts to a sequence)
+
+v1.1.0
+  - added support for omaps
+  - added yaml.load_file function to read from files/connections
+  - using format instead of as.character now in as.yaml.default
+
+v1.0.2
+  - fixed as.yaml bug where a nested empty list wasn't converted correctly
+
+v1.0.1
+  - yaml.load will now load empty documents (bug submitted by Jeff Klingner)
+  - as.yaml will return '[]' for empty objects (patch submitted by Brendan O'Connor)
+  - as.yaml will now create valid YAML for a list that contains a list of length
+    one (bug submitted by Gabor Grothendieck)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/INDEX	(revision 2476)
@@ -0,0 +1,2 @@
+as.yaml                 Convert an R object into a YAML string
+yaml.load               Convert a YAML string into R objects
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/THANKS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/THANKS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/THANKS	(revision 2476)
@@ -0,0 +1,6 @@
+Thanks to the following people for helping out:
+- Jeff Horner, for general advice and incorporating the syck parser into this package
+
+Patches submitted by:
+- Brendan O'Connor (dfe10f6)
+- Yihui Xie (d8e65c2, 069bb89)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/help/AnIndex	(revision 2476)
@@ -0,0 +1,3 @@
+as.yaml	as.yaml
+yaml.load	yaml.load
+yaml.load_file	yaml.load
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/help/yaml.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/help/yaml.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/help/yaml.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/help/yaml.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/libs/yaml.so.dSYM/Contents/Resources/DWARF/yaml.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/libs/yaml.so.dSYM/Contents/Resources/DWARF/yaml.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/libs/yaml.so.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/libs/yaml.so.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/libs/yaml.so.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.yaml.so</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/libs/yaml.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/libs/yaml.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/yaml/NAMESPACE	(revision 2476)
@@ -0,0 +1,2 @@
+useDynLib(yaml)
+export(as.yaml, yaml.load_file, yaml.load)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/DESCRIPTION	(revision 2476)
@@ -0,0 +1,36 @@
+Package: mvtnorm
+Title: Multivariate Normal and t Distributions
+Version: 1.0-6
+Date: 2017-03-01
+Authors@R: c(person("Alan", "Genz", role = "aut"),
+             person("Frank", "Bretz", role = "aut"),
+             person("Tetsuhisa", "Miwa", role = "aut"),
+             person("Xuefei", "Mi", role = "aut"),
+             person("Friedrich", "Leisch", role = "ctb"),
+             person("Fabian", "Scheipl", role = "ctb"),
+             person("Bjoern", "Bornkamp", role = "ctb"),
+             person("Martin", "Maechler", role = "ctb"),
+             person("Torsten", "Hothorn", role = c("aut", "cre"),
+                    email = "Torsten.Hothorn@R-project.org"))
+Description: Computes multivariate normal and t probabilities, quantiles,
+  random deviates and densities.
+Imports: stats, methods
+Depends: R(>= 1.9.0)
+License: GPL-2
+URL: http://mvtnorm.R-forge.R-project.org
+NeedsCompilation: yes
+Packaged: 2017-03-02 13:15:25 UTC; hothorn
+Author: Alan Genz [aut],
+  Frank Bretz [aut],
+  Tetsuhisa Miwa [aut],
+  Xuefei Mi [aut],
+  Friedrich Leisch [ctb],
+  Fabian Scheipl [ctb],
+  Bjoern Bornkamp [ctb],
+  Martin Maechler [ctb],
+  Torsten Hothorn [aut, cre]
+Maintainer: Torsten Hothorn <Torsten.Hothorn@R-project.org>
+Repository: CRAN
+Date/Publication: 2017-03-02 16:14:20
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2017-03-03 12:22:50 UTC; unix
+Archs: mvtnorm.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/INDEX	(revision 2476)
@@ -0,0 +1,8 @@
+GenzBretz               Choice of Algorithm and Hyper Parameters
+dmvnorm                 Multivariate Normal Density and Random Deviates
+dmvt                    The Multivariate t Distribution
+pmvnorm                 Multivariate Normal Distribution
+pmvt                    Multivariate t Distribution
+qmvnorm                 Quantiles of the Multivariate Normal
+                        Distribution
+qmvt                    Quantiles of the Multivariate t Distribution
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/help/AnIndex	(revision 2476)
@@ -0,0 +1,11 @@
+dmvnorm	Mvnorm
+dmvt	Mvt
+GenzBretz	algorithms
+Miwa	algorithms
+pmvnorm	pmvnorm
+pmvt	pmvt
+qmvnorm	qmvnorm
+qmvt	qmvt
+rmvnorm	Mvnorm
+rmvt	Mvt
+TVPACK	algorithms
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/help/mvtnorm.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/help/mvtnorm.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/help/mvtnorm.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/help/mvtnorm.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/libs/mvtnorm.so.dSYM/Contents/Resources/DWARF/mvtnorm.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/libs/mvtnorm.so.dSYM/Contents/Resources/DWARF/mvtnorm.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/libs/mvtnorm.so.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/libs/mvtnorm.so.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/libs/mvtnorm.so.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.mvtnorm.so</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/libs/mvtnorm.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/libs/mvtnorm.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/CITATION	(revision 2476)
@@ -0,0 +1,39 @@
+citHeader("To cite package mvtnorm in publications use")
+
+## R >= 2.8.0 passes package metadata to citation().
+if(!exists("meta") || is.null(meta)) meta <- packageDescription("mvtnorm")
+year <- sub("-.*", "", meta$Date)
+note <- sprintf("R package version %s", meta$Version)
+
+citEntry(entry = "Manual",
+         title = "{mvtnorm}: Multivariate Normal and t Distributions",
+         author = personList(as.person("Alan Genz"), 
+                             as.person("Frank Bretz"),
+                             as.person("Tetsuhisa Miwa"),
+                             as.person("Xuefei Mi"), 
+                             as.person("Friedrich Leisch"),
+                             as.person("Fabian Scheipl"), 
+                             as.person("Torsten Hothorn")),
+         year = year,
+         note = note,
+         url = "https://CRAN.R-project.org/package=mvtnorm",
+
+         textVersion =
+         paste("Alan Genz, Frank Bretz, Tetsuhisa Miwa, Xuefei Mi, Friedrich Leisch, Fabian Scheipl, Torsten Hothorn",
+   	       sprintf("(%s).", year),	 
+               "mvtnorm: Multivariate Normal and t Distributions.",
+	       paste(note, ".", sep = ""),
+               "URL http://CRAN.R-project.org/package=mvtnorm")
+)
+
+citEntry(entry="Book",
+         title = "Computation of Multivariate Normal and t Probabilities",
+         author = personList(as.person("Alan Genz"),
+                             as.person("Frank Bretz")),
+         series = "Lecture Notes in Statistics",
+         year = "2009",
+         publisher = "Springer-Verlag",
+         address = "Heidelberg",
+         ISBN = "978-3-642-01688-2",
+         textVersion = "Alan Genz, Frank Bretz (2009), Computation of Multivariate Normal and t Probabilities. Lecture Notes in Statistics, Vol. 195., Springer-Verlag, Heidelberg. ISBN 978-3-642-01688-2"
+)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/NAMESPACE	(revision 2476)
@@ -0,0 +1,12 @@
+
+useDynLib(mvtnorm, .registration = TRUE)
+
+importFrom("stats",
+	   pnorm, qnorm, rnorm, runif,
+	   pt, qt,
+	   rchisq, uniroot,
+	   cov2cor, optim, coef, glm, pcauchy, qcauchy, predict, quasi)
+importFrom("methods", hasArg)
+
+export(rmvnorm, dmvnorm, pmvnorm, pmvt, rmvt, qmvnorm, qmvt, dmvt,
+       GenzBretz, Miwa, TVPACK)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/mvtnorm/NEWS	(revision 2476)
@@ -0,0 +1,419 @@
+
+Changes in version 1.0-6 (2017-03-01)
+
+  o  use registered C routines
+
+Changes in version 1.0-5 (2016-02-02)
+
+  o  improvements in quantile estimation
+
+Changes in version 1.0-4 (2016-01-19)
+
+  o  a new algorithm for quantile estimation, again. Quantiles are 
+     now computed by a stochastic root finding algorithm. Note
+     that f.quantile in the output of qmv{t,norm} is now (again)
+     the squared difference between the cdf evaluated at the
+     quantile and the level. The \code{interval} argument to the 
+     quantile functions is used as a starting value for the
+     root finder when available.
+
+  o  clean-ups in C and R code and documentation
+
+Changes in version 1.0-3 (2015-07-21)
+
+  o  new algorithm for quantile estimation. Quantiles are 
+     now computed by minimising the squared distance between the 
+     distribution function and the probability whereas previous versions
+     used uniroot(). The procedure is now performed multiple times with
+     difference random seeds in order to stabilise the results. The
+     \code{interval} argument to the quantile functions is IGNORED now.
+
+Changes in version 1.0-2 (2014-12-16)
+
+  o  start providing C interfaces to the underlying algorithms.
+     mvtnorm_C_mvtdst() directly calls Alan's FORTRAN code and
+     can be used in other packages via LinkingTo. See
+     mvtnorm/inst/C_API_Example for an example very much inspired
+     by the example provided in package xts.
+
+  o  provide .C interfaces to the FORTRAN routines and allow switching
+     on/off of R' RNG.
+
+Changes in version 1.0-1 (2014-11-11)
+
+  o  replace internal MVCHNV FORTRAN FUNCTION with
+     R's sqrt(qchisq(p, n, FALSE, FALSE). This fixes a
+     problem where NaN was returned as reported by
+     David Charles Airey <airey_david_charles_at_lilly.com>
+
+Changes in version 1.0-0 (2014-07-08)
+
+  o  After 14 years, we now feel safe enough to publish mvtnorm 1.0-0.
+     Many packages depend, import, or suggest mvtnorm, so this version
+     change also indicates that the package is now stable and, to a very
+     large extent, the API is frozen. We will of course continue to fix 
+     bugs or other problems but new features are unlikely to go into this
+     package.
+
+  o  use Authors@R in DESCRIPTION
+
+  o  switch to standard NEWS format
+
+Changes in version 0.9-99992 (2014-05-03)
+
+  o  cleanups by MM
+
+Changes in version 0.9-99991 (2014-04-25)
+
+  o  version 0.9-9999 introduced new bug in dmvnorm
+
+Changes in version 0.9-9999 (2014-04-17)
+
+  o  dmvnorm (again) returns NaN in case sigma is not decomposable
+
+Changes in version 0.9-9998 (2014-03-21)
+
+  o  faster code for dmvnorm by Matteo Fasiolo <mf364 at bath.ac.uk>
+
+Changes in version 0.9-9997 (2014-01-17)
+
+  o  T. Miwa fixed a runtime error in miwa.c reported by UB sanitizer
+
+Changes in version 0.9-9996 (2013-09-16)
+
+  o  documentation updates/corrections/examples by Marius Hofert
+
+  o  df = Inf
+
+  o  rmvt(): argument 'mean' not allowed anymore (prone to misuse)
+
+  o  pmvnorm(lower=c(-Inf, 0, 0), upper=c(0, Inf, Inf),
+             mean=c(0, 0, 0), sigma=S, algorithm = Miwa())
+     returned NaN, fixed by Xuefei Mi
+
+
+Changes in version 0.9-9995 (2013-05-29)
+
+  o  update to version 2013-06-29 of mvtdst.f from Alan's website
+     (fixed a bug for 2-dim pmvt)
+
+Changes in version 0.9-9994 (2012-12-06)
+
+  o  set.seed(29)
+     rmvnorm(10, ...)
+
+     produces the same first ten rows as
+
+     set.seed(29)
+     rmvnorm(100, ...)
+
+  o  as suggested by Paul Johnson <pauljohn_at_ku.edu>. There is a new
+     argument pre0.9_9993 for changing back to the `old' output. This
+     _DOES NOT_  apply to rmvt.
+
+Changes in version 0.9-9993 (2012-10-22)
+
+  o  sigma is called `scale' matrix of {dpq}mvt, thanks to
+     Richard Boys <Richard.Boys_at_ncl.ac.uk> for the hint
+
+Changes in version 0.9-9992 (2012-01-19)
+
+  o  qmvt(..., df = 0, ...) gave NaN
+
+  o  R CMD check works on x64 with GCC 4.6.2 (Debian 4.6.2-11)
+
+Changes in version 0.9-9991 (2011-06-10)
+
+  o  tvpack wasn't working on 64bit machines. The reason
+     was that the wrapper SUBROUTINEs around the original
+     FUNCTIONs didn't return the appropriate double precision
+     for unknown reasons. Redefining TVTL and BVTL as FUNCTIONs
+     fixed the problem.
+
+Changes in version 0.9-999 (2011-04-26)
+
+  o  still problems in fix approx_interval (when !is.null(sigma));
+     disable for the time being
+
+Changes in version 0.9-99 (2011-04-21)
+
+  o  fix bug in approx_interval spotted by Ravi Varadhan
+     <rvaradhan_at_jhmi.edu>
+
+Changes in version 0.9-98 (2011-04-19)
+
+  o  allow ... to pass arguments to rmvnorm in rmvt
+
+Changes in version 0.9-97 (2011-01-31)
+
+  o  use check.attributes = FALSE in isSymmetric calls
+     (requested by Nick Sabbe <nick.sabbe_at_ugent.be>)
+
+Changes in version 0.9-96 (2011-01-28)
+
+  o  use fixed interval when sigma is specified in qmvt
+
+Changes in version 0.9-95 (2010-11-18)
+
+  o  q{mvt,mvnorm} shall always return a list, not a vector
+     checks for correlation matrices are less picky now
+
+Changes in version 0.9-94 (2010-11-16)
+
+  o  allow for two different noncentral t distributions (via type
+     argument)
+
+  o  add support for one-dimensional quantiles (requested by Jerry Lewis
+     <jerry.lewis_at_biogenidec.com>)
+
+  o  documentation fixes for problems spotted by
+     Jerry Lewis <jerry.lewis_at_biogenidec.com>
+
+  o  interface to Alan's TVPACK algorithms for 2- and 3-d
+     probabilities by Bjoern Bornkamp added.
+
+Changes in version 0.9-92 (2010-07-06)
+
+  o  update to new mvtdstpack.f (7/10) by Alan. Fixes
+     potential bias problem in higher dimension.
+
+Changes in version 0.9-91 (2010-04-13)
+
+  o  better search interval for uniroot in qmv{t,norm} speeds up
+     quantile estimation; suggestion by Björn Bornkamp
+     <bornkamp_at_statistik.tu-dortmund.de>
+
+Changes in version 0.9-9 (2010-01-27)
+
+  o  document ... in pmvt.Rd
+
+Changes in version 0.9-8 (2009-10-27)
+
+  o  add citation entry
+
+Changes in version 0.9-7 (2009-05-22)
+
+  o  make sure `error' is not NA
+
+Changes in version 0.9-6 (2009-03-25)
+
+  o  update Alan's FORTRAN code
+
+Changes in version 0.9-5 (2009-03-17)
+
+  o  fix FORTRAN bug spotted by Alex Lenkoski
+     <lenkoski_at_stat.washington.edu>
+
+Changes in version 0.9-3 (2008-12-22)
+
+  o  update meta data
+
+Changes in version 0.9-2 (2008-07-08)
+
+  o  be a little more liberal (tol = sqrt(.Machine$double.eps))
+     when testing for symmetry of covariance matrices
+     (and make R CMD CHECK monomvn happy again)
+
+
+Changes in version 0.9-1 (2008-07-02)
+
+  o  better check for covariance matrices, suggested by
+     James Rogers  <James.A.Rogers_at_pfizer.com>
+
+
+Changes in version 0.9-0 (2008-04-01)
+
+  o  add support for the multivariate normal distributions in small
+     dimensions by Miwa's method thanks to Tetsuhisa Miwa and Xuefei Mi;
+     both have been added as `authors'.
+
+  o  new argument `algorithm' defaulting to `GenzBretz()' with
+     `Miwa()' being the alternative. Those two functions are now used
+     to specify hyper parameters such as `abseps'.
+
+  o  internal function `mvt' is no longer exported.
+
+Changes in version 0.8-3 (2008-02-19)
+
+  o  make sure rmvnorm(1, sigma = matrix(0.5, 1, 1)) works
+     (reported by Kurt Hornik)
+
+Changes in version 0.8-2 (2008-02-10)
+
+  o  rmvnorm() now issues a warning for non-symmetric sigma and uses
+    the eigenvalue decomposition as default.
+
+  o  make gfortran 4.3 happy
+
+
+Changes in version 0.8-1 (2007-07-24)
+
+  o  Orion Poplawski <orion_at_cora.nwra.com> spotted a meaningless check in
+     the regression tests
+
+
+Changes in version 0.8-0 (2007-07-23)
+
+  o  upgrade to 7/7 version of MVTDST (includes better support for
+     dimensions > 100). Thanks to Karen Conneely <conneely_at_umich.edu>
+     for motivating the update and for checking the new version.
+
+  o  rmvnorm() now can also use a Cholesky decomposition to compute
+     the root of sigma (thanks to Fabian Scheipl)
+
+
+Changes in version 0.7-5 (2006-09-15)
+
+  o  fix problem reported by valgrind
+
+Changes in version 0.7-4 (2006-09-08)
+
+  o  add long requested `dmvt'
+
+  o  call RNG functions only one time
+
+  o  make sure unifrnd is double precision
+
+Changes in version 0.7-3 (2006-08-23)
+
+  o  make sure pmvnorm(lo=c(-Inf,-Inf), up=c(Inf,Inf), mean=c(0,0) == 0
+
+Changes in version 0.7-2 (2005-08-29)
+
+  o  make gfortran happy (a warning about unused variable NF remains)
+
+Changes in version 0.7-1 (2004-11-18)
+
+  o  use #!/bin/sh
+
+Changes in version 0.7-0 (2004-10-14)
+
+  o  a coding session with Frank produced `qmv{t,norm}'.
+     try to check if the support specified by `lower' and `upper' is
+     empty (problem spotted by Peter Thomson <peter_at_statsresearch.co.nz>)
+     Alan's fix prevents negative values to be returned.
+
+  o  some cosmetics
+
+Changes in version 0.6-8 (2004-06-03)
+
+  o  EXIT statements are not supported by `f2c', Alan added GOTO
+     statements to `MVCHNC'
+
+Changes in version 0.6-7 (2004-05-27)
+
+  o  Alan's fix to MVCHNC solves problems with large degree of freedom
+
+Changes in version 0.6-6 (2004-01-22)
+
+  o  `La.eigen' is deprecated and `eigen' replaces it in R-1.9.0
+
+Changes in version 0.6-5 (2003-11-14)
+
+  o  check if covariance matrix is pd in rmvnorm (by Fritz Leisch)
+
+Changes in version 0.6-4 (2003-10-06)
+
+  o  use new base function `cov2cor'
+
+Changes in version 0.6-3 (2003-07-21)
+
+  o  Alans changes were restricted to N <= 100, now N <= 1000
+     are possible again
+
+Changes in version 0.6-2 (2003-06-25)
+
+  o  Alan's recent changes to `mvt.f' make `g77 -pedantic -Wall'
+     happy
+
+Changes in version 0.6-1 (2003-06-18)
+
+  o  pmvt(..., df = 0, ...) will return normal probabilities for both
+     the univariate and multvariate problem
+
+Changes in version 0.6-0 (2003-06-17)
+
+  o  Fortran code in `mvt.f' updated to recent version by Alan and Frank.
+     This fixes problems with `pmvt' and large degrees of freedom.
+
+Changes in version 0.5-15 (2003-06-16)
+
+  o  a note on one-sided probabilities in `pmvt'
+     correlation matrices in cats example a little bit nicer
+
+Changes in version 0.5-14 (2003-05-06)
+
+  o  the package owns a vignette based on the paper in RNews 1(2)
+
+Changes in version 0.5-12 (2003-05-08)
+
+  o  allow df=0 for pmvt
+
+Changes in version 0.5-11 (2003-04-29)
+
+  o  package npmc trys to use 'mvt' which is internal: export it anyway
+
+Changes in version 0.5-10 (2003-04-23)
+
+  o  mvtnorm is now in a NAMESPACE
+
+Changes in version 0.5-9 (2003-02-13)
+
+  o  log argument added to dmvnorm, thanks to
+     Jerome Asselin <jerome_at_hivnet.ubc.ca>
+
+Changes in version 0.5-8 (2003-01-21)
+
+  o  fixed bugreport PR#2478: sigma for univariate probabilities
+
+Changes in version 0.5-7 (2002-11-27)
+
+  o  use R's random number generator in the FORTRAN code:
+     set.seed has now has the desired impact.
+
+Changes in version 0.5-6 (2002-10-07)
+
+  o  rmvt added
+
+Changes in version 0.5-5 (2002-07-03)
+
+  o  use .Fortran(..., PACKAGE="mvtnorm")
+
+Changes in version 0.5-4 (2002-04-09)
+
+  o  correlation matrices for sigma with unequal variances incorrectly
+     computed, added `sig2corr' for that propose, tol argument removed,
+     fix by Alan to mvt.f
+
+Changes in version 0.5-2 (2002-03-22)
+
+  o  Frank added `tol' argument to MVTDST, now in mvtnorm
+
+Changes in version 0.5-1 (2002-01-24)
+
+  o  pmvt(0,1) works now
+
+Changes in version 0.5-0 (2001-12-10)
+
+  o  release for R-1.4.0
+
+Changes in version 0.4-4 (2001-12-06)
+
+  o  bugfix
+
+Changes in version 0.4-3 (2001-12-05)
+
+  o  the length of lower, upper and mean (delta) is now recycled to the
+     length of the largest, i.e. it is possible to say
+     pmvnorm(lower=-Inf, upper=1, mean=rep(1,10), corr=diag(10))
+
+Changes in version 0.4-2 (2001-12-04)
+
+  o  several typos, man-pages improved
+
+Changes in version 0.4-1 (2001-12-04)
+
+  o  interface changed: sigma (covariance matrix) can be specified as
+     well
+
+  o  {rd}mvnorm added from package e1071 (thanks to Fritz!)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/DESCRIPTION	(revision 2476)
@@ -0,0 +1,15 @@
+Package: methods
+Version: 3.3.2
+Priority: base
+Imports: utils, stats
+Title: Formal Methods and Classes
+Author: R Core Team
+Maintainer: R Core Team <R-core@r-project.org>
+Description: Formally defined methods and classes for R objects,
+  plus other programming tools, as described in the reference.
+References: John M. Chambers (2008) ``Software for Data Analysis:
+        Programming with R''; Springer NY.
+License: Part of R 3.3.2
+Suggests: codetools
+NeedsCompilation: yes
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:32:59 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/html/00Index.html	(revision 2476)
@@ -0,0 +1,726 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Formal Methods and Classes</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Formal Methods and Classes
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;methods&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="# "> </a>
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#G">G</a>
+<a href="#H">H</a>
+<a href="#I">I</a>
+<a href="#L">L</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#O">O</a>
+<a href="#P">P</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#U">U</a>
+<a href="#V">V</a>
+<a href="#W">W</a>
+<a href="#misc">misc</a>
+</p>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="methods-package.html">methods-package</a></td>
+<td>Formal Methods and Classes</td></tr>
+</table>
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="refClass.html">activeBindingFunction-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">anova-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">anova.glm-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">anova.glm.null-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">ANY-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">aov-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="S4groupGeneric.html">Arith</a></td>
+<td>S4 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="StructureClasses.html">array-class</a></td>
+<td>Classes Corresponding to Basic Structures</td></tr>
+<tr><td style="width: 25%;"><a href="as.html">as</a></td>
+<td>Force an Object to Belong to a Class</td></tr>
+<tr><td style="width: 25%;"><a href="as.html">as&lt;-</a></td>
+<td>Force an Object to Belong to a Class</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="MethodsList-class.html">body&lt;--method</a></td>
+<td>Class MethodsList, Defunct Representation of Methods</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">builtin-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="LanguageClasses.html">call-class</a></td>
+<td>Classes to Represent Unevaluated Language Objects</td></tr>
+<tr><td style="width: 25%;"><a href="callGeneric.html">callGeneric</a></td>
+<td>Call the Current Generic Function from a Method</td></tr>
+<tr><td style="width: 25%;"><a href="NextMethod.html">callNextMethod</a></td>
+<td>Call an Inherited Method</td></tr>
+<tr><td style="width: 25%;"><a href="canCoerce.html">canCoerce</a></td>
+<td>Can an Object be Coerced to a Certain S4 Class?</td></tr>
+<tr><td style="width: 25%;"><a href="cbind2.html">cbind2</a></td>
+<td>Combine two Objects by Columns or Rows</td></tr>
+<tr><td style="width: 25%;"><a href="cbind2.html">cbind2-method</a></td>
+<td>Combine two Objects by Columns or Rows</td></tr>
+<tr><td style="width: 25%;"><a href="cbind2.html">cbind2-methods</a></td>
+<td>Combine two Objects by Columns or Rows</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">character-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="Classes.html">Classes</a></td>
+<td>S4 Class Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="classesToAM.html">classesToAM</a></td>
+<td>Compute an Adjacency Matrix for Superclasses of Class Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="Classes_Details.html">Classes_Details</a></td>
+<td>Class Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="setClass.html">classGeneratorFunction-class</a></td>
+<td>Create a Class Definition</td></tr>
+<tr><td style="width: 25%;"><a href="className.html">className</a></td>
+<td>Class names including the corresponding package</td></tr>
+<tr><td style="width: 25%;"><a href="className.html">className-class</a></td>
+<td>Class names including the corresponding package</td></tr>
+<tr><td style="width: 25%;"><a href="classRepresentation-class.html">classRepresentation-class</a></td>
+<td>Class Objects</td></tr>
+<tr><td style="width: 25%;"><a href="setClassUnion.html">ClassUnionRepresentation-class</a></td>
+<td>Classes Defined as the Union of Other Classes</td></tr>
+<tr><td style="width: 25%;"><a href="setAs.html">coerce</a></td>
+<td>Methods for Coercing an Object to a Class</td></tr>
+<tr><td style="width: 25%;"><a href="S3Part.html">coerce-method</a></td>
+<td>S4 Classes that Contain S3 Classes</td></tr>
+<tr><td style="width: 25%;"><a href="setAs.html">coerce-method</a></td>
+<td>Methods for Coercing an Object to a Class</td></tr>
+<tr><td style="width: 25%;"><a href="setAs.html">coerce-methods</a></td>
+<td>Methods for Coercing an Object to a Class</td></tr>
+<tr><td style="width: 25%;"><a href="setAs.html">coerce&lt;-</a></td>
+<td>Methods for Coercing an Object to a Class</td></tr>
+<tr><td style="width: 25%;"><a href="S4groupGeneric.html">Compare</a></td>
+<td>S4 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="S4groupGeneric.html">Complex</a></td>
+<td>S4 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">complex-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="setOldClass.html">data.frame-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">data.frameRowLabels-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">Date-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">defaultBindingFunction-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">density-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="TraceClasses.html">derivedDefaultMethodWithTrace-class</a></td>
+<td>Classes Used Internally to Control Tracing</td></tr>
+<tr><td style="width: 25%;"><a href="Documentation.html">Documentation</a></td>
+<td>Using and Creating On-line Documentation for Classes and Methods</td></tr>
+<tr><td style="width: 25%;"><a href="Documentation.html">Documentation-class</a></td>
+<td>Using and Creating On-line Documentation for Classes and Methods</td></tr>
+<tr><td style="width: 25%;"><a href="Documentation.html">Documentation-methods</a></td>
+<td>Using and Creating On-line Documentation for Classes and Methods</td></tr>
+<tr><td style="width: 25%;"><a href="dotsMethods.html">dotsMethods</a></td>
+<td>The Use of '...' in Method Signatures</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">double-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">dump.frames-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="GenericFunctions.html">dumpMethod</a></td>
+<td>Tools for Managing Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="GenericFunctions.html">dumpMethods</a></td>
+<td>Tools for Managing Generic Functions</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="EnvironmentClass.html">environment-class</a></td>
+<td>Class '"environment"'</td></tr>
+<tr><td style="width: 25%;"><a href="stdRefClass.html">envRefClass-class</a></td>
+<td>Class '"envRefClass"'</td></tr>
+<tr><td style="width: 25%;"><a href="setLoadActions.html">evalOnLoad</a></td>
+<td>Set Actions For Package Loading</td></tr>
+<tr><td style="width: 25%;"><a href="setLoadActions.html">evalqOnLoad</a></td>
+<td>Set Actions For Package Loading</td></tr>
+<tr><td style="width: 25%;"><a href="evalSource.html">evalSource</a></td>
+<td>Use Function Definitions from a Source File without Reinstalling a Package</td></tr>
+<tr><td style="width: 25%;"><a href="getMethod.html">existsMethod</a></td>
+<td>Get or Test for the Definition of a Method</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">expression-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="is.html">extends</a></td>
+<td>Is an Object from a Class?</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">externalptr-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">externalRefMethod</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">externalRefMethod-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="setOldClass.html">factor-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="findClass.html">findClass</a></td>
+<td>Find Class Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="GenericFunctions.html">findFunction</a></td>
+<td>Tools for Managing Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="getMethod.html">findMethod</a></td>
+<td>Get or Test for the Definition of a Method</td></tr>
+<tr><td style="width: 25%;"><a href="findMethods.html">findMethods</a></td>
+<td>Description of the Methods Defined for a Generic Function</td></tr>
+<tr><td style="width: 25%;"><a href="findMethods.html">findMethodSignatures</a></td>
+<td>Description of the Methods Defined for a Generic Function</td></tr>
+<tr><td style="width: 25%;"><a href="fixPrevious.html">fixPre1.8</a></td>
+<td>Fix Objects Saved from R Versions Previous to 1.8</td></tr>
+<tr><td style="width: 25%;"><a href="LanguageClasses.html">for-class</a></td>
+<td>Classes to Represent Unevaluated Language Objects</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">formula-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">function-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="TraceClasses.html">functionWithTrace-class</a></td>
+<td>Classes Used Internally to Control Tracing</td></tr>
+</table>
+
+<h2><a name="G">-- G --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="genericFunction-class.html">genericFunction-class</a></td>
+<td>Generic Function Objects</td></tr>
+<tr><td style="width: 25%;"><a href="GenericFunctions.html">GenericFunctions</a></td>
+<td>Tools for Managing Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="TraceClasses.html">genericFunctionWithTrace-class</a></td>
+<td>Classes Used Internally to Control Tracing</td></tr>
+<tr><td style="width: 25%;"><a href="getClass.html">getClass</a></td>
+<td>Get Class Definition</td></tr>
+<tr><td style="width: 25%;"><a href="getClass.html">getClassDef</a></td>
+<td>Get Class Definition</td></tr>
+<tr><td style="width: 25%;"><a href="findClass.html">getClasses</a></td>
+<td>Find Class Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="GenericFunctions.html">getGenerics</a></td>
+<td>Tools for Managing Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="setLoadActions.html">getLoadActions</a></td>
+<td>Set Actions For Package Loading</td></tr>
+<tr><td style="width: 25%;"><a href="getMethod.html">getMethod</a></td>
+<td>Get or Test for the Definition of a Method</td></tr>
+<tr><td style="width: 25%;"><a href="findMethods.html">getMethods</a></td>
+<td>Description of the Methods Defined for a Generic Function</td></tr>
+<tr><td style="width: 25%;"><a href="getPackageName.html">getPackageName</a></td>
+<td>The Name associated with a Given Package</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">getRefClass</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="slot.html">getSlots</a></td>
+<td>The Slots in an Object from a Formal Class</td></tr>
+<tr><td style="width: 25%;"><a href="validObject.html">getValidity</a></td>
+<td>Test the Validity of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">glm-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">glm.null-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="genericFunction-class.html">groupGenericFunction-class</a></td>
+<td>Generic Function Objects</td></tr>
+<tr><td style="width: 25%;"><a href="S4groupGeneric.html">GroupGenericFunctions</a></td>
+<td>S4 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="TraceClasses.html">groupGenericFunctionWithTrace-class</a></td>
+<td>Classes Used Internally to Control Tracing</td></tr>
+</table>
+
+<h2><a name="H">-- H --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="hasArg.html">hasArg</a></td>
+<td>Look for an Argument in the Call</td></tr>
+<tr><td style="width: 25%;"><a href="setLoadActions.html">hasLoadAction</a></td>
+<td>Set Actions For Package Loading</td></tr>
+<tr><td style="width: 25%;"><a href="getMethod.html">hasMethod</a></td>
+<td>Get or Test for the Definition of a Method</td></tr>
+<tr><td style="width: 25%;"><a href="findMethods.html">hasMethods</a></td>
+<td>Description of the Methods Defined for a Generic Function</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">hsearch-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="LanguageClasses.html">if-class</a></td>
+<td>Classes to Represent Unevaluated Language Objects</td></tr>
+<tr><td style="width: 25%;"><a href="implicitGeneric.html">implicit generic</a></td>
+<td>Manage Implicit Versions of Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="implicitGeneric.html">implicitGeneric</a></td>
+<td>Manage Implicit Versions of Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="inheritedSlotNames.html">inheritedSlotNames</a></td>
+<td>Names of Slots Inherited From a Super Class</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">initFieldArgs</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="new.html">initialize</a></td>
+<td>Generate an Object from a Class</td></tr>
+<tr><td style="width: 25%;"><a href="StructureClasses.html">initialize-method</a></td>
+<td>Classes Corresponding to Basic Structures</td></tr>
+<tr><td style="width: 25%;"><a href="initialize-methods.html">initialize-method</a></td>
+<td>Methods to Initialize New Objects from a Class</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">initialize-method</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="stdRefClass.html">initialize-method</a></td>
+<td>Class '"envRefClass"'</td></tr>
+<tr><td style="width: 25%;"><a href="initialize-methods.html">initialize-methods</a></td>
+<td>Methods to Initialize New Objects from a Class</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">initRefFields</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="evalSource.html">insertSource</a></td>
+<td>Use Function Definitions from a Source File without Reinstalling a Package</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">integer-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">integrate-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="Introduction.html">Introduction</a></td>
+<td>Basic use of S4 Methods and Classes</td></tr>
+<tr><td style="width: 25%;"><a href="is.html">is</a></td>
+<td>Is an Object from a Class?</td></tr>
+<tr><td style="width: 25%;"><a href="findClass.html">isClass</a></td>
+<td>Find Class Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="setClassUnion.html">isClassUnion</a></td>
+<td>Classes Defined as the Union of Other Classes</td></tr>
+<tr><td style="width: 25%;"><a href="GenericFunctions.html">isGeneric</a></td>
+<td>Tools for Managing Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="GenericFunctions.html">isGroup</a></td>
+<td>Tools for Managing Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="isSealedMethod.html">isSealedClass</a></td>
+<td>Check for a Sealed Method or Class</td></tr>
+<tr><td style="width: 25%;"><a href="isSealedMethod.html">isSealedMethod</a></td>
+<td>Check for a Sealed Method or Class</td></tr>
+<tr><td style="width: 25%;"><a href="S3Part.html">isXS3Class</a></td>
+<td>S4 Classes that Contain S3 Classes</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="LanguageClasses.html">language-class</a></td>
+<td>Classes to Represent Unevaluated Language Objects</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">libraryIQR-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="LinearMethodsList-class.html">LinearMethodsList-class</a></td>
+<td>Class "LinearMethodsList"</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">list-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="findMethods.html">listOfMethods-class</a></td>
+<td>Description of the Methods Defined for a Generic Function</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">lm-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="localRefClass.html">localRefClass-class</a></td>
+<td>Localized Objects based on Reference Classes</td></tr>
+<tr><td style="width: 25%;"><a href="localRefClass.html">LocalReferenceClasses</a></td>
+<td>Localized Objects based on Reference Classes</td></tr>
+<tr><td style="width: 25%;"><a href="S4groupGeneric.html">Logic</a></td>
+<td>S4 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">logical-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">logLik-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="setSClass.html">makeClassRepresentation</a></td>
+<td>Create a Class Definition</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">maov-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="S4groupGeneric.html">Math</a></td>
+<td>S4 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="StructureClasses.html">Math-method</a></td>
+<td>Classes Corresponding to Basic Structures</td></tr>
+<tr><td style="width: 25%;"><a href="nonStructure-class.html">Math-method</a></td>
+<td>A non-structure S4 Class for basic types</td></tr>
+<tr><td style="width: 25%;"><a href="S4groupGeneric.html">Math2</a></td>
+<td>S4 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="nonStructure-class.html">Math2-method</a></td>
+<td>A non-structure S4 Class for basic types</td></tr>
+<tr><td style="width: 25%;"><a href="StructureClasses.html">matrix-class</a></td>
+<td>Classes Corresponding to Basic Structures</td></tr>
+<tr><td style="width: 25%;"><a href="method.skeleton.html">method.skeleton</a></td>
+<td>Create a Skeleton File for a New Method</td></tr>
+<tr><td style="width: 25%;"><a href="MethodDefinition-class.html">MethodDefinition-class</a></td>
+<td>Classes to Represent Method Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="TraceClasses.html">MethodDefinitionWithTrace-class</a></td>
+<td>Classes Used Internally to Control Tracing</td></tr>
+<tr><td style="width: 25%;"><a href="Methods.html">Methods</a></td>
+<td>S4 Class Documentation</td></tr>
+<tr><td style="width: 25%;"><a href="testInheritedMethods.html">MethodSelectionReport-class</a></td>
+<td>Test for and Report about Selection of Inherited Methods</td></tr>
+<tr><td style="width: 25%;"><a href="MethodsList-class.html">MethodsList-class</a></td>
+<td>Class MethodsList, Defunct Representation of Methods</td></tr>
+<tr><td style="width: 25%;"><a href="Methods_Details.html">Methods_Details</a></td>
+<td>General Information on Methods</td></tr>
+<tr><td style="width: 25%;"><a href="Methods_for_Nongenerics.html">Methods_for_Nongenerics</a></td>
+<td>Methods for Non-Generic Functions in Other Packages</td></tr>
+<tr><td style="width: 25%;"><a href="Methods_for_S3.html">Methods_for_S3</a></td>
+<td>Methods For S3 and S4 Dispatch</td></tr>
+<tr><td style="width: 25%;"><a href="MethodWithNext-class.html">MethodWithNext-class</a></td>
+<td>Class MethodWithNext</td></tr>
+<tr><td style="width: 25%;"><a href="TraceClasses.html">MethodWithNextWithTrace-class</a></td>
+<td>Classes Used Internally to Control Tracing</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">missing-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">mlm-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">mtable-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">mts-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="className.html">multipleClasses</a></td>
+<td>Class names including the corresponding package</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="LanguageClasses.html">name-class</a></td>
+<td>Classes to Represent Unevaluated Language Objects</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">namedList-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="new.html">new</a></td>
+<td>Generate an Object from a Class</td></tr>
+<tr><td style="width: 25%;"><a href="TraceClasses.html">nonstandardGenericWithTrace-class</a></td>
+<td>Classes Used Internally to Control Tracing</td></tr>
+<tr><td style="width: 25%;"><a href="nonStructure-class.html">nonStructure-class</a></td>
+<td>A non-structure S4 Class for basic types</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">NULL-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">numeric-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+</table>
+
+<h2><a name="O">-- O --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="ObjectsWithPackage-class.html">ObjectsWithPackage-class</a></td>
+<td>A Vector of Object Names, with associated Package Names</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">oldClass-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="S4groupGeneric.html">Ops</a></td>
+<td>S4 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="StructureClasses.html">Ops-method</a></td>
+<td>Classes Corresponding to Basic Structures</td></tr>
+<tr><td style="width: 25%;"><a href="nonStructure-class.html">Ops-method</a></td>
+<td>A non-structure S4 Class for basic types</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">ordered-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="setOldClass.html">packageInfo-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">packageIQR-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="getPackageName.html">packageSlot</a></td>
+<td>The Name associated with a Given Package</td></tr>
+<tr><td style="width: 25%;"><a href="getPackageName.html">packageSlot&lt;-</a></td>
+<td>The Name associated with a Given Package</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">POSIXct-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">POSIXlt-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">POSIXt-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="implicitGeneric.html">prohibitGeneric</a></td>
+<td>Manage Implicit Versions of Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="promptClass.html">promptClass</a></td>
+<td>Generate a Shell for Documentation of a Formal Class</td></tr>
+<tr><td style="width: 25%;"><a href="promptMethods.html">promptMethods</a></td>
+<td>Generate a Shell for Documentation of Formal Methods</td></tr>
+<tr><td style="width: 25%;"><a href="representation.html">prototype</a></td>
+<td>Construct a Representation or a Prototype for a Class Definition</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="BasicClasses.html">raw-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="cbind2.html">rbind2</a></td>
+<td>Combine two Objects by Columns or Rows</td></tr>
+<tr><td style="width: 25%;"><a href="cbind2.html">rbind2-method</a></td>
+<td>Combine two Objects by Columns or Rows</td></tr>
+<tr><td style="width: 25%;"><a href="cbind2.html">rbind2-methods</a></td>
+<td>Combine two Objects by Columns or Rows</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">recordedplot-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">refClass-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">refClassRepresentation-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">ReferenceClasses</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">refGeneratorSlot-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">refMethodDef-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">refMethodDefWithTrace-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">refObject-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">refObjectGenerator-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="implicitGeneric.html">registerImplicitGenerics</a></td>
+<td>Manage Implicit Versions of Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="findClass.html">removeClass</a></td>
+<td>Find Class Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="GenericFunctions.html">removeGeneric</a></td>
+<td>Tools for Managing Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="removeMethod.html">removeMethod</a></td>
+<td>Remove a Method</td></tr>
+<tr><td style="width: 25%;"><a href="GenericFunctions.html">removeMethods</a></td>
+<td>Tools for Managing Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="LanguageClasses.html">repeat-class</a></td>
+<td>Classes to Represent Unevaluated Language Objects</td></tr>
+<tr><td style="width: 25%;"><a href="representation.html">representation</a></td>
+<td>Construct a Representation or a Prototype for a Class Definition</td></tr>
+<tr><td style="width: 25%;"><a href="findClass.html">resetClass</a></td>
+<td>Find Class Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">rle-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="S3Part.html">S3</a></td>
+<td>S4 Classes that Contain S3 Classes</td></tr>
+<tr><td style="width: 25%;"><a href="S3Part.html">S3-class</a></td>
+<td>S4 Classes that Contain S3 Classes</td></tr>
+<tr><td style="width: 25%;"><a href="S3Part.html">S3Class</a></td>
+<td>S4 Classes that Contain S3 Classes</td></tr>
+<tr><td style="width: 25%;"><a href="S3Part.html">S3Class&lt;-</a></td>
+<td>S4 Classes that Contain S3 Classes</td></tr>
+<tr><td style="width: 25%;"><a href="S3Part.html">S3Part</a></td>
+<td>S4 Classes that Contain S3 Classes</td></tr>
+<tr><td style="width: 25%;"><a href="S3Part.html">S3Part&lt;-</a></td>
+<td>S4 Classes that Contain S3 Classes</td></tr>
+<tr><td style="width: 25%;"><a href="S3Part.html">S4</a></td>
+<td>S4 Classes that Contain S3 Classes</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">S4-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="S4groupGeneric.html">S4groupGeneric</a></td>
+<td>S4 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="SClassExtension-class.html">SClassExtension-class</a></td>
+<td>Class to Represent Inheritance (Extension) Relations</td></tr>
+<tr><td style="width: 25%;"><a href="findClass.html">sealClass</a></td>
+<td>Find Class Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="MethodDefinition-class.html">SealedMethodDefinition-class</a></td>
+<td>Classes to Represent Method Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="getMethod.html">selectMethod</a></td>
+<td>Get or Test for the Definition of a Method</td></tr>
+<tr><td style="width: 25%;"><a href="selectSuperClasses.html">selectSuperClasses</a></td>
+<td>Super Classes (of Specific Kinds) of a Class</td></tr>
+<tr><td style="width: 25%;"><a href="setAs.html">setAs</a></td>
+<td>Methods for Coercing an Object to a Class</td></tr>
+<tr><td style="width: 25%;"><a href="setClass.html">setClass</a></td>
+<td>Create a Class Definition</td></tr>
+<tr><td style="width: 25%;"><a href="setClassUnion.html">setClassUnion</a></td>
+<td>Classes Defined as the Union of Other Classes</td></tr>
+<tr><td style="width: 25%;"><a href="setGeneric.html">setGeneric</a></td>
+<td>Create a Generic Version of a Function</td></tr>
+<tr><td style="width: 25%;"><a href="implicitGeneric.html">setGenericImplicit</a></td>
+<td>Manage Implicit Versions of Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="setGroupGeneric.html">setGroupGeneric</a></td>
+<td>Create a Group Generic Version of a Function</td></tr>
+<tr><td style="width: 25%;"><a href="setIs.html">setIs</a></td>
+<td>Specify a Superclass Explicitly</td></tr>
+<tr><td style="width: 25%;"><a href="setLoadActions.html">setLoadAction</a></td>
+<td>Set Actions For Package Loading</td></tr>
+<tr><td style="width: 25%;"><a href="setLoadActions.html">setLoadActions</a></td>
+<td>Set Actions For Package Loading</td></tr>
+<tr><td style="width: 25%;"><a href="setMethod.html">setMethod</a></td>
+<td>Create and Save a Method</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">setOldClass</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="getPackageName.html">setPackageName</a></td>
+<td>The Name associated with a Given Package</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">setRefClass</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="GenericFunctions.html">setReplaceMethod</a></td>
+<td>Tools for Managing Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="validObject.html">setValidity</a></td>
+<td>Test the Validity of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="show.html">show</a></td>
+<td>Show an Object</td></tr>
+<tr><td style="width: 25%;"><a href="StructureClasses.html">show-method</a></td>
+<td>Classes Corresponding to Basic Structures</td></tr>
+<tr><td style="width: 25%;"><a href="TraceClasses.html">show-method</a></td>
+<td>Classes Used Internally to Control Tracing</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">show-method</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td style="width: 25%;"><a href="show.html">show-method</a></td>
+<td>Show an Object</td></tr>
+<tr><td style="width: 25%;"><a href="signature-class.html">show-method</a></td>
+<td>Class '"signature"' For Method Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="show.html">show-methods</a></td>
+<td>Show an Object</td></tr>
+<tr><td style="width: 25%;"><a href="showMethods.html">showMethods</a></td>
+<td>Show all the methods for the specified function(s) or class</td></tr>
+<tr><td style="width: 25%;"><a href="GenericFunctions.html">signature</a></td>
+<td>Tools for Managing Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="signature-class.html">signature-class</a></td>
+<td>Class '"signature"' For Method Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">single-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="slot.html">slot</a></td>
+<td>The Slots in an Object from a Formal Class</td></tr>
+<tr><td style="width: 25%;"><a href="slot.html">slot&lt;-</a></td>
+<td>The Slots in an Object from a Formal Class</td></tr>
+<tr><td style="width: 25%;"><a href="slot.html">slotNames</a></td>
+<td>The Slots in an Object from a Formal Class</td></tr>
+<tr><td style="width: 25%;"><a href="S3Part.html">slotsFromS3</a></td>
+<td>S4 Classes that Contain S3 Classes</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">socket-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="evalSource.html">sourceEnvironment-class</a></td>
+<td>Use Function Definitions from a Source File without Reinstalling a Package</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">special-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="StructureClasses.html">structure-class</a></td>
+<td>Classes Corresponding to Basic Structures</td></tr>
+<tr><td style="width: 25%;"><a href="S4groupGeneric.html">Summary</a></td>
+<td>S4 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">summary.table-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">summaryDefault-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="refClass.html">SuperClassMethod-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="setOldClass.html">table-class</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="testInheritedMethods.html">testInheritedMethods</a></td>
+<td>Test for and Report about Selection of Inherited Methods</td></tr>
+<tr><td style="width: 25%;"><a href="TraceClasses.html">traceable-class</a></td>
+<td>Classes Used Internally to Control Tracing</td></tr>
+<tr><td style="width: 25%;"><a href="StructureClasses.html">ts-class</a></td>
+<td>Classes Corresponding to Basic Structures</td></tr>
+</table>
+
+<h2><a name="U">-- U --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="refClass.html">uninitializedField-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+</table>
+
+<h2><a name="V">-- V --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="validObject.html">validObject</a></td>
+<td>Test the Validity of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">vector-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+<tr><td style="width: 25%;"><a href="BasicClasses.html">VIRTUAL-class</a></td>
+<td>Classes Corresponding to Basic Data Types</td></tr>
+</table>
+
+<h2><a name="W">-- W --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="LanguageClasses.html">while-class</a></td>
+<td>Classes to Represent Unevaluated Language Objects</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="stdRefClass.html">$-method</a></td>
+<td>Class '"envRefClass"'</td></tr>
+<tr><td style="width: 25%;"><a href="localRefClass.html">$&lt;--method</a></td>
+<td>Localized Objects based on Reference Classes</td></tr>
+<tr><td style="width: 25%;"><a href="stdRefClass.html">$&lt;--method</a></td>
+<td>Class '"envRefClass"'</td></tr>
+<tr><td style="width: 25%;"><a href="LanguageClasses.html">(-class</a></td>
+<td>Classes to Represent Unevaluated Language Objects</td></tr>
+<tr><td style="width: 25%;"><a href="zBasicFunsList.html">.BasicFunsList</a></td>
+<td>List of Builtin and Special Functions</td></tr>
+<tr><td style="width: 25%;"><a href="TraceClasses.html">.doTracePrint</a></td>
+<td>Classes Used Internally to Control Tracing</td></tr>
+<tr><td style="width: 25%;"><a href="Classes_Details.html">.environment-class</a></td>
+<td>Class Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="Classes_Details.html">.externalptr-class</a></td>
+<td>Class Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="slot.html">.hasSlot</a></td>
+<td>The Slots in an Object from a Formal Class</td></tr>
+<tr><td style="width: 25%;"><a href="TraceClasses.html">.InitTraceFunctions</a></td>
+<td>Classes Used Internally to Control Tracing</td></tr>
+<tr><td style="width: 25%;"><a href="TraceClasses.html">.makeTracedFunction</a></td>
+<td>Classes Used Internally to Control Tracing</td></tr>
+<tr><td style="width: 25%;"><a href="Classes_Details.html">.name-class</a></td>
+<td>Class Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="Classes_Details.html">.NULL-class</a></td>
+<td>Class Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">.OldClassesList</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="testInheritedMethods.html">.Other-class</a></td>
+<td>Test for and Report about Selection of Inherited Methods</td></tr>
+<tr><td style="width: 25%;"><a href="showMethods.html">.S4methods</a></td>
+<td>Show all the methods for the specified function(s) or class</td></tr>
+<tr><td style="width: 25%;"><a href="selectSuperClasses.html">.selectSuperClasses</a></td>
+<td>Super Classes (of Specific Kinds) of a Class</td></tr>
+<tr><td style="width: 25%;"><a href="setOldClass.html">.setOldIs</a></td>
+<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td style="width: 25%;"><a href="slot.html">.slotNames</a></td>
+<td>The Slots in an Object from a Formal Class</td></tr>
+<tr><td style="width: 25%;"><a href="TraceClasses.html">.untracedFunction</a></td>
+<td>Classes Used Internally to Control Tracing</td></tr>
+<tr><td style="width: 25%;"><a href="LanguageClasses.html">&lt;--class</a></td>
+<td>Classes to Represent Unevaluated Language Objects</td></tr>
+<tr><td style="width: 25%;"><a href="Classes_Details.html">__ClassMetaData</a></td>
+<td>Class Definitions</td></tr>
+<tr><td style="width: 25%;"><a href="LanguageClasses.html">{-class</a></td>
+<td>Classes to Represent Unevaluated Language Objects</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/INDEX	(revision 2476)
@@ -0,0 +1,96 @@
+.BasicFunsList          List of Builtin and Special Functions
+Classes                 S4 Class Documentation
+Classes_Details         Class Definitions
+Documentation           Using and Creating On-line Documentation for
+                        Classes and Methods
+GenericFunctions        Tools for Managing Generic Functions
+Introduction            Basic use of S4 Methods and Classes
+LinearMethodsList-class
+                        Class "LinearMethodsList"
+LocalReferenceClasses   Localized Objects based on Reference Classes
+MethodDefinition-class
+                        Classes to Represent Method Definitions
+MethodWithNext-class    Class MethodWithNext
+Methods                 S4 Class Documentation
+MethodsList-class       Class MethodsList, Defunct Representation of
+                        Methods
+Methods_Details         General Information on Methods
+Methods_for_Nongenerics
+                        Methods for Non-Generic Functions in Other
+                        Packages
+Methods_for_S3          Methods For S3 and S4 Dispatch
+ObjectsWithPackage-class
+                        A Vector of Object Names, with associated
+                        Package Names
+ReferenceClasses        Objects With Fields Treated by Reference
+                        (OOP-style)
+S3Part                  S4 Classes that Contain S3 Classes
+S4groupGeneric          S4 Group Generic Functions
+SClassExtension-class   Class to Represent Inheritance (Extension)
+                        Relations
+as                      Force an Object to Belong to a Class
+callGeneric             Call the Current Generic Function from a Method
+callNextMethod          Call an Inherited Method
+canCoerce               Can an Object be Coerced to a Certain S4 Class?
+cbind2                  Combine two Objects by Columns or Rows
+character-class         Classes Corresponding to Basic Data Types
+className               Class names including the corresponding package
+classRepresentation-class
+                        Class Objects
+classesToAM             Compute an Adjacency Matrix for Superclasses of
+                        Class Definitions
+dotsMethods             The Use of '...' in Method Signatures
+envRefClass-class       Class '"envRefClass"'
+environment-class       Class '"environment"'
+evalSource              Use Function Definitions from a Source File
+                        without Reinstalling a Package
+findClass               Find Class Definitions
+findMethods             Description of the Methods Defined for a
+                        Generic Function
+fixPre1.8               Fix Objects Saved from R Versions Previous to
+                        1.8
+genericFunction-class   Generic Function Objects
+getClass                Get Class Definition
+getMethod               Get or Test for the Definition of a Method
+getPackageName          The Name associated with a Given Package
+hasArg                  Look for an Argument in the Call
+implicitGeneric         Manage Implicit Versions of Generic Functions
+inheritedSlotNames      Names of Slots Inherited From a Super Class
+initialize-methods      Methods to Initialize New Objects from a Class
+is                      Is an Object from a Class?
+isSealedMethod          Check for a Sealed Method or Class
+language-class          Classes to Represent Unevaluated Language
+                        Objects
+makeClassRepresentation
+                        Create a Class Definition
+method.skeleton         Create a Skeleton File for a New Method
+methods-package         Formal Methods and Classes
+new                     Generate an Object from a Class
+nonStructure-class      A non-structure S4 Class for basic types
+promptClass             Generate a Shell for Documentation of a Formal
+                        Class
+promptMethods           Generate a Shell for Documentation of Formal
+                        Methods
+removeMethod            Remove a Method
+representation          Construct a Representation or a Prototype for a
+                        Class Definition
+selectSuperClasses      Super Classes (of Specific Kinds) of a Class
+setAs                   Methods for Coercing an Object to a Class
+setClass                Create a Class Definition
+setClassUnion           Classes Defined as the Union of Other Classes
+setGeneric              Create a Generic Version of a Function
+setGroupGeneric         Create a Group Generic Version of a Function
+setIs                   Specify a Superclass Explicitly
+setLoadActions          Set Actions For Package Loading
+setMethod               Create and Save a Method
+setOldClass             Register Old-Style (S3) Classes and Inheritance
+show                    Show an Object
+showMethods             Show all the methods for the specified
+                        function(s) or class
+signature-class         Class '"signature"' For Method Definitions
+slot                    The Slots in an Object from a Formal Class
+structure-class         Classes Corresponding to Basic Structures
+testInheritedMethods    Test for and Report about Selection of
+                        Inherited Methods
+traceable-class         Classes Used Internally to Control Tracing
+validObject             Test the Validity of an Object
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/help/AnIndex	(revision 2476)
@@ -0,0 +1,482 @@
+methods-package	methods-package
+$,envRefClass-method	stdRefClass
+$<-,envRefClass-method	stdRefClass
+$<-,localRefClass-method	localRefClass
+(-class	LanguageClasses
+.BasicClasses	RClassUtils
+.BasicFunsList	zBasicFunsList
+.BasicVectorClasses	RClassUtils
+.classEnv	RClassUtils
+.doTracePrint	TraceClasses
+.EmptyPrimitiveSkeletons	RMethodUtils
+.environment-class	Classes_Details
+.externalptr-class	Classes_Details
+.hasSlot	slot
+.InitBasicClasses	RClassUtils
+.InitMethodsListClass	RClassUtils
+.InitTraceFunctions	TraceClasses
+.makeTracedFunction	TraceClasses
+.name-class	Classes_Details
+.NULL-class	Classes_Details
+.OldClassesList	setOldClass
+.Other-class	testInheritedMethods
+.S4methods	showMethods
+.saveImage	RMethodUtils
+.selectSuperClasses	selectSuperClasses
+.setCoerceGeneric	RClassUtils
+.setOldIs	setOldClass
+.ShortPrimitiveSkeletons	RMethodUtils
+.slotNames	slot
+.untracedFunction	TraceClasses
+.valueClassTest	RMethodUtils
+<--class	LanguageClasses
+activeBindingFunction-class	refClass
+addNextMethod	RMethodUtils
+addNextMethod,MethodDefinition-method	RMethodUtils
+addNextMethod,MethodWithNext-method	RMethodUtils
+allGenerics	methods-defunct
+allNames	methodUtilities
+anova-class	setOldClass
+anova.glm-class	setOldClass
+anova.glm.null-class	setOldClass
+ANY-class	BasicClasses
+aov-class	setOldClass
+Arith	S4groupGeneric
+array-class	StructureClasses
+as	as
+as<-	as
+asMethodDefinition	RMethodUtils
+assignClassDef	RClassUtils
+assignMethodsMetaData	RMethodUtils
+balanceMethodsList	RMethodUtils
+body<-,MethodDefinition-method	MethodsList-class
+builtin-class	BasicClasses
+cacheGenericsMetaData	RMethodUtils
+cacheMetaData	RMethodUtils
+cacheMethod	MethodSupport
+call-class	LanguageClasses
+callGeneric	callGeneric
+callNextMethod	NextMethod
+canCoerce	canCoerce
+cbind2	cbind2
+cbind2,ANY,ANY-method	cbind2
+cbind2,ANY,missing-method	cbind2
+cbind2-methods	cbind2
+character-class	BasicClasses
+checkAtAssignment	RClassUtils
+checkSlotAssignment	RClassUtils
+Classes	Classes
+classesToAM	classesToAM
+Classes_Details	Classes_Details
+classGeneratorFunction-class	setClass
+classLabel	RClassUtils
+classMetaName	RClassUtils
+className	className
+className-class	className
+classPrototypeDef-class	RClassUtils
+classRepresentation-class	classRepresentation-class
+ClassUnionRepresentation-class	setClassUnion
+coerce	setAs
+coerce,ANY,array-method	setAs
+coerce,ANY,call-method	setAs
+coerce,ANY,character-method	setAs
+coerce,ANY,complex-method	setAs
+coerce,ANY,environment-method	setAs
+coerce,ANY,expression-method	setAs
+coerce,ANY,function-method	setAs
+coerce,ANY,integer-method	setAs
+coerce,ANY,list-method	setAs
+coerce,ANY,logical-method	setAs
+coerce,ANY,matrix-method	setAs
+coerce,ANY,name-method	setAs
+coerce,ANY,NULL-method	setAs
+coerce,ANY,numeric-method	setAs
+coerce,ANY,S3-method	S3Part
+coerce,ANY,S4-method	S3Part
+coerce,ANY,single-method	setAs
+coerce,ANY,ts-method	setAs
+coerce,ANY,vector-method	setAs
+coerce,oldClass,S3-method	S3Part
+coerce-methods	setAs
+coerce<-	setAs
+Compare	S4groupGeneric
+completeClassDefinition	RClassUtils
+completeExtends	RClassUtils
+completeSubclasses	RClassUtils
+Complex	S4groupGeneric
+complex-class	BasicClasses
+conditionalExtension-class	RClassUtils
+conformMethod	RMethodUtils
+data.frame-class	setOldClass
+data.frameRowLabels-class	setOldClass
+Date-class	setOldClass
+defaultBindingFunction-class	refClass
+defaultDumpName	RMethodUtils
+defaultPrototype	RClassUtils
+density-class	setOldClass
+derivedDefaultMethod-class	RMethodUtils
+derivedDefaultMethodWithTrace-class	TraceClasses
+Documentation	Documentation
+Documentation-class	Documentation
+Documentation-methods	Documentation
+doPrimitiveMethod	RMethodUtils
+dotsMethods	dotsMethods
+double-class	BasicClasses
+dump.frames-class	setOldClass
+dumpMethod	GenericFunctions
+dumpMethods	GenericFunctions
+el	methodUtilities
+el<-	methodUtilities
+elNamed	methodUtilities
+elNamed<-	methodUtilities
+empty.dump	RClassUtils
+emptyMethodsList	MethodsList
+EmptyMethodsList-class	EmptyMethodsList-class
+environment-class	EnvironmentClass
+envRefClass-class	stdRefClass
+evalOnLoad	setLoadActions
+evalqOnLoad	setLoadActions
+evalSource	evalSource
+existsFunction	methodUtilities
+existsMethod	getMethod
+expression-class	BasicClasses
+extends	is
+extendsMetaName	RClassUtils
+externalptr-class	BasicClasses
+externalRefMethod	refClass
+externalRefMethod-class	refClass
+factor-class	setOldClass
+finalDefaultMethod	MethodsList
+findClass	findClass
+findFunction	GenericFunctions
+findMethod	getMethod
+findMethods	findMethods
+findMethodSignatures	findMethods
+findUnique	RMethodUtils
+fixPre1.8	fixPrevious
+for-class	LanguageClasses
+formalArgs	methodUtilities
+formula-class	setOldClass
+function-class	BasicClasses
+functionBody	methodUtilities
+functionBody<-	methodUtilities
+functionWithTrace-class	TraceClasses
+generic.skeleton	RMethodUtils
+genericFunction-class	genericFunction-class
+GenericFunctions	GenericFunctions
+genericFunctionWithTrace-class	TraceClasses
+getAccess	methods-defunct
+getAllMethods	methods-defunct
+getAllSuperClasses	RClassUtils
+getClass	getClass
+getClassDef	getClass
+getClasses	findClass
+getClassName	methods-defunct
+getClassPackage	methods-defunct
+getDataPart	RClassUtils
+getExtends	methods-defunct
+getFunction	methodUtilities
+getGeneric	RMethodUtils
+getGenerics	GenericFunctions
+getGroup	RMethodUtils
+getGroupMembers	RMethodUtils
+getLoadActions	setLoadActions
+getMethod	getMethod
+getMethods	findMethods
+getMethodsForDispatch	MethodSupport
+getMethodsMetaData	RMethodUtils
+getPackageName	getPackageName
+getProperties	methods-defunct
+getPrototype	methods-defunct
+getRefClass	refClass
+getSlots	slot
+getSubclasses	methods-defunct
+getValidity	validObject
+getVirtual	methods-defunct
+glm-class	setOldClass
+glm.null-class	setOldClass
+groupGenericFunction-class	genericFunction-class
+GroupGenericFunctions	S4groupGeneric
+groupGenericFunctionWithTrace-class	TraceClasses
+hasArg	hasArg
+hasLoadAction	setLoadActions
+hasMethod	getMethod
+hasMethods	findMethods
+hsearch-class	setOldClass
+if-class	LanguageClasses
+implicit generic	implicitGeneric
+implicitGeneric	implicitGeneric
+inheritedSlotNames	inheritedSlotNames
+inheritedSubMethodLists	MethodsList
+initFieldArgs	refClass
+initialize	new
+initialize,.environment-method	initialize-methods
+initialize,ANY-method	initialize-methods
+initialize,array-method	StructureClasses
+initialize,data.frame-method	setOldClass
+initialize,environment-method	initialize-methods
+initialize,envRefClass-method	stdRefClass
+initialize,factor-method	setOldClass
+initialize,matrix-method	StructureClasses
+initialize,mts-method	StructureClasses
+initialize,ordered-method	setOldClass
+initialize,signature-method	initialize-methods
+initialize,summary.table-method	setOldClass
+initialize,table-method	setOldClass
+initialize,traceable-method	initialize-methods
+initialize,ts-method	StructureClasses
+initialize-methods	initialize-methods
+initMethodDispatch	methodUtilities
+initRefFields	refClass
+insertClassMethods	RMethodUtils
+insertMethod	MethodsList
+insertMethodInEmptyList	MethodsList
+insertSource	evalSource
+integer-class	BasicClasses
+integrate-class	setOldClass
+internalDispatchMethod-class	RMethodUtils
+Introduction	Introduction
+is	is
+isClass	findClass
+isClassDef	RClassUtils
+isClassUnion	setClassUnion
+isGeneric	GenericFunctions
+isGrammarSymbol	languageEl
+isGroup	GenericFunctions
+isSealedClass	isSealedMethod
+isSealedMethod	isSealedMethod
+isVirtualClass	RClassUtils
+isXS3Class	S3Part
+language-class	LanguageClasses
+languageEl	languageEl
+languageEl<-	languageEl
+libraryIQR-class	setOldClass
+linearizeMlist	MethodsList
+LinearMethodsList-class	LinearMethodsList-class
+list-class	BasicClasses
+listFromMethods	MethodSupport
+listFromMlist	MethodsList
+listOfMethods-class	findMethods
+lm-class	setOldClass
+loadMethod	MethodsList
+loadMethod,ANY-method	MethodsList
+loadMethod,MethodDefinition-method	MethodsList
+loadMethod,MethodWithNext-method	MethodsList
+loadMethod-methods	MethodsList
+localRefClass-class	localRefClass
+LocalReferenceClasses	localRefClass
+Logic	S4groupGeneric
+logical-class	BasicClasses
+logLik-class	setOldClass
+makeClassRepresentation	setSClass
+makeExtends	RClassUtils
+makeGeneric	RMethodUtils
+makeMethodsList	MethodsList
+makePrototypeFromClassDef	RClassUtils
+makeStandardGeneric	RMethodUtils
+maov-class	setOldClass
+matchSignature	RMethodUtils
+Math	S4groupGeneric
+Math,nonStructure-method	nonStructure-class
+Math,structure-method	StructureClasses
+Math2	S4groupGeneric
+Math2,nonStructure-method	nonStructure-class
+matrix-class	StructureClasses
+mergeMethods	MethodsList
+metaNameUndo	RClassUtils
+method.skeleton	method.skeleton
+MethodAddCoerce	RMethodUtils
+MethodDefinition-class	MethodDefinition-class
+MethodDefinitionWithTrace-class	TraceClasses
+Methods	Methods
+methods-defunct	methods-defunct
+methods-deprecated	methods-deprecated
+MethodSelectionReport-class	testInheritedMethods
+methodSignatureMatrix	methodUtilities
+MethodsList	MethodsList
+MethodsList-class	MethodsList-class
+MethodsListSelect	MethodsList
+methodsPackageMetaName	RClassUtils
+Methods_Details	Methods_Details
+Methods_for_Nongenerics	Methods_for_Nongenerics
+Methods_for_S3	Methods_for_S3
+MethodWithNext-class	MethodWithNext-class
+MethodWithNextWithTrace-class	TraceClasses
+missing-class	BasicClasses
+missingArg	RMethodUtils
+mlistMetaName	methods-defunct
+mlm-class	setOldClass
+mtable-class	setOldClass
+mts-class	setOldClass
+multipleClasses	className
+name-class	LanguageClasses
+namedList-class	BasicClasses
+new	new
+newBasic	RClassUtils
+newClassRepresentation	RClassUtils
+newEmptyObject	RClassUtils
+nonstandardGeneric-class	RMethodUtils
+nonstandardGenericFunction-class	RMethodUtils
+nonstandardGenericWithTrace-class	TraceClasses
+nonstandardGroupGenericFunction-class	RMethodUtils
+nonStructure-class	nonStructure-class
+NULL-class	BasicClasses
+numeric-class	BasicClasses
+ObjectsWithPackage-class	ObjectsWithPackage-class
+oldClass-class	setOldClass
+Ops	S4groupGeneric
+Ops,array,array-method	StructureClasses
+Ops,array,structure-method	StructureClasses
+Ops,nonStructure,nonStructure-method	nonStructure-class
+Ops,nonStructure,vector-method	nonStructure-class
+Ops,structure,array-method	StructureClasses
+Ops,structure,structure-method	StructureClasses
+Ops,structure,vector-method	StructureClasses
+Ops,vector,nonStructure-method	nonStructure-class
+Ops,vector,structure-method	StructureClasses
+OptionalFunction-class	RMethodUtils
+optionalMethod-class	RMethodUtils
+ordered-class	setOldClass
+packageInfo-class	setOldClass
+packageIQR-class	setOldClass
+packageSlot	getPackageName
+packageSlot<-	getPackageName
+POSIXct-class	setOldClass
+POSIXlt-class	setOldClass
+POSIXt-class	setOldClass
+possibleExtends	RClassUtils
+PossibleMethod-class	RMethodUtils
+print.classRepresentation	RClassUtils
+print.MethodsList	MethodsList
+prohibitGeneric	implicitGeneric
+promptClass	promptClass
+promptMethods	promptMethods
+prototype	representation
+Quote	methodUtilities
+raw-class	BasicClasses
+rbind2	cbind2
+rbind2,ANY,ANY-method	cbind2
+rbind2,ANY,missing-method	cbind2
+rbind2-methods	cbind2
+reconcilePropertiesAndPrototype	RClassUtils
+recordedplot-class	setOldClass
+refClass-class	refClass
+refClassRepresentation-class	refClass
+ReferenceClasses	refClass
+refGeneratorSlot-class	refClass
+refMethodDef-class	refClass
+refMethodDefWithTrace-class	refClass
+refObject-class	refClass
+refObjectGenerator-class	refClass
+registerImplicitGenerics	implicitGeneric
+rematchDefinition	RMethodUtils
+removeClass	findClass
+removeGeneric	GenericFunctions
+removeMethod	removeMethod
+removeMethods	GenericFunctions
+removeMethodsObject	methods-defunct
+repeat-class	LanguageClasses
+representation	representation
+requireMethods	RClassUtils
+resetClass	findClass
+resetGeneric	MethodSupport
+rle-class	setOldClass
+S3	S3Part
+S3-class	S3Part
+S3Class	S3Part
+S3Class<-	S3Part
+S3Part	S3Part
+S3Part<-	S3Part
+S4	S3Part
+S4-class	BasicClasses
+S4groupGeneric	S4groupGeneric
+SClassExtension-class	SClassExtension-class
+sealClass	findClass
+SealedMethodDefinition-class	MethodDefinition-class
+seemsS4Object	methods-defunct
+selectMethod	getMethod
+selectSuperClasses	selectSuperClasses
+setAs	setAs
+setClass	setClass
+setClassUnion	setClassUnion
+setDataPart	RClassUtils
+setExtendsMetaData	RClassUtils
+setGeneric	setGeneric
+setGenericImplicit	implicitGeneric
+setGroupGeneric	setGroupGeneric
+setIs	setIs
+setLoadAction	setLoadActions
+setLoadActions	setLoadActions
+setMethod	setMethod
+setOldClass	setOldClass
+setPackageName	getPackageName
+setPrimitiveMethods	RMethodUtils
+setRefClass	refClass
+setReplaceMethod	GenericFunctions
+setSubclassMetaData	RClassUtils
+setValidity	validObject
+show	show
+show,ANY-method	show
+show,classRepresentation-method	show
+show,envRefClass-method	refClass
+show,externalRefMethod-method	refClass
+show,genericFunction-method	show
+show,genericFunctionWithTrace-method	TraceClasses
+show,MethodDefinition-method	show
+show,MethodDefinitionWithTrace-method	TraceClasses
+show,MethodWithNext-method	show
+show,MethodWithNextWithTrace-method	TraceClasses
+show,ObjectsWithPackage-method	show
+show,refClassRepresentation-method	refClass
+show,refMethodDef-method	refClass
+show,signature-method	signature-class
+show,sourceEnvironment-method	TraceClasses
+show,traceable-method	show
+show,ts-method	StructureClasses
+show-methods	show
+showClass	RClassUtils
+showDefault	methodUtilities
+showExtends	RClassUtils
+showMethods	showMethods
+showMlist	MethodsList
+signature	GenericFunctions
+signature-class	signature-class
+SignatureMethod	MethodsList
+sigToEnv	RMethodUtils
+single-class	BasicClasses
+slot	slot
+slot<-	slot
+slotNames	slot
+slotsFromS3	S3Part
+socket-class	setOldClass
+sourceEnvironment-class	evalSource
+special-class	BasicClasses
+standardGeneric-class	RMethodUtils
+standardGenericWithTrace-class	RMethodUtils
+structure-class	StructureClasses
+subclassesMetaName	RClassUtils
+substituteDirect	substituteDirect
+substituteFunctionArgs	RMethodUtils
+Summary	S4groupGeneric
+summary.table-class	setOldClass
+summaryDefault-class	setOldClass
+superClassDepth	RClassUtils
+SuperClassMethod-class	refClass
+table-class	setOldClass
+testInheritedMethods	testInheritedMethods
+testVirtual	RClassUtils
+traceable-class	TraceClasses
+traceOff	methods-defunct
+traceOn	methods-defunct
+tryNew	RClassUtils
+trySilent	methods-defunct
+ts-class	StructureClasses
+uninitializedField-class	refClass
+unRematchDefinition	RMethodUtils
+validObject	validObject
+validSlotNames	RClassUtils
+vector-class	BasicClasses
+VIRTUAL-class	BasicClasses
+while-class	LanguageClasses
+__ClassMetaData	Classes_Details
+{-class	LanguageClasses
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/help/methods.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/help/methods.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/help/methods.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/help/methods.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/libs/methods.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/libs/methods.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/NAMESPACE	(revision 2476)
@@ -0,0 +1,240 @@
+useDynLib(methods, .registration = TRUE, .fixes = "C_")
+
+## The methods namespace is loaded very early in the startup sequence
+## (if in R_DEFAULT_PACKAGES), so adding other namespaces here has the
+## undesirable effect of loading them early too (e.g. onLoad hooks are
+## likely to be not yet set).
+
+
+exportPattern("^\\.__C__")
+exportPattern("^\\.__M__")
+exportPattern("^\\.__T__")
+
+export(.S4methods)
+export(.TraceWithMethods)
+export(.untracedFunction)
+export(.doTracePrint)
+export(.valueClassTest)
+## export("@<-")
+export(Arith)
+export(Compare)
+export(Complex)
+export(Logic)
+export(Math)
+export(Math2)
+export(MethodAddCoerce)
+export(MethodsList)
+export(MethodsListSelect)
+export(Ops)
+export(Quote)
+export(SignatureMethod)
+export(S3Class)
+export("S3Class<-")
+export(S3Part)
+export("S3Part<-")
+export(Summary)
+export(addNextMethod)
+export(allGenerics)
+export(allNames)
+export(as, "as<-")
+export(asMethodDefinition)
+export(assignClassDef)
+export(assignMethodsMetaData)
+export(balanceMethodsList)
+export("body<-")
+export(cacheGenericsMetaData)
+export(cacheMetaData)
+export(cacheMethod)
+export(callGeneric)
+export(callNextMethod)
+export(canCoerce)
+export(checkAtAssignment)
+export(checkSlotAssignment)
+export(classMetaName)
+export(classLabel)
+export(className, .classEnv)
+export(classesToAM)
+export(coerce, "coerce<-")
+export(completeClassDefinition)
+export(completeExtends)
+export(completeSubclasses)
+export(conformMethod)
+export(defaultDumpName)
+export(defaultPrototype)
+export(doPrimitiveMethod)
+export(dumpMethod)
+export(dumpMethods)
+export(el, "el<-")# (now unused)
+export(elNamed, "elNamed<-")
+export(empty.dump)
+export(emptyMethodsList)
+export(evalOnLoad)
+export(evalqOnLoad)
+export(evalSource)
+export(existsFunction)
+export(existsMethod)
+export(extends)
+export(externalRefMethod)
+export(finalDefaultMethod)
+export(findClass)
+export(findFunction)
+export(findMethod)
+export(findMethods)
+export(findMethodSignatures)
+export(findUnique)
+export(fixPre1.8)
+export(formalArgs)
+export(functionBody, "functionBody<-")
+export(generic.skeleton)
+export(getAccess)
+export(getAllMethods)
+export(getAllSuperClasses)
+export(getClass)
+export(getClassDef)
+export(getClassName)
+export(getClassPackage)
+export(getClasses)
+export(getDataPart)
+export(getExtends)
+export(getFunction)
+export(getGeneric)
+export(getGenerics)
+export(getGroup)
+export(getGroupMembers)
+export(getLoadActions)
+export(getMethod)
+export(getMethods)
+export(getMethodsForDispatch)
+export(getMethodsMetaData)
+export(getPackageName)
+export(getProperties)
+export(getPrototype)
+export(getSlots)
+export(getSubclasses)
+export(getValidity)
+export(getVirtual)
+export(hasArg)
+export(hasLoadAction)
+export(hasMethod)
+export(hasMethods)
+export(inheritedSlotNames)
+export(initialize)
+export(insertClassMethods)
+export(insertMethod)
+export(insertSource)
+export(is)
+export(isClass)
+export(isClassDef)
+export(isClassUnion)
+export(isGeneric)
+export(isGrammarSymbol)
+export(isGroup)
+export(isSealedClass)
+export(isSealedMethod)
+export(isVirtualClass)
+export(isXS3Class)
+export(languageEl)
+export("languageEl<-")
+export(linearizeMlist)
+export(listFromMethods)
+export(listFromMlist)
+export(loadMethod)
+export(makeClassRepresentation)
+export(makeExtends)
+export(makeGeneric)
+export(makeMethodsList)
+export(makePrototypeFromClassDef)
+export(makeStandardGeneric)
+export(matchSignature)
+export(mergeMethods)
+export(metaNameUndo)
+export(methodSignatureMatrix)
+export(methodsPackageMetaName)
+export(method.skeleton)
+export(missingArg)
+export(mlistMetaName)
+export(multipleClasses)
+export(new)
+export(newBasic)
+export(newClassRepresentation)
+export(selectSuperClasses, .selectSuperClasses)
+export(newEmptyObject)
+export(packageSlot)
+export("packageSlot<-")
+export(possibleExtends)
+export(promptClass)
+export(promptMethods)
+export(prototype)
+export(reconcilePropertiesAndPrototype)
+export(rematchDefinition)
+export(removeClass)
+export(removeGeneric)
+export(removeMethod)
+export(removeMethods)
+export(removeMethodsObject)
+export(representation)
+export(requireMethods)
+export(resetClass)
+export(resetGeneric)
+export(sealClass)
+export(selectMethod)
+export(seemsS4Object)
+export(setAs)
+export(setClass)
+export(setClassUnion)
+export(setDataPart)
+export(setGeneric)
+export(setGroupGeneric)
+export(setIs)
+export(setLoadAction)
+export(setLoadActions)
+export(setMethod)
+export(setOldClass, .OldClassesList)
+export(setPackageName)
+export(setPrimitiveMethods)
+export(setReplaceMethod)
+export(setValidity)
+export(show)
+export(showClass)
+export(showDefault)
+export(showExtends)
+export(showMethods)
+export(showMlist)
+export(sigToEnv)
+export(signature)
+export(slot, "slot<-", ".hasSlot")
+export(slotNames, ".slotNames")
+export(slotsFromS3)
+export(substituteDirect)
+export(substituteFunctionArgs)
+export(superClassDepth)
+export(testInheritedMethods)
+export(testVirtual)
+export(traceOff)
+export(traceOn)
+export(tryNew)
+export(unRematchDefinition)
+export(validObject)
+export(validSlotNames)
+
+## the next 2 would not be needed if R_initMethods looked in the namespace, not globalenv
+export(.ShortPrimitiveSkeletons)
+export(.EmptyPrimitiveSkeletons)
+
+## to allow "S4"-cbind/rbind (./R/cbind-rbind.R)
+export(cbind2)
+export(rbind2)
+export(kronecker)
+
+## implicit generic functionality
+
+export(implicitGeneric)
+export(setGenericImplicit)
+export(prohibitGeneric)
+export(registerImplicitGenerics)
+
+## reference classes
+export(setRefClass)
+export(getRefClass)
+export(initFieldArgs) # used in initialize methods--old version
+export(initRefFields) # used in initialize methods
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/R/methods.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/R/methods.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/R/methods
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/R/methods	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/R/methods	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/R/methods.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/R/methods.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/duplicateClass.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/duplicateClass.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/duplicateClass.R	(revision 2476)
@@ -0,0 +1,35 @@
+## Tests for handling classes with same name & different package slots
+## First:  Can we define the classes and get the separate definitions
+## from the appropriate namespace or from the package slot in class(x)?
+if(!require(Matrix)) q()
+
+## from: example(chol)
+sy2 <- new("dsyMatrix", Dim = as.integer(c(2,2)), x = c(14, NA,32,77))
+c2 <- chol(sy2)
+
+clM <- getClass("Cholesky")
+
+setClass("Cholesky", contains = "numeric", representation(size = "integer"))
+
+clG <- getClass("Cholesky", where = .GlobalEnv)
+
+stopifnot(identical(getClass("Cholesky", where = asNamespace("Matrix")),
+                    clM))
+
+stopifnot(identical(getClass(class(c2)), clM))
+
+stopifnot(identical(evalq(getClass("Cholesky"), asNamespace("Matrix")),
+                    clM))
+stopifnot(identical(getClass("Cholesky"), clG))
+
+## Second:  tests of methods defined for the same generic
+## (NOT YET!)
+
+## Related: retaining package slots in methods signatures (reported by Martin Morgan)
+setClass("A")
+setGeneric("bar", function(x, y) standardGeneric("bar"))
+setMethod(bar, signature(x="A", y="A"), function(x, y) {})
+setMethod(bar, signature(x="A", y="ANY"), function(x, y) {})
+
+## tests one use of .matchSigLength
+stopifnot(all(nzchar(getMethod("bar", signature(x="A", y="ANY"))@target@package)))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/basicRefClass.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/basicRefClass.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/basicRefClass.R	(revision 2476)
@@ -0,0 +1,530 @@
+## simple call, only field names
+fg <- setRefClass("foo", c("bar", "flag"))
+f0 <- new("foo")  # deprecated, but should still work
+f1 <- fg(flag = "testing")
+f1$bar <- 1
+stopifnot(identical(f1$bar, 1))
+## add method
+fg$methods(showAll = function() c(bar, flag))
+stopifnot(all.equal(f1$showAll(), c(1, "testing")))
+str(f1)
+
+fg <- setRefClass("foo", list(bar = "numeric", flag = "character",
+                              tag = "ANY"),
+                  methods = list(addToBar = function(incr) {
+                      b <- bar + incr
+                      bar <<- b
+                      b
+                  } )
+                  )
+fg$lock("flag")
+stopifnot(identical(fg$lock(), "flag"))
+
+ff <- new("foo", bar = 1.5)
+stopifnot(identical(ff$bar, 1.5))
+ff$bar <- pi
+stopifnot(identical(ff$bar, pi))
+## flag has not yet been set
+ff$flag <- "flag test"
+stopifnot(identical(ff$flag, "flag test"))
+## but no second assign
+stopifnot(is(tryCatch(ff$flag <- "new", error = function(e)e), "error"))
+
+## test against generator
+
+f2 <- fg(bar = pi, flag = "flag test")
+## identical does not return TRUE if *contents* of env are identical
+stopifnot(identical(ff$bar, f2$bar), identical(ff$flag, f2$flag))
+## but flag was now assigned once
+stopifnot(is(tryCatch(f2$flag <- "new", error = function(e)e), "error"))
+
+str(f2)
+
+
+## add some accessor methods
+fg$accessors("bar")
+
+ff$setBar(1:3)
+stopifnot(identical(ff$getBar(), 1:3))
+
+ff$getBar()
+stopifnot(all.equal(ff$addToBar(1), 2:4))
+
+
+## Add a method
+fg$methods(barTimes = function(x) {
+    "This method multiples field bar by argument x
+and this string is self-documentation"
+    setBar(getBar() * x)})
+
+ffbar <- ff$getBar()
+ff$barTimes(10)
+stopifnot(all.equal(ffbar * 10, ff$getBar()))
+ff$barTimes(.1)
+
+## inheritance.  redefines flag so should fail:
+stopifnot(is(tryCatch(setRefClass("foo2", list(b2 = "numeric",
+					       flag = "complex"),
+            contains = "foo",
+            refMethods = list(addBoth = function(incr) {
+                addToBar(incr) #uses inherited class method
+                setB2(getB2() + incr)
+                })),
+          error = function(e)e), "error"))
+## but with flag as a subclass of "characters", should work
+## Also subclasses "tag" which had class "ANY before
+setClass("ratedChar", contains = "character",
+         representation(score = "numeric"))
+foo2 <- setRefClass("foo2", list(b2 = "numeric", flag = "ratedChar",
+				 tag = "numeric"),
+	    contains = "foo",
+	    methods = list(addBoth = function(incr) {
+                addToBar(incr) #uses inherited class method
+                b2 <<- b2 + incr
+                }))
+## now lock the flag field; should still allow one write
+foo2$lock("flag")
+f2 <- foo2(bar = -3, flag = as("ANY", "ratedChar"),
+               b2 = ff$bar, tag = 1.5)
+## but not a second one
+stopifnot(is(tryCatch(f2$flag <- "Try again",
+         error = function(e)e), "error"))
+str(f2)
+f22 <- foo2(bar = f2$bar)
+## same story if assignment follows the initialization
+f22$flag <- f2$flag
+stopifnot(is(tryCatch(f22$flag <- "Try again",
+         error = function(e)e), "error"))
+## Exporting superclass object
+f22 <- fg(bar = f2$bar, flag = f2$flag)
+f2e <- f2$export("foo")
+stopifnot(identical(f2e$bar, f22$bar), identical(f2e$flag, f22$flag),
+          identical(class(f2e), class(f22)))
+stopifnot(identical(f2$flag,  as("ANY", "ratedChar")),
+          identical(f2$bar, -3),
+          all.equal(f2$b2, 2:4+0))
+f2$addBoth(-1)
+stopifnot(all.equal(f2$bar, -4), all.equal(f2$b2, 1:3+0))
+
+## test callSuper()
+foo3 <- setRefClass("foo3", fields = list(flag2 = "ratedChar"),
+            contains = "foo2",
+	    methods = list(addBoth = function(incr) {
+		callSuper(incr)
+		flag2 <<- as(paste(flag, paste(incr, collapse = ", "),
+				   sep = "; "),
+                             "ratedChar")
+                incr
+            }))
+
+f2 <- foo2(bar = -3, flag = as("ANY", "ratedChar"), b2 =  1:3)
+f3 <- foo3()
+f3$import(f2)
+stopifnot(all.equal(f3$b2, f2$b2), all.equal(f3$bar, f2$bar),
+          all.equal(f3$flag, f2$flag))
+f3$addBoth(1)
+stopifnot(all.equal(f3$bar, -2), all.equal(f3$b2, 2:4+0),
+          all.equal(f3$flag2, as("ANY; 1", "ratedChar")))
+
+## but the import should have used up the one write for $flag
+stopifnot(is(tryCatch(f3$flag <- "Try again",
+         error = function(e)e), "error"))
+str(f3)
+
+## importing the same class (not very useful but documented to work)
+f3 <- foo3()
+f4 <- foo3(bar = -3, flag = as("More", "ratedChar"), b2 =  1:3, flag2 = f2$flag)
+f3$import(f4)
+stopifnot(identical(f3$bar, f4$bar),
+          identical(f3$flag, f4$flag),
+          identical(f3$b2, f4$b2),
+          identical(f3$flag2, f4$flag2))
+
+## similar to $import() but using superclass object in the generator call
+## The explicitly supplied flag= should override and be allowed
+## by the default $initialize()
+f3b <- foo3(f2, flag = as("Other", "ratedChar"),
+                flag2 = as("More", "ratedChar"))
+## check that inherited and direct field assignments worked
+stopifnot(identical(f3b$tag, f2$tag),
+          identical(f3b$flag, as("Other", "ratedChar")),
+          identical(f3b$flag2, as("More", "ratedChar")))
+## the $new() method should match the generator function
+f3b <- foo3$new(f2, flag = as("Other", "ratedChar"),
+                flag2 = as("More", "ratedChar"))
+stopifnot(identical(f3b$tag, f2$tag),
+          identical(f3b$flag, as("Other", "ratedChar")),
+          identical(f3b$flag2, as("More", "ratedChar")))
+## a class with an initialize method, and an extra slot (legal, not a good idea)
+setOldClass(c("simple.list", "list"))
+fg4 <- setRefClass("foo4",
+            contains = "foo2",
+            methods = list(
+              initialize = function(...) {
+                  .self$initFields(...)
+                  .self@made <<- R.version
+                  .self
+              }),
+            representation = list(made = "simple.list")
+            )
+
+f4 <- new("foo4", flag = as("another test", "ratedChar"), bar = 1:3)
+stopifnot(identical(f4@made, R.version))
+
+## a trivial class with no fields, using fields = list(), failed up to rev 56035
+foo5 <- setRefClass("foo5", fields = list(),
+                    methods = list(bar = function(test)
+                    paste("*",test,"*")))
+
+f5 <- foo5()
+stopifnot(identical( f5$bar("xxx"), paste("*","xxx", "*")))
+
+
+## simple active binding test
+abGen <- setRefClass("ab",
+                  fields = list(a = "ANY",
+                  b = function(x) if(missing(x)) a else {a <<- x; x}))
+
+ab1 <- abGen(a = 1)
+
+stopifnot(identical(ab1$a, 1), identical(ab1$b, 1))
+
+ab1$b <- 2
+
+stopifnot(identical(ab1$a, 2), identical(ab1$b, 2))
+
+## a simple editor for matrix objects.  Method  $edit() changes some
+## range of values; method $undo() undoes the last edit.
+mEditor <- setRefClass("matrixEditor",
+        fields = list(data = "matrix",
+		     edits = "list"),
+       methods = list(
+     edit = function(i, j, value) {
+       ## the following string documents the edit method
+       'Replaces the range [i, j] of the
+	object by value.
+        '
+         backup <-
+             list(i, j, data[i,j])
+         data[i,j] <<- value
+         edits <<- c(list(backup),
+                     edits)
+         invisible(value)
+     },
+     undo = function() {
+       'Undoes the last edit() operation
+        and update the edits field accordingly.
+        '
+         prev <- edits
+         if(length(prev)) prev <- prev[[1]]
+         else stop("No more edits to undo")
+         edit(prev[[1]], prev[[2]], prev[[3]])
+         ## trim the edits list
+         length(edits) <<- length(edits) - 2
+         invisible(prev)
+     }
+     ))
+xMat <- matrix(1:12,4,3)
+xx <- mEditor(data = xMat)
+xx$edit(2, 2, 0)
+xx$data
+xx$undo()
+mEditor$help("undo")
+stopifnot(all.equal(xx$data, xMat))
+
+## add a method to save the object
+mEditor$methods(
+     save = function(file) {
+       'Save the current object on the file
+ in R external object format.
+'
+         base::save(.self, file = file)
+     },
+     counter = function(i) {
+         'The number of items in the i-th edit.
+ (Used to test usingMethods())
+'
+         if(i > 0 && i <= length(edits))
+             length(edits[[i]][[3]])
+         else
+             0L
+     }
+)
+
+tf <- tempfile()
+xx$save(tf) #$
+load(tf)
+unlink(tf)
+stopifnot(identical(xx$data, .self$data))
+
+## tests of $trace() methods
+## debugging an object
+xx$trace(edit, quote(xxTrace <<- TRUE))
+
+## debugging all objects from class mEditor in method $undo()
+mEditor$trace(undo, quote(mETrace <<- TRUE))
+
+xxTrace <- mETrace <- FALSE
+xx$edit(2,3,100)
+xx$undo()
+
+## will not have changed the xx$undo() method (already used)
+stopifnot(identical(xxTrace, TRUE), identical(mETrace, FALSE))
+
+## but a new object works the other way around
+xxTrace <- mETrace <- FALSE
+xx <- mEditor(data = xMat)
+xx$edit(2,3,100)
+xx$undo()
+stopifnot(identical(xxTrace, FALSE), identical(mETrace, TRUE))
+
+
+
+markViewer <- ""
+setMarkViewer <- function(what)
+    markViewer <<- what
+
+## Inheriting a reference class:  a matrix viewer
+mv <- setRefClass("matrixViewer",
+    fields = c("viewerDevice", "viewerFile"),
+    contains = "matrixEditor",
+    methods = list( view = function() {
+        dd <- dev.cur(); dev.set(viewerDevice)
+        devAskNewPage(FALSE)
+        matplot(data, main = paste("After",length(edits),"edits"))
+        dev.set(dd)},
+        edit = # invoke previous method, then replot
+          function(i, j, value) {
+            callSuper(i, j, value)
+            view()
+          }))
+
+## initialize and finalize methods
+mv$methods( initialize = function(file = "./matrixView.pdf", ...) {
+    viewerFile <<- file
+    pdf(viewerFile)
+    viewerDevice <<- dev.cur()
+    message("Plotting to ", viewerFile)
+    dev.set(dev.prev())
+    setMarkViewer("ON")
+    initFields(...)
+  },
+  finalize = function() {
+    dev.off(viewerDevice)
+    setMarkViewer("OFF")
+  })
+
+## a counts method to test usingMethods()
+mv$methods( counts = function() {
+    usingMethods("counter")
+    sapply(seq_along(edits), "counter")
+})
+
+
+ff <- mv( data = xMat)
+stopifnot(identical(markViewer, "ON")) # check initialize
+ff$edit(2,2,0)
+ff$data
+if(methods:::.hasCodeTools())  # otherwise 'counter' is not visible
+    stopifnot(identical(ff$counts(), length(ff$edits[[1]][[3]])))
+ff$undo()
+stopifnot(all.equal(ff$data, xMat))
+rm(ff)
+gc()
+stopifnot(identical(markViewer, "OFF")) #check finalize
+
+## tests of copying
+viewerPlus <- setRefClass("viewerPlus",
+                   fields = list( text = "character",
+                      viewer = "matrixViewer"))
+ff <- mv( data = xMat)
+v1 <- viewerPlus(text = letters, viewer = ff)
+v2 <- v1$copy()
+v3 <- v1$copy(TRUE)
+v2$text <- "Hello, world"
+v2$viewer$data <- t(xMat) # change a field in v2$viewer
+v3$text <- LETTERS
+v3$viewer <- mv( data = matrix(nrow=1,ncol=1))
+## with a deep copy all is protected, with a shallow copy
+## the environment of a copied field remains the same,
+## but replacing the whole field should be local
+stopifnot(identical(v1$text, letters),
+          identical(v1$viewer, ff),
+          identical(v2$text, "Hello, world"))
+v3 <- v1$copy(TRUE)
+v3$viewer$data <- t(xMat) # should modify v1$viewer as well
+stopifnot(identical(v1$viewer$data, t(xMat)))
+
+## the field() method
+stopifnot(identical(v1$text, v1$field("text")))
+v1$field("text", "Now is the time")
+stopifnot(identical(v1$field("text"), "Now is the time"))
+
+## setting a non-existent field, or a method, should throw an error
+stopifnot(is(tryCatch(v1$field("foobar", 0), error = function(e)e), "error"),
+         is(tryCatch(v1$field("copy", 0), error = function(e)e), "error") )
+
+## the methods to extract class definition and generator
+stopifnot(identical(v3$getRefClass()$def, getRefClass("viewerPlus")$def),
+          identical(v3$getClass(), getClass("viewerPlus")))
+
+## deal correctly with inherited methods and overriding existing
+## methods from $methods(...)
+refClassA <- setRefClass("refClassA", methods=list(foo=function() "A"))
+refClassB <- setRefClass("refClassB", contains="refClassA")
+mnames <- objects(getClass("refClassB")@refMethods)
+refClassB$methods(foo=function() callSuper())
+stopifnot(identical(refClassB()$foo(), "A"))
+mnames2 <- objects(getClass("refClassB")@refMethods)
+stopifnot(identical(mnames2[is.na(match(mnames2,mnames))], "foo#refClassA"))
+refClassB$methods(foo=function() paste(callSuper(), "Version 2"))
+stopifnot(identical(refClassB()$foo(), "A Version 2"))
+stopifnot(identical(mnames2, objects(getClass("refClassB")@refMethods)))
+
+if(methods:::.hasCodeTools()) {
+    ## code warnings assigning locally to field names
+    stopifnot(is(tryCatch(mv$methods(test = function(x)
+                                 { data <- x[!is.na(x)]; mean(data)}),
+                          warning = function(e)e), "warning"))
+
+    ## warnings for nonlocal assignment that is not a field
+    stopifnot(is(tryCatch(mv$methods(test2 = function(x) {something <<- data[!is.na(x)]}), warning = function(e)e), "warning"))
+
+    ## error for trying to assign to a method name
+    stopifnot(is(tryCatch(mv$methods(test3 = function(x) {edit <<- data[!is.na(x)]}), error = function(e)e), "error"))
+} else
+    warning("Can't run some tests:  recommended package codetools is not available")
+
+## tests (fragmentary by necessity) of promptClass for reference class
+ccon <- textConnection("ctxt", "w")
+suppressMessages(promptClass("refClassB", filename = ccon))
+## look for a method, inheritance, inherited method
+stopifnot(length(c(grep("foo.*refClassA", ctxt),
+                   grep("code{foo()}", ctxt, fixed = TRUE),
+                   grep("linkS4class{refClassA", ctxt, fixed = TRUE))) >= 3)
+close(ccon)
+rm(ctxt)
+
+
+## tests related to subclassing environments.  These really test code in the core, viz. builtin.c
+a <- refClassA()
+ev <- new.env(parent = a) # parent= arg
+stopifnot(is.environment(ev))
+foo <- function()"A"; environment(foo) <- a # environment of function
+stopifnot(identical(as.environment(a), environment(foo)))
+xx <- 1:10; environment(xx) <- a # environment attribute
+stopifnot(identical(as.environment(a), environment(xx)))
+
+
+## tests of [[<- and $<- for subclasses of environment.  At one point
+## methods for these assignments were defined and caused
+## inf. recursion when the arguments to the [[<- case were changed in base.
+setClass("myEnv", contains = "environment")
+m <- new("myEnv", a="test")
+m2 <- new("myEnv"); m3 <- new("myEnv")
+## test that new.env() is called for each new object
+stopifnot(!identical(as.environment(m), as.environment(m2)),
+          !identical(as.environment(m3), as.environment(m2)))
+m[["x"]] <- 1; m$y <- 2
+stopifnot(identical(c(m[["x"]], m$y), c(1,2)), is(m, "myEnv"))
+rm(x, envir = m) # check rm() works, does not clobber class
+stopifnot(identical(sort(objects(m)), sort(c("a", "y"))),
+          is(m, "myEnv"))
+
+## tests of binding & environment tools with subclases of environment
+lockBinding("y", m)
+stopifnot(bindingIsLocked("y", m))
+unlockBinding("y", m)
+stopifnot(!bindingIsLocked("y", m))
+
+makeActiveBinding("z", function(value) {
+    if(missing(value))
+        "dummy"
+    else
+        "dummy assignment"
+}, m)
+stopifnot(identical(get("z", m),"dummy"))
+## assignment will return the value but do nothing
+stopifnot(identical(assign("z","other", m), "other"),
+          identical(get("z", m),"dummy"))
+
+
+## this has to be last--Seems no way to unlock an environment!
+lockEnvironment(m)
+stopifnot(environmentIsLocked(m))
+
+rm(m)
+m <- new("myEnv")
+stopifnot(length(ls(m)) == 0)
+## used to contain the previous content
+
+
+## test of callSuper() to a hidden default method for initialize() (== initFields)
+TestClass <- setRefClass ("TestClass",
+     fields = list (text = "character"),
+     methods = list(
+       print = function ()  {cat(text)},
+       initialize = function(text = "", ...) callSuper(text = paste(text, ":", sep=""),...)
+  ))
+tt <- TestClass("hello world")
+stopifnot(identical(tt$text, "hello world:"))
+## now a subclass with another field & another layer of callSuper()
+TestClass2 <- setRefClass("TestClass2",
+        contains = "TestClass",
+        fields = list( version = "integer"),
+        methods = list(
+          initialize = function(..., version = 0L)
+              callSuper(..., version = version+1L))
+  )
+tt <- TestClass2("test", version = 1L)
+stopifnot(identical(tt$text, "test:"), identical(tt$version, as.integer(2)))
+tt <- TestClass2(version=3L) # default text
+stopifnot(identical(tt$text, ":"), identical(tt$version, as.integer(4)))
+
+
+## test some capabilities but read-only for .self
+.changeAllFields <- function(replacement) {
+    fields <- names(.refClassDef@fieldClasses)
+    for(field in fields)
+        eval(substitute(.self$FIELD <- replacement$FIELD,
+                        list(FIELD = field)))
+}
+
+mEditor$methods(change = .changeAllFields)
+xx <- mEditor(data = xMat)
+xx$edit(2, 2, 0)
+
+yy <- mEditor(data = xMat+1)
+yy$change(xx)
+stopifnot(identical(yy$data, xx$data), identical(yy$edits, xx$edits))
+
+## but don't allow assigment
+if(methods:::.hasCodeTools())
+        stopifnot(is(tryCatch(yy$.self$data <- xMat, error = function(e)e), "error"))
+
+## the locked binding of refGeneratorSlot class should prevent modifying
+## methods, locking fields or setting accessor methods
+## Nothing special about refGeneratorSlot in this test -- the point is just
+## to use a standard reference class known to be defined in a package
+evr <- getRefClass("refGeneratorSlot") # in methods
+stopifnot(is(tryCatch(evr$methods(foo = function()"..."), error = function(e)e), "error"),
+         is(tryCatch(evr$lock("def"), error = function(e)e), "error"),
+         is(tryCatch(evr$accessors("def"), error = function(e)e), "error"))
+
+##getRefClass() method and function should work with either
+## a class name or a class representation (bug report 14600)
+tg <- setRefClass("tg", fields = "a")
+t1 <- tg(a=1)
+tgg <- t1$getRefClass()
+tggg <- getRefClass("tg")
+stopifnot(identical(tgg$def, tggg$def),
+          identical(tg$def, tgg$def))
+
+## this used to fail in initFieldArgs() from partial matching "self"
+selfClass <- setRefClass("selfClass",
+        fields=list(
+            self="character", super="character", sub="character"
+        )
+    )
+
+stopifnot(identical(selfClass(self="B", super="A", sub="C")$self, "B"))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/nextWithDots.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/nextWithDots.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/nextWithDots.R	(revision 2476)
@@ -0,0 +1,20 @@
+setClass("A")
+setClass("B", contains = c("array", "A"))
+a = array(1:12, c(2,3,4))
+bb = new("B", a)
+a2 = array(8:1, rep(2,3))
+stopifnot(identical(initialize(bb, a2), new("B",a2)))
+
+withDots <- function(x, ...) names(list(...))
+
+setGeneric("withDots")
+
+setClass("C", representation(x="numeric", y="character"))
+
+setMethod("withDots", "C", function(x, ...)
+          callNextMethod()
+          )
+stopifnot(identical(withDots(1, a=1, b=2), withDots(new("C"), a=1, b=2)))
+removeClass("C"); removeClass("B"); removeClass("A")
+removeGeneric("withDots")
+rm(a, bb, a2)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/S3.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/S3.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/S3.R	(revision 2476)
@@ -0,0 +1,29 @@
+## accumulate here tests of the relation between S4 and S3 classes
+
+## $<-.data.frame did stupid things with the class attribute
+## that clobbered S4 classes extending "data.frame"
+## Test that the S4 method (R 2.13.0) works transparently
+
+set.seed(864)
+
+xx <- data.frame(a=rnorm(10),
+                 b=as.factor(sample(c("T", "F"), 10, TRUE)),
+                 row.names = paste("R",1:10,sep=":"))
+
+setClass("myData", representation(extra = "character"),
+         contains = "data.frame")
+
+mx <- new("myData", xx, extra = "testing")
+
+## three kinds of $<-: replace, add, delete (NULL value)
+
+mx$a <- mx$a * 2
+xx$a <- xx$a * 2
+
+mx$c <- 1:10
+xx$c <- 1:10
+
+mx$b <- NULL
+xx$b <- NULL
+
+stopifnot(identical(mx, new("myData", xx, extra = "testing")))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/mixinInitialize.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/mixinInitialize.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/mixinInitialize.R	(revision 2476)
@@ -0,0 +1,86 @@
+setClass("A", representation(a="numeric"))
+
+a1 <- new("A", a=1.5)
+m1 <- as.matrix(1)
+
+setClass("M", contains = "matrix", representation(fuzz = "numeric"))
+
+set.seed(113)
+f1 <- runif(3)
+
+stopifnot(identical(as(new("M", 1:12, nrow = 3, fuzz = f1), "matrix"),
+		    matrix(1:12, nrow=3)),
+	  identical(as(new("M", 1:12, 3, fuzz = f1), "matrix"),
+		    matrix(1:12, 3)),
+	  identical(as(new("M", 1:12, ncol = 3, fuzz = f1), "matrix"),
+		    matrix(1:12, ncol=3)))
+
+setClass("B", contains = c("matrix", "A"))
+
+stopifnot(## a new "B" element mixing two superclass objects
+	  identical(new("B", m1, a1)@a, a1@a),
+	  ## or not
+	  identical(as(new("B", m1),"matrix"), m1),
+	  ## or supplying a slot to override
+	  identical(new("B", matrix(m1, nrow = 2), a1, a=pi)@a, pi))
+
+## an extra level of inheritance
+setClass("C", contains = "B", representation(c = "character"))
+new("C", m1, c = "Testing")
+
+## verify that validity tests work (PR#14284)
+setValidity("B", function(object) {
+    if(all(is.na(object@a) | (object@a > 0)))
+      TRUE
+    else
+      "elements of slot \"a\" must be positive"
+})
+
+a2 <- new("A", a= c(NA,3, -1, 2))
+
+## from the SoDA package on CRAN
+muststop <- function(expr, silent = TRUE) {
+    tryExpr <- substitute(tryCatch(expr, error=function(cond)cond))
+    value <- eval.parent(tryExpr)
+    if(inherits(value, "error")) {
+        if(!silent)
+          message("muststop reports: ", value)
+        invisible(value)
+    }
+    else
+      stop(gettextf("The expression  %s should have thrown an error, but instead returned an object of class \"%s\"",
+           deparse(substitute(expr))[[1]], class(value)))
+}
+
+muststop(new("B", m1, a2))
+
+removeClass("B")
+removeClass("C")
+removeClass("M")
+
+## TODO:  make versions of above inheriting from "array" and "ts"
+
+removeClass("A")
+
+## removeClass() for a union where "matrix"/"array" is part:
+setClassUnion("mn", c("matrix","numeric")); removeClass("mn")# gave "node stack overflow",
+setClassUnion("an", c("array", "integer")); removeClass("an")#  (ditto)
+setClassUnion("AM", c("array", "matrix"));  removeClass("AM")#  (ditto)
+## as had "matrix" -> "array" -> "matrix" ... recursion
+
+## and we want this to *still* work:
+stopifnot(is(tryCatch(as(a3 <- array(1:24, 2:4), "matrix"), error=function(e)e),
+	     "error"),
+	  is(as(a2 <- array(1:12, 3:4), "matrix"),
+	     "matrix"),
+	  is(a2, "matrix"), is(a2, "array"), is(a3, "array"), !is(a3, "matrix"),
+	  ## and yes, "for now":
+	  identical(a2, matrix(1:12, 3)))
+
+## subclassing a class that did not allow new() w/o extra args failed
+## through version 3.1.1
+setClass("BAR", slots = c(y="integer"))
+
+setMethod("initialize", "BAR", function(.Object, Y) {.Object@y <- Y; .Object})
+
+setClass("BAR3", contains = "BAR")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/testGroupGeneric.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/testGroupGeneric.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/testGroupGeneric.R	(revision 2476)
@@ -0,0 +1,83 @@
+## reset inherited methods of group members
+## (contributed by Martin Morgan, 2011-2-9)
+setClass("A", representation("numeric"))
+a <- new("A")
+
+setMethod("Logic", c("A", "A"), function(e1, e2) FALSE)
+res0 <- a & a                           # inherit &,A,A-method
+setMethod("Logic", c("A", "A"), function(e1, e2) TRUE)
+stopifnot(a & a)
+
+removeMethod("Logic", c("A", "A"))
+stopifnot(logical() == a & a)
+
+removeClass("A")
+
+### Find inherited group methods:
+if(require(Matrix)) { ## , lib.loc = .Library
+    sm <- selectMethod("-", c("dgCMatrix", "numeric"))# direct match with "Arith"
+    s2 <- selectMethod("-", c("dtCMatrix", "numeric"))# ambiguity match with "Arith"
+    stopifnot(sm@generic == "Arith", s2@generic == "Arith")
+}
+## was not ok in R 2.14.x
+
+## some tests of callGeneric().  It's reccommended for use with group generics
+setGeneric("f1", signature=c("a"),
+           function(..., a) standardGeneric("f1"))
+setMethod("f1", c(a="ANY"), function(..., a) list(a=a, ...))
+setMethod("f1", c(a="missing"), function(..., a) callGeneric(a=1, ...))
+f2 <- function(b,c,d, a) {
+    if (missing(a))
+        f1(b=b, c=c, d=d)
+    else
+        f1(a=a, b=b, c=c, d=d)
+}
+
+## use callGeneric both directly (f1) and indirectly (f2)
+## Latter failed pre rev. 66408; Bug ID 15937
+stopifnot(identical(c(1,2,3,4), as.vector(unlist(f1(2,3,4)))))
+stopifnot(identical(c(1,2,3,4), as.vector(unlist(f2(2,3,4)))))
+
+## test callGeneric() with no arguments.  This is rarely used
+## because nearly all applications use the groups Ops, etc.
+## whose members are primitives => must supply args to callGeneric
+
+Hide <- setClass("Hide", slots = c(data = "vector"), contains = "vector")
+
+unhide <- function(obj)
+    obj@data
+
+setGeneric("%p%", function(e1, e2) e1 + e2, group = "Ops2")
+setGeneric("%gt%", function(e1, e2) e1 > e2, group = "Ops2")
+
+setGroupGeneric("Ops2", function(e1,e2)NULL, knownMembers = c("%p%","%gt%"))
+
+setMethod("Ops2", c("Hide", "Hide"),
+          function(e1, e2) {
+              e1 <- unhide(e1)
+              e2 <- unhide(e2)
+              callGeneric()
+          })
+
+setMethod("Ops2", c("Hide", "vector"),
+          function(e1, e2) {
+              e1 <- unhide(e1)
+              callGeneric()
+          })
+setMethod("Ops2", c("vector", "Hide"),
+          function(e1, e2) {
+              e2 <- unhide(e2)
+              callGeneric()
+          })
+
+h1 <- Hide(data = 1:10)
+h2 <- Hide(data = (1:10)*.5+ 0.5)
+
+stopifnot(all.equal(h1%p%h2, h1@data + h2@data))
+stopifnot(all.equal(h1 %gt% h2, h1@data > h2@data))
+
+removeClass("Hide")
+for(g in c("f1", "%p%", "%gt%", "Ops2"))
+    removeGeneric(g)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/namesAndSlots.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/namesAndSlots.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/namesAndSlots.R	(revision 2476)
@@ -0,0 +1,19 @@
+setClass("B", contains = "numeric")
+xx <- new("B", 1)
+stopifnot(is(tryCatch(names(xx) <- "A" , warning = function(e)e), "warning"))
+names(xx) <- "A" # after this should not warn
+stopifnot(is(tryCatch(names(xx) <- "B" , warning = function(e)e), "character"))
+setClass("A", representation(xx = "numeric"))
+a <- new("A", xx = 1)
+stopifnot(is(tryCatch(names(a) <- "A" , error = function(e)e), "error"))
+setClass("C", representation(xx = "numeric", names= "character"))
+c <- new("C", xx = 1, names = "A")
+c@names <- "B"
+stopifnot(is(tryCatch(names(c) <- "A" , error = function(e)e), "error"))
+setClass("D", contains = "numeric", representation(names = "character"))
+d <- new("D", 1)
+names(d) <- "A"
+stopifnot(identical(d@names, "A"))
+## test the checks on @<- primitive assignment
+stopifnot(is(tryCatch(a@yy <- 1 , error = function(e)e), "error"))
+stopifnot(is(tryCatch(a@xx <- "A" , error = function(e)e), "error"))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/testIs.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/testIs.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/testIs.R	(revision 2476)
@@ -0,0 +1,61 @@
+## test (non-conditional) explicit inheritance
+setClass("xy", representation(x="numeric", y="numeric"))
+
+setIs("xy", "complex",
+      coerce = function(from) complex(real = from@x, imaginary = from@y),
+      replace = function(from, value) {
+          from@x <- Re(value)
+          from@y <- Im(value)
+          from
+      })
+
+set.seed(124)
+x1 <- rnorm(10)
+y1 <- rnorm(10)
+cc <- complex(real = x1, imaginary=y1)
+xyc <- new("xy", x = x1, y = y1)
+stopifnot(identical(cc, as(xyc, "complex")))
+as(xyc, "complex") <- cc * 1i
+stopifnot(identical(xyc, new("xy", x = -y1, y = x1)))
+
+setGeneric("size", function(x)standardGeneric("size"))
+## check that generic for size() was created w/o a default method
+stopifnot(is(size, "standardGeneric"),
+          is.null(selectMethod("size", "ANY",optional=TRUE)))
+
+setMethod("size", "vector", function(x)length(x))
+
+## class "xy" should inherit the vector method through complex
+stopifnot(identical(size(xyc), length(x1)))
+removeClass("xy")
+removeGeneric("size")
+
+
+### Related to  numeric <-> double <-> integer  proposals, end of 2015, on R-devel
+myN   <- setClass("myN",   contains="numeric")
+myNid <- setClass("myNid", contains="numeric", representation(id="character"))
+NN <-    setClass("NN", representation(x="numeric"))
+
+(m1 <- myN  (1:3))
+(m2 <- myNid(1:3, id = "i3"))
+tools::assertError(NN (1:3))# in all R versions
+nn <- myN(2*pi)
+##                     # current R  |  (not existing)
+##                     # -----------|----------
+class(getDataPart(m1)) # integer    |  numeric
+class(getDataPart(m2)) # integer    |  numeric
+## check for now [[conceivably, these *could* change !]] :
+stopifnot(identical(getDataPart(m1), 1:3),
+	  identical(getDataPart(m2), 1:3),
+	  identical(S3Part(m1, strict=TRUE), 1:3),
+	  identical(S3Part(m2, strict=TRUE), 1:3),
+	  identical(2*pi, S3Part(nn, strict = TRUE)))
+
+if(FALSE) ## --- all these fail still:
+stopifnot(
+    identical(as(1L, "numeric"), as.numeric(1L))
+    ,
+    identical(as(1L, "numeric"), 1.0)
+    ,
+    is.double(as(1L, "double"))
+    )
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/refClassExample.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/refClassExample.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/refClassExample.R	(revision 2476)
@@ -0,0 +1,51 @@
+mEditor <- setRefClass("matrixEditor",
+      fields = list( data = "matrix",
+        edits = "list"),
+      methods = list(
+     edit = function(i, j, value) {
+       ## the following string documents the edit method
+       'Replaces the range [i, j] of the
+        object by value.
+        '
+         backup <-
+             list(i, j, data[i,j])
+         data[i,j] <<- value
+         edits <<- c(edits, list(backup))
+         invisible(value)
+     },
+     undo = function() {
+       'Undoes the last edit() operation
+        and update the edits field accordingly.
+        '
+         prev <- edits
+         if(length(prev)) prev <- prev[[length(prev)]]
+         else stop("No more edits to undo")
+         edit(prev[[1]], prev[[2]], prev[[3]])
+         ## trim the edits list
+         length(edits) <<- length(edits) - 2
+         invisible(prev)
+     }
+     ))
+
+xMat <- xEdited <- matrix(as.double(1:12),4,3)
+xEdited[[2,2]] <- 0
+xx <- mEditor$new(data = xMat)
+xx$edit(2, 2, 0)
+stopifnot(identical(xx$data, xEdited))
+xEdited[[1,3]] <- -1
+xx$edit(1,3, -1)
+stopifnot(identical(xx$data, xEdited))
+xx$undo()
+xEdited[[1,3]] <- xMat[[1,3]]
+stopifnot(identical(xx$data, xEdited))
+xx$undo()
+stopifnot(identical(xx$data, xMat))
+
+## the tracing method
+xx$trace(edit, quote(value <- 0))
+xx$edit(2,2, -1) # traced should assign 0
+stopifnot(identical(xx$data, xEdited))
+xx$untrace(edit)
+xx$edit(1, 3, -1) # now it should use -1
+xEdited[[1,3]] <- -1
+stopifnot(identical(xx$data, xEdited))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/fieldAssignments.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/fieldAssignments.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/fieldAssignments.R	(revision 2476)
@@ -0,0 +1,30 @@
+dt <- setRefClass("dt", fields = list(data = "environment", row.names = "character"))
+
+ev <- new.env()
+
+d1 <- dt$new(data = ev, row.names = letters)
+
+stopifnot(identical(d1$data, ev),
+          identical(d1$row.names, letters))
+
+# an invalid class should generate an error
+d2 <- tryCatch(dt$new(data = ev, row.names = 1:12), error = function(e)e)
+
+stopifnot(is(d2, "error"),
+          grepl("row.names", d2$message, fixed = TRUE),
+          grepl("character", d2$message, fixed = TRUE),
+          grepl("integer", d2$message, fixed = TRUE))
+
+# a simple subclass should be used, unchanged
+
+setClass("tagStrings", contains = "character",
+         representation(tag = "Date"))
+
+date1 <- as.Date("2010-01-15")
+
+t1 <- new("tagStrings", letters, tag = date1)
+
+d3 <- dt$new(data = ev, row.names = t1)
+
+stopifnot(identical(d3$row.names, t1))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/testConditionalIs.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/testConditionalIs.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/methods/tests/testConditionalIs.R	(revision 2476)
@@ -0,0 +1,38 @@
+setClass("maybe")
+
+setClass("A", representation(x = "numeric"))
+
+setIs("A", "maybe",
+      test = function(object)length(object@x) >= 1 && object@x[[1]] > 0,
+      coerce = function(from)from,
+      replace = function(from, value)
+      stop("meaningless to replace the \"maybe\" part of an object"))
+
+aa <- new("A", x=1)
+
+setGeneric("ff", function(x)"default ff")
+## test that the setGeneric() call created the generic & default
+stopifnot(is(ff, "standardGeneric"),
+          identical(body(getMethod("ff","ANY")), "default ff"))
+
+ffMaybe <- function(x) "ff maybe method"
+setMethod("ff", "maybe", ffMaybe)
+
+aa2 <- new("A", x = -1) # condition not TRUE
+stopifnot(identical(ff(aa),  "default ff"),
+	  identical(ff(aa2), "default ff"))# failed in R 2.11.0
+
+## a method to test the condition
+setMethod("ff", "A",
+	  function(x) {
+	      if(is(x, "maybe"))
+		  ffMaybe(x)
+	      else
+		  callNextMethod()
+	  })
+stopifnot(identical(ff(aa), "ff maybe method"),
+          identical(ff(aa2), "default ff"))
+
+removeClass("A")
+removeClass("maybe")
+removeGeneric("ff")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/po/fr/LC_MESSAGES/R-MASS.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/po/fr/LC_MESSAGES/R-MASS.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/po/de/LC_MESSAGES/R-MASS.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/po/de/LC_MESSAGES/R-MASS.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/po/ko/LC_MESSAGES/R-MASS.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/po/ko/LC_MESSAGES/R-MASS.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/po/en@quot/LC_MESSAGES/R-MASS.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/po/en@quot/LC_MESSAGES/R-MASS.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/po/pl/LC_MESSAGES/R-MASS.mo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/po/pl/LC_MESSAGES/R-MASS.mo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/regression.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/regression.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/regression.Rout.save	(revision 2476)
@@ -0,0 +1,45 @@
+
+R version 2.10.0 Under development (unstable) (2009-07-31 r49037)
+Copyright (C) 2009 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+
+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.
+
+  Natural language support but running in an English locale
+
+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.
+
+> ### regression tests
+> 
+> library(MASS)
+> 
+> contr.sdif(6)
+         2-1        3-2  4-3        5-4        6-5
+1 -0.8333333 -0.6666667 -0.5 -0.3333333 -0.1666667
+2  0.1666667 -0.6666667 -0.5 -0.3333333 -0.1666667
+3  0.1666667  0.3333333 -0.5 -0.3333333 -0.1666667
+4  0.1666667  0.3333333  0.5 -0.3333333 -0.1666667
+5  0.1666667  0.3333333  0.5  0.6666667 -0.1666667
+6  0.1666667  0.3333333  0.5  0.6666667  0.8333333
+> contr.sdif(6, sparse=TRUE)
+         2-1        3-2  4-3        5-4        6-5
+1 -0.8333333 -0.6666667 -0.5 -0.3333333 -0.1666667
+2  0.1666667 -0.6666667 -0.5 -0.3333333 -0.1666667
+3  0.1666667  0.3333333 -0.5 -0.3333333 -0.1666667
+4  0.1666667  0.3333333  0.5 -0.3333333 -0.1666667
+5  0.1666667  0.3333333  0.5  0.6666667 -0.1666667
+6  0.1666667  0.3333333  0.5  0.6666667  0.8333333
+> stopifnot(all(contr.sdif(6) == contr.sdif(6, sparse=TRUE)))
+> 
+> 
+> proc.time()
+   user  system elapsed 
+  2.298   0.078   2.377 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/BankWages.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/BankWages.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/scripts.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/scripts.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/scripts.R	(revision 2476)
@@ -0,0 +1,36 @@
+if(!nzchar(Sys.getenv("MASS_TESTING"))) q("no")
+unlink("scripts", recursive = TRUE)
+dir.create("scripts")
+Sys.unsetenv("R_TESTS") # avoid startup using startup.Rs (which is in the dir above)
+setwd("scripts")
+writeLines(c(".Random.seed <- c(0L,1:3)",
+              "options(width = 65, show.signif.stars=FALSE)"),
+           ".Rprofile")
+
+runone <- function(f)
+{
+    message("  Running ", sQuote(basename(f)))
+    outfile <- paste(basename(f), "out", sep = "")
+    failfile <- paste(outfile, "fail", sep=".")
+    unlink(c(outfile, failfile))
+    res <- system2(file.path(R.home("bin"), "R"),
+                   c("CMD BATCH --vanilla", shQuote(f), shQuote(outfile)),
+                   env = paste("R_LIBS", Sys.getenv("R_LIBS"), sep = "="))
+    if (res) {
+        cat(tail(readLines(outfile), 20), sep="\n")
+        file.rename(outfile, failfile)
+        return(1L)
+    }
+    0L
+}
+
+
+library(MASS)
+dd <- system.file("scripts", package="MASS")
+files <- list.files(dd, pattern="\\.R$", full.names=TRUE)
+res <- 0L
+for(f in files) res <- res + runone(f)
+
+proc.time()
+
+if(res) stop(gettextf("%d scripts failed", res))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/fitdistr.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/fitdistr.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/fitdistr.R	(revision 2476)
@@ -0,0 +1,30 @@
+## a quick check on vcov for fitdistr (from 7.3-6/7)
+
+library(MASS)
+
+options(digits=4)
+set.seed(1)
+x <- rnorm(100)
+fit <- fitdistr(x, "normal")
+fit
+vcov(fit)
+
+x <- rlnorm(100)
+fit <- fitdistr(x, "lognormal")
+fit
+vcov(fit)
+
+x <- rpois(100, 4.5)
+fit <- fitdistr(x, "poisson")
+fit
+vcov(fit)
+
+x <- rexp(100, 13)
+fit <- fitdistr(x, "exponential")
+fit
+vcov(fit)
+
+x <- rgeom(100, 0.25)
+fit <- fitdistr(x, "geometric")
+fit
+vcov(fit)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/hubers.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/hubers.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/hubers.R	(revision 2476)
@@ -0,0 +1,5 @@
+library(MASS)
+x <- c(rep(1.407,3), rep(1.422,4), 1.597, 1.597, rep(1.64,19), 1.649,
+       1.664, 1.664, 1.67, 1.672, 1.672, 1.787, 4.42, 4.44, rep(6.55,3),
+       rep(6.79,14), rep(7.19,,73), 9.00, 9.38, rep(9.41,10))
+hubers(x) # failed to converge in MASS 7.3-9.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/rlm.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/rlm.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/rlm.R	(revision 2476)
@@ -0,0 +1,97 @@
+library(MASS)
+
+## Based on incorrect 'bug' report
+
+hills$ispeed <- hills$time/hills$dist
+hills$grad <- hills$climb/hills$dist
+
+## weighted fit
+fit0 <- rlm(time ~ dist + climb - 1, data = hills,
+            weights = 1/dist^2, method="MM")
+summary(fit0, cor=FALSE)
+## equivalent to
+fit1 <- rlm(ispeed ~ grad, data = hills, method="MM")
+summary(fit1, cor=FALSE)
+
+cf0 <- coef(summary(fit0))
+cf1 <- coef(summary(fit1))
+rownames(cf1) <- rownames(cf0)
+stopifnot(all.equal(cf0, cf1))
+stopifnot(all.equal(weighted.residuals(fit0), residuals(fit1)))
+
+# test other cases
+fit0 <- rlm(time ~ dist + climb - 1, data = hills, weights = 1/dist^2)
+summary(fit0, cor=FALSE)
+## equivalent to
+fit1 <- rlm(ispeed ~ grad, data = hills)
+summary(fit1, cor=FALSE)
+
+cf0 <- coef(summary(fit0))
+cf1 <- coef(summary(fit1))
+rownames(cf1) <- rownames(cf0)
+stopifnot(all.equal(cf0, cf1))
+stopifnot(all.equal(weighted.residuals(fit0), residuals(fit1)))
+
+fit0 <- rlm(time ~ dist + climb - 1, data = hills, weights = 1/dist^2,
+            scale.est = "Huber")
+summary(fit0, cor=FALSE)
+## equivalent to
+fit1 <- rlm(ispeed ~ grad, data = hills, scale.est = "Huber")
+summary(fit1, cor=FALSE)
+
+cf0 <- coef(summary(fit0))
+cf1 <- coef(summary(fit1))
+rownames(cf1) <- rownames(cf0)
+stopifnot(all.equal(cf0, cf1))
+stopifnot(all.equal(weighted.residuals(fit0), residuals(fit1)))
+
+
+## cf lm fits
+
+fit2 <- lm(time ~ dist + climb - 1, data = hills, weights = 1/dist^2)
+fit3 <- lm(ispeed ~ grad, data = hills)
+stopifnot(all.equal(weighted.residuals(fit2), residuals(fit3)))
+
+
+## case weights: can't do MM as no weighted lqs.
+wts <- rep(1, 35)
+wts[c(1,11,21)] <- 10
+h2 <- hills[rep(1:35, times=wts), ]
+fit4 <- lm(ispeed ~ grad, data = hills, weights = wts)
+fit5 <- lm(ispeed ~ grad, data = h2)
+## same coefs, different se's.
+fit6 <- rlm(ispeed ~ grad, data = h2, acc=1e-10)
+fit7 <- rlm(ispeed ~ grad, data = hills,
+            weights = wts, wt.method="case", acc=1e-10)
+summary(fit6)
+summary(fit7)
+stopifnot(all.equal(coef(summary(fit6)), coef(summary(fit7))))
+summary(fit6, "XtWX")
+summary(fit7, "XtWX")
+stopifnot(all.equal(coef(summary(fit6, "XtWX")), coef(summary(fit7, "XtWX"))))
+
+fit8 <- rlm(ispeed ~ grad, data = h2, scale.est = "Huber", acc=1e-10)
+fit9 <- rlm(ispeed ~ grad, data = hills, scale.est = "Huber",
+            weights = wts, wt.method="case", acc=1e-10)
+summary(fit8)
+summary(fit9)
+stopifnot(all.equal(coef(summary(fit8)), coef(summary(fit9))))
+summary(fit8, "XtWX")
+summary(fit9, "XtWX")
+stopifnot(all.equal(coef(summary(fit8, "XtWX")), coef(summary(fit9, "XtWX"))))
+
+
+## w was a matrix under some initializations
+x <- matrix(1:200, 100,2)
+B <- c(2.5, -1.3)
+y <- x %*% B + rnorm(100)
+r1 <- rlm(x, y, init=B, psi=psi.huber)
+r2 <- rlm(x, y, init=B, psi=psi.bisquare)
+r3 <- rlm(x, y, init=B, psi=psi.hampel)   # failed
+r4 <- rlm(x, y, psi=psi.hampel)
+
+## lqs with intercept lost contrasts
+dat <- data.frame(trt = factor(rep(LETTERS[1:2], each=3)),resp = rt(6, df=3))
+fit <- lqs(resp ~ trt, data = dat, contrasts = list(trt = "contr.sum"))
+stopifnot(identical(predict(fit), predict(fit, newdata = dat)))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/polr.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/polr.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/polr.R	(revision 2476)
@@ -0,0 +1,48 @@
+## tests from David Firth 2004-Oct-13
+
+library(MASS)
+y <- structure(as.integer(c(1, 2, 3, 1, 2, 3)), .Label = c("1", "2", "3"),
+               class = c("ordered", "factor"))
+Freq <- c(10, 0, 10, 10, 0, 10)
+group <- structure(as.integer(c(1, 1, 1, 2, 2, 2)), .Label = c("1", "2"),
+                   class = "factor")
+
+temp <- polr(y ~ group, weights = Freq)
+temp$convergence
+temp
+
+stopifnot(all(abs(coef(temp)) < 1e-4))
+
+Freq <- c(1000000, 1, 1000000, 1000000, 1, 1000000)
+temp2 <- polr(y ~ group, weights = Freq)
+temp2
+
+stopifnot(all(abs(coef(temp2)) < 1e-4))
+
+## tests of rank-deficient model matrix
+
+group <- factor(c(1, 1, 1, 2, 2, 2), levels=1:3)
+polr(y ~ group, weights = Freq)
+group <- factor(c(1, 1, 1, 3, 3, 3), levels=1:3)
+polr(y ~ group, weights = Freq)
+
+## profile on a single-coef model
+## data from McCullagh JRSSB 1980
+tonsils <- data.frame(carrier = factor(rep(c('yes', 'no'), each=3)),
+                      size = ordered(rep(c(1,2,3),2)),
+                      count = c(19,29,24,497,560,269))
+m <- polr(size ~ carrier, data = tonsils, weights = count)
+confint(m)
+
+
+## refitting needs transformed starting values (Achim Zeileis Mar 2010)
+load("BankWages.rda") # from AER
+bw <- polr(job ~ education, data = BankWages)
+summary(bw)
+## failed due to incorrect restarting values
+
+## missing drop = FALSE in profiling (Joris Meys, Sep 2012)
+house.plr <- polr(Sat ~ Cont, weights = Freq, data = housing)
+pr <- profile(house.plr)
+plot(pr)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/fitdistr.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/fitdistr.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/fitdistr.Rout.save	(revision 2476)
@@ -0,0 +1,76 @@
+
+R version 2.12.0 Under development (unstable) (2010-05-21 r52065)
+Copyright (C) 2010 The R Foundation for Statistical Computing
+ISBN 3-900051-07-0
+Platform: x86_64-unknown-linux-gnu (64-bit)
+
+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.
+
+> ## a quick check on vcov for fitdistr (from 7.3-6/7)
+> 
+> library(MASS)
+> 
+> options(digits=4)
+> set.seed(1)
+> x <- rnorm(100)
+> fit <- fitdistr(x, "normal")
+> fit
+    mean       sd   
+  0.10889   0.89370 
+ (0.08937) (0.06319)
+> vcov(fit)
+         mean       sd
+mean 0.007987 0.000000
+sd   0.000000 0.003993
+> 
+> x <- rlnorm(100)
+> fit <- fitdistr(x, "lognormal")
+> fit
+   meanlog     sdlog  
+  -0.03781    0.95308 
+ ( 0.09531) ( 0.06739)
+> vcov(fit)
+         meanlog    sdlog
+meanlog 0.009084 0.000000
+sdlog   0.000000 0.004542
+> 
+> x <- rpois(100, 4.5)
+> fit <- fitdistr(x, "poisson")
+> fit
+   lambda 
+  4.5400  
+ (0.2131) 
+> vcov(fit)
+       lambda
+lambda 0.0454
+> 
+> x <- rexp(100, 13)
+> fit <- fitdistr(x, "exponential")
+> fit
+    rate 
+  15.224 
+ ( 1.522)
+> vcov(fit)
+      rate
+rate 2.318
+> 
+> x <- rgeom(100, 0.25)
+> fit <- fitdistr(x, "geometric")
+> fit
+    prob  
+  0.22831 
+ (0.02006)
+> vcov(fit)
+          prob
+prob 0.0004022
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/glm.nb.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/glm.nb.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/glm.nb.R	(revision 2476)
@@ -0,0 +1,49 @@
+## glm.nb with weights
+library(MASS)
+yeast <- data.frame(cbind(numbers = 0:5, fr = c(213, 128, 37, 18, 3, 1)))
+
+attach(yeast)
+n <- rep(numbers, fr)
+
+## fitting using glm.nb with weights - wrong results in 7.2-18
+yeast2.fit <- glm.nb(numbers~1, link = log, weights=fr)
+summary(yeast2.fit)
+
+## fitting extending the vector and using glm.nb - correct result ##
+yeast3.fit<-glm.nb(n~1, link = log)
+summary(yeast3.fit)
+
+stopifnot(all.equal(deviance(yeast2.fit), deviance(yeast3.fit)))
+stopifnot(all.equal(yeast2.fit$theta, yeast3.fit$theta))
+
+detach(yeast)
+
+# another one, corrected in 7.2-43
+set.seed(13245)
+x <- c(-5:5)
+mu <- exp(1 + 0.1*x)
+y <- rnegbin(length(mu), mu = mu, theta = 1.5)
+dat <- data.frame(x, y)
+dat2 <- dat[rep(1:11, each=2), ]
+w <- round(runif(11),2)
+dat2$w <- as.vector(rbind(w, 1-w))
+fm2 <- glm.nb(y ~ x, dat)
+gm2 <- glm.nb(y ~ x, dat2, weights = w)
+summary(fm2)
+summary(gm2) # failed before
+stopifnot(all.equal(fm2$theta, gm2$theta)) # differed
+stopifnot(all.equal(deviance(fm2), deviance(gm2)))
+fm3 <- glm(y ~ x, negative.binomial(theta = fm2$theta), dat)
+gm3 <- glm(y ~ x, negative.binomial(theta = fm2$theta), dat2, weights =w)
+summary(fm3)
+summary(gm3)
+stopifnot(all.equal(deviance(fm3), deviance(gm3)))
+
+fit <- glm.nb(Days ~ Sex/(Age + Eth*Lrn), data = quine)
+set.seed(1)
+simulate(fit, nsim=5)[1:10, ]
+if(getRversion() >= "2.9.0") {
+    fit2 <- glm.convert(fit)
+    set.seed(1)
+    print(simulate(fit2, nsim=5)[1:10, ])
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/lme.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/lme.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/lme.R	(revision 2476)
@@ -0,0 +1,16 @@
+## stepAIC on an lme object: an example from Robert Cuffe
+library(nlme)
+library(MASS)
+set.seed(321) # to be sure
+a <- data.frame( resp=rnorm(250), cov1=rnorm(250),
+                 cov2=rnorm(250), group=rep(letters[1:10],25) )
+mod1 <- lme(resp~cov1, a, ~cov1|group, method="ML")
+mod2 <- stepAIC(mod1, scope=list(upper=~(cov1+cov2)^2, lower=~1) )
+
+beav <- beav2
+set.seed(123)
+beav$dummy <- rnorm(nrow(beav))
+beav.gls <- gls(temp ~ activ + dummy, data = beav,
+                 corr = corAR1(0.8), method = "ML")
+stepAIC(beav.gls)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/confint.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/confint.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/confint.R	(revision 2476)
@@ -0,0 +1,26 @@
+library(MASS)
+
+PropCI <- function(x, n, conf = 0.95)
+{
+    DF <- data.frame(y = x / n, weights = n)
+    mod <- glm(y ~ 1, weights = weights, family = binomial(), data = DF)
+    plogis(confint(mod, level = conf))
+}
+
+PropCI(14, 35)
+## had scope error prior to 7.2-31
+
+## single variable cases:
+n.tot <- c(60,17,8,2,187,85,51,23)
+n.hyp <- c(5,2,1,0,35,13,15,8)
+hyp.tbl <- cbind(n.hyp, n.tot-n.hyp)
+glm.hyp <- glm(hyp.tbl ~ 1, binomial)
+plot(profile(glm.hyp))
+x <- cbind(2,20)
+plot(profile(glm(x~1,binomial)))
+# failed in 7.2-39
+
+dat <- data.frame(event = c(2,4,5), nonev = c(4,2,7))
+m <- glm(cbind(event, nonev) ~ 1, data=dat, family=binomial)
+confint(m)
+# failed in 7.2-40
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/profile.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/profile.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/profile.R	(revision 2476)
@@ -0,0 +1,10 @@
+### Example from Merete Kjær Hansen 2011-07-06
+library(MASS)
+dat <- data.frame(y = c(35, 21, 9, 6, 1),
+                  dose = c(0.0028, 0.0056, 0.0112, 0.0225, 0.045),
+                  n = c(40, 40, 40, 40, 40), w = 1:5)
+### fit model with two-column response and weights
+fm <- glm(cbind(y, n-y) ~ dose, weights=w, family=binomial, data=dat)
+### Investigating the profile likelihoods of the parameters with profile.glm
+profile(fm)
+## failed in MASS 7.3-13
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/regression.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/regression.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/tests/regression.R	(revision 2476)
@@ -0,0 +1,8 @@
+### regression tests
+
+library(MASS)
+
+contr.sdif(6)
+contr.sdif(6, sparse=TRUE)
+stopifnot(all(contr.sdif(6) == contr.sdif(6, sparse=TRUE)))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/DESCRIPTION	(revision 2476)
@@ -0,0 +1,36 @@
+Package: MASS
+Priority: recommended
+Version: 7.3-45
+Date: 2015-11-10
+Revision: $Rev: 3453 $
+Depends: R (>= 3.1.0), grDevices, graphics, stats, utils
+Imports: methods
+Suggests: lattice, nlme, nnet, survival
+Authors@R: c(person("Brian", "Ripley", role = c("aut", "cre", "cph"),
+                    email = "ripley@stats.ox.ac.uk"),
+	     person("Bill", "Venables", role = "ctb"),
+	     person(c("Douglas", "M."), "Bates", role = "ctb"),
+	     person("Kurt", "Hornik", role = "trl",
+                     comment = "partial port ca 1998"),
+	     person("Albrecht", "Gebhardt", role = "trl",
+                     comment = "partial port ca 1998"),
+	     person("David", "Firth", role = "ctb"))
+Description: Functions and datasets to support Venables and Ripley,
+  "Modern Applied Statistics with S" (4th edition, 2002).
+Title: Support Functions and Datasets for Venables and Ripley's MASS
+LazyData: yes
+ByteCompile: yes
+License: GPL-2 | GPL-3
+URL: http://www.stats.ox.ac.uk/pub/MASS4/
+NeedsCompilation: yes
+Packaged: 2016-04-21 09:06:13 UTC; ripley
+Author: Brian Ripley [aut, cre, cph],
+  Bill Venables [ctb],
+  Douglas M. Bates [ctb],
+  Kurt Hornik [trl] (partial port ca 1998),
+  Albrecht Gebhardt [trl] (partial port ca 1998),
+  David Firth [ctb]
+Maintainer: Brian Ripley <ripley@stats.ox.ac.uk>
+Repository: CRAN
+Date/Publication: 2016-04-21 11:13:45
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:33:57 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/INDEX	(revision 2476)
@@ -0,0 +1,175 @@
+Functions:
+=========
+
+Null                    Null Spaces of Matrices
+addterm                 Try All One-Term Additions to a Model
+anova.negbin            Likelihood Ratio Tests for Negative Binomial GLMs
+area                    Adaptive Numerical Integration
+bandwidth.nrd           Bandwidth for density() via Normal Reference
+                          Distribution
+bcv                     Biased Cross-Validation for Bandwidth Selection
+boxcox                  Box-Cox Transformations for Linear Models
+con2tr                  Convert Lists to Data Frames for use by lattice
+confint-MASS            Confidence Intervals for Model Parameters
+contr.sdif              Successive Differences Contrast Coding
+corresp                 Simple Correspondence Analysis
+cov.rob                 Resistant Estimation of Multivariate Location and
+                          Scatter
+cov.trob                Covariance Estimation for Multivariate t Distribution
+denumerate              Transform an Allowable Formula for 'loglm'
+                          into one for 'terms'
+dose.p                  Predict Doses for Binomial Assay model
+dropterm                Try All One-Term Deletions from a Model
+eqscplot                Plots with Geometrically Equal Scales
+fitdistr                Maximum-likelihood Fitting of Univariate Distributions
+fractions               Rational Approximation
+gamma.dispersion        Calculate the MLE of the Gamma Dispersion Parameter
+			  in a GLM Fit
+gamma.shape             Estimate the Shape Parameter of the Gamma Distribution 
+			  in a GLM Fit
+ginv                    Generalized Inverse of a Matrix
+glm.convert             Change a Negative Binomial fit to a GLM fit
+glm.nb                  Fit a Negative Binomial Generalized Linear Model
+glmmPQL                 Fit Generalized Linear Mixed Models via PQL
+hist.scott              Plot a Histogram with Automatic Bin Width Selection
+huber                   Huber M-estimator of Location with MAD Scale
+hubers                  Huber Proposal 2 Robust Estimator of Location
+                          and/or Scale
+isoMDS                  Kruskal's Non-metric Multidimensional Scaling
+kde2d                   Two-Dimensional Kernel Density Estimation
+lda                     Linear Discriminant Analysis
+ldahist                 Histograms or Density Plots of Multiple Groups
+lm.gls                  Fit Linear Models by Generalized Least Squares
+lm.ridge                Ridge Regression
+loglm                   Fit Log-Linear Models by Iterative
+                        Proportional Scaling
+logtrans                Estimate log Transformation Parameter
+lqs			Resistant Regression
+mca                     Multiple Correspondence Analysis
+mvrnorm                 Simulate from a Multivariate Normal Distribution
+negative.binomial       Family function for Negative Binomial GLMs
+newcomb                 Newcomb's Measurements of the Passage Time of Light
+pairs.lda               Produce Pairwise Scatterplots from an 'lda' Fit
+parcoord                Parallel Coordinates Plot
+plot.lda                Plot Method for Class 'lda'
+plot.mca                Plot Method for Objects of Class 'mca'
+polr                    Proportional Odds Logistic Regression
+predict.lda             Classify Multivariate Observations by Linear
+                          Discrimination
+predict.lqs             Predict from an lqs Fit
+predict.mca             Predict Method for Class 'mca'
+predict.qda             Classify from Quadratic Discriminant Analysis
+profile.glm             Method for Profiling glm Objects
+qda                     Quadratic Discriminant Analysis
+rational                Rational Approximation
+renumerate              Convert a Formula Transformed by 'denumerate'
+rlm                     Robust Fitting of Linear Models
+rms.curv                Relative Curvature Measures for Non-Linear Regression
+rnegbin                 Simulate Negative Binomial Variates
+sammon                  Sammon's Non-Linear Mapping
+stdres                  Extract Standardized Residuals from a Linear Model
+stepAIC                 Choose a model by AIC in a Stepwise Algorithm
+studres                 Extract Studentized Residuals from a Linear Model
+summary.loglm           Summary Method Function for Objects of Class 'loglm'
+summary.negbin          Summary Method Function for Objects of Class 'negbin'
+summary.rlm             Summary Method for Robust Linear Models
+theta.md                Estimate theta of the Negative Binomial by Deviance
+theta.ml                Estimate theta of the Negative Binomial by Maximum
+			  Likelihood
+theta.mm                Estimate theta of the Negative Binomial by Moments
+truehist                Plot a Histogram
+ucv                     Unbiased Cross-Validation for Bandwidth Selection
+width.SJ                Bandwidth Selection by Pilot Estimation of Derivatives
+write.matrix            Write a Matrix or Data Frame
+
+
+Datasets:
+========
+
+Aids2                   Australian AIDS Survival Data
+Animals                 Brain and Body Weights for 28 Species
+Boston                  Housing Values in Suburbs of Boston
+Cars93                  Data from 93 Cars on Sale in the USA in 1993
+Cushings                Diagnostic Tests on Patients with Cushing's Syndrome
+DDT                     DDT in Kale
+GAGurine                Level of GAG in Urine of Children
+Insurance               Numbers of Car Insurance claims
+Melanoma                Survival from Malignant Melanoma
+OME                     Tests of Auditory Perception in Children with OME
+Pima.tr                 Diabetes in Pima Indian Women
+Rabbit                  Blood Pressure in Rabbits
+Rubber                  Accelerated Testing of Tyre Rubber
+SP500                   Returns of the Standard and Poors 500
+Sitka                   Growth Curves for Sitka Spruce Trees in 1988
+Sitka89                 Growth Curves for Sitka Spruce Trees in 1989
+Skye                    AFM Compositions of Aphyric Skye Lavas
+Traffic                 Effect of Swedish Speed Limits on Accidents
+UScereal                Nutritional and Marketing Information on US Cereals
+UScrime                 The Effect of Punishment Regimes on Crime Rates
+VA                      Veteran's Administration Lung Cancer Trial
+abbey                   Determinations of Nickel Content
+accdeaths               Accidental Deaths in the US 1973-1978
+anorexia                Anorexia Data on Weight Change
+bacteria                Presence of Bacteria after Drug Treatments
+beav1                   Body Temperature Series of Beaver 1
+beav2                   Body Temperature Series of Beaver 2
+biopsy                  Biopsy Data on Breast Cancer Patients
+birthwt                 Risk Factors Associated with Low Infant Birth Weight
+cabbages                Data from a cabbage field trial
+caith                   Colours of Eyes and Hair of People in Caithness
+cats                    Anatomical Data from Domestic Cats
+cement                  Heat Evolved by Setting Cements
+chem                    Copper in Wholemeal Flour
+coop                    Co-operative Trial in Analytical Chemistry
+cpus                    Performance of Computer CPUs
+crabs                   Morphological Measurements on Leptograpsus Crabs
+deaths                  Monthly Deaths from Lung Diseases in the UK
+drivers                 Deaths of Car Drivers in Great Britain 1969-84
+eagles                  Foraging Ecology of Bald Eagles
+epil                    Seizure Counts for Epileptics
+farms                   Ecological Factors in Farm Management
+fgl                     Measurements of Forensic Glass Fragments
+forbes                  Forbes' Data on Boiling Points in the Alps
+galaxies                Velocities for 82 Galaxies
+gehan                   Remission Times of Leukaemia Patients
+genotype                Rat Genotype Data
+geyser                  Old Faithful Geyser Data
+gilgais                 Line Transect of Soil in Gilgai Territory
+hills                   Record Times in Scottish Hill Races
+housing                 Frequency Table from a Copenhagen Housing Conditions 
+			  Survey
+immer                   Yields from a Barley Field Trial
+leuk                    Survival Times and White Blood Counts for
+                          Leukaemia Patients
+mammals                 Brain and Body Weights for 62 Species of Land Mammals
+mcycle                  Data from a Simulated Motorcycle Accident
+menarche                Age of Menarche in Warsaw
+michelson               Michelson's Speed of Light Data
+minn38                  Minnesota High School Graduates of 1938
+motors                  Accelerated Life Testing of Motorettes
+muscle                  Effect of Calcium Chloride on Muscle Contraction
+			  in Rat Hearts
+newcomb                 Newcomb's Measurements of the Passage Time of Light
+nlschools               Eighth-Grade Pupils in the Netherlands
+npk                     Classical N, P, K Factorial Experiment
+npr1                    US Naval Petroleum Reserve No. 1 data
+oats                    Data from an Oats Field Trial
+painters                The Painter's Data of de Piles
+petrol                  N. L. Prater's Petrol Refinery Data
+phones                  Belgium Phone Calls 1950-1973
+quine                   Absenteeism from School in Rural New South Wales
+road                    Road Accident Deaths in US States
+rotifer                 Numbers of Rotifers by Fluid Density
+ships                   Ships Damage Data
+shoes                   Shoe wear data of Box, Hunter and Hunter
+shrimp                  Percentage of Shrimp in Shrimp Cocktail
+shuttle                 Space Shuttle Autolander Problem
+snails                  Snail Mortality Data
+steam                   The Saturated Steam Pressure Data
+stormer                 The Stormer Viscometer Data
+survey                  Student Survey Data
+synth.tr                Synthetic Classification Problem
+topo                    Spatial Topographic Data
+waders                  Counts of Waders at 15 Sites in South Africa
+whiteside               House Insulation: Whiteside's Data
+wtloss                  Weight Loss Data from an Obese Patient
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/data/Rdata.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/data/Rdata.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/data/Rdata.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/data/Rdata.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/data/Rdata.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/data/Rdata.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/libs/MASS.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/libs/MASS.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/CITATION	(revision 2476)
@@ -0,0 +1,18 @@
+citHeader("To cite the MASS package in publications use:")
+
+citEntry(entry="Book",
+         title = "Modern Applied Statistics with S",
+         author = personList(as.person("W. N. Venables"), 
+                             as.person("B. D. Ripley")),
+	 publisher = "Springer",
+         edition = "Fourth",
+         address      = "New York",
+         year         = 2002,
+         note         = "ISBN 0-387-95457-0",
+         url          = "http://www.stats.ox.ac.uk/pub/MASS4",
+         
+         textVersion = 
+         paste("Venables, W. N. & Ripley, B. D. (2002)", 
+               "Modern Applied Statistics with S.",
+               "Fourth Edition. Springer, New York. ISBN 0-387-95457-0")
+)
\ No newline at end of file
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/NAMESPACE	(revision 2476)
@@ -0,0 +1,192 @@
+useDynLib(MASS, .registration = TRUE)
+
+# functions
+export(addterm, area, as.fractions, bandwidth.nrd, bcv, boxcox,
+       con2tr, contr.sdif, corresp, cov.trob, denumerate, dose.p,
+       dropterm, enlist, eqscplot, fbeta, fitdistr, fractions,
+       frequency.polygon, gamma.dispersion, gamma.shape, ginv,
+       glm.convert, glm.nb, glmmPQL, hist.FD, hist.scott, huber,
+       hubers, is.fractions, isoMDS, kde2d, lda, ldahist, lm.gls,
+       lm.ridge, lmwork, loglm, loglm1, logtrans, mca, mvrnorm,
+       nclass.freq, neg.bin, negative.binomial, negexp.SSival, Null,
+       parcoord, polr, psi.bisquare, psi.hampel, psi.huber, qda,
+       rational, renumerate, rlm, rms.curv, rnegbin, sammon, select,
+       Shepard, stdres, stepAIC, studres, theta.md, theta.ml,
+       theta.mm, truehist, ucv, width.SJ, write.matrix)
+
+# formerly in package lqs
+export(cov.mcd, cov.mve, cov.rob, lmsreg, lqs, lqs.formula, ltsreg)
+
+# formerly needed for Recall
+# export(denumerate.formula, renumerate.formula)
+
+# documented, registered but unexported methods
+# export(addterm.default, addterm.glm, addterm.lm,
+#        anova.loglm, anova.negbin,
+#        boxcox.default, boxcox.formula, boxcox.lm,
+#        confint.glm, confint.nls,
+#        dropterm.default, dropterm.glm, dropterm.lm,
+#        gamma.shape.glm,
+#        loglm1.data.frame, loglm1.default, loglm1.xtabs,
+#        logtrans.default, logtrans.formula, logtrans.lm,
+#        pairs.lda, pairs.profile, plot.lda, plot.mca,
+#        plot.profile, plot.ridgelm, predict.lda, predict.mca,
+#        predict.qda, print.abbrev, print.Anova,
+#        profile.glm, select.ridgelm,
+#        summary.loglm, summary.negbin, summary.rlm)
+
+importFrom(grDevices, dev.flush, dev.hold, nclass.FD, nclass.scott, palette)
+importFrom(graphics, abline, axis, box, frame, hist, lines, matplot, mtext,
+           pairs, par, plot, points, rect, segments, symbols, text)
+#import(stats) # triggers bug in wmtsa
+importFrom(stats, add1, anova, biplot, coef, confint, drop1,
+	   extractAIC, family, fitted, logLik, model.frame, nobs,
+	   predict, profile, residuals, se.contrast, simulate, terms,
+	   update, vcov,
+           ## added in 7.3-42
+           .checkMFClasses, .getXlevels, IQR, add.scope, aov, approx,
+           as.formula, binomial, cmdscale, contr.helmert, dbeta, dcauchy,
+           dchisq, delete.response, density, deviance, dexp, df,
+           dgamma, dgeom, dist, dlnorm, dlogis, dnbinom, dnorm, dpois,
+           drop.scope, dt, dweibull, factor.scope, formula, glm,
+           glm.control, glm.fit, is.empty.model, lm, lm.fit,
+           lm.influence, lm.wfit, loglin, lsfit, mad, mahalanobis,
+           make.link, median, model.extract, model.matrix,
+           model.offset, model.response, model.weights, na.pass,
+           napredict, naprint, naresid, optim, optimize, pcauchy,
+           pchisq, pf, plogis, pnorm, qchisq, qf, qnorm, qt, quantile,
+           rcauchy, rexp, rgamma, rlogis, rnorm, rpois, runif, sd,
+           spline, summary.glm, uniroot, update.formula, var)
+
+S3method("[", fractions)
+S3method("[<-", fractions)
+S3method(addterm, default)
+S3method(addterm, glm)
+S3method(addterm, lm)
+S3method(addterm, mlm)
+S3method(addterm, negbin)
+S3method(addterm, survreg)
+S3method(anova, glmmPQL)
+S3method(anova, loglm)
+S3method(anova, negbin)
+S3method(anova, polr)
+S3method(as.character, fractions)
+S3method(biplot, correspondence)
+S3method(boxcox, default)
+S3method(boxcox, formula)
+S3method(boxcox, lm)
+S3method(coef, fitdistr)
+S3method(coef, lda)
+S3method(coef, loglm)
+S3method(coef, ridgelm)
+S3method(confint, glm)
+S3method(confint, nls)
+S3method(confint, polr)
+S3method(confint, profile.glm)
+S3method(confint, profile.nls)
+S3method(confint, profile.polr)
+S3method(corresp, xtabs)
+S3method(corresp, data.frame)
+S3method(corresp, default)
+S3method(corresp, factor)
+S3method(corresp, formula)
+S3method(corresp, matrix)
+S3method(denumerate, formula)
+S3method(dropterm, default)
+S3method(dropterm, glm)
+S3method(dropterm, lm)
+S3method(dropterm, mlm)
+S3method(dropterm, negbin)
+S3method(dropterm, survreg)
+S3method(extractAIC, gls)
+S3method(extractAIC, lme)
+S3method(extractAIC, loglm)
+S3method(extractAIC, polr)
+S3method(family, negbin)
+S3method(fitted, loglm)
+S3method(gamma.shape, glm)
+S3method(lda, data.frame)
+S3method(lda, default)
+S3method(lda, formula)
+S3method(lda, matrix)
+S3method(loglm1, data.frame)
+S3method(loglm1, default)
+S3method(loglm1, xtabs)
+S3method(logLik, fitdistr)
+S3method(logLik, glmmPQL)
+S3method(logLik, negbin)
+S3method(logLik, polr)
+S3method(logtrans, default)
+S3method(logtrans, formula)
+S3method(logtrans, lm)
+S3method(lqs, default)
+S3method(lqs, formula)
+S3method(Math, fractions)
+S3method(model.frame, lda)
+S3method(model.frame, polr)
+S3method(model.frame, qda)
+S3method(nobs, loglm)
+S3method(nobs, polr)
+S3method(Ops, fractions)
+S3method(pairs, lda)
+S3method(pairs, profile)
+S3method(plot, correspondence)
+S3method(plot, lda)
+S3method(plot, mca)
+S3method(plot, profile)
+S3method(plot, ridgelm)
+S3method(predict, glmmPQL)
+S3method(predict, lda)
+S3method(predict, lqs)
+S3method(predict, mca)
+S3method(predict, polr)
+S3method(predict, qda)
+S3method(predict, rlm)
+S3method(print, abbrev)
+S3method(print, Anova)
+S3method(print, anova.loglm)
+S3method(print, correspondence)
+S3method(print, fitdistr)
+S3method(print, fractions)
+S3method(print, gamma.shape)
+S3method(print, glm.dose)
+S3method(print, lda)
+S3method(print, loglm)
+S3method(print, lqs)
+S3method(print, mca)
+S3method(print, polr)
+S3method(print, qda)
+S3method(print, ridgelm)
+S3method(print, rlm)
+S3method(print, rms.curv)
+S3method(print, summary.loglm)
+S3method(print, summary.negbin)
+S3method(print, summary.polr)
+S3method(print, summary.rlm)
+S3method(profile, glm)
+S3method(profile, polr)
+S3method(qda, data.frame)
+S3method(qda, default)
+S3method(qda, formula)
+S3method(qda, matrix)
+S3method(renumerate, formula)
+S3method(residuals, loglm)
+S3method(rlm, default)
+S3method(rlm, formula)
+S3method(se.contrast, rlm)
+S3method(select, ridgelm)
+S3method(simulate, negbin)
+S3method(simulate, polr)
+S3method(Summary, fractions)
+S3method(summary, loglm)
+S3method(summary, negbin)
+S3method(summary, polr)
+S3method(summary, rlm)
+S3method(t, fractions)
+S3method(terms, gls)
+S3method(terms, lme)
+S3method(update, loglm)
+S3method(vcov, fitdistr)
+S3method(vcov, negbin)
+S3method(vcov, polr)
+S3method(vcov, rlm)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MASS/NEWS	(revision 2476)
@@ -0,0 +1,201 @@
+Software and datasets to support 'Modern Applied Statistics with S',
+fourth edition, by W. N. Venables and B. D. Ripley.
+Springer, 2002, ISBN 0-387-95457-0.
+
+This file documents software changes since the third edition.
+
+
+- eqscplot has new arguments ratio and uin.
+- stepAIC will not drop strata terms in coxph or survreg models.
+- profile.glm will report inadequate supplied glm fits, not just fail.
+- new method confint.lm.
+- fractions/rational allow missing values.
+- mvrnorm has an 'empirical' argument.
+- predict.lda and predict.qda try harder to avoid exponential underflow.
+
+- new function fitdistr for ML estimation of univariate distributions.
+- new function glmmPQL to use lme to fit GLMMs by PQL
+- truehist allows rule for nbins to be specified as a character string.
+- parcoord function.
+- new datasets bacteria, epil, nlschools, SP500
+- polr allows control argment for optim, reports lack of convergence.
+- stepAIC works again if formula has an offset (R had changed).
+- biplot.correspondence now shows the origin as a cross.
+- polr was not preserving contrasts to put in the fit object.
+- vcov methods for lme, gls, coxph and survReg.
+- Added 'tol' argument to isoMDS.
+- stepAIC now allow 'direction=both' starting from a full model.
+- glm.nb allows R-style 'start' argument.
+- truehist passes ... on to both plot.default() and rect().
+- isoMDS now uses the C interface to optim.
+- addterm, dropterm, stepAIC now work with lme and gls fits.
+- huber checks for MAD equal to zero.
+- glmmPQL now loads nlme if not already loaded.
+- glmmPQL handles list 'random' arguments (7.0-11).
+- The MASS datasets no longer require data(foo) to load them. (7.0-11)
+- mvrnorm uses eigen(EISPACK=TRUE) for back-compatibility (7.0-11, R 1.7.0)
+- print.summary.polr could lose dimnames for 1 coefficient.
+- remove heart as survival in R now has it.
+- confint.{lm,glm} didn't handle specifying parm in all cases.
+- confint and confint.lm have been migrated to base in R.
+- addterm.default, dropterm.default and stepAIC work better inside functions.
+- glm.nb now sets AIC in the object, and has a logLik() method.
+- truehist now accepts a 'ylab' argument.
+- negative.binomial and neg.bin no longer generate objects with
+  package:MASS in their environment.
+- stepAIC now drops (if allowed) 0-df terms sequentially from the right.
+- lda(CV=TRUE) now works for rank-deficient fits.
+- predict methods for lda, polr now check newdata types.
+- model.frame.lda/polr now look for the environment of the original formula.
+- polr has a new `model' argument defaulting to TRUE.
+- fitdistr supports the trivial case of a Normal distribution.
+- sammon and isoMDS now allow missing values in the dissimilarity matrix, and
+  isoMDS allows Minkowski distances in the configuration space.
+- cov.trob works better if wts are supplied, and may converge a little faster 
+  in any case.
+- The ch11.R script now uses mclust not mclust1998.
+- The default xlab for boxcox() is now greek lambda.
+- glmmPQL now handles offset terms.
+- add predict.rlm method to correct predict.lm in the case se.fit=TRUE.
+- weighted rlm fits are handled better, and default to "inv.var".
+- logtrans works without specifying 'data'.
+- predict() method for glmmPQL.
+- polr() has an option for probit or proportional hazard fits.
+- neg.bin() and negative.binomial() had an error in the aic() formula.
+- The ch05.R script now includes the code for Figure 5.8.
+- Datasets austres, fdeaths, lh, mdeaths, nottem and rock 
+  are now visible in the 'datasets' package of R 2.0.0 and so have 
+  been removed here.
+- Script ch07.R now gives details using the gam() function in package gam as
+  well as that in package mgcv.
+- rlm's fitted component is now always unweighted.
+- theta.{md,ml,mm} now have one help file with examples.
+- polr() has a new method "cauchit" suggested by Roger Koenker.
+  (Requires R >= 2.1.0)
+- polr() now works with transformed intercepts, and usually converges
+  better (contributed by David Firth).
+- polr() handles a rank-deficient model matrix.
+- polr() now returns the method used, and uses it for predictions.
+- anova() method for polr (contributed by John Fox).
+- predict.glmmPQL was not using the na.action in the object as intended.
+- The default methods for addterm and dropterm and anova.polr now check
+  for changes in the number of cases in use caused e.g. by na.action=na.omit.
+- Added vcov() method for rlm fits.
+- eqscplot() accepts reversed values for xlim and ylim.
+- Script ch10.R uses se.contrast to calculate se's missing from model.tables.
+- profile() and confint() methods for polr().
+- glm.convert() was not setting the `offset' component that R's glm objects 
+  have.
+- sammon() now checks for duplicates in the initial configuration.
+- isoMDS() and sammon() work around dropping of names.dist in 2.1.0
+- lda() now gives an explicit error message if all group means are the same.
+- fitdistr() now has a logLik() method, chooses the optim() method if not
+  supplied, handles the log-normal by closed-form and no longer attempts to
+  handle the uniform.
+- glm.nb() now accepts 'mustart'.
+- glm.nb() now supports weights: they used to be ignored when estimating 
+  theta.
+- fitdistr() now supports geometric and Poisson distributions, and 
+  uses closed-form results for the exponential.
+- lm.ridge, lqs and rlm allow offset() terms.
+- the 'prior' argument of predict.qda is now operational.
+- script ch12.R now has b1() adapted for R's contour().
+- anova.polr() quoted model dfs, not residual dfs.
+- stepAIC() applied to a polr fit now gets the correct rdf's in the
+  anova table.
+- lm.gls() now returns fitted values and residuals on the original
+  coordinates (not the uncorrelated ones).
+- parcoord() now allows missing values and has a new argument
+  'var.label' to label the variable axes.  (Contributed by Fabian Scheipl.)
+- rlm() has a 'lqs.control' argument passed to lqs() where used for
+  initialization.
+- rlm() could fail with some psi functions (e.g. psi.hampel) if 'init' was
+  given as a numeric vector.
+- rlm() handles weighted fits slightly differently, in particular trying
+  to give the same scale estimate if wt.method="case" as if replicating the
+  cases.
+- confint.nls copes with plinear models in R (now profile.nls does).
+- The wrappers lmsreg() etc have been adapted to work in the MASS namespace.
+- qda() accepts formulae containing backquoted non-syntactic names.
+- polr() gives an explicit error message if 'start' is misspecified.
+- glmmPQL() evaluates the formulae for 'fixed' and 'random', which may
+  help if they are given as variables and not values.
+- There are anova() and logLik() methods for class "glmmPQL" to stop misuse.
+- profile.polr() now works for a single-coefficient model.
+- The print and print.summary methods for polr and rlm make use of
+  naprint() to print a message e.g. about deleted observations.
+- Class "ridgelm" now has a coef() method, and works for n < p.
+- lda() and qda() now check explicitly for non-finite 'x' values.
+- ch06.R has been updated for multcomp >= 0.991-1
+- profile.glm is more likely to find the model frame in complicated
+  scopes.
+- message() is used for most messages.
+- truehist() checks more thoroughly for erroneous inputs.
+- polr(model=TRUE) works again.
+- add logLik() method for polr.
+- the summary() methods for classes "negbin" and "rlm" now default to
+  correlation = FALSE.
+- there is a vcov() method for class "negbin": unlike the "glm" method
+  this defaults to dispersion = 1.
+- coding for 'sex' in ?Melanoma has been corrected.
+- the example for gamma.shape has a better starting point and so converges
+- avoid abbreviation of survreg(dist=) in example(gehan)
+- profile() and confint() methods for "glm" objects now handle
+  rank-deficient fits.
+- profile.glm() produced an output in a format plot.profile could not
+  read for single-variable fits.  Also for confint() on intercept-only
+  fits.
+- The print() methods for fitdistr() and lm.ridge() now return invisibly.
+- vcov() and profile() methods for polr() used starting values in the
+  external not internal parametrization, which could slow convergence.
+- glm.nb() called theta.ml() incorrect when weights were supplied whch did not
+  sum to n.
+- removed unused argument 'nseg' to plot.profile.
+- 'alpha' in the "glm" and "polr" methods for profile() is now interpreted
+  as two-tailed univariate for consistency with other profile methods.
+- 'mammals': corrected typos in names, some thanks to Arni Magnusson.
+- profile.glm() now works for binomial glm specified with a matrix response
+  and a cmpletely zero row.
+- there is a "negbin" method for simulate()
+- the use of package mclust has been removed from the ch11.R script
+  because of the change of licence conditions for that package.
+- change ch13.R script for change in package 'survival' 2.35-x.
+- glmmPQL looks up variables in its 'correlation' argument (if a formula)
+  in the usual scope (wish of Ben Bolker: such arguments are unsupported).
+- added a simulate() method for unweighted polr() fits.
+- kde2d() allows a length-2 argument 'n'.
+- the default for truehist(col=) is now set to a colour, not a colour number.
+- the returned fitted values and (undocumented) linear predictor for
+  polr() did not take any offset into account (reported by Ioannis Kosmides).
+- the vcov() method for polr() now returns on the zeta scale (suggested by
+  Achim Zeileis).
+- fitdistr() gains a vcov() method (suggested by Achim Zeileis).
+- ch06.R has R alternatives to fac.design.
+- ch11.R has R alternatives for ggobi and factor rotation.
+- hubers() copes in extreme cases when middle 50% of data is constant.
+- tests/ now includes dataset for polr.R, so checking depends only on
+  base packages and lattice.
+- The "glm" method for profile() failed when given a binomial model
+  with a two-column response.
+- fitdistr() works harder to rescale the problem when fitting a gamma.
+- cov.trob() handles zero weights without giving a warning (reported by
+  John Fox).
+- boxcox() works better when 'y' is very badly scaled, e.g. around 1e-16
+  (patch by Martin Maechler).
+- mvrnorm() no longer defaults to the deprecated EISPACK=TRUE (and
+  hence changes the results).  It gains an argument 'EISPACK' for
+  back-compatibility.
+- the "polr" method for profile() could lose dimensions in its return object
+  (reported by Joris Meys)
+- kde2d() throws an error if given zero bandwidths or constant data.
+- ldahist(sep = TRUE) was missing a dev.flush().
+- addterm.glm() mis-calculated F statistics for df > 1.
+- anova.loglm() needed revision for changes in R.
+- the addterm() default method allows update() to fail.
+- polr(method = "cloglog") implemented what is more commonly called
+  the log-log link.  Now both are provided.
+- lqs() fits with intercepts and contrasts lost the latter from the return value.
+- addterm() and dropterm() now handle empty scopes, transparently.
+- glmmPQL uses requireNamespace('nlme'), not require().
+- mvnorm(EISPACK = TRUE) is now an error: it is unsupported by R >= 3.1.0.
+- the log-likelihood returned for fitdistr(, "geometric") was incorrect.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/INDEX	(revision 2476)
@@ -0,0 +1,166 @@
+%&%-methods             Boolean Arithmetic Matrix Products: '%&%' and
+                        Methods
+%*%-methods             Matrix (Cross) Products (of Transpose)
+BunchKaufman-methods    Bunch-Kaufman Decomposition Methods
+CAex                    Albers' example Matrix with "Difficult" Eigen
+                        Factorization
+CHMfactor-class         CHOLMOD-based Cholesky Factorizations
+Cholesky                Cholesky Decomposition of a Sparse Matrix
+Cholesky-class          Cholesky and Bunch-Kaufman Decompositions
+CsparseMatrix-class     Class "CsparseMatrix" of Sparse Matrices in
+                        Column-compressed Form
+Diagonal                Create Diagonal Matrix Object
+Hilbert                 Generate a Hilbert matrix
+KNex                    Koenker-Ng Example Sparse Model Matrix and
+                        Response Vector
+KhatriRao               Khatri-Rao Matrix Product
+LU-class                LU (dense) Matrix Decompositions
+Matrix                  Construct a Classed Matrix
+Matrix-class            Virtual Class "Matrix" Class of Matrices
+MatrixClass             The Matrix (Super-) Class of a Class
+MatrixFactorization-class
+                        Class "MatrixFactorization" of Matrix
+                        Factorizations
+RsparseMatrix-class     Class "RsparseMatrix" of Sparse Matrices in
+                        Column-compressed Form
+Schur                   Schur Decomposition of a Matrix
+Schur-class             Class "Schur" of Schur Matrix Factorizations
+SparseM-coerce-methods
+                        Sparse Matrix Coercion from and to those from
+                        package 'SparseM'
+TsparseMatrix-class     Class "TsparseMatrix" of Sparse Matrices in
+                        Triplet Form
+USCounties              USCounties Contiguity Matrix
+[-methods               Methods for "[": Extraction or Subsetting in
+                        Package 'Matrix'
+[<--methods             Methods for "[<-" - Assigning to Subsets for
+                        'Matrix'
+abIndex-class           Class "abIndex" of Abstract Index Vectors
+abIseq                  Sequence Generation of "abIndex", Abstract
+                        Index Vectors
+all-methods             "Matrix" Methods for Functions all() and any()
+all.equal-methods       Matrix Package Methods for Function all.equal()
+atomicVector-class      Virtual Class "atomicVector" of Atomic Vectors
+band                    Extract bands of a matrix
+bandSparse              Construct Sparse Banded Matrix from
+                        (Sup-/Super-) Diagonals
+bdiag                   Construct a Block Diagonal Matrix
+cBind                   Versions of 'cbind' and 'rbind' recursively
+                        built on cbind2/rbind2
+chol                    Choleski Decomposition - 'Matrix' S4 Generic
+                        and Methods
+chol2inv-methods        Inverse from Choleski or QR Decomposition -
+                        Matrix Methods
+colSums                 Form Row and Column Sums and Means
+compMatrix-class        Class "compMatrix" of Composite (Factorizable)
+                        Matrices
+condest                 Compute Approximate CONDition number and 1-Norm
+                        of (Large) Matrices
+dMatrix-class           (Virtual) Class "dMatrix" of "double" Matrices
+ddenseMatrix-class      Virtual Class "ddenseMatrix" of Numeric Dense
+                        Matrices
+ddiMatrix-class         Class "ddiMatrix" of Diagonal Numeric Matrices
+denseMatrix-class       Virtual Class "denseMatrix" of All Dense
+                        Matrices
+dgCMatrix-class         Compressed, sparse, column-oriented numeric
+                        matrices
+dgRMatrix-class         Sparse Compressed, Row-oriented Numeric
+                        Matrices
+dgTMatrix-class         Sparse matrices in triplet form
+dgeMatrix-class         Class "dgeMatrix" of Dense Numeric (S4 Class)
+                        Matrices
+diagU2N                 Transform Triangular Matrices from Unit
+                        Triangular to General Triangular and Back
+diagonalMatrix-class    Class "diagonalMatrix" of Diagonal Matrices
+dpoMatrix-class         Positive Semi-definite Dense Numeric Matrices
+drop0                   Drop "Explicit Zeroes" from a Sparse Matrix
+dsCMatrix-class         Numeric Symmetric Sparse (column compressed)
+                        Matrices
+dsRMatrix-class         Symmetric Sparse Compressed Row Matrices
+dsparseMatrix-class     Virtual Class "dsparseMatrix" of Numeric Sparse
+                        Matrices
+dsyMatrix-class         Symmetric Dense Numeric Matrices
+dtCMatrix-class         Triangular, (compressed) sparse column matrices
+dtRMatrix-class         Triangular Sparse Compressed Row Matrices
+dtpMatrix-class         Packed Triangular Dense Matrices - "dtpMatrix"
+dtrMatrix-class         Triangular, dense, numeric matrices
+expand                  Expand a Decomposition into Factors
+expm                    Matrix Exponential
+facmul                  Multiplication by Decomposition Factors
+forceSymmetric          Force a Matrix to 'symmetricMatrix' Without
+                        Symmetry Checks
+formatSparseM           Formatting Sparse Numeric Matrices Utilities
+generalMatrix-class     Class "generalMatrix" of General Matrices
+graph2T                 Conversions "graph" <-> (sparse) Matrix
+iMatrix-class           Virtual Classes Not Yet Really Implemented and
+                        Used
+image-methods           Methods for image() in Package 'Matrix'
+indMatrix-class         Index Matrices
+index-class             Virtual Class "index" - Simple Class for Matrix
+                        Indices
+invPerm                 Inverse Permutation Vector
+is.na-methods           is.na(), is.infinite() Methods for 'Matrix'
+                        Objects
+is.null.DN              Are the Dimnames 'dn' NULL-like ?
+isSymmetric-methods     Methods for Function isSymmetric in Package
+                        'Matrix'
+isTriangular            isTriangular() and isDiagonal() Methods
+kronecker-methods       Methods for Function 'kronecker()' in Package
+                        'Matrix'
+ldenseMatrix-class      Virtual Class "ldenseMatrix" of Dense Logical
+                        Matrices
+ldiMatrix-class         Class "ldiMatrix" of Diagonal Logical Matrices
+lgeMatrix-class         Class "lgeMatrix" of General Dense Logical
+                        Matrices
+lsparseMatrix-class     Sparse logical matrices
+lsyMatrix-class         Symmetric Dense Logical Matrices
+ltrMatrix-class         Triangular Dense Logical Matrices
+lu                      (Generalized) Triangular Decomposition of a
+                        Matrix
+nMatrix-class           Class "nMatrix" of Non-zero Pattern Matrices
+ndenseMatrix-class      Virtual Class "ndenseMatrix" of Dense Logical
+                        Matrices
+nearPD                  Nearest Positive Definite Matrix
+ngeMatrix-class         Class "ngeMatrix" of General Dense
+                        Nonzero-pattern Matrices
+nnzero                  The Number of Non-Zero Values of a Matrix
+norm                    Matrix Norms
+nsparseMatrix-class     Sparse "pattern" Matrices
+nsyMatrix-class         Symmetric Dense Nonzero-Pattern Matrices
+ntrMatrix-class         Triangular Dense Logical Matrices
+number-class            Class "number" of Possibly Complex Numbers
+pMatrix-class           Permutation matrices
+printSpMatrix           Format and Print Sparse Matrices Flexibly
+qr-methods              QR Decomposition - S4 Methods and Generic
+rankMatrix              Rank of a Matrix
+rcond                   Estimate the Reciprocal Condition Number
+readHB                  Read and write external matrix formats
+rep2abI                 Replicate Vectors into 'abIndex' Result
+replValue-class         Virtual Class "replValue" - Simple Class for
+                        subassignment Values
+rleDiff-class           Class "rleDiff" of rle(diff(.)) Stored Vectors
+rsparsematrix           Random Sparse Matrix
+solve-methods           Methods in Package Matrix for Function
+                        'solve()'
+spMatrix                Sparse Matrix Constructor From Triplet
+sparse.model.matrix     Construct Sparse Design / Model Matrices
+sparseLU-class          Sparse LU decomposition of a square sparse
+                        matrix
+sparseMatrix            General Sparse Matrix Construction from Nonzero
+                        Entries
+sparseMatrix-class      Virtual Class "sparseMatrix" - Mother of Sparse
+                        Matrices
+sparseQR-class          Sparse QR decomposition of a sparse matrix
+sparseVector            Sparse Vector Construction from Nonzero Entries
+sparseVector-class      Sparse Vector Classes
+symmetricMatrix-class   Virtual Class of Symmetric Matrices in Package
+                        Matrix
+symmpart                Symmetric Part and Skew(symmetric) Part of a
+                        Matrix
+triangularMatrix-class
+                        Virtual Class of Triangular Matrices in Package
+                        Matrix
+uniqTsparse             Unique TsparseMatrix Representations
+unpack                  Representation of Packed and Unpacked (Dense)
+                        Matrices
+updown                  Up- and Down-Dating a Cholesky Decomposition
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/test-tools-1.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/test-tools-1.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/test-tools-1.R	(revision 2476)
@@ -0,0 +1,379 @@
+#### Tools for Package Testing  --- in Matrix, sourced by ./test-tools.R
+#### -------------------------
+## to be used as, e.g.,
+## source(system.file("test-tools-1.R", package="Matrix"), keep.source=FALSE)
+
+### ------- Part I --  unrelated to "Matrix" classes ---------------
+
+if(!exists("paste0", .BaseNamespaceEnv)) # have in R >= 2.15.0
+    paste0 <- function(...) paste(..., sep = '')
+
+identical3 <- function(x,y,z)	  identical(x,y) && identical (y,z)
+identical4 <- function(a,b,c,d)   identical(a,b) && identical3(b,c,d)
+identical5 <- function(a,b,c,d,e) identical(a,b) && identical4(b,c,d,e)
+identical6 <- function(a,b,c,d,e,f)  identical(a,b) && identical5(b,c,d,e,f)
+identical7 <- function(a,b,c,d,e,f,g)identical(a,b) && identical6(b,c,d,e,f,g)
+
+if( exists("assertCondition", asNamespace("tools")) ) { ## R > 3.0.1
+
+if(FALSE) {
+assertError <- function(expr, verbose=getOption("verbose"))
+    tools::assertCondition(expr, "error", verbose=verbose)
+assertWarning <- function(expr, verbose=getOption("verbose"))
+    tools::assertCondition(expr, "warning", verbose=verbose)
+assertWarningAtLeast <- function(expr, verbose=getOption("verbose"))
+    tools::assertCondition(expr, "error", "warning", verbose=verbose)
+} else {
+    require(tools)#-> assertError() and assertWarning()
+    assertWarningAtLeast <- function(expr, verbose=getOption("verbose"))
+        tools::assertCondition(expr, "error", "warning", verbose=verbose)
+}
+
+} else { ## in R <= 3.0.1 :
+
+##' @title Ensure evaluating 'expr' signals an error
+##' @param expr
+##' @return the caught error, invisibly
+##' @author Martin Maechler
+assertError <- function(expr, verbose=getOption("verbose")) {
+    d.expr <- deparse(substitute(expr))
+    t.res <- tryCatch(expr, error = function(e) e)
+    if(!inherits(t.res, "error"))
+	stop(d.expr, "\n\t did not give an error", call. = FALSE)
+    if(verbose) cat("Asserted Error:", conditionMessage(t.res),"\n")
+    invisible(t.res)
+}
+
+## Note that our previous version of assertWarning() did *not* work correctly:
+##     x <- 1:3; assertWarning({warning("bla:",x[1]); x[2] <- 99}); x
+## had 'x' not changed!
+
+
+## From ~/R/D/r-devel/R/src/library/tools/R/assertCondition.R :
+assertCondition <- function(expr, ...,
+                            .exprString = .deparseTrim(substitute(expr), cutoff = 30L),
+                            verbose = FALSE) {
+    fe <- function(e)e
+    getConds <- function(expr) {
+	conds <- list()
+	tryCatch(withCallingHandlers(expr,
+				     warning = function(w) {
+					 conds <<- c(conds, list(w))
+					 invokeRestart("muffleWarning")
+				     },
+				     condition = function(cond)
+					 conds <<- c(conds, list(cond))),
+		 error = function(e)
+		     conds <<- c(conds, list(e)))
+	conds
+    }
+    conds <- if(nargs() > 1) c(...) # else NULL
+    .Wanted <- if(nargs() > 1) paste(c(...), collapse = " or ") else "any condition"
+    res <- getConds(expr)
+    if(length(res)) {
+	if(is.null(conds)) {
+            if(verbose)
+                message("assertConditon: Successfully caught a condition\n")
+	    invisible(res)
+        }
+	else {
+	    ii <- sapply(res, function(cond) any(class(cond) %in% conds))
+	    if(any(ii)) {
+                if(verbose) {
+                    found <-
+                        unique(sapply(res, function(cond) class(cond)[class(cond) %in% conds]))
+                    message(sprintf("assertCondition: caught %s",
+                                    paste(dQuote(found), collapse =", ")))
+                }
+		invisible(res)
+            }
+	    else {
+                .got <- paste(unique((sapply(res, function(obj)class(obj)[[1]]))),
+                                     collapse = ", ")
+		stop(gettextf("Got %s in evaluating %s; wanted %s",
+			      .got, .exprString, .Wanted))
+            }
+	}
+    }
+    else
+	stop(gettextf("Failed to get %s in evaluating %s",
+		      .Wanted, .exprString))
+}
+
+assertWarning <- function(expr, verbose=getOption("verbose"))
+    assertCondition(expr, "warning", verbose=verbose)
+assertWarningAtLeast <- function(expr, verbose=getOption("verbose"))
+    assertCondition(expr, "error", "warning", verbose=verbose)
+
+}# [else: no assertCondition ]
+
+##' [ from R's  demo(error.catching) ]
+##' We want to catch *and* save both errors and warnings, and in the case of
+##' a warning, also keep the computed result.
+##'
+##' @title tryCatch both warnings and errors
+##' @param expr
+##' @return a list with 'value' and 'warning', where
+##'   'value' may be an error caught.
+##' @author Martin Maechler
+tryCatch.W.E <- function(expr)
+{
+    W <- NULL
+    w.handler <- function(w){ # warning handler
+	W <<- w
+	invokeRestart("muffleWarning")
+    }
+    list(value = withCallingHandlers(tryCatch(expr, error = function(e) e),
+				     warning = w.handler),
+	 warning = W)
+}
+
+
+##' Is 'x' a valid object of class 'class' ?
+isValid <- function(x, class) isTRUE(validObject(x, test=TRUE)) && is(x, class)
+
+##' Signal an error (\code{\link{stop}}), if \code{x} is not a valid object
+##' of class \code{class}.
+##'
+##' @title Stop if Not a Valid Object of Given Class
+##' @param x any \R object
+##' @param class character string specifying a class name
+##' @return \emph{invisibly}, the value of \code{\link{validObject}(x)}, i.e.,
+##'   \code{TRUE}; otherwise an error will have been signalled
+##' @author Martin Maechler, March 2015
+stopifnotValid <- function(x, class) {
+    if(!is(x, class))
+	stop(sprintf("%s is not of class \"%s\"",
+		     deparse(substitute(x)), class), call. = FALSE)
+    invisible(validObject(x))
+}
+
+## Some (sparse) Lin.Alg. algorithms return 0 instead of NA, e.g.
+## qr.coef(<sparseQR>, y).
+## For those cases, need to compare with a version where NA's are replaced by 0
+mkNA.0 <- function(x) { x[is.na(x)] <- 0 ; x }
+
+##' ... : further arguments passed to all.equal() such as 'check.attributes'
+is.all.equal <- function(x,y, tol = .Machine$double.eps^0.5, ...)
+    identical(TRUE, all.equal(x,y, tolerance=tol, ...))
+is.all.equal3 <- function(x,y,z, tol = .Machine$double.eps^0.5, ...)
+    is.all.equal(x,y, tol=tol, ...) && is.all.equal(y,z, tol=tol, ...)
+
+is.all.equal4 <- function(x,y,z,u, tol = .Machine$double.eps^0.5, ...)
+    is.all.equal3(x,y,z, tol=tol, ...) && isTRUE(all.equal(z,u, tolerance=tol, ...))
+
+## A version of all.equal() for the slots
+all.slot.equal <- function(x,y, ...) {
+    slts <- slotNames(x)
+    for(sl in slts) {
+        aeq <- all.equal(slot(x,sl), slot(y,sl), ...)
+        if(!identical(TRUE, aeq))
+            return(paste("slot '",sl,"': ", aeq, sep=''))
+    }
+    TRUE
+}
+
+## all.equal() for list-coercible objects -- apart from *some* components
+all.equal.X <- function(x,y, except, tol = .Machine$double.eps^0.5, ...)
+{
+    .trunc <- function(x) {
+	ll <- as.list(x)
+	ll[ - match(except, names(ll), nomatch = 0L)]
+    }
+    all.equal(.trunc(x), .trunc(y), tolerance = tol, ...)
+}
+## e.g. in lme4:
+##  all.equal.X(env(m1), env(m2), except = c("call", "frame"))
+
+## The relative error typically returned by all.equal:
+relErr <- function(target, current) { ## make this work for 'Matrix'
+    ## ==> no mean() ..
+    n <- length(current)
+    if(length(target) < n)
+        target <- rep(target, length.out = n)
+    sum(abs(target - current)) / sum(abs(target))
+}
+
+##' Compute the signed relative error between target and current vector -- vectorized
+##' @title Relative Error (:= 0 when absolute error == 0)
+##' @param target  numeric, possibly scalar
+##' @param current numeric of length() a multiple of length(target)
+##' @return *vector* of the same length as current
+##' @author Martin Maechler
+relErrV <- function(target, current) {
+    n <- length(target <- as.vector(target))
+    ## assert( <length current> is multiple of <length target>) :
+    if(length(current) %% n)
+	stop("length(current) must be a multiple of length(target)")
+    RE <- current
+    RE[] <- 0
+    fr <- current/target
+    neq <- is.na(current) | (current != target)
+    RE[neq] <- 1 - fr[neq]
+    RE
+}
+
+##' @title Number of correct digits: Based on relErrV(), recoding "Inf" to 'zeroDigs'
+##' @param target  numeric vector of "true" values
+##' @param current numeric vector of "approximate" values
+##' @param zeroDigs how many correct digits should zero error give
+##' @return basically   -log10 (| relErrV(target, current) | )
+##' @author Martin Maechler, Summer 2011 (for 'copula')
+nCorrDigits <- function(target, current, zeroDigs = 16) {
+    stopifnot(zeroDigs >= -log10(.Machine$double.eps))# = 15.65
+    RE <- relErrV(target, current)
+    r <- -log10(abs(RE))
+    r[RE == 0] <- zeroDigs
+    r[is.na(RE) | r < 0] <- 0 # no correct digit, when relErr is NA
+    r
+}
+
+
+## is.R22 <- (paste(R.version$major, R.version$minor, sep=".") >= "2.2")
+
+pkgRversion <- function(pkgname)
+    sub("^R ([0-9.]+).*", "\\1", packageDescription(pkgname)[["Built"]])
+
+showSys.time <- function(expr, ...) {
+    ## prepend 'Time' for R CMD Rdiff
+    st <- system.time(expr, ...)
+    writeLines(paste("Time", capture.output(print(st))))
+    invisible(st)
+}
+showProc.time <- local({ ## function + 'pct' variable
+    pct <- proc.time()
+    function(final="\n") { ## CPU elapsed __since last called__
+	ot <- pct ; pct <<- proc.time()
+	## 'Time ..' *not* to be translated:  tools::Rdiff() skips its lines!
+	cat('Time elapsed: ', (pct - ot)[1:3], final)
+    }
+})
+
+##' A version of sfsmisc::Sys.memGB() which should never give an error
+##'  ( ~/R/Pkgs/sfsmisc/R/unix/Sys.ps.R  )
+##' TODO: A version that also works on Windows, using memory.size(max=TRUE)
+##' Windows help on memory.limit(): size in Mb (1048576 bytes), rounded down.
+
+Sys.memGB <- function(kind = "MemTotal") {## "MemFree" is typically more relevant
+    if(!file.exists(pf <- "/proc/meminfo"))
+	return(if(.Platform$OS.type == "windows")
+		   memory.limit() / 1000
+	       else NA)
+    mm <- tryCatch(drop(read.dcf(pf, fields=kind)),
+                   error = function(e) NULL)
+    if(is.null(mm) || any(is.na(mm)) || !all(grepl(" kB$", mm)))
+        return(NA)
+    ## return memory in giga bytes
+    as.numeric(sub(" kB$", "", mm)) / (1000 * 1024)
+}
+
+
+
+##' @title turn an S4 object (with slots) into a list with corresponding components
+##' @param obj an R object with a formal class (aka "S4")
+##' @return a list with named components where \code{obj} had slots
+##' @author Martin Maechler
+S4_2list <- function(obj) {
+   sn <- slotNames(obj)
+   structure(lapply(sn, slot, object = obj), .Names = sn)
+}
+
+assert.EQ <- function(target, current, tol = if(showOnly) 0 else 1e-15,
+                      giveRE = FALSE, showOnly = FALSE, ...) {
+    ## Purpose: check equality *and* show non-equality
+    ## ----------------------------------------------------------------------
+    ## showOnly: if TRUE, return (and hence typically print) all.equal(...)
+    T <- isTRUE(ae <- all.equal(target, current, tolerance = tol, ...))
+    if(showOnly) return(ae) else if(giveRE && T) { ## don't show if stop() later:
+	ae0 <- if(tol == 0) ae else all.equal(target, current, tolerance = 0, ...)
+	if(!isTRUE(ae0)) writeLines(ae0)
+    }
+    if(!T) stop("all.equal() |-> ", paste(ae, collapse=sprintf("%-19s","\n")))
+    else if(giveRE) invisible(ae0)
+}
+
+##' a version with other "useful" defaults (tol, giveRE, check.attr..)
+assert.EQ. <- function(target, current,
+		       tol = if(showOnly) 0 else .Machine$double.eps^0.5,
+		       giveRE = TRUE, showOnly = FALSE, ...) {
+    assert.EQ(target, current, tol=tol, giveRE=giveRE, showOnly=showOnly,
+	      check.attributes=FALSE, ...)
+}
+
+### ------- Part II  -- related to matrices, but *not* "Matrix" -----------
+
+add.simpleDimnames <- function(m, named=FALSE) {
+    stopifnot(length(d <- dim(m)) == 2)
+    dimnames(m) <- setNames(list(if(d[1]) paste0("r", seq_len(d[1])),
+				 if(d[2]) paste0("c", seq_len(d[2]))),
+			    if(named) c("Row", "Col"))
+    m
+}
+
+as.mat <- function(m) {
+    ## as(., "matrix")	but with no extraneous empty dimnames
+    m <- as(m, "matrix")
+    if(identical(dimnames(m), list(NULL,NULL)))
+	dimnames(m) <- NULL
+    m
+}
+
+assert.EQ.mat <- function(M, m, tol = if(showOnly) 0 else 1e-15,
+                          showOnly=FALSE, giveRE = FALSE, ...) {
+    ## Purpose: check equality of  'Matrix' M with  'matrix' m
+    ## ----------------------------------------------------------------------
+    ## Arguments: M: is(., "Matrix") typically {but just needs working as(., "matrix")}
+    ##            m: is(., "matrix")
+    ##            showOnly: if TRUE, return (and hence typically print) all.equal(...)
+    validObject(M)
+    MM <- as.mat(M)                     # as(M, "matrix")
+    if(is.logical(MM) && is.numeric(m))
+	storage.mode(MM) <- "integer"
+    attr(MM, "dimnames") <- attr(m, "dimnames") <- NULL
+    assert.EQ(MM, m, tol=tol, showOnly=showOnly, giveRE=giveRE)
+}
+## a short cut
+assert.EQ.Mat <- function(M, M2, tol = if(showOnly) 0 else 1e-15,
+                          showOnly=FALSE, giveRE = FALSE, ...)
+    assert.EQ.mat(M, as.mat(M2), tol=tol, showOnly=showOnly, giveRE=giveRE)
+
+
+chk.matrix <- function(M) {
+    ## check object; including coercion to "matrix" :
+    cl <- class(M)
+    cat("class ", dQuote(cl), " [",nrow(M)," x ",ncol(M),"]; slots (",
+	paste(slotNames(M), collapse=","), ")\n", sep='')
+    stopifnot(validObject(M),
+	      dim(M) == c(nrow(M), ncol(M)),
+	      identical(dim(m <- as(M, "matrix")), dim(M))
+	      )
+}
+
+isOrthogonal <- function(x, tol = 1e-15) {
+    all.equal(diag(as(zapsmall(crossprod(x)), "diagonalMatrix")),
+              rep(1, ncol(x)), tolerance = tol)
+}
+
+.M.DN <- Matrix:::.M.DN ## from ../R/Auxiliaries.R :
+dnIdentical  <- function(x,y) identical(.M.DN(x), .M.DN(y))
+dnIdentical3 <- function(x,y,z) identical3(.M.DN(x), .M.DN(y), .M.DN(z))
+
+##' @title Are two matrices practically equal - including dimnames
+##' @param M1, M2: two matrices to be compared, maybe of _differing_ class
+##' @param tol
+##' @param dimnames logical indicating if dimnames must be equal
+##' @param ... passed to all.equal(M1, M2)
+##' @return TRUE or FALSE
+is.EQ.mat <- function(M1, M2, tol = 1e-15, dimnames = TRUE, ...) {
+    (if(dimnames) dnIdentical(M1,M2) else TRUE) &&
+    is.all.equal(unname(as(M1, "matrix")),
+		 unname(as(M2, "matrix")), tol=tol, ...)
+}
+
+##' see is.EQ.mat()
+is.EQ.mat3 <- function(M1, M2, M3, tol = 1e-15, dimnames = TRUE, ...) {
+    (if(dimnames) dnIdentical3(M1,M2,M3) else TRUE) &&
+    is.all.equal3(unname(as(M1, "matrix")),
+		  unname(as(M2, "matrix")),
+		  unname(as(M3, "matrix")), tol=tol, ...)
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/test-tools.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/test-tools.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/test-tools.R	(revision 2476)
@@ -0,0 +1,10 @@
+#### Will be sourced by several R scripts in ../tests/
+
+### ------- Part I & -- unrelated to "Matrix" classes ---------------
+### ------- Part II  -- related to matrices, but *not* "Matrix" -----------
+source(system.file("test-tools-1.R",      package = "Matrix"), keep.source = FALSE)
+### ------- Part III --  "Matrix" (classes) specific ----------------------
+source(system.file("test-tools-Matrix.R", package = "Matrix"), keep.source = FALSE)
+
+doExtras <- interactive() || nzchar(Sys.getenv("R_MATRIX_CHECK_EXTRA")) ||
+    identical("true", unname(Sys.getenv("R_PKG_CHECKING_doExtras")))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/test-tools-Matrix.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/test-tools-Matrix.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/test-tools-Matrix.R	(revision 2476)
@@ -0,0 +1,682 @@
+#### Tools for Package Testing --- in Matrix, sourced by ./test-tools.R
+#### -------------------------
+
+### ------- Part III --  "Matrix" (classes) specific ----------------------
+
+lsM <- function(...) {
+    for(n in ls(..., envir=parent.frame()))
+        if(is((. <- get(n)),"Matrix"))
+            cat(sprintf("%5s: '%s' [%d x %d]\n",n,class(.), nrow(.),ncol(.)))
+}
+
+asD <- function(m) { ## as "Dense"
+    if(canCoerce(m, "denseMatrix")) as(m, "denseMatrix")
+    else if(canCoerce(m, (cl <- paste(.M.kind(m), "denseMatrix", sep=''))))
+        as(m, cl)
+    else if(canCoerce(m, "dgeMatrix")) as(m, "dgeMatrix")
+    else stop("cannot coerce to a typical dense Matrix")
+}
+
+## "normal" sparse Matrix: Csparse, no diag="U"
+asCsp <- function(x) diagU2N(as(x, "CsparseMatrix"))
+
+##' @title quasi-identical dimnames
+Qidentical.DN <- function(dx, dy) {
+
+    stopifnot(is.list(dx) || is.null(dx),
+	      is.list(dy) || is.null(dy))
+    ## "empty"
+    (is.null.DN(dx) && is.null.DN(dy)) || identical(dx, dy)
+}
+
+##' quasi-identical()  for 'Matrix' matrices
+Qidentical <- function(x,y, strictClass = TRUE) {
+    if(class(x) != class(y)) {
+        if(strictClass || !is(x, class(y)))
+           return(FALSE)
+        ## else try further
+    }
+    slts <- slotNames(x)
+    if("Dimnames" %in% slts) { ## always (or we have no 'Matrix')
+	slts <- slts[slts != "Dimnames"]
+	if(!Qidentical.DN(x@Dimnames, y@Dimnames) &&
+	   ## allow for "completion" of (NULL, <names>) dimnames of symmetricMatrix:
+	   !Qidentical.DN(dimnames(x), dimnames(y)))
+	    return(FALSE)
+    }
+    if("factors" %in% slts) { ## allow one empty and one non-empty 'factors'
+        slts <- slts[slts != "factors"]
+        ## if both are not empty, they must be the same:
+        if(length(xf <- x@factors) && length(yf <- y@factors))
+            if(!identical(xf, yf)) return(FALSE)
+    }
+    for(sl in slts)
+        if(!identical(slot(x,sl), slot(y,sl)))
+            return(FALSE)
+    TRUE
+}
+
+##' quasi-identical()  for traditional ('matrix') matrices
+mQidentical <- function(x,y, strictClass = TRUE) {
+    if(class(x) != class(y)) {
+        if(strictClass || !is(x, class(y)))
+            return(FALSE)
+        ## else try further
+    }
+    if(!Qidentical.DN(dimnames(x), dimnames(y)))
+        return(FALSE)
+    identical(unname(x), unname(y))
+}
+
+Q.C.identical <- function(x,y, sparse = is(x,"sparseMatrix"),
+                          checkClass = TRUE, strictClass = TRUE) {
+    if(checkClass && class(x) != class(y)) {
+        if(strictClass || !is(x, class(y)))
+	   return(FALSE) ## else try further
+    }
+    if(sparse)
+	Qidentical(as(x,"CsparseMatrix"), as(y,"CsparseMatrix"),
+		   strictClass=strictClass)
+    else Qidentical(x,y, strictClass=strictClass)
+}
+
+##' <description>
+##'
+##' <details>
+##' @title  Quasi-equal for  'Matrix' matrices
+##' @param x  Matrix
+##' @param y  Matrix
+##' @param superclasses  x and y must coincide in (not) extending these; set to empty,
+##'  if no class/inheritance checks should happen.
+##' @param dimnames.check  logical indicating if dimnames(.) much match
+##' @param tol  NA (--> use "==") or numerical tolerance for all.equal()
+##' @return   logical:  Are x and y (quasi) equal ?
+Q.eq <- function(x, y,
+		 superclasses =
+		 c("sparseMatrix", "denseMatrix",
+		   "dMatrix", "lMatrix", "nMatrix"),
+		 dimnames.check = TRUE, tol = NA) {
+    ## quasi-equal - for 'Matrix' matrices
+    if(any(dim(x) != dim(y)))
+	return(FALSE)
+    if(dimnames.check &&
+       !identical(dimnames(x),
+		  dimnames(y))) return(FALSE)
+    xcl <- getClassDef(class(x))
+    ycl <- getClassDef(class(y))
+    for(SC in superclasses) {
+	if( extends(xcl, SC) &&
+	   !extends(ycl, SC)) return(FALSE)
+    }
+    asC <- ## asCommon
+        if((isDense <- extends(xcl,"denseMatrix")))
+            function(m) as(m, "matrix")
+        else function(m)
+            as(as(as(m,"CsparseMatrix"), "dMatrix"), "dgCMatrix")
+    if(is.na(tol)) {
+	if(isDense)
+	    all(x == y | (is.na(x) & is.na(y)))
+	else ## 'x == y' blows up for large sparse matrices:
+	    isTRUE(all.equal(asC(x), asC(y), tolerance = 0.,
+			     check.attributes = dimnames.check))
+    }
+    else if(is.numeric(tol) && tol >= 0) {
+        isTRUE(all.equal(asC(x), asC(y), tolerance = tol,
+                         check.attributes = dimnames.check))
+    }
+    else stop("'tol' must be NA or non-negative number")
+}
+
+Q.eq2 <- function(x, y,
+		  superclasses = c("sparseMatrix", "denseMatrix"),
+		  dimnames.check = FALSE, tol = NA)
+    Q.eq(x,y, superclasses=superclasses,
+         dimnames.check=dimnames.check, tol=tol)
+
+##' <description>
+##'
+##' <details>
+##' @title  Quasi-equality of  symmpart(m) + skewpart(m) with m
+##' @param m  Matrix
+##' @param tol  numerical tolerance for all.equal()
+##' @return logical
+##' @author Martin Maechler
+Q.eq.symmpart <- function(m, tol = 8 * .Machine$double.eps)
+{
+    ss <- symmpart(m) + skewpart(m)
+    if(hasNA <- any(iNA <- is.na(ss))) {
+	## ss has the NA's symmetrically, but typically m has *not*
+	iiNA <- which(iNA) # <- useful! -- this tests  which() methods!
+	## assign NA's too -- using correct kind of NA:
+	m[iiNA] <- as(NA, Matrix:::.type.kind[Matrix:::.M.kind(m)])
+    }
+    Q.eq2(m, ss, tol = tol)
+}
+
+##' sample.int(n, size, replace=FALSE) for really large n:
+sampleL <- function(n, size) {
+    if(n < .Machine$integer.max)
+	sample.int(n, size)
+    else {
+	i <- unique(round(n * runif(1.8 * size)))
+	while(length(i) < size) {
+	    i <- unique(c(i, round(n * runif(size))))
+	}
+	i[seq_len(size)]
+    }
+}
+
+
+## Useful Matrix constructors for testing:
+
+##' @title Random Sparse Matrix
+##' @param n
+##' @param m number of columns; default (=n)  ==> square matrix
+##' @param density the desired sparseness density:
+##' @param nnz number of non-zero entries; default from \code{density}
+##' @param giveCsparse logical specifying if result should be CsparseMatrix
+##' @return a [TC]sparseMatrix,  n x m
+##' @author Martin Maechler, Mar 2008
+rspMat <- function(n, m = n, density = 1/4, nnz = round(density * n*m),
+                   giveCsparse = TRUE)
+{
+    stopifnot(length(n) == 1, n == as.integer(n),
+              length(m) == 1, m == as.integer(m),
+              0 <= density, density <= 1,
+              0 <= nnz,
+	      nnz <= (N <- n*m))
+    in0 <- sampleL(N, nnz)
+    x <- sparseVector(i = in0, x = as.numeric(1L + seq_along(in0)), length = N)
+    dim(x) <- c(n,m)#-> sparseMatrix
+    if (giveCsparse) as(x, "CsparseMatrix") else x
+}
+
+## __DEPRECATED__ !!
+rSparseMatrix <- function(nrow, ncol, nnz,
+			  rand.x = function(n) round(rnorm(nnz), 2), ...)
+{
+    stopifnot((nnz <- as.integer(nnz)) >= 0,
+	      nrow >= 0, ncol >= 0, nnz <= nrow * ncol)
+    .Deprecated("rsparsematrix")
+    ##=========
+    sparseMatrix(i = sample(nrow, nnz, replace = TRUE),
+		 j = sample(ncol, nnz, replace = TRUE),
+		 x = rand.x(nnz), dims = c(nrow, ncol), ...)
+}
+
+
+rUnitTri <- function(n, upper = TRUE, ...)
+{
+    ## Purpose: random unit-triangular sparse Matrix .. built from rspMat()
+    ## ----------------------------------------------------------------------
+    ## Arguments:  n: matrix dimension
+    ##         upper: logical indicating if upper or lower triangular
+    ##         ...  : further arguments passed to rspMat(), eg. 'density'
+    ## ----------------------------------------------------------------------
+    ## Author: Martin Maechler, Date:  5 Mar 2008, 11:35
+
+    r <- (if(upper) triu else tril)(rspMat(n, ...))
+    ## make sure the diagonal is empty
+    diag(r) <- 0
+    r <- drop0(r)
+    r@diag <- "U"
+    r
+}
+
+##' Construct a nice (with exact numbers) random artificial  \eqn{A = L D L'}
+##' decomposition with a sparse \eqn{n \times n}{n x n} matrix \code{A} of
+##' density \code{density} and square root \eqn{D} determined by \code{d0}.
+##'
+##' If one of \code{rcond} or \code{condest} is true, \code{A} must be
+##' non-singular, both use an \eqn{LU} decomposition requiring
+##' non-singularity.
+##' @title Make Nice Artificial   A = L D L'  (With Exact Numbers) Decomposition
+##' @param n matrix dimension \eqn{n \times n}{n x n}
+##' @param density ratio of number of non-zero entries to total number
+##' @param d0 The sqrt of the diagonal entries of D default \code{10}, to be
+##' \dQuote{different} from \code{L} entries.
+##' @param rcond logical indicating if \code{\link{rcond}(A, useInv=TRUE)}
+##' should be returned which requires non-singular A and D.
+##' @param condest logical indicating if \code{\link{condest}(A)$est}
+##' should be returned which requires non-singular A and D.
+##' @return list with entries A, L, d.half, D, ..., where A inherits from
+##' class \code{"\linkS4class{symmetricMatrix}"} and should be equal to
+##' \code{as(L \%*\% D \%*\% t(L), "symmetricMatrix")}.
+##' @author Martin Maechler, Date: 15 Mar 2008
+mkLDL <- function(n, density = 1/3,
+                  d0 = 10, d.half = d0 * sample.int(n), # random permutation
+                  rcond = (n < 99), condest = (n >= 100))
+{
+    stopifnot(n == round(n), density <= 1)
+    n <- as.integer(n)
+    stopifnot(n >= 1, is.numeric(d.half),
+              length(d.half) == n, d.half >= 0)
+    L <- Matrix(0, n,n)
+    nnz <- round(density * n*n)
+    L[sample(n*n, nnz)] <- seq_len(nnz)
+    L <- tril(L, -1L)
+    diag(L) <- 1
+    dh2 <- d.half^2
+    non.sing <- sum(dh2 > 0) == n
+    D <- Diagonal(x = dh2)
+    A <- tcrossprod(L * rep(d.half, each=n))
+    ## = as(L %*% D %*% t(L), "symmetricMatrix")
+    list(A = A, L = L, d.half = d.half, D = D,
+	 rcond.A = if (rcond  && non.sing) rcond(A, useInv=TRUE),
+	 cond.A  = if(condest && non.sing) condest(A)$est)
+}
+
+eqDeterminant <- function(m1, m2, NA.Inf.ok=FALSE, tol=.Machine$double.eps^0.5, ...)
+{
+    d1 <- determinant(m1) ## logarithm = TRUE
+    d2 <- determinant(m2)
+    d1m <- as.vector(d1$modulus)# dropping attribute
+    d2m <- as.vector(d2$modulus)
+    if((identical(d1m, -Inf) && identical(d2m, -Inf)) ||
+       ## <==> det(m1) == det(m2) == 0, then 'sign' may even differ !
+       (is.na(d1m) && is.na(d2m)))
+	## if both are NaN or NA, we "declare" that's fine here
+	return(TRUE)
+    else if(NA.Inf.ok && ## first can be NA, second infinite:
+            ## wanted: base::determinant.matrix() sometimes gives -Inf instead
+            ## of NA,e.g. for matrix(c(0,NA,0,0,NA,NA,0,NA,0,0,1,0,0,NA,0,1), 4,4))
+            is.na(d1m) && is.infinite(d2m)) return(TRUE)
+    ## else
+    if(is.infinite(d1m)) d1$modulus <- sign(d1m)* .Machine$double.xmax
+    if(is.infinite(d2m)) d2$modulus <- sign(d2m)* .Machine$double.xmax
+    ## now they are finite or *one* of them is NA/NaN, and all.equal() will tell so:
+    all.equal(d1, d2, tolerance=tol, ...)
+}
+
+##' @param A a non-negative definite sparseMatrix, typically "dsCMatrix"
+##'
+##' @return a list with components resulting from calling
+##'    Cholesky(.,  perm = .P., LDL = .L., super = .S.)
+##'
+##'    for all 2*2*3 combinations of (.P., .L., .S.)
+allCholesky <- function(A, verbose = FALSE, silentTry = FALSE)
+{
+    ## Author: Martin Maechler, Date: 16 Jul 2009
+
+    ##' @param r   list of CHMfactor objects, typically with names() as '. | .'
+    ##'
+    ##' @return an is(perm,LDL,super) matrix with interesting and *named* rownames
+    CHM_to_pLs <- function(r) {
+        is.perm <- function(.)
+            if(inherits(., "try-error")) NA else !all(.@perm == 0:(.@Dim[1]-1))
+        is.LDL <- function(.)if(inherits(., "try-error")) NA else isLDL(.)
+	r.st <-
+	    cbind(perm	= sapply(r, is.perm),
+		  LDL	= sapply(r, is.LDL),
+		  super = sapply(r, class) == "dCHMsuper")
+	names(dimnames(r.st)) <- list("  p L s", "")
+	r.st
+    }
+
+    my.Cholesky <- {
+	if(verbose)
+	    function (A, perm = TRUE, LDL = !super, super = FALSE, Imult = 0, ...) {
+		cat(sprintf("Chol..(*, perm= %1d, LDL= %1d, super=%1d):",
+			    perm, LDL, super))
+		r <- Cholesky(A, perm=perm, LDL=LDL, super=super, Imult=Imult, ...)
+		cat(" [Ok]\n")
+		r
+	    }
+	else Cholesky
+    }
+    logi <- c(FALSE, TRUE)
+    d12 <- expand.grid(perm = logi, LDL = logi, super = c(logi,NA),
+		       KEEP.OUT.ATTRS = FALSE)
+    r1 <- lapply(seq_len(nrow(d12)),
+		 function(i) try(do.call(my.Cholesky,
+                                         c(list(A = A), as.list(d12[i,]))),
+                                 silent=silentTry))
+    names(r1) <- apply(d12, 1,
+		       function(.) paste(symnum(.), collapse=" "))
+    dup.r1 <- duplicated(r1)
+    r.all <- CHM_to_pLs(r1)
+    if(!identical(dup.r1, duplicated(r.all)))
+        warning("duplicated( <pLs-matrix> ) differs from duplicated( <CHM-list> )",
+                immediate. = TRUE)
+    list(Chol.A = r1,
+         dup.r.all = dup.r1,
+	 r.all	= r.all,
+	 r.uniq = CHM_to_pLs(r1[ ! dup.r1]))
+}
+
+##' Cheap  Boolean Arithmetic Matrix product
+##' Should be equivalent to  %&%  which is faster [not for large dense!].
+##' Consequently mainly used in  checkMatrix()
+boolProd <- function(x,y) as((abs(x) %*% abs(y)) > 0, "nMatrix")
+
+###----- Checking a "Matrix" -----------------------------------------
+
+##' Check the compatibility of \pkg{Matrix} package Matrix with a
+##' \dQuote{traditional} \R matrix and perform a host of internal consistency
+##' checks.
+##'
+##' @title Check Compatibility of Matrix Package Matrix with Traditional R Matrices
+##'
+##' @param m   a "Matrix"
+##' @param m.m as(m, "matrix")  {if 'do.matrix' }
+##' @param do.matrix logical indicating if as(m, "matrix") should be applied;
+##'    typically false for large sparse matrices
+##' @param do.t  logical: is t(m) "feasible" ?
+##' @param doNorm
+##' @param doOps
+##' @param doSummary
+##' @param doCoerce
+##' @param doCoerce2
+##' @param do.prod
+##' @param verbose logical indicating if "progress output" is produced.
+##' @param catFUN (when 'verbose' is TRUE): function to be used as generalized cat()
+##' @return TRUE (invisibly), unless an error is signalled
+##' @author Martin Maechler, since 11 Apr 2008
+checkMatrix <- function(m, m.m = if(do.matrix) as(m, "matrix"),
+			do.matrix = !isSparse || prod(dim(m)) < 1e6,
+			do.t = TRUE, doNorm = TRUE, doOps = TRUE,
+                        doSummary = TRUE, doCoerce = TRUE,
+			doCoerce2 = doCoerce && !isRsp, doDet = do.matrix,
+			do.prod = do.t && do.matrix && !isRsp,
+			verbose = TRUE, catFUN = cat)
+{
+    ## is also called from  dotestMat()  in ../tests/Class+Meth.R
+
+    stopifnot(is(m, "Matrix"))
+    validObject(m) # or error(....)
+
+    clNam <- class(m)
+    cld <- getClassDef(clNam) ## extends(cld, FOO) is faster than is(m, FOO)
+    isCor    <- extends(cld, "corMatrix")
+    isSym    <- extends(cld, "symmetricMatrix")
+    if(isSparse <- extends(cld, "sparseMatrix")) { # also true for these
+	isRsp  <- extends(cld, "RsparseMatrix")
+	isDiag <- extends(cld, "diagonalMatrix")
+	isInd  <- extends(cld, "indMatrix")
+	isPerm <- extends(cld, "pMatrix")
+    } else isRsp <- isDiag <- isInd <- isPerm <- FALSE
+    isTri <- !isSym && !isDiag && !isInd && extends(cld, "triangularMatrix")
+    is.n     <- extends(cld, "nMatrix")
+    nonMatr  <- clNam != (Mcl <- MatrixClass(clNam, cld))
+
+    Cat	 <- function(...) if(verbose) cat(...)
+    CatF <- function(...) if(verbose) catFUN(...)
+    ## warnNow <- function(...) warning(..., call. = FALSE, immediate. = TRUE)
+
+    DO.m <- function(expr) if(do.matrix) eval(expr) else TRUE
+
+    vec <- function(x) {
+	dim(x) <- c(length(x), 1L)
+	dimnames(x) <- list(NULL,NULL)
+	x
+    }
+    eps16 <- 16 * .Machine$double.eps
+
+    ina <- is.na(m)
+    if(do.matrix) {
+	stopifnot(all(ina == is.na(m.m)),
+		  all(is.finite(m) == is.finite(m.m)),
+		  all(is.infinite(m) == is.infinite(m.m)),
+		  all(m == m | ina), ## check all() , "==" [Compare], "|" [Logic]
+		  if(ncol(m) > 0) identical3(unname(m[,1]), unname(m.m[,1]),
+					     as(m[,1,drop=FALSE], "vector"))
+		  else identical(as(m, "vector"), as.vector(m.m)))
+	if(any(m != m & !ina)) stop(" any (m != m) should not be true")
+    } else {
+	if(any(m != m)) stop(" any (m != m) should not be true")
+        if(ncol(m) > 0)
+             stopifnot(identical(unname(m[,1]), as(m[,1,drop=FALSE], "vector")))
+        else stopifnot(identical(as(m, "vector"), as.vector(as(m, "matrix"))))
+    }
+    if(do.t) {
+	tm <- t(m)
+	if(isSym) ## check that t() swaps 'uplo'  L <--> U :
+	    stopifnot(c("L","U") == sort(c(m@uplo, tm@uplo)))
+	ttm <- t(tm)
+        ## notInd: "pMatrix" ok, but others inheriting from "indMatrix" are not
+        notInd <- (!isInd || isPerm)
+	if(notInd && (extends(cld, "CsparseMatrix") ||
+	   extends(cld, "generalMatrix") || isDiag))
+            stopifnot(Qidentical(m, ttm, strictClass = !nonMatr))
+	else if(do.matrix) {
+	    if(notInd) stopifnot(nonMatr || class(ttm) == clNam)
+	    stopifnot(all(m == ttm | ina))
+	    ## else : not testing
+	}
+
+
+	## crossprod()	%*%  etc
+	if(do.prod) {
+	    c.m <-  crossprod(m)
+	    tcm <- tcrossprod(m)
+            tolQ <- if(isSparse) NA else eps16
+	    stopifnot(dim(c.m) == rep.int(ncol(m), 2),
+		      dim(tcm) == rep.int(nrow(m), 2),
+		      ## FIXME: %*% drops dimnames
+		      Q.eq2(c.m, tm %*% m, tol = tolQ),
+		      Q.eq2(tcm, m %*% tm, tol = tolQ),
+                      ## should work with dimnames:
+		      Q.eq(m %&% tm, boolProd(m, tm), superclasses=NULL, tol = 0)
+                     ,
+		      Q.eq(tm %&% m, boolProd(tm, m), superclasses=NULL, tol = 0)
+                      )
+	}
+    }
+    if(!do.matrix) {
+	CatF(" will *not* coerce to 'matrix' since do.matrix is FALSE\n")
+    } else if(doNorm) {
+	CatF(sprintf(" norm(m [%d x %d]) :", nrow(m), ncol(m)))
+	for(typ in c("1","I","F","M")) {
+	    Cat('', typ, '')
+	    stopifnot(all.equal(norm(m,typ), norm(m.m,typ)))
+	}
+	Cat(" ok\n")
+    }
+    if(do.matrix && doSummary) {
+	summList <- lapply(getGroupMembers("Summary"), get,
+			   envir = asNamespace("Matrix"))
+	CatF(" Summary: ")
+	for(f in summList) {
+	    ## suppressWarnings():  e.g. any(<double>)	would warn here:
+	    r <- suppressWarnings(if(isCor) all.equal(f(m), f(m.m)) else
+				  identical(f(m), f(m.m)))
+	    if(!isTRUE(r)) {
+		f.nam <- sub("..$", '', sub("^\\.Primitive..", '', format(f)))
+		## prod() is delicate: NA or NaN can both happen
+		(if(f.nam == "prod") message else stop)(
+		    sprintf("%s(m) [= %g] differs from %s(m.m) [= %g]",
+			    f.nam, f(m), f.nam, f(m.m)))
+	    }
+	}
+	if(verbose) cat(" ok\n")
+    }
+
+    ## and test 'dim()' as well:
+    d <- dim(m)
+    isSqr <- d[1] == d[2]
+    if(do.t) stopifnot(identical(diag(m), diag(t(m))))
+    ## TODO: also === diag(band(m,0,0))
+
+    if(prod(d) < .Machine$integer.max && !extends(cld, "modelMatrix")) {
+	vm <- vec(m)
+	stopifnot(is(vm, "Matrix"), validObject(vm), dim(vm) == c(d[1]*d[2], 1))
+    }
+
+    if(!isInd)
+        m.d <- local({ m. <- m; diag(m.) <- diag(m); m. })
+    if(do.matrix)
+    stopifnot(identical(dim(m.m), dim(m)),
+	      ## base::diag() keeps names [Matrix FIXME]
+## now that "pMatrix" subsetting gives *LOGICAL*
+## 	      if(isPerm) {
+## 		  identical(as.integer(unname(diag(m))), unname(diag(m.m)))
+## 	      } else
+	      identical(unname(diag(m)),
+			unname(diag(m.m))),## not for NA: diag(m) == diag(m.m),
+	      identical(nnzero(m), sum(m.m != 0)),
+	      identical(nnzero(m, na.= FALSE), sum(m.m != 0, na.rm = TRUE)),
+	      identical(nnzero(m, na.= TRUE),  sum(m.m != 0 | is.na(m.m)))
+	      )
+
+    if(isSparse) {
+	n0m <- drop0(m) #==> n0m is Csparse
+	has0 <- !Qidentical(n0m, as(m,"CsparseMatrix"))
+	if(!isInd && !isRsp &&
+           !(extends(cld, "TsparseMatrix") && anyDuplicatedT(m, di = d)))
+                                        # 'diag<-' is does not change attrib:
+	    stopifnot(Qidentical(m, m.d))# e.g., @factors may differ
+    }
+    else if(!identical(m, m.d)) { # dense : 'diag<-' is does not change attrib
+	if(isTri && m@diag == "U" && m.d@diag == "N" &&
+	   all(m == m.d))
+	    message("unitriangular m: diag(m) <- diag(m) lost \"U\" .. is ok")
+	else stop("diag(m) <- diag(m) has changed 'm' too much")
+    }
+    ## use non-square matrix when "allowed":
+
+    ## m12: sparse and may have 0s even if this is not: if(isSparse && has0)
+    m12 <- as(as(  m, "lMatrix"),"CsparseMatrix")
+    m12 <- drop0(m12)
+    if(do.matrix) {
+	## "!" should work (via as(*, "l...")) :
+	m11 <- as(as(!!m,"CsparseMatrix"), "lMatrix")
+	if(!Qidentical(m11, m12))
+	    stopifnot(Qidentical(as(m11, "generalMatrix"),
+				 as(m12, "generalMatrix")))
+    }
+    if(isSparse && !is.n) {
+	## ensure that as(., "nMatrix") gives nz-pattern
+	CatF("as(., \"nMatrix\") giving full nonzero-pattern: ")
+	n1 <- as(m, "nMatrix")
+	ns <- as(m, "nsparseMatrix")
+	stopifnot(identical(n1,ns),
+		  isDiag || ((if(isSym) Matrix:::nnzSparse else sum)(n1) ==
+			     length(if(isInd) m@perm else diagU2N(m)@x)))
+        Cat("ok\n")
+    }
+
+    if(doOps) {
+	## makes sense with non-trivial m (!)
+	CatF("2*m =?= m+m: ")
+	if(identical(2*m, m+m)) Cat("identical\n")
+	else if(do.matrix) {
+	    eq <- as(2*m,"matrix") == as(m+m, "matrix") # but work for NA's:
+	    stopifnot(all(eq | (is.na(m) & is.na(eq))))
+	    Cat("ok\n")
+	} else {# !do.matrix
+	    stopifnot(identical(as(2*m, "CsparseMatrix"),
+                                as(m+m, "CsparseMatrix")))
+	    Cat("ok\n")
+	}
+	if(do.matrix) {
+	    ## m == m etc, now for all, see above
+	    CatF("m >= m for all: "); stopifnot(all(m >= m | ina)); Cat("ok\n")
+	}
+	if(prod(d) > 0) {
+	    CatF("m < m for none: ")
+	    mlm <- m < m
+	    if(!any(ina)) stopifnot(!any(mlm))
+	    else if(do.matrix) stopifnot(!any(mlm & !ina))
+	    else { ## !do.matrix & any(ina) :  !ina can *not* be used
+		mlm[ina] <- FALSE
+		stopifnot(!any(mlm))
+	    }
+	    Cat("ok\n")
+	}
+
+	if(isSqr) {
+	    if(do.matrix) {
+		## determinant(<dense>) "fails" for triangular with NA such as
+		## (m <- matrix(c(1:0,NA,1), 2))
+		CatF("symmpart(m) + skewpart(m) == m: ")
+		Q.eq.symmpart(m)
+		CatF("ok;  determinant(): ")
+		if(!doDet)
+		    Cat(" skipped (!doDet): ")
+		else if(any(is.na(m.m)) && extends(cld, "triangularMatrix"))
+		    Cat(" skipped: is triang. and has NA: ")
+		else
+		    stopifnot(eqDeterminant(m, m.m, NA.Inf.ok=TRUE))
+		Cat("ok\n")
+	    }
+	} else assertError(determinant(m))
+    }# end{doOps}
+
+    if(doCoerce && do.matrix && canCoerce("matrix", clNam)) {
+	CatF("as(<matrix>, ",clNam,"): ", sep='')
+	m3 <- as(m.m, clNam)
+	Cat("valid:", validObject(m3), "\n")
+	## m3 should ``ideally'' be identical to 'm'
+    }
+
+    if(doCoerce2 && do.matrix) { ## not for large m:  !m will be dense
+	if(is.n) {
+	    mM <- if(nonMatr) as(m, Mcl) else m
+	    stopifnot(identical(mM, as(as(m, "dMatrix"),"nMatrix")),
+		      identical(mM, as(as(m, "lMatrix"),"nMatrix")),
+		      identical(which(m), which(m.m)))
+	}
+	else if(extends(cld, "lMatrix")) { ## should fulfill even with NA:
+	    stopifnot(all(m | !m | ina), !any(!m & m & !ina))
+	    if(extends(cld, "TsparseMatrix")) # allow modify, since at end here
+		m <- uniqTsparse(m, clNam)
+	    stopifnot(identical(m, m & TRUE),
+		      identical(m, FALSE | m))
+	    ## also check the  coercions to [dln]Matrix
+	    m. <- if(isSparse && has0) n0m else m
+	    m1. <- m. # replace NA by 1 in m1. , carefully not changing class:
+	    if(any(ina)) m1.@x[is.na(m1.@x)] <- TRUE
+	    stopifnot(identical(m. , as(as(m. , "dMatrix"),"lMatrix")),
+		      clNam == "ldiMatrix" || # <- there's no "ndiMatrix"
+		      ## coercion to n* and back: only identical when no extra 0s:
+		      identical(m1., as(as(m1., "nMatrix"),"lMatrix")),
+		      identical(which(m), which(m.m)))
+	}
+	else if(extends(cld, "dMatrix")) {
+	    m. <- if(isSparse && has0) n0m else m
+	    m1 <- (m. != 0)*1
+	    if(!isSparse && substr(clNam,1,3) == "dpp")
+		## no "nppMatrix" possible
+		m1 <- unpack(m1)
+
+	    m1. <- m1 # replace NA by 1 in m1. , carefully not changing class:
+	    if(any(ina)) m1.@x[is.na(m1.@x)] <- 1
+	    ## coercion to n* (nz-pattern!) and back: only identical when no extra 0s and no NAs:
+	    stopifnot(Q.C.identical(m1., as(as(m., "nMatrix"),"dMatrix"),
+				    isSparse, checkClass = FALSE),
+		      Q.C.identical(m1 , as(as(m., "lMatrix"),"dMatrix"),
+				    isSparse, checkClass = FALSE))
+	}
+
+	if(extends(cld, "triangularMatrix")) {
+	    mm. <- m
+	    i0 <- if(m@uplo == "L")
+		upper.tri(mm.) else lower.tri(mm.)
+	    n.catchWarn <- if(is.n) suppressWarnings else identity
+	    n.catchWarn( mm.[i0] <- 0 ) # ideally, mm. remained triangular, but can be dge*
+	    CatF("as(<triangular (ge)matrix>, ",clNam,"): ", sep='')
+	    tm <- as(as(mm., "triangularMatrix"), clNam)
+	    Cat("valid:", validObject(tm), "\n")
+	    if(m@uplo == tm@uplo) ## otherwise, the matrix effectively was *diagonal*
+		## note that diagU2N(<dtr>) |-> dtC :
+		stopifnot(Qidentical(tm, as(diagU2N(m), clNam)))
+	}
+	else if(isDiag) {
+
+	    ## TODO
+
+	} else {
+
+	    ## TODO
+	}
+    }# end {doCoerce2 && ..}
+
+    if(doCoerce && isSparse) { ## coerce to sparseVector and back :
+	v <- as(m, "sparseVector")
+	stopifnot(length(v) == prod(d))
+	dim(v) <- d
+	stopifnot(Q.eq2(m, v))
+    }
+
+    invisible(TRUE)
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/NEWS.Rd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/NEWS.Rd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/NEWS.Rd	(revision 2476)
@@ -0,0 +1,731 @@
+% Check from R:
+%  news(db = tools:::.build_news_db_from_package_NEWS_Rd("~/R/Pkgs/Matrix/inst/NEWS.Rd"))
+\name{NEWS}
+\title{News for \R Package \pkg{Matrix}}% MM: look into ../svn-log-from.all
+\encoding{UTF-8}
+%% as long as not R >= 3.2.0, ~/R/D/r-devel/R/share/Rd/macros/system.Rd :
+\newcommand{\CRANpkg}{\href{http://CRAN.R-project.org/package=#1}{\pkg{#1}}}
+\newcommand{\sspace}{\ifelse{latex}{\out{~}}{ }}
+%% NB: The date (yyyy-mm-dd) is the "Packaged:" date in ../DESCRIPTION
+
+%%_NOT YET__FIXME_   needs cholmod_l_dense_to_sparse() in our dense_to_Csparse()
+%% \item \code{as(<large-matrix>, "sparseMatrix")} no longer fails
+%%  when \code{prod(dim(.))} is larger than \eqn{2^{31} - 1}.
+
+\section{Changes in version 1.2-7.1 (2016-08-29, svn r3187)}{
+  \itemize{ \item in C code, protect _POSIX_C_SOURCE by #ifdef __GLIBC__ }
+}
+\section{Changes in version 1.2-7 (2016-08-27, svn r3185)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{cBind()} and \code{rBind()} have been almost silently
+      deprecated in \R \code{>= 3.2.0} and now give a warning,
+      \dQuote{once per session} only.
+
+      \item \code{bandSparse(*, k=k, *)} now returns matrices inheriting from
+      \code{"triangularMatrix"} when obvious from the diagonal indices \code{k}.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item \code{KhatriRao(X,Y)} now also works when \code{X} or
+      \code{Y} is completely zero.
+    }
+  }
+}
+
+\section{Changes in version 1.2-6 (2016-04-27, svn r3175)}{
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item The 0-dim. Matrix multiplication fix in 1.2-5 did trigger
+      wrong warnings in other diagonal matrix multiplications.
+    }
+  }
+}
+
+\section{Changes in version 1.2-5 (2016-04-14, svn r3170)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{isSymmetric(m)} now also works for \code{"indMatrix"} \code{m}.
+      \item \code{isSymmetric(m)} is faster for large dense asymmetric matrices.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item Matrix multiplications (\code{A \%*\% B}) now work correctly
+      when one of the matrices is diagonal and the other has a zero dimension.
+    }
+  }
+}
+
+\section{Changes in version 1.2-4 (2016-02-29, svn r3162)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{sparseMatrix()} gets new argument \code{triangular}
+      and a smarter default for \code{dims} when \code{symmetric} or
+      \code{triangular} is true.
+      \item \code{as(<sparse>, "denseMatrix")} now works in more cases
+      when \code{prod(dim(.))} is larger than \eqn{2^{31} - 1}.
+      Hence, e.g., \code{!S} now works for much larger sparse matrices
+      \code{S}.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item creating very large dense matrices, e.g., by
+      \code{as(<sparseM.>, "matrix")} would segfault (in case it could
+      allocate enough storage).
+    }
+  }
+}
+
+\section{Changes in version 1.2-3 (2015-11-19, svn r3155)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{MatrixClass()} is exported now.
+      \item More exports of semi-internal functions (for speed, named
+      \code{".<foo>"}, i.e., inofficial API), such as \code{.solve.dgC.lu()}.
+      \item more Korean translations
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item Packages \emph{linking} to \pkg{Matrix} (\code{LinkingTo:}
+      in \file{DESCRIPTION}) now find
+      \samp{alloca} properly defined in \file{Matrix.h} even for non-GNU
+      compilation environments such as on Solaris or AIX.
+
+      \item extended "n?CMatrix" classes (e.g., from \code{setClass(.,
+	contains="ngCMatrix")}) now can be coerced via \code{as(.)} to
+      \code{"d.CMatrix"}.
+
+      \item The printing of largish sparse matrices is improved, notably
+      in the case where columns are suppressed, via new \code{fitWidth =
+	TRUE} option in \code{printSpMatrix2()}. %%% FIXME __ EXAMPLES __
+
+      \item \code{cbind2()} and \code{rbind2()} no longer fail to
+      determine \code{sparse} when it is unspecified and hence
+      \code{NA}, fixing R-forge bug #6259.
+    }
+  }
+}
+
+\section{Changes in version 1.2-2 (2015-07-03, svn r3131)}{
+  \subsection{New Features}{
+    \itemize{
+      \item Explicitly import from \dQuote{base} packages such as \code{"stats"}.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item Our \code{colSums(x)}, \code{rowMeans(y)}, \dots, methods
+      now \dQuote{keep names}, i.e., if the result is a numeric vector,
+      and the matrix \code{x} has column or row names, these become the
+      \code{names(.)} of the result, fixing R-forge bug #6018.
+    }
+  }
+}
+
+\section{Changes in version 1.2-1 (2015-05-30, svn r3127)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{"Matrix"} now has an \code{initialization()} method
+      coercing 0-length dimnames components to \code{NULL} and other
+      non-\code{NULL} dimnames to \code{character}.  Before, e.g.,
+      numeric dimnames components partially worked, even though it has
+      always been documented that non-\code{NULL} dimnames should be
+      \code{character}.
+      \item For \code{symmetricMatrix} objects which have symmetrical
+      dimnames by definition, it is allowed to only set one half of the
+      \code{dimnames} to save storage, e.g., \code{list(NULL, nms)} is
+      \emph{semantically} equivalent to \code{list(nms, nms)}.
+
+      \item \code{as.vector(<sparseVector>)} etc, now work, too.
+      \item \code{lu(\emph{<sparseMatrix>})} now keeps \code{dimnames}.
+      \item better \file{NEWS.Rd} (which pleases Kurt and \command{tidy} ;-)
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item \code{S[] <- T} and \code{S[] <- spV} now work (in more cases)
+      for sparse matrices S, T and sparseVector \code{spV}.
+      \item Huge dense matrix multiplication did lead to segfaults, see
+      R-help, \dQuote{does segfault mean (always) a bug?}, May 5, 2015.
+      Fixed by using C's Alloca() only in smallish cases.
+      \item Optional arguments in \code{image()}, e.g., \code{main=
+	<..>)} now also work for \code{lgCMatrix}, \code{nMatrix} etc;
+      thanks to a 4.5 years old report by Mstislav Elagin.
+      \item \code{dimnames(A) <- val} now resets the \code{factors} slot
+      to empty, as the factorizations now keep dimnames more often.
+      \item \code{crossprod(<matrix>, Diagonal(<n>))} works again (and
+      these are tested more systematically).
+      \item Matrix products (\code{\%*\%}, \code{crossprod}, and
+      \code{tcrossprod}) for \code{"dtrMatrix"} are correct in all
+      cases, including keeping dimnames.
+      \item \code{Matrix(d)} (and other coercions to \code{"Matrix"})
+      now correctly keeps \code{dimnames} also when \code{d} is a
+      traditional \emph{diagonal} \code{"matrix"}.
+    }
+  }
+}
+
+\section{Changes in version 1.2-0 (2015-04-03, svn r3096)}{
+  \subsection{New Features}{
+    \itemize{
+      \item New \code{\%&\%} for \dQuote{boolean arithmetic} matrix product.
+      \item New argument \code{boolArith = NA} in \code{crossprod()} and
+      \code{tcrossprod()}.  \code{boolArith = TRUE} now forces boolean
+      arithmetic, where \code{boolArith = FALSE} forces numeric one.
+
+      Several of these products are more efficient thanks to new C
+      functionality based on our new \code{chm_transpose_dense()}, and
+      others based on \code{geMatrix_crossprod},
+      \code{geMatrix_matrix_mm}, etc.
+
+      \item Most dense matrix products, also for non-\code{dgeMatrix},
+      including \code{"l..Matrix"} and \code{"n..Matrix"} ones are now
+      directly handled by new \code{.Call()}s.
+
+      \item \code{"dMatrix"} (numeric) and \code{"lMatrix"} (logical)
+      matrices can now be coerced to \code{"nMatrix"} (non-zero pattern
+      or \dQuote{boolean}) even when they contain \code{NA}s, which then
+      become \code{TRUE}s.
+
+      \item More thorough checking of \code{cbind2()} and
+      \code{rbind2()} methods, notably as they are called from \code{cbind()}
+      and \code{rbind()} from \R version 3.2.0 on.
+
+      \code{rbind2(<dense>, <dense>)} is faster, being based on new C code.
+
+      \item symmetric Matrices (i.e., inheriting from
+      \code{"symmetricMatrix"}) are allowed to have \code{dimnames} of
+      the form \code{list(NULL, <names>)} \emph{and} now print correctly
+      and get correctly coerced to general matrices.
+
+      \item \code{indMatrix} object (\dQuote{index matrices}) no longer
+      need to be \dQuote{skinny}.
+
+      \item \code{rsparseMatrix()} now accepts \code{rand.x = NULL} and
+      then creates a random \emph{patter\bold{n}} matrix
+      (\code{"nsparseMatrix"}).
+
+      \item \code{anyDuplicatedT()} and \code{uniqTsparse()} low level
+      utilities are exported now.
+
+      \item Partial Korean translations of messages.
+    }
+  }
+  \subsection{Deprecation}{
+    \itemize{
+      \item For \eqn{R \ge 3.2.0}, \code{cBind()} and \code{rBind()}
+      are deprecated, as they are no longer needed since \code{cbind()}
+      and \code{rbind()} do work automatically.
+    }
+  }
+
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item Fix some \code{rbind2()} methods.
+      \item \code{t()} now transposes the dimnames even for symmetric
+      matrices.
+      \item \code{diag(M) <- val} did not always recycle \code{val} to
+      full length, e.g., when \code{M} was a \code{"dtrMatrix"}.
+      \item \code{crossprod(<indMatrix>)} was wrong in cases where the
+      matrix had all-zero columns.
+      \item Matrix products (\code{\%*\%}, \code{crossprod}, and
+      \code{tcrossprod}) with one sparse and one dense argument now
+      return \emph{numeric} (a \code{"dMatrix"}) when they should, i.e.,
+      unless the new setting \code{boolArith = TRUE} is applied.
+    }
+  }
+}
+
+\section{Changes in version 1.1-5 (2015-01-18, svn r3037)}{
+  \subsection{New Features}{
+    \itemize{
+      \item More use of \code{anyNA()} (for speedup).
+      \item Matrix products (\code{\%*\%}, \code{crossprod},
+      \code{tcrossprod}) now behave compatibly to \R 3.2.0, i.e., more
+      lenient in matching dimensions for matrix - vector products.
+      \item \code{isTriangular()} gets new optional argument \code{upper = NA}.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item \code{crossprod()} and \code{tcrossprod()} fixes for
+      several <diagonal> o <sparse> combinations.
+      \item \code{rowMeans(<dgeMatrix>, na.rm=TRUE)} was wrong sometimes.
+      \item fix and speedup of coercions (\code{as(., .)}) from and to
+      symmetric or triangular matrices.
+      \item \code{invPerm()} coercion to integer
+      \item \code{dimnames( solve(.,.) )} fix [r3036]
+      \item \code{tril()} and \code{triu()} now return correct \code{uplo}.
+      \item \code{names(dimnames(.))} now preserved, e.g. in
+      \code{symmpart()} or subsetting (\code{A[i,j]}).
+    }
+  }
+}
+
+\section{Changes in version 1.1-4 (2014-06-14, svn r2994)}{
+  \subsection{New Features}{
+    \itemize{
+      \item new \code{rsparsematrix()} for random sparse Matrices.
+      \item improved warnings, notably for unused arguments previously
+      swallowed into \code{...}.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item \code{crossprod(<vec>, <dsyMatrix>)} fixed.
+      \item \code{crossprod()} and \code{kronecker()} fixes for some
+      <indMatrix> cases.
+    }
+  }
+}
+
+\section{Changes in version 1.1-3 (2014-03-30, svn r2982)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{\%*\%} and \code{crossprod()} now also work with
+      \code{sparseVector}s.
+      \item speedup of \code{crossprod(v, <sparseM>)}, thanks to nudge
+      by Niels Richard Hansen.
+      \item new help page for all such matrix products
+      (\file{../man/matrix-products.Rd}).
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item \code{image()} now gets correct \code{ylim} again.
+      \item More consistent matrix products.
+    }
+  }
+}
+
+\section{Changes in version 1.1-2-2 (2014-03-04, svn r2966)}{
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item correct adaption to \R 3.1.0
+      \item using \code{tolerance} (and not \sQuote{tol}) in \code{all.equal()}
+    }
+  }
+}
+
+\section{Changes in version 1.1-2 (2014-01-28, svn r2962)}{
+  \subsection{New Features}{
+    \itemize{
+      \item export fast power-user coercion utilities
+      \code{.dsy2mat()}, \code{.dxC2mat()}, \code{.T2Cmat()}, \code{..2dge()}.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item matrix products now (mostly) work with \code{sparseVector}s;
+      and correctly in some more cases.
+    }
+  }
+}
+
+\section{Changes in version 1.1-1.1 (2013-12-30, svn r2957)}{
+    \itemize{
+      \item Testing code's \code{assertWarning()} adapted for \eqn{R \le 3.0.1}.
+      \item \code{Depends: R >= 2.15.2} eases checking.
+    }
+}
+
+\section{Changes in version 1.1-1 (2013-12-28)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{image(.., xlim, ylim)}: nicer defaults %% ../R/dgTMatrix.R
+      for the axis limits, and \code{ylim} is sorted decreasingly; not
+      strictly back-compatible but should never harm.
+      \item \code{rankMatrix(*, method="qr")} now using \code{tol}
+      \item \code{T2graph()} and \code{graph2T()} export old functionality explicitly.
+      Tweaks in conversions between \code{"graph"} and
+      \code{"sparseMatrix"} objects.  Notably, \code{as(<graph>,
+	<Matrix>)} now more often returns a (0/1 pattern) "n..Matrix".
+      \item \code{sparseMatrix()}: new \code{use.last.ij} argument.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item \code{KhatriRao()}: fix rownames (X <-> Y)
+      \item \code{qr.coef()}, \code{qr.fitted}, and \code{qr.resid} now
+      also work with \emph{sparse} RHS \code{y}.
+      \item sparse matrix \dQuote{sub assignments}, e.g., \code{M[ii] <- v},
+      speedup and fixes.
+      \item bug fixes also in \code{M[negative indices] <- value} and
+      \code{<sparseMatrix>[cbind(i,j)]}.
+    }
+  }
+}
+
+\section{Changes in version 1.1-0 (2013-10-21, svn r2930)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{fac2sparse} and \code{fac2Sparse} now exported, with a
+      new \code{giveCsparse} option.
+      \item Update to latest \command{SuiteSparse} C library by Tim Davis,
+      U. Florida.
+      \item ensuing \dQuote{C API changes}
+      \item new \code{.SuiteSparse_version()} function
+      \item Many \sQuote{Imports:} instead of \sQuote{Depends:}.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item fixed long lasting undetected \code{solve(<dsCMatrix>, *)}
+      bug.
+      \item Our \code{all.equal()} methods no longer sometimes return
+      \code{c("TRUE", "....difference..")}.
+      \item \code{rankMatrix(<matrix>)}: fix the internal \code{x.dense}
+      definition.
+    }
+  }
+}
+
+\section{Changes in version 1.0-14 (2013-09-12, svn r2907)}{
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item Revert some wrong changes to \code{solve(<sparse>, *)} from
+      1.0-13 (\dQuote{stop gap fix} for \R 3.0.2).
+    }
+  }
+}
+
+\section{Changes in version 1.0-13 (2013-09-10, svn r2904)}{
+  \subsection{New Features}{
+    \itemize{
+      \item New (efficient) \code{KhatriRao()} function by Michael Cysouw
+      \item New \code{"indMatrix"} class of \dQuote{index matrices}, a
+      generalization of \code{"pMatrix"}, the permutation matrices, many
+      methods generalized from pMatrix to indMatrix.  All (initial)
+      functionality contributed by Fabian Scheibl, Univ.\sspace{} Munich.
+      \item Export and document \code{isDiagonal()} and
+      \code{isTriangular()} as they are useful outside of \pkg{Matrix}.
+      \item \code{rankMatrix(M, method="qr")} no longer needs
+      \code{sval} which makes it considerably more useful for large
+      sparse \code{M}.
+      \item Start providing \code{anyNA} methods for \eqn{R >= 3.1.0}.
+      \item \code{solve(<sparse> a, <sparse> b)}: if \code{a} is
+      symmetric, now compute \emph{sparse} result.
+      \item \code{nearPD()} gets new option \code{conv.norm.type = "I"}.
+      \item \code{determinant(<dpoMatrix>)} now uses \code{chol()}, and
+      hence also an existing (\sQuote{cached}) Cholesky factor.
+      \item 3 new \code{C -> R} utilities (including hidden \R function
+      \code{.set.factors()} for caching also from \R, not just in C).
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item \code{M[] <- v} for unitriangular \code{M} now correct.
+      \item \code{lu(.)} no longer sometimes returns unsorted columns.
+    }
+  }
+}
+
+\section{Changes in version 1.0-12 (2013-03-26, svn r2872)}{
+  \subsection{New Features}{
+    \itemize{
+      \item .
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+
+\section{Changes in version 1.0-11 (2013-02-02)}{
+  \subsection{New Features}{
+    \itemize{
+      \item .
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item \code{as(<csr>, "dgCMatrix")} (from package \CRANpkg{SparseM})
+      now works again.
+      \item .
+    }
+  }
+}
+
+\section{Changes in version 1.0-10 (2012-10-22)}{
+  \subsection{New Features}{
+    \itemize{
+      \item \code{.sparseDiagonal()}: new \code{unitri} argument, and
+      more flexibility;
+      \item new \code{solve(<dsCMatrix>, <missing>)} via efficient C code.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+\section{Changes in version 1.0-9 (2012-09-05)}{
+  \subsection{New Features}{
+    \itemize{
+      \item new \code{sparseVector()} constructor function.
+      \item \code{is.finite()} \code{is.infinite()} now work for our
+      matrices and "*sparseVector" objects.
+      \item \code{diag(.) <- V} now preserves symmetricity,
+      triangularity and even uni-triangularity sometimes.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item Quite a few fixes for \code{Ops} (arithmetic, logic, etc)
+      group methods.
+      \item Ditto for \code{diagonalMatrix} methods.
+    }
+  }
+}
+
+\section{Changes in version 1.0-6 (2012-03-16, publ. 2012-06-18)}{
+  \subsection{New Features}{
+    \itemize{
+      \item .
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+\section{Changes in version 1.0-5 (2012-03-15)}{
+  \subsection{New Features}{
+    \itemize{
+      \item .
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+\section{Changes in version 1.0-4 (2012-02-21)}{
+  \subsection{New Features}{
+    \itemize{
+      \item .
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+\section{Changes in version 1.0-3 (2012-01-13)}{
+  \subsection{New Features}{
+    \itemize{
+      \item .
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+\section{Changes in version 1.0-2 (2011-11-19)}{
+  \subsection{New Features}{
+    \itemize{
+      \item .
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+\section{Changes in version 1.0-1 (2011-10-18)}{
+  \subsection{New Features}{
+    \itemize{
+      \item .
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+\section{Changes in version 1.0-0 (2011-10-04)}{
+  \subsection{New Features}{
+    \itemize{
+      \item .
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+\section{Changes in version 0.9996875-3 (2011-08-13)}{
+  \subsection{New Features}{
+    \itemize{
+      \item .
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+\section{Changes in version 0.9996875-2 (2011-08-09)}{
+  \subsection{New Features}{
+    \itemize{
+      \item .
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+\section{Changes in version 0.9996875-1 (2011-08-08)}{
+  \subsection{New Features}{
+    \itemize{
+      \item .
+    }
+  }
+
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+\section{Changes in version 0.999375-50 (2011-04-08)}{
+  \subsection{New Features}{
+    \itemize{
+      \item .
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+
+% How can I add vertical space ?
+
+% \preformatted{} is not allowed, nor is \cr
+
+
+
+
+
+%--------------- start of DB+MM history: ------------------------
+
+\section{Changes in version 0.95-1 (2005-02-18, svn r561)}{
+  \subsection{Authorship}{
+    \itemize{
+      \item During Doug Bates' sabbatical in Zurich,
+      Martin Maechler becomes co-author of the \pkg{Matrix} package.
+    }
+  }
+  \subsection{New Features}{
+    \itemize{
+      \item Beginning of class reorganization with a more systematic
+      naming scheme.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item More (correct) coercions \code{as(<from>, <to>)}.
+    }
+  }
+}
+
+\section{Changes in version 0.9-1 (2005-01-24, svn r451)}{
+  \subsection{New Features}{
+    \itemize{
+      \item lme4 / lmer specific R code moved out to \CRANpkg{lme4} package.
+    }
+  }
+  \subsection{Bug Fixes}{
+    \itemize{
+      \item .
+    }
+  }
+}
+
+
+
+
+% How can I add vertical space ?  ( \preformatted{} is not allowed, nor is \cr )
+
+
+%--------------- pre-pre-history: ------------------------
+
+\section{Changes in version 0.8-2 (2004-04-06, svn r51)}{
+  \subsection{Authorship}{
+    \itemize{
+      \item Doug Bates (only)
+    }
+  }
+  \subsection{New Features}{
+    \itemize{
+      \item Sparse matrices, classes and methods, partly via
+      \item Interface to LDL, TAUCS, Metis and UMFPACK C libraries
+    }
+  }
+}
+
+% How can I add vertical space ? .................................
+
+
+\section{Version 0.2-4}{
+\subsection{..., 0.3-1, 0.3-n (n=3,5,...,26): 22 more CRAN releases}{
+  \itemize{ \item ............................................. } }}
+
+% How can I add vertical space ?
+% \preformatted{} is not allowed, nor is \cr
+
+
+
+\section{Version 0.2-1 (2000-07-15)}{
+  The first CRAN release of the \pkg{Matrix} package,
+  titled \dQuote{A Matrix library for R} authored by
+  Douglas Bates (maintainer, principal author) and Saikat DebRoy.
+  \subsection{Features}{
+    \itemize{
+      \item \code{Matrix()} constructor for \R objects of class \code{Matrix}.
+      \item \code{Matrix.class()} returning informal subclasses such as
+      \code{"Hermitian"}, \code{"LowerTriangular"}
+      \item \code{is.Orthonormal()}, \code{is.Hermitian()} ,
+      \code{is.UpperTriangular()} functions.
+      \item \code{SVD()}, \code{lu()}, and \code{schur()} decomposition
+      generics with \code{"Matrix"} methods.
+      \item \code{rcond()}, \code{norm()}, \code{det()};
+      \code{expand()} and \code{facmul()}.
+
+      \item C++ interface to LAPACK
+    }
+  }
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/DESCRIPTION	(revision 2476)
@@ -0,0 +1,25 @@
+Package: Matrix
+Version: 1.2-7.1
+Date: 2016-08-29
+Priority: recommended
+Title: Sparse and Dense Matrix Classes and Methods
+Author: Douglas Bates <bates@stat.wisc.edu> and Martin Maechler
+Maintainer: Martin Maechler <mmaechler+Matrix@gmail.com>
+Contact: Doug and Martin <Matrix-authors@R-project.org>
+Description: Classes and methods for dense and sparse matrices and
+    operations on them using 'LAPACK' and 'SuiteSparse'.
+Depends: R (>= 3.0.1)
+Imports: methods, graphics, grid, stats, utils, lattice
+Suggests: expm, MASS
+Enhances: MatrixModels, graph, SparseM, sfsmisc
+Encoding: UTF-8
+LazyData: no
+LazyDataNote: not possible, since we use data/*.R *and* our classes
+BuildResaveData: no
+License: GPL (>= 2) | file LICENCE
+URL: http://Matrix.R-forge.R-project.org/
+NeedsCompilation: yes
+Packaged: 2016-08-30 11:21:22 UTC; maechler
+Repository: CRAN
+Date/Publication: 2016-09-01 12:23:14
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:34:10 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/Doxyfile
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/Doxyfile	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/Doxyfile	(revision 2476)
@@ -0,0 +1,2392 @@
+# Doxyfile 1.8.10
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME           = Matrix
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER         = "$Rev: 3170 $ at $LastChangedDate: 2016-04-14 17:28:33 +0200 (Thu, 14 Apr 2016) $"
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          =
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO           =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = ../../../www/doxygen
+
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS         = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES    = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF       =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC    = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES        = NO
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH        =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF      = YES
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES                =
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST              =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT       = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT       = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING            = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS  = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO, these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES, upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC  = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS        = YES
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
+# list will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES        = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE            =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES         =
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS               = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, doxygen will only warn about wrong or incomplete
+# parameter documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT            = "$file:$line: $text "
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+# Note: If this tag is empty the current directory is searched.
+
+INPUT                  = ../src
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd,
+# *.vhdl, *.ucf, *.qsf, *.as and *.js.
+
+FILE_PATTERNS          =
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH           =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS       =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES    = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION    = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS        = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX     = NO
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX          =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT            = .
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET        =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET  =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES       =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP         = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET        = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP      = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE               =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION           =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the master .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI           = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING     =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE          =
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX          = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW      = YES
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE   = 8
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH         = 250
+
+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT    = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX            = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT         = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS     =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE       =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE           = NO
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH    = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH        = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL       =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE        = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID     =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS  =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+# The default value is: YES.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PAPER_TYPE             = letter
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
+# string, for the replacement values of the other commands the user is referred
+# to HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER           =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER           =
+
+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# LaTeX style sheets that are included after the standard style sheets created
+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
+# will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_STYLESHEET =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES      =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES, to get a
+# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BATCHMODE        = YES
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HIDE_INDICES     = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE      = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE        = plain
+
+# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_TIMESTAMP        = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE    =
+
+# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
+# with syntax highlighting in the RTF output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_SOURCE_CODE        = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_EXTENSION          = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR             =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_OUTPUT             = xml
+
+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK       = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT         = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+# AutoGen Definitions (see http://autogen.sf.net) file that captures the
+# structure of the code including all documentation. Note that this feature is
+# still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO, the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+# in the source code. If set to NO, only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED             =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+# the class index. If set to NO, only the inherited external classes will be
+# listed.
+# The default value is: NO.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
+EXTERNAL_GROUPS        = YES
+
+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES         = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
+CLASS_DIAGRAMS         = NO
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH               =
+
+# If set to YES the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
+
+HAVE_DOT               = YES
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS        = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME           = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CLASS_GRAPH            = NO
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LOOK               = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS   = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDE_GRAPH          = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALL_GRAPH             = YES
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH           = YES
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_IMAGE_FORMAT       = png
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG        = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS           =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS           =
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS           =
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+
+PLANTUML_JAR_PATH      =
+
+# When using plantuml, the specified paths are searched for files specified by
+# the !include statement in a plantuml block.
+
+PLANTUML_INCLUDE_PATH  =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS      = YES
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_CLEANUP            = YES
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/Copyrights
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/Copyrights	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/Copyrights	(revision 2476)
@@ -0,0 +1,58 @@
+The files src/iohb.[ch] are available at 
+http://math.nist.gov/~KRemington/harwell_io/ and carry the following
+copyright
+
+  Fri Aug 15 16:29:47 EDT 1997
+
+			 Harwell-Boeing File I/O in C
+				  V. 1.0
+
+	     National Institute of Standards and Technology, MD.
+			       K.A. Remington
+
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+				  NOTICE
+
+   Permission to use, copy, modify, and distribute this software and
+   its documentation for any purpose and without fee is hereby granted
+   provided that the above copyright notice appear in all copies and
+   that both the copyright notice and this permission notice appear in
+   supporting documentation.
+
+   Neither the Author nor the Institution (National Institute of Standards
+   and Technology) make any representations about the suitability of this 
+   software for any purpose. This software is provided "as is" without 
+   expressed or implied warranty.
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+The files src/mmio.[ch] are available through 
+http://math.nist.gov/MatrixMarket/mmio-c.html and carry the following
+copyright
+
+  Fri Aug 15 16:29:47 EDT 1997
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+      Matrix Market I/O library for ANSI C
+      Roldan Pozo, NIST (pozo@nist.gov)
+
+      See http://math.nist.gov/MatrixMarket for details and sample
+      calling programs.
+
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+				  NOTICE
+
+   Permission to use, copy, modify, and distribute this software and
+   its documentation for any purpose and without fee is hereby granted
+   provided that the above copyright notice appear in all copies and
+   that both the copyright notice and this permission notice appear in
+   supporting documentation.
+
+   Neither the Author nor the Institution (National Institute of Standards
+   and Technology) make any representations about the suitability of this 
+   software for any purpose. This software is provided "as is" without 
+   expressed or implied warranty.
+  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+The function mm_read_banner in mmio.c has been edited to conform with
+the definitions of constants in mmio.h.  (String constants in mmio.h
+are in lower case and variables containing strings were being
+converted to upper case before being compared to the constants.)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/NAMESPACE	(revision 2476)
@@ -0,0 +1,350 @@
+useDynLib(Matrix, .registration=TRUE)
+
+## Import functions we need explicitly, notably for which we define methods:
+importFrom("grDevices", colorRampPalette, grey)
+importFrom("graphics", par, image)
+importFrom("grid", grid.rect, gpar, grob)# others via 'grid::'
+importFrom("lattice", levelplot, panel.levelplot.raster)
+
+importFrom("utils", str, head, tail, assignInNamespace, capture.output)
+importFrom("stats"
+         , "contrasts<-", cov2cor
+         , diffinv, model.frame, rnorm, runif
+         , symnum, terms
+         , toeplitz, update#, vcov
+           )
+
+## try to import all we need, but not more
+importFrom("methods"
+	   ## still needed {group generics needed to be explicitly imported} ?
+         , Ops, Arith, Compare, Logic, Math, Math2, Summary, Complex
+	   ## generics for which we export new methods:
+         , cbind2, rbind2, coerce, show
+         , kronecker
+	   ## things we call,.. necessary when Matrix is loaded, but not attached, as in
+	   ## Rscript --vanilla -e 'require(methods);(M <- Matrix::Matrix(0:1,3,3));as(M,"sparseMatrix")'
+         , as, is, extends, new
+         , callGeneric, callNextMethod
+         , .selectSuperClasses, .slotNames, canCoerce, packageSlot
+         , getClass, getClassDef, validObject
+         , setClass, setClassUnion, setMethod, setOldClass
+         , setValidity, slot, "slot<-", slotNames, .hasSlot
+         , signature, representation, prototype)
+
+
+
+## Generics and functions defined in this package
+export("%&%",
+       "Cholesky", ".SuiteSparse_version",
+       "Diagonal", ".symDiagonal", ".sparseDiagonal",
+       "Hilbert", "KhatriRao",
+       "Matrix",
+       "MatrixClass",
+       "spMatrix",
+       "sparseMatrix", "rsparsematrix",
+       "Schur",
+       "abIseq", "abIseq1", "rep2abI",
+       "band",
+       "bandSparse",
+       "bdiag", ".bdiag",
+## no longer; implicit generics now
+       ## "colMeans", "colSums", ## these needed a "..." added
+       ## "rowMeans", "rowSums",
+       "condest", "onenormest",
+       "det",# << "identical" as base - but with correct determinant()
+       ## "mkDet", # <- useful in other packages (Rmpfr, gmp) .. hmm --> 'stats' ?
+       ## FIXME: why exactly these and not e.g. dsp2dsy and many more?
+       ".dsy2mat", ".dsy2dsp", ".dxC2mat", ".T2Cmat", "..2dge", ".dense2sy",
+       ".C2nC", ".nC2d", ".nC2l",
+       ".diag.dsC",# -> R/dsCMatrix.R --has FIXME
+       .solve.dgC.chol, .solve.dgC.qr, .solve.dgC.lu,
+       "diagN2U", "diagU2N", ".diagU2N", ".diag2tT", ".diag2sT", ".diag2mat",
+       "drop0",
+       "expand",
+       "expm",
+       "facmul", "fac2sparse", "fac2Sparse",
+       "forceSymmetric",
+       "T2graph", "graph2T", ## <- 'graph' package (and class) related
+       "anyDuplicatedT", "uniqTsparse",
+       "isTriangular",
+       "isDiagonal",
+       "isLDL",
+       "is.null.DN",
+       "invPerm",
+       "lu",
+       "nearPD",
+       "nnzero",
+       "formatSpMatrix", "formatSparseM", ".formatSparseSimple",
+       "printSpMatrix",
+       "printSpMatrix2",
+       "qrR",
+       "rankMatrix",
+       "readHB",
+       "readMM",
+       "sparse.model.matrix",
+       "sparseVector",
+       "symmpart",
+       "skewpart",
+       "tril", "triu",
+       "updown",
+       "pack", "unpack"
+       , ".updateCHMfactor"
+       , ".validateCsparse"
+       , "writeMM"
+       )
+if(getRversion() < "2.15.0")
+    export(".M.classEnv")
+
+## substitute for using  cbind() / rbind()
+## .Deprecated() for R version >= 3.2.0 [2015-04]:
+export("cBind",
+       "rBind")
+
+
+exportClasses(
+    ## Class unions:
+	      "index",
+	      "replValue", # if we don't export it, things fail in dispatch
+	      "atomicVector",
+	      "number",
+	      "xsparseVector", # the class union of all 'x' slot sparseVector's
+              ## not exported (but exporting does not help for method dispatch bug!)
+              ## "numLike",
+              ## "xMatrix",
+              ## "mMatrix",
+
+    ## all others:
+## LOGIC      "logic",
+	      "abIndex", "rleDiff",
+
+	      ## --- 'Matrix' mother and all its daughters : ---------------
+	      "Matrix",
+	      ## also intermediate `virtual' ones:
+	      "dMatrix",
+	      "lMatrix",
+	      "nMatrix",
+	      ## not yet used, but as sub-classes;
+	      ## must provide them for 'hierarchy-analysis':
+	      "iMatrix",
+	      "zMatrix",
+
+	      "denseMatrix",
+	      "sparseMatrix",
+
+	      "compMatrix",
+	      "diagonalMatrix",
+	      "generalMatrix",
+	      "symmetricMatrix",
+	      "triangularMatrix",
+
+	      "dsparseMatrix",
+	      "lsparseMatrix",
+	      "nsparseMatrix",
+	      "TsparseMatrix",
+	      "CsparseMatrix",
+	      "RsparseMatrix",
+	      "ddenseMatrix",
+	      "ldenseMatrix",
+	      "ndenseMatrix",
+
+	      "dgCMatrix",
+	      "dgRMatrix",
+	      "dgTMatrix",
+	      "dgeMatrix",
+	      "dpoMatrix",
+	      "dppMatrix",
+	      "dsCMatrix",
+	      "dsRMatrix",
+	      "dsTMatrix",
+	      "dspMatrix",
+	      "dsyMatrix",
+	      "dtCMatrix",
+	      "dtRMatrix",
+	      "dtTMatrix",
+	      "dtpMatrix",
+	      "dtrMatrix",
+	      "ddiMatrix",
+	      "lgeMatrix",
+	      "lspMatrix",
+	      "lsyMatrix",
+	      "ltpMatrix",
+	      "ltrMatrix",
+	      "ldiMatrix",
+	      "ngeMatrix",
+	      "nspMatrix",
+	      "nsyMatrix",
+	      "ntpMatrix",
+	      "ntrMatrix",
+
+	      "lgCMatrix",
+	      "lgRMatrix",
+	      "lgTMatrix",
+	      "lsCMatrix",
+	      "lsRMatrix",
+	      "lsTMatrix",
+	      "ltCMatrix",
+	      "ltRMatrix",
+	      "ltTMatrix",
+
+	      "ngCMatrix",
+	      "ngRMatrix",
+	      "ngTMatrix",
+	      "nsCMatrix",
+	      "nsRMatrix",
+	      "nsTMatrix",
+	      "ntCMatrix",
+	      "ntRMatrix",
+	      "ntTMatrix",
+
+	      "indMatrix", "pMatrix",
+
+	      "corMatrix", # unused
+
+	      ## --- inheriting "Matrix", but also factorizations:
+	      "BunchKaufman",
+	      "pBunchKaufman",
+	      "Cholesky",
+	      "pCholesky",
+	      ## "LDL",
+
+	      ## --- 'MatrixFactorization' mother and all its daughters : ---
+
+	      "MatrixFactorization",
+	      "CholeskyFactorization",
+
+	      "LU",
+	      "denseLU",
+	      "sparseLU",
+
+	      "CHMfactor",
+	      "CHMsuper",
+	      "CHMsimpl",
+	      "dCHMsuper",
+	      "dCHMsimpl",
+	      "nCHMsuper",# unused
+	      "nCHMsimpl",# unused
+
+	      "sparseQR",
+##	      "SPQR",
+
+	      "Schur",
+
+	      "sparseVector", ## --- and daughters : ---
+	      "dsparseVector",
+	      "isparseVector",
+	      "lsparseVector",
+	      "nsparseVector",
+	      "zsparseVector"
+	      )
+
+
+
+exportMethods(## for both own and "other" generics:
+
+	      ## Group Methods
+	      "Arith",
+	      "Compare",
+	      "Logic",
+	      "Math",
+	      "Math2",
+	      "Ops",
+	      "Summary",
+
+	      ## re-export S4 methods, for "stats"-S3-generics:
+	      "cov2cor",
+	      "toeplitz",
+	      "update",
+
+	      "!",
+	      "+",# for dgT(Matrix) only
+	      "%*%",
+
+	      "all",
+	      "any",
+	      "all.equal",
+
+	      "BunchKaufman",
+	      "Cholesky",
+	      "Schur",
+	      "as.array",
+	      "as.matrix",
+	      "as.vector",
+	      "as.numeric",
+	      "as.integer",
+	      "as.logical",
+	      "band",
+	      "chol",
+	      "chol2inv",
+	      "colMeans",
+	      "colSums",
+	      "coerce",
+	      "crossprod",
+	      "determinant",
+	      "diag", "diag<-",
+	      "diff",
+	      "dim",
+	      "dim<-",
+	      "dimnames",
+	      "dimnames<-",
+	      "drop",
+	      "expand",
+	      "expm",
+	      "format",
+	      "head",
+	      "image",
+	      "forceSymmetric",
+	      "isSymmetric",
+	      "is.na",
+	      "is.finite", "is.infinite",
+	      "kronecker",
+	      "length",
+	      "mean",
+	      "norm",
+	      "nnzero",
+	      "print",# print(x, ...) when show(x) is not sufficient
+	      "qr",
+	      "qr.R", "qr.Q",
+	      "qr.qy",
+	      "qr.qty",
+	      "qr.coef",
+	      "qr.resid",
+	      "qr.fitted",
+	      "rep",
+	      "rcond",
+	      "rowMeans",
+	      "rowSums",
+	      "show",
+	      "solve",
+##               "spqr",
+	      "summary",
+	      "symmpart",
+	      "skewpart",
+	      "t",
+	      "tail",
+	      "tcrossprod",
+	      "tril",
+	      "triu",
+	      "updown",
+	      "unname",
+	      "which",
+	      "zapsmall"
+	      )
+if(getRversion() >= "3.1.0")
+exportMethods("anyNA")
+
+
+exportMethods("rbind2")
+exportMethods("cbind2")
+
+S3method(print, sparseSummary)
+S3method(print, diagSummary)
+S3method(c, abIndex)# < for now -- S4 method on c() seems "difficult"
+
+## So that such dispatch also works inside base functions:
+S3method(as.array, Matrix)
+S3method(as.array, sparseVector)
+S3method(as.matrix, Matrix)
+S3method(as.matrix, sparseVector)
+S3method(as.vector, Matrix)
+S3method(as.vector, sparseVector)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/LICENCE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/LICENCE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/LICENCE	(revision 2476)
@@ -0,0 +1,711 @@
+Copyrights
+==========
+The Matrix package, an R package, available from CRAN or R-forge,
+consists of basically two parts.
+
+1. Matrix' own C code in src/*.[ch] (apart from cs.h and cs.c),
+   R code in R/*.R, including more in ./inst/ and ./tests/ and other
+   directories including vignettes, documentation etc.
+   All these have been created by Douglas Bates and Martin Maechler and
+   hence are
+
+   Copyright (C) 1999-2016 Douglas Bates and Martin Maechler
+
+2. The Matrix package includes libraries AMD, CHOLMOD,
+  COLAMD, CSparse and SPQR from the SuiteSparse collection of Tim
+  Davis.  All sections of that code are covered by the GPL or
+  LGPL licenses.  See the directory (inst/) doc/SuiteSparse/ for details.
+
+Douglas M. Bates, University of Wisconsin, Madison, bates@stat.wisc.edu
+Martin Maechler ETH Zurich,  maechler@stat.math.ethz.ch | maechler@r-project.org
+
+
+Licences
+========
+
+1. The Matrix package itself is licenced under "GPL-3", the GNU GENERAL
+   PUBLIC LICENCE Version 3, see "GPL-3" below.
+
+2. The licences of the libraries from the SuiteSparse collection mentioned
+   are included in the respective source directories.
+
+
+------------------
+
+GPL-3 : the following is == http://www.gnu.org/licenses/gpl-3.0.txt
+                               ---------------------------------------
+
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/sparseModels.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/sparseModels.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/sparseModels.Rnw	(revision 2476)
@@ -0,0 +1,294 @@
+\documentclass{article}
+%
+\usepackage{fullpage}
+\usepackage{myVignette}
+\usepackage[authoryear,round]{natbib}
+\bibliographystyle{plainnat}
+\newcommand{\noFootnote}[1]{{\small (\textit{#1})}}
+\newcommand{\myOp}[1]{{$\left\langle\ensuremath{#1}\right\rangle$}}
+%%\VignetteIndexEntry{Sparse Model Matrices}
+%%\VignetteDepends{Matrix,MASS}
+\title{Sparse Model Matrices}
+\author{Martin Maechler\\ R Core Development Team
+  \\\email{maechler@R-project.org}}
+\date{July 2007, 2008 ({\tiny typeset on \tiny\today})}
+%
+\begin{document}
+\maketitle
+\SweaveOpts{engine=R, keep.source=TRUE}
+\SweaveOpts{eps=FALSE, pdf=TRUE, width=8, height=5.5, strip.white=true}
+\setkeys{Gin}{width=\textwidth}
+
+% \begin{abstract}
+%  ............................ FIXME
+% \end{abstract}
+
+%% Note: These are explained in '?RweaveLatex' :
+<<preliminaries, echo=FALSE>>=
+options(width=75)
+@
+\section*{Introduction}
+Model matrices in the very widely used (generalized) linear models
+of statistics, (typically fit via \Rfun{lm} or \Rfun{glm} in \RR) are often
+practically sparse --- whenever categorical predictors, \code{factor}s in
+\RR, are used.
+
+%% FIXME:  Introduce  lm.fit.sparse()  or not ?
+
+We show for a few classes of such linear models how to construct sparse
+model matrices using sparse matrix (S4) objects from the \pkg{Matrix}
+package, and typically \emph{without} using dense matrices in intermediate
+steps. %% only the latter is really novel, since "SparseM" (and others)
+%% have  used the equivalent of
+%%    as( model.matrix(.....), "sparseMatrix")
+
+
+\section{One factor: \texttt{y $\sim$ f1}}
+Let's start with an artifical small example:
+<<ex1>>=
+ (ff <- factor(strsplit("statistics_is_a_task", "")[[1]], levels=c("_",letters)))
+ factor(ff)      # drops the levels that do not occur
+ f1 <- ff[, drop=TRUE] # the same, more transparently
+@
+and now assume a model $$y_i = \mu + \alpha_{j(i)} + E_i,$$ for $i=1,\dots,n
+=$~\code{length(f1)}$= 20$, and
+$\alpha_{j(i)}$ with a constraint such as $\sum_j \alpha_j = 0$ (``sum'')
+or $\alpha_1 = 0$ (``treatment'') and $j(i) =$\code{as.numeric(f1[i])}
+being the level number of the $i$-th observation. For such a ``design'',
+the model is only estimable if the levels \code{c} and \code{k} are merged,
+and
+<<ex1.2>>=
+ levels(f1)[match(c("c","k"), levels(f1))] <- "ck"
+ library(Matrix)
+
+ Matrix(contrasts(f1)) # "treatment" contrasts by default -- level "_" = baseline
+
+ Matrix(contrasts(C(f1, sum)))
+ Matrix(contrasts(C(f1, helmert)), sparse=TRUE) # S-plus default; much less sparse
+@
+where \Rfun{contrasts} is (conceptually) just one major ingredient in the
+well-known \Rfun{model.matrix} function
+to build the linear model matrix $\mathbf{X}$ of so-called ``dummy variables''.
+%%
+Since 2007, the \pkg{Matrix}
+package has been providing coercion from a \code{factor} object to a
+\code{sparseMatrix} one to produce the transpose of the model matrix
+corresponding to a model with that factor as predictor (and no intercept):
+<<as_factor_sparse>>=
+as(f1, "sparseMatrix")
+@
+which is really almost the transpose of using the above sparsification of
+\Rfun{contrasts} (and arranging for nice printing),
+<<contrasts_sub>>=
+printSpMatrix( t( Matrix(contrasts(f1))[as.character(f1) ,] ),
+              col.names=TRUE)
+@
+and that is the same as the ``sparsification'' of  \Rfun{model.matrix},
+apart from the column names (here transposed),
+<<ex1-model.matrix>>=
+t( Matrix(model.matrix(~ 0+ f1))) # model with*OUT* intercept
+@
+A more realistic small example is the \code{chickwts} data set,
+<<chickwts-ex>>=
+str(chickwts)# a standard R data set,  71 x 2
+x.feed <- as(chickwts$feed, "sparseMatrix")
+x.feed[ , (1:72)[c(TRUE,FALSE,FALSE)]] ## every  3rd  column:
+
+@
+% FIXME: Move this to ../../../MatrixModels/inst/doc/  ???
+% ## Provisional (hence unexported) sparse lm.fit():
+% Matrix:::lm.fit.sparse(x = t(x.feed), y = chickwts[,1])
+
+%- for emacs: $
+
+
+\section{One factor, one continuous: \texttt{y $\sim$ f1 + x}}
+
+To create the model matrix for the case of one factor and one continuous
+predictor---called ``analysis of covariance'' in the historical literature---
+we can adopt the following simple scheme.
+
+%% Possible examples:
+%% - Puromycin
+%% - ToothGrowth
+
+%--- FIXME ---
+
+The final model matrix is the concatenation of:
+
+1) create the sparse 0-1 matrix \code{m1} from the f1 main-effect
+
+2) the single row/column 'x'  ==  'x' main-effect
+
+3) replacing the values 1 in \code{m1@x} (the x-slot of the factor model matrix),
+   by the values of \code{x} (our continuous predictor).
+
+\section{Two (or more) factors, main effects only: \texttt{y $\sim$ f1 + f2}}
+
+%% FIXME:  'warpbreaks' is smaller and more natural as fixed effect model!
+
+Let us consider the \code{warpbreaks} data set of 54 observations,
+<<warpbreaks-data>>=
+data(warpbreaks)# a standard R data set
+str(warpbreaks) # 2 x 3 (x 9) balanced two-way with 9 replicates:
+xtabs(~ wool + tension, data = warpbreaks)
+@
+
+%It is \emph{not} statistically sensible to assume that \code{Run} is a
+%fixed effect, however the example is handy to depict how a model matrix
+This example depicts how a model matrix
+would be built for the model \code{breaks ~ wool + tension}.
+Since this is a main effects model (no interactions), the desired model
+matrix is simply the concatenation of the model matrices of the main
+effects. There are two here, but the principle applies to general main
+effects of factors.
+
+The most sparse matrix is reached by \emph{not} using an intercept,
+(which would give an all-1-column) but rather have one factor fully coded
+(aka ``swallow'' the intercept), and all others being at \code{"treatment"}
+contrast, i.e., here, the \emph{transposed} model matrix, \code{tmm}, is
+<<modMat-warpbreaks, fig=TRUE, height=2>>=
+tmm <- with(warpbreaks,
+            rBind(as(tension, "sparseMatrix"),
+                  as(wool,    "sparseMatrix")[-1,,drop=FALSE]))
+print(  image(tmm)  ) # print(.) the lattice object
+@
+\\
+The matrices are even sparser when the factors have more than just two or
+three levels, e.g., for the morley data set,
+<<morley-data, fig=TRUE>>=
+data(morley) # a standard R data set
+morley$Expt <- factor(morley$Expt)
+morley$Run <- factor(morley$Run)
+str(morley)
+t.mm <- with(morley,
+             rBind(as(Expt, "sparseMatrix"),
+                   as(Run,  "sparseMatrix")[-1,]))
+print(  image(t.mm)  ) # print(.) the lattice object
+@
+
+
+%% Also see Doug's E-mail to  R-help
+% From: "Douglas Bates" <bates@stat.wisc.edu>
+% Subject: Re: [R] Large number of dummy variables
+% Date: Mon, 21 Jul 2008 18:07:26 -0500
+
+\section{Interactions of two (or more) factors,.....}
+
+%% Of course, this is *the* interesting part
+%% To form interactions, we would have to  ``outer-multiply''
+%% the single-factor model-matrices (after "[, -1]")
+
+In situations with more than one factor, particularly with interactions,
+the model matrix is currently not directly available via \pkg{Matrix}
+functions --- but we still show to build them carefully.
+The easiest---but not at memory resources efficient---way is to go via the
+dense \Rfun{model.matrix} result:
+<<npk_ex>>=
+data(npk, package="MASS")
+npk.mf <- model.frame(yield ~ block + N*P*K, data = npk)
+## str(npk.mf) # the data frame + "terms" attribute
+
+m.npk <- model.matrix(attr(npk.mf, "terms"), data = npk)
+class(M.npk <- Matrix(m.npk))
+dim(M.npk)# 24 x 13  sparse Matrix
+t(M.npk) # easier to display, column names readably displayed as row.names(t(.))
+@
+%% printSpMatrix(M.npk, col.names = "abb1")
+
+Another example was reported by a user on R-help (July 15, 2008,
+{\small \url{https://stat.ethz.ch/pipermail/r-help/2008-July/167772.html}})
+about an ``aov error with large data set''.
+
+\begin{citation} % RAS:  in my PDF, I don't see the first character I
+I'm looking to analyze a large data set: a within-Ss 2*2*1500 design
+with 20 Ss.  However, aov() gives me an error. %, reproducible as follows:
+\end{citation}
+
+And gave the following code example (slightly edited):
+<<aov-large-ex>>=
+id <- factor(1:20)
+a <- factor(1:2)
+b <- factor(1:2)
+d <- factor(1:1500)
+aDat <- expand.grid(id=id, a=a, b=b, d=d)
+aDat$y <- rnorm(length(aDat[, 1])) # generate some random DV data
+dim(aDat) # 120'000 x 5  (120'000 = 2*2*1500 * 20 = 6000 * 20)
+@
+%% ^^^^^^^ MM: "fix" and generate much more interesting data
+and then continued with
+\begin{Sinput}
+m.aov <- aov(y ~ a*b*d + Error(id/(a*b*d)), data=aDat)
+\end{Sinput}
+
+\begin{citation}\sffamily
+   which yields the following error:\\
+   \ttfamily
+     Error in model.matrix.default(mt, mf, contrasts) :\\
+     allocMatrix: too many elements specified\\
+\end{citation}
+to which he got the explanation by Peter Dalgaard that the formal model matrix involved
+was much too large in this case, and that PD assumed, \pkg{lme4} would be
+able to solve the problem.
+However, currently there would still be a big problem with using \pkg{lme4},
+because of the many levels of \emph{fixed} effects:
+
+Specifically\footnote{the following is not run in \RR\ on purpose, rather just
+  displayed here},
+\begin{Sinput}
+dim(model.matrix( ~ a*b*d, data = aDat)) # 120'000 x 6000
+\end{Sinput}
+where we note that $120'000 \times 6000 = 720 \textrm{mio}$, which is
+$720'000'000 * 8 / 2^{20} \approx 5500$ Megabytes.
+
+\emph{Unfortunately} \pkg{lme4} does \emph{not} use a sparse $X$-matrix for
+the fixed effects (yet), it just uses sparse matrices for the $Z$-matrix of
+random effects and sparse matrix operations for computations related to $Z$.
+
+Let us use a smaller factor \code{d} in order to investigate how sparse the
+$X$ matrix would be:
+<<aov-ex-X-sparse>>=
+d2 <- factor(1:150) # 10 times smaller
+tmp2 <- expand.grid(id=id, a=a, b=b, d=d2)
+dim(tmp2)
+dim(mm <- model.matrix( ~ a*b*d, data=tmp2))
+## is 100 times smaller than original example
+
+class(smm <- Matrix(mm)) # automatically coerced to sparse
+round(object.size(mm) / object.size(smm), 1)
+@
+shows that even for the small \code{d} here, the memory reduction would be
+more than an order of magnitude.
+\\
+%% Reasons to fake here:
+%% 1) print() is needed for lattice -- but looks ugly,
+%% 2) the resulting  pdf file is too large -- use png instead:
+<<X-sparse-image, eval=FALSE>>=
+image(t(smm), aspect = 1/3, lwd=0, col.regions = "red")
+<<X-sparse-image-fake, fig=TRUE, include=FALSE, echo=FALSE, results=hide, keep.source=FALSE>>=
+png("sparseModels-X-sparse-image.png", width=6, height=3,
+    units='in', res=150)
+print(
+<<X-sparse-image>>
+      )
+dev.off()
+@
+%%--NB: 'keep.source=FALSE' above is workaround-a-bug-in-R-devel-(2.13.x)---
+\par\vspace*{-1ex}
+\centerline{%
+  \includegraphics[width=1.1\textwidth]{sparseModels-X-sparse-image.png}}
+
+and working with the sparse instead of the dense model matrix is
+considerably faster as well,
+<<X-sparse-mult>>=
+x <- 1:600
+system.time(y <- smm %*% x) ## sparse is much faster
+system.time(y. <- mm %*% x) ## than dense
+identical(as.matrix(y), y.) ## TRUE
+@
+
+
+<<sessionInfo, results=tex>>=
+toLatex(sessionInfo())
+@
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Intro2Matrix.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Intro2Matrix.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Intro2Matrix.Rnw	(revision 2476)
@@ -0,0 +1,450 @@
+\documentclass{article}
+%
+\usepackage{myVignette}
+\usepackage{fullpage}% save trees ;-)
+\usepackage[authoryear,round]{natbib}
+\bibliographystyle{plainnat}
+\newcommand{\noFootnote}[1]{{\small (\textit{#1})}}
+\newcommand{\myOp}[1]{{$\left\langle\ensuremath{#1}\right\rangle$}}
+%
+%%\VignetteIndexEntry{2nd Introduction to the Matrix Package}
+%%\VignetteDepends{Matrix}
+\SweaveOpts{engine=R,eps=FALSE,pdf=TRUE,width=7,height=4,strip.white=true,keep.source=TRUE}
+%								          ^^^^^^^^^^^^^^^^
+\title{2nd Introduction to the Matrix package}
+\author{Martin Maechler and Douglas Bates\\ R Core Development Team
+  \\\email{maechler@stat.math.ethz.ch}, \email{bates@r-project.org}}
+\date{September 2006 ({\tiny typeset on \tiny\today})}
+%
+\begin{document}
+\maketitle
+\begin{abstract}
+% \emph{\Large Why should you want to work with this package and what
+%   does it do for you?}
+
+  Linear algebra is at the core of many areas of statistical computing and
+  from its inception the \Slang{} has supported numerical linear algebra
+  via a matrix data type and several functions and operators, such as
+  \code{\%*\%}, \code{qr}, \code{chol}, and \code{solve}.  However, these
+  data types and functions do not provide direct access to all of the
+  facilities for efficient manipulation of dense matrices, as provided by
+  the Lapack subroutines, and they do not provide for manipulation of
+  sparse matrices.
+
+  The \pkg{Matrix} package provides a set of S4 classes for dense and
+  sparse matrices that extend the basic matrix data type.  Methods for
+  a wide variety of functions and operators applied to objects from
+  these classes provide efficient access to BLAS (Basic Linear Algebra
+  Subroutines), Lapack (dense matrix), CHOLMOD including AMD and COLAMD and
+  \code{Csparse} (sparse matrix) routines.  One notable characteristic of
+  the package is that whenever a matrix is factored, the factorization is
+  stored as part of the original matrix so that further operations on
+  the matrix can reuse this factorization.
+\end{abstract}
+
+%% Note: These are explained in '?RweaveLatex' :
+<<preliminaries, echo=FALSE>>=
+options(width=75)
+@
+
+\section{Introduction}
+\label{sec:Intro}
+The most automatic way to use the \pkg{Matrix} package is via the
+\Rfun{Matrix} function which is very similar to the standard \RR\ function
+\Rfun{matrix},
+@
+<<ex1>>=
+library(Matrix)
+
+M <- Matrix(10 + 1:28, 4, 7)
+M
+tM <- t(M)
+@ %def
+Such a matrix can be appended to (using \Rfun{cBind} or \Rfun{rBind}
+with capital ``B'') or indexed,
+<<ex2>>=
+(M2 <- cBind(-1, M))
+M[2, 1]
+M[4, ]
+@
+where the last two statements show customary matrix indexing, returning a
+simple numeric vector each\footnote{because there's an additional default
+  argument to indexing, \code{drop = TRUE}.  If you add
+  \hbox{``\code{\ ,\ drop = FALSE}\ ''} you will get submatrices instead of
+  simple vectors.}.
+We assign 0 to some columns and rows to ``sparsify'' it, and some \code{NA}s
+(typically ``missing values'' in data analysis) in order to demonstrate how
+they are dealt with; note how we can \emph{``subassign''} as usual,
+for classical \RR{} matrices (i.e., single entries or whole slices at once),
+@
+<<set0>>=
+M2[, c(2,4:6)] <- 0
+M2[2, ] <- 0
+M2 <- rBind(0, M2, 0)
+M2[1:2,2] <- M2[3,4:5] <- NA
+@
+and then coerce it to a sparse matrix,
+@
+<<asSparse>>=
+sM <- as(M2, "sparseMatrix")
+10 * sM
+identical(sM * 2, sM + sM)
+is(sM / 10  +  M2 %/% 2, "sparseMatrix")
+@ %def
+where the last three calls show that multiplication by a scalar keeps
+sparcity, as does other arithmetic, but addition to a ``dense'' object does not,
+as you might have expected after some thought about ``sensible'' behavior:
+@
+<<add1>>=
+sM + 10
+@ %def
+
+Operations on our classed matrices include
+(componentwise) arithmetic ($+$, $-$, $*$, $/$, etc) as partly seen above,
+comparison ($>$, $\le$, etc), e.g.,
+<<Comp1>>=
+Mg2 <- (sM > 2)
+Mg2
+@
+returning a logical sparse matrix.  When interested in the internal
+\textbf{str}ucture, \Rfun{str} comes handy, and we have been using it
+ourselves more regulary than \Rfun{print}ing (or \Rfun{show}ing as it
+happens) our matrices; alternatively, \Rfun{summary} gives output similar
+to Matlab's printing of sparse matrices.
+@
+<<str_mat>>=
+str(Mg2)
+summary(Mg2)
+@
+As you see from both of these, \code{Mg2} contains ``extra zero'' (here
+\code{FALSE}) entries; such sparse matrices may be created for different reasons,
+and you can use \Rfun{drop0} to remove (``drop'') these extra zeros.  This
+should \emph{never} matter for functionality, and does not even show
+differently for logical sparse matrices, but the internal structure is more
+compact:
+<<drop0>>=
+Mg2 <- drop0(Mg2)
+str(Mg2@x) # length 13, was 16
+@
+For large sparse matrices, visualization (of the sparsity pattern) is important,
+and we provide \Rfun{image} methods for that, e.g.,
+<<image,fig=TRUE>>=
+data(CAex)
+print(image(CAex, main = "image(CAex)")) # print(.) needed for Sweave
+@
+
+\smallskip
+
+Further, i.e., in addition to the above implicitly mentioned \code{"Ops"} operators
+(\code{+}, \code{*},\dots, \code{<=},\code{>},\dots, \code{\&} which all
+work with our matrices, notably in conjunction with scalars and traditional
+matrices), the \code{"Math"}-operations (such as \Rfun{exp}, \Rfun{sin} or \Rfun{gamma})
+and \code{"Math2"} (\Rfun{round} etc) and the \code{"Summary"} group of
+functions, \Rfun{min}, \Rfun{range}, \Rfun{sum}, all work on our matrices
+as they should.  Note that all these are implemented via so called
+\emph{group methods}, see e.g., \code{?Arith} in \RR.
+The intention is that sparse matrices remain sparse whenever sensible,
+given the matrix \emph{classes} and operators involved,
+but not content specifically. E.g.,  <sparse> + <dense> gives <dense> even
+for the rare cases where it would be advantageous to get a <sparse>
+result.
+
+These classed matrices can be ``indexed'' (more technically ``subset'') as
+traditional \Slang{} (and hence \RR) matrices, as partly seen above. This also includes the idiom
+\code{M [ M \myOp{\mathit{op}} \myOp{\mathrm{num}}~]}
+which returns simple vectors,
+@
+<<sub_logi>>=
+sM[sM > 2]
+sml <- sM[sM <= 2]
+sml
+@ %def
+and \emph{``subassign''}ment similarly works in the same generality as for
+traditional \Slang{} matrices.
+%% We have seen that already above!
+
+%% This was the 2005 - Introduction vignette's first section:
+\subsection{\pkg{Matrix} package for numerical linear algebra}
+\label{ssec:intro-linalg}
+
+Linear algebra is at the core of many statistical computing techniques
+and, from its inception, the \Slang{} has supported numerical linear
+algebra via a matrix data type and several functions and operators,
+such as \code{\%*\%}, \code{qr}, \code{chol}, and \code{solve}.
+%%
+Initially the numerical linear algebra functions in \RR{} called
+underlying Fortran routines from the Linpack~\citep{Linpack} and
+Eispack~\citep{Eispack} libraries but over the years most of these
+functions have been switched to use routines from the
+Lapack~\citep{Lapack} library which is the state-of-the-art implementation
+of numerical dense linear algebra.
+%%
+Furthermore, \RR{} can be configured to
+use accelerated BLAS (Basic Linear Algebra Subroutines), such as those
+from the Atlas~\citep{Atlas} project or other ones, see the \RR~manual
+``Installation and Administration''.
+
+Lapack provides routines for operating on several special forms of
+matrices, such as triangular matrices and symmetric matrices.
+Furthermore, matrix decompositions like the QR decompositions produce
+multiple output components that should be regarded as parts of a
+single object.  There is some support in \RR{} for operations on special
+forms of matrices (e.g. the \code{backsolve}, \code{forwardsolve} and
+\code{chol2inv} functions) and for special structures (e.g. a QR
+structure is implicitly defined as a list by the \code{qr},
+\code{qr.qy}, \code{qr.qty}, and related functions) but it is not as
+fully developed as it could be.
+
+Also there is no direct support for sparse matrices in \RR{} although
+\citet{koen:ng:2003} have developed the \pkg{SparseM} package for sparse
+matrices based on SparseKit.
+
+The \pkg{Matrix} package provides S4 classes and methods for dense
+and sparse matrices.  The methods for dense matrices use Lapack and
+BLAS.  The sparse matrix methods use
+CHOLMOD~\citep{Cholmod}, CSparse~\citep{Csparse}
+and other parts (AMD, COLAMD) of Tim Davis' ``SuiteSparse'' collection of
+sparse matrix libraries, many of which also use BLAS.
+
+
+
+\TODO{\Rfun{triu}, \Rfun{tril}, \Rfun{diag}, ...
+  and  \command{as(.,.)} , but of course only when they've seen a few
+  different ones.}
+
+\TODO{matrix operators include \code{\%*\%}, \Rfun{crossprod},
+  \Rfun{tcrossprod}, \Rfun{solve}}
+
+\TODO{\Rfun{expm} is the matrix exponential ... ...}
+
+\TODO{\Rfun{symmpart} and \Rfun{skewpart} compute the symmetric part,
+  \code{(x + t(x))/2} and the skew-symmetric part,
+  \code{(x - t(x))/2} of a matrix \code{x}.}
+
+\TODO{factorizations include \Rfun{Cholesky} (or \Rfun{chol}), \Rfun{lu}, \Rfun{qr} (not yet for dense)}
+
+\TODO{Although generally the result of an operation on dense matrices is
+  a dgeMatrix, certain operations return matrices of special types.}
+\TODO{E.g. show the distinction between \code{t(mm) \%*\% mm}
+  and \code{crossprod(mm)}.}
+
+
+% \bigskip
+
+% ... ... ...  The following is the old \file{Introduction.Rnw} ... FIXME ... ...
+
+\bigskip
+
+\section{Matrix Classes}
+The \pkg{Matrix} package provides classes for real (stored as
+double precision), logical and so-called ``pattern'' (binary) dense and
+sparse matrices. There are provisions to also provide integer and complex
+(stored as double precision complex) matrices.
+
+Note that in \RR, \code{logical} means entries
+\code{TRUE}, \code{FALSE}, or \code{NA}.
+To store just the non-zero pattern for typical sparse matrix algorithms,
+the pattern matrices are \emph{binary}, i.e., conceptually just \code{TRUE}
+or \code{FALSE}.  In \pkg{Matrix}, the pattern matrices all have class
+names starting with \code{"n"} (patter\textbf{n}).
+
+\subsection{Classes for dense matrices}
+\label{ssec:DenseClasses}
+
+For the sake of brevity, we restrict ourselves to the
+\emph{real} (\textbf{d}ouble) classes, but they are paralleled by
+\textbf{l}ogical and patter\textbf{n} matrices for all but the positive
+definite ones.
+\begin{description}
+\item[dgeMatrix] Real matrices in general storage mode
+\item[dsyMatrix] Symmetric real matrices in non-packed storage
+\item[dspMatrix] Symmetric real matrices in packed storage (one triangle only)
+\item[dtrMatrix] Triangular real matrices in non-packed storage
+\item[dtpMatrix] Triangular real matrices in packed storage (triangle only)
+\item[dpoMatrix] Positive semi-definite symmetric real matrices in
+  non-packed storage
+\item[dppMatrix] \ \ ditto \ \ in packed storage
+\end{description}
+Methods for these classes include coercion between these classes, when
+appropriate, and coercion to the \code{matrix} class; methods for
+matrix multiplication (\code{\%*\%}); cross products
+(\code{crossprod}), matrix norm (\code{norm}); reciprocal condition
+number (\code{rcond}); LU factorization (\code{lu}) or, for the
+\code{poMatrix} class, the Cholesky decomposition (\code{chol}); and
+solutions of linear systems of equations (\code{solve}).
+
+%-- mentioned above already:
+% Further, group methods have been defined for the \code{Arith} (basic
+% arithmetic, including with scalar numbers) and the \code{Math} (basic
+% mathematical functions) group..
+
+Whenever a factorization or a decomposition is calculated it is
+preserved as a (list) element in the \code{factors} slot of the
+original object.  In this way a sequence of operations, such as
+determining the condition number of a matrix then solving a linear
+system based on the matrix, do not require multiple factorizations of
+the same matrix nor do they require the user to store the intermediate
+results.
+
+\subsection{Classes for sparse matrices}
+\label{sec:SparseClasses}
+
+Used for large matrices in which most of the elements are known to
+be zero (or \code{FALSE} for logical and binary (``pattern'') matrices).
+
+Sparse matrices are automatically built from \Rfun{Matrix} whenever the
+majority of entries is zero (or \code{FALSE} respectively).  Alternatively,
+\Rfun{sparseMatrix} builds sparse matrices from their non-zero entries and
+is typically recommended to construct large sparse matrices, rather than
+direct calls of \Rfun{new}.
+
+\TODO{E.g. model matrices created from factors with a large number of levels}
+
+\TODO{ or from spline basis functions  (e.g. COBS, package \pkg{cobs}), etc.}
+
+\TODO{Other uses include representations of graphs.
+  indeed; good you mentioned it!
+  particularly since we still have the interface to the \pkg{graph} package.
+  I think I'd like to draw one graph in that article --- maybe the
+  undirected graph corresponding to a crossprod() result of
+  dimension ca. $50^2$}
+
+ \TODO{Specialized algorithms can give substantial savings in amount of
+   storage used and execution time of operations.}
+
+ \TODO{Our implementation is based on the CHOLMOD and CSparse libraries by
+   Tim Davis.}
+
+
+
+\subsection{Representations of sparse matrices}
+\label{ssec:SparseReps}
+
+\subsubsection{Triplet representation (\class{TsparseMatrix})}
+Conceptually, the simplest representation of a sparse matrix is as a
+triplet of an integer vector \code{i} giving the row numbers, an
+integer vector \code{j} giving the column numbers, and a numeric
+vector \code{x} giving the non-zero values in the matrix.\footnote{For efficiency
+reasons, we use ``zero-based'' indexing in the \pkg{Matrix} package, i.e.,
+the row indices \code{i} are in \code{0:(nrow(.)-1)} and the column indices
+\code{j} accordingly.}  In \pkg{Matrix}, the \class{TsparseMatrix} class is the
+virtual class of all sparse matrices in triplet representation.
+Its main use is for easy input or transfer to other classes.
+
+As for the dense matrices, the class of the \code{x} slot may vary, and the
+subclasses may be triangular, symmetric or unspecified (``general''), such that
+the \class{TsparseMatrix} class has several\footnote{the $3 \times 3$
+  actual subclasses of \class{TsparseMatrix} are the three structural
+  kinds, namely \textbf{t}riangular, \textbf{s}ymmetric and \textbf{g}eneral,
+  times three entry classes, \textbf{d}ouble, \textbf{l}ogical, and
+  patter\textbf{n}.}
+`actual'' subclasses,
+the most typical (numeric, general) is \class{dgTMatrix}:
+<<Tsparse-class>>=
+getClass("TsparseMatrix") # (i,j, Dim, Dimnames) slots are common to all
+getClass("dgTMatrix")
+@
+Note that the \emph{order} of the entries in the \code{(i,j,x)} vectors
+does not matter; consequently, such matrices are not unique in their
+representation.  \footnote{
+  Furthermore, there can be \emph{repeated} \code{(i,j)} entries with the
+  customary convention that the corresponding \code{x} entries are
+  \emph{added} to form the matrix element $m_{ij}$.
+}
+%% The triplet representation is row-oriented if elements in the same row
+%% were adjacent and column-oriented if elements in the same column were
+%% adjacent.
+
+\subsubsection{Compressed representations: \class{CsparseMatrix} and \class{RsparseMatrix}}
+
+For most sparse operations we use the compressed column-oriented
+representation (virtual class \class{CsparseMatrix}) (also known as
+``csc'', ``compressed sparse column'').  Here, instead of storing all
+column indices \code{j}, only the \emph{start} index of every column is stored.
+
+Analogously, there is also a compressed sparse row (csr) representation,
+which e.g. is used in in the \pkg{SparseM} package, and we provide the
+\class{RsparseMatrix} for compatibility and completeness purposes, in
+addition to basic coercion (\code({as(., \textit{<cl>})} between the classes.
+%% (column-oriented triplet) except that \code{i} (\code{j}) just stores
+%% the index of the first element in the row (column).  (There are a
+%% couple of other details but that is the gist of it.)
+These compressed representations remove the redundant row (column)
+indices and provide faster access to a given location in the matrix
+because you only need to check one row (column).
+
+There are certain advantages \footnote{routines can make use of
+  high-level (``level-3'') BLAS in certain sparse matrix computations}
+to csc in systems like \RR{}, Octave and Matlab where dense matrices are
+stored in column-major order, therefore it is used in sparse matrix
+libraries such as CHOLMOD or CSparse of which we make use.  For this
+reason, the \class{CsparseMatrix} class and subclasses are the
+principal classes for sparse matrices in the \pkg{Matrix} package.
+
+
+The Matrix package provides the following classes for sparse matrices
+\FIXME{many more --- maybe explain naming scheme?}
+\begin{description}
+\item[dgTMatrix] general, numeric, sparse matrices in (a possibly
+  redundant) triplet form.  This can be a convenient form in which to
+  construct sparse matrices.
+\item[dgCMatrix] general, numeric, sparse matrices in the (sorted) compressed
+  sparse column format.
+\item[dsCMatrix] symmetric, real, sparse matrices in the (sorted)
+  compressed sparse column format.  Only the upper or the lower triangle is
+  stored.  Although there is provision for both forms, the lower
+  triangle form works best with TAUCS.
+\item[dtCMatrix] triangular, real, sparse matrices in the (sorted)
+  compressed sparse column format.
+\end{description}
+
+\TODO{Can also read and write the Matrix Market and read the Harwell-Boeing
+  representations.}
+
+\TODO{Can convert from a dense matrix to a sparse matrix (or use the
+  Matrix function) but going through an intermediate dense matrix may
+  cause problems with the amount of memory required.}
+
+\TODO{similar range of operations as for the dense matrix classes.}
+
+
+\section{More detailed examples of ``Matrix'' operations}
+
+Have seen \texttt{drop0()} above, %(p.3); only with logical
+showe a nice double example (where you see ``.'' and ``0'').
+
+Show the use of \code{dim<-} for \emph{resizing} a (sparse) matrix.
+
+Maybe mention  \Rfun{nearPD}.
+
+\TODO{Solve a sparse least squares problem and demonstrate memory / speed gain}
+
+\TODO{mention \code{lme4} and \Rfun{lmer}, maybe use one example to show the
+  matrix sizes.}
+
+
+\section{Notes about S4 classes and methods implementation}
+
+Maybe we could % even here (for R News, not only for JSS)
+give   some glimpses of implementations at least on the \RR{} level ones?
+
+ \TODO{The class hierarchy: a non-trivial tree where only the leaves
+    are ``actual'' classes.}
+
+ \TODO{The main advantage of the multi-level hierarchy is that
+    methods can often be defined on a higher (virtual class) level
+    which ensures consistency [and saves from ``cut \& paste'' and
+    forgetting things]}
+
+ \TODO{Using Group Methods}
+
+
+\section{Session Info}
+
+<<sessionInfo, results=tex>>=
+toLatex(sessionInfo())
+@
+
+\bibliography{Matrix}
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/sparseModels.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/sparseModels.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Intro2Matrix.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Intro2Matrix.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/index.html	(revision 2476)
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'Matrix'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/Matrix/doc/Comparisons.pdf">Matrix::Comparisons</a></td>
+<td></td><td valign="top">Comparisons of Least Squares calculation speeds</td>
+<td valign="top"><a href="../../../library/Matrix/doc/Comparisons.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/Matrix/doc/Comparisons.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/Matrix/doc/Comparisons.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/Matrix/doc/Design-issues.pdf">Matrix::Design-issues</a></td>
+<td></td><td valign="top">Design Issues in Matrix package Development</td>
+<td valign="top"><a href="../../../library/Matrix/doc/Design-issues.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/Matrix/doc/Design-issues.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/Matrix/doc/Design-issues.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/Matrix/doc/Intro2Matrix.pdf">Matrix::Intro2Matrix</a></td>
+<td></td><td valign="top">2nd Introduction to the Matrix Package</td>
+<td valign="top"><a href="../../../library/Matrix/doc/Intro2Matrix.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/Matrix/doc/Intro2Matrix.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/Matrix/doc/Intro2Matrix.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/Matrix/doc/Introduction.pdf">Matrix::Introduction</a></td>
+<td></td><td valign="top">Introduction to the Matrix Package</td>
+<td valign="top"><a href="../../../library/Matrix/doc/Introduction.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/Matrix/doc/Introduction.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/Matrix/doc/Introduction.R">R code</a></td></tr>
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/Matrix/doc/sparseModels.pdf">Matrix::sparseModels</a></td>
+<td></td><td valign="top">Sparse Model Matrices</td>
+<td valign="top"><a href="../../../library/Matrix/doc/sparseModels.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/Matrix/doc/sparseModels.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/Matrix/doc/sparseModels.R">R code</a></td></tr>
+</table>
+<h2>Other files in the <span class="samp">doc</span> directory</h2>
+<table width="100%">
+<col style="width: 24%;" />
+<col style="width: 50%;" />
+<col style="width: 24%;" />
+<tr><td></td><td><span class="samp"><a href="Announce.txt">Announce.txt</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="SuiteSparse/">SuiteSparse/</a></span></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Introduction.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Introduction.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Introduction.R	(revision 2476)
@@ -0,0 +1,9 @@
+### R code from vignette source 'Introduction.Rnw'
+### Encoding: UTF-8
+
+###################################################
+### code chunk number 1: preliminaries
+###################################################
+options(width=75)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Design-issues.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Design-issues.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Design-issues.R	(revision 2476)
@@ -0,0 +1,47 @@
+### R code from vignette source 'Design-issues.Rnw'
+### Encoding: UTF-8
+
+###################################################
+### code chunk number 1: preliminaries
+###################################################
+options(width=75)
+
+
+###################################################
+### code chunk number 2: diag-class
+###################################################
+library(Matrix)
+(D4 <- Diagonal(4, 10*(1:4)))
+str(D4)
+diag(D4)
+
+
+###################################################
+### code chunk number 3: diag-2
+###################################################
+diag(D4) <- diag(D4) + 1:4
+D4
+
+
+###################################################
+### code chunk number 4: unit-diag
+###################################################
+str(I3 <- Diagonal(3)) ## empty 'x' slot
+
+getClass("diagonalMatrix") ## extending "denseMatrix"
+
+
+###################################################
+### code chunk number 5: Matrix-ex
+###################################################
+(M <- spMatrix(4,4, i=1:4, j=c(3:1,4), x=c(4,1,4,8))) # dgTMatrix
+m <- as(M, "matrix")
+(M. <- Matrix(m)) # dsCMatrix (i.e. *symmetric*)
+
+
+###################################################
+### code chunk number 6: sessionInfo
+###################################################
+toLatex(sessionInfo())
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Announce.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Announce.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Announce.txt	(revision 2476)
@@ -0,0 +1,83 @@
+Basically the text of the R-packages posting on Mar 28, 2008 :
+    https://stat.ethz.ch/pipermail/r-packages/2008/000911.html
+------------------------------------------------------------------------
+
+This weekend, a new version of "the Matrix" (well, actually the R
+package named "Matrix") will become available on the CRAN mirrors.
+
+As some of you have noticed, the version numbers (current is version
+0.999375-8) are converging to one, and we feel that we have solved
+enough of the many (mostly small) problems to announce that release
+1.0-0 is imminent.
+
+
+In the DESCRIPTION of the package we say
+--------------------------------------------------------------
+Title: A Matrix package for R
+Author: Douglas Bates <....> and Martin Maechler <....>
+Maintainer: Doug and Martin <Matrix-authors@R-project.org>
+Description: Classes and methods for dense and sparse matrices and
+   operations on them using Lapack, CSparse and CHOLMOD
+--------------------------------------------------------------
+
+The Matrix package provides efficient methods for several formal
+(i.e. S4) classes of matrices where each of the actual classes are
+some combination of the following three categories
+
+1) dense or sparse
+2) symmmetric, triangular, diagonal or "general" (or "permutation")
+3) numeric ("d"ouble), logical (TRUE/FALSE/NA) or "patter[n]" (0/1) matrices
+
+Interfaces to many efficient algorithms from Lapack (for "dense") and from
+CHOLMOD / Csparse (for "sparse") are all implemented via method definitions
+for the customary linear algebra functions
+  %*%, t(), crossprod(), tcrossprod(), chol(), qr(), solve(),
+  colSums(), rowSums(), kronecker(), determinant(), ...
+and for various formal groups of generics, such as
+  "Math" (sin,exp,gamma,..)  "Arith" (+,-,*,...),
+  "Logic" (>, <=, ..),  "Summary" (sum, max, ...)  etc;
+  is.na()
+
+Furthermore, 'indexing' : "A[...]" and "A[..] <- value" of
+all(!) kinds of S/R indexing and some new generic functions such as
+
+ lu()     {LU decomposition}
+ Schur(), BunchKaufman(),
+ norm(), rcond()        {Matrix norms and condition numbers}
+ expm()   {Matrix exponential},
+ band(), triu(), tril()  {extract band-diagonal or triangular sub-matrices}
+ symmpart(), skewpart()   { (x + t(x))/2  and  (x - t(x)) / 2 }
+
+are provided. Further, an extension to the xtabs function
+  xtabs(*, sparse=TRUE)
+for large sparse, two-way contingency tables
+and coercion of one *factor* (possibly crossed with one <numeric>)
+to the corresponding (potentially huge) sparse model matrix for sparse
+least squares and related computations.
+
+Further to the above, "Matrix" objects are also constructed by
+Matrix(), spMatrix(), bdiag() {block-diagonal}, Diagonal() and many
+as(., "....Matrix") possibilities.
+
+The Matrix package also provides a C level API (header files of
+exported C functions providing low-level functionality) to many of its
+internal algorithms that other packages can link to.  Currently, the
+'lme4' package makes heavy use of these exported C functions.
+
+---------------------------------------------------------------------------
+
+One of the things we plan to improve considerably is the documentation
+for the package.  Currently there are four vignettes but all but the
+
+   Comparisons: Comparisons of Least Squares calculation speeds
+
+are really not complete in one way or another.
+
+---------------------------------------------------------------------------
+
+We would appreciate current users of the Matrix package (and also
+generally interested useRs) exploring the package's capabilities and
+giving us feedback about problems that they might encounter or missing
+features, inefficiencies and maybe even "infelicities" (a.k.a. bugs).
+Fixing problems before the release of the 1.0-0 version of "The Matrix",
+rather than after its release, is our preferred approach

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Announce.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Introduction.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Introduction.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Introduction.Rnw	(revision 2476)
@@ -0,0 +1,169 @@
+\documentclass{article}
+\usepackage{myVignette}
+\usepackage[authoryear,round]{natbib}
+\bibliographystyle{plainnat}
+%%\VignetteIndexEntry{Introduction to the Matrix Package}
+%%\VignetteDepends{Matrix}
+\SweaveOpts{engine=R,eps=FALSE,pdf=TRUE,width=5,height=3,strip.white=true,keep.source=TRUE}
+\title{Introduction to the Matrix package --- as of Feb.~2005\footnote{
+    There's an unfinished ``2nd Introduction to the Matrix package''
+    which contains partly newer information, but is not at all self-contained.
+    Eventually that will replace this one.}}
+\author{Douglas Bates\\R Core Development Group\\\email{bates@r-project.org}}
+\date{\today}
+\begin{document}
+\maketitle
+\begin{abstract}
+  Linear algebra is at the core of many areas of statistical computing
+  and from its inception the \Slang{} has supported numerical linear
+  algebra via a matrix data type and several functions and operators,
+  such as \code{\%*\%}, \code{qr}, \code{chol}, and \code{solve}.
+  However, these data types and functions do not provide direct access
+  to all of the facilities for efficient manipulation of dense
+  matrices, as provided by the Lapack subroutines, and they do not
+  provide for manipulation of sparse matrices.
+
+  The \code{Matrix} package provides a set of S4 classes for dense and
+  sparse matrices that extend the basic matrix data type.  Methods for
+  a wide variety of functions and operators applied to objects from
+  these classes provide efficient access to BLAS (Basic Linear Algebra
+  Subroutines), Lapack (dense matrix), TAUCS (sparse matrix) and
+  UMFPACK (sparse matrix) routines.  One notable characteristic of the
+  package is that whenever a matrix is factored, the factorization is
+  stored as part of the original matrix so that further operations on
+  the matrix can reuse this factorization.
+\end{abstract}
+<<preliminaries, echo=FALSE>>=
+options(width=75)
+@
+
+\section{Introduction}
+\label{sec:Intro}
+
+Linear algebra is at the core of many statistical computing techniques
+and, from its inception, the \Slang{} has supported numerical linear
+algebra via a matrix data type and several functions and operators,
+such as \code{\%*\%}, \code{qr}, \code{chol}, and \code{solve}.
+Initially the numerical linear algebra functions in \RR{} called
+underlying Fortran routines from the Linpack~\citep{Linpack} and
+Eispack~\cite{Eispack} libraries but over the years most of these
+functions have been switched to use routines from the
+Lapack~\cite{Lapack} library.  Furthermore, \RR{} can be configured to
+use accelerated BLAS (Basic Linear Algebra Subroutines), such as those
+from the Atlas~\cite{Atlas} project or Goto's BLAS~\cite{GotosBLAS}.
+
+Lapack provides routines for operating on several special forms of
+matrices, such as triangular matrices and symmetric matrices.
+Furthermore,matrix decompositions like the QR decompositions produce
+multiple output components that should be regarded as parts of a
+single object.  There is some support in R for operations on special
+forms of matrices (e.g. the \code{backsolve}, \code{forwardsolve} and
+\code{chol2inv} functions) and for special structures (e.g. a QR
+structure is implicitly defined as a list by the \code{qr},
+\code{qr.qy}, \code{qr.qty}, and related functions) but it is not as
+fully developed as it could be.
+
+Also there is no direct support for sparse matrices in R although
+\citet{koen:ng:2003} have developed a contributed package for sparse
+matrices based on SparseKit.
+
+The \code{Matrix} package provides S4 classes and methods for dense
+and sparse matrices.  The methods for dense matrices use Lapack and
+BLAS.  The sparse matrix methods use TAUCS~\citep{Taucs},
+UMFPACK~\citep{Umfpack}, and Metis~\citep{Metis}.
+
+
+\section{Classes for dense matrices}
+\label{sec:DenseClasses}
+
+The \code{Matrix} package will provide classes for real (stored as
+double precision) and complex (stored as double precision complex)
+dense matrices.  At present only the real classes have been
+implemented.  These classes are
+\begin{description}
+\item[dgeMatrix] Real matrices in general storage mode
+\item[dsyMatrix] Symmetric real matrices in non-packed storage
+\item[dspMatrix] Symmetric real matrices in packed storage (one triangle only)
+\item[dtrMatrix] Triangular real matrices in non-packed storage
+\item[dtpMatrix] Triangular real matrices in packed storage (triangle only)
+\item[dpoMatrix] Positive semi-definite symmetric real matrices in
+  non-packed storage
+\item[dppMatrix] \ \ ditto \ \ in packed storage
+\end{description}
+Methods for these classes include coercion between these classes, when
+appropriate, and coercion to the \code{matrix} class; methods for
+matrix multiplication (\code{\%*\%}); cross products
+(\code{crossprod}), matrix norm (\code{norm}); reciprocal condition
+number (\code{rcond}); LU factorization (\code{lu}) or, for the
+\code{poMatrix} class, the Cholesky decomposition (\code{chol}); and
+solutions of linear systems of equations (\code{solve}).
+
+Further, group methods have been defined for the \code{Arith} (basic
+arithmetic, including with scalar numbers) and the \code{Math} (basic
+mathematical functions) group..
+
+Whenever a factorization or a decomposition is calculated it is
+preserved as a (list) element in the \code{factors} slot of the
+original object.  In this way a sequence of operations, such as
+determining the condition number of a matrix then solving a linear
+system based on the matrix, do not require multiple factorizations of
+the same matrix nor do they require the user to store the intermediate
+results.
+
+
+\section{Classes for sparse matrices}
+\label{sec:SparseClasses}
+
+
+\subsection{Representations of sparse matrices}
+\label{ssec:SparseReps}
+
+Conceptually, the simplest representation of a sparse matrix is as a
+triplet of an integer vector \code{i} giving the row numbers, an
+integer vector \code{j} giving the column numbers, and a numeric
+vector \code{x} giving the non-zero values in the matrix.  An S4 class
+definition might be
+\begin{Schunk}
+\begin{Sinput}
+setClass("dgTMatrix",
+         representation(i = "integer", j = "integer", x = "numeric",
+                        Dim = "integer"))
+\end{Sinput}
+\end{Schunk}
+
+The triplet representation is row-oriented if elements in the same row
+were adjacent and column-oriented if elements in the same column were
+adjacent.  The compressed sparse row (csr) (or compressed sparse
+column - csc) representation is similar to row-oriented triplet
+(column-oriented triplet) except that \code{i} (\code{j}) just stores
+the index of the first element in the row (column).  (There are a
+couple of other details but that is the gist of it.)  These compressed
+representations remove the redundant row (column) indices and provide
+faster access to a given location in the matrix because you only need
+to check one row (column).
+
+The preferred representation of sparse matrices in the SparseM package
+is csr.  Matlab uses csc.  We hope that Octave will also use this
+representation. There are certain advantages to csc in systems like R
+and Matlab where dense matrices are stored in column-major order.  For
+example, Sivan Toledo's TAUCS~\cite{Taucs} library and Tim Davis's
+UMFPACK~\cite{Umfpack} library are both based on csc and can both use
+level-3 BLAS in certain sparse matrix computations.
+
+The Matrix package provides the following classes for sparse matrices
+\begin{description}
+\item[dgTMatrix] general, numeric, sparse matrices in (a possibly
+  redundant) triplet form.  This can be a convenient form in which to
+  construct sparse matrices.
+\item[dgCMatrix] general, numeric, sparse matrices in the (sorted) compressed
+  sparse column format.
+\item[dsCMatrix] symmetric, real, sparse matrices in the (sorted)
+  compressed sparse column format.  Only the upper or the lower triangle is
+  stored.  Although there is provision for both forms, the lower
+  triangle form works best with TAUCS.
+\item[dtCMatrix] triangular, real, sparse matrices in the (sorted)
+  compressed sparse column format.
+\end{description}
+
+\bibliography{Matrix}
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Design-issues.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Design-issues.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Design-issues.Rnw	(revision 2476)
@@ -0,0 +1,170 @@
+\documentclass{article}
+%
+\usepackage{myVignette}
+\usepackage[authoryear,round]{natbib}
+\bibliographystyle{plainnat}
+\newcommand{\noFootnote}[1]{{\small (\textit{#1})}}
+\newcommand{\myOp}[1]{{$\left\langle\ensuremath{#1}\right\rangle$}}
+%%                    vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
+%%\VignetteIndexEntry{Design Issues in Matrix package Development}
+%%\VignetteDepends{Matrix}
+\SweaveOpts{engine=R,eps=FALSE,pdf=TRUE,width=5,height=3,strip.white=true,keep.source=TRUE}
+%								          ^^^^^^^^^^^^^^^^
+\title{Design Issues in Matrix package Development}
+\author{Martin Maechler and Douglas Bates\\R Core Development Team
+  \\\email{maechler@stat.math.ethz.ch}, \email{bates@r-project.org}}
+\date{Spring 2008 ({\tiny typeset on \tiny\today})}
+%
+\begin{document}
+\maketitle
+\begin{abstract}
+This is a (\textbf{currently very incomplete}) write-up of the many smaller and
+larger design decisions we have made in organizing functionalities in the
+Matrix package.
+
+Classes: There's a rich hierarchy of matrix classes, which you can
+visualize as a set of trees whose inner (and ``upper'') nodes are
+\emph{virtual} classes and only the leaves are non-virtual ``actual'' classes.
+
+Functions and Methods:
+
+- setAs()
+
+- others
+
+\end{abstract}
+%% Note: These are explained in '?RweaveLatex' :
+<<preliminaries, echo=FALSE>>=
+options(width=75)
+@
+
+
+\section{The Matrix class structures}
+\label{sec:classes}
+
+Take Martin's DSC 2007 talk to depict class hierarchy.
+\\ --- --- --- %% \hrule[1pt]{\textwidth}
+
+\subsection{Diagonal Matrices}
+\label{ssec:diagMat}
+The class of diagonal matrices is worth mentioning for several reasons.
+First, we have wanted such a class, because \emph{multiplication}
+methods are particularly simple with diagonal matrices.
+The typical constructor is \Rfun{Diagonal} whereas the accessor
+(as for traditional matrices), \Rfun{diag} simply returns the
+\emph{vector} of diagonal entries:
+<<diag-class>>=
+library(Matrix)
+(D4 <- Diagonal(4, 10*(1:4)))
+str(D4)
+diag(D4)
+@
+We can \emph{modify} the diagonal in the traditional way
+(via method definition for \Rfun{diag<-}):
+<<diag-2>>=
+diag(D4) <- diag(D4) + 1:4
+D4
+@
+
+Note that \textbf{unit-diagonal} matrices (the identity matrices of linear algebra)
+with slot \code{diag = "U"} can have an empty \code{x} slot, very
+analogously to the unit-diagonal triangular matrices:
+<<unit-diag>>=
+str(I3 <- Diagonal(3)) ## empty 'x' slot
+
+getClass("diagonalMatrix") ## extending "denseMatrix"
+@
+We have implemented diagonal matrices as \emph{dense} rather than sparse
+matrices, for the following reasons:
+\begin{enumerate}
+\item The \code{diag()}onal (vector) is the basic part of such a matrix,
+  and this is simply the \code{x} slot unless the \code{diag} slot is \code{"U"},
+  the unit-diagonal case, which is the identity matrix.
+\item given '1)', it does not make much sense to store \emph{where} the
+  matrix is non-zero.  This contrasts with all sparse matrix
+  implementations, and hence we did not want to call a diagonal matrix ``sparse''.
+\end{enumerate}
+
+
+
+\section{Matrix Transformations}
+\label{sec:trafos}
+
+\subsection{Coercions between Matrix classes}
+\label{ssec:coerce}
+
+You may need to transform Matrix objects into specific shape (triangular,
+symmetric), content type (double, logical, \dots) or storage structure
+(dense or sparse).
+Every useR should use \code{as(x, <superclass>)} to this end, where
+\code{<superclass>} is a \emph{virtual} Matrix super class, such as
+\code{"triangularMatrix"} \code{"dMatrix"}, or \code{"sparseMatrix"}.
+
+In other words, the user should \emph{not} coerce directly to a specific
+desired class such as \code{"dtCMatrix"}, even though that may
+occasionally work as well.
+
+Here is a set of rules to which the Matrix developers and the users
+should typically adhere:
+\begin{description}
+
+\item[Rule~1]:  \code{as(M, "matrix")} should work for \textbf{all} Matrix
+  objects \code{M}.
+
+\item[Rule~2]:  \code{Matrix(x)} should also work for matrix like
+objects \code{x} and always return a ``classed'' Matrix.
+
+Applied to a \code{"matrix"} object \code{m}, \code{M. <- Matrix(m)} can be
+considered a kind of inverse of \code{m <- as(M, "matrix")}.
+For sparse matrices however, \code{M.} well be a
+\code{CsparseMatrix}, and it is often ``more structured'' than \code{M},
+e.g.,
+<<Matrix-ex>>=
+(M <- spMatrix(4,4, i=1:4, j=c(3:1,4), x=c(4,1,4,8))) # dgTMatrix
+m <- as(M, "matrix")
+(M. <- Matrix(m)) # dsCMatrix (i.e. *symmetric*)
+@
+
+
+\item[Rule~3]: All the following coercions to \emph{virtual} matrix
+  classes should work:\\
+  \begin{enumerate}
+  \item \code{as(m, "dMatrix")}
+  \item \code{as(m, "lMatrix")}
+  \item \code{as(m, "nMatrix")}
+
+  \item \code{as(m, "denseMatrix")}
+  \item \code{as(m, "sparseMatrix")}
+
+  \item \code{as(m, "generalMatrix")}
+  \end{enumerate}
+  whereas the next ones should work under some assumptions:
+
+  \begin{enumerate}
+  \item \code{as(m1, "triangularMatrix")} \\
+       should work when \code{m1} is a triangular matrix, i.e. the upper or
+       lower triangle of \code{m1} contains only zeros.
+
+  \item \code{as(m2, "symmetricMatrix")}
+       should work when \code{m2} is a symmetric matrix in the sense of
+       \code{isSymmetric(m2)} returning \code{TRUE}.
+       Note that this is typically equivalent to something like
+       \code{isTRUE(all.equal(m2, t(m2)))}, i.e., the lower and upper
+       triangle of the matrix have to be equal \emph{up to small
+       numeric fuzz}.
+  \end{enumerate}
+
+\end{description}
+
+
+
+\section{Session Info}
+
+<<sessionInfo, results=tex>>=
+toLatex(sessionInfo())
+@
+
+%not yet
+%\bibliography{Matrix}
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Introduction.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Introduction.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Design-issues.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Design-issues.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Comparisons.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Comparisons.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Comparisons.R	(revision 2476)
@@ -0,0 +1,165 @@
+### R code from vignette source 'Comparisons.Rnw'
+### Encoding: UTF-8
+
+###################################################
+### code chunk number 1: preliminaries
+###################################################
+options(width=75)
+
+
+###################################################
+### code chunk number 2: modelMatrix
+###################################################
+data(Formaldehyde)
+str(Formaldehyde)
+(m <- cbind(1, Formaldehyde$carb))
+(yo <- Formaldehyde$optden)
+
+
+###################################################
+### code chunk number 3: naiveCalc
+###################################################
+solve(t(m) %*% m) %*% t(m) %*% yo
+
+
+###################################################
+### code chunk number 4: timedNaive
+###################################################
+system.time(solve(t(m) %*% m) %*% t(m) %*% yo)
+
+
+###################################################
+### code chunk number 5: catNaive
+###################################################
+dput(c(solve(t(m) %*% m) %*% t(m) %*% yo))
+dput(unname(lm.fit(m, yo)$coefficients))
+
+
+###################################################
+### code chunk number 6: KoenNg
+###################################################
+library(Matrix)
+data(KNex, package = "Matrix")
+ y <- KNex$y
+mm <- as(KNex$mm, "matrix") # full traditional matrix
+dim(mm)
+system.time(naive.sol <- solve(t(mm) %*% mm) %*% t(mm) %*% y)
+
+
+###################################################
+### code chunk number 7: crossKoenNg
+###################################################
+system.time(cpod.sol <- solve(crossprod(mm), crossprod(mm,y)))
+all.equal(naive.sol, cpod.sol)
+
+
+###################################################
+### code chunk number 8: xpxKoenNg
+###################################################
+system.time(t(mm) %*% mm)
+
+
+###################################################
+### code chunk number 9: fullMatrix_crossprod
+###################################################
+fm <- mm
+set.seed(11)
+fm[] <- rnorm(length(fm))
+system.time(c1 <- t(fm) %*% fm)
+system.time(c2 <- crossprod(fm))
+stopifnot(all.equal(c1, c2, tol = 1e-12))
+
+
+###################################################
+### code chunk number 10: naiveChol
+###################################################
+system.time(ch <- chol(crossprod(mm)))
+system.time(chol.sol <-
+            backsolve(ch, forwardsolve(ch, crossprod(mm, y),
+                                       upper = TRUE, trans = TRUE)))
+stopifnot(all.equal(chol.sol, naive.sol))
+
+
+###################################################
+### code chunk number 11: MatrixKoenNg
+###################################################
+mm <- as(KNex$mm, "dgeMatrix")
+class(crossprod(mm))
+system.time(Mat.sol <- solve(crossprod(mm), crossprod(mm, y)))
+stopifnot(all.equal(naive.sol, unname(as(Mat.sol,"matrix"))))
+
+
+###################################################
+### code chunk number 12: saveFactor
+###################################################
+xpx <- crossprod(mm)
+xpy <- crossprod(mm, y)
+system.time(solve(xpx, xpy))
+system.time(solve(xpx, xpy)) # reusing factorization
+
+
+###################################################
+### code chunk number 13: SparseKoenNg
+###################################################
+mm <- KNex$mm
+class(mm)
+system.time(sparse.sol <- solve(crossprod(mm), crossprod(mm, y)))
+stopifnot(all.equal(naive.sol, unname(as(sparse.sol, "matrix"))))
+
+
+###################################################
+### code chunk number 14: SparseSaveFactor
+###################################################
+xpx <- crossprod(mm)
+xpy <- crossprod(mm, y)
+system.time(solve(xpx, xpy))
+system.time(solve(xpx, xpy))
+
+
+###################################################
+### code chunk number 15: sessionInfo
+###################################################
+toLatex(sessionInfo())
+
+
+###################################################
+### code chunk number 16: from_pkg_sfsmisc
+###################################################
+
+if(identical(1L, grep("linux", R.version[["os"]]))) { ##----- Linux - only ----
+
+Sys.procinfo <- function(procfile)
+{
+  l2 <- strsplit(readLines(procfile),"[ \t]*:[ \t]*")
+  r <- sapply(l2[sapply(l2, length) == 2],
+              function(c2)structure(c2[2], names= c2[1]))
+  attr(r,"Name") <- procfile
+  class(r) <- "simple.list"
+  r
+}
+
+Scpu <- Sys.procinfo("/proc/cpuinfo")
+Smem <- Sys.procinfo("/proc/meminfo")
+} # Linux only
+
+
+###################################################
+### code chunk number 17: Sys_proc_fake (eval = FALSE)
+###################################################
+## if(identical(1L, grep("linux", R.version[["os"]]))) { ## Linux - only ---
+##  Scpu <- sfsmisc::Sys.procinfo("/proc/cpuinfo")
+##  Smem <- sfsmisc::Sys.procinfo("/proc/meminfo")
+##  print(Scpu[c("model name", "cpu MHz", "cache size", "bogomips")])
+##  print(Smem[c("MemTotal", "SwapTotal")])
+## }
+
+
+###################################################
+### code chunk number 18: Sys_proc_out
+###################################################
+if(identical(1L, grep("linux", R.version[["os"]]))) { ## Linux - only ---
+ print(Scpu[c("model name", "cpu MHz", "cache size", "bogomips")])
+ print(Smem[c("MemTotal", "SwapTotal")])
+}
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/sparseModels.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/sparseModels.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/sparseModels.R	(revision 2476)
@@ -0,0 +1,157 @@
+### R code from vignette source 'sparseModels.Rnw'
+### Encoding: UTF-8
+
+###################################################
+### code chunk number 1: preliminaries
+###################################################
+options(width=75)
+
+
+###################################################
+### code chunk number 2: ex1
+###################################################
+ (ff <- factor(strsplit("statistics_is_a_task", "")[[1]], levels=c("_",letters)))
+ factor(ff)      # drops the levels that do not occur
+ f1 <- ff[, drop=TRUE] # the same, more transparently
+
+
+###################################################
+### code chunk number 3: ex1.2
+###################################################
+ levels(f1)[match(c("c","k"), levels(f1))] <- "ck"
+ library(Matrix)
+
+ Matrix(contrasts(f1)) # "treatment" contrasts by default -- level "_" = baseline
+
+ Matrix(contrasts(C(f1, sum)))
+ Matrix(contrasts(C(f1, helmert)), sparse=TRUE) # S-plus default; much less sparse
+
+
+###################################################
+### code chunk number 4: as_factor_sparse
+###################################################
+as(f1, "sparseMatrix")
+
+
+###################################################
+### code chunk number 5: contrasts_sub
+###################################################
+printSpMatrix( t( Matrix(contrasts(f1))[as.character(f1) ,] ),
+              col.names=TRUE)
+
+
+###################################################
+### code chunk number 6: ex1-model.matrix
+###################################################
+t( Matrix(model.matrix(~ 0+ f1))) # model with*OUT* intercept
+
+
+###################################################
+### code chunk number 7: chickwts-ex
+###################################################
+str(chickwts)# a standard R data set,  71 x 2
+x.feed <- as(chickwts$feed, "sparseMatrix")
+x.feed[ , (1:72)[c(TRUE,FALSE,FALSE)]] ## every  3rd  column:
+
+
+
+###################################################
+### code chunk number 8: warpbreaks-data
+###################################################
+data(warpbreaks)# a standard R data set
+str(warpbreaks) # 2 x 3 (x 9) balanced two-way with 9 replicates:
+xtabs(~ wool + tension, data = warpbreaks)
+
+
+###################################################
+### code chunk number 9: modMat-warpbreaks
+###################################################
+tmm <- with(warpbreaks,
+            rBind(as(tension, "sparseMatrix"),
+                  as(wool,    "sparseMatrix")[-1,,drop=FALSE]))
+print(  image(tmm)  ) # print(.) the lattice object
+
+
+###################################################
+### code chunk number 10: morley-data
+###################################################
+data(morley) # a standard R data set
+morley$Expt <- factor(morley$Expt)
+morley$Run <- factor(morley$Run)
+str(morley)
+t.mm <- with(morley,
+             rBind(as(Expt, "sparseMatrix"),
+                   as(Run,  "sparseMatrix")[-1,]))
+print(  image(t.mm)  ) # print(.) the lattice object
+
+
+###################################################
+### code chunk number 11: npk_ex
+###################################################
+data(npk, package="MASS")
+npk.mf <- model.frame(yield ~ block + N*P*K, data = npk)
+## str(npk.mf) # the data frame + "terms" attribute
+
+m.npk <- model.matrix(attr(npk.mf, "terms"), data = npk)
+class(M.npk <- Matrix(m.npk))
+dim(M.npk)# 24 x 13  sparse Matrix
+t(M.npk) # easier to display, column names readably displayed as row.names(t(.))
+
+
+###################################################
+### code chunk number 12: aov-large-ex
+###################################################
+id <- factor(1:20)
+a <- factor(1:2)
+b <- factor(1:2)
+d <- factor(1:1500)
+aDat <- expand.grid(id=id, a=a, b=b, d=d)
+aDat$y <- rnorm(length(aDat[, 1])) # generate some random DV data
+dim(aDat) # 120'000 x 5  (120'000 = 2*2*1500 * 20 = 6000 * 20)
+
+
+###################################################
+### code chunk number 13: aov-ex-X-sparse
+###################################################
+d2 <- factor(1:150) # 10 times smaller
+tmp2 <- expand.grid(id=id, a=a, b=b, d=d2)
+dim(tmp2)
+dim(mm <- model.matrix( ~ a*b*d, data=tmp2))
+## is 100 times smaller than original example
+
+class(smm <- Matrix(mm)) # automatically coerced to sparse
+round(object.size(mm) / object.size(smm), 1)
+
+
+###################################################
+### code chunk number 14: X-sparse-image (eval = FALSE)
+###################################################
+## image(t(smm), aspect = 1/3, lwd=0, col.regions = "red")
+
+
+###################################################
+### code chunk number 15: X-sparse-image-fake
+###################################################
+png("sparseModels-X-sparse-image.png", width=6, height=3,
+    units='in', res=150)
+print(
+image(t(smm), aspect = 1/3, lwd=0, col.regions = "red")
+      )
+dev.off()
+
+
+###################################################
+### code chunk number 16: X-sparse-mult
+###################################################
+x <- 1:600
+system.time(y <- smm %*% x) ## sparse is much faster
+system.time(y. <- mm %*% x) ## than dense
+identical(as.matrix(y), y.) ## TRUE
+
+
+###################################################
+### code chunk number 17: sessionInfo
+###################################################
+toLatex(sessionInfo())
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Intro2Matrix.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Intro2Matrix.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Intro2Matrix.R	(revision 2476)
@@ -0,0 +1,100 @@
+### R code from vignette source 'Intro2Matrix.Rnw'
+### Encoding: UTF-8
+
+###################################################
+### code chunk number 1: preliminaries
+###################################################
+options(width=75)
+
+
+###################################################
+### code chunk number 2: ex1
+###################################################
+library(Matrix)
+
+M <- Matrix(10 + 1:28, 4, 7)
+M
+tM <- t(M)
+
+
+###################################################
+### code chunk number 3: ex2
+###################################################
+(M2 <- cBind(-1, M))
+M[2, 1]
+M[4, ]
+
+
+###################################################
+### code chunk number 4: set0
+###################################################
+M2[, c(2,4:6)] <- 0
+M2[2, ] <- 0
+M2 <- rBind(0, M2, 0)
+M2[1:2,2] <- M2[3,4:5] <- NA
+
+
+###################################################
+### code chunk number 5: asSparse
+###################################################
+sM <- as(M2, "sparseMatrix")
+10 * sM
+identical(sM * 2, sM + sM)
+is(sM / 10  +  M2 %/% 2, "sparseMatrix")
+
+
+###################################################
+### code chunk number 6: add1
+###################################################
+sM + 10
+
+
+###################################################
+### code chunk number 7: Comp1
+###################################################
+Mg2 <- (sM > 2)
+Mg2
+
+
+###################################################
+### code chunk number 8: str_mat
+###################################################
+str(Mg2)
+summary(Mg2)
+
+
+###################################################
+### code chunk number 9: drop0
+###################################################
+Mg2 <- drop0(Mg2)
+str(Mg2@x) # length 13, was 16
+
+
+###################################################
+### code chunk number 10: image
+###################################################
+data(CAex)
+print(image(CAex, main = "image(CAex)")) # print(.) needed for Sweave
+
+
+###################################################
+### code chunk number 11: sub_logi
+###################################################
+sM[sM > 2]
+sml <- sM[sM <= 2]
+sml
+
+
+###################################################
+### code chunk number 12: Tsparse-class
+###################################################
+getClass("TsparseMatrix") # (i,j, Dim, Dimnames) slots are common to all
+getClass("dgTMatrix")
+
+
+###################################################
+### code chunk number 13: sessionInfo
+###################################################
+toLatex(sessionInfo())
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Comparisons.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Comparisons.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Comparisons.Rnw	(revision 2476)
@@ -0,0 +1,257 @@
+\documentclass{article}
+\usepackage{myVignette}
+\usepackage[authoryear,round]{natbib}
+\bibliographystyle{plainnat}
+%%\VignetteIndexEntry{Comparisons of Least Squares calculation speeds}
+%%\VignetteDepends{Matrix}
+\begin{document}
+\SweaveOpts{engine=R,eps=FALSE,pdf=TRUE,width=5,height=3,strip.white=true,keep.source=TRUE}
+\setkeys{Gin}{width=\textwidth}
+\title{Comparing Least Squares Calculations}
+\author{Douglas Bates\\R Development Core Team\\\email{Douglas.Bates@R-project.org}}
+\date{\today}
+\maketitle
+\begin{abstract}
+  Many statistics methods require one or more least squares problems
+  to be solved.  There are several ways to perform this calculation,
+  using objects from the base R system and using objects in the
+  classes defined in the \code{Matrix} package.
+
+  We compare the speed of some of these methods on a very small
+  example and on a example for which the model matrix is large and
+  sparse.
+\end{abstract}
+<<preliminaries, echo=FALSE>>=
+options(width=75)
+@
+
+\section{Linear least squares calculations}
+\label{sec:LeastSquares}
+
+Many statistical techniques require least squares solutions
+\begin{equation}
+  \label{eq:LeastSquares}
+  \widehat{\bm{\beta}}=
+  \arg\min_{\bm{\beta}}\left\|\bm{y}-\bX\bm{\beta}\right\|^2
+\end{equation}
+where $\bX$ is an $n\times p$ model matrix ($p\leq n$), $\bm{y}$ is
+$n$-dimensional and $\bm{\beta}$ is $p$ dimensional.  Most statistics
+texts state that the solution to (\ref{eq:LeastSquares}) is
+\begin{equation}
+  \label{eq:XPX}
+  \widehat{\bm{\beta}}=\left(\bX\trans\bX\right)^{-1}\bX\trans\bm{y}
+\end{equation}
+when $\bX$ has full column rank (i.e. the columns of $\bX$ are
+linearly independent) and all too frequently it is calculated in
+exactly this way.
+
+
+\subsection{A small example}
+\label{sec:smallLSQ}
+
+As an example, let's create a model matrix, \code{mm}, and corresponding
+response vector, \code{y}, for a simple linear regression model using
+the \code{Formaldehyde} data.
+<<modelMatrix>>=
+data(Formaldehyde)
+str(Formaldehyde)
+(m <- cbind(1, Formaldehyde$carb))
+(yo <- Formaldehyde$optden)
+@
+Using \code{t} to evaluate
+the transpose, \code{solve} to take an inverse, and the \code{\%*\%}
+operator for matrix multiplication, we can translate \ref{eq:XPX} into
+the \Slang{} as
+<<naiveCalc>>=
+solve(t(m) %*% m) %*% t(m) %*% yo
+@
+
+On modern computers this calculation is performed so quickly that it cannot
+be timed accurately in \RR{}
+\footnote{From R version 2.2.0, \code{system.time()} has default argument
+  \code{gcFirst = TRUE} which is assumed and relevant for all subsequent timings}
+<<timedNaive>>=
+system.time(solve(t(m) %*% m) %*% t(m) %*% yo)
+@
+and it provides essentially the same results as the standard
+\code{lm.fit} function that is called by \code{lm}.
+<<catNaive>>=
+dput(c(solve(t(m) %*% m) %*% t(m) %*% yo))
+dput(unname(lm.fit(m, yo)$coefficients))
+@
+%$
+
+\subsection{A large example}
+\label{sec:largeLSQ}
+
+For a large, ill-conditioned least squares problem, such as that
+described in \citet{koen:ng:2003}, the literal translation of
+(\ref{eq:XPX}) does not perform well.
+<<KoenNg>>=
+library(Matrix)
+data(KNex, package = "Matrix")
+ y <- KNex$y
+mm <- as(KNex$mm, "matrix") # full traditional matrix
+dim(mm)
+system.time(naive.sol <- solve(t(mm) %*% mm) %*% t(mm) %*% y)
+@
+
+Because the calculation of a ``cross-product'' matrix, such as
+$\bX\trans\bX$ or $\bX\trans\bm{y}$, is a common operation in
+statistics, the \code{crossprod} function has been provided to do
+this efficiently.  In the single argument form \code{crossprod(mm)}
+calculates $\bX\trans\bX$, taking advantage of the symmetry of the
+product.  That is, instead of calculating the $712^2=506944$ elements of
+$\bX\trans\bX$ separately, it only calculates the $(712\cdot
+713)/2=253828$ elements in the upper triangle and replicates them in
+the lower triangle. Furthermore, there is no need to calculate the
+inverse of a matrix explicitly when solving a
+linear system of equations.  When the two argument form of the \code{solve}
+function is used the linear system
+\begin{equation}
+  \label{eq:LSQsol}
+  \left(\bX\trans\bX\right) \widehat{\bm{\beta}} = \bX\trans\by
+\end{equation}
+is solved directly.
+
+Combining these optimizations we obtain
+<<crossKoenNg>>=
+system.time(cpod.sol <- solve(crossprod(mm), crossprod(mm,y)))
+all.equal(naive.sol, cpod.sol)
+@
+
+On this computer (2.0 GHz Pentium-4, 1 GB Memory, Goto's BLAS, in Spring
+2004) the
+crossprod form of the calculation is about four times as fast as the
+naive calculation.  In fact, the entire crossprod solution is
+faster than simply calculating $\bX\trans\bX$ the naive way.
+<<xpxKoenNg>>=
+system.time(t(mm) %*% mm)
+@
+
+Note that in newer versions of \RR{} and the BLAS library (as of summer
+2007), \RR's \code{\%*\%} is able to detect the many zeros in \code{mm} and
+shortcut many operations, and is hence much faster for such a sparse matrix
+than \code{crossprod} which currently does not make use of such
+optimizations.  This is not the case when \RR{} is linked against an
+optimized BLAS library such as GOTO or ATLAS.
+%%
+Also, for fully dense matrices, \code{crossprod()} indeed remains faster
+(by a factor of two, typically) independently of the BLAS library:
+<<fullMatrix_crossprod>>=
+fm <- mm
+set.seed(11)
+fm[] <- rnorm(length(fm))
+system.time(c1 <- t(fm) %*% fm)
+system.time(c2 <- crossprod(fm))
+stopifnot(all.equal(c1, c2, tol = 1e-12))
+@ % using stopifnot(.) to save output
+
+
+\subsection{Least squares calculations with Matrix classes}
+\label{sec:MatrixLSQ}
+
+The \code{crossprod} function applied to a single matrix takes
+advantage of symmetry when calculating the product but does not retain
+the information that the product is symmetric (and positive
+semidefinite).  As a result the solution of (\ref{eq:LSQsol}) is
+performed using general linear system solver based on an LU
+decomposition when it would be faster, and more stable numerically, to
+use a Cholesky decomposition.  The Cholesky decomposition could be used
+but it is rather awkward
+<<naiveChol>>=
+system.time(ch <- chol(crossprod(mm)))
+system.time(chol.sol <-
+            backsolve(ch, forwardsolve(ch, crossprod(mm, y),
+                                       upper = TRUE, trans = TRUE)))
+stopifnot(all.equal(chol.sol, naive.sol))
+@
+
+The \code{Matrix} package uses the S4 class system
+\citep{R:Chambers:1998} to retain information on the structure of
+matrices from the intermediate calculations.  A general matrix in
+dense storage, created by the \code{Matrix} function, has class
+\code{"dgeMatrix"} but its cross-product has class \code{"dpoMatrix"}.
+The \code{solve} methods for the \code{"dpoMatrix"} class use the
+Cholesky decomposition.
+<<MatrixKoenNg>>=
+mm <- as(KNex$mm, "dgeMatrix")
+class(crossprod(mm))
+system.time(Mat.sol <- solve(crossprod(mm), crossprod(mm, y)))
+stopifnot(all.equal(naive.sol, unname(as(Mat.sol,"matrix"))))
+@
+
+Furthermore, any method that calculates a
+decomposition or factorization stores the resulting factorization with
+the original object so that it can be reused without recalculation.
+<<saveFactor>>=
+xpx <- crossprod(mm)
+xpy <- crossprod(mm, y)
+system.time(solve(xpx, xpy))
+system.time(solve(xpx, xpy)) # reusing factorization
+@
+
+The model matrix \code{mm} is sparse; that is, most of the elements of
+\code{mm} are zero.  The \code{Matrix} package incorporates special
+methods for sparse matrices, which produce the fastest results of all.
+
+<<SparseKoenNg>>=
+mm <- KNex$mm
+class(mm)
+system.time(sparse.sol <- solve(crossprod(mm), crossprod(mm, y)))
+stopifnot(all.equal(naive.sol, unname(as(sparse.sol, "matrix"))))
+@
+
+As with other classes in the \code{Matrix} package, the
+\code{dsCMatrix} retains any factorization that has been calculated
+although, in this case, the decomposition is so fast that it is
+difficult to determine the difference in the solution times.
+
+<<SparseSaveFactor>>=
+xpx <- crossprod(mm)
+xpy <- crossprod(mm, y)
+system.time(solve(xpx, xpy))
+system.time(solve(xpx, xpy))
+@
+
+\subsection*{Session Info}
+
+<<sessionInfo, results=tex>>=
+toLatex(sessionInfo())
+@
+
+<<from_pkg_sfsmisc, echo=FALSE>>=
+
+if(identical(1L, grep("linux", R.version[["os"]]))) { ##----- Linux - only ----
+
+Sys.procinfo <- function(procfile)
+{
+  l2 <- strsplit(readLines(procfile),"[ \t]*:[ \t]*")
+  r <- sapply(l2[sapply(l2, length) == 2],
+              function(c2)structure(c2[2], names= c2[1]))
+  attr(r,"Name") <- procfile
+  class(r) <- "simple.list"
+  r
+}
+
+Scpu <- Sys.procinfo("/proc/cpuinfo")
+Smem <- Sys.procinfo("/proc/meminfo")
+} # Linux only
+@
+<<Sys_proc_fake, eval=FALSE>>=
+if(identical(1L, grep("linux", R.version[["os"]]))) { ## Linux - only ---
+ Scpu <- sfsmisc::Sys.procinfo("/proc/cpuinfo")
+ Smem <- sfsmisc::Sys.procinfo("/proc/meminfo")
+ print(Scpu[c("model name", "cpu MHz", "cache size", "bogomips")])
+ print(Smem[c("MemTotal", "SwapTotal")])
+}
+@
+<<Sys_proc_out, echo=FALSE>>=
+if(identical(1L, grep("linux", R.version[["os"]]))) { ## Linux - only ---
+ print(Scpu[c("model name", "cpu MHz", "cache size", "bogomips")])
+ print(Smem[c("MemTotal", "SwapTotal")])
+}
+@
+
+\bibliography{Matrix}
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Comparisons.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/Matrix/doc/Comparisons.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/INDEX	(revision 2476)
@@ -0,0 +1,6 @@
+bobyqa                  An R interface to the bobyqa implementation of
+                        Powell
+newuoa                  An R interface to the NEWUOA implementation of
+                        Powell
+uobyqa                  An R interface to the uobyqa implementation of
+                        Powell
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/NAMESPACE	(revision 2476)
@@ -0,0 +1,5 @@
+useDynLib(minqa, .registration = TRUE)
+import(Rcpp)
+export(bobyqa, newuoa, uobyqa)
+S3method(print, minqa)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/minqa/DESCRIPTION	(revision 2476)
@@ -0,0 +1,21 @@
+Package: minqa
+Type: Package
+Title: Derivative-free optimization algorithms by quadratic
+        approximation
+Version: 1.2.4
+Author: Douglas Bates, Katharine M. Mullen, John C. Nash, Ravi Varadhan
+Maintainer: Katharine M. Mullen <katharine.mullen@stat.ucla.edu>
+Description: Derivative-free optimization by quadratic approximation
+        based on an interface to Fortran implementations by M. J. D.
+        Powell.
+License: GPL-2
+URL: http://optimizer.r-forge.r-project.org
+Imports: Rcpp (>= 0.9.10)
+LinkingTo: Rcpp
+SystemRequirements: GNU make
+NeedsCompilation: yes
+Packaged: 2014-10-09 07:29:53 UTC; kmm
+Repository: CRAN
+Date/Publication: 2014-10-09 15:29:18
+Built: R 3.3.0; x86_64-apple-darwin13.4.0; 2016-05-04 14:08:56 UTC; unix
+Archs: minqa.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/CITATION	(revision 2476)
@@ -0,0 +1,17 @@
+citHeader("To cite the car package in publications use:")
+
+citEntry(entry = "Book",
+  title        = "An {R} Companion to Applied Regression",
+  edition	   = "Second",
+  author       = personList(as.person("John Fox"), as.person("Sanford Weisberg")),
+  year         = "2011",
+  publisher    = "Sage",
+  address      = "Thousand Oaks {CA}",
+  url          = "http://socserv.socsci.mcmaster.ca/jfox/Books/Companion",
+
+  textVersion  =
+  paste("John Fox and Sanford Weisberg (2011).",
+        "An {R} Companion to Applied Regression, Second Edition.",
+        "Thousand Oaks CA: Sage.",
+        "URL: http://socserv.socsci.mcmaster.ca/jfox/Books/Companion")
+)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/NAMESPACE	(revision 2476)
@@ -0,0 +1,315 @@
+# last modified 2016-11-25 by J. Fox
+
+importFrom(MASS, cov.trob, polr, rlm)
+importFrom(nnet, multinom)
+importFrom(pbkrtest, KRmodcomp, # KRmodcomp.lmerMod, KRmodcomp.mer, 
+           vcovAdj) #, vcovAdj.lmerMod, vcovAdj.mer)
+importFrom(mgcv, gam, s)
+importFrom(quantreg, rqss, qss, fitted.rqss)
+importFrom(graphics, abline, arrows, axis, box, boxplot, contour, hist, identify, 
+    layout, legend, lines, locator, mtext, pairs, par, plot, points, polygon, 
+    rug, segments, strheight, strwidth, text)
+importFrom(grDevices, boxplot.stats, col2rgb, gray, palette, rgb)
+importFrom(stats, D, IQR, alias, anova, as.formula, bw.nrd0, coef, coefficients, 
+    complete.cases, confint, contrasts, "contrasts<-", cooks.distance, cor, 
+    cov, cov.wt, cov2cor, density, deviance, df.residual, dfbeta, dnorm, 
+    drop1, family, fitted, fitted.values, fivenum, formula, gaussian, getCall, 
+    glm, glm.fit, hatvalues, is.empty.model, lm, lm.fit, loess, loess.control, 
+    logLik, lowess, lsfit, make.link, median, model.frame, model.matrix, 
+    model.matrix.default, model.response, model.weights, na.omit, na.pass, 
+    naresid, optim, optimize, p.adjust, pchisq, pf, pnorm, ppoints, predict, printCoefmat, 
+    pt, qchisq, qf, qnorm, qqline, qqnorm, qt, quantile, resid, residuals, rnorm, 
+    rstandard, rstudent, sd, setNames, spline, summary.lm, terms, update, var, vcov, weights,
+    optimHess)
+importFrom(utils, browseURL, head, methods)
+# importFrom(VGAM, vcovvlm, coefvlm, formulavlm, model.matrixvlm)
+
+export(
+    .carEnv,
+    
+    basicPowerAxis,
+    bcPowerAxis,
+    Boxplot,
+    carWeb,
+    confidenceEllipse,
+    contr.Helmert,
+    contr.Sum,
+    contr.Treatment,
+    dataEllipse,
+    densityPlot,
+    ellipse,
+    logit,
+    panel.car,
+    probabilityAxis,
+    qqPlot,
+    qqp,
+    recode,
+    Recode,
+    regLine,
+    scatter3d,
+    scatterplot, 
+    scatterplotMatrix,
+    sigmaHat,
+    slp,
+    some,
+    sp,
+    spm,
+    spreadLevelPlot,
+    symbox,
+    which.names, whichNames,
+    yjPowerAxis,
+    Anova,
+    basicPower, bcPower, yjPower, powerTransform, skewPower,
+    boxCox,
+    boxCoxVariable,
+    boxTidwell,
+    ceresPlot,
+    ceresPlots,
+    crPlot,
+    crPlots,
+    crp,
+    deltaMethod,
+    dfbetaPlots,
+    dfbetasPlots,
+    dwt,
+    durbinWatsonTest,
+    estimateTransform, testTransform,	
+    hccm,
+    Identify3d,
+    infIndexPlot,
+    influenceIndexPlot,
+    influencePlot,
+    invResPlot, inverseResponsePlot, invTranPlot, invTranEstimate,
+    leveneTest,
+    leveragePlot,
+    leveragePlots,
+    lht,
+    linearHypothesis,
+    makeHypothesis, printHypothesis,
+    Manova,
+    mmp, mmps, marginalModelPlot, marginalModelPlots,
+    ncvTest,
+    outlierTest,
+    vif,
+    avPlot, avPlots, showLabels, residualPlot, residualPlots,
+    bootCase, nextBoot,
+    subsets,
+    compareCoefs,
+    matchCoefs,
+    Boot,
+    gamLine,
+    loessLine,
+    quantregLine,
+    mcPlot,
+    mcPlots,
+    adaptiveKernel,
+    
+    # method explicitly exported for import in other packages
+    linearHypothesis.default,
+    
+    # deprecated functions
+    av.plot,
+    av.plots,
+    box.cox,
+    bc,
+    box.cox.powers,
+    box.cox.var,
+    box.tidwell,
+    cookd,
+    confidence.ellipse,
+    ceres.plot,
+    ceres.plots,
+    cr.plot,
+    cr.plots,
+    data.ellipse,
+    durbin.watson,
+    levene.test,
+    leverage.plot,
+    leverage.plots,
+    linear.hypothesis,
+    outlier.test,
+    ncv.test,
+    qq.plot,
+    scatterplot.matrix,
+    spread.level.plot,
+    wcrossprod
+)    
+
+# methods
+
+S3method(confidenceEllipse, default)    
+S3method(confidenceEllipse, glm)    
+S3method(confidenceEllipse, lm)     
+S3method(print, spreadLevelPlot)   
+S3method(qqPlot, default)           
+S3method(qqPlot, glm)               
+S3method(qqPlot, lm)    
+S3method(scatter3d, default)
+S3method(scatter3d, formula)
+S3method(scatterplot, default)       
+S3method(scatterplot, formula)       
+S3method(scatterplotMatrix, default)
+S3method(scatterplotMatrix, formula)
+S3method(sigmaHat, default)
+S3method(sigmaHat, lm)
+S3method(sigmaHat, glm)
+S3method(some, data.frame)           
+S3method(some, default)              
+S3method(some, matrix)      
+S3method(spreadLevelPlot, default) 
+S3method(spreadLevelPlot, formula) 
+S3method(spreadLevelPlot, lm)     
+S3method(subsets, regsubsets)  
+S3method(boxCox, default)
+S3method(boxCox, lm)
+S3method(boxCox, formula) 
+S3method(boxCox, lmerMod)
+S3method(boxCox, formula)
+S3method(Anova, aov)
+S3method(Anova, coxph)
+S3method(Anova, coxme)
+S3method(Anova, default)
+S3method(Anova, glm)
+S3method(Anova, lm)
+S3method(Anova, lme)
+S3method(Anova, manova)
+S3method(Anova, mer)
+S3method(Anova, merMod)
+S3method(Anova, multinom)
+S3method(Anova, mlm)
+S3method(print, univaov)
+S3method(as.data.frame, univaov)
+S3method(Anova, polr)
+S3method(Anova, rlm)
+S3method(Anova, survreg)
+S3method(Anova, svyglm)
+S3method(avPlot, lm)
+S3method(avPlot, glm)
+S3method(bootCase, lm)
+S3method(bootCase, glm)
+S3method(bootCase, nls)
+S3method(Boxplot, default)
+S3method(Boxplot, formula)
+S3method(Boxplot, list)
+S3method(Boxplot, data.frame)
+S3method(Boxplot, matrix)
+S3method(nextBoot, lm)
+S3method(nextBoot, nls)
+S3method(boxTidwell, default)
+S3method(boxTidwell, formula)
+S3method(ceresPlot, glm)            
+S3method(ceresPlot, lm)
+S3method(crPlot, lm)              
+S3method(deltaMethod, default)
+S3method(deltaMethod, lm)
+S3method(deltaMethod,multinom)
+S3method(deltaMethod,polr)
+S3method(deltaMethod, nls)
+S3method(deltaMethod, survreg)
+S3method(deltaMethod, coxph)
+S3method(deltaMethod, mer)
+S3method(deltaMethod, merMod)
+S3method(deltaMethod, lme)
+S3method(deltaMethod, lmList)
+S3method(densityPlot, default)
+S3method(densityPlot, formula)
+S3method(dfbetaPlots, lm)
+S3method(dfbetasPlots, lm)
+S3method(durbinWatsonTest, default)
+S3method(durbinWatsonTest, lm)
+S3method(powerTransform, default)
+S3method(powerTransform, lm)
+S3method(powerTransform, lmerMod)
+S3method(influencePlot, lm)
+S3method(inverseResponsePlot, lm)
+S3method(invTranPlot, formula)
+S3method(invTranPlot, default)
+S3method(infIndexPlot, lm)
+S3method(powerTransform, formula)
+S3method(hccm, default)
+S3method(hccm, lm)
+S3method(leveneTest, formula)
+S3method(leveneTest, lm)
+S3method(leveneTest, default)
+S3method(leveragePlot, glm)         
+S3method(leveragePlot, lm)     
+S3method(linearHypothesis, default)
+S3method(linearHypothesis, glm)
+S3method(linearHypothesis, lm)
+S3method(linearHypothesis, lme)
+S3method(linearHypothesis, mer)
+S3method(linearHypothesis, merMod)
+S3method(linearHypothesis, mlm)
+S3method(linearHypothesis, polr)
+S3method(linearHypothesis, rlm)
+S3method(linearHypothesis, svyglm)
+S3method(linearHypothesis, nlsList)
+S3method(Manova, mlm)
+S3method(matchCoefs, default)
+S3method(matchCoefs, lme)
+S3method(matchCoefs, mer)
+S3method(matchCoefs, merMod)
+S3method(matchCoefs, mlm)
+S3method(mcPlot, lm)
+S3method(mmp, default)
+S3method(mmp, lm)
+S3method(mmp, glm)
+S3method(ncvTest, glm)
+S3method(ncvTest, lm)
+S3method(outlierTest, lm)
+S3method(print, Anova.mlm)
+S3method(print, boxTidwell)
+S3method(print, linearHypothesis.mlm)
+S3method(print, chisqTest)
+S3method(print, durbinWatsonTest)
+S3method(print, outlierTest)
+S3method(print, powerTransform)
+S3method(print, summary.powerTransform)
+S3method(summary, Anova.mlm)
+S3method(print, summary.Anova.mlm)
+S3method(print, powerTransform)
+S3method(print, summary.powerTransform)
+S3method(print, summary.skewpowerTransform)
+S3method(print, skewpowerTransform)
+S3method(summary, skewpowerTransform)
+S3method(summary, powerTransform)
+S3method(plot, powerTransform)
+S3method(plot, skewpowerTransform)
+S3method(contour, skewpowerTransform)
+S3method(contour, skewpowerTransformlmer)
+S3method(coef, powerTransform)
+S3method(coef, skewpowerTransform)
+S3method(vcov, powerTransform)
+S3method(vcov, skewpowerTransform)
+S3method(testTransform, powerTransform)
+S3method(testTransform, skewpowerTransform)
+S3method(residualPlots, lm)
+S3method(residualPlots, glm)
+S3method(residualPlot, default)
+S3method(residualPlot, lm)
+S3method(residualPlot, glm)
+S3method(summary, powerTransform)
+S3method(coef, powerTransform)
+S3method(vcov, powerTransform)
+S3method(vif, default)
+S3method(symbox, formula)
+S3method(symbox, default)
+# added with skewPower
+
+
+# methods related to Boot
+S3method(Boot, default)
+S3method(Boot, lm)
+S3method(Boot, glm)
+S3method(Boot, nls)
+S3method(hist, boot)
+S3method(confint, boot)
+S3method(summary, boot)
+S3method(print, summary.boot)
+S3method(print, confint.boot)
+
+# methods related to Box-Cox Transformations
+S3method(estimateTransform, default)
+S3method(estimateTransform, skewPower)
+S3method(estimateTransform, lmerMod)
+S3method(estimateTransform, skewPowerlmer)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/NEWS	(revision 2476)
@@ -0,0 +1,720 @@
+Changes to Version 2.1-4
+
+  o The smoother functions loessLine, gamLine and quantregLine used in many car functions now evaluate the smoother at an equally spaced grid of points rather than at the observed values on the horizontal axis of a plot.
+  
+  o spreadLevelPlot.lm now accepts point marking as in most other graphical functions in car.
+  
+  o Bug fixed in one of the skewPower support functions; thans to Balazs Banfai
+  
+  o Added support for lmer objects in power transformations
+  
+  o Added support for skewPower family power transformations for lm and lmer objects
+  
+  o Added list, data.frame, and matrix methods for Boxplot(), suggestion of Michael Friendly
+  
+  o Added adaptiveKernel() density estimator, with option to use it in densityPlot().
+  
+Changes to Version 2.1-3
+
+  o Corrected documentation for mcPlots
+  
+  o added id.location argument to showLabels to vary location of labels
+  
+  o added fix for compatiblity with Rcmdr with missing data in several plotting functions.
+  
+  o deltaMethod() now reports confidence intervals.
+  
+  o print.summary.Anova.mlm() has new SSP and SSPE arguments to determine whether the corresponding matrices are printed (suggestion of Michael Friendly).
+  
+  o summary() and print() methods for Anova.mlm() can now report univariate ANOVAs (suggestion and some code by Michael Friendly).
+  
+  o added "value" and "vcov" attributes to objects returned by linearHypothesis() (after suggestions by Liviu Andronic and Steven Yen).
+  
+  o compareCoefs() now checks classes of models. 
+  
+  o small fixes/changes.
+
+Changes to Version 2.1-2
+
+  o Modified scatter3d() so that plots can be embedded in HTML.
+
+Changes to Version 2.1-1
+
+  o influencePlot now returns Cook's distance, not its square root.
+    
+  o Anova() now supports "coxme" objects (produced by coxme() in coxme package) (request of Philipp Sprenger).
+    
+  o Anova() now works via its default method with "vglm" objects produced by functions in the VGAM package; and the default method of linearHypothesis() again works with these objects (problem reported by Michael Friendly).
+    
+  o Fixed Anova.coxph() so that it takes account of method (ties) argument (bug reported by Karl Ove Hufthammer).
+    
+  o Improvements to Anova.default() so that a wider variety of model classes are accommodated (following request of Liviu Andronic.)
+    
+  o dataEllipse() now throws an error if there are too few colors for the number of groups (fixing bug reported by Ottorino Pantani).
+    
+  o spreadLevelPlot.lm() now includes an optional smoother in addition to the fitted straight line (suggestion of Michael Friendly).
+    
+  o No longer import methods (as opposed to generics) directly from pbkrtest.
+    
+  o Added axis.ticks argument to scatter3d() (code contributed by David Winsemius).
+
+Changes to Version 2.1-0
+
+  o New power family called skewPower has been added that can be used with the Box Cox method with a few negative responses (joint work with Doug Hawkins).  Several functions modified to accomodate two-parameter power families.
+    
+  o Fixed bug in Anova() for coxph models with clusters (reported by Jesus Humberto Gomez ), due apparently to a change in coxph().
+
+Changes to Version 2.0-26
+
+  o Anova() F-tests for binomial and Poisson GLMs now changes error.estimate="dispersion" to "pearson" as advertized (bug reported by Will Petry).
+    
+  o Improved behavior of above-plot legends in scatterplot().
+    
+  o Fixed sp() (bug reported by Cesar Rabak).
+    
+  o Conforms to new CRAN requirements for package imports.
+
+Changes to Version 2.0-25
+
+  o Fixed df check in linearHypothesis.default() (bug report by Pierre Chausse).
+
+  o Fixed bug when vcov. argument to Anova() is a function (reported by Liviu Andronic).
+    
+  o Now export .carEnv to avoid problem with update() in Boot() (reported by Alan T. Arnholt).
+
+Changes to Version 2.0-24
+
+  o Fixed broken URLs.
+
+  o Changed handling of .carEnv environment.
+
+  o Moved pbkrtest, quantreg, and mgcv from Suggests: to Imports:.
+
+Changes to Version 2.0-23
+
+  o Modified ScatterplotSmoothers to add an 'offset' to the vertical axis of spread smooths.  This is required in the marginal model plot functions.  
+
+  o Fixed labels on mcPlot with overlay=FALSE
+
+  o Check for 0 residual df and 0 residual deviance (within rounding) in Anova() and linearHypothesis() (problem reported by Jonathan Love).
+
+  o Fixed model.matrix.lme and model.matrix.gls utility functions, and hence Anova and vif, respectively, to work with models specified with formulas supplied as objects (after problem noted by Gang Chen).
+
+  o Added Wong data set, used in mixed-models appendix.
+
+Changes to Version 2.0-22
+
+  o corrected bug in 'terms' argument in residualPlots, and other graphic functions with a 'terms' argument
+
+  o added residual curvature tests for glm.nb
+
+  o mcPlot and mcPlots draw 'marginal/conditional' plots for lm objects.  The marginal plot is of the centered response versus a centered regressor; the conditional plot is the corresponding added-variable plot.  The plots can be overlaid or viewed side-by-side.
+
+  o added argument marginal.scale to avPlots to scale the added-variable plot for Y on X|Z using the scale from the marginal plot of Y vs X ignoring X.  The default is FALSE, corresponding to using scaling to maximize resolution or use xlim and ylim to set user scaling.
+
+  o Fixed bugs in Anova.survreg() that could affect types II, II tests, both Wald and LR, and one similar bug in linearHypothesis.survreg().
+
+  o Replaced calls to require() with requireNamespace() where possible (suggestion of Brian Ripley).
+
+  o The following functions now produce warnings rather than errors when there are empty groups: scatterplot(), scatterplotMatrix(), scatter3d(), densityPlot().
+
+  o Corrected name of "Blackmoor" dataset to "Blackmore".
+
+  o Added KosteckiDillon migraines dataset (contributed by Georges Monette).
+
+  o introduced linearHypothesis.rlm() for rlm models (suggestion of Matthieu Stigler).
+
+  o Small bug fixes/improvements.
+
+Changes to Version 2.0-21
+
+  o residualPlot error when using 'type="rstudent" has been fixed.
+
+  o Minor change to "recode" documentation; improved error checking in recode().
+
+  o Fixed a bug in gamLine with non-canonical links. (Thanks to Hani Christoph)
+
+  o Added has.intercept.multinom() to make Anova() work with multinom objects fit to a dichotomous response (after bug report by Kristian Hovde Liland).
+
+  o Replaced vif.lm() with vif.default() to cover wider variety of models (after question by Laura Rigg about gls models).
+
+  o Diagonal panels in scatterplotMatrix() (except for histograms) show groups separately when plotted by groups (suggestion by Erich Neuwirth).
+
+  o Added vcov. argument to Anova.lm().
+
+Changes to Version 2.0-20
+
+  o Added new id.method="r" to showLabels for labeling plots of residuals; default id.method changed in residualPlots.
+
+  o Fixed handling of labels argument to outlierTest() (bug report by Stephane Laurent).
+
+  o Accommodate numeric variables consisting entirely of NAs in recode() (suggestion of Karl Ove Hufthammer).
+
+  o Prevent dataEllipse() from opening a graphics device when draw=FALSE (fixing bug reported by Rafael Laboissiere).
+
+  o The functions makeHypothesis() and printHypothesis(), intended for internal use, are exported so that they can be used in other packages (request of Arne Henningsen).
+
+  o Small fixes.
+
+Changes to Version 2.0-19
+
+  o allow a grouping variable for color, symbol and fits in residualPlots
+
+  o fixed axis labelling probelm in influenceIndexPlot
+
+  o fixed scoping problems in Boot, bootCase, and ncvTest
+
+  o added an argument to deltaMethod for passing arguments to get scoping right when calling linearHypothesis in another function; other deltaMethod bugs fixed
+
+  o slight modification to documentation of Boot
+
+  o summary() method for "Anova.mlm" objects now returns an object, printed by a corresponding print() method (adapting code contributed by Gabriel Baud-Bovy).
+
+  o added .merMod methods to Anova(), deltaMethod(), linearHypothesis(), matchCoefs(), and unexported utilities df.residual() and has.intercept(); insured compatibility with nlme and CRAN and developments versions of lme4.
+
+  o added use argument to scatterplotMatrix() (suggestion of Antoine Lizee).
+
+  o export linearHypothesis.default() for use in other packages (suggestion of Achim Zeileis).
+
+  o small changes and fixes.
+
+Changes to Version 2.0-18
+
+  o Bug fix to boot with type="residual"
+
+  o Added densityPlot() function.
+
+Changes to Version 2.0-17
+
+  o Add a variable to AMSsurvey.
+
+  o Fix to residualPlots to compute lack of fit tests with missing values and glms.
+
+  o Fix to residualPlots with a 0/1 variable not declared a factor.
+
+  o Boxplot() now works properly with at argument passed to boxplot() via ... (contribution of Steve Ellison).
+
+  o qqPlot.lm() now works with "aov" objects (fixing problem reported by Thomas Burk).
+
+  o Small fixes to code and docs.
+
+Changes to Version 2.0-16
+
+  o Fixed bug in printing of hypotheses by linearHypothesis(), where numeric
+constants of the form 1.* or -1.* were printed incorrectly (reported by Johannes Kutsam).
+
+  o Fixed a bug in showLabels() with multiple groups in the scatterplot() and scatterplotMatrix() function.
+
+  o linearHypothesisTest() now tolerates newlines and tabs in hypotheses (suggestion of David Hugh-Jones).
+
+  o two bugs fixed in Boot() (found by David Pain) changed argument f to f. in bootCase().
+
+  o summary.Boot(), confint.Boot() and hist.Boot() handle aliases correctly.
+
+  o Boxplot.formula() now accepts more than one conditioning variable (suggestion of Christina Yassouridis).
+
+  o Boxplot() now properly handles at argument passed through via ... to boxplot() (contribution of Steve Ellison).
+
+  o Small fixes.
+
+Changes to Version 2.0-15
+
+  o Added an argument coef. to linearHypothesis so tests of the linear hypohtesis form can be computed without reference to a fitted model
+
+  o Added a linearHypothesis.nlsList method
+
+  o Added an nls method for Boot
+
+  o Recode() introduced as alias for recode() to avoid name clash with Hmisc.
+
+  o residualPlots for glms now ignore starting values for the computing algorithm when computing lack of fit tests; starting values previously caused an error.
+
+  o Marginal Model Plots now allow conditioning on a categorical variable.
+
+Changes to Version 2.0-14
+
+  o Smoothers now given as arguments to scatterplot(), scatterplotMatrix(), residualPlots() and other functions; gamLine(), loessLine() (default), and quantregLine() smoothers provided.
+
+  o linearHypothesis.mer() and Anova.mer() now consistent with pbkrtest version 0.3-2.
+
+  o Small changes and fixes.
+
+Changes to Version 2.0-13
+
+  o Added point marking (id.n, etc.) to dataEllipse
+
+  o Changed the default for id.method with the invTranPlot to "x".
+
+  o The ncvTest has been rewritten for stability, and unneeded 'data', 'subset' and 'na.action' argument have been removed
+
+  o Added new function 'Boot' that is a simple front-end to boot::boot that will be useful when bootstrapping regression models.  Implemented for lm and glm, but this is likely to work for many other S3 regression models with and 'update' method, 'subset' argument.
+
+  o Fixed bug in 'compareCoefs' with non-full rank models
+
+  o Modified 'bootCase' to return a matrix of class c("bootCase", "matrix") so generic functions can be written to summarize these objects.
+
+  o Minor changes to the returned value of showLabels to give both the label and the corresponding row number.  showLabels documentation tweaked.
+
+  o Improved handling of center.pch argument to ellipse() (suggestion of Rob Kushler).
+
+  o New test argument for linearHypothesis.mer()  and test.statistic argument for Anova.mer() for F-tests with Kenward/Roger df, provided by pbkrtest package.
+
+  o Anova.mlm() now will do univariate repeated-measures ANOVA even if the error SSP matrix is singular.
+
+  o hccm() will now accept a weighted linear models (suggestion of Stefan Holst Bache).
+
+  o deltaMethod.default() now applies coef() and vcov() to a model for which these are supported (generalizing a suggestion by Scott Kostyshak).
+
+  o Fixed handling of labels argument in scatterplot.formula() and scatterplotMatrix.formula().
+
+  o Fixed qqPlot.default() so that it honors line="none" (bug reported by Rob Kushler).
+
+  o Added new default method for confidenceEllipse(), which now can construct confidence ellipses for linear functions of coefficients.
+
+  o globalVariables() called for R 2.15.1 or later.
+
+  o Fixed bug in logit() when percents=TRUE and largest percent is 1 (reported by Eric Goodwin).
+
+  o Added radius argument to scatter3d() (suggestion of Antonino Messina).
+
+  o Fixed spurious errors message in scatter3d() when groups present but surface=FALSE (reported by David L. Carlson).
+
+
+Changes to Version 2.0-12
+
+  o modified compareCoefs to support any S4 object with that responds to the 'coefs' and 'vcov' methods (suggestion of David Hugh-Jones).
+
+  o fixed bug in deltaMethod.surveg and deltaMethod.coxph to all use of the 'parameterNames' argument.
+
+	o compareCoefs:  added an argument 'print' to suppress printing output.  Added support for 'lme' objects.
+	
+	o fixed xlab, ylab arguments and added dfn argument to confidenceEllipse() (suggestions of Michael Friendly).
+	
+	o moved survival from Depends to Suggests (request of Michael Friendly); added survey to Suggests.
+	
+	o added Anova.svyglm and linearHypothesis.svyglm.
+	
+	o fixed bug in linearHypothesis() that affected printing of some hypotheses (reported by Arne Henningsen).
+	
+	o fixed bug in Anova() for GLMs when F-test used with na.exclude.
+	
+	o package now byte-compiled.
+
+Changes to Version 2.0-11
+
+  	o the arguments to deltaMethod have changed, with parameterPrefix replaced by parameterNames.  See documentation for useage.
+
+  	o deltaMethod methods for lmList, nlsList, and mer objects have been added.  The syntax for the multinom method has been improved.
+
+  	o the 'layout' argument is used in several graphical functions to determine the layout of multiple graphs within the same graphical window.  Setting layout=NA in these functions suppresses this behavior and the user can set the layout outside the function (suggested by Steve Milborrow)
+
+	o compareCoefs() works with 'mer' objects created by lme4
+
+  	o  avPlot() now will optionally plot concentration ellipses; avPlot() and avPlots() invisibly return coordinates (suggested by Michael Friendly, with contributed code).
+
+  	o  dataEllipse() now allows combination of add=FALSE and plot.points=FALSE (suggested by Michael Friendly, with contributed code); the ellipse functions have acquired a "draw" argument, which can be used to suppress graphical output (suggestion of Benoit Bruneau).
+
+	o  ellipse(), confidenceEllipse(), and dataEllipse() return coordinates invisibly (suggested by Michael Friendly, with contributed code).
+	
+	o  fixed bug in printed representation of hypotheses with numbers starting with "-1" or "+1" (e.g., "-10") by linearHypothesis() (reported by Vincent Arel-Bundock).
+	
+	o  local version of fixef() to avoid lme4/nlme conflicts that surfaced in some situations with Anova().
+	
+	o  changed order of columns in ANOVA tables for mixed models to make them consistent with other models.
+
+Changes to Version 2.0-10
+
+  o  changed tukeyNonaddTest to be sure the test exists.
+
+  o  changed the default in residualPlots for AsIs from FALSE to TRUE.
+
+  o  improved color choice in scatterplot and scatterplotMatrix (at suggestion of Dan Putler).
+
+  o  moved up ... argument in qqPlot.default (suggestion of Peter Ehlers).
+
+  o  changed label on marginal model plot for generalized linear models verses fitted values to 'fitted values' rather than the incorrect 'Linear predictor"
+
+  o  mmp now passes graphical parameters to par
+
+  o  mmps now works correctly with 'gam' models (mgcv package)
+
+  o  modified bootCase to work with multivariate lm objects
+
+
+Changes to Version 2.0-9
+
+	o  added Anova and linearHypothesis methods for mixed-effects model objects created by lmer in lme4 and lme in nlme.
+	
+	o  added matchCoefs, convenience function to use with linearHypothesis.
+
+  o  scatterplot makes parallel boxplots, calling Boxplot, when x is a factor.
+
+  o  mmps (marginal model plots) works better with multidimensional terms like splines and polynomials, and permits plotting against terms in the data frame but not in the model formula.  AsIs argument removed.
+
+  o  residualPlots handles matrix-predictors similarly to mmps, above.
+
+  o  recode allows the recode-specification string to be split over more than one line.
+
+  o  small fixes to Anova.multinom, Anova.polr, and leveneTest.
+
+Changes to Version 2.0-8
+
+	o  added optional argument legend.coords to scatterplot to place legend (after question by Blaine Maley).
+	
+	o  bug fixes to powerTransform and residualPlots.
+
+Changes to Version 2.0-7
+
+	o  added fill and fill.alpha arguments to ellipse, etc., for translucent filled ellipses (suggested by Michael Friendly).
+	
+	o  fixed bug in recode, when a legitimate string includes the characters "else" (reported by Gustaf Rydevik).
+	
+	o  carWeb() now works with web site for the R Companion, Second Edition.
+
+Changes to Version 2.0-6
+
+  o  change influenceIndexPlots to used type="h" rather than type="l".
+
+  o  added surface.alpha and ellipsoid.alpha arguments to scatter3d.
+
+Changes to Version 2.0-5
+
+  o  add xlab and ylab arguments to avPlots, crPlots, ceresPlots, etc.,
+to override default labeling if desired.
+
+  o  fix col and col.lines arguments in avPlots, crPlots, ceresPlots, etc., so
+graphical functions work the same way.
+
+	o  confidenceEllipse.lm and .glm now have add argument, courtesy of Rafael Laboissiere.
+
+  o  small fixes to docs.
+
+Changes to Version 2.0-4
+
+  o  fix col argument to work to set point colors with residualPlots, leveragePlots, invTranPlot, marginalModelPlots
+
+Changes to Version 2.0-3
+
+  o  coefTable() changed to compareCoefs() to avoid name clash with the miscTools package (reported Arne Henningsen).
+
+  o  Small changes.
+
+Changes to Version 2.0-2
+
+  o leaps package demoted from Depends to Suggests to avoid problem for Debian (reported by Dirk Eddelbuettel).
+
+Changes to Version 2.0-1
+
+  o  No longer export non-standard coef.multinom() (problem reported by Brian Ripley, Achim Zeileis).
+
+Changes to Version 2.0-0
+
+	o  Functions renamed to camel case.
+	
+	o  New functions: bootCase(), Boxplot(), deltaMethod(), inverseResponsePlot(), invTranPlot(), various transformation functions
+	
+	o  Reworked (or renamed): Anova(), avPlots(), boxCoxVariable(), boxTidwell(), ceresPlots(), crPlots(), durbinWatsonTest(), hccm(), influencePlot(), leveneTest(), leveragePlots(), linearHypothesis(), ncvTest(), outlierTest(), qqPlot(), regLine(), scatterplot(), scatterplotMatrix(), spreadLevelPlot(), transformation-axis functions, vif().
+	
+	o  Removed: Ask(), box.cox.powers(), box.cox(), cookd(), n.bins().
+	
+	o  Added WeightLoss data set (courtesy of Michael Friendly).
+	
+	o  Utility functions no longer exported; some removed.
+	
+	o  Most moved, renamed, removed functions retained as deprecated functions.
+	
+	o  Improvements to linearHypothesis(), thanks to Achim Zeileis.
+	
+	o  Small changes.
+
+Changes to Version 1.0-0
+
+    o Added functions for effects plots [see help(effect)].
+
+    o Edited .Rd files to use \method{} for generics.
+
+    o Changed some F's to f's
+
+    o Modified durbin.watson to allow directional alternative hypotheses
+
+Changes to Version 1.0-1
+
+    o Reworked glm methods for Anova for type II LR and F tests to avoid scoping issues produced by use of update.
+
+    o Added reset.par argument to scatterplot.default to allow addition of graphical elements to the plot.
+
+    o The generic function Var and its methods are deprecated, in favour of vcov, now in the base package.
+
+Changes to Version 1.0-2
+
+  o The fitted line can be suppressed in qq.plot.
+
+  o ceres.plots can now handle models that include transformed predictors -- e.g., log(x), I(x^2).
+
+  o Fixed bug in Anova which caused it to fail calculating type-II F or LR tests for glms in certain circumstances. (Bug introduced in version 1.0-1.)
+
+  o Made arguments of method functions consistent with generics (mostly adding ... to methods).
+
+  o Fixed a bug in plot.effect which caused nonalphabetical orderings of factor levels to be lost; added arguments cex, xlim, and ylim to plot.effect.
+
+  o Modified effect to permit computing effects for terms not in the model or with higher-order relatives in the model.
+
+  o Added functions contr.Treatment, contr.Sum, and contr.Helmert; see help(Contrasts).
+
+  o Added Burt.txt data set (to go with Burt.Rd documentation file already there).
+
+  o Added Arrests.txt data set.
+
+  o Fixed an error in hccm.lm which produced incorrect values for the "hc1", "hc2", and "hc3" corrections; added "hc4" correction.
+
+  o Modified influence.glm to handle 0 prior weights; changes to influence.lm and influence.glm to insure compatibility with R 1.7.0.
+
+  o removed quietly=TRUE from several calls to require(), to avoid invisibly altering the search path.
+
+Changes to Version 1.0-3
+
+  o All deletion diagnostics (with the exception of cookd) have been moved to the base package (as of R 1.7.0) and are removed from car; cookd now simply calls cooks.distance in the base package.
+
+  o plot.effect modified was modified so that it can plot on the scale of the "link" function but label axes on the scale of the response. See ?plot.effect for details.
+
+Changes to Version 1.0-4
+
+  o Modified box.cox.powers to accept hypotheses to be tested.
+
+  o Removed effect-display functions (to effects package).
+
+  o Added warnings to Anova methods for F-tests in binomial and Poisson GLMs that the dispersion is estimated rather than taken as 1.
+
+Changes to Version 1.0-5
+
+  o Small changes to scatterplot and scatterplot.matrix to avoid "condition has length > 1" warnings.
+
+Changes to Version 1.0-6
+
+  o Print method for outlier.test no longer prints NA for Bonferroni p-values > 1; prints "> 1".
+
+Changes to Version 1.0-7
+
+  o More small changes to scatterplot to avoid "condition has length > 1" warnings.
+
+Changes to Version 1.0-8
+
+  o Small correction to documentation for recode.
+
+  o Restored missing States data frame.
+
+  o Small documentation changes to pass new package checks.
+
+Changes to Version 1.0-9
+
+  o vif now reports an error if the model has fewer than 2 terms (not counting the constant)
+
+  o Small changes.
+
+Changes to Version 1.0-10
+
+  o scatterplot.formula made compatible with na.action=na.exclude.
+
+  o Documentation corrections to satisfy package checks in R 1.9.0 (devel).
+
+Changes to Version 1.0-11
+
+  o More documentation fixes.
+
+  o Fix to print method for outlier.test.
+
+Changes to Version 1.0-12
+
+  o Small fix to box.cox.powers to avoid inconsequential warnings.
+
+  o Removed dependency on now nonexistent modreg package.
+
+  o Moved levene.test and influence.plot functions to car from the Rcmdr package.
+
+  o box.cox now reports an error when it cannot compute an automatic start.
+
+  o Fixed bug in ceres.plot.lm that caused an error when the subset argument was used to exclude observations in fitting the model.
+
+  o Changed ncv.test to allow weighted lm object (suggested by Sandy Weisberg).
+
+  o scatterplot.matrix now passes ... argument to pairs (also suggested by Sandy Weisberg).
+
+Changes to Version 1.0-13
+
+  o Small changes to levene.test and box.cox.powers to make output compatible with version 0.9-10 of the Rcmdr package.
+
+Changes to Version 1.0-14
+
+  o cr.plots() ignored its span argument when variable was specified in the call (thanks to Christophe Pallier for pointing this out).
+
+  o Added some(), which prints a few randomly selected elements (or rows) of an object.
+
+  o Added Anova() methods for multinomial logistic regression [via multinom() in the nnet package], and for proportional-odds logistic regression [via polr() in the MASS package).
+
+  o Made influence.plot() generic, with a method for lm objects that handles glm objects as well.
+
+Changes to Version 1.0-15
+
+  o Changed recode() to accommodate factor levels with spaces (suggested by Dan Putler).
+
+  o Added cex* arguments to scatterplot() and scatterplot.matrix(), and a jitter argument to scatterplot (suggested by CG Pettersson).
+
+  o Added symbox() function for selecting a transformation to symmetry (a modified version of a function contributed by Gregor Gorjanc).
+
+  o ncv.test() modified so that it doesn't fail when the variance formula has a different pattern of NAs than the model formula (adapting a suggestion by Achim Zeileis).
+
+  o Added argument to spread.level.plot.default() to optionally suppress point labels (suggested by Josyf Mychaleckyj).
+
+  o vif() modified by Henric Nilsson to be applicable to generalized linear models and other models inheriting from class lm. Weighted linear models are now allowed.
+
+Changes to Version 1.0-16
+
+  o Modified to linear.hypothesis by Achim Zeleis to support alternative coefficient covariance-matrix estimators for linear models (via new vcov argument); to provide both chisquare and F tests for both linear and generalized-linear models (via new test argument); and to produce neater output (from both .lm and .glm methods).
+
+  o Anova methods modified to work with new linear.hypothesis functions.
+
+Changes to Version 1.0-17
+
+  o Fixed a bug in scatterplot() that caused marginal boxplots to be incorrect when xlim or ylim arguments are supplied (pointed out by Erich Neuwirth).
+
+Changes to Version 1.0-18
+
+  o Restored print.chisq.test(), used by ncv.test() (which had been removed when linear.hypothesis was changed).
+
+  o Fixed bug in recode() that could cause values with mixed letters and numbers to be treated incorrectly (reported by David Dailey and Tom Mulholland).
+
+Changes to Version 1.0-19
+
+  o Fix to linear.hypothesis.lm and linear.hypothesis.glm, which were printing long formulas awkwardly (thanks to Henric Nilsson).
+
+Changes to Version 1.0-20
+
+  o Major reworking of linear.hypothesis (mostly due to Achim Zeleis) (1) to allow symbollic specification of the hypothesis, and (2) to provide a default method that is applicable to any model for which coef and vcov methods exist (or, in the latter case, for which a coefficient-covariance matrix is supplied).
+
+  o The car package now has a namespace.
+
+  o Fixes to Anova.multinom and Anova.polr reflecting changes to multinom and polr (thanks Huaibao Feng for a bug report).
+
+  o Added cex argument to qq.plot methods, suggested by Peter Ehlers.
+
+  o Modified box.cox so that the power argument can be a vector, returning a matrix of transformed values, adapting code contributed by Spencer Graves (but implementing different behaviour than the one suggested by Spencer).
+
+  o Added identity.cex and identify.col arguments to influence.plot, as suggested by John Wilkinson.
+
+  o Data sets are now provided as lazy data; Rd files updated to remove references to data() in examples.
+
+  o Small modifications to documentation.
+
+Changes to Version 1.1-0
+
+  o  New version of linear.hypothesis (mostly due to Achim Zeleis); some changes to other functions as a consequence.
+
+Changes to Version 1.1-1
+
+  o  Small changes to scatterplot.matrix, adapting contribution of Richard Heiberger.
+
+  o  scatterplot now places the legend in the top margin rather than positioning it interactively.
+
+  o  Cleaned up links to help files in standard packages.
+
+Changes to Version 1.1-2
+
+  o  Fixed small bug in linear.hypothesis() that caused the RHS to printed with NAs in some circumstances.
+
+Changes to Version 1.2-0
+
+  o  vif now reports a more understandable error message when a coefficient in the model is aliased (thanks to a question posed by Ulrike Gr?mping).
+
+  o  recode now takes a levels argument (as suggested by Adrian Dusa).
+
+  o  Corrected diagonal panel functions local to scatterplot.matrix.default, which omitted ... argument (pointed out by Kurt Hornik and Brian Ripley).
+
+  o  New methods for multivariate-linear models (mlm objects) for linear.hypothesis and Anova. Added OBrienKaiser data set for examples.
+
+Changes to Version 1.2-1
+
+  o  The name of the function influence.plot was changed to influencePlot to avoid confusion with the influence generic in the stats package.
+
+Changes to Version 1.2-2
+
+  o  Bug fixed in the bc function (reported by Henric Nilsson).
+
+  o  Error in Bfox data set is now pointed out.
+
+  o  levene.test now checks that second argument is a factor.
+
+  o  Removed extended=FALSE argument to gsub() in some internal functions, since this argument is ignored when fixed=TRUE and generates a warning in R 2.6.0 (reported by Arne Henningsen).
+
+Changes to Version 1.2-3
+
+  o  Replaced obsolete \non_function{} markup in Rd files (reported by Kurt Hornik).
+
+Changes to Version 1.2-4
+
+  o  Avoid warnings in linear.hypothesis() produced by unnecessary use of extended = FALSE argument to strsplit() (problem reported by Alejandro Collantes Ch?vez-Costa).
+
+Changes to Version 1.2-5
+
+  o  Fixed small bug in reg.line() (pointed out by Kurt Hornik).
+
+Changes to Version 1.2-5
+
+  o  Improvements to linear.hypothesis.mlm() and Anova.mlm(), e.g., to detect deficient-rank error SSP matrices (as suggested by Ralf Goertz).
+
+  o  For models with only an intercept, Anova() with type="II" now substitutes equivalent type="III" tests (since the code for type="II" doesn't handle intercepts). This is especially useful for repeated-measures designs with only within-subjects factors (in response to a problem reported by Ralf Goertz).
+
+Changes to Version 1.2-7
+
+  o  Added Mauchly tests for sphericity in repeated-measures designs to summary.Anova.mlm() (suggested by Ralf Goertz).
+
+Changes to Version 1.2-8
+
+  o  HF eps > 1 is now set to 1 in adjusting df in summary.Anova.mlm(), consistent with the behaviour of anova.mlm() (suggested by Ralf Goertz).
+
+  o  Fixed bug in summary.Anova.mlm() that surfaced when all univariate repeated-measures tests have 1 df and hence GG and HF corrections don't apply to any of the tests (reported by Ralf Goertz).
+
+  o  levene.test() is now generic, contributed by  Derek Ogle.
+
+  o  Small changes.
+
+Changes to Version 1.2-9
+
+	o  Fixed bug in scatterplot() that left room for a legend even when legend.plot=FALSE (reported by David Carlson).
+	
+	o  Allowed colours in col argument to scatterplot() to recycle (suggested by David Carlson).
+	
+	o  verbose=TRUE in linear.hypothesis() now prints (in addition to previous output) the estimated value of the hypothesis (Oleksandr Perekhozhuk).
+	
+Changes to Version 1.2-10
+
+	o  Reworked Anova(), including adding default method and method for coxph objects.
+	
+Changes to Version 1.2-11
+
+	o  Bug fix to Anova().
+	
+	o  Small changes.
+	
+Changes to Version 1.2-12
+
+	o  Anova() now works properly with coxph objects with clusters.
+	
+	o  Fixed bug in ncv.test.lm() that could cause the function to fail.
+	
+	o  Small changes.
+	
+Changes to Version 1.2-13
+
+	o  influencePlot() optionally automatically identifies points with large Cook's Ds (suggested by Michael Friendly).
+	
+	o  Fixed bug in recode() (reported by Andrew McFadden).
+
+  o  Small changes.
+
+Changes to Version 1.2-14
+
+	o  Small correction to Chile data set.
+	
+Changes to Version 1.2-15
+
+  o  Small changes.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/R/car.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/R/car.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/R/car
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/R/car	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/R/car	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/R/car.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/R/car.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/DESCRIPTION	(revision 2476)
@@ -0,0 +1,71 @@
+Package: car
+Version: 2.1-4
+Date: 2016-11-30
+Title: Companion to Applied Regression
+Authors@R: c(person("John", "Fox", role = c("aut", "cre"), email = "jfox@mcmaster.ca"),
+	person("Sanford", "Weisberg", role = "aut", email = "sandy@umn.edu"),
+    person("Daniel", "Adler", role="ctb"),
+    person("Douglas", "Bates", role = "ctb"),
+    person("Gabriel", "Baud-Bovy", role = "ctb"),
+    person("Steve", "Ellison", role="ctb"),
+    person("David", "Firth", role = "ctb"),
+    person("Michael", "Friendly", role = "ctb"),
+    person("Gregor", "Gorjanc", role = "ctb"),
+    person("Spencer", "Graves", role = "ctb"),
+    person("Richard", "Heiberger", role = "ctb"),
+    person("Rafael", "Laboissiere", role = "ctb"),
+    person("Georges", "Monette", role = "ctb"),
+    person("Duncan", "Murdoch", role="ctb"),
+    person("Henric", "Nilsson", role = "ctb"),
+    person("Derek", "Ogle", role = "ctb"),
+    person("Brian", "Ripley", role = "ctb"),
+    person("William", "Venables", role = "ctb"),
+    person("David", "Winsemius", role="ctb"),
+    person("Achim", "Zeileis", role = "ctb"),
+    person("R-Core", role="ctb"))
+Depends: R (>= 3.2.0)
+Imports: MASS, mgcv, nnet, pbkrtest (>= 0.4-4), quantreg, grDevices,
+        utils, stats, graphics
+Suggests: alr4, boot, coxme, leaps, lme4, lmtest, Matrix, MatrixModels,
+        nlme, rgl (>= 0.93.960), sandwich, SparseM, survival, survey,
+        nloptr
+ByteCompile: yes
+LazyLoad: yes
+LazyData: yes
+Description: 
+  Functions and Datasets to Accompany J. Fox and S. Weisberg, 
+  An R Companion to Applied Regression, Second Edition, Sage, 2011.
+License: GPL (>= 2)
+URL: https://r-forge.r-project.org/projects/car/,
+        https://CRAN.R-project.org/package=car,
+        http://socserv.socsci.mcmaster.ca/jfox/Books/Companion/index.html
+Author: John Fox [aut, cre],
+  Sanford Weisberg [aut],
+  Daniel Adler [ctb],
+  Douglas Bates [ctb],
+  Gabriel Baud-Bovy [ctb],
+  Steve Ellison [ctb],
+  David Firth [ctb],
+  Michael Friendly [ctb],
+  Gregor Gorjanc [ctb],
+  Spencer Graves [ctb],
+  Richard Heiberger [ctb],
+  Rafael Laboissiere [ctb],
+  Georges Monette [ctb],
+  Duncan Murdoch [ctb],
+  Henric Nilsson [ctb],
+  Derek Ogle [ctb],
+  Brian Ripley [ctb],
+  William Venables [ctb],
+  David Winsemius [ctb],
+  Achim Zeileis [ctb],
+  R-Core [ctb]
+Maintainer: John Fox <jfox@mcmaster.ca>
+Repository: CRAN
+Repository/R-Forge/Project: car
+Repository/R-Forge/Revision: 467
+Repository/R-Forge/DateTimeStamp: 2016-11-30 23:29:33
+Date/Publication: 2016-12-02 10:12:54
+NeedsCompilation: no
+Packaged: 2016-11-30 23:47:19 UTC; rforge
+Built: R 3.3.2; ; 2016-12-03 12:01:05 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/html/00Index.html	(revision 2476)
@@ -0,0 +1,832 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Companion to Applied Regression</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Companion to Applied Regression
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;car&rsquo; version 2.1-4</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="# "> </a>
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#G">G</a>
+<a href="#H">H</a>
+<a href="#I">I</a>
+<a href="#K">K</a>
+<a href="#L">L</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#O">O</a>
+<a href="#P">P</a>
+<a href="#Q">Q</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#U">U</a>
+<a href="#V">V</a>
+<a href="#W">W</a>
+<a href="#Y">Y</a>
+<a href="#misc">misc</a>
+</p>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="car-package.html">car-package</a></td>
+<td>Companion to Applied Regression</td></tr>
+</table>
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="densityPlot.html">adaptiveKernel</a></td>
+<td>Nonparametric Density Estimates</td></tr>
+<tr><td style="width: 25%;"><a href="Adler.html">Adler</a></td>
+<td>Experimenter Expectations</td></tr>
+<tr><td style="width: 25%;"><a href="AMSsurvey.html">AMSsurvey</a></td>
+<td>American Math Society Survey Data</td></tr>
+<tr><td style="width: 25%;"><a href="Angell.html">Angell</a></td>
+<td>Moral Integration of American Cities</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.aov</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.coxme</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.coxph</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.default</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.glm</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.lm</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.lme</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.manova</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.mer</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.merMod</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.mlm</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.multinom</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.polr</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.rlm</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Anova.svyglm</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anscombe.html">Anscombe</a></td>
+<td>U. S. State Public-School Expenditures</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">as.data.frame.univaov</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">av.plot</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">av.plots</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="avPlots.html">avp</a></td>
+<td>Added-Variable Plots</td></tr>
+<tr><td style="width: 25%;"><a href="avPlots.html">avPlot</a></td>
+<td>Added-Variable Plots</td></tr>
+<tr><td style="width: 25%;"><a href="avPlots.html">avPlot.glm</a></td>
+<td>Added-Variable Plots</td></tr>
+<tr><td style="width: 25%;"><a href="avPlots.html">avPlot.lm</a></td>
+<td>Added-Variable Plots</td></tr>
+<tr><td style="width: 25%;"><a href="avPlots.html">avPlots</a></td>
+<td>Added-Variable Plots</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="bcPower.html">basicPower</a></td>
+<td>Box-Cox, Yeo-Johnson and Basic Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="TransformationAxes.html">basicPowerAxis</a></td>
+<td>Axes for Transformed Variables</td></tr>
+<tr><td style="width: 25%;"><a href="Baumann.html">Baumann</a></td>
+<td>Methods of Teaching Reading Comprehension</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">bc</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="bcPower.html">bcPower</a></td>
+<td>Box-Cox, Yeo-Johnson and Basic Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="TransformationAxes.html">bcPowerAxis</a></td>
+<td>Axes for Transformed Variables</td></tr>
+<tr><td style="width: 25%;"><a href="Bfox.html">Bfox</a></td>
+<td>Canadian Women's Labour-Force Participation</td></tr>
+<tr><td style="width: 25%;"><a href="Blackmore.html">Blackmore</a></td>
+<td>Exercise Histories of Eating-Disordered and Control Subjects</td></tr>
+<tr><td style="width: 25%;"><a href="Boot.html">Boot</a></td>
+<td>Bootstrapping for regression models</td></tr>
+<tr><td style="width: 25%;"><a href="Boot.html">Boot.default</a></td>
+<td>Bootstrapping for regression models</td></tr>
+<tr><td style="width: 25%;"><a href="Boot.html">Boot.glm</a></td>
+<td>Bootstrapping for regression models</td></tr>
+<tr><td style="width: 25%;"><a href="Boot.html">Boot.lm</a></td>
+<td>Bootstrapping for regression models</td></tr>
+<tr><td style="width: 25%;"><a href="Boot.html">Boot.nls</a></td>
+<td>Bootstrapping for regression models</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">box.cox</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">box.cox.powers</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">box.cox.var</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">box.tidwell</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="boxCox.html">boxCox</a></td>
+<td>Box-Cox Transformations for Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="boxCox.html">boxCox.default</a></td>
+<td>Box-Cox Transformations for Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="boxCox.html">boxCox.formula</a></td>
+<td>Box-Cox Transformations for Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="boxCox.html">boxCox.lm</a></td>
+<td>Box-Cox Transformations for Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="boxCox.html">boxCox.lmerMod</a></td>
+<td>Box-Cox Transformations for Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="boxCox.html">boxCox.skewpowerTransform</a></td>
+<td>Box-Cox Transformations for Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="boxCoxVariable.html">boxCoxVariable</a></td>
+<td>Constructed Variable for Box-Cox Transformation</td></tr>
+<tr><td style="width: 25%;"><a href="Boxplot.html">Boxplot</a></td>
+<td>Boxplots With Point Identification</td></tr>
+<tr><td style="width: 25%;"><a href="Boxplot.html">Boxplot.data.frame</a></td>
+<td>Boxplots With Point Identification</td></tr>
+<tr><td style="width: 25%;"><a href="Boxplot.html">Boxplot.default</a></td>
+<td>Boxplots With Point Identification</td></tr>
+<tr><td style="width: 25%;"><a href="Boxplot.html">Boxplot.formula</a></td>
+<td>Boxplots With Point Identification</td></tr>
+<tr><td style="width: 25%;"><a href="Boxplot.html">Boxplot.list</a></td>
+<td>Boxplots With Point Identification</td></tr>
+<tr><td style="width: 25%;"><a href="Boxplot.html">Boxplot.matrix</a></td>
+<td>Boxplots With Point Identification</td></tr>
+<tr><td style="width: 25%;"><a href="boxTidwell.html">boxTidwell</a></td>
+<td>Box-Tidwell Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="boxTidwell.html">boxTidwell.default</a></td>
+<td>Box-Tidwell Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="boxTidwell.html">boxTidwell.formula</a></td>
+<td>Box-Tidwell Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="Burt.html">Burt</a></td>
+<td>Fraudulent Data on IQs of Twins Raised Apart</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="CanPop.html">CanPop</a></td>
+<td>Canadian Population Data</td></tr>
+<tr><td style="width: 25%;"><a href="car-package.html">car</a></td>
+<td>Companion to Applied Regression</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">car-deprecated</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="car-internal.html">car-internal.Rd</a></td>
+<td>Internal Objects for the 'car' package</td></tr>
+<tr><td style="width: 25%;"><a href="carWeb.html">carWeb</a></td>
+<td>Access to the R Companion to Applied Regression website</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">ceres.plot</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">ceres.plots</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="ceresPlots.html">ceresPlot</a></td>
+<td>Ceres Plots</td></tr>
+<tr><td style="width: 25%;"><a href="ceresPlots.html">ceresPlot.glm</a></td>
+<td>Ceres Plots</td></tr>
+<tr><td style="width: 25%;"><a href="ceresPlots.html">ceresPlot.lm</a></td>
+<td>Ceres Plots</td></tr>
+<tr><td style="width: 25%;"><a href="ceresPlots.html">ceresPlots</a></td>
+<td>Ceres Plots</td></tr>
+<tr><td style="width: 25%;"><a href="Chile.html">Chile</a></td>
+<td>Voting Intentions in the 1988 Chilean Plebiscite</td></tr>
+<tr><td style="width: 25%;"><a href="Chirot.html">Chirot</a></td>
+<td>The 1907 Romanian Peasant Rebellion</td></tr>
+<tr><td style="width: 25%;"><a href="compareCoefs.html">compareCoefs</a></td>
+<td>Print estimated coefficients and their standard errors in a table for several regression models.</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">confidence.ellipse</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="Ellipses.html">confidenceEllipse</a></td>
+<td>Ellipses, Data Ellipses, and Confidence Ellipses</td></tr>
+<tr><td style="width: 25%;"><a href="Ellipses.html">confidenceEllipse.default</a></td>
+<td>Ellipses, Data Ellipses, and Confidence Ellipses</td></tr>
+<tr><td style="width: 25%;"><a href="Ellipses.html">confidenceEllipse.glm</a></td>
+<td>Ellipses, Data Ellipses, and Confidence Ellipses</td></tr>
+<tr><td style="width: 25%;"><a href="Ellipses.html">confidenceEllipse.lm</a></td>
+<td>Ellipses, Data Ellipses, and Confidence Ellipses</td></tr>
+<tr><td style="width: 25%;"><a href="hist.boot.html">confint.boot</a></td>
+<td>Generic functions to provide support for 'boot' objects</td></tr>
+<tr><td style="width: 25%;"><a href="skewPower.html">contour.skewpowerTransform</a></td>
+<td>Skew Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="skewPower.html">contour.skewpowerTransformlmer</a></td>
+<td>Skew Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="Contrasts.html">contr.Helmert</a></td>
+<td>Functions to Construct Contrasts</td></tr>
+<tr><td style="width: 25%;"><a href="Contrasts.html">contr.Sum</a></td>
+<td>Functions to Construct Contrasts</td></tr>
+<tr><td style="width: 25%;"><a href="Contrasts.html">contr.Treatment</a></td>
+<td>Functions to Construct Contrasts</td></tr>
+<tr><td style="width: 25%;"><a href="Contrasts.html">Contrasts</a></td>
+<td>Functions to Construct Contrasts</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">cookd</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="Cowles.html">Cowles</a></td>
+<td>Cowles and Davis's Data on Volunteering</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">cr.plot</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">cr.plots</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="crPlots.html">crp</a></td>
+<td>Component+Residual (Partial Residual) Plots</td></tr>
+<tr><td style="width: 25%;"><a href="crPlots.html">crPlot</a></td>
+<td>Component+Residual (Partial Residual) Plots</td></tr>
+<tr><td style="width: 25%;"><a href="crPlots.html">crPlot.lm</a></td>
+<td>Component+Residual (Partial Residual) Plots</td></tr>
+<tr><td style="width: 25%;"><a href="crPlots.html">crPlots</a></td>
+<td>Component+Residual (Partial Residual) Plots</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="car-deprecated.html">data.ellipse</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="Ellipses.html">dataEllipse</a></td>
+<td>Ellipses, Data Ellipses, and Confidence Ellipses</td></tr>
+<tr><td style="width: 25%;"><a href="Davis.html">Davis</a></td>
+<td>Self-Reports of Height and Weight</td></tr>
+<tr><td style="width: 25%;"><a href="DavisThin.html">DavisThin</a></td>
+<td>Davis's Data on Drive for Thinness</td></tr>
+<tr><td style="width: 25%;"><a href="deltaMethod.html">deltaMethod</a></td>
+<td>Estimate and Standard Error of a Nonlinear Function of Estimated Regression Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="deltaMethod.html">deltaMethod.coxph</a></td>
+<td>Estimate and Standard Error of a Nonlinear Function of Estimated Regression Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="deltaMethod.html">deltaMethod.default</a></td>
+<td>Estimate and Standard Error of a Nonlinear Function of Estimated Regression Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="deltaMethod.html">deltaMethod.lm</a></td>
+<td>Estimate and Standard Error of a Nonlinear Function of Estimated Regression Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="deltaMethod.html">deltaMethod.lme</a></td>
+<td>Estimate and Standard Error of a Nonlinear Function of Estimated Regression Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="deltaMethod.html">deltaMethod.lmList</a></td>
+<td>Estimate and Standard Error of a Nonlinear Function of Estimated Regression Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="deltaMethod.html">deltaMethod.mer</a></td>
+<td>Estimate and Standard Error of a Nonlinear Function of Estimated Regression Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="deltaMethod.html">deltaMethod.merMod</a></td>
+<td>Estimate and Standard Error of a Nonlinear Function of Estimated Regression Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="deltaMethod.html">deltaMethod.multinom</a></td>
+<td>Estimate and Standard Error of a Nonlinear Function of Estimated Regression Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="deltaMethod.html">deltaMethod.nls</a></td>
+<td>Estimate and Standard Error of a Nonlinear Function of Estimated Regression Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="deltaMethod.html">deltaMethod.polr</a></td>
+<td>Estimate and Standard Error of a Nonlinear Function of Estimated Regression Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="deltaMethod.html">deltaMethod.survreg</a></td>
+<td>Estimate and Standard Error of a Nonlinear Function of Estimated Regression Coefficients</td></tr>
+<tr><td style="width: 25%;"><a href="densityPlot.html">densityPlot</a></td>
+<td>Nonparametric Density Estimates</td></tr>
+<tr><td style="width: 25%;"><a href="densityPlot.html">densityPlot.default</a></td>
+<td>Nonparametric Density Estimates</td></tr>
+<tr><td style="width: 25%;"><a href="densityPlot.html">densityPlot.formula</a></td>
+<td>Nonparametric Density Estimates</td></tr>
+<tr><td style="width: 25%;"><a href="Depredations.html">Depredations</a></td>
+<td>Minnesota Wolf Depredation Data</td></tr>
+<tr><td style="width: 25%;"><a href="dfbetaPlots.html">dfbetaPlots</a></td>
+<td>dfbeta and dfbetas Index Plots</td></tr>
+<tr><td style="width: 25%;"><a href="dfbetaPlots.html">dfbetaPlots.lm</a></td>
+<td>dfbeta and dfbetas Index Plots</td></tr>
+<tr><td style="width: 25%;"><a href="dfbetaPlots.html">dfbetasPlots</a></td>
+<td>dfbeta and dfbetas Index Plots</td></tr>
+<tr><td style="width: 25%;"><a href="dfbetaPlots.html">dfbetasPlots.lm</a></td>
+<td>dfbeta and dfbetas Index Plots</td></tr>
+<tr><td style="width: 25%;"><a href="Duncan.html">Duncan</a></td>
+<td>Duncan's Occupational Prestige Data</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">durbin.watson</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="durbinWatsonTest.html">durbinWatsonTest</a></td>
+<td>Durbin-Watson Test for Autocorrelated Errors</td></tr>
+<tr><td style="width: 25%;"><a href="durbinWatsonTest.html">durbinWatsonTest.default</a></td>
+<td>Durbin-Watson Test for Autocorrelated Errors</td></tr>
+<tr><td style="width: 25%;"><a href="durbinWatsonTest.html">durbinWatsonTest.lm</a></td>
+<td>Durbin-Watson Test for Autocorrelated Errors</td></tr>
+<tr><td style="width: 25%;"><a href="durbinWatsonTest.html">dwt</a></td>
+<td>Durbin-Watson Test for Autocorrelated Errors</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Ellipses.html">ellipse</a></td>
+<td>Ellipses, Data Ellipses, and Confidence Ellipses</td></tr>
+<tr><td style="width: 25%;"><a href="Ericksen.html">Ericksen</a></td>
+<td>The 1980 U.S. Census Undercount</td></tr>
+<tr><td style="width: 25%;"><a href="powerTransform.html">estimateTransform</a></td>
+<td>Finding Univariate or Multivariate Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="powerTransform.html">estimateTransform.default</a></td>
+<td>Finding Univariate or Multivariate Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="powerTransform.html">estimateTransform.lmerMod</a></td>
+<td>Finding Univariate or Multivariate Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="powerTransform.html">estimateTransform.skewPower</a></td>
+<td>Finding Univariate or Multivariate Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="powerTransform.html">estimateTransform.skewPowerlmer</a></td>
+<td>Finding Univariate or Multivariate Power Transformations</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Florida.html">Florida</a></td>
+<td>Florida County Voting</td></tr>
+<tr><td style="width: 25%;"><a href="Freedman.html">Freedman</a></td>
+<td>Crowding and Crime in U. S. Metropolitan Areas</td></tr>
+<tr><td style="width: 25%;"><a href="Friendly.html">Friendly</a></td>
+<td>Format Effects on Recall</td></tr>
+</table>
+
+<h2><a name="G">-- G --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="ScatterplotSmoothers.html">gamLine</a></td>
+<td>Smoothers to Draw Lines on Scatterplots</td></tr>
+<tr><td style="width: 25%;"><a href="Ginzberg.html">Ginzberg</a></td>
+<td>Data on Depression</td></tr>
+<tr><td style="width: 25%;"><a href="Greene.html">Greene</a></td>
+<td>Refugee Appeals</td></tr>
+<tr><td style="width: 25%;"><a href="Guyer.html">Guyer</a></td>
+<td>Anonymity and Cooperation</td></tr>
+</table>
+
+<h2><a name="H">-- H --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Hartnagel.html">Hartnagel</a></td>
+<td>Canadian Crime-Rates Time Series</td></tr>
+<tr><td style="width: 25%;"><a href="hccm.html">hccm</a></td>
+<td>Heteroscedasticity-Corrected Covariance Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="hccm.html">hccm.default</a></td>
+<td>Heteroscedasticity-Corrected Covariance Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="hccm.html">hccm.lm</a></td>
+<td>Heteroscedasticity-Corrected Covariance Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="Highway1.html">Highway1</a></td>
+<td>Highway Accidents</td></tr>
+<tr><td style="width: 25%;"><a href="hist.boot.html">hist.boot</a></td>
+<td>Generic functions to provide support for 'boot' objects</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="scatter3d.html">Identify3d</a></td>
+<td>Three-Dimensional Scatterplots and Point Identification</td></tr>
+<tr><td style="width: 25%;"><a href="infIndexPlot.html">infIndexPlot</a></td>
+<td>Influence Index Plot</td></tr>
+<tr><td style="width: 25%;"><a href="infIndexPlot.html">infIndexPlot.lm</a></td>
+<td>Influence Index Plot</td></tr>
+<tr><td style="width: 25%;"><a href="influencePlot.html">influence.plot</a></td>
+<td>Regression Influence Plot</td></tr>
+<tr><td style="width: 25%;"><a href="infIndexPlot.html">influenceIndexPlot</a></td>
+<td>Influence Index Plot</td></tr>
+<tr><td style="width: 25%;"><a href="influencePlot.html">influencePlot</a></td>
+<td>Regression Influence Plot</td></tr>
+<tr><td style="width: 25%;"><a href="influencePlot.html">influencePlot.lm</a></td>
+<td>Regression Influence Plot</td></tr>
+<tr><td style="width: 25%;"><a href="invResPlot.html">inverseResponsePlot</a></td>
+<td>Inverse Response Plots to Transform the Response</td></tr>
+<tr><td style="width: 25%;"><a href="invResPlot.html">inverseResponsePlot.lm</a></td>
+<td>Inverse Response Plots to Transform the Response</td></tr>
+<tr><td style="width: 25%;"><a href="invResPlot.html">invResPlot</a></td>
+<td>Inverse Response Plots to Transform the Response</td></tr>
+<tr><td style="width: 25%;"><a href="invTranPlot.html">invTranEstimate</a></td>
+<td>Choose a Predictor Transformation Visually or Numerically</td></tr>
+<tr><td style="width: 25%;"><a href="invTranPlot.html">invTranPlot</a></td>
+<td>Choose a Predictor Transformation Visually or Numerically</td></tr>
+<tr><td style="width: 25%;"><a href="invTranPlot.html">invTranPlot.default</a></td>
+<td>Choose a Predictor Transformation Visually or Numerically</td></tr>
+<tr><td style="width: 25%;"><a href="invTranPlot.html">invTranPlot.formula</a></td>
+<td>Choose a Predictor Transformation Visually or Numerically</td></tr>
+</table>
+
+<h2><a name="K">-- K --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="KosteckiDillon.html">KosteckiDillon</a></td>
+<td>Treatment of Migraine Headaches</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Leinhardt.html">Leinhardt</a></td>
+<td>Data on Infant-Mortality</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">levene.test</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="leveneTest.html">leveneTest</a></td>
+<td>Levene's Test</td></tr>
+<tr><td style="width: 25%;"><a href="leveneTest.html">leveneTest.default</a></td>
+<td>Levene's Test</td></tr>
+<tr><td style="width: 25%;"><a href="leveneTest.html">leveneTest.formula</a></td>
+<td>Levene's Test</td></tr>
+<tr><td style="width: 25%;"><a href="leveneTest.html">leveneTest.lm</a></td>
+<td>Levene's Test</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">leverage.plot</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">leverage.plots</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="leveragePlots.html">leveragePlot</a></td>
+<td>Regression Leverage Plots</td></tr>
+<tr><td style="width: 25%;"><a href="leveragePlots.html">leveragePlot.glm</a></td>
+<td>Regression Leverage Plots</td></tr>
+<tr><td style="width: 25%;"><a href="leveragePlots.html">leveragePlot.lm</a></td>
+<td>Regression Leverage Plots</td></tr>
+<tr><td style="width: 25%;"><a href="leveragePlots.html">leveragePlots</a></td>
+<td>Regression Leverage Plots</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">lht</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">linear.hypothesis</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">linearHypothesis</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">linearHypothesis.default</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">linearHypothesis.glm</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">linearHypothesis.lm</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">linearHypothesis.lme</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">linearHypothesis.mer</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">linearHypothesis.merMod</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">linearHypothesis.mlm</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">linearHypothesis.nlsList</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">linearHypothesis.polr</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">linearHypothesis.rlm</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">linearHypothesis.svyglm</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="LoBD.html">LoBD</a></td>
+<td>Cancer drug data use to provide an example of the use of the skew power distributions.</td></tr>
+<tr><td style="width: 25%;"><a href="ScatterplotSmoothers.html">loessLine</a></td>
+<td>Smoothers to Draw Lines on Scatterplots</td></tr>
+<tr><td style="width: 25%;"><a href="logit.html">logit</a></td>
+<td>Logit Transformation</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">makeHypothesis</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="Mandel.html">Mandel</a></td>
+<td>Contrived Collinear Data</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Manova</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">Manova.mlm</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="marginalModelPlot.html">marginalModelPlot</a></td>
+<td>Marginal Model Plotting</td></tr>
+<tr><td style="width: 25%;"><a href="marginalModelPlot.html">marginalModelPlots</a></td>
+<td>Marginal Model Plotting</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">matchCoefs</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">matchCoefs.default</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">matchCoefs.lme</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">matchCoefs.mer</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">matchCoefs.merMod</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">matchCoefs.mlm</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="mcPlots.html">mcPlot</a></td>
+<td>Draw Linear Model Marginal and Conditional Plots in Parallel or Overlaid</td></tr>
+<tr><td style="width: 25%;"><a href="mcPlots.html">mcPlot.lm</a></td>
+<td>Draw Linear Model Marginal and Conditional Plots in Parallel or Overlaid</td></tr>
+<tr><td style="width: 25%;"><a href="mcPlots.html">mcPlots</a></td>
+<td>Draw Linear Model Marginal and Conditional Plots in Parallel or Overlaid</td></tr>
+<tr><td style="width: 25%;"><a href="Migration.html">Migration</a></td>
+<td>Canadian Interprovincial Migration Data</td></tr>
+<tr><td style="width: 25%;"><a href="marginalModelPlot.html">mmp</a></td>
+<td>Marginal Model Plotting</td></tr>
+<tr><td style="width: 25%;"><a href="marginalModelPlot.html">mmp.default</a></td>
+<td>Marginal Model Plotting</td></tr>
+<tr><td style="width: 25%;"><a href="marginalModelPlot.html">mmp.glm</a></td>
+<td>Marginal Model Plotting</td></tr>
+<tr><td style="width: 25%;"><a href="marginalModelPlot.html">mmp.lm</a></td>
+<td>Marginal Model Plotting</td></tr>
+<tr><td style="width: 25%;"><a href="marginalModelPlot.html">mmps</a></td>
+<td>Marginal Model Plotting</td></tr>
+<tr><td style="width: 25%;"><a href="Moore.html">Moore</a></td>
+<td>Status, Authoritarianism, and Conformity</td></tr>
+<tr><td style="width: 25%;"><a href="Mroz.html">Mroz</a></td>
+<td>U.S. Women's Labor-Force Participation</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="car-deprecated.html">ncv.test</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="ncvTest.html">ncvTest</a></td>
+<td>Score Test for Non-Constant Error Variance</td></tr>
+<tr><td style="width: 25%;"><a href="ncvTest.html">ncvTest.glm</a></td>
+<td>Score Test for Non-Constant Error Variance</td></tr>
+<tr><td style="width: 25%;"><a href="ncvTest.html">ncvTest.lm</a></td>
+<td>Score Test for Non-Constant Error Variance</td></tr>
+</table>
+
+<h2><a name="O">-- O --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="OBrienKaiser.html">OBrienKaiser</a></td>
+<td>O'Brien and Kaiser's Repeated-Measures Data</td></tr>
+<tr><td style="width: 25%;"><a href="Ornstein.html">Ornstein</a></td>
+<td>Interlocking Directorates Among Major Canadian Firms</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">outlier.test</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="outlierTest.html">outlierTest</a></td>
+<td>Bonferroni Outlier Test</td></tr>
+<tr><td style="width: 25%;"><a href="outlierTest.html">outlierTest.glm</a></td>
+<td>Bonferroni Outlier Test</td></tr>
+<tr><td style="width: 25%;"><a href="outlierTest.html">outlierTest.lm</a></td>
+<td>Bonferroni Outlier Test</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="panel.car.html">panel.car</a></td>
+<td>Panel Function for Coplots</td></tr>
+<tr><td style="width: 25%;"><a href="plot.powerTransform.html">plot.powerTransform</a></td>
+<td>plot Method for powerTransform Objects</td></tr>
+<tr><td style="width: 25%;"><a href="Pottery.html">Pottery</a></td>
+<td>Chemical Composition of Pottery</td></tr>
+<tr><td style="width: 25%;"><a href="powerTransform.html">powerTransform</a></td>
+<td>Finding Univariate or Multivariate Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="powerTransform.html">powerTransform.default</a></td>
+<td>Finding Univariate or Multivariate Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="powerTransform.html">powerTransform.formula</a></td>
+<td>Finding Univariate or Multivariate Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="powerTransform.html">powerTransform.lm</a></td>
+<td>Finding Univariate or Multivariate Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="powerTransform.html">powerTransform.lmerMod</a></td>
+<td>Finding Univariate or Multivariate Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="Prestige.html">Prestige</a></td>
+<td>Prestige of Canadian Occupations</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">print.Anova.mlm</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="boxTidwell.html">print.boxTidwell</a></td>
+<td>Box-Tidwell Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="durbinWatsonTest.html">print.durbinWatsonTest</a></td>
+<td>Durbin-Watson Test for Autocorrelated Errors</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">print.linearHypothesis.mlm</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="outlierTest.html">print.outlierTest</a></td>
+<td>Bonferroni Outlier Test</td></tr>
+<tr><td style="width: 25%;"><a href="spreadLevelPlot.html">print.spreadLevelPlot</a></td>
+<td>Spread-Level Plots</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">print.summary.Anova.mlm</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">print.univaov</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="linearHypothesis.html">printHypothesis</a></td>
+<td>Test Linear Hypothesis</td></tr>
+<tr><td style="width: 25%;"><a href="TransformationAxes.html">probabilityAxis</a></td>
+<td>Axes for Transformed Variables</td></tr>
+</table>
+
+<h2><a name="Q">-- Q --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="car-deprecated.html">qq.plot</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="qqPlot.html">qqp</a></td>
+<td>Quantile-Comparison Plots</td></tr>
+<tr><td style="width: 25%;"><a href="qqPlot.html">qqPlot</a></td>
+<td>Quantile-Comparison Plots</td></tr>
+<tr><td style="width: 25%;"><a href="qqPlot.html">qqPlot.default</a></td>
+<td>Quantile-Comparison Plots</td></tr>
+<tr><td style="width: 25%;"><a href="qqPlot.html">qqPlot.glm</a></td>
+<td>Quantile-Comparison Plots</td></tr>
+<tr><td style="width: 25%;"><a href="qqPlot.html">qqPlot.lm</a></td>
+<td>Quantile-Comparison Plots</td></tr>
+<tr><td style="width: 25%;"><a href="ScatterplotSmoothers.html">quantregLine</a></td>
+<td>Smoothers to Draw Lines on Scatterplots</td></tr>
+<tr><td style="width: 25%;"><a href="Quartet.html">Quartet</a></td>
+<td>Four Regression Datasets</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="recode.html">Recode</a></td>
+<td>Recode a Variable</td></tr>
+<tr><td style="width: 25%;"><a href="recode.html">recode</a></td>
+<td>Recode a Variable</td></tr>
+<tr><td style="width: 25%;"><a href="regLine.html">regLine</a></td>
+<td>Plot Regression Line</td></tr>
+<tr><td style="width: 25%;"><a href="residualPlots.html">residCurvTest</a></td>
+<td>Residual Plots and Curvature Tests for Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="residualPlots.html">residCurvTest.glm</a></td>
+<td>Residual Plots and Curvature Tests for Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="residualPlots.html">residCurvTest.lm</a></td>
+<td>Residual Plots and Curvature Tests for Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="residualPlots.html">residualPlot</a></td>
+<td>Residual Plots and Curvature Tests for Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="residualPlots.html">residualPlot.default</a></td>
+<td>Residual Plots and Curvature Tests for Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="residualPlots.html">residualPlot.glm</a></td>
+<td>Residual Plots and Curvature Tests for Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="residualPlots.html">residualPlot.lm</a></td>
+<td>Residual Plots and Curvature Tests for Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="residualPlots.html">residualPlots</a></td>
+<td>Residual Plots and Curvature Tests for Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="residualPlots.html">residualPlots.default</a></td>
+<td>Residual Plots and Curvature Tests for Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="residualPlots.html">residualPlots.glm</a></td>
+<td>Residual Plots and Curvature Tests for Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="residualPlots.html">residualPlots.lm</a></td>
+<td>Residual Plots and Curvature Tests for Linear Model Fits</td></tr>
+<tr><td style="width: 25%;"><a href="Robey.html">Robey</a></td>
+<td>Fertility and Contraception</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Sahlins.html">Sahlins</a></td>
+<td>Agricultural Production in Mazulu Village</td></tr>
+<tr><td style="width: 25%;"><a href="Salaries.html">Salaries</a></td>
+<td>Salaries for Professors</td></tr>
+<tr><td style="width: 25%;"><a href="scatter3d.html">scatter3d</a></td>
+<td>Three-Dimensional Scatterplots and Point Identification</td></tr>
+<tr><td style="width: 25%;"><a href="scatter3d.html">scatter3d.default</a></td>
+<td>Three-Dimensional Scatterplots and Point Identification</td></tr>
+<tr><td style="width: 25%;"><a href="scatter3d.html">scatter3d.formula</a></td>
+<td>Three-Dimensional Scatterplots and Point Identification</td></tr>
+<tr><td style="width: 25%;"><a href="scatterplot.html">scatterplot</a></td>
+<td>Scatterplots with Boxplots</td></tr>
+<tr><td style="width: 25%;"><a href="scatterplot.html">scatterplot.default</a></td>
+<td>Scatterplots with Boxplots</td></tr>
+<tr><td style="width: 25%;"><a href="scatterplot.html">scatterplot.formula</a></td>
+<td>Scatterplots with Boxplots</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">scatterplot.matrix</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="scatterplotMatrix.html">scatterplotMatrix</a></td>
+<td>Scatterplot Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="scatterplotMatrix.html">scatterplotMatrix.default</a></td>
+<td>Scatterplot Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="scatterplotMatrix.html">scatterplotMatrix.formula</a></td>
+<td>Scatterplot Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="ScatterplotSmoothers.html">ScatterplotSmoothers</a></td>
+<td>Smoothers to Draw Lines on Scatterplots</td></tr>
+<tr><td style="width: 25%;"><a href="showLabels.html">showLabels</a></td>
+<td>Utility Functions to Identify and Mark Extreme Points in a 2D Plot.</td></tr>
+<tr><td style="width: 25%;"><a href="sigmaHat.html">sigmaHat</a></td>
+<td>Return the scale estimate for a regression model</td></tr>
+<tr><td style="width: 25%;"><a href="sigmaHat.html">sigmaHat.default</a></td>
+<td>Return the scale estimate for a regression model</td></tr>
+<tr><td style="width: 25%;"><a href="sigmaHat.html">sigmaHat.glm</a></td>
+<td>Return the scale estimate for a regression model</td></tr>
+<tr><td style="width: 25%;"><a href="sigmaHat.html">sigmaHat.lm</a></td>
+<td>Return the scale estimate for a regression model</td></tr>
+<tr><td style="width: 25%;"><a href="skewPower.html">skewPower</a></td>
+<td>Skew Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="SLID.html">SLID</a></td>
+<td>Survey of Labour and Income Dynamics</td></tr>
+<tr><td style="width: 25%;"><a href="spreadLevelPlot.html">slp</a></td>
+<td>Spread-Level Plots</td></tr>
+<tr><td style="width: 25%;"><a href="Soils.html">Soils</a></td>
+<td>Soil Compositions of Physical and Chemical Characteristics</td></tr>
+<tr><td style="width: 25%;"><a href="some.html">some</a></td>
+<td>Sample a Few Elements of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="some.html">some.data.frame</a></td>
+<td>Sample a Few Elements of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="some.html">some.default</a></td>
+<td>Sample a Few Elements of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="some.html">some.matrix</a></td>
+<td>Sample a Few Elements of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="scatterplot.html">sp</a></td>
+<td>Scatterplots with Boxplots</td></tr>
+<tr><td style="width: 25%;"><a href="scatterplotMatrix.html">spm</a></td>
+<td>Scatterplot Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="car-deprecated.html">spread.level.plot</a></td>
+<td>Deprecated Functions in car Package</td></tr>
+<tr><td style="width: 25%;"><a href="spreadLevelPlot.html">spreadLevelPlot</a></td>
+<td>Spread-Level Plots</td></tr>
+<tr><td style="width: 25%;"><a href="spreadLevelPlot.html">spreadLevelPlot.default</a></td>
+<td>Spread-Level Plots</td></tr>
+<tr><td style="width: 25%;"><a href="spreadLevelPlot.html">spreadLevelPlot.formula</a></td>
+<td>Spread-Level Plots</td></tr>
+<tr><td style="width: 25%;"><a href="spreadLevelPlot.html">spreadLevelPlot.lm</a></td>
+<td>Spread-Level Plots</td></tr>
+<tr><td style="width: 25%;"><a href="States.html">States</a></td>
+<td>Education and Related Statistics for the U.S. States</td></tr>
+<tr><td style="width: 25%;"><a href="subsets.html">subsets</a></td>
+<td>Plot Output from regsubsets Function in leaps package</td></tr>
+<tr><td style="width: 25%;"><a href="subsets.html">subsets.regsubsets</a></td>
+<td>Plot Output from regsubsets Function in leaps package</td></tr>
+<tr><td style="width: 25%;"><a href="Anova.html">summary.Anova.mlm</a></td>
+<td>Anova Tables for Various Statistical Models</td></tr>
+<tr><td style="width: 25%;"><a href="hist.boot.html">summary.boot</a></td>
+<td>Generic functions to provide support for 'boot' objects</td></tr>
+<tr><td style="width: 25%;"><a href="symbox.html">symbox</a></td>
+<td>Boxplots for transformations to symmetry</td></tr>
+<tr><td style="width: 25%;"><a href="symbox.html">symbox.default</a></td>
+<td>Boxplots for transformations to symmetry</td></tr>
+<tr><td style="width: 25%;"><a href="symbox.html">symbox.formula</a></td>
+<td>Boxplots for transformations to symmetry</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="testTransform.html">testTransform</a></td>
+<td>Likelihood-Ratio Tests for Univariate or Multivariate Power Transformations to Normality</td></tr>
+<tr><td style="width: 25%;"><a href="testTransform.html">testTransform.lmerModpowerTransform</a></td>
+<td>Likelihood-Ratio Tests for Univariate or Multivariate Power Transformations to Normality</td></tr>
+<tr><td style="width: 25%;"><a href="testTransform.html">testTransform.powerTransform</a></td>
+<td>Likelihood-Ratio Tests for Univariate or Multivariate Power Transformations to Normality</td></tr>
+<tr><td style="width: 25%;"><a href="testTransform.html">testTransform.skewpowerTransformlmer</a></td>
+<td>Likelihood-Ratio Tests for Univariate or Multivariate Power Transformations to Normality</td></tr>
+<tr><td style="width: 25%;"><a href="Transact.html">Transact</a></td>
+<td>Transaction data</td></tr>
+<tr><td style="width: 25%;"><a href="residualPlots.html">tukeyNonaddTest</a></td>
+<td>Residual Plots and Curvature Tests for Linear Model Fits</td></tr>
+</table>
+
+<h2><a name="U">-- U --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="UN.html">UN</a></td>
+<td>GDP and Infant Mortality</td></tr>
+<tr><td style="width: 25%;"><a href="USPop.html">USPop</a></td>
+<td>Population of the United States</td></tr>
+</table>
+
+<h2><a name="V">-- V --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="vif.html">vif</a></td>
+<td>Variance Inflation Factors</td></tr>
+<tr><td style="width: 25%;"><a href="vif.html">vif.default</a></td>
+<td>Variance Inflation Factors</td></tr>
+<tr><td style="width: 25%;"><a href="Vocab.html">Vocab</a></td>
+<td>Vocabulary and Education</td></tr>
+</table>
+
+<h2><a name="W">-- W --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="wcrossprod.html">wcrossprod</a></td>
+<td>Weighted Matrix Crossproduct</td></tr>
+<tr><td style="width: 25%;"><a href="WeightLoss.html">WeightLoss</a></td>
+<td>Weight Loss Data</td></tr>
+<tr><td style="width: 25%;"><a href="which.names.html">which.names</a></td>
+<td>Position of Row Names</td></tr>
+<tr><td style="width: 25%;"><a href="which.names.html">whichNames</a></td>
+<td>Position of Row Names</td></tr>
+<tr><td style="width: 25%;"><a href="Womenlf.html">Womenlf</a></td>
+<td>Canadian Women's Labour-Force Participation</td></tr>
+<tr><td style="width: 25%;"><a href="Wong.html">Wong</a></td>
+<td>Post-Coma Recovery of IQ</td></tr>
+<tr><td style="width: 25%;"><a href="Wool.html">Wool</a></td>
+<td>Wool data</td></tr>
+</table>
+
+<h2><a name="Y">-- Y --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="bcPower.html">yjPower</a></td>
+<td>Box-Cox, Yeo-Johnson and Basic Power Transformations</td></tr>
+<tr><td style="width: 25%;"><a href="TransformationAxes.html">yjPowerAxis</a></td>
+<td>Axes for Transformed Variables</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="car-internal.html">.carEnv</a></td>
+<td>Internal Objects for the 'car' package</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/doc/embedding.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/doc/embedding.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/doc/embedding.R	(revision 2476)
@@ -0,0 +1,191 @@
+### R code from vignette source 'embedding.Rnw'
+
+###################################################
+### code chunk number 1: embedding.Rnw:11-12
+###################################################
+options(width=80, digits=4, useFancyQuotes=FALSE, prompt=" ", continue=" ")
+
+
+###################################################
+### code chunk number 2: embedding.Rnw:28-31
+###################################################
+library(car)
+m1 <- lm(time ~ t1 + t2, Transact)
+deltaMethod(m1, "t1/(t2 + 2)")
+
+
+###################################################
+### code chunk number 3: embedding.Rnw:34-39
+###################################################
+ans <- NULL
+for (z in 1:4) {
+ ans <- rbind(ans, deltaMethod(m1, "t1/(t2 + z)",
+     func = gsub("z", z, "t1/(t1+z)"))) }
+ans
+
+
+###################################################
+### code chunk number 4: embedding.Rnw:44-51
+###################################################
+f1 <- function(mod) {
+ ans <- NULL
+ for (x in 1:4) {
+    ans <- rbind(ans, deltaMethod(mod, "t1/(t2 + x)",
+        func = gsub("x", x, "t1/(t1+x)")) )}
+ ans
+ }
+
+
+###################################################
+### code chunk number 5: embedding.Rnw:63-65
+###################################################
+x <- 10
+f1(m1)
+
+
+###################################################
+### code chunk number 6: embedding.Rnw:71-79
+###################################################
+f2 <- function(mod) {
+ ans <- NULL
+ for (x in 1:4) {
+    ans <- rbind(ans, deltaMethod(mod, "t1/(t2 + x)",
+        func = gsub("x", x, "t1/(t1+x)"), constants=list(x=x)) )}
+ ans
+ }
+f2(m1)
+
+
+###################################################
+### code chunk number 7: embedding.Rnw:85-87
+###################################################
+m2 <- lm(prestige ~ education, Prestige)
+ncvTest(m2, ~ income)
+
+
+###################################################
+### code chunk number 8: embedding.Rnw:90-95 (eval = FALSE)
+###################################################
+## f3 <- function(meanmod, dta, varmod) {
+##   m3 <- lm(meanmod, dta)
+##   ncvTest(m3, varmod)
+##   }
+## f3(prestige ~ education, Prestige, ~ income)
+
+
+###################################################
+### code chunk number 9: embedding.Rnw:103-114
+###################################################
+f4 <- function(meanmod, dta, varmod) {
+   assign(".dta", dta, envir=.GlobalEnv)
+   assign(".meanmod", meanmod, envir=.GlobalEnv)
+   m1 <- lm(.meanmod, .dta)
+   ans <- ncvTest(m1, varmod)
+   remove(".dta", envir=.GlobalEnv)
+   remove(".meanmod", envir=.GlobalEnv)
+   ans
+   }
+f4(prestige ~ education, Prestige, ~income)
+f4(prestige ~ education, Prestige, ~income)
+
+
+###################################################
+### code chunk number 10: embedding.Rnw:119-127 (eval = FALSE)
+###################################################
+## library(effects)
+## fc <- function(dta, formula, terms) {
+##  print(m1 <- lm(formula, .dta))
+##  Effect(terms, m1)
+##  }
+## form <- prestige ~ income*type + education
+## terms <- c("income", "type")
+## fc(Duncan, form, terms)
+
+
+###################################################
+### code chunk number 11: embedding.Rnw:130-138 (eval = FALSE)
+###################################################
+## library(effects)
+## fc.working <- function(dta, formula, terms) {
+##  assign(".dta", dta, env=.GlobalEnv)
+##  print(m1 <- lm(formula, .dta))
+##  Effect(terms, m1)
+##  remove(".dta", envir=.GlobalEnv)
+##  }
+## fc.working(Duncan, form, terms)
+
+
+###################################################
+### code chunk number 12: embedding.Rnw:144-147
+###################################################
+m1 <- lm(time ~ t1 + t2, Transact)
+b1 <- Boot(m1, R=999)
+summary(b1)
+
+
+###################################################
+### code chunk number 13: embedding.Rnw:150-151
+###################################################
+confint(b1)
+
+
+###################################################
+### code chunk number 14: embedding.Rnw:155-156 (eval = FALSE)
+###################################################
+## .carEnv <- new.env(parent=emptyenv())
+
+
+###################################################
+### code chunk number 15: embedding.Rnw:159-160
+###################################################
+car:::.carEnv
+
+
+###################################################
+### code chunk number 16: embedding.Rnw:163-206 (eval = FALSE)
+###################################################
+## Boot.default <- function(object, f=coef, labels=names(coef(object)),
+##                      R=999, method=c("case", "residual")) {
+##   if(!(require(boot))) stop("The 'boot' package is missing")
+##   f0 <- f(object)
+##   if(length(labels) != length(f0)) labels <- paste("V", seq(length(f0)), sep="")
+##   method <- match.arg(method)
+##   if(method=="case") {
+##      boot.f <- function(data, indices, .fn) {
+##       assign(".boot.indices", indices, envir=car:::.carEnv)
+##       mod <- update(object, subset=get(".boot.indices", envir=car:::.carEnv))
+##       if(mod$qr$rank != object$qr$rank){
+##             out <- .fn(object)
+##             out <- rep(NA, length(out)) } else  {out <- .fn(mod)}
+##      out
+##      }
+##     } else {
+##     boot.f <- function(data, indices, .fn) {
+##       first <- all(indices == seq(length(indices)))
+##       res <- if(first) object$residuals else
+##                   residuals(object, type="pearson")/sqrt(1 - hatvalues(object))
+##       res <- if(!first) (res - mean(res)) else res
+##       val <- fitted(object) + res[indices]
+##       if (!is.null(object$na.action)){
+##             pad <- object$na.action
+##             attr(pad, "class") <- "exclude"
+##             val <- naresid(pad, val)
+##             }
+##       assign(".y.boot", val, envir=car:::.carEnv)
+##       mod <- update(object, get(".y.boot", envir=car:::.carEnv) ~ .)
+##       if(mod$qr$rank != object$qr$rank){
+##             out <- .fn(object)
+##             out <- rep(NA, length(out)) } else  {out <- .fn(mod)}
+##       out
+##       }
+##   }
+##   b <- boot(data.frame(update(object, model=TRUE)$model), boot.f, R, .fn=f)
+##   colnames(b$t) <- labels
+##   if(exists(".y.boot", envir=car:::.carEnv))
+##      remove(".y.boot", envir=car:::.carEnv)
+##   if(exists(".boot.indices", envir=car:::.carEnv))
+##      remove(".boot.indices", envir=car:::.carEnv)
+##   b
+##   }
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/doc/embedding.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/doc/embedding.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/doc/embedding.Rnw	(revision 2476)
@@ -0,0 +1,214 @@
+\documentclass{article}
+\usepackage{url,Sweave}
+%\VignetteIndexEntry{Using car functions inside user functions}
+\newcommand{\R}{{\normalfont\textsf{R}}{}}
+\newcommand{\car}{\texttt{car}}
+\newcommand{\effects}{\texttt{effects}}
+\newcommand{\code}[1]{\texttt{#1}}
+\usepackage[authoryear,round]{natbib}
+\bibliographystyle{plainnat}
+
+<<echo=FALSE>>=
+options(width=80, digits=4, useFancyQuotes=FALSE, prompt=" ", continue=" ")
+@
+
+\title{Using \car{} Functions in Other Functions}
+\author{John Fox\footnote{Department of Sociology, McMaster University}  \&{} Sanford Weisberg\footnote{
+School of Statistics, University of Minnesota}}
+\date{\today}
+\begin{document}
+\maketitle
+
+\begin{abstract}
+The \car{} package \citep{FoxWeisberg11} provides many functions that are applied to a fitted regression model, perform additional calculations on the model or possibly compute a different model, and then return values and graphs.  In some cases, users may wish to write functions that call functions in \car{} for a particular purpose. Because of the scoping rules used in \R{}, several functions in \car{} that work when called from the command prompt may fail when called inside another function.  We discuss how users can modify their programs to avoid this problem.
+\end{abstract}
+
+\section{\code{deltaMethod}}
+The \car{} package includes many functions that require an object created by a modeling function like \code{lm}, \code{glm} or \code{nls} as input.  For a simple example, the function \code{deltaMethod} uses the delta method \citep[Sec.~4.4.6]{FoxWeisberg11} to estimate the value and standard error of a nonlinear combination of parameter estimates.  For example
+<<>>=
+library(car)
+m1 <- lm(time ~ t1 + t2, Transact)
+deltaMethod(m1, "t1/(t2 + 2)")
+@
+Here \code{deltaMethod} returns the standard error of the estimate of $\beta_1/(\beta_2+2)$, where $\beta_j$ is the parameter corresponding to the regressor \texttt{t}$_j$.  The code
+<<>>=
+ans <- NULL
+for (z in 1:4) {
+ ans <- rbind(ans, deltaMethod(m1, "t1/(t2 + z)",
+     func = gsub("z", z, "t1/(t1+z)"))) }
+ans
+@
+also works as expected.  The \code{func} argument uses \code{gsub} to get the right row labels.
+
+Consider the function:
+<<>>=
+f1 <- function(mod) {
+ ans <- NULL
+ for (x in 1:4) {
+    ans <- rbind(ans, deltaMethod(mod, "t1/(t2 + x)",
+        func = gsub("x", x, "t1/(t1+x)")) )}
+ ans
+ }
+@
+which simply puts the code used above into a function.   Executing this function fails:
+\begin{Schunk}
+\begin{Sinput}
+f1(m1)
+\end{Sinput}
+\begin{Soutput}
+Error in eval(expr, envir, enclos) : object 'x' not found
+\end{Soutput}
+\end{Schunk}
+Worse yet, if \texttt{x} is defined in the same environment as \texttt{m1}, this function gives the wrong answer:
+<<>>=
+x <- 10
+f1(m1)
+@
+
+The core of the problem is the way that \R{} does scoping.  The regression object \texttt{m1} was created in the global environment, whereas the argument \texttt{z} in the \texttt{f1} function is created in the local environment of the function.  The call to \code{deltaMethod} is evaluated in the global environment where \texttt{m1} is defined, leading to the error message if \texttt{z} does not exist in the global environment, and to wrong answers if it does exist.
+
+For \code{deltaMethod}, there is an additional argument \texttt{constants} that can be used to fix the problem:
+<<>>=
+f2 <- function(mod) {
+ ans <- NULL
+ for (x in 1:4) {
+    ans <- rbind(ans, deltaMethod(mod, "t1/(t2 + x)",
+        func = gsub("x", x, "t1/(t1+x)"), constants=list(x=x)) )}
+ ans
+ }
+f2(m1)
+@
+The \texttt{constants} argument is a named list of quantities defined in the local function that are needed in the evaluation of \code{deltaMethod}.
+
+\section{\code{ncvTest}}
+The function \code{ncvTest} \citep[Sec.~6.5.2]{FoxWeisberg11} computes tests for non-constant variance in linear models as a function of the mean, the default, or any other linear function of regressors, even for regressors not part of the mean function.  For example,
+<<>>=
+m2 <- lm(prestige ~ education, Prestige)
+ncvTest(m2, ~ income)
+@
+fits \texttt{prestige} as a linear function of \texttt{education}, and tests for nonconstant variance as a function of \texttt{income}, another regressor in the data set \texttt{Prestige}.  Embedding this in a function fails:
+<<eval=FALSE>>=
+f3 <- function(meanmod, dta, varmod) {
+  m3 <- lm(meanmod, dta)
+  ncvTest(m3, varmod)
+  }
+f3(prestige ~ education, Prestige, ~ income)
+@
+\begin{Schunk}
+\begin{Soutput}
+Error in is.data.frame(data) : object 'dta' not found
+\end{Soutput}
+\end{Schunk}
+In this case the model \texttt{m3} is defined in the environment of the function, and the argument \texttt{dta} is defined in the global environment, and is therefore invisible when \code{ncvTest} is called.  A solution is to copy \code{dta} to the global environment.
+<<>>=
+f4 <- function(meanmod, dta, varmod) {
+   assign(".dta", dta, envir=.GlobalEnv)
+   assign(".meanmod", meanmod, envir=.GlobalEnv)
+   m1 <- lm(.meanmod, .dta)
+   ans <- ncvTest(m1, varmod)
+   remove(".dta", envir=.GlobalEnv)
+   remove(".meanmod", envir=.GlobalEnv)
+   ans
+   }
+f4(prestige ~ education, Prestige, ~income)
+f4(prestige ~ education, Prestige, ~income)
+@
+The \code{assign} function copies the \code{dta} and \code{meanmod} arguments to the global environment where \code{ncvTest} will be evaluated, and the \code{remove} function removes them before exiting the function. This is an inherently problematic strategy, because an object assigned in the global environment will replace an existing object of the same name. Consequently we renamed the \code{dta} argument \code{.dta}, with an initial period, but this is not a \emph{guarantee} that there was no preexisting object with this name.
+
+This same method can be used with functions in the \code{effects} package.  Suppose, for example, you want to write a function that will fit a model, provide printed summaries and also draw a effects plot.  The following function will fail:
+<<eval=FALSE>>=
+library(effects)
+fc <- function(dta, formula, terms) {
+ print(m1 <- lm(formula, .dta))
+ Effect(terms, m1)
+ }
+form <- prestige ~ income*type + education
+terms <- c("income", "type")
+fc(Duncan, form, terms)
+@
+As with \code{ncvTest}, \code{dta} will not be in the correct environment when \code{Effect} is evaluated.  The solution is to copy \code{dta} to the global environment:
+<<eval=FALSE>>=
+library(effects)
+fc.working <- function(dta, formula, terms) {
+ assign(".dta", dta, env=.GlobalEnv)
+ print(m1 <- lm(formula, .dta))
+ Effect(terms, m1)
+ remove(".dta", envir=.GlobalEnv)
+ }
+fc.working(Duncan, form, terms)
+@
+Assigning \code{formula} to the global environment is not necessary here because it is used by \code{lm} but not by \code{Effect}.
+
+\section{\code{Boot}}
+The \code{Boot} function in \car{} provides a convenience front-end for the function \code{boot} in the \texttt{boot} package \citep{cantyRipley13,FoxWeisberg12}.  With no arguments beyond the name of a regression object and the number of replications \texttt{R}, \code{Boot} creates the proper arguments for \code{boot} for case resampling bootstraps, and returns the coefficient vector for each sample:
+<<>>=
+m1 <- lm(time ~ t1 + t2, Transact)
+b1 <- Boot(m1, R=999)
+summary(b1)
+@
+The returned object \texttt{b1} is of class \texttt{"boot"}, as are objects created directly from the \texttt{boot} function, so helper functions in the \texttt{boot} package and in \car{} can be used on these objects, e.g.,
+<<>>=
+confint(b1)
+@
+
+The \code{Boot} function would have scoping problems even without the user embedding it in a function because the \code{boot} function called by \code{Boot} tries to evaluate the model defined in the global environment in a local environment.  In \code{car} we define an environment
+<<eval=FALSE>>=
+.carEnv <- new.env(parent=emptyenv())
+@
+and then evaluate the model in the environment \code{.carEnv}.  This environment is not exported, so to see that it exists you would need to enter
+<<>>=
+car:::.carEnv
+@
+We use this same trick in the \code{Boot.default} function so that \code{.carEnv} is globally visible. Here is a copy of \code{Boot.default} to show how this works.
+<<eval=FALSE>>=
+Boot.default <- function(object, f=coef, labels=names(coef(object)),
+                     R=999, method=c("case", "residual")) {
+  if(!(require(boot))) stop("The 'boot' package is missing")
+  f0 <- f(object)
+  if(length(labels) != length(f0)) labels <- paste("V", seq(length(f0)), sep="")
+  method <- match.arg(method)
+  if(method=="case") {
+     boot.f <- function(data, indices, .fn) {
+      assign(".boot.indices", indices, envir=car:::.carEnv)
+      mod <- update(object, subset=get(".boot.indices", envir=car:::.carEnv))
+      if(mod$qr$rank != object$qr$rank){
+            out <- .fn(object)
+            out <- rep(NA, length(out)) } else  {out <- .fn(mod)}
+     out
+     }
+    } else {
+    boot.f <- function(data, indices, .fn) {
+      first <- all(indices == seq(length(indices)))
+      res <- if(first) object$residuals else
+                  residuals(object, type="pearson")/sqrt(1 - hatvalues(object))
+      res <- if(!first) (res - mean(res)) else res
+      val <- fitted(object) + res[indices]
+      if (!is.null(object$na.action)){
+            pad <- object$na.action
+            attr(pad, "class") <- "exclude"
+            val <- naresid(pad, val)
+            }
+      assign(".y.boot", val, envir=car:::.carEnv)
+      mod <- update(object, get(".y.boot", envir=car:::.carEnv) ~ .)
+      if(mod$qr$rank != object$qr$rank){
+            out <- .fn(object)
+            out <- rep(NA, length(out)) } else  {out <- .fn(mod)}
+      out
+      }
+  }
+  b <- boot(data.frame(update(object, model=TRUE)$model), boot.f, R, .fn=f)
+  colnames(b$t) <- labels
+  if(exists(".y.boot", envir=car:::.carEnv))
+     remove(".y.boot", envir=car:::.carEnv)
+  if(exists(".boot.indices", envir=car:::.carEnv))
+     remove(".boot.indices", envir=car:::.carEnv)
+  b
+  }
+@
+
+The was also fixed in \code{bootCase}.
+
+\bibliography{embedding}
+
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/doc/embedding.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/doc/embedding.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/doc/index.html	(revision 2476)
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'car'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/car/doc/embedding.pdf">car::embedding</a></td>
+<td></td><td valign="top">Using car functions inside user functions</td>
+<td valign="top"><a href="../../../library/car/doc/embedding.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/car/doc/embedding.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/car/doc/embedding.R">R code</a></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/INDEX	(revision 2476)
@@ -0,0 +1,133 @@
+AMSsurvey               American Math Society Survey Data
+Adler                   Experimenter Expectations
+Angell                  Moral Integration of American Cities
+Anova                   Anova Tables for Various Statistical Models
+Anscombe                U. S. State Public-School Expenditures
+Baumann                 Methods of Teaching Reading Comprehension
+Bfox                    Canadian Women's Labour-Force Participation
+Blackmore               Exercise Histories of Eating-Disordered and
+                        Control Subjects
+Boot                    Bootstrapping for regression models
+Boxplot                 Boxplots With Point Identification
+Burt                    Fraudulent Data on IQs of Twins Raised Apart
+CanPop                  Canadian Population Data
+Chile                   Voting Intentions in the 1988 Chilean
+                        Plebiscite
+Chirot                  The 1907 Romanian Peasant Rebellion
+Contrasts               Functions to Construct Contrasts
+Cowles                  Cowles and Davis's Data on Volunteering
+Davis                   Self-Reports of Height and Weight
+DavisThin               Davis's Data on Drive for Thinness
+Depredations            Minnesota Wolf Depredation Data
+Duncan                  Duncan's Occupational Prestige Data
+Ericksen                The 1980 U.S. Census Undercount
+Florida                 Florida County Voting
+Freedman                Crowding and Crime in U. S. Metropolitan Areas
+Friendly                Format Effects on Recall
+Ginzberg                Data on Depression
+Greene                  Refugee Appeals
+Guyer                   Anonymity and Cooperation
+Hartnagel               Canadian Crime-Rates Time Series
+Highway1                Highway Accidents
+KosteckiDillon          Treatment of Migraine Headaches
+Leinhardt               Data on Infant-Mortality
+LoBD                    Cancer drug data use to provide an example of
+                        the use of the skew power distributions.
+Mandel                  Contrived Collinear Data
+Migration               Canadian Interprovincial Migration Data
+Moore                   Status, Authoritarianism, and Conformity
+Mroz                    U.S. Women's Labor-Force Participation
+OBrienKaiser            O'Brien and Kaiser's Repeated-Measures Data
+Ornstein                Interlocking Directorates Among Major Canadian
+                        Firms
+Pottery                 Chemical Composition of Pottery
+Prestige                Prestige of Canadian Occupations
+Quartet                 Four Regression Datasets
+Robey                   Fertility and Contraception
+SLID                    Survey of Labour and Income Dynamics
+Sahlins                 Agricultural Production in Mazulu Village
+Salaries                Salaries for Professors
+ScatterplotSmoothers    Smoothers to Draw Lines on Scatterplots
+Soils                   Soil Compositions of Physical and Chemical
+                        Characteristics
+States                  Education and Related Statistics for the U.S.
+                        States
+Transact                Transaction data
+UN                      GDP and Infant Mortality
+USPop                   Population of the United States
+Vocab                   Vocabulary and Education
+WeightLoss              Weight Loss Data
+Womenlf                 Canadian Women's Labour-Force Participation
+Wong                    Post-Coma Recovery of IQ
+Wool                    Wool data
+avPlots                 Added-Variable Plots
+basicPowerAxis          Axes for Transformed Variables
+bcPower                 Box-Cox, Yeo-Johnson and Basic Power
+                        Transformations
+boxCox                  Box-Cox Transformations for Linear Models
+boxCoxVariable          Constructed Variable for Box-Cox Transformation
+boxTidwell              Box-Tidwell Transformations
+car-deprecated          Deprecated Functions in car Package
+car-internal.Rd         Internal Objects for the 'car' package
+car-package             Companion to Applied Regression
+carWeb                  Access to the R Companion to Applied Regression
+                        website
+ceresPlots              Ceres Plots
+compareCoefs            Print estimated coefficients and their standard
+                        errors in a table for several regression
+                        models.
+crPlots                 Component+Residual (Partial Residual) Plots
+deltaMethod             Estimate and Standard Error of a Nonlinear
+                        Function of Estimated Regression Coefficients
+densityPlot             Nonparametric Density Estimates
+dfbetaPlots             dfbeta and dfbetas Index Plots
+durbinWatsonTest        Durbin-Watson Test for Autocorrelated Errors
+ellipse                 Ellipses, Data Ellipses, and Confidence
+                        Ellipses
+hccm                    Heteroscedasticity-Corrected Covariance
+                        Matrices
+hist.boot               Generic functions to provide support for 'boot'
+                        objects
+infIndexPlot            Influence Index Plot
+influencePlot           Regression Influence Plot
+invResPlot              Inverse Response Plots to Transform the
+                        Response
+invTranPlot             Choose a Predictor Transformation Visually or
+                        Numerically
+leveneTest              Levene's Test
+leveragePlots           Regression Leverage Plots
+linearHypothesis        Test Linear Hypothesis
+logit                   Logit Transformation
+mcPlots                 Draw Linear Model Marginal and Conditional
+                        Plots in Parallel or Overlaid
+mmps                    Marginal Model Plotting
+ncvTest                 Score Test for Non-Constant Error Variance
+outlierTest             Bonferroni Outlier Test
+panel.car               Panel Function for Coplots
+plot.powerTransform     plot Method for powerTransform Objects
+powerTransform          Finding Univariate or Multivariate Power
+                        Transformations
+qqPlot                  Quantile-Comparison Plots
+recode                  Recode a Variable
+regLine                 Plot Regression Line
+residualPlots           Residual Plots and Curvature Tests for Linear
+                        Model Fits
+scatter3d               Three-Dimensional Scatterplots and Point
+                        Identification
+scatterplot             Scatterplots with Boxplots
+scatterplotMatrix       Scatterplot Matrices
+showLabels              Utility Functions to Identify and Mark Extreme
+                        Points in a 2D Plot.
+sigmaHat                Return the scale estimate for a regression
+                        model
+skewPower               Skew Power Transformations
+some                    Sample a Few Elements of an Object
+spreadLevelPlot         Spread-Level Plots
+subsets                 Plot Output from regsubsets Function in leaps
+                        package
+symbox                  Boxplots for transformations to symmetry
+testTransform           Likelihood-Ratio Tests for Univariate or
+                        Multivariate Power Transformations to Normality
+vif                     Variance Inflation Factors
+wcrossprod              Weighted Matrix Crossproduct
+which.names             Position of Row Names
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/help/car.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/help/car.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/help/AnIndex	(revision 2476)
@@ -0,0 +1,336 @@
+car-package	car-package
+.carEnv	car-internal
+adaptiveKernel	densityPlot
+Adler	Adler
+AMSsurvey	AMSsurvey
+Angell	Angell
+Anova	Anova
+Anova.aov	Anova
+Anova.coxme	Anova
+Anova.coxph	Anova
+Anova.default	Anova
+Anova.glm	Anova
+Anova.lm	Anova
+Anova.lme	Anova
+Anova.manova	Anova
+Anova.mer	Anova
+Anova.merMod	Anova
+Anova.mlm	Anova
+Anova.multinom	Anova
+Anova.polr	Anova
+Anova.rlm	Anova
+Anova.svyglm	Anova
+Anscombe	Anscombe
+as.data.frame.univaov	Anova
+av.plot	car-deprecated
+av.plots	car-deprecated
+avp	avPlots
+avPlot	avPlots
+avPlot.glm	avPlots
+avPlot.lm	avPlots
+avPlots	avPlots
+basicPower	bcPower
+basicPowerAxis	TransformationAxes
+Baumann	Baumann
+bc	car-deprecated
+bcPower	bcPower
+bcPowerAxis	TransformationAxes
+Bfox	Bfox
+Blackmore	Blackmore
+Boot	Boot
+Boot.default	Boot
+Boot.glm	Boot
+Boot.lm	Boot
+Boot.nls	Boot
+bootCase	bootCase
+bootCase.glm	bootCase
+bootCase.lm	bootCase
+bootCase.nls	bootCase
+box.cox	car-deprecated
+box.cox.powers	car-deprecated
+box.cox.var	car-deprecated
+box.tidwell	car-deprecated
+boxCox	boxCox
+boxCox.default	boxCox
+boxCox.formula	boxCox
+boxCox.lm	boxCox
+boxCox.lmerMod	boxCox
+boxCox.skewpowerTransform	boxCox
+boxCoxVariable	boxCoxVariable
+Boxplot	Boxplot
+Boxplot.data.frame	Boxplot
+Boxplot.default	Boxplot
+Boxplot.formula	Boxplot
+Boxplot.list	Boxplot
+Boxplot.matrix	Boxplot
+boxTidwell	boxTidwell
+boxTidwell.default	boxTidwell
+boxTidwell.formula	boxTidwell
+Burt	Burt
+CanPop	CanPop
+car	car-package
+car-deprecated	car-deprecated
+car-internal.Rd	car-internal
+carWeb	carWeb
+ceres.plot	car-deprecated
+ceres.plots	car-deprecated
+ceresPlot	ceresPlots
+ceresPlot.glm	ceresPlots
+ceresPlot.lm	ceresPlots
+ceresPlots	ceresPlots
+Chile	Chile
+Chirot	Chirot
+compareCoefs	compareCoefs
+confidence.ellipse	car-deprecated
+confidenceEllipse	Ellipses
+confidenceEllipse.default	Ellipses
+confidenceEllipse.glm	Ellipses
+confidenceEllipse.lm	Ellipses
+confint.boot	hist.boot
+contour.skewpowerTransform	skewPower
+contour.skewpowerTransformlmer	skewPower
+contr.Helmert	Contrasts
+contr.Sum	Contrasts
+contr.Treatment	Contrasts
+Contrasts	Contrasts
+cookd	car-deprecated
+Cowles	Cowles
+cr.plot	car-deprecated
+cr.plots	car-deprecated
+crp	crPlots
+crPlot	crPlots
+crPlot.lm	crPlots
+crPlots	crPlots
+data.ellipse	car-deprecated
+dataEllipse	Ellipses
+Davis	Davis
+DavisThin	DavisThin
+deltaMethod	deltaMethod
+deltaMethod.coxph	deltaMethod
+deltaMethod.default	deltaMethod
+deltaMethod.lm	deltaMethod
+deltaMethod.lme	deltaMethod
+deltaMethod.lmList	deltaMethod
+deltaMethod.mer	deltaMethod
+deltaMethod.merMod	deltaMethod
+deltaMethod.multinom	deltaMethod
+deltaMethod.nls	deltaMethod
+deltaMethod.polr	deltaMethod
+deltaMethod.survreg	deltaMethod
+densityPlot	densityPlot
+densityPlot.default	densityPlot
+densityPlot.formula	densityPlot
+Depredations	Depredations
+dfbetaPlots	dfbetaPlots
+dfbetaPlots.lm	dfbetaPlots
+dfbetasPlots	dfbetaPlots
+dfbetasPlots.lm	dfbetaPlots
+Duncan	Duncan
+durbin.watson	car-deprecated
+durbinWatsonTest	durbinWatsonTest
+durbinWatsonTest.default	durbinWatsonTest
+durbinWatsonTest.lm	durbinWatsonTest
+dwt	durbinWatsonTest
+ellipse	Ellipses
+Ericksen	Ericksen
+estimateTransform	powerTransform
+estimateTransform.default	powerTransform
+estimateTransform.lmerMod	powerTransform
+estimateTransform.skewPower	powerTransform
+estimateTransform.skewPowerlmer	powerTransform
+Florida	Florida
+Freedman	Freedman
+Friendly	Friendly
+gamLine	ScatterplotSmoothers
+Ginzberg	Ginzberg
+Greene	Greene
+Guyer	Guyer
+Hartnagel	Hartnagel
+hccm	hccm
+hccm.default	hccm
+hccm.lm	hccm
+Highway1	Highway1
+hist.boot	hist.boot
+Identify3d	scatter3d
+infIndexPlot	infIndexPlot
+infIndexPlot.lm	infIndexPlot
+influence.plot	influencePlot
+influenceIndexPlot	infIndexPlot
+influencePlot	influencePlot
+influencePlot.lm	influencePlot
+inverseResponsePlot	invResPlot
+inverseResponsePlot.lm	invResPlot
+invResPlot	invResPlot
+invTranEstimate	invTranPlot
+invTranPlot	invTranPlot
+invTranPlot.default	invTranPlot
+invTranPlot.formula	invTranPlot
+KosteckiDillon	KosteckiDillon
+Leinhardt	Leinhardt
+levene.test	car-deprecated
+leveneTest	leveneTest
+leveneTest.default	leveneTest
+leveneTest.formula	leveneTest
+leveneTest.lm	leveneTest
+leverage.plot	car-deprecated
+leverage.plots	car-deprecated
+leveragePlot	leveragePlots
+leveragePlot.glm	leveragePlots
+leveragePlot.lm	leveragePlots
+leveragePlots	leveragePlots
+lht	linearHypothesis
+linear.hypothesis	car-deprecated
+linearHypothesis	linearHypothesis
+linearHypothesis.default	linearHypothesis
+linearHypothesis.glm	linearHypothesis
+linearHypothesis.lm	linearHypothesis
+linearHypothesis.lme	linearHypothesis
+linearHypothesis.mer	linearHypothesis
+linearHypothesis.merMod	linearHypothesis
+linearHypothesis.mlm	linearHypothesis
+linearHypothesis.nlsList	linearHypothesis
+linearHypothesis.polr	linearHypothesis
+linearHypothesis.rlm	linearHypothesis
+linearHypothesis.svyglm	linearHypothesis
+LoBD	LoBD
+loessLine	ScatterplotSmoothers
+logit	logit
+makeHypothesis	linearHypothesis
+Mandel	Mandel
+Manova	Anova
+Manova.mlm	Anova
+marginalModelPlot	marginalModelPlot
+marginalModelPlots	marginalModelPlot
+matchCoefs	linearHypothesis
+matchCoefs.default	linearHypothesis
+matchCoefs.lme	linearHypothesis
+matchCoefs.mer	linearHypothesis
+matchCoefs.merMod	linearHypothesis
+matchCoefs.mlm	linearHypothesis
+mcPlot	mcPlots
+mcPlot.lm	mcPlots
+mcPlots	mcPlots
+Migration	Migration
+mmp	marginalModelPlot
+mmp.default	marginalModelPlot
+mmp.glm	marginalModelPlot
+mmp.lm	marginalModelPlot
+mmps	marginalModelPlot
+Moore	Moore
+Mroz	Mroz
+ncv.test	car-deprecated
+ncvTest	ncvTest
+ncvTest.glm	ncvTest
+ncvTest.lm	ncvTest
+nextBoot	bootCase
+nextBoot.lm	bootCase
+nextBoot.nls	bootCase
+OBrienKaiser	OBrienKaiser
+Ornstein	Ornstein
+outlier.test	car-deprecated
+outlierTest	outlierTest
+outlierTest.glm	outlierTest
+outlierTest.lm	outlierTest
+panel.car	panel.car
+plot.powerTransform	plot.powerTransform
+Pottery	Pottery
+powerTransform	powerTransform
+powerTransform.default	powerTransform
+powerTransform.formula	powerTransform
+powerTransform.lm	powerTransform
+powerTransform.lmerMod	powerTransform
+Prestige	Prestige
+print.Anova.mlm	Anova
+print.boxTidwell	boxTidwell
+print.durbinWatsonTest	durbinWatsonTest
+print.linearHypothesis.mlm	linearHypothesis
+print.outlierTest	outlierTest
+print.spreadLevelPlot	spreadLevelPlot
+print.summary.Anova.mlm	Anova
+print.univaov	Anova
+printHypothesis	linearHypothesis
+probabilityAxis	TransformationAxes
+qq.plot	car-deprecated
+qqp	qqPlot
+qqPlot	qqPlot
+qqPlot.default	qqPlot
+qqPlot.glm	qqPlot
+qqPlot.lm	qqPlot
+quantregLine	ScatterplotSmoothers
+Quartet	Quartet
+Recode	recode
+recode	recode
+regLine	regLine
+residCurvTest	residualPlots
+residCurvTest.glm	residualPlots
+residCurvTest.lm	residualPlots
+residualPlot	residualPlots
+residualPlot.default	residualPlots
+residualPlot.glm	residualPlots
+residualPlot.lm	residualPlots
+residualPlots	residualPlots
+residualPlots.default	residualPlots
+residualPlots.glm	residualPlots
+residualPlots.lm	residualPlots
+Robey	Robey
+Sahlins	Sahlins
+Salaries	Salaries
+scatter3d	scatter3d
+scatter3d.default	scatter3d
+scatter3d.formula	scatter3d
+scatterplot	scatterplot
+scatterplot.default	scatterplot
+scatterplot.formula	scatterplot
+scatterplot.matrix	car-deprecated
+scatterplotMatrix	scatterplotMatrix
+scatterplotMatrix.default	scatterplotMatrix
+scatterplotMatrix.formula	scatterplotMatrix
+ScatterplotSmoothers	ScatterplotSmoothers
+showLabels	showLabels
+sigmaHat	sigmaHat
+sigmaHat.default	sigmaHat
+sigmaHat.glm	sigmaHat
+sigmaHat.lm	sigmaHat
+skewPower	skewPower
+SLID	SLID
+slp	spreadLevelPlot
+Soils	Soils
+some	some
+some.data.frame	some
+some.default	some
+some.matrix	some
+sp	scatterplot
+spm	scatterplotMatrix
+spread.level.plot	car-deprecated
+spreadLevelPlot	spreadLevelPlot
+spreadLevelPlot.default	spreadLevelPlot
+spreadLevelPlot.formula	spreadLevelPlot
+spreadLevelPlot.lm	spreadLevelPlot
+States	States
+subsets	subsets
+subsets.regsubsets	subsets
+summary.Anova.mlm	Anova
+summary.boot	hist.boot
+symbox	symbox
+symbox.default	symbox
+symbox.formula	symbox
+testTransform	testTransform
+testTransform.lmerModpowerTransform	testTransform
+testTransform.powerTransform	testTransform
+testTransform.skewpowerTransformlmer	testTransform
+Transact	Transact
+tukeyNonaddTest	residualPlots
+UN	UN
+USPop	USPop
+vif	vif
+vif.default	vif
+Vocab	Vocab
+wcrossprod	wcrossprod
+WeightLoss	WeightLoss
+which.names	which.names
+whichNames	which.names
+Womenlf	Womenlf
+Wong	Wong
+Wool	Wool
+yjPower	bcPower
+yjPowerAxis	TransformationAxes
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/help/car.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/help/car.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/data/Rdata.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/data/Rdata.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/data/Rdata.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/data/Rdata.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/data/Rdata.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/car/data/Rdata.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/INDEX	(revision 2476)
@@ -0,0 +1,6 @@
+evaluate                Evaluate input and return all details of
+                        evaluation.
+flush_console           An emulation of flush.console() in evaluate()
+new_output_handler      Custom output handlers.
+parse_all               Parse, retaining comments.
+replay                  Replay a list of evaluated results.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/help/evaluate.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/help/evaluate.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/help/AnIndex	(revision 2476)
@@ -0,0 +1,18 @@
+create_traceback	create_traceback
+evaluate	evaluate
+flush_console	flush_console
+inject_funs	inject_funs
+is.error	is.message
+is.message	is.message
+is.recordedplot	is.message
+is.source	is.message
+is.value	is.message
+is.warning	is.message
+line_prompt	line_prompt
+new_output_handler	new_output_handler
+output_handler	new_output_handler
+parse_all	parse_all
+replay	replay
+set_hooks	set_hooks
+try_capture_stack	try_capture_stack
+watchout	watchout
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/help/evaluate.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/help/evaluate.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/NAMESPACE	(revision 2476)
@@ -0,0 +1,32 @@
+S3method(parse_all,"function")
+S3method(parse_all,character)
+S3method(parse_all,connection)
+S3method(parse_all,default)
+S3method(replay,character)
+S3method(replay,default)
+S3method(replay,error)
+S3method(replay,list)
+S3method(replay,message)
+S3method(replay,recordedplot)
+S3method(replay,source)
+S3method(replay,value)
+S3method(replay,warning)
+export(create_traceback)
+export(evaluate)
+export(flush_console)
+export(inject_funs)
+export(is.error)
+export(is.message)
+export(is.recordedplot)
+export(is.source)
+export(is.value)
+export(is.warning)
+export(new_output_handler)
+export(parse_all)
+export(replay)
+export(set_hooks)
+export(try_capture_stack)
+import(grDevices)
+import(graphics)
+import(stringr)
+import(utils)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/NEWS	(revision 2476)
@@ -0,0 +1,222 @@
+Version 0.10
+------------------------------------------------------------------------------
+
+* Added option for the evaluate function to include timing information of ran
+  commands. This information will be subsequently rendered by the replay.
+  Example usage:
+  evaluate::replay(evaluate::evaluate('Sys.sleep(1)', include_timing = TRUE))
+
+* Added a new function `flush_console()` to emulate `flush.console()` in
+  `evaluate()` (#61).
+
+* Added a `inject_funs()` function to create functions in the environment passed
+  to the `envir` argument of `evaluate()`.
+
+Version 0.9
+------------------------------------------------------------------------------
+
+* Added an argument `allow_error` to `parse_all()` to allow syntactical errors
+  in R source code when `allow_error = TRUE`; this means `evaluate(stop_on_error
+  = 0 or 1)` will no longer stop on syntactical errors but returns a list of
+  source code and the error object instead. This can be useful to show
+  syntactical errors for pedagogical purposes.
+
+Version 0.8.3
+------------------------------------------------------------------------------
+
+* Added an argument `filename` to evaluate() and parse_all() (thanks,
+  @flying-sheep, #58).
+
+Version 0.8
+------------------------------------------------------------------------------
+
+* Changed package license to MIT.
+
+Version 0.7.2
+------------------------------------------------------------------------------
+
+* replay() fails to replay certain objects such as NULL (#53).
+
+Version 0.7
+------------------------------------------------------------------------------
+
+* R 3.0.2 is the minimal required version for this package now.
+
+Version 0.6
+------------------------------------------------------------------------------
+
+* Plots are no longer recorded when the current graphical device has been
+  changed, which may introduce issues like yihui/knitr#824.
+
+* `parse_all()` can parse R code that contains multibyte characters correctly
+  now (#49, yihui/knitr#988)
+
+Version 0.5.5
+------------------------------------------------------------------------------
+
+* Actually use the `text` and `graphics` in `new_output_handler`
+
+* Multiple expressions separated by `;` on the same line can be printed as
+  expected when the result returned is visible, e.g. both `x` and `y` will
+  be printed when the source code is `x; y`. In previous versions, only `y`
+  is printed. (thanks, Bill Venables)
+
+Version 0.5.3
+------------------------------------------------------------------------------
+
+BUG FIXES
+
+* fixed the bug reported at https://github.com/yihui/knitr/issues/722
+  (repeatedly knitting the same code results in plots being omitted
+  randomly) (thanks, Simon Urbanek)
+
+Version 0.5.1
+------------------------------------------------------------------------------
+
+BUG FIXES
+
+* under R 2.15.x, evaluate() was unable to filter out the plots triggered by
+  clip() (thanks, Uwe Ligges)
+
+Version 0.5
+------------------------------------------------------------------------------
+
+NEW FEATURES
+
+* evaluate() is better at telling if a new plot should render a new page due
+  to the new par('page') in R 3.0.2
+
+BUG FIXES
+
+* fixed yihui/knitr#600: when the last expression in the code is a comment,
+  the previous incomplete plot was not captured
+
+* the empty plots produced by strwidth(), strheight(), and clip() are no
+  longer recorded
+
+MAJOR CHANGES
+
+* evaluate() no longer records warnings in case of options(warn = -1); see
+  yihui/knitr#610
+
+* for 'output_handler' in evaluate(), visible values from the 'value' handler
+  will be saved to the output list; this makes it possible for users to save
+  the original values instead of their printed side effects; this change
+  will not affect those who use the default output handlers (#40, thanks,
+  Gabriel Becker)
+
+* the 'value' handler in new_output_handler() may take an additional
+  argument that means if the value is visible or not; this makes it possible
+  to save the invisible values as well (#41, thanks, Joroen Ooms)
+
+Version 0.4.7
+------------------------------------------------------------------------------
+
+NEW FEATURES
+
+* added two arguments keep_warning and keep_message in evaluate() so that it
+  is possible not to capture warnings or messages now
+
+BUG FIXES
+
+* fixed #25: plots can be correctly recorded under a complex layout now
+  (#25, thanks, Jack Tanner and Andy Barbour)
+
+* fixed yihui/knitr#582: evaluate() misclassified some plot changes as "par
+  changes" and removed some plots when it should not; now it is better at
+  identifying plot changes dur to par() (thanks, Keith Twombley)
+
+Version 0.4.4
+------------------------------------------------------------------------------
+
+BUG FIXES
+
+* Perspective plots from `persp()` are captured now (thanks to Harvey Lime
+  and Yihui Xie)
+
+* If an error occurs during printing a visible value, evaluate will halt on
+  a cryptic error "operator is invalid for atomic vectors" (#26, fixed by
+  Yihui Xie)
+
+* If the internal connection was accidentally closed by the user, a more
+  informative message will show up (#23)
+
+* Now the graphical device will always try to record graphics by default (when
+  new_device = TRUE) (#34)
+
+* Some empty and incomplete plots caused by par() or layout() will be
+  filtered out correctly for R 3.0 (#35)
+
+MAINTAINENCE
+
+* Yihui Xie is the new maintainer of this package now
+
+Version 0.4.3
+------------------------------------------------------------------------------
+
+NEW FEATURES
+
+* Added `output_handler` argument to `evaluate`. Should be a
+  `output_handler` object, which is a list of functions for handling
+  each type of result, prior to printing of visible return
+  values. This allows clients to override the console-like printing of
+  values, while still processing them in the correct temporal
+  context. The other handlers are necessary to convey the correct
+  ordering of the output. This essentially provides stream-based
+  processing, as an alternative to the existing deferred processing.
+
+* New option, `stop_on_error` which controls behaviour when errors
+  occur.  The default value, `0`, acts like you've copied and pasted
+  the code into the console, and continues to execute all code. `1`
+  will stop the code execution and return the results of evaluation up
+  to that point, and `2` will raise an error.
+
+BUG FIXES
+
+* Compound expressions like `x <- 10; x` are now evaluated completely.
+
+* Chinese characters on windows now work correctly (thanks to Yihui Xie)
+
+* Graphics and output interleaved correctly when generated from a loop or
+  other compound statements
+
+* By default, `evaluate` will now open a new graphics device and clean it up
+  afterwards.  To suppress that behaviour use `new_device = FALSE`
+
+* use `show` to display S4 objects.
+
+Version 0.4.2
+------------------------------------------------------------------------------
+
+* replace deprecated `.Internal(eval.with.vis)` with correct `withVisible`
+
+* `evaluate` gains `debug` argument
+
+Version 0.4.1
+------------------------------------------------------------------------------
+
+* use `test_package` to avoid problems with latest version of `testthat`
+
+evaluate 0.4 (2011-11-03)
+=========================
+
+* Use plot hooks to capture multiple plots created in a loop or within a
+  function.  (Contributed by Yihui Xie)
+
+evaluate 0.3
+============
+
+* Import `stringr` instead of depending on it.
+
+* Test plot recording only in the presence of interactive devices.
+
+evaluate 0.2
+============
+
+* try_capture_stack and create_traceback do a much better job of removing
+  infrastructure calls from the captured traceback
+
+* visible results are automatically evaluated and their outputs are captured.
+  This is particularly important for lattice and ggplot graphics, which
+  otherwise require special handling. It also correctly captures warnings,
+  errors and messages raised by the print method.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/R/evaluate.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/R/evaluate.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/R/evaluate
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/R/evaluate	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/R/evaluate	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/R/evaluate.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/R/evaluate.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/LICENSE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/LICENSE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/LICENSE	(revision 2476)
@@ -0,0 +1,2 @@
+YEAR: 2008-2016
+COPYRIGHT HOLDER: Hadley Wickham and Yihui Xie
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/DESCRIPTION	(revision 2476)
@@ -0,0 +1,35 @@
+Package: evaluate
+Type: Package
+Title: Parsing and Evaluation Tools that Provide More Details than the
+        Default
+Version: 0.10
+Date: 2016-10-10
+Authors@R: c(
+    person("Hadley", "Wickham", role = "aut"),
+    person("Yihui", "Xie", role = c("cre", "ctb"), email = "xie@yihui.name"),
+    person("Michael", "Lawrence", role = "ctb"),
+    person("Thomas", "Kluyver", role = "ctb"),
+    person("Barret", "Schloerke", role = "ctb"),
+    person("Adam", "Ryczkowski", role = "ctb")
+    )
+Description: Parsing and evaluation tools that make it easy to recreate the
+    command line behaviour of R.
+License: MIT + file LICENSE
+URL: https://github.com/hadley/evaluate
+BugReports: https://github.com/hadley/evaluate/issues
+Depends: R (>= 3.0.2)
+Imports: methods, stringr (>= 0.6.2)
+Suggests: testthat, lattice, ggplot2
+RoxygenNote: 5.0.1
+NeedsCompilation: no
+Packaged: 2016-10-10 21:31:23 UTC; yihui
+Author: Hadley Wickham [aut],
+  Yihui Xie [cre, ctb],
+  Michael Lawrence [ctb],
+  Thomas Kluyver [ctb],
+  Barret Schloerke [ctb],
+  Adam Ryczkowski [ctb]
+Maintainer: Yihui Xie <xie@yihui.name>
+Repository: CRAN
+Date/Publication: 2016-10-11 12:23:58
+Built: R 3.3.0; ; 2016-10-14 12:11:45 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/html/00Index.html	(revision 2476)
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Parsing and Evaluation Tools that Provide More Details than the
+Default</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Parsing and Evaluation Tools that Provide More Details than the
+Default
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;evaluate&rsquo; version 0.10</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="evaluate.html">evaluate</a></td>
+<td>Evaluate input and return all details of evaluation.</td></tr>
+<tr><td style="width: 25%;"><a href="flush_console.html">flush_console</a></td>
+<td>An emulation of flush.console() in evaluate()</td></tr>
+<tr><td style="width: 25%;"><a href="new_output_handler.html">new_output_handler</a></td>
+<td>Custom output handlers.</td></tr>
+<tr><td style="width: 25%;"><a href="new_output_handler.html">output_handler</a></td>
+<td>Custom output handlers.</td></tr>
+<tr><td style="width: 25%;"><a href="parse_all.html">parse_all</a></td>
+<td>Parse, retaining comments.</td></tr>
+<tr><td style="width: 25%;"><a href="replay.html">replay</a></td>
+<td>Replay a list of evaluated results.</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/evaluate/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/INDEX	(revision 2476)
@@ -0,0 +1,18 @@
+Model-class             Mother Class "Model" of all S4 Models
+glm4                    Fitting Generalized Linear Models (using S4)
+glpModel-class          Class "glpModel" of General Linear Prediction
+                        Models
+lm.fit.sparse           Fitter Function for Sparse Linear Models
+mkRespMod               Create a respModule object
+model.Matrix            Construct Possibly Sparse Design or Model
+                        Matrices
+modelMatrix-class       Class "modelMatrix" and SubClasses
+predModule-class        Class "predModule" and SubClasses
+resid,ANY-method        Aliases for Model Extractors
+respModule-class        "respModule" and derived classes
+reweightPred            Reweight Prediction Module Structure Internals
+solveCoef               Solve for the Coefficients or Coefficient
+                        Increment
+updateMu                Update 'mu', the Fitted Mean Response
+updateWts               Update the Residual and X Weights - Generic and
+                        Methods
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/help/MatrixModels.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/help/MatrixModels.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/help/AnIndex	(revision 2476)
@@ -0,0 +1,51 @@
+coef,glpModel-method	glpModel-class
+coefficients,ANY-method	resid-et-al
+coerce,ddenseModelMatrix,predModule-method	predModule-class
+coerce,dsparseModelMatrix,predModule-method	predModule-class
+ddenseModelMatrix-class	modelMatrix-class
+denseModelMatrix-class	modelMatrix-class
+dPredModule-class	predModule-class
+dsparseModelMatrix-class	modelMatrix-class
+fitted,glpModel-method	glpModel-class
+fitted,respModule-method	respModule-class
+fitted.values,ANY-method	resid-et-al
+formula,Model-method	Model-class
+glm4	glm4
+glmRespMod-class	respModule-class
+glpModel-class	glpModel-class
+lm.fit.sparse	lm.fit.sparse
+mkRespMod	mkRespMod
+Model-class	Model-class
+model.Matrix	model.Matrix
+modelMatrix-class	modelMatrix-class
+nglmRespMod-class	respModule-class
+nlsRespMod-class	respModule-class
+predModule-class	predModule-class
+print,modelMatrix-method	modelMatrix-class
+resid,ANY-method	resid-et-al
+residuals,glmRespMod-method	respModule-class
+residuals,glpModel-method	glpModel-class
+residuals,respModule-method	respModule-class
+respModule-class	respModule-class
+reweightPred	reweightPred
+reweightPred,dPredModule,matrix,numeric-method	reweightPred
+reweightPred,sPredModule,matrix,numeric-method	reweightPred
+reweightPred-methods	reweightPred
+show,modelMatrix-method	modelMatrix-class
+solveCoef	solveCoef
+solveCoef,dPredModule-method	solveCoef
+solveCoef,sPredModule-method	solveCoef
+solveCoef-methods	solveCoef
+sparseModelMatrix-class	modelMatrix-class
+sPredModule-class	predModule-class
+update,Model-method	Model-class
+updateMu	updateMu
+updateMu,glmRespMod,numeric-method	updateMu
+updateMu,nglmRespMod,numeric-method	updateMu
+updateMu,nlsRespMod,numeric-method	updateMu
+updateMu,respModule,numeric-method	updateMu
+updateMu-methods	updateMu
+updateWts	updateWts
+updateWts,glmRespMod-method	updateWts
+updateWts,respModule-method	updateWts
+updateWts-methods	updateWts
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/help/MatrixModels.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/help/MatrixModels.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/NAMESPACE	(revision 2476)
@@ -0,0 +1,106 @@
+##useDynLib(MatrixModels, .registration=TRUE)
+
+## Import non-base functions we need explicitly,
+## notably for which we define methods
+## -- prefering   importMethodsFrom(., ...)  where applicable
+
+## importFrom("graphics", image)
+## importFrom("utils", head, tail)
+##
+importFrom("stats" ## potentially all these (we import into 'lme4a'):
+           # , anova
+           , coef, coefficients # confint, cov2cor, deviance,
+           , fitted, fitted.values
+           , formula # predict, profile
+           , model.extract, model.matrix, model.offset, model.response, model.weights
+           , residuals, resid # 'resid' needed too, unfortunately..
+           # , simulate, terms
+           , update
+           )
+
+## according to codetoolsBioC :: writeNamespaceImports("MatrixModels"):
+importClassesFrom("methods", ANY, call, character, environment, envRefClass,
+                  integer, list, matrix, numeric, oldClass)
+
+importMethodsFrom("methods", show)
+importFrom("methods"
+	   , callGeneric, as, is, extends, new
+	   , getClass, getClassDef, validObject
+	   , setClass, setClassUnion, setOldClass, setRefClass
+           , setGeneric, setMethod
+           , setValidity, slot, "slot<-", slotNames
+	   , signature, representation, prototype)
+
+
+## Those our methods and functions use:
+importMethodsFrom("Matrix", as.matrix, as.vector, coerce,
+                  ## Group Methods
+                  "Arith", "Compare", "Logic", "Math", "Math2", "Ops", "Summary",
+                  t, "%*%", crossprod, tcrossprod,
+                  Cholesky, chol, chol2inv,
+                  solve,
+                  summary, print,
+		  update # notably the "CHMfactor" one
+		  )
+
+importClassesFrom("Matrix",
+		  CHMfactor, CHMsimpl, CHMsuper, dCHMsimpl, dCHMsuper,
+		  Cholesky, CholeskyFactorization,
+		  compMatrix, corMatrix,
+		  dgCMatrix, dgeMatrix, dMatrix,
+		  dsparseMatrix, sparseMatrix, CsparseMatrix,
+		  ddenseMatrix, denseMatrix,
+		  generalMatrix, Matrix)
+
+importFrom("Matrix",
+	   .solve.dgC.chol, .solve.dgC.qr,
+	   Diagonal, isLDL, sparse.model.matrix)
+
+
+## Generics and functions defined in this package -------------------------
+
+
+export(
+       "glm4",
+#TODO       "lm.fit.sparse",# <- "somewhat experimental"
+       "mkRespMod",
+       "model.Matrix"
+       , "solveCoef"
+       , "reweightPred"
+       , "updateMu"
+       , "updateWts"
+       )
+
+exportClasses(
+              "modelMatrix",
+              "sparseModelMatrix",
+              "denseModelMatrix",
+              "dsparseModelMatrix",
+              "ddenseModelMatrix",
+
+              ## --- linear predictor modules, containing a model matrix
+              "predModule",
+              "dPredModule",# dense &
+              "sPredModule",# sparse  (for now)
+
+              ## --- response modules, containing a response vector, etc.
+              "respModule",          # base class and also linear model
+              "glmRespMod",          # generalized linear models
+              "nlsRespMod",          # nonlinear regression response
+              "nglmRespMod",         # generalized nonlinear
+
+              "glpModel", "Model"
+	      )
+
+
+
+exportMethods(## for both own and "other" generics:
+
+              ## re-export S4 methods, for "stats"-S3-generics:
+              "coef", "coefficients" ## , "cov2cor"
+              ,"fitted", "fitted.values", "formula"
+              ,"residuals", "resid"
+	      ,"print"# print(x, ...) when show(x) is not sufficient
+	      ,"show"
+## not yet      ,"summary"
+	      )
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/R/MatrixModels.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/R/MatrixModels.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/R/MatrixModels
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/R/MatrixModels	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/R/MatrixModels	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/R/MatrixModels.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/R/MatrixModels.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/DESCRIPTION	(revision 2476)
@@ -0,0 +1,20 @@
+Package: MatrixModels
+Version: 0.4-1
+Date: 2015-08-22
+Title: Modelling with Sparse And Dense Matrices
+Author: Douglas Bates <bates@stat.wisc.edu> and Martin Maechler <maechler@stat.math.ethz.ch>
+Maintainer: Martin Maechler <mmaechler+Matrix@gmail.com>
+Contact: Doug and Martin <Matrix-authors@R-project.org>
+Description: Modelling with sparse and dense 'Matrix' matrices, using
+  modular prediction and response module classes.
+Depends: R (>= 3.0.1)
+Imports: stats, methods, Matrix (>= 1.1-5)
+Encoding: UTF-8
+LazyLoad: yes
+License: GPL (>= 2)
+URL: http://Matrix.R-forge.R-project.org/
+NeedsCompilation: no
+Packaged: 2015-08-22 20:32:14 UTC; maechler
+Repository: CRAN
+Date/Publication: 2015-08-22 23:37:45
+Built: R 3.3.0; ; 2016-05-05 08:01:49 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/html/00Index.html	(revision 2476)
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Modelling with Sparse And Dense Matrices</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Modelling with Sparse And Dense Matrices
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;MatrixModels&rsquo; version 0.4-1</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="glpModel-class.html">coef-method</a></td>
+<td>Class "glpModel" of General Linear Prediction Models</td></tr>
+<tr><td style="width: 25%;"><a href="resid-et-al.html">coefficients-method</a></td>
+<td>Aliases for Model Extractors</td></tr>
+<tr><td style="width: 25%;"><a href="predModule-class.html">coerce-method</a></td>
+<td>Class "predModule" and SubClasses</td></tr>
+<tr><td style="width: 25%;"><a href="modelMatrix-class.html">ddenseModelMatrix-class</a></td>
+<td>Class "modelMatrix" and SubClasses</td></tr>
+<tr><td style="width: 25%;"><a href="modelMatrix-class.html">denseModelMatrix-class</a></td>
+<td>Class "modelMatrix" and SubClasses</td></tr>
+<tr><td style="width: 25%;"><a href="predModule-class.html">dPredModule-class</a></td>
+<td>Class "predModule" and SubClasses</td></tr>
+<tr><td style="width: 25%;"><a href="modelMatrix-class.html">dsparseModelMatrix-class</a></td>
+<td>Class "modelMatrix" and SubClasses</td></tr>
+<tr><td style="width: 25%;"><a href="glpModel-class.html">fitted-method</a></td>
+<td>Class "glpModel" of General Linear Prediction Models</td></tr>
+<tr><td style="width: 25%;"><a href="respModule-class.html">fitted-method</a></td>
+<td>"respModule" and derived classes</td></tr>
+<tr><td style="width: 25%;"><a href="resid-et-al.html">fitted.values-method</a></td>
+<td>Aliases for Model Extractors</td></tr>
+<tr><td style="width: 25%;"><a href="Model-class.html">formula-method</a></td>
+<td>Mother Class "Model" of all S4 Models</td></tr>
+<tr><td style="width: 25%;"><a href="glm4.html">glm4</a></td>
+<td>Fitting Generalized Linear Models (using S4)</td></tr>
+<tr><td style="width: 25%;"><a href="respModule-class.html">glmRespMod-class</a></td>
+<td>"respModule" and derived classes</td></tr>
+<tr><td style="width: 25%;"><a href="glpModel-class.html">glpModel-class</a></td>
+<td>Class "glpModel" of General Linear Prediction Models</td></tr>
+<tr><td style="width: 25%;"><a href="lm.fit.sparse.html">lm.fit.sparse</a></td>
+<td>Fitter Function for Sparse Linear Models</td></tr>
+<tr><td style="width: 25%;"><a href="mkRespMod.html">mkRespMod</a></td>
+<td>Create a respModule object</td></tr>
+<tr><td style="width: 25%;"><a href="Model-class.html">Model-class</a></td>
+<td>Mother Class "Model" of all S4 Models</td></tr>
+<tr><td style="width: 25%;"><a href="model.Matrix.html">model.Matrix</a></td>
+<td>Construct Possibly Sparse Design or Model Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="modelMatrix-class.html">modelMatrix-class</a></td>
+<td>Class "modelMatrix" and SubClasses</td></tr>
+<tr><td style="width: 25%;"><a href="respModule-class.html">nglmRespMod-class</a></td>
+<td>"respModule" and derived classes</td></tr>
+<tr><td style="width: 25%;"><a href="respModule-class.html">nlsRespMod-class</a></td>
+<td>"respModule" and derived classes</td></tr>
+<tr><td style="width: 25%;"><a href="predModule-class.html">predModule-class</a></td>
+<td>Class "predModule" and SubClasses</td></tr>
+<tr><td style="width: 25%;"><a href="modelMatrix-class.html">print-method</a></td>
+<td>Class "modelMatrix" and SubClasses</td></tr>
+<tr><td style="width: 25%;"><a href="resid-et-al.html">resid-method</a></td>
+<td>Aliases for Model Extractors</td></tr>
+<tr><td style="width: 25%;"><a href="glpModel-class.html">residuals-method</a></td>
+<td>Class "glpModel" of General Linear Prediction Models</td></tr>
+<tr><td style="width: 25%;"><a href="respModule-class.html">residuals-method</a></td>
+<td>"respModule" and derived classes</td></tr>
+<tr><td style="width: 25%;"><a href="respModule-class.html">respModule-class</a></td>
+<td>"respModule" and derived classes</td></tr>
+<tr><td style="width: 25%;"><a href="reweightPred.html">reweightPred</a></td>
+<td>Reweight Prediction Module Structure Internals</td></tr>
+<tr><td style="width: 25%;"><a href="reweightPred.html">reweightPred-method</a></td>
+<td>Reweight Prediction Module Structure Internals</td></tr>
+<tr><td style="width: 25%;"><a href="reweightPred.html">reweightPred-methods</a></td>
+<td>Reweight Prediction Module Structure Internals</td></tr>
+<tr><td style="width: 25%;"><a href="modelMatrix-class.html">show-method</a></td>
+<td>Class "modelMatrix" and SubClasses</td></tr>
+<tr><td style="width: 25%;"><a href="solveCoef.html">solveCoef</a></td>
+<td>Solve for the Coefficients or Coefficient Increment</td></tr>
+<tr><td style="width: 25%;"><a href="solveCoef.html">solveCoef-method</a></td>
+<td>Solve for the Coefficients or Coefficient Increment</td></tr>
+<tr><td style="width: 25%;"><a href="solveCoef.html">solveCoef-methods</a></td>
+<td>Solve for the Coefficients or Coefficient Increment</td></tr>
+<tr><td style="width: 25%;"><a href="modelMatrix-class.html">sparseModelMatrix-class</a></td>
+<td>Class "modelMatrix" and SubClasses</td></tr>
+<tr><td style="width: 25%;"><a href="predModule-class.html">sPredModule-class</a></td>
+<td>Class "predModule" and SubClasses</td></tr>
+<tr><td style="width: 25%;"><a href="Model-class.html">update-method</a></td>
+<td>Mother Class "Model" of all S4 Models</td></tr>
+<tr><td style="width: 25%;"><a href="updateMu.html">updateMu</a></td>
+<td>Update 'mu', the Fitted Mean Response</td></tr>
+<tr><td style="width: 25%;"><a href="updateMu.html">updateMu-method</a></td>
+<td>Update 'mu', the Fitted Mean Response</td></tr>
+<tr><td style="width: 25%;"><a href="updateMu.html">updateMu-methods</a></td>
+<td>Update 'mu', the Fitted Mean Response</td></tr>
+<tr><td style="width: 25%;"><a href="updateWts.html">updateWts</a></td>
+<td>Update the Residual and X Weights - Generic and Methods</td></tr>
+<tr><td style="width: 25%;"><a href="updateWts.html">updateWts-method</a></td>
+<td>Update the Residual and X Weights - Generic and Methods</td></tr>
+<tr><td style="width: 25%;"><a href="updateWts.html">updateWts-methods</a></td>
+<td>Update the Residual and X Weights - Generic and Methods</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/MatrixModels/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/DESCRIPTION	(revision 2476)
@@ -0,0 +1,9 @@
+Package: datasets
+Version: 3.3.2
+Priority: base
+Title: The R Datasets Package
+Author: R Core Team and contributors worldwide
+Maintainer: R Core Team <R-core@r-project.org>
+Description: Base R datasets.
+License: Part of R 3.3.2
+Built: R 3.3.2; ; 2016-10-31 14:32:57 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/html/00Index.html	(revision 2476)
@@ -0,0 +1,372 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: The R Datasets Package</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> The R Datasets Package
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;datasets&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="# "> </a>
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#H">H</a>
+<a href="#I">I</a>
+<a href="#J">J</a>
+<a href="#L">L</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#O">O</a>
+<a href="#P">P</a>
+<a href="#Q">Q</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#U">U</a>
+<a href="#V">V</a>
+<a href="#W">W</a>
+</p>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="datasets-package.html">datasets-package</a></td>
+<td>The R Datasets Package</td></tr>
+</table>
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="ability.cov.html">ability.cov</a></td>
+<td>Ability and Intelligence Tests</td></tr>
+<tr><td style="width: 25%;"><a href="airmiles.html">airmiles</a></td>
+<td>Passenger Miles on Commercial US Airlines, 1937-1960</td></tr>
+<tr><td style="width: 25%;"><a href="AirPassengers.html">AirPassengers</a></td>
+<td>Monthly Airline Passenger Numbers 1949-1960</td></tr>
+<tr><td style="width: 25%;"><a href="airquality.html">airquality</a></td>
+<td>New York Air Quality Measurements</td></tr>
+<tr><td style="width: 25%;"><a href="anscombe.html">anscombe</a></td>
+<td>Anscombe's Quartet of 'Identical' Simple Linear Regressions</td></tr>
+<tr><td style="width: 25%;"><a href="attenu.html">attenu</a></td>
+<td>The Joyner-Boore Attenuation Data</td></tr>
+<tr><td style="width: 25%;"><a href="attitude.html">attitude</a></td>
+<td>The Chatterjee-Price Attitude Data</td></tr>
+<tr><td style="width: 25%;"><a href="austres.html">austres</a></td>
+<td>Quarterly Time Series of the Number of Australian Residents</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="beavers.html">beaver1</a></td>
+<td>Body Temperature Series of Two Beavers</td></tr>
+<tr><td style="width: 25%;"><a href="beavers.html">beaver2</a></td>
+<td>Body Temperature Series of Two Beavers</td></tr>
+<tr><td style="width: 25%;"><a href="beavers.html">beavers</a></td>
+<td>Body Temperature Series of Two Beavers</td></tr>
+<tr><td style="width: 25%;"><a href="BJsales.html">BJsales</a></td>
+<td>Sales Data with Leading Indicator</td></tr>
+<tr><td style="width: 25%;"><a href="BJsales.html">BJsales.lead</a></td>
+<td>Sales Data with Leading Indicator</td></tr>
+<tr><td style="width: 25%;"><a href="BOD.html">BOD</a></td>
+<td>Biochemical Oxygen Demand</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="cars.html">cars</a></td>
+<td>Speed and Stopping Distances of Cars</td></tr>
+<tr><td style="width: 25%;"><a href="ChickWeight.html">ChickWeight</a></td>
+<td>Weight versus age of chicks on different diets</td></tr>
+<tr><td style="width: 25%;"><a href="chickwts.html">chickwts</a></td>
+<td>Chicken Weights by Feed Type</td></tr>
+<tr><td style="width: 25%;"><a href="zCO2.html">CO2</a></td>
+<td>Carbon Dioxide Uptake in Grass Plants</td></tr>
+<tr><td style="width: 25%;"><a href="co2.html">co2</a></td>
+<td>Mauna Loa Atmospheric CO2 Concentration</td></tr>
+<tr><td style="width: 25%;"><a href="crimtab.html">crimtab</a></td>
+<td>Student's 3000 Criminals Data</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="datasets-package.html">datasets</a></td>
+<td>The R Datasets Package</td></tr>
+<tr><td style="width: 25%;"><a href="discoveries.html">discoveries</a></td>
+<td>Yearly Numbers of Important Discoveries</td></tr>
+<tr><td style="width: 25%;"><a href="DNase.html">DNase</a></td>
+<td>Elisa assay of DNase</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="esoph.html">esoph</a></td>
+<td>Smoking, Alcohol and (O)esophageal Cancer</td></tr>
+<tr><td style="width: 25%;"><a href="euro.html">euro</a></td>
+<td>Conversion Rates of Euro Currencies</td></tr>
+<tr><td style="width: 25%;"><a href="euro.html">euro.cross</a></td>
+<td>Conversion Rates of Euro Currencies</td></tr>
+<tr><td style="width: 25%;"><a href="eurodist.html">eurodist</a></td>
+<td>Distances Between European Cities and Between US Cities</td></tr>
+<tr><td style="width: 25%;"><a href="EuStockMarkets.html">EuStockMarkets</a></td>
+<td>Daily Closing Prices of Major European Stock Indices, 1991-1998</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="faithful.html">faithful</a></td>
+<td>Old Faithful Geyser Data</td></tr>
+<tr><td style="width: 25%;"><a href="UKLungDeaths.html">fdeaths</a></td>
+<td>Monthly Deaths from Lung Diseases in the UK</td></tr>
+<tr><td style="width: 25%;"><a href="Formaldehyde.html">Formaldehyde</a></td>
+<td>Determination of Formaldehyde</td></tr>
+<tr><td style="width: 25%;"><a href="freeny.html">freeny</a></td>
+<td>Freeny's Revenue Data</td></tr>
+<tr><td style="width: 25%;"><a href="freeny.html">freeny.x</a></td>
+<td>Freeny's Revenue Data</td></tr>
+<tr><td style="width: 25%;"><a href="freeny.html">freeny.y</a></td>
+<td>Freeny's Revenue Data</td></tr>
+</table>
+
+<h2><a name="H">-- H --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="HairEyeColor.html">HairEyeColor</a></td>
+<td>Hair and Eye Color of Statistics Students</td></tr>
+<tr><td style="width: 25%;"><a href="Harman23.cor.html">Harman23.cor</a></td>
+<td>Harman Example 2.3</td></tr>
+<tr><td style="width: 25%;"><a href="Harman74.cor.html">Harman74.cor</a></td>
+<td>Harman Example 7.4</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Indometh.html">Indometh</a></td>
+<td>Pharmacokinetics of Indomethacin</td></tr>
+<tr><td style="width: 25%;"><a href="infert.html">infert</a></td>
+<td>Infertility after Spontaneous and Induced Abortion</td></tr>
+<tr><td style="width: 25%;"><a href="InsectSprays.html">InsectSprays</a></td>
+<td>Effectiveness of Insect Sprays</td></tr>
+<tr><td style="width: 25%;"><a href="iris.html">iris</a></td>
+<td>Edgar Anderson's Iris Data</td></tr>
+<tr><td style="width: 25%;"><a href="iris.html">iris3</a></td>
+<td>Edgar Anderson's Iris Data</td></tr>
+<tr><td style="width: 25%;"><a href="islands.html">islands</a></td>
+<td>Areas of the World's Major Landmasses</td></tr>
+</table>
+
+<h2><a name="J">-- J --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="JohnsonJohnson.html">JohnsonJohnson</a></td>
+<td>Quarterly Earnings per Johnson &amp; Johnson Share</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="LakeHuron.html">LakeHuron</a></td>
+<td>Level of Lake Huron 1875-1972</td></tr>
+<tr><td style="width: 25%;"><a href="UKLungDeaths.html">ldeaths</a></td>
+<td>Monthly Deaths from Lung Diseases in the UK</td></tr>
+<tr><td style="width: 25%;"><a href="lh.html">lh</a></td>
+<td>Luteinizing Hormone in Blood Samples</td></tr>
+<tr><td style="width: 25%;"><a href="LifeCycleSavings.html">LifeCycleSavings</a></td>
+<td>Intercountry Life-Cycle Savings Data</td></tr>
+<tr><td style="width: 25%;"><a href="Loblolly.html">Loblolly</a></td>
+<td>Growth of Loblolly pine trees</td></tr>
+<tr><td style="width: 25%;"><a href="longley.html">longley</a></td>
+<td>Longley's Economic Regression Data</td></tr>
+<tr><td style="width: 25%;"><a href="lynx.html">lynx</a></td>
+<td>Annual Canadian Lynx trappings 1821-1934</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="UKLungDeaths.html">mdeaths</a></td>
+<td>Monthly Deaths from Lung Diseases in the UK</td></tr>
+<tr><td style="width: 25%;"><a href="morley.html">morley</a></td>
+<td>Michelson Speed of Light Data</td></tr>
+<tr><td style="width: 25%;"><a href="mtcars.html">mtcars</a></td>
+<td>Motor Trend Car Road Tests</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="nhtemp.html">nhtemp</a></td>
+<td>Average Yearly Temperatures in New Haven</td></tr>
+<tr><td style="width: 25%;"><a href="Nile.html">Nile</a></td>
+<td>Flow of the River Nile</td></tr>
+<tr><td style="width: 25%;"><a href="nottem.html">nottem</a></td>
+<td>Average Monthly Temperatures at Nottingham, 1920-1939</td></tr>
+<tr><td style="width: 25%;"><a href="npk.html">npk</a></td>
+<td>Classical N, P, K Factorial Experiment</td></tr>
+</table>
+
+<h2><a name="O">-- O --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="occupationalStatus.html">occupationalStatus</a></td>
+<td>Occupational Status of Fathers and their Sons</td></tr>
+<tr><td style="width: 25%;"><a href="Orange.html">Orange</a></td>
+<td>Growth of Orange Trees</td></tr>
+<tr><td style="width: 25%;"><a href="OrchardSprays.html">OrchardSprays</a></td>
+<td>Potency of Orchard Sprays</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="PlantGrowth.html">PlantGrowth</a></td>
+<td>Results from an Experiment on Plant Growth</td></tr>
+<tr><td style="width: 25%;"><a href="precip.html">precip</a></td>
+<td>Annual Precipitation in US Cities</td></tr>
+<tr><td style="width: 25%;"><a href="presidents.html">presidents</a></td>
+<td>Quarterly Approval Ratings of US Presidents</td></tr>
+<tr><td style="width: 25%;"><a href="pressure.html">pressure</a></td>
+<td>Vapor Pressure of Mercury as a Function of Temperature</td></tr>
+<tr><td style="width: 25%;"><a href="Puromycin.html">Puromycin</a></td>
+<td>Reaction Velocity of an Enzymatic Reaction</td></tr>
+</table>
+
+<h2><a name="Q">-- Q --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="quakes.html">quakes</a></td>
+<td>Locations of Earthquakes off Fiji</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="randu.html">randu</a></td>
+<td>Random Numbers from Congruential Generator RANDU</td></tr>
+<tr><td style="width: 25%;"><a href="rivers.html">rivers</a></td>
+<td>Lengths of Major North American Rivers</td></tr>
+<tr><td style="width: 25%;"><a href="rock.html">rock</a></td>
+<td>Measurements on Petroleum Rock Samples</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="UKDriverDeaths.html">Seatbelts</a></td>
+<td>Road Casualties in Great Britain 1969-84</td></tr>
+<tr><td style="width: 25%;"><a href="sleep.html">sleep</a></td>
+<td>Student's Sleep Data</td></tr>
+<tr><td style="width: 25%;"><a href="stackloss.html">stack.loss</a></td>
+<td>Brownlee's Stack Loss Plant Data</td></tr>
+<tr><td style="width: 25%;"><a href="stackloss.html">stack.x</a></td>
+<td>Brownlee's Stack Loss Plant Data</td></tr>
+<tr><td style="width: 25%;"><a href="stackloss.html">stackloss</a></td>
+<td>Brownlee's Stack Loss Plant Data</td></tr>
+<tr><td style="width: 25%;"><a href="state.html">state</a></td>
+<td>US State Facts and Figures</td></tr>
+<tr><td style="width: 25%;"><a href="state.html">state.abb</a></td>
+<td>US State Facts and Figures</td></tr>
+<tr><td style="width: 25%;"><a href="state.html">state.area</a></td>
+<td>US State Facts and Figures</td></tr>
+<tr><td style="width: 25%;"><a href="state.html">state.center</a></td>
+<td>US State Facts and Figures</td></tr>
+<tr><td style="width: 25%;"><a href="state.html">state.division</a></td>
+<td>US State Facts and Figures</td></tr>
+<tr><td style="width: 25%;"><a href="state.html">state.name</a></td>
+<td>US State Facts and Figures</td></tr>
+<tr><td style="width: 25%;"><a href="state.html">state.region</a></td>
+<td>US State Facts and Figures</td></tr>
+<tr><td style="width: 25%;"><a href="state.html">state.x77</a></td>
+<td>US State Facts and Figures</td></tr>
+<tr><td style="width: 25%;"><a href="sunspot.month.html">sunspot.month</a></td>
+<td>Monthly Sunspot Data, from 1749 to "Present"</td></tr>
+<tr><td style="width: 25%;"><a href="sunspot.year.html">sunspot.year</a></td>
+<td>Yearly Sunspot Data, 1700-1988</td></tr>
+<tr><td style="width: 25%;"><a href="sunspots.html">sunspots</a></td>
+<td>Monthly Sunspot Numbers, 1749-1983</td></tr>
+<tr><td style="width: 25%;"><a href="swiss.html">swiss</a></td>
+<td>Swiss Fertility and Socioeconomic Indicators (1888) Data</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Theoph.html">Theoph</a></td>
+<td>Pharmacokinetics of Theophylline</td></tr>
+<tr><td style="width: 25%;"><a href="Titanic.html">Titanic</a></td>
+<td>Survival of passengers on the Titanic</td></tr>
+<tr><td style="width: 25%;"><a href="ToothGrowth.html">ToothGrowth</a></td>
+<td>The Effect of Vitamin C on Tooth Growth in Guinea Pigs</td></tr>
+<tr><td style="width: 25%;"><a href="treering.html">treering</a></td>
+<td>Yearly Treering Data, -6000-1979</td></tr>
+<tr><td style="width: 25%;"><a href="trees.html">trees</a></td>
+<td>Girth, Height and Volume for Black Cherry Trees</td></tr>
+</table>
+
+<h2><a name="U">-- U --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="UCBAdmissions.html">UCBAdmissions</a></td>
+<td>Student Admissions at UC Berkeley</td></tr>
+<tr><td style="width: 25%;"><a href="UKDriverDeaths.html">UKDriverDeaths</a></td>
+<td>Road Casualties in Great Britain 1969-84</td></tr>
+<tr><td style="width: 25%;"><a href="UKgas.html">UKgas</a></td>
+<td>UK Quarterly Gas Consumption</td></tr>
+<tr><td style="width: 25%;"><a href="UKLungDeaths.html">UKLungDeaths</a></td>
+<td>Monthly Deaths from Lung Diseases in the UK</td></tr>
+<tr><td style="width: 25%;"><a href="USAccDeaths.html">USAccDeaths</a></td>
+<td>Accidental Deaths in the US 1973-1978</td></tr>
+<tr><td style="width: 25%;"><a href="USArrests.html">USArrests</a></td>
+<td>Violent Crime Rates by US State</td></tr>
+<tr><td style="width: 25%;"><a href="eurodist.html">UScitiesD</a></td>
+<td>Distances Between European Cities and Between US Cities</td></tr>
+<tr><td style="width: 25%;"><a href="USJudgeRatings.html">USJudgeRatings</a></td>
+<td>Lawyers' Ratings of State Judges in the US Superior Court</td></tr>
+<tr><td style="width: 25%;"><a href="USPersonalExpenditure.html">USPersonalExpenditure</a></td>
+<td>Personal Expenditure Data</td></tr>
+<tr><td style="width: 25%;"><a href="uspop.html">uspop</a></td>
+<td>Populations Recorded by the US Census</td></tr>
+</table>
+
+<h2><a name="V">-- V --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="VADeaths.html">VADeaths</a></td>
+<td>Death Rates in Virginia (1940)</td></tr>
+<tr><td style="width: 25%;"><a href="volcano.html">volcano</a></td>
+<td>Topographic Information on Auckland's Maunga Whau Volcano</td></tr>
+</table>
+
+<h2><a name="W">-- W --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="warpbreaks.html">warpbreaks</a></td>
+<td>The Number of Breaks in Yarn during Weaving</td></tr>
+<tr><td style="width: 25%;"><a href="women.html">women</a></td>
+<td>Average Heights and Weights for American Women</td></tr>
+<tr><td style="width: 25%;"><a href="WorldPhones.html">WorldPhones</a></td>
+<td>The World's Telephones</td></tr>
+<tr><td style="width: 25%;"><a href="WWWusage.html">WWWusage</a></td>
+<td>Internet Usage per Minute</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/INDEX	(revision 2476)
@@ -0,0 +1,100 @@
+AirPassengers           Monthly Airline Passenger Numbers 1949-1960
+BJsales                 Sales Data with Leading Indicator
+BOD                     Biochemical Oxygen Demand
+CO2                     Carbon Dioxide Uptake in Grass Plants
+ChickWeight             Weight versus age of chicks on different diets
+DNase                   Elisa assay of DNase
+EuStockMarkets          Daily Closing Prices of Major European Stock
+                        Indices, 1991-1998
+Formaldehyde            Determination of Formaldehyde
+HairEyeColor            Hair and Eye Color of Statistics Students
+Harman23.cor            Harman Example 2.3
+Harman74.cor            Harman Example 7.4
+Indometh                Pharmacokinetics of Indomethacin
+InsectSprays            Effectiveness of Insect Sprays
+JohnsonJohnson          Quarterly Earnings per Johnson & Johnson Share
+LakeHuron               Level of Lake Huron 1875-1972
+LifeCycleSavings        Intercountry Life-Cycle Savings Data
+Loblolly                Growth of Loblolly pine trees
+Nile                    Flow of the River Nile
+Orange                  Growth of Orange Trees
+OrchardSprays           Potency of Orchard Sprays
+PlantGrowth             Results from an Experiment on Plant Growth
+Puromycin               Reaction Velocity of an Enzymatic Reaction
+Theoph                  Pharmacokinetics of Theophylline
+Titanic                 Survival of passengers on the Titanic
+ToothGrowth             The Effect of Vitamin C on Tooth Growth in
+                        Guinea Pigs
+UCBAdmissions           Student Admissions at UC Berkeley
+UKDriverDeaths          Road Casualties in Great Britain 1969-84
+UKLungDeaths            Monthly Deaths from Lung Diseases in the UK
+UKgas                   UK Quarterly Gas Consumption
+USAccDeaths             Accidental Deaths in the US 1973-1978
+USArrests               Violent Crime Rates by US State
+USJudgeRatings          Lawyers' Ratings of State Judges in the US
+                        Superior Court
+USPersonalExpenditure   Personal Expenditure Data
+VADeaths                Death Rates in Virginia (1940)
+WWWusage                Internet Usage per Minute
+WorldPhones             The World's Telephones
+ability.cov             Ability and Intelligence Tests
+airmiles                Passenger Miles on Commercial US Airlines,
+                        1937-1960
+airquality              New York Air Quality Measurements
+anscombe                Anscombe's Quartet of 'Identical' Simple Linear
+                        Regressions
+attenu                  The Joyner-Boore Attenuation Data
+attitude                The Chatterjee-Price Attitude Data
+austres                 Quarterly Time Series of the Number of
+                        Australian Residents
+beavers                 Body Temperature Series of Two Beavers
+cars                    Speed and Stopping Distances of Cars
+chickwts                Chicken Weights by Feed Type
+co2                     Mauna Loa Atmospheric CO2 Concentration
+crimtab                 Student's 3000 Criminals Data
+datasets-package        The R Datasets Package
+discoveries             Yearly Numbers of Important Discoveries
+esoph                   Smoking, Alcohol and (O)esophageal Cancer
+euro                    Conversion Rates of Euro Currencies
+eurodist                Distances Between European Cities and Between
+                        US Cities
+faithful                Old Faithful Geyser Data
+freeny                  Freeny's Revenue Data
+infert                  Infertility after Spontaneous and Induced
+                        Abortion
+iris                    Edgar Anderson's Iris Data
+islands                 Areas of the World's Major Landmasses
+lh                      Luteinizing Hormone in Blood Samples
+longley                 Longley's Economic Regression Data
+lynx                    Annual Canadian Lynx trappings 1821-1934
+morley                  Michelson Speed of Light Data
+mtcars                  Motor Trend Car Road Tests
+nhtemp                  Average Yearly Temperatures in New Haven
+nottem                  Average Monthly Temperatures at Nottingham,
+                        1920-1939
+npk                     Classical N, P, K Factorial Experiment
+occupationalStatus      Occupational Status of Fathers and their Sons
+precip                  Annual Precipitation in US Cities
+presidents              Quarterly Approval Ratings of US Presidents
+pressure                Vapor Pressure of Mercury as a Function of
+                        Temperature
+quakes                  Locations of Earthquakes off Fiji
+randu                   Random Numbers from Congruential Generator
+                        RANDU
+rivers                  Lengths of Major North American Rivers
+rock                    Measurements on Petroleum Rock Samples
+sleep                   Student's Sleep Data
+stackloss               Brownlee's Stack Loss Plant Data
+state                   US State Facts and Figures
+sunspot.month           Monthly Sunspot Data, from 1749 to "Present"
+sunspot.year            Yearly Sunspot Data, 1700-1988
+sunspots                Monthly Sunspot Numbers, 1749-1983
+swiss                   Swiss Fertility and Socioeconomic Indicators
+                        (1888) Data
+treering                Yearly Treering Data, -6000-1979
+trees                   Girth, Height and Volume for Black Cherry Trees
+uspop                   Populations Recorded by the US Census
+volcano                 Topographic Information on Auckland's Maunga
+                        Whau Volcano
+warpbreaks              The Number of Breaks in Yarn during Weaving
+women                   Average Heights and Weights for American Women
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/help/datasets.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/help/datasets.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/help/datasets.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/help/datasets.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/help/AnIndex	(revision 2476)
@@ -0,0 +1,109 @@
+datasets-package	datasets-package
+ability.cov	ability.cov
+airmiles	airmiles
+AirPassengers	AirPassengers
+airquality	airquality
+anscombe	anscombe
+attenu	attenu
+attitude	attitude
+austres	austres
+beaver1	beavers
+beaver2	beavers
+beavers	beavers
+BJsales	BJsales
+BJsales.lead	BJsales
+BOD	BOD
+cars	cars
+ChickWeight	ChickWeight
+chickwts	chickwts
+CO2	zCO2
+co2	co2
+crimtab	crimtab
+datasets	datasets-package
+discoveries	discoveries
+DNase	DNase
+esoph	esoph
+euro	euro
+euro.cross	euro
+eurodist	eurodist
+EuStockMarkets	EuStockMarkets
+faithful	faithful
+fdeaths	UKLungDeaths
+Formaldehyde	Formaldehyde
+freeny	freeny
+freeny.x	freeny
+freeny.y	freeny
+HairEyeColor	HairEyeColor
+Harman23.cor	Harman23.cor
+Harman74.cor	Harman74.cor
+Indometh	Indometh
+infert	infert
+InsectSprays	InsectSprays
+iris	iris
+iris3	iris
+islands	islands
+JohnsonJohnson	JohnsonJohnson
+LakeHuron	LakeHuron
+ldeaths	UKLungDeaths
+lh	lh
+LifeCycleSavings	LifeCycleSavings
+Loblolly	Loblolly
+longley	longley
+lynx	lynx
+mdeaths	UKLungDeaths
+morley	morley
+mtcars	mtcars
+nhtemp	nhtemp
+Nile	Nile
+nottem	nottem
+npk	npk
+occupationalStatus	occupationalStatus
+Orange	Orange
+OrchardSprays	OrchardSprays
+PlantGrowth	PlantGrowth
+precip	precip
+presidents	presidents
+pressure	pressure
+Puromycin	Puromycin
+quakes	quakes
+randu	randu
+rivers	rivers
+rock	rock
+Seatbelts	UKDriverDeaths
+sleep	sleep
+stack.loss	stackloss
+stack.x	stackloss
+stackloss	stackloss
+state	state
+state.abb	state
+state.area	state
+state.center	state
+state.division	state
+state.name	state
+state.region	state
+state.x77	state
+sunspot.month	sunspot.month
+sunspot.year	sunspot.year
+sunspots	sunspots
+swiss	swiss
+Theoph	Theoph
+Titanic	Titanic
+ToothGrowth	ToothGrowth
+treering	treering
+trees	trees
+UCBAdmissions	UCBAdmissions
+UKDriverDeaths	UKDriverDeaths
+UKgas	UKgas
+UKLungDeaths	UKLungDeaths
+USAccDeaths	USAccDeaths
+USArrests	USArrests
+UScitiesD	eurodist
+USJudgeRatings	USJudgeRatings
+USPersonalExpenditure	USPersonalExpenditure
+uspop	uspop
+VADeaths	VADeaths
+volcano	volcano
+warpbreaks	warpbreaks
+women	women
+WorldPhones	WorldPhones
+WWWusage	WWWusage
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/data/morley.tab
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/data/morley.tab	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/data/morley.tab	(revision 2476)
@@ -0,0 +1,102 @@
+    Expt  Run  Speed
+001    1    1    850
+002    1    2    740
+003    1    3    900
+004    1    4   1070
+005    1    5    930
+006    1    6    850
+007    1    7    950
+008    1    8    980
+009    1    9    980
+010    1   10    880
+011    1   11   1000
+012    1   12    980
+013    1   13    930
+014    1   14    650
+015    1   15    760
+016    1   16    810
+017    1   17   1000
+018    1   18   1000
+019    1   19    960
+020    1   20    960
+021    2    1    960
+022    2    2    940
+023    2    3    960
+024    2    4    940
+025    2    5    880
+026    2    6    800
+027    2    7    850
+028    2    8    880
+029    2    9    900
+030    2   10    840
+031    2   11    830
+032    2   12    790
+033    2   13    810
+034    2   14    880
+035    2   15    880
+036    2   16    830
+037    2   17    800
+038    2   18    790
+039    2   19    760
+040    2   20    800
+041    3    1    880
+042    3    2    880
+043    3    3    880
+044    3    4    860
+045    3    5    720
+046    3    6    720
+047    3    7    620
+048    3    8    860
+049    3    9    970
+050    3   10    950
+051    3   11    880
+052    3   12    910
+053    3   13    850
+054    3   14    870
+055    3   15    840
+056    3   16    840
+057    3   17    850
+058    3   18    840
+059    3   19    840
+060    3   20    840
+061    4    1    890
+062    4    2    810
+063    4    3    810
+064    4    4    820
+065    4    5    800
+066    4    6    770
+067    4    7    760
+068    4    8    740
+069    4    9    750
+070    4   10    760
+071    4   11    910
+072    4   12    920
+073    4   13    890
+074    4   14    860
+075    4   15    880
+076    4   16    720
+077    4   17    840
+078    4   18    850
+079    4   19    850
+080    4   20    780
+081    5    1    890
+082    5    2    840
+083    5    3    780
+084    5    4    810
+085    5    5    760
+086    5    6    810
+087    5    7    790
+088    5    8    810
+089    5    9    820
+090    5   10    850
+091    5   11    870
+092    5   12    870
+093    5   13    810
+094    5   14    740
+095    5   15    810
+096    5   16    940
+097    5   17    950
+098    5   18    800
+099    5   19    810
+100    5   20    870
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/data/Rdata.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/data/Rdata.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/data/Rdata.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/data/Rdata.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/data/Rdata.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/data/Rdata.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/datasets/NAMESPACE	(revision 2476)
@@ -0,0 +1,2 @@
+# This package exports nothing (it uses lazydata)
+# exportPattern(".")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/Meta/demo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/Meta/demo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/INDEX	(revision 2476)
@@ -0,0 +1,450 @@
+.Call                   Modern Interfaces to C/C++ code
+.Device                 Lists of Open/Active Graphics Devices
+.Internal               Call an Internal Function
+.Last.value             Value of Last Evaluated Expression
+.Library                Search Paths for Packages
+.Machine                Numerical Characteristics of the Machine
+.Platform               Platform Specific Variables
+.Primitive              Look Up a Primitive Function
+.bincode                Bin a Numeric Vector
+.deparseOpts            Options for Expression Deparsing
+.onLoad                 Hooks for Namespace Events
+.packages               Listing of Packages
+.standard_regexps       Miscellaneous Internal/Programming Utilities
+:                       Colon Operator
+::                      Double Colon and Triple Colon Operators
+@                       Extract or Replace A Slot
+Arithmetic              Arithmetic Operators
+AsIs                    Inhibit Interpretation/Conversion of Objects
+Bessel                  Bessel Functions
+Comparison              Relational Operators
+Constants               Built-in Constants
+Control                 Control Flow
+Cstack_info             Report Information on C Stack Size and Usage
+DateTimeClasses         Date-Time Classes
+Dates                   Date Class
+Defunct                 Marking Objects as Defunct
+Deprecated              Marking Objects as Deprecated
+Encoding                Read or Set the Declared Encodings for a
+                        Character Vector
+Extract                 Extract or Replace Parts of an Object
+Filter                  Common Higher-Order Functions in Functional
+                        Programming Languages
+Foreign                 Foreign Function Interface
+ISOdatetime             Date-time Conversion Functions from Numeric
+                        Representations
+InternalMethods         Internal Generic Functions
+La_version              LAPACK Version
+Logic                   Logical Operators
+Memory                  Memory Available for Data Storage
+Memory-limits           Memory Limits in R
+NA                      'Not Available' / Missing Values
+NULL                    The Null Object
+NotYetImplemented       Not Yet Implemented Functions and Unused
+                        Arguments
+NumericConstants        Numeric Constants
+Ops.Date                Operators on the Date Class
+Paren                   Parentheses and Braces
+Quotes                  Quotes
+R.Version               Version Information
+R.home                  Return the R Home Directory
+Random                  Random Number Generation
+Random.user             User-supplied Random Number Generation
+Rdconv                  Utilities for Processing Rd Files
+Recall                  Recursive Calling
+Reserved                Reserved Words in R
+Signals                 Interrupting Execution of R
+Special                 Special Functions of Mathematics
+Startup                 Initialization at Start of an R Session
+Syntax                  Operator Syntax and Precedence
+Sys.getenv              Get Environment Variables
+Sys.getpid              Get the Process ID of the R Session
+Sys.glob                Wildcard Expansion on File Paths
+Sys.info                Extract System and User Information
+Sys.localeconv          Find Details of the Numerical and Monetary
+                        Representations in the Current Locale
+Sys.readlink            Read File Symbolic Links
+Sys.setFileTime         Set File Time
+Sys.setenv              Set or Unset Environment Variables
+Sys.sleep               Suspend Execution for a Time Interval
+Sys.time                Get Current Date and Time
+Sys.which               Find Full Paths to Executables
+Trig                    Trigonometric Functions
+UseMethod               Class Methods
+Vectorize               Vectorize a Scalar Function
+[.data.frame            Extract or Replace Parts of a Data Frame
+[.factor                Extract or Replace Parts of a Factor
+abbreviate              Abbreviate Strings
+abs                     Miscellaneous Mathematical Functions
+addTaskCallback         Add or Remove a Top-Level Task Callback
+agrep                   Approximate String Matching (Fuzzy Matching)
+all                     Are All Values True?
+all.equal               Test if Two Objects are (Nearly) Equal
+all.names               Find All Names in an Expression
+any                     Are Some Values True?
+aperm                   Array Transposition
+append                  Vector Merging
+apply                   Apply Functions Over Array Margins
+args                    Argument List of a Function
+array                   Multi-way Arrays
+as.Date                 Date Conversion Functions to and from Character
+as.POSIXct              Date-time Conversion Functions
+as.data.frame           Coerce to a Data Frame
+as.environment          Coerce to an Environment Object
+as.function             Convert Object to Function
+assign                  Assign a Value to a Name
+assignOps               Assignment Operators
+attach                  Attach Set of R Objects to Search Path
+attachNamespace         Loading and Unloading Name Spaces
+attr                    Object Attributes
+attributes              Object Attribute Lists
+autoload                On-demand Loading of Packages
+backsolve               Solve an Upper or Lower Triangular System
+base-package            The R Base Package
+basename                Manipulate File Paths
+bindenv                 Binding and Environment Locking, Active
+                        Bindings
+bitwNot                 Bitwise Logical Operations
+body                    Access to and Manipulation of the Body of a
+                        Function
+bquote                  Partial substitution in expressions
+browser                 Environment Browser
+browserText             Functions to Retrieve Values Supplied by Calls
+                        to the Browser
+builtins                Returns the Names of All Built-in Objects
+by                      Apply a Function to a Data Frame Split by
+                        Factors
+c                       Combine Values into a Vector or List
+call                    Function Calls
+callCC                  Call With Current Continuation
+capabilities            Report Capabilities of this Build of R
+cat                     Concatenate and Print
+cbind                   Combine R Objects by Rows or Columns
+ceiling                 Rounding of Numbers
+char.expand             Expand a String with Respect to a Target Table
+charToRaw               Convert to or from Raw Vectors
+character               Character Vectors
+charmatch               Partial String Matching
+chartr                  Character Translation and Casefolding
+chkDots                 Warn About Extraneous Arguments in the "..." of
+                        Its Caller
+chol                    The Choleski Decomposition
+chol2inv                Inverse from Choleski (or QR) Decomposition
+class                   Object Classes
+col                     Column Indexes
+colSums                 Form Row and Column Sums and Means
+commandArgs             Extract Command Line Arguments
+comment                 Query or Set a '"comment"' Attribute
+complex                 Complex Numbers and Basic Functionality
+conditions              Condition Handling and Recovery
+conflicts               Search for Masked Objects on the Search Path
+connections             Functions to Manipulate Connections (Files,
+                        URLs, ...)
+contributors            R Project Contributors
+copyright               Copyrights of Files Used to Build R
+cosh                    Hyperbolic Functions
+crossprod               Matrix Crossproduct
+cumsum                  Cumulative Sums, Products, and Extremes
+curlGetHeaders          Retrieve Headers from URLs
+cut                     Convert Numeric to Factor
+cut.POSIXt              Convert a Date or Date-Time Object to a Factor
+data.class              Object Classes
+data.frame              Data Frames
+data.matrix             Convert a Data Frame to a Numeric Matrix
+date                    System Date and Time
+debug                   Debug a Function
+delayedAssign           Delay Evaluation
+deparse                 Expression Deparsing
+det                     Calculate the Determinant of a Matrix
+detach                  Detach Objects from the Search Path
+diag                    Matrix Diagonals
+diff                    Lagged Differences
+difftime                Time Intervals / Differences
+dim                     Dimensions of an Object
+dimnames                Dimnames of an Object
+dir.create              Manipulaton of Directories and File Permissions
+do.call                 Execute a Function Call
+dontCheck               Identity Function to Suppress Checking
+double                  Double-Precision Vectors
+dput                    Write an Object to a File or Recreate it
+drop                    Drop Redundant Extent Information
+droplevels              droplevels
+dump                    Text Representations of R Objects
+duplicated              Determine Duplicate Elements
+dyn.load                Foreign Function Interface
+eapply                  Apply a Function Over Values in an Environment
+eigen                   Spectral Decomposition of a Matrix
+encodeString            Encode Character Vector as for Printing
+environment             Environment Access
+environment variables   Environment Variables
+eval                    Evaluate an (Unevaluated) Expression
+exists                  Is an Object Defined?
+expand.grid             Create a Data Frame from All Combinations of
+                        Factor Variables
+expression              Unevaluated Expressions
+extSoftVersion          Report Versions of Third-Party Software
+factor                  Factors
+file.access             Ascertain File Accessibility
+file.choose             Choose a File Interactively
+file.info               Extract File Information
+file.path               Construct Path to File
+file.show               Display One or More Text Files
+files                   File Manipulation
+find.package            Find Packages
+findInterval            Find Interval Numbers or Indices
+force                   Force Evaluation of an Argument
+forceAndCall            Call a function with Some Arguments Forced
+formals                 Access to and Manipulation of the Formal
+                        Arguments
+format                  Encode in a Common Format
+format.info             format(.) Information
+format.pval             Format P Values
+formatC                 Formatting Using C-style Formats
+formatDL                Format Description Lists
+function                Function Definition
+gc                      Garbage Collection
+gc.time                 Report Time Spent in Garbage Collection
+gctorture               Torture Garbage Collector
+get                     Return the Value of a Named Object
+getDLLRegisteredRoutines
+                        Reflectance Information for C/Fortran routines
+                        in a DLL
+getHook                 Functions to Get and Set Hooks for Load,
+                        Attach, Detach and Unload
+getLoadedDLLs           Get DLLs Loaded in Current Session
+getNativeSymbolInfo     Obtain a Description of one or more Native
+                        (C/Fortran) Symbols
+getTaskCallbackNames    Query the Names of the Current Internal
+                        Top-Level Task Callbacks
+gettext                 Translate Text Messages
+getwd                   Get or Set Working Directory
+gl                      Generate Factor Levels
+grep                    Pattern Matching and Replacement
+grepRaw                 Pattern Matching for Raw Vectors
+groupGeneric            S3 Group Generic Functions
+grouping                Grouping Permutation
+gzcon                   (De)compress I/O Through Connections
+hexmode                 Display Numbers in Hexadecimal
+iconv                   Convert Character Vector between Encodings
+icuSetCollate           Setup Collation by ICU
+identical               Test Objects for Exact Equality
+identity                Identity Function
+ifelse                  Conditional Element Selection
+integer                 Integer Vectors
+interaction             Compute Factor Interactions
+interactive             Is R Running Interactively?
+invisible               Change the Print Mode to Invisible
+is.R                    Are we using R, rather than S?
+is.finite               Finite, Infinite and NaN Numbers
+is.function             Is an Object of Type (Primitive) Function?
+is.language             Is an Object a Language Object?
+is.object               Is an Object 'internally classed'?
+is.recursive            Is an Object Atomic or Recursive?
+is.single               Is an Object of Single Precision Type?
+is.unsorted             Test if an Object is Not Sorted
+isS4                    Test for an S4 object
+isSymmetric             Test if a Matrix or other Object is Symmetric
+                        (Hermitian)
+jitter                  'Jitter' (Add Noise) to Numbers
+kappa                   Compute or Estimate the Condition Number of a
+                        Matrix
+kronecker               Kronecker Products on Arrays
+l10n_info               Localization Information
+labels                  Find Labels from Object
+lapply                  Apply a Function over a List or Vector
+length                  Length of an Object
+lengths                 Lengths of List or Vector Elements
+levels                  Levels Attributes
+libcurlVersion          Report Version of libcurl
+library                 Loading/Attaching and Listing of Packages
+library.dynam           Loading DLLs from Packages
+license                 The R License Terms
+list                    Lists - Generic and Dotted Pairs
+list.files              List the Files in a Directory/Folder
+list2env                From A List, Build or Add To an Environment
+load                    Reload Saved Datasets
+locales                 Query or Set Aspects of the Locale
+log                     Logarithms and Exponentials
+logical                 Logical Vectors
+long vector             Long Vectors
+lower.tri               Lower and Upper Triangular Part of a Matrix
+ls                      List Objects
+make.names              Make Syntactically Valid Names
+make.unique             Make Character Strings Unique
+mapply                  Apply a Function to Multiple List or Vector
+                        Arguments
+margin.table            Compute table margin
+mat.or.vec              Create a Matrix or a Vector
+match                   Value Matching
+match.arg               Argument Verification Using Partial Matching
+match.call              Argument Matching
+match.fun               Extract a Function Specified by Name
+matmult                 Matrix Multiplication
+matrix                  Matrices
+max                     Maxima and Minima
+max.col                 Find Maximum Position in Matrix
+mean                    Arithmetic Mean
+memCompress             In-memory Compression and Decompression
+memory.profile          Profile the Usage of Cons Cells
+merge                   Merge Two Data Frames
+message                 Diagnostic Messages
+missing                 Does a Formal Argument have a Value?
+mode                    The (Storage) Mode of an Object
+name                    Names and Symbols
+names                   The Names of an Object
+nargs                   The Number of Arguments to a Function
+nchar                   Count the Number of Characters (or Bytes or
+                        Width)
+nlevels                 The Number of Levels of a Factor
+noquote                 Class for 'no quote' Printing of Character
+                        Strings
+norm                    Compute the Norm of a Matrix
+normalizePath           Express File Paths in Canonical Form
+nrow                    The Number of Rows/Columns of an Array
+numeric                 Numeric Vectors
+numeric_version         Numeric Versions
+octmode                 Display Numbers in Octal
+on.exit                 Function Exit Code
+options                 Options Settings
+order                   Ordering Permutation
+outer                   Outer Product of Arrays
+parse                   Parse Expressions
+paste                   Concatenate Strings
+path.expand             Expand File Paths
+pcre_config             Report Configuration Options for PCRE
+pmatch                  Partial String Matching
+polyroot                Find Zeros of a Real or Complex Polynomial
+pos.to.env              Convert Positions in the Search Path to
+                        Environments
+pretty                  Pretty Breakpoints
+print                   Print Values
+print.data.frame        Printing Data Frames
+print.default           Default Printing
+prmatrix                Print Matrices, Old-style
+proc.time               Running Time of R
+prod                    Product of Vector Elements
+prop.table              Express Table Entries as Fraction of Marginal
+                        Table
+pushBack                Push Text Back on to a Connection
+qr                      The QR Decomposition of a Matrix
+qr.X                    Reconstruct the Q, R, or X Matrices from a QR
+                        Object
+quit                    Terminate an R Session
+range                   Range of Values
+rank                    Sample Ranks
+rapply                  Recursively Apply a Function to a List
+raw                     Raw Vectors
+rawConnection           Raw Connections
+read.dcf                Read and Write Data in DCF Format
+readBin                 Transfer Binary Data To and From Connections
+readChar                Transfer Character Strings To and From
+                        Connections
+readLines               Read Text Lines from a Connection
+readRDS                 Serialization Interface for Single Objects
+readRenviron            Set Environment Variables from a File
+readline                Read a Line from the Terminal
+reg.finalizer           Finalization of Objects
+regex                   Regular Expressions as used in R
+regmatches              Extract or Replace Matched Substrings
+remove                  Remove Objects from a Specified Environment
+rep                     Replicate Elements of Vectors and Lists
+replace                 Replace Values in a Vector
+rev                     Reverse Elements
+rle                     Run Length Encoding
+round.POSIXt            Round / Truncate Data-Time Objects
+row                     Row Indexes
+row.names               Get and Set Row Names for Data Frames
+rownames                Row and Column Names
+rowsum                  Give Column Sums of a Matrix or Data Frame,
+                        Based on a Grouping Variable
+sQuote                  Quote Text
+sample                  Random Samples and Permutations
+save                    Save R Objects
+scale                   Scaling and Centering of Matrix-like Objects
+scan                    Read Data Values
+search                  Give Search Path for R Objects
+seek                    Functions to Reposition Connections
+seq                     Sequence Generation
+seq.Date                Generate Regular Sequences of Dates
+seq.POSIXt              Generate Regular Sequences of Times
+sequence                Create A Vector of Sequences
+serialize               Simple Serialization Interface
+setTimeLimit            Set CPU and/or Elapsed Time Limits
+shQuote                 Quote Strings for Use in OS Shells
+showConnections         Display Connections
+sign                    Sign Function
+sink                    Send R Output to a File
+slice.index             Slice Indexes in an Array
+socketSelect            Wait on Socket Connections
+solve                   Solve a System of Equations
+sort                    Sorting or Ordering Vectors
+source                  Read R Code from a File or a Connection
+split                   Divide into Groups and Reassemble
+sprintf                 Use C-style String Formatting Commands
+srcfile                 References to Source Files and Code
+startsWith              Does String Start or End With Another String?
+stop                    Stop Function Execution
+stopifnot               Ensure the Truth of R Expressions
+strptime                Date-time Conversion Functions to and from
+                        Character
+strrep                  Repeat the Elements of a Character Vector
+strsplit                Split the Elements of a Character Vector
+strtoi                  Convert Strings to Integers
+strtrim                 Trim Character Strings to Specified Display
+                        Widths
+structure               Attribute Specification
+strwrap                 Wrap Character Strings to Format Paragraphs
+subset                  Subsetting Vectors, Matrices and Data Frames
+substitute              Substituting and Quoting Expressions
+substr                  Substrings of a Character Vector
+sum                     Sum of Vector Elements
+summary                 Object Summaries
+svd                     Singular Value Decomposition of a Matrix
+sweep                   Sweep out Array Summaries
+switch                  Select One of a List of Alternatives
+sys.parent              Functions to Access the Function Call Stack
+sys.source              Parse and Evaluate Expressions from a File
+system                  Invoke a System Command
+system.file             Find Names of R System Files
+system.time             CPU Time Used
+system2                 Invoke a System Command
+t                       Matrix Transpose
+table                   Cross Tabulation and Table Creation
+tabulate                Tabulation for Vectors
+tapply                  Apply a Function Over a Ragged Array
+taskCallbackManager     Create an R-level Task Callback Manager
+tempfile                Create Names for Temporary Files
+textConnection          Text Connections
+tilde                   Tilde Operator
+timezones               Time Zones
+toString                Convert an R Object to a Character String
+topenv                  Top Level Environment
+trace                   Interactive Tracing and Debugging of Calls to a
+                        Function or Method
+traceback               Get and Print Call Stacks
+tracemem                Trace Copying of Objects
+transform               Transform an Object, for Example a Data Frame
+trimws                  Remove Leading/Trailing Whitespace
+try                     Try an Expression Allowing Error Recovery
+typeof                  The Type of an Object
+union                   Set Operations
+unique                  Extract Unique Elements
+unlink                  Delete Files and Directories
+unlist                  Flatten Lists
+unname                  Remove 'names' or 'dimnames'
+utf8ToInt               Convert Integer Vectors to or from
+                        UTF-8-encoded Character Vectors
+validUTF8               Check if a Character Vector is Validly Encoded
+vector                  Vectors
+warning                 Warning Messages
+warnings                Print Warning Messages
+weekdays                Extract Parts of a POSIXt or Date Object
+which                   Which indices are TRUE?
+which.min               Where is the Min() or Max() or first TRUE or
+                        FALSE ?
+with                    Evaluate an Expression in a Data Environment
+withVisible             Return both a value and its visibility
+write                   Write Data to a File
+writeLines              Write Lines to a Connection
+xtfrm                   Auxiliary Function for Sorting and Ranking
+zapsmall                Rounding of Numbers
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/help/base.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/help/base.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/help/AnIndex	(revision 2476)
@@ -0,0 +1,1606 @@
+base-package	base-package
+!	Logic
+!.hexmode	hexmode
+!.octmode	octmode
+!=	Comparison
+"	Quotes
+$	Extract
+$.data.frame	Extract.data.frame
+$.DLLInfo	getLoadedDLLs
+$.package_version	numeric_version
+$<-	Extract
+$<-.data.frame	Extract.data.frame
+%%	Arithmetic
+%*%	matmult
+%/%	Arithmetic
+%in%	match
+%o%	outer
+%x%	kronecker
+&	Logic
+&&	Logic
+&.hexmode	hexmode
+&.octmode	octmode
+'	Quotes
+(	Paren
+*	Arithmetic
+**	Arithmetic
+*.difftime	difftime
++	Arithmetic
++.Date	Ops.Date
++.POSIXt	DateTimeClasses
+-	Arithmetic
+-.Date	Ops.Date
+-.POSIXt	DateTimeClasses
+->	assignOps
+->>	assignOps
+...	Reserved
+..1	Reserved
+..getNamespace	ns-internal
+.Alias	base-defunct
+.amatch_bounds	agrep
+.amatch_costs	agrep
+.ArgsEnv	base-internal
+.Autoloaded	autoload
+.AutoloadEnv	autoload
+.BaseNamespaceEnv	environment
+.bincode	bincode
+.C	Foreign
+.cache_class	base-internal
+.Call	CallExternal
+.Call.graphics	Foreign-internal
+.Class	UseMethod
+.colMeans	colSums
+.colSums	colSums
+.conflicts.OK	attach
+.C_R_addTaskCallback	base-internal
+.C_R_getbcprofcounts	base-internal
+.C_R_getTaskCallbackNames	base-internal
+.C_R_removeTaskCallback	base-internal
+.C_R_startbcprof	base-internal
+.C_R_stopbcprof	base-internal
+.decode_numeric_version	numeric_version
+.Defunct	Defunct
+.deparseOpts	deparseOpts
+.Deprecated	Deprecated
+.detach	base-internal
+.Device	dev
+.Devices	dev
+.difftime	base-internal
+.doTrace	trace
+.Dyn.libs	base-defunct
+.dynLibs	library.dynam
+.encode_numeric_version	numeric_version
+.expand_R_libs_env_var	libPaths
+.Export	base-defunct
+.External	CallExternal
+.External.graphics	Foreign-internal
+.External2	Foreign-internal
+.find.package	base-defunct
+.First	Startup
+.First.lib	base-defunct
+.First.sys	Startup
+.Firstlib_as_onLoad	base-internal
+.format.zeros	formatc
+.Fortran	Foreign
+.F_dchdc	base-internal
+.F_dqrcf	base-internal
+.F_dqrdc2	base-internal
+.F_dqrqty	base-internal
+.F_dqrqy	base-internal
+.F_dqrrsd	base-internal
+.F_dqrxb	base-internal
+.F_dtrco	base-internal
+.Generic	UseMethod
+.GenericArgsEnv	base-internal
+.getNamespace	ns-internal
+.getNamespaceInfo	ns-internal
+.getRequiredPackages	base-internal
+.getRequiredPackages2	base-internal
+.GlobalEnv	environment
+.Group	groupGeneric
+.gt	base-internal
+.gtn	base-internal
+.handleSimpleError	conditions
+.Import	base-defunct
+.ImportFrom	base-defunct
+.Internal	Internal
+.isMethodsDispatchOn	base-internal
+.isOpen	srcfile
+.kappa_tri	kappa
+.knownS3Generics	ns-internal
+.kronecker	kronecker
+.Last	quit
+.Last.lib	ns-hooks
+.Last.sys	quit
+.Last.value	Last.value
+.leap.seconds	DateTimeClasses
+.lib.loc	base-defunct
+.libPaths	libPaths
+.Library	libPaths
+.Library.site	libPaths
+.Machine	zMachine
+.makeMessage	message
+.make_numeric_version	numeric_version
+.mapply	base-internal
+.maskedMsg	base-internal
+.mergeExportMethods	ns-internal
+.mergeImportMethods	ns-internal
+.Method	UseMethod
+.methodsNamespace	base-internal
+.noGenerics	library
+.NotYetImplemented	notyet
+.NotYetUsed	notyet
+.onAttach	ns-hooks
+.onDetach	ns-hooks
+.onLoad	ns-hooks
+.onUnload	ns-hooks
+.Options	options
+.OptRequireMethods	Startup
+.packages	zpackages
+.packageStartupMessage	message
+.path.package	base-defunct
+.Platform	Platform
+.popath	base-internal
+.POSIXct	base-internal
+.POSIXlt	base-internal
+.Primitive	Primitive
+.primTrace	base-internal
+.primUntrace	base-internal
+.Provided	base-defunct
+.Random.seed	Random
+.readRDS	base-defunct
+.Renviron	Startup
+.rmpkg	search
+.rowMeans	colSums
+.rowSums	colSums
+.row_names_info	base-internal
+.Rprofile	Startup
+.S3method	base-defunct
+.S3PrimitiveGenerics	InternalMethods
+.saveRDS	base-defunct
+.Script	zScript
+.set_row_names	base-internal
+.signalSimpleWarning	conditions
+.standard_regexps	zutils
+.subset	base-internal
+.subset2	base-internal
+.TAOCP1997init	base-internal
+.Traceback	traceback
+.traceback	traceback
+.userHooksEnv	userhooks
+.__H__.cbind	cbind
+.__H__.rbind	cbind
+.__S3MethodsTable__.	ns-internal
+/	Arithmetic
+/.difftime	difftime
+0x1	NumericConstants
+1i	NumericConstants
+1L	NumericConstants
+:	Colon
+::	ns-dblcolon
+:::	ns-dblcolon
+<	Comparison
+<-	assignOps
+<<-	assignOps
+<=	Comparison
+=	assignOps
+==	Comparison
+>	Comparison
+>=	Comparison
+@	slotOp
+@<-	slotOp
+abbreviate	abbreviate
+abs	MathFun
+acos	Trig
+acosh	Hyperbolic
+addNA	factor
+addTaskCallback	taskCallback
+agrep	agrep
+agrepl	agrep
+alist	list
+all	all
+all.equal	all.equal
+all.equal.character	all.equal
+all.equal.default	all.equal
+all.equal.environment	all.equal
+all.equal.envRefClass	all.equal
+all.equal.factor	all.equal
+all.equal.formula	all.equal
+all.equal.language	all.equal
+all.equal.list	all.equal
+all.equal.numeric	all.equal
+all.equal.POSIXt	all.equal
+all.equal.raw	all.equal
+all.names	allnames
+all.vars	allnames
+any	any
+anyDuplicated	duplicated
+anyDuplicated.array	duplicated
+anyDuplicated.data.frame	duplicated
+anyDuplicated.default	duplicated
+anyDuplicated.matrix	duplicated
+anyMissing	NA
+anyNA	NA
+anyNA.numeric_version	numeric_version
+anyNA.POSIXlt	DateTimeClasses
+aperm	aperm
+aperm.default	aperm
+aperm.table	aperm
+append	append
+apply	apply
+arccos	Trig
+arcsin	Trig
+arctan	Trig
+Arg	complex
+args	args
+Arithmetic	Arithmetic
+array	array
+arrayInd	which
+as.array	array
+as.array.default	array
+as.call	call
+as.character	character
+as.character.condition	conditions
+as.character.Date	as.Date
+as.character.default	character
+as.character.error	conditions
+as.character.factor	character
+as.character.hexmode	hexmode
+as.character.numeric_version	numeric_version
+as.character.octmode	octmode
+as.character.POSIXt	strptime
+as.character.srcref	srcfile
+as.complex	complex
+as.data.frame	as.data.frame
+as.data.frame.array	as.data.frame
+as.data.frame.AsIs	as.data.frame
+as.data.frame.character	as.data.frame
+as.data.frame.complex	as.data.frame
+as.data.frame.data.frame	as.data.frame
+as.data.frame.Date	Dates
+as.data.frame.default	as.data.frame
+as.data.frame.difftime	as.data.frame
+as.data.frame.factor	as.data.frame
+as.data.frame.integer	as.data.frame
+as.data.frame.list	as.data.frame
+as.data.frame.logical	as.data.frame
+as.data.frame.matrix	as.data.frame
+as.data.frame.model.matrix	as.data.frame
+as.data.frame.noquote	as.data.frame
+as.data.frame.numeric	as.data.frame
+as.data.frame.numeric_version	numeric_version
+as.data.frame.ordered	as.data.frame
+as.data.frame.POSIXct	DateTimeClasses
+as.data.frame.POSIXlt	DateTimeClasses
+as.data.frame.raw	as.data.frame
+as.data.frame.table	table
+as.data.frame.ts	as.data.frame
+as.data.frame.vector	as.data.frame
+as.Date	as.Date
+as.Date.character	as.Date
+as.Date.date	as.Date
+as.Date.dates	as.Date
+as.Date.default	as.Date
+as.Date.factor	as.Date
+as.Date.numeric	as.Date
+as.Date.POSIXct	as.Date
+as.Date.POSIXlt	as.Date
+as.difftime	difftime
+as.double	double
+as.double.difftime	difftime
+as.double.POSIXlt	as.POSIXlt
+as.environment	as.environment
+as.expression	expression
+as.expression.default	expression
+as.factor	factor
+as.function	as.function
+as.function.default	as.function
+as.hexmode	hexmode
+as.integer	integer
+as.list	list
+as.list.data.frame	list
+as.list.Date	Dates
+as.list.default	list
+as.list.environment	list
+as.list.factor	list
+as.list.function	list
+as.list.numeric_version	numeric_version
+as.list.POSIXct	DateTimeClasses
+as.logical	logical
+as.logical.factor	logical
+as.matrix	matrix
+as.matrix.data.frame	matrix
+as.matrix.default	matrix
+as.matrix.noquote	noquote
+as.matrix.POSIXlt	DateTimeClasses
+as.name	name
+as.null	NULL
+as.null.default	NULL
+as.numeric	numeric
+as.numeric_version	numeric_version
+as.octmode	octmode
+as.ordered	factor
+as.package_version	numeric_version
+as.pairlist	list
+as.POSIXct	as.POSIXlt
+as.POSIXct.Date	as.POSIXlt
+as.POSIXct.date	as.POSIXlt
+as.POSIXct.dates	as.POSIXlt
+as.POSIXct.default	as.POSIXlt
+as.POSIXct.numeric	as.POSIXlt
+as.POSIXct.POSIXlt	as.POSIXlt
+as.POSIXlt	as.POSIXlt
+as.POSIXlt.character	as.POSIXlt
+as.POSIXlt.Date	as.POSIXlt
+as.POSIXlt.date	as.POSIXlt
+as.POSIXlt.dates	as.POSIXlt
+as.POSIXlt.default	as.POSIXlt
+as.POSIXlt.factor	as.POSIXlt
+as.POSIXlt.numeric	as.POSIXlt
+as.POSIXlt.POSIXct	as.POSIXlt
+as.qr	qr
+as.raw	raw
+as.real	base-defunct
+as.single	double
+as.single.default	double
+as.symbol	name
+as.table	table
+as.table.default	table
+as.vector	vector
+as.vector.factor	vector
+asin	Trig
+asinh	Hyperbolic
+AsIs	AsIs
+asNamespace	ns-internal
+asS3	isS4
+asS4	isS4
+assign	assign
+assignOps	assignOps
+atan	Trig
+atan2	Trig
+atanh	Hyperbolic
+atomic	vector
+attach	attach
+attachNamespace	ns-load
+attr	attr
+attr.all.equal	all.equal
+attr<-	attr
+attributes	attributes
+attributes<-	attributes
+autoload	autoload
+autoloader	autoload
+Autoloads	autoload
+backquote	Quotes
+backsolve	backsolve
+backtick	Quotes
+base	base-package
+base-defunct	base-defunct
+base-deprecated	base-deprecated
+baseenv	environment
+basename	basename
+Bessel	Bessel
+bessel	Bessel
+besselI	Bessel
+besselJ	Bessel
+besselK	Bessel
+besselY	Bessel
+beta	Special
+bindenv	bindenv
+bindingIsActive	bindenv
+bindingIsLocked	bindenv
+bindtextdomain	gettext
+bitwAnd	bitwise
+bitwNot	bitwise
+bitwOr	bitwise
+bitwShiftL	bitwise
+bitwShiftR	bitwise
+bitwXor	bitwise
+body	body
+body<-	body
+bquote	bquote
+break	Control
+browser	browser
+browserCondition	browserText
+browserSetDebug	browserText
+browserText	browserText
+builtins	builtins
+by	by
+by.data.frame	by
+by.default	by
+bzfile	connections
+c	c
+c.Date	Dates
+c.default	c
+c.difftime	difftime
+c.noquote	noquote
+c.numeric_version	numeric_version
+c.POSIXct	DateTimeClasses
+c.POSIXlt	DateTimeClasses
+c.warnings	warnings
+call	call
+callCC	callCC
+capabilities	capabilities
+casefold	chartr
+cat	cat
+category	base-defunct
+cbind	cbind
+cbind.data.frame	cbind
+ceiling	Round
+char.expand	char.expand
+character	character
+charmatch	charmatch
+charToRaw	rawConversion
+chartr	chartr
+check_tzones	DateTimeClasses
+chkDots	chkDots
+chol	chol
+chol.default	chol
+chol2inv	chol2inv
+choose	Special
+class	class
+class<-	class
+clearPushBack	pushBack
+clipboard	connections
+close	connections
+close.connection	connections
+close.srcfile	srcfile
+close.srcfilealias	srcfile
+closeAllConnections	showConnections
+closure	function
+code point	utf8Conversion
+codes	base-defunct
+codes.factor	base-defunct
+codes.ordered	base-defunct
+codes<-	base-defunct
+col	col
+collation	Comparison
+colMeans	colSums
+colnames	colnames
+colnames<-	colnames
+colon	Colon
+colSums	colSums
+commandArgs	commandArgs
+comment	comment
+comment<-	comment
+Comparison	Comparison
+Complex	groupGeneric
+complex	complex
+computeRestarts	conditions
+condition	conditions
+conditionCall	conditions
+conditionCall.condition	conditions
+conditionMessage	conditions
+conditionMessage.condition	conditions
+conditions	conditions
+conflicts	conflicts
+Conj	complex
+connection	connections
+connections	connections
+Constants	Constants
+contributors	contributors
+Control	Control
+copyright	copyright
+copyrights	copyright
+cos	Trig
+cosh	Hyperbolic
+cospi	Trig
+crossprod	crossprod
+Cstack_info	Cstack_info
+cummax	cumsum
+cummin	cumsum
+cumprod	cumsum
+cumsum	cumsum
+curlGetHeaders	curlGetHeaders
+cut	cut
+cut.Date	cut.POSIXt
+cut.default	cut
+cut.POSIXt	cut.POSIXt
+data.class	data.class
+data.frame	data.frame
+data.matrix	data.matrix
+Date	Dates
+date	date
+date-time	DateTimeClasses
+Dates	Dates
+DateTimeClasses	DateTimeClasses
+debug	debug
+debuggingState	debug
+debugonce	debug
+default.stringsAsFactors	data.frame
+Defunct	Defunct
+defunct	Defunct
+delay	base-defunct
+delayedAssign	delayedAssign
+deparse	deparse
+Deprecated	Deprecated
+deprecated	Deprecated
+det	det
+detach	detach
+determinant	det
+determinant.matrix	det
+dget	dput
+diag	diag
+diag<-	diag
+diff	diff
+diff.Date	diff
+diff.default	diff
+diff.difftime	difftime
+diff.POSIXt	diff
+difftime	difftime
+digamma	Special
+dim	dim
+dim.data.frame	dim
+dim<-	dim
+dimnames	dimnames
+dimnames.data.frame	dimnames
+dimnames<-	dimnames
+dimnames<-.data.frame	dimnames
+dir	list.files
+dir.create	files2
+dir.exists	files2
+dirname	basename
+DISPLAY	EnvVar
+DLLInfo	getLoadedDLLs
+DLLInfoList	getLoadedDLLs
+do.call	do.call
+dontCheck	dontCheck
+double	double
+dput	dput
+dQuote	sQuote
+drop	drop
+droplevels	droplevels
+droplevels.data.frame	droplevels
+droplevels.factor	droplevels
+dump	dump
+duplicated	duplicated
+duplicated.array	duplicated
+duplicated.data.frame	duplicated
+duplicated.default	duplicated
+duplicated.matrix	duplicated
+duplicated.numeric_version	numeric_version
+duplicated.POSIXlt	DateTimeClasses
+duplicated.warnings	warnings
+dyn.load	dynload
+dyn.unload	dynload
+dynGet	get
+eapply	eapply
+EDITOR	EnvVar
+eigen	eigen
+else	Control
+emptyenv	environment
+enc2native	Encoding
+enc2utf8	Encoding
+enclosure	environment
+encodeString	encodeString
+Encoding	Encoding
+Encoding<-	Encoding
+endsWith	startsWith
+enquote	substitute
+env.profile	environment
+environment	environment
+environment variables	EnvVar
+environment<-	environment
+environmentIsLocked	bindenv
+environmentName	environment
+eval	eval
+eval.parent	eval
+evalq	eval
+exists	exists
+exp	Log
+expand.grid	expand.grid
+expm1	Log
+expression	expression
+Extract	Extract
+extSoftVersion	extSoftVersion
+F	logical
+factor	factor
+factorial	Special
+FALSE	logical
+fifo	connections
+file	connections
+file.access	file.access
+file.append	files
+file.choose	file.choose
+file.copy	files
+file.create	files
+file.exists	files
+file.info	file.info
+file.link	files
+file.mode	file.info
+file.mtime	file.info
+file.path	file.path
+file.remove	files
+file.rename	files
+file.show	file.show
+file.size	file.info
+file.symlink	files
+files	files
+Filter	funprog
+finalizer	reg.finalizer
+Find	funprog
+find.package	find.package
+findInterval	findInterval
+findPackageEnv	base-internal
+findRestart	conditions
+finite	is.finite
+floor	Round
+flush	connections
+flush.connection	connections
+for	Control
+force	force
+forceAndCall	forceAndCall
+Foreign	Foreign
+formals	formals
+formals<-	formals
+format	format
+format.AsIs	format
+format.char	base-defunct
+format.data.frame	format
+format.Date	as.Date
+format.default	format
+format.difftime	difftime
+format.factor	format
+format.hexmode	hexmode
+format.info	format.info
+format.libraryIQR	library
+format.numeric_version	numeric_version
+format.octmode	octmode
+format.packageInfo	library
+format.POSIXct	strptime
+format.POSIXlt	strptime
+format.pval	format.pval
+format.summaryDefault	summary
+formatC	formatc
+formatDL	formatDL
+forwardsolve	backsolve
+function	function
+fuzzy matching	agrep
+gamma	Special
+gammaCody	base-defunct
+gc	gc
+gc.time	gc.time
+gcinfo	gc
+gctorture	gctorture
+gctorture2	gctorture
+get	get
+get0	exists
+getAllConnections	showConnections
+getCallingDLL	getCallingDLL
+getCallingDLLe	getCallingDLL
+getConnection	showConnections
+getDLLRegisteredRoutines	getDLLRegisteredRoutines
+getDLLRegisteredRoutines.character	getDLLRegisteredRoutines
+getDLLRegisteredRoutines.DLLInfo	getDLLRegisteredRoutines
+getElement	Extract
+getenv	base-defunct
+geterrmessage	stop
+getExportedValue	ns-reflect
+getHook	userhooks
+getLoadedDLLs	getLoadedDLLs
+getNamespace	ns-reflect
+getNamespaceExports	ns-reflect
+getNamespaceImports	ns-reflect
+getNamespaceInfo	ns-internal
+getNamespaceName	ns-reflect
+getNamespaceUsers	ns-reflect
+getNamespaceVersion	ns-reflect
+getNativeSymbolInfo	getNativeSymbolInfo
+getOption	options
+getRversion	numeric_version
+getSrcLines	srcfile
+getTaskCallbackNames	taskCallbackNames
+gettext	gettext
+gettextf	sprintf
+getwd	getwd
+gl	gl
+globalenv	environment
+gregexpr	grep
+grep	grep
+grepl	grep
+grepRaw	grepRaw
+group generic	groupGeneric
+groupGeneric	groupGeneric
+grouping	grouping
+gsub	grep
+gzcon	gzcon
+gzfile	connections
+hexmode	hexmode
+HOME	EnvVar
+httpclient	base-defunct
+I	AsIs
+iconv	iconv
+iconvlist	iconv
+icuGetCollate	icuSetCollate
+icuSetCollate	icuSetCollate
+identical	identical
+identity	identity
+if	Control
+ifelse	ifelse
+Im	complex
+importIntoEnv	ns-internal
+in	Control
+Inf	is.finite
+infinite	is.finite
+inherits	class
+integer	integer
+interaction	interaction
+interactive	interactive
+internal generic	InternalMethods
+InternalGenerics	InternalMethods
+InternalMethods	InternalMethods
+intersect	sets
+intersection	sets
+intToBits	rawConversion
+intToUtf8	utf8Conversion
+inverse.rle	rle
+invisible	invisible
+invokeRestart	conditions
+invokeRestartInteractively	conditions
+is.array	array
+is.atomic	is.recursive
+is.call	call
+is.character	character
+is.complex	complex
+is.data.frame	as.data.frame
+is.double	double
+is.element	sets
+is.environment	environment
+is.expression	expression
+is.factor	factor
+is.finite	is.finite
+is.function	is.function
+is.infinite	is.finite
+is.integer	integer
+is.language	is.language
+is.list	list
+is.loaded	dynload
+is.logical	logical
+is.matrix	matrix
+is.na	NA
+is.na.data.frame	NA
+is.na.numeric_version	numeric_version
+is.na.POSIXlt	DateTimeClasses
+is.na<-	NA
+is.na<-.default	NA
+is.na<-.factor	factor
+is.na<-.numeric_version	numeric_version
+is.name	name
+is.nan	is.finite
+is.null	NULL
+is.numeric	numeric
+is.numeric.Date	numeric
+is.numeric.difftime	difftime
+is.numeric.POSIXt	numeric
+is.numeric_version	numeric_version
+is.object	is.object
+is.ordered	factor
+is.package_version	numeric_version
+is.pairlist	list
+is.primitive	is.function
+is.qr	qr
+is.R	isR
+is.raw	raw
+is.real	base-defunct
+is.recursive	is.recursive
+is.single	is.single
+is.symbol	name
+is.table	table
+is.unsorted	is.unsorted
+is.vector	vector
+isatty	showConnections
+isBaseNamespace	ns-internal
+isdebugged	debug
+isIncomplete	connections
+isNamespace	ns-internal
+isNamespaceLoaded	ns-load
+ISOdate	ISOdatetime
+ISOdatetime	ISOdatetime
+isOpen	connections
+isRestart	conditions
+isS4	isS4
+isSeekable	seek
+isSymmetric	isSymmetric
+isSymmetric.matrix	isSymmetric
+isTRUE	Logic
+jitter	jitter
+julian	weekday.POSIXt
+julian.Date	weekday.POSIXt
+julian.POSIXt	weekday.POSIXt
+kappa	kappa
+kappa.default	kappa
+kappa.lm	kappa
+kappa.qr	kappa
+kronecker	kronecker
+l10n_info	l10n_info
+La.chol	base-defunct
+La.chol2inv	base-defunct
+La.eigen	base-defunct
+La.svd	svd
+labels	labels
+labels.default	labels
+LANGUAGE	EnvVar
+language object	is.language
+language objects	is.language
+lapply	lapply
+last.warning	warnings
+lazyLoad	lazyload
+lazyLoadDBexec	lazyload
+lazyLoadDBfetch	base-internal
+La_version	La_version
+lbeta	Special
+lchoose	Special
+LC_ALL	locales
+LC_COLLATE	locales
+LC_CTYPE	locales
+LC_MEASUREMENT	locales
+LC_MESSAGES	locales
+LC_MONETARY	locales
+LC_NUMERIC	locales
+LC_PAPER	locales
+LC_TIME	locales
+length	length
+length.POSIXlt	DateTimeClasses
+length<-	length
+length<-.factor	length
+lengths	lengths
+LETTERS	Constants
+letters	Constants
+levels	levels
+levels.default	levels
+levels<-	levels
+levels<-.factor	levels
+lfactorial	Special
+lgamma	Special
+libcurlVersion	libcurlVersion
+library	library
+library.dynam	library.dynam
+library.dynam.unload	library.dynam
+licence	license
+license	license
+list	list
+list.dirs	list.files
+list.files	list.files
+list2env	list2env
+load	load
+loadedNamespaces	ns-load
+loadingNamespaceInfo	ns-internal
+loadNamespace	ns-load
+loadURL	base-defunct
+local	eval
+localeconv	Sys.localeconv
+locales	locales
+lockBinding	bindenv
+lockEnvironment	bindenv
+log	Log
+log10	Log
+log1p	Log
+log2	Log
+logb	Log
+Logic	Logic
+logical	logical
+long vector	LongVectors
+Long vectors	LongVectors
+long vectors	LongVectors
+lower.tri	lower.tri
+ls	ls
+Machine	base-defunct
+machine	base-defunct
+make.names	make.names
+make.unique	make.unique
+makeActiveBinding	bindenv
+MAKEINDEX	EnvVar
+manglePackageName	base-defunct
+Map	funprog
+mapply	mapply
+margin.table	margin.table
+mat.or.vec	mat.or.vec
+match	match
+match.arg	match.arg
+match.call	match.call
+match.fun	match.fun
+Math	groupGeneric
+Math.data.frame	groupGeneric
+Math.Date	Dates
+Math.difftime	difftime
+Math.factor	factor
+Math.POSIXlt	DateTimeClasses
+Math.POSIXt	DateTimeClasses
+matmult	matmult
+matrix	matrix
+max	Extremes
+max.col	maxCol
+MC_CORES	options
+mean	mean
+mean.Date	Dates
+mean.default	mean
+mean.difftime	difftime
+mean.POSIXct	DateTimeClasses
+mean.POSIXlt	DateTimeClasses
+mem.limits	base-defunct
+memCompress	memCompress
+memDecompress	memCompress
+Memory	Memory
+Memory-limits	Memory-limits
+memory.profile	memory.profile
+merge	merge
+merge.data.frame	merge
+merge.default	merge
+message	message
+mget	get
+min	Extremes
+missing	missing
+Mod	complex
+mode	mode
+mode<-	mode
+month.abb	Constants
+month.name	Constants
+months	weekday.POSIXt
+months.Date	weekday.POSIXt
+months.POSIXt	weekday.POSIXt
+mostattributes<-	attributes
+NA	NA
+name	name
+names	names
+names.default	names
+names.POSIXlt	DateTimeClasses
+names<-	names
+names<-.default	names
+names<-.POSIXlt	DateTimeClasses
+namespaceExport	ns-internal
+namespaceImport	ns-internal
+namespaceImportClasses	ns-internal
+namespaceImportFrom	ns-internal
+namespaceImportMethods	ns-internal
+NaN	is.finite
+nargs	nargs
+NativeSymbol	getNativeSymbolInfo
+NativeSymbolInfo	getNativeSymbolInfo
+NA_character_	NA
+NA_complex_	NA
+NA_integer_	NA
+NA_real_	NA
+nchar	nchar
+NCOL	nrow
+ncol	nrow
+Negate	funprog
+new.env	environment
+next	Control
+NextMethod	UseMethod
+ngettext	gettext
+nlevels	nlevels
+noquote	noquote
+norm	norm
+normalizePath	normalizePath
+NotYetImplemented	notyet
+NotYetUsed	notyet
+NROW	nrow
+nrow	nrow
+NULL	NULL
+numeric	numeric
+NumericConstants	NumericConstants
+numeric_version	numeric_version
+nzchar	nchar
+objects	ls
+octmode	octmode
+oldClass	class
+oldClass<-	class
+OlsonNames	timezones
+on.exit	on.exit
+open	connections
+open.connection	connections
+open.srcfile	srcfile
+open.srcfilealias	srcfile
+open.srcfilecopy	srcfile
+Ops	groupGeneric
+Ops.data.frame	groupGeneric
+Ops.Date	Ops.Date
+Ops.difftime	difftime
+Ops.factor	factor
+Ops.numeric_version	numeric_version
+Ops.ordered	factor
+Ops.POSIXt	DateTimeClasses
+option	options
+options	options
+order	order
+ordered	factor
+outer	outer
+package.description	base-defunct
+packageEvent	userhooks
+packageHasNamespace	ns-internal
+packageStartupMessage	message
+package_version	numeric_version
+packBits	rawConversion
+PAGER	EnvVar
+pairlist	list
+Paren	Paren
+parent.env	environment
+parent.env<-	environment
+parent.frame	sys.parent
+parse	parse
+parse.dcf	base-defunct
+parseNamespaceFile	ns-internal
+paste	paste
+paste0	paste
+path.expand	path.expand
+path.package	find.package
+pcre_config	pcre_config
+pentagamma	base-defunct
+pi	Constants
+pipe	connections
+Platform	base-defunct
+pmatch	pmatch
+pmax	Extremes
+pmax.int	Extremes
+pmin	Extremes
+pmin.int	Extremes
+polyroot	polyroot
+pos.to.env	pos.to.env
+Position	funprog
+POSIXct	DateTimeClasses
+POSIXlt	DateTimeClasses
+POSIXt	DateTimeClasses
+pretty	pretty
+pretty.default	pretty
+prettyNum	formatc
+primitive	Primitive
+print	print
+print.anova.glm	base-defunct
+print.anova.lm	base-defunct
+print.AsIs	AsIs
+print.atomic	base-defunct
+print.by	by
+print.condition	conditions
+print.connection	connections
+print.data.frame	print.dataframe
+print.Date	Dates
+print.default	print.default
+print.difftime	difftime
+print.Dlist	print
+print.DLLInfo	getLoadedDLLs
+print.DLLInfoList	getLoadedDLLs
+print.DLLRegisteredRoutines	getDLLRegisteredRoutines
+print.factor	print
+print.function	print
+print.hexmode	hexmode
+print.libraryIQR	library
+print.listof	print
+print.NativeRoutineList	getDLLRegisteredRoutines
+print.noquote	noquote
+print.numeric_version	numeric_version
+print.octmode	octmode
+print.ordered	base-defunct
+print.packageInfo	library
+print.plot	base-defunct
+print.POSIXct	DateTimeClasses
+print.POSIXlt	DateTimeClasses
+print.proc_time	proc.time
+print.restart	conditions
+print.rle	rle
+print.simple.list	print
+print.srcfile	srcfile
+print.srcref	srcfile
+print.summary.table	table
+print.summaryDefault	summary
+print.table	print
+print.tabular	base-defunct
+print.warnings	warnings
+printNoClass	base-defunct
+prmatrix	prmatrix
+proc.time	proc.time
+prod	prod
+promise	delayedAssign
+promises	delayedAssign
+prop.table	prop.table
+provide	base-defunct
+provideDimnames	dimnames
+psigamma	Special
+pushBack	pushBack
+pushBackLength	pushBack
+q	quit
+qr	qr
+qr.coef	qr
+qr.default	qr
+qr.fitted	qr
+qr.Q	qraux
+qr.qty	qr
+qr.qy	qr
+qr.R	qraux
+qr.resid	qr
+qr.solve	qr
+qr.X	qraux
+quarters	weekday.POSIXt
+quarters.Date	weekday.POSIXt
+quarters.POSIXt	weekday.POSIXt
+quit	quit
+quote	substitute
+Quotes	Quotes
+R.home	Rhome
+R.Version	Version
+R.version	Version
+R.version.string	Version
+Random	Random
+Random.user	Random-user
+range	range
+range.default	range
+rank	rank
+rapply	rapply
+raw	raw
+rawConnection	rawConnection
+rawConnectionValue	rawConnection
+rawShift	rawConversion
+rawToBits	rawConversion
+rawToChar	rawConversion
+rbind	cbind
+rbind.data.frame	cbind
+rcond	kappa
+Rd2pdf	RdUtils
+RD2PDF_INPUTENC	RdUtils
+Rdconv	RdUtils
+Re	complex
+read.dcf	dcf
+read.table.url	base-defunct
+readBin	readBin
+readChar	readChar
+readline	readline
+readLines	readLines
+readRDS	readRDS
+readRenviron	readRenviron
+real	base-defunct
+Recall	Recall
+Reduce	funprog
+reg.finalizer	reg.finalizer
+regex	regex
+regexec	grep
+regexp	regex
+regexpr	grep
+RegisteredNativeSymbol	getNativeSymbolInfo
+registerS3method	ns-internal
+registerS3methods	ns-internal
+regmatches	regmatches
+regmatches<-	regmatches
+regular expression	regex
+remove	rm
+removeTaskCallback	taskCallback
+Renviron	Startup
+Renviron.site	Startup
+rep	rep
+rep.Date	rep
+rep.factor	rep
+rep.int	rep
+rep.numeric_version	numeric_version
+rep.POSIXct	rep
+rep.POSIXlt	rep
+repeat	Control
+replace	replace
+replicate	lapply
+rep_len	rep
+require	library
+requireNamespace	ns-load
+Reserved	Reserved
+reserved	Reserved
+restart	base-defunct
+restartDescription	conditions
+restartFormals	conditions
+retracemem	tracemem
+return	function
+returnValue	trace
+rev	rev
+rev.default	rev
+rle	rle
+rm	rm
+RNG	Random
+RNGkind	Random
+RNGversion	Random
+round	Round
+round.Date	round.POSIXt
+round.POSIXt	round.POSIXt
+row	row
+row.names	row.names
+row.names.data.frame	row.names
+row.names.default	row.names
+row.names<-	row.names
+row.names<-.data.frame	row.names
+row.names<-.default	row.names
+rowMeans	colSums
+rownames	colnames
+rownames<-	colnames
+rowsum	rowsum
+rowsum.data.frame	rowsum
+rowsum.default	rowsum
+rowSums	colSums
+Rprofile	Startup
+Rprofile.site	Startup
+R_BATCH	EnvVar
+R_BROWSER	EnvVar
+R_COMPLETION	EnvVar
+R_C_BOUNDS_CHECK	options
+R_DEFAULT_DEVICE	options
+R_DEFAULT_PACKAGES	Startup
+R_DOC_DIR	EnvVar
+R_ENVIRON	Startup
+R_ENVIRON_USER	Startup
+R_GCTORTURE	gctorture
+R_GCTORTURE_INHIBIT_RELEASE	gctorture
+R_GCTORTURE_WAIT	gctorture
+R_GSCMD	EnvVar
+R_HISTFILE	EnvVar
+R_HISTSIZE	EnvVar
+R_HOME	Rhome
+R_ICU_LOCALE	icuSetCollate
+R_INCLUDE_DIR	EnvVar
+R_INTERACTIVE_DEVICE	options
+R_KEEP_PKG_SOURCE	options
+R_LIBS	libPaths
+R_LIBS_SITE	libPaths
+R_LIBS_USER	libPaths
+R_PAPERSIZE	EnvVar
+R_PDFVIEWER	EnvVar
+R_PLATFORM	EnvVar
+R_PRINTCMD	EnvVar
+R_PROFILE	Startup
+R_PROFILE_USER	Startup
+R_RD4PDF	EnvVar
+R_SHARE_DIR	EnvVar
+R_system_version	numeric_version
+R_TEXI2DVICMD	EnvVar
+R_UNZIPCMD	EnvVar
+R_ZIPCMD	EnvVar
+S3groupGeneric	groupGeneric
+S3Methods	UseMethod
+S4	isS4
+sample	sample
+sample.int	sample
+sapply	lapply
+save	save
+save.image	save
+save.plot	base-defunct
+saveRDS	readRDS
+scale	scale
+scale.default	scale
+scan	scan
+scan.url	base-defunct
+search	search
+searchpaths	search
+seek	seek
+seek.connection	seek
+seq	seq
+seq.Date	seq.Date
+seq.default	seq
+seq.int	seq
+seq.POSIXt	seq.POSIXt
+sequence	sequence
+seq_along	seq
+seq_len	seq
+serialize	serialize
+set.seed	Random
+setdiff	sets
+setequal	sets
+setHook	userhooks
+setNamespaceInfo	ns-internal
+setSessionTimeLimit	setTimeLimit
+setTimeLimit	setTimeLimit
+setwd	getwd
+shell	system
+showConnections	showConnections
+shQuote	shQuote
+sign	sign
+signalCondition	conditions
+Signals	Signals
+signif	Round
+simpleCondition	conditions
+simpleError	conditions
+simpleMessage	conditions
+simpleWarning	conditions
+simplify2array	lapply
+sin	Trig
+single	double
+sinh	Hyperbolic
+sink	sink
+sink.number	sink
+sinpi	Trig
+slice.index	slice.index
+socketConnection	connections
+socketSelect	socketSelect
+solve	solve
+solve.default	solve
+solve.qr	qr
+sort	sort
+sort.default	sort
+sort.int	sort
+sort.list	order
+sort.POSIXlt	sort
+source	source
+source.url	base-defunct
+Special	Special
+split	split
+split.data.frame	split
+split.Date	Dates
+split.default	split
+split.POSIXct	DateTimeClasses
+split<-	split
+split<-.data.frame	split
+split<-.default	split
+sprintf	sprintf
+sqrt	MathFun
+sQuote	sQuote
+srcfile	srcfile
+srcfile-class	srcfile
+srcfilealias	srcfile
+srcfilealias-class	srcfile
+srcfilecopy	srcfile
+srcfilecopy-class	srcfile
+srcref	srcfile
+srcref-class	srcfile
+standardGeneric	standardGeneric
+startsWith	startsWith
+Startup	Startup
+stderr	showConnections
+stdin	showConnections
+stdout	showConnections
+stop	stop
+stopifnot	stopifnot
+storage.mode	mode
+storage.mode<-	mode
+str.POSIXt	DateTimeClasses
+strftime	strptime
+strptime	strptime
+strrep	strrep
+strsplit	strsplit
+strtoi	strtoi
+strtrim	strtrim
+structure	structure
+strwrap	strwrap
+sub	grep
+Subscript	Extract
+subset	subset
+subset.data.frame	subset
+subset.default	subset
+subset.matrix	subset
+substitute	substitute
+substr	substr
+substr<-	substr
+substring	substr
+substring<-	substr
+sum	sum
+Summary	groupGeneric
+summary	summary
+summary.connection	connections
+Summary.data.frame	groupGeneric
+summary.data.frame	summary
+Summary.Date	Dates
+summary.Date	Dates
+summary.default	summary
+Summary.difftime	difftime
+Summary.factor	factor
+summary.factor	summary
+summary.matrix	summary
+Summary.numeric_version	numeric_version
+Summary.ordered	factor
+Summary.POSIXct	DateTimeClasses
+summary.POSIXct	DateTimeClasses
+Summary.POSIXlt	DateTimeClasses
+summary.POSIXlt	DateTimeClasses
+summary.proc_time	proc.time
+summary.srcfile	srcfile
+summary.srcref	srcfile
+summary.table	table
+suppressMessages	message
+suppressPackageStartupMessages	message
+suppressWarnings	warning
+svd	svd
+sweep	sweep
+switch	switch
+symbol.C	base-defunct
+symbol.For	base-defunct
+Syntax	Syntax
+sys.call	sys.parent
+sys.calls	sys.parent
+Sys.chmod	files2
+Sys.Date	Sys.time
+sys.frame	sys.parent
+sys.frames	sys.parent
+sys.function	sys.parent
+Sys.getenv	Sys.getenv
+Sys.getlocale	locales
+Sys.getpid	Sys.getpid
+Sys.glob	Sys.glob
+Sys.info	Sys.info
+sys.load.image	base-internal
+Sys.localeconv	Sys.localeconv
+sys.nframe	sys.parent
+sys.on.exit	sys.parent
+sys.parent	sys.parent
+sys.parents	sys.parent
+Sys.putenv	base-defunct
+Sys.readlink	Sys.readlink
+sys.save.image	base-internal
+Sys.setenv	Sys.setenv
+Sys.setFileTime	Sys.setFileTime
+Sys.setlocale	locales
+Sys.sleep	Sys.sleep
+sys.source	sys.source
+sys.status	sys.parent
+Sys.time	Sys.time
+Sys.timezone	timezones
+Sys.umask	files2
+Sys.unsetenv	Sys.setenv
+Sys.which	Sys.which
+system	system
+system.file	system.file
+system.test	base-defunct
+system.time	system.time
+system2	system2
+T	logical
+t	t
+t.data.frame	t
+t.default	t
+table	table
+tabulate	tabulate
+tan	Trig
+tanh	Hyperbolic
+tanpi	Trig
+tapply	tapply
+taskCallbackManager	taskCallbackManager
+tcrossprod	crossprod
+tempdir	tempfile
+tempfile	tempfile
+testPlatformEquivalence	base-internal
+tetragamma	base-defunct
+textConnection	textconnections
+textConnectionValue	textconnections
+tilde	tilde
+tilde expansion	path.expand
+time interval	difftime
+time zone	timezones
+time zones	timezones
+timezone	timezones
+timezones	timezones
+TMPDIR	EnvVar
+tolower	chartr
+topenv	ns-topenv
+toString	toString
+toString.default	toString
+toupper	chartr
+trace	trace
+traceback	traceback
+tracemem	tracemem
+tracingState	trace
+transform	transform
+transform.data.frame	transform
+transform.default	transform
+Trig	Trig
+trigamma	Special
+trimws	trimws
+TRUE	logical
+trunc	Round
+trunc.Date	round.POSIXt
+trunc.POSIXt	round.POSIXt
+truncate	seek
+truncate.connection	seek
+try	try
+tryCatch	conditions
+type	typeof
+typeof	typeof
+TZ	timezones
+TZDIR	timezones
+umask	files2
+unclass	class
+undebug	debug
+Unicode	utf8Conversion
+union	sets
+unique	unique
+unique.array	unique
+unique.data.frame	unique
+unique.default	unique
+unique.matrix	unique
+unique.numeric_version	numeric_version
+unique.POSIXlt	DateTimeClasses
+unique.warnings	warnings
+units	difftime
+units.difftime	difftime
+units<-	difftime
+units<-.difftime	difftime
+unix	base-defunct
+unix.time	system.time
+unlink	unlink
+unlist	unlist
+unloadNamespace	ns-load
+unlockBinding	bindenv
+unname	unname
+unserialize	serialize
+unsplit	split
+untrace	trace
+untracemem	tracemem
+unz	connections
+upper.tri	lower.tri
+url	connections
+UseMethod	UseMethod
+utf8ToInt	utf8Conversion
+validEnc	validUTF8
+validUTF8	validUTF8
+vapply	lapply
+vector	vector
+Vectorize	Vectorize
+Version	base-defunct
+version	Version
+warning	warning
+warnings	warnings
+weekdays	weekday.POSIXt
+weekdays.Date	weekday.POSIXt
+weekdays.POSIXt	weekday.POSIXt
+which	which
+which.max	which.min
+which.min	which.min
+while	Control
+with	with
+with.default	with
+withCallingHandlers	conditions
+within	with
+within.data.frame	with
+within.list	with
+withRestarts	conditions
+withVisible	withVisible
+write	write
+write.dcf	dcf
+write.table0	base-defunct
+writeBin	readBin
+writeChar	readChar
+writeLines	writeLines
+xor	Logic
+xor.hexmode	hexmode
+xor.octmode	octmode
+xpdrows.data.frame	dataframeHelpers
+xtfrm	xtfrm
+xtfrm.AsIs	xtfrm
+xtfrm.Date	xtfrm
+xtfrm.default	xtfrm
+xtfrm.difftime	xtfrm
+xtfrm.factor	xtfrm
+xtfrm.numeric_version	numeric_version
+xtfrm.POSIXct	xtfrm
+xtfrm.POSIXlt	xtfrm
+xtfrm.Surv	xtfrm
+xzfile	connections
+zapsmall	zapsmall
+[	Extract
+[.AsIs	AsIs
+[.data.frame	Extract.data.frame
+[.Date	Dates
+[.difftime	difftime
+[.Dlist	Extract
+[.factor	Extract.factor
+[.hexmode	hexmode
+[.listof	Extract
+[.noquote	noquote
+[.numeric_version	numeric_version
+[.octmode	octmode
+[.POSIXct	DateTimeClasses
+[.POSIXlt	DateTimeClasses
+[.simple.list	Extract
+[.table	table
+[.warnings	warnings
+[<-	Extract
+[<-.data.frame	Extract.data.frame
+[<-.Date	Dates
+[<-.factor	Extract.factor
+[<-.numeric_version	numeric_version
+[<-.POSIXct	DateTimeClasses
+[<-.POSIXlt	DateTimeClasses
+[[	Extract
+[[.data.frame	Extract.data.frame
+[[.Date	Dates
+[[.factor	Extract.factor
+[[.numeric_version	numeric_version
+[[.POSIXct	DateTimeClasses
+[[<-	Extract
+[[<-.data.frame	Extract.data.frame
+[[<-.factor	Extract.factor
+[[<-.numeric_version	numeric_version
+^	Arithmetic
+`	Quotes
+{	Paren
+|	Logic
+|.hexmode	hexmode
+|.octmode	octmode
+||	Logic
+~	tilde
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/help/base.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/help/base.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/CITATION	(revision 2476)
@@ -0,0 +1,23 @@
+bibentry("Manual",
+         title = "R: A Language and Environment for Statistical Computing",
+         author = person("R Core Team"),
+         organization = "R Foundation for Statistical Computing",
+         address      = "Vienna, Austria",
+         year         = version$year,
+         url          = "https://www.R-project.org/",
+         
+         textVersion = 
+         paste("R Core Team (", version$year, "). ", 
+               "R: A language and environment for statistical computing. ",
+               "R Foundation for Statistical Computing, Vienna, Austria. ",
+               "URL https://www.R-project.org/.",
+               sep=""),
+	       
+         mheader = "To cite R in publications use:",
+	 
+	 mfooter = 
+         paste("We have invested a lot of time and effort in creating R,",
+          "please cite it when using it for data analysis.",
+	  "See also", sQuote("citation(\"pkgname\")"),
+	  "for citing R packages.", sep = " ")
+	)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/R/base.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/R/base.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/R/Rprofile
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/R/Rprofile	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/R/Rprofile	(revision 2476)
@@ -0,0 +1,161 @@
+### This is the system Rprofile file. It is always run on startup.
+### Additional commands can be placed in site or user Rprofile files
+### (see ?Rprofile).
+
+### Copyright (C) 1995-2015 The R Core Team
+
+### Notice that it is a bad idea to use this file as a template for
+### personal startup files, since things will be executed twice and in
+### the wrong environment (user profiles are run in .GlobalEnv).
+
+.GlobalEnv <- globalenv()
+attach(NULL, name = "Autoloads")
+.AutoloadEnv <- as.environment(2)
+assign(".Autoloaded", NULL, envir = .AutoloadEnv)
+T <- TRUE
+F <- FALSE
+R.version <- structure(R.Version(), class = "simple.list")
+version <- R.version            # for S compatibility
+
+## for backwards compatibility only
+R.version.string <- R.version$version.string
+
+## NOTA BENE: options() for non-base package functionality are in places like
+##            --------- ../utils/R/zzz.R
+
+options(keep.source = interactive())
+options(warn = 0)
+# options(repos = c(CRAN="@CRAN@"))
+# options(BIOC = "http://www.bioconductor.org")
+
+options(timeout = 60)
+options(encoding = "native.enc")
+options(show.error.messages = TRUE)
+## keep in sync with PrintDefaults() in  ../../main/print.c :
+options(scipen = 0)
+options(max.print = 99999)# max. #{entries} in internal printMatrix()
+options(add.smooth = TRUE)# currently only used in 'plot.lm'
+options(stringsAsFactors = TRUE)
+if(!interactive() && is.null(getOption("showErrorCalls")))
+    options(showErrorCalls = TRUE)
+
+local({dp <- Sys.getenv("R_DEFAULT_PACKAGES")
+       if(identical(dp, "")) ## it fact methods is done first
+           dp <- c("datasets", "utils", "grDevices", "graphics",
+                   "stats", "methods")
+       else if(identical(dp, "NULL")) dp <- character(0)
+       else dp <- strsplit(dp, ",")[[1]]
+       dp <- sub("[[:blank:]]*([[:alnum:]]+)", "\\1", dp) # strip whitespace
+       options(defaultPackages = dp)
+    })
+
+## Expand R_LIBS_* environment variables.
+Sys.setenv(R_LIBS_SITE =
+           .expand_R_libs_env_var(Sys.getenv("R_LIBS_SITE")))
+Sys.setenv(R_LIBS_USER =
+           .expand_R_libs_env_var(Sys.getenv("R_LIBS_USER")))
+
+local({
+    if(nzchar(tl <- Sys.getenv("R_SESSION_TIME_LIMIT_CPU")))
+        setSessionTimeLimit(cpu = tl)
+    if(nzchar(tl <- Sys.getenv("R_SESSION_TIME_LIMIT_ELAPSED")))
+        setSessionTimeLimit(elapsed = tl)
+})
+
+.First.sys <- function()
+{
+    for(pkg in getOption("defaultPackages")) {
+        res <- require(pkg, quietly = TRUE, warn.conflicts = FALSE,
+                       character.only = TRUE)
+        if(!res)
+            warning(gettextf('package %s in options("defaultPackages") was not found', sQuote(pkg)),
+                    call. = FALSE, domain = NA)
+    }
+}
+
+## called at C level in the startup process prior to .First.sys
+.OptRequireMethods <- function()
+{
+    pkg <- "methods" # done this way to avoid R CMD check warning
+    if(pkg %in% getOption("defaultPackages"))
+        if(!require(pkg, quietly = TRUE, warn.conflicts = FALSE,
+                    character.only = TRUE))
+            warning('package "methods" in options("defaultPackages") was not found',
+                    call. = FALSE)
+}
+
+if(nzchar(Sys.getenv("R_BATCH"))) {
+    .Last.sys <- function()
+    {
+        cat("> proc.time()\n")
+        print(proc.time())
+    }
+    ## avoid passing on to spawned R processes
+    ## A system has been reported without Sys.unsetenv, so try this
+    try(Sys.setenv(R_BATCH=""))
+}
+###-*- R -*- Unix Specific ----
+
+.Library <- file.path(R.home(), "library")
+.Library.site <- Sys.getenv("R_LIBS_SITE")
+.Library.site <- if(!nchar(.Library.site)) file.path(R.home(), "site-library") else unlist(strsplit(.Library.site, ":"))
+.Library.site <- .Library.site[file.exists(.Library.site)]
+
+invisible(.libPaths(c(unlist(strsplit(Sys.getenv("R_LIBS"), ":")),
+                      unlist(strsplit(Sys.getenv("R_LIBS_USER"), ":")
+                      ))))
+local({
+    popath <- Sys.getenv("R_TRANSLATIONS", "")
+    if(!nzchar(popath)) {
+        paths <- file.path(.libPaths(), "translations", "DESCRIPTION")
+        popath <- dirname(paths[file.exists(paths)][1])
+    }
+    bindtextdomain("R", popath)
+    bindtextdomain("R-base", popath)
+    assign(".popath", popath, .BaseNamespaceEnv)
+})
+local({
+## we distinguish between R_PAPERSIZE as set by the user and by configure
+papersize <- Sys.getenv("R_PAPERSIZE_USER")
+if(!nchar(papersize)) {
+    lcpaper <- Sys.getlocale("LC_PAPER") # might be null: OK as nchar is 0
+    papersize <- if(nchar(lcpaper))
+        if(length(grep("(_US|_CA)", lcpaper))) "letter" else "a4"
+    else Sys.getenv("R_PAPERSIZE")
+}
+options(papersize = papersize,
+        printcmd = Sys.getenv("R_PRINTCMD"),
+        dvipscmd = Sys.getenv("DVIPS", "dvips"),
+        texi2dvi = Sys.getenv("R_TEXI2DVICMD"),
+        browser = Sys.getenv("R_BROWSER"),
+        pager = file.path(R.home(), "bin", "pager"),
+        pdfviewer = Sys.getenv("R_PDFVIEWER"),
+        useFancyQuotes = TRUE)
+})
+
+## non standard settings for the R.app GUI of the macOS port
+if(.Platform$GUI == "AQUA") {
+    ## this is set to let RAqua use both X11 device and X11/TclTk
+    if (Sys.getenv("DISPLAY") == "")
+	Sys.setenv("DISPLAY" = ":0")
+
+    ## this is to allow gfortran compiler to work
+    Sys.setenv("PATH" = paste(Sys.getenv("PATH"),":/usr/local/bin",sep = ""))
+}## end "Aqua"
+
+## de-dupe the environment on macOS (bug in Yosemite which affects things like PATH)
+if (grepl("^darwin", R.version$os)) local({
+    ## we have to de-dupe one at a time and re-check since the bug affects how
+    ## environment modifications propagate
+    while(length(dupes <- names(Sys.getenv())[table(names(Sys.getenv())) > 1])) {
+        env <- dupes[1]
+        value <- Sys.getenv(env)
+        Sys.unsetenv(env)             ## removes the dupes, good
+        .Internal(Sys.setenv(env, value)) ## wrapper requries named vector, a pain, hence internal
+    }
+})
+
+local({
+    tests_startup <- Sys.getenv("R_TESTS")
+    if(nzchar(tests_startup)) source(tests_startup)
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/R/base.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/R/base.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/R/base
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/R/base	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/R/base	(revision 2476)
@@ -0,0 +1,122 @@
+#  File src/library/base/baseloader.R
+#  Part of the R package, https://www.R-project.org
+#
+#  Copyright (C) 1995-2013 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  https://www.R-project.org/Licenses/
+
+
+## this should be kept in step with code in R/lazyload.R
+.Internal(eval(quote({
+..lazyLoad <- function(filebase, envir = parent.frame())
+{
+    ##
+    ## bootstrapping definitions so we can load base
+    ##
+    glue <- function (..., sep = " ", collapse = NULL)
+        .Internal(paste(list(...), sep, collapse))
+    readRDS <- function (file) {
+        halt <- function (message) .Internal(stop(TRUE, message))
+        gzfile <- function (description, open)
+            .Internal(gzfile(description, open, "", 6))
+        close <- function (con) .Internal(close(con, "rw"))
+        if (! is.character(file)) halt("bad file name")
+        con <- gzfile(file, "rb")
+        on.exit(close(con))
+        .Internal(unserializeFromConn(con, baseenv()))
+    }
+    `parent.env<-` <-
+        function (env, value) .Internal(`parent.env<-`(env, value))
+    existsInFrame <- function (x, env) .Internal(exists(x, env, "any", FALSE))
+    getFromFrame <- function (x, env) .Internal(get(x, env, "any", FALSE))
+    set <- function (x, value, env) .Internal(assign(x, value, env, FALSE))
+    environment <- function () .Internal(environment(NULL))
+    mkenv <- function() .Internal(new.env(TRUE, baseenv(), 29L))
+
+    ##
+    ## main body
+    ##
+    mapfile <- glue(filebase, "rdx", sep = ".")
+    datafile <- glue(filebase, "rdb", sep = ".")
+    env <- mkenv()
+    map <- readRDS(mapfile)
+    vars <- names(map$variables)
+    rvars <- names(map$references)
+    compressed <- map$compressed
+    for (i in seq_along(rvars))
+        set(rvars[i], map$references[[i]], env)
+    envenv <- mkenv()
+    envhook <- function(n) {
+        if (existsInFrame(n, envenv))
+            getFromFrame(n, envenv)
+        else {
+            e <- mkenv()
+            set(n, e, envenv)           # MUST do this immediately
+            key <- getFromFrame(n, env)
+            data <- lazyLoadDBfetch(key, datafile, compressed, envhook)
+            if (is.null(data$enclos))
+                parent.env(e) <- emptyenv()
+            else
+                parent.env(e) <- data$enclos
+            vars <- names(data$bindings)
+            for (i in seq_along(vars))
+                set(vars[i], data$bindings[[i]], e)
+            if (! is.null(data$attributes))
+                attributes(e) <- data$attributes
+            ## there are no S4 objects in base
+            if (! is.null(data$locked) && data$locked)
+                .Internal(lockEnvironment(e, FALSE))
+            e
+        }
+    }
+    expr <- quote(lazyLoadDBfetch(key, datafile, compressed, envhook))
+    this <- environment()
+    .Internal(makeLazy(vars, map$variables, expr, this, envir))
+
+    ## reduce memory use
+    map <- NULL
+    vars <- NULL
+    rvars <- NULL
+    mapfile <- NULL
+    readRDS <- NULL
+}
+
+    existsInBase <- function (x)
+        .Internal(exists(x, .BaseNamespaceEnv, "any", TRUE))
+    glue <- function (..., sep = " ", collapse = NULL)
+        .Internal(paste(list(...), sep, collapse))
+
+    basedb <- glue(.Internal(R.home()), "library", "base", "R",
+                   "base", sep= .Platform$file.sep)
+
+    ..lazyLoad(basedb, baseenv())
+
+}), .Internal(new.env(FALSE, baseenv(), 29L)), baseenv()))
+
+## keep in sync with R/zzz.R
+as.numeric <- as.double
+is.name <- is.symbol
+
+
+## populate C/Fortran symbols
+local({
+    routines <- getDLLRegisteredRoutines("base")
+    for (i in c("dchdc", # chol, deprecated
+                "dqrcf", "dqrdc2", "dqrqty", "dqrqy", "dqrrsd", "dqrxb", # qr
+                "dtrco")) # .kappa_tri
+        assign(paste0(".F_", i), routines[[3]][[i]], envir = .BaseNamespaceEnv)
+    for(i in 1:2)
+        lapply(routines[[i]],
+               function(sym) assign(paste0(".C_", sym$name), sym, envir = .BaseNamespaceEnv))
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/DESCRIPTION	(revision 2476)
@@ -0,0 +1,10 @@
+Package: base
+Version: 3.3.2
+Priority: base
+Title: The R Base Package
+Author: R Core Team and contributors worldwide
+Maintainer: R Core Team <R-core@r-project.org>
+Description: Base R functions.
+License: Part of R 3.3.2
+Suggests: methods
+Built: R 3.3.2; ; 2016-10-31 14:33:29 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/demo/scoping.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/demo/scoping.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/demo/scoping.R	(revision 2476)
@@ -0,0 +1,50 @@
+
+## Here is a little example which shows a fundamental difference between
+## R and S.  It is a little example from Abelson and Sussman which models
+## the way in which bank accounts work.	It shows how R functions can
+## encapsulate state information.
+##
+## When invoked, "open.account" defines and returns three functions
+## in a list.  Because the variable "total" exists in the environment
+## where these functions are defined they have access to its value.
+## This is even true when "open.account" has returned.  The only way
+## to access the value of "total" is through the accessor functions
+## withdraw, deposit and balance.  Separate accounts maintain their
+## own balances.
+##
+## This is a very nifty way of creating "closures" and a little thought
+## will show you that there are many ways of using this in statistics.
+
+#  Copyright (C) 1997-8 The R Core Team
+
+open.account <- function(total) {
+
+    list(
+	 deposit = function(amount) {
+	     if(amount <= 0)
+		 stop("Deposits must be positive!\n")
+	     total <<- total + amount
+	     cat(amount,"deposited. Your balance is", total, "\n\n")
+	 },
+	 withdraw = function(amount) {
+	     if(amount > total)
+		 stop("You don't have that much money!\n")
+	     total <<- total - amount
+	     cat(amount,"withdrawn.  Your balance is", total, "\n\n")
+	 },
+	 balance = function() {
+	     cat("Your balance is", total, "\n\n")
+	 }
+	 )
+}
+
+ross <- open.account(100)
+robert <- open.account(200)
+
+ross$withdraw(30)
+ross$balance()
+robert$balance()
+
+ross$deposit(50)
+ross$balance()
+try(ross$withdraw(500)) # no way..
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/demo/is.things.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/demo/is.things.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/demo/is.things.R	(revision 2476)
@@ -0,0 +1,128 @@
+#  Copyright (C) 1997-2013 The R Core Team
+
+## being a 'builtin' function is not the same as being in base
+ls.base <- ls("package:base", all=TRUE)
+base.is.f <- sapply(ls.base, function(x) is.function(get(x)))
+cat("\nNumber of base objects:\t\t", length(ls.base),
+    "\nNumber of functions in base:\t", sum(base.is.f),
+    "\n\t starting with 'is.' :\t  ",
+    sum(grepl("^is\\.", ls.base[base.is.f])), "\n", sep = "")
+## 0.14  : 31
+## 0.50  : 33
+## 0.60  : 34
+## 0.63  : 37
+## 1.0.0 : 38
+## 1.3.0 : 41
+## 1.6.0 : 45
+## 2.0.0 : 45
+
+## Do we have a method (probably)?
+is.method <- function(fname) {
+    isFun <- function(name) (exists(name, mode="function") &&
+                             is.na(match(name, c("is", "as"))))
+    np <- length(sp <- strsplit(fname, split = "\\.")[[1]])
+    if(np <= 1 )
+        FALSE
+    else
+        (isFun(paste(sp[1:(np-1)], collapse = '.')) ||
+         (np >= 3 &&
+          isFun(paste(sp[1:(np-2)], collapse = '.'))))
+}
+
+is.ALL <- function(obj, func.names = ls(pos=length(search())),
+		   not.using = c("is.single", "is.real", "is.loaded",
+                     "is.empty.model", "is.R", "is.element", "is.unsorted"),
+		   true.only = FALSE, debug = FALSE)
+{
+    ## Purpose: show many 'attributes' of  R object __obj__
+    ## -------------------------------------------------------------------------
+    ## Arguments: obj: any R object
+    ## -------------------------------------------------------------------------
+    ## Author: Martin Maechler, Date: 6 Dec 1996
+
+    is.fn <- func.names[substring(func.names,1,3) == "is."]
+    is.fn <- is.fn[substring(is.fn,1,7) != "is.na<-"]
+    use.fn <- is.fn[ is.na(match(is.fn, not.using))
+                    & ! sapply(is.fn, is.method) ]
+
+    r <- if(true.only) character(0)
+    else structure(vector("list", length= length(use.fn)), names= use.fn)
+    for(f in use.fn) {
+	if(any(f == c("is.na", "is.finite"))) {
+	    if(!is.list(obj) && !is.vector(obj) && !is.array(obj)) {
+		if(!true.only) r[[f]] <- NA
+		next
+	    }
+	}
+	if(any(f == c("is.nan", "is.finite", "is.infinite"))) {
+	    if(!is.atomic(obj)) {
+	    	if(!true.only) r[[f]] <- NA
+	    	next
+	    }
+	}
+	if(debug) cat(f,"")
+	fn <- get(f)
+	rr <- if(is.primitive(fn) || length(formals(fn))>0)  fn(obj) else fn()
+	if(!is.logical(rr)) cat("f=",f," --- rr	 is NOT logical	 = ",rr,"\n")
+	##if(1!=length(rr))   cat("f=",f," --- rr NOT of length 1; = ",rr,"\n")
+	if(true.only && length(rr)==1 && !is.na(rr) && rr) r <- c(r, f)
+	else if(!true.only) r[[f]] <- rr
+    }
+    if(debug)cat("\n")
+    if(is.list(r)) structure(r, class = "isList") else r
+}
+
+print.isList <- function(x, ..., verbose = getOption("verbose"))
+{
+    ## Purpose:	 print METHOD  for `isList' objects
+    ## ------------------------------------------------
+    ## Author: Martin Maechler, Date: 12 Mar 1997
+    if(is.list(x)) {
+        if(verbose) cat("print.isList(): list case (length=",length(x),")\n")
+	nm <- format(names(x))
+	rr <- lapply(x, stats::symnum, na = "NA")
+	for(i in seq_along(x)) cat(nm[i],":",rr[[i]],"\n", ...)
+    } else NextMethod("print", ...)
+}
+
+
+is.ALL(NULL)
+##fails: is.ALL(NULL, not.using = c("is.single", "is.loaded"))
+is.ALL(NULL,   true.only = TRUE)
+all.equal(NULL, pairlist())
+## list() != NULL == pairlist() :
+is.ALL(list(), true.only = TRUE)
+
+(pl <- is.ALL(pairlist(1,    list(3,"A")), true.only = TRUE))
+(ll <- is.ALL(    list(1,pairlist(3,"A")), true.only = TRUE))
+all.equal(pl[pl != "is.pairlist"],
+          ll[ll != "is.vector"])## TRUE
+
+is.ALL(1:5)
+is.ALL(array(1:24, 2:4))
+is.ALL(1 + 3)
+e13 <- expression(1 + 3)
+is.ALL(e13)
+is.ALL(substitute(expression(a + 3), list(a=1)), true.only = TRUE)
+is.ALL(y ~ x) #--> NA	 for is.na & is.finite
+
+is0 <- is.ALL(numeric(0))
+is0.ok <- 1 == (lis0 <- sapply(is0, length))
+is0[!is0.ok]
+is0 <- unlist(is0)
+is0
+ispi <- unlist(is.ALL(pi))
+all(ispi[is0.ok] == is0)
+
+is.ALL(numeric(0), true=TRUE)
+is.ALL(array(1,1:3), true=TRUE)
+is.ALL(cbind(1:3), true=TRUE)
+
+is.ALL(structure(1:7, names = paste("a",1:7,sep="")))
+is.ALL(structure(1:7, names = paste("a",1:7,sep="")), true.only = TRUE)
+
+x <- 1:20 ; y <- 5 + 6*x + rnorm(20)
+lm.xy <- lm(y ~ x)
+is.ALL(lm.xy)
+is.ALL(structure(1:7, names = paste("a",1:7,sep="")))
+is.ALL(structure(1:7, names = paste("a",1:7,sep="")), true.only = TRUE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/demo/error.catching.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/demo/error.catching.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/demo/error.catching.R	(revision 2476)
@@ -0,0 +1,33 @@
+	##================================================================##
+	###  In longer simulations, aka computer experiments,		 ###
+	###  you may want to						 ###
+	###  1) catch all errors and warnings (and continue)		 ###
+	###  2) store the error or warning messages			 ###
+	###								 ###
+	###  Here's a solution	(see R-help mailing list, Dec 9, 2010):	 ###
+	##================================================================##
+
+##' Catch *and* save both errors and warnings, and in the case of
+##' a warning, also keep the computed result.
+##'
+##' @title tryCatch both warnings (with value) and errors
+##' @param expr an \R expression to evaluate
+##' @return a list with 'value' and 'warning', where
+##'   'value' may be an error caught.
+##' @author Martin Maechler;
+##' Copyright (C) 2010-2012  The R Core Team
+tryCatch.W.E <- function(expr)
+{
+    W <- NULL
+    w.handler <- function(w){ # warning handler
+	W <<- w
+	invokeRestart("muffleWarning")
+    }
+    list(value = withCallingHandlers(tryCatch(expr, error = function(e) e),
+				     warning = w.handler),
+	 warning = W)
+}
+
+str( tryCatch.W.E( log( 2 ) ) )
+str( tryCatch.W.E( log( -1) ) )
+str( tryCatch.W.E( log("a") ) )
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/demo/recursion.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/demo/recursion.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/demo/recursion.R	(revision 2476)
@@ -0,0 +1,82 @@
+#  Copyright (C) 1997-2005 The R Core Team
+
+## Adaptive integration:	 Venables and Ripley pp. 105-110
+## This is the basic integrator.
+
+area <- function(f, a, b, ..., fa = f(a, ...), fb = f(b, ...), limit
+		 = 10, eps = 1.e-5)
+{
+    h <- b - a
+    d <- (a + b)/2
+    fd <- f(d, ...)
+    a1 <- ((fa + fb) * h)/2
+    a2 <- ((fa + 4 * fd + fb) * h)/6
+    if(abs(a1 - a2) < eps)
+	return(a2)
+    if(limit == 0) {
+	warning(paste("iteration limit reached near x = ",
+		      d))
+	return(a2)
+    }
+    area(f, a, d, ..., fa = fa, fb = fd, limit = limit - 1,
+	 eps = eps) + area(f, d, b, ..., fa = fd, fb =
+	 fb, limit = limit - 1, eps = eps)
+}
+
+
+## The function to be integrated
+
+fbeta <- function(x, alpha, beta)
+{
+    x^(alpha - 1) * (1 - x)^(beta - 1)
+}
+
+
+## Compute the approximate integral, the exact integral and the error
+
+b0 <- area(fbeta, 0, 1, alpha=3.5, beta=1.5)
+b1 <- exp(lgamma(3.5) + lgamma(1.5) - lgamma(5))
+c(b0, b1, b0-b1)
+
+
+## Modify the function so that it records where it was evaluated
+
+fbeta.tmp <- function (x, alpha, beta)
+{
+    val <<- c(val, x)
+    x^(alpha - 1) * (1 - x)^(beta - 1)
+}
+
+
+## Recompute and plot the evaluation points.
+
+val <- NULL
+b0 <- area(fbeta.tmp, 0, 1, alpha=3.5, beta=1.5)
+plot(val, fbeta(val, 3.5, 1.5), pch=0)
+
+
+## Better programming style -- renaming the function will have no effect.
+## The use of "Recall" as in V+R is VERY black magic.  You can get the
+## same effect transparently by supplying a wrapper function.
+## This is the approved Abelson+Sussman method.
+
+area <- function(f, a, b, ..., limit=10, eps=1e-5) {
+    area2 <- function(f, a, b, ..., fa = f(a, ...), fb = f(b, ...),
+		      limit = limit, eps = eps) {
+	h <- b - a
+	d <- (a + b)/2
+	fd <- f(d, ...)
+	a1 <- ((fa + fb) * h)/2
+	a2 <- ((fa + 4 * fd + fb) * h)/6
+	if(abs(a1 - a2) < eps)
+	    return(a2)
+	if(limit == 0) {
+	    warning(paste("iteration limit reached near x =", d))
+	    return(a2)
+	}
+	area2(f, a, d, ..., fa = fa, fb = fd, limit = limit - 1,
+	      eps = eps) + area2(f, d, b, ..., fa = fd, fb =
+	      fb, limit = limit - 1, eps = eps)
+    }
+    area2(f, a, b, ..., limit=limit, eps=eps)
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/html/00Index.html	(revision 2476)
@@ -0,0 +1,2611 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: The R Base Package</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> The R Base Package
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;base&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../demo">Code demos</a>.  Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="# "> </a>
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#G">G</a>
+<a href="#H">H</a>
+<a href="#I">I</a>
+<a href="#J">J</a>
+<a href="#K">K</a>
+<a href="#L">L</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#O">O</a>
+<a href="#P">P</a>
+<a href="#Q">Q</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#U">U</a>
+<a href="#V">V</a>
+<a href="#W">W</a>
+<a href="#X">X</a>
+<a href="#Z">Z</a>
+<a href="#misc">misc</a>
+</p>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="base-package.html">base-package</a></td>
+<td>The R Base Package</td></tr>
+</table>
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="abbreviate.html">abbreviate</a></td>
+<td>Abbreviate Strings</td></tr>
+<tr><td style="width: 25%;"><a href="MathFun.html">abs</a></td>
+<td>Miscellaneous Mathematical Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">acos</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Hyperbolic.html">acosh</a></td>
+<td>Hyperbolic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="factor.html">addNA</a></td>
+<td>Factors</td></tr>
+<tr><td style="width: 25%;"><a href="taskCallback.html">addTaskCallback</a></td>
+<td>Add or Remove a Top-Level Task Callback</td></tr>
+<tr><td style="width: 25%;"><a href="agrep.html">agrep</a></td>
+<td>Approximate String Matching (Fuzzy Matching)</td></tr>
+<tr><td style="width: 25%;"><a href="agrep.html">agrepl</a></td>
+<td>Approximate String Matching (Fuzzy Matching)</td></tr>
+<tr><td style="width: 25%;"><a href="list.html">alist</a></td>
+<td>Lists - Generic and Dotted Pairs</td></tr>
+<tr><td style="width: 25%;"><a href="all.html">all</a></td>
+<td>Are All Values True?</td></tr>
+<tr><td style="width: 25%;"><a href="all.equal.html">all.equal</a></td>
+<td>Test if Two Objects are (Nearly) Equal</td></tr>
+<tr><td style="width: 25%;"><a href="allnames.html">all.names</a></td>
+<td>Find All Names in an Expression</td></tr>
+<tr><td style="width: 25%;"><a href="allnames.html">all.vars</a></td>
+<td>Find All Names in an Expression</td></tr>
+<tr><td style="width: 25%;"><a href="any.html">any</a></td>
+<td>Are Some Values True?</td></tr>
+<tr><td style="width: 25%;"><a href="duplicated.html">anyDuplicated</a></td>
+<td>Determine Duplicate Elements</td></tr>
+<tr><td style="width: 25%;"><a href="NA.html">anyMissing</a></td>
+<td>'Not Available' / Missing Values</td></tr>
+<tr><td style="width: 25%;"><a href="NA.html">anyNA</a></td>
+<td>'Not Available' / Missing Values</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">anyNA.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">anyNA.POSIXlt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="aperm.html">aperm</a></td>
+<td>Array Transposition</td></tr>
+<tr><td style="width: 25%;"><a href="append.html">append</a></td>
+<td>Vector Merging</td></tr>
+<tr><td style="width: 25%;"><a href="apply.html">apply</a></td>
+<td>Apply Functions Over Array Margins</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">arccos</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">arcsin</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">arctan</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="complex.html">Arg</a></td>
+<td>Complex Numbers and Basic Functionality</td></tr>
+<tr><td style="width: 25%;"><a href="args.html">args</a></td>
+<td>Argument List of a Function</td></tr>
+<tr><td style="width: 25%;"><a href="Arithmetic.html">Arithmetic</a></td>
+<td>Arithmetic Operators</td></tr>
+<tr><td style="width: 25%;"><a href="array.html">array</a></td>
+<td>Multi-way Arrays</td></tr>
+<tr><td style="width: 25%;"><a href="which.html">arrayInd</a></td>
+<td>Which indices are TRUE?</td></tr>
+<tr><td style="width: 25%;"><a href="array.html">as.array</a></td>
+<td>Multi-way Arrays</td></tr>
+<tr><td style="width: 25%;"><a href="call.html">as.call</a></td>
+<td>Function Calls</td></tr>
+<tr><td style="width: 25%;"><a href="character.html">as.character</a></td>
+<td>Character Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">as.character.condition</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="as.Date.html">as.character.Date</a></td>
+<td>Date Conversion Functions to and from Character</td></tr>
+<tr><td style="width: 25%;"><a href="hexmode.html">as.character.hexmode</a></td>
+<td>Display Numbers in Hexadecimal</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">as.character.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="octmode.html">as.character.octmode</a></td>
+<td>Display Numbers in Octal</td></tr>
+<tr><td style="width: 25%;"><a href="strptime.html">as.character.POSIXt</a></td>
+<td>Date-time Conversion Functions to and from Character</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">as.character.srcref</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="complex.html">as.complex</a></td>
+<td>Complex Numbers and Basic Functionality</td></tr>
+<tr><td style="width: 25%;"><a href="as.data.frame.html">as.data.frame</a></td>
+<td>Coerce to a Data Frame</td></tr>
+<tr><td style="width: 25%;"><a href="as.data.frame.html">as.data.frame.AsIs</a></td>
+<td>Coerce to a Data Frame</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">as.data.frame.Date</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">as.data.frame.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">as.data.frame.POSIXct</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="table.html">as.data.frame.table</a></td>
+<td>Cross Tabulation and Table Creation</td></tr>
+<tr><td style="width: 25%;"><a href="as.Date.html">as.Date</a></td>
+<td>Date Conversion Functions to and from Character</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">as.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="double.html">as.double</a></td>
+<td>Double-Precision Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">as.double.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="as.POSIXlt.html">as.double.POSIXlt</a></td>
+<td>Date-time Conversion Functions</td></tr>
+<tr><td style="width: 25%;"><a href="as.environment.html">as.environment</a></td>
+<td>Coerce to an Environment Object</td></tr>
+<tr><td style="width: 25%;"><a href="expression.html">as.expression</a></td>
+<td>Unevaluated Expressions</td></tr>
+<tr><td style="width: 25%;"><a href="factor.html">as.factor</a></td>
+<td>Factors</td></tr>
+<tr><td style="width: 25%;"><a href="as.function.html">as.function</a></td>
+<td>Convert Object to Function</td></tr>
+<tr><td style="width: 25%;"><a href="hexmode.html">as.hexmode</a></td>
+<td>Display Numbers in Hexadecimal</td></tr>
+<tr><td style="width: 25%;"><a href="integer.html">as.integer</a></td>
+<td>Integer Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="list.html">as.list</a></td>
+<td>Lists - Generic and Dotted Pairs</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">as.list.Date</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">as.list.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">as.list.POSIXct</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="logical.html">as.logical</a></td>
+<td>Logical Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="matrix.html">as.matrix</a></td>
+<td>Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="noquote.html">as.matrix.noquote</a></td>
+<td>Class for 'no quote' Printing of Character Strings</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">as.matrix.POSIXlt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="name.html">as.name</a></td>
+<td>Names and Symbols</td></tr>
+<tr><td style="width: 25%;"><a href="NULL.html">as.null</a></td>
+<td>The Null Object</td></tr>
+<tr><td style="width: 25%;"><a href="numeric.html">as.numeric</a></td>
+<td>Numeric Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">as.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="octmode.html">as.octmode</a></td>
+<td>Display Numbers in Octal</td></tr>
+<tr><td style="width: 25%;"><a href="factor.html">as.ordered</a></td>
+<td>Factors</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">as.package_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="list.html">as.pairlist</a></td>
+<td>Lists - Generic and Dotted Pairs</td></tr>
+<tr><td style="width: 25%;"><a href="as.POSIXlt.html">as.POSIXct</a></td>
+<td>Date-time Conversion Functions</td></tr>
+<tr><td style="width: 25%;"><a href="as.POSIXlt.html">as.POSIXlt</a></td>
+<td>Date-time Conversion Functions</td></tr>
+<tr><td style="width: 25%;"><a href="qr.html">as.qr</a></td>
+<td>The QR Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="raw.html">as.raw</a></td>
+<td>Raw Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="double.html">as.single</a></td>
+<td>Double-Precision Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="name.html">as.symbol</a></td>
+<td>Names and Symbols</td></tr>
+<tr><td style="width: 25%;"><a href="table.html">as.table</a></td>
+<td>Cross Tabulation and Table Creation</td></tr>
+<tr><td style="width: 25%;"><a href="vector.html">as.vector</a></td>
+<td>Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">asin</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Hyperbolic.html">asinh</a></td>
+<td>Hyperbolic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="AsIs.html">AsIs</a></td>
+<td>Inhibit Interpretation/Conversion of Objects</td></tr>
+<tr><td style="width: 25%;"><a href="isS4.html">asS3</a></td>
+<td>Test for an S4 object</td></tr>
+<tr><td style="width: 25%;"><a href="isS4.html">asS4</a></td>
+<td>Test for an S4 object</td></tr>
+<tr><td style="width: 25%;"><a href="assign.html">assign</a></td>
+<td>Assign a Value to a Name</td></tr>
+<tr><td style="width: 25%;"><a href="assignOps.html">assignOps</a></td>
+<td>Assignment Operators</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">atan</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">atan2</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Hyperbolic.html">atanh</a></td>
+<td>Hyperbolic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="vector.html">atomic</a></td>
+<td>Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="attach.html">attach</a></td>
+<td>Attach Set of R Objects to Search Path</td></tr>
+<tr><td style="width: 25%;"><a href="ns-load.html">attachNamespace</a></td>
+<td>Loading and Unloading Name Spaces</td></tr>
+<tr><td style="width: 25%;"><a href="attr.html">attr</a></td>
+<td>Object Attributes</td></tr>
+<tr><td style="width: 25%;"><a href="all.equal.html">attr.all.equal</a></td>
+<td>Test if Two Objects are (Nearly) Equal</td></tr>
+<tr><td style="width: 25%;"><a href="attributes.html">attributes</a></td>
+<td>Object Attribute Lists</td></tr>
+<tr><td style="width: 25%;"><a href="autoload.html">autoload</a></td>
+<td>On-demand Loading of Packages</td></tr>
+<tr><td style="width: 25%;"><a href="autoload.html">autoloader</a></td>
+<td>On-demand Loading of Packages</td></tr>
+<tr><td style="width: 25%;"><a href="autoload.html">Autoloads</a></td>
+<td>On-demand Loading of Packages</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Quotes.html">backquote</a></td>
+<td>Quotes</td></tr>
+<tr><td style="width: 25%;"><a href="backsolve.html">backsolve</a></td>
+<td>Solve an Upper or Lower Triangular System</td></tr>
+<tr><td style="width: 25%;"><a href="Quotes.html">backtick</a></td>
+<td>Quotes</td></tr>
+<tr><td style="width: 25%;"><a href="base-package.html">base</a></td>
+<td>The R Base Package</td></tr>
+<tr><td style="width: 25%;"><a href="environment.html">baseenv</a></td>
+<td>Environment Access</td></tr>
+<tr><td style="width: 25%;"><a href="basename.html">basename</a></td>
+<td>Manipulate File Paths</td></tr>
+<tr><td style="width: 25%;"><a href="Bessel.html">Bessel</a></td>
+<td>Bessel Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Bessel.html">bessel</a></td>
+<td>Bessel Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Bessel.html">besselI</a></td>
+<td>Bessel Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Bessel.html">besselJ</a></td>
+<td>Bessel Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Bessel.html">besselK</a></td>
+<td>Bessel Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Bessel.html">besselY</a></td>
+<td>Bessel Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Special.html">beta</a></td>
+<td>Special Functions of Mathematics</td></tr>
+<tr><td style="width: 25%;"><a href="bindenv.html">bindenv</a></td>
+<td>Binding and Environment Locking, Active Bindings</td></tr>
+<tr><td style="width: 25%;"><a href="bindenv.html">bindingIsActive</a></td>
+<td>Binding and Environment Locking, Active Bindings</td></tr>
+<tr><td style="width: 25%;"><a href="bindenv.html">bindingIsLocked</a></td>
+<td>Binding and Environment Locking, Active Bindings</td></tr>
+<tr><td style="width: 25%;"><a href="gettext.html">bindtextdomain</a></td>
+<td>Translate Text Messages</td></tr>
+<tr><td style="width: 25%;"><a href="bitwise.html">bitwAnd</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td style="width: 25%;"><a href="bitwise.html">bitwNot</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td style="width: 25%;"><a href="bitwise.html">bitwOr</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td style="width: 25%;"><a href="bitwise.html">bitwShiftL</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td style="width: 25%;"><a href="bitwise.html">bitwShiftR</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td style="width: 25%;"><a href="bitwise.html">bitwXor</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td style="width: 25%;"><a href="body.html">body</a></td>
+<td>Access to and Manipulation of the Body of a Function</td></tr>
+<tr><td style="width: 25%;"><a href="bquote.html">bquote</a></td>
+<td>Partial substitution in expressions</td></tr>
+<tr><td style="width: 25%;"><a href="Control.html">break</a></td>
+<td>Control Flow</td></tr>
+<tr><td style="width: 25%;"><a href="browser.html">browser</a></td>
+<td>Environment Browser</td></tr>
+<tr><td style="width: 25%;"><a href="browserText.html">browserCondition</a></td>
+<td>Functions to Retrieve Values Supplied by Calls to the Browser</td></tr>
+<tr><td style="width: 25%;"><a href="browserText.html">browserSetDebug</a></td>
+<td>Functions to Retrieve Values Supplied by Calls to the Browser</td></tr>
+<tr><td style="width: 25%;"><a href="browserText.html">browserText</a></td>
+<td>Functions to Retrieve Values Supplied by Calls to the Browser</td></tr>
+<tr><td style="width: 25%;"><a href="builtins.html">builtins</a></td>
+<td>Returns the Names of All Built-in Objects</td></tr>
+<tr><td style="width: 25%;"><a href="by.html">by</a></td>
+<td>Apply a Function to a Data Frame Split by Factors</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">bzfile</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="c.html">c</a></td>
+<td>Combine Values into a Vector or List</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">c.Date</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">c.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="noquote.html">c.noquote</a></td>
+<td>Class for 'no quote' Printing of Character Strings</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">c.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">c.POSIXct</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="warnings.html">c.warnings</a></td>
+<td>Print Warning Messages</td></tr>
+<tr><td style="width: 25%;"><a href="call.html">call</a></td>
+<td>Function Calls</td></tr>
+<tr><td style="width: 25%;"><a href="callCC.html">callCC</a></td>
+<td>Call With Current Continuation</td></tr>
+<tr><td style="width: 25%;"><a href="capabilities.html">capabilities</a></td>
+<td>Report Capabilities of this Build of R</td></tr>
+<tr><td style="width: 25%;"><a href="chartr.html">casefold</a></td>
+<td>Character Translation and Casefolding</td></tr>
+<tr><td style="width: 25%;"><a href="cat.html">cat</a></td>
+<td>Concatenate and Print</td></tr>
+<tr><td style="width: 25%;"><a href="cbind.html">cbind</a></td>
+<td>Combine R Objects by Rows or Columns</td></tr>
+<tr><td style="width: 25%;"><a href="cbind.html">cbind.data.frame</a></td>
+<td>Combine R Objects by Rows or Columns</td></tr>
+<tr><td style="width: 25%;"><a href="Round.html">ceiling</a></td>
+<td>Rounding of Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="char.expand.html">char.expand</a></td>
+<td>Expand a String with Respect to a Target Table</td></tr>
+<tr><td style="width: 25%;"><a href="character.html">character</a></td>
+<td>Character Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="charmatch.html">charmatch</a></td>
+<td>Partial String Matching</td></tr>
+<tr><td style="width: 25%;"><a href="rawConversion.html">charToRaw</a></td>
+<td>Convert to or from Raw Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="chartr.html">chartr</a></td>
+<td>Character Translation and Casefolding</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">check_tzones</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="chkDots.html">chkDots</a></td>
+<td>Warn About Extraneous Arguments in the "..." of Its Caller</td></tr>
+<tr><td style="width: 25%;"><a href="chol.html">chol</a></td>
+<td>The Choleski Decomposition</td></tr>
+<tr><td style="width: 25%;"><a href="chol2inv.html">chol2inv</a></td>
+<td>Inverse from Choleski (or QR) Decomposition</td></tr>
+<tr><td style="width: 25%;"><a href="Special.html">choose</a></td>
+<td>Special Functions of Mathematics</td></tr>
+<tr><td style="width: 25%;"><a href="class.html">class</a></td>
+<td>Object Classes</td></tr>
+<tr><td style="width: 25%;"><a href="pushBack.html">clearPushBack</a></td>
+<td>Push Text Back on to a Connection</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">clipboard</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">close</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">close.srcfile</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">close.srcfilealias</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="showConnections.html">closeAllConnections</a></td>
+<td>Display Connections</td></tr>
+<tr><td style="width: 25%;"><a href="function.html">closure</a></td>
+<td>Function Definition</td></tr>
+<tr><td style="width: 25%;"><a href="utf8Conversion.html">code point</a></td>
+<td>Convert Integer Vectors to or from UTF-8-encoded Character Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="col.html">col</a></td>
+<td>Column Indexes</td></tr>
+<tr><td style="width: 25%;"><a href="Comparison.html">collation</a></td>
+<td>Relational Operators</td></tr>
+<tr><td style="width: 25%;"><a href="colSums.html">colMeans</a></td>
+<td>Form Row and Column Sums and Means</td></tr>
+<tr><td style="width: 25%;"><a href="colnames.html">colnames</a></td>
+<td>Row and Column Names</td></tr>
+<tr><td style="width: 25%;"><a href="Colon.html">colon</a></td>
+<td>Colon Operator</td></tr>
+<tr><td style="width: 25%;"><a href="colSums.html">colSums</a></td>
+<td>Form Row and Column Sums and Means</td></tr>
+<tr><td style="width: 25%;"><a href="commandArgs.html">commandArgs</a></td>
+<td>Extract Command Line Arguments</td></tr>
+<tr><td style="width: 25%;"><a href="comment.html">comment</a></td>
+<td>Query or Set a '"comment"' Attribute</td></tr>
+<tr><td style="width: 25%;"><a href="Comparison.html">Comparison</a></td>
+<td>Relational Operators</td></tr>
+<tr><td style="width: 25%;"><a href="groupGeneric.html">Complex</a></td>
+<td>S3 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="complex.html">complex</a></td>
+<td>Complex Numbers and Basic Functionality</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">computeRestarts</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">condition</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">conditionCall</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">conditionCall.condition</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">conditionMessage</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">conditionMessage.condition</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">conditions</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="conflicts.html">conflicts</a></td>
+<td>Search for Masked Objects on the Search Path</td></tr>
+<tr><td style="width: 25%;"><a href="complex.html">Conj</a></td>
+<td>Complex Numbers and Basic Functionality</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">connection</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">connections</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="Constants.html">Constants</a></td>
+<td>Built-in Constants</td></tr>
+<tr><td style="width: 25%;"><a href="contributors.html">contributors</a></td>
+<td>R Project Contributors</td></tr>
+<tr><td style="width: 25%;"><a href="Control.html">Control</a></td>
+<td>Control Flow</td></tr>
+<tr><td style="width: 25%;"><a href="copyright.html">copyright</a></td>
+<td>Copyrights of Files Used to Build R</td></tr>
+<tr><td style="width: 25%;"><a href="copyright.html">copyrights</a></td>
+<td>Copyrights of Files Used to Build R</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">cos</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Hyperbolic.html">cosh</a></td>
+<td>Hyperbolic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">cospi</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="crossprod.html">crossprod</a></td>
+<td>Matrix Crossproduct</td></tr>
+<tr><td style="width: 25%;"><a href="Cstack_info.html">Cstack_info</a></td>
+<td>Report Information on C Stack Size and Usage</td></tr>
+<tr><td style="width: 25%;"><a href="cumsum.html">cummax</a></td>
+<td>Cumulative Sums, Products, and Extremes</td></tr>
+<tr><td style="width: 25%;"><a href="cumsum.html">cummin</a></td>
+<td>Cumulative Sums, Products, and Extremes</td></tr>
+<tr><td style="width: 25%;"><a href="cumsum.html">cumprod</a></td>
+<td>Cumulative Sums, Products, and Extremes</td></tr>
+<tr><td style="width: 25%;"><a href="cumsum.html">cumsum</a></td>
+<td>Cumulative Sums, Products, and Extremes</td></tr>
+<tr><td style="width: 25%;"><a href="curlGetHeaders.html">curlGetHeaders</a></td>
+<td>Retrieve Headers from URLs</td></tr>
+<tr><td style="width: 25%;"><a href="cut.html">cut</a></td>
+<td>Convert Numeric to Factor</td></tr>
+<tr><td style="width: 25%;"><a href="cut.POSIXt.html">cut.POSIXt</a></td>
+<td>Convert a Date or Date-Time Object to a Factor</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="data.class.html">data.class</a></td>
+<td>Object Classes</td></tr>
+<tr><td style="width: 25%;"><a href="data.frame.html">data.frame</a></td>
+<td>Data Frames</td></tr>
+<tr><td style="width: 25%;"><a href="data.matrix.html">data.matrix</a></td>
+<td>Convert a Data Frame to a Numeric Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">Date</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="date.html">date</a></td>
+<td>System Date and Time</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">date-time</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">Dates</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">DateTimeClasses</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="debug.html">debug</a></td>
+<td>Debug a Function</td></tr>
+<tr><td style="width: 25%;"><a href="debug.html">debuggingState</a></td>
+<td>Debug a Function</td></tr>
+<tr><td style="width: 25%;"><a href="debug.html">debugonce</a></td>
+<td>Debug a Function</td></tr>
+<tr><td style="width: 25%;"><a href="data.frame.html">default.stringsAsFactors</a></td>
+<td>Data Frames</td></tr>
+<tr><td style="width: 25%;"><a href="Defunct.html">Defunct</a></td>
+<td>Marking Objects as Defunct</td></tr>
+<tr><td style="width: 25%;"><a href="Defunct.html">defunct</a></td>
+<td>Marking Objects as Defunct</td></tr>
+<tr><td style="width: 25%;"><a href="delayedAssign.html">delayedAssign</a></td>
+<td>Delay Evaluation</td></tr>
+<tr><td style="width: 25%;"><a href="deparse.html">deparse</a></td>
+<td>Expression Deparsing</td></tr>
+<tr><td style="width: 25%;"><a href="Deprecated.html">Deprecated</a></td>
+<td>Marking Objects as Deprecated</td></tr>
+<tr><td style="width: 25%;"><a href="Deprecated.html">deprecated</a></td>
+<td>Marking Objects as Deprecated</td></tr>
+<tr><td style="width: 25%;"><a href="det.html">det</a></td>
+<td>Calculate the Determinant of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="detach.html">detach</a></td>
+<td>Detach Objects from the Search Path</td></tr>
+<tr><td style="width: 25%;"><a href="det.html">determinant</a></td>
+<td>Calculate the Determinant of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="dput.html">dget</a></td>
+<td>Write an Object to a File or Recreate it</td></tr>
+<tr><td style="width: 25%;"><a href="diag.html">diag</a></td>
+<td>Matrix Diagonals</td></tr>
+<tr><td style="width: 25%;"><a href="diff.html">diff</a></td>
+<td>Lagged Differences</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">diff.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="Special.html">digamma</a></td>
+<td>Special Functions of Mathematics</td></tr>
+<tr><td style="width: 25%;"><a href="dim.html">dim</a></td>
+<td>Dimensions of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="dimnames.html">dimnames</a></td>
+<td>Dimnames of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="list.files.html">dir</a></td>
+<td>List the Files in a Directory/Folder</td></tr>
+<tr><td style="width: 25%;"><a href="files2.html">dir.create</a></td>
+<td>Manipulaton of Directories and File Permissions</td></tr>
+<tr><td style="width: 25%;"><a href="basename.html">dirname</a></td>
+<td>Manipulate File Paths</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">DISPLAY</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="getLoadedDLLs.html">DLLInfo</a></td>
+<td>Get DLLs Loaded in Current Session</td></tr>
+<tr><td style="width: 25%;"><a href="getLoadedDLLs.html">DLLInfoList</a></td>
+<td>Get DLLs Loaded in Current Session</td></tr>
+<tr><td style="width: 25%;"><a href="do.call.html">do.call</a></td>
+<td>Execute a Function Call</td></tr>
+<tr><td style="width: 25%;"><a href="dontCheck.html">dontCheck</a></td>
+<td>Identity Function to Suppress Checking</td></tr>
+<tr><td style="width: 25%;"><a href="double.html">double</a></td>
+<td>Double-Precision Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="dput.html">dput</a></td>
+<td>Write an Object to a File or Recreate it</td></tr>
+<tr><td style="width: 25%;"><a href="sQuote.html">dQuote</a></td>
+<td>Quote Text</td></tr>
+<tr><td style="width: 25%;"><a href="drop.html">drop</a></td>
+<td>Drop Redundant Extent Information</td></tr>
+<tr><td style="width: 25%;"><a href="droplevels.html">droplevels</a></td>
+<td>droplevels</td></tr>
+<tr><td style="width: 25%;"><a href="dump.html">dump</a></td>
+<td>Text Representations of R Objects</td></tr>
+<tr><td style="width: 25%;"><a href="duplicated.html">duplicated</a></td>
+<td>Determine Duplicate Elements</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">duplicated.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">duplicated.POSIXlt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="warnings.html">duplicated.warnings</a></td>
+<td>Print Warning Messages</td></tr>
+<tr><td style="width: 25%;"><a href="dynload.html">dyn.load</a></td>
+<td>Foreign Function Interface</td></tr>
+<tr><td style="width: 25%;"><a href="dynload.html">dyn.unload</a></td>
+<td>Foreign Function Interface</td></tr>
+<tr><td style="width: 25%;"><a href="get.html">dynGet</a></td>
+<td>Return the Value of a Named Object</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="eapply.html">eapply</a></td>
+<td>Apply a Function Over Values in an Environment</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">EDITOR</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="eigen.html">eigen</a></td>
+<td>Spectral Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="Control.html">else</a></td>
+<td>Control Flow</td></tr>
+<tr><td style="width: 25%;"><a href="environment.html">emptyenv</a></td>
+<td>Environment Access</td></tr>
+<tr><td style="width: 25%;"><a href="Encoding.html">enc2native</a></td>
+<td>Read or Set the Declared Encodings for a Character Vector</td></tr>
+<tr><td style="width: 25%;"><a href="Encoding.html">enc2utf8</a></td>
+<td>Read or Set the Declared Encodings for a Character Vector</td></tr>
+<tr><td style="width: 25%;"><a href="environment.html">enclosure</a></td>
+<td>Environment Access</td></tr>
+<tr><td style="width: 25%;"><a href="encodeString.html">encodeString</a></td>
+<td>Encode Character Vector as for Printing</td></tr>
+<tr><td style="width: 25%;"><a href="Encoding.html">Encoding</a></td>
+<td>Read or Set the Declared Encodings for a Character Vector</td></tr>
+<tr><td style="width: 25%;"><a href="startsWith.html">endsWith</a></td>
+<td>Does String Start or End With Another String?</td></tr>
+<tr><td style="width: 25%;"><a href="substitute.html">enquote</a></td>
+<td>Substituting and Quoting Expressions</td></tr>
+<tr><td style="width: 25%;"><a href="environment.html">env.profile</a></td>
+<td>Environment Access</td></tr>
+<tr><td style="width: 25%;"><a href="environment.html">environment</a></td>
+<td>Environment Access</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">environment variables</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="bindenv.html">environmentIsLocked</a></td>
+<td>Binding and Environment Locking, Active Bindings</td></tr>
+<tr><td style="width: 25%;"><a href="environment.html">environmentName</a></td>
+<td>Environment Access</td></tr>
+<tr><td style="width: 25%;"><a href="eval.html">eval</a></td>
+<td>Evaluate an (Unevaluated) Expression</td></tr>
+<tr><td style="width: 25%;"><a href="eval.html">eval.parent</a></td>
+<td>Evaluate an (Unevaluated) Expression</td></tr>
+<tr><td style="width: 25%;"><a href="eval.html">evalq</a></td>
+<td>Evaluate an (Unevaluated) Expression</td></tr>
+<tr><td style="width: 25%;"><a href="exists.html">exists</a></td>
+<td>Is an Object Defined?</td></tr>
+<tr><td style="width: 25%;"><a href="Log.html">exp</a></td>
+<td>Logarithms and Exponentials</td></tr>
+<tr><td style="width: 25%;"><a href="expand.grid.html">expand.grid</a></td>
+<td>Create a Data Frame from All Combinations of Factor Variables</td></tr>
+<tr><td style="width: 25%;"><a href="Log.html">expm1</a></td>
+<td>Logarithms and Exponentials</td></tr>
+<tr><td style="width: 25%;"><a href="expression.html">expression</a></td>
+<td>Unevaluated Expressions</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.html">Extract</a></td>
+<td>Extract or Replace Parts of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="extSoftVersion.html">extSoftVersion</a></td>
+<td>Report Versions of Third-Party Software</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="logical.html">F</a></td>
+<td>Logical Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="factor.html">factor</a></td>
+<td>Factors</td></tr>
+<tr><td style="width: 25%;"><a href="Special.html">factorial</a></td>
+<td>Special Functions of Mathematics</td></tr>
+<tr><td style="width: 25%;"><a href="logical.html">FALSE</a></td>
+<td>Logical Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">fifo</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">file</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="file.access.html">file.access</a></td>
+<td>Ascertain File Accessibility</td></tr>
+<tr><td style="width: 25%;"><a href="files.html">file.append</a></td>
+<td>File Manipulation</td></tr>
+<tr><td style="width: 25%;"><a href="file.choose.html">file.choose</a></td>
+<td>Choose a File Interactively</td></tr>
+<tr><td style="width: 25%;"><a href="files.html">file.copy</a></td>
+<td>File Manipulation</td></tr>
+<tr><td style="width: 25%;"><a href="files.html">file.create</a></td>
+<td>File Manipulation</td></tr>
+<tr><td style="width: 25%;"><a href="files.html">file.exists</a></td>
+<td>File Manipulation</td></tr>
+<tr><td style="width: 25%;"><a href="file.info.html">file.info</a></td>
+<td>Extract File Information</td></tr>
+<tr><td style="width: 25%;"><a href="files.html">file.link</a></td>
+<td>File Manipulation</td></tr>
+<tr><td style="width: 25%;"><a href="file.info.html">file.mode</a></td>
+<td>Extract File Information</td></tr>
+<tr><td style="width: 25%;"><a href="file.info.html">file.mtime</a></td>
+<td>Extract File Information</td></tr>
+<tr><td style="width: 25%;"><a href="file.path.html">file.path</a></td>
+<td>Construct Path to File</td></tr>
+<tr><td style="width: 25%;"><a href="files.html">file.remove</a></td>
+<td>File Manipulation</td></tr>
+<tr><td style="width: 25%;"><a href="files.html">file.rename</a></td>
+<td>File Manipulation</td></tr>
+<tr><td style="width: 25%;"><a href="file.show.html">file.show</a></td>
+<td>Display One or More Text Files</td></tr>
+<tr><td style="width: 25%;"><a href="file.info.html">file.size</a></td>
+<td>Extract File Information</td></tr>
+<tr><td style="width: 25%;"><a href="files.html">file.symlink</a></td>
+<td>File Manipulation</td></tr>
+<tr><td style="width: 25%;"><a href="files.html">files</a></td>
+<td>File Manipulation</td></tr>
+<tr><td style="width: 25%;"><a href="funprog.html">Filter</a></td>
+<td>Common Higher-Order Functions in Functional Programming Languages</td></tr>
+<tr><td style="width: 25%;"><a href="reg.finalizer.html">finalizer</a></td>
+<td>Finalization of Objects</td></tr>
+<tr><td style="width: 25%;"><a href="funprog.html">Find</a></td>
+<td>Common Higher-Order Functions in Functional Programming Languages</td></tr>
+<tr><td style="width: 25%;"><a href="find.package.html">find.package</a></td>
+<td>Find Packages</td></tr>
+<tr><td style="width: 25%;"><a href="findInterval.html">findInterval</a></td>
+<td>Find Interval Numbers or Indices</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">findRestart</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="is.finite.html">finite</a></td>
+<td>Finite, Infinite and NaN Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="Round.html">floor</a></td>
+<td>Rounding of Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">flush</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="Control.html">for</a></td>
+<td>Control Flow</td></tr>
+<tr><td style="width: 25%;"><a href="force.html">force</a></td>
+<td>Force Evaluation of an Argument</td></tr>
+<tr><td style="width: 25%;"><a href="forceAndCall.html">forceAndCall</a></td>
+<td>Call a function with Some Arguments Forced</td></tr>
+<tr><td style="width: 25%;"><a href="Foreign.html">Foreign</a></td>
+<td>Foreign Function Interface</td></tr>
+<tr><td style="width: 25%;"><a href="formals.html">formals</a></td>
+<td>Access to and Manipulation of the Formal Arguments</td></tr>
+<tr><td style="width: 25%;"><a href="format.html">format</a></td>
+<td>Encode in a Common Format</td></tr>
+<tr><td style="width: 25%;"><a href="as.Date.html">format.Date</a></td>
+<td>Date Conversion Functions to and from Character</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">format.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="hexmode.html">format.hexmode</a></td>
+<td>Display Numbers in Hexadecimal</td></tr>
+<tr><td style="width: 25%;"><a href="format.info.html">format.info</a></td>
+<td>format(.) Information</td></tr>
+<tr><td style="width: 25%;"><a href="library.html">format.libraryIQR</a></td>
+<td>Loading/Attaching and Listing of Packages</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">format.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="octmode.html">format.octmode</a></td>
+<td>Display Numbers in Octal</td></tr>
+<tr><td style="width: 25%;"><a href="library.html">format.packageInfo</a></td>
+<td>Loading/Attaching and Listing of Packages</td></tr>
+<tr><td style="width: 25%;"><a href="strptime.html">format.POSIXct</a></td>
+<td>Date-time Conversion Functions to and from Character</td></tr>
+<tr><td style="width: 25%;"><a href="format.pval.html">format.pval</a></td>
+<td>Format P Values</td></tr>
+<tr><td style="width: 25%;"><a href="summary.html">format.summaryDefault</a></td>
+<td>Object Summaries</td></tr>
+<tr><td style="width: 25%;"><a href="formatc.html">formatC</a></td>
+<td>Formatting Using C-style Formats</td></tr>
+<tr><td style="width: 25%;"><a href="formatDL.html">formatDL</a></td>
+<td>Format Description Lists</td></tr>
+<tr><td style="width: 25%;"><a href="backsolve.html">forwardsolve</a></td>
+<td>Solve an Upper or Lower Triangular System</td></tr>
+<tr><td style="width: 25%;"><a href="function.html">function</a></td>
+<td>Function Definition</td></tr>
+<tr><td style="width: 25%;"><a href="agrep.html">fuzzy matching</a></td>
+<td>Approximate String Matching (Fuzzy Matching)</td></tr>
+</table>
+
+<h2><a name="G">-- G --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Special.html">gamma</a></td>
+<td>Special Functions of Mathematics</td></tr>
+<tr><td style="width: 25%;"><a href="gc.html">gc</a></td>
+<td>Garbage Collection</td></tr>
+<tr><td style="width: 25%;"><a href="gc.time.html">gc.time</a></td>
+<td>Report Time Spent in Garbage Collection</td></tr>
+<tr><td style="width: 25%;"><a href="gc.html">gcinfo</a></td>
+<td>Garbage Collection</td></tr>
+<tr><td style="width: 25%;"><a href="gctorture.html">gctorture</a></td>
+<td>Torture Garbage Collector</td></tr>
+<tr><td style="width: 25%;"><a href="gctorture.html">gctorture2</a></td>
+<td>Torture Garbage Collector</td></tr>
+<tr><td style="width: 25%;"><a href="get.html">get</a></td>
+<td>Return the Value of a Named Object</td></tr>
+<tr><td style="width: 25%;"><a href="exists.html">get0</a></td>
+<td>Is an Object Defined?</td></tr>
+<tr><td style="width: 25%;"><a href="showConnections.html">getAllConnections</a></td>
+<td>Display Connections</td></tr>
+<tr><td style="width: 25%;"><a href="showConnections.html">getConnection</a></td>
+<td>Display Connections</td></tr>
+<tr><td style="width: 25%;"><a href="getDLLRegisteredRoutines.html">getDLLRegisteredRoutines</a></td>
+<td>Reflectance Information for C/Fortran routines in a DLL</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.html">getElement</a></td>
+<td>Extract or Replace Parts of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="stop.html">geterrmessage</a></td>
+<td>Stop Function Execution</td></tr>
+<tr><td style="width: 25%;"><a href="userhooks.html">getHook</a></td>
+<td>Functions to Get and Set Hooks for Load, Attach, Detach and Unload</td></tr>
+<tr><td style="width: 25%;"><a href="getLoadedDLLs.html">getLoadedDLLs</a></td>
+<td>Get DLLs Loaded in Current Session</td></tr>
+<tr><td style="width: 25%;"><a href="getNativeSymbolInfo.html">getNativeSymbolInfo</a></td>
+<td>Obtain a Description of one or more Native (C/Fortran) Symbols</td></tr>
+<tr><td style="width: 25%;"><a href="options.html">getOption</a></td>
+<td>Options Settings</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">getRversion</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">getSrcLines</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="taskCallbackNames.html">getTaskCallbackNames</a></td>
+<td>Query the Names of the Current Internal Top-Level Task Callbacks</td></tr>
+<tr><td style="width: 25%;"><a href="gettext.html">gettext</a></td>
+<td>Translate Text Messages</td></tr>
+<tr><td style="width: 25%;"><a href="sprintf.html">gettextf</a></td>
+<td>Use C-style String Formatting Commands</td></tr>
+<tr><td style="width: 25%;"><a href="getwd.html">getwd</a></td>
+<td>Get or Set Working Directory</td></tr>
+<tr><td style="width: 25%;"><a href="gl.html">gl</a></td>
+<td>Generate Factor Levels</td></tr>
+<tr><td style="width: 25%;"><a href="environment.html">globalenv</a></td>
+<td>Environment Access</td></tr>
+<tr><td style="width: 25%;"><a href="grep.html">gregexpr</a></td>
+<td>Pattern Matching and Replacement</td></tr>
+<tr><td style="width: 25%;"><a href="grep.html">grep</a></td>
+<td>Pattern Matching and Replacement</td></tr>
+<tr><td style="width: 25%;"><a href="grep.html">grepl</a></td>
+<td>Pattern Matching and Replacement</td></tr>
+<tr><td style="width: 25%;"><a href="grepRaw.html">grepRaw</a></td>
+<td>Pattern Matching for Raw Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="groupGeneric.html">group generic</a></td>
+<td>S3 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="groupGeneric.html">groupGeneric</a></td>
+<td>S3 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="grouping.html">grouping</a></td>
+<td>Grouping Permutation</td></tr>
+<tr><td style="width: 25%;"><a href="grep.html">gsub</a></td>
+<td>Pattern Matching and Replacement</td></tr>
+<tr><td style="width: 25%;"><a href="gzcon.html">gzcon</a></td>
+<td>(De)compress I/O Through Connections</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">gzfile</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+</table>
+
+<h2><a name="H">-- H --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="hexmode.html">hexmode</a></td>
+<td>Display Numbers in Hexadecimal</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">HOME</a></td>
+<td>Environment Variables</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="AsIs.html">I</a></td>
+<td>Inhibit Interpretation/Conversion of Objects</td></tr>
+<tr><td style="width: 25%;"><a href="iconv.html">iconv</a></td>
+<td>Convert Character Vector between Encodings</td></tr>
+<tr><td style="width: 25%;"><a href="iconv.html">iconvlist</a></td>
+<td>Convert Character Vector between Encodings</td></tr>
+<tr><td style="width: 25%;"><a href="icuSetCollate.html">icuGetCollate</a></td>
+<td>Setup Collation by ICU</td></tr>
+<tr><td style="width: 25%;"><a href="icuSetCollate.html">icuSetCollate</a></td>
+<td>Setup Collation by ICU</td></tr>
+<tr><td style="width: 25%;"><a href="identical.html">identical</a></td>
+<td>Test Objects for Exact Equality</td></tr>
+<tr><td style="width: 25%;"><a href="identity.html">identity</a></td>
+<td>Identity Function</td></tr>
+<tr><td style="width: 25%;"><a href="Control.html">if</a></td>
+<td>Control Flow</td></tr>
+<tr><td style="width: 25%;"><a href="ifelse.html">ifelse</a></td>
+<td>Conditional Element Selection</td></tr>
+<tr><td style="width: 25%;"><a href="complex.html">Im</a></td>
+<td>Complex Numbers and Basic Functionality</td></tr>
+<tr><td style="width: 25%;"><a href="Control.html">in</a></td>
+<td>Control Flow</td></tr>
+<tr><td style="width: 25%;"><a href="is.finite.html">Inf</a></td>
+<td>Finite, Infinite and NaN Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="is.finite.html">infinite</a></td>
+<td>Finite, Infinite and NaN Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="class.html">inherits</a></td>
+<td>Object Classes</td></tr>
+<tr><td style="width: 25%;"><a href="integer.html">integer</a></td>
+<td>Integer Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="interaction.html">interaction</a></td>
+<td>Compute Factor Interactions</td></tr>
+<tr><td style="width: 25%;"><a href="interactive.html">interactive</a></td>
+<td>Is R Running Interactively?</td></tr>
+<tr><td style="width: 25%;"><a href="InternalMethods.html">internal generic</a></td>
+<td>Internal Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="InternalMethods.html">InternalGenerics</a></td>
+<td>Internal Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="InternalMethods.html">InternalMethods</a></td>
+<td>Internal Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="sets.html">intersect</a></td>
+<td>Set Operations</td></tr>
+<tr><td style="width: 25%;"><a href="sets.html">intersection</a></td>
+<td>Set Operations</td></tr>
+<tr><td style="width: 25%;"><a href="rawConversion.html">intToBits</a></td>
+<td>Convert to or from Raw Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="utf8Conversion.html">intToUtf8</a></td>
+<td>Convert Integer Vectors to or from UTF-8-encoded Character Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="rle.html">inverse.rle</a></td>
+<td>Run Length Encoding</td></tr>
+<tr><td style="width: 25%;"><a href="invisible.html">invisible</a></td>
+<td>Change the Print Mode to Invisible</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">invokeRestart</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">invokeRestartInteractively</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="array.html">is.array</a></td>
+<td>Multi-way Arrays</td></tr>
+<tr><td style="width: 25%;"><a href="is.recursive.html">is.atomic</a></td>
+<td>Is an Object Atomic or Recursive?</td></tr>
+<tr><td style="width: 25%;"><a href="call.html">is.call</a></td>
+<td>Function Calls</td></tr>
+<tr><td style="width: 25%;"><a href="character.html">is.character</a></td>
+<td>Character Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="complex.html">is.complex</a></td>
+<td>Complex Numbers and Basic Functionality</td></tr>
+<tr><td style="width: 25%;"><a href="as.data.frame.html">is.data.frame</a></td>
+<td>Coerce to a Data Frame</td></tr>
+<tr><td style="width: 25%;"><a href="double.html">is.double</a></td>
+<td>Double-Precision Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="sets.html">is.element</a></td>
+<td>Set Operations</td></tr>
+<tr><td style="width: 25%;"><a href="environment.html">is.environment</a></td>
+<td>Environment Access</td></tr>
+<tr><td style="width: 25%;"><a href="expression.html">is.expression</a></td>
+<td>Unevaluated Expressions</td></tr>
+<tr><td style="width: 25%;"><a href="factor.html">is.factor</a></td>
+<td>Factors</td></tr>
+<tr><td style="width: 25%;"><a href="is.finite.html">is.finite</a></td>
+<td>Finite, Infinite and NaN Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="is.function.html">is.function</a></td>
+<td>Is an Object of Type (Primitive) Function?</td></tr>
+<tr><td style="width: 25%;"><a href="is.finite.html">is.infinite</a></td>
+<td>Finite, Infinite and NaN Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="integer.html">is.integer</a></td>
+<td>Integer Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="is.language.html">is.language</a></td>
+<td>Is an Object a Language Object?</td></tr>
+<tr><td style="width: 25%;"><a href="list.html">is.list</a></td>
+<td>Lists - Generic and Dotted Pairs</td></tr>
+<tr><td style="width: 25%;"><a href="dynload.html">is.loaded</a></td>
+<td>Foreign Function Interface</td></tr>
+<tr><td style="width: 25%;"><a href="logical.html">is.logical</a></td>
+<td>Logical Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="matrix.html">is.matrix</a></td>
+<td>Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="NA.html">is.na</a></td>
+<td>'Not Available' / Missing Values</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">is.na.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">is.na.POSIXlt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="name.html">is.name</a></td>
+<td>Names and Symbols</td></tr>
+<tr><td style="width: 25%;"><a href="is.finite.html">is.nan</a></td>
+<td>Finite, Infinite and NaN Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="NULL.html">is.null</a></td>
+<td>The Null Object</td></tr>
+<tr><td style="width: 25%;"><a href="numeric.html">is.numeric</a></td>
+<td>Numeric Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">is.numeric.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">is.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="is.object.html">is.object</a></td>
+<td>Is an Object 'internally classed'?</td></tr>
+<tr><td style="width: 25%;"><a href="factor.html">is.ordered</a></td>
+<td>Factors</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">is.package_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="list.html">is.pairlist</a></td>
+<td>Lists - Generic and Dotted Pairs</td></tr>
+<tr><td style="width: 25%;"><a href="is.function.html">is.primitive</a></td>
+<td>Is an Object of Type (Primitive) Function?</td></tr>
+<tr><td style="width: 25%;"><a href="qr.html">is.qr</a></td>
+<td>The QR Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="isR.html">is.R</a></td>
+<td>Are we using R, rather than S?</td></tr>
+<tr><td style="width: 25%;"><a href="raw.html">is.raw</a></td>
+<td>Raw Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="is.recursive.html">is.recursive</a></td>
+<td>Is an Object Atomic or Recursive?</td></tr>
+<tr><td style="width: 25%;"><a href="is.single.html">is.single</a></td>
+<td>Is an Object of Single Precision Type?</td></tr>
+<tr><td style="width: 25%;"><a href="name.html">is.symbol</a></td>
+<td>Names and Symbols</td></tr>
+<tr><td style="width: 25%;"><a href="table.html">is.table</a></td>
+<td>Cross Tabulation and Table Creation</td></tr>
+<tr><td style="width: 25%;"><a href="is.unsorted.html">is.unsorted</a></td>
+<td>Test if an Object is Not Sorted</td></tr>
+<tr><td style="width: 25%;"><a href="vector.html">is.vector</a></td>
+<td>Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="showConnections.html">isatty</a></td>
+<td>Display Connections</td></tr>
+<tr><td style="width: 25%;"><a href="debug.html">isdebugged</a></td>
+<td>Debug a Function</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">isIncomplete</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="ns-load.html">isNamespaceLoaded</a></td>
+<td>Loading and Unloading Name Spaces</td></tr>
+<tr><td style="width: 25%;"><a href="ISOdatetime.html">ISOdate</a></td>
+<td>Date-time Conversion Functions from Numeric Representations</td></tr>
+<tr><td style="width: 25%;"><a href="ISOdatetime.html">ISOdatetime</a></td>
+<td>Date-time Conversion Functions from Numeric Representations</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">isOpen</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">isRestart</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="isS4.html">isS4</a></td>
+<td>Test for an S4 object</td></tr>
+<tr><td style="width: 25%;"><a href="seek.html">isSeekable</a></td>
+<td>Functions to Reposition Connections</td></tr>
+<tr><td style="width: 25%;"><a href="isSymmetric.html">isSymmetric</a></td>
+<td>Test if a Matrix or other Object is Symmetric (Hermitian)</td></tr>
+<tr><td style="width: 25%;"><a href="Logic.html">isTRUE</a></td>
+<td>Logical Operators</td></tr>
+</table>
+
+<h2><a name="J">-- J --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="jitter.html">jitter</a></td>
+<td>'Jitter' (Add Noise) to Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="weekday.POSIXt.html">julian</a></td>
+<td>Extract Parts of a POSIXt or Date Object</td></tr>
+</table>
+
+<h2><a name="K">-- K --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="kappa.html">kappa</a></td>
+<td>Compute or Estimate the Condition Number of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="kronecker.html">kronecker</a></td>
+<td>Kronecker Products on Arrays</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="l10n_info.html">l10n_info</a></td>
+<td>Localization Information</td></tr>
+<tr><td style="width: 25%;"><a href="svd.html">La.svd</a></td>
+<td>Singular Value Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="labels.html">labels</a></td>
+<td>Find Labels from Object</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">LANGUAGE</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="is.language.html">language object</a></td>
+<td>Is an Object a Language Object?</td></tr>
+<tr><td style="width: 25%;"><a href="is.language.html">language objects</a></td>
+<td>Is an Object a Language Object?</td></tr>
+<tr><td style="width: 25%;"><a href="lapply.html">lapply</a></td>
+<td>Apply a Function over a List or Vector</td></tr>
+<tr><td style="width: 25%;"><a href="warnings.html">last.warning</a></td>
+<td>Print Warning Messages</td></tr>
+<tr><td style="width: 25%;"><a href="La_version.html">La_version</a></td>
+<td>LAPACK Version</td></tr>
+<tr><td style="width: 25%;"><a href="Special.html">lbeta</a></td>
+<td>Special Functions of Mathematics</td></tr>
+<tr><td style="width: 25%;"><a href="Special.html">lchoose</a></td>
+<td>Special Functions of Mathematics</td></tr>
+<tr><td style="width: 25%;"><a href="locales.html">LC_ALL</a></td>
+<td>Query or Set Aspects of the Locale</td></tr>
+<tr><td style="width: 25%;"><a href="locales.html">LC_COLLATE</a></td>
+<td>Query or Set Aspects of the Locale</td></tr>
+<tr><td style="width: 25%;"><a href="locales.html">LC_CTYPE</a></td>
+<td>Query or Set Aspects of the Locale</td></tr>
+<tr><td style="width: 25%;"><a href="locales.html">LC_MEASUREMENT</a></td>
+<td>Query or Set Aspects of the Locale</td></tr>
+<tr><td style="width: 25%;"><a href="locales.html">LC_MESSAGES</a></td>
+<td>Query or Set Aspects of the Locale</td></tr>
+<tr><td style="width: 25%;"><a href="locales.html">LC_MONETARY</a></td>
+<td>Query or Set Aspects of the Locale</td></tr>
+<tr><td style="width: 25%;"><a href="locales.html">LC_NUMERIC</a></td>
+<td>Query or Set Aspects of the Locale</td></tr>
+<tr><td style="width: 25%;"><a href="locales.html">LC_PAPER</a></td>
+<td>Query or Set Aspects of the Locale</td></tr>
+<tr><td style="width: 25%;"><a href="locales.html">LC_TIME</a></td>
+<td>Query or Set Aspects of the Locale</td></tr>
+<tr><td style="width: 25%;"><a href="length.html">length</a></td>
+<td>Length of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">length.POSIXlt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="lengths.html">lengths</a></td>
+<td>Lengths of List or Vector Elements</td></tr>
+<tr><td style="width: 25%;"><a href="Constants.html">LETTERS</a></td>
+<td>Built-in Constants</td></tr>
+<tr><td style="width: 25%;"><a href="Constants.html">letters</a></td>
+<td>Built-in Constants</td></tr>
+<tr><td style="width: 25%;"><a href="levels.html">levels</a></td>
+<td>Levels Attributes</td></tr>
+<tr><td style="width: 25%;"><a href="Special.html">lfactorial</a></td>
+<td>Special Functions of Mathematics</td></tr>
+<tr><td style="width: 25%;"><a href="Special.html">lgamma</a></td>
+<td>Special Functions of Mathematics</td></tr>
+<tr><td style="width: 25%;"><a href="libcurlVersion.html">libcurlVersion</a></td>
+<td>Report Version of libcurl</td></tr>
+<tr><td style="width: 25%;"><a href="library.html">library</a></td>
+<td>Loading/Attaching and Listing of Packages</td></tr>
+<tr><td style="width: 25%;"><a href="library.dynam.html">library.dynam</a></td>
+<td>Loading DLLs from Packages</td></tr>
+<tr><td style="width: 25%;"><a href="library.dynam.html">library.dynam.unload</a></td>
+<td>Loading DLLs from Packages</td></tr>
+<tr><td style="width: 25%;"><a href="license.html">licence</a></td>
+<td>The R License Terms</td></tr>
+<tr><td style="width: 25%;"><a href="license.html">license</a></td>
+<td>The R License Terms</td></tr>
+<tr><td style="width: 25%;"><a href="list.html">list</a></td>
+<td>Lists - Generic and Dotted Pairs</td></tr>
+<tr><td style="width: 25%;"><a href="list.files.html">list.dirs</a></td>
+<td>List the Files in a Directory/Folder</td></tr>
+<tr><td style="width: 25%;"><a href="list.files.html">list.files</a></td>
+<td>List the Files in a Directory/Folder</td></tr>
+<tr><td style="width: 25%;"><a href="list2env.html">list2env</a></td>
+<td>From A List, Build or Add To an Environment</td></tr>
+<tr><td style="width: 25%;"><a href="load.html">load</a></td>
+<td>Reload Saved Datasets</td></tr>
+<tr><td style="width: 25%;"><a href="ns-load.html">loadedNamespaces</a></td>
+<td>Loading and Unloading Name Spaces</td></tr>
+<tr><td style="width: 25%;"><a href="ns-load.html">loadNamespace</a></td>
+<td>Loading and Unloading Name Spaces</td></tr>
+<tr><td style="width: 25%;"><a href="eval.html">local</a></td>
+<td>Evaluate an (Unevaluated) Expression</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.localeconv.html">localeconv</a></td>
+<td>Find Details of the Numerical and Monetary Representations in the Current Locale</td></tr>
+<tr><td style="width: 25%;"><a href="locales.html">locales</a></td>
+<td>Query or Set Aspects of the Locale</td></tr>
+<tr><td style="width: 25%;"><a href="bindenv.html">lockBinding</a></td>
+<td>Binding and Environment Locking, Active Bindings</td></tr>
+<tr><td style="width: 25%;"><a href="bindenv.html">lockEnvironment</a></td>
+<td>Binding and Environment Locking, Active Bindings</td></tr>
+<tr><td style="width: 25%;"><a href="Log.html">log</a></td>
+<td>Logarithms and Exponentials</td></tr>
+<tr><td style="width: 25%;"><a href="Log.html">log10</a></td>
+<td>Logarithms and Exponentials</td></tr>
+<tr><td style="width: 25%;"><a href="Log.html">log1p</a></td>
+<td>Logarithms and Exponentials</td></tr>
+<tr><td style="width: 25%;"><a href="Log.html">log2</a></td>
+<td>Logarithms and Exponentials</td></tr>
+<tr><td style="width: 25%;"><a href="Log.html">logb</a></td>
+<td>Logarithms and Exponentials</td></tr>
+<tr><td style="width: 25%;"><a href="Logic.html">Logic</a></td>
+<td>Logical Operators</td></tr>
+<tr><td style="width: 25%;"><a href="logical.html">logical</a></td>
+<td>Logical Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="LongVectors.html">long vector</a></td>
+<td>Long Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="LongVectors.html">Long vectors</a></td>
+<td>Long Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="LongVectors.html">long vectors</a></td>
+<td>Long Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="lower.tri.html">lower.tri</a></td>
+<td>Lower and Upper Triangular Part of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="ls.html">ls</a></td>
+<td>List Objects</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="make.names.html">make.names</a></td>
+<td>Make Syntactically Valid Names</td></tr>
+<tr><td style="width: 25%;"><a href="make.unique.html">make.unique</a></td>
+<td>Make Character Strings Unique</td></tr>
+<tr><td style="width: 25%;"><a href="bindenv.html">makeActiveBinding</a></td>
+<td>Binding and Environment Locking, Active Bindings</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">MAKEINDEX</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="funprog.html">Map</a></td>
+<td>Common Higher-Order Functions in Functional Programming Languages</td></tr>
+<tr><td style="width: 25%;"><a href="mapply.html">mapply</a></td>
+<td>Apply a Function to Multiple List or Vector Arguments</td></tr>
+<tr><td style="width: 25%;"><a href="margin.table.html">margin.table</a></td>
+<td>Compute table margin</td></tr>
+<tr><td style="width: 25%;"><a href="mat.or.vec.html">mat.or.vec</a></td>
+<td>Create a Matrix or a Vector</td></tr>
+<tr><td style="width: 25%;"><a href="match.html">match</a></td>
+<td>Value Matching</td></tr>
+<tr><td style="width: 25%;"><a href="match.arg.html">match.arg</a></td>
+<td>Argument Verification Using Partial Matching</td></tr>
+<tr><td style="width: 25%;"><a href="match.call.html">match.call</a></td>
+<td>Argument Matching</td></tr>
+<tr><td style="width: 25%;"><a href="match.fun.html">match.fun</a></td>
+<td>Extract a Function Specified by Name</td></tr>
+<tr><td style="width: 25%;"><a href="groupGeneric.html">Math</a></td>
+<td>S3 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">Math.Date</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">Math.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="factor.html">Math.factor</a></td>
+<td>Factors</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">Math.POSIXlt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">Math.POSIXt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="matmult.html">matmult</a></td>
+<td>Matrix Multiplication</td></tr>
+<tr><td style="width: 25%;"><a href="matrix.html">matrix</a></td>
+<td>Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="Extremes.html">max</a></td>
+<td>Maxima and Minima</td></tr>
+<tr><td style="width: 25%;"><a href="maxCol.html">max.col</a></td>
+<td>Find Maximum Position in Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="options.html">MC_CORES</a></td>
+<td>Options Settings</td></tr>
+<tr><td style="width: 25%;"><a href="mean.html">mean</a></td>
+<td>Arithmetic Mean</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">mean.Date</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">mean.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">mean.POSIXct</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="memCompress.html">memCompress</a></td>
+<td>In-memory Compression and Decompression</td></tr>
+<tr><td style="width: 25%;"><a href="memCompress.html">memDecompress</a></td>
+<td>In-memory Compression and Decompression</td></tr>
+<tr><td style="width: 25%;"><a href="Memory.html">Memory</a></td>
+<td>Memory Available for Data Storage</td></tr>
+<tr><td style="width: 25%;"><a href="Memory-limits.html">Memory-limits</a></td>
+<td>Memory Limits in R</td></tr>
+<tr><td style="width: 25%;"><a href="memory.profile.html">memory.profile</a></td>
+<td>Profile the Usage of Cons Cells</td></tr>
+<tr><td style="width: 25%;"><a href="merge.html">merge</a></td>
+<td>Merge Two Data Frames</td></tr>
+<tr><td style="width: 25%;"><a href="message.html">message</a></td>
+<td>Diagnostic Messages</td></tr>
+<tr><td style="width: 25%;"><a href="get.html">mget</a></td>
+<td>Return the Value of a Named Object</td></tr>
+<tr><td style="width: 25%;"><a href="Extremes.html">min</a></td>
+<td>Maxima and Minima</td></tr>
+<tr><td style="width: 25%;"><a href="missing.html">missing</a></td>
+<td>Does a Formal Argument have a Value?</td></tr>
+<tr><td style="width: 25%;"><a href="complex.html">Mod</a></td>
+<td>Complex Numbers and Basic Functionality</td></tr>
+<tr><td style="width: 25%;"><a href="mode.html">mode</a></td>
+<td>The (Storage) Mode of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="Constants.html">month.abb</a></td>
+<td>Built-in Constants</td></tr>
+<tr><td style="width: 25%;"><a href="weekday.POSIXt.html">months</a></td>
+<td>Extract Parts of a POSIXt or Date Object</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="NA.html">NA</a></td>
+<td>'Not Available' / Missing Values</td></tr>
+<tr><td style="width: 25%;"><a href="name.html">name</a></td>
+<td>Names and Symbols</td></tr>
+<tr><td style="width: 25%;"><a href="names.html">names</a></td>
+<td>The Names of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">names.POSIXlt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="is.finite.html">NaN</a></td>
+<td>Finite, Infinite and NaN Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="nargs.html">nargs</a></td>
+<td>The Number of Arguments to a Function</td></tr>
+<tr><td style="width: 25%;"><a href="getNativeSymbolInfo.html">NativeSymbol</a></td>
+<td>Obtain a Description of one or more Native (C/Fortran) Symbols</td></tr>
+<tr><td style="width: 25%;"><a href="getNativeSymbolInfo.html">NativeSymbolInfo</a></td>
+<td>Obtain a Description of one or more Native (C/Fortran) Symbols</td></tr>
+<tr><td style="width: 25%;"><a href="NA.html">NA_character_</a></td>
+<td>'Not Available' / Missing Values</td></tr>
+<tr><td style="width: 25%;"><a href="NA.html">NA_complex_</a></td>
+<td>'Not Available' / Missing Values</td></tr>
+<tr><td style="width: 25%;"><a href="NA.html">NA_integer_</a></td>
+<td>'Not Available' / Missing Values</td></tr>
+<tr><td style="width: 25%;"><a href="NA.html">NA_real_</a></td>
+<td>'Not Available' / Missing Values</td></tr>
+<tr><td style="width: 25%;"><a href="nchar.html">nchar</a></td>
+<td>Count the Number of Characters (or Bytes or Width)</td></tr>
+<tr><td style="width: 25%;"><a href="nrow.html">NCOL</a></td>
+<td>The Number of Rows/Columns of an Array</td></tr>
+<tr><td style="width: 25%;"><a href="nrow.html">ncol</a></td>
+<td>The Number of Rows/Columns of an Array</td></tr>
+<tr><td style="width: 25%;"><a href="funprog.html">Negate</a></td>
+<td>Common Higher-Order Functions in Functional Programming Languages</td></tr>
+<tr><td style="width: 25%;"><a href="environment.html">new.env</a></td>
+<td>Environment Access</td></tr>
+<tr><td style="width: 25%;"><a href="Control.html">next</a></td>
+<td>Control Flow</td></tr>
+<tr><td style="width: 25%;"><a href="UseMethod.html">NextMethod</a></td>
+<td>Class Methods</td></tr>
+<tr><td style="width: 25%;"><a href="gettext.html">ngettext</a></td>
+<td>Translate Text Messages</td></tr>
+<tr><td style="width: 25%;"><a href="nlevels.html">nlevels</a></td>
+<td>The Number of Levels of a Factor</td></tr>
+<tr><td style="width: 25%;"><a href="noquote.html">noquote</a></td>
+<td>Class for 'no quote' Printing of Character Strings</td></tr>
+<tr><td style="width: 25%;"><a href="norm.html">norm</a></td>
+<td>Compute the Norm of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="normalizePath.html">normalizePath</a></td>
+<td>Express File Paths in Canonical Form</td></tr>
+<tr><td style="width: 25%;"><a href="notyet.html">NotYetImplemented</a></td>
+<td>Not Yet Implemented Functions and Unused Arguments</td></tr>
+<tr><td style="width: 25%;"><a href="notyet.html">NotYetUsed</a></td>
+<td>Not Yet Implemented Functions and Unused Arguments</td></tr>
+<tr><td style="width: 25%;"><a href="nrow.html">NROW</a></td>
+<td>The Number of Rows/Columns of an Array</td></tr>
+<tr><td style="width: 25%;"><a href="nrow.html">nrow</a></td>
+<td>The Number of Rows/Columns of an Array</td></tr>
+<tr><td style="width: 25%;"><a href="NULL.html">NULL</a></td>
+<td>The Null Object</td></tr>
+<tr><td style="width: 25%;"><a href="numeric.html">numeric</a></td>
+<td>Numeric Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="NumericConstants.html">NumericConstants</a></td>
+<td>Numeric Constants</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="nchar.html">nzchar</a></td>
+<td>Count the Number of Characters (or Bytes or Width)</td></tr>
+</table>
+
+<h2><a name="O">-- O --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="ls.html">objects</a></td>
+<td>List Objects</td></tr>
+<tr><td style="width: 25%;"><a href="octmode.html">octmode</a></td>
+<td>Display Numbers in Octal</td></tr>
+<tr><td style="width: 25%;"><a href="class.html">oldClass</a></td>
+<td>Object Classes</td></tr>
+<tr><td style="width: 25%;"><a href="timezones.html">OlsonNames</a></td>
+<td>Time Zones</td></tr>
+<tr><td style="width: 25%;"><a href="on.exit.html">on.exit</a></td>
+<td>Function Exit Code</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">open</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">open.srcfile</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">open.srcfilealias</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="groupGeneric.html">Ops</a></td>
+<td>S3 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Ops.Date.html">Ops.Date</a></td>
+<td>Operators on the Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">Ops.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="factor.html">Ops.factor</a></td>
+<td>Factors</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">Ops.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="factor.html">Ops.ordered</a></td>
+<td>Factors</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">Ops.POSIXt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="options.html">option</a></td>
+<td>Options Settings</td></tr>
+<tr><td style="width: 25%;"><a href="options.html">options</a></td>
+<td>Options Settings</td></tr>
+<tr><td style="width: 25%;"><a href="order.html">order</a></td>
+<td>Ordering Permutation</td></tr>
+<tr><td style="width: 25%;"><a href="factor.html">ordered</a></td>
+<td>Factors</td></tr>
+<tr><td style="width: 25%;"><a href="outer.html">outer</a></td>
+<td>Outer Product of Arrays</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="userhooks.html">packageEvent</a></td>
+<td>Functions to Get and Set Hooks for Load, Attach, Detach and Unload</td></tr>
+<tr><td style="width: 25%;"><a href="message.html">packageStartupMessage</a></td>
+<td>Diagnostic Messages</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">package_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="rawConversion.html">packBits</a></td>
+<td>Convert to or from Raw Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">PAGER</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="list.html">pairlist</a></td>
+<td>Lists - Generic and Dotted Pairs</td></tr>
+<tr><td style="width: 25%;"><a href="Paren.html">Paren</a></td>
+<td>Parentheses and Braces</td></tr>
+<tr><td style="width: 25%;"><a href="environment.html">parent.env</a></td>
+<td>Environment Access</td></tr>
+<tr><td style="width: 25%;"><a href="sys.parent.html">parent.frame</a></td>
+<td>Functions to Access the Function Call Stack</td></tr>
+<tr><td style="width: 25%;"><a href="parse.html">parse</a></td>
+<td>Parse Expressions</td></tr>
+<tr><td style="width: 25%;"><a href="paste.html">paste</a></td>
+<td>Concatenate Strings</td></tr>
+<tr><td style="width: 25%;"><a href="paste.html">paste0</a></td>
+<td>Concatenate Strings</td></tr>
+<tr><td style="width: 25%;"><a href="path.expand.html">path.expand</a></td>
+<td>Expand File Paths</td></tr>
+<tr><td style="width: 25%;"><a href="find.package.html">path.package</a></td>
+<td>Find Packages</td></tr>
+<tr><td style="width: 25%;"><a href="pcre_config.html">pcre_config</a></td>
+<td>Report Configuration Options for PCRE</td></tr>
+<tr><td style="width: 25%;"><a href="Constants.html">pi</a></td>
+<td>Built-in Constants</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">pipe</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="pmatch.html">pmatch</a></td>
+<td>Partial String Matching</td></tr>
+<tr><td style="width: 25%;"><a href="Extremes.html">pmax</a></td>
+<td>Maxima and Minima</td></tr>
+<tr><td style="width: 25%;"><a href="Extremes.html">pmax.int</a></td>
+<td>Maxima and Minima</td></tr>
+<tr><td style="width: 25%;"><a href="Extremes.html">pmin</a></td>
+<td>Maxima and Minima</td></tr>
+<tr><td style="width: 25%;"><a href="Extremes.html">pmin.int</a></td>
+<td>Maxima and Minima</td></tr>
+<tr><td style="width: 25%;"><a href="polyroot.html">polyroot</a></td>
+<td>Find Zeros of a Real or Complex Polynomial</td></tr>
+<tr><td style="width: 25%;"><a href="pos.to.env.html">pos.to.env</a></td>
+<td>Convert Positions in the Search Path to Environments</td></tr>
+<tr><td style="width: 25%;"><a href="funprog.html">Position</a></td>
+<td>Common Higher-Order Functions in Functional Programming Languages</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">POSIXct</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">POSIXlt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">POSIXt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="pretty.html">pretty</a></td>
+<td>Pretty Breakpoints</td></tr>
+<tr><td style="width: 25%;"><a href="formatc.html">prettyNum</a></td>
+<td>Formatting Using C-style Formats</td></tr>
+<tr><td style="width: 25%;"><a href="Primitive.html">primitive</a></td>
+<td>Look Up a Primitive Function</td></tr>
+<tr><td style="width: 25%;"><a href="print.html">print</a></td>
+<td>Print Values</td></tr>
+<tr><td style="width: 25%;"><a href="AsIs.html">print.AsIs</a></td>
+<td>Inhibit Interpretation/Conversion of Objects</td></tr>
+<tr><td style="width: 25%;"><a href="by.html">print.by</a></td>
+<td>Apply a Function to a Data Frame Split by Factors</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">print.condition</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">print.connection</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="print.dataframe.html">print.data.frame</a></td>
+<td>Printing Data Frames</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">print.Date</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="print.default.html">print.default</a></td>
+<td>Default Printing</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">print.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="print.html">print.Dlist</a></td>
+<td>Print Values</td></tr>
+<tr><td style="width: 25%;"><a href="getLoadedDLLs.html">print.DLLInfo</a></td>
+<td>Get DLLs Loaded in Current Session</td></tr>
+<tr><td style="width: 25%;"><a href="hexmode.html">print.hexmode</a></td>
+<td>Display Numbers in Hexadecimal</td></tr>
+<tr><td style="width: 25%;"><a href="library.html">print.libraryIQR</a></td>
+<td>Loading/Attaching and Listing of Packages</td></tr>
+<tr><td style="width: 25%;"><a href="getDLLRegisteredRoutines.html">print.NativeRoutineList</a></td>
+<td>Reflectance Information for C/Fortran routines in a DLL</td></tr>
+<tr><td style="width: 25%;"><a href="noquote.html">print.noquote</a></td>
+<td>Class for 'no quote' Printing of Character Strings</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">print.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="octmode.html">print.octmode</a></td>
+<td>Display Numbers in Octal</td></tr>
+<tr><td style="width: 25%;"><a href="library.html">print.packageInfo</a></td>
+<td>Loading/Attaching and Listing of Packages</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">print.POSIXct</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="proc.time.html">print.proc_time</a></td>
+<td>Running Time of R</td></tr>
+<tr><td style="width: 25%;"><a href="rle.html">print.rle</a></td>
+<td>Run Length Encoding</td></tr>
+<tr><td style="width: 25%;"><a href="print.html">print.simple.list</a></td>
+<td>Print Values</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">print.srcfile</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">print.srcref</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="table.html">print.summary.table</a></td>
+<td>Cross Tabulation and Table Creation</td></tr>
+<tr><td style="width: 25%;"><a href="summary.html">print.summaryDefault</a></td>
+<td>Object Summaries</td></tr>
+<tr><td style="width: 25%;"><a href="warnings.html">print.warnings</a></td>
+<td>Print Warning Messages</td></tr>
+<tr><td style="width: 25%;"><a href="prmatrix.html">prmatrix</a></td>
+<td>Print Matrices, Old-style</td></tr>
+<tr><td style="width: 25%;"><a href="proc.time.html">proc.time</a></td>
+<td>Running Time of R</td></tr>
+<tr><td style="width: 25%;"><a href="prod.html">prod</a></td>
+<td>Product of Vector Elements</td></tr>
+<tr><td style="width: 25%;"><a href="delayedAssign.html">promise</a></td>
+<td>Delay Evaluation</td></tr>
+<tr><td style="width: 25%;"><a href="delayedAssign.html">promises</a></td>
+<td>Delay Evaluation</td></tr>
+<tr><td style="width: 25%;"><a href="prop.table.html">prop.table</a></td>
+<td>Express Table Entries as Fraction of Marginal Table</td></tr>
+<tr><td style="width: 25%;"><a href="dimnames.html">provideDimnames</a></td>
+<td>Dimnames of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="Special.html">psigamma</a></td>
+<td>Special Functions of Mathematics</td></tr>
+<tr><td style="width: 25%;"><a href="pushBack.html">pushBack</a></td>
+<td>Push Text Back on to a Connection</td></tr>
+<tr><td style="width: 25%;"><a href="pushBack.html">pushBackLength</a></td>
+<td>Push Text Back on to a Connection</td></tr>
+</table>
+
+<h2><a name="Q">-- Q --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="quit.html">q</a></td>
+<td>Terminate an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="qr.html">qr</a></td>
+<td>The QR Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="qr.html">qr.coef</a></td>
+<td>The QR Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="qr.html">qr.default</a></td>
+<td>The QR Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="qr.html">qr.fitted</a></td>
+<td>The QR Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="qraux.html">qr.Q</a></td>
+<td>Reconstruct the Q, R, or X Matrices from a QR Object</td></tr>
+<tr><td style="width: 25%;"><a href="qr.html">qr.qty</a></td>
+<td>The QR Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="qr.html">qr.qy</a></td>
+<td>The QR Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="qraux.html">qr.R</a></td>
+<td>Reconstruct the Q, R, or X Matrices from a QR Object</td></tr>
+<tr><td style="width: 25%;"><a href="qr.html">qr.resid</a></td>
+<td>The QR Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="qr.html">qr.solve</a></td>
+<td>The QR Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="qraux.html">qr.X</a></td>
+<td>Reconstruct the Q, R, or X Matrices from a QR Object</td></tr>
+<tr><td style="width: 25%;"><a href="weekday.POSIXt.html">quarters</a></td>
+<td>Extract Parts of a POSIXt or Date Object</td></tr>
+<tr><td style="width: 25%;"><a href="quit.html">quit</a></td>
+<td>Terminate an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="substitute.html">quote</a></td>
+<td>Substituting and Quoting Expressions</td></tr>
+<tr><td style="width: 25%;"><a href="Quotes.html">Quotes</a></td>
+<td>Quotes</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Rhome.html">R.home</a></td>
+<td>Return the R Home Directory</td></tr>
+<tr><td style="width: 25%;"><a href="Version.html">R.Version</a></td>
+<td>Version Information</td></tr>
+<tr><td style="width: 25%;"><a href="Version.html">R.version.string</a></td>
+<td>Version Information</td></tr>
+<tr><td style="width: 25%;"><a href="Random.html">Random</a></td>
+<td>Random Number Generation</td></tr>
+<tr><td style="width: 25%;"><a href="Random-user.html">Random.user</a></td>
+<td>User-supplied Random Number Generation</td></tr>
+<tr><td style="width: 25%;"><a href="range.html">range</a></td>
+<td>Range of Values</td></tr>
+<tr><td style="width: 25%;"><a href="rank.html">rank</a></td>
+<td>Sample Ranks</td></tr>
+<tr><td style="width: 25%;"><a href="rapply.html">rapply</a></td>
+<td>Recursively Apply a Function to a List</td></tr>
+<tr><td style="width: 25%;"><a href="raw.html">raw</a></td>
+<td>Raw Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="rawConnection.html">rawConnection</a></td>
+<td>Raw Connections</td></tr>
+<tr><td style="width: 25%;"><a href="rawConnection.html">rawConnectionValue</a></td>
+<td>Raw Connections</td></tr>
+<tr><td style="width: 25%;"><a href="rawConversion.html">rawShift</a></td>
+<td>Convert to or from Raw Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="rawConversion.html">rawToBits</a></td>
+<td>Convert to or from Raw Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="rawConversion.html">rawToChar</a></td>
+<td>Convert to or from Raw Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="cbind.html">rbind</a></td>
+<td>Combine R Objects by Rows or Columns</td></tr>
+<tr><td style="width: 25%;"><a href="cbind.html">rbind.data.frame</a></td>
+<td>Combine R Objects by Rows or Columns</td></tr>
+<tr><td style="width: 25%;"><a href="kappa.html">rcond</a></td>
+<td>Compute or Estimate the Condition Number of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="RdUtils.html">Rd2pdf</a></td>
+<td>Utilities for Processing Rd Files</td></tr>
+<tr><td style="width: 25%;"><a href="RdUtils.html">RD2PDF_INPUTENC</a></td>
+<td>Utilities for Processing Rd Files</td></tr>
+<tr><td style="width: 25%;"><a href="RdUtils.html">Rdconv</a></td>
+<td>Utilities for Processing Rd Files</td></tr>
+<tr><td style="width: 25%;"><a href="complex.html">Re</a></td>
+<td>Complex Numbers and Basic Functionality</td></tr>
+<tr><td style="width: 25%;"><a href="dcf.html">read.dcf</a></td>
+<td>Read and Write Data in DCF Format</td></tr>
+<tr><td style="width: 25%;"><a href="readBin.html">readBin</a></td>
+<td>Transfer Binary Data To and From Connections</td></tr>
+<tr><td style="width: 25%;"><a href="readChar.html">readChar</a></td>
+<td>Transfer Character Strings To and From Connections</td></tr>
+<tr><td style="width: 25%;"><a href="readline.html">readline</a></td>
+<td>Read a Line from the Terminal</td></tr>
+<tr><td style="width: 25%;"><a href="readLines.html">readLines</a></td>
+<td>Read Text Lines from a Connection</td></tr>
+<tr><td style="width: 25%;"><a href="readRDS.html">readRDS</a></td>
+<td>Serialization Interface for Single Objects</td></tr>
+<tr><td style="width: 25%;"><a href="readRenviron.html">readRenviron</a></td>
+<td>Set Environment Variables from a File</td></tr>
+<tr><td style="width: 25%;"><a href="Recall.html">Recall</a></td>
+<td>Recursive Calling</td></tr>
+<tr><td style="width: 25%;"><a href="funprog.html">Reduce</a></td>
+<td>Common Higher-Order Functions in Functional Programming Languages</td></tr>
+<tr><td style="width: 25%;"><a href="reg.finalizer.html">reg.finalizer</a></td>
+<td>Finalization of Objects</td></tr>
+<tr><td style="width: 25%;"><a href="regex.html">regex</a></td>
+<td>Regular Expressions as used in R</td></tr>
+<tr><td style="width: 25%;"><a href="grep.html">regexec</a></td>
+<td>Pattern Matching and Replacement</td></tr>
+<tr><td style="width: 25%;"><a href="regex.html">regexp</a></td>
+<td>Regular Expressions as used in R</td></tr>
+<tr><td style="width: 25%;"><a href="grep.html">regexpr</a></td>
+<td>Pattern Matching and Replacement</td></tr>
+<tr><td style="width: 25%;"><a href="getNativeSymbolInfo.html">RegisteredNativeSymbol</a></td>
+<td>Obtain a Description of one or more Native (C/Fortran) Symbols</td></tr>
+<tr><td style="width: 25%;"><a href="regmatches.html">regmatches</a></td>
+<td>Extract or Replace Matched Substrings</td></tr>
+<tr><td style="width: 25%;"><a href="regex.html">regular expression</a></td>
+<td>Regular Expressions as used in R</td></tr>
+<tr><td style="width: 25%;"><a href="rm.html">remove</a></td>
+<td>Remove Objects from a Specified Environment</td></tr>
+<tr><td style="width: 25%;"><a href="taskCallback.html">removeTaskCallback</a></td>
+<td>Add or Remove a Top-Level Task Callback</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">Renviron</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="rep.html">rep</a></td>
+<td>Replicate Elements of Vectors and Lists</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">rep.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="Control.html">repeat</a></td>
+<td>Control Flow</td></tr>
+<tr><td style="width: 25%;"><a href="replace.html">replace</a></td>
+<td>Replace Values in a Vector</td></tr>
+<tr><td style="width: 25%;"><a href="lapply.html">replicate</a></td>
+<td>Apply a Function over a List or Vector</td></tr>
+<tr><td style="width: 25%;"><a href="rep.html">rep_len</a></td>
+<td>Replicate Elements of Vectors and Lists</td></tr>
+<tr><td style="width: 25%;"><a href="library.html">require</a></td>
+<td>Loading/Attaching and Listing of Packages</td></tr>
+<tr><td style="width: 25%;"><a href="ns-load.html">requireNamespace</a></td>
+<td>Loading and Unloading Name Spaces</td></tr>
+<tr><td style="width: 25%;"><a href="Reserved.html">Reserved</a></td>
+<td>Reserved Words in R</td></tr>
+<tr><td style="width: 25%;"><a href="Reserved.html">reserved</a></td>
+<td>Reserved Words in R</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">restartDescription</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">restartFormals</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="tracemem.html">retracemem</a></td>
+<td>Trace Copying of Objects</td></tr>
+<tr><td style="width: 25%;"><a href="function.html">return</a></td>
+<td>Function Definition</td></tr>
+<tr><td style="width: 25%;"><a href="trace.html">returnValue</a></td>
+<td>Interactive Tracing and Debugging of Calls to a Function or Method</td></tr>
+<tr><td style="width: 25%;"><a href="rev.html">rev</a></td>
+<td>Reverse Elements</td></tr>
+<tr><td style="width: 25%;"><a href="rle.html">rle</a></td>
+<td>Run Length Encoding</td></tr>
+<tr><td style="width: 25%;"><a href="rm.html">rm</a></td>
+<td>Remove Objects from a Specified Environment</td></tr>
+<tr><td style="width: 25%;"><a href="Random.html">RNG</a></td>
+<td>Random Number Generation</td></tr>
+<tr><td style="width: 25%;"><a href="Random.html">RNGkind</a></td>
+<td>Random Number Generation</td></tr>
+<tr><td style="width: 25%;"><a href="Random.html">RNGversion</a></td>
+<td>Random Number Generation</td></tr>
+<tr><td style="width: 25%;"><a href="Round.html">round</a></td>
+<td>Rounding of Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="round.POSIXt.html">round.Date</a></td>
+<td>Round / Truncate Data-Time Objects</td></tr>
+<tr><td style="width: 25%;"><a href="round.POSIXt.html">round.POSIXt</a></td>
+<td>Round / Truncate Data-Time Objects</td></tr>
+<tr><td style="width: 25%;"><a href="row.html">row</a></td>
+<td>Row Indexes</td></tr>
+<tr><td style="width: 25%;"><a href="row.names.html">row.names</a></td>
+<td>Get and Set Row Names for Data Frames</td></tr>
+<tr><td style="width: 25%;"><a href="colSums.html">rowMeans</a></td>
+<td>Form Row and Column Sums and Means</td></tr>
+<tr><td style="width: 25%;"><a href="colnames.html">rownames</a></td>
+<td>Row and Column Names</td></tr>
+<tr><td style="width: 25%;"><a href="rowsum.html">rowsum</a></td>
+<td>Give Column Sums of a Matrix or Data Frame, Based on a Grouping Variable</td></tr>
+<tr><td style="width: 25%;"><a href="colSums.html">rowSums</a></td>
+<td>Form Row and Column Sums and Means</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">Rprofile</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">Rprofile.site</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_BATCH</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_BROWSER</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_COMPLETION</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="options.html">R_C_BOUNDS_CHECK</a></td>
+<td>Options Settings</td></tr>
+<tr><td style="width: 25%;"><a href="options.html">R_DEFAULT_DEVICE</a></td>
+<td>Options Settings</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">R_DEFAULT_PACKAGES</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_DOC_DIR</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">R_ENVIRON</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">R_ENVIRON_USER</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="gctorture.html">R_GCTORTURE</a></td>
+<td>Torture Garbage Collector</td></tr>
+<tr><td style="width: 25%;"><a href="gctorture.html">R_GCTORTURE_INHIBIT_RELEASE</a></td>
+<td>Torture Garbage Collector</td></tr>
+<tr><td style="width: 25%;"><a href="gctorture.html">R_GCTORTURE_WAIT</a></td>
+<td>Torture Garbage Collector</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_GSCMD</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_HISTFILE</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_HISTSIZE</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="Rhome.html">R_HOME</a></td>
+<td>Return the R Home Directory</td></tr>
+<tr><td style="width: 25%;"><a href="icuSetCollate.html">R_ICU_LOCALE</a></td>
+<td>Setup Collation by ICU</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_INCLUDE_DIR</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="options.html">R_INTERACTIVE_DEVICE</a></td>
+<td>Options Settings</td></tr>
+<tr><td style="width: 25%;"><a href="options.html">R_KEEP_PKG_SOURCE</a></td>
+<td>Options Settings</td></tr>
+<tr><td style="width: 25%;"><a href="libPaths.html">R_LIBS</a></td>
+<td>Search Paths for Packages</td></tr>
+<tr><td style="width: 25%;"><a href="libPaths.html">R_LIBS_SITE</a></td>
+<td>Search Paths for Packages</td></tr>
+<tr><td style="width: 25%;"><a href="libPaths.html">R_LIBS_USER</a></td>
+<td>Search Paths for Packages</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_PAPERSIZE</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_PDFVIEWER</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_PLATFORM</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_PRINTCMD</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">R_PROFILE</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">R_PROFILE_USER</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_RD4PDF</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_SHARE_DIR</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">R_system_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_TEXI2DVICMD</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_UNZIPCMD</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">R_ZIPCMD</a></td>
+<td>Environment Variables</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="groupGeneric.html">S3groupGeneric</a></td>
+<td>S3 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="UseMethod.html">S3Methods</a></td>
+<td>Class Methods</td></tr>
+<tr><td style="width: 25%;"><a href="isS4.html">S4</a></td>
+<td>Test for an S4 object</td></tr>
+<tr><td style="width: 25%;"><a href="sample.html">sample</a></td>
+<td>Random Samples and Permutations</td></tr>
+<tr><td style="width: 25%;"><a href="lapply.html">sapply</a></td>
+<td>Apply a Function over a List or Vector</td></tr>
+<tr><td style="width: 25%;"><a href="save.html">save</a></td>
+<td>Save R Objects</td></tr>
+<tr><td style="width: 25%;"><a href="readRDS.html">saveRDS</a></td>
+<td>Serialization Interface for Single Objects</td></tr>
+<tr><td style="width: 25%;"><a href="scale.html">scale</a></td>
+<td>Scaling and Centering of Matrix-like Objects</td></tr>
+<tr><td style="width: 25%;"><a href="scan.html">scan</a></td>
+<td>Read Data Values</td></tr>
+<tr><td style="width: 25%;"><a href="search.html">search</a></td>
+<td>Give Search Path for R Objects</td></tr>
+<tr><td style="width: 25%;"><a href="search.html">searchpaths</a></td>
+<td>Give Search Path for R Objects</td></tr>
+<tr><td style="width: 25%;"><a href="seek.html">seek</a></td>
+<td>Functions to Reposition Connections</td></tr>
+<tr><td style="width: 25%;"><a href="seq.html">seq</a></td>
+<td>Sequence Generation</td></tr>
+<tr><td style="width: 25%;"><a href="seq.Date.html">seq.Date</a></td>
+<td>Generate Regular Sequences of Dates</td></tr>
+<tr><td style="width: 25%;"><a href="seq.POSIXt.html">seq.POSIXt</a></td>
+<td>Generate Regular Sequences of Times</td></tr>
+<tr><td style="width: 25%;"><a href="sequence.html">sequence</a></td>
+<td>Create A Vector of Sequences</td></tr>
+<tr><td style="width: 25%;"><a href="seq.html">seq_along</a></td>
+<td>Sequence Generation</td></tr>
+<tr><td style="width: 25%;"><a href="seq.html">seq_len</a></td>
+<td>Sequence Generation</td></tr>
+<tr><td style="width: 25%;"><a href="serialize.html">serialize</a></td>
+<td>Simple Serialization Interface</td></tr>
+<tr><td style="width: 25%;"><a href="Random.html">set.seed</a></td>
+<td>Random Number Generation</td></tr>
+<tr><td style="width: 25%;"><a href="sets.html">setdiff</a></td>
+<td>Set Operations</td></tr>
+<tr><td style="width: 25%;"><a href="sets.html">setequal</a></td>
+<td>Set Operations</td></tr>
+<tr><td style="width: 25%;"><a href="userhooks.html">setHook</a></td>
+<td>Functions to Get and Set Hooks for Load, Attach, Detach and Unload</td></tr>
+<tr><td style="width: 25%;"><a href="setTimeLimit.html">setSessionTimeLimit</a></td>
+<td>Set CPU and/or Elapsed Time Limits</td></tr>
+<tr><td style="width: 25%;"><a href="setTimeLimit.html">setTimeLimit</a></td>
+<td>Set CPU and/or Elapsed Time Limits</td></tr>
+<tr><td style="width: 25%;"><a href="getwd.html">setwd</a></td>
+<td>Get or Set Working Directory</td></tr>
+<tr><td style="width: 25%;"><a href="system.html">shell</a></td>
+<td>Invoke a System Command</td></tr>
+<tr><td style="width: 25%;"><a href="showConnections.html">showConnections</a></td>
+<td>Display Connections</td></tr>
+<tr><td style="width: 25%;"><a href="shQuote.html">shQuote</a></td>
+<td>Quote Strings for Use in OS Shells</td></tr>
+<tr><td style="width: 25%;"><a href="sign.html">sign</a></td>
+<td>Sign Function</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">signalCondition</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="Signals.html">Signals</a></td>
+<td>Interrupting Execution of R</td></tr>
+<tr><td style="width: 25%;"><a href="Round.html">signif</a></td>
+<td>Rounding of Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">simpleCondition</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">simpleError</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">simpleMessage</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">simpleWarning</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="lapply.html">simplify2array</a></td>
+<td>Apply a Function over a List or Vector</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">sin</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="double.html">single</a></td>
+<td>Double-Precision Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="Hyperbolic.html">sinh</a></td>
+<td>Hyperbolic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="sink.html">sink</a></td>
+<td>Send R Output to a File</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">sinpi</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="slice.index.html">slice.index</a></td>
+<td>Slice Indexes in an Array</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">socketConnection</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="socketSelect.html">socketSelect</a></td>
+<td>Wait on Socket Connections</td></tr>
+<tr><td style="width: 25%;"><a href="solve.html">solve</a></td>
+<td>Solve a System of Equations</td></tr>
+<tr><td style="width: 25%;"><a href="qr.html">solve.qr</a></td>
+<td>The QR Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="sort.html">sort</a></td>
+<td>Sorting or Ordering Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="order.html">sort.list</a></td>
+<td>Ordering Permutation</td></tr>
+<tr><td style="width: 25%;"><a href="source.html">source</a></td>
+<td>Read R Code from a File or a Connection</td></tr>
+<tr><td style="width: 25%;"><a href="Special.html">Special</a></td>
+<td>Special Functions of Mathematics</td></tr>
+<tr><td style="width: 25%;"><a href="split.html">split</a></td>
+<td>Divide into Groups and Reassemble</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">split.Date</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">split.POSIXct</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="sprintf.html">sprintf</a></td>
+<td>Use C-style String Formatting Commands</td></tr>
+<tr><td style="width: 25%;"><a href="MathFun.html">sqrt</a></td>
+<td>Miscellaneous Mathematical Functions</td></tr>
+<tr><td style="width: 25%;"><a href="sQuote.html">sQuote</a></td>
+<td>Quote Text</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">srcfile</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">srcfile-class</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">srcfilealias</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">srcfilealias-class</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">srcfilecopy</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">srcfilecopy-class</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">srcref</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">srcref-class</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="startsWith.html">startsWith</a></td>
+<td>Does String Start or End With Another String?</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">Startup</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="showConnections.html">stderr</a></td>
+<td>Display Connections</td></tr>
+<tr><td style="width: 25%;"><a href="showConnections.html">stdin</a></td>
+<td>Display Connections</td></tr>
+<tr><td style="width: 25%;"><a href="showConnections.html">stdout</a></td>
+<td>Display Connections</td></tr>
+<tr><td style="width: 25%;"><a href="stop.html">stop</a></td>
+<td>Stop Function Execution</td></tr>
+<tr><td style="width: 25%;"><a href="stopifnot.html">stopifnot</a></td>
+<td>Ensure the Truth of R Expressions</td></tr>
+<tr><td style="width: 25%;"><a href="mode.html">storage.mode</a></td>
+<td>The (Storage) Mode of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">str.POSIXt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="strptime.html">strftime</a></td>
+<td>Date-time Conversion Functions to and from Character</td></tr>
+<tr><td style="width: 25%;"><a href="strptime.html">strptime</a></td>
+<td>Date-time Conversion Functions to and from Character</td></tr>
+<tr><td style="width: 25%;"><a href="strrep.html">strrep</a></td>
+<td>Repeat the Elements of a Character Vector</td></tr>
+<tr><td style="width: 25%;"><a href="strsplit.html">strsplit</a></td>
+<td>Split the Elements of a Character Vector</td></tr>
+<tr><td style="width: 25%;"><a href="strtoi.html">strtoi</a></td>
+<td>Convert Strings to Integers</td></tr>
+<tr><td style="width: 25%;"><a href="strtrim.html">strtrim</a></td>
+<td>Trim Character Strings to Specified Display Widths</td></tr>
+<tr><td style="width: 25%;"><a href="structure.html">structure</a></td>
+<td>Attribute Specification</td></tr>
+<tr><td style="width: 25%;"><a href="strwrap.html">strwrap</a></td>
+<td>Wrap Character Strings to Format Paragraphs</td></tr>
+<tr><td style="width: 25%;"><a href="grep.html">sub</a></td>
+<td>Pattern Matching and Replacement</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.html">Subscript</a></td>
+<td>Extract or Replace Parts of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="subset.html">subset</a></td>
+<td>Subsetting Vectors, Matrices and Data Frames</td></tr>
+<tr><td style="width: 25%;"><a href="substitute.html">substitute</a></td>
+<td>Substituting and Quoting Expressions</td></tr>
+<tr><td style="width: 25%;"><a href="substr.html">substr</a></td>
+<td>Substrings of a Character Vector</td></tr>
+<tr><td style="width: 25%;"><a href="substr.html">substring</a></td>
+<td>Substrings of a Character Vector</td></tr>
+<tr><td style="width: 25%;"><a href="sum.html">sum</a></td>
+<td>Sum of Vector Elements</td></tr>
+<tr><td style="width: 25%;"><a href="groupGeneric.html">Summary</a></td>
+<td>S3 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="summary.html">summary</a></td>
+<td>Object Summaries</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">summary.connection</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">Summary.Date</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">summary.Date</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">Summary.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="factor.html">Summary.factor</a></td>
+<td>Factors</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">Summary.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="factor.html">Summary.ordered</a></td>
+<td>Factors</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">Summary.POSIXct</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">summary.POSIXct</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">Summary.POSIXlt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="proc.time.html">summary.proc_time</a></td>
+<td>Running Time of R</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">summary.srcfile</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">summary.srcref</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="table.html">summary.table</a></td>
+<td>Cross Tabulation and Table Creation</td></tr>
+<tr><td style="width: 25%;"><a href="message.html">suppressMessages</a></td>
+<td>Diagnostic Messages</td></tr>
+<tr><td style="width: 25%;"><a href="message.html">suppressPackageStartupMessages</a></td>
+<td>Diagnostic Messages</td></tr>
+<tr><td style="width: 25%;"><a href="warning.html">suppressWarnings</a></td>
+<td>Warning Messages</td></tr>
+<tr><td style="width: 25%;"><a href="svd.html">svd</a></td>
+<td>Singular Value Decomposition of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="sweep.html">sweep</a></td>
+<td>Sweep out Array Summaries</td></tr>
+<tr><td style="width: 25%;"><a href="switch.html">switch</a></td>
+<td>Select One of a List of Alternatives</td></tr>
+<tr><td style="width: 25%;"><a href="Syntax.html">Syntax</a></td>
+<td>Operator Syntax and Precedence</td></tr>
+<tr><td style="width: 25%;"><a href="files2.html">Sys.chmod</a></td>
+<td>Manipulaton of Directories and File Permissions</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.time.html">Sys.Date</a></td>
+<td>Get Current Date and Time</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.getenv.html">Sys.getenv</a></td>
+<td>Get Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="locales.html">Sys.getlocale</a></td>
+<td>Query or Set Aspects of the Locale</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.getpid.html">Sys.getpid</a></td>
+<td>Get the Process ID of the R Session</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.glob.html">Sys.glob</a></td>
+<td>Wildcard Expansion on File Paths</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.info.html">Sys.info</a></td>
+<td>Extract System and User Information</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.localeconv.html">Sys.localeconv</a></td>
+<td>Find Details of the Numerical and Monetary Representations in the Current Locale</td></tr>
+<tr><td style="width: 25%;"><a href="sys.parent.html">sys.on.exit</a></td>
+<td>Functions to Access the Function Call Stack</td></tr>
+<tr><td style="width: 25%;"><a href="sys.parent.html">sys.parent</a></td>
+<td>Functions to Access the Function Call Stack</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.readlink.html">Sys.readlink</a></td>
+<td>Read File Symbolic Links</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.setenv.html">Sys.setenv</a></td>
+<td>Set or Unset Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.setFileTime.html">Sys.setFileTime</a></td>
+<td>Set File Time</td></tr>
+<tr><td style="width: 25%;"><a href="locales.html">Sys.setlocale</a></td>
+<td>Query or Set Aspects of the Locale</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.sleep.html">Sys.sleep</a></td>
+<td>Suspend Execution for a Time Interval</td></tr>
+<tr><td style="width: 25%;"><a href="sys.source.html">sys.source</a></td>
+<td>Parse and Evaluate Expressions from a File</td></tr>
+<tr><td style="width: 25%;"><a href="sys.parent.html">sys.status</a></td>
+<td>Functions to Access the Function Call Stack</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.time.html">Sys.time</a></td>
+<td>Get Current Date and Time</td></tr>
+<tr><td style="width: 25%;"><a href="timezones.html">Sys.timezone</a></td>
+<td>Time Zones</td></tr>
+<tr><td style="width: 25%;"><a href="files2.html">Sys.umask</a></td>
+<td>Manipulaton of Directories and File Permissions</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.setenv.html">Sys.unsetenv</a></td>
+<td>Set or Unset Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="Sys.which.html">Sys.which</a></td>
+<td>Find Full Paths to Executables</td></tr>
+<tr><td style="width: 25%;"><a href="system.html">system</a></td>
+<td>Invoke a System Command</td></tr>
+<tr><td style="width: 25%;"><a href="system.file.html">system.file</a></td>
+<td>Find Names of R System Files</td></tr>
+<tr><td style="width: 25%;"><a href="system.time.html">system.time</a></td>
+<td>CPU Time Used</td></tr>
+<tr><td style="width: 25%;"><a href="system2.html">system2</a></td>
+<td>Invoke a System Command</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="logical.html">T</a></td>
+<td>Logical Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="t.html">t</a></td>
+<td>Matrix Transpose</td></tr>
+<tr><td style="width: 25%;"><a href="table.html">table</a></td>
+<td>Cross Tabulation and Table Creation</td></tr>
+<tr><td style="width: 25%;"><a href="tabulate.html">tabulate</a></td>
+<td>Tabulation for Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">tan</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Hyperbolic.html">tanh</a></td>
+<td>Hyperbolic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">tanpi</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="tapply.html">tapply</a></td>
+<td>Apply a Function Over a Ragged Array</td></tr>
+<tr><td style="width: 25%;"><a href="taskCallbackManager.html">taskCallbackManager</a></td>
+<td>Create an R-level Task Callback Manager</td></tr>
+<tr><td style="width: 25%;"><a href="crossprod.html">tcrossprod</a></td>
+<td>Matrix Crossproduct</td></tr>
+<tr><td style="width: 25%;"><a href="tempfile.html">tempdir</a></td>
+<td>Create Names for Temporary Files</td></tr>
+<tr><td style="width: 25%;"><a href="tempfile.html">tempfile</a></td>
+<td>Create Names for Temporary Files</td></tr>
+<tr><td style="width: 25%;"><a href="textconnections.html">textConnection</a></td>
+<td>Text Connections</td></tr>
+<tr><td style="width: 25%;"><a href="textconnections.html">textConnectionValue</a></td>
+<td>Text Connections</td></tr>
+<tr><td style="width: 25%;"><a href="tilde.html">tilde</a></td>
+<td>Tilde Operator</td></tr>
+<tr><td style="width: 25%;"><a href="path.expand.html">tilde expansion</a></td>
+<td>Expand File Paths</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">time interval</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="timezones.html">time zone</a></td>
+<td>Time Zones</td></tr>
+<tr><td style="width: 25%;"><a href="timezones.html">time zones</a></td>
+<td>Time Zones</td></tr>
+<tr><td style="width: 25%;"><a href="timezones.html">timezone</a></td>
+<td>Time Zones</td></tr>
+<tr><td style="width: 25%;"><a href="timezones.html">timezones</a></td>
+<td>Time Zones</td></tr>
+<tr><td style="width: 25%;"><a href="EnvVar.html">TMPDIR</a></td>
+<td>Environment Variables</td></tr>
+<tr><td style="width: 25%;"><a href="chartr.html">tolower</a></td>
+<td>Character Translation and Casefolding</td></tr>
+<tr><td style="width: 25%;"><a href="ns-topenv.html">topenv</a></td>
+<td>Top Level Environment</td></tr>
+<tr><td style="width: 25%;"><a href="toString.html">toString</a></td>
+<td>Convert an R Object to a Character String</td></tr>
+<tr><td style="width: 25%;"><a href="chartr.html">toupper</a></td>
+<td>Character Translation and Casefolding</td></tr>
+<tr><td style="width: 25%;"><a href="trace.html">trace</a></td>
+<td>Interactive Tracing and Debugging of Calls to a Function or Method</td></tr>
+<tr><td style="width: 25%;"><a href="traceback.html">traceback</a></td>
+<td>Get and Print Call Stacks</td></tr>
+<tr><td style="width: 25%;"><a href="tracemem.html">tracemem</a></td>
+<td>Trace Copying of Objects</td></tr>
+<tr><td style="width: 25%;"><a href="trace.html">tracingState</a></td>
+<td>Interactive Tracing and Debugging of Calls to a Function or Method</td></tr>
+<tr><td style="width: 25%;"><a href="transform.html">transform</a></td>
+<td>Transform an Object, for Example a Data Frame</td></tr>
+<tr><td style="width: 25%;"><a href="Trig.html">Trig</a></td>
+<td>Trigonometric Functions</td></tr>
+<tr><td style="width: 25%;"><a href="Special.html">trigamma</a></td>
+<td>Special Functions of Mathematics</td></tr>
+<tr><td style="width: 25%;"><a href="trimws.html">trimws</a></td>
+<td>Remove Leading/Trailing Whitespace</td></tr>
+<tr><td style="width: 25%;"><a href="logical.html">TRUE</a></td>
+<td>Logical Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="Round.html">trunc</a></td>
+<td>Rounding of Numbers</td></tr>
+<tr><td style="width: 25%;"><a href="round.POSIXt.html">trunc.Date</a></td>
+<td>Round / Truncate Data-Time Objects</td></tr>
+<tr><td style="width: 25%;"><a href="round.POSIXt.html">trunc.POSIXt</a></td>
+<td>Round / Truncate Data-Time Objects</td></tr>
+<tr><td style="width: 25%;"><a href="seek.html">truncate</a></td>
+<td>Functions to Reposition Connections</td></tr>
+<tr><td style="width: 25%;"><a href="try.html">try</a></td>
+<td>Try an Expression Allowing Error Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">tryCatch</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="typeof.html">type</a></td>
+<td>The Type of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="typeof.html">typeof</a></td>
+<td>The Type of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="timezones.html">TZ</a></td>
+<td>Time Zones</td></tr>
+<tr><td style="width: 25%;"><a href="timezones.html">TZDIR</a></td>
+<td>Time Zones</td></tr>
+</table>
+
+<h2><a name="U">-- U --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="files2.html">umask</a></td>
+<td>Manipulaton of Directories and File Permissions</td></tr>
+<tr><td style="width: 25%;"><a href="class.html">unclass</a></td>
+<td>Object Classes</td></tr>
+<tr><td style="width: 25%;"><a href="debug.html">undebug</a></td>
+<td>Debug a Function</td></tr>
+<tr><td style="width: 25%;"><a href="utf8Conversion.html">Unicode</a></td>
+<td>Convert Integer Vectors to or from UTF-8-encoded Character Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="sets.html">union</a></td>
+<td>Set Operations</td></tr>
+<tr><td style="width: 25%;"><a href="unique.html">unique</a></td>
+<td>Extract Unique Elements</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">unique.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">unique.POSIXlt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="warnings.html">unique.warnings</a></td>
+<td>Print Warning Messages</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">units</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">units.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="system.time.html">unix.time</a></td>
+<td>CPU Time Used</td></tr>
+<tr><td style="width: 25%;"><a href="unlink.html">unlink</a></td>
+<td>Delete Files and Directories</td></tr>
+<tr><td style="width: 25%;"><a href="unlist.html">unlist</a></td>
+<td>Flatten Lists</td></tr>
+<tr><td style="width: 25%;"><a href="ns-load.html">unloadNamespace</a></td>
+<td>Loading and Unloading Name Spaces</td></tr>
+<tr><td style="width: 25%;"><a href="bindenv.html">unlockBinding</a></td>
+<td>Binding and Environment Locking, Active Bindings</td></tr>
+<tr><td style="width: 25%;"><a href="unname.html">unname</a></td>
+<td>Remove 'names' or 'dimnames'</td></tr>
+<tr><td style="width: 25%;"><a href="serialize.html">unserialize</a></td>
+<td>Simple Serialization Interface</td></tr>
+<tr><td style="width: 25%;"><a href="split.html">unsplit</a></td>
+<td>Divide into Groups and Reassemble</td></tr>
+<tr><td style="width: 25%;"><a href="trace.html">untrace</a></td>
+<td>Interactive Tracing and Debugging of Calls to a Function or Method</td></tr>
+<tr><td style="width: 25%;"><a href="tracemem.html">untracemem</a></td>
+<td>Trace Copying of Objects</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">unz</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="lower.tri.html">upper.tri</a></td>
+<td>Lower and Upper Triangular Part of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">url</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+<tr><td style="width: 25%;"><a href="UseMethod.html">UseMethod</a></td>
+<td>Class Methods</td></tr>
+<tr><td style="width: 25%;"><a href="utf8Conversion.html">utf8ToInt</a></td>
+<td>Convert Integer Vectors to or from UTF-8-encoded Character Vectors</td></tr>
+</table>
+
+<h2><a name="V">-- V --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="validUTF8.html">validEnc</a></td>
+<td>Check if a Character Vector is Validly Encoded</td></tr>
+<tr><td style="width: 25%;"><a href="validUTF8.html">validUTF8</a></td>
+<td>Check if a Character Vector is Validly Encoded</td></tr>
+<tr><td style="width: 25%;"><a href="lapply.html">vapply</a></td>
+<td>Apply a Function over a List or Vector</td></tr>
+<tr><td style="width: 25%;"><a href="vector.html">vector</a></td>
+<td>Vectors</td></tr>
+<tr><td style="width: 25%;"><a href="Vectorize.html">Vectorize</a></td>
+<td>Vectorize a Scalar Function</td></tr>
+<tr><td style="width: 25%;"><a href="Version.html">version</a></td>
+<td>Version Information</td></tr>
+</table>
+
+<h2><a name="W">-- W --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="warning.html">warning</a></td>
+<td>Warning Messages</td></tr>
+<tr><td style="width: 25%;"><a href="warnings.html">warnings</a></td>
+<td>Print Warning Messages</td></tr>
+<tr><td style="width: 25%;"><a href="weekday.POSIXt.html">weekdays</a></td>
+<td>Extract Parts of a POSIXt or Date Object</td></tr>
+<tr><td style="width: 25%;"><a href="which.html">which</a></td>
+<td>Which indices are TRUE?</td></tr>
+<tr><td style="width: 25%;"><a href="which.min.html">which.max</a></td>
+<td>Where is the Min() or Max() or first TRUE or FALSE ?</td></tr>
+<tr><td style="width: 25%;"><a href="which.min.html">which.min</a></td>
+<td>Where is the Min() or Max() or first TRUE or FALSE ?</td></tr>
+<tr><td style="width: 25%;"><a href="Control.html">while</a></td>
+<td>Control Flow</td></tr>
+<tr><td style="width: 25%;"><a href="with.html">with</a></td>
+<td>Evaluate an Expression in a Data Environment</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">withCallingHandlers</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="with.html">within</a></td>
+<td>Evaluate an Expression in a Data Environment</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">withRestarts</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="withVisible.html">withVisible</a></td>
+<td>Return both a value and its visibility</td></tr>
+<tr><td style="width: 25%;"><a href="write.html">write</a></td>
+<td>Write Data to a File</td></tr>
+<tr><td style="width: 25%;"><a href="dcf.html">write.dcf</a></td>
+<td>Read and Write Data in DCF Format</td></tr>
+<tr><td style="width: 25%;"><a href="readBin.html">writeBin</a></td>
+<td>Transfer Binary Data To and From Connections</td></tr>
+<tr><td style="width: 25%;"><a href="readChar.html">writeChar</a></td>
+<td>Transfer Character Strings To and From Connections</td></tr>
+<tr><td style="width: 25%;"><a href="writeLines.html">writeLines</a></td>
+<td>Write Lines to a Connection</td></tr>
+</table>
+
+<h2><a name="X">-- X --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Logic.html">xor</a></td>
+<td>Logical Operators</td></tr>
+<tr><td style="width: 25%;"><a href="hexmode.html">xor.hexmode</a></td>
+<td>Display Numbers in Hexadecimal</td></tr>
+<tr><td style="width: 25%;"><a href="octmode.html">xor.octmode</a></td>
+<td>Display Numbers in Octal</td></tr>
+<tr><td style="width: 25%;"><a href="xtfrm.html">xtfrm</a></td>
+<td>Auxiliary Function for Sorting and Ranking</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">xtfrm.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="connections.html">xzfile</a></td>
+<td>Functions to Manipulate Connections (Files, URLs, ...)</td></tr>
+</table>
+
+<h2><a name="Z">-- Z --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="zapsmall.html">zapsmall</a></td>
+<td>Rounding of Numbers</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="Logic.html">!</a></td>
+<td>Logical Operators</td></tr>
+<tr><td style="width: 25%;"><a href="hexmode.html">!.hexmode</a></td>
+<td>Display Numbers in Hexadecimal</td></tr>
+<tr><td style="width: 25%;"><a href="octmode.html">!.octmode</a></td>
+<td>Display Numbers in Octal</td></tr>
+<tr><td style="width: 25%;"><a href="Comparison.html">!=</a></td>
+<td>Relational Operators</td></tr>
+<tr><td style="width: 25%;"><a href="Quotes.html">"</a></td>
+<td>Quotes</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.html">$</a></td>
+<td>Extract or Replace Parts of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.data.frame.html">$.data.frame</a></td>
+<td>Extract or Replace Parts of a Data Frame</td></tr>
+<tr><td style="width: 25%;"><a href="getLoadedDLLs.html">$.DLLInfo</a></td>
+<td>Get DLLs Loaded in Current Session</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">$.package_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.html">$&lt;-</a></td>
+<td>Extract or Replace Parts of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.data.frame.html">$&lt;-.data.frame</a></td>
+<td>Extract or Replace Parts of a Data Frame</td></tr>
+<tr><td style="width: 25%;"><a href="Arithmetic.html">%%</a></td>
+<td>Arithmetic Operators</td></tr>
+<tr><td style="width: 25%;"><a href="matmult.html">%*%</a></td>
+<td>Matrix Multiplication</td></tr>
+<tr><td style="width: 25%;"><a href="Arithmetic.html">%/%</a></td>
+<td>Arithmetic Operators</td></tr>
+<tr><td style="width: 25%;"><a href="match.html">%in%</a></td>
+<td>Value Matching</td></tr>
+<tr><td style="width: 25%;"><a href="outer.html">%o%</a></td>
+<td>Outer Product of Arrays</td></tr>
+<tr><td style="width: 25%;"><a href="kronecker.html">%x%</a></td>
+<td>Kronecker Products on Arrays</td></tr>
+<tr><td style="width: 25%;"><a href="Logic.html">&amp;</a></td>
+<td>Logical Operators</td></tr>
+<tr><td style="width: 25%;"><a href="Logic.html">&amp;&amp;</a></td>
+<td>Logical Operators</td></tr>
+<tr><td style="width: 25%;"><a href="hexmode.html">&amp;.hexmode</a></td>
+<td>Display Numbers in Hexadecimal</td></tr>
+<tr><td style="width: 25%;"><a href="octmode.html">&amp;.octmode</a></td>
+<td>Display Numbers in Octal</td></tr>
+<tr><td style="width: 25%;"><a href="Quotes.html">'</a></td>
+<td>Quotes</td></tr>
+<tr><td style="width: 25%;"><a href="Paren.html">(</a></td>
+<td>Parentheses and Braces</td></tr>
+<tr><td style="width: 25%;"><a href="Arithmetic.html">*</a></td>
+<td>Arithmetic Operators</td></tr>
+<tr><td style="width: 25%;"><a href="Arithmetic.html">**</a></td>
+<td>Arithmetic Operators</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">*.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="Arithmetic.html">+</a></td>
+<td>Arithmetic Operators</td></tr>
+<tr><td style="width: 25%;"><a href="Ops.Date.html">+.Date</a></td>
+<td>Operators on the Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">+.POSIXt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="Arithmetic.html">-</a></td>
+<td>Arithmetic Operators</td></tr>
+<tr><td style="width: 25%;"><a href="Ops.Date.html">-.Date</a></td>
+<td>Operators on the Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">-.POSIXt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="assignOps.html">-&gt;</a></td>
+<td>Assignment Operators</td></tr>
+<tr><td style="width: 25%;"><a href="assignOps.html">-&gt;&gt;</a></td>
+<td>Assignment Operators</td></tr>
+<tr><td style="width: 25%;"><a href="Reserved.html">...</a></td>
+<td>Reserved Words in R</td></tr>
+<tr><td style="width: 25%;"><a href="Reserved.html">..1</a></td>
+<td>Reserved Words in R</td></tr>
+<tr><td style="width: 25%;"><a href="agrep.html">.amatch_bounds</a></td>
+<td>Approximate String Matching (Fuzzy Matching)</td></tr>
+<tr><td style="width: 25%;"><a href="agrep.html">.amatch_costs</a></td>
+<td>Approximate String Matching (Fuzzy Matching)</td></tr>
+<tr><td style="width: 25%;"><a href="autoload.html">.Autoloaded</a></td>
+<td>On-demand Loading of Packages</td></tr>
+<tr><td style="width: 25%;"><a href="autoload.html">.AutoloadEnv</a></td>
+<td>On-demand Loading of Packages</td></tr>
+<tr><td style="width: 25%;"><a href="environment.html">.BaseNamespaceEnv</a></td>
+<td>Environment Access</td></tr>
+<tr><td style="width: 25%;"><a href="bincode.html">.bincode</a></td>
+<td>Bin a Numeric Vector</td></tr>
+<tr><td style="width: 25%;"><a href="Foreign.html">.C</a></td>
+<td>Foreign Function Interface</td></tr>
+<tr><td style="width: 25%;"><a href="CallExternal.html">.Call</a></td>
+<td>Modern Interfaces to C/C++ code</td></tr>
+<tr><td style="width: 25%;"><a href="UseMethod.html">.Class</a></td>
+<td>Class Methods</td></tr>
+<tr><td style="width: 25%;"><a href="colSums.html">.colMeans</a></td>
+<td>Form Row and Column Sums and Means</td></tr>
+<tr><td style="width: 25%;"><a href="colSums.html">.colSums</a></td>
+<td>Form Row and Column Sums and Means</td></tr>
+<tr><td style="width: 25%;"><a href="attach.html">.conflicts.OK</a></td>
+<td>Attach Set of R Objects to Search Path</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">.decode_numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="Defunct.html">.Defunct</a></td>
+<td>Marking Objects as Defunct</td></tr>
+<tr><td style="width: 25%;"><a href="deparseOpts.html">.deparseOpts</a></td>
+<td>Options for Expression Deparsing</td></tr>
+<tr><td style="width: 25%;"><a href="Deprecated.html">.Deprecated</a></td>
+<td>Marking Objects as Deprecated</td></tr>
+<tr><td style="width: 25%;"><a href="dev.html">.Device</a></td>
+<td>Lists of Open/Active Graphics Devices</td></tr>
+<tr><td style="width: 25%;"><a href="dev.html">.Devices</a></td>
+<td>Lists of Open/Active Graphics Devices</td></tr>
+<tr><td style="width: 25%;"><a href="trace.html">.doTrace</a></td>
+<td>Interactive Tracing and Debugging of Calls to a Function or Method</td></tr>
+<tr><td style="width: 25%;"><a href="library.dynam.html">.dynLibs</a></td>
+<td>Loading DLLs from Packages</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">.encode_numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="libPaths.html">.expand_R_libs_env_var</a></td>
+<td>Search Paths for Packages</td></tr>
+<tr><td style="width: 25%;"><a href="CallExternal.html">.External</a></td>
+<td>Modern Interfaces to C/C++ code</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">.First</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">.First.sys</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="formatc.html">.format.zeros</a></td>
+<td>Formatting Using C-style Formats</td></tr>
+<tr><td style="width: 25%;"><a href="Foreign.html">.Fortran</a></td>
+<td>Foreign Function Interface</td></tr>
+<tr><td style="width: 25%;"><a href="UseMethod.html">.Generic</a></td>
+<td>Class Methods</td></tr>
+<tr><td style="width: 25%;"><a href="environment.html">.GlobalEnv</a></td>
+<td>Environment Access</td></tr>
+<tr><td style="width: 25%;"><a href="groupGeneric.html">.Group</a></td>
+<td>S3 Group Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">.handleSimpleError</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="Internal.html">.Internal</a></td>
+<td>Call an Internal Function</td></tr>
+<tr><td style="width: 25%;"><a href="srcfile.html">.isOpen</a></td>
+<td>References to Source Files and Code</td></tr>
+<tr><td style="width: 25%;"><a href="kappa.html">.kappa_tri</a></td>
+<td>Compute or Estimate the Condition Number of a Matrix</td></tr>
+<tr><td style="width: 25%;"><a href="kronecker.html">.kronecker</a></td>
+<td>Kronecker Products on Arrays</td></tr>
+<tr><td style="width: 25%;"><a href="quit.html">.Last</a></td>
+<td>Terminate an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="ns-hooks.html">.Last.lib</a></td>
+<td>Hooks for Namespace Events</td></tr>
+<tr><td style="width: 25%;"><a href="quit.html">.Last.sys</a></td>
+<td>Terminate an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="Last.value.html">.Last.value</a></td>
+<td>Value of Last Evaluated Expression</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">.leap.seconds</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="libPaths.html">.libPaths</a></td>
+<td>Search Paths for Packages</td></tr>
+<tr><td style="width: 25%;"><a href="libPaths.html">.Library</a></td>
+<td>Search Paths for Packages</td></tr>
+<tr><td style="width: 25%;"><a href="libPaths.html">.Library.site</a></td>
+<td>Search Paths for Packages</td></tr>
+<tr><td style="width: 25%;"><a href="zMachine.html">.Machine</a></td>
+<td>Numerical Characteristics of the Machine</td></tr>
+<tr><td style="width: 25%;"><a href="message.html">.makeMessage</a></td>
+<td>Diagnostic Messages</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">.make_numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="UseMethod.html">.Method</a></td>
+<td>Class Methods</td></tr>
+<tr><td style="width: 25%;"><a href="library.html">.noGenerics</a></td>
+<td>Loading/Attaching and Listing of Packages</td></tr>
+<tr><td style="width: 25%;"><a href="notyet.html">.NotYetImplemented</a></td>
+<td>Not Yet Implemented Functions and Unused Arguments</td></tr>
+<tr><td style="width: 25%;"><a href="notyet.html">.NotYetUsed</a></td>
+<td>Not Yet Implemented Functions and Unused Arguments</td></tr>
+<tr><td style="width: 25%;"><a href="ns-hooks.html">.onAttach</a></td>
+<td>Hooks for Namespace Events</td></tr>
+<tr><td style="width: 25%;"><a href="ns-hooks.html">.onDetach</a></td>
+<td>Hooks for Namespace Events</td></tr>
+<tr><td style="width: 25%;"><a href="ns-hooks.html">.onLoad</a></td>
+<td>Hooks for Namespace Events</td></tr>
+<tr><td style="width: 25%;"><a href="ns-hooks.html">.onUnload</a></td>
+<td>Hooks for Namespace Events</td></tr>
+<tr><td style="width: 25%;"><a href="options.html">.Options</a></td>
+<td>Options Settings</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">.OptRequireMethods</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="zpackages.html">.packages</a></td>
+<td>Listing of Packages</td></tr>
+<tr><td style="width: 25%;"><a href="message.html">.packageStartupMessage</a></td>
+<td>Diagnostic Messages</td></tr>
+<tr><td style="width: 25%;"><a href="Platform.html">.Platform</a></td>
+<td>Platform Specific Variables</td></tr>
+<tr><td style="width: 25%;"><a href="Primitive.html">.Primitive</a></td>
+<td>Look Up a Primitive Function</td></tr>
+<tr><td style="width: 25%;"><a href="Random.html">.Random.seed</a></td>
+<td>Random Number Generation</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">.Renviron</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="search.html">.rmpkg</a></td>
+<td>Give Search Path for R Objects</td></tr>
+<tr><td style="width: 25%;"><a href="colSums.html">.rowMeans</a></td>
+<td>Form Row and Column Sums and Means</td></tr>
+<tr><td style="width: 25%;"><a href="colSums.html">.rowSums</a></td>
+<td>Form Row and Column Sums and Means</td></tr>
+<tr><td style="width: 25%;"><a href="Startup.html">.Rprofile</a></td>
+<td>Initialization at Start of an R Session</td></tr>
+<tr><td style="width: 25%;"><a href="InternalMethods.html">.S3PrimitiveGenerics</a></td>
+<td>Internal Generic Functions</td></tr>
+<tr><td style="width: 25%;"><a href="conditions.html">.signalSimpleWarning</a></td>
+<td>Condition Handling and Recovery</td></tr>
+<tr><td style="width: 25%;"><a href="zutils.html">.standard_regexps</a></td>
+<td>Miscellaneous Internal/Programming Utilities</td></tr>
+<tr><td style="width: 25%;"><a href="traceback.html">.Traceback</a></td>
+<td>Get and Print Call Stacks</td></tr>
+<tr><td style="width: 25%;"><a href="traceback.html">.traceback</a></td>
+<td>Get and Print Call Stacks</td></tr>
+<tr><td style="width: 25%;"><a href="userhooks.html">.userHooksEnv</a></td>
+<td>Functions to Get and Set Hooks for Load, Attach, Detach and Unload</td></tr>
+<tr><td style="width: 25%;"><a href="cbind.html">.__H__.cbind</a></td>
+<td>Combine R Objects by Rows or Columns</td></tr>
+<tr><td style="width: 25%;"><a href="cbind.html">.__H__.rbind</a></td>
+<td>Combine R Objects by Rows or Columns</td></tr>
+<tr><td style="width: 25%;"><a href="Arithmetic.html">/</a></td>
+<td>Arithmetic Operators</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">/.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="NumericConstants.html">0x1</a></td>
+<td>Numeric Constants</td></tr>
+<tr><td style="width: 25%;"><a href="NumericConstants.html">1i</a></td>
+<td>Numeric Constants</td></tr>
+<tr><td style="width: 25%;"><a href="NumericConstants.html">1L</a></td>
+<td>Numeric Constants</td></tr>
+<tr><td style="width: 25%;"><a href="Colon.html">:</a></td>
+<td>Colon Operator</td></tr>
+<tr><td style="width: 25%;"><a href="ns-dblcolon.html">::</a></td>
+<td>Double Colon and Triple Colon Operators</td></tr>
+<tr><td style="width: 25%;"><a href="ns-dblcolon.html">:::</a></td>
+<td>Double Colon and Triple Colon Operators</td></tr>
+<tr><td style="width: 25%;"><a href="Comparison.html">&lt;</a></td>
+<td>Relational Operators</td></tr>
+<tr><td style="width: 25%;"><a href="assignOps.html">&lt;-</a></td>
+<td>Assignment Operators</td></tr>
+<tr><td style="width: 25%;"><a href="assignOps.html">&lt;&lt;-</a></td>
+<td>Assignment Operators</td></tr>
+<tr><td style="width: 25%;"><a href="Comparison.html">&lt;=</a></td>
+<td>Relational Operators</td></tr>
+<tr><td style="width: 25%;"><a href="assignOps.html">=</a></td>
+<td>Assignment Operators</td></tr>
+<tr><td style="width: 25%;"><a href="Comparison.html">==</a></td>
+<td>Relational Operators</td></tr>
+<tr><td style="width: 25%;"><a href="Comparison.html">&gt;</a></td>
+<td>Relational Operators</td></tr>
+<tr><td style="width: 25%;"><a href="Comparison.html">&gt;=</a></td>
+<td>Relational Operators</td></tr>
+<tr><td style="width: 25%;"><a href="slotOp.html">@</a></td>
+<td>Extract or Replace A Slot</td></tr>
+<tr><td style="width: 25%;"><a href="slotOp.html">@&lt;-</a></td>
+<td>Extract or Replace A Slot</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.html">[</a></td>
+<td>Extract or Replace Parts of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="AsIs.html">[.AsIs</a></td>
+<td>Inhibit Interpretation/Conversion of Objects</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.data.frame.html">[.data.frame</a></td>
+<td>Extract or Replace Parts of a Data Frame</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">[.Date</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="difftime.html">[.difftime</a></td>
+<td>Time Intervals / Differences</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.html">[.Dlist</a></td>
+<td>Extract or Replace Parts of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.factor.html">[.factor</a></td>
+<td>Extract or Replace Parts of a Factor</td></tr>
+<tr><td style="width: 25%;"><a href="hexmode.html">[.hexmode</a></td>
+<td>Display Numbers in Hexadecimal</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.html">[.listof</a></td>
+<td>Extract or Replace Parts of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="noquote.html">[.noquote</a></td>
+<td>Class for 'no quote' Printing of Character Strings</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">[.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="octmode.html">[.octmode</a></td>
+<td>Display Numbers in Octal</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">[.POSIXct</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">[.POSIXlt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.html">[.simple.list</a></td>
+<td>Extract or Replace Parts of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="table.html">[.table</a></td>
+<td>Cross Tabulation and Table Creation</td></tr>
+<tr><td style="width: 25%;"><a href="warnings.html">[.warnings</a></td>
+<td>Print Warning Messages</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.html">[&lt;-</a></td>
+<td>Extract or Replace Parts of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.data.frame.html">[&lt;-.data.frame</a></td>
+<td>Extract or Replace Parts of a Data Frame</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">[&lt;-.Date</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.factor.html">[&lt;-.factor</a></td>
+<td>Extract or Replace Parts of a Factor</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">[&lt;-.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">[&lt;-.POSIXct</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">[&lt;-.POSIXlt</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.html">[[</a></td>
+<td>Extract or Replace Parts of an Object</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.data.frame.html">[[.data.frame</a></td>
+<td>Extract or Replace Parts of a Data Frame</td></tr>
+<tr><td style="width: 25%;"><a href="Dates.html">[[.Date</a></td>
+<td>Date Class</td></tr>
+<tr><td style="width: 25%;"><a href="Extract.factor.html">[[.factor</a></td>
+<td>Extract or Replace Parts of a Factor</td></tr>
+<tr><td style="width: 25%;"><a href="numeric_version.html">[[.numeric_version</a></td>
+<td>Numeric Versions</td></tr>
+<tr><td style="width: 25%;"><a href="DateTimeClasses.html">[[.POSIXct</a></td>
+<td>Date-Time Classes</td></tr>
+<tr><td style="width: 25%;"><a href="Arithmetic.html">^</a></td>
+<td>Arithmetic Operators</td></tr>
+<tr><td style="width: 25%;"><a href="Quotes.html">`</a></td>
+<td>Quotes</td></tr>
+<tr><td style="width: 25%;"><a href="Paren.html">{</a></td>
+<td>Parentheses and Braces</td></tr>
+<tr><td style="width: 25%;"><a href="Logic.html">|</a></td>
+<td>Logical Operators</td></tr>
+<tr><td style="width: 25%;"><a href="hexmode.html">|.hexmode</a></td>
+<td>Display Numbers in Hexadecimal</td></tr>
+<tr><td style="width: 25%;"><a href="octmode.html">|.octmode</a></td>
+<td>Display Numbers in Octal</td></tr>
+<tr><td style="width: 25%;"><a href="Logic.html">||</a></td>
+<td>Logical Operators</td></tr>
+<tr><td style="width: 25%;"><a href="tilde.html">~</a></td>
+<td>Tilde Operator</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/base/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/DESCRIPTION	(revision 2476)
@@ -0,0 +1,18 @@
+Package: SparseM
+Version: 1.74
+Author: Roger Koenker <rkoenker@uiuc.edu> and Pin Ng <Pin.Ng@NAU.EDU>
+Maintainer: Roger Koenker <rkoenker@uiuc.edu>
+Depends: R (>= 2.15), methods
+Imports: graphics, stats, utils
+Description: Some basic linear algebra functionality for sparse matrices is
+  provided:  including Cholesky decomposition and backsolving as well as 
+  standard R subsetting and Kronecker products.
+License: GPL (>= 2)
+Title: Sparse Linear Algebra
+URL: http://www.econ.uiuc.edu/~roger/research/sparse/sparse.html
+NeedsCompilation: yes
+Repository: CRAN
+Packaged: 2016-11-10 13:39:40 UTC; roger
+Date/Publication: 2016-11-10 17:09:29
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-11-11 11:51:28 UTC; unix
+Archs: SparseM.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/LeastSquares.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/LeastSquares.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/LeastSquares.R	(revision 2476)
@@ -0,0 +1,19 @@
+# lsq.rra is real rectangular matrix stored in compressed sparse column for mat
+read.matrix.hb(system.file("HBdata","lsq.rra",package = "SparseM"))-> hb.o
+X <- model.matrix(hb.o) #extract the design matrix
+y <- model.response(hb.o) # extract the rhs
+X1 <- as.matrix(X)
+slm.time <- system.time(slm(y~X1-1) -> slm.o) # pretty fast
+lm.time <- system.time(lm(y~X1-1) -> lm.o) # very slow
+cat("slm time =",slm.time,"\n")
+cat("lm time =",lm.time,"\n")
+sum.slm <- summary(slm.o)
+sum.slm$coef <- sum.slm$coef[1:5,]
+sum.lm <- summary(lm.o)
+sum.lm$coef <- sum.lm$coef[1:5,]
+sum.slm
+sum.lm
+slm.fit.time <- system.time(slm.fit(X,y)) # very fast
+lm.fit.time <- system.time(lm.fit(X1,y)) # still very slow
+cat("slm.fit time =",slm.fit.time,"\n")
+cat("lm.fit time =",lm.fit.time,"\n")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/Coercion.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/Coercion.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/Coercion.R	(revision 2476)
@@ -0,0 +1,27 @@
+# Demonstrate coercions between various sparse classes
+n = 5
+p = 3
+y = rnorm(n)
+a = rnorm(n*p)
+a[abs(a)<0.7] = 0
+A = matrix(a,n,p)
+A.csr = as.matrix.csr(A)
+class(A.csr)
+ncol(A.csr)
+nrow(A.csr)
+dim(A.csr)
+A.csr
+as.matrix(A.csr)
+A
+A.csc = as.matrix.csc(A.csr)
+A.csc
+as.matrix(A.csc)
+B = t(A)%*%A
+B.ssr = as.matrix.ssr(B)
+B.ssr
+as.matrix(B.ssr)
+B
+D.csr<-as.matrix.csr(4*diag(5))
+C<-chol(D.csr)
+C<-as.matrix.csr(C, upper.tri=FALSE)
+C
\ No newline at end of file
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/Visualization.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/Visualization.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/Visualization.R	(revision 2476)
@@ -0,0 +1,4 @@
+data(triogramX)
+image(X)
+cat("Hit RETURN to continue\n");readLines(n=1)
+image(t(X)%*%X)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/LinearAlgebra.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/LinearAlgebra.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/LinearAlgebra.R	(revision 2476)
@@ -0,0 +1,39 @@
+n1 = 5
+n2 = 5
+p = 6
+y = rnorm(n1)
+a = rnorm(n1*p)
+a[abs(a)<1.0] = 0
+A = matrix(a,n1,p)
+b = rnorm(n2*p)
+b[abs(b)<1.0] = 0
+B = matrix(b,n2,p)
+A.csr = as.matrix.csr(A)
+B.csr = as.matrix.csr(B)
+
+# testing matrix transposition and matrix-matrix multiplication
+A.csr%*%t(B.csr)
+as.matrix(A.csr%*%t(B.csr))
+A%*%t(B)
+
+# testing matrix transposition and matrix-vector multiplication
+t(A.csr)%*%y
+t(A)%*%y
+
+# testing diag and diag<-
+diag(A.csr)
+diag(A)
+diag(A.csr) <- 99
+diag(A) <- 99
+as.matrix(A.csr)
+A
+
+# testing element-wise addition
+A.csr+B.csr
+as.matrix(A.csr+B.csr)
+A+B
+
+# testing mix-mode multiplication
+class(t(A.csr)%*%B)
+class(t(A)%*%B.csr)
+class(y%*%B.csr)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/Solve.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/Solve.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/Solve.R	(revision 2476)
@@ -0,0 +1,24 @@
+read.matrix.hb(system.file("HBdata","lsq.rra",package = "SparseM"))-> hb.o
+class(hb.o) # -> [1] "matrix.csc.hb"
+model.matrix(hb.o)->design.o
+class(design.o) # -> "matrix.csr"
+dim(design.o) # -> [1] 1850  712
+y <- model.response(hb.o) # extract the rhs
+class(y) # -> numeric
+length(y) # [1] 1850
+t(design.o)%*%design.o -> XpX #X'X
+t(design.o)%*%y -> Xpy  #X'y
+chol(XpX)->chol.o
+class(chol.o)  # "matrix.csr.chol"
+backsolve(chol.o,Xpy)-> b1 # least squares solutions in two steps
+b1[1:10]
+solve(XpX,Xpy) -> b2 # least squares estimates in one step
+back.solve(chol.o, forward.solve(chol.o, Xpy)) -> b3 # least squares solutions
+                                                     # in 3 steps
+b2[1:10]
+solve(XpX) -> XpX.inv  # (X'X)^-1
+class(XpX) # -> "matrix.csr"
+diag(XpX %*% XpX.inv) # diagonal of the 712 x 712 identity matrix
+system.time(solve(XpX)) # faster
+system.time(solve(as.matrix(XpX))) # much slower
+image(XpX)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/Binding.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/Binding.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/demo/Binding.R	(revision 2476)
@@ -0,0 +1,21 @@
+n1 = 3
+n2 = 4
+p = 5
+a = rnorm(n1*p)
+a[abs(a)<0.7] = 0
+A = matrix(a,n1,p)
+b = rnorm(n2*p)
+b[abs(b)<0.7] = 0
+B = matrix(b,n2,p)
+A.csr = as.matrix.csr(A)
+B.csr = as.matrix.csr(B)
+class(rbind(A.csr,B.csr))
+A
+B
+as.matrix(rbind(A.csr,B.csr))
+as.matrix(cbind(t(A.csr),t(B.csr)))
+B
+as.matrix(B.csr[,c(1,3)])
+as.matrix(B.csr[-c(1,3),])
+B.csr[1,]<-99
+as.matrix(B.csr)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/html/00Index.html	(revision 2476)
@@ -0,0 +1,397 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Sparse Linear Algebra</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Sparse Linear Algebra
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;SparseM&rsquo; version 1.74</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+<li><a href="../demo">Code demos</a>.  Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<p style="text-align: center;">
+<a href="#A">A</a>
+<a href="#B">B</a>
+<a href="#C">C</a>
+<a href="#D">D</a>
+<a href="#E">E</a>
+<a href="#F">F</a>
+<a href="#I">I</a>
+<a href="#K">K</a>
+<a href="#L">L</a>
+<a href="#M">M</a>
+<a href="#N">N</a>
+<a href="#O">O</a>
+<a href="#P">P</a>
+<a href="#R">R</a>
+<a href="#S">S</a>
+<a href="#T">T</a>
+<a href="#X">X</a>
+<a href="#misc">misc</a>
+</p>
+
+
+<h2><a name="A">-- A --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix,coo-methods</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix,csc-methods</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix,ssc-methods</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix,ssr-methods</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix-method</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix.coo</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix.coo-method</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix.csc</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix.csc-method</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix.csr</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix.csr-method</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix.ssc</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix.ssc-method</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix.ssc.matrix.csr-method</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix.ssr</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">as.matrix.ssr-method</a></td>
+<td>Sparse Matrix Class</td></tr>
+</table>
+
+<h2><a name="B">-- B --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="SparseM.solve.html">backsolve</a></td>
+<td>Linear Equation Solving for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.solve.html">backsolve-method</a></td>
+<td>Linear Equation Solving for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.solve.html">backsolve-methods</a></td>
+<td>Linear Equation Solving for Sparse Matrices</td></tr>
+</table>
+
+<h2><a name="C">-- C --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">cbind.matrix.csr</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="character-null-class.html">character or NULL-class</a></td>
+<td>Class "character or NULL"</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.solve.html">chol</a></td>
+<td>Linear Equation Solving for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.solve.html">chol-method</a></td>
+<td>Linear Equation Solving for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="slm.methods.html">coef.slm</a></td>
+<td>Methods for slm objects</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">coerce-method</a></td>
+<td>Sparse Matrix Class</td></tr>
+</table>
+
+<h2><a name="D">-- D --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">det-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">determinant-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="slm.methods.html">deviance.slm</a></td>
+<td>Methods for slm objects</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">diag-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">diag.assign-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">diag&lt;--method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">diff-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">diff&lt;--method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">dim-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+</table>
+
+<h2><a name="E">-- E --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="slm.methods.html">extractAIC.slm</a></td>
+<td>Methods for slm objects</td></tr>
+</table>
+
+<h2><a name="F">-- F --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="slm.methods.html">fitted.slm</a></td>
+<td>Methods for slm objects</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.solve.html">forwardsolve</a></td>
+<td>Linear Equation Solving for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.solve.html">forwardsolve-method</a></td>
+<td>Linear Equation Solving for Sparse Matrices</td></tr>
+</table>
+
+<h2><a name="I">-- I --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="SparseM.image.html">image</a></td>
+<td>Image Plot for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.image.html">image-method</a></td>
+<td>Image Plot for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">initialize-method</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">is.matrix,coo-methods</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">is.matrix,csc-methods</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">is.matrix,csr-methods</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">is.matrix,ssc-methods</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">is.matrix,ssr-methods</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">is.matrix.coo</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">is.matrix.csc</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">is.matrix.csr</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">is.matrix.ssc</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">is.matrix.ssr</a></td>
+<td>Sparse Matrix Class</td></tr>
+</table>
+
+<h2><a name="K">-- K --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">kronecker-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">kronecker-methods</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+</table>
+
+<h2><a name="L">-- L --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="lsq.html">lsq</a></td>
+<td>Least Squares Problems in Surveying</td></tr>
+</table>
+
+<h2><a name="M">-- M --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="matrix.coo-class.html">matrix.coo-class</a></td>
+<td>Class "matrix.coo"</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">matrix.csc</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="matrix.csc-class.html">matrix.csc-class</a></td>
+<td>Class "matrix.csc"</td></tr>
+<tr><td style="width: 25%;"><a href="matrix.csc.hb-class.html">matrix.csc.hb-class</a></td>
+<td>Class "matrix.csc.hb"</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">matrix.csr</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="matrix.csr-class.html">matrix.csr-class</a></td>
+<td>Class "matrix.csr"</td></tr>
+<tr><td style="width: 25%;"><a href="matrix.csr.chol-class.html">matrix.csr.chol-class</a></td>
+<td>Class "matrix.csr.chol"</td></tr>
+<tr><td style="width: 25%;"><a href="matrix.csr-class.html">matrix.diag.csr-class</a></td>
+<td>Class "matrix.csr"</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">matrix.ssc</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="matrix.ssc-class.html">matrix.ssc-class</a></td>
+<td>Class "matrix.ssc"</td></tr>
+<tr><td style="width: 25%;"><a href="matrix.ssc.hb-class.html">matrix.ssc.hb-class</a></td>
+<td>Class "matrix.ssc.hb"</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">matrix.ssr</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="matrix.ssr-class.html">matrix.ssr-class</a></td>
+<td>Class "matrix.ssr"</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.hb.html">model.guess</a></td>
+<td>Harwell-Boeing Format Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.hb.html">model.guess-method</a></td>
+<td>Harwell-Boeing Format Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.hb.html">model.matrix</a></td>
+<td>Harwell-Boeing Format Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.hb.html">model.matrix-method</a></td>
+<td>Harwell-Boeing Format Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.hb.html">model.matrix.matrix.ssc.hb</a></td>
+<td>Harwell-Boeing Format Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.hb.html">model.response</a></td>
+<td>Harwell-Boeing Format Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.hb.html">model.response-method</a></td>
+<td>Harwell-Boeing Format Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.hb.html">model.xexact</a></td>
+<td>Harwell-Boeing Format Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.hb.html">model.xexact-method</a></td>
+<td>Harwell-Boeing Format Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="mslm-class.html">mslm-class</a></td>
+<td>Class "mslm"</td></tr>
+</table>
+
+<h2><a name="N">-- N --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">ncol-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">norm</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">norm-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">nrow-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="numeric-null-class.html">numeric or NULL-class</a></td>
+<td>Class "numeric or NULL"</td></tr>
+</table>
+
+<h2><a name="O">-- O --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">Ops.matrix.csr</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">Ops.matrix.diag.csr</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+</table>
+
+<h2><a name="P">-- P --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="slm.methods.html">print.slm</a></td>
+<td>Methods for slm objects</td></tr>
+<tr><td style="width: 25%;"><a href="slm.methods.html">print.summary.slm</a></td>
+<td>Methods for slm objects</td></tr>
+</table>
+
+<h2><a name="R">-- R --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">rbind.matrix.csr</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.hb.html">read.matrix.hb</a></td>
+<td>Harwell-Boeing Format Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="slm.methods.html">residuals.slm</a></td>
+<td>Methods for slm objects</td></tr>
+</table>
+
+<h2><a name="S">-- S --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="slm.html">slm</a></td>
+<td>Fit a linear regression model using sparse matrix algebra</td></tr>
+<tr><td style="width: 25%;"><a href="slm-class.html">slm-class</a></td>
+<td>Class "slm"</td></tr>
+<tr><td style="width: 25%;"><a href="slm.fit.html">slm.fit</a></td>
+<td>Internal slm fitting functions</td></tr>
+<tr><td style="width: 25%;"><a href="slm.fit.html">slm.fit.csr</a></td>
+<td>Internal slm fitting functions</td></tr>
+<tr><td style="width: 25%;"><a href="slm.methods.html">slm.methods</a></td>
+<td>Methods for slm objects</td></tr>
+<tr><td style="width: 25%;"><a href="slm.fit.html">slm.wfit</a></td>
+<td>Internal slm fitting functions</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.solve.html">solve</a></td>
+<td>Linear Equation Solving for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.solve.html">solve-method</a></td>
+<td>Linear Equation Solving for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.hb.html">SparseM.hb</a></td>
+<td>Harwell-Boeing Format Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.image.html">SparseM.image</a></td>
+<td>Image Plot for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ontology.html">SparseM.ontology</a></td>
+<td>Sparse Matrix Class</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.solve.html">SparseM.solve</a></td>
+<td>Linear Equation Solving for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="slm.methods.html">summary.mslm</a></td>
+<td>Methods for slm objects</td></tr>
+<tr><td style="width: 25%;"><a href="summary.mslm-class.html">summary.mslm-class</a></td>
+<td>Class "summary.mslm"</td></tr>
+<tr><td style="width: 25%;"><a href="slm.methods.html">summary.slm</a></td>
+<td>Methods for slm objects</td></tr>
+<tr><td style="width: 25%;"><a href="summary.slm-class.html">summary.slm-class</a></td>
+<td>Class "summary.slm"</td></tr>
+</table>
+
+<h2><a name="T">-- T --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">t-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="triogramX.html">triogramX</a></td>
+<td>A Design Matrix for a Triogram Problem</td></tr>
+</table>
+
+<h2><a name="X">-- X --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="triogramX.html">X</a></td>
+<td>A Design Matrix for a Triogram Problem</td></tr>
+</table>
+
+<h2><a name="misc">-- misc --</a></h2>
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">!=-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">%%-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">%*%-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">%*%-methods</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">%/%-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">&amp;-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">*-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">+-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">--method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">/-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">&lt;-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">&lt;=-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">==-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">&gt;-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">&gt;=-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">[.matrix.coo</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">[.matrix.csr</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">[.matrix.diag.csr</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">[&lt;-.matrix.coo</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">[&lt;-.matrix.csr</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">[&lt;-.matrix.diag.csr</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">^-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+<tr><td style="width: 25%;"><a href="SparseM.ops.html">|-method</a></td>
+<td>Basic Linear Algebra for Sparse Matrices</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/TODO
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/TODO	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/TODO	(revision 2476)
@@ -0,0 +1,25 @@
+March 30 2014
+
+Use of slm it is sometimes  impeded by the fact that model.matrix
+require a construction of a dense form of X.  This can be circumvented
+by using the sparse model matrix construction in the Matrix package, or
+less directly by just constructing X in csr form and using slm.fit.csr
+for estimation.  A downside of the latter strategy is that summary()
+can't be used on the resulting object, but something like the following
+hack can be used:
+
+function (object, correlation = FALSE, ...) 
+{
+    Chol <- object$chol
+    n <- length(object$residuals)
+    p <- object$chol@nrow
+    rdf <- n - p
+    r <- residuals(object)
+    rss <- sum(r^2)
+    resvar <- rss/rdf
+    R <- backsolve(Chol, diag(p))
+    sqrt(diag(R) * resvar)
+   }
+
+It might be nice to regularize this...
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/doc/SparseM.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/doc/SparseM.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/doc/SparseM.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/doc/SparseM.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/doc/SparseM.R	(revision 2476)
@@ -0,0 +1,54 @@
+### R code from vignette source 'SparseM.Rnw'
+
+###################################################
+### code chunk number 1: SparseM.Rnw:132-141
+###################################################
+library(SparseM)
+a <- rnorm(5*4)
+a[abs(a)<0.7] <- 0
+A <- matrix(a,5,4)
+A
+A.csr <- as.matrix.csr(A)
+A.csr
+as.matrix(A.csr)
+
+
+
+###################################################
+### code chunk number 2: SparseM.Rnw:166-172
+###################################################
+data(triogramX)
+par(mfrow=c(1,2))
+image(X)
+title("X")
+image(t(X)%*%X)
+title("X\'X")
+
+
+###################################################
+### code chunk number 3: SparseM.Rnw:261-283
+###################################################
+#hb.o <- read.matrix.hb(system.file("HBdata","lsq.rra",package = "SparseM"))
+data(lsq)
+X <- model.matrix(lsq) #extract the design matrix
+y <- model.response(lsq) # extract the rhs
+X1 <- as.matrix(X)
+slm.time <- system.time(slm(y~X1-1) -> slm.o) # pretty fast
+lm.time <- system.time(lm(y~X1-1) -> lm.o) # very slow
+slm.fit.time <- system.time(slm.fit(X,y)) # very fast
+lm.fit.time <- system.time(lm.fit(X1,y)) # still very slow
+cat("slm time =",slm.time,"\n")
+cat("lm time =",lm.time,"\n")
+cat("slm.fit time =",slm.fit.time,"\n")
+cat("lm.fit time =",lm.fit.time,"\n")
+cat("slm Results: Reported Coefficients Truncated to 5  ","\n")
+sum.slm <- summary(slm.o)
+sum.slm$coef <- sum.slm$coef[1:5,] 
+sum.slm
+cat("lm Results: Reported Coefficients Truncated to 5  ","\n")
+sum.lm <- summary(lm.o)
+sum.lm$coefficients <- sum.lm$coefficients[1:5,] 
+sum.lm
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/doc/index.html	(revision 2476)
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'SparseM'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/SparseM/doc/SparseM.pdf">SparseM::SparseM</a></td>
+<td></td><td valign="top">An Introduction to the SparseM Package for Sparse Linear Algebra</td>
+<td valign="top"><a href="../../../library/SparseM/doc/SparseM.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/SparseM/doc/SparseM.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/SparseM/doc/SparseM.R">R code</a></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/doc/SparseM.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/doc/SparseM.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/doc/SparseM.Rnw	(revision 2476)
@@ -0,0 +1,376 @@
+%\VignetteIndexEntry{An Introduction to the SparseM Package for Sparse Linear Algebra}
+\documentclass{article}
+\title{SparseM:  A Sparse Matrix Package for R
+\thanks{This package should be considered experimental.  The
+authors would welcome comments about any aspect of the package.
+This document is an R vignette prepared with the aid of \texttt{Sweave},
+Leisch(2002).  Support from NSF SES 99-11184 is gratefully acknowledged.}}
+\author{Roger Koenker and Pin Ng}
+\begin{document}
+\maketitle
+\begin{abstract}
+SparseM provides some basic R functionality for linear algebra with sparse matrices.
+Use of the package is illustrated by a family of linear model fitting functions that
+implement least squares methods for problems with sparse design matrices.  
+Significant performance improvements in memory utilization and computational 
+speed are possible for applications involving large sparse matrices.
+\end{abstract}
+\section{Introduction}
+
+Many applications in statistics involve large sparse matrices, matrices
+with a high proportion of zero entries. \ A typical example from parametric
+linear regression involves longitudinal data with fixed effects:  many indicator
+variables consisting of a few ones and a large number of zero elements. \ In nonparametric
+regression, e.g. smoothing splines  design matices are extremely sparse often with
+less than 1\% of nonzero entries. \ Conventional algorithms for linear algebra
+in such situations entail exorbitant storage requirements and many wasteful
+floating point operations involving zero entries.
+For some specially structured problems, e.g. banded matrices,
+special algorithms are available.  But recent developments in sparse linear algebra 
+have produced efficient methods for handling unstructured sparsity in a remarkably
+efficient way.
+
+Exploiting these developments, the package  SparseM provides some basic
+linear algebra functionality for sparse matrices stored in several standard 
+formats. \ The package attempts to make the use of these methods as transparent
+as possible by adhering to the method-dispatch conventions of $R$.\footnote{
+The first release of the SparseM packaged used {\it S3} method-dispatch,
+the current release has adopted the new {\it S4} method dispatch.
+Our thanks to Brian Ripley and Kurt Hornik for advice on this aspect of the package.}
+Functions are provided for:  coercion, basic unary and binary operations on matrices
+and linear equation solving.
+
+%There have been a few linear algebra packages proposed or implemented for
+%sparse matrices, see Carney, Heroux, Li, and Wu (1994), Saad (1994), Remington
+%and Pozo (1996), Duff, Marrone, Radicati and Vittoli (1997), and Bank and
+%Douglas (2001). 
+Our implementation is based on Sparskit (Saad (1994)), which
+provides one of the more complete collection of subroutines for BLAS like
+functions and sparse matrix utilities available in the public domain.\footnote
+{Recently, a sparse matrix version of BLAS subprograms has been
+provided by Duff, Heroux and Pozo (2002). Unfortunately, it handles only
+sparse matrix times dense matrix multiplication at the Level 3 Sparse BLAS,
+but not sparse matrix times sparse matrix multiplication.
+The sparse matrix utilities
+available in Sparskit, e.g.\ masking, sorting, permuting, extracting, 
+and filtering, which are not available in Sparse BLAS, are also extrememly valuable.
+Sparse linear algebra is a rapidly developing field in numerical analysis and we
+would expect to see many important new developments that could be incorportated into
+SparseM and related code in the near future.}
+Our Cholesky factorization and backsolve routines are based on Ng and Peyton
+(1993), which still appears to represent the state of the art for solving linear
+systems involving symmetric positive definite matrices.\footnote{There are also several new direct methods for
+solving unsymmetric sparse systems of linear equations over the last decade. 
+A rather comprehensive comparison of performance of some prominent
+software packages for solving general sparse systems can be found in
+Gupta (2002).  Unfortunately, the comparisons do not include the Peyton
+and Ng algorithm employed here.
+The top performer reported in the study is WSMP (Gupta, 2000)
+which requires proprietary XLF Fortran complier, XLC C compilier
+and the AIX operating system, and the library is not released under
+the GPL license. The runner up reported
+is MUMPS (Amestoy, Duff, L'Excellent and Koster, 2002) which has a 
+non-commerical license but is written in Fortran 90. 
+The third best performer is UMFPACK (Davis, 2002), 
+which is implemented in MATLAB Version 6.0 and 
+later, also has a non-commerical license. Since it is a general sparse solver
+not written specifically for symmetric positive definite systems of linear
+equations, it would be interesting to see how it compares with the 
+Choleski factorization of Peyton and Ng adopted here.}
+
+
+In Section 2 we discuss in more  detail the components of the package, provide some
+examples on their use and explain the basic design philosopy. 
+Section 3 discusses some refinements proposed for future implementations.
+
+SparseM can be obtained from the Comprehensive  R Archive Network, CRAN, at
+\texttt{http://cran.r-project.org/}. 
+
+\section{Design Philosophy}
+
+In this section we briefly describe some aspects of our design philosophy 
+beginning with the question of storage modes.
+
+\subsection{Storage Modes}
+
+There are currently more than twenty different storage formats 
+used for sparse matrices. \ Each of these formats is designed to exploit
+particular features of the matrices that arise in various
+applications areas to gain efficiency in both memory utilization and computation.
+\ Duff, Erisman and Reid (1986) and Saad (1994) provide detailed
+accounts of the various storage schemes. \ Following Saad (1994) we have
+chosen compressed sparse row (\textbf{csr}) format as the primary storage mode for
+SparseM.\footnote{Other sparse storage formats supported in SparseM include
+compressed sparse column (\textbf{csc}), symmetric sparse row (\textbf{ssr}) and
+symmetric sparse column (\textbf{ssc}). \ The data structure of \textbf{csc}
+format is the same as that of \textbf{csr} format except the information is
+stored column-wise. \ The\ \textbf{ssr} and \textbf{ssc} formats are special cases of
+\textbf{csr} and \textbf{csc}, respectively, for symmetric matrices, 
+only the information in the lower triangle is stored. 
+\ We have created new class objects, \texttt{matrix.csr}, \texttt{matrix.csc},
+\texttt{matrix.ssr}, \texttt{matrix.ssc}, for each of these four formats.}
+\ An $n$ by $m$ matrix $A$ with real elements $a_{ij}$, stored in
+\textbf{csr} format consists of three arrays:
+
+\begin{itemize}
+\item \texttt{ra}: a real array of $nnz$ elements containing the non-zero
+elements of $A$, stored in row order. Thus, if $i<j$, all elements of row $i$
+precede elements from row $j$. The order of elements within the rows is immaterial.
+
+\item \texttt{ja}: an integer array of $nnz$ elements containing the column
+indices of the elements stored in \texttt{ra}.
+
+\item \texttt{ia}: an integer array of $n+1$ elements containing pointers to
+the beginning of each row in the arrays \texttt{ra} and \texttt{ja}. Thus
+\texttt{ia[i]} indicates the position in the arrays \texttt{ra} and
+\texttt{ja} where the $i$th row begins. The last $(n+1)$st element of
+\texttt{ia} indicates where the $n+1$ row would start, if it existed.
+\end{itemize}
+
+The following commands illustrate typical coercion operations.
+
+<<>>=
+library(SparseM)
+a <- rnorm(5*4)
+a[abs(a)<0.7] <- 0
+A <- matrix(a,5,4)
+A
+A.csr <- as.matrix.csr(A)
+A.csr
+as.matrix(A.csr)
+
+@
+To facilitate testing we have included \texttt{read.matrix.hb} 
+and \texttt{write.matrix.hb} to deal with matrices
+in the Harwell-Boeing storage format.  \ A list of sites with
+extensive collections of sparse matrices  in this format can be found at
+\texttt{http://math.nist.gov/MatrixMarket/}. \ Details on the Harwell-Boeing format can
+be found in the help files for \texttt{read.matrix.hb} and \texttt{write.matrix.hb} as well
+as in the User's Guide for Harwell-Boeing Sparse Matrix Collection at
+\texttt{ftp://ftp.cerfacs.fr/pub/harwell\_boeing/}.
+
+@
+\subsection{Visualization}
+The \texttt{image} function allows users to explore the
+structure of the sparsity in matrices stored in \textbf{csr} format.
+In the next example we illustrate the design matrix for a bivariate
+spline smoothing problem illustrated in Koenker and Mizera (2002).  The
+upper 100 rows of the matrix are an identity matrix, the lower 275 rows
+represent the penalty component of the design matrix.  In this example $X$
+has 1200 nonzero entries, roughly 3.2 percent of the number of floating
+point numbers needed to represent the matrix in dense form.  The $X'X$ form
+of the matrix has 1162 nonzero elements or  11.62 percent of the entries
+in the full matrix.  
+
+\begin{center}
+<<fig=TRUE,echo=FALSE>>=
+data(triogramX)
+par(mfrow=c(1,2))
+image(X)
+title("X")
+image(t(X)%*%X)
+title("X\'X")
+@
+\end{center}
+
+\subsection{Indexing and Binding}
+
+Indexing and the functions \texttt{cbind} and \texttt{rbind} for the
+\texttt{matrix.csr} class work just like they do on dense matrices. 
+Objects returned by \texttt{cbind} and \texttt{rbind} operating 
+on objects of the \texttt{matrix.csr} class retain their 
+\texttt{matrix.csr} class attribute.
+
+\subsection{Linear Algebra}
+
+SparseM provides a reasonably complete set of commonly used linear algebra operations for the 
+\texttt{matrix.csr} class. \ The general design philosophy for 
+this set of functions is that 
+operations on \texttt{matrix.csr} class will yield an object also in
+\texttt{matrix.csr} class with a few exceptions mentioned below.
+
+The functions \texttt{t}, and \texttt{\%*\%} for
+transposition, and multiplication of \textbf{csr} matrices work just like
+their dense matrix counterparts and the returned objects retain their
+\texttt{matrix.csr} class. The \texttt{diag} and \texttt{diag<-} 
+functions for extracting and assigning the diagonal elements of
+\textbf{csr} matrices also work like their dense matrix counterparts except
+that the returned objects from \texttt{diag} are dense vectors with appropriate
+zeros reintroduced.  The unary and binary functions in the group generic functions
+\textsc{Ops} return objects of \texttt{matrix.csr} class.
+
+\subsection{Linear Equation Solving} 
+Research on solutions to sparse symmetric positive definite
+systems of linear equations has focused primarily
+on methods based on the Cholesky factorization, and we have followed this approach.
+There are three functions \texttt{chol},
+\texttt{backsolve} and \texttt{solve }to handle a symmetric positive definite
+system of linear equations. \texttt{chol} performs Cholesky factorization
+using the block sparse Cholesky algorithms of Ng and Peyton (1993). \ The
+result can then be passed on to \texttt{backsolve} with a right-hand-side to
+obtain the solutions. \ For systems of linear equations that only vary on the
+right-hand-side, the result from \texttt{chol} can be reused,  saving
+considerable computing time. \ The function \texttt{solve}, which
+combines the use of \texttt{chol} and \texttt{backsolve}, 
+will compute the inverse of a
+matrix by default,  if the right-hand-side is missing.%
+The data structure of the \texttt{chol.matrix.csr} object
+produced by the sparse Cholesky method is comewhat complicated.
+Users interested in recovering the Cholesky factor in some more
+conventional form should recognize that the original matrix has
+undergone a permutation of its rows and columns before Cholesky
+factorization;  this permutation is given by the \texttt{perm}
+component of the structure.  Currently no coercion methods are
+supplied for the class \texttt{chol.matrix.csr}, but the
+computation of the determinant by extracting the diagonal of
+the Cholesky factor offers some clues for how such coercion
+could be done.  This determinant is provided as a component
+of the \texttt{chol.matrix.csr} structure because it can be
+of some value in certain maximum likelihood applications.
+
+\subsection{Least Squares Problems}
+
+To illustrate the functionality of the package we include an application to
+least squares regression. The group of functions \texttt{slm}, \texttt{slm.fit},
+\texttt{slm.fit.csr}, \texttt{summary.slm} and \texttt{print.summary.slm} provide
+analogues of the familiar \texttt{lm} family. In the current implementation
+\texttt{slm} processes a formula object in essentially the same way as 
+\texttt{lm}, and
+calls an intermediate function \texttt{slm.fit}, which in turn calls
+\texttt{slm.fit.csr} where the actual fitting occurs. Rather than the usual QR
+decomposition, \texttt{slm.fit.csr} proceeds by backsolving the triangular
+system resulting from a Cholesky decomposition of the $X^\top X$ matrix. The
+sparsity of the resulting structure is usually well preserved by this
+strategy. The use of sparse methods is quite transparent in the present 
+\texttt{slm} implementation and \texttt{summary.slm} with the associated
+\texttt{print.summary.slm} should produce identical output to their cousins in
+the \texttt{lm} family. However, the speed and memory utilization can be quite
+drammatically improved.  In the following problem, which involves a design
+matrix that is 1850 by 712 there is a nearly three hundred fold improvement 
+in speed (on a Sun Ultra 2) when we compare 
+\texttt{lm.fit} and \texttt{slm.fit}.  The  comparison
+is somewhat less compelling between \texttt{lm} and \texttt{slm} since 
+there is a substantial common fixed cost to the setup of the problems.
+In addition to the computational time saved there is also a significant
+reduction in the memory required for large sparse problems.  In extreme
+cases memory becomes a binding constraint on the feasibility of large
+problems and sparse storage is critical in expanding the range of
+problem sizes.  This is particularly true of applications in smoothing
+and related image processing contexts.
+
+<<>>=
+#hb.o <- read.matrix.hb(system.file("HBdata","lsq.rra",package = "SparseM"))
+data(lsq)
+X <- model.matrix(lsq) #extract the design matrix
+y <- model.response(lsq) # extract the rhs
+X1 <- as.matrix(X)
+slm.time <- system.time(slm(y~X1-1) -> slm.o) # pretty fast
+lm.time <- system.time(lm(y~X1-1) -> lm.o) # very slow
+slm.fit.time <- system.time(slm.fit(X,y)) # very fast
+lm.fit.time <- system.time(lm.fit(X1,y)) # still very slow
+cat("slm time =",slm.time,"\n")
+cat("lm time =",lm.time,"\n")
+cat("slm.fit time =",slm.fit.time,"\n")
+cat("lm.fit time =",lm.fit.time,"\n")
+cat("slm Results: Reported Coefficients Truncated to 5  ","\n")
+sum.slm <- summary(slm.o)
+sum.slm$coef <- sum.slm$coef[1:5,] 
+sum.slm
+cat("lm Results: Reported Coefficients Truncated to 5  ","\n")
+sum.lm <- summary(lm.o)
+sum.lm$coefficients <- sum.lm$coefficients[1:5,] 
+sum.lm
+
+@
+
+
+\section{Some Potential Refinements}
+
+There are still many features that could be usefully added to the package. Among these
+we would especially like to see: \texttt{crossprod},
+\texttt{row},\texttt{ col}, code for \texttt{eigen}, \texttt{svd}
+would also be desirable, but seems somewhat more problematic.
+Support for other storage formats might
+be eventually useful, although \textbf{csr, csc, ssr, ssc} formats seem quite
+sufficient for most purposes. A major improvement in the \texttt{slm}
+implementation would be to replace the line
+\begin{verbatim}
+X <- as.matrix.csr(model.matrix(Terms, m, contrasts))
+\end{verbatim}
+which coerces the dense form of the regression design matrix produced by
+model.matrix into the sparse form. Ideally, this would be done with a special 
+\texttt{.csr} form of
+\texttt{model.matrix}, thus obviating the need to construct the dense form
+of the matrix. We have not looked carefully at the question of implementing
+this suggestion, but we (still) hope that someone else might be inspired to do so.
+
+Our primary motivation for $R$ sparse linear algebra comes from
+our experience, see  e.g. Koenker, Ng and Portnoy (1994) and He and Ng (1999),
+with interior point algorithms for quantile regression  smoothing problems.  
+We plan to report on this experience elsewhere.
+
+
+\begin{center}
+{\Large{\bf References}}
+\end{center}
+
+%\textsc{Bank, R.E. and  C.C. Douglas.} (1993). Sparse matrix multiplication
+%package (SMMP). \textit{Advances in Computational Mathematics, 1, 127-137.}
+
+%\textsc{Carney, Sandra, Michael A. Heroux, Guangye Li, and Kesheng Wu.}
+%(1994). A revised proposal for a sparse BLAS toolkit. Technical Report 94-034,
+%Army High Performance Computing Research Center.
+
+\textsc{Amestoy, P. R., I. S. Duff, J. -Y. L'Excellent {\small and} J. Koster.} (2002).
+MUltifrontal Massively Parallel Solver (MUMPS Version 4.2 beta) Users' Guide,
+http://www.enseeiht.fr/lima/apo/MUMPS/
+
+\textsc{Davis, T. A.} (2002). UMFPACK Version 4.0 User Guide,
+\newline
+http://www.cise.ufl.edu/research/sparse/umfpack.
+
+\textsc{Duff, I.S., A. M. Erisman {\small and} J. K. Reid.} (1986). \textit{Direct
+Methods for Sparse Matrices}, Clarendon Press, Oxford.
+
+\textsc{Duff, I. S., M. A. Heroux, {\small and} R. Pozo.} (2002).
+``An Overview of the Sparse Basic Linear Algebra Subroutines: The
+New Standard from the BLAS Technical Forum,'' \emph{ACM Transactions
+on Mathematical Software}, 28, 239-267.
+
+%\textsc{Duff, I. S., M. Marrone, G. Radicati, and C. Vittoli.} (1997). Level 3
+%Basic Linear Algebra Subprograms for sparse matrices: a user level interface.
+%\textit{ACM Trans. Math. Softw}., 23(3):379--401.
+
+\textsc{Gupta, A.} (2000). WSMP: Watson Sparse Matrix Package (Part-II:
+direct solution of general sparse systems). Technical Report RC 21888 (98472),
+IBM T.J. Watson Research Center, Yorktown Heights, N.Y., 
+http://www.cs.umn.edu/
+\newline
+$\sim$agupta/doc/wssmp-paper.ps
+
+\textsc{Gupta, A.} (2002). ``Recent Advances in Direct Methods for
+Solving Unsymmetric Sparse Systems of Linear Equations,'' \emph{ACM 
+Transactions on Mathematical Software}, 28, 301-324.
+
+\textsc{He, X.,  {\small and} P.~Ng}  (1999): ``COBS: {Q}ualitatively
+  Constrained Smoothing Via Linear Programming,'' \emph{Computational
+  Statistics}, 14, 315--337.
+
+\textsc{Koenker, R., P.~Ng,  {\small and} S.~Portnoy}  (1994): ``Quantile
+  smoothing splines,'' \emph{Biometrika}, 81, 673--680.
+
+\textsc{Leisch, F.} (2002). Sweave:  Dynamic Generation of Statistical Reports
+Using Literate Data Analysis, \texttt{http://www.wu-wien.ac.at/am}.
+
+\textsc{Koenker, R. {\small and} Mizera, I} (2002). Penalized Triograms:  Total
+Variation Regularization for Bivariate Smoothing, preprint.
+
+\textsc{Ng, E. G. {\small and} B. W. Peyton}. (1993) Block sparse Cholesky algorithms
+on advanced uniprocessor computers'', \textit{SIAM J. Sci. Comput.}, 
+14, 1034-1056.
+
+\textsc{Saad, Y.} (1994) Sparskit: A basic tool kit for sparse matrix
+computations; Version 2, 
+\texttt{http://www.cs.umn.edu/Research/arpa/SPARSKIT/sparskit.html}
+
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/demo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/demo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/ChangeLog
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/ChangeLog	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/ChangeLog	(revision 2476)
@@ -0,0 +1,517 @@
+This directory contains the development version of the sparse matrix
+package SparseM.  This is an informal revision history.
+
+The initial version 0.01 was sent to David Meyer in Vienna June 10, 2002.
+
+The new version is in SparseM and incorporates the Harwell Boeing stuff.
+
+The version 0.05 was completed Oct 11 and was sent to CRAN for Kurt Hornik's
+blessing prior to submission to JSS.  There were several problems the most
+serious being that the fortran versions of the hb routines weren't sufficiently
+portable.
+
+The version 0.09 was completed Oct 19 2002 incorporating the following changes:
+
+   o  read.hb and write.hb are now in C and more portable this was the
+   	major problem identified by Kurt in the initial posting
+   o  the generic issues were all resolved thanks to the hint in Sec 6.1
+   	of the Writing R-Exts which explains how to add ... to the
+   	argument list of new generics using formals().
+   o  a bug in matrix.csr was fixed to accomodate vector arguments
+   	and zero matrices
+   o  PACKAGE args were added to all .Fortran and .C calls
+   o  Lots of minor inconsistencies in the man pages were fixed.
+
+The version 0.10 was completed Nov 5 2002 and incorporates the following:
+
+   o  remade the pdf version of the vignette in type 1 ps fonts using
+   	dvips -Pwww SparseM
+   	distill SparseM.ps
+      At the suggestion of  Brian Ripley.
+   o altered matrix.csr to generalize the way it handled vector args.
+   o removed the unused variables from readwrite.c.
+   o moved lsq.rra from the "data" subdirectory to "inst/HBdata"; added
+     lsq.R in "data" so that the content can be read in using
+     "data(lsq)" in R; added "lsq.Rd" in "man"; and updated the
+     00Index.dcf file in "inst/doc"; updated the INDEX file.
+   o changed all the ".find.package" in the Rd files to "system.file".
+   o changed the call to read.matrix.hb to use "system.file" in
+     SparseM.Rnw
+
+The version 0.11 was begun Jan 1 2003 and incorporates the following:
+
+   o the malloc.h header requirements in iohb.c and iohb.h were
+     removed...they are redundant given stdlib.h and caused problems
+     on my mac
+
+The version 0.12 was begun Jan 20 2003 and incorporates the following:
+
+   o conversion from S3 to S4 method dispatch
+
+The version 0.20 was completed Jan 24 2003 and incorporates the following:
+
+   o conversion from S3 to S4 method dispatch and extensive documentation changes
+
+The version 0.21 was begun Mar 7 2003 and incorporates the following:
+
+   o matrix valued response in the slm formula
+
+   o a fix of a "design infelicity" in the multiplication of a csr times a
+     vector which created a matrix object without dimension attribute --
+     identified by John Chambers.
+
+   o matrix multiplication now allows csr times dense multiplication by coercion
+     of the dense matrix to sparse form, so is returned in sparse form.
+
+The version 0.22 was begun Mar 11 2003 and incorporates the following:
+
+   o added a class matrix.coo for coordinate format sparse matrices
+
+   o [<-.matrix.csr  and [.matrix.csr rewritten to use the .coo class
+
+   o validity checking added to both .csr and .coo classes.  See the setClass
+     definitions and their methods for "initialize".  This required quite a lot
+     of editing to insure that ja,ia, and dim attributes were really integer.
+
+The version 0.24 was begun about April 1 2003
+
+   o commented out  'value <- as.matrix.coo(value)' in '[<-.matrix.csr' to move the class
+   	transformation of value inside '[<-.matrix.coo.  This is a workaround for
+   	misbehavior of missing() in our opinion.
+
+   o added 'setMethod("t","matrix.coo",function(x) as.matrix.coo(t(as.matrix.csr(x)))' in
+   	SparseM_Methods.R to define "t" for class "matrix.coo".
+
+   o uncommented
+   	"setMethod("%*%",signature(x="matrix",y="matrix.csr"),.matmul.matrix.csr)"
+   	"setMethod("%*%",signature(x="numeric",y="matrix.csr"),.matmul.matrix.csr)"
+   	so that "%*%" will perform matrix times matrix.csr and vector times
+   	matrix.csr multiplication
+
+   o removed the definition of "ncol.matrix.csr" and "nrow.matrix.csr" from SparseM.R
+
+   o added "dim.matrix.coo" to SparseM.R and
+   	"setMethod("dim","matrix.coo",dim.matrix.coo)" to SparseM_Methods.R
+
+   o created matrix.coo-class.Rd
+
+   o fixed some of the inconsistency on matrix.csc-class.Rd, etc.
+
+   o added matrix subscripting to '[.matrix.coo' and '[<-.matrix.coo' so that
+   	one can perform, e.g., as.matrix.csr(A)[cbind(c(1,2,3),c(2,3,1))]
+   	and as.matrix.csr(A)[cbind(c(1,2,3),c(2,3,1))] <- 100
+
+   o added matrix.csr class subscripting to '[.matrix.coo' and '[<-.matrix.coo'
+   	so that one can perform, e.g., as.matrix.csr(A)[as.matrix.csr(A)>0]
+   	and as.matrix.csr(A)[as.matrix.csr(A)>0] <- 100 for whatever it's worth.
+
+   o added logical subscripting to [.matrix.coo and [.matrix.csr
+
+   o fixed some bugs in group Ops.
+
+   o added some commentary in man and in vignette to encourage use of new()
+   	in the definition of new .csr and .coo objects so that validation is done.
+
+   o simplified diag.assign.matrix.csr so that it looked just like the default
+   	version -- this eliminates the need for a couple of the fortran functions.
+
+   o fixed several places where as.integer() was needed to wrap a definition of
+   	a dimension attribute of a sparse object.
+
+
+The version 0.25 was begun about April 16 2003
+
+   o fixed a bug in chol.matrix.csr that incorrected allocated
+   	space in large problems
+
+The version 0.26 was done April 26 2003
+
+   o  fixed a bug in * and %*% that returned an error when the answer
+   	was a matrix or vector of all zeros
+
+   o  refixed the malloc.h problem
+
+The version 0.27 was done April 28 2003
+
+   o  removed some debugging print statements from chol.f
+   o  removed the uncompressed files from inst/doc
+
+The version 0.28 was begun May 28 2003
+
+   o  the .R files were consolidated at the suggestion of John Chambers after we
+	discovered that different machines ordered them differently and
+	the methods code needs to be read AFTER the function definitions.
+
+   o  a bug in as.matrix.coo that mistook vector arguments for scalars was fixed
+
+   o  a kronecker product operator %x% was added.
+
+   o  return statements checked for the dreaded deprecated unlisted form
+
+   o  updated some setIs() calls to conform to JC's new setClassUnion() form.
+	this is implemented with a version check to accomodate 1.7.0 users.
+
+The version 0.30 was completed August 10 2003
+
+   o  initially intended to conform with Kurt's changed of %x% to insist
+	that it was a binary operator, but this revealed a number of problems
+	with documentation that were attributable to an incomplete conversion
+	from S3 to S4 methods.
+
+   o  Many S3 functions were incorporated directly into the setMethod calls so
+	that now there are fewer, but still many S3 method calls, these should
+	be gradually removed when more time and energy permits.  For now, I hope
+	that the changes that have been made will permit a smooth transition to
+	1.8.0 when it is released.  At the moment it does pass R CMD check on
+	the (almost) current version of R-devel.  In particular, One
+	thing that eventually needs to be fixed is that all of the ontology
+	stuff should be brought up todate so that you can say:
+
+        	as(x,"matrix.csr")
+
+	rather than
+
+        	as.matrix.csr(x)
+
+The version 0.31 was completed August 25 2003
+
+   o  At the suggestion of Kurt we removed the explicit reading of the hb
+	data and replaced it with an R dataset loading.  Comments are left
+	in the examples section indicating how to do the reading, but the
+	official view seems to be that the old approach was insufficiently
+	robust.
+
+   o  The diag() update.  Prior versions didn't really handle the coercion
+	of scalars and vectors to diag csr matrices very well.  This was
+	fixed by introducing a new subclass matrix.diag.csr of which matrix.csr
+	is the superclass (meaning that they have the same rights and responsibilities)
+	so now you can create an n-dimensional identity by as(n,"matrix.diag.csr")
+	and a matrix with diagonal v by as(v,"matrix.diag.csr").  In the process
+	some problems with the default matrix.csr object were discovered and fixed.
+	And the code for .matrix.csr.elemul was changed to reflect these changes.
+
+The version 0.32 was completed December 20 2003
+
+	o  Fixed a defunct call to print.coefmat
+
+The version 0.33 was completed January 20 2004
+
+	o  fixed bug in scalar division...identified by Renald Buter
+
+The version 0.35 was completed January 20 2004
+
+	o  fixed bug in matrix.diag.csr coercion ... identified by Nicholas Lewin-Koh
+
+The version 0.36 was completed May 12 2004
+
+	o  fixed a version testing problem for R-devel 2.0.0
+	o  added Depends R(>=1.8) to Description at suggestion of BDRipley
+	o  added errfig in the .C() call in read.matrix.hb
+	o  commented out some GTIMER, ETIME commands that caused AIX problems
+
+The version 0.40  was completed July 17, 2004
+
+	o  added a check for symmetry before the Cholesky computation.
+	o  added a norm() function to do the symmetry checking
+	o  added a det() function to compute the determinant of both
+		matrix.csr and matrix.csr.chol objects.
+
+The version 0.50  was completed July 17, 2004
+
+	o  the vignette was uncompressed so that it was accessible
+		via vignette().
+	o  the call to read.matrix.hb was commented out and replaced
+		as in the other documentation calls with calls to
+		data(lsq) ...
+	o  a comment was added to the solve documentation indicating
+		the existence of the det object in chol structures.
+
+The version 0.52
+
+	o  An example of Steven Farber revealed that when the
+		dimensions of matrix.csr and matrix.coo objects
+		are very large the validity checking in setClass
+		failed due to integer overflow.  The product
+		nrow*ncol was replaced by prod(object@dimensions)
+		which apparently coerces the result to real.
+	o  A misplaced } was fixed in slm.Rd found by Kurt's
+		pre 2.0.0 new documentation checking.
+	o  version checking was modified to eliminate a last.warning
+		in 2.0.0.
+
+The version 0.53
+
+	o  elementwise multiplication failed for A*B with both A and B
+		of class matrix.csr, as noted by Suzzane Heim --
+
+	o added a [<-.matrix.diag.csr function, inadvertently omitted from
+		the prior revision of this class.  (Produced a mysterious
+		"Error: incorrect number of subscripts on matrix" message.
+		This also fixed a subsetting-assignments-to-zero problem for
+		this class.
+
+The version 0.54
+
+	o  After an extended discussion in (and off) R-devel,  Roger Bivand very
+		kindly provided a NAMESPACE file and some associated modifications
+		of the SparseM.R file.  These changes allow among other
+		things S4 method dispatch to find functions in SparseM
+		that were hidden from view  when it didn't have a NAMESPACE.
+		The original problem child was det() which SparseM declared
+		generic, but this wasn't visible to Bivand spatial package.
+		Use requires various import directives in the NAMESPACE
+		of the importing package, however quantreg  which uses SparseM
+		for certain nonparametric regression problems worked without
+		modification with the new version of SparseM.  Bivand's
+		modifications of the R code are indicated with comments "#RSB"
+		in the SparseM.R file.
+
+The version 0.55
+
+	o  Added lazyloading to description file at the request of BDR.
+
+	o  Jon Stearley (Sandia) noted that R segfaulted on his attempts
+		to use write.matrix.hb.  The segmentation fault was caused
+		by the "NULL" value of "guesol" that was being passed into
+		readwrite.c.   Pin  replaced the NULL assignment with an
+		empty string "" assignment.  I've also updated the help file
+		SparseM.hb.Rd to include an example of write.matrix.hb.
+
+The version 0.56
+
+	o  the example added in 0.55  caused the windows version to segfault
+		Uwe Ligges kindly determined that adding ZipData: No to the
+		Description file was enough to fix this.
+The version 0.57
+
+	o  NAMESPACE and getMethod added to acommodate an asymmetry in the
+		way that the stats package handles model.matrix and model.response
+		fix kindly provided by Roger Bivand.
+
+The version 0.58
+
+	o  several "assign num to lab"  statements in sparskit.f were updated
+		to anticipate gnu fortran compilers that have apparently
+		decided that such syntax is obsolete.  Thanks to Jan de Leeuw
+		for pointing this out based on gfortran-4.0 on osx 10.34.
+
+The version 0.59
+
+	o  the subroutine prtmt intended to print matrices in Harwell Boeing
+		format also caused problems for the new gfortran-4.0 compiler
+		since this routine (in sparskit) was never called it was
+		simply removed from sparskit.f.  Jan reports that this allows
+		SparseM to build on his configuration.
+
+The version 0.60
+
+	o  Jeffrey Chang pointed out that indexing failed to work properly
+		when there were repeated indices.  This has now been fixed,
+		but the resulting code is very slow due to looping on an
+		rbind/cbind operation.  This would be a useful feature to
+		speed up, if one were really into resampling.
+
+	o  In the process of making the changes mentioned above, it was
+		noted that [.matrix.coo should be exported via NAMESPACE.
+
+The version 0.61
+
+	 o  Jon Stearley (Sandia) noted that R segfaulted on some attempts
+                to use write.matrix.hb.  The segmentation fault was caused
+                by inappropriate use of default format statements that led
+		to incorrectly written indices.  Pin  modified the default
+		formats to reduce the probability of such occurances.
+
+	o  A Makefile was added to the vignette directory to rationalize
+		things a bit.
+The version 0.62
+
+	o  Brian Ripley pointed out a bug in iohb.c which caused a segfault
+		in some linux systems with gcc4 and was idenntified more
+		precisely using valgrind.  Some googling found a corrected
+		version at:
+		   http://www.cs.utk.edu/~eijkhout/salsa-salsa-docs/iohb_8c.html#a6
+
+	o Tom Blackwell (UMich) pointed out a problem with elemult which
+		turned out to be an unfortunate sequence of if/else's that
+		omitted to treat the default case properly.
+The version 0.63
+	o  The functionality of reading and writing Harwell-Boeing files
+		has been temporarily suspended pending reevaluation of
+		replacing iohb.c with code that doesn't cause memory
+		faults.  See Doug Bates Matrix package for a limited
+		alternative approach.
+The version 0.64
+	o  The function read.matrix.hb is replaced by a pure R function, purging
+		iohb.c to read Harwell-Boeing formatted files.  The new function
+		shamelessly plagarizes from Doug Bates's readHB function in the
+		Matrix package.  The main alterations were to add functionality for rhs's,
+		and adapt the function to SparseM matrix classes.  As of this moment
+		we have no plans to produce a parallel function for writing
+		Harwell-Boeing format.
+
+The version 0.65
+	o  The way that chol.default, and the setMethod calls for det and chol
+		for the class matrix were changed to conform to R 2.2, following
+		advice of Brian Ripley and Duncan Murdoch.
+The version 0.66
+	o  Bug found by Gregg Lind that made diag assigments fail when the
+		matrix was all zeros.  Modified [<-.matrix.coo to handle
+		NAs from the match() call.
+The version 0.67
+	o  Typos in section headings of .Rd files noted by Kurt.
+
+The version 0.68
+	o  Bug in slm.wfit fixed, thanks to i.m.s. white (edinburgh).
+The version 0.69
+	o  Bug in slm.fit.csr -- calls to chol and backsolve failed to
+		pass along the ... arguments.  Thanks to Jeff Racine.
+	o  Added code for extractAIC.slm and deviance.slm to permit
+		use of step() on fitted slm objects, code contributed
+		by Jeff Racine.
+	o  added setMethod for as.matrix to convert matrix.csc objects
+		that had been overlooked for a long time.
+	o  changed the printing onLoad at the suggestion of Martin M.
+
+The version 0.70
+	o  The setGeneric for chol was changed in accordance with another
+		suggestion by Martin M.  This seems to fix a conflict
+		with Matrix as described in an R-devel message by David
+		Pleydell (20 Feb 2006).
+The version 0.72
+	o  A ... argument was added to the as.matrix.[foo] functions to
+		accomodate a change in base R.
+The version 0.73
+	o  Thanks to contributions of Ben Shaby (Stat, Cornell) it is
+		now possible to coerce matrix.csr.chol objects back
+		to matrix.csr form, separate backsolve, and forwardsolve
+		functions are provided in addition to the original backsolve
+		that (still) does the double-backsolve, and it is now also
+		possible to get a log det value from chol instead of det.
+The version 0.74
+	o  Changed warning in as.matrix.csr to error condition when nnz != z$nnz,
+		and changed defintion of nnz to by sum(abs(x) >= eps) from >
+		to agree with fortran "csr" function.  Bug report from Mark
+		Robinson (wehi.edu.au)
+The version 0.76
+	o  Updated lsq.rda so that it was a proper s4 object as requested by BR
+		to conform  with the current R-devel.  Removed SaveImage line
+		from DESCRIPTION file.
+The version 0.77
+	o  Updated triogramX.R to triogramX.rda  similarly...
+The version 0.78
+	o  Fixed bug in [<-.matrix.coo".  When the rw was a two column matrix
+		there was an implicit assumption that x[-s] = x when s was empty
+		but this turned out to be wrong.
+The version 0.79
+        o I've redefine the class "matrix.csc.hb" in SparseM.R to include NULL
+                in the slots rhs.ra, rhs.dim and rhs.mode.
+        o read.matrix.hb will return NULL for rhs.ra, rhs.dim and rhs.mode if
+                the rhs is missing.
+	o bug in matrix.csr.elemul that returned an error when the result of
+		the multiplication was a matrix consisting entirely of zeros.
+		Thanks to Ian Erickson for this report.
+The version 0.80
+	o  At the suggestion of BDR the onLoad message was changed from cat()
+		to packageStartMessage()
+
+The version 0.82
+	o  default tmpmax in chol was increased from 10 * nrows to 30 * nrows.
+
+The version 0.83
+	o  setGeneric code for backsolve fixed so that it passes arguments to
+	the default method in base::backsolve.  Thanks to Achim Zeileis for
+	the report of a problem encountered when using lars, and to John
+	Chambers for patiently explaining what was going wrong.
+
+The version 0.84
+	o Several organisational changes of method definition, with the
+	main goal of improved cohabitation with the Matrix package:
+	- using less setGeneric() calls,
+	  e.g., chol() and norm() now should still work with Matrix present;
+	- defining methods for kronecker() instead of "%x%" which now works
+	  automagically via kronecker();
+	- defining methods for determinant(), in order to eventually
+	  deprecate those for det().
+	o default value of tmpmax increased to 50*nrow(x) with luck this will
+	make it less likely to get complaints about needed to increase it.
+The version 0.86
+	o  Changed License in DESCRIPTION to file License and added a somewhat
+	inflammatory comment to the Licence file that was sent to R-devel in
+	2009.
+The version 0.89
+	o  added a setAs for matrix to matrix.csr conversion
+The version 0.90
+	o  Conditionally removed assigninNamespace()  in onLoad as suggested
+	by BDR see mail from Oct 28 2011.
+The version 0.96
+	1.  Removed the LICENSE file that had described some uncertainties with respect 
+	to the license status of the code in src/cholesky.f.  These uncertainties have
+	now been resolved by the original authors, Esmond Ng and Barry Peyton,
+	declaring their code to be open source, and thus the quantreg package can now
+	be considered fully  GPL.  See the README file for further details.
+	
+	2.  fixed some vestigial calls to fprintf IOHBTerminate etc that
+	contained un-R-like printing or exit calls.
+
+	3.  Added a .Rinstignore file to deal with the vignette Makefile
+	complaint from R CMD check.
+
+	4.  Modified the .onLoad call to include a call to assignInNamespace()
+	to deal with a problem with kronecker.  (This is provisional until
+	2.15 is released.)  Thanks to BDR for helpful advice on this and the
+	other items in  this revision.
+
+The version 0.96
+	1.  Fixed bug in element by element exponentiation when one of the
+	arguments was scalar.
+
+The version 0.97
+	1.  Removed iohb.c and readwrite.c which were deprecated much earlier
+	and produced various warning flags from clang in the initial testing
+	of R 3.0 beta.
+
+The version 0.98
+	1.  Fixed various dimension problems identified by the new R CMD check 
+	protocol.
+
+The Version 1.00
+	1.  Added a paragraph in SparseM.solve.Rd about passed values of the
+	mysterious chol() storage allocation parameters.
+
+The version 1.01
+	1.  Removed the onLoad() call which seemed to cause problems for Uwe's
+	build of the windoz version due to some problem with the way %x% was
+	treated there.  Strange since whatever was happening was only supposed
+	to happen for R v2.15 and lesser.
+
+The version 1.03
+	1.  Moved SparseM.Rnw to a new vignettes directory at the suggestion
+	of Brian Ripley and removed the Makefile  for the vignette at the 
+	suggestion of Uwe Ligges.
+
+The version 1.05
+    1.  Attempted to fix the definition of det and associated methods to
+    conform with procedure used by the Matrix package.  If I understand this
+    properly, the idea is that det can be defined as base::det which defaults
+    to the generic determinant() and then by defining the environment(det)
+    as environment() this ensures that calls to det() from SparseM will use
+    the methods appropriate to SparseM objects.
+
+
+The version 1.7
+
+1.  Removed coerce from exports.
+
+The version 1.71
+
+1.  Fixed the REAL*8 and INTEGER*4 occurences in accordance with Kurt's email.
+
+The version 1.73
+
+1.  changed occurences of unix.time to system.time in accordance with Kurt's
+directive.
+
+The version 1.74
+
+1.  One more unix -> system
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/INDEX	(revision 2476)
@@ -0,0 +1,26 @@
+Ops.matrix.csr          Basic Linear Algebra for Sparse Matrices
+SparseM.hb              Harwell-Boeing Format Sparse Matrices
+SparseM.image           Image Plot for Sparse Matrices
+SparseM.ontology        Sparse Matrix Class
+SparseM.solve           Linear Equation Solving for Sparse Matrices
+character or NULL-class
+                        Class "character or NULL"
+lsq                     Least Squares Problems in Surveying
+matrix.coo-class        Class "matrix.coo"
+matrix.csc-class        Class "matrix.csc"
+matrix.csc.hb-class     Class "matrix.csc.hb"
+matrix.csr-class        Class "matrix.csr"
+matrix.csr.chol-class   Class "matrix.csr.chol"
+matrix.ssc-class        Class "matrix.ssc"
+matrix.ssc.hb-class     Class "matrix.ssc.hb"
+matrix.ssr-class        Class "matrix.ssr"
+mslm-class              Class "mslm"
+numeric or NULL-class   Class "numeric or NULL"
+slm                     Fit a linear regression model using sparse
+                        matrix algebra
+slm-class               Class "slm"
+slm.fit                 Internal slm fitting functions
+slm.methods             Methods for slm objects
+summary.mslm-class      Class "summary.mslm"
+summary.slm-class       Class "summary.slm"
+triogramX               A Design Matrix for a Triogram Problem
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/help/AnIndex	(revision 2476)
@@ -0,0 +1,209 @@
+!=,matrix.csr-method	SparseM.ops
+%%,matrix.csr-method	SparseM.ops
+%*%,ANY,ANY-method	SparseM.ops
+%*%,matrix,matrix.csr-method	SparseM.ops
+%*%,matrix.csr,matrix-method	SparseM.ops
+%*%,matrix.csr,matrix.csr-method	SparseM.ops
+%*%,matrix.csr,numeric-method	SparseM.ops
+%*%,numeric,matrix.csr-method	SparseM.ops
+%*%-methods	SparseM.ops
+%/%,matrix.csr-method	SparseM.ops
+&,matrix.csr-method	SparseM.ops
+*,matrix.csr-method	SparseM.ops
++,matrix.csr-method	SparseM.ops
+-,matrix.csr-method	SparseM.ops
+/,matrix.csr-method	SparseM.ops
+<,matrix.csr-method	SparseM.ops
+<=,matrix.csr-method	SparseM.ops
+==,matrix.csr-method	SparseM.ops
+>,matrix.csr-method	SparseM.ops
+>=,matrix.csr-method	SparseM.ops
+as.matrix,ANY-method	SparseM.ontology
+as.matrix,coo-methods	SparseM.ontology
+as.matrix,csc-methods	SparseM.ontology
+as.matrix,csr-method	SparseM.ontology
+as.matrix,matrix.coo-method	SparseM.ontology
+as.matrix,matrix.csc-method	SparseM.ontology
+as.matrix,matrix.csr-method	SparseM.ontology
+as.matrix,matrix.ssc-method	SparseM.ontology
+as.matrix,matrix.ssr-method	SparseM.ontology
+as.matrix,ssc-methods	SparseM.ontology
+as.matrix,ssr-methods	SparseM.ontology
+as.matrix.coo	SparseM.ontology
+as.matrix.coo,ANY-method	SparseM.ontology
+as.matrix.coo,matrix.coo-method	SparseM.ontology
+as.matrix.coo,matrix.csc-method	SparseM.ontology
+as.matrix.coo,matrix.csr-method	SparseM.ontology
+as.matrix.coo,matrix.ssc-method	SparseM.ontology
+as.matrix.coo,matrix.ssr-method	SparseM.ontology
+as.matrix.csc	SparseM.ontology
+as.matrix.csc,ANY-method	SparseM.ontology
+as.matrix.csc,matrix.coo-method	SparseM.ontology
+as.matrix.csc,matrix.csc-method	SparseM.ontology
+as.matrix.csc,matrix.csr-method	SparseM.ontology
+as.matrix.csc,matrix.ssc-method	SparseM.ontology
+as.matrix.csc,matrix.ssr-method	SparseM.ontology
+as.matrix.csr	SparseM.ontology
+as.matrix.csr,ANY-method	SparseM.ontology
+as.matrix.csr,matrix.coo-method	SparseM.ontology
+as.matrix.csr,matrix.csc-method	SparseM.ontology
+as.matrix.csr,matrix.csr.chol-method	SparseM.ontology
+as.matrix.csr,matrix.ssc-method	SparseM.ontology
+as.matrix.csr,matrix.ssr-method	SparseM.ontology
+as.matrix.ssc	SparseM.ontology
+as.matrix.ssc,ANY-method	SparseM.ontology
+as.matrix.ssc,matrix.coo-method	SparseM.ontology
+as.matrix.ssc,matrix.csc-method	SparseM.ontology
+as.matrix.ssc,matrix.csr-method	SparseM.ontology
+as.matrix.ssc,matrix.ssc-method	SparseM.ontology
+as.matrix.ssc,matrix.ssr-method	SparseM.ontology
+as.matrix.ssc.matrix.csr-method	SparseM.ontology
+as.matrix.ssr	SparseM.ontology
+as.matrix.ssr,ANY-method	SparseM.ontology
+as.matrix.ssr,matrix.coo-method	SparseM.ontology
+as.matrix.ssr,matrix.csc-method	SparseM.ontology
+as.matrix.ssr,matrix.csr-method	SparseM.ontology
+as.matrix.ssr,matrix.ssc-method	SparseM.ontology
+as.matrix.ssr,matrix.ssr-method	SparseM.ontology
+backsolve	SparseM.solve
+backsolve,ANY-method	SparseM.solve
+backsolve,matrix.csr.chol-method	SparseM.solve
+backsolve-methods	SparseM.solve
+cbind.matrix.csr	SparseM.ops
+character or NULL-class	character-null-class
+chol	SparseM.solve
+chol,ANY-method	SparseM.solve
+chol,matrix-method	SparseM.solve
+chol,matrix.csc-method	SparseM.solve
+chol,matrix.csr-method	SparseM.solve
+coef.slm	slm.methods
+coerce,matrix,matrix.csr-method	SparseM.ontology
+coerce,matrix.csr,matrix.diag.csr-method	SparseM.ontology
+coerce,numeric,matrix.diag.csr-method	SparseM.ontology
+coerce,vector,matrix.csr-method	SparseM.ontology
+coerce,vector,matrix.diag.csr-method	SparseM.ontology
+det,ANY-method	SparseM.ops
+det,matrix-method	SparseM.ops
+det,matrix.csr-method	SparseM.ops
+det,matrix.csr.chol-method	SparseM.ops
+determinant,matrix.csr,logical-method	SparseM.ops
+determinant,matrix.csr,missing-method	SparseM.ops
+determinant,matrix.csr.chol,logical-method	SparseM.ops
+determinant,matrix.csr.chol,missing-method	SparseM.ops
+deviance.slm	slm.methods
+diag,ANY-method	SparseM.ops
+diag,matrix.csr-method	SparseM.ops
+diag.assign,matrix.csr-method	SparseM.ops
+diag<-,ANY-method	SparseM.ops
+diag<-,matrix.csr-method	SparseM.ops
+diag<-,matrix.diag.csr-method	SparseM.ops
+diff,matrix.csr-method	SparseM.ops
+diff<-,ANY-method	SparseM.ops
+diff<-,matrix.csr-method	SparseM.ops
+dim,ANY-method	SparseM.ops
+dim,matrix.coo-method	SparseM.ops
+dim,matrix.csc-method	SparseM.ops
+dim,matrix.csr-method	SparseM.ops
+dim,matrix.ssc-method	SparseM.ops
+dim,matrix.ssr-method	SparseM.ops
+extractAIC.slm	slm.methods
+fitted.slm	slm.methods
+forwardsolve	SparseM.solve
+forwardsolve,matrix.csr.chol-method	SparseM.solve
+image	SparseM.image
+image,matrix.csr-method	SparseM.image
+initialize,ANY-method	SparseM.ontology
+initialize,matrix.coo-method	SparseM.ontology
+initialize,matrix.csr-method	SparseM.ontology
+is.matrix,coo-methods	SparseM.ontology
+is.matrix,csc-methods	SparseM.ontology
+is.matrix,csr-methods	SparseM.ontology
+is.matrix,ssc-methods	SparseM.ontology
+is.matrix,ssr-methods	SparseM.ontology
+is.matrix.coo	SparseM.ontology
+is.matrix.csc	SparseM.ontology
+is.matrix.csr	SparseM.ontology
+is.matrix.ssc	SparseM.ontology
+is.matrix.ssr	SparseM.ontology
+kronecker,matrix,matrix.csr-method	SparseM.ops
+kronecker,matrix.csr,matrix-method	SparseM.ops
+kronecker,matrix.csr,matrix.csr-method	SparseM.ops
+kronecker,matrix.csr,numeric-method	SparseM.ops
+kronecker,numeric,matrix.csr-method	SparseM.ops
+kronecker-methods	SparseM.ops
+lsq	lsq
+matrix.coo-class	matrix.coo-class
+matrix.csc	SparseM.ontology
+matrix.csc-class	matrix.csc-class
+matrix.csc.hb-class	matrix.csc.hb-class
+matrix.csr	SparseM.ontology
+matrix.csr-class	matrix.csr-class
+matrix.csr.chol-class	matrix.csr.chol-class
+matrix.diag.csr-class	matrix.csr-class
+matrix.ssc	SparseM.ontology
+matrix.ssc-class	matrix.ssc-class
+matrix.ssc.hb-class	matrix.ssc.hb-class
+matrix.ssr	SparseM.ontology
+matrix.ssr-class	matrix.ssr-class
+model.guess	SparseM.hb
+model.guess,matrix.csc.hb-method	SparseM.hb
+model.guess,matrix.ssc.hb-method	SparseM.hb
+model.matrix	SparseM.hb
+model.matrix,ANY-method	SparseM.hb
+model.matrix,matrix.csc.hb-method	SparseM.hb
+model.matrix,matrix.ssc.hb-method	SparseM.hb
+model.matrix.matrix.ssc.hb	SparseM.hb
+model.response	SparseM.hb
+model.response,ANY-method	SparseM.hb
+model.response,matrix.csc.hb-method	SparseM.hb
+model.response,matrix.ssc.hb-method	SparseM.hb
+model.xexact	SparseM.hb
+model.xexact,matrix.csc.hb-method	SparseM.hb
+model.xexact,matrix.ssc.hb-method	SparseM.hb
+mslm-class	mslm-class
+ncol,matrix.csr-method	SparseM.ops
+norm	SparseM.ops
+norm,ANY-method	SparseM.ops
+norm,matrix.csr,character-method	SparseM.ops
+norm,matrix.csr,missing-method	SparseM.ops
+norm,matrix.csr-method	SparseM.ops
+nrow,matrix.csr-method	SparseM.ops
+numeric or NULL-class	numeric-null-class
+Ops.matrix.csr	SparseM.ops
+Ops.matrix.diag.csr	SparseM.ops
+print.slm	slm.methods
+print.summary.slm	slm.methods
+rbind.matrix.csr	SparseM.ops
+read.matrix.hb	SparseM.hb
+residuals.slm	slm.methods
+slm	slm
+slm-class	slm-class
+slm.fit	slm.fit
+slm.fit.csr	slm.fit
+slm.methods	slm.methods
+slm.wfit	slm.fit
+solve	SparseM.solve
+solve,ANY-method	SparseM.solve
+solve,matrix.csr-method	SparseM.solve
+SparseM.hb	SparseM.hb
+SparseM.image	SparseM.image
+SparseM.ontology	SparseM.ontology
+SparseM.solve	SparseM.solve
+summary.mslm	slm.methods
+summary.mslm-class	summary.mslm-class
+summary.slm	slm.methods
+summary.slm-class	summary.slm-class
+t,ANY-method	SparseM.ops
+t,matrix.coo-method	SparseM.ops
+t,matrix.csc-method	SparseM.ops
+t,matrix.csr-method	SparseM.ops
+triogramX	triogramX
+X	triogramX
+[.matrix.coo	SparseM.ops
+[.matrix.csr	SparseM.ops
+[.matrix.diag.csr	SparseM.ops
+[<-.matrix.coo	SparseM.ops
+[<-.matrix.csr	SparseM.ops
+[<-.matrix.diag.csr	SparseM.ops
+^,matrix.csr-method	SparseM.ops
+|,matrix.csr-method	SparseM.ops
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/help/SparseM.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/help/SparseM.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/help/SparseM.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/help/SparseM.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/data/triogramX.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/data/triogramX.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/data/lsq.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/data/lsq.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/libs/SparseM.so.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/libs/SparseM.so.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/libs/SparseM.so.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.SparseM.so</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/libs/SparseM.so.dSYM/Contents/Resources/DWARF/SparseM.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/libs/SparseM.so.dSYM/Contents/Resources/DWARF/SparseM.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/libs/SparseM.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/libs/SparseM.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/extdata/lsq.rra
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/extdata/lsq.rra	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/extdata/lsq.rra	(revision 2476)
@@ -0,0 +1,6916 @@
+1UNSYMMETRIC LEAST-SQUARES PROBLEM.                  SAUNDERS 1979.     WELL1850
+          2715            45           548          1752           370          
+RRA                     1850           712          8758             0          
+(16I5)          (16I5)          (1P,5D16.9)         (1P,5D16.9)                 
+F                          1             0                                      
+    1   14   18   27   39   44   53   57   62   68   76   81   87   93  100  102
+  109  115  122  128  135  141  149  156  162  166  169  175  182  190  194  200
+  206  212  216  222  228  240  250  258  271  275  288  298  316  320  324  330
+  336  342  350  361  378  388  396  399  406  410  412  416  418  420  423  425
+  428  430  433  436  438  442  448  455  459  462  467  471  474  478  495  497
+  511  517  523  539  544  558  571  583  595  630  634  638  654  670  684  697
+  703  705  711  718  723  731  735  739  740  741  748  759  765  772  779  782
+  788  806  814  820  846  856  871  873  915  919  927  934  942  947  951  960
+  980  982  997 1000 1005 1014 1021 1023 1027 1032 1037 1048 1068 1080 1095 1104
+ 1107 1113 1115 1117 1134 1149 1158 1172 1174 1195 1200 1207 1213 1215 1216 1221
+ 1229 1235 1248 1252 1261 1267 1277 1283 1289 1295 1299 1301 1309 1317 1324 1340
+ 1347 1354 1373 1379 1386 1397 1406 1416 1421 1426 1432 1438 1439 1443 1444 1448
+ 1455 1456 1463 1468 1469 1475 1484 1492 1501 1510 1514 1516 1520 1522 1526 1530
+ 1538 1543 1548 1551 1579 1583 1587 1613 1637 1648 1651 1659 1674 1684 1688 1693
+ 1698 1701 1704 1707 1711 1714 1719 1724 1729 1734 1739 1743 1746 1749 1753 1756
+ 1759 1762 1764 1766 1768 1771 1776 1779 1783 1787 1792 1807 1810 1816 1820 1826
+ 1834 1836 1840 1848 1856 1861 1869 1879 1883 1892 1897 1902 1911 1915 1920 1928
+ 1937 1941 1952 1960 1968 1976 1986 1990 1998 2002 2010 2022 2030 2034 2038 2046
+ 2050 2054 2063 2068 2073 2080 2087 2092 2101 2109 2112 2115 2119 2124 2132 2139
+ 2151 2155 2160 2167 2174 2178 2181 2185 2189 2193 2200 2207 2219 2226 2230 2236
+ 2243 2247 2250 2254 2258 2261 2267 2271 2276 2284 2287 2292 2297 2300 2305 2310
+ 2320 2330 2335 2338 2341 2345 2349 2352 2355 2358 2361 2364 2367 2370 2373 2376
+ 2379 2383 2391 2395 2399 2409 2412 2419 2422 2426 2433 2436 2442 2449 2462 2465
+ 2472 2475 2479 2483 2490 2493 2501 2505 2508 2512 2522 2529 2533 2539 2543 2549
+ 2553 2560 2564 2573 2577 2580 2588 2592 2599 2603 2608 2612 2615 2618 2621 2625
+ 2630 2639 2642 2647 2650 2653 2661 2711 2752 2759 2779 2784 2802 2813 2824 2839
+ 2853 2896 2939 3065 3199 3261 3348 3376 3387 3397 3449 3686 3690 3698 3706 3711
+ 3719 3729 3733 3742 3752 3761 3765 3770 3778 3787 3791 3802 3810 3818 3826 3836
+ 3840 3848 3852 3860 3872 3880 3884 3888 3896 3900 3904 3913 3918 3923 3930 3937
+ 3942 3951 3959 3965 3969 3974 3982 3989 4001 4017 4028 4035 4050 4057 4069 4080
+ 4086 4093 4100 4104 4111 4117 4126 4134 4137 4142 4150 4160 4170 4180 4191 4199
+ 4211 4220 4223 4226 4229 4241 4249 4259 4272 4276 4286 4292 4299 4312 4322 4325
+ 4329 4343 4355 4362 4372 4379 4383 4393 4399 4403 4410 4414 4423 4430 4438 4449
+ 4453 4471 4475 4480 4489 4492 4497 4500 4503 4561 4602 4629 4652 4674 4703 4746
+ 4915 5198 5226 5247 5299 5536 5549 5558 5570 5575 5584 5589 5595 5603 5608 5614
+ 5620 5627 5633 5640 5646 5653 5659 5667 5674 5680 5686 5693 5701 5707 5713 5719
+ 5725 5737 5747 5755 5768 5781 5791 5809 5815 5821 5827 5835 5846 5863 5873 5881
+ 5888 5892 5898 5905 5908 5913 5917 5920 5926 5932 5948 5962 5975 5987 5999 6034
+ 6050 6066 6080 6093 6099 6105 6112 6117 6125 6129 6136 6147 6153 6160 6167 6173
+ 6191 6199 6205 6231 6241 6256 6298 6306 6313 6321 6325 6334 6354 6369 6374 6383
+ 6385 6389 6394 6405 6425 6437 6452 6461 6467 6484 6499 6508 6522 6543 6548 6555
+ 6561 6569 6575 6588 6592 6601 6607 6617 6623 6629 6635 6639 6647 6654 6670 6677
+ 6684 6703 6709 6716 6727 6736 6746 6751 6756 6762 6768 6775 6782 6788 6797 6805
+ 6814 6818 6826 6831 6836 6840 6844 6870 6894 6909 7309 7726 7784 7825 7852 7875
+ 7897 7926 7969 8138 8421 8449 8470 8522 8759                                   
+    1    3   26   28  164  166 1259 1262 1277 1279 1490 1686 1827    2    4    5
+    7    6    8    9   11 1263 1276 1540 1685 1828   10   12   13   15 1264 1275
+ 1538 1539 1560 1561 1684 1829   14   16   17   19 1274   18   20   21   23   25
+ 1265 1273 1683 1830   22   24  152  154   27   29   30   32 1491   31   33   35
+   37 1258 1492   34   36   38   39   41   43 1257 1493   40   42   44   46 1256
+   45   47   49   51 1255 1494   48   50   52   53   55 1254   54   56   57   59
+   61   67   69   58   60   62   64   66   72   74 1252 1496   63   65   76   78
+ 1251 1497   68   70   71   73   75 1253 1495   77   79   81   83 1250 1498   80
+   82   84   86   88 1249 1499   85   87   89   91 1248 1500   90   92   94   96
+ 1247 1501 1619 1848   93   95   97   98  100 1620 1847   99  101  102  104 1621
+ 1846  103  105  106  108  107  109  111  110  112  113  115 1622 1845  114  116
+  117  119 1623 1843 1844  118  120  121  123  372  376 1640 1842  122  124  125
+  127  126  128  129  131 1641 1838  130  132  133  135 1642 1837  134  136  137
+  139 1643 1836  138  140  142  144  141  143  145  146  148  150  147  149  167
+  169 1644 1835  151  153  192  194 1266 1267 1272 1537 1551 1559 1682 1831  155
+  157  298  300  302  304  306  308  401  403  156  158  159  161 1281 1488 1688
+ 1825  160  162  163  165  989  990 1260 1261 1278 1280 1489 1687 1826  168  170
+  171  173  172  174  175  177  294  296 1269 1523 1529 1534 1645 1658 1834  176
+  178  180 1270 1524 1528 1530 1533 1659 1833  179  181  182  184  186  195  197
+ 1268 1271 1514 1525 1527 1532 1536 1558 1660 1681 1832  183  185  187  189  188
+  190  191  193  196  198  199  201 1661 1680  200  202  203  205 1662 1679  204
+  206  207  209 1663 1678  208  210  211  213 1117 1118 1664 1677  212  214  215
+  217 1114 1115 1116 1119 1120 1665 1676  216  218  219  220  222  369  371 1077
+ 1078 1108 1109 1112 1113 1121 1122 1666 1675  221  223  224  226 1110 1111 1123
+ 1124 1667 1674  225  227  229  231  266  268 1668 1673  228  230  232  233  234
+  265  271  273 1669 1672  235  264 1670 1671  236  263  237  238  261  262  239
+  260  240  259  241  242  258  243  257  244  255  256  245  254  246  247  253
+  248  251  252  249  250  267  269  270  272  274  288  289  291 1646 1657  275
+  287 1518 1521 1535 1647 1656  276  277  279  286  278 1648 1655  280  283  284
+ 1650 1653  281  282 1651 1652  285 1649 1654  290  292  293  295  297  299 1282
+ 1283 1289 1290 1291 1486 1487 1574 1589 1598 1606 1613 1689 1701 1822  301  303
+  305  307  309  311  402  404  410 1292 1485 1690 1700 1702 1821 1823  310  312
+  314 1691 1703 1824  313  315  316  318 1692 1704  317  319  321  323  991  993
+ 1061 1168 1169 1170 1171 1221 1222 1288 1693 1705  320  322  324  325  327  326
+  328  330  424 1062 1063 1166 1167 1172 1173 1219 1220 1694 1706  329  331  332
+  334 1007 1064 1065 1164 1165 1174 1175 1217 1218  333  335  337 1066 1139 1140
+ 1162 1163 1176 1177 1215 1216  336  338  339  341  344 1160 1161 1180 1181 1213
+ 1214 1287  340  342  343  345  346  348 1067 1068 1089 1090 1096 1097 1135 1136
+ 1143 1144 1150 1151 1154 1155 1156 1157 1182 1183 1186 1187 1188 1198 1199 1205
+ 1206 1209 1210 1285 1286  347  349  350  352  351  353  354  356  355  357  358
+  360 1004 1069 1070 1085 1086 1100 1101 1131 1132 1196 1197 1284  359  361  363
+ 1005 1006 1071 1072 1083 1084 1102 1103 1129 1130 1189 1190 1195  362  364  365
+  367 1073 1074 1081 1082 1104 1105 1127 1128 1191 1192  366  368  370 1075 1076
+ 1079 1080 1106 1107 1125 1126 1193 1194  373  377  379 1625 1638 1841  374  375
+  378  380  382 1626 1637 1840  381  383  384  386 1627 1636 1839  385  387  389
+ 1628 1635  388  390  392  394  395 1629 1631 1633  391  393 1630 1634  396  397
+  400 1632  398  399  405  406  409 1293 1484 1699 1820  407  408  411  412  414
+  447  450 1294 1483 1698 1819  413  415  417  968 1697 1818  416  418  419  421
+  427 1696 1708  420  422  423  425  992 1695 1707  426  428  430  429  431  432
+  434 1709 1816  433  435  436  438  975  983  984  985  986  994  995 1008 1009
+ 1010 1012 1017 1710 1815  437  439  442  453  455  471  473 1298  440  441  443
+  445 1297 1481  444  446  448  449  451  452  967  969  970  971  972  973  974
+  976  977  978  979  980  981  982  987  988 1295 1296 1482 1817  454  456  457
+  459  474  475  477 1299 1480 1814  458  460  464  465  826  895  896  897  898
+  899  900  908  909 1711 1812  461  462  463  466  468  530  876  877  878  879
+  880  881  882  883  884  885  886  887  888  889  890  891  892  893  894  901
+  902  903  904  905  906  996  997  998  999 1001 1003 1011 1013 1014 1015 1016
+ 1712 1811  467  469  470  472  476  478  480  825  827 1300 1479 1813  479  481
+  483  828  829 1301 1478  482  484  485  487  830 1302 1303 1477  486  488  490
+  610  612  489  491  493 1307  492  494  495  497  925  926 1308 1310 1385  496
+  498  504  907  914  915  916  924  927  929  930  931  932  933  934  935  936
+  937 1018 1387  499  500  501  506  508  691  693  928  938  939  940  941  942
+  943 1019 1715 1805  502  503  505  507  509  511 1714 1806  510  512  518  524
+  526  910  911  912  913  513  516  517  519  520  522  523  514 1808  515  521
+ 1807 1809  525  527  533 1713 1810  528  529  531  532  534  535  537  538  540
+  684  686  687  689 1021 1024 1031  536  553  557  688  690  692 1020 1027 1028
+ 1032 1048 1049 1057 1361 1363 1371 1420 1422 1716 1804  539  543  681  683  685
+ 1039 1044 1045 1052 1053 1717 1803  541  545  547  548  674  676  678  680  682
+ 1038 1433 1718 1719 1799 1801  542  544  677  679 1037 1434 1720 1800 1802  546
+  549  551  550  552  554  558  562 1033  555  556  559  560  561  563  564  566
+  638  842  945  946 1035 1342 1344 1357 1359 1373 1375 1415 1419  565  567  569
+  841  951  954  957  958  961  962 1336 1337 1376 1377 1412  568  570  572  815
+  817  840  949  950  965  571  575  579  816  839  966 1312 1313 1317 1319 1320
+ 1335 1406 1463  573  574  576  577 1022 1023 1025 1026 1029 1030 1040 1041 1042
+ 1043 1046 1047 1050 1051 1054 1055 1058 1059 1060  578  580  582 1000 1002  581
+  583  585  836  838 1322 1332  584  586  587  589  837 1780  588  590  591  592
+  595  597  598  615  594  614  616  618 1451 1779 1781 1787  596  599  602 1456
+ 1783 1785  600  601  603  605  835 1326 1328 1392 1393 1395 1458 1470 1784  604
+  606  608  834  607  609  611  613  831  832  833 1471 1472  617  619  621 1450
+ 1778 1788  620  622  624  640  642  847 1449 1776 1777 1789  623  625  628  846
+ 1775 1790  626  627  629  630  632  845  631  633  635  844 1347 1354  634  636
+  843 1346  637  639  641  643  644  646  807  811  812  814  645  647  648  650
+  848 1448 1734 1791  649  651  653  849 1447 1735 1792  652  654  655  657  658
+  753  755  850  851  874 1439 1446 1727 1736 1737 1793  656  659  661  852  873
+ 1726 1794  660  662  664  853  872 1725 1795  663  665  666  668  694  696  749
+  750  752  854  869  870  871 1437 1438 1723 1746 1759 1796  667  669  671 1436
+ 1722 1797  670  672  673  675 1435 1721 1798  695  697  698  700  702  714  716
+  855 1745 1747 1760  699  701  703  705  707  856  859 1748 1761  704  706  708
+  710  711  713  857 1749 1762 1763  709  712  858 1750 1764  715  717  719 1744
+ 1757  718  720  722  724 1743 1756  721  723  727  864 1753 1767  725  726  728
+  731  733  729  730  732  734  736  735  737  740  866 1741 1754 1769  738  739
+  741  743  865 1742 1755 1768  742  744  747  768  770  745  746  748  751  868
+ 1724 1758  754  756  757  759  875 1440 1445 1728 1738  758  760  762 1441 1444
+ 1729 1739 1771  761  763  765  767 1442 1443 1730 1740 1770  764  766  774  775
+  781  786  789  790  792  769  771  778  867  772  773  776  777  779  780  782
+  783  784  785  787  788  791  793  796  798  794  795  797  799  800  802 1731
+ 1772  801  803  805 1732 1773  804  806  809 1733 1774  808  810  813  818  819
+  820  821  822  823  824 1236 1237 1238 1245 1246 1502 1503 1504 1505 1506 1581
+ 1587 1596 1603 1614 1615 1616 1617 1618 1849 1850  860  862 1751 1765  861  863
+ 1752 1766  917  919  921  923 1224 1226 1228 1231 1233 1235 1239 1241 1243 1508
+ 1510 1512 1541 1543 1545 1547 1562 1564 1566 1568 1570 1572  918  920  922 1223
+ 1225 1227 1229 1230 1232 1234 1240 1242 1244 1507 1509 1511 1542 1544 1546 1563
+ 1565 1567 1569 1571  944  947  948  952  953  955  956  959  960  963  964 1034
+ 1036 1056 1087 1088 1098 1099 1133 1134 1207 1208 1091 1092 1093 1094 1095 1145
+ 1146 1147 1148 1149 1200 1201 1202 1203 1204 1137 1138 1141 1142 1158 1159 1178
+ 1179 1211 1212 1152 1153 1184 1185 1304 1305 1389 1473 1476 1306 1388 1390 1474
+ 1475 1309 1386 1391 1311 1384 1404 1314 1403 1405 1315 1383 1402 1409 1316 1401
+ 1408 1318 1334 1400 1407 1464 1321 1333 1399 1462 1465 1323 1331 1398 1461 1466
+ 1324 1330 1397 1460 1467 1325 1329 1396 1459 1468 1327 1394 1457 1469 1338 1378
+ 1411 1339 1379 1410 1340 1380 1382 1413 1341 1381 1414 1343 1358 1374 1345 1355
+ 1417 1348 1353 1349 1351 1350 1352 1356 1416 1418 1360 1370 1423 1424 1432 1362
+ 1372 1421 1364 1369 1425 1431 1365 1367 1427 1429 1366 1368 1426 1428 1430 1513
+ 1515 1516 1517 1526 1531 1548 1549 1550 1552 1553 1554 1555 1556 1557 1519 1520
+ 1522 1573 1575 1590 1599 1605 1612 1577 1584 1601 1607 1579 1585 1592 1594 1609
+ 1611 1580 1582 1586 1588 1595 1597 1602 1604 1624 1639    1    2    3    4    5
+    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21
+   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37
+   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53
+   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69
+   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85
+   86   87   88   89   90   91   92   93   94   95   96   97   98   99  100  101
+  102  103  104  105  106  107  108  109  110  111  112  113  114  115  116  117
+  118  119  120  121  122  123  124  125  126  127  128  129  130  131  132  133
+  134  135  136  137  138  139  140  141  142  143  144  145  146  147  148  149
+  150  151  152  153  154  155  156  157  158  159  160  161  162  163  164  165
+  166  167  168  169  170  171  172  173  174  175  176  177  178  179  180  181
+  182  183  184  185  186  187  188  189  190  191  192  193  194  195  196  197
+  198  199  200  201  202  203  204  205  206  207  208  209  210  211  212  213
+  214  215  216  217  218  219  220  221  222  223  224  225  226  227  228  229
+  230  231  232  233  234  235  236  237  238  239  240  241  242  243  244  245
+  246  247  248  249  250  251  252  253  254  255  256  257  258  259  260  261
+  262  263  264  265  266  267  268  269  270  271  272  273  274  275  276  277
+  278  279  280  281  282  283  284  285  286  287  288  289  290  291  292  293
+  294  295  296  297  298  299  300  301  302  303  304  305  306  307  308  309
+  310  311  312  313  314  315  316  317  318  319  320  321  322  323  324  325
+  326  327  328  329  330  331  332  333  334  335  336  337  338  339  340  341
+  342  343  344  345  346  347  348  349  350  351  352  353  354  355  356  357
+  358  359  360  361  362  363  364  365  366  367  368  369  370  371  372  373
+  374  375  376  377  378  379  380  381  382  383  384  385  386  387  388  389
+  390  391  392  393  394  395  396  397  398  399  400  401  402  403  404  405
+  406  407  408  409  410  411  412  413  414  415  416  417  418  419  420  421
+  422  423  424  425  426  427  428  429  430  431  432  433  434  435  436  437
+  438  439  440  441  442  443  444  445  446  447  448  449  450  451  452  453
+  454  455  456  457  458  459  460  461  462  463  464  465  466  467  468  469
+  470  471  472  473  474  475  476  477  478  479  480  481  482  483  484  485
+  486  487  488  489  490  491  492  493  494  495  496  497  498  499  500  501
+  502  503  504  505  506  507  508  509  510  511  512  513  514  515  516  517
+  518  519  520  521  522  523  524  525  526  527  528  529  530  531  532  533
+  534  535  536  537  538  539  540  541  542  543  544  545  546  547  548  549
+  550  551  552  553  554  555  556  557  558  559  560  561  562  563  564  565
+  566  567  568  569  570  571  572  573  574  575  576  577  578  579  580  581
+  582  583  584  585  586  587  588  589  590  591  592  593  594  595  596  597
+  598  599  600  601  602  603  604  605  606  607  608  609  610  611  612  613
+  614  615  616  617  618  619  620  621  622  623  624  625  626  627  628  629
+  630  631  632  633  634  635  636  637  638  639  640  641  642  643  644  645
+  646  647  648  649  650  651  652  653  654  655  656  657  658  659  660  661
+  662  663  664  665  666  667  668  669  670  671  672  673  674  675  676  677
+  678  679  680  681  682  683  684  685  686  687  688  689  690  691  692  693
+  694  695  696  697  698  699  700  701  702  703  704  705  706  707  708  709
+  710  711  712  713  714  715  716  717  718  719  720  721  722  723  724  725
+  726  727  728  729  730  731  732  733  734  735  736  737  738  739  740  741
+  742  743  744  745  746  747  748  749  750  751  752  753  754  755  756  757
+  758  759  760  761  762  763  764  765  766  767  768  769  770  771  772  773
+  774  775  776  777  778  779  780  781  782  783  784  785  786  787  788  789
+  790  791  792  793  794  795  796  797  798  799  800  801  802  803  804  805
+  806  807  808  809  810  811  812  813  814  815  816  817  818  819  820  821
+  822  823  824  825  826  827  828  829  830  831  832  833  834  835  836  837
+  838  839  840  841  842  843  844  845  846  847  848  849  850  851  852  853
+  854  855  856  857  858  859  860  861  862  863  864  865  866  867  868  869
+  870  871  872  873  874  875  876  877  878  879  880  881  882  883  884  885
+  886  887  888  889  890  891  892  893  894  895  896  897  898  899  900  901
+  902  903  904  905  906  907  908  909  910  911  912  913  914  915  916  917
+  918  919  920  921  922  923  924  925  926  927  928  929  930  931  932  933
+  934  935  936  937  938  939  940  941  942  943  944  945  946  947  948  949
+  950  951  952  953  954  955  956  957  958  959  960  961  962  963  964  965
+  966  967  968  969  970  971  972  973  974  975  976  977  978  979  980  981
+  982  983  984  985  986  987  988  989  990  991  992  993  994  995  996  997
+  998  999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013
+ 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029
+ 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045
+ 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061
+ 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077
+ 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093
+ 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109
+ 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125
+ 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141
+ 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157
+ 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173
+ 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189
+ 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205
+ 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221
+ 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237
+ 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253
+ 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269
+ 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285
+ 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301
+ 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317
+ 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333
+ 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349
+ 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365
+ 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381
+ 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397
+ 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413
+ 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429
+ 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445
+ 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461
+ 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477
+ 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493
+ 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509
+ 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525
+ 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541
+ 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557
+ 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573
+ 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589
+ 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605
+ 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621
+ 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637
+ 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653
+ 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669
+ 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685
+ 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701
+ 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717
+ 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733
+ 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749
+ 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765
+ 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781
+ 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797
+ 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813
+ 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829
+ 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845
+ 1846 1847 1848 1849 1850    1    2    3    4    5    6    7    8    9   10   11
+   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27
+   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43
+   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59
+   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75
+   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91
+   92   93   94   95   96   97   98   99  100  101  102  103  104  105  106  107
+  108  109  110  111  112  113  114  115  116  117  118  119  120  121  122  123
+  124  125  126  127  128  129  130  131  132  133  134  135  136  137  138  139
+  140  141  142  143  144  145  146  147  148  149  150  151  152  153  154  155
+  156  157  158  159  160  161  162  163  164  165  166  167  168  169  170  171
+  172  173  174  175  176  177  178  179  180  181  182  183  184  185  186  187
+  188  189  190  191  192  193  194  195  196  197  198  199  200  201  202  203
+  204  205  206  207  208  209  210  211  212  213  214  215  216  217  218  219
+  220  221  222  223  224  225  226  227  228  229  230  231  232  233  234  235
+  236  237  238  239  240  241  242  243  244  245  246  247  248  249  250  251
+  252  253  254  255  256  257  258  259  260  261  262  263  264  265  266  267
+  268  269  270  271  272  273  274  275  276  277  278  279  280  281  282  283
+  284  285  286  287  288  289  290  291  292  293  294  295  296  297  298  299
+  300  301  302  303  304  305  306  307  308  309  310  311  312  313  314  315
+  316  317  318  319  320  321  322  323  324  325  326  327  328  329  330  331
+  332  333  334  335  336  337  338  339  340  341  342  343  344  345  346  347
+  348  349  350  351  352  353  354  355  356  357  358  359  360  361  362  363
+  364  365  366  367  368  369  370  371  372  373  374  375  376  377  378  379
+  380  381  382  383  384  385  386  387  388  389  390  391  392  393  394  395
+  396  397  398  399  400  401  402  403  404  405  406  407  408  409  410  411
+  412  413  414  415  416  417  418  419  420  421  422  423  424  425  426  427
+  428  429  430  431  432  433  434  435  436  437  438  439  440  441  442  443
+  444  445  446  447  448  449  450  451  452  453  454  455  456  457  458  459
+  460  461  462  463  464  465  466  467  468  469  470  471  472  473  474  475
+  476  477  478  479  480  481  482  483  484  485  486  487  488  489  490  491
+  492  493  494  495  496  497  498  499  500  501  502  503  504  505  506  507
+  508  509  510  511  512  513  514  515  516  517  518  519  520  521  522  523
+  524  525  526  527  528  529  530  531  532  533  534  535  536  537  538  539
+  540  541  542  543  544  545  546  547  548  549  550  551  552  553  554  555
+  556  557  558  559  560  561  562  563  564  565  566  567  568  569  570  571
+  572  573  574  575  576  577  578  579  580  581  582  583  584  585  586  587
+  588  589  590  591  592  593  594  595  596  597  598  599  600  601  602  603
+  604  605  606  607  608  609  610  611  612  613  614  615  616  617  618  619
+  620  621  622  623  624  625  626  627  628  629  630  631  632  633  634  635
+  636  637  638  639  640  641  642  643  644  645  646  647  648  649  650  651
+  652  653  654  655  656  657  658  659  660  661  662  663  664  665  666  667
+  668  669  670  671  672  673  674  675  676  677  678  679  680  681  682  683
+  684  685  686  687  688  689  690  691  692  693  694  695  696  697  698  699
+  700  701  702  703  704  705  706  707  708  709  710  711  712  713  714  715
+  716  717  718  719  720  721  722  723  724  725  726  727  728  729  730  731
+  732  733  734  735  736  737  738  739  740  741  742  743  744  745  746  747
+  748  749  750  751  752  753  754  755  756  757  758  759  760  761  762  763
+  764  765  766  767  768  769  770  771  772  773  774  775  776  777  778  779
+  780  781  782  783  784  785  786  787  788  789  790  791  792  793  794  795
+  796  797  798  799  800  801  802  803  804  805  806  807  808  809  810  811
+  812  813  814  815  816  817  818  819  820  821  822  823  824  825  826  827
+  828  829  830  831  832  833  834  835  836  837  838  839  840  841  842  843
+  844  845  846  847  848  849  850  851  852  853  854  855  856  857  858  859
+  860  861  862  863  864  865  866  867  868  869  870  871  872  873  874  875
+  876  877  878  879  880  881  882  883  884  885  886  887  888  889  890  891
+  892  893  894  895  896  897  898  899  900  901  902  903  904  905  906  907
+  908  909  910  911  912  913  914  915  916  917  918  919  920  921  922  923
+  924  925  926  927  928  929  930  931  932  933  934  935  936  937  938  939
+  940  941  942  943  944  945  946  947  948  949  950  951  952  953  954  955
+  956  957  958  959  960  961  962  963  964  965  966  967  968  969  970  971
+  972  973  974  975  976  977  978  979  980  981  982  983  984  985  986  987
+  988  989  990  991  992  993  994  995  996  997  998  999 1000 1001 1002 1003
+ 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019
+ 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035
+ 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051
+ 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067
+ 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083
+ 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099
+ 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115
+ 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131
+ 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147
+ 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163
+ 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179
+ 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195
+ 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211
+ 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227
+ 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243
+ 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259
+ 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275
+ 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291
+ 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307
+ 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323
+ 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339
+ 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355
+ 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371
+ 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387
+ 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403
+ 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419
+ 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435
+ 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451
+ 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467
+ 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483
+ 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499
+ 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515
+ 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531
+ 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547
+ 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563
+ 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579
+ 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595
+ 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611
+ 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627
+ 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643
+ 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659
+ 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675
+ 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691
+ 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707
+ 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723
+ 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739
+ 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755
+ 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771
+ 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787
+ 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803
+ 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819
+ 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835
+ 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850    1
+    3   26   28  164  166 1259 1262 1277 1279 1490 1686 1827    6    8    9   11
+ 1263 1276 1540 1685 1828   10   12   13   15 1264 1275 1538 1539 1560 1561 1684
+ 1829   14   16   17   19 1274   18   20   21   23   25 1265 1273 1683 1830   27
+   29   30   32 1491   31   33   35   37 1258 1492   34   36   38   39   41   43
+ 1257 1493   40   42   44   46 1256   45   47   49   51 1255 1494   48   50   52
+   53   55 1254   62   64   66   72   74 1252 1496   63   65   76   78 1251 1497
+   68   70   71   73   75 1253 1495   77   79   81   83 1250 1498   80   82   84
+   86   88 1249 1499   85   87   89   91 1248 1500   90   92   94   96 1247 1501
+ 1619 1848   93   95   97   98  100 1620 1847   99  101  102  104 1621 1846  110
+  112  113  115 1622 1845  114  116  117  119 1623 1843 1844  118  120  121  123
+  372  376 1640 1842  126  128  129  131 1641 1838  130  132  133  135 1642 1837
+  134  136  137  139 1643 1836  147  149  167  169 1644 1835  151  153  192  194
+ 1266 1267 1272 1537 1551 1559 1682 1831  155  157  298  300  302  304  306  308
+  401  403  156  158  159  161 1281 1488 1688 1825  160  162  163  165  989  990
+ 1260 1261 1278 1280 1489 1687 1826  172  174  175  177  294  296 1269 1523 1529
+ 1534 1645 1658 1834  176  178  180 1270 1524 1528 1530 1533 1659 1833  179  181
+  182  184  186  195  197 1268 1271 1514 1525 1527 1532 1536 1558 1660 1681 1832
+  196  198  199  201 1661 1680  200  202  203  205 1662 1679  204  206  207  209
+ 1663 1678  208  210  211  213 1117 1118 1664 1677  212  214  215  217 1114 1115
+ 1116 1119 1120 1665 1676  216  218  219  220  222  369  371 1077 1078 1108 1109
+ 1112 1113 1121 1122 1666 1675  221  223  224  226 1110 1111 1123 1124 1667 1674
+  225  227  229  231  266  268 1668 1673  233  234  265  271  273 1669 1672  235
+  264 1670 1671  274  288  289  291 1646 1657  275  287 1518 1521 1535 1647 1656
+  278 1648 1655  280  283  284 1650 1653  281  282 1651 1652  285 1649 1654  310
+  312  314 1691 1703 1824  313  315  316  318 1692 1704  317  319  321  323  991
+  993 1061 1168 1169 1170 1171 1221 1222 1288 1693 1705  326  328  330  424 1062
+ 1063 1166 1167 1172 1173 1219 1220 1694 1706  329  331  332  334 1007 1064 1065
+ 1164 1165 1174 1175 1217 1218  333  335  337 1066 1139 1140 1162 1163 1176 1177
+ 1215 1216  336  338  339  341  344 1160 1161 1180 1181 1213 1214 1287  340  342
+  343  345  346  348 1067 1068 1089 1090 1096 1097 1135 1136 1143 1144 1150 1151
+ 1154 1155 1156 1157 1182 1183 1186 1187 1188 1198 1199 1205 1206 1209 1210 1285
+ 1286  355  357  358  360 1004 1069 1070 1085 1086 1100 1101 1131 1132 1196 1197
+ 1284  359  361  363 1005 1006 1071 1072 1083 1084 1102 1103 1129 1130 1189 1190
+ 1195  362  364  365  367 1073 1074 1081 1082 1104 1105 1127 1128 1191 1192  366
+  368  370 1075 1076 1079 1080 1106 1107 1125 1126 1193 1194  373  377  379 1625
+ 1638 1841  378  380  382 1626 1637 1840  381  383  384  386 1627 1636 1839  385
+  387  389 1628 1635  388  390  392  394  395 1629 1631 1633  396  397  400 1632
+  405  406  409 1293 1484 1699 1820  407  408  411  412  414  447  450 1294 1483
+ 1698 1819  413  415  417  968 1697 1818  416  418  419  421  427 1696 1708  420
+  422  423  425  992 1695 1707  429  431  432  434 1709 1816  433  435  436  438
+  975  983  984  985  986  994  995 1008 1009 1010 1012 1017 1710 1815  437  439
+  442  453  455  471  473 1298  440  441  443  445 1297 1481  444  446  448  449
+  451  452  967  969  970  971  972  973  974  976  977  978  979  980  981  982
+  987  988 1295 1296 1482 1817  454  456  457  459  474  475  477 1299 1480 1814
+  458  460  464  465  826  895  896  897  898  899  900  908  909 1711 1812  463
+  466  468  530  876  877  878  879  880  881  882  883  884  885  886  887  888
+  889  890  891  892  893  894  901  902  903  904  905  906  996  997  998  999
+ 1001 1003 1011 1013 1014 1015 1016 1712 1811  476  478  480  825  827 1300 1479
+ 1813  479  481  483  828  829 1301 1478  482  484  485  487  830 1302 1303 1477
+  489  491  493 1307  492  494  495  497  925  926 1308 1310 1385  496  498  504
+  907  914  915  916  924  927  929  930  931  932  933  934  935  936  937 1018
+ 1387  501  506  508  691  693  928  938  939  940  941  942  943 1019 1715 1805
+  507  509  511 1714 1806  510  512  518  524  526  910  911  912  913  514 1808
+  515  521 1807 1809  525  527  533 1713 1810  535  537  538  540  684  686  687
+  689 1021 1024 1031  536  553  557  688  690  692 1020 1027 1028 1032 1048 1049
+ 1057 1361 1363 1371 1420 1422 1716 1804  539  543  681  683  685 1039 1044 1045
+ 1052 1053 1717 1803  541  545  547  548  674  676  678  680  682 1038 1433 1718
+ 1719 1799 1801  542  544  677  679 1037 1434 1720 1800 1802  550  552  554  558
+  562 1033  561  563  564  566  638  842  945  946 1035 1342 1344 1357 1359 1373
+ 1375 1415 1419  565  567  569  841  951  954  957  958  961  962 1336 1337 1376
+ 1377 1412  568  570  572  815  817  840  949  950  965  571  575  579  816  839
+  966 1312 1313 1317 1319 1320 1335 1406 1463  576  577 1022 1023 1025 1026 1029
+ 1030 1040 1041 1042 1043 1046 1047 1050 1051 1054 1055 1058 1059 1060  578  580
+  582 1000 1002  581  583  585  836  838 1322 1332  584  586  587  589  837 1780
+  594  614  616  618 1451 1779 1781 1787  596  599  602 1456 1783 1785  600  601
+  603  605  835 1326 1328 1392 1393 1395 1458 1470 1784  604  606  608  834  607
+  609  611  613  831  832  833 1471 1472  617  619  621 1450 1778 1788  620  622
+  624  640  642  847 1449 1776 1777 1789  623  625  628  846 1775 1790  626  627
+  629  630  632  845  631  633  635  844 1347 1354  634  636  843 1346  645  647
+  648  650  848 1448 1734 1791  649  651  653  849 1447 1735 1792  652  654  655
+  657  658  753  755  850  851  874 1439 1446 1727 1736 1737 1793  656  659  661
+  852  873 1726 1794  660  662  664  853  872 1725 1795  663  665  666  668  694
+  696  749  750  752  854  869  870  871 1437 1438 1723 1746 1759 1796  667  669
+  671 1436 1722 1797  670  672  673  675 1435 1721 1798  695  697  698  700  702
+  714  716  855 1745 1747 1760  699  701  703  705  707  856  859 1748 1761  704
+  706  708  710  711  713  857 1749 1762 1763  709  712  858 1750 1764  715  717
+  719 1744 1757  718  720  722  724 1743 1756  721  723  727  864 1753 1767  735
+  737  740  866 1741 1754 1769  739  741  743  865 1742 1755 1768  746  748  751
+  868 1724 1758  754  756  757  759  875 1440 1445 1728 1738  758  760  762 1441
+ 1444 1729 1739 1771  761  763  765  767 1442 1443 1730 1740 1770  769  771  778
+  867  794  795  797  799  800  802 1731 1772  801  803  805 1732 1773  804  806
+  809 1733 1774  860  862 1751 1765  861  863 1752 1766  917  919  921  923 1224
+ 1226 1228 1231 1233 1235 1239 1241 1243 1508 1510 1512 1541 1543 1545 1547 1562
+ 1564 1566 1568 1570 1572  918  920  922 1223 1225 1227 1229 1230 1232 1234 1240
+ 1242 1244 1507 1509 1511 1542 1544 1546 1563 1565 1567 1569 1571 1513 1515 1516
+ 1517 1526 1531 1548 1549 1550 1552 1553 1554 1555 1556 1557    1    2    3    4
+    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20
+   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36
+   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52
+   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68
+   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84
+   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99  100
+  101  102  103  104  105  106  107  108  109  110  111  112  113  114  115  116
+  117  118  119  120  121  122  123  124  125  126  127  128  129  130  131  132
+  133  134  135  136  137  138  139  140  141  142  143  144  145  146  147  148
+  149  150  151  152  153  154  155  156  157  158  159  160  161  162  163  164
+  165  166  167  168  169  170  171  172  173  174  175  176  177  178  179  180
+  181  182  183  184  185  186  187  188  189  190  191  192  193  194  195  196
+  197  198  199  200  201  202  203  204  205  206  207  208  209  210  211  212
+  213  214  215  216  217  218  219  220  221  222  223  224  225  226  227  228
+  229  230  231  232  233  234  235  236  237  238  239  240  241  242  243  244
+  245  246  247  248  249  250  251  252  253  254  255  256  257  258  259  260
+  261  262  263  264  265  266  267  268  269  270  271  272  273  274  275  276
+  277  278  279  280  281  282  283  284  285  286  287  288  289  290  291  292
+  293  294  295  296  297  298  299  300  301  302  303  304  305  306  307  308
+  309  310  311  312  313  314  315  316  317  318  319  320  321  322  323  324
+  325  326  327  328  329  330  331  332  333  334  335  336  337  338  339  340
+  341  342  343  344  345  346  347  348  349  350  351  352  353  354  355  356
+  357  358  359  360  361  362  363  364  365  366  367  368  369  370  371  372
+  373  374  375  376  377  378  379  380  381  382  383  384  385  386  387  388
+  389  390  391  392  393  394  395  396  397  398  399  400  401  402  403  404
+  405  406  407  408  409  410  411  412  413  414  415  416  417  418  419  420
+  421  422  423  424  425  426  427  428  429  430  431  432  433  434  435  436
+  437  438  439  440  441  442  443  444  445  446  447  448  449  450  451  452
+  453  454  455  456  457  458  459  460  461  462  463  464  465  466  467  468
+  469  470  471  472  473  474  475  476  477  478  479  480  481  482  483  484
+  485  486  487  488  489  490  491  492  493  494  495  496  497  498  499  500
+  501  502  503  504  505  506  507  508  509  510  511  512  513  514  515  516
+  517  518  519  520  521  522  523  524  525  526  527  528  529  530  531  532
+  533  534  535  536  537  538  539  540  541  542  543  544  545  546  547  548
+  549  550  551  552  553  554  555  556  557  558  559  560  561  562  563  564
+  565  566  567  568  569  570  571  572  573  574  575  576  577  578  579  580
+  581  582  583  584  585  586  587  588  589  590  591  592  593  594  595  596
+  597  598  599  600  601  602  603  604  605  606  607  608  609  610  611  612
+  613  614  615  616  617  618  619  620  621  622  623  624  625  626  627  628
+  629  630  631  632  633  634  635  636  637  638  639  640  641  642  643  644
+  645  646  647  648  649  650  651  652  653  654  655  656  657  658  659  660
+  661  662  663  664  665  666  667  668  669  670  671  672  673  674  675  676
+  677  678  679  680  681  682  683  684  685  686  687  688  689  690  691  692
+  693  694  695  696  697  698  699  700  701  702  703  704  705  706  707  708
+  709  710  711  712  713  714  715  716  717  718  719  720  721  722  723  724
+  725  726  727  728  729  730  731  732  733  734  735  736  737  738  739  740
+  741  742  743  744  745  746  747  748  749  750  751  752  753  754  755  756
+  757  758  759  760  761  762  763  764  765  766  767  768  769  770  771  772
+  773  774  775  776  777  778  779  780  781  782  783  784  785  786  787  788
+  789  790  791  792  793  794  795  796  797  798  799  800  801  802  803  804
+  805  806  807  808  809  810  811  812  813  814  815  816  817  818  819  820
+  821  822  823  824  825  826  827  828  829  830  831  832  833  834  835  836
+  837  838  839  840  841  842  843  844  845  846  847  848  849  850  851  852
+  853  854  855  856  857  858  859  860  861  862  863  864  865  866  867  868
+  869  870  871  872  873  874  875  876  877  878  879  880  881  882  883  884
+  885  886  887  888  889  890  891  892  893  894  895  896  897  898  899  900
+  901  902  903  904  905  906  907  908  909  910  911  912  913  914  915  916
+  917  918  919  920  921  922  923  924  925  926  927  928  929  930  931  932
+  933  934  935  936  937  938  939  940  941  942  943  944  945  946  947  948
+  949  950  951  952  953  954  955  956  957  958  959  960  961  962  963  964
+  965  966  967  968  969  970  971  972  973  974  975  976  977  978  979  980
+  981  982  983  984  985  986  987  988  989  990  991  992  993  994  995  996
+  997  998  999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012
+ 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028
+ 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044
+ 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060
+ 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076
+ 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092
+ 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108
+ 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124
+ 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140
+ 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156
+ 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172
+ 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188
+ 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204
+ 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220
+ 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236
+ 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252
+ 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268
+ 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284
+ 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300
+ 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316
+ 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332
+ 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348
+ 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364
+ 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380
+ 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396
+ 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412
+ 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428
+ 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444
+ 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460
+ 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476
+ 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492
+ 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508
+ 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524
+ 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540
+ 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556
+ 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572
+ 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588
+ 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604
+ 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620
+ 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636
+ 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652
+ 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668
+ 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684
+ 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700
+ 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716
+ 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732
+ 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748
+ 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764
+ 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780
+ 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796
+ 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812
+ 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828
+ 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844
+ 1845 1846 1847 1848 1849 1850                                            9   10
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 7.071067812D-01
+ 7.071067812D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 7.071067812D-01
+ 7.071067812D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 7.071067812D-01 7.071067812D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 7.071067812D-01 7.071067812D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 7.071067812D-01 7.071067812D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 7.071067812D-01
+ 7.071067812D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 7.071067812D-01 7.071067812D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 1.000000000D+00 1.000000000D+00
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 7.071067812D-01 7.071067812D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 7.071067812D-01
+ 7.071067812D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 7.071067812D-01 7.071067812D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 7.071067812D-01 7.071067812D-01 2.182178902D-01 2.182178902D-01
+ 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01
+ 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01
+ 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01
+ 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 7.071067812D-01 7.071067812D-01 1.000000000D+00
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 7.071067812D-01 7.071067812D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 2.294157339D-01 2.294157339D-01
+ 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01
+ 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01
+ 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01
+ 2.294157339D-01 2.294157339D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 1.000000000D+00 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 1.000000000D+00 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 1.000000000D+00
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 1.000000000D+00 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 7.071067812D-01 7.071067812D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 7.071067812D-01
+ 7.071067812D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 7.071067812D-01 7.071067812D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+-5.740131566D-01-2.420537407D-01 3.457910582D-02 7.814877913D-01-5.088415090D-01
+-3.929029373D-01-2.383181751D-01-1.223796034D-01 7.085134937D-02 2.640823022D-01
+ 3.929029373D-01 5.346056362D-01-5.725363468D-01-3.793915549D-01-2.000428199D-01
+-7.587831101D-02 7.587831101D-02 2.552270461D-01 3.793915549D-01 5.173521205D-01
+-6.979408366D-01-3.130469929D-01 1.488256196D-01 3.284427467D-01 5.337194634D-01
+-5.687042300D-01-3.644349555D-01-1.973055491D-01-8.588594491D-02 6.267352738D-02
+ 2.298029337D-01 3.783624060D-01 5.454918122D-01-4.350249032D-01-3.590853941D-01
+-3.048428873D-01-2.289033781D-01-1.638123701D-01 1.290971658D-01 2.267336778D-01
+ 3.026731871D-01 3.786126965D-01 4.545522056D-01-7.071067814D-01-1.631784880D-01
+ 2.175713174D-01 6.527139520D-01-5.110634454D-01-3.960741700D-01-2.667112355D-01
+-1.373483009D-01-7.985366335D-03 1.644985464D-01 2.794878216D-01 3.944770969D-01
+ 4.807190533D-01-3.512295461D-01-3.288582375D-01-3.064869289D-01-2.953012745D-01
+-2.617443115D-01 1.744962077D-01 2.527957880D-01 3.087240597D-01 3.646523313D-01
+ 4.429519118D-01-5.175691006D-01-3.755531888D-01-2.761420505D-01-1.625293212D-01
+ 5.049454637D-02 1.499056846D-01 2.493168228D-01 3.629295522D-01 5.191470550D-01
+-5.828042066D-01-3.416438452D-01 2.210636645D-01 7.033843873D-01-6.390281219D-01
+-2.954646155D-01-2.061381038D-02 3.229496960D-01 6.321568518D-01-4.864023832D-01
+-3.748262094D-01-2.771970571D-01-1.795679049D-01 1.272665734D-01 2.806838126D-01
+ 4.062070083D-01 5.038361603D-01-5.105183892D-01-3.888053959D-01-2.823065265D-01
+-1.301652847D-01-8.452291210D-03 1.589030748D-01 2.958301925D-01 3.871149375D-01
+ 4.783996826D-01-7.095242470D-01-1.689343445D-01 2.365080823D-01 6.419505092D-01
+-4.710853076D-01-3.680646640D-01-2.959502132D-01-2.135336981D-01-8.990892552D-02
+-7.492410462D-03 9.552823338D-02 1.985488772D-01 3.118715853D-01 3.839860361D-01
+ 4.561004869D-01-5.713375803D-01-3.686048904D-01-2.395931788D-01-5.529073356D-02
+ 9.215122259D-02 2.580234233D-01 3.686048904D-01 5.160468467D-01-5.432132172D-01
+-3.744479458D-01-2.197464471D-01-1.072362662D-01 7.559277778D-02 2.443580491D-01
+ 3.849957753D-01 5.396972739D-01-5.546845586D-01-3.893127647D-01-2.239409709D-01
+-7.235015983D-02 9.302163407D-02 2.446124451D-01 3.824222734D-01 5.202321018D-01
+-4.630557655D-01-3.714910660D-01-2.799263667D-01-2.014423387D-01-1.229583106D-01
+ 7.325175950D-02 2.040584729D-01 2.956231723D-01 3.871878716D-01 4.787525711D-01
+-6.459422415D-01-2.348880879D-01 1.761660659D-01 7.046642635D-01-5.783469319D-01
+-3.521490208D-01-2.082048955D-01-6.426077019D-02 5.911990861D-02 2.236274803D-01
+ 3.675716056D-01 5.526426240D-01-6.953920906D-01-1.896523883D-01 2.317973635D-01
+ 6.532471155D-01-6.084849344D-01-3.928193881D-01-2.079632055D-01-2.310702283D-02
+ 1.463444779D-01 2.695819330D-01 3.620100244D-01 4.544381158D-01-4.720180397D-01
+-3.559480301D-01-2.979130250D-01-2.166640183D-01-1.238080105D-01-5.416600458D-02
+ 3.869000324D-03 1.779740150D-01 2.476160209D-01 3.056510257D-01 3.636860308D-01
+ 4.217210356D-01-5.155440953D-01-3.127070743D-01-2.450947339D-01-1.605793084D-01
+ 2.535462764D-02 2.281916488D-01 3.972224998D-01 5.831564358D-01-7.095242473D-01
+-1.689343446D-01 2.365080824D-01 6.419505094D-01-7.206576831D-01-1.752951121D-01
+ 2.921585202D-01 6.037942751D-01-5.532177706D-01-3.829969181D-01-2.506029217D-01
+-1.182089254D-01 1.844059235D-01 2.789730638D-01 3.735402041D-01 4.681073443D-01
+-7.087321464D-01-1.880309777D-01 2.748145058D-01 6.219486183D-01-7.046642635D-01
+-1.761660659D-01 2.348880879D-01 6.459422415D-01-5.255787283D-01-3.828569185D-01
+-2.605239386D-01-1.381909587D-01-1.585797887D-02 1.676414909D-01 2.899744708D-01
+ 3.919186207D-01 4.734739406D-01-6.324555321D-01-3.162277660D-01 0.0            
+ 3.162277660D-01 6.324555321D-01-6.425895644D-01-3.365945337D-01 3.059950307D-02
+ 3.671940368D-01 5.813905583D-01-5.498125957D-01-3.748722245D-01-1.999318530D-01
+ 6.815858632D-03 1.658525599D-01 3.407929314D-01 6.111553235D-01-5.170681280D-01
+-3.648471370D-01-2.126261461D-01-6.040515513D-02 1.256427227D-01 4.639115915D-01
+ 5.653922521D-01-5.969620060D-01-3.411211463D-01-4.264014330D-02 3.411211463D-01
+ 6.396021494D-01-5.358070089D-01-3.813573017D-01-2.440686731D-01-1.239411230D-01
+ 1.334750556D-02 1.334750556D-01 2.364415270D-01 3.737301556D-01 5.281798626D-01
+-5.561397478D-01-3.716141173D-01-2.280941823D-01-1.050770952D-01 9.995138327D-02
+ 2.639741661D-01 3.869912532D-01 5.100083401D-01-6.146789777D-01-4.279410605D-01
+-7.780746555D-03 1.789571707D-01 3.190106087D-01 5.524330053D-01-7.436490464D-01
+-1.368679227D-02 9.580754584D-02 6.615282928D-01-6.320168708D-01-3.204592584D-01
+-8.901646066D-03 3.471641966D-01 6.142135786D-01-4.681454353D-01-3.541621988D-01
+-2.564622819D-01-1.587623650D-01 2.035414935D-02 2.157539831D-01 4.111538168D-01
+ 5.902703314D-01-5.631859205D-01-4.054938628D-01-1.689557762D-01-1.126371841D-02
+ 2.252743681D-01 3.829664260D-01 5.406584837D-01-4.429910821D-01-3.793276931D-01
+-2.838326095D-01-2.201692205D-01-1.405899842D-01-4.509490059D-02 3.448433573D-02
+ 1.299794193D-01 2.095586556D-01 2.891378919D-01 3.846329753D-01 4.642122119D-01
+-4.281149878D-01-3.844297849D-01-3.232705010D-01-2.795852981D-01-1.135815274D-01
+-7.863336510D-02-4.368520285D-02-3.814220211D-12 3.494816225D-02 8.737040565D-02
+ 1.310556085D-01 1.572667302D-01 1.922148925D-01 2.708482576D-01 3.582186632D-01
+ 4.193779472D-01-5.132347461D-01-3.466983978D-01-2.967374933D-01-2.134693192D-01
+-9.689387536D-02 3.633520326D-02 1.529106471D-01 1.862179167D-01 2.694860909D-01
+ 3.694078998D-01 4.526760742D-01-6.396021490D-01-3.731012536D-01-5.330017909D-02
+ 0.0             1.599005372D-01 3.731012536D-01 5.330017909D-01-3.433942596D-01
+-3.042981389D-01-2.652020184D-01-2.261058977D-01-1.967838072D-01-1.674617167D-01
+-1.381396262D-01-4.039932465D-02-1.303204023D-03 8.666306739D-02 1.550812785D-01
+ 2.332735198D-01 3.407878516D-01 3.994320325D-01 4.678502435D-01-5.986927857D-01
+-4.141899776D-01-2.296871694D-01 1.920335351D-01 2.711061671D-01 3.501787992D-01
+ 4.292514313D-01-4.995562352D-01-3.813513795D-01-3.306921557D-01-1.280552603D-01
+-9.428244439D-02-4.362322054D-02 7.458163512D-02 1.252408590D-01 1.927864907D-01
+ 2.603321226D-01 3.785369782D-01 4.460826098D-01-5.369652087D-01-4.029581846D-01
+-2.895676256D-01-1.555606015D-01-7.309474045D-02 5.060405108D-02 1.330699121D-01
+ 2.567687037D-01 2.980016343D-01 3.289263322D-01 3.907757280D-01-6.443170192D-01
+-2.941975823D-01-1.629027935D-01 1.726283334D-01 3.914529816D-01 5.373360800D-01
+-5.478841452D-01-4.288610378D-01-2.701635613D-01 1.398049198D-01 2.852776067D-01
+ 3.646263450D-01 4.571998728D-01-4.174538088D-01-3.687508644D-01-2.956964479D-01
+-8.870893436D-02 1.182785791D-01 4.104962453D-01 6.418352308D-01-7.132923260D-01
+-1.802826759D-01 2.743432024D-01 6.192317995D-01-4.963543015D-01-3.033276286D-01
+-1.915753444D-01 1.161062693D-02 1.161062693D-02 2.046372997D-01 7.633987209D-01
+-5.422997814D-01-2.662198928D-01-1.084599563D-01 9.859996028D-03 1.281799484D-01
+ 7.789396861D-01-6.524016431D-01-3.249881792D-01-1.940227936D-01-1.067125365D-01
+ 2.425284920D-02 1.988733634D-01 2.861836205D-01 3.516663133D-01 4.171490061D-01
+-4.634170388D-01-3.934672970D-01-2.535678136D-01-1.661306365D-01 4.371858857D-02
+ 2.885426844D-01 4.109547324D-01 5.333667802D-01-5.307215336D-01-2.719947860D-01
+ 8.027163199D-01-7.558772982D-01-1.316036367D-01 3.374452224D-03 3.408196746D-01
+ 5.432868081D-01-5.814571896D-01-4.237738838D-01-2.858009914D-01 8.869685940D-02
+ 2.266697518D-01 2.266697518D-01 3.055114046D-01 4.434842970D-01-5.228965828D-01
+-4.251153876D-01-2.714592233D-01-1.457405436D-01 4.982184716D-02 5.447809456D-02
+ 1.755405269D-01 2.593529801D-01 3.571341755D-01 4.688841130D-01-4.550760723D-01
+-3.613839397D-01-3.078455782D-01-1.606150843D-01-9.369213252D-02-2.676918072D-02
+ 2.275380361D-01 3.078455782D-01 3.747685301D-01 4.952298434D-01-4.733470869D-01
+-3.859215035D-01-2.984959202D-01-1.860915988D-01-8.617664642D-02 1.011638893D-01
+ 2.135682107D-01 2.635256869D-01 3.634406392D-01 4.883343298D-01-3.929822449D-01
+-3.103808813D-01-2.736691641D-01-2.002457299D-01-1.451781542D-01-1.360002249D-01
+-7.509214869D-03 2.770065931D-01 2.861845223D-01 3.320741689D-01 5.707003303D-01
+-4.460439606D-01-3.373631986D-01-2.830228176D-01-2.105689763D-01 4.301946827D-02
+ 2.422675319D-01 4.234021351D-01 5.683098178D-01-3.612105510D-01-3.493351355D-01
+-2.424563972D-01-2.305809819D-01-1.474530742D-01-7.620058199D-02-6.432516660D-02
+ 6.927325637D-03 2.444356331D-01 2.563110485D-01 3.988160331D-01 5.650718483D-01
+-7.056919323D-01-3.320903210D-01-5.811580616D-02-3.320903210D-02 1.660451605D-02
+ 1.411383864D-01 1.660451605D-01 3.154858049D-01 4.898332234D-01-7.317917226D-01
+ 5.227083734D-02 6.795208854D-01-8.070833995D-01 2.964796161D-01 5.106037834D-01
+-4.281535139D-01-3.880141220D-01 8.161676358D-01-3.982228196D-01-3.819133527D-01
+-2.840565506D-01-2.025092154D-01-1.943544820D-01-8.834294634D-02 5.028752329D-02
+ 9.921592434D-02 2.378463940D-01 3.112389956D-01 4.090957977D-01 4.417147316D-01
+-5.322972941D-01-3.125100244D-01-1.614062763D-01-1.339328676D-01-1.201961632D-01
+ 3.056416721D-01 4.017986027D-01 5.529023506D-01-4.942380244D-01-4.167104912D-01
+-3.488738995D-01-8.721847489D-02 9.690941657D-03 7.752753323D-02 1.550550665D-01
+ 2.713463664D-01 3.876376662D-01 4.457833162D-01-4.801691721D-01-3.949514351D-01
+-2.032115268D-01-1.925593096D-01-1.819070925D-01-8.603713834D-02 9.832815811D-03
+ 1.163549871D-01 1.376594214D-01 1.483116385D-01 2.761382440D-01 3.933126323D-01
+ 4.572259351D-01-7.418707522D-01-9.429052726D-02 2.045926535D-01 6.315686259D-01
+-4.433319425D-01-3.670269611D-01-3.517659647D-01-2.220474962D-01-9.232902762D-02
+ 1.671079095D-01 2.434128910D-01 2.510433891D-01 3.578703633D-01 4.570668391D-01
+-7.187795363D-01-2.580234233D-01-7.372097810D-02 2.027326897D-01 3.501746459D-01
+ 4.976166021D-01-4.854581869D-01-3.309942184D-01-2.280182393D-01-7.355427078D-02
+ 1.066536926D-01 3.126056507D-01 6.987655722D-01-5.491705831D-01-4.697356170D-01
+-2.016426063D-01-1.420663817D-01-9.241952790D-02-2.291393254D-02 5.652103360D-02
+ 8.630914590D-02 1.458853705D-01 2.054615951D-01 2.551084490D-01 3.246140443D-01
+ 4.040490105D-01-6.348441880D-01-3.625249652D-01-1.582855482D-01-1.582855482D-01
+-5.105985421D-03 9.701372307D-02 1.991334316D-01 2.501932858D-01 3.352930429D-01
+ 4.374127513D-01-7.774815829D-01 1.727736851D-01 6.047078979D-01-7.217537409D-01
+-1.365480050D-01 2.145754365D-01 6.437263094D-01-4.049312450D-01-3.536741254D-01
+-3.024170059D-01-1.896513426D-01-1.896513426D-01-1.178913751D-01-6.663425550D-02
+-5.125711967D-03 4.613140766D-02 2.306570383D-01 2.819141579D-01 2.819141579D-01
+ 3.536741254D-01 4.356855167D-01-4.912241466D-01-3.426185224D-01-2.683157103D-01
+-1.940128982D-01-1.320938881D-01-7.017487807D-02 7.843074608D-02 1.403497561D-01
+ 1.403497561D-01 2.641877763D-01 3.632581923D-01 5.118638165D-01-4.810537795D-01
+-3.353499905D-01-1.734568916D-01-1.734568916D-01 1.017613764D-01 4.255475741D-01
+ 6.360086028D-01-3.169550924D-01-3.079506863D-01-2.989462802D-01-2.899418743D-01
+-1.728845958D-01-6.483172344D-02 1.872916455D-01 2.863401119D-01 4.574238266D-01
+ 5.204546687D-01-4.106444632D-01-3.470490818D-01-2.325773951D-01-1.562629373D-01
+ 7.268043598D-02 3.779382670D-01 6.959151745D-01-6.783738520D-01-1.995217212D-01
+ 1.995217212D-01 6.783738520D-01-5.387500496D-01-3.587917868D-01-2.575652638D-01
+-1.563387409D-01-7.760700089D-02 3.486691345D-02 2.373199593D-01 3.048043079D-01
+ 3.610412650D-01 4.510203964D-01-5.582423491D-01-3.695407100D-01-2.044267757D-01
+ 1.965642074D-01 3.380904368D-01 5.975551908D-01-6.644580563D-01-1.416058153D-01
+ 7.624928515D-02 7.298145864D-01-5.713182295D-01-4.085589663D-01-1.760457335D-01
+ 3.321617612D-02 1.959754391D-01 4.052373487D-01 5.214939651D-01-6.376825262D-01
+-2.732925112D-01 2.277437593D-01 6.832312781D-01-4.785094745D-01-4.098786336D-01
+-2.726169516D-01-1.181975594D-01-1.525129799D-02 8.769496347D-02 2.935874864D-01
+ 4.136914582D-01 4.994800093D-01-3.801429607D-01-3.484643806D-01-2.724357885D-01
+-2.344214924D-01 2.027429123D-01 3.928143927D-01 6.399073172D-01-5.020717122D-01
+-3.741553525D-01-2.206557207D-01-1.183226328D-01-1.598954498D-02 2.654264466D-01
+ 4.189260784D-01 5.468424382D-01-4.472657843D-01-3.265314622D-01-2.661643011D-01
+-1.756135595D-01-1.756135595D-01-5.487923734D-02 6.585508481D-02 1.564058264D-01
+ 2.771401486D-01 4.280580513D-01 5.186087929D-01-6.414043565D-01-2.613128859D-01
+ 2.138014522D-01 6.889157902D-01-4.180379781D-01-3.663811112D-01-3.018100277D-01
+-2.501531608D-01-1.855820773D-01-1.855820773D-01-1.210109937D-01 8.131173488D-03
+ 2.535012911D-02 3.611197638D-02 9.853069051D-02 1.329686018D-01 1.437304490D-01
+ 1.889302075D-01 2.535012911D-01 2.535012911D-01 3.051581580D-01 3.826434582D-01
+-6.963471324D-01-2.321157108D-01 3.413466335D-01 5.871162097D-01-6.443833370D-01
+-3.411441196D-01 3.790490218D-02 3.790490218D-01 5.685735327D-01-4.599525093D-01
+-3.716079724D-01-2.706427874D-01-1.949188987D-01-1.191950100D-01 2.594244335D-01
+ 3.099070259D-01 3.856309146D-01 4.613548033D-01-6.943808910D-01-2.479931754D-02
+ 7.191802085D-01-6.658858077D-01-3.430320827D-01 1.008917890D-01 3.632104405D-01
+ 5.448156608D-01-7.071067811D-01 0.0             7.071067811D-01-6.882973783D-01
+-3.622617781D-02 7.245235562D-01-4.165577428D-01-3.868881561D-01-3.166251801D-01
+-2.881693492D-01-2.212104864D-01-1.922152084D-01-1.212104928D-01-9.936288797D-02
+-9.288952362D-02-9.052944286D-02-8.816936209D-02-8.466295638D-02-8.250516826D-02
+-7.818959200D-02-7.083962619D-02-3.092054582D-02-2.815587979D-02-2.485176671D-02
+-2.040132869D-02-1.770409354D-02-1.507428925D-02-1.150045267D-02-7.319738171D-03
+-4.689933891D-03-2.329853126D-03 1.311414340D-03 3.132048074D-03 5.964144991D-03
+ 8.256794877D-03 1.041458301D-02 1.446043574D-02 1.709024003D-02 1.972004431D-02
+ 6.779826104D-02 6.968632564D-02 7.197897553D-02 7.346245487D-02 7.562024299D-02
+ 7.899178695D-02 8.128443684D-02 8.391424111D-02 8.586973661D-02 9.018531286D-02
+ 9.092705253D-02 9.166879220D-02 9.200594660D-02 9.551235231D-02 1.008393917D-01
+ 1.027948872D-01 1.094031134D-01 1.121003485D-01 1.139209822D-01 1.659101900D-01
+ 1.679331163D-01 1.695514574D-01 1.723161235D-01 1.737996028D-01 1.751482204D-01
+-2.150769621D-01-2.100485359D-01-2.086599328D-01-2.039260587D-01-1.849905624D-01
+-1.795413473D-01-1.735240674D-01-1.546096105D-01-1.492235137D-01-1.452049807D-01
+-1.240813825D-01-1.184007336D-01-1.130356763D-01-9.410017997D-02-8.999748909D-02
+-8.252848778D-02-6.327739983D-02-5.843832855D-02-5.246312746D-02-3.308580288D-02
+-2.814153440D-02-2.204009669D-02-2.452377698D-03 1.734470937D-03 7.309922635D-03
+ 2.771817980D-02 5.769938234D-02 6.868197022D-02 8.799617648D-02 9.788471346D-02
+ 3.909009995D-01 1.274451272D-01 1.530080472D-01 1.561639633D-01 1.809694635D-01
+ 1.875127295D-01 2.098145362D-01 2.178095236D-01 2.391435161D-01 2.442140213D-01
+ 2.508414450D-01-3.180535014D-01-3.177132622D-01-3.172814199D-01-3.169542667D-01
+-3.166532858D-01-3.163523047D-01-3.160382377D-01 4.091208375D-02 4.129158148D-02
+ 4.600258766D-02 5.771467249D-02 6.245185091D-02 6.383898053D-02 7.594364920D-02
+ 8.321953652D-02 9.498396585D-02 1.014092549D-01 1.134615790D-01 1.212478253D-01
+ 1.321747424D-01 1.393459408D-01 1.544342467D-01 1.598257315D-01 1.697581029D-01
+ 1.775312631D-01 1.888245918D-01 1.946740912D-01-1.194911538D-01-1.172497071D-01
+-1.140942725D-01-1.131367613D-01-1.090891003D-01-8.408500085D-02-7.992853175D-02
+-7.666428899D-02-7.581558589D-02-5.823219829D-02-5.736173355D-02-4.476175656D-02
+-2.639495070D-02 9.457835859D-01-1.370792722D-02-1.294627058D-02 4.680640254D-03
+ 5.899290880D-03 1.595315854D-02 1.667129194D-02 3.588680090D-02 3.784534655D-02
+ 4.023912457D-02-3.351790296D-01-3.330796727D-01-3.005396407D-01-1.826607503D-01
+-1.501732022D-01-2.883037297D-02 3.079852005D-03 1.190168371D-01 1.322427857D-01
+ 1.516093531D-01 2.836064186D-01-2.575553080D-01-2.274295363D-01-1.068214821D-01
+-7.459635354D-02 4.569679721D-02 4.837347727D-02 7.115149971D-02 1.967980106D-01
+ 2.217278738D-01 3.481616436D-01 3.754007994D-01-2.866227940D-01-2.819083511D-01
+-1.786122252D-01-1.719046845D-01-1.600994130D-01-6.765033848D-02-4.817930623D-02
+ 4.147176559D-02 1.504788833D-01 1.712530949D-01 2.621690172D-01 2.623223324D-01
+ 2.624756477D-01 2.626289628D-01 2.628972645D-01-2.327708248D-01-2.302027949D-01
+-2.206589228D-01-2.142580126D-01-1.143731502D-01-1.045609764D-01-1.410499975D-02
+-1.130699709D-02 5.749320572D-04 7.320801505D-03 9.555370759D-02 1.175544409D-01
+ 2.164044256D-01 2.241085152D-01-2.404856193D-01-2.361232984D-01-2.303333089D-01
+-2.249002365D-01-2.229966783D-01-1.867101001D-01-1.739800547D-01-1.662468495D-01
+-1.289291773D-01-1.258755527D-01-1.096953080D-01-1.077520923D-01-7.194140375D-02
+-7.071202240D-02-6.904640895D-02-6.642901645D-02-6.599278436D-02-6.190806571D-02
+-5.869581125D-02-5.369897100D-02-5.286616429D-02-4.743309193D-02-4.556919119D-02
+-1.055165182D-02 5.113045860D-03 4.762584564D-02 4.964837622D-02 6.368711793D-02
+ 6.578896347D-02 9.973575133D-02 1.021945140D-01 1.279718646D-01 1.293598758D-01
+ 1.581908510D-01 1.610858458D-01 1.715554159D-01 1.756401345D-01 2.132750664D-01
+ 2.264810014D-01 2.332227700D-01 2.348487260D-01 2.744665310D-01 2.889811623D-01
+-3.252662345D-02-3.227969374D-02-3.224228015D-02-3.203276404D-02-3.198038501D-02
+-3.184569608D-02-3.139673300D-02-3.135183668D-02-3.082804641D-02-3.078315009D-02
+-3.058859943D-02-3.055118583D-02-3.031922157D-02-3.026684253D-02-2.999746468D-02
+-2.996005109D-02-2.981039672D-02-2.974305226D-02-2.954850159D-02-2.950360528D-02
+-2.924171015D-02-2.921177927D-02-2.906212490D-02-2.901722859D-02-2.884512607D-02
+-2.880771249D-02-2.868050627D-02-2.865805812D-02-2.855330007D-02-2.852336919D-02
+-2.830637036D-02-2.826147405D-02-2.750571951D-02-2.675744769D-02-2.263446994D-02
+-2.247733286D-02-2.241747111D-02-2.229026491D-02-2.227529947D-02-2.214061054D-02
+-2.209571423D-02-2.191612899D-02-2.189368084D-02-2.172906103D-02-2.169164745D-02
+-2.151206220D-02-2.147464862D-02-2.139233871D-02-2.135492513D-02-2.107058183D-02
+-2.104065096D-02-2.092092747D-02-2.089847931D-02-2.071141136D-02-2.067399777D-02
+-2.063658417D-02-2.033727545D-02-2.030734458D-02-2.014272477D-02-2.010531118D-02
+-1.992572594D-02-1.989579507D-02-1.977607158D-02-1.974614071D-02-1.959648635D-02
+-1.957403818D-02-1.922235043D-02-1.918493684D-02-1.906521335D-02-1.903528247D-02
+-1.882576637D-02-1.881080093D-02-1.868359471D-02-1.866114656D-02-1.842169958D-02
+-1.839925143D-02-1.821218347D-02-1.818973531D-02-1.800266736D-02-1.798021921D-02
+-1.783056484D-02-1.780063397D-02-1.765097960D-02-1.760608329D-02-1.742649806D-02
+-1.646871012D-02-1.598981615D-02-1.196411375D-02-1.162739143D-02-1.155256425D-02
+-1.153011610D-02-1.132808270D-02-1.129066911D-02-1.121584193D-02-1.119339378D-02
+-1.074443068D-02-1.072198252D-02-1.060974175D-02-1.057981088D-02-1.054239729D-02
+-1.051994913D-02-1.037029477D-02-1.034784661D-02-1.025057128D-02-1.022812312D-02
+-1.003357245D-02-1.000364157D-02-9.794125463D-03-9.771677308D-03-9.412506833D-03
+-9.390058679D-03-9.210473441D-03-9.188025286D-03-8.993474612D-03-8.971026458D-03
+-8.866268402D-03-8.843820248D-03-8.701648602D-03-8.671717729D-03-8.619338701D-03
+-8.596890546D-03-8.484649773D-03-8.454718900D-03-8.364926281D-03-8.334995408D-03
+-8.260168225D-03-8.207789198D-03-7.908480470D-03-7.541827276D-03-7.519379121D-03
+-7.377207475D-03-7.354759321D-03-7.175174083D-03-7.152725928D-03-6.905796226D-03
+-6.756141862D-03-6.733693707D-03-6.546625752D-03-6.524177596D-03-6.404454105D-03
+-5.566389663D-03-4.892945022D-03-8.896907701D-04-5.828993226D-04-5.155548586D-04
+-4.856239857D-04-3.883486487D-04-3.659004941D-04-2.761078753D-04-2.536597206D-04
+-1.264535108D-04-1.040053560D-04-5.910904667D-05-2.917817381D-05 1.129934725D-04
+ 1.354416273D-04 2.476824008D-04 2.776132736D-04 4.646812293D-04 4.871293841D-04
+ 7.190936492D-04 7.340590857D-04 3.666090497D-01 3.668484966D-01 3.669981510D-01
+ 3.671627708D-01 3.673348733D-01 3.675219413D-01 3.676865611D-01-2.071835602D-01
+-2.070854095D-01-2.069872587D-01-2.068945607D-01-2.068018628D-01-2.066928064D-01
+-1.184716219D-01-1.128824809D-01-1.052049094D-01-1.050794946D-01-1.049213628D-01
+-1.048068535D-01-1.047087027D-01-1.046160048D-01-1.045178540D-01-9.705839547D-02
+-9.476821079D-02-7.281515508D-02-7.262430636D-02-7.247162738D-02-7.231349559D-02
+-7.219898636D-02-7.210083559D-02-7.198087353D-02-7.162644019D-02-7.146285558D-02
+-7.132108224D-02-7.115204480D-02-7.103208274D-02-7.084123403D-02-7.075944171D-02
+-6.598277087D-02-6.588462010D-02-6.553563958D-02-6.533933804D-02-6.507760265D-02
+-6.478860316D-02-6.470135803D-02-6.433601905D-02-6.411790623D-02-6.392160469D-02
+-6.381800109D-02-6.356717135D-02-6.333270006D-02-6.320183237D-02-6.306551185D-02
+-6.291283288D-02-6.269472005D-02-5.800529434D-02-5.791259639D-02-5.781444562D-02
+-5.760178562D-02-5.542065738D-02-5.057855268D-02-4.864280137D-02-4.823383983D-02
+-4.778670854D-02-4.768855777D-02-4.723597366D-02-4.667433314D-02-4.233934076D-02
+-4.131966331D-02-4.117243716D-02-4.103066382D-02-4.092160741D-02-4.075256997D-02
+-4.039268381D-02-4.026181611D-02-4.006551457D-02-3.992374124D-02-3.975470380D-02
+-3.960747764D-02-3.946025149D-02-3.438367551D-02-3.392018576D-02-3.372933704D-02
+-3.339671498D-02-3.289505549D-02-3.274782933D-02-3.241520728D-02-3.228433958D-02
+-3.178268008D-02-3.145005803D-02-2.653706667D-02-2.614446359D-02-2.577912461D-02
+-2.538652153D-02-2.509752203D-02-2.492848460D-02-2.463948510D-02-1.863592963D-02
+-1.835783578D-02-1.811791167D-02-1.794342141D-02-1.768713884D-02-1.735996961D-02
+-1.700553627D-02-1.682014037D-02-1.671108396D-02-1.656931062D-02-1.639482036D-02
+-1.624759420D-02-1.618216036D-02-1.596404753D-02-1.580046292D-02-1.571321779D-02
+-1.529880342D-02-1.098016951D-02-1.062573617D-02-1.022222744D-02-9.933227950D-03
+-9.529719233D-03-9.317059224D-03-8.935361783D-03-8.788135627D-03-8.346457159D-03
+-8.073816130D-03-7.970212535D-03-2.893636562D-03-2.599184249D-03-2.097524754D-03
+-1.955751419D-03-1.846695007D-03-1.704921672D-03-1.214167818D-03-1.017866277D-03
+-7.452252466D-04-5.053011400D-04-3.744334462D-04-2.053960077D-04 4.882085610D-03
+ 5.051123048D-03 5.209254845D-03 5.340122540D-03 5.541876902D-03 5.852687676D-03
+ 6.048989218D-03 6.196215374D-03 6.321630247D-03 6.430686660D-03 6.517931789D-03
+ 6.676063586D-03 6.823289742D-03 7.194081543D-03 7.488533855D-03 7.668476935D-03
+ 7.995646171D-03 1.252148727D-02 1.269052471D-02 1.296316574D-02 1.313765599D-02
+ 1.328488215D-02 1.342665549D-02 1.365567395D-02 1.406463550D-02 1.429365396D-02
+ 1.438635191D-02 1.452812524D-02 1.480076628D-02 1.501342628D-02 1.520427500D-02
+ 1.567867039D-02 1.650204630D-02 2.056985047D-02 2.066254842D-02 2.076069919D-02
+ 2.097881201D-02 2.116420791D-02 2.131143407D-02 2.155681099D-02 2.171494279D-02
+ 2.184581049D-02 2.200394229D-02 2.218388536D-02 2.240745101D-02 2.265282794D-02
+ 2.278914845D-02 2.287094076D-02 2.299090281D-02 2.318175154D-02 2.341622282D-02
+ 2.898355265D-02 2.914713727D-02 2.928345778D-02 2.944158958D-02 2.963789112D-02
+ 2.979602292D-02 2.998687164D-02 3.015590908D-02 3.031949370D-02 3.062485165D-02
+ 3.080479473D-02 3.094111524D-02 3.114832243D-02 3.613765328D-02 3.624125686D-02
+ 3.639938866D-02 3.652480353D-02 3.664476559D-02 3.678108610D-02 3.692285944D-02
+ 3.709734970D-02 3.723912304D-02 3.778985791D-02 3.792072561D-02 3.822063075D-02
+ 3.837330972D-02 3.857506408D-02 4.398426211D-02 4.443684622D-02 4.452409135D-02
+ 4.462224212D-02 4.472039289D-02 4.558739137D-02 4.570190060D-02 4.580550419D-02
+ 4.588184368D-02 4.610540932D-02 4.623627702D-02 4.650346523D-02 4.659616318D-02
+ 4.674884216D-02 5.204353095D-02 5.226164378D-02 5.246885096D-02 5.262698276D-02
+ 5.287781251D-02 5.305230276D-02 5.313409507D-02 5.331403816D-02 5.348307559D-02
+ 5.359213200D-02 5.386477304D-02 5.412105561D-02 5.419194227D-02 5.435007407D-02
+ 5.457363971D-02 5.466633766D-02 5.481356382D-02 5.503712946D-02 5.530977049D-02
+ 5.559876999D-02 5.957932902D-02 5.991195107D-02 6.010825261D-02 6.031545980D-02
+ 6.050085571D-02 6.067534596D-02 6.081166648D-02 6.092072289D-02 6.104613776D-02
+ 6.124789212D-02 6.136240136D-02 6.153689162D-02 6.163504239D-02 6.178226854D-02
+ 6.190768341D-02 6.785671069D-02 6.810754044D-02 6.828203070D-02 6.839653993D-02
+ 6.850559634D-02 6.863101121D-02 6.875642608D-02 6.896363327D-02 6.936714199D-02
+ 6.948165123D-02 6.955253789D-02 6.967795277D-02 6.978155636D-02 6.991242406D-02
+ 7.006510303D-02 9.123840543D-02 9.923769325D-02 1.015278778D-01 1.069152646D-01
+ 1.226193879D-01 1.227393500D-01 1.228320480D-01 1.229301987D-01 1.230119910D-01
+ 1.230992362D-01 1.232082925D-01-4.954589850D-01-4.936227212D-01-3.421921557D-01
+-2.627431361D-01-1.615037848D-01-7.703564396D-02-7.519938004D-02 1.538964057D-02
+ 2.028634439D-02 2.212260832D-02 3.375227988D-02 4.268876434D-02 4.538195145D-02
+ 5.211491920D-02 5.333909515D-02 5.578744706D-02 5.884788694D-02 6.129623885D-02
+ 6.435667874D-02 6.680503065D-02 6.925338256D-02 7.268107522D-02 7.965887817D-02
+ 2.030558144D-01 2.094215293D-01 2.210512009D-01 2.283962567D-01 2.320687845D-01
+-2.877659483D-01-2.868953123D-01-2.859577042D-01-2.853214701D-01-2.846852361D-01
+-2.839820300D-01-2.833792820D-01-4.708769769D-03 1.019250131D-02 3.617763920D-02
+ 3.969366946D-02 5.506374457D-02 8.654058687D-02 1.382764606D-01 1.515034316D-01
+ 2.009287712D-01 2.313675474D-01 2.323721274D-01 2.414133481D-01 2.794869329D-01
+ 2.996789923D-01-2.251706356D-01-2.242727905D-01-2.232627147D-01-2.202698976D-01
+-2.194094627D-01-2.186612585D-01-2.176885929D-01-2.170526193D-01-2.161547742D-01
+-2.153691597D-01-2.137231103D-01-1.102838703D-01-1.082263085D-01-6.969378874D-02
+-6.333405243D-02-6.127649072D-02-4.967932454D-02-4.762176281D-02-4.144907759D-02
+-3.957856692D-02-1.900294956D-02-9.650396205D-03-7.779885531D-03 2.320872086D-03
+ 8.493557297D-03 1.017701690D-02 3.898288122D-02 4.365915790D-02 4.534261750D-02
+ 5.656568150D-02 5.881029432D-02 6.180311142D-02 6.367362207D-02 6.872400088D-02
+ 7.059451154D-02 9.322769066D-02 9.921332479D-02 1.040766525D-01 1.095011335D-01
+ 1.115586952D-01 1.192277890D-01 1.212853507D-01 1.424221213D-01 1.474725001D-01
+ 1.493430108D-01 1.560768492D-01 1.590696662D-01 1.736596495D-01 1.996597478D-01
+ 2.017173095D-01 2.101346075D-01 2.118180671D-01-2.112396164D-01-1.933563293D-01
+-1.774191645D-01-1.716728436D-01-1.016387351D-01-9.745720175D-02-9.712846483D-02
+-9.686547533D-02-9.591871307D-02-9.562942460D-02-9.519549189D-02-9.489305394D-02
+-9.464321389D-02-9.436707491D-02-9.384109587D-02-9.347291055D-02-9.305212733D-02
+-8.307167512D-02-8.272978876D-02-8.240105187D-02-8.225640763D-02-8.188822230D-02
+-8.138854221D-02-8.087571266D-02-8.062587262D-02-8.036288311D-02-8.023138834D-02
+-7.944241980D-02-7.861400282D-02-7.819321957D-02-7.715441098D-02-7.657583405D-02
+-7.594465920D-02-7.497159800D-02-7.453766529D-02-7.418262944D-02-7.380129464D-02
+-7.299917661D-02-6.379454350D-02-6.288722966D-02-6.265053910D-02-6.228235378D-02
+-6.190101898D-02-6.150653469D-02-6.096740618D-02-6.061237033D-02-6.024418502D-02
+-5.995489654D-02-5.962615965D-02-5.931057222D-02-5.904758270D-02-5.870569634D-02
+-5.835066049D-02-5.815341835D-02-5.792987727D-02-5.748279507D-02-5.721980557D-02
+-4.539842675D-02-4.512228776D-02-4.460945819D-02-4.441221607D-02-4.424127287D-02
+-4.391253598D-02-4.353120118D-02-4.336025799D-02-4.308411900D-02-4.282112948D-02
+-4.246609363D-02-4.183491880D-02-4.129579027D-02-4.079611018D-02-4.046737329D-02
+-3.998084269D-02-3.979675003D-02-3.941541523D-02-3.899463201D-02-3.848180243D-02
+-3.815306554D-02-3.779802969D-02-3.753504017D-02-3.725890118D-02-3.677237057D-02
+-3.640418525D-02-3.594395359D-02-3.569411355D-02-3.545742299D-02-3.511553663D-02
+-2.622649092D-02-2.593720245D-02-2.567421293D-02-2.543752236D-02-2.517453285D-02
+-2.483264648D-02-2.437241482D-02-2.403052846D-02-2.332045676D-02-2.303116829D-02
+-2.212385444D-02-2.172937017D-02-2.125598904D-02-2.051961839D-02-2.029607731D-02
+-1.933616556D-02-1.870499072D-02-1.792917165D-02-7.317544616D-03-7.212348808D-03
+-6.620622393D-03-6.305034974D-03-5.949999125D-03-5.673860132D-03-5.331973759D-03
+-5.003236860D-03-4.753396821D-03-4.477257827D-03-4.109072501D-03-3.767186129D-03
+-3.070263907D-03-2.846722818D-03-2.215547977D-03-1.203038335D-03-8.480024852D-04
+-5.061161129D-04 1.142045851D-02 1.164399960D-02 1.186754069D-02 1.215682916D-02
+ 1.286690085D-02 1.314303984D-02 1.383996207D-02 1.420814739D-02 1.451058534D-02
+ 1.474727590D-02 1.501026542D-02 1.545734760D-02 1.577293502D-02 1.606222349D-02
+ 1.654875410D-02 1.660135200D-02 1.708788261D-02 1.810039225D-02 1.836338177D-02
+ 1.874471657D-02 1.911290188D-02 1.963888092D-02 2.013856101D-02 2.038840106D-02
+ 2.084863271D-02 2.113792118D-02 3.018476059D-02 3.046089957D-02 3.093428071D-02
+ 3.100002808D-02 3.149970817D-02 3.181529559D-02 3.206513563D-02 3.393236120D-02
+ 3.495802032D-02 3.551029832D-02 3.577328784D-02 3.669375114D-02 3.786405449D-02
+ 3.820594087D-02 3.885026517D-02 3.908695576D-02 3.932364632D-02 4.020466119D-02
+ 4.939614483D-02 4.996157229D-02 5.047440185D-02 5.089518509D-02 5.142116411D-02
+ 5.186824629D-02 5.274926118D-02 5.298595174D-02 5.322264231D-02 5.359082764D-02
+ 5.419570352D-02 5.451129095D-02 5.487947627D-02 5.515561527D-02 5.552380059D-02
+ 5.573419220D-02 5.610237754D-02 5.641796494D-02 5.703599031D-02 5.714118613D-02
+ 6.879162176D-02 6.900201337D-02 6.976468296D-02 7.056680100D-02 7.147411482D-02
+ 7.168450644D-02 7.255237186D-02 7.265756765D-02 7.271016556D-02 7.377527311D-02
+ 7.424865424D-02 7.465628799D-02 7.510337017D-02 7.547155549D-02 7.594493662D-02
+ 7.624737458D-02 7.665500832D-02 7.691799784D-02 7.715468840D-02 7.737822950D-02
+ 7.766751797D-02 8.720088798D-02 8.758222278D-02 8.784521230D-02 8.838434081D-02
+ 8.883142298D-02 8.894976827D-02 8.940999991D-02 8.987023158D-02 9.036991166D-02
+ 9.088274121D-02 9.155336449D-02 9.180320452D-02 9.205304458D-02 9.256587413D-02
+ 9.357838377D-02 9.395971857D-02 9.463034185D-02 9.534041354D-02 9.603733575D-02
+ 9.623457790D-02 9.640552109D-02 9.681315485D-02 1.060703859D-01 1.063202259D-01
+ 1.070828955D-01 1.073327355D-01 1.077009209D-01 1.116063152D-01 1.520804019D-01
+-2.995209777D-01-2.995209777D-01-2.995209777D-01-2.995209777D-01-2.995209777D-01
+-2.995209777D-01 2.523056754D-01 2.523056754D-01 2.523056754D-01 2.523056754D-01
+ 2.523056754D-01 2.677987441D-01 2.677987441D-01-3.655562498D-01-3.655562498D-01
+-3.655562498D-01-3.655562498D-01 3.260246506D-01 3.260246506D-01 1.192927876D-01
+ 3.454414554D-01 3.454414554D-01-3.896587919D-01-3.896587919D-01-3.896587919D-01
+-3.896587919D-01 2.905239785D-01 2.905239785D-01 8.719931877D-02 8.719931877D-02
+ 9.197351664D-02 9.197351664D-02 3.096207697D-01 3.096207697D-01-2.236067978D-01
+-2.236067978D-01-2.236067978D-01-2.236067978D-01 8.944271911D-01-2.980909860D-01
+-2.980909860D-01-2.980909860D-01-2.980909860D-01-2.980909860D-01 3.633287324D-01
+ 3.633287324D-01 3.818987328D-01 3.818987328D-01-2.236067978D-01-2.236067978D-01
+-2.236067978D-01-2.236067978D-01 8.944271911D-01-2.886751346D-01-2.886751346D-01
+-2.886751346D-01-2.886751346D-01 5.773502693D-01 5.773502693D-01-2.041241453D-01
+-2.041241453D-01-2.041241453D-01-2.041241453D-01-2.041241453D-01-2.041241453D-01
+ 6.123724358D-01 6.123724358D-01-2.236067978D-01-2.236067978D-01-2.236067978D-01
+-2.236067978D-01 8.944271911D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01
+-2.886751346D-01 5.773502693D-01 5.773502693D-01-1.825741858D-01-1.825741858D-01
+-1.825741858D-01-1.825741858D-01-1.825741858D-01 9.128709290D-01-2.390457219D-01
+-2.390457219D-01-2.390457219D-01-2.390457219D-01-2.390457219D-01 5.976143047D-01
+ 5.976143047D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01
+ 5.773502693D-01 5.773502693D-01-2.390457219D-01-2.390457219D-01-2.390457219D-01
+-2.390457219D-01-2.390457219D-01 5.976143047D-01 5.976143047D-01-2.886751346D-01
+-2.886751346D-01-2.886751346D-01-2.886751346D-01 5.773502693D-01 5.773502693D-01
+-2.390457219D-01-2.390457219D-01-2.390457219D-01-2.390457219D-01-2.390457219D-01
+ 5.976143047D-01 5.976143047D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01
+-2.886751346D-01 5.773502693D-01 5.773502693D-01-3.534856528D-01-3.534856528D-01
+-3.534856528D-01-3.534856528D-01 3.436985907D-01 3.436985907D-01 3.632727148D-01
+ 3.632727148D-01-2.390457219D-01-2.390457219D-01-2.390457219D-01-2.390457219D-01
+-2.390457219D-01 5.976143045D-01 5.976143045D-01-2.886751346D-01-2.886751346D-01
+-2.886751346D-01-2.886751346D-01 5.773502692D-01 5.773502692D-01-2.886751346D-01
+-2.886751346D-01-2.886751346D-01-2.886751346D-01 5.773502692D-01 5.773502692D-01
+-3.273268353D-01-3.273268353D-01-3.273268353D-01-3.273268353D-01 4.364357805D-01
+ 4.364357805D-01 4.364357805D-01-2.041241453D-01-2.041241453D-01-2.041241453D-01
+-2.041241453D-01-2.041241453D-01-2.041241453D-01 6.123724358D-01 6.123724358D-01
+-2.886751346D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01 5.773502692D-01
+ 5.773502692D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01
+ 5.773502692D-01 5.773502692D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01
+-2.886751346D-01 5.773502692D-01 5.773502692D-01-2.886751346D-01-2.886751346D-01
+-2.886751346D-01-2.886751346D-01 5.773502692D-01 5.773502692D-01-3.924626113D-01
+-3.924626113D-01-3.924626113D-01-3.924626113D-01 2.640663018D-01 2.640663018D-01
+ 2.640663018D-01 6.781240693D-02 7.242057855D-02 7.242057855D-02 2.824989881D-01
+ 2.824989881D-01-1.581138830D-01-1.581138830D-01-1.581138830D-01-1.581138830D-01
+-1.581138830D-01-1.581138830D-01-1.581138830D-01-1.581138830D-01 6.324555320D-01
+ 6.324555320D-01-3.534856528D-01-3.534856528D-01-3.534856528D-01-3.534856528D-01
+ 3.436985907D-01 3.436985907D-01 3.632727148D-01 3.632727148D-01-4.144511569D-01
+-4.144511569D-01-4.144511569D-01-4.144511569D-01 1.315245297D-01 1.315245297D-01
+ 1.943670350D-01 1.943670350D-01 1.943670350D-01 1.943670350D-01 1.943670350D-01
+ 2.114601965D-01 2.114601965D-01-2.896387157D-01-2.896387157D-01-2.896387157D-01
+-2.896387157D-01-2.896387157D-01-2.896387157D-01 3.189002273D-01 1.369918067D-01
+ 1.369918067D-01 1.369918067D-01 3.359855486D-01 3.359855486D-01 3.359855486D-01
+-4.568704569D-01-4.568704569D-01-4.568704569D-01 3.227126392D-01 8.967458728D-02
+ 8.967458728D-02 8.967458728D-02 8.967458728D-02 3.446001910D-01 3.446001910D-01
+-2.831834822D-01-2.831834822D-01-2.831834822D-01-2.831834822D-01-2.831834822D-01
+-2.831834822D-01-2.831834822D-01 2.650498803D-01 2.650498803D-01 1.011683962D-01
+ 1.011683962D-01 1.011683962D-01 1.011683962D-01 1.011683962D-01 1.050164421D-01
+ 2.804420639D-01 2.804420639D-01 2.804420639D-01-2.886751346D-01-2.886751346D-01
+-2.886751346D-01-2.886751346D-01 5.773502692D-01 5.773502692D-01-2.886751346D-01
+-2.886751346D-01-2.886751346D-01-2.886751346D-01 5.773502692D-01 5.773502692D-01
+-2.886751346D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01 5.773502692D-01
+ 5.773502692D-01-3.533075915D-01-3.533075915D-01-3.533075915D-01-3.533075915D-01
+ 3.346664655D-01 3.346664655D-01 3.719487175D-01 3.719487175D-01-3.985436537D-01
+-3.985436537D-01-3.985436537D-01-3.985436537D-01 2.181901885D-01 2.181901885D-01
+ 2.181901885D-01 2.181901885D-01 2.181901885D-01 2.516118362D-01 2.516118362D-01
+-2.897237840D-01-2.897237840D-01-2.897237840D-01-2.897237840D-01-2.897237840D-01
+-2.897237840D-01-2.897237840D-01 1.975257060D-01 1.975257060D-01 1.975257060D-01
+ 1.975257060D-01 1.975257060D-01 1.975257060D-01 1.975257060D-01 1.975257060D-01
+ 2.239304202D-01 2.239304202D-01-3.869938671D-01-3.869938671D-01-3.869938671D-01
+-3.869938671D-01 2.465516791D-01 2.465516791D-01 2.465516791D-01 2.465516791D-01
+ 2.808843760D-01 2.808843760D-01-2.041241453D-01-2.041241453D-01-2.041241453D-01
+-2.041241453D-01-2.041241453D-01-2.041241453D-01 6.123724358D-01 6.123724358D-01
+-2.390457219D-01-2.390457219D-01-2.390457219D-01-2.390457219D-01-2.390457219D-01
+ 5.976143045D-01 5.976143045D-01-5.000000000D-01-5.000000000D-01 5.000000000D-01
+ 5.000000000D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01
+ 5.773502692D-01 5.773502692D-01-5.622386694D-01-5.622386694D-01 1.011292901D-01
+ 1.011292901D-01 1.011292901D-01 4.105447342D-01 4.105447342D-01-8.164965809D-01
+ 4.082482904D-01 4.082482904D-01-3.651483716D-01-3.651483716D-01-3.651483716D-01
+ 5.477225575D-01 5.477225575D-01-5.000000000D-01-5.000000000D-01 5.000000000D-01
+ 5.000000000D-01-8.164965809D-01 4.082482904D-01 4.082482904D-01-4.082482905D-01
+-4.082482905D-01-4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+-2.886751346D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01 5.773502692D-01
+ 5.773502692D-01-4.316131859D-01-4.316131859D-01-4.316131859D-01-4.316131859D-01
+ 9.877653958D-02 9.877653958D-02 1.451734308D-01 1.451734308D-01 1.451734308D-01
+ 1.451734308D-01 1.451734308D-01 1.451734308D-01 1.451734308D-01 1.598250807D-01
+ 1.764302839D-01 1.764302839D-01-4.342692722D-01-4.342692722D-01-4.342692722D-01
+-3.845158284D-01 1.622669423D-01 1.622669423D-01 1.622669423D-01 1.622669423D-01
+ 1.622669423D-01 1.622669423D-01 1.622669423D-01 1.622669423D-01 1.945940530D-01
+ 1.945940530D-01-4.155859743D-01-4.155859743D-01-4.155859743D-01-4.155859743D-01
+ 1.413954939D-01 1.901185505D-01 1.901185505D-01 1.901185505D-01 1.901185505D-01
+ 1.901185505D-01 1.901185505D-01 1.901185505D-01 1.901185505D-01-5.000000000D-01
+-5.000000000D-01-5.000000000D-01 1.666666666D-01 1.666666666D-01 1.666666666D-01
+ 1.666666666D-01 1.666666666D-01 1.666666666D-01 1.666666666D-01 1.666666666D-01
+ 1.666666666D-01-3.415328781D-01-3.415328781D-01-3.415328781D-01-3.415328781D-01
+-3.415328781D-01 2.418350800D-01 2.418350800D-01 2.418350800D-01 2.418350800D-01
+ 2.418350800D-01 2.418350800D-01 2.566539106D-01-3.715669341D-01-3.715669341D-01
+-3.715669341D-01-3.715669341D-01-3.715669341D-01-3.715669341D-01 7.609167506D-02
+ 7.609167506D-02 7.609167506D-02 7.609167506D-02 7.609167506D-02 7.609167506D-02
+ 7.609167506D-02 7.609167506D-02 7.609167506D-02 7.609167506D-02 7.609167506D-02
+ 7.609167506D-02 7.609167506D-02 7.609167506D-02 7.609167506D-02 7.609167506D-02
+ 7.609167506D-02 7.609167506D-02 7.609167506D-02 7.609167506D-02 7.609167506D-02
+ 7.609167506D-02 7.609167506D-02 7.609167506D-02 7.609167506D-02 7.609167506D-02
+ 7.609167506D-02 8.746318930D-02 8.746318930D-02-4.325136617D-01-4.325136617D-01
+-4.325136617D-01-4.325136617D-01 1.002259276D-01 1.468283778D-01 1.468283778D-01
+ 1.468283778D-01 1.468283778D-01 1.468283778D-01 1.468283778D-01 1.468283778D-01
+ 1.468283778D-01 1.468283778D-01 1.468283778D-01 1.615449411D-01-5.192221753D-01
+-5.192221753D-01-5.192221753D-01 7.577911195D-02 7.577911195D-02 1.278280274D-01
+ 1.278280274D-01 1.278280274D-01 1.278280274D-01 1.278280274D-01 1.278280274D-01
+ 1.278280274D-01 1.278280274D-01 1.278280274D-01 1.278280274D-01 1.278280274D-01
+-4.225771273D-01-4.225771273D-01-4.225771273D-01-4.225771273D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01-5.063696837D-01
+-5.063696837D-01-5.063696837D-01 1.519109051D-01 1.519109051D-01 1.519109051D-01
+ 1.519109051D-01 1.519109051D-01 1.519109051D-01 1.519109051D-01 1.519109051D-01
+ 1.519109051D-01 1.519109051D-01-4.082482905D-01-4.082482905D-01-4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01-4.082482905D-01-4.082482905D-01
+-4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01-3.273268353D-01
+-3.273268353D-01-3.273268353D-01-3.273268353D-01 4.364357805D-01 4.364357805D-01
+ 4.364357805D-01-3.651483716D-01-3.651483716D-01-3.651483716D-01 5.477225575D-01
+ 5.477225575D-01-2.738612787D-01-2.738612787D-01-2.738612787D-01-2.738612787D-01
+-2.738612787D-01 4.564354646D-01 4.564354646D-01 4.564354646D-01-2.886751346D-01
+-2.886751346D-01-2.886751346D-01 8.660254038D-01-4.363204829D-01-4.363204829D-01
+-4.363204829D-01 3.157480785D-01 3.157480785D-01 3.387326457D-01 3.387326457D-01
+-2.278805966D-01-2.278805966D-01-2.278805966D-01-2.278805966D-01-2.278805966D-01
+-2.278805966D-01-2.278805966D-01 3.893590672D-01 3.893590672D-01 4.082230210D-01
+ 4.082230210D-01-4.052035054D-01-4.052035054D-01-4.052035054D-01 3.056688687D-01
+ 4.549708235D-01 4.549708235D-01-2.390457219D-01-2.390457219D-01-2.390457219D-01
+-2.390457219D-01-2.390457219D-01 5.976143048D-01 5.976143048D-01-3.259894217D-01
+-3.259894217D-01-3.259894217D-01-3.259894217D-01 3.609186343D-01 4.715195264D-01
+ 4.715195264D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01
+ 5.773502693D-01 5.773502693D-01-4.369020882D-01-4.369020882D-01-4.369020882D-01
+-4.369020882D-01 9.751411457D-02 9.751411457D-02 9.751411457D-02 9.751411457D-02
+ 9.751411457D-02 1.200752207D-01 1.200752207D-01 1.200752207D-01 1.200752207D-01
+ 1.200752207D-01 1.200752207D-01 1.200752207D-01 2.097556177D-01 2.097556177D-01
+-1.336306210D-01-1.336306210D-01-1.336306210D-01-1.336306210D-01-1.336306210D-01
+-1.336306210D-01-1.336306210D-01 9.354143467D-01-2.886751346D-01-2.886751346D-01
+-2.886751346D-01-2.886751346D-01 5.773502691D-01 5.773502691D-01-3.542122690D-01
+-3.542122690D-01-3.542122690D-01-3.542122690D-01-3.542122690D-01-3.542122690D-01
+ 8.999559330D-02 8.999559330D-02 8.999559330D-02 8.999559330D-02 8.999559330D-02
+ 8.999559330D-02 8.999559330D-02 8.999559330D-02 8.999559330D-02 8.999559330D-02
+ 8.999559330D-02 8.999559330D-02 8.999559330D-02 8.999559330D-02 8.999559330D-02
+ 8.999559330D-02 1.673510521D-01 1.673510521D-01 1.673510521D-01 1.832909648D-01
+-2.069895980D-01-2.069895980D-01-2.069895980D-01-2.069895980D-01-2.069895980D-01
+-2.069895980D-01-2.069895980D-01 4.760177513D-01 4.760177513D-01 4.968916838D-01
+-3.921872059D-01-3.921872059D-01-3.921872059D-01-3.921872059D-01 3.208902411D-01
+ 6.864515768D-02 6.864515768D-02 6.864515768D-02 6.864515768D-02 6.864515768D-02
+ 6.864515768D-02 6.864515768D-02 6.864515768D-02 3.493486607D-01 3.493486607D-01
+-4.113272660D-01-4.113272660D-01-4.113272660D-01-4.113272660D-01-1.385347256D-02
+-1.385347256D-02-1.385347256D-02-1.385347256D-02-1.385347256D-02-1.385347256D-02
+-1.385347256D-02-1.385347256D-02-1.385347256D-02-1.385347256D-02-1.385347256D-02
+-1.385347256D-02-1.385347256D-02-1.385347256D-02-1.385347256D-02-1.385347256D-02
+-1.385347256D-02-1.385347256D-02-1.385347256D-02-1.385347256D-02-1.385347256D-02
+-1.385347256D-02-1.385347256D-02-1.385347256D-02-1.385347256D-02 1.395574652D-01
+ 1.395574652D-01 1.395574652D-01 1.395574652D-01 1.395574652D-01 1.395574652D-01
+ 1.395574652D-01 1.395574652D-01 1.395574652D-01 1.395574652D-01 1.395574652D-01
+ 2.282568802D-01 2.282568802D-01-4.563066691D-01-4.563066691D-01-4.563066691D-01
+ 2.654049461D-01 2.654049461D-01 2.719510830D-01 2.719510830D-01 2.942079492D-01
+-4.364254028D-01-4.364254028D-01-4.364254028D-01 3.238709959D-01 3.238709959D-01
+ 3.307671082D-01 3.307671082D-01-3.535480103D-01-3.535480103D-01-3.535480103D-01
+-3.535480103D-01 3.487703345D-01 3.551405689D-01 3.551405689D-01 3.551405689D-01
+-2.886751346D-01-2.886751346D-01-2.886751346D-01 8.660254038D-01-3.717136907D-01
+-3.717136907D-01-3.717136907D-01-3.717136907D-01 2.579946495D-01 2.579946495D-01
+ 3.236218216D-01 3.236218216D-01 3.236218216D-01-4.944512989D-01-4.944512989D-01
+-4.944512989D-01-4.659297951D-02-4.659297951D-02-4.659297951D-02-4.659297951D-02
+ 1.388360790D-01 1.388360790D-01 1.388360790D-01 1.388360790D-01 1.388360790D-01
+ 1.388360790D-01 1.388360790D-01 1.388360790D-01 1.388360790D-01 1.388360790D-01
+ 1.388360790D-01-6.230730650D-02 2.048362524D-01-3.577167122D-01-3.577167122D-01
+-3.577167122D-01-3.577167122D-01-3.577167122D-01 1.811045589D-01 1.811045589D-01
+ 1.811045589D-01 1.811045589D-01 1.811045589D-01 1.811045589D-01 1.811045589D-01
+ 9.965296649D-03 2.554431761D-01 2.554431761D-01-3.651483717D-01-3.651483717D-01
+-3.651483717D-01 5.477225576D-01 5.477225576D-01-2.981423970D-01-2.981423970D-01
+-2.981423970D-01-2.981423970D-01-2.981423970D-01 3.726779963D-01 3.726779963D-01
+ 3.726779963D-01 3.726779963D-01-7.071067811D-01 7.071067811D-01-5.000000000D-01
+-5.000000000D-01 5.000000000D-01 5.000000000D-01-3.651483717D-01-3.651483717D-01
+-3.651483717D-01 5.477225576D-01 5.477225576D-01-1.846372365D-01-1.846372365D-01
+-1.846372365D-01-1.846372365D-01-1.846372365D-01-1.846372365D-01-1.846372365D-01
+-1.846372365D-01 4.923659639D-01 4.923659639D-01 4.923659639D-01-3.127419532D-01
+-3.127419532D-01-3.127419532D-01-3.127419532D-01-3.127419532D-01-3.127419532D-01
+ 2.671193506D-02 2.671193506D-02 2.671193506D-02 2.671193506D-02 2.671193506D-02
+ 2.671193506D-02 2.671193506D-02 2.365561569D-01 2.365561569D-01 2.365561569D-01
+ 2.365561569D-01 2.365561569D-01 2.533436946D-01 2.533436946D-01-3.179619147D-01
+-3.179619147D-01-3.179619147D-01-3.179619147D-01-3.179619147D-01 1.397967096D-01
+ 1.397967096D-01 1.397967096D-01 1.397967096D-01 1.397967096D-01 4.454130130D-01
+ 4.454130130D-01-2.065248880D-01-2.065248880D-01-2.065248880D-01-2.065248880D-01
+-2.065248880D-01-2.065248880D-01-2.065248880D-01-2.065248880D-01-2.065248880D-01
+ 1.269840233D-01 3.331531684D-01 3.496467000D-01 3.496467000D-01 3.496467000D-01
+ 3.496467000D-01-3.608060397D-01-3.608060397D-01-3.608060397D-01-3.608060397D-01
+ 6.528182571D-02 3.286815972D-01 3.497535789D-01 3.497535789D-01 3.497535789D-01
+-1.825741859D-01-1.825741859D-01-1.825741859D-01-1.825741859D-01-1.825741859D-01
+ 9.128709289D-01-3.668083630D-01-3.668083630D-01-3.668083630D-01-3.668083630D-01
+-3.668083630D-01 1.803389307D-01 9.845294107D-02 9.845294107D-02-2.561674003D-02
+ 1.853017178D-01 1.853017178D-01 1.853017178D-01 1.853017178D-01 1.853017178D-01
+ 1.853017178D-01 1.853017178D-01 1.853017178D-01-5.073861533D-01-5.073861533D-01
+-5.073861533D-01 1.753557923D-01 7.317672550D-02 7.317672550D-02 7.317672550D-02
+ 7.317672550D-02 7.317672550D-02 7.317672550D-02 1.815484629D-01 1.815484629D-01
+ 1.815484629D-01 1.815484629D-01 1.815484629D-01-2.967227471D-01-2.967227471D-01
+-2.967227471D-01-2.967227471D-01-2.967227471D-01 4.553159394D-01 3.427659319D-01
+ 3.427659319D-01 3.427659319D-01-4.209001754D-01-4.209001754D-01-4.209001754D-01
+-4.209001754D-01 1.729384177D-01 8.406461453D-02 1.783247086D-01 1.783247086D-01
+ 1.783247086D-01 1.783247086D-01 1.783247086D-01 1.783247086D-01 1.783247086D-01
+ 1.783247086D-01-6.725927090D-01-6.725927090D-01 7.079923251D-02 7.079923251D-02
+ 7.079923251D-02 7.079923251D-02 7.079923251D-02 7.079923251D-02 7.079923251D-02
+ 7.079923251D-02 7.079923251D-02 7.079923251D-02 7.079923251D-02 7.079923251D-02
+ 7.079923251D-02 7.079923251D-02 7.079923251D-02 7.079923251D-02 7.079923251D-02
+ 7.079923251D-02 7.079923251D-02-3.651483717D-01-3.651483717D-01-3.651483717D-01
+ 5.477225575D-01 5.477225575D-01-4.364254028D-01-4.364254028D-01-4.364254028D-01
+ 3.238709959D-01 3.238709959D-01 3.307671082D-01 3.307671082D-01-2.885923003D-01
+-2.885923003D-01-2.885923003D-01-2.885923003D-01 5.602463244D-01 5.941228768D-01
+-3.534942317D-01-3.534942317D-01-3.534942317D-01-3.534942317D-01 3.376522230D-01
+ 3.587749012D-01 3.587749012D-01 3.587749012D-01-4.081669288D-01-4.081669288D-01
+-4.081669288D-01 3.918666195D-01 4.163170830D-01 4.163170830D-01-4.159531667D-01
+-4.159531667D-01-4.159531667D-01-4.159531667D-01 1.780436213D-01 1.834313472D-01
+ 1.834313472D-01 1.834313472D-01 1.834313472D-01 1.834313472D-01 1.834313472D-01
+ 1.834313472D-01 2.017496155D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01
+ 8.660254035D-01-3.726697781D-01-3.726697781D-01-3.726697781D-01-3.726697781D-01
+ 2.957108587D-01 2.957108587D-01 2.957108587D-01 3.017732680D-01 3.017732680D-01
+-4.081669288D-01-4.081669288D-01-4.081669288D-01 3.918666195D-01 4.163170830D-01
+ 4.163170830D-01-3.161350749D-01-3.161350749D-01-3.161350749D-01-3.161350749D-01
+-3.161350749D-01 3.002570377D-01 3.058478959D-01 3.248568136D-01 3.248568136D-01
+ 3.248568136D-01-4.081112546D-01-4.081112546D-01-4.081112546D-01 3.869574982D-01
+ 4.186881332D-01 4.186881332D-01-1.825741859D-01-1.825741859D-01-1.825741859D-01
+-1.825741859D-01-1.825741859D-01 9.128709290D-01-4.082409165D-01-4.082409165D-01
+-4.082409165D-01 4.033334376D-01 4.106946558D-01 4.106946558D-01-4.999898091D-01
+-4.999898091D-01 4.954752284D-01 5.045043898D-01-3.534441153D-01-3.534441153D-01
+-3.534441153D-01-3.534441153D-01 3.380769798D-01 3.443492800D-01 3.656751006D-01
+ 3.656751006D-01-4.362784182D-01-4.362784182D-01-4.362784182D-01 3.106112653D-01
+ 3.173857747D-01 3.404191074D-01 3.404191074D-01-2.833687390D-01-2.833687390D-01
+-2.833687390D-01-2.833687390D-01-2.833687390D-01-2.833687390D-01-2.833687390D-01
+ 2.106397165D-01 2.106397165D-01 2.106397165D-01 2.151205187D-01 2.151205187D-01
+ 2.303552466D-01 2.303552466D-01 2.303552466D-01 2.303552466D-01-4.362410190D-01
+-4.362410190D-01-4.362410190D-01 3.122449892D-01 3.122449892D-01 3.421165396D-01
+ 3.421165396D-01-4.362410190D-01-4.362410190D-01-4.362410190D-01 3.122449892D-01
+ 3.122449892D-01 3.421165396D-01 3.421165396D-01-2.417422914D-01-2.417422914D-01
+-2.417422914D-01-2.417422914D-01-2.417422914D-01-2.417422914D-01-2.417422914D-01
+-2.417422914D-01-2.417422914D-01 2.095451741D-01 2.095451741D-01 2.095451741D-01
+ 2.095451741D-01 2.136384842D-01 2.136384842D-01 2.275557394D-01 2.275557394D-01
+ 2.275557394D-01 2.275557394D-01-4.081669288D-01-4.081669288D-01-4.081669288D-01
+ 3.918666195D-01 4.163170830D-01 4.163170830D-01-3.272697530D-01-3.272697530D-01
+-3.272697530D-01-3.272697530D-01 4.211117480D-01 4.439836320D-01 4.439836320D-01
+-2.278707522D-01-2.278707522D-01-2.278707522D-01-2.278707522D-01-2.278707522D-01
+-2.278707522D-01-2.278707522D-01 3.805622174D-01 4.048443492D-01 4.048443492D-01
+ 4.048443492D-01-2.980397448D-01-2.980397448D-01-2.980397448D-01-2.980397448D-01
+-2.980397448D-01 3.594301015D-01 3.594301015D-01 3.856692606D-01 3.856692606D-01
+-2.581383344D-01-2.581383344D-01-2.581383344D-01-2.581383344D-01-2.581383344D-01
+-2.581383344D-01 3.684524046D-01 3.934592006D-01 3.934592006D-01 3.934592006D-01
+-5.474927706D-01-5.474927706D-01 3.413465457D-01 3.768194978D-01 3.768194978D-01
+-3.651483717D-01-3.651483717D-01-3.651483717D-01 5.477225576D-01 5.477225576D-01
+-2.886751346D-01-2.886751346D-01-2.886751346D-01-2.886751346D-01 5.773502693D-01
+ 5.773502693D-01-4.081112546D-01-4.081112546D-01-4.081112546D-01 3.869574982D-01
+ 4.186881332D-01 4.186881332D-01-4.362925005D-01-4.362925005D-01-4.362925005D-01
+ 3.050301268D-01 3.346157915D-01 3.346157915D-01 3.346157915D-01-4.362925005D-01
+-4.362925005D-01-4.362925005D-01 3.050301268D-01 3.346157915D-01 3.346157915D-01
+ 3.346157915D-01-4.081112546D-01-4.081112546D-01-4.081112546D-01 3.869574982D-01
+ 4.186881332D-01 4.186881332D-01-3.725626365D-01-3.725626365D-01-3.725626365D-01
+-3.725626365D-01 2.851640358D-01 2.911298104D-01 2.911298104D-01 3.114134448D-01
+ 3.114134448D-01-4.563039674D-01-4.563039674D-01-4.563039674D-01 2.606357996D-01
+ 2.606357996D-01 2.825467677D-01 2.825467677D-01 2.825467677D-01-3.725873993D-01
+-3.725873993D-01-3.725873993D-01-3.725873993D-01 2.859934702D-01 2.859934702D-01
+ 3.061208855D-01 3.061208855D-01 3.061208855D-01-2.886751346D-01-2.886751346D-01
+-2.886751346D-01 8.660254035D-01-2.041241452D-01-2.041241452D-01-2.041241452D-01
+-2.041241452D-01-2.041241452D-01-2.041241452D-01 6.123724357D-01 6.123724357D-01
+-3.651483717D-01-3.651483717D-01-3.651483717D-01 5.477225576D-01 5.477225576D-01
+-3.651483717D-01-3.651483717D-01-3.651483717D-01 5.477225576D-01 5.477225576D-01
+-5.000000002D-01-5.000000002D-01 5.000000002D-01 5.000000002D-01-5.000000002D-01
+-5.000000002D-01 5.000000002D-01 5.000000002D-01 1.502319086D-02 1.502319086D-02
+ 1.502319086D-02 1.502319086D-02 1.350855775D-01 1.350855775D-01 1.350855775D-01
+ 1.831105322D-01 1.831105322D-01 1.831105322D-01 1.831105322D-01 1.831105322D-01
+ 1.831105322D-01 1.831105322D-01 1.831105322D-01 1.831105322D-01-3.827835166D-01
+-3.827835166D-01-3.827835166D-01-3.827835166D-01-9.703503652D-02-9.703503652D-02
+-9.703503652D-02-9.703503652D-02-9.703503652D-02-9.703503652D-02-1.083455434D-02
+-1.083455434D-02-1.083455434D-02 1.196149283D-01 1.196149283D-01 1.196149283D-01
+ 1.196149283D-01 1.717947215D-01 1.717947215D-01 1.717947215D-01 1.717947215D-01
+ 1.717947215D-01 1.717947215D-01 1.717947215D-01 1.717947215D-01 1.717947215D-01
+-4.430571734D-01-4.430571734D-01-4.430571734D-01-1.325874047D-01-1.325874047D-01
+-1.325874047D-01-1.325874047D-01-1.325874047D-01-3.162277661D-01-3.162277661D-01
+-3.162277661D-01-3.162277661D-01-3.162277661D-01-3.162277661D-01 2.108185105D-01
+ 2.108185105D-01 2.108185105D-01 2.108185105D-01 2.108185105D-01 2.108185105D-01
+ 2.108185105D-01 2.108185105D-01 2.108185105D-01 2.982233263D-02-1.002823670D-01
+ 2.980153584D-02-9.976244729D-02 5.756524651D-02 3.013428443D-02 5.729488828D-02
+ 2.998870692D-02 3.013428443D-02-9.608141599D-02 3.055022017D-02-9.581105776D-02
+ 3.876495105D-02 1.767466936D-03 3.830742173D-02 1.621889427D-03 1.788263723D-03
+-6.798495673D-02 2.162605890D-03-6.773539528D-02 9.077771538D-02-8.955122487D-02
+ 9.007062462D-02-8.980078631D-02 8.984185997D-02 7.505534440D-02 6.191177500D-02
+ 7.480578295D-02 6.182858785D-02 6.184938464D-02 8.888520776D-02 6.195336857D-02
+ 8.903078527D-02 1.996231593D-03 6.449057659D-02 1.788263723D-03 6.430340551D-02
+ 1.684279788D-03 1.725873362D-03-1.680406387D-02 1.933841233D-03-1.649211207D-02
+ 2.058621955D-03 6.765168822D-02 4.398494459D-02 6.754770428D-02 4.408892852D-02
+ 2.435277764D-02 4.448406748D-02 2.435277764D-02 4.452566105D-02 2.435277764D-02
+ 2.439437121D-02 2.352090616D-02 2.429038728D-02 2.350010937D-02 2.356249973D-02
+ 2.302178327D-02 2.352090616D-02 2.298018970D-02 2.352090616D-02-4.325991660D-03
+-5.088999780D-02-4.284398086D-03-5.095238816D-02-4.263601301D-03 6.696539424D-02
+ 2.664042421D-02 6.694459746D-02 2.670281457D-02 2.676520493D-02-4.346788447D-03
+ 2.682759530D-02-4.450772382D-03 2.680679851D-02 5.390501200D-02 2.822098003D-02
+ 5.394660557D-02 2.824177681D-02-1.907091366D-02-4.993828494D-04-1.900852330D-02
+-3.122117664D-04-1.875896185D-02-3.930618743D-02 7.362036609D-02-3.943096815D-02
+ 7.357877252D-02-3.943096815D-02-2.364620680D-02-3.930618743D-02-2.350062929D-02
+ 9.154719650D-02 6.390826655D-02 9.144321257D-02 6.397065691D-02 9.144321257D-02
+ 9.154719650D-02 9.335651697D-02 9.152639972D-02 9.346050091D-02 4.756199195D-02
+ 4.467123856D-02 4.745800802D-02 4.456725462D-02-1.514032091D-02-1.846780683D-02
+-1.503633698D-02-1.853019719D-02 8.318454846D-03-1.859258756D-02 8.214470911D-03
+ 8.256064487D-03-5.282643863D-03 8.214470911D-03-5.220253502D-03-5.241050289D-03
+ 1.101969752D-03-5.178659928D-03 1.247547260D-03 1.289140835D-03-5.553002094D-03
+ 1.413921557D-03-5.511408522D-03 3.730917595D-02 1.684279788D-03 3.726758238D-02
+ 1.850654085D-03 1.954638020D-03-7.233148522D-02 2.204199464D-03-7.208192377D-02
+-4.741693437D-02-7.563817435D-02-4.735454400D-02-7.559658078D-02-7.534701933D-02
+-1.586820846D-02-7.526383219D-02-1.570183416D-02 2.953117761D-02-1.597219239D-02
+ 2.928161616D-02-1.611776990D-02 2.930241295D-02 2.934400653D-02 7.611598053D-02
+ 2.938560010D-02 7.634474519D-02 2.942719367D-02 9.755746795D-02-1.132803589D-01
+ 9.745348402D-02-1.132387653D-01 4.566948434D-02-1.892533615D-02 4.577346827D-02
+-1.884214900D-02-1.867577470D-02-9.379376942D-02-1.825983896D-02-9.358580155D-02
+-1.830377218D-03-4.186419223D-02-1.892767579D-03-4.196817617D-02-9.344022404D-02
+-1.853019719D-02-9.356500476D-02-1.844701005D-02-1.846780683D-02 1.609645319D-02
+-1.846780683D-02 1.607565641D-02 1.611724998D-02-4.899749018D-02 1.628362428D-02
+-4.901828697D-02-4.770808938D-02-4.885191267D-02-4.770808938D-02-4.766649581D-02
+-3.706013443D-02-4.762490224D-02-3.701854086D-02-4.758330866D-02 2.894886757D-02
+-4.047080750D-02 2.903205472D-02-4.038762035D-02-4.030443320D-02-6.509420333D-02
+-4.022124606D-02-6.501101618D-02-4.134427256D-02-5.157863141D-03-4.142745970D-02
+-5.074675993D-03-3.602029508D-02 4.460884820D-02-3.606188865D-02 4.460884820D-02
+-5.001653274D-02-1.455801087D-02-5.005812632D-02-1.445402694D-02-1.435004300D-02
+ 3.464718722D-02-1.437083979D-02 3.466798400D-02-6.407516077D-02-4.419343238D-02
+-6.413755113D-02-4.406865166D-02-4.369430949D-02-6.336807001D-02-4.359032555D-02
+-6.322249250D-02-6.326408607D-02-6.330567965D-02-3.090428547D-02-6.332647644D-02
+-3.088348868D-02-3.086269190D-02-2.399975218D-02-3.084189511D-02-2.391656503D-02
+-2.406214254D-02-2.410373612D-02-2.410373612D-02-2.408293933D-02-2.416612648D-02
+-2.050589196D-02-2.052668875D-02-5.750337607D-02-3.123703406D-02-1.430844943D-02
+-1.439163658D-02-8.464552277D-03-3.244324771D-02 2.512225876D-02 2.501827483D-02
+-1.801027752D-02 2.994477371D-03-6.301686427D-03 3.585340086D-02 3.581180729D-02
+ 2.890727400D-02 3.267149245D-02 3.262989887D-02 2.890727400D-02 2.896966436D-02
+ 3.589499444D-02-6.239296068D-03-7.927761208D-02-7.913203457D-02-1.759434178D-02
+ 2.533022663D-02-3.217288948D-02-8.214990833D-03-1.426685586D-02-1.422526228D-02
+-3.090428547D-02-5.719142426D-02-2.013154980D-02-2.379178431D-02-3.880706454D-02
+-2.366700359D-02-3.876547097D-02-3.861989346D-02-2.013154980D-02-3.864069024D-02
+-2.013154980D-02 4.677171405D-02 4.629338795D-02-1.514032091D-02 9.772384225D-02
+-7.470231894D-02 9.786941976D-02 9.578974105D-02-3.015794080D-03-2.953403717D-03
+ 9.626806716D-02 3.502152938D-02 2.813779288D-02-1.451641730D-02 4.695888513D-02
+ 4.716685300D-02-4.637943465D-03 2.641165956D-02-4.762724187D-03 2.632847241D-02
+ 2.634926919D-02-4.845911335D-03 2.626608205D-02-4.887504912D-03-6.946152861D-02
+-6.979427720D-02-6.946152861D-02-6.966949648D-02-6.887921857D-02-6.966949648D-02
+-6.900399929D-02 7.476418938D-02 6.555121273D-02 7.482657974D-02 6.555121273D-02
+ 7.478498616D-02 6.563439988D-02-7.489442926D-04 6.580077417D-02-7.073507196D-04
+-8.672286183D-02-4.369924873D-04-8.668126826D-02 7.921470180D-02 1.621889427D-03
+ 7.913151465D-02 1.580295853D-03-7.565897114D-02 2.678600172D-02-7.570056471D-02
+ 2.693157923D-02-7.557578399D-02 7.536729620D-02-8.684764256D-02 7.538809299D-02
+-8.693082970D-02-7.206112698D-02-8.682684577D-02-7.216511092D-02-9.941124155D-03
+-8.027819750D-03-1.002431130D-02-7.944632601D-03-3.984690389D-02-7.882242240D-03
+-3.988849746D-02 7.216459100D-02-3.327745885D-03 7.189423277D-02-3.494120179D-03
+-3.410933031D-03 7.203981028D-02-3.431729820D-03 6.403304727D-02-1.310457543D-03
+ 6.409543764D-02-1.310457543D-03-1.021332810D-01-1.595139560D-02-1.020916874D-01
+-1.599298918D-02-1.121365356D-01 1.189550222D-02-1.122613163D-01 1.185390864D-02
+-9.499998307D-02 1.019016568D-02-9.491679592D-02 1.027335283D-02 6.276444327D-02
+ 1.023175925D-02 6.259806897D-02 6.239010110D-02 7.988019898D-02 6.243169467D-02
+ 7.998418292D-02 9.907563340D-02 7.994258935D-02 9.907563340D-02 3.857777996D-02
+ 4.067825545D-02 2.087971421D-02 2.094210457D-02 3.853618639D-02 4.071984903D-02
+ 3.843220245D-02 4.055347473D-02 3.834901531D-02 3.763958491D-03 3.834901531D-02
+ 3.826348852D-03 3.930332787D-03-2.433250077D-02 4.013519935D-03-2.410373612D-02
+ 3.876495105D-02-2.414532969D-02 3.878574783D-02 2.790902822D-02 3.913929321D-02
+ 2.784663786D-02 3.911849642D-02-6.679953987D-02-4.558681711D-02-4.558681711D-02
+-5.057804599D-02-8.339537591D-02-4.558681711D-02 3.896616667D-02 3.152128391D-02
+ 3.914011253D-02 3.169522977D-02 2.216299668D-02 2.216299668D-02 1.230026648D-02
+ 1.261336903D-02 2.256307217D-02 3.200833231D-02 1.257857986D-02 1.607489162D-02
+-3.755261670D-02 1.624883748D-02 3.148649474D-02-7.851686649D-02 3.173001892D-02
+-7.815158019D-02-8.294923224D-03-6.835842833D-02-8.799366215D-03-6.884547673D-02
+ 9.339382594D-02-7.564675982D-02 9.421137149D-02-2.669839510D-02-4.536278577D-02
+-2.675057886D-02 3.063416003D-02-2.685494637D-02 3.092986799D-02 3.091247340D-02
+ 7.314652797D-02 3.077331670D-02 7.295518751D-02-6.677552101D-02 2.663665893D-03
+-6.677552101D-02 2.715849651D-03-1.911110199D-03-1.215326762D-03 3.429027673D-03
+-1.319694278D-03 2.420141690D-03-1.389272621D-03 2.333168761D-03-2.111473302D-02
+ 2.367957933D-03 2.750638822D-03-2.059289545D-02 3.307265571D-03 2.681060479D-03
+ 3.811708562D-03 8.382680369D-02 3.637762703D-03 8.391377662D-02 8.337454448D-02
+ 2.378069318D-02 8.347891198D-02 2.381548234D-02-8.505723079D-02-2.228017028D-02
+-4.626730424D-02 8.659254287D-02 8.605331071D-02-4.675435264D-02 6.043108566D-02
+-4.671956347D-02 6.057024236D-02-1.026051143D-02-4.868189802D-03-1.019093309D-02
+-4.833400630D-03 7.525127286D-02-3.149930081D-02 1.078693751D-02-3.136014412D-02
+ 1.052601872D-02 3.738325934D-02 1.071735916D-02 3.747023227D-02 7.413801936D-02
+ 3.724410267D-02 7.439893815D-02 9.117057262D-03 6.029192899D-02 9.151846434D-03
+ 6.013537772D-02 4.161014373D-02 6.003101020D-02 4.157535456D-02-1.888822603D-02
+ 4.161014373D-02-1.878385851D-02 7.876497921D-02-1.116502990D-02 7.843448206D-02
+-1.097368945D-02-7.455090091D-02 7.959991934D-02-6.042649716D-02 6.507544011D-02
+-6.035691881D-02 1.844055531D-02-5.971331914D-02 7.601663464D-02 3.950865250D-03
+ 7.561655917D-02 3.724735633D-03-1.563543847D-02 2.402421739D-02-1.560064930D-02
+-9.149322758D-02-4.626730424D-02-4.611075296D-02 7.126791269D-02-7.496837097D-02
+ 1.306888193D-03-7.496837097D-02 7.465985694D-02-4.277099247D-02 7.462506777D-02
+-3.859303820D-03 7.265947956D-02 2.806076250D-04-1.511034723D-03-7.359419868D-02
+ 7.165059356D-02-7.331588531D-02-1.179123499D-02-7.317672862D-02 6.905880028D-02
+-7.635993784D-02 6.918056238D-02-2.048852793D-02 6.773681174D-02-2.073205213D-02
+ 5.187294941D-02 2.586804349D-02 5.180337107D-02 6.965021619D-02 6.582340729D-02
+-8.114344896D-02-8.194359992D-02-7.794284516D-02-7.702093211D-02-7.776889930D-02
+-4.090977178D-02-4.007483165D-02 5.968637214D-03-3.990088580D-02 6.299134346D-03
+-7.736882382D-02 6.490474791D-03-8.260134052D-03-8.294923224D-03-7.749058593D-02
+ 6.229556002D-03 7.586008337D-02 3.081135955D-03 3.197354314D-02-6.616671050D-02
+ 3.207791064D-02 8.104366995D-02-1.615402238D-03 8.111324831D-02-1.528429309D-03
+-6.602755382D-02-1.354483450D-03-6.557529458D-02-2.648966007D-02-6.494908949D-02
+-8.688366231D-02-8.657055977D-02-2.638529255D-02 7.203327447D-02 4.667196823D-02
+ 6.375345158D-02-5.159004752D-02 6.366647865D-02 6.514501845D-02 6.361429490D-02
+ 6.517980763D-02 3.533395188D-03-9.037997409D-02 4.055232765D-03 7.596445088D-02
+ 2.407640113D-02 7.572092668D-02 2.405900656D-02 4.942356646D-03-1.250115934D-03
+-8.500404585D-04 2.611482135D-03-1.371878036D-03-7.122853500D-02-1.267510520D-03
+ 7.544261331D-02 4.977145818D-03 2.144981867D-02 2.184989415D-02 5.290248364D-03
+ 2.169334288D-02-6.778440699D-02 2.179771039D-02-6.776701241D-02-2.119845230D-03
+ 1.270034196D-02-2.119845230D-03-4.334501380D-02-2.032872300D-03-4.331022463D-02
+-1.980688542D-03 2.275441262D-02 1.840576614D-02 2.266743969D-02 4.439327748D-02
+ 2.258046676D-02 4.442806663D-02 7.639931553D-02 4.446285582D-02 7.646889388D-02
+-1.344372065D-02 7.655586680D-02-1.337414231D-02-5.207709593D-02-5.153786376D-02
+-1.245222925D-02-5.193793924D-02 6.737152545D-02 2.454930862D-03 6.766723341D-02
+ 2.559298378D-03-5.080729115D-02 2.663665893D-03-5.066813447D-02 6.667574201D-02
+-2.606893635D-03 6.681489870D-02-4.313627877D-02 4.420519069D-03-4.296233291D-02
+ 4.472702827D-03 4.455308241D-03-5.985247582D-02 4.507491998D-03-5.966113538D-02
+ 1.447458972D-02-1.967098239D-02 1.447458972D-02-1.968837698D-02-6.910639552D-02
+-1.941006361D-02-6.893244966D-02 8.083493494D-02 4.621970900D-02 8.078275116D-02
+ 8.100888080D-02 4.639365485D-02 1.341677365D-03 4.648062778D-02 1.359071951D-03
+-2.916842630D-02 1.498228638D-03-2.895969126D-02 7.318131714D-02-4.477136985D-02
+ 7.330307922D-02-4.478876443D-02-4.518883991D-02 7.064170760D-02-4.546715328D-02
+ 1.673588589D-02-3.487385047D-02 1.694462092D-02-3.443898582D-02 7.069389134D-02
+ 7.448591108D-02 7.062431301D-02 7.438154357D-02-7.672522415D-02 7.439893815D-02
+-7.651648912D-02-5.080729115D-02-7.618599198D-02-5.068552905D-02-5.056376695D-02
+ 3.764417813D-02-5.073771281D-02 3.741804853D-02-5.839133061D-02 3.736586477D-02
+-5.839133061D-02 3.936624215D-02-3.002076100D-02 3.943582049D-02-2.998597183D-02
+-6.147017231D-02-9.408502087D-02-6.108749142D-02-9.394586420D-02-6.089615098D-02
+-9.377191835D-02-5.785209844D-02-3.400412118D-02-5.778252010D-02-3.389975366D-02
+-3.457814251D-02 3.035584665D-02-3.445638041D-02-3.447377499D-02 3.052979251D-02
+-3.436940748D-02-3.153408998D-02 6.646700698D-02-3.151669539D-02 6.643221779D-02
+-1.822723176D-02-4.508447239D-02-1.840117762D-02 6.354471655D-02-1.873167476D-02
+ 6.350992738D-02-1.869688558D-02-4.548454787D-02 3.947060965D-02-6.609713216D-02
+ 3.950539884D-02-3.529132053D-02 3.742130219D-03-7.317672862D-02 4.142205694D-03
+-7.305496652D-02 3.776919391D-03-4.482355361D-02 4.020443593D-03-4.468439692D-02
+ 3.912271793D-02 2.458184532D-04 7.215503657D-02 1.762401097D-04-8.803170498D-02
+ 3.607866540D-02-8.803170498D-02 7.205066906D-02 5.797844906D-02 7.977386520D-02
+ 5.801323824D-02 4.350940725D-03 4.472702827D-03 5.823936785D-02 4.472702827D-03
+ 2.477218456D-02 5.448213730D-02 2.466781707D-02 5.446474271D-02-5.687800163D-02
+-3.383017532D-02-5.686060705D-02-3.376059697D-02 2.284238674D-04-3.372580780D-02
+ 3.675805545D-04 7.194630154D-02-4.284057081D-02 7.212024740D-02-4.285796540D-02
+-7.241136684D-02-7.755691061D-03-7.258531270D-02-7.825269405D-03 6.462318088D-02
+-8.011716840D-02 1.861450117D-02 1.856231741D-02-7.987364419D-02 7.062431301D-02
+-2.154634401D-03 7.067649677D-02-8.055203304D-02 1.821442570D-02 5.629117423D-02
+-7.966490916D-02-4.198823610D-02-4.190126317D-02-9.234230863D-03 6.629306112D-02
+ 6.596256399D-02-9.947408885D-03 8.734376372D-03-3.708296288D-02 8.890927645D-03
+-3.713514664D-02-2.542859033D-02-2.530682823D-02-3.685683326D-02-2.525464447D-02
+-3.675246575D-02-2.527203905D-02-2.534161740D-02-2.396744511D-02-2.530682823D-02
+-2.398483970D-02-5.308598191D-02-2.382828842D-02-5.301640356D-02 1.169145598D-02
+-1.720095120D-02 3.011557611D-03-1.720095120D-02 1.181321808D-02 1.169145598D-02
+-1.734010789D-02 1.177842890D-02-4.228394406D-02-3.911487577D-03-4.244049534D-02
+-3.163510372D-01-3.162156070D-01-3.163510372D-01-3.162446278D-01-3.162929957D-01
+-3.162543014D-01-3.163026693D-01-3.295372995D-02-8.338212162D-02-3.285699410D-02
+-1.951712225D-02-1.948810147D-02-1.330784927D-03 4.439624513D-02 4.436722434D-02
+ 4.437689792D-02 5.170947433D-02 9.614991778D-02-1.959451090D-02 2.718693975D-02
+-1.966222597D-02-7.762633933D-02-9.678970862D-02-6.374474676D-02-2.288352932D-02
+ 2.859928295D-02 5.519196447D-02 8.738565096D-02 1.068295541D-01 1.512699975D-01
+ 1.429603891D-01 1.260025969D-01 1.014413680D-01 1.014316944D-01 8.440618715D-02
+ 6.207955606D-02 4.686300892D-02 1.250243974D-02-3.913631784D-03-1.573475100D-02
+ 1.645893543D-02-3.971673231D-03 3.979161925D-02 3.979161925D-02 3.978194567D-02
+ 3.979161925D-02 1.149069965D-01 1.456302982D-01 1.812677805D-01 1.165998736D-01
+ 7.348471123D-02 4.687268250D-02 4.689202970D-02 4.689202970D-02 6.209890321D-02
+ 8.440618715D-02 1.014123473D-01 1.162322774D-01-5.528670607D-02-5.528670607D-02
+-5.518100356D-02-5.514576939D-02-5.518100356D-02-5.521623773D-02-5.507530106D-02
+-5.514576939D-02-5.528670607D-02-5.496959856D-02-5.496959856D-02-5.507530106D-02
+-5.496959856D-02-5.489913022D-02-5.507530106D-02-5.504006689D-02-5.493436439D-02
+-5.528670607D-02-5.489913022D-02 1.852569576D-01 1.852569576D-01 1.853626601D-01
+ 1.852569576D-01 1.853274259D-01 1.853626601D-01-5.489913022D-02-5.514576939D-02
+-5.525147190D-02-5.511053523D-02-5.475819355D-02-5.507530106D-02 2.714749662D-01
+ 1.851512551D-01 1.852921917D-01-2.977330148D-01-2.975216098D-01-2.978387173D-01
+-2.979796539D-01 2.715102004D-01 2.715102004D-01 2.714749662D-01-2.503729638D-01
+-3.518699686D-01-2.502897422D-01-3.518033914D-01-2.501898764D-01-3.517035255D-01
+-2.501732321D-01 1.559978746D-01 2.322288163D-01 2.324784809D-01 1.560145189D-01
+-1.786859186D-02 1.561809620D-01 1.560145189D-01 1.562142506D-01 1.560311632D-01
+ 1.561643177D-01 1.560478075D-01 1.562142506D-01 1.559978746D-01 1.560810961D-01
+-1.790188048D-02-1.780201461D-02-1.803503496D-02-1.781865894D-02-1.801839065D-02
+-1.781865894D-02 1.700209891D-01 1.722146852D-01 1.725071780D-01 1.703866051D-01
+ 1.709715907D-01-3.872509562D-01-3.860809850D-01-1.357802542D-01 1.713372068D-01
+ 1.702403586D-01-1.372427183D-01 1.712640835D-01 1.702403586D-01-1.369502256D-01
+-1.358533775D-01 1.717028228D-01 1.705328515D-01-1.370233487D-01-1.362921166D-01
+ 1.708253443D-01 1.705328515D-01-3.873972027D-01-2.429057496D-01 1.302716238D-01
+-3.953803117D-01 1.311991669D-01 1.306691423D-01 1.309341545D-01 1.306691423D-01
+ 1.309341545D-01 1.302716238D-01-3.370776015D-01 1.304041299D-01 1.301391176D-01
+ 1.294765868D-01 1.300066114D-01 1.308016484D-01 1.304041299D-01 1.300066114D-01
+-3.377401323D-01-3.385351692D-01-3.391977000D-01-3.381376507D-01 1.286815499D-01
+ 1.311991669D-01 6.109227453D-02 6.101087057D-02-1.111585216D-01-2.184896534D-01
+-1.111178196D-01 1.548696456D-01 1.547882416D-01 6.532528087D-02 6.528457888D-02
+ 6.504036698D-02 6.499966500D-02 6.410422135D-02 6.499966500D-02 6.414492333D-02
+ 6.508106896D-02-4.769472516D-01-2.931777939D-01-2.930149860D-01-5.461813263D-01
+ 1.544626258D-01 1.549103476D-01 1.549510496D-01 6.512177095D-02 1.544626258D-01
+ 6.520317496D-02 6.536598285D-02 6.512177095D-02 6.508106896D-02 1.546661357D-01
+ 3.149057655D-01-1.234835130D-01 8.301208689D-02-1.132991349D-01-7.704610185D-02
+-7.708801283D-02-1.137601561D-01-7.708801283D-02-7.729756798D-02 8.317973097D-02
+ 8.288635387D-02-7.733947900D-02-7.721374593D-02-1.133829570D-01 8.309590893D-02
+ 2.633552097D-01 2.636904979D-01 4.745867551D-01 2.637324090D-01 1.543446444D-01
+ 1.629364037D-01-1.619578301D-01-7.704610185D-02-7.729756798D-02-7.738139002D-02
+-7.725565691D-02-1.622931183D-01-1.622931183D-01-7.733947900D-02-7.721374593D-02
+ 8.347310812D-02 8.326355301D-02-7.738139002D-02-7.721374593D-02-1.619997412D-01
+-1.624607624D-01-7.754903406D-02-7.708801283D-02 2.638162310D-01 8.271870974D-02
+-7.746521206D-02-7.729756798D-02-7.746521206D-02 1.202741122D-01-2.516002821D-02
+-2.514718634D-02-1.704396845D-02-1.704396845D-02-1.590104232D-02-7.480668487D-02
+-7.481952674D-02 4.992674800D-03 4.979832937D-03 6.272970749D-02 6.272970749D-02
+ 9.150833076D-02 9.149548890D-02 1.010498377D-01 1.010369959D-01 1.114645916D-01
+ 1.114517497D-01 1.010241540D-01 1.010369959D-01 9.145696330D-02 9.145696330D-02
+ 6.269118189D-02 6.269118189D-02 4.889939869D-03 4.902781733D-03-9.799909613D-02
+-9.799909613D-02-7.496078727D-02-7.496078727D-02-7.481952674D-02-7.480668487D-02
+-7.476815927D-02-7.474247554D-02-7.470394994D-02-7.485805234D-02-7.484521047D-02
+-9.789636120D-02-9.788351933D-02 5.031200402D-03 5.031200402D-03 6.280675869D-02
+ 6.280675869D-02 9.130286090D-02 9.130286090D-02 1.008828935D-01 1.008957353D-01
+ 1.112334380D-01 1.112462799D-01 1.289552141D-01 1.289680559D-01 1.112077543D-01
+ 1.112077543D-01 1.221233410D-01 1.220719735D-01 1.221104991D-01 1.110279681D-01
+ 1.110151263D-01 1.220591316D-01 1.220591316D-01 1.111307031D-01 1.111435449D-01
+ 1.288910047D-01 1.288781629D-01 1.008186841D-01 1.008186841D-01 9.114875850D-02
+ 9.114875850D-02 6.235729335D-02 6.238297709D-02 4.568893201D-03 4.581735065D-03
+-9.832014280D-02-9.830730093D-02-7.528183394D-02-7.526899207D-02-3.447038156D-02
+-3.447038156D-02-1.638903325D-02-1.640187512D-02-3.445753970D-02-3.445753970D-02
+-7.525615020D-02-7.525615020D-02-7.511488967D-02-7.508920594D-02-7.505068034D-02
+-7.501215474D-02-7.502499660D-02-7.511488967D-02-7.511488967D-02-7.959670115D-02
+-7.958385928D-02-7.511488967D-02-7.511488967D-02-7.514057340D-02-7.514057340D-02
+-3.432912103D-02-3.434196290D-02-3.381544636D-02-3.380260450D-02-1.627345645D-02
+-1.627345645D-02-1.739069885D-02-1.739069885D-02-2.551960047D-02-2.551960047D-02
+ 1.197861212D-01 1.197861212D-01 1.197475956D-01 1.197475956D-01-2.559665167D-02
+-2.559665167D-02-1.750627565D-02-1.749343379D-02-1.635050765D-02-1.636334952D-02
+-3.436764663D-02-3.438048850D-02-3.385397196D-02-3.385397196D-02-7.525615020D-02
+-7.524330834D-02-7.969943608D-02-7.969943608D-02-7.524330834D-02-7.523046647D-02
+-7.529467580D-02 6.235729335D-02 6.234445149D-02 9.113591663D-02 9.113591663D-02
+ 1.007159492D-01 1.007287911D-01 6.234445149D-02 4.556051337D-03 4.556051337D-03
+-7.532035954D-02-7.532035954D-02-7.519194087D-02-7.519194087D-02-7.511488967D-02
+-7.507636407D-02-7.506352220D-02-7.520478274D-02-7.519194087D-02-9.826877533D-02
+-9.826877533D-02-7.516625714D-02-7.516625714D-02-3.436764663D-02-3.435480476D-02
+-3.384113010D-02-3.385397196D-02-1.631198205D-02-1.631198205D-02-1.744206632D-02
+-1.744206632D-02-2.559665167D-02-2.558380981D-02 1.197604375D-01 1.197604375D-01
+-9.671490946D-02-1.853362499D-02-9.675343506D-02-1.852078312D-02-9.674059319D-02
+-1.850794126D-02-9.671490946D-02-1.146850628D-01-8.729578385D-02-1.146805654D-01
+-8.729128643D-02-1.146850628D-01-8.729128643D-02-9.713163820D-02-9.719010464D-02
+-9.717661239D-02-8.729128643D-02-1.146805654D-01-8.729578385D-02-1.146850628D-01
+-8.729578385D-02-1.146850628D-01-9.718110980D-02-9.712264336D-02-9.882716499D-02
+-1.018944044D-01-8.014938579D-02-7.659192772D-02-7.177519246D-02-6.270839668D-02
+-5.672683002D-02-4.882036822D-02-4.497507537D-02-4.048215425D-02-3.686173233D-02
+-2.488960417D-02-2.754757853D-02-1.984799798D-02-1.985699282D-02-2.755657337D-02
+-5.787367175D-02-8.224968025D-02-1.027669036D-01-9.674036279D-02-9.673586537D-02
+-8.077452696D-02-6.857303046D-02-8.099040305D-02-8.078352180D-02-9.674486021D-02
+-1.027624062D-01-9.064186324D-02-8.221370090D-02-5.788266658D-02-2.754757853D-02
+-1.987048508D-02-2.758805529D-02-1.987048508D-02-5.330330930D-03 7.091539083D-03
+ 7.096036501D-03-7.919593306D-02-1.071653790D-01-1.071608815D-01-9.267919384D-02
+-3.888107325D-02 7.105031338D-03 7.082544245D-03 7.073549408D-03 5.256592317D-03
+ 3.111323673D-03 8.491221458D-04 6.264014071D-03 6.250521815D-03 5.369027781D-03
+ 6.479890161D-03 2.488782425D-02 3.458875605D-02 4.079969105D-02 4.921885857D-02
+ 4.920536632D-02 1.672500960D-02 1.672051218D-02 7.392866125D-03 5.670256303D-02
+ 4.267511459D-02 2.797305337D-02 4.268860686D-02-2.372477277D-02 1.383766690D-02
+ 1.378369787D-02-2.015733465D-03 4.932778182D-03 3.597044875D-03 1.381517980D-02
+ 1.938298396D-02 1.380168755D-02 1.378819529D-02 8.188909207D-03 4.075921429D-02
+ 4.947970885D-02 3.804277348D-02 5.743114483D-02 9.455733490D-02 8.948874420D-02
+ 9.454834006D-02 5.745363192D-02 3.802928124D-02 4.946171918D-02 4.077720398D-02
+ 8.206898881D-03 1.937848654D-02 1.381517980D-02 2.025998057D-02 2.023749348D-02
+-3.343919682D-02 3.057354651D-03 1.628876000D-02 9.349243191D-03 3.928406100D-02
+ 2.720399480D-02 3.927506617D-02 1.504297506D-02 6.319233798D-02 7.556023897D-02
+ 7.425149018D-02 4.853075354D-02 5.890629811D-02 4.852175870D-02 5.891529295D-02
+ 7.430096178D-02 7.556473639D-02 1.504297506D-02 3.322603823D-02 3.928855844D-02
+ 2.722198448D-02 3.929305585D-02-5.510227672D-03-2.717330758D-03-1.139734854D-02
+-2.717330758D-03-2.119272613D-02-2.032472435D-02-1.915089811D-02-2.030673468D-02
+-1.914190327D-02-2.115674678D-02-5.483243161D-03-2.690346246D-03-1.137036403D-02
+ 3.926157392D-02 2.717701029D-02 3.925257907D-02 2.024199090D-02 2.021050897D-02
+-3.350665810D-02 3.012380465D-03 1.623479098D-02 9.277284494D-03 1.623029356D-02
+ 4.874311741D-03-2.377424437D-02 4.266611976D-02 2.795956112D-02 2.211741443D-02
+ 7.370379032D-03 1.668453283D-02 7.365881614D-03 2.795506370D-02 9.450336587D-02
+ 9.448087878D-02 8.942128292D-02 9.449886846D-02 5.740865774D-02 3.799779931D-02
+ 4.945272434D-02 8.175416951D-03 1.935150203D-02 3.579055201D-03 4.905793671D-03
+-2.042717977D-03-2.374725986D-02-2.024728303D-03 1.379269271D-02 1.939197879D-02
+ 3.606039713D-03 4.923783345D-03 3.052857234D-03-3.349766326D-02 2.021500639D-02
+ 1.623928840D-02 9.317761261D-03 3.925707648D-02 3.320804856D-02 1.502048797D-02
+ 3.321704339D-02 3.927506617D-02-2.694843663D-03-1.136136920D-02-2.685848828D-03
+-5.483243161D-03-5.510227672D-03-2.118373129D-02-1.914640069D-02-2.031572951D-02
+-1.913740585D-02-2.031123209D-02-1.914640069D-02-2.118373129D-02-5.510227672D-03
+ 5.845754146D-03 4.928280764D-03 1.773243135D-02 4.445159491D-02 7.165647968D-02
+ 7.165647968D-02 9.700393058D-02 1.039029706D-01 1.091244736D-01 1.169229973D-01
+ 1.169454844D-01 1.091289710D-01 1.039074680D-01 9.700842800D-02 1.084318711D-01
+ 1.163158458D-01 1.201746309D-01 1.128618284D-01 1.078606989D-01 1.070286765D-01
+ 1.070241791D-01 1.070286765D-01 1.070331739D-01 9.081098525D-02 8.947075453D-02
+ 9.453484780D-02 5.744013967D-02 3.804277348D-02 4.947970885D-02 8.188909207D-03
+ 1.381517980D-02 1.938748138D-02 8.215893718D-03 4.950219594D-02 3.806975800D-02
+ 5.748511385D-02 8.951123129D-02 9.457532457D-02 7.047815602D-02 7.048715086D-02
+ 1.670701993D-02 7.406358380D-03 7.397363543D-03 1.670701993D-02 4.921885857D-02
+ 4.078170139D-02 3.456626896D-02 2.485634232D-02 5.360032944D-03 6.264014071D-03
+ 8.446247282D-04 3.111323673D-03 5.265587155D-03 7.082544245D-03 7.096036501D-03
+-5.339325768D-03-1.987947991D-02-2.759705013D-02-3.009761484D-02-2.493457836D-02
+-3.690670651D-02-4.500205988D-02-5.675381453D-02-6.274437603D-02-7.180217697D-02
+-7.660541998D-02-8.014488837D-02-1.018944044D-01-9.883615983D-02-9.717211497D-02
+-9.718560722D-02-9.716761755D-02-9.720809432D-02-9.720359690D-02-1.147030524D-01
+-8.731377352D-02-1.146940576D-01-8.730927611D-02-1.146985550D-01-8.730477869D-02
+-3.818936138D-03-1.324197404D-01-1.958328737D-03-1.082748813D-03-2.067776290D-03
+ 1.692175503D-01 2.296325664D-01 2.286475390D-01 1.684514178D-01 2.286475390D-01
+ 1.647302031D-01-1.399716175D-01-1.326386354D-01-4.585068592D-03-1.326386354D-01
+-1.400810649D-01 1.633073857D-01-1.401905124D-01-4.475621122D-03-1.326386354D-01
+-1.400810649D-01 1.631979382D-01 1.670286004D-01-1.319819505D-01-5.235850804D-01
+-1.705074680D-01-1.708358105D-01 4.226979441D-01-1.858460137D-02-4.636868504D-01
+-1.836559090D-02-4.636868504D-01-1.829258743D-02-4.633948365D-01-1.814658044D-02
+ 1.780137841D-01 1.783788016D-01 1.785248085D-01-1.687527704D-01 1.757506762D-01
+ 1.754586622D-01 1.753856587D-01 1.756046691D-01 1.755316657D-01 1.748746343D-01
+ 8.902253581D-02-1.712348888D-01 6.347131597D-02 6.412834736D-02-2.534974041D-02
+-6.108584764D-02-2.537318161D-02-6.107998734D-02-2.536146101D-02-6.109756824D-02
+-2.535560071D-02-6.110342854D-02-2.533215951D-02-6.112100944D-02-2.534388011D-02
+ 9.071935434D-02 9.785719930D-02 9.081311913D-02 2.283543518D-01 2.289696832D-01
+-2.155574860D-01-2.114494159D-01-1.523486323D-02-3.814863483D-02-1.526416472D-02
+ 2.283484915D-01 2.289755435D-01-2.114962983D-01-1.527002502D-02-3.820137753D-02
+-1.526416472D-02 9.790994200D-02 9.081897943D-02-2.155750669D-01-2.114552762D-01
+-2.155692066D-01-2.114259747D-01-1.522314263D-02-3.814863483D-02-1.530518682D-02
+ 9.793338320D-02 9.077209704D-02 2.283191900D-01 2.289462420D-01-1.527588532D-02
+-3.815449513D-02-1.527002502D-02 9.077209704D-02 9.789822140D-02 2.289403817D-01
+ 2.283191900D-01-2.114376953D-01-2.156102287D-01-2.114669968D-01 9.078967793D-02
+ 9.795096410D-02-7.483541436D-02-7.484660358D-02-7.483168462D-02-7.481303588D-02
+-7.480557644D-02-7.623779669D-02-7.185535179D-02-7.147118858D-02-6.827480111D-02
+-7.044178024D-02-6.955783178D-02-6.907296554D-02-6.943848009D-02-7.491746865D-02
+-7.942299498D-02-6.937880425D-02-7.118772831D-02-6.940118269D-02-6.601830820D-02
+-6.939745295D-02-7.121383649D-02-7.944537342D-02-7.493611735D-02-6.947577749D-02
+-6.910280346D-02-6.958766970D-02-6.946458827D-02-7.621541829D-02-8.809091152D-02
+-9.261135681D-02-6.844636916D-02-5.111053607D-02-5.093150853D-02-5.092404905D-02
+-8.820653347D-02-5.394140899D-02-5.282621663D-02-6.857318033D-02-6.859928852D-02
+-5.287843299D-02-5.397497665D-02-8.824756062D-02-5.095388698D-02-5.094642750D-02
+-5.112545503D-02-6.144191681D-02-6.120321343D-02-5.539227798D-02-4.252840355D-02
+-3.685546848D-02-2.906404091D-02-2.586392370D-02-2.902674351D-02-2.389089107D-02
+-2.273467156D-02-2.217148077D-02-2.808311921D-02-2.806074076D-02-2.213791311D-02
+-2.268991468D-02-2.385359366D-02-2.897825689D-02-2.581543708D-02-2.902301377D-02
+-3.682190082D-02-4.250975485D-02-5.537362928D-02-6.118456472D-02-7.449227821D-02
+-7.951250874D-02-6.249370358D-02-4.230834887D-02-1.716989898D-02-1.078458352D-02
+ 1.277396735D-03 1.161250721D-02 1.009077315D-02-4.457433027D-04-1.420848515D-02
+-2.652035800D-02-6.871864021D-02-3.631838588D-02-2.482332615D-02-3.780131163D-03
+ 6.480384503D-03 8.367633118D-03 1.015417874D-02 1.164234513D-02 1.012061108D-02
+-4.270945992D-04-1.418983645D-02-2.651289852D-02-6.870372124D-02-3.632957509D-02
+-2.483451537D-02-1.028106857D-02-2.213640221D-03 1.495808430D-02-1.041160948D-02
+-4.993566786D-02-2.862020181D-02-1.483881126D-02 3.500321977D-03-1.829628056D-02
+ 1.059801784D-02 1.060547732D-02 9.852069773D-03 2.046318103D-02 4.261783862D-02
+ 6.516411897D-02 7.542090490D-02 7.102354107D-02 7.964297096D-02 8.619612473D-02
+ 9.191754645D-02 9.625896416D-02 1.027822800D-01 1.181599995D-01 1.183949731D-01
+ 1.127854436D-01 1.021780621D-01 9.563982731D-02 8.616255707D-02 8.616255707D-02
+ 9.191008697D-02 9.624031546D-02 1.027934692D-01 1.169888610D-01 1.032708760D-01
+ 7.572674360D-02 7.062072908D-02 5.191981103D-02 6.515292978D-02 5.191608132D-02
+ 4.558671193D-02 4.102523954D-02 5.345273434D-02 6.244886804D-02 6.245259778D-02
+ 9.141776121D-02 1.169851312D-01 1.032447679D-01 7.570063542D-02 7.061699934D-02
+ 7.539479671D-02 6.514920004D-02 5.191235158D-02 4.558671193D-02 4.104388824D-02
+ 4.101778002D-02 5.343781534D-02 6.245259778D-02 6.245259778D-02 9.142149098D-02
+ 1.032596868D-01 1.170000502D-01 1.028195775D-01 9.624404524D-02 1.181637292D-01
+ 1.183987028D-01 1.128003626D-01 8.826986036D-02 1.053968280D-01 1.053968280D-01
+ 9.932108102D-02 9.518106924D-02 5.760393534D-02 9.515123132D-02 9.445376988D-02
+ 8.101924514D-02 8.412611888D-02 8.102670466D-02 9.446122932D-02 9.516615025D-02
+ 9.930989176D-02 1.054005577D-01 8.827359014D-02 1.022004405D-01 9.565474623D-02
+ 8.617747607D-02 7.962805203D-02 7.101981130D-02 6.515665952D-02 4.260664944D-02
+ 2.045572155D-02 1.059428810D-02 9.844610292D-03 1.055326096D-02 9.807312889D-03
+-1.832238874D-02 3.477943534D-03-1.484254101D-02-2.862393155D-02-7.310481484D-02
+-7.316822043D-02-7.310108510D-02-4.989837046D-02-1.038550130D-02 1.496927352D-02
+ 3.442732886D-02 2.637854921D-02-2.202450999D-03-1.027360909D-02 1.095980265D-02
+-3.809969085D-03 6.458006065D-03 8.334065455D-03 1.012061108D-02 1.157893955D-02
+ 1.005347575D-02-4.905001857D-04 1.258748032D-03-1.080323222D-02-1.719600716D-02
+-4.234191654D-02-6.251235228D-02-7.952742767D-02-7.451838643D-02-6.119575394D-02
+-6.143445733D-02-5.111053607D-02-6.845009890D-02-9.258151885D-02-8.806107360D-02
+-7.617439114D-02-7.492865787D-02-6.945712876D-02-6.908788450D-02-6.943102057D-02
+-7.041940180D-02-7.047907765D-02-6.832328773D-02-7.150102650D-02-7.190383845D-02
+-7.629001309D-02-7.484287384D-02-7.482422514D-02                        7765D+00
+ 6.406762598D+01 5.883397765D+00 6.402786445D+01 5.957716784D+00 7.641148593D+01
+ 6.419160491D+01 7.637711988D+01 6.417271547D+01 6.420193420D+01 7.681649615D+00
+ 6.424921469D+01 7.683658858D+00 6.798478512D+01 5.151374569D+01 6.788997351D+01
+ 5.148439535D+01 5.152988778D+01 2.026363225D+01 5.157863196D+01 2.026373291D+01
+ 9.116164644D+01 1.060632314D+01 9.101081447D+01 1.058942556D+01 9.092409462D+01
+ 8.424277385D+01 7.841628355D+01 8.420383984D+01 7.840260653D+01 7.839867596D+01
+ 9.045439141D+01 7.836766232D+01 9.042058772D+01 5.144780028D+01 7.943405038D+01
+ 5.142380247D+01 7.941863899D+01 5.144529522D+01 5.149343316D+01 4.317545284D+01
+ 5.151959834D+01 4.323939374D+01 5.149345936D+01 8.094992390D+01 7.036663670D+01
+ 8.088924141D+01 7.037002960D+01 6.144145532D+01 7.043762406D+01 6.143475451D+01
+ 7.046144804D+01 6.145008251D+01 6.148203694D+01 6.109699511D+01 6.144167320D+01
+ 6.108477232D+01 6.112340506D+01 6.087806427D+01 6.109783408D+01 6.085436717D+01
+ 6.109138830D+01 4.861464344D+01 2.779204783D+01 4.863299600D+01 2.776273056D+01
+ 4.863808808D+01 8.056841596D+01 6.251386279D+01 8.052164594D+01 6.250943356D+01
+ 6.251270019D+01 4.859203646D+01 6.252700209D+01 4.853524405D+01 6.250867010D+01
+ 7.468123820D+01 6.318721851D+01 7.467294147D+01 6.316462880D+01 4.216097559D+01
+ 5.043223190D+01 4.211956324D+01 5.043232335D+01 4.214412673D+01 3.300376444D+01
+ 8.353930957D+01 3.301384331D+01 8.357370699D+01 3.305246275D+01 4.008231576D+01
+ 3.304314407D+01 4.007922781D+01 9.153924453D+01 7.920812478D+01 9.153758765D+01
+ 7.925711228D+01 9.152982426D+01 9.153902862D+01 9.230755228D+01 9.146138090D+01
+ 9.230085257D+01 7.176575728D+01 7.049728697D+01 7.177110224D+01 7.050712127D+01
+ 4.375134021D+01 4.225699614D+01 4.379494548D+01 4.224292421D+01 5.427159682D+01
+ 4.225173892D+01 5.425083331D+01 5.426940501D+01 4.820052308D+01 5.422045658D+01
+ 4.819403810D+01 4.829392352D+01 5.110473578D+01 4.827749572D+01 5.112414223D+01
+ 5.112270903D+01 4.804404414D+01 5.114961959D+01 4.804318247D+01 6.735594883D+01
+ 5.141015603D+01 6.729559937D+01 5.143287206D+01 5.143639694D+01 1.818228889D+01
+ 5.149338248D+01 1.826280556D+01 2.947635002D+01 1.685064744D+01 2.947254969D+01
+ 1.680612789D+01 1.687223696D+01 4.343303285D+01 1.684822235D+01 4.347158230D+01
+ 6.381459999D+01 4.349236896D+01 6.374928831D+01 4.345805723D+01 6.377286880D+01
+ 6.376896225D+01 8.464948031D+01 6.372279560D+01 8.469224481D+01 6.368442060D+01
+ 9.420075239D+01-6.877308478D-02 9.417644574D+01-4.123350056D-02 7.111039337D+01
+ 4.223443661D+01 7.115784865D+01 4.224283324D+01 4.229293586D+01 8.662049812D+00
+ 4.240275839D+01 8.673723289D+00 4.982074055D+01 3.194038305D+01 4.982798942D+01
+ 3.191403964D+01 8.745105287D+00 4.228781659D+01 8.752797480D+00 4.233746192D+01
+ 4.230064505D+01 5.772982054D+01 4.225201392D+01 5.768013978D+01 5.769643824D+01
+ 2.859012205D+01 5.779293761D+01 2.860729697D+01 2.921156583D+01 2.871119532D+01
+ 2.922904658D+01 2.924591740D+01 3.397942784D+01 2.924409133D+01 3.397426492D+01
+ 2.923614080D+01 6.347965820D+01 3.242624094D+01 6.350600539D+01 3.246285031D+01
+ 3.250333220D+01 2.142046356D+01 3.254107349D+01 2.144695240D+01 3.203668099D+01
+ 4.821532257D+01 3.199383418D+01 4.824776464D+01 3.443355155D+01 7.047919006D+01
+ 3.439707538D+01 7.046762536D+01 2.827197169D+01 4.411382936D+01 2.822416723D+01
+ 4.412930686D+01 4.413637254D+01 6.603580462D+01 4.410538335D+01 6.602577638D+01
+ 2.199528301D+01 3.087777478D+01 2.194517381D+01 3.090586361D+01 3.107530786D+01
+ 2.225039338D+01 3.106983781D+01 2.226570547D+01 2.232953056D+01 2.231490628D+01
+ 3.680088827D+01 2.229272666D+01 3.678605912D+01 3.676662965D+01 3.981459085D+01
+ 3.673788566D+01 3.982235096D+01 3.982113654D+01 3.980787686D+01 3.981278974D+01
+ 3.982652082D+01 3.979322108D+01 4.140842841D+01 4.138970443D+01 2.482824251D+01
+ 3.654514760D+01 4.409952308D+01 4.406264057D+01 4.673013686D+01 3.602976510D+01
+ 6.179252770D+01 6.175000093D+01 4.249869041D+01 5.185713584D+01 4.770080714D+01
+ 6.656488262D+01 6.655683140D+01 6.347381222D+01 6.515224589D+01 6.510239153D+01
+ 6.342724030D+01 6.348139495D+01 6.657007727D+01 4.772386995D+01 1.506335360D+01
+ 1.513272497D+01 4.267597302D+01 6.185560919D+01 3.613161172D+01 4.683983775D+01
+ 4.412997091D+01 4.414694269D+01 3.668753756D+01 2.493151167D+01 4.150297279D+01
+ 3.996389011D+01 3.321848141D+01 3.996543486D+01 3.319534299D+01 3.323616784D+01
+ 4.149158475D+01 3.320990221D+01 4.148597036D+01 7.145887050D+01 7.126202765D+01
+ 4.379200439D+01 9.424755325D+01 1.712508575D+01 9.426669524D+01 9.332058784D+01
+ 4.918308859D+01 4.921275535D+01 9.354193696D+01 6.616368608D+01 6.308161590D+01
+ 4.400870295D+01 7.150529109D+01 7.160391217D+01 4.844174478D+01 6.232154300D+01
+ 4.837945145D+01 6.228354310D+01 6.229627635D+01 4.834861785D+01 6.225840134D+01
+ 4.831949662D+01 1.951401556D+01 1.936031023D+01 1.950167059D+01 1.940370301D+01
+ 1.974972088D+01 1.939149294D+01 1.968437715D+01 8.400394050D+01 7.987364883D+01
+ 8.400582185D+01 7.984806350D+01 8.396590391D+01 7.986262759D+01 5.017015535D+01
+ 7.992544236D+01 5.018325511D+01 1.172051099D+01 5.031215254D+01 1.175247352D+01
+ 8.603447511D+01 5.133508878D+01 8.598993007D+01 5.130254640D+01 1.671665653D+01
+ 6.251772123D+01 1.667706964D+01 6.256102930D+01 1.671355505D+01 8.420443951D+01
+ 1.166071594D+01 8.420937917D+01 1.162393771D+01 1.828347969D+01 1.170182911D+01
+ 1.827703660D+01 4.610018702D+01 4.692973437D+01 4.603021805D+01 4.695093068D+01
+ 3.267683055D+01 4.697059220D+01 3.266561139D+01 8.277752602D+01 4.902958131D+01
+ 8.268449437D+01 4.898802425D+01 4.898225794D+01 8.271391509D+01 4.895803118D+01
+ 7.912672341D+01 4.990556410D+01 7.915564174D+01 4.991009596D+01 4.899591538D+00
+ 4.344346005D+01 4.925549345D+00 4.342810880D+01 4.331967935D-01 5.589617385D+01
+ 3.717899952D-01 5.585579794D+01 8.062828255D+00 5.507922723D+01 8.060735383D+00
+ 5.508700201D+01 7.855728602D+01 5.507274339D+01 7.850649068D+01 7.846668704D+01
+ 8.628867258D+01 7.848018109D+01 8.629782704D+01 9.482796617D+01 8.626478974D+01
+ 9.481392376D+01 6.776144343D+01 6.869626108D+01 5.984192274D+01 5.987331811D+01
+ 6.774256178D+01 6.872158893D+01 6.770577971D+01 6.865782397D+01 6.767675923D+01
+ 5.221558904D+01 6.768925407D+01 5.225516182D+01 5.231931110D+01 3.965281302D+01
+ 5.231000320D+01 3.972545477D+01 6.783988127D+01 3.971787748D+01 6.787147624D+01
+ 6.302815487D+01 6.805682509D+01 6.301163219D+01 6.806054445D+01 2.067798656D+01
+ 3.012239556D+01 3.011664058D+01 2.790597520D+01 1.326381926D+01 3.019352636D+01
+ 6.309155893D+01 5.913759626D+01 6.325243185D+01 5.935116070D+01 5.425556479D+01
+ 5.424883273D+01 4.896214950D+01 4.898926280D+01 5.431019209D+01 5.936369798D+01
+ 4.899842653D+01 5.090642859D+01 2.228773994D+01 5.106469894D+01 5.915903246D+01
+ 3.155669844D-01 5.924110068D+01 5.072666628D-01 3.793676654D+01 5.850469394D+00
+ 3.768179503D+01 5.518288976D+00 9.225938898D+01 1.818563498D+00 9.263348663D+01
+ 2.806738911D+01 1.814887394D+01 2.812421571D+01 5.881566946D+01 2.808255113D+01
+ 5.887987684D+01 5.886685379D+01 8.151322551D+01 5.887798422D+01 8.144014574D+01
+ 6.741881472D+00 4.386721508D+01 6.736416018D+00 4.388391569D+01 4.140243686D+01
+ 4.165422186D+01 4.414841041D+01 4.163200359D+01 4.364486224D+01 4.163378897D+01
+ 4.363477442D+01 3.109420211D+01 4.363872489D+01 4.376128963D+01 3.127541335D+01
+ 4.408535327D+01 4.382935513D+01 4.436105982D+01 8.711283335D+01 4.418665570D+01
+ 8.709525616D+01 8.700479418D+01 5.512835814D+01 8.702438434D+01 5.504366502D+01
+-3.195700763D+00 3.036799924D+01 1.752735933D+01 8.853705758D+01 8.843000390D+01
+ 1.744693829D+01 7.476875974D+01 1.747294307D+01 7.479021760D+01 3.691915182D+01
+ 3.975997768D+01 3.688240644D+01 3.971015821D+01 8.248969366D+01 2.539489048D+01
+ 4.801197886D+01 2.548560490D+01 4.790905034D+01 6.228452170D+01 4.804491067D+01
+ 6.240927433D+01 8.202671426D+01 6.230861836D+01 8.217684240D+01 4.713737509D+01
+ 7.450782422D+01 4.717927513D+01 7.445848548D+01 6.457364495D+01 7.445288638D+01
+ 6.459491143D+01 3.226934713D+01 6.461145510D+01 3.230736160D+01 8.439151785D+01
+ 3.631578336D+01 8.422380874D+01 3.643131364D+01 2.448105560D+00 8.486613097D+01
+ 1.001983134D+01 7.712136179D+01 1.005784647D+01 5.217965221D+01 1.033918903D+01
+ 8.294904893D+01 4.441518945D+01 8.272928315D+01 4.429006685D+01 3.393464371D+01
+ 5.513995001D+01 3.395871894D+01-6.613033013D+00 1.765114107D+01 1.773484990D+01
+ 8.048563810D+01 2.299313376D+00 4.306830162D+01 2.274526066D+00 8.227067769D+01
+ 1.947070700D+01 8.218331140D+01 4.021943303D+01 8.110818013D+01 4.239913661D+01
+ 4.159637442D+01 3.056693466D+00 8.069079538D+01 3.181994539D+00 3.607060819D+01
+ 3.235788135D+00 7.927866944D+01 1.510499260D+00 7.929949880D+01 3.128261305D+01
+ 7.848023656D+01 3.121818047D+01 6.999123341D+01 5.617478229D+01 7.001389862D+01
+ 7.962763161D+01 7.757975800D+01-1.080649899D+00-1.402641064D+00 7.396490208D-01
+ 1.239542883D+00 8.282246385D-01 2.053297374D+01 2.094334648D+01 4.549807912D+01
+ 2.095286219D+01 4.560918470D+01 8.647422679D-01 4.569710104D+01 3.781210311D+01
+ 3.796012897D+01 9.993682698D-01 4.575853200D+01 8.298374116D+01 4.407093313D+01
+ 5.940987967D+01 6.910799244D+00 5.940033081D+01 8.571536166D+01 4.155078341D+01
+ 8.579771892D+01 4.157651523D+01 7.047138954D+00 4.158987071D+01 7.216354804D+00
+ 2.806914679D+01 7.485668827D+00-4.242901921D+00-4.036014645D+00 2.817405543D+01
+ 8.087690508D+01 6.732179522D+01 7.645858408D+01 1.482198245D+01 7.646097750D+01
+ 7.724980901D+01 7.642839642D+01 7.726356917D+01 4.426774542D+01-5.992726459D+00
+ 4.446791351D+01 8.286387744D+01 5.518224635D+01 8.282409436D+01 5.524026037D+01
+ 4.486766156D+01 4.156829433D+01-5.009137321D+02 4.368930090D+01 4.161837626D+01
+ 4.270737122D+00 4.164073060D+01 8.264981021D+01 4.491964354D+01 5.368732585D+01
+ 5.392225024D+01 4.511096409D+01 5.390849800D+01 6.101242398D+00 5.400240763D+01
+ 6.113069316D+00 4.115315645D+01 4.905849427D+01 4.112409410D+01 1.906935864D+01
+ 4.114490582D+01 1.906768290D+01 4.116111854D+01 5.457584206D+01 5.227238773D+01
+ 5.453732807D+01 6.613233927D+01 5.444948533D+01 6.609801537D+01 8.315301499D+01
+ 6.606421609D+01 8.315005569D+01 3.505582725D+01 8.315882923D+01 3.506278847D+01
+ 1.436225050D+01 1.482477910D+01 3.574279491D+01 1.461303984D+01 7.840173984D+01
+ 4.366379222D+01 7.850432744D+01 4.366760720D+01 1.512183387D+01 4.368869669D+01
+ 1.515223045D+01 7.800682665D+01 4.098189472D+01 7.809863869D+01 1.919789102D+01
+ 4.461387104D+01 1.927448204D+01 4.462872690D+01 4.473196578D+01 1.034338248D+01
+ 4.474620324D+01 1.042157651D+01 5.005817651D+01 3.179158587D+01 5.004021406D+01
+ 3.176686658D+01 5.339330719D+00 3.189112823D+01 5.409910074D+00 8.548291007D+01
+ 6.697064184D+01 8.544425040D+01 8.569800692D+01 6.719118204D+01 4.309841639D+01
+ 6.722257504D+01 4.308823193D+01 2.675486715D+01 4.311812656D+01 2.681976578D+01
+ 8.142936578D+01 1.833977366D+01 8.145065836D+01 1.829496313D+01 1.821299848D+01
+ 8.016030737D+01 1.809234018D+01 5.134914018D+01 2.374071859D+01 5.138755611D+01
+ 2.387146697D+01 8.010216866D+01 8.213393798D+01 8.007367613D+01 8.208677263D+01
+ 1.345194463D+00 8.216312246D+01 1.410293791D+00 1.510716094D+01 1.477491115D+00
+ 1.510438222D+01 1.519482651D+01 6.237026833D+01 1.515013709D+01 6.230608935D+01
+ 1.113612076D+01 6.231775922D+01 1.102728902D+01 6.330464306D+01 2.620286478D+01
+ 6.333389526D+01 2.621267367D+01 9.469106070D+00-7.997077871D+00 9.630558111D+00
+-7.949278574D+00 9.713022864D+00-7.872604505D+00 1.132110964D+01 2.406854057D+01
+ 1.135319584D+01 2.411875443D+01 2.381631547D+01 5.851737821D+01 2.385291486D+01
+ 2.382030426D+01 5.856909895D+01 2.386490392D+01 2.544873760D+01 7.784529749D+01
+ 2.545136416D+01 7.778015795D+01 3.252714251D+01 1.817915942D+01 3.245050656D+01
+ 7.625517878D+01 3.225319166D+01 7.620120255D+01 3.223612017D+01 1.792045651D+01
+ 6.334190376D+01 6.897948967D+00 6.335281288D+01 2.339913387D+01 4.426059620D+01
+ 3.123422891D+00 4.445236786D+01 3.175004229D+00 4.425068474D+01 1.826463698D+01
+ 4.437876243D+01 1.833856475D+01 6.321668927D+01 4.242657221D+01 8.086191231D+01
+ 4.237324956D+01-4.832363992D+00 6.151482387D+01-4.841852253D+00 8.087413745D+01
+ 7.333835304D+01 8.497470879D+01 7.332855450D+01 4.462588077D+01 4.465834759D+01
+ 7.338900564D+01 4.463163844D+01 5.551949734D+01 7.139085945D+01 5.544439897D+01
+ 7.136640599D+01 1.183710599D+01 2.414898331D+01 1.182695722D+01 2.417213303D+01
+ 4.233945326D+01 2.418336507D+01 4.241186282D+01 8.076104899D+01 1.937799152D+01
+ 8.082584469D+01 1.933753980D+01 3.564561619D+00 3.814366062D+01 3.494914313D+00
+ 3.812703675D+01 7.686913028D+01-5.161697169D-01 5.227474818D+01 5.224371809D+01
+-3.865298402D-01 8.007597552D+01 4.115662096D+01 8.009003575D+01-7.660913458D-01
+ 5.203054696D+01 7.237433729D+01-3.144627052D-01 1.981762138D+01 1.984683050D+01
+ 3.731264703D+01 7.769377722D+01 7.750969074D+01 3.692008952D+01 4.690523100D+01
+ 2.240909319D+01 4.698400857D+01 2.236838308D+01 2.862260752D+01 2.872099980D+01
+ 2.253200203D+01 2.872517573D+01 2.257421032D+01 2.871123510D+01 2.868430007D+01
+ 2.941953006D+01 2.870320525D+01 2.940864658D+01 1.392476600D+01 2.951914712D+01
+ 1.388097062D+01 4.854269810D+01 3.305586629D+01 4.383157434D+01 3.303194861D+01
+ 4.855967545D+01 4.856623111D+01 3.303386065D+01 4.858461107D+01 1.963226338D+01
+ 4.014071274D+01 1.953496772D+01-3.033558609D+01-3.029383604D+01-3.033920457D+01
+-3.032031031D+01-3.033212375D+01-3.029598743D+01-3.034856101D+01 2.765098744D+02
+ 2.218316066D+02 2.765160839D+02 2.909372001D+02 2.909412937D+02 3.105920458D+02
+ 3.601022106D+02 3.601022532D+02 3.600901410D+02 3.680476077D+02 4.162017698D+02
+ 2.909151103D+02 3.416011048D+02 2.908964038D+02 2.281538873D+02 2.074116368D+02
+ 2.431874699D+02 2.874211627D+02 3.431369460D+02 3.719137778D+02 4.067444226D+02
+ 4.277758248D+02 4.758812710D+02 4.668520928D+02 4.484771528D+02 4.218763222D+02
+ 4.218730429D+02 4.034435900D+02 3.792807393D+02 3.628151567D+02 3.256276534D+02
+ 3.078859269D+02 2.951087563D+02 3.299927587D+02 3.078840126D+02 3.552899496D+02
+ 3.552906459D+02 3.552801693D+02 3.552904127D+02 4.366222525D+02 4.698536240D+02
+ 5.084282515D+02 4.383306068D+02 3.916200832D+02 3.627935259D+02 3.628163806D+02
+ 3.628207844D+02 3.792941613D+02 4.034669429D+02 4.218945019D+02 4.379546406D+02
+ 2.675004481D+01 2.673839829D+01 2.673819157D+01 2.670157204D+01 2.674387502D+01
+ 2.675349025D+01 2.671676546D+01 2.672165992D+01 2.672486611D+01 2.674833892D+01
+ 2.675058344D+01 2.677138495D+01 2.673611205D+01 2.675733991D+01 2.675054534D+01
+ 2.671344519D+01 2.675315564D+01 2.667894851D+01 2.675838398D+01 9.817472178D+01
+ 9.816784201D+01 9.818171183D+01 9.820279936D+01 9.818217042D+01 9.819436810D+01
+ 2.685744900D+01 2.682375156D+01 2.668592314D+01 2.684894450D+01 2.682590367D+01
+ 2.674323776D+01 1.237917228D+02 9.818501896D+01 9.817292375D+01-4.531001715D+01
+-4.534171113D+01-4.536506835D+01-4.547639301D+01 1.238315370D+02 1.238538980D+02
+ 1.238058840D+02-1.305119479D+02-1.943774075D+02-1.304883427D+02-1.943654640D+02
+-1.304510622D+02-1.943270793D+02-1.304649314D+02 1.251797612D+02 1.731463667D+02
+ 1.731697647D+02 1.251248857D+02 1.568631518D+01 1.251597884D+02 1.250786027D+02
+ 1.251742019D+02 1.250818816D+02 1.251591320D+02 1.250838699D+02 1.251742198D+02
+ 1.250643445D+02 1.251073975D+02 1.565923440D+01 1.567508917D+01 1.560889641D+01
+ 1.567871048D+01 1.564576492D+01 1.568678459D+01 1.657280052D+02 1.660447486D+02
+ 1.660218118D+02 1.656941510D+02 1.657389052D+02 8.591371246D+01 8.596411889D+01
+ 1.217907185D+02 1.657910754D+02 1.657299238D+02 1.217152814D+02 1.657651146D+02
+ 1.657348809D+02 1.217482991D+02 1.217771511D+02 1.658280848D+02 1.657501703D+02
+ 1.217400967D+02 1.217691194D+02 1.657407964D+02 1.657279051D+02 8.587887678D+01
+ 1.066424028D+02 8.905939414D+01 4.754781250D+01 8.906612802D+01 8.903661875D+01
+ 8.909686262D+01 8.904517672D+01 8.909743109D+01 8.908236922D+01 5.212203445D+01
+ 8.907660405D+01 8.907808227D+01 8.898469412D+01 8.902619127D+01 8.903908142D+01
+ 8.907221325D+01 8.901501411D+01 5.204141503D+01 5.205654728D+01 5.200227415D+01
+ 5.204193772D+01 8.903744035D+01 8.910340348D+01 2.665454569D+01 2.664878346D+01
+-1.774267737D+01-4.524098768D+01-1.777311869D+01 5.066973936D+01 5.067968557D+01
+ 2.758770515D+01 2.758970981D+01 2.763331002D+01 2.755463651D+01 2.732433509D+01
+ 2.755483311D+01 2.733497833D+01 2.757596507D+01-1.118102593D+02-6.448436276D+01
+-6.449482692D+01-1.297570744D+02 5.072610848D+01 5.070482824D+01 5.064990642D+01
+ 2.757607511D+01 5.070388671D+01 2.764738315D+01 2.759764042D+01 2.765076438D+01
+ 2.758240358D+01 5.067354064D+01 1.237881323D+02 1.427564387D+01 6.583114431D+01
+ 1.667731338D+01 2.570744927D+01 2.575803132D+01 1.669404429D+01 2.572816888D+01
+ 2.570250295D+01 6.586103046D+01 6.574285193D+01 2.567125125D+01 2.570449754D+01
+ 1.668741985D+01 6.581529147D+01 1.109061723D+02 1.109963904D+02 1.637401194D+02
+ 1.110406312D+02 8.364496808D+01 8.577866653D+01 4.509057801D+00 2.570841689D+01
+ 2.573599699D+01 2.573344310D+01 2.573924995D+01 4.517806067D+00 4.513926295D+00
+ 2.571610432D+01 2.567404026D+01 6.585177966D+01 6.581210592D+01 2.565455990D+01
+ 2.568125962D+01 4.515725521D+00 4.485338174D+00 2.571037536D+01 2.571079080D+01
+ 1.109652131D+02 6.574208173D+01 2.571531323D+01 2.567884595D+01 2.567878125D+01
+ 1.108592233D+02-7.743035185D+00-7.731185794D+00-1.113979636D+00-1.111450667D+00
+-1.723926401D-01-4.818296646D+01-4.819056951D+01 1.692958162D+01 1.692172711D+01
+ 6.403010215D+01 6.403200306D+01 8.751357892D+01 8.750514451D+01 9.530583035D+01
+ 9.529620680D+01 1.038034857D+02 1.037937890D+02 9.528996781D+01 9.530033715D+01
+ 8.748429005D+01 8.748375983D+01 6.401989490D+01 6.401872142D+01 1.687387499D+01
+ 1.688306764D+01-6.703788581D+01-6.703876065D+01-4.825587401D+01-4.825713356D+01
+-4.815152727D+01-4.814311208D+01-4.814542302D+01-4.814606064D+01-4.814726846D+01
+-4.827566253D+01-4.826605247D+01-6.706512585D+01-6.705479083D+01 1.687108424D+01
+ 1.687094233D+01 6.398984293D+01 6.398996510D+01 8.723216497D+01 8.723268045D+01
+ 9.504932615D+01 9.506066677D+01 1.034941154D+02 1.035056450D+02 1.179588743D+02
+ 1.179705589D+02 1.034904160D+02 1.034914303D+02 1.124031473D+02 1.123631556D+02
+ 1.123965105D+02 1.033739094D+02 1.033651159D+02 1.123818634D+02 1.123839736D+02
+ 1.034807886D+02 1.034928989D+02 1.179741219D+02 1.179652124D+02 9.508755234D+01
+ 9.508863577D+01 8.721697839D+01 8.721832141D+01 6.374072012D+01 6.376255996D+01
+ 1.661768202D+01 1.662845331D+01-6.728566112D+01-6.727488694D+01-4.849640598D+01
+-4.848589324D+01-1.521542473D+01-1.521558506D+01-4.721734727D-01-4.829918028D-01
+-1.521034821D+01-1.521099416D+01-4.848562459D+01-4.848684867D+01-4.837706629D+01
+-4.839201816D+01-4.837738417D+01-4.839232927D+01-4.840691068D+01-4.848094114D+01
+-4.848114118D+01-5.213735340D+01-5.212704777D+01-4.848293467D+01-4.848298086D+01
+-4.850204632D+01-4.850180023D+01-1.521888527D+01-1.522890230D+01-1.479891652D+01
+-1.478805778D+01-4.898694888D-01-4.893632510D-01-1.398120193D+00-1.397532054D+00
+-8.021042097D+00-8.020067512D+00 1.104921809D+02 1.104930456D+02 1.104768257D+02
+ 1.104778462D+02-8.049975560D+00-8.048909987D+00-1.441770006D+00-1.430215501D+00
+-4.931024071D-01-5.024998180D-01-1.517845775D+01-1.518753196D+01-1.475573000D+01
+-1.475470041D+01-4.851284394D+01-4.850105773D+01-5.213108808D+01-5.212983843D+01
+-4.849291471D+01-4.848038391D+01-4.852230497D+01 6.374509209D+01 6.373503397D+01
+ 8.721878765D+01 8.721907289D+01 9.503402929D+01 9.504462541D+01 6.373945149D+01
+ 1.660938072D+01 1.660917308D+01-4.853278972D+01-4.853314926D+01-4.843060132D+01
+-4.845551924D+01-4.841878667D+01-4.844297700D+01-4.843337443D+01-4.854872693D+01
+-4.853831814D+01-6.735704037D+01-6.735707224D+01-4.851767040D+01-4.851768348D+01
+-1.524669163D+01-1.523620018D+01-1.481724142D+01-1.482766501D+01-5.215927559D-01
+-5.215064891D-01-1.442563659D+00-1.442384895D+00-8.091089017D+00-8.080397371D+00
+ 1.104586383D+02 1.104588601D+02-6.597214807D+01-2.209324741D+00-6.599561041D+01
+-2.198774154D+00-6.599047472D+01-2.200058630D+00-6.598629910D+01-6.675986110D+01
+-2.976195768D+00-6.673718955D+01-2.955923437D+00-6.674036853D+01-2.950768501D+00
+-2.600058955D+01-2.601041334D+01-2.599912360D+01-2.974770967D+00-6.674723003D+01
+-2.979176141D+00-6.675627950D+01-2.980406707D+00-6.675990061D+01-2.601686752D+01
+-2.598590848D+01-2.987457120D+01-3.701250236D+01 1.362276561D+01 2.190369763D+01
+ 3.311611380D+01 5.422529951D+01 6.814783324D+01 8.653463383D+01 9.547726365D+01
+ 1.059306776D+02 1.143523250D+02 1.422289163D+02 1.360343670D+02 1.539658390D+02
+ 1.539506484D+02 1.360229245D+02 6.544012583D+01 8.689335614D+00-3.907013933D+01
+-2.502438697D+01-2.501176021D+01 1.215506347D+01 4.056059847D+01 1.163400588D+01
+ 1.210917905D+01-2.507548950D+01-3.910260692D+01-1.088604530D+01 8.734458324D+00
+ 6.539052776D+01 1.360364338D+02 1.539199536D+02 1.359488920D+02 1.539261576D+02
+ 1.878003652D+02 2.167289744D+02 2.167428035D+02 1.581479617D+01-4.931768292D+01
+-4.932502230D+01-1.560864436D+01 1.096517169D+02 2.167499746D+02 2.167098748D+02
+ 2.166993431D+02 2.124726818D+02 2.074807797D+02 2.022149809D+02 2.148302534D+02
+ 2.148000708D+02 2.127451770D+02 2.153277263D+02 2.581972920D+02 2.807858552D+02
+ 2.952460079D+02 3.148493716D+02 3.148305603D+02 2.391684673D+02 2.391583537D+02
+ 2.174386430D+02 3.322977947D+02 2.996289561D+02 2.653876807D+02 2.996611444D+02
+ 1.449693987D+02 2.324446186D+02 2.323483650D+02 1.955309124D+02 2.117066895D+02
+ 2.085960166D+02 2.323986832D+02 2.453692454D+02 2.323733250D+02 2.323759119D+02
+ 2.193170133D+02 2.951651746D+02 3.154690814D+02 2.888249210D+02 3.339788203D+02
+ 4.204543748D+02 4.086501844D+02 4.204369417D+02 3.340382032D+02 2.887994503D+02
+ 3.154280164D+02 2.952016996D+02 2.193427702D+02 2.453631421D+02 2.324056399D+02
+ 2.474159495D+02 2.474299118D+02 1.223919264D+02 2.073651681D+02 2.381668633D+02
+ 2.219896897D+02 2.917082317D+02 2.635721685D+02 2.916893035D+02 2.352588191D+02
+ 3.474108197D+02 3.762197316D+02 3.732359908D+02 3.133102191D+02 3.374406315D+02
+ 3.132449106D+02 3.374460718D+02 3.732739548D+02 3.762029695D+02 2.352400783D+02
+ 2.775949421D+02 2.917226109D+02 2.636228428D+02 2.917451707D+02 1.874756975D+02
+ 1.939737698D+02 1.737493765D+02 1.939572458D+02 1.509138263D+02 1.529112098D+02
+ 1.556300522D+02 1.529279092D+02 1.556329732D+02 1.509347016D+02 1.874340563D+02
+ 1.939335667D+02 1.737148197D+02 2.916450515D+02 2.635101662D+02 2.916460146D+02
+ 2.473888516D+02 2.473790892D+02 1.222726586D+02 2.073213697D+02 2.381114657D+02
+ 2.218990850D+02 2.380843170D+02 2.116175884D+02 1.448601983D+02 2.995871080D+02
+ 2.653276022D+02 2.517126232D+02 2.173563964D+02 2.390498390D+02 2.173505727D+02
+ 2.653349760D+02 4.204052092D+02 4.203544320D+02 4.085717763D+02 4.204008146D+02
+ 3.340105091D+02 2.887962069D+02 3.154688476D+02 2.193130576D+02 2.453305050D+02
+ 2.085832618D+02 2.116590180D+02 1.954595940D+02 1.448929594D+02 1.954715793D+02
+ 2.323080471D+02 2.453485171D+02 2.085819211D+02 2.116565563D+02 2.073132117D+02
+ 1.222746269D+02 2.473705075D+02 2.381062034D+02 2.219771936D+02 2.916960570D+02
+ 2.775938129D+02 2.352151243D+02 2.775819784D+02 2.916781548D+02 1.939062134D+02
+ 1.737162153D+02 1.939212611D+02 1.874114065D+02 1.873925367D+02 1.508977926D+02
+ 1.556552001D+02 1.529409503D+02 1.556926617D+02 1.529655491D+02 1.556828731D+02
+ 1.509397941D+02 1.874412855D+02 2.138591147D+02 2.117109953D+02 2.415065694D+02
+ 3.037265517D+02 3.670767935D+02 3.670901394D+02 4.261661421D+02 4.422428839D+02
+ 4.544124346D+02 4.725840752D+02 4.726381696D+02 4.544237814D+02 4.422538336D+02
+ 4.261778770D+02 4.527684602D+02 4.711222353D+02 4.800915618D+02 4.630522978D+02
+ 4.513970697D+02-9.322790259D+01-9.322349763D+01-9.319757128D+01-9.317585021D+01
+ 4.117519627D+02 4.086365657D+02 4.204341182D+02 3.340342646D+02 2.888530630D+02
+ 3.154866700D+02 2.193007207D+02 2.323866546D+02 2.453599473D+02 2.193287509D+02
+ 3.154758667D+02 2.888447249D+02 3.340604453D+02 4.086548174D+02 4.204628295D+02
+ 3.643627894D+02 3.643468088D+02 2.390871115D+02 2.174321678D+02 2.174225589D+02
+ 2.391174243D+02 3.148522701D+02 2.952092179D+02 2.807381153D+02 2.581271178D+02
+ 2.127225064D+02 2.148285174D+02 2.022042881D+02 2.074810403D+02 2.124929091D+02
+ 2.167186286D+02 2.167069950D+02 1.877466708D+02 1.538885778D+02 1.359198980D+02
+ 1.301016007D+02 1.421321840D+02 1.142567766D+02 9.541342092D+01 6.805636445D+01
+ 5.410624399D+01 3.301290058D+01 2.182596018D+01 1.358132990D+01-3.706857182D+01
+-2.995344702D+01-2.603078447D+01-2.605456140D+01-2.605952953D+01-2.608363381D+01
+-2.608498876D+01-6.683252096D+01-3.056186543D+00-6.681391568D+01-3.049359791D+00
+-6.682921809D+01-3.046087397D+00-1.041767500D+02-1.164744906D+02-1.041396855D+02
+-1.040704581D+02-1.041502317D+02-8.778531551D+01-8.200384036D+01-8.208215839D+01
+-8.782926339D+01-8.206368786D+01-8.813252246D+01-1.172532826D+02-1.165446683D+02
+-1.042835352D+02-1.165351471D+02-1.172480038D+02-8.822371209D+01-1.172666184D+02
+-1.042897336D+02-1.165600418D+02-1.172811883D+02-8.827802727D+01-8.794239114D+01
+-1.165649369D+02-1.540127018D+02-1.201965520D+02-1.202151599D+02-6.342429271D+01
+-1.319630618D+02-1.958146494D+02-1.319478667D+02-1.958259371D+02-1.319438965D+02
+-1.957884148D+02-1.319249332D+02-1.037426607D+02-1.037413887D+02-1.037239186D+02
+-1.535336851D+02-1.041243376D+02-1.041597801D+02-1.041657166D+02-1.041399796D+02
+-1.041501627D+02-1.041542914D+02-1.164856802D+02-1.538855609D+02-1.200991496D+02
+-1.201104736D+02-1.292189873D+02-1.930567846D+02-1.292296532D+02-1.930031146D+02
+-1.291791887D+02-1.930334111D+02-1.291736885D+02-1.930527863D+02-1.291454956D+02
+-1.931031984D+02-1.292025147D+02 7.823027312D+01 9.098810400D+01 7.824118662D+01
+-2.185657189D+02 3.252604464D+02-2.176296605D+02-4.617257692D+02-1.112605432D+02
+-1.522209040D+02-1.113120313D+02-2.185914594D+02 3.252456320D+02-4.617852150D+02
+-1.112649393D+02-1.522603508D+02-1.112933026D+02 9.096000808D+01 7.829268713D+01
+-2.176841421D+02-4.617380219D+02-2.176936399D+02-4.617190743D+02-1.112437337D+02
+-1.522230183D+02-1.113434678D+02 9.101026504D+01 7.821425507D+01-2.186205832D+02
+ 3.252048935D+02-1.113021802D+02-1.522005296D+02-1.112679404D+02 7.824888092D+01
+ 9.098072907D+01 3.251691263D+02-2.186513738D+02-4.617627011D+02-2.177349376D+02
+-4.617378582D+02 7.825390850D+01 9.103616124D+01-2.910529453D+01-2.908277168D+01
+-2.905411301D+01-2.906863478D+01-2.906244839D+01-3.293961819D+01-2.064171436D+01
+-1.957113080D+01-1.063851533D+01-1.673888878D+01-1.428152081D+01-1.293725196D+01
+-1.397735154D+01-2.937599765D+01-4.205092673D+01-1.386211576D+01-1.895284204D+01
+-1.392344189D+01-4.411909395D+00-1.388555525D+01-1.897869592D+01-4.207229984D+01
+-2.938345817D+01-1.402324358D+01-1.296287621D+01-1.431144914D+01-1.395986750D+01
+-3.288760474D+01-6.622191435D+01-7.891778494D+01-1.109937934D+01 3.755032554D+01
+ 3.801805927D+01 3.798675897D+01-6.671672935D+01 2.948212779D+01 3.260336225D+01
+-1.162197922D+01-1.167436690D+01 3.250428355D+01 2.943677908D+01-6.677664898D+01
+ 3.795942984D+01 3.800105483D+01 3.752400698D+01 8.569895048D+00 9.251708129D+00
+ 2.557501556D+01 6.170134207D+01 7.763242302D+01 9.951020770D+01 1.084914392D+02
+ 9.960063451D+01 1.140165287D+02 1.172549412D+02 1.188165301D+02 1.022023702D+02
+ 1.021477846D+02 1.187817662D+02 1.172395160D+02 1.139763908D+02 9.959022871D+01
+ 1.084829352D+02 9.949067467D+01 7.759785360D+01 6.163861999D+01 2.552926125D+01
+ 9.229685344D+00-2.810774244D+01-4.218303425D+01 5.616945018D+00 6.230267163D+01
+ 1.328976788D+02 1.508284338D+02 1.846975233D+02 2.137131225D+02 2.094213597D+02
+ 1.798159917D+02 1.411490786D+02 1.065615423D+02-1.194625156D+01 7.900937970D+01
+ 1.112724838D+02 1.703493604D+02 1.991570603D+02 2.044510080D+02 2.094617312D+02
+ 2.136575243D+02 2.093831319D+02 1.797614490D+02 1.411135465D+02 1.065115785D+02
+-1.195404820D+01 7.896558569D+01 1.112574387D+02 1.521554192D+02 1.748233143D+02
+ 2.230829060D+02 1.518454049D+02 4.086466300D+01 1.007230028D+02 1.394221035D+02
+ 1.909025267D+02 1.296666607D+02 2.107778270D+02 2.107667394D+02 2.086492058D+02
+ 2.384445559D+02 3.006657720D+02 3.639884712D+02 3.927981007D+02 3.804531928D+02
+ 4.046690897D+02 4.230814782D+02 4.391593464D+02 4.513647062D+02 4.696982920D+02
+ 5.129127103D+02 5.135787534D+02 4.978362431D+02 4.680479634D+02 4.496803453D+02
+ 4.230554874D+02 4.230067237D+02 4.391454269D+02 4.513035603D+02 4.697046862D+02
+ 5.095673023D+02 4.710341590D+02 3.936693820D+02 3.793315972D+02 3.268133009D+02
+ 3.639822848D+02 3.268110073D+02 3.090439412D+02 2.962398458D+02 3.311481546D+02
+ 3.564232505D+02 3.564346395D+02 4.377949490D+02 5.096133411D+02 4.710178956D+02
+ 3.936490498D+02 3.793652438D+02 3.927722848D+02 3.639831488D+02 3.267997789D+02
+ 3.090201254D+02 2.962529483D+02 2.962519733D+02 3.311287086D+02 3.564378222D+02
+ 3.564365031D+02 4.377900116D+02 4.710348423D+02 5.096243679D+02 4.697779361D+02
+ 4.513138267D+02 5.128869275D+02 5.135494141D+02 4.978319661D+02 4.289303894D+02
+ 4.770335982D+02 4.770250989D+02 4.599554221D+02 4.483224936D+02 3.427622138D+02
+ 4.483186339D+02-9.634625500D+01 4.086108471D+02 4.173284902D+02 4.086110126D+02
+-9.636514425D+01 4.482963474D+02 4.599311050D+02 4.770349156D+02 4.289241489D+02
+ 4.680362501D+02 4.496491184D+02 4.230286563D+02 4.046327704D+02 3.804553917D+02
+ 3.639886665D+02 3.006575257D+02 2.384465298D+02 2.107507814D+02 2.086451858D+02
+ 2.107440637D+02 2.086491811D+02 1.296443248D+02 1.908495109D+02 1.393721470D+02
+ 1.006642436D+02-2.426569559D+01-2.444682707D+01-2.425984204D+01 4.086620123D+01
+ 1.518168353D+02 2.230189054D+02 2.776643769D+02 2.550578533D+02 1.747887250D+02
+ 1.521227635D+02 2.117555259D+02 1.702763598D+02 1.991135831D+02 2.043828157D+02
+ 2.094005182D+02 2.136226190D+02 2.093498981D+02 1.797439044D+02 1.846642366D+02
+ 1.507911302D+02 1.328379373D+02 6.221888779D+01 5.570212143D+00-4.222146232D+01
+-2.817691957D+01 9.202289612D+00 8.520945500D+00 3.749923189D+01-1.121032191D+01
+-7.899897740D+01-6.631508437D+01-3.294860349D+01-2.945265561D+01-1.408584208D+01
+-1.304743180D+01-1.400938971D+01-1.678081683D+01-1.683210700D+01-1.076610471D+01
+-1.965543106D+01-2.077819133D+01-3.308462881D+01-2.913825281D+01-2.917049148D+01
+1UNSYMMETRIC LEAST-SQUARES PROBLEM.                  SAUNDERS 1979.     ILLC1850
+          2715            45           548          1752           370          
+RRA                     1850           712          8758             0          
+(16I5)          (16I5)          (1P,5D16.9)         (1P,5D16.9)                 
+F                          1             0                                      
+    1   14   18   27   39   44   53   57   62   68   76   81   87   93  100  102
+  109  115  122  128  135  141  149  156  162  166  169  175  182  190  194  200
+  206  212  216  222  228  240  250  258  271  275  288  298  316  320  324  330
+  336  342  350  361  378  388  396  399  406  410  412  416  418  420  423  425
+  428  430  433  436  438  442  448  455  459  462  467  471  474  478  495  497
+  511  517  523  539  544  558  571  583  595  630  634  638  654  670  684  697
+  703  705  711  718  723  731  735  739  740  741  748  759  765  772  779  782
+  788  806  814  820  846  856  871  873  915  919  927  934  942  947  951  960
+  980  982  997 1000 1005 1014 1021 1023 1027 1032 1037 1048 1068 1080 1095 1104
+ 1107 1113 1115 1117 1134 1149 1158 1172 1174 1195 1200 1207 1213 1215 1216 1221
+ 1229 1235 1248 1252 1261 1267 1277 1283 1289 1295 1299 1301 1309 1317 1324 1340
+ 1347 1354 1373 1379 1386 1397 1406 1416 1421 1426 1432 1438 1439 1443 1444 1448
+ 1455 1456 1463 1468 1469 1475 1484 1492 1501 1510 1514 1516 1520 1522 1526 1530
+ 1538 1543 1548 1551 1579 1583 1587 1613 1637 1648 1651 1659 1674 1684 1688 1693
+ 1698 1701 1704 1707 1711 1714 1719 1724 1729 1734 1739 1743 1746 1749 1753 1756
+ 1759 1762 1764 1766 1768 1771 1776 1779 1783 1787 1792 1807 1810 1816 1820 1826
+ 1834 1836 1840 1848 1856 1861 1869 1879 1883 1892 1897 1902 1911 1915 1920 1928
+ 1937 1941 1952 1960 1968 1976 1986 1990 1998 2002 2010 2022 2030 2034 2038 2046
+ 2050 2054 2063 2068 2073 2080 2087 2092 2101 2109 2112 2115 2119 2124 2132 2139
+ 2151 2155 2160 2167 2174 2178 2181 2185 2189 2193 2200 2207 2219 2226 2230 2236
+ 2243 2247 2250 2254 2258 2261 2267 2271 2276 2284 2287 2292 2297 2300 2305 2310
+ 2320 2330 2335 2338 2341 2345 2349 2352 2355 2358 2361 2364 2367 2370 2373 2376
+ 2379 2383 2391 2395 2399 2409 2412 2419 2422 2426 2433 2436 2442 2449 2462 2465
+ 2472 2475 2479 2483 2490 2493 2501 2505 2508 2512 2522 2529 2533 2539 2543 2549
+ 2553 2560 2564 2573 2577 2580 2588 2592 2599 2603 2608 2612 2615 2618 2621 2625
+ 2630 2639 2642 2647 2650 2653 2661 2711 2752 2759 2779 2784 2802 2813 2824 2839
+ 2853 2896 2939 3065 3199 3261 3348 3376 3387 3397 3449 3686 3690 3698 3706 3711
+ 3719 3729 3733 3742 3752 3761 3765 3770 3778 3787 3791 3802 3810 3818 3826 3836
+ 3840 3848 3852 3860 3872 3880 3884 3888 3896 3900 3904 3913 3918 3923 3930 3937
+ 3942 3951 3959 3965 3969 3974 3982 3989 4001 4017 4028 4035 4050 4057 4069 4080
+ 4086 4093 4100 4104 4111 4117 4126 4134 4137 4142 4150 4160 4170 4180 4191 4199
+ 4211 4220 4223 4226 4229 4241 4249 4259 4272 4276 4286 4292 4299 4312 4322 4325
+ 4329 4343 4355 4362 4372 4379 4383 4393 4399 4403 4410 4414 4423 4430 4438 4449
+ 4453 4471 4475 4480 4489 4492 4497 4500 4503 4561 4602 4629 4652 4674 4703 4746
+ 4915 5198 5226 5247 5299 5536 5549 5558 5570 5575 5584 5589 5595 5603 5608 5614
+ 5620 5627 5633 5640 5646 5653 5659 5667 5674 5680 5686 5693 5701 5707 5713 5719
+ 5725 5737 5747 5755 5768 5781 5791 5809 5815 5821 5827 5835 5846 5863 5873 5881
+ 5888 5892 5898 5905 5908 5913 5917 5920 5926 5932 5948 5962 5975 5987 5999 6034
+ 6050 6066 6080 6093 6099 6105 6112 6117 6125 6129 6136 6147 6153 6160 6167 6173
+ 6191 6199 6205 6231 6241 6256 6298 6306 6313 6321 6325 6334 6354 6369 6374 6383
+ 6385 6389 6394 6405 6425 6437 6452 6461 6467 6484 6499 6508 6522 6543 6548 6555
+ 6561 6569 6575 6588 6592 6601 6607 6617 6623 6629 6635 6639 6647 6654 6670 6677
+ 6684 6703 6709 6716 6727 6736 6746 6751 6756 6762 6768 6775 6782 6788 6797 6805
+ 6814 6818 6826 6831 6836 6840 6844 6870 6894 6909 7309 7726 7784 7825 7852 7875
+ 7897 7926 7969 8138 8421 8449 8470 8522 8759                                   
+    1    3   26   28  164  166 1259 1262 1277 1279 1490 1686 1827    2    4    5
+    7    6    8    9   11 1263 1276 1540 1685 1828   10   12   13   15 1264 1275
+ 1538 1539 1560 1561 1684 1829   14   16   17   19 1274   18   20   21   23   25
+ 1265 1273 1683 1830   22   24  152  154   27   29   30   32 1491   31   33   35
+   37 1258 1492   34   36   38   39   41   43 1257 1493   40   42   44   46 1256
+   45   47   49   51 1255 1494   48   50   52   53   55 1254   54   56   57   59
+   61   67   69   58   60   62   64   66   72   74 1252 1496   63   65   76   78
+ 1251 1497   68   70   71   73   75 1253 1495   77   79   81   83 1250 1498   80
+   82   84   86   88 1249 1499   85   87   89   91 1248 1500   90   92   94   96
+ 1247 1501 1619 1848   93   95   97   98  100 1620 1847   99  101  102  104 1621
+ 1846  103  105  106  108  107  109  111  110  112  113  115 1622 1845  114  116
+  117  119 1623 1843 1844  118  120  121  123  372  376 1640 1842  122  124  125
+  127  126  128  129  131 1641 1838  130  132  133  135 1642 1837  134  136  137
+  139 1643 1836  138  140  142  144  141  143  145  146  148  150  147  149  167
+  169 1644 1835  151  153  192  194 1266 1267 1272 1537 1551 1559 1682 1831  155
+  157  298  300  302  304  306  308  401  403  156  158  159  161 1281 1488 1688
+ 1825  160  162  163  165  989  990 1260 1261 1278 1280 1489 1687 1826  168  170
+  171  173  172  174  175  177  294  296 1269 1523 1529 1534 1645 1658 1834  176
+  178  180 1270 1524 1528 1530 1533 1659 1833  179  181  182  184  186  195  197
+ 1268 1271 1514 1525 1527 1532 1536 1558 1660 1681 1832  183  185  187  189  188
+  190  191  193  196  198  199  201 1661 1680  200  202  203  205 1662 1679  204
+  206  207  209 1663 1678  208  210  211  213 1117 1118 1664 1677  212  214  215
+  217 1114 1115 1116 1119 1120 1665 1676  216  218  219  220  222  369  371 1077
+ 1078 1108 1109 1112 1113 1121 1122 1666 1675  221  223  224  226 1110 1111 1123
+ 1124 1667 1674  225  227  229  231  266  268 1668 1673  228  230  232  233  234
+  265  271  273 1669 1672  235  264 1670 1671  236  263  237  238  261  262  239
+  260  240  259  241  242  258  243  257  244  255  256  245  254  246  247  253
+  248  251  252  249  250  267  269  270  272  274  288  289  291 1646 1657  275
+  287 1518 1521 1535 1647 1656  276  277  279  286  278 1648 1655  280  283  284
+ 1650 1653  281  282 1651 1652  285 1649 1654  290  292  293  295  297  299 1282
+ 1283 1289 1290 1291 1486 1487 1574 1589 1598 1606 1613 1689 1701 1822  301  303
+  305  307  309  311  402  404  410 1292 1485 1690 1700 1702 1821 1823  310  312
+  314 1691 1703 1824  313  315  316  318 1692 1704  317  319  321  323  991  993
+ 1061 1168 1169 1170 1171 1221 1222 1288 1693 1705  320  322  324  325  327  326
+  328  330  424 1062 1063 1166 1167 1172 1173 1219 1220 1694 1706  329  331  332
+  334 1007 1064 1065 1164 1165 1174 1175 1217 1218  333  335  337 1066 1139 1140
+ 1162 1163 1176 1177 1215 1216  336  338  339  341  344 1160 1161 1180 1181 1213
+ 1214 1287  340  342  343  345  346  348 1067 1068 1089 1090 1096 1097 1135 1136
+ 1143 1144 1150 1151 1154 1155 1156 1157 1182 1183 1186 1187 1188 1198 1199 1205
+ 1206 1209 1210 1285 1286  347  349  350  352  351  353  354  356  355  357  358
+  360 1004 1069 1070 1085 1086 1100 1101 1131 1132 1196 1197 1284  359  361  363
+ 1005 1006 1071 1072 1083 1084 1102 1103 1129 1130 1189 1190 1195  362  364  365
+  367 1073 1074 1081 1082 1104 1105 1127 1128 1191 1192  366  368  370 1075 1076
+ 1079 1080 1106 1107 1125 1126 1193 1194  373  377  379 1625 1638 1841  374  375
+  378  380  382 1626 1637 1840  381  383  384  386 1627 1636 1839  385  387  389
+ 1628 1635  388  390  392  394  395 1629 1631 1633  391  393 1630 1634  396  397
+  400 1632  398  399  405  406  409 1293 1484 1699 1820  407  408  411  412  414
+  447  450 1294 1483 1698 1819  413  415  417  968 1697 1818  416  418  419  421
+  427 1696 1708  420  422  423  425  992 1695 1707  426  428  430  429  431  432
+  434 1709 1816  433  435  436  438  975  983  984  985  986  994  995 1008 1009
+ 1010 1012 1017 1710 1815  437  439  442  453  455  471  473 1298  440  441  443
+  445 1297 1481  444  446  448  449  451  452  967  969  970  971  972  973  974
+  976  977  978  979  980  981  982  987  988 1295 1296 1482 1817  454  456  457
+  459  474  475  477 1299 1480 1814  458  460  464  465  826  895  896  897  898
+  899  900  908  909 1711 1812  461  462  463  466  468  530  876  877  878  879
+  880  881  882  883  884  885  886  887  888  889  890  891  892  893  894  901
+  902  903  904  905  906  996  997  998  999 1001 1003 1011 1013 1014 1015 1016
+ 1712 1811  467  469  470  472  476  478  480  825  827 1300 1479 1813  479  481
+  483  828  829 1301 1478  482  484  485  487  830 1302 1303 1477  486  488  490
+  610  612  489  491  493 1307  492  494  495  497  925  926 1308 1310 1385  496
+  498  504  907  914  915  916  924  927  929  930  931  932  933  934  935  936
+  937 1018 1387  499  500  501  506  508  691  693  928  938  939  940  941  942
+  943 1019 1715 1805  502  503  505  507  509  511 1714 1806  510  512  518  524
+  526  910  911  912  913  513  516  517  519  520  522  523  514 1808  515  521
+ 1807 1809  525  527  533 1713 1810  528  529  531  532  534  535  537  538  540
+  684  686  687  689 1021 1024 1031  536  553  557  688  690  692 1020 1027 1028
+ 1032 1048 1049 1057 1361 1363 1371 1420 1422 1716 1804  539  543  681  683  685
+ 1039 1044 1045 1052 1053 1717 1803  541  545  547  548  674  676  678  680  682
+ 1038 1433 1718 1719 1799 1801  542  544  677  679 1037 1434 1720 1800 1802  546
+  549  551  550  552  554  558  562 1033  555  556  559  560  561  563  564  566
+  638  842  945  946 1035 1342 1344 1357 1359 1373 1375 1415 1419  565  567  569
+  841  951  954  957  958  961  962 1336 1337 1376 1377 1412  568  570  572  815
+  817  840  949  950  965  571  575  579  816  839  966 1312 1313 1317 1319 1320
+ 1335 1406 1463  573  574  576  577 1022 1023 1025 1026 1029 1030 1040 1041 1042
+ 1043 1046 1047 1050 1051 1054 1055 1058 1059 1060  578  580  582 1000 1002  581
+  583  585  836  838 1322 1332  584  586  587  589  837 1780  588  590  591  592
+  595  597  598  615  594  614  616  618 1451 1779 1781 1787  596  599  602 1456
+ 1783 1785  600  601  603  605  835 1326 1328 1392 1393 1395 1458 1470 1784  604
+  606  608  834  607  609  611  613  831  832  833 1471 1472  617  619  621 1450
+ 1778 1788  620  622  624  640  642  847 1449 1776 1777 1789  623  625  628  846
+ 1775 1790  626  627  629  630  632  845  631  633  635  844 1347 1354  634  636
+  843 1346  637  639  641  643  644  646  807  811  812  814  645  647  648  650
+  848 1448 1734 1791  649  651  653  849 1447 1735 1792  652  654  655  657  658
+  753  755  850  851  874 1439 1446 1727 1736 1737 1793  656  659  661  852  873
+ 1726 1794  660  662  664  853  872 1725 1795  663  665  666  668  694  696  749
+  750  752  854  869  870  871 1437 1438 1723 1746 1759 1796  667  669  671 1436
+ 1722 1797  670  672  673  675 1435 1721 1798  695  697  698  700  702  714  716
+  855 1745 1747 1760  699  701  703  705  707  856  859 1748 1761  704  706  708
+  710  711  713  857 1749 1762 1763  709  712  858 1750 1764  715  717  719 1744
+ 1757  718  720  722  724 1743 1756  721  723  727  864 1753 1767  725  726  728
+  731  733  729  730  732  734  736  735  737  740  866 1741 1754 1769  738  739
+  741  743  865 1742 1755 1768  742  744  747  768  770  745  746  748  751  868
+ 1724 1758  754  756  757  759  875 1440 1445 1728 1738  758  760  762 1441 1444
+ 1729 1739 1771  761  763  765  767 1442 1443 1730 1740 1770  764  766  774  775
+  781  786  789  790  792  769  771  778  867  772  773  776  777  779  780  782
+  783  784  785  787  788  791  793  796  798  794  795  797  799  800  802 1731
+ 1772  801  803  805 1732 1773  804  806  809 1733 1774  808  810  813  818  819
+  820  821  822  823  824 1236 1237 1238 1245 1246 1502 1503 1504 1505 1506 1581
+ 1587 1596 1603 1614 1615 1616 1617 1618 1849 1850  860  862 1751 1765  861  863
+ 1752 1766  917  919  921  923 1224 1226 1228 1231 1233 1235 1239 1241 1243 1508
+ 1510 1512 1541 1543 1545 1547 1562 1564 1566 1568 1570 1572  918  920  922 1223
+ 1225 1227 1229 1230 1232 1234 1240 1242 1244 1507 1509 1511 1542 1544 1546 1563
+ 1565 1567 1569 1571  944  947  948  952  953  955  956  959  960  963  964 1034
+ 1036 1056 1087 1088 1098 1099 1133 1134 1207 1208 1091 1092 1093 1094 1095 1145
+ 1146 1147 1148 1149 1200 1201 1202 1203 1204 1137 1138 1141 1142 1158 1159 1178
+ 1179 1211 1212 1152 1153 1184 1185 1304 1305 1389 1473 1476 1306 1388 1390 1474
+ 1475 1309 1386 1391 1311 1384 1404 1314 1403 1405 1315 1383 1402 1409 1316 1401
+ 1408 1318 1334 1400 1407 1464 1321 1333 1399 1462 1465 1323 1331 1398 1461 1466
+ 1324 1330 1397 1460 1467 1325 1329 1396 1459 1468 1327 1394 1457 1469 1338 1378
+ 1411 1339 1379 1410 1340 1380 1382 1413 1341 1381 1414 1343 1358 1374 1345 1355
+ 1417 1348 1353 1349 1351 1350 1352 1356 1416 1418 1360 1370 1423 1424 1432 1362
+ 1372 1421 1364 1369 1425 1431 1365 1367 1427 1429 1366 1368 1426 1428 1430 1513
+ 1515 1516 1517 1526 1531 1548 1549 1550 1552 1553 1554 1555 1556 1557 1519 1520
+ 1522 1573 1575 1590 1599 1605 1612 1577 1584 1601 1607 1579 1585 1592 1594 1609
+ 1611 1580 1582 1586 1588 1595 1597 1602 1604 1624 1639    1    2    3    4    5
+    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21
+   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37
+   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53
+   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69
+   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85
+   86   87   88   89   90   91   92   93   94   95   96   97   98   99  100  101
+  102  103  104  105  106  107  108  109  110  111  112  113  114  115  116  117
+  118  119  120  121  122  123  124  125  126  127  128  129  130  131  132  133
+  134  135  136  137  138  139  140  141  142  143  144  145  146  147  148  149
+  150  151  152  153  154  155  156  157  158  159  160  161  162  163  164  165
+  166  167  168  169  170  171  172  173  174  175  176  177  178  179  180  181
+  182  183  184  185  186  187  188  189  190  191  192  193  194  195  196  197
+  198  199  200  201  202  203  204  205  206  207  208  209  210  211  212  213
+  214  215  216  217  218  219  220  221  222  223  224  225  226  227  228  229
+  230  231  232  233  234  235  236  237  238  239  240  241  242  243  244  245
+  246  247  248  249  250  251  252  253  254  255  256  257  258  259  260  261
+  262  263  264  265  266  267  268  269  270  271  272  273  274  275  276  277
+  278  279  280  281  282  283  284  285  286  287  288  289  290  291  292  293
+  294  295  296  297  298  299  300  301  302  303  304  305  306  307  308  309
+  310  311  312  313  314  315  316  317  318  319  320  321  322  323  324  325
+  326  327  328  329  330  331  332  333  334  335  336  337  338  339  340  341
+  342  343  344  345  346  347  348  349  350  351  352  353  354  355  356  357
+  358  359  360  361  362  363  364  365  366  367  368  369  370  371  372  373
+  374  375  376  377  378  379  380  381  382  383  384  385  386  387  388  389
+  390  391  392  393  394  395  396  397  398  399  400  401  402  403  404  405
+  406  407  408  409  410  411  412  413  414  415  416  417  418  419  420  421
+  422  423  424  425  426  427  428  429  430  431  432  433  434  435  436  437
+  438  439  440  441  442  443  444  445  446  447  448  449  450  451  452  453
+  454  455  456  457  458  459  460  461  462  463  464  465  466  467  468  469
+  470  471  472  473  474  475  476  477  478  479  480  481  482  483  484  485
+  486  487  488  489  490  491  492  493  494  495  496  497  498  499  500  501
+  502  503  504  505  506  507  508  509  510  511  512  513  514  515  516  517
+  518  519  520  521  522  523  524  525  526  527  528  529  530  531  532  533
+  534  535  536  537  538  539  540  541  542  543  544  545  546  547  548  549
+  550  551  552  553  554  555  556  557  558  559  560  561  562  563  564  565
+  566  567  568  569  570  571  572  573  574  575  576  577  578  579  580  581
+  582  583  584  585  586  587  588  589  590  591  592  593  594  595  596  597
+  598  599  600  601  602  603  604  605  606  607  608  609  610  611  612  613
+  614  615  616  617  618  619  620  621  622  623  624  625  626  627  628  629
+  630  631  632  633  634  635  636  637  638  639  640  641  642  643  644  645
+  646  647  648  649  650  651  652  653  654  655  656  657  658  659  660  661
+  662  663  664  665  666  667  668  669  670  671  672  673  674  675  676  677
+  678  679  680  681  682  683  684  685  686  687  688  689  690  691  692  693
+  694  695  696  697  698  699  700  701  702  703  704  705  706  707  708  709
+  710  711  712  713  714  715  716  717  718  719  720  721  722  723  724  725
+  726  727  728  729  730  731  732  733  734  735  736  737  738  739  740  741
+  742  743  744  745  746  747  748  749  750  751  752  753  754  755  756  757
+  758  759  760  761  762  763  764  765  766  767  768  769  770  771  772  773
+  774  775  776  777  778  779  780  781  782  783  784  785  786  787  788  789
+  790  791  792  793  794  795  796  797  798  799  800  801  802  803  804  805
+  806  807  808  809  810  811  812  813  814  815  816  817  818  819  820  821
+  822  823  824  825  826  827  828  829  830  831  832  833  834  835  836  837
+  838  839  840  841  842  843  844  845  846  847  848  849  850  851  852  853
+  854  855  856  857  858  859  860  861  862  863  864  865  866  867  868  869
+  870  871  872  873  874  875  876  877  878  879  880  881  882  883  884  885
+  886  887  888  889  890  891  892  893  894  895  896  897  898  899  900  901
+  902  903  904  905  906  907  908  909  910  911  912  913  914  915  916  917
+  918  919  920  921  922  923  924  925  926  927  928  929  930  931  932  933
+  934  935  936  937  938  939  940  941  942  943  944  945  946  947  948  949
+  950  951  952  953  954  955  956  957  958  959  960  961  962  963  964  965
+  966  967  968  969  970  971  972  973  974  975  976  977  978  979  980  981
+  982  983  984  985  986  987  988  989  990  991  992  993  994  995  996  997
+  998  999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013
+ 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029
+ 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045
+ 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061
+ 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077
+ 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093
+ 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109
+ 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125
+ 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141
+ 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157
+ 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173
+ 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189
+ 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205
+ 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221
+ 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237
+ 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253
+ 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269
+ 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285
+ 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301
+ 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317
+ 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333
+ 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349
+ 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365
+ 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381
+ 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397
+ 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413
+ 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429
+ 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445
+ 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461
+ 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477
+ 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493
+ 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509
+ 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525
+ 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541
+ 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557
+ 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573
+ 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589
+ 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605
+ 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621
+ 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637
+ 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653
+ 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669
+ 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685
+ 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701
+ 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717
+ 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733
+ 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749
+ 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765
+ 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781
+ 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797
+ 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813
+ 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829
+ 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845
+ 1846 1847 1848 1849 1850    1    2    3    4    5    6    7    8    9   10   11
+   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27
+   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43
+   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59
+   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75
+   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91
+   92   93   94   95   96   97   98   99  100  101  102  103  104  105  106  107
+  108  109  110  111  112  113  114  115  116  117  118  119  120  121  122  123
+  124  125  126  127  128  129  130  131  132  133  134  135  136  137  138  139
+  140  141  142  143  144  145  146  147  148  149  150  151  152  153  154  155
+  156  157  158  159  160  161  162  163  164  165  166  167  168  169  170  171
+  172  173  174  175  176  177  178  179  180  181  182  183  184  185  186  187
+  188  189  190  191  192  193  194  195  196  197  198  199  200  201  202  203
+  204  205  206  207  208  209  210  211  212  213  214  215  216  217  218  219
+  220  221  222  223  224  225  226  227  228  229  230  231  232  233  234  235
+  236  237  238  239  240  241  242  243  244  245  246  247  248  249  250  251
+  252  253  254  255  256  257  258  259  260  261  262  263  264  265  266  267
+  268  269  270  271  272  273  274  275  276  277  278  279  280  281  282  283
+  284  285  286  287  288  289  290  291  292  293  294  295  296  297  298  299
+  300  301  302  303  304  305  306  307  308  309  310  311  312  313  314  315
+  316  317  318  319  320  321  322  323  324  325  326  327  328  329  330  331
+  332  333  334  335  336  337  338  339  340  341  342  343  344  345  346  347
+  348  349  350  351  352  353  354  355  356  357  358  359  360  361  362  363
+  364  365  366  367  368  369  370  371  372  373  374  375  376  377  378  379
+  380  381  382  383  384  385  386  387  388  389  390  391  392  393  394  395
+  396  397  398  399  400  401  402  403  404  405  406  407  408  409  410  411
+  412  413  414  415  416  417  418  419  420  421  422  423  424  425  426  427
+  428  429  430  431  432  433  434  435  436  437  438  439  440  441  442  443
+  444  445  446  447  448  449  450  451  452  453  454  455  456  457  458  459
+  460  461  462  463  464  465  466  467  468  469  470  471  472  473  474  475
+  476  477  478  479  480  481  482  483  484  485  486  487  488  489  490  491
+  492  493  494  495  496  497  498  499  500  501  502  503  504  505  506  507
+  508  509  510  511  512  513  514  515  516  517  518  519  520  521  522  523
+  524  525  526  527  528  529  530  531  532  533  534  535  536  537  538  539
+  540  541  542  543  544  545  546  547  548  549  550  551  552  553  554  555
+  556  557  558  559  560  561  562  563  564  565  566  567  568  569  570  571
+  572  573  574  575  576  577  578  579  580  581  582  583  584  585  586  587
+  588  589  590  591  592  593  594  595  596  597  598  599  600  601  602  603
+  604  605  606  607  608  609  610  611  612  613  614  615  616  617  618  619
+  620  621  622  623  624  625  626  627  628  629  630  631  632  633  634  635
+  636  637  638  639  640  641  642  643  644  645  646  647  648  649  650  651
+  652  653  654  655  656  657  658  659  660  661  662  663  664  665  666  667
+  668  669  670  671  672  673  674  675  676  677  678  679  680  681  682  683
+  684  685  686  687  688  689  690  691  692  693  694  695  696  697  698  699
+  700  701  702  703  704  705  706  707  708  709  710  711  712  713  714  715
+  716  717  718  719  720  721  722  723  724  725  726  727  728  729  730  731
+  732  733  734  735  736  737  738  739  740  741  742  743  744  745  746  747
+  748  749  750  751  752  753  754  755  756  757  758  759  760  761  762  763
+  764  765  766  767  768  769  770  771  772  773  774  775  776  777  778  779
+  780  781  782  783  784  785  786  787  788  789  790  791  792  793  794  795
+  796  797  798  799  800  801  802  803  804  805  806  807  808  809  810  811
+  812  813  814  815  816  817  818  819  820  821  822  823  824  825  826  827
+  828  829  830  831  832  833  834  835  836  837  838  839  840  841  842  843
+  844  845  846  847  848  849  850  851  852  853  854  855  856  857  858  859
+  860  861  862  863  864  865  866  867  868  869  870  871  872  873  874  875
+  876  877  878  879  880  881  882  883  884  885  886  887  888  889  890  891
+  892  893  894  895  896  897  898  899  900  901  902  903  904  905  906  907
+  908  909  910  911  912  913  914  915  916  917  918  919  920  921  922  923
+  924  925  926  927  928  929  930  931  932  933  934  935  936  937  938  939
+  940  941  942  943  944  945  946  947  948  949  950  951  952  953  954  955
+  956  957  958  959  960  961  962  963  964  965  966  967  968  969  970  971
+  972  973  974  975  976  977  978  979  980  981  982  983  984  985  986  987
+  988  989  990  991  992  993  994  995  996  997  998  999 1000 1001 1002 1003
+ 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019
+ 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035
+ 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051
+ 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067
+ 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083
+ 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099
+ 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115
+ 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131
+ 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147
+ 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163
+ 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179
+ 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195
+ 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211
+ 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227
+ 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243
+ 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259
+ 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275
+ 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291
+ 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307
+ 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323
+ 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339
+ 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355
+ 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371
+ 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387
+ 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403
+ 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419
+ 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435
+ 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451
+ 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467
+ 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483
+ 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499
+ 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515
+ 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531
+ 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547
+ 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563
+ 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579
+ 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595
+ 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611
+ 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627
+ 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643
+ 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659
+ 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675
+ 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691
+ 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707
+ 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723
+ 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739
+ 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755
+ 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771
+ 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787
+ 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803
+ 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819
+ 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835
+ 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850    1
+    3   26   28  164  166 1259 1262 1277 1279 1490 1686 1827    6    8    9   11
+ 1263 1276 1540 1685 1828   10   12   13   15 1264 1275 1538 1539 1560 1561 1684
+ 1829   14   16   17   19 1274   18   20   21   23   25 1265 1273 1683 1830   27
+   29   30   32 1491   31   33   35   37 1258 1492   34   36   38   39   41   43
+ 1257 1493   40   42   44   46 1256   45   47   49   51 1255 1494   48   50   52
+   53   55 1254   62   64   66   72   74 1252 1496   63   65   76   78 1251 1497
+   68   70   71   73   75 1253 1495   77   79   81   83 1250 1498   80   82   84
+   86   88 1249 1499   85   87   89   91 1248 1500   90   92   94   96 1247 1501
+ 1619 1848   93   95   97   98  100 1620 1847   99  101  102  104 1621 1846  110
+  112  113  115 1622 1845  114  116  117  119 1623 1843 1844  118  120  121  123
+  372  376 1640 1842  126  128  129  131 1641 1838  130  132  133  135 1642 1837
+  134  136  137  139 1643 1836  147  149  167  169 1644 1835  151  153  192  194
+ 1266 1267 1272 1537 1551 1559 1682 1831  155  157  298  300  302  304  306  308
+  401  403  156  158  159  161 1281 1488 1688 1825  160  162  163  165  989  990
+ 1260 1261 1278 1280 1489 1687 1826  172  174  175  177  294  296 1269 1523 1529
+ 1534 1645 1658 1834  176  178  180 1270 1524 1528 1530 1533 1659 1833  179  181
+  182  184  186  195  197 1268 1271 1514 1525 1527 1532 1536 1558 1660 1681 1832
+  196  198  199  201 1661 1680  200  202  203  205 1662 1679  204  206  207  209
+ 1663 1678  208  210  211  213 1117 1118 1664 1677  212  214  215  217 1114 1115
+ 1116 1119 1120 1665 1676  216  218  219  220  222  369  371 1077 1078 1108 1109
+ 1112 1113 1121 1122 1666 1675  221  223  224  226 1110 1111 1123 1124 1667 1674
+  225  227  229  231  266  268 1668 1673  233  234  265  271  273 1669 1672  235
+  264 1670 1671  274  288  289  291 1646 1657  275  287 1518 1521 1535 1647 1656
+  278 1648 1655  280  283  284 1650 1653  281  282 1651 1652  285 1649 1654  310
+  312  314 1691 1703 1824  313  315  316  318 1692 1704  317  319  321  323  991
+  993 1061 1168 1169 1170 1171 1221 1222 1288 1693 1705  326  328  330  424 1062
+ 1063 1166 1167 1172 1173 1219 1220 1694 1706  329  331  332  334 1007 1064 1065
+ 1164 1165 1174 1175 1217 1218  333  335  337 1066 1139 1140 1162 1163 1176 1177
+ 1215 1216  336  338  339  341  344 1160 1161 1180 1181 1213 1214 1287  340  342
+  343  345  346  348 1067 1068 1089 1090 1096 1097 1135 1136 1143 1144 1150 1151
+ 1154 1155 1156 1157 1182 1183 1186 1187 1188 1198 1199 1205 1206 1209 1210 1285
+ 1286  355  357  358  360 1004 1069 1070 1085 1086 1100 1101 1131 1132 1196 1197
+ 1284  359  361  363 1005 1006 1071 1072 1083 1084 1102 1103 1129 1130 1189 1190
+ 1195  362  364  365  367 1073 1074 1081 1082 1104 1105 1127 1128 1191 1192  366
+  368  370 1075 1076 1079 1080 1106 1107 1125 1126 1193 1194  373  377  379 1625
+ 1638 1841  378  380  382 1626 1637 1840  381  383  384  386 1627 1636 1839  385
+  387  389 1628 1635  388  390  392  394  395 1629 1631 1633  396  397  400 1632
+  405  406  409 1293 1484 1699 1820  407  408  411  412  414  447  450 1294 1483
+ 1698 1819  413  415  417  968 1697 1818  416  418  419  421  427 1696 1708  420
+  422  423  425  992 1695 1707  429  431  432  434 1709 1816  433  435  436  438
+  975  983  984  985  986  994  995 1008 1009 1010 1012 1017 1710 1815  437  439
+  442  453  455  471  473 1298  440  441  443  445 1297 1481  444  446  448  449
+  451  452  967  969  970  971  972  973  974  976  977  978  979  980  981  982
+  987  988 1295 1296 1482 1817  454  456  457  459  474  475  477 1299 1480 1814
+  458  460  464  465  826  895  896  897  898  899  900  908  909 1711 1812  463
+  466  468  530  876  877  878  879  880  881  882  883  884  885  886  887  888
+  889  890  891  892  893  894  901  902  903  904  905  906  996  997  998  999
+ 1001 1003 1011 1013 1014 1015 1016 1712 1811  476  478  480  825  827 1300 1479
+ 1813  479  481  483  828  829 1301 1478  482  484  485  487  830 1302 1303 1477
+  489  491  493 1307  492  494  495  497  925  926 1308 1310 1385  496  498  504
+  907  914  915  916  924  927  929  930  931  932  933  934  935  936  937 1018
+ 1387  501  506  508  691  693  928  938  939  940  941  942  943 1019 1715 1805
+  507  509  511 1714 1806  510  512  518  524  526  910  911  912  913  514 1808
+  515  521 1807 1809  525  527  533 1713 1810  535  537  538  540  684  686  687
+  689 1021 1024 1031  536  553  557  688  690  692 1020 1027 1028 1032 1048 1049
+ 1057 1361 1363 1371 1420 1422 1716 1804  539  543  681  683  685 1039 1044 1045
+ 1052 1053 1717 1803  541  545  547  548  674  676  678  680  682 1038 1433 1718
+ 1719 1799 1801  542  544  677  679 1037 1434 1720 1800 1802  550  552  554  558
+  562 1033  561  563  564  566  638  842  945  946 1035 1342 1344 1357 1359 1373
+ 1375 1415 1419  565  567  569  841  951  954  957  958  961  962 1336 1337 1376
+ 1377 1412  568  570  572  815  817  840  949  950  965  571  575  579  816  839
+  966 1312 1313 1317 1319 1320 1335 1406 1463  576  577 1022 1023 1025 1026 1029
+ 1030 1040 1041 1042 1043 1046 1047 1050 1051 1054 1055 1058 1059 1060  578  580
+  582 1000 1002  581  583  585  836  838 1322 1332  584  586  587  589  837 1780
+  594  614  616  618 1451 1779 1781 1787  596  599  602 1456 1783 1785  600  601
+  603  605  835 1326 1328 1392 1393 1395 1458 1470 1784  604  606  608  834  607
+  609  611  613  831  832  833 1471 1472  617  619  621 1450 1778 1788  620  622
+  624  640  642  847 1449 1776 1777 1789  623  625  628  846 1775 1790  626  627
+  629  630  632  845  631  633  635  844 1347 1354  634  636  843 1346  645  647
+  648  650  848 1448 1734 1791  649  651  653  849 1447 1735 1792  652  654  655
+  657  658  753  755  850  851  874 1439 1446 1727 1736 1737 1793  656  659  661
+  852  873 1726 1794  660  662  664  853  872 1725 1795  663  665  666  668  694
+  696  749  750  752  854  869  870  871 1437 1438 1723 1746 1759 1796  667  669
+  671 1436 1722 1797  670  672  673  675 1435 1721 1798  695  697  698  700  702
+  714  716  855 1745 1747 1760  699  701  703  705  707  856  859 1748 1761  704
+  706  708  710  711  713  857 1749 1762 1763  709  712  858 1750 1764  715  717
+  719 1744 1757  718  720  722  724 1743 1756  721  723  727  864 1753 1767  735
+  737  740  866 1741 1754 1769  739  741  743  865 1742 1755 1768  746  748  751
+  868 1724 1758  754  756  757  759  875 1440 1445 1728 1738  758  760  762 1441
+ 1444 1729 1739 1771  761  763  765  767 1442 1443 1730 1740 1770  769  771  778
+  867  794  795  797  799  800  802 1731 1772  801  803  805 1732 1773  804  806
+  809 1733 1774  860  862 1751 1765  861  863 1752 1766  917  919  921  923 1224
+ 1226 1228 1231 1233 1235 1239 1241 1243 1508 1510 1512 1541 1543 1545 1547 1562
+ 1564 1566 1568 1570 1572  918  920  922 1223 1225 1227 1229 1230 1232 1234 1240
+ 1242 1244 1507 1509 1511 1542 1544 1546 1563 1565 1567 1569 1571 1513 1515 1516
+ 1517 1526 1531 1548 1549 1550 1552 1553 1554 1555 1556 1557    1    2    3    4
+    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20
+   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36
+   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52
+   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68
+   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84
+   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99  100
+  101  102  103  104  105  106  107  108  109  110  111  112  113  114  115  116
+  117  118  119  120  121  122  123  124  125  126  127  128  129  130  131  132
+  133  134  135  136  137  138  139  140  141  142  143  144  145  146  147  148
+  149  150  151  152  153  154  155  156  157  158  159  160  161  162  163  164
+  165  166  167  168  169  170  171  172  173  174  175  176  177  178  179  180
+  181  182  183  184  185  186  187  188  189  190  191  192  193  194  195  196
+  197  198  199  200  201  202  203  204  205  206  207  208  209  210  211  212
+  213  214  215  216  217  218  219  220  221  222  223  224  225  226  227  228
+  229  230  231  232  233  234  235  236  237  238  239  240  241  242  243  244
+  245  246  247  248  249  250  251  252  253  254  255  256  257  258  259  260
+  261  262  263  264  265  266  267  268  269  270  271  272  273  274  275  276
+  277  278  279  280  281  282  283  284  285  286  287  288  289  290  291  292
+  293  294  295  296  297  298  299  300  301  302  303  304  305  306  307  308
+  309  310  311  312  313  314  315  316  317  318  319  320  321  322  323  324
+  325  326  327  328  329  330  331  332  333  334  335  336  337  338  339  340
+  341  342  343  344  345  346  347  348  349  350  351  352  353  354  355  356
+  357  358  359  360  361  362  363  364  365  366  367  368  369  370  371  372
+  373  374  375  376  377  378  379  380  381  382  383  384  385  386  387  388
+  389  390  391  392  393  394  395  396  397  398  399  400  401  402  403  404
+  405  406  407  408  409  410  411  412  413  414  415  416  417  418  419  420
+  421  422  423  424  425  426  427  428  429  430  431  432  433  434  435  436
+  437  438  439  440  441  442  443  444  445  446  447  448  449  450  451  452
+  453  454  455  456  457  458  459  460  461  462  463  464  465  466  467  468
+  469  470  471  472  473  474  475  476  477  478  479  480  481  482  483  484
+  485  486  487  488  489  490  491  492  493  494  495  496  497  498  499  500
+  501  502  503  504  505  506  507  508  509  510  511  512  513  514  515  516
+  517  518  519  520  521  522  523  524  525  526  527  528  529  530  531  532
+  533  534  535  536  537  538  539  540  541  542  543  544  545  546  547  548
+  549  550  551  552  553  554  555  556  557  558  559  560  561  562  563  564
+  565  566  567  568  569  570  571  572  573  574  575  576  577  578  579  580
+  581  582  583  584  585  586  587  588  589  590  591  592  593  594  595  596
+  597  598  599  600  601  602  603  604  605  606  607  608  609  610  611  612
+  613  614  615  616  617  618  619  620  621  622  623  624  625  626  627  628
+  629  630  631  632  633  634  635  636  637  638  639  640  641  642  643  644
+  645  646  647  648  649  650  651  652  653  654  655  656  657  658  659  660
+  661  662  663  664  665  666  667  668  669  670  671  672  673  674  675  676
+  677  678  679  680  681  682  683  684  685  686  687  688  689  690  691  692
+  693  694  695  696  697  698  699  700  701  702  703  704  705  706  707  708
+  709  710  711  712  713  714  715  716  717  718  719  720  721  722  723  724
+  725  726  727  728  729  730  731  732  733  734  735  736  737  738  739  740
+  741  742  743  744  745  746  747  748  749  750  751  752  753  754  755  756
+  757  758  759  760  761  762  763  764  765  766  767  768  769  770  771  772
+  773  774  775  776  777  778  779  780  781  782  783  784  785  786  787  788
+  789  790  791  792  793  794  795  796  797  798  799  800  801  802  803  804
+  805  806  807  808  809  810  811  812  813  814  815  816  817  818  819  820
+  821  822  823  824  825  826  827  828  829  830  831  832  833  834  835  836
+  837  838  839  840  841  842  843  844  845  846  847  848  849  850  851  852
+  853  854  855  856  857  858  859  860  861  862  863  864  865  866  867  868
+  869  870  871  872  873  874  875  876  877  878  879  880  881  882  883  884
+  885  886  887  888  889  890  891  892  893  894  895  896  897  898  899  900
+  901  902  903  904  905  906  907  908  909  910  911  912  913  914  915  916
+  917  918  919  920  921  922  923  924  925  926  927  928  929  930  931  932
+  933  934  935  936  937  938  939  940  941  942  943  944  945  946  947  948
+  949  950  951  952  953  954  955  956  957  958  959  960  961  962  963  964
+  965  966  967  968  969  970  971  972  973  974  975  976  977  978  979  980
+  981  982  983  984  985  986  987  988  989  990  991  992  993  994  995  996
+  997  998  999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012
+ 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028
+ 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044
+ 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060
+ 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076
+ 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092
+ 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108
+ 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124
+ 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140
+ 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156
+ 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172
+ 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188
+ 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204
+ 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220
+ 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236
+ 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252
+ 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268
+ 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284
+ 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300
+ 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316
+ 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332
+ 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348
+ 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364
+ 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380
+ 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396
+ 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412
+ 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428
+ 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444
+ 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460
+ 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476
+ 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492
+ 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508
+ 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524
+ 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540
+ 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556
+ 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572
+ 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588
+ 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604
+ 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620
+ 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636
+ 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652
+ 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668
+ 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684
+ 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700
+ 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716
+ 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732
+ 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748
+ 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764
+ 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780
+ 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796
+ 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812
+ 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828
+ 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844
+ 1845 1846 1847 1848 1849 1850                                            9   10
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 7.071067812D-01
+ 7.071067812D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 7.071067812D-01
+ 7.071067812D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 7.071067812D-01 7.071067812D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 7.071067812D-01 7.071067812D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 7.071067812D-01 7.071067812D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 7.071067812D-01
+ 7.071067812D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01
+ 1.690308509D-01 1.690308509D-01 1.690308509D-01 1.690308509D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 7.071067812D-01 7.071067812D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 1.000000000D 00 1.000000000D 00
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 7.071067812D-01 7.071067812D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01
+ 1.543033500D-01 1.543033500D-01 1.543033500D-01 1.543033500D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 7.071067812D-01
+ 7.071067812D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 7.071067812D-01 7.071067812D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 7.071067812D-01 7.071067812D-01 2.182178902D-01 2.182178902D-01
+ 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01
+ 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01
+ 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01
+ 2.182178902D-01 2.182178902D-01 2.182178902D-01 2.182178902D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 7.071067812D-01 7.071067812D-01 1.000000000D 00
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 7.071067812D-01 7.071067812D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01
+ 2.500000000D-01 2.500000000D-01 2.500000000D-01 2.500000000D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 2.294157339D-01 2.294157339D-01
+ 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01
+ 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01
+ 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01
+ 2.294157339D-01 2.294157339D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 1.000000000D 00 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 1.000000000D 00 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 1.000000000D 00
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 1.000000000D 00 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 7.071067812D-01 7.071067812D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 7.071067812D-01
+ 7.071067812D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 7.071067812D-01 7.071067812D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 0.000000000D-01 2.180377087D-01 3.997357992D-01 8.903206438D-01 0.000000000D-01
+ 6.615501375D-02 1.543616987D-01 2.205167125D-01 3.307750688D-01 4.410334250D-01
+ 5.145389959D-01 5.953951238D-01 0.000000000D-01 1.014812531D-01 1.957138452D-01
+ 2.609517936D-01 3.406870638D-01 4.349196560D-01 5.001576044D-01 5.726442138D-01
+ 0.000000000D-01 2.076534838D-01 4.568376644D-01 5.537426236D-01 6.644911482D-01
+ 0.000000000D-01 1.078483204D-01 1.960878552D-01 2.549142117D-01 3.333493540D-01
+ 4.215888889D-01 5.000240309D-01 5.882635657D-01 0.000000000D-01 4.465124834D-02
+ 7.654499715D-02 1.211962455D-01 1.594687441D-01 3.316949877D-01 3.891037356D-01
+ 4.337549838D-01 4.784062322D-01 5.230574806D-01 0.000000000D-01 3.140371465D-01
+ 5.338631490D-01 7.850928665D-01 0.000000000D-01 6.281904633D-02 1.334904735D-01
+ 2.041619005D-01 2.748333276D-01 3.690618971D-01 4.318809436D-01 4.946999899D-01
+ 5.418142746D-01 0.000000000D-01 1.496878521D-02 2.993757042D-02 3.742196301D-02
+ 5.987514083D-02 3.517664523D-01 4.041572006D-01 4.415791636D-01 4.790011267D-01
+ 5.313918748D-01 0.000000000D-01 7.689578151D-02 1.307228285D-01 1.922394538D-01
+ 3.075831261D-01 3.614101730D-01 4.152372201D-01 4.767538452D-01 5.613392050D-01
+ 0.000000000D-01 1.570271768D-01 5.234239225D-01 8.374782760D-01 0.000000000D-01
+ 1.969893698D-01 3.545808656D-01 5.515702355D-01 7.288606682D-01 0.000000000D-01
+ 6.560242603D-02 1.230045488D-01 1.804066716D-01 3.608133431D-01 4.510166790D-01
+ 5.248194083D-01 5.822215310D-01 0.000000000D-01 6.654201713D-02 1.247662821D-01
+ 2.079438036D-01 2.744858207D-01 3.659810942D-01 4.408408634D-01 4.907473763D-01
+ 5.406538891D-01 0.000000000D-01 3.113995777D-01 5.449492609D-01 7.784989441D-01
+ 0.000000000D-01 5.553584725D-02 9.441094032D-02 1.388396182D-01 2.054826349D-01
+ 2.499113126D-01 3.054471599D-01 3.609830071D-01 4.220724391D-01 4.609475321D-01
+ 4.998226253D-01 0.000000000D-01 1.066805390D-01 1.745681547D-01 2.715504629D-01
+ 3.491363094D-01 4.364203868D-01 4.946097716D-01 5.721956181D-01 0.000000000D-01
+ 9.206017075D-02 1.764486606D-01 2.378221078D-01 3.375539594D-01 4.296141301D-01
+ 5.063309391D-01 5.907194289D-01 0.000000000D-01 8.888645035D-02 1.777729007D-01
+ 2.592521468D-01 3.481385971D-01 4.296178434D-01 5.036898853D-01 5.777619273D-01
+ 0.000000000D-01 5.163837284D-02 1.032767457D-01 1.475382081D-01 1.917996704D-01
+ 3.024533265D-01 3.762224306D-01 4.278608035D-01 4.794991762D-01 5.311375491D-01
+ 0.000000000D-01 2.516098042D-01 5.032196082D-01 8.267179278D-01 0.000000000D-01
+ 1.179798515D-01 1.930579389D-01 2.681360263D-01 3.324886726D-01 4.182922010D-01
+ 4.933702884D-01 5.898992578D-01 0.000000000D-01 2.952406988D-01 5.412746143D-01
+ 7.873085300D-01 0.000000000D-01 1.083482291D-01 2.012181398D-01 2.940880505D-01
+ 3.792188021D-01 4.411320758D-01 4.875670312D-01 5.340019865D-01 0.000000000D-01
+ 6.055825571D-02 9.083738356D-02 1.332281626D-01 1.816747671D-01 2.180097206D-01
+ 2.482888484D-01 3.391262319D-01 3.754611853D-01 4.057403133D-01 4.360194411D-01
+ 4.662985689D-01 0.000000000D-01 1.147183497D-01 1.529577996D-01 2.007571120D-01
+ 3.059155991D-01 4.206339488D-01 5.162325736D-01 6.213910608D-01 0.000000000D-01
+ 3.113995776D-01 5.449492609D-01 7.784989441D-01 0.000000000D-01 3.108809142D-01
+ 5.773502692D-01 7.549965058D-01 0.000000000D-01 9.166509491D-02 1.629601687D-01
+ 2.342552425D-01 3.972154113D-01 4.481404639D-01 4.990655168D-01 5.499905695D-01
+ 0.000000000D-01 3.001668057D-01 5.669817441D-01 7.670929479D-01 0.000000000D-01
+ 3.058324497D-01 5.437021328D-01 7.815718159D-01 0.000000000D-01 7.643998814D-02
+ 1.419599780D-01 2.074799678D-01 2.729999577D-01 3.712799424D-01 4.367999323D-01
+ 4.913999237D-01 5.350799170D-01 0.000000000D-01 1.825741858D-01 3.651483717D-01
+ 5.477225575D-01 7.302967433D-01 0.000000000D-01 1.747941918D-01 3.845472219D-01
+ 5.768208328D-01 6.991767671D-01 0.000000000D-01 9.910312087D-02 1.982062418D-01
+ 3.153281118D-01 4.054218581D-01 5.045249789D-01 6.576843477D-01 0.000000000D-01
+ 8.982948581D-02 1.796589716D-01 2.694884574D-01 3.792800511D-01 5.789011309D-01
+ 6.387874547D-01 0.000000000D-01 1.533929978D-01 3.323514952D-01 5.624409919D-01
+ 7.413994890D-01 0.000000000D-01 8.158589156D-02 1.541066841D-01 2.175623775D-01
+ 2.900831699D-01 3.535388634D-01 4.079294578D-01 4.804502502D-01 5.620361418D-01
+ 0.000000000D-01 9.899678265D-02 1.759942803D-01 2.419921354D-01 3.519885604D-01
+ 4.399857008D-01 5.059835559D-01 5.719814110D-01 0.000000000D-01 1.033139996D-01
+ 3.357704987D-01 4.390844985D-01 5.165699983D-01 6.457124976D-01 0.000000000D-01
+ 4.072948094D-01 4.683890308D-01 7.840425079D-01 0.000000000D-01 1.799610739D-01
+ 3.599221477D-01 5.655919464D-01 7.198442957D-01 0.000000000D-01 6.869350881D-02
+ 1.275736592D-01 1.864538096D-01 2.944007520D-01 4.121610528D-01 5.299213536D-01
+ 6.378682959D-01 0.000000000D-01 8.787495500D-02 2.196873875D-01 3.075623425D-01
+ 4.393747750D-01 5.272497300D-01 6.151246850D-01 0.000000000D-01 3.475764997D-02
+ 8.689412492D-02 1.216517749D-01 1.650988373D-01 2.172353124D-01 2.606823748D-01
+ 3.128188497D-01 3.562659121D-01 3.997129747D-01 4.518494496D-01 4.952965120D-01
+ 0.000000000D-01 2.202921070D-02 5.287010570D-02 7.489931640D-02 1.586103171D-01
+ 1.762336857D-01 1.938570542D-01 2.158862650D-01 2.335096335D-01 2.599446863D-01
+ 2.819738971D-01 2.951914235D-01 3.128147920D-01 3.524673713D-01 3.965257928D-01
+ 4.273666878D-01 0.000000000D-01 8.435590263D-02 1.096626734D-01 1.518406247D-01
+ 2.108897566D-01 2.783744787D-01 3.374236106D-01 3.542947910D-01 3.964727423D-01
+ 4.470862838D-01 4.892642353D-01 0.000000000D-01 1.355815361D-01 2.982793795D-01
+ 3.253956868D-01 4.067446084D-01 5.152098374D-01 5.965587591D-01 0.000000000D-01
+ 2.349569647D-02 4.699139293D-02 7.048708940D-02 8.810886175D-02 1.057306341D-01
+ 1.233524064D-01 1.820916477D-01 2.055873440D-01 2.584526611D-01 2.995701299D-01
+ 3.465615228D-01 4.111746882D-01 4.464182329D-01 4.875357016D-01 0.000000000D-01
+ 9.849390487D-02 1.969878097D-01 4.221167351D-01 4.643284086D-01 5.065400822D-01
+ 5.487517557D-01 0.000000000D-01 5.914179102D-02 8.448827288D-02 1.858742003D-01
+ 2.027718549D-01 2.281183368D-01 2.872601278D-01 3.126066097D-01 3.464019187D-01
+ 3.801972279D-01 4.393390190D-01 4.731343280D-01 0.000000000D-01 6.561055865D-02
+ 1.211271852D-01 1.867377439D-01 2.271134723D-01 2.876770648D-01 3.280527932D-01
+ 3.886163858D-01 4.088042501D-01 4.239451482D-01 4.542269445D-01 0.000000000D-01
+ 1.873913756D-01 2.576631415D-01 4.372465430D-01 5.543661528D-01 6.324458926D-01
+ 0.000000000D-01 6.758707444D-02 1.577031737D-01 3.905030968D-01 4.731095211D-01
+ 5.181675707D-01 5.707352953D-01 0.000000000D-01 3.268820531D-02 8.172051326D-02
+ 2.206453858D-01 3.595702582D-01 5.556994900D-01 7.109684653D-01 0.000000000D-01
+ 3.059464641D-01 5.669008010D-01 7.648661601D-01 0.000000000D-01 1.169413461D-01
+ 1.846442308D-01 3.077403845D-01 3.077403845D-01 4.246817307D-01 7.631961538D-01
+ 0.000000000D-01 1.660442262D-01 2.609266412D-01 3.320884525D-01 4.032502637D-01
+ 7.946402254D-01 0.000000000D-01 1.489682437D-01 2.085555412D-01 2.482804062D-01
+ 3.078677037D-01 3.873174336D-01 4.270422987D-01 4.568359474D-01 4.866295961D-01
+ 0.000000000D-01 4.242852836D-02 1.272855851D-01 1.803212455D-01 3.076068305D-01
+ 4.561066798D-01 5.303566043D-01 6.046065290D-01 0.000000000D-01 1.904774684D-01
+ 9.816915678D-01 0.000000000D-01 3.178806776D-01 3.866116348D-01 5.584390280D-01
+ 6.615354639D-01 0.000000000D-01 8.192319206D-02 1.536059851D-01 3.481735664D-01
+ 4.198563593D-01 4.198563593D-01 4.608179554D-01 5.325007485D-01 0.000000000D-01
+ 5.060064684D-02 1.301159490D-01 1.951739235D-01 2.963752171D-01 2.987847717D-01
+ 3.614331916D-01 4.048051746D-01 4.554058215D-01 5.132351321D-01 0.000000000D-01
+ 5.346471974D-02 8.401598814D-02 1.680319763D-01 2.062210618D-01 2.444101473D-01
+ 3.895286723D-01 4.353555749D-01 4.735446604D-01 5.422850143D-01 0.000000000D-01
+ 4.856546194D-02 9.713092386D-02 1.595722321D-01 2.150756172D-01 3.191444642D-01
+ 3.815857724D-01 4.093374648D-01 4.648408500D-01 5.342200812D-01 0.000000000D-01
+ 5.028089891D-02 7.262796510D-02 1.173220975D-01 1.508426967D-01 1.564294633D-01
+ 2.346441949D-01 4.078339579D-01 4.134207243D-01 4.413545572D-01 5.866104873D-01
+ 0.000000000D-01 6.750954695D-02 1.012643204D-01 1.462706851D-01 3.037929613D-01
+ 4.275604639D-01 5.400763756D-01 6.300891048D-01 0.000000000D-01 7.413919059D-03
+ 7.413919059D-02 8.155310964D-02 1.334505430D-01 1.779340574D-01 1.853479765D-01
+ 2.298314909D-01 3.781098720D-01 3.855237911D-01 4.744908198D-01 5.782856866D-01
+ 0.000000000D-01 1.595654391D-01 2.765800943D-01 2.872177903D-01 3.084931821D-01
+ 3.616816620D-01 3.723193577D-01 4.361455334D-01 5.106094050D-01 0.000000000D-01
+ 4.856429312D-01 8.741572761D-01 0.000000000D-01 6.420676722D-01 7.666479666D-01
+ 0.000000000D-01 3.224129402D-02 9.994801146D-01 0.000000000D-01 9.572336866D-03
+ 6.700635806D-02 1.148680424D-01 1.196542109D-01 1.818744004D-01 2.632392639D-01
+ 2.919562745D-01 3.733211378D-01 4.163966537D-01 4.738306749D-01 4.929753487D-01
+ 0.000000000D-01 1.216035801D-01 2.052060414D-01 2.204064888D-01 2.280067126D-01
+ 4.636136491D-01 5.168152152D-01 6.004176766D-01 0.000000000D-01 4.178357576D-02
+ 7.834420456D-02 2.193637728D-01 2.715932425D-01 3.081538712D-01 3.499374471D-01
+ 4.126128107D-01 4.752881744D-01 5.066258562D-01 0.000000000D-01 4.262319423D-02
+ 1.385253812D-01 1.438532805D-01 1.491811799D-01 1.971322734D-01 2.450833669D-01
+ 2.983623596D-01 3.090181582D-01 3.143460574D-01 3.782808488D-01 4.368877409D-01
+ 4.688551366D-01 0.000000000D-01 3.619241652D-01 5.289660877D-01 7.675974056D-01
+ 0.000000000D-01 4.431072934D-02 5.317287520D-02 1.285011150D-01 2.038293550D-01
+ 3.544858346D-01 3.987965640D-01 4.032276370D-01 4.652626580D-01 5.228666062D-01
+ 0.000000000D-01 2.275549954D-01 3.185769934D-01 4.551099906D-01 5.279275892D-01
+ 6.007451876D-01 0.000000000D-01 9.489205577D-02 1.581534263D-01 2.530454821D-01
+ 3.637528805D-01 4.902756216D-01 7.275057611D-01 0.000000000D-01 3.580968930D-02
+ 1.566673907D-01 1.835246576D-01 2.059057135D-01 2.372391916D-01 2.730488809D-01
+ 2.864775144D-01 3.133347814D-01 3.401920484D-01 3.625731042D-01 3.939065823D-01
+ 4.297162716D-01 0.000000000D-01 1.214178641D-01 2.124812623D-01 2.124812623D-01
+ 2.807788109D-01 3.263105099D-01 3.718422090D-01 3.946080585D-01 4.325511410D-01
+ 4.780828400D-01 0.000000000D-01 5.665288227D-01 8.240419240D-01 0.000000000D-01
+ 3.332510593D-01 5.332016949D-01 7.775858050D-01 0.000000000D-01 2.823507214D-02
+ 5.647014430D-02 1.185873030D-01 1.185873030D-01 1.581164041D-01 1.863514762D-01
+ 2.202335627D-01 2.484686348D-01 3.501148946D-01 3.783499668D-01 3.783499668D-01
+ 4.178790677D-01 4.630551832D-01 0.000000000D-01 7.529173245D-02 1.129375987D-01
+ 1.505834649D-01 1.819550200D-01 2.133265753D-01 2.886183078D-01 3.199898629D-01
+ 3.199898629D-01 3.827329733D-01 4.329274616D-01 5.082191940D-01 0.000000000D-01
+ 9.001800540D-02 1.900380114D-01 1.900380114D-01 3.600720216D-01 5.601120335D-01
+ 6.901380414D-01 0.000000000D-01 6.359758617D-03 1.271951723D-02 1.907927585D-02
+ 1.017561379D-01 1.780732413D-01 3.561464825D-01 4.261038274D-01 5.469392410D-01
+ 5.914575513D-01 0.000000000D-01 4.306825524D-02 1.205911147D-01 1.722730210D-01
+ 3.273187398D-01 5.340463650D-01 7.493876414D-01 0.000000000D-01 2.841082343D-01
+ 5.208650961D-01 8.049733303D-01 0.000000000D-01 9.109602720D-02 1.423375425D-01
+ 1.935790578D-01 2.334335697D-01 2.903685867D-01 3.928516173D-01 4.270126275D-01
+ 4.554801360D-01 5.010281496D-01 0.000000000D-01 1.113907987D-01 2.088577476D-01
+ 4.455631948D-01 5.291062939D-01 6.822686424D-01 0.000000000D-01 3.143775103D-01
+ 4.453681395D-01 8.383400271D-01 0.000000000D-01 8.980265103D-02 2.180921525D-01
+ 3.335527037D-01 4.233553548D-01 5.388159061D-01 6.029606568D-01 0.000000000D-01
+ 2.248397709D-01 5.339944560D-01 8.150441694D-01 0.000000000D-01 3.922888546D-02
+ 1.176866564D-01 2.059516486D-01 2.647949768D-01 3.236383050D-01 4.413249613D-01
+ 5.099755109D-01 5.590116177D-01 0.000000000D-01 2.233567781D-02 7.594130456D-02
+ 1.027441179D-01 4.109764718D-01 5.449905385D-01 7.192088255D-01 0.000000000D-01
+ 7.364896536D-02 1.620277238D-01 2.209468961D-01 2.798660684D-01 4.418937923D-01
+ 5.302725507D-01 6.039215160D-01 0.000000000D-01 6.748712333D-02 1.012306850D-01
+ 1.518460275D-01 1.518460275D-01 2.193331508D-01 2.868202741D-01 3.374356166D-01
+ 4.049227399D-01 4.892816439D-01 5.398969864D-01 0.000000000D-01 2.336824952D-01
+ 5.257856141D-01 8.178887330D-01 0.000000000D-01 2.537080102D-02 5.708430229D-02
+ 8.245510331D-02 1.141686046D-01 1.141686046D-01 1.458821058D-01 2.093091084D-01
+ 2.177660421D-01 2.230516256D-01 2.537080102D-01 2.706218775D-01 2.759074611D-01
+ 2.981069119D-01 3.298204133D-01 3.298204133D-01 3.551912142D-01 3.932474157D-01
+ 0.000000000D-01 2.707638068D-01 6.052367445D-01 7.485822893D-01 0.000000000D-01
+ 1.728946892D-01 3.890130508D-01 5.835195762D-01 6.915787568D-01 0.000000000D-01
+ 5.184189690D-02 1.110897791D-01 1.555256907D-01 1.999616023D-01 4.221411604D-01
+ 4.517651016D-01 4.962010132D-01 5.406369248D-01 0.000000000D-01 4.280863448D-01
+ 9.037378387D-01 0.000000000D-01 1.800026719D-01 4.275063458D-01 5.737585168D-01
+ 6.750100197D-01 0.000000000D-01 4.472135955D-01 8.944271910D-01 0.000000000D-01
+ 4.190581775D-01 9.079593846D-01 0.000000000D-01 8.919733354D-03 3.004328371D-02
+ 3.859811887D-02 5.872833529D-02 6.744534743D-02 8.879189112D-02 9.536005840D-02
+ 9.730618202D-02 9.801570628D-02 9.872523051D-02 9.977938084D-02 1.004280887D-01
+ 1.017255045D-01 1.039351657D-01 1.159362615D-01 1.167674184D-01 1.177607524D-01
+ 1.190987124D-01 1.199095972D-01 1.207002100D-01 1.217746324D-01 1.230315039D-01
+ 1.238221166D-01 1.245316409D-01 1.256263354D-01 1.261736827D-01 1.270251118D-01
+ 1.277143639D-01 1.283630718D-01 1.295793991D-01 1.303700118D-01 1.311606245D-01
+ 1.456146470D-01 1.461822664D-01 1.468715185D-01 1.473175052D-01 1.479662131D-01
+ 1.489798191D-01 1.496690712D-01 1.504596840D-01 1.510475755D-01 1.523449912D-01
+ 1.525679846D-01 1.527909779D-01 1.528923385D-01 1.539464888D-01 1.555479864D-01
+ 1.561358779D-01 1.581225458D-01 1.589334306D-01 1.594807779D-01 1.751105834D-01
+ 1.757187470D-01 1.762052780D-01 1.770364349D-01 1.774824216D-01 1.778878640D-01
+ 0.000000000D-01 2.954535174D-03 3.770431918D-03 6.551898087D-03 1.767776276D-02
+ 2.087953938D-02 2.441509193D-02 3.552859452D-02 3.869328492D-02 4.105444065D-02
+ 5.346596080D-02 5.680372020D-02 5.995604853D-02 7.108191321D-02 7.349251721D-02
+ 7.788105272D-02 8.919234848D-02 9.203562501D-02 9.554645341D-02 1.069319216D-01
+ 1.098370085D-01 1.134220093D-01 1.249310982D-01 1.273911505D-01 1.306670996D-01
+ 1.426583093D-01 1.602742617D-01 1.667272632D-01 1.780756451D-01 1.838858189D-01
+ 3.560523938D-01 2.012545300D-01 2.162744473D-01 2.181287579D-01 2.327036407D-01
+ 2.365482450D-01 2.496520413D-01 2.543496285D-01 2.668847694D-01 2.698640287D-01
+ 2.737580813D-01 0.000000000D-01 1.761393420D-04 3.997008144D-04 5.690655663D-04
+ 7.248811381D-04 8.806967098D-04 1.043286871D-03 1.858337804D-01 1.860302434D-01
+ 1.884690958D-01 1.945323540D-01 1.969847556D-01 1.977028621D-01 2.039693579D-01
+ 2.077360300D-01 2.138263865D-01 2.171527102D-01 2.233921078D-01 2.274229888D-01
+ 2.330797715D-01 2.367922469D-01 2.446033492D-01 2.473944803D-01 2.525363943D-01
+ 2.565605008D-01 2.624069720D-01 2.654352138D-01 0.000000000D-01 1.944753000D-03
+ 4.682512076D-03 5.513280349D-03 9.025164405D-03 3.071954495D-02 3.432583450D-02
+ 3.715799907D-02 3.789436185D-02 5.315028829D-02 5.390553218D-02 6.483768738D-02
+ 8.077333331D-02 9.242674643D-01 9.178101291D-02 9.244185132D-02 1.077355400D-01
+ 1.087928814D-01 1.175159482D-01 1.181390245D-01 1.348110332D-01 1.365103319D-01
+ 1.385872526D-01 0.000000000D-01 1.126735788D-03 1.859114050D-02 8.185735502D-02
+ 9.929359134D-02 1.644189199D-01 1.815453038D-01 2.437692877D-01 2.508677232D-01
+ 2.612618608D-01 3.321053735D-01 4.166105575D-02 5.782971430D-02 1.225606854D-01
+ 1.398560797D-01 2.044180403D-01 2.058546285D-01 2.180797118D-01 2.855148487D-01
+ 2.988948362D-01 3.667524990D-01 3.813718958D-01 0.000000000D-01 2.563399020D-03
+ 5.872893038D-02 6.237604281D-02 6.879496068D-02 1.190625902D-01 1.296496366D-01
+ 1.783958993D-01 2.376666863D-01 2.489623145D-01 2.983963184D-01 2.984796810D-01
+ 2.985630436D-01 2.986464061D-01 2.987922906D-01 2.928110263D-02 3.067742566D-02
+ 3.586674564D-02 3.934713292D-02 9.365784710D-02 9.899305157D-02 1.481769677D-01
+ 1.496983346D-01 1.561589338D-01 1.598268868D-01 2.078020458D-01 2.197645745D-01
+ 2.735125914D-01 2.777015605D-01 0.000000000D-01 2.336156932D-03 5.436874315D-03
+ 8.346451586D-03 9.365865519D-03 2.879844364D-02 3.561577431D-02 3.975714343D-02
+ 5.974190408D-02 6.137721393D-02 7.004223239D-02 7.108288412D-02 9.026060874D-02
+ 9.091898025D-02 9.181096742D-02 9.321266160D-02 9.344627730D-02 9.563376967D-02
+ 9.735403069D-02 1.000299923D-01 1.004759859D-01 1.033855632D-01 1.043837393D-01
+ 1.231367081D-01 1.315256353D-01 1.542925465D-01 1.553756738D-01 1.628938515D-01
+ 1.640194544D-01 1.821990029D-01 1.835157459D-01 1.973203096D-01 1.980636323D-01
+ 2.135035058D-01 2.150538645D-01 2.206606411D-01 2.228481335D-01 2.430027965D-01
+ 2.500749807D-01 2.536854050D-01 2.545561544D-01 2.757727069D-01 2.835457382D-01
+ 0.000000000D-01 2.274330020D-04 2.618925477D-04 4.548660038D-04 5.031093679D-04
+ 6.271637325D-04 1.040678281D-03 1.082029737D-03 1.564463377D-03 1.605814832D-03
+ 1.785004470D-03 1.819464015D-03 2.033113199D-03 2.081356563D-03 2.329465292D-03
+ 2.363924838D-03 2.501763021D-03 2.563790203D-03 2.742979842D-03 2.784331297D-03
+ 3.025548116D-03 3.053115753D-03 3.190953936D-03 3.232305391D-03 3.390819302D-03
+ 3.425278847D-03 3.542441302D-03 3.563117030D-03 3.659603758D-03 3.687171395D-03
+ 3.887036761D-03 3.928388215D-03 4.624471039D-03 5.313661954D-03 9.111103896D-03
+ 9.255833988D-03 9.310969261D-03 9.428131716D-03 9.441915535D-03 9.565969899D-03
+ 9.607321355D-03 9.772727173D-03 9.793402902D-03 9.945024899D-03 9.979484453D-03
+ 1.014489027D-02 1.017934981D-02 1.025516081D-02 1.028962036D-02 1.055151290D-02
+ 1.057908054D-02 1.068935109D-02 1.071002682D-02 1.088232455D-02 1.091678409D-02
+ 1.095124364D-02 1.122692000D-02 1.125448764D-02 1.140610965D-02 1.144056919D-02
+ 1.160597500D-02 1.163354264D-02 1.174381319D-02 1.177138083D-02 1.190921901D-02
+ 1.192989473D-02 1.225381447D-02 1.228827401D-02 1.239854456D-02 1.242611219D-02
+ 1.261908565D-02 1.263286947D-02 1.275003192D-02 1.277070766D-02 1.299124875D-02
+ 1.301192447D-02 1.318422220D-02 1.320489793D-02 1.337719566D-02 1.339787139D-02
+ 1.353570957D-02 1.356327721D-02 1.370111539D-02 1.374246684D-02 1.390787266D-02
+ 1.479003704D-02 1.523111922D-02 1.893896634D-02 1.924910225D-02 1.931802135D-02
+ 1.933869707D-02 1.952477862D-02 1.955923816D-02 1.962815726D-02 1.964883298D-02
+ 2.006234754D-02 2.008302326D-02 2.018640190D-02 2.021396954D-02 2.024842908D-02
+ 2.026910481D-02 2.040694299D-02 2.042761872D-02 2.051721354D-02 2.053788926D-02
+ 2.071707890D-02 2.074464654D-02 2.093761999D-02 2.095829573D-02 2.128910736D-02
+ 2.130978309D-02 2.147518891D-02 2.149586463D-02 2.167505428D-02 2.169573000D-02
+ 2.179221673D-02 2.181289246D-02 2.194383873D-02 2.197140637D-02 2.201964973D-02
+ 2.204032546D-02 2.214370410D-02 2.217127174D-02 2.225397464D-02 2.228154228D-02
+ 2.235046137D-02 2.239870473D-02 2.267438110D-02 2.301208465D-02 2.303276037D-02
+ 2.316370665D-02 2.318438238D-02 2.334978820D-02 2.337046392D-02 2.359789693D-02
+ 2.373573511D-02 2.375641084D-02 2.392870857D-02 2.394938429D-02 2.405965484D-02
+ 2.483154866D-02 2.545182049D-02 2.913899188D-02 2.942156016D-02 2.948358734D-02
+ 2.951115498D-02 2.960074980D-02 2.962142552D-02 2.970412844D-02 2.972480416D-02
+ 2.984196661D-02 2.986264235D-02 2.990399379D-02 2.993156143D-02 3.006250771D-02
+ 3.008318344D-02 3.018656208D-02 3.021412971D-02 3.038642744D-02 3.040710317D-02
+ 3.062075235D-02 3.063453617D-02 3.676213259D-01 3.678418670D-01 3.679797052D-01
+ 3.681313272D-01 3.682898411D-01 3.684621388D-01 3.686137608D-01 0.000000000D-01
+ 2.706870341D-05 5.413740683D-05 7.970229339D-05 1.052671799D-04 1.353435171D-04
+ 2.446559644D-02 2.600700871D-02 2.812438285D-02 2.815897063D-02 2.820258132D-02
+ 2.823416147D-02 2.826123017D-02 2.828679507D-02 2.831386377D-02 3.037108523D-02
+ 3.100268832D-02 3.705705497D-02 3.710968857D-02 3.715179543D-02 3.719540612D-02
+ 3.722698627D-02 3.725405498D-02 3.728713895D-02 3.738488705D-02 3.743000155D-02
+ 3.746910080D-02 3.751571912D-02 3.754880308D-02 3.760143668D-02 3.762399394D-02
+ 3.894133749D-02 3.896840620D-02 3.906465047D-02 3.911878787D-02 3.919097110D-02
+ 3.927067338D-02 3.929473445D-02 3.939549018D-02 3.945564286D-02 3.950978027D-02
+ 3.953835278D-02 3.960752836D-02 3.967219249D-02 3.970828410D-02 3.974587952D-02
+ 3.978798638D-02 3.984813906D-02 4.114142155D-02 4.116698645D-02 4.119405515D-02
+ 4.125270400D-02 4.185423075D-02 4.318962010D-02 4.372347509D-02 4.383626137D-02
+ 4.395957434D-02 4.398664305D-02 4.411145985D-02 4.426635299D-02 4.546188738D-02
+ 4.574310113D-02 4.578370419D-02 4.582280343D-02 4.585287977D-02 4.589949808D-02
+ 4.599875001D-02 4.603484160D-02 4.608897900D-02 4.612807825D-02 4.617469658D-02
+ 4.621529963D-02 4.625590269D-02 4.765595616D-02 4.778378060D-02 4.783641420D-02
+ 4.792814703D-02 4.806649818D-02 4.810710124D-02 4.819883406D-02 4.823492567D-02
+ 4.837327681D-02 4.846500965D-02 4.981994863D-02 4.992822344D-02 5.002897918D-02
+ 5.013725399D-02 5.021695627D-02 5.026357460D-02 5.034327690D-02 5.199897926D-02
+ 5.207567392D-02 5.214184185D-02 5.218996399D-02 5.226064338D-02 5.235087240D-02
+ 5.244862050D-02 5.249975027D-02 5.252982661D-02 5.256892583D-02 5.261704799D-02
+ 5.265765105D-02 5.267569684D-02 5.273584952D-02 5.278096402D-02 5.280502509D-02
+ 5.291931517D-02 5.411033812D-02 5.420808622D-02 5.431936867D-02 5.439907095D-02
+ 5.451035340D-02 5.456900227D-02 5.467426945D-02 5.471487251D-02 5.483668167D-02
+ 5.491187251D-02 5.494044502D-02 5.634049852D-02 5.642170463D-02 5.656005578D-02
+ 5.659915503D-02 5.662923135D-02 5.666833059D-02 5.680367411D-02 5.685781152D-02
+ 5.693300236D-02 5.699917031D-02 5.703526190D-02 5.708188022D-02 5.848494136D-02
+ 5.853155969D-02 5.857517038D-02 5.861126197D-02 5.866690320D-02 5.875262076D-02
+ 5.880675816D-02 5.884736122D-02 5.888194900D-02 5.891202534D-02 5.893608641D-02
+ 5.897969710D-02 5.902030015D-02 5.912255970D-02 5.920376581D-02 5.925339177D-02
+ 5.934362079D-02 6.059178878D-02 6.063840709D-02 6.071359795D-02 6.076172008D-02
+ 6.080232314D-02 6.084142236D-02 6.090458268D-02 6.101736894D-02 6.108052925D-02
+ 6.110609415D-02 6.114519337D-02 6.122038421D-02 6.127903308D-02 6.133166666D-02
+ 6.146249873D-02 6.168957508D-02 6.281142246D-02 6.283698734D-02 6.286405604D-02
+ 6.292420872D-02 6.297533849D-02 6.301594154D-02 6.308361330D-02 6.312722399D-02
+ 6.316331561D-02 6.320692628D-02 6.325655224D-02 6.331820873D-02 6.338588048D-02
+ 6.342347590D-02 6.344603316D-02 6.347911714D-02 6.353175072D-02 6.359641486D-02
+ 6.513181185D-02 6.517692637D-02 6.521452179D-02 6.525813248D-02 6.531226989D-02
+ 6.535588058D-02 6.540851416D-02 6.545513249D-02 6.550024699D-02 6.558446073D-02
+ 6.563408670D-02 6.567168211D-02 6.572882716D-02 6.710481957D-02 6.713339210D-02
+ 6.717700279D-02 6.721159057D-02 6.724467455D-02 6.728226997D-02 6.732136919D-02
+ 6.736949135D-02 6.740859058D-02 6.756047608D-02 6.759656769D-02 6.767927761D-02
+ 6.772138449D-02 6.777702571D-02 6.926881203D-02 6.939362883D-02 6.941768990D-02
+ 6.944475860D-02 6.947182731D-02 6.971093420D-02 6.974251434D-02 6.977108685D-02
+ 6.979214031D-02 6.985379679D-02 6.988988840D-02 6.996357541D-02 6.998914031D-02
+ 7.003124717D-02 7.149145335D-02 7.155160603D-02 7.160875107D-02 7.165236174D-02
+ 7.172153733D-02 7.176965946D-02 7.179221672D-02 7.184184266D-02 7.188846099D-02
+ 7.191853733D-02 7.199372817D-02 7.206440756D-02 7.208395719D-02 7.212756788D-02
+ 7.218922437D-02 7.221478926D-02 7.225539232D-02 7.231704880D-02 7.239223964D-02
+ 7.247194194D-02 7.356972824D-02 7.366146106D-02 7.371559847D-02 7.377274351D-02
+ 7.382387329D-02 7.387199542D-02 7.390959086D-02 7.393966718D-02 7.397425498D-02
+ 7.402989620D-02 7.406147634D-02 7.410959850D-02 7.413666720D-02 7.417727026D-02
+ 7.421185804D-02 7.585252223D-02 7.592169780D-02 7.596981993D-02 7.600140010D-02
+ 7.603147644D-02 7.606606423D-02 7.610065201D-02 7.615779705D-02 7.626907950D-02
+ 7.630065965D-02 7.632020927D-02 7.635479705D-02 7.638336959D-02 7.641946118D-02
+ 7.646156806D-02 8.230088892D-02 8.450698825D-02 8.513859131D-02 8.662436236D-02
+ 9.095535491D-02 9.098843889D-02 9.101400378D-02 9.104107248D-02 9.106362972D-02
+ 9.108769079D-02 9.111776713D-02 0.000000000D-01 6.544148519D-04 5.462182629D-02
+ 8.293617554D-02 1.190162477D-01 1.491193309D-01 1.497737457D-01 1.820582118D-01
+ 1.838033180D-01 1.844577328D-01 1.886023602D-01 1.917871792D-01 1.927469877D-01
+ 1.951465088D-01 1.955827853D-01 1.964553384D-01 1.975460299D-01 1.984185830D-01
+ 1.995092744D-01 2.003818276D-01 2.012543807D-01 2.024759551D-01 2.049627315D-01
+ 2.489394096D-01 2.512080477D-01 2.553526751D-01 2.579703345D-01 2.592791642D-01
+ 0.000000000D-01 5.260670577D-04 1.092600812D-03 1.477034431D-03 1.861468050D-03
+ 2.286368366D-03 2.650568636D-03 1.710324938D-01 1.800363338D-01 1.957374121D-01
+ 1.978619137D-01 2.071490206D-01 2.261683681D-01 2.574288913D-01 2.654210639D-01
+ 2.952854860D-01 3.136775997D-01 3.142846003D-01 3.197476044D-01 3.427529214D-01
+ 3.549536305D-01 0.000000000D-01 4.708254894D-04 1.000504165D-03 2.569922463D-03
+ 3.021130222D-03 3.413484797D-03 3.923545745D-03 4.257047131D-03 4.727872622D-03
+ 5.139844924D-03 6.003024989D-03 6.024604491D-02 6.132501998D-02 8.153128057D-02
+ 8.486629446D-02 8.594526953D-02 9.202676544D-02 9.310574051D-02 9.634266576D-02
+ 9.732355219D-02 1.081133030D-01 1.130177352D-01 1.139986216D-01 1.192954084D-01
+ 1.225323336D-01 1.234151314D-01 1.385207825D-01 1.409729986D-01 1.418557964D-01
+ 1.477411150D-01 1.489181787D-01 1.504875970D-01 1.514684835D-01 1.541168769D-01
+ 1.550977633D-01 1.669664892D-01 1.701053258D-01 1.726556305D-01 1.755002011D-01
+ 1.765791762D-01 1.806008106D-01 1.816797857D-01 1.927638024D-01 1.954121958D-01
+ 1.963930822D-01 1.999242734D-01 2.014936917D-01 2.091446059D-01 2.227789274D-01
+ 2.238579025D-01 2.282718914D-01 2.291546892D-01 0.000000000D-01 5.256277727D-03
+ 9.940548759D-03 1.162951447D-02 3.221402562D-02 3.344306704D-02 3.353968979D-02
+ 3.361698799D-02 3.389526152D-02 3.398028954D-02 3.410783157D-02 3.419672450D-02
+ 3.427015780D-02 3.435132091D-02 3.450591731D-02 3.461413479D-02 3.473781192D-02
+ 3.767127868D-02 3.777176634D-02 3.786838909D-02 3.791090311D-02 3.801912059D-02
+ 3.816598717D-02 3.831671866D-02 3.839015196D-02 3.846745016D-02 3.850609926D-02
+ 3.873799386D-02 3.898148320D-02 3.910516032D-02 3.941048822D-02 3.958054427D-02
+ 3.976605995D-02 4.005206330D-02 4.017960532D-02 4.028395790D-02 4.039604029D-02
+ 4.063179981D-02 4.333723688D-02 4.360391567D-02 4.367348405D-02 4.378170154D-02
+ 4.389378393D-02 4.400973123D-02 4.416819254D-02 4.427254512D-02 4.438076260D-02
+ 4.446579062D-02 4.456241337D-02 4.465517121D-02 4.473246942D-02 4.483295708D-02
+ 4.493730965D-02 4.499528330D-02 4.506098678D-02 4.519239372D-02 4.526969192D-02
+ 4.874424609D-02 4.882540921D-02 4.897614070D-02 4.903411435D-02 4.908435818D-02
+ 4.918098094D-02 4.929306333D-02 4.934330716D-02 4.942447027D-02 4.950176847D-02
+ 4.960612105D-02 4.979163673D-02 4.995009804D-02 5.009696463D-02 5.019358738D-02
+ 5.033658906D-02 5.039069780D-02 5.050278019D-02 5.062645731D-02 5.077718880D-02
+ 5.087381155D-02 5.097816413D-02 5.105546233D-02 5.113662544D-02 5.127962712D-02
+ 5.138784460D-02 5.152311645D-02 5.159654974D-02 5.166611812D-02 5.176660579D-02
+ 5.437928501D-02 5.446431303D-02 5.454161123D-02 5.461117961D-02 5.468847782D-02
+ 5.478896548D-02 5.492423733D-02 5.502472500D-02 5.523343014D-02 5.531845816D-02
+ 5.558513696D-02 5.570108424D-02 5.584022101D-02 5.605665598D-02 5.612235947D-02
+ 5.640449789D-02 5.659001361D-02 5.681804329D-02 5.993702570D-02 5.996794500D-02
+ 6.014186596D-02 6.023462382D-02 6.033897639D-02 6.042013948D-02 6.052062717D-02
+ 6.061724992D-02 6.069068319D-02 6.077184628D-02 6.088006379D-02 6.098055142D-02
+ 6.118539168D-02 6.125109518D-02 6.143661085D-02 6.173420891D-02 6.183856148D-02
+ 6.193904917D-02 6.544452262D-02 6.551022606D-02 6.557592956D-02 6.566095759D-02
+ 6.586966273D-02 6.595082583D-02 6.615566609D-02 6.626388355D-02 6.635277647D-02
+ 6.642234485D-02 6.649964305D-02 6.663104999D-02 6.672380785D-02 6.680883589D-02
+ 6.695183754D-02 6.696729719D-02 6.711029884D-02 6.740789696D-02 6.748519511D-02
+ 6.759727751D-02 6.770549502D-02 6.786009144D-02 6.800695797D-02 6.808039130D-02
+ 6.821566312D-02 6.830069115D-02 7.095974931D-02 7.104091240D-02 7.118004917D-02
+ 7.119937376D-02 7.134624029D-02 7.143899815D-02 7.151243148D-02 7.206124870D-02
+ 7.236271165D-02 7.252503790D-02 7.260233610D-02 7.287287980D-02 7.321685683D-02
+ 7.331734446D-02 7.350672507D-02 7.357629345D-02 7.364586183D-02 7.390481082D-02
+ 7.660638294D-02 7.677257406D-02 7.692330559D-02 7.704698271D-02 7.720157912D-02
+ 7.733298606D-02 7.759193505D-02 7.766150343D-02 7.773107181D-02 7.783928927D-02
+ 7.801707516D-02 7.810983297D-02 7.821805048D-02 7.829921358D-02 7.840743103D-02
+ 7.846926964D-02 7.857748710D-02 7.867024496D-02 7.885189574D-02 7.888281499D-02
+ 8.230712535D-02 8.236896390D-02 8.259312870D-02 8.282888821D-02 8.309556703D-02
+ 8.315740558D-02 8.341248963D-02 8.344340893D-02 8.345886853D-02 8.377192625D-02
+ 8.391106301D-02 8.403087524D-02 8.416228217D-02 8.427049969D-02 8.440963645D-02
+ 8.449852937D-02 8.461834160D-02 8.469563980D-02 8.476520819D-02 8.483091163D-02
+ 8.491593966D-02 8.771799947D-02 8.783008186D-02 8.790738007D-02 8.806584137D-02
+ 8.819724831D-02 8.823203250D-02 8.836730438D-02 8.850257620D-02 8.864944279D-02
+ 8.880017432D-02 8.899728470D-02 8.907071802D-02 8.914415129D-02 8.929488277D-02
+ 8.959248089D-02 8.970456328D-02 8.990167366D-02 9.011037881D-02 9.031521907D-02
+ 9.037319268D-02 9.042343652D-02 9.054324875D-02 9.326414546D-02 9.333757873D-02
+ 9.356174353D-02 9.363517685D-02 9.374339431D-02 9.489127260D-02 1.067874659D-01
+-1.312793849D-02-1.312793849D-02-1.312793849D-02-1.312793849D-02-1.312793849D-02
+-1.312793849D-02 3.746265373D-01 3.746265373D-01 3.746265373D-01 3.746265373D-01
+ 3.746265373D-01 3.855131204D-01 3.855131204D-01-1.633917464D-02-1.633917464D-02
+-1.633917464D-02-1.633917464D-02 4.662642516D-01 4.662642516D-01 3.220012952D-01
+ 4.798138111D-01 4.798138111D-01-1.424605190D-02-1.424605190D-02-1.424605190D-02
+-1.424605190D-02 4.065336761D-01 4.065336761D-01 2.807514618D-01 2.807514618D-01
+ 2.837049115D-01 2.837049115D-01 4.183474752D-01 4.183474752D-01-3.495698634D-02
+-3.495698634D-02-3.495698634D-02-3.495698634D-02 9.975530244D-01-1.725579903D-02
+-1.725579903D-02-1.725579903D-02-1.725579903D-02-1.725579903D-02 4.924215820D-01
+ 4.924215820D-01 5.067312690D-01 5.067312690D-01-3.495698634D-02-3.495698634D-02
+-3.495698634D-02-3.495698634D-02 9.975530244D-01-2.474858313D-02-2.474858313D-02
+-2.474858313D-02-2.474858313D-02 7.062400550D-01 7.062400550D-01-2.473343873D-02
+-2.473343873D-02-2.473343873D-02-2.473343873D-02-2.473343873D-02-2.473343873D-02
+ 7.058078855D-01 7.058078855D-01-3.495698634D-02-3.495698634D-02-3.495698634D-02
+-3.495698634D-02 9.975530244D-01-2.474858313D-02-2.474858313D-02-2.474858313D-02
+-2.474858313D-02 7.062400550D-01 7.062400550D-01-3.493564733D-02-3.493564733D-02
+-3.493564733D-02-3.493564733D-02-3.493564733D-02 9.969440820D-01-2.474100746D-02
+-2.474100746D-02-2.474100746D-02-2.474100746D-02-2.474100746D-02 7.060238710D-01
+ 7.060238710D-01-2.474858313D-02-2.474858313D-02-2.474858313D-02-2.474858313D-02
+ 7.062400550D-01 7.062400550D-01-2.474100746D-02-2.474100746D-02-2.474100746D-02
+-2.474100746D-02-2.474100746D-02 7.060238710D-01 7.060238710D-01-2.474858313D-02
+-2.474858313D-02-2.474858313D-02-2.474858313D-02 7.062400550D-01 7.062400550D-01
+-2.474100746D-02-2.474100746D-02-2.474100746D-02-2.474100746D-02-2.474100746D-02
+ 7.060238710D-01 7.060238710D-01-2.474858313D-02-2.474858313D-02-2.474858313D-02
+-2.474858313D-02 7.062400550D-01 7.062400550D-01-1.725836868D-02-1.725836868D-02
+-1.725836868D-02-1.725836868D-02 4.924949108D-01 4.924949108D-01 5.068067287D-01
+ 5.068067287D-01-2.404439000D-02-2.404439000D-02-2.404439000D-02-2.404439000D-02
+-2.404439000D-02 7.060840378D-01 7.060840378D-01-2.405134344D-02-2.405134344D-02
+-2.405134344D-02-2.405134344D-02 7.062882314D-01 7.062882314D-01-2.405134344D-02
+-2.405134344D-02-2.405134344D-02-2.405134344D-02 7.062882314D-01 7.062882314D-01
+-1.964541729D-02-1.964541729D-02-1.964541729D-02-1.964541729D-02 5.769044491D-01
+ 5.769044491D-01 5.769044491D-01-2.403744258D-02-2.403744258D-02-2.403744258D-02
+-2.403744258D-02-2.403744258D-02-2.403744258D-02 7.058800210D-01 7.058800210D-01
+-2.405134344D-02-2.405134344D-02-2.405134344D-02-2.405134344D-02 7.062882314D-01
+ 7.062882314D-01-2.405134344D-02-2.405134344D-02-2.405134344D-02-2.405134344D-02
+ 7.062882314D-01 7.062882314D-01-2.405134344D-02-2.405134344D-02-2.405134344D-02
+-2.405134344D-02 7.062882314D-01 7.062882314D-01-2.405134344D-02-2.405134344D-02
+-2.405134344D-02-2.405134344D-02 7.062882314D-01 7.062882314D-01-1.366752890D-02
+-1.366752890D-02-1.366752890D-02-1.366752890D-02 3.900246049D-01 3.900246049D-01
+ 3.900246049D-01 2.693503255D-01 2.721838376D-01 2.721838376D-01 4.013586533D-01
+ 4.013586533D-01-2.894762782D-01-2.894762782D-01-2.894762782D-01-2.894762782D-01
+-2.894762782D-01-2.894762782D-01-2.894762782D-01-2.894762782D-01 4.059728286D-01
+ 4.059728286D-01-1.725836868D-02-1.725836868D-02-1.725836868D-02-1.725836868D-02
+ 4.924949108D-01 4.924949108D-01 5.068067287D-01 5.068067287D-01-1.186811192D-02
+-1.186811192D-02-1.186811192D-02-1.186811192D-02 3.024921209D-01 3.024921209D-01
+ 3.386753889D-01 3.386753889D-01 3.386753889D-01 3.386753889D-01 3.386753889D-01
+ 3.485172379D-01 3.485172379D-01-1.478841508D-02-1.478841508D-02-1.478841508D-02
+-1.478841508D-02-1.478841508D-02-1.478841508D-02 4.220108692D-01 2.914399849D-01
+ 2.914399849D-01 2.914399849D-01 4.342744329D-01 4.342744329D-01 4.342744329D-01
+-1.562584539D-02-1.562584539D-02-1.562584539D-02 4.459082708D-01 3.079434896D-01
+ 3.079434896D-01 3.079434896D-01 3.079434896D-01 4.588662890D-01 4.588662890D-01
+-1.234547404D-02-1.234547404D-02-1.234547404D-02-1.234547404D-02-1.234547404D-02
+-1.234547404D-02-1.234547404D-02 3.522976737D-01 3.522976737D-01 2.432961712D-01
+ 2.432961712D-01 2.432961712D-01 2.432961712D-01 2.432961712D-01 2.458555988D-01
+ 3.625353839D-01 3.625353839D-01 3.625353839D-01-2.405134344D-02-2.405134344D-02
+-2.405134344D-02-2.405134344D-02 7.062882314D-01 7.062882314D-01-2.405134344D-02
+-2.405134344D-02-2.405134344D-02-2.405134344D-02 7.062882314D-01 7.062882314D-01
+-2.405134344D-02-2.405134344D-02-2.405134344D-02-2.405134344D-02 7.062882314D-01
+ 7.062882314D-01-1.747427000D-02-1.747427000D-02-1.747427000D-02-1.747427000D-02
+ 4.858699462D-01 4.858699462D-01 5.131468555D-01 5.131468555D-01-1.336991243D-02
+-1.336991243D-02-1.336991243D-02-1.336991243D-02 3.717487845D-01 3.717487845D-01
+ 3.717487845D-01 3.717487845D-01 3.717487845D-01 3.926188917D-01 3.926188917D-01
+-1.123907943D-02-1.123907943D-02-1.123907943D-02-1.123907943D-02-1.123907943D-02
+-1.123907943D-02-1.123907943D-02 3.125012328D-01 3.125012328D-01 3.125012328D-01
+ 3.125012328D-01 3.125012328D-01 3.125012328D-01 3.125012328D-01 3.125012328D-01
+ 3.300451616D-01 3.300451616D-01-1.440205953D-02-1.440205953D-02-1.440205953D-02
+-1.440205953D-02 4.004475088D-01 4.004475088D-01 4.004475088D-01 4.004475088D-01
+ 4.229287725D-01 4.229287725D-01-2.403744258D-02-2.403744258D-02-2.403744258D-02
+-2.403744258D-02-2.403744258D-02-2.403744258D-02 7.058800210D-01 7.058800210D-01
+-2.404439000D-02-2.404439000D-02-2.404439000D-02-2.404439000D-02-2.404439000D-02
+ 7.060840378D-01 7.060840378D-01-2.406526843D-02-2.406526843D-02 7.066971507D-01
+ 7.066971507D-01-2.405134344D-02-2.405134344D-02-2.405134344D-02-2.405134344D-02
+ 7.062882314D-01 7.062882314D-01-1.859570884D-02-1.859570884D-02 3.664715302D-01
+ 3.664715302D-01 3.664715302D-01 5.460788643D-01 5.460788643D-01-2.407224001D-02
+ 7.069018770D-01 7.069018770D-01-2.405830292D-02-2.405830292D-02-2.405830292D-02
+ 7.064926025D-01 7.064926025D-01-2.406526843D-02-2.406526843D-02 7.066971507D-01
+ 7.066971507D-01-2.407224001D-02 7.069018770D-01 7.069018770D-01-1.964920939D-02
+-1.964920939D-02-1.964920939D-02 5.770158073D-01 5.770158073D-01 5.770158073D-01
+-2.405134344D-02-2.405134344D-02-2.405134344D-02-2.405134344D-02 7.062882314D-01
+ 7.062882314D-01-1.039521342D-02-1.039521342D-02-1.039521342D-02-1.039521342D-02
+ 2.649511712D-01 2.649511712D-01 2.890376413D-01 2.890376413D-01 2.890376413D-01
+ 2.890376413D-01 2.890376413D-01 2.890376413D-01 2.890376413D-01 2.966438950D-01
+ 3.052643159D-01 3.052643159D-01-1.124052294D-02-1.124052294D-02-1.124052294D-02
+ 1.576414801D-02 3.125413694D-01 3.125413694D-01 3.125413694D-01 3.125413694D-01
+ 3.125413694D-01 3.125413694D-01 3.125413694D-01 3.125413694D-01 3.300875516D-01
+ 3.300875516D-01-1.209258082D-02-1.209258082D-02-1.209258082D-02-1.209258082D-02
+ 3.082133402D-01 3.362327348D-01 3.362327348D-01 3.362327348D-01 3.362327348D-01
+ 3.362327348D-01 3.362327348D-01 3.362327348D-01 3.362327348D-01-1.198572051D-02
+-1.198572051D-02-1.198572051D-02 3.332614969D-01 3.332614969D-01 3.332614969D-01
+ 3.332614969D-01 3.332614969D-01 3.332614969D-01 3.332614969D-01 3.332614969D-01
+ 3.332614969D-01-1.353577320D-02-1.353577320D-02-1.353577320D-02-1.353577320D-02
+-1.353577320D-02 3.763605229D-01 3.763605229D-01 3.763605229D-01 3.763605229D-01
+ 3.763605229D-01 3.763605229D-01 3.862647472D-01-6.665381564D-03-6.665381564D-03
+-6.665381564D-03-6.665381564D-03-6.665381564D-03-6.665381564D-03 1.853301215D-01
+ 1.853301215D-01 1.853301215D-01 1.853301215D-01 1.853301215D-01 1.853301215D-01
+ 1.853301215D-01 1.853301215D-01 1.853301215D-01 1.853301215D-01 1.853301215D-01
+ 1.853301215D-01 1.853301215D-01 1.853301215D-01 1.853301215D-01 1.853301215D-01
+ 1.853301215D-01 1.853301215D-01 1.853301215D-01 1.853301215D-01 1.853301215D-01
+ 1.853301215D-01 1.853301215D-01 1.853301215D-01 1.853301215D-01 1.853301215D-01
+ 1.853301215D-01 1.902072299D-01 1.902072299D-01-1.042624355D-02-1.042624355D-02
+-1.042624355D-02-1.042624355D-02 2.657420610D-01 2.899004302D-01 2.899004302D-01
+ 2.899004302D-01 2.899004302D-01 2.899004302D-01 2.899004302D-01 2.899004302D-01
+ 2.899004302D-01 2.899004302D-01 2.899004302D-01 2.975293889D-01-1.009818738D-02
+-1.009818738D-02-1.009818738D-02 2.573806296D-01 2.573806296D-01 2.807788686D-01
+ 2.807788686D-01 2.807788686D-01 2.807788686D-01 2.807788686D-01 2.807788686D-01
+ 2.807788686D-01 2.807788686D-01 2.807788686D-01 2.807788686D-01 2.807788686D-01
+-1.137016285D-02-1.137016285D-02-1.137016285D-02-1.137016285D-02 3.161459913D-01
+ 3.161459913D-01 3.161459913D-01 3.161459913D-01 3.161459913D-01 3.161459913D-01
+ 3.161459913D-01 3.161459913D-01 3.161459913D-01 3.161459913D-01-1.137089789D-02
+-1.137089789D-02-1.137089789D-02 3.161664290D-01 3.161664290D-01 3.161664290D-01
+ 3.161664290D-01 3.161664290D-01 3.161664290D-01 3.161664290D-01 3.161664290D-01
+ 3.161664290D-01 3.161664290D-01-1.964920939D-02-1.964920939D-02-1.964920939D-02
+ 5.770158073D-01 5.770158073D-01 5.770158073D-01-1.964920939D-02-1.964920939D-02
+-1.964920939D-02 5.770158073D-01 5.770158073D-01 5.770158073D-01-1.964541729D-02
+-1.964541729D-02-1.964541729D-02-1.964541729D-02 5.769044491D-01 5.769044491D-01
+ 5.769044491D-01-2.405830292D-02-2.405830292D-02-2.405830292D-02 7.064926025D-01
+ 7.064926025D-01-1.964162739D-02-1.964162739D-02-1.964162739D-02-1.964162739D-02
+-1.964162739D-02 5.767931555D-01 5.767931555D-01 5.767931555D-01-3.399407731D-02
+-3.399407731D-02-3.399407731D-02 9.982650993D-01 2.419696210D-02 2.419696210D-02
+ 2.419696210D-02 4.923555771D-01 4.923555771D-01 5.066633461D-01 5.066633461D-01
+ 2.416867747D-02 2.416867747D-02 2.416867747D-02 2.416867747D-02 2.416867747D-02
+ 2.416867747D-02 2.416867747D-02 4.917800464D-01 4.917800464D-01 5.060710905D-01
+ 5.060710905D-01 2.904493941D-02 2.904493941D-02 2.904493941D-02 5.076550283D-01
+ 6.081757752D-01 6.081757752D-01 3.367376800D-02 3.367376800D-02 3.367376800D-02
+ 3.367376800D-02 3.367376800D-02 7.050994211D-01 7.050994211D-01 2.873390631D-02
+ 2.873390631D-02 2.873390631D-02 2.873390631D-02 5.222075152D-01 6.016630127D-01
+ 6.016630127D-01 3.369287598D-02 3.369287598D-02 3.369287598D-02 3.369287598D-02
+ 7.054995254D-01 7.054995254D-01 1.455497655D-02 1.455497655D-02 1.455497655D-02
+ 1.455497655D-02 2.543956773D-01 2.543956773D-01 2.543956773D-01 2.543956773D-01
+ 2.543956773D-01 2.645208784D-01 2.645208784D-01 2.645208784D-01 2.645208784D-01
+ 2.645208784D-01 2.645208784D-01 2.645208784D-01 3.047685527D-01 3.047685527D-01
+ 4.873504843D-02 4.873504843D-02 4.873504843D-02 4.873504843D-02 4.873504843D-02
+ 4.873504843D-02 4.873504843D-02 9.916522907D-01 3.466734447D-02 3.466734447D-02
+ 3.466734447D-02 3.466734447D-02 7.054050969D-01 7.054050969D-01 1.233310708D-02
+ 1.233310708D-02 1.233310708D-02 1.233310708D-02 1.233310708D-02 1.233310708D-02
+ 2.155612631D-01 2.155612631D-01 2.155612631D-01 2.155612631D-01 2.155612631D-01
+ 2.155612631D-01 2.155612631D-01 2.155612631D-01 2.155612631D-01 2.155612631D-01
+ 2.155612631D-01 2.155612631D-01 2.155612631D-01 2.155612631D-01 2.155612631D-01
+ 2.155612631D-01 2.509519182D-01 2.509519182D-01 2.509519182D-01 2.582445381D-01
+ 2.802192246D-02 2.802192246D-02 2.802192246D-02 2.802192246D-02 2.802192246D-02
+ 2.802192246D-02 2.802192246D-02 5.701852054D-01 5.701852054D-01 5.867546900D-01
+ 1.916532832D-02 1.916532832D-02 1.916532832D-02 1.916532832D-02 3.866396673D-01
+ 2.566487447D-01 2.566487447D-01 2.566487447D-01 2.566487447D-01 2.566487447D-01
+ 2.566487447D-01 2.566487447D-01 2.566487447D-01 4.013053098D-01 4.013053098D-01
+ 1.054252317D-02 1.054252317D-02 1.054252317D-02 1.054252317D-02 1.411781365D-01
+ 1.411781365D-01 1.411781365D-01 1.411781365D-01 1.411781365D-01 1.411781365D-01
+ 1.411781365D-01 1.411781365D-01 1.411781365D-01 1.411781365D-01 1.411781365D-01
+ 1.411781365D-01 1.411781365D-01 1.411781365D-01 1.411781365D-01 1.411781365D-01
+ 1.411781365D-01 1.411781365D-01 1.411781365D-01 1.411781365D-01 1.411781365D-01
+ 1.411781365D-01 1.411781365D-01 1.411781365D-01 1.411781365D-01 1.915988995D-01
+ 1.915988995D-01 1.915988995D-01 1.915988995D-01 1.915988995D-01 1.915988995D-01
+ 1.915988995D-01 1.915988995D-01 1.915988995D-01 1.915988995D-01 1.915988995D-01
+ 2.207512679D-01 2.207512679D-01 2.190808501D-02 2.190808501D-02 2.190808501D-02
+ 4.419718023D-01 4.419718023D-01 4.457819040D-01 4.457819040D-01 4.587362500D-01
+ 2.465537195D-02 2.465537195D-02 2.465537195D-02 4.973953302D-01 4.973953302D-01
+ 5.016832210D-01 5.016832210D-01 2.459528740D-02 2.459528740D-02 2.459528740D-02
+ 2.459528740D-02 4.961831896D-01 5.004606309D-01 5.004606309D-01 5.004606309D-01
+ 4.896821283D-02 4.896821283D-02 4.896821283D-02 9.963966793D-01 2.274954126D-02
+ 2.274954126D-02 2.274954126D-02 2.274954126D-02 4.213610690D-01 4.213610690D-01
+ 4.629037096D-01 4.629037096D-01 4.629037096D-01 1.403611886D-02 1.403611886D-02
+ 1.403611886D-02 1.879619397D-01 1.879619397D-01 1.879619397D-01 1.879619397D-01
+ 2.599733322D-01 2.599733322D-01 2.599733322D-01 2.599733322D-01 2.599733322D-01
+ 2.599733322D-01 2.599733322D-01 2.599733322D-01 2.599733322D-01 2.599733322D-01
+ 2.599733322D-01 1.818592793D-01 2.856045058D-01 1.702229487D-02 1.702229487D-02
+ 1.702229487D-02 1.702229487D-02 1.702229487D-02 3.152825052D-01 3.152825052D-01
+ 3.152825052D-01 3.152825052D-01 3.152825052D-01 3.152825052D-01 3.152825052D-01
+ 2.205497337D-01 3.564320528D-01 3.564320528D-01 3.371201652D-02 3.371201652D-02
+ 3.371201652D-02 7.059003118D-01 7.059003118D-01 3.720820751D-02 3.720820751D-02
+ 3.720820751D-02 3.720820751D-02 3.720820751D-02 4.982664314D-01 4.982664314D-01
+ 4.982664314D-01 4.982664314D-01 4.770310597D-02 9.988615589D-01 3.373118971D-02
+ 3.373118971D-02 7.063017817D-01 7.063017817D-01 3.371201652D-02 3.371201652D-02
+ 3.371201652D-02 7.059003118D-01 7.059003118D-01 4.421082650D-02 4.421082650D-02
+ 4.421082650D-02 4.421082650D-02 4.421082650D-02 4.421082650D-02 4.421082650D-02
+ 4.421082650D-02 5.728185352D-01 5.728185352D-01 5.728185352D-01 1.556400969D-02
+ 1.556400969D-02 1.556400969D-02 1.556400969D-02 1.556400969D-02 1.556400969D-02
+ 2.016554301D-01 2.016554301D-01 2.016554301D-01 2.016554301D-01 2.016554301D-01
+ 2.016554301D-01 2.016554301D-01 3.166937626D-01 3.166937626D-01 3.166937626D-01
+ 3.166937626D-01 3.166937626D-01 3.258968292D-01 3.258968292D-01 2.410337267D-02
+ 2.410337267D-02 2.410337267D-02 2.410337267D-02 2.410337267D-02 3.122958722D-01
+ 3.122958722D-01 3.122958722D-01 3.122958722D-01 3.122958722D-01 5.047036646D-01
+ 5.047036646D-01 2.065175164D-02 2.065175164D-02 2.065175164D-02 2.065175164D-02
+ 2.065175164D-02 2.065175164D-02 2.065175164D-02 2.065175164D-02 2.065175164D-02
+ 2.675748693D-01 4.202182511D-01 4.324297217D-01 4.324297217D-01 4.324297217D-01
+ 4.324297217D-01 2.293404842D-02 2.293404842D-02 2.293404842D-02 2.293404842D-02
+ 2.971454972D-01 4.666580292D-01 4.802190317D-01 4.802190317D-01 4.802190317D-01
+ 7.605685363D-02 7.605685363D-02 7.605685363D-02 7.605685363D-02 7.605685363D-02
+ 9.854322783D-01 1.492203052D-02 1.492203052D-02 1.492203052D-02 1.492203052D-02
+ 1.492203052D-02 3.010357463D-01 2.582160065D-01 2.582160065D-01 1.933376129D-01
+ 3.036308820D-01 3.036308820D-01 3.036308820D-01 3.036308820D-01 3.036308820D-01
+ 3.036308820D-01 3.036308820D-01 3.036308820D-01 1.529116407D-02 1.529116407D-02
+ 1.529116407D-02 3.084826145D-01 2.646036220D-01 2.646036220D-01 2.646036220D-01
+ 2.646036220D-01 2.646036220D-01 2.646036220D-01 3.111419474D-01 3.111419474D-01
+ 3.111419474D-01 3.111419474D-01 3.111419474D-01 2.762569941D-02 2.762569941D-02
+ 2.762569941D-02 2.762569941D-02 2.762569941D-02 5.573184581D-01 4.780447119D-01
+ 4.780447119D-01 4.780447119D-01 1.576671465D-02 1.576671465D-02 1.576671465D-02
+ 1.576671465D-02 3.180763305D-01 2.728327145D-01 3.208183678D-01 3.208183678D-01
+ 3.208183678D-01 3.208183678D-01 3.208183678D-01 3.208183678D-01 3.208183678D-01
+ 3.208183678D-01 1.770103467D-02 1.770103467D-02 2.293438406D-01 2.293438406D-01
+ 2.293438406D-01 2.293438406D-01 2.293438406D-01 2.293438406D-01 2.293438406D-01
+ 2.293438406D-01 2.293438406D-01 2.293438406D-01 2.293438406D-01 2.293438406D-01
+ 2.293438406D-01 2.293438406D-01 2.293438406D-01 2.293438406D-01 2.293438406D-01
+ 2.293438406D-01 2.293438406D-01 3.881974030D-02 3.881974030D-02 3.881974030D-02
+ 7.055065851D-01 7.055065851D-01 2.465537195D-02 2.465537195D-02 2.465537195D-02
+ 4.973953302D-01 4.973953302D-01 5.016832210D-01 5.016832210D-01 3.431114349D-02
+ 3.431114349D-02 3.431114349D-02 3.431114349D-02 6.921900257D-01 7.184455094D-01
+ 2.401893037D-02 2.401893037D-02 2.401893037D-02 2.401893037D-02 4.887330185D-01
+ 5.029355164D-01 5.029355164D-01 5.029355164D-01 2.780000527D-02 2.780000527D-02
+ 2.780000527D-02 5.656696730D-01 5.821079370D-01 5.821079370D-01 1.633500249D-02
+ 1.633500249D-02 1.633500249D-02 1.633500249D-02 3.295409200D-01 3.323817900D-01
+ 3.323817900D-01 3.323817900D-01 3.323817900D-01 3.323817900D-01 3.323817900D-01
+ 3.323817900D-01 3.420407480D-01 4.938727676D-02 4.938727676D-02 4.938727676D-02
+ 9.963346277D-01 2.207000979D-02 2.207000979D-02 2.207000979D-02 2.207000979D-02
+ 4.452384588D-01 4.452384588D-01 4.452384588D-01 4.490767214D-01 4.490767214D-01
+ 2.780000527D-02 2.780000527D-02 2.780000527D-02 5.656696730D-01 5.821079370D-01
+ 5.821079370D-01 2.161000757D-02 2.161000757D-02 2.161000757D-02 2.161000757D-02
+ 2.161000757D-02 4.359584140D-01 4.397166762D-01 4.524947677D-01 4.524947677D-01
+ 4.524947677D-01 2.787602097D-02 2.787602097D-02 2.787602097D-02 5.623684236D-01
+ 5.836996397D-01 5.836996397D-01 4.926725504D-02 4.926725504D-02 4.926725504D-02
+ 4.926725504D-02 4.926725504D-02 9.939133200D-01 2.842039187D-02 2.842039187D-02
+ 2.842039187D-02 5.733505148D-01 5.782931917D-01 5.782931917D-01 3.485736833D-02
+ 3.485736833D-02 7.032095183D-01 7.092716693D-01 2.423991241D-02 2.423991241D-02
+ 2.423991241D-02 2.423991241D-02 4.890138855D-01 4.932295224D-01 5.075626881D-01
+ 5.075626881D-01 2.424703691D-02 2.424703691D-02 2.424703691D-02 4.891576146D-01
+ 4.933744906D-01 5.077118690D-01 5.077118690D-01 1.620122811D-02 1.620122811D-02
+ 1.620122811D-02 1.620122811D-02 1.620122811D-02 1.620122811D-02 1.620122811D-02
+ 3.268421675D-01 3.268421675D-01 3.268421675D-01 3.296597724D-01 3.296597724D-01
+ 3.392396290D-01 3.392396290D-01 3.392396290D-01 3.392396290D-01 2.429742390D-02
+ 2.429742390D-02 2.429742390D-02 4.901741173D-01 4.901741173D-01 5.087669286D-01
+ 5.087669286D-01 2.429742390D-02 2.429742390D-02 2.429742390D-02 4.901741173D-01
+ 4.901741173D-01 5.087669286D-01 5.087669286D-01 1.539590890D-02 1.539590890D-02
+ 1.539590890D-02 1.539590890D-02 1.539590890D-02 1.539590890D-02 1.539590890D-02
+ 1.539590890D-02 1.539590890D-02 3.105957276D-01 3.105957276D-01 3.105957276D-01
+ 3.105957276D-01 3.132732770D-01 3.132732770D-01 3.223769449D-01 3.223769449D-01
+ 3.223769449D-01 3.223769449D-01 2.780000527D-02 2.780000527D-02 2.780000527D-02
+ 5.656696730D-01 5.821079370D-01 5.821079370D-01 2.778926901D-02 2.778926901D-02
+ 2.778926901D-02 2.778926901D-02 5.654512134D-01 5.818831290D-01 5.818831290D-01
+ 2.404702047D-02 2.404702047D-02 2.404702047D-02 2.404702047D-02 2.404702047D-02
+ 2.404702047D-02 2.404702047D-02 4.851225003D-01 5.035236986D-01 5.035236986D-01
+ 5.035236986D-01 2.428309224D-02 2.428309224D-02 2.428309224D-02 2.428309224D-02
+ 2.428309224D-02 4.898849917D-01 4.898849917D-01 5.084668362D-01 5.084668362D-01
+ 2.405397620D-02 2.405397620D-02 2.405397620D-02 2.405397620D-02 2.405397620D-02
+ 2.405397620D-02 4.852628246D-01 5.036693455D-01 5.036693455D-01 5.036693455D-01
+ 2.788685814D-02 2.788685814D-02 5.625870516D-01 5.839265605D-01 5.839265605D-01
+ 3.371201652D-02 3.371201652D-02 3.371201652D-02 7.059003118D-01 7.059003118D-01
+ 3.369287598D-02 3.369287598D-02 3.369287598D-02 3.369287598D-02 7.054995254D-01
+ 7.054995254D-01 2.787602097D-02 2.787602097D-02 2.787602097D-02 5.623684236D-01
+ 5.836996397D-01 5.836996397D-01 2.407487963D-02 2.407487963D-02 2.407487963D-02
+ 4.856845287D-01 5.041070453D-01 5.041070453D-01 5.041070453D-01 2.407487963D-02
+ 2.407487963D-02 2.407487963D-02 4.856845287D-01 5.041070453D-01 5.041070453D-01
+ 5.041070453D-01 2.787602097D-02 2.787602097D-02 2.787602097D-02 5.623684236D-01
+ 5.836996397D-01 5.836996397D-01 2.173939144D-02 2.173939144D-02 2.173939144D-02
+ 2.173939144D-02 4.385685929D-01 4.423493566D-01 4.423493566D-01 4.552039533D-01
+ 4.552039533D-01 2.158458477D-02 2.158458477D-02 2.158458477D-02 4.391993773D-01
+ 4.391993773D-01 4.519624362D-01 4.519624362D-01 4.519624362D-01 2.157955845D-02
+ 2.157955845D-02 2.157955845D-02 2.157955845D-02 4.390971027D-01 4.390971027D-01
+ 4.518571895D-01 4.518571895D-01 4.518571895D-01 4.938727676D-02 4.938727676D-02
+ 4.938727676D-02 9.963346277D-01 3.365469249D-02 3.365469249D-02 3.365469249D-02
+ 3.365469249D-02 3.365469249D-02 3.365469249D-02 7.046999965D-01 7.046999965D-01
+ 3.371201652D-02 3.371201652D-02 3.371201652D-02 7.059003118D-01 7.059003118D-01
+ 3.371201652D-02 3.371201652D-02 3.371201652D-02 7.059003118D-01 7.059003118D-01
+ 4.906087670D-01 4.906087670D-01 5.092180650D-01 5.092180650D-01 4.906087670D-01
+ 4.906087670D-01 5.092180650D-01 5.092180650D-01 1.965405038D-01 1.965405038D-01
+ 1.965405038D-01 1.965405038D-01 2.103813844D-01 2.103813844D-01 2.103813844D-01
+ 2.159177366D-01 2.159177366D-01 2.159177366D-01 2.159177366D-01 2.159177366D-01
+ 2.159177366D-01 2.159177366D-01 2.159177366D-01 2.159177366D-01 1.506810529D-01
+ 1.506810529D-01 1.506810529D-01 1.506810529D-01 1.836223486D-01 1.836223486D-01
+ 1.836223486D-01 1.836223486D-01 1.836223486D-01 1.836223486D-01 2.017301746D-01
+ 2.017301746D-01 2.017301746D-01 2.159365249D-01 2.159365249D-01 2.159365249D-01
+ 2.159365249D-01 2.216190650D-01 2.216190650D-01 2.216190650D-01 2.216190650D-01
+ 2.216190650D-01 2.216190650D-01 2.216190650D-01 2.216190650D-01 2.216190650D-01
+ 1.546598005D-01 1.546598005D-01 1.546598005D-01 1.884709143D-01 1.884709143D-01
+ 1.884709143D-01 1.884709143D-01 1.884709143D-01 2.565760265D-01 2.565760265D-01
+ 2.565760265D-01 2.565760265D-01 2.565760265D-01 2.565760265D-01 2.592751554D-01
+ 2.592751554D-01 2.592751554D-01 2.592751554D-01 2.592751554D-01 2.592751554D-01
+ 2.592751554D-01 2.592751554D-01 2.592751554D-01 5.778893290D-02 5.180148816D-03
+ 5.778052357D-02 5.390382129D-03 6.900698245D-02 5.791507289D-02 6.889766112D-02
+ 5.785620756D-02 5.791507289D-02 6.878833980D-03 5.808325954D-02 6.988155303D-03
+ 6.140494587D-02 4.644474336D-02 6.121994056D-02 4.638587804D-02 4.645315270D-02
+ 1.823984218D-02 4.660452068D-02 1.834075417D-02 8.243668644D-02 9.519364383D-03
+ 8.215076913D-02 9.418452393D-03 8.205826648D-02 7.607923107D-02 7.076453294D-02
+ 7.597831908D-02 7.073089561D-02 7.073930494D-02 8.167143718D-02 7.078135160D-02
+ 8.173030251D-02 4.653724602D-02 7.180729017D-02 4.645315270D-02 7.173160617D-02
+ 4.641110603D-02 4.642792470D-02 3.893520945D-02 4.651201802D-02 3.906134943D-02
+ 4.656247402D-02 7.308550871D-02 6.351568833D-02 7.304346204D-02 6.355773499D-02
+ 5.557727845D-02 6.371751231D-02 5.557727845D-02 6.373433097D-02 5.557727845D-02
+ 5.559409712D-02 5.524090515D-02 5.555205046D-02 5.523249582D-02 5.525772382D-02
+ 5.503908117D-02 5.524090515D-02 5.502226251D-02 5.524090515D-02 4.398080894D-02
+ 2.515231349D-02 4.399762761D-02 2.512708549D-02 4.400603694D-02 7.280800073D-02
+ 5.650230503D-02 7.279959140D-02 5.652753302D-02 5.655276102D-02 4.397239961D-02
+ 5.657798902D-02 4.393035295D-02 5.656957969D-02 6.752693993D-02 5.714141430D-02
+ 6.754375859D-02 5.714982363D-02 3.801859221D-02 4.552812612D-02 3.804382020D-02
+ 4.560381011D-02 3.814473219D-02 2.983631169D-02 7.549898713D-02 2.978585569D-02
+ 7.548216847D-02 2.978585569D-02 3.616853906D-02 2.983631169D-02 3.622740438D-02
+ 8.274783174D-02 7.157182886D-02 8.270578508D-02 7.159705685D-02 8.270578508D-02
+ 8.274783174D-02 8.347944367D-02 8.273942241D-02 8.352149033D-02 6.496209352D-02
+ 6.379319630D-02 6.492004685D-02 6.375114964D-02 3.960795605D-02 3.826246285D-02
+ 3.965000271D-02 3.823723485D-02 4.909368310D-02 3.821200685D-02 4.905163644D-02
+ 4.906845510D-02 4.359397965D-02 4.905163644D-02 4.361920765D-02 4.361079831D-02
+ 4.617564472D-02 4.363602631D-02 4.623451005D-02 4.625132872D-02 4.348465833D-02
+ 4.630178471D-02 4.350147699D-02 6.081629260D-02 4.641110603D-02 6.079947393D-02
+ 4.647838069D-02 4.652042736D-02 1.648229169D-02 4.662133935D-02 1.658320368D-02
+ 2.655667202D-02 1.514520782D-02 2.658190001D-02 1.516202649D-02 1.526293848D-02
+ 3.931362941D-02 1.529657581D-02 3.938090407D-02 5.767120224D-02 3.927158275D-02
+ 5.757029025D-02 3.921271742D-02 5.757869959D-02 5.759551825D-02 7.650810703D-02
+ 5.761233692D-02 7.660060969D-02 5.762915558D-02 8.517812883D-02-7.568399245D-05
+ 8.513608217D-02-5.886532746D-05 6.419684426D-02 3.807745753D-02 6.423889092D-02
+ 3.811109486D-02 3.817836952D-02 7.803860554D-03 3.834655617D-02 7.887953879D-03
+ 4.498992884D-02 2.880196379D-02 4.496470085D-02 2.875991713D-02 7.946819207D-03
+ 3.823723485D-02 7.896363212D-03 3.827087218D-02 3.826246285D-02 5.223877345D-02
+ 3.826246285D-02 5.223036412D-02 5.224718279D-02 2.591756275D-02 5.231445745D-02
+ 2.590915341D-02 2.643894136D-02 2.597642807D-02 2.643894136D-02 2.645576003D-02
+ 3.074451960D-02 2.647257869D-02 3.076133826D-02 2.648939736D-02 5.743574093D-02
+ 2.936538907D-02 5.746937826D-02 2.939902640D-02 2.943266373D-02 1.940873940D-02
+ 2.946630106D-02 1.944237673D-02 2.901219710D-02 4.364443564D-02 2.897855977D-02
+ 4.367807297D-02 3.116498622D-02 6.376796830D-02 3.114816756D-02 6.376796830D-02
+ 2.550550545D-02 3.984341736D-02 2.548868679D-02 3.988546402D-02 3.992751068D-02
+ 5.973989804D-02 3.991910135D-02 5.974830737D-02 1.982079669D-02 2.786011855D-02
+ 1.979556869D-02 2.791057455D-02 2.806194253D-02 2.010671399D-02 2.810398919D-02
+ 2.016557932D-02 2.014876066D-02 2.013194199D-02 3.323368202D-02 2.012353266D-02
+ 3.324209135D-02 3.325050068D-02 3.602558040D-02 3.325891001D-02 3.605921773D-02
+ 3.600035241D-02 3.598353374D-02 3.598353374D-02 3.599194307D-02 3.595830574D-02
+ 3.743834826D-02 3.742993893D-02 2.247814576D-02 3.309913270D-02 3.994432935D-02
+ 3.991069202D-02 4.230735178D-02 3.261139141D-02 5.588842376D-02 5.584637709D-02
+ 3.844746816D-02 4.694089398D-02 4.318192236D-02 6.022763932D-02 6.021082066D-02
+ 5.741892227D-02 5.894101145D-02 5.892419279D-02 5.741892227D-02 5.744415027D-02
+ 6.024445799D-02 4.320715035D-02 1.367357464D-02 1.373243996D-02 3.861565481D-02
+ 5.597251708D-02 3.272071273D-02 4.240826377D-02 3.996114801D-02 3.997796668D-02
+ 3.323368202D-02 2.260428574D-02 3.758971625D-02 3.610967373D-02 3.003813567D-02
+ 3.616012972D-02 3.005495433D-02 3.011381966D-02 3.758971625D-02 3.010541033D-02
+ 3.758971625D-02 6.464253888D-02 6.444912423D-02 3.960795605D-02 8.524540349D-02
+ 1.552362778D-02 8.530426882D-02 8.446333557D-02 4.451059689D-02 4.453582489D-02
+ 8.465675022D-02 5.989126602D-02 5.710777697D-02 3.986023602D-02 6.471822287D-02
+ 6.480231620D-02 4.385466896D-02 5.640980237D-02 4.380421296D-02 5.637616504D-02
+ 5.638457437D-02 4.377057563D-02 5.635093704D-02 4.375375697D-02 1.764277957D-02
+ 1.750823025D-02 1.764277957D-02 1.755868625D-02 1.787824088D-02 1.755868625D-02
+ 1.782778489D-02 7.596150042D-02 7.223616612D-02 7.598672842D-02 7.223616612D-02
+ 7.596990975D-02 7.226980345D-02 4.542721413D-02 7.233707811D-02 4.544403280D-02
+ 1.066303360D-02 4.555335412D-02 1.067985227D-02 7.776109757D-02 4.638587804D-02
+ 7.772746024D-02 4.636905937D-02 1.513679849D-02 5.656117035D-02 1.511997982D-02
+ 5.662003568D-02 1.517043582D-02 7.620537106D-02 1.061257761D-02 7.621378039D-02
+ 1.057894028D-02 1.659161301D-02 1.062098694D-02 1.654956635D-02 4.171028917D-02
+ 4.248394776D-02 4.167665184D-02 4.251758509D-02 2.961766904D-02 4.254281309D-02
+ 2.960085038D-02 7.491033386D-02 4.438445690D-02 7.480101253D-02 4.431718224D-02
+ 4.435081957D-02 7.485987786D-02 4.434241024D-02 7.162228485D-02 4.520016216D-02
+ 7.164751285D-02 4.520016216D-02 4.431718224D-03 3.927999208D-02 4.448536889D-03
+ 3.926317341D-02 3.868292947D-04 5.054008829D-02 3.363732998D-04 5.052326962D-02
+ 7.316119270D-03 4.985052302D-02 7.349756600D-03 4.988416035D-02 7.110931557D-02
+ 4.986734169D-02 7.104204091D-02 7.095794758D-02 7.803019621D-02 7.097476625D-02
+ 7.807224287D-02 8.579201010D-02 7.805542421D-02 8.579201010D-02 6.132926188D-02
+ 6.217860446D-02 5.417291993D-02 5.419814792D-02 6.131244321D-02 6.219542313D-02
+ 6.127039655D-02 6.212814847D-02 6.123675922D-02 4.725203928D-02 6.123675922D-02
+ 4.727726728D-02 4.731931394D-02 3.589103108D-02 4.735295127D-02 3.598353374D-02
+ 6.140494587D-02 3.596671508D-02 6.141335520D-02 5.701527431D-02 6.155631386D-02
+ 5.699004631D-02 6.154790452D-02 1.871917413D-02 2.729669328D-02 2.729669328D-02
+ 2.527845348D-02 1.200852680D-02 2.729669328D-02 6.214685445D-02 5.822892048D-02
+ 6.223839496D-02 5.832046099D-02 5.330404087D-02 5.330404087D-02 4.811369376D-02
+ 4.827846669D-02 5.351458405D-02 5.848523392D-02 4.826015859D-02 5.010012290D-02
+ 2.187818267D-02 5.019166341D-02 5.821061238D-02 3.203917964D-04 5.833876909D-02
+ 5.126268742D-04 3.727529700D-02 5.666357770D-03 3.700982951D-02 5.410044333D-03
+ 9.078988104D-02 1.830810265D-03 9.122012145D-02 2.759031069D-02 1.776801362D-02
+ 2.756284854D-02 5.776206386D-02 2.750792423D-02 5.791768273D-02 5.790852868D-02
+ 8.013456530D-02 5.783529627D-02 8.003387073D-02 6.499376441D-03 4.304234933D-02
+ 6.499376441D-03 4.306981148D-02 4.063483383D-02 4.100099588D-02 4.344512759D-02
+ 4.094607158D-02 4.291419261D-02 4.090945537D-02 4.286842235D-02 3.052876117D-02
+ 4.288673046D-02 4.308811959D-02 3.080338271D-02 4.338104923D-02 4.305150338D-02
+ 4.364651672D-02 8.575515281D-02 4.355497620D-02 8.580092307D-02 8.551714748D-02
+ 5.415536764D-02 8.557207179D-02 5.417367574D-02-3.121531502D-03 2.991543973D-02
+ 1.729200295D-02 8.721064697D-02 8.692687138D-02 1.703568952D-02 7.344295378D-02
+ 1.705399762D-02 7.351618619D-02 3.624088920D-02 3.907864511D-02 3.627750540D-02
+ 3.909695321D-02 8.124220551D-02 2.506379253D-02 4.731729130D-02 2.513702494D-02
+ 4.717998053D-02 6.131383577D-02 4.728067509D-02 6.135960603D-02 8.065634622D-02
+ 6.124060336D-02 8.079365699D-02 4.643850237D-02 7.336972137D-02 4.645681047D-02
+ 7.328733491D-02 6.353827025D-02 7.323241060D-02 6.351996214D-02 3.170047974D-02
+ 6.353827025D-02 3.175540405D-02 8.309132388D-02 3.576487853D-02 8.291739690D-02
+ 3.586557309D-02 2.407515498D-03 8.353071834D-02 9.840605174D-03 7.588708548D-02
+ 9.877221380D-03 5.134507388D-02 1.021592128D-02 8.164498377D-02 4.371974913D-02
+ 8.143444059D-02 4.360074646D-02 3.341228734D-02 5.428352436D-02 3.343059544D-02
+-6.508530492D-03 1.729200295D-02 1.737438941D-02 7.914592776D-02 2.187818267D-03
+ 4.232833333D-02 2.187818267D-03 8.093096776D-02 1.913196727D-02 8.091265966D-02
+ 3.960958008D-02 7.987825186D-02 4.178824430D-02 4.084537701D-02 2.910988321D-03
+ 7.934731689D-02 3.057453143D-03 3.543533268D-02 3.130685553D-03 7.798336324D-02
+ 1.455494161D-03 7.804744160D-02 3.085830702D-02 7.728765534D-02 3.073015030D-02
+ 6.893916053D-02 5.525385380D-02 6.890254432D-02 7.829460098D-02 7.628070969D-02
+-1.061869954D-03-1.482956315D-03 6.224754901D-04 1.107640210D-03 7.140160034D-04
+ 2.011145076D-02 2.055084522D-02 4.478161908D-02 2.064238574D-02 4.495554606D-02
+ 9.245591838D-04 4.505624062D-02 3.729360510D-02 3.727529700D-02 8.604808246D-04
+ 4.491892985D-02 8.156259731D-02 4.326204656D-02 5.846692581D-02 6.819768237D-03
+ 5.852185012D-02 8.429050460D-02 4.079045270D-02 8.432712081D-02 4.083622296D-02
+ 6.893000648D-03 4.092776347D-02 7.131005982D-03 2.770015931D-02 7.460551830D-03
+-4.082706891D-03-3.917933967D-03 2.775508362D-02 7.954870601D-02 6.620209918D-02
+ 7.519137758D-02 1.449086325D-02 7.514560733D-02 7.592370169D-02 7.511814517D-02
+ 7.594200979D-02 4.350005190D-02-5.922671207D-03 4.377467344D-02 8.161752161D-02
+ 5.431098651D-02 8.148936490D-02 5.430183246D-02 4.424153005D-02 4.098268778D-02
+ 4.119323096D-02 4.301488718D-02 4.091860942D-02 4.155939302D-03 4.097353373D-02
+ 8.134290007D-02 4.425983816D-02 5.292872476D-02 5.313926794D-02 4.442461108D-02
+ 5.305688148D-02 5.968441464D-03 5.311180579D-02 5.977595515D-03 4.052498522D-02
+ 4.832423694D-02 4.052498522D-02 1.882988358D-02 4.057075547D-02 1.884819168D-02
+ 4.059821763D-02 5.361527861D-02 5.132676578D-02 5.356950835D-02 6.500291846D-02
+ 5.352373810D-02 6.502122656D-02 8.184637290D-02 6.503953466D-02 8.188298910D-02
+ 3.456569780D-02 8.192875936D-02 3.460231401D-02 1.423454981D-02 1.451832540D-02
+ 3.508747873D-02 1.430778222D-02 7.709542026D-02 4.293250071D-02 7.725103913D-02
+ 4.298742502D-02 1.490279556D-02 4.304234933D-02 1.497602797D-02 7.672925821D-02
+ 4.026867178D-02 7.680249062D-02 1.893973219D-02 4.396690851D-02 1.903127270D-02
+ 4.399437067D-02 4.398521662D-02 1.014268887D-02 4.401267877D-02 1.024338343D-02
+ 4.925795018D-02 3.128854743D-02 4.925795018D-02 3.127939338D-02 5.272733563D-03
+ 3.142585820D-02 5.364274076D-03 8.418065598D-02 6.596409385D-02 8.415319383D-02
+ 8.427219650D-02 6.605563436D-02 4.234664143D-02 6.610140462D-02 4.235579548D-02
+ 2.629043541D-02 4.242902789D-02 2.640028402D-02 8.015287340D-02 1.807925137D-02
+ 8.021695176D-02 1.807009732D-02 1.785955414D-02 7.881638191D-02 1.771308931D-02
+ 5.044797685D-02 2.328790657D-02 5.055782547D-02 2.351675785D-02 7.884384406D-02
+ 8.083942725D-02 7.880722786D-02 8.078450294D-02 1.263259083D-03 8.079365699D-02
+ 1.373107699D-03 1.490279556D-02 1.547034674D-03 1.496687392D-02 1.503095228D-02
+ 6.145114654D-02 1.493941176D-02 6.133214388D-02 1.091162918D-02 6.130468172D-02
+ 1.091162918D-02 6.235739763D-02 2.584188689D-02 6.239401383D-02 2.586019499D-02
+ 9.291362095D-03-7.872484140D-03 9.492751224D-03-7.799251729D-03 9.593445789D-03
+-7.707711216D-03 1.119540477D-02 2.374560914D-02 1.123202098D-02 2.380053345D-02
+ 2.344352544D-02 5.761559904D-02 2.350760380D-02 2.349844975D-02 5.770713955D-02
+ 2.355337406D-02 2.504548443D-02 7.661940959D-02 2.505463848D-02 7.660110149D-02
+ 3.204833369D-02 1.791447844D-02 3.195679318D-02 7.508152897D-02 3.178286620D-02
+ 7.506322087D-02 3.180117430D-02 1.770393526D-02 6.241232193D-02 6.856384442D-03
+ 6.243063004D-02 2.306820934D-02 4.360990051D-02 3.130685553D-03 4.382044369D-02
+ 3.194763912D-03 4.362820861D-02 1.805178921D-02 4.375636533D-02 1.812502162D-02
+ 6.222924091D-02 4.176993620D-02 7.961278437D-02 4.173331999D-02-4.686874278D-03
+ 6.062728193D-02-4.686874278D-03 7.955786007D-02 7.215223254D-02 8.362225885D-02
+ 7.217054065D-02 4.393029231D-02 4.399437067D-02 7.228954331D-02 4.399437067D-02
+ 5.467714856D-02 7.031226823D-02 5.462222426D-02 7.030311418D-02 1.170803164D-02
+ 2.383714965D-02 1.171718570D-02 2.387376586D-02 4.176078214D-02 2.389207396D-02
+ 4.183401456D-02 7.950293576D-02 1.909535106D-02 7.959447627D-02 1.908619701D-02
+ 3.533463811D-03 3.755907259D-02 3.441923298D-03 3.752245638D-02 7.564908015D-02
+-5.217809255D-04 5.143661440D-02 5.140915224D-02-3.936242070D-04 7.880722786D-02
+ 4.050667711D-02 7.883469001D-02-7.506322087D-04 5.122607121D-02 7.126428957D-02
+-2.837755911D-04 1.954389958D-02 1.958966984D-02 3.678097822D-02 7.652786908D-02
+ 7.635394210D-02 3.640566212D-02 4.623711324D-02 2.212534205D-02 4.631949970D-02
+ 2.209787990D-02 2.825855644D-02 2.832263480D-02 2.224434472D-02 2.835009695D-02
+ 2.229926903D-02 2.834094290D-02 2.830432670D-02 2.902749675D-02 2.832263480D-02
+ 2.901834270D-02 1.370361483D-02 2.910072916D-02 1.374023104D-02 4.779330197D-02
+ 3.258842272D-02 4.322543036D-02 3.258842272D-02 4.785738033D-02 4.779330197D-02
+ 3.251519031D-02 4.783907222D-02 1.938828071D-02 3.958211793D-02 1.930589424D-02
+ 1.208275568D-01 1.208320124D-01 1.208275568D-01 1.208310576D-01 1.208294663D-01
+ 1.208307393D-01 1.208291481D-01 1.301511903D-01 1.284921208D-01 1.301543729D-01
+ 1.305932482D-01 1.305942030D-01 1.311915699D-01 1.326959669D-01 1.326950121D-01
+ 1.326953304D-01 1.329365686D-01 1.343986376D-01 1.305907022D-01 1.321297891D-01
+ 1.305884744D-01 1.286814832D-01 1.280510177D-01 1.291381809D-01 1.304824950D-01
+ 1.321762545D-01 1.330511408D-01 1.341102974D-01 1.347499924D-01 1.362120614D-01
+ 1.359386793D-01 1.353807762D-01 1.345727237D-01 1.345724054D-01 1.340122745D-01
+ 1.332777392D-01 1.327771222D-01 1.316466762D-01 1.311065955D-01 1.307176864D-01
+ 1.317768430D-01 1.311046859D-01 1.325444770D-01 1.325444770D-01 1.325441587D-01
+ 1.325444770D-01 1.350157363D-01 1.360265180D-01 1.371989738D-01 1.350714312D-01
+ 1.336529633D-01 1.327774405D-01 1.327780770D-01 1.327780770D-01 1.332783757D-01
+ 1.340122745D-01 1.345717689D-01 1.350593374D-01 1.555298032D-01 1.555298032D-01
+ 1.555310148D-01 1.555314187D-01 1.555310148D-01 1.555306109D-01 1.555322264D-01
+ 1.555314187D-01 1.555298032D-01 1.555334379D-01 1.555334379D-01 1.555322264D-01
+ 1.555334379D-01 1.555342456D-01 1.555322264D-01 1.555326302D-01 1.555338418D-01
+ 1.555298032D-01 1.555342456D-01 1.582869283D-01 1.582869283D-01 1.582881399D-01
+ 1.582869283D-01 1.582877361D-01 1.582881399D-01 1.555342456D-01 1.555314187D-01
+ 1.555302071D-01 1.555318225D-01 1.555358611D-01 1.555322264D-01 1.592751641D-01
+ 1.582857168D-01 1.582873322D-01 1.527508699D-01 1.527532930D-01 1.527496583D-01
+ 1.527480429D-01 1.592755679D-01 1.592755679D-01 1.592751641D-01 1.848500633D-01
+ 1.818042753D-01 1.848525606D-01 1.818062732D-01 1.848555575D-01 1.818092700D-01
+ 1.848560570D-01 1.970447032D-01 1.993322908D-01 1.993397829D-01 1.970452027D-01
+ 1.918272054D-01 1.970501974D-01 1.970452027D-01 1.970511964D-01 1.970457022D-01
+ 1.970496979D-01 1.970462016D-01 1.970511964D-01 1.970447032D-01 1.970472006D-01
+ 1.918262065D-01 1.918292033D-01 1.918222107D-01 1.918287038D-01 1.918227102D-01
+ 1.918287038D-01 2.097331186D-01 2.097489127D-01 2.097510186D-01 2.097357510D-01
+ 2.097399627D-01 2.057208988D-01 2.057293223D-01 2.075314255D-01 2.097425951D-01
+ 2.097346980D-01 2.075208961D-01 2.097420686D-01 2.097346980D-01 2.075230020D-01
+ 2.075308990D-01 2.097452274D-01 2.097368039D-01 2.075224755D-01 2.075277402D-01
+ 2.097389098D-01 2.097368039D-01 2.057198459D-01 2.067601485D-01 2.137362364D-01
+ 2.115680705D-01 2.137400623D-01 2.137378761D-01 2.137389692D-01 2.137378761D-01
+ 2.137389692D-01 2.137362364D-01 2.118085527D-01 2.137367830D-01 2.137356899D-01
+ 2.137329571D-01 2.137351433D-01 2.137384226D-01 2.137367830D-01 2.137351433D-01
+ 2.118058200D-01 2.118025407D-01 2.117998079D-01 2.118041803D-01 2.137296778D-01
+ 2.137400623D-01 1.864087635D-01 1.864077953D-01 1.843602198D-01 1.830837524D-01
+ 1.843607038D-01 1.875240387D-01 1.875230705D-01 1.864591057D-01 1.864586217D-01
+ 1.864557173D-01 1.864552333D-01 1.864445839D-01 1.864552333D-01 1.864450680D-01
+ 1.864562014D-01 1.800099688D-01 1.821955016D-01 1.821974378D-01 1.791865820D-01
+ 1.875191981D-01 1.875245227D-01 1.875250068D-01 1.864566854D-01 1.875191981D-01
+ 1.864576536D-01 1.864595898D-01 1.864566854D-01 1.864562014D-01 1.875216184D-01
+ 1.554535810D-01 1.513304366D-01 1.532725716D-01 1.514262229D-01 1.517671903D-01
+ 1.517667962D-01 1.514218869D-01 1.517667962D-01 1.517648252D-01 1.532741484D-01
+ 1.532713891D-01 1.517644311D-01 1.517656136D-01 1.514254345D-01 1.532733600D-01
+ 1.549687371D-01 1.549718905D-01 1.569554147D-01 1.549722847D-01 1.539434695D-01
+ 1.540242768D-01 1.509685775D-01 1.517671903D-01 1.517648252D-01 1.517640369D-01
+ 1.517652194D-01 1.509654240D-01 1.509654240D-01 1.517644311D-01 1.517656136D-01
+ 1.532769077D-01 1.532749367D-01 1.517640369D-01 1.517656136D-01 1.509681833D-01
+ 1.509638473D-01 1.517624602D-01 1.517667962D-01 1.549730731D-01 1.532698124D-01
+ 1.517632485D-01 1.517648252D-01 1.517632485D-01 7.879069361D-02 7.652106471D-02
+ 7.652126512D-02 7.664772303D-02 7.664772303D-02 7.666555940D-02 7.574628454D-02
+ 7.574608413D-02 7.699162441D-02 7.699142400D-02 7.789266208D-02 7.789266208D-02
+ 7.834177805D-02 7.834157764D-02 7.849068174D-02 7.849048133D-02 7.865321322D-02
+ 7.865301281D-02 7.849028092D-02 7.849048133D-02 7.834097642D-02 7.834097642D-02
+ 7.789206085D-02 7.789206085D-02 7.699002114D-02 7.699022155D-02 7.538434637D-02
+ 7.538434637D-02 7.574387964D-02 7.574387964D-02 7.574608413D-02 7.574628454D-02
+ 7.574688577D-02 7.574728659D-02 7.574788781D-02 7.574548291D-02 7.574568332D-02
+ 7.538594964D-02 7.538615005D-02 7.699222564D-02 7.699222564D-02 7.789386453D-02
+ 7.789386453D-02 7.833857151D-02 7.833857151D-02 7.848807643D-02 7.848827684D-02
+ 7.864960587D-02 7.864980628D-02 7.892616992D-02 7.892637033D-02 7.864920505D-02
+ 7.864920505D-02 7.881955247D-02 7.881875084D-02 7.881935206D-02 7.864639933D-02
+ 7.864619892D-02 7.881855043D-02 7.881855043D-02 7.864800260D-02 7.864820301D-02
+ 7.892516788D-02 7.892496747D-02 7.848707438D-02 7.848707438D-02 7.833616661D-02
+ 7.833616661D-02 7.788685023D-02 7.788725104D-02 7.698501093D-02 7.698521133D-02
+ 7.537933615D-02 7.537953656D-02 7.573886942D-02 7.573906983D-02 7.637576837D-02
+ 7.637576837D-02 7.665794387D-02 7.665774346D-02 7.637596878D-02 7.637596878D-02
+ 7.573927024D-02 7.573927024D-02 7.574147473D-02 7.574187555D-02 7.574247678D-02
+ 7.574307800D-02 7.574287759D-02 7.574147473D-02 7.574147473D-02 7.567153209D-02
+ 7.567173249D-02 7.574147473D-02 7.574147473D-02 7.574107392D-02 7.574107392D-02
+ 7.637797287D-02 7.637777246D-02 7.638598922D-02 7.638618963D-02 7.665974755D-02
+ 7.665974755D-02 7.664231199D-02 7.664231199D-02 7.651545326D-02 7.651545326D-02
+ 7.878307808D-02 7.878307808D-02 7.878247686D-02 7.878247686D-02 7.651425081D-02
+ 7.651425081D-02 7.664050831D-02 7.664070872D-02 7.665854510D-02 7.665834469D-02
+ 7.637737164D-02 7.637717124D-02 7.638538799D-02 7.638538799D-02 7.573927024D-02
+ 7.573947065D-02 7.566992882D-02 7.566992882D-02 7.573947065D-02 7.573967105D-02
+ 7.573866901D-02 7.788685023D-02 7.788664982D-02 7.833596620D-02 7.833596620D-02
+ 7.848547111D-02 7.848567152D-02 7.788664982D-02 7.698481052D-02 7.698481052D-02
+ 7.573826819D-02 7.573826819D-02 7.574027228D-02 7.574027228D-02 7.574147473D-02
+ 7.574207596D-02 7.574227637D-02 7.574007187D-02 7.574027228D-02 7.538013779D-02
+ 7.538013779D-02 7.574067310D-02 7.574067310D-02 7.637737164D-02 7.637757205D-02
+ 7.638558840D-02 7.638538799D-02 7.665914632D-02 7.665914632D-02 7.664151036D-02
+ 7.664151036D-02 7.651425081D-02 7.651445122D-02 7.878267727D-02 7.878267727D-02
+ 7.540438724D-02 7.662447561D-02 7.540378602D-02 7.662467602D-02 7.540398643D-02
+ 7.662487643D-02 7.540438724D-02 5.563999397D-02 5.654075309D-02 5.564014188D-02
+ 5.654090099D-02 5.563999397D-02 5.654090099D-02 5.621727851D-02 5.621535571D-02
+ 5.621579943D-02 5.654090099D-02 5.564014188D-02 5.654075309D-02 5.563999397D-02
+ 5.654075309D-02 5.563999397D-02 5.621565152D-02 5.621757432D-02 5.616151723D-02
+ 5.606064404D-02 5.677577874D-02 5.689277389D-02 5.705118325D-02 5.734936558D-02
+ 5.754608308D-02 5.780610517D-02 5.793256643D-02 5.808032642D-02 5.819939228D-02
+ 5.859312311D-02 5.850570954D-02 5.875892787D-02 5.875863205D-02 5.850541373D-02
+ 5.750836657D-02 5.670670575D-02 5.603194991D-02 5.623014650D-02 5.623029440D-02
+ 5.675521954D-02 5.715649368D-02 5.674811996D-02 5.675492373D-02 5.622999859D-02
+ 5.603209782D-02 5.643070961D-02 5.670788901D-02 5.750807075D-02 5.850570954D-02
+ 5.875818833D-02 5.850437837D-02 5.875818833D-02 5.923637457D-02 5.964489619D-02
+ 5.964504410D-02 5.680713521D-02 5.588729598D-02 5.588744389D-02 5.636370733D-02
+ 5.813298163D-02 5.964533992D-02 5.964460038D-02 5.964430456D-02 5.958454977D-02
+ 5.951399770D-02 5.943960003D-02 5.961768114D-02 5.961723741D-02 5.958824747D-02
+ 5.962478072D-02 6.023016775D-02 6.054920509D-02 6.075346591D-02 6.103034949D-02
+ 6.102990577D-02 5.996171491D-02 5.996156701D-02 5.965480602D-02 6.127646824D-02
+ 6.081514350D-02 6.033163257D-02 6.081558722D-02 5.863143126D-02 5.986675804D-02
+ 5.986498315D-02 5.934538269D-02 5.957390040D-02 5.952997175D-02 5.986601850D-02
+ 6.004912848D-02 5.986557478D-02 5.986513106D-02 5.968098572D-02 6.075213473D-02
+ 6.103892815D-02 6.066279836D-02 6.130042932D-02 6.252140904D-02 6.235471683D-02
+ 6.252111322D-02 6.130116886D-02 6.066235464D-02 6.103833652D-02 6.075272637D-02
+ 5.968157735D-02 6.004898058D-02 5.986601850D-02 6.007797052D-02 6.007723098D-02
+ 5.831195019D-02 5.951222280D-02 5.994736785D-02 5.971914596D-02 6.070362094D-02
+ 6.030634032D-02 6.070332513D-02 5.990639736D-02 6.148989934D-02 6.189664607D-02
+ 6.185360487D-02 6.100771959D-02 6.134894311D-02 6.100742377D-02 6.134923893D-02
+ 6.185523186D-02 6.189679398D-02 5.990639736D-02 6.050438900D-02 6.070376885D-02
+ 6.030693195D-02 6.070391676D-02 5.923045825D-02 5.932230906D-02 5.903684681D-02
+ 5.932230906D-02 5.871470341D-02 5.874324963D-02 5.878185359D-02 5.874384126D-02
+ 5.878214941D-02 5.871588667D-02 5.923134570D-02 5.932319651D-02 5.903773426D-02
+ 6.070288140D-02 6.030545287D-02 6.070258559D-02 6.007737889D-02 6.007634354D-02
+ 5.830973157D-02 5.951074373D-02 5.994559295D-02 5.971677943D-02 5.994544505D-02
+ 5.957197760D-02 5.862980427D-02 6.081484768D-02 6.033118885D-02 6.013905649D-02
+ 5.965406648D-02 5.996038374D-02 5.965391857D-02 6.033104094D-02 6.251963414D-02
+ 6.251889460D-02 6.235249822D-02 6.251948624D-02 6.129968978D-02 6.066131928D-02
+ 6.103804071D-02 5.968054200D-02 6.004809313D-02 5.952938012D-02 5.957301295D-02
+ 5.934449525D-02 5.863069172D-02 5.934508688D-02 5.986527896D-02 6.004942430D-02
+ 5.953026757D-02 5.957360458D-02 5.951207490D-02 5.831002739D-02 6.007649144D-02
+ 5.994574086D-02 5.971811060D-02 6.070273350D-02 6.050379737D-02 5.990565782D-02
+ 6.050409319D-02 6.070332513D-02 5.932304860D-02 5.903803008D-02 5.932334442D-02
+ 5.923134570D-02 5.923045825D-02 5.871499922D-02 5.878200150D-02 5.874354545D-02
+ 5.878229732D-02 5.874369335D-02 5.878200150D-02 5.871499922D-02 5.923045825D-02
+ 5.960392570D-02 5.957375249D-02 5.999484628D-02 6.087356712D-02 6.176826201D-02
+ 6.176826201D-02 6.260187094D-02 6.282876166D-02 6.300048273D-02 6.325695503D-02
+ 6.325769457D-02 6.300063064D-02 6.282890956D-02 6.260201884D-02 6.297770491D-02
+ 6.323698746D-02 6.336389244D-02 6.312339419D-02 6.295892061D-02 6.293155765D-02
+ 6.293140974D-02 6.293155765D-02 6.293170555D-02 6.239820176D-02 6.235412520D-02
+ 6.252066950D-02 6.130072514D-02 6.066279836D-02 6.103892815D-02 5.968098572D-02
+ 5.986601850D-02 6.004927639D-02 5.968187317D-02 6.103966769D-02 6.066368581D-02
+ 6.130220422D-02 6.235545637D-02 6.252200067D-02 6.172951014D-02 6.172980596D-02
+ 5.996112328D-02 5.965524974D-02 5.965495393D-02 5.996112328D-02 6.103034949D-02
+ 6.075287427D-02 6.054846556D-02 6.022913240D-02 5.958795165D-02 5.961768114D-02
+ 5.943945212D-02 5.951399770D-02 5.958484558D-02 5.964460038D-02 5.964504410D-02
+ 5.923607875D-02 5.875789251D-02 5.850408256D-02 5.842184576D-02 5.859164403D-02
+ 5.819791320D-02 5.793167898D-02 5.754519564D-02 5.734818231D-02 5.705029580D-02
+ 5.689233017D-02 5.677592665D-02 5.606064404D-02 5.616122141D-02 5.621594734D-02
+ 5.621550361D-02 5.621609524D-02 5.621476407D-02 5.621491198D-02 5.563940234D-02
+ 5.654016145D-02 5.563969816D-02 5.654030936D-02 5.563955025D-02 5.654045727D-02
+ 1.889625121D-01 1.883666206D-01 1.889711335D-01 1.889751906D-01 1.889706263D-01
+ 1.897643031D-01 1.900442453D-01 1.900396810D-01 1.897607531D-01 1.900396810D-01
+ 1.897435103D-01 1.883316278D-01 1.883656063D-01 1.889589621D-01 1.883656063D-01
+ 1.883311207D-01 1.897369174D-01 1.883306135D-01 1.889594692D-01 1.883656063D-01
+ 1.883311207D-01 1.897364103D-01 1.897541602D-01 1.883686492D-01 1.865540962D-01
+ 1.881901353D-01 1.881886139D-01 1.909388432D-01 2.180607298D-01 2.144670736D-01
+ 2.180624981D-01 2.144670736D-01 2.180630875D-01 2.144694312D-01 2.180642663D-01
+ 2.196480214D-01 2.196509684D-01 2.196521473D-01 2.168483055D-01 2.196297495D-01
+ 2.196273919D-01 2.196268025D-01 2.196285707D-01 2.196279813D-01 2.196226766D-01
+ 2.189295259D-01 2.168282655D-01 2.187232310D-01 2.187285357D-01 1.368006732D-01
+ 1.345473413D-01 1.367991952D-01 1.345477109D-01 1.367999342D-01 1.345466023D-01
+ 1.368003037D-01 1.345462328D-01 1.368017818D-01 1.345451242D-01 1.368010428D-01
+ 1.441193829D-01 1.445694580D-01 1.441252952D-01 1.527979255D-01 1.528367251D-01
+ 1.248071683D-01 1.250662017D-01 1.374384644D-01 1.359936419D-01 1.374366168D-01
+ 1.527975559D-01 1.528370946D-01 1.250632455D-01 1.374362473D-01 1.359903163D-01
+ 1.374366168D-01 1.445727837D-01 1.441256647D-01 1.248060597D-01 1.250658322D-01
+ 1.248064293D-01 1.250676798D-01 1.374392035D-01 1.359936419D-01 1.374340302D-01
+ 1.445742618D-01 1.441227086D-01 1.527957083D-01 1.528352470D-01 1.374358778D-01
+ 1.359932724D-01 1.374362473D-01 1.441227086D-01 1.445720447D-01 1.528348775D-01
+ 1.527957083D-01 1.250669407D-01 1.248038426D-01 1.250650931D-01 1.441238171D-01
+ 1.445753703D-01 6.163892838D-02 6.163844147D-02 6.163909068D-02 6.163990219D-02
+ 6.164022680D-02 6.157790263D-02 6.176860809D-02 6.178532526D-02 6.192441852D-02
+ 6.183012075D-02 6.186858645D-02 6.188968578D-02 6.187378013D-02 6.163535772D-02
+ 6.143929627D-02 6.187637697D-02 6.179766025D-02 6.187540316D-02 6.202261155D-02
+ 6.187556546D-02 6.179652413D-02 6.143832246D-02 6.163454621D-02 6.187215711D-02
+ 6.188838736D-02 6.186728803D-02 6.187264401D-02 6.157887644D-02 6.106210520D-02
+ 6.086539454D-02 6.191695260D-02 6.267133474D-02 6.267912526D-02 6.267944987D-02
+ 6.105707382D-02 6.254814712D-02 6.259667558D-02 6.191143432D-02 6.191029820D-02
+ 6.259440334D-02 6.254668640D-02 6.105528850D-02 6.267815145D-02 6.267847605D-02
+ 6.267068553D-02 6.222175675D-02 6.223214411D-02 6.248501144D-02 6.304479285D-02
+ 6.329165499D-02 6.363070497D-02 6.376996053D-02 6.363232799D-02 6.385581857D-02
+ 6.390613235D-02 6.393064003D-02 6.367339053D-02 6.367436434D-02 6.393210075D-02
+ 6.390807998D-02 6.385744159D-02 6.363443792D-02 6.377207046D-02 6.363249029D-02
+ 6.329311571D-02 6.304560436D-02 6.248582295D-02 6.223295562D-02 6.165386021D-02
+ 6.143540101D-02 6.217598743D-02 6.305436870D-02 6.414828772D-02 6.442614964D-02
+ 6.495103601D-02 6.540077630D-02 6.533455687D-02 6.487605224D-02 6.427715592D-02
+ 6.374139529D-02 6.190510452D-02 6.331502655D-02 6.381524294D-02 6.473095378D-02
+ 6.517744803D-02 6.525957311D-02 6.533731602D-02 6.540207472D-02 6.533585529D-02
+ 6.487686375D-02 6.427796744D-02 6.374171989D-02 6.190575373D-02 6.331453965D-02
+ 6.381475603D-02 6.444806048D-02 6.479912084D-02 6.554636167D-02 6.444237989D-02
+ 6.272246003D-02 6.365001897D-02 6.424972680D-02 6.504776831D-02 6.409927236D-02
+ 6.535663002D-02 6.535695462D-02 6.532416951D-02 6.578592020D-02 6.674999720D-02
+ 6.773111596D-02 6.817744790D-02 6.798609323D-02 6.836117436D-02 6.864633990D-02
+ 6.889531197D-02 6.908423211D-02 6.936809923D-02 7.003727254D-02 7.004749760D-02
+ 6.980339460D-02 6.934180622D-02 6.905728989D-02 6.864487918D-02 6.864487918D-02
+ 6.889498737D-02 6.908342060D-02 6.936858614D-02 6.998630955D-02 6.938936086D-02
+ 6.819075671D-02 6.796856455D-02 6.715477969D-02 6.773062905D-02 6.715461739D-02
+ 6.687919001D-02 6.668069402D-02 6.722148603D-02 6.761295972D-02 6.761312202D-02
+ 6.887356343D-02 6.998614724D-02 6.938822474D-02 6.818962059D-02 6.796840225D-02
+ 6.817631179D-02 6.773046675D-02 6.715445509D-02 6.687919001D-02 6.668150553D-02
+ 6.668036941D-02 6.722083682D-02 6.761312202D-02 6.761312202D-02 6.887372574D-02
+ 6.938887395D-02 6.998679645D-02 6.936972225D-02 6.908358290D-02 7.003743484D-02
+ 7.004765990D-02 6.980404381D-02 6.873658010D-02 6.948187330D-02 6.948187330D-02
+ 6.921748248D-02 6.903732668D-02 6.740212874D-02 6.903602826D-02 6.900567769D-02
+ 6.842106399D-02 6.855626200D-02 6.842138860D-02 6.900600229D-02 6.903667747D-02
+ 6.921699558D-02 6.948203560D-02 6.873674241D-02 6.934278003D-02 6.905793910D-02
+ 6.864552839D-02 6.836052515D-02 6.798593092D-02 6.773079135D-02 6.674951029D-02
+ 6.578559559D-02 6.535646771D-02 6.532384491D-02 6.535468239D-02 6.532222188D-02
+ 6.409813624D-02 6.504679450D-02 6.424956449D-02 6.364985666D-02 6.171423675D-02
+ 6.171147761D-02 6.171439905D-02 6.272408306D-02 6.444351601D-02 6.554684858D-02
+ 6.639358085D-02 6.604333200D-02 6.479960775D-02 6.444838509D-02 6.537237336D-02
+ 6.472965536D-02 6.517647421D-02 6.525811238D-02 6.533585529D-02 6.539931558D-02
+ 6.533293385D-02 6.487410461D-02 6.495022449D-02 6.442533813D-02 6.414715160D-02
+ 6.305290798D-02 6.217517592D-02 6.143475180D-02 6.165272409D-02 6.223246871D-02
+ 6.222208135D-02 6.267133474D-02 6.191679030D-02 6.086669296D-02 6.106340362D-02
+ 6.158066177D-02 6.163487081D-02 6.187296862D-02 6.188903657D-02 6.187410474D-02
+ 6.183109457D-02 6.182849773D-02 6.192230859D-02 6.178402683D-02 6.176649816D-02
+ 6.157563039D-02 6.163860377D-02 6.163941529D-02                        7765D 00
+ 6.406762598D+01 5.883397765D+00 6.402786445D+01 5.957716784D+00 7.641148593D+01
+ 6.419160491D+01 7.637711988D+01 6.417271547D+01 6.420193420D+01 7.681649615D+00
+ 6.424921469D+01 7.683658858D+00 6.798478512D+01 5.151374569D+01 6.788997351D+01
+ 5.148439535D+01 5.152988778D+01 2.026363225D+01 5.157863196D+01 2.026373291D+01
+ 9.116164644D+01 1.060632314D+01 9.101081447D+01 1.058942556D+01 9.092409462D+01
+ 8.424277385D+01 7.841628355D+01 8.420383984D+01 7.840260653D+01 7.839867596D+01
+ 9.045439141D+01 7.836766232D+01 9.042058772D+01 5.144780028D+01 7.943405038D+01
+ 5.142380247D+01 7.941863899D+01 5.144529522D+01 5.149343316D+01 4.317545284D+01
+ 5.151959834D+01 4.323939374D+01 5.149345936D+01 8.094992390D+01 7.036663670D+01
+ 8.088924141D+01 7.037002960D+01 6.144145532D+01 7.043762406D+01 6.143475451D+01
+ 7.046144804D+01 6.145008251D+01 6.148203694D+01 6.109699511D+01 6.144167320D+01
+ 6.108477232D+01 6.112340506D+01 6.087806427D+01 6.109783408D+01 6.085436717D+01
+ 6.109138830D+01 4.861464344D+01 2.779204783D+01 4.863299600D+01 2.776273056D+01
+ 4.863808808D+01 8.056841596D+01 6.251386279D+01 8.052164594D+01 6.250943356D+01
+ 6.251270019D+01 4.859203646D+01 6.252700209D+01 4.853524405D+01 6.250867010D+01
+ 7.468123820D+01 6.318721851D+01 7.467294147D+01 6.316462880D+01 4.216097559D+01
+ 5.043223190D+01 4.211956324D+01 5.043232335D+01 4.214412673D+01 3.300376444D+01
+ 8.353930957D+01 3.301384331D+01 8.357370699D+01 3.305246275D+01 4.008231576D+01
+ 3.304314407D+01 4.007922781D+01 9.153924453D+01 7.920812478D+01 9.153758765D+01
+ 7.925711228D+01 9.152982426D+01 9.153902862D+01 9.230755228D+01 9.146138090D+01
+ 9.230085257D+01 7.176575728D+01 7.049728697D+01 7.177110224D+01 7.050712127D+01
+ 4.375134021D+01 4.225699614D+01 4.379494548D+01 4.224292421D+01 5.427159682D+01
+ 4.225173892D+01 5.425083331D+01 5.426940501D+01 4.820052308D+01 5.422045658D+01
+ 4.819403810D+01 4.829392352D+01 5.110473578D+01 4.827749572D+01 5.112414223D+01
+ 5.112270903D+01 4.804404414D+01 5.114961959D+01 4.804318247D+01 6.735594883D+01
+ 5.141015603D+01 6.729559937D+01 5.143287206D+01 5.143639694D+01 1.818228889D+01
+ 5.149338248D+01 1.826280556D+01 2.947635002D+01 1.685064744D+01 2.947254969D+01
+ 1.680612789D+01 1.687223696D+01 4.343303285D+01 1.684822235D+01 4.347158230D+01
+ 6.381459999D+01 4.349236896D+01 6.374928831D+01 4.345805723D+01 6.377286880D+01
+ 6.376896225D+01 8.464948031D+01 6.372279560D+01 8.469224481D+01 6.368442060D+01
+ 9.420075239D+01-6.877308478D-02 9.417644574D+01-4.123350056D-02 7.111039337D+01
+ 4.223443661D+01 7.115784865D+01 4.224283324D+01 4.229293586D+01 8.662049812D+00
+ 4.240275839D+01 8.673723289D+00 4.982074055D+01 3.194038305D+01 4.982798942D+01
+ 3.191403964D+01 8.745105287D+00 4.228781659D+01 8.752797480D+00 4.233746192D+01
+ 4.230064505D+01 5.772982054D+01 4.225201392D+01 5.768013978D+01 5.769643824D+01
+ 2.859012205D+01 5.779293761D+01 2.860729697D+01 2.921156583D+01 2.871119532D+01
+ 2.922904658D+01 2.924591740D+01 3.397942784D+01 2.924409133D+01 3.397426492D+01
+ 2.923614080D+01 6.347965820D+01 3.242624094D+01 6.350600539D+01 3.246285031D+01
+ 3.250333220D+01 2.142046356D+01 3.254107349D+01 2.144695240D+01 3.203668099D+01
+ 4.821532257D+01 3.199383418D+01 4.824776464D+01 3.443355155D+01 7.047919006D+01
+ 3.439707538D+01 7.046762536D+01 2.827197169D+01 4.411382936D+01 2.822416723D+01
+ 4.412930686D+01 4.413637254D+01 6.603580462D+01 4.410538335D+01 6.602577638D+01
+ 2.199528301D+01 3.087777478D+01 2.194517381D+01 3.090586361D+01 3.107530786D+01
+ 2.225039338D+01 3.106983781D+01 2.226570547D+01 2.232953056D+01 2.231490628D+01
+ 3.680088827D+01 2.229272666D+01 3.678605912D+01 3.676662965D+01 3.981459085D+01
+ 3.673788566D+01 3.982235096D+01 3.982113654D+01 3.980787686D+01 3.981278974D+01
+ 3.982652082D+01 3.979322108D+01 4.140842841D+01 4.138970443D+01 2.482824251D+01
+ 3.654514760D+01 4.409952308D+01 4.406264057D+01 4.673013686D+01 3.602976510D+01
+ 6.179252770D+01 6.175000093D+01 4.249869041D+01 5.185713584D+01 4.770080714D+01
+ 6.656488262D+01 6.655683140D+01 6.347381222D+01 6.515224589D+01 6.510239153D+01
+ 6.342724030D+01 6.348139495D+01 6.657007727D+01 4.772386995D+01 1.506335360D+01
+ 1.513272497D+01 4.267597302D+01 6.185560919D+01 3.613161172D+01 4.683983775D+01
+ 4.412997091D+01 4.414694269D+01 3.668753756D+01 2.493151167D+01 4.150297279D+01
+ 3.996389011D+01 3.321848141D+01 3.996543486D+01 3.319534299D+01 3.323616784D+01
+ 4.149158475D+01 3.320990221D+01 4.148597036D+01 7.145887050D+01 7.126202765D+01
+ 4.379200439D+01 9.424755325D+01 1.712508575D+01 9.426669524D+01 9.332058784D+01
+ 4.918308859D+01 4.921275535D+01 9.354193696D+01 6.616368608D+01 6.308161590D+01
+ 4.400870295D+01 7.150529109D+01 7.160391217D+01 4.844174478D+01 6.232154300D+01
+ 4.837945145D+01 6.228354310D+01 6.229627635D+01 4.834861785D+01 6.225840134D+01
+ 4.831949662D+01 1.951401556D+01 1.936031023D+01 1.950167059D+01 1.940370301D+01
+ 1.974972088D+01 1.939149294D+01 1.968437715D+01 8.400394050D+01 7.987364883D+01
+ 8.400582185D+01 7.984806350D+01 8.396590391D+01 7.986262759D+01 5.017015535D+01
+ 7.992544236D+01 5.018325511D+01 1.172051099D+01 5.031215254D+01 1.175247352D+01
+ 8.603447511D+01 5.133508878D+01 8.598993007D+01 5.130254640D+01 1.671665653D+01
+ 6.251772123D+01 1.667706964D+01 6.256102930D+01 1.671355505D+01 8.420443951D+01
+ 1.166071594D+01 8.420937917D+01 1.162393771D+01 1.828347969D+01 1.170182911D+01
+ 1.827703660D+01 4.610018702D+01 4.692973437D+01 4.603021805D+01 4.695093068D+01
+ 3.267683055D+01 4.697059220D+01 3.266561139D+01 8.277752602D+01 4.902958131D+01
+ 8.268449437D+01 4.898802425D+01 4.898225794D+01 8.271391509D+01 4.895803118D+01
+ 7.912672341D+01 4.990556410D+01 7.915564174D+01 4.991009596D+01 4.899591538D+00
+ 4.344346005D+01 4.925549345D+00 4.342810880D+01 4.331967935D-01 5.589617385D+01
+ 3.717899952D-01 5.585579794D+01 8.062828255D+00 5.507922723D+01 8.060735383D+00
+ 5.508700201D+01 7.855728602D+01 5.507274339D+01 7.850649068D+01 7.846668704D+01
+ 8.628867258D+01 7.848018109D+01 8.629782704D+01 9.482796617D+01 8.626478974D+01
+ 9.481392376D+01 6.776144343D+01 6.869626108D+01 5.984192274D+01 5.987331811D+01
+ 6.774256178D+01 6.872158893D+01 6.770577971D+01 6.865782397D+01 6.767675923D+01
+ 5.221558904D+01 6.768925407D+01 5.225516182D+01 5.231931110D+01 3.965281302D+01
+ 5.231000320D+01 3.972545477D+01 6.783988127D+01 3.971787748D+01 6.787147624D+01
+ 6.302815487D+01 6.805682509D+01 6.301163219D+01 6.806054445D+01 2.067798656D+01
+ 3.012239556D+01 3.011664058D+01 2.790597520D+01 1.326381926D+01 3.019352636D+01
+ 6.309155893D+01 5.913759626D+01 6.325243185D+01 5.935116070D+01 5.425556479D+01
+ 5.424883273D+01 4.896214950D+01 4.898926280D+01 5.431019209D+01 5.936369798D+01
+ 4.899842653D+01 5.090642859D+01 2.228773994D+01 5.106469894D+01 5.915903246D+01
+ 3.155669844D-01 5.924110068D+01 5.072666628D-01 3.793676654D+01 5.850469394D+00
+ 3.768179503D+01 5.518288976D+00 9.225938898D+01 1.818563498D+00 9.263348663D+01
+ 2.806738911D+01 1.814887394D+01 2.812421571D+01 5.881566946D+01 2.808255113D+01
+ 5.887987684D+01 5.886685379D+01 8.151322551D+01 5.887798422D+01 8.144014574D+01
+ 6.741881472D+00 4.386721508D+01 6.736416018D+00 4.388391569D+01 4.140243686D+01
+ 4.165422186D+01 4.414841041D+01 4.163200359D+01 4.364486224D+01 4.163378897D+01
+ 4.363477442D+01 3.109420211D+01 4.363872489D+01 4.376128963D+01 3.127541335D+01
+ 4.408535327D+01 4.382935513D+01 4.436105982D+01 8.711283335D+01 4.418665570D+01
+ 8.709525616D+01 8.700479418D+01 5.512835814D+01 8.702438434D+01 5.504366502D+01
+-3.195700763D+00 3.036799924D+01 1.752735933D+01 8.853705758D+01 8.843000390D+01
+ 1.744693829D+01 7.476875974D+01 1.747294307D+01 7.479021760D+01 3.691915182D+01
+ 3.975997768D+01 3.688240644D+01 3.971015821D+01 8.248969366D+01 2.539489048D+01
+ 4.801197886D+01 2.548560490D+01 4.790905034D+01 6.228452170D+01 4.804491067D+01
+ 6.240927433D+01 8.202671426D+01 6.230861836D+01 8.217684240D+01 4.713737509D+01
+ 7.450782422D+01 4.717927513D+01 7.445848548D+01 6.457364495D+01 7.445288638D+01
+ 6.459491143D+01 3.226934713D+01 6.461145510D+01 3.230736160D+01 8.439151785D+01
+ 3.631578336D+01 8.422380874D+01 3.643131364D+01 2.448105560D+00 8.486613097D+01
+ 1.001983134D+01 7.712136179D+01 1.005784647D+01 5.217965221D+01 1.033918903D+01
+ 8.294904893D+01 4.441518945D+01 8.272928315D+01 4.429006685D+01 3.393464371D+01
+ 5.513995001D+01 3.395871894D+01-6.613033013D+00 1.765114107D+01 1.773484990D+01
+ 8.048563810D+01 2.299313376D+00 4.306830162D+01 2.274526066D+00 8.227067769D+01
+ 1.947070700D+01 8.218331140D+01 4.021943303D+01 8.110818013D+01 4.239913661D+01
+ 4.159637442D+01 3.056693466D+00 8.069079538D+01 3.181994539D+00 3.607060819D+01
+ 3.235788135D+00 7.927866944D+01 1.510499260D+00 7.929949880D+01 3.128261305D+01
+ 7.848023656D+01 3.121818047D+01 6.999123341D+01 5.617478229D+01 7.001389862D+01
+ 7.962763161D+01 7.757975800D+01-1.080649899D+00-1.402641064D+00 7.396490208D-01
+ 1.239542883D+00 8.282246385D-01 2.053297374D+01 2.094334648D+01 4.549807912D+01
+ 2.095286219D+01 4.560918470D+01 8.647422679D-01 4.569710104D+01 3.781210311D+01
+ 3.796012897D+01 9.993682698D-01 4.575853200D+01 8.298374116D+01 4.407093313D+01
+ 5.940987967D+01 6.910799244D+00 5.940033081D+01 8.571536166D+01 4.155078341D+01
+ 8.579771892D+01 4.157651523D+01 7.047138954D+00 4.158987071D+01 7.216354804D+00
+ 2.806914679D+01 7.485668827D+00-4.242901921D+00-4.036014645D+00 2.817405543D+01
+ 8.087690508D+01 6.732179522D+01 7.645858408D+01 1.482198245D+01 7.646097750D+01
+ 7.724980901D+01 7.642839642D+01 7.726356917D+01 4.426774542D+01-5.992726459D+00
+ 4.446791351D+01 8.286387744D+01 5.518224635D+01 8.282409436D+01 5.524026037D+01
+ 4.486766156D+01 4.156829433D+01-5.009137321D+02 4.368930090D+01 4.161837626D+01
+ 4.270737122D+00 4.164073060D+01 8.264981021D+01 4.491964354D+01 5.368732585D+01
+ 5.392225024D+01 4.511096409D+01 5.390849800D+01 6.101242398D+00 5.400240763D+01
+ 6.113069316D+00 4.115315645D+01 4.905849427D+01 4.112409410D+01 1.906935864D+01
+ 4.114490582D+01 1.906768290D+01 4.116111854D+01 5.457584206D+01 5.227238773D+01
+ 5.453732807D+01 6.613233927D+01 5.444948533D+01 6.609801537D+01 8.315301499D+01
+ 6.606421609D+01 8.315005569D+01 3.505582725D+01 8.315882923D+01 3.506278847D+01
+ 1.436225050D+01 1.482477910D+01 3.574279491D+01 1.461303984D+01 7.840173984D+01
+ 4.366379222D+01 7.850432744D+01 4.366760720D+01 1.512183387D+01 4.368869669D+01
+ 1.515223045D+01 7.800682665D+01 4.098189472D+01 7.809863869D+01 1.919789102D+01
+ 4.461387104D+01 1.927448204D+01 4.462872690D+01 4.473196578D+01 1.034338248D+01
+ 4.474620324D+01 1.042157651D+01 5.005817651D+01 3.179158587D+01 5.004021406D+01
+ 3.176686658D+01 5.339330719D+00 3.189112823D+01 5.409910074D+00 8.548291007D+01
+ 6.697064184D+01 8.544425040D+01 8.569800692D+01 6.719118204D+01 4.309841639D+01
+ 6.722257504D+01 4.308823193D+01 2.675486715D+01 4.311812656D+01 2.681976578D+01
+ 8.142936578D+01 1.833977366D+01 8.145065836D+01 1.829496313D+01 1.821299848D+01
+ 8.016030737D+01 1.809234018D+01 5.134914018D+01 2.374071859D+01 5.138755611D+01
+ 2.387146697D+01 8.010216866D+01 8.213393798D+01 8.007367613D+01 8.208677263D+01
+ 1.345194463D+00 8.216312246D+01 1.410293791D+00 1.510716094D+01 1.477491115D+00
+ 1.510438222D+01 1.519482651D+01 6.237026833D+01 1.515013709D+01 6.230608935D+01
+ 1.113612076D+01 6.231775922D+01 1.102728902D+01 6.330464306D+01 2.620286478D+01
+ 6.333389526D+01 2.621267367D+01 9.469106070D+00-7.997077871D+00 9.630558111D+00
+-7.949278574D+00 9.713022864D+00-7.872604505D+00 1.132110964D+01 2.406854057D+01
+ 1.135319584D+01 2.411875443D+01 2.381631547D+01 5.851737821D+01 2.385291486D+01
+ 2.382030426D+01 5.856909895D+01 2.386490392D+01 2.544873760D+01 7.784529749D+01
+ 2.545136416D+01 7.778015795D+01 3.252714251D+01 1.817915942D+01 3.245050656D+01
+ 7.625517878D+01 3.225319166D+01 7.620120255D+01 3.223612017D+01 1.792045651D+01
+ 6.334190376D+01 6.897948967D+00 6.335281288D+01 2.339913387D+01 4.426059620D+01
+ 3.123422891D+00 4.445236786D+01 3.175004229D+00 4.425068474D+01 1.826463698D+01
+ 4.437876243D+01 1.833856475D+01 6.321668927D+01 4.242657221D+01 8.086191231D+01
+ 4.237324956D+01-4.832363992D+00 6.151482387D+01-4.841852253D+00 8.087413745D+01
+ 7.333835304D+01 8.497470879D+01 7.332855450D+01 4.462588077D+01 4.465834759D+01
+ 7.338900564D+01 4.463163844D+01 5.551949734D+01 7.139085945D+01 5.544439897D+01
+ 7.136640599D+01 1.183710599D+01 2.414898331D+01 1.182695722D+01 2.417213303D+01
+ 4.233945326D+01 2.418336507D+01 4.241186282D+01 8.076104899D+01 1.937799152D+01
+ 8.082584469D+01 1.933753980D+01 3.564561619D+00 3.814366062D+01 3.494914313D+00
+ 3.812703675D+01 7.686913028D+01-5.161697169D-01 5.227474818D+01 5.224371809D+01
+-3.865298402D-01 8.007597552D+01 4.115662096D+01 8.009003575D+01-7.660913458D-01
+ 5.203054696D+01 7.237433729D+01-3.144627052D-01 1.981762138D+01 1.984683050D+01
+ 3.731264703D+01 7.769377722D+01 7.750969074D+01 3.692008952D+01 4.690523100D+01
+ 2.240909319D+01 4.698400857D+01 2.236838308D+01 2.862260752D+01 2.872099980D+01
+ 2.253200203D+01 2.872517573D+01 2.257421032D+01 2.871123510D+01 2.868430007D+01
+ 2.941953006D+01 2.870320525D+01 2.940864658D+01 1.392476600D+01 2.951914712D+01
+ 1.388097062D+01 4.854269810D+01 3.305586629D+01 4.383157434D+01 3.303194861D+01
+ 4.855967545D+01 4.856623111D+01 3.303386065D+01 4.858461107D+01 1.963226338D+01
+ 4.014071274D+01 1.953496772D+01-3.033558609D+01-3.029383604D+01-3.033920457D+01
+-3.032031031D+01-3.033212375D+01-3.029598743D+01-3.034856101D+01 2.765098744D+02
+ 2.218316066D+02 2.765160839D+02 2.909372001D+02 2.909412937D+02 3.105920458D+02
+ 3.601022106D+02 3.601022532D+02 3.600901410D+02 3.680476077D+02 4.162017698D+02
+ 2.909151103D+02 3.416011048D+02 2.908964038D+02 2.281538873D+02 2.074116368D+02
+ 2.431874699D+02 2.874211627D+02 3.431369460D+02 3.719137778D+02 4.067444226D+02
+ 4.277758248D+02 4.758812710D+02 4.668520928D+02 4.484771528D+02 4.218763222D+02
+ 4.218730429D+02 4.034435900D+02 3.792807393D+02 3.628151567D+02 3.256276534D+02
+ 3.078859269D+02 2.951087563D+02 3.299927587D+02 3.078840126D+02 3.552899496D+02
+ 3.552906459D+02 3.552801693D+02 3.552904127D+02 4.366222525D+02 4.698536240D+02
+ 5.084282515D+02 4.383306068D+02 3.916200832D+02 3.627935259D+02 3.628163806D+02
+ 3.628207844D+02 3.792941613D+02 4.034669429D+02 4.218945019D+02 4.379546406D+02
+ 2.675004481D+01 2.673839829D+01 2.673819157D+01 2.670157204D+01 2.674387502D+01
+ 2.675349025D+01 2.671676546D+01 2.672165992D+01 2.672486611D+01 2.674833892D+01
+ 2.675058344D+01 2.677138495D+01 2.673611205D+01 2.675733991D+01 2.675054534D+01
+ 2.671344519D+01 2.675315564D+01 2.667894851D+01 2.675838398D+01 9.817472178D+01
+ 9.816784201D+01 9.818171183D+01 9.820279936D+01 9.818217042D+01 9.819436810D+01
+ 2.685744900D+01 2.682375156D+01 2.668592314D+01 2.684894450D+01 2.682590367D+01
+ 2.674323776D+01 1.237917228D+02 9.818501896D+01 9.817292375D+01-4.531001715D+01
+-4.534171113D+01-4.536506835D+01-4.547639301D+01 1.238315370D+02 1.238538980D+02
+ 1.238058840D+02-1.305119479D+02-1.943774075D+02-1.304883427D+02-1.943654640D+02
+-1.304510622D+02-1.943270793D+02-1.304649314D+02 1.251797612D+02 1.731463667D+02
+ 1.731697647D+02 1.251248857D+02 1.568631518D+01 1.251597884D+02 1.250786027D+02
+ 1.251742019D+02 1.250818816D+02 1.251591320D+02 1.250838699D+02 1.251742198D+02
+ 1.250643445D+02 1.251073975D+02 1.565923440D+01 1.567508917D+01 1.560889641D+01
+ 1.567871048D+01 1.564576492D+01 1.568678459D+01 1.657280052D+02 1.660447486D+02
+ 1.660218118D+02 1.656941510D+02 1.657389052D+02 8.591371246D+01 8.596411889D+01
+ 1.217907185D+02 1.657910754D+02 1.657299238D+02 1.217152814D+02 1.657651146D+02
+ 1.657348809D+02 1.217482991D+02 1.217771511D+02 1.658280848D+02 1.657501703D+02
+ 1.217400967D+02 1.217691194D+02 1.657407964D+02 1.657279051D+02 8.587887678D+01
+ 1.066424028D+02 8.905939414D+01 4.754781250D+01 8.906612802D+01 8.903661875D+01
+ 8.909686262D+01 8.904517672D+01 8.909743109D+01 8.908236922D+01 5.212203445D+01
+ 8.907660405D+01 8.907808227D+01 8.898469412D+01 8.902619127D+01 8.903908142D+01
+ 8.907221325D+01 8.901501411D+01 5.204141503D+01 5.205654728D+01 5.200227415D+01
+ 5.204193772D+01 8.903744035D+01 8.910340348D+01 2.665454569D+01 2.664878346D+01
+-1.774267737D+01-4.524098768D+01-1.777311869D+01 5.066973936D+01 5.067968557D+01
+ 2.758770515D+01 2.758970981D+01 2.763331002D+01 2.755463651D+01 2.732433509D+01
+ 2.755483311D+01 2.733497833D+01 2.757596507D+01-1.118102593D+02-6.448436276D+01
+-6.449482692D+01-1.297570744D+02 5.072610848D+01 5.070482824D+01 5.064990642D+01
+ 2.757607511D+01 5.070388671D+01 2.764738315D+01 2.759764042D+01 2.765076438D+01
+ 2.758240358D+01 5.067354064D+01 1.237881323D+02 1.427564387D+01 6.583114431D+01
+ 1.667731338D+01 2.570744927D+01 2.575803132D+01 1.669404429D+01 2.572816888D+01
+ 2.570250295D+01 6.586103046D+01 6.574285193D+01 2.567125125D+01 2.570449754D+01
+ 1.668741985D+01 6.581529147D+01 1.109061723D+02 1.109963904D+02 1.637401194D+02
+ 1.110406312D+02 8.364496808D+01 8.577866653D+01 4.509057801D+00 2.570841689D+01
+ 2.573599699D+01 2.573344310D+01 2.573924995D+01 4.517806067D+00 4.513926295D+00
+ 2.571610432D+01 2.567404026D+01 6.585177966D+01 6.581210592D+01 2.565455990D+01
+ 2.568125962D+01 4.515725521D+00 4.485338174D+00 2.571037536D+01 2.571079080D+01
+ 1.109652131D+02 6.574208173D+01 2.571531323D+01 2.567884595D+01 2.567878125D+01
+ 1.108592233D+02-7.743035185D+00-7.731185794D+00-1.113979636D+00-1.111450667D+00
+-1.723926401D-01-4.818296646D+01-4.819056951D+01 1.692958162D+01 1.692172711D+01
+ 6.403010215D+01 6.403200306D+01 8.751357892D+01 8.750514451D+01 9.530583035D+01
+ 9.529620680D+01 1.038034857D+02 1.037937890D+02 9.528996781D+01 9.530033715D+01
+ 8.748429005D+01 8.748375983D+01 6.401989490D+01 6.401872142D+01 1.687387499D+01
+ 1.688306764D+01-6.703788581D+01-6.703876065D+01-4.825587401D+01-4.825713356D+01
+-4.815152727D+01-4.814311208D+01-4.814542302D+01-4.814606064D+01-4.814726846D+01
+-4.827566253D+01-4.826605247D+01-6.706512585D+01-6.705479083D+01 1.687108424D+01
+ 1.687094233D+01 6.398984293D+01 6.398996510D+01 8.723216497D+01 8.723268045D+01
+ 9.504932615D+01 9.506066677D+01 1.034941154D+02 1.035056450D+02 1.179588743D+02
+ 1.179705589D+02 1.034904160D+02 1.034914303D+02 1.124031473D+02 1.123631556D+02
+ 1.123965105D+02 1.033739094D+02 1.033651159D+02 1.123818634D+02 1.123839736D+02
+ 1.034807886D+02 1.034928989D+02 1.179741219D+02 1.179652124D+02 9.508755234D+01
+ 9.508863577D+01 8.721697839D+01 8.721832141D+01 6.374072012D+01 6.376255996D+01
+ 1.661768202D+01 1.662845331D+01-6.728566112D+01-6.727488694D+01-4.849640598D+01
+-4.848589324D+01-1.521542473D+01-1.521558506D+01-4.721734727D-01-4.829918028D-01
+-1.521034821D+01-1.521099416D+01-4.848562459D+01-4.848684867D+01-4.837706629D+01
+-4.839201816D+01-4.837738417D+01-4.839232927D+01-4.840691068D+01-4.848094114D+01
+-4.848114118D+01-5.213735340D+01-5.212704777D+01-4.848293467D+01-4.848298086D+01
+-4.850204632D+01-4.850180023D+01-1.521888527D+01-1.522890230D+01-1.479891652D+01
+-1.478805778D+01-4.898694888D-01-4.893632510D-01-1.398120193D+00-1.397532054D+00
+-8.021042097D+00-8.020067512D+00 1.104921809D+02 1.104930456D+02 1.104768257D+02
+ 1.104778462D+02-8.049975560D+00-8.048909987D+00-1.441770006D+00-1.430215501D+00
+-4.931024071D-01-5.024998180D-01-1.517845775D+01-1.518753196D+01-1.475573000D+01
+-1.475470041D+01-4.851284394D+01-4.850105773D+01-5.213108808D+01-5.212983843D+01
+-4.849291471D+01-4.848038391D+01-4.852230497D+01 6.374509209D+01 6.373503397D+01
+ 8.721878765D+01 8.721907289D+01 9.503402929D+01 9.504462541D+01 6.373945149D+01
+ 1.660938072D+01 1.660917308D+01-4.853278972D+01-4.853314926D+01-4.843060132D+01
+-4.845551924D+01-4.841878667D+01-4.844297700D+01-4.843337443D+01-4.854872693D+01
+-4.853831814D+01-6.735704037D+01-6.735707224D+01-4.851767040D+01-4.851768348D+01
+-1.524669163D+01-1.523620018D+01-1.481724142D+01-1.482766501D+01-5.215927559D-01
+-5.215064891D-01-1.442563659D+00-1.442384895D+00-8.091089017D+00-8.080397371D+00
+ 1.104586383D+02 1.104588601D+02-6.597214807D+01-2.209324741D+00-6.599561041D+01
+-2.198774154D+00-6.599047472D+01-2.200058630D+00-6.598629910D+01-6.675986110D+01
+-2.976195768D+00-6.673718955D+01-2.955923437D+00-6.674036853D+01-2.950768501D+00
+-2.600058955D+01-2.601041334D+01-2.599912360D+01-2.974770967D+00-6.674723003D+01
+-2.979176141D+00-6.675627950D+01-2.980406707D+00-6.675990061D+01-2.601686752D+01
+-2.598590848D+01-2.987457120D+01-3.701250236D+01 1.362276561D+01 2.190369763D+01
+ 3.311611380D+01 5.422529951D+01 6.814783324D+01 8.653463383D+01 9.547726365D+01
+ 1.059306776D+02 1.143523250D+02 1.422289163D+02 1.360343670D+02 1.539658390D+02
+ 1.539506484D+02 1.360229245D+02 6.544012583D+01 8.689335614D+00-3.907013933D+01
+-2.502438697D+01-2.501176021D+01 1.215506347D+01 4.056059847D+01 1.163400588D+01
+ 1.210917905D+01-2.507548950D+01-3.910260692D+01-1.088604530D+01 8.734458324D+00
+ 6.539052776D+01 1.360364338D+02 1.539199536D+02 1.359488920D+02 1.539261576D+02
+ 1.878003652D+02 2.167289744D+02 2.167428035D+02 1.581479617D+01-4.931768292D+01
+-4.932502230D+01-1.560864436D+01 1.096517169D+02 2.167499746D+02 2.167098748D+02
+ 2.166993431D+02 2.124726818D+02 2.074807797D+02 2.022149809D+02 2.148302534D+02
+ 2.148000708D+02 2.127451770D+02 2.153277263D+02 2.581972920D+02 2.807858552D+02
+ 2.952460079D+02 3.148493716D+02 3.148305603D+02 2.391684673D+02 2.391583537D+02
+ 2.174386430D+02 3.322977947D+02 2.996289561D+02 2.653876807D+02 2.996611444D+02
+ 1.449693987D+02 2.324446186D+02 2.323483650D+02 1.955309124D+02 2.117066895D+02
+ 2.085960166D+02 2.323986832D+02 2.453692454D+02 2.323733250D+02 2.323759119D+02
+ 2.193170133D+02 2.951651746D+02 3.154690814D+02 2.888249210D+02 3.339788203D+02
+ 4.204543748D+02 4.086501844D+02 4.204369417D+02 3.340382032D+02 2.887994503D+02
+ 3.154280164D+02 2.952016996D+02 2.193427702D+02 2.453631421D+02 2.324056399D+02
+ 2.474159495D+02 2.474299118D+02 1.223919264D+02 2.073651681D+02 2.381668633D+02
+ 2.219896897D+02 2.917082317D+02 2.635721685D+02 2.916893035D+02 2.352588191D+02
+ 3.474108197D+02 3.762197316D+02 3.732359908D+02 3.133102191D+02 3.374406315D+02
+ 3.132449106D+02 3.374460718D+02 3.732739548D+02 3.762029695D+02 2.352400783D+02
+ 2.775949421D+02 2.917226109D+02 2.636228428D+02 2.917451707D+02 1.874756975D+02
+ 1.939737698D+02 1.737493765D+02 1.939572458D+02 1.509138263D+02 1.529112098D+02
+ 1.556300522D+02 1.529279092D+02 1.556329732D+02 1.509347016D+02 1.874340563D+02
+ 1.939335667D+02 1.737148197D+02 2.916450515D+02 2.635101662D+02 2.916460146D+02
+ 2.473888516D+02 2.473790892D+02 1.222726586D+02 2.073213697D+02 2.381114657D+02
+ 2.218990850D+02 2.380843170D+02 2.116175884D+02 1.448601983D+02 2.995871080D+02
+ 2.653276022D+02 2.517126232D+02 2.173563964D+02 2.390498390D+02 2.173505727D+02
+ 2.653349760D+02 4.204052092D+02 4.203544320D+02 4.085717763D+02 4.204008146D+02
+ 3.340105091D+02 2.887962069D+02 3.154688476D+02 2.193130576D+02 2.453305050D+02
+ 2.085832618D+02 2.116590180D+02 1.954595940D+02 1.448929594D+02 1.954715793D+02
+ 2.323080471D+02 2.453485171D+02 2.085819211D+02 2.116565563D+02 2.073132117D+02
+ 1.222746269D+02 2.473705075D+02 2.381062034D+02 2.219771936D+02 2.916960570D+02
+ 2.775938129D+02 2.352151243D+02 2.775819784D+02 2.916781548D+02 1.939062134D+02
+ 1.737162153D+02 1.939212611D+02 1.874114065D+02 1.873925367D+02 1.508977926D+02
+ 1.556552001D+02 1.529409503D+02 1.556926617D+02 1.529655491D+02 1.556828731D+02
+ 1.509397941D+02 1.874412855D+02 2.138591147D+02 2.117109953D+02 2.415065694D+02
+ 3.037265517D+02 3.670767935D+02 3.670901394D+02 4.261661421D+02 4.422428839D+02
+ 4.544124346D+02 4.725840752D+02 4.726381696D+02 4.544237814D+02 4.422538336D+02
+ 4.261778770D+02 4.527684602D+02 4.711222353D+02 4.800915618D+02 4.630522978D+02
+ 4.513970697D+02-9.322790259D+01-9.322349763D+01-9.319757128D+01-9.317585021D+01
+ 4.117519627D+02 4.086365657D+02 4.204341182D+02 3.340342646D+02 2.888530630D+02
+ 3.154866700D+02 2.193007207D+02 2.323866546D+02 2.453599473D+02 2.193287509D+02
+ 3.154758667D+02 2.888447249D+02 3.340604453D+02 4.086548174D+02 4.204628295D+02
+ 3.643627894D+02 3.643468088D+02 2.390871115D+02 2.174321678D+02 2.174225589D+02
+ 2.391174243D+02 3.148522701D+02 2.952092179D+02 2.807381153D+02 2.581271178D+02
+ 2.127225064D+02 2.148285174D+02 2.022042881D+02 2.074810403D+02 2.124929091D+02
+ 2.167186286D+02 2.167069950D+02 1.877466708D+02 1.538885778D+02 1.359198980D+02
+ 1.301016007D+02 1.421321840D+02 1.142567766D+02 9.541342092D+01 6.805636445D+01
+ 5.410624399D+01 3.301290058D+01 2.182596018D+01 1.358132990D+01-3.706857182D+01
+-2.995344702D+01-2.603078447D+01-2.605456140D+01-2.605952953D+01-2.608363381D+01
+-2.608498876D+01-6.683252096D+01-3.056186543D+00-6.681391568D+01-3.049359791D+00
+-6.682921809D+01-3.046087397D+00-1.041767500D+02-1.164744906D+02-1.041396855D+02
+-1.040704581D+02-1.041502317D+02-8.778531551D+01-8.200384036D+01-8.208215839D+01
+-8.782926339D+01-8.206368786D+01-8.813252246D+01-1.172532826D+02-1.165446683D+02
+-1.042835352D+02-1.165351471D+02-1.172480038D+02-8.822371209D+01-1.172666184D+02
+-1.042897336D+02-1.165600418D+02-1.172811883D+02-8.827802727D+01-8.794239114D+01
+-1.165649369D+02-1.540127018D+02-1.201965520D+02-1.202151599D+02-6.342429271D+01
+-1.319630618D+02-1.958146494D+02-1.319478667D+02-1.958259371D+02-1.319438965D+02
+-1.957884148D+02-1.319249332D+02-1.037426607D+02-1.037413887D+02-1.037239186D+02
+-1.535336851D+02-1.041243376D+02-1.041597801D+02-1.041657166D+02-1.041399796D+02
+-1.041501627D+02-1.041542914D+02-1.164856802D+02-1.538855609D+02-1.200991496D+02
+-1.201104736D+02-1.292189873D+02-1.930567846D+02-1.292296532D+02-1.930031146D+02
+-1.291791887D+02-1.930334111D+02-1.291736885D+02-1.930527863D+02-1.291454956D+02
+-1.931031984D+02-1.292025147D+02 7.823027312D+01 9.098810400D+01 7.824118662D+01
+-2.185657189D+02 3.252604464D+02-2.176296605D+02-4.617257692D+02-1.112605432D+02
+-1.522209040D+02-1.113120313D+02-2.185914594D+02 3.252456320D+02-4.617852150D+02
+-1.112649393D+02-1.522603508D+02-1.112933026D+02 9.096000808D+01 7.829268713D+01
+-2.176841421D+02-4.617380219D+02-2.176936399D+02-4.617190743D+02-1.112437337D+02
+-1.522230183D+02-1.113434678D+02 9.101026504D+01 7.821425507D+01-2.186205832D+02
+ 3.252048935D+02-1.113021802D+02-1.522005296D+02-1.112679404D+02 7.824888092D+01
+ 9.098072907D+01 3.251691263D+02-2.186513738D+02-4.617627011D+02-2.177349376D+02
+-4.617378582D+02 7.825390850D+01 9.103616124D+01-2.910529453D+01-2.908277168D+01
+-2.905411301D+01-2.906863478D+01-2.906244839D+01-3.293961819D+01-2.064171436D+01
+-1.957113080D+01-1.063851533D+01-1.673888878D+01-1.428152081D+01-1.293725196D+01
+-1.397735154D+01-2.937599765D+01-4.205092673D+01-1.386211576D+01-1.895284204D+01
+-1.392344189D+01-4.411909395D+00-1.388555525D+01-1.897869592D+01-4.207229984D+01
+-2.938345817D+01-1.402324358D+01-1.296287621D+01-1.431144914D+01-1.395986750D+01
+-3.288760474D+01-6.622191435D+01-7.891778494D+01-1.109937934D+01 3.755032554D+01
+ 3.801805927D+01 3.798675897D+01-6.671672935D+01 2.948212779D+01 3.260336225D+01
+-1.162197922D+01-1.167436690D+01 3.250428355D+01 2.943677908D+01-6.677664898D+01
+ 3.795942984D+01 3.800105483D+01 3.752400698D+01 8.569895048D+00 9.251708129D+00
+ 2.557501556D+01 6.170134207D+01 7.763242302D+01 9.951020770D+01 1.084914392D+02
+ 9.960063451D+01 1.140165287D+02 1.172549412D+02 1.188165301D+02 1.022023702D+02
+ 1.021477846D+02 1.187817662D+02 1.172395160D+02 1.139763908D+02 9.959022871D+01
+ 1.084829352D+02 9.949067467D+01 7.759785360D+01 6.163861999D+01 2.552926125D+01
+ 9.229685344D+00-2.810774244D+01-4.218303425D+01 5.616945018D+00 6.230267163D+01
+ 1.328976788D+02 1.508284338D+02 1.846975233D+02 2.137131225D+02 2.094213597D+02
+ 1.798159917D+02 1.411490786D+02 1.065615423D+02-1.194625156D+01 7.900937970D+01
+ 1.112724838D+02 1.703493604D+02 1.991570603D+02 2.044510080D+02 2.094617312D+02
+ 2.136575243D+02 2.093831319D+02 1.797614490D+02 1.411135465D+02 1.065115785D+02
+-1.195404820D+01 7.896558569D+01 1.112574387D+02 1.521554192D+02 1.748233143D+02
+ 2.230829060D+02 1.518454049D+02 4.086466300D+01 1.007230028D+02 1.394221035D+02
+ 1.909025267D+02 1.296666607D+02 2.107778270D+02 2.107667394D+02 2.086492058D+02
+ 2.384445559D+02 3.006657720D+02 3.639884712D+02 3.927981007D+02 3.804531928D+02
+ 4.046690897D+02 4.230814782D+02 4.391593464D+02 4.513647062D+02 4.696982920D+02
+ 5.129127103D+02 5.135787534D+02 4.978362431D+02 4.680479634D+02 4.496803453D+02
+ 4.230554874D+02 4.230067237D+02 4.391454269D+02 4.513035603D+02 4.697046862D+02
+ 5.095673023D+02 4.710341590D+02 3.936693820D+02 3.793315972D+02 3.268133009D+02
+ 3.639822848D+02 3.268110073D+02 3.090439412D+02 2.962398458D+02 3.311481546D+02
+ 3.564232505D+02 3.564346395D+02 4.377949490D+02 5.096133411D+02 4.710178956D+02
+ 3.936490498D+02 3.793652438D+02 3.927722848D+02 3.639831488D+02 3.267997789D+02
+ 3.090201254D+02 2.962529483D+02 2.962519733D+02 3.311287086D+02 3.564378222D+02
+ 3.564365031D+02 4.377900116D+02 4.710348423D+02 5.096243679D+02 4.697779361D+02
+ 4.513138267D+02 5.128869275D+02 5.135494141D+02 4.978319661D+02 4.289303894D+02
+ 4.770335982D+02 4.770250989D+02 4.599554221D+02 4.483224936D+02 3.427622138D+02
+ 4.483186339D+02-9.634625500D+01 4.086108471D+02 4.173284902D+02 4.086110126D+02
+-9.636514425D+01 4.482963474D+02 4.599311050D+02 4.770349156D+02 4.289241489D+02
+ 4.680362501D+02 4.496491184D+02 4.230286563D+02 4.046327704D+02 3.804553917D+02
+ 3.639886665D+02 3.006575257D+02 2.384465298D+02 2.107507814D+02 2.086451858D+02
+ 2.107440637D+02 2.086491811D+02 1.296443248D+02 1.908495109D+02 1.393721470D+02
+ 1.006642436D+02-2.426569559D+01-2.444682707D+01-2.425984204D+01 4.086620123D+01
+ 1.518168353D+02 2.230189054D+02 2.776643769D+02 2.550578533D+02 1.747887250D+02
+ 1.521227635D+02 2.117555259D+02 1.702763598D+02 1.991135831D+02 2.043828157D+02
+ 2.094005182D+02 2.136226190D+02 2.093498981D+02 1.797439044D+02 1.846642366D+02
+ 1.507911302D+02 1.328379373D+02 6.221888779D+01 5.570212143D+00-4.222146232D+01
+-2.817691957D+01 9.202289612D+00 8.520945500D+00 3.749923189D+01-1.121032191D+01
+-7.899897740D+01-6.631508437D+01-3.294860349D+01-2.945265561D+01-1.408584208D+01
+-1.304743180D+01-1.400938971D+01-1.678081683D+01-1.683210700D+01-1.076610471D+01
+-1.965543106D+01-2.077819133D+01-3.308462881D+01-2.913825281D+01-2.917049148D+01
+1UNSYMMETRIC LEAST-SQUARES PROBLEM.                  SAUNDERS 1979.     ILLC1033
+          1471            21           296           947           207          
+RRA                     1033           320          4732             0          
+(16I5)          (16I5)          (1P,5D16.9)         (1P,5D16.9)                 
+F                          1             0                                      
+    1   29   34   45   49   53   58   59   68   72   74   84   88  100  112  114
+  117  118  121  126  130  134  143  147  151  161  165  169  173  176  180  184
+  187  191  195  196  199  204  242  259  263  289  313  318  328  339  359  362
+  376  385  397  400  402  414  427  436  450  453  472  473  476  481  487  494
+  504  513  542  552  562  572  580  595  601  608  612  622  626  633  637  639
+  641  643  645  647  649  650  652  653  655  657  664  669  677  681  689  700
+  707  714  715  719  734  741  745  749  751  752  755  760  765  766  769  772
+  775  779  782  787  792  797  802  807  811  814  817  821  824  827  830  832
+  834  836  839  844  847  851  855  860  863  866  871  876  879  883  886  887
+  902  907  910  916  920  926  934  936  938  940  943  945  948  951  954  956
+  959  961  962  964  966  968  970  972  974  976  978  980  982  984  986  988
+  990  992  994  997  999 1001 1003 1005 1007 1009 1011 1013 1015 1017 1019 1020
+ 1028 1078 1119 1126 1146 1151 1169 1180 1191 1206 1220 1263 1306 1432 1566 1628
+ 1715 1743 1754 1764 1816 2053 2111 2152 2179 2202 2224 2253 2296 2465 2748 2776
+ 2797 2849 3086 3091 3102 3106 3110 3115 3124 3128 3130 3140 3144 3156 3168 3170
+ 3173 3176 3181 3185 3189 3198 3202 3206 3216 3220 3224 3228 3231 3235 3239 3242
+ 3246 3250 3253 3258 3296 3313 3339 3363 3368 3378 3398 3401 3415 3424 3436 3439
+ 3451 3464 3473 3487 3492 3498 3505 3515 3544 3554 3560 3567 3571 3578 3582 3589
+ 3594 3602 3606 3614 3625 3632 3639 3643 3647 3651 3654 3657 3660 3665 3670 3673
+ 3677 3680 3695 3700 3758 3799 3826 3849 3871 3900 3943 4112 4395 4423 4444 4496
+ 4733                                                                           
+    1    2    3    4    5    6    7  419  420  421  428  429  685  686  687  688
+  689  764  770  779  786  797  798  799  800  801 1032 1033    8   10  483  662
+  996    9   78   79   80   81   82   83   91   92  894  995   11   12  484  661
+   13  485  486  660   14   15   16  654  655   17   18  509  511  575  576  578
+  641  653  967   19   21  505  515   20  963   22  149  495  496  500  502  503
+  518  589  646   23  132  133  148   24  134  137  140  141  144  145  519  520
+  559  560  595   25  128  129  218  525  527  540  542  556  558  598  602   26
+  529   27  530  537   28   29  958  973   30  632  959  960  972   31  631  917
+  974   32  630  918  975   33   34   57  622  629  910  919  920  976   35   56
+  909  977   36   55  908  978   37   52   53   54  620  621  906  929  942  979
+   38  928  930  943   39   42  931  944   40  932  945  946   41  933  947   43
+   45  934  948   44   46  935  949   47  936  950   48  925  938  951   49  924
+  937  952   50   51  907  941   58  623  628  911  921   59   60   61   62   63
+   64   65   66   67   68   69   70   71   72   73   74   75   76   77   84   85
+   86   87   88   89  179  180  181  182  184  186  194  196  197  198  199  895
+  994   90   97   98   99  107  110  112  113  114  115  116  117  118  119  120
+  201  570   93   94   95   96  100  102  104  106  407  409  411  414  416  418
+  422  424  426  691  693  695  724  726  728  730  745  747  749  751  753  755
+  101  103  105  406  408  410  412  413  415  417  423  425  427  690  692  694
+  725  727  729  746  748  750  752  754  108  109  491  493  568  111  121  122
+  123  124  125  126  202  898  988  127  130  131  135  136  138  139  142  143
+  146  147  150  152  153  154  155  156  157  159  160  161  162  163  164  165
+  170  171  478  479  665 1000  151  880 1001  158  166  167  168  169  177  178
+  191  192  193  195  200  893  998  172  173  443  444  461  463  672  870 1009
+  174  176  244  351  352  353  354  404  405  471  876  888  175  878  890  183
+  185  187  252  253  268  269  283  284  314  315  379  380  467  188  189  254
+  255  266  267  285  286  312  313  372  373  378  190  247  248  347  348  357
+  358  400  401  203  210  211  215  231  232  240  544  546  554  603  605  899
+  987  204  207  214  205  206  208  209  212  213  223  224  225  226  229  230
+  233  234  237  238  241  242  243  216  217  219  239  220  617  903  983  985
+  221  616  901  902  982  984  222  227  228  235  236  900  986  245  246  349
+  350  355  356  402  403  877  889  249  322  323  345  346  359  360  398  399
+  250  251  272  273  279  280  318  319  326  327  333  334  337  338  339  340
+  365  366  369  370  371  381  382  388  389  392  393  468  469  256  257  264
+  265  287  288  310  311  374  375  258  259  262  263  289  290  308  309  376
+  377  260  261  291  292  295  296  304  305  849  858  270  271  281  282  316
+  317  390  391  274  275  276  277  278  328  329  330  331  332  383  384  385
+  386  387  293  294  306  307  850  857  297  298  299  302  303  848  859  300
+  301  847  860  320  321  324  325  341  342  361  362  394  395  335  336  367
+  368  343  344  363  364  396  397  470  430  684  802 1031  431  683  432  682
+  433  681  434  680  435  679  436  678  437  438  677  439  440  676  441  675
+  442  445  460  462  673  869 1010  446  459  723  868 1011  447  458  721  722
+  743  744  867 1012  448  456  866 1013  449  450  455  720  734  742  865 1014
+  451  454  697  708  710  715  719  741  843  864 1015  452  706  712  717  828
+  841 1017  453  707  711  713  716  842 1016  457  464  671  871 1008  465  466
+  472  473  474  669  670  757  772  781  789  796  872  884 1005  475  668  873
+  883  885 1004 1006  476  667  882 1003  477  666  881 1002  480  664  481  482
+  663  997  487  488  572  656  659  489  571  573  657  658  490  492  569  574
+  494  567  587  497  586  588  498  566  585  592  499  584  591  501  517  583
+  590  647  504  516  582  645  648  506  514  581  644  649  507  513  580  643
+  650  508  512  579  642  651  510  577  640  652  521  561  594  522  562  593
+  523  563  565  596  524  564  597  526  541  557  528  538  600  531  536  532
+  534  533  535  539  599  601  543  553  606  607  615  545  555  604  547  552
+  608  614  548  550  610  612  549  551  609  611  613  618  904  981  619  905
+  980  624  627  912  922  954  625  626  913  923  953  633  961  971  634  962
+  964  970  639  966  968  674  696  698  699  700  709  714  731  732  733  735
+  736  737  738  739  740  701  704  718  830  839  702  703  705  756  758  773
+  782  788  795  760  767  784  790  762  768  775  777  792  794  763  765  769
+  771  778  780  785  787  803 1030  804 1029  805 1028  806 1026 1027  807  822
+  808  821 1024  809  820 1023  810  819 1022  811  818  812  814  816  813  817
+  815  823 1025  824 1021  825 1020  826 1019  827 1018  829  840  831  838  832
+  837  833  836  834  835  844  863  845  862  846  861  851  856  852  855  853
+  854  874  886 1007  875  887  879  891  892  999  896  993  897  989  914  955
+  915  956  916  957  926  939  927  940  990  992  991    1    2    3    4    5
+    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21
+   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37
+   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53
+   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69
+   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85
+   86   87   88   89   90   91   92   93   94   95   96   97   98   99  100  101
+  102  103  104  105  106  107  108  109  110  111  112  113  114  115  116  117
+  118  119  120  121  122  123  124  125  126  127  128  129  130  131  132  133
+  134  135  136  137  138  139  140  141  142  143  144  145  146  147  148  149
+  150  151  152  153  154  155  156  157  158  159  160  161  162  163  164  165
+  166  167  168  169  170  171  172  173  174  175  176  177  178  179  180  181
+  182  183  184  185  186  187  188  189  190  191  192  193  194  195  196  197
+  198  199  200  201  202  203  204  205  206  207  208  209  210  211  212  213
+  214  215  216  217  218  219  220  221  222  223  224  225  226  227  228  229
+  230  231  232  233  234  235  236  237  238  239  240  241  242  243  244  245
+  246  247  248  249  250  251  252  253  254  255  256  257  258  259  260  261
+  262  263  264  265  266  267  268  269  270  271  272  273  274  275  276  277
+  278  279  280  281  282  283  284  285  286  287  288  289  290  291  292  293
+  294  295  296  297  298  299  300  301  302  303  304  305  306  307  308  309
+  310  311  312  313  314  315  316  317  318  319  320  321  322  323  324  325
+  326  327  328  329  330  331  332  333  334  335  336  337  338  339  340  341
+  342  343  344  345  346  347  348  349  350  351  352  353  354  355  356  357
+  358  359  360  361  362  363  364  365  366  367  368  369  370  371  372  373
+  374  375  376  377  378  379  380  381  382  383  384  385  386  387  388  389
+  390  391  392  393  394  395  396  397  398  399  400  401  402  403  404  405
+  406  407  408  409  410  411  412  413  414  415  416  417  418  419  420  421
+  422  423  424  425  426  427  428  429  430  431  432  433  434  435  436  437
+  438  439  440  441  442  443  444  445  446  447  448  449  450  451  452  453
+  454  455  456  457  458  459  460  461  462  463  464  465  466  467  468  469
+  470  471  472  473  474  475  476  477  478  479  480  481  482  483  484  485
+  486  487  488  489  490  491  492  493  494  495  496  497  498  499  500  501
+  502  503  504  505  506  507  508  509  510  511  512  513  514  515  516  517
+  518  519  520  521  522  523  524  525  526  527  528  529  530  531  532  533
+  534  535  536  537  538  539  540  541  542  543  544  545  546  547  548  549
+  550  551  552  553  554  555  556  557  558  559  560  561  562  563  564  565
+  566  567  568  569  570  571  572  573  574  575  576  577  578  579  580  581
+  582  583  584  585  586  587  588  589  590  591  592  593  594  595  596  597
+  598  599  600  601  602  603  604  605  606  607  608  609  610  611  612  613
+  614  615  616  617  618  619  620  621  622  623  624  625  626  627  628  629
+  630  631  632  633  634  635  636  637  638  639  640  641  642  643  644  645
+  646  647  648  649  650  651  652  653  654  655  656  657  658  659  660  661
+  662  663  664  665  666  667  668  669  670  671  672  673  674  675  676  677
+  678  679  680  681  682  683  684  685  686  687  688  689  690  691  692  693
+  694  695  696  697  698  699  700  701  702  703  704  705  706  707  708  709
+  710  711  712  713  714  715  716  717  718  719  720  721  722  723  724  725
+  726  727  728  729  730  731  732  733  734  735  736  737  738  739  740  741
+  742  743  744  745  746  747  748  749  750  751  752  753  754  755  756  757
+  758  759  760  761  762  763  764  765  766  767  768  769  770  771  772  773
+  774  775  776  777  778  779  780  781  782  783  784  785  786  787  788  789
+  790  791  792  793  794  795  796  797  798  799  800  801  802  803  804  805
+  806  807  808  809  810  811  812  813  814  815  816  817  818  819  820  821
+  822  823  824  825  826  827  828  829  830  831  832  833  834  835  836  837
+  838  839  840  841  842  843  844  845  846  847  848  849  850  851  852  853
+  854  855  856  857  858  859  860  861  862  863  864  865  866  867  868  869
+  870  871  872  873  874  875  876  877  878  879  880  881  882  883  884  885
+  886  887  888  889  890  891  892  893  894  895  896  897  898  899  900  901
+  902  903  904  905  906  907  908  909  910  911  912  913  914  915  916  917
+  918  919  920  921  922  923  924  925  926  927  928  929  930  931  932  933
+  934  935  936  937  938  939  940  941  942  943  944  945  946  947  948  949
+  950  951  952  953  954  955  956  957  958  959  960  961  962  963  964  965
+  966  967  968  969  970  971  972  973  974  975  976  977  978  979  980  981
+  982  983  984  985  986  987  988  989  990  991  992  993  994  995  996  997
+  998  999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013
+ 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029
+ 1030 1031 1032 1033    1    2    3    4    5    6    7    8    9   10   11   12
+   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28
+   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44
+   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60
+   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76
+   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92
+   93   94   95   96   97   98   99  100  101  102  103  104  105  106  107  108
+  109  110  111  112  113  114  115  116  117  118  119  120  121  122  123  124
+  125  126  127  128  129  130  131  132  133  134  135  136  137  138  139  140
+  141  142  143  144  145  146  147  148  149  150  151  152  153  154  155  156
+  157  158  159  160  161  162  163  164  165  166  167  168  169  170  171  172
+  173  174  175  176  177  178  179  180  181  182  183  184  185  186  187  188
+  189  190  191  192  193  194  195  196  197  198  199  200  201  202  203  204
+  205  206  207  208  209  210  211  212  213  214  215  216  217  218  219  220
+  221  222  223  224  225  226  227  228  229  230  231  232  233  234  235  236
+  237  238  239  240  241  242  243  244  245  246  247  248  249  250  251  252
+  253  254  255  256  257  258  259  260  261  262  263  264  265  266  267  268
+  269  270  271  272  273  274  275  276  277  278  279  280  281  282  283  284
+  285  286  287  288  289  290  291  292  293  294  295  296  297  298  299  300
+  301  302  303  304  305  306  307  308  309  310  311  312  313  314  315  316
+  317  318  319  320  321  322  323  324  325  326  327  328  329  330  331  332
+  333  334  335  336  337  338  339  340  341  342  343  344  345  346  347  348
+  349  350  351  352  353  354  355  356  357  358  359  360  361  362  363  364
+  365  366  367  368  369  370  371  372  373  374  375  376  377  378  379  380
+  381  382  383  384  385  386  387  388  389  390  391  392  393  394  395  396
+  397  398  399  400  401  402  403  404  405  406  407  408  409  410  411  412
+  413  414  415  416  417  418  419  420  421  422  423  424  425  426  427  428
+  429  430  431  432  433  434  435  436  437  438  439  440  441  442  443  444
+  445  446  447  448  449  450  451  452  453  454  455  456  457  458  459  460
+  461  462  463  464  465  466  467  468  469  470  471  472  473  474  475  476
+  477  478  479  480  481  482  483  484  485  486  487  488  489  490  491  492
+  493  494  495  496  497  498  499  500  501  502  503  504  505  506  507  508
+  509  510  511  512  513  514  515  516  517  518  519  520  521  522  523  524
+  525  526  527  528  529  530  531  532  533  534  535  536  537  538  539  540
+  541  542  543  544  545  546  547  548  549  550  551  552  553  554  555  556
+  557  558  559  560  561  562  563  564  565  566  567  568  569  570  571  572
+  573  574  575  576  577  578  579  580  581  582  583  584  585  586  587  588
+  589  590  591  592  593  594  595  596  597  598  599  600  601  602  603  604
+  605  606  607  608  609  610  611  612  613  614  615  616  617  618  619  620
+  621  622  623  624  625  626  627  628  629  630  631  632  633  634  635  636
+  637  638  639  640  641  642  643  644  645  646  647  648  649  650  651  652
+  653  654  655  656  657  658  659  660  661  662  663  664  665  666  667  668
+  669  670  671  672  673  674  675  676  677  678  679  680  681  682  683  684
+  685  686  687  688  689  690  691  692  693  694  695  696  697  698  699  700
+  701  702  703  704  705  706  707  708  709  710  711  712  713  714  715  716
+  717  718  719  720  721  722  723  724  725  726  727  728  729  730  731  732
+  733  734  735  736  737  738  739  740  741  742  743  744  745  746  747  748
+  749  750  751  752  753  754  755  756  757  758  759  760  761  762  763  764
+  765  766  767  768  769  770  771  772  773  774  775  776  777  778  779  780
+  781  782  783  784  785  786  787  788  789  790  791  792  793  794  795  796
+  797  798  799  800  801  802  803  804  805  806  807  808  809  810  811  812
+  813  814  815  816  817  818  819  820  821  822  823  824  825  826  827  828
+  829  830  831  832  833  834  835  836  837  838  839  840  841  842  843  844
+  845  846  847  848  849  850  851  852  853  854  855  856  857  858  859  860
+  861  862  863  864  865  866  867  868  869  870  871  872  873  874  875  876
+  877  878  879  880  881  882  883  884  885  886  887  888  889  890  891  892
+  893  894  895  896  897  898  899  900  901  902  903  904  905  906  907  908
+  909  910  911  912  913  914  915  916  917  918  919  920  921  922  923  924
+  925  926  927  928  929  930  931  932  933  934  935  936  937  938  939  940
+  941  942  943  944  945  946  947  948  949  950  951  952  953  954  955  956
+  957  958  959  960  961  962  963  964  965  966  967  968  969  970  971  972
+  973  974  975  976  977  978  979  980  981  982  983  984  985  986  987  988
+  989  990  991  992  993  994  995  996  997  998  999 1000 1001 1002 1003 1004
+ 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020
+ 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033    8   10  483
+  662  996    9   78   79   80   81   82   83   91   92  894  995   11   12  484
+  661   13  485  486  660   14   15   16  654  655   18  509  511  575  576  578
+  641  653  967   19   21  505  515   20  963   22  149  495  496  500  502  503
+  518  589  646   23  132  133  148   24  134  137  140  141  144  145  519  520
+  559  560  595   25  128  129  218  525  527  540  542  556  558  598  602   26
+  529   27  530  537   29  958  973   30  632  959  960  972   31  631  917  974
+   32  630  918  975   33   34   57  622  629  910  919  920  976   35   56  909
+  977   36   55  908  978   37   52   53   54  620  621  906  929  942  979   38
+  928  930  943   39   42  931  944   40  932  945  946   41  933  947   43   45
+  934  948   44   46  935  949   47  936  950   48  925  938  951   49  924  937
+  952   51  907  941   58  623  628  911  921   59   60   61   62   63   64   65
+   66   67   68   69   70   71   72   73   74   75   76   77   84   85   86   87
+   88   89  179  180  181  182  184  186  194  196  197  198  199  895  994   90
+   97   98   99  107  110  112  113  114  115  116  117  118  119  120  201  570
+  100  102  104  106  407  409  411  414  416  418  422  424  426  691  693  695
+  724  726  728  730  745  747  749  751  753  755  101  103  105  406  408  410
+  412  413  415  417  423  425  427  690  692  694  725  727  729  746  748  750
+  752  754  108  109  491  493  568  111  121  122  123  124  125  126  202  898
+  988  150  152  153  154  155  156  157  159  160  161  162  163  164  165  170
+  171  478  479  665 1000  151  880 1001  158  166  167  168  169  177  178  191
+  192  193  195  200  893  998  172  173  443  444  461  463  672  870 1009  174
+  176  244  351  352  353  354  404  405  471  876  888  175  878  890  187  252
+  253  268  269  283  284  314  315  379  380  467  188  189  254  255  266  267
+  285  286  312  313  372  373  378  190  247  248  347  348  357  358  400  401
+  203  210  211  215  231  232  240  544  546  554  603  605  899  987  220  617
+  903  983  985  221  616  901  902  982  984  222  227  228  235  236  900  986
+  245  246  349  350  355  356  402  403  877  889  250  251  272  273  279  280
+  318  319  326  327  333  334  337  338  339  340  365  366  369  370  371  381
+  382  388  389  392  393  468  469  260  261  291  292  295  296  304  305  849
+  858  293  294  306  307  850  857  297  298  299  302  303  848  859  300  301
+  847  860  343  344  363  364  396  397  470  430  684  802 1031  442  445  460
+  462  673  869 1010  446  459  723  868 1011  447  458  721  722  743  744  867
+ 1012  448  456  866 1013  449  450  455  720  734  742  865 1014  451  454  697
+  708  710  715  719  741  843  864 1015  452  706  712  717  828  841 1017  453
+  707  711  713  716  842 1016  464  671  871 1008  476  667  882 1003  477  666
+  881 1002  482  663  997  618  904  981  619  905  980  624  627  912  922  954
+  625  626  913  923  953  633  961  971  634  962  964  970  639  966  968  696
+  698  699  700  709  714  731  732  733  735  736  737  738  739  740  701  704
+  718  830  839    1    2    3    4    5    6    7    8    9   10   11   12   13
+   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29
+   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45
+   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61
+   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77
+   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93
+   94   95   96   97   98   99  100  101  102  103  104  105  106  107  108  109
+  110  111  112  113  114  115  116  117  118  119  120  121  122  123  124  125
+  126  127  128  129  130  131  132  133  134  135  136  137  138  139  140  141
+  142  143  144  145  146  147  148  149  150  151  152  153  154  155  156  157
+  158  159  160  161  162  163  164  165  166  167  168  169  170  171  172  173
+  174  175  176  177  178  179  180  181  182  183  184  185  186  187  188  189
+  190  191  192  193  194  195  196  197  198  199  200  201  202  203  204  205
+  206  207  208  209  210  211  212  213  214  215  216  217  218  219  220  221
+  222  223  224  225  226  227  228  229  230  231  232  233  234  235  236  237
+  238  239  240  241  242  243  244  245  246  247  248  249  250  251  252  253
+  254  255  256  257  258  259  260  261  262  263  264  265  266  267  268  269
+  270  271  272  273  274  275  276  277  278  279  280  281  282  283  284  285
+  286  287  288  289  290  291  292  293  294  295  296  297  298  299  300  301
+  302  303  304  305  306  307  308  309  310  311  312  313  314  315  316  317
+  318  319  320  321  322  323  324  325  326  327  328  329  330  331  332  333
+  334  335  336  337  338  339  340  341  342  343  344  345  346  347  348  349
+  350  351  352  353  354  355  356  357  358  359  360  361  362  363  364  365
+  366  367  368  369  370  371  372  373  374  375  376  377  378  379  380  381
+  382  383  384  385  386  387  388  389  390  391  392  393  394  395  396  397
+  398  399  400  401  402  403  404  405  406  407  408  409  410  411  412  413
+  414  415  416  417  418  419  420  421  422  423  424  425  426  427  428  429
+  430  431  432  433  434  435  436  437  438  439  440  441  442  443  444  445
+  446  447  448  449  450  451  452  453  454  455  456  457  458  459  460  461
+  462  463  464  465  466  467  468  469  470  471  472  473  474  475  476  477
+  478  479  480  481  482  483  484  485  486  487  488  489  490  491  492  493
+  494  495  496  497  498  499  500  501  502  503  504  505  506  507  508  509
+  510  511  512  513  514  515  516  517  518  519  520  521  522  523  524  525
+  526  527  528  529  530  531  532  533  534  535  536  537  538  539  540  541
+  542  543  544  545  546  547  548  549  550  551  552  553  554  555  556  557
+  558  559  560  561  562  563  564  565  566  567  568  569  570  571  572  573
+  574  575  576  577  578  579  580  581  582  583  584  585  586  587  588  589
+  590  591  592  593  594  595  596  597  598  599  600  601  602  603  604  605
+  606  607  608  609  610  611  612  613  614  615  616  617  618  619  620  621
+  622  623  624  625  626  627  628  629  630  631  632  633  634  635  636  637
+  638  639  640  641  642  643  644  645  646  647  648  649  650  651  652  653
+  654  655  656  657  658  659  660  661  662  663  664  665  666  667  668  669
+  670  671  672  673  674  675  676  677  678  679  680  681  682  683  684  685
+  686  687  688  689  690  691  692  693  694  695  696  697  698  699  700  701
+  702  703  704  705  706  707  708  709  710  711  712  713  714  715  716  717
+  718  719  720  721  722  723  724  725  726  727  728  729  730  731  732  733
+  734  735  736  737  738  739  740  741  742  743  744  745  746  747  748  749
+  750  751  752  753  754  755  756  757  758  759  760  761  762  763  764  765
+  766  767  768  769  770  771  772  773  774  775  776  777  778  779  780  781
+  782  783  784  785  786  787  788  789  790  791  792  793  794  795  796  797
+  798  799  800  801  802  803  804  805  806  807  808  809  810  811  812  813
+  814  815  816  817  818  819  820  821  822  823  824  825  826  827  828  829
+  830  831  832  833  834  835  836  837  838  839  840  841  842  843  844  845
+  846  847  848  849  850  851  852  853  854  855  856  857  858  859  860  861
+  862  863  864  865  866  867  868  869  870  871  872  873  874  875  876  877
+  878  879  880  881  882  883  884  885  886  887  888  889  890  891  892  893
+  894  895  896  897  898  899  900  901  902  903  904  905  906  907  908  909
+  910  911  912  913  914  915  916  917  918  919  920  921  922  923  924  925
+  926  927  928  929  930  931  932  933  934  935  936  937  938  939  940  941
+  942  943  944  945  946  947  948  949  950  951  952  953  954  955  956  957
+  958  959  960  961  962  963  964  965  966  967  968  969  970  971  972  973
+  974  975  976  977  978  979  980  981  982  983  984  985  986  987  988  989
+  990  991  992  993  994  995  996  997  998  999 1000 1001 1002 1003 1004 1005
+ 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021
+ 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033              3    4
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 1.000000000D 00 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 7.071067812D-01 7.071067812D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 7.071067812D-01 7.071067812D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 1.000000000D 00 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 1.000000000D 00
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 1.622214211D-01 1.622214211D-01
+ 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01
+ 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01
+ 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01
+ 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01
+ 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01
+ 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01
+ 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01 1.622214211D-01
+ 1.622214211D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01 2.425356250D-01
+ 2.425356250D-01 2.425356250D-01 2.425356250D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01 1.961161351D-01
+ 1.961161351D-01 1.961161351D-01 1.961161351D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01 2.041241452D-01
+ 2.041241452D-01 2.041241452D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 7.071067812D-01
+ 7.071067812D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.886751346D-01
+ 2.886751346D-01 2.886751346D-01 2.886751346D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01 2.773500981D-01
+ 2.773500981D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01
+ 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01
+ 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01
+ 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01 2.294157339D-01
+ 2.294157339D-01 1.000000000D 00 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 4.082482905D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01 3.333333333D-01
+ 3.333333333D-01 3.333333333D-01 1.856953382D-01 1.856953382D-01 1.856953382D-01
+ 1.856953382D-01 1.856953382D-01 1.856953382D-01 1.856953382D-01 1.856953382D-01
+ 1.856953382D-01 1.856953382D-01 1.856953382D-01 1.856953382D-01 1.856953382D-01
+ 1.856953382D-01 1.856953382D-01 1.856953382D-01 1.856953382D-01 1.856953382D-01
+ 1.856953382D-01 1.856953382D-01 1.856953382D-01 1.856953382D-01 1.856953382D-01
+ 1.856953382D-01 1.856953382D-01 1.856953382D-01 1.856953382D-01 1.856953382D-01
+ 1.856953382D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 1.000000000D 00 7.071067812D-01
+ 7.071067812D-01 1.000000000D 00 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 1.000000000D 00 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 7.071067812D-01 7.071067812D-01
+ 1.000000000D 00 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 1.000000000D 00
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.000000000D-01 5.000000000D-01
+ 5.000000000D-01 5.000000000D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 1.000000000D 00 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 4.472135955D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 5.000000000D-01 5.000000000D-01 5.000000000D-01 5.000000000D-01 4.082482905D-01
+ 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01 4.082482905D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 7.071067812D-01 7.071067812D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 7.071067812D-01 7.071067812D-01
+ 5.773502692D-01 5.773502692D-01 5.773502692D-01 7.071067812D-01 7.071067812D-01
+ 1.000000000D 00 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 5.773502692D-01 5.773502692D-01
+ 5.773502692D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01 7.071067812D-01
+ 7.071067812D-01 7.071067812D-01 7.071067812D-01 1.000000000D 00 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01 3.535533906D-01
+ 3.535533906D-01 3.535533906D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01 1.414213562D-01
+ 1.414213562D-01 1.414213562D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01 1.561737619D-01
+ 1.561737619D-01 1.561737619D-01 1.561737619D-01 3.779644730D-01 3.779644730D-01
+ 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01 3.779644730D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01 2.236067978D-01
+ 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01 4.472135955D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01 2.357022604D-01
+ 2.357022604D-01 2.357022604D-01 2.357022604D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01 2.581988897D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01
+ 2.672612419D-01 2.672612419D-01 2.672612419D-01 2.672612419D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01 1.524985703D-01
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02 8.908708064D-02
+ 8.908708064D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02 8.638684256D-02
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01 1.270001270D-01
+ 1.270001270D-01 1.270001270D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01
+ 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.072112535D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01 1.889822365D-01
+ 1.889822365D-01 1.889822365D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.015113446D-01
+ 3.015113446D-01 3.015113446D-01 3.015113446D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01 3.162277660D-01
+ 3.162277660D-01 3.162277660D-01 3.162277660D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01 1.386750491D-01
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02 6.495698025D-02
+ 6.495698025D-02 6.495698025D-02 0.000000000D-01 8.919733354D-03 3.004328371D-02
+ 3.859811887D-02 5.872833529D-02 6.744534743D-02 8.879189112D-02 9.536005840D-02
+ 9.730618202D-02 9.801570628D-02 9.872523051D-02 9.977938084D-02 1.004280887D-01
+ 1.017255045D-01 1.039351657D-01 1.159362615D-01 1.167674184D-01 1.177607524D-01
+ 1.190987124D-01 1.199095972D-01 1.207002100D-01 1.217746324D-01 1.230315039D-01
+ 1.238221166D-01 1.245316409D-01 1.256263354D-01 1.261736827D-01 1.270251118D-01
+ 1.277143639D-01 1.283630718D-01 1.295793991D-01 1.303700118D-01 1.311606245D-01
+ 1.456146470D-01 1.461822664D-01 1.468715185D-01 1.473175052D-01 1.479662131D-01
+ 1.489798191D-01 1.496690712D-01 1.504596840D-01 1.510475755D-01 1.523449912D-01
+ 1.525679846D-01 1.527909779D-01 1.528923385D-01 1.539464888D-01 1.555479864D-01
+ 1.561358779D-01 1.581225458D-01 1.589334306D-01 1.594807779D-01 1.751105834D-01
+ 1.757187470D-01 1.762052780D-01 1.770364349D-01 1.774824216D-01 1.778878640D-01
+ 0.000000000D-01 2.954535174D-03 3.770431918D-03 6.551898087D-03 1.767776276D-02
+ 2.087953938D-02 2.441509193D-02 3.552859452D-02 3.869328492D-02 4.105444065D-02
+ 5.346596080D-02 5.680372020D-02 5.995604853D-02 7.108191321D-02 7.349251721D-02
+ 7.788105272D-02 8.919234848D-02 9.203562501D-02 9.554645341D-02 1.069319216D-01
+ 1.098370085D-01 1.134220093D-01 1.249310982D-01 1.273911505D-01 1.306670996D-01
+ 1.426583093D-01 1.602742617D-01 1.667272632D-01 1.780756451D-01 1.838858189D-01
+ 3.560523938D-01 2.012545300D-01 2.162744473D-01 2.181287579D-01 2.327036407D-01
+ 2.365482450D-01 2.496520413D-01 2.543496285D-01 2.668847694D-01 2.698640287D-01
+ 2.737580813D-01 0.000000000D-01 1.761393420D-04 3.997008144D-04 5.690655663D-04
+ 7.248811381D-04 8.806967098D-04 1.043286871D-03 1.858337804D-01 1.860302434D-01
+ 1.884690958D-01 1.945323540D-01 1.969847556D-01 1.977028621D-01 2.039693579D-01
+ 2.077360300D-01 2.138263865D-01 2.171527102D-01 2.233921078D-01 2.274229888D-01
+ 2.330797715D-01 2.367922469D-01 2.446033492D-01 2.473944803D-01 2.525363943D-01
+ 2.565605008D-01 2.624069720D-01 2.654352138D-01 0.000000000D-01 1.944753000D-03
+ 4.682512076D-03 5.513280349D-03 9.025164405D-03 3.071954495D-02 3.432583450D-02
+ 3.715799907D-02 3.789436185D-02 5.315028829D-02 5.390553218D-02 6.483768738D-02
+ 8.077333331D-02 9.242674643D-01 9.178101291D-02 9.244185132D-02 1.077355400D-01
+ 1.087928814D-01 1.175159482D-01 1.181390245D-01 1.348110332D-01 1.365103319D-01
+ 1.385872526D-01 0.000000000D-01 1.126735788D-03 1.859114050D-02 8.185735502D-02
+ 9.929359134D-02 1.644189199D-01 1.815453038D-01 2.437692877D-01 2.508677232D-01
+ 2.612618608D-01 3.321053735D-01 4.166105575D-02 5.782971430D-02 1.225606854D-01
+ 1.398560797D-01 2.044180403D-01 2.058546285D-01 2.180797118D-01 2.855148487D-01
+ 2.988948362D-01 3.667524990D-01 3.813718958D-01 0.000000000D-01 2.563399020D-03
+ 5.872893038D-02 6.237604281D-02 6.879496068D-02 1.190625902D-01 1.296496366D-01
+ 1.783958993D-01 2.376666863D-01 2.489623145D-01 2.983963184D-01 2.984796810D-01
+ 2.985630436D-01 2.986464061D-01 2.987922906D-01 2.928110263D-02 3.067742566D-02
+ 3.586674564D-02 3.934713292D-02 9.365784710D-02 9.899305157D-02 1.481769677D-01
+ 1.496983346D-01 1.561589338D-01 1.598268868D-01 2.078020458D-01 2.197645745D-01
+ 2.735125914D-01 2.777015605D-01 0.000000000D-01 2.336156932D-03 5.436874315D-03
+ 8.346451586D-03 9.365865519D-03 2.879844364D-02 3.561577431D-02 3.975714343D-02
+ 5.974190408D-02 6.137721393D-02 7.004223239D-02 7.108288412D-02 9.026060874D-02
+ 9.091898025D-02 9.181096742D-02 9.321266160D-02 9.344627730D-02 9.563376967D-02
+ 9.735403069D-02 1.000299923D-01 1.004759859D-01 1.033855632D-01 1.043837393D-01
+ 1.231367081D-01 1.315256353D-01 1.542925465D-01 1.553756738D-01 1.628938515D-01
+ 1.640194544D-01 1.821990029D-01 1.835157459D-01 1.973203096D-01 1.980636323D-01
+ 2.135035058D-01 2.150538645D-01 2.206606411D-01 2.228481335D-01 2.430027965D-01
+ 2.500749807D-01 2.536854050D-01 2.545561544D-01 2.757727069D-01 2.835457382D-01
+ 0.000000000D-01 2.274330020D-04 2.618925477D-04 4.548660038D-04 5.031093679D-04
+ 6.271637325D-04 1.040678281D-03 1.082029737D-03 1.564463377D-03 1.605814832D-03
+ 1.785004470D-03 1.819464015D-03 2.033113199D-03 2.081356563D-03 2.329465292D-03
+ 2.363924838D-03 2.501763021D-03 2.563790203D-03 2.742979842D-03 2.784331297D-03
+ 3.025548116D-03 3.053115753D-03 3.190953936D-03 3.232305391D-03 3.390819302D-03
+ 3.425278847D-03 3.542441302D-03 3.563117030D-03 3.659603758D-03 3.687171395D-03
+ 3.887036761D-03 3.928388215D-03 4.624471039D-03 5.313661954D-03 9.111103896D-03
+ 9.255833988D-03 9.310969261D-03 9.428131716D-03 9.441915535D-03 9.565969899D-03
+ 9.607321355D-03 9.772727173D-03 9.793402902D-03 9.945024899D-03 9.979484453D-03
+ 1.014489027D-02 1.017934981D-02 1.025516081D-02 1.028962036D-02 1.055151290D-02
+ 1.057908054D-02 1.068935109D-02 1.071002682D-02 1.088232455D-02 1.091678409D-02
+ 1.095124364D-02 1.122692000D-02 1.125448764D-02 1.140610965D-02 1.144056919D-02
+ 1.160597500D-02 1.163354264D-02 1.174381319D-02 1.177138083D-02 1.190921901D-02
+ 1.192989473D-02 1.225381447D-02 1.228827401D-02 1.239854456D-02 1.242611219D-02
+ 1.261908565D-02 1.263286947D-02 1.275003192D-02 1.277070766D-02 1.299124875D-02
+ 1.301192447D-02 1.318422220D-02 1.320489793D-02 1.337719566D-02 1.339787139D-02
+ 1.353570957D-02 1.356327721D-02 1.370111539D-02 1.374246684D-02 1.390787266D-02
+ 1.479003704D-02 1.523111922D-02 1.893896634D-02 1.924910225D-02 1.931802135D-02
+ 1.933869707D-02 1.952477862D-02 1.955923816D-02 1.962815726D-02 1.964883298D-02
+ 2.006234754D-02 2.008302326D-02 2.018640190D-02 2.021396954D-02 2.024842908D-02
+ 2.026910481D-02 2.040694299D-02 2.042761872D-02 2.051721354D-02 2.053788926D-02
+ 2.071707890D-02 2.074464654D-02 2.093761999D-02 2.095829573D-02 2.128910736D-02
+ 2.130978309D-02 2.147518891D-02 2.149586463D-02 2.167505428D-02 2.169573000D-02
+ 2.179221673D-02 2.181289246D-02 2.194383873D-02 2.197140637D-02 2.201964973D-02
+ 2.204032546D-02 2.214370410D-02 2.217127174D-02 2.225397464D-02 2.228154228D-02
+ 2.235046137D-02 2.239870473D-02 2.267438110D-02 2.301208465D-02 2.303276037D-02
+ 2.316370665D-02 2.318438238D-02 2.334978820D-02 2.337046392D-02 2.359789693D-02
+ 2.373573511D-02 2.375641084D-02 2.392870857D-02 2.394938429D-02 2.405965484D-02
+ 2.483154866D-02 2.545182049D-02 2.913899188D-02 2.942156016D-02 2.948358734D-02
+ 2.951115498D-02 2.960074980D-02 2.962142552D-02 2.970412844D-02 2.972480416D-02
+ 2.984196661D-02 2.986264235D-02 2.990399379D-02 2.993156143D-02 3.006250771D-02
+ 3.008318344D-02 3.018656208D-02 3.021412971D-02 3.038642744D-02 3.040710317D-02
+ 3.062075235D-02 3.063453617D-02 3.676213259D-01 3.678418670D-01 3.679797052D-01
+ 3.681313272D-01 3.682898411D-01 3.684621388D-01 3.686137608D-01 0.000000000D-01
+ 2.706870341D-05 5.413740683D-05 7.970229339D-05 1.052671799D-04 1.353435171D-04
+ 2.446559644D-02 2.600700871D-02 2.812438285D-02 2.815897063D-02 2.820258132D-02
+ 2.823416147D-02 2.826123017D-02 2.828679507D-02 2.831386377D-02 3.037108523D-02
+ 3.100268832D-02 3.705705497D-02 3.710968857D-02 3.715179543D-02 3.719540612D-02
+ 3.722698627D-02 3.725405498D-02 3.728713895D-02 3.738488705D-02 3.743000155D-02
+ 3.746910080D-02 3.751571912D-02 3.754880308D-02 3.760143668D-02 3.762399394D-02
+ 3.894133749D-02 3.896840620D-02 3.906465047D-02 3.911878787D-02 3.919097110D-02
+ 3.927067338D-02 3.929473445D-02 3.939549018D-02 3.945564286D-02 3.950978027D-02
+ 3.953835278D-02 3.960752836D-02 3.967219249D-02 3.970828410D-02 3.974587952D-02
+ 3.978798638D-02 3.984813906D-02 4.114142155D-02 4.116698645D-02 4.119405515D-02
+ 4.125270400D-02 4.185423075D-02 4.318962010D-02 4.372347509D-02 4.383626137D-02
+ 4.395957434D-02 4.398664305D-02 4.411145985D-02 4.426635299D-02 4.546188738D-02
+ 4.574310113D-02 4.578370419D-02 4.582280343D-02 4.585287977D-02 4.589949808D-02
+ 4.599875001D-02 4.603484160D-02 4.608897900D-02 4.612807825D-02 4.617469658D-02
+ 4.621529963D-02 4.625590269D-02 4.765595616D-02 4.778378060D-02 4.783641420D-02
+ 4.792814703D-02 4.806649818D-02 4.810710124D-02 4.819883406D-02 4.823492567D-02
+ 4.837327681D-02 4.846500965D-02 4.981994863D-02 4.992822344D-02 5.002897918D-02
+ 5.013725399D-02 5.021695627D-02 5.026357460D-02 5.034327690D-02 5.199897926D-02
+ 5.207567392D-02 5.214184185D-02 5.218996399D-02 5.226064338D-02 5.235087240D-02
+ 5.244862050D-02 5.249975027D-02 5.252982661D-02 5.256892583D-02 5.261704799D-02
+ 5.265765105D-02 5.267569684D-02 5.273584952D-02 5.278096402D-02 5.280502509D-02
+ 5.291931517D-02 5.411033812D-02 5.420808622D-02 5.431936867D-02 5.439907095D-02
+ 5.451035340D-02 5.456900227D-02 5.467426945D-02 5.471487251D-02 5.483668167D-02
+ 5.491187251D-02 5.494044502D-02 5.634049852D-02 5.642170463D-02 5.656005578D-02
+ 5.659915503D-02 5.662923135D-02 5.666833059D-02 5.680367411D-02 5.685781152D-02
+ 5.693300236D-02 5.699917031D-02 5.703526190D-02 5.708188022D-02 5.848494136D-02
+ 5.853155969D-02 5.857517038D-02 5.861126197D-02 5.866690320D-02 5.875262076D-02
+ 5.880675816D-02 5.884736122D-02 5.888194900D-02 5.891202534D-02 5.893608641D-02
+ 5.897969710D-02 5.902030015D-02 5.912255970D-02 5.920376581D-02 5.925339177D-02
+ 5.934362079D-02 6.059178878D-02 6.063840709D-02 6.071359795D-02 6.076172008D-02
+ 6.080232314D-02 6.084142236D-02 6.090458268D-02 6.101736894D-02 6.108052925D-02
+ 6.110609415D-02 6.114519337D-02 6.122038421D-02 6.127903308D-02 6.133166666D-02
+ 6.146249873D-02 6.168957508D-02 6.281142246D-02 6.283698734D-02 6.286405604D-02
+ 6.292420872D-02 6.297533849D-02 6.301594154D-02 6.308361330D-02 6.312722399D-02
+ 6.316331561D-02 6.320692628D-02 6.325655224D-02 6.331820873D-02 6.338588048D-02
+ 6.342347590D-02 6.344603316D-02 6.347911714D-02 6.353175072D-02 6.359641486D-02
+ 6.513181185D-02 6.517692637D-02 6.521452179D-02 6.525813248D-02 6.531226989D-02
+ 6.535588058D-02 6.540851416D-02 6.545513249D-02 6.550024699D-02 6.558446073D-02
+ 6.563408670D-02 6.567168211D-02 6.572882716D-02 6.710481957D-02 6.713339210D-02
+ 6.717700279D-02 6.721159057D-02 6.724467455D-02 6.728226997D-02 6.732136919D-02
+ 6.736949135D-02 6.740859058D-02 6.756047608D-02 6.759656769D-02 6.767927761D-02
+ 6.772138449D-02 6.777702571D-02 6.926881203D-02 6.939362883D-02 6.941768990D-02
+ 6.944475860D-02 6.947182731D-02 6.971093420D-02 6.974251434D-02 6.977108685D-02
+ 6.979214031D-02 6.985379679D-02 6.988988840D-02 6.996357541D-02 6.998914031D-02
+ 7.003124717D-02 7.149145335D-02 7.155160603D-02 7.160875107D-02 7.165236174D-02
+ 7.172153733D-02 7.176965946D-02 7.179221672D-02 7.184184266D-02 7.188846099D-02
+ 7.191853733D-02 7.199372817D-02 7.206440756D-02 7.208395719D-02 7.212756788D-02
+ 7.218922437D-02 7.221478926D-02 7.225539232D-02 7.231704880D-02 7.239223964D-02
+ 7.247194194D-02 7.356972824D-02 7.366146106D-02 7.371559847D-02 7.377274351D-02
+ 7.382387329D-02 7.387199542D-02 7.390959086D-02 7.393966718D-02 7.397425498D-02
+ 7.402989620D-02 7.406147634D-02 7.410959850D-02 7.413666720D-02 7.417727026D-02
+ 7.421185804D-02 7.585252223D-02 7.592169780D-02 7.596981993D-02 7.600140010D-02
+ 7.603147644D-02 7.606606423D-02 7.610065201D-02 7.615779705D-02 7.626907950D-02
+ 7.630065965D-02 7.632020927D-02 7.635479705D-02 7.638336959D-02 7.641946118D-02
+ 7.646156806D-02 8.230088892D-02 8.450698825D-02 8.513859131D-02 8.662436236D-02
+ 9.095535491D-02 9.098843889D-02 9.101400378D-02 9.104107248D-02 9.106362972D-02
+ 9.108769079D-02 9.111776713D-02 0.000000000D-01 6.544148519D-04 5.462182629D-02
+ 8.293617554D-02 1.190162477D-01 1.491193309D-01 1.497737457D-01 1.820582118D-01
+ 1.838033180D-01 1.844577328D-01 1.886023602D-01 1.917871792D-01 1.927469877D-01
+ 1.951465088D-01 1.955827853D-01 1.964553384D-01 1.975460299D-01 1.984185830D-01
+ 1.995092744D-01 2.003818276D-01 2.012543807D-01 2.024759551D-01 2.049627315D-01
+ 2.489394096D-01 2.512080477D-01 2.553526751D-01 2.579703345D-01 2.592791642D-01
+ 0.000000000D-01 5.260670577D-04 1.092600812D-03 1.477034431D-03 1.861468050D-03
+ 2.286368366D-03 2.650568636D-03 1.710324938D-01 1.800363338D-01 1.957374121D-01
+ 1.978619137D-01 2.071490206D-01 2.261683681D-01 2.574288913D-01 2.654210639D-01
+ 2.952854860D-01 3.136775997D-01 3.142846003D-01 3.197476044D-01 3.427529214D-01
+ 3.549536305D-01 0.000000000D-01 4.708254894D-04 1.000504165D-03 2.569922463D-03
+ 3.021130222D-03 3.413484797D-03 3.923545745D-03 4.257047131D-03 4.727872622D-03
+ 5.139844924D-03 6.003024989D-03 6.024604491D-02 6.132501998D-02 8.153128057D-02
+ 8.486629446D-02 8.594526953D-02 9.202676544D-02 9.310574051D-02 9.634266576D-02
+ 9.732355219D-02 1.081133030D-01 1.130177352D-01 1.139986216D-01 1.192954084D-01
+ 1.225323336D-01 1.234151314D-01 1.385207825D-01 1.409729986D-01 1.418557964D-01
+ 1.477411150D-01 1.489181787D-01 1.504875970D-01 1.514684835D-01 1.541168769D-01
+ 1.550977633D-01 1.669664892D-01 1.701053258D-01 1.726556305D-01 1.755002011D-01
+ 1.765791762D-01 1.806008106D-01 1.816797857D-01 1.927638024D-01 1.954121958D-01
+ 1.963930822D-01 1.999242734D-01 2.014936917D-01 2.091446059D-01 2.227789274D-01
+ 2.238579025D-01 2.282718914D-01 2.291546892D-01 0.000000000D-01 5.256277727D-03
+ 9.940548759D-03 1.162951447D-02 3.221402562D-02 3.344306704D-02 3.353968979D-02
+ 3.361698799D-02 3.389526152D-02 3.398028954D-02 3.410783157D-02 3.419672450D-02
+ 3.427015780D-02 3.435132091D-02 3.450591731D-02 3.461413479D-02 3.473781192D-02
+ 3.767127868D-02 3.777176634D-02 3.786838909D-02 3.791090311D-02 3.801912059D-02
+ 3.816598717D-02 3.831671866D-02 3.839015196D-02 3.846745016D-02 3.850609926D-02
+ 3.873799386D-02 3.898148320D-02 3.910516032D-02 3.941048822D-02 3.958054427D-02
+ 3.976605995D-02 4.005206330D-02 4.017960532D-02 4.028395790D-02 4.039604029D-02
+ 4.063179981D-02 4.333723688D-02 4.360391567D-02 4.367348405D-02 4.378170154D-02
+ 4.389378393D-02 4.400973123D-02 4.416819254D-02 4.427254512D-02 4.438076260D-02
+ 4.446579062D-02 4.456241337D-02 4.465517121D-02 4.473246942D-02 4.483295708D-02
+ 4.493730965D-02 4.499528330D-02 4.506098678D-02 4.519239372D-02 4.526969192D-02
+ 4.874424609D-02 4.882540921D-02 4.897614070D-02 4.903411435D-02 4.908435818D-02
+ 4.918098094D-02 4.929306333D-02 4.934330716D-02 4.942447027D-02 4.950176847D-02
+ 4.960612105D-02 4.979163673D-02 4.995009804D-02 5.009696463D-02 5.019358738D-02
+ 5.033658906D-02 5.039069780D-02 5.050278019D-02 5.062645731D-02 5.077718880D-02
+ 5.087381155D-02 5.097816413D-02 5.105546233D-02 5.113662544D-02 5.127962712D-02
+ 5.138784460D-02 5.152311645D-02 5.159654974D-02 5.166611812D-02 5.176660579D-02
+ 5.437928501D-02 5.446431303D-02 5.454161123D-02 5.461117961D-02 5.468847782D-02
+ 5.478896548D-02 5.492423733D-02 5.502472500D-02 5.523343014D-02 5.531845816D-02
+ 5.558513696D-02 5.570108424D-02 5.584022101D-02 5.605665598D-02 5.612235947D-02
+ 5.640449789D-02 5.659001361D-02 5.681804329D-02 5.993702570D-02 5.996794500D-02
+ 6.014186596D-02 6.023462382D-02 6.033897639D-02 6.042013948D-02 6.052062717D-02
+ 6.061724992D-02 6.069068319D-02 6.077184628D-02 6.088006379D-02 6.098055142D-02
+ 6.118539168D-02 6.125109518D-02 6.143661085D-02 6.173420891D-02 6.183856148D-02
+ 6.193904917D-02 6.544452262D-02 6.551022606D-02 6.557592956D-02 6.566095759D-02
+ 6.586966273D-02 6.595082583D-02 6.615566609D-02 6.626388355D-02 6.635277647D-02
+ 6.642234485D-02 6.649964305D-02 6.663104999D-02 6.672380785D-02 6.680883589D-02
+ 6.695183754D-02 6.696729719D-02 6.711029884D-02 6.740789696D-02 6.748519511D-02
+ 6.759727751D-02 6.770549502D-02 6.786009144D-02 6.800695797D-02 6.808039130D-02
+ 6.821566312D-02 6.830069115D-02 7.095974931D-02 7.104091240D-02 7.118004917D-02
+ 7.119937376D-02 7.134624029D-02 7.143899815D-02 7.151243148D-02 7.206124870D-02
+ 7.236271165D-02 7.252503790D-02 7.260233610D-02 7.287287980D-02 7.321685683D-02
+ 7.331734446D-02 7.350672507D-02 7.357629345D-02 7.364586183D-02 7.390481082D-02
+ 7.660638294D-02 7.677257406D-02 7.692330559D-02 7.704698271D-02 7.720157912D-02
+ 7.733298606D-02 7.759193505D-02 7.766150343D-02 7.773107181D-02 7.783928927D-02
+ 7.801707516D-02 7.810983297D-02 7.821805048D-02 7.829921358D-02 7.840743103D-02
+ 7.846926964D-02 7.857748710D-02 7.867024496D-02 7.885189574D-02 7.888281499D-02
+ 8.230712535D-02 8.236896390D-02 8.259312870D-02 8.282888821D-02 8.309556703D-02
+ 8.315740558D-02 8.341248963D-02 8.344340893D-02 8.345886853D-02 8.377192625D-02
+ 8.391106301D-02 8.403087524D-02 8.416228217D-02 8.427049969D-02 8.440963645D-02
+ 8.449852937D-02 8.461834160D-02 8.469563980D-02 8.476520819D-02 8.483091163D-02
+ 8.491593966D-02 8.771799947D-02 8.783008186D-02 8.790738007D-02 8.806584137D-02
+ 8.819724831D-02 8.823203250D-02 8.836730438D-02 8.850257620D-02 8.864944279D-02
+ 8.880017432D-02 8.899728470D-02 8.907071802D-02 8.914415129D-02 8.929488277D-02
+ 8.959248089D-02 8.970456328D-02 8.990167366D-02 9.011037881D-02 9.031521907D-02
+ 9.037319268D-02 9.042343652D-02 9.054324875D-02 9.326414546D-02 9.333757873D-02
+ 9.356174353D-02 9.363517685D-02 9.374339431D-02 9.489127260D-02 1.067874659D-01
+ 4.422903425D-01 4.422903425D-01 4.461031903D-01 4.461031903D-01 4.590668727D-01
+ 3.869240137D-01 2.568374918D-01 2.568374918D-01 2.568374918D-01 2.568374918D-01
+ 2.568374918D-01 2.568374918D-01 2.568374918D-01 2.568374918D-01 4.016004418D-01
+ 4.016004418D-01 4.978494921D-01 4.978494921D-01 5.021412980D-01 5.021412980D-01
+ 4.967845916D-01 5.010672174D-01 5.010672174D-01 5.010672174D-01 4.456728317D-01
+ 4.456728317D-01 4.456728317D-01 4.495148389D-01 4.495148389D-01 3.297169252D-01
+ 3.325593125D-01 3.325593125D-01 3.325593125D-01 3.325593125D-01 3.325593125D-01
+ 3.325593125D-01 3.325593125D-01 3.422234292D-01 4.978494921D-01 4.978494921D-01
+ 5.021412980D-01 5.021412980D-01 6.938255721D-01 7.201430938D-01 3.182345893D-01
+ 2.729684624D-01 3.209779909D-01 3.209779909D-01 3.209779909D-01 3.209779909D-01
+ 3.209779909D-01 3.209779909D-01 3.209779909D-01 3.209779909D-01 5.583848458D-01
+ 4.789594152D-01 4.789594152D-01 4.789594152D-01 3.085908655D-01 2.646964752D-01
+ 2.646964752D-01 2.646964752D-01 2.646964752D-01 2.646964752D-01 2.646964752D-01
+ 3.112511316D-01 3.112511316D-01 3.112511316D-01 3.112511316D-01 3.112511316D-01
+ 3.012034630D-01 2.583598670D-01 2.583598670D-01 1.934453276D-01 3.038000446D-01
+ 3.038000446D-01 3.038000446D-01 3.038000446D-01 3.038000446D-01 3.038000446D-01
+ 3.038000446D-01 3.038000446D-01 7.040655037D-01 7.101350339D-01 5.740464387D-01
+ 5.789951149D-01 5.789951149D-01 5.630250734D-01 5.843811969D-01 5.843811969D-01
+ 4.364682802D-01 4.402309378D-01 4.530239736D-01 4.530239736D-01 4.530239736D-01
+ 4.895895636D-01 4.938101633D-01 5.081602022D-01 5.081602022D-01 4.895895636D-01
+ 4.938101633D-01 5.081602022D-01 5.081602022D-01 3.271428450D-01 3.271428450D-01
+ 3.271428450D-01 3.299630420D-01 3.299630420D-01 3.395517116D-01 3.395517116D-01
+ 3.395517116D-01 3.395517116D-01 4.906087670D-01 4.906087670D-01 5.092180650D-01
+ 5.092180650D-01 4.906087670D-01 4.906087670D-01 5.092180650D-01 5.092180650D-01
+ 3.109275565D-01 3.109275565D-01 3.109275565D-01 3.109275565D-01 3.136079665D-01
+ 3.136079665D-01 3.227213604D-01 3.227213604D-01 3.227213604D-01 3.227213604D-01
+ 4.861073341D-01 5.045458881D-01 5.045458881D-01 5.045458881D-01 4.906087670D-01
+ 4.906087670D-01 5.092180650D-01 5.092180650D-01 4.861073341D-01 5.045458881D-01
+ 5.045458881D-01 5.045458881D-01 5.630250734D-01 5.843811969D-01 5.843811969D-01
+ 4.906087670D-01 4.906087670D-01 5.092180650D-01 5.092180650D-01 4.906087670D-01
+ 4.906087670D-01 5.092180650D-01 5.092180650D-01 5.630250734D-01 5.843811969D-01
+ 5.843811969D-01 4.861073341D-01 5.045458881D-01 5.045458881D-01 5.045458881D-01
+ 4.861073341D-01 5.045458881D-01 5.045458881D-01 5.045458881D-01 5.630250734D-01
+ 5.843811969D-01 5.843811969D-01 4.389837175D-01 4.427680599D-01 4.427680599D-01
+ 4.556348240D-01 4.556348240D-01 1.412095294D-01 1.412095294D-01 1.412095294D-01
+ 1.412095294D-01 1.412095294D-01 1.412095294D-01 1.412095294D-01 1.412095294D-01
+ 1.412095294D-01 1.412095294D-01 1.412095294D-01 1.412095294D-01 1.412095294D-01
+ 1.412095294D-01 1.412095294D-01 1.412095294D-01 1.412095294D-01 1.412095294D-01
+ 1.412095294D-01 1.412095294D-01 1.412095294D-01 1.412095294D-01 1.412095294D-01
+ 1.412095294D-01 1.412095294D-01 1.916415041D-01 1.916415041D-01 1.916415041D-01
+ 1.916415041D-01 1.916415041D-01 1.916415041D-01 1.916415041D-01 1.916415041D-01
+ 1.916415041D-01 1.916415041D-01 1.916415041D-01 2.208003550D-01 2.208003550D-01
+ 1.880175106D-01 1.880175106D-01 1.880175106D-01 1.880175106D-01 2.600501932D-01
+ 2.600501932D-01 2.600501932D-01 2.600501932D-01 2.600501932D-01 2.600501932D-01
+ 2.600501932D-01 2.600501932D-01 2.600501932D-01 2.600501932D-01 2.600501932D-01
+ 1.819130460D-01 2.856889447D-01 1.965405038D-01 1.965405038D-01 1.965405038D-01
+ 1.965405038D-01 2.103813844D-01 2.103813844D-01 2.103813844D-01 2.159177366D-01
+ 2.159177366D-01 2.159177366D-01 2.159177366D-01 2.159177366D-01 2.159177366D-01
+ 2.159177366D-01 2.159177366D-01 2.159177366D-01 1.506810529D-01 1.506810529D-01
+ 1.506810529D-01 1.506810529D-01 1.836223486D-01 1.836223486D-01 1.836223486D-01
+ 1.836223486D-01 1.836223486D-01 1.836223486D-01 2.017301746D-01 2.017301746D-01
+ 2.017301746D-01 2.159365249D-01 2.159365249D-01 2.159365249D-01 2.159365249D-01
+ 2.216190650D-01 2.216190650D-01 2.216190650D-01 2.216190650D-01 2.216190650D-01
+ 2.216190650D-01 2.216190650D-01 2.216190650D-01 2.216190650D-01 1.546598005D-01
+ 1.546598005D-01 1.546598005D-01 1.884709143D-01 1.884709143D-01 1.884709143D-01
+ 1.884709143D-01 1.884709143D-01 4.217978911D-01 4.217978911D-01 4.633835986D-01
+ 4.633835986D-01 4.633835986D-01 3.155111430D-01 3.155111430D-01 3.155111430D-01
+ 3.155111430D-01 3.155111430D-01 3.155111430D-01 3.155111430D-01 2.207096728D-01
+ 3.566905317D-01 3.566905317D-01 2.156596946D-01 2.156596946D-01 2.156596946D-01
+ 2.156596946D-01 2.156596946D-01 2.156596946D-01 2.156596946D-01 2.156596946D-01
+ 2.156596946D-01 2.156596946D-01 2.156596946D-01 2.156596946D-01 2.156596946D-01
+ 2.156596946D-01 2.156596946D-01 2.156596946D-01 2.510665101D-01 2.510665101D-01
+ 2.510665101D-01 2.583624600D-01 5.082986434D-01 6.089468325D-01 6.089468325D-01
+ 2.545035319D-01 2.545035319D-01 2.545035319D-01 2.545035319D-01 2.545035319D-01
+ 2.646330257D-01 2.646330257D-01 2.646330257D-01 2.646330257D-01 2.646330257D-01
+ 2.646330257D-01 2.646330257D-01 3.048977636D-01 3.048977636D-01 3.025773701D-01
+ 3.025773701D-01 3.387708354D-01 3.387708354D-01 3.387708354D-01 3.387708354D-01
+ 3.387708354D-01 3.486154580D-01 3.486154580D-01 2.650084512D-01 2.650084512D-01
+ 2.891001286D-01 2.891001286D-01 2.891001286D-01 2.891001286D-01 2.891001286D-01
+ 2.891001286D-01 2.891001286D-01 2.967080267D-01 3.053303112D-01 3.053303112D-01
+ 5.230719651D-01 6.026589913D-01 6.026589913D-01 2.657998556D-01 2.899634788D-01
+ 2.899634788D-01 2.899634788D-01 2.899634788D-01 2.899634788D-01 2.899634788D-01
+ 2.899634788D-01 2.899634788D-01 2.899634788D-01 2.899634788D-01 2.975940967D-01
+ 2.574200075D-01 2.574200075D-01 2.808218264D-01 2.808218264D-01 2.808218264D-01
+ 2.808218264D-01 2.808218264D-01 2.808218264D-01 2.808218264D-01 2.808218264D-01
+ 2.808218264D-01 2.808218264D-01 2.808218264D-01 3.083035201D-01 3.363311129D-01
+ 3.363311129D-01 3.363311129D-01 3.363311129D-01 3.363311129D-01 3.363311129D-01
+ 3.363311129D-01 3.363311129D-01 2.018021360D-01 2.018021360D-01 2.018021360D-01
+ 2.018021360D-01 2.018021360D-01 2.018021360D-01 2.018021360D-01 3.169241600D-01
+ 3.169241600D-01 3.169241600D-01 3.169241600D-01 3.169241600D-01 3.261339219D-01
+ 3.261339219D-01 2.974585708D-01 4.671497018D-01 4.807249923D-01 4.807249923D-01
+ 4.807249923D-01 2.680898894D-01 4.210270747D-01 4.332620495D-01 4.332620495D-01
+ 4.332620495D-01 4.332620495D-01 3.127504512D-01 3.127504512D-01 3.127504512D-01
+ 3.127504512D-01 3.127504512D-01 5.054383131D-01 5.054383131D-01 3.126394842D-01
+ 3.126394842D-01 3.126394842D-01 3.126394842D-01 3.126394842D-01 3.126394842D-01
+ 3.126394842D-01 3.126394842D-01 3.301911746D-01 3.301911746D-01 1.853548275D-01
+ 1.853548275D-01 1.853548275D-01 1.853548275D-01 1.853548275D-01 1.853548275D-01
+ 1.853548275D-01 1.853548275D-01 1.853548275D-01 1.853548275D-01 1.853548275D-01
+ 1.853548275D-01 1.853548275D-01 1.853548275D-01 1.853548275D-01 1.853548275D-01
+ 1.853548275D-01 1.853548275D-01 1.853548275D-01 1.853548275D-01 1.853548275D-01
+ 1.853548275D-01 1.853548275D-01 1.853548275D-01 1.853548275D-01 1.853548275D-01
+ 1.853548275D-01 1.902325862D-01 1.902325862D-01 3.126394842D-01 3.126394842D-01
+ 3.126394842D-01 3.126394842D-01 3.126394842D-01 3.126394842D-01 3.126394842D-01
+ 3.126394842D-01 3.301911746D-01 3.301911746D-01 4.006137334D-01 4.006137334D-01
+ 4.006137334D-01 4.006137334D-01 4.231043289D-01 4.231043289D-01 3.718817593D-01
+ 3.718817593D-01 3.718817593D-01 3.718817593D-01 3.718817593D-01 3.927593318D-01
+ 3.927593318D-01 4.861669392D-01 4.861669392D-01 5.134605218D-01 5.134605218D-01
+ 3.765330307D-01 3.765330307D-01 3.765330307D-01 3.765330307D-01 3.765330307D-01
+ 3.765330307D-01 3.864417947D-01 4.927885537D-01 4.927885537D-01 5.071089048D-01
+ 5.071089048D-01 3.748203801D-01 3.748203801D-01 3.748203801D-01 3.748203801D-01
+ 3.748203801D-01 3.857125962D-01 3.857125962D-01 4.665134071D-01 4.665134071D-01
+ 3.221733615D-01 4.800702070D-01 4.800702070D-01 4.066987888D-01 4.066987888D-01
+ 2.808654883D-01 2.808654883D-01 2.838201377D-01 2.838201377D-01 4.185173861D-01
+ 4.185173861D-01 4.927885537D-01 4.927885537D-01 5.071089048D-01 5.071089048D-01
+ 3.901704008D-01 3.901704008D-01 3.901704008D-01 2.694510118D-01 2.722855831D-01
+ 2.722855831D-01 4.015086859D-01 4.015086859D-01 3.524857528D-01 3.524857528D-01
+ 2.434260584D-01 2.434260584D-01 2.434260584D-01 2.434260584D-01 2.434260584D-01
+ 2.459868523D-01 3.627289285D-01 3.627289285D-01 3.627289285D-01 4.222880197D-01
+ 2.916313846D-01 2.916313846D-01 2.916313846D-01 4.345596374D-01 4.345596374D-01
+ 4.345596374D-01 4.460716747D-01 3.080563360D-01 3.080563360D-01 3.080563360D-01
+ 3.080563360D-01 4.590344413D-01 4.590344413D-01 4.927885537D-01 4.927885537D-01
+ 5.071089048D-01 5.071089048D-01 4.927885537D-01 4.927885537D-01 5.071089048D-01
+ 5.071089048D-01 4.927885537D-01 4.927885537D-01 5.071089048D-01 5.071089048D-01
+ 5.717587342D-01 5.717587342D-01 5.883739453D-01 5.663265740D-01 5.827839274D-01
+ 5.827839274D-01 5.663265740D-01 5.827839274D-01 5.827839274D-01 4.395066301D-01
+ 4.395066301D-01 4.522786176D-01 4.522786176D-01 4.522786176D-01 4.395066301D-01
+ 4.395066301D-01 4.522786176D-01 4.522786176D-01 4.522786176D-01 5.663265740D-01
+ 5.827839274D-01 5.827839274D-01 4.892979052D-01 5.035168187D-01 5.035168187D-01
+ 5.035168187D-01 5.663265740D-01 5.827839274D-01 5.827839274D-01 2.565760265D-01
+ 2.565760265D-01 2.565760265D-01 2.565760265D-01 2.565760265D-01 2.565760265D-01
+ 2.592751554D-01 2.592751554D-01 2.592751554D-01 2.592751554D-01 2.592751554D-01
+ 2.592751554D-01 2.592751554D-01 2.592751554D-01 2.592751554D-01 3.665983220D-01
+ 3.665983220D-01 3.665983220D-01 5.462677967D-01 5.462677967D-01 1.208275568D-01
+ 1.208320124D-01 1.208275568D-01 1.208310576D-01 1.208294663D-01 1.208307393D-01
+ 1.208291481D-01 1.301511903D-01 1.284921208D-01 1.301543729D-01 1.305932482D-01
+ 1.305942030D-01 1.311915699D-01 1.326959669D-01 1.326950121D-01 1.326953304D-01
+ 1.329365686D-01 1.343986376D-01 1.305907022D-01 1.321297891D-01 1.305884744D-01
+ 1.286814832D-01 1.280510177D-01 1.291381809D-01 1.304824950D-01 1.321762545D-01
+ 1.330511408D-01 1.341102974D-01 1.347499924D-01 1.362120614D-01 1.359386793D-01
+ 1.353807762D-01 1.345727237D-01 1.345724054D-01 1.340122745D-01 1.332777392D-01
+ 1.327771222D-01 1.316466762D-01 1.311065955D-01 1.307176864D-01 1.317768430D-01
+ 1.311046859D-01 1.325444770D-01 1.325444770D-01 1.325441587D-01 1.325444770D-01
+ 1.350157363D-01 1.360265180D-01 1.371989738D-01 1.350714312D-01 1.336529633D-01
+ 1.327774405D-01 1.327780770D-01 1.327780770D-01 1.332783757D-01 1.340122745D-01
+ 1.345717689D-01 1.350593374D-01 1.555298032D-01 1.555298032D-01 1.555310148D-01
+ 1.555314187D-01 1.555310148D-01 1.555306109D-01 1.555322264D-01 1.555314187D-01
+ 1.555298032D-01 1.555334379D-01 1.555334379D-01 1.555322264D-01 1.555334379D-01
+ 1.555342456D-01 1.555322264D-01 1.555326302D-01 1.555338418D-01 1.555298032D-01
+ 1.555342456D-01 1.582869283D-01 1.582869283D-01 1.582881399D-01 1.582869283D-01
+ 1.582877361D-01 1.582881399D-01 1.555342456D-01 1.555314187D-01 1.555302071D-01
+ 1.555318225D-01 1.555358611D-01 1.555322264D-01 1.592751641D-01 1.582857168D-01
+ 1.582873322D-01 1.527508699D-01 1.527532930D-01 1.527496583D-01 1.527480429D-01
+ 1.592755679D-01 1.592755679D-01 1.592751641D-01 1.848500633D-01 1.818042753D-01
+ 1.848525606D-01 1.818062732D-01 1.848555575D-01 1.818092700D-01 1.848560570D-01
+ 1.970447032D-01 1.993322908D-01 1.993397829D-01 1.970452027D-01 1.918272054D-01
+ 1.970501974D-01 1.970452027D-01 1.970511964D-01 1.970457022D-01 1.970496979D-01
+ 1.970462016D-01 1.970511964D-01 1.970447032D-01 1.970472006D-01 1.918262065D-01
+ 1.918292033D-01 1.918222107D-01 1.918287038D-01 1.918227102D-01 1.918287038D-01
+ 2.097331186D-01 2.097489127D-01 2.097510186D-01 2.097357510D-01 2.097399627D-01
+ 2.057208988D-01 2.057293223D-01 2.075314255D-01 2.097425951D-01 2.097346980D-01
+ 2.075208961D-01 2.097420686D-01 2.097346980D-01 2.075230020D-01 2.075308990D-01
+ 2.097452274D-01 2.097368039D-01 2.075224755D-01 2.075277402D-01 2.097389098D-01
+ 2.097368039D-01 2.057198459D-01 2.067601485D-01 2.137362364D-01 2.115680705D-01
+ 2.137400623D-01 2.137378761D-01 2.137389692D-01 2.137378761D-01 2.137389692D-01
+ 2.137362364D-01 2.118085527D-01 2.137367830D-01 2.137356899D-01 2.137329571D-01
+ 2.137351433D-01 2.137384226D-01 2.137367830D-01 2.137351433D-01 2.118058200D-01
+ 2.118025407D-01 2.117998079D-01 2.118041803D-01 2.137296778D-01 2.137400623D-01
+ 1.864087635D-01 1.864077953D-01 1.843602198D-01 1.830837524D-01 1.843607038D-01
+ 1.875240387D-01 1.875230705D-01 1.864591057D-01 1.864586217D-01 1.864557173D-01
+ 1.864552333D-01 1.864445839D-01 1.864552333D-01 1.864450680D-01 1.864562014D-01
+ 1.800099688D-01 1.821955016D-01 1.821974378D-01 1.791865820D-01 1.875191981D-01
+ 1.875245227D-01 1.875250068D-01 1.864566854D-01 1.875191981D-01 1.864576536D-01
+ 1.864595898D-01 1.864566854D-01 1.864562014D-01 1.875216184D-01 1.554535810D-01
+ 1.513304366D-01 1.532725716D-01 1.514262229D-01 1.517671903D-01 1.517667962D-01
+ 1.514218869D-01 1.517667962D-01 1.517648252D-01 1.532741484D-01 1.532713891D-01
+ 1.517644311D-01 1.517656136D-01 1.514254345D-01 1.532733600D-01 1.549687371D-01
+ 1.549718905D-01 1.569554147D-01 1.549722847D-01 1.539434695D-01 1.540242768D-01
+ 1.509685775D-01 1.517671903D-01 1.517648252D-01 1.517640369D-01 1.517652194D-01
+ 1.509654240D-01 1.509654240D-01 1.517644311D-01 1.517656136D-01 1.532769077D-01
+ 1.532749367D-01 1.517640369D-01 1.517656136D-01 1.509681833D-01 1.509638473D-01
+ 1.517624602D-01 1.517667962D-01 1.549730731D-01 1.532698124D-01 1.517632485D-01
+ 1.517648252D-01 1.517632485D-01 7.879069361D-02 7.652106471D-02 7.652126512D-02
+ 7.664772303D-02 7.664772303D-02 7.666555940D-02 7.574628454D-02 7.574608413D-02
+ 7.699162441D-02 7.699142400D-02 7.789266208D-02 7.789266208D-02 7.834177805D-02
+ 7.834157764D-02 7.849068174D-02 7.849048133D-02 7.865321322D-02 7.865301281D-02
+ 7.849028092D-02 7.849048133D-02 7.834097642D-02 7.834097642D-02 7.789206085D-02
+ 7.789206085D-02 7.699002114D-02 7.699022155D-02 7.538434637D-02 7.538434637D-02
+ 7.574387964D-02 7.574387964D-02 7.574608413D-02 7.574628454D-02 7.574688577D-02
+ 7.574728659D-02 7.574788781D-02 7.574548291D-02 7.574568332D-02 7.538594964D-02
+ 7.538615005D-02 7.699222564D-02 7.699222564D-02 7.789386453D-02 7.789386453D-02
+ 7.833857151D-02 7.833857151D-02 7.848807643D-02 7.848827684D-02 7.864960587D-02
+ 7.864980628D-02 7.892616992D-02 7.892637033D-02 7.864920505D-02 7.864920505D-02
+ 7.881955247D-02 7.881875084D-02 7.881935206D-02 7.864639933D-02 7.864619892D-02
+ 7.881855043D-02 7.881855043D-02 7.864800260D-02 7.864820301D-02 7.892516788D-02
+ 7.892496747D-02 7.848707438D-02 7.848707438D-02 7.833616661D-02 7.833616661D-02
+ 7.788685023D-02 7.788725104D-02 7.698501093D-02 7.698521133D-02 7.537933615D-02
+ 7.537953656D-02 7.573886942D-02 7.573906983D-02 7.637576837D-02 7.637576837D-02
+ 7.665794387D-02 7.665774346D-02 7.637596878D-02 7.637596878D-02 7.573927024D-02
+ 7.573927024D-02 7.574147473D-02 7.574187555D-02 7.574247678D-02 7.574307800D-02
+ 7.574287759D-02 7.574147473D-02 7.574147473D-02 7.567153209D-02 7.567173249D-02
+ 7.574147473D-02 7.574147473D-02 7.574107392D-02 7.574107392D-02 7.637797287D-02
+ 7.637777246D-02 7.638598922D-02 7.638618963D-02 7.665974755D-02 7.665974755D-02
+ 7.664231199D-02 7.664231199D-02 7.651545326D-02 7.651545326D-02 7.878307808D-02
+ 7.878307808D-02 7.878247686D-02 7.878247686D-02 7.651425081D-02 7.651425081D-02
+ 7.664050831D-02 7.664070872D-02 7.665854510D-02 7.665834469D-02 7.637737164D-02
+ 7.637717124D-02 7.638538799D-02 7.638538799D-02 7.573927024D-02 7.573947065D-02
+ 7.566992882D-02 7.566992882D-02 7.573947065D-02 7.573967105D-02 7.573866901D-02
+ 7.788685023D-02 7.788664982D-02 7.833596620D-02 7.833596620D-02 7.848547111D-02
+ 7.848567152D-02 7.788664982D-02 7.698481052D-02 7.698481052D-02 7.573826819D-02
+ 7.573826819D-02 7.574027228D-02 7.574027228D-02 7.574147473D-02 7.574207596D-02
+ 7.574227637D-02 7.574007187D-02 7.574027228D-02 7.538013779D-02 7.538013779D-02
+ 7.574067310D-02 7.574067310D-02 7.637737164D-02 7.637757205D-02 7.638558840D-02
+ 7.638538799D-02 7.665914632D-02 7.665914632D-02 7.664151036D-02 7.664151036D-02
+ 7.651425081D-02 7.651445122D-02 7.878267727D-02 7.878267727D-02 7.540438724D-02
+ 7.662447561D-02 7.540378602D-02 7.662467602D-02 7.540398643D-02 7.662487643D-02
+ 7.540438724D-02 5.563999397D-02 5.654075309D-02 5.564014188D-02 5.654090099D-02
+ 5.563999397D-02 5.654090099D-02 5.621727851D-02 5.621535571D-02 5.621579943D-02
+ 5.654090099D-02 5.564014188D-02 5.654075309D-02 5.563999397D-02 5.654075309D-02
+ 5.563999397D-02 5.621565152D-02 5.621757432D-02 5.616151723D-02 5.606064404D-02
+ 5.677577874D-02 5.689277389D-02 5.705118325D-02 5.734936558D-02 5.754608308D-02
+ 5.780610517D-02 5.793256643D-02 5.808032642D-02 5.819939228D-02 5.859312311D-02
+ 5.850570954D-02 5.875892787D-02 5.875863205D-02 5.850541373D-02 5.750836657D-02
+ 5.670670575D-02 5.603194991D-02 5.623014650D-02 5.623029440D-02 5.675521954D-02
+ 5.715649368D-02 5.674811996D-02 5.675492373D-02 5.622999859D-02 5.603209782D-02
+ 5.643070961D-02 5.670788901D-02 5.750807075D-02 5.850570954D-02 5.875818833D-02
+ 5.850437837D-02 5.875818833D-02 5.923637457D-02 5.964489619D-02 5.964504410D-02
+ 5.680713521D-02 5.588729598D-02 5.588744389D-02 5.636370733D-02 5.813298163D-02
+ 5.964533992D-02 5.964460038D-02 5.964430456D-02 5.958454977D-02 5.951399770D-02
+ 5.943960003D-02 5.961768114D-02 5.961723741D-02 5.958824747D-02 5.962478072D-02
+ 6.023016775D-02 6.054920509D-02 6.075346591D-02 6.103034949D-02 6.102990577D-02
+ 5.996171491D-02 5.996156701D-02 5.965480602D-02 6.127646824D-02 6.081514350D-02
+ 6.033163257D-02 6.081558722D-02 5.863143126D-02 5.986675804D-02 5.986498315D-02
+ 5.934538269D-02 5.957390040D-02 5.952997175D-02 5.986601850D-02 6.004912848D-02
+ 5.986557478D-02 5.986513106D-02 5.968098572D-02 6.075213473D-02 6.103892815D-02
+ 6.066279836D-02 6.130042932D-02 6.252140904D-02 6.235471683D-02 6.252111322D-02
+ 6.130116886D-02 6.066235464D-02 6.103833652D-02 6.075272637D-02 5.968157735D-02
+ 6.004898058D-02 5.986601850D-02 6.007797052D-02 6.007723098D-02 5.831195019D-02
+ 5.951222280D-02 5.994736785D-02 5.971914596D-02 6.070362094D-02 6.030634032D-02
+ 6.070332513D-02 5.990639736D-02 6.148989934D-02 6.189664607D-02 6.185360487D-02
+ 6.100771959D-02 6.134894311D-02 6.100742377D-02 6.134923893D-02 6.185523186D-02
+ 6.189679398D-02 5.990639736D-02 6.050438900D-02 6.070376885D-02 6.030693195D-02
+ 6.070391676D-02 5.923045825D-02 5.932230906D-02 5.903684681D-02 5.932230906D-02
+ 5.871470341D-02 5.874324963D-02 5.878185359D-02 5.874384126D-02 5.878214941D-02
+ 5.871588667D-02 5.923134570D-02 5.932319651D-02 5.903773426D-02 6.070288140D-02
+ 6.030545287D-02 6.070258559D-02 6.007737889D-02 6.007634354D-02 5.830973157D-02
+ 5.951074373D-02 5.994559295D-02 5.971677943D-02 5.994544505D-02 5.957197760D-02
+ 5.862980427D-02 6.081484768D-02 6.033118885D-02 6.013905649D-02 5.965406648D-02
+ 5.996038374D-02 5.965391857D-02 6.033104094D-02 6.251963414D-02 6.251889460D-02
+ 6.235249822D-02 6.251948624D-02 6.129968978D-02 6.066131928D-02 6.103804071D-02
+ 5.968054200D-02 6.004809313D-02 5.952938012D-02 5.957301295D-02 5.934449525D-02
+ 5.863069172D-02 5.934508688D-02 5.986527896D-02 6.004942430D-02 5.953026757D-02
+ 5.957360458D-02 5.951207490D-02 5.831002739D-02 6.007649144D-02 5.994574086D-02
+ 5.971811060D-02 6.070273350D-02 6.050379737D-02 5.990565782D-02 6.050409319D-02
+ 6.070332513D-02 5.932304860D-02 5.903803008D-02 5.932334442D-02 5.923134570D-02
+ 5.923045825D-02 5.871499922D-02 5.878200150D-02 5.874354545D-02 5.878229732D-02
+ 5.874369335D-02 5.878200150D-02 5.871499922D-02 5.923045825D-02 5.960392570D-02
+ 5.957375249D-02 5.999484628D-02 6.087356712D-02 6.176826201D-02 6.176826201D-02
+ 6.260187094D-02 6.282876166D-02 6.300048273D-02 6.325695503D-02 6.325769457D-02
+ 6.300063064D-02 6.282890956D-02 6.260201884D-02 6.297770491D-02 6.323698746D-02
+ 6.336389244D-02 6.312339419D-02 6.295892061D-02 6.293155765D-02 6.293140974D-02
+ 6.293155765D-02 6.293170555D-02 6.239820176D-02 6.235412520D-02 6.252066950D-02
+ 6.130072514D-02 6.066279836D-02 6.103892815D-02 5.968098572D-02 5.986601850D-02
+ 6.004927639D-02 5.968187317D-02 6.103966769D-02 6.066368581D-02 6.130220422D-02
+ 6.235545637D-02 6.252200067D-02 6.172951014D-02 6.172980596D-02 5.996112328D-02
+ 5.965524974D-02 5.965495393D-02 5.996112328D-02 6.103034949D-02 6.075287427D-02
+ 6.054846556D-02 6.022913240D-02 5.958795165D-02 5.961768114D-02 5.943945212D-02
+ 5.951399770D-02 5.958484558D-02 5.964460038D-02 5.964504410D-02 5.923607875D-02
+ 5.875789251D-02 5.850408256D-02 5.842184576D-02 5.859164403D-02 5.819791320D-02
+ 5.793167898D-02 5.754519564D-02 5.734818231D-02 5.705029580D-02 5.689233017D-02
+ 5.677592665D-02 5.606064404D-02 5.616122141D-02 5.621594734D-02 5.621550361D-02
+ 5.621609524D-02 5.621476407D-02 5.621491198D-02 5.563940234D-02 5.654016145D-02
+ 5.563969816D-02 5.654030936D-02 5.563955025D-02 5.654045727D-02 1.889625121D-01
+ 1.883666206D-01 1.889711335D-01 1.889751906D-01 1.889706263D-01 1.897643031D-01
+ 1.900442453D-01 1.900396810D-01 1.897607531D-01 1.900396810D-01 1.897435103D-01
+ 1.883316278D-01 1.883656063D-01 1.889589621D-01 1.883656063D-01 1.883311207D-01
+ 1.897369174D-01 1.883306135D-01 1.889594692D-01 1.883656063D-01 1.883311207D-01
+ 1.897364103D-01 1.897541602D-01 1.883686492D-01 1.865540962D-01 1.881901353D-01
+ 1.881886139D-01 1.909388432D-01 2.180607298D-01 2.144670736D-01 2.180624981D-01
+ 2.144670736D-01 2.180630875D-01 2.144694312D-01 2.180642663D-01 2.196480214D-01
+ 2.196509684D-01 2.196521473D-01 2.168483055D-01 2.196297495D-01 2.196273919D-01
+ 2.196268025D-01 2.196285707D-01 2.196279813D-01 2.196226766D-01 2.189295259D-01
+ 2.168282655D-01 2.187232310D-01 2.187285357D-01 1.368006732D-01 1.345473413D-01
+ 1.367991952D-01 1.345477109D-01 1.367999342D-01 1.345466023D-01 1.368003037D-01
+ 1.345462328D-01 1.368017818D-01 1.345451242D-01 1.368010428D-01 1.441193829D-01
+ 1.445694580D-01 1.441252952D-01 1.527979255D-01 1.528367251D-01 1.248071683D-01
+ 1.250662017D-01 1.374384644D-01 1.359936419D-01 1.374366168D-01 1.527975559D-01
+ 1.528370946D-01 1.250632455D-01 1.374362473D-01 1.359903163D-01 1.374366168D-01
+ 1.445727837D-01 1.441256647D-01 1.248060597D-01 1.250658322D-01 1.248064293D-01
+ 1.250676798D-01 1.374392035D-01 1.359936419D-01 1.374340302D-01 1.445742618D-01
+ 1.441227086D-01 1.527957083D-01 1.528352470D-01 1.374358778D-01 1.359932724D-01
+ 1.374362473D-01 1.441227086D-01 1.445720447D-01 1.528348775D-01 1.527957083D-01
+ 1.250669407D-01 1.248038426D-01 1.250650931D-01 1.441238171D-01 1.445753703D-01
+ 6.163892838D-02 6.163844147D-02 6.163909068D-02 6.163990219D-02 6.164022680D-02
+ 6.157790263D-02 6.176860809D-02 6.178532526D-02 6.192441852D-02 6.183012075D-02
+ 6.186858645D-02 6.188968578D-02 6.187378013D-02 6.163535772D-02 6.143929627D-02
+ 6.187637697D-02 6.179766025D-02 6.187540316D-02 6.202261155D-02 6.187556546D-02
+ 6.179652413D-02 6.143832246D-02 6.163454621D-02 6.187215711D-02 6.188838736D-02
+ 6.186728803D-02 6.187264401D-02 6.157887644D-02 6.106210520D-02 6.086539454D-02
+ 6.191695260D-02 6.267133474D-02 6.267912526D-02 6.267944987D-02 6.105707382D-02
+ 6.254814712D-02 6.259667558D-02 6.191143432D-02 6.191029820D-02 6.259440334D-02
+ 6.254668640D-02 6.105528850D-02 6.267815145D-02 6.267847605D-02 6.267068553D-02
+ 6.222175675D-02 6.223214411D-02 6.248501144D-02 6.304479285D-02 6.329165499D-02
+ 6.363070497D-02 6.376996053D-02 6.363232799D-02 6.385581857D-02 6.390613235D-02
+ 6.393064003D-02 6.367339053D-02 6.367436434D-02 6.393210075D-02 6.390807998D-02
+ 6.385744159D-02 6.363443792D-02 6.377207046D-02 6.363249029D-02 6.329311571D-02
+ 6.304560436D-02 6.248582295D-02 6.223295562D-02 6.165386021D-02 6.143540101D-02
+ 6.217598743D-02 6.305436870D-02 6.414828772D-02 6.442614964D-02 6.495103601D-02
+ 6.540077630D-02 6.533455687D-02 6.487605224D-02 6.427715592D-02 6.374139529D-02
+ 6.190510452D-02 6.331502655D-02 6.381524294D-02 6.473095378D-02 6.517744803D-02
+ 6.525957311D-02 6.533731602D-02 6.540207472D-02 6.533585529D-02 6.487686375D-02
+ 6.427796744D-02 6.374171989D-02 6.190575373D-02 6.331453965D-02 6.381475603D-02
+ 6.444806048D-02 6.479912084D-02 6.554636167D-02 6.444237989D-02 6.272246003D-02
+ 6.365001897D-02 6.424972680D-02 6.504776831D-02 6.409927236D-02 6.535663002D-02
+ 6.535695462D-02 6.532416951D-02 6.578592020D-02 6.674999720D-02 6.773111596D-02
+ 6.817744790D-02 6.798609323D-02 6.836117436D-02 6.864633990D-02 6.889531197D-02
+ 6.908423211D-02 6.936809923D-02 7.003727254D-02 7.004749760D-02 6.980339460D-02
+ 6.934180622D-02 6.905728989D-02 6.864487918D-02 6.864487918D-02 6.889498737D-02
+ 6.908342060D-02 6.936858614D-02 6.998630955D-02 6.938936086D-02 6.819075671D-02
+ 6.796856455D-02 6.715477969D-02 6.773062905D-02 6.715461739D-02 6.687919001D-02
+ 6.668069402D-02 6.722148603D-02 6.761295972D-02 6.761312202D-02 6.887356343D-02
+ 6.998614724D-02 6.938822474D-02 6.818962059D-02 6.796840225D-02 6.817631179D-02
+ 6.773046675D-02 6.715445509D-02 6.687919001D-02 6.668150553D-02 6.668036941D-02
+ 6.722083682D-02 6.761312202D-02 6.761312202D-02 6.887372574D-02 6.938887395D-02
+ 6.998679645D-02 6.936972225D-02 6.908358290D-02 7.003743484D-02 7.004765990D-02
+ 6.980404381D-02 6.873658010D-02 6.948187330D-02 6.948187330D-02 6.921748248D-02
+ 6.903732668D-02 6.740212874D-02 6.903602826D-02 6.900567769D-02 6.842106399D-02
+ 6.855626200D-02 6.842138860D-02 6.900600229D-02 6.903667747D-02 6.921699558D-02
+ 6.948203560D-02 6.873674241D-02 6.934278003D-02 6.905793910D-02 6.864552839D-02
+ 6.836052515D-02 6.798593092D-02 6.773079135D-02 6.674951029D-02 6.578559559D-02
+ 6.535646771D-02 6.532384491D-02 6.535468239D-02 6.532222188D-02 6.409813624D-02
+ 6.504679450D-02 6.424956449D-02 6.364985666D-02 6.171423675D-02 6.171147761D-02
+ 6.171439905D-02 6.272408306D-02 6.444351601D-02 6.554684858D-02 6.639358085D-02
+ 6.604333200D-02 6.479960775D-02 6.444838509D-02 6.537237336D-02 6.472965536D-02
+ 6.517647421D-02 6.525811238D-02 6.533585529D-02 6.539931558D-02 6.533293385D-02
+ 6.487410461D-02 6.495022449D-02 6.442533813D-02 6.414715160D-02 6.305290798D-02
+ 6.217517592D-02 6.143475180D-02 6.165272409D-02 6.223246871D-02 6.222208135D-02
+ 6.267133474D-02 6.191679030D-02 6.086669296D-02 6.106340362D-02 6.158066177D-02
+ 6.163487081D-02 6.187296862D-02 6.188903657D-02 6.187410474D-02 6.183109457D-02
+ 6.182849773D-02 6.192230859D-02 6.178402683D-02 6.176649816D-02 6.157563039D-02
+ 6.163860377D-02 6.163941529D-02                                        0457D 01
+-3.033558609D+01-3.029383604D+01-3.033920457D+01-3.032031031D+01-3.033212375D+01
+-3.029598743D+01-3.034856101D+01 2.765098744D+02 2.218316066D+02 2.765160839D+02
+ 2.909372001D+02 2.909412937D+02 3.105920458D+02 3.601022106D+02 3.601022532D+02
+ 3.600901410D+02 3.680476077D+02 4.162017698D+02 2.909151103D+02 3.416011048D+02
+ 2.908964038D+02 2.281538873D+02 2.074116368D+02 2.431874699D+02 2.874211627D+02
+ 3.431369460D+02 3.719137778D+02 4.067444226D+02 4.277758248D+02 4.758812710D+02
+ 4.668520928D+02 4.484771528D+02 4.218763222D+02 4.218730429D+02 4.034435900D+02
+ 3.792807393D+02 3.628151567D+02 3.256276534D+02 3.078859269D+02 2.951087563D+02
+ 3.299927587D+02 3.078840126D+02 3.552899496D+02 3.552906459D+02 3.552801693D+02
+ 3.552904127D+02 4.366222525D+02 4.698536240D+02 5.084282515D+02 4.383306068D+02
+ 3.916200832D+02 3.627935259D+02 3.628163806D+02 3.628207844D+02 3.792941613D+02
+ 4.034669429D+02 4.218945019D+02 4.379546406D+02 2.675004481D+01 2.673839829D+01
+ 2.673819157D+01 2.670157204D+01 2.674387502D+01 2.675349025D+01 2.671676546D+01
+ 2.672165992D+01 2.672486611D+01 2.674833892D+01 2.675058344D+01 2.677138495D+01
+ 2.673611205D+01 2.675733991D+01 2.675054534D+01 2.671344519D+01 2.675315564D+01
+ 2.667894851D+01 2.675838398D+01 9.817472178D+01 9.816784201D+01 9.818171183D+01
+ 9.820279936D+01 9.818217042D+01 9.819436810D+01 2.685744900D+01 2.682375156D+01
+ 2.668592314D+01 2.684894450D+01 2.682590367D+01 2.674323776D+01 1.237917228D+02
+ 9.818501896D+01 9.817292375D+01-4.531001715D+01-4.534171113D+01-4.536506835D+01
+-4.547639301D+01 1.238315370D+02 1.238538980D+02 1.238058840D+02-1.305119479D+02
+-1.943774075D+02-1.304883427D+02-1.943654640D+02-1.304510622D+02-1.943270793D+02
+-1.304649314D+02 1.251797612D+02 1.731463667D+02 1.731697647D+02 1.251248857D+02
+ 1.568631518D+01 1.251597884D+02 1.250786027D+02 1.251742019D+02 1.250818816D+02
+ 1.251591320D+02 1.250838699D+02 1.251742198D+02 1.250643445D+02 1.251073975D+02
+ 1.565923440D+01 1.567508917D+01 1.560889641D+01 1.567871048D+01 1.564576492D+01
+ 1.568678459D+01 1.657280052D+02 1.660447486D+02 1.660218118D+02 1.656941510D+02
+ 1.657389052D+02 8.591371246D+01 8.596411889D+01 1.217907185D+02 1.657910754D+02
+ 1.657299238D+02 1.217152814D+02 1.657651146D+02 1.657348809D+02 1.217482991D+02
+ 1.217771511D+02 1.658280848D+02 1.657501703D+02 1.217400967D+02 1.217691194D+02
+ 1.657407964D+02 1.657279051D+02 8.587887678D+01 1.066424028D+02 8.905939414D+01
+ 4.754781250D+01 8.906612802D+01 8.903661875D+01 8.909686262D+01 8.904517672D+01
+ 8.909743109D+01 8.908236922D+01 5.212203445D+01 8.907660405D+01 8.907808227D+01
+ 8.898469412D+01 8.902619127D+01 8.903908142D+01 8.907221325D+01 8.901501411D+01
+ 5.204141503D+01 5.205654728D+01 5.200227415D+01 5.204193772D+01 8.903744035D+01
+ 8.910340348D+01 2.665454569D+01 2.664878346D+01-1.774267737D+01-4.524098768D+01
+-1.777311869D+01 5.066973936D+01 5.067968557D+01 2.758770515D+01 2.758970981D+01
+ 2.763331002D+01 2.755463651D+01 2.732433509D+01 2.755483311D+01 2.733497833D+01
+ 2.757596507D+01-1.118102593D+02-6.448436276D+01-6.449482692D+01-1.297570744D+02
+ 5.072610848D+01 5.070482824D+01 5.064990642D+01 2.757607511D+01 5.070388671D+01
+ 2.764738315D+01 2.759764042D+01 2.765076438D+01 2.758240358D+01 5.067354064D+01
+ 1.237881323D+02 1.427564387D+01 6.583114431D+01 1.667731338D+01 2.570744927D+01
+ 2.575803132D+01 1.669404429D+01 2.572816888D+01 2.570250295D+01 6.586103046D+01
+ 6.574285193D+01 2.567125125D+01 2.570449754D+01 1.668741985D+01 6.581529147D+01
+ 1.109061723D+02 1.109963904D+02 1.637401194D+02 1.110406312D+02 8.364496808D+01
+ 8.577866653D+01 4.509057801D+00 2.570841689D+01 2.573599699D+01 2.573344310D+01
+ 2.573924995D+01 4.517806067D+00 4.513926295D+00 2.571610432D+01 2.567404026D+01
+ 6.585177966D+01 6.581210592D+01 2.565455990D+01 2.568125962D+01 4.515725521D+00
+ 4.485338174D+00 2.571037536D+01 2.571079080D+01 1.109652131D+02 6.574208173D+01
+ 2.571531323D+01 2.567884595D+01 2.567878125D+01 1.108592233D+02-7.743035185D+00
+-7.731185794D+00-1.113979636D+00-1.111450667D+00-1.723926401D-01-4.818296646D+01
+-4.819056951D+01 1.692958162D+01 1.692172711D+01 6.403010215D+01 6.403200306D+01
+ 8.751357892D+01 8.750514451D+01 9.530583035D+01 9.529620680D+01 1.038034857D+02
+ 1.037937890D+02 9.528996781D+01 9.530033715D+01 8.748429005D+01 8.748375983D+01
+ 6.401989490D+01 6.401872142D+01 1.687387499D+01 1.688306764D+01-6.703788581D+01
+-6.703876065D+01-4.825587401D+01-4.825713356D+01-4.815152727D+01-4.814311208D+01
+-4.814542302D+01-4.814606064D+01-4.814726846D+01-4.827566253D+01-4.826605247D+01
+-6.706512585D+01-6.705479083D+01 1.687108424D+01 1.687094233D+01 6.398984293D+01
+ 6.398996510D+01 8.723216497D+01 8.723268045D+01 9.504932615D+01 9.506066677D+01
+ 1.034941154D+02 1.035056450D+02 1.179588743D+02 1.179705589D+02 1.034904160D+02
+ 1.034914303D+02 1.124031473D+02 1.123631556D+02 1.123965105D+02 1.033739094D+02
+ 1.033651159D+02 1.123818634D+02 1.123839736D+02 1.034807886D+02 1.034928989D+02
+ 1.179741219D+02 1.179652124D+02 9.508755234D+01 9.508863577D+01 8.721697839D+01
+ 8.721832141D+01 6.374072012D+01 6.376255996D+01 1.661768202D+01 1.662845331D+01
+-6.728566112D+01-6.727488694D+01-4.849640598D+01-4.848589324D+01-1.521542473D+01
+-1.521558506D+01-4.721734727D-01-4.829918028D-01-1.521034821D+01-1.521099416D+01
+-4.848562459D+01-4.848684867D+01-4.837706629D+01-4.839201816D+01-4.837738417D+01
+-4.839232927D+01-4.840691068D+01-4.848094114D+01-4.848114118D+01-5.213735340D+01
+-5.212704777D+01-4.848293467D+01-4.848298086D+01-4.850204632D+01-4.850180023D+01
+-1.521888527D+01-1.522890230D+01-1.479891652D+01-1.478805778D+01-4.898694888D-01
+-4.893632510D-01-1.398120193D+00-1.397532054D+00-8.021042097D+00-8.020067512D+00
+ 1.104921809D+02 1.104930456D+02 1.104768257D+02 1.104778462D+02-8.049975560D+00
+-8.048909987D+00-1.441770006D+00-1.430215501D+00-4.931024071D-01-5.024998180D-01
+-1.517845775D+01-1.518753196D+01-1.475573000D+01-1.475470041D+01-4.851284394D+01
+-4.850105773D+01-5.213108808D+01-5.212983843D+01-4.849291471D+01-4.848038391D+01
+-4.852230497D+01 6.374509209D+01 6.373503397D+01 8.721878765D+01 8.721907289D+01
+ 9.503402929D+01 9.504462541D+01 6.373945149D+01 1.660938072D+01 1.660917308D+01
+-4.853278972D+01-4.853314926D+01-4.843060132D+01-4.845551924D+01-4.841878667D+01
+-4.844297700D+01-4.843337443D+01-4.854872693D+01-4.853831814D+01-6.735704037D+01
+-6.735707224D+01-4.851767040D+01-4.851768348D+01-1.524669163D+01-1.523620018D+01
+-1.481724142D+01-1.482766501D+01-5.215927559D-01-5.215064891D-01-1.442563659D+00
+-1.442384895D+00-8.091089017D+00-8.080397371D+00 1.104586383D+02 1.104588601D+02
+-6.597214807D+01-2.209324741D+00-6.599561041D+01-2.198774154D+00-6.599047472D+01
+-2.200058630D+00-6.598629910D+01-6.675986110D+01-2.976195768D+00-6.673718955D+01
+-2.955923437D+00-6.674036853D+01-2.950768501D+00-2.600058955D+01-2.601041334D+01
+-2.599912360D+01-2.974770967D+00-6.674723003D+01-2.979176141D+00-6.675627950D+01
+-2.980406707D+00-6.675990061D+01-2.601686752D+01-2.598590848D+01-2.987457120D+01
+-3.701250236D+01 1.362276561D+01 2.190369763D+01 3.311611380D+01 5.422529951D+01
+ 6.814783324D+01 8.653463383D+01 9.547726365D+01 1.059306776D+02 1.143523250D+02
+ 1.422289163D+02 1.360343670D+02 1.539658390D+02 1.539506484D+02 1.360229245D+02
+ 6.544012583D+01 8.689335614D+00-3.907013933D+01-2.502438697D+01-2.501176021D+01
+ 1.215506347D+01 4.056059847D+01 1.163400588D+01 1.210917905D+01-2.507548950D+01
+-3.910260692D+01-1.088604530D+01 8.734458324D+00 6.539052776D+01 1.360364338D+02
+ 1.539199536D+02 1.359488920D+02 1.539261576D+02 1.878003652D+02 2.167289744D+02
+ 2.167428035D+02 1.581479617D+01-4.931768292D+01-4.932502230D+01-1.560864436D+01
+ 1.096517169D+02 2.167499746D+02 2.167098748D+02 2.166993431D+02 2.124726818D+02
+ 2.074807797D+02 2.022149809D+02 2.148302534D+02 2.148000708D+02 2.127451770D+02
+ 2.153277263D+02 2.581972920D+02 2.807858552D+02 2.952460079D+02 3.148493716D+02
+ 3.148305603D+02 2.391684673D+02 2.391583537D+02 2.174386430D+02 3.322977947D+02
+ 2.996289561D+02 2.653876807D+02 2.996611444D+02 1.449693987D+02 2.324446186D+02
+ 2.323483650D+02 1.955309124D+02 2.117066895D+02 2.085960166D+02 2.323986832D+02
+ 2.453692454D+02 2.323733250D+02 2.323759119D+02 2.193170133D+02 2.951651746D+02
+ 3.154690814D+02 2.888249210D+02 3.339788203D+02 4.204543748D+02 4.086501844D+02
+ 4.204369417D+02 3.340382032D+02 2.887994503D+02 3.154280164D+02 2.952016996D+02
+ 2.193427702D+02 2.453631421D+02 2.324056399D+02 2.474159495D+02 2.474299118D+02
+ 1.223919264D+02 2.073651681D+02 2.381668633D+02 2.219896897D+02 2.917082317D+02
+ 2.635721685D+02 2.916893035D+02 2.352588191D+02 3.474108197D+02 3.762197316D+02
+ 3.732359908D+02 3.133102191D+02 3.374406315D+02 3.132449106D+02 3.374460718D+02
+ 3.732739548D+02 3.762029695D+02 2.352400783D+02 2.775949421D+02 2.917226109D+02
+ 2.636228428D+02 2.917451707D+02 1.874756975D+02 1.939737698D+02 1.737493765D+02
+ 1.939572458D+02 1.509138263D+02 1.529112098D+02 1.556300522D+02 1.529279092D+02
+ 1.556329732D+02 1.509347016D+02 1.874340563D+02 1.939335667D+02 1.737148197D+02
+ 2.916450515D+02 2.635101662D+02 2.916460146D+02 2.473888516D+02 2.473790892D+02
+ 1.222726586D+02 2.073213697D+02 2.381114657D+02 2.218990850D+02 2.380843170D+02
+ 2.116175884D+02 1.448601983D+02 2.995871080D+02 2.653276022D+02 2.517126232D+02
+ 2.173563964D+02 2.390498390D+02 2.173505727D+02 2.653349760D+02 4.204052092D+02
+ 4.203544320D+02 4.085717763D+02 4.204008146D+02 3.340105091D+02 2.887962069D+02
+ 3.154688476D+02 2.193130576D+02 2.453305050D+02 2.085832618D+02 2.116590180D+02
+ 1.954595940D+02 1.448929594D+02 1.954715793D+02 2.323080471D+02 2.453485171D+02
+ 2.085819211D+02 2.116565563D+02 2.073132117D+02 1.222746269D+02 2.473705075D+02
+ 2.381062034D+02 2.219771936D+02 2.916960570D+02 2.775938129D+02 2.352151243D+02
+ 2.775819784D+02 2.916781548D+02 1.939062134D+02 1.737162153D+02 1.939212611D+02
+ 1.874114065D+02 1.873925367D+02 1.508977926D+02 1.556552001D+02 1.529409503D+02
+ 1.556926617D+02 1.529655491D+02 1.556828731D+02 1.509397941D+02 1.874412855D+02
+ 2.138591147D+02 2.117109953D+02 2.415065694D+02 3.037265517D+02 3.670767935D+02
+ 3.670901394D+02 4.261661421D+02 4.422428839D+02 4.544124346D+02 4.725840752D+02
+ 4.726381696D+02 4.544237814D+02 4.422538336D+02 4.261778770D+02 4.527684602D+02
+ 4.711222353D+02 4.800915618D+02 4.630522978D+02 4.513970697D+02-9.322790259D+01
+-9.322349763D+01-9.319757128D+01-9.317585021D+01 4.117519627D+02 4.086365657D+02
+ 4.204341182D+02 3.340342646D+02 2.888530630D+02 3.154866700D+02 2.193007207D+02
+ 2.323866546D+02 2.453599473D+02 2.193287509D+02 3.154758667D+02 2.888447249D+02
+ 3.340604453D+02 4.086548174D+02 4.204628295D+02 3.643627894D+02 3.643468088D+02
+ 2.390871115D+02 2.174321678D+02 2.174225589D+02 2.391174243D+02 3.148522701D+02
+ 2.952092179D+02 2.807381153D+02 2.581271178D+02 2.127225064D+02 2.148285174D+02
+ 2.022042881D+02 2.074810403D+02 2.124929091D+02 2.167186286D+02 2.167069950D+02
+ 1.877466708D+02 1.538885778D+02 1.359198980D+02 1.301016007D+02 1.421321840D+02
+ 1.142567766D+02 9.541342092D+01 6.805636445D+01 5.410624399D+01 3.301290058D+01
+ 2.182596018D+01 1.358132990D+01-3.706857182D+01-2.995344702D+01-2.603078447D+01
+-2.605456140D+01-2.605952953D+01-2.608363381D+01-2.608498876D+01-6.683252096D+01
+-3.056186543D+00-6.681391568D+01-3.049359791D+00-6.682921809D+01-3.046087397D+00
+-1.041767500D+02-1.164744906D+02-1.041396855D+02-1.040704581D+02-1.041502317D+02
+-8.778531551D+01-8.200384036D+01-8.208215839D+01-8.782926339D+01-8.206368786D+01
+-8.813252246D+01-1.172532826D+02-1.165446683D+02-1.042835352D+02-1.165351471D+02
+-1.172480038D+02-8.822371209D+01-1.172666184D+02-1.042897336D+02-1.165600418D+02
+-1.172811883D+02-8.827802727D+01-8.794239114D+01-1.165649369D+02-1.540127018D+02
+-1.201965520D+02-1.202151599D+02-6.342429271D+01-1.319630618D+02-1.958146494D+02
+-1.319478667D+02-1.958259371D+02-1.319438965D+02-1.957884148D+02-1.319249332D+02
+-1.037426607D+02-1.037413887D+02-1.037239186D+02-1.535336851D+02-1.041243376D+02
+-1.041597801D+02-1.041657166D+02-1.041399796D+02-1.041501627D+02-1.041542914D+02
+-1.164856802D+02-1.538855609D+02-1.200991496D+02-1.201104736D+02-1.292189873D+02
+-1.930567846D+02-1.292296532D+02-1.930031146D+02-1.291791887D+02-1.930334111D+02
+-1.291736885D+02-1.930527863D+02-1.291454956D+02-1.931031984D+02-1.292025147D+02
+ 7.823027312D+01 9.098810400D+01 7.824118662D+01-2.185657189D+02 3.252604464D+02
+-2.176296605D+02-4.617257692D+02-1.112605432D+02-1.522209040D+02-1.113120313D+02
+-2.185914594D+02 3.252456320D+02-4.617852150D+02-1.112649393D+02-1.522603508D+02
+-1.112933026D+02 9.096000808D+01 7.829268713D+01-2.176841421D+02-4.617380219D+02
+-2.176936399D+02-4.617190743D+02-1.112437337D+02-1.522230183D+02-1.113434678D+02
+ 9.101026504D+01 7.821425507D+01-2.186205832D+02 3.252048935D+02-1.113021802D+02
+-1.522005296D+02-1.112679404D+02 7.824888092D+01 9.098072907D+01 3.251691263D+02
+-2.186513738D+02-4.617627011D+02-2.177349376D+02-4.617378582D+02 7.825390850D+01
+ 9.103616124D+01-2.910529453D+01-2.908277168D+01-2.905411301D+01-2.906863478D+01
+-2.906244839D+01-3.293961819D+01-2.064171436D+01-1.957113080D+01-1.063851533D+01
+-1.673888878D+01-1.428152081D+01-1.293725196D+01-1.397735154D+01-2.937599765D+01
+-4.205092673D+01-1.386211576D+01-1.895284204D+01-1.392344189D+01-4.411909395D+00
+-1.388555525D+01-1.897869592D+01-4.207229984D+01-2.938345817D+01-1.402324358D+01
+-1.296287621D+01-1.431144914D+01-1.395986750D+01-3.288760474D+01-6.622191435D+01
+-7.891778494D+01-1.109937934D+01 3.755032554D+01 3.801805927D+01 3.798675897D+01
+-6.671672935D+01 2.948212779D+01 3.260336225D+01-1.162197922D+01-1.167436690D+01
+ 3.250428355D+01 2.943677908D+01-6.677664898D+01 3.795942984D+01 3.800105483D+01
+ 3.752400698D+01 8.569895048D+00 9.251708129D+00 2.557501556D+01 6.170134207D+01
+ 7.763242302D+01 9.951020770D+01 1.084914392D+02 9.960063451D+01 1.140165287D+02
+ 1.172549412D+02 1.188165301D+02 1.022023702D+02 1.021477846D+02 1.187817662D+02
+ 1.172395160D+02 1.139763908D+02 9.959022871D+01 1.084829352D+02 9.949067467D+01
+ 7.759785360D+01 6.163861999D+01 2.552926125D+01 9.229685344D+00-2.810774244D+01
+-4.218303425D+01 5.616945018D+00 6.230267163D+01 1.328976788D+02 1.508284338D+02
+ 1.846975233D+02 2.137131225D+02 2.094213597D+02 1.798159917D+02 1.411490786D+02
+ 1.065615423D+02-1.194625156D+01 7.900937970D+01 1.112724838D+02 1.703493604D+02
+ 1.991570603D+02 2.044510080D+02 2.094617312D+02 2.136575243D+02 2.093831319D+02
+ 1.797614490D+02 1.411135465D+02 1.065115785D+02-1.195404820D+01 7.896558569D+01
+ 1.112574387D+02 1.521554192D+02 1.748233143D+02 2.230829060D+02 1.518454049D+02
+ 4.086466300D+01 1.007230028D+02 1.394221035D+02 1.909025267D+02 1.296666607D+02
+ 2.107778270D+02 2.107667394D+02 2.086492058D+02 2.384445559D+02 3.006657720D+02
+ 3.639884712D+02 3.927981007D+02 3.804531928D+02 4.046690897D+02 4.230814782D+02
+ 4.391593464D+02 4.513647062D+02 4.696982920D+02 5.129127103D+02 5.135787534D+02
+ 4.978362431D+02 4.680479634D+02 4.496803453D+02 4.230554874D+02 4.230067237D+02
+ 4.391454269D+02 4.513035603D+02 4.697046862D+02 5.095673023D+02 4.710341590D+02
+ 3.936693820D+02 3.793315972D+02 3.268133009D+02 3.639822848D+02 3.268110073D+02
+ 3.090439412D+02 2.962398458D+02 3.311481546D+02 3.564232505D+02 3.564346395D+02
+ 4.377949490D+02 5.096133411D+02 4.710178956D+02 3.936490498D+02 3.793652438D+02
+ 3.927722848D+02 3.639831488D+02 3.267997789D+02 3.090201254D+02 2.962529483D+02
+ 2.962519733D+02 3.311287086D+02 3.564378222D+02 3.564365031D+02 4.377900116D+02
+ 4.710348423D+02 5.096243679D+02 4.697779361D+02 4.513138267D+02 5.128869275D+02
+ 5.135494141D+02 4.978319661D+02 4.289303894D+02 4.770335982D+02 4.770250989D+02
+ 4.599554221D+02 4.483224936D+02 3.427622138D+02 4.483186339D+02-9.634625500D+01
+ 4.086108471D+02 4.173284902D+02 4.086110126D+02-9.636514425D+01 4.482963474D+02
+ 4.599311050D+02 4.770349156D+02 4.289241489D+02 4.680362501D+02 4.496491184D+02
+ 4.230286563D+02 4.046327704D+02 3.804553917D+02 3.639886665D+02 3.006575257D+02
+ 2.384465298D+02 2.107507814D+02 2.086451858D+02 2.107440637D+02 2.086491811D+02
+ 1.296443248D+02 1.908495109D+02 1.393721470D+02 1.006642436D+02-2.426569559D+01
+-2.444682707D+01-2.425984204D+01 4.086620123D+01 1.518168353D+02 2.230189054D+02
+ 2.776643769D+02 2.550578533D+02 1.747887250D+02 1.521227635D+02 2.117555259D+02
+ 1.702763598D+02 1.991135831D+02 2.043828157D+02 2.094005182D+02 2.136226190D+02
+ 2.093498981D+02 1.797439044D+02 1.846642366D+02 1.507911302D+02 1.328379373D+02
+ 6.221888779D+01 5.570212143D+00-4.222146232D+01-2.817691957D+01 9.202289612D+00
+ 8.520945500D+00 3.749923189D+01-1.121032191D+01-7.899897740D+01-6.631508437D+01
+-3.294860349D+01-2.945265561D+01-1.408584208D+01-1.304743180D+01-1.400938971D+01
+-1.678081683D+01-1.683210700D+01-1.076610471D+01-1.965543106D+01-2.077819133D+01
+-3.308462881D+01-2.913825281D+01-2.917049148D+01                                
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/extdata/lsq.out
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/extdata/lsq.out	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/extdata/lsq.out	(revision 2476)
@@ -0,0 +1,2720 @@
+lsq.rra                                                                 WELL1850
+          2719            45           548          1752           370
+RRA                     1850           712          8758
+(16I5)          (16I5)          (5E16.9)            (5E16.9)            
+F             1
+    1   14   18   27   39   44   53   57   62   68   76   81   87   93  100  102
+  109  115  122  128  135  141  149  156  162  166  169  175  182  190  194  200
+  206  212  216  222  228  240  250  258  271  275  288  298  316  320  324  330
+  336  342  350  361  378  388  396  399  406  410  412  416  418  420  423  425
+  428  430  433  436  438  442  448  455  459  462  467  471  474  478  495  497
+  511  517  523  539  544  558  571  583  595  630  634  638  654  670  684  697
+  703  705  711  718  723  731  735  739  740  741  748  759  765  772  779  782
+  788  806  814  820  846  856  871  873  915  919  927  934  942  947  951  960
+  980  982  997 1000 1005 1014 1021 1023 1027 1032 1037 1048 1068 1080 1095 1104
+ 1107 1113 1115 1117 1134 1149 1158 1172 1174 1195 1200 1207 1213 1215 1216 1221
+ 1229 1235 1248 1252 1261 1267 1277 1283 1289 1295 1299 1301 1309 1317 1324 1340
+ 1347 1354 1373 1379 1386 1397 1406 1416 1421 1426 1432 1438 1439 1443 1444 1448
+ 1455 1456 1463 1468 1469 1475 1484 1492 1501 1510 1514 1516 1520 1522 1526 1530
+ 1538 1543 1548 1551 1579 1583 1587 1613 1637 1648 1651 1659 1674 1684 1688 1693
+ 1698 1701 1704 1707 1711 1714 1719 1724 1729 1734 1739 1743 1746 1749 1753 1756
+ 1759 1762 1764 1766 1768 1771 1776 1779 1783 1787 1792 1807 1810 1816 1820 1826
+ 1834 1836 1840 1848 1856 1861 1869 1879 1883 1892 1897 1902 1911 1915 1920 1928
+ 1937 1941 1952 1960 1968 1976 1986 1990 1998 2002 2010 2022 2030 2034 2038 2046
+ 2050 2054 2063 2068 2073 2080 2087 2092 2101 2109 2112 2115 2119 2124 2132 2139
+ 2151 2155 2160 2167 2174 2178 2181 2185 2189 2193 2200 2207 2219 2226 2230 2236
+ 2243 2247 2250 2254 2258 2261 2267 2271 2276 2284 2287 2292 2297 2300 2305 2310
+ 2320 2330 2335 2338 2341 2345 2349 2352 2355 2358 2361 2364 2367 2370 2373 2376
+ 2379 2383 2391 2395 2399 2409 2412 2419 2422 2426 2433 2436 2442 2449 2462 2465
+ 2472 2475 2479 2483 2490 2493 2501 2505 2508 2512 2522 2529 2533 2539 2543 2549
+ 2553 2560 2564 2573 2577 2580 2588 2592 2599 2603 2608 2612 2615 2618 2621 2625
+ 2630 2639 2642 2647 2650 2653 2661 2711 2752 2759 2779 2784 2802 2813 2824 2839
+ 2853 2896 2939 3065 3199 3261 3348 3376 3387 3397 3449 3686 3690 3698 3706 3711
+ 3719 3729 3733 3742 3752 3761 3765 3770 3778 3787 3791 3802 3810 3818 3826 3836
+ 3840 3848 3852 3860 3872 3880 3884 3888 3896 3900 3904 3913 3918 3923 3930 3937
+ 3942 3951 3959 3965 3969 3974 3982 3989 4001 4017 4028 4035 4050 4057 4069 4080
+ 4086 4093 4100 4104 4111 4117 4126 4134 4137 4142 4150 4160 4170 4180 4191 4199
+ 4211 4220 4223 4226 4229 4241 4249 4259 4272 4276 4286 4292 4299 4312 4322 4325
+ 4329 4343 4355 4362 4372 4379 4383 4393 4399 4403 4410 4414 4423 4430 4438 4449
+ 4453 4471 4475 4480 4489 4492 4497 4500 4503 4561 4602 4629 4652 4674 4703 4746
+ 4915 5198 5226 5247 5299 5536 5549 5558 5570 5575 5584 5589 5595 5603 5608 5614
+ 5620 5627 5633 5640 5646 5653 5659 5667 5674 5680 5686 5693 5701 5707 5713 5719
+ 5725 5737 5747 5755 5768 5781 5791 5809 5815 5821 5827 5835 5846 5863 5873 5881
+ 5888 5892 5898 5905 5908 5913 5917 5920 5926 5932 5948 5962 5975 5987 5999 6034
+ 6050 6066 6080 6093 6099 6105 6112 6117 6125 6129 6136 6147 6153 6160 6167 6173
+ 6191 6199 6205 6231 6241 6256 6298 6306 6313 6321 6325 6334 6354 6369 6374 6383
+ 6385 6389 6394 6405 6425 6437 6452 6461 6467 6484 6499 6508 6522 6543 6548 6555
+ 6561 6569 6575 6588 6592 6601 6607 6617 6623 6629 6635 6639 6647 6654 6670 6677
+ 6684 6703 6709 6716 6727 6736 6746 6751 6756 6762 6768 6775 6782 6788 6797 6805
+ 6814 6818 6826 6831 6836 6840 6844 6870 6894 6909 7309 7726 7784 7825 7852 7875
+ 7897 7926 7969 8138 8421 8449 8470 8522 8759
+    1    3   26   28  164  166 1259 1262 1277 1279 1490 1686 1827    2    4    5
+    7    6    8    9   11 1263 1276 1540 1685 1828   10   12   13   15 1264 1275
+ 1538 1539 1560 1561 1684 1829   14   16   17   19 1274   18   20   21   23   25
+ 1265 1273 1683 1830   22   24  152  154   27   29   30   32 1491   31   33   35
+   37 1258 1492   34   36   38   39   41   43 1257 1493   40   42   44   46 1256
+   45   47   49   51 1255 1494   48   50   52   53   55 1254   54   56   57   59
+   61   67   69   58   60   62   64   66   72   74 1252 1496   63   65   76   78
+ 1251 1497   68   70   71   73   75 1253 1495   77   79   81   83 1250 1498   80
+   82   84   86   88 1249 1499   85   87   89   91 1248 1500   90   92   94   96
+ 1247 1501 1619 1848   93   95   97   98  100 1620 1847   99  101  102  104 1621
+ 1846  103  105  106  108  107  109  111  110  112  113  115 1622 1845  114  116
+  117  119 1623 1843 1844  118  120  121  123  372  376 1640 1842  122  124  125
+  127  126  128  129  131 1641 1838  130  132  133  135 1642 1837  134  136  137
+  139 1643 1836  138  140  142  144  141  143  145  146  148  150  147  149  167
+  169 1644 1835  151  153  192  194 1266 1267 1272 1537 1551 1559 1682 1831  155
+  157  298  300  302  304  306  308  401  403  156  158  159  161 1281 1488 1688
+ 1825  160  162  163  165  989  990 1260 1261 1278 1280 1489 1687 1826  168  170
+  171  173  172  174  175  177  294  296 1269 1523 1529 1534 1645 1658 1834  176
+  178  180 1270 1524 1528 1530 1533 1659 1833  179  181  182  184  186  195  197
+ 1268 1271 1514 1525 1527 1532 1536 1558 1660 1681 1832  183  185  187  189  188
+  190  191  193  196  198  199  201 1661 1680  200  202  203  205 1662 1679  204
+  206  207  209 1663 1678  208  210  211  213 1117 1118 1664 1677  212  214  215
+  217 1114 1115 1116 1119 1120 1665 1676  216  218  219  220  222  369  371 1077
+ 1078 1108 1109 1112 1113 1121 1122 1666 1675  221  223  224  226 1110 1111 1123
+ 1124 1667 1674  225  227  229  231  266  268 1668 1673  228  230  232  233  234
+  265  271  273 1669 1672  235  264 1670 1671  236  263  237  238  261  262  239
+  260  240  259  241  242  258  243  257  244  255  256  245  254  246  247  253
+  248  251  252  249  250  267  269  270  272  274  288  289  291 1646 1657  275
+  287 1518 1521 1535 1647 1656  276  277  279  286  278 1648 1655  280  283  284
+ 1650 1653  281  282 1651 1652  285 1649 1654  290  292  293  295  297  299 1282
+ 1283 1289 1290 1291 1486 1487 1574 1589 1598 1606 1613 1689 1701 1822  301  303
+  305  307  309  311  402  404  410 1292 1485 1690 1700 1702 1821 1823  310  312
+  314 1691 1703 1824  313  315  316  318 1692 1704  317  319  321  323  991  993
+ 1061 1168 1169 1170 1171 1221 1222 1288 1693 1705  320  322  324  325  327  326
+  328  330  424 1062 1063 1166 1167 1172 1173 1219 1220 1694 1706  329  331  332
+  334 1007 1064 1065 1164 1165 1174 1175 1217 1218  333  335  337 1066 1139 1140
+ 1162 1163 1176 1177 1215 1216  336  338  339  341  344 1160 1161 1180 1181 1213
+ 1214 1287  340  342  343  345  346  348 1067 1068 1089 1090 1096 1097 1135 1136
+ 1143 1144 1150 1151 1154 1155 1156 1157 1182 1183 1186 1187 1188 1198 1199 1205
+ 1206 1209 1210 1285 1286  347  349  350  352  351  353  354  356  355  357  358
+  360 1004 1069 1070 1085 1086 1100 1101 1131 1132 1196 1197 1284  359  361  363
+ 1005 1006 1071 1072 1083 1084 1102 1103 1129 1130 1189 1190 1195  362  364  365
+  367 1073 1074 1081 1082 1104 1105 1127 1128 1191 1192  366  368  370 1075 1076
+ 1079 1080 1106 1107 1125 1126 1193 1194  373  377  379 1625 1638 1841  374  375
+  378  380  382 1626 1637 1840  381  383  384  386 1627 1636 1839  385  387  389
+ 1628 1635  388  390  392  394  395 1629 1631 1633  391  393 1630 1634  396  397
+  400 1632  398  399  405  406  409 1293 1484 1699 1820  407  408  411  412  414
+  447  450 1294 1483 1698 1819  413  415  417  968 1697 1818  416  418  419  421
+  427 1696 1708  420  422  423  425  992 1695 1707  426  428  430  429  431  432
+  434 1709 1816  433  435  436  438  975  983  984  985  986  994  995 1008 1009
+ 1010 1012 1017 1710 1815  437  439  442  453  455  471  473 1298  440  441  443
+  445 1297 1481  444  446  448  449  451  452  967  969  970  971  972  973  974
+  976  977  978  979  980  981  982  987  988 1295 1296 1482 1817  454  456  457
+  459  474  475  477 1299 1480 1814  458  460  464  465  826  895  896  897  898
+  899  900  908  909 1711 1812  461  462  463  466  468  530  876  877  878  879
+  880  881  882  883  884  885  886  887  888  889  890  891  892  893  894  901
+  902  903  904  905  906  996  997  998  999 1001 1003 1011 1013 1014 1015 1016
+ 1712 1811  467  469  470  472  476  478  480  825  827 1300 1479 1813  479  481
+  483  828  829 1301 1478  482  484  485  487  830 1302 1303 1477  486  488  490
+  610  612  489  491  493 1307  492  494  495  497  925  926 1308 1310 1385  496
+  498  504  907  914  915  916  924  927  929  930  931  932  933  934  935  936
+  937 1018 1387  499  500  501  506  508  691  693  928  938  939  940  941  942
+  943 1019 1715 1805  502  503  505  507  509  511 1714 1806  510  512  518  524
+  526  910  911  912  913  513  516  517  519  520  522  523  514 1808  515  521
+ 1807 1809  525  527  533 1713 1810  528  529  531  532  534  535  537  538  540
+  684  686  687  689 1021 1024 1031  536  553  557  688  690  692 1020 1027 1028
+ 1032 1048 1049 1057 1361 1363 1371 1420 1422 1716 1804  539  543  681  683  685
+ 1039 1044 1045 1052 1053 1717 1803  541  545  547  548  674  676  678  680  682
+ 1038 1433 1718 1719 1799 1801  542  544  677  679 1037 1434 1720 1800 1802  546
+  549  551  550  552  554  558  562 1033  555  556  559  560  561  563  564  566
+  638  842  945  946 1035 1342 1344 1357 1359 1373 1375 1415 1419  565  567  569
+  841  951  954  957  958  961  962 1336 1337 1376 1377 1412  568  570  572  815
+  817  840  949  950  965  571  575  579  816  839  966 1312 1313 1317 1319 1320
+ 1335 1406 1463  573  574  576  577 1022 1023 1025 1026 1029 1030 1040 1041 1042
+ 1043 1046 1047 1050 1051 1054 1055 1058 1059 1060  578  580  582 1000 1002  581
+  583  585  836  838 1322 1332  584  586  587  589  837 1780  588  590  591  592
+  595  597  598  615  594  614  616  618 1451 1779 1781 1787  596  599  602 1456
+ 1783 1785  600  601  603  605  835 1326 1328 1392 1393 1395 1458 1470 1784  604
+  606  608  834  607  609  611  613  831  832  833 1471 1472  617  619  621 1450
+ 1778 1788  620  622  624  640  642  847 1449 1776 1777 1789  623  625  628  846
+ 1775 1790  626  627  629  630  632  845  631  633  635  844 1347 1354  634  636
+  843 1346  637  639  641  643  644  646  807  811  812  814  645  647  648  650
+  848 1448 1734 1791  649  651  653  849 1447 1735 1792  652  654  655  657  658
+  753  755  850  851  874 1439 1446 1727 1736 1737 1793  656  659  661  852  873
+ 1726 1794  660  662  664  853  872 1725 1795  663  665  666  668  694  696  749
+  750  752  854  869  870  871 1437 1438 1723 1746 1759 1796  667  669  671 1436
+ 1722 1797  670  672  673  675 1435 1721 1798  695  697  698  700  702  714  716
+  855 1745 1747 1760  699  701  703  705  707  856  859 1748 1761  704  706  708
+  710  711  713  857 1749 1762 1763  709  712  858 1750 1764  715  717  719 1744
+ 1757  718  720  722  724 1743 1756  721  723  727  864 1753 1767  725  726  728
+  731  733  729  730  732  734  736  735  737  740  866 1741 1754 1769  738  739
+  741  743  865 1742 1755 1768  742  744  747  768  770  745  746  748  751  868
+ 1724 1758  754  756  757  759  875 1440 1445 1728 1738  758  760  762 1441 1444
+ 1729 1739 1771  761  763  765  767 1442 1443 1730 1740 1770  764  766  774  775
+  781  786  789  790  792  769  771  778  867  772  773  776  777  779  780  782
+  783  784  785  787  788  791  793  796  798  794  795  797  799  800  802 1731
+ 1772  801  803  805 1732 1773  804  806  809 1733 1774  808  810  813  818  819
+  820  821  822  823  824 1236 1237 1238 1245 1246 1502 1503 1504 1505 1506 1581
+ 1587 1596 1603 1614 1615 1616 1617 1618 1849 1850  860  862 1751 1765  861  863
+ 1752 1766  917  919  921  923 1224 1226 1228 1231 1233 1235 1239 1241 1243 1508
+ 1510 1512 1541 1543 1545 1547 1562 1564 1566 1568 1570 1572  918  920  922 1223
+ 1225 1227 1229 1230 1232 1234 1240 1242 1244 1507 1509 1511 1542 1544 1546 1563
+ 1565 1567 1569 1571  944  947  948  952  953  955  956  959  960  963  964 1034
+ 1036 1056 1087 1088 1098 1099 1133 1134 1207 1208 1091 1092 1093 1094 1095 1145
+ 1146 1147 1148 1149 1200 1201 1202 1203 1204 1137 1138 1141 1142 1158 1159 1178
+ 1179 1211 1212 1152 1153 1184 1185 1304 1305 1389 1473 1476 1306 1388 1390 1474
+ 1475 1309 1386 1391 1311 1384 1404 1314 1403 1405 1315 1383 1402 1409 1316 1401
+ 1408 1318 1334 1400 1407 1464 1321 1333 1399 1462 1465 1323 1331 1398 1461 1466
+ 1324 1330 1397 1460 1467 1325 1329 1396 1459 1468 1327 1394 1457 1469 1338 1378
+ 1411 1339 1379 1410 1340 1380 1382 1413 1341 1381 1414 1343 1358 1374 1345 1355
+ 1417 1348 1353 1349 1351 1350 1352 1356 1416 1418 1360 1370 1423 1424 1432 1362
+ 1372 1421 1364 1369 1425 1431 1365 1367 1427 1429 1366 1368 1426 1428 1430 1513
+ 1515 1516 1517 1526 1531 1548 1549 1550 1552 1553 1554 1555 1556 1557 1519 1520
+ 1522 1573 1575 1590 1599 1605 1612 1577 1584 1601 1607 1579 1585 1592 1594 1609
+ 1611 1580 1582 1586 1588 1595 1597 1602 1604 1624 1639    1    2    3    4    5
+    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21
+   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37
+   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53
+   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69
+   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85
+   86   87   88   89   90   91   92   93   94   95   96   97   98   99  100  101
+  102  103  104  105  106  107  108  109  110  111  112  113  114  115  116  117
+  118  119  120  121  122  123  124  125  126  127  128  129  130  131  132  133
+  134  135  136  137  138  139  140  141  142  143  144  145  146  147  148  149
+  150  151  152  153  154  155  156  157  158  159  160  161  162  163  164  165
+  166  167  168  169  170  171  172  173  174  175  176  177  178  179  180  181
+  182  183  184  185  186  187  188  189  190  191  192  193  194  195  196  197
+  198  199  200  201  202  203  204  205  206  207  208  209  210  211  212  213
+  214  215  216  217  218  219  220  221  222  223  224  225  226  227  228  229
+  230  231  232  233  234  235  236  237  238  239  240  241  242  243  244  245
+  246  247  248  249  250  251  252  253  254  255  256  257  258  259  260  261
+  262  263  264  265  266  267  268  269  270  271  272  273  274  275  276  277
+  278  279  280  281  282  283  284  285  286  287  288  289  290  291  292  293
+  294  295  296  297  298  299  300  301  302  303  304  305  306  307  308  309
+  310  311  312  313  314  315  316  317  318  319  320  321  322  323  324  325
+  326  327  328  329  330  331  332  333  334  335  336  337  338  339  340  341
+  342  343  344  345  346  347  348  349  350  351  352  353  354  355  356  357
+  358  359  360  361  362  363  364  365  366  367  368  369  370  371  372  373
+  374  375  376  377  378  379  380  381  382  383  384  385  386  387  388  389
+  390  391  392  393  394  395  396  397  398  399  400  401  402  403  404  405
+  406  407  408  409  410  411  412  413  414  415  416  417  418  419  420  421
+  422  423  424  425  426  427  428  429  430  431  432  433  434  435  436  437
+  438  439  440  441  442  443  444  445  446  447  448  449  450  451  452  453
+  454  455  456  457  458  459  460  461  462  463  464  465  466  467  468  469
+  470  471  472  473  474  475  476  477  478  479  480  481  482  483  484  485
+  486  487  488  489  490  491  492  493  494  495  496  497  498  499  500  501
+  502  503  504  505  506  507  508  509  510  511  512  513  514  515  516  517
+  518  519  520  521  522  523  524  525  526  527  528  529  530  531  532  533
+  534  535  536  537  538  539  540  541  542  543  544  545  546  547  548  549
+  550  551  552  553  554  555  556  557  558  559  560  561  562  563  564  565
+  566  567  568  569  570  571  572  573  574  575  576  577  578  579  580  581
+  582  583  584  585  586  587  588  589  590  591  592  593  594  595  596  597
+  598  599  600  601  602  603  604  605  606  607  608  609  610  611  612  613
+  614  615  616  617  618  619  620  621  622  623  624  625  626  627  628  629
+  630  631  632  633  634  635  636  637  638  639  640  641  642  643  644  645
+  646  647  648  649  650  651  652  653  654  655  656  657  658  659  660  661
+  662  663  664  665  666  667  668  669  670  671  672  673  674  675  676  677
+  678  679  680  681  682  683  684  685  686  687  688  689  690  691  692  693
+  694  695  696  697  698  699  700  701  702  703  704  705  706  707  708  709
+  710  711  712  713  714  715  716  717  718  719  720  721  722  723  724  725
+  726  727  728  729  730  731  732  733  734  735  736  737  738  739  740  741
+  742  743  744  745  746  747  748  749  750  751  752  753  754  755  756  757
+  758  759  760  761  762  763  764  765  766  767  768  769  770  771  772  773
+  774  775  776  777  778  779  780  781  782  783  784  785  786  787  788  789
+  790  791  792  793  794  795  796  797  798  799  800  801  802  803  804  805
+  806  807  808  809  810  811  812  813  814  815  816  817  818  819  820  821
+  822  823  824  825  826  827  828  829  830  831  832  833  834  835  836  837
+  838  839  840  841  842  843  844  845  846  847  848  849  850  851  852  853
+  854  855  856  857  858  859  860  861  862  863  864  865  866  867  868  869
+  870  871  872  873  874  875  876  877  878  879  880  881  882  883  884  885
+  886  887  888  889  890  891  892  893  894  895  896  897  898  899  900  901
+  902  903  904  905  906  907  908  909  910  911  912  913  914  915  916  917
+  918  919  920  921  922  923  924  925  926  927  928  929  930  931  932  933
+  934  935  936  937  938  939  940  941  942  943  944  945  946  947  948  949
+  950  951  952  953  954  955  956  957  958  959  960  961  962  963  964  965
+  966  967  968  969  970  971  972  973  974  975  976  977  978  979  980  981
+  982  983  984  985  986  987  988  989  990  991  992  993  994  995  996  997
+  998  999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013
+ 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029
+ 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045
+ 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061
+ 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077
+ 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093
+ 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109
+ 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125
+ 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141
+ 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157
+ 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173
+ 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189
+ 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205
+ 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221
+ 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237
+ 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253
+ 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269
+ 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285
+ 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301
+ 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317
+ 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333
+ 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349
+ 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365
+ 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381
+ 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397
+ 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413
+ 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429
+ 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445
+ 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461
+ 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477
+ 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493
+ 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509
+ 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525
+ 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541
+ 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557
+ 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573
+ 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589
+ 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605
+ 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621
+ 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637
+ 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653
+ 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669
+ 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685
+ 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701
+ 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717
+ 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733
+ 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749
+ 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765
+ 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781
+ 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797
+ 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813
+ 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829
+ 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845
+ 1846 1847 1848 1849 1850    1    2    3    4    5    6    7    8    9   10   11
+   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27
+   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43
+   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59
+   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75
+   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91
+   92   93   94   95   96   97   98   99  100  101  102  103  104  105  106  107
+  108  109  110  111  112  113  114  115  116  117  118  119  120  121  122  123
+  124  125  126  127  128  129  130  131  132  133  134  135  136  137  138  139
+  140  141  142  143  144  145  146  147  148  149  150  151  152  153  154  155
+  156  157  158  159  160  161  162  163  164  165  166  167  168  169  170  171
+  172  173  174  175  176  177  178  179  180  181  182  183  184  185  186  187
+  188  189  190  191  192  193  194  195  196  197  198  199  200  201  202  203
+  204  205  206  207  208  209  210  211  212  213  214  215  216  217  218  219
+  220  221  222  223  224  225  226  227  228  229  230  231  232  233  234  235
+  236  237  238  239  240  241  242  243  244  245  246  247  248  249  250  251
+  252  253  254  255  256  257  258  259  260  261  262  263  264  265  266  267
+  268  269  270  271  272  273  274  275  276  277  278  279  280  281  282  283
+  284  285  286  287  288  289  290  291  292  293  294  295  296  297  298  299
+  300  301  302  303  304  305  306  307  308  309  310  311  312  313  314  315
+  316  317  318  319  320  321  322  323  324  325  326  327  328  329  330  331
+  332  333  334  335  336  337  338  339  340  341  342  343  344  345  346  347
+  348  349  350  351  352  353  354  355  356  357  358  359  360  361  362  363
+  364  365  366  367  368  369  370  371  372  373  374  375  376  377  378  379
+  380  381  382  383  384  385  386  387  388  389  390  391  392  393  394  395
+  396  397  398  399  400  401  402  403  404  405  406  407  408  409  410  411
+  412  413  414  415  416  417  418  419  420  421  422  423  424  425  426  427
+  428  429  430  431  432  433  434  435  436  437  438  439  440  441  442  443
+  444  445  446  447  448  449  450  451  452  453  454  455  456  457  458  459
+  460  461  462  463  464  465  466  467  468  469  470  471  472  473  474  475
+  476  477  478  479  480  481  482  483  484  485  486  487  488  489  490  491
+  492  493  494  495  496  497  498  499  500  501  502  503  504  505  506  507
+  508  509  510  511  512  513  514  515  516  517  518  519  520  521  522  523
+  524  525  526  527  528  529  530  531  532  533  534  535  536  537  538  539
+  540  541  542  543  544  545  546  547  548  549  550  551  552  553  554  555
+  556  557  558  559  560  561  562  563  564  565  566  567  568  569  570  571
+  572  573  574  575  576  577  578  579  580  581  582  583  584  585  586  587
+  588  589  590  591  592  593  594  595  596  597  598  599  600  601  602  603
+  604  605  606  607  608  609  610  611  612  613  614  615  616  617  618  619
+  620  621  622  623  624  625  626  627  628  629  630  631  632  633  634  635
+  636  637  638  639  640  641  642  643  644  645  646  647  648  649  650  651
+  652  653  654  655  656  657  658  659  660  661  662  663  664  665  666  667
+  668  669  670  671  672  673  674  675  676  677  678  679  680  681  682  683
+  684  685  686  687  688  689  690  691  692  693  694  695  696  697  698  699
+  700  701  702  703  704  705  706  707  708  709  710  711  712  713  714  715
+  716  717  718  719  720  721  722  723  724  725  726  727  728  729  730  731
+  732  733  734  735  736  737  738  739  740  741  742  743  744  745  746  747
+  748  749  750  751  752  753  754  755  756  757  758  759  760  761  762  763
+  764  765  766  767  768  769  770  771  772  773  774  775  776  777  778  779
+  780  781  782  783  784  785  786  787  788  789  790  791  792  793  794  795
+  796  797  798  799  800  801  802  803  804  805  806  807  808  809  810  811
+  812  813  814  815  816  817  818  819  820  821  822  823  824  825  826  827
+  828  829  830  831  832  833  834  835  836  837  838  839  840  841  842  843
+  844  845  846  847  848  849  850  851  852  853  854  855  856  857  858  859
+  860  861  862  863  864  865  866  867  868  869  870  871  872  873  874  875
+  876  877  878  879  880  881  882  883  884  885  886  887  888  889  890  891
+  892  893  894  895  896  897  898  899  900  901  902  903  904  905  906  907
+  908  909  910  911  912  913  914  915  916  917  918  919  920  921  922  923
+  924  925  926  927  928  929  930  931  932  933  934  935  936  937  938  939
+  940  941  942  943  944  945  946  947  948  949  950  951  952  953  954  955
+  956  957  958  959  960  961  962  963  964  965  966  967  968  969  970  971
+  972  973  974  975  976  977  978  979  980  981  982  983  984  985  986  987
+  988  989  990  991  992  993  994  995  996  997  998  999 1000 1001 1002 1003
+ 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019
+ 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035
+ 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051
+ 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067
+ 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083
+ 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099
+ 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115
+ 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131
+ 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147
+ 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163
+ 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179
+ 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195
+ 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211
+ 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227
+ 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243
+ 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259
+ 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275
+ 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291
+ 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307
+ 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323
+ 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339
+ 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355
+ 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371
+ 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387
+ 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403
+ 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419
+ 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435
+ 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451
+ 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467
+ 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483
+ 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499
+ 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515
+ 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531
+ 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547
+ 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563
+ 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579
+ 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595
+ 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611
+ 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627
+ 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643
+ 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659
+ 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675
+ 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691
+ 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707
+ 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723
+ 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739
+ 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755
+ 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771
+ 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787
+ 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803
+ 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819
+ 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835
+ 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850    1
+    3   26   28  164  166 1259 1262 1277 1279 1490 1686 1827    6    8    9   11
+ 1263 1276 1540 1685 1828   10   12   13   15 1264 1275 1538 1539 1560 1561 1684
+ 1829   14   16   17   19 1274   18   20   21   23   25 1265 1273 1683 1830   27
+   29   30   32 1491   31   33   35   37 1258 1492   34   36   38   39   41   43
+ 1257 1493   40   42   44   46 1256   45   47   49   51 1255 1494   48   50   52
+   53   55 1254   62   64   66   72   74 1252 1496   63   65   76   78 1251 1497
+   68   70   71   73   75 1253 1495   77   79   81   83 1250 1498   80   82   84
+   86   88 1249 1499   85   87   89   91 1248 1500   90   92   94   96 1247 1501
+ 1619 1848   93   95   97   98  100 1620 1847   99  101  102  104 1621 1846  110
+  112  113  115 1622 1845  114  116  117  119 1623 1843 1844  118  120  121  123
+  372  376 1640 1842  126  128  129  131 1641 1838  130  132  133  135 1642 1837
+  134  136  137  139 1643 1836  147  149  167  169 1644 1835  151  153  192  194
+ 1266 1267 1272 1537 1551 1559 1682 1831  155  157  298  300  302  304  306  308
+  401  403  156  158  159  161 1281 1488 1688 1825  160  162  163  165  989  990
+ 1260 1261 1278 1280 1489 1687 1826  172  174  175  177  294  296 1269 1523 1529
+ 1534 1645 1658 1834  176  178  180 1270 1524 1528 1530 1533 1659 1833  179  181
+  182  184  186  195  197 1268 1271 1514 1525 1527 1532 1536 1558 1660 1681 1832
+  196  198  199  201 1661 1680  200  202  203  205 1662 1679  204  206  207  209
+ 1663 1678  208  210  211  213 1117 1118 1664 1677  212  214  215  217 1114 1115
+ 1116 1119 1120 1665 1676  216  218  219  220  222  369  371 1077 1078 1108 1109
+ 1112 1113 1121 1122 1666 1675  221  223  224  226 1110 1111 1123 1124 1667 1674
+  225  227  229  231  266  268 1668 1673  233  234  265  271  273 1669 1672  235
+  264 1670 1671  274  288  289  291 1646 1657  275  287 1518 1521 1535 1647 1656
+  278 1648 1655  280  283  284 1650 1653  281  282 1651 1652  285 1649 1654  310
+  312  314 1691 1703 1824  313  315  316  318 1692 1704  317  319  321  323  991
+  993 1061 1168 1169 1170 1171 1221 1222 1288 1693 1705  326  328  330  424 1062
+ 1063 1166 1167 1172 1173 1219 1220 1694 1706  329  331  332  334 1007 1064 1065
+ 1164 1165 1174 1175 1217 1218  333  335  337 1066 1139 1140 1162 1163 1176 1177
+ 1215 1216  336  338  339  341  344 1160 1161 1180 1181 1213 1214 1287  340  342
+  343  345  346  348 1067 1068 1089 1090 1096 1097 1135 1136 1143 1144 1150 1151
+ 1154 1155 1156 1157 1182 1183 1186 1187 1188 1198 1199 1205 1206 1209 1210 1285
+ 1286  355  357  358  360 1004 1069 1070 1085 1086 1100 1101 1131 1132 1196 1197
+ 1284  359  361  363 1005 1006 1071 1072 1083 1084 1102 1103 1129 1130 1189 1190
+ 1195  362  364  365  367 1073 1074 1081 1082 1104 1105 1127 1128 1191 1192  366
+  368  370 1075 1076 1079 1080 1106 1107 1125 1126 1193 1194  373  377  379 1625
+ 1638 1841  378  380  382 1626 1637 1840  381  383  384  386 1627 1636 1839  385
+  387  389 1628 1635  388  390  392  394  395 1629 1631 1633  396  397  400 1632
+  405  406  409 1293 1484 1699 1820  407  408  411  412  414  447  450 1294 1483
+ 1698 1819  413  415  417  968 1697 1818  416  418  419  421  427 1696 1708  420
+  422  423  425  992 1695 1707  429  431  432  434 1709 1816  433  435  436  438
+  975  983  984  985  986  994  995 1008 1009 1010 1012 1017 1710 1815  437  439
+  442  453  455  471  473 1298  440  441  443  445 1297 1481  444  446  448  449
+  451  452  967  969  970  971  972  973  974  976  977  978  979  980  981  982
+  987  988 1295 1296 1482 1817  454  456  457  459  474  475  477 1299 1480 1814
+  458  460  464  465  826  895  896  897  898  899  900  908  909 1711 1812  463
+  466  468  530  876  877  878  879  880  881  882  883  884  885  886  887  888
+  889  890  891  892  893  894  901  902  903  904  905  906  996  997  998  999
+ 1001 1003 1011 1013 1014 1015 1016 1712 1811  476  478  480  825  827 1300 1479
+ 1813  479  481  483  828  829 1301 1478  482  484  485  487  830 1302 1303 1477
+  489  491  493 1307  492  494  495  497  925  926 1308 1310 1385  496  498  504
+  907  914  915  916  924  927  929  930  931  932  933  934  935  936  937 1018
+ 1387  501  506  508  691  693  928  938  939  940  941  942  943 1019 1715 1805
+  507  509  511 1714 1806  510  512  518  524  526  910  911  912  913  514 1808
+  515  521 1807 1809  525  527  533 1713 1810  535  537  538  540  684  686  687
+  689 1021 1024 1031  536  553  557  688  690  692 1020 1027 1028 1032 1048 1049
+ 1057 1361 1363 1371 1420 1422 1716 1804  539  543  681  683  685 1039 1044 1045
+ 1052 1053 1717 1803  541  545  547  548  674  676  678  680  682 1038 1433 1718
+ 1719 1799 1801  542  544  677  679 1037 1434 1720 1800 1802  550  552  554  558
+  562 1033  561  563  564  566  638  842  945  946 1035 1342 1344 1357 1359 1373
+ 1375 1415 1419  565  567  569  841  951  954  957  958  961  962 1336 1337 1376
+ 1377 1412  568  570  572  815  817  840  949  950  965  571  575  579  816  839
+  966 1312 1313 1317 1319 1320 1335 1406 1463  576  577 1022 1023 1025 1026 1029
+ 1030 1040 1041 1042 1043 1046 1047 1050 1051 1054 1055 1058 1059 1060  578  580
+  582 1000 1002  581  583  585  836  838 1322 1332  584  586  587  589  837 1780
+  594  614  616  618 1451 1779 1781 1787  596  599  602 1456 1783 1785  600  601
+  603  605  835 1326 1328 1392 1393 1395 1458 1470 1784  604  606  608  834  607
+  609  611  613  831  832  833 1471 1472  617  619  621 1450 1778 1788  620  622
+  624  640  642  847 1449 1776 1777 1789  623  625  628  846 1775 1790  626  627
+  629  630  632  845  631  633  635  844 1347 1354  634  636  843 1346  645  647
+  648  650  848 1448 1734 1791  649  651  653  849 1447 1735 1792  652  654  655
+  657  658  753  755  850  851  874 1439 1446 1727 1736 1737 1793  656  659  661
+  852  873 1726 1794  660  662  664  853  872 1725 1795  663  665  666  668  694
+  696  749  750  752  854  869  870  871 1437 1438 1723 1746 1759 1796  667  669
+  671 1436 1722 1797  670  672  673  675 1435 1721 1798  695  697  698  700  702
+  714  716  855 1745 1747 1760  699  701  703  705  707  856  859 1748 1761  704
+  706  708  710  711  713  857 1749 1762 1763  709  712  858 1750 1764  715  717
+  719 1744 1757  718  720  722  724 1743 1756  721  723  727  864 1753 1767  735
+  737  740  866 1741 1754 1769  739  741  743  865 1742 1755 1768  746  748  751
+  868 1724 1758  754  756  757  759  875 1440 1445 1728 1738  758  760  762 1441
+ 1444 1729 1739 1771  761  763  765  767 1442 1443 1730 1740 1770  769  771  778
+  867  794  795  797  799  800  802 1731 1772  801  803  805 1732 1773  804  806
+  809 1733 1774  860  862 1751 1765  861  863 1752 1766  917  919  921  923 1224
+ 1226 1228 1231 1233 1235 1239 1241 1243 1508 1510 1512 1541 1543 1545 1547 1562
+ 1564 1566 1568 1570 1572  918  920  922 1223 1225 1227 1229 1230 1232 1234 1240
+ 1242 1244 1507 1509 1511 1542 1544 1546 1563 1565 1567 1569 1571 1513 1515 1516
+ 1517 1526 1531 1548 1549 1550 1552 1553 1554 1555 1556 1557    1    2    3    4
+    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20
+   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36
+   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52
+   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68
+   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84
+   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99  100
+  101  102  103  104  105  106  107  108  109  110  111  112  113  114  115  116
+  117  118  119  120  121  122  123  124  125  126  127  128  129  130  131  132
+  133  134  135  136  137  138  139  140  141  142  143  144  145  146  147  148
+  149  150  151  152  153  154  155  156  157  158  159  160  161  162  163  164
+  165  166  167  168  169  170  171  172  173  174  175  176  177  178  179  180
+  181  182  183  184  185  186  187  188  189  190  191  192  193  194  195  196
+  197  198  199  200  201  202  203  204  205  206  207  208  209  210  211  212
+  213  214  215  216  217  218  219  220  221  222  223  224  225  226  227  228
+  229  230  231  232  233  234  235  236  237  238  239  240  241  242  243  244
+  245  246  247  248  249  250  251  252  253  254  255  256  257  258  259  260
+  261  262  263  264  265  266  267  268  269  270  271  272  273  274  275  276
+  277  278  279  280  281  282  283  284  285  286  287  288  289  290  291  292
+  293  294  295  296  297  298  299  300  301  302  303  304  305  306  307  308
+  309  310  311  312  313  314  315  316  317  318  319  320  321  322  323  324
+  325  326  327  328  329  330  331  332  333  334  335  336  337  338  339  340
+  341  342  343  344  345  346  347  348  349  350  351  352  353  354  355  356
+  357  358  359  360  361  362  363  364  365  366  367  368  369  370  371  372
+  373  374  375  376  377  378  379  380  381  382  383  384  385  386  387  388
+  389  390  391  392  393  394  395  396  397  398  399  400  401  402  403  404
+  405  406  407  408  409  410  411  412  413  414  415  416  417  418  419  420
+  421  422  423  424  425  426  427  428  429  430  431  432  433  434  435  436
+  437  438  439  440  441  442  443  444  445  446  447  448  449  450  451  452
+  453  454  455  456  457  458  459  460  461  462  463  464  465  466  467  468
+  469  470  471  472  473  474  475  476  477  478  479  480  481  482  483  484
+  485  486  487  488  489  490  491  492  493  494  495  496  497  498  499  500
+  501  502  503  504  505  506  507  508  509  510  511  512  513  514  515  516
+  517  518  519  520  521  522  523  524  525  526  527  528  529  530  531  532
+  533  534  535  536  537  538  539  540  541  542  543  544  545  546  547  548
+  549  550  551  552  553  554  555  556  557  558  559  560  561  562  563  564
+  565  566  567  568  569  570  571  572  573  574  575  576  577  578  579  580
+  581  582  583  584  585  586  587  588  589  590  591  592  593  594  595  596
+  597  598  599  600  601  602  603  604  605  606  607  608  609  610  611  612
+  613  614  615  616  617  618  619  620  621  622  623  624  625  626  627  628
+  629  630  631  632  633  634  635  636  637  638  639  640  641  642  643  644
+  645  646  647  648  649  650  651  652  653  654  655  656  657  658  659  660
+  661  662  663  664  665  666  667  668  669  670  671  672  673  674  675  676
+  677  678  679  680  681  682  683  684  685  686  687  688  689  690  691  692
+  693  694  695  696  697  698  699  700  701  702  703  704  705  706  707  708
+  709  710  711  712  713  714  715  716  717  718  719  720  721  722  723  724
+  725  726  727  728  729  730  731  732  733  734  735  736  737  738  739  740
+  741  742  743  744  745  746  747  748  749  750  751  752  753  754  755  756
+  757  758  759  760  761  762  763  764  765  766  767  768  769  770  771  772
+  773  774  775  776  777  778  779  780  781  782  783  784  785  786  787  788
+  789  790  791  792  793  794  795  796  797  798  799  800  801  802  803  804
+  805  806  807  808  809  810  811  812  813  814  815  816  817  818  819  820
+  821  822  823  824  825  826  827  828  829  830  831  832  833  834  835  836
+  837  838  839  840  841  842  843  844  845  846  847  848  849  850  851  852
+  853  854  855  856  857  858  859  860  861  862  863  864  865  866  867  868
+  869  870  871  872  873  874  875  876  877  878  879  880  881  882  883  884
+  885  886  887  888  889  890  891  892  893  894  895  896  897  898  899  900
+  901  902  903  904  905  906  907  908  909  910  911  912  913  914  915  916
+  917  918  919  920  921  922  923  924  925  926  927  928  929  930  931  932
+  933  934  935  936  937  938  939  940  941  942  943  944  945  946  947  948
+  949  950  951  952  953  954  955  956  957  958  959  960  961  962  963  964
+  965  966  967  968  969  970  971  972  973  974  975  976  977  978  979  980
+  981  982  983  984  985  986  987  988  989  990  991  992  993  994  995  996
+  997  998  999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012
+ 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028
+ 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044
+ 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060
+ 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076
+ 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092
+ 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108
+ 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124
+ 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140
+ 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156
+ 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172
+ 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188
+ 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204
+ 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220
+ 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236
+ 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252
+ 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268
+ 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284
+ 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300
+ 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316
+ 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332
+ 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348
+ 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364
+ 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380
+ 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396
+ 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412
+ 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428
+ 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444
+ 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460
+ 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476
+ 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492
+ 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508
+ 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524
+ 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540
+ 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556
+ 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572
+ 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588
+ 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604
+ 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620
+ 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636
+ 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652
+ 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668
+ 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684
+ 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700
+ 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716
+ 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732
+ 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748
+ 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764
+ 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780
+ 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796
+ 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812
+ 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828
+ 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844
+ 1845 1846 1847 1848 1849 1850
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 7.071067812E-01
+ 7.071067812E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01
+ 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01
+ 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01
+ 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01
+ 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01
+ 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01
+ 2.425356250E-01 2.425356250E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 7.071067812E-01
+ 7.071067812E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 7.071067812E-01 7.071067812E-01 7.071067812E-01 7.071067812E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 7.071067812E-01 7.071067812E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 7.071067812E-01 7.071067812E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 7.071067812E-01 7.071067812E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01
+ 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01
+ 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01
+ 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01 7.071067812E-01
+ 7.071067812E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01
+ 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01
+ 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01
+ 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01
+ 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01
+ 2.500000000E-01 2.500000000E-01 2.500000000E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 2.672612419E-01 2.672612419E-01
+ 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01
+ 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01
+ 2.672612419E-01 2.672612419E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 1.690308509E-01
+ 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01
+ 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01
+ 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01
+ 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01
+ 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01
+ 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01
+ 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01
+ 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01
+ 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01
+ 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01
+ 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01
+ 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01
+ 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.672612419E-01
+ 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01
+ 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01
+ 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 7.071067812E-01 7.071067812E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 1.000000000E+00 1.000000000E+00
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01
+ 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01
+ 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01
+ 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 1.961161351E-01
+ 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01
+ 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01
+ 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01
+ 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01
+ 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 7.071067812E-01 7.071067812E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01
+ 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01
+ 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01
+ 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01
+ 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01
+ 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01
+ 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01
+ 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01
+ 1.543033500E-01 1.543033500E-01 1.543033500E-01 1.543033500E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 2.236067978E-01
+ 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01
+ 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01
+ 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01
+ 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01 7.071067812E-01
+ 7.071067812E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 7.071067812E-01 7.071067812E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01
+ 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01
+ 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01
+ 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01
+ 2.236067978E-01 2.236067978E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 7.071067812E-01 7.071067812E-01 7.071067812E-01
+ 7.071067812E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01
+ 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01
+ 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.425356250E-01
+ 2.425356250E-01 2.425356250E-01 2.425356250E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01
+ 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01
+ 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01
+ 2.672612419E-01 7.071067812E-01 7.071067812E-01 2.182178902E-01 2.182178902E-01
+ 2.182178902E-01 2.182178902E-01 2.182178902E-01 2.182178902E-01 2.182178902E-01
+ 2.182178902E-01 2.182178902E-01 2.182178902E-01 2.182178902E-01 2.182178902E-01
+ 2.182178902E-01 2.182178902E-01 2.182178902E-01 2.182178902E-01 2.182178902E-01
+ 2.182178902E-01 2.182178902E-01 2.182178902E-01 2.182178902E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 7.071067812E-01 7.071067812E-01 1.000000000E+00
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 7.071067812E-01 7.071067812E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 2.500000000E-01 2.500000000E-01
+ 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01
+ 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01
+ 2.500000000E-01 2.500000000E-01 2.500000000E-01 2.500000000E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 2.294157339E-01 2.294157339E-01
+ 2.294157339E-01 2.294157339E-01 2.294157339E-01 2.294157339E-01 2.294157339E-01
+ 2.294157339E-01 2.294157339E-01 2.294157339E-01 2.294157339E-01 2.294157339E-01
+ 2.294157339E-01 2.294157339E-01 2.294157339E-01 2.294157339E-01 2.294157339E-01
+ 2.294157339E-01 2.294157339E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 1.000000000E+00 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 1.000000000E+00 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 1.000000000E+00
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 1.000000000E+00 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 7.071067812E-01 7.071067812E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 7.071067812E-01
+ 7.071067812E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01
+ 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01
+ 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01
+ 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01
+ 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01
+ 1.889822365E-01 1.889822365E-01 1.889822365E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01
+ 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01
+ 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01
+ 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01
+ 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01 1.961161351E-01
+ 1.961161351E-01 1.961161351E-01 2.041241452E-01 2.041241452E-01 2.041241452E-01
+ 2.041241452E-01 2.041241452E-01 2.041241452E-01 2.041241452E-01 2.041241452E-01
+ 2.041241452E-01 2.041241452E-01 2.041241452E-01 2.041241452E-01 2.041241452E-01
+ 2.041241452E-01 2.041241452E-01 2.041241452E-01 2.041241452E-01 2.041241452E-01
+ 2.041241452E-01 2.041241452E-01 2.041241452E-01 2.041241452E-01 2.041241452E-01
+ 2.041241452E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 7.071067812E-01 7.071067812E-01 7.071067812E-01 7.071067812E-01
+ 7.071067812E-01 7.071067812E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 7.071067812E-01 7.071067812E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01 2.886751346E-01
+ 2.886751346E-01 2.886751346E-01 2.886751346E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01 2.773500981E-01
+ 2.773500981E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.000000000E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01
+ 5.000000000E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.000000000E-01 5.000000000E-01 5.000000000E-01 5.000000000E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01 3.333333333E-01
+ 3.333333333E-01 3.333333333E-01 3.333333333E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01 5.773502692E-01
+ 5.773502692E-01 5.773502692E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01 3.535533906E-01
+ 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01
+ 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01
+ 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01
+ 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01
+ 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01
+ 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01
+ 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01
+ 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01
+ 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01
+ 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01 1.414213562E-01
+ 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01
+ 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01
+ 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01
+ 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01
+ 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01
+ 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01
+ 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01
+ 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01 1.561737619E-01
+ 1.561737619E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01 3.779644730E-01
+ 3.779644730E-01 3.779644730E-01 3.779644730E-01 2.236067978E-01 2.236067978E-01
+ 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01
+ 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01
+ 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01 2.236067978E-01
+ 2.236067978E-01 2.236067978E-01 2.236067978E-01 4.472135955E-01 4.472135955E-01
+ 4.472135955E-01 4.472135955E-01 4.472135955E-01 2.357022604E-01 2.357022604E-01
+ 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01
+ 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01
+ 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01 2.357022604E-01
+ 2.357022604E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.581988897E-01
+ 2.581988897E-01 2.581988897E-01 2.581988897E-01 2.672612419E-01 2.672612419E-01
+ 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01
+ 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01 2.672612419E-01
+ 2.672612419E-01 2.672612419E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01 1.524985703E-01
+ 1.524985703E-01 1.524985703E-01 1.524985703E-01 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02
+ 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.908708064E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02 8.638684256E-02
+ 8.638684256E-02 8.638684256E-02 8.638684256E-02 1.270001270E-01 1.270001270E-01
+ 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01
+ 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01
+ 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01
+ 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01
+ 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01
+ 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01
+ 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01
+ 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01
+ 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01
+ 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01
+ 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01
+ 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01 1.270001270E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01 1.072112535E-01
+ 1.072112535E-01 1.072112535E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01
+ 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01
+ 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01
+ 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01
+ 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01
+ 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01 1.889822365E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01 3.015113446E-01
+ 3.015113446E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01 3.162277660E-01
+ 3.162277660E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01
+ 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01
+ 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01
+ 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01
+ 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01
+ 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01
+ 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01
+ 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01
+ 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01
+ 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01 1.386750491E-01
+ 1.386750491E-01 1.386750491E-01 1.386750491E-01 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+ 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02 6.495698025E-02
+-5.740131566E-01-2.420537407E-01 3.457910582E-02 7.814877913E-01-5.088415090E-01
+-3.929029373E-01-2.383181751E-01-1.223796034E-01 7.085134937E-02 2.640823022E-01
+ 3.929029373E-01 5.346056362E-01-5.725363468E-01-3.793915549E-01-2.000428199E-01
+-7.587831101E-02 7.587831101E-02 2.552270461E-01 3.793915549E-01 5.173521205E-01
+-6.979408366E-01-3.130469929E-01 1.488256196E-01 3.284427467E-01 5.337194634E-01
+-5.687042300E-01-3.644349555E-01-1.973055491E-01-8.588594491E-02 6.267352738E-02
+ 2.298029337E-01 3.783624060E-01 5.454918122E-01-4.350249032E-01-3.590853941E-01
+-3.048428873E-01-2.289033781E-01-1.638123701E-01 1.290971658E-01 2.267336778E-01
+ 3.026731871E-01 3.786126965E-01 4.545522056E-01-7.071067814E-01-1.631784880E-01
+ 2.175713174E-01 6.527139520E-01-5.110634454E-01-3.960741700E-01-2.667112355E-01
+-1.373483009E-01-7.985366335E-03 1.644985464E-01 2.794878216E-01 3.944770969E-01
+ 4.807190533E-01-3.512295461E-01-3.288582375E-01-3.064869289E-01-2.953012745E-01
+-2.617443115E-01 1.744962077E-01 2.527957880E-01 3.087240597E-01 3.646523313E-01
+ 4.429519118E-01-5.175691006E-01-3.755531888E-01-2.761420505E-01-1.625293212E-01
+ 5.049454637E-02 1.499056846E-01 2.493168228E-01 3.629295522E-01 5.191470550E-01
+-5.828042066E-01-3.416438452E-01 2.210636645E-01 7.033843873E-01-6.390281219E-01
+-2.954646155E-01-2.061381038E-02 3.229496960E-01 6.321568518E-01-4.864023832E-01
+-3.748262094E-01-2.771970571E-01-1.795679049E-01 1.272665734E-01 2.806838126E-01
+ 4.062070083E-01 5.038361603E-01-5.105183892E-01-3.888053959E-01-2.823065265E-01
+-1.301652847E-01-8.452291210E-03 1.589030748E-01 2.958301925E-01 3.871149375E-01
+ 4.783996826E-01-7.095242470E-01-1.689343445E-01 2.365080823E-01 6.419505092E-01
+-4.710853076E-01-3.680646640E-01-2.959502132E-01-2.135336981E-01-8.990892552E-02
+-7.492410462E-03 9.552823338E-02 1.985488772E-01 3.118715853E-01 3.839860361E-01
+ 4.561004869E-01-5.713375803E-01-3.686048904E-01-2.395931788E-01-5.529073356E-02
+ 9.215122259E-02 2.580234233E-01 3.686048904E-01 5.160468467E-01-5.432132172E-01
+-3.744479458E-01-2.197464471E-01-1.072362662E-01 7.559277778E-02 2.443580491E-01
+ 3.849957753E-01 5.396972739E-01-5.546845586E-01-3.893127647E-01-2.239409709E-01
+-7.235015983E-02 9.302163407E-02 2.446124451E-01 3.824222734E-01 5.202321018E-01
+-4.630557655E-01-3.714910660E-01-2.799263667E-01-2.014423387E-01-1.229583106E-01
+ 7.325175950E-02 2.040584729E-01 2.956231723E-01 3.871878716E-01 4.787525711E-01
+-6.459422415E-01-2.348880879E-01 1.761660659E-01 7.046642635E-01-5.783469319E-01
+-3.521490208E-01-2.082048955E-01-6.426077019E-02 5.911990861E-02 2.236274803E-01
+ 3.675716056E-01 5.526426240E-01-6.953920906E-01-1.896523883E-01 2.317973635E-01
+ 6.532471155E-01-6.084849344E-01-3.928193881E-01-2.079632055E-01-2.310702283E-02
+ 1.463444779E-01 2.695819330E-01 3.620100244E-01 4.544381158E-01-4.720180397E-01
+-3.559480301E-01-2.979130250E-01-2.166640183E-01-1.238080105E-01-5.416600458E-02
+ 3.869000324E-03 1.779740150E-01 2.476160209E-01 3.056510257E-01 3.636860308E-01
+ 4.217210356E-01-5.155440953E-01-3.127070743E-01-2.450947339E-01-1.605793084E-01
+ 2.535462764E-02 2.281916488E-01 3.972224998E-01 5.831564358E-01-7.095242473E-01
+-1.689343446E-01 2.365080824E-01 6.419505094E-01-7.206576831E-01-1.752951121E-01
+ 2.921585202E-01 6.037942751E-01-5.532177706E-01-3.829969181E-01-2.506029217E-01
+-1.182089254E-01 1.844059235E-01 2.789730638E-01 3.735402041E-01 4.681073443E-01
+-7.087321464E-01-1.880309777E-01 2.748145058E-01 6.219486183E-01-7.046642635E-01
+-1.761660659E-01 2.348880879E-01 6.459422415E-01-5.255787283E-01-3.828569185E-01
+-2.605239386E-01-1.381909587E-01-1.585797887E-02 1.676414909E-01 2.899744708E-01
+ 3.919186207E-01 4.734739406E-01-6.324555321E-01-3.162277660E-01 0.000000000E+00
+ 3.162277660E-01 6.324555321E-01-6.425895644E-01-3.365945337E-01 3.059950307E-02
+ 3.671940368E-01 5.813905583E-01-5.498125957E-01-3.748722245E-01-1.999318530E-01
+ 6.815858632E-03 1.658525599E-01 3.407929314E-01 6.111553235E-01-5.170681280E-01
+-3.648471370E-01-2.126261461E-01-6.040515513E-02 1.256427227E-01 4.639115915E-01
+ 5.653922521E-01-5.969620060E-01-3.411211463E-01-4.264014330E-02 3.411211463E-01
+ 6.396021494E-01-5.358070089E-01-3.813573017E-01-2.440686731E-01-1.239411230E-01
+ 1.334750556E-02 1.334750556E-01 2.364415270E-01 3.737301556E-01 5.281798626E-01
+-5.561397478E-01-3.716141173E-01-2.280941823E-01-1.050770952E-01 9.995138327E-02
+ 2.639741661E-01 3.869912532E-01 5.100083401E-01-6.146789777E-01-4.279410605E-01
+-7.780746555E-03 1.789571707E-01 3.190106087E-01 5.524330053E-01-7.436490464E-01
+-1.368679227E-02 9.580754584E-02 6.615282928E-01-6.320168708E-01-3.204592584E-01
+-8.901646066E-03 3.471641966E-01 6.142135786E-01-4.681454353E-01-3.541621988E-01
+-2.564622819E-01-1.587623650E-01 2.035414935E-02 2.157539831E-01 4.111538168E-01
+ 5.902703314E-01-5.631859205E-01-4.054938628E-01-1.689557762E-01-1.126371841E-02
+ 2.252743681E-01 3.829664260E-01 5.406584837E-01-4.429910821E-01-3.793276931E-01
+-2.838326095E-01-2.201692205E-01-1.405899842E-01-4.509490059E-02 3.448433573E-02
+ 1.299794193E-01 2.095586556E-01 2.891378919E-01 3.846329753E-01 4.642122119E-01
+-4.281149878E-01-3.844297849E-01-3.232705010E-01-2.795852981E-01-1.135815274E-01
+-7.863336510E-02-4.368520285E-02-3.814220211E-12 3.494816225E-02 8.737040565E-02
+ 1.310556085E-01 1.572667302E-01 1.922148925E-01 2.708482576E-01 3.582186632E-01
+ 4.193779472E-01-5.132347461E-01-3.466983978E-01-2.967374933E-01-2.134693192E-01
+-9.689387536E-02 3.633520326E-02 1.529106471E-01 1.862179167E-01 2.694860909E-01
+ 3.694078998E-01 4.526760742E-01-6.396021490E-01-3.731012536E-01-5.330017909E-02
+ 0.000000000E+00 1.599005372E-01 3.731012536E-01 5.330017909E-01-3.433942596E-01
+-3.042981389E-01-2.652020184E-01-2.261058977E-01-1.967838072E-01-1.674617167E-01
+-1.381396262E-01-4.039932465E-02-1.303204023E-03 8.666306739E-02 1.550812785E-01
+ 2.332735198E-01 3.407878516E-01 3.994320325E-01 4.678502435E-01-5.986927857E-01
+-4.141899776E-01-2.296871694E-01 1.920335351E-01 2.711061671E-01 3.501787992E-01
+ 4.292514313E-01-4.995562352E-01-3.813513795E-01-3.306921557E-01-1.280552603E-01
+-9.428244439E-02-4.362322054E-02 7.458163512E-02 1.252408590E-01 1.927864907E-01
+ 2.603321226E-01 3.785369782E-01 4.460826098E-01-5.369652087E-01-4.029581846E-01
+-2.895676256E-01-1.555606015E-01-7.309474045E-02 5.060405108E-02 1.330699121E-01
+ 2.567687037E-01 2.980016343E-01 3.289263322E-01 3.907757280E-01-6.443170192E-01
+-2.941975823E-01-1.629027935E-01 1.726283334E-01 3.914529816E-01 5.373360800E-01
+-5.478841452E-01-4.288610378E-01-2.701635613E-01 1.398049198E-01 2.852776067E-01
+ 3.646263450E-01 4.571998728E-01-4.174538088E-01-3.687508644E-01-2.956964479E-01
+-8.870893436E-02 1.182785791E-01 4.104962453E-01 6.418352308E-01-7.132923260E-01
+-1.802826759E-01 2.743432024E-01 6.192317995E-01-4.963543015E-01-3.033276286E-01
+-1.915753444E-01 1.161062693E-02 1.161062693E-02 2.046372997E-01 7.633987209E-01
+-5.422997814E-01-2.662198928E-01-1.084599563E-01 9.859996028E-03 1.281799484E-01
+ 7.789396861E-01-6.524016431E-01-3.249881792E-01-1.940227936E-01-1.067125365E-01
+ 2.425284920E-02 1.988733634E-01 2.861836205E-01 3.516663133E-01 4.171490061E-01
+-4.634170388E-01-3.934672970E-01-2.535678136E-01-1.661306365E-01 4.371858857E-02
+ 2.885426844E-01 4.109547324E-01 5.333667802E-01-5.307215336E-01-2.719947860E-01
+ 8.027163199E-01-7.558772982E-01-1.316036367E-01 3.374452224E-03 3.408196746E-01
+ 5.432868081E-01-5.814571896E-01-4.237738838E-01-2.858009914E-01 8.869685940E-02
+ 2.266697518E-01 2.266697518E-01 3.055114046E-01 4.434842970E-01-5.228965828E-01
+-4.251153876E-01-2.714592233E-01-1.457405436E-01 4.982184716E-02 5.447809456E-02
+ 1.755405269E-01 2.593529801E-01 3.571341755E-01 4.688841130E-01-4.550760723E-01
+-3.613839397E-01-3.078455782E-01-1.606150843E-01-9.369213252E-02-2.676918072E-02
+ 2.275380361E-01 3.078455782E-01 3.747685301E-01 4.952298434E-01-4.733470869E-01
+-3.859215035E-01-2.984959202E-01-1.860915988E-01-8.617664642E-02 1.011638893E-01
+ 2.135682107E-01 2.635256869E-01 3.634406392E-01 4.883343298E-01-3.929822449E-01
+-3.103808813E-01-2.736691641E-01-2.002457299E-01-1.451781542E-01-1.360002249E-01
+-7.509214869E-03 2.770065931E-01 2.861845223E-01 3.320741689E-01 5.707003303E-01
+-4.460439606E-01-3.373631986E-01-2.830228176E-01-2.105689763E-01 4.301946827E-02
+ 2.422675319E-01 4.234021351E-01 5.683098178E-01-3.612105510E-01-3.493351355E-01
+-2.424563972E-01-2.305809819E-01-1.474530742E-01-7.620058199E-02-6.432516660E-02
+ 6.927325637E-03 2.444356331E-01 2.563110485E-01 3.988160331E-01 5.650718483E-01
+-7.056919323E-01-3.320903210E-01-5.811580616E-02-3.320903210E-02 1.660451605E-02
+ 1.411383864E-01 1.660451605E-01 3.154858049E-01 4.898332234E-01-7.317917226E-01
+ 5.227083734E-02 6.795208854E-01-8.070833995E-01 2.964796161E-01 5.106037834E-01
+-4.281535139E-01-3.880141220E-01 8.161676358E-01-3.982228196E-01-3.819133527E-01
+-2.840565506E-01-2.025092154E-01-1.943544820E-01-8.834294634E-02 5.028752329E-02
+ 9.921592434E-02 2.378463940E-01 3.112389956E-01 4.090957977E-01 4.417147316E-01
+-5.322972941E-01-3.125100244E-01-1.614062763E-01-1.339328676E-01-1.201961632E-01
+ 3.056416721E-01 4.017986027E-01 5.529023506E-01-4.942380244E-01-4.167104912E-01
+-3.488738995E-01-8.721847489E-02 9.690941657E-03 7.752753323E-02 1.550550665E-01
+ 2.713463664E-01 3.876376662E-01 4.457833162E-01-4.801691721E-01-3.949514351E-01
+-2.032115268E-01-1.925593096E-01-1.819070925E-01-8.603713834E-02 9.832815811E-03
+ 1.163549871E-01 1.376594214E-01 1.483116385E-01 2.761382440E-01 3.933126323E-01
+ 4.572259351E-01-7.418707522E-01-9.429052726E-02 2.045926535E-01 6.315686259E-01
+-4.433319425E-01-3.670269611E-01-3.517659647E-01-2.220474962E-01-9.232902762E-02
+ 1.671079095E-01 2.434128910E-01 2.510433891E-01 3.578703633E-01 4.570668391E-01
+-7.187795363E-01-2.580234233E-01-7.372097810E-02 2.027326897E-01 3.501746459E-01
+ 4.976166021E-01-4.854581869E-01-3.309942184E-01-2.280182393E-01-7.355427078E-02
+ 1.066536926E-01 3.126056507E-01 6.987655722E-01-5.491705831E-01-4.697356170E-01
+-2.016426063E-01-1.420663817E-01-9.241952790E-02-2.291393254E-02 5.652103360E-02
+ 8.630914590E-02 1.458853705E-01 2.054615951E-01 2.551084490E-01 3.246140443E-01
+ 4.040490105E-01-6.348441880E-01-3.625249652E-01-1.582855482E-01-1.582855482E-01
+-5.105985421E-03 9.701372307E-02 1.991334316E-01 2.501932858E-01 3.352930429E-01
+ 4.374127513E-01-7.774815829E-01 1.727736851E-01 6.047078979E-01-7.217537409E-01
+-1.365480050E-01 2.145754365E-01 6.437263094E-01-4.049312450E-01-3.536741254E-01
+-3.024170059E-01-1.896513426E-01-1.896513426E-01-1.178913751E-01-6.663425550E-02
+-5.125711967E-03 4.613140766E-02 2.306570383E-01 2.819141579E-01 2.819141579E-01
+ 3.536741254E-01 4.356855167E-01-4.912241466E-01-3.426185224E-01-2.683157103E-01
+-1.940128982E-01-1.320938881E-01-7.017487807E-02 7.843074608E-02 1.403497561E-01
+ 1.403497561E-01 2.641877763E-01 3.632581923E-01 5.118638165E-01-4.810537795E-01
+-3.353499905E-01-1.734568916E-01-1.734568916E-01 1.017613764E-01 4.255475741E-01
+ 6.360086028E-01-3.169550924E-01-3.079506863E-01-2.989462802E-01-2.899418743E-01
+-1.728845958E-01-6.483172344E-02 1.872916455E-01 2.863401119E-01 4.574238266E-01
+ 5.204546687E-01-4.106444632E-01-3.470490818E-01-2.325773951E-01-1.562629373E-01
+ 7.268043598E-02 3.779382670E-01 6.959151745E-01-6.783738520E-01-1.995217212E-01
+ 1.995217212E-01 6.783738520E-01-5.387500496E-01-3.587917868E-01-2.575652638E-01
+-1.563387409E-01-7.760700089E-02 3.486691345E-02 2.373199593E-01 3.048043079E-01
+ 3.610412650E-01 4.510203964E-01-5.582423491E-01-3.695407100E-01-2.044267757E-01
+ 1.965642074E-01 3.380904368E-01 5.975551908E-01-6.644580563E-01-1.416058153E-01
+ 7.624928515E-02 7.298145864E-01-5.713182295E-01-4.085589663E-01-1.760457335E-01
+ 3.321617612E-02 1.959754391E-01 4.052373487E-01 5.214939651E-01-6.376825262E-01
+-2.732925112E-01 2.277437593E-01 6.832312781E-01-4.785094745E-01-4.098786336E-01
+-2.726169516E-01-1.181975594E-01-1.525129799E-02 8.769496347E-02 2.935874864E-01
+ 4.136914582E-01 4.994800093E-01-3.801429607E-01-3.484643806E-01-2.724357885E-01
+-2.344214924E-01 2.027429123E-01 3.928143927E-01 6.399073172E-01-5.020717122E-01
+-3.741553525E-01-2.206557207E-01-1.183226328E-01-1.598954498E-02 2.654264466E-01
+ 4.189260784E-01 5.468424382E-01-4.472657843E-01-3.265314622E-01-2.661643011E-01
+-1.756135595E-01-1.756135595E-01-5.487923734E-02 6.585508481E-02 1.564058264E-01
+ 2.771401486E-01 4.280580513E-01 5.186087929E-01-6.414043565E-01-2.613128859E-01
+ 2.138014522E-01 6.889157902E-01-4.180379781E-01-3.663811112E-01-3.018100277E-01
+-2.501531608E-01-1.855820773E-01-1.855820773E-01-1.210109937E-01 8.131173488E-03
+ 2.535012911E-02 3.611197638E-02 9.853069051E-02 1.329686018E-01 1.437304490E-01
+ 1.889302075E-01 2.535012911E-01 2.535012911E-01 3.051581580E-01 3.826434582E-01
+-6.963471324E-01-2.321157108E-01 3.413466335E-01 5.871162097E-01-6.443833370E-01
+-3.411441196E-01 3.790490218E-02 3.790490218E-01 5.685735327E-01-4.599525093E-01
+-3.716079724E-01-2.706427874E-01-1.949188987E-01-1.191950100E-01 2.594244335E-01
+ 3.099070259E-01 3.856309146E-01 4.613548033E-01-6.943808910E-01-2.479931754E-02
+ 7.191802085E-01-6.658858077E-01-3.430320827E-01 1.008917890E-01 3.632104405E-01
+ 5.448156608E-01-7.071067811E-01 0.000000000E+00 7.071067811E-01-6.882973783E-01
+-3.622617781E-02 7.245235562E-01-4.165577428E-01-3.868881561E-01-3.166251801E-01
+-2.881693492E-01-2.212104864E-01-1.922152084E-01-1.212104928E-01-9.936288797E-02
+-9.288952362E-02-9.052944286E-02-8.816936209E-02-8.466295638E-02-8.250516826E-02
+-7.818959200E-02-7.083962619E-02-3.092054582E-02-2.815587979E-02-2.485176671E-02
+-2.040132869E-02-1.770409354E-02-1.507428925E-02-1.150045267E-02-7.319738171E-03
+-4.689933891E-03-2.329853126E-03 1.311414340E-03 3.132048074E-03 5.964144991E-03
+ 8.256794877E-03 1.041458301E-02 1.446043574E-02 1.709024003E-02 1.972004431E-02
+ 6.779826104E-02 6.968632564E-02 7.197897553E-02 7.346245487E-02 7.562024299E-02
+ 7.899178695E-02 8.128443684E-02 8.391424111E-02 8.586973661E-02 9.018531286E-02
+ 9.092705253E-02 9.166879220E-02 9.200594660E-02 9.551235231E-02 1.008393917E-01
+ 1.027948872E-01 1.094031134E-01 1.121003485E-01 1.139209822E-01 1.659101900E-01
+ 1.679331163E-01 1.695514574E-01 1.723161235E-01 1.737996028E-01 1.751482204E-01
+-2.150769621E-01-2.100485359E-01-2.086599328E-01-2.039260587E-01-1.849905624E-01
+-1.795413473E-01-1.735240674E-01-1.546096105E-01-1.492235137E-01-1.452049807E-01
+-1.240813825E-01-1.184007336E-01-1.130356763E-01-9.410017997E-02-8.999748909E-02
+-8.252848778E-02-6.327739983E-02-5.843832855E-02-5.246312746E-02-3.308580288E-02
+-2.814153440E-02-2.204009669E-02-2.452377698E-03 1.734470937E-03 7.309922635E-03
+ 2.771817980E-02 5.769938234E-02 6.868197022E-02 8.799617648E-02 9.788471346E-02
+ 3.909009995E-01 1.274451272E-01 1.530080472E-01 1.561639633E-01 1.809694635E-01
+ 1.875127295E-01 2.098145362E-01 2.178095236E-01 2.391435161E-01 2.442140213E-01
+ 2.508414450E-01-3.180535014E-01-3.177132622E-01-3.172814199E-01-3.169542667E-01
+-3.166532858E-01-3.163523047E-01-3.160382377E-01 4.091208375E-02 4.129158148E-02
+ 4.600258766E-02 5.771467249E-02 6.245185091E-02 6.383898053E-02 7.594364920E-02
+ 8.321953652E-02 9.498396585E-02 1.014092549E-01 1.134615790E-01 1.212478253E-01
+ 1.321747424E-01 1.393459408E-01 1.544342467E-01 1.598257315E-01 1.697581029E-01
+ 1.775312631E-01 1.888245918E-01 1.946740912E-01-1.194911538E-01-1.172497071E-01
+-1.140942725E-01-1.131367613E-01-1.090891003E-01-8.408500085E-02-7.992853175E-02
+-7.666428899E-02-7.581558589E-02-5.823219829E-02-5.736173355E-02-4.476175656E-02
+-2.639495070E-02 9.457835859E-01-1.370792722E-02-1.294627058E-02 4.680640254E-03
+ 5.899290880E-03 1.595315854E-02 1.667129194E-02 3.588680090E-02 3.784534655E-02
+ 4.023912457E-02-3.351790296E-01-3.330796727E-01-3.005396407E-01-1.826607503E-01
+-1.501732022E-01-2.883037297E-02 3.079852005E-03 1.190168371E-01 1.322427857E-01
+ 1.516093531E-01 2.836064186E-01-2.575553080E-01-2.274295363E-01-1.068214821E-01
+-7.459635354E-02 4.569679721E-02 4.837347727E-02 7.115149971E-02 1.967980106E-01
+ 2.217278738E-01 3.481616436E-01 3.754007994E-01-2.866227940E-01-2.819083511E-01
+-1.786122252E-01-1.719046845E-01-1.600994130E-01-6.765033848E-02-4.817930623E-02
+ 4.147176559E-02 1.504788833E-01 1.712530949E-01 2.621690172E-01 2.623223324E-01
+ 2.624756477E-01 2.626289628E-01 2.628972645E-01-2.327708248E-01-2.302027949E-01
+-2.206589228E-01-2.142580126E-01-1.143731502E-01-1.045609764E-01-1.410499975E-02
+-1.130699709E-02 5.749320572E-04 7.320801505E-03 9.555370759E-02 1.175544409E-01
+ 2.164044256E-01 2.241085152E-01-2.404856193E-01-2.361232984E-01-2.303333089E-01
+-2.249002365E-01-2.229966783E-01-1.867101001E-01-1.739800547E-01-1.662468495E-01
+-1.289291773E-01-1.258755527E-01-1.096953080E-01-1.077520923E-01-7.194140375E-02
+-7.071202240E-02-6.904640895E-02-6.642901645E-02-6.599278436E-02-6.190806571E-02
+-5.869581125E-02-5.369897100E-02-5.286616429E-02-4.743309193E-02-4.556919119E-02
+-1.055165182E-02 5.113045860E-03 4.762584564E-02 4.964837622E-02 6.368711793E-02
+ 6.578896347E-02 9.973575133E-02 1.021945140E-01 1.279718646E-01 1.293598758E-01
+ 1.581908510E-01 1.610858458E-01 1.715554159E-01 1.756401345E-01 2.132750664E-01
+ 2.264810014E-01 2.332227700E-01 2.348487260E-01 2.744665310E-01 2.889811623E-01
+-3.252662345E-02-3.227969374E-02-3.224228015E-02-3.203276404E-02-3.198038501E-02
+-3.184569608E-02-3.139673300E-02-3.135183668E-02-3.082804641E-02-3.078315009E-02
+-3.058859943E-02-3.055118583E-02-3.031922157E-02-3.026684253E-02-2.999746468E-02
+-2.996005109E-02-2.981039672E-02-2.974305226E-02-2.954850159E-02-2.950360528E-02
+-2.924171015E-02-2.921177927E-02-2.906212490E-02-2.901722859E-02-2.884512607E-02
+-2.880771249E-02-2.868050627E-02-2.865805812E-02-2.855330007E-02-2.852336919E-02
+-2.830637036E-02-2.826147405E-02-2.750571951E-02-2.675744769E-02-2.263446994E-02
+-2.247733286E-02-2.241747111E-02-2.229026491E-02-2.227529947E-02-2.214061054E-02
+-2.209571423E-02-2.191612899E-02-2.189368084E-02-2.172906103E-02-2.169164745E-02
+-2.151206220E-02-2.147464862E-02-2.139233871E-02-2.135492513E-02-2.107058183E-02
+-2.104065096E-02-2.092092747E-02-2.089847931E-02-2.071141136E-02-2.067399777E-02
+-2.063658417E-02-2.033727545E-02-2.030734458E-02-2.014272477E-02-2.010531118E-02
+-1.992572594E-02-1.989579507E-02-1.977607158E-02-1.974614071E-02-1.959648635E-02
+-1.957403818E-02-1.922235043E-02-1.918493684E-02-1.906521335E-02-1.903528247E-02
+-1.882576637E-02-1.881080093E-02-1.868359471E-02-1.866114656E-02-1.842169958E-02
+-1.839925143E-02-1.821218347E-02-1.818973531E-02-1.800266736E-02-1.798021921E-02
+-1.783056484E-02-1.780063397E-02-1.765097960E-02-1.760608329E-02-1.742649806E-02
+-1.646871012E-02-1.598981615E-02-1.196411375E-02-1.162739143E-02-1.155256425E-02
+-1.153011610E-02-1.132808270E-02-1.129066911E-02-1.121584193E-02-1.119339378E-02
+-1.074443068E-02-1.072198252E-02-1.060974175E-02-1.057981088E-02-1.054239729E-02
+-1.051994913E-02-1.037029477E-02-1.034784661E-02-1.025057128E-02-1.022812312E-02
+-1.003357245E-02-1.000364157E-02-9.794125463E-03-9.771677308E-03-9.412506833E-03
+-9.390058679E-03-9.210473441E-03-9.188025286E-03-8.993474612E-03-8.971026458E-03
+-8.866268402E-03-8.843820248E-03-8.701648602E-03-8.671717729E-03-8.619338701E-03
+-8.596890546E-03-8.484649773E-03-8.454718900E-03-8.364926281E-03-8.334995408E-03
+-8.260168225E-03-8.207789198E-03-7.908480470E-03-7.541827276E-03-7.519379121E-03
+-7.377207475E-03-7.354759321E-03-7.175174083E-03-7.152725928E-03-6.905796226E-03
+-6.756141862E-03-6.733693707E-03-6.546625752E-03-6.524177596E-03-6.404454105E-03
+-5.566389663E-03-4.892945022E-03-8.896907701E-04-5.828993226E-04-5.155548586E-04
+-4.856239857E-04-3.883486487E-04-3.659004941E-04-2.761078753E-04-2.536597206E-04
+-1.264535108E-04-1.040053560E-04-5.910904667E-05-2.917817381E-05 1.129934725E-04
+ 1.354416273E-04 2.476824008E-04 2.776132736E-04 4.646812293E-04 4.871293841E-04
+ 7.190936492E-04 7.340590857E-04 3.666090497E-01 3.668484966E-01 3.669981510E-01
+ 3.671627708E-01 3.673348733E-01 3.675219413E-01 3.676865611E-01-2.071835602E-01
+-2.070854095E-01-2.069872587E-01-2.068945607E-01-2.068018628E-01-2.066928064E-01
+-1.184716219E-01-1.128824809E-01-1.052049094E-01-1.050794946E-01-1.049213628E-01
+-1.048068535E-01-1.047087027E-01-1.046160048E-01-1.045178540E-01-9.705839547E-02
+-9.476821079E-02-7.281515508E-02-7.262430636E-02-7.247162738E-02-7.231349559E-02
+-7.219898636E-02-7.210083559E-02-7.198087353E-02-7.162644019E-02-7.146285558E-02
+-7.132108224E-02-7.115204480E-02-7.103208274E-02-7.084123403E-02-7.075944171E-02
+-6.598277087E-02-6.588462010E-02-6.553563958E-02-6.533933804E-02-6.507760265E-02
+-6.478860316E-02-6.470135803E-02-6.433601905E-02-6.411790623E-02-6.392160469E-02
+-6.381800109E-02-6.356717135E-02-6.333270006E-02-6.320183237E-02-6.306551185E-02
+-6.291283288E-02-6.269472005E-02-5.800529434E-02-5.791259639E-02-5.781444562E-02
+-5.760178562E-02-5.542065738E-02-5.057855268E-02-4.864280137E-02-4.823383983E-02
+-4.778670854E-02-4.768855777E-02-4.723597366E-02-4.667433314E-02-4.233934076E-02
+-4.131966331E-02-4.117243716E-02-4.103066382E-02-4.092160741E-02-4.075256997E-02
+-4.039268381E-02-4.026181611E-02-4.006551457E-02-3.992374124E-02-3.975470380E-02
+-3.960747764E-02-3.946025149E-02-3.438367551E-02-3.392018576E-02-3.372933704E-02
+-3.339671498E-02-3.289505549E-02-3.274782933E-02-3.241520728E-02-3.228433958E-02
+-3.178268008E-02-3.145005803E-02-2.653706667E-02-2.614446359E-02-2.577912461E-02
+-2.538652153E-02-2.509752203E-02-2.492848460E-02-2.463948510E-02-1.863592963E-02
+-1.835783578E-02-1.811791167E-02-1.794342141E-02-1.768713884E-02-1.735996961E-02
+-1.700553627E-02-1.682014037E-02-1.671108396E-02-1.656931062E-02-1.639482036E-02
+-1.624759420E-02-1.618216036E-02-1.596404753E-02-1.580046292E-02-1.571321779E-02
+-1.529880342E-02-1.098016951E-02-1.062573617E-02-1.022222744E-02-9.933227950E-03
+-9.529719233E-03-9.317059224E-03-8.935361783E-03-8.788135627E-03-8.346457159E-03
+-8.073816130E-03-7.970212535E-03-2.893636562E-03-2.599184249E-03-2.097524754E-03
+-1.955751419E-03-1.846695007E-03-1.704921672E-03-1.214167818E-03-1.017866277E-03
+-7.452252466E-04-5.053011400E-04-3.744334462E-04-2.053960077E-04 4.882085610E-03
+ 5.051123048E-03 5.209254845E-03 5.340122540E-03 5.541876902E-03 5.852687676E-03
+ 6.048989218E-03 6.196215374E-03 6.321630247E-03 6.430686660E-03 6.517931789E-03
+ 6.676063586E-03 6.823289742E-03 7.194081543E-03 7.488533855E-03 7.668476935E-03
+ 7.995646171E-03 1.252148727E-02 1.269052471E-02 1.296316574E-02 1.313765599E-02
+ 1.328488215E-02 1.342665549E-02 1.365567395E-02 1.406463550E-02 1.429365396E-02
+ 1.438635191E-02 1.452812524E-02 1.480076628E-02 1.501342628E-02 1.520427500E-02
+ 1.567867039E-02 1.650204630E-02 2.056985047E-02 2.066254842E-02 2.076069919E-02
+ 2.097881201E-02 2.116420791E-02 2.131143407E-02 2.155681099E-02 2.171494279E-02
+ 2.184581049E-02 2.200394229E-02 2.218388536E-02 2.240745101E-02 2.265282794E-02
+ 2.278914845E-02 2.287094076E-02 2.299090281E-02 2.318175154E-02 2.341622282E-02
+ 2.898355265E-02 2.914713727E-02 2.928345778E-02 2.944158958E-02 2.963789112E-02
+ 2.979602292E-02 2.998687164E-02 3.015590908E-02 3.031949370E-02 3.062485165E-02
+ 3.080479473E-02 3.094111524E-02 3.114832243E-02 3.613765328E-02 3.624125686E-02
+ 3.639938866E-02 3.652480353E-02 3.664476559E-02 3.678108610E-02 3.692285944E-02
+ 3.709734970E-02 3.723912304E-02 3.778985791E-02 3.792072561E-02 3.822063075E-02
+ 3.837330972E-02 3.857506408E-02 4.398426211E-02 4.443684622E-02 4.452409135E-02
+ 4.462224212E-02 4.472039289E-02 4.558739137E-02 4.570190060E-02 4.580550419E-02
+ 4.588184368E-02 4.610540932E-02 4.623627702E-02 4.650346523E-02 4.659616318E-02
+ 4.674884216E-02 5.204353095E-02 5.226164378E-02 5.246885096E-02 5.262698276E-02
+ 5.287781251E-02 5.305230276E-02 5.313409507E-02 5.331403816E-02 5.348307559E-02
+ 5.359213200E-02 5.386477304E-02 5.412105561E-02 5.419194227E-02 5.435007407E-02
+ 5.457363971E-02 5.466633766E-02 5.481356382E-02 5.503712946E-02 5.530977049E-02
+ 5.559876999E-02 5.957932902E-02 5.991195107E-02 6.010825261E-02 6.031545980E-02
+ 6.050085571E-02 6.067534596E-02 6.081166648E-02 6.092072289E-02 6.104613776E-02
+ 6.124789212E-02 6.136240136E-02 6.153689162E-02 6.163504239E-02 6.178226854E-02
+ 6.190768341E-02 6.785671069E-02 6.810754044E-02 6.828203070E-02 6.839653993E-02
+ 6.850559634E-02 6.863101121E-02 6.875642608E-02 6.896363327E-02 6.936714199E-02
+ 6.948165123E-02 6.955253789E-02 6.967795277E-02 6.978155636E-02 6.991242406E-02
+ 7.006510303E-02 9.123840543E-02 9.923769325E-02 1.015278778E-01 1.069152646E-01
+ 1.226193879E-01 1.227393500E-01 1.228320480E-01 1.229301987E-01 1.230119910E-01
+ 1.230992362E-01 1.232082925E-01-4.954589850E-01-4.936227212E-01-3.421921557E-01
+-2.627431361E-01-1.615037848E-01-7.703564396E-02-7.519938004E-02 1.538964057E-02
+ 2.028634439E-02 2.212260832E-02 3.375227988E-02 4.268876434E-02 4.538195145E-02
+ 5.211491920E-02 5.333909515E-02 5.578744706E-02 5.884788694E-02 6.129623885E-02
+ 6.435667874E-02 6.680503065E-02 6.925338256E-02 7.268107522E-02 7.965887817E-02
+ 2.030558144E-01 2.094215293E-01 2.210512009E-01 2.283962567E-01 2.320687845E-01
+-2.877659483E-01-2.868953123E-01-2.859577042E-01-2.853214701E-01-2.846852361E-01
+-2.839820300E-01-2.833792820E-01-4.708769769E-03 1.019250131E-02 3.617763920E-02
+ 3.969366946E-02 5.506374457E-02 8.654058687E-02 1.382764606E-01 1.515034316E-01
+ 2.009287712E-01 2.313675474E-01 2.323721274E-01 2.414133481E-01 2.794869329E-01
+ 2.996789923E-01-2.251706356E-01-2.242727905E-01-2.232627147E-01-2.202698976E-01
+-2.194094627E-01-2.186612585E-01-2.176885929E-01-2.170526193E-01-2.161547742E-01
+-2.153691597E-01-2.137231103E-01-1.102838703E-01-1.082263085E-01-6.969378874E-02
+-6.333405243E-02-6.127649072E-02-4.967932454E-02-4.762176281E-02-4.144907759E-02
+-3.957856692E-02-1.900294956E-02-9.650396205E-03-7.779885531E-03 2.320872086E-03
+ 8.493557297E-03 1.017701690E-02 3.898288122E-02 4.365915790E-02 4.534261750E-02
+ 5.656568150E-02 5.881029432E-02 6.180311142E-02 6.367362207E-02 6.872400088E-02
+ 7.059451154E-02 9.322769066E-02 9.921332479E-02 1.040766525E-01 1.095011335E-01
+ 1.115586952E-01 1.192277890E-01 1.212853507E-01 1.424221213E-01 1.474725001E-01
+ 1.493430108E-01 1.560768492E-01 1.590696662E-01 1.736596495E-01 1.996597478E-01
+ 2.017173095E-01 2.101346075E-01 2.118180671E-01-2.112396164E-01-1.933563293E-01
+-1.774191645E-01-1.716728436E-01-1.016387351E-01-9.745720175E-02-9.712846483E-02
+-9.686547533E-02-9.591871307E-02-9.562942460E-02-9.519549189E-02-9.489305394E-02
+-9.464321389E-02-9.436707491E-02-9.384109587E-02-9.347291055E-02-9.305212733E-02
+-8.307167512E-02-8.272978876E-02-8.240105187E-02-8.225640763E-02-8.188822230E-02
+-8.138854221E-02-8.087571266E-02-8.062587262E-02-8.036288311E-02-8.023138834E-02
+-7.944241980E-02-7.861400282E-02-7.819321957E-02-7.715441098E-02-7.657583405E-02
+-7.594465920E-02-7.497159800E-02-7.453766529E-02-7.418262944E-02-7.380129464E-02
+-7.299917661E-02-6.379454350E-02-6.288722966E-02-6.265053910E-02-6.228235378E-02
+-6.190101898E-02-6.150653469E-02-6.096740618E-02-6.061237033E-02-6.024418502E-02
+-5.995489654E-02-5.962615965E-02-5.931057222E-02-5.904758270E-02-5.870569634E-02
+-5.835066049E-02-5.815341835E-02-5.792987727E-02-5.748279507E-02-5.721980557E-02
+-4.539842675E-02-4.512228776E-02-4.460945819E-02-4.441221607E-02-4.424127287E-02
+-4.391253598E-02-4.353120118E-02-4.336025799E-02-4.308411900E-02-4.282112948E-02
+-4.246609363E-02-4.183491880E-02-4.129579027E-02-4.079611018E-02-4.046737329E-02
+-3.998084269E-02-3.979675003E-02-3.941541523E-02-3.899463201E-02-3.848180243E-02
+-3.815306554E-02-3.779802969E-02-3.753504017E-02-3.725890118E-02-3.677237057E-02
+-3.640418525E-02-3.594395359E-02-3.569411355E-02-3.545742299E-02-3.511553663E-02
+-2.622649092E-02-2.593720245E-02-2.567421293E-02-2.543752236E-02-2.517453285E-02
+-2.483264648E-02-2.437241482E-02-2.403052846E-02-2.332045676E-02-2.303116829E-02
+-2.212385444E-02-2.172937017E-02-2.125598904E-02-2.051961839E-02-2.029607731E-02
+-1.933616556E-02-1.870499072E-02-1.792917165E-02-7.317544616E-03-7.212348808E-03
+-6.620622393E-03-6.305034974E-03-5.949999125E-03-5.673860132E-03-5.331973759E-03
+-5.003236860E-03-4.753396821E-03-4.477257827E-03-4.109072501E-03-3.767186129E-03
+-3.070263907E-03-2.846722818E-03-2.215547977E-03-1.203038335E-03-8.480024852E-04
+-5.061161129E-04 1.142045851E-02 1.164399960E-02 1.186754069E-02 1.215682916E-02
+ 1.286690085E-02 1.314303984E-02 1.383996207E-02 1.420814739E-02 1.451058534E-02
+ 1.474727590E-02 1.501026542E-02 1.545734760E-02 1.577293502E-02 1.606222349E-02
+ 1.654875410E-02 1.660135200E-02 1.708788261E-02 1.810039225E-02 1.836338177E-02
+ 1.874471657E-02 1.911290188E-02 1.963888092E-02 2.013856101E-02 2.038840106E-02
+ 2.084863271E-02 2.113792118E-02 3.018476059E-02 3.046089957E-02 3.093428071E-02
+ 3.100002808E-02 3.149970817E-02 3.181529559E-02 3.206513563E-02 3.393236120E-02
+ 3.495802032E-02 3.551029832E-02 3.577328784E-02 3.669375114E-02 3.786405449E-02
+ 3.820594087E-02 3.885026517E-02 3.908695576E-02 3.932364632E-02 4.020466119E-02
+ 4.939614483E-02 4.996157229E-02 5.047440185E-02 5.089518509E-02 5.142116411E-02
+ 5.186824629E-02 5.274926118E-02 5.298595174E-02 5.322264231E-02 5.359082764E-02
+ 5.419570352E-02 5.451129095E-02 5.487947627E-02 5.515561527E-02 5.552380059E-02
+ 5.573419220E-02 5.610237754E-02 5.641796494E-02 5.703599031E-02 5.714118613E-02
+ 6.879162176E-02 6.900201337E-02 6.976468296E-02 7.056680100E-02 7.147411482E-02
+ 7.168450644E-02 7.255237186E-02 7.265756765E-02 7.271016556E-02 7.377527311E-02
+ 7.424865424E-02 7.465628799E-02 7.510337017E-02 7.547155549E-02 7.594493662E-02
+ 7.624737458E-02 7.665500832E-02 7.691799784E-02 7.715468840E-02 7.737822950E-02
+ 7.766751797E-02 8.720088798E-02 8.758222278E-02 8.784521230E-02 8.838434081E-02
+ 8.883142298E-02 8.894976827E-02 8.940999991E-02 8.987023158E-02 9.036991166E-02
+ 9.088274121E-02 9.155336449E-02 9.180320452E-02 9.205304458E-02 9.256587413E-02
+ 9.357838377E-02 9.395971857E-02 9.463034185E-02 9.534041354E-02 9.603733575E-02
+ 9.623457790E-02 9.640552109E-02 9.681315485E-02 1.060703859E-01 1.063202259E-01
+ 1.070828955E-01 1.073327355E-01 1.077009209E-01 1.116063152E-01 1.520804019E-01
+-2.995209777E-01-2.995209777E-01-2.995209777E-01-2.995209777E-01-2.995209777E-01
+-2.995209777E-01 2.523056754E-01 2.523056754E-01 2.523056754E-01 2.523056754E-01
+ 2.523056754E-01 2.677987441E-01 2.677987441E-01-3.655562498E-01-3.655562498E-01
+-3.655562498E-01-3.655562498E-01 3.260246506E-01 3.260246506E-01 1.192927876E-01
+ 3.454414554E-01 3.454414554E-01-3.896587919E-01-3.896587919E-01-3.896587919E-01
+-3.896587919E-01 2.905239785E-01 2.905239785E-01 8.719931877E-02 8.719931877E-02
+ 9.197351664E-02 9.197351664E-02 3.096207697E-01 3.096207697E-01-2.236067978E-01
+-2.236067978E-01-2.236067978E-01-2.236067978E-01 8.944271911E-01-2.980909860E-01
+-2.980909860E-01-2.980909860E-01-2.980909860E-01-2.980909860E-01 3.633287324E-01
+ 3.633287324E-01 3.818987328E-01 3.818987328E-01-2.236067978E-01-2.236067978E-01
+-2.236067978E-01-2.236067978E-01 8.944271911E-01-2.886751346E-01-2.886751346E-01
+-2.886751346E-01-2.886751346E-01 5.773502693E-01 5.773502693E-01-2.041241453E-01
+-2.041241453E-01-2.041241453E-01-2.041241453E-01-2.041241453E-01-2.041241453E-01
+ 6.123724358E-01 6.123724358E-01-2.236067978E-01-2.236067978E-01-2.236067978E-01
+-2.236067978E-01 8.944271911E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01
+-2.886751346E-01 5.773502693E-01 5.773502693E-01-1.825741858E-01-1.825741858E-01
+-1.825741858E-01-1.825741858E-01-1.825741858E-01 9.128709290E-01-2.390457219E-01
+-2.390457219E-01-2.390457219E-01-2.390457219E-01-2.390457219E-01 5.976143047E-01
+ 5.976143047E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01
+ 5.773502693E-01 5.773502693E-01-2.390457219E-01-2.390457219E-01-2.390457219E-01
+-2.390457219E-01-2.390457219E-01 5.976143047E-01 5.976143047E-01-2.886751346E-01
+-2.886751346E-01-2.886751346E-01-2.886751346E-01 5.773502693E-01 5.773502693E-01
+-2.390457219E-01-2.390457219E-01-2.390457219E-01-2.390457219E-01-2.390457219E-01
+ 5.976143047E-01 5.976143047E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01
+-2.886751346E-01 5.773502693E-01 5.773502693E-01-3.534856528E-01-3.534856528E-01
+-3.534856528E-01-3.534856528E-01 3.436985907E-01 3.436985907E-01 3.632727148E-01
+ 3.632727148E-01-2.390457219E-01-2.390457219E-01-2.390457219E-01-2.390457219E-01
+-2.390457219E-01 5.976143045E-01 5.976143045E-01-2.886751346E-01-2.886751346E-01
+-2.886751346E-01-2.886751346E-01 5.773502692E-01 5.773502692E-01-2.886751346E-01
+-2.886751346E-01-2.886751346E-01-2.886751346E-01 5.773502692E-01 5.773502692E-01
+-3.273268353E-01-3.273268353E-01-3.273268353E-01-3.273268353E-01 4.364357805E-01
+ 4.364357805E-01 4.364357805E-01-2.041241453E-01-2.041241453E-01-2.041241453E-01
+-2.041241453E-01-2.041241453E-01-2.041241453E-01 6.123724358E-01 6.123724358E-01
+-2.886751346E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01 5.773502692E-01
+ 5.773502692E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01
+ 5.773502692E-01 5.773502692E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01
+-2.886751346E-01 5.773502692E-01 5.773502692E-01-2.886751346E-01-2.886751346E-01
+-2.886751346E-01-2.886751346E-01 5.773502692E-01 5.773502692E-01-3.924626113E-01
+-3.924626113E-01-3.924626113E-01-3.924626113E-01 2.640663018E-01 2.640663018E-01
+ 2.640663018E-01 6.781240693E-02 7.242057855E-02 7.242057855E-02 2.824989881E-01
+ 2.824989881E-01-1.581138830E-01-1.581138830E-01-1.581138830E-01-1.581138830E-01
+-1.581138830E-01-1.581138830E-01-1.581138830E-01-1.581138830E-01 6.324555320E-01
+ 6.324555320E-01-3.534856528E-01-3.534856528E-01-3.534856528E-01-3.534856528E-01
+ 3.436985907E-01 3.436985907E-01 3.632727148E-01 3.632727148E-01-4.144511569E-01
+-4.144511569E-01-4.144511569E-01-4.144511569E-01 1.315245297E-01 1.315245297E-01
+ 1.943670350E-01 1.943670350E-01 1.943670350E-01 1.943670350E-01 1.943670350E-01
+ 2.114601965E-01 2.114601965E-01-2.896387157E-01-2.896387157E-01-2.896387157E-01
+-2.896387157E-01-2.896387157E-01-2.896387157E-01 3.189002273E-01 1.369918067E-01
+ 1.369918067E-01 1.369918067E-01 3.359855486E-01 3.359855486E-01 3.359855486E-01
+-4.568704569E-01-4.568704569E-01-4.568704569E-01 3.227126392E-01 8.967458728E-02
+ 8.967458728E-02 8.967458728E-02 8.967458728E-02 3.446001910E-01 3.446001910E-01
+-2.831834822E-01-2.831834822E-01-2.831834822E-01-2.831834822E-01-2.831834822E-01
+-2.831834822E-01-2.831834822E-01 2.650498803E-01 2.650498803E-01 1.011683962E-01
+ 1.011683962E-01 1.011683962E-01 1.011683962E-01 1.011683962E-01 1.050164421E-01
+ 2.804420639E-01 2.804420639E-01 2.804420639E-01-2.886751346E-01-2.886751346E-01
+-2.886751346E-01-2.886751346E-01 5.773502692E-01 5.773502692E-01-2.886751346E-01
+-2.886751346E-01-2.886751346E-01-2.886751346E-01 5.773502692E-01 5.773502692E-01
+-2.886751346E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01 5.773502692E-01
+ 5.773502692E-01-3.533075915E-01-3.533075915E-01-3.533075915E-01-3.533075915E-01
+ 3.346664655E-01 3.346664655E-01 3.719487175E-01 3.719487175E-01-3.985436537E-01
+-3.985436537E-01-3.985436537E-01-3.985436537E-01 2.181901885E-01 2.181901885E-01
+ 2.181901885E-01 2.181901885E-01 2.181901885E-01 2.516118362E-01 2.516118362E-01
+-2.897237840E-01-2.897237840E-01-2.897237840E-01-2.897237840E-01-2.897237840E-01
+-2.897237840E-01-2.897237840E-01 1.975257060E-01 1.975257060E-01 1.975257060E-01
+ 1.975257060E-01 1.975257060E-01 1.975257060E-01 1.975257060E-01 1.975257060E-01
+ 2.239304202E-01 2.239304202E-01-3.869938671E-01-3.869938671E-01-3.869938671E-01
+-3.869938671E-01 2.465516791E-01 2.465516791E-01 2.465516791E-01 2.465516791E-01
+ 2.808843760E-01 2.808843760E-01-2.041241453E-01-2.041241453E-01-2.041241453E-01
+-2.041241453E-01-2.041241453E-01-2.041241453E-01 6.123724358E-01 6.123724358E-01
+-2.390457219E-01-2.390457219E-01-2.390457219E-01-2.390457219E-01-2.390457219E-01
+ 5.976143045E-01 5.976143045E-01-5.000000000E-01-5.000000000E-01 5.000000000E-01
+ 5.000000000E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01
+ 5.773502692E-01 5.773502692E-01-5.622386694E-01-5.622386694E-01 1.011292901E-01
+ 1.011292901E-01 1.011292901E-01 4.105447342E-01 4.105447342E-01-8.164965809E-01
+ 4.082482904E-01 4.082482904E-01-3.651483716E-01-3.651483716E-01-3.651483716E-01
+ 5.477225575E-01 5.477225575E-01-5.000000000E-01-5.000000000E-01 5.000000000E-01
+ 5.000000000E-01-8.164965809E-01 4.082482904E-01 4.082482904E-01-4.082482905E-01
+-4.082482905E-01-4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01
+-2.886751346E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01 5.773502692E-01
+ 5.773502692E-01-4.316131859E-01-4.316131859E-01-4.316131859E-01-4.316131859E-01
+ 9.877653958E-02 9.877653958E-02 1.451734308E-01 1.451734308E-01 1.451734308E-01
+ 1.451734308E-01 1.451734308E-01 1.451734308E-01 1.451734308E-01 1.598250807E-01
+ 1.764302839E-01 1.764302839E-01-4.342692722E-01-4.342692722E-01-4.342692722E-01
+-3.845158284E-01 1.622669423E-01 1.622669423E-01 1.622669423E-01 1.622669423E-01
+ 1.622669423E-01 1.622669423E-01 1.622669423E-01 1.622669423E-01 1.945940530E-01
+ 1.945940530E-01-4.155859743E-01-4.155859743E-01-4.155859743E-01-4.155859743E-01
+ 1.413954939E-01 1.901185505E-01 1.901185505E-01 1.901185505E-01 1.901185505E-01
+ 1.901185505E-01 1.901185505E-01 1.901185505E-01 1.901185505E-01-5.000000000E-01
+-5.000000000E-01-5.000000000E-01 1.666666666E-01 1.666666666E-01 1.666666666E-01
+ 1.666666666E-01 1.666666666E-01 1.666666666E-01 1.666666666E-01 1.666666666E-01
+ 1.666666666E-01-3.415328781E-01-3.415328781E-01-3.415328781E-01-3.415328781E-01
+-3.415328781E-01 2.418350800E-01 2.418350800E-01 2.418350800E-01 2.418350800E-01
+ 2.418350800E-01 2.418350800E-01 2.566539106E-01-3.715669341E-01-3.715669341E-01
+-3.715669341E-01-3.715669341E-01-3.715669341E-01-3.715669341E-01 7.609167506E-02
+ 7.609167506E-02 7.609167506E-02 7.609167506E-02 7.609167506E-02 7.609167506E-02
+ 7.609167506E-02 7.609167506E-02 7.609167506E-02 7.609167506E-02 7.609167506E-02
+ 7.609167506E-02 7.609167506E-02 7.609167506E-02 7.609167506E-02 7.609167506E-02
+ 7.609167506E-02 7.609167506E-02 7.609167506E-02 7.609167506E-02 7.609167506E-02
+ 7.609167506E-02 7.609167506E-02 7.609167506E-02 7.609167506E-02 7.609167506E-02
+ 7.609167506E-02 8.746318930E-02 8.746318930E-02-4.325136617E-01-4.325136617E-01
+-4.325136617E-01-4.325136617E-01 1.002259276E-01 1.468283778E-01 1.468283778E-01
+ 1.468283778E-01 1.468283778E-01 1.468283778E-01 1.468283778E-01 1.468283778E-01
+ 1.468283778E-01 1.468283778E-01 1.468283778E-01 1.615449411E-01-5.192221753E-01
+-5.192221753E-01-5.192221753E-01 7.577911195E-02 7.577911195E-02 1.278280274E-01
+ 1.278280274E-01 1.278280274E-01 1.278280274E-01 1.278280274E-01 1.278280274E-01
+ 1.278280274E-01 1.278280274E-01 1.278280274E-01 1.278280274E-01 1.278280274E-01
+-4.225771273E-01-4.225771273E-01-4.225771273E-01-4.225771273E-01 1.690308509E-01
+ 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01
+ 1.690308509E-01 1.690308509E-01 1.690308509E-01 1.690308509E-01-5.063696837E-01
+-5.063696837E-01-5.063696837E-01 1.519109051E-01 1.519109051E-01 1.519109051E-01
+ 1.519109051E-01 1.519109051E-01 1.519109051E-01 1.519109051E-01 1.519109051E-01
+ 1.519109051E-01 1.519109051E-01-4.082482905E-01-4.082482905E-01-4.082482905E-01
+ 4.082482905E-01 4.082482905E-01 4.082482905E-01-4.082482905E-01-4.082482905E-01
+-4.082482905E-01 4.082482905E-01 4.082482905E-01 4.082482905E-01-3.273268353E-01
+-3.273268353E-01-3.273268353E-01-3.273268353E-01 4.364357805E-01 4.364357805E-01
+ 4.364357805E-01-3.651483716E-01-3.651483716E-01-3.651483716E-01 5.477225575E-01
+ 5.477225575E-01-2.738612787E-01-2.738612787E-01-2.738612787E-01-2.738612787E-01
+-2.738612787E-01 4.564354646E-01 4.564354646E-01 4.564354646E-01-2.886751346E-01
+-2.886751346E-01-2.886751346E-01 8.660254038E-01-4.363204829E-01-4.363204829E-01
+-4.363204829E-01 3.157480785E-01 3.157480785E-01 3.387326457E-01 3.387326457E-01
+-2.278805966E-01-2.278805966E-01-2.278805966E-01-2.278805966E-01-2.278805966E-01
+-2.278805966E-01-2.278805966E-01 3.893590672E-01 3.893590672E-01 4.082230210E-01
+ 4.082230210E-01-4.052035054E-01-4.052035054E-01-4.052035054E-01 3.056688687E-01
+ 4.549708235E-01 4.549708235E-01-2.390457219E-01-2.390457219E-01-2.390457219E-01
+-2.390457219E-01-2.390457219E-01 5.976143048E-01 5.976143048E-01-3.259894217E-01
+-3.259894217E-01-3.259894217E-01-3.259894217E-01 3.609186343E-01 4.715195264E-01
+ 4.715195264E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01
+ 5.773502693E-01 5.773502693E-01-4.369020882E-01-4.369020882E-01-4.369020882E-01
+-4.369020882E-01 9.751411457E-02 9.751411457E-02 9.751411457E-02 9.751411457E-02
+ 9.751411457E-02 1.200752207E-01 1.200752207E-01 1.200752207E-01 1.200752207E-01
+ 1.200752207E-01 1.200752207E-01 1.200752207E-01 2.097556177E-01 2.097556177E-01
+-1.336306210E-01-1.336306210E-01-1.336306210E-01-1.336306210E-01-1.336306210E-01
+-1.336306210E-01-1.336306210E-01 9.354143467E-01-2.886751346E-01-2.886751346E-01
+-2.886751346E-01-2.886751346E-01 5.773502691E-01 5.773502691E-01-3.542122690E-01
+-3.542122690E-01-3.542122690E-01-3.542122690E-01-3.542122690E-01-3.542122690E-01
+ 8.999559330E-02 8.999559330E-02 8.999559330E-02 8.999559330E-02 8.999559330E-02
+ 8.999559330E-02 8.999559330E-02 8.999559330E-02 8.999559330E-02 8.999559330E-02
+ 8.999559330E-02 8.999559330E-02 8.999559330E-02 8.999559330E-02 8.999559330E-02
+ 8.999559330E-02 1.673510521E-01 1.673510521E-01 1.673510521E-01 1.832909648E-01
+-2.069895980E-01-2.069895980E-01-2.069895980E-01-2.069895980E-01-2.069895980E-01
+-2.069895980E-01-2.069895980E-01 4.760177513E-01 4.760177513E-01 4.968916838E-01
+-3.921872059E-01-3.921872059E-01-3.921872059E-01-3.921872059E-01 3.208902411E-01
+ 6.864515768E-02 6.864515768E-02 6.864515768E-02 6.864515768E-02 6.864515768E-02
+ 6.864515768E-02 6.864515768E-02 6.864515768E-02 3.493486607E-01 3.493486607E-01
+-4.113272660E-01-4.113272660E-01-4.113272660E-01-4.113272660E-01-1.385347256E-02
+-1.385347256E-02-1.385347256E-02-1.385347256E-02-1.385347256E-02-1.385347256E-02
+-1.385347256E-02-1.385347256E-02-1.385347256E-02-1.385347256E-02-1.385347256E-02
+-1.385347256E-02-1.385347256E-02-1.385347256E-02-1.385347256E-02-1.385347256E-02
+-1.385347256E-02-1.385347256E-02-1.385347256E-02-1.385347256E-02-1.385347256E-02
+-1.385347256E-02-1.385347256E-02-1.385347256E-02-1.385347256E-02 1.395574652E-01
+ 1.395574652E-01 1.395574652E-01 1.395574652E-01 1.395574652E-01 1.395574652E-01
+ 1.395574652E-01 1.395574652E-01 1.395574652E-01 1.395574652E-01 1.395574652E-01
+ 2.282568802E-01 2.282568802E-01-4.563066691E-01-4.563066691E-01-4.563066691E-01
+ 2.654049461E-01 2.654049461E-01 2.719510830E-01 2.719510830E-01 2.942079492E-01
+-4.364254028E-01-4.364254028E-01-4.364254028E-01 3.238709959E-01 3.238709959E-01
+ 3.307671082E-01 3.307671082E-01-3.535480103E-01-3.535480103E-01-3.535480103E-01
+-3.535480103E-01 3.487703345E-01 3.551405689E-01 3.551405689E-01 3.551405689E-01
+-2.886751346E-01-2.886751346E-01-2.886751346E-01 8.660254038E-01-3.717136907E-01
+-3.717136907E-01-3.717136907E-01-3.717136907E-01 2.579946495E-01 2.579946495E-01
+ 3.236218216E-01 3.236218216E-01 3.236218216E-01-4.944512989E-01-4.944512989E-01
+-4.944512989E-01-4.659297951E-02-4.659297951E-02-4.659297951E-02-4.659297951E-02
+ 1.388360790E-01 1.388360790E-01 1.388360790E-01 1.388360790E-01 1.388360790E-01
+ 1.388360790E-01 1.388360790E-01 1.388360790E-01 1.388360790E-01 1.388360790E-01
+ 1.388360790E-01-6.230730650E-02 2.048362524E-01-3.577167122E-01-3.577167122E-01
+-3.577167122E-01-3.577167122E-01-3.577167122E-01 1.811045589E-01 1.811045589E-01
+ 1.811045589E-01 1.811045589E-01 1.811045589E-01 1.811045589E-01 1.811045589E-01
+ 9.965296649E-03 2.554431761E-01 2.554431761E-01-3.651483717E-01-3.651483717E-01
+-3.651483717E-01 5.477225576E-01 5.477225576E-01-2.981423970E-01-2.981423970E-01
+-2.981423970E-01-2.981423970E-01-2.981423970E-01 3.726779963E-01 3.726779963E-01
+ 3.726779963E-01 3.726779963E-01-7.071067811E-01 7.071067811E-01-5.000000000E-01
+-5.000000000E-01 5.000000000E-01 5.000000000E-01-3.651483717E-01-3.651483717E-01
+-3.651483717E-01 5.477225576E-01 5.477225576E-01-1.846372365E-01-1.846372365E-01
+-1.846372365E-01-1.846372365E-01-1.846372365E-01-1.846372365E-01-1.846372365E-01
+-1.846372365E-01 4.923659639E-01 4.923659639E-01 4.923659639E-01-3.127419532E-01
+-3.127419532E-01-3.127419532E-01-3.127419532E-01-3.127419532E-01-3.127419532E-01
+ 2.671193506E-02 2.671193506E-02 2.671193506E-02 2.671193506E-02 2.671193506E-02
+ 2.671193506E-02 2.671193506E-02 2.365561569E-01 2.365561569E-01 2.365561569E-01
+ 2.365561569E-01 2.365561569E-01 2.533436946E-01 2.533436946E-01-3.179619147E-01
+-3.179619147E-01-3.179619147E-01-3.179619147E-01-3.179619147E-01 1.397967096E-01
+ 1.397967096E-01 1.397967096E-01 1.397967096E-01 1.397967096E-01 4.454130130E-01
+ 4.454130130E-01-2.065248880E-01-2.065248880E-01-2.065248880E-01-2.065248880E-01
+-2.065248880E-01-2.065248880E-01-2.065248880E-01-2.065248880E-01-2.065248880E-01
+ 1.269840233E-01 3.331531684E-01 3.496467000E-01 3.496467000E-01 3.496467000E-01
+ 3.496467000E-01-3.608060397E-01-3.608060397E-01-3.608060397E-01-3.608060397E-01
+ 6.528182571E-02 3.286815972E-01 3.497535789E-01 3.497535789E-01 3.497535789E-01
+-1.825741859E-01-1.825741859E-01-1.825741859E-01-1.825741859E-01-1.825741859E-01
+ 9.128709289E-01-3.668083630E-01-3.668083630E-01-3.668083630E-01-3.668083630E-01
+-3.668083630E-01 1.803389307E-01 9.845294107E-02 9.845294107E-02-2.561674003E-02
+ 1.853017178E-01 1.853017178E-01 1.853017178E-01 1.853017178E-01 1.853017178E-01
+ 1.853017178E-01 1.853017178E-01 1.853017178E-01-5.073861533E-01-5.073861533E-01
+-5.073861533E-01 1.753557923E-01 7.317672550E-02 7.317672550E-02 7.317672550E-02
+ 7.317672550E-02 7.317672550E-02 7.317672550E-02 1.815484629E-01 1.815484629E-01
+ 1.815484629E-01 1.815484629E-01 1.815484629E-01-2.967227471E-01-2.967227471E-01
+-2.967227471E-01-2.967227471E-01-2.967227471E-01 4.553159394E-01 3.427659319E-01
+ 3.427659319E-01 3.427659319E-01-4.209001754E-01-4.209001754E-01-4.209001754E-01
+-4.209001754E-01 1.729384177E-01 8.406461453E-02 1.783247086E-01 1.783247086E-01
+ 1.783247086E-01 1.783247086E-01 1.783247086E-01 1.783247086E-01 1.783247086E-01
+ 1.783247086E-01-6.725927090E-01-6.725927090E-01 7.079923251E-02 7.079923251E-02
+ 7.079923251E-02 7.079923251E-02 7.079923251E-02 7.079923251E-02 7.079923251E-02
+ 7.079923251E-02 7.079923251E-02 7.079923251E-02 7.079923251E-02 7.079923251E-02
+ 7.079923251E-02 7.079923251E-02 7.079923251E-02 7.079923251E-02 7.079923251E-02
+ 7.079923251E-02 7.079923251E-02-3.651483717E-01-3.651483717E-01-3.651483717E-01
+ 5.477225575E-01 5.477225575E-01-4.364254028E-01-4.364254028E-01-4.364254028E-01
+ 3.238709959E-01 3.238709959E-01 3.307671082E-01 3.307671082E-01-2.885923003E-01
+-2.885923003E-01-2.885923003E-01-2.885923003E-01 5.602463244E-01 5.941228768E-01
+-3.534942317E-01-3.534942317E-01-3.534942317E-01-3.534942317E-01 3.376522230E-01
+ 3.587749012E-01 3.587749012E-01 3.587749012E-01-4.081669288E-01-4.081669288E-01
+-4.081669288E-01 3.918666195E-01 4.163170830E-01 4.163170830E-01-4.159531667E-01
+-4.159531667E-01-4.159531667E-01-4.159531667E-01 1.780436213E-01 1.834313472E-01
+ 1.834313472E-01 1.834313472E-01 1.834313472E-01 1.834313472E-01 1.834313472E-01
+ 1.834313472E-01 2.017496155E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01
+ 8.660254035E-01-3.726697781E-01-3.726697781E-01-3.726697781E-01-3.726697781E-01
+ 2.957108587E-01 2.957108587E-01 2.957108587E-01 3.017732680E-01 3.017732680E-01
+-4.081669288E-01-4.081669288E-01-4.081669288E-01 3.918666195E-01 4.163170830E-01
+ 4.163170830E-01-3.161350749E-01-3.161350749E-01-3.161350749E-01-3.161350749E-01
+-3.161350749E-01 3.002570377E-01 3.058478959E-01 3.248568136E-01 3.248568136E-01
+ 3.248568136E-01-4.081112546E-01-4.081112546E-01-4.081112546E-01 3.869574982E-01
+ 4.186881332E-01 4.186881332E-01-1.825741859E-01-1.825741859E-01-1.825741859E-01
+-1.825741859E-01-1.825741859E-01 9.128709290E-01-4.082409165E-01-4.082409165E-01
+-4.082409165E-01 4.033334376E-01 4.106946558E-01 4.106946558E-01-4.999898091E-01
+-4.999898091E-01 4.954752284E-01 5.045043898E-01-3.534441153E-01-3.534441153E-01
+-3.534441153E-01-3.534441153E-01 3.380769798E-01 3.443492800E-01 3.656751006E-01
+ 3.656751006E-01-4.362784182E-01-4.362784182E-01-4.362784182E-01 3.106112653E-01
+ 3.173857747E-01 3.404191074E-01 3.404191074E-01-2.833687390E-01-2.833687390E-01
+-2.833687390E-01-2.833687390E-01-2.833687390E-01-2.833687390E-01-2.833687390E-01
+ 2.106397165E-01 2.106397165E-01 2.106397165E-01 2.151205187E-01 2.151205187E-01
+ 2.303552466E-01 2.303552466E-01 2.303552466E-01 2.303552466E-01-4.362410190E-01
+-4.362410190E-01-4.362410190E-01 3.122449892E-01 3.122449892E-01 3.421165396E-01
+ 3.421165396E-01-4.362410190E-01-4.362410190E-01-4.362410190E-01 3.122449892E-01
+ 3.122449892E-01 3.421165396E-01 3.421165396E-01-2.417422914E-01-2.417422914E-01
+-2.417422914E-01-2.417422914E-01-2.417422914E-01-2.417422914E-01-2.417422914E-01
+-2.417422914E-01-2.417422914E-01 2.095451741E-01 2.095451741E-01 2.095451741E-01
+ 2.095451741E-01 2.136384842E-01 2.136384842E-01 2.275557394E-01 2.275557394E-01
+ 2.275557394E-01 2.275557394E-01-4.081669288E-01-4.081669288E-01-4.081669288E-01
+ 3.918666195E-01 4.163170830E-01 4.163170830E-01-3.272697530E-01-3.272697530E-01
+-3.272697530E-01-3.272697530E-01 4.211117480E-01 4.439836320E-01 4.439836320E-01
+-2.278707522E-01-2.278707522E-01-2.278707522E-01-2.278707522E-01-2.278707522E-01
+-2.278707522E-01-2.278707522E-01 3.805622174E-01 4.048443492E-01 4.048443492E-01
+ 4.048443492E-01-2.980397448E-01-2.980397448E-01-2.980397448E-01-2.980397448E-01
+-2.980397448E-01 3.594301015E-01 3.594301015E-01 3.856692606E-01 3.856692606E-01
+-2.581383344E-01-2.581383344E-01-2.581383344E-01-2.581383344E-01-2.581383344E-01
+-2.581383344E-01 3.684524046E-01 3.934592006E-01 3.934592006E-01 3.934592006E-01
+-5.474927706E-01-5.474927706E-01 3.413465457E-01 3.768194978E-01 3.768194978E-01
+-3.651483717E-01-3.651483717E-01-3.651483717E-01 5.477225576E-01 5.477225576E-01
+-2.886751346E-01-2.886751346E-01-2.886751346E-01-2.886751346E-01 5.773502693E-01
+ 5.773502693E-01-4.081112546E-01-4.081112546E-01-4.081112546E-01 3.869574982E-01
+ 4.186881332E-01 4.186881332E-01-4.362925005E-01-4.362925005E-01-4.362925005E-01
+ 3.050301268E-01 3.346157915E-01 3.346157915E-01 3.346157915E-01-4.362925005E-01
+-4.362925005E-01-4.362925005E-01 3.050301268E-01 3.346157915E-01 3.346157915E-01
+ 3.346157915E-01-4.081112546E-01-4.081112546E-01-4.081112546E-01 3.869574982E-01
+ 4.186881332E-01 4.186881332E-01-3.725626365E-01-3.725626365E-01-3.725626365E-01
+-3.725626365E-01 2.851640358E-01 2.911298104E-01 2.911298104E-01 3.114134448E-01
+ 3.114134448E-01-4.563039674E-01-4.563039674E-01-4.563039674E-01 2.606357996E-01
+ 2.606357996E-01 2.825467677E-01 2.825467677E-01 2.825467677E-01-3.725873993E-01
+-3.725873993E-01-3.725873993E-01-3.725873993E-01 2.859934702E-01 2.859934702E-01
+ 3.061208855E-01 3.061208855E-01 3.061208855E-01-2.886751346E-01-2.886751346E-01
+-2.886751346E-01 8.660254035E-01-2.041241452E-01-2.041241452E-01-2.041241452E-01
+-2.041241452E-01-2.041241452E-01-2.041241452E-01 6.123724357E-01 6.123724357E-01
+-3.651483717E-01-3.651483717E-01-3.651483717E-01 5.477225576E-01 5.477225576E-01
+-3.651483717E-01-3.651483717E-01-3.651483717E-01 5.477225576E-01 5.477225576E-01
+-5.000000002E-01-5.000000002E-01 5.000000002E-01 5.000000002E-01-5.000000002E-01
+-5.000000002E-01 5.000000002E-01 5.000000002E-01 1.502319086E-02 1.502319086E-02
+ 1.502319086E-02 1.502319086E-02 1.350855775E-01 1.350855775E-01 1.350855775E-01
+ 1.831105322E-01 1.831105322E-01 1.831105322E-01 1.831105322E-01 1.831105322E-01
+ 1.831105322E-01 1.831105322E-01 1.831105322E-01 1.831105322E-01-3.827835166E-01
+-3.827835166E-01-3.827835166E-01-3.827835166E-01-9.703503652E-02-9.703503652E-02
+-9.703503652E-02-9.703503652E-02-9.703503652E-02-9.703503652E-02-1.083455434E-02
+-1.083455434E-02-1.083455434E-02 1.196149283E-01 1.196149283E-01 1.196149283E-01
+ 1.196149283E-01 1.717947215E-01 1.717947215E-01 1.717947215E-01 1.717947215E-01
+ 1.717947215E-01 1.717947215E-01 1.717947215E-01 1.717947215E-01 1.717947215E-01
+-4.430571734E-01-4.430571734E-01-4.430571734E-01-1.325874047E-01-1.325874047E-01
+-1.325874047E-01-1.325874047E-01-1.325874047E-01-3.162277661E-01-3.162277661E-01
+-3.162277661E-01-3.162277661E-01-3.162277661E-01-3.162277661E-01 2.108185105E-01
+ 2.108185105E-01 2.108185105E-01 2.108185105E-01 2.108185105E-01 2.108185105E-01
+ 2.108185105E-01 2.108185105E-01 2.108185105E-01 2.982233263E-02-1.002823670E-01
+ 2.980153584E-02-9.976244729E-02 5.756524651E-02 3.013428443E-02 5.729488828E-02
+ 2.998870692E-02 3.013428443E-02-9.608141599E-02 3.055022017E-02-9.581105776E-02
+ 3.876495105E-02 1.767466936E-03 3.830742173E-02 1.621889427E-03 1.788263723E-03
+-6.798495673E-02 2.162605890E-03-6.773539528E-02 9.077771538E-02-8.955122487E-02
+ 9.007062462E-02-8.980078631E-02 8.984185997E-02 7.505534440E-02 6.191177500E-02
+ 7.480578295E-02 6.182858785E-02 6.184938464E-02 8.888520776E-02 6.195336857E-02
+ 8.903078527E-02 1.996231593E-03 6.449057659E-02 1.788263723E-03 6.430340551E-02
+ 1.684279788E-03 1.725873362E-03-1.680406387E-02 1.933841233E-03-1.649211207E-02
+ 2.058621955E-03 6.765168822E-02 4.398494459E-02 6.754770428E-02 4.408892852E-02
+ 2.435277764E-02 4.448406748E-02 2.435277764E-02 4.452566105E-02 2.435277764E-02
+ 2.439437121E-02 2.352090616E-02 2.429038728E-02 2.350010937E-02 2.356249973E-02
+ 2.302178327E-02 2.352090616E-02 2.298018970E-02 2.352090616E-02-4.325991660E-03
+-5.088999780E-02-4.284398086E-03-5.095238816E-02-4.263601301E-03 6.696539424E-02
+ 2.664042421E-02 6.694459746E-02 2.670281457E-02 2.676520493E-02-4.346788447E-03
+ 2.682759530E-02-4.450772382E-03 2.680679851E-02 5.390501200E-02 2.822098003E-02
+ 5.394660557E-02 2.824177681E-02-1.907091366E-02-4.993828494E-04-1.900852330E-02
+-3.122117664E-04-1.875896185E-02-3.930618743E-02 7.362036609E-02-3.943096815E-02
+ 7.357877252E-02-3.943096815E-02-2.364620680E-02-3.930618743E-02-2.350062929E-02
+ 9.154719650E-02 6.390826655E-02 9.144321257E-02 6.397065691E-02 9.144321257E-02
+ 9.154719650E-02 9.335651697E-02 9.152639972E-02 9.346050091E-02 4.756199195E-02
+ 4.467123856E-02 4.745800802E-02 4.456725462E-02-1.514032091E-02-1.846780683E-02
+-1.503633698E-02-1.853019719E-02 8.318454846E-03-1.859258756E-02 8.214470911E-03
+ 8.256064487E-03-5.282643863E-03 8.214470911E-03-5.220253502E-03-5.241050289E-03
+ 1.101969752E-03-5.178659928E-03 1.247547260E-03 1.289140835E-03-5.553002094E-03
+ 1.413921557E-03-5.511408522E-03 3.730917595E-02 1.684279788E-03 3.726758238E-02
+ 1.850654085E-03 1.954638020E-03-7.233148522E-02 2.204199464E-03-7.208192377E-02
+-4.741693437E-02-7.563817435E-02-4.735454400E-02-7.559658078E-02-7.534701933E-02
+-1.586820846E-02-7.526383219E-02-1.570183416E-02 2.953117761E-02-1.597219239E-02
+ 2.928161616E-02-1.611776990E-02 2.930241295E-02 2.934400653E-02 7.611598053E-02
+ 2.938560010E-02 7.634474519E-02 2.942719367E-02 9.755746795E-02-1.132803589E-01
+ 9.745348402E-02-1.132387653E-01 4.566948434E-02-1.892533615E-02 4.577346827E-02
+-1.884214900E-02-1.867577470E-02-9.379376942E-02-1.825983896E-02-9.358580155E-02
+-1.830377218E-03-4.186419223E-02-1.892767579E-03-4.196817617E-02-9.344022404E-02
+-1.853019719E-02-9.356500476E-02-1.844701005E-02-1.846780683E-02 1.609645319E-02
+-1.846780683E-02 1.607565641E-02 1.611724998E-02-4.899749018E-02 1.628362428E-02
+-4.901828697E-02-4.770808938E-02-4.885191267E-02-4.770808938E-02-4.766649581E-02
+-3.706013443E-02-4.762490224E-02-3.701854086E-02-4.758330866E-02 2.894886757E-02
+-4.047080750E-02 2.903205472E-02-4.038762035E-02-4.030443320E-02-6.509420333E-02
+-4.022124606E-02-6.501101618E-02-4.134427256E-02-5.157863141E-03-4.142745970E-02
+-5.074675993E-03-3.602029508E-02 4.460884820E-02-3.606188865E-02 4.460884820E-02
+-5.001653274E-02-1.455801087E-02-5.005812632E-02-1.445402694E-02-1.435004300E-02
+ 3.464718722E-02-1.437083979E-02 3.466798400E-02-6.407516077E-02-4.419343238E-02
+-6.413755113E-02-4.406865166E-02-4.369430949E-02-6.336807001E-02-4.359032555E-02
+-6.322249250E-02-6.326408607E-02-6.330567965E-02-3.090428547E-02-6.332647644E-02
+-3.088348868E-02-3.086269190E-02-2.399975218E-02-3.084189511E-02-2.391656503E-02
+-2.406214254E-02-2.410373612E-02-2.410373612E-02-2.408293933E-02-2.416612648E-02
+-2.050589196E-02-2.052668875E-02-5.750337607E-02-3.123703406E-02-1.430844943E-02
+-1.439163658E-02-8.464552277E-03-3.244324771E-02 2.512225876E-02 2.501827483E-02
+-1.801027752E-02 2.994477371E-03-6.301686427E-03 3.585340086E-02 3.581180729E-02
+ 2.890727400E-02 3.267149245E-02 3.262989887E-02 2.890727400E-02 2.896966436E-02
+ 3.589499444E-02-6.239296068E-03-7.927761208E-02-7.913203457E-02-1.759434178E-02
+ 2.533022663E-02-3.217288948E-02-8.214990833E-03-1.426685586E-02-1.422526228E-02
+-3.090428547E-02-5.719142426E-02-2.013154980E-02-2.379178431E-02-3.880706454E-02
+-2.366700359E-02-3.876547097E-02-3.861989346E-02-2.013154980E-02-3.864069024E-02
+-2.013154980E-02 4.677171405E-02 4.629338795E-02-1.514032091E-02 9.772384225E-02
+-7.470231894E-02 9.786941976E-02 9.578974105E-02-3.015794080E-03-2.953403717E-03
+ 9.626806716E-02 3.502152938E-02 2.813779288E-02-1.451641730E-02 4.695888513E-02
+ 4.716685300E-02-4.637943465E-03 2.641165956E-02-4.762724187E-03 2.632847241E-02
+ 2.634926919E-02-4.845911335E-03 2.626608205E-02-4.887504912E-03-6.946152861E-02
+-6.979427720E-02-6.946152861E-02-6.966949648E-02-6.887921857E-02-6.966949648E-02
+-6.900399929E-02 7.476418938E-02 6.555121273E-02 7.482657974E-02 6.555121273E-02
+ 7.478498616E-02 6.563439988E-02-7.489442926E-04 6.580077417E-02-7.073507196E-04
+-8.672286183E-02-4.369924873E-04-8.668126826E-02 7.921470180E-02 1.621889427E-03
+ 7.913151465E-02 1.580295853E-03-7.565897114E-02 2.678600172E-02-7.570056471E-02
+ 2.693157923E-02-7.557578399E-02 7.536729620E-02-8.684764256E-02 7.538809299E-02
+-8.693082970E-02-7.206112698E-02-8.682684577E-02-7.216511092E-02-9.941124155E-03
+-8.027819750E-03-1.002431130E-02-7.944632601E-03-3.984690389E-02-7.882242240E-03
+-3.988849746E-02 7.216459100E-02-3.327745885E-03 7.189423277E-02-3.494120179E-03
+-3.410933031E-03 7.203981028E-02-3.431729820E-03 6.403304727E-02-1.310457543E-03
+ 6.409543764E-02-1.310457543E-03-1.021332810E-01-1.595139560E-02-1.020916874E-01
+-1.599298918E-02-1.121365356E-01 1.189550222E-02-1.122613163E-01 1.185390864E-02
+-9.499998307E-02 1.019016568E-02-9.491679592E-02 1.027335283E-02 6.276444327E-02
+ 1.023175925E-02 6.259806897E-02 6.239010110E-02 7.988019898E-02 6.243169467E-02
+ 7.998418292E-02 9.907563340E-02 7.994258935E-02 9.907563340E-02 3.857777996E-02
+ 4.067825545E-02 2.087971421E-02 2.094210457E-02 3.853618639E-02 4.071984903E-02
+ 3.843220245E-02 4.055347473E-02 3.834901531E-02 3.763958491E-03 3.834901531E-02
+ 3.826348852E-03 3.930332787E-03-2.433250077E-02 4.013519935E-03-2.410373612E-02
+ 3.876495105E-02-2.414532969E-02 3.878574783E-02 2.790902822E-02 3.913929321E-02
+ 2.784663786E-02 3.911849642E-02-6.679953987E-02-4.558681711E-02-4.558681711E-02
+-5.057804599E-02-8.339537591E-02-4.558681711E-02 3.896616667E-02 3.152128391E-02
+ 3.914011253E-02 3.169522977E-02 2.216299668E-02 2.216299668E-02 1.230026648E-02
+ 1.261336903E-02 2.256307217E-02 3.200833231E-02 1.257857986E-02 1.607489162E-02
+-3.755261670E-02 1.624883748E-02 3.148649474E-02-7.851686649E-02 3.173001892E-02
+-7.815158019E-02-8.294923224E-03-6.835842833E-02-8.799366215E-03-6.884547673E-02
+ 9.339382594E-02-7.564675982E-02 9.421137149E-02-2.669839510E-02-4.536278577E-02
+-2.675057886E-02 3.063416003E-02-2.685494637E-02 3.092986799E-02 3.091247340E-02
+ 7.314652797E-02 3.077331670E-02 7.295518751E-02-6.677552101E-02 2.663665893E-03
+-6.677552101E-02 2.715849651E-03-1.911110199E-03-1.215326762E-03 3.429027673E-03
+-1.319694278E-03 2.420141690E-03-1.389272621E-03 2.333168761E-03-2.111473302E-02
+ 2.367957933E-03 2.750638822E-03-2.059289545E-02 3.307265571E-03 2.681060479E-03
+ 3.811708562E-03 8.382680369E-02 3.637762703E-03 8.391377662E-02 8.337454448E-02
+ 2.378069318E-02 8.347891198E-02 2.381548234E-02-8.505723079E-02-2.228017028E-02
+-4.626730424E-02 8.659254287E-02 8.605331071E-02-4.675435264E-02 6.043108566E-02
+-4.671956347E-02 6.057024236E-02-1.026051143E-02-4.868189802E-03-1.019093309E-02
+-4.833400630E-03 7.525127286E-02-3.149930081E-02 1.078693751E-02-3.136014412E-02
+ 1.052601872E-02 3.738325934E-02 1.071735916E-02 3.747023227E-02 7.413801936E-02
+ 3.724410267E-02 7.439893815E-02 9.117057262E-03 6.029192899E-02 9.151846434E-03
+ 6.013537772E-02 4.161014373E-02 6.003101020E-02 4.157535456E-02-1.888822603E-02
+ 4.161014373E-02-1.878385851E-02 7.876497921E-02-1.116502990E-02 7.843448206E-02
+-1.097368945E-02-7.455090091E-02 7.959991934E-02-6.042649716E-02 6.507544011E-02
+-6.035691881E-02 1.844055531E-02-5.971331914E-02 7.601663464E-02 3.950865250E-03
+ 7.561655917E-02 3.724735633E-03-1.563543847E-02 2.402421739E-02-1.560064930E-02
+-9.149322758E-02-4.626730424E-02-4.611075296E-02 7.126791269E-02-7.496837097E-02
+ 1.306888193E-03-7.496837097E-02 7.465985694E-02-4.277099247E-02 7.462506777E-02
+-3.859303820E-03 7.265947956E-02 2.806076250E-04-1.511034723E-03-7.359419868E-02
+ 7.165059356E-02-7.331588531E-02-1.179123499E-02-7.317672862E-02 6.905880028E-02
+-7.635993784E-02 6.918056238E-02-2.048852793E-02 6.773681174E-02-2.073205213E-02
+ 5.187294941E-02 2.586804349E-02 5.180337107E-02 6.965021619E-02 6.582340729E-02
+-8.114344896E-02-8.194359992E-02-7.794284516E-02-7.702093211E-02-7.776889930E-02
+-4.090977178E-02-4.007483165E-02 5.968637214E-03-3.990088580E-02 6.299134346E-03
+-7.736882382E-02 6.490474791E-03-8.260134052E-03-8.294923224E-03-7.749058593E-02
+ 6.229556002E-03 7.586008337E-02 3.081135955E-03 3.197354314E-02-6.616671050E-02
+ 3.207791064E-02 8.104366995E-02-1.615402238E-03 8.111324831E-02-1.528429309E-03
+-6.602755382E-02-1.354483450E-03-6.557529458E-02-2.648966007E-02-6.494908949E-02
+-8.688366231E-02-8.657055977E-02-2.638529255E-02 7.203327447E-02 4.667196823E-02
+ 6.375345158E-02-5.159004752E-02 6.366647865E-02 6.514501845E-02 6.361429490E-02
+ 6.517980763E-02 3.533395188E-03-9.037997409E-02 4.055232765E-03 7.596445088E-02
+ 2.407640113E-02 7.572092668E-02 2.405900656E-02 4.942356646E-03-1.250115934E-03
+-8.500404585E-04 2.611482135E-03-1.371878036E-03-7.122853500E-02-1.267510520E-03
+ 7.544261331E-02 4.977145818E-03 2.144981867E-02 2.184989415E-02 5.290248364E-03
+ 2.169334288E-02-6.778440699E-02 2.179771039E-02-6.776701241E-02-2.119845230E-03
+ 1.270034196E-02-2.119845230E-03-4.334501380E-02-2.032872300E-03-4.331022463E-02
+-1.980688542E-03 2.275441262E-02 1.840576614E-02 2.266743969E-02 4.439327748E-02
+ 2.258046676E-02 4.442806663E-02 7.639931553E-02 4.446285582E-02 7.646889388E-02
+-1.344372065E-02 7.655586680E-02-1.337414231E-02-5.207709593E-02-5.153786376E-02
+-1.245222925E-02-5.193793924E-02 6.737152545E-02 2.454930862E-03 6.766723341E-02
+ 2.559298378E-03-5.080729115E-02 2.663665893E-03-5.066813447E-02 6.667574201E-02
+-2.606893635E-03 6.681489870E-02-4.313627877E-02 4.420519069E-03-4.296233291E-02
+ 4.472702827E-03 4.455308241E-03-5.985247582E-02 4.507491998E-03-5.966113538E-02
+ 1.447458972E-02-1.967098239E-02 1.447458972E-02-1.968837698E-02-6.910639552E-02
+-1.941006361E-02-6.893244966E-02 8.083493494E-02 4.621970900E-02 8.078275116E-02
+ 8.100888080E-02 4.639365485E-02 1.341677365E-03 4.648062778E-02 1.359071951E-03
+-2.916842630E-02 1.498228638E-03-2.895969126E-02 7.318131714E-02-4.477136985E-02
+ 7.330307922E-02-4.478876443E-02-4.518883991E-02 7.064170760E-02-4.546715328E-02
+ 1.673588589E-02-3.487385047E-02 1.694462092E-02-3.443898582E-02 7.069389134E-02
+ 7.448591108E-02 7.062431301E-02 7.438154357E-02-7.672522415E-02 7.439893815E-02
+-7.651648912E-02-5.080729115E-02-7.618599198E-02-5.068552905E-02-5.056376695E-02
+ 3.764417813E-02-5.073771281E-02 3.741804853E-02-5.839133061E-02 3.736586477E-02
+-5.839133061E-02 3.936624215E-02-3.002076100E-02 3.943582049E-02-2.998597183E-02
+-6.147017231E-02-9.408502087E-02-6.108749142E-02-9.394586420E-02-6.089615098E-02
+-9.377191835E-02-5.785209844E-02-3.400412118E-02-5.778252010E-02-3.389975366E-02
+-3.457814251E-02 3.035584665E-02-3.445638041E-02-3.447377499E-02 3.052979251E-02
+-3.436940748E-02-3.153408998E-02 6.646700698E-02-3.151669539E-02 6.643221779E-02
+-1.822723176E-02-4.508447239E-02-1.840117762E-02 6.354471655E-02-1.873167476E-02
+ 6.350992738E-02-1.869688558E-02-4.548454787E-02 3.947060965E-02-6.609713216E-02
+ 3.950539884E-02-3.529132053E-02 3.742130219E-03-7.317672862E-02 4.142205694E-03
+-7.305496652E-02 3.776919391E-03-4.482355361E-02 4.020443593E-03-4.468439692E-02
+ 3.912271793E-02 2.458184532E-04 7.215503657E-02 1.762401097E-04-8.803170498E-02
+ 3.607866540E-02-8.803170498E-02 7.205066906E-02 5.797844906E-02 7.977386520E-02
+ 5.801323824E-02 4.350940725E-03 4.472702827E-03 5.823936785E-02 4.472702827E-03
+ 2.477218456E-02 5.448213730E-02 2.466781707E-02 5.446474271E-02-5.687800163E-02
+-3.383017532E-02-5.686060705E-02-3.376059697E-02 2.284238674E-04-3.372580780E-02
+ 3.675805545E-04 7.194630154E-02-4.284057081E-02 7.212024740E-02-4.285796540E-02
+-7.241136684E-02-7.755691061E-03-7.258531270E-02-7.825269405E-03 6.462318088E-02
+-8.011716840E-02 1.861450117E-02 1.856231741E-02-7.987364419E-02 7.062431301E-02
+-2.154634401E-03 7.067649677E-02-8.055203304E-02 1.821442570E-02 5.629117423E-02
+-7.966490916E-02-4.198823610E-02-4.190126317E-02-9.234230863E-03 6.629306112E-02
+ 6.596256399E-02-9.947408885E-03 8.734376372E-03-3.708296288E-02 8.890927645E-03
+-3.713514664E-02-2.542859033E-02-2.530682823E-02-3.685683326E-02-2.525464447E-02
+-3.675246575E-02-2.527203905E-02-2.534161740E-02-2.396744511E-02-2.530682823E-02
+-2.398483970E-02-5.308598191E-02-2.382828842E-02-5.301640356E-02 1.169145598E-02
+-1.720095120E-02 3.011557611E-03-1.720095120E-02 1.181321808E-02 1.169145598E-02
+-1.734010789E-02 1.177842890E-02-4.228394406E-02-3.911487577E-03-4.244049534E-02
+-3.163510372E-01-3.162156070E-01-3.163510372E-01-3.162446278E-01-3.162929957E-01
+-3.162543014E-01-3.163026693E-01-3.295372995E-02-8.338212162E-02-3.285699410E-02
+-1.951712225E-02-1.948810147E-02-1.330784927E-03 4.439624513E-02 4.436722434E-02
+ 4.437689792E-02 5.170947433E-02 9.614991778E-02-1.959451090E-02 2.718693975E-02
+-1.966222597E-02-7.762633933E-02-9.678970862E-02-6.374474676E-02-2.288352932E-02
+ 2.859928295E-02 5.519196447E-02 8.738565096E-02 1.068295541E-01 1.512699975E-01
+ 1.429603891E-01 1.260025969E-01 1.014413680E-01 1.014316944E-01 8.440618715E-02
+ 6.207955606E-02 4.686300892E-02 1.250243974E-02-3.913631784E-03-1.573475100E-02
+ 1.645893543E-02-3.971673231E-03 3.979161925E-02 3.979161925E-02 3.978194567E-02
+ 3.979161925E-02 1.149069965E-01 1.456302982E-01 1.812677805E-01 1.165998736E-01
+ 7.348471123E-02 4.687268250E-02 4.689202970E-02 4.689202970E-02 6.209890321E-02
+ 8.440618715E-02 1.014123473E-01 1.162322774E-01-5.528670607E-02-5.528670607E-02
+-5.518100356E-02-5.514576939E-02-5.518100356E-02-5.521623773E-02-5.507530106E-02
+-5.514576939E-02-5.528670607E-02-5.496959856E-02-5.496959856E-02-5.507530106E-02
+-5.496959856E-02-5.489913022E-02-5.507530106E-02-5.504006689E-02-5.493436439E-02
+-5.528670607E-02-5.489913022E-02 1.852569576E-01 1.852569576E-01 1.853626601E-01
+ 1.852569576E-01 1.853274259E-01 1.853626601E-01-5.489913022E-02-5.514576939E-02
+-5.525147190E-02-5.511053523E-02-5.475819355E-02-5.507530106E-02 2.714749662E-01
+ 1.851512551E-01 1.852921917E-01-2.977330148E-01-2.975216098E-01-2.978387173E-01
+-2.979796539E-01 2.715102004E-01 2.715102004E-01 2.714749662E-01-2.503729638E-01
+-3.518699686E-01-2.502897422E-01-3.518033914E-01-2.501898764E-01-3.517035255E-01
+-2.501732321E-01 1.559978746E-01 2.322288163E-01 2.324784809E-01 1.560145189E-01
+-1.786859186E-02 1.561809620E-01 1.560145189E-01 1.562142506E-01 1.560311632E-01
+ 1.561643177E-01 1.560478075E-01 1.562142506E-01 1.559978746E-01 1.560810961E-01
+-1.790188048E-02-1.780201461E-02-1.803503496E-02-1.781865894E-02-1.801839065E-02
+-1.781865894E-02 1.700209891E-01 1.722146852E-01 1.725071780E-01 1.703866051E-01
+ 1.709715907E-01-3.872509562E-01-3.860809850E-01-1.357802542E-01 1.713372068E-01
+ 1.702403586E-01-1.372427183E-01 1.712640835E-01 1.702403586E-01-1.369502256E-01
+-1.358533775E-01 1.717028228E-01 1.705328515E-01-1.370233487E-01-1.362921166E-01
+ 1.708253443E-01 1.705328515E-01-3.873972027E-01-2.429057496E-01 1.302716238E-01
+-3.953803117E-01 1.311991669E-01 1.306691423E-01 1.309341545E-01 1.306691423E-01
+ 1.309341545E-01 1.302716238E-01-3.370776015E-01 1.304041299E-01 1.301391176E-01
+ 1.294765868E-01 1.300066114E-01 1.308016484E-01 1.304041299E-01 1.300066114E-01
+-3.377401323E-01-3.385351692E-01-3.391977000E-01-3.381376507E-01 1.286815499E-01
+ 1.311991669E-01 6.109227453E-02 6.101087057E-02-1.111585216E-01-2.184896534E-01
+-1.111178196E-01 1.548696456E-01 1.547882416E-01 6.532528087E-02 6.528457888E-02
+ 6.504036698E-02 6.499966500E-02 6.410422135E-02 6.499966500E-02 6.414492333E-02
+ 6.508106896E-02-4.769472516E-01-2.931777939E-01-2.930149860E-01-5.461813263E-01
+ 1.544626258E-01 1.549103476E-01 1.549510496E-01 6.512177095E-02 1.544626258E-01
+ 6.520317496E-02 6.536598285E-02 6.512177095E-02 6.508106896E-02 1.546661357E-01
+ 3.149057655E-01-1.234835130E-01 8.301208689E-02-1.132991349E-01-7.704610185E-02
+-7.708801283E-02-1.137601561E-01-7.708801283E-02-7.729756798E-02 8.317973097E-02
+ 8.288635387E-02-7.733947900E-02-7.721374593E-02-1.133829570E-01 8.309590893E-02
+ 2.633552097E-01 2.636904979E-01 4.745867551E-01 2.637324090E-01 1.543446444E-01
+ 1.629364037E-01-1.619578301E-01-7.704610185E-02-7.729756798E-02-7.738139002E-02
+-7.725565691E-02-1.622931183E-01-1.622931183E-01-7.733947900E-02-7.721374593E-02
+ 8.347310812E-02 8.326355301E-02-7.738139002E-02-7.721374593E-02-1.619997412E-01
+-1.624607624E-01-7.754903406E-02-7.708801283E-02 2.638162310E-01 8.271870974E-02
+-7.746521206E-02-7.729756798E-02-7.746521206E-02 1.202741122E-01-2.516002821E-02
+-2.514718634E-02-1.704396845E-02-1.704396845E-02-1.590104232E-02-7.480668487E-02
+-7.481952674E-02 4.992674800E-03 4.979832937E-03 6.272970749E-02 6.272970749E-02
+ 9.150833076E-02 9.149548890E-02 1.010498377E-01 1.010369959E-01 1.114645916E-01
+ 1.114517497E-01 1.010241540E-01 1.010369959E-01 9.145696330E-02 9.145696330E-02
+ 6.269118189E-02 6.269118189E-02 4.889939869E-03 4.902781733E-03-9.799909613E-02
+-9.799909613E-02-7.496078727E-02-7.496078727E-02-7.481952674E-02-7.480668487E-02
+-7.476815927E-02-7.474247554E-02-7.470394994E-02-7.485805234E-02-7.484521047E-02
+-9.789636120E-02-9.788351933E-02 5.031200402E-03 5.031200402E-03 6.280675869E-02
+ 6.280675869E-02 9.130286090E-02 9.130286090E-02 1.008828935E-01 1.008957353E-01
+ 1.112334380E-01 1.112462799E-01 1.289552141E-01 1.289680559E-01 1.112077543E-01
+ 1.112077543E-01 1.221233410E-01 1.220719735E-01 1.221104991E-01 1.110279681E-01
+ 1.110151263E-01 1.220591316E-01 1.220591316E-01 1.111307031E-01 1.111435449E-01
+ 1.288910047E-01 1.288781629E-01 1.008186841E-01 1.008186841E-01 9.114875850E-02
+ 9.114875850E-02 6.235729335E-02 6.238297709E-02 4.568893201E-03 4.581735065E-03
+-9.832014280E-02-9.830730093E-02-7.528183394E-02-7.526899207E-02-3.447038156E-02
+-3.447038156E-02-1.638903325E-02-1.640187512E-02-3.445753970E-02-3.445753970E-02
+-7.525615020E-02-7.525615020E-02-7.511488967E-02-7.508920594E-02-7.505068034E-02
+-7.501215474E-02-7.502499660E-02-7.511488967E-02-7.511488967E-02-7.959670115E-02
+-7.958385928E-02-7.511488967E-02-7.511488967E-02-7.514057340E-02-7.514057340E-02
+-3.432912103E-02-3.434196290E-02-3.381544636E-02-3.380260450E-02-1.627345645E-02
+-1.627345645E-02-1.739069885E-02-1.739069885E-02-2.551960047E-02-2.551960047E-02
+ 1.197861212E-01 1.197861212E-01 1.197475956E-01 1.197475956E-01-2.559665167E-02
+-2.559665167E-02-1.750627565E-02-1.749343379E-02-1.635050765E-02-1.636334952E-02
+-3.436764663E-02-3.438048850E-02-3.385397196E-02-3.385397196E-02-7.525615020E-02
+-7.524330834E-02-7.969943608E-02-7.969943608E-02-7.524330834E-02-7.523046647E-02
+-7.529467580E-02 6.235729335E-02 6.234445149E-02 9.113591663E-02 9.113591663E-02
+ 1.007159492E-01 1.007287911E-01 6.234445149E-02 4.556051337E-03 4.556051337E-03
+-7.532035954E-02-7.532035954E-02-7.519194087E-02-7.519194087E-02-7.511488967E-02
+-7.507636407E-02-7.506352220E-02-7.520478274E-02-7.519194087E-02-9.826877533E-02
+-9.826877533E-02-7.516625714E-02-7.516625714E-02-3.436764663E-02-3.435480476E-02
+-3.384113010E-02-3.385397196E-02-1.631198205E-02-1.631198205E-02-1.744206632E-02
+-1.744206632E-02-2.559665167E-02-2.558380981E-02 1.197604375E-01 1.197604375E-01
+-9.671490946E-02-1.853362499E-02-9.675343506E-02-1.852078312E-02-9.674059319E-02
+-1.850794126E-02-9.671490946E-02-1.146850628E-01-8.729578385E-02-1.146805654E-01
+-8.729128643E-02-1.146850628E-01-8.729128643E-02-9.713163820E-02-9.719010464E-02
+-9.717661239E-02-8.729128643E-02-1.146805654E-01-8.729578385E-02-1.146850628E-01
+-8.729578385E-02-1.146850628E-01-9.718110980E-02-9.712264336E-02-9.882716499E-02
+-1.018944044E-01-8.014938579E-02-7.659192772E-02-7.177519246E-02-6.270839668E-02
+-5.672683002E-02-4.882036822E-02-4.497507537E-02-4.048215425E-02-3.686173233E-02
+-2.488960417E-02-2.754757853E-02-1.984799798E-02-1.985699282E-02-2.755657337E-02
+-5.787367175E-02-8.224968025E-02-1.027669036E-01-9.674036279E-02-9.673586537E-02
+-8.077452696E-02-6.857303046E-02-8.099040305E-02-8.078352180E-02-9.674486021E-02
+-1.027624062E-01-9.064186324E-02-8.221370090E-02-5.788266658E-02-2.754757853E-02
+-1.987048508E-02-2.758805529E-02-1.987048508E-02-5.330330930E-03 7.091539083E-03
+ 7.096036501E-03-7.919593306E-02-1.071653790E-01-1.071608815E-01-9.267919384E-02
+-3.888107325E-02 7.105031338E-03 7.082544245E-03 7.073549408E-03 5.256592317E-03
+ 3.111323673E-03 8.491221458E-04 6.264014071E-03 6.250521815E-03 5.369027781E-03
+ 6.479890161E-03 2.488782425E-02 3.458875605E-02 4.079969105E-02 4.921885857E-02
+ 4.920536632E-02 1.672500960E-02 1.672051218E-02 7.392866125E-03 5.670256303E-02
+ 4.267511459E-02 2.797305337E-02 4.268860686E-02-2.372477277E-02 1.383766690E-02
+ 1.378369787E-02-2.015733465E-03 4.932778182E-03 3.597044875E-03 1.381517980E-02
+ 1.938298396E-02 1.380168755E-02 1.378819529E-02 8.188909207E-03 4.075921429E-02
+ 4.947970885E-02 3.804277348E-02 5.743114483E-02 9.455733490E-02 8.948874420E-02
+ 9.454834006E-02 5.745363192E-02 3.802928124E-02 4.946171918E-02 4.077720398E-02
+ 8.206898881E-03 1.937848654E-02 1.381517980E-02 2.025998057E-02 2.023749348E-02
+-3.343919682E-02 3.057354651E-03 1.628876000E-02 9.349243191E-03 3.928406100E-02
+ 2.720399480E-02 3.927506617E-02 1.504297506E-02 6.319233798E-02 7.556023897E-02
+ 7.425149018E-02 4.853075354E-02 5.890629811E-02 4.852175870E-02 5.891529295E-02
+ 7.430096178E-02 7.556473639E-02 1.504297506E-02 3.322603823E-02 3.928855844E-02
+ 2.722198448E-02 3.929305585E-02-5.510227672E-03-2.717330758E-03-1.139734854E-02
+-2.717330758E-03-2.119272613E-02-2.032472435E-02-1.915089811E-02-2.030673468E-02
+-1.914190327E-02-2.115674678E-02-5.483243161E-03-2.690346246E-03-1.137036403E-02
+ 3.926157392E-02 2.717701029E-02 3.925257907E-02 2.024199090E-02 2.021050897E-02
+-3.350665810E-02 3.012380465E-03 1.623479098E-02 9.277284494E-03 1.623029356E-02
+ 4.874311741E-03-2.377424437E-02 4.266611976E-02 2.795956112E-02 2.211741443E-02
+ 7.370379032E-03 1.668453283E-02 7.365881614E-03 2.795506370E-02 9.450336587E-02
+ 9.448087878E-02 8.942128292E-02 9.449886846E-02 5.740865774E-02 3.799779931E-02
+ 4.945272434E-02 8.175416951E-03 1.935150203E-02 3.579055201E-03 4.905793671E-03
+-2.042717977E-03-2.374725986E-02-2.024728303E-03 1.379269271E-02 1.939197879E-02
+ 3.606039713E-03 4.923783345E-03 3.052857234E-03-3.349766326E-02 2.021500639E-02
+ 1.623928840E-02 9.317761261E-03 3.925707648E-02 3.320804856E-02 1.502048797E-02
+ 3.321704339E-02 3.927506617E-02-2.694843663E-03-1.136136920E-02-2.685848828E-03
+-5.483243161E-03-5.510227672E-03-2.118373129E-02-1.914640069E-02-2.031572951E-02
+-1.913740585E-02-2.031123209E-02-1.914640069E-02-2.118373129E-02-5.510227672E-03
+ 5.845754146E-03 4.928280764E-03 1.773243135E-02 4.445159491E-02 7.165647968E-02
+ 7.165647968E-02 9.700393058E-02 1.039029706E-01 1.091244736E-01 1.169229973E-01
+ 1.169454844E-01 1.091289710E-01 1.039074680E-01 9.700842800E-02 1.084318711E-01
+ 1.163158458E-01 1.201746309E-01 1.128618284E-01 1.078606989E-01 1.070286765E-01
+ 1.070241791E-01 1.070286765E-01 1.070331739E-01 9.081098525E-02 8.947075453E-02
+ 9.453484780E-02 5.744013967E-02 3.804277348E-02 4.947970885E-02 8.188909207E-03
+ 1.381517980E-02 1.938748138E-02 8.215893718E-03 4.950219594E-02 3.806975800E-02
+ 5.748511385E-02 8.951123129E-02 9.457532457E-02 7.047815602E-02 7.048715086E-02
+ 1.670701993E-02 7.406358380E-03 7.397363543E-03 1.670701993E-02 4.921885857E-02
+ 4.078170139E-02 3.456626896E-02 2.485634232E-02 5.360032944E-03 6.264014071E-03
+ 8.446247282E-04 3.111323673E-03 5.265587155E-03 7.082544245E-03 7.096036501E-03
+-5.339325768E-03-1.987947991E-02-2.759705013E-02-3.009761484E-02-2.493457836E-02
+-3.690670651E-02-4.500205988E-02-5.675381453E-02-6.274437603E-02-7.180217697E-02
+-7.660541998E-02-8.014488837E-02-1.018944044E-01-9.883615983E-02-9.717211497E-02
+-9.718560722E-02-9.716761755E-02-9.720809432E-02-9.720359690E-02-1.147030524E-01
+-8.731377352E-02-1.146940576E-01-8.730927611E-02-1.146985550E-01-8.730477869E-02
+-3.818936138E-03-1.324197404E-01-1.958328737E-03-1.082748813E-03-2.067776290E-03
+ 1.692175503E-01 2.296325664E-01 2.286475390E-01 1.684514178E-01 2.286475390E-01
+ 1.647302031E-01-1.399716175E-01-1.326386354E-01-4.585068592E-03-1.326386354E-01
+-1.400810649E-01 1.633073857E-01-1.401905124E-01-4.475621122E-03-1.326386354E-01
+-1.400810649E-01 1.631979382E-01 1.670286004E-01-1.319819505E-01-5.235850804E-01
+-1.705074680E-01-1.708358105E-01 4.226979441E-01-1.858460137E-02-4.636868504E-01
+-1.836559090E-02-4.636868504E-01-1.829258743E-02-4.633948365E-01-1.814658044E-02
+ 1.780137841E-01 1.783788016E-01 1.785248085E-01-1.687527704E-01 1.757506762E-01
+ 1.754586622E-01 1.753856587E-01 1.756046691E-01 1.755316657E-01 1.748746343E-01
+ 8.902253581E-02-1.712348888E-01 6.347131597E-02 6.412834736E-02-2.534974041E-02
+-6.108584764E-02-2.537318161E-02-6.107998734E-02-2.536146101E-02-6.109756824E-02
+-2.535560071E-02-6.110342854E-02-2.533215951E-02-6.112100944E-02-2.534388011E-02
+ 9.071935434E-02 9.785719930E-02 9.081311913E-02 2.283543518E-01 2.289696832E-01
+-2.155574860E-01-2.114494159E-01-1.523486323E-02-3.814863483E-02-1.526416472E-02
+ 2.283484915E-01 2.289755435E-01-2.114962983E-01-1.527002502E-02-3.820137753E-02
+-1.526416472E-02 9.790994200E-02 9.081897943E-02-2.155750669E-01-2.114552762E-01
+-2.155692066E-01-2.114259747E-01-1.522314263E-02-3.814863483E-02-1.530518682E-02
+ 9.793338320E-02 9.077209704E-02 2.283191900E-01 2.289462420E-01-1.527588532E-02
+-3.815449513E-02-1.527002502E-02 9.077209704E-02 9.789822140E-02 2.289403817E-01
+ 2.283191900E-01-2.114376953E-01-2.156102287E-01-2.114669968E-01 9.078967793E-02
+ 9.795096410E-02-7.483541436E-02-7.484660358E-02-7.483168462E-02-7.481303588E-02
+-7.480557644E-02-7.623779669E-02-7.185535179E-02-7.147118858E-02-6.827480111E-02
+-7.044178024E-02-6.955783178E-02-6.907296554E-02-6.943848009E-02-7.491746865E-02
+-7.942299498E-02-6.937880425E-02-7.118772831E-02-6.940118269E-02-6.601830820E-02
+-6.939745295E-02-7.121383649E-02-7.944537342E-02-7.493611735E-02-6.947577749E-02
+-6.910280346E-02-6.958766970E-02-6.946458827E-02-7.621541829E-02-8.809091152E-02
+-9.261135681E-02-6.844636916E-02-5.111053607E-02-5.093150853E-02-5.092404905E-02
+-8.820653347E-02-5.394140899E-02-5.282621663E-02-6.857318033E-02-6.859928852E-02
+-5.287843299E-02-5.397497665E-02-8.824756062E-02-5.095388698E-02-5.094642750E-02
+-5.112545503E-02-6.144191681E-02-6.120321343E-02-5.539227798E-02-4.252840355E-02
+-3.685546848E-02-2.906404091E-02-2.586392370E-02-2.902674351E-02-2.389089107E-02
+-2.273467156E-02-2.217148077E-02-2.808311921E-02-2.806074076E-02-2.213791311E-02
+-2.268991468E-02-2.385359366E-02-2.897825689E-02-2.581543708E-02-2.902301377E-02
+-3.682190082E-02-4.250975485E-02-5.537362928E-02-6.118456472E-02-7.449227821E-02
+-7.951250874E-02-6.249370358E-02-4.230834887E-02-1.716989898E-02-1.078458352E-02
+ 1.277396735E-03 1.161250721E-02 1.009077315E-02-4.457433027E-04-1.420848515E-02
+-2.652035800E-02-6.871864021E-02-3.631838588E-02-2.482332615E-02-3.780131163E-03
+ 6.480384503E-03 8.367633118E-03 1.015417874E-02 1.164234513E-02 1.012061108E-02
+-4.270945992E-04-1.418983645E-02-2.651289852E-02-6.870372124E-02-3.632957509E-02
+-2.483451537E-02-1.028106857E-02-2.213640221E-03 1.495808430E-02-1.041160948E-02
+-4.993566786E-02-2.862020181E-02-1.483881126E-02 3.500321977E-03-1.829628056E-02
+ 1.059801784E-02 1.060547732E-02 9.852069773E-03 2.046318103E-02 4.261783862E-02
+ 6.516411897E-02 7.542090490E-02 7.102354107E-02 7.964297096E-02 8.619612473E-02
+ 9.191754645E-02 9.625896416E-02 1.027822800E-01 1.181599995E-01 1.183949731E-01
+ 1.127854436E-01 1.021780621E-01 9.563982731E-02 8.616255707E-02 8.616255707E-02
+ 9.191008697E-02 9.624031546E-02 1.027934692E-01 1.169888610E-01 1.032708760E-01
+ 7.572674360E-02 7.062072908E-02 5.191981103E-02 6.515292978E-02 5.191608132E-02
+ 4.558671193E-02 4.102523954E-02 5.345273434E-02 6.244886804E-02 6.245259778E-02
+ 9.141776121E-02 1.169851312E-01 1.032447679E-01 7.570063542E-02 7.061699934E-02
+ 7.539479671E-02 6.514920004E-02 5.191235158E-02 4.558671193E-02 4.104388824E-02
+ 4.101778002E-02 5.343781534E-02 6.245259778E-02 6.245259778E-02 9.142149098E-02
+ 1.032596868E-01 1.170000502E-01 1.028195775E-01 9.624404524E-02 1.181637292E-01
+ 1.183987028E-01 1.128003626E-01 8.826986036E-02 1.053968280E-01 1.053968280E-01
+ 9.932108102E-02 9.518106924E-02 5.760393534E-02 9.515123132E-02 9.445376988E-02
+ 8.101924514E-02 8.412611888E-02 8.102670466E-02 9.446122932E-02 9.516615025E-02
+ 9.930989176E-02 1.054005577E-01 8.827359014E-02 1.022004405E-01 9.565474623E-02
+ 8.617747607E-02 7.962805203E-02 7.101981130E-02 6.515665952E-02 4.260664944E-02
+ 2.045572155E-02 1.059428810E-02 9.844610292E-03 1.055326096E-02 9.807312889E-03
+-1.832238874E-02 3.477943534E-03-1.484254101E-02-2.862393155E-02-7.310481484E-02
+-7.316822043E-02-7.310108510E-02-4.989837046E-02-1.038550130E-02 1.496927352E-02
+ 3.442732886E-02 2.637854921E-02-2.202450999E-03-1.027360909E-02 1.095980265E-02
+-3.809969085E-03 6.458006065E-03 8.334065455E-03 1.012061108E-02 1.157893955E-02
+ 1.005347575E-02-4.905001857E-04 1.258748032E-03-1.080323222E-02-1.719600716E-02
+-4.234191654E-02-6.251235228E-02-7.952742767E-02-7.451838643E-02-6.119575394E-02
+-6.143445733E-02-5.111053607E-02-6.845009890E-02-9.258151885E-02-8.806107360E-02
+-7.617439114E-02-7.492865787E-02-6.945712876E-02-6.908788450E-02-6.943102057E-02
+-7.041940180E-02-7.047907765E-02-6.832328773E-02-7.150102650E-02-7.190383845E-02
+-7.629001309E-02-7.484287384E-02-7.482422514E-02
+ 6.406762598E+01 5.883397765E+00 6.402786445E+01 5.957716784E+00 7.641148593E+01
+ 6.419160491E+01 7.637711988E+01 6.417271547E+01 6.420193420E+01 7.681649615E+00
+ 6.424921469E+01 7.683658858E+00 6.798478512E+01 5.151374569E+01 6.788997351E+01
+ 5.148439535E+01 5.152988778E+01 2.026363225E+01 5.157863196E+01 2.026373291E+01
+ 9.116164644E+01 1.060632314E+01 9.101081447E+01 1.058942556E+01 9.092409462E+01
+ 8.424277385E+01 7.841628355E+01 8.420383984E+01 7.840260653E+01 7.839867596E+01
+ 9.045439141E+01 7.836766232E+01 9.042058772E+01 5.144780028E+01 7.943405038E+01
+ 5.142380247E+01 7.941863899E+01 5.144529522E+01 5.149343316E+01 4.317545284E+01
+ 5.151959834E+01 4.323939374E+01 5.149345936E+01 8.094992390E+01 7.036663670E+01
+ 8.088924141E+01 7.037002960E+01 6.144145532E+01 7.043762406E+01 6.143475451E+01
+ 7.046144804E+01 6.145008251E+01 6.148203694E+01 6.109699511E+01 6.144167320E+01
+ 6.108477232E+01 6.112340506E+01 6.087806427E+01 6.109783408E+01 6.085436717E+01
+ 6.109138830E+01 4.861464344E+01 2.779204783E+01 4.863299600E+01 2.776273056E+01
+ 4.863808808E+01 8.056841596E+01 6.251386279E+01 8.052164594E+01 6.250943356E+01
+ 6.251270019E+01 4.859203646E+01 6.252700209E+01 4.853524405E+01 6.250867010E+01
+ 7.468123820E+01 6.318721851E+01 7.467294147E+01 6.316462880E+01 4.216097559E+01
+ 5.043223190E+01 4.211956324E+01 5.043232335E+01 4.214412673E+01 3.300376444E+01
+ 8.353930957E+01 3.301384331E+01 8.357370699E+01 3.305246275E+01 4.008231576E+01
+ 3.304314407E+01 4.007922781E+01 9.153924453E+01 7.920812478E+01 9.153758765E+01
+ 7.925711228E+01 9.152982426E+01 9.153902862E+01 9.230755228E+01 9.146138090E+01
+ 9.230085257E+01 7.176575728E+01 7.049728697E+01 7.177110224E+01 7.050712127E+01
+ 4.375134021E+01 4.225699614E+01 4.379494548E+01 4.224292421E+01 5.427159682E+01
+ 4.225173892E+01 5.425083331E+01 5.426940501E+01 4.820052308E+01 5.422045658E+01
+ 4.819403810E+01 4.829392352E+01 5.110473578E+01 4.827749572E+01 5.112414223E+01
+ 5.112270903E+01 4.804404414E+01 5.114961959E+01 4.804318247E+01 6.735594883E+01
+ 5.141015603E+01 6.729559937E+01 5.143287206E+01 5.143639694E+01 1.818228889E+01
+ 5.149338248E+01 1.826280556E+01 2.947635002E+01 1.685064744E+01 2.947254969E+01
+ 1.680612789E+01 1.687223696E+01 4.343303285E+01 1.684822235E+01 4.347158230E+01
+ 6.381459999E+01 4.349236896E+01 6.374928831E+01 4.345805723E+01 6.377286880E+01
+ 6.376896225E+01 8.464948031E+01 6.372279560E+01 8.469224481E+01 6.368442060E+01
+ 9.420075239E+01-6.877308478E-02 9.417644574E+01-4.123350056E-02 7.111039337E+01
+ 4.223443661E+01 7.115784865E+01 4.224283324E+01 4.229293586E+01 8.662049812E+00
+ 4.240275839E+01 8.673723289E+00 4.982074055E+01 3.194038305E+01 4.982798942E+01
+ 3.191403964E+01 8.745105287E+00 4.228781659E+01 8.752797480E+00 4.233746192E+01
+ 4.230064505E+01 5.772982054E+01 4.225201392E+01 5.768013978E+01 5.769643824E+01
+ 2.859012205E+01 5.779293761E+01 2.860729697E+01 2.921156583E+01 2.871119532E+01
+ 2.922904658E+01 2.924591740E+01 3.397942784E+01 2.924409133E+01 3.397426492E+01
+ 2.923614080E+01 6.347965820E+01 3.242624094E+01 6.350600539E+01 3.246285031E+01
+ 3.250333220E+01 2.142046356E+01 3.254107349E+01 2.144695240E+01 3.203668099E+01
+ 4.821532257E+01 3.199383418E+01 4.824776464E+01 3.443355155E+01 7.047919006E+01
+ 3.439707538E+01 7.046762536E+01 2.827197169E+01 4.411382936E+01 2.822416723E+01
+ 4.412930686E+01 4.413637254E+01 6.603580462E+01 4.410538335E+01 6.602577638E+01
+ 2.199528301E+01 3.087777478E+01 2.194517381E+01 3.090586361E+01 3.107530786E+01
+ 2.225039338E+01 3.106983781E+01 2.226570547E+01 2.232953056E+01 2.231490628E+01
+ 3.680088827E+01 2.229272666E+01 3.678605912E+01 3.676662965E+01 3.981459085E+01
+ 3.673788566E+01 3.982235096E+01 3.982113654E+01 3.980787686E+01 3.981278974E+01
+ 3.982652082E+01 3.979322108E+01 4.140842841E+01 4.138970443E+01 2.482824251E+01
+ 3.654514760E+01 4.409952308E+01 4.406264057E+01 4.673013686E+01 3.602976510E+01
+ 6.179252770E+01 6.175000093E+01 4.249869041E+01 5.185713584E+01 4.770080714E+01
+ 6.656488262E+01 6.655683140E+01 6.347381222E+01 6.515224589E+01 6.510239153E+01
+ 6.342724030E+01 6.348139495E+01 6.657007727E+01 4.772386995E+01 1.506335360E+01
+ 1.513272497E+01 4.267597302E+01 6.185560919E+01 3.613161172E+01 4.683983775E+01
+ 4.412997091E+01 4.414694269E+01 3.668753756E+01 2.493151167E+01 4.150297279E+01
+ 3.996389011E+01 3.321848141E+01 3.996543486E+01 3.319534299E+01 3.323616784E+01
+ 4.149158475E+01 3.320990221E+01 4.148597036E+01 7.145887050E+01 7.126202765E+01
+ 4.379200439E+01 9.424755325E+01 1.712508575E+01 9.426669524E+01 9.332058784E+01
+ 4.918308859E+01 4.921275535E+01 9.354193696E+01 6.616368608E+01 6.308161590E+01
+ 4.400870295E+01 7.150529109E+01 7.160391217E+01 4.844174478E+01 6.232154300E+01
+ 4.837945145E+01 6.228354310E+01 6.229627635E+01 4.834861785E+01 6.225840134E+01
+ 4.831949662E+01 1.951401556E+01 1.936031023E+01 1.950167059E+01 1.940370301E+01
+ 1.974972088E+01 1.939149294E+01 1.968437715E+01 8.400394050E+01 7.987364883E+01
+ 8.400582185E+01 7.984806350E+01 8.396590391E+01 7.986262759E+01 5.017015535E+01
+ 7.992544236E+01 5.018325511E+01 1.172051099E+01 5.031215254E+01 1.175247352E+01
+ 8.603447511E+01 5.133508878E+01 8.598993007E+01 5.130254640E+01 1.671665653E+01
+ 6.251772123E+01 1.667706964E+01 6.256102930E+01 1.671355505E+01 8.420443951E+01
+ 1.166071594E+01 8.420937917E+01 1.162393771E+01 1.828347969E+01 1.170182911E+01
+ 1.827703660E+01 4.610018702E+01 4.692973437E+01 4.603021805E+01 4.695093068E+01
+ 3.267683055E+01 4.697059220E+01 3.266561139E+01 8.277752602E+01 4.902958131E+01
+ 8.268449437E+01 4.898802425E+01 4.898225794E+01 8.271391509E+01 4.895803118E+01
+ 7.912672341E+01 4.990556410E+01 7.915564174E+01 4.991009596E+01 4.899591538E+00
+ 4.344346005E+01 4.925549345E+00 4.342810880E+01 4.331967935E-01 5.589617385E+01
+ 3.717899952E-01 5.585579794E+01 8.062828255E+00 5.507922723E+01 8.060735383E+00
+ 5.508700201E+01 7.855728602E+01 5.507274339E+01 7.850649068E+01 7.846668704E+01
+ 8.628867258E+01 7.848018109E+01 8.629782704E+01 9.482796617E+01 8.626478974E+01
+ 9.481392376E+01 6.776144343E+01 6.869626108E+01 5.984192274E+01 5.987331811E+01
+ 6.774256178E+01 6.872158893E+01 6.770577971E+01 6.865782397E+01 6.767675923E+01
+ 5.221558904E+01 6.768925407E+01 5.225516182E+01 5.231931110E+01 3.965281302E+01
+ 5.231000320E+01 3.972545477E+01 6.783988127E+01 3.971787748E+01 6.787147624E+01
+ 6.302815487E+01 6.805682509E+01 6.301163219E+01 6.806054445E+01 2.067798656E+01
+ 3.012239556E+01 3.011664058E+01 2.790597520E+01 1.326381926E+01 3.019352636E+01
+ 6.309155893E+01 5.913759626E+01 6.325243185E+01 5.935116070E+01 5.425556479E+01
+ 5.424883273E+01 4.896214950E+01 4.898926280E+01 5.431019209E+01 5.936369798E+01
+ 4.899842653E+01 5.090642859E+01 2.228773994E+01 5.106469894E+01 5.915903246E+01
+ 3.155669844E-01 5.924110068E+01 5.072666628E-01 3.793676654E+01 5.850469394E+00
+ 3.768179503E+01 5.518288976E+00 9.225938898E+01 1.818563498E+00 9.263348663E+01
+ 2.806738911E+01 1.814887394E+01 2.812421571E+01 5.881566946E+01 2.808255113E+01
+ 5.887987684E+01 5.886685379E+01 8.151322551E+01 5.887798422E+01 8.144014574E+01
+ 6.741881472E+00 4.386721508E+01 6.736416018E+00 4.388391569E+01 4.140243686E+01
+ 4.165422186E+01 4.414841041E+01 4.163200359E+01 4.364486224E+01 4.163378897E+01
+ 4.363477442E+01 3.109420211E+01 4.363872489E+01 4.376128963E+01 3.127541335E+01
+ 4.408535327E+01 4.382935513E+01 4.436105982E+01 8.711283335E+01 4.418665570E+01
+ 8.709525616E+01 8.700479418E+01 5.512835814E+01 8.702438434E+01 5.504366502E+01
+-3.195700763E+00 3.036799924E+01 1.752735933E+01 8.853705758E+01 8.843000390E+01
+ 1.744693829E+01 7.476875974E+01 1.747294307E+01 7.479021760E+01 3.691915182E+01
+ 3.975997768E+01 3.688240644E+01 3.971015821E+01 8.248969366E+01 2.539489048E+01
+ 4.801197886E+01 2.548560490E+01 4.790905034E+01 6.228452170E+01 4.804491067E+01
+ 6.240927433E+01 8.202671426E+01 6.230861836E+01 8.217684240E+01 4.713737509E+01
+ 7.450782422E+01 4.717927513E+01 7.445848548E+01 6.457364495E+01 7.445288638E+01
+ 6.459491143E+01 3.226934713E+01 6.461145510E+01 3.230736160E+01 8.439151785E+01
+ 3.631578336E+01 8.422380874E+01 3.643131364E+01 2.448105560E+00 8.486613097E+01
+ 1.001983134E+01 7.712136179E+01 1.005784647E+01 5.217965221E+01 1.033918903E+01
+ 8.294904893E+01 4.441518945E+01 8.272928315E+01 4.429006685E+01 3.393464371E+01
+ 5.513995001E+01 3.395871894E+01-6.613033013E+00 1.765114107E+01 1.773484990E+01
+ 8.048563810E+01 2.299313376E+00 4.306830162E+01 2.274526066E+00 8.227067769E+01
+ 1.947070700E+01 8.218331140E+01 4.021943303E+01 8.110818013E+01 4.239913661E+01
+ 4.159637442E+01 3.056693466E+00 8.069079538E+01 3.181994539E+00 3.607060819E+01
+ 3.235788135E+00 7.927866944E+01 1.510499260E+00 7.929949880E+01 3.128261305E+01
+ 7.848023656E+01 3.121818047E+01 6.999123341E+01 5.617478229E+01 7.001389862E+01
+ 7.962763161E+01 7.757975800E+01-1.080649899E+00-1.402641064E+00 7.396490208E-01
+ 1.239542883E+00 8.282246385E-01 2.053297374E+01 2.094334648E+01 4.549807912E+01
+ 2.095286219E+01 4.560918470E+01 8.647422679E-01 4.569710104E+01 3.781210311E+01
+ 3.796012897E+01 9.993682698E-01 4.575853200E+01 8.298374116E+01 4.407093313E+01
+ 5.940987967E+01 6.910799244E+00 5.940033081E+01 8.571536166E+01 4.155078341E+01
+ 8.579771892E+01 4.157651523E+01 7.047138954E+00 4.158987071E+01 7.216354804E+00
+ 2.806914679E+01 7.485668827E+00-4.242901921E+00-4.036014645E+00 2.817405543E+01
+ 8.087690508E+01 6.732179522E+01 7.645858408E+01 1.482198245E+01 7.646097750E+01
+ 7.724980901E+01 7.642839642E+01 7.726356917E+01 4.426774542E+01-5.992726459E+00
+ 4.446791351E+01 8.286387744E+01 5.518224635E+01 8.282409436E+01 5.524026037E+01
+ 4.486766156E+01 4.156829433E+01-5.009137321E+02 4.368930090E+01 4.161837626E+01
+ 4.270737122E+00 4.164073060E+01 8.264981021E+01 4.491964354E+01 5.368732585E+01
+ 5.392225024E+01 4.511096409E+01 5.390849800E+01 6.101242398E+00 5.400240763E+01
+ 6.113069316E+00 4.115315645E+01 4.905849427E+01 4.112409410E+01 1.906935864E+01
+ 4.114490582E+01 1.906768290E+01 4.116111854E+01 5.457584206E+01 5.227238773E+01
+ 5.453732807E+01 6.613233927E+01 5.444948533E+01 6.609801537E+01 8.315301499E+01
+ 6.606421609E+01 8.315005569E+01 3.505582725E+01 8.315882923E+01 3.506278847E+01
+ 1.436225050E+01 1.482477910E+01 3.574279491E+01 1.461303984E+01 7.840173984E+01
+ 4.366379222E+01 7.850432744E+01 4.366760720E+01 1.512183387E+01 4.368869669E+01
+ 1.515223045E+01 7.800682665E+01 4.098189472E+01 7.809863869E+01 1.919789102E+01
+ 4.461387104E+01 1.927448204E+01 4.462872690E+01 4.473196578E+01 1.034338248E+01
+ 4.474620324E+01 1.042157651E+01 5.005817651E+01 3.179158587E+01 5.004021406E+01
+ 3.176686658E+01 5.339330719E+00 3.189112823E+01 5.409910074E+00 8.548291007E+01
+ 6.697064184E+01 8.544425040E+01 8.569800692E+01 6.719118204E+01 4.309841639E+01
+ 6.722257504E+01 4.308823193E+01 2.675486715E+01 4.311812656E+01 2.681976578E+01
+ 8.142936578E+01 1.833977366E+01 8.145065836E+01 1.829496313E+01 1.821299848E+01
+ 8.016030737E+01 1.809234018E+01 5.134914018E+01 2.374071859E+01 5.138755611E+01
+ 2.387146697E+01 8.010216866E+01 8.213393798E+01 8.007367613E+01 8.208677263E+01
+ 1.345194463E+00 8.216312246E+01 1.410293791E+00 1.510716094E+01 1.477491115E+00
+ 1.510438222E+01 1.519482651E+01 6.237026833E+01 1.515013709E+01 6.230608935E+01
+ 1.113612076E+01 6.231775922E+01 1.102728902E+01 6.330464306E+01 2.620286478E+01
+ 6.333389526E+01 2.621267367E+01 9.469106070E+00-7.997077871E+00 9.630558111E+00
+-7.949278574E+00 9.713022864E+00-7.872604505E+00 1.132110964E+01 2.406854057E+01
+ 1.135319584E+01 2.411875443E+01 2.381631547E+01 5.851737821E+01 2.385291486E+01
+ 2.382030426E+01 5.856909895E+01 2.386490392E+01 2.544873760E+01 7.784529749E+01
+ 2.545136416E+01 7.778015795E+01 3.252714251E+01 1.817915942E+01 3.245050656E+01
+ 7.625517878E+01 3.225319166E+01 7.620120255E+01 3.223612017E+01 1.792045651E+01
+ 6.334190376E+01 6.897948967E+00 6.335281288E+01 2.339913387E+01 4.426059620E+01
+ 3.123422891E+00 4.445236786E+01 3.175004229E+00 4.425068474E+01 1.826463698E+01
+ 4.437876243E+01 1.833856475E+01 6.321668927E+01 4.242657221E+01 8.086191231E+01
+ 4.237324956E+01-4.832363992E+00 6.151482387E+01-4.841852253E+00 8.087413745E+01
+ 7.333835304E+01 8.497470879E+01 7.332855450E+01 4.462588077E+01 4.465834759E+01
+ 7.338900564E+01 4.463163844E+01 5.551949734E+01 7.139085945E+01 5.544439897E+01
+ 7.136640599E+01 1.183710599E+01 2.414898331E+01 1.182695722E+01 2.417213303E+01
+ 4.233945326E+01 2.418336507E+01 4.241186282E+01 8.076104899E+01 1.937799152E+01
+ 8.082584469E+01 1.933753980E+01 3.564561619E+00 3.814366062E+01 3.494914313E+00
+ 3.812703675E+01 7.686913028E+01-5.161697169E-01 5.227474818E+01 5.224371809E+01
+-3.865298402E-01 8.007597552E+01 4.115662096E+01 8.009003575E+01-7.660913458E-01
+ 5.203054696E+01 7.237433729E+01-3.144627052E-01 1.981762138E+01 1.984683050E+01
+ 3.731264703E+01 7.769377722E+01 7.750969074E+01 3.692008952E+01 4.690523100E+01
+ 2.240909319E+01 4.698400857E+01 2.236838308E+01 2.862260752E+01 2.872099980E+01
+ 2.253200203E+01 2.872517573E+01 2.257421032E+01 2.871123510E+01 2.868430007E+01
+ 2.941953006E+01 2.870320525E+01 2.940864658E+01 1.392476600E+01 2.951914712E+01
+ 1.388097062E+01 4.854269810E+01 3.305586629E+01 4.383157434E+01 3.303194861E+01
+ 4.855967545E+01 4.856623111E+01 3.303386065E+01 4.858461107E+01 1.963226338E+01
+ 4.014071274E+01 1.953496772E+01-3.033558609E+01-3.029383604E+01-3.033920457E+01
+-3.032031031E+01-3.033212375E+01-3.029598743E+01-3.034856101E+01 2.765098744E+02
+ 2.218316066E+02 2.765160839E+02 2.909372001E+02 2.909412937E+02 3.105920458E+02
+ 3.601022106E+02 3.601022532E+02 3.600901410E+02 3.680476077E+02 4.162017698E+02
+ 2.909151103E+02 3.416011048E+02 2.908964038E+02 2.281538873E+02 2.074116368E+02
+ 2.431874699E+02 2.874211627E+02 3.431369460E+02 3.719137778E+02 4.067444226E+02
+ 4.277758248E+02 4.758812710E+02 4.668520928E+02 4.484771528E+02 4.218763222E+02
+ 4.218730429E+02 4.034435900E+02 3.792807393E+02 3.628151567E+02 3.256276534E+02
+ 3.078859269E+02 2.951087563E+02 3.299927587E+02 3.078840126E+02 3.552899496E+02
+ 3.552906459E+02 3.552801693E+02 3.552904127E+02 4.366222525E+02 4.698536240E+02
+ 5.084282515E+02 4.383306068E+02 3.916200832E+02 3.627935259E+02 3.628163806E+02
+ 3.628207844E+02 3.792941613E+02 4.034669429E+02 4.218945019E+02 4.379546406E+02
+ 2.675004481E+01 2.673839829E+01 2.673819157E+01 2.670157204E+01 2.674387502E+01
+ 2.675349025E+01 2.671676546E+01 2.672165992E+01 2.672486611E+01 2.674833892E+01
+ 2.675058344E+01 2.677138495E+01 2.673611205E+01 2.675733991E+01 2.675054534E+01
+ 2.671344519E+01 2.675315564E+01 2.667894851E+01 2.675838398E+01 9.817472178E+01
+ 9.816784201E+01 9.818171183E+01 9.820279936E+01 9.818217042E+01 9.819436810E+01
+ 2.685744900E+01 2.682375156E+01 2.668592314E+01 2.684894450E+01 2.682590367E+01
+ 2.674323776E+01 1.237917228E+02 9.818501896E+01 9.817292375E+01-4.531001715E+01
+-4.534171113E+01-4.536506835E+01-4.547639301E+01 1.238315370E+02 1.238538980E+02
+ 1.238058840E+02-1.305119479E+02-1.943774075E+02-1.304883427E+02-1.943654640E+02
+-1.304510622E+02-1.943270793E+02-1.304649314E+02 1.251797612E+02 1.731463667E+02
+ 1.731697647E+02 1.251248857E+02 1.568631518E+01 1.251597884E+02 1.250786027E+02
+ 1.251742019E+02 1.250818816E+02 1.251591320E+02 1.250838699E+02 1.251742198E+02
+ 1.250643445E+02 1.251073975E+02 1.565923440E+01 1.567508917E+01 1.560889641E+01
+ 1.567871048E+01 1.564576492E+01 1.568678459E+01 1.657280052E+02 1.660447486E+02
+ 1.660218118E+02 1.656941510E+02 1.657389052E+02 8.591371246E+01 8.596411889E+01
+ 1.217907185E+02 1.657910754E+02 1.657299238E+02 1.217152814E+02 1.657651146E+02
+ 1.657348809E+02 1.217482991E+02 1.217771511E+02 1.658280848E+02 1.657501703E+02
+ 1.217400967E+02 1.217691194E+02 1.657407964E+02 1.657279051E+02 8.587887678E+01
+ 1.066424028E+02 8.905939414E+01 4.754781250E+01 8.906612802E+01 8.903661875E+01
+ 8.909686262E+01 8.904517672E+01 8.909743109E+01 8.908236922E+01 5.212203445E+01
+ 8.907660405E+01 8.907808227E+01 8.898469412E+01 8.902619127E+01 8.903908142E+01
+ 8.907221325E+01 8.901501411E+01 5.204141503E+01 5.205654728E+01 5.200227415E+01
+ 5.204193772E+01 8.903744035E+01 8.910340348E+01 2.665454569E+01 2.664878346E+01
+-1.774267737E+01-4.524098768E+01-1.777311869E+01 5.066973936E+01 5.067968557E+01
+ 2.758770515E+01 2.758970981E+01 2.763331002E+01 2.755463651E+01 2.732433509E+01
+ 2.755483311E+01 2.733497833E+01 2.757596507E+01-1.118102593E+02-6.448436276E+01
+-6.449482692E+01-1.297570744E+02 5.072610848E+01 5.070482824E+01 5.064990642E+01
+ 2.757607511E+01 5.070388671E+01 2.764738315E+01 2.759764042E+01 2.765076438E+01
+ 2.758240358E+01 5.067354064E+01 1.237881323E+02 1.427564387E+01 6.583114431E+01
+ 1.667731338E+01 2.570744927E+01 2.575803132E+01 1.669404429E+01 2.572816888E+01
+ 2.570250295E+01 6.586103046E+01 6.574285193E+01 2.567125125E+01 2.570449754E+01
+ 1.668741985E+01 6.581529147E+01 1.109061723E+02 1.109963904E+02 1.637401194E+02
+ 1.110406312E+02 8.364496808E+01 8.577866653E+01 4.509057801E+00 2.570841689E+01
+ 2.573599699E+01 2.573344310E+01 2.573924995E+01 4.517806067E+00 4.513926295E+00
+ 2.571610432E+01 2.567404026E+01 6.585177966E+01 6.581210592E+01 2.565455990E+01
+ 2.568125962E+01 4.515725521E+00 4.485338174E+00 2.571037536E+01 2.571079080E+01
+ 1.109652131E+02 6.574208173E+01 2.571531323E+01 2.567884595E+01 2.567878125E+01
+ 1.108592233E+02-7.743035185E+00-7.731185794E+00-1.113979636E+00-1.111450667E+00
+-1.723926401E-01-4.818296646E+01-4.819056951E+01 1.692958162E+01 1.692172711E+01
+ 6.403010215E+01 6.403200306E+01 8.751357892E+01 8.750514451E+01 9.530583035E+01
+ 9.529620680E+01 1.038034857E+02 1.037937890E+02 9.528996781E+01 9.530033715E+01
+ 8.748429005E+01 8.748375983E+01 6.401989490E+01 6.401872142E+01 1.687387499E+01
+ 1.688306764E+01-6.703788581E+01-6.703876065E+01-4.825587401E+01-4.825713356E+01
+-4.815152727E+01-4.814311208E+01-4.814542302E+01-4.814606064E+01-4.814726846E+01
+-4.827566253E+01-4.826605247E+01-6.706512585E+01-6.705479083E+01 1.687108424E+01
+ 1.687094233E+01 6.398984293E+01 6.398996510E+01 8.723216497E+01 8.723268045E+01
+ 9.504932615E+01 9.506066677E+01 1.034941154E+02 1.035056450E+02 1.179588743E+02
+ 1.179705589E+02 1.034904160E+02 1.034914303E+02 1.124031473E+02 1.123631556E+02
+ 1.123965105E+02 1.033739094E+02 1.033651159E+02 1.123818634E+02 1.123839736E+02
+ 1.034807886E+02 1.034928989E+02 1.179741219E+02 1.179652124E+02 9.508755234E+01
+ 9.508863577E+01 8.721697839E+01 8.721832141E+01 6.374072012E+01 6.376255996E+01
+ 1.661768202E+01 1.662845331E+01-6.728566112E+01-6.727488694E+01-4.849640598E+01
+-4.848589324E+01-1.521542473E+01-1.521558506E+01-4.721734727E-01-4.829918028E-01
+-1.521034821E+01-1.521099416E+01-4.848562459E+01-4.848684867E+01-4.837706629E+01
+-4.839201816E+01-4.837738417E+01-4.839232927E+01-4.840691068E+01-4.848094114E+01
+-4.848114118E+01-5.213735340E+01-5.212704777E+01-4.848293467E+01-4.848298086E+01
+-4.850204632E+01-4.850180023E+01-1.521888527E+01-1.522890230E+01-1.479891652E+01
+-1.478805778E+01-4.898694888E-01-4.893632510E-01-1.398120193E+00-1.397532054E+00
+-8.021042097E+00-8.020067512E+00 1.104921809E+02 1.104930456E+02 1.104768257E+02
+ 1.104778462E+02-8.049975560E+00-8.048909987E+00-1.441770006E+00-1.430215501E+00
+-4.931024071E-01-5.024998180E-01-1.517845775E+01-1.518753196E+01-1.475573000E+01
+-1.475470041E+01-4.851284394E+01-4.850105773E+01-5.213108808E+01-5.212983843E+01
+-4.849291471E+01-4.848038391E+01-4.852230497E+01 6.374509209E+01 6.373503397E+01
+ 8.721878765E+01 8.721907289E+01 9.503402929E+01 9.504462541E+01 6.373945149E+01
+ 1.660938072E+01 1.660917308E+01-4.853278972E+01-4.853314926E+01-4.843060132E+01
+-4.845551924E+01-4.841878667E+01-4.844297700E+01-4.843337443E+01-4.854872693E+01
+-4.853831814E+01-6.735704037E+01-6.735707224E+01-4.851767040E+01-4.851768348E+01
+-1.524669163E+01-1.523620018E+01-1.481724142E+01-1.482766501E+01-5.215927559E-01
+-5.215064891E-01-1.442563659E+00-1.442384895E+00-8.091089017E+00-8.080397371E+00
+ 1.104586383E+02 1.104588601E+02-6.597214807E+01-2.209324741E+00-6.599561041E+01
+-2.198774154E+00-6.599047472E+01-2.200058630E+00-6.598629910E+01-6.675986110E+01
+-2.976195768E+00-6.673718955E+01-2.955923437E+00-6.674036853E+01-2.950768501E+00
+-2.600058955E+01-2.601041334E+01-2.599912360E+01-2.974770967E+00-6.674723003E+01
+-2.979176141E+00-6.675627950E+01-2.980406707E+00-6.675990061E+01-2.601686752E+01
+-2.598590848E+01-2.987457120E+01-3.701250236E+01 1.362276561E+01 2.190369763E+01
+ 3.311611380E+01 5.422529951E+01 6.814783324E+01 8.653463383E+01 9.547726365E+01
+ 1.059306776E+02 1.143523250E+02 1.422289163E+02 1.360343670E+02 1.539658390E+02
+ 1.539506484E+02 1.360229245E+02 6.544012583E+01 8.689335614E+00-3.907013933E+01
+-2.502438697E+01-2.501176021E+01 1.215506347E+01 4.056059847E+01 1.163400588E+01
+ 1.210917905E+01-2.507548950E+01-3.910260692E+01-1.088604530E+01 8.734458324E+00
+ 6.539052776E+01 1.360364338E+02 1.539199536E+02 1.359488920E+02 1.539261576E+02
+ 1.878003652E+02 2.167289744E+02 2.167428035E+02 1.581479617E+01-4.931768292E+01
+-4.932502230E+01-1.560864436E+01 1.096517169E+02 2.167499746E+02 2.167098748E+02
+ 2.166993431E+02 2.124726818E+02 2.074807797E+02 2.022149809E+02 2.148302534E+02
+ 2.148000708E+02 2.127451770E+02 2.153277263E+02 2.581972920E+02 2.807858552E+02
+ 2.952460079E+02 3.148493716E+02 3.148305603E+02 2.391684673E+02 2.391583537E+02
+ 2.174386430E+02 3.322977947E+02 2.996289561E+02 2.653876807E+02 2.996611444E+02
+ 1.449693987E+02 2.324446186E+02 2.323483650E+02 1.955309124E+02 2.117066895E+02
+ 2.085960166E+02 2.323986832E+02 2.453692454E+02 2.323733250E+02 2.323759119E+02
+ 2.193170133E+02 2.951651746E+02 3.154690814E+02 2.888249210E+02 3.339788203E+02
+ 4.204543748E+02 4.086501844E+02 4.204369417E+02 3.340382032E+02 2.887994503E+02
+ 3.154280164E+02 2.952016996E+02 2.193427702E+02 2.453631421E+02 2.324056399E+02
+ 2.474159495E+02 2.474299118E+02 1.223919264E+02 2.073651681E+02 2.381668633E+02
+ 2.219896897E+02 2.917082317E+02 2.635721685E+02 2.916893035E+02 2.352588191E+02
+ 3.474108197E+02 3.762197316E+02 3.732359908E+02 3.133102191E+02 3.374406315E+02
+ 3.132449106E+02 3.374460718E+02 3.732739548E+02 3.762029695E+02 2.352400783E+02
+ 2.775949421E+02 2.917226109E+02 2.636228428E+02 2.917451707E+02 1.874756975E+02
+ 1.939737698E+02 1.737493765E+02 1.939572458E+02 1.509138263E+02 1.529112098E+02
+ 1.556300522E+02 1.529279092E+02 1.556329732E+02 1.509347016E+02 1.874340563E+02
+ 1.939335667E+02 1.737148197E+02 2.916450515E+02 2.635101662E+02 2.916460146E+02
+ 2.473888516E+02 2.473790892E+02 1.222726586E+02 2.073213697E+02 2.381114657E+02
+ 2.218990850E+02 2.380843170E+02 2.116175884E+02 1.448601983E+02 2.995871080E+02
+ 2.653276022E+02 2.517126232E+02 2.173563964E+02 2.390498390E+02 2.173505727E+02
+ 2.653349760E+02 4.204052092E+02 4.203544320E+02 4.085717763E+02 4.204008146E+02
+ 3.340105091E+02 2.887962069E+02 3.154688476E+02 2.193130576E+02 2.453305050E+02
+ 2.085832618E+02 2.116590180E+02 1.954595940E+02 1.448929594E+02 1.954715793E+02
+ 2.323080471E+02 2.453485171E+02 2.085819211E+02 2.116565563E+02 2.073132117E+02
+ 1.222746269E+02 2.473705075E+02 2.381062034E+02 2.219771936E+02 2.916960570E+02
+ 2.775938129E+02 2.352151243E+02 2.775819784E+02 2.916781548E+02 1.939062134E+02
+ 1.737162153E+02 1.939212611E+02 1.874114065E+02 1.873925367E+02 1.508977926E+02
+ 1.556552001E+02 1.529409503E+02 1.556926617E+02 1.529655491E+02 1.556828731E+02
+ 1.509397941E+02 1.874412855E+02 2.138591147E+02 2.117109953E+02 2.415065694E+02
+ 3.037265517E+02 3.670767935E+02 3.670901394E+02 4.261661421E+02 4.422428839E+02
+ 4.544124346E+02 4.725840752E+02 4.726381696E+02 4.544237814E+02 4.422538336E+02
+ 4.261778770E+02 4.527684602E+02 4.711222353E+02 4.800915618E+02 4.630522978E+02
+ 4.513970697E+02-9.322790259E+01-9.322349763E+01-9.319757128E+01-9.317585021E+01
+ 4.117519627E+02 4.086365657E+02 4.204341182E+02 3.340342646E+02 2.888530630E+02
+ 3.154866700E+02 2.193007207E+02 2.323866546E+02 2.453599473E+02 2.193287509E+02
+ 3.154758667E+02 2.888447249E+02 3.340604453E+02 4.086548174E+02 4.204628295E+02
+ 3.643627894E+02 3.643468088E+02 2.390871115E+02 2.174321678E+02 2.174225589E+02
+ 2.391174243E+02 3.148522701E+02 2.952092179E+02 2.807381153E+02 2.581271178E+02
+ 2.127225064E+02 2.148285174E+02 2.022042881E+02 2.074810403E+02 2.124929091E+02
+ 2.167186286E+02 2.167069950E+02 1.877466708E+02 1.538885778E+02 1.359198980E+02
+ 1.301016007E+02 1.421321840E+02 1.142567766E+02 9.541342092E+01 6.805636445E+01
+ 5.410624399E+01 3.301290058E+01 2.182596018E+01 1.358132990E+01-3.706857182E+01
+-2.995344702E+01-2.603078447E+01-2.605456140E+01-2.605952953E+01-2.608363381E+01
+-2.608498876E+01-6.683252096E+01-3.056186543E+00-6.681391568E+01-3.049359791E+00
+-6.682921809E+01-3.046087397E+00-1.041767500E+02-1.164744906E+02-1.041396855E+02
+-1.040704581E+02-1.041502317E+02-8.778531551E+01-8.200384036E+01-8.208215839E+01
+-8.782926339E+01-8.206368786E+01-8.813252246E+01-1.172532826E+02-1.165446683E+02
+-1.042835352E+02-1.165351471E+02-1.172480038E+02-8.822371209E+01-1.172666184E+02
+-1.042897336E+02-1.165600418E+02-1.172811883E+02-8.827802727E+01-8.794239114E+01
+-1.165649369E+02-1.540127018E+02-1.201965520E+02-1.202151599E+02-6.342429271E+01
+-1.319630618E+02-1.958146494E+02-1.319478667E+02-1.958259371E+02-1.319438965E+02
+-1.957884148E+02-1.319249332E+02-1.037426607E+02-1.037413887E+02-1.037239186E+02
+-1.535336851E+02-1.041243376E+02-1.041597801E+02-1.041657166E+02-1.041399796E+02
+-1.041501627E+02-1.041542914E+02-1.164856802E+02-1.538855609E+02-1.200991496E+02
+-1.201104736E+02-1.292189873E+02-1.930567846E+02-1.292296532E+02-1.930031146E+02
+-1.291791887E+02-1.930334111E+02-1.291736885E+02-1.930527863E+02-1.291454956E+02
+-1.931031984E+02-1.292025147E+02 7.823027312E+01 9.098810400E+01 7.824118662E+01
+-2.185657189E+02 3.252604464E+02-2.176296605E+02-4.617257692E+02-1.112605432E+02
+-1.522209040E+02-1.113120313E+02-2.185914594E+02 3.252456320E+02-4.617852150E+02
+-1.112649393E+02-1.522603508E+02-1.112933026E+02 9.096000808E+01 7.829268713E+01
+-2.176841421E+02-4.617380219E+02-2.176936399E+02-4.617190743E+02-1.112437337E+02
+-1.522230183E+02-1.113434678E+02 9.101026504E+01 7.821425507E+01-2.186205832E+02
+ 3.252048935E+02-1.113021802E+02-1.522005296E+02-1.112679404E+02 7.824888092E+01
+ 9.098072907E+01 3.251691263E+02-2.186513738E+02-4.617627011E+02-2.177349376E+02
+-4.617378582E+02 7.825390850E+01 9.103616124E+01-2.910529453E+01-2.908277168E+01
+-2.905411301E+01-2.906863478E+01-2.906244839E+01-3.293961819E+01-2.064171436E+01
+-1.957113080E+01-1.063851533E+01-1.673888878E+01-1.428152081E+01-1.293725196E+01
+-1.397735154E+01-2.937599765E+01-4.205092673E+01-1.386211576E+01-1.895284204E+01
+-1.392344189E+01-4.411909395E+00-1.388555525E+01-1.897869592E+01-4.207229984E+01
+-2.938345817E+01-1.402324358E+01-1.296287621E+01-1.431144914E+01-1.395986750E+01
+-3.288760474E+01-6.622191435E+01-7.891778494E+01-1.109937934E+01 3.755032554E+01
+ 3.801805927E+01 3.798675897E+01-6.671672935E+01 2.948212779E+01 3.260336225E+01
+-1.162197922E+01-1.167436690E+01 3.250428355E+01 2.943677908E+01-6.677664898E+01
+ 3.795942984E+01 3.800105483E+01 3.752400698E+01 8.569895048E+00 9.251708129E+00
+ 2.557501556E+01 6.170134207E+01 7.763242302E+01 9.951020770E+01 1.084914392E+02
+ 9.960063451E+01 1.140165287E+02 1.172549412E+02 1.188165301E+02 1.022023702E+02
+ 1.021477846E+02 1.187817662E+02 1.172395160E+02 1.139763908E+02 9.959022871E+01
+ 1.084829352E+02 9.949067467E+01 7.759785360E+01 6.163861999E+01 2.552926125E+01
+ 9.229685344E+00-2.810774244E+01-4.218303425E+01 5.616945018E+00 6.230267163E+01
+ 1.328976788E+02 1.508284338E+02 1.846975233E+02 2.137131225E+02 2.094213597E+02
+ 1.798159917E+02 1.411490786E+02 1.065615423E+02-1.194625156E+01 7.900937970E+01
+ 1.112724838E+02 1.703493604E+02 1.991570603E+02 2.044510080E+02 2.094617312E+02
+ 2.136575243E+02 2.093831319E+02 1.797614490E+02 1.411135465E+02 1.065115785E+02
+-1.195404820E+01 7.896558569E+01 1.112574387E+02 1.521554192E+02 1.748233143E+02
+ 2.230829060E+02 1.518454049E+02 4.086466300E+01 1.007230028E+02 1.394221035E+02
+ 1.909025267E+02 1.296666607E+02 2.107778270E+02 2.107667394E+02 2.086492058E+02
+ 2.384445559E+02 3.006657720E+02 3.639884712E+02 3.927981007E+02 3.804531928E+02
+ 4.046690897E+02 4.230814782E+02 4.391593464E+02 4.513647062E+02 4.696982920E+02
+ 5.129127103E+02 5.135787534E+02 4.978362431E+02 4.680479634E+02 4.496803453E+02
+ 4.230554874E+02 4.230067237E+02 4.391454269E+02 4.513035603E+02 4.697046862E+02
+ 5.095673023E+02 4.710341590E+02 3.936693820E+02 3.793315972E+02 3.268133009E+02
+ 3.639822848E+02 3.268110073E+02 3.090439412E+02 2.962398458E+02 3.311481546E+02
+ 3.564232505E+02 3.564346395E+02 4.377949490E+02 5.096133411E+02 4.710178956E+02
+ 3.936490498E+02 3.793652438E+02 3.927722848E+02 3.639831488E+02 3.267997789E+02
+ 3.090201254E+02 2.962529483E+02 2.962519733E+02 3.311287086E+02 3.564378222E+02
+ 3.564365031E+02 4.377900116E+02 4.710348423E+02 5.096243679E+02 4.697779361E+02
+ 4.513138267E+02 5.128869275E+02 5.135494141E+02 4.978319661E+02 4.289303894E+02
+ 4.770335982E+02 4.770250989E+02 4.599554221E+02 4.483224936E+02 3.427622138E+02
+ 4.483186339E+02-9.634625500E+01 4.086108471E+02 4.173284902E+02 4.086110126E+02
+-9.636514425E+01 4.482963474E+02 4.599311050E+02 4.770349156E+02 4.289241489E+02
+ 4.680362501E+02 4.496491184E+02 4.230286563E+02 4.046327704E+02 3.804553917E+02
+ 3.639886665E+02 3.006575257E+02 2.384465298E+02 2.107507814E+02 2.086451858E+02
+ 2.107440637E+02 2.086491811E+02 1.296443248E+02 1.908495109E+02 1.393721470E+02
+ 1.006642436E+02-2.426569559E+01-2.444682707E+01-2.425984204E+01 4.086620123E+01
+ 1.518168353E+02 2.230189054E+02 2.776643769E+02 2.550578533E+02 1.747887250E+02
+ 1.521227635E+02 2.117555259E+02 1.702763598E+02 1.991135831E+02 2.043828157E+02
+ 2.094005182E+02 2.136226190E+02 2.093498981E+02 1.797439044E+02 1.846642366E+02
+ 1.507911302E+02 1.328379373E+02 6.221888779E+01 5.570212143E+00-4.222146232E+01
+-2.817691957E+01 9.202289612E+00 8.520945500E+00 3.749923189E+01-1.121032191E+01
+-7.899897740E+01-6.631508437E+01-3.294860349E+01-2.945265561E+01-1.408584208E+01
+-1.304743180E+01-1.400938971E+01-1.678081683E+01-1.683210700E+01-1.076610471E+01
+-1.965543106E+01-2.077819133E+01-3.308462881E+01-2.913825281E+01-2.917049148E+01
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/extdata/rua_32_ax.rua
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/extdata/rua_32_ax.rua	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/extdata/rua_32_ax.rua	(revision 2476)
@@ -0,0 +1,50 @@
+1Real unsymmetric assembled matrix based on IBM32                       RUA_32  
+            36             3             8            13            12
+RUA                       32            32           126             0
+(16I5)          (16I5)          (10F7.1)            (10F7.1)            
+FGX                        2             0
+    1    7   12   18   22   26   29   34   39   46   53   58   61   63   65   68
+   71   74   79   82   85   88   90   94   97  102  106  110  112  117  121  124
+  127
+    1    2    3    4    7   26    1    2    9   21   28    2    3    6    8    9
+   29    3    4    5   12    3    5   23   27    1    6   16    3    7   14   21
+   31    1    8   12   17   27    7    9   10   13   19   23   27    1   10   11
+   21   23   25   27    2   11   15   18   29    6   12   24   11   13    3   14
+    2   15   20    4   16   22    4   16   17    6   10   18   20   30    1   19
+   26    8   16   20    3   21   32   11   22    2   17   21   23   12   24   26
+    6   15   18   24   25   13   18   22   26    5   24   26   27    9   28    3
+    5   27   29   32   12   17   23   30   13   14   31   24   28   32
+    101    102    103    104    107    126    201    202    209    221
+    228    302    303    306    308    309    329    403    404    405
+    412    503    505    523    527    601    606    616    703    707
+    714    721    731    801    808    812    817    827    907    909
+    910    913    919    923    927   1001   1010   1011   1021   1023
+   1025   1027   1102   1111   1115   1118   1129   1206   1212   1224
+   1311   1313   1403   1414   1502   1515   1520   1604   1616   1622
+   1704   1716   1717   1806   1810   1818   1820   1830   1901   1919
+   1926   2008   2016   2020   2103   2121   2132   2211   2222   2302
+   2317   2321   2323   2412   2424   2426   2506   2515   2518   2524
+   2525   2613   2618   2622   2626   2705   2724   2726   2727   2809
+   2828   2903   2905   2927   2929   2932   3012   3017   3023   3030
+   3113   3114   3131   3224   3228   3232
+   1001      0      0      0      0      0      0      0      0   1010
+   1011      0      0      0      0      0      0      0      0      0
+   1021      0   1023      0   1025      0   1027      0      0      0
+      0      0   4606   5512   8424   3816   6520   6430   1721   3124
+   4236   3730   5644   7860   7952   5242   5145   5964   7868   8072
+   2838   5360   6405   6466   7815  12120   3550   9830   8962   6284
+   4387   4860   3862   8296
+      1      1      1      1      1      1      1      1      1      1
+      1      1      1      1      1      1      1      1      1      1
+      1      1      1      1      1      1      1      1      1      1
+      1      1      1      1      1      1      1      1      1      1
+      1      1      1      1      1      1      1      1      1      1
+      1      1      1      1      1      1      1      1      1      1
+      1      1      1      1
+      0      0      0      0      0      0      0      0      0      1
+      0      0      0      0      0      0      0      0      0      0
+      0      0      0      0      0      0      0      0      0      0
+      0      0      1      1      1      1      1      1      1      1
+      1      1      1      1      1      1      1      1      1      1
+      1      1      1      1      1      1      1      1      1      1
+      1      1      1      1
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/NAMESPACE	(revision 2476)
@@ -0,0 +1,66 @@
+useDynLib(SparseM)
+
+importFrom("utils", packageDescription)
+importFrom("graphics", "axis", "box", "image.default")
+importFrom("methods", "as", "is", "new", "validObject")
+importFrom("stats", "coef", "coefficients", "fitted", "model.extract",
+    "pf", "printCoefmat", "pt", "quantile", "residuals",
+    "rnorm", "symnum", "weighted.residuals", "weights")
+
+export(is.matrix.csr, is.matrix.csc, is.matrix.ssr, is.matrix.ssc, is.matrix.coo,
+       as.matrix.csr, as.matrix.csc, as.matrix.ssr, as.matrix.ssc, as.matrix.coo,
+       forwardsolve,
+       read.matrix.hb, model.guess, model.xexact,
+       rbind.matrix.csr, cbind.matrix.csr,
+       Ops.matrix.csr, Ops.matrix.diag.csr,
+       "[.matrix.csr", "[<-.matrix.csr", "[.matrix.diag.csr",
+       slm, slm.fit, slm.wfit, slm.fit.csr,
+       coef.slm, fitted.slm, residuals.slm, deviance.slm, extractAIC.slm,
+       summary.mslm, summary.slm, print.summary.slm, print.slm,
+       "[<-.matrix.coo","[.matrix.coo")
+
+if(getRversion() < "2.11.0" || R.version$`svn rev` < 51018)
+    export("norm")
+
+if(getRversion() >= "2.15.0")
+    importFrom("methods", kronecker)
+
+## Exporting S4 classes
+exportClasses(matrix.csr, matrix.csc, matrix.ssr, matrix.ssc, matrix.coo, matrix.csr.chol, matrix.csc.hb, matrix.ssc.hb, slm, mslm, summary.slm, matrix.diag.csr)
+
+## Exporting S4 methods {*not* for S3 !}
+exportMethods(as.matrix.csr, as.matrix.csc, as.matrix.ssr, as.matrix.ssc, as.matrix.coo,
+	as.matrix, t, dim, diff, diag, "diag<-", norm, chol, backsolve,
+	solve, model.matrix, model.response, "%*%", kronecker, "image")
+
+S3method(coef, slm)
+S3method(fitted, slm)
+S3method(residuals, slm)
+S3method(summary, mslm)
+S3method(summary, slm)
+S3method(print, summary.slm)
+S3method(print, slm)
+S3method(deviance, slm)
+S3method(extractAIC, slm)
+
+S3method(cbind, matrix.csr)
+S3method(rbind, matrix.csr)
+S3method(Ops, matrix.csr)
+S3method(Ops, matrix.diag.csr)
+S3method("[", matrix.coo)
+S3method("[", matrix.csr)
+S3method("[", matrix.diag.csr)
+S3method("[<-", matrix.coo)
+S3method("[<-", matrix.csr)
+
+S3method("as", matrix.coo)
+S3method("as", matrix.csr)
+S3method("as", matrix.csc)
+S3method("as", matrix.ssr)
+S3method("as", matrix.ssc)
+S3method("is", matrix.coo)
+S3method("is", matrix.csr)
+S3method("is", matrix.csc)
+S3method("is", matrix.ssr)
+S3method("is", matrix.ssc)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/R/SparseM.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/R/SparseM.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/R/SparseM.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/R/SparseM.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/R/SparseM
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/R/SparseM	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/SparseM/R/SparseM	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/LICENSE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/LICENSE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/LICENSE	(revision 2476)
@@ -0,0 +1,11 @@
+
+Please see the included file COPYRIGHTS for per-file (or per-directory)
+details on licenses as well as copyrights.
+
+In short: 
+
+ - Eigen (as an upstream project) in licensed under the MPL-2 (a 
+   version of which is included in the file COPYRIGHT), and 
+
+ - the RcppEigen integration into R is licensed as GPL-2 or later.
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/DESCRIPTION	(revision 2476)
@@ -0,0 +1,39 @@
+Package: RcppEigen
+Type: Package
+Title: 'Rcpp' Integration for the 'Eigen' Templated Linear Algebra
+        Library
+Version: 0.3.2.9.0
+Date: 2016-08-20
+Author: Douglas Bates, Dirk Eddelbuettel, Romain Francois, and Yixuan Qiu;
+ the authors of Eigen for the included version of Eigen
+Maintainer: Dirk Eddelbuettel <edd@debian.org>
+Copyright: See the file COPYRIGHTS for various Eigen copyright details
+Description: R and 'Eigen' integration using 'Rcpp'.
+ 'Eigen' is a C++ template library for linear algebra: matrices,
+ vectors, numerical solvers and related algorithms.  It supports dense
+ and sparse matrices on integer, floating point and complex numbers,
+ decompositions of such matrices, and solutions of linear systems. Its
+ performance on many algorithms is comparable with some of the best
+ implementations based on 'Lapack' and level-3 'BLAS'.
+ .
+    The 'RcppEigen' package includes the header files from the 'Eigen' C++
+ template library (currently version 3.2.9). Thus users do not need to
+ install 'Eigen' itself in order to use 'RcppEigen'.
+ .
+    Since version 3.1.1, 'Eigen' is licensed under the Mozilla Public License
+ (version 2); earlier version were licensed under the GNU LGPL version 3 or
+ later. 'RcppEigen' (the 'Rcpp' bindings/bridge to 'Eigen') is licensed under
+ the GNU GPL version 2 or later, as is the rest of 'Rcpp'.
+License: GPL (>= 2) | file LICENSE
+Depends: R (>= 2.15.1)
+LazyLoad: yes
+LinkingTo: Rcpp
+Imports: Matrix (>= 1.1-0), Rcpp (>= 0.11.0), stats, utils
+Suggests: inline, RUnit, pkgKitten
+URL: http://eigen.tuxfamily.org
+NeedsCompilation: yes
+Packaged: 2016-08-20 12:31:47.981785 UTC; edd
+Repository: CRAN
+Date/Publication: 2016-08-21 04:42:37
+Built: R 3.3.0; x86_64-apple-darwin13.4.0; 2016-08-21 09:01:53 UTC; unix
+Archs: RcppEigen.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigenWrap.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigenWrap.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigenWrap.h	(revision 2476)
@@ -0,0 +1,421 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 4 -*-
+//
+// RcppEigenWrap.h: Rcpp wrap methods for Eigen matrices, vectors and arrays
+//
+// Copyright (C) 2011 - 2012   Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of RcppEigen.
+//
+// RcppEigen is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// RcppEigen is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with RcppEigen.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RcppEigen__RcppEigenWrap__h
+#define RcppEigen__RcppEigenWrap__h
+
+namespace Rcpp{
+
+    namespace RcppEigen{
+
+        template<typename T>
+        SEXP Eigen_cholmod_wrap(const Eigen::CholmodDecomposition<Eigen::SparseMatrix<T> >& obj) {
+			typedef T* Tpt;
+            const cholmod_factor* f = obj.factor();
+            if (f->minor < f->n)
+                throw std::runtime_error("CHOLMOD factorization was unsuccessful");
+
+            //FIXME: Should extend this selection according to T
+            S4 ans(std::string(f->is_super ? "dCHMsuper" : "dCHMsimpl"));
+            IntegerVector  dd(2);
+            dd[0] = dd[1] = f->n;
+            ans.slot("Dim") = dd;
+            ans.slot("perm") = ::Rcpp::wrap((int*)f->Perm, (int*)f->Perm + f->n);
+            ans.slot("colcount") = ::Rcpp::wrap((int*)f->ColCount, (int*)f->ColCount + f->n);
+            IntegerVector tt(f->is_super ? 6 : 4);
+            tt[0] = f->ordering; tt[1] = f->is_ll;
+            tt[2] = f->is_super; tt[3] = f->is_monotonic;
+            ans.slot("type") = tt;
+            if (f->is_super) {
+                tt[4] = f->maxcsize; tt[5] = f->maxesize;
+                ans.slot("super") = ::Rcpp::wrap((int*)f->super, ((int*)f->super) + f->nsuper + 1);
+                ans.slot("pi")    = ::Rcpp::wrap((int*)f->pi, ((int*)f->pi) + f->nsuper + 1);
+                ans.slot("px")    = ::Rcpp::wrap((int*)f->px, ((int*)f->px) + f->nsuper + 1);
+                ans.slot("s")     = ::Rcpp::wrap((int*)f->s, ((int*)f->s) + f->ssize);
+                ans.slot("x")     = ::Rcpp::wrap((Tpt)f->x, ((T*)f->x) + f->xsize);
+            } else {
+                ans.slot("i")     = ::Rcpp::wrap((int*)f->i, ((int*)f->i) + f->nzmax);
+                ans.slot("p")     = ::Rcpp::wrap((int*)f->p, ((int*)f->p) + f->n + 1);
+                ans.slot("x")     = ::Rcpp::wrap((Tpt)f->x, ((T*)f->x) + f->nzmax);
+                ans.slot("nz")    = ::Rcpp::wrap((int*)f->nz, ((int*)f->nz) + f->n);
+                ans.slot("nxt")   = ::Rcpp::wrap((int*)f->next, ((int*)f->next) + f->n + 2);
+                ans.slot("prv")   = ::Rcpp::wrap((int*)f->prev, ((int*)f->prev) + f->n + 2);
+            }
+            return ::Rcpp::wrap(ans);
+        }
+
+    } /* namespace RcppEigen */
+
+    template<typename T>
+    SEXP wrap(const Eigen::CholmodDecomposition<Eigen::SparseMatrix<T> >& obj) {
+        return RcppEigen::Eigen_cholmod_wrap(obj);
+    }
+
+    namespace RcppEigen{
+
+        // helper trait to identify if T is a plain object type
+        // TODO: perhaps move this to its own file
+        template <typename T> struct is_plain : Rcpp::traits::same_type<T,typename T::PlainObject>{} ;
+
+        // helper trait to identify if the object has dense storage
+        template <typename T> struct is_dense : Rcpp::traits::same_type<typename T::StorageKind,Eigen::Dense>{} ;
+
+        // for plain dense objects
+        template <typename T>
+        SEXP eigen_wrap_plain_dense( const T& obj, Rcpp::traits::true_type ){
+			typename Eigen::internal::conditional<T::IsRowMajor,
+												  Eigen::Matrix<typename T::Scalar,
+																T::RowsAtCompileTime,
+																T::ColsAtCompileTime>,
+												  const T&>::type objCopy(obj);
+            int m = obj.rows(), n = obj.cols();
+			SEXP ans = PROTECT(::Rcpp::wrap(objCopy.data(), objCopy.data() + m * n));
+            if( T::ColsAtCompileTime != 1 ) {
+                SEXP dd = PROTECT(::Rf_allocVector(INTSXP, 2));
+                int *d = INTEGER(dd);
+                d[0] = m;
+                d[1] = n;
+                ::Rf_setAttrib(ans, R_DimSymbol, dd);
+                UNPROTECT(1);
+            }
+            UNPROTECT(1);
+            return ans;
+        }
+
+        // for plain sparse objects
+        template <typename T>
+        SEXP eigen_wrap_plain_dense( const T& object, Rcpp::traits::false_type ){
+            typedef typename T::Scalar     Scalar;
+            const int  RTYPE = Rcpp::traits::r_sexptype_traits<Scalar>::rtype;
+            std::string klass;
+            switch(RTYPE) {
+            case REALSXP: klass = T::IsRowMajor ? "dgRMatrix" : "dgCMatrix";
+                break;
+//          case INTSXP: klass = T::IsRowMajor ? "igRMatrix" : "igCMatrix";  // classes not exported
+//              break;
+            default:
+                throw std::invalid_argument("RTYPE not matched in conversion to sparse matrix");
+            }
+            S4           ans(klass);
+            const int    nnz = object.nonZeros();
+            ans.slot("Dim")  = Dimension(object.rows(), object.cols());
+            ans.slot(T::IsRowMajor ? "j" : "i") =
+                IntegerVector(object.innerIndexPtr(), object.innerIndexPtr() + nnz);
+            ans.slot("p")    = IntegerVector(object.outerIndexPtr(),
+                                             object.outerIndexPtr() + object.outerSize() + 1);
+            ans.slot("x")    = Vector<RTYPE>(object.valuePtr(), object.valuePtr() + nnz);
+            return  ans;
+        }
+
+        // plain object, so we can assume data() and size()
+        template <typename T>
+        inline SEXP eigen_wrap_is_plain( const T& obj, ::Rcpp::traits::true_type ){
+            return eigen_wrap_plain_dense( obj, typename is_dense<T>::type() ) ;
+        }
+
+        // when the object is not plain, we need to eval()uate it
+        template <typename T>
+        inline SEXP eigen_wrap_is_plain( const T& obj, ::Rcpp::traits::false_type ){
+            return eigen_wrap_is_plain( obj.eval(), Rcpp::traits::true_type() ) ;
+        }
+
+
+        // at that point we know that T derives from EigenBase
+        // so it is either a plain object (Matrix, etc ...) or an expression
+        // that eval()uates into a plain object
+        //
+        // so the first thing we need to do is to find out so that we don't evaluate if we don't need to
+        template <typename T>
+        inline SEXP eigen_wrap( const T& obj ){
+            return eigen_wrap_is_plain( obj,
+                typename is_plain<T>::type()
+                ) ;
+        }
+
+    } /* namespace RcppEigen */
+
+
+    namespace traits {
+        /* support for Rcpp::as */
+
+        template <typename T, int RTYPE>
+        class Eigen_Matrix_Exporter {
+            public:
+            Eigen_Matrix_Exporter(SEXP x) : vec(x), d_ncol(1), d_nrow(Rf_length(x)) {
+                if (TYPEOF(x) != RTYPE)
+                    throw std::invalid_argument("Wrong R type for mapped vector");
+                if (::Rf_isMatrix(x)) {
+                    int *dims = vec.dims() ;
+                    d_nrow = dims[0];
+                    d_ncol = dims[1];
+                }
+            }
+            T get() {return T(vec.begin(), d_nrow, d_ncol );}
+            private:
+                Rcpp::Vector<RTYPE> vec ;
+                int d_nrow, d_ncol ;
+        } ;
+
+        // modified from "class MatrixExporter" in <Rcpp>/include/Rcpp/internal/Exporter.h
+        // MatrixExporter uses brackets [] to index the destination matrix,
+        // which is not supported by MatrixXd.
+        // Here we copy data to MatrixXd.data() rather than MatrixXd
+        template <typename T, typename value_type>
+        class MatrixExporterForEigen {
+        public:
+            typedef value_type r_export_type;
+
+            MatrixExporterForEigen(SEXP x) : object(x){}
+            ~MatrixExporterForEigen(){}
+
+            T get() {
+                Shield<SEXP> dims( ::Rf_getAttrib( object, R_DimSymbol ) );
+                if( Rf_isNull(dims) || ::Rf_length(dims) != 2 ){
+                    throw ::Rcpp::not_a_matrix();
+                }
+                int* dims_ = INTEGER(dims);
+                T result( dims_[0], dims_[1] );
+                value_type *data = result.data();
+                ::Rcpp::internal::export_indexing<value_type*, value_type>( object, data );
+                return result ;
+            }
+
+        private:
+            SEXP object;
+        };
+        
+        // Provides only Map::VectorX<t> export
+        template<typename T>
+        class Exporter<Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, 1> > > {
+            typedef typename Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, 1> > OUT ;
+            const static int RTYPE = ::Rcpp::traits::r_sexptype_traits<T>::rtype ;
+            Rcpp::Vector<RTYPE> vec ;
+
+        public:
+            Exporter(SEXP x) : vec(x) {
+                if (TYPEOF(x) != RTYPE)
+                    throw std::invalid_argument("Wrong R type for mapped vector");
+            }
+            OUT get() {return OUT(vec.begin(), vec.size());}
+        } ;
+
+        // Provides only Map::RowVectorX<t> export
+        template<typename T>
+        class Exporter<Eigen::Map<Eigen::Matrix<T, 1, Eigen::Dynamic> > > {
+            typedef typename Eigen::Map<Eigen::Matrix<T, 1, Eigen::Dynamic> > OUT ;
+            const static int RTYPE = ::Rcpp::traits::r_sexptype_traits<T>::rtype ;
+            Rcpp::Vector<RTYPE> vec ;
+          
+        public:
+            Exporter(SEXP x) : vec(x) {
+                if (TYPEOF(x) != RTYPE)
+                    throw std::invalid_argument("Wrong R type for mapped rowvector");
+            }
+            OUT get() {return OUT(vec.begin(), vec.size());}
+        };
+
+        template<typename T>
+        class Exporter< Eigen::Map<Eigen::Array<T, Eigen::Dynamic, 1> > > {
+            typedef typename Eigen::Map<Eigen::Array<T, Eigen::Dynamic, 1> > OUT ;
+            const static int RTYPE = ::Rcpp::traits::r_sexptype_traits<T>::rtype ;
+            Rcpp::Vector<RTYPE> vec ;
+
+        public:
+            Exporter(SEXP x) : vec(x) {
+                if (TYPEOF(x) != RTYPE)
+                    throw std::invalid_argument("Wrong R type for mapped 1D array");
+            }
+            OUT get() {return OUT(vec.begin(), vec.size());}
+        } ;
+
+        template<typename T>
+        class Exporter<Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> > > {
+            typedef typename Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> > OUT ;
+            const static int RTYPE = ::Rcpp::traits::r_sexptype_traits<T>::rtype ;
+            Rcpp::Vector<RTYPE> vec ;
+            int d_ncol, d_nrow ;
+
+            public:
+            Exporter(SEXP x) : vec(x), d_ncol(1), d_nrow(Rf_length(x)) {
+                if (TYPEOF(x) != RTYPE)
+                    throw std::invalid_argument("Wrong R type for mapped matrix");
+                if (::Rf_isMatrix(x)) {
+                    int *dims = INTEGER( ::Rf_getAttrib( x, R_DimSymbol ) ) ;
+                    d_nrow = dims[0];
+                    d_ncol = dims[1];
+                }
+            }
+            OUT get() {return OUT(vec.begin(), d_nrow, d_ncol );}
+        } ;
+
+        template<typename T>
+        class Exporter<Eigen::Map<Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic> > > {
+            typedef typename Eigen::Map<Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic> > OUT ;
+            const static int RTYPE = ::Rcpp::traits::r_sexptype_traits<T>::rtype ;
+            Rcpp::Vector<RTYPE> vec ;
+            int d_ncol, d_nrow ;
+
+            public:
+            Exporter(SEXP x) : vec(x), d_ncol(1), d_nrow(Rf_length(x)) {
+                if (TYPEOF(x) != RTYPE)
+                    throw std::invalid_argument("Wrong R type for mapped 2D array");
+                if (::Rf_isMatrix(x)) {
+                    int *dims = INTEGER( ::Rf_getAttrib( x, R_DimSymbol ) ) ;
+                    d_nrow = dims[0];
+                    d_ncol = dims[1];
+                }
+            }
+            OUT get() {return OUT(vec.begin(), d_nrow, d_ncol );}
+        } ;
+
+        template <typename T>
+        class Exporter<Eigen::Matrix<T, Eigen::Dynamic, 1> >
+            : public IndexingExporter<Eigen::Matrix<T, Eigen::Dynamic, 1>, T> {
+        public:
+            Exporter(SEXP x) : IndexingExporter<Eigen::Matrix<T, Eigen::Dynamic, 1>, T >(x){}
+        };
+
+        template <typename T>
+        class Exporter<Eigen::Array<T, Eigen::Dynamic, 1> >
+            : public IndexingExporter<Eigen::Array<T, Eigen::Dynamic, 1>, T> {
+        public:
+            Exporter(SEXP x) : IndexingExporter<Eigen::Array<T, Eigen::Dynamic, 1>, T >(x){}
+        };
+
+        template <typename T>
+        class Exporter< Eigen::Matrix<T, 1, Eigen::Dynamic> >
+            : public IndexingExporter< Eigen::Matrix<T, 1, Eigen::Dynamic>, T > {
+        public:
+            Exporter(SEXP x) : IndexingExporter< Eigen::Matrix<T, 1, Eigen::Dynamic>, T >(x){}
+        };
+
+        template <typename T>
+        class Exporter< Eigen::Array<T, 1, Eigen::Dynamic> >
+            : public IndexingExporter< Eigen::Array<T, 1, Eigen::Dynamic>, T > {
+        public:
+            Exporter(SEXP x) : IndexingExporter< Eigen::Array<T, 1, Eigen::Dynamic>, T >(x){}
+        };
+
+        template <typename T>
+        class Exporter< Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> >
+            : public MatrixExporterForEigen< Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>, T > {
+        public:
+            Exporter(SEXP x) :
+                MatrixExporterForEigen< Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>, T >(x){}
+        };
+
+        template <typename T>
+        class Exporter< Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic> >
+            : public MatrixExporterForEigen< Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic>, T > {
+        public:
+            Exporter(SEXP x) :
+                MatrixExporterForEigen< Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic>, T >(x){}
+        };
+
+        template<typename T>
+        class Exporter<Eigen::MappedSparseMatrix<T> > {
+        public:
+            const static int RTYPE = ::Rcpp::traits::r_sexptype_traits<T>::rtype ;
+            Exporter(SEXP x) : d_x(x), d_dims(d_x.slot("Dim")), d_i(d_x.slot("i")), d_p(d_x.slot("p")), xx( d_x.slot("x") ) {
+                if (!d_x.is("dgCMatrix"))
+                    throw std::invalid_argument("Need S4 class dgCMatrix for a mapped sparse matrix");
+            }
+            Eigen::MappedSparseMatrix<T> get() {
+                return Eigen::MappedSparseMatrix<T>(d_dims[0], d_dims[1], d_p[d_dims[1]],
+                                                    d_p.begin(), d_i.begin(), xx.begin() );
+            }
+        protected:
+            S4            d_x;
+            IntegerVector d_dims, d_i, d_p;
+            Vector<RTYPE> xx ;
+        };
+
+        template<typename T>
+        class Exporter<Eigen::MappedSparseMatrix<T, Eigen::RowMajor> > {
+        public:
+            const static int RTYPE = ::Rcpp::traits::r_sexptype_traits<T>::rtype ;
+            Exporter(SEXP x) : d_x(x), d_dims(d_x.slot("Dim")), d_j(d_x.slot("j")), d_p(d_x.slot("p")), xx( d_x.slot("x") ) {
+                if (!d_x.is("dgRMatrix"))
+                    throw std::invalid_argument("Need S4 class dgRMatrix for a mapped sparse matrix");
+            }
+            Eigen::MappedSparseMatrix<T, Eigen::RowMajor> get() {
+                return Eigen::MappedSparseMatrix<T, Eigen::RowMajor>(d_dims[0], d_dims[1], d_p[d_dims[1]],
+                                                                     d_p.begin(), d_j.begin(), xx.begin() );
+            }
+        protected:
+            S4            d_x;
+            IntegerVector d_dims, d_j, d_p;
+            Vector<RTYPE> xx ;
+        };
+
+        template<typename T>
+        class Exporter<Eigen::SparseMatrix<T> > {
+        public:
+            const static int RTYPE = ::Rcpp::traits::r_sexptype_traits<T>::rtype ;
+            Exporter(SEXP x) : d_x(x), d_dims(d_x.slot("Dim")), d_i(d_x.slot("i")), d_p(d_x.slot("p")), xx(d_x.slot("x")) {
+                if (!d_x.is("dgCMatrix"))
+                    throw std::invalid_argument("Need S4 class dgCMatrix for a sparse matrix");
+            }
+            Eigen::SparseMatrix<T> get() {
+                Eigen::SparseMatrix<T>  ans(d_dims[0], d_dims[1]);
+                ans.reserve(d_p[d_dims[1]]);
+                for(int j = 0; j < d_dims[1]; ++j) {
+                    ans.startVec(j);
+                    for (int k = d_p[j]; k < d_p[j + 1]; ++k) ans.insertBack(d_i[k], j) = xx[k];
+                }
+                ans.finalize();
+                return ans;
+            }
+        protected:
+            S4            d_x;
+            IntegerVector d_dims, d_i, d_p;
+            Vector<RTYPE> xx ;
+        };
+
+        template<typename T>
+        class Exporter<Eigen::SparseMatrix<T, Eigen::RowMajor> > {
+        public:
+            const static int RTYPE = ::Rcpp::traits::r_sexptype_traits<T>::rtype ;
+
+            Exporter(SEXP x) : d_x(x), d_dims(d_x.slot("Dim")), d_j(d_x.slot("j")), d_p(d_x.slot("p")), xx(d_x.slot("x")) {
+                if (!d_x.is("dgRMatrix"))
+                    throw std::invalid_argument("Need S4 class dgRMatrix for a sparse matrix");
+            }
+            Eigen::SparseMatrix<T, Eigen::RowMajor> get() {
+                Eigen::SparseMatrix<T, Eigen::RowMajor>  ans(d_dims[0], d_dims[1]);
+                ans.reserve(d_p[d_dims[0]]);
+                for(int i = 0; i < d_dims[0]; ++i) {
+                    ans.startVec(i);
+                    for (int k = d_p[i]; k < d_p[i + 1]; ++k) ans.insertBack(i, d_j[k]) = xx[k];
+                }
+                ans.finalize();
+                return ans;
+            }
+        protected:
+            S4            d_x;
+            IntegerVector d_dims, d_j, d_p;
+            Vector<RTYPE> xx ;
+        };
+
+    } // namespace traits
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigen.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigen.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigen.h	(revision 2476)
@@ -0,0 +1,32 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// RcppEigen.h: Rcpp/Eigen glue
+//
+// Copyright (C)      2011 Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of RcppEigen.
+//
+// RcppEigen is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// RcppEigen is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with RcppEigen.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RcppEigen__RcppEigen__h
+#define RcppEigen__RcppEigen__h
+
+#include <RcppEigenForward.h>
+#include <Rcpp.h>
+#include <RcppEigenWrap.h>
+
+//#include <Eigen/Dense>
+//#include <unsupported/Eigen/SparseExtra> // also includes Eigen/Sparse
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigenStubs.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigenStubs.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigenStubs.h	(revision 2476)
@@ -0,0 +1,585 @@
+// RcppEigenStubs.cpp: Provide access to compiled CHOLMOD functions in
+// the Matrix package.
+//
+// Copyright (C)      2011 Douglas Bates and Martin Maechler
+//
+// This file is part of RcppEigen.
+//
+// RcppEigen is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// RcppEigen is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with RcppEigen.  If not, see <http://www.gnu.org/licenses/>.
+
+// Yes, this really is a C++ source file in an include directory.  To
+// use the Cholmod support functions in RcppEigen you should create a
+// source file, say MyPackage/src/local_stubs.c that contains the
+// single line #include "RcppEigenStubs.cpp"
+
+#include <Rconfig.h>
+#include <Rinternals.h>
+#include <R_ext/Rdynload.h>
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+inline CHM_DN as_cholmod_dense(CHM_DN ans, SEXP x)
+{
+    static CHM_DN(*fun)(CHM_DN,SEXP) = NULL;
+    if(fun == NULL)
+	fun = (CHM_DN(*)(CHM_DN,SEXP))
+	    R_GetCCallable("Matrix", "as_cholmod_dense");
+    return fun(ans, x);
+}
+
+inline CHM_FR as_cholmod_factor(CHM_FR ans, SEXP x)
+{
+    static CHM_FR(*fun)(CHM_FR,SEXP) = NULL;
+    if(fun == NULL)
+	fun = (CHM_FR(*)(CHM_FR,SEXP))
+	    R_GetCCallable("Matrix", "as_cholmod_factor");
+    return fun(ans, x);
+}
+
+inline CHM_SP as_cholmod_sparse(CHM_SP ans, SEXP x, Rboolean check_Udiag, Rboolean sort_in_place)
+{
+    static CHM_SP(*fun)(CHM_SP,SEXP,Rboolean,Rboolean)= NULL;
+    if(fun == NULL)
+	fun = (CHM_SP(*)(CHM_SP,SEXP,Rboolean,Rboolean))
+	    R_GetCCallable("Matrix", "as_cholmod_sparse");
+    return fun(ans, x, check_Udiag, sort_in_place);
+}
+
+inline CHM_TR as_cholmod_triplet(CHM_TR ans, SEXP x, Rboolean check_Udiag)
+{
+    static CHM_TR(*fun)(CHM_TR,SEXP,Rboolean)= NULL;
+    if(fun == NULL)
+	fun = (CHM_TR(*)(CHM_TR,SEXP,Rboolean))
+	    R_GetCCallable("Matrix", "as_cholmod_triplet");
+    return fun(ans, x, check_Udiag);
+}
+
+inline SEXP Csparse_diagU2N(SEXP x)
+{
+    static SEXP(*fun)(SEXP) = NULL;
+    if(fun == NULL)
+	fun = (SEXP(*)(SEXP))
+	    R_GetCCallable("Matrix", "Csparse_diagU2N");
+    return fun(x);
+}
+
+inline SEXP
+M_chm_factor_to_SEXP(const_CHM_FR f, int dofree)
+{
+    static SEXP(*fun)(const_CHM_FR,int) = NULL;
+    if(fun == NULL)
+	fun = (SEXP(*)(const_CHM_FR,int))
+	    R_GetCCallable("Matrix", "chm_factor_to_SEXP");
+    return fun(f, dofree);
+}
+
+inline double
+M_chm_factor_ldetL2(const_CHM_FR f)
+{
+    static double(*fun)(const_CHM_FR) = NULL;
+    if(fun == NULL)
+	fun = (double(*)(const_CHM_FR))
+	    R_GetCCallable("Matrix", "chm_factor_ldetL2");
+    return fun(f);
+}
+
+inline CHM_FR
+M_chm_factor_update(CHM_FR f, const_CHM_SP A, double mult)
+{
+    static CHM_FR(*fun)(CHM_FR,const_CHM_SP,double) = NULL;
+    if(fun == NULL)
+	fun = (CHM_FR(*)(CHM_FR,const_CHM_SP,double))
+	    R_GetCCallable("Matrix", "chm_factor_update");
+    return fun(f, A, mult);
+}
+
+inline SEXP
+M_chm_sparse_to_SEXP(const_CHM_SP a, int dofree,
+		     int uploT, int Rkind, const char *diag, SEXP dn)
+{
+    static SEXP(*fun)(const_CHM_SP,int,int,int,const char*,SEXP) = NULL;
+    if(fun == NULL)
+	fun = (SEXP(*)(const_CHM_SP,int,int,int,const char*,SEXP))
+	    R_GetCCallable("Matrix", "chm_sparse_to_SEXP");
+    return fun(a, dofree, uploT, Rkind, diag, dn);
+}
+
+inline SEXP
+M_chm_triplet_to_SEXP(const CHM_TR a, int dofree,
+		      int uploT, int Rkind, const char *diag, SEXP dn)
+{
+    static SEXP(*fun)(const CHM_TR,int,int,int,const char*,SEXP) = NULL;
+    if(fun == NULL)
+	fun = (SEXP(*)(const CHM_TR,int,int,int,const char*,SEXP))
+	    R_GetCCallable("Matrix", "chm_triplet_to_SEXP");
+    return fun(a, dofree, uploT, Rkind, diag, dn);
+}
+
+inline CHM_SP
+cholmod_aat(const_CHM_SP A, int *fset, size_t fsize,
+	      int mode, CHM_CM Common)
+{
+    static CHM_SP(*fun)(const_CHM_SP,int*,size_t,
+			int,CHM_CM) = NULL;
+    if(fun == NULL)
+	fun = (CHM_SP(*)(const_CHM_SP,int*,size_t,
+			 int,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_aat");
+    return fun(A, fset, fsize, mode, Common);
+}
+
+inline int
+M_cholmod_band_inplace(CHM_SP A, int k1, int k2, int mode,
+		       CHM_CM Common)
+{
+    static int(*fun)(CHM_SP,int,int,int,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(CHM_SP,int,int,int,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_band_inplace");
+    return fun(A, k1, k2, mode, Common);
+}
+
+inline CHM_SP
+cholmod_add(const_CHM_SP A, const_CHM_SP B,
+	      double alpha[2], double beta[2], int values,
+	      int sorted, CHM_CM Common)
+{
+    static CHM_SP(*fun)(const_CHM_SP,const_CHM_SP,
+			double*,double*,int,int,
+			CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_SP(*)(const_CHM_SP,const_CHM_SP,
+			 double*,double*,int,int,
+			 CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_add");
+    return fun(A, B, alpha, beta, values, sorted, Common);
+}
+
+inline CHM_DN
+cholmod_allocate_dense(size_t nrow, size_t ncol, size_t d,
+			 int xtype, CHM_CM Common)
+{
+    static CHM_DN(*fun)(size_t,size_t,size_t,
+			int,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_DN(*)(size_t,size_t,size_t,
+			 int,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_allocate_dense");
+    return fun(nrow, ncol, d, xtype, Common);
+}
+
+inline CHM_SP
+cholmod_allocate_sparse(size_t nrow, size_t ncol, size_t nzmax,
+			  int sorted, int packed, int stype,
+			  int xtype, CHM_CM Common)
+{
+    static CHM_SP(*fun)(size_t,size_t,size_t,int,int,
+			int,int,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_SP(*)
+	       (size_t,size_t,size_t,int,int,int,int,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_allocate_sparse");
+    return fun(nrow,ncol,nzmax,sorted,packed,stype,xtype,Common);
+}
+
+inline CHM_TR
+cholmod_allocate_triplet(size_t nrow, size_t ncol, size_t nzmax,
+			   int stype, int xtype, CHM_CM Common)
+{
+    static CHM_TR(*fun)(size_t,size_t,size_t, int,int,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_TR(*)(size_t,size_t,size_t,int,int,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_allocate_triplet");
+    return fun(nrow,ncol,nzmax,stype,xtype,Common);
+}
+
+inline CHM_SP
+cholmod_triplet_to_sparse(const cholmod_triplet* T, int nzmax,
+			    CHM_CM Common)
+{
+    static CHM_SP(*fun)(const cholmod_triplet*,int,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_SP(*)(const cholmod_triplet*,int,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_triplet_to_sparse");
+    return fun(T, nzmax, Common);
+}
+
+inline CHM_TR
+cholmod_sparse_to_triplet(const_CHM_SP A, CHM_CM Common)
+{
+    static CHM_TR(*fun)(const_CHM_SP,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_TR(*)(const_CHM_SP,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_sparse_to_triplet");
+    return fun(A, Common);
+}
+
+inline CHM_DN
+cholmod_sparse_to_dense(const_CHM_SP A, CHM_CM Common)
+{
+    static CHM_DN(*fun)(const_CHM_SP,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_DN(*)(const_CHM_SP,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_sparse_to_dense");
+    return fun(A, Common);
+}
+
+inline CHM_FR
+cholmod_analyze(const_CHM_SP A, CHM_CM Common)
+{
+    static CHM_FR(*fun)(const_CHM_SP,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_FR(*)(const_CHM_SP,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_analyze");
+    return fun(A, Common);
+}
+
+inline CHM_FR
+cholmod_analyze_p(const_CHM_SP A, int *Perm, int *fset,
+		  size_t fsize, CHM_CM Common) {
+    static CHM_FR(*fun)(const_CHM_SP,int*,int*,size_t,
+			CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_FR(*)(const_CHM_SP,int*,int*,
+			 size_t,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_analyze_p");
+    return fun(A, Perm, fset, fsize, Common);
+}
+
+inline CHM_SP
+cholmod_copy(const_CHM_SP A, int stype,
+	       int mode, CHM_CM Common)
+{
+    static CHM_SP(*fun)(const_CHM_SP,int,int,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_SP(*)(const_CHM_SP,int,int,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_copy");
+    return fun(A, stype, mode, Common);
+}
+
+inline CHM_DN
+cholmod_copy_dense(const_CHM_DN  A, CHM_CM Common)
+{
+    static CHM_DN(*fun)(const_CHM_DN,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_DN(*)(const_CHM_DN,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_copy_dense");
+    return fun(A, Common);
+}
+
+inline CHM_FR
+cholmod_copy_factor(const_CHM_FR L, CHM_CM Common)
+{
+    static CHM_FR(*fun)(const_CHM_FR,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_FR(*)(const_CHM_FR,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_copy_factor");
+    return fun(L, Common);
+}
+
+inline int
+cholmod_change_factor(int to_xtype, int to_ll, int to_super, int to_packed,
+			int to_monotonic, CHM_FR L, CHM_CM Common)
+{
+    static int(*fun)(int,int,int,int,int,CHM_FR,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(int,int,int,int,int,CHM_FR,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_change_factor");
+    return fun(to_xtype, to_ll, to_super, to_packed, to_monotonic, L, Common);
+}
+
+inline CHM_SP
+cholmod_copy_sparse(const_CHM_SP A, CHM_CM Common)
+{
+    static CHM_SP(*fun)(const_CHM_SP,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_SP(*)(const_CHM_SP,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_copy_sparse");
+    return fun(A, Common);
+}
+
+inline CHM_SP
+cholmod_factor_to_sparse(const_CHM_FR L, CHM_CM Common)
+{
+    static CHM_SP(*fun)(const_CHM_FR,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_SP(*)(const_CHM_FR,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_factor_to_sparse");
+    return fun(L, Common);
+}
+
+inline CHM_SP
+cholmod_submatrix(const_CHM_SP A, int *rset, int rsize, int *cset,
+		    int csize, int values, int sorted, CHM_CM Common)
+{
+    static CHM_SP(*fun)(const_CHM_SP,int*,int,int*,int,
+			int,int,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_SP(*)(const_CHM_SP,int*,int,int*,
+			 int,int,int,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_submatrix");
+    return fun(A, rset, rsize, cset, csize, values, sorted, Common);
+}
+
+inline CHM_SP
+cholmod_dense_to_sparse(const_CHM_DN  X, int values, CHM_CM Common)
+{
+    static CHM_SP(*fun)(const_CHM_DN,int,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_SP(*)(const_CHM_DN,int,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_dense_to_sparse");
+    return fun(X, values, Common);
+}
+
+inline int
+cholmod_factorize(const_CHM_SP A, CHM_FR L, CHM_CM Common)
+{
+    static int(*fun)(const_CHM_SP,CHM_FR,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(const_CHM_SP,CHM_FR,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_factorize");
+    return fun(A, L, Common);
+}
+
+inline int
+cholmod_factorize_p(const_CHM_SP A, double *beta, int *fset,
+		      size_t fsize, CHM_FR L,
+		      CHM_CM Common)
+{
+    static int(*fun)(const_CHM_SP,double*,int*,size_t,
+		     CHM_FR,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(const_CHM_SP,double*,int*,size_t,
+		      CHM_FR,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_factorize_p");
+    return fun(A, beta, fset, fsize, L, Common);
+}
+
+inline int
+cholmod_finish(CHM_CM Common)
+{
+
+    static int(*fun)(CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_finish");
+    return fun(Common);
+}
+
+inline int
+cholmod_sort(CHM_SP A, CHM_CM Common)
+{
+    static int(*fun)(CHM_SP,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(CHM_SP,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_sort");
+    return fun(A, Common);
+}
+
+inline int
+cholmod_free_dense(CHM_DN  *A, CHM_CM Common)
+{
+    static int(*fun)(CHM_DN*,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(CHM_DN*,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_free_dense");
+    return fun(A, Common);
+}
+
+inline int
+cholmod_free_factor(CHM_FR *L, CHM_CM Common)
+{
+    static int(*fun)(CHM_FR*,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(CHM_FR*,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_free_factor");
+    return fun(L, Common);
+}
+
+inline int
+cholmod_free_sparse(CHM_SP *A, CHM_CM Common)
+{
+    static int(*fun)(CHM_SP*,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(CHM_SP*,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_free_sparse");
+    return fun(A, Common);
+}
+
+inline int
+cholmod_free_triplet(cholmod_triplet **T, CHM_CM Common)
+{
+    static int(*fun)(cholmod_triplet**,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(cholmod_triplet**,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_free_triplet");
+    return fun(T, Common);
+}
+
+inline long int
+cholmod_nnz(const_CHM_SP A, CHM_CM Common) {
+    static long(*fun)(const_CHM_SP,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (long(*)(const_CHM_SP,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_nnz");
+    return fun(A, Common);
+}
+
+inline int
+cholmod_sdmult(const_CHM_SP A, int transpose,
+		 const double *alpha, const double *beta,
+		 const_CHM_DN X, CHM_DN  Y,
+		 CHM_CM Common)
+{
+    static int(*fun)(const_CHM_SP,int,const double*,
+		     const double*,const_CHM_DN,
+		     CHM_DN,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(const_CHM_SP,int,const double*,
+		      const double*, const_CHM_DN,
+		      CHM_DN,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_sdmult");
+    return fun(A, transpose, alpha, beta, X, Y, Common);
+}
+
+inline CHM_SP
+cholmod_ssmult(const_CHM_SP A, const_CHM_SP B, int stype,
+	       int values, int sorted, CHM_CM Common) {
+    static CHM_SP(*fun)(const_CHM_SP,const_CHM_SP,
+			int,int,int,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_SP(*)(const_CHM_SP,const_CHM_SP,
+			 int,int,int,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_ssmult");
+    return fun(A, B, stype, values, sorted, Common);
+}
+
+inline CHM_DN
+cholmod_solve(int sys, const_CHM_FR L, const_CHM_DN B, CHM_CM Common) {
+    static CHM_DN(*fun)(int,const_CHM_FR,const_CHM_DN,
+			CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_DN(*)(int,const_CHM_FR,const_CHM_DN,
+			 CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_solve");
+    return fun(sys, L, B, Common);
+}
+
+inline CHM_SP
+cholmod_speye(size_t nrow, size_t ncol,
+		int xtype, CHM_CM Common)
+{
+    static CHM_SP(*fun)(size_t,size_t,int,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_SP(*)(size_t,size_t,int,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_speye");
+    return fun(nrow, ncol, xtype, Common);
+}
+
+inline CHM_SP
+cholmod_spsolve(int sys, const_CHM_FR L,
+		  const_CHM_SP B, CHM_CM Common)
+{
+    static CHM_SP(*fun)(int,const_CHM_FR,
+			const_CHM_SP, CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_SP(*)(int,const_CHM_FR,
+			 const_CHM_SP, CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_spsolve");
+    return fun(sys, L, B, Common);
+}
+
+inline int
+cholmod_defaults (CHM_CM Common)
+{
+    static int(*fun)(CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_defaults");
+    return fun(Common);
+}
+
+/* extern cholmod_common c; */
+
+inline void
+R_cholmod_error(int status, const char *file, int line, const char *message)
+{
+/* NB: keep in sync with R_cholmod_error(), ../../src/chm_common.c */
+
+    if(status < 0) {
+/* Note: Matrix itself uses CHM_set_common_env, CHM_store_common 
+ *   and CHM_restore_common to preserve settings through error calls.
+ *  Consider defining your own error handler, *and* possibly restoring
+ *  *your* version of the cholmod_common that *you* use.
+ */
+	Rf_error("Cholmod error '%s' at file:%s, line %d", message, file, line);
+    }
+    else
+	Rf_warning("Cholmod warning '%s' at file:%s, line %d",
+		message, file, line);
+}
+
+inline int
+cholmod_start(CHM_CM Common)
+{
+    int val;
+    static int(*fun)(CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_start");
+    val = fun(Common);
+/*-- NB: keep in sync with  R_cholmod_start() --> ../../src/chm_common.c */
+    /* do not allow CHOLMOD printing - currently */
+    Common->print_function = NULL;/* was  R_cholmod_printf; /.* Rprintf gives warning */
+/* Consider using your own error handler: */
+    Common->error_handler = R_cholmod_error;
+    return val;
+}
+
+inline CHM_SP
+cholmod_transpose(const_CHM_SP A, int values, CHM_CM Common)
+{
+    static CHM_SP(*fun)(const_CHM_SP,int,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_SP(*)(const_CHM_SP,int,CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_transpose");
+    return fun(A, values, Common);
+}
+
+inline CHM_SP
+cholmod_vertcat(const_CHM_SP A, const_CHM_SP B, int values, CHM_CM Common)
+{
+    static CHM_SP(*fun)(const_CHM_SP,const_CHM_SP,int,CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (CHM_SP(*)(const_CHM_SP,const_CHM_SP, int, CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_vertcat");
+    return fun(A, B, values, Common);
+}
+
+inline int
+cholmod_scale(const_CHM_DN S, int scale, CHM_SP A,
+		CHM_CM Common)
+{
+    static int(*fun)(const_CHM_DN,int,CHM_SP, CHM_CM) = NULL;
+    if (fun == NULL)
+	fun = (int(*)(const_CHM_DN,int,CHM_SP, CHM_CM))
+	    R_GetCCallable("Matrix", "cholmod_scale");
+    return fun(S, scale, A, Common);
+}
+
+#ifdef	__cplusplus
+}
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SparseQR
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SparseQR	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SparseQR	(revision 2476)
@@ -0,0 +1,33 @@
+#ifndef EIGEN_SPARSEQR_MODULE_H
+#define EIGEN_SPARSEQR_MODULE_H
+
+#include "SparseCore"
+#include "OrderingMethods"
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup SparseQR_Module SparseQR module
+  * \brief Provides QR decomposition for sparse matrices
+  * 
+  * This module provides a simplicial version of the left-looking Sparse QR decomposition. 
+  * The columns of the input matrix should be reordered to limit the fill-in during the 
+  * decomposition. Built-in methods (COLAMD, AMD) or external  methods (METIS) can be used to this end.
+  * See the \link OrderingMethods_Module OrderingMethods\endlink module for the list 
+  * of built-in and external ordering methods.
+  * 
+  * \code
+  * #include <Eigen/SparseQR>
+  * \endcode
+  * 
+  * 
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+
+#include "OrderingMethods"
+#include "src/SparseCore/SparseColEtree.h"
+#include "src/SparseQR/SparseQR.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/PaStiXSupport
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/PaStiXSupport	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/PaStiXSupport	(revision 2476)
@@ -0,0 +1,46 @@
+#ifndef EIGEN_PASTIXSUPPORT_MODULE_H
+#define EIGEN_PASTIXSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include <complex.h>
+extern "C" {
+#include <pastix_nompi.h>
+#include <pastix.h>
+}
+
+#ifdef complex
+#undef complex
+#endif
+
+/** \ingroup Support_modules
+  * \defgroup PaStiXSupport_Module PaStiXSupport module
+  * 
+  * This module provides an interface to the <a href="http://pastix.gforge.inria.fr/">PaSTiX</a> library.
+  * PaSTiX is a general \b supernodal, \b parallel and \b opensource sparse solver.
+  * It provides the two following main factorization classes:
+  * - class PastixLLT : a supernodal, parallel LLt Cholesky factorization.
+  * - class PastixLDLT: a supernodal, parallel LDLt Cholesky factorization.
+  * - class PastixLU : a supernodal, parallel LU factorization (optimized for a symmetric pattern).
+  * 
+  * \code
+  * #include <Eigen/PaStiXSupport>
+  * \endcode
+  *
+  * In order to use this module, the PaSTiX headers must be accessible from the include paths, and your binary must be linked to the PaSTiX library and its dependencies.
+  * The dependencies depend on how PaSTiX has been compiled.
+  * For a cmake based project, you can use our FindPaSTiX.cmake module to help you in this task.
+  *
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+
+#include "src/PaStiXSupport/PaStiXSupport.h"
+
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_PASTIXSUPPORT_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Eigen2Support
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Eigen2Support	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Eigen2Support	(revision 2476)
@@ -0,0 +1,95 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2SUPPORT_H
+#define EIGEN2SUPPORT_H
+
+#if (!defined(EIGEN2_SUPPORT)) || (!defined(EIGEN_CORE_H))
+#error Eigen2 support must be enabled by defining EIGEN2_SUPPORT before including any Eigen header
+#endif
+
+#ifndef EIGEN_NO_EIGEN2_DEPRECATED_WARNING
+
+#if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
+#warning "Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3. (Define EIGEN_NO_EIGEN2_DEPRECATED_WARNING to disable this warning)"
+#else
+#pragma message ("Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3. (Define EIGEN_NO_EIGEN2_DEPRECATED_WARNING to disable this warning)")
+#endif
+
+#endif // EIGEN_NO_EIGEN2_DEPRECATED_WARNING
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \ingroup Support_modules
+  * \defgroup Eigen2Support_Module Eigen2 support module
+  *
+  * \warning Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3.
+  *
+  * This module provides a couple of deprecated functions improving the compatibility with Eigen2.
+  * 
+  * To use it, define EIGEN2_SUPPORT before including any Eigen header
+  * \code
+  * #define EIGEN2_SUPPORT
+  * \endcode
+  *
+  */
+
+#include "src/Eigen2Support/Macros.h"
+#include "src/Eigen2Support/Memory.h"
+#include "src/Eigen2Support/Meta.h"
+#include "src/Eigen2Support/Lazy.h"
+#include "src/Eigen2Support/Cwise.h"
+#include "src/Eigen2Support/CwiseOperators.h"
+#include "src/Eigen2Support/TriangularSolver.h"
+#include "src/Eigen2Support/Block.h"
+#include "src/Eigen2Support/VectorBlock.h"
+#include "src/Eigen2Support/Minor.h"
+#include "src/Eigen2Support/MathFunctions.h"
+
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+// Eigen2 used to include iostream
+#include<iostream>
+
+#define EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \
+using Eigen::Matrix##SizeSuffix##TypeSuffix; \
+using Eigen::Vector##SizeSuffix##TypeSuffix; \
+using Eigen::RowVector##SizeSuffix##TypeSuffix;
+
+#define EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(TypeSuffix) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 2) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 3) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 4) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, X) \
+
+#define EIGEN_USING_MATRIX_TYPEDEFS \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(i) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(f) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(d) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(cf) \
+EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(cd)
+
+#define USING_PART_OF_NAMESPACE_EIGEN \
+EIGEN_USING_MATRIX_TYPEDEFS \
+using Eigen::Matrix; \
+using Eigen::MatrixBase; \
+using Eigen::ei_random; \
+using Eigen::ei_real; \
+using Eigen::ei_imag; \
+using Eigen::ei_conj; \
+using Eigen::ei_abs; \
+using Eigen::ei_abs2; \
+using Eigen::ei_sqrt; \
+using Eigen::ei_exp; \
+using Eigen::ei_log; \
+using Eigen::ei_sin; \
+using Eigen::ei_cos;
+
+#endif // EIGEN2SUPPORT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/LeastSquares
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/LeastSquares	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/LeastSquares	(revision 2476)
@@ -0,0 +1,32 @@
+#ifndef EIGEN_REGRESSION_MODULE_H
+#define EIGEN_REGRESSION_MODULE_H
+
+#ifndef EIGEN2_SUPPORT
+#error LeastSquares is only available in Eigen2 support mode (define EIGEN2_SUPPORT)
+#endif
+
+// exclude from normal eigen3-only documentation
+#ifdef EIGEN2_SUPPORT
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include "Eigenvalues"
+#include "Geometry"
+
+/** \defgroup LeastSquares_Module LeastSquares module
+  * This module provides linear regression and related features.
+  *
+  * \code
+  * #include <Eigen/LeastSquares>
+  * \endcode
+  */
+
+#include "src/Eigen2Support/LeastSquares.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN2_SUPPORT
+
+#endif // EIGEN_REGRESSION_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/MetisSupport
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/MetisSupport	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/MetisSupport	(revision 2476)
@@ -0,0 +1,28 @@
+#ifndef EIGEN_METISSUPPORT_MODULE_H
+#define EIGEN_METISSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+extern "C" {
+#include <metis.h>
+}
+
+
+/** \ingroup Support_modules
+  * \defgroup MetisSupport_Module MetisSupport module
+  *
+  * \code
+  * #include <Eigen/MetisSupport>
+  * \endcode
+  * This module defines an interface to the METIS reordering package (http://glaros.dtc.umn.edu/gkhome/views/metis). 
+  * It can be used just as any other built-in method as explained in \link OrderingMethods_Module here. \endlink
+  */
+
+
+#include "src/MetisSupport/MetisSupport.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_METISSUPPORT_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/LU
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/LU	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/LU	(revision 2476)
@@ -0,0 +1,41 @@
+#ifndef EIGEN_LU_MODULE_H
+#define EIGEN_LU_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup LU_Module LU module
+  * This module includes %LU decomposition and related notions such as matrix inversion and determinant.
+  * This module defines the following MatrixBase methods:
+  *  - MatrixBase::inverse()
+  *  - MatrixBase::determinant()
+  *
+  * \code
+  * #include <Eigen/LU>
+  * \endcode
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/Kernel.h"
+#include "src/misc/Image.h"
+#include "src/LU/FullPivLU.h"
+#include "src/LU/PartialPivLU.h"
+#ifdef EIGEN_USE_LAPACKE
+#include "src/LU/PartialPivLU_MKL.h"
+#endif
+#include "src/LU/Determinant.h"
+#include "src/LU/Inverse.h"
+
+#if defined EIGEN_VECTORIZE_SSE
+  #include "src/LU/arch/Inverse_SSE.h"
+#endif
+
+#ifdef EIGEN2_SUPPORT
+  #include "src/Eigen2Support/LU.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_LU_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/UmfPackSupport
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/UmfPackSupport	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/UmfPackSupport	(revision 2476)
@@ -0,0 +1,36 @@
+#ifndef EIGEN_UMFPACKSUPPORT_MODULE_H
+#define EIGEN_UMFPACKSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+extern "C" {
+#include <umfpack.h>
+}
+
+/** \ingroup Support_modules
+  * \defgroup UmfPackSupport_Module UmfPackSupport module
+  *
+  * This module provides an interface to the UmfPack library which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
+  * It provides the following factorization class:
+  * - class UmfPackLU: a multifrontal sequential LU factorization.
+  *
+  * \code
+  * #include <Eigen/UmfPackSupport>
+  * \endcode
+  *
+  * In order to use this module, the umfpack headers must be accessible from the include paths, and your binary must be linked to the umfpack library and its dependencies.
+  * The dependencies depend on how umfpack has been compiled.
+  * For a cmake based project, you can use our FindUmfPack.cmake module to help you in this task.
+  *
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+
+#include "src/UmfPackSupport/UmfPackSupport.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_UMFPACKSUPPORT_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Jacobi
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Jacobi	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Jacobi	(revision 2476)
@@ -0,0 +1,26 @@
+#ifndef EIGEN_JACOBI_MODULE_H
+#define EIGEN_JACOBI_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup Jacobi_Module Jacobi module
+  * This module provides Jacobi and Givens rotations.
+  *
+  * \code
+  * #include <Eigen/Jacobi>
+  * \endcode
+  *
+  * In addition to listed classes, it defines the two following MatrixBase methods to apply a Jacobi or Givens rotation:
+  *  - MatrixBase::applyOnTheLeft()
+  *  - MatrixBase::applyOnTheRight().
+  */
+
+#include "src/Jacobi/Jacobi.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_JACOBI_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/PaStiXSupport/PaStiXSupport.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/PaStiXSupport/PaStiXSupport.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/PaStiXSupport/PaStiXSupport.h	(revision 2476)
@@ -0,0 +1,729 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PASTIXSUPPORT_H
+#define EIGEN_PASTIXSUPPORT_H
+
+#if defined(DCOMPLEX)
+  #define PASTIX_COMPLEX  COMPLEX
+  #define PASTIX_DCOMPLEX DCOMPLEX
+#else
+  #define PASTIX_COMPLEX  std::complex<float>
+  #define PASTIX_DCOMPLEX std::complex<double>
+#endif
+
+namespace Eigen { 
+
+/** \ingroup PaStiXSupport_Module
+  * \brief Interface to the PaStix solver
+  * 
+  * This class is used to solve the linear systems A.X = B via the PaStix library. 
+  * The matrix can be either real or complex, symmetric or not.
+  *
+  * \sa TutorialSparseDirectSolvers
+  */
+template<typename _MatrixType, bool IsStrSym = false> class PastixLU;
+template<typename _MatrixType, int Options> class PastixLLT;
+template<typename _MatrixType, int Options> class PastixLDLT;
+
+namespace internal
+{
+    
+  template<class Pastix> struct pastix_traits;
+
+  template<typename _MatrixType>
+  struct pastix_traits< PastixLU<_MatrixType> >
+  {
+    typedef _MatrixType MatrixType;
+    typedef typename _MatrixType::Scalar Scalar;
+    typedef typename _MatrixType::RealScalar RealScalar;
+    typedef typename _MatrixType::Index Index;
+  };
+
+  template<typename _MatrixType, int Options>
+  struct pastix_traits< PastixLLT<_MatrixType,Options> >
+  {
+    typedef _MatrixType MatrixType;
+    typedef typename _MatrixType::Scalar Scalar;
+    typedef typename _MatrixType::RealScalar RealScalar;
+    typedef typename _MatrixType::Index Index;
+  };
+
+  template<typename _MatrixType, int Options>
+  struct pastix_traits< PastixLDLT<_MatrixType,Options> >
+  {
+    typedef _MatrixType MatrixType;
+    typedef typename _MatrixType::Scalar Scalar;
+    typedef typename _MatrixType::RealScalar RealScalar;
+    typedef typename _MatrixType::Index Index;
+  };
+  
+  void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, int n, int *ptr, int *idx, float *vals, int *perm, int * invp, float *x, int nbrhs, int *iparm, double *dparm)
+  {
+    if (n == 0) { ptr = NULL; idx = NULL; vals = NULL; }
+    if (nbrhs == 0) {x = NULL; nbrhs=1;}
+    s_pastix(pastix_data, pastix_comm, n, ptr, idx, vals, perm, invp, x, nbrhs, iparm, dparm); 
+  }
+  
+  void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, int n, int *ptr, int *idx, double *vals, int *perm, int * invp, double *x, int nbrhs, int *iparm, double *dparm)
+  {
+    if (n == 0) { ptr = NULL; idx = NULL; vals = NULL; }
+    if (nbrhs == 0) {x = NULL; nbrhs=1;}
+    d_pastix(pastix_data, pastix_comm, n, ptr, idx, vals, perm, invp, x, nbrhs, iparm, dparm); 
+  }
+  
+  void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, int n, int *ptr, int *idx, std::complex<float> *vals, int *perm, int * invp, std::complex<float> *x, int nbrhs, int *iparm, double *dparm)
+  {
+    if (n == 0) { ptr = NULL; idx = NULL; vals = NULL; }
+    if (nbrhs == 0) {x = NULL; nbrhs=1;}
+    c_pastix(pastix_data, pastix_comm, n, ptr, idx, reinterpret_cast<PASTIX_COMPLEX*>(vals), perm, invp, reinterpret_cast<PASTIX_COMPLEX*>(x), nbrhs, iparm, dparm);
+  }
+  
+  void eigen_pastix(pastix_data_t **pastix_data, int pastix_comm, int n, int *ptr, int *idx, std::complex<double> *vals, int *perm, int * invp, std::complex<double> *x, int nbrhs, int *iparm, double *dparm)
+  {
+    if (n == 0) { ptr = NULL; idx = NULL; vals = NULL; }
+    if (nbrhs == 0) {x = NULL; nbrhs=1;}
+    z_pastix(pastix_data, pastix_comm, n, ptr, idx, reinterpret_cast<PASTIX_DCOMPLEX*>(vals), perm, invp, reinterpret_cast<PASTIX_DCOMPLEX*>(x), nbrhs, iparm, dparm);
+  }
+
+  // Convert the matrix  to Fortran-style Numbering
+  template <typename MatrixType>
+  void c_to_fortran_numbering (MatrixType& mat)
+  {
+    if ( !(mat.outerIndexPtr()[0]) ) 
+    { 
+      int i;
+      for(i = 0; i <= mat.rows(); ++i)
+        ++mat.outerIndexPtr()[i];
+      for(i = 0; i < mat.nonZeros(); ++i)
+        ++mat.innerIndexPtr()[i];
+    }
+  }
+  
+  // Convert to C-style Numbering
+  template <typename MatrixType>
+  void fortran_to_c_numbering (MatrixType& mat)
+  {
+    // Check the Numbering
+    if ( mat.outerIndexPtr()[0] == 1 ) 
+    { // Convert to C-style numbering
+      int i;
+      for(i = 0; i <= mat.rows(); ++i)
+        --mat.outerIndexPtr()[i];
+      for(i = 0; i < mat.nonZeros(); ++i)
+        --mat.innerIndexPtr()[i];
+    }
+  }
+}
+
+// This is the base class to interface with PaStiX functions. 
+// Users should not used this class directly. 
+template <class Derived>
+class PastixBase : internal::noncopyable
+{
+  public:
+    typedef typename internal::pastix_traits<Derived>::MatrixType _MatrixType;
+    typedef _MatrixType MatrixType;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Scalar,Dynamic,1> Vector;
+    typedef SparseMatrix<Scalar, ColMajor> ColSpMatrix;
+    
+  public:
+    
+    PastixBase() : m_initisOk(false), m_analysisIsOk(false), m_factorizationIsOk(false), m_isInitialized(false), m_pastixdata(0), m_size(0)
+    {
+      init();
+    }
+    
+    ~PastixBase() 
+    {
+      clean();
+    }
+
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<PastixBase, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "Pastix solver is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "PastixBase::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<PastixBase, Rhs>(*this, b.derived());
+    }
+    
+    template<typename Rhs,typename Dest>
+    bool _solve (const MatrixBase<Rhs> &b, MatrixBase<Dest> &x) const;
+    
+    Derived& derived()
+    {
+      return *static_cast<Derived*>(this);
+    }
+    const Derived& derived() const
+    {
+      return *static_cast<const Derived*>(this);
+    }
+
+    /** Returns a reference to the integer vector IPARM of PaStiX parameters
+      * to modify the default parameters. 
+      * The statistics related to the different phases of factorization and solve are saved here as well
+      * \sa analyzePattern() factorize()
+      */
+    Array<Index,IPARM_SIZE,1>& iparm()
+    {
+      return m_iparm; 
+    }
+    
+    /** Return a reference to a particular index parameter of the IPARM vector 
+     * \sa iparm()
+     */
+    
+    int& iparm(int idxparam)
+    {
+      return m_iparm(idxparam);
+    }
+    
+     /** Returns a reference to the double vector DPARM of PaStiX parameters 
+      * The statistics related to the different phases of factorization and solve are saved here as well
+      * \sa analyzePattern() factorize()
+      */
+    Array<RealScalar,IPARM_SIZE,1>& dparm()
+    {
+      return m_dparm; 
+    }
+    
+    
+    /** Return a reference to a particular index parameter of the DPARM vector 
+     * \sa dparm()
+     */
+    double& dparm(int idxparam)
+    {
+      return m_dparm(idxparam);
+    }
+    
+    inline Index cols() const { return m_size; }
+    inline Index rows() const { return m_size; }
+    
+     /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the PaStiX reports a problem
+      *          \c InvalidInput if the input matrix is invalid
+      *
+      * \sa iparm()          
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<PastixBase, Rhs>
+    solve(const SparseMatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "Pastix LU, LLT or LDLT is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "PastixBase::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::sparse_solve_retval<PastixBase, Rhs>(*this, b.derived());
+    }
+    
+  protected:
+
+    // Initialize the Pastix data structure, check the matrix
+    void init(); 
+    
+    // Compute the ordering and the symbolic factorization
+    void analyzePattern(ColSpMatrix& mat);
+    
+    // Compute the numerical factorization
+    void factorize(ColSpMatrix& mat);
+    
+    // Free all the data allocated by Pastix
+    void clean()
+    {
+      eigen_assert(m_initisOk && "The Pastix structure should be allocated first"); 
+      m_iparm(IPARM_START_TASK) = API_TASK_CLEAN;
+      m_iparm(IPARM_END_TASK) = API_TASK_CLEAN;
+      internal::eigen_pastix(&m_pastixdata, MPI_COMM_WORLD, 0, 0, 0, (Scalar*)0,
+                             m_perm.data(), m_invp.data(), 0, 0, m_iparm.data(), m_dparm.data());
+    }
+    
+    void compute(ColSpMatrix& mat);
+    
+    int m_initisOk; 
+    int m_analysisIsOk;
+    int m_factorizationIsOk;
+    bool m_isInitialized;
+    mutable ComputationInfo m_info; 
+    mutable pastix_data_t *m_pastixdata; // Data structure for pastix
+    mutable int m_comm; // The MPI communicator identifier
+    mutable Matrix<int,IPARM_SIZE,1> m_iparm; // integer vector for the input parameters
+    mutable Matrix<double,DPARM_SIZE,1> m_dparm; // Scalar vector for the input parameters
+    mutable Matrix<Index,Dynamic,1> m_perm;  // Permutation vector
+    mutable Matrix<Index,Dynamic,1> m_invp;  // Inverse permutation vector
+    mutable int m_size; // Size of the matrix 
+}; 
+
+ /** Initialize the PaStiX data structure. 
+   *A first call to this function fills iparm and dparm with the default PaStiX parameters
+   * \sa iparm() dparm()
+   */
+template <class Derived>
+void PastixBase<Derived>::init()
+{
+  m_size = 0; 
+  m_iparm.setZero(IPARM_SIZE);
+  m_dparm.setZero(DPARM_SIZE);
+  
+  m_iparm(IPARM_MODIFY_PARAMETER) = API_NO;
+  pastix(&m_pastixdata, MPI_COMM_WORLD,
+         0, 0, 0, 0,
+         0, 0, 0, 1, m_iparm.data(), m_dparm.data());
+  
+  m_iparm[IPARM_MATRIX_VERIFICATION] = API_NO;
+  m_iparm[IPARM_VERBOSE]             = 2;
+  m_iparm[IPARM_ORDERING]            = API_ORDER_SCOTCH;
+  m_iparm[IPARM_INCOMPLETE]          = API_NO;
+  m_iparm[IPARM_OOC_LIMIT]           = 2000;
+  m_iparm[IPARM_RHS_MAKING]          = API_RHS_B;
+  m_iparm(IPARM_MATRIX_VERIFICATION) = API_NO;
+  
+  m_iparm(IPARM_START_TASK) = API_TASK_INIT;
+  m_iparm(IPARM_END_TASK) = API_TASK_INIT;
+  internal::eigen_pastix(&m_pastixdata, MPI_COMM_WORLD, 0, 0, 0, (Scalar*)0,
+                         0, 0, 0, 0, m_iparm.data(), m_dparm.data());
+  
+  // Check the returned error
+  if(m_iparm(IPARM_ERROR_NUMBER)) {
+    m_info = InvalidInput;
+    m_initisOk = false;
+  }
+  else { 
+    m_info = Success;
+    m_initisOk = true;
+  }
+}
+
+template <class Derived>
+void PastixBase<Derived>::compute(ColSpMatrix& mat)
+{
+  eigen_assert(mat.rows() == mat.cols() && "The input matrix should be squared");
+  
+  analyzePattern(mat);  
+  factorize(mat);
+  
+  m_iparm(IPARM_MATRIX_VERIFICATION) = API_NO;
+  m_isInitialized = m_factorizationIsOk;
+}
+
+
+template <class Derived>
+void PastixBase<Derived>::analyzePattern(ColSpMatrix& mat)
+{                         
+  eigen_assert(m_initisOk && "The initialization of PaSTiX failed");
+  
+  // clean previous calls
+  if(m_size>0)
+    clean();
+  
+  m_size = mat.rows();
+  m_perm.resize(m_size);
+  m_invp.resize(m_size);
+  
+  m_iparm(IPARM_START_TASK) = API_TASK_ORDERING;
+  m_iparm(IPARM_END_TASK) = API_TASK_ANALYSE;
+  internal::eigen_pastix(&m_pastixdata, MPI_COMM_WORLD, m_size, mat.outerIndexPtr(), mat.innerIndexPtr(),
+               mat.valuePtr(), m_perm.data(), m_invp.data(), 0, 0, m_iparm.data(), m_dparm.data());
+  
+  // Check the returned error
+  if(m_iparm(IPARM_ERROR_NUMBER))
+  {
+    m_info = NumericalIssue;
+    m_analysisIsOk = false;
+  }
+  else
+  { 
+    m_info = Success;
+    m_analysisIsOk = true;
+  }
+}
+
+template <class Derived>
+void PastixBase<Derived>::factorize(ColSpMatrix& mat)
+{
+//   if(&m_cpyMat != &mat) m_cpyMat = mat;
+  eigen_assert(m_analysisIsOk && "The analysis phase should be called before the factorization phase");
+  m_iparm(IPARM_START_TASK) = API_TASK_NUMFACT;
+  m_iparm(IPARM_END_TASK) = API_TASK_NUMFACT;
+  m_size = mat.rows();
+  
+  internal::eigen_pastix(&m_pastixdata, MPI_COMM_WORLD, m_size, mat.outerIndexPtr(), mat.innerIndexPtr(),
+               mat.valuePtr(), m_perm.data(), m_invp.data(), 0, 0, m_iparm.data(), m_dparm.data());
+  
+  // Check the returned error
+  if(m_iparm(IPARM_ERROR_NUMBER))
+  {
+    m_info = NumericalIssue;
+    m_factorizationIsOk = false;
+    m_isInitialized = false;
+  }
+  else
+  {
+    m_info = Success;
+    m_factorizationIsOk = true;
+    m_isInitialized = true;
+  }
+}
+
+/* Solve the system */
+template<typename Base>
+template<typename Rhs,typename Dest>
+bool PastixBase<Base>::_solve (const MatrixBase<Rhs> &b, MatrixBase<Dest> &x) const
+{
+  eigen_assert(m_isInitialized && "The matrix should be factorized first");
+  EIGEN_STATIC_ASSERT((Dest::Flags&RowMajorBit)==0,
+                     THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
+  int rhs = 1;
+  
+  x = b; /* on return, x is overwritten by the computed solution */
+  
+  for (int i = 0; i < b.cols(); i++){
+    m_iparm[IPARM_START_TASK]          = API_TASK_SOLVE;
+    m_iparm[IPARM_END_TASK]            = API_TASK_REFINE;
+  
+    internal::eigen_pastix(&m_pastixdata, MPI_COMM_WORLD, x.rows(), 0, 0, 0,
+                           m_perm.data(), m_invp.data(), &x(0, i), rhs, m_iparm.data(), m_dparm.data());
+  }
+  
+  // Check the returned error
+  m_info = m_iparm(IPARM_ERROR_NUMBER)==0 ? Success : NumericalIssue;
+  
+  return m_iparm(IPARM_ERROR_NUMBER)==0;
+}
+
+/** \ingroup PaStiXSupport_Module
+  * \class PastixLU
+  * \brief Sparse direct LU solver based on PaStiX library
+  * 
+  * This class is used to solve the linear systems A.X = B with a supernodal LU 
+  * factorization in the PaStiX library. The matrix A should be squared and nonsingular
+  * PaStiX requires that the matrix A has a symmetric structural pattern. 
+  * This interface can symmetrize the input matrix otherwise. 
+  * The vectors or matrices X and B can be either dense or sparse.
+  * 
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam IsStrSym Indicates if the input matrix has a symmetric pattern, default is false
+  * NOTE : Note that if the analysis and factorization phase are called separately, 
+  * the input matrix will be symmetrized at each call, hence it is advised to 
+  * symmetrize the matrix in a end-user program and set \p IsStrSym to true
+  * 
+  * \sa \ref TutorialSparseDirectSolvers
+  * 
+  */
+template<typename _MatrixType, bool IsStrSym>
+class PastixLU : public PastixBase< PastixLU<_MatrixType> >
+{
+  public:
+    typedef _MatrixType MatrixType;
+    typedef PastixBase<PastixLU<MatrixType> > Base;
+    typedef typename Base::ColSpMatrix ColSpMatrix;
+    typedef typename MatrixType::Index Index;
+    
+  public:
+    PastixLU() : Base()
+    {
+      init();
+    }
+    
+    PastixLU(const MatrixType& matrix):Base()
+    {
+      init();
+      compute(matrix);
+    }
+    /** Compute the LU supernodal factorization of \p matrix. 
+      * iparm and dparm can be used to tune the PaStiX parameters. 
+      * see the PaStiX user's manual
+      * \sa analyzePattern() factorize()
+      */
+    void compute (const MatrixType& matrix)
+    {
+      m_structureIsUptodate = false;
+      ColSpMatrix temp;
+      grabMatrix(matrix, temp);
+      Base::compute(temp);
+    }
+    /** Compute the LU symbolic factorization of \p matrix using its sparsity pattern. 
+      * Several ordering methods can be used at this step. See the PaStiX user's manual. 
+      * The result of this operation can be used with successive matrices having the same pattern as \p matrix
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& matrix)
+    {
+      m_structureIsUptodate = false;
+      ColSpMatrix temp;
+      grabMatrix(matrix, temp);
+      Base::analyzePattern(temp);
+    }
+
+    /** Compute the LU supernodal factorization of \p matrix
+      * WARNING The matrix \p matrix should have the same structural pattern 
+      * as the same used in the analysis phase.
+      * \sa analyzePattern()
+      */ 
+    void factorize(const MatrixType& matrix)
+    {
+      ColSpMatrix temp;
+      grabMatrix(matrix, temp);
+      Base::factorize(temp);
+    }
+  protected:
+    
+    void init()
+    {
+      m_structureIsUptodate = false;
+      m_iparm(IPARM_SYM) = API_SYM_NO;
+      m_iparm(IPARM_FACTORIZATION) = API_FACT_LU;
+    }
+    
+    void grabMatrix(const MatrixType& matrix, ColSpMatrix& out)
+    {
+      if(IsStrSym)
+        out = matrix;
+      else
+      {
+        if(!m_structureIsUptodate)
+        {
+          // update the transposed structure
+          m_transposedStructure = matrix.transpose();
+          
+          // Set the elements of the matrix to zero 
+          for (Index j=0; j<m_transposedStructure.outerSize(); ++j) 
+            for(typename ColSpMatrix::InnerIterator it(m_transposedStructure, j); it; ++it)
+              it.valueRef() = 0.0;
+
+          m_structureIsUptodate = true;
+        }
+        
+        out = m_transposedStructure + matrix;
+      }
+      internal::c_to_fortran_numbering(out);
+    }
+    
+    using Base::m_iparm;
+    using Base::m_dparm;
+    
+    ColSpMatrix m_transposedStructure;
+    bool m_structureIsUptodate;
+};
+
+/** \ingroup PaStiXSupport_Module
+  * \class PastixLLT
+  * \brief A sparse direct supernodal Cholesky (LLT) factorization and solver based on the PaStiX library
+  * 
+  * This class is used to solve the linear systems A.X = B via a LL^T supernodal Cholesky factorization
+  * available in the PaStiX library. The matrix A should be symmetric and positive definite
+  * WARNING Selfadjoint complex matrices are not supported in the current version of PaStiX
+  * The vectors or matrices X and B can be either dense or sparse
+  * 
+  * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam UpLo The part of the matrix to use : Lower or Upper. The default is Lower as required by PaStiX
+  * 
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename _MatrixType, int _UpLo>
+class PastixLLT : public PastixBase< PastixLLT<_MatrixType, _UpLo> >
+{
+  public:
+    typedef _MatrixType MatrixType;
+    typedef PastixBase<PastixLLT<MatrixType, _UpLo> > Base;
+    typedef typename Base::ColSpMatrix ColSpMatrix;
+    
+  public:
+    enum { UpLo = _UpLo };
+    PastixLLT() : Base()
+    {
+      init();
+    }
+    
+    PastixLLT(const MatrixType& matrix):Base()
+    {
+      init();
+      compute(matrix);
+    }
+
+    /** Compute the L factor of the LL^T supernodal factorization of \p matrix 
+      * \sa analyzePattern() factorize()
+      */
+    void compute (const MatrixType& matrix)
+    {
+      ColSpMatrix temp;
+      grabMatrix(matrix, temp);
+      Base::compute(temp);
+    }
+
+     /** Compute the LL^T symbolic factorization of \p matrix using its sparsity pattern
+      * The result of this operation can be used with successive matrices having the same pattern as \p matrix
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& matrix)
+    {
+      ColSpMatrix temp;
+      grabMatrix(matrix, temp);
+      Base::analyzePattern(temp);
+    }
+      /** Compute the LL^T supernodal numerical factorization of \p matrix 
+        * \sa analyzePattern()
+        */
+    void factorize(const MatrixType& matrix)
+    {
+      ColSpMatrix temp;
+      grabMatrix(matrix, temp);
+      Base::factorize(temp);
+    }
+  protected:
+    using Base::m_iparm;
+    
+    void init()
+    {
+      m_iparm(IPARM_SYM) = API_SYM_YES;
+      m_iparm(IPARM_FACTORIZATION) = API_FACT_LLT;
+    }
+    
+    void grabMatrix(const MatrixType& matrix, ColSpMatrix& out)
+    {
+      // Pastix supports only lower, column-major matrices 
+      out.template selfadjointView<Lower>() = matrix.template selfadjointView<UpLo>();
+      internal::c_to_fortran_numbering(out);
+    }
+};
+
+/** \ingroup PaStiXSupport_Module
+  * \class PastixLDLT
+  * \brief A sparse direct supernodal Cholesky (LLT) factorization and solver based on the PaStiX library
+  * 
+  * This class is used to solve the linear systems A.X = B via a LDL^T supernodal Cholesky factorization
+  * available in the PaStiX library. The matrix A should be symmetric and positive definite
+  * WARNING Selfadjoint complex matrices are not supported in the current version of PaStiX
+  * The vectors or matrices X and B can be either dense or sparse
+  * 
+  * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam UpLo The part of the matrix to use : Lower or Upper. The default is Lower as required by PaStiX
+  * 
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename _MatrixType, int _UpLo>
+class PastixLDLT : public PastixBase< PastixLDLT<_MatrixType, _UpLo> >
+{
+  public:
+    typedef _MatrixType MatrixType;
+    typedef PastixBase<PastixLDLT<MatrixType, _UpLo> > Base; 
+    typedef typename Base::ColSpMatrix ColSpMatrix;
+    
+  public:
+    enum { UpLo = _UpLo };
+    PastixLDLT():Base()
+    {
+      init();
+    }
+    
+    PastixLDLT(const MatrixType& matrix):Base()
+    {
+      init();
+      compute(matrix);
+    }
+
+    /** Compute the L and D factors of the LDL^T factorization of \p matrix 
+      * \sa analyzePattern() factorize()
+      */
+    void compute (const MatrixType& matrix)
+    {
+      ColSpMatrix temp;
+      grabMatrix(matrix, temp);
+      Base::compute(temp);
+    }
+
+    /** Compute the LDL^T symbolic factorization of \p matrix using its sparsity pattern
+      * The result of this operation can be used with successive matrices having the same pattern as \p matrix
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& matrix)
+    { 
+      ColSpMatrix temp;
+      grabMatrix(matrix, temp);
+      Base::analyzePattern(temp);
+    }
+    /** Compute the LDL^T supernodal numerical factorization of \p matrix 
+      * 
+      */
+    void factorize(const MatrixType& matrix)
+    {
+      ColSpMatrix temp;
+      grabMatrix(matrix, temp);
+      Base::factorize(temp);
+    }
+
+  protected:
+    using Base::m_iparm;
+    
+    void init()
+    {
+      m_iparm(IPARM_SYM) = API_SYM_YES;
+      m_iparm(IPARM_FACTORIZATION) = API_FACT_LDLT;
+    }
+    
+    void grabMatrix(const MatrixType& matrix, ColSpMatrix& out)
+    {
+      // Pastix supports only lower, column-major matrices 
+      out.template selfadjointView<Lower>() = matrix.template selfadjointView<UpLo>();
+      internal::c_to_fortran_numbering(out);
+    }
+};
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<PastixBase<_MatrixType>, Rhs>
+  : solve_retval_base<PastixBase<_MatrixType>, Rhs>
+{
+  typedef PastixBase<_MatrixType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+template<typename _MatrixType, typename Rhs>
+struct sparse_solve_retval<PastixBase<_MatrixType>, Rhs>
+  : sparse_solve_retval_base<PastixBase<_MatrixType>, Rhs>
+{
+  typedef PastixBase<_MatrixType> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h	(revision 2476)
@@ -0,0 +1,258 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CONJUGATE_GRADIENT_H
+#define EIGEN_CONJUGATE_GRADIENT_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal Low-level conjugate gradient algorithm
+  * \param mat The matrix A
+  * \param rhs The right hand side vector b
+  * \param x On input and initial solution, on output the computed solution.
+  * \param precond A preconditioner being able to efficiently solve for an
+  *                approximation of Ax=b (regardless of b)
+  * \param iters On input the max number of iteration, on output the number of performed iterations.
+  * \param tol_error On input the tolerance error, on output an estimation of the relative error.
+  */
+template<typename MatrixType, typename Rhs, typename Dest, typename Preconditioner>
+EIGEN_DONT_INLINE
+void conjugate_gradient(const MatrixType& mat, const Rhs& rhs, Dest& x,
+                        const Preconditioner& precond, int& iters,
+                        typename Dest::RealScalar& tol_error)
+{
+  using std::sqrt;
+  using std::abs;
+  typedef typename Dest::RealScalar RealScalar;
+  typedef typename Dest::Scalar Scalar;
+  typedef Matrix<Scalar,Dynamic,1> VectorType;
+  
+  RealScalar tol = tol_error;
+  int maxIters = iters;
+  
+  int n = mat.cols();
+
+  VectorType residual = rhs - mat * x; //initial residual
+
+  RealScalar rhsNorm2 = rhs.squaredNorm();
+  if(rhsNorm2 == 0) 
+  {
+    x.setZero();
+    iters = 0;
+    tol_error = 0;
+    return;
+  }
+  RealScalar threshold = tol*tol*rhsNorm2;
+  RealScalar residualNorm2 = residual.squaredNorm();
+  if (residualNorm2 < threshold)
+  {
+    iters = 0;
+    tol_error = sqrt(residualNorm2 / rhsNorm2);
+    return;
+  }
+  
+  VectorType p(n);
+  p = precond.solve(residual);      //initial search direction
+
+  VectorType z(n), tmp(n);
+  RealScalar absNew = numext::real(residual.dot(p));  // the square of the absolute value of r scaled by invM
+  int i = 0;
+  while(i < maxIters)
+  {
+    tmp.noalias() = mat * p;              // the bottleneck of the algorithm
+
+    Scalar alpha = absNew / p.dot(tmp);   // the amount we travel on dir
+    x += alpha * p;                       // update solution
+    residual -= alpha * tmp;              // update residue
+    
+    residualNorm2 = residual.squaredNorm();
+    if(residualNorm2 < threshold)
+      break;
+    
+    z = precond.solve(residual);          // approximately solve for "A z = residual"
+
+    RealScalar absOld = absNew;
+    absNew = numext::real(residual.dot(z));     // update the absolute value of r
+    RealScalar beta = absNew / absOld;            // calculate the Gram-Schmidt value used to create the new search direction
+    p = z + beta * p;                             // update search direction
+    i++;
+  }
+  tol_error = sqrt(residualNorm2 / rhsNorm2);
+  iters = i;
+}
+
+}
+
+template< typename _MatrixType, int _UpLo=Lower,
+          typename _Preconditioner = DiagonalPreconditioner<typename _MatrixType::Scalar> >
+class ConjugateGradient;
+
+namespace internal {
+
+template< typename _MatrixType, int _UpLo, typename _Preconditioner>
+struct traits<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner> >
+{
+  typedef _MatrixType MatrixType;
+  typedef _Preconditioner Preconditioner;
+};
+
+}
+
+/** \ingroup IterativeLinearSolvers_Module
+  * \brief A conjugate gradient solver for sparse self-adjoint problems
+  *
+  * This class allows to solve for A.x = b sparse linear problems using a conjugate gradient algorithm.
+  * The sparse matrix A must be selfadjoint. The vectors x and b can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the matrix A, can be a dense or a sparse matrix.
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower,
+  *               Upper, or Lower|Upper in which the full matrix entries will be considered. Default is Lower.
+  * \tparam _Preconditioner the type of the preconditioner. Default is DiagonalPreconditioner
+  *
+  * The maximal number of iterations and tolerance value can be controlled via the setMaxIterations()
+  * and setTolerance() methods. The defaults are the size of the problem for the maximal number of iterations
+  * and NumTraits<Scalar>::epsilon() for the tolerance.
+  * 
+  * This class can be used as the direct solver classes. Here is a typical usage example:
+  * \code
+  * int n = 10000;
+  * VectorXd x(n), b(n);
+  * SparseMatrix<double> A(n,n);
+  * // fill A and b
+  * ConjugateGradient<SparseMatrix<double> > cg;
+  * cg.compute(A);
+  * x = cg.solve(b);
+  * std::cout << "#iterations:     " << cg.iterations() << std::endl;
+  * std::cout << "estimated error: " << cg.error()      << std::endl;
+  * // update b, and solve again
+  * x = cg.solve(b);
+  * \endcode
+  * 
+  * By default the iterations start with x=0 as an initial guess of the solution.
+  * One can control the start using the solveWithGuess() method.
+  * 
+  * ConjugateGradient can also be used in a matrix-free context, see the following \link MatrixfreeSolverExample example \endlink.
+  *
+  * \sa class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
+  */
+template< typename _MatrixType, int _UpLo, typename _Preconditioner>
+class ConjugateGradient : public IterativeSolverBase<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner> >
+{
+  typedef IterativeSolverBase<ConjugateGradient> Base;
+  using Base::mp_matrix;
+  using Base::m_error;
+  using Base::m_iterations;
+  using Base::m_info;
+  using Base::m_isInitialized;
+public:
+  typedef _MatrixType MatrixType;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::RealScalar RealScalar;
+  typedef _Preconditioner Preconditioner;
+
+  enum {
+    UpLo = _UpLo
+  };
+
+public:
+
+  /** Default constructor. */
+  ConjugateGradient() : Base() {}
+
+  /** Initialize the solver with matrix \a A for further \c Ax=b solving.
+    * 
+    * This constructor is a shortcut for the default constructor followed
+    * by a call to compute().
+    * 
+    * \warning this class stores a reference to the matrix A as well as some
+    * precomputed values that depend on it. Therefore, if \a A is changed
+    * this class becomes invalid. Call compute() to update it with the new
+    * matrix A, or modify a copy of A.
+    */
+  template<typename MatrixDerived>
+  explicit ConjugateGradient(const EigenBase<MatrixDerived>& A) : Base(A.derived()) {}
+
+  ~ConjugateGradient() {}
+  
+  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A
+    * \a x0 as an initial solution.
+    *
+    * \sa compute()
+    */
+  template<typename Rhs,typename Guess>
+  inline const internal::solve_retval_with_guess<ConjugateGradient, Rhs, Guess>
+  solveWithGuess(const MatrixBase<Rhs>& b, const Guess& x0) const
+  {
+    eigen_assert(m_isInitialized && "ConjugateGradient is not initialized.");
+    eigen_assert(Base::rows()==b.rows()
+              && "ConjugateGradient::solve(): invalid number of rows of the right hand side matrix b");
+    return internal::solve_retval_with_guess
+            <ConjugateGradient, Rhs, Guess>(*this, b.derived(), x0);
+  }
+
+  /** \internal */
+  template<typename Rhs,typename Dest>
+  void _solveWithGuess(const Rhs& b, Dest& x) const
+  {
+    typedef typename internal::conditional<UpLo==(Lower|Upper),
+                                           const MatrixType&,
+                                           SparseSelfAdjointView<const MatrixType, UpLo>
+                                          >::type MatrixWrapperType;
+    m_iterations = Base::maxIterations();
+    m_error = Base::m_tolerance;
+
+    for(int j=0; j<b.cols(); ++j)
+    {
+      m_iterations = Base::maxIterations();
+      m_error = Base::m_tolerance;
+
+      typename Dest::ColXpr xj(x,j);
+      internal::conjugate_gradient(MatrixWrapperType(*mp_matrix), b.col(j), xj, Base::m_preconditioner, m_iterations, m_error);
+    }
+
+    m_isInitialized = true;
+    m_info = m_error <= Base::m_tolerance ? Success : NoConvergence;
+  }
+  
+  /** \internal */
+  template<typename Rhs,typename Dest>
+  void _solve(const Rhs& b, Dest& x) const
+  {
+    x.setZero();
+    _solveWithGuess(b,x);
+  }
+
+protected:
+
+};
+
+
+namespace internal {
+
+template<typename _MatrixType, int _UpLo, typename _Preconditioner, typename Rhs>
+struct solve_retval<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner>, Rhs>
+  : solve_retval_base<ConjugateGradient<_MatrixType,_UpLo,_Preconditioner>, Rhs>
+{
+  typedef ConjugateGradient<_MatrixType,_UpLo,_Preconditioner> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_CONJUGATE_GRADIENT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h	(revision 2476)
@@ -0,0 +1,263 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BICGSTAB_H
+#define EIGEN_BICGSTAB_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal Low-level bi conjugate gradient stabilized algorithm
+  * \param mat The matrix A
+  * \param rhs The right hand side vector b
+  * \param x On input and initial solution, on output the computed solution.
+  * \param precond A preconditioner being able to efficiently solve for an
+  *                approximation of Ax=b (regardless of b)
+  * \param iters On input the max number of iteration, on output the number of performed iterations.
+  * \param tol_error On input the tolerance error, on output an estimation of the relative error.
+  * \return false in the case of numerical issue, for example a break down of BiCGSTAB. 
+  */
+template<typename MatrixType, typename Rhs, typename Dest, typename Preconditioner>
+bool bicgstab(const MatrixType& mat, const Rhs& rhs, Dest& x,
+              const Preconditioner& precond, int& iters,
+              typename Dest::RealScalar& tol_error)
+{
+  using std::sqrt;
+  using std::abs;
+  typedef typename Dest::RealScalar RealScalar;
+  typedef typename Dest::Scalar Scalar;
+  typedef Matrix<Scalar,Dynamic,1> VectorType;
+  RealScalar tol = tol_error;
+  int maxIters = iters;
+
+  int n = mat.cols();
+  VectorType r  = rhs - mat * x;
+  VectorType r0 = r;
+  
+  RealScalar r0_sqnorm = r0.squaredNorm();
+  RealScalar rhs_sqnorm = rhs.squaredNorm();
+  if(rhs_sqnorm == 0)
+  {
+    x.setZero();
+    return true;
+  }
+  Scalar rho    = 1;
+  Scalar alpha  = 1;
+  Scalar w      = 1;
+  
+  VectorType v = VectorType::Zero(n), p = VectorType::Zero(n);
+  VectorType y(n),  z(n);
+  VectorType kt(n), ks(n);
+
+  VectorType s(n), t(n);
+
+  RealScalar tol2 = tol*tol;
+  RealScalar eps2 = NumTraits<Scalar>::epsilon()*NumTraits<Scalar>::epsilon();
+  int i = 0;
+  int restarts = 0;
+
+  while ( r.squaredNorm()/rhs_sqnorm > tol2 && i<maxIters )
+  {
+    Scalar rho_old = rho;
+
+    rho = r0.dot(r);
+    if (abs(rho) < eps2*r0_sqnorm)
+    {
+      // The new residual vector became too orthogonal to the arbitrarily choosen direction r0
+      // Let's restart with a new r0:
+      r0 = r;
+      rho = r0_sqnorm = r.squaredNorm();
+      if(restarts++ == 0)
+        i = 0;
+    }
+    Scalar beta = (rho/rho_old) * (alpha / w);
+    p = r + beta * (p - w * v);
+    
+    y = precond.solve(p);
+    
+    v.noalias() = mat * y;
+
+    alpha = rho / r0.dot(v);
+    s = r - alpha * v;
+
+    z = precond.solve(s);
+    t.noalias() = mat * z;
+
+    RealScalar tmp = t.squaredNorm();
+    if(tmp>RealScalar(0))
+      w = t.dot(s) / tmp;
+    else
+      w = Scalar(0);
+    x += alpha * y + w * z;
+    r = s - w * t;
+    ++i;
+  }
+  tol_error = sqrt(r.squaredNorm()/rhs_sqnorm);
+  iters = i;
+  return true; 
+}
+
+}
+
+template< typename _MatrixType,
+          typename _Preconditioner = DiagonalPreconditioner<typename _MatrixType::Scalar> >
+class BiCGSTAB;
+
+namespace internal {
+
+template< typename _MatrixType, typename _Preconditioner>
+struct traits<BiCGSTAB<_MatrixType,_Preconditioner> >
+{
+  typedef _MatrixType MatrixType;
+  typedef _Preconditioner Preconditioner;
+};
+
+}
+
+/** \ingroup IterativeLinearSolvers_Module
+  * \brief A bi conjugate gradient stabilized solver for sparse square problems
+  *
+  * This class allows to solve for A.x = b sparse linear problems using a bi conjugate gradient
+  * stabilized algorithm. The vectors x and b can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, can be a dense or a sparse matrix.
+  * \tparam _Preconditioner the type of the preconditioner. Default is DiagonalPreconditioner
+  *
+  * The maximal number of iterations and tolerance value can be controlled via the setMaxIterations()
+  * and setTolerance() methods. The defaults are the size of the problem for the maximal number of iterations
+  * and NumTraits<Scalar>::epsilon() for the tolerance.
+  * 
+  * This class can be used as the direct solver classes. Here is a typical usage example:
+  * \code
+  * int n = 10000;
+  * VectorXd x(n), b(n);
+  * SparseMatrix<double> A(n,n);
+  * // fill A and b
+  * BiCGSTAB<SparseMatrix<double> > solver;
+  * solver.compute(A);
+  * x = solver.solve(b);
+  * std::cout << "#iterations:     " << solver.iterations() << std::endl;
+  * std::cout << "estimated error: " << solver.error()      << std::endl;
+  * // update b, and solve again
+  * x = solver.solve(b);
+  * \endcode
+  * 
+  * By default the iterations start with x=0 as an initial guess of the solution.
+  * One can control the start using the solveWithGuess() method.
+  * 
+  * \sa class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
+  */
+template< typename _MatrixType, typename _Preconditioner>
+class BiCGSTAB : public IterativeSolverBase<BiCGSTAB<_MatrixType,_Preconditioner> >
+{
+  typedef IterativeSolverBase<BiCGSTAB> Base;
+  using Base::mp_matrix;
+  using Base::m_error;
+  using Base::m_iterations;
+  using Base::m_info;
+  using Base::m_isInitialized;
+public:
+  typedef _MatrixType MatrixType;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::RealScalar RealScalar;
+  typedef _Preconditioner Preconditioner;
+
+public:
+
+  /** Default constructor. */
+  BiCGSTAB() : Base() {}
+
+  /** Initialize the solver with matrix \a A for further \c Ax=b solving.
+    * 
+    * This constructor is a shortcut for the default constructor followed
+    * by a call to compute().
+    * 
+    * \warning this class stores a reference to the matrix A as well as some
+    * precomputed values that depend on it. Therefore, if \a A is changed
+    * this class becomes invalid. Call compute() to update it with the new
+    * matrix A, or modify a copy of A.
+    */
+  template<typename MatrixDerived>
+  explicit BiCGSTAB(const EigenBase<MatrixDerived>& A) : Base(A.derived()) {}
+
+  ~BiCGSTAB() {}
+  
+  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A
+    * \a x0 as an initial solution.
+    *
+    * \sa compute()
+    */
+  template<typename Rhs,typename Guess>
+  inline const internal::solve_retval_with_guess<BiCGSTAB, Rhs, Guess>
+  solveWithGuess(const MatrixBase<Rhs>& b, const Guess& x0) const
+  {
+    eigen_assert(m_isInitialized && "BiCGSTAB is not initialized.");
+    eigen_assert(Base::rows()==b.rows()
+              && "BiCGSTAB::solve(): invalid number of rows of the right hand side matrix b");
+    return internal::solve_retval_with_guess
+            <BiCGSTAB, Rhs, Guess>(*this, b.derived(), x0);
+  }
+  
+  /** \internal */
+  template<typename Rhs,typename Dest>
+  void _solveWithGuess(const Rhs& b, Dest& x) const
+  {    
+    bool failed = false;
+    for(int j=0; j<b.cols(); ++j)
+    {
+      m_iterations = Base::maxIterations();
+      m_error = Base::m_tolerance;
+      
+      typename Dest::ColXpr xj(x,j);
+      if(!internal::bicgstab(*mp_matrix, b.col(j), xj, Base::m_preconditioner, m_iterations, m_error))
+        failed = true;
+    }
+    m_info = failed ? NumericalIssue
+           : m_error <= Base::m_tolerance ? Success
+           : NoConvergence;
+    m_isInitialized = true;
+  }
+
+  /** \internal */
+  template<typename Rhs,typename Dest>
+  void _solve(const Rhs& b, Dest& x) const
+  {
+//     x.setZero();
+  x = b;
+    _solveWithGuess(b,x);
+  }
+
+protected:
+
+};
+
+
+namespace internal {
+
+  template<typename _MatrixType, typename _Preconditioner, typename Rhs>
+struct solve_retval<BiCGSTAB<_MatrixType, _Preconditioner>, Rhs>
+  : solve_retval_base<BiCGSTAB<_MatrixType, _Preconditioner>, Rhs>
+{
+  typedef BiCGSTAB<_MatrixType, _Preconditioner> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BICGSTAB_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h	(revision 2476)
@@ -0,0 +1,282 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ITERATIVE_SOLVER_BASE_H
+#define EIGEN_ITERATIVE_SOLVER_BASE_H
+
+namespace Eigen { 
+
+/** \ingroup IterativeLinearSolvers_Module
+  * \brief Base class for linear iterative solvers
+  *
+  * \sa class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
+  */
+template< typename Derived>
+class IterativeSolverBase : internal::noncopyable
+{
+public:
+  typedef typename internal::traits<Derived>::MatrixType MatrixType;
+  typedef typename internal::traits<Derived>::Preconditioner Preconditioner;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::RealScalar RealScalar;
+
+public:
+
+  Derived& derived() { return *static_cast<Derived*>(this); }
+  const Derived& derived() const { return *static_cast<const Derived*>(this); }
+
+  /** Default constructor. */
+  IterativeSolverBase()
+    : mp_matrix(0)
+  {
+    init();
+  }
+
+  /** Initialize the solver with matrix \a A for further \c Ax=b solving.
+    * 
+    * This constructor is a shortcut for the default constructor followed
+    * by a call to compute().
+    * 
+    * \warning this class stores a reference to the matrix A as well as some
+    * precomputed values that depend on it. Therefore, if \a A is changed
+    * this class becomes invalid. Call compute() to update it with the new
+    * matrix A, or modify a copy of A.
+    */
+  template<typename InputDerived>
+  IterativeSolverBase(const EigenBase<InputDerived>& A)
+  {
+    init();
+    compute(A.derived());
+  }
+
+  ~IterativeSolverBase() {}
+  
+  /** Initializes the iterative solver for the sparcity pattern of the matrix \a A for further solving \c Ax=b problems.
+    *
+    * Currently, this function mostly call analyzePattern on the preconditioner. In the future
+    * we might, for instance, implement column reodering for faster matrix vector products.
+    */
+  template<typename InputDerived>
+  Derived& analyzePattern(const EigenBase<InputDerived>& A)
+  {
+    grabInput(A.derived());
+    m_preconditioner.analyzePattern(*mp_matrix);
+    m_isInitialized = true;
+    m_analysisIsOk = true;
+    m_info = Success;
+    return derived();
+  }
+  
+  /** Initializes the iterative solver with the numerical values of the matrix \a A for further solving \c Ax=b problems.
+    *
+    * Currently, this function mostly call factorize on the preconditioner.
+    *
+    * \warning this class stores a reference to the matrix A as well as some
+    * precomputed values that depend on it. Therefore, if \a A is changed
+    * this class becomes invalid. Call compute() to update it with the new
+    * matrix A, or modify a copy of A.
+    */
+  template<typename InputDerived>
+  Derived& factorize(const EigenBase<InputDerived>& A)
+  {
+    grabInput(A.derived());
+    eigen_assert(m_analysisIsOk && "You must first call analyzePattern()"); 
+    m_preconditioner.factorize(*mp_matrix);
+    m_factorizationIsOk = true;
+    m_info = Success;
+    return derived();
+  }
+
+  /** Initializes the iterative solver with the matrix \a A for further solving \c Ax=b problems.
+    *
+    * Currently, this function mostly initialized/compute the preconditioner. In the future
+    * we might, for instance, implement column reodering for faster matrix vector products.
+    *
+    * \warning this class stores a reference to the matrix A as well as some
+    * precomputed values that depend on it. Therefore, if \a A is changed
+    * this class becomes invalid. Call compute() to update it with the new
+    * matrix A, or modify a copy of A.
+    */
+  template<typename InputDerived>
+  Derived& compute(const EigenBase<InputDerived>& A)
+  {
+    grabInput(A.derived());
+    m_preconditioner.compute(*mp_matrix);
+    m_isInitialized = true;
+    m_analysisIsOk = true;
+    m_factorizationIsOk = true;
+    m_info = Success;
+    return derived();
+  }
+
+  /** \internal */
+  Index rows() const { return mp_matrix ? mp_matrix->rows() : 0; }
+  /** \internal */
+  Index cols() const { return mp_matrix ? mp_matrix->cols() : 0; }
+
+  /** \returns the tolerance threshold used by the stopping criteria */
+  RealScalar tolerance() const { return m_tolerance; }
+  
+  /** Sets the tolerance threshold used by the stopping criteria */
+  Derived& setTolerance(const RealScalar& tolerance)
+  {
+    m_tolerance = tolerance;
+    return derived();
+  }
+
+  /** \returns a read-write reference to the preconditioner for custom configuration. */
+  Preconditioner& preconditioner() { return m_preconditioner; }
+  
+  /** \returns a read-only reference to the preconditioner. */
+  const Preconditioner& preconditioner() const { return m_preconditioner; }
+
+  /** \returns the max number of iterations */
+  int maxIterations() const
+  {
+    return (mp_matrix && m_maxIterations<0) ? mp_matrix->cols() : m_maxIterations;
+  }
+  
+  /** Sets the max number of iterations */
+  Derived& setMaxIterations(int maxIters)
+  {
+    m_maxIterations = maxIters;
+    return derived();
+  }
+
+  /** \returns the number of iterations performed during the last solve */
+  int iterations() const
+  {
+    eigen_assert(m_isInitialized && "ConjugateGradient is not initialized.");
+    return m_iterations;
+  }
+
+  /** \returns the tolerance error reached during the last solve */
+  RealScalar error() const
+  {
+    eigen_assert(m_isInitialized && "ConjugateGradient is not initialized.");
+    return m_error;
+  }
+
+  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+    *
+    * \sa compute()
+    */
+  template<typename Rhs> inline const internal::solve_retval<Derived, Rhs>
+  solve(const MatrixBase<Rhs>& b) const
+  {
+    eigen_assert(m_isInitialized && "IterativeSolverBase is not initialized.");
+    eigen_assert(rows()==b.rows()
+              && "IterativeSolverBase::solve(): invalid number of rows of the right hand side matrix b");
+    return internal::solve_retval<Derived, Rhs>(derived(), b.derived());
+  }
+  
+  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+    *
+    * \sa compute()
+    */
+  template<typename Rhs>
+  inline const internal::sparse_solve_retval<IterativeSolverBase, Rhs>
+  solve(const SparseMatrixBase<Rhs>& b) const
+  {
+    eigen_assert(m_isInitialized && "IterativeSolverBase is not initialized.");
+    eigen_assert(rows()==b.rows()
+              && "IterativeSolverBase::solve(): invalid number of rows of the right hand side matrix b");
+    return internal::sparse_solve_retval<IterativeSolverBase, Rhs>(*this, b.derived());
+  }
+
+  /** \returns Success if the iterations converged, and NoConvergence otherwise. */
+  ComputationInfo info() const
+  {
+    eigen_assert(m_isInitialized && "IterativeSolverBase is not initialized.");
+    return m_info;
+  }
+  
+  /** \internal */
+  template<typename Rhs, typename DestScalar, int DestOptions, typename DestIndex>
+  void _solve_sparse(const Rhs& b, SparseMatrix<DestScalar,DestOptions,DestIndex> &dest) const
+  {
+    eigen_assert(rows()==b.rows());
+    
+    int rhsCols = b.cols();
+    int size = b.rows();
+    Eigen::Matrix<DestScalar,Dynamic,1> tb(size);
+    Eigen::Matrix<DestScalar,Dynamic,1> tx(size);
+    for(int k=0; k<rhsCols; ++k)
+    {
+      tb = b.col(k);
+      tx = derived().solve(tb);
+      dest.col(k) = tx.sparseView(0);
+    }
+  }
+
+protected:
+
+  template<typename InputDerived>
+  void grabInput(const EigenBase<InputDerived>& A)
+  {
+    // we const cast to prevent the creation of a MatrixType temporary by the compiler.
+    grabInput_impl(A.const_cast_derived());
+  }
+
+  template<typename InputDerived>
+  void grabInput_impl(const EigenBase<InputDerived>& A)
+  {
+    m_copyMatrix = A;
+    mp_matrix = &m_copyMatrix;
+  }
+
+  void grabInput_impl(MatrixType& A)
+  {
+    if(MatrixType::RowsAtCompileTime==Dynamic && MatrixType::ColsAtCompileTime==Dynamic)
+      m_copyMatrix.resize(0,0);
+    mp_matrix = &A;
+  }
+
+  void init()
+  {
+    m_isInitialized = false;
+    m_analysisIsOk = false;
+    m_factorizationIsOk = false;
+    m_maxIterations = -1;
+    m_tolerance = NumTraits<Scalar>::epsilon();
+  }
+  MatrixType m_copyMatrix;
+  const MatrixType* mp_matrix;
+  Preconditioner m_preconditioner;
+
+  int m_maxIterations;
+  RealScalar m_tolerance;
+  
+  mutable RealScalar m_error;
+  mutable int m_iterations;
+  mutable ComputationInfo m_info;
+  mutable bool m_isInitialized, m_analysisIsOk, m_factorizationIsOk;
+};
+
+namespace internal {
+ 
+template<typename Derived, typename Rhs>
+struct sparse_solve_retval<IterativeSolverBase<Derived>, Rhs>
+  : sparse_solve_retval_base<IterativeSolverBase<Derived>, Rhs>
+{
+  typedef IterativeSolverBase<Derived> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec().derived()._solve_sparse(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_ITERATIVE_SOLVER_BASE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h	(revision 2476)
@@ -0,0 +1,478 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_INCOMPLETE_LUT_H
+#define EIGEN_INCOMPLETE_LUT_H
+
+
+namespace Eigen { 
+
+namespace internal {
+    
+/** \internal
+  * Compute a quick-sort split of a vector 
+  * On output, the vector row is permuted such that its elements satisfy
+  * abs(row(i)) >= abs(row(ncut)) if i<ncut
+  * abs(row(i)) <= abs(row(ncut)) if i>ncut 
+  * \param row The vector of values
+  * \param ind The array of index for the elements in @p row
+  * \param ncut  The number of largest elements to keep
+  **/ 
+template <typename VectorV, typename VectorI, typename Index>
+Index QuickSplit(VectorV &row, VectorI &ind, Index ncut)
+{
+  typedef typename VectorV::RealScalar RealScalar;
+  using std::swap;
+  using std::abs;
+  Index mid;
+  Index n = row.size(); /* length of the vector */
+  Index first, last ;
+  
+  ncut--; /* to fit the zero-based indices */
+  first = 0; 
+  last = n-1; 
+  if (ncut < first || ncut > last ) return 0;
+  
+  do {
+    mid = first; 
+    RealScalar abskey = abs(row(mid)); 
+    for (Index j = first + 1; j <= last; j++) {
+      if ( abs(row(j)) > abskey) {
+        ++mid;
+        swap(row(mid), row(j));
+        swap(ind(mid), ind(j));
+      }
+    }
+    /* Interchange for the pivot element */
+    swap(row(mid), row(first));
+    swap(ind(mid), ind(first));
+    
+    if (mid > ncut) last = mid - 1;
+    else if (mid < ncut ) first = mid + 1; 
+  } while (mid != ncut );
+  
+  return 0; /* mid is equal to ncut */ 
+}
+
+}// end namespace internal
+
+/** \ingroup IterativeLinearSolvers_Module
+  * \class IncompleteLUT
+  * \brief Incomplete LU factorization with dual-threshold strategy
+  *
+  * During the numerical factorization, two dropping rules are used :
+  *  1) any element whose magnitude is less than some tolerance is dropped.
+  *    This tolerance is obtained by multiplying the input tolerance @p droptol 
+  *    by the average magnitude of all the original elements in the current row.
+  *  2) After the elimination of the row, only the @p fill largest elements in 
+  *    the L part and the @p fill largest elements in the U part are kept 
+  *    (in addition to the diagonal element ). Note that @p fill is computed from 
+  *    the input parameter @p fillfactor which is used the ratio to control the fill_in 
+  *    relatively to the initial number of nonzero elements.
+  * 
+  * The two extreme cases are when @p droptol=0 (to keep all the @p fill*2 largest elements)
+  * and when @p fill=n/2 with @p droptol being different to zero. 
+  * 
+  * References : Yousef Saad, ILUT: A dual threshold incomplete LU factorization, 
+  *              Numerical Linear Algebra with Applications, 1(4), pp 387-402, 1994.
+  * 
+  * NOTE : The following implementation is derived from the ILUT implementation
+  * in the SPARSKIT package, Copyright (C) 2005, the Regents of the University of Minnesota 
+  *  released under the terms of the GNU LGPL: 
+  *    http://www-users.cs.umn.edu/~saad/software/SPARSKIT/README
+  * However, Yousef Saad gave us permission to relicense his ILUT code to MPL2.
+  * See the Eigen mailing list archive, thread: ILUT, date: July 8, 2012:
+  *   http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2012/07/msg00064.html
+  * alternatively, on GMANE:
+  *   http://comments.gmane.org/gmane.comp.lib.eigen/3302
+  */
+template <typename _Scalar>
+class IncompleteLUT : internal::noncopyable
+{
+    typedef _Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef Matrix<Scalar,Dynamic,1> Vector;
+    typedef SparseMatrix<Scalar,RowMajor> FactorType;
+    typedef SparseMatrix<Scalar,ColMajor> PermutType;
+    typedef typename FactorType::Index Index;
+
+  public:
+    typedef Matrix<Scalar,Dynamic,Dynamic> MatrixType;
+    
+    IncompleteLUT()
+      : m_droptol(NumTraits<Scalar>::dummy_precision()), m_fillfactor(10),
+        m_analysisIsOk(false), m_factorizationIsOk(false), m_isInitialized(false)
+    {}
+    
+    template<typename MatrixType>
+    IncompleteLUT(const MatrixType& mat, const RealScalar& droptol=NumTraits<Scalar>::dummy_precision(), int fillfactor = 10)
+      : m_droptol(droptol),m_fillfactor(fillfactor),
+        m_analysisIsOk(false),m_factorizationIsOk(false),m_isInitialized(false)
+    {
+      eigen_assert(fillfactor != 0);
+      compute(mat); 
+    }
+    
+    Index rows() const { return m_lu.rows(); }
+    
+    Index cols() const { return m_lu.cols(); }
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "IncompleteLUT is not initialized.");
+      return m_info;
+    }
+    
+    template<typename MatrixType>
+    void analyzePattern(const MatrixType& amat);
+    
+    template<typename MatrixType>
+    void factorize(const MatrixType& amat);
+    
+    /**
+      * Compute an incomplete LU factorization with dual threshold on the matrix mat
+      * No pivoting is done in this version
+      * 
+      **/
+    template<typename MatrixType>
+    IncompleteLUT<Scalar>& compute(const MatrixType& amat)
+    {
+      analyzePattern(amat); 
+      factorize(amat);
+      return *this;
+    }
+
+    void setDroptol(const RealScalar& droptol); 
+    void setFillfactor(int fillfactor); 
+    
+    template<typename Rhs, typename Dest>
+    void _solve(const Rhs& b, Dest& x) const
+    {
+      x = m_Pinv * b;
+      x = m_lu.template triangularView<UnitLower>().solve(x);
+      x = m_lu.template triangularView<Upper>().solve(x);
+      x = m_P * x; 
+    }
+
+    template<typename Rhs> inline const internal::solve_retval<IncompleteLUT, Rhs>
+     solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "IncompleteLUT is not initialized.");
+      eigen_assert(cols()==b.rows()
+                && "IncompleteLUT::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<IncompleteLUT, Rhs>(*this, b.derived());
+    }
+
+protected:
+
+    /** keeps off-diagonal entries; drops diagonal entries */
+    struct keep_diag {
+      inline bool operator() (const Index& row, const Index& col, const Scalar&) const
+      {
+        return row!=col;
+      }
+    };
+
+protected:
+
+    FactorType m_lu;
+    RealScalar m_droptol;
+    int m_fillfactor;
+    bool m_analysisIsOk;
+    bool m_factorizationIsOk;
+    bool m_isInitialized;
+    ComputationInfo m_info;
+    PermutationMatrix<Dynamic,Dynamic,Index> m_P;     // Fill-reducing permutation
+    PermutationMatrix<Dynamic,Dynamic,Index> m_Pinv;  // Inverse permutation
+};
+
+/**
+ * Set control parameter droptol
+ *  \param droptol   Drop any element whose magnitude is less than this tolerance 
+ **/ 
+template<typename Scalar>
+void IncompleteLUT<Scalar>::setDroptol(const RealScalar& droptol)
+{
+  this->m_droptol = droptol;   
+}
+
+/**
+ * Set control parameter fillfactor
+ * \param fillfactor  This is used to compute the  number @p fill_in of largest elements to keep on each row. 
+ **/ 
+template<typename Scalar>
+void IncompleteLUT<Scalar>::setFillfactor(int fillfactor)
+{
+  this->m_fillfactor = fillfactor;   
+}
+
+template <typename Scalar>
+template<typename _MatrixType>
+void IncompleteLUT<Scalar>::analyzePattern(const _MatrixType& amat)
+{
+  // Compute the Fill-reducing permutation
+  // Since ILUT does not perform any numerical pivoting,
+  // it is highly preferable to keep the diagonal through symmetric permutations.
+#ifndef EIGEN_MPL2_ONLY
+  // To this end, let's symmetrize the pattern and perform AMD on it.
+  SparseMatrix<Scalar,ColMajor, Index> mat1 = amat;
+  SparseMatrix<Scalar,ColMajor, Index> mat2 = amat.transpose();
+  // FIXME for a matrix with nearly symmetric pattern, mat2+mat1 is the appropriate choice.
+  //       on the other hand for a really non-symmetric pattern, mat2*mat1 should be prefered...
+  SparseMatrix<Scalar,ColMajor, Index> AtA = mat2 + mat1;
+  AMDOrdering<Index> ordering;
+  ordering(AtA,m_P);
+  m_Pinv  = m_P.inverse(); // cache the inverse permutation
+#else
+  // If AMD is not available, (MPL2-only), then let's use the slower COLAMD routine.
+  SparseMatrix<Scalar,ColMajor, Index> mat1 = amat;
+  COLAMDOrdering<Index> ordering;
+  ordering(mat1,m_Pinv);
+  m_P = m_Pinv.inverse();
+#endif
+
+  m_analysisIsOk = true;
+  m_factorizationIsOk = false;
+  m_isInitialized = false;
+}
+
+template <typename Scalar>
+template<typename _MatrixType>
+void IncompleteLUT<Scalar>::factorize(const _MatrixType& amat)
+{
+  using std::sqrt;
+  using std::swap;
+  using std::abs;
+
+  eigen_assert((amat.rows() == amat.cols()) && "The factorization should be done on a square matrix");
+  Index n = amat.cols();  // Size of the matrix
+  m_lu.resize(n,n);
+  // Declare Working vectors and variables
+  Vector u(n) ;     // real values of the row -- maximum size is n --
+  VectorXi ju(n);   // column position of the values in u -- maximum size  is n
+  VectorXi jr(n);   // Indicate the position of the nonzero elements in the vector u -- A zero location is indicated by -1
+
+  // Apply the fill-reducing permutation
+  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+  SparseMatrix<Scalar,RowMajor, Index> mat;
+  mat = amat.twistedBy(m_Pinv);
+
+  // Initialization
+  jr.fill(-1);
+  ju.fill(0);
+  u.fill(0);
+
+  // number of largest elements to keep in each row:
+  Index fill_in =   static_cast<Index> (amat.nonZeros()*m_fillfactor)/n+1;
+  if (fill_in > n) fill_in = n;
+
+  // number of largest nonzero elements to keep in the L and the U part of the current row:
+  Index nnzL = fill_in/2;
+  Index nnzU = nnzL;
+  m_lu.reserve(n * (nnzL + nnzU + 1));
+
+  // global loop over the rows of the sparse matrix
+  for (Index ii = 0; ii < n; ii++)
+  {
+    // 1 - copy the lower and the upper part of the row i of mat in the working vector u
+
+    Index sizeu = 1; // number of nonzero elements in the upper part of the current row
+    Index sizel = 0; // number of nonzero elements in the lower part of the current row
+    ju(ii)    = ii;
+    u(ii)     = 0;
+    jr(ii)    = ii;
+    RealScalar rownorm = 0;
+
+    typename FactorType::InnerIterator j_it(mat, ii); // Iterate through the current row ii
+    for (; j_it; ++j_it)
+    {
+      Index k = j_it.index();
+      if (k < ii)
+      {
+        // copy the lower part
+        ju(sizel) = k;
+        u(sizel) = j_it.value();
+        jr(k) = sizel;
+        ++sizel;
+      }
+      else if (k == ii)
+      {
+        u(ii) = j_it.value();
+      }
+      else
+      {
+        // copy the upper part
+        Index jpos = ii + sizeu;
+        ju(jpos) = k;
+        u(jpos) = j_it.value();
+        jr(k) = jpos;
+        ++sizeu;
+      }
+      rownorm += numext::abs2(j_it.value());
+    }
+
+    // 2 - detect possible zero row
+    if(rownorm==0)
+    {
+      m_info = NumericalIssue;
+      return;
+    }
+    // Take the 2-norm of the current row as a relative tolerance
+    rownorm = sqrt(rownorm);
+
+    // 3 - eliminate the previous nonzero rows
+    Index jj = 0;
+    Index len = 0;
+    while (jj < sizel)
+    {
+      // In order to eliminate in the correct order,
+      // we must select first the smallest column index among  ju(jj:sizel)
+      Index k;
+      Index minrow = ju.segment(jj,sizel-jj).minCoeff(&k); // k is relative to the segment
+      k += jj;
+      if (minrow != ju(jj))
+      {
+        // swap the two locations
+        Index j = ju(jj);
+        swap(ju(jj), ju(k));
+        jr(minrow) = jj;   jr(j) = k;
+        swap(u(jj), u(k));
+      }
+      // Reset this location
+      jr(minrow) = -1;
+
+      // Start elimination
+      typename FactorType::InnerIterator ki_it(m_lu, minrow);
+      while (ki_it && ki_it.index() < minrow) ++ki_it;
+      eigen_internal_assert(ki_it && ki_it.col()==minrow);
+      Scalar fact = u(jj) / ki_it.value();
+
+      // drop too small elements
+      if(abs(fact) <= m_droptol)
+      {
+        jj++;
+        continue;
+      }
+
+      // linear combination of the current row ii and the row minrow
+      ++ki_it;
+      for (; ki_it; ++ki_it)
+      {
+        Scalar prod = fact * ki_it.value();
+        Index j       = ki_it.index();
+        Index jpos    = jr(j);
+        if (jpos == -1) // fill-in element
+        {
+          Index newpos;
+          if (j >= ii) // dealing with the upper part
+          {
+            newpos = ii + sizeu;
+            sizeu++;
+            eigen_internal_assert(sizeu<=n);
+          }
+          else // dealing with the lower part
+          {
+            newpos = sizel;
+            sizel++;
+            eigen_internal_assert(sizel<=ii);
+          }
+          ju(newpos) = j;
+          u(newpos) = -prod;
+          jr(j) = newpos;
+        }
+        else
+          u(jpos) -= prod;
+      }
+      // store the pivot element
+      u(len) = fact;
+      ju(len) = minrow;
+      ++len;
+
+      jj++;
+    } // end of the elimination on the row ii
+
+    // reset the upper part of the pointer jr to zero
+    for(Index k = 0; k <sizeu; k++) jr(ju(ii+k)) = -1;
+
+    // 4 - partially sort and insert the elements in the m_lu matrix
+
+    // sort the L-part of the row
+    sizel = len;
+    len = (std::min)(sizel, nnzL);
+    typename Vector::SegmentReturnType ul(u.segment(0, sizel));
+    typename VectorXi::SegmentReturnType jul(ju.segment(0, sizel));
+    internal::QuickSplit(ul, jul, len);
+
+    // store the largest m_fill elements of the L part
+    m_lu.startVec(ii);
+    for(Index k = 0; k < len; k++)
+      m_lu.insertBackByOuterInnerUnordered(ii,ju(k)) = u(k);
+
+    // store the diagonal element
+    // apply a shifting rule to avoid zero pivots (we are doing an incomplete factorization)
+    if (u(ii) == Scalar(0))
+      u(ii) = sqrt(m_droptol) * rownorm;
+    m_lu.insertBackByOuterInnerUnordered(ii, ii) = u(ii);
+
+    // sort the U-part of the row
+    // apply the dropping rule first
+    len = 0;
+    for(Index k = 1; k < sizeu; k++)
+    {
+      if(abs(u(ii+k)) > m_droptol * rownorm )
+      {
+        ++len;
+        u(ii + len)  = u(ii + k);
+        ju(ii + len) = ju(ii + k);
+      }
+    }
+    sizeu = len + 1; // +1 to take into account the diagonal element
+    len = (std::min)(sizeu, nnzU);
+    typename Vector::SegmentReturnType uu(u.segment(ii+1, sizeu-1));
+    typename VectorXi::SegmentReturnType juu(ju.segment(ii+1, sizeu-1));
+    internal::QuickSplit(uu, juu, len);
+
+    // store the largest elements of the U part
+    for(Index k = ii + 1; k < ii + len; k++)
+      m_lu.insertBackByOuterInnerUnordered(ii,ju(k)) = u(k);
+  }
+
+  m_lu.finalize();
+  m_lu.makeCompressed();
+
+  m_factorizationIsOk = true;
+  m_isInitialized = m_factorizationIsOk;
+  m_info = Success;
+}
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<IncompleteLUT<_MatrixType>, Rhs>
+  : solve_retval_base<IncompleteLUT<_MatrixType>, Rhs>
+{
+  typedef IncompleteLUT<_MatrixType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_INCOMPLETE_LUT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h	(revision 2476)
@@ -0,0 +1,149 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BASIC_PRECONDITIONERS_H
+#define EIGEN_BASIC_PRECONDITIONERS_H
+
+namespace Eigen { 
+
+/** \ingroup IterativeLinearSolvers_Module
+  * \brief A preconditioner based on the digonal entries
+  *
+  * This class allows to approximately solve for A.x = b problems assuming A is a diagonal matrix.
+  * In other words, this preconditioner neglects all off diagonal entries and, in Eigen's language, solves for:
+  * \code
+  * A.diagonal().asDiagonal() . x = b
+  * \endcode
+  *
+  * \tparam _Scalar the type of the scalar.
+  *
+  * This preconditioner is suitable for both selfadjoint and general problems.
+  * The diagonal entries are pre-inverted and stored into a dense vector.
+  *
+  * \note A variant that has yet to be implemented would attempt to preserve the norm of each column.
+  *
+  */
+template <typename _Scalar>
+class DiagonalPreconditioner
+{
+    typedef _Scalar Scalar;
+    typedef Matrix<Scalar,Dynamic,1> Vector;
+    typedef typename Vector::Index Index;
+
+  public:
+    // this typedef is only to export the scalar type and compile-time dimensions to solve_retval
+    typedef Matrix<Scalar,Dynamic,Dynamic> MatrixType;
+
+    DiagonalPreconditioner() : m_isInitialized(false) {}
+
+    template<typename MatType>
+    DiagonalPreconditioner(const MatType& mat) : m_invdiag(mat.cols())
+    {
+      compute(mat);
+    }
+
+    Index rows() const { return m_invdiag.size(); }
+    Index cols() const { return m_invdiag.size(); }
+    
+    template<typename MatType>
+    DiagonalPreconditioner& analyzePattern(const MatType& )
+    {
+      return *this;
+    }
+    
+    template<typename MatType>
+    DiagonalPreconditioner& factorize(const MatType& mat)
+    {
+      m_invdiag.resize(mat.cols());
+      for(int j=0; j<mat.outerSize(); ++j)
+      {
+        typename MatType::InnerIterator it(mat,j);
+        while(it && it.index()!=j) ++it;
+        if(it && it.index()==j && it.value()!=Scalar(0))
+          m_invdiag(j) = Scalar(1)/it.value();
+        else
+          m_invdiag(j) = Scalar(1);
+      }
+      m_isInitialized = true;
+      return *this;
+    }
+    
+    template<typename MatType>
+    DiagonalPreconditioner& compute(const MatType& mat)
+    {
+      return factorize(mat);
+    }
+
+    template<typename Rhs, typename Dest>
+    void _solve(const Rhs& b, Dest& x) const
+    {
+      x = m_invdiag.array() * b.array() ;
+    }
+
+    template<typename Rhs> inline const internal::solve_retval<DiagonalPreconditioner, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "DiagonalPreconditioner is not initialized.");
+      eigen_assert(m_invdiag.size()==b.rows()
+                && "DiagonalPreconditioner::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<DiagonalPreconditioner, Rhs>(*this, b.derived());
+    }
+
+  protected:
+    Vector m_invdiag;
+    bool m_isInitialized;
+};
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<DiagonalPreconditioner<_MatrixType>, Rhs>
+  : solve_retval_base<DiagonalPreconditioner<_MatrixType>, Rhs>
+{
+  typedef DiagonalPreconditioner<_MatrixType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+}
+
+/** \ingroup IterativeLinearSolvers_Module
+  * \brief A naive preconditioner which approximates any matrix as the identity matrix
+  *
+  * \sa class DiagonalPreconditioner
+  */
+class IdentityPreconditioner
+{
+  public:
+
+    IdentityPreconditioner() {}
+
+    template<typename MatrixType>
+    IdentityPreconditioner(const MatrixType& ) {}
+    
+    template<typename MatrixType>
+    IdentityPreconditioner& analyzePattern(const MatrixType& ) { return *this; }
+    
+    template<typename MatrixType>
+    IdentityPreconditioner& factorize(const MatrixType& ) { return *this; }
+
+    template<typename MatrixType>
+    IdentityPreconditioner& compute(const MatrixType& ) { return *this; }
+    
+    template<typename Rhs>
+    inline const Rhs& solve(const Rhs& b) const { return b; }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_BASIC_PRECONDITIONERS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Memory.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Memory.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Memory.h	(revision 2476)
@@ -0,0 +1,45 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2_MEMORY_H
+#define EIGEN2_MEMORY_H
+
+namespace Eigen { 
+
+inline void* ei_aligned_malloc(size_t size) { return internal::aligned_malloc(size); }
+inline void  ei_aligned_free(void *ptr) { internal::aligned_free(ptr); }
+inline void* ei_aligned_realloc(void *ptr, size_t new_size, size_t old_size) { return internal::aligned_realloc(ptr, new_size, old_size); }
+inline void* ei_handmade_aligned_malloc(size_t size) { return internal::handmade_aligned_malloc(size); }
+inline void  ei_handmade_aligned_free(void *ptr) { internal::handmade_aligned_free(ptr); }
+
+template<bool Align> inline void* ei_conditional_aligned_malloc(size_t size)
+{
+  return internal::conditional_aligned_malloc<Align>(size);
+}
+template<bool Align> inline void ei_conditional_aligned_free(void *ptr)
+{
+  internal::conditional_aligned_free<Align>(ptr);
+}
+template<bool Align> inline void* ei_conditional_aligned_realloc(void* ptr, size_t new_size, size_t old_size)
+{
+  return internal::conditional_aligned_realloc<Align>(ptr, new_size, old_size);
+}
+
+template<typename T> inline T* ei_aligned_new(size_t size)
+{
+  return internal::aligned_new<T>(size);
+}
+template<typename T> inline void ei_aligned_delete(T *ptr, size_t size)
+{
+  return internal::aligned_delete(ptr, size);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN2_MACROS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/CwiseOperators.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/CwiseOperators.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/CwiseOperators.h	(revision 2476)
@@ -0,0 +1,298 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ARRAY_CWISE_OPERATORS_H
+#define EIGEN_ARRAY_CWISE_OPERATORS_H
+
+namespace Eigen { 
+
+/***************************************************************************
+* The following functions were defined in Core
+***************************************************************************/
+
+
+/** \deprecated ArrayBase::abs() */
+template<typename ExpressionType>
+EIGEN_STRONG_INLINE const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs_op)
+Cwise<ExpressionType>::abs() const
+{
+  return _expression();
+}
+
+/** \deprecated ArrayBase::abs2() */
+template<typename ExpressionType>
+EIGEN_STRONG_INLINE const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs2_op)
+Cwise<ExpressionType>::abs2() const
+{
+  return _expression();
+}
+
+/** \deprecated ArrayBase::exp() */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_exp_op)
+Cwise<ExpressionType>::exp() const
+{
+  return _expression();
+}
+
+/** \deprecated ArrayBase::log() */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_log_op)
+Cwise<ExpressionType>::log() const
+{
+  return _expression();
+}
+
+/** \deprecated ArrayBase::operator*() */
+template<typename ExpressionType>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const EIGEN_CWISE_PRODUCT_RETURN_TYPE(ExpressionType,OtherDerived)
+Cwise<ExpressionType>::operator*(const MatrixBase<OtherDerived> &other) const
+{
+  return EIGEN_CWISE_PRODUCT_RETURN_TYPE(ExpressionType,OtherDerived)(_expression(), other.derived());
+}
+
+/** \deprecated ArrayBase::operator/() */
+template<typename ExpressionType>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_quotient_op)
+Cwise<ExpressionType>::operator/(const MatrixBase<OtherDerived> &other) const
+{
+  return EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_quotient_op)(_expression(), other.derived());
+}
+
+/** \deprecated ArrayBase::operator*=() */
+template<typename ExpressionType>
+template<typename OtherDerived>
+inline ExpressionType& Cwise<ExpressionType>::operator*=(const MatrixBase<OtherDerived> &other)
+{
+  return m_matrix.const_cast_derived() = *this * other;
+}
+
+/** \deprecated ArrayBase::operator/=() */
+template<typename ExpressionType>
+template<typename OtherDerived>
+inline ExpressionType& Cwise<ExpressionType>::operator/=(const MatrixBase<OtherDerived> &other)
+{
+  return m_matrix.const_cast_derived() = *this / other;
+}
+
+/***************************************************************************
+* The following functions were defined in Array
+***************************************************************************/
+
+// -- unary operators --
+
+/** \deprecated ArrayBase::sqrt() */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sqrt_op)
+Cwise<ExpressionType>::sqrt() const
+{
+  return _expression();
+}
+
+/** \deprecated ArrayBase::cos() */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cos_op)
+Cwise<ExpressionType>::cos() const
+{
+  return _expression();
+}
+
+
+/** \deprecated ArrayBase::sin() */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sin_op)
+Cwise<ExpressionType>::sin() const
+{
+  return _expression();
+}
+
+
+/** \deprecated ArrayBase::log() */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_pow_op)
+Cwise<ExpressionType>::pow(const Scalar& exponent) const
+{
+  return EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_pow_op)(_expression(), internal::scalar_pow_op<Scalar>(exponent));
+}
+
+
+/** \deprecated ArrayBase::inverse() */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_inverse_op)
+Cwise<ExpressionType>::inverse() const
+{
+  return _expression();
+}
+
+/** \deprecated ArrayBase::square() */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_square_op)
+Cwise<ExpressionType>::square() const
+{
+  return _expression();
+}
+
+/** \deprecated ArrayBase::cube() */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cube_op)
+Cwise<ExpressionType>::cube() const
+{
+  return _expression();
+}
+
+
+// -- binary operators --
+
+/** \deprecated ArrayBase::operator<() */
+template<typename ExpressionType>
+template<typename OtherDerived>
+inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less)
+Cwise<ExpressionType>::operator<(const MatrixBase<OtherDerived> &other) const
+{
+  return EIGEN_CWISE_BINOP_RETURN_TYPE(std::less)(_expression(), other.derived());
+}
+
+/** \deprecated ArrayBase::<=() */
+template<typename ExpressionType>
+template<typename OtherDerived>
+inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less_equal)
+Cwise<ExpressionType>::operator<=(const MatrixBase<OtherDerived> &other) const
+{
+  return EIGEN_CWISE_BINOP_RETURN_TYPE(std::less_equal)(_expression(), other.derived());
+}
+
+/** \deprecated ArrayBase::operator>() */
+template<typename ExpressionType>
+template<typename OtherDerived>
+inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater)
+Cwise<ExpressionType>::operator>(const MatrixBase<OtherDerived> &other) const
+{
+  return EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater)(_expression(), other.derived());
+}
+
+/** \deprecated ArrayBase::operator>=() */
+template<typename ExpressionType>
+template<typename OtherDerived>
+inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater_equal)
+Cwise<ExpressionType>::operator>=(const MatrixBase<OtherDerived> &other) const
+{
+  return EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater_equal)(_expression(), other.derived());
+}
+
+/** \deprecated ArrayBase::operator==() */
+template<typename ExpressionType>
+template<typename OtherDerived>
+inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::equal_to)
+Cwise<ExpressionType>::operator==(const MatrixBase<OtherDerived> &other) const
+{
+  return EIGEN_CWISE_BINOP_RETURN_TYPE(std::equal_to)(_expression(), other.derived());
+}
+
+/** \deprecated ArrayBase::operator!=() */
+template<typename ExpressionType>
+template<typename OtherDerived>
+inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::not_equal_to)
+Cwise<ExpressionType>::operator!=(const MatrixBase<OtherDerived> &other) const
+{
+  return EIGEN_CWISE_BINOP_RETURN_TYPE(std::not_equal_to)(_expression(), other.derived());
+}
+
+// comparisons to scalar value
+
+/** \deprecated ArrayBase::operator<(Scalar) */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less)
+Cwise<ExpressionType>::operator<(Scalar s) const
+{
+  return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less)(_expression(),
+            typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
+}
+
+/** \deprecated ArrayBase::operator<=(Scalar) */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less_equal)
+Cwise<ExpressionType>::operator<=(Scalar s) const
+{
+  return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less_equal)(_expression(),
+            typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
+}
+
+/** \deprecated ArrayBase::operator>(Scalar) */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater)
+Cwise<ExpressionType>::operator>(Scalar s) const
+{
+  return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater)(_expression(),
+            typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
+}
+
+/** \deprecated ArrayBase::operator>=(Scalar) */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater_equal)
+Cwise<ExpressionType>::operator>=(Scalar s) const
+{
+  return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater_equal)(_expression(),
+            typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
+}
+
+/** \deprecated ArrayBase::operator==(Scalar) */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::equal_to)
+Cwise<ExpressionType>::operator==(Scalar s) const
+{
+  return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::equal_to)(_expression(),
+            typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
+}
+
+/** \deprecated ArrayBase::operator!=(Scalar) */
+template<typename ExpressionType>
+inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::not_equal_to)
+Cwise<ExpressionType>::operator!=(Scalar s) const
+{
+  return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::not_equal_to)(_expression(),
+            typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
+}
+
+// scalar addition
+
+/** \deprecated ArrayBase::operator+(Scalar) */
+template<typename ExpressionType>
+inline const typename Cwise<ExpressionType>::ScalarAddReturnType
+Cwise<ExpressionType>::operator+(const Scalar& scalar) const
+{
+  return typename Cwise<ExpressionType>::ScalarAddReturnType(m_matrix, internal::scalar_add_op<Scalar>(scalar));
+}
+
+/** \deprecated ArrayBase::operator+=(Scalar) */
+template<typename ExpressionType>
+inline ExpressionType& Cwise<ExpressionType>::operator+=(const Scalar& scalar)
+{
+  return m_matrix.const_cast_derived() = *this + scalar;
+}
+
+/** \deprecated ArrayBase::operator-(Scalar) */
+template<typename ExpressionType>
+inline const typename Cwise<ExpressionType>::ScalarAddReturnType
+Cwise<ExpressionType>::operator-(const Scalar& scalar) const
+{
+  return *this + (-scalar);
+}
+
+/** \deprecated ArrayBase::operator-=(Scalar) */
+template<typename ExpressionType>
+inline ExpressionType& Cwise<ExpressionType>::operator-=(const Scalar& scalar)
+{
+  return m_matrix.const_cast_derived() = *this - scalar;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ARRAY_CWISE_OPERATORS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Cwise.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Cwise.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Cwise.h	(revision 2476)
@@ -0,0 +1,192 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CWISE_H
+#define EIGEN_CWISE_H
+
+namespace Eigen { 
+
+/** \internal
+  * convenient macro to defined the return type of a cwise binary operation */
+#define EIGEN_CWISE_BINOP_RETURN_TYPE(OP) \
+    CwiseBinaryOp<OP<typename internal::traits<ExpressionType>::Scalar>, ExpressionType, OtherDerived>
+
+/** \internal
+  * convenient macro to defined the return type of a cwise unary operation */
+#define EIGEN_CWISE_UNOP_RETURN_TYPE(OP) \
+    CwiseUnaryOp<OP<typename internal::traits<ExpressionType>::Scalar>, ExpressionType>
+
+/** \internal
+  * convenient macro to defined the return type of a cwise comparison to a scalar */
+#define EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(OP) \
+    CwiseBinaryOp<OP<typename internal::traits<ExpressionType>::Scalar>, ExpressionType, \
+        typename ExpressionType::ConstantReturnType >
+
+/** \class Cwise
+  *
+  * \brief Pseudo expression providing additional coefficient-wise operations
+  *
+  * \param ExpressionType the type of the object on which to do coefficient-wise operations
+  *
+  * This class represents an expression with additional coefficient-wise features.
+  * It is the return type of MatrixBase::cwise()
+  * and most of the time this is the only way it is used.
+  *
+  * Example: \include MatrixBase_cwise_const.cpp
+  * Output: \verbinclude MatrixBase_cwise_const.out
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_CWISE_PLUGIN.
+  *
+  * \sa MatrixBase::cwise() const, MatrixBase::cwise()
+  */
+template<typename ExpressionType> class Cwise
+{
+  public:
+
+    typedef typename internal::traits<ExpressionType>::Scalar Scalar;
+    typedef typename internal::conditional<internal::must_nest_by_value<ExpressionType>::ret,
+        ExpressionType, const ExpressionType&>::type ExpressionTypeNested;
+    typedef CwiseUnaryOp<internal::scalar_add_op<Scalar>, ExpressionType> ScalarAddReturnType;
+
+    inline Cwise(const ExpressionType& matrix) : m_matrix(matrix) {}
+
+    /** \internal */
+    inline const ExpressionType& _expression() const { return m_matrix; }
+
+    template<typename OtherDerived>
+    const EIGEN_CWISE_PRODUCT_RETURN_TYPE(ExpressionType,OtherDerived)
+    operator*(const MatrixBase<OtherDerived> &other) const;
+
+    template<typename OtherDerived>
+    const EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_quotient_op)
+    operator/(const MatrixBase<OtherDerived> &other) const;
+
+    /** \deprecated ArrayBase::min() */
+    template<typename OtherDerived>
+    const EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_min_op)
+    (min)(const MatrixBase<OtherDerived> &other) const
+    { return EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_min_op)(_expression(), other.derived()); }
+
+    /** \deprecated ArrayBase::max() */
+    template<typename OtherDerived>
+    const EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_max_op)
+    (max)(const MatrixBase<OtherDerived> &other) const
+    { return EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_max_op)(_expression(), other.derived()); }
+
+    const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs_op)      abs() const;
+    const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs2_op)     abs2() const;
+    const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_square_op)   square() const;
+    const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cube_op)     cube() const;
+    const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_inverse_op)  inverse() const;
+    const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sqrt_op)     sqrt() const;
+    const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_exp_op)      exp() const;
+    const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_log_op)      log() const;
+    const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cos_op)      cos() const;
+    const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sin_op)      sin() const;
+    const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_pow_op)      pow(const Scalar& exponent) const;
+
+    const ScalarAddReturnType
+    operator+(const Scalar& scalar) const;
+
+    /** \relates Cwise */
+    friend const ScalarAddReturnType
+    operator+(const Scalar& scalar, const Cwise& mat)
+    { return mat + scalar; }
+
+    ExpressionType& operator+=(const Scalar& scalar);
+
+    const ScalarAddReturnType
+    operator-(const Scalar& scalar) const;
+
+    ExpressionType& operator-=(const Scalar& scalar);
+
+    template<typename OtherDerived>
+    inline ExpressionType& operator*=(const MatrixBase<OtherDerived> &other);
+
+    template<typename OtherDerived>
+    inline ExpressionType& operator/=(const MatrixBase<OtherDerived> &other);
+
+    template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less)
+    operator<(const MatrixBase<OtherDerived>& other) const;
+
+    template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less_equal)
+    operator<=(const MatrixBase<OtherDerived>& other) const;
+
+    template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater)
+    operator>(const MatrixBase<OtherDerived>& other) const;
+
+    template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater_equal)
+    operator>=(const MatrixBase<OtherDerived>& other) const;
+
+    template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::equal_to)
+    operator==(const MatrixBase<OtherDerived>& other) const;
+
+    template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::not_equal_to)
+    operator!=(const MatrixBase<OtherDerived>& other) const;
+
+    // comparisons to a scalar value
+    const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less)
+    operator<(Scalar s) const;
+
+    const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less_equal)
+    operator<=(Scalar s) const;
+
+    const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater)
+    operator>(Scalar s) const;
+
+    const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater_equal)
+    operator>=(Scalar s) const;
+
+    const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::equal_to)
+    operator==(Scalar s) const;
+
+    const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::not_equal_to)
+    operator!=(Scalar s) const;
+
+    // allow to extend Cwise outside Eigen
+    #ifdef EIGEN_CWISE_PLUGIN
+    #include EIGEN_CWISE_PLUGIN
+    #endif
+
+  protected:
+    ExpressionTypeNested m_matrix;
+};
+
+
+/** \returns a Cwise wrapper of *this providing additional coefficient-wise operations
+  *
+  * Example: \include MatrixBase_cwise_const.cpp
+  * Output: \verbinclude MatrixBase_cwise_const.out
+  *
+  * \sa class Cwise, cwise()
+  */
+template<typename Derived>
+inline const Cwise<Derived> MatrixBase<Derived>::cwise() const
+{
+  return derived();
+}
+
+/** \returns a Cwise wrapper of *this providing additional coefficient-wise operations
+  *
+  * Example: \include MatrixBase_cwise.cpp
+  * Output: \verbinclude MatrixBase_cwise.out
+  *
+  * \sa class Cwise, cwise() const
+  */
+template<typename Derived>
+inline Cwise<Derived> MatrixBase<Derived>::cwise()
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_CWISE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/LeastSquares.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/LeastSquares.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/LeastSquares.h	(revision 2476)
@@ -0,0 +1,169 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2_LEASTSQUARES_H
+#define EIGEN2_LEASTSQUARES_H
+
+namespace Eigen { 
+
+/** \ingroup LeastSquares_Module
+  *
+  * \leastsquares_module
+  *
+  * For a set of points, this function tries to express
+  * one of the coords as a linear (affine) function of the other coords.
+  *
+  * This is best explained by an example. This function works in full
+  * generality, for points in a space of arbitrary dimension, and also over
+  * the complex numbers, but for this example we will work in dimension 3
+  * over the real numbers (doubles).
+  *
+  * So let us work with the following set of 5 points given by their
+  * \f$(x,y,z)\f$ coordinates:
+  * @code
+    Vector3d points[5];
+    points[0] = Vector3d( 3.02, 6.89, -4.32 );
+    points[1] = Vector3d( 2.01, 5.39, -3.79 );
+    points[2] = Vector3d( 2.41, 6.01, -4.01 );
+    points[3] = Vector3d( 2.09, 5.55, -3.86 );
+    points[4] = Vector3d( 2.58, 6.32, -4.10 );
+  * @endcode
+  * Suppose that we want to express the second coordinate (\f$y\f$) as a linear
+  * expression in \f$x\f$ and \f$z\f$, that is,
+  * \f[ y=ax+bz+c \f]
+  * for some constants \f$a,b,c\f$. Thus, we want to find the best possible
+  * constants \f$a,b,c\f$ so that the plane of equation \f$y=ax+bz+c\f$ fits
+  * best the five above points. To do that, call this function as follows:
+  * @code
+    Vector3d coeffs; // will store the coefficients a, b, c
+    linearRegression(
+      5,
+      &points,
+      &coeffs,
+      1 // the coord to express as a function of
+        // the other ones. 0 means x, 1 means y, 2 means z.
+    );
+  * @endcode
+  * Now the vector \a coeffs is approximately
+  * \f$( 0.495 ,  -1.927 ,  -2.906 )\f$.
+  * Thus, we get \f$a=0.495, b = -1.927, c = -2.906\f$. Let us check for
+  * instance how near points[0] is from the plane of equation \f$y=ax+bz+c\f$.
+  * Looking at the coords of points[0], we see that:
+  * \f[ax+bz+c = 0.495 * 3.02 + (-1.927) * (-4.32) + (-2.906) = 6.91.\f]
+  * On the other hand, we have \f$y=6.89\f$. We see that the values
+  * \f$6.91\f$ and \f$6.89\f$
+  * are near, so points[0] is very near the plane of equation \f$y=ax+bz+c\f$.
+  *
+  * Let's now describe precisely the parameters:
+  * @param numPoints the number of points
+  * @param points the array of pointers to the points on which to perform the linear regression
+  * @param result pointer to the vector in which to store the result.
+                  This vector must be of the same type and size as the
+                  data points. The meaning of its coords is as follows.
+                  For brevity, let \f$n=Size\f$,
+                  \f$r_i=result[i]\f$,
+                  and \f$f=funcOfOthers\f$. Denote by
+                  \f$x_0,\ldots,x_{n-1}\f$
+                  the n coordinates in the n-dimensional space.
+                  Then the resulting equation is:
+                  \f[ x_f = r_0 x_0 + \cdots + r_{f-1}x_{f-1}
+                   + r_{f+1}x_{f+1} + \cdots + r_{n-1}x_{n-1} + r_n. \f]
+  * @param funcOfOthers Determines which coord to express as a function of the
+                        others. Coords are numbered starting from 0, so that a
+                        value of 0 means \f$x\f$, 1 means \f$y\f$,
+                        2 means \f$z\f$, ...
+  *
+  * \sa fitHyperplane()
+  */
+template<typename VectorType>
+void linearRegression(int numPoints,
+                      VectorType **points,
+                      VectorType *result,
+                      int funcOfOthers )
+{
+  typedef typename VectorType::Scalar Scalar;
+  typedef Hyperplane<Scalar, VectorType::SizeAtCompileTime> HyperplaneType;
+  const int size = points[0]->size();
+  result->resize(size);
+  HyperplaneType h(size);
+  fitHyperplane(numPoints, points, &h);
+  for(int i = 0; i < funcOfOthers; i++)
+    result->coeffRef(i) = - h.coeffs()[i] / h.coeffs()[funcOfOthers];
+  for(int i = funcOfOthers; i < size; i++)
+    result->coeffRef(i) = - h.coeffs()[i+1] / h.coeffs()[funcOfOthers];
+}
+
+/** \ingroup LeastSquares_Module
+  *
+  * \leastsquares_module
+  *
+  * This function is quite similar to linearRegression(), so we refer to the
+  * documentation of this function and only list here the differences.
+  *
+  * The main difference from linearRegression() is that this function doesn't
+  * take a \a funcOfOthers argument. Instead, it finds a general equation
+  * of the form
+  * \f[ r_0 x_0 + \cdots + r_{n-1}x_{n-1} + r_n = 0, \f]
+  * where \f$n=Size\f$, \f$r_i=retCoefficients[i]\f$, and we denote by
+  * \f$x_0,\ldots,x_{n-1}\f$ the n coordinates in the n-dimensional space.
+  *
+  * Thus, the vector \a retCoefficients has size \f$n+1\f$, which is another
+  * difference from linearRegression().
+  *
+  * In practice, this function performs an hyper-plane fit in a total least square sense
+  * via the following steps:
+  *  1 - center the data to the mean
+  *  2 - compute the covariance matrix
+  *  3 - pick the eigenvector corresponding to the smallest eigenvalue of the covariance matrix
+  * The ratio of the smallest eigenvalue and the second one gives us a hint about the relevance
+  * of the solution. This value is optionally returned in \a soundness.
+  *
+  * \sa linearRegression()
+  */
+template<typename VectorType, typename HyperplaneType>
+void fitHyperplane(int numPoints,
+                   VectorType **points,
+                   HyperplaneType *result,
+                   typename NumTraits<typename VectorType::Scalar>::Real* soundness = 0)
+{
+  typedef typename VectorType::Scalar Scalar;
+  typedef Matrix<Scalar,VectorType::SizeAtCompileTime,VectorType::SizeAtCompileTime> CovMatrixType;
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(VectorType)
+  ei_assert(numPoints >= 1);
+  int size = points[0]->size();
+  ei_assert(size+1 == result->coeffs().size());
+
+  // compute the mean of the data
+  VectorType mean = VectorType::Zero(size);
+  for(int i = 0; i < numPoints; ++i)
+    mean += *(points[i]);
+  mean /= numPoints;
+
+  // compute the covariance matrix
+  CovMatrixType covMat = CovMatrixType::Zero(size, size);
+  for(int i = 0; i < numPoints; ++i)
+  {
+    VectorType diff = (*(points[i]) - mean).conjugate();
+    covMat += diff * diff.adjoint();
+  }
+
+  // now we just have to pick the eigen vector with smallest eigen value
+  SelfAdjointEigenSolver<CovMatrixType> eig(covMat);
+  result->normal() = eig.eigenvectors().col(0);
+  if (soundness)
+    *soundness = eig.eigenvalues().coeff(0)/eig.eigenvalues().coeff(1);
+
+  // let's compute the constant coefficient such that the
+  // plane pass trough the mean point:
+  result->offset() = - (result->normal().cwise()* mean).sum();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN2_LEASTSQUARES_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/VectorBlock.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/VectorBlock.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/VectorBlock.h	(revision 2476)
@@ -0,0 +1,94 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2_VECTORBLOCK_H
+#define EIGEN2_VECTORBLOCK_H
+
+namespace Eigen { 
+
+/** \deprecated use DenseMase::head(Index) */
+template<typename Derived>
+inline VectorBlock<Derived>
+MatrixBase<Derived>::start(Index size)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return VectorBlock<Derived>(derived(), 0, size);
+}
+
+/** \deprecated use DenseMase::head(Index) */
+template<typename Derived>
+inline const VectorBlock<const Derived>
+MatrixBase<Derived>::start(Index size) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return VectorBlock<const Derived>(derived(), 0, size);
+}
+
+/** \deprecated use DenseMase::tail(Index) */
+template<typename Derived>
+inline VectorBlock<Derived>
+MatrixBase<Derived>::end(Index size)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return VectorBlock<Derived>(derived(), this->size() - size, size);
+}
+
+/** \deprecated use DenseMase::tail(Index) */
+template<typename Derived>
+inline const VectorBlock<const Derived>
+MatrixBase<Derived>::end(Index size) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return VectorBlock<const Derived>(derived(), this->size() - size, size);
+}
+
+/** \deprecated use DenseMase::head() */
+template<typename Derived>
+template<int Size>
+inline VectorBlock<Derived,Size>
+MatrixBase<Derived>::start()
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return VectorBlock<Derived,Size>(derived(), 0);
+}
+
+/** \deprecated use DenseMase::head() */
+template<typename Derived>
+template<int Size>
+inline const VectorBlock<const Derived,Size>
+MatrixBase<Derived>::start() const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return VectorBlock<const Derived,Size>(derived(), 0);
+}
+
+/** \deprecated use DenseMase::tail() */
+template<typename Derived>
+template<int Size>
+inline VectorBlock<Derived,Size>
+MatrixBase<Derived>::end()
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return VectorBlock<Derived, Size>(derived(), size() - Size);
+}
+
+/** \deprecated use DenseMase::tail() */
+template<typename Derived>
+template<int Size>
+inline const VectorBlock<const Derived,Size>
+MatrixBase<Derived>::end() const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return VectorBlock<const Derived, Size>(derived(), size() - Size);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN2_VECTORBLOCK_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Lazy.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Lazy.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Lazy.h	(revision 2476)
@@ -0,0 +1,71 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LAZY_H
+#define EIGEN_LAZY_H
+
+namespace Eigen { 
+
+/** \deprecated it is only used by lazy() which is deprecated
+  *
+  * \returns an expression of *this with added flags
+  *
+  * Example: \include MatrixBase_marked.cpp
+  * Output: \verbinclude MatrixBase_marked.out
+  *
+  * \sa class Flagged, extract(), part()
+  */
+template<typename Derived>
+template<unsigned int Added>
+inline const Flagged<Derived, Added, 0>
+MatrixBase<Derived>::marked() const
+{
+  return derived();
+}
+
+/** \deprecated use MatrixBase::noalias()
+  *
+  * \returns an expression of *this with the EvalBeforeAssigningBit flag removed.
+  *
+  * Example: \include MatrixBase_lazy.cpp
+  * Output: \verbinclude MatrixBase_lazy.out
+  *
+  * \sa class Flagged, marked()
+  */
+template<typename Derived>
+inline const Flagged<Derived, 0, EvalBeforeAssigningBit>
+MatrixBase<Derived>::lazy() const
+{
+  return derived();
+}
+
+
+/** \internal
+  * Overloaded to perform an efficient C += (A*B).lazy() */
+template<typename Derived>
+template<typename ProductDerived, typename Lhs, typename Rhs>
+Derived& MatrixBase<Derived>::operator+=(const Flagged<ProductBase<ProductDerived, Lhs,Rhs>, 0,
+                                                       EvalBeforeAssigningBit>& other)
+{
+  other._expression().derived().addTo(derived()); return derived();
+}
+
+/** \internal
+  * Overloaded to perform an efficient C -= (A*B).lazy() */
+template<typename Derived>
+template<typename ProductDerived, typename Lhs, typename Rhs>
+Derived& MatrixBase<Derived>::operator-=(const Flagged<ProductBase<ProductDerived, Lhs,Rhs>, 0,
+                                                       EvalBeforeAssigningBit>& other)
+{
+  other._expression().derived().subTo(derived()); return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_LAZY_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/LU.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/LU.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/LU.h	(revision 2476)
@@ -0,0 +1,120 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2_LU_H
+#define EIGEN2_LU_H
+
+namespace Eigen { 
+
+template<typename MatrixType>
+class LU : public FullPivLU<MatrixType>
+{
+  public:
+
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+    typedef Matrix<int, 1, MatrixType::ColsAtCompileTime, MatrixType::Options, 1, MatrixType::MaxColsAtCompileTime> IntRowVectorType;
+    typedef Matrix<int, MatrixType::RowsAtCompileTime, 1, MatrixType::Options, MatrixType::MaxRowsAtCompileTime, 1> IntColVectorType;
+    typedef Matrix<Scalar, 1, MatrixType::ColsAtCompileTime, MatrixType::Options, 1, MatrixType::MaxColsAtCompileTime> RowVectorType;
+    typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1, MatrixType::Options, MatrixType::MaxRowsAtCompileTime, 1> ColVectorType;
+
+    typedef Matrix<typename MatrixType::Scalar,
+                  MatrixType::ColsAtCompileTime, // the number of rows in the "kernel matrix" is the number of cols of the original matrix
+                                                 // so that the product "matrix * kernel = zero" makes sense
+                  Dynamic,                       // we don't know at compile-time the dimension of the kernel
+                  MatrixType::Options,
+                  MatrixType::MaxColsAtCompileTime, // see explanation for 2nd template parameter
+                  MatrixType::MaxColsAtCompileTime // the kernel is a subspace of the domain space, whose dimension is the number
+                                                   // of columns of the original matrix
+    > KernelResultType;
+
+    typedef Matrix<typename MatrixType::Scalar,
+                   MatrixType::RowsAtCompileTime, // the image is a subspace of the destination space, whose dimension is the number
+                                                  // of rows of the original matrix
+                   Dynamic,                       // we don't know at compile time the dimension of the image (the rank)
+                   MatrixType::Options,
+                   MatrixType::MaxRowsAtCompileTime, // the image matrix will consist of columns from the original matrix,
+                   MatrixType::MaxColsAtCompileTime  // so it has the same number of rows and at most as many columns.
+    > ImageResultType;
+
+    typedef FullPivLU<MatrixType> Base;
+
+    template<typename T>
+    explicit LU(const T& t) : Base(t), m_originalMatrix(t) {}
+
+    template<typename OtherDerived, typename ResultType>
+    bool solve(const MatrixBase<OtherDerived>& b, ResultType *result) const
+    {
+      *result = static_cast<const Base*>(this)->solve(b);
+      return true;
+    }
+
+    template<typename ResultType>
+    inline void computeInverse(ResultType *result) const
+    {
+      solve(MatrixType::Identity(this->rows(), this->cols()), result);
+    }
+    
+    template<typename KernelMatrixType>
+    void computeKernel(KernelMatrixType *result) const
+    {
+      *result = static_cast<const Base*>(this)->kernel();
+    }
+    
+    template<typename ImageMatrixType>
+    void computeImage(ImageMatrixType *result) const
+    {
+      *result = static_cast<const Base*>(this)->image(m_originalMatrix);
+    }
+    
+    const ImageResultType image() const
+    {
+      return static_cast<const Base*>(this)->image(m_originalMatrix);
+    }
+    
+    const MatrixType& m_originalMatrix;
+};
+
+#if EIGEN2_SUPPORT_STAGE < STAGE20_RESOLVE_API_CONFLICTS
+/** \lu_module
+  *
+  * Synonym of partialPivLu().
+  *
+  * \return the partial-pivoting LU decomposition of \c *this.
+  *
+  * \sa class PartialPivLU
+  */
+template<typename Derived>
+inline const LU<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::lu() const
+{
+  return LU<PlainObject>(eval());
+}
+#endif
+
+#ifdef EIGEN2_SUPPORT
+/** \lu_module
+  *
+  * Synonym of partialPivLu().
+  *
+  * \return the partial-pivoting LU decomposition of \c *this.
+  *
+  * \sa class PartialPivLU
+  */
+template<typename Derived>
+inline const LU<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::eigen2_lu() const
+{
+  return LU<PlainObject>(eval());
+}
+#endif
+
+} // end namespace Eigen
+
+#endif // EIGEN2_LU_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/MathFunctions.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/MathFunctions.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/MathFunctions.h	(revision 2476)
@@ -0,0 +1,57 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2_MATH_FUNCTIONS_H
+#define EIGEN2_MATH_FUNCTIONS_H
+
+namespace Eigen { 
+
+template<typename T> inline typename NumTraits<T>::Real ei_real(const T& x) { return numext::real(x); }
+template<typename T> inline typename NumTraits<T>::Real ei_imag(const T& x) { return numext::imag(x); }
+template<typename T> inline T ei_conj(const T& x) { return numext::conj(x); }
+template<typename T> inline typename NumTraits<T>::Real ei_abs (const T& x) { using std::abs; return abs(x); }
+template<typename T> inline typename NumTraits<T>::Real ei_abs2(const T& x) { return numext::abs2(x); }
+template<typename T> inline T ei_sqrt(const T& x) { using std::sqrt; return sqrt(x); }
+template<typename T> inline T ei_exp (const T& x) { using std::exp;  return exp(x); }
+template<typename T> inline T ei_log (const T& x) { using std::log;  return log(x); }
+template<typename T> inline T ei_sin (const T& x) { using std::sin;  return sin(x); }
+template<typename T> inline T ei_cos (const T& x) { using std::cos;  return cos(x); }
+template<typename T> inline T ei_atan2(const T& x,const T& y) { using std::atan2; return atan2(x,y); }
+template<typename T> inline T ei_pow (const T& x,const T& y) { return numext::pow(x,y); }
+template<typename T> inline T ei_random () { return internal::random<T>(); }
+template<typename T> inline T ei_random (const T& x, const T& y) { return internal::random(x, y); }
+
+template<typename T> inline T precision () { return NumTraits<T>::dummy_precision(); }
+template<typename T> inline T machine_epsilon () { return NumTraits<T>::epsilon(); }
+
+
+template<typename Scalar, typename OtherScalar>
+inline bool ei_isMuchSmallerThan(const Scalar& x, const OtherScalar& y,
+                                   typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision())
+{
+  return internal::isMuchSmallerThan(x, y, precision);
+}
+
+template<typename Scalar>
+inline bool ei_isApprox(const Scalar& x, const Scalar& y,
+                          typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision())
+{
+  return internal::isApprox(x, y, precision);
+}
+
+template<typename Scalar>
+inline bool ei_isApproxOrLessThan(const Scalar& x, const Scalar& y,
+                                    typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision())
+{
+  return internal::isApproxOrLessThan(x, y, precision);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN2_MATH_FUNCTIONS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/QR.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/QR.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/QR.h	(revision 2476)
@@ -0,0 +1,67 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
+// Copyright (C) 2011 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2_QR_H
+#define EIGEN2_QR_H
+
+namespace Eigen { 
+
+template<typename MatrixType>
+class QR : public HouseholderQR<MatrixType>
+{
+  public:
+
+    typedef HouseholderQR<MatrixType> Base;
+    typedef Block<const MatrixType, MatrixType::ColsAtCompileTime, MatrixType::ColsAtCompileTime> MatrixRBlockType;
+
+    QR() : Base() {}
+
+    template<typename T>
+    explicit QR(const T& t) : Base(t) {}
+
+    template<typename OtherDerived, typename ResultType>
+    bool solve(const MatrixBase<OtherDerived>& b, ResultType *result) const
+    {
+      *result = static_cast<const Base*>(this)->solve(b);
+      return true;
+    }
+
+    MatrixType matrixQ(void) const {
+      MatrixType ret = MatrixType::Identity(this->rows(), this->cols());
+      ret = this->householderQ() * ret;
+      return ret;
+    }
+
+    bool isFullRank() const {
+      return true;
+    }
+    
+    const TriangularView<MatrixRBlockType, UpperTriangular>
+    matrixR(void) const
+    {
+      int cols = this->cols();
+      return MatrixRBlockType(this->matrixQR(), 0, 0, cols, cols).template triangularView<UpperTriangular>();
+    }
+};
+
+/** \return the QR decomposition of \c *this.
+  *
+  * \sa class QR
+  */
+template<typename Derived>
+const QR<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::qr() const
+{
+  return QR<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN2_QR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Macros.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Macros.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Macros.h	(revision 2476)
@@ -0,0 +1,20 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2_MACROS_H
+#define EIGEN2_MACROS_H
+
+#define ei_assert eigen_assert
+#define ei_internal_assert eigen_internal_assert
+
+#define EIGEN_ALIGN_128 EIGEN_ALIGN16
+
+#define EIGEN_ARCH_WANTS_ALIGNMENT EIGEN_ALIGN_STATICALLY
+
+#endif // EIGEN2_MACROS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Minor.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Minor.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Minor.h	(revision 2476)
@@ -0,0 +1,117 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MINOR_H
+#define EIGEN_MINOR_H
+
+namespace Eigen { 
+
+/**
+  * \class Minor
+  *
+  * \brief Expression of a minor
+  *
+  * \param MatrixType the type of the object in which we are taking a minor
+  *
+  * This class represents an expression of a minor. It is the return
+  * type of MatrixBase::minor() and most of the time this is the only way it
+  * is used.
+  *
+  * \sa MatrixBase::minor()
+  */
+
+namespace internal {
+template<typename MatrixType>
+struct traits<Minor<MatrixType> >
+ : traits<MatrixType>
+{
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+  typedef typename MatrixType::StorageKind StorageKind;
+  enum {
+    RowsAtCompileTime = (MatrixType::RowsAtCompileTime != Dynamic) ?
+                          int(MatrixType::RowsAtCompileTime) - 1 : Dynamic,
+    ColsAtCompileTime = (MatrixType::ColsAtCompileTime != Dynamic) ?
+                          int(MatrixType::ColsAtCompileTime) - 1 : Dynamic,
+    MaxRowsAtCompileTime = (MatrixType::MaxRowsAtCompileTime != Dynamic) ?
+                             int(MatrixType::MaxRowsAtCompileTime) - 1 : Dynamic,
+    MaxColsAtCompileTime = (MatrixType::MaxColsAtCompileTime != Dynamic) ?
+                             int(MatrixType::MaxColsAtCompileTime) - 1 : Dynamic,
+    Flags = _MatrixTypeNested::Flags & (HereditaryBits | LvalueBit),
+    CoeffReadCost = _MatrixTypeNested::CoeffReadCost // minor is used typically on tiny matrices,
+      // where loops are unrolled and the 'if' evaluates at compile time
+  };
+};
+}
+
+template<typename MatrixType> class Minor
+  : public MatrixBase<Minor<MatrixType> >
+{
+  public:
+
+    typedef MatrixBase<Minor> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Minor)
+
+    inline Minor(const MatrixType& matrix,
+                       Index row, Index col)
+      : m_matrix(matrix), m_row(row), m_col(col)
+    {
+      eigen_assert(row >= 0 && row < matrix.rows()
+          && col >= 0 && col < matrix.cols());
+    }
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Minor)
+
+    inline Index rows() const { return m_matrix.rows() - 1; }
+    inline Index cols() const { return m_matrix.cols() - 1; }
+
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      return m_matrix.const_cast_derived().coeffRef(row + (row >= m_row), col + (col >= m_col));
+    }
+
+    inline const Scalar coeff(Index row, Index col) const
+    {
+      return m_matrix.coeff(row + (row >= m_row), col + (col >= m_col));
+    }
+
+  protected:
+    const typename MatrixType::Nested m_matrix;
+    const Index m_row, m_col;
+};
+
+/**
+  * \return an expression of the (\a row, \a col)-minor of *this,
+  * i.e. an expression constructed from *this by removing the specified
+  * row and column.
+  *
+  * Example: \include MatrixBase_minor.cpp
+  * Output: \verbinclude MatrixBase_minor.out
+  *
+  * \sa class Minor
+  */
+template<typename Derived>
+inline Minor<Derived>
+MatrixBase<Derived>::minor(Index row, Index col)
+{
+  return Minor<Derived>(derived(), row, col);
+}
+
+/**
+  * This is the const version of minor(). */
+template<typename Derived>
+inline const Minor<Derived>
+MatrixBase<Derived>::minor(Index row, Index col) const
+{
+  return Minor<Derived>(derived(), row, col);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MINOR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Meta.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Meta.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Meta.h	(revision 2476)
@@ -0,0 +1,75 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2_META_H
+#define EIGEN2_META_H
+
+namespace Eigen { 
+
+template<typename T>
+struct ei_traits : internal::traits<T>
+{};
+
+struct ei_meta_true {  enum { ret = 1 }; };
+struct ei_meta_false { enum { ret = 0 }; };
+
+template<bool Condition, typename Then, typename Else>
+struct ei_meta_if { typedef Then ret; };
+
+template<typename Then, typename Else>
+struct ei_meta_if <false, Then, Else> { typedef Else ret; };
+
+template<typename T, typename U> struct ei_is_same_type { enum { ret = 0 }; };
+template<typename T> struct ei_is_same_type<T,T> { enum { ret = 1 }; };
+
+template<typename T> struct ei_unref { typedef T type; };
+template<typename T> struct ei_unref<T&> { typedef T type; };
+
+template<typename T> struct ei_unpointer { typedef T type; };
+template<typename T> struct ei_unpointer<T*> { typedef T type; };
+template<typename T> struct ei_unpointer<T*const> { typedef T type; };
+
+template<typename T> struct ei_unconst { typedef T type; };
+template<typename T> struct ei_unconst<const T> { typedef T type; };
+template<typename T> struct ei_unconst<T const &> { typedef T & type; };
+template<typename T> struct ei_unconst<T const *> { typedef T * type; };
+
+template<typename T> struct ei_cleantype { typedef T type; };
+template<typename T> struct ei_cleantype<const T>   { typedef typename ei_cleantype<T>::type type; };
+template<typename T> struct ei_cleantype<const T&>  { typedef typename ei_cleantype<T>::type type; };
+template<typename T> struct ei_cleantype<T&>        { typedef typename ei_cleantype<T>::type type; };
+template<typename T> struct ei_cleantype<const T*>  { typedef typename ei_cleantype<T>::type type; };
+template<typename T> struct ei_cleantype<T*>        { typedef typename ei_cleantype<T>::type type; };
+
+/** \internal In short, it computes int(sqrt(\a Y)) with \a Y an integer.
+  * Usage example: \code ei_meta_sqrt<1023>::ret \endcode
+  */
+template<int Y,
+         int InfX = 0,
+         int SupX = ((Y==1) ? 1 : Y/2),
+         bool Done = ((SupX-InfX)<=1 ? true : ((SupX*SupX <= Y) && ((SupX+1)*(SupX+1) > Y))) >
+                                // use ?: instead of || just to shut up a stupid gcc 4.3 warning
+class ei_meta_sqrt
+{
+    enum {
+      MidX = (InfX+SupX)/2,
+      TakeInf = MidX*MidX > Y ? 1 : 0,
+      NewInf = int(TakeInf) ? InfX : int(MidX),
+      NewSup = int(TakeInf) ? int(MidX) : SupX
+    };
+  public:
+    enum { ret = ei_meta_sqrt<Y,NewInf,NewSup>::ret };
+};
+
+template<int Y, int InfX, int SupX>
+class ei_meta_sqrt<Y, InfX, SupX, true> { public:  enum { ret = (SupX*SupX <= Y) ? SupX : InfX }; };
+
+} // end namespace Eigen
+
+#endif // EIGEN2_META_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Block.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Block.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Block.h	(revision 2476)
@@ -0,0 +1,126 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BLOCK2_H
+#define EIGEN_BLOCK2_H
+
+namespace Eigen { 
+
+/** \returns a dynamic-size expression of a corner of *this.
+  *
+  * \param type the type of corner. Can be \a Eigen::TopLeft, \a Eigen::TopRight,
+  * \a Eigen::BottomLeft, \a Eigen::BottomRight.
+  * \param cRows the number of rows in the corner
+  * \param cCols the number of columns in the corner
+  *
+  * Example: \include MatrixBase_corner_enum_int_int.cpp
+  * Output: \verbinclude MatrixBase_corner_enum_int_int.out
+  *
+  * \note Even though the returned expression has dynamic size, in the case
+  * when it is applied to a fixed-size matrix, it inherits a fixed maximal size,
+  * which means that evaluating it does not cause a dynamic memory allocation.
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<typename Derived>
+inline Block<Derived> DenseBase<Derived>
+  ::corner(CornerType type, Index cRows, Index cCols)
+{
+  switch(type)
+  {
+    default:
+      eigen_assert(false && "Bad corner type.");
+    case TopLeft:
+      return Block<Derived>(derived(), 0, 0, cRows, cCols);
+    case TopRight:
+      return Block<Derived>(derived(), 0, cols() - cCols, cRows, cCols);
+    case BottomLeft:
+      return Block<Derived>(derived(), rows() - cRows, 0, cRows, cCols);
+    case BottomRight:
+      return Block<Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+  }
+}
+
+/** This is the const version of corner(CornerType, Index, Index).*/
+template<typename Derived>
+inline const Block<Derived>
+DenseBase<Derived>::corner(CornerType type, Index cRows, Index cCols) const
+{
+  switch(type)
+  {
+    default:
+      eigen_assert(false && "Bad corner type.");
+    case TopLeft:
+      return Block<Derived>(derived(), 0, 0, cRows, cCols);
+    case TopRight:
+      return Block<Derived>(derived(), 0, cols() - cCols, cRows, cCols);
+    case BottomLeft:
+      return Block<Derived>(derived(), rows() - cRows, 0, cRows, cCols);
+    case BottomRight:
+      return Block<Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+  }
+}
+
+/** \returns a fixed-size expression of a corner of *this.
+  *
+  * \param type the type of corner. Can be \a Eigen::TopLeft, \a Eigen::TopRight,
+  * \a Eigen::BottomLeft, \a Eigen::BottomRight.
+  *
+  * The template parameters CRows and CCols arethe number of rows and columns in the corner.
+  *
+  * Example: \include MatrixBase_template_int_int_corner_enum.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_corner_enum.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<typename Derived>
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols>
+DenseBase<Derived>::corner(CornerType type)
+{
+  switch(type)
+  {
+    default:
+      eigen_assert(false && "Bad corner type.");
+    case TopLeft:
+      return Block<Derived, CRows, CCols>(derived(), 0, 0);
+    case TopRight:
+      return Block<Derived, CRows, CCols>(derived(), 0, cols() - CCols);
+    case BottomLeft:
+      return Block<Derived, CRows, CCols>(derived(), rows() - CRows, 0);
+    case BottomRight:
+      return Block<Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
+  }
+}
+
+/** This is the const version of corner<int, int>(CornerType).*/
+template<typename Derived>
+template<int CRows, int CCols>
+inline const Block<Derived, CRows, CCols>
+DenseBase<Derived>::corner(CornerType type) const
+{
+  switch(type)
+  {
+    default:
+      eigen_assert(false && "Bad corner type.");
+    case TopLeft:
+      return Block<Derived, CRows, CCols>(derived(), 0, 0);
+    case TopRight:
+      return Block<Derived, CRows, CCols>(derived(), 0, cols() - CCols);
+    case BottomLeft:
+      return Block<Derived, CRows, CCols>(derived(), rows() - CRows, 0);
+    case BottomRight:
+      return Block<Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
+  }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_BLOCK2_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/SVD.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/SVD.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/SVD.h	(revision 2476)
@@ -0,0 +1,637 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN2_SVD_H
+#define EIGEN2_SVD_H
+
+namespace Eigen {
+
+/** \ingroup SVD_Module
+  * \nonstableyet
+  *
+  * \class SVD
+  *
+  * \brief Standard SVD decomposition of a matrix and associated features
+  *
+  * \param MatrixType the type of the matrix of which we are computing the SVD decomposition
+  *
+  * This class performs a standard SVD decomposition of a real matrix A of size \c M x \c N
+  * with \c M \>= \c N.
+  *
+  *
+  * \sa MatrixBase::SVD()
+  */
+template<typename MatrixType> class SVD
+{
+  private:
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+
+    enum {
+      PacketSize = internal::packet_traits<Scalar>::size,
+      AlignmentMask = int(PacketSize)-1,
+      MinSize = EIGEN_SIZE_MIN_PREFER_DYNAMIC(MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime)
+    };
+
+    typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> ColVector;
+    typedef Matrix<Scalar, MatrixType::ColsAtCompileTime, 1> RowVector;
+
+    typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, MinSize> MatrixUType;
+    typedef Matrix<Scalar, MatrixType::ColsAtCompileTime, MatrixType::ColsAtCompileTime> MatrixVType;
+    typedef Matrix<Scalar, MinSize, 1> SingularValuesType;
+
+  public:
+
+    SVD() {} // a user who relied on compiler-generated default compiler reported problems with MSVC in 2.0.7
+    
+    SVD(const MatrixType& matrix)
+      : m_matU(matrix.rows(), (std::min)(matrix.rows(), matrix.cols())),
+        m_matV(matrix.cols(),matrix.cols()),
+        m_sigma((std::min)(matrix.rows(),matrix.cols()))
+    {
+      compute(matrix);
+    }
+
+    template<typename OtherDerived, typename ResultType>
+    bool solve(const MatrixBase<OtherDerived> &b, ResultType* result) const;
+
+    const MatrixUType& matrixU() const { return m_matU; }
+    const SingularValuesType& singularValues() const { return m_sigma; }
+    const MatrixVType& matrixV() const { return m_matV; }
+
+    void compute(const MatrixType& matrix);
+    SVD& sort();
+
+    template<typename UnitaryType, typename PositiveType>
+    void computeUnitaryPositive(UnitaryType *unitary, PositiveType *positive) const;
+    template<typename PositiveType, typename UnitaryType>
+    void computePositiveUnitary(PositiveType *positive, UnitaryType *unitary) const;
+    template<typename RotationType, typename ScalingType>
+    void computeRotationScaling(RotationType *unitary, ScalingType *positive) const;
+    template<typename ScalingType, typename RotationType>
+    void computeScalingRotation(ScalingType *positive, RotationType *unitary) const;
+
+  protected:
+    /** \internal */
+    MatrixUType m_matU;
+    /** \internal */
+    MatrixVType m_matV;
+    /** \internal */
+    SingularValuesType m_sigma;
+};
+
+/** Computes / recomputes the SVD decomposition A = U S V^* of \a matrix
+  *
+  * \note this code has been adapted from JAMA (public domain)
+  */
+template<typename MatrixType>
+void SVD<MatrixType>::compute(const MatrixType& matrix)
+{
+  const int m = matrix.rows();
+  const int n = matrix.cols();
+  const int nu = (std::min)(m,n);
+  ei_assert(m>=n && "In Eigen 2.0, SVD only works for MxN matrices with M>=N. Sorry!");
+  ei_assert(m>1 && "In Eigen 2.0, SVD doesn't work on 1x1 matrices");
+
+  m_matU.resize(m, nu);
+  m_matU.setZero();
+  m_sigma.resize((std::min)(m,n));
+  m_matV.resize(n,n);
+
+  RowVector e(n);
+  ColVector work(m);
+  MatrixType matA(matrix);
+  const bool wantu = true;
+  const bool wantv = true;
+  int i=0, j=0, k=0;
+
+  // Reduce A to bidiagonal form, storing the diagonal elements
+  // in s and the super-diagonal elements in e.
+  int nct = (std::min)(m-1,n);
+  int nrt = (std::max)(0,(std::min)(n-2,m));
+  for (k = 0; k < (std::max)(nct,nrt); ++k)
+  {
+    if (k < nct)
+    {
+      // Compute the transformation for the k-th column and
+      // place the k-th diagonal in m_sigma[k].
+      m_sigma[k] = matA.col(k).end(m-k).norm();
+      if (m_sigma[k] != 0.0) // FIXME
+      {
+        if (matA(k,k) < 0.0)
+          m_sigma[k] = -m_sigma[k];
+        matA.col(k).end(m-k) /= m_sigma[k];
+        matA(k,k) += 1.0;
+      }
+      m_sigma[k] = -m_sigma[k];
+    }
+
+    for (j = k+1; j < n; ++j)
+    {
+      if ((k < nct) && (m_sigma[k] != 0.0))
+      {
+        // Apply the transformation.
+        Scalar t = matA.col(k).end(m-k).eigen2_dot(matA.col(j).end(m-k)); // FIXME dot product or cwise prod + .sum() ??
+        t = -t/matA(k,k);
+        matA.col(j).end(m-k) += t * matA.col(k).end(m-k);
+      }
+
+      // Place the k-th row of A into e for the
+      // subsequent calculation of the row transformation.
+      e[j] = matA(k,j);
+    }
+
+    // Place the transformation in U for subsequent back multiplication.
+    if (wantu & (k < nct))
+      m_matU.col(k).end(m-k) = matA.col(k).end(m-k);
+
+    if (k < nrt)
+    {
+      // Compute the k-th row transformation and place the
+      // k-th super-diagonal in e[k].
+      e[k] = e.end(n-k-1).norm();
+      if (e[k] != 0.0)
+      {
+          if (e[k+1] < 0.0)
+            e[k] = -e[k];
+          e.end(n-k-1) /= e[k];
+          e[k+1] += 1.0;
+      }
+      e[k] = -e[k];
+      if ((k+1 < m) & (e[k] != 0.0))
+      {
+        // Apply the transformation.
+        work.end(m-k-1) = matA.corner(BottomRight,m-k-1,n-k-1) * e.end(n-k-1);
+        for (j = k+1; j < n; ++j)
+          matA.col(j).end(m-k-1) += (-e[j]/e[k+1]) * work.end(m-k-1);
+      }
+
+      // Place the transformation in V for subsequent back multiplication.
+      if (wantv)
+        m_matV.col(k).end(n-k-1) = e.end(n-k-1);
+    }
+  }
+
+
+  // Set up the final bidiagonal matrix or order p.
+  int p = (std::min)(n,m+1);
+  if (nct < n)
+    m_sigma[nct] = matA(nct,nct);
+  if (m < p)
+    m_sigma[p-1] = 0.0;
+  if (nrt+1 < p)
+    e[nrt] = matA(nrt,p-1);
+  e[p-1] = 0.0;
+
+  // If required, generate U.
+  if (wantu)
+  {
+    for (j = nct; j < nu; ++j)
+    {
+      m_matU.col(j).setZero();
+      m_matU(j,j) = 1.0;
+    }
+    for (k = nct-1; k >= 0; k--)
+    {
+      if (m_sigma[k] != 0.0)
+      {
+        for (j = k+1; j < nu; ++j)
+        {
+          Scalar t = m_matU.col(k).end(m-k).eigen2_dot(m_matU.col(j).end(m-k)); // FIXME is it really a dot product we want ?
+          t = -t/m_matU(k,k);
+          m_matU.col(j).end(m-k) += t * m_matU.col(k).end(m-k);
+        }
+        m_matU.col(k).end(m-k) = - m_matU.col(k).end(m-k);
+        m_matU(k,k) = Scalar(1) + m_matU(k,k);
+        if (k-1>0)
+          m_matU.col(k).start(k-1).setZero();
+      }
+      else
+      {
+        m_matU.col(k).setZero();
+        m_matU(k,k) = 1.0;
+      }
+    }
+  }
+
+  // If required, generate V.
+  if (wantv)
+  {
+    for (k = n-1; k >= 0; k--)
+    {
+      if ((k < nrt) & (e[k] != 0.0))
+      {
+        for (j = k+1; j < nu; ++j)
+        {
+          Scalar t = m_matV.col(k).end(n-k-1).eigen2_dot(m_matV.col(j).end(n-k-1)); // FIXME is it really a dot product we want ?
+          t = -t/m_matV(k+1,k);
+          m_matV.col(j).end(n-k-1) += t * m_matV.col(k).end(n-k-1);
+        }
+      }
+      m_matV.col(k).setZero();
+      m_matV(k,k) = 1.0;
+    }
+  }
+
+  // Main iteration loop for the singular values.
+  int pp = p-1;
+  int iter = 0;
+  Scalar eps = ei_pow(Scalar(2),ei_is_same_type<Scalar,float>::ret ? Scalar(-23) : Scalar(-52));
+  while (p > 0)
+  {
+    int k=0;
+    int kase=0;
+
+    // Here is where a test for too many iterations would go.
+
+    // This section of the program inspects for
+    // negligible elements in the s and e arrays.  On
+    // completion the variables kase and k are set as follows.
+
+    // kase = 1     if s(p) and e[k-1] are negligible and k<p
+    // kase = 2     if s(k) is negligible and k<p
+    // kase = 3     if e[k-1] is negligible, k<p, and
+    //              s(k), ..., s(p) are not negligible (qr step).
+    // kase = 4     if e(p-1) is negligible (convergence).
+
+    for (k = p-2; k >= -1; --k)
+    {
+      if (k == -1)
+          break;
+      if (ei_abs(e[k]) <= eps*(ei_abs(m_sigma[k]) + ei_abs(m_sigma[k+1])))
+      {
+          e[k] = 0.0;
+          break;
+      }
+    }
+    if (k == p-2)
+    {
+      kase = 4;
+    }
+    else
+    {
+      int ks;
+      for (ks = p-1; ks >= k; --ks)
+      {
+        if (ks == k)
+          break;
+        Scalar t = (ks != p ? ei_abs(e[ks]) : Scalar(0)) + (ks != k+1 ? ei_abs(e[ks-1]) : Scalar(0));
+        if (ei_abs(m_sigma[ks]) <= eps*t)
+        {
+          m_sigma[ks] = 0.0;
+          break;
+        }
+      }
+      if (ks == k)
+      {
+        kase = 3;
+      }
+      else if (ks == p-1)
+      {
+        kase = 1;
+      }
+      else
+      {
+        kase = 2;
+        k = ks;
+      }
+    }
+    ++k;
+
+    // Perform the task indicated by kase.
+    switch (kase)
+    {
+
+      // Deflate negligible s(p).
+      case 1:
+      {
+        Scalar f(e[p-2]);
+        e[p-2] = 0.0;
+        for (j = p-2; j >= k; --j)
+        {
+          Scalar t(numext::hypot(m_sigma[j],f));
+          Scalar cs(m_sigma[j]/t);
+          Scalar sn(f/t);
+          m_sigma[j] = t;
+          if (j != k)
+          {
+            f = -sn*e[j-1];
+            e[j-1] = cs*e[j-1];
+          }
+          if (wantv)
+          {
+            for (i = 0; i < n; ++i)
+            {
+              t = cs*m_matV(i,j) + sn*m_matV(i,p-1);
+              m_matV(i,p-1) = -sn*m_matV(i,j) + cs*m_matV(i,p-1);
+              m_matV(i,j) = t;
+            }
+          }
+        }
+      }
+      break;
+
+      // Split at negligible s(k).
+      case 2:
+      {
+        Scalar f(e[k-1]);
+        e[k-1] = 0.0;
+        for (j = k; j < p; ++j)
+        {
+          Scalar t(numext::hypot(m_sigma[j],f));
+          Scalar cs( m_sigma[j]/t);
+          Scalar sn(f/t);
+          m_sigma[j] = t;
+          f = -sn*e[j];
+          e[j] = cs*e[j];
+          if (wantu)
+          {
+            for (i = 0; i < m; ++i)
+            {
+              t = cs*m_matU(i,j) + sn*m_matU(i,k-1);
+              m_matU(i,k-1) = -sn*m_matU(i,j) + cs*m_matU(i,k-1);
+              m_matU(i,j) = t;
+            }
+          }
+        }
+      }
+      break;
+
+      // Perform one qr step.
+      case 3:
+      {
+        // Calculate the shift.
+        Scalar scale = (std::max)((std::max)((std::max)((std::max)(
+                        ei_abs(m_sigma[p-1]),ei_abs(m_sigma[p-2])),ei_abs(e[p-2])),
+                        ei_abs(m_sigma[k])),ei_abs(e[k]));
+        Scalar sp = m_sigma[p-1]/scale;
+        Scalar spm1 = m_sigma[p-2]/scale;
+        Scalar epm1 = e[p-2]/scale;
+        Scalar sk = m_sigma[k]/scale;
+        Scalar ek = e[k]/scale;
+        Scalar b = ((spm1 + sp)*(spm1 - sp) + epm1*epm1)/Scalar(2);
+        Scalar c = (sp*epm1)*(sp*epm1);
+        Scalar shift(0);
+        if ((b != 0.0) || (c != 0.0))
+        {
+          shift = ei_sqrt(b*b + c);
+          if (b < 0.0)
+            shift = -shift;
+          shift = c/(b + shift);
+        }
+        Scalar f = (sk + sp)*(sk - sp) + shift;
+        Scalar g = sk*ek;
+
+        // Chase zeros.
+
+        for (j = k; j < p-1; ++j)
+        {
+          Scalar t = numext::hypot(f,g);
+          Scalar cs = f/t;
+          Scalar sn = g/t;
+          if (j != k)
+            e[j-1] = t;
+          f = cs*m_sigma[j] + sn*e[j];
+          e[j] = cs*e[j] - sn*m_sigma[j];
+          g = sn*m_sigma[j+1];
+          m_sigma[j+1] = cs*m_sigma[j+1];
+          if (wantv)
+          {
+            for (i = 0; i < n; ++i)
+            {
+              t = cs*m_matV(i,j) + sn*m_matV(i,j+1);
+              m_matV(i,j+1) = -sn*m_matV(i,j) + cs*m_matV(i,j+1);
+              m_matV(i,j) = t;
+            }
+          }
+          t = numext::hypot(f,g);
+          cs = f/t;
+          sn = g/t;
+          m_sigma[j] = t;
+          f = cs*e[j] + sn*m_sigma[j+1];
+          m_sigma[j+1] = -sn*e[j] + cs*m_sigma[j+1];
+          g = sn*e[j+1];
+          e[j+1] = cs*e[j+1];
+          if (wantu && (j < m-1))
+          {
+            for (i = 0; i < m; ++i)
+            {
+              t = cs*m_matU(i,j) + sn*m_matU(i,j+1);
+              m_matU(i,j+1) = -sn*m_matU(i,j) + cs*m_matU(i,j+1);
+              m_matU(i,j) = t;
+            }
+          }
+        }
+        e[p-2] = f;
+        iter = iter + 1;
+      }
+      break;
+
+      // Convergence.
+      case 4:
+      {
+        // Make the singular values positive.
+        if (m_sigma[k] <= 0.0)
+        {
+          m_sigma[k] = m_sigma[k] < Scalar(0) ? -m_sigma[k] : Scalar(0);
+          if (wantv)
+            m_matV.col(k).start(pp+1) = -m_matV.col(k).start(pp+1);
+        }
+
+        // Order the singular values.
+        while (k < pp)
+        {
+          if (m_sigma[k] >= m_sigma[k+1])
+            break;
+          Scalar t = m_sigma[k];
+          m_sigma[k] = m_sigma[k+1];
+          m_sigma[k+1] = t;
+          if (wantv && (k < n-1))
+            m_matV.col(k).swap(m_matV.col(k+1));
+          if (wantu && (k < m-1))
+            m_matU.col(k).swap(m_matU.col(k+1));
+          ++k;
+        }
+        iter = 0;
+        p--;
+      }
+      break;
+    } // end big switch
+  } // end iterations
+}
+
+template<typename MatrixType>
+SVD<MatrixType>& SVD<MatrixType>::sort()
+{
+  int mu = m_matU.rows();
+  int mv = m_matV.rows();
+  int n  = m_matU.cols();
+
+  for (int i=0; i<n; ++i)
+  {
+    int  k = i;
+    Scalar p = m_sigma.coeff(i);
+
+    for (int j=i+1; j<n; ++j)
+    {
+      if (m_sigma.coeff(j) > p)
+      {
+        k = j;
+        p = m_sigma.coeff(j);
+      }
+    }
+    if (k != i)
+    {
+      m_sigma.coeffRef(k) = m_sigma.coeff(i);  // i.e.
+      m_sigma.coeffRef(i) = p;                 // swaps the i-th and the k-th elements
+
+      int j = mu;
+      for(int s=0; j!=0; ++s, --j)
+        std::swap(m_matU.coeffRef(s,i), m_matU.coeffRef(s,k));
+
+      j = mv;
+      for (int s=0; j!=0; ++s, --j)
+        std::swap(m_matV.coeffRef(s,i), m_matV.coeffRef(s,k));
+    }
+  }
+  return *this;
+}
+
+/** \returns the solution of \f$ A x = b \f$ using the current SVD decomposition of A.
+  * The parts of the solution corresponding to zero singular values are ignored.
+  *
+  * \sa MatrixBase::svd(), LU::solve(), LLT::solve()
+  */
+template<typename MatrixType>
+template<typename OtherDerived, typename ResultType>
+bool SVD<MatrixType>::solve(const MatrixBase<OtherDerived> &b, ResultType* result) const
+{
+  ei_assert(b.rows() == m_matU.rows());
+
+  Scalar maxVal = m_sigma.cwise().abs().maxCoeff();
+  for (int j=0; j<b.cols(); ++j)
+  {
+    Matrix<Scalar,MatrixUType::RowsAtCompileTime,1> aux = m_matU.transpose() * b.col(j);
+
+    for (int i = 0; i <m_matU.cols(); ++i)
+    {
+      Scalar si = m_sigma.coeff(i);
+      if (ei_isMuchSmallerThan(ei_abs(si),maxVal))
+        aux.coeffRef(i) = 0;
+      else
+        aux.coeffRef(i) /= si;
+    }
+
+    result->col(j) = m_matV * aux;
+  }
+  return true;
+}
+
+/** Computes the polar decomposition of the matrix, as a product unitary x positive.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  * Only for square matrices.
+  *
+  * \sa computePositiveUnitary(), computeRotationScaling()
+  */
+template<typename MatrixType>
+template<typename UnitaryType, typename PositiveType>
+void SVD<MatrixType>::computeUnitaryPositive(UnitaryType *unitary,
+                                             PositiveType *positive) const
+{
+  ei_assert(m_matU.cols() == m_matV.cols() && "Polar decomposition is only for square matrices");
+  if(unitary) *unitary = m_matU * m_matV.adjoint();
+  if(positive) *positive = m_matV * m_sigma.asDiagonal() * m_matV.adjoint();
+}
+
+/** Computes the polar decomposition of the matrix, as a product positive x unitary.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  * Only for square matrices.
+  *
+  * \sa computeUnitaryPositive(), computeRotationScaling()
+  */
+template<typename MatrixType>
+template<typename UnitaryType, typename PositiveType>
+void SVD<MatrixType>::computePositiveUnitary(UnitaryType *positive,
+                                             PositiveType *unitary) const
+{
+  ei_assert(m_matU.rows() == m_matV.rows() && "Polar decomposition is only for square matrices");
+  if(unitary) *unitary = m_matU * m_matV.adjoint();
+  if(positive) *positive = m_matU * m_sigma.asDiagonal() * m_matU.adjoint();
+}
+
+/** decomposes the matrix as a product rotation x scaling, the scaling being
+  * not necessarily positive.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  * This method requires the Geometry module.
+  *
+  * \sa computeScalingRotation(), computeUnitaryPositive()
+  */
+template<typename MatrixType>
+template<typename RotationType, typename ScalingType>
+void SVD<MatrixType>::computeRotationScaling(RotationType *rotation, ScalingType *scaling) const
+{
+  ei_assert(m_matU.rows() == m_matV.rows() && "Polar decomposition is only for square matrices");
+  Scalar x = (m_matU * m_matV.adjoint()).determinant(); // so x has absolute value 1
+  Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> sv(m_sigma);
+  sv.coeffRef(0) *= x;
+  if(scaling) scaling->lazyAssign(m_matV * sv.asDiagonal() * m_matV.adjoint());
+  if(rotation)
+  {
+    MatrixType m(m_matU);
+    m.col(0) /= x;
+    rotation->lazyAssign(m * m_matV.adjoint());
+  }
+}
+
+/** decomposes the matrix as a product scaling x rotation, the scaling being
+  * not necessarily positive.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  * This method requires the Geometry module.
+  *
+  * \sa computeRotationScaling(), computeUnitaryPositive()
+  */
+template<typename MatrixType>
+template<typename ScalingType, typename RotationType>
+void SVD<MatrixType>::computeScalingRotation(ScalingType *scaling, RotationType *rotation) const
+{
+  ei_assert(m_matU.rows() == m_matV.rows() && "Polar decomposition is only for square matrices");
+  Scalar x = (m_matU * m_matV.adjoint()).determinant(); // so x has absolute value 1
+  Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> sv(m_sigma);
+  sv.coeffRef(0) *= x;
+  if(scaling) scaling->lazyAssign(m_matU * sv.asDiagonal() * m_matU.adjoint());
+  if(rotation)
+  {
+    MatrixType m(m_matU);
+    m.col(0) /= x;
+    rotation->lazyAssign(m * m_matV.adjoint());
+  }
+}
+
+
+/** \svd_module
+  * \returns the SVD decomposition of \c *this
+  */
+template<typename Derived>
+inline SVD<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::svd() const
+{
+  return SVD<PlainObject>(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN2_SVD_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/TriangularSolver.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/TriangularSolver.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/TriangularSolver.h	(revision 2476)
@@ -0,0 +1,42 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULAR_SOLVER2_H
+#define EIGEN_TRIANGULAR_SOLVER2_H
+
+namespace Eigen { 
+
+const unsigned int UnitDiagBit = UnitDiag;
+const unsigned int SelfAdjointBit = SelfAdjoint;
+const unsigned int UpperTriangularBit = Upper;
+const unsigned int LowerTriangularBit = Lower;
+
+const unsigned int UpperTriangular = Upper;
+const unsigned int LowerTriangular = Lower;
+const unsigned int UnitUpperTriangular = UnitUpper;
+const unsigned int UnitLowerTriangular = UnitLower;
+
+template<typename ExpressionType, unsigned int Added, unsigned int Removed>
+template<typename OtherDerived>
+typename ExpressionType::PlainObject
+Flagged<ExpressionType,Added,Removed>::solveTriangular(const MatrixBase<OtherDerived>& other) const
+{
+  return m_matrix.template triangularView<Added>().solve(other.derived());
+}
+
+template<typename ExpressionType, unsigned int Added, unsigned int Removed>
+template<typename OtherDerived>
+void Flagged<ExpressionType,Added,Removed>::solveTriangularInPlace(const MatrixBase<OtherDerived>& other) const
+{
+  m_matrix.template triangularView<Added>().solveInPlace(other.derived());
+}
+
+} // end namespace Eigen
+    
+#endif // EIGEN_TRIANGULAR_SOLVER2_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/RotationBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/RotationBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/RotationBase.h	(revision 2476)
@@ -0,0 +1,123 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
+
+namespace Eigen { 
+
+// this file aims to contains the various representations of rotation/orientation
+// in 2D and 3D space excepted Matrix and Quaternion.
+
+/** \class RotationBase
+  *
+  * \brief Common base class for compact rotation representations
+  *
+  * \param Derived is the derived type, i.e., a rotation type
+  * \param _Dim the dimension of the space
+  */
+template<typename Derived, int _Dim>
+class RotationBase
+{
+  public:
+    enum { Dim = _Dim };
+    /** the scalar type of the coefficients */
+    typedef typename ei_traits<Derived>::Scalar Scalar;
+    
+    /** corresponding linear transformation matrix type */
+    typedef Matrix<Scalar,Dim,Dim> RotationMatrixType;
+
+    inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
+    inline Derived& derived() { return *static_cast<Derived*>(this); }
+
+    /** \returns an equivalent rotation matrix */
+    inline RotationMatrixType toRotationMatrix() const { return derived().toRotationMatrix(); }
+
+    /** \returns the inverse rotation */
+    inline Derived inverse() const { return derived().inverse(); }
+
+    /** \returns the concatenation of the rotation \c *this with a translation \a t */
+    inline Transform<Scalar,Dim> operator*(const Translation<Scalar,Dim>& t) const
+    { return toRotationMatrix() * t; }
+
+    /** \returns the concatenation of the rotation \c *this with a scaling \a s */
+    inline RotationMatrixType operator*(const Scaling<Scalar,Dim>& s) const
+    { return toRotationMatrix() * s; }
+
+    /** \returns the concatenation of the rotation \c *this with an affine transformation \a t */
+    inline Transform<Scalar,Dim> operator*(const Transform<Scalar,Dim>& t) const
+    { return toRotationMatrix() * t; }
+};
+
+/** \geometry_module
+  *
+  * Constructs a Dim x Dim rotation matrix from the rotation \a r
+  */
+template<typename _Scalar, int _Rows, int _Cols, int _Storage, int _MaxRows, int _MaxCols>
+template<typename OtherDerived>
+Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>
+::Matrix(const RotationBase<OtherDerived,ColsAtCompileTime>& r)
+{
+  EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix,int(OtherDerived::Dim),int(OtherDerived::Dim))
+  *this = r.toRotationMatrix();
+}
+
+/** \geometry_module
+  *
+  * Set a Dim x Dim rotation matrix from the rotation \a r
+  */
+template<typename _Scalar, int _Rows, int _Cols, int _Storage, int _MaxRows, int _MaxCols>
+template<typename OtherDerived>
+Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>&
+Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>
+::operator=(const RotationBase<OtherDerived,ColsAtCompileTime>& r)
+{
+  EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix,int(OtherDerived::Dim),int(OtherDerived::Dim))
+  return *this = r.toRotationMatrix();
+}
+
+/** \internal
+  *
+  * Helper function to return an arbitrary rotation object to a rotation matrix.
+  *
+  * \param Scalar the numeric type of the matrix coefficients
+  * \param Dim the dimension of the current space
+  *
+  * It returns a Dim x Dim fixed size matrix.
+  *
+  * Default specializations are provided for:
+  *   - any scalar type (2D),
+  *   - any matrix expression,
+  *   - any type based on RotationBase (e.g., Quaternion, AngleAxis, Rotation2D)
+  *
+  * Currently ei_toRotationMatrix is only used by Transform.
+  *
+  * \sa class Transform, class Rotation2D, class Quaternion, class AngleAxis
+  */
+template<typename Scalar, int Dim>
+static inline Matrix<Scalar,2,2> ei_toRotationMatrix(const Scalar& s)
+{
+  EIGEN_STATIC_ASSERT(Dim==2,YOU_MADE_A_PROGRAMMING_MISTAKE)
+  return Rotation2D<Scalar>(s).toRotationMatrix();
+}
+
+template<typename Scalar, int Dim, typename OtherDerived>
+static inline Matrix<Scalar,Dim,Dim> ei_toRotationMatrix(const RotationBase<OtherDerived,Dim>& r)
+{
+  return r.toRotationMatrix();
+}
+
+template<typename Scalar, int Dim, typename OtherDerived>
+static inline const MatrixBase<OtherDerived>& ei_toRotationMatrix(const MatrixBase<OtherDerived>& mat)
+{
+  EIGEN_STATIC_ASSERT(OtherDerived::RowsAtCompileTime==Dim && OtherDerived::ColsAtCompileTime==Dim,
+    YOU_MADE_A_PROGRAMMING_MISTAKE)
+  return mat;
+}
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/AngleAxis.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/AngleAxis.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/AngleAxis.h	(revision 2476)
@@ -0,0 +1,214 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class AngleAxis
+  *
+  * \brief Represents a 3D rotation as a rotation angle around an arbitrary 3D axis
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients.
+  *
+  * The following two typedefs are provided for convenience:
+  * \li \c AngleAxisf for \c float
+  * \li \c AngleAxisd for \c double
+  *
+  * \addexample AngleAxisForEuler \label How to define a rotation from Euler-angles
+  *
+  * Combined with MatrixBase::Unit{X,Y,Z}, AngleAxis can be used to easily
+  * mimic Euler-angles. Here is an example:
+  * \include AngleAxis_mimic_euler.cpp
+  * Output: \verbinclude AngleAxis_mimic_euler.out
+  *
+  * \note This class is not aimed to be used to store a rotation transformation,
+  * but rather to make easier the creation of other rotation (Quaternion, rotation Matrix)
+  * and transformation objects.
+  *
+  * \sa class Quaternion, class Transform, MatrixBase::UnitX()
+  */
+
+template<typename _Scalar> struct ei_traits<AngleAxis<_Scalar> >
+{
+  typedef _Scalar Scalar;
+};
+
+template<typename _Scalar>
+class AngleAxis : public RotationBase<AngleAxis<_Scalar>,3>
+{
+  typedef RotationBase<AngleAxis<_Scalar>,3> Base;
+
+public:
+
+  using Base::operator*;
+
+  enum { Dim = 3 };
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+  typedef Matrix<Scalar,3,3> Matrix3;
+  typedef Matrix<Scalar,3,1> Vector3;
+  typedef Quaternion<Scalar> QuaternionType;
+
+protected:
+
+  Vector3 m_axis;
+  Scalar m_angle;
+
+public:
+
+  /** Default constructor without initialization. */
+  AngleAxis() {}
+  /** Constructs and initialize the angle-axis rotation from an \a angle in radian
+    * and an \a axis which must be normalized. */
+  template<typename Derived>
+  inline AngleAxis(Scalar angle, const MatrixBase<Derived>& axis) : m_axis(axis), m_angle(angle) {}
+  /** Constructs and initialize the angle-axis rotation from a quaternion \a q. */
+  inline AngleAxis(const QuaternionType& q) { *this = q; }
+  /** Constructs and initialize the angle-axis rotation from a 3x3 rotation matrix. */
+  template<typename Derived>
+  inline explicit AngleAxis(const MatrixBase<Derived>& m) { *this = m; }
+
+  Scalar angle() const { return m_angle; }
+  Scalar& angle() { return m_angle; }
+
+  const Vector3& axis() const { return m_axis; }
+  Vector3& axis() { return m_axis; }
+
+  /** Concatenates two rotations */
+  inline QuaternionType operator* (const AngleAxis& other) const
+  { return QuaternionType(*this) * QuaternionType(other); }
+
+  /** Concatenates two rotations */
+  inline QuaternionType operator* (const QuaternionType& other) const
+  { return QuaternionType(*this) * other; }
+
+  /** Concatenates two rotations */
+  friend inline QuaternionType operator* (const QuaternionType& a, const AngleAxis& b)
+  { return a * QuaternionType(b); }
+
+  /** Concatenates two rotations */
+  inline Matrix3 operator* (const Matrix3& other) const
+  { return toRotationMatrix() * other; }
+
+  /** Concatenates two rotations */
+  inline friend Matrix3 operator* (const Matrix3& a, const AngleAxis& b)
+  { return a * b.toRotationMatrix(); }
+
+  /** Applies rotation to vector */
+  inline Vector3 operator* (const Vector3& other) const
+  { return toRotationMatrix() * other; }
+
+  /** \returns the inverse rotation, i.e., an angle-axis with opposite rotation angle */
+  AngleAxis inverse() const
+  { return AngleAxis(-m_angle, m_axis); }
+
+  AngleAxis& operator=(const QuaternionType& q);
+  template<typename Derived>
+  AngleAxis& operator=(const MatrixBase<Derived>& m);
+
+  template<typename Derived>
+  AngleAxis& fromRotationMatrix(const MatrixBase<Derived>& m);
+  Matrix3 toRotationMatrix(void) const;
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type cast() const
+  { return typename internal::cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit AngleAxis(const AngleAxis<OtherScalarType>& other)
+  {
+    m_axis = other.axis().template cast<Scalar>();
+    m_angle = Scalar(other.angle());
+  }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const AngleAxis& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
+  { return m_axis.isApprox(other.m_axis, prec) && ei_isApprox(m_angle,other.m_angle, prec); }
+};
+
+/** \ingroup Geometry_Module
+  * single precision angle-axis type */
+typedef AngleAxis<float> AngleAxisf;
+/** \ingroup Geometry_Module
+  * double precision angle-axis type */
+typedef AngleAxis<double> AngleAxisd;
+
+/** Set \c *this from a quaternion.
+  * The axis is normalized.
+  */
+template<typename Scalar>
+AngleAxis<Scalar>& AngleAxis<Scalar>::operator=(const QuaternionType& q)
+{
+  Scalar n2 = q.vec().squaredNorm();
+  if (n2 < precision<Scalar>()*precision<Scalar>())
+  {
+    m_angle = 0;
+    m_axis << 1, 0, 0;
+  }
+  else
+  {
+    m_angle = 2*std::acos(q.w());
+    m_axis = q.vec() / ei_sqrt(n2);
+  }
+  return *this;
+}
+
+/** Set \c *this from a 3x3 rotation matrix \a mat.
+  */
+template<typename Scalar>
+template<typename Derived>
+AngleAxis<Scalar>& AngleAxis<Scalar>::operator=(const MatrixBase<Derived>& mat)
+{
+  // Since a direct conversion would not be really faster,
+  // let's use the robust Quaternion implementation:
+  return *this = QuaternionType(mat);
+}
+
+/** Constructs and \returns an equivalent 3x3 rotation matrix.
+  */
+template<typename Scalar>
+typename AngleAxis<Scalar>::Matrix3
+AngleAxis<Scalar>::toRotationMatrix(void) const
+{
+  Matrix3 res;
+  Vector3 sin_axis  = ei_sin(m_angle) * m_axis;
+  Scalar c = ei_cos(m_angle);
+  Vector3 cos1_axis = (Scalar(1)-c) * m_axis;
+
+  Scalar tmp;
+  tmp = cos1_axis.x() * m_axis.y();
+  res.coeffRef(0,1) = tmp - sin_axis.z();
+  res.coeffRef(1,0) = tmp + sin_axis.z();
+
+  tmp = cos1_axis.x() * m_axis.z();
+  res.coeffRef(0,2) = tmp + sin_axis.y();
+  res.coeffRef(2,0) = tmp - sin_axis.y();
+
+  tmp = cos1_axis.y() * m_axis.z();
+  res.coeffRef(1,2) = tmp - sin_axis.x();
+  res.coeffRef(2,1) = tmp + sin_axis.x();
+
+  res.diagonal() = (cos1_axis.cwise() * m_axis).cwise() + c;
+
+  return res;
+}
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Transform.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Transform.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Transform.h	(revision 2476)
@@ -0,0 +1,786 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
+
+namespace Eigen { 
+
+// Note that we have to pass Dim and HDim because it is not allowed to use a template
+// parameter to define a template specialization. To be more precise, in the following
+// specializations, it is not allowed to use Dim+1 instead of HDim.
+template< typename Other,
+          int Dim,
+          int HDim,
+          int OtherRows=Other::RowsAtCompileTime,
+          int OtherCols=Other::ColsAtCompileTime>
+struct ei_transform_product_impl;
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Transform
+  *
+  * \brief Represents an homogeneous transformation in a N dimensional space
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients
+  * \param _Dim the dimension of the space
+  *
+  * The homography is internally represented and stored as a (Dim+1)^2 matrix which
+  * is available through the matrix() method.
+  *
+  * Conversion methods from/to Qt's QMatrix and QTransform are available if the
+  * preprocessor token EIGEN_QT_SUPPORT is defined.
+  *
+  * \sa class Matrix, class Quaternion
+  */
+template<typename _Scalar, int _Dim>
+class Transform
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Dim==Dynamic ? Dynamic : (_Dim+1)*(_Dim+1))
+  enum {
+    Dim = _Dim,     ///< space dimension in which the transformation holds
+    HDim = _Dim+1   ///< size of a respective homogeneous vector
+  };
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+  /** type of the matrix used to represent the transformation */
+  typedef Matrix<Scalar,HDim,HDim> MatrixType;
+  /** type of the matrix used to represent the linear part of the transformation */
+  typedef Matrix<Scalar,Dim,Dim> LinearMatrixType;
+  /** type of read/write reference to the linear part of the transformation */
+  typedef Block<MatrixType,Dim,Dim> LinearPart;
+  /** type of read/write reference to the linear part of the transformation */
+  typedef const Block<const MatrixType,Dim,Dim> ConstLinearPart;
+  /** type of a vector */
+  typedef Matrix<Scalar,Dim,1> VectorType;
+  /** type of a read/write reference to the translation part of the rotation */
+  typedef Block<MatrixType,Dim,1> TranslationPart;
+  /** type of a read/write reference to the translation part of the rotation */
+  typedef const Block<const MatrixType,Dim,1> ConstTranslationPart;
+  /** corresponding translation type */
+  typedef Translation<Scalar,Dim> TranslationType;
+  /** corresponding scaling transformation type */
+  typedef Scaling<Scalar,Dim> ScalingType;
+
+protected:
+
+  MatrixType m_matrix;
+
+public:
+
+  /** Default constructor without initialization of the coefficients. */
+  inline Transform() { }
+
+  inline Transform(const Transform& other)
+  {
+    m_matrix = other.m_matrix;
+  }
+
+  inline explicit Transform(const TranslationType& t) { *this = t; }
+  inline explicit Transform(const ScalingType& s) { *this = s; }
+  template<typename Derived>
+  inline explicit Transform(const RotationBase<Derived, Dim>& r) { *this = r; }
+
+  inline Transform& operator=(const Transform& other)
+  { m_matrix = other.m_matrix; return *this; }
+
+  template<typename OtherDerived, bool BigMatrix> // MSVC 2005 will commit suicide if BigMatrix has a default value
+  struct construct_from_matrix
+  {
+    static inline void run(Transform *transform, const MatrixBase<OtherDerived>& other)
+    {
+      transform->matrix() = other;
+    }
+  };
+
+  template<typename OtherDerived> struct construct_from_matrix<OtherDerived, true>
+  {
+    static inline void run(Transform *transform, const MatrixBase<OtherDerived>& other)
+    {
+      transform->linear() = other;
+      transform->translation().setZero();
+      transform->matrix()(Dim,Dim) = Scalar(1);
+      transform->matrix().template block<1,Dim>(Dim,0).setZero();
+    }
+  };
+
+  /** Constructs and initializes a transformation from a Dim^2 or a (Dim+1)^2 matrix. */
+  template<typename OtherDerived>
+  inline explicit Transform(const MatrixBase<OtherDerived>& other)
+  {
+    construct_from_matrix<OtherDerived, int(OtherDerived::RowsAtCompileTime) == Dim>::run(this, other);
+  }
+
+  /** Set \c *this from a (Dim+1)^2 matrix. */
+  template<typename OtherDerived>
+  inline Transform& operator=(const MatrixBase<OtherDerived>& other)
+  { m_matrix = other; return *this; }
+
+  #ifdef EIGEN_QT_SUPPORT
+  inline Transform(const QMatrix& other);
+  inline Transform& operator=(const QMatrix& other);
+  inline QMatrix toQMatrix(void) const;
+  inline Transform(const QTransform& other);
+  inline Transform& operator=(const QTransform& other);
+  inline QTransform toQTransform(void) const;
+  #endif
+
+  /** shortcut for m_matrix(row,col);
+    * \sa MatrixBase::operaror(int,int) const */
+  inline Scalar operator() (int row, int col) const { return m_matrix(row,col); }
+  /** shortcut for m_matrix(row,col);
+    * \sa MatrixBase::operaror(int,int) */
+  inline Scalar& operator() (int row, int col) { return m_matrix(row,col); }
+
+  /** \returns a read-only expression of the transformation matrix */
+  inline const MatrixType& matrix() const { return m_matrix; }
+  /** \returns a writable expression of the transformation matrix */
+  inline MatrixType& matrix() { return m_matrix; }
+
+  /** \returns a read-only expression of the linear (linear) part of the transformation */
+  inline ConstLinearPart linear() const { return m_matrix.template block<Dim,Dim>(0,0); }
+  /** \returns a writable expression of the linear (linear) part of the transformation */
+  inline LinearPart linear() { return m_matrix.template block<Dim,Dim>(0,0); }
+
+  /** \returns a read-only expression of the translation vector of the transformation */
+  inline ConstTranslationPart translation() const { return m_matrix.template block<Dim,1>(0,Dim); }
+  /** \returns a writable expression of the translation vector of the transformation */
+  inline TranslationPart translation() { return m_matrix.template block<Dim,1>(0,Dim); }
+
+  /** \returns an expression of the product between the transform \c *this and a matrix expression \a other
+  *
+  * The right hand side \a other might be either:
+  * \li a vector of size Dim,
+  * \li an homogeneous vector of size Dim+1,
+  * \li a transformation matrix of size Dim+1 x Dim+1.
+  */
+  // note: this function is defined here because some compilers cannot find the respective declaration
+  template<typename OtherDerived>
+  inline const typename ei_transform_product_impl<OtherDerived,_Dim,_Dim+1>::ResultType
+  operator * (const MatrixBase<OtherDerived> &other) const
+  { return ei_transform_product_impl<OtherDerived,Dim,HDim>::run(*this,other.derived()); }
+
+  /** \returns the product expression of a transformation matrix \a a times a transform \a b
+    * The transformation matrix \a a must have a Dim+1 x Dim+1 sizes. */
+  template<typename OtherDerived>
+  friend inline const typename ProductReturnType<OtherDerived,MatrixType>::Type
+  operator * (const MatrixBase<OtherDerived> &a, const Transform &b)
+  { return a.derived() * b.matrix(); }
+
+  /** Contatenates two transformations */
+  inline const Transform
+  operator * (const Transform& other) const
+  { return Transform(m_matrix * other.matrix()); }
+
+  /** \sa MatrixBase::setIdentity() */
+  void setIdentity() { m_matrix.setIdentity(); }
+  static const typename MatrixType::IdentityReturnType Identity()
+  {
+    return MatrixType::Identity();
+  }
+
+  template<typename OtherDerived>
+  inline Transform& scale(const MatrixBase<OtherDerived> &other);
+
+  template<typename OtherDerived>
+  inline Transform& prescale(const MatrixBase<OtherDerived> &other);
+
+  inline Transform& scale(Scalar s);
+  inline Transform& prescale(Scalar s);
+
+  template<typename OtherDerived>
+  inline Transform& translate(const MatrixBase<OtherDerived> &other);
+
+  template<typename OtherDerived>
+  inline Transform& pretranslate(const MatrixBase<OtherDerived> &other);
+
+  template<typename RotationType>
+  inline Transform& rotate(const RotationType& rotation);
+
+  template<typename RotationType>
+  inline Transform& prerotate(const RotationType& rotation);
+
+  Transform& shear(Scalar sx, Scalar sy);
+  Transform& preshear(Scalar sx, Scalar sy);
+
+  inline Transform& operator=(const TranslationType& t);
+  inline Transform& operator*=(const TranslationType& t) { return translate(t.vector()); }
+  inline Transform operator*(const TranslationType& t) const;
+
+  inline Transform& operator=(const ScalingType& t);
+  inline Transform& operator*=(const ScalingType& s) { return scale(s.coeffs()); }
+  inline Transform operator*(const ScalingType& s) const;
+  friend inline Transform operator*(const LinearMatrixType& mat, const Transform& t)
+  {
+    Transform res = t;
+    res.matrix().row(Dim) = t.matrix().row(Dim);
+    res.matrix().template block<Dim,HDim>(0,0) = (mat * t.matrix().template block<Dim,HDim>(0,0)).lazy();
+    return res;
+  }
+
+  template<typename Derived>
+  inline Transform& operator=(const RotationBase<Derived,Dim>& r);
+  template<typename Derived>
+  inline Transform& operator*=(const RotationBase<Derived,Dim>& r) { return rotate(r.toRotationMatrix()); }
+  template<typename Derived>
+  inline Transform operator*(const RotationBase<Derived,Dim>& r) const;
+
+  LinearMatrixType rotation() const;
+  template<typename RotationMatrixType, typename ScalingMatrixType>
+  void computeRotationScaling(RotationMatrixType *rotation, ScalingMatrixType *scaling) const;
+  template<typename ScalingMatrixType, typename RotationMatrixType>
+  void computeScalingRotation(ScalingMatrixType *scaling, RotationMatrixType *rotation) const;
+
+  template<typename PositionDerived, typename OrientationType, typename ScaleDerived>
+  Transform& fromPositionOrientationScale(const MatrixBase<PositionDerived> &position,
+    const OrientationType& orientation, const MatrixBase<ScaleDerived> &scale);
+
+  inline const MatrixType inverse(TransformTraits traits = Affine) const;
+
+  /** \returns a const pointer to the column major internal matrix */
+  const Scalar* data() const { return m_matrix.data(); }
+  /** \returns a non-const pointer to the column major internal matrix */
+  Scalar* data() { return m_matrix.data(); }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim> >::type cast() const
+  { return typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit Transform(const Transform<OtherScalarType,Dim>& other)
+  { m_matrix = other.matrix().template cast<Scalar>(); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const Transform& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
+  { return m_matrix.isApprox(other.m_matrix, prec); }
+
+  #ifdef EIGEN_TRANSFORM_PLUGIN
+  #include EIGEN_TRANSFORM_PLUGIN
+  #endif
+
+protected:
+
+};
+
+/** \ingroup Geometry_Module */
+typedef Transform<float,2> Transform2f;
+/** \ingroup Geometry_Module */
+typedef Transform<float,3> Transform3f;
+/** \ingroup Geometry_Module */
+typedef Transform<double,2> Transform2d;
+/** \ingroup Geometry_Module */
+typedef Transform<double,3> Transform3d;
+
+/**************************
+*** Optional QT support ***
+**************************/
+
+#ifdef EIGEN_QT_SUPPORT
+/** Initialises \c *this from a QMatrix assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim>
+Transform<Scalar,Dim>::Transform(const QMatrix& other)
+{
+  *this = other;
+}
+
+/** Set \c *this from a QMatrix assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim>
+Transform<Scalar,Dim>& Transform<Scalar,Dim>::operator=(const QMatrix& other)
+{
+  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  m_matrix << other.m11(), other.m21(), other.dx(),
+              other.m12(), other.m22(), other.dy(),
+              0, 0, 1;
+   return *this;
+}
+
+/** \returns a QMatrix from \c *this assuming the dimension is 2.
+  *
+  * \warning this convertion might loss data if \c *this is not affine
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim>
+QMatrix Transform<Scalar,Dim>::toQMatrix(void) const
+{
+  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  return QMatrix(m_matrix.coeff(0,0), m_matrix.coeff(1,0),
+                 m_matrix.coeff(0,1), m_matrix.coeff(1,1),
+                 m_matrix.coeff(0,2), m_matrix.coeff(1,2));
+}
+
+/** Initialises \c *this from a QTransform assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim>
+Transform<Scalar,Dim>::Transform(const QTransform& other)
+{
+  *this = other;
+}
+
+/** Set \c *this from a QTransform assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim>
+Transform<Scalar,Dim>& Transform<Scalar,Dim>::operator=(const QTransform& other)
+{
+  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  m_matrix << other.m11(), other.m21(), other.dx(),
+              other.m12(), other.m22(), other.dy(),
+              other.m13(), other.m23(), other.m33();
+   return *this;
+}
+
+/** \returns a QTransform from \c *this assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim>
+QTransform Transform<Scalar,Dim>::toQTransform(void) const
+{
+  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  return QTransform(m_matrix.coeff(0,0), m_matrix.coeff(1,0), m_matrix.coeff(2,0),
+                    m_matrix.coeff(0,1), m_matrix.coeff(1,1), m_matrix.coeff(2,1),
+                    m_matrix.coeff(0,2), m_matrix.coeff(1,2), m_matrix.coeff(2,2));
+}
+#endif
+
+/*********************
+*** Procedural API ***
+*********************/
+
+/** Applies on the right the non uniform scale transformation represented
+  * by the vector \a other to \c *this and returns a reference to \c *this.
+  * \sa prescale()
+  */
+template<typename Scalar, int Dim>
+template<typename OtherDerived>
+Transform<Scalar,Dim>&
+Transform<Scalar,Dim>::scale(const MatrixBase<OtherDerived> &other)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+  linear() = (linear() * other.asDiagonal()).lazy();
+  return *this;
+}
+
+/** Applies on the right a uniform scale of a factor \a c to \c *this
+  * and returns a reference to \c *this.
+  * \sa prescale(Scalar)
+  */
+template<typename Scalar, int Dim>
+inline Transform<Scalar,Dim>& Transform<Scalar,Dim>::scale(Scalar s)
+{
+  linear() *= s;
+  return *this;
+}
+
+/** Applies on the left the non uniform scale transformation represented
+  * by the vector \a other to \c *this and returns a reference to \c *this.
+  * \sa scale()
+  */
+template<typename Scalar, int Dim>
+template<typename OtherDerived>
+Transform<Scalar,Dim>&
+Transform<Scalar,Dim>::prescale(const MatrixBase<OtherDerived> &other)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+  m_matrix.template block<Dim,HDim>(0,0) = (other.asDiagonal() * m_matrix.template block<Dim,HDim>(0,0)).lazy();
+  return *this;
+}
+
+/** Applies on the left a uniform scale of a factor \a c to \c *this
+  * and returns a reference to \c *this.
+  * \sa scale(Scalar)
+  */
+template<typename Scalar, int Dim>
+inline Transform<Scalar,Dim>& Transform<Scalar,Dim>::prescale(Scalar s)
+{
+  m_matrix.template corner<Dim,HDim>(TopLeft) *= s;
+  return *this;
+}
+
+/** Applies on the right the translation matrix represented by the vector \a other
+  * to \c *this and returns a reference to \c *this.
+  * \sa pretranslate()
+  */
+template<typename Scalar, int Dim>
+template<typename OtherDerived>
+Transform<Scalar,Dim>&
+Transform<Scalar,Dim>::translate(const MatrixBase<OtherDerived> &other)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+  translation() += linear() * other;
+  return *this;
+}
+
+/** Applies on the left the translation matrix represented by the vector \a other
+  * to \c *this and returns a reference to \c *this.
+  * \sa translate()
+  */
+template<typename Scalar, int Dim>
+template<typename OtherDerived>
+Transform<Scalar,Dim>&
+Transform<Scalar,Dim>::pretranslate(const MatrixBase<OtherDerived> &other)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+  translation() += other;
+  return *this;
+}
+
+/** Applies on the right the rotation represented by the rotation \a rotation
+  * to \c *this and returns a reference to \c *this.
+  *
+  * The template parameter \a RotationType is the type of the rotation which
+  * must be known by ei_toRotationMatrix<>.
+  *
+  * Natively supported types includes:
+  *   - any scalar (2D),
+  *   - a Dim x Dim matrix expression,
+  *   - a Quaternion (3D),
+  *   - a AngleAxis (3D)
+  *
+  * This mechanism is easily extendable to support user types such as Euler angles,
+  * or a pair of Quaternion for 4D rotations.
+  *
+  * \sa rotate(Scalar), class Quaternion, class AngleAxis, prerotate(RotationType)
+  */
+template<typename Scalar, int Dim>
+template<typename RotationType>
+Transform<Scalar,Dim>&
+Transform<Scalar,Dim>::rotate(const RotationType& rotation)
+{
+  linear() *= ei_toRotationMatrix<Scalar,Dim>(rotation);
+  return *this;
+}
+
+/** Applies on the left the rotation represented by the rotation \a rotation
+  * to \c *this and returns a reference to \c *this.
+  *
+  * See rotate() for further details.
+  *
+  * \sa rotate()
+  */
+template<typename Scalar, int Dim>
+template<typename RotationType>
+Transform<Scalar,Dim>&
+Transform<Scalar,Dim>::prerotate(const RotationType& rotation)
+{
+  m_matrix.template block<Dim,HDim>(0,0) = ei_toRotationMatrix<Scalar,Dim>(rotation)
+                                         * m_matrix.template block<Dim,HDim>(0,0);
+  return *this;
+}
+
+/** Applies on the right the shear transformation represented
+  * by the vector \a other to \c *this and returns a reference to \c *this.
+  * \warning 2D only.
+  * \sa preshear()
+  */
+template<typename Scalar, int Dim>
+Transform<Scalar,Dim>&
+Transform<Scalar,Dim>::shear(Scalar sx, Scalar sy)
+{
+  EIGEN_STATIC_ASSERT(int(Dim)==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  VectorType tmp = linear().col(0)*sy + linear().col(1);
+  linear() << linear().col(0) + linear().col(1)*sx, tmp;
+  return *this;
+}
+
+/** Applies on the left the shear transformation represented
+  * by the vector \a other to \c *this and returns a reference to \c *this.
+  * \warning 2D only.
+  * \sa shear()
+  */
+template<typename Scalar, int Dim>
+Transform<Scalar,Dim>&
+Transform<Scalar,Dim>::preshear(Scalar sx, Scalar sy)
+{
+  EIGEN_STATIC_ASSERT(int(Dim)==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  m_matrix.template block<Dim,HDim>(0,0) = LinearMatrixType(1, sx, sy, 1) * m_matrix.template block<Dim,HDim>(0,0);
+  return *this;
+}
+
+/******************************************************
+*** Scaling, Translation and Rotation compatibility ***
+******************************************************/
+
+template<typename Scalar, int Dim>
+inline Transform<Scalar,Dim>& Transform<Scalar,Dim>::operator=(const TranslationType& t)
+{
+  linear().setIdentity();
+  translation() = t.vector();
+  m_matrix.template block<1,Dim>(Dim,0).setZero();
+  m_matrix(Dim,Dim) = Scalar(1);
+  return *this;
+}
+
+template<typename Scalar, int Dim>
+inline Transform<Scalar,Dim> Transform<Scalar,Dim>::operator*(const TranslationType& t) const
+{
+  Transform res = *this;
+  res.translate(t.vector());
+  return res;
+}
+
+template<typename Scalar, int Dim>
+inline Transform<Scalar,Dim>& Transform<Scalar,Dim>::operator=(const ScalingType& s)
+{
+  m_matrix.setZero();
+  linear().diagonal() = s.coeffs();
+  m_matrix.coeffRef(Dim,Dim) = Scalar(1);
+  return *this;
+}
+
+template<typename Scalar, int Dim>
+inline Transform<Scalar,Dim> Transform<Scalar,Dim>::operator*(const ScalingType& s) const
+{
+  Transform res = *this;
+  res.scale(s.coeffs());
+  return res;
+}
+
+template<typename Scalar, int Dim>
+template<typename Derived>
+inline Transform<Scalar,Dim>& Transform<Scalar,Dim>::operator=(const RotationBase<Derived,Dim>& r)
+{
+  linear() = ei_toRotationMatrix<Scalar,Dim>(r);
+  translation().setZero();
+  m_matrix.template block<1,Dim>(Dim,0).setZero();
+  m_matrix.coeffRef(Dim,Dim) = Scalar(1);
+  return *this;
+}
+
+template<typename Scalar, int Dim>
+template<typename Derived>
+inline Transform<Scalar,Dim> Transform<Scalar,Dim>::operator*(const RotationBase<Derived,Dim>& r) const
+{
+  Transform res = *this;
+  res.rotate(r.derived());
+  return res;
+}
+
+/************************
+*** Special functions ***
+************************/
+
+/** \returns the rotation part of the transformation
+  * \nonstableyet
+  *
+  * \svd_module
+  *
+  * \sa computeRotationScaling(), computeScalingRotation(), class SVD
+  */
+template<typename Scalar, int Dim>
+typename Transform<Scalar,Dim>::LinearMatrixType
+Transform<Scalar,Dim>::rotation() const
+{
+  LinearMatrixType result;
+  computeRotationScaling(&result, (LinearMatrixType*)0);
+  return result;
+}
+
+
+/** decomposes the linear part of the transformation as a product rotation x scaling, the scaling being
+  * not necessarily positive.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  * \nonstableyet
+  *
+  * \svd_module
+  *
+  * \sa computeScalingRotation(), rotation(), class SVD
+  */
+template<typename Scalar, int Dim>
+template<typename RotationMatrixType, typename ScalingMatrixType>
+void Transform<Scalar,Dim>::computeRotationScaling(RotationMatrixType *rotation, ScalingMatrixType *scaling) const
+{
+  JacobiSVD<LinearMatrixType> svd(linear(), ComputeFullU|ComputeFullV);
+  Scalar x = (svd.matrixU() * svd.matrixV().adjoint()).determinant(); // so x has absolute value 1
+  Matrix<Scalar, Dim, 1> sv(svd.singularValues());
+  sv.coeffRef(0) *= x;
+  if(scaling)
+  {
+    scaling->noalias() = svd.matrixV() * sv.asDiagonal() * svd.matrixV().adjoint();
+  }
+  if(rotation)
+  {
+    LinearMatrixType m(svd.matrixU());
+    m.col(0) /= x;
+    rotation->noalias() = m * svd.matrixV().adjoint();
+  }
+}
+
+/** decomposes the linear part of the transformation as a product rotation x scaling, the scaling being
+  * not necessarily positive.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  * \nonstableyet
+  *
+  * \svd_module
+  *
+  * \sa computeRotationScaling(), rotation(), class SVD
+  */
+template<typename Scalar, int Dim>
+template<typename ScalingMatrixType, typename RotationMatrixType>
+void Transform<Scalar,Dim>::computeScalingRotation(ScalingMatrixType *scaling, RotationMatrixType *rotation) const
+{
+  JacobiSVD<LinearMatrixType> svd(linear(), ComputeFullU|ComputeFullV);
+  Scalar x = (svd.matrixU() * svd.matrixV().adjoint()).determinant(); // so x has absolute value 1
+  Matrix<Scalar, Dim, 1> sv(svd.singularValues());
+  sv.coeffRef(0) *= x;
+  if(scaling)
+  {
+    scaling->noalias() = svd.matrixU() * sv.asDiagonal() * svd.matrixU().adjoint();
+  }
+  if(rotation)
+  {
+    LinearMatrixType m(svd.matrixU());
+    m.col(0) /= x;
+    rotation->noalias() = m * svd.matrixV().adjoint();
+  }
+}
+
+/** Convenient method to set \c *this from a position, orientation and scale
+  * of a 3D object.
+  */
+template<typename Scalar, int Dim>
+template<typename PositionDerived, typename OrientationType, typename ScaleDerived>
+Transform<Scalar,Dim>&
+Transform<Scalar,Dim>::fromPositionOrientationScale(const MatrixBase<PositionDerived> &position,
+  const OrientationType& orientation, const MatrixBase<ScaleDerived> &scale)
+{
+  linear() = ei_toRotationMatrix<Scalar,Dim>(orientation);
+  linear() *= scale.asDiagonal();
+  translation() = position;
+  m_matrix.template block<1,Dim>(Dim,0).setZero();
+  m_matrix(Dim,Dim) = Scalar(1);
+  return *this;
+}
+
+/** \nonstableyet
+  *
+  * \returns the inverse transformation matrix according to some given knowledge
+  * on \c *this.
+  *
+  * \param traits allows to optimize the inversion process when the transformion
+  * is known to be not a general transformation. The possible values are:
+  *  - Projective if the transformation is not necessarily affine, i.e., if the
+  *    last row is not guaranteed to be [0 ... 0 1]
+  *  - Affine is the default, the last row is assumed to be [0 ... 0 1]
+  *  - Isometry if the transformation is only a concatenations of translations
+  *    and rotations.
+  *
+  * \warning unless \a traits is always set to NoShear or NoScaling, this function
+  * requires the generic inverse method of MatrixBase defined in the LU module. If
+  * you forget to include this module, then you will get hard to debug linking errors.
+  *
+  * \sa MatrixBase::inverse()
+  */
+template<typename Scalar, int Dim>
+inline const typename Transform<Scalar,Dim>::MatrixType
+Transform<Scalar,Dim>::inverse(TransformTraits traits) const
+{
+  if (traits == Projective)
+  {
+    return m_matrix.inverse();
+  }
+  else
+  {
+    MatrixType res;
+    if (traits == Affine)
+    {
+      res.template corner<Dim,Dim>(TopLeft) = linear().inverse();
+    }
+    else if (traits == Isometry)
+    {
+      res.template corner<Dim,Dim>(TopLeft) = linear().transpose();
+    }
+    else
+    {
+      ei_assert("invalid traits value in Transform::inverse()");
+    }
+    // translation and remaining parts
+    res.template corner<Dim,1>(TopRight) = - res.template corner<Dim,Dim>(TopLeft) * translation();
+    res.template corner<1,Dim>(BottomLeft).setZero();
+    res.coeffRef(Dim,Dim) = Scalar(1);
+    return res;
+  }
+}
+
+/*****************************************************
+*** Specializations of operator* with a MatrixBase ***
+*****************************************************/
+
+template<typename Other, int Dim, int HDim>
+struct ei_transform_product_impl<Other,Dim,HDim, HDim,HDim>
+{
+  typedef Transform<typename Other::Scalar,Dim> TransformType;
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef typename ProductReturnType<MatrixType,Other>::Type ResultType;
+  static ResultType run(const TransformType& tr, const Other& other)
+  { return tr.matrix() * other; }
+};
+
+template<typename Other, int Dim, int HDim>
+struct ei_transform_product_impl<Other,Dim,HDim, Dim,Dim>
+{
+  typedef Transform<typename Other::Scalar,Dim> TransformType;
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef TransformType ResultType;
+  static ResultType run(const TransformType& tr, const Other& other)
+  {
+    TransformType res;
+    res.translation() = tr.translation();
+    res.matrix().row(Dim) = tr.matrix().row(Dim);
+    res.linear() = (tr.linear() * other).lazy();
+    return res;
+  }
+};
+
+template<typename Other, int Dim, int HDim>
+struct ei_transform_product_impl<Other,Dim,HDim, HDim,1>
+{
+  typedef Transform<typename Other::Scalar,Dim> TransformType;
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef typename ProductReturnType<MatrixType,Other>::Type ResultType;
+  static ResultType run(const TransformType& tr, const Other& other)
+  { return tr.matrix() * other; }
+};
+
+template<typename Other, int Dim, int HDim>
+struct ei_transform_product_impl<Other,Dim,HDim, Dim,1>
+{
+  typedef typename Other::Scalar Scalar;
+  typedef Transform<Scalar,Dim> TransformType;
+  typedef Matrix<Scalar,Dim,1> ResultType;
+  static ResultType run(const TransformType& tr, const Other& other)
+  { return ((tr.linear() * other) + tr.translation())
+          * (Scalar(1) / ( (tr.matrix().template block<1,Dim>(Dim,0) * other).coeff(0) + tr.matrix().coeff(Dim,Dim))); }
+};
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/AlignedBox.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/AlignedBox.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/AlignedBox.h	(revision 2476)
@@ -0,0 +1,159 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  * \nonstableyet
+  *
+  * \class AlignedBox
+  *
+  * \brief An axis aligned box
+  *
+  * \param _Scalar the type of the scalar coefficients
+  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+  *
+  * This class represents an axis aligned box as a pair of the minimal and maximal corners.
+  */
+template <typename _Scalar, int _AmbientDim>
+class AlignedBox
+{
+public:
+EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1)
+  enum { AmbientDimAtCompileTime = _AmbientDim };
+  typedef _Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
+
+  /** Default constructor initializing a null box. */
+  inline AlignedBox()
+  { if (AmbientDimAtCompileTime!=Dynamic) setNull(); }
+
+  /** Constructs a null box with \a _dim the dimension of the ambient space. */
+  inline explicit AlignedBox(int _dim) : m_min(_dim), m_max(_dim)
+  { setNull(); }
+
+  /** Constructs a box with extremities \a _min and \a _max. */
+  inline AlignedBox(const VectorType& _min, const VectorType& _max) : m_min(_min), m_max(_max) {}
+
+  /** Constructs a box containing a single point \a p. */
+  inline explicit AlignedBox(const VectorType& p) : m_min(p), m_max(p) {}
+
+  ~AlignedBox() {}
+
+  /** \returns the dimension in which the box holds */
+  inline int dim() const { return AmbientDimAtCompileTime==Dynamic ? m_min.size()-1 : AmbientDimAtCompileTime; }
+
+  /** \returns true if the box is null, i.e, empty. */
+  inline bool isNull() const { return (m_min.cwise() > m_max).any(); }
+
+  /** Makes \c *this a null/empty box. */
+  inline void setNull()
+  {
+    m_min.setConstant( (std::numeric_limits<Scalar>::max)());
+    m_max.setConstant(-(std::numeric_limits<Scalar>::max)());
+  }
+
+  /** \returns the minimal corner */
+  inline const VectorType& (min)() const { return m_min; }
+  /** \returns a non const reference to the minimal corner */
+  inline VectorType& (min)() { return m_min; }
+  /** \returns the maximal corner */
+  inline const VectorType& (max)() const { return m_max; }
+  /** \returns a non const reference to the maximal corner */
+  inline VectorType& (max)() { return m_max; }
+
+  /** \returns true if the point \a p is inside the box \c *this. */
+  inline bool contains(const VectorType& p) const
+  { return (m_min.cwise()<=p).all() && (p.cwise()<=m_max).all(); }
+
+  /** \returns true if the box \a b is entirely inside the box \c *this. */
+  inline bool contains(const AlignedBox& b) const
+  { return (m_min.cwise()<=(b.min)()).all() && ((b.max)().cwise()<=m_max).all(); }
+
+  /** Extends \c *this such that it contains the point \a p and returns a reference to \c *this. */
+  inline AlignedBox& extend(const VectorType& p)
+  { m_min = (m_min.cwise().min)(p); m_max = (m_max.cwise().max)(p); return *this; }
+
+  /** Extends \c *this such that it contains the box \a b and returns a reference to \c *this. */
+  inline AlignedBox& extend(const AlignedBox& b)
+  { m_min = (m_min.cwise().min)(b.m_min); m_max = (m_max.cwise().max)(b.m_max); return *this; }
+
+  /** Clamps \c *this by the box \a b and returns a reference to \c *this. */
+  inline AlignedBox& clamp(const AlignedBox& b)
+  { m_min = (m_min.cwise().max)(b.m_min); m_max = (m_max.cwise().min)(b.m_max); return *this; }
+
+  /** Translate \c *this by the vector \a t and returns a reference to \c *this. */
+  inline AlignedBox& translate(const VectorType& t)
+  { m_min += t; m_max += t; return *this; }
+
+  /** \returns the squared distance between the point \a p and the box \c *this,
+    * and zero if \a p is inside the box.
+    * \sa exteriorDistance()
+    */
+  inline Scalar squaredExteriorDistance(const VectorType& p) const;
+
+  /** \returns the distance between the point \a p and the box \c *this,
+    * and zero if \a p is inside the box.
+    * \sa squaredExteriorDistance()
+    */
+  inline Scalar exteriorDistance(const VectorType& p) const
+  { return ei_sqrt(squaredExteriorDistance(p)); }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<AlignedBox,
+           AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
+  {
+    return typename internal::cast_return_type<AlignedBox,
+                    AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
+  }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit AlignedBox(const AlignedBox<OtherScalarType,AmbientDimAtCompileTime>& other)
+  {
+    m_min = (other.min)().template cast<Scalar>();
+    m_max = (other.max)().template cast<Scalar>();
+  }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const AlignedBox& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
+  { return m_min.isApprox(other.m_min, prec) && m_max.isApprox(other.m_max, prec); }
+
+protected:
+
+  VectorType m_min, m_max;
+};
+
+template<typename Scalar,int AmbiantDim>
+inline Scalar AlignedBox<Scalar,AmbiantDim>::squaredExteriorDistance(const VectorType& p) const
+{
+  Scalar dist2(0);
+  Scalar aux;
+  for (int k=0; k<dim(); ++k)
+  {
+    if ((aux = (p[k]-m_min[k]))<Scalar(0))
+      dist2 += aux*aux;
+    else if ( (aux = (m_max[k]-p[k]))<Scalar(0))
+      dist2 += aux*aux;
+  }
+  return dist2;
+}
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Translation.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Translation.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Translation.h	(revision 2476)
@@ -0,0 +1,184 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Translation
+  *
+  * \brief Represents a translation transformation
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients.
+  * \param _Dim the  dimension of the space, can be a compile time value or Dynamic
+  *
+  * \note This class is not aimed to be used to store a translation transformation,
+  * but rather to make easier the constructions and updates of Transform objects.
+  *
+  * \sa class Scaling, class Transform
+  */
+template<typename _Scalar, int _Dim>
+class Translation
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Dim)
+  /** dimension of the space */
+  enum { Dim = _Dim };
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+  /** corresponding vector type */
+  typedef Matrix<Scalar,Dim,1> VectorType;
+  /** corresponding linear transformation matrix type */
+  typedef Matrix<Scalar,Dim,Dim> LinearMatrixType;
+  /** corresponding scaling transformation type */
+  typedef Scaling<Scalar,Dim> ScalingType;
+  /** corresponding affine transformation type */
+  typedef Transform<Scalar,Dim> TransformType;
+
+protected:
+
+  VectorType m_coeffs;
+
+public:
+
+  /** Default constructor without initialization. */
+  Translation() {}
+  /**  */
+  inline Translation(const Scalar& sx, const Scalar& sy)
+  {
+    ei_assert(Dim==2);
+    m_coeffs.x() = sx;
+    m_coeffs.y() = sy;
+  }
+  /**  */
+  inline Translation(const Scalar& sx, const Scalar& sy, const Scalar& sz)
+  {
+    ei_assert(Dim==3);
+    m_coeffs.x() = sx;
+    m_coeffs.y() = sy;
+    m_coeffs.z() = sz;
+  }
+  /** Constructs and initialize the scaling transformation from a vector of scaling coefficients */
+  explicit inline Translation(const VectorType& vector) : m_coeffs(vector) {}
+
+  const VectorType& vector() const { return m_coeffs; }
+  VectorType& vector() { return m_coeffs; }
+
+  /** Concatenates two translation */
+  inline Translation operator* (const Translation& other) const
+  { return Translation(m_coeffs + other.m_coeffs); }
+
+  /** Concatenates a translation and a scaling */
+  inline TransformType operator* (const ScalingType& other) const;
+
+  /** Concatenates a translation and a linear transformation */
+  inline TransformType operator* (const LinearMatrixType& linear) const;
+
+  template<typename Derived>
+  inline TransformType operator*(const RotationBase<Derived,Dim>& r) const
+  { return *this * r.toRotationMatrix(); }
+
+  /** Concatenates a linear transformation and a translation */
+  // its a nightmare to define a templated friend function outside its declaration
+  friend inline TransformType operator* (const LinearMatrixType& linear, const Translation& t)
+  {
+    TransformType res;
+    res.matrix().setZero();
+    res.linear() = linear;
+    res.translation() = linear * t.m_coeffs;
+    res.matrix().row(Dim).setZero();
+    res(Dim,Dim) = Scalar(1);
+    return res;
+  }
+
+  /** Concatenates a translation and an affine transformation */
+  inline TransformType operator* (const TransformType& t) const;
+
+  /** Applies translation to vector */
+  inline VectorType operator* (const VectorType& other) const
+  { return m_coeffs + other; }
+
+  /** \returns the inverse translation (opposite) */
+  Translation inverse() const { return Translation(-m_coeffs); }
+
+  Translation& operator=(const Translation& other)
+  {
+    m_coeffs = other.m_coeffs;
+    return *this;
+  }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Translation,Translation<NewScalarType,Dim> >::type cast() const
+  { return typename internal::cast_return_type<Translation,Translation<NewScalarType,Dim> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit Translation(const Translation<OtherScalarType,Dim>& other)
+  { m_coeffs = other.vector().template cast<Scalar>(); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const Translation& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
+  { return m_coeffs.isApprox(other.m_coeffs, prec); }
+
+};
+
+/** \addtogroup Geometry_Module */
+//@{
+typedef Translation<float, 2> Translation2f;
+typedef Translation<double,2> Translation2d;
+typedef Translation<float, 3> Translation3f;
+typedef Translation<double,3> Translation3d;
+//@}
+
+
+template<typename Scalar, int Dim>
+inline typename Translation<Scalar,Dim>::TransformType
+Translation<Scalar,Dim>::operator* (const ScalingType& other) const
+{
+  TransformType res;
+  res.matrix().setZero();
+  res.linear().diagonal() = other.coeffs();
+  res.translation() = m_coeffs;
+  res(Dim,Dim) = Scalar(1);
+  return res;
+}
+
+template<typename Scalar, int Dim>
+inline typename Translation<Scalar,Dim>::TransformType
+Translation<Scalar,Dim>::operator* (const LinearMatrixType& linear) const
+{
+  TransformType res;
+  res.matrix().setZero();
+  res.linear() = linear;
+  res.translation() = m_coeffs;
+  res.matrix().row(Dim).setZero();
+  res(Dim,Dim) = Scalar(1);
+  return res;
+}
+
+template<typename Scalar, int Dim>
+inline typename Translation<Scalar,Dim>::TransformType
+Translation<Scalar,Dim>::operator* (const TransformType& t) const
+{
+  TransformType res = t;
+  res.pretranslate(m_coeffs);
+  return res;
+}
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h	(revision 2476)
@@ -0,0 +1,141 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class ParametrizedLine
+  *
+  * \brief A parametrized line
+  *
+  * A parametrized line is defined by an origin point \f$ \mathbf{o} \f$ and a unit
+  * direction vector \f$ \mathbf{d} \f$ such that the line corresponds to
+  * the set \f$ l(t) = \mathbf{o} + t \mathbf{d} \f$, \f$ l \in \mathbf{R} \f$.
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients
+  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+  */
+template <typename _Scalar, int _AmbientDim>
+class ParametrizedLine
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
+  enum { AmbientDimAtCompileTime = _AmbientDim };
+  typedef _Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
+
+  /** Default constructor without initialization */
+  inline ParametrizedLine() {}
+
+  /** Constructs a dynamic-size line with \a _dim the dimension
+    * of the ambient space */
+  inline explicit ParametrizedLine(int _dim) : m_origin(_dim), m_direction(_dim) {}
+
+  /** Initializes a parametrized line of direction \a direction and origin \a origin.
+    * \warning the vector direction is assumed to be normalized.
+    */
+  ParametrizedLine(const VectorType& origin, const VectorType& direction)
+    : m_origin(origin), m_direction(direction) {}
+
+  explicit ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim>& hyperplane);
+
+  /** Constructs a parametrized line going from \a p0 to \a p1. */
+  static inline ParametrizedLine Through(const VectorType& p0, const VectorType& p1)
+  { return ParametrizedLine(p0, (p1-p0).normalized()); }
+
+  ~ParametrizedLine() {}
+
+  /** \returns the dimension in which the line holds */
+  inline int dim() const { return m_direction.size(); }
+
+  const VectorType& origin() const { return m_origin; }
+  VectorType& origin() { return m_origin; }
+
+  const VectorType& direction() const { return m_direction; }
+  VectorType& direction() { return m_direction; }
+
+  /** \returns the squared distance of a point \a p to its projection onto the line \c *this.
+    * \sa distance()
+    */
+  RealScalar squaredDistance(const VectorType& p) const
+  {
+    VectorType diff = p-origin();
+    return (diff - diff.eigen2_dot(direction())* direction()).squaredNorm();
+  }
+  /** \returns the distance of a point \a p to its projection onto the line \c *this.
+    * \sa squaredDistance()
+    */
+  RealScalar distance(const VectorType& p) const { return ei_sqrt(squaredDistance(p)); }
+
+  /** \returns the projection of a point \a p onto the line \c *this. */
+  VectorType projection(const VectorType& p) const
+  { return origin() + (p-origin()).eigen2_dot(direction()) * direction(); }
+
+  Scalar intersection(const Hyperplane<_Scalar, _AmbientDim>& hyperplane);
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<ParametrizedLine,
+           ParametrizedLine<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
+  {
+    return typename internal::cast_return_type<ParametrizedLine,
+                    ParametrizedLine<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
+  }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit ParametrizedLine(const ParametrizedLine<OtherScalarType,AmbientDimAtCompileTime>& other)
+  {
+    m_origin = other.origin().template cast<Scalar>();
+    m_direction = other.direction().template cast<Scalar>();
+  }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const ParametrizedLine& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
+  { return m_origin.isApprox(other.m_origin, prec) && m_direction.isApprox(other.m_direction, prec); }
+
+protected:
+
+  VectorType m_origin, m_direction;
+};
+
+/** Constructs a parametrized line from a 2D hyperplane
+  *
+  * \warning the ambient space must have dimension 2 such that the hyperplane actually describes a line
+  */
+template <typename _Scalar, int _AmbientDim>
+inline ParametrizedLine<_Scalar, _AmbientDim>::ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim>& hyperplane)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
+  direction() = hyperplane.normal().unitOrthogonal();
+  origin() = -hyperplane.normal()*hyperplane.offset();
+}
+
+/** \returns the parameter value of the intersection between \c *this and the given hyperplane
+  */
+template <typename _Scalar, int _AmbientDim>
+inline _Scalar ParametrizedLine<_Scalar, _AmbientDim>::intersection(const Hyperplane<_Scalar, _AmbientDim>& hyperplane)
+{
+  return -(hyperplane.offset()+origin().eigen2_dot(hyperplane.normal()))
+          /(direction().eigen2_dot(hyperplane.normal()));
+}
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Scaling.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Scaling.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Scaling.h	(revision 2476)
@@ -0,0 +1,167 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Scaling
+  *
+  * \brief Represents a possibly non uniform scaling transformation
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients.
+  * \param _Dim the  dimension of the space, can be a compile time value or Dynamic
+  *
+  * \note This class is not aimed to be used to store a scaling transformation,
+  * but rather to make easier the constructions and updates of Transform objects.
+  *
+  * \sa class Translation, class Transform
+  */
+template<typename _Scalar, int _Dim>
+class Scaling
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Dim)
+  /** dimension of the space */
+  enum { Dim = _Dim };
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+  /** corresponding vector type */
+  typedef Matrix<Scalar,Dim,1> VectorType;
+  /** corresponding linear transformation matrix type */
+  typedef Matrix<Scalar,Dim,Dim> LinearMatrixType;
+  /** corresponding translation type */
+  typedef Translation<Scalar,Dim> TranslationType;
+  /** corresponding affine transformation type */
+  typedef Transform<Scalar,Dim> TransformType;
+
+protected:
+
+  VectorType m_coeffs;
+
+public:
+
+  /** Default constructor without initialization. */
+  Scaling() {}
+  /** Constructs and initialize a uniform scaling transformation */
+  explicit inline Scaling(const Scalar& s) { m_coeffs.setConstant(s); }
+  /** 2D only */
+  inline Scaling(const Scalar& sx, const Scalar& sy)
+  {
+    ei_assert(Dim==2);
+    m_coeffs.x() = sx;
+    m_coeffs.y() = sy;
+  }
+  /** 3D only */
+  inline Scaling(const Scalar& sx, const Scalar& sy, const Scalar& sz)
+  {
+    ei_assert(Dim==3);
+    m_coeffs.x() = sx;
+    m_coeffs.y() = sy;
+    m_coeffs.z() = sz;
+  }
+  /** Constructs and initialize the scaling transformation from a vector of scaling coefficients */
+  explicit inline Scaling(const VectorType& coeffs) : m_coeffs(coeffs) {}
+
+  const VectorType& coeffs() const { return m_coeffs; }
+  VectorType& coeffs() { return m_coeffs; }
+
+  /** Concatenates two scaling */
+  inline Scaling operator* (const Scaling& other) const
+  { return Scaling(coeffs().cwise() * other.coeffs()); }
+
+  /** Concatenates a scaling and a translation */
+  inline TransformType operator* (const TranslationType& t) const;
+
+  /** Concatenates a scaling and an affine transformation */
+  inline TransformType operator* (const TransformType& t) const;
+
+  /** Concatenates a scaling and a linear transformation matrix */
+  // TODO returns an expression
+  inline LinearMatrixType operator* (const LinearMatrixType& other) const
+  { return coeffs().asDiagonal() * other; }
+
+  /** Concatenates a linear transformation matrix and a scaling */
+  // TODO returns an expression
+  friend inline LinearMatrixType operator* (const LinearMatrixType& other, const Scaling& s)
+  { return other * s.coeffs().asDiagonal(); }
+
+  template<typename Derived>
+  inline LinearMatrixType operator*(const RotationBase<Derived,Dim>& r) const
+  { return *this * r.toRotationMatrix(); }
+
+  /** Applies scaling to vector */
+  inline VectorType operator* (const VectorType& other) const
+  { return coeffs().asDiagonal() * other; }
+
+  /** \returns the inverse scaling */
+  inline Scaling inverse() const
+  { return Scaling(coeffs().cwise().inverse()); }
+
+  inline Scaling& operator=(const Scaling& other)
+  {
+    m_coeffs = other.m_coeffs;
+    return *this;
+  }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Scaling,Scaling<NewScalarType,Dim> >::type cast() const
+  { return typename internal::cast_return_type<Scaling,Scaling<NewScalarType,Dim> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit Scaling(const Scaling<OtherScalarType,Dim>& other)
+  { m_coeffs = other.coeffs().template cast<Scalar>(); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const Scaling& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
+  { return m_coeffs.isApprox(other.m_coeffs, prec); }
+
+};
+
+/** \addtogroup Geometry_Module */
+//@{
+typedef Scaling<float, 2> Scaling2f;
+typedef Scaling<double,2> Scaling2d;
+typedef Scaling<float, 3> Scaling3f;
+typedef Scaling<double,3> Scaling3d;
+//@}
+
+template<typename Scalar, int Dim>
+inline typename Scaling<Scalar,Dim>::TransformType
+Scaling<Scalar,Dim>::operator* (const TranslationType& t) const
+{
+  TransformType res;
+  res.matrix().setZero();
+  res.linear().diagonal() = coeffs();
+  res.translation() = m_coeffs.cwise() * t.vector();
+  res(Dim,Dim) = Scalar(1);
+  return res;
+}
+
+template<typename Scalar, int Dim>
+inline typename Scaling<Scalar,Dim>::TransformType
+Scaling<Scalar,Dim>::operator* (const TransformType& t) const
+{
+  TransformType res = t;
+  res.prescale(m_coeffs);
+  return res;
+}
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Quaternion.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Quaternion.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Quaternion.h	(revision 2476)
@@ -0,0 +1,495 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
+
+namespace Eigen { 
+
+template<typename Other,
+         int OtherRows=Other::RowsAtCompileTime,
+         int OtherCols=Other::ColsAtCompileTime>
+struct ei_quaternion_assign_impl;
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Quaternion
+  *
+  * \brief The quaternion class used to represent 3D orientations and rotations
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients
+  *
+  * This class represents a quaternion \f$ w+xi+yj+zk \f$ that is a convenient representation of
+  * orientations and rotations of objects in three dimensions. Compared to other representations
+  * like Euler angles or 3x3 matrices, quatertions offer the following advantages:
+  * \li \b compact storage (4 scalars)
+  * \li \b efficient to compose (28 flops),
+  * \li \b stable spherical interpolation
+  *
+  * The following two typedefs are provided for convenience:
+  * \li \c Quaternionf for \c float
+  * \li \c Quaterniond for \c double
+  *
+  * \sa  class AngleAxis, class Transform
+  */
+
+template<typename _Scalar> struct ei_traits<Quaternion<_Scalar> >
+{
+  typedef _Scalar Scalar;
+};
+
+template<typename _Scalar>
+class Quaternion : public RotationBase<Quaternion<_Scalar>,3>
+{
+  typedef RotationBase<Quaternion<_Scalar>,3> Base;
+
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,4)
+
+  using Base::operator*;
+
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+
+  /** the type of the Coefficients 4-vector */
+  typedef Matrix<Scalar, 4, 1> Coefficients;
+  /** the type of a 3D vector */
+  typedef Matrix<Scalar,3,1> Vector3;
+  /** the equivalent rotation matrix type */
+  typedef Matrix<Scalar,3,3> Matrix3;
+  /** the equivalent angle-axis type */
+  typedef AngleAxis<Scalar> AngleAxisType;
+
+  /** \returns the \c x coefficient */
+  inline Scalar x() const { return m_coeffs.coeff(0); }
+  /** \returns the \c y coefficient */
+  inline Scalar y() const { return m_coeffs.coeff(1); }
+  /** \returns the \c z coefficient */
+  inline Scalar z() const { return m_coeffs.coeff(2); }
+  /** \returns the \c w coefficient */
+  inline Scalar w() const { return m_coeffs.coeff(3); }
+
+  /** \returns a reference to the \c x coefficient */
+  inline Scalar& x() { return m_coeffs.coeffRef(0); }
+  /** \returns a reference to the \c y coefficient */
+  inline Scalar& y() { return m_coeffs.coeffRef(1); }
+  /** \returns a reference to the \c z coefficient */
+  inline Scalar& z() { return m_coeffs.coeffRef(2); }
+  /** \returns a reference to the \c w coefficient */
+  inline Scalar& w() { return m_coeffs.coeffRef(3); }
+
+  /** \returns a read-only vector expression of the imaginary part (x,y,z) */
+  inline const Block<const Coefficients,3,1> vec() const { return m_coeffs.template start<3>(); }
+
+  /** \returns a vector expression of the imaginary part (x,y,z) */
+  inline Block<Coefficients,3,1> vec() { return m_coeffs.template start<3>(); }
+
+  /** \returns a read-only vector expression of the coefficients (x,y,z,w) */
+  inline const Coefficients& coeffs() const { return m_coeffs; }
+
+  /** \returns a vector expression of the coefficients (x,y,z,w) */
+  inline Coefficients& coeffs() { return m_coeffs; }
+
+  /** Default constructor leaving the quaternion uninitialized. */
+  inline Quaternion() {}
+
+  /** Constructs and initializes the quaternion \f$ w+xi+yj+zk \f$ from
+    * its four coefficients \a w, \a x, \a y and \a z.
+    *
+    * \warning Note the order of the arguments: the real \a w coefficient first,
+    * while internally the coefficients are stored in the following order:
+    * [\c x, \c y, \c z, \c w]
+    */
+  inline Quaternion(Scalar w, Scalar x, Scalar y, Scalar z)
+  { m_coeffs << x, y, z, w; }
+
+  /** Copy constructor */
+  inline Quaternion(const Quaternion& other) { m_coeffs = other.m_coeffs; }
+
+  /** Constructs and initializes a quaternion from the angle-axis \a aa */
+  explicit inline Quaternion(const AngleAxisType& aa) { *this = aa; }
+
+  /** Constructs and initializes a quaternion from either:
+    *  - a rotation matrix expression,
+    *  - a 4D vector expression representing quaternion coefficients.
+    * \sa operator=(MatrixBase<Derived>)
+    */
+  template<typename Derived>
+  explicit inline Quaternion(const MatrixBase<Derived>& other) { *this = other; }
+
+  Quaternion& operator=(const Quaternion& other);
+  Quaternion& operator=(const AngleAxisType& aa);
+  template<typename Derived>
+  Quaternion& operator=(const MatrixBase<Derived>& m);
+
+  /** \returns a quaternion representing an identity rotation
+    * \sa MatrixBase::Identity()
+    */
+  static inline Quaternion Identity() { return Quaternion(1, 0, 0, 0); }
+
+  /** \sa Quaternion::Identity(), MatrixBase::setIdentity()
+    */
+  inline Quaternion& setIdentity() { m_coeffs << 0, 0, 0, 1; return *this; }
+
+  /** \returns the squared norm of the quaternion's coefficients
+    * \sa Quaternion::norm(), MatrixBase::squaredNorm()
+    */
+  inline Scalar squaredNorm() const { return m_coeffs.squaredNorm(); }
+
+  /** \returns the norm of the quaternion's coefficients
+    * \sa Quaternion::squaredNorm(), MatrixBase::norm()
+    */
+  inline Scalar norm() const { return m_coeffs.norm(); }
+
+  /** Normalizes the quaternion \c *this
+    * \sa normalized(), MatrixBase::normalize() */
+  inline void normalize() { m_coeffs.normalize(); }
+  /** \returns a normalized version of \c *this
+    * \sa normalize(), MatrixBase::normalized() */
+  inline Quaternion normalized() const { return Quaternion(m_coeffs.normalized()); }
+
+  /** \returns the dot product of \c *this and \a other
+    * Geometrically speaking, the dot product of two unit quaternions
+    * corresponds to the cosine of half the angle between the two rotations.
+    * \sa angularDistance()
+    */
+  inline Scalar eigen2_dot(const Quaternion& other) const { return m_coeffs.eigen2_dot(other.m_coeffs); }
+
+  inline Scalar angularDistance(const Quaternion& other) const;
+
+  Matrix3 toRotationMatrix(void) const;
+
+  template<typename Derived1, typename Derived2>
+  Quaternion& setFromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b);
+
+  inline Quaternion operator* (const Quaternion& q) const;
+  inline Quaternion& operator*= (const Quaternion& q);
+
+  Quaternion inverse(void) const;
+  Quaternion conjugate(void) const;
+
+  Quaternion slerp(Scalar t, const Quaternion& other) const;
+
+  template<typename Derived>
+  Vector3 operator* (const MatrixBase<Derived>& vec) const;
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Quaternion,Quaternion<NewScalarType> >::type cast() const
+  { return typename internal::cast_return_type<Quaternion,Quaternion<NewScalarType> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit Quaternion(const Quaternion<OtherScalarType>& other)
+  { m_coeffs = other.coeffs().template cast<Scalar>(); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const Quaternion& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
+  { return m_coeffs.isApprox(other.m_coeffs, prec); }
+
+protected:
+  Coefficients m_coeffs;
+};
+
+/** \ingroup Geometry_Module
+  * single precision quaternion type */
+typedef Quaternion<float> Quaternionf;
+/** \ingroup Geometry_Module
+  * double precision quaternion type */
+typedef Quaternion<double> Quaterniond;
+
+// Generic Quaternion * Quaternion product
+template<typename Scalar> inline Quaternion<Scalar>
+ei_quaternion_product(const Quaternion<Scalar>& a, const Quaternion<Scalar>& b)
+{
+  return Quaternion<Scalar>
+  (
+    a.w() * b.w() - a.x() * b.x() - a.y() * b.y() - a.z() * b.z(),
+    a.w() * b.x() + a.x() * b.w() + a.y() * b.z() - a.z() * b.y(),
+    a.w() * b.y() + a.y() * b.w() + a.z() * b.x() - a.x() * b.z(),
+    a.w() * b.z() + a.z() * b.w() + a.x() * b.y() - a.y() * b.x()
+  );
+}
+
+/** \returns the concatenation of two rotations as a quaternion-quaternion product */
+template <typename Scalar>
+inline Quaternion<Scalar> Quaternion<Scalar>::operator* (const Quaternion& other) const
+{
+  return ei_quaternion_product(*this,other);
+}
+
+/** \sa operator*(Quaternion) */
+template <typename Scalar>
+inline Quaternion<Scalar>& Quaternion<Scalar>::operator*= (const Quaternion& other)
+{
+  return (*this = *this * other);
+}
+
+/** Rotation of a vector by a quaternion.
+  * \remarks If the quaternion is used to rotate several points (>1)
+  * then it is much more efficient to first convert it to a 3x3 Matrix.
+  * Comparison of the operation cost for n transformations:
+  *   - Quaternion:    30n
+  *   - Via a Matrix3: 24 + 15n
+  */
+template <typename Scalar>
+template<typename Derived>
+inline typename Quaternion<Scalar>::Vector3
+Quaternion<Scalar>::operator* (const MatrixBase<Derived>& v) const
+{
+    // Note that this algorithm comes from the optimization by hand
+    // of the conversion to a Matrix followed by a Matrix/Vector product.
+    // It appears to be much faster than the common algorithm found
+    // in the litterature (30 versus 39 flops). It also requires two
+    // Vector3 as temporaries.
+    Vector3 uv;
+    uv = 2 * this->vec().cross(v);
+    return v + this->w() * uv + this->vec().cross(uv);
+}
+
+template<typename Scalar>
+inline Quaternion<Scalar>& Quaternion<Scalar>::operator=(const Quaternion& other)
+{
+  m_coeffs = other.m_coeffs;
+  return *this;
+}
+
+/** Set \c *this from an angle-axis \a aa and returns a reference to \c *this
+  */
+template<typename Scalar>
+inline Quaternion<Scalar>& Quaternion<Scalar>::operator=(const AngleAxisType& aa)
+{
+  Scalar ha = Scalar(0.5)*aa.angle(); // Scalar(0.5) to suppress precision loss warnings
+  this->w() = ei_cos(ha);
+  this->vec() = ei_sin(ha) * aa.axis();
+  return *this;
+}
+
+/** Set \c *this from the expression \a xpr:
+  *   - if \a xpr is a 4x1 vector, then \a xpr is assumed to be a quaternion
+  *   - if \a xpr is a 3x3 matrix, then \a xpr is assumed to be rotation matrix
+  *     and \a xpr is converted to a quaternion
+  */
+template<typename Scalar>
+template<typename Derived>
+inline Quaternion<Scalar>& Quaternion<Scalar>::operator=(const MatrixBase<Derived>& xpr)
+{
+  ei_quaternion_assign_impl<Derived>::run(*this, xpr.derived());
+  return *this;
+}
+
+/** Convert the quaternion to a 3x3 rotation matrix */
+template<typename Scalar>
+inline typename Quaternion<Scalar>::Matrix3
+Quaternion<Scalar>::toRotationMatrix(void) const
+{
+  // NOTE if inlined, then gcc 4.2 and 4.4 get rid of the temporary (not gcc 4.3 !!)
+  // if not inlined then the cost of the return by value is huge ~ +35%,
+  // however, not inlining this function is an order of magnitude slower, so
+  // it has to be inlined, and so the return by value is not an issue
+  Matrix3 res;
+
+  const Scalar tx  = Scalar(2)*this->x();
+  const Scalar ty  = Scalar(2)*this->y();
+  const Scalar tz  = Scalar(2)*this->z();
+  const Scalar twx = tx*this->w();
+  const Scalar twy = ty*this->w();
+  const Scalar twz = tz*this->w();
+  const Scalar txx = tx*this->x();
+  const Scalar txy = ty*this->x();
+  const Scalar txz = tz*this->x();
+  const Scalar tyy = ty*this->y();
+  const Scalar tyz = tz*this->y();
+  const Scalar tzz = tz*this->z();
+
+  res.coeffRef(0,0) = Scalar(1)-(tyy+tzz);
+  res.coeffRef(0,1) = txy-twz;
+  res.coeffRef(0,2) = txz+twy;
+  res.coeffRef(1,0) = txy+twz;
+  res.coeffRef(1,1) = Scalar(1)-(txx+tzz);
+  res.coeffRef(1,2) = tyz-twx;
+  res.coeffRef(2,0) = txz-twy;
+  res.coeffRef(2,1) = tyz+twx;
+  res.coeffRef(2,2) = Scalar(1)-(txx+tyy);
+
+  return res;
+}
+
+/** Sets *this to be a quaternion representing a rotation sending the vector \a a to the vector \a b.
+  *
+  * \returns a reference to *this.
+  *
+  * Note that the two input vectors do \b not have to be normalized.
+  */
+template<typename Scalar>
+template<typename Derived1, typename Derived2>
+inline Quaternion<Scalar>& Quaternion<Scalar>::setFromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b)
+{
+  Vector3 v0 = a.normalized();
+  Vector3 v1 = b.normalized();
+  Scalar c = v0.eigen2_dot(v1);
+
+  // if dot == 1, vectors are the same
+  if (ei_isApprox(c,Scalar(1)))
+  {
+    // set to identity
+    this->w() = 1; this->vec().setZero();
+    return *this;
+  }
+  // if dot == -1, vectors are opposites
+  if (ei_isApprox(c,Scalar(-1)))
+  {
+    this->vec() = v0.unitOrthogonal();
+    this->w() = 0;
+    return *this;
+  }
+
+  Vector3 axis = v0.cross(v1);
+  Scalar s = ei_sqrt((Scalar(1)+c)*Scalar(2));
+  Scalar invs = Scalar(1)/s;
+  this->vec() = axis * invs;
+  this->w() = s * Scalar(0.5);
+
+  return *this;
+}
+
+/** \returns the multiplicative inverse of \c *this
+  * Note that in most cases, i.e., if you simply want the opposite rotation,
+  * and/or the quaternion is normalized, then it is enough to use the conjugate.
+  *
+  * \sa Quaternion::conjugate()
+  */
+template <typename Scalar>
+inline Quaternion<Scalar> Quaternion<Scalar>::inverse() const
+{
+  // FIXME should this function be called multiplicativeInverse and conjugate() be called inverse() or opposite()  ??
+  Scalar n2 = this->squaredNorm();
+  if (n2 > 0)
+    return Quaternion(conjugate().coeffs() / n2);
+  else
+  {
+    // return an invalid result to flag the error
+    return Quaternion(Coefficients::Zero());
+  }
+}
+
+/** \returns the conjugate of the \c *this which is equal to the multiplicative inverse
+  * if the quaternion is normalized.
+  * The conjugate of a quaternion represents the opposite rotation.
+  *
+  * \sa Quaternion::inverse()
+  */
+template <typename Scalar>
+inline Quaternion<Scalar> Quaternion<Scalar>::conjugate() const
+{
+  return Quaternion(this->w(),-this->x(),-this->y(),-this->z());
+}
+
+/** \returns the angle (in radian) between two rotations
+  * \sa eigen2_dot()
+  */
+template <typename Scalar>
+inline Scalar Quaternion<Scalar>::angularDistance(const Quaternion& other) const
+{
+  double d = ei_abs(this->eigen2_dot(other));
+  if (d>=1.0)
+    return 0;
+  return Scalar(2) * std::acos(d);
+}
+
+/** \returns the spherical linear interpolation between the two quaternions
+  * \c *this and \a other at the parameter \a t
+  */
+template <typename Scalar>
+Quaternion<Scalar> Quaternion<Scalar>::slerp(Scalar t, const Quaternion& other) const
+{
+  static const Scalar one = Scalar(1) - machine_epsilon<Scalar>();
+  Scalar d = this->eigen2_dot(other);
+  Scalar absD = ei_abs(d);
+
+  Scalar scale0;
+  Scalar scale1;
+
+  if (absD>=one)
+  {
+    scale0 = Scalar(1) - t;
+    scale1 = t;
+  }
+  else
+  {
+    // theta is the angle between the 2 quaternions
+    Scalar theta = std::acos(absD);
+    Scalar sinTheta = ei_sin(theta);
+
+    scale0 = ei_sin( ( Scalar(1) - t ) * theta) / sinTheta;
+    scale1 = ei_sin( ( t * theta) ) / sinTheta;
+    if (d<0)
+      scale1 = -scale1;
+  }
+
+  return Quaternion<Scalar>(scale0 * coeffs() + scale1 * other.coeffs());
+}
+
+// set from a rotation matrix
+template<typename Other>
+struct ei_quaternion_assign_impl<Other,3,3>
+{
+  typedef typename Other::Scalar Scalar;
+  static inline void run(Quaternion<Scalar>& q, const Other& mat)
+  {
+    // This algorithm comes from  "Quaternion Calculus and Fast Animation",
+    // Ken Shoemake, 1987 SIGGRAPH course notes
+    Scalar t = mat.trace();
+    if (t > 0)
+    {
+      t = ei_sqrt(t + Scalar(1.0));
+      q.w() = Scalar(0.5)*t;
+      t = Scalar(0.5)/t;
+      q.x() = (mat.coeff(2,1) - mat.coeff(1,2)) * t;
+      q.y() = (mat.coeff(0,2) - mat.coeff(2,0)) * t;
+      q.z() = (mat.coeff(1,0) - mat.coeff(0,1)) * t;
+    }
+    else
+    {
+      int i = 0;
+      if (mat.coeff(1,1) > mat.coeff(0,0))
+        i = 1;
+      if (mat.coeff(2,2) > mat.coeff(i,i))
+        i = 2;
+      int j = (i+1)%3;
+      int k = (j+1)%3;
+
+      t = ei_sqrt(mat.coeff(i,i)-mat.coeff(j,j)-mat.coeff(k,k) + Scalar(1.0));
+      q.coeffs().coeffRef(i) = Scalar(0.5) * t;
+      t = Scalar(0.5)/t;
+      q.w() = (mat.coeff(k,j)-mat.coeff(j,k))*t;
+      q.coeffs().coeffRef(j) = (mat.coeff(j,i)+mat.coeff(i,j))*t;
+      q.coeffs().coeffRef(k) = (mat.coeff(k,i)+mat.coeff(i,k))*t;
+    }
+  }
+};
+
+// set from a vector of coefficients assumed to be a quaternion
+template<typename Other>
+struct ei_quaternion_assign_impl<Other,4,1>
+{
+  typedef typename Other::Scalar Scalar;
+  static inline void run(Quaternion<Scalar>& q, const Other& vec)
+  {
+    q.coeffs() = vec;
+  }
+};
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Rotation2D.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Rotation2D.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Rotation2D.h	(revision 2476)
@@ -0,0 +1,145 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Rotation2D
+  *
+  * \brief Represents a rotation/orientation in a 2 dimensional space.
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients
+  *
+  * This class is equivalent to a single scalar representing a counter clock wise rotation
+  * as a single angle in radian. It provides some additional features such as the automatic
+  * conversion from/to a 2x2 rotation matrix. Moreover this class aims to provide a similar
+  * interface to Quaternion in order to facilitate the writing of generic algorithms
+  * dealing with rotations.
+  *
+  * \sa class Quaternion, class Transform
+  */
+template<typename _Scalar> struct ei_traits<Rotation2D<_Scalar> >
+{
+  typedef _Scalar Scalar;
+};
+
+template<typename _Scalar>
+class Rotation2D : public RotationBase<Rotation2D<_Scalar>,2>
+{
+  typedef RotationBase<Rotation2D<_Scalar>,2> Base;
+
+public:
+
+  using Base::operator*;
+
+  enum { Dim = 2 };
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+  typedef Matrix<Scalar,2,1> Vector2;
+  typedef Matrix<Scalar,2,2> Matrix2;
+
+protected:
+
+  Scalar m_angle;
+
+public:
+
+  /** Construct a 2D counter clock wise rotation from the angle \a a in radian. */
+  inline Rotation2D(Scalar a) : m_angle(a) {}
+
+  /** \returns the rotation angle */
+  inline Scalar angle() const { return m_angle; }
+
+  /** \returns a read-write reference to the rotation angle */
+  inline Scalar& angle() { return m_angle; }
+
+  /** \returns the inverse rotation */
+  inline Rotation2D inverse() const { return -m_angle; }
+
+  /** Concatenates two rotations */
+  inline Rotation2D operator*(const Rotation2D& other) const
+  { return m_angle + other.m_angle; }
+
+  /** Concatenates two rotations */
+  inline Rotation2D& operator*=(const Rotation2D& other)
+  { return m_angle += other.m_angle; return *this; }
+
+  /** Applies the rotation to a 2D vector */
+  Vector2 operator* (const Vector2& vec) const
+  { return toRotationMatrix() * vec; }
+
+  template<typename Derived>
+  Rotation2D& fromRotationMatrix(const MatrixBase<Derived>& m);
+  Matrix2 toRotationMatrix(void) const;
+
+  /** \returns the spherical interpolation between \c *this and \a other using
+    * parameter \a t. It is in fact equivalent to a linear interpolation.
+    */
+  inline Rotation2D slerp(Scalar t, const Rotation2D& other) const
+  { return m_angle * (1-t) + other.angle() * t; }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Rotation2D,Rotation2D<NewScalarType> >::type cast() const
+  { return typename internal::cast_return_type<Rotation2D,Rotation2D<NewScalarType> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit Rotation2D(const Rotation2D<OtherScalarType>& other)
+  {
+    m_angle = Scalar(other.angle());
+  }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const Rotation2D& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
+  { return ei_isApprox(m_angle,other.m_angle, prec); }
+};
+
+/** \ingroup Geometry_Module
+  * single precision 2D rotation type */
+typedef Rotation2D<float> Rotation2Df;
+/** \ingroup Geometry_Module
+  * double precision 2D rotation type */
+typedef Rotation2D<double> Rotation2Dd;
+
+/** Set \c *this from a 2x2 rotation matrix \a mat.
+  * In other words, this function extract the rotation angle
+  * from the rotation matrix.
+  */
+template<typename Scalar>
+template<typename Derived>
+Rotation2D<Scalar>& Rotation2D<Scalar>::fromRotationMatrix(const MatrixBase<Derived>& mat)
+{
+  EIGEN_STATIC_ASSERT(Derived::RowsAtCompileTime==2 && Derived::ColsAtCompileTime==2,YOU_MADE_A_PROGRAMMING_MISTAKE)
+  m_angle = ei_atan2(mat.coeff(1,0), mat.coeff(0,0));
+  return *this;
+}
+
+/** Constructs and \returns an equivalent 2x2 rotation matrix.
+  */
+template<typename Scalar>
+typename Rotation2D<Scalar>::Matrix2
+Rotation2D<Scalar>::toRotationMatrix(void) const
+{
+  Scalar sinA = ei_sin(m_angle);
+  Scalar cosA = ei_cos(m_angle);
+  return (Matrix2() << cosA, -sinA, sinA, cosA).finished();
+}
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Hyperplane.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Hyperplane.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/Hyperplane.h	(revision 2476)
@@ -0,0 +1,254 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <g.gael@free.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// no include guard, we'll include this twice from All.h from Eigen2Support, and it's internal anyway
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Hyperplane
+  *
+  * \brief A hyperplane
+  *
+  * A hyperplane is an affine subspace of dimension n-1 in a space of dimension n.
+  * For example, a hyperplane in a plane is a line; a hyperplane in 3-space is a plane.
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients
+  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+  *             Notice that the dimension of the hyperplane is _AmbientDim-1.
+  *
+  * This class represents an hyperplane as the zero set of the implicit equation
+  * \f$ n \cdot x + d = 0 \f$ where \f$ n \f$ is a unit normal vector of the plane (linear part)
+  * and \f$ d \f$ is the distance (offset) to the origin.
+  */
+template <typename _Scalar, int _AmbientDim>
+class Hyperplane
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1)
+  enum { AmbientDimAtCompileTime = _AmbientDim };
+  typedef _Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
+  typedef Matrix<Scalar,int(AmbientDimAtCompileTime)==Dynamic
+                        ? Dynamic
+                        : int(AmbientDimAtCompileTime)+1,1> Coefficients;
+  typedef Block<Coefficients,AmbientDimAtCompileTime,1> NormalReturnType;
+
+  /** Default constructor without initialization */
+  inline Hyperplane() {}
+
+  /** Constructs a dynamic-size hyperplane with \a _dim the dimension
+    * of the ambient space */
+  inline explicit Hyperplane(int _dim) : m_coeffs(_dim+1) {}
+
+  /** Construct a plane from its normal \a n and a point \a e onto the plane.
+    * \warning the vector normal is assumed to be normalized.
+    */
+  inline Hyperplane(const VectorType& n, const VectorType& e)
+    : m_coeffs(n.size()+1)
+  {
+    normal() = n;
+    offset() = -e.eigen2_dot(n);
+  }
+
+  /** Constructs a plane from its normal \a n and distance to the origin \a d
+    * such that the algebraic equation of the plane is \f$ n \cdot x + d = 0 \f$.
+    * \warning the vector normal is assumed to be normalized.
+    */
+  inline Hyperplane(const VectorType& n, Scalar d)
+    : m_coeffs(n.size()+1)
+  {
+    normal() = n;
+    offset() = d;
+  }
+
+  /** Constructs a hyperplane passing through the two points. If the dimension of the ambient space
+    * is greater than 2, then there isn't uniqueness, so an arbitrary choice is made.
+    */
+  static inline Hyperplane Through(const VectorType& p0, const VectorType& p1)
+  {
+    Hyperplane result(p0.size());
+    result.normal() = (p1 - p0).unitOrthogonal();
+    result.offset() = -result.normal().eigen2_dot(p0);
+    return result;
+  }
+
+  /** Constructs a hyperplane passing through the three points. The dimension of the ambient space
+    * is required to be exactly 3.
+    */
+  static inline Hyperplane Through(const VectorType& p0, const VectorType& p1, const VectorType& p2)
+  {
+    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 3)
+    Hyperplane result(p0.size());
+    result.normal() = (p2 - p0).cross(p1 - p0).normalized();
+    result.offset() = -result.normal().eigen2_dot(p0);
+    return result;
+  }
+
+  /** Constructs a hyperplane passing through the parametrized line \a parametrized.
+    * If the dimension of the ambient space is greater than 2, then there isn't uniqueness,
+    * so an arbitrary choice is made.
+    */
+  // FIXME to be consitent with the rest this could be implemented as a static Through function ??
+  explicit Hyperplane(const ParametrizedLine<Scalar, AmbientDimAtCompileTime>& parametrized)
+  {
+    normal() = parametrized.direction().unitOrthogonal();
+    offset() = -normal().eigen2_dot(parametrized.origin());
+  }
+
+  ~Hyperplane() {}
+
+  /** \returns the dimension in which the plane holds */
+  inline int dim() const { return int(AmbientDimAtCompileTime)==Dynamic ? m_coeffs.size()-1 : int(AmbientDimAtCompileTime); }
+
+  /** normalizes \c *this */
+  void normalize(void)
+  {
+    m_coeffs /= normal().norm();
+  }
+
+  /** \returns the signed distance between the plane \c *this and a point \a p.
+    * \sa absDistance()
+    */
+  inline Scalar signedDistance(const VectorType& p) const { return p.eigen2_dot(normal()) + offset(); }
+
+  /** \returns the absolute distance between the plane \c *this and a point \a p.
+    * \sa signedDistance()
+    */
+  inline Scalar absDistance(const VectorType& p) const { return ei_abs(signedDistance(p)); }
+
+  /** \returns the projection of a point \a p onto the plane \c *this.
+    */
+  inline VectorType projection(const VectorType& p) const { return p - signedDistance(p) * normal(); }
+
+  /** \returns a constant reference to the unit normal vector of the plane, which corresponds
+    * to the linear part of the implicit equation.
+    */
+  inline const NormalReturnType normal() const { return NormalReturnType(*const_cast<Coefficients*>(&m_coeffs),0,0,dim(),1); }
+
+  /** \returns a non-constant reference to the unit normal vector of the plane, which corresponds
+    * to the linear part of the implicit equation.
+    */
+  inline NormalReturnType normal() { return NormalReturnType(m_coeffs,0,0,dim(),1); }
+
+  /** \returns the distance to the origin, which is also the "constant term" of the implicit equation
+    * \warning the vector normal is assumed to be normalized.
+    */
+  inline const Scalar& offset() const { return m_coeffs.coeff(dim()); }
+
+  /** \returns a non-constant reference to the distance to the origin, which is also the constant part
+    * of the implicit equation */
+  inline Scalar& offset() { return m_coeffs(dim()); }
+
+  /** \returns a constant reference to the coefficients c_i of the plane equation:
+    * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
+    */
+  inline const Coefficients& coeffs() const { return m_coeffs; }
+
+  /** \returns a non-constant reference to the coefficients c_i of the plane equation:
+    * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
+    */
+  inline Coefficients& coeffs() { return m_coeffs; }
+
+  /** \returns the intersection of *this with \a other.
+    *
+    * \warning The ambient space must be a plane, i.e. have dimension 2, so that \c *this and \a other are lines.
+    *
+    * \note If \a other is approximately parallel to *this, this method will return any point on *this.
+    */
+  VectorType intersection(const Hyperplane& other)
+  {
+    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
+    Scalar det = coeffs().coeff(0) * other.coeffs().coeff(1) - coeffs().coeff(1) * other.coeffs().coeff(0);
+    // since the line equations ax+by=c are normalized with a^2+b^2=1, the following tests
+    // whether the two lines are approximately parallel.
+    if(ei_isMuchSmallerThan(det, Scalar(1)))
+    {   // special case where the two lines are approximately parallel. Pick any point on the first line.
+        if(ei_abs(coeffs().coeff(1))>ei_abs(coeffs().coeff(0)))
+            return VectorType(coeffs().coeff(1), -coeffs().coeff(2)/coeffs().coeff(1)-coeffs().coeff(0));
+        else
+            return VectorType(-coeffs().coeff(2)/coeffs().coeff(0)-coeffs().coeff(1), coeffs().coeff(0));
+    }
+    else
+    {   // general case
+        Scalar invdet = Scalar(1) / det;
+        return VectorType(invdet*(coeffs().coeff(1)*other.coeffs().coeff(2)-other.coeffs().coeff(1)*coeffs().coeff(2)),
+                          invdet*(other.coeffs().coeff(0)*coeffs().coeff(2)-coeffs().coeff(0)*other.coeffs().coeff(2)));
+    }
+  }
+
+  /** Applies the transformation matrix \a mat to \c *this and returns a reference to \c *this.
+    *
+    * \param mat the Dim x Dim transformation matrix
+    * \param traits specifies whether the matrix \a mat represents an Isometry
+    *               or a more generic Affine transformation. The default is Affine.
+    */
+  template<typename XprType>
+  inline Hyperplane& transform(const MatrixBase<XprType>& mat, TransformTraits traits = Affine)
+  {
+    if (traits==Affine)
+      normal() = mat.inverse().transpose() * normal();
+    else if (traits==Isometry)
+      normal() = mat * normal();
+    else
+    {
+      ei_assert("invalid traits value in Hyperplane::transform()");
+    }
+    return *this;
+  }
+
+  /** Applies the transformation \a t to \c *this and returns a reference to \c *this.
+    *
+    * \param t the transformation of dimension Dim
+    * \param traits specifies whether the transformation \a t represents an Isometry
+    *               or a more generic Affine transformation. The default is Affine.
+    *               Other kind of transformations are not supported.
+    */
+  inline Hyperplane& transform(const Transform<Scalar,AmbientDimAtCompileTime>& t,
+                                TransformTraits traits = Affine)
+  {
+    transform(t.linear(), traits);
+    offset() -= t.translation().eigen2_dot(normal());
+    return *this;
+  }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Hyperplane,
+           Hyperplane<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
+  {
+    return typename internal::cast_return_type<Hyperplane,
+                    Hyperplane<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
+  }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit Hyperplane(const Hyperplane<OtherScalarType,AmbientDimAtCompileTime>& other)
+  { m_coeffs = other.coeffs().template cast<Scalar>(); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const Hyperplane& other, typename NumTraits<Scalar>::Real prec = precision<Scalar>()) const
+  { return m_coeffs.isApprox(other.m_coeffs, prec); }
+
+protected:
+
+  Coefficients m_coeffs;
+};
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/All.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/All.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigen2Support/Geometry/All.h	(revision 2476)
@@ -0,0 +1,115 @@
+#ifndef EIGEN2_GEOMETRY_MODULE_H
+#define EIGEN2_GEOMETRY_MODULE_H
+
+#include <limits>
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+#if EIGEN2_SUPPORT_STAGE < STAGE20_RESOLVE_API_CONFLICTS
+#include "RotationBase.h"
+#include "Rotation2D.h"
+#include "Quaternion.h"
+#include "AngleAxis.h"
+#include "Transform.h"
+#include "Translation.h"
+#include "Scaling.h"
+#include "AlignedBox.h"
+#include "Hyperplane.h"
+#include "ParametrizedLine.h"
+#endif
+
+
+#define RotationBase eigen2_RotationBase
+#define Rotation2D eigen2_Rotation2D
+#define Rotation2Df eigen2_Rotation2Df
+#define Rotation2Dd eigen2_Rotation2Dd
+
+#define Quaternion  eigen2_Quaternion
+#define Quaternionf eigen2_Quaternionf
+#define Quaterniond eigen2_Quaterniond
+
+#define AngleAxis eigen2_AngleAxis
+#define AngleAxisf eigen2_AngleAxisf
+#define AngleAxisd eigen2_AngleAxisd
+
+#define Transform   eigen2_Transform
+#define Transform2f eigen2_Transform2f
+#define Transform2d eigen2_Transform2d
+#define Transform3f eigen2_Transform3f
+#define Transform3d eigen2_Transform3d
+
+#define Translation eigen2_Translation
+#define Translation2f eigen2_Translation2f
+#define Translation2d eigen2_Translation2d
+#define Translation3f eigen2_Translation3f
+#define Translation3d eigen2_Translation3d
+
+#define Scaling eigen2_Scaling
+#define Scaling2f eigen2_Scaling2f
+#define Scaling2d eigen2_Scaling2d
+#define Scaling3f eigen2_Scaling3f
+#define Scaling3d eigen2_Scaling3d
+
+#define AlignedBox eigen2_AlignedBox
+
+#define Hyperplane eigen2_Hyperplane
+#define ParametrizedLine eigen2_ParametrizedLine
+
+#define ei_toRotationMatrix eigen2_ei_toRotationMatrix
+#define ei_quaternion_assign_impl eigen2_ei_quaternion_assign_impl
+#define ei_transform_product_impl eigen2_ei_transform_product_impl
+
+#include "RotationBase.h"
+#include "Rotation2D.h"
+#include "Quaternion.h"
+#include "AngleAxis.h"
+#include "Transform.h"
+#include "Translation.h"
+#include "Scaling.h"
+#include "AlignedBox.h"
+#include "Hyperplane.h"
+#include "ParametrizedLine.h"
+
+#undef ei_toRotationMatrix
+#undef ei_quaternion_assign_impl
+#undef ei_transform_product_impl
+
+#undef RotationBase
+#undef Rotation2D
+#undef Rotation2Df
+#undef Rotation2Dd
+
+#undef Quaternion
+#undef Quaternionf
+#undef Quaterniond
+
+#undef AngleAxis
+#undef AngleAxisf
+#undef AngleAxisd
+
+#undef Transform
+#undef Transform2f
+#undef Transform2d
+#undef Transform3f
+#undef Transform3d
+
+#undef Translation
+#undef Translation2f
+#undef Translation2d
+#undef Translation3f
+#undef Translation3d
+
+#undef Scaling
+#undef Scaling2f
+#undef Scaling2d
+#undef Scaling3f
+#undef Scaling3d
+
+#undef AlignedBox
+
+#undef Hyperplane
+#undef ParametrizedLine
+
+#endif // EIGEN2_GEOMETRY_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparsePermutation.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparsePermutation.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparsePermutation.h	(revision 2476)
@@ -0,0 +1,148 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_PERMUTATION_H
+#define EIGEN_SPARSE_PERMUTATION_H
+
+// This file implements sparse * permutation products
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename PermutationType, typename MatrixType, int Side, bool Transposed>
+struct traits<permut_sparsematrix_product_retval<PermutationType, MatrixType, Side, Transposed> >
+{
+  typedef typename remove_all<typename MatrixType::Nested>::type MatrixTypeNestedCleaned;
+  typedef typename MatrixTypeNestedCleaned::Scalar Scalar;
+  typedef typename MatrixTypeNestedCleaned::Index Index;
+  enum {
+    SrcStorageOrder = MatrixTypeNestedCleaned::Flags&RowMajorBit ? RowMajor : ColMajor,
+    MoveOuter = SrcStorageOrder==RowMajor ? Side==OnTheLeft : Side==OnTheRight
+  };
+
+  typedef typename internal::conditional<MoveOuter,
+        SparseMatrix<Scalar,SrcStorageOrder,Index>,
+        SparseMatrix<Scalar,int(SrcStorageOrder)==RowMajor?ColMajor:RowMajor,Index> >::type ReturnType;
+};
+
+template<typename PermutationType, typename MatrixType, int Side, bool Transposed>
+struct permut_sparsematrix_product_retval
+ : public ReturnByValue<permut_sparsematrix_product_retval<PermutationType, MatrixType, Side, Transposed> >
+{
+    typedef typename remove_all<typename MatrixType::Nested>::type MatrixTypeNestedCleaned;
+    typedef typename MatrixTypeNestedCleaned::Scalar Scalar;
+    typedef typename MatrixTypeNestedCleaned::Index Index;
+
+    enum {
+      SrcStorageOrder = MatrixTypeNestedCleaned::Flags&RowMajorBit ? RowMajor : ColMajor,
+      MoveOuter = SrcStorageOrder==RowMajor ? Side==OnTheLeft : Side==OnTheRight
+    };
+
+    permut_sparsematrix_product_retval(const PermutationType& perm, const MatrixType& matrix)
+      : m_permutation(perm), m_matrix(matrix)
+    {}
+
+    inline int rows() const { return m_matrix.rows(); }
+    inline int cols() const { return m_matrix.cols(); }
+
+    template<typename Dest> inline void evalTo(Dest& dst) const
+    {
+      if(MoveOuter)
+      {
+        SparseMatrix<Scalar,SrcStorageOrder,Index> tmp(m_matrix.rows(), m_matrix.cols());
+        Matrix<Index,Dynamic,1> sizes(m_matrix.outerSize());
+        for(Index j=0; j<m_matrix.outerSize(); ++j)
+        {
+          Index jp = m_permutation.indices().coeff(j);
+          sizes[((Side==OnTheLeft) ^ Transposed) ? jp : j] = m_matrix.innerVector(((Side==OnTheRight) ^ Transposed) ? jp : j).nonZeros();
+        }
+        tmp.reserve(sizes);
+        for(Index j=0; j<m_matrix.outerSize(); ++j)
+        {
+          Index jp = m_permutation.indices().coeff(j);
+          Index jsrc = ((Side==OnTheRight) ^ Transposed) ? jp : j;
+          Index jdst = ((Side==OnTheLeft) ^ Transposed) ? jp : j;
+          for(typename MatrixTypeNestedCleaned::InnerIterator it(m_matrix,jsrc); it; ++it)
+            tmp.insertByOuterInner(jdst,it.index()) = it.value();
+        }
+        dst = tmp;
+      }
+      else
+      {
+        SparseMatrix<Scalar,int(SrcStorageOrder)==RowMajor?ColMajor:RowMajor,Index> tmp(m_matrix.rows(), m_matrix.cols());
+        Matrix<Index,Dynamic,1> sizes(tmp.outerSize());
+        sizes.setZero();
+        PermutationMatrix<Dynamic,Dynamic,Index> perm;
+        if((Side==OnTheLeft) ^ Transposed)
+          perm = m_permutation;
+        else
+          perm = m_permutation.transpose();
+
+        for(Index j=0; j<m_matrix.outerSize(); ++j)
+          for(typename MatrixTypeNestedCleaned::InnerIterator it(m_matrix,j); it; ++it)
+            sizes[perm.indices().coeff(it.index())]++;
+        tmp.reserve(sizes);
+        for(Index j=0; j<m_matrix.outerSize(); ++j)
+          for(typename MatrixTypeNestedCleaned::InnerIterator it(m_matrix,j); it; ++it)
+            tmp.insertByOuterInner(perm.indices().coeff(it.index()),j) = it.value();
+        dst = tmp;
+      }
+    }
+
+  protected:
+    const PermutationType& m_permutation;
+    typename MatrixType::Nested m_matrix;
+};
+
+}
+
+
+
+/** \returns the matrix with the permutation applied to the columns
+  */
+template<typename SparseDerived, typename PermDerived>
+inline const internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheRight, false>
+operator*(const SparseMatrixBase<SparseDerived>& matrix, const PermutationBase<PermDerived>& perm)
+{
+  return internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheRight, false>(perm, matrix.derived());
+}
+
+/** \returns the matrix with the permutation applied to the rows
+  */
+template<typename SparseDerived, typename PermDerived>
+inline const internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheLeft, false>
+operator*( const PermutationBase<PermDerived>& perm, const SparseMatrixBase<SparseDerived>& matrix)
+{
+  return internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheLeft, false>(perm, matrix.derived());
+}
+
+
+
+/** \returns the matrix with the inverse permutation applied to the columns.
+  */
+template<typename SparseDerived, typename PermDerived>
+inline const internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheRight, true>
+operator*(const SparseMatrixBase<SparseDerived>& matrix, const Transpose<PermutationBase<PermDerived> >& tperm)
+{
+  return internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheRight, true>(tperm.nestedPermutation(), matrix.derived());
+}
+
+/** \returns the matrix with the inverse permutation applied to the rows.
+  */
+template<typename SparseDerived, typename PermDerived>
+inline const internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheLeft, true>
+operator*(const Transpose<PermutationBase<PermDerived> >& tperm, const SparseMatrixBase<SparseDerived>& matrix)
+{
+  return internal::permut_sparsematrix_product_retval<PermutationBase<PermDerived>, SparseDerived, OnTheLeft, true>(tperm.nestedPermutation(), matrix.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_SELFADJOINTVIEW_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseView.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseView.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseView.h	(revision 2476)
@@ -0,0 +1,99 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Daniel Lowengrub <lowdanie@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEVIEW_H
+#define EIGEN_SPARSEVIEW_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename MatrixType>
+struct traits<SparseView<MatrixType> > : traits<MatrixType>
+{
+  typedef typename MatrixType::Index Index;
+  typedef Sparse StorageKind;
+  enum {
+    Flags = int(traits<MatrixType>::Flags) & (RowMajorBit)
+  };
+};
+
+} // end namespace internal
+
+template<typename MatrixType>
+class SparseView : public SparseMatrixBase<SparseView<MatrixType> >
+{
+  typedef typename MatrixType::Nested MatrixTypeNested;
+  typedef typename internal::remove_all<MatrixTypeNested>::type _MatrixTypeNested;
+public:
+  EIGEN_SPARSE_PUBLIC_INTERFACE(SparseView)
+
+  explicit SparseView(const MatrixType& mat, const Scalar& reference = Scalar(0),
+                      const RealScalar &epsilon = NumTraits<Scalar>::dummy_precision())
+    : m_matrix(mat), m_reference(reference), m_epsilon(epsilon) {}
+
+  class InnerIterator;
+
+  inline Index rows() const { return m_matrix.rows(); }
+  inline Index cols() const { return m_matrix.cols(); }
+
+  inline Index innerSize() const { return m_matrix.innerSize(); }
+  inline Index outerSize() const { return m_matrix.outerSize(); }
+
+protected:
+  MatrixTypeNested m_matrix;
+  Scalar m_reference;
+  typename NumTraits<Scalar>::Real m_epsilon;
+};
+
+template<typename MatrixType>
+class SparseView<MatrixType>::InnerIterator : public _MatrixTypeNested::InnerIterator
+{
+  typedef typename SparseView::Index Index;
+public:
+  typedef typename _MatrixTypeNested::InnerIterator IterBase;
+  InnerIterator(const SparseView& view, Index outer) :
+  IterBase(view.m_matrix, outer), m_view(view)
+  {
+    incrementToNonZero();
+  }
+
+  EIGEN_STRONG_INLINE InnerIterator& operator++()
+  {
+    IterBase::operator++();
+    incrementToNonZero();
+    return *this;
+  }
+
+  using IterBase::value;
+
+protected:
+  const SparseView& m_view;
+
+private:
+  void incrementToNonZero()
+  {
+    while((bool(*this)) && internal::isMuchSmallerThan(value(), m_view.m_reference, m_view.m_epsilon))
+    {
+      IterBase::operator++();
+    }
+  }
+};
+
+template<typename Derived>
+const SparseView<Derived> MatrixBase<Derived>::sparseView(const Scalar& m_reference,
+                                                          const typename NumTraits<Scalar>::Real& m_epsilon) const
+{
+  return SparseView<Derived>(derived(), m_reference, m_epsilon);
+}
+
+} // end namespace Eigen
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/CompressedStorage.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/CompressedStorage.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/CompressedStorage.h	(revision 2476)
@@ -0,0 +1,240 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPRESSED_STORAGE_H
+#define EIGEN_COMPRESSED_STORAGE_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal
+  * Stores a sparse set of values as a list of values and a list of indices.
+  *
+  */
+template<typename _Scalar,typename _Index>
+class CompressedStorage
+{
+  public:
+
+    typedef _Scalar Scalar;
+    typedef _Index Index;
+
+  protected:
+
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+  public:
+
+    CompressedStorage()
+      : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
+    {}
+
+    CompressedStorage(size_t size)
+      : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
+    {
+      resize(size);
+    }
+
+    CompressedStorage(const CompressedStorage& other)
+      : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
+    {
+      *this = other;
+    }
+
+    CompressedStorage& operator=(const CompressedStorage& other)
+    {
+      resize(other.size());
+      internal::smart_copy(other.m_values,  other.m_values  + m_size, m_values);
+      internal::smart_copy(other.m_indices, other.m_indices + m_size, m_indices);
+      return *this;
+    }
+
+    void swap(CompressedStorage& other)
+    {
+      std::swap(m_values, other.m_values);
+      std::swap(m_indices, other.m_indices);
+      std::swap(m_size, other.m_size);
+      std::swap(m_allocatedSize, other.m_allocatedSize);
+    }
+
+    ~CompressedStorage()
+    {
+      delete[] m_values;
+      delete[] m_indices;
+    }
+
+    void reserve(size_t size)
+    {
+      size_t newAllocatedSize = m_size + size;
+      if (newAllocatedSize > m_allocatedSize)
+        reallocate(newAllocatedSize);
+    }
+
+    void squeeze()
+    {
+      if (m_allocatedSize>m_size)
+        reallocate(m_size);
+    }
+
+    void resize(size_t size, double reserveSizeFactor = 0)
+    {
+      if (m_allocatedSize<size)
+        reallocate(size + size_t(reserveSizeFactor*double(size)));
+      m_size = size;
+    }
+
+    void append(const Scalar& v, Index i)
+    {
+      Index id = static_cast<Index>(m_size);
+      resize(m_size+1, 1);
+      m_values[id] = v;
+      m_indices[id] = i;
+    }
+
+    inline size_t size() const { return m_size; }
+    inline size_t allocatedSize() const { return m_allocatedSize; }
+    inline void clear() { m_size = 0; }
+
+    const Scalar* valuePtr() const { return m_values; }
+    Scalar* valuePtr() { return m_values; }
+    const Index* indexPtr() const { return m_indices; }
+    Index* indexPtr() { return m_indices; }
+
+    inline Scalar& value(size_t i) { return m_values[i]; }
+    inline const Scalar& value(size_t i) const { return m_values[i]; }
+
+    inline Index& index(size_t i) { return m_indices[i]; }
+    inline const Index& index(size_t i) const { return m_indices[i]; }
+
+    static CompressedStorage Map(Index* indices, Scalar* values, size_t size)
+    {
+      CompressedStorage res;
+      res.m_indices = indices;
+      res.m_values = values;
+      res.m_allocatedSize = res.m_size = size;
+      return res;
+    }
+
+    /** \returns the largest \c k such that for all \c j in [0,k) index[\c j]\<\a key */
+    inline Index searchLowerIndex(Index key) const
+    {
+      return searchLowerIndex(0, m_size, key);
+    }
+
+    /** \returns the largest \c k in [start,end) such that for all \c j in [start,k) index[\c j]\<\a key */
+    inline Index searchLowerIndex(size_t start, size_t end, Index key) const
+    {
+      while(end>start)
+      {
+        size_t mid = (end+start)>>1;
+        if (m_indices[mid]<key)
+          start = mid+1;
+        else
+          end = mid;
+      }
+      return static_cast<Index>(start);
+    }
+
+    /** \returns the stored value at index \a key
+      * If the value does not exist, then the value \a defaultValue is returned without any insertion. */
+    inline Scalar at(Index key, const Scalar& defaultValue = Scalar(0)) const
+    {
+      if (m_size==0)
+        return defaultValue;
+      else if (key==m_indices[m_size-1])
+        return m_values[m_size-1];
+      // ^^  optimization: let's first check if it is the last coefficient
+      // (very common in high level algorithms)
+      const size_t id = searchLowerIndex(0,m_size-1,key);
+      return ((id<m_size) && (m_indices[id]==key)) ? m_values[id] : defaultValue;
+    }
+
+    /** Like at(), but the search is performed in the range [start,end) */
+    inline Scalar atInRange(size_t start, size_t end, Index key, const Scalar& defaultValue = Scalar(0)) const
+    {
+      if (start>=end)
+        return Scalar(0);
+      else if (end>start && key==m_indices[end-1])
+        return m_values[end-1];
+      // ^^  optimization: let's first check if it is the last coefficient
+      // (very common in high level algorithms)
+      const size_t id = searchLowerIndex(start,end-1,key);
+      return ((id<end) && (m_indices[id]==key)) ? m_values[id] : defaultValue;
+    }
+
+    /** \returns a reference to the value at index \a key
+      * If the value does not exist, then the value \a defaultValue is inserted
+      * such that the keys are sorted. */
+    inline Scalar& atWithInsertion(Index key, const Scalar& defaultValue = Scalar(0))
+    {
+      size_t id = searchLowerIndex(0,m_size,key);
+      if (id>=m_size || m_indices[id]!=key)
+      {
+        resize(m_size+1,1);
+        for (size_t j=m_size-1; j>id; --j)
+        {
+          m_indices[j] = m_indices[j-1];
+          m_values[j] = m_values[j-1];
+        }
+        m_indices[id] = key;
+        m_values[id] = defaultValue;
+      }
+      return m_values[id];
+    }
+
+    void prune(const Scalar& reference, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision())
+    {
+      size_t k = 0;
+      size_t n = size();
+      for (size_t i=0; i<n; ++i)
+      {
+        if (!internal::isMuchSmallerThan(value(i), reference, epsilon))
+        {
+          value(k) = value(i);
+          index(k) = index(i);
+          ++k;
+        }
+      }
+      resize(k,0);
+    }
+
+  protected:
+
+    inline void reallocate(size_t size)
+    {
+      Scalar* newValues  = new Scalar[size];
+      Index* newIndices = new Index[size];
+      size_t copySize = (std::min)(size, m_size);
+      // copy
+      if (copySize>0) {
+        internal::smart_copy(m_values, m_values+copySize, newValues);
+        internal::smart_copy(m_indices, m_indices+copySize, newIndices);
+      }
+      // delete old stuff
+      delete[] m_values;
+      delete[] m_indices;
+      m_values = newValues;
+      m_indices = newIndices;
+      m_allocatedSize = size;
+    }
+
+  protected:
+    Scalar* m_values;
+    Index* m_indices;
+    size_t m_size;
+    size_t m_allocatedSize;
+
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPRESSED_STORAGE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseUtil.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseUtil.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseUtil.h	(revision 2476)
@@ -0,0 +1,172 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEUTIL_H
+#define EIGEN_SPARSEUTIL_H
+
+namespace Eigen { 
+
+#ifdef NDEBUG
+#define EIGEN_DBG_SPARSE(X)
+#else
+#define EIGEN_DBG_SPARSE(X) X
+#endif
+
+#define EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, Op) \
+template<typename OtherDerived> \
+EIGEN_STRONG_INLINE Derived& operator Op(const Eigen::SparseMatrixBase<OtherDerived>& other) \
+{ \
+  return Base::operator Op(other.derived()); \
+} \
+EIGEN_STRONG_INLINE Derived& operator Op(const Derived& other) \
+{ \
+  return Base::operator Op(other); \
+}
+
+#define EIGEN_SPARSE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, Op) \
+template<typename Other> \
+EIGEN_STRONG_INLINE Derived& operator Op(const Other& scalar) \
+{ \
+  return Base::operator Op(scalar); \
+}
+
+#define EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATORS(Derived) \
+EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, =) \
+EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, +=) \
+EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, -=) \
+EIGEN_SPARSE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, *=) \
+EIGEN_SPARSE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, /=)
+
+#define _EIGEN_SPARSE_PUBLIC_INTERFACE(Derived, BaseClass) \
+  typedef BaseClass Base; \
+  typedef typename Eigen::internal::traits<Derived >::Scalar Scalar; \
+  typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; \
+  typedef typename Eigen::internal::nested<Derived >::type Nested; \
+  typedef typename Eigen::internal::traits<Derived >::StorageKind StorageKind; \
+  typedef typename Eigen::internal::traits<Derived >::Index Index; \
+  enum { RowsAtCompileTime = Eigen::internal::traits<Derived >::RowsAtCompileTime, \
+        ColsAtCompileTime = Eigen::internal::traits<Derived >::ColsAtCompileTime, \
+        Flags = Eigen::internal::traits<Derived >::Flags, \
+        CoeffReadCost = Eigen::internal::traits<Derived >::CoeffReadCost, \
+        SizeAtCompileTime = Base::SizeAtCompileTime, \
+        IsVectorAtCompileTime = Base::IsVectorAtCompileTime }; \
+  using Base::derived; \
+  using Base::const_cast_derived;
+
+#define EIGEN_SPARSE_PUBLIC_INTERFACE(Derived) \
+  _EIGEN_SPARSE_PUBLIC_INTERFACE(Derived, Eigen::SparseMatrixBase<Derived >)
+
+const int CoherentAccessPattern     = 0x1;
+const int InnerRandomAccessPattern  = 0x2 | CoherentAccessPattern;
+const int OuterRandomAccessPattern  = 0x4 | CoherentAccessPattern;
+const int RandomAccessPattern       = 0x8 | OuterRandomAccessPattern | InnerRandomAccessPattern;
+
+template<typename _Scalar, int _Flags = 0, typename _Index = int>  class SparseMatrix;
+template<typename _Scalar, int _Flags = 0, typename _Index = int>  class DynamicSparseMatrix;
+template<typename _Scalar, int _Flags = 0, typename _Index = int>  class SparseVector;
+template<typename _Scalar, int _Flags = 0, typename _Index = int>  class MappedSparseMatrix;
+
+template<typename MatrixType, int Mode>           class SparseTriangularView;
+template<typename MatrixType, unsigned int UpLo>  class SparseSelfAdjointView;
+template<typename Lhs, typename Rhs>              class SparseDiagonalProduct;
+template<typename MatrixType> class SparseView;
+
+template<typename Lhs, typename Rhs>        class SparseSparseProduct;
+template<typename Lhs, typename Rhs>        class SparseTimeDenseProduct;
+template<typename Lhs, typename Rhs>        class DenseTimeSparseProduct;
+template<typename Lhs, typename Rhs, bool Transpose> class SparseDenseOuterProduct;
+
+template<typename Lhs, typename Rhs> struct SparseSparseProductReturnType;
+template<typename Lhs, typename Rhs,
+         int InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(internal::traits<Lhs>::ColsAtCompileTime,internal::traits<Rhs>::RowsAtCompileTime)> struct DenseSparseProductReturnType;         
+template<typename Lhs, typename Rhs,
+         int InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(internal::traits<Lhs>::ColsAtCompileTime,internal::traits<Rhs>::RowsAtCompileTime)> struct SparseDenseProductReturnType;
+template<typename MatrixType,int UpLo> class SparseSymmetricPermutationProduct;
+
+namespace internal {
+
+template<typename T,int Rows,int Cols> struct sparse_eval;
+
+template<typename T> struct eval<T,Sparse>
+  : public sparse_eval<T, traits<T>::RowsAtCompileTime,traits<T>::ColsAtCompileTime>
+{};
+
+template<typename T,int Cols> struct sparse_eval<T,1,Cols> {
+    typedef typename traits<T>::Scalar _Scalar;
+    typedef typename traits<T>::Index _Index;
+  public:
+    typedef SparseVector<_Scalar, RowMajor, _Index> type;
+};
+
+template<typename T,int Rows> struct sparse_eval<T,Rows,1> {
+    typedef typename traits<T>::Scalar _Scalar;
+    typedef typename traits<T>::Index _Index;
+  public:
+    typedef SparseVector<_Scalar, ColMajor, _Index> type;
+};
+
+template<typename T,int Rows,int Cols> struct sparse_eval {
+    typedef typename traits<T>::Scalar _Scalar;
+    typedef typename traits<T>::Index _Index;
+    enum { _Options = ((traits<T>::Flags&RowMajorBit)==RowMajorBit) ? RowMajor : ColMajor };
+  public:
+    typedef SparseMatrix<_Scalar, _Options, _Index> type;
+};
+
+template<typename T> struct sparse_eval<T,1,1> {
+    typedef typename traits<T>::Scalar _Scalar;
+  public:
+    typedef Matrix<_Scalar, 1, 1> type;
+};
+
+template<typename T> struct plain_matrix_type<T,Sparse>
+{
+  typedef typename traits<T>::Scalar _Scalar;
+  typedef typename traits<T>::Index _Index;
+  enum { _Options = ((traits<T>::Flags&RowMajorBit)==RowMajorBit) ? RowMajor : ColMajor };
+  public:
+    typedef SparseMatrix<_Scalar, _Options, _Index> type;
+};
+
+} // end namespace internal
+
+/** \ingroup SparseCore_Module
+  *
+  * \class Triplet
+  *
+  * \brief A small structure to hold a non zero as a triplet (i,j,value).
+  *
+  * \sa SparseMatrix::setFromTriplets()
+  */
+template<typename Scalar, typename Index=typename SparseMatrix<Scalar>::Index >
+class Triplet
+{
+public:
+  Triplet() : m_row(0), m_col(0), m_value(0) {}
+
+  Triplet(const Index& i, const Index& j, const Scalar& v = Scalar(0))
+    : m_row(i), m_col(j), m_value(v)
+  {}
+
+  /** \returns the row index of the element */
+  const Index& row() const { return m_row; }
+
+  /** \returns the column index of the element */
+  const Index& col() const { return m_col; }
+
+  /** \returns the value of the element */
+  const Scalar& value() const { return m_value; }
+protected:
+  Index m_row, m_col;
+  Scalar m_value;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEUTIL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/AmbiVector.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/AmbiVector.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/AmbiVector.h	(revision 2476)
@@ -0,0 +1,373 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_AMBIVECTOR_H
+#define EIGEN_AMBIVECTOR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal
+  * Hybrid sparse/dense vector class designed for intensive read-write operations.
+  *
+  * See BasicSparseLLT and SparseProduct for usage examples.
+  */
+template<typename _Scalar, typename _Index>
+class AmbiVector
+{
+  public:
+    typedef _Scalar Scalar;
+    typedef _Index Index;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    AmbiVector(Index size)
+      : m_buffer(0), m_zero(0), m_size(0), m_allocatedSize(0), m_allocatedElements(0), m_mode(-1)
+    {
+      resize(size);
+    }
+
+    void init(double estimatedDensity);
+    void init(int mode);
+
+    Index nonZeros() const;
+
+    /** Specifies a sub-vector to work on */
+    void setBounds(Index start, Index end) { m_start = start; m_end = end; }
+
+    void setZero();
+
+    void restart();
+    Scalar& coeffRef(Index i);
+    Scalar& coeff(Index i);
+
+    class Iterator;
+
+    ~AmbiVector() { delete[] m_buffer; }
+
+    void resize(Index size)
+    {
+      if (m_allocatedSize < size)
+        reallocate(size);
+      m_size = size;
+    }
+
+    Index size() const { return m_size; }
+
+  protected:
+
+    void reallocate(Index size)
+    {
+      // if the size of the matrix is not too large, let's allocate a bit more than needed such
+      // that we can handle dense vector even in sparse mode.
+      delete[] m_buffer;
+      if (size<1000)
+      {
+        Index allocSize = (size * sizeof(ListEl) + sizeof(Scalar) - 1)/sizeof(Scalar);
+        m_allocatedElements = (allocSize*sizeof(Scalar))/sizeof(ListEl);
+        m_buffer = new Scalar[allocSize];
+      }
+      else
+      {
+        m_allocatedElements = (size*sizeof(Scalar))/sizeof(ListEl);
+        m_buffer = new Scalar[size];
+      }
+      m_size = size;
+      m_start = 0;
+      m_end = m_size;
+    }
+
+    void reallocateSparse()
+    {
+      Index copyElements = m_allocatedElements;
+      m_allocatedElements = (std::min)(Index(m_allocatedElements*1.5),m_size);
+      Index allocSize = m_allocatedElements * sizeof(ListEl);
+      allocSize = (allocSize + sizeof(Scalar) - 1)/sizeof(Scalar);
+      Scalar* newBuffer = new Scalar[allocSize];
+      memcpy(newBuffer,  m_buffer,  copyElements * sizeof(ListEl));
+      delete[] m_buffer;
+      m_buffer = newBuffer;
+    }
+
+  protected:
+    // element type of the linked list
+    struct ListEl
+    {
+      Index next;
+      Index index;
+      Scalar value;
+    };
+
+    // used to store data in both mode
+    Scalar* m_buffer;
+    Scalar m_zero;
+    Index m_size;
+    Index m_start;
+    Index m_end;
+    Index m_allocatedSize;
+    Index m_allocatedElements;
+    Index m_mode;
+
+    // linked list mode
+    Index m_llStart;
+    Index m_llCurrent;
+    Index m_llSize;
+};
+
+/** \returns the number of non zeros in the current sub vector */
+template<typename _Scalar,typename _Index>
+_Index AmbiVector<_Scalar,_Index>::nonZeros() const
+{
+  if (m_mode==IsSparse)
+    return m_llSize;
+  else
+    return m_end - m_start;
+}
+
+template<typename _Scalar,typename _Index>
+void AmbiVector<_Scalar,_Index>::init(double estimatedDensity)
+{
+  if (estimatedDensity>0.1)
+    init(IsDense);
+  else
+    init(IsSparse);
+}
+
+template<typename _Scalar,typename _Index>
+void AmbiVector<_Scalar,_Index>::init(int mode)
+{
+  m_mode = mode;
+  if (m_mode==IsSparse)
+  {
+    m_llSize = 0;
+    m_llStart = -1;
+  }
+}
+
+/** Must be called whenever we might perform a write access
+  * with an index smaller than the previous one.
+  *
+  * Don't worry, this function is extremely cheap.
+  */
+template<typename _Scalar,typename _Index>
+void AmbiVector<_Scalar,_Index>::restart()
+{
+  m_llCurrent = m_llStart;
+}
+
+/** Set all coefficients of current subvector to zero */
+template<typename _Scalar,typename _Index>
+void AmbiVector<_Scalar,_Index>::setZero()
+{
+  if (m_mode==IsDense)
+  {
+    for (Index i=m_start; i<m_end; ++i)
+      m_buffer[i] = Scalar(0);
+  }
+  else
+  {
+    eigen_assert(m_mode==IsSparse);
+    m_llSize = 0;
+    m_llStart = -1;
+  }
+}
+
+template<typename _Scalar,typename _Index>
+_Scalar& AmbiVector<_Scalar,_Index>::coeffRef(_Index i)
+{
+  if (m_mode==IsDense)
+    return m_buffer[i];
+  else
+  {
+    ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_buffer);
+    // TODO factorize the following code to reduce code generation
+    eigen_assert(m_mode==IsSparse);
+    if (m_llSize==0)
+    {
+      // this is the first element
+      m_llStart = 0;
+      m_llCurrent = 0;
+      ++m_llSize;
+      llElements[0].value = Scalar(0);
+      llElements[0].index = i;
+      llElements[0].next = -1;
+      return llElements[0].value;
+    }
+    else if (i<llElements[m_llStart].index)
+    {
+      // this is going to be the new first element of the list
+      ListEl& el = llElements[m_llSize];
+      el.value = Scalar(0);
+      el.index = i;
+      el.next = m_llStart;
+      m_llStart = m_llSize;
+      ++m_llSize;
+      m_llCurrent = m_llStart;
+      return el.value;
+    }
+    else
+    {
+      Index nextel = llElements[m_llCurrent].next;
+      eigen_assert(i>=llElements[m_llCurrent].index && "you must call restart() before inserting an element with lower or equal index");
+      while (nextel >= 0 && llElements[nextel].index<=i)
+      {
+        m_llCurrent = nextel;
+        nextel = llElements[nextel].next;
+      }
+
+      if (llElements[m_llCurrent].index==i)
+      {
+        // the coefficient already exists and we found it !
+        return llElements[m_llCurrent].value;
+      }
+      else
+      {
+        if (m_llSize>=m_allocatedElements)
+        {
+          reallocateSparse();
+          llElements = reinterpret_cast<ListEl*>(m_buffer);
+        }
+        eigen_internal_assert(m_llSize<m_allocatedElements && "internal error: overflow in sparse mode");
+        // let's insert a new coefficient
+        ListEl& el = llElements[m_llSize];
+        el.value = Scalar(0);
+        el.index = i;
+        el.next = llElements[m_llCurrent].next;
+        llElements[m_llCurrent].next = m_llSize;
+        ++m_llSize;
+        return el.value;
+      }
+    }
+  }
+}
+
+template<typename _Scalar,typename _Index>
+_Scalar& AmbiVector<_Scalar,_Index>::coeff(_Index i)
+{
+  if (m_mode==IsDense)
+    return m_buffer[i];
+  else
+  {
+    ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_buffer);
+    eigen_assert(m_mode==IsSparse);
+    if ((m_llSize==0) || (i<llElements[m_llStart].index))
+    {
+      return m_zero;
+    }
+    else
+    {
+      Index elid = m_llStart;
+      while (elid >= 0 && llElements[elid].index<i)
+        elid = llElements[elid].next;
+
+      if (llElements[elid].index==i)
+        return llElements[m_llCurrent].value;
+      else
+        return m_zero;
+    }
+  }
+}
+
+/** Iterator over the nonzero coefficients */
+template<typename _Scalar,typename _Index>
+class AmbiVector<_Scalar,_Index>::Iterator
+{
+  public:
+    typedef _Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    /** Default constructor
+      * \param vec the vector on which we iterate
+      * \param epsilon the minimal value used to prune zero coefficients.
+      * In practice, all coefficients having a magnitude smaller than \a epsilon
+      * are skipped.
+      */
+    Iterator(const AmbiVector& vec, const RealScalar& epsilon = 0)
+      : m_vector(vec)
+    {
+      using std::abs;
+      m_epsilon = epsilon;
+      m_isDense = m_vector.m_mode==IsDense;
+      if (m_isDense)
+      {
+        m_currentEl = 0;   // this is to avoid a compilation warning
+        m_cachedValue = 0; // this is to avoid a compilation warning
+        m_cachedIndex = m_vector.m_start-1;
+        ++(*this);
+      }
+      else
+      {
+        ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_vector.m_buffer);
+        m_currentEl = m_vector.m_llStart;
+        while (m_currentEl>=0 && abs(llElements[m_currentEl].value)<=m_epsilon)
+          m_currentEl = llElements[m_currentEl].next;
+        if (m_currentEl<0)
+        {
+          m_cachedValue = 0; // this is to avoid a compilation warning
+          m_cachedIndex = -1;
+        }
+        else
+        {
+          m_cachedIndex = llElements[m_currentEl].index;
+          m_cachedValue = llElements[m_currentEl].value;
+        }
+      }
+    }
+
+    Index index() const { return m_cachedIndex; }
+    Scalar value() const { return m_cachedValue; }
+
+    operator bool() const { return m_cachedIndex>=0; }
+
+    Iterator& operator++()
+    {
+      using std::abs;
+      if (m_isDense)
+      {
+        do {
+          ++m_cachedIndex;
+        } while (m_cachedIndex<m_vector.m_end && abs(m_vector.m_buffer[m_cachedIndex])<m_epsilon);
+        if (m_cachedIndex<m_vector.m_end)
+          m_cachedValue = m_vector.m_buffer[m_cachedIndex];
+        else
+          m_cachedIndex=-1;
+      }
+      else
+      {
+        ListEl* EIGEN_RESTRICT llElements = reinterpret_cast<ListEl*>(m_vector.m_buffer);
+        do {
+          m_currentEl = llElements[m_currentEl].next;
+        } while (m_currentEl>=0 && abs(llElements[m_currentEl].value)<m_epsilon);
+        if (m_currentEl<0)
+        {
+          m_cachedIndex = -1;
+        }
+        else
+        {
+          m_cachedIndex = llElements[m_currentEl].index;
+          m_cachedValue = llElements[m_currentEl].value;
+        }
+      }
+      return *this;
+    }
+
+  protected:
+    const AmbiVector& m_vector; // the target vector
+    Index m_currentEl;            // the current element in sparse/linked-list mode
+    RealScalar m_epsilon;       // epsilon used to prune zero coefficients
+    Index m_cachedIndex;          // current coordinate
+    Scalar m_cachedValue;       // current value
+    bool m_isDense;             // mode of the vector
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_AMBIVECTOR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseCwiseBinaryOp.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseCwiseBinaryOp.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseCwiseBinaryOp.h	(revision 2476)
@@ -0,0 +1,324 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_CWISE_BINARY_OP_H
+#define EIGEN_SPARSE_CWISE_BINARY_OP_H
+
+namespace Eigen { 
+
+// Here we have to handle 3 cases:
+//  1 - sparse op dense
+//  2 - dense op sparse
+//  3 - sparse op sparse
+// We also need to implement a 4th iterator for:
+//  4 - dense op dense
+// Finally, we also need to distinguish between the product and other operations :
+//                configuration      returned mode
+//  1 - sparse op dense    product      sparse
+//                         generic      dense
+//  2 - dense op sparse    product      sparse
+//                         generic      dense
+//  3 - sparse op sparse   product      sparse
+//                         generic      sparse
+//  4 - dense op dense     product      dense
+//                         generic      dense
+
+namespace internal {
+
+template<> struct promote_storage_type<Dense,Sparse>
+{ typedef Sparse ret; };
+
+template<> struct promote_storage_type<Sparse,Dense>
+{ typedef Sparse ret; };
+
+template<typename BinaryOp, typename Lhs, typename Rhs, typename Derived,
+  typename _LhsStorageMode = typename traits<Lhs>::StorageKind,
+  typename _RhsStorageMode = typename traits<Rhs>::StorageKind>
+class sparse_cwise_binary_op_inner_iterator_selector;
+
+} // end namespace internal
+
+template<typename BinaryOp, typename Lhs, typename Rhs>
+class CwiseBinaryOpImpl<BinaryOp, Lhs, Rhs, Sparse>
+  : public SparseMatrixBase<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
+{
+  public:
+    class InnerIterator;
+    class ReverseInnerIterator;
+    typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> Derived;
+    EIGEN_SPARSE_PUBLIC_INTERFACE(Derived)
+    CwiseBinaryOpImpl()
+    {
+      EIGEN_STATIC_ASSERT((
+                (!internal::is_same<typename internal::traits<Lhs>::StorageKind,
+                                    typename internal::traits<Rhs>::StorageKind>::value)
+            ||  ((Lhs::Flags&RowMajorBit) == (Rhs::Flags&RowMajorBit))),
+            THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH);
+    }
+};
+
+template<typename BinaryOp, typename Lhs, typename Rhs>
+class CwiseBinaryOpImpl<BinaryOp,Lhs,Rhs,Sparse>::InnerIterator
+  : public internal::sparse_cwise_binary_op_inner_iterator_selector<BinaryOp,Lhs,Rhs,typename CwiseBinaryOpImpl<BinaryOp,Lhs,Rhs,Sparse>::InnerIterator>
+{
+  public:
+    typedef typename Lhs::Index Index;
+    typedef internal::sparse_cwise_binary_op_inner_iterator_selector<
+      BinaryOp,Lhs,Rhs, InnerIterator> Base;
+
+    // NOTE: we have to prefix Index by "typename Lhs::" to avoid an ICE with VC11
+    EIGEN_STRONG_INLINE InnerIterator(const CwiseBinaryOpImpl& binOp, typename Lhs::Index outer)
+      : Base(binOp.derived(),outer)
+    {}
+};
+
+/***************************************************************************
+* Implementation of inner-iterators
+***************************************************************************/
+
+// template<typename T> struct internal::func_is_conjunction { enum { ret = false }; };
+// template<typename T> struct internal::func_is_conjunction<internal::scalar_product_op<T> > { enum { ret = true }; };
+
+// TODO generalize the internal::scalar_product_op specialization to all conjunctions if any !
+
+namespace internal {
+
+// sparse - sparse  (generic)
+template<typename BinaryOp, typename Lhs, typename Rhs, typename Derived>
+class sparse_cwise_binary_op_inner_iterator_selector<BinaryOp, Lhs, Rhs, Derived, Sparse, Sparse>
+{
+    typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> CwiseBinaryXpr;
+    typedef typename traits<CwiseBinaryXpr>::Scalar Scalar;
+    typedef typename traits<CwiseBinaryXpr>::_LhsNested _LhsNested;
+    typedef typename traits<CwiseBinaryXpr>::_RhsNested _RhsNested;
+    typedef typename _LhsNested::InnerIterator LhsIterator;
+    typedef typename _RhsNested::InnerIterator RhsIterator;
+    typedef typename Lhs::Index Index;
+
+  public:
+
+    EIGEN_STRONG_INLINE sparse_cwise_binary_op_inner_iterator_selector(const CwiseBinaryXpr& xpr, Index outer)
+      : m_lhsIter(xpr.lhs(),outer), m_rhsIter(xpr.rhs(),outer), m_functor(xpr.functor())
+    {
+      this->operator++();
+    }
+
+    EIGEN_STRONG_INLINE Derived& operator++()
+    {
+      if (m_lhsIter && m_rhsIter && (m_lhsIter.index() == m_rhsIter.index()))
+      {
+        m_id = m_lhsIter.index();
+        m_value = m_functor(m_lhsIter.value(), m_rhsIter.value());
+        ++m_lhsIter;
+        ++m_rhsIter;
+      }
+      else if (m_lhsIter && (!m_rhsIter || (m_lhsIter.index() < m_rhsIter.index())))
+      {
+        m_id = m_lhsIter.index();
+        m_value = m_functor(m_lhsIter.value(), Scalar(0));
+        ++m_lhsIter;
+      }
+      else if (m_rhsIter && (!m_lhsIter || (m_lhsIter.index() > m_rhsIter.index())))
+      {
+        m_id = m_rhsIter.index();
+        m_value = m_functor(Scalar(0), m_rhsIter.value());
+        ++m_rhsIter;
+      }
+      else
+      {
+        m_value = 0; // this is to avoid a compilation warning
+        m_id = -1;
+      }
+      return *static_cast<Derived*>(this);
+    }
+
+    EIGEN_STRONG_INLINE Scalar value() const { return m_value; }
+
+    EIGEN_STRONG_INLINE Index index() const { return m_id; }
+    EIGEN_STRONG_INLINE Index row() const { return Lhs::IsRowMajor ? m_lhsIter.row() : index(); }
+    EIGEN_STRONG_INLINE Index col() const { return Lhs::IsRowMajor ? index() : m_lhsIter.col(); }
+
+    EIGEN_STRONG_INLINE operator bool() const { return m_id>=0; }
+
+  protected:
+    LhsIterator m_lhsIter;
+    RhsIterator m_rhsIter;
+    const BinaryOp& m_functor;
+    Scalar m_value;
+    Index m_id;
+};
+
+// sparse - sparse  (product)
+template<typename T, typename Lhs, typename Rhs, typename Derived>
+class sparse_cwise_binary_op_inner_iterator_selector<scalar_product_op<T>, Lhs, Rhs, Derived, Sparse, Sparse>
+{
+    typedef scalar_product_op<T> BinaryFunc;
+    typedef CwiseBinaryOp<BinaryFunc, Lhs, Rhs> CwiseBinaryXpr;
+    typedef typename CwiseBinaryXpr::Scalar Scalar;
+    typedef typename traits<CwiseBinaryXpr>::_LhsNested _LhsNested;
+    typedef typename _LhsNested::InnerIterator LhsIterator;
+    typedef typename traits<CwiseBinaryXpr>::_RhsNested _RhsNested;
+    typedef typename _RhsNested::InnerIterator RhsIterator;
+    typedef typename Lhs::Index Index;
+  public:
+
+    EIGEN_STRONG_INLINE sparse_cwise_binary_op_inner_iterator_selector(const CwiseBinaryXpr& xpr, Index outer)
+      : m_lhsIter(xpr.lhs(),outer), m_rhsIter(xpr.rhs(),outer), m_functor(xpr.functor())
+    {
+      while (m_lhsIter && m_rhsIter && (m_lhsIter.index() != m_rhsIter.index()))
+      {
+        if (m_lhsIter.index() < m_rhsIter.index())
+          ++m_lhsIter;
+        else
+          ++m_rhsIter;
+      }
+    }
+
+    EIGEN_STRONG_INLINE Derived& operator++()
+    {
+      ++m_lhsIter;
+      ++m_rhsIter;
+      while (m_lhsIter && m_rhsIter && (m_lhsIter.index() != m_rhsIter.index()))
+      {
+        if (m_lhsIter.index() < m_rhsIter.index())
+          ++m_lhsIter;
+        else
+          ++m_rhsIter;
+      }
+      return *static_cast<Derived*>(this);
+    }
+
+    EIGEN_STRONG_INLINE Scalar value() const { return m_functor(m_lhsIter.value(), m_rhsIter.value()); }
+
+    EIGEN_STRONG_INLINE Index index() const { return m_lhsIter.index(); }
+    EIGEN_STRONG_INLINE Index row() const { return m_lhsIter.row(); }
+    EIGEN_STRONG_INLINE Index col() const { return m_lhsIter.col(); }
+
+    EIGEN_STRONG_INLINE operator bool() const { return (m_lhsIter && m_rhsIter); }
+
+  protected:
+    LhsIterator m_lhsIter;
+    RhsIterator m_rhsIter;
+    const BinaryFunc& m_functor;
+};
+
+// sparse - dense  (product)
+template<typename T, typename Lhs, typename Rhs, typename Derived>
+class sparse_cwise_binary_op_inner_iterator_selector<scalar_product_op<T>, Lhs, Rhs, Derived, Sparse, Dense>
+{
+    typedef scalar_product_op<T> BinaryFunc;
+    typedef CwiseBinaryOp<BinaryFunc, Lhs, Rhs> CwiseBinaryXpr;
+    typedef typename CwiseBinaryXpr::Scalar Scalar;
+    typedef typename traits<CwiseBinaryXpr>::_LhsNested _LhsNested;
+    typedef typename traits<CwiseBinaryXpr>::RhsNested RhsNested;
+    typedef typename _LhsNested::InnerIterator LhsIterator;
+    typedef typename Lhs::Index Index;
+    enum { IsRowMajor = (int(Lhs::Flags)&RowMajorBit)==RowMajorBit };
+  public:
+
+    EIGEN_STRONG_INLINE sparse_cwise_binary_op_inner_iterator_selector(const CwiseBinaryXpr& xpr, Index outer)
+      : m_rhs(xpr.rhs()), m_lhsIter(xpr.lhs(),outer), m_functor(xpr.functor()), m_outer(outer)
+    {}
+
+    EIGEN_STRONG_INLINE Derived& operator++()
+    {
+      ++m_lhsIter;
+      return *static_cast<Derived*>(this);
+    }
+
+    EIGEN_STRONG_INLINE Scalar value() const
+    { return m_functor(m_lhsIter.value(),
+                       m_rhs.coeff(IsRowMajor?m_outer:m_lhsIter.index(),IsRowMajor?m_lhsIter.index():m_outer)); }
+
+    EIGEN_STRONG_INLINE Index index() const { return m_lhsIter.index(); }
+    EIGEN_STRONG_INLINE Index row() const { return m_lhsIter.row(); }
+    EIGEN_STRONG_INLINE Index col() const { return m_lhsIter.col(); }
+
+    EIGEN_STRONG_INLINE operator bool() const { return m_lhsIter; }
+
+  protected:
+    RhsNested m_rhs;
+    LhsIterator m_lhsIter;
+    const BinaryFunc m_functor;
+    const Index m_outer;
+};
+
+// sparse - dense  (product)
+template<typename T, typename Lhs, typename Rhs, typename Derived>
+class sparse_cwise_binary_op_inner_iterator_selector<scalar_product_op<T>, Lhs, Rhs, Derived, Dense, Sparse>
+{
+    typedef scalar_product_op<T> BinaryFunc;
+    typedef CwiseBinaryOp<BinaryFunc, Lhs, Rhs> CwiseBinaryXpr;
+    typedef typename CwiseBinaryXpr::Scalar Scalar;
+    typedef typename traits<CwiseBinaryXpr>::_RhsNested _RhsNested;
+    typedef typename _RhsNested::InnerIterator RhsIterator;
+    typedef typename Lhs::Index Index;
+
+    enum { IsRowMajor = (int(Rhs::Flags)&RowMajorBit)==RowMajorBit };
+  public:
+
+    EIGEN_STRONG_INLINE sparse_cwise_binary_op_inner_iterator_selector(const CwiseBinaryXpr& xpr, Index outer)
+      : m_xpr(xpr), m_rhsIter(xpr.rhs(),outer), m_functor(xpr.functor()), m_outer(outer)
+    {}
+
+    EIGEN_STRONG_INLINE Derived& operator++()
+    {
+      ++m_rhsIter;
+      return *static_cast<Derived*>(this);
+    }
+
+    EIGEN_STRONG_INLINE Scalar value() const
+    { return m_functor(m_xpr.lhs().coeff(IsRowMajor?m_outer:m_rhsIter.index(),IsRowMajor?m_rhsIter.index():m_outer), m_rhsIter.value()); }
+
+    EIGEN_STRONG_INLINE Index index() const { return m_rhsIter.index(); }
+    EIGEN_STRONG_INLINE Index row() const { return m_rhsIter.row(); }
+    EIGEN_STRONG_INLINE Index col() const { return m_rhsIter.col(); }
+
+    EIGEN_STRONG_INLINE operator bool() const { return m_rhsIter; }
+
+  protected:
+    const CwiseBinaryXpr& m_xpr;
+    RhsIterator m_rhsIter;
+    const BinaryFunc& m_functor;
+    const Index m_outer;
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Implementation of SparseMatrixBase and SparseCwise functions/operators
+***************************************************************************/
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+SparseMatrixBase<Derived>::operator-=(const SparseMatrixBase<OtherDerived> &other)
+{
+  return derived() = derived() - other.derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+SparseMatrixBase<Derived>::operator+=(const SparseMatrixBase<OtherDerived>& other)
+{
+  return derived() = derived() + other.derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const typename SparseMatrixBase<Derived>::template CwiseProductDenseReturnType<OtherDerived>::Type
+SparseMatrixBase<Derived>::cwiseProduct(const MatrixBase<OtherDerived> &other) const
+{
+  return typename CwiseProductDenseReturnType<OtherDerived>::Type(derived(), other.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_CWISE_BINARY_OP_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseTranspose.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseTranspose.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseTranspose.h	(revision 2476)
@@ -0,0 +1,63 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSETRANSPOSE_H
+#define EIGEN_SPARSETRANSPOSE_H
+
+namespace Eigen { 
+
+template<typename MatrixType> class TransposeImpl<MatrixType,Sparse>
+  : public SparseMatrixBase<Transpose<MatrixType> >
+{
+    typedef typename internal::remove_all<typename MatrixType::Nested>::type _MatrixTypeNested;
+  public:
+
+    EIGEN_SPARSE_PUBLIC_INTERFACE(Transpose<MatrixType> )
+
+    class InnerIterator;
+    class ReverseInnerIterator;
+
+    inline Index nonZeros() const { return derived().nestedExpression().nonZeros(); }
+};
+
+// NOTE: VC10 and VC11 trigger an ICE if don't put typename TransposeImpl<MatrixType,Sparse>:: in front of Index,
+// a typedef typename TransposeImpl<MatrixType,Sparse>::Index Index;
+// does not fix the issue.
+// An alternative is to define the nested class in the parent class itself.
+template<typename MatrixType> class TransposeImpl<MatrixType,Sparse>::InnerIterator
+  : public _MatrixTypeNested::InnerIterator
+{
+    typedef typename _MatrixTypeNested::InnerIterator Base;
+    typedef typename TransposeImpl::Index Index;
+  public:
+
+    EIGEN_STRONG_INLINE InnerIterator(const TransposeImpl& trans, typename TransposeImpl<MatrixType,Sparse>::Index outer)
+      : Base(trans.derived().nestedExpression(), outer)
+    {}
+    typename TransposeImpl<MatrixType,Sparse>::Index row() const { return Base::col(); }
+    typename TransposeImpl<MatrixType,Sparse>::Index col() const { return Base::row(); }
+};
+
+template<typename MatrixType> class TransposeImpl<MatrixType,Sparse>::ReverseInnerIterator
+  : public _MatrixTypeNested::ReverseInnerIterator
+{
+    typedef typename _MatrixTypeNested::ReverseInnerIterator Base;
+    typedef typename TransposeImpl::Index Index;
+  public:
+
+    EIGEN_STRONG_INLINE ReverseInnerIterator(const TransposeImpl& xpr, typename TransposeImpl<MatrixType,Sparse>::Index outer)
+      : Base(xpr.derived().nestedExpression(), outer)
+    {}
+    typename TransposeImpl<MatrixType,Sparse>::Index row() const { return Base::col(); }
+    typename TransposeImpl<MatrixType,Sparse>::Index col() const { return Base::row(); }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSETRANSPOSE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseDiagonalProduct.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseDiagonalProduct.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseDiagonalProduct.h	(revision 2476)
@@ -0,0 +1,196 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_DIAGONAL_PRODUCT_H
+#define EIGEN_SPARSE_DIAGONAL_PRODUCT_H
+
+namespace Eigen { 
+
+// The product of a diagonal matrix with a sparse matrix can be easily
+// implemented using expression template.
+// We have two consider very different cases:
+// 1 - diag * row-major sparse
+//     => each inner vector <=> scalar * sparse vector product
+//     => so we can reuse CwiseUnaryOp::InnerIterator
+// 2 - diag * col-major sparse
+//     => each inner vector <=> densevector * sparse vector cwise product
+//     => again, we can reuse specialization of CwiseBinaryOp::InnerIterator
+//        for that particular case
+// The two other cases are symmetric.
+
+namespace internal {
+
+template<typename Lhs, typename Rhs>
+struct traits<SparseDiagonalProduct<Lhs, Rhs> >
+{
+  typedef typename remove_all<Lhs>::type _Lhs;
+  typedef typename remove_all<Rhs>::type _Rhs;
+  typedef typename _Lhs::Scalar Scalar;
+  typedef typename promote_index_type<typename traits<Lhs>::Index,
+                                         typename traits<Rhs>::Index>::type Index;
+  typedef Sparse StorageKind;
+  typedef MatrixXpr XprKind;
+  enum {
+    RowsAtCompileTime = _Lhs::RowsAtCompileTime,
+    ColsAtCompileTime = _Rhs::ColsAtCompileTime,
+
+    MaxRowsAtCompileTime = _Lhs::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = _Rhs::MaxColsAtCompileTime,
+
+    SparseFlags = is_diagonal<_Lhs>::ret ? int(_Rhs::Flags) : int(_Lhs::Flags),
+    Flags = (SparseFlags&RowMajorBit),
+    CoeffReadCost = Dynamic
+  };
+};
+
+enum {SDP_IsDiagonal, SDP_IsSparseRowMajor, SDP_IsSparseColMajor};
+template<typename Lhs, typename Rhs, typename SparseDiagonalProductType, int RhsMode, int LhsMode>
+class sparse_diagonal_product_inner_iterator_selector;
+
+} // end namespace internal
+
+template<typename Lhs, typename Rhs>
+class SparseDiagonalProduct
+  : public SparseMatrixBase<SparseDiagonalProduct<Lhs,Rhs> >,
+    internal::no_assignment_operator
+{
+    typedef typename Lhs::Nested LhsNested;
+    typedef typename Rhs::Nested RhsNested;
+
+    typedef typename internal::remove_all<LhsNested>::type _LhsNested;
+    typedef typename internal::remove_all<RhsNested>::type _RhsNested;
+
+    enum {
+      LhsMode = internal::is_diagonal<_LhsNested>::ret ? internal::SDP_IsDiagonal
+              : (_LhsNested::Flags&RowMajorBit) ? internal::SDP_IsSparseRowMajor : internal::SDP_IsSparseColMajor,
+      RhsMode = internal::is_diagonal<_RhsNested>::ret ? internal::SDP_IsDiagonal
+              : (_RhsNested::Flags&RowMajorBit) ? internal::SDP_IsSparseRowMajor : internal::SDP_IsSparseColMajor
+    };
+
+  public:
+
+    EIGEN_SPARSE_PUBLIC_INTERFACE(SparseDiagonalProduct)
+
+    typedef internal::sparse_diagonal_product_inner_iterator_selector
+                      <_LhsNested,_RhsNested,SparseDiagonalProduct,LhsMode,RhsMode> InnerIterator;
+    
+    // We do not want ReverseInnerIterator for diagonal-sparse products,
+    // but this dummy declaration is needed to make diag * sparse * diag compile.
+    class ReverseInnerIterator;
+
+    EIGEN_STRONG_INLINE SparseDiagonalProduct(const Lhs& lhs, const Rhs& rhs)
+      : m_lhs(lhs), m_rhs(rhs)
+    {
+      eigen_assert(lhs.cols() == rhs.rows() && "invalid sparse matrix * diagonal matrix product");
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_lhs.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_rhs.cols(); }
+
+    EIGEN_STRONG_INLINE const _LhsNested& lhs() const { return m_lhs; }
+    EIGEN_STRONG_INLINE const _RhsNested& rhs() const { return m_rhs; }
+
+  protected:
+    LhsNested m_lhs;
+    RhsNested m_rhs;
+};
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, typename SparseDiagonalProductType>
+class sparse_diagonal_product_inner_iterator_selector
+<Lhs,Rhs,SparseDiagonalProductType,SDP_IsDiagonal,SDP_IsSparseRowMajor>
+  : public CwiseUnaryOp<scalar_multiple_op<typename Lhs::Scalar>,const Rhs>::InnerIterator
+{
+    typedef typename CwiseUnaryOp<scalar_multiple_op<typename Lhs::Scalar>,const Rhs>::InnerIterator Base;
+    typedef typename Lhs::Index Index;
+  public:
+    inline sparse_diagonal_product_inner_iterator_selector(
+              const SparseDiagonalProductType& expr, Index outer)
+      : Base(expr.rhs()*(expr.lhs().diagonal().coeff(outer)), outer)
+    {}
+};
+
+template<typename Lhs, typename Rhs, typename SparseDiagonalProductType>
+class sparse_diagonal_product_inner_iterator_selector
+<Lhs,Rhs,SparseDiagonalProductType,SDP_IsDiagonal,SDP_IsSparseColMajor>
+  : public CwiseBinaryOp<
+      scalar_product_op<typename Lhs::Scalar>,
+      const typename Rhs::ConstInnerVectorReturnType,
+      const typename Lhs::DiagonalVectorType>::InnerIterator
+{
+    typedef typename CwiseBinaryOp<
+      scalar_product_op<typename Lhs::Scalar>,
+      const typename Rhs::ConstInnerVectorReturnType,
+      const typename Lhs::DiagonalVectorType>::InnerIterator Base;
+    typedef typename Lhs::Index Index;
+    Index m_outer;
+  public:
+    inline sparse_diagonal_product_inner_iterator_selector(
+              const SparseDiagonalProductType& expr, Index outer)
+      : Base(expr.rhs().innerVector(outer) .cwiseProduct(expr.lhs().diagonal()), 0), m_outer(outer)
+    {}
+    
+    inline Index outer() const { return m_outer; }
+    inline Index col() const { return m_outer; }
+};
+
+template<typename Lhs, typename Rhs, typename SparseDiagonalProductType>
+class sparse_diagonal_product_inner_iterator_selector
+<Lhs,Rhs,SparseDiagonalProductType,SDP_IsSparseColMajor,SDP_IsDiagonal>
+  : public CwiseUnaryOp<scalar_multiple_op<typename Rhs::Scalar>,const Lhs>::InnerIterator
+{
+    typedef typename CwiseUnaryOp<scalar_multiple_op<typename Rhs::Scalar>,const Lhs>::InnerIterator Base;
+    typedef typename Lhs::Index Index;
+  public:
+    inline sparse_diagonal_product_inner_iterator_selector(
+              const SparseDiagonalProductType& expr, Index outer)
+      : Base(expr.lhs()*expr.rhs().diagonal().coeff(outer), outer)
+    {}
+};
+
+template<typename Lhs, typename Rhs, typename SparseDiagonalProductType>
+class sparse_diagonal_product_inner_iterator_selector
+<Lhs,Rhs,SparseDiagonalProductType,SDP_IsSparseRowMajor,SDP_IsDiagonal>
+  : public CwiseBinaryOp<
+      scalar_product_op<typename Rhs::Scalar>,
+      const typename Lhs::ConstInnerVectorReturnType,
+      const Transpose<const typename Rhs::DiagonalVectorType> >::InnerIterator
+{
+    typedef typename CwiseBinaryOp<
+      scalar_product_op<typename Rhs::Scalar>,
+      const typename Lhs::ConstInnerVectorReturnType,
+      const Transpose<const typename Rhs::DiagonalVectorType> >::InnerIterator Base;
+    typedef typename Lhs::Index Index;
+    Index m_outer;
+  public:
+    inline sparse_diagonal_product_inner_iterator_selector(
+              const SparseDiagonalProductType& expr, Index outer)
+      : Base(expr.lhs().innerVector(outer) .cwiseProduct(expr.rhs().diagonal().transpose()), 0), m_outer(outer)
+    {}
+    
+    inline Index outer() const { return m_outer; }
+    inline Index row() const { return m_outer; }
+};
+
+} // end namespace internal
+
+// SparseMatrixBase functions
+
+template<typename Derived>
+template<typename OtherDerived>
+const SparseDiagonalProduct<Derived,OtherDerived>
+SparseMatrixBase<Derived>::operator*(const DiagonalBase<OtherDerived> &other) const
+{
+  return SparseDiagonalProduct<Derived,OtherDerived>(this->derived(), other.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_DIAGONAL_PRODUCT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseProduct.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseProduct.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseProduct.h	(revision 2476)
@@ -0,0 +1,188 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEPRODUCT_H
+#define EIGEN_SPARSEPRODUCT_H
+
+namespace Eigen { 
+
+template<typename Lhs, typename Rhs>
+struct SparseSparseProductReturnType
+{
+  typedef typename internal::traits<Lhs>::Scalar Scalar;
+  typedef typename internal::traits<Lhs>::Index Index;
+  enum {
+    LhsRowMajor = internal::traits<Lhs>::Flags & RowMajorBit,
+    RhsRowMajor = internal::traits<Rhs>::Flags & RowMajorBit,
+    TransposeRhs = (!LhsRowMajor) && RhsRowMajor,
+    TransposeLhs = LhsRowMajor && (!RhsRowMajor)
+  };
+
+  typedef typename internal::conditional<TransposeLhs,
+    SparseMatrix<Scalar,0,Index>,
+    typename internal::nested<Lhs,Rhs::RowsAtCompileTime>::type>::type LhsNested;
+
+  typedef typename internal::conditional<TransposeRhs,
+    SparseMatrix<Scalar,0,Index>,
+    typename internal::nested<Rhs,Lhs::RowsAtCompileTime>::type>::type RhsNested;
+
+  typedef SparseSparseProduct<LhsNested, RhsNested> Type;
+};
+
+namespace internal {
+template<typename LhsNested, typename RhsNested>
+struct traits<SparseSparseProduct<LhsNested, RhsNested> >
+{
+  typedef MatrixXpr XprKind;
+  // clean the nested types:
+  typedef typename remove_all<LhsNested>::type _LhsNested;
+  typedef typename remove_all<RhsNested>::type _RhsNested;
+  typedef typename _LhsNested::Scalar Scalar;
+  typedef typename promote_index_type<typename traits<_LhsNested>::Index,
+                                         typename traits<_RhsNested>::Index>::type Index;
+
+  enum {
+    LhsCoeffReadCost = _LhsNested::CoeffReadCost,
+    RhsCoeffReadCost = _RhsNested::CoeffReadCost,
+    LhsFlags = _LhsNested::Flags,
+    RhsFlags = _RhsNested::Flags,
+
+    RowsAtCompileTime    = _LhsNested::RowsAtCompileTime,
+    ColsAtCompileTime    = _RhsNested::ColsAtCompileTime,
+    MaxRowsAtCompileTime = _LhsNested::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = _RhsNested::MaxColsAtCompileTime,
+
+    InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(_LhsNested::ColsAtCompileTime, _RhsNested::RowsAtCompileTime),
+
+    EvalToRowMajor = (RhsFlags & LhsFlags & RowMajorBit),
+
+    RemovedBits = ~(EvalToRowMajor ? 0 : RowMajorBit),
+
+    Flags = (int(LhsFlags | RhsFlags) & HereditaryBits & RemovedBits)
+          | EvalBeforeAssigningBit
+          | EvalBeforeNestingBit,
+
+    CoeffReadCost = Dynamic
+  };
+
+  typedef Sparse StorageKind;
+};
+
+} // end namespace internal
+
+template<typename LhsNested, typename RhsNested>
+class SparseSparseProduct : internal::no_assignment_operator,
+  public SparseMatrixBase<SparseSparseProduct<LhsNested, RhsNested> >
+{
+  public:
+
+    typedef SparseMatrixBase<SparseSparseProduct> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(SparseSparseProduct)
+
+  private:
+
+    typedef typename internal::traits<SparseSparseProduct>::_LhsNested _LhsNested;
+    typedef typename internal::traits<SparseSparseProduct>::_RhsNested _RhsNested;
+
+  public:
+
+    template<typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE SparseSparseProduct(const Lhs& lhs, const Rhs& rhs)
+      : m_lhs(lhs), m_rhs(rhs), m_tolerance(0), m_conservative(true)
+    {
+      init();
+    }
+
+    template<typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE SparseSparseProduct(const Lhs& lhs, const Rhs& rhs, const RealScalar& tolerance)
+      : m_lhs(lhs), m_rhs(rhs), m_tolerance(tolerance), m_conservative(false)
+    {
+      init();
+    }
+
+    SparseSparseProduct pruned(const Scalar& reference = 0, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision()) const
+    {
+      using std::abs;
+      return SparseSparseProduct(m_lhs,m_rhs,abs(reference)*epsilon);
+    }
+
+    template<typename Dest>
+    void evalTo(Dest& result) const
+    {
+      if(m_conservative)
+        internal::conservative_sparse_sparse_product_selector<_LhsNested, _RhsNested, Dest>::run(lhs(),rhs(),result);
+      else
+        internal::sparse_sparse_product_with_pruning_selector<_LhsNested, _RhsNested, Dest>::run(lhs(),rhs(),result,m_tolerance);
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_lhs.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_rhs.cols(); }
+
+    EIGEN_STRONG_INLINE const _LhsNested& lhs() const { return m_lhs; }
+    EIGEN_STRONG_INLINE const _RhsNested& rhs() const { return m_rhs; }
+
+  protected:
+    void init()
+    {
+      eigen_assert(m_lhs.cols() == m_rhs.rows());
+
+      enum {
+        ProductIsValid = _LhsNested::ColsAtCompileTime==Dynamic
+                      || _RhsNested::RowsAtCompileTime==Dynamic
+                      || int(_LhsNested::ColsAtCompileTime)==int(_RhsNested::RowsAtCompileTime),
+        AreVectors = _LhsNested::IsVectorAtCompileTime && _RhsNested::IsVectorAtCompileTime,
+        SameSizes = EIGEN_PREDICATE_SAME_MATRIX_SIZE(_LhsNested,_RhsNested)
+      };
+      // note to the lost user:
+      //    * for a dot product use: v1.dot(v2)
+      //    * for a coeff-wise product use: v1.cwise()*v2
+      EIGEN_STATIC_ASSERT(ProductIsValid || !(AreVectors && SameSizes),
+        INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS)
+      EIGEN_STATIC_ASSERT(ProductIsValid || !(SameSizes && !AreVectors),
+        INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION)
+      EIGEN_STATIC_ASSERT(ProductIsValid || SameSizes, INVALID_MATRIX_PRODUCT)
+    }
+
+    LhsNested m_lhs;
+    RhsNested m_rhs;
+    RealScalar m_tolerance;
+    bool m_conservative;
+};
+
+// sparse = sparse * sparse
+template<typename Derived>
+template<typename Lhs, typename Rhs>
+inline Derived& SparseMatrixBase<Derived>::operator=(const SparseSparseProduct<Lhs,Rhs>& product)
+{
+  product.evalTo(derived());
+  return derived();
+}
+
+/** \returns an expression of the product of two sparse matrices.
+  * By default a conservative product preserving the symbolic non zeros is performed.
+  * The automatic pruning of the small values can be achieved by calling the pruned() function
+  * in which case a totally different product algorithm is employed:
+  * \code
+  * C = (A*B).pruned();             // supress numerical zeros (exact)
+  * C = (A*B).pruned(ref);
+  * C = (A*B).pruned(ref,epsilon);
+  * \endcode
+  * where \c ref is a meaningful non zero reference value.
+  * */
+template<typename Derived>
+template<typename OtherDerived>
+inline const typename SparseSparseProductReturnType<Derived,OtherDerived>::Type
+SparseMatrixBase<Derived>::operator*(const SparseMatrixBase<OtherDerived> &other) const
+{
+  return typename SparseSparseProductReturnType<Derived,OtherDerived>::Type(derived(), other.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEPRODUCT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/TriangularSolver.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/TriangularSolver.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/TriangularSolver.h	(revision 2476)
@@ -0,0 +1,334 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSETRIANGULARSOLVER_H
+#define EIGEN_SPARSETRIANGULARSOLVER_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, int Mode,
+  int UpLo = (Mode & Lower)
+           ? Lower
+           : (Mode & Upper)
+           ? Upper
+           : -1,
+  int StorageOrder = int(traits<Lhs>::Flags) & RowMajorBit>
+struct sparse_solve_triangular_selector;
+
+// forward substitution, row-major
+template<typename Lhs, typename Rhs, int Mode>
+struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Lower,RowMajor>
+{
+  typedef typename Rhs::Scalar Scalar;
+  static void run(const Lhs& lhs, Rhs& other)
+  {
+    for(int col=0 ; col<other.cols() ; ++col)
+    {
+      for(int i=0; i<lhs.rows(); ++i)
+      {
+        Scalar tmp = other.coeff(i,col);
+        Scalar lastVal(0);
+        int lastIndex = 0;
+        for(typename Lhs::InnerIterator it(lhs, i); it; ++it)
+        {
+          lastVal = it.value();
+          lastIndex = it.index();
+          if(lastIndex==i)
+            break;
+          tmp -= lastVal * other.coeff(lastIndex,col);
+        }
+        if (Mode & UnitDiag)
+          other.coeffRef(i,col) = tmp;
+        else
+        {
+          eigen_assert(lastIndex==i);
+          other.coeffRef(i,col) = tmp/lastVal;
+        }
+      }
+    }
+  }
+};
+
+// backward substitution, row-major
+template<typename Lhs, typename Rhs, int Mode>
+struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Upper,RowMajor>
+{
+  typedef typename Rhs::Scalar Scalar;
+  static void run(const Lhs& lhs, Rhs& other)
+  {
+    for(int col=0 ; col<other.cols() ; ++col)
+    {
+      for(int i=lhs.rows()-1 ; i>=0 ; --i)
+      {
+        Scalar tmp = other.coeff(i,col);
+        Scalar l_ii(0);
+        typename Lhs::InnerIterator it(lhs, i);
+        while(it && it.index()<i)
+          ++it;
+        if(!(Mode & UnitDiag))
+        {
+          eigen_assert(it && it.index()==i);
+          l_ii = it.value();
+          ++it;
+        }
+        else if (it && it.index() == i)
+          ++it;
+        for(; it; ++it)
+        {
+          tmp -= it.value() * other.coeff(it.index(),col);
+        }
+
+        if (Mode & UnitDiag)
+          other.coeffRef(i,col) = tmp;
+        else
+          other.coeffRef(i,col) = tmp/l_ii;
+      }
+    }
+  }
+};
+
+// forward substitution, col-major
+template<typename Lhs, typename Rhs, int Mode>
+struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Lower,ColMajor>
+{
+  typedef typename Rhs::Scalar Scalar;
+  static void run(const Lhs& lhs, Rhs& other)
+  {
+    for(int col=0 ; col<other.cols() ; ++col)
+    {
+      for(int i=0; i<lhs.cols(); ++i)
+      {
+        Scalar& tmp = other.coeffRef(i,col);
+        if (tmp!=Scalar(0)) // optimization when other is actually sparse
+        {
+          typename Lhs::InnerIterator it(lhs, i);
+          while(it && it.index()<i)
+            ++it;
+          if(!(Mode & UnitDiag))
+          {
+            eigen_assert(it && it.index()==i);
+            tmp /= it.value();
+          }
+          if (it && it.index()==i)
+            ++it;
+          for(; it; ++it)
+            other.coeffRef(it.index(), col) -= tmp * it.value();
+        }
+      }
+    }
+  }
+};
+
+// backward substitution, col-major
+template<typename Lhs, typename Rhs, int Mode>
+struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Upper,ColMajor>
+{
+  typedef typename Rhs::Scalar Scalar;
+  static void run(const Lhs& lhs, Rhs& other)
+  {
+    for(int col=0 ; col<other.cols() ; ++col)
+    {
+      for(int i=lhs.cols()-1; i>=0; --i)
+      {
+        Scalar& tmp = other.coeffRef(i,col);
+        if (tmp!=Scalar(0)) // optimization when other is actually sparse
+        {
+          if(!(Mode & UnitDiag))
+          {
+            // TODO replace this by a binary search. make sure the binary search is safe for partially sorted elements
+            typename Lhs::ReverseInnerIterator it(lhs, i);
+            while(it && it.index()!=i)
+              --it;
+            eigen_assert(it && it.index()==i);
+            other.coeffRef(i,col) /= it.value();
+          }
+          typename Lhs::InnerIterator it(lhs, i);
+          for(; it && it.index()<i; ++it)
+            other.coeffRef(it.index(), col) -= tmp * it.value();
+        }
+      }
+    }
+  }
+};
+
+} // end namespace internal
+
+template<typename ExpressionType,int Mode>
+template<typename OtherDerived>
+void SparseTriangularView<ExpressionType,Mode>::solveInPlace(MatrixBase<OtherDerived>& other) const
+{
+  eigen_assert(m_matrix.cols() == m_matrix.rows() && m_matrix.cols() == other.rows());
+  eigen_assert((!(Mode & ZeroDiag)) && bool(Mode & (Upper|Lower)));
+
+  enum { copy = internal::traits<OtherDerived>::Flags & RowMajorBit };
+
+  typedef typename internal::conditional<copy,
+    typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&>::type OtherCopy;
+  OtherCopy otherCopy(other.derived());
+
+  internal::sparse_solve_triangular_selector<ExpressionType, typename internal::remove_reference<OtherCopy>::type, Mode>::run(m_matrix, otherCopy);
+
+  if (copy)
+    other = otherCopy;
+}
+
+template<typename ExpressionType,int Mode>
+template<typename OtherDerived>
+typename internal::plain_matrix_type_column_major<OtherDerived>::type
+SparseTriangularView<ExpressionType,Mode>::solve(const MatrixBase<OtherDerived>& other) const
+{
+  typename internal::plain_matrix_type_column_major<OtherDerived>::type res(other);
+  solveInPlace(res);
+  return res;
+}
+
+// pure sparse path
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, int Mode,
+  int UpLo = (Mode & Lower)
+           ? Lower
+           : (Mode & Upper)
+           ? Upper
+           : -1,
+  int StorageOrder = int(Lhs::Flags) & (RowMajorBit)>
+struct sparse_solve_triangular_sparse_selector;
+
+// forward substitution, col-major
+template<typename Lhs, typename Rhs, int Mode, int UpLo>
+struct sparse_solve_triangular_sparse_selector<Lhs,Rhs,Mode,UpLo,ColMajor>
+{
+  typedef typename Rhs::Scalar Scalar;
+  typedef typename promote_index_type<typename traits<Lhs>::Index,
+                                         typename traits<Rhs>::Index>::type Index;
+  static void run(const Lhs& lhs, Rhs& other)
+  {
+    const bool IsLower = (UpLo==Lower);
+    AmbiVector<Scalar,Index> tempVector(other.rows()*2);
+    tempVector.setBounds(0,other.rows());
+
+    Rhs res(other.rows(), other.cols());
+    res.reserve(other.nonZeros());
+
+    for(int col=0 ; col<other.cols() ; ++col)
+    {
+      // FIXME estimate number of non zeros
+      tempVector.init(.99/*float(other.col(col).nonZeros())/float(other.rows())*/);
+      tempVector.setZero();
+      tempVector.restart();
+      for (typename Rhs::InnerIterator rhsIt(other, col); rhsIt; ++rhsIt)
+      {
+        tempVector.coeffRef(rhsIt.index()) = rhsIt.value();
+      }
+
+      for(int i=IsLower?0:lhs.cols()-1;
+          IsLower?i<lhs.cols():i>=0;
+          i+=IsLower?1:-1)
+      {
+        tempVector.restart();
+        Scalar& ci = tempVector.coeffRef(i);
+        if (ci!=Scalar(0))
+        {
+          // find
+          typename Lhs::InnerIterator it(lhs, i);
+          if(!(Mode & UnitDiag))
+          {
+            if (IsLower)
+            {
+              eigen_assert(it.index()==i);
+              ci /= it.value();
+            }
+            else
+              ci /= lhs.coeff(i,i);
+          }
+          tempVector.restart();
+          if (IsLower)
+          {
+            if (it.index()==i)
+              ++it;
+            for(; it; ++it)
+              tempVector.coeffRef(it.index()) -= ci * it.value();
+          }
+          else
+          {
+            for(; it && it.index()<i; ++it)
+              tempVector.coeffRef(it.index()) -= ci * it.value();
+          }
+        }
+      }
+
+
+      int count = 0;
+      // FIXME compute a reference value to filter zeros
+      for (typename AmbiVector<Scalar,Index>::Iterator it(tempVector/*,1e-12*/); it; ++it)
+      {
+        ++ count;
+//         std::cerr << "fill " << it.index() << ", " << col << "\n";
+//         std::cout << it.value() << "  ";
+        // FIXME use insertBack
+        res.insert(it.index(), col) = it.value();
+      }
+//       std::cout << "tempVector.nonZeros() == " << int(count) << " / " << (other.rows()) << "\n";
+    }
+    res.finalize();
+    other = res.markAsRValue();
+  }
+};
+
+} // end namespace internal
+
+template<typename ExpressionType,int Mode>
+template<typename OtherDerived>
+void SparseTriangularView<ExpressionType,Mode>::solveInPlace(SparseMatrixBase<OtherDerived>& other) const
+{
+  eigen_assert(m_matrix.cols() == m_matrix.rows() && m_matrix.cols() == other.rows());
+  eigen_assert( (!(Mode & ZeroDiag)) && bool(Mode & (Upper|Lower)));
+
+//   enum { copy = internal::traits<OtherDerived>::Flags & RowMajorBit };
+
+//   typedef typename internal::conditional<copy,
+//     typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&>::type OtherCopy;
+//   OtherCopy otherCopy(other.derived());
+
+  internal::sparse_solve_triangular_sparse_selector<ExpressionType, OtherDerived, Mode>::run(m_matrix, other.derived());
+
+//   if (copy)
+//     other = otherCopy;
+}
+
+#ifdef EIGEN2_SUPPORT
+
+// deprecated stuff:
+
+/** \deprecated */
+template<typename Derived>
+template<typename OtherDerived>
+void SparseMatrixBase<Derived>::solveTriangularInPlace(MatrixBase<OtherDerived>& other) const
+{
+  this->template triangular<Flags&(Upper|Lower)>().solveInPlace(other);
+}
+
+/** \deprecated */
+template<typename Derived>
+template<typename OtherDerived>
+typename internal::plain_matrix_type_column_major<OtherDerived>::type
+SparseMatrixBase<Derived>::solveTriangular(const MatrixBase<OtherDerived>& other) const
+{
+  typename internal::plain_matrix_type_column_major<OtherDerived>::type res(other);
+  derived().solveTriangularInPlace(res);
+  return res;
+}
+#endif // EIGEN2_SUPPORT
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSETRIANGULARSOLVER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseDot.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseDot.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseDot.h	(revision 2476)
@@ -0,0 +1,101 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_DOT_H
+#define EIGEN_SPARSE_DOT_H
+
+namespace Eigen { 
+
+template<typename Derived>
+template<typename OtherDerived>
+typename internal::traits<Derived>::Scalar
+SparseMatrixBase<Derived>::dot(const MatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+  EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
+  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+  eigen_assert(size() == other.size());
+  eigen_assert(other.size()>0 && "you are using a non initialized vector");
+
+  typename Derived::InnerIterator i(derived(),0);
+  Scalar res(0);
+  while (i)
+  {
+    res += numext::conj(i.value()) * other.coeff(i.index());
+    ++i;
+  }
+  return res;
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+typename internal::traits<Derived>::Scalar
+SparseMatrixBase<Derived>::dot(const SparseMatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+  EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
+  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+  eigen_assert(size() == other.size());
+
+  typedef typename Derived::Nested  Nested;
+  typedef typename OtherDerived::Nested  OtherNested;
+  typedef typename internal::remove_all<Nested>::type  NestedCleaned;
+  typedef typename internal::remove_all<OtherNested>::type  OtherNestedCleaned;
+
+  Nested nthis(derived());
+  OtherNested nother(other.derived());
+
+  typename NestedCleaned::InnerIterator i(nthis,0);
+  typename OtherNestedCleaned::InnerIterator j(nother,0);
+  Scalar res(0);
+  while (i && j)
+  {
+    if (i.index()==j.index())
+    {
+      res += numext::conj(i.value()) * j.value();
+      ++i; ++j;
+    }
+    else if (i.index()<j.index())
+      ++i;
+    else
+      ++j;
+  }
+  return res;
+}
+
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+SparseMatrixBase<Derived>::squaredNorm() const
+{
+  return numext::real((*this).cwiseAbs2().sum());
+}
+
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+SparseMatrixBase<Derived>::norm() const
+{
+  using std::sqrt;
+  return sqrt(squaredNorm());
+}
+
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+SparseMatrixBase<Derived>::blueNorm() const
+{
+  return internal::blueNorm_impl(*this);
+}
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_DOT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseFuzzy.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseFuzzy.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseFuzzy.h	(revision 2476)
@@ -0,0 +1,26 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_FUZZY_H
+#define EIGEN_SPARSE_FUZZY_H
+
+// template<typename Derived>
+// template<typename OtherDerived>
+// bool SparseMatrixBase<Derived>::isApprox(
+//   const OtherDerived& other,
+//   typename NumTraits<Scalar>::Real prec
+// ) const
+// {
+//   const typename internal::nested<Derived,2>::type nested(derived());
+//   const typename internal::nested<OtherDerived,2>::type otherNested(other.derived());
+//   return    (nested - otherNested).cwise().abs2().sum()
+//          <= prec * prec * (std::min)(nested.cwise().abs2().sum(), otherNested.cwise().abs2().sum());
+// }
+
+#endif // EIGEN_SPARSE_FUZZY_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h	(revision 2476)
@@ -0,0 +1,245 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CONSERVATIVESPARSESPARSEPRODUCT_H
+#define EIGEN_CONSERVATIVESPARSESPARSEPRODUCT_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, typename ResultType>
+static void conservative_sparse_sparse_product_impl(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+{
+  typedef typename remove_all<Lhs>::type::Scalar Scalar;
+  typedef typename remove_all<Lhs>::type::Index Index;
+
+  // make sure to call innerSize/outerSize since we fake the storage order.
+  Index rows = lhs.innerSize();
+  Index cols = rhs.outerSize();
+  eigen_assert(lhs.outerSize() == rhs.innerSize());
+
+  std::vector<bool> mask(rows,false);
+  Matrix<Scalar,Dynamic,1> values(rows);
+  Matrix<Index,Dynamic,1>  indices(rows);
+
+  // estimate the number of non zero entries
+  // given a rhs column containing Y non zeros, we assume that the respective Y columns
+  // of the lhs differs in average of one non zeros, thus the number of non zeros for
+  // the product of a rhs column with the lhs is X+Y where X is the average number of non zero
+  // per column of the lhs.
+  // Therefore, we have nnz(lhs*rhs) = nnz(lhs) + nnz(rhs)
+  Index estimated_nnz_prod = lhs.nonZeros() + rhs.nonZeros();
+
+  res.setZero();
+  res.reserve(Index(estimated_nnz_prod));
+  // we compute each column of the result, one after the other
+  for (Index j=0; j<cols; ++j)
+  {
+
+    res.startVec(j);
+    Index nnz = 0;
+    for (typename Rhs::InnerIterator rhsIt(rhs, j); rhsIt; ++rhsIt)
+    {
+      Scalar y = rhsIt.value();
+      Index k = rhsIt.index();
+      for (typename Lhs::InnerIterator lhsIt(lhs, k); lhsIt; ++lhsIt)
+      {
+        Index i = lhsIt.index();
+        Scalar x = lhsIt.value();
+        if(!mask[i])
+        {
+          mask[i] = true;
+          values[i] = x * y;
+          indices[nnz] = i;
+          ++nnz;
+        }
+        else
+          values[i] += x * y;
+      }
+    }
+
+    // unordered insertion
+    for(Index k=0; k<nnz; ++k)
+    {
+      Index i = indices[k];
+      res.insertBackByOuterInnerUnordered(j,i) = values[i];
+      mask[i] = false;
+    }
+
+#if 0
+    // alternative ordered insertion code:
+
+    Index t200 = rows/(log2(200)*1.39);
+    Index t = (rows*100)/139;
+
+    // FIXME reserve nnz non zeros
+    // FIXME implement fast sort algorithms for very small nnz
+    // if the result is sparse enough => use a quick sort
+    // otherwise => loop through the entire vector
+    // In order to avoid to perform an expensive log2 when the
+    // result is clearly very sparse we use a linear bound up to 200.
+    //if((nnz<200 && nnz<t200) || nnz * log2(nnz) < t)
+    //res.startVec(j);
+    if(true)
+    {
+      if(nnz>1) std::sort(indices.data(),indices.data()+nnz);
+      for(Index k=0; k<nnz; ++k)
+      {
+        Index i = indices[k];
+        res.insertBackByOuterInner(j,i) = values[i];
+        mask[i] = false;
+      }
+    }
+    else
+    {
+      // dense path
+      for(Index i=0; i<rows; ++i)
+      {
+        if(mask[i])
+        {
+          mask[i] = false;
+          res.insertBackByOuterInner(j,i) = values[i];
+        }
+      }
+    }
+#endif
+
+  }
+  res.finalize();
+}
+
+
+} // end namespace internal
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, typename ResultType,
+  int LhsStorageOrder = (traits<Lhs>::Flags&RowMajorBit) ? RowMajor : ColMajor,
+  int RhsStorageOrder = (traits<Rhs>::Flags&RowMajorBit) ? RowMajor : ColMajor,
+  int ResStorageOrder = (traits<ResultType>::Flags&RowMajorBit) ? RowMajor : ColMajor>
+struct conservative_sparse_sparse_product_selector;
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,ColMajor>
+{
+  typedef typename remove_all<Lhs>::type LhsCleaned;
+  typedef typename LhsCleaned::Scalar Scalar;
+
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::Index> RowMajorMatrix;
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::Index> ColMajorMatrix;
+    ColMajorMatrix resCol(lhs.rows(),rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<Lhs,Rhs,ColMajorMatrix>(lhs, rhs, resCol);
+    // sort the non zeros:
+    RowMajorMatrix resRow(resCol);
+    res = resRow;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,ColMajor,ColMajor>
+{
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+     typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::Index> RowMajorMatrix;
+     RowMajorMatrix rhsRow = rhs;
+     RowMajorMatrix resRow(lhs.rows(), rhs.cols());
+     internal::conservative_sparse_sparse_product_impl<RowMajorMatrix,Lhs,RowMajorMatrix>(rhsRow, lhs, resRow);
+     res = resRow;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,RowMajor,ColMajor>
+{
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::Index> RowMajorMatrix;
+    RowMajorMatrix lhsRow = lhs;
+    RowMajorMatrix resRow(lhs.rows(), rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<Rhs,RowMajorMatrix,RowMajorMatrix>(rhs, lhsRow, resRow);
+    res = resRow;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,ColMajor>
+{
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::Index> RowMajorMatrix;
+    RowMajorMatrix resRow(lhs.rows(), rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<Rhs,Lhs,RowMajorMatrix>(rhs, lhs, resRow);
+    res = resRow;
+  }
+};
+
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,RowMajor>
+{
+  typedef typename traits<typename remove_all<Lhs>::type>::Scalar Scalar;
+
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::Index> ColMajorMatrix;
+    ColMajorMatrix resCol(lhs.rows(), rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<Lhs,Rhs,ColMajorMatrix>(lhs, rhs, resCol);
+    res = resCol;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,ColMajor,RowMajor>
+{
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::Index> ColMajorMatrix;
+    ColMajorMatrix lhsCol = lhs;
+    ColMajorMatrix resCol(lhs.rows(), rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<ColMajorMatrix,Rhs,ColMajorMatrix>(lhsCol, rhs, resCol);
+    res = resCol;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,ColMajor,RowMajor,RowMajor>
+{
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::Index> ColMajorMatrix;
+    ColMajorMatrix rhsCol = rhs;
+    ColMajorMatrix resCol(lhs.rows(), rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<Lhs,ColMajorMatrix,ColMajorMatrix>(lhs, rhsCol, resCol);
+    res = resCol;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct conservative_sparse_sparse_product_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,RowMajor>
+{
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,RowMajor,typename ResultType::Index> RowMajorMatrix;
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::Index> ColMajorMatrix;
+    RowMajorMatrix resRow(lhs.rows(),rhs.cols());
+    internal::conservative_sparse_sparse_product_impl<Rhs,Lhs,RowMajorMatrix>(rhs, lhs, resRow);
+    // sort the non zeros:
+    ColMajorMatrix resCol(resRow);
+    res = resCol;
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_CONSERVATIVESPARSESPARSEPRODUCT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseRedux.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseRedux.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseRedux.h	(revision 2476)
@@ -0,0 +1,48 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEREDUX_H
+#define EIGEN_SPARSEREDUX_H
+
+namespace Eigen { 
+
+template<typename Derived>
+typename internal::traits<Derived>::Scalar
+SparseMatrixBase<Derived>::sum() const
+{
+  eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix");
+  Scalar res(0);
+  for (Index j=0; j<outerSize(); ++j)
+    for (typename Derived::InnerIterator iter(derived(),j); iter; ++iter)
+      res += iter.value();
+  return res;
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+typename internal::traits<SparseMatrix<_Scalar,_Options,_Index> >::Scalar
+SparseMatrix<_Scalar,_Options,_Index>::sum() const
+{
+  eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix");
+  if(this->isCompressed())
+    return Matrix<Scalar,1,Dynamic>::Map(m_data.valuePtr(), m_data.size()).sum();
+  else
+    return Base::sum();
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+typename internal::traits<SparseVector<_Scalar,_Options, _Index> >::Scalar
+SparseVector<_Scalar,_Options,_Index>::sum() const
+{
+  eigen_assert(rows()>0 && cols()>0 && "you are using a non initialized matrix");
+  return Matrix<Scalar,1,Dynamic>::Map(m_data.valuePtr(), m_data.size()).sum();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEREDUX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseCwiseUnaryOp.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseCwiseUnaryOp.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseCwiseUnaryOp.h	(revision 2476)
@@ -0,0 +1,163 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_CWISE_UNARY_OP_H
+#define EIGEN_SPARSE_CWISE_UNARY_OP_H
+
+namespace Eigen { 
+
+template<typename UnaryOp, typename MatrixType>
+class CwiseUnaryOpImpl<UnaryOp,MatrixType,Sparse>
+  : public SparseMatrixBase<CwiseUnaryOp<UnaryOp, MatrixType> >
+{
+  public:
+
+    class InnerIterator;
+    class ReverseInnerIterator;
+
+    typedef CwiseUnaryOp<UnaryOp, MatrixType> Derived;
+    EIGEN_SPARSE_PUBLIC_INTERFACE(Derived)
+
+  protected:
+    typedef typename internal::traits<Derived>::_XprTypeNested _MatrixTypeNested;
+    typedef typename _MatrixTypeNested::InnerIterator MatrixTypeIterator;
+    typedef typename _MatrixTypeNested::ReverseInnerIterator MatrixTypeReverseIterator;
+};
+
+template<typename UnaryOp, typename MatrixType>
+class CwiseUnaryOpImpl<UnaryOp,MatrixType,Sparse>::InnerIterator
+    : public CwiseUnaryOpImpl<UnaryOp,MatrixType,Sparse>::MatrixTypeIterator
+{
+    typedef typename CwiseUnaryOpImpl::Scalar Scalar;
+    typedef typename CwiseUnaryOpImpl<UnaryOp,MatrixType,Sparse>::MatrixTypeIterator Base;
+  public:
+
+    EIGEN_STRONG_INLINE InnerIterator(const CwiseUnaryOpImpl& unaryOp, typename CwiseUnaryOpImpl::Index outer)
+      : Base(unaryOp.derived().nestedExpression(),outer), m_functor(unaryOp.derived().functor())
+    {}
+
+    EIGEN_STRONG_INLINE InnerIterator& operator++()
+    { Base::operator++(); return *this; }
+
+    EIGEN_STRONG_INLINE typename CwiseUnaryOpImpl::Scalar value() const { return m_functor(Base::value()); }
+
+  protected:
+    const UnaryOp m_functor;
+  private:
+    typename CwiseUnaryOpImpl::Scalar& valueRef();
+};
+
+template<typename UnaryOp, typename MatrixType>
+class CwiseUnaryOpImpl<UnaryOp,MatrixType,Sparse>::ReverseInnerIterator
+    : public CwiseUnaryOpImpl<UnaryOp,MatrixType,Sparse>::MatrixTypeReverseIterator
+{
+    typedef typename CwiseUnaryOpImpl::Scalar Scalar;
+    typedef typename CwiseUnaryOpImpl<UnaryOp,MatrixType,Sparse>::MatrixTypeReverseIterator Base;
+  public:
+
+    EIGEN_STRONG_INLINE ReverseInnerIterator(const CwiseUnaryOpImpl& unaryOp, typename CwiseUnaryOpImpl::Index outer)
+      : Base(unaryOp.derived().nestedExpression(),outer), m_functor(unaryOp.derived().functor())
+    {}
+
+    EIGEN_STRONG_INLINE ReverseInnerIterator& operator--()
+    { Base::operator--(); return *this; }
+
+    EIGEN_STRONG_INLINE typename CwiseUnaryOpImpl::Scalar value() const { return m_functor(Base::value()); }
+
+  protected:
+    const UnaryOp m_functor;
+  private:
+    typename CwiseUnaryOpImpl::Scalar& valueRef();
+};
+
+template<typename ViewOp, typename MatrixType>
+class CwiseUnaryViewImpl<ViewOp,MatrixType,Sparse>
+  : public SparseMatrixBase<CwiseUnaryView<ViewOp, MatrixType> >
+{
+  public:
+
+    class InnerIterator;
+    class ReverseInnerIterator;
+
+    typedef CwiseUnaryView<ViewOp, MatrixType> Derived;
+    EIGEN_SPARSE_PUBLIC_INTERFACE(Derived)
+
+  protected:
+    typedef typename internal::traits<Derived>::_MatrixTypeNested _MatrixTypeNested;
+    typedef typename _MatrixTypeNested::InnerIterator MatrixTypeIterator;
+    typedef typename _MatrixTypeNested::ReverseInnerIterator MatrixTypeReverseIterator;
+};
+
+template<typename ViewOp, typename MatrixType>
+class CwiseUnaryViewImpl<ViewOp,MatrixType,Sparse>::InnerIterator
+    : public CwiseUnaryViewImpl<ViewOp,MatrixType,Sparse>::MatrixTypeIterator
+{
+    typedef typename CwiseUnaryViewImpl::Scalar Scalar;
+    typedef typename CwiseUnaryViewImpl<ViewOp,MatrixType,Sparse>::MatrixTypeIterator Base;
+  public:
+
+    EIGEN_STRONG_INLINE InnerIterator(const CwiseUnaryViewImpl& unaryOp, typename CwiseUnaryViewImpl::Index outer)
+      : Base(unaryOp.derived().nestedExpression(),outer), m_functor(unaryOp.derived().functor())
+    {}
+
+    EIGEN_STRONG_INLINE InnerIterator& operator++()
+    { Base::operator++(); return *this; }
+
+    EIGEN_STRONG_INLINE typename CwiseUnaryViewImpl::Scalar value() const { return m_functor(Base::value()); }
+    EIGEN_STRONG_INLINE typename CwiseUnaryViewImpl::Scalar& valueRef() { return m_functor(Base::valueRef()); }
+
+  protected:
+    const ViewOp m_functor;
+};
+
+template<typename ViewOp, typename MatrixType>
+class CwiseUnaryViewImpl<ViewOp,MatrixType,Sparse>::ReverseInnerIterator
+    : public CwiseUnaryViewImpl<ViewOp,MatrixType,Sparse>::MatrixTypeReverseIterator
+{
+    typedef typename CwiseUnaryViewImpl::Scalar Scalar;
+    typedef typename CwiseUnaryViewImpl<ViewOp,MatrixType,Sparse>::MatrixTypeReverseIterator Base;
+  public:
+
+    EIGEN_STRONG_INLINE ReverseInnerIterator(const CwiseUnaryViewImpl& unaryOp, typename CwiseUnaryViewImpl::Index outer)
+      : Base(unaryOp.derived().nestedExpression(),outer), m_functor(unaryOp.derived().functor())
+    {}
+
+    EIGEN_STRONG_INLINE ReverseInnerIterator& operator--()
+    { Base::operator--(); return *this; }
+
+    EIGEN_STRONG_INLINE typename CwiseUnaryViewImpl::Scalar value() const { return m_functor(Base::value()); }
+    EIGEN_STRONG_INLINE typename CwiseUnaryViewImpl::Scalar& valueRef() { return m_functor(Base::valueRef()); }
+
+  protected:
+    const ViewOp m_functor;
+};
+
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+SparseMatrixBase<Derived>::operator*=(const Scalar& other)
+{
+  for (Index j=0; j<outerSize(); ++j)
+    for (typename Derived::InnerIterator i(derived(),j); i; ++i)
+      i.valueRef() *= other;
+  return derived();
+}
+
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+SparseMatrixBase<Derived>::operator/=(const Scalar& other)
+{
+  for (Index j=0; j<outerSize(); ++j)
+    for (typename Derived::InnerIterator i(derived(),j); i; ++i)
+      i.valueRef() /= other;
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_CWISE_UNARY_OP_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseBlock.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseBlock.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseBlock.h	(revision 2476)
@@ -0,0 +1,538 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_BLOCK_H
+#define EIGEN_SPARSE_BLOCK_H
+
+namespace Eigen { 
+
+template<typename XprType, int BlockRows, int BlockCols>
+class BlockImpl<XprType,BlockRows,BlockCols,true,Sparse>
+  : public SparseMatrixBase<Block<XprType,BlockRows,BlockCols,true> >
+{
+    typedef typename internal::remove_all<typename XprType::Nested>::type _MatrixTypeNested;
+    typedef Block<XprType, BlockRows, BlockCols, true> BlockType;
+public:
+    enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
+protected:
+    enum { OuterSize = IsRowMajor ? BlockRows : BlockCols };
+public:
+    EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
+    
+    class InnerIterator: public XprType::InnerIterator
+    {
+        typedef typename BlockImpl::Index Index;
+      public:
+        inline InnerIterator(const BlockType& xpr, Index outer)
+          : XprType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
+        {}
+        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
+        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
+      protected:
+        Index m_outer;
+    };
+    class ReverseInnerIterator: public XprType::ReverseInnerIterator
+    {
+        typedef typename BlockImpl::Index Index;
+      public:
+        inline ReverseInnerIterator(const BlockType& xpr, Index outer)
+          : XprType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
+        {}
+        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
+        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
+      protected:
+        Index m_outer;
+    };
+
+    inline BlockImpl(const XprType& xpr, int i)
+      : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize)
+    {}
+
+    inline BlockImpl(const XprType& xpr, int startRow, int startCol, int blockRows, int blockCols)
+      : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols)
+    {}
+    
+    inline const Scalar coeff(int row, int col) const
+    {
+      return m_matrix.coeff(row + IsRowMajor ? m_outerStart : 0, col +IsRowMajor ? 0 :  m_outerStart);
+    }
+    
+    inline const Scalar coeff(int index) const
+    {
+      return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index :  m_outerStart);
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); }
+
+  protected:
+
+    typename XprType::Nested m_matrix;
+    Index m_outerStart;
+    const internal::variable_if_dynamic<Index, OuterSize> m_outerSize;
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl)
+  private:
+    Index nonZeros() const;
+};
+
+
+/***************************************************************************
+* specialisation for SparseMatrix
+***************************************************************************/
+
+template<typename _Scalar, int _Options, typename _Index, int BlockRows, int BlockCols>
+class BlockImpl<SparseMatrix<_Scalar, _Options, _Index>,BlockRows,BlockCols,true,Sparse>
+  : public SparseMatrixBase<Block<SparseMatrix<_Scalar, _Options, _Index>,BlockRows,BlockCols,true> >
+{
+    typedef SparseMatrix<_Scalar, _Options, _Index> SparseMatrixType;
+    typedef typename internal::remove_all<typename SparseMatrixType::Nested>::type _MatrixTypeNested;
+    typedef Block<SparseMatrixType, BlockRows, BlockCols, true> BlockType;
+    typedef Block<const SparseMatrixType, BlockRows, BlockCols, true> ConstBlockType;
+public:
+    enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
+    EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
+protected:
+    enum { OuterSize = IsRowMajor ? BlockRows : BlockCols };
+public:
+    
+    class InnerIterator: public SparseMatrixType::InnerIterator
+    {
+      public:
+        inline InnerIterator(const BlockType& xpr, Index outer)
+          : SparseMatrixType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
+        {}
+        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
+        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
+      protected:
+        Index m_outer;
+    };
+    class ReverseInnerIterator: public SparseMatrixType::ReverseInnerIterator
+    {
+      public:
+        inline ReverseInnerIterator(const BlockType& xpr, Index outer)
+          : SparseMatrixType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
+        {}
+        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
+        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
+      protected:
+        Index m_outer;
+    };
+
+    inline BlockImpl(const SparseMatrixType& xpr, int i)
+      : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize)
+    {}
+
+    inline BlockImpl(const SparseMatrixType& xpr, int startRow, int startCol, int blockRows, int blockCols)
+      : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols)
+    {}
+
+    template<typename OtherDerived>
+    inline BlockType& operator=(const SparseMatrixBase<OtherDerived>& other)
+    {
+      typedef typename internal::remove_all<typename SparseMatrixType::Nested>::type _NestedMatrixType;
+      _NestedMatrixType& matrix = const_cast<_NestedMatrixType&>(m_matrix);;
+      // This assignement is slow if this vector set is not empty
+      // and/or it is not at the end of the nonzeros of the underlying matrix.
+
+      // 1 - eval to a temporary to avoid transposition and/or aliasing issues
+      SparseMatrix<Scalar, IsRowMajor ? RowMajor : ColMajor, Index> tmp(other);
+
+      // 2 - let's check whether there is enough allocated memory
+      Index nnz           = tmp.nonZeros();
+      Index start         = m_outerStart==0 ? 0 : matrix.outerIndexPtr()[m_outerStart]; // starting position of the current block
+      Index end           = m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()]; // ending posiiton of the current block
+      Index block_size    = end - start;                                                // available room in the current block
+      Index tail_size     = m_matrix.outerIndexPtr()[m_matrix.outerSize()] - end;
+      
+      Index free_size     = m_matrix.isCompressed()
+                          ? Index(matrix.data().allocatedSize()) + block_size
+                          : block_size;
+
+      if(nnz>free_size) 
+      {
+        // realloc manually to reduce copies
+        typename SparseMatrixType::Storage newdata(m_matrix.data().allocatedSize() - block_size + nnz);
+
+        std::memcpy(newdata.valuePtr(), m_matrix.data().valuePtr(), start*sizeof(Scalar));
+        std::memcpy(newdata.indexPtr(), m_matrix.data().indexPtr(), start*sizeof(Index));
+
+        std::memcpy(newdata.valuePtr() + start, tmp.data().valuePtr(), nnz*sizeof(Scalar));
+        std::memcpy(newdata.indexPtr() + start, tmp.data().indexPtr(), nnz*sizeof(Index));
+
+        std::memcpy(newdata.valuePtr()+start+nnz, matrix.data().valuePtr()+end, tail_size*sizeof(Scalar));
+        std::memcpy(newdata.indexPtr()+start+nnz, matrix.data().indexPtr()+end, tail_size*sizeof(Index));
+        
+        newdata.resize(m_matrix.outerIndexPtr()[m_matrix.outerSize()] - block_size + nnz);
+
+        matrix.data().swap(newdata);
+      }
+      else
+      {
+        // no need to realloc, simply copy the tail at its respective position and insert tmp
+        matrix.data().resize(start + nnz + tail_size);
+
+        std::memmove(matrix.data().valuePtr()+start+nnz, matrix.data().valuePtr()+end, tail_size*sizeof(Scalar));
+        std::memmove(matrix.data().indexPtr()+start+nnz, matrix.data().indexPtr()+end, tail_size*sizeof(Index));
+
+        std::memcpy(matrix.data().valuePtr()+start, tmp.data().valuePtr(), nnz*sizeof(Scalar));
+        std::memcpy(matrix.data().indexPtr()+start, tmp.data().indexPtr(), nnz*sizeof(Index));
+      }
+      
+      // update innerNonZeros
+      if(!m_matrix.isCompressed())
+        for(Index j=0; j<m_outerSize.value(); ++j)
+          matrix.innerNonZeroPtr()[m_outerStart+j] = tmp.innerVector(j).nonZeros();
+
+      // update outer index pointers
+      Index p = start;
+      for(Index k=0; k<m_outerSize.value(); ++k)
+      {
+        matrix.outerIndexPtr()[m_outerStart+k] = p;
+        p += tmp.innerVector(k).nonZeros();
+      }
+      std::ptrdiff_t offset = nnz - block_size;
+      for(Index k = m_outerStart + m_outerSize.value(); k<=matrix.outerSize(); ++k)
+      {
+        matrix.outerIndexPtr()[k] += offset;
+      }
+
+      return derived();
+    }
+
+    inline BlockType& operator=(const BlockType& other)
+    {
+      return operator=<BlockType>(other);
+    }
+
+    inline const Scalar* valuePtr() const
+    { return m_matrix.valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
+    inline Scalar* valuePtr()
+    { return m_matrix.const_cast_derived().valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
+
+    inline const Index* innerIndexPtr() const
+    { return m_matrix.innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
+    inline Index* innerIndexPtr()
+    { return m_matrix.const_cast_derived().innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
+
+    inline const Index* outerIndexPtr() const
+    { return m_matrix.outerIndexPtr() + m_outerStart; }
+    inline Index* outerIndexPtr()
+    { return m_matrix.const_cast_derived().outerIndexPtr() + m_outerStart; }
+
+    Index nonZeros() const
+    {
+      if(m_matrix.isCompressed())
+        return  std::size_t(m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()])
+              - std::size_t(m_matrix.outerIndexPtr()[m_outerStart]);
+      else if(m_outerSize.value()==0)
+        return 0;
+      else
+        return Map<const Matrix<Index,OuterSize,1> >(m_matrix.innerNonZeroPtr()+m_outerStart, m_outerSize.value()).sum();
+    }
+    
+    inline Scalar& coeffRef(int row, int col)
+    {
+      return m_matrix.const_cast_derived().coeffRef(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 :  m_outerStart));
+    }
+    
+    inline const Scalar coeff(int row, int col) const
+    {
+      return m_matrix.coeff(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 :  m_outerStart));
+    }
+    
+    inline const Scalar coeff(int index) const
+    {
+      return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index :  m_outerStart);
+    }
+
+    const Scalar& lastCoeff() const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(BlockImpl);
+      eigen_assert(nonZeros()>0);
+      if(m_matrix.isCompressed())
+        return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart+1]-1];
+      else
+        return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart]+m_matrix.innerNonZeroPtr()[m_outerStart]-1];
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); }
+
+  protected:
+
+    typename SparseMatrixType::Nested m_matrix;
+    Index m_outerStart;
+    const internal::variable_if_dynamic<Index, OuterSize> m_outerSize;
+
+};
+
+
+template<typename _Scalar, int _Options, typename _Index, int BlockRows, int BlockCols>
+class BlockImpl<const SparseMatrix<_Scalar, _Options, _Index>,BlockRows,BlockCols,true,Sparse>
+  : public SparseMatrixBase<Block<const SparseMatrix<_Scalar, _Options, _Index>,BlockRows,BlockCols,true> >
+{
+    typedef SparseMatrix<_Scalar, _Options, _Index> SparseMatrixType;
+    typedef typename internal::remove_all<typename SparseMatrixType::Nested>::type _MatrixTypeNested;
+    typedef Block<const SparseMatrixType, BlockRows, BlockCols, true> BlockType;
+public:
+    enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
+    EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
+protected:
+    enum { OuterSize = IsRowMajor ? BlockRows : BlockCols };
+public:
+    
+    class InnerIterator: public SparseMatrixType::InnerIterator
+    {
+      public:
+        inline InnerIterator(const BlockType& xpr, Index outer)
+          : SparseMatrixType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
+        {}
+        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
+        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
+      protected:
+        Index m_outer;
+    };
+    class ReverseInnerIterator: public SparseMatrixType::ReverseInnerIterator
+    {
+      public:
+        inline ReverseInnerIterator(const BlockType& xpr, Index outer)
+          : SparseMatrixType::ReverseInnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
+        {}
+        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
+        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
+      protected:
+        Index m_outer;
+    };
+
+    inline BlockImpl(const SparseMatrixType& xpr, int i)
+      : m_matrix(xpr), m_outerStart(i), m_outerSize(OuterSize)
+    {}
+
+    inline BlockImpl(const SparseMatrixType& xpr, int startRow, int startCol, int blockRows, int blockCols)
+      : m_matrix(xpr), m_outerStart(IsRowMajor ? startRow : startCol), m_outerSize(IsRowMajor ? blockRows : blockCols)
+    {}
+
+    inline const Scalar* valuePtr() const
+    { return m_matrix.valuePtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
+
+    inline const Index* innerIndexPtr() const
+    { return m_matrix.innerIndexPtr() + m_matrix.outerIndexPtr()[m_outerStart]; }
+
+    inline const Index* outerIndexPtr() const
+    { return m_matrix.outerIndexPtr() + m_outerStart; }
+
+    Index nonZeros() const
+    {
+      if(m_matrix.isCompressed())
+        return  std::size_t(m_matrix.outerIndexPtr()[m_outerStart+m_outerSize.value()])
+              - std::size_t(m_matrix.outerIndexPtr()[m_outerStart]);
+      else if(m_outerSize.value()==0)
+        return 0;
+      else
+        return Map<const Matrix<Index,OuterSize,1> >(m_matrix.innerNonZeroPtr()+m_outerStart, m_outerSize.value()).sum();
+    }
+    
+    inline const Scalar coeff(int row, int col) const
+    {
+      return m_matrix.coeff(row + (IsRowMajor ? m_outerStart : 0), col + (IsRowMajor ? 0 :  m_outerStart));
+    }
+    
+    inline const Scalar coeff(int index) const
+    {
+      return m_matrix.coeff(IsRowMajor ? m_outerStart : index, IsRowMajor ? index :  m_outerStart);
+    }
+
+    const Scalar& lastCoeff() const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(BlockImpl);
+      eigen_assert(nonZeros()>0);
+      if(m_matrix.isCompressed())
+        return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart+1]-1];
+      else
+        return m_matrix.valuePtr()[m_matrix.outerIndexPtr()[m_outerStart]+m_matrix.innerNonZeroPtr()[m_outerStart]-1];
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); }
+
+  protected:
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl)
+
+    typename SparseMatrixType::Nested m_matrix;
+    Index m_outerStart;
+    const internal::variable_if_dynamic<Index, OuterSize> m_outerSize;
+};
+
+//----------
+
+/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
+  * is col-major (resp. row-major).
+  */
+template<typename Derived>
+typename SparseMatrixBase<Derived>::InnerVectorReturnType SparseMatrixBase<Derived>::innerVector(Index outer)
+{ return InnerVectorReturnType(derived(), outer); }
+
+/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
+  * is col-major (resp. row-major). Read-only.
+  */
+template<typename Derived>
+const typename SparseMatrixBase<Derived>::ConstInnerVectorReturnType SparseMatrixBase<Derived>::innerVector(Index outer) const
+{ return ConstInnerVectorReturnType(derived(), outer); }
+
+/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
+  * is col-major (resp. row-major).
+  */
+template<typename Derived>
+typename SparseMatrixBase<Derived>::InnerVectorsReturnType
+SparseMatrixBase<Derived>::innerVectors(Index outerStart, Index outerSize)
+{
+  return Block<Derived,Dynamic,Dynamic,true>(derived(),
+                                             IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
+                                             IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
+  
+}
+
+/** \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
+  * is col-major (resp. row-major). Read-only.
+  */
+template<typename Derived>
+const typename SparseMatrixBase<Derived>::ConstInnerVectorsReturnType
+SparseMatrixBase<Derived>::innerVectors(Index outerStart, Index outerSize) const
+{
+  return Block<const Derived,Dynamic,Dynamic,true>(derived(),
+                                                  IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
+                                                  IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
+  
+}
+
+/** Generic implementation of sparse Block expression.
+  * Real-only. 
+  */
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
+class BlockImpl<XprType,BlockRows,BlockCols,InnerPanel,Sparse>
+  : public SparseMatrixBase<Block<XprType,BlockRows,BlockCols,InnerPanel> >, internal::no_assignment_operator
+{
+  typedef typename internal::remove_all<typename XprType::Nested>::type _MatrixTypeNested;
+  typedef Block<XprType, BlockRows, BlockCols, InnerPanel> BlockType;
+public:
+    enum { IsRowMajor = internal::traits<BlockType>::IsRowMajor };
+    EIGEN_SPARSE_PUBLIC_INTERFACE(BlockType)
+
+    /** Column or Row constructor
+      */
+    inline BlockImpl(const XprType& xpr, int i)
+      : m_matrix(xpr),
+        m_startRow( (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0),
+        m_startCol( (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0),
+        m_blockRows(BlockRows==1 ? 1 : xpr.rows()),
+        m_blockCols(BlockCols==1 ? 1 : xpr.cols())
+    {}
+
+    /** Dynamic-size constructor
+      */
+    inline BlockImpl(const XprType& xpr, int startRow, int startCol, int blockRows, int blockCols)
+      : m_matrix(xpr), m_startRow(startRow), m_startCol(startCol), m_blockRows(blockRows), m_blockCols(blockCols)
+    {}
+
+    inline int rows() const { return m_blockRows.value(); }
+    inline int cols() const { return m_blockCols.value(); }
+
+    inline Scalar& coeffRef(int row, int col)
+    {
+      return m_matrix.const_cast_derived()
+               .coeffRef(row + m_startRow.value(), col + m_startCol.value());
+    }
+
+    inline const Scalar coeff(int row, int col) const
+    {
+      return m_matrix.coeff(row + m_startRow.value(), col + m_startCol.value());
+    }
+
+    inline Scalar& coeffRef(int index)
+    {
+      return m_matrix.const_cast_derived()
+             .coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+                       m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+    }
+
+    inline const Scalar coeff(int index) const
+    {
+      return m_matrix
+             .coeff(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+                    m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+    }
+    
+    inline const _MatrixTypeNested& nestedExpression() const { return m_matrix; }
+    
+    class InnerIterator : public _MatrixTypeNested::InnerIterator
+    {
+      typedef typename _MatrixTypeNested::InnerIterator Base;
+      const BlockType& m_block;
+      Index m_end;
+    public:
+
+      EIGEN_STRONG_INLINE InnerIterator(const BlockType& block, Index outer)
+        : Base(block.derived().nestedExpression(), outer + (IsRowMajor ? block.m_startRow.value() : block.m_startCol.value())),
+          m_block(block),
+          m_end(IsRowMajor ? block.m_startCol.value()+block.m_blockCols.value() : block.m_startRow.value()+block.m_blockRows.value())
+      {
+        while( (Base::operator bool()) && (Base::index() < (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value())) )
+          Base::operator++();
+      }
+
+      inline Index index()  const { return Base::index() - (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value()); }
+      inline Index outer()  const { return Base::outer() - (IsRowMajor ? m_block.m_startRow.value() : m_block.m_startCol.value()); }
+      inline Index row()    const { return Base::row()   - m_block.m_startRow.value(); }
+      inline Index col()    const { return Base::col()   - m_block.m_startCol.value(); }
+      
+      inline operator bool() const { return Base::operator bool() && Base::index() < m_end; }
+    };
+    class ReverseInnerIterator : public _MatrixTypeNested::ReverseInnerIterator
+    {
+      typedef typename _MatrixTypeNested::ReverseInnerIterator Base;
+      const BlockType& m_block;
+      Index m_begin;
+    public:
+
+      EIGEN_STRONG_INLINE ReverseInnerIterator(const BlockType& block, Index outer)
+        : Base(block.derived().nestedExpression(), outer + (IsRowMajor ? block.m_startRow.value() : block.m_startCol.value())),
+          m_block(block),
+          m_begin(IsRowMajor ? block.m_startCol.value() : block.m_startRow.value())
+      {
+        while( (Base::operator bool()) && (Base::index() >= (IsRowMajor ? m_block.m_startCol.value()+block.m_blockCols.value() : m_block.m_startRow.value()+block.m_blockRows.value())) )
+          Base::operator--();
+      }
+
+      inline Index index()  const { return Base::index() - (IsRowMajor ? m_block.m_startCol.value() : m_block.m_startRow.value()); }
+      inline Index outer()  const { return Base::outer() - (IsRowMajor ? m_block.m_startRow.value() : m_block.m_startCol.value()); }
+      inline Index row()    const { return Base::row()   - m_block.m_startRow.value(); }
+      inline Index col()    const { return Base::col()   - m_block.m_startCol.value(); }
+      
+      inline operator bool() const { return Base::operator bool() && Base::index() >= m_begin; }
+    };
+  protected:
+    friend class InnerIterator;
+    friend class ReverseInnerIterator;
+    
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl)
+
+    typename XprType::Nested m_matrix;
+    const internal::variable_if_dynamic<Index, XprType::RowsAtCompileTime == 1 ? 0 : Dynamic> m_startRow;
+    const internal::variable_if_dynamic<Index, XprType::ColsAtCompileTime == 1 ? 0 : Dynamic> m_startCol;
+    const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_blockRows;
+    const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_blockCols;
+  private:
+    Index nonZeros() const;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_BLOCK_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/MappedSparseMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/MappedSparseMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/MappedSparseMatrix.h	(revision 2476)
@@ -0,0 +1,181 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MAPPED_SPARSEMATRIX_H
+#define EIGEN_MAPPED_SPARSEMATRIX_H
+
+namespace Eigen { 
+
+/** \class MappedSparseMatrix
+  *
+  * \brief Sparse matrix
+  *
+  * \param _Scalar the scalar type, i.e. the type of the coefficients
+  *
+  * See http://www.netlib.org/linalg/html_templates/node91.html for details on the storage scheme.
+  *
+  */
+namespace internal {
+template<typename _Scalar, int _Flags, typename _Index>
+struct traits<MappedSparseMatrix<_Scalar, _Flags, _Index> > : traits<SparseMatrix<_Scalar, _Flags, _Index> >
+{};
+}
+
+template<typename _Scalar, int _Flags, typename _Index>
+class MappedSparseMatrix
+  : public SparseMatrixBase<MappedSparseMatrix<_Scalar, _Flags, _Index> >
+{
+  public:
+    EIGEN_SPARSE_PUBLIC_INTERFACE(MappedSparseMatrix)
+    enum { IsRowMajor = Base::IsRowMajor };
+
+  protected:
+
+    Index   m_outerSize;
+    Index   m_innerSize;
+    Index   m_nnz;
+    Index*  m_outerIndex;
+    Index*  m_innerIndices;
+    Scalar* m_values;
+
+  public:
+
+    inline Index rows() const { return IsRowMajor ? m_outerSize : m_innerSize; }
+    inline Index cols() const { return IsRowMajor ? m_innerSize : m_outerSize; }
+    inline Index innerSize() const { return m_innerSize; }
+    inline Index outerSize() const { return m_outerSize; }
+    
+    bool isCompressed() const { return true; }
+
+    //----------------------------------------
+    // direct access interface
+    inline const Scalar* valuePtr() const { return m_values; }
+    inline Scalar* valuePtr() { return m_values; }
+
+    inline const Index* innerIndexPtr() const { return m_innerIndices; }
+    inline Index* innerIndexPtr() { return m_innerIndices; }
+
+    inline const Index* outerIndexPtr() const { return m_outerIndex; }
+    inline Index* outerIndexPtr() { return m_outerIndex; }
+    //----------------------------------------
+
+    inline Scalar coeff(Index row, Index col) const
+    {
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+
+      Index start = m_outerIndex[outer];
+      Index end = m_outerIndex[outer+1];
+      if (start==end)
+        return Scalar(0);
+      else if (end>0 && inner==m_innerIndices[end-1])
+        return m_values[end-1];
+      // ^^  optimization: let's first check if it is the last coefficient
+      // (very common in high level algorithms)
+
+      const Index* r = std::lower_bound(&m_innerIndices[start],&m_innerIndices[end-1],inner);
+      const Index id = r-&m_innerIndices[0];
+      return ((*r==inner) && (id<end)) ? m_values[id] : Scalar(0);
+    }
+
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+
+      Index start = m_outerIndex[outer];
+      Index end = m_outerIndex[outer+1];
+      eigen_assert(end>=start && "you probably called coeffRef on a non finalized matrix");
+      eigen_assert(end>start && "coeffRef cannot be called on a zero coefficient");
+      Index* r = std::lower_bound(&m_innerIndices[start],&m_innerIndices[end],inner);
+      const Index id = r-&m_innerIndices[0];
+      eigen_assert((*r==inner) && (id<end) && "coeffRef cannot be called on a zero coefficient");
+      return m_values[id];
+    }
+
+    class InnerIterator;
+    class ReverseInnerIterator;
+
+    /** \returns the number of non zero coefficients */
+    inline Index nonZeros() const  { return m_nnz; }
+
+    inline MappedSparseMatrix(Index rows, Index cols, Index nnz, Index* outerIndexPtr, Index* innerIndexPtr, Scalar* valuePtr)
+      : m_outerSize(IsRowMajor?rows:cols), m_innerSize(IsRowMajor?cols:rows), m_nnz(nnz), m_outerIndex(outerIndexPtr),
+        m_innerIndices(innerIndexPtr), m_values(valuePtr)
+    {}
+
+    /** Empty destructor */
+    inline ~MappedSparseMatrix() {}
+};
+
+template<typename Scalar, int _Flags, typename _Index>
+class MappedSparseMatrix<Scalar,_Flags,_Index>::InnerIterator
+{
+  public:
+    InnerIterator(const MappedSparseMatrix& mat, Index outer)
+      : m_matrix(mat),
+        m_outer(outer),
+        m_id(mat.outerIndexPtr()[outer]),
+        m_start(m_id),
+        m_end(mat.outerIndexPtr()[outer+1])
+    {}
+
+    inline InnerIterator& operator++() { m_id++; return *this; }
+
+    inline Scalar value() const { return m_matrix.valuePtr()[m_id]; }
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_matrix.valuePtr()[m_id]); }
+
+    inline Index index() const { return m_matrix.innerIndexPtr()[m_id]; }
+    inline Index row() const { return IsRowMajor ? m_outer : index(); }
+    inline Index col() const { return IsRowMajor ? index() : m_outer; }
+
+    inline operator bool() const { return (m_id < m_end) && (m_id>=m_start); }
+
+  protected:
+    const MappedSparseMatrix& m_matrix;
+    const Index m_outer;
+    Index m_id;
+    const Index m_start;
+    const Index m_end;
+};
+
+template<typename Scalar, int _Flags, typename _Index>
+class MappedSparseMatrix<Scalar,_Flags,_Index>::ReverseInnerIterator
+{
+  public:
+    ReverseInnerIterator(const MappedSparseMatrix& mat, Index outer)
+      : m_matrix(mat),
+        m_outer(outer),
+        m_id(mat.outerIndexPtr()[outer+1]),
+        m_start(mat.outerIndexPtr()[outer]),
+        m_end(m_id)
+    {}
+
+    inline ReverseInnerIterator& operator--() { m_id--; return *this; }
+
+    inline Scalar value() const { return m_matrix.valuePtr()[m_id-1]; }
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_matrix.valuePtr()[m_id-1]); }
+
+    inline Index index() const { return m_matrix.innerIndexPtr()[m_id-1]; }
+    inline Index row() const { return IsRowMajor ? m_outer : index(); }
+    inline Index col() const { return IsRowMajor ? index() : m_outer; }
+
+    inline operator bool() const { return (m_id <= m_end) && (m_id>m_start); }
+
+  protected:
+    const MappedSparseMatrix& m_matrix;
+    const Index m_outer;
+    Index m_id;
+    const Index m_start;
+    const Index m_end;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_MAPPED_SPARSEMATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseSparseProductWithPruning.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseSparseProductWithPruning.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseSparseProductWithPruning.h	(revision 2476)
@@ -0,0 +1,150 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSESPARSEPRODUCTWITHPRUNING_H
+#define EIGEN_SPARSESPARSEPRODUCTWITHPRUNING_H
+
+namespace Eigen { 
+
+namespace internal {
+
+
+// perform a pseudo in-place sparse * sparse product assuming all matrices are col major
+template<typename Lhs, typename Rhs, typename ResultType>
+static void sparse_sparse_product_with_pruning_impl(const Lhs& lhs, const Rhs& rhs, ResultType& res, const typename ResultType::RealScalar& tolerance)
+{
+  // return sparse_sparse_product_with_pruning_impl2(lhs,rhs,res);
+
+  typedef typename remove_all<Lhs>::type::Scalar Scalar;
+  typedef typename remove_all<Lhs>::type::Index Index;
+
+  // make sure to call innerSize/outerSize since we fake the storage order.
+  Index rows = lhs.innerSize();
+  Index cols = rhs.outerSize();
+  //Index size = lhs.outerSize();
+  eigen_assert(lhs.outerSize() == rhs.innerSize());
+
+  // allocate a temporary buffer
+  AmbiVector<Scalar,Index> tempVector(rows);
+
+  // estimate the number of non zero entries
+  // given a rhs column containing Y non zeros, we assume that the respective Y columns
+  // of the lhs differs in average of one non zeros, thus the number of non zeros for
+  // the product of a rhs column with the lhs is X+Y where X is the average number of non zero
+  // per column of the lhs.
+  // Therefore, we have nnz(lhs*rhs) = nnz(lhs) + nnz(rhs)
+  Index estimated_nnz_prod = lhs.nonZeros() + rhs.nonZeros();
+
+  // mimics a resizeByInnerOuter:
+  if(ResultType::IsRowMajor)
+    res.resize(cols, rows);
+  else
+    res.resize(rows, cols);
+
+  res.reserve(estimated_nnz_prod);
+  double ratioColRes = double(estimated_nnz_prod)/(double(lhs.rows())*double(rhs.cols()));
+  for (Index j=0; j<cols; ++j)
+  {
+    // FIXME:
+    //double ratioColRes = (double(rhs.innerVector(j).nonZeros()) + double(lhs.nonZeros())/double(lhs.cols()))/double(lhs.rows());
+    // let's do a more accurate determination of the nnz ratio for the current column j of res
+    tempVector.init(ratioColRes);
+    tempVector.setZero();
+    for (typename Rhs::InnerIterator rhsIt(rhs, j); rhsIt; ++rhsIt)
+    {
+      // FIXME should be written like this: tmp += rhsIt.value() * lhs.col(rhsIt.index())
+      tempVector.restart();
+      Scalar x = rhsIt.value();
+      for (typename Lhs::InnerIterator lhsIt(lhs, rhsIt.index()); lhsIt; ++lhsIt)
+      {
+        tempVector.coeffRef(lhsIt.index()) += lhsIt.value() * x;
+      }
+    }
+    res.startVec(j);
+    for (typename AmbiVector<Scalar,Index>::Iterator it(tempVector,tolerance); it; ++it)
+      res.insertBackByOuterInner(j,it.index()) = it.value();
+  }
+  res.finalize();
+}
+
+template<typename Lhs, typename Rhs, typename ResultType,
+  int LhsStorageOrder = traits<Lhs>::Flags&RowMajorBit,
+  int RhsStorageOrder = traits<Rhs>::Flags&RowMajorBit,
+  int ResStorageOrder = traits<ResultType>::Flags&RowMajorBit>
+struct sparse_sparse_product_with_pruning_selector;
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,ColMajor>
+{
+  typedef typename traits<typename remove_all<Lhs>::type>::Scalar Scalar;
+  typedef typename ResultType::RealScalar RealScalar;
+
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+  {
+    typename remove_all<ResultType>::type _res(res.rows(), res.cols());
+    internal::sparse_sparse_product_with_pruning_impl<Lhs,Rhs,ResultType>(lhs, rhs, _res, tolerance);
+    res.swap(_res);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,ColMajor,ColMajor,RowMajor>
+{
+  typedef typename ResultType::RealScalar RealScalar;
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+  {
+    // we need a col-major matrix to hold the result
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename ResultType::Index> SparseTemporaryType;
+    SparseTemporaryType _res(res.rows(), res.cols());
+    internal::sparse_sparse_product_with_pruning_impl<Lhs,Rhs,SparseTemporaryType>(lhs, rhs, _res, tolerance);
+    res = _res;
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,RowMajor>
+{
+  typedef typename ResultType::RealScalar RealScalar;
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+  {
+    // let's transpose the product to get a column x column product
+    typename remove_all<ResultType>::type _res(res.rows(), res.cols());
+    internal::sparse_sparse_product_with_pruning_impl<Rhs,Lhs,ResultType>(rhs, lhs, _res, tolerance);
+    res.swap(_res);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct sparse_sparse_product_with_pruning_selector<Lhs,Rhs,ResultType,RowMajor,RowMajor,ColMajor>
+{
+  typedef typename ResultType::RealScalar RealScalar;
+  static void run(const Lhs& lhs, const Rhs& rhs, ResultType& res, const RealScalar& tolerance)
+  {
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename Lhs::Index> ColMajorMatrixLhs;
+    typedef SparseMatrix<typename ResultType::Scalar,ColMajor,typename Lhs::Index> ColMajorMatrixRhs;
+    ColMajorMatrixLhs colLhs(lhs);
+    ColMajorMatrixRhs colRhs(rhs);
+    internal::sparse_sparse_product_with_pruning_impl<ColMajorMatrixLhs,ColMajorMatrixRhs,ResultType>(colLhs, colRhs, res, tolerance);
+
+    // let's transpose the product to get a column x column product
+//     typedef SparseMatrix<typename ResultType::Scalar> SparseTemporaryType;
+//     SparseTemporaryType _res(res.cols(), res.rows());
+//     sparse_sparse_product_with_pruning_impl<Rhs,Lhs,SparseTemporaryType>(rhs, lhs, _res);
+//     res = _res.transpose();
+  }
+};
+
+// NOTE the 2 others cases (col row *) must never occur since they are caught
+// by ProductReturnType which transforms it to (col col *) by evaluating rhs.
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSESPARSEPRODUCTWITHPRUNING_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseSelfAdjointView.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseSelfAdjointView.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseSelfAdjointView.h	(revision 2476)
@@ -0,0 +1,507 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_SELFADJOINTVIEW_H
+#define EIGEN_SPARSE_SELFADJOINTVIEW_H
+
+namespace Eigen { 
+
+/** \ingroup SparseCore_Module
+  * \class SparseSelfAdjointView
+  *
+  * \brief Pseudo expression to manipulate a triangular sparse matrix as a selfadjoint matrix.
+  *
+  * \param MatrixType the type of the dense matrix storing the coefficients
+  * \param UpLo can be either \c #Lower or \c #Upper
+  *
+  * This class is an expression of a sefladjoint matrix from a triangular part of a matrix
+  * with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView()
+  * and most of the time this is the only way that it is used.
+  *
+  * \sa SparseMatrixBase::selfadjointView()
+  */
+template<typename Lhs, typename Rhs, int UpLo>
+class SparseSelfAdjointTimeDenseProduct;
+
+template<typename Lhs, typename Rhs, int UpLo>
+class DenseTimeSparseSelfAdjointProduct;
+
+namespace internal {
+  
+template<typename MatrixType, unsigned int UpLo>
+struct traits<SparseSelfAdjointView<MatrixType,UpLo> > : traits<MatrixType> {
+};
+
+template<int SrcUpLo,int DstUpLo,typename MatrixType,int DestOrder>
+void permute_symm_to_symm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DestOrder,typename MatrixType::Index>& _dest, const typename MatrixType::Index* perm = 0);
+
+template<int UpLo,typename MatrixType,int DestOrder>
+void permute_symm_to_fullsymm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DestOrder,typename MatrixType::Index>& _dest, const typename MatrixType::Index* perm = 0);
+
+}
+
+template<typename MatrixType, unsigned int UpLo> class SparseSelfAdjointView
+  : public EigenBase<SparseSelfAdjointView<MatrixType,UpLo> >
+{
+  public:
+
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Index,Dynamic,1> VectorI;
+    typedef typename MatrixType::Nested MatrixTypeNested;
+    typedef typename internal::remove_all<MatrixTypeNested>::type _MatrixTypeNested;
+
+    inline SparseSelfAdjointView(const MatrixType& matrix) : m_matrix(matrix)
+    {
+      eigen_assert(rows()==cols() && "SelfAdjointView is only for squared matrices");
+    }
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+
+    /** \internal \returns a reference to the nested matrix */
+    const _MatrixTypeNested& matrix() const { return m_matrix; }
+    _MatrixTypeNested& matrix() { return m_matrix.const_cast_derived(); }
+
+    /** \returns an expression of the matrix product between a sparse self-adjoint matrix \c *this and a sparse matrix \a rhs.
+      *
+      * Note that there is no algorithmic advantage of performing such a product compared to a general sparse-sparse matrix product.
+      * Indeed, the SparseSelfadjointView operand is first copied into a temporary SparseMatrix before computing the product.
+      */
+    template<typename OtherDerived>
+    SparseSparseProduct<typename OtherDerived::PlainObject, OtherDerived>
+    operator*(const SparseMatrixBase<OtherDerived>& rhs) const
+    {
+      return SparseSparseProduct<typename OtherDerived::PlainObject, OtherDerived>(*this, rhs.derived());
+    }
+
+    /** \returns an expression of the matrix product between a sparse matrix \a lhs and a sparse self-adjoint matrix \a rhs.
+      *
+      * Note that there is no algorithmic advantage of performing such a product compared to a general sparse-sparse matrix product.
+      * Indeed, the SparseSelfadjointView operand is first copied into a temporary SparseMatrix before computing the product.
+      */
+    template<typename OtherDerived> friend
+    SparseSparseProduct<OtherDerived, typename OtherDerived::PlainObject >
+    operator*(const SparseMatrixBase<OtherDerived>& lhs, const SparseSelfAdjointView& rhs)
+    {
+      return SparseSparseProduct<OtherDerived, typename OtherDerived::PlainObject>(lhs.derived(), rhs);
+    }
+    
+    /** Efficient sparse self-adjoint matrix times dense vector/matrix product */
+    template<typename OtherDerived>
+    SparseSelfAdjointTimeDenseProduct<MatrixType,OtherDerived,UpLo>
+    operator*(const MatrixBase<OtherDerived>& rhs) const
+    {
+      return SparseSelfAdjointTimeDenseProduct<MatrixType,OtherDerived,UpLo>(m_matrix, rhs.derived());
+    }
+
+    /** Efficient dense vector/matrix times sparse self-adjoint matrix product */
+    template<typename OtherDerived> friend
+    DenseTimeSparseSelfAdjointProduct<OtherDerived,MatrixType,UpLo>
+    operator*(const MatrixBase<OtherDerived>& lhs, const SparseSelfAdjointView& rhs)
+    {
+      return DenseTimeSparseSelfAdjointProduct<OtherDerived,_MatrixTypeNested,UpLo>(lhs.derived(), rhs.m_matrix);
+    }
+
+    /** Perform a symmetric rank K update of the selfadjoint matrix \c *this:
+      * \f$ this = this + \alpha ( u u^* ) \f$ where \a u is a vector or matrix.
+      *
+      * \returns a reference to \c *this
+      *
+      * To perform \f$ this = this + \alpha ( u^* u ) \f$ you can simply
+      * call this function with u.adjoint().
+      */
+    template<typename DerivedU>
+    SparseSelfAdjointView& rankUpdate(const SparseMatrixBase<DerivedU>& u, const Scalar& alpha = Scalar(1));
+    
+    /** \internal triggered by sparse_matrix = SparseSelfadjointView; */
+    template<typename DestScalar,int StorageOrder> void evalTo(SparseMatrix<DestScalar,StorageOrder,Index>& _dest) const
+    {
+      internal::permute_symm_to_fullsymm<UpLo>(m_matrix, _dest);
+    }
+    
+    template<typename DestScalar> void evalTo(DynamicSparseMatrix<DestScalar,ColMajor,Index>& _dest) const
+    {
+      // TODO directly evaluate into _dest;
+      SparseMatrix<DestScalar,ColMajor,Index> tmp(_dest.rows(),_dest.cols());
+      internal::permute_symm_to_fullsymm<UpLo>(m_matrix, tmp);
+      _dest = tmp;
+    }
+    
+    /** \returns an expression of P H P^-1 */
+    SparseSymmetricPermutationProduct<_MatrixTypeNested,UpLo> twistedBy(const PermutationMatrix<Dynamic,Dynamic,Index>& perm) const
+    {
+      return SparseSymmetricPermutationProduct<_MatrixTypeNested,UpLo>(m_matrix, perm);
+    }
+    
+    template<typename SrcMatrixType,int SrcUpLo>
+    SparseSelfAdjointView& operator=(const SparseSymmetricPermutationProduct<SrcMatrixType,SrcUpLo>& permutedMatrix)
+    {
+      permutedMatrix.evalTo(*this);
+      return *this;
+    }
+
+
+    SparseSelfAdjointView& operator=(const SparseSelfAdjointView& src)
+    {
+      PermutationMatrix<Dynamic> pnull;
+      return *this = src.twistedBy(pnull);
+    }
+
+    template<typename SrcMatrixType,unsigned int SrcUpLo>
+    SparseSelfAdjointView& operator=(const SparseSelfAdjointView<SrcMatrixType,SrcUpLo>& src)
+    {
+      PermutationMatrix<Dynamic> pnull;
+      return *this = src.twistedBy(pnull);
+    }
+    
+
+    // const SparseLLT<PlainObject, UpLo> llt() const;
+    // const SparseLDLT<PlainObject, UpLo> ldlt() const;
+
+  protected:
+
+    typename MatrixType::Nested m_matrix;
+    mutable VectorI m_countPerRow;
+    mutable VectorI m_countPerCol;
+};
+
+/***************************************************************************
+* Implementation of SparseMatrixBase methods
+***************************************************************************/
+
+template<typename Derived>
+template<unsigned int UpLo>
+const SparseSelfAdjointView<Derived, UpLo> SparseMatrixBase<Derived>::selfadjointView() const
+{
+  return derived();
+}
+
+template<typename Derived>
+template<unsigned int UpLo>
+SparseSelfAdjointView<Derived, UpLo> SparseMatrixBase<Derived>::selfadjointView()
+{
+  return derived();
+}
+
+/***************************************************************************
+* Implementation of SparseSelfAdjointView methods
+***************************************************************************/
+
+template<typename MatrixType, unsigned int UpLo>
+template<typename DerivedU>
+SparseSelfAdjointView<MatrixType,UpLo>&
+SparseSelfAdjointView<MatrixType,UpLo>::rankUpdate(const SparseMatrixBase<DerivedU>& u, const Scalar& alpha)
+{
+  SparseMatrix<Scalar,MatrixType::Flags&RowMajorBit?RowMajor:ColMajor> tmp = u * u.adjoint();
+  if(alpha==Scalar(0))
+    m_matrix.const_cast_derived() = tmp.template triangularView<UpLo>();
+  else
+    m_matrix.const_cast_derived() += alpha * tmp.template triangularView<UpLo>();
+
+  return *this;
+}
+
+/***************************************************************************
+* Implementation of sparse self-adjoint time dense matrix
+***************************************************************************/
+
+namespace internal {
+template<typename Lhs, typename Rhs, int UpLo>
+struct traits<SparseSelfAdjointTimeDenseProduct<Lhs,Rhs,UpLo> >
+ : traits<ProductBase<SparseSelfAdjointTimeDenseProduct<Lhs,Rhs,UpLo>, Lhs, Rhs> >
+{
+  typedef Dense StorageKind;
+};
+}
+
+template<typename Lhs, typename Rhs, int UpLo>
+class SparseSelfAdjointTimeDenseProduct
+  : public ProductBase<SparseSelfAdjointTimeDenseProduct<Lhs,Rhs,UpLo>, Lhs, Rhs>
+{
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(SparseSelfAdjointTimeDenseProduct)
+
+    SparseSelfAdjointTimeDenseProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
+    {}
+
+    template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
+    {
+      EIGEN_ONLY_USED_FOR_DEBUG(alpha);
+      // TODO use alpha
+      eigen_assert(alpha==Scalar(1) && "alpha != 1 is not implemented yet, sorry");
+      typedef typename internal::remove_all<Lhs>::type _Lhs;
+      typedef typename _Lhs::InnerIterator LhsInnerIterator;
+      enum {
+        LhsIsRowMajor = (_Lhs::Flags&RowMajorBit)==RowMajorBit,
+        ProcessFirstHalf =
+                 ((UpLo&(Upper|Lower))==(Upper|Lower))
+              || ( (UpLo&Upper) && !LhsIsRowMajor)
+              || ( (UpLo&Lower) && LhsIsRowMajor),
+        ProcessSecondHalf = !ProcessFirstHalf
+      };
+      for (Index j=0; j<m_lhs.outerSize(); ++j)
+      {
+        LhsInnerIterator i(m_lhs,j);
+        if (ProcessSecondHalf)
+        {
+          while (i && i.index()<j) ++i;
+          if(i && i.index()==j)
+          {
+            dest.row(j) += i.value() * m_rhs.row(j);
+            ++i;
+          }
+        }
+        for(; (ProcessFirstHalf ? i && i.index() < j : i) ; ++i)
+        {
+          Index a = LhsIsRowMajor ? j : i.index();
+          Index b = LhsIsRowMajor ? i.index() : j;
+          typename Lhs::Scalar v = i.value();
+          dest.row(a) += (v) * m_rhs.row(b);
+          dest.row(b) += numext::conj(v) * m_rhs.row(a);
+        }
+        if (ProcessFirstHalf && i && (i.index()==j))
+          dest.row(j) += i.value() * m_rhs.row(j);
+      }
+    }
+
+  private:
+    SparseSelfAdjointTimeDenseProduct& operator=(const SparseSelfAdjointTimeDenseProduct&);
+};
+
+namespace internal {
+template<typename Lhs, typename Rhs, int UpLo>
+struct traits<DenseTimeSparseSelfAdjointProduct<Lhs,Rhs,UpLo> >
+ : traits<ProductBase<DenseTimeSparseSelfAdjointProduct<Lhs,Rhs,UpLo>, Lhs, Rhs> >
+{};
+}
+
+template<typename Lhs, typename Rhs, int UpLo>
+class DenseTimeSparseSelfAdjointProduct
+  : public ProductBase<DenseTimeSparseSelfAdjointProduct<Lhs,Rhs,UpLo>, Lhs, Rhs>
+{
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(DenseTimeSparseSelfAdjointProduct)
+
+    DenseTimeSparseSelfAdjointProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
+    {}
+
+    template<typename Dest> void scaleAndAddTo(Dest& /*dest*/, const Scalar& /*alpha*/) const
+    {
+      // TODO
+    }
+
+  private:
+    DenseTimeSparseSelfAdjointProduct& operator=(const DenseTimeSparseSelfAdjointProduct&);
+};
+
+/***************************************************************************
+* Implementation of symmetric copies and permutations
+***************************************************************************/
+namespace internal {
+  
+template<typename MatrixType, int UpLo>
+struct traits<SparseSymmetricPermutationProduct<MatrixType,UpLo> > : traits<MatrixType> {
+};
+
+template<int UpLo,typename MatrixType,int DestOrder>
+void permute_symm_to_fullsymm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DestOrder,typename MatrixType::Index>& _dest, const typename MatrixType::Index* perm)
+{
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef SparseMatrix<Scalar,DestOrder,Index> Dest;
+  typedef Matrix<Index,Dynamic,1> VectorI;
+  
+  Dest& dest(_dest.derived());
+  enum {
+    StorageOrderMatch = int(Dest::IsRowMajor) == int(MatrixType::IsRowMajor)
+  };
+  
+  Index size = mat.rows();
+  VectorI count;
+  count.resize(size);
+  count.setZero();
+  dest.resize(size,size);
+  for(Index j = 0; j<size; ++j)
+  {
+    Index jp = perm ? perm[j] : j;
+    for(typename MatrixType::InnerIterator it(mat,j); it; ++it)
+    {
+      Index i = it.index();
+      Index r = it.row();
+      Index c = it.col();
+      Index ip = perm ? perm[i] : i;
+      if(UpLo==(Upper|Lower))
+        count[StorageOrderMatch ? jp : ip]++;
+      else if(r==c)
+        count[ip]++;
+      else if(( UpLo==Lower && r>c) || ( UpLo==Upper && r<c))
+      {
+        count[ip]++;
+        count[jp]++;
+      }
+    }
+  }
+  Index nnz = count.sum();
+  
+  // reserve space
+  dest.resizeNonZeros(nnz);
+  dest.outerIndexPtr()[0] = 0;
+  for(Index j=0; j<size; ++j)
+    dest.outerIndexPtr()[j+1] = dest.outerIndexPtr()[j] + count[j];
+  for(Index j=0; j<size; ++j)
+    count[j] = dest.outerIndexPtr()[j];
+  
+  // copy data
+  for(Index j = 0; j<size; ++j)
+  {
+    for(typename MatrixType::InnerIterator it(mat,j); it; ++it)
+    {
+      Index i = it.index();
+      Index r = it.row();
+      Index c = it.col();
+      
+      Index jp = perm ? perm[j] : j;
+      Index ip = perm ? perm[i] : i;
+      
+      if(UpLo==(Upper|Lower))
+      {
+        Index k = count[StorageOrderMatch ? jp : ip]++;
+        dest.innerIndexPtr()[k] = StorageOrderMatch ? ip : jp;
+        dest.valuePtr()[k] = it.value();
+      }
+      else if(r==c)
+      {
+        Index k = count[ip]++;
+        dest.innerIndexPtr()[k] = ip;
+        dest.valuePtr()[k] = it.value();
+      }
+      else if(( (UpLo&Lower)==Lower && r>c) || ( (UpLo&Upper)==Upper && r<c))
+      {
+        if(!StorageOrderMatch)
+          std::swap(ip,jp);
+        Index k = count[jp]++;
+        dest.innerIndexPtr()[k] = ip;
+        dest.valuePtr()[k] = it.value();
+        k = count[ip]++;
+        dest.innerIndexPtr()[k] = jp;
+        dest.valuePtr()[k] = numext::conj(it.value());
+      }
+    }
+  }
+}
+
+template<int _SrcUpLo,int _DstUpLo,typename MatrixType,int DstOrder>
+void permute_symm_to_symm(const MatrixType& mat, SparseMatrix<typename MatrixType::Scalar,DstOrder,typename MatrixType::Index>& _dest, const typename MatrixType::Index* perm)
+{
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  SparseMatrix<Scalar,DstOrder,Index>& dest(_dest.derived());
+  typedef Matrix<Index,Dynamic,1> VectorI;
+  enum {
+    SrcOrder = MatrixType::IsRowMajor ? RowMajor : ColMajor,
+    StorageOrderMatch = int(SrcOrder) == int(DstOrder),
+    DstUpLo = DstOrder==RowMajor ? (_DstUpLo==Upper ? Lower : Upper) : _DstUpLo,
+    SrcUpLo = SrcOrder==RowMajor ? (_SrcUpLo==Upper ? Lower : Upper) : _SrcUpLo
+  };
+  
+  Index size = mat.rows();
+  VectorI count(size);
+  count.setZero();
+  dest.resize(size,size);
+  for(Index j = 0; j<size; ++j)
+  {
+    Index jp = perm ? perm[j] : j;
+    for(typename MatrixType::InnerIterator it(mat,j); it; ++it)
+    {
+      Index i = it.index();
+      if((int(SrcUpLo)==int(Lower) && i<j) || (int(SrcUpLo)==int(Upper) && i>j))
+        continue;
+                  
+      Index ip = perm ? perm[i] : i;
+      count[int(DstUpLo)==int(Lower) ? (std::min)(ip,jp) : (std::max)(ip,jp)]++;
+    }
+  }
+  dest.outerIndexPtr()[0] = 0;
+  for(Index j=0; j<size; ++j)
+    dest.outerIndexPtr()[j+1] = dest.outerIndexPtr()[j] + count[j];
+  dest.resizeNonZeros(dest.outerIndexPtr()[size]);
+  for(Index j=0; j<size; ++j)
+    count[j] = dest.outerIndexPtr()[j];
+  
+  for(Index j = 0; j<size; ++j)
+  {
+    
+    for(typename MatrixType::InnerIterator it(mat,j); it; ++it)
+    {
+      Index i = it.index();
+      if((int(SrcUpLo)==int(Lower) && i<j) || (int(SrcUpLo)==int(Upper) && i>j))
+        continue;
+                  
+      Index jp = perm ? perm[j] : j;
+      Index ip = perm? perm[i] : i;
+      
+      Index k = count[int(DstUpLo)==int(Lower) ? (std::min)(ip,jp) : (std::max)(ip,jp)]++;
+      dest.innerIndexPtr()[k] = int(DstUpLo)==int(Lower) ? (std::max)(ip,jp) : (std::min)(ip,jp);
+      
+      if(!StorageOrderMatch) std::swap(ip,jp);
+      if( ((int(DstUpLo)==int(Lower) && ip<jp) || (int(DstUpLo)==int(Upper) && ip>jp)))
+        dest.valuePtr()[k] = numext::conj(it.value());
+      else
+        dest.valuePtr()[k] = it.value();
+    }
+  }
+}
+
+}
+
+template<typename MatrixType,int UpLo>
+class SparseSymmetricPermutationProduct
+  : public EigenBase<SparseSymmetricPermutationProduct<MatrixType,UpLo> >
+{
+  public:
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+  protected:
+    typedef PermutationMatrix<Dynamic,Dynamic,Index> Perm;
+  public:
+    typedef Matrix<Index,Dynamic,1> VectorI;
+    typedef typename MatrixType::Nested MatrixTypeNested;
+    typedef typename internal::remove_all<MatrixTypeNested>::type _MatrixTypeNested;
+    
+    SparseSymmetricPermutationProduct(const MatrixType& mat, const Perm& perm)
+      : m_matrix(mat), m_perm(perm)
+    {}
+    
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+    
+    template<typename DestScalar, int Options, typename DstIndex>
+    void evalTo(SparseMatrix<DestScalar,Options,DstIndex>& _dest) const
+    {
+//       internal::permute_symm_to_fullsymm<UpLo>(m_matrix,_dest,m_perm.indices().data());
+      SparseMatrix<DestScalar,(Options&RowMajor)==RowMajor ? ColMajor : RowMajor, DstIndex> tmp;
+      internal::permute_symm_to_fullsymm<UpLo>(m_matrix,tmp,m_perm.indices().data());
+      _dest = tmp;
+    }
+    
+    template<typename DestType,unsigned int DestUpLo> void evalTo(SparseSelfAdjointView<DestType,DestUpLo>& dest) const
+    {
+      internal::permute_symm_to_symm<UpLo,DestUpLo>(m_matrix,dest.matrix(),m_perm.indices().data());
+    }
+    
+  protected:
+    MatrixTypeNested m_matrix;
+    const Perm& m_perm;
+
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_SELFADJOINTVIEW_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseDenseProduct.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseDenseProduct.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseDenseProduct.h	(revision 2476)
@@ -0,0 +1,311 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEDENSEPRODUCT_H
+#define EIGEN_SPARSEDENSEPRODUCT_H
+
+namespace Eigen { 
+
+template<typename Lhs, typename Rhs, int InnerSize> struct SparseDenseProductReturnType
+{
+  typedef SparseTimeDenseProduct<Lhs,Rhs> Type;
+};
+
+template<typename Lhs, typename Rhs> struct SparseDenseProductReturnType<Lhs,Rhs,1>
+{
+  typedef typename internal::conditional<
+    Lhs::IsRowMajor,
+    SparseDenseOuterProduct<Rhs,Lhs,true>,
+    SparseDenseOuterProduct<Lhs,Rhs,false> >::type Type;
+};
+
+template<typename Lhs, typename Rhs, int InnerSize> struct DenseSparseProductReturnType
+{
+  typedef DenseTimeSparseProduct<Lhs,Rhs> Type;
+};
+
+template<typename Lhs, typename Rhs> struct DenseSparseProductReturnType<Lhs,Rhs,1>
+{
+  typedef typename internal::conditional<
+    Rhs::IsRowMajor,
+    SparseDenseOuterProduct<Rhs,Lhs,true>,
+    SparseDenseOuterProduct<Lhs,Rhs,false> >::type Type;
+};
+
+namespace internal {
+
+template<typename Lhs, typename Rhs, bool Tr>
+struct traits<SparseDenseOuterProduct<Lhs,Rhs,Tr> >
+{
+  typedef Sparse StorageKind;
+  typedef typename scalar_product_traits<typename traits<Lhs>::Scalar,
+                                         typename traits<Rhs>::Scalar>::ReturnType Scalar;
+  typedef typename Lhs::Index Index;
+  typedef typename Lhs::Nested LhsNested;
+  typedef typename Rhs::Nested RhsNested;
+  typedef typename remove_all<LhsNested>::type _LhsNested;
+  typedef typename remove_all<RhsNested>::type _RhsNested;
+
+  enum {
+    LhsCoeffReadCost = traits<_LhsNested>::CoeffReadCost,
+    RhsCoeffReadCost = traits<_RhsNested>::CoeffReadCost,
+
+    RowsAtCompileTime    = Tr ? int(traits<Rhs>::RowsAtCompileTime)     : int(traits<Lhs>::RowsAtCompileTime),
+    ColsAtCompileTime    = Tr ? int(traits<Lhs>::ColsAtCompileTime)     : int(traits<Rhs>::ColsAtCompileTime),
+    MaxRowsAtCompileTime = Tr ? int(traits<Rhs>::MaxRowsAtCompileTime)  : int(traits<Lhs>::MaxRowsAtCompileTime),
+    MaxColsAtCompileTime = Tr ? int(traits<Lhs>::MaxColsAtCompileTime)  : int(traits<Rhs>::MaxColsAtCompileTime),
+
+    Flags = Tr ? RowMajorBit : 0,
+
+    CoeffReadCost = LhsCoeffReadCost + RhsCoeffReadCost + NumTraits<Scalar>::MulCost
+  };
+};
+
+} // end namespace internal
+
+template<typename Lhs, typename Rhs, bool Tr>
+class SparseDenseOuterProduct
+ : public SparseMatrixBase<SparseDenseOuterProduct<Lhs,Rhs,Tr> >
+{
+  public:
+
+    typedef SparseMatrixBase<SparseDenseOuterProduct> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(SparseDenseOuterProduct)
+    typedef internal::traits<SparseDenseOuterProduct> Traits;
+
+  private:
+
+    typedef typename Traits::LhsNested LhsNested;
+    typedef typename Traits::RhsNested RhsNested;
+    typedef typename Traits::_LhsNested _LhsNested;
+    typedef typename Traits::_RhsNested _RhsNested;
+
+  public:
+
+    class InnerIterator;
+
+    EIGEN_STRONG_INLINE SparseDenseOuterProduct(const Lhs& lhs, const Rhs& rhs)
+      : m_lhs(lhs), m_rhs(rhs)
+    {
+      EIGEN_STATIC_ASSERT(!Tr,YOU_MADE_A_PROGRAMMING_MISTAKE);
+    }
+
+    EIGEN_STRONG_INLINE SparseDenseOuterProduct(const Rhs& rhs, const Lhs& lhs)
+      : m_lhs(lhs), m_rhs(rhs)
+    {
+      EIGEN_STATIC_ASSERT(Tr,YOU_MADE_A_PROGRAMMING_MISTAKE);
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return Tr ? m_rhs.rows() : m_lhs.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return Tr ? m_lhs.cols() : m_rhs.cols(); }
+
+    EIGEN_STRONG_INLINE const _LhsNested& lhs() const { return m_lhs; }
+    EIGEN_STRONG_INLINE const _RhsNested& rhs() const { return m_rhs; }
+
+  protected:
+    LhsNested m_lhs;
+    RhsNested m_rhs;
+};
+
+template<typename Lhs, typename Rhs, bool Transpose>
+class SparseDenseOuterProduct<Lhs,Rhs,Transpose>::InnerIterator : public _LhsNested::InnerIterator
+{
+    typedef typename _LhsNested::InnerIterator Base;
+    typedef typename SparseDenseOuterProduct::Index Index;
+  public:
+    EIGEN_STRONG_INLINE InnerIterator(const SparseDenseOuterProduct& prod, Index outer)
+      : Base(prod.lhs(), 0), m_outer(outer), m_factor(get(prod.rhs(), outer, typename internal::traits<Rhs>::StorageKind() ))
+    { }
+
+    inline Index outer() const { return m_outer; }
+    inline Index row() const { return Transpose ? m_outer : Base::index(); }
+    inline Index col() const { return Transpose ? Base::index() : m_outer; }
+
+    inline Scalar value() const { return Base::value() * m_factor; }
+
+  protected:
+    static Scalar get(const _RhsNested &rhs, Index outer, Dense = Dense())
+    {
+      return rhs.coeff(outer);
+    }
+    
+    static Scalar get(const _RhsNested &rhs, Index outer, Sparse = Sparse())
+    {
+      typename Traits::_RhsNested::InnerIterator it(rhs, outer);
+      if (it && it.index()==0)
+        return it.value();
+      
+      return Scalar(0);
+    }
+    
+    Index m_outer;
+    Scalar m_factor;
+};
+
+namespace internal {
+template<typename Lhs, typename Rhs>
+struct traits<SparseTimeDenseProduct<Lhs,Rhs> >
+ : traits<ProductBase<SparseTimeDenseProduct<Lhs,Rhs>, Lhs, Rhs> >
+{
+  typedef Dense StorageKind;
+  typedef MatrixXpr XprKind;
+};
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType,
+         int LhsStorageOrder = ((SparseLhsType::Flags&RowMajorBit)==RowMajorBit) ? RowMajor : ColMajor,
+         bool ColPerCol = ((DenseRhsType::Flags&RowMajorBit)==0) || DenseRhsType::ColsAtCompileTime==1>
+struct sparse_time_dense_product_impl;
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
+struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, RowMajor, true>
+{
+  typedef typename internal::remove_all<SparseLhsType>::type Lhs;
+  typedef typename internal::remove_all<DenseRhsType>::type Rhs;
+  typedef typename internal::remove_all<DenseResType>::type Res;
+  typedef typename Lhs::Index Index;
+  typedef typename Lhs::InnerIterator LhsInnerIterator;
+  static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
+  {
+    for(Index c=0; c<rhs.cols(); ++c)
+    {
+      Index n = lhs.outerSize();
+      for(Index j=0; j<n; ++j)
+      {
+        typename Res::Scalar tmp(0);
+        for(LhsInnerIterator it(lhs,j); it ;++it)
+          tmp += it.value() * rhs.coeff(it.index(),c);
+        res.coeffRef(j,c) += alpha * tmp;
+      }
+    }
+  }
+};
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
+struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, ColMajor, true>
+{
+  typedef typename internal::remove_all<SparseLhsType>::type Lhs;
+  typedef typename internal::remove_all<DenseRhsType>::type Rhs;
+  typedef typename internal::remove_all<DenseResType>::type Res;
+  typedef typename Lhs::InnerIterator LhsInnerIterator;
+  typedef typename Lhs::Index Index;
+  static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
+  {
+    for(Index c=0; c<rhs.cols(); ++c)
+    {
+      for(Index j=0; j<lhs.outerSize(); ++j)
+      {
+        typename Res::Scalar rhs_j = alpha * rhs.coeff(j,c);
+        for(LhsInnerIterator it(lhs,j); it ;++it)
+          res.coeffRef(it.index(),c) += it.value() * rhs_j;
+      }
+    }
+  }
+};
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
+struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, RowMajor, false>
+{
+  typedef typename internal::remove_all<SparseLhsType>::type Lhs;
+  typedef typename internal::remove_all<DenseRhsType>::type Rhs;
+  typedef typename internal::remove_all<DenseResType>::type Res;
+  typedef typename Lhs::InnerIterator LhsInnerIterator;
+  typedef typename Lhs::Index Index;
+  static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
+  {
+    for(Index j=0; j<lhs.outerSize(); ++j)
+    {
+      typename Res::RowXpr res_j(res.row(j));
+      for(LhsInnerIterator it(lhs,j); it ;++it)
+        res_j += (alpha*it.value()) * rhs.row(it.index());
+    }
+  }
+};
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType>
+struct sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType, ColMajor, false>
+{
+  typedef typename internal::remove_all<SparseLhsType>::type Lhs;
+  typedef typename internal::remove_all<DenseRhsType>::type Rhs;
+  typedef typename internal::remove_all<DenseResType>::type Res;
+  typedef typename Lhs::InnerIterator LhsInnerIterator;
+  typedef typename Lhs::Index Index;
+  static void run(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const typename Res::Scalar& alpha)
+  {
+    for(Index j=0; j<lhs.outerSize(); ++j)
+    {
+      typename Rhs::ConstRowXpr rhs_j(rhs.row(j));
+      for(LhsInnerIterator it(lhs,j); it ;++it)
+        res.row(it.index()) += (alpha*it.value()) * rhs_j;
+    }
+  }
+};
+
+template<typename SparseLhsType, typename DenseRhsType, typename DenseResType,typename AlphaType>
+inline void sparse_time_dense_product(const SparseLhsType& lhs, const DenseRhsType& rhs, DenseResType& res, const AlphaType& alpha)
+{
+  sparse_time_dense_product_impl<SparseLhsType,DenseRhsType,DenseResType>::run(lhs, rhs, res, alpha);
+}
+
+} // end namespace internal
+
+template<typename Lhs, typename Rhs>
+class SparseTimeDenseProduct
+  : public ProductBase<SparseTimeDenseProduct<Lhs,Rhs>, Lhs, Rhs>
+{
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(SparseTimeDenseProduct)
+
+    SparseTimeDenseProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
+    {}
+
+    template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
+    {
+      internal::sparse_time_dense_product(m_lhs, m_rhs, dest, alpha);
+    }
+
+  private:
+    SparseTimeDenseProduct& operator=(const SparseTimeDenseProduct&);
+};
+
+
+// dense = dense * sparse
+namespace internal {
+template<typename Lhs, typename Rhs>
+struct traits<DenseTimeSparseProduct<Lhs,Rhs> >
+ : traits<ProductBase<DenseTimeSparseProduct<Lhs,Rhs>, Lhs, Rhs> >
+{
+  typedef Dense StorageKind;
+};
+} // end namespace internal
+
+template<typename Lhs, typename Rhs>
+class DenseTimeSparseProduct
+  : public ProductBase<DenseTimeSparseProduct<Lhs,Rhs>, Lhs, Rhs>
+{
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(DenseTimeSparseProduct)
+
+    DenseTimeSparseProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
+    {}
+
+    template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
+    {
+      Transpose<const _LhsNested> lhs_t(m_lhs);
+      Transpose<const _RhsNested> rhs_t(m_rhs);
+      Transpose<Dest> dest_t(dest);
+      internal::sparse_time_dense_product(rhs_t, lhs_t, dest_t, alpha);
+    }
+
+  private:
+    DenseTimeSparseProduct& operator=(const DenseTimeSparseProduct&);
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEDENSEPRODUCT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseMatrixBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseMatrixBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseMatrixBase.h	(revision 2476)
@@ -0,0 +1,462 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEMATRIXBASE_H
+#define EIGEN_SPARSEMATRIXBASE_H
+
+namespace Eigen { 
+
+/** \ingroup SparseCore_Module
+  *
+  * \class SparseMatrixBase
+  *
+  * \brief Base class of any sparse matrices or sparse expressions
+  *
+  * \tparam Derived
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_SPARSEMATRIXBASE_PLUGIN.
+  */
+template<typename Derived> class SparseMatrixBase
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+  : public internal::special_scalar_op_base<Derived,typename internal::traits<Derived>::Scalar,
+                                            typename NumTraits<typename internal::traits<Derived>::Scalar>::Real,
+                                            EigenBase<Derived> >
+#else
+  : public EigenBase<Derived>
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+{
+  public:
+
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::Index StorageIndex;
+    typedef typename internal::add_const_on_value_type_if_arithmetic<
+                         typename internal::packet_traits<Scalar>::type
+                     >::type PacketReturnType;
+
+    typedef SparseMatrixBase StorageBaseType;
+    
+    template<typename OtherDerived>
+    Derived& operator=(const EigenBase<OtherDerived> &other)
+    {
+      other.derived().evalTo(derived());
+      return derived();
+    }
+
+    enum {
+
+      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+        /**< The number of rows at compile-time. This is just a copy of the value provided
+          * by the \a Derived type. If a value is not known at compile-time,
+          * it is set to the \a Dynamic constant.
+          * \sa MatrixBase::rows(), MatrixBase::cols(), ColsAtCompileTime, SizeAtCompileTime */
+
+      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+        /**< The number of columns at compile-time. This is just a copy of the value provided
+          * by the \a Derived type. If a value is not known at compile-time,
+          * it is set to the \a Dynamic constant.
+          * \sa MatrixBase::rows(), MatrixBase::cols(), RowsAtCompileTime, SizeAtCompileTime */
+
+
+      SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
+                                                   internal::traits<Derived>::ColsAtCompileTime>::ret),
+        /**< This is equal to the number of coefficients, i.e. the number of
+          * rows times the number of columns, or to \a Dynamic if this is not
+          * known at compile-time. \sa RowsAtCompileTime, ColsAtCompileTime */
+
+      MaxRowsAtCompileTime = RowsAtCompileTime,
+      MaxColsAtCompileTime = ColsAtCompileTime,
+
+      MaxSizeAtCompileTime = (internal::size_at_compile_time<MaxRowsAtCompileTime,
+                                                      MaxColsAtCompileTime>::ret),
+
+      IsVectorAtCompileTime = RowsAtCompileTime == 1 || ColsAtCompileTime == 1,
+        /**< This is set to true if either the number of rows or the number of
+          * columns is known at compile-time to be equal to 1. Indeed, in that case,
+          * we are dealing with a column-vector (if there is only one column) or with
+          * a row-vector (if there is only one row). */
+
+      Flags = internal::traits<Derived>::Flags,
+        /**< This stores expression \ref flags flags which may or may not be inherited by new expressions
+          * constructed from this one. See the \ref flags "list of flags".
+          */
+
+      CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
+        /**< This is a rough measure of how expensive it is to read one coefficient from
+          * this expression.
+          */
+
+      IsRowMajor = Flags&RowMajorBit ? 1 : 0,
+      
+      InnerSizeAtCompileTime = int(IsVectorAtCompileTime) ? int(SizeAtCompileTime)
+                             : int(IsRowMajor) ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
+
+      #ifndef EIGEN_PARSED_BY_DOXYGEN
+      _HasDirectAccess = (int(Flags)&DirectAccessBit) ? 1 : 0 // workaround sunCC
+      #endif
+    };
+
+    /** \internal the return type of MatrixBase::adjoint() */
+    typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+                        CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, Eigen::Transpose<const Derived> >,
+                        Transpose<const Derived>
+                     >::type AdjointReturnType;
+
+
+    typedef SparseMatrix<Scalar, Flags&RowMajorBit ? RowMajor : ColMajor, Index> PlainObject;
+
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is the "real scalar" type; if the \a Scalar type is already real numbers
+      * (e.g. int, float or double) then \a RealScalar is just the same as \a Scalar. If
+      * \a Scalar is \a std::complex<T> then RealScalar is \a T.
+      *
+      * \sa class NumTraits
+      */
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    /** \internal the return type of coeff()
+      */
+    typedef typename internal::conditional<_HasDirectAccess, const Scalar&, Scalar>::type CoeffReturnType;
+
+    /** \internal Represents a matrix with all coefficients equal to one another*/
+    typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,Matrix<Scalar,Dynamic,Dynamic> > ConstantReturnType;
+
+    /** type of the equivalent square matrix */
+    typedef Matrix<Scalar,EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime),
+                          EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime)> SquareMatrixType;
+
+    inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
+    inline Derived& derived() { return *static_cast<Derived*>(this); }
+    inline Derived& const_cast_derived() const
+    { return *static_cast<Derived*>(const_cast<SparseMatrixBase*>(this)); }
+
+    typedef internal::special_scalar_op_base<Derived, Scalar, RealScalar, EigenBase<Derived> > Base;
+    using Base::operator*;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::SparseMatrixBase
+#   include "../plugins/CommonCwiseUnaryOps.h"
+#   include "../plugins/CommonCwiseBinaryOps.h"
+#   include "../plugins/MatrixCwiseUnaryOps.h"
+#   include "../plugins/MatrixCwiseBinaryOps.h"
+#   include "../plugins/BlockMethods.h"
+#   ifdef EIGEN_SPARSEMATRIXBASE_PLUGIN
+#     include EIGEN_SPARSEMATRIXBASE_PLUGIN
+#   endif
+#   undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+
+    /** \returns the number of rows. \sa cols() */
+    inline Index rows() const { return derived().rows(); }
+    /** \returns the number of columns. \sa rows() */
+    inline Index cols() const { return derived().cols(); }
+    /** \returns the number of coefficients, which is \a rows()*cols().
+      * \sa rows(), cols(). */
+    inline Index size() const { return rows() * cols(); }
+    /** \returns the number of nonzero coefficients which is in practice the number
+      * of stored coefficients. */
+    inline Index nonZeros() const { return derived().nonZeros(); }
+    /** \returns true if either the number of rows or the number of columns is equal to 1.
+      * In other words, this function returns
+      * \code rows()==1 || cols()==1 \endcode
+      * \sa rows(), cols(), IsVectorAtCompileTime. */
+    inline bool isVector() const { return rows()==1 || cols()==1; }
+    /** \returns the size of the storage major dimension,
+      * i.e., the number of columns for a columns major matrix, and the number of rows otherwise */
+    Index outerSize() const { return (int(Flags)&RowMajorBit) ? this->rows() : this->cols(); }
+    /** \returns the size of the inner dimension according to the storage order,
+      * i.e., the number of rows for a columns major matrix, and the number of cols otherwise */
+    Index innerSize() const { return (int(Flags)&RowMajorBit) ? this->cols() : this->rows(); }
+
+    bool isRValue() const { return m_isRValue; }
+    Derived& markAsRValue() { m_isRValue = true; return derived(); }
+
+    SparseMatrixBase() : m_isRValue(false) { /* TODO check flags */ }
+
+    
+    template<typename OtherDerived>
+    Derived& operator=(const ReturnByValue<OtherDerived>& other)
+    {
+      other.evalTo(derived());
+      return derived();
+    }
+
+
+    template<typename OtherDerived>
+    inline Derived& operator=(const SparseMatrixBase<OtherDerived>& other)
+    {
+      return assign(other.derived());
+    }
+
+    inline Derived& operator=(const Derived& other)
+    {
+//       if (other.isRValue())
+//         derived().swap(other.const_cast_derived());
+//       else
+      return assign(other.derived());
+    }
+
+  protected:
+
+    template<typename OtherDerived>
+    inline Derived& assign(const OtherDerived& other)
+    {
+      const bool transpose = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit);
+      const Index outerSize = (int(OtherDerived::Flags) & RowMajorBit) ? other.rows() : other.cols();
+      if ((!transpose) && other.isRValue())
+      {
+        // eval without temporary
+        derived().resize(other.rows(), other.cols());
+        derived().setZero();
+        derived().reserve((std::max)(this->rows(),this->cols())*2);
+        for (Index j=0; j<outerSize; ++j)
+        {
+          derived().startVec(j);
+          for (typename OtherDerived::InnerIterator it(other, j); it; ++it)
+          {
+            Scalar v = it.value();
+            derived().insertBackByOuterInner(j,it.index()) = v;
+          }
+        }
+        derived().finalize();
+      }
+      else
+      {
+        assignGeneric(other);
+      }
+      return derived();
+    }
+
+    template<typename OtherDerived>
+    inline void assignGeneric(const OtherDerived& other)
+    {
+      //const bool transpose = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit);
+      eigen_assert(( ((internal::traits<Derived>::SupportedAccessPatterns&OuterRandomAccessPattern)==OuterRandomAccessPattern) ||
+                  (!((Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit)))) &&
+                  "the transpose operation is supposed to be handled in SparseMatrix::operator=");
+
+      enum { Flip = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit) };
+
+      const Index outerSize = other.outerSize();
+      //typedef typename internal::conditional<transpose, LinkedVectorMatrix<Scalar,Flags&RowMajorBit>, Derived>::type TempType;
+      // thanks to shallow copies, we always eval to a tempary
+      Derived temp(other.rows(), other.cols());
+
+      temp.reserve((std::max)(this->rows(),this->cols())*2);
+      for (Index j=0; j<outerSize; ++j)
+      {
+        temp.startVec(j);
+        for (typename OtherDerived::InnerIterator it(other.derived(), j); it; ++it)
+        {
+          Scalar v = it.value();
+          temp.insertBackByOuterInner(Flip?it.index():j,Flip?j:it.index()) = v;
+        }
+      }
+      temp.finalize();
+
+      derived() = temp.markAsRValue();
+    }
+
+  public:
+
+    template<typename Lhs, typename Rhs>
+    inline Derived& operator=(const SparseSparseProduct<Lhs,Rhs>& product);
+
+    friend std::ostream & operator << (std::ostream & s, const SparseMatrixBase& m)
+    {
+      typedef typename Derived::Nested Nested;
+      typedef typename internal::remove_all<Nested>::type NestedCleaned;
+
+      if (Flags&RowMajorBit)
+      {
+        const Nested nm(m.derived());
+        for (Index row=0; row<nm.outerSize(); ++row)
+        {
+          Index col = 0;
+          for (typename NestedCleaned::InnerIterator it(nm.derived(), row); it; ++it)
+          {
+            for ( ; col<it.index(); ++col)
+              s << "0 ";
+            s << it.value() << " ";
+            ++col;
+          }
+          for ( ; col<m.cols(); ++col)
+            s << "0 ";
+          s << std::endl;
+        }
+      }
+      else
+      {
+        const Nested nm(m.derived());
+        if (m.cols() == 1) {
+          Index row = 0;
+          for (typename NestedCleaned::InnerIterator it(nm.derived(), 0); it; ++it)
+          {
+            for ( ; row<it.index(); ++row)
+              s << "0" << std::endl;
+            s << it.value() << std::endl;
+            ++row;
+          }
+          for ( ; row<m.rows(); ++row)
+            s << "0" << std::endl;
+        }
+        else
+        {
+          SparseMatrix<Scalar, RowMajorBit, Index> trans = m;
+          s << static_cast<const SparseMatrixBase<SparseMatrix<Scalar, RowMajorBit, Index> >&>(trans);
+        }
+      }
+      return s;
+    }
+
+    template<typename OtherDerived>
+    Derived& operator+=(const SparseMatrixBase<OtherDerived>& other);
+    template<typename OtherDerived>
+    Derived& operator-=(const SparseMatrixBase<OtherDerived>& other);
+
+    Derived& operator*=(const Scalar& other);
+    Derived& operator/=(const Scalar& other);
+
+    template<typename OtherDerived> struct CwiseProductDenseReturnType {
+      typedef CwiseBinaryOp<internal::scalar_product_op<typename internal::scalar_product_traits<
+                                                          typename internal::traits<Derived>::Scalar,
+                                                          typename internal::traits<OtherDerived>::Scalar
+                                                        >::ReturnType>,
+                            const Derived,
+                            const OtherDerived
+                          > Type;
+    };
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE const typename CwiseProductDenseReturnType<OtherDerived>::Type
+    cwiseProduct(const MatrixBase<OtherDerived> &other) const;
+
+    // sparse * sparse
+    template<typename OtherDerived>
+    const typename SparseSparseProductReturnType<Derived,OtherDerived>::Type
+    operator*(const SparseMatrixBase<OtherDerived> &other) const;
+
+    // sparse * diagonal
+    template<typename OtherDerived>
+    const SparseDiagonalProduct<Derived,OtherDerived>
+    operator*(const DiagonalBase<OtherDerived> &other) const;
+
+    // diagonal * sparse
+    template<typename OtherDerived> friend
+    const SparseDiagonalProduct<OtherDerived,Derived>
+    operator*(const DiagonalBase<OtherDerived> &lhs, const SparseMatrixBase& rhs)
+    { return SparseDiagonalProduct<OtherDerived,Derived>(lhs.derived(), rhs.derived()); }
+
+    /** dense * sparse (return a dense object unless it is an outer product) */
+    template<typename OtherDerived> friend
+    const typename DenseSparseProductReturnType<OtherDerived,Derived>::Type
+    operator*(const MatrixBase<OtherDerived>& lhs, const Derived& rhs)
+    { return typename DenseSparseProductReturnType<OtherDerived,Derived>::Type(lhs.derived(),rhs); }
+
+    /** sparse * dense (returns a dense object unless it is an outer product) */
+    template<typename OtherDerived>
+    const typename SparseDenseProductReturnType<Derived,OtherDerived>::Type
+    operator*(const MatrixBase<OtherDerived> &other) const
+    { return typename SparseDenseProductReturnType<Derived,OtherDerived>::Type(derived(), other.derived()); }
+    
+     /** \returns an expression of P H P^-1 where H is the matrix represented by \c *this */
+    SparseSymmetricPermutationProduct<Derived,Upper|Lower> twistedBy(const PermutationMatrix<Dynamic,Dynamic,Index>& perm) const
+    {
+      return SparseSymmetricPermutationProduct<Derived,Upper|Lower>(derived(), perm);
+    }
+
+    template<typename OtherDerived>
+    Derived& operator*=(const SparseMatrixBase<OtherDerived>& other);
+
+    #ifdef EIGEN2_SUPPORT
+    // deprecated
+    template<typename OtherDerived>
+    typename internal::plain_matrix_type_column_major<OtherDerived>::type
+    solveTriangular(const MatrixBase<OtherDerived>& other) const;
+
+    // deprecated
+    template<typename OtherDerived>
+    void solveTriangularInPlace(MatrixBase<OtherDerived>& other) const;
+    #endif // EIGEN2_SUPPORT
+
+    template<int Mode>
+    inline const SparseTriangularView<Derived, Mode> triangularView() const;
+
+    template<unsigned int UpLo> inline const SparseSelfAdjointView<Derived, UpLo> selfadjointView() const;
+    template<unsigned int UpLo> inline SparseSelfAdjointView<Derived, UpLo> selfadjointView();
+
+    template<typename OtherDerived> Scalar dot(const MatrixBase<OtherDerived>& other) const;
+    template<typename OtherDerived> Scalar dot(const SparseMatrixBase<OtherDerived>& other) const;
+    RealScalar squaredNorm() const;
+    RealScalar norm()  const;
+    RealScalar blueNorm() const;
+
+    Transpose<Derived> transpose() { return derived(); }
+    const Transpose<const Derived> transpose() const { return derived(); }
+    const AdjointReturnType adjoint() const { return transpose(); }
+
+    // inner-vector
+    typedef Block<Derived,IsRowMajor?1:Dynamic,IsRowMajor?Dynamic:1,true>       InnerVectorReturnType;
+    typedef Block<const Derived,IsRowMajor?1:Dynamic,IsRowMajor?Dynamic:1,true> ConstInnerVectorReturnType;
+    InnerVectorReturnType innerVector(Index outer);
+    const ConstInnerVectorReturnType innerVector(Index outer) const;
+
+    // set of inner-vectors
+    typedef Block<Derived,Dynamic,Dynamic,true> InnerVectorsReturnType;
+    typedef Block<const Derived,Dynamic,Dynamic,true> ConstInnerVectorsReturnType;
+    InnerVectorsReturnType innerVectors(Index outerStart, Index outerSize);
+    const ConstInnerVectorsReturnType innerVectors(Index outerStart, Index outerSize) const;
+
+    /** \internal use operator= */
+    template<typename DenseDerived>
+    void evalTo(MatrixBase<DenseDerived>& dst) const
+    {
+      dst.setZero();
+      for (Index j=0; j<outerSize(); ++j)
+        for (typename Derived::InnerIterator i(derived(),j); i; ++i)
+          dst.coeffRef(i.row(),i.col()) = i.value();
+    }
+
+    Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime> toDense() const
+    {
+      return derived();
+    }
+
+    template<typename OtherDerived>
+    bool isApprox(const SparseMatrixBase<OtherDerived>& other,
+                  const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const
+    { return toDense().isApprox(other.toDense(),prec); }
+
+    template<typename OtherDerived>
+    bool isApprox(const MatrixBase<OtherDerived>& other,
+                  const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const
+    { return toDense().isApprox(other,prec); }
+
+    /** \returns the matrix or vector obtained by evaluating this expression.
+      *
+      * Notice that in the case of a plain matrix or vector (not an expression) this function just returns
+      * a const reference, in order to avoid a useless copy.
+      */
+    inline const typename internal::eval<Derived>::type eval() const
+    { return typename internal::eval<Derived>::type(derived()); }
+
+    Scalar sum() const;
+
+  protected:
+
+    bool m_isRValue;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEMATRIXBASE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseVector.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseVector.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseVector.h	(revision 2476)
@@ -0,0 +1,448 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEVECTOR_H
+#define EIGEN_SPARSEVECTOR_H
+
+namespace Eigen { 
+
+/** \ingroup SparseCore_Module
+  * \class SparseVector
+  *
+  * \brief a sparse vector class
+  *
+  * \tparam _Scalar the scalar type, i.e. the type of the coefficients
+  *
+  * See http://www.netlib.org/linalg/html_templates/node91.html for details on the storage scheme.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_SPARSEVECTOR_PLUGIN.
+  */
+
+namespace internal {
+template<typename _Scalar, int _Options, typename _Index>
+struct traits<SparseVector<_Scalar, _Options, _Index> >
+{
+  typedef _Scalar Scalar;
+  typedef _Index Index;
+  typedef Sparse StorageKind;
+  typedef MatrixXpr XprKind;
+  enum {
+    IsColVector = (_Options & RowMajorBit) ? 0 : 1,
+
+    RowsAtCompileTime = IsColVector ? Dynamic : 1,
+    ColsAtCompileTime = IsColVector ? 1 : Dynamic,
+    MaxRowsAtCompileTime = RowsAtCompileTime,
+    MaxColsAtCompileTime = ColsAtCompileTime,
+    Flags = _Options | NestByRefBit | LvalueBit | (IsColVector ? 0 : RowMajorBit),
+    CoeffReadCost = NumTraits<Scalar>::ReadCost,
+    SupportedAccessPatterns = InnerRandomAccessPattern
+  };
+};
+
+// Sparse-Vector-Assignment kinds:
+enum {
+  SVA_RuntimeSwitch,
+  SVA_Inner,
+  SVA_Outer
+};
+
+template< typename Dest, typename Src,
+          int AssignmentKind = !bool(Src::IsVectorAtCompileTime) ? SVA_RuntimeSwitch
+                             : Src::InnerSizeAtCompileTime==1 ? SVA_Outer
+                             : SVA_Inner>
+struct sparse_vector_assign_selector;
+
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+class SparseVector
+  : public SparseMatrixBase<SparseVector<_Scalar, _Options, _Index> >
+{
+    typedef SparseMatrixBase<SparseVector> SparseBase;
+    
+  public:
+    EIGEN_SPARSE_PUBLIC_INTERFACE(SparseVector)
+    EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseVector, +=)
+    EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseVector, -=)
+    
+    typedef internal::CompressedStorage<Scalar,Index> Storage;
+    enum { IsColVector = internal::traits<SparseVector>::IsColVector };
+    
+    enum {
+      Options = _Options
+    };
+    
+    EIGEN_STRONG_INLINE Index rows() const { return IsColVector ? m_size : 1; }
+    EIGEN_STRONG_INLINE Index cols() const { return IsColVector ? 1 : m_size; }
+    EIGEN_STRONG_INLINE Index innerSize() const { return m_size; }
+    EIGEN_STRONG_INLINE Index outerSize() const { return 1; }
+
+    EIGEN_STRONG_INLINE const Scalar* valuePtr() const { return m_data.valuePtr(); }
+    EIGEN_STRONG_INLINE Scalar* valuePtr() { return m_data.valuePtr(); }
+
+    EIGEN_STRONG_INLINE const Index* innerIndexPtr() const { return m_data.indexPtr(); }
+    EIGEN_STRONG_INLINE Index* innerIndexPtr() { return m_data.indexPtr(); }
+
+    /** \internal */
+    inline Storage& data() { return m_data; }
+    /** \internal */
+    inline const Storage& data() const { return m_data; }
+
+    inline Scalar coeff(Index row, Index col) const
+    {
+      eigen_assert(IsColVector ? (col==0 && row>=0 && row<m_size) : (row==0 && col>=0 && col<m_size));
+      return coeff(IsColVector ? row : col);
+    }
+    inline Scalar coeff(Index i) const
+    {
+      eigen_assert(i>=0 && i<m_size);
+      return m_data.at(i);
+    }
+
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      eigen_assert(IsColVector ? (col==0 && row>=0 && row<m_size) : (row==0 && col>=0 && col<m_size));
+      return coeff(IsColVector ? row : col);
+    }
+
+    /** \returns a reference to the coefficient value at given index \a i
+      * This operation involes a log(rho*size) binary search. If the coefficient does not
+      * exist yet, then a sorted insertion into a sequential buffer is performed.
+      *
+      * This insertion might be very costly if the number of nonzeros above \a i is large.
+      */
+    inline Scalar& coeffRef(Index i)
+    {
+      eigen_assert(i>=0 && i<m_size);
+      return m_data.atWithInsertion(i);
+    }
+
+  public:
+
+    class InnerIterator;
+    class ReverseInnerIterator;
+
+    inline void setZero() { m_data.clear(); }
+
+    /** \returns the number of non zero coefficients */
+    inline Index nonZeros() const  { return static_cast<Index>(m_data.size()); }
+
+    inline void startVec(Index outer)
+    {
+      EIGEN_UNUSED_VARIABLE(outer);
+      eigen_assert(outer==0);
+    }
+
+    inline Scalar& insertBackByOuterInner(Index outer, Index inner)
+    {
+      EIGEN_UNUSED_VARIABLE(outer);
+      eigen_assert(outer==0);
+      return insertBack(inner);
+    }
+    inline Scalar& insertBack(Index i)
+    {
+      m_data.append(0, i);
+      return m_data.value(m_data.size()-1);
+    }
+
+    inline Scalar& insert(Index row, Index col)
+    {
+      eigen_assert(IsColVector ? (col==0 && row>=0 && row<m_size) : (row==0 && col>=0 && col<m_size));
+      
+      Index inner = IsColVector ? row : col;
+      Index outer = IsColVector ? col : row;
+      EIGEN_ONLY_USED_FOR_DEBUG(outer);
+      eigen_assert(outer==0);
+      return insert(inner);
+    }
+    Scalar& insert(Index i)
+    {
+      eigen_assert(i>=0 && i<m_size);
+      
+      Index startId = 0;
+      Index p = Index(m_data.size()) - 1;
+      // TODO smart realloc
+      m_data.resize(p+2,1);
+
+      while ( (p >= startId) && (m_data.index(p) > i) )
+      {
+        m_data.index(p+1) = m_data.index(p);
+        m_data.value(p+1) = m_data.value(p);
+        --p;
+      }
+      m_data.index(p+1) = i;
+      m_data.value(p+1) = 0;
+      return m_data.value(p+1);
+    }
+
+    /**
+      */
+    inline void reserve(Index reserveSize) { m_data.reserve(reserveSize); }
+
+
+    inline void finalize() {}
+
+    void prune(const Scalar& reference, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision())
+    {
+      m_data.prune(reference,epsilon);
+    }
+
+    void resize(Index rows, Index cols)
+    {
+      eigen_assert(rows==1 || cols==1);
+      resize(IsColVector ? rows : cols);
+    }
+
+    void resize(Index newSize)
+    {
+      m_size = newSize;
+      m_data.clear();
+    }
+
+    void resizeNonZeros(Index size) { m_data.resize(size); }
+
+    inline SparseVector() : m_size(0) { check_template_parameters(); resize(0); }
+
+    inline SparseVector(Index size) : m_size(0) { check_template_parameters(); resize(size); }
+
+    inline SparseVector(Index rows, Index cols) : m_size(0) { check_template_parameters(); resize(rows,cols); }
+
+    template<typename OtherDerived>
+    inline SparseVector(const SparseMatrixBase<OtherDerived>& other)
+      : m_size(0)
+    {
+      check_template_parameters();
+      *this = other.derived();
+    }
+
+    inline SparseVector(const SparseVector& other)
+      : SparseBase(other), m_size(0)
+    {
+      check_template_parameters();
+      *this = other.derived();
+    }
+
+    /** Swaps the values of \c *this and \a other.
+      * Overloaded for performance: this version performs a \em shallow swap by swaping pointers and attributes only.
+      * \sa SparseMatrixBase::swap()
+      */
+    inline void swap(SparseVector& other)
+    {
+      std::swap(m_size, other.m_size);
+      m_data.swap(other.m_data);
+    }
+
+    inline SparseVector& operator=(const SparseVector& other)
+    {
+      if (other.isRValue())
+      {
+        swap(other.const_cast_derived());
+      }
+      else
+      {
+        resize(other.size());
+        m_data = other.m_data;
+      }
+      return *this;
+    }
+
+    template<typename OtherDerived>
+    inline SparseVector& operator=(const SparseMatrixBase<OtherDerived>& other)
+    {
+      SparseVector tmp(other.size());
+      internal::sparse_vector_assign_selector<SparseVector,OtherDerived>::run(tmp,other.derived());
+      this->swap(tmp);
+      return *this;
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename Lhs, typename Rhs>
+    inline SparseVector& operator=(const SparseSparseProduct<Lhs,Rhs>& product)
+    {
+      return Base::operator=(product);
+    }
+    #endif
+
+    friend std::ostream & operator << (std::ostream & s, const SparseVector& m)
+    {
+      for (Index i=0; i<m.nonZeros(); ++i)
+        s << "(" << m.m_data.value(i) << "," << m.m_data.index(i) << ") ";
+      s << std::endl;
+      return s;
+    }
+
+    /** Destructor */
+    inline ~SparseVector() {}
+
+    /** Overloaded for performance */
+    Scalar sum() const;
+
+  public:
+
+    /** \internal \deprecated use setZero() and reserve() */
+    EIGEN_DEPRECATED void startFill(Index reserve)
+    {
+      setZero();
+      m_data.reserve(reserve);
+    }
+
+    /** \internal \deprecated use insertBack(Index,Index) */
+    EIGEN_DEPRECATED Scalar& fill(Index r, Index c)
+    {
+      eigen_assert(r==0 || c==0);
+      return fill(IsColVector ? r : c);
+    }
+
+    /** \internal \deprecated use insertBack(Index) */
+    EIGEN_DEPRECATED Scalar& fill(Index i)
+    {
+      m_data.append(0, i);
+      return m_data.value(m_data.size()-1);
+    }
+
+    /** \internal \deprecated use insert(Index,Index) */
+    EIGEN_DEPRECATED Scalar& fillrand(Index r, Index c)
+    {
+      eigen_assert(r==0 || c==0);
+      return fillrand(IsColVector ? r : c);
+    }
+
+    /** \internal \deprecated use insert(Index) */
+    EIGEN_DEPRECATED Scalar& fillrand(Index i)
+    {
+      return insert(i);
+    }
+
+    /** \internal \deprecated use finalize() */
+    EIGEN_DEPRECATED void endFill() {}
+    
+    // These two functions were here in the 3.1 release, so let's keep them in case some code rely on them.
+    /** \internal \deprecated use data() */
+    EIGEN_DEPRECATED Storage& _data() { return m_data; }
+    /** \internal \deprecated use data() */
+    EIGEN_DEPRECATED const Storage& _data() const { return m_data; }
+    
+#   ifdef EIGEN_SPARSEVECTOR_PLUGIN
+#     include EIGEN_SPARSEVECTOR_PLUGIN
+#   endif
+
+protected:
+  
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT(NumTraits<Index>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE);
+      EIGEN_STATIC_ASSERT((_Options&(ColMajor|RowMajor))==Options,INVALID_MATRIX_TEMPLATE_PARAMETERS);
+    }
+    
+    Storage m_data;
+    Index m_size;
+};
+
+template<typename Scalar, int _Options, typename _Index>
+class SparseVector<Scalar,_Options,_Index>::InnerIterator
+{
+  public:
+    InnerIterator(const SparseVector& vec, Index outer=0)
+      : m_data(vec.m_data), m_id(0), m_end(static_cast<Index>(m_data.size()))
+    {
+      EIGEN_UNUSED_VARIABLE(outer);
+      eigen_assert(outer==0);
+    }
+
+    InnerIterator(const internal::CompressedStorage<Scalar,Index>& data)
+      : m_data(data), m_id(0), m_end(static_cast<Index>(m_data.size()))
+    {}
+
+    inline InnerIterator& operator++() { m_id++; return *this; }
+
+    inline Scalar value() const { return m_data.value(m_id); }
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_data.value(m_id)); }
+
+    inline Index index() const { return m_data.index(m_id); }
+    inline Index row() const { return IsColVector ? index() : 0; }
+    inline Index col() const { return IsColVector ? 0 : index(); }
+
+    inline operator bool() const { return (m_id < m_end); }
+
+  protected:
+    const internal::CompressedStorage<Scalar,Index>& m_data;
+    Index m_id;
+    const Index m_end;
+};
+
+template<typename Scalar, int _Options, typename _Index>
+class SparseVector<Scalar,_Options,_Index>::ReverseInnerIterator
+{
+  public:
+    ReverseInnerIterator(const SparseVector& vec, Index outer=0)
+      : m_data(vec.m_data), m_id(static_cast<Index>(m_data.size())), m_start(0)
+    {
+      EIGEN_UNUSED_VARIABLE(outer);
+      eigen_assert(outer==0);
+    }
+
+    ReverseInnerIterator(const internal::CompressedStorage<Scalar,Index>& data)
+      : m_data(data), m_id(static_cast<Index>(m_data.size())), m_start(0)
+    {}
+
+    inline ReverseInnerIterator& operator--() { m_id--; return *this; }
+
+    inline Scalar value() const { return m_data.value(m_id-1); }
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_data.value(m_id-1)); }
+
+    inline Index index() const { return m_data.index(m_id-1); }
+    inline Index row() const { return IsColVector ? index() : 0; }
+    inline Index col() const { return IsColVector ? 0 : index(); }
+
+    inline operator bool() const { return (m_id > m_start); }
+
+  protected:
+    const internal::CompressedStorage<Scalar,Index>& m_data;
+    Index m_id;
+    const Index m_start;
+};
+
+namespace internal {
+
+template< typename Dest, typename Src>
+struct sparse_vector_assign_selector<Dest,Src,SVA_Inner> {
+  static void run(Dest& dst, const Src& src) {
+    eigen_internal_assert(src.innerSize()==src.size());
+    for(typename Src::InnerIterator it(src, 0); it; ++it)
+      dst.insert(it.index()) = it.value();
+  }
+};
+
+template< typename Dest, typename Src>
+struct sparse_vector_assign_selector<Dest,Src,SVA_Outer> {
+  static void run(Dest& dst, const Src& src) {
+    eigen_internal_assert(src.outerSize()==src.size());
+    for(typename Dest::Index i=0; i<src.size(); ++i)
+    {
+      typename Src::InnerIterator it(src, i);
+      if(it)
+        dst.insert(i) = it.value();
+    }
+  }
+};
+
+template< typename Dest, typename Src>
+struct sparse_vector_assign_selector<Dest,Src,SVA_RuntimeSwitch> {
+  static void run(Dest& dst, const Src& src) {
+    if(src.outerSize()==1)  sparse_vector_assign_selector<Dest,Src,SVA_Inner>::run(dst, src);
+    else                    sparse_vector_assign_selector<Dest,Src,SVA_Outer>::run(dst, src);
+  }
+};
+
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEVECTOR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseColEtree.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseColEtree.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseColEtree.h	(revision 2476)
@@ -0,0 +1,206 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+/* 
+ 
+ * NOTE: This file is the modified version of sp_coletree.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 3.1) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * August 1, 2008
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSE_COLETREE_H
+#define SPARSE_COLETREE_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** Find the root of the tree/set containing the vertex i : Use Path halving */ 
+template<typename Index, typename IndexVector>
+Index etree_find (Index i, IndexVector& pp)
+{
+  Index p = pp(i); // Parent 
+  Index gp = pp(p); // Grand parent 
+  while (gp != p) 
+  {
+    pp(i) = gp; // Parent pointer on find path is changed to former grand parent
+    i = gp; 
+    p = pp(i);
+    gp = pp(p);
+  }
+  return p; 
+}
+
+/** Compute the column elimination tree of a sparse matrix
+  * \param mat The matrix in column-major format. 
+  * \param parent The elimination tree
+  * \param firstRowElt The column index of the first element in each row
+  * \param perm The permutation to apply to the column of \b mat
+  */
+template <typename MatrixType, typename IndexVector>
+int coletree(const MatrixType& mat, IndexVector& parent, IndexVector& firstRowElt, typename MatrixType::Index *perm=0)
+{
+  typedef typename MatrixType::Index Index;
+  Index nc = mat.cols(); // Number of columns 
+  Index m = mat.rows();
+  Index diagSize = (std::min)(nc,m);
+  IndexVector root(nc); // root of subtree of etree 
+  root.setZero();
+  IndexVector pp(nc); // disjoint sets 
+  pp.setZero(); // Initialize disjoint sets 
+  parent.resize(mat.cols());
+  //Compute first nonzero column in each row 
+  Index row,col; 
+  firstRowElt.resize(m);
+  firstRowElt.setConstant(nc);
+  firstRowElt.segment(0, diagSize).setLinSpaced(diagSize, 0, diagSize-1);
+  bool found_diag;
+  for (col = 0; col < nc; col++)
+  {
+    Index pcol = col;
+    if(perm) pcol  = perm[col];
+    for (typename MatrixType::InnerIterator it(mat, pcol); it; ++it)
+    { 
+      row = it.row();
+      firstRowElt(row) = (std::min)(firstRowElt(row), col);
+    }
+  }
+  /* Compute etree by Liu's algorithm for symmetric matrices,
+          except use (firstRowElt[r],c) in place of an edge (r,c) of A.
+    Thus each row clique in A'*A is replaced by a star
+    centered at its first vertex, which has the same fill. */
+  Index rset, cset, rroot; 
+  for (col = 0; col < nc; col++) 
+  {
+    found_diag = col>=m;
+    pp(col) = col; 
+    cset = col; 
+    root(cset) = col; 
+    parent(col) = nc; 
+    /* The diagonal element is treated here even if it does not exist in the matrix
+     * hence the loop is executed once more */ 
+    Index pcol = col;
+    if(perm) pcol  = perm[col];
+    for (typename MatrixType::InnerIterator it(mat, pcol); it||!found_diag; ++it)
+    { //  A sequence of interleaved find and union is performed 
+      Index i = col;
+      if(it) i = it.index();
+      if (i == col) found_diag = true;
+      
+      row = firstRowElt(i);
+      if (row >= col) continue; 
+      rset = internal::etree_find(row, pp); // Find the name of the set containing row
+      rroot = root(rset);
+      if (rroot != col) 
+      {
+        parent(rroot) = col; 
+        pp(cset) = rset; 
+        cset = rset; 
+        root(cset) = col; 
+      }
+    }
+  }
+  return 0;  
+}
+
+/** 
+  * Depth-first search from vertex n.  No recursion.
+  * This routine was contributed by Cédric Doucet, CEDRAT Group, Meylan, France.
+*/
+template <typename Index, typename IndexVector>
+void nr_etdfs (Index n, IndexVector& parent, IndexVector& first_kid, IndexVector& next_kid, IndexVector& post, Index postnum)
+{
+  Index current = n, first, next;
+  while (postnum != n) 
+  {
+    // No kid for the current node
+    first = first_kid(current);
+    
+    // no kid for the current node
+    if (first == -1) 
+    {
+      // Numbering this node because it has no kid 
+      post(current) = postnum++;
+      
+      // looking for the next kid 
+      next = next_kid(current); 
+      while (next == -1) 
+      {
+        // No more kids : back to the parent node
+        current = parent(current); 
+        // numbering the parent node 
+        post(current) = postnum++;
+        
+        // Get the next kid 
+        next = next_kid(current); 
+      }
+      // stopping criterion 
+      if (postnum == n+1) return; 
+      
+      // Updating current node 
+      current = next; 
+    }
+    else 
+    {
+      current = first; 
+    }
+  }
+}
+
+
+/**
+  * \brief Post order a tree 
+  * \param n the number of nodes
+  * \param parent Input tree
+  * \param post postordered tree
+  */
+template <typename Index, typename IndexVector>
+void treePostorder(Index n, IndexVector& parent, IndexVector& post)
+{
+  IndexVector first_kid, next_kid; // Linked list of children 
+  Index postnum; 
+  // Allocate storage for working arrays and results 
+  first_kid.resize(n+1); 
+  next_kid.setZero(n+1);
+  post.setZero(n+1);
+  
+  // Set up structure describing children
+  Index v, dad; 
+  first_kid.setConstant(-1); 
+  for (v = n-1; v >= 0; v--) 
+  {
+    dad = parent(v);
+    next_kid(v) = first_kid(dad); 
+    first_kid(dad) = v; 
+  }
+  
+  // Depth-first search from dummy root vertex #n
+  postnum = 0; 
+  internal::nr_etdfs(n, parent, first_kid, next_kid, post, postnum);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // SPARSE_COLETREE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseTriangularView.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseTriangularView.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseTriangularView.h	(revision 2476)
@@ -0,0 +1,179 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_TRIANGULARVIEW_H
+#define EIGEN_SPARSE_TRIANGULARVIEW_H
+
+namespace Eigen { 
+
+namespace internal {
+  
+template<typename MatrixType, int Mode>
+struct traits<SparseTriangularView<MatrixType,Mode> >
+: public traits<MatrixType>
+{};
+
+} // namespace internal
+
+template<typename MatrixType, int Mode> class SparseTriangularView
+  : public SparseMatrixBase<SparseTriangularView<MatrixType,Mode> >
+{
+    enum { SkipFirst = ((Mode&Lower) && !(MatrixType::Flags&RowMajorBit))
+                    || ((Mode&Upper) &&  (MatrixType::Flags&RowMajorBit)),
+           SkipLast = !SkipFirst,
+           SkipDiag = (Mode&ZeroDiag) ? 1 : 0,
+           HasUnitDiag = (Mode&UnitDiag) ? 1 : 0
+    };
+
+  public:
+    
+    EIGEN_SPARSE_PUBLIC_INTERFACE(SparseTriangularView)
+
+    class InnerIterator;
+    class ReverseInnerIterator;
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+
+    typedef typename MatrixType::Nested MatrixTypeNested;
+    typedef typename internal::remove_reference<MatrixTypeNested>::type MatrixTypeNestedNonRef;
+    typedef typename internal::remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
+
+    inline SparseTriangularView(const MatrixType& matrix) : m_matrix(matrix) {}
+
+    /** \internal */
+    inline const MatrixTypeNestedCleaned& nestedExpression() const { return m_matrix; }
+
+    template<typename OtherDerived>
+    typename internal::plain_matrix_type_column_major<OtherDerived>::type
+    solve(const MatrixBase<OtherDerived>& other) const;
+
+    template<typename OtherDerived> void solveInPlace(MatrixBase<OtherDerived>& other) const;
+    template<typename OtherDerived> void solveInPlace(SparseMatrixBase<OtherDerived>& other) const;
+
+  protected:
+    MatrixTypeNested m_matrix;
+};
+
+template<typename MatrixType, int Mode>
+class SparseTriangularView<MatrixType,Mode>::InnerIterator : public MatrixTypeNestedCleaned::InnerIterator
+{
+    typedef typename MatrixTypeNestedCleaned::InnerIterator Base;
+    typedef typename SparseTriangularView::Index Index;
+  public:
+
+    EIGEN_STRONG_INLINE InnerIterator(const SparseTriangularView& view, Index outer)
+      : Base(view.nestedExpression(), outer), m_returnOne(false)
+    {
+      if(SkipFirst)
+      {
+        while((*this) && ((HasUnitDiag||SkipDiag)  ? this->index()<=outer : this->index()<outer))
+          Base::operator++();
+        if(HasUnitDiag)
+          m_returnOne = true;
+      }
+      else if(HasUnitDiag && ((!Base::operator bool()) || Base::index()>=Base::outer()))
+      {
+        if((!SkipFirst) && Base::operator bool())
+          Base::operator++();
+        m_returnOne = true;
+      }
+    }
+
+    EIGEN_STRONG_INLINE InnerIterator& operator++()
+    {
+      if(HasUnitDiag && m_returnOne)
+        m_returnOne = false;
+      else
+      {
+        Base::operator++();
+        if(HasUnitDiag && (!SkipFirst) && ((!Base::operator bool()) || Base::index()>=Base::outer()))
+        {
+          if((!SkipFirst) && Base::operator bool())
+            Base::operator++();
+          m_returnOne = true;
+        }
+      }
+      return *this;
+    }
+
+    inline Index row() const { return (MatrixType::Flags&RowMajorBit ? Base::outer() : this->index()); }
+    inline Index col() const { return (MatrixType::Flags&RowMajorBit ? this->index() : Base::outer()); }
+    inline Index index() const
+    {
+      if(HasUnitDiag && m_returnOne)  return Base::outer();
+      else                            return Base::index();
+    }
+    inline Scalar value() const
+    {
+      if(HasUnitDiag && m_returnOne)  return Scalar(1);
+      else                            return Base::value();
+    }
+
+    EIGEN_STRONG_INLINE operator bool() const
+    {
+      if(HasUnitDiag && m_returnOne)
+        return true;
+      if(SkipFirst) return  Base::operator bool();
+      else
+      {
+        if (SkipDiag) return (Base::operator bool() && this->index() < this->outer());
+        else return (Base::operator bool() && this->index() <= this->outer());
+      }
+    }
+  protected:
+    bool m_returnOne;
+};
+
+template<typename MatrixType, int Mode>
+class SparseTriangularView<MatrixType,Mode>::ReverseInnerIterator : public MatrixTypeNestedCleaned::ReverseInnerIterator
+{
+    typedef typename MatrixTypeNestedCleaned::ReverseInnerIterator Base;
+    typedef typename SparseTriangularView::Index Index;
+  public:
+
+    EIGEN_STRONG_INLINE ReverseInnerIterator(const SparseTriangularView& view, Index outer)
+      : Base(view.nestedExpression(), outer)
+    {
+      eigen_assert((!HasUnitDiag) && "ReverseInnerIterator does not support yet triangular views with a unit diagonal");
+      if(SkipLast) {
+        while((*this) && (SkipDiag ? this->index()>=outer : this->index()>outer))
+          --(*this);
+      }
+    }
+
+    EIGEN_STRONG_INLINE ReverseInnerIterator& operator--()
+    { Base::operator--(); return *this; }
+
+    inline Index row() const { return Base::row(); }
+    inline Index col() const { return Base::col(); }
+
+    EIGEN_STRONG_INLINE operator bool() const
+    {
+      if (SkipLast) return Base::operator bool() ;
+      else
+      {
+        if(SkipDiag) return (Base::operator bool() && this->index() > this->outer());
+        else return (Base::operator bool() && this->index() >= this->outer());
+      }
+    }
+};
+
+template<typename Derived>
+template<int Mode>
+inline const SparseTriangularView<Derived, Mode>
+SparseMatrixBase<Derived>::triangularView() const
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_TRIANGULARVIEW_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCore/SparseMatrix.h	(revision 2476)
@@ -0,0 +1,1262 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSEMATRIX_H
+#define EIGEN_SPARSEMATRIX_H
+
+namespace Eigen { 
+
+/** \ingroup SparseCore_Module
+  *
+  * \class SparseMatrix
+  *
+  * \brief A versatible sparse matrix representation
+  *
+  * This class implements a more versatile variants of the common \em compressed row/column storage format.
+  * Each colmun's (resp. row) non zeros are stored as a pair of value with associated row (resp. colmiun) index.
+  * All the non zeros are stored in a single large buffer. Unlike the \em compressed format, there might be extra
+  * space inbetween the nonzeros of two successive colmuns (resp. rows) such that insertion of new non-zero
+  * can be done with limited memory reallocation and copies.
+  *
+  * A call to the function makeCompressed() turns the matrix into the standard \em compressed format
+  * compatible with many library.
+  *
+  * More details on this storage sceheme are given in the \ref TutorialSparse "manual pages".
+  *
+  * \tparam _Scalar the scalar type, i.e. the type of the coefficients
+  * \tparam _Options Union of bit flags controlling the storage scheme. Currently the only possibility
+  *                 is ColMajor or RowMajor. The default is 0 which means column-major.
+  * \tparam _Index the type of the indices. It has to be a \b signed type (e.g., short, int, std::ptrdiff_t). Default is \c int.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_SPARSEMATRIX_PLUGIN.
+  */
+
+namespace internal {
+template<typename _Scalar, int _Options, typename _Index>
+struct traits<SparseMatrix<_Scalar, _Options, _Index> >
+{
+  typedef _Scalar Scalar;
+  typedef _Index Index;
+  typedef Sparse StorageKind;
+  typedef MatrixXpr XprKind;
+  enum {
+    RowsAtCompileTime = Dynamic,
+    ColsAtCompileTime = Dynamic,
+    MaxRowsAtCompileTime = Dynamic,
+    MaxColsAtCompileTime = Dynamic,
+    Flags = _Options | NestByRefBit | LvalueBit,
+    CoeffReadCost = NumTraits<Scalar>::ReadCost,
+    SupportedAccessPatterns = InnerRandomAccessPattern
+  };
+};
+
+template<typename _Scalar, int _Options, typename _Index, int DiagIndex>
+struct traits<Diagonal<const SparseMatrix<_Scalar, _Options, _Index>, DiagIndex> >
+{
+  typedef SparseMatrix<_Scalar, _Options, _Index> MatrixType;
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+
+  typedef _Scalar Scalar;
+  typedef Dense StorageKind;
+  typedef _Index Index;
+  typedef MatrixXpr XprKind;
+
+  enum {
+    RowsAtCompileTime = Dynamic,
+    ColsAtCompileTime = 1,
+    MaxRowsAtCompileTime = Dynamic,
+    MaxColsAtCompileTime = 1,
+    Flags = 0,
+    CoeffReadCost = _MatrixTypeNested::CoeffReadCost*10
+  };
+};
+
+} // end namespace internal
+
+template<typename _Scalar, int _Options, typename _Index>
+class SparseMatrix
+  : public SparseMatrixBase<SparseMatrix<_Scalar, _Options, _Index> >
+{
+  public:
+    EIGEN_SPARSE_PUBLIC_INTERFACE(SparseMatrix)
+    EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseMatrix, +=)
+    EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseMatrix, -=)
+
+    typedef MappedSparseMatrix<Scalar,Flags> Map;
+    using Base::IsRowMajor;
+    typedef internal::CompressedStorage<Scalar,Index> Storage;
+    enum {
+      Options = _Options
+    };
+
+  protected:
+
+    typedef SparseMatrix<Scalar,(Flags&~RowMajorBit)|(IsRowMajor?RowMajorBit:0)> TransposedSparseMatrix;
+
+    Index m_outerSize;
+    Index m_innerSize;
+    Index* m_outerIndex;
+    Index* m_innerNonZeros;     // optional, if null then the data is compressed
+    Storage m_data;
+    
+    Eigen::Map<Matrix<Index,Dynamic,1> > innerNonZeros() { return Eigen::Map<Matrix<Index,Dynamic,1> >(m_innerNonZeros, m_innerNonZeros?m_outerSize:0); }
+    const  Eigen::Map<const Matrix<Index,Dynamic,1> > innerNonZeros() const { return Eigen::Map<const Matrix<Index,Dynamic,1> >(m_innerNonZeros, m_innerNonZeros?m_outerSize:0); }
+
+  public:
+    
+    /** \returns whether \c *this is in compressed form. */
+    inline bool isCompressed() const { return m_innerNonZeros==0; }
+
+    /** \returns the number of rows of the matrix */
+    inline Index rows() const { return IsRowMajor ? m_outerSize : m_innerSize; }
+    /** \returns the number of columns of the matrix */
+    inline Index cols() const { return IsRowMajor ? m_innerSize : m_outerSize; }
+
+    /** \returns the number of rows (resp. columns) of the matrix if the storage order column major (resp. row major) */
+    inline Index innerSize() const { return m_innerSize; }
+    /** \returns the number of columns (resp. rows) of the matrix if the storage order column major (resp. row major) */
+    inline Index outerSize() const { return m_outerSize; }
+    
+    /** \returns a const pointer to the array of values.
+      * This function is aimed at interoperability with other libraries.
+      * \sa innerIndexPtr(), outerIndexPtr() */
+    inline const Scalar* valuePtr() const { return m_data.valuePtr(); }
+    /** \returns a non-const pointer to the array of values.
+      * This function is aimed at interoperability with other libraries.
+      * \sa innerIndexPtr(), outerIndexPtr() */
+    inline Scalar* valuePtr() { return m_data.valuePtr(); }
+
+    /** \returns a const pointer to the array of inner indices.
+      * This function is aimed at interoperability with other libraries.
+      * \sa valuePtr(), outerIndexPtr() */
+    inline const Index* innerIndexPtr() const { return m_data.indexPtr(); }
+    /** \returns a non-const pointer to the array of inner indices.
+      * This function is aimed at interoperability with other libraries.
+      * \sa valuePtr(), outerIndexPtr() */
+    inline Index* innerIndexPtr() { return m_data.indexPtr(); }
+
+    /** \returns a const pointer to the array of the starting positions of the inner vectors.
+      * This function is aimed at interoperability with other libraries.
+      * \sa valuePtr(), innerIndexPtr() */
+    inline const Index* outerIndexPtr() const { return m_outerIndex; }
+    /** \returns a non-const pointer to the array of the starting positions of the inner vectors.
+      * This function is aimed at interoperability with other libraries.
+      * \sa valuePtr(), innerIndexPtr() */
+    inline Index* outerIndexPtr() { return m_outerIndex; }
+
+    /** \returns a const pointer to the array of the number of non zeros of the inner vectors.
+      * This function is aimed at interoperability with other libraries.
+      * \warning it returns the null pointer 0 in compressed mode */
+    inline const Index* innerNonZeroPtr() const { return m_innerNonZeros; }
+    /** \returns a non-const pointer to the array of the number of non zeros of the inner vectors.
+      * This function is aimed at interoperability with other libraries.
+      * \warning it returns the null pointer 0 in compressed mode */
+    inline Index* innerNonZeroPtr() { return m_innerNonZeros; }
+
+    /** \internal */
+    inline Storage& data() { return m_data; }
+    /** \internal */
+    inline const Storage& data() const { return m_data; }
+
+    /** \returns the value of the matrix at position \a i, \a j
+      * This function returns Scalar(0) if the element is an explicit \em zero */
+    inline Scalar coeff(Index row, Index col) const
+    {
+      eigen_assert(row>=0 && row<rows() && col>=0 && col<cols());
+      
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+      Index end = m_innerNonZeros ? m_outerIndex[outer] + m_innerNonZeros[outer] : m_outerIndex[outer+1];
+      return m_data.atInRange(m_outerIndex[outer], end, inner);
+    }
+
+    /** \returns a non-const reference to the value of the matrix at position \a i, \a j
+      *
+      * If the element does not exist then it is inserted via the insert(Index,Index) function
+      * which itself turns the matrix into a non compressed form if that was not the case.
+      *
+      * This is a O(log(nnz_j)) operation (binary search) plus the cost of insert(Index,Index)
+      * function if the element does not already exist.
+      */
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      eigen_assert(row>=0 && row<rows() && col>=0 && col<cols());
+      
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+
+      Index start = m_outerIndex[outer];
+      Index end = m_innerNonZeros ? m_outerIndex[outer] + m_innerNonZeros[outer] : m_outerIndex[outer+1];
+      eigen_assert(end>=start && "you probably called coeffRef on a non finalized matrix");
+      if(end<=start)
+        return insert(row,col);
+      const Index p = m_data.searchLowerIndex(start,end-1,inner);
+      if((p<end) && (m_data.index(p)==inner))
+        return m_data.value(p);
+      else
+        return insert(row,col);
+    }
+
+    /** \returns a reference to a novel non zero coefficient with coordinates \a row x \a col.
+      * The non zero coefficient must \b not already exist.
+      *
+      * If the matrix \c *this is in compressed mode, then \c *this is turned into uncompressed
+      * mode while reserving room for 2 non zeros per inner vector. It is strongly recommended to first
+      * call reserve(const SizesType &) to reserve a more appropriate number of elements per
+      * inner vector that better match your scenario.
+      *
+      * This function performs a sorted insertion in O(1) if the elements of each inner vector are
+      * inserted in increasing inner index order, and in O(nnz_j) for a random insertion.
+      *
+      */
+    Scalar& insert(Index row, Index col)
+    {
+      eigen_assert(row>=0 && row<rows() && col>=0 && col<cols());
+      
+      if(isCompressed())
+      {
+        reserve(Matrix<Index,Dynamic,1>::Constant(outerSize(), 2));
+      }
+      return insertUncompressed(row,col);
+    }
+
+  public:
+
+    class InnerIterator;
+    class ReverseInnerIterator;
+
+    /** Removes all non zeros but keep allocated memory */
+    inline void setZero()
+    {
+      m_data.clear();
+      memset(m_outerIndex, 0, (m_outerSize+1)*sizeof(Index));
+      if(m_innerNonZeros)
+        memset(m_innerNonZeros, 0, (m_outerSize)*sizeof(Index));
+    }
+
+    /** \returns the number of non zero coefficients */
+    inline Index nonZeros() const
+    {
+      if(m_innerNonZeros)
+        return innerNonZeros().sum();
+      return static_cast<Index>(m_data.size());
+    }
+
+    /** Preallocates \a reserveSize non zeros.
+      *
+      * Precondition: the matrix must be in compressed mode. */
+    inline void reserve(Index reserveSize)
+    {
+      eigen_assert(isCompressed() && "This function does not make sense in non compressed mode.");
+      m_data.reserve(reserveSize);
+    }
+    
+    #ifdef EIGEN_PARSED_BY_DOXYGEN
+    /** Preallocates \a reserveSize[\c j] non zeros for each column (resp. row) \c j.
+      *
+      * This function turns the matrix in non-compressed mode */
+    template<class SizesType>
+    inline void reserve(const SizesType& reserveSizes);
+    #else
+    template<class SizesType>
+    inline void reserve(const SizesType& reserveSizes, const typename SizesType::value_type& enableif = typename SizesType::value_type())
+    {
+      EIGEN_UNUSED_VARIABLE(enableif);
+      reserveInnerVectors(reserveSizes);
+    }
+    template<class SizesType>
+    inline void reserve(const SizesType& reserveSizes, const typename SizesType::Scalar& enableif =
+    #if (!defined(_MSC_VER)) || (_MSC_VER>=1500) // MSVC 2005 fails to compile with this typename
+        typename
+    #endif
+        SizesType::Scalar())
+    {
+      EIGEN_UNUSED_VARIABLE(enableif);
+      reserveInnerVectors(reserveSizes);
+    }
+    #endif // EIGEN_PARSED_BY_DOXYGEN
+  protected:
+    template<class SizesType>
+    inline void reserveInnerVectors(const SizesType& reserveSizes)
+    {
+      if(isCompressed())
+      {
+        std::size_t totalReserveSize = 0;
+        // turn the matrix into non-compressed mode
+        m_innerNonZeros = static_cast<Index*>(std::malloc(m_outerSize * sizeof(Index)));
+        if (!m_innerNonZeros) internal::throw_std_bad_alloc();
+        
+        // temporarily use m_innerSizes to hold the new starting points.
+        Index* newOuterIndex = m_innerNonZeros;
+        
+        Index count = 0;
+        for(Index j=0; j<m_outerSize; ++j)
+        {
+          newOuterIndex[j] = count;
+          count += reserveSizes[j] + (m_outerIndex[j+1]-m_outerIndex[j]);
+          totalReserveSize += reserveSizes[j];
+        }
+        m_data.reserve(totalReserveSize);
+        Index previousOuterIndex = m_outerIndex[m_outerSize];
+        for(Index j=m_outerSize-1; j>=0; --j)
+        {
+          Index innerNNZ = previousOuterIndex - m_outerIndex[j];
+          for(Index i=innerNNZ-1; i>=0; --i)
+          {
+            m_data.index(newOuterIndex[j]+i) = m_data.index(m_outerIndex[j]+i);
+            m_data.value(newOuterIndex[j]+i) = m_data.value(m_outerIndex[j]+i);
+          }
+          previousOuterIndex = m_outerIndex[j];
+          m_outerIndex[j] = newOuterIndex[j];
+          m_innerNonZeros[j] = innerNNZ;
+        }
+        m_outerIndex[m_outerSize] = m_outerIndex[m_outerSize-1] + m_innerNonZeros[m_outerSize-1] + reserveSizes[m_outerSize-1];
+        
+        m_data.resize(m_outerIndex[m_outerSize]);
+      }
+      else
+      {
+        Index* newOuterIndex = static_cast<Index*>(std::malloc((m_outerSize+1)*sizeof(Index)));
+        if (!newOuterIndex) internal::throw_std_bad_alloc();
+        
+        Index count = 0;
+        for(Index j=0; j<m_outerSize; ++j)
+        {
+          newOuterIndex[j] = count;
+          Index alreadyReserved = (m_outerIndex[j+1]-m_outerIndex[j]) - m_innerNonZeros[j];
+          Index toReserve = std::max<Index>(reserveSizes[j], alreadyReserved);
+          count += toReserve + m_innerNonZeros[j];
+        }
+        newOuterIndex[m_outerSize] = count;
+        
+        m_data.resize(count);
+        for(Index j=m_outerSize-1; j>=0; --j)
+        {
+          Index offset = newOuterIndex[j] - m_outerIndex[j];
+          if(offset>0)
+          {
+            Index innerNNZ = m_innerNonZeros[j];
+            for(Index i=innerNNZ-1; i>=0; --i)
+            {
+              m_data.index(newOuterIndex[j]+i) = m_data.index(m_outerIndex[j]+i);
+              m_data.value(newOuterIndex[j]+i) = m_data.value(m_outerIndex[j]+i);
+            }
+          }
+        }
+        
+        std::swap(m_outerIndex, newOuterIndex);
+        std::free(newOuterIndex);
+      }
+      
+    }
+  public:
+
+    //--- low level purely coherent filling ---
+
+    /** \internal
+      * \returns a reference to the non zero coefficient at position \a row, \a col assuming that:
+      * - the nonzero does not already exist
+      * - the new coefficient is the last one according to the storage order
+      *
+      * Before filling a given inner vector you must call the statVec(Index) function.
+      *
+      * After an insertion session, you should call the finalize() function.
+      *
+      * \sa insert, insertBackByOuterInner, startVec */
+    inline Scalar& insertBack(Index row, Index col)
+    {
+      return insertBackByOuterInner(IsRowMajor?row:col, IsRowMajor?col:row);
+    }
+
+    /** \internal
+      * \sa insertBack, startVec */
+    inline Scalar& insertBackByOuterInner(Index outer, Index inner)
+    {
+      eigen_assert(size_t(m_outerIndex[outer+1]) == m_data.size() && "Invalid ordered insertion (invalid outer index)");
+      eigen_assert( (m_outerIndex[outer+1]-m_outerIndex[outer]==0 || m_data.index(m_data.size()-1)<inner) && "Invalid ordered insertion (invalid inner index)");
+      Index p = m_outerIndex[outer+1];
+      ++m_outerIndex[outer+1];
+      m_data.append(0, inner);
+      return m_data.value(p);
+    }
+
+    /** \internal
+      * \warning use it only if you know what you are doing */
+    inline Scalar& insertBackByOuterInnerUnordered(Index outer, Index inner)
+    {
+      Index p = m_outerIndex[outer+1];
+      ++m_outerIndex[outer+1];
+      m_data.append(0, inner);
+      return m_data.value(p);
+    }
+
+    /** \internal
+      * \sa insertBack, insertBackByOuterInner */
+    inline void startVec(Index outer)
+    {
+      eigen_assert(m_outerIndex[outer]==Index(m_data.size()) && "You must call startVec for each inner vector sequentially");
+      eigen_assert(m_outerIndex[outer+1]==0 && "You must call startVec for each inner vector sequentially");
+      m_outerIndex[outer+1] = m_outerIndex[outer];
+    }
+
+    /** \internal
+      * Must be called after inserting a set of non zero entries using the low level compressed API.
+      */
+    inline void finalize()
+    {
+      if(isCompressed())
+      {
+        Index size = static_cast<Index>(m_data.size());
+        Index i = m_outerSize;
+        // find the last filled column
+        while (i>=0 && m_outerIndex[i]==0)
+          --i;
+        ++i;
+        while (i<=m_outerSize)
+        {
+          m_outerIndex[i] = size;
+          ++i;
+        }
+      }
+    }
+
+    //---
+
+    template<typename InputIterators>
+    void setFromTriplets(const InputIterators& begin, const InputIterators& end);
+
+    void sumupDuplicates();
+
+    //---
+    
+    /** \internal
+      * same as insert(Index,Index) except that the indices are given relative to the storage order */
+    Scalar& insertByOuterInner(Index j, Index i)
+    {
+      return insert(IsRowMajor ? j : i, IsRowMajor ? i : j);
+    }
+
+    /** Turns the matrix into the \em compressed format.
+      */
+    void makeCompressed()
+    {
+      if(isCompressed())
+        return;
+      
+      Index oldStart = m_outerIndex[1];
+      m_outerIndex[1] = m_innerNonZeros[0];
+      for(Index j=1; j<m_outerSize; ++j)
+      {
+        Index nextOldStart = m_outerIndex[j+1];
+        Index offset = oldStart - m_outerIndex[j];
+        if(offset>0)
+        {
+          for(Index k=0; k<m_innerNonZeros[j]; ++k)
+          {
+            m_data.index(m_outerIndex[j]+k) = m_data.index(oldStart+k);
+            m_data.value(m_outerIndex[j]+k) = m_data.value(oldStart+k);
+          }
+        }
+        m_outerIndex[j+1] = m_outerIndex[j] + m_innerNonZeros[j];
+        oldStart = nextOldStart;
+      }
+      std::free(m_innerNonZeros);
+      m_innerNonZeros = 0;
+      m_data.resize(m_outerIndex[m_outerSize]);
+      m_data.squeeze();
+    }
+
+    /** Turns the matrix into the uncompressed mode */
+    void uncompress()
+    {
+      if(m_innerNonZeros != 0)
+        return; 
+      m_innerNonZeros = static_cast<Index*>(std::malloc(m_outerSize * sizeof(Index)));
+      for (Index i = 0; i < m_outerSize; i++)
+      {
+        m_innerNonZeros[i] = m_outerIndex[i+1] - m_outerIndex[i]; 
+      }
+    }
+    
+    /** Suppresses all nonzeros which are \b much \b smaller \b than \a reference under the tolerence \a epsilon */
+    void prune(const Scalar& reference, const RealScalar& epsilon = NumTraits<RealScalar>::dummy_precision())
+    {
+      prune(default_prunning_func(reference,epsilon));
+    }
+    
+    /** Turns the matrix into compressed format, and suppresses all nonzeros which do not satisfy the predicate \a keep.
+      * The functor type \a KeepFunc must implement the following function:
+      * \code
+      * bool operator() (const Index& row, const Index& col, const Scalar& value) const;
+      * \endcode
+      * \sa prune(Scalar,RealScalar)
+      */
+    template<typename KeepFunc>
+    void prune(const KeepFunc& keep = KeepFunc())
+    {
+      // TODO optimize the uncompressed mode to avoid moving and allocating the data twice
+      // TODO also implement a unit test
+      makeCompressed();
+
+      Index k = 0;
+      for(Index j=0; j<m_outerSize; ++j)
+      {
+        Index previousStart = m_outerIndex[j];
+        m_outerIndex[j] = k;
+        Index end = m_outerIndex[j+1];
+        for(Index i=previousStart; i<end; ++i)
+        {
+          if(keep(IsRowMajor?j:m_data.index(i), IsRowMajor?m_data.index(i):j, m_data.value(i)))
+          {
+            m_data.value(k) = m_data.value(i);
+            m_data.index(k) = m_data.index(i);
+            ++k;
+          }
+        }
+      }
+      m_outerIndex[m_outerSize] = k;
+      m_data.resize(k,0);
+    }
+
+    /** Resizes the matrix to a \a rows x \a cols matrix leaving old values untouched.
+      * \sa resizeNonZeros(Index), reserve(), setZero()
+      */
+    void conservativeResize(Index rows, Index cols) 
+    {
+      // No change
+      if (this->rows() == rows && this->cols() == cols) return;
+      
+      // If one dimension is null, then there is nothing to be preserved
+      if(rows==0 || cols==0) return resize(rows,cols);
+
+      Index innerChange = IsRowMajor ? cols - this->cols() : rows - this->rows();
+      Index outerChange = IsRowMajor ? rows - this->rows() : cols - this->cols();
+      Index newInnerSize = IsRowMajor ? cols : rows;
+
+      // Deals with inner non zeros
+      if (m_innerNonZeros)
+      {
+        // Resize m_innerNonZeros
+        Index *newInnerNonZeros = static_cast<Index*>(std::realloc(m_innerNonZeros, (m_outerSize + outerChange) * sizeof(Index)));
+        if (!newInnerNonZeros) internal::throw_std_bad_alloc();
+        m_innerNonZeros = newInnerNonZeros;
+        
+        for(Index i=m_outerSize; i<m_outerSize+outerChange; i++)          
+          m_innerNonZeros[i] = 0;
+      } 
+      else if (innerChange < 0) 
+      {
+        // Inner size decreased: allocate a new m_innerNonZeros
+        m_innerNonZeros = static_cast<Index*>(std::malloc((m_outerSize+outerChange+1) * sizeof(Index)));
+        if (!m_innerNonZeros) internal::throw_std_bad_alloc();
+        for(Index i = 0; i < m_outerSize; i++)
+          m_innerNonZeros[i] = m_outerIndex[i+1] - m_outerIndex[i];
+      }
+      
+      // Change the m_innerNonZeros in case of a decrease of inner size
+      if (m_innerNonZeros && innerChange < 0)
+      {
+        for(Index i = 0; i < m_outerSize + (std::min)(outerChange, Index(0)); i++)
+        {
+          Index &n = m_innerNonZeros[i];
+          Index start = m_outerIndex[i];
+          while (n > 0 && m_data.index(start+n-1) >= newInnerSize) --n; 
+        }
+      }
+      
+      m_innerSize = newInnerSize;
+
+      // Re-allocate outer index structure if necessary
+      if (outerChange == 0)
+        return;
+          
+      Index *newOuterIndex = static_cast<Index*>(std::realloc(m_outerIndex, (m_outerSize + outerChange + 1) * sizeof(Index)));
+      if (!newOuterIndex) internal::throw_std_bad_alloc();
+      m_outerIndex = newOuterIndex;
+      if (outerChange > 0)
+      {
+        Index last = m_outerSize == 0 ? 0 : m_outerIndex[m_outerSize];
+        for(Index i=m_outerSize; i<m_outerSize+outerChange+1; i++)          
+          m_outerIndex[i] = last; 
+      }
+      m_outerSize += outerChange;
+    }
+    
+    /** Resizes the matrix to a \a rows x \a cols matrix and initializes it to zero.
+      * \sa resizeNonZeros(Index), reserve(), setZero()
+      */
+    void resize(Index rows, Index cols)
+    {
+      const Index outerSize = IsRowMajor ? rows : cols;
+      m_innerSize = IsRowMajor ? cols : rows;
+      m_data.clear();
+      if (m_outerSize != outerSize || m_outerSize==0)
+      {
+        std::free(m_outerIndex);
+        m_outerIndex = static_cast<Index*>(std::malloc((outerSize + 1) * sizeof(Index)));
+        if (!m_outerIndex) internal::throw_std_bad_alloc();
+        
+        m_outerSize = outerSize;
+      }
+      if(m_innerNonZeros)
+      {
+        std::free(m_innerNonZeros);
+        m_innerNonZeros = 0;
+      }
+      memset(m_outerIndex, 0, (m_outerSize+1)*sizeof(Index));
+    }
+
+    /** \internal
+      * Resize the nonzero vector to \a size */
+    void resizeNonZeros(Index size)
+    {
+      // TODO remove this function
+      m_data.resize(size);
+    }
+
+    /** \returns a const expression of the diagonal coefficients */
+    const Diagonal<const SparseMatrix> diagonal() const { return *this; }
+
+    /** Default constructor yielding an empty \c 0 \c x \c 0 matrix */
+    inline SparseMatrix()
+      : m_outerSize(-1), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+    {
+      check_template_parameters();
+      resize(0, 0);
+    }
+
+    /** Constructs a \a rows \c x \a cols empty matrix */
+    inline SparseMatrix(Index rows, Index cols)
+      : m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+    {
+      check_template_parameters();
+      resize(rows, cols);
+    }
+
+    /** Constructs a sparse matrix from the sparse expression \a other */
+    template<typename OtherDerived>
+    inline SparseMatrix(const SparseMatrixBase<OtherDerived>& other)
+      : m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+    {
+      EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+      check_template_parameters();
+      *this = other.derived();
+    }
+    
+    /** Constructs a sparse matrix from the sparse selfadjoint view \a other */
+    template<typename OtherDerived, unsigned int UpLo>
+    inline SparseMatrix(const SparseSelfAdjointView<OtherDerived, UpLo>& other)
+      : m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+    {
+      check_template_parameters();
+      *this = other;
+    }
+
+    /** Copy constructor (it performs a deep copy) */
+    inline SparseMatrix(const SparseMatrix& other)
+      : Base(), m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+    {
+      check_template_parameters();
+      *this = other.derived();
+    }
+
+    /** \brief Copy constructor with in-place evaluation */
+    template<typename OtherDerived>
+    SparseMatrix(const ReturnByValue<OtherDerived>& other)
+      : Base(), m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
+    {
+      check_template_parameters();
+      initAssignment(other);
+      other.evalTo(*this);
+    }
+
+    /** Swaps the content of two sparse matrices of the same type.
+      * This is a fast operation that simply swaps the underlying pointers and parameters. */
+    inline void swap(SparseMatrix& other)
+    {
+      //EIGEN_DBG_SPARSE(std::cout << "SparseMatrix:: swap\n");
+      std::swap(m_outerIndex, other.m_outerIndex);
+      std::swap(m_innerSize, other.m_innerSize);
+      std::swap(m_outerSize, other.m_outerSize);
+      std::swap(m_innerNonZeros, other.m_innerNonZeros);
+      m_data.swap(other.m_data);
+    }
+
+    /** Sets *this to the identity matrix.
+      * This function also turns the matrix into compressed mode, and drop any reserved memory. */
+    inline void setIdentity()
+    {
+      eigen_assert(rows() == cols() && "ONLY FOR SQUARED MATRICES");
+      this->m_data.resize(rows());
+      Eigen::Map<Matrix<Index, Dynamic, 1> >(this->m_data.indexPtr(), rows()).setLinSpaced(0, rows()-1);
+      Eigen::Map<Matrix<Scalar, Dynamic, 1> >(this->m_data.valuePtr(), rows()).setOnes();
+      Eigen::Map<Matrix<Index, Dynamic, 1> >(this->m_outerIndex, rows()+1).setLinSpaced(0, rows());
+      std::free(m_innerNonZeros);
+      m_innerNonZeros = 0;
+    }
+    inline SparseMatrix& operator=(const SparseMatrix& other)
+    {
+      if (other.isRValue())
+      {
+        swap(other.const_cast_derived());
+      }
+      else if(this!=&other)
+      {
+        initAssignment(other);
+        if(other.isCompressed())
+        {
+          memcpy(m_outerIndex, other.m_outerIndex, (m_outerSize+1)*sizeof(Index));
+          m_data = other.m_data;
+        }
+        else
+        {
+          Base::operator=(other);
+        }
+      }
+      return *this;
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename Lhs, typename Rhs>
+    inline SparseMatrix& operator=(const SparseSparseProduct<Lhs,Rhs>& product)
+    { return Base::operator=(product); }
+    
+    template<typename OtherDerived>
+    inline SparseMatrix& operator=(const ReturnByValue<OtherDerived>& other)
+    {
+      initAssignment(other);
+      return Base::operator=(other.derived());
+    }
+    
+    template<typename OtherDerived>
+    inline SparseMatrix& operator=(const EigenBase<OtherDerived>& other)
+    { return Base::operator=(other.derived()); }
+    #endif
+
+    template<typename OtherDerived>
+    EIGEN_DONT_INLINE SparseMatrix& operator=(const SparseMatrixBase<OtherDerived>& other);
+
+    friend std::ostream & operator << (std::ostream & s, const SparseMatrix& m)
+    {
+      EIGEN_DBG_SPARSE(
+        s << "Nonzero entries:\n";
+        if(m.isCompressed())
+          for (Index i=0; i<m.nonZeros(); ++i)
+            s << "(" << m.m_data.value(i) << "," << m.m_data.index(i) << ") ";
+        else
+          for (Index i=0; i<m.outerSize(); ++i)
+          {
+            Index p = m.m_outerIndex[i];
+            Index pe = m.m_outerIndex[i]+m.m_innerNonZeros[i];
+            Index k=p;
+            for (; k<pe; ++k)
+              s << "(" << m.m_data.value(k) << "," << m.m_data.index(k) << ") ";
+            for (; k<m.m_outerIndex[i+1]; ++k)
+              s << "(_,_) ";
+          }
+        s << std::endl;
+        s << std::endl;
+        s << "Outer pointers:\n";
+        for (Index i=0; i<m.outerSize(); ++i)
+          s << m.m_outerIndex[i] << " ";
+        s << " $" << std::endl;
+        if(!m.isCompressed())
+        {
+          s << "Inner non zeros:\n";
+          for (Index i=0; i<m.outerSize(); ++i)
+            s << m.m_innerNonZeros[i] << " ";
+          s << " $" << std::endl;
+        }
+        s << std::endl;
+      );
+      s << static_cast<const SparseMatrixBase<SparseMatrix>&>(m);
+      return s;
+    }
+
+    /** Destructor */
+    inline ~SparseMatrix()
+    {
+      std::free(m_outerIndex);
+      std::free(m_innerNonZeros);
+    }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** Overloaded for performance */
+    Scalar sum() const;
+#endif
+    
+#   ifdef EIGEN_SPARSEMATRIX_PLUGIN
+#     include EIGEN_SPARSEMATRIX_PLUGIN
+#   endif
+
+protected:
+
+    template<typename Other>
+    void initAssignment(const Other& other)
+    {
+      resize(other.rows(), other.cols());
+      if(m_innerNonZeros)
+      {
+        std::free(m_innerNonZeros);
+        m_innerNonZeros = 0;
+      }
+    }
+
+    /** \internal
+      * \sa insert(Index,Index) */
+    EIGEN_DONT_INLINE Scalar& insertCompressed(Index row, Index col);
+
+    /** \internal
+      * A vector object that is equal to 0 everywhere but v at the position i */
+    class SingletonVector
+    {
+        Index m_index;
+        Index m_value;
+      public:
+        typedef Index value_type;
+        SingletonVector(Index i, Index v)
+          : m_index(i), m_value(v)
+        {}
+
+        Index operator[](Index i) const { return i==m_index ? m_value : 0; }
+    };
+
+    /** \internal
+      * \sa insert(Index,Index) */
+    EIGEN_DONT_INLINE Scalar& insertUncompressed(Index row, Index col);
+
+public:
+    /** \internal
+      * \sa insert(Index,Index) */
+    EIGEN_STRONG_INLINE Scalar& insertBackUncompressed(Index row, Index col)
+    {
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+
+      eigen_assert(!isCompressed());
+      eigen_assert(m_innerNonZeros[outer]<=(m_outerIndex[outer+1] - m_outerIndex[outer]));
+
+      Index p = m_outerIndex[outer] + m_innerNonZeros[outer]++;
+      m_data.index(p) = inner;
+      return (m_data.value(p) = 0);
+    }
+
+private:
+  static void check_template_parameters()
+  {
+    EIGEN_STATIC_ASSERT(NumTraits<Index>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE);
+    EIGEN_STATIC_ASSERT((Options&(ColMajor|RowMajor))==Options,INVALID_MATRIX_TEMPLATE_PARAMETERS);
+  }
+
+  struct default_prunning_func {
+    default_prunning_func(const Scalar& ref, const RealScalar& eps) : reference(ref), epsilon(eps) {}
+    inline bool operator() (const Index&, const Index&, const Scalar& value) const
+    {
+      return !internal::isMuchSmallerThan(value, reference, epsilon);
+    }
+    Scalar reference;
+    RealScalar epsilon;
+  };
+};
+
+template<typename Scalar, int _Options, typename _Index>
+class SparseMatrix<Scalar,_Options,_Index>::InnerIterator
+{
+  public:
+    InnerIterator(const SparseMatrix& mat, Index outer)
+      : m_values(mat.valuePtr()), m_indices(mat.innerIndexPtr()), m_outer(outer), m_id(mat.m_outerIndex[outer])
+    {
+      if(mat.isCompressed())
+        m_end = mat.m_outerIndex[outer+1];
+      else
+        m_end = m_id + mat.m_innerNonZeros[outer];
+    }
+
+    inline InnerIterator& operator++() { m_id++; return *this; }
+
+    inline const Scalar& value() const { return m_values[m_id]; }
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_values[m_id]); }
+
+    inline Index index() const { return m_indices[m_id]; }
+    inline Index outer() const { return m_outer; }
+    inline Index row() const { return IsRowMajor ? m_outer : index(); }
+    inline Index col() const { return IsRowMajor ? index() : m_outer; }
+
+    inline operator bool() const { return (m_id < m_end); }
+
+  protected:
+    const Scalar* m_values;
+    const Index* m_indices;
+    const Index m_outer;
+    Index m_id;
+    Index m_end;
+};
+
+template<typename Scalar, int _Options, typename _Index>
+class SparseMatrix<Scalar,_Options,_Index>::ReverseInnerIterator
+{
+  public:
+    ReverseInnerIterator(const SparseMatrix& mat, Index outer)
+      : m_values(mat.valuePtr()), m_indices(mat.innerIndexPtr()), m_outer(outer), m_start(mat.m_outerIndex[outer])
+    {
+      if(mat.isCompressed())
+        m_id = mat.m_outerIndex[outer+1];
+      else
+        m_id = m_start + mat.m_innerNonZeros[outer];
+    }
+
+    inline ReverseInnerIterator& operator--() { --m_id; return *this; }
+
+    inline const Scalar& value() const { return m_values[m_id-1]; }
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_values[m_id-1]); }
+
+    inline Index index() const { return m_indices[m_id-1]; }
+    inline Index outer() const { return m_outer; }
+    inline Index row() const { return IsRowMajor ? m_outer : index(); }
+    inline Index col() const { return IsRowMajor ? index() : m_outer; }
+
+    inline operator bool() const { return (m_id > m_start); }
+
+  protected:
+    const Scalar* m_values;
+    const Index* m_indices;
+    const Index m_outer;
+    Index m_id;
+    const Index m_start;
+};
+
+namespace internal {
+
+template<typename InputIterator, typename SparseMatrixType>
+void set_from_triplets(const InputIterator& begin, const InputIterator& end, SparseMatrixType& mat, int Options = 0)
+{
+  EIGEN_UNUSED_VARIABLE(Options);
+  enum { IsRowMajor = SparseMatrixType::IsRowMajor };
+  typedef typename SparseMatrixType::Scalar Scalar;
+  typedef typename SparseMatrixType::Index Index;
+  SparseMatrix<Scalar,IsRowMajor?ColMajor:RowMajor,Index> trMat(mat.rows(),mat.cols());
+
+  if(begin!=end)
+  {
+    // pass 1: count the nnz per inner-vector
+    Matrix<Index,Dynamic,1> wi(trMat.outerSize());
+    wi.setZero();
+    for(InputIterator it(begin); it!=end; ++it)
+    {
+      eigen_assert(it->row()>=0 && it->row()<mat.rows() && it->col()>=0 && it->col()<mat.cols());
+      wi(IsRowMajor ? it->col() : it->row())++;
+    }
+
+    // pass 2: insert all the elements into trMat
+    trMat.reserve(wi);
+    for(InputIterator it(begin); it!=end; ++it)
+      trMat.insertBackUncompressed(it->row(),it->col()) = it->value();
+
+    // pass 3:
+    trMat.sumupDuplicates();
+  }
+
+  // pass 4: transposed copy -> implicit sorting
+  mat = trMat;
+}
+
+}
+
+
+/** Fill the matrix \c *this with the list of \em triplets defined by the iterator range \a begin - \a end.
+  *
+  * A \em triplet is a tuple (i,j,value) defining a non-zero element.
+  * The input list of triplets does not have to be sorted, and can contains duplicated elements.
+  * In any case, the result is a \b sorted and \b compressed sparse matrix where the duplicates have been summed up.
+  * This is a \em O(n) operation, with \em n the number of triplet elements.
+  * The initial contents of \c *this is destroyed.
+  * The matrix \c *this must be properly resized beforehand using the SparseMatrix(Index,Index) constructor,
+  * or the resize(Index,Index) method. The sizes are not extracted from the triplet list.
+  *
+  * The \a InputIterators value_type must provide the following interface:
+  * \code
+  * Scalar value() const; // the value
+  * Scalar row() const;   // the row index i
+  * Scalar col() const;   // the column index j
+  * \endcode
+  * See for instance the Eigen::Triplet template class.
+  *
+  * Here is a typical usage example:
+  * \code
+    typedef Triplet<double> T;
+    std::vector<T> tripletList;
+    triplets.reserve(estimation_of_entries);
+    for(...)
+    {
+      // ...
+      tripletList.push_back(T(i,j,v_ij));
+    }
+    SparseMatrixType m(rows,cols);
+    m.setFromTriplets(tripletList.begin(), tripletList.end());
+    // m is ready to go!
+  * \endcode
+  *
+  * \warning The list of triplets is read multiple times (at least twice). Therefore, it is not recommended to define
+  * an abstract iterator over a complex data-structure that would be expensive to evaluate. The triplets should rather
+  * be explicitely stored into a std::vector for instance.
+  */
+template<typename Scalar, int _Options, typename _Index>
+template<typename InputIterators>
+void SparseMatrix<Scalar,_Options,_Index>::setFromTriplets(const InputIterators& begin, const InputIterators& end)
+{
+  internal::set_from_triplets(begin, end, *this);
+}
+
+/** \internal */
+template<typename Scalar, int _Options, typename _Index>
+void SparseMatrix<Scalar,_Options,_Index>::sumupDuplicates()
+{
+  eigen_assert(!isCompressed());
+  // TODO, in practice we should be able to use m_innerNonZeros for that task
+  Matrix<Index,Dynamic,1> wi(innerSize());
+  wi.fill(-1);
+  Index count = 0;
+  // for each inner-vector, wi[inner_index] will hold the position of first element into the index/value buffers
+  for(Index j=0; j<outerSize(); ++j)
+  {
+    Index start   = count;
+    Index oldEnd  = m_outerIndex[j]+m_innerNonZeros[j];
+    for(Index k=m_outerIndex[j]; k<oldEnd; ++k)
+    {
+      Index i = m_data.index(k);
+      if(wi(i)>=start)
+      {
+        // we already meet this entry => accumulate it
+        m_data.value(wi(i)) += m_data.value(k);
+      }
+      else
+      {
+        m_data.value(count) = m_data.value(k);
+        m_data.index(count) = m_data.index(k);
+        wi(i) = count;
+        ++count;
+      }
+    }
+    m_outerIndex[j] = start;
+  }
+  m_outerIndex[m_outerSize] = count;
+
+  // turn the matrix into compressed form
+  std::free(m_innerNonZeros);
+  m_innerNonZeros = 0;
+  m_data.resize(m_outerIndex[m_outerSize]);
+}
+
+template<typename Scalar, int _Options, typename _Index>
+template<typename OtherDerived>
+EIGEN_DONT_INLINE SparseMatrix<Scalar,_Options,_Index>& SparseMatrix<Scalar,_Options,_Index>::operator=(const SparseMatrixBase<OtherDerived>& other)
+{
+  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+  
+  const bool needToTranspose = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit);
+  if (needToTranspose)
+  {
+    // two passes algorithm:
+    //  1 - compute the number of coeffs per dest inner vector
+    //  2 - do the actual copy/eval
+    // Since each coeff of the rhs has to be evaluated twice, let's evaluate it if needed
+    typedef typename internal::nested<OtherDerived,2>::type OtherCopy;
+    typedef typename internal::remove_all<OtherCopy>::type _OtherCopy;
+    OtherCopy otherCopy(other.derived());
+
+    SparseMatrix dest(other.rows(),other.cols());
+    Eigen::Map<Matrix<Index, Dynamic, 1> > (dest.m_outerIndex,dest.outerSize()).setZero();
+
+    // pass 1
+    // FIXME the above copy could be merged with that pass
+    for (Index j=0; j<otherCopy.outerSize(); ++j)
+      for (typename _OtherCopy::InnerIterator it(otherCopy, j); it; ++it)
+        ++dest.m_outerIndex[it.index()];
+
+    // prefix sum
+    Index count = 0;
+    Matrix<Index,Dynamic,1> positions(dest.outerSize());
+    for (Index j=0; j<dest.outerSize(); ++j)
+    {
+      Index tmp = dest.m_outerIndex[j];
+      dest.m_outerIndex[j] = count;
+      positions[j] = count;
+      count += tmp;
+    }
+    dest.m_outerIndex[dest.outerSize()] = count;
+    // alloc
+    dest.m_data.resize(count);
+    // pass 2
+    for (Index j=0; j<otherCopy.outerSize(); ++j)
+    {
+      for (typename _OtherCopy::InnerIterator it(otherCopy, j); it; ++it)
+      {
+        Index pos = positions[it.index()]++;
+        dest.m_data.index(pos) = j;
+        dest.m_data.value(pos) = it.value();
+      }
+    }
+    this->swap(dest);
+    return *this;
+  }
+  else
+  {
+    if(other.isRValue())
+      initAssignment(other.derived());
+    // there is no special optimization
+    return Base::operator=(other.derived());
+  }
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+EIGEN_DONT_INLINE typename SparseMatrix<_Scalar,_Options,_Index>::Scalar& SparseMatrix<_Scalar,_Options,_Index>::insertUncompressed(Index row, Index col)
+{
+  eigen_assert(!isCompressed());
+
+  const Index outer = IsRowMajor ? row : col;
+  const Index inner = IsRowMajor ? col : row;
+
+  Index room = m_outerIndex[outer+1] - m_outerIndex[outer];
+  Index innerNNZ = m_innerNonZeros[outer];
+  if(innerNNZ>=room)
+  {
+    // this inner vector is full, we need to reallocate the whole buffer :(
+    reserve(SingletonVector(outer,std::max<Index>(2,innerNNZ)));
+  }
+
+  Index startId = m_outerIndex[outer];
+  Index p = startId + m_innerNonZeros[outer];
+  while ( (p > startId) && (m_data.index(p-1) > inner) )
+  {
+    m_data.index(p) = m_data.index(p-1);
+    m_data.value(p) = m_data.value(p-1);
+    --p;
+  }
+  eigen_assert((p<=startId || m_data.index(p-1)!=inner) && "you cannot insert an element that already exist, you must call coeffRef to this end");
+
+  m_innerNonZeros[outer]++;
+
+  m_data.index(p) = inner;
+  return (m_data.value(p) = 0);
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+EIGEN_DONT_INLINE typename SparseMatrix<_Scalar,_Options,_Index>::Scalar& SparseMatrix<_Scalar,_Options,_Index>::insertCompressed(Index row, Index col)
+{
+  eigen_assert(isCompressed());
+
+  const Index outer = IsRowMajor ? row : col;
+  const Index inner = IsRowMajor ? col : row;
+
+  Index previousOuter = outer;
+  if (m_outerIndex[outer+1]==0)
+  {
+    // we start a new inner vector
+    while (previousOuter>=0 && m_outerIndex[previousOuter]==0)
+    {
+      m_outerIndex[previousOuter] = static_cast<Index>(m_data.size());
+      --previousOuter;
+    }
+    m_outerIndex[outer+1] = m_outerIndex[outer];
+  }
+
+  // here we have to handle the tricky case where the outerIndex array
+  // starts with: [ 0 0 0 0 0 1 ...] and we are inserted in, e.g.,
+  // the 2nd inner vector...
+  bool isLastVec = (!(previousOuter==-1 && m_data.size()!=0))
+                && (size_t(m_outerIndex[outer+1]) == m_data.size());
+
+  size_t startId = m_outerIndex[outer];
+  // FIXME let's make sure sizeof(long int) == sizeof(size_t)
+  size_t p = m_outerIndex[outer+1];
+  ++m_outerIndex[outer+1];
+
+  double reallocRatio = 1;
+  if (m_data.allocatedSize()<=m_data.size())
+  {
+    // if there is no preallocated memory, let's reserve a minimum of 32 elements
+    if (m_data.size()==0)
+    {
+      m_data.reserve(32);
+    }
+    else
+    {
+      // we need to reallocate the data, to reduce multiple reallocations
+      // we use a smart resize algorithm based on the current filling ratio
+      // in addition, we use double to avoid integers overflows
+      double nnzEstimate = double(m_outerIndex[outer])*double(m_outerSize)/double(outer+1);
+      reallocRatio = (nnzEstimate-double(m_data.size()))/double(m_data.size());
+      // furthermore we bound the realloc ratio to:
+      //   1) reduce multiple minor realloc when the matrix is almost filled
+      //   2) avoid to allocate too much memory when the matrix is almost empty
+      reallocRatio = (std::min)((std::max)(reallocRatio,1.5),8.);
+    }
+  }
+  m_data.resize(m_data.size()+1,reallocRatio);
+
+  if (!isLastVec)
+  {
+    if (previousOuter==-1)
+    {
+      // oops wrong guess.
+      // let's correct the outer offsets
+      for (Index k=0; k<=(outer+1); ++k)
+        m_outerIndex[k] = 0;
+      Index k=outer+1;
+      while(m_outerIndex[k]==0)
+        m_outerIndex[k++] = 1;
+      while (k<=m_outerSize && m_outerIndex[k]!=0)
+        m_outerIndex[k++]++;
+      p = 0;
+      --k;
+      k = m_outerIndex[k]-1;
+      while (k>0)
+      {
+        m_data.index(k) = m_data.index(k-1);
+        m_data.value(k) = m_data.value(k-1);
+        k--;
+      }
+    }
+    else
+    {
+      // we are not inserting into the last inner vec
+      // update outer indices:
+      Index j = outer+2;
+      while (j<=m_outerSize && m_outerIndex[j]!=0)
+        m_outerIndex[j++]++;
+      --j;
+      // shift data of last vecs:
+      Index k = m_outerIndex[j]-1;
+      while (k>=Index(p))
+      {
+        m_data.index(k) = m_data.index(k-1);
+        m_data.value(k) = m_data.value(k-1);
+        k--;
+      }
+    }
+  }
+
+  while ( (p > startId) && (m_data.index(p-1) > inner) )
+  {
+    m_data.index(p) = m_data.index(p-1);
+    m_data.value(p) = m_data.value(p-1);
+    --p;
+  }
+
+  m_data.index(p) = inner;
+  return (m_data.value(p) = 0);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSEMATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/RealQZ.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/RealQZ.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/RealQZ.h	(revision 2476)
@@ -0,0 +1,624 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Alexey Korepanov <kaikaikai@yandex.ru>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REAL_QZ_H
+#define EIGEN_REAL_QZ_H
+
+namespace Eigen {
+
+  /** \eigenvalues_module \ingroup Eigenvalues_Module
+   *
+   *
+   * \class RealQZ
+   *
+   * \brief Performs a real QZ decomposition of a pair of square matrices
+   *
+   * \tparam _MatrixType the type of the matrix of which we are computing the
+   * real QZ decomposition; this is expected to be an instantiation of the
+   * Matrix class template.
+   *
+   * Given a real square matrices A and B, this class computes the real QZ
+   * decomposition: \f$ A = Q S Z \f$, \f$ B = Q T Z \f$ where Q and Z are
+   * real orthogonal matrixes, T is upper-triangular matrix, and S is upper
+   * quasi-triangular matrix. An orthogonal matrix is a matrix whose
+   * inverse is equal to its transpose, \f$ U^{-1} = U^T \f$. A quasi-triangular
+   * matrix is a block-triangular matrix whose diagonal consists of 1-by-1
+   * blocks and 2-by-2 blocks where further reduction is impossible due to
+   * complex eigenvalues. 
+   *
+   * The eigenvalues of the pencil \f$ A - z B \f$ can be obtained from
+   * 1x1 and 2x2 blocks on the diagonals of S and T.
+   *
+   * Call the function compute() to compute the real QZ decomposition of a
+   * given pair of matrices. Alternatively, you can use the 
+   * RealQZ(const MatrixType& B, const MatrixType& B, bool computeQZ)
+   * constructor which computes the real QZ decomposition at construction
+   * time. Once the decomposition is computed, you can use the matrixS(),
+   * matrixT(), matrixQ() and matrixZ() functions to retrieve the matrices
+   * S, T, Q and Z in the decomposition. If computeQZ==false, some time
+   * is saved by not computing matrices Q and Z.
+   *
+   * Example: \include RealQZ_compute.cpp
+   * Output: \include RealQZ_compute.out
+   *
+   * \note The implementation is based on the algorithm in "Matrix Computations"
+   * by Gene H. Golub and Charles F. Van Loan, and a paper "An algorithm for
+   * generalized eigenvalue problems" by C.B.Moler and G.W.Stewart.
+   *
+   * \sa class RealSchur, class ComplexSchur, class EigenSolver, class ComplexEigenSolver
+   */
+
+  template<typename _MatrixType> class RealQZ
+  {
+    public:
+      typedef _MatrixType MatrixType;
+      enum {
+        RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+        ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+        Options = MatrixType::Options,
+        MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+        MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+      };
+      typedef typename MatrixType::Scalar Scalar;
+      typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
+      typedef typename MatrixType::Index Index;
+
+      typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> EigenvalueType;
+      typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
+
+      /** \brief Default constructor.
+       *
+       * \param [in] size  Positive integer, size of the matrix whose QZ decomposition will be computed.
+       *
+       * The default constructor is useful in cases in which the user intends to
+       * perform decompositions via compute().  The \p size parameter is only
+       * used as a hint. It is not an error to give a wrong \p size, but it may
+       * impair performance.
+       *
+       * \sa compute() for an example.
+       */
+      RealQZ(Index size = RowsAtCompileTime==Dynamic ? 1 : RowsAtCompileTime) : 
+        m_S(size, size),
+        m_T(size, size),
+        m_Q(size, size),
+        m_Z(size, size),
+        m_workspace(size*2),
+        m_maxIters(400),
+        m_isInitialized(false)
+        { }
+
+      /** \brief Constructor; computes real QZ decomposition of given matrices
+       * 
+       * \param[in]  A          Matrix A.
+       * \param[in]  B          Matrix B.
+       * \param[in]  computeQZ  If false, A and Z are not computed.
+       *
+       * This constructor calls compute() to compute the QZ decomposition.
+       */
+      RealQZ(const MatrixType& A, const MatrixType& B, bool computeQZ = true) :
+        m_S(A.rows(),A.cols()),
+        m_T(A.rows(),A.cols()),
+        m_Q(A.rows(),A.cols()),
+        m_Z(A.rows(),A.cols()),
+        m_workspace(A.rows()*2),
+        m_maxIters(400),
+        m_isInitialized(false) {
+          compute(A, B, computeQZ);
+        }
+
+      /** \brief Returns matrix Q in the QZ decomposition. 
+       *
+       * \returns A const reference to the matrix Q.
+       */
+      const MatrixType& matrixQ() const {
+        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+        eigen_assert(m_computeQZ && "The matrices Q and Z have not been computed during the QZ decomposition.");
+        return m_Q;
+      }
+
+      /** \brief Returns matrix Z in the QZ decomposition. 
+       *
+       * \returns A const reference to the matrix Z.
+       */
+      const MatrixType& matrixZ() const {
+        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+        eigen_assert(m_computeQZ && "The matrices Q and Z have not been computed during the QZ decomposition.");
+        return m_Z;
+      }
+
+      /** \brief Returns matrix S in the QZ decomposition. 
+       *
+       * \returns A const reference to the matrix S.
+       */
+      const MatrixType& matrixS() const {
+        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+        return m_S;
+      }
+
+      /** \brief Returns matrix S in the QZ decomposition. 
+       *
+       * \returns A const reference to the matrix S.
+       */
+      const MatrixType& matrixT() const {
+        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+        return m_T;
+      }
+
+      /** \brief Computes QZ decomposition of given matrix. 
+       * 
+       * \param[in]  A          Matrix A.
+       * \param[in]  B          Matrix B.
+       * \param[in]  computeQZ  If false, A and Z are not computed.
+       * \returns    Reference to \c *this
+       */
+      RealQZ& compute(const MatrixType& A, const MatrixType& B, bool computeQZ = true);
+
+      /** \brief Reports whether previous computation was successful.
+       *
+       * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+       */
+      ComputationInfo info() const
+      {
+        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+        return m_info;
+      }
+
+      /** \brief Returns number of performed QR-like iterations.
+      */
+      Index iterations() const
+      {
+        eigen_assert(m_isInitialized && "RealQZ is not initialized.");
+        return m_global_iter;
+      }
+
+      /** Sets the maximal number of iterations allowed to converge to one eigenvalue
+       * or decouple the problem.
+      */
+      RealQZ& setMaxIterations(Index maxIters)
+      {
+        m_maxIters = maxIters;
+        return *this;
+      }
+
+    private:
+
+      MatrixType m_S, m_T, m_Q, m_Z;
+      Matrix<Scalar,Dynamic,1> m_workspace;
+      ComputationInfo m_info;
+      Index m_maxIters;
+      bool m_isInitialized;
+      bool m_computeQZ;
+      Scalar m_normOfT, m_normOfS;
+      Index m_global_iter;
+
+      typedef Matrix<Scalar,3,1> Vector3s;
+      typedef Matrix<Scalar,2,1> Vector2s;
+      typedef Matrix<Scalar,2,2> Matrix2s;
+      typedef JacobiRotation<Scalar> JRs;
+
+      void hessenbergTriangular();
+      void computeNorms();
+      Index findSmallSubdiagEntry(Index iu);
+      Index findSmallDiagEntry(Index f, Index l);
+      void splitOffTwoRows(Index i);
+      void pushDownZero(Index z, Index f, Index l);
+      void step(Index f, Index l, Index iter);
+
+  }; // RealQZ
+
+  /** \internal Reduces S and T to upper Hessenberg - triangular form */
+  template<typename MatrixType>
+    void RealQZ<MatrixType>::hessenbergTriangular()
+    {
+
+      const Index dim = m_S.cols();
+
+      // perform QR decomposition of T, overwrite T with R, save Q
+      HouseholderQR<MatrixType> qrT(m_T);
+      m_T = qrT.matrixQR();
+      m_T.template triangularView<StrictlyLower>().setZero();
+      m_Q = qrT.householderQ();
+      // overwrite S with Q* S
+      m_S.applyOnTheLeft(m_Q.adjoint());
+      // init Z as Identity
+      if (m_computeQZ)
+        m_Z = MatrixType::Identity(dim,dim);
+      // reduce S to upper Hessenberg with Givens rotations
+      for (Index j=0; j<=dim-3; j++) {
+        for (Index i=dim-1; i>=j+2; i--) {
+          JRs G;
+          // kill S(i,j)
+          if(m_S.coeff(i,j) != 0)
+          {
+            G.makeGivens(m_S.coeff(i-1,j), m_S.coeff(i,j), &m_S.coeffRef(i-1, j));
+            m_S.coeffRef(i,j) = Scalar(0.0);
+            m_S.rightCols(dim-j-1).applyOnTheLeft(i-1,i,G.adjoint());
+            m_T.rightCols(dim-i+1).applyOnTheLeft(i-1,i,G.adjoint());
+            // update Q
+            if (m_computeQZ)
+              m_Q.applyOnTheRight(i-1,i,G);
+          }
+          // kill T(i,i-1)
+          if(m_T.coeff(i,i-1)!=Scalar(0))
+          {
+            G.makeGivens(m_T.coeff(i,i), m_T.coeff(i,i-1), &m_T.coeffRef(i,i));
+            m_T.coeffRef(i,i-1) = Scalar(0.0);
+            m_S.applyOnTheRight(i,i-1,G);
+            m_T.topRows(i).applyOnTheRight(i,i-1,G);
+            // update Z
+            if (m_computeQZ)
+              m_Z.applyOnTheLeft(i,i-1,G.adjoint());
+          }
+        }
+      }
+    }
+
+  /** \internal Computes vector L1 norms of S and T when in Hessenberg-Triangular form already */
+  template<typename MatrixType>
+    inline void RealQZ<MatrixType>::computeNorms()
+    {
+      const Index size = m_S.cols();
+      m_normOfS = Scalar(0.0);
+      m_normOfT = Scalar(0.0);
+      for (Index j = 0; j < size; ++j)
+      {
+        m_normOfS += m_S.col(j).segment(0, (std::min)(size,j+2)).cwiseAbs().sum();
+        m_normOfT += m_T.row(j).segment(j, size - j).cwiseAbs().sum();
+      }
+    }
+
+
+  /** \internal Look for single small sub-diagonal element S(res, res-1) and return res (or 0) */
+  template<typename MatrixType>
+    inline typename MatrixType::Index RealQZ<MatrixType>::findSmallSubdiagEntry(Index iu)
+    {
+      using std::abs;
+      Index res = iu;
+      while (res > 0)
+      {
+        Scalar s = abs(m_S.coeff(res-1,res-1)) + abs(m_S.coeff(res,res));
+        if (s == Scalar(0.0))
+          s = m_normOfS;
+        if (abs(m_S.coeff(res,res-1)) < NumTraits<Scalar>::epsilon() * s)
+          break;
+        res--;
+      }
+      return res;
+    }
+
+  /** \internal Look for single small diagonal element T(res, res) for res between f and l, and return res (or f-1)  */
+  template<typename MatrixType>
+    inline typename MatrixType::Index RealQZ<MatrixType>::findSmallDiagEntry(Index f, Index l)
+    {
+      using std::abs;
+      Index res = l;
+      while (res >= f) {
+        if (abs(m_T.coeff(res,res)) <= NumTraits<Scalar>::epsilon() * m_normOfT)
+          break;
+        res--;
+      }
+      return res;
+    }
+
+  /** \internal decouple 2x2 diagonal block in rows i, i+1 if eigenvalues are real */
+  template<typename MatrixType>
+    inline void RealQZ<MatrixType>::splitOffTwoRows(Index i)
+    {
+      using std::abs;
+      using std::sqrt;
+      const Index dim=m_S.cols();
+      if (abs(m_S.coeff(i+1,i))==Scalar(0))
+        return;
+      Index z = findSmallDiagEntry(i,i+1);
+      if (z==i-1)
+      {
+        // block of (S T^{-1})
+        Matrix2s STi = m_T.template block<2,2>(i,i).template triangularView<Upper>().
+          template solve<OnTheRight>(m_S.template block<2,2>(i,i));
+        Scalar p = Scalar(0.5)*(STi(0,0)-STi(1,1));
+        Scalar q = p*p + STi(1,0)*STi(0,1);
+        if (q>=0) {
+          Scalar z = sqrt(q);
+          // one QR-like iteration for ABi - lambda I
+          // is enough - when we know exact eigenvalue in advance,
+          // convergence is immediate
+          JRs G;
+          if (p>=0)
+            G.makeGivens(p + z, STi(1,0));
+          else
+            G.makeGivens(p - z, STi(1,0));
+          m_S.rightCols(dim-i).applyOnTheLeft(i,i+1,G.adjoint());
+          m_T.rightCols(dim-i).applyOnTheLeft(i,i+1,G.adjoint());
+          // update Q
+          if (m_computeQZ)
+            m_Q.applyOnTheRight(i,i+1,G);
+
+          G.makeGivens(m_T.coeff(i+1,i+1), m_T.coeff(i+1,i));
+          m_S.topRows(i+2).applyOnTheRight(i+1,i,G);
+          m_T.topRows(i+2).applyOnTheRight(i+1,i,G);
+          // update Z
+          if (m_computeQZ)
+            m_Z.applyOnTheLeft(i+1,i,G.adjoint());
+
+          m_S.coeffRef(i+1,i) = Scalar(0.0);
+          m_T.coeffRef(i+1,i) = Scalar(0.0);
+        }
+      }
+      else
+      {
+        pushDownZero(z,i,i+1);
+      }
+    }
+
+  /** \internal use zero in T(z,z) to zero S(l,l-1), working in block f..l */
+  template<typename MatrixType>
+    inline void RealQZ<MatrixType>::pushDownZero(Index z, Index f, Index l)
+    {
+      JRs G;
+      const Index dim = m_S.cols();
+      for (Index zz=z; zz<l; zz++)
+      {
+        // push 0 down
+        Index firstColS = zz>f ? (zz-1) : zz;
+        G.makeGivens(m_T.coeff(zz, zz+1), m_T.coeff(zz+1, zz+1));
+        m_S.rightCols(dim-firstColS).applyOnTheLeft(zz,zz+1,G.adjoint());
+        m_T.rightCols(dim-zz).applyOnTheLeft(zz,zz+1,G.adjoint());
+        m_T.coeffRef(zz+1,zz+1) = Scalar(0.0);
+        // update Q
+        if (m_computeQZ)
+          m_Q.applyOnTheRight(zz,zz+1,G);
+        // kill S(zz+1, zz-1)
+        if (zz>f)
+        {
+          G.makeGivens(m_S.coeff(zz+1, zz), m_S.coeff(zz+1,zz-1));
+          m_S.topRows(zz+2).applyOnTheRight(zz, zz-1,G);
+          m_T.topRows(zz+1).applyOnTheRight(zz, zz-1,G);
+          m_S.coeffRef(zz+1,zz-1) = Scalar(0.0);
+          // update Z
+          if (m_computeQZ)
+            m_Z.applyOnTheLeft(zz,zz-1,G.adjoint());
+        }
+      }
+      // finally kill S(l,l-1)
+      G.makeGivens(m_S.coeff(l,l), m_S.coeff(l,l-1));
+      m_S.applyOnTheRight(l,l-1,G);
+      m_T.applyOnTheRight(l,l-1,G);
+      m_S.coeffRef(l,l-1)=Scalar(0.0);
+      // update Z
+      if (m_computeQZ)
+        m_Z.applyOnTheLeft(l,l-1,G.adjoint());
+    }
+
+  /** \internal QR-like iterative step for block f..l */
+  template<typename MatrixType>
+    inline void RealQZ<MatrixType>::step(Index f, Index l, Index iter)
+    {
+      using std::abs;
+      const Index dim = m_S.cols();
+
+      // x, y, z
+      Scalar x, y, z;
+      if (iter==10)
+      {
+        // Wilkinson ad hoc shift
+        const Scalar
+          a11=m_S.coeff(f+0,f+0), a12=m_S.coeff(f+0,f+1),
+          a21=m_S.coeff(f+1,f+0), a22=m_S.coeff(f+1,f+1), a32=m_S.coeff(f+2,f+1),
+          b12=m_T.coeff(f+0,f+1),
+          b11i=Scalar(1.0)/m_T.coeff(f+0,f+0),
+          b22i=Scalar(1.0)/m_T.coeff(f+1,f+1),
+          a87=m_S.coeff(l-1,l-2),
+          a98=m_S.coeff(l-0,l-1),
+          b77i=Scalar(1.0)/m_T.coeff(l-2,l-2),
+          b88i=Scalar(1.0)/m_T.coeff(l-1,l-1);
+        Scalar ss = abs(a87*b77i) + abs(a98*b88i),
+               lpl = Scalar(1.5)*ss,
+               ll = ss*ss;
+        x = ll + a11*a11*b11i*b11i - lpl*a11*b11i + a12*a21*b11i*b22i
+          - a11*a21*b12*b11i*b11i*b22i;
+        y = a11*a21*b11i*b11i - lpl*a21*b11i + a21*a22*b11i*b22i 
+          - a21*a21*b12*b11i*b11i*b22i;
+        z = a21*a32*b11i*b22i;
+      }
+      else if (iter==16)
+      {
+        // another exceptional shift
+        x = m_S.coeff(f,f)/m_T.coeff(f,f)-m_S.coeff(l,l)/m_T.coeff(l,l) + m_S.coeff(l,l-1)*m_T.coeff(l-1,l) /
+          (m_T.coeff(l-1,l-1)*m_T.coeff(l,l));
+        y = m_S.coeff(f+1,f)/m_T.coeff(f,f);
+        z = 0;
+      }
+      else if (iter>23 && !(iter%8))
+      {
+        // extremely exceptional shift
+        x = internal::random<Scalar>(-1.0,1.0);
+        y = internal::random<Scalar>(-1.0,1.0);
+        z = internal::random<Scalar>(-1.0,1.0);
+      }
+      else
+      {
+        // Compute the shifts: (x,y,z,0...) = (AB^-1 - l1 I) (AB^-1 - l2 I) e1
+        // where l1 and l2 are the eigenvalues of the 2x2 matrix C = U V^-1 where
+        // U and V are 2x2 bottom right sub matrices of A and B. Thus:
+        //  = AB^-1AB^-1 + l1 l2 I - (l1+l2)(AB^-1)
+        //  = AB^-1AB^-1 + det(M) - tr(M)(AB^-1)
+        // Since we are only interested in having x, y, z with a correct ratio, we have:
+        const Scalar
+          a11 = m_S.coeff(f,f),     a12 = m_S.coeff(f,f+1),
+          a21 = m_S.coeff(f+1,f),   a22 = m_S.coeff(f+1,f+1),
+                                    a32 = m_S.coeff(f+2,f+1),
+
+          a88 = m_S.coeff(l-1,l-1), a89 = m_S.coeff(l-1,l),
+          a98 = m_S.coeff(l,l-1),   a99 = m_S.coeff(l,l),
+
+          b11 = m_T.coeff(f,f),     b12 = m_T.coeff(f,f+1),
+                                    b22 = m_T.coeff(f+1,f+1),
+
+          b88 = m_T.coeff(l-1,l-1), b89 = m_T.coeff(l-1,l),
+                                    b99 = m_T.coeff(l,l);
+
+        x = ( (a88/b88 - a11/b11)*(a99/b99 - a11/b11) - (a89/b99)*(a98/b88) + (a98/b88)*(b89/b99)*(a11/b11) ) * (b11/a21)
+          + a12/b22 - (a11/b11)*(b12/b22);
+        y = (a22/b22-a11/b11) - (a21/b11)*(b12/b22) - (a88/b88-a11/b11) - (a99/b99-a11/b11) + (a98/b88)*(b89/b99);
+        z = a32/b22;
+      }
+
+      JRs G;
+
+      for (Index k=f; k<=l-2; k++)
+      {
+        // variables for Householder reflections
+        Vector2s essential2;
+        Scalar tau, beta;
+
+        Vector3s hr(x,y,z);
+
+        // Q_k to annihilate S(k+1,k-1) and S(k+2,k-1)
+        hr.makeHouseholderInPlace(tau, beta);
+        essential2 = hr.template bottomRows<2>();
+        Index fc=(std::max)(k-1,Index(0));  // first col to update
+        m_S.template middleRows<3>(k).rightCols(dim-fc).applyHouseholderOnTheLeft(essential2, tau, m_workspace.data());
+        m_T.template middleRows<3>(k).rightCols(dim-fc).applyHouseholderOnTheLeft(essential2, tau, m_workspace.data());
+        if (m_computeQZ)
+          m_Q.template middleCols<3>(k).applyHouseholderOnTheRight(essential2, tau, m_workspace.data());
+        if (k>f)
+          m_S.coeffRef(k+2,k-1) = m_S.coeffRef(k+1,k-1) = Scalar(0.0);
+
+        // Z_{k1} to annihilate T(k+2,k+1) and T(k+2,k)
+        hr << m_T.coeff(k+2,k+2),m_T.coeff(k+2,k),m_T.coeff(k+2,k+1);
+        hr.makeHouseholderInPlace(tau, beta);
+        essential2 = hr.template bottomRows<2>();
+        {
+          Index lr = (std::min)(k+4,dim); // last row to update
+          Map<Matrix<Scalar,Dynamic,1> > tmp(m_workspace.data(),lr);
+          // S
+          tmp = m_S.template middleCols<2>(k).topRows(lr) * essential2;
+          tmp += m_S.col(k+2).head(lr);
+          m_S.col(k+2).head(lr) -= tau*tmp;
+          m_S.template middleCols<2>(k).topRows(lr) -= (tau*tmp) * essential2.adjoint();
+          // T
+          tmp = m_T.template middleCols<2>(k).topRows(lr) * essential2;
+          tmp += m_T.col(k+2).head(lr);
+          m_T.col(k+2).head(lr) -= tau*tmp;
+          m_T.template middleCols<2>(k).topRows(lr) -= (tau*tmp) * essential2.adjoint();
+        }
+        if (m_computeQZ)
+        {
+          // Z
+          Map<Matrix<Scalar,1,Dynamic> > tmp(m_workspace.data(),dim);
+          tmp = essential2.adjoint()*(m_Z.template middleRows<2>(k));
+          tmp += m_Z.row(k+2);
+          m_Z.row(k+2) -= tau*tmp;
+          m_Z.template middleRows<2>(k) -= essential2 * (tau*tmp);
+        }
+        m_T.coeffRef(k+2,k) = m_T.coeffRef(k+2,k+1) = Scalar(0.0);
+
+        // Z_{k2} to annihilate T(k+1,k)
+        G.makeGivens(m_T.coeff(k+1,k+1), m_T.coeff(k+1,k));
+        m_S.applyOnTheRight(k+1,k,G);
+        m_T.applyOnTheRight(k+1,k,G);
+        // update Z
+        if (m_computeQZ)
+          m_Z.applyOnTheLeft(k+1,k,G.adjoint());
+        m_T.coeffRef(k+1,k) = Scalar(0.0);
+
+        // update x,y,z
+        x = m_S.coeff(k+1,k);
+        y = m_S.coeff(k+2,k);
+        if (k < l-2)
+          z = m_S.coeff(k+3,k);
+      } // loop over k
+
+      // Q_{n-1} to annihilate y = S(l,l-2)
+      G.makeGivens(x,y);
+      m_S.applyOnTheLeft(l-1,l,G.adjoint());
+      m_T.applyOnTheLeft(l-1,l,G.adjoint());
+      if (m_computeQZ)
+        m_Q.applyOnTheRight(l-1,l,G);
+      m_S.coeffRef(l,l-2) = Scalar(0.0);
+
+      // Z_{n-1} to annihilate T(l,l-1)
+      G.makeGivens(m_T.coeff(l,l),m_T.coeff(l,l-1));
+      m_S.applyOnTheRight(l,l-1,G);
+      m_T.applyOnTheRight(l,l-1,G);
+      if (m_computeQZ)
+        m_Z.applyOnTheLeft(l,l-1,G.adjoint());
+      m_T.coeffRef(l,l-1) = Scalar(0.0);
+    }
+
+
+  template<typename MatrixType>
+    RealQZ<MatrixType>& RealQZ<MatrixType>::compute(const MatrixType& A_in, const MatrixType& B_in, bool computeQZ)
+    {
+
+      const Index dim = A_in.cols();
+
+      eigen_assert (A_in.rows()==dim && A_in.cols()==dim 
+          && B_in.rows()==dim && B_in.cols()==dim 
+          && "Need square matrices of the same dimension");
+
+      m_isInitialized = true;
+      m_computeQZ = computeQZ;
+      m_S = A_in; m_T = B_in;
+      m_workspace.resize(dim*2);
+      m_global_iter = 0;
+
+      // entrance point: hessenberg triangular decomposition
+      hessenbergTriangular();
+      // compute L1 vector norms of T, S into m_normOfS, m_normOfT
+      computeNorms();
+
+      Index l = dim-1, 
+            f, 
+            local_iter = 0;
+
+      while (l>0 && local_iter<m_maxIters)
+      {
+        f = findSmallSubdiagEntry(l);
+        // now rows and columns f..l (including) decouple from the rest of the problem
+        if (f>0) m_S.coeffRef(f,f-1) = Scalar(0.0);
+        if (f == l) // One root found
+        {
+          l--;
+          local_iter = 0;
+        }
+        else if (f == l-1) // Two roots found
+        {
+          splitOffTwoRows(f);
+          l -= 2;
+          local_iter = 0;
+        }
+        else // No convergence yet
+        {
+          // if there's zero on diagonal of T, we can isolate an eigenvalue with Givens rotations
+          Index z = findSmallDiagEntry(f,l);
+          if (z>=f)
+          {
+            // zero found
+            pushDownZero(z,f,l);
+          }
+          else
+          {
+            // We are sure now that S.block(f,f, l-f+1,l-f+1) is underuced upper-Hessenberg 
+            // and T.block(f,f, l-f+1,l-f+1) is invertible uper-triangular, which allows to
+            // apply a QR-like iteration to rows and columns f..l.
+            step(f,l, local_iter);
+            local_iter++;
+            m_global_iter++;
+          }
+        }
+      }
+      // check if we converged before reaching iterations limit
+      m_info = (local_iter<m_maxIters) ? Success : NoConvergence;
+      return *this;
+    } // end compute
+
+} // end namespace Eigen
+
+#endif //EIGEN_REAL_QZ
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/ComplexSchur_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/ComplexSchur_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/ComplexSchur_MKL.h	(revision 2476)
@@ -0,0 +1,93 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *    Complex Schur needed to complex unsymmetrical eigenvalues/eigenvectors.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_COMPLEX_SCHUR_MKL_H
+#define EIGEN_COMPLEX_SCHUR_MKL_H
+
+#include "Eigen/src/Core/util/MKL_support.h"
+
+namespace Eigen { 
+
+/** \internal Specialization for the data types supported by MKL */
+
+#define EIGEN_MKL_SCHUR_COMPLEX(EIGTYPE, MKLTYPE, MKLPREFIX, MKLPREFIX_U, EIGCOLROW, MKLCOLROW) \
+template<> inline \
+ComplexSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >& \
+ComplexSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >::compute(const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW>& matrix, bool computeU) \
+{ \
+  typedef Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> MatrixType; \
+  typedef MatrixType::RealScalar RealScalar; \
+  typedef std::complex<RealScalar> ComplexScalar; \
+\
+  eigen_assert(matrix.cols() == matrix.rows()); \
+\
+  m_matUisUptodate = false; \
+  if(matrix.cols() == 1) \
+  { \
+    m_matT = matrix.cast<ComplexScalar>(); \
+    if(computeU)  m_matU = ComplexMatrixType::Identity(1,1); \
+      m_info = Success; \
+      m_isInitialized = true; \
+      m_matUisUptodate = computeU; \
+      return *this; \
+  } \
+  lapack_int n = matrix.cols(), sdim, info; \
+  lapack_int lda = matrix.outerStride(); \
+  lapack_int matrix_order = MKLCOLROW; \
+  char jobvs, sort='N'; \
+  LAPACK_##MKLPREFIX_U##_SELECT1 select = 0; \
+  jobvs = (computeU) ? 'V' : 'N'; \
+  m_matU.resize(n, n); \
+  lapack_int ldvs  = m_matU.outerStride(); \
+  m_matT = matrix; \
+  Matrix<EIGTYPE, Dynamic, Dynamic> w; \
+  w.resize(n, 1);\
+  info = LAPACKE_##MKLPREFIX##gees( matrix_order, jobvs, sort, select, n, (MKLTYPE*)m_matT.data(), lda, &sdim, (MKLTYPE*)w.data(), (MKLTYPE*)m_matU.data(), ldvs ); \
+  if(info == 0) \
+    m_info = Success; \
+  else \
+    m_info = NoConvergence; \
+\
+  m_isInitialized = true; \
+  m_matUisUptodate = computeU; \
+  return *this; \
+\
+}
+
+EIGEN_MKL_SCHUR_COMPLEX(dcomplex, MKL_Complex16, z, Z, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SCHUR_COMPLEX(scomplex, MKL_Complex8,  c, C, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SCHUR_COMPLEX(dcomplex, MKL_Complex16, z, Z, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_SCHUR_COMPLEX(scomplex, MKL_Complex8,  c, C, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_SCHUR_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h	(revision 2476)
@@ -0,0 +1,227 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERALIZEDSELFADJOINTEIGENSOLVER_H
+#define EIGEN_GENERALIZEDSELFADJOINTEIGENSOLVER_H
+
+#include "./Tridiagonalization.h"
+
+namespace Eigen { 
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class GeneralizedSelfAdjointEigenSolver
+  *
+  * \brief Computes eigenvalues and eigenvectors of the generalized selfadjoint eigen problem
+  *
+  * \tparam _MatrixType the type of the matrix of which we are computing the
+  * eigendecomposition; this is expected to be an instantiation of the Matrix
+  * class template.
+  *
+  * This class solves the generalized eigenvalue problem
+  * \f$ Av = \lambda Bv \f$. In this case, the matrix \f$ A \f$ should be
+  * selfadjoint and the matrix \f$ B \f$ should be positive definite.
+  *
+  * Only the \b lower \b triangular \b part of the input matrix is referenced.
+  *
+  * Call the function compute() to compute the eigenvalues and eigenvectors of
+  * a given matrix. Alternatively, you can use the
+  * GeneralizedSelfAdjointEigenSolver(const MatrixType&, const MatrixType&, int)
+  * constructor which computes the eigenvalues and eigenvectors at construction time.
+  * Once the eigenvalue and eigenvectors are computed, they can be retrieved with the eigenvalues()
+  * and eigenvectors() functions.
+  *
+  * The documentation for GeneralizedSelfAdjointEigenSolver(const MatrixType&, const MatrixType&, int)
+  * contains an example of the typical use of this class.
+  *
+  * \sa class SelfAdjointEigenSolver, class EigenSolver, class ComplexEigenSolver
+  */
+template<typename _MatrixType>
+class GeneralizedSelfAdjointEigenSolver : public SelfAdjointEigenSolver<_MatrixType>
+{
+    typedef SelfAdjointEigenSolver<_MatrixType> Base;
+  public:
+
+    typedef typename Base::Index Index;
+    typedef _MatrixType MatrixType;
+
+    /** \brief Default constructor for fixed-size matrices.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via compute(). This constructor
+      * can only be used if \p _MatrixType is a fixed-size matrix; use
+      * GeneralizedSelfAdjointEigenSolver(Index) for dynamic-size matrices.
+      */
+    GeneralizedSelfAdjointEigenSolver() : Base() {}
+
+    /** \brief Constructor, pre-allocates memory for dynamic-size matrices.
+      *
+      * \param [in]  size  Positive integer, size of the matrix whose
+      * eigenvalues and eigenvectors will be computed.
+      *
+      * This constructor is useful for dynamic-size matrices, when the user
+      * intends to perform decompositions via compute(). The \p size
+      * parameter is only used as a hint. It is not an error to give a wrong
+      * \p size, but it may impair performance.
+      *
+      * \sa compute() for an example
+      */
+    GeneralizedSelfAdjointEigenSolver(Index size)
+        : Base(size)
+    {}
+
+    /** \brief Constructor; computes generalized eigendecomposition of given matrix pencil.
+      *
+      * \param[in]  matA  Selfadjoint matrix in matrix pencil.
+      *                   Only the lower triangular part of the matrix is referenced.
+      * \param[in]  matB  Positive-definite matrix in matrix pencil.
+      *                   Only the lower triangular part of the matrix is referenced.
+      * \param[in]  options A or-ed set of flags {#ComputeEigenvectors,#EigenvaluesOnly} | {#Ax_lBx,#ABx_lx,#BAx_lx}.
+      *                     Default is #ComputeEigenvectors|#Ax_lBx.
+      *
+      * This constructor calls compute(const MatrixType&, const MatrixType&, int)
+      * to compute the eigenvalues and (if requested) the eigenvectors of the
+      * generalized eigenproblem \f$ Ax = \lambda B x \f$ with \a matA the
+      * selfadjoint matrix \f$ A \f$ and \a matB the positive definite matrix
+      * \f$ B \f$. Each eigenvector \f$ x \f$ satisfies the property
+      * \f$ x^* B x = 1 \f$. The eigenvectors are computed if
+      * \a options contains ComputeEigenvectors.
+      *
+      * In addition, the two following variants can be solved via \p options:
+      * - \c ABx_lx: \f$ ABx = \lambda x \f$
+      * - \c BAx_lx: \f$ BAx = \lambda x \f$
+      *
+      * Example: \include SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType2.out
+      *
+      * \sa compute(const MatrixType&, const MatrixType&, int)
+      */
+    GeneralizedSelfAdjointEigenSolver(const MatrixType& matA, const MatrixType& matB,
+                                      int options = ComputeEigenvectors|Ax_lBx)
+      : Base(matA.cols())
+    {
+      compute(matA, matB, options);
+    }
+
+    /** \brief Computes generalized eigendecomposition of given matrix pencil.
+      *
+      * \param[in]  matA  Selfadjoint matrix in matrix pencil.
+      *                   Only the lower triangular part of the matrix is referenced.
+      * \param[in]  matB  Positive-definite matrix in matrix pencil.
+      *                   Only the lower triangular part of the matrix is referenced.
+      * \param[in]  options A or-ed set of flags {#ComputeEigenvectors,#EigenvaluesOnly} | {#Ax_lBx,#ABx_lx,#BAx_lx}.
+      *                     Default is #ComputeEigenvectors|#Ax_lBx.
+      *
+      * \returns    Reference to \c *this
+      *
+      * Accoring to \p options, this function computes eigenvalues and (if requested)
+      * the eigenvectors of one of the following three generalized eigenproblems:
+      * - \c Ax_lBx: \f$ Ax = \lambda B x \f$
+      * - \c ABx_lx: \f$ ABx = \lambda x \f$
+      * - \c BAx_lx: \f$ BAx = \lambda x \f$
+      * with \a matA the selfadjoint matrix \f$ A \f$ and \a matB the positive definite
+      * matrix \f$ B \f$.
+      * In addition, each eigenvector \f$ x \f$ satisfies the property \f$ x^* B x = 1 \f$.
+      *
+      * The eigenvalues() function can be used to retrieve
+      * the eigenvalues. If \p options contains ComputeEigenvectors, then the
+      * eigenvectors are also computed and can be retrieved by calling
+      * eigenvectors().
+      *
+      * The implementation uses LLT to compute the Cholesky decomposition
+      * \f$ B = LL^* \f$ and computes the classical eigendecomposition
+      * of the selfadjoint matrix \f$ L^{-1} A (L^*)^{-1} \f$ if \p options contains Ax_lBx
+      * and of \f$ L^{*} A L \f$ otherwise. This solves the
+      * generalized eigenproblem, because any solution of the generalized
+      * eigenproblem \f$ Ax = \lambda B x \f$ corresponds to a solution
+      * \f$ L^{-1} A (L^*)^{-1} (L^* x) = \lambda (L^* x) \f$ of the
+      * eigenproblem for \f$ L^{-1} A (L^*)^{-1} \f$. Similar statements
+      * can be made for the two other variants.
+      *
+      * Example: \include SelfAdjointEigenSolver_compute_MatrixType2.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_compute_MatrixType2.out
+      *
+      * \sa GeneralizedSelfAdjointEigenSolver(const MatrixType&, const MatrixType&, int)
+      */
+    GeneralizedSelfAdjointEigenSolver& compute(const MatrixType& matA, const MatrixType& matB,
+                                               int options = ComputeEigenvectors|Ax_lBx);
+
+  protected:
+
+};
+
+
+template<typename MatrixType>
+GeneralizedSelfAdjointEigenSolver<MatrixType>& GeneralizedSelfAdjointEigenSolver<MatrixType>::
+compute(const MatrixType& matA, const MatrixType& matB, int options)
+{
+  eigen_assert(matA.cols()==matA.rows() && matB.rows()==matA.rows() && matB.cols()==matB.rows());
+  eigen_assert((options&~(EigVecMask|GenEigMask))==0
+          && (options&EigVecMask)!=EigVecMask
+          && ((options&GenEigMask)==0 || (options&GenEigMask)==Ax_lBx
+           || (options&GenEigMask)==ABx_lx || (options&GenEigMask)==BAx_lx)
+          && "invalid option parameter");
+
+  bool computeEigVecs = ((options&EigVecMask)==0) || ((options&EigVecMask)==ComputeEigenvectors);
+
+  // Compute the cholesky decomposition of matB = L L' = U'U
+  LLT<MatrixType> cholB(matB);
+
+  int type = (options&GenEigMask);
+  if(type==0)
+    type = Ax_lBx;
+
+  if(type==Ax_lBx)
+  {
+    // compute C = inv(L) A inv(L')
+    MatrixType matC = matA.template selfadjointView<Lower>();
+    cholB.matrixL().template solveInPlace<OnTheLeft>(matC);
+    cholB.matrixU().template solveInPlace<OnTheRight>(matC);
+
+    Base::compute(matC, computeEigVecs ? ComputeEigenvectors : EigenvaluesOnly );
+
+    // transform back the eigen vectors: evecs = inv(U) * evecs
+    if(computeEigVecs)
+      cholB.matrixU().solveInPlace(Base::m_eivec);
+  }
+  else if(type==ABx_lx)
+  {
+    // compute C = L' A L
+    MatrixType matC = matA.template selfadjointView<Lower>();
+    matC = matC * cholB.matrixL();
+    matC = cholB.matrixU() * matC;
+
+    Base::compute(matC, computeEigVecs ? ComputeEigenvectors : EigenvaluesOnly);
+
+    // transform back the eigen vectors: evecs = inv(U) * evecs
+    if(computeEigVecs)
+      cholB.matrixU().solveInPlace(Base::m_eivec);
+  }
+  else if(type==BAx_lx)
+  {
+    // compute C = L' A L
+    MatrixType matC = matA.template selfadjointView<Lower>();
+    matC = matC * cholB.matrixL();
+    matC = cholB.matrixU() * matC;
+
+    Base::compute(matC, computeEigVecs ? ComputeEigenvectors : EigenvaluesOnly);
+
+    // transform back the eigen vectors: evecs = L * evecs
+    if(computeEigVecs)
+      Base::m_eivec = cholB.matrixL() * Base::m_eivec;
+  }
+
+  return *this;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERALIZEDSELFADJOINTEIGENSOLVER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/EigenSolver.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/EigenSolver.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/EigenSolver.h	(revision 2476)
@@ -0,0 +1,607 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_EIGENSOLVER_H
+#define EIGEN_EIGENSOLVER_H
+
+#include "./RealSchur.h"
+
+namespace Eigen { 
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class EigenSolver
+  *
+  * \brief Computes eigenvalues and eigenvectors of general matrices
+  *
+  * \tparam _MatrixType the type of the matrix of which we are computing the
+  * eigendecomposition; this is expected to be an instantiation of the Matrix
+  * class template. Currently, only real matrices are supported.
+  *
+  * The eigenvalues and eigenvectors of a matrix \f$ A \f$ are scalars
+  * \f$ \lambda \f$ and vectors \f$ v \f$ such that \f$ Av = \lambda v \f$.  If
+  * \f$ D \f$ is a diagonal matrix with the eigenvalues on the diagonal, and
+  * \f$ V \f$ is a matrix with the eigenvectors as its columns, then \f$ A V =
+  * V D \f$. The matrix \f$ V \f$ is almost always invertible, in which case we
+  * have \f$ A = V D V^{-1} \f$. This is called the eigendecomposition.
+  *
+  * The eigenvalues and eigenvectors of a matrix may be complex, even when the
+  * matrix is real. However, we can choose real matrices \f$ V \f$ and \f$ D
+  * \f$ satisfying \f$ A V = V D \f$, just like the eigendecomposition, if the
+  * matrix \f$ D \f$ is not required to be diagonal, but if it is allowed to
+  * have blocks of the form
+  * \f[ \begin{bmatrix} u & v \\ -v & u \end{bmatrix} \f]
+  * (where \f$ u \f$ and \f$ v \f$ are real numbers) on the diagonal.  These
+  * blocks correspond to complex eigenvalue pairs \f$ u \pm iv \f$. We call
+  * this variant of the eigendecomposition the pseudo-eigendecomposition.
+  *
+  * Call the function compute() to compute the eigenvalues and eigenvectors of
+  * a given matrix. Alternatively, you can use the 
+  * EigenSolver(const MatrixType&, bool) constructor which computes the
+  * eigenvalues and eigenvectors at construction time. Once the eigenvalue and
+  * eigenvectors are computed, they can be retrieved with the eigenvalues() and
+  * eigenvectors() functions. The pseudoEigenvalueMatrix() and
+  * pseudoEigenvectors() methods allow the construction of the
+  * pseudo-eigendecomposition.
+  *
+  * The documentation for EigenSolver(const MatrixType&, bool) contains an
+  * example of the typical use of this class.
+  *
+  * \note The implementation is adapted from
+  * <a href="http://math.nist.gov/javanumerics/jama/">JAMA</a> (public domain).
+  * Their code is based on EISPACK.
+  *
+  * \sa MatrixBase::eigenvalues(), class ComplexEigenSolver, class SelfAdjointEigenSolver
+  */
+template<typename _MatrixType> class EigenSolver
+{
+  public:
+
+    /** \brief Synonym for the template parameter \p _MatrixType. */
+    typedef _MatrixType MatrixType;
+
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+
+    /** \brief Scalar type for matrices of type #MatrixType. */
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    /** \brief Complex scalar type for #MatrixType. 
+      *
+      * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
+      * \c float or \c double) and just \c Scalar if #Scalar is
+      * complex.
+      */
+    typedef std::complex<RealScalar> ComplexScalar;
+
+    /** \brief Type for vector of eigenvalues as returned by eigenvalues(). 
+      *
+      * This is a column vector with entries of type #ComplexScalar.
+      * The length of the vector is the size of #MatrixType.
+      */
+    typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> EigenvalueType;
+
+    /** \brief Type for matrix of eigenvectors as returned by eigenvectors(). 
+      *
+      * This is a square matrix with entries of type #ComplexScalar. 
+      * The size is the same as the size of #MatrixType.
+      */
+    typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorsType;
+
+    /** \brief Default constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via EigenSolver::compute(const MatrixType&, bool).
+      *
+      * \sa compute() for an example.
+      */
+ EigenSolver() : m_eivec(), m_eivalues(), m_isInitialized(false), m_realSchur(), m_matT(), m_tmp() {}
+
+    /** \brief Default constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa EigenSolver()
+      */
+    EigenSolver(Index size)
+      : m_eivec(size, size),
+        m_eivalues(size),
+        m_isInitialized(false),
+        m_eigenvectorsOk(false),
+        m_realSchur(size),
+        m_matT(size, size), 
+        m_tmp(size)
+    {}
+
+    /** \brief Constructor; computes eigendecomposition of given matrix. 
+      * 
+      * \param[in]  matrix  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
+      *    eigenvalues are computed; if false, only the eigenvalues are
+      *    computed. 
+      *
+      * This constructor calls compute() to compute the eigenvalues
+      * and eigenvectors.
+      *
+      * Example: \include EigenSolver_EigenSolver_MatrixType.cpp
+      * Output: \verbinclude EigenSolver_EigenSolver_MatrixType.out
+      *
+      * \sa compute()
+      */
+    EigenSolver(const MatrixType& matrix, bool computeEigenvectors = true)
+      : m_eivec(matrix.rows(), matrix.cols()),
+        m_eivalues(matrix.cols()),
+        m_isInitialized(false),
+        m_eigenvectorsOk(false),
+        m_realSchur(matrix.cols()),
+        m_matT(matrix.rows(), matrix.cols()), 
+        m_tmp(matrix.cols())
+    {
+      compute(matrix, computeEigenvectors);
+    }
+
+    /** \brief Returns the eigenvectors of given matrix. 
+      *
+      * \returns  %Matrix whose columns are the (possibly complex) eigenvectors.
+      *
+      * \pre Either the constructor 
+      * EigenSolver(const MatrixType&,bool) or the member function
+      * compute(const MatrixType&, bool) has been called before, and
+      * \p computeEigenvectors was set to true (the default).
+      *
+      * Column \f$ k \f$ of the returned matrix is an eigenvector corresponding
+      * to eigenvalue number \f$ k \f$ as returned by eigenvalues().  The
+      * eigenvectors are normalized to have (Euclidean) norm equal to one. The
+      * matrix returned by this function is the matrix \f$ V \f$ in the
+      * eigendecomposition \f$ A = V D V^{-1} \f$, if it exists.
+      *
+      * Example: \include EigenSolver_eigenvectors.cpp
+      * Output: \verbinclude EigenSolver_eigenvectors.out
+      *
+      * \sa eigenvalues(), pseudoEigenvectors()
+      */
+    EigenvectorsType eigenvectors() const;
+
+    /** \brief Returns the pseudo-eigenvectors of given matrix. 
+      *
+      * \returns  Const reference to matrix whose columns are the pseudo-eigenvectors.
+      *
+      * \pre Either the constructor 
+      * EigenSolver(const MatrixType&,bool) or the member function
+      * compute(const MatrixType&, bool) has been called before, and
+      * \p computeEigenvectors was set to true (the default).
+      *
+      * The real matrix \f$ V \f$ returned by this function and the
+      * block-diagonal matrix \f$ D \f$ returned by pseudoEigenvalueMatrix()
+      * satisfy \f$ AV = VD \f$.
+      *
+      * Example: \include EigenSolver_pseudoEigenvectors.cpp
+      * Output: \verbinclude EigenSolver_pseudoEigenvectors.out
+      *
+      * \sa pseudoEigenvalueMatrix(), eigenvectors()
+      */
+    const MatrixType& pseudoEigenvectors() const
+    {
+      eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+      return m_eivec;
+    }
+
+    /** \brief Returns the block-diagonal matrix in the pseudo-eigendecomposition.
+      *
+      * \returns  A block-diagonal matrix.
+      *
+      * \pre Either the constructor 
+      * EigenSolver(const MatrixType&,bool) or the member function
+      * compute(const MatrixType&, bool) has been called before.
+      *
+      * The matrix \f$ D \f$ returned by this function is real and
+      * block-diagonal. The blocks on the diagonal are either 1-by-1 or 2-by-2
+      * blocks of the form
+      * \f$ \begin{bmatrix} u & v \\ -v & u \end{bmatrix} \f$.
+      * These blocks are not sorted in any particular order.
+      * The matrix \f$ D \f$ and the matrix \f$ V \f$ returned by
+      * pseudoEigenvectors() satisfy \f$ AV = VD \f$.
+      *
+      * \sa pseudoEigenvectors() for an example, eigenvalues()
+      */
+    MatrixType pseudoEigenvalueMatrix() const;
+
+    /** \brief Returns the eigenvalues of given matrix. 
+      *
+      * \returns A const reference to the column vector containing the eigenvalues.
+      *
+      * \pre Either the constructor 
+      * EigenSolver(const MatrixType&,bool) or the member function
+      * compute(const MatrixType&, bool) has been called before.
+      *
+      * The eigenvalues are repeated according to their algebraic multiplicity,
+      * so there are as many eigenvalues as rows in the matrix. The eigenvalues 
+      * are not sorted in any particular order.
+      *
+      * Example: \include EigenSolver_eigenvalues.cpp
+      * Output: \verbinclude EigenSolver_eigenvalues.out
+      *
+      * \sa eigenvectors(), pseudoEigenvalueMatrix(),
+      *     MatrixBase::eigenvalues()
+      */
+    const EigenvalueType& eigenvalues() const
+    {
+      eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+      return m_eivalues;
+    }
+
+    /** \brief Computes eigendecomposition of given matrix. 
+      * 
+      * \param[in]  matrix  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
+      *    eigenvalues are computed; if false, only the eigenvalues are
+      *    computed. 
+      * \returns    Reference to \c *this
+      *
+      * This function computes the eigenvalues of the real matrix \p matrix.
+      * The eigenvalues() function can be used to retrieve them.  If 
+      * \p computeEigenvectors is true, then the eigenvectors are also computed
+      * and can be retrieved by calling eigenvectors().
+      *
+      * The matrix is first reduced to real Schur form using the RealSchur
+      * class. The Schur decomposition is then used to compute the eigenvalues
+      * and eigenvectors.
+      *
+      * The cost of the computation is dominated by the cost of the
+      * Schur decomposition, which is very approximately \f$ 25n^3 \f$
+      * (where \f$ n \f$ is the size of the matrix) if \p computeEigenvectors 
+      * is true, and \f$ 10n^3 \f$ if \p computeEigenvectors is false.
+      *
+      * This method reuses of the allocated data in the EigenSolver object.
+      *
+      * Example: \include EigenSolver_compute.cpp
+      * Output: \verbinclude EigenSolver_compute.out
+      */
+    EigenSolver& compute(const MatrixType& matrix, bool computeEigenvectors = true);
+
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+      return m_realSchur.info();
+    }
+
+    /** \brief Sets the maximum number of iterations allowed. */
+    EigenSolver& setMaxIterations(Index maxIters)
+    {
+      m_realSchur.setMaxIterations(maxIters);
+      return *this;
+    }
+
+    /** \brief Returns the maximum number of iterations. */
+    Index getMaxIterations()
+    {
+      return m_realSchur.getMaxIterations();
+    }
+
+  private:
+    void doComputeEigenvectors();
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+      EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL);
+    }
+    
+    MatrixType m_eivec;
+    EigenvalueType m_eivalues;
+    bool m_isInitialized;
+    bool m_eigenvectorsOk;
+    RealSchur<MatrixType> m_realSchur;
+    MatrixType m_matT;
+
+    typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
+    ColumnVectorType m_tmp;
+};
+
+template<typename MatrixType>
+MatrixType EigenSolver<MatrixType>::pseudoEigenvalueMatrix() const
+{
+  eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+  Index n = m_eivalues.rows();
+  MatrixType matD = MatrixType::Zero(n,n);
+  for (Index i=0; i<n; ++i)
+  {
+    if (internal::isMuchSmallerThan(numext::imag(m_eivalues.coeff(i)), numext::real(m_eivalues.coeff(i))))
+      matD.coeffRef(i,i) = numext::real(m_eivalues.coeff(i));
+    else
+    {
+      matD.template block<2,2>(i,i) <<  numext::real(m_eivalues.coeff(i)), numext::imag(m_eivalues.coeff(i)),
+                                       -numext::imag(m_eivalues.coeff(i)), numext::real(m_eivalues.coeff(i));
+      ++i;
+    }
+  }
+  return matD;
+}
+
+template<typename MatrixType>
+typename EigenSolver<MatrixType>::EigenvectorsType EigenSolver<MatrixType>::eigenvectors() const
+{
+  eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+  eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+  Index n = m_eivec.cols();
+  EigenvectorsType matV(n,n);
+  for (Index j=0; j<n; ++j)
+  {
+    if (internal::isMuchSmallerThan(numext::imag(m_eivalues.coeff(j)), numext::real(m_eivalues.coeff(j))) || j+1==n)
+    {
+      // we have a real eigen value
+      matV.col(j) = m_eivec.col(j).template cast<ComplexScalar>();
+      matV.col(j).normalize();
+    }
+    else
+    {
+      // we have a pair of complex eigen values
+      for (Index i=0; i<n; ++i)
+      {
+        matV.coeffRef(i,j)   = ComplexScalar(m_eivec.coeff(i,j),  m_eivec.coeff(i,j+1));
+        matV.coeffRef(i,j+1) = ComplexScalar(m_eivec.coeff(i,j), -m_eivec.coeff(i,j+1));
+      }
+      matV.col(j).normalize();
+      matV.col(j+1).normalize();
+      ++j;
+    }
+  }
+  return matV;
+}
+
+template<typename MatrixType>
+EigenSolver<MatrixType>& 
+EigenSolver<MatrixType>::compute(const MatrixType& matrix, bool computeEigenvectors)
+{
+  check_template_parameters();
+  
+  using std::sqrt;
+  using std::abs;
+  eigen_assert(matrix.cols() == matrix.rows());
+
+  // Reduce to real Schur form.
+  m_realSchur.compute(matrix, computeEigenvectors);
+
+  if (m_realSchur.info() == Success)
+  {
+    m_matT = m_realSchur.matrixT();
+    if (computeEigenvectors)
+      m_eivec = m_realSchur.matrixU();
+  
+    // Compute eigenvalues from matT
+    m_eivalues.resize(matrix.cols());
+    Index i = 0;
+    while (i < matrix.cols()) 
+    {
+      if (i == matrix.cols() - 1 || m_matT.coeff(i+1, i) == Scalar(0)) 
+      {
+        m_eivalues.coeffRef(i) = m_matT.coeff(i, i);
+        ++i;
+      }
+      else
+      {
+        Scalar p = Scalar(0.5) * (m_matT.coeff(i, i) - m_matT.coeff(i+1, i+1));
+        Scalar z = sqrt(abs(p * p + m_matT.coeff(i+1, i) * m_matT.coeff(i, i+1)));
+        m_eivalues.coeffRef(i)   = ComplexScalar(m_matT.coeff(i+1, i+1) + p, z);
+        m_eivalues.coeffRef(i+1) = ComplexScalar(m_matT.coeff(i+1, i+1) + p, -z);
+        i += 2;
+      }
+    }
+    
+    // Compute eigenvectors.
+    if (computeEigenvectors)
+      doComputeEigenvectors();
+  }
+
+  m_isInitialized = true;
+  m_eigenvectorsOk = computeEigenvectors;
+
+  return *this;
+}
+
+// Complex scalar division.
+template<typename Scalar>
+std::complex<Scalar> cdiv(const Scalar& xr, const Scalar& xi, const Scalar& yr, const Scalar& yi)
+{
+  using std::abs;
+  Scalar r,d;
+  if (abs(yr) > abs(yi))
+  {
+      r = yi/yr;
+      d = yr + r*yi;
+      return std::complex<Scalar>((xr + r*xi)/d, (xi - r*xr)/d);
+  }
+  else
+  {
+      r = yr/yi;
+      d = yi + r*yr;
+      return std::complex<Scalar>((r*xr + xi)/d, (r*xi - xr)/d);
+  }
+}
+
+
+template<typename MatrixType>
+void EigenSolver<MatrixType>::doComputeEigenvectors()
+{
+  using std::abs;
+  const Index size = m_eivec.cols();
+  const Scalar eps = NumTraits<Scalar>::epsilon();
+
+  // inefficient! this is already computed in RealSchur
+  Scalar norm(0);
+  for (Index j = 0; j < size; ++j)
+  {
+    norm += m_matT.row(j).segment((std::max)(j-1,Index(0)), size-(std::max)(j-1,Index(0))).cwiseAbs().sum();
+  }
+  
+  // Backsubstitute to find vectors of upper triangular form
+  if (norm == 0.0)
+  {
+    return;
+  }
+
+  for (Index n = size-1; n >= 0; n--)
+  {
+    Scalar p = m_eivalues.coeff(n).real();
+    Scalar q = m_eivalues.coeff(n).imag();
+
+    // Scalar vector
+    if (q == Scalar(0))
+    {
+      Scalar lastr(0), lastw(0);
+      Index l = n;
+
+      m_matT.coeffRef(n,n) = 1.0;
+      for (Index i = n-1; i >= 0; i--)
+      {
+        Scalar w = m_matT.coeff(i,i) - p;
+        Scalar r = m_matT.row(i).segment(l,n-l+1).dot(m_matT.col(n).segment(l, n-l+1));
+
+        if (m_eivalues.coeff(i).imag() < 0.0)
+        {
+          lastw = w;
+          lastr = r;
+        }
+        else
+        {
+          l = i;
+          if (m_eivalues.coeff(i).imag() == 0.0)
+          {
+            if (w != 0.0)
+              m_matT.coeffRef(i,n) = -r / w;
+            else
+              m_matT.coeffRef(i,n) = -r / (eps * norm);
+          }
+          else // Solve real equations
+          {
+            Scalar x = m_matT.coeff(i,i+1);
+            Scalar y = m_matT.coeff(i+1,i);
+            Scalar denom = (m_eivalues.coeff(i).real() - p) * (m_eivalues.coeff(i).real() - p) + m_eivalues.coeff(i).imag() * m_eivalues.coeff(i).imag();
+            Scalar t = (x * lastr - lastw * r) / denom;
+            m_matT.coeffRef(i,n) = t;
+            if (abs(x) > abs(lastw))
+              m_matT.coeffRef(i+1,n) = (-r - w * t) / x;
+            else
+              m_matT.coeffRef(i+1,n) = (-lastr - y * t) / lastw;
+          }
+
+          // Overflow control
+          Scalar t = abs(m_matT.coeff(i,n));
+          if ((eps * t) * t > Scalar(1))
+            m_matT.col(n).tail(size-i) /= t;
+        }
+      }
+    }
+    else if (q < Scalar(0) && n > 0) // Complex vector
+    {
+      Scalar lastra(0), lastsa(0), lastw(0);
+      Index l = n-1;
+
+      // Last vector component imaginary so matrix is triangular
+      if (abs(m_matT.coeff(n,n-1)) > abs(m_matT.coeff(n-1,n)))
+      {
+        m_matT.coeffRef(n-1,n-1) = q / m_matT.coeff(n,n-1);
+        m_matT.coeffRef(n-1,n) = -(m_matT.coeff(n,n) - p) / m_matT.coeff(n,n-1);
+      }
+      else
+      {
+        std::complex<Scalar> cc = cdiv<Scalar>(0.0,-m_matT.coeff(n-1,n),m_matT.coeff(n-1,n-1)-p,q);
+        m_matT.coeffRef(n-1,n-1) = numext::real(cc);
+        m_matT.coeffRef(n-1,n) = numext::imag(cc);
+      }
+      m_matT.coeffRef(n,n-1) = 0.0;
+      m_matT.coeffRef(n,n) = 1.0;
+      for (Index i = n-2; i >= 0; i--)
+      {
+        Scalar ra = m_matT.row(i).segment(l, n-l+1).dot(m_matT.col(n-1).segment(l, n-l+1));
+        Scalar sa = m_matT.row(i).segment(l, n-l+1).dot(m_matT.col(n).segment(l, n-l+1));
+        Scalar w = m_matT.coeff(i,i) - p;
+
+        if (m_eivalues.coeff(i).imag() < 0.0)
+        {
+          lastw = w;
+          lastra = ra;
+          lastsa = sa;
+        }
+        else
+        {
+          l = i;
+          if (m_eivalues.coeff(i).imag() == RealScalar(0))
+          {
+            std::complex<Scalar> cc = cdiv(-ra,-sa,w,q);
+            m_matT.coeffRef(i,n-1) = numext::real(cc);
+            m_matT.coeffRef(i,n) = numext::imag(cc);
+          }
+          else
+          {
+            // Solve complex equations
+            Scalar x = m_matT.coeff(i,i+1);
+            Scalar y = m_matT.coeff(i+1,i);
+            Scalar vr = (m_eivalues.coeff(i).real() - p) * (m_eivalues.coeff(i).real() - p) + m_eivalues.coeff(i).imag() * m_eivalues.coeff(i).imag() - q * q;
+            Scalar vi = (m_eivalues.coeff(i).real() - p) * Scalar(2) * q;
+            if ((vr == 0.0) && (vi == 0.0))
+              vr = eps * norm * (abs(w) + abs(q) + abs(x) + abs(y) + abs(lastw));
+
+            std::complex<Scalar> cc = cdiv(x*lastra-lastw*ra+q*sa,x*lastsa-lastw*sa-q*ra,vr,vi);
+            m_matT.coeffRef(i,n-1) = numext::real(cc);
+            m_matT.coeffRef(i,n) = numext::imag(cc);
+            if (abs(x) > (abs(lastw) + abs(q)))
+            {
+              m_matT.coeffRef(i+1,n-1) = (-ra - w * m_matT.coeff(i,n-1) + q * m_matT.coeff(i,n)) / x;
+              m_matT.coeffRef(i+1,n) = (-sa - w * m_matT.coeff(i,n) - q * m_matT.coeff(i,n-1)) / x;
+            }
+            else
+            {
+              cc = cdiv(-lastra-y*m_matT.coeff(i,n-1),-lastsa-y*m_matT.coeff(i,n),lastw,q);
+              m_matT.coeffRef(i+1,n-1) = numext::real(cc);
+              m_matT.coeffRef(i+1,n) = numext::imag(cc);
+            }
+          }
+
+          // Overflow control
+          using std::max;
+          Scalar t = (max)(abs(m_matT.coeff(i,n-1)),abs(m_matT.coeff(i,n)));
+          if ((eps * t) * t > Scalar(1))
+            m_matT.block(i, n-1, size-i, 2) /= t;
+
+        }
+      }
+      
+      // We handled a pair of complex conjugate eigenvalues, so need to skip them both
+      n--;
+    }
+    else
+    {
+      eigen_assert(0 && "Internal bug in EigenSolver"); // this should not happen
+    }
+  }
+
+  // Back transformation to get eigenvectors of original matrix
+  for (Index j = size-1; j >= 0; j--)
+  {
+    m_tmp.noalias() = m_eivec.leftCols(j+1) * m_matT.col(j).segment(0, j+1);
+    m_eivec.col(j) = m_tmp;
+  }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_EIGENSOLVER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/HessenbergDecomposition.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/HessenbergDecomposition.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/HessenbergDecomposition.h	(revision 2476)
@@ -0,0 +1,373 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HESSENBERGDECOMPOSITION_H
+#define EIGEN_HESSENBERGDECOMPOSITION_H
+
+namespace Eigen { 
+
+namespace internal {
+  
+template<typename MatrixType> struct HessenbergDecompositionMatrixHReturnType;
+template<typename MatrixType>
+struct traits<HessenbergDecompositionMatrixHReturnType<MatrixType> >
+{
+  typedef MatrixType ReturnType;
+};
+
+}
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class HessenbergDecomposition
+  *
+  * \brief Reduces a square matrix to Hessenberg form by an orthogonal similarity transformation
+  *
+  * \tparam _MatrixType the type of the matrix of which we are computing the Hessenberg decomposition
+  *
+  * This class performs an Hessenberg decomposition of a matrix \f$ A \f$. In
+  * the real case, the Hessenberg decomposition consists of an orthogonal
+  * matrix \f$ Q \f$ and a Hessenberg matrix \f$ H \f$ such that \f$ A = Q H
+  * Q^T \f$. An orthogonal matrix is a matrix whose inverse equals its
+  * transpose (\f$ Q^{-1} = Q^T \f$). A Hessenberg matrix has zeros below the
+  * subdiagonal, so it is almost upper triangular. The Hessenberg decomposition
+  * of a complex matrix is \f$ A = Q H Q^* \f$ with \f$ Q \f$ unitary (that is,
+  * \f$ Q^{-1} = Q^* \f$).
+  *
+  * Call the function compute() to compute the Hessenberg decomposition of a
+  * given matrix. Alternatively, you can use the
+  * HessenbergDecomposition(const MatrixType&) constructor which computes the
+  * Hessenberg decomposition at construction time. Once the decomposition is
+  * computed, you can use the matrixH() and matrixQ() functions to construct
+  * the matrices H and Q in the decomposition.
+  *
+  * The documentation for matrixH() contains an example of the typical use of
+  * this class.
+  *
+  * \sa class ComplexSchur, class Tridiagonalization, \ref QR_Module "QR Module"
+  */
+template<typename _MatrixType> class HessenbergDecomposition
+{
+  public:
+
+    /** \brief Synonym for the template parameter \p _MatrixType. */
+    typedef _MatrixType MatrixType;
+
+    enum {
+      Size = MatrixType::RowsAtCompileTime,
+      SizeMinusOne = Size == Dynamic ? Dynamic : Size - 1,
+      Options = MatrixType::Options,
+      MaxSize = MatrixType::MaxRowsAtCompileTime,
+      MaxSizeMinusOne = MaxSize == Dynamic ? Dynamic : MaxSize - 1
+    };
+
+    /** \brief Scalar type for matrices of type #MatrixType. */
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+
+    /** \brief Type for vector of Householder coefficients.
+      *
+      * This is column vector with entries of type #Scalar. The length of the
+      * vector is one less than the size of #MatrixType, if it is a fixed-side
+      * type.
+      */
+    typedef Matrix<Scalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> CoeffVectorType;
+
+    /** \brief Return type of matrixQ() */
+    typedef HouseholderSequence<MatrixType,typename internal::remove_all<typename CoeffVectorType::ConjugateReturnType>::type> HouseholderSequenceType;
+    
+    typedef internal::HessenbergDecompositionMatrixHReturnType<MatrixType> MatrixHReturnType;
+
+    /** \brief Default constructor; the decomposition will be computed later.
+      *
+      * \param [in] size  The size of the matrix whose Hessenberg decomposition will be computed.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via compute().  The \p size parameter is only
+      * used as a hint. It is not an error to give a wrong \p size, but it may
+      * impair performance.
+      *
+      * \sa compute() for an example.
+      */
+    HessenbergDecomposition(Index size = Size==Dynamic ? 2 : Size)
+      : m_matrix(size,size),
+        m_temp(size),
+        m_isInitialized(false)
+    {
+      if(size>1)
+        m_hCoeffs.resize(size-1);
+    }
+
+    /** \brief Constructor; computes Hessenberg decomposition of given matrix.
+      *
+      * \param[in]  matrix  Square matrix whose Hessenberg decomposition is to be computed.
+      *
+      * This constructor calls compute() to compute the Hessenberg
+      * decomposition.
+      *
+      * \sa matrixH() for an example.
+      */
+    HessenbergDecomposition(const MatrixType& matrix)
+      : m_matrix(matrix),
+        m_temp(matrix.rows()),
+        m_isInitialized(false)
+    {
+      if(matrix.rows()<2)
+      {
+        m_isInitialized = true;
+        return;
+      }
+      m_hCoeffs.resize(matrix.rows()-1,1);
+      _compute(m_matrix, m_hCoeffs, m_temp);
+      m_isInitialized = true;
+    }
+
+    /** \brief Computes Hessenberg decomposition of given matrix.
+      *
+      * \param[in]  matrix  Square matrix whose Hessenberg decomposition is to be computed.
+      * \returns    Reference to \c *this
+      *
+      * The Hessenberg decomposition is computed by bringing the columns of the
+      * matrix successively in the required form using Householder reflections
+      * (see, e.g., Algorithm 7.4.2 in Golub \& Van Loan, <i>%Matrix
+      * Computations</i>). The cost is \f$ 10n^3/3 \f$ flops, where \f$ n \f$
+      * denotes the size of the given matrix.
+      *
+      * This method reuses of the allocated data in the HessenbergDecomposition
+      * object.
+      *
+      * Example: \include HessenbergDecomposition_compute.cpp
+      * Output: \verbinclude HessenbergDecomposition_compute.out
+      */
+    HessenbergDecomposition& compute(const MatrixType& matrix)
+    {
+      m_matrix = matrix;
+      if(matrix.rows()<2)
+      {
+        m_isInitialized = true;
+        return *this;
+      }
+      m_hCoeffs.resize(matrix.rows()-1,1);
+      _compute(m_matrix, m_hCoeffs, m_temp);
+      m_isInitialized = true;
+      return *this;
+    }
+
+    /** \brief Returns the Householder coefficients.
+      *
+      * \returns a const reference to the vector of Householder coefficients
+      *
+      * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
+      * or the member function compute(const MatrixType&) has been called
+      * before to compute the Hessenberg decomposition of a matrix.
+      *
+      * The Householder coefficients allow the reconstruction of the matrix
+      * \f$ Q \f$ in the Hessenberg decomposition from the packed data.
+      *
+      * \sa packedMatrix(), \ref Householder_Module "Householder module"
+      */
+    const CoeffVectorType& householderCoefficients() const
+    {
+      eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
+      return m_hCoeffs;
+    }
+
+    /** \brief Returns the internal representation of the decomposition
+      *
+      *	\returns a const reference to a matrix with the internal representation
+      *	         of the decomposition.
+      *
+      * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
+      * or the member function compute(const MatrixType&) has been called
+      * before to compute the Hessenberg decomposition of a matrix.
+      *
+      * The returned matrix contains the following information:
+      *  - the upper part and lower sub-diagonal represent the Hessenberg matrix H
+      *  - the rest of the lower part contains the Householder vectors that, combined with
+      *    Householder coefficients returned by householderCoefficients(),
+      *    allows to reconstruct the matrix Q as
+      *       \f$ Q = H_{N-1} \ldots H_1 H_0 \f$.
+      *    Here, the matrices \f$ H_i \f$ are the Householder transformations
+      *       \f$ H_i = (I - h_i v_i v_i^T) \f$
+      *    where \f$ h_i \f$ is the \f$ i \f$th Householder coefficient and
+      *    \f$ v_i \f$ is the Householder vector defined by
+      *       \f$ v_i = [ 0, \ldots, 0, 1, M(i+2,i), \ldots, M(N-1,i) ]^T \f$
+      *    with M the matrix returned by this function.
+      *
+      * See LAPACK for further details on this packed storage.
+      *
+      * Example: \include HessenbergDecomposition_packedMatrix.cpp
+      * Output: \verbinclude HessenbergDecomposition_packedMatrix.out
+      *
+      * \sa householderCoefficients()
+      */
+    const MatrixType& packedMatrix() const
+    {
+      eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
+      return m_matrix;
+    }
+
+    /** \brief Reconstructs the orthogonal matrix Q in the decomposition
+      *
+      * \returns object representing the matrix Q
+      *
+      * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
+      * or the member function compute(const MatrixType&) has been called
+      * before to compute the Hessenberg decomposition of a matrix.
+      *
+      * This function returns a light-weight object of template class
+      * HouseholderSequence. You can either apply it directly to a matrix or
+      * you can convert it to a matrix of type #MatrixType.
+      *
+      * \sa matrixH() for an example, class HouseholderSequence
+      */
+    HouseholderSequenceType matrixQ() const
+    {
+      eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
+      return HouseholderSequenceType(m_matrix, m_hCoeffs.conjugate())
+             .setLength(m_matrix.rows() - 1)
+             .setShift(1);
+    }
+
+    /** \brief Constructs the Hessenberg matrix H in the decomposition
+      *
+      * \returns expression object representing the matrix H
+      *
+      * \pre Either the constructor HessenbergDecomposition(const MatrixType&)
+      * or the member function compute(const MatrixType&) has been called
+      * before to compute the Hessenberg decomposition of a matrix.
+      *
+      * The object returned by this function constructs the Hessenberg matrix H
+      * when it is assigned to a matrix or otherwise evaluated. The matrix H is
+      * constructed from the packed matrix as returned by packedMatrix(): The
+      * upper part (including the subdiagonal) of the packed matrix contains
+      * the matrix H. It may sometimes be better to directly use the packed
+      * matrix instead of constructing the matrix H.
+      *
+      * Example: \include HessenbergDecomposition_matrixH.cpp
+      * Output: \verbinclude HessenbergDecomposition_matrixH.out
+      *
+      * \sa matrixQ(), packedMatrix()
+      */
+    MatrixHReturnType matrixH() const
+    {
+      eigen_assert(m_isInitialized && "HessenbergDecomposition is not initialized.");
+      return MatrixHReturnType(*this);
+    }
+
+  private:
+
+    typedef Matrix<Scalar, 1, Size, Options | RowMajor, 1, MaxSize> VectorType;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    static void _compute(MatrixType& matA, CoeffVectorType& hCoeffs, VectorType& temp);
+
+  protected:
+    MatrixType m_matrix;
+    CoeffVectorType m_hCoeffs;
+    VectorType m_temp;
+    bool m_isInitialized;
+};
+
+/** \internal
+  * Performs a tridiagonal decomposition of \a matA in place.
+  *
+  * \param matA the input selfadjoint matrix
+  * \param hCoeffs returned Householder coefficients
+  *
+  * The result is written in the lower triangular part of \a matA.
+  *
+  * Implemented from Golub's "%Matrix Computations", algorithm 8.3.1.
+  *
+  * \sa packedMatrix()
+  */
+template<typename MatrixType>
+void HessenbergDecomposition<MatrixType>::_compute(MatrixType& matA, CoeffVectorType& hCoeffs, VectorType& temp)
+{
+  eigen_assert(matA.rows()==matA.cols());
+  Index n = matA.rows();
+  temp.resize(n);
+  for (Index i = 0; i<n-1; ++i)
+  {
+    // let's consider the vector v = i-th column starting at position i+1
+    Index remainingSize = n-i-1;
+    RealScalar beta;
+    Scalar h;
+    matA.col(i).tail(remainingSize).makeHouseholderInPlace(h, beta);
+    matA.col(i).coeffRef(i+1) = beta;
+    hCoeffs.coeffRef(i) = h;
+
+    // Apply similarity transformation to remaining columns,
+    // i.e., compute A = H A H'
+
+    // A = H A
+    matA.bottomRightCorner(remainingSize, remainingSize)
+        .applyHouseholderOnTheLeft(matA.col(i).tail(remainingSize-1), h, &temp.coeffRef(0));
+
+    // A = A H'
+    matA.rightCols(remainingSize)
+        .applyHouseholderOnTheRight(matA.col(i).tail(remainingSize-1).conjugate(), numext::conj(h), &temp.coeffRef(0));
+  }
+}
+
+namespace internal {
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \brief Expression type for return value of HessenbergDecomposition::matrixH()
+  *
+  * \tparam MatrixType type of matrix in the Hessenberg decomposition
+  *
+  * Objects of this type represent the Hessenberg matrix in the Hessenberg
+  * decomposition of some matrix. The object holds a reference to the
+  * HessenbergDecomposition class until the it is assigned or evaluated for
+  * some other reason (the reference should remain valid during the life time
+  * of this object). This class is the return type of
+  * HessenbergDecomposition::matrixH(); there is probably no other use for this
+  * class.
+  */
+template<typename MatrixType> struct HessenbergDecompositionMatrixHReturnType
+: public ReturnByValue<HessenbergDecompositionMatrixHReturnType<MatrixType> >
+{
+    typedef typename MatrixType::Index Index;
+  public:
+    /** \brief Constructor.
+      *
+      * \param[in] hess  Hessenberg decomposition
+      */
+    HessenbergDecompositionMatrixHReturnType(const HessenbergDecomposition<MatrixType>& hess) : m_hess(hess) { }
+
+    /** \brief Hessenberg matrix in decomposition.
+      *
+      * \param[out] result  Hessenberg matrix in decomposition \p hess which
+      *                     was passed to the constructor
+      */
+    template <typename ResultType>
+    inline void evalTo(ResultType& result) const
+    {
+      result = m_hess.packedMatrix();
+      Index n = result.rows();
+      if (n>2)
+        result.bottomLeftCorner(n-2, n-2).template triangularView<Lower>().setZero();
+    }
+
+    Index rows() const { return m_hess.packedMatrix().rows(); }
+    Index cols() const { return m_hess.packedMatrix().cols(); }
+
+  protected:
+    const HessenbergDecomposition<MatrixType>& m_hess;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_HESSENBERGDECOMPOSITION_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h	(revision 2476)
@@ -0,0 +1,801 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINTEIGENSOLVER_H
+#define EIGEN_SELFADJOINTEIGENSOLVER_H
+
+#include "./Tridiagonalization.h"
+
+namespace Eigen { 
+
+template<typename _MatrixType>
+class GeneralizedSelfAdjointEigenSolver;
+
+namespace internal {
+template<typename SolverType,int Size,bool IsComplex> struct direct_selfadjoint_eigenvalues;
+}
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class SelfAdjointEigenSolver
+  *
+  * \brief Computes eigenvalues and eigenvectors of selfadjoint matrices
+  *
+  * \tparam _MatrixType the type of the matrix of which we are computing the
+  * eigendecomposition; this is expected to be an instantiation of the Matrix
+  * class template.
+  *
+  * A matrix \f$ A \f$ is selfadjoint if it equals its adjoint. For real
+  * matrices, this means that the matrix is symmetric: it equals its
+  * transpose. This class computes the eigenvalues and eigenvectors of a
+  * selfadjoint matrix. These are the scalars \f$ \lambda \f$ and vectors
+  * \f$ v \f$ such that \f$ Av = \lambda v \f$.  The eigenvalues of a
+  * selfadjoint matrix are always real. If \f$ D \f$ is a diagonal matrix with
+  * the eigenvalues on the diagonal, and \f$ V \f$ is a matrix with the
+  * eigenvectors as its columns, then \f$ A = V D V^{-1} \f$ (for selfadjoint
+  * matrices, the matrix \f$ V \f$ is always invertible). This is called the
+  * eigendecomposition.
+  *
+  * The algorithm exploits the fact that the matrix is selfadjoint, making it
+  * faster and more accurate than the general purpose eigenvalue algorithms
+  * implemented in EigenSolver and ComplexEigenSolver.
+  *
+  * Only the \b lower \b triangular \b part of the input matrix is referenced.
+  *
+  * Call the function compute() to compute the eigenvalues and eigenvectors of
+  * a given matrix. Alternatively, you can use the
+  * SelfAdjointEigenSolver(const MatrixType&, int) constructor which computes
+  * the eigenvalues and eigenvectors at construction time. Once the eigenvalue
+  * and eigenvectors are computed, they can be retrieved with the eigenvalues()
+  * and eigenvectors() functions.
+  *
+  * The documentation for SelfAdjointEigenSolver(const MatrixType&, int)
+  * contains an example of the typical use of this class.
+  *
+  * To solve the \em generalized eigenvalue problem \f$ Av = \lambda Bv \f$ and
+  * the likes, see the class GeneralizedSelfAdjointEigenSolver.
+  *
+  * \sa MatrixBase::eigenvalues(), class EigenSolver, class ComplexEigenSolver
+  */
+template<typename _MatrixType> class SelfAdjointEigenSolver
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    enum {
+      Size = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    
+    /** \brief Scalar type for matrices of type \p _MatrixType. */
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+    
+    typedef Matrix<Scalar,Size,Size,ColMajor,MaxColsAtCompileTime,MaxColsAtCompileTime> EigenvectorsType;
+
+    /** \brief Real scalar type for \p _MatrixType.
+      *
+      * This is just \c Scalar if #Scalar is real (e.g., \c float or
+      * \c double), and the type of the real part of \c Scalar if #Scalar is
+      * complex.
+      */
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    
+    friend struct internal::direct_selfadjoint_eigenvalues<SelfAdjointEigenSolver,Size,NumTraits<Scalar>::IsComplex>;
+
+    /** \brief Type for vector of eigenvalues as returned by eigenvalues().
+      *
+      * This is a column vector with entries of type #RealScalar.
+      * The length of the vector is the size of \p _MatrixType.
+      */
+    typedef typename internal::plain_col_type<MatrixType, RealScalar>::type RealVectorType;
+    typedef Tridiagonalization<MatrixType> TridiagonalizationType;
+
+    /** \brief Default constructor for fixed-size matrices.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via compute(). This constructor
+      * can only be used if \p _MatrixType is a fixed-size matrix; use
+      * SelfAdjointEigenSolver(Index) for dynamic-size matrices.
+      *
+      * Example: \include SelfAdjointEigenSolver_SelfAdjointEigenSolver.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_SelfAdjointEigenSolver.out
+      */
+    SelfAdjointEigenSolver()
+        : m_eivec(),
+          m_eivalues(),
+          m_subdiag(),
+          m_isInitialized(false)
+    { }
+
+    /** \brief Constructor, pre-allocates memory for dynamic-size matrices.
+      *
+      * \param [in]  size  Positive integer, size of the matrix whose
+      * eigenvalues and eigenvectors will be computed.
+      *
+      * This constructor is useful for dynamic-size matrices, when the user
+      * intends to perform decompositions via compute(). The \p size
+      * parameter is only used as a hint. It is not an error to give a wrong
+      * \p size, but it may impair performance.
+      *
+      * \sa compute() for an example
+      */
+    SelfAdjointEigenSolver(Index size)
+        : m_eivec(size, size),
+          m_eivalues(size),
+          m_subdiag(size > 1 ? size - 1 : 1),
+          m_isInitialized(false)
+    {}
+
+    /** \brief Constructor; computes eigendecomposition of given matrix.
+      *
+      * \param[in]  matrix  Selfadjoint matrix whose eigendecomposition is to
+      *    be computed. Only the lower triangular part of the matrix is referenced.
+      * \param[in]  options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
+      *
+      * This constructor calls compute(const MatrixType&, int) to compute the
+      * eigenvalues of the matrix \p matrix. The eigenvectors are computed if
+      * \p options equals #ComputeEigenvectors.
+      *
+      * Example: \include SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.out
+      *
+      * \sa compute(const MatrixType&, int)
+      */
+    SelfAdjointEigenSolver(const MatrixType& matrix, int options = ComputeEigenvectors)
+      : m_eivec(matrix.rows(), matrix.cols()),
+        m_eivalues(matrix.cols()),
+        m_subdiag(matrix.rows() > 1 ? matrix.rows() - 1 : 1),
+        m_isInitialized(false)
+    {
+      compute(matrix, options);
+    }
+
+    /** \brief Computes eigendecomposition of given matrix.
+      *
+      * \param[in]  matrix  Selfadjoint matrix whose eigendecomposition is to
+      *    be computed. Only the lower triangular part of the matrix is referenced.
+      * \param[in]  options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
+      * \returns    Reference to \c *this
+      *
+      * This function computes the eigenvalues of \p matrix.  The eigenvalues()
+      * function can be used to retrieve them.  If \p options equals #ComputeEigenvectors,
+      * then the eigenvectors are also computed and can be retrieved by
+      * calling eigenvectors().
+      *
+      * This implementation uses a symmetric QR algorithm. The matrix is first
+      * reduced to tridiagonal form using the Tridiagonalization class. The
+      * tridiagonal matrix is then brought to diagonal form with implicit
+      * symmetric QR steps with Wilkinson shift. Details can be found in
+      * Section 8.3 of Golub \& Van Loan, <i>%Matrix Computations</i>.
+      *
+      * The cost of the computation is about \f$ 9n^3 \f$ if the eigenvectors
+      * are required and \f$ 4n^3/3 \f$ if they are not required.
+      *
+      * This method reuses the memory in the SelfAdjointEigenSolver object that
+      * was allocated when the object was constructed, if the size of the
+      * matrix does not change.
+      *
+      * Example: \include SelfAdjointEigenSolver_compute_MatrixType.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_compute_MatrixType.out
+      *
+      * \sa SelfAdjointEigenSolver(const MatrixType&, int)
+      */
+    SelfAdjointEigenSolver& compute(const MatrixType& matrix, int options = ComputeEigenvectors);
+    
+    /** \brief Computes eigendecomposition of given matrix using a direct algorithm
+      *
+      * This is a variant of compute(const MatrixType&, int options) which
+      * directly solves the underlying polynomial equation.
+      * 
+      * Currently only 3x3 matrices for which the sizes are known at compile time are supported (e.g., Matrix3d).
+      * 
+      * This method is usually significantly faster than the QR algorithm
+      * but it might also be less accurate. It is also worth noting that
+      * for 3x3 matrices it involves trigonometric operations which are
+      * not necessarily available for all scalar types.
+      *
+      * \sa compute(const MatrixType&, int options)
+      */
+    SelfAdjointEigenSolver& computeDirect(const MatrixType& matrix, int options = ComputeEigenvectors);
+
+    /** \brief Returns the eigenvectors of given matrix.
+      *
+      * \returns  A const reference to the matrix whose columns are the eigenvectors.
+      *
+      * \pre The eigenvectors have been computed before.
+      *
+      * Column \f$ k \f$ of the returned matrix is an eigenvector corresponding
+      * to eigenvalue number \f$ k \f$ as returned by eigenvalues().  The
+      * eigenvectors are normalized to have (Euclidean) norm equal to one. If
+      * this object was used to solve the eigenproblem for the selfadjoint
+      * matrix \f$ A \f$, then the matrix returned by this function is the
+      * matrix \f$ V \f$ in the eigendecomposition \f$ A = V D V^{-1} \f$.
+      *
+      * Example: \include SelfAdjointEigenSolver_eigenvectors.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_eigenvectors.out
+      *
+      * \sa eigenvalues()
+      */
+    const EigenvectorsType& eigenvectors() const
+    {
+      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+      return m_eivec;
+    }
+
+    /** \brief Returns the eigenvalues of given matrix.
+      *
+      * \returns A const reference to the column vector containing the eigenvalues.
+      *
+      * \pre The eigenvalues have been computed before.
+      *
+      * The eigenvalues are repeated according to their algebraic multiplicity,
+      * so there are as many eigenvalues as rows in the matrix. The eigenvalues
+      * are sorted in increasing order.
+      *
+      * Example: \include SelfAdjointEigenSolver_eigenvalues.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_eigenvalues.out
+      *
+      * \sa eigenvectors(), MatrixBase::eigenvalues()
+      */
+    const RealVectorType& eigenvalues() const
+    {
+      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+      return m_eivalues;
+    }
+
+    /** \brief Computes the positive-definite square root of the matrix.
+      *
+      * \returns the positive-definite square root of the matrix
+      *
+      * \pre The eigenvalues and eigenvectors of a positive-definite matrix
+      * have been computed before.
+      *
+      * The square root of a positive-definite matrix \f$ A \f$ is the
+      * positive-definite matrix whose square equals \f$ A \f$. This function
+      * uses the eigendecomposition \f$ A = V D V^{-1} \f$ to compute the
+      * square root as \f$ A^{1/2} = V D^{1/2} V^{-1} \f$.
+      *
+      * Example: \include SelfAdjointEigenSolver_operatorSqrt.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_operatorSqrt.out
+      *
+      * \sa operatorInverseSqrt(),
+      *     \ref MatrixFunctions_Module "MatrixFunctions Module"
+      */
+    MatrixType operatorSqrt() const
+    {
+      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+      return m_eivec * m_eivalues.cwiseSqrt().asDiagonal() * m_eivec.adjoint();
+    }
+
+    /** \brief Computes the inverse square root of the matrix.
+      *
+      * \returns the inverse positive-definite square root of the matrix
+      *
+      * \pre The eigenvalues and eigenvectors of a positive-definite matrix
+      * have been computed before.
+      *
+      * This function uses the eigendecomposition \f$ A = V D V^{-1} \f$ to
+      * compute the inverse square root as \f$ V D^{-1/2} V^{-1} \f$. This is
+      * cheaper than first computing the square root with operatorSqrt() and
+      * then its inverse with MatrixBase::inverse().
+      *
+      * Example: \include SelfAdjointEigenSolver_operatorInverseSqrt.cpp
+      * Output: \verbinclude SelfAdjointEigenSolver_operatorInverseSqrt.out
+      *
+      * \sa operatorSqrt(), MatrixBase::inverse(),
+      *     \ref MatrixFunctions_Module "MatrixFunctions Module"
+      */
+    MatrixType operatorInverseSqrt() const
+    {
+      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+      return m_eivec * m_eivalues.cwiseInverse().cwiseSqrt().asDiagonal() * m_eivec.adjoint();
+    }
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+      return m_info;
+    }
+
+    /** \brief Maximum number of iterations.
+      *
+      * The algorithm terminates if it does not converge within m_maxIterations * n iterations, where n
+      * denotes the size of the matrix. This value is currently set to 30 (copied from LAPACK).
+      */
+    static const int m_maxIterations = 30;
+
+    #ifdef EIGEN2_SUPPORT
+    SelfAdjointEigenSolver(const MatrixType& matrix, bool computeEigenvectors)
+      : m_eivec(matrix.rows(), matrix.cols()),
+        m_eivalues(matrix.cols()),
+        m_subdiag(matrix.rows() > 1 ? matrix.rows() - 1 : 1),
+        m_isInitialized(false)
+    {
+      compute(matrix, computeEigenvectors);
+    }
+    
+    SelfAdjointEigenSolver(const MatrixType& matA, const MatrixType& matB, bool computeEigenvectors = true)
+        : m_eivec(matA.cols(), matA.cols()),
+          m_eivalues(matA.cols()),
+          m_subdiag(matA.cols() > 1 ? matA.cols() - 1 : 1),
+          m_isInitialized(false)
+    {
+      static_cast<GeneralizedSelfAdjointEigenSolver<MatrixType>*>(this)->compute(matA, matB, computeEigenvectors ? ComputeEigenvectors : EigenvaluesOnly);
+    }
+    
+    void compute(const MatrixType& matrix, bool computeEigenvectors)
+    {
+      compute(matrix, computeEigenvectors ? ComputeEigenvectors : EigenvaluesOnly);
+    }
+
+    void compute(const MatrixType& matA, const MatrixType& matB, bool computeEigenvectors = true)
+    {
+      compute(matA, matB, computeEigenvectors ? ComputeEigenvectors : EigenvaluesOnly);
+    }
+    #endif // EIGEN2_SUPPORT
+
+  protected:
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    EigenvectorsType m_eivec;
+    RealVectorType m_eivalues;
+    typename TridiagonalizationType::SubDiagonalType m_subdiag;
+    ComputationInfo m_info;
+    bool m_isInitialized;
+    bool m_eigenvectorsOk;
+};
+
+/** \internal
+  *
+  * \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  * Performs a QR step on a tridiagonal symmetric matrix represented as a
+  * pair of two vectors \a diag and \a subdiag.
+  *
+  * \param matA the input selfadjoint matrix
+  * \param hCoeffs returned Householder coefficients
+  *
+  * For compilation efficiency reasons, this procedure does not use eigen expression
+  * for its arguments.
+  *
+  * Implemented from Golub's "Matrix Computations", algorithm 8.3.2:
+  * "implicit symmetric QR step with Wilkinson shift"
+  */
+namespace internal {
+template<typename RealScalar, typename Scalar, typename Index>
+static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n);
+}
+
+template<typename MatrixType>
+SelfAdjointEigenSolver<MatrixType>& SelfAdjointEigenSolver<MatrixType>
+::compute(const MatrixType& matrix, int options)
+{
+  check_template_parameters();
+  
+  using std::abs;
+  eigen_assert(matrix.cols() == matrix.rows());
+  eigen_assert((options&~(EigVecMask|GenEigMask))==0
+          && (options&EigVecMask)!=EigVecMask
+          && "invalid option parameter");
+  bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;
+  Index n = matrix.cols();
+  m_eivalues.resize(n,1);
+
+  if(n==1)
+  {
+    m_eivalues.coeffRef(0,0) = numext::real(matrix.coeff(0,0));
+    if(computeEigenvectors)
+      m_eivec.setOnes(n,n);
+    m_info = Success;
+    m_isInitialized = true;
+    m_eigenvectorsOk = computeEigenvectors;
+    return *this;
+  }
+
+  // declare some aliases
+  RealVectorType& diag = m_eivalues;
+  EigenvectorsType& mat = m_eivec;
+
+  // map the matrix coefficients to [-1:1] to avoid over- and underflow.
+  mat = matrix.template triangularView<Lower>();
+  RealScalar scale = mat.cwiseAbs().maxCoeff();
+  if(scale==RealScalar(0)) scale = RealScalar(1);
+  mat.template triangularView<Lower>() /= scale;
+  m_subdiag.resize(n-1);
+  internal::tridiagonalization_inplace(mat, diag, m_subdiag, computeEigenvectors);
+  
+  Index end = n-1;
+  Index start = 0;
+  Index iter = 0; // total number of iterations
+
+  while (end>0)
+  {
+    for (Index i = start; i<end; ++i)
+      if (internal::isMuchSmallerThan(abs(m_subdiag[i]),(abs(diag[i])+abs(diag[i+1]))))
+        m_subdiag[i] = 0;
+
+    // find the largest unreduced block
+    while (end>0 && m_subdiag[end-1]==0)
+    {
+      end--;
+    }
+    if (end<=0)
+      break;
+
+    // if we spent too many iterations, we give up
+    iter++;
+    if(iter > m_maxIterations * n) break;
+
+    start = end - 1;
+    while (start>0 && m_subdiag[start-1]!=0)
+      start--;
+
+    internal::tridiagonal_qr_step(diag.data(), m_subdiag.data(), start, end, computeEigenvectors ? m_eivec.data() : (Scalar*)0, n);
+  }
+
+  if (iter <= m_maxIterations * n)
+    m_info = Success;
+  else
+    m_info = NoConvergence;
+
+  // Sort eigenvalues and corresponding vectors.
+  // TODO make the sort optional ?
+  // TODO use a better sort algorithm !!
+  if (m_info == Success)
+  {
+    for (Index i = 0; i < n-1; ++i)
+    {
+      Index k;
+      m_eivalues.segment(i,n-i).minCoeff(&k);
+      if (k > 0)
+      {
+        std::swap(m_eivalues[i], m_eivalues[k+i]);
+        if(computeEigenvectors)
+          m_eivec.col(i).swap(m_eivec.col(k+i));
+      }
+    }
+  }
+  
+  // scale back the eigen values
+  m_eivalues *= scale;
+
+  m_isInitialized = true;
+  m_eigenvectorsOk = computeEigenvectors;
+  return *this;
+}
+
+
+namespace internal {
+  
+template<typename SolverType,int Size,bool IsComplex> struct direct_selfadjoint_eigenvalues
+{
+  static inline void run(SolverType& eig, const typename SolverType::MatrixType& A, int options)
+  { eig.compute(A,options); }
+};
+
+template<typename SolverType> struct direct_selfadjoint_eigenvalues<SolverType,3,false>
+{
+  typedef typename SolverType::MatrixType MatrixType;
+  typedef typename SolverType::RealVectorType VectorType;
+  typedef typename SolverType::Scalar Scalar;
+  typedef typename MatrixType::Index Index;
+  typedef typename SolverType::EigenvectorsType EigenvectorsType;
+  
+  /** \internal
+   * Computes the roots of the characteristic polynomial of \a m.
+   * For numerical stability m.trace() should be near zero and to avoid over- or underflow m should be normalized.
+   */
+  static inline void computeRoots(const MatrixType& m, VectorType& roots)
+  {
+    using std::sqrt;
+    using std::atan2;
+    using std::cos;
+    using std::sin;
+    const Scalar s_inv3 = Scalar(1.0)/Scalar(3.0);
+    const Scalar s_sqrt3 = sqrt(Scalar(3.0));
+
+    // The characteristic equation is x^3 - c2*x^2 + c1*x - c0 = 0.  The
+    // eigenvalues are the roots to this equation, all guaranteed to be
+    // real-valued, because the matrix is symmetric.
+    Scalar c0 = m(0,0)*m(1,1)*m(2,2) + Scalar(2)*m(1,0)*m(2,0)*m(2,1) - m(0,0)*m(2,1)*m(2,1) - m(1,1)*m(2,0)*m(2,0) - m(2,2)*m(1,0)*m(1,0);
+    Scalar c1 = m(0,0)*m(1,1) - m(1,0)*m(1,0) + m(0,0)*m(2,2) - m(2,0)*m(2,0) + m(1,1)*m(2,2) - m(2,1)*m(2,1);
+    Scalar c2 = m(0,0) + m(1,1) + m(2,2);
+
+    // Construct the parameters used in classifying the roots of the equation
+    // and in solving the equation for the roots in closed form.
+    Scalar c2_over_3 = c2*s_inv3;
+    Scalar a_over_3 = (c2*c2_over_3 - c1)*s_inv3;
+    if(a_over_3<Scalar(0))
+      a_over_3 = Scalar(0);
+
+    Scalar half_b = Scalar(0.5)*(c0 + c2_over_3*(Scalar(2)*c2_over_3*c2_over_3 - c1));
+
+    Scalar q = a_over_3*a_over_3*a_over_3 - half_b*half_b;
+    if(q<Scalar(0))
+      q = Scalar(0);
+
+    // Compute the eigenvalues by solving for the roots of the polynomial.
+    Scalar rho = sqrt(a_over_3);
+    Scalar theta = atan2(sqrt(q),half_b)*s_inv3;  // since sqrt(q) > 0, atan2 is in [0, pi] and theta is in [0, pi/3]
+    Scalar cos_theta = cos(theta);
+    Scalar sin_theta = sin(theta);
+    // roots are already sorted, since cos is monotonically decreasing on [0, pi]
+    roots(0) = c2_over_3 - rho*(cos_theta + s_sqrt3*sin_theta); // == 2*rho*cos(theta+2pi/3)
+    roots(1) = c2_over_3 - rho*(cos_theta - s_sqrt3*sin_theta); // == 2*rho*cos(theta+ pi/3)
+    roots(2) = c2_over_3 + Scalar(2)*rho*cos_theta;
+  }
+
+  static inline bool extract_kernel(MatrixType& mat, Ref<VectorType> res, Ref<VectorType> representative)
+  {
+    using std::abs;
+    Index i0;
+    // Find non-zero column i0 (by construction, there must exist a non zero coefficient on the diagonal):
+    mat.diagonal().cwiseAbs().maxCoeff(&i0);
+    // mat.col(i0) is a good candidate for an orthogonal vector to the current eigenvector,
+    // so let's save it:
+    representative = mat.col(i0);
+    Scalar n0, n1;
+    VectorType c0, c1;
+    n0 = (c0 = representative.cross(mat.col((i0+1)%3))).squaredNorm();
+    n1 = (c1 = representative.cross(mat.col((i0+2)%3))).squaredNorm();
+    if(n0>n1) res = c0/std::sqrt(n0);
+    else      res = c1/std::sqrt(n1);
+
+    return true;
+  }
+
+  static inline void run(SolverType& solver, const MatrixType& mat, int options)
+  {
+    eigen_assert(mat.cols() == 3 && mat.cols() == mat.rows());
+    eigen_assert((options&~(EigVecMask|GenEigMask))==0
+            && (options&EigVecMask)!=EigVecMask
+            && "invalid option parameter");
+    bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;
+    
+    EigenvectorsType& eivecs = solver.m_eivec;
+    VectorType& eivals = solver.m_eivalues;
+  
+    // Shift the matrix to the mean eigenvalue and map the matrix coefficients to [-1:1] to avoid over- and underflow.
+    Scalar shift = mat.trace() / Scalar(3);
+    // TODO Avoid this copy. Currently it is necessary to suppress bogus values when determining maxCoeff and for computing the eigenvectors later
+    MatrixType scaledMat = mat.template selfadjointView<Lower>();
+    scaledMat.diagonal().array() -= shift;
+    Scalar scale = scaledMat.cwiseAbs().maxCoeff();
+    if(scale > 0) scaledMat /= scale;   // TODO for scale==0 we could save the remaining operations
+
+    // compute the eigenvalues
+    computeRoots(scaledMat,eivals);
+
+    // compute the eigenvectors
+    if(computeEigenvectors)
+    {
+      if((eivals(2)-eivals(0))<=Eigen::NumTraits<Scalar>::epsilon())
+      {
+        // All three eigenvalues are numerically the same
+        eivecs.setIdentity();
+      }
+      else
+      {
+        MatrixType tmp;
+        tmp = scaledMat;
+
+        // Compute the eigenvector of the most distinct eigenvalue
+        Scalar d0 = eivals(2) - eivals(1);
+        Scalar d1 = eivals(1) - eivals(0);
+        Index k(0), l(2);
+        if(d0 > d1)
+        {
+          std::swap(k,l);
+          d0 = d1;
+        }
+
+        // Compute the eigenvector of index k
+        {
+          tmp.diagonal().array () -= eivals(k);
+          // By construction, 'tmp' is of rank 2, and its kernel corresponds to the respective eigenvector.
+          extract_kernel(tmp, eivecs.col(k), eivecs.col(l));
+        }
+
+        // Compute eigenvector of index l
+        if(d0<=2*Eigen::NumTraits<Scalar>::epsilon()*d1)
+        {
+          // If d0 is too small, then the two other eigenvalues are numerically the same,
+          // and thus we only have to ortho-normalize the near orthogonal vector we saved above.
+          eivecs.col(l) -= eivecs.col(k).dot(eivecs.col(l))*eivecs.col(l);
+          eivecs.col(l).normalize();
+        }
+        else
+        {
+          tmp = scaledMat;
+          tmp.diagonal().array () -= eivals(l);
+
+          VectorType dummy;
+          extract_kernel(tmp, eivecs.col(l), dummy);
+        }
+
+        // Compute last eigenvector from the other two
+        eivecs.col(1) = eivecs.col(2).cross(eivecs.col(0)).normalized();
+      }
+    }
+
+    // Rescale back to the original size.
+    eivals *= scale;
+    eivals.array() += shift;
+    
+    solver.m_info = Success;
+    solver.m_isInitialized = true;
+    solver.m_eigenvectorsOk = computeEigenvectors;
+  }
+};
+
+// 2x2 direct eigenvalues decomposition, code from Hauke Heibel
+template<typename SolverType> struct direct_selfadjoint_eigenvalues<SolverType,2,false>
+{
+  typedef typename SolverType::MatrixType MatrixType;
+  typedef typename SolverType::RealVectorType VectorType;
+  typedef typename SolverType::Scalar Scalar;
+  typedef typename SolverType::EigenvectorsType EigenvectorsType;
+  
+  static inline void computeRoots(const MatrixType& m, VectorType& roots)
+  {
+    using std::sqrt;
+    const Scalar t0 = Scalar(0.5) * sqrt( numext::abs2(m(0,0)-m(1,1)) + Scalar(4)*numext::abs2(m(1,0)));
+    const Scalar t1 = Scalar(0.5) * (m(0,0) + m(1,1));
+    roots(0) = t1 - t0;
+    roots(1) = t1 + t0;
+  }
+  
+  static inline void run(SolverType& solver, const MatrixType& mat, int options)
+  {
+    using std::sqrt;
+    using std::abs;
+
+    eigen_assert(mat.cols() == 2 && mat.cols() == mat.rows());
+    eigen_assert((options&~(EigVecMask|GenEigMask))==0
+            && (options&EigVecMask)!=EigVecMask
+            && "invalid option parameter");
+    bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors;
+    
+    EigenvectorsType& eivecs = solver.m_eivec;
+    VectorType& eivals = solver.m_eivalues;
+  
+    // map the matrix coefficients to [-1:1] to avoid over- and underflow.
+    Scalar scale = mat.cwiseAbs().maxCoeff();
+    scale = (std::max)(scale,Scalar(1));
+    MatrixType scaledMat = mat / scale;
+    
+    // Compute the eigenvalues
+    computeRoots(scaledMat,eivals);
+    
+    // compute the eigen vectors
+    if(computeEigenvectors)
+    {
+      if((eivals(1)-eivals(0))<=abs(eivals(1))*Eigen::NumTraits<Scalar>::epsilon())
+      {
+        eivecs.setIdentity();
+      }
+      else
+      {
+        scaledMat.diagonal().array () -= eivals(1);
+        Scalar a2 = numext::abs2(scaledMat(0,0));
+        Scalar c2 = numext::abs2(scaledMat(1,1));
+        Scalar b2 = numext::abs2(scaledMat(1,0));
+        if(a2>c2)
+        {
+          eivecs.col(1) << -scaledMat(1,0), scaledMat(0,0);
+          eivecs.col(1) /= sqrt(a2+b2);
+        }
+        else
+        {
+          eivecs.col(1) << -scaledMat(1,1), scaledMat(1,0);
+          eivecs.col(1) /= sqrt(c2+b2);
+        }
+
+        eivecs.col(0) << eivecs.col(1).unitOrthogonal();
+      }
+    }
+    
+    // Rescale back to the original size.
+    eivals *= scale;
+    
+    solver.m_info = Success;
+    solver.m_isInitialized = true;
+    solver.m_eigenvectorsOk = computeEigenvectors;
+  }
+};
+
+}
+
+template<typename MatrixType>
+SelfAdjointEigenSolver<MatrixType>& SelfAdjointEigenSolver<MatrixType>
+::computeDirect(const MatrixType& matrix, int options)
+{
+  internal::direct_selfadjoint_eigenvalues<SelfAdjointEigenSolver,Size,NumTraits<Scalar>::IsComplex>::run(*this,matrix,options);
+  return *this;
+}
+
+namespace internal {
+template<typename RealScalar, typename Scalar, typename Index>
+static void tridiagonal_qr_step(RealScalar* diag, RealScalar* subdiag, Index start, Index end, Scalar* matrixQ, Index n)
+{
+  using std::abs;
+  RealScalar td = (diag[end-1] - diag[end])*RealScalar(0.5);
+  RealScalar e = subdiag[end-1];
+  // Note that thanks to scaling, e^2 or td^2 cannot overflow, however they can still
+  // underflow thus leading to inf/NaN values when using the following commented code:
+//   RealScalar e2 = numext::abs2(subdiag[end-1]);
+//   RealScalar mu = diag[end] - e2 / (td + (td>0 ? 1 : -1) * sqrt(td*td + e2));
+  // This explain the following, somewhat more complicated, version:
+  RealScalar mu = diag[end];
+  if(td==0)
+    mu -= abs(e);
+  else
+  {
+    RealScalar e2 = numext::abs2(subdiag[end-1]);
+    RealScalar h = numext::hypot(td,e);
+    if(e2==0)  mu -= (e / (td + (td>0 ? 1 : -1))) * (e / h);
+    else       mu -= e2 / (td + (td>0 ? h : -h));
+  }
+  
+  RealScalar x = diag[start] - mu;
+  RealScalar z = subdiag[start];
+  for (Index k = start; k < end; ++k)
+  {
+    JacobiRotation<RealScalar> rot;
+    rot.makeGivens(x, z);
+
+    // do T = G' T G
+    RealScalar sdk = rot.s() * diag[k] + rot.c() * subdiag[k];
+    RealScalar dkp1 = rot.s() * subdiag[k] + rot.c() * diag[k+1];
+
+    diag[k] = rot.c() * (rot.c() * diag[k] - rot.s() * subdiag[k]) - rot.s() * (rot.c() * subdiag[k] - rot.s() * diag[k+1]);
+    diag[k+1] = rot.s() * sdk + rot.c() * dkp1;
+    subdiag[k] = rot.c() * sdk - rot.s() * dkp1;
+    
+
+    if (k > start)
+      subdiag[k - 1] = rot.c() * subdiag[k-1] - rot.s() * z;
+
+    x = subdiag[k];
+
+    if (k < end - 1)
+    {
+      z = -rot.s() * subdiag[k+1];
+      subdiag[k + 1] = rot.c() * subdiag[k+1];
+    }
+    
+    // apply the givens rotation to the unit matrix Q = Q * G
+    if (matrixQ)
+    {
+      Map<Matrix<Scalar,Dynamic,Dynamic,ColMajor> > q(matrixQ,n,n);
+      q.applyOnTheRight(k,k+1,rot);
+    }
+  }
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINTEIGENSOLVER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h	(revision 2476)
@@ -0,0 +1,160 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIXBASEEIGENVALUES_H
+#define EIGEN_MATRIXBASEEIGENVALUES_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Derived, bool IsComplex>
+struct eigenvalues_selector
+{
+  // this is the implementation for the case IsComplex = true
+  static inline typename MatrixBase<Derived>::EigenvaluesReturnType const
+  run(const MatrixBase<Derived>& m)
+  {
+    typedef typename Derived::PlainObject PlainObject;
+    PlainObject m_eval(m);
+    return ComplexEigenSolver<PlainObject>(m_eval, false).eigenvalues();
+  }
+};
+
+template<typename Derived>
+struct eigenvalues_selector<Derived, false>
+{
+  static inline typename MatrixBase<Derived>::EigenvaluesReturnType const
+  run(const MatrixBase<Derived>& m)
+  {
+    typedef typename Derived::PlainObject PlainObject;
+    PlainObject m_eval(m);
+    return EigenSolver<PlainObject>(m_eval, false).eigenvalues();
+  }
+};
+
+} // end namespace internal
+
+/** \brief Computes the eigenvalues of a matrix 
+  * \returns Column vector containing the eigenvalues.
+  *
+  * \eigenvalues_module
+  * This function computes the eigenvalues with the help of the EigenSolver
+  * class (for real matrices) or the ComplexEigenSolver class (for complex
+  * matrices). 
+  *
+  * The eigenvalues are repeated according to their algebraic multiplicity,
+  * so there are as many eigenvalues as rows in the matrix.
+  *
+  * The SelfAdjointView class provides a better algorithm for selfadjoint
+  * matrices.
+  *
+  * Example: \include MatrixBase_eigenvalues.cpp
+  * Output: \verbinclude MatrixBase_eigenvalues.out
+  *
+  * \sa EigenSolver::eigenvalues(), ComplexEigenSolver::eigenvalues(),
+  *     SelfAdjointView::eigenvalues()
+  */
+template<typename Derived>
+inline typename MatrixBase<Derived>::EigenvaluesReturnType
+MatrixBase<Derived>::eigenvalues() const
+{
+  typedef typename internal::traits<Derived>::Scalar Scalar;
+  return internal::eigenvalues_selector<Derived, NumTraits<Scalar>::IsComplex>::run(derived());
+}
+
+/** \brief Computes the eigenvalues of a matrix
+  * \returns Column vector containing the eigenvalues.
+  *
+  * \eigenvalues_module
+  * This function computes the eigenvalues with the help of the
+  * SelfAdjointEigenSolver class.  The eigenvalues are repeated according to
+  * their algebraic multiplicity, so there are as many eigenvalues as rows in
+  * the matrix.
+  *
+  * Example: \include SelfAdjointView_eigenvalues.cpp
+  * Output: \verbinclude SelfAdjointView_eigenvalues.out
+  *
+  * \sa SelfAdjointEigenSolver::eigenvalues(), MatrixBase::eigenvalues()
+  */
+template<typename MatrixType, unsigned int UpLo> 
+inline typename SelfAdjointView<MatrixType, UpLo>::EigenvaluesReturnType
+SelfAdjointView<MatrixType, UpLo>::eigenvalues() const
+{
+  typedef typename SelfAdjointView<MatrixType, UpLo>::PlainObject PlainObject;
+  PlainObject thisAsMatrix(*this);
+  return SelfAdjointEigenSolver<PlainObject>(thisAsMatrix, false).eigenvalues();
+}
+
+
+
+/** \brief Computes the L2 operator norm
+  * \returns Operator norm of the matrix.
+  *
+  * \eigenvalues_module
+  * This function computes the L2 operator norm of a matrix, which is also
+  * known as the spectral norm. The norm of a matrix \f$ A \f$ is defined to be
+  * \f[ \|A\|_2 = \max_x \frac{\|Ax\|_2}{\|x\|_2} \f]
+  * where the maximum is over all vectors and the norm on the right is the
+  * Euclidean vector norm. The norm equals the largest singular value, which is
+  * the square root of the largest eigenvalue of the positive semi-definite
+  * matrix \f$ A^*A \f$.
+  *
+  * The current implementation uses the eigenvalues of \f$ A^*A \f$, as computed
+  * by SelfAdjointView::eigenvalues(), to compute the operator norm of a
+  * matrix.  The SelfAdjointView class provides a better algorithm for
+  * selfadjoint matrices.
+  *
+  * Example: \include MatrixBase_operatorNorm.cpp
+  * Output: \verbinclude MatrixBase_operatorNorm.out
+  *
+  * \sa SelfAdjointView::eigenvalues(), SelfAdjointView::operatorNorm()
+  */
+template<typename Derived>
+inline typename MatrixBase<Derived>::RealScalar
+MatrixBase<Derived>::operatorNorm() const
+{
+  using std::sqrt;
+  typename Derived::PlainObject m_eval(derived());
+  // FIXME if it is really guaranteed that the eigenvalues are already sorted,
+  // then we don't need to compute a maxCoeff() here, comparing the 1st and last ones is enough.
+  return sqrt((m_eval*m_eval.adjoint())
+                 .eval()
+		 .template selfadjointView<Lower>()
+		 .eigenvalues()
+		 .maxCoeff()
+		 );
+}
+
+/** \brief Computes the L2 operator norm
+  * \returns Operator norm of the matrix.
+  *
+  * \eigenvalues_module
+  * This function computes the L2 operator norm of a self-adjoint matrix. For a
+  * self-adjoint matrix, the operator norm is the largest eigenvalue.
+  *
+  * The current implementation uses the eigenvalues of the matrix, as computed
+  * by eigenvalues(), to compute the operator norm of the matrix.
+  *
+  * Example: \include SelfAdjointView_operatorNorm.cpp
+  * Output: \verbinclude SelfAdjointView_operatorNorm.out
+  *
+  * \sa eigenvalues(), MatrixBase::operatorNorm()
+  */
+template<typename MatrixType, unsigned int UpLo>
+inline typename SelfAdjointView<MatrixType, UpLo>::RealScalar
+SelfAdjointView<MatrixType, UpLo>::operatorNorm() const
+{
+  return eigenvalues().cwiseAbs().maxCoeff();
+}
+
+} // end namespace Eigen
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/RealSchur.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/RealSchur.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/RealSchur.h	(revision 2476)
@@ -0,0 +1,525 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REAL_SCHUR_H
+#define EIGEN_REAL_SCHUR_H
+
+#include "./HessenbergDecomposition.h"
+
+namespace Eigen { 
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class RealSchur
+  *
+  * \brief Performs a real Schur decomposition of a square matrix
+  *
+  * \tparam _MatrixType the type of the matrix of which we are computing the
+  * real Schur decomposition; this is expected to be an instantiation of the
+  * Matrix class template.
+  *
+  * Given a real square matrix A, this class computes the real Schur
+  * decomposition: \f$ A = U T U^T \f$ where U is a real orthogonal matrix and
+  * T is a real quasi-triangular matrix. An orthogonal matrix is a matrix whose
+  * inverse is equal to its transpose, \f$ U^{-1} = U^T \f$. A quasi-triangular
+  * matrix is a block-triangular matrix whose diagonal consists of 1-by-1
+  * blocks and 2-by-2 blocks with complex eigenvalues. The eigenvalues of the
+  * blocks on the diagonal of T are the same as the eigenvalues of the matrix
+  * A, and thus the real Schur decomposition is used in EigenSolver to compute
+  * the eigendecomposition of a matrix.
+  *
+  * Call the function compute() to compute the real Schur decomposition of a
+  * given matrix. Alternatively, you can use the RealSchur(const MatrixType&, bool)
+  * constructor which computes the real Schur decomposition at construction
+  * time. Once the decomposition is computed, you can use the matrixU() and
+  * matrixT() functions to retrieve the matrices U and T in the decomposition.
+  *
+  * The documentation of RealSchur(const MatrixType&, bool) contains an example
+  * of the typical use of this class.
+  *
+  * \note The implementation is adapted from
+  * <a href="http://math.nist.gov/javanumerics/jama/">JAMA</a> (public domain).
+  * Their code is based on EISPACK.
+  *
+  * \sa class ComplexSchur, class EigenSolver, class ComplexEigenSolver
+  */
+template<typename _MatrixType> class RealSchur
+{
+  public:
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
+    typedef typename MatrixType::Index Index;
+
+    typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> EigenvalueType;
+    typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
+
+    /** \brief Default constructor.
+      *
+      * \param [in] size  Positive integer, size of the matrix whose Schur decomposition will be computed.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via compute().  The \p size parameter is only
+      * used as a hint. It is not an error to give a wrong \p size, but it may
+      * impair performance.
+      *
+      * \sa compute() for an example.
+      */
+    RealSchur(Index size = RowsAtCompileTime==Dynamic ? 1 : RowsAtCompileTime)
+            : m_matT(size, size),
+              m_matU(size, size),
+              m_workspaceVector(size),
+              m_hess(size),
+              m_isInitialized(false),
+              m_matUisUptodate(false),
+              m_maxIters(-1)
+    { }
+
+    /** \brief Constructor; computes real Schur decomposition of given matrix. 
+      * 
+      * \param[in]  matrix    Square matrix whose Schur decomposition is to be computed.
+      * \param[in]  computeU  If true, both T and U are computed; if false, only T is computed.
+      *
+      * This constructor calls compute() to compute the Schur decomposition.
+      *
+      * Example: \include RealSchur_RealSchur_MatrixType.cpp
+      * Output: \verbinclude RealSchur_RealSchur_MatrixType.out
+      */
+    RealSchur(const MatrixType& matrix, bool computeU = true)
+            : m_matT(matrix.rows(),matrix.cols()),
+              m_matU(matrix.rows(),matrix.cols()),
+              m_workspaceVector(matrix.rows()),
+              m_hess(matrix.rows()),
+              m_isInitialized(false),
+              m_matUisUptodate(false),
+              m_maxIters(-1)
+    {
+      compute(matrix, computeU);
+    }
+
+    /** \brief Returns the orthogonal matrix in the Schur decomposition. 
+      *
+      * \returns A const reference to the matrix U.
+      *
+      * \pre Either the constructor RealSchur(const MatrixType&, bool) or the
+      * member function compute(const MatrixType&, bool) has been called before
+      * to compute the Schur decomposition of a matrix, and \p computeU was set
+      * to true (the default value).
+      *
+      * \sa RealSchur(const MatrixType&, bool) for an example
+      */
+    const MatrixType& matrixU() const
+    {
+      eigen_assert(m_isInitialized && "RealSchur is not initialized.");
+      eigen_assert(m_matUisUptodate && "The matrix U has not been computed during the RealSchur decomposition.");
+      return m_matU;
+    }
+
+    /** \brief Returns the quasi-triangular matrix in the Schur decomposition. 
+      *
+      * \returns A const reference to the matrix T.
+      *
+      * \pre Either the constructor RealSchur(const MatrixType&, bool) or the
+      * member function compute(const MatrixType&, bool) has been called before
+      * to compute the Schur decomposition of a matrix.
+      *
+      * \sa RealSchur(const MatrixType&, bool) for an example
+      */
+    const MatrixType& matrixT() const
+    {
+      eigen_assert(m_isInitialized && "RealSchur is not initialized.");
+      return m_matT;
+    }
+  
+    /** \brief Computes Schur decomposition of given matrix. 
+      * 
+      * \param[in]  matrix    Square matrix whose Schur decomposition is to be computed.
+      * \param[in]  computeU  If true, both T and U are computed; if false, only T is computed.
+      * \returns    Reference to \c *this
+      *
+      * The Schur decomposition is computed by first reducing the matrix to
+      * Hessenberg form using the class HessenbergDecomposition. The Hessenberg
+      * matrix is then reduced to triangular form by performing Francis QR
+      * iterations with implicit double shift. The cost of computing the Schur
+      * decomposition depends on the number of iterations; as a rough guide, it
+      * may be taken to be \f$25n^3\f$ flops if \a computeU is true and
+      * \f$10n^3\f$ flops if \a computeU is false.
+      *
+      * Example: \include RealSchur_compute.cpp
+      * Output: \verbinclude RealSchur_compute.out
+      *
+      * \sa compute(const MatrixType&, bool, Index)
+      */
+    RealSchur& compute(const MatrixType& matrix, bool computeU = true);
+
+    /** \brief Computes Schur decomposition of a Hessenberg matrix H = Z T Z^T
+     *  \param[in] matrixH Matrix in Hessenberg form H
+     *  \param[in] matrixQ orthogonal matrix Q that transform a matrix A to H : A = Q H Q^T
+     *  \param computeU Computes the matriX U of the Schur vectors
+     * \return Reference to \c *this
+     * 
+     *  This routine assumes that the matrix is already reduced in Hessenberg form matrixH
+     *  using either the class HessenbergDecomposition or another mean. 
+     *  It computes the upper quasi-triangular matrix T of the Schur decomposition of H
+     *  When computeU is true, this routine computes the matrix U such that 
+     *  A = U T U^T =  (QZ) T (QZ)^T = Q H Q^T where A is the initial matrix
+     * 
+     * NOTE Q is referenced if computeU is true; so, if the initial orthogonal matrix
+     * is not available, the user should give an identity matrix (Q.setIdentity())
+     * 
+     * \sa compute(const MatrixType&, bool)
+     */
+    template<typename HessMatrixType, typename OrthMatrixType>
+    RealSchur& computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ,  bool computeU);
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "RealSchur is not initialized.");
+      return m_info;
+    }
+
+    /** \brief Sets the maximum number of iterations allowed. 
+      *
+      * If not specified by the user, the maximum number of iterations is m_maxIterationsPerRow times the size
+      * of the matrix.
+      */
+    RealSchur& setMaxIterations(Index maxIters)
+    {
+      m_maxIters = maxIters;
+      return *this;
+    }
+
+    /** \brief Returns the maximum number of iterations. */
+    Index getMaxIterations()
+    {
+      return m_maxIters;
+    }
+
+    /** \brief Maximum number of iterations per row.
+      *
+      * If not otherwise specified, the maximum number of iterations is this number times the size of the
+      * matrix. It is currently set to 40.
+      */
+    static const int m_maxIterationsPerRow = 40;
+
+  private:
+    
+    MatrixType m_matT;
+    MatrixType m_matU;
+    ColumnVectorType m_workspaceVector;
+    HessenbergDecomposition<MatrixType> m_hess;
+    ComputationInfo m_info;
+    bool m_isInitialized;
+    bool m_matUisUptodate;
+    Index m_maxIters;
+
+    typedef Matrix<Scalar,3,1> Vector3s;
+
+    Scalar computeNormOfT();
+    Index findSmallSubdiagEntry(Index iu);
+    void splitOffTwoRows(Index iu, bool computeU, const Scalar& exshift);
+    void computeShift(Index iu, Index iter, Scalar& exshift, Vector3s& shiftInfo);
+    void initFrancisQRStep(Index il, Index iu, const Vector3s& shiftInfo, Index& im, Vector3s& firstHouseholderVector);
+    void performFrancisQRStep(Index il, Index im, Index iu, bool computeU, const Vector3s& firstHouseholderVector, Scalar* workspace);
+};
+
+
+template<typename MatrixType>
+RealSchur<MatrixType>& RealSchur<MatrixType>::compute(const MatrixType& matrix, bool computeU)
+{
+  eigen_assert(matrix.cols() == matrix.rows());
+  Index maxIters = m_maxIters;
+  if (maxIters == -1)
+    maxIters = m_maxIterationsPerRow * matrix.rows();
+
+  // Step 1. Reduce to Hessenberg form
+  m_hess.compute(matrix);
+
+  // Step 2. Reduce to real Schur form  
+  computeFromHessenberg(m_hess.matrixH(), m_hess.matrixQ(), computeU);
+  
+  return *this;
+}
+template<typename MatrixType>
+template<typename HessMatrixType, typename OrthMatrixType>
+RealSchur<MatrixType>& RealSchur<MatrixType>::computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ,  bool computeU)
+{  
+  m_matT = matrixH; 
+  if(computeU)
+    m_matU = matrixQ;
+  
+  Index maxIters = m_maxIters;
+  if (maxIters == -1)
+    maxIters = m_maxIterationsPerRow * matrixH.rows();
+  m_workspaceVector.resize(m_matT.cols());
+  Scalar* workspace = &m_workspaceVector.coeffRef(0);
+
+  // The matrix m_matT is divided in three parts. 
+  // Rows 0,...,il-1 are decoupled from the rest because m_matT(il,il-1) is zero. 
+  // Rows il,...,iu is the part we are working on (the active window).
+  // Rows iu+1,...,end are already brought in triangular form.
+  Index iu = m_matT.cols() - 1;
+  Index iter = 0;      // iteration count for current eigenvalue
+  Index totalIter = 0; // iteration count for whole matrix
+  Scalar exshift(0);   // sum of exceptional shifts
+  Scalar norm = computeNormOfT();
+
+  if(norm!=0)
+  {
+    while (iu >= 0)
+    {
+      Index il = findSmallSubdiagEntry(iu);
+
+      // Check for convergence
+      if (il == iu) // One root found
+      {
+        m_matT.coeffRef(iu,iu) = m_matT.coeff(iu,iu) + exshift;
+        if (iu > 0)
+          m_matT.coeffRef(iu, iu-1) = Scalar(0);
+        iu--;
+        iter = 0;
+      }
+      else if (il == iu-1) // Two roots found
+      {
+        splitOffTwoRows(iu, computeU, exshift);
+        iu -= 2;
+        iter = 0;
+      }
+      else // No convergence yet
+      {
+        // The firstHouseholderVector vector has to be initialized to something to get rid of a silly GCC warning (-O1 -Wall -DNDEBUG )
+        Vector3s firstHouseholderVector(0,0,0), shiftInfo;
+        computeShift(iu, iter, exshift, shiftInfo);
+        iter = iter + 1;
+        totalIter = totalIter + 1;
+        if (totalIter > maxIters) break;
+        Index im;
+        initFrancisQRStep(il, iu, shiftInfo, im, firstHouseholderVector);
+        performFrancisQRStep(il, im, iu, computeU, firstHouseholderVector, workspace);
+      }
+    }
+  }
+  if(totalIter <= maxIters)
+    m_info = Success;
+  else
+    m_info = NoConvergence;
+
+  m_isInitialized = true;
+  m_matUisUptodate = computeU;
+  return *this;
+}
+
+/** \internal Computes and returns vector L1 norm of T */
+template<typename MatrixType>
+inline typename MatrixType::Scalar RealSchur<MatrixType>::computeNormOfT()
+{
+  const Index size = m_matT.cols();
+  // FIXME to be efficient the following would requires a triangular reduxion code
+  // Scalar norm = m_matT.upper().cwiseAbs().sum() 
+  //               + m_matT.bottomLeftCorner(size-1,size-1).diagonal().cwiseAbs().sum();
+  Scalar norm(0);
+  for (Index j = 0; j < size; ++j)
+    norm += m_matT.col(j).segment(0, (std::min)(size,j+2)).cwiseAbs().sum();
+  return norm;
+}
+
+/** \internal Look for single small sub-diagonal element and returns its index */
+template<typename MatrixType>
+inline typename MatrixType::Index RealSchur<MatrixType>::findSmallSubdiagEntry(Index iu)
+{
+  using std::abs;
+  Index res = iu;
+  while (res > 0)
+  {
+    Scalar s = abs(m_matT.coeff(res-1,res-1)) + abs(m_matT.coeff(res,res));
+    if (abs(m_matT.coeff(res,res-1)) <= NumTraits<Scalar>::epsilon() * s)
+      break;
+    res--;
+  }
+  return res;
+}
+
+/** \internal Update T given that rows iu-1 and iu decouple from the rest. */
+template<typename MatrixType>
+inline void RealSchur<MatrixType>::splitOffTwoRows(Index iu, bool computeU, const Scalar& exshift)
+{
+  using std::sqrt;
+  using std::abs;
+  const Index size = m_matT.cols();
+
+  // The eigenvalues of the 2x2 matrix [a b; c d] are 
+  // trace +/- sqrt(discr/4) where discr = tr^2 - 4*det, tr = a + d, det = ad - bc
+  Scalar p = Scalar(0.5) * (m_matT.coeff(iu-1,iu-1) - m_matT.coeff(iu,iu));
+  Scalar q = p * p + m_matT.coeff(iu,iu-1) * m_matT.coeff(iu-1,iu);   // q = tr^2 / 4 - det = discr/4
+  m_matT.coeffRef(iu,iu) += exshift;
+  m_matT.coeffRef(iu-1,iu-1) += exshift;
+
+  if (q >= Scalar(0)) // Two real eigenvalues
+  {
+    Scalar z = sqrt(abs(q));
+    JacobiRotation<Scalar> rot;
+    if (p >= Scalar(0))
+      rot.makeGivens(p + z, m_matT.coeff(iu, iu-1));
+    else
+      rot.makeGivens(p - z, m_matT.coeff(iu, iu-1));
+
+    m_matT.rightCols(size-iu+1).applyOnTheLeft(iu-1, iu, rot.adjoint());
+    m_matT.topRows(iu+1).applyOnTheRight(iu-1, iu, rot);
+    m_matT.coeffRef(iu, iu-1) = Scalar(0); 
+    if (computeU)
+      m_matU.applyOnTheRight(iu-1, iu, rot);
+  }
+
+  if (iu > 1) 
+    m_matT.coeffRef(iu-1, iu-2) = Scalar(0);
+}
+
+/** \internal Form shift in shiftInfo, and update exshift if an exceptional shift is performed. */
+template<typename MatrixType>
+inline void RealSchur<MatrixType>::computeShift(Index iu, Index iter, Scalar& exshift, Vector3s& shiftInfo)
+{
+  using std::sqrt;
+  using std::abs;
+  shiftInfo.coeffRef(0) = m_matT.coeff(iu,iu);
+  shiftInfo.coeffRef(1) = m_matT.coeff(iu-1,iu-1);
+  shiftInfo.coeffRef(2) = m_matT.coeff(iu,iu-1) * m_matT.coeff(iu-1,iu);
+
+  // Wilkinson's original ad hoc shift
+  if (iter == 10)
+  {
+    exshift += shiftInfo.coeff(0);
+    for (Index i = 0; i <= iu; ++i)
+      m_matT.coeffRef(i,i) -= shiftInfo.coeff(0);
+    Scalar s = abs(m_matT.coeff(iu,iu-1)) + abs(m_matT.coeff(iu-1,iu-2));
+    shiftInfo.coeffRef(0) = Scalar(0.75) * s;
+    shiftInfo.coeffRef(1) = Scalar(0.75) * s;
+    shiftInfo.coeffRef(2) = Scalar(-0.4375) * s * s;
+  }
+
+  // MATLAB's new ad hoc shift
+  if (iter == 30)
+  {
+    Scalar s = (shiftInfo.coeff(1) - shiftInfo.coeff(0)) / Scalar(2.0);
+    s = s * s + shiftInfo.coeff(2);
+    if (s > Scalar(0))
+    {
+      s = sqrt(s);
+      if (shiftInfo.coeff(1) < shiftInfo.coeff(0))
+        s = -s;
+      s = s + (shiftInfo.coeff(1) - shiftInfo.coeff(0)) / Scalar(2.0);
+      s = shiftInfo.coeff(0) - shiftInfo.coeff(2) / s;
+      exshift += s;
+      for (Index i = 0; i <= iu; ++i)
+        m_matT.coeffRef(i,i) -= s;
+      shiftInfo.setConstant(Scalar(0.964));
+    }
+  }
+}
+
+/** \internal Compute index im at which Francis QR step starts and the first Householder vector. */
+template<typename MatrixType>
+inline void RealSchur<MatrixType>::initFrancisQRStep(Index il, Index iu, const Vector3s& shiftInfo, Index& im, Vector3s& firstHouseholderVector)
+{
+  using std::abs;
+  Vector3s& v = firstHouseholderVector; // alias to save typing
+
+  for (im = iu-2; im >= il; --im)
+  {
+    const Scalar Tmm = m_matT.coeff(im,im);
+    const Scalar r = shiftInfo.coeff(0) - Tmm;
+    const Scalar s = shiftInfo.coeff(1) - Tmm;
+    v.coeffRef(0) = (r * s - shiftInfo.coeff(2)) / m_matT.coeff(im+1,im) + m_matT.coeff(im,im+1);
+    v.coeffRef(1) = m_matT.coeff(im+1,im+1) - Tmm - r - s;
+    v.coeffRef(2) = m_matT.coeff(im+2,im+1);
+    if (im == il) {
+      break;
+    }
+    const Scalar lhs = m_matT.coeff(im,im-1) * (abs(v.coeff(1)) + abs(v.coeff(2)));
+    const Scalar rhs = v.coeff(0) * (abs(m_matT.coeff(im-1,im-1)) + abs(Tmm) + abs(m_matT.coeff(im+1,im+1)));
+    if (abs(lhs) < NumTraits<Scalar>::epsilon() * rhs)
+      break;
+  }
+}
+
+/** \internal Perform a Francis QR step involving rows il:iu and columns im:iu. */
+template<typename MatrixType>
+inline void RealSchur<MatrixType>::performFrancisQRStep(Index il, Index im, Index iu, bool computeU, const Vector3s& firstHouseholderVector, Scalar* workspace)
+{
+  eigen_assert(im >= il);
+  eigen_assert(im <= iu-2);
+
+  const Index size = m_matT.cols();
+
+  for (Index k = im; k <= iu-2; ++k)
+  {
+    bool firstIteration = (k == im);
+
+    Vector3s v;
+    if (firstIteration)
+      v = firstHouseholderVector;
+    else
+      v = m_matT.template block<3,1>(k,k-1);
+
+    Scalar tau, beta;
+    Matrix<Scalar, 2, 1> ess;
+    v.makeHouseholder(ess, tau, beta);
+    
+    if (beta != Scalar(0)) // if v is not zero
+    {
+      if (firstIteration && k > il)
+        m_matT.coeffRef(k,k-1) = -m_matT.coeff(k,k-1);
+      else if (!firstIteration)
+        m_matT.coeffRef(k,k-1) = beta;
+
+      // These Householder transformations form the O(n^3) part of the algorithm
+      m_matT.block(k, k, 3, size-k).applyHouseholderOnTheLeft(ess, tau, workspace);
+      m_matT.block(0, k, (std::min)(iu,k+3) + 1, 3).applyHouseholderOnTheRight(ess, tau, workspace);
+      if (computeU)
+        m_matU.block(0, k, size, 3).applyHouseholderOnTheRight(ess, tau, workspace);
+    }
+  }
+
+  Matrix<Scalar, 2, 1> v = m_matT.template block<2,1>(iu-1, iu-2);
+  Scalar tau, beta;
+  Matrix<Scalar, 1, 1> ess;
+  v.makeHouseholder(ess, tau, beta);
+
+  if (beta != Scalar(0)) // if v is not zero
+  {
+    m_matT.coeffRef(iu-1, iu-2) = beta;
+    m_matT.block(iu-1, iu-1, 2, size-iu+1).applyHouseholderOnTheLeft(ess, tau, workspace);
+    m_matT.block(0, iu-1, iu+1, 2).applyHouseholderOnTheRight(ess, tau, workspace);
+    if (computeU)
+      m_matU.block(0, iu-1, size, 2).applyHouseholderOnTheRight(ess, tau, workspace);
+  }
+
+  // clean up pollution due to round-off errors
+  for (Index i = im+2; i <= iu; ++i)
+  {
+    m_matT.coeffRef(i,i-2) = Scalar(0);
+    if (i > im+2)
+      m_matT.coeffRef(i,i-3) = Scalar(0);
+  }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_REAL_SCHUR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h	(revision 2476)
@@ -0,0 +1,92 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *    Self-adjoint eigenvalues/eigenvectors.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_SAEIGENSOLVER_MKL_H
+#define EIGEN_SAEIGENSOLVER_MKL_H
+
+#include "Eigen/src/Core/util/MKL_support.h"
+
+namespace Eigen { 
+
+/** \internal Specialization for the data types supported by MKL */
+
+#define EIGEN_MKL_EIG_SELFADJ(EIGTYPE, MKLTYPE, MKLRTYPE, MKLNAME, EIGCOLROW, MKLCOLROW ) \
+template<> inline \
+SelfAdjointEigenSolver<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >& \
+SelfAdjointEigenSolver<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >::compute(const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW>& matrix, int options) \
+{ \
+  eigen_assert(matrix.cols() == matrix.rows()); \
+  eigen_assert((options&~(EigVecMask|GenEigMask))==0 \
+          && (options&EigVecMask)!=EigVecMask \
+          && "invalid option parameter"); \
+  bool computeEigenvectors = (options&ComputeEigenvectors)==ComputeEigenvectors; \
+  lapack_int n = matrix.cols(), lda, matrix_order, info; \
+  m_eivalues.resize(n,1); \
+  m_subdiag.resize(n-1); \
+  m_eivec = matrix; \
+\
+  if(n==1) \
+  { \
+    m_eivalues.coeffRef(0,0) = numext::real(matrix.coeff(0,0)); \
+    if(computeEigenvectors) m_eivec.setOnes(n,n); \
+    m_info = Success; \
+    m_isInitialized = true; \
+    m_eigenvectorsOk = computeEigenvectors; \
+    return *this; \
+  } \
+\
+  lda = matrix.outerStride(); \
+  matrix_order=MKLCOLROW; \
+  char jobz, uplo='L'/*, range='A'*/; \
+  jobz = computeEigenvectors ? 'V' : 'N'; \
+\
+  info = LAPACKE_##MKLNAME( matrix_order, jobz, uplo, n, (MKLTYPE*)m_eivec.data(), lda, (MKLRTYPE*)m_eivalues.data() ); \
+  m_info = (info==0) ? Success : NoConvergence; \
+  m_isInitialized = true; \
+  m_eigenvectorsOk = computeEigenvectors; \
+  return *this; \
+}
+
+
+EIGEN_MKL_EIG_SELFADJ(double,   double,        double, dsyev, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_EIG_SELFADJ(float,    float,         float,  ssyev, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_EIG_SELFADJ(dcomplex, MKL_Complex16, double, zheev, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_EIG_SELFADJ(scomplex, MKL_Complex8,  float,  cheev, ColMajor, LAPACK_COL_MAJOR)
+
+EIGEN_MKL_EIG_SELFADJ(double,   double,        double, dsyev, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_EIG_SELFADJ(float,    float,         float,  ssyev, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_EIG_SELFADJ(dcomplex, MKL_Complex16, double, zheev, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_EIG_SELFADJ(scomplex, MKL_Complex8,  float,  cheev, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_SAEIGENSOLVER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/ComplexEigenSolver.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/ComplexEigenSolver.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/ComplexEigenSolver.h	(revision 2476)
@@ -0,0 +1,341 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Claire Maurice
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_EIGEN_SOLVER_H
+#define EIGEN_COMPLEX_EIGEN_SOLVER_H
+
+#include "./ComplexSchur.h"
+
+namespace Eigen { 
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class ComplexEigenSolver
+  *
+  * \brief Computes eigenvalues and eigenvectors of general complex matrices
+  *
+  * \tparam _MatrixType the type of the matrix of which we are
+  * computing the eigendecomposition; this is expected to be an
+  * instantiation of the Matrix class template.
+  *
+  * The eigenvalues and eigenvectors of a matrix \f$ A \f$ are scalars
+  * \f$ \lambda \f$ and vectors \f$ v \f$ such that \f$ Av = \lambda v
+  * \f$.  If \f$ D \f$ is a diagonal matrix with the eigenvalues on
+  * the diagonal, and \f$ V \f$ is a matrix with the eigenvectors as
+  * its columns, then \f$ A V = V D \f$. The matrix \f$ V \f$ is
+  * almost always invertible, in which case we have \f$ A = V D V^{-1}
+  * \f$. This is called the eigendecomposition.
+  *
+  * The main function in this class is compute(), which computes the
+  * eigenvalues and eigenvectors of a given function. The
+  * documentation for that function contains an example showing the
+  * main features of the class.
+  *
+  * \sa class EigenSolver, class SelfAdjointEigenSolver
+  */
+template<typename _MatrixType> class ComplexEigenSolver
+{
+  public:
+
+    /** \brief Synonym for the template parameter \p _MatrixType. */
+    typedef _MatrixType MatrixType;
+
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+
+    /** \brief Scalar type for matrices of type #MatrixType. */
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    /** \brief Complex scalar type for #MatrixType.
+      *
+      * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
+      * \c float or \c double) and just \c Scalar if #Scalar is
+      * complex.
+      */
+    typedef std::complex<RealScalar> ComplexScalar;
+
+    /** \brief Type for vector of eigenvalues as returned by eigenvalues().
+      *
+      * This is a column vector with entries of type #ComplexScalar.
+      * The length of the vector is the size of #MatrixType.
+      */
+    typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options&(~RowMajor), MaxColsAtCompileTime, 1> EigenvalueType;
+
+    /** \brief Type for matrix of eigenvectors as returned by eigenvectors().
+      *
+      * This is a square matrix with entries of type #ComplexScalar.
+      * The size is the same as the size of #MatrixType.
+      */
+    typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorType;
+
+    /** \brief Default constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via compute().
+      */
+    ComplexEigenSolver()
+            : m_eivec(),
+              m_eivalues(),
+              m_schur(),
+              m_isInitialized(false),
+              m_eigenvectorsOk(false),
+              m_matX()
+    {}
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa ComplexEigenSolver()
+      */
+    ComplexEigenSolver(Index size)
+            : m_eivec(size, size),
+              m_eivalues(size),
+              m_schur(size),
+              m_isInitialized(false),
+              m_eigenvectorsOk(false),
+              m_matX(size, size)
+    {}
+
+    /** \brief Constructor; computes eigendecomposition of given matrix.
+      *
+      * \param[in]  matrix  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
+      *    eigenvalues are computed; if false, only the eigenvalues are
+      *    computed.
+      *
+      * This constructor calls compute() to compute the eigendecomposition.
+      */
+      ComplexEigenSolver(const MatrixType& matrix, bool computeEigenvectors = true)
+            : m_eivec(matrix.rows(),matrix.cols()),
+              m_eivalues(matrix.cols()),
+              m_schur(matrix.rows()),
+              m_isInitialized(false),
+              m_eigenvectorsOk(false),
+              m_matX(matrix.rows(),matrix.cols())
+    {
+      compute(matrix, computeEigenvectors);
+    }
+
+    /** \brief Returns the eigenvectors of given matrix.
+      *
+      * \returns  A const reference to the matrix whose columns are the eigenvectors.
+      *
+      * \pre Either the constructor
+      * ComplexEigenSolver(const MatrixType& matrix, bool) or the member
+      * function compute(const MatrixType& matrix, bool) has been called before
+      * to compute the eigendecomposition of a matrix, and
+      * \p computeEigenvectors was set to true (the default).
+      *
+      * This function returns a matrix whose columns are the eigenvectors. Column
+      * \f$ k \f$ is an eigenvector corresponding to eigenvalue number \f$ k
+      * \f$ as returned by eigenvalues().  The eigenvectors are normalized to
+      * have (Euclidean) norm equal to one. The matrix returned by this
+      * function is the matrix \f$ V \f$ in the eigendecomposition \f$ A = V D
+      * V^{-1} \f$, if it exists.
+      *
+      * Example: \include ComplexEigenSolver_eigenvectors.cpp
+      * Output: \verbinclude ComplexEigenSolver_eigenvectors.out
+      */
+    const EigenvectorType& eigenvectors() const
+    {
+      eigen_assert(m_isInitialized && "ComplexEigenSolver is not initialized.");
+      eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+      return m_eivec;
+    }
+
+    /** \brief Returns the eigenvalues of given matrix.
+      *
+      * \returns A const reference to the column vector containing the eigenvalues.
+      *
+      * \pre Either the constructor
+      * ComplexEigenSolver(const MatrixType& matrix, bool) or the member
+      * function compute(const MatrixType& matrix, bool) has been called before
+      * to compute the eigendecomposition of a matrix.
+      *
+      * This function returns a column vector containing the
+      * eigenvalues. Eigenvalues are repeated according to their
+      * algebraic multiplicity, so there are as many eigenvalues as
+      * rows in the matrix. The eigenvalues are not sorted in any particular
+      * order.
+      *
+      * Example: \include ComplexEigenSolver_eigenvalues.cpp
+      * Output: \verbinclude ComplexEigenSolver_eigenvalues.out
+      */
+    const EigenvalueType& eigenvalues() const
+    {
+      eigen_assert(m_isInitialized && "ComplexEigenSolver is not initialized.");
+      return m_eivalues;
+    }
+
+    /** \brief Computes eigendecomposition of given matrix.
+      *
+      * \param[in]  matrix  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
+      *    eigenvalues are computed; if false, only the eigenvalues are
+      *    computed.
+      * \returns    Reference to \c *this
+      *
+      * This function computes the eigenvalues of the complex matrix \p matrix.
+      * The eigenvalues() function can be used to retrieve them.  If
+      * \p computeEigenvectors is true, then the eigenvectors are also computed
+      * and can be retrieved by calling eigenvectors().
+      *
+      * The matrix is first reduced to Schur form using the
+      * ComplexSchur class. The Schur decomposition is then used to
+      * compute the eigenvalues and eigenvectors.
+      *
+      * The cost of the computation is dominated by the cost of the
+      * Schur decomposition, which is \f$ O(n^3) \f$ where \f$ n \f$
+      * is the size of the matrix.
+      *
+      * Example: \include ComplexEigenSolver_compute.cpp
+      * Output: \verbinclude ComplexEigenSolver_compute.out
+      */
+    ComplexEigenSolver& compute(const MatrixType& matrix, bool computeEigenvectors = true);
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "ComplexEigenSolver is not initialized.");
+      return m_schur.info();
+    }
+
+    /** \brief Sets the maximum number of iterations allowed. */
+    ComplexEigenSolver& setMaxIterations(Index maxIters)
+    {
+      m_schur.setMaxIterations(maxIters);
+      return *this;
+    }
+
+    /** \brief Returns the maximum number of iterations. */
+    Index getMaxIterations()
+    {
+      return m_schur.getMaxIterations();
+    }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    EigenvectorType m_eivec;
+    EigenvalueType m_eivalues;
+    ComplexSchur<MatrixType> m_schur;
+    bool m_isInitialized;
+    bool m_eigenvectorsOk;
+    EigenvectorType m_matX;
+
+  private:
+    void doComputeEigenvectors(const RealScalar& matrixnorm);
+    void sortEigenvalues(bool computeEigenvectors);
+};
+
+
+template<typename MatrixType>
+ComplexEigenSolver<MatrixType>& 
+ComplexEigenSolver<MatrixType>::compute(const MatrixType& matrix, bool computeEigenvectors)
+{
+  check_template_parameters();
+  
+  // this code is inspired from Jampack
+  eigen_assert(matrix.cols() == matrix.rows());
+
+  // Do a complex Schur decomposition, A = U T U^*
+  // The eigenvalues are on the diagonal of T.
+  m_schur.compute(matrix, computeEigenvectors);
+
+  if(m_schur.info() == Success)
+  {
+    m_eivalues = m_schur.matrixT().diagonal();
+    if(computeEigenvectors)
+      doComputeEigenvectors(matrix.norm());
+    sortEigenvalues(computeEigenvectors);
+  }
+
+  m_isInitialized = true;
+  m_eigenvectorsOk = computeEigenvectors;
+  return *this;
+}
+
+
+template<typename MatrixType>
+void ComplexEigenSolver<MatrixType>::doComputeEigenvectors(const RealScalar& matrixnorm)
+{
+  const Index n = m_eivalues.size();
+
+  // Compute X such that T = X D X^(-1), where D is the diagonal of T.
+  // The matrix X is unit triangular.
+  m_matX = EigenvectorType::Zero(n, n);
+  for(Index k=n-1 ; k>=0 ; k--)
+  {
+    m_matX.coeffRef(k,k) = ComplexScalar(1.0,0.0);
+    // Compute X(i,k) using the (i,k) entry of the equation X T = D X
+    for(Index i=k-1 ; i>=0 ; i--)
+    {
+      m_matX.coeffRef(i,k) = -m_schur.matrixT().coeff(i,k);
+      if(k-i-1>0)
+        m_matX.coeffRef(i,k) -= (m_schur.matrixT().row(i).segment(i+1,k-i-1) * m_matX.col(k).segment(i+1,k-i-1)).value();
+      ComplexScalar z = m_schur.matrixT().coeff(i,i) - m_schur.matrixT().coeff(k,k);
+      if(z==ComplexScalar(0))
+      {
+        // If the i-th and k-th eigenvalue are equal, then z equals 0.
+        // Use a small value instead, to prevent division by zero.
+        numext::real_ref(z) = NumTraits<RealScalar>::epsilon() * matrixnorm;
+      }
+      m_matX.coeffRef(i,k) = m_matX.coeff(i,k) / z;
+    }
+  }
+
+  // Compute V as V = U X; now A = U T U^* = U X D X^(-1) U^* = V D V^(-1)
+  m_eivec.noalias() = m_schur.matrixU() * m_matX;
+  // .. and normalize the eigenvectors
+  for(Index k=0 ; k<n ; k++)
+  {
+    m_eivec.col(k).normalize();
+  }
+}
+
+
+template<typename MatrixType>
+void ComplexEigenSolver<MatrixType>::sortEigenvalues(bool computeEigenvectors)
+{
+  const Index n =  m_eivalues.size();
+  for (Index i=0; i<n; i++)
+  {
+    Index k;
+    m_eivalues.cwiseAbs().tail(n-i).minCoeff(&k);
+    if (k != 0)
+    {
+      k += i;
+      std::swap(m_eivalues[k],m_eivalues[i]);
+      if(computeEigenvectors)
+	m_eivec.col(i).swap(m_eivec.col(k));
+    }
+  }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_EIGEN_SOLVER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/RealSchur_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/RealSchur_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/RealSchur_MKL.h	(revision 2476)
@@ -0,0 +1,79 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *    Real Schur needed to real unsymmetrical eigenvalues/eigenvectors.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_REAL_SCHUR_MKL_H
+#define EIGEN_REAL_SCHUR_MKL_H
+
+#include "Eigen/src/Core/util/MKL_support.h"
+
+namespace Eigen { 
+
+/** \internal Specialization for the data types supported by MKL */
+
+#define EIGEN_MKL_SCHUR_REAL(EIGTYPE, MKLTYPE, MKLPREFIX, MKLPREFIX_U, EIGCOLROW, MKLCOLROW) \
+template<> inline \
+RealSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >& \
+RealSchur<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW> >::compute(const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW>& matrix, bool computeU) \
+{ \
+  eigen_assert(matrix.cols() == matrix.rows()); \
+\
+  lapack_int n = matrix.cols(), sdim, info; \
+  lapack_int lda = matrix.outerStride(); \
+  lapack_int matrix_order = MKLCOLROW; \
+  char jobvs, sort='N'; \
+  LAPACK_##MKLPREFIX_U##_SELECT2 select = 0; \
+  jobvs = (computeU) ? 'V' : 'N'; \
+  m_matU.resize(n, n); \
+  lapack_int ldvs  = m_matU.outerStride(); \
+  m_matT = matrix; \
+  Matrix<EIGTYPE, Dynamic, Dynamic> wr, wi; \
+  wr.resize(n, 1); wi.resize(n, 1); \
+  info = LAPACKE_##MKLPREFIX##gees( matrix_order, jobvs, sort, select, n, (MKLTYPE*)m_matT.data(), lda, &sdim, (MKLTYPE*)wr.data(), (MKLTYPE*)wi.data(), (MKLTYPE*)m_matU.data(), ldvs ); \
+  if(info == 0) \
+    m_info = Success; \
+  else \
+    m_info = NoConvergence; \
+\
+  m_isInitialized = true; \
+  m_matUisUptodate = computeU; \
+  return *this; \
+\
+}
+
+EIGEN_MKL_SCHUR_REAL(double,   double, d, D, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SCHUR_REAL(float,    float,  s, S, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SCHUR_REAL(double,   double, d, D, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_SCHUR_REAL(float,    float,  s, S, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_REAL_SCHUR_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/Tridiagonalization.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/Tridiagonalization.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/Tridiagonalization.h	(revision 2476)
@@ -0,0 +1,557 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIDIAGONALIZATION_H
+#define EIGEN_TRIDIAGONALIZATION_H
+
+namespace Eigen { 
+
+namespace internal {
+  
+template<typename MatrixType> struct TridiagonalizationMatrixTReturnType;
+template<typename MatrixType>
+struct traits<TridiagonalizationMatrixTReturnType<MatrixType> >
+{
+  typedef typename MatrixType::PlainObject ReturnType;
+};
+
+template<typename MatrixType, typename CoeffVectorType>
+void tridiagonalization_inplace(MatrixType& matA, CoeffVectorType& hCoeffs);
+}
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class Tridiagonalization
+  *
+  * \brief Tridiagonal decomposition of a selfadjoint matrix
+  *
+  * \tparam _MatrixType the type of the matrix of which we are computing the
+  * tridiagonal decomposition; this is expected to be an instantiation of the
+  * Matrix class template.
+  *
+  * This class performs a tridiagonal decomposition of a selfadjoint matrix \f$ A \f$ such that:
+  * \f$ A = Q T Q^* \f$ where \f$ Q \f$ is unitary and \f$ T \f$ a real symmetric tridiagonal matrix.
+  *
+  * A tridiagonal matrix is a matrix which has nonzero elements only on the
+  * main diagonal and the first diagonal below and above it. The Hessenberg
+  * decomposition of a selfadjoint matrix is in fact a tridiagonal
+  * decomposition. This class is used in SelfAdjointEigenSolver to compute the
+  * eigenvalues and eigenvectors of a selfadjoint matrix.
+  *
+  * Call the function compute() to compute the tridiagonal decomposition of a
+  * given matrix. Alternatively, you can use the Tridiagonalization(const MatrixType&)
+  * constructor which computes the tridiagonal Schur decomposition at
+  * construction time. Once the decomposition is computed, you can use the
+  * matrixQ() and matrixT() functions to retrieve the matrices Q and T in the
+  * decomposition.
+  *
+  * The documentation of Tridiagonalization(const MatrixType&) contains an
+  * example of the typical use of this class.
+  *
+  * \sa class HessenbergDecomposition, class SelfAdjointEigenSolver
+  */
+template<typename _MatrixType> class Tridiagonalization
+{
+  public:
+
+    /** \brief Synonym for the template parameter \p _MatrixType. */
+    typedef _MatrixType MatrixType;
+
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    enum {
+      Size = MatrixType::RowsAtCompileTime,
+      SizeMinusOne = Size == Dynamic ? Dynamic : (Size > 1 ? Size - 1 : 1),
+      Options = MatrixType::Options,
+      MaxSize = MatrixType::MaxRowsAtCompileTime,
+      MaxSizeMinusOne = MaxSize == Dynamic ? Dynamic : (MaxSize > 1 ? MaxSize - 1 : 1)
+    };
+
+    typedef Matrix<Scalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> CoeffVectorType;
+    typedef typename internal::plain_col_type<MatrixType, RealScalar>::type DiagonalType;
+    typedef Matrix<RealScalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> SubDiagonalType;
+    typedef typename internal::remove_all<typename MatrixType::RealReturnType>::type MatrixTypeRealView;
+    typedef internal::TridiagonalizationMatrixTReturnType<MatrixTypeRealView> MatrixTReturnType;
+
+    typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+              typename internal::add_const_on_value_type<typename Diagonal<const MatrixType>::RealReturnType>::type,
+              const Diagonal<const MatrixType>
+            >::type DiagonalReturnType;
+
+    typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+              typename internal::add_const_on_value_type<typename Diagonal<
+                Block<const MatrixType,SizeMinusOne,SizeMinusOne> >::RealReturnType>::type,
+              const Diagonal<
+                Block<const MatrixType,SizeMinusOne,SizeMinusOne> >
+            >::type SubDiagonalReturnType;
+
+    /** \brief Return type of matrixQ() */
+    typedef HouseholderSequence<MatrixType,typename internal::remove_all<typename CoeffVectorType::ConjugateReturnType>::type> HouseholderSequenceType;
+
+    /** \brief Default constructor.
+      *
+      * \param [in]  size  Positive integer, size of the matrix whose tridiagonal
+      * decomposition will be computed.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via compute().  The \p size parameter is only
+      * used as a hint. It is not an error to give a wrong \p size, but it may
+      * impair performance.
+      *
+      * \sa compute() for an example.
+      */
+    Tridiagonalization(Index size = Size==Dynamic ? 2 : Size)
+      : m_matrix(size,size),
+        m_hCoeffs(size > 1 ? size-1 : 1),
+        m_isInitialized(false)
+    {}
+
+    /** \brief Constructor; computes tridiagonal decomposition of given matrix.
+      *
+      * \param[in]  matrix  Selfadjoint matrix whose tridiagonal decomposition
+      * is to be computed.
+      *
+      * This constructor calls compute() to compute the tridiagonal decomposition.
+      *
+      * Example: \include Tridiagonalization_Tridiagonalization_MatrixType.cpp
+      * Output: \verbinclude Tridiagonalization_Tridiagonalization_MatrixType.out
+      */
+    Tridiagonalization(const MatrixType& matrix)
+      : m_matrix(matrix),
+        m_hCoeffs(matrix.cols() > 1 ? matrix.cols()-1 : 1),
+        m_isInitialized(false)
+    {
+      internal::tridiagonalization_inplace(m_matrix, m_hCoeffs);
+      m_isInitialized = true;
+    }
+
+    /** \brief Computes tridiagonal decomposition of given matrix.
+      *
+      * \param[in]  matrix  Selfadjoint matrix whose tridiagonal decomposition
+      * is to be computed.
+      * \returns    Reference to \c *this
+      *
+      * The tridiagonal decomposition is computed by bringing the columns of
+      * the matrix successively in the required form using Householder
+      * reflections. The cost is \f$ 4n^3/3 \f$ flops, where \f$ n \f$ denotes
+      * the size of the given matrix.
+      *
+      * This method reuses of the allocated data in the Tridiagonalization
+      * object, if the size of the matrix does not change.
+      *
+      * Example: \include Tridiagonalization_compute.cpp
+      * Output: \verbinclude Tridiagonalization_compute.out
+      */
+    Tridiagonalization& compute(const MatrixType& matrix)
+    {
+      m_matrix = matrix;
+      m_hCoeffs.resize(matrix.rows()-1, 1);
+      internal::tridiagonalization_inplace(m_matrix, m_hCoeffs);
+      m_isInitialized = true;
+      return *this;
+    }
+
+    /** \brief Returns the Householder coefficients.
+      *
+      * \returns a const reference to the vector of Householder coefficients
+      *
+      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+      * the member function compute(const MatrixType&) has been called before
+      * to compute the tridiagonal decomposition of a matrix.
+      *
+      * The Householder coefficients allow the reconstruction of the matrix
+      * \f$ Q \f$ in the tridiagonal decomposition from the packed data.
+      *
+      * Example: \include Tridiagonalization_householderCoefficients.cpp
+      * Output: \verbinclude Tridiagonalization_householderCoefficients.out
+      *
+      * \sa packedMatrix(), \ref Householder_Module "Householder module"
+      */
+    inline CoeffVectorType householderCoefficients() const
+    {
+      eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+      return m_hCoeffs;
+    }
+
+    /** \brief Returns the internal representation of the decomposition
+      *
+      *	\returns a const reference to a matrix with the internal representation
+      *	         of the decomposition.
+      *
+      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+      * the member function compute(const MatrixType&) has been called before
+      * to compute the tridiagonal decomposition of a matrix.
+      *
+      * The returned matrix contains the following information:
+      *  - the strict upper triangular part is equal to the input matrix A.
+      *  - the diagonal and lower sub-diagonal represent the real tridiagonal
+      *    symmetric matrix T.
+      *  - the rest of the lower part contains the Householder vectors that,
+      *    combined with Householder coefficients returned by
+      *    householderCoefficients(), allows to reconstruct the matrix Q as
+      *       \f$ Q = H_{N-1} \ldots H_1 H_0 \f$.
+      *    Here, the matrices \f$ H_i \f$ are the Householder transformations
+      *       \f$ H_i = (I - h_i v_i v_i^T) \f$
+      *    where \f$ h_i \f$ is the \f$ i \f$th Householder coefficient and
+      *    \f$ v_i \f$ is the Householder vector defined by
+      *       \f$ v_i = [ 0, \ldots, 0, 1, M(i+2,i), \ldots, M(N-1,i) ]^T \f$
+      *    with M the matrix returned by this function.
+      *
+      * See LAPACK for further details on this packed storage.
+      *
+      * Example: \include Tridiagonalization_packedMatrix.cpp
+      * Output: \verbinclude Tridiagonalization_packedMatrix.out
+      *
+      * \sa householderCoefficients()
+      */
+    inline const MatrixType& packedMatrix() const
+    {
+      eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+      return m_matrix;
+    }
+
+    /** \brief Returns the unitary matrix Q in the decomposition
+      *
+      * \returns object representing the matrix Q
+      *
+      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+      * the member function compute(const MatrixType&) has been called before
+      * to compute the tridiagonal decomposition of a matrix.
+      *
+      * This function returns a light-weight object of template class
+      * HouseholderSequence. You can either apply it directly to a matrix or
+      * you can convert it to a matrix of type #MatrixType.
+      *
+      * \sa Tridiagonalization(const MatrixType&) for an example,
+      *     matrixT(), class HouseholderSequence
+      */
+    HouseholderSequenceType matrixQ() const
+    {
+      eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+      return HouseholderSequenceType(m_matrix, m_hCoeffs.conjugate())
+             .setLength(m_matrix.rows() - 1)
+             .setShift(1);
+    }
+
+    /** \brief Returns an expression of the tridiagonal matrix T in the decomposition
+      *
+      * \returns expression object representing the matrix T
+      *
+      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+      * the member function compute(const MatrixType&) has been called before
+      * to compute the tridiagonal decomposition of a matrix.
+      *
+      * Currently, this function can be used to extract the matrix T from internal
+      * data and copy it to a dense matrix object. In most cases, it may be
+      * sufficient to directly use the packed matrix or the vector expressions
+      * returned by diagonal() and subDiagonal() instead of creating a new
+      * dense copy matrix with this function.
+      *
+      * \sa Tridiagonalization(const MatrixType&) for an example,
+      * matrixQ(), packedMatrix(), diagonal(), subDiagonal()
+      */
+    MatrixTReturnType matrixT() const
+    {
+      eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+      return MatrixTReturnType(m_matrix.real());
+    }
+
+    /** \brief Returns the diagonal of the tridiagonal matrix T in the decomposition.
+      *
+      * \returns expression representing the diagonal of T
+      *
+      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+      * the member function compute(const MatrixType&) has been called before
+      * to compute the tridiagonal decomposition of a matrix.
+      *
+      * Example: \include Tridiagonalization_diagonal.cpp
+      * Output: \verbinclude Tridiagonalization_diagonal.out
+      *
+      * \sa matrixT(), subDiagonal()
+      */
+    DiagonalReturnType diagonal() const;
+
+    /** \brief Returns the subdiagonal of the tridiagonal matrix T in the decomposition.
+      *
+      * \returns expression representing the subdiagonal of T
+      *
+      * \pre Either the constructor Tridiagonalization(const MatrixType&) or
+      * the member function compute(const MatrixType&) has been called before
+      * to compute the tridiagonal decomposition of a matrix.
+      *
+      * \sa diagonal() for an example, matrixT()
+      */
+    SubDiagonalReturnType subDiagonal() const;
+
+  protected:
+
+    MatrixType m_matrix;
+    CoeffVectorType m_hCoeffs;
+    bool m_isInitialized;
+};
+
+template<typename MatrixType>
+typename Tridiagonalization<MatrixType>::DiagonalReturnType
+Tridiagonalization<MatrixType>::diagonal() const
+{
+  eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+  return m_matrix.diagonal();
+}
+
+template<typename MatrixType>
+typename Tridiagonalization<MatrixType>::SubDiagonalReturnType
+Tridiagonalization<MatrixType>::subDiagonal() const
+{
+  eigen_assert(m_isInitialized && "Tridiagonalization is not initialized.");
+  Index n = m_matrix.rows();
+  return Block<const MatrixType,SizeMinusOne,SizeMinusOne>(m_matrix, 1, 0, n-1,n-1).diagonal();
+}
+
+namespace internal {
+
+/** \internal
+  * Performs a tridiagonal decomposition of the selfadjoint matrix \a matA in-place.
+  *
+  * \param[in,out] matA On input the selfadjoint matrix. Only the \b lower triangular part is referenced.
+  *                     On output, the strict upper part is left unchanged, and the lower triangular part
+  *                     represents the T and Q matrices in packed format has detailed below.
+  * \param[out]    hCoeffs returned Householder coefficients (see below)
+  *
+  * On output, the tridiagonal selfadjoint matrix T is stored in the diagonal
+  * and lower sub-diagonal of the matrix \a matA.
+  * The unitary matrix Q is represented in a compact way as a product of
+  * Householder reflectors \f$ H_i \f$ such that:
+  *       \f$ Q = H_{N-1} \ldots H_1 H_0 \f$.
+  * The Householder reflectors are defined as
+  *       \f$ H_i = (I - h_i v_i v_i^T) \f$
+  * where \f$ h_i = hCoeffs[i]\f$ is the \f$ i \f$th Householder coefficient and
+  * \f$ v_i \f$ is the Householder vector defined by
+  *       \f$ v_i = [ 0, \ldots, 0, 1, matA(i+2,i), \ldots, matA(N-1,i) ]^T \f$.
+  *
+  * Implemented from Golub's "Matrix Computations", algorithm 8.3.1.
+  *
+  * \sa Tridiagonalization::packedMatrix()
+  */
+template<typename MatrixType, typename CoeffVectorType>
+void tridiagonalization_inplace(MatrixType& matA, CoeffVectorType& hCoeffs)
+{
+  using numext::conj;
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::RealScalar RealScalar;
+  Index n = matA.rows();
+  eigen_assert(n==matA.cols());
+  eigen_assert(n==hCoeffs.size()+1 || n==1);
+  
+  for (Index i = 0; i<n-1; ++i)
+  {
+    Index remainingSize = n-i-1;
+    RealScalar beta;
+    Scalar h;
+    matA.col(i).tail(remainingSize).makeHouseholderInPlace(h, beta);
+
+    // Apply similarity transformation to remaining columns,
+    // i.e., A = H A H' where H = I - h v v' and v = matA.col(i).tail(n-i-1)
+    matA.col(i).coeffRef(i+1) = 1;
+
+    hCoeffs.tail(n-i-1).noalias() = (matA.bottomRightCorner(remainingSize,remainingSize).template selfadjointView<Lower>()
+                                  * (conj(h) * matA.col(i).tail(remainingSize)));
+
+    hCoeffs.tail(n-i-1) += (conj(h)*RealScalar(-0.5)*(hCoeffs.tail(remainingSize).dot(matA.col(i).tail(remainingSize)))) * matA.col(i).tail(n-i-1);
+
+    matA.bottomRightCorner(remainingSize, remainingSize).template selfadjointView<Lower>()
+      .rankUpdate(matA.col(i).tail(remainingSize), hCoeffs.tail(remainingSize), Scalar(-1));
+
+    matA.col(i).coeffRef(i+1) = beta;
+    hCoeffs.coeffRef(i) = h;
+  }
+}
+
+// forward declaration, implementation at the end of this file
+template<typename MatrixType,
+         int Size=MatrixType::ColsAtCompileTime,
+         bool IsComplex=NumTraits<typename MatrixType::Scalar>::IsComplex>
+struct tridiagonalization_inplace_selector;
+
+/** \brief Performs a full tridiagonalization in place
+  *
+  * \param[in,out]  mat  On input, the selfadjoint matrix whose tridiagonal
+  *    decomposition is to be computed. Only the lower triangular part referenced.
+  *    The rest is left unchanged. On output, the orthogonal matrix Q
+  *    in the decomposition if \p extractQ is true.
+  * \param[out]  diag  The diagonal of the tridiagonal matrix T in the
+  *    decomposition.
+  * \param[out]  subdiag  The subdiagonal of the tridiagonal matrix T in
+  *    the decomposition.
+  * \param[in]  extractQ  If true, the orthogonal matrix Q in the
+  *    decomposition is computed and stored in \p mat.
+  *
+  * Computes the tridiagonal decomposition of the selfadjoint matrix \p mat in place
+  * such that \f$ mat = Q T Q^* \f$ where \f$ Q \f$ is unitary and \f$ T \f$ a real
+  * symmetric tridiagonal matrix.
+  *
+  * The tridiagonal matrix T is passed to the output parameters \p diag and \p subdiag. If
+  * \p extractQ is true, then the orthogonal matrix Q is passed to \p mat. Otherwise the lower
+  * part of the matrix \p mat is destroyed.
+  *
+  * The vectors \p diag and \p subdiag are not resized. The function
+  * assumes that they are already of the correct size. The length of the
+  * vector \p diag should equal the number of rows in \p mat, and the
+  * length of the vector \p subdiag should be one left.
+  *
+  * This implementation contains an optimized path for 3-by-3 matrices
+  * which is especially useful for plane fitting.
+  *
+  * \note Currently, it requires two temporary vectors to hold the intermediate
+  * Householder coefficients, and to reconstruct the matrix Q from the Householder
+  * reflectors.
+  *
+  * Example (this uses the same matrix as the example in
+  *    Tridiagonalization::Tridiagonalization(const MatrixType&)):
+  *    \include Tridiagonalization_decomposeInPlace.cpp
+  * Output: \verbinclude Tridiagonalization_decomposeInPlace.out
+  *
+  * \sa class Tridiagonalization
+  */
+template<typename MatrixType, typename DiagonalType, typename SubDiagonalType>
+void tridiagonalization_inplace(MatrixType& mat, DiagonalType& diag, SubDiagonalType& subdiag, bool extractQ)
+{
+  eigen_assert(mat.cols()==mat.rows() && diag.size()==mat.rows() && subdiag.size()==mat.rows()-1);
+  tridiagonalization_inplace_selector<MatrixType>::run(mat, diag, subdiag, extractQ);
+}
+
+/** \internal
+  * General full tridiagonalization
+  */
+template<typename MatrixType, int Size, bool IsComplex>
+struct tridiagonalization_inplace_selector
+{
+  typedef typename Tridiagonalization<MatrixType>::CoeffVectorType CoeffVectorType;
+  typedef typename Tridiagonalization<MatrixType>::HouseholderSequenceType HouseholderSequenceType;
+  typedef typename MatrixType::Index Index;
+  template<typename DiagonalType, typename SubDiagonalType>
+  static void run(MatrixType& mat, DiagonalType& diag, SubDiagonalType& subdiag, bool extractQ)
+  {
+    CoeffVectorType hCoeffs(mat.cols()-1);
+    tridiagonalization_inplace(mat,hCoeffs);
+    diag = mat.diagonal().real();
+    subdiag = mat.template diagonal<-1>().real();
+    if(extractQ)
+      mat = HouseholderSequenceType(mat, hCoeffs.conjugate())
+            .setLength(mat.rows() - 1)
+            .setShift(1);
+  }
+};
+
+/** \internal
+  * Specialization for 3x3 real matrices.
+  * Especially useful for plane fitting.
+  */
+template<typename MatrixType>
+struct tridiagonalization_inplace_selector<MatrixType,3,false>
+{
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::RealScalar RealScalar;
+
+  template<typename DiagonalType, typename SubDiagonalType>
+  static void run(MatrixType& mat, DiagonalType& diag, SubDiagonalType& subdiag, bool extractQ)
+  {
+    using std::sqrt;
+    diag[0] = mat(0,0);
+    RealScalar v1norm2 = numext::abs2(mat(2,0));
+    if(v1norm2 == RealScalar(0))
+    {
+      diag[1] = mat(1,1);
+      diag[2] = mat(2,2);
+      subdiag[0] = mat(1,0);
+      subdiag[1] = mat(2,1);
+      if (extractQ)
+        mat.setIdentity();
+    }
+    else
+    {
+      RealScalar beta = sqrt(numext::abs2(mat(1,0)) + v1norm2);
+      RealScalar invBeta = RealScalar(1)/beta;
+      Scalar m01 = mat(1,0) * invBeta;
+      Scalar m02 = mat(2,0) * invBeta;
+      Scalar q = RealScalar(2)*m01*mat(2,1) + m02*(mat(2,2) - mat(1,1));
+      diag[1] = mat(1,1) + m02*q;
+      diag[2] = mat(2,2) - m02*q;
+      subdiag[0] = beta;
+      subdiag[1] = mat(2,1) - m01 * q;
+      if (extractQ)
+      {
+        mat << 1,   0,    0,
+               0, m01,  m02,
+               0, m02, -m01;
+      }
+    }
+  }
+};
+
+/** \internal
+  * Trivial specialization for 1x1 matrices
+  */
+template<typename MatrixType, bool IsComplex>
+struct tridiagonalization_inplace_selector<MatrixType,1,IsComplex>
+{
+  typedef typename MatrixType::Scalar Scalar;
+
+  template<typename DiagonalType, typename SubDiagonalType>
+  static void run(MatrixType& mat, DiagonalType& diag, SubDiagonalType&, bool extractQ)
+  {
+    diag(0,0) = numext::real(mat(0,0));
+    if(extractQ)
+      mat(0,0) = Scalar(1);
+  }
+};
+
+/** \internal
+  * \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  * \brief Expression type for return value of Tridiagonalization::matrixT()
+  *
+  * \tparam MatrixType type of underlying dense matrix
+  */
+template<typename MatrixType> struct TridiagonalizationMatrixTReturnType
+: public ReturnByValue<TridiagonalizationMatrixTReturnType<MatrixType> >
+{
+    typedef typename MatrixType::Index Index;
+  public:
+    /** \brief Constructor.
+      *
+      * \param[in] mat The underlying dense matrix
+      */
+    TridiagonalizationMatrixTReturnType(const MatrixType& mat) : m_matrix(mat) { }
+
+    template <typename ResultType>
+    inline void evalTo(ResultType& result) const
+    {
+      result.setZero();
+      result.template diagonal<1>() = m_matrix.template diagonal<-1>().conjugate();
+      result.diagonal() = m_matrix.diagonal();
+      result.template diagonal<-1>() = m_matrix.template diagonal<-1>();
+    }
+
+    Index rows() const { return m_matrix.rows(); }
+    Index cols() const { return m_matrix.cols(); }
+
+  protected:
+    typename MatrixType::Nested m_matrix;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIDIAGONALIZATION_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/ComplexSchur.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/ComplexSchur.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/ComplexSchur.h	(revision 2476)
@@ -0,0 +1,456 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Claire Maurice
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_SCHUR_H
+#define EIGEN_COMPLEX_SCHUR_H
+
+#include "./HessenbergDecomposition.h"
+
+namespace Eigen { 
+
+namespace internal {
+template<typename MatrixType, bool IsComplex> struct complex_schur_reduce_to_hessenberg;
+}
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class ComplexSchur
+  *
+  * \brief Performs a complex Schur decomposition of a real or complex square matrix
+  *
+  * \tparam _MatrixType the type of the matrix of which we are
+  * computing the Schur decomposition; this is expected to be an
+  * instantiation of the Matrix class template.
+  *
+  * Given a real or complex square matrix A, this class computes the
+  * Schur decomposition: \f$ A = U T U^*\f$ where U is a unitary
+  * complex matrix, and T is a complex upper triangular matrix.  The
+  * diagonal of the matrix T corresponds to the eigenvalues of the
+  * matrix A.
+  *
+  * Call the function compute() to compute the Schur decomposition of
+  * a given matrix. Alternatively, you can use the 
+  * ComplexSchur(const MatrixType&, bool) constructor which computes
+  * the Schur decomposition at construction time. Once the
+  * decomposition is computed, you can use the matrixU() and matrixT()
+  * functions to retrieve the matrices U and V in the decomposition.
+  *
+  * \note This code is inspired from Jampack
+  *
+  * \sa class RealSchur, class EigenSolver, class ComplexEigenSolver
+  */
+template<typename _MatrixType> class ComplexSchur
+{
+  public:
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+
+    /** \brief Scalar type for matrices of type \p _MatrixType. */
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    /** \brief Complex scalar type for \p _MatrixType. 
+      *
+      * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
+      * \c float or \c double) and just \c Scalar if #Scalar is
+      * complex.
+      */
+    typedef std::complex<RealScalar> ComplexScalar;
+
+    /** \brief Type for the matrices in the Schur decomposition.
+      *
+      * This is a square matrix with entries of type #ComplexScalar. 
+      * The size is the same as the size of \p _MatrixType.
+      */
+    typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> ComplexMatrixType;
+
+    /** \brief Default constructor.
+      *
+      * \param [in] size  Positive integer, size of the matrix whose Schur decomposition will be computed.
+      *
+      * The default constructor is useful in cases in which the user
+      * intends to perform decompositions via compute().  The \p size
+      * parameter is only used as a hint. It is not an error to give a
+      * wrong \p size, but it may impair performance.
+      *
+      * \sa compute() for an example.
+      */
+    ComplexSchur(Index size = RowsAtCompileTime==Dynamic ? 1 : RowsAtCompileTime)
+      : m_matT(size,size),
+        m_matU(size,size),
+        m_hess(size),
+        m_isInitialized(false),
+        m_matUisUptodate(false),
+        m_maxIters(-1)
+    {}
+
+    /** \brief Constructor; computes Schur decomposition of given matrix. 
+      * 
+      * \param[in]  matrix    Square matrix whose Schur decomposition is to be computed.
+      * \param[in]  computeU  If true, both T and U are computed; if false, only T is computed.
+      *
+      * This constructor calls compute() to compute the Schur decomposition.
+      *
+      * \sa matrixT() and matrixU() for examples.
+      */
+    ComplexSchur(const MatrixType& matrix, bool computeU = true)
+      : m_matT(matrix.rows(),matrix.cols()),
+        m_matU(matrix.rows(),matrix.cols()),
+        m_hess(matrix.rows()),
+        m_isInitialized(false),
+        m_matUisUptodate(false),
+        m_maxIters(-1)
+    {
+      compute(matrix, computeU);
+    }
+
+    /** \brief Returns the unitary matrix in the Schur decomposition. 
+      *
+      * \returns A const reference to the matrix U.
+      *
+      * It is assumed that either the constructor
+      * ComplexSchur(const MatrixType& matrix, bool computeU) or the
+      * member function compute(const MatrixType& matrix, bool computeU)
+      * has been called before to compute the Schur decomposition of a
+      * matrix, and that \p computeU was set to true (the default
+      * value).
+      *
+      * Example: \include ComplexSchur_matrixU.cpp
+      * Output: \verbinclude ComplexSchur_matrixU.out
+      */
+    const ComplexMatrixType& matrixU() const
+    {
+      eigen_assert(m_isInitialized && "ComplexSchur is not initialized.");
+      eigen_assert(m_matUisUptodate && "The matrix U has not been computed during the ComplexSchur decomposition.");
+      return m_matU;
+    }
+
+    /** \brief Returns the triangular matrix in the Schur decomposition. 
+      *
+      * \returns A const reference to the matrix T.
+      *
+      * It is assumed that either the constructor
+      * ComplexSchur(const MatrixType& matrix, bool computeU) or the
+      * member function compute(const MatrixType& matrix, bool computeU)
+      * has been called before to compute the Schur decomposition of a
+      * matrix.
+      *
+      * Note that this function returns a plain square matrix. If you want to reference
+      * only the upper triangular part, use:
+      * \code schur.matrixT().triangularView<Upper>() \endcode 
+      *
+      * Example: \include ComplexSchur_matrixT.cpp
+      * Output: \verbinclude ComplexSchur_matrixT.out
+      */
+    const ComplexMatrixType& matrixT() const
+    {
+      eigen_assert(m_isInitialized && "ComplexSchur is not initialized.");
+      return m_matT;
+    }
+
+    /** \brief Computes Schur decomposition of given matrix. 
+      * 
+      * \param[in]  matrix  Square matrix whose Schur decomposition is to be computed.
+      * \param[in]  computeU  If true, both T and U are computed; if false, only T is computed.
+
+      * \returns    Reference to \c *this
+      *
+      * The Schur decomposition is computed by first reducing the
+      * matrix to Hessenberg form using the class
+      * HessenbergDecomposition. The Hessenberg matrix is then reduced
+      * to triangular form by performing QR iterations with a single
+      * shift. The cost of computing the Schur decomposition depends
+      * on the number of iterations; as a rough guide, it may be taken
+      * on the number of iterations; as a rough guide, it may be taken
+      * to be \f$25n^3\f$ complex flops, or \f$10n^3\f$ complex flops
+      * if \a computeU is false.
+      *
+      * Example: \include ComplexSchur_compute.cpp
+      * Output: \verbinclude ComplexSchur_compute.out
+      *
+      * \sa compute(const MatrixType&, bool, Index)
+      */
+    ComplexSchur& compute(const MatrixType& matrix, bool computeU = true);
+    
+    /** \brief Compute Schur decomposition from a given Hessenberg matrix
+     *  \param[in] matrixH Matrix in Hessenberg form H
+     *  \param[in] matrixQ orthogonal matrix Q that transform a matrix A to H : A = Q H Q^T
+     *  \param computeU Computes the matriX U of the Schur vectors
+     * \return Reference to \c *this
+     * 
+     *  This routine assumes that the matrix is already reduced in Hessenberg form matrixH
+     *  using either the class HessenbergDecomposition or another mean. 
+     *  It computes the upper quasi-triangular matrix T of the Schur decomposition of H
+     *  When computeU is true, this routine computes the matrix U such that 
+     *  A = U T U^T =  (QZ) T (QZ)^T = Q H Q^T where A is the initial matrix
+     * 
+     * NOTE Q is referenced if computeU is true; so, if the initial orthogonal matrix
+     * is not available, the user should give an identity matrix (Q.setIdentity())
+     * 
+     * \sa compute(const MatrixType&, bool)
+     */
+    template<typename HessMatrixType, typename OrthMatrixType>
+    ComplexSchur& computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ,  bool computeU=true);
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "ComplexSchur is not initialized.");
+      return m_info;
+    }
+
+    /** \brief Sets the maximum number of iterations allowed. 
+      *
+      * If not specified by the user, the maximum number of iterations is m_maxIterationsPerRow times the size
+      * of the matrix.
+      */
+    ComplexSchur& setMaxIterations(Index maxIters)
+    {
+      m_maxIters = maxIters;
+      return *this;
+    }
+
+    /** \brief Returns the maximum number of iterations. */
+    Index getMaxIterations()
+    {
+      return m_maxIters;
+    }
+
+    /** \brief Maximum number of iterations per row.
+      *
+      * If not otherwise specified, the maximum number of iterations is this number times the size of the
+      * matrix. It is currently set to 30.
+      */
+    static const int m_maxIterationsPerRow = 30;
+
+  protected:
+    ComplexMatrixType m_matT, m_matU;
+    HessenbergDecomposition<MatrixType> m_hess;
+    ComputationInfo m_info;
+    bool m_isInitialized;
+    bool m_matUisUptodate;
+    Index m_maxIters;
+
+  private:  
+    bool subdiagonalEntryIsNeglegible(Index i);
+    ComplexScalar computeShift(Index iu, Index iter);
+    void reduceToTriangularForm(bool computeU);
+    friend struct internal::complex_schur_reduce_to_hessenberg<MatrixType, NumTraits<Scalar>::IsComplex>;
+};
+
+/** If m_matT(i+1,i) is neglegible in floating point arithmetic
+  * compared to m_matT(i,i) and m_matT(j,j), then set it to zero and
+  * return true, else return false. */
+template<typename MatrixType>
+inline bool ComplexSchur<MatrixType>::subdiagonalEntryIsNeglegible(Index i)
+{
+  RealScalar d = numext::norm1(m_matT.coeff(i,i)) + numext::norm1(m_matT.coeff(i+1,i+1));
+  RealScalar sd = numext::norm1(m_matT.coeff(i+1,i));
+  if (internal::isMuchSmallerThan(sd, d, NumTraits<RealScalar>::epsilon()))
+  {
+    m_matT.coeffRef(i+1,i) = ComplexScalar(0);
+    return true;
+  }
+  return false;
+}
+
+
+/** Compute the shift in the current QR iteration. */
+template<typename MatrixType>
+typename ComplexSchur<MatrixType>::ComplexScalar ComplexSchur<MatrixType>::computeShift(Index iu, Index iter)
+{
+  using std::abs;
+  if (iter == 10 || iter == 20) 
+  {
+    // exceptional shift, taken from http://www.netlib.org/eispack/comqr.f
+    return abs(numext::real(m_matT.coeff(iu,iu-1))) + abs(numext::real(m_matT.coeff(iu-1,iu-2)));
+  }
+
+  // compute the shift as one of the eigenvalues of t, the 2x2
+  // diagonal block on the bottom of the active submatrix
+  Matrix<ComplexScalar,2,2> t = m_matT.template block<2,2>(iu-1,iu-1);
+  RealScalar normt = t.cwiseAbs().sum();
+  t /= normt;     // the normalization by sf is to avoid under/overflow
+
+  ComplexScalar b = t.coeff(0,1) * t.coeff(1,0);
+  ComplexScalar c = t.coeff(0,0) - t.coeff(1,1);
+  ComplexScalar disc = sqrt(c*c + RealScalar(4)*b);
+  ComplexScalar det = t.coeff(0,0) * t.coeff(1,1) - b;
+  ComplexScalar trace = t.coeff(0,0) + t.coeff(1,1);
+  ComplexScalar eival1 = (trace + disc) / RealScalar(2);
+  ComplexScalar eival2 = (trace - disc) / RealScalar(2);
+
+  if(numext::norm1(eival1) > numext::norm1(eival2))
+    eival2 = det / eival1;
+  else
+    eival1 = det / eival2;
+
+  // choose the eigenvalue closest to the bottom entry of the diagonal
+  if(numext::norm1(eival1-t.coeff(1,1)) < numext::norm1(eival2-t.coeff(1,1)))
+    return normt * eival1;
+  else
+    return normt * eival2;
+}
+
+
+template<typename MatrixType>
+ComplexSchur<MatrixType>& ComplexSchur<MatrixType>::compute(const MatrixType& matrix, bool computeU)
+{
+  m_matUisUptodate = false;
+  eigen_assert(matrix.cols() == matrix.rows());
+
+  if(matrix.cols() == 1)
+  {
+    m_matT = matrix.template cast<ComplexScalar>();
+    if(computeU)  m_matU = ComplexMatrixType::Identity(1,1);
+    m_info = Success;
+    m_isInitialized = true;
+    m_matUisUptodate = computeU;
+    return *this;
+  }
+
+  internal::complex_schur_reduce_to_hessenberg<MatrixType, NumTraits<Scalar>::IsComplex>::run(*this, matrix, computeU);
+  computeFromHessenberg(m_matT, m_matU, computeU);
+  return *this;
+}
+
+template<typename MatrixType>
+template<typename HessMatrixType, typename OrthMatrixType>
+ComplexSchur<MatrixType>& ComplexSchur<MatrixType>::computeFromHessenberg(const HessMatrixType& matrixH, const OrthMatrixType& matrixQ, bool computeU)
+{
+  m_matT = matrixH;
+  if(computeU)
+    m_matU = matrixQ;
+  reduceToTriangularForm(computeU);
+  return *this;
+}
+namespace internal {
+
+/* Reduce given matrix to Hessenberg form */
+template<typename MatrixType, bool IsComplex>
+struct complex_schur_reduce_to_hessenberg
+{
+  // this is the implementation for the case IsComplex = true
+  static void run(ComplexSchur<MatrixType>& _this, const MatrixType& matrix, bool computeU)
+  {
+    _this.m_hess.compute(matrix);
+    _this.m_matT = _this.m_hess.matrixH();
+    if(computeU)  _this.m_matU = _this.m_hess.matrixQ();
+  }
+};
+
+template<typename MatrixType>
+struct complex_schur_reduce_to_hessenberg<MatrixType, false>
+{
+  static void run(ComplexSchur<MatrixType>& _this, const MatrixType& matrix, bool computeU)
+  {
+    typedef typename ComplexSchur<MatrixType>::ComplexScalar ComplexScalar;
+
+    // Note: m_hess is over RealScalar; m_matT and m_matU is over ComplexScalar
+    _this.m_hess.compute(matrix);
+    _this.m_matT = _this.m_hess.matrixH().template cast<ComplexScalar>();
+    if(computeU)  
+    {
+      // This may cause an allocation which seems to be avoidable
+      MatrixType Q = _this.m_hess.matrixQ(); 
+      _this.m_matU = Q.template cast<ComplexScalar>();
+    }
+  }
+};
+
+} // end namespace internal
+
+// Reduce the Hessenberg matrix m_matT to triangular form by QR iteration.
+template<typename MatrixType>
+void ComplexSchur<MatrixType>::reduceToTriangularForm(bool computeU)
+{  
+  Index maxIters = m_maxIters;
+  if (maxIters == -1)
+    maxIters = m_maxIterationsPerRow * m_matT.rows();
+
+  // The matrix m_matT is divided in three parts. 
+  // Rows 0,...,il-1 are decoupled from the rest because m_matT(il,il-1) is zero. 
+  // Rows il,...,iu is the part we are working on (the active submatrix).
+  // Rows iu+1,...,end are already brought in triangular form.
+  Index iu = m_matT.cols() - 1;
+  Index il;
+  Index iter = 0; // number of iterations we are working on the (iu,iu) element
+  Index totalIter = 0; // number of iterations for whole matrix
+
+  while(true)
+  {
+    // find iu, the bottom row of the active submatrix
+    while(iu > 0)
+    {
+      if(!subdiagonalEntryIsNeglegible(iu-1)) break;
+      iter = 0;
+      --iu;
+    }
+
+    // if iu is zero then we are done; the whole matrix is triangularized
+    if(iu==0) break;
+
+    // if we spent too many iterations, we give up
+    iter++;
+    totalIter++;
+    if(totalIter > maxIters) break;
+
+    // find il, the top row of the active submatrix
+    il = iu-1;
+    while(il > 0 && !subdiagonalEntryIsNeglegible(il-1))
+    {
+      --il;
+    }
+
+    /* perform the QR step using Givens rotations. The first rotation
+       creates a bulge; the (il+2,il) element becomes nonzero. This
+       bulge is chased down to the bottom of the active submatrix. */
+
+    ComplexScalar shift = computeShift(iu, iter);
+    JacobiRotation<ComplexScalar> rot;
+    rot.makeGivens(m_matT.coeff(il,il) - shift, m_matT.coeff(il+1,il));
+    m_matT.rightCols(m_matT.cols()-il).applyOnTheLeft(il, il+1, rot.adjoint());
+    m_matT.topRows((std::min)(il+2,iu)+1).applyOnTheRight(il, il+1, rot);
+    if(computeU) m_matU.applyOnTheRight(il, il+1, rot);
+
+    for(Index i=il+1 ; i<iu ; i++)
+    {
+      rot.makeGivens(m_matT.coeffRef(i,i-1), m_matT.coeffRef(i+1,i-1), &m_matT.coeffRef(i,i-1));
+      m_matT.coeffRef(i+1,i-1) = ComplexScalar(0);
+      m_matT.rightCols(m_matT.cols()-i).applyOnTheLeft(i, i+1, rot.adjoint());
+      m_matT.topRows((std::min)(i+2,iu)+1).applyOnTheRight(i, i+1, rot);
+      if(computeU) m_matU.applyOnTheRight(i, i+1, rot);
+    }
+  }
+
+  if(totalIter <= maxIters)
+    m_info = Success;
+  else
+    m_info = NoConvergence;
+
+  m_isInitialized = true;
+  m_matUisUptodate = computeU;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_SCHUR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h	(revision 2476)
@@ -0,0 +1,370 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010,2012 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERALIZEDEIGENSOLVER_H
+#define EIGEN_GENERALIZEDEIGENSOLVER_H
+
+#include "./RealQZ.h"
+
+namespace Eigen { 
+
+/** \eigenvalues_module \ingroup Eigenvalues_Module
+  *
+  *
+  * \class GeneralizedEigenSolver
+  *
+  * \brief Computes the generalized eigenvalues and eigenvectors of a pair of general matrices
+  *
+  * \tparam _MatrixType the type of the matrices of which we are computing the
+  * eigen-decomposition; this is expected to be an instantiation of the Matrix
+  * class template. Currently, only real matrices are supported.
+  *
+  * The generalized eigenvalues and eigenvectors of a matrix pair \f$ A \f$ and \f$ B \f$ are scalars
+  * \f$ \lambda \f$ and vectors \f$ v \f$ such that \f$ Av = \lambda Bv \f$.  If
+  * \f$ D \f$ is a diagonal matrix with the eigenvalues on the diagonal, and
+  * \f$ V \f$ is a matrix with the eigenvectors as its columns, then \f$ A V =
+  * B V D \f$. The matrix \f$ V \f$ is almost always invertible, in which case we
+  * have \f$ A = B V D V^{-1} \f$. This is called the generalized eigen-decomposition.
+  *
+  * The generalized eigenvalues and eigenvectors of a matrix pair may be complex, even when the
+  * matrices are real. Moreover, the generalized eigenvalue might be infinite if the matrix B is
+  * singular. To workaround this difficulty, the eigenvalues are provided as a pair of complex \f$ \alpha \f$
+  * and real \f$ \beta \f$ such that: \f$ \lambda_i = \alpha_i / \beta_i \f$. If \f$ \beta_i \f$ is (nearly) zero,
+  * then one can consider the well defined left eigenvalue \f$ \mu = \beta_i / \alpha_i\f$ such that:
+  * \f$ \mu_i A v_i = B v_i \f$, or even \f$ \mu_i u_i^T A  = u_i^T B \f$ where \f$ u_i \f$ is
+  * called the left eigenvector.
+  *
+  * Call the function compute() to compute the generalized eigenvalues and eigenvectors of
+  * a given matrix pair. Alternatively, you can use the
+  * GeneralizedEigenSolver(const MatrixType&, const MatrixType&, bool) constructor which computes the
+  * eigenvalues and eigenvectors at construction time. Once the eigenvalue and
+  * eigenvectors are computed, they can be retrieved with the eigenvalues() and
+  * eigenvectors() functions.
+  *
+  * Here is an usage example of this class:
+  * Example: \include GeneralizedEigenSolver.cpp
+  * Output: \verbinclude GeneralizedEigenSolver.out
+  *
+  * \sa MatrixBase::eigenvalues(), class ComplexEigenSolver, class SelfAdjointEigenSolver
+  */
+template<typename _MatrixType> class GeneralizedEigenSolver
+{
+  public:
+
+    /** \brief Synonym for the template parameter \p _MatrixType. */
+    typedef _MatrixType MatrixType;
+
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+
+    /** \brief Scalar type for matrices of type #MatrixType. */
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    /** \brief Complex scalar type for #MatrixType. 
+      *
+      * This is \c std::complex<Scalar> if #Scalar is real (e.g.,
+      * \c float or \c double) and just \c Scalar if #Scalar is
+      * complex.
+      */
+    typedef std::complex<RealScalar> ComplexScalar;
+
+    /** \brief Type for vector of real scalar values eigenvalues as returned by betas().
+      *
+      * This is a column vector with entries of type #Scalar.
+      * The length of the vector is the size of #MatrixType.
+      */
+    typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> VectorType;
+
+    /** \brief Type for vector of complex scalar values eigenvalues as returned by betas().
+      *
+      * This is a column vector with entries of type #ComplexScalar.
+      * The length of the vector is the size of #MatrixType.
+      */
+    typedef Matrix<ComplexScalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ComplexVectorType;
+
+    /** \brief Expression type for the eigenvalues as returned by eigenvalues().
+      */
+    typedef CwiseBinaryOp<internal::scalar_quotient_op<ComplexScalar,Scalar>,ComplexVectorType,VectorType> EigenvalueType;
+
+    /** \brief Type for matrix of eigenvectors as returned by eigenvectors(). 
+      *
+      * This is a square matrix with entries of type #ComplexScalar. 
+      * The size is the same as the size of #MatrixType.
+      */
+    typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorsType;
+
+    /** \brief Default constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via EigenSolver::compute(const MatrixType&, bool).
+      *
+      * \sa compute() for an example.
+      */
+    GeneralizedEigenSolver() : m_eivec(), m_alphas(), m_betas(), m_isInitialized(false), m_realQZ(), m_matS(), m_tmp() {}
+
+    /** \brief Default constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa GeneralizedEigenSolver()
+      */
+    GeneralizedEigenSolver(Index size)
+      : m_eivec(size, size),
+        m_alphas(size),
+        m_betas(size),
+        m_isInitialized(false),
+        m_eigenvectorsOk(false),
+        m_realQZ(size),
+        m_matS(size, size),
+        m_tmp(size)
+    {}
+
+    /** \brief Constructor; computes the generalized eigendecomposition of given matrix pair.
+      * 
+      * \param[in]  A  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  B  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
+      *    eigenvalues are computed; if false, only the eigenvalues are computed.
+      *
+      * This constructor calls compute() to compute the generalized eigenvalues
+      * and eigenvectors.
+      *
+      * \sa compute()
+      */
+    GeneralizedEigenSolver(const MatrixType& A, const MatrixType& B, bool computeEigenvectors = true)
+      : m_eivec(A.rows(), A.cols()),
+        m_alphas(A.cols()),
+        m_betas(A.cols()),
+        m_isInitialized(false),
+        m_eigenvectorsOk(false),
+        m_realQZ(A.cols()),
+        m_matS(A.rows(), A.cols()),
+        m_tmp(A.cols())
+    {
+      compute(A, B, computeEigenvectors);
+    }
+
+    /* \brief Returns the computed generalized eigenvectors.
+      *
+      * \returns  %Matrix whose columns are the (possibly complex) eigenvectors.
+      *
+      * \pre Either the constructor 
+      * GeneralizedEigenSolver(const MatrixType&,const MatrixType&, bool) or the member function
+      * compute(const MatrixType&, const MatrixType& bool) has been called before, and
+      * \p computeEigenvectors was set to true (the default).
+      *
+      * Column \f$ k \f$ of the returned matrix is an eigenvector corresponding
+      * to eigenvalue number \f$ k \f$ as returned by eigenvalues().  The
+      * eigenvectors are normalized to have (Euclidean) norm equal to one. The
+      * matrix returned by this function is the matrix \f$ V \f$ in the
+      * generalized eigendecomposition \f$ A = B V D V^{-1} \f$, if it exists.
+      *
+      * \sa eigenvalues()
+      */
+//    EigenvectorsType eigenvectors() const;
+
+    /** \brief Returns an expression of the computed generalized eigenvalues.
+      *
+      * \returns An expression of the column vector containing the eigenvalues.
+      *
+      * It is a shortcut for \code this->alphas().cwiseQuotient(this->betas()); \endcode
+      * Not that betas might contain zeros. It is therefore not recommended to use this function,
+      * but rather directly deal with the alphas and betas vectors.
+      *
+      * \pre Either the constructor 
+      * GeneralizedEigenSolver(const MatrixType&,const MatrixType&,bool) or the member function
+      * compute(const MatrixType&,const MatrixType&,bool) has been called before.
+      *
+      * The eigenvalues are repeated according to their algebraic multiplicity,
+      * so there are as many eigenvalues as rows in the matrix. The eigenvalues 
+      * are not sorted in any particular order.
+      *
+      * \sa alphas(), betas(), eigenvectors()
+      */
+    EigenvalueType eigenvalues() const
+    {
+      eigen_assert(m_isInitialized && "GeneralizedEigenSolver is not initialized.");
+      return EigenvalueType(m_alphas,m_betas);
+    }
+
+    /** \returns A const reference to the vectors containing the alpha values
+      *
+      * This vector permits to reconstruct the j-th eigenvalues as alphas(i)/betas(j).
+      *
+      * \sa betas(), eigenvalues() */
+    ComplexVectorType alphas() const
+    {
+      eigen_assert(m_isInitialized && "GeneralizedEigenSolver is not initialized.");
+      return m_alphas;
+    }
+
+    /** \returns A const reference to the vectors containing the beta values
+      *
+      * This vector permits to reconstruct the j-th eigenvalues as alphas(i)/betas(j).
+      *
+      * \sa alphas(), eigenvalues() */
+    VectorType betas() const
+    {
+      eigen_assert(m_isInitialized && "GeneralizedEigenSolver is not initialized.");
+      return m_betas;
+    }
+
+    /** \brief Computes generalized eigendecomposition of given matrix.
+      * 
+      * \param[in]  A  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  B  Square matrix whose eigendecomposition is to be computed.
+      * \param[in]  computeEigenvectors  If true, both the eigenvectors and the
+      *    eigenvalues are computed; if false, only the eigenvalues are
+      *    computed. 
+      * \returns    Reference to \c *this
+      *
+      * This function computes the eigenvalues of the real matrix \p matrix.
+      * The eigenvalues() function can be used to retrieve them.  If 
+      * \p computeEigenvectors is true, then the eigenvectors are also computed
+      * and can be retrieved by calling eigenvectors().
+      *
+      * The matrix is first reduced to real generalized Schur form using the RealQZ
+      * class. The generalized Schur decomposition is then used to compute the eigenvalues
+      * and eigenvectors.
+      *
+      * The cost of the computation is dominated by the cost of the
+      * generalized Schur decomposition.
+      *
+      * This method reuses of the allocated data in the GeneralizedEigenSolver object.
+      */
+    GeneralizedEigenSolver& compute(const MatrixType& A, const MatrixType& B, bool computeEigenvectors = true);
+
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+      return m_realQZ.info();
+    }
+
+    /** Sets the maximal number of iterations allowed.
+    */
+    GeneralizedEigenSolver& setMaxIterations(Index maxIters)
+    {
+      m_realQZ.setMaxIterations(maxIters);
+      return *this;
+    }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+      EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL);
+    }
+    
+    MatrixType m_eivec;
+    ComplexVectorType m_alphas;
+    VectorType m_betas;
+    bool m_isInitialized;
+    bool m_eigenvectorsOk;
+    RealQZ<MatrixType> m_realQZ;
+    MatrixType m_matS;
+
+    typedef Matrix<Scalar, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> ColumnVectorType;
+    ColumnVectorType m_tmp;
+};
+
+//template<typename MatrixType>
+//typename GeneralizedEigenSolver<MatrixType>::EigenvectorsType GeneralizedEigenSolver<MatrixType>::eigenvectors() const
+//{
+//  eigen_assert(m_isInitialized && "EigenSolver is not initialized.");
+//  eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+//  Index n = m_eivec.cols();
+//  EigenvectorsType matV(n,n);
+//  // TODO
+//  return matV;
+//}
+
+template<typename MatrixType>
+GeneralizedEigenSolver<MatrixType>&
+GeneralizedEigenSolver<MatrixType>::compute(const MatrixType& A, const MatrixType& B, bool computeEigenvectors)
+{
+  check_template_parameters();
+  
+  using std::sqrt;
+  using std::abs;
+  eigen_assert(A.cols() == A.rows() && B.cols() == A.rows() && B.cols() == B.rows());
+
+  // Reduce to generalized real Schur form:
+  // A = Q S Z and B = Q T Z
+  m_realQZ.compute(A, B, computeEigenvectors);
+
+  if (m_realQZ.info() == Success)
+  {
+    m_matS = m_realQZ.matrixS();
+    if (computeEigenvectors)
+      m_eivec = m_realQZ.matrixZ().transpose();
+  
+    // Compute eigenvalues from matS
+    m_alphas.resize(A.cols());
+    m_betas.resize(A.cols());
+    Index i = 0;
+    while (i < A.cols())
+    {
+      if (i == A.cols() - 1 || m_matS.coeff(i+1, i) == Scalar(0))
+      {
+        m_alphas.coeffRef(i) = m_matS.coeff(i, i);
+        m_betas.coeffRef(i)  = m_realQZ.matrixT().coeff(i,i);
+        ++i;
+      }
+      else
+      {
+        // We need to extract the generalized eigenvalues of the pair of a general 2x2 block S and a triangular 2x2 block T
+        // From the eigen decomposition of T = U * E * U^-1,
+        // we can extract the eigenvalues of (U^-1 * S * U) / E
+        // Here, we can take advantage that E = diag(T), and U = [ 1 T_01 ; 0 T_11-T_00], and U^-1 = [1 -T_11/(T_11-T_00) ; 0 1/(T_11-T_00)].
+        // Then taking beta=T_00*T_11*(T_11-T_00), we can avoid any division, and alpha is the eigenvalues of A = (U^-1 * S * U) * diag(T_11,T_00) * (T_11-T_00):
+
+        // T =  [a b ; 0 c]
+        // S =  [e f ; g h]
+        RealScalar a = m_realQZ.matrixT().coeff(i, i), b = m_realQZ.matrixT().coeff(i, i+1), c = m_realQZ.matrixT().coeff(i+1, i+1);
+        RealScalar e = m_matS.coeff(i, i), f = m_matS.coeff(i, i+1), g = m_matS.coeff(i+1, i), h = m_matS.coeff(i+1, i+1);
+        RealScalar d = c-a;
+        RealScalar gb = g*b;
+        Matrix<RealScalar,2,2> A;
+        A <<  (e*d-gb)*c,  ((e*b+f*d-h*b)*d-gb*b)*a,
+              g*c       ,  (gb+h*d)*a;
+
+        // NOTE, we could also compute the SVD of T's block during the QZ factorization so that the respective T block is guaranteed to be diagonal,
+        // and then we could directly apply the formula below (while taking care of scaling S columns by T11,T00):
+
+        Scalar p = Scalar(0.5) * (A.coeff(i, i) - A.coeff(i+1, i+1));
+        Scalar z = sqrt(abs(p * p + A.coeff(i+1, i) * A.coeff(i, i+1)));
+        m_alphas.coeffRef(i)   = ComplexScalar(A.coeff(i+1, i+1) + p, z);
+        m_alphas.coeffRef(i+1) = ComplexScalar(A.coeff(i+1, i+1) + p, -z);
+
+        m_betas.coeffRef(i)   =
+        m_betas.coeffRef(i+1) = a*c*d;
+
+        i += 2;
+      }
+    }
+  }
+
+  m_isInitialized = true;
+  m_eigenvectorsOk = false;//computeEigenvectors;
+
+  return *this;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERALIZEDEIGENSOLVER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/MetisSupport/MetisSupport.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/MetisSupport/MetisSupport.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/MetisSupport/MetisSupport.h	(revision 2476)
@@ -0,0 +1,137 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef METIS_SUPPORT_H
+#define METIS_SUPPORT_H
+
+namespace Eigen {
+/**
+ * Get the fill-reducing ordering from the METIS package
+ * 
+ * If A is the original matrix and Ap is the permuted matrix, 
+ * the fill-reducing permutation is defined as follows :
+ * Row (column) i of A is the matperm(i) row (column) of Ap. 
+ * WARNING: As computed by METIS, this corresponds to the vector iperm (instead of perm)
+ */
+template <typename Index>
+class MetisOrdering
+{
+public:
+  typedef PermutationMatrix<Dynamic,Dynamic,Index> PermutationType;
+  typedef Matrix<Index,Dynamic,1> IndexVector; 
+  
+  template <typename MatrixType>
+  void get_symmetrized_graph(const MatrixType& A)
+  {
+    Index m = A.cols(); 
+    eigen_assert((A.rows() == A.cols()) && "ONLY FOR SQUARED MATRICES");
+    // Get the transpose of the input matrix 
+    MatrixType At = A.transpose(); 
+    // Get the number of nonzeros elements in each row/col of At+A
+    Index TotNz = 0; 
+    IndexVector visited(m); 
+    visited.setConstant(-1); 
+    for (int j = 0; j < m; j++)
+    {
+      // Compute the union structure of of A(j,:) and At(j,:)
+      visited(j) = j; // Do not include the diagonal element
+      // Get the nonzeros in row/column j of A
+      for (typename MatrixType::InnerIterator it(A, j); it; ++it)
+      {
+        Index idx = it.index(); // Get the row index (for column major) or column index (for row major)
+        if (visited(idx) != j ) 
+        {
+          visited(idx) = j; 
+          ++TotNz; 
+        }
+      }
+      //Get the nonzeros in row/column j of At
+      for (typename MatrixType::InnerIterator it(At, j); it; ++it)
+      {
+        Index idx = it.index(); 
+        if(visited(idx) != j)
+        {
+          visited(idx) = j; 
+          ++TotNz; 
+        }
+      }
+    }
+    // Reserve place for A + At
+    m_indexPtr.resize(m+1);
+    m_innerIndices.resize(TotNz); 
+
+    // Now compute the real adjacency list of each column/row 
+    visited.setConstant(-1); 
+    Index CurNz = 0; 
+    for (int j = 0; j < m; j++)
+    {
+      m_indexPtr(j) = CurNz; 
+      
+      visited(j) = j; // Do not include the diagonal element
+      // Add the pattern of row/column j of A to A+At
+      for (typename MatrixType::InnerIterator it(A,j); it; ++it)
+      {
+        Index idx = it.index(); // Get the row index (for column major) or column index (for row major)
+        if (visited(idx) != j ) 
+        {
+          visited(idx) = j; 
+          m_innerIndices(CurNz) = idx; 
+          CurNz++; 
+        }
+      }
+      //Add the pattern of row/column j of At to A+At
+      for (typename MatrixType::InnerIterator it(At, j); it; ++it)
+      {
+        Index idx = it.index(); 
+        if(visited(idx) != j)
+        {
+          visited(idx) = j; 
+          m_innerIndices(CurNz) = idx; 
+          ++CurNz; 
+        }
+      }
+    }
+    m_indexPtr(m) = CurNz;    
+  }
+  
+  template <typename MatrixType>
+  void operator() (const MatrixType& A, PermutationType& matperm)
+  {
+     Index m = A.cols();
+     IndexVector perm(m),iperm(m); 
+    // First, symmetrize the matrix graph. 
+     get_symmetrized_graph(A); 
+     int output_error;
+     
+     // Call the fill-reducing routine from METIS 
+     output_error = METIS_NodeND(&m, m_indexPtr.data(), m_innerIndices.data(), NULL, NULL, perm.data(), iperm.data());
+     
+    if(output_error != METIS_OK) 
+    {
+      //FIXME The ordering interface should define a class of possible errors 
+     std::cerr << "ERROR WHILE CALLING THE METIS PACKAGE \n"; 
+     return; 
+    }
+    
+    // Get the fill-reducing permutation 
+    //NOTE:  If Ap is the permuted matrix then perm and iperm vectors are defined as follows 
+    // Row (column) i of Ap is the perm(i) row(column) of A, and row (column) i of A is the iperm(i) row(column) of Ap
+    
+     matperm.resize(m);
+     for (int j = 0; j < m; j++)
+       matperm.indices()(iperm(j)) = j;
+   
+  }
+  
+  protected:
+    IndexVector m_indexPtr; // Pointer to the adjacenccy list of each row/column
+    IndexVector m_innerIndices; // Adjacency list 
+};
+
+}// end namespace eigen 
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/Determinant.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/Determinant.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/Determinant.h	(revision 2476)
@@ -0,0 +1,101 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DETERMINANT_H
+#define EIGEN_DETERMINANT_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Derived>
+inline const typename Derived::Scalar bruteforce_det3_helper
+(const MatrixBase<Derived>& matrix, int a, int b, int c)
+{
+  return matrix.coeff(0,a)
+         * (matrix.coeff(1,b) * matrix.coeff(2,c) - matrix.coeff(1,c) * matrix.coeff(2,b));
+}
+
+template<typename Derived>
+const typename Derived::Scalar bruteforce_det4_helper
+(const MatrixBase<Derived>& matrix, int j, int k, int m, int n)
+{
+  return (matrix.coeff(j,0) * matrix.coeff(k,1) - matrix.coeff(k,0) * matrix.coeff(j,1))
+       * (matrix.coeff(m,2) * matrix.coeff(n,3) - matrix.coeff(n,2) * matrix.coeff(m,3));
+}
+
+template<typename Derived,
+         int DeterminantType = Derived::RowsAtCompileTime
+> struct determinant_impl
+{
+  static inline typename traits<Derived>::Scalar run(const Derived& m)
+  {
+    if(Derived::ColsAtCompileTime==Dynamic && m.rows()==0)
+      return typename traits<Derived>::Scalar(1);
+    return m.partialPivLu().determinant();
+  }
+};
+
+template<typename Derived> struct determinant_impl<Derived, 1>
+{
+  static inline typename traits<Derived>::Scalar run(const Derived& m)
+  {
+    return m.coeff(0,0);
+  }
+};
+
+template<typename Derived> struct determinant_impl<Derived, 2>
+{
+  static inline typename traits<Derived>::Scalar run(const Derived& m)
+  {
+    return m.coeff(0,0) * m.coeff(1,1) - m.coeff(1,0) * m.coeff(0,1);
+  }
+};
+
+template<typename Derived> struct determinant_impl<Derived, 3>
+{
+  static inline typename traits<Derived>::Scalar run(const Derived& m)
+  {
+    return bruteforce_det3_helper(m,0,1,2)
+          - bruteforce_det3_helper(m,1,0,2)
+          + bruteforce_det3_helper(m,2,0,1);
+  }
+};
+
+template<typename Derived> struct determinant_impl<Derived, 4>
+{
+  static typename traits<Derived>::Scalar run(const Derived& m)
+  {
+    // trick by Martin Costabel to compute 4x4 det with only 30 muls
+    return bruteforce_det4_helper(m,0,1,2,3)
+          - bruteforce_det4_helper(m,0,2,1,3)
+          + bruteforce_det4_helper(m,0,3,1,2)
+          + bruteforce_det4_helper(m,1,2,0,3)
+          - bruteforce_det4_helper(m,1,3,0,2)
+          + bruteforce_det4_helper(m,2,3,0,1);
+  }
+};
+
+} // end namespace internal
+
+/** \lu_module
+  *
+  * \returns the determinant of this matrix
+  */
+template<typename Derived>
+inline typename internal::traits<Derived>::Scalar MatrixBase<Derived>::determinant() const
+{
+  eigen_assert(rows() == cols());
+  typedef typename internal::nested<Derived,Base::RowsAtCompileTime>::type Nested;
+  return internal::determinant_impl<typename internal::remove_all<Nested>::type>::run(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_DETERMINANT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/Inverse.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/Inverse.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/Inverse.h	(revision 2476)
@@ -0,0 +1,400 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_INVERSE_H
+#define EIGEN_INVERSE_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/**********************************
+*** General case implementation ***
+**********************************/
+
+template<typename MatrixType, typename ResultType, int Size = MatrixType::RowsAtCompileTime>
+struct compute_inverse
+{
+  static inline void run(const MatrixType& matrix, ResultType& result)
+  {
+    result = matrix.partialPivLu().inverse();
+  }
+};
+
+template<typename MatrixType, typename ResultType, int Size = MatrixType::RowsAtCompileTime>
+struct compute_inverse_and_det_with_check { /* nothing! general case not supported. */ };
+
+/****************************
+*** Size 1 implementation ***
+****************************/
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse<MatrixType, ResultType, 1>
+{
+  static inline void run(const MatrixType& matrix, ResultType& result)
+  {
+    typedef typename MatrixType::Scalar Scalar;
+    result.coeffRef(0,0) = Scalar(1) / matrix.coeff(0,0);
+  }
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_and_det_with_check<MatrixType, ResultType, 1>
+{
+  static inline void run(
+    const MatrixType& matrix,
+    const typename MatrixType::RealScalar& absDeterminantThreshold,
+    ResultType& result,
+    typename ResultType::Scalar& determinant,
+    bool& invertible
+  )
+  {
+    using std::abs;
+    determinant = matrix.coeff(0,0);
+    invertible = abs(determinant) > absDeterminantThreshold;
+    if(invertible) result.coeffRef(0,0) = typename ResultType::Scalar(1) / determinant;
+  }
+};
+
+/****************************
+*** Size 2 implementation ***
+****************************/
+
+template<typename MatrixType, typename ResultType>
+inline void compute_inverse_size2_helper(
+    const MatrixType& matrix, const typename ResultType::Scalar& invdet,
+    ResultType& result)
+{
+  result.coeffRef(0,0) = matrix.coeff(1,1) * invdet;
+  result.coeffRef(1,0) = -matrix.coeff(1,0) * invdet;
+  result.coeffRef(0,1) = -matrix.coeff(0,1) * invdet;
+  result.coeffRef(1,1) = matrix.coeff(0,0) * invdet;
+}
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse<MatrixType, ResultType, 2>
+{
+  static inline void run(const MatrixType& matrix, ResultType& result)
+  {
+    typedef typename ResultType::Scalar Scalar;
+    const Scalar invdet = typename MatrixType::Scalar(1) / matrix.determinant();
+    compute_inverse_size2_helper(matrix, invdet, result);
+  }
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_and_det_with_check<MatrixType, ResultType, 2>
+{
+  static inline void run(
+    const MatrixType& matrix,
+    const typename MatrixType::RealScalar& absDeterminantThreshold,
+    ResultType& inverse,
+    typename ResultType::Scalar& determinant,
+    bool& invertible
+  )
+  {
+    using std::abs;
+    typedef typename ResultType::Scalar Scalar;
+    determinant = matrix.determinant();
+    invertible = abs(determinant) > absDeterminantThreshold;
+    if(!invertible) return;
+    const Scalar invdet = Scalar(1) / determinant;
+    compute_inverse_size2_helper(matrix, invdet, inverse);
+  }
+};
+
+/****************************
+*** Size 3 implementation ***
+****************************/
+
+template<typename MatrixType, int i, int j>
+inline typename MatrixType::Scalar cofactor_3x3(const MatrixType& m)
+{
+  enum {
+    i1 = (i+1) % 3,
+    i2 = (i+2) % 3,
+    j1 = (j+1) % 3,
+    j2 = (j+2) % 3
+  };
+  return m.coeff(i1, j1) * m.coeff(i2, j2)
+       - m.coeff(i1, j2) * m.coeff(i2, j1);
+}
+
+template<typename MatrixType, typename ResultType>
+inline void compute_inverse_size3_helper(
+    const MatrixType& matrix,
+    const typename ResultType::Scalar& invdet,
+    const Matrix<typename ResultType::Scalar,3,1>& cofactors_col0,
+    ResultType& result)
+{
+  result.row(0) = cofactors_col0 * invdet;
+  result.coeffRef(1,0) =  cofactor_3x3<MatrixType,0,1>(matrix) * invdet;
+  result.coeffRef(1,1) =  cofactor_3x3<MatrixType,1,1>(matrix) * invdet;
+  result.coeffRef(1,2) =  cofactor_3x3<MatrixType,2,1>(matrix) * invdet;
+  result.coeffRef(2,0) =  cofactor_3x3<MatrixType,0,2>(matrix) * invdet;
+  result.coeffRef(2,1) =  cofactor_3x3<MatrixType,1,2>(matrix) * invdet;
+  result.coeffRef(2,2) =  cofactor_3x3<MatrixType,2,2>(matrix) * invdet;
+}
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse<MatrixType, ResultType, 3>
+{
+  static inline void run(const MatrixType& matrix, ResultType& result)
+  {
+    typedef typename ResultType::Scalar Scalar;
+    Matrix<typename MatrixType::Scalar,3,1> cofactors_col0;
+    cofactors_col0.coeffRef(0) =  cofactor_3x3<MatrixType,0,0>(matrix);
+    cofactors_col0.coeffRef(1) =  cofactor_3x3<MatrixType,1,0>(matrix);
+    cofactors_col0.coeffRef(2) =  cofactor_3x3<MatrixType,2,0>(matrix);
+    const Scalar det = (cofactors_col0.cwiseProduct(matrix.col(0))).sum();
+    const Scalar invdet = Scalar(1) / det;
+    compute_inverse_size3_helper(matrix, invdet, cofactors_col0, result);
+  }
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_and_det_with_check<MatrixType, ResultType, 3>
+{
+  static inline void run(
+    const MatrixType& matrix,
+    const typename MatrixType::RealScalar& absDeterminantThreshold,
+    ResultType& inverse,
+    typename ResultType::Scalar& determinant,
+    bool& invertible
+  )
+  {
+    using std::abs;
+    typedef typename ResultType::Scalar Scalar;
+    Matrix<Scalar,3,1> cofactors_col0;
+    cofactors_col0.coeffRef(0) =  cofactor_3x3<MatrixType,0,0>(matrix);
+    cofactors_col0.coeffRef(1) =  cofactor_3x3<MatrixType,1,0>(matrix);
+    cofactors_col0.coeffRef(2) =  cofactor_3x3<MatrixType,2,0>(matrix);
+    determinant = (cofactors_col0.cwiseProduct(matrix.col(0))).sum();
+    invertible = abs(determinant) > absDeterminantThreshold;
+    if(!invertible) return;
+    const Scalar invdet = Scalar(1) / determinant;
+    compute_inverse_size3_helper(matrix, invdet, cofactors_col0, inverse);
+  }
+};
+
+/****************************
+*** Size 4 implementation ***
+****************************/
+
+template<typename Derived>
+inline const typename Derived::Scalar general_det3_helper
+(const MatrixBase<Derived>& matrix, int i1, int i2, int i3, int j1, int j2, int j3)
+{
+  return matrix.coeff(i1,j1)
+         * (matrix.coeff(i2,j2) * matrix.coeff(i3,j3) - matrix.coeff(i2,j3) * matrix.coeff(i3,j2));
+}
+
+template<typename MatrixType, int i, int j>
+inline typename MatrixType::Scalar cofactor_4x4(const MatrixType& matrix)
+{
+  enum {
+    i1 = (i+1) % 4,
+    i2 = (i+2) % 4,
+    i3 = (i+3) % 4,
+    j1 = (j+1) % 4,
+    j2 = (j+2) % 4,
+    j3 = (j+3) % 4
+  };
+  return general_det3_helper(matrix, i1, i2, i3, j1, j2, j3)
+       + general_det3_helper(matrix, i2, i3, i1, j1, j2, j3)
+       + general_det3_helper(matrix, i3, i1, i2, j1, j2, j3);
+}
+
+template<int Arch, typename Scalar, typename MatrixType, typename ResultType>
+struct compute_inverse_size4
+{
+  static void run(const MatrixType& matrix, ResultType& result)
+  {
+    result.coeffRef(0,0) =  cofactor_4x4<MatrixType,0,0>(matrix);
+    result.coeffRef(1,0) = -cofactor_4x4<MatrixType,0,1>(matrix);
+    result.coeffRef(2,0) =  cofactor_4x4<MatrixType,0,2>(matrix);
+    result.coeffRef(3,0) = -cofactor_4x4<MatrixType,0,3>(matrix);
+    result.coeffRef(0,2) =  cofactor_4x4<MatrixType,2,0>(matrix);
+    result.coeffRef(1,2) = -cofactor_4x4<MatrixType,2,1>(matrix);
+    result.coeffRef(2,2) =  cofactor_4x4<MatrixType,2,2>(matrix);
+    result.coeffRef(3,2) = -cofactor_4x4<MatrixType,2,3>(matrix);
+    result.coeffRef(0,1) = -cofactor_4x4<MatrixType,1,0>(matrix);
+    result.coeffRef(1,1) =  cofactor_4x4<MatrixType,1,1>(matrix);
+    result.coeffRef(2,1) = -cofactor_4x4<MatrixType,1,2>(matrix);
+    result.coeffRef(3,1) =  cofactor_4x4<MatrixType,1,3>(matrix);
+    result.coeffRef(0,3) = -cofactor_4x4<MatrixType,3,0>(matrix);
+    result.coeffRef(1,3) =  cofactor_4x4<MatrixType,3,1>(matrix);
+    result.coeffRef(2,3) = -cofactor_4x4<MatrixType,3,2>(matrix);
+    result.coeffRef(3,3) =  cofactor_4x4<MatrixType,3,3>(matrix);
+    result /= (matrix.col(0).cwiseProduct(result.row(0).transpose())).sum();
+  }
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse<MatrixType, ResultType, 4>
+ : compute_inverse_size4<Architecture::Target, typename MatrixType::Scalar,
+                            MatrixType, ResultType>
+{
+};
+
+template<typename MatrixType, typename ResultType>
+struct compute_inverse_and_det_with_check<MatrixType, ResultType, 4>
+{
+  static inline void run(
+    const MatrixType& matrix,
+    const typename MatrixType::RealScalar& absDeterminantThreshold,
+    ResultType& inverse,
+    typename ResultType::Scalar& determinant,
+    bool& invertible
+  )
+  {
+    using std::abs;
+    determinant = matrix.determinant();
+    invertible = abs(determinant) > absDeterminantThreshold;
+    if(invertible) compute_inverse<MatrixType, ResultType>::run(matrix, inverse);
+  }
+};
+
+/*************************
+*** MatrixBase methods ***
+*************************/
+
+template<typename MatrixType>
+struct traits<inverse_impl<MatrixType> >
+{
+  typedef typename MatrixType::PlainObject ReturnType;
+};
+
+template<typename MatrixType>
+struct inverse_impl : public ReturnByValue<inverse_impl<MatrixType> >
+{
+  typedef typename MatrixType::Index Index;
+  typedef typename internal::eval<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
+  MatrixTypeNested m_matrix;
+
+  inverse_impl(const MatrixType& matrix)
+    : m_matrix(matrix)
+  {}
+
+  inline Index rows() const { return m_matrix.rows(); }
+  inline Index cols() const { return m_matrix.cols(); }
+
+  template<typename Dest> inline void evalTo(Dest& dst) const
+  {
+    const int Size = EIGEN_PLAIN_ENUM_MIN(MatrixType::ColsAtCompileTime,Dest::ColsAtCompileTime);
+    EIGEN_ONLY_USED_FOR_DEBUG(Size);
+    eigen_assert(( (Size<=1) || (Size>4) || (extract_data(m_matrix)!=0 && extract_data(m_matrix)!=extract_data(dst)))
+              && "Aliasing problem detected in inverse(), you need to do inverse().eval() here.");
+
+    compute_inverse<MatrixTypeNestedCleaned, Dest>::run(m_matrix, dst);
+  }
+};
+
+} // end namespace internal
+
+/** \lu_module
+  *
+  * \returns the matrix inverse of this matrix.
+  *
+  * For small fixed sizes up to 4x4, this method uses cofactors.
+  * In the general case, this method uses class PartialPivLU.
+  *
+  * \note This matrix must be invertible, otherwise the result is undefined. If you need an
+  * invertibility check, do the following:
+  * \li for fixed sizes up to 4x4, use computeInverseAndDetWithCheck().
+  * \li for the general case, use class FullPivLU.
+  *
+  * Example: \include MatrixBase_inverse.cpp
+  * Output: \verbinclude MatrixBase_inverse.out
+  *
+  * \sa computeInverseAndDetWithCheck()
+  */
+template<typename Derived>
+inline const internal::inverse_impl<Derived> MatrixBase<Derived>::inverse() const
+{
+  EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsInteger,THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES)
+  eigen_assert(rows() == cols());
+  return internal::inverse_impl<Derived>(derived());
+}
+
+/** \lu_module
+  *
+  * Computation of matrix inverse and determinant, with invertibility check.
+  *
+  * This is only for fixed-size square matrices of size up to 4x4.
+  *
+  * \param inverse Reference to the matrix in which to store the inverse.
+  * \param determinant Reference to the variable in which to store the determinant.
+  * \param invertible Reference to the bool variable in which to store whether the matrix is invertible.
+  * \param absDeterminantThreshold Optional parameter controlling the invertibility check.
+  *                                The matrix will be declared invertible if the absolute value of its
+  *                                determinant is greater than this threshold.
+  *
+  * Example: \include MatrixBase_computeInverseAndDetWithCheck.cpp
+  * Output: \verbinclude MatrixBase_computeInverseAndDetWithCheck.out
+  *
+  * \sa inverse(), computeInverseWithCheck()
+  */
+template<typename Derived>
+template<typename ResultType>
+inline void MatrixBase<Derived>::computeInverseAndDetWithCheck(
+    ResultType& inverse,
+    typename ResultType::Scalar& determinant,
+    bool& invertible,
+    const RealScalar& absDeterminantThreshold
+  ) const
+{
+  // i'd love to put some static assertions there, but SFINAE means that they have no effect...
+  eigen_assert(rows() == cols());
+  // for 2x2, it's worth giving a chance to avoid evaluating.
+  // for larger sizes, evaluating has negligible cost and limits code size.
+  typedef typename internal::conditional<
+    RowsAtCompileTime == 2,
+    typename internal::remove_all<typename internal::nested<Derived, 2>::type>::type,
+    PlainObject
+  >::type MatrixType;
+  internal::compute_inverse_and_det_with_check<MatrixType, ResultType>::run
+    (derived(), absDeterminantThreshold, inverse, determinant, invertible);
+}
+
+/** \lu_module
+  *
+  * Computation of matrix inverse, with invertibility check.
+  *
+  * This is only for fixed-size square matrices of size up to 4x4.
+  *
+  * \param inverse Reference to the matrix in which to store the inverse.
+  * \param invertible Reference to the bool variable in which to store whether the matrix is invertible.
+  * \param absDeterminantThreshold Optional parameter controlling the invertibility check.
+  *                                The matrix will be declared invertible if the absolute value of its
+  *                                determinant is greater than this threshold.
+  *
+  * Example: \include MatrixBase_computeInverseWithCheck.cpp
+  * Output: \verbinclude MatrixBase_computeInverseWithCheck.out
+  *
+  * \sa inverse(), computeInverseAndDetWithCheck()
+  */
+template<typename Derived>
+template<typename ResultType>
+inline void MatrixBase<Derived>::computeInverseWithCheck(
+    ResultType& inverse,
+    bool& invertible,
+    const RealScalar& absDeterminantThreshold
+  ) const
+{
+  RealScalar determinant;
+  // i'd love to put some static assertions there, but SFINAE means that they have no effect...
+  eigen_assert(rows() == cols());
+  computeInverseAndDetWithCheck(inverse,determinant,invertible,absDeterminantThreshold);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_INVERSE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/PartialPivLU.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/PartialPivLU.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/PartialPivLU.h	(revision 2476)
@@ -0,0 +1,509 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARTIALLU_H
+#define EIGEN_PARTIALLU_H
+
+namespace Eigen { 
+
+/** \ingroup LU_Module
+  *
+  * \class PartialPivLU
+  *
+  * \brief LU decomposition of a matrix with partial pivoting, and related features
+  *
+  * \param MatrixType the type of the matrix of which we are computing the LU decomposition
+  *
+  * This class represents a LU decomposition of a \b square \b invertible matrix, with partial pivoting: the matrix A
+  * is decomposed as A = PLU where L is unit-lower-triangular, U is upper-triangular, and P
+  * is a permutation matrix.
+  *
+  * Typically, partial pivoting LU decomposition is only considered numerically stable for square invertible
+  * matrices. Thus LAPACK's dgesv and dgesvx require the matrix to be square and invertible. The present class
+  * does the same. It will assert that the matrix is square, but it won't (actually it can't) check that the
+  * matrix is invertible: it is your task to check that you only use this decomposition on invertible matrices.
+  *
+  * The guaranteed safe alternative, working for all matrices, is the full pivoting LU decomposition, provided
+  * by class FullPivLU.
+  *
+  * This is \b not a rank-revealing LU decomposition. Many features are intentionally absent from this class,
+  * such as rank computation. If you need these features, use class FullPivLU.
+  *
+  * This LU decomposition is suitable to invert invertible matrices. It is what MatrixBase::inverse() uses
+  * in the general case.
+  * On the other hand, it is \b not suitable to determine whether a given matrix is invertible.
+  *
+  * The data of the LU decomposition can be directly accessed through the methods matrixLU(), permutationP().
+  *
+  * \sa MatrixBase::partialPivLu(), MatrixBase::determinant(), MatrixBase::inverse(), MatrixBase::computeInverse(), class FullPivLU
+  */
+template<typename _MatrixType> class PartialPivLU
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+    typedef typename internal::traits<MatrixType>::StorageKind StorageKind;
+    typedef typename MatrixType::Index Index;
+    typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationType;
+    typedef Transpositions<RowsAtCompileTime, MaxRowsAtCompileTime> TranspositionType;
+
+
+    /**
+    * \brief Default Constructor.
+    *
+    * The default constructor is useful in cases in which the user intends to
+    * perform decompositions via PartialPivLU::compute(const MatrixType&).
+    */
+    PartialPivLU();
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa PartialPivLU()
+      */
+    PartialPivLU(Index size);
+
+    /** Constructor.
+      *
+      * \param matrix the matrix of which to compute the LU decomposition.
+      *
+      * \warning The matrix should have full rank (e.g. if it's square, it should be invertible).
+      * If you need to deal with non-full rank, use class FullPivLU instead.
+      */
+    PartialPivLU(const MatrixType& matrix);
+
+    PartialPivLU& compute(const MatrixType& matrix);
+
+    /** \returns the LU decomposition matrix: the upper-triangular part is U, the
+      * unit-lower-triangular part is L (at least for square matrices; in the non-square
+      * case, special care is needed, see the documentation of class FullPivLU).
+      *
+      * \sa matrixL(), matrixU()
+      */
+    inline const MatrixType& matrixLU() const
+    {
+      eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+      return m_lu;
+    }
+
+    /** \returns the permutation matrix P.
+      */
+    inline const PermutationType& permutationP() const
+    {
+      eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+      return m_p;
+    }
+
+    /** This method returns the solution x to the equation Ax=b, where A is the matrix of which
+      * *this is the LU decomposition.
+      *
+      * \param b the right-hand-side of the equation to solve. Can be a vector or a matrix,
+      *          the only requirement in order for the equation to make sense is that
+      *          b.rows()==A.rows(), where A is the matrix of which *this is the LU decomposition.
+      *
+      * \returns the solution.
+      *
+      * Example: \include PartialPivLU_solve.cpp
+      * Output: \verbinclude PartialPivLU_solve.out
+      *
+      * Since this PartialPivLU class assumes anyway that the matrix A is invertible, the solution
+      * theoretically exists and is unique regardless of b.
+      *
+      * \sa TriangularView::solve(), inverse(), computeInverse()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<PartialPivLU, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+      return internal::solve_retval<PartialPivLU, Rhs>(*this, b.derived());
+    }
+
+    /** \returns the inverse of the matrix of which *this is the LU decomposition.
+      *
+      * \warning The matrix being decomposed here is assumed to be invertible. If you need to check for
+      *          invertibility, use class FullPivLU instead.
+      *
+      * \sa MatrixBase::inverse(), LU::inverse()
+      */
+    inline const internal::solve_retval<PartialPivLU,typename MatrixType::IdentityReturnType> inverse() const
+    {
+      eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+      return internal::solve_retval<PartialPivLU,typename MatrixType::IdentityReturnType>
+               (*this, MatrixType::Identity(m_lu.rows(), m_lu.cols()));
+    }
+
+    /** \returns the determinant of the matrix of which
+      * *this is the LU decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the LU decomposition has already been computed.
+      *
+      * \note For fixed-size matrices of size up to 4, MatrixBase::determinant() offers
+      *       optimized paths.
+      *
+      * \warning a determinant can be very big or small, so for matrices
+      * of large enough dimension, there is a risk of overflow/underflow.
+      *
+      * \sa MatrixBase::determinant()
+      */
+    typename internal::traits<MatrixType>::Scalar determinant() const;
+
+    MatrixType reconstructedMatrix() const;
+
+    inline Index rows() const { return m_lu.rows(); }
+    inline Index cols() const { return m_lu.cols(); }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    MatrixType m_lu;
+    PermutationType m_p;
+    TranspositionType m_rowsTranspositions;
+    Index m_det_p;
+    bool m_isInitialized;
+};
+
+template<typename MatrixType>
+PartialPivLU<MatrixType>::PartialPivLU()
+  : m_lu(),
+    m_p(),
+    m_rowsTranspositions(),
+    m_det_p(0),
+    m_isInitialized(false)
+{
+}
+
+template<typename MatrixType>
+PartialPivLU<MatrixType>::PartialPivLU(Index size)
+  : m_lu(size, size),
+    m_p(size),
+    m_rowsTranspositions(size),
+    m_det_p(0),
+    m_isInitialized(false)
+{
+}
+
+template<typename MatrixType>
+PartialPivLU<MatrixType>::PartialPivLU(const MatrixType& matrix)
+  : m_lu(matrix.rows(), matrix.rows()),
+    m_p(matrix.rows()),
+    m_rowsTranspositions(matrix.rows()),
+    m_det_p(0),
+    m_isInitialized(false)
+{
+  compute(matrix);
+}
+
+namespace internal {
+
+/** \internal This is the blocked version of fullpivlu_unblocked() */
+template<typename Scalar, int StorageOrder, typename PivIndex>
+struct partial_lu_impl
+{
+  // FIXME add a stride to Map, so that the following mapping becomes easier,
+  // another option would be to create an expression being able to automatically
+  // warp any Map, Matrix, and Block expressions as a unique type, but since that's exactly
+  // a Map + stride, why not adding a stride to Map, and convenient ctors from a Matrix,
+  // and Block.
+  typedef Map<Matrix<Scalar, Dynamic, Dynamic, StorageOrder> > MapLU;
+  typedef Block<MapLU, Dynamic, Dynamic> MatrixType;
+  typedef Block<MatrixType,Dynamic,Dynamic> BlockType;
+  typedef typename MatrixType::RealScalar RealScalar;
+  typedef typename MatrixType::Index Index;
+
+  /** \internal performs the LU decomposition in-place of the matrix \a lu
+    * using an unblocked algorithm.
+    *
+    * In addition, this function returns the row transpositions in the
+    * vector \a row_transpositions which must have a size equal to the number
+    * of columns of the matrix \a lu, and an integer \a nb_transpositions
+    * which returns the actual number of transpositions.
+    *
+    * \returns The index of the first pivot which is exactly zero if any, or a negative number otherwise.
+    */
+  static Index unblocked_lu(MatrixType& lu, PivIndex* row_transpositions, PivIndex& nb_transpositions)
+  {
+    const Index rows = lu.rows();
+    const Index cols = lu.cols();
+    const Index size = (std::min)(rows,cols);
+    nb_transpositions = 0;
+    Index first_zero_pivot = -1;
+    for(Index k = 0; k < size; ++k)
+    {
+      Index rrows = rows-k-1;
+      Index rcols = cols-k-1;
+        
+      Index row_of_biggest_in_col;
+      RealScalar biggest_in_corner
+        = lu.col(k).tail(rows-k).cwiseAbs().maxCoeff(&row_of_biggest_in_col);
+      row_of_biggest_in_col += k;
+
+      row_transpositions[k] = PivIndex(row_of_biggest_in_col);
+
+      if(biggest_in_corner != RealScalar(0))
+      {
+        if(k != row_of_biggest_in_col)
+        {
+          lu.row(k).swap(lu.row(row_of_biggest_in_col));
+          ++nb_transpositions;
+        }
+
+        // FIXME shall we introduce a safe quotient expression in cas 1/lu.coeff(k,k)
+        // overflow but not the actual quotient?
+        lu.col(k).tail(rrows) /= lu.coeff(k,k);
+      }
+      else if(first_zero_pivot==-1)
+      {
+        // the pivot is exactly zero, we record the index of the first pivot which is exactly 0,
+        // and continue the factorization such we still have A = PLU
+        first_zero_pivot = k;
+      }
+
+      if(k<rows-1)
+        lu.bottomRightCorner(rrows,rcols).noalias() -= lu.col(k).tail(rrows) * lu.row(k).tail(rcols);
+    }
+    return first_zero_pivot;
+  }
+
+  /** \internal performs the LU decomposition in-place of the matrix represented
+    * by the variables \a rows, \a cols, \a lu_data, and \a lu_stride using a
+    * recursive, blocked algorithm.
+    *
+    * In addition, this function returns the row transpositions in the
+    * vector \a row_transpositions which must have a size equal to the number
+    * of columns of the matrix \a lu, and an integer \a nb_transpositions
+    * which returns the actual number of transpositions.
+    *
+    * \returns The index of the first pivot which is exactly zero if any, or a negative number otherwise.
+    *
+    * \note This very low level interface using pointers, etc. is to:
+    *   1 - reduce the number of instanciations to the strict minimum
+    *   2 - avoid infinite recursion of the instanciations with Block<Block<Block<...> > >
+    */
+  static Index blocked_lu(Index rows, Index cols, Scalar* lu_data, Index luStride, PivIndex* row_transpositions, PivIndex& nb_transpositions, Index maxBlockSize=256)
+  {
+    MapLU lu1(lu_data,StorageOrder==RowMajor?rows:luStride,StorageOrder==RowMajor?luStride:cols);
+    MatrixType lu(lu1,0,0,rows,cols);
+
+    const Index size = (std::min)(rows,cols);
+
+    // if the matrix is too small, no blocking:
+    if(size<=16)
+    {
+      return unblocked_lu(lu, row_transpositions, nb_transpositions);
+    }
+
+    // automatically adjust the number of subdivisions to the size
+    // of the matrix so that there is enough sub blocks:
+    Index blockSize;
+    {
+      blockSize = size/8;
+      blockSize = (blockSize/16)*16;
+      blockSize = (std::min)((std::max)(blockSize,Index(8)), maxBlockSize);
+    }
+
+    nb_transpositions = 0;
+    Index first_zero_pivot = -1;
+    for(Index k = 0; k < size; k+=blockSize)
+    {
+      Index bs = (std::min)(size-k,blockSize); // actual size of the block
+      Index trows = rows - k - bs; // trailing rows
+      Index tsize = size - k - bs; // trailing size
+
+      // partition the matrix:
+      //                          A00 | A01 | A02
+      // lu  = A_0 | A_1 | A_2 =  A10 | A11 | A12
+      //                          A20 | A21 | A22
+      BlockType A_0(lu,0,0,rows,k);
+      BlockType A_2(lu,0,k+bs,rows,tsize);
+      BlockType A11(lu,k,k,bs,bs);
+      BlockType A12(lu,k,k+bs,bs,tsize);
+      BlockType A21(lu,k+bs,k,trows,bs);
+      BlockType A22(lu,k+bs,k+bs,trows,tsize);
+
+      PivIndex nb_transpositions_in_panel;
+      // recursively call the blocked LU algorithm on [A11^T A21^T]^T
+      // with a very small blocking size:
+      Index ret = blocked_lu(trows+bs, bs, &lu.coeffRef(k,k), luStride,
+                   row_transpositions+k, nb_transpositions_in_panel, 16);
+      if(ret>=0 && first_zero_pivot==-1)
+        first_zero_pivot = k+ret;
+
+      nb_transpositions += nb_transpositions_in_panel;
+      // update permutations and apply them to A_0
+      for(Index i=k; i<k+bs; ++i)
+      {
+        Index piv = (row_transpositions[i] += k);
+        A_0.row(i).swap(A_0.row(piv));
+      }
+
+      if(trows)
+      {
+        // apply permutations to A_2
+        for(Index i=k;i<k+bs; ++i)
+          A_2.row(i).swap(A_2.row(row_transpositions[i]));
+
+        // A12 = A11^-1 A12
+        A11.template triangularView<UnitLower>().solveInPlace(A12);
+
+        A22.noalias() -= A21 * A12;
+      }
+    }
+    return first_zero_pivot;
+  }
+};
+
+/** \internal performs the LU decomposition with partial pivoting in-place.
+  */
+template<typename MatrixType, typename TranspositionType>
+void partial_lu_inplace(MatrixType& lu, TranspositionType& row_transpositions, typename TranspositionType::Index& nb_transpositions)
+{
+  eigen_assert(lu.cols() == row_transpositions.size());
+  eigen_assert((&row_transpositions.coeffRef(1)-&row_transpositions.coeffRef(0)) == 1);
+
+  partial_lu_impl
+    <typename MatrixType::Scalar, MatrixType::Flags&RowMajorBit?RowMajor:ColMajor, typename TranspositionType::Index>
+    ::blocked_lu(lu.rows(), lu.cols(), &lu.coeffRef(0,0), lu.outerStride(), &row_transpositions.coeffRef(0), nb_transpositions);
+}
+
+} // end namespace internal
+
+template<typename MatrixType>
+PartialPivLU<MatrixType>& PartialPivLU<MatrixType>::compute(const MatrixType& matrix)
+{
+  check_template_parameters();
+  
+  // the row permutation is stored as int indices, so just to be sure:
+  eigen_assert(matrix.rows()<NumTraits<int>::highest());
+  
+  m_lu = matrix;
+
+  eigen_assert(matrix.rows() == matrix.cols() && "PartialPivLU is only for square (and moreover invertible) matrices");
+  const Index size = matrix.rows();
+
+  m_rowsTranspositions.resize(size);
+
+  typename TranspositionType::Index nb_transpositions;
+  internal::partial_lu_inplace(m_lu, m_rowsTranspositions, nb_transpositions);
+  m_det_p = (nb_transpositions%2) ? -1 : 1;
+
+  m_p = m_rowsTranspositions;
+
+  m_isInitialized = true;
+  return *this;
+}
+
+template<typename MatrixType>
+typename internal::traits<MatrixType>::Scalar PartialPivLU<MatrixType>::determinant() const
+{
+  eigen_assert(m_isInitialized && "PartialPivLU is not initialized.");
+  return Scalar(m_det_p) * m_lu.diagonal().prod();
+}
+
+/** \returns the matrix represented by the decomposition,
+ * i.e., it returns the product: P^{-1} L U.
+ * This function is provided for debug purpose. */
+template<typename MatrixType>
+MatrixType PartialPivLU<MatrixType>::reconstructedMatrix() const
+{
+  eigen_assert(m_isInitialized && "LU is not initialized.");
+  // LU
+  MatrixType res = m_lu.template triangularView<UnitLower>().toDenseMatrix()
+                 * m_lu.template triangularView<Upper>();
+
+  // P^{-1}(LU)
+  res = m_p.inverse() * res;
+
+  return res;
+}
+
+/***** Implementation of solve() *****************************************************/
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<PartialPivLU<_MatrixType>, Rhs>
+  : solve_retval_base<PartialPivLU<_MatrixType>, Rhs>
+{
+  EIGEN_MAKE_SOLVE_HELPERS(PartialPivLU<_MatrixType>,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    /* The decomposition PA = LU can be rewritten as A = P^{-1} L U.
+    * So we proceed as follows:
+    * Step 1: compute c = Pb.
+    * Step 2: replace c by the solution x to Lx = c.
+    * Step 3: replace c by the solution x to Ux = c.
+    */
+
+    eigen_assert(rhs().rows() == dec().matrixLU().rows());
+
+    // Step 1
+    dst = dec().permutationP() * rhs();
+
+    // Step 2
+    dec().matrixLU().template triangularView<UnitLower>().solveInPlace(dst);
+
+    // Step 3
+    dec().matrixLU().template triangularView<Upper>().solveInPlace(dst);
+  }
+};
+
+} // end namespace internal
+
+/******** MatrixBase methods *******/
+
+/** \lu_module
+  *
+  * \return the partial-pivoting LU decomposition of \c *this.
+  *
+  * \sa class PartialPivLU
+  */
+template<typename Derived>
+inline const PartialPivLU<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::partialPivLu() const
+{
+  return PartialPivLU<PlainObject>(eval());
+}
+
+#if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
+/** \lu_module
+  *
+  * Synonym of partialPivLu().
+  *
+  * \return the partial-pivoting LU decomposition of \c *this.
+  *
+  * \sa class PartialPivLU
+  */
+template<typename Derived>
+inline const PartialPivLU<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::lu() const
+{
+  return PartialPivLU<PlainObject>(eval());
+}
+#endif
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARTIALLU_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/PartialPivLU_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/PartialPivLU_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/PartialPivLU_MKL.h	(revision 2476)
@@ -0,0 +1,85 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *     LU decomposition with partial pivoting based on LAPACKE_?getrf function.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_PARTIALLU_LAPACK_H
+#define EIGEN_PARTIALLU_LAPACK_H
+
+#include "Eigen/src/Core/util/MKL_support.h"
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal Specialization for the data types supported by MKL */
+
+#define EIGEN_MKL_LU_PARTPIV(EIGTYPE, MKLTYPE, MKLPREFIX) \
+template<int StorageOrder> \
+struct partial_lu_impl<EIGTYPE, StorageOrder, lapack_int> \
+{ \
+  /* \internal performs the LU decomposition in-place of the matrix represented */ \
+  static lapack_int blocked_lu(lapack_int rows, lapack_int cols, EIGTYPE* lu_data, lapack_int luStride, lapack_int* row_transpositions, lapack_int& nb_transpositions, lapack_int maxBlockSize=256) \
+  { \
+    EIGEN_UNUSED_VARIABLE(maxBlockSize);\
+    lapack_int matrix_order, first_zero_pivot; \
+    lapack_int m, n, lda, *ipiv, info; \
+    EIGTYPE* a; \
+/* Set up parameters for ?getrf */ \
+    matrix_order = StorageOrder==RowMajor ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR; \
+    lda = luStride; \
+    a = lu_data; \
+    ipiv = row_transpositions; \
+    m = rows; \
+    n = cols; \
+    nb_transpositions = 0; \
+\
+    info = LAPACKE_##MKLPREFIX##getrf( matrix_order, m, n, (MKLTYPE*)a, lda, ipiv ); \
+\
+    for(int i=0;i<m;i++) { ipiv[i]--; if (ipiv[i]!=i) nb_transpositions++; } \
+\
+    eigen_assert(info >= 0); \
+/* something should be done with nb_transpositions */ \
+\
+    first_zero_pivot = info; \
+    return first_zero_pivot; \
+  } \
+};
+
+EIGEN_MKL_LU_PARTPIV(double, double, d)
+EIGEN_MKL_LU_PARTPIV(float, float, s)
+EIGEN_MKL_LU_PARTPIV(dcomplex, MKL_Complex16, z)
+EIGEN_MKL_LU_PARTPIV(scomplex, MKL_Complex8, c)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARTIALLU_LAPACK_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/FullPivLU.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/FullPivLU.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/LU/FullPivLU.h	(revision 2476)
@@ -0,0 +1,751 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LU_H
+#define EIGEN_LU_H
+
+namespace Eigen { 
+
+/** \ingroup LU_Module
+  *
+  * \class FullPivLU
+  *
+  * \brief LU decomposition of a matrix with complete pivoting, and related features
+  *
+  * \param MatrixType the type of the matrix of which we are computing the LU decomposition
+  *
+  * This class represents a LU decomposition of any matrix, with complete pivoting: the matrix A is
+  * decomposed as \f$ A = P^{-1} L U Q^{-1} \f$ where L is unit-lower-triangular, U is
+  * upper-triangular, and P and Q are permutation matrices. This is a rank-revealing LU
+  * decomposition. The eigenvalues (diagonal coefficients) of U are sorted in such a way that any
+  * zeros are at the end.
+  *
+  * This decomposition provides the generic approach to solving systems of linear equations, computing
+  * the rank, invertibility, inverse, kernel, and determinant.
+  *
+  * This LU decomposition is very stable and well tested with large matrices. However there are use cases where the SVD
+  * decomposition is inherently more stable and/or flexible. For example, when computing the kernel of a matrix,
+  * working with the SVD allows to select the smallest singular values of the matrix, something that
+  * the LU decomposition doesn't see.
+  *
+  * The data of the LU decomposition can be directly accessed through the methods matrixLU(),
+  * permutationP(), permutationQ().
+  *
+  * As an exemple, here is how the original matrix can be retrieved:
+  * \include class_FullPivLU.cpp
+  * Output: \verbinclude class_FullPivLU.out
+  *
+  * \sa MatrixBase::fullPivLu(), MatrixBase::determinant(), MatrixBase::inverse()
+  */
+template<typename _MatrixType> class FullPivLU
+{
+  public:
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+    typedef typename internal::traits<MatrixType>::StorageKind StorageKind;
+    typedef typename MatrixType::Index Index;
+    typedef typename internal::plain_row_type<MatrixType, Index>::type IntRowVectorType;
+    typedef typename internal::plain_col_type<MatrixType, Index>::type IntColVectorType;
+    typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationQType;
+    typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationPType;
+
+    /**
+      * \brief Default Constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via LU::compute(const MatrixType&).
+      */
+    FullPivLU();
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa FullPivLU()
+      */
+    FullPivLU(Index rows, Index cols);
+
+    /** Constructor.
+      *
+      * \param matrix the matrix of which to compute the LU decomposition.
+      *               It is required to be nonzero.
+      */
+    FullPivLU(const MatrixType& matrix);
+
+    /** Computes the LU decomposition of the given matrix.
+      *
+      * \param matrix the matrix of which to compute the LU decomposition.
+      *               It is required to be nonzero.
+      *
+      * \returns a reference to *this
+      */
+    FullPivLU& compute(const MatrixType& matrix);
+
+    /** \returns the LU decomposition matrix: the upper-triangular part is U, the
+      * unit-lower-triangular part is L (at least for square matrices; in the non-square
+      * case, special care is needed, see the documentation of class FullPivLU).
+      *
+      * \sa matrixL(), matrixU()
+      */
+    inline const MatrixType& matrixLU() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return m_lu;
+    }
+
+    /** \returns the number of nonzero pivots in the LU decomposition.
+      * Here nonzero is meant in the exact sense, not in a fuzzy sense.
+      * So that notion isn't really intrinsically interesting, but it is
+      * still useful when implementing algorithms.
+      *
+      * \sa rank()
+      */
+    inline Index nonzeroPivots() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return m_nonzero_pivots;
+    }
+
+    /** \returns the absolute value of the biggest pivot, i.e. the biggest
+      *          diagonal coefficient of U.
+      */
+    RealScalar maxPivot() const { return m_maxpivot; }
+
+    /** \returns the permutation matrix P
+      *
+      * \sa permutationQ()
+      */
+    inline const PermutationPType& permutationP() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return m_p;
+    }
+
+    /** \returns the permutation matrix Q
+      *
+      * \sa permutationP()
+      */
+    inline const PermutationQType& permutationQ() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return m_q;
+    }
+
+    /** \returns the kernel of the matrix, also called its null-space. The columns of the returned matrix
+      * will form a basis of the kernel.
+      *
+      * \note If the kernel has dimension zero, then the returned matrix is a column-vector filled with zeros.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      *
+      * Example: \include FullPivLU_kernel.cpp
+      * Output: \verbinclude FullPivLU_kernel.out
+      *
+      * \sa image()
+      */
+    inline const internal::kernel_retval<FullPivLU> kernel() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return internal::kernel_retval<FullPivLU>(*this);
+    }
+
+    /** \returns the image of the matrix, also called its column-space. The columns of the returned matrix
+      * will form a basis of the kernel.
+      *
+      * \param originalMatrix the original matrix, of which *this is the LU decomposition.
+      *                       The reason why it is needed to pass it here, is that this allows
+      *                       a large optimization, as otherwise this method would need to reconstruct it
+      *                       from the LU decomposition.
+      *
+      * \note If the image has dimension zero, then the returned matrix is a column-vector filled with zeros.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      *
+      * Example: \include FullPivLU_image.cpp
+      * Output: \verbinclude FullPivLU_image.out
+      *
+      * \sa kernel()
+      */
+    inline const internal::image_retval<FullPivLU>
+      image(const MatrixType& originalMatrix) const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return internal::image_retval<FullPivLU>(*this, originalMatrix);
+    }
+
+    /** \return a solution x to the equation Ax=b, where A is the matrix of which
+      * *this is the LU decomposition.
+      *
+      * \param b the right-hand-side of the equation to solve. Can be a vector or a matrix,
+      *          the only requirement in order for the equation to make sense is that
+      *          b.rows()==A.rows(), where A is the matrix of which *this is the LU decomposition.
+      *
+      * \returns a solution.
+      *
+      * \note_about_checking_solutions
+      *
+      * \note_about_arbitrary_choice_of_solution
+      * \note_about_using_kernel_to_study_multiple_solutions
+      *
+      * Example: \include FullPivLU_solve.cpp
+      * Output: \verbinclude FullPivLU_solve.out
+      *
+      * \sa TriangularView::solve(), kernel(), inverse()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<FullPivLU, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return internal::solve_retval<FullPivLU, Rhs>(*this, b.derived());
+    }
+
+    /** \returns the determinant of the matrix of which
+      * *this is the LU decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the LU decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \note For fixed-size matrices of size up to 4, MatrixBase::determinant() offers
+      *       optimized paths.
+      *
+      * \warning a determinant can be very big or small, so for matrices
+      * of large enough dimension, there is a risk of overflow/underflow.
+      *
+      * \sa MatrixBase::determinant()
+      */
+    typename internal::traits<MatrixType>::Scalar determinant() const;
+
+    /** Allows to prescribe a threshold to be used by certain methods, such as rank(),
+      * who need to determine when pivots are to be considered nonzero. This is not used for the
+      * LU decomposition itself.
+      *
+      * When it needs to get the threshold value, Eigen calls threshold(). By default, this
+      * uses a formula to automatically determine a reasonable threshold.
+      * Once you have called the present method setThreshold(const RealScalar&),
+      * your value is used instead.
+      *
+      * \param threshold The new value to use as the threshold.
+      *
+      * A pivot will be considered nonzero if its absolute value is strictly greater than
+      *  \f$ \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \f$
+      * where maxpivot is the biggest pivot.
+      *
+      * If you want to come back to the default behavior, call setThreshold(Default_t)
+      */
+    FullPivLU& setThreshold(const RealScalar& threshold)
+    {
+      m_usePrescribedThreshold = true;
+      m_prescribedThreshold = threshold;
+      return *this;
+    }
+
+    /** Allows to come back to the default behavior, letting Eigen use its default formula for
+      * determining the threshold.
+      *
+      * You should pass the special object Eigen::Default as parameter here.
+      * \code lu.setThreshold(Eigen::Default); \endcode
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    FullPivLU& setThreshold(Default_t)
+    {
+      m_usePrescribedThreshold = false;
+      return *this;
+    }
+
+    /** Returns the threshold that will be used by certain methods such as rank().
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    RealScalar threshold() const
+    {
+      eigen_assert(m_isInitialized || m_usePrescribedThreshold);
+      return m_usePrescribedThreshold ? m_prescribedThreshold
+      // this formula comes from experimenting (see "LU precision tuning" thread on the list)
+      // and turns out to be identical to Higham's formula used already in LDLt.
+                                      : NumTraits<Scalar>::epsilon() * m_lu.diagonalSize();
+    }
+
+    /** \returns the rank of the matrix of which *this is the LU decomposition.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index rank() const
+    {
+      using std::abs;
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold();
+      Index result = 0;
+      for(Index i = 0; i < m_nonzero_pivots; ++i)
+        result += (abs(m_lu.coeff(i,i)) > premultiplied_threshold);
+      return result;
+    }
+
+    /** \returns the dimension of the kernel of the matrix of which *this is the LU decomposition.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index dimensionOfKernel() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return cols() - rank();
+    }
+
+    /** \returns true if the matrix of which *this is the LU decomposition represents an injective
+      *          linear map, i.e. has trivial kernel; false otherwise.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isInjective() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return rank() == cols();
+    }
+
+    /** \returns true if the matrix of which *this is the LU decomposition represents a surjective
+      *          linear map; false otherwise.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isSurjective() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return rank() == rows();
+    }
+
+    /** \returns true if the matrix of which *this is the LU decomposition is invertible.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isInvertible() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return isInjective() && (m_lu.rows() == m_lu.cols());
+    }
+
+    /** \returns the inverse of the matrix of which *this is the LU decomposition.
+      *
+      * \note If this matrix is not invertible, the returned matrix has undefined coefficients.
+      *       Use isInvertible() to first determine whether this matrix is invertible.
+      *
+      * \sa MatrixBase::inverse()
+      */
+    inline const internal::solve_retval<FullPivLU,typename MatrixType::IdentityReturnType> inverse() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      eigen_assert(m_lu.rows() == m_lu.cols() && "You can't take the inverse of a non-square matrix!");
+      return internal::solve_retval<FullPivLU,typename MatrixType::IdentityReturnType>
+               (*this, MatrixType::Identity(m_lu.rows(), m_lu.cols()));
+    }
+
+    MatrixType reconstructedMatrix() const;
+
+    inline Index rows() const { return m_lu.rows(); }
+    inline Index cols() const { return m_lu.cols(); }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    MatrixType m_lu;
+    PermutationPType m_p;
+    PermutationQType m_q;
+    IntColVectorType m_rowsTranspositions;
+    IntRowVectorType m_colsTranspositions;
+    Index m_det_pq, m_nonzero_pivots;
+    RealScalar m_maxpivot, m_prescribedThreshold;
+    bool m_isInitialized, m_usePrescribedThreshold;
+};
+
+template<typename MatrixType>
+FullPivLU<MatrixType>::FullPivLU()
+  : m_isInitialized(false), m_usePrescribedThreshold(false)
+{
+}
+
+template<typename MatrixType>
+FullPivLU<MatrixType>::FullPivLU(Index rows, Index cols)
+  : m_lu(rows, cols),
+    m_p(rows),
+    m_q(cols),
+    m_rowsTranspositions(rows),
+    m_colsTranspositions(cols),
+    m_isInitialized(false),
+    m_usePrescribedThreshold(false)
+{
+}
+
+template<typename MatrixType>
+FullPivLU<MatrixType>::FullPivLU(const MatrixType& matrix)
+  : m_lu(matrix.rows(), matrix.cols()),
+    m_p(matrix.rows()),
+    m_q(matrix.cols()),
+    m_rowsTranspositions(matrix.rows()),
+    m_colsTranspositions(matrix.cols()),
+    m_isInitialized(false),
+    m_usePrescribedThreshold(false)
+{
+  compute(matrix);
+}
+
+template<typename MatrixType>
+FullPivLU<MatrixType>& FullPivLU<MatrixType>::compute(const MatrixType& matrix)
+{
+  check_template_parameters();
+  
+  // the permutations are stored as int indices, so just to be sure:
+  eigen_assert(matrix.rows()<=NumTraits<int>::highest() && matrix.cols()<=NumTraits<int>::highest());
+  
+  m_isInitialized = true;
+  m_lu = matrix;
+
+  const Index size = matrix.diagonalSize();
+  const Index rows = matrix.rows();
+  const Index cols = matrix.cols();
+
+  // will store the transpositions, before we accumulate them at the end.
+  // can't accumulate on-the-fly because that will be done in reverse order for the rows.
+  m_rowsTranspositions.resize(matrix.rows());
+  m_colsTranspositions.resize(matrix.cols());
+  Index number_of_transpositions = 0; // number of NONTRIVIAL transpositions, i.e. m_rowsTranspositions[i]!=i
+
+  m_nonzero_pivots = size; // the generic case is that in which all pivots are nonzero (invertible case)
+  m_maxpivot = RealScalar(0);
+
+  for(Index k = 0; k < size; ++k)
+  {
+    // First, we need to find the pivot.
+
+    // biggest coefficient in the remaining bottom-right corner (starting at row k, col k)
+    Index row_of_biggest_in_corner, col_of_biggest_in_corner;
+    RealScalar biggest_in_corner;
+    biggest_in_corner = m_lu.bottomRightCorner(rows-k, cols-k)
+                        .cwiseAbs()
+                        .maxCoeff(&row_of_biggest_in_corner, &col_of_biggest_in_corner);
+    row_of_biggest_in_corner += k; // correct the values! since they were computed in the corner,
+    col_of_biggest_in_corner += k; // need to add k to them.
+
+    if(biggest_in_corner==RealScalar(0))
+    {
+      // before exiting, make sure to initialize the still uninitialized transpositions
+      // in a sane state without destroying what we already have.
+      m_nonzero_pivots = k;
+      for(Index i = k; i < size; ++i)
+      {
+        m_rowsTranspositions.coeffRef(i) = i;
+        m_colsTranspositions.coeffRef(i) = i;
+      }
+      break;
+    }
+
+    if(biggest_in_corner > m_maxpivot) m_maxpivot = biggest_in_corner;
+
+    // Now that we've found the pivot, we need to apply the row/col swaps to
+    // bring it to the location (k,k).
+
+    m_rowsTranspositions.coeffRef(k) = row_of_biggest_in_corner;
+    m_colsTranspositions.coeffRef(k) = col_of_biggest_in_corner;
+    if(k != row_of_biggest_in_corner) {
+      m_lu.row(k).swap(m_lu.row(row_of_biggest_in_corner));
+      ++number_of_transpositions;
+    }
+    if(k != col_of_biggest_in_corner) {
+      m_lu.col(k).swap(m_lu.col(col_of_biggest_in_corner));
+      ++number_of_transpositions;
+    }
+
+    // Now that the pivot is at the right location, we update the remaining
+    // bottom-right corner by Gaussian elimination.
+
+    if(k<rows-1)
+      m_lu.col(k).tail(rows-k-1) /= m_lu.coeff(k,k);
+    if(k<size-1)
+      m_lu.block(k+1,k+1,rows-k-1,cols-k-1).noalias() -= m_lu.col(k).tail(rows-k-1) * m_lu.row(k).tail(cols-k-1);
+  }
+
+  // the main loop is over, we still have to accumulate the transpositions to find the
+  // permutations P and Q
+
+  m_p.setIdentity(rows);
+  for(Index k = size-1; k >= 0; --k)
+    m_p.applyTranspositionOnTheRight(k, m_rowsTranspositions.coeff(k));
+
+  m_q.setIdentity(cols);
+  for(Index k = 0; k < size; ++k)
+    m_q.applyTranspositionOnTheRight(k, m_colsTranspositions.coeff(k));
+
+  m_det_pq = (number_of_transpositions%2) ? -1 : 1;
+  return *this;
+}
+
+template<typename MatrixType>
+typename internal::traits<MatrixType>::Scalar FullPivLU<MatrixType>::determinant() const
+{
+  eigen_assert(m_isInitialized && "LU is not initialized.");
+  eigen_assert(m_lu.rows() == m_lu.cols() && "You can't take the determinant of a non-square matrix!");
+  return Scalar(m_det_pq) * Scalar(m_lu.diagonal().prod());
+}
+
+/** \returns the matrix represented by the decomposition,
+ * i.e., it returns the product: \f$ P^{-1} L U Q^{-1} \f$.
+ * This function is provided for debug purposes. */
+template<typename MatrixType>
+MatrixType FullPivLU<MatrixType>::reconstructedMatrix() const
+{
+  eigen_assert(m_isInitialized && "LU is not initialized.");
+  const Index smalldim = (std::min)(m_lu.rows(), m_lu.cols());
+  // LU
+  MatrixType res(m_lu.rows(),m_lu.cols());
+  // FIXME the .toDenseMatrix() should not be needed...
+  res = m_lu.leftCols(smalldim)
+            .template triangularView<UnitLower>().toDenseMatrix()
+      * m_lu.topRows(smalldim)
+            .template triangularView<Upper>().toDenseMatrix();
+
+  // P^{-1}(LU)
+  res = m_p.inverse() * res;
+
+  // (P^{-1}LU)Q^{-1}
+  res = res * m_q.inverse();
+
+  return res;
+}
+
+/********* Implementation of kernel() **************************************************/
+
+namespace internal {
+template<typename _MatrixType>
+struct kernel_retval<FullPivLU<_MatrixType> >
+  : kernel_retval_base<FullPivLU<_MatrixType> >
+{
+  EIGEN_MAKE_KERNEL_HELPERS(FullPivLU<_MatrixType>)
+
+  enum { MaxSmallDimAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(
+            MatrixType::MaxColsAtCompileTime,
+            MatrixType::MaxRowsAtCompileTime)
+  };
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    using std::abs;
+    const Index cols = dec().matrixLU().cols(), dimker = cols - rank();
+    if(dimker == 0)
+    {
+      // The Kernel is just {0}, so it doesn't have a basis properly speaking, but let's
+      // avoid crashing/asserting as that depends on floating point calculations. Let's
+      // just return a single column vector filled with zeros.
+      dst.setZero();
+      return;
+    }
+
+    /* Let us use the following lemma:
+      *
+      * Lemma: If the matrix A has the LU decomposition PAQ = LU,
+      * then Ker A = Q(Ker U).
+      *
+      * Proof: trivial: just keep in mind that P, Q, L are invertible.
+      */
+
+    /* Thus, all we need to do is to compute Ker U, and then apply Q.
+      *
+      * U is upper triangular, with eigenvalues sorted so that any zeros appear at the end.
+      * Thus, the diagonal of U ends with exactly
+      * dimKer zero's. Let us use that to construct dimKer linearly
+      * independent vectors in Ker U.
+      */
+
+    Matrix<Index, Dynamic, 1, 0, MaxSmallDimAtCompileTime, 1> pivots(rank());
+    RealScalar premultiplied_threshold = dec().maxPivot() * dec().threshold();
+    Index p = 0;
+    for(Index i = 0; i < dec().nonzeroPivots(); ++i)
+      if(abs(dec().matrixLU().coeff(i,i)) > premultiplied_threshold)
+        pivots.coeffRef(p++) = i;
+    eigen_internal_assert(p == rank());
+
+    // we construct a temporaty trapezoid matrix m, by taking the U matrix and
+    // permuting the rows and cols to bring the nonnegligible pivots to the top of
+    // the main diagonal. We need that to be able to apply our triangular solvers.
+    // FIXME when we get triangularView-for-rectangular-matrices, this can be simplified
+    Matrix<typename MatrixType::Scalar, Dynamic, Dynamic, MatrixType::Options,
+           MaxSmallDimAtCompileTime, MatrixType::MaxColsAtCompileTime>
+      m(dec().matrixLU().block(0, 0, rank(), cols));
+    for(Index i = 0; i < rank(); ++i)
+    {
+      if(i) m.row(i).head(i).setZero();
+      m.row(i).tail(cols-i) = dec().matrixLU().row(pivots.coeff(i)).tail(cols-i);
+    }
+    m.block(0, 0, rank(), rank());
+    m.block(0, 0, rank(), rank()).template triangularView<StrictlyLower>().setZero();
+    for(Index i = 0; i < rank(); ++i)
+      m.col(i).swap(m.col(pivots.coeff(i)));
+
+    // ok, we have our trapezoid matrix, we can apply the triangular solver.
+    // notice that the math behind this suggests that we should apply this to the
+    // negative of the RHS, but for performance we just put the negative sign elsewhere, see below.
+    m.topLeftCorner(rank(), rank())
+     .template triangularView<Upper>().solveInPlace(
+        m.topRightCorner(rank(), dimker)
+      );
+
+    // now we must undo the column permutation that we had applied!
+    for(Index i = rank()-1; i >= 0; --i)
+      m.col(i).swap(m.col(pivots.coeff(i)));
+
+    // see the negative sign in the next line, that's what we were talking about above.
+    for(Index i = 0; i < rank(); ++i) dst.row(dec().permutationQ().indices().coeff(i)) = -m.row(i).tail(dimker);
+    for(Index i = rank(); i < cols; ++i) dst.row(dec().permutationQ().indices().coeff(i)).setZero();
+    for(Index k = 0; k < dimker; ++k) dst.coeffRef(dec().permutationQ().indices().coeff(rank()+k), k) = Scalar(1);
+  }
+};
+
+/***** Implementation of image() *****************************************************/
+
+template<typename _MatrixType>
+struct image_retval<FullPivLU<_MatrixType> >
+  : image_retval_base<FullPivLU<_MatrixType> >
+{
+  EIGEN_MAKE_IMAGE_HELPERS(FullPivLU<_MatrixType>)
+
+  enum { MaxSmallDimAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(
+            MatrixType::MaxColsAtCompileTime,
+            MatrixType::MaxRowsAtCompileTime)
+  };
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    using std::abs;
+    if(rank() == 0)
+    {
+      // The Image is just {0}, so it doesn't have a basis properly speaking, but let's
+      // avoid crashing/asserting as that depends on floating point calculations. Let's
+      // just return a single column vector filled with zeros.
+      dst.setZero();
+      return;
+    }
+
+    Matrix<Index, Dynamic, 1, 0, MaxSmallDimAtCompileTime, 1> pivots(rank());
+    RealScalar premultiplied_threshold = dec().maxPivot() * dec().threshold();
+    Index p = 0;
+    for(Index i = 0; i < dec().nonzeroPivots(); ++i)
+      if(abs(dec().matrixLU().coeff(i,i)) > premultiplied_threshold)
+        pivots.coeffRef(p++) = i;
+    eigen_internal_assert(p == rank());
+
+    for(Index i = 0; i < rank(); ++i)
+      dst.col(i) = originalMatrix().col(dec().permutationQ().indices().coeff(pivots.coeff(i)));
+  }
+};
+
+/***** Implementation of solve() *****************************************************/
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<FullPivLU<_MatrixType>, Rhs>
+  : solve_retval_base<FullPivLU<_MatrixType>, Rhs>
+{
+  EIGEN_MAKE_SOLVE_HELPERS(FullPivLU<_MatrixType>,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    /* The decomposition PAQ = LU can be rewritten as A = P^{-1} L U Q^{-1}.
+     * So we proceed as follows:
+     * Step 1: compute c = P * rhs.
+     * Step 2: replace c by the solution x to Lx = c. Exists because L is invertible.
+     * Step 3: replace c by the solution x to Ux = c. May or may not exist.
+     * Step 4: result = Q * c;
+     */
+
+    const Index rows = dec().rows(), cols = dec().cols(),
+              nonzero_pivots = dec().rank();
+    eigen_assert(rhs().rows() == rows);
+    const Index smalldim = (std::min)(rows, cols);
+
+    if(nonzero_pivots == 0)
+    {
+      dst.setZero();
+      return;
+    }
+
+    typename Rhs::PlainObject c(rhs().rows(), rhs().cols());
+
+    // Step 1
+    c = dec().permutationP() * rhs();
+
+    // Step 2
+    dec().matrixLU()
+        .topLeftCorner(smalldim,smalldim)
+        .template triangularView<UnitLower>()
+        .solveInPlace(c.topRows(smalldim));
+    if(rows>cols)
+    {
+      c.bottomRows(rows-cols)
+        -= dec().matrixLU().bottomRows(rows-cols)
+         * c.topRows(cols);
+    }
+
+    // Step 3
+    dec().matrixLU()
+        .topLeftCorner(nonzero_pivots, nonzero_pivots)
+        .template triangularView<Upper>()
+        .solveInPlace(c.topRows(nonzero_pivots));
+
+    // Step 4
+    for(Index i = 0; i < nonzero_pivots; ++i)
+      dst.row(dec().permutationQ().indices().coeff(i)) = c.row(i);
+    for(Index i = nonzero_pivots; i < dec().matrixLU().cols(); ++i)
+      dst.row(dec().permutationQ().indices().coeff(i)).setZero();
+  }
+};
+
+} // end namespace internal
+
+/******* MatrixBase methods *****************************************************************/
+
+/** \lu_module
+  *
+  * \return the full-pivoting LU decomposition of \c *this.
+  *
+  * \sa class FullPivLU
+  */
+template<typename Derived>
+inline const FullPivLU<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::fullPivLu() const
+{
+  return FullPivLU<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_LU_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/MatrixCwiseBinaryOps.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/MatrixCwiseBinaryOps.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/MatrixCwiseBinaryOps.h	(revision 2476)
@@ -0,0 +1,143 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// This file is a base class plugin containing matrix specifics coefficient wise functions.
+
+/** \returns an expression of the Schur product (coefficient wise product) of *this and \a other
+  *
+  * Example: \include MatrixBase_cwiseProduct.cpp
+  * Output: \verbinclude MatrixBase_cwiseProduct.out
+  *
+  * \sa class CwiseBinaryOp, cwiseAbs2
+  */
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const EIGEN_CWISE_PRODUCT_RETURN_TYPE(Derived,OtherDerived)
+cwiseProduct(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return EIGEN_CWISE_PRODUCT_RETURN_TYPE(Derived,OtherDerived)(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise == operator of *this and \a other
+  *
+  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+  * isMuchSmallerThan().
+  *
+  * Example: \include MatrixBase_cwiseEqual.cpp
+  * Output: \verbinclude MatrixBase_cwiseEqual.out
+  *
+  * \sa cwiseNotEqual(), isApprox(), isMuchSmallerThan()
+  */
+template<typename OtherDerived>
+inline const CwiseBinaryOp<std::equal_to<Scalar>, const Derived, const OtherDerived>
+cwiseEqual(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return CwiseBinaryOp<std::equal_to<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise != operator of *this and \a other
+  *
+  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+  * isMuchSmallerThan().
+  *
+  * Example: \include MatrixBase_cwiseNotEqual.cpp
+  * Output: \verbinclude MatrixBase_cwiseNotEqual.out
+  *
+  * \sa cwiseEqual(), isApprox(), isMuchSmallerThan()
+  */
+template<typename OtherDerived>
+inline const CwiseBinaryOp<std::not_equal_to<Scalar>, const Derived, const OtherDerived>
+cwiseNotEqual(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return CwiseBinaryOp<std::not_equal_to<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise min of *this and \a other
+  *
+  * Example: \include MatrixBase_cwiseMin.cpp
+  * Output: \verbinclude MatrixBase_cwiseMin.out
+  *
+  * \sa class CwiseBinaryOp, max()
+  */
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const OtherDerived>
+cwiseMin(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise min of *this and scalar \a other
+  *
+  * \sa class CwiseBinaryOp, min()
+  */
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived, const ConstantReturnType>
+cwiseMin(const Scalar &other) const
+{
+  return cwiseMin(Derived::Constant(rows(), cols(), other));
+}
+
+/** \returns an expression of the coefficient-wise max of *this and \a other
+  *
+  * Example: \include MatrixBase_cwiseMax.cpp
+  * Output: \verbinclude MatrixBase_cwiseMax.out
+  *
+  * \sa class CwiseBinaryOp, min()
+  */
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const OtherDerived>
+cwiseMax(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise max of *this and scalar \a other
+  *
+  * \sa class CwiseBinaryOp, min()
+  */
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived, const ConstantReturnType>
+cwiseMax(const Scalar &other) const
+{
+  return cwiseMax(Derived::Constant(rows(), cols(), other));
+}
+
+
+/** \returns an expression of the coefficient-wise quotient of *this and \a other
+  *
+  * Example: \include MatrixBase_cwiseQuotient.cpp
+  * Output: \verbinclude MatrixBase_cwiseQuotient.out
+  *
+  * \sa class CwiseBinaryOp, cwiseProduct(), cwiseInverse()
+  */
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>
+cwiseQuotient(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+typedef CwiseBinaryOp<internal::scalar_cmp_op<Scalar,internal::cmp_EQ>, const Derived, const ConstantReturnType> CwiseScalarEqualReturnType;
+
+/** \returns an expression of the coefficient-wise == operator of \c *this and a scalar \a s
+  *
+  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+  * isMuchSmallerThan().
+  *
+  * \sa cwiseEqual(const MatrixBase<OtherDerived> &) const
+  */
+inline const CwiseScalarEqualReturnType
+cwiseEqual(const Scalar& s) const
+{
+  return CwiseScalarEqualReturnType(derived(), Derived::Constant(rows(), cols(), s), internal::scalar_cmp_op<Scalar,internal::cmp_EQ>());
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/ArrayCwiseUnaryOps.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/ArrayCwiseUnaryOps.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/ArrayCwiseUnaryOps.h	(revision 2476)
@@ -0,0 +1,187 @@
+
+
+/** \returns an expression of the coefficient-wise absolute value of \c *this
+  *
+  * Example: \include Cwise_abs.cpp
+  * Output: \verbinclude Cwise_abs.out
+  *
+  * \sa abs2()
+  */
+EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived>
+abs() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise squared absolute value of \c *this
+  *
+  * Example: \include Cwise_abs2.cpp
+  * Output: \verbinclude Cwise_abs2.out
+  *
+  * \sa abs(), square()
+  */
+EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived>
+abs2() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise exponential of *this.
+  *
+  * Example: \include Cwise_exp.cpp
+  * Output: \verbinclude Cwise_exp.out
+  *
+  * \sa pow(), log(), sin(), cos()
+  */
+inline const CwiseUnaryOp<internal::scalar_exp_op<Scalar>, const Derived>
+exp() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise logarithm of *this.
+  *
+  * Example: \include Cwise_log.cpp
+  * Output: \verbinclude Cwise_log.out
+  *
+  * \sa exp()
+  */
+inline const CwiseUnaryOp<internal::scalar_log_op<Scalar>, const Derived>
+log() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise square root of *this.
+  *
+  * Example: \include Cwise_sqrt.cpp
+  * Output: \verbinclude Cwise_sqrt.out
+  *
+  * \sa pow(), square()
+  */
+inline const CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived>
+sqrt() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise cosine of *this.
+  *
+  * Example: \include Cwise_cos.cpp
+  * Output: \verbinclude Cwise_cos.out
+  *
+  * \sa sin(), acos()
+  */
+inline const CwiseUnaryOp<internal::scalar_cos_op<Scalar>, const Derived>
+cos() const
+{
+  return derived();
+}
+
+
+/** \returns an expression of the coefficient-wise sine of *this.
+  *
+  * Example: \include Cwise_sin.cpp
+  * Output: \verbinclude Cwise_sin.out
+  *
+  * \sa cos(), asin()
+  */
+inline const CwiseUnaryOp<internal::scalar_sin_op<Scalar>, const Derived>
+sin() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise arc cosine of *this.
+  *
+  * Example: \include Cwise_acos.cpp
+  * Output: \verbinclude Cwise_acos.out
+  *
+  * \sa cos(), asin()
+  */
+inline const CwiseUnaryOp<internal::scalar_acos_op<Scalar>, const Derived>
+acos() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise arc sine of *this.
+  *
+  * Example: \include Cwise_asin.cpp
+  * Output: \verbinclude Cwise_asin.out
+  *
+  * \sa sin(), acos()
+  */
+inline const CwiseUnaryOp<internal::scalar_asin_op<Scalar>, const Derived>
+asin() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise tan of *this.
+  *
+  * Example: \include Cwise_tan.cpp
+  * Output: \verbinclude Cwise_tan.out
+  *
+  * \sa cos(), sin()
+  */
+inline const CwiseUnaryOp<internal::scalar_tan_op<Scalar>, Derived>
+tan() const
+{
+  return derived();
+}
+
+
+/** \returns an expression of the coefficient-wise power of *this to the given exponent.
+  *
+  * Example: \include Cwise_pow.cpp
+  * Output: \verbinclude Cwise_pow.out
+  *
+  * \sa exp(), log()
+  */
+inline const CwiseUnaryOp<internal::scalar_pow_op<Scalar>, const Derived>
+pow(const Scalar& exponent) const
+{
+  return CwiseUnaryOp<internal::scalar_pow_op<Scalar>, const Derived>
+          (derived(), internal::scalar_pow_op<Scalar>(exponent));
+}
+
+
+/** \returns an expression of the coefficient-wise inverse of *this.
+  *
+  * Example: \include Cwise_inverse.cpp
+  * Output: \verbinclude Cwise_inverse.out
+  *
+  * \sa operator/(), operator*()
+  */
+inline const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived>
+inverse() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise square of *this.
+  *
+  * Example: \include Cwise_square.cpp
+  * Output: \verbinclude Cwise_square.out
+  *
+  * \sa operator/(), operator*(), abs2()
+  */
+inline const CwiseUnaryOp<internal::scalar_square_op<Scalar>, const Derived>
+square() const
+{
+  return derived();
+}
+
+/** \returns an expression of the coefficient-wise cube of *this.
+  *
+  * Example: \include Cwise_cube.cpp
+  * Output: \verbinclude Cwise_cube.out
+  *
+  * \sa square(), pow()
+  */
+inline const CwiseUnaryOp<internal::scalar_cube_op<Scalar>, const Derived>
+cube() const
+{
+  return derived();
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/CommonCwiseBinaryOps.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/CommonCwiseBinaryOps.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/CommonCwiseBinaryOps.h	(revision 2476)
@@ -0,0 +1,46 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// This file is a base class plugin containing common coefficient wise functions.
+
+/** \returns an expression of the difference of \c *this and \a other
+  *
+  * \note If you want to substract a given scalar from all coefficients, see Cwise::operator-().
+  *
+  * \sa class CwiseBinaryOp, operator-=()
+  */
+EIGEN_MAKE_CWISE_BINARY_OP(operator-,internal::scalar_difference_op)
+
+/** \returns an expression of the sum of \c *this and \a other
+  *
+  * \note If you want to add a given scalar to all coefficients, see Cwise::operator+().
+  *
+  * \sa class CwiseBinaryOp, operator+=()
+  */
+EIGEN_MAKE_CWISE_BINARY_OP(operator+,internal::scalar_sum_op)
+
+/** \returns an expression of a custom coefficient-wise operator \a func of *this and \a other
+  *
+  * The template parameter \a CustomBinaryOp is the type of the functor
+  * of the custom operator (see class CwiseBinaryOp for an example)
+  *
+  * Here is an example illustrating the use of custom functors:
+  * \include class_CwiseBinaryOp.cpp
+  * Output: \verbinclude class_CwiseBinaryOp.out
+  *
+  * \sa class CwiseBinaryOp, operator+(), operator-(), cwiseProduct()
+  */
+template<typename CustomBinaryOp, typename OtherDerived>
+EIGEN_STRONG_INLINE const CwiseBinaryOp<CustomBinaryOp, const Derived, const OtherDerived>
+binaryExpr(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other, const CustomBinaryOp& func = CustomBinaryOp()) const
+{
+  return CwiseBinaryOp<CustomBinaryOp, const Derived, const OtherDerived>(derived(), other.derived(), func);
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/BlockMethods.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/BlockMethods.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/BlockMethods.h	(revision 2476)
@@ -0,0 +1,935 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+
+/** \internal expression type of a column */
+typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ColXpr;
+typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ConstColXpr;
+/** \internal expression type of a row */
+typedef Block<Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowXpr;
+typedef const Block<const Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowXpr;
+/** \internal expression type of a block of whole columns */
+typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ColsBlockXpr;
+typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ConstColsBlockXpr;
+/** \internal expression type of a block of whole rows */
+typedef Block<Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowsBlockXpr;
+typedef const Block<const Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowsBlockXpr;
+/** \internal expression type of a block of whole columns */
+template<int N> struct NColsBlockXpr { typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
+template<int N> struct ConstNColsBlockXpr { typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
+/** \internal expression type of a block of whole rows */
+template<int N> struct NRowsBlockXpr { typedef Block<Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
+template<int N> struct ConstNRowsBlockXpr { typedef const Block<const Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
+
+typedef VectorBlock<Derived> SegmentReturnType;
+typedef const VectorBlock<const Derived> ConstSegmentReturnType;
+template<int Size> struct FixedSegmentReturnType { typedef VectorBlock<Derived, Size> Type; };
+template<int Size> struct ConstFixedSegmentReturnType { typedef const VectorBlock<const Derived, Size> Type; };
+
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+/** \returns a dynamic-size expression of a block in *this.
+  *
+  * \param startRow the first row in the block
+  * \param startCol the first column in the block
+  * \param blockRows the number of rows in the block
+  * \param blockCols the number of columns in the block
+  *
+  * Example: \include MatrixBase_block_int_int_int_int.cpp
+  * Output: \verbinclude MatrixBase_block_int_int_int_int.out
+  *
+  * \note Even though the returned expression has dynamic size, in the case
+  * when it is applied to a fixed-size matrix, it inherits a fixed maximal size,
+  * which means that evaluating it does not cause a dynamic memory allocation.
+  *
+  * \sa class Block, block(Index,Index)
+  */
+inline Block<Derived> block(Index startRow, Index startCol, Index blockRows, Index blockCols)
+{
+  return Block<Derived>(derived(), startRow, startCol, blockRows, blockCols);
+}
+
+/** This is the const version of block(Index,Index,Index,Index). */
+inline const Block<const Derived> block(Index startRow, Index startCol, Index blockRows, Index blockCols) const
+{
+  return Block<const Derived>(derived(), startRow, startCol, blockRows, blockCols);
+}
+
+
+
+
+/** \returns a dynamic-size expression of a top-right corner of *this.
+  *
+  * \param cRows the number of rows in the corner
+  * \param cCols the number of columns in the corner
+  *
+  * Example: \include MatrixBase_topRightCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_topRightCorner_int_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline Block<Derived> topRightCorner(Index cRows, Index cCols)
+{
+  return Block<Derived>(derived(), 0, cols() - cCols, cRows, cCols);
+}
+
+/** This is the const version of topRightCorner(Index, Index).*/
+inline const Block<const Derived> topRightCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived>(derived(), 0, cols() - cCols, cRows, cCols);
+}
+
+/** \returns an expression of a fixed-size top-right corner of *this.
+  *
+  * \tparam CRows the number of rows in the corner
+  * \tparam CCols the number of columns in the corner
+  *
+  * Example: \include MatrixBase_template_int_int_topRightCorner.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_topRightCorner.out
+  *
+  * \sa class Block, block<int,int>(Index,Index)
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> topRightCorner()
+{
+  return Block<Derived, CRows, CCols>(derived(), 0, cols() - CCols);
+}
+
+/** This is the const version of topRightCorner<int, int>().*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> topRightCorner() const
+{
+  return Block<const Derived, CRows, CCols>(derived(), 0, cols() - CCols);
+}
+
+/** \returns an expression of a top-right corner of *this.
+  *
+  * \tparam CRows number of rows in corner as specified at compile-time
+  * \tparam CCols number of columns in corner as specified at compile-time
+  * \param  cRows number of rows in corner as specified at run-time
+  * \param  cCols number of columns in corner as specified at run-time
+  *
+  * This function is mainly useful for corners where the number of rows is specified at compile-time
+  * and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+  * information should not contradict. In other words, \a cRows should equal \a CRows unless
+  * \a CRows is \a Dynamic, and the same for the number of columns.
+  *
+  * Example: \include MatrixBase_template_int_int_topRightCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_topRightCorner_int_int.out
+  *
+  * \sa class Block
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> topRightCorner(Index cRows, Index cCols)
+{
+  return Block<Derived, CRows, CCols>(derived(), 0, cols() - cCols, cRows, cCols);
+}
+
+/** This is the const version of topRightCorner<int, int>(Index, Index).*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> topRightCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived, CRows, CCols>(derived(), 0, cols() - cCols, cRows, cCols);
+}
+
+
+
+/** \returns a dynamic-size expression of a top-left corner of *this.
+  *
+  * \param cRows the number of rows in the corner
+  * \param cCols the number of columns in the corner
+  *
+  * Example: \include MatrixBase_topLeftCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_topLeftCorner_int_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline Block<Derived> topLeftCorner(Index cRows, Index cCols)
+{
+  return Block<Derived>(derived(), 0, 0, cRows, cCols);
+}
+
+/** This is the const version of topLeftCorner(Index, Index).*/
+inline const Block<const Derived> topLeftCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived>(derived(), 0, 0, cRows, cCols);
+}
+
+/** \returns an expression of a fixed-size top-left corner of *this.
+  *
+  * The template parameters CRows and CCols are the number of rows and columns in the corner.
+  *
+  * Example: \include MatrixBase_template_int_int_topLeftCorner.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_topLeftCorner.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> topLeftCorner()
+{
+  return Block<Derived, CRows, CCols>(derived(), 0, 0);
+}
+
+/** This is the const version of topLeftCorner<int, int>().*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> topLeftCorner() const
+{
+  return Block<const Derived, CRows, CCols>(derived(), 0, 0);
+}
+
+/** \returns an expression of a top-left corner of *this.
+  *
+  * \tparam CRows number of rows in corner as specified at compile-time
+  * \tparam CCols number of columns in corner as specified at compile-time
+  * \param  cRows number of rows in corner as specified at run-time
+  * \param  cCols number of columns in corner as specified at run-time
+  *
+  * This function is mainly useful for corners where the number of rows is specified at compile-time
+  * and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+  * information should not contradict. In other words, \a cRows should equal \a CRows unless
+  * \a CRows is \a Dynamic, and the same for the number of columns.
+  *
+  * Example: \include MatrixBase_template_int_int_topLeftCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_topLeftCorner_int_int.out
+  *
+  * \sa class Block
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> topLeftCorner(Index cRows, Index cCols)
+{
+  return Block<Derived, CRows, CCols>(derived(), 0, 0, cRows, cCols);
+}
+
+/** This is the const version of topLeftCorner<int, int>(Index, Index).*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> topLeftCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived, CRows, CCols>(derived(), 0, 0, cRows, cCols);
+}
+
+
+
+/** \returns a dynamic-size expression of a bottom-right corner of *this.
+  *
+  * \param cRows the number of rows in the corner
+  * \param cCols the number of columns in the corner
+  *
+  * Example: \include MatrixBase_bottomRightCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_bottomRightCorner_int_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline Block<Derived> bottomRightCorner(Index cRows, Index cCols)
+{
+  return Block<Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+}
+
+/** This is the const version of bottomRightCorner(Index, Index).*/
+inline const Block<const Derived> bottomRightCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+}
+
+/** \returns an expression of a fixed-size bottom-right corner of *this.
+  *
+  * The template parameters CRows and CCols are the number of rows and columns in the corner.
+  *
+  * Example: \include MatrixBase_template_int_int_bottomRightCorner.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_bottomRightCorner.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> bottomRightCorner()
+{
+  return Block<Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
+}
+
+/** This is the const version of bottomRightCorner<int, int>().*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> bottomRightCorner() const
+{
+  return Block<const Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
+}
+
+/** \returns an expression of a bottom-right corner of *this.
+  *
+  * \tparam CRows number of rows in corner as specified at compile-time
+  * \tparam CCols number of columns in corner as specified at compile-time
+  * \param  cRows number of rows in corner as specified at run-time
+  * \param  cCols number of columns in corner as specified at run-time
+  *
+  * This function is mainly useful for corners where the number of rows is specified at compile-time
+  * and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+  * information should not contradict. In other words, \a cRows should equal \a CRows unless
+  * \a CRows is \a Dynamic, and the same for the number of columns.
+  *
+  * Example: \include MatrixBase_template_int_int_bottomRightCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_bottomRightCorner_int_int.out
+  *
+  * \sa class Block
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> bottomRightCorner(Index cRows, Index cCols)
+{
+  return Block<Derived, CRows, CCols>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+}
+
+/** This is the const version of bottomRightCorner<int, int>(Index, Index).*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> bottomRightCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived, CRows, CCols>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
+}
+
+
+
+/** \returns a dynamic-size expression of a bottom-left corner of *this.
+  *
+  * \param cRows the number of rows in the corner
+  * \param cCols the number of columns in the corner
+  *
+  * Example: \include MatrixBase_bottomLeftCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_bottomLeftCorner_int_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline Block<Derived> bottomLeftCorner(Index cRows, Index cCols)
+{
+  return Block<Derived>(derived(), rows() - cRows, 0, cRows, cCols);
+}
+
+/** This is the const version of bottomLeftCorner(Index, Index).*/
+inline const Block<const Derived> bottomLeftCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived>(derived(), rows() - cRows, 0, cRows, cCols);
+}
+
+/** \returns an expression of a fixed-size bottom-left corner of *this.
+  *
+  * The template parameters CRows and CCols are the number of rows and columns in the corner.
+  *
+  * Example: \include MatrixBase_template_int_int_bottomLeftCorner.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_bottomLeftCorner.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> bottomLeftCorner()
+{
+  return Block<Derived, CRows, CCols>(derived(), rows() - CRows, 0);
+}
+
+/** This is the const version of bottomLeftCorner<int, int>().*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> bottomLeftCorner() const
+{
+  return Block<const Derived, CRows, CCols>(derived(), rows() - CRows, 0);
+}
+
+/** \returns an expression of a bottom-left corner of *this.
+  *
+  * \tparam CRows number of rows in corner as specified at compile-time
+  * \tparam CCols number of columns in corner as specified at compile-time
+  * \param  cRows number of rows in corner as specified at run-time
+  * \param  cCols number of columns in corner as specified at run-time
+  *
+  * This function is mainly useful for corners where the number of rows is specified at compile-time
+  * and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+  * information should not contradict. In other words, \a cRows should equal \a CRows unless
+  * \a CRows is \a Dynamic, and the same for the number of columns.
+  *
+  * Example: \include MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_bottomLeftCorner_int_int.out
+  *
+  * \sa class Block
+  */
+template<int CRows, int CCols>
+inline Block<Derived, CRows, CCols> bottomLeftCorner(Index cRows, Index cCols)
+{
+  return Block<Derived, CRows, CCols>(derived(), rows() - cRows, 0, cRows, cCols);
+}
+
+/** This is the const version of bottomLeftCorner<int, int>(Index, Index).*/
+template<int CRows, int CCols>
+inline const Block<const Derived, CRows, CCols> bottomLeftCorner(Index cRows, Index cCols) const
+{
+  return Block<const Derived, CRows, CCols>(derived(), rows() - cRows, 0, cRows, cCols);
+}
+
+
+
+/** \returns a block consisting of the top rows of *this.
+  *
+  * \param n the number of rows in the block
+  *
+  * Example: \include MatrixBase_topRows_int.cpp
+  * Output: \verbinclude MatrixBase_topRows_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline RowsBlockXpr topRows(Index n)
+{
+  return RowsBlockXpr(derived(), 0, 0, n, cols());
+}
+
+/** This is the const version of topRows(Index).*/
+inline ConstRowsBlockXpr topRows(Index n) const
+{
+  return ConstRowsBlockXpr(derived(), 0, 0, n, cols());
+}
+
+/** \returns a block consisting of the top rows of *this.
+  *
+  * \tparam N the number of rows in the block as specified at compile-time
+  * \param n the number of rows in the block as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_topRows.cpp
+  * Output: \verbinclude MatrixBase_template_int_topRows.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int N>
+inline typename NRowsBlockXpr<N>::Type topRows(Index n = N)
+{
+  return typename NRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
+}
+
+/** This is the const version of topRows<int>().*/
+template<int N>
+inline typename ConstNRowsBlockXpr<N>::Type topRows(Index n = N) const
+{
+  return typename ConstNRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
+}
+
+
+
+/** \returns a block consisting of the bottom rows of *this.
+  *
+  * \param n the number of rows in the block
+  *
+  * Example: \include MatrixBase_bottomRows_int.cpp
+  * Output: \verbinclude MatrixBase_bottomRows_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline RowsBlockXpr bottomRows(Index n)
+{
+  return RowsBlockXpr(derived(), rows() - n, 0, n, cols());
+}
+
+/** This is the const version of bottomRows(Index).*/
+inline ConstRowsBlockXpr bottomRows(Index n) const
+{
+  return ConstRowsBlockXpr(derived(), rows() - n, 0, n, cols());
+}
+
+/** \returns a block consisting of the bottom rows of *this.
+  *
+  * \tparam N the number of rows in the block as specified at compile-time
+  * \param n the number of rows in the block as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_bottomRows.cpp
+  * Output: \verbinclude MatrixBase_template_int_bottomRows.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int N>
+inline typename NRowsBlockXpr<N>::Type bottomRows(Index n = N)
+{
+  return typename NRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
+}
+
+/** This is the const version of bottomRows<int>().*/
+template<int N>
+inline typename ConstNRowsBlockXpr<N>::Type bottomRows(Index n = N) const
+{
+  return typename ConstNRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
+}
+
+
+
+/** \returns a block consisting of a range of rows of *this.
+  *
+  * \param startRow the index of the first row in the block
+  * \param n the number of rows in the block
+  *
+  * Example: \include DenseBase_middleRows_int.cpp
+  * Output: \verbinclude DenseBase_middleRows_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline RowsBlockXpr middleRows(Index startRow, Index n)
+{
+  return RowsBlockXpr(derived(), startRow, 0, n, cols());
+}
+
+/** This is the const version of middleRows(Index,Index).*/
+inline ConstRowsBlockXpr middleRows(Index startRow, Index n) const
+{
+  return ConstRowsBlockXpr(derived(), startRow, 0, n, cols());
+}
+
+/** \returns a block consisting of a range of rows of *this.
+  *
+  * \tparam N the number of rows in the block as specified at compile-time
+  * \param startRow the index of the first row in the block
+  * \param n the number of rows in the block as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include DenseBase_template_int_middleRows.cpp
+  * Output: \verbinclude DenseBase_template_int_middleRows.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int N>
+inline typename NRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N)
+{
+  return typename NRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
+}
+
+/** This is the const version of middleRows<int>().*/
+template<int N>
+inline typename ConstNRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N) const
+{
+  return typename ConstNRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
+}
+
+
+
+/** \returns a block consisting of the left columns of *this.
+  *
+  * \param n the number of columns in the block
+  *
+  * Example: \include MatrixBase_leftCols_int.cpp
+  * Output: \verbinclude MatrixBase_leftCols_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline ColsBlockXpr leftCols(Index n)
+{
+  return ColsBlockXpr(derived(), 0, 0, rows(), n);
+}
+
+/** This is the const version of leftCols(Index).*/
+inline ConstColsBlockXpr leftCols(Index n) const
+{
+  return ConstColsBlockXpr(derived(), 0, 0, rows(), n);
+}
+
+/** \returns a block consisting of the left columns of *this.
+  *
+  * \tparam N the number of columns in the block as specified at compile-time
+  * \param n the number of columns in the block as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_leftCols.cpp
+  * Output: \verbinclude MatrixBase_template_int_leftCols.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int N>
+inline typename NColsBlockXpr<N>::Type leftCols(Index n = N)
+{
+  return typename NColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
+}
+
+/** This is the const version of leftCols<int>().*/
+template<int N>
+inline typename ConstNColsBlockXpr<N>::Type leftCols(Index n = N) const
+{
+  return typename ConstNColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
+}
+
+
+
+/** \returns a block consisting of the right columns of *this.
+  *
+  * \param n the number of columns in the block
+  *
+  * Example: \include MatrixBase_rightCols_int.cpp
+  * Output: \verbinclude MatrixBase_rightCols_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline ColsBlockXpr rightCols(Index n)
+{
+  return ColsBlockXpr(derived(), 0, cols() - n, rows(), n);
+}
+
+/** This is the const version of rightCols(Index).*/
+inline ConstColsBlockXpr rightCols(Index n) const
+{
+  return ConstColsBlockXpr(derived(), 0, cols() - n, rows(), n);
+}
+
+/** \returns a block consisting of the right columns of *this.
+  *
+  * \tparam N the number of columns in the block as specified at compile-time
+  * \param n the number of columns in the block as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_rightCols.cpp
+  * Output: \verbinclude MatrixBase_template_int_rightCols.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int N>
+inline typename NColsBlockXpr<N>::Type rightCols(Index n = N)
+{
+  return typename NColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
+}
+
+/** This is the const version of rightCols<int>().*/
+template<int N>
+inline typename ConstNColsBlockXpr<N>::Type rightCols(Index n = N) const
+{
+  return typename ConstNColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
+}
+
+
+
+/** \returns a block consisting of a range of columns of *this.
+  *
+  * \param startCol the index of the first column in the block
+  * \param numCols the number of columns in the block
+  *
+  * Example: \include DenseBase_middleCols_int.cpp
+  * Output: \verbinclude DenseBase_middleCols_int.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+inline ColsBlockXpr middleCols(Index startCol, Index numCols)
+{
+  return ColsBlockXpr(derived(), 0, startCol, rows(), numCols);
+}
+
+/** This is the const version of middleCols(Index,Index).*/
+inline ConstColsBlockXpr middleCols(Index startCol, Index numCols) const
+{
+  return ConstColsBlockXpr(derived(), 0, startCol, rows(), numCols);
+}
+
+/** \returns a block consisting of a range of columns of *this.
+  *
+  * \tparam N the number of columns in the block as specified at compile-time
+  * \param startCol the index of the first column in the block
+  * \param n the number of columns in the block as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include DenseBase_template_int_middleCols.cpp
+  * Output: \verbinclude DenseBase_template_int_middleCols.out
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int N>
+inline typename NColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N)
+{
+  return typename NColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
+}
+
+/** This is the const version of middleCols<int>().*/
+template<int N>
+inline typename ConstNColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N) const
+{
+  return typename ConstNColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
+}
+
+
+
+/** \returns a fixed-size expression of a block in *this.
+  *
+  * The template parameters \a BlockRows and \a BlockCols are the number of
+  * rows and columns in the block.
+  *
+  * \param startRow the first row in the block
+  * \param startCol the first column in the block
+  *
+  * Example: \include MatrixBase_block_int_int.cpp
+  * Output: \verbinclude MatrixBase_block_int_int.out
+  *
+  * \note since block is a templated member, the keyword template has to be used
+  * if the matrix type is also a template parameter: \code m.template block<3,3>(1,1); \endcode
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int BlockRows, int BlockCols>
+inline Block<Derived, BlockRows, BlockCols> block(Index startRow, Index startCol)
+{
+  return Block<Derived, BlockRows, BlockCols>(derived(), startRow, startCol);
+}
+
+/** This is the const version of block<>(Index, Index). */
+template<int BlockRows, int BlockCols>
+inline const Block<const Derived, BlockRows, BlockCols> block(Index startRow, Index startCol) const
+{
+  return Block<const Derived, BlockRows, BlockCols>(derived(), startRow, startCol);
+}
+
+/** \returns an expression of a block in *this.
+  *
+  * \tparam BlockRows number of rows in block as specified at compile-time
+  * \tparam BlockCols number of columns in block as specified at compile-time
+  * \param  startRow  the first row in the block
+  * \param  startCol  the first column in the block
+  * \param  blockRows number of rows in block as specified at run-time
+  * \param  blockCols number of columns in block as specified at run-time
+  *
+  * This function is mainly useful for blocks where the number of rows is specified at compile-time
+  * and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
+  * information should not contradict. In other words, \a blockRows should equal \a BlockRows unless
+  * \a BlockRows is \a Dynamic, and the same for the number of columns.
+  *
+  * Example: \include MatrixBase_template_int_int_block_int_int_int_int.cpp
+  * Output: \verbinclude MatrixBase_template_int_int_block_int_int_int_int.cpp
+  *
+  * \sa class Block, block(Index,Index,Index,Index)
+  */
+template<int BlockRows, int BlockCols>
+inline Block<Derived, BlockRows, BlockCols> block(Index startRow, Index startCol, 
+                                                  Index blockRows, Index blockCols)
+{
+  return Block<Derived, BlockRows, BlockCols>(derived(), startRow, startCol, blockRows, blockCols);
+}
+
+/** This is the const version of block<>(Index, Index, Index, Index). */
+template<int BlockRows, int BlockCols>
+inline const Block<const Derived, BlockRows, BlockCols> block(Index startRow, Index startCol,
+                                                              Index blockRows, Index blockCols) const
+{
+  return Block<const Derived, BlockRows, BlockCols>(derived(), startRow, startCol, blockRows, blockCols);
+}
+
+/** \returns an expression of the \a i-th column of *this. Note that the numbering starts at 0.
+  *
+  * Example: \include MatrixBase_col.cpp
+  * Output: \verbinclude MatrixBase_col.out
+  *
+  * \sa row(), class Block */
+inline ColXpr col(Index i)
+{
+  return ColXpr(derived(), i);
+}
+
+/** This is the const version of col(). */
+inline ConstColXpr col(Index i) const
+{
+  return ConstColXpr(derived(), i);
+}
+
+/** \returns an expression of the \a i-th row of *this. Note that the numbering starts at 0.
+  *
+  * Example: \include MatrixBase_row.cpp
+  * Output: \verbinclude MatrixBase_row.out
+  *
+  * \sa col(), class Block */
+inline RowXpr row(Index i)
+{
+  return RowXpr(derived(), i);
+}
+
+/** This is the const version of row(). */
+inline ConstRowXpr row(Index i) const
+{
+  return ConstRowXpr(derived(), i);
+}
+
+/** \returns a dynamic-size expression of a segment (i.e. a vector block) in *this.
+  *
+  * \only_for_vectors
+  *
+  * \param start the first coefficient in the segment
+  * \param n the number of coefficients in the segment
+  *
+  * Example: \include MatrixBase_segment_int_int.cpp
+  * Output: \verbinclude MatrixBase_segment_int_int.out
+  *
+  * \note Even though the returned expression has dynamic size, in the case
+  * when it is applied to a fixed-size vector, it inherits a fixed maximal size,
+  * which means that evaluating it does not cause a dynamic memory allocation.
+  *
+  * \sa class Block, segment(Index)
+  */
+inline SegmentReturnType segment(Index start, Index n)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return SegmentReturnType(derived(), start, n);
+}
+
+
+/** This is the const version of segment(Index,Index).*/
+inline ConstSegmentReturnType segment(Index start, Index n) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return ConstSegmentReturnType(derived(), start, n);
+}
+
+/** \returns a dynamic-size expression of the first coefficients of *this.
+  *
+  * \only_for_vectors
+  *
+  * \param n the number of coefficients in the segment
+  *
+  * Example: \include MatrixBase_start_int.cpp
+  * Output: \verbinclude MatrixBase_start_int.out
+  *
+  * \note Even though the returned expression has dynamic size, in the case
+  * when it is applied to a fixed-size vector, it inherits a fixed maximal size,
+  * which means that evaluating it does not cause a dynamic memory allocation.
+  *
+  * \sa class Block, block(Index,Index)
+  */
+inline SegmentReturnType head(Index n)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return SegmentReturnType(derived(), 0, n);
+}
+
+/** This is the const version of head(Index).*/
+inline ConstSegmentReturnType head(Index n) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return ConstSegmentReturnType(derived(), 0, n);
+}
+
+/** \returns a dynamic-size expression of the last coefficients of *this.
+  *
+  * \only_for_vectors
+  *
+  * \param n the number of coefficients in the segment
+  *
+  * Example: \include MatrixBase_end_int.cpp
+  * Output: \verbinclude MatrixBase_end_int.out
+  *
+  * \note Even though the returned expression has dynamic size, in the case
+  * when it is applied to a fixed-size vector, it inherits a fixed maximal size,
+  * which means that evaluating it does not cause a dynamic memory allocation.
+  *
+  * \sa class Block, block(Index,Index)
+  */
+inline SegmentReturnType tail(Index n)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return SegmentReturnType(derived(), this->size() - n, n);
+}
+
+/** This is the const version of tail(Index).*/
+inline ConstSegmentReturnType tail(Index n) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return ConstSegmentReturnType(derived(), this->size() - n, n);
+}
+
+/** \returns a fixed-size expression of a segment (i.e. a vector block) in \c *this
+  *
+  * \only_for_vectors
+  *
+  * \tparam N the number of coefficients in the segment as specified at compile-time
+  * \param start the index of the first element in the segment
+  * \param n the number of coefficients in the segment as specified at compile-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_segment.cpp
+  * Output: \verbinclude MatrixBase_template_int_segment.out
+  *
+  * \sa class Block
+  */
+template<int N>
+inline typename FixedSegmentReturnType<N>::Type segment(Index start, Index n = N)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return typename FixedSegmentReturnType<N>::Type(derived(), start, n);
+}
+
+/** This is the const version of segment<int>(Index).*/
+template<int N>
+inline typename ConstFixedSegmentReturnType<N>::Type segment(Index start, Index n = N) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return typename ConstFixedSegmentReturnType<N>::Type(derived(), start, n);
+}
+
+/** \returns a fixed-size expression of the first coefficients of *this.
+  *
+  * \only_for_vectors
+  *
+  * \tparam N the number of coefficients in the segment as specified at compile-time
+  * \param  n the number of coefficients in the segment as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_start.cpp
+  * Output: \verbinclude MatrixBase_template_int_start.out
+  *
+  * \sa class Block
+  */
+template<int N>
+inline typename FixedSegmentReturnType<N>::Type head(Index n = N)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return typename FixedSegmentReturnType<N>::Type(derived(), 0, n);
+}
+
+/** This is the const version of head<int>().*/
+template<int N>
+inline typename ConstFixedSegmentReturnType<N>::Type head(Index n = N) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return typename ConstFixedSegmentReturnType<N>::Type(derived(), 0, n);
+}
+
+/** \returns a fixed-size expression of the last coefficients of *this.
+  *
+  * \only_for_vectors
+  *
+  * \tparam N the number of coefficients in the segment as specified at compile-time
+  * \param  n the number of coefficients in the segment as specified at run-time
+  *
+  * The compile-time and run-time information should not contradict. In other words,
+  * \a n should equal \a N unless \a N is \a Dynamic.
+  *
+  * Example: \include MatrixBase_template_int_end.cpp
+  * Output: \verbinclude MatrixBase_template_int_end.out
+  *
+  * \sa class Block
+  */
+template<int N>
+inline typename FixedSegmentReturnType<N>::Type tail(Index n = N)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return typename FixedSegmentReturnType<N>::Type(derived(), size() - n);
+}
+
+/** This is the const version of tail<int>.*/
+template<int N>
+inline typename ConstFixedSegmentReturnType<N>::Type tail(Index n = N) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return typename ConstFixedSegmentReturnType<N>::Type(derived(), size() - n);
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/ArrayCwiseBinaryOps.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/ArrayCwiseBinaryOps.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/ArrayCwiseBinaryOps.h	(revision 2476)
@@ -0,0 +1,253 @@
+/** \returns an expression of the coefficient wise product of \c *this and \a other
+  *
+  * \sa MatrixBase::cwiseProduct
+  */
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const EIGEN_CWISE_PRODUCT_RETURN_TYPE(Derived,OtherDerived)
+operator*(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return EIGEN_CWISE_PRODUCT_RETURN_TYPE(Derived,OtherDerived)(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient wise quotient of \c *this and \a other
+  *
+  * \sa MatrixBase::cwiseQuotient
+  */
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>
+operator/(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  return CwiseBinaryOp<internal::scalar_quotient_op<Scalar>, const Derived, const OtherDerived>(derived(), other.derived());
+}
+
+/** \returns an expression of the coefficient-wise min of \c *this and \a other
+  *
+  * Example: \include Cwise_min.cpp
+  * Output: \verbinclude Cwise_min.out
+  *
+  * \sa max()
+  */
+EIGEN_MAKE_CWISE_BINARY_OP(min,internal::scalar_min_op)
+
+/** \returns an expression of the coefficient-wise min of \c *this and scalar \a other
+  *
+  * \sa max()
+  */
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_min_op<Scalar>, const Derived,
+                                        const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+min
+#else
+(min)
+#endif
+(const Scalar &other) const
+{
+  return (min)(Derived::PlainObject::Constant(rows(), cols(), other));
+}
+
+/** \returns an expression of the coefficient-wise max of \c *this and \a other
+  *
+  * Example: \include Cwise_max.cpp
+  * Output: \verbinclude Cwise_max.out
+  *
+  * \sa min()
+  */
+EIGEN_MAKE_CWISE_BINARY_OP(max,internal::scalar_max_op)
+
+/** \returns an expression of the coefficient-wise max of \c *this and scalar \a other
+  *
+  * \sa min()
+  */
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_max_op<Scalar>, const Derived,
+                                        const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+max
+#else
+(max)
+#endif
+(const Scalar &other) const
+{
+  return (max)(Derived::PlainObject::Constant(rows(), cols(), other));
+}
+
+
+#define EIGEN_MAKE_CWISE_COMP_OP(OP, COMPARATOR) \
+template<typename OtherDerived> \
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_cmp_op<Scalar, internal::cmp_ ## COMPARATOR>, const Derived, const OtherDerived> \
+OP(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \
+{ \
+  return CwiseBinaryOp<internal::scalar_cmp_op<Scalar, internal::cmp_ ## COMPARATOR>, const Derived, const OtherDerived>(derived(), other.derived()); \
+}\
+typedef CwiseBinaryOp<internal::scalar_cmp_op<Scalar, internal::cmp_ ## COMPARATOR>, const Derived, const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> > Cmp ## COMPARATOR ## ReturnType; \
+typedef CwiseBinaryOp<internal::scalar_cmp_op<Scalar, internal::cmp_ ## COMPARATOR>, const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject>, const Derived > RCmp ## COMPARATOR ## ReturnType; \
+EIGEN_STRONG_INLINE const Cmp ## COMPARATOR ## ReturnType \
+OP(const Scalar& s) const { \
+  return this->OP(Derived::PlainObject::Constant(rows(), cols(), s)); \
+} \
+friend EIGEN_STRONG_INLINE const RCmp ## COMPARATOR ## ReturnType \
+OP(const Scalar& s, const Derived& d) { \
+  return Derived::PlainObject::Constant(d.rows(), d.cols(), s).OP(d); \
+}
+
+#define EIGEN_MAKE_CWISE_COMP_R_OP(OP, R_OP, RCOMPARATOR) \
+template<typename OtherDerived> \
+EIGEN_STRONG_INLINE const CwiseBinaryOp<internal::scalar_cmp_op<Scalar, internal::cmp_##RCOMPARATOR>, const OtherDerived, const Derived> \
+OP(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \
+{ \
+  return CwiseBinaryOp<internal::scalar_cmp_op<Scalar, internal::cmp_##RCOMPARATOR>, const OtherDerived, const Derived>(other.derived(), derived()); \
+} \
+\
+inline const RCmp ## RCOMPARATOR ## ReturnType \
+OP(const Scalar& s) const { \
+  return Derived::PlainObject::Constant(rows(), cols(), s).R_OP(*this); \
+} \
+friend inline const Cmp ## RCOMPARATOR ## ReturnType \
+OP(const Scalar& s, const Derived& d) { \
+  return d.R_OP(Derived::PlainObject::Constant(d.rows(), d.cols(), s)); \
+}
+
+
+/** \returns an expression of the coefficient-wise \< operator of *this and \a other
+  *
+  * Example: \include Cwise_less.cpp
+  * Output: \verbinclude Cwise_less.out
+  *
+  * \sa all(), any(), operator>(), operator<=()
+  */
+EIGEN_MAKE_CWISE_COMP_OP(operator<, LT)
+
+/** \returns an expression of the coefficient-wise \<= operator of *this and \a other
+  *
+  * Example: \include Cwise_less_equal.cpp
+  * Output: \verbinclude Cwise_less_equal.out
+  *
+  * \sa all(), any(), operator>=(), operator<()
+  */
+EIGEN_MAKE_CWISE_COMP_OP(operator<=, LE)
+
+/** \returns an expression of the coefficient-wise \> operator of *this and \a other
+  *
+  * Example: \include Cwise_greater.cpp
+  * Output: \verbinclude Cwise_greater.out
+  *
+  * \sa all(), any(), operator>=(), operator<()
+  */
+EIGEN_MAKE_CWISE_COMP_R_OP(operator>, operator<, LT)
+
+/** \returns an expression of the coefficient-wise \>= operator of *this and \a other
+  *
+  * Example: \include Cwise_greater_equal.cpp
+  * Output: \verbinclude Cwise_greater_equal.out
+  *
+  * \sa all(), any(), operator>(), operator<=()
+  */
+EIGEN_MAKE_CWISE_COMP_R_OP(operator>=, operator<=, LE)
+
+/** \returns an expression of the coefficient-wise == operator of *this and \a other
+  *
+  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+  * isMuchSmallerThan().
+  *
+  * Example: \include Cwise_equal_equal.cpp
+  * Output: \verbinclude Cwise_equal_equal.out
+  *
+  * \sa all(), any(), isApprox(), isMuchSmallerThan()
+  */
+EIGEN_MAKE_CWISE_COMP_OP(operator==, EQ)
+
+/** \returns an expression of the coefficient-wise != operator of *this and \a other
+  *
+  * \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
+  * In order to check for equality between two vectors or matrices with floating-point coefficients, it is
+  * generally a far better idea to use a fuzzy comparison as provided by isApprox() and
+  * isMuchSmallerThan().
+  *
+  * Example: \include Cwise_not_equal.cpp
+  * Output: \verbinclude Cwise_not_equal.out
+  *
+  * \sa all(), any(), isApprox(), isMuchSmallerThan()
+  */
+EIGEN_MAKE_CWISE_COMP_OP(operator!=, NEQ)
+
+#undef EIGEN_MAKE_CWISE_COMP_OP
+#undef EIGEN_MAKE_CWISE_COMP_R_OP
+
+// scalar addition
+
+/** \returns an expression of \c *this with each coeff incremented by the constant \a scalar
+  *
+  * Example: \include Cwise_plus.cpp
+  * Output: \verbinclude Cwise_plus.out
+  *
+  * \sa operator+=(), operator-()
+  */
+inline const CwiseUnaryOp<internal::scalar_add_op<Scalar>, const Derived>
+operator+(const Scalar& scalar) const
+{
+  return CwiseUnaryOp<internal::scalar_add_op<Scalar>, const Derived>(derived(), internal::scalar_add_op<Scalar>(scalar));
+}
+
+friend inline const CwiseUnaryOp<internal::scalar_add_op<Scalar>, const Derived>
+operator+(const Scalar& scalar,const EIGEN_CURRENT_STORAGE_BASE_CLASS<Derived>& other)
+{
+  return other + scalar;
+}
+
+/** \returns an expression of \c *this with each coeff decremented by the constant \a scalar
+  *
+  * Example: \include Cwise_minus.cpp
+  * Output: \verbinclude Cwise_minus.out
+  *
+  * \sa operator+(), operator-=()
+  */
+inline const CwiseUnaryOp<internal::scalar_add_op<Scalar>, const Derived>
+operator-(const Scalar& scalar) const
+{
+  return *this + (-scalar);
+}
+
+friend inline const CwiseUnaryOp<internal::scalar_add_op<Scalar>, const CwiseUnaryOp<internal::scalar_opposite_op<Scalar>, const Derived> >
+operator-(const Scalar& scalar,const EIGEN_CURRENT_STORAGE_BASE_CLASS<Derived>& other)
+{
+  return (-other) + scalar;
+}
+
+/** \returns an expression of the coefficient-wise && operator of *this and \a other
+  *
+  * \warning this operator is for expression of bool only.
+  *
+  * Example: \include Cwise_boolean_and.cpp
+  * Output: \verbinclude Cwise_boolean_and.out
+  *
+  * \sa operator||(), select()
+  */
+template<typename OtherDerived>
+inline const CwiseBinaryOp<internal::scalar_boolean_and_op, const Derived, const OtherDerived>
+operator&&(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  EIGEN_STATIC_ASSERT((internal::is_same<bool,Scalar>::value && internal::is_same<bool,typename OtherDerived::Scalar>::value),
+                      THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL);
+  return CwiseBinaryOp<internal::scalar_boolean_and_op, const Derived, const OtherDerived>(derived(),other.derived());
+}
+
+/** \returns an expression of the coefficient-wise || operator of *this and \a other
+  *
+  * \warning this operator is for expression of bool only.
+  *
+  * Example: \include Cwise_boolean_or.cpp
+  * Output: \verbinclude Cwise_boolean_or.out
+  *
+  * \sa operator&&(), select()
+  */
+template<typename OtherDerived>
+inline const CwiseBinaryOp<internal::scalar_boolean_or_op, const Derived, const OtherDerived>
+operator||(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const
+{
+  EIGEN_STATIC_ASSERT((internal::is_same<bool,Scalar>::value && internal::is_same<bool,typename OtherDerived::Scalar>::value),
+                      THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL);
+  return CwiseBinaryOp<internal::scalar_boolean_or_op, const Derived, const OtherDerived>(derived(),other.derived());
+}
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/MatrixCwiseUnaryOps.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/MatrixCwiseUnaryOps.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/MatrixCwiseUnaryOps.h	(revision 2476)
@@ -0,0 +1,52 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// This file is a base class plugin containing matrix specifics coefficient wise functions.
+
+/** \returns an expression of the coefficient-wise absolute value of \c *this
+  *
+  * Example: \include MatrixBase_cwiseAbs.cpp
+  * Output: \verbinclude MatrixBase_cwiseAbs.out
+  *
+  * \sa cwiseAbs2()
+  */
+EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs_op<Scalar>, const Derived>
+cwiseAbs() const { return derived(); }
+
+/** \returns an expression of the coefficient-wise squared absolute value of \c *this
+  *
+  * Example: \include MatrixBase_cwiseAbs2.cpp
+  * Output: \verbinclude MatrixBase_cwiseAbs2.out
+  *
+  * \sa cwiseAbs()
+  */
+EIGEN_STRONG_INLINE const CwiseUnaryOp<internal::scalar_abs2_op<Scalar>, const Derived>
+cwiseAbs2() const { return derived(); }
+
+/** \returns an expression of the coefficient-wise square root of *this.
+  *
+  * Example: \include MatrixBase_cwiseSqrt.cpp
+  * Output: \verbinclude MatrixBase_cwiseSqrt.out
+  *
+  * \sa cwisePow(), cwiseSquare()
+  */
+inline const CwiseUnaryOp<internal::scalar_sqrt_op<Scalar>, const Derived>
+cwiseSqrt() const { return derived(); }
+
+/** \returns an expression of the coefficient-wise inverse of *this.
+  *
+  * Example: \include MatrixBase_cwiseInverse.cpp
+  * Output: \verbinclude MatrixBase_cwiseInverse.out
+  *
+  * \sa cwiseProduct()
+  */
+inline const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const Derived>
+cwiseInverse() const { return derived(); }
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/CommonCwiseUnaryOps.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/CommonCwiseUnaryOps.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/plugins/CommonCwiseUnaryOps.h	(revision 2476)
@@ -0,0 +1,172 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// This file is a base class plugin containing common coefficient wise functions.
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+
+/** \internal Represents a scalar multiple of an expression */
+typedef CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const Derived> ScalarMultipleReturnType;
+/** \internal Represents a quotient of an expression by a scalar*/
+typedef CwiseUnaryOp<internal::scalar_quotient1_op<Scalar>, const Derived> ScalarQuotient1ReturnType;
+/** \internal the return type of conjugate() */
+typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+                    const CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, const Derived>,
+                    const Derived&
+                  >::type ConjugateReturnType;
+/** \internal the return type of real() const */
+typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+                    const CwiseUnaryOp<internal::scalar_real_op<Scalar>, const Derived>,
+                    const Derived&
+                  >::type RealReturnType;
+/** \internal the return type of real() */
+typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+                    CwiseUnaryView<internal::scalar_real_ref_op<Scalar>, Derived>,
+                    Derived&
+                  >::type NonConstRealReturnType;
+/** \internal the return type of imag() const */
+typedef CwiseUnaryOp<internal::scalar_imag_op<Scalar>, const Derived> ImagReturnType;
+/** \internal the return type of imag() */
+typedef CwiseUnaryView<internal::scalar_imag_ref_op<Scalar>, Derived> NonConstImagReturnType;
+
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+/** \returns an expression of the opposite of \c *this
+  */
+inline const CwiseUnaryOp<internal::scalar_opposite_op<typename internal::traits<Derived>::Scalar>, const Derived>
+operator-() const { return derived(); }
+
+
+/** \returns an expression of \c *this scaled by the scalar factor \a scalar */
+inline const ScalarMultipleReturnType
+operator*(const Scalar& scalar) const
+{
+  return CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const Derived>
+    (derived(), internal::scalar_multiple_op<Scalar>(scalar));
+}
+
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+const ScalarMultipleReturnType operator*(const RealScalar& scalar) const;
+#endif
+
+/** \returns an expression of \c *this divided by the scalar value \a scalar */
+inline const CwiseUnaryOp<internal::scalar_quotient1_op<typename internal::traits<Derived>::Scalar>, const Derived>
+operator/(const Scalar& scalar) const
+{
+  return CwiseUnaryOp<internal::scalar_quotient1_op<Scalar>, const Derived>
+    (derived(), internal::scalar_quotient1_op<Scalar>(scalar));
+}
+
+/** Overloaded for efficient real matrix times complex scalar value */
+inline const CwiseUnaryOp<internal::scalar_multiple2_op<Scalar,std::complex<Scalar> >, const Derived>
+operator*(const std::complex<Scalar>& scalar) const
+{
+  return CwiseUnaryOp<internal::scalar_multiple2_op<Scalar,std::complex<Scalar> >, const Derived>
+    (*static_cast<const Derived*>(this), internal::scalar_multiple2_op<Scalar,std::complex<Scalar> >(scalar));
+}
+
+inline friend const ScalarMultipleReturnType
+operator*(const Scalar& scalar, const StorageBaseType& matrix)
+{ return matrix*scalar; }
+
+inline friend const CwiseUnaryOp<internal::scalar_multiple2_op<Scalar,std::complex<Scalar> >, const Derived>
+operator*(const std::complex<Scalar>& scalar, const StorageBaseType& matrix)
+{ return matrix*scalar; }
+
+/** \returns an expression of *this with the \a Scalar type casted to
+  * \a NewScalar.
+  *
+  * The template parameter \a NewScalar is the type we are casting the scalars to.
+  *
+  * \sa class CwiseUnaryOp
+  */
+template<typename NewType>
+typename internal::cast_return_type<Derived,const CwiseUnaryOp<internal::scalar_cast_op<typename internal::traits<Derived>::Scalar, NewType>, const Derived> >::type
+cast() const
+{
+  return derived();
+}
+
+/** \returns an expression of the complex conjugate of \c *this.
+  *
+  * \sa adjoint() */
+inline ConjugateReturnType
+conjugate() const
+{
+  return ConjugateReturnType(derived());
+}
+
+/** \returns a read-only expression of the real part of \c *this.
+  *
+  * \sa imag() */
+inline RealReturnType
+real() const { return derived(); }
+
+/** \returns an read-only expression of the imaginary part of \c *this.
+  *
+  * \sa real() */
+inline const ImagReturnType
+imag() const { return derived(); }
+
+/** \brief Apply a unary operator coefficient-wise
+  * \param[in]  func  Functor implementing the unary operator
+  * \tparam  CustomUnaryOp Type of \a func  
+  * \returns An expression of a custom coefficient-wise unary operator \a func of *this
+  *
+  * The function \c ptr_fun() from the C++ standard library can be used to make functors out of normal functions.
+  *
+  * Example:
+  * \include class_CwiseUnaryOp_ptrfun.cpp
+  * Output: \verbinclude class_CwiseUnaryOp_ptrfun.out
+  *
+  * Genuine functors allow for more possibilities, for instance it may contain a state.
+  *
+  * Example:
+  * \include class_CwiseUnaryOp.cpp
+  * Output: \verbinclude class_CwiseUnaryOp.out
+  *
+  * \sa class CwiseUnaryOp, class CwiseBinaryOp
+  */
+template<typename CustomUnaryOp>
+inline const CwiseUnaryOp<CustomUnaryOp, const Derived>
+unaryExpr(const CustomUnaryOp& func = CustomUnaryOp()) const
+{
+  return CwiseUnaryOp<CustomUnaryOp, const Derived>(derived(), func);
+}
+
+/** \returns an expression of a custom coefficient-wise unary operator \a func of *this
+  *
+  * The template parameter \a CustomUnaryOp is the type of the functor
+  * of the custom unary operator.
+  *
+  * Example:
+  * \include class_CwiseUnaryOp.cpp
+  * Output: \verbinclude class_CwiseUnaryOp.out
+  *
+  * \sa class CwiseUnaryOp, class CwiseBinaryOp
+  */
+template<typename CustomViewOp>
+inline const CwiseUnaryView<CustomViewOp, const Derived>
+unaryViewExpr(const CustomViewOp& func = CustomViewOp()) const
+{
+  return CwiseUnaryView<CustomViewOp, const Derived>(derived(), func);
+}
+
+/** \returns a non const expression of the real part of \c *this.
+  *
+  * \sa imag() */
+inline NonConstRealReturnType
+real() { return derived(); }
+
+/** \returns a non const expression of the imaginary part of \c *this.
+  *
+  * \sa real() */
+inline NonConstImagReturnType
+imag() { return derived(); }
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Cholesky/LLT_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Cholesky/LLT_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Cholesky/LLT_MKL.h	(revision 2476)
@@ -0,0 +1,102 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *     LLt decomposition based on LAPACKE_?potrf function.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_LLT_MKL_H
+#define EIGEN_LLT_MKL_H
+
+#include "Eigen/src/Core/util/MKL_support.h"
+#include <iostream>
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Scalar> struct mkl_llt;
+
+#define EIGEN_MKL_LLT(EIGTYPE, MKLTYPE, MKLPREFIX) \
+template<> struct mkl_llt<EIGTYPE> \
+{ \
+  template<typename MatrixType> \
+  static inline typename MatrixType::Index potrf(MatrixType& m, char uplo) \
+  { \
+    lapack_int matrix_order; \
+    lapack_int size, lda, info, StorageOrder; \
+    EIGTYPE* a; \
+    eigen_assert(m.rows()==m.cols()); \
+    /* Set up parameters for ?potrf */ \
+    size = m.rows(); \
+    StorageOrder = MatrixType::Flags&RowMajorBit?RowMajor:ColMajor; \
+    matrix_order = StorageOrder==RowMajor ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR; \
+    a = &(m.coeffRef(0,0)); \
+    lda = m.outerStride(); \
+\
+    info = LAPACKE_##MKLPREFIX##potrf( matrix_order, uplo, size, (MKLTYPE*)a, lda ); \
+    info = (info==0) ? -1 : info>0 ? info-1 : size; \
+    return info; \
+  } \
+}; \
+template<> struct llt_inplace<EIGTYPE, Lower> \
+{ \
+  template<typename MatrixType> \
+  static typename MatrixType::Index blocked(MatrixType& m) \
+  { \
+    return mkl_llt<EIGTYPE>::potrf(m, 'L'); \
+  } \
+  template<typename MatrixType, typename VectorType> \
+  static typename MatrixType::Index rankUpdate(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma) \
+  { return Eigen::internal::llt_rank_update_lower(mat, vec, sigma); } \
+}; \
+template<> struct llt_inplace<EIGTYPE, Upper> \
+{ \
+  template<typename MatrixType> \
+  static typename MatrixType::Index blocked(MatrixType& m) \
+  { \
+    return mkl_llt<EIGTYPE>::potrf(m, 'U'); \
+  } \
+  template<typename MatrixType, typename VectorType> \
+  static typename MatrixType::Index rankUpdate(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma) \
+  { \
+    Transpose<MatrixType> matt(mat); \
+    return llt_inplace<EIGTYPE, Lower>::rankUpdate(matt, vec.conjugate(), sigma); \
+  } \
+};
+
+EIGEN_MKL_LLT(double, double, d)
+EIGEN_MKL_LLT(float, float, s)
+EIGEN_MKL_LLT(dcomplex, MKL_Complex16, z)
+EIGEN_MKL_LLT(scomplex, MKL_Complex8, c)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_LLT_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Cholesky/LDLT.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Cholesky/LDLT.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Cholesky/LDLT.h	(revision 2476)
@@ -0,0 +1,611 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Keir Mierle <mierle@gmail.com>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2011 Timothy E. Holy <tim.holy@gmail.com >
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LDLT_H
+#define EIGEN_LDLT_H
+
+namespace Eigen { 
+
+namespace internal {
+  template<typename MatrixType, int UpLo> struct LDLT_Traits;
+
+  // PositiveSemiDef means positive semi-definite and non-zero; same for NegativeSemiDef
+  enum SignMatrix { PositiveSemiDef, NegativeSemiDef, ZeroSign, Indefinite };
+}
+
+/** \ingroup Cholesky_Module
+  *
+  * \class LDLT
+  *
+  * \brief Robust Cholesky decomposition of a matrix with pivoting
+  *
+  * \param MatrixType the type of the matrix of which to compute the LDL^T Cholesky decomposition
+  * \param UpLo the triangular part that will be used for the decompositon: Lower (default) or Upper.
+  *             The other triangular part won't be read.
+  *
+  * Perform a robust Cholesky decomposition of a positive semidefinite or negative semidefinite
+  * matrix \f$ A \f$ such that \f$ A =  P^TLDL^*P \f$, where P is a permutation matrix, L
+  * is lower triangular with a unit diagonal and D is a diagonal matrix.
+  *
+  * The decomposition uses pivoting to ensure stability, so that L will have
+  * zeros in the bottom right rank(A) - n submatrix. Avoiding the square root
+  * on D also stabilizes the computation.
+  *
+  * Remember that Cholesky decompositions are not rank-revealing. Also, do not use a Cholesky
+  * decomposition to determine whether a system of equations has a solution.
+  *
+  * \sa MatrixBase::ldlt(), class LLT
+  */
+template<typename _MatrixType, int _UpLo> class LDLT
+{
+  public:
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options & ~RowMajorBit, // these are the options for the TmpMatrixType, we need a ColMajor matrix here!
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+      UpLo = _UpLo
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Scalar, RowsAtCompileTime, 1, Options, MaxRowsAtCompileTime, 1> TmpMatrixType;
+
+    typedef Transpositions<RowsAtCompileTime, MaxRowsAtCompileTime> TranspositionType;
+    typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationType;
+
+    typedef internal::LDLT_Traits<MatrixType,UpLo> Traits;
+
+    /** \brief Default Constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via LDLT::compute(const MatrixType&).
+      */
+    LDLT() 
+      : m_matrix(), 
+        m_transpositions(), 
+        m_sign(internal::ZeroSign),
+        m_isInitialized(false) 
+    {}
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa LDLT()
+      */
+    LDLT(Index size)
+      : m_matrix(size, size),
+        m_transpositions(size),
+        m_temporary(size),
+        m_sign(internal::ZeroSign),
+        m_isInitialized(false)
+    {}
+
+    /** \brief Constructor with decomposition
+      *
+      * This calculates the decomposition for the input \a matrix.
+      * \sa LDLT(Index size)
+      */
+    LDLT(const MatrixType& matrix)
+      : m_matrix(matrix.rows(), matrix.cols()),
+        m_transpositions(matrix.rows()),
+        m_temporary(matrix.rows()),
+        m_sign(internal::ZeroSign),
+        m_isInitialized(false)
+    {
+      compute(matrix);
+    }
+
+    /** Clear any existing decomposition
+     * \sa rankUpdate(w,sigma)
+     */
+    void setZero()
+    {
+      m_isInitialized = false;
+    }
+
+    /** \returns a view of the upper triangular matrix U */
+    inline typename Traits::MatrixU matrixU() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return Traits::getU(m_matrix);
+    }
+
+    /** \returns a view of the lower triangular matrix L */
+    inline typename Traits::MatrixL matrixL() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return Traits::getL(m_matrix);
+    }
+
+    /** \returns the permutation matrix P as a transposition sequence.
+      */
+    inline const TranspositionType& transpositionsP() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return m_transpositions;
+    }
+
+    /** \returns the coefficients of the diagonal matrix D */
+    inline Diagonal<const MatrixType> vectorD() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return m_matrix.diagonal();
+    }
+
+    /** \returns true if the matrix is positive (semidefinite) */
+    inline bool isPositive() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return m_sign == internal::PositiveSemiDef || m_sign == internal::ZeroSign;
+    }
+    
+    #ifdef EIGEN2_SUPPORT
+    inline bool isPositiveDefinite() const
+    {
+      return isPositive();
+    }
+    #endif
+
+    /** \returns true if the matrix is negative (semidefinite) */
+    inline bool isNegative(void) const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return m_sign == internal::NegativeSemiDef || m_sign == internal::ZeroSign;
+    }
+
+    /** \returns a solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * This function also supports in-place solves using the syntax <tt>x = decompositionObject.solve(x)</tt> .
+      *
+      * \note_about_checking_solutions
+      *
+      * More precisely, this method solves \f$ A x = b \f$ using the decomposition \f$ A = P^T L D L^* P \f$
+      * by solving the systems \f$ P^T y_1 = b \f$, \f$ L y_2 = y_1 \f$, \f$ D y_3 = y_2 \f$, 
+      * \f$ L^* y_4 = y_3 \f$ and \f$ P x = y_4 \f$ in succession. If the matrix \f$ A \f$ is singular, then
+      * \f$ D \f$ will also be singular (all the other matrices are invertible). In that case, the
+      * least-square solution of \f$ D y_3 = y_2 \f$ is computed. This does not mean that this function
+      * computes the least-square solution of \f$ A x = b \f$ is \f$ A \f$ is singular.
+      *
+      * \sa MatrixBase::ldlt()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<LDLT, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      eigen_assert(m_matrix.rows()==b.rows()
+                && "LDLT::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<LDLT, Rhs>(*this, b.derived());
+    }
+
+    #ifdef EIGEN2_SUPPORT
+    template<typename OtherDerived, typename ResultType>
+    bool solve(const MatrixBase<OtherDerived>& b, ResultType *result) const
+    {
+      *result = this->solve(b);
+      return true;
+    }
+    #endif
+
+    template<typename Derived>
+    bool solveInPlace(MatrixBase<Derived> &bAndX) const;
+
+    LDLT& compute(const MatrixType& matrix);
+
+    template <typename Derived>
+    LDLT& rankUpdate(const MatrixBase<Derived>& w, const RealScalar& alpha=1);
+
+    /** \returns the internal LDLT decomposition matrix
+      *
+      * TODO: document the storage layout
+      */
+    inline const MatrixType& matrixLDLT() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return m_matrix;
+    }
+
+    MatrixType reconstructedMatrix() const;
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "LDLT is not initialized.");
+      return Success;
+    }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+
+    /** \internal
+      * Used to compute and store the Cholesky decomposition A = L D L^* = U^* D U.
+      * The strict upper part is used during the decomposition, the strict lower
+      * part correspond to the coefficients of L (its diagonal is equal to 1 and
+      * is not stored), and the diagonal entries correspond to D.
+      */
+    MatrixType m_matrix;
+    TranspositionType m_transpositions;
+    TmpMatrixType m_temporary;
+    internal::SignMatrix m_sign;
+    bool m_isInitialized;
+};
+
+namespace internal {
+
+template<int UpLo> struct ldlt_inplace;
+
+template<> struct ldlt_inplace<Lower>
+{
+  template<typename MatrixType, typename TranspositionType, typename Workspace>
+  static bool unblocked(MatrixType& mat, TranspositionType& transpositions, Workspace& temp, SignMatrix& sign)
+  {
+    using std::abs;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    eigen_assert(mat.rows()==mat.cols());
+    const Index size = mat.rows();
+
+    if (size <= 1)
+    {
+      transpositions.setIdentity();
+      if (numext::real(mat.coeff(0,0)) > 0) sign = PositiveSemiDef;
+      else if (numext::real(mat.coeff(0,0)) < 0) sign = NegativeSemiDef;
+      else sign = ZeroSign;
+      return true;
+    }
+
+    for (Index k = 0; k < size; ++k)
+    {
+      // Find largest diagonal element
+      Index index_of_biggest_in_corner;
+      mat.diagonal().tail(size-k).cwiseAbs().maxCoeff(&index_of_biggest_in_corner);
+      index_of_biggest_in_corner += k;
+
+      transpositions.coeffRef(k) = index_of_biggest_in_corner;
+      if(k != index_of_biggest_in_corner)
+      {
+        // apply the transposition while taking care to consider only
+        // the lower triangular part
+        Index s = size-index_of_biggest_in_corner-1; // trailing size after the biggest element
+        mat.row(k).head(k).swap(mat.row(index_of_biggest_in_corner).head(k));
+        mat.col(k).tail(s).swap(mat.col(index_of_biggest_in_corner).tail(s));
+        std::swap(mat.coeffRef(k,k),mat.coeffRef(index_of_biggest_in_corner,index_of_biggest_in_corner));
+        for(int i=k+1;i<index_of_biggest_in_corner;++i)
+        {
+          Scalar tmp = mat.coeffRef(i,k);
+          mat.coeffRef(i,k) = numext::conj(mat.coeffRef(index_of_biggest_in_corner,i));
+          mat.coeffRef(index_of_biggest_in_corner,i) = numext::conj(tmp);
+        }
+        if(NumTraits<Scalar>::IsComplex)
+          mat.coeffRef(index_of_biggest_in_corner,k) = numext::conj(mat.coeff(index_of_biggest_in_corner,k));
+      }
+
+      // partition the matrix:
+      //       A00 |  -  |  -
+      // lu  = A10 | A11 |  -
+      //       A20 | A21 | A22
+      Index rs = size - k - 1;
+      Block<MatrixType,Dynamic,1> A21(mat,k+1,k,rs,1);
+      Block<MatrixType,1,Dynamic> A10(mat,k,0,1,k);
+      Block<MatrixType,Dynamic,Dynamic> A20(mat,k+1,0,rs,k);
+
+      if(k>0)
+      {
+        temp.head(k) = mat.diagonal().real().head(k).asDiagonal() * A10.adjoint();
+        mat.coeffRef(k,k) -= (A10 * temp.head(k)).value();
+        if(rs>0)
+          A21.noalias() -= A20 * temp.head(k);
+      }
+      
+      // In some previous versions of Eigen (e.g., 3.2.1), the scaling was omitted if the pivot
+      // was smaller than the cutoff value. However, soince LDLT is not rank-revealing
+      // we should only make sure we do not introduce INF or NaN values.
+      // LAPACK also uses 0 as the cutoff value.
+      RealScalar realAkk = numext::real(mat.coeffRef(k,k));
+      if((rs>0) && (abs(realAkk) > RealScalar(0)))
+        A21 /= realAkk;
+
+      if (sign == PositiveSemiDef) {
+        if (realAkk < 0) sign = Indefinite;
+      } else if (sign == NegativeSemiDef) {
+        if (realAkk > 0) sign = Indefinite;
+      } else if (sign == ZeroSign) {
+        if (realAkk > 0) sign = PositiveSemiDef;
+        else if (realAkk < 0) sign = NegativeSemiDef;
+      }
+    }
+
+    return true;
+  }
+
+  // Reference for the algorithm: Davis and Hager, "Multiple Rank
+  // Modifications of a Sparse Cholesky Factorization" (Algorithm 1)
+  // Trivial rearrangements of their computations (Timothy E. Holy)
+  // allow their algorithm to work for rank-1 updates even if the
+  // original matrix is not of full rank.
+  // Here only rank-1 updates are implemented, to reduce the
+  // requirement for intermediate storage and improve accuracy
+  template<typename MatrixType, typename WDerived>
+  static bool updateInPlace(MatrixType& mat, MatrixBase<WDerived>& w, const typename MatrixType::RealScalar& sigma=1)
+  {
+    using numext::isfinite;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    const Index size = mat.rows();
+    eigen_assert(mat.cols() == size && w.size()==size);
+
+    RealScalar alpha = 1;
+
+    // Apply the update
+    for (Index j = 0; j < size; j++)
+    {
+      // Check for termination due to an original decomposition of low-rank
+      if (!(isfinite)(alpha))
+        break;
+
+      // Update the diagonal terms
+      RealScalar dj = numext::real(mat.coeff(j,j));
+      Scalar wj = w.coeff(j);
+      RealScalar swj2 = sigma*numext::abs2(wj);
+      RealScalar gamma = dj*alpha + swj2;
+
+      mat.coeffRef(j,j) += swj2/alpha;
+      alpha += swj2/dj;
+
+
+      // Update the terms of L
+      Index rs = size-j-1;
+      w.tail(rs) -= wj * mat.col(j).tail(rs);
+      if(gamma != 0)
+        mat.col(j).tail(rs) += (sigma*numext::conj(wj)/gamma)*w.tail(rs);
+    }
+    return true;
+  }
+
+  template<typename MatrixType, typename TranspositionType, typename Workspace, typename WType>
+  static bool update(MatrixType& mat, const TranspositionType& transpositions, Workspace& tmp, const WType& w, const typename MatrixType::RealScalar& sigma=1)
+  {
+    // Apply the permutation to the input w
+    tmp = transpositions * w;
+
+    return ldlt_inplace<Lower>::updateInPlace(mat,tmp,sigma);
+  }
+};
+
+template<> struct ldlt_inplace<Upper>
+{
+  template<typename MatrixType, typename TranspositionType, typename Workspace>
+  static EIGEN_STRONG_INLINE bool unblocked(MatrixType& mat, TranspositionType& transpositions, Workspace& temp, SignMatrix& sign)
+  {
+    Transpose<MatrixType> matt(mat);
+    return ldlt_inplace<Lower>::unblocked(matt, transpositions, temp, sign);
+  }
+
+  template<typename MatrixType, typename TranspositionType, typename Workspace, typename WType>
+  static EIGEN_STRONG_INLINE bool update(MatrixType& mat, TranspositionType& transpositions, Workspace& tmp, WType& w, const typename MatrixType::RealScalar& sigma=1)
+  {
+    Transpose<MatrixType> matt(mat);
+    return ldlt_inplace<Lower>::update(matt, transpositions, tmp, w.conjugate(), sigma);
+  }
+};
+
+template<typename MatrixType> struct LDLT_Traits<MatrixType,Lower>
+{
+  typedef const TriangularView<const MatrixType, UnitLower> MatrixL;
+  typedef const TriangularView<const typename MatrixType::AdjointReturnType, UnitUpper> MatrixU;
+  static inline MatrixL getL(const MatrixType& m) { return m; }
+  static inline MatrixU getU(const MatrixType& m) { return m.adjoint(); }
+};
+
+template<typename MatrixType> struct LDLT_Traits<MatrixType,Upper>
+{
+  typedef const TriangularView<const typename MatrixType::AdjointReturnType, UnitLower> MatrixL;
+  typedef const TriangularView<const MatrixType, UnitUpper> MatrixU;
+  static inline MatrixL getL(const MatrixType& m) { return m.adjoint(); }
+  static inline MatrixU getU(const MatrixType& m) { return m; }
+};
+
+} // end namespace internal
+
+/** Compute / recompute the LDLT decomposition A = L D L^* = U^* D U of \a matrix
+  */
+template<typename MatrixType, int _UpLo>
+LDLT<MatrixType,_UpLo>& LDLT<MatrixType,_UpLo>::compute(const MatrixType& a)
+{
+  check_template_parameters();
+  
+  eigen_assert(a.rows()==a.cols());
+  const Index size = a.rows();
+
+  m_matrix = a;
+
+  m_transpositions.resize(size);
+  m_isInitialized = false;
+  m_temporary.resize(size);
+  m_sign = internal::ZeroSign;
+
+  internal::ldlt_inplace<UpLo>::unblocked(m_matrix, m_transpositions, m_temporary, m_sign);
+
+  m_isInitialized = true;
+  return *this;
+}
+
+/** Update the LDLT decomposition:  given A = L D L^T, efficiently compute the decomposition of A + sigma w w^T.
+ * \param w a vector to be incorporated into the decomposition.
+ * \param sigma a scalar, +1 for updates and -1 for "downdates," which correspond to removing previously-added column vectors. Optional; default value is +1.
+ * \sa setZero()
+  */
+template<typename MatrixType, int _UpLo>
+template<typename Derived>
+LDLT<MatrixType,_UpLo>& LDLT<MatrixType,_UpLo>::rankUpdate(const MatrixBase<Derived>& w, const typename LDLT<MatrixType,_UpLo>::RealScalar& sigma)
+{
+  const Index size = w.rows();
+  if (m_isInitialized)
+  {
+    eigen_assert(m_matrix.rows()==size);
+  }
+  else
+  {    
+    m_matrix.resize(size,size);
+    m_matrix.setZero();
+    m_transpositions.resize(size);
+    for (Index i = 0; i < size; i++)
+      m_transpositions.coeffRef(i) = i;
+    m_temporary.resize(size);
+    m_sign = sigma>=0 ? internal::PositiveSemiDef : internal::NegativeSemiDef;
+    m_isInitialized = true;
+  }
+
+  internal::ldlt_inplace<UpLo>::update(m_matrix, m_transpositions, m_temporary, w, sigma);
+
+  return *this;
+}
+
+namespace internal {
+template<typename _MatrixType, int _UpLo, typename Rhs>
+struct solve_retval<LDLT<_MatrixType,_UpLo>, Rhs>
+  : solve_retval_base<LDLT<_MatrixType,_UpLo>, Rhs>
+{
+  typedef LDLT<_MatrixType,_UpLo> LDLTType;
+  EIGEN_MAKE_SOLVE_HELPERS(LDLTType,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    eigen_assert(rhs().rows() == dec().matrixLDLT().rows());
+    // dst = P b
+    dst = dec().transpositionsP() * rhs();
+
+    // dst = L^-1 (P b)
+    dec().matrixL().solveInPlace(dst);
+
+    // dst = D^-1 (L^-1 P b)
+    // more precisely, use pseudo-inverse of D (see bug 241)
+    using std::abs;
+    using std::max;
+    typedef typename LDLTType::MatrixType MatrixType;
+    typedef typename LDLTType::RealScalar RealScalar;
+    const typename Diagonal<const MatrixType>::RealReturnType vectorD(dec().vectorD());
+    // In some previous versions, tolerance was set to the max of 1/highest and the maximal diagonal entry * epsilon
+    // as motivated by LAPACK's xGELSS:
+    // RealScalar tolerance = (max)(vectorD.array().abs().maxCoeff() *NumTraits<RealScalar>::epsilon(),RealScalar(1) / NumTraits<RealScalar>::highest());
+    // However, LDLT is not rank revealing, and so adjusting the tolerance wrt to the highest
+    // diagonal element is not well justified and to numerical issues in some cases.
+    // Moreover, Lapack's xSYTRS routines use 0 for the tolerance.
+    RealScalar tolerance = RealScalar(1) / NumTraits<RealScalar>::highest();
+    
+    for (Index i = 0; i < vectorD.size(); ++i) {
+      if(abs(vectorD(i)) > tolerance)
+        dst.row(i) /= vectorD(i);
+      else
+        dst.row(i).setZero();
+    }
+
+    // dst = L^-T (D^-1 L^-1 P b)
+    dec().matrixU().solveInPlace(dst);
+
+    // dst = P^-1 (L^-T D^-1 L^-1 P b) = A^-1 b
+    dst = dec().transpositionsP().transpose() * dst;
+  }
+};
+}
+
+/** \internal use x = ldlt_object.solve(x);
+  *
+  * This is the \em in-place version of solve().
+  *
+  * \param bAndX represents both the right-hand side matrix b and result x.
+  *
+  * \returns true always! If you need to check for existence of solutions, use another decomposition like LU, QR, or SVD.
+  *
+  * This version avoids a copy when the right hand side matrix b is not
+  * needed anymore.
+  *
+  * \sa LDLT::solve(), MatrixBase::ldlt()
+  */
+template<typename MatrixType,int _UpLo>
+template<typename Derived>
+bool LDLT<MatrixType,_UpLo>::solveInPlace(MatrixBase<Derived> &bAndX) const
+{
+  eigen_assert(m_isInitialized && "LDLT is not initialized.");
+  eigen_assert(m_matrix.rows() == bAndX.rows());
+
+  bAndX = this->solve(bAndX);
+
+  return true;
+}
+
+/** \returns the matrix represented by the decomposition,
+ * i.e., it returns the product: P^T L D L^* P.
+ * This function is provided for debug purpose. */
+template<typename MatrixType, int _UpLo>
+MatrixType LDLT<MatrixType,_UpLo>::reconstructedMatrix() const
+{
+  eigen_assert(m_isInitialized && "LDLT is not initialized.");
+  const Index size = m_matrix.rows();
+  MatrixType res(size,size);
+
+  // P
+  res.setIdentity();
+  res = transpositionsP() * res;
+  // L^* P
+  res = matrixU() * res;
+  // D(L^*P)
+  res = vectorD().real().asDiagonal() * res;
+  // L(DL^*P)
+  res = matrixL() * res;
+  // P^T (LDL^*P)
+  res = transpositionsP().transpose() * res;
+
+  return res;
+}
+
+/** \cholesky_module
+  * \returns the Cholesky decomposition with full pivoting without square root of \c *this
+  */
+template<typename MatrixType, unsigned int UpLo>
+inline const LDLT<typename SelfAdjointView<MatrixType, UpLo>::PlainObject, UpLo>
+SelfAdjointView<MatrixType, UpLo>::ldlt() const
+{
+  return LDLT<PlainObject,UpLo>(m_matrix);
+}
+
+/** \cholesky_module
+  * \returns the Cholesky decomposition with full pivoting without square root of \c *this
+  */
+template<typename Derived>
+inline const LDLT<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::ldlt() const
+{
+  return LDLT<PlainObject>(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_LDLT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Cholesky/LLT.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Cholesky/LLT.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Cholesky/LLT.h	(revision 2476)
@@ -0,0 +1,498 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LLT_H
+#define EIGEN_LLT_H
+
+namespace Eigen { 
+
+namespace internal{
+template<typename MatrixType, int UpLo> struct LLT_Traits;
+}
+
+/** \ingroup Cholesky_Module
+  *
+  * \class LLT
+  *
+  * \brief Standard Cholesky decomposition (LL^T) of a matrix and associated features
+  *
+  * \param MatrixType the type of the matrix of which we are computing the LL^T Cholesky decomposition
+  * \param UpLo the triangular part that will be used for the decompositon: Lower (default) or Upper.
+  *             The other triangular part won't be read.
+  *
+  * This class performs a LL^T Cholesky decomposition of a symmetric, positive definite
+  * matrix A such that A = LL^* = U^*U, where L is lower triangular.
+  *
+  * While the Cholesky decomposition is particularly useful to solve selfadjoint problems like  D^*D x = b,
+  * for that purpose, we recommend the Cholesky decomposition without square root which is more stable
+  * and even faster. Nevertheless, this standard Cholesky decomposition remains useful in many other
+  * situations like generalised eigen problems with hermitian matrices.
+  *
+  * Remember that Cholesky decompositions are not rank-revealing. This LLT decomposition is only stable on positive definite matrices,
+  * use LDLT instead for the semidefinite case. Also, do not use a Cholesky decomposition to determine whether a system of equations
+  * has a solution.
+  *
+  * Example: \include LLT_example.cpp
+  * Output: \verbinclude LLT_example.out
+  *    
+  * \sa MatrixBase::llt(), class LDLT
+  */
+ /* HEY THIS DOX IS DISABLED BECAUSE THERE's A BUG EITHER HERE OR IN LDLT ABOUT THAT (OR BOTH)
+  * Note that during the decomposition, only the upper triangular part of A is considered. Therefore,
+  * the strict lower part does not have to store correct values.
+  */
+template<typename _MatrixType, int _UpLo> class LLT
+{
+  public:
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    enum {
+      PacketSize = internal::packet_traits<Scalar>::size,
+      AlignmentMask = int(PacketSize)-1,
+      UpLo = _UpLo
+    };
+
+    typedef internal::LLT_Traits<MatrixType,UpLo> Traits;
+
+    /**
+      * \brief Default Constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via LLT::compute(const MatrixType&).
+      */
+    LLT() : m_matrix(), m_isInitialized(false) {}
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa LLT()
+      */
+    LLT(Index size) : m_matrix(size, size),
+                    m_isInitialized(false) {}
+
+    LLT(const MatrixType& matrix)
+      : m_matrix(matrix.rows(), matrix.cols()),
+        m_isInitialized(false)
+    {
+      compute(matrix);
+    }
+
+    /** \returns a view of the upper triangular matrix U */
+    inline typename Traits::MatrixU matrixU() const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      return Traits::getU(m_matrix);
+    }
+
+    /** \returns a view of the lower triangular matrix L */
+    inline typename Traits::MatrixL matrixL() const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      return Traits::getL(m_matrix);
+    }
+
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * Since this LLT class assumes anyway that the matrix A is invertible, the solution
+      * theoretically exists and is unique regardless of b.
+      *
+      * Example: \include LLT_solve.cpp
+      * Output: \verbinclude LLT_solve.out
+      *
+      * \sa solveInPlace(), MatrixBase::llt()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<LLT, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      eigen_assert(m_matrix.rows()==b.rows()
+                && "LLT::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<LLT, Rhs>(*this, b.derived());
+    }
+
+    #ifdef EIGEN2_SUPPORT
+    template<typename OtherDerived, typename ResultType>
+    bool solve(const MatrixBase<OtherDerived>& b, ResultType *result) const
+    {
+      *result = this->solve(b);
+      return true;
+    }
+    
+    bool isPositiveDefinite() const { return true; }
+    #endif
+
+    template<typename Derived>
+    void solveInPlace(MatrixBase<Derived> &bAndX) const;
+
+    LLT& compute(const MatrixType& matrix);
+
+    /** \returns the LLT decomposition matrix
+      *
+      * TODO: document the storage layout
+      */
+    inline const MatrixType& matrixLLT() const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      return m_matrix;
+    }
+
+    MatrixType reconstructedMatrix() const;
+
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      return m_info;
+    }
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+
+    template<typename VectorType>
+    LLT rankUpdate(const VectorType& vec, const RealScalar& sigma = 1);
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    /** \internal
+      * Used to compute and store L
+      * The strict upper part is not used and even not initialized.
+      */
+    MatrixType m_matrix;
+    bool m_isInitialized;
+    ComputationInfo m_info;
+};
+
+namespace internal {
+
+template<typename Scalar, int UpLo> struct llt_inplace;
+
+template<typename MatrixType, typename VectorType>
+static typename MatrixType::Index llt_rank_update_lower(MatrixType& mat, const VectorType& vec, const typename MatrixType::RealScalar& sigma)
+{
+  using std::sqrt;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::RealScalar RealScalar;
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::ColXpr ColXpr;
+  typedef typename internal::remove_all<ColXpr>::type ColXprCleaned;
+  typedef typename ColXprCleaned::SegmentReturnType ColXprSegment;
+  typedef Matrix<Scalar,Dynamic,1> TempVectorType;
+  typedef typename TempVectorType::SegmentReturnType TempVecSegment;
+
+  Index n = mat.cols();
+  eigen_assert(mat.rows()==n && vec.size()==n);
+
+  TempVectorType temp;
+
+  if(sigma>0)
+  {
+    // This version is based on Givens rotations.
+    // It is faster than the other one below, but only works for updates,
+    // i.e., for sigma > 0
+    temp = sqrt(sigma) * vec;
+
+    for(Index i=0; i<n; ++i)
+    {
+      JacobiRotation<Scalar> g;
+      g.makeGivens(mat(i,i), -temp(i), &mat(i,i));
+
+      Index rs = n-i-1;
+      if(rs>0)
+      {
+        ColXprSegment x(mat.col(i).tail(rs));
+        TempVecSegment y(temp.tail(rs));
+        apply_rotation_in_the_plane(x, y, g);
+      }
+    }
+  }
+  else
+  {
+    temp = vec;
+    RealScalar beta = 1;
+    for(Index j=0; j<n; ++j)
+    {
+      RealScalar Ljj = numext::real(mat.coeff(j,j));
+      RealScalar dj = numext::abs2(Ljj);
+      Scalar wj = temp.coeff(j);
+      RealScalar swj2 = sigma*numext::abs2(wj);
+      RealScalar gamma = dj*beta + swj2;
+
+      RealScalar x = dj + swj2/beta;
+      if (x<=RealScalar(0))
+        return j;
+      RealScalar nLjj = sqrt(x);
+      mat.coeffRef(j,j) = nLjj;
+      beta += swj2/dj;
+
+      // Update the terms of L
+      Index rs = n-j-1;
+      if(rs)
+      {
+        temp.tail(rs) -= (wj/Ljj) * mat.col(j).tail(rs);
+        if(gamma != 0)
+          mat.col(j).tail(rs) = (nLjj/Ljj) * mat.col(j).tail(rs) + (nLjj * sigma*numext::conj(wj)/gamma)*temp.tail(rs);
+      }
+    }
+  }
+  return -1;
+}
+
+template<typename Scalar> struct llt_inplace<Scalar, Lower>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  template<typename MatrixType>
+  static typename MatrixType::Index unblocked(MatrixType& mat)
+  {
+    using std::sqrt;
+    typedef typename MatrixType::Index Index;
+    
+    eigen_assert(mat.rows()==mat.cols());
+    const Index size = mat.rows();
+    for(Index k = 0; k < size; ++k)
+    {
+      Index rs = size-k-1; // remaining size
+
+      Block<MatrixType,Dynamic,1> A21(mat,k+1,k,rs,1);
+      Block<MatrixType,1,Dynamic> A10(mat,k,0,1,k);
+      Block<MatrixType,Dynamic,Dynamic> A20(mat,k+1,0,rs,k);
+
+      RealScalar x = numext::real(mat.coeff(k,k));
+      if (k>0) x -= A10.squaredNorm();
+      if (x<=RealScalar(0))
+        return k;
+      mat.coeffRef(k,k) = x = sqrt(x);
+      if (k>0 && rs>0) A21.noalias() -= A20 * A10.adjoint();
+      if (rs>0) A21 /= x;
+    }
+    return -1;
+  }
+
+  template<typename MatrixType>
+  static typename MatrixType::Index blocked(MatrixType& m)
+  {
+    typedef typename MatrixType::Index Index;
+    eigen_assert(m.rows()==m.cols());
+    Index size = m.rows();
+    if(size<32)
+      return unblocked(m);
+
+    Index blockSize = size/8;
+    blockSize = (blockSize/16)*16;
+    blockSize = (std::min)((std::max)(blockSize,Index(8)), Index(128));
+
+    for (Index k=0; k<size; k+=blockSize)
+    {
+      // partition the matrix:
+      //       A00 |  -  |  -
+      // lu  = A10 | A11 |  -
+      //       A20 | A21 | A22
+      Index bs = (std::min)(blockSize, size-k);
+      Index rs = size - k - bs;
+      Block<MatrixType,Dynamic,Dynamic> A11(m,k,   k,   bs,bs);
+      Block<MatrixType,Dynamic,Dynamic> A21(m,k+bs,k,   rs,bs);
+      Block<MatrixType,Dynamic,Dynamic> A22(m,k+bs,k+bs,rs,rs);
+
+      Index ret;
+      if((ret=unblocked(A11))>=0) return k+ret;
+      if(rs>0) A11.adjoint().template triangularView<Upper>().template solveInPlace<OnTheRight>(A21);
+      if(rs>0) A22.template selfadjointView<Lower>().rankUpdate(A21,-1); // bottleneck
+    }
+    return -1;
+  }
+
+  template<typename MatrixType, typename VectorType>
+  static typename MatrixType::Index rankUpdate(MatrixType& mat, const VectorType& vec, const RealScalar& sigma)
+  {
+    return Eigen::internal::llt_rank_update_lower(mat, vec, sigma);
+  }
+};
+  
+template<typename Scalar> struct llt_inplace<Scalar, Upper>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+
+  template<typename MatrixType>
+  static EIGEN_STRONG_INLINE typename MatrixType::Index unblocked(MatrixType& mat)
+  {
+    Transpose<MatrixType> matt(mat);
+    return llt_inplace<Scalar, Lower>::unblocked(matt);
+  }
+  template<typename MatrixType>
+  static EIGEN_STRONG_INLINE typename MatrixType::Index blocked(MatrixType& mat)
+  {
+    Transpose<MatrixType> matt(mat);
+    return llt_inplace<Scalar, Lower>::blocked(matt);
+  }
+  template<typename MatrixType, typename VectorType>
+  static typename MatrixType::Index rankUpdate(MatrixType& mat, const VectorType& vec, const RealScalar& sigma)
+  {
+    Transpose<MatrixType> matt(mat);
+    return llt_inplace<Scalar, Lower>::rankUpdate(matt, vec.conjugate(), sigma);
+  }
+};
+
+template<typename MatrixType> struct LLT_Traits<MatrixType,Lower>
+{
+  typedef const TriangularView<const MatrixType, Lower> MatrixL;
+  typedef const TriangularView<const typename MatrixType::AdjointReturnType, Upper> MatrixU;
+  static inline MatrixL getL(const MatrixType& m) { return m; }
+  static inline MatrixU getU(const MatrixType& m) { return m.adjoint(); }
+  static bool inplace_decomposition(MatrixType& m)
+  { return llt_inplace<typename MatrixType::Scalar, Lower>::blocked(m)==-1; }
+};
+
+template<typename MatrixType> struct LLT_Traits<MatrixType,Upper>
+{
+  typedef const TriangularView<const typename MatrixType::AdjointReturnType, Lower> MatrixL;
+  typedef const TriangularView<const MatrixType, Upper> MatrixU;
+  static inline MatrixL getL(const MatrixType& m) { return m.adjoint(); }
+  static inline MatrixU getU(const MatrixType& m) { return m; }
+  static bool inplace_decomposition(MatrixType& m)
+  { return llt_inplace<typename MatrixType::Scalar, Upper>::blocked(m)==-1; }
+};
+
+} // end namespace internal
+
+/** Computes / recomputes the Cholesky decomposition A = LL^* = U^*U of \a matrix
+  *
+  * \returns a reference to *this
+  *
+  * Example: \include TutorialLinAlgComputeTwice.cpp
+  * Output: \verbinclude TutorialLinAlgComputeTwice.out
+  */
+template<typename MatrixType, int _UpLo>
+LLT<MatrixType,_UpLo>& LLT<MatrixType,_UpLo>::compute(const MatrixType& a)
+{
+  check_template_parameters();
+  
+  eigen_assert(a.rows()==a.cols());
+  const Index size = a.rows();
+  m_matrix.resize(size, size);
+  m_matrix = a;
+
+  m_isInitialized = true;
+  bool ok = Traits::inplace_decomposition(m_matrix);
+  m_info = ok ? Success : NumericalIssue;
+
+  return *this;
+}
+
+/** Performs a rank one update (or dowdate) of the current decomposition.
+  * If A = LL^* before the rank one update,
+  * then after it we have LL^* = A + sigma * v v^* where \a v must be a vector
+  * of same dimension.
+  */
+template<typename _MatrixType, int _UpLo>
+template<typename VectorType>
+LLT<_MatrixType,_UpLo> LLT<_MatrixType,_UpLo>::rankUpdate(const VectorType& v, const RealScalar& sigma)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(VectorType);
+  eigen_assert(v.size()==m_matrix.cols());
+  eigen_assert(m_isInitialized);
+  if(internal::llt_inplace<typename MatrixType::Scalar, UpLo>::rankUpdate(m_matrix,v,sigma)>=0)
+    m_info = NumericalIssue;
+  else
+    m_info = Success;
+
+  return *this;
+}
+    
+namespace internal {
+template<typename _MatrixType, int UpLo, typename Rhs>
+struct solve_retval<LLT<_MatrixType, UpLo>, Rhs>
+  : solve_retval_base<LLT<_MatrixType, UpLo>, Rhs>
+{
+  typedef LLT<_MatrixType,UpLo> LLTType;
+  EIGEN_MAKE_SOLVE_HELPERS(LLTType,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dst = rhs();
+    dec().solveInPlace(dst);
+  }
+};
+}
+
+/** \internal use x = llt_object.solve(x);
+  * 
+  * This is the \em in-place version of solve().
+  *
+  * \param bAndX represents both the right-hand side matrix b and result x.
+  *
+  * \returns true always! If you need to check for existence of solutions, use another decomposition like LU, QR, or SVD.
+  *
+  * This version avoids a copy when the right hand side matrix b is not
+  * needed anymore.
+  *
+  * \sa LLT::solve(), MatrixBase::llt()
+  */
+template<typename MatrixType, int _UpLo>
+template<typename Derived>
+void LLT<MatrixType,_UpLo>::solveInPlace(MatrixBase<Derived> &bAndX) const
+{
+  eigen_assert(m_isInitialized && "LLT is not initialized.");
+  eigen_assert(m_matrix.rows()==bAndX.rows());
+  matrixL().solveInPlace(bAndX);
+  matrixU().solveInPlace(bAndX);
+}
+
+/** \returns the matrix represented by the decomposition,
+ * i.e., it returns the product: L L^*.
+ * This function is provided for debug purpose. */
+template<typename MatrixType, int _UpLo>
+MatrixType LLT<MatrixType,_UpLo>::reconstructedMatrix() const
+{
+  eigen_assert(m_isInitialized && "LLT is not initialized.");
+  return matrixL() * matrixL().adjoint().toDenseMatrix();
+}
+
+/** \cholesky_module
+  * \returns the LLT decomposition of \c *this
+  */
+template<typename Derived>
+inline const LLT<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::llt() const
+{
+  return LLT<PlainObject>(derived());
+}
+
+/** \cholesky_module
+  * \returns the LLT decomposition of \c *this
+  */
+template<typename MatrixType, unsigned int UpLo>
+inline const LLT<typename SelfAdjointView<MatrixType, UpLo>::PlainObject, UpLo>
+SelfAdjointView<MatrixType, UpLo>::llt() const
+{
+  return LLT<PlainObject,UpLo>(m_matrix);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_LLT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Householder/Householder.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Householder/Householder.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Householder/Householder.h	(revision 2476)
@@ -0,0 +1,172 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HOUSEHOLDER_H
+#define EIGEN_HOUSEHOLDER_H
+
+namespace Eigen { 
+
+namespace internal {
+template<int n> struct decrement_size
+{
+  enum {
+    ret = n==Dynamic ? n : n-1
+  };
+};
+}
+
+/** Computes the elementary reflector H such that:
+  * \f$ H *this = [ beta 0 ... 0]^T \f$
+  * where the transformation H is:
+  * \f$ H = I - tau v v^*\f$
+  * and the vector v is:
+  * \f$ v^T = [1 essential^T] \f$
+  *
+  * The essential part of the vector \c v is stored in *this.
+  * 
+  * On output:
+  * \param tau the scaling factor of the Householder transformation
+  * \param beta the result of H * \c *this
+  *
+  * \sa MatrixBase::makeHouseholder(), MatrixBase::applyHouseholderOnTheLeft(),
+  *     MatrixBase::applyHouseholderOnTheRight()
+  */
+template<typename Derived>
+void MatrixBase<Derived>::makeHouseholderInPlace(Scalar& tau, RealScalar& beta)
+{
+  VectorBlock<Derived, internal::decrement_size<Base::SizeAtCompileTime>::ret> essentialPart(derived(), 1, size()-1);
+  makeHouseholder(essentialPart, tau, beta);
+}
+
+/** Computes the elementary reflector H such that:
+  * \f$ H *this = [ beta 0 ... 0]^T \f$
+  * where the transformation H is:
+  * \f$ H = I - tau v v^*\f$
+  * and the vector v is:
+  * \f$ v^T = [1 essential^T] \f$
+  *
+  * On output:
+  * \param essential the essential part of the vector \c v
+  * \param tau the scaling factor of the Householder transformation
+  * \param beta the result of H * \c *this
+  *
+  * \sa MatrixBase::makeHouseholderInPlace(), MatrixBase::applyHouseholderOnTheLeft(),
+  *     MatrixBase::applyHouseholderOnTheRight()
+  */
+template<typename Derived>
+template<typename EssentialPart>
+void MatrixBase<Derived>::makeHouseholder(
+  EssentialPart& essential,
+  Scalar& tau,
+  RealScalar& beta) const
+{
+  using std::sqrt;
+  using numext::conj;
+  
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(EssentialPart)
+  VectorBlock<const Derived, EssentialPart::SizeAtCompileTime> tail(derived(), 1, size()-1);
+  
+  RealScalar tailSqNorm = size()==1 ? RealScalar(0) : tail.squaredNorm();
+  Scalar c0 = coeff(0);
+  const RealScalar tol = (std::numeric_limits<RealScalar>::min)();
+
+  if(tailSqNorm <= tol && numext::abs2(numext::imag(c0))<=tol)
+  {
+    tau = RealScalar(0);
+    beta = numext::real(c0);
+    essential.setZero();
+  }
+  else
+  {
+    beta = sqrt(numext::abs2(c0) + tailSqNorm);
+    if (numext::real(c0)>=RealScalar(0))
+      beta = -beta;
+    essential = tail / (c0 - beta);
+    tau = conj((beta - c0) / beta);
+  }
+}
+
+/** Apply the elementary reflector H given by
+  * \f$ H = I - tau v v^*\f$
+  * with
+  * \f$ v^T = [1 essential^T] \f$
+  * from the left to a vector or matrix.
+  *
+  * On input:
+  * \param essential the essential part of the vector \c v
+  * \param tau the scaling factor of the Householder transformation
+  * \param workspace a pointer to working space with at least
+  *                  this->cols() * essential.size() entries
+  *
+  * \sa MatrixBase::makeHouseholder(), MatrixBase::makeHouseholderInPlace(), 
+  *     MatrixBase::applyHouseholderOnTheRight()
+  */
+template<typename Derived>
+template<typename EssentialPart>
+void MatrixBase<Derived>::applyHouseholderOnTheLeft(
+  const EssentialPart& essential,
+  const Scalar& tau,
+  Scalar* workspace)
+{
+  if(rows() == 1)
+  {
+    *this *= Scalar(1)-tau;
+  }
+  else
+  {
+    Map<typename internal::plain_row_type<PlainObject>::type> tmp(workspace,cols());
+    Block<Derived, EssentialPart::SizeAtCompileTime, Derived::ColsAtCompileTime> bottom(derived(), 1, 0, rows()-1, cols());
+    tmp.noalias() = essential.adjoint() * bottom;
+    tmp += this->row(0);
+    this->row(0) -= tau * tmp;
+    bottom.noalias() -= tau * essential * tmp;
+  }
+}
+
+/** Apply the elementary reflector H given by
+  * \f$ H = I - tau v v^*\f$
+  * with
+  * \f$ v^T = [1 essential^T] \f$
+  * from the right to a vector or matrix.
+  *
+  * On input:
+  * \param essential the essential part of the vector \c v
+  * \param tau the scaling factor of the Householder transformation
+  * \param workspace a pointer to working space with at least
+  *                  this->cols() * essential.size() entries
+  *
+  * \sa MatrixBase::makeHouseholder(), MatrixBase::makeHouseholderInPlace(), 
+  *     MatrixBase::applyHouseholderOnTheLeft()
+  */
+template<typename Derived>
+template<typename EssentialPart>
+void MatrixBase<Derived>::applyHouseholderOnTheRight(
+  const EssentialPart& essential,
+  const Scalar& tau,
+  Scalar* workspace)
+{
+  if(cols() == 1)
+  {
+    *this *= Scalar(1)-tau;
+  }
+  else
+  {
+    Map<typename internal::plain_col_type<PlainObject>::type> tmp(workspace,rows());
+    Block<Derived, Derived::RowsAtCompileTime, EssentialPart::SizeAtCompileTime> right(derived(), 0, 1, rows(), cols()-1);
+    tmp.noalias() = right * essential.conjugate();
+    tmp += this->col(0);
+    this->col(0) -= tau * tmp;
+    right.noalias() -= tau * tmp * essential.transpose();
+  }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_HOUSEHOLDER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Householder/HouseholderSequence.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Householder/HouseholderSequence.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Householder/HouseholderSequence.h	(revision 2476)
@@ -0,0 +1,442 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HOUSEHOLDER_SEQUENCE_H
+#define EIGEN_HOUSEHOLDER_SEQUENCE_H
+
+namespace Eigen { 
+
+/** \ingroup Householder_Module
+  * \householder_module
+  * \class HouseholderSequence
+  * \brief Sequence of Householder reflections acting on subspaces with decreasing size
+  * \tparam VectorsType type of matrix containing the Householder vectors
+  * \tparam CoeffsType  type of vector containing the Householder coefficients
+  * \tparam Side        either OnTheLeft (the default) or OnTheRight
+  *
+  * This class represents a product sequence of Householder reflections where the first Householder reflection
+  * acts on the whole space, the second Householder reflection leaves the one-dimensional subspace spanned by
+  * the first unit vector invariant, the third Householder reflection leaves the two-dimensional subspace
+  * spanned by the first two unit vectors invariant, and so on up to the last reflection which leaves all but
+  * one dimensions invariant and acts only on the last dimension. Such sequences of Householder reflections
+  * are used in several algorithms to zero out certain parts of a matrix. Indeed, the methods
+  * HessenbergDecomposition::matrixQ(), Tridiagonalization::matrixQ(), HouseholderQR::householderQ(),
+  * and ColPivHouseholderQR::householderQ() all return a %HouseholderSequence.
+  *
+  * More precisely, the class %HouseholderSequence represents an \f$ n \times n \f$ matrix \f$ H \f$ of the
+  * form \f$ H = \prod_{i=0}^{n-1} H_i \f$ where the i-th Householder reflection is \f$ H_i = I - h_i v_i
+  * v_i^* \f$. The i-th Householder coefficient \f$ h_i \f$ is a scalar and the i-th Householder vector \f$
+  * v_i \f$ is a vector of the form
+  * \f[ 
+  * v_i = [\underbrace{0, \ldots, 0}_{i-1\mbox{ zeros}}, 1, \underbrace{*, \ldots,*}_{n-i\mbox{ arbitrary entries}} ]. 
+  * \f]
+  * The last \f$ n-i \f$ entries of \f$ v_i \f$ are called the essential part of the Householder vector.
+  *
+  * Typical usages are listed below, where H is a HouseholderSequence:
+  * \code
+  * A.applyOnTheRight(H);             // A = A * H
+  * A.applyOnTheLeft(H);              // A = H * A
+  * A.applyOnTheRight(H.adjoint());   // A = A * H^*
+  * A.applyOnTheLeft(H.adjoint());    // A = H^* * A
+  * MatrixXd Q = H;                   // conversion to a dense matrix
+  * \endcode
+  * In addition to the adjoint, you can also apply the inverse (=adjoint), the transpose, and the conjugate operators.
+  *
+  * See the documentation for HouseholderSequence(const VectorsType&, const CoeffsType&) for an example.
+  *
+  * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+  */
+
+namespace internal {
+
+template<typename VectorsType, typename CoeffsType, int Side>
+struct traits<HouseholderSequence<VectorsType,CoeffsType,Side> >
+{
+  typedef typename VectorsType::Scalar Scalar;
+  typedef typename VectorsType::Index Index;
+  typedef typename VectorsType::StorageKind StorageKind;
+  enum {
+    RowsAtCompileTime = Side==OnTheLeft ? traits<VectorsType>::RowsAtCompileTime
+                                        : traits<VectorsType>::ColsAtCompileTime,
+    ColsAtCompileTime = RowsAtCompileTime,
+    MaxRowsAtCompileTime = Side==OnTheLeft ? traits<VectorsType>::MaxRowsAtCompileTime
+                                           : traits<VectorsType>::MaxColsAtCompileTime,
+    MaxColsAtCompileTime = MaxRowsAtCompileTime,
+    Flags = 0
+  };
+};
+
+template<typename VectorsType, typename CoeffsType, int Side>
+struct hseq_side_dependent_impl
+{
+  typedef Block<const VectorsType, Dynamic, 1> EssentialVectorType;
+  typedef HouseholderSequence<VectorsType, CoeffsType, OnTheLeft> HouseholderSequenceType;
+  typedef typename VectorsType::Index Index;
+  static inline const EssentialVectorType essentialVector(const HouseholderSequenceType& h, Index k)
+  {
+    Index start = k+1+h.m_shift;
+    return Block<const VectorsType,Dynamic,1>(h.m_vectors, start, k, h.rows()-start, 1);
+  }
+};
+
+template<typename VectorsType, typename CoeffsType>
+struct hseq_side_dependent_impl<VectorsType, CoeffsType, OnTheRight>
+{
+  typedef Transpose<Block<const VectorsType, 1, Dynamic> > EssentialVectorType;
+  typedef HouseholderSequence<VectorsType, CoeffsType, OnTheRight> HouseholderSequenceType;
+  typedef typename VectorsType::Index Index;
+  static inline const EssentialVectorType essentialVector(const HouseholderSequenceType& h, Index k)
+  {
+    Index start = k+1+h.m_shift;
+    return Block<const VectorsType,1,Dynamic>(h.m_vectors, k, start, 1, h.rows()-start).transpose();
+  }
+};
+
+template<typename OtherScalarType, typename MatrixType> struct matrix_type_times_scalar_type
+{
+  typedef typename scalar_product_traits<OtherScalarType, typename MatrixType::Scalar>::ReturnType
+    ResultScalar;
+  typedef Matrix<ResultScalar, MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime,
+                 0, MatrixType::MaxRowsAtCompileTime, MatrixType::MaxColsAtCompileTime> Type;
+};
+
+} // end namespace internal
+
+template<typename VectorsType, typename CoeffsType, int Side> class HouseholderSequence
+  : public EigenBase<HouseholderSequence<VectorsType,CoeffsType,Side> >
+{
+    typedef typename internal::hseq_side_dependent_impl<VectorsType,CoeffsType,Side>::EssentialVectorType EssentialVectorType;
+  
+  public:
+    enum {
+      RowsAtCompileTime = internal::traits<HouseholderSequence>::RowsAtCompileTime,
+      ColsAtCompileTime = internal::traits<HouseholderSequence>::ColsAtCompileTime,
+      MaxRowsAtCompileTime = internal::traits<HouseholderSequence>::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = internal::traits<HouseholderSequence>::MaxColsAtCompileTime
+    };
+    typedef typename internal::traits<HouseholderSequence>::Scalar Scalar;
+    typedef typename VectorsType::Index Index;
+
+    typedef HouseholderSequence<
+      typename internal::conditional<NumTraits<Scalar>::IsComplex,
+        typename internal::remove_all<typename VectorsType::ConjugateReturnType>::type,
+        VectorsType>::type,
+      typename internal::conditional<NumTraits<Scalar>::IsComplex,
+        typename internal::remove_all<typename CoeffsType::ConjugateReturnType>::type,
+        CoeffsType>::type,
+      Side
+    > ConjugateReturnType;
+
+    /** \brief Constructor.
+      * \param[in]  v      %Matrix containing the essential parts of the Householder vectors
+      * \param[in]  h      Vector containing the Householder coefficients
+      *
+      * Constructs the Householder sequence with coefficients given by \p h and vectors given by \p v. The
+      * i-th Householder coefficient \f$ h_i \f$ is given by \p h(i) and the essential part of the i-th
+      * Householder vector \f$ v_i \f$ is given by \p v(k,i) with \p k > \p i (the subdiagonal part of the
+      * i-th column). If \p v has fewer columns than rows, then the Householder sequence contains as many
+      * Householder reflections as there are columns.
+      *
+      * \note The %HouseholderSequence object stores \p v and \p h by reference.
+      *
+      * Example: \include HouseholderSequence_HouseholderSequence.cpp
+      * Output: \verbinclude HouseholderSequence_HouseholderSequence.out
+      *
+      * \sa setLength(), setShift()
+      */
+    HouseholderSequence(const VectorsType& v, const CoeffsType& h)
+      : m_vectors(v), m_coeffs(h), m_trans(false), m_length(v.diagonalSize()),
+        m_shift(0)
+    {
+    }
+
+    /** \brief Copy constructor. */
+    HouseholderSequence(const HouseholderSequence& other)
+      : m_vectors(other.m_vectors),
+        m_coeffs(other.m_coeffs),
+        m_trans(other.m_trans),
+        m_length(other.m_length),
+        m_shift(other.m_shift)
+    {
+    }
+
+    /** \brief Number of rows of transformation viewed as a matrix.
+      * \returns Number of rows 
+      * \details This equals the dimension of the space that the transformation acts on.
+      */
+    Index rows() const { return Side==OnTheLeft ? m_vectors.rows() : m_vectors.cols(); }
+
+    /** \brief Number of columns of transformation viewed as a matrix.
+      * \returns Number of columns
+      * \details This equals the dimension of the space that the transformation acts on.
+      */
+    Index cols() const { return rows(); }
+
+    /** \brief Essential part of a Householder vector.
+      * \param[in]  k  Index of Householder reflection
+      * \returns    Vector containing non-trivial entries of k-th Householder vector
+      *
+      * This function returns the essential part of the Householder vector \f$ v_i \f$. This is a vector of
+      * length \f$ n-i \f$ containing the last \f$ n-i \f$ entries of the vector
+      * \f[ 
+      * v_i = [\underbrace{0, \ldots, 0}_{i-1\mbox{ zeros}}, 1, \underbrace{*, \ldots,*}_{n-i\mbox{ arbitrary entries}} ]. 
+      * \f]
+      * The index \f$ i \f$ equals \p k + shift(), corresponding to the k-th column of the matrix \p v
+      * passed to the constructor.
+      *
+      * \sa setShift(), shift()
+      */
+    const EssentialVectorType essentialVector(Index k) const
+    {
+      eigen_assert(k >= 0 && k < m_length);
+      return internal::hseq_side_dependent_impl<VectorsType,CoeffsType,Side>::essentialVector(*this, k);
+    }
+
+    /** \brief %Transpose of the Householder sequence. */
+    HouseholderSequence transpose() const
+    {
+      return HouseholderSequence(*this).setTrans(!m_trans);
+    }
+
+    /** \brief Complex conjugate of the Householder sequence. */
+    ConjugateReturnType conjugate() const
+    {
+      return ConjugateReturnType(m_vectors.conjugate(), m_coeffs.conjugate())
+             .setTrans(m_trans)
+             .setLength(m_length)
+             .setShift(m_shift);
+    }
+
+    /** \brief Adjoint (conjugate transpose) of the Householder sequence. */
+    ConjugateReturnType adjoint() const
+    {
+      return conjugate().setTrans(!m_trans);
+    }
+
+    /** \brief Inverse of the Householder sequence (equals the adjoint). */
+    ConjugateReturnType inverse() const { return adjoint(); }
+
+    /** \internal */
+    template<typename DestType> inline void evalTo(DestType& dst) const
+    {
+      Matrix<Scalar, DestType::RowsAtCompileTime, 1,
+             AutoAlign|ColMajor, DestType::MaxRowsAtCompileTime, 1> workspace(rows());
+      evalTo(dst, workspace);
+    }
+
+    /** \internal */
+    template<typename Dest, typename Workspace>
+    void evalTo(Dest& dst, Workspace& workspace) const
+    {
+      workspace.resize(rows());
+      Index vecs = m_length;
+      const typename Dest::Scalar *dst_data = internal::extract_data(dst);
+      if(    internal::is_same<typename internal::remove_all<VectorsType>::type,Dest>::value
+          && dst_data!=0 && dst_data == internal::extract_data(m_vectors))
+      {
+        // in-place
+        dst.diagonal().setOnes();
+        dst.template triangularView<StrictlyUpper>().setZero();
+        for(Index k = vecs-1; k >= 0; --k)
+        {
+          Index cornerSize = rows() - k - m_shift;
+          if(m_trans)
+            dst.bottomRightCorner(cornerSize, cornerSize)
+               .applyHouseholderOnTheRight(essentialVector(k), m_coeffs.coeff(k), workspace.data());
+          else
+            dst.bottomRightCorner(cornerSize, cornerSize)
+               .applyHouseholderOnTheLeft(essentialVector(k), m_coeffs.coeff(k), workspace.data());
+
+          // clear the off diagonal vector
+          dst.col(k).tail(rows()-k-1).setZero();
+        }
+        // clear the remaining columns if needed
+        for(Index k = 0; k<cols()-vecs ; ++k)
+          dst.col(k).tail(rows()-k-1).setZero();
+      }
+      else
+      {
+        dst.setIdentity(rows(), rows());
+        for(Index k = vecs-1; k >= 0; --k)
+        {
+          Index cornerSize = rows() - k - m_shift;
+          if(m_trans)
+            dst.bottomRightCorner(cornerSize, cornerSize)
+               .applyHouseholderOnTheRight(essentialVector(k), m_coeffs.coeff(k), &workspace.coeffRef(0));
+          else
+            dst.bottomRightCorner(cornerSize, cornerSize)
+               .applyHouseholderOnTheLeft(essentialVector(k), m_coeffs.coeff(k), &workspace.coeffRef(0));
+        }
+      }
+    }
+
+    /** \internal */
+    template<typename Dest> inline void applyThisOnTheRight(Dest& dst) const
+    {
+      Matrix<Scalar,1,Dest::RowsAtCompileTime,RowMajor,1,Dest::MaxRowsAtCompileTime> workspace(dst.rows());
+      applyThisOnTheRight(dst, workspace);
+    }
+
+    /** \internal */
+    template<typename Dest, typename Workspace>
+    inline void applyThisOnTheRight(Dest& dst, Workspace& workspace) const
+    {
+      workspace.resize(dst.rows());
+      for(Index k = 0; k < m_length; ++k)
+      {
+        Index actual_k = m_trans ? m_length-k-1 : k;
+        dst.rightCols(rows()-m_shift-actual_k)
+           .applyHouseholderOnTheRight(essentialVector(actual_k), m_coeffs.coeff(actual_k), workspace.data());
+      }
+    }
+
+    /** \internal */
+    template<typename Dest> inline void applyThisOnTheLeft(Dest& dst) const
+    {
+      Matrix<Scalar,1,Dest::ColsAtCompileTime,RowMajor,1,Dest::MaxColsAtCompileTime> workspace(dst.cols());
+      applyThisOnTheLeft(dst, workspace);
+    }
+
+    /** \internal */
+    template<typename Dest, typename Workspace>
+    inline void applyThisOnTheLeft(Dest& dst, Workspace& workspace) const
+    {
+      workspace.resize(dst.cols());
+      for(Index k = 0; k < m_length; ++k)
+      {
+        Index actual_k = m_trans ? k : m_length-k-1;
+        dst.bottomRows(rows()-m_shift-actual_k)
+           .applyHouseholderOnTheLeft(essentialVector(actual_k), m_coeffs.coeff(actual_k), workspace.data());
+      }
+    }
+
+    /** \brief Computes the product of a Householder sequence with a matrix.
+      * \param[in]  other  %Matrix being multiplied.
+      * \returns    Expression object representing the product.
+      *
+      * This function computes \f$ HM \f$ where \f$ H \f$ is the Householder sequence represented by \p *this
+      * and \f$ M \f$ is the matrix \p other.
+      */
+    template<typename OtherDerived>
+    typename internal::matrix_type_times_scalar_type<Scalar, OtherDerived>::Type operator*(const MatrixBase<OtherDerived>& other) const
+    {
+      typename internal::matrix_type_times_scalar_type<Scalar, OtherDerived>::Type
+        res(other.template cast<typename internal::matrix_type_times_scalar_type<Scalar,OtherDerived>::ResultScalar>());
+      applyThisOnTheLeft(res);
+      return res;
+    }
+
+    template<typename _VectorsType, typename _CoeffsType, int _Side> friend struct internal::hseq_side_dependent_impl;
+
+    /** \brief Sets the length of the Householder sequence.
+      * \param [in]  length  New value for the length.
+      *
+      * By default, the length \f$ n \f$ of the Householder sequence \f$ H = H_0 H_1 \ldots H_{n-1} \f$ is set
+      * to the number of columns of the matrix \p v passed to the constructor, or the number of rows if that
+      * is smaller. After this function is called, the length equals \p length.
+      *
+      * \sa length()
+      */
+    HouseholderSequence& setLength(Index length)
+    {
+      m_length = length;
+      return *this;
+    }
+
+    /** \brief Sets the shift of the Householder sequence.
+      * \param [in]  shift  New value for the shift.
+      *
+      * By default, a %HouseholderSequence object represents \f$ H = H_0 H_1 \ldots H_{n-1} \f$ and the i-th
+      * column of the matrix \p v passed to the constructor corresponds to the i-th Householder
+      * reflection. After this function is called, the object represents \f$ H = H_{\mathrm{shift}}
+      * H_{\mathrm{shift}+1} \ldots H_{n-1} \f$ and the i-th column of \p v corresponds to the (shift+i)-th
+      * Householder reflection.
+      *
+      * \sa shift()
+      */
+    HouseholderSequence& setShift(Index shift)
+    {
+      m_shift = shift;
+      return *this;
+    }
+
+    Index length() const { return m_length; }  /**< \brief Returns the length of the Householder sequence. */
+    Index shift() const { return m_shift; }    /**< \brief Returns the shift of the Householder sequence. */
+
+    /* Necessary for .adjoint() and .conjugate() */
+    template <typename VectorsType2, typename CoeffsType2, int Side2> friend class HouseholderSequence;
+
+  protected:
+
+    /** \brief Sets the transpose flag.
+      * \param [in]  trans  New value of the transpose flag.
+      *
+      * By default, the transpose flag is not set. If the transpose flag is set, then this object represents 
+      * \f$ H^T = H_{n-1}^T \ldots H_1^T H_0^T \f$ instead of \f$ H = H_0 H_1 \ldots H_{n-1} \f$.
+      *
+      * \sa trans()
+      */
+    HouseholderSequence& setTrans(bool trans)
+    {
+      m_trans = trans;
+      return *this;
+    }
+
+    bool trans() const { return m_trans; }     /**< \brief Returns the transpose flag. */
+
+    typename VectorsType::Nested m_vectors;
+    typename CoeffsType::Nested m_coeffs;
+    bool m_trans;
+    Index m_length;
+    Index m_shift;
+};
+
+/** \brief Computes the product of a matrix with a Householder sequence.
+  * \param[in]  other  %Matrix being multiplied.
+  * \param[in]  h      %HouseholderSequence being multiplied.
+  * \returns    Expression object representing the product.
+  *
+  * This function computes \f$ MH \f$ where \f$ M \f$ is the matrix \p other and \f$ H \f$ is the
+  * Householder sequence represented by \p h.
+  */
+template<typename OtherDerived, typename VectorsType, typename CoeffsType, int Side>
+typename internal::matrix_type_times_scalar_type<typename VectorsType::Scalar,OtherDerived>::Type operator*(const MatrixBase<OtherDerived>& other, const HouseholderSequence<VectorsType,CoeffsType,Side>& h)
+{
+  typename internal::matrix_type_times_scalar_type<typename VectorsType::Scalar,OtherDerived>::Type
+    res(other.template cast<typename internal::matrix_type_times_scalar_type<typename VectorsType::Scalar,OtherDerived>::ResultScalar>());
+  h.applyThisOnTheRight(res);
+  return res;
+}
+
+/** \ingroup Householder_Module \householder_module
+  * \brief Convenience function for constructing a Householder sequence. 
+  * \returns A HouseholderSequence constructed from the specified arguments.
+  */
+template<typename VectorsType, typename CoeffsType>
+HouseholderSequence<VectorsType,CoeffsType> householderSequence(const VectorsType& v, const CoeffsType& h)
+{
+  return HouseholderSequence<VectorsType,CoeffsType,OnTheLeft>(v, h);
+}
+
+/** \ingroup Householder_Module \householder_module
+  * \brief Convenience function for constructing a Householder sequence. 
+  * \returns A HouseholderSequence constructed from the specified arguments.
+  * \details This function differs from householderSequence() in that the template argument \p OnTheSide of
+  * the constructed HouseholderSequence is set to OnTheRight, instead of the default OnTheLeft.
+  */
+template<typename VectorsType, typename CoeffsType>
+HouseholderSequence<VectorsType,CoeffsType,OnTheRight> rightHouseholderSequence(const VectorsType& v, const CoeffsType& h)
+{
+  return HouseholderSequence<VectorsType,CoeffsType,OnTheRight>(v, h);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_HOUSEHOLDER_SEQUENCE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Householder/BlockHouseholder.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Householder/BlockHouseholder.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Householder/BlockHouseholder.h	(revision 2476)
@@ -0,0 +1,68 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Vincent Lejeune
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BLOCK_HOUSEHOLDER_H
+#define EIGEN_BLOCK_HOUSEHOLDER_H
+
+// This file contains some helper function to deal with block householder reflectors
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal */
+template<typename TriangularFactorType,typename VectorsType,typename CoeffsType>
+void make_block_householder_triangular_factor(TriangularFactorType& triFactor, const VectorsType& vectors, const CoeffsType& hCoeffs)
+{
+  typedef typename TriangularFactorType::Index Index;
+  typedef typename VectorsType::Scalar Scalar;
+  const Index nbVecs = vectors.cols();
+  eigen_assert(triFactor.rows() == nbVecs && triFactor.cols() == nbVecs && vectors.rows()>=nbVecs);
+
+  for(Index i = 0; i < nbVecs; i++)
+  {
+    Index rs = vectors.rows() - i;
+    Scalar Vii = vectors(i,i);
+    vectors.const_cast_derived().coeffRef(i,i) = Scalar(1);
+    triFactor.col(i).head(i).noalias() = -hCoeffs(i) * vectors.block(i, 0, rs, i).adjoint()
+                                       * vectors.col(i).tail(rs);
+    vectors.const_cast_derived().coeffRef(i, i) = Vii;
+    // FIXME add .noalias() once the triangular product can work inplace
+    triFactor.col(i).head(i) = triFactor.block(0,0,i,i).template triangularView<Upper>()
+                             * triFactor.col(i).head(i);
+    triFactor(i,i) = hCoeffs(i);
+  }
+}
+
+/** \internal */
+template<typename MatrixType,typename VectorsType,typename CoeffsType>
+void apply_block_householder_on_the_left(MatrixType& mat, const VectorsType& vectors, const CoeffsType& hCoeffs)
+{
+  typedef typename MatrixType::Index Index;
+  enum { TFactorSize = MatrixType::ColsAtCompileTime };
+  Index nbVecs = vectors.cols();
+  Matrix<typename MatrixType::Scalar, TFactorSize, TFactorSize, ColMajor> T(nbVecs,nbVecs);
+  make_block_householder_triangular_factor(T, vectors, hCoeffs);
+
+  const TriangularView<const VectorsType, UnitLower>& V(vectors);
+
+  // A -= V T V^* A
+  Matrix<typename MatrixType::Scalar,VectorsType::ColsAtCompileTime,MatrixType::ColsAtCompileTime,0,
+         VectorsType::MaxColsAtCompileTime,MatrixType::MaxColsAtCompileTime> tmp = V.adjoint() * mat;
+  // FIXME add .noalias() once the triangular product can work inplace
+  tmp = T.template triangularView<Upper>().adjoint() * tmp;
+  mat.noalias() -= V * tmp;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BLOCK_HOUSEHOLDER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/CholmodSupport/CholmodSupport.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/CholmodSupport/CholmodSupport.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/CholmodSupport/CholmodSupport.h	(revision 2476)
@@ -0,0 +1,607 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CHOLMODSUPPORT_H
+#define EIGEN_CHOLMODSUPPORT_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Scalar, typename CholmodType>
+void cholmod_configure_matrix(CholmodType& mat)
+{
+  if (internal::is_same<Scalar,float>::value)
+  {
+    mat.xtype = CHOLMOD_REAL;
+    mat.dtype = CHOLMOD_SINGLE;
+  }
+  else if (internal::is_same<Scalar,double>::value)
+  {
+    mat.xtype = CHOLMOD_REAL;
+    mat.dtype = CHOLMOD_DOUBLE;
+  }
+  else if (internal::is_same<Scalar,std::complex<float> >::value)
+  {
+    mat.xtype = CHOLMOD_COMPLEX;
+    mat.dtype = CHOLMOD_SINGLE;
+  }
+  else if (internal::is_same<Scalar,std::complex<double> >::value)
+  {
+    mat.xtype = CHOLMOD_COMPLEX;
+    mat.dtype = CHOLMOD_DOUBLE;
+  }
+  else
+  {
+    eigen_assert(false && "Scalar type not supported by CHOLMOD");
+  }
+}
+
+} // namespace internal
+
+/** Wraps the Eigen sparse matrix \a mat into a Cholmod sparse matrix object.
+  * Note that the data are shared.
+  */
+template<typename _Scalar, int _Options, typename _Index>
+cholmod_sparse viewAsCholmod(SparseMatrix<_Scalar,_Options,_Index>& mat)
+{
+  cholmod_sparse res;
+  res.nzmax   = mat.nonZeros();
+  res.nrow    = mat.rows();;
+  res.ncol    = mat.cols();
+  res.p       = mat.outerIndexPtr();
+  res.i       = mat.innerIndexPtr();
+  res.x       = mat.valuePtr();
+  res.z       = 0;
+  res.sorted  = 1;
+  if(mat.isCompressed())
+  {
+    res.packed  = 1;
+    res.nz = 0;
+  }
+  else
+  {
+    res.packed  = 0;
+    res.nz = mat.innerNonZeroPtr();
+  }
+
+  res.dtype   = 0;
+  res.stype   = -1;
+  
+  if (internal::is_same<_Index,int>::value)
+  {
+    res.itype = CHOLMOD_INT;
+  }
+  else if (internal::is_same<_Index,SuiteSparse_long>::value)
+  {
+    res.itype = CHOLMOD_LONG;
+  }
+  else
+  {
+    eigen_assert(false && "Index type not supported yet");
+  }
+
+  // setup res.xtype
+  internal::cholmod_configure_matrix<_Scalar>(res);
+  
+  res.stype = 0;
+  
+  return res;
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+const cholmod_sparse viewAsCholmod(const SparseMatrix<_Scalar,_Options,_Index>& mat)
+{
+  cholmod_sparse res = viewAsCholmod(mat.const_cast_derived());
+  return res;
+}
+
+/** Returns a view of the Eigen sparse matrix \a mat as Cholmod sparse matrix.
+  * The data are not copied but shared. */
+template<typename _Scalar, int _Options, typename _Index, unsigned int UpLo>
+cholmod_sparse viewAsCholmod(const SparseSelfAdjointView<SparseMatrix<_Scalar,_Options,_Index>, UpLo>& mat)
+{
+  cholmod_sparse res = viewAsCholmod(mat.matrix().const_cast_derived());
+  
+  if(UpLo==Upper) res.stype =  1;
+  if(UpLo==Lower) res.stype = -1;
+
+  return res;
+}
+
+/** Returns a view of the Eigen \b dense matrix \a mat as Cholmod dense matrix.
+  * The data are not copied but shared. */
+template<typename Derived>
+cholmod_dense viewAsCholmod(MatrixBase<Derived>& mat)
+{
+  EIGEN_STATIC_ASSERT((internal::traits<Derived>::Flags&RowMajorBit)==0,THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
+  typedef typename Derived::Scalar Scalar;
+
+  cholmod_dense res;
+  res.nrow   = mat.rows();
+  res.ncol   = mat.cols();
+  res.nzmax  = res.nrow * res.ncol;
+  res.d      = Derived::IsVectorAtCompileTime ? mat.derived().size() : mat.derived().outerStride();
+  res.x      = (void*)(mat.derived().data());
+  res.z      = 0;
+
+  internal::cholmod_configure_matrix<Scalar>(res);
+
+  return res;
+}
+
+/** Returns a view of the Cholmod sparse matrix \a cm as an Eigen sparse matrix.
+  * The data are not copied but shared. */
+template<typename Scalar, int Flags, typename Index>
+MappedSparseMatrix<Scalar,Flags,Index> viewAsEigen(cholmod_sparse& cm)
+{
+  return MappedSparseMatrix<Scalar,Flags,Index>
+         (cm.nrow, cm.ncol, static_cast<Index*>(cm.p)[cm.ncol],
+          static_cast<Index*>(cm.p), static_cast<Index*>(cm.i),static_cast<Scalar*>(cm.x) );
+}
+
+enum CholmodMode {
+  CholmodAuto, CholmodSimplicialLLt, CholmodSupernodalLLt, CholmodLDLt
+};
+
+
+/** \ingroup CholmodSupport_Module
+  * \class CholmodBase
+  * \brief The base class for the direct Cholesky factorization of Cholmod
+  * \sa class CholmodSupernodalLLT, class CholmodSimplicialLDLT, class CholmodSimplicialLLT
+  */
+template<typename _MatrixType, int _UpLo, typename Derived>
+class CholmodBase : internal::noncopyable
+{
+  public:
+    typedef _MatrixType MatrixType;
+    enum { UpLo = _UpLo };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef MatrixType CholMatrixType;
+    typedef typename MatrixType::Index Index;
+
+  public:
+
+    CholmodBase()
+      : m_cholmodFactor(0), m_info(Success), m_isInitialized(false)
+    {
+      m_shiftOffset[0] = m_shiftOffset[1] = RealScalar(0.0);
+      cholmod_start(&m_cholmod);
+    }
+
+    CholmodBase(const MatrixType& matrix)
+      : m_cholmodFactor(0), m_info(Success), m_isInitialized(false)
+    {
+      m_shiftOffset[0] = m_shiftOffset[1] = RealScalar(0.0);
+      cholmod_start(&m_cholmod);
+      compute(matrix);
+    }
+
+    ~CholmodBase()
+    {
+      if(m_cholmodFactor)
+        cholmod_free_factor(&m_cholmodFactor, &m_cholmod);
+      cholmod_finish(&m_cholmod);
+    }
+    
+    inline Index cols() const { return m_cholmodFactor->n; }
+    inline Index rows() const { return m_cholmodFactor->n; }
+    
+    Derived& derived() { return *static_cast<Derived*>(this); }
+    const Derived& derived() const { return *static_cast<const Derived*>(this); }
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+
+    /** Computes the sparse Cholesky decomposition of \a matrix */
+    Derived& compute(const MatrixType& matrix)
+    {
+      analyzePattern(matrix);
+      factorize(matrix);
+      return derived();
+    }
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<CholmodBase, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "CholmodDecomposition::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<CholmodBase, Rhs>(*this, b.derived());
+    }
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<CholmodBase, Rhs>
+    solve(const SparseMatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "LLT is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "CholmodDecomposition::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::sparse_solve_retval<CholmodBase, Rhs>(*this, b.derived());
+    }
+    
+    /** Performs a symbolic decomposition on the sparsity pattern of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      * 
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& matrix)
+    {
+      if(m_cholmodFactor)
+      {
+        cholmod_free_factor(&m_cholmodFactor, &m_cholmod);
+        m_cholmodFactor = 0;
+      }
+      cholmod_sparse A = viewAsCholmod(matrix.template selfadjointView<UpLo>());
+      m_cholmodFactor = cholmod_analyze(&A, &m_cholmod);
+      
+      this->m_isInitialized = true;
+      this->m_info = Success;
+      m_analysisIsOk = true;
+      m_factorizationIsOk = false;
+    }
+    
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must have the same sparsity pattern as the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    void factorize(const MatrixType& matrix)
+    {
+      eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+      cholmod_sparse A = viewAsCholmod(matrix.template selfadjointView<UpLo>());
+      cholmod_factorize_p(&A, m_shiftOffset, 0, 0, m_cholmodFactor, &m_cholmod);
+      
+      // If the factorization failed, minor is the column at which it did. On success minor == n.
+      this->m_info = (m_cholmodFactor->minor == m_cholmodFactor->n ? Success : NumericalIssue);
+      m_factorizationIsOk = true;
+    }
+    
+    /** Returns a reference to the Cholmod's configuration structure to get a full control over the performed operations.
+     *  See the Cholmod user guide for details. */
+    cholmod_common& cholmod() { return m_cholmod; }
+    
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal */
+    template<typename Rhs,typename Dest>
+    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
+    {
+      eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
+      const Index size = m_cholmodFactor->n;
+      EIGEN_UNUSED_VARIABLE(size);
+      eigen_assert(size==b.rows());
+
+      // note: cd stands for Cholmod Dense
+      Rhs& b_ref(b.const_cast_derived());
+      cholmod_dense b_cd = viewAsCholmod(b_ref);
+      cholmod_dense* x_cd = cholmod_solve(CHOLMOD_A, m_cholmodFactor, &b_cd, &m_cholmod);
+      if(!x_cd)
+      {
+        this->m_info = NumericalIssue;
+      }
+      // TODO optimize this copy by swapping when possible (be careful with alignment, etc.)
+      dest = Matrix<Scalar,Dest::RowsAtCompileTime,Dest::ColsAtCompileTime>::Map(reinterpret_cast<Scalar*>(x_cd->x),b.rows(),b.cols());
+      cholmod_free_dense(&x_cd, &m_cholmod);
+    }
+    
+    /** \internal */
+    template<typename RhsScalar, int RhsOptions, typename RhsIndex, typename DestScalar, int DestOptions, typename DestIndex>
+    void _solve(const SparseMatrix<RhsScalar,RhsOptions,RhsIndex> &b, SparseMatrix<DestScalar,DestOptions,DestIndex> &dest) const
+    {
+      eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
+      const Index size = m_cholmodFactor->n;
+      EIGEN_UNUSED_VARIABLE(size);
+      eigen_assert(size==b.rows());
+
+      // note: cs stands for Cholmod Sparse
+      cholmod_sparse b_cs = viewAsCholmod(b);
+      cholmod_sparse* x_cs = cholmod_spsolve(CHOLMOD_A, m_cholmodFactor, &b_cs, &m_cholmod);
+      if(!x_cs)
+      {
+        this->m_info = NumericalIssue;
+      }
+      // TODO optimize this copy by swapping when possible (be careful with alignment, etc.)
+      dest = viewAsEigen<DestScalar,DestOptions,DestIndex>(*x_cs);
+      cholmod_free_sparse(&x_cs, &m_cholmod);
+    }
+    #endif // EIGEN_PARSED_BY_DOXYGEN
+    
+    
+    /** Sets the shift parameter that will be used to adjust the diagonal coefficients during the numerical factorization.
+      *
+      * During the numerical factorization, an offset term is added to the diagonal coefficients:\n
+      * \c d_ii = \a offset + \c d_ii
+      *
+      * The default is \a offset=0.
+      *
+      * \returns a reference to \c *this.
+      */
+    Derived& setShift(const RealScalar& offset)
+    {
+      m_shiftOffset[0] = offset;
+      return derived();
+    }
+    
+    template<typename Stream>
+    void dumpMemory(Stream& /*s*/)
+    {}
+    
+  protected:
+    mutable cholmod_common m_cholmod;
+    cholmod_factor* m_cholmodFactor;
+    RealScalar m_shiftOffset[2];
+    mutable ComputationInfo m_info;
+    bool m_isInitialized;
+    int m_factorizationIsOk;
+    int m_analysisIsOk;
+};
+
+/** \ingroup CholmodSupport_Module
+  * \class CholmodSimplicialLLT
+  * \brief A simplicial direct Cholesky (LLT) factorization and solver based on Cholmod
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a simplicial LL^T Cholesky factorization
+  * using the Cholmod library.
+  * This simplicial variant is equivalent to Eigen's built-in SimplicialLLT class. Therefore, it has little practical interest.
+  * The sparse matrix A must be selfadjoint and positive definite. The vectors or matrices
+  * X and B can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  *
+  * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
+  *
+  * \sa \ref TutorialSparseDirectSolvers, class CholmodSupernodalLLT, class SimplicialLLT
+  */
+template<typename _MatrixType, int _UpLo = Lower>
+class CholmodSimplicialLLT : public CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLLT<_MatrixType, _UpLo> >
+{
+    typedef CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLLT> Base;
+    using Base::m_cholmod;
+    
+  public:
+    
+    typedef _MatrixType MatrixType;
+    
+    CholmodSimplicialLLT() : Base() { init(); }
+
+    CholmodSimplicialLLT(const MatrixType& matrix) : Base()
+    {
+      init();
+      Base::compute(matrix);
+    }
+
+    ~CholmodSimplicialLLT() {}
+  protected:
+    void init()
+    {
+      m_cholmod.final_asis = 0;
+      m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
+      m_cholmod.final_ll = 1;
+    }
+};
+
+
+/** \ingroup CholmodSupport_Module
+  * \class CholmodSimplicialLDLT
+  * \brief A simplicial direct Cholesky (LDLT) factorization and solver based on Cholmod
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a simplicial LDL^T Cholesky factorization
+  * using the Cholmod library.
+  * This simplicial variant is equivalent to Eigen's built-in SimplicialLDLT class. Therefore, it has little practical interest.
+  * The sparse matrix A must be selfadjoint and positive definite. The vectors or matrices
+  * X and B can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  *
+  * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
+  *
+  * \sa \ref TutorialSparseDirectSolvers, class CholmodSupernodalLLT, class SimplicialLDLT
+  */
+template<typename _MatrixType, int _UpLo = Lower>
+class CholmodSimplicialLDLT : public CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLDLT<_MatrixType, _UpLo> >
+{
+    typedef CholmodBase<_MatrixType, _UpLo, CholmodSimplicialLDLT> Base;
+    using Base::m_cholmod;
+    
+  public:
+    
+    typedef _MatrixType MatrixType;
+    
+    CholmodSimplicialLDLT() : Base() { init(); }
+
+    CholmodSimplicialLDLT(const MatrixType& matrix) : Base()
+    {
+      init();
+      Base::compute(matrix);
+    }
+
+    ~CholmodSimplicialLDLT() {}
+  protected:
+    void init()
+    {
+      m_cholmod.final_asis = 1;
+      m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
+    }
+};
+
+/** \ingroup CholmodSupport_Module
+  * \class CholmodSupernodalLLT
+  * \brief A supernodal Cholesky (LLT) factorization and solver based on Cholmod
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a supernodal LL^T Cholesky factorization
+  * using the Cholmod library.
+  * This supernodal variant performs best on dense enough problems, e.g., 3D FEM, or very high order 2D FEM.
+  * The sparse matrix A must be selfadjoint and positive definite. The vectors or matrices
+  * X and B can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  *
+  * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename _MatrixType, int _UpLo = Lower>
+class CholmodSupernodalLLT : public CholmodBase<_MatrixType, _UpLo, CholmodSupernodalLLT<_MatrixType, _UpLo> >
+{
+    typedef CholmodBase<_MatrixType, _UpLo, CholmodSupernodalLLT> Base;
+    using Base::m_cholmod;
+    
+  public:
+    
+    typedef _MatrixType MatrixType;
+    
+    CholmodSupernodalLLT() : Base() { init(); }
+
+    CholmodSupernodalLLT(const MatrixType& matrix) : Base()
+    {
+      init();
+      Base::compute(matrix);
+    }
+
+    ~CholmodSupernodalLLT() {}
+  protected:
+    void init()
+    {
+      m_cholmod.final_asis = 1;
+      m_cholmod.supernodal = CHOLMOD_SUPERNODAL;
+    }
+};
+
+/** \ingroup CholmodSupport_Module
+  * \class CholmodDecomposition
+  * \brief A general Cholesky factorization and solver based on Cholmod
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a LL^T or LDL^T Cholesky factorization
+  * using the Cholmod library. The sparse matrix A must be selfadjoint and positive definite. The vectors or matrices
+  * X and B can be either dense or sparse.
+  *
+  * This variant permits to change the underlying Cholesky method at runtime.
+  * On the other hand, it does not provide access to the result of the factorization.
+  * The default is to let Cholmod automatically choose between a simplicial and supernodal factorization.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  *
+  * This class supports all kind of SparseMatrix<>: row or column major; upper, lower, or both; compressed or non compressed.
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename _MatrixType, int _UpLo = Lower>
+class CholmodDecomposition : public CholmodBase<_MatrixType, _UpLo, CholmodDecomposition<_MatrixType, _UpLo> >
+{
+    typedef CholmodBase<_MatrixType, _UpLo, CholmodDecomposition> Base;
+    using Base::m_cholmod;
+    
+  public:
+    
+    typedef _MatrixType MatrixType;
+    
+    CholmodDecomposition() : Base() { init(); }
+
+    CholmodDecomposition(const MatrixType& matrix) : Base()
+    {
+      init();
+      Base::compute(matrix);
+    }
+
+    ~CholmodDecomposition() {}
+    
+    void setMode(CholmodMode mode)
+    {
+      switch(mode)
+      {
+        case CholmodAuto:
+          m_cholmod.final_asis = 1;
+          m_cholmod.supernodal = CHOLMOD_AUTO;
+          break;
+        case CholmodSimplicialLLt:
+          m_cholmod.final_asis = 0;
+          m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
+          m_cholmod.final_ll = 1;
+          break;
+        case CholmodSupernodalLLt:
+          m_cholmod.final_asis = 1;
+          m_cholmod.supernodal = CHOLMOD_SUPERNODAL;
+          break;
+        case CholmodLDLt:
+          m_cholmod.final_asis = 1;
+          m_cholmod.supernodal = CHOLMOD_SIMPLICIAL;
+          break;
+        default:
+          break;
+      }
+    }
+  protected:
+    void init()
+    {
+      m_cholmod.final_asis = 1;
+      m_cholmod.supernodal = CHOLMOD_AUTO;
+    }
+};
+
+namespace internal {
+  
+template<typename _MatrixType, int _UpLo, typename Derived, typename Rhs>
+struct solve_retval<CholmodBase<_MatrixType,_UpLo,Derived>, Rhs>
+  : solve_retval_base<CholmodBase<_MatrixType,_UpLo,Derived>, Rhs>
+{
+  typedef CholmodBase<_MatrixType,_UpLo,Derived> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+template<typename _MatrixType, int _UpLo, typename Derived, typename Rhs>
+struct sparse_solve_retval<CholmodBase<_MatrixType,_UpLo,Derived>, Rhs>
+  : sparse_solve_retval_base<CholmodBase<_MatrixType,_UpLo,Derived>, Rhs>
+{
+  typedef CholmodBase<_MatrixType,_UpLo,Derived> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_CHOLMODSUPPORT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/FullPivHouseholderQR.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/FullPivHouseholderQR.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/FullPivHouseholderQR.h	(revision 2476)
@@ -0,0 +1,622 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FULLPIVOTINGHOUSEHOLDERQR_H
+#define EIGEN_FULLPIVOTINGHOUSEHOLDERQR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename MatrixType> struct FullPivHouseholderQRMatrixQReturnType;
+
+template<typename MatrixType>
+struct traits<FullPivHouseholderQRMatrixQReturnType<MatrixType> >
+{
+  typedef typename MatrixType::PlainObject ReturnType;
+};
+
+}
+
+/** \ingroup QR_Module
+  *
+  * \class FullPivHouseholderQR
+  *
+  * \brief Householder rank-revealing QR decomposition of a matrix with full pivoting
+  *
+  * \param MatrixType the type of the matrix of which we are computing the QR decomposition
+  *
+  * This class performs a rank-revealing QR decomposition of a matrix \b A into matrices \b P, \b Q and \b R
+  * such that 
+  * \f[
+  *  \mathbf{A} \, \mathbf{P} = \mathbf{Q} \, \mathbf{R}
+  * \f]
+  * by using Householder transformations. Here, \b P is a permutation matrix, \b Q a unitary matrix and \b R an 
+  * upper triangular matrix.
+  *
+  * This decomposition performs a very prudent full pivoting in order to be rank-revealing and achieve optimal
+  * numerical stability. The trade-off is that it is slower than HouseholderQR and ColPivHouseholderQR.
+  *
+  * \sa MatrixBase::fullPivHouseholderQr()
+  */
+template<typename _MatrixType> class FullPivHouseholderQR
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef internal::FullPivHouseholderQRMatrixQReturnType<MatrixType> MatrixQReturnType;
+    typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
+    typedef Matrix<Index, 1,
+                   EIGEN_SIZE_MIN_PREFER_DYNAMIC(ColsAtCompileTime,RowsAtCompileTime), RowMajor, 1,
+                   EIGEN_SIZE_MIN_PREFER_FIXED(MaxColsAtCompileTime,MaxRowsAtCompileTime)> IntDiagSizeVectorType;
+    typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationType;
+    typedef typename internal::plain_row_type<MatrixType>::type RowVectorType;
+    typedef typename internal::plain_col_type<MatrixType>::type ColVectorType;
+
+    /** \brief Default Constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via FullPivHouseholderQR::compute(const MatrixType&).
+      */
+    FullPivHouseholderQR()
+      : m_qr(),
+        m_hCoeffs(),
+        m_rows_transpositions(),
+        m_cols_transpositions(),
+        m_cols_permutation(),
+        m_temp(),
+        m_isInitialized(false),
+        m_usePrescribedThreshold(false) {}
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa FullPivHouseholderQR()
+      */
+    FullPivHouseholderQR(Index rows, Index cols)
+      : m_qr(rows, cols),
+        m_hCoeffs((std::min)(rows,cols)),
+        m_rows_transpositions((std::min)(rows,cols)),
+        m_cols_transpositions((std::min)(rows,cols)),
+        m_cols_permutation(cols),
+        m_temp(cols),
+        m_isInitialized(false),
+        m_usePrescribedThreshold(false) {}
+
+    /** \brief Constructs a QR factorization from a given matrix
+      *
+      * This constructor computes the QR factorization of the matrix \a matrix by calling
+      * the method compute(). It is a short cut for:
+      * 
+      * \code
+      * FullPivHouseholderQR<MatrixType> qr(matrix.rows(), matrix.cols());
+      * qr.compute(matrix);
+      * \endcode
+      * 
+      * \sa compute()
+      */
+    FullPivHouseholderQR(const MatrixType& matrix)
+      : m_qr(matrix.rows(), matrix.cols()),
+        m_hCoeffs((std::min)(matrix.rows(), matrix.cols())),
+        m_rows_transpositions((std::min)(matrix.rows(), matrix.cols())),
+        m_cols_transpositions((std::min)(matrix.rows(), matrix.cols())),
+        m_cols_permutation(matrix.cols()),
+        m_temp(matrix.cols()),
+        m_isInitialized(false),
+        m_usePrescribedThreshold(false)
+    {
+      compute(matrix);
+    }
+
+    /** This method finds a solution x to the equation Ax=b, where A is the matrix of which
+      * \c *this is the QR decomposition.
+      *
+      * \param b the right-hand-side of the equation to solve.
+      *
+      * \returns the exact or least-square solution if the rank is greater or equal to the number of columns of A,
+      * and an arbitrary solution otherwise.
+      *
+      * \note The case where b is a matrix is not yet implemented. Also, this
+      *       code is space inefficient.
+      *
+      * \note_about_checking_solutions
+      *
+      * \note_about_arbitrary_choice_of_solution
+      *
+      * Example: \include FullPivHouseholderQR_solve.cpp
+      * Output: \verbinclude FullPivHouseholderQR_solve.out
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<FullPivHouseholderQR, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return internal::solve_retval<FullPivHouseholderQR, Rhs>(*this, b.derived());
+    }
+
+    /** \returns Expression object representing the matrix Q
+      */
+    MatrixQReturnType matrixQ(void) const;
+
+    /** \returns a reference to the matrix where the Householder QR decomposition is stored
+      */
+    const MatrixType& matrixQR() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return m_qr;
+    }
+
+    FullPivHouseholderQR& compute(const MatrixType& matrix);
+
+    /** \returns a const reference to the column permutation matrix */
+    const PermutationType& colsPermutation() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return m_cols_permutation;
+    }
+
+    /** \returns a const reference to the vector of indices representing the rows transpositions */
+    const IntDiagSizeVectorType& rowsTranspositions() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return m_rows_transpositions;
+    }
+
+    /** \returns the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the QR decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \warning a determinant can be very big or small, so for matrices
+      * of large enough dimension, there is a risk of overflow/underflow.
+      * One way to work around that is to use logAbsDeterminant() instead.
+      *
+      * \sa logAbsDeterminant(), MatrixBase::determinant()
+      */
+    typename MatrixType::RealScalar absDeterminant() const;
+
+    /** \returns the natural log of the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the QR decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \note This method is useful to work around the risk of overflow/underflow that's inherent
+      * to determinant computation.
+      *
+      * \sa absDeterminant(), MatrixBase::determinant()
+      */
+    typename MatrixType::RealScalar logAbsDeterminant() const;
+
+    /** \returns the rank of the matrix of which *this is the QR decomposition.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index rank() const
+    {
+      using std::abs;
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold();
+      Index result = 0;
+      for(Index i = 0; i < m_nonzero_pivots; ++i)
+        result += (abs(m_qr.coeff(i,i)) > premultiplied_threshold);
+      return result;
+    }
+
+    /** \returns the dimension of the kernel of the matrix of which *this is the QR decomposition.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index dimensionOfKernel() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return cols() - rank();
+    }
+
+    /** \returns true if the matrix of which *this is the QR decomposition represents an injective
+      *          linear map, i.e. has trivial kernel; false otherwise.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isInjective() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return rank() == cols();
+    }
+
+    /** \returns true if the matrix of which *this is the QR decomposition represents a surjective
+      *          linear map; false otherwise.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isSurjective() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return rank() == rows();
+    }
+
+    /** \returns true if the matrix of which *this is the QR decomposition is invertible.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isInvertible() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return isInjective() && isSurjective();
+    }
+
+    /** \returns the inverse of the matrix of which *this is the QR decomposition.
+      *
+      * \note If this matrix is not invertible, the returned matrix has undefined coefficients.
+      *       Use isInvertible() to first determine whether this matrix is invertible.
+      */    inline const
+    internal::solve_retval<FullPivHouseholderQR, typename MatrixType::IdentityReturnType>
+    inverse() const
+    {
+      eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+      return internal::solve_retval<FullPivHouseholderQR,typename MatrixType::IdentityReturnType>
+               (*this, MatrixType::Identity(m_qr.rows(), m_qr.cols()));
+    }
+
+    inline Index rows() const { return m_qr.rows(); }
+    inline Index cols() const { return m_qr.cols(); }
+    
+    /** \returns a const reference to the vector of Householder coefficients used to represent the factor \c Q.
+      * 
+      * For advanced uses only.
+      */
+    const HCoeffsType& hCoeffs() const { return m_hCoeffs; }
+
+    /** Allows to prescribe a threshold to be used by certain methods, such as rank(),
+      * who need to determine when pivots are to be considered nonzero. This is not used for the
+      * QR decomposition itself.
+      *
+      * When it needs to get the threshold value, Eigen calls threshold(). By default, this
+      * uses a formula to automatically determine a reasonable threshold.
+      * Once you have called the present method setThreshold(const RealScalar&),
+      * your value is used instead.
+      *
+      * \param threshold The new value to use as the threshold.
+      *
+      * A pivot will be considered nonzero if its absolute value is strictly greater than
+      *  \f$ \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \f$
+      * where maxpivot is the biggest pivot.
+      *
+      * If you want to come back to the default behavior, call setThreshold(Default_t)
+      */
+    FullPivHouseholderQR& setThreshold(const RealScalar& threshold)
+    {
+      m_usePrescribedThreshold = true;
+      m_prescribedThreshold = threshold;
+      return *this;
+    }
+
+    /** Allows to come back to the default behavior, letting Eigen use its default formula for
+      * determining the threshold.
+      *
+      * You should pass the special object Eigen::Default as parameter here.
+      * \code qr.setThreshold(Eigen::Default); \endcode
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    FullPivHouseholderQR& setThreshold(Default_t)
+    {
+      m_usePrescribedThreshold = false;
+      return *this;
+    }
+
+    /** Returns the threshold that will be used by certain methods such as rank().
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    RealScalar threshold() const
+    {
+      eigen_assert(m_isInitialized || m_usePrescribedThreshold);
+      return m_usePrescribedThreshold ? m_prescribedThreshold
+      // this formula comes from experimenting (see "LU precision tuning" thread on the list)
+      // and turns out to be identical to Higham's formula used already in LDLt.
+                                      : NumTraits<Scalar>::epsilon() * RealScalar(m_qr.diagonalSize());
+    }
+
+    /** \returns the number of nonzero pivots in the QR decomposition.
+      * Here nonzero is meant in the exact sense, not in a fuzzy sense.
+      * So that notion isn't really intrinsically interesting, but it is
+      * still useful when implementing algorithms.
+      *
+      * \sa rank()
+      */
+    inline Index nonzeroPivots() const
+    {
+      eigen_assert(m_isInitialized && "LU is not initialized.");
+      return m_nonzero_pivots;
+    }
+
+    /** \returns the absolute value of the biggest pivot, i.e. the biggest
+      *          diagonal coefficient of U.
+      */
+    RealScalar maxPivot() const { return m_maxpivot; }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    MatrixType m_qr;
+    HCoeffsType m_hCoeffs;
+    IntDiagSizeVectorType m_rows_transpositions;
+    IntDiagSizeVectorType m_cols_transpositions;
+    PermutationType m_cols_permutation;
+    RowVectorType m_temp;
+    bool m_isInitialized, m_usePrescribedThreshold;
+    RealScalar m_prescribedThreshold, m_maxpivot;
+    Index m_nonzero_pivots;
+    RealScalar m_precision;
+    Index m_det_pq;
+};
+
+template<typename MatrixType>
+typename MatrixType::RealScalar FullPivHouseholderQR<MatrixType>::absDeterminant() const
+{
+  using std::abs;
+  eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+  return abs(m_qr.diagonal().prod());
+}
+
+template<typename MatrixType>
+typename MatrixType::RealScalar FullPivHouseholderQR<MatrixType>::logAbsDeterminant() const
+{
+  eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+  return m_qr.diagonal().cwiseAbs().array().log().sum();
+}
+
+/** Performs the QR factorization of the given matrix \a matrix. The result of
+  * the factorization is stored into \c *this, and a reference to \c *this
+  * is returned.
+  *
+  * \sa class FullPivHouseholderQR, FullPivHouseholderQR(const MatrixType&)
+  */
+template<typename MatrixType>
+FullPivHouseholderQR<MatrixType>& FullPivHouseholderQR<MatrixType>::compute(const MatrixType& matrix)
+{
+  check_template_parameters();
+  
+  using std::abs;
+  Index rows = matrix.rows();
+  Index cols = matrix.cols();
+  Index size = (std::min)(rows,cols);
+
+  m_qr = matrix;
+  m_hCoeffs.resize(size);
+
+  m_temp.resize(cols);
+
+  m_precision = NumTraits<Scalar>::epsilon() * RealScalar(size);
+
+  m_rows_transpositions.resize(size);
+  m_cols_transpositions.resize(size);
+  Index number_of_transpositions = 0;
+
+  RealScalar biggest(0);
+
+  m_nonzero_pivots = size; // the generic case is that in which all pivots are nonzero (invertible case)
+  m_maxpivot = RealScalar(0);
+
+  for (Index k = 0; k < size; ++k)
+  {
+    Index row_of_biggest_in_corner, col_of_biggest_in_corner;
+    RealScalar biggest_in_corner;
+
+    biggest_in_corner = m_qr.bottomRightCorner(rows-k, cols-k)
+                            .cwiseAbs()
+                            .maxCoeff(&row_of_biggest_in_corner, &col_of_biggest_in_corner);
+    row_of_biggest_in_corner += k;
+    col_of_biggest_in_corner += k;
+    if(k==0) biggest = biggest_in_corner;
+
+    // if the corner is negligible, then we have less than full rank, and we can finish early
+    if(internal::isMuchSmallerThan(biggest_in_corner, biggest, m_precision))
+    {
+      m_nonzero_pivots = k;
+      for(Index i = k; i < size; i++)
+      {
+        m_rows_transpositions.coeffRef(i) = i;
+        m_cols_transpositions.coeffRef(i) = i;
+        m_hCoeffs.coeffRef(i) = Scalar(0);
+      }
+      break;
+    }
+
+    m_rows_transpositions.coeffRef(k) = row_of_biggest_in_corner;
+    m_cols_transpositions.coeffRef(k) = col_of_biggest_in_corner;
+    if(k != row_of_biggest_in_corner) {
+      m_qr.row(k).tail(cols-k).swap(m_qr.row(row_of_biggest_in_corner).tail(cols-k));
+      ++number_of_transpositions;
+    }
+    if(k != col_of_biggest_in_corner) {
+      m_qr.col(k).swap(m_qr.col(col_of_biggest_in_corner));
+      ++number_of_transpositions;
+    }
+
+    RealScalar beta;
+    m_qr.col(k).tail(rows-k).makeHouseholderInPlace(m_hCoeffs.coeffRef(k), beta);
+    m_qr.coeffRef(k,k) = beta;
+
+    // remember the maximum absolute value of diagonal coefficients
+    if(abs(beta) > m_maxpivot) m_maxpivot = abs(beta);
+
+    m_qr.bottomRightCorner(rows-k, cols-k-1)
+        .applyHouseholderOnTheLeft(m_qr.col(k).tail(rows-k-1), m_hCoeffs.coeffRef(k), &m_temp.coeffRef(k+1));
+  }
+
+  m_cols_permutation.setIdentity(cols);
+  for(Index k = 0; k < size; ++k)
+    m_cols_permutation.applyTranspositionOnTheRight(k, m_cols_transpositions.coeff(k));
+
+  m_det_pq = (number_of_transpositions%2) ? -1 : 1;
+  m_isInitialized = true;
+
+  return *this;
+}
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<FullPivHouseholderQR<_MatrixType>, Rhs>
+  : solve_retval_base<FullPivHouseholderQR<_MatrixType>, Rhs>
+{
+  EIGEN_MAKE_SOLVE_HELPERS(FullPivHouseholderQR<_MatrixType>,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    const Index rows = dec().rows(), cols = dec().cols();
+    eigen_assert(rhs().rows() == rows);
+
+    // FIXME introduce nonzeroPivots() and use it here. and more generally,
+    // make the same improvements in this dec as in FullPivLU.
+    if(dec().rank()==0)
+    {
+      dst.setZero();
+      return;
+    }
+
+    typename Rhs::PlainObject c(rhs());
+
+    Matrix<Scalar,1,Rhs::ColsAtCompileTime> temp(rhs().cols());
+    for (Index k = 0; k < dec().rank(); ++k)
+    {
+      Index remainingSize = rows-k;
+      c.row(k).swap(c.row(dec().rowsTranspositions().coeff(k)));
+      c.bottomRightCorner(remainingSize, rhs().cols())
+       .applyHouseholderOnTheLeft(dec().matrixQR().col(k).tail(remainingSize-1),
+                                  dec().hCoeffs().coeff(k), &temp.coeffRef(0));
+    }
+
+    dec().matrixQR()
+       .topLeftCorner(dec().rank(), dec().rank())
+       .template triangularView<Upper>()
+       .solveInPlace(c.topRows(dec().rank()));
+
+    for(Index i = 0; i < dec().rank(); ++i) dst.row(dec().colsPermutation().indices().coeff(i)) = c.row(i);
+    for(Index i = dec().rank(); i < cols; ++i) dst.row(dec().colsPermutation().indices().coeff(i)).setZero();
+  }
+};
+
+/** \ingroup QR_Module
+  *
+  * \brief Expression type for return value of FullPivHouseholderQR::matrixQ()
+  *
+  * \tparam MatrixType type of underlying dense matrix
+  */
+template<typename MatrixType> struct FullPivHouseholderQRMatrixQReturnType
+  : public ReturnByValue<FullPivHouseholderQRMatrixQReturnType<MatrixType> >
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename FullPivHouseholderQR<MatrixType>::IntDiagSizeVectorType IntDiagSizeVectorType;
+  typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
+  typedef Matrix<typename MatrixType::Scalar, 1, MatrixType::RowsAtCompileTime, RowMajor, 1,
+                 MatrixType::MaxRowsAtCompileTime> WorkVectorType;
+
+  FullPivHouseholderQRMatrixQReturnType(const MatrixType&       qr,
+                                        const HCoeffsType&      hCoeffs,
+                                        const IntDiagSizeVectorType& rowsTranspositions)
+    : m_qr(qr),
+      m_hCoeffs(hCoeffs),
+      m_rowsTranspositions(rowsTranspositions)
+      {}
+
+  template <typename ResultType>
+  void evalTo(ResultType& result) const
+  {
+    const Index rows = m_qr.rows();
+    WorkVectorType workspace(rows);
+    evalTo(result, workspace);
+  }
+
+  template <typename ResultType>
+  void evalTo(ResultType& result, WorkVectorType& workspace) const
+  {
+    using numext::conj;
+    // compute the product H'_0 H'_1 ... H'_n-1,
+    // where H_k is the k-th Householder transformation I - h_k v_k v_k'
+    // and v_k is the k-th Householder vector [1,m_qr(k+1,k), m_qr(k+2,k), ...]
+    const Index rows = m_qr.rows();
+    const Index cols = m_qr.cols();
+    const Index size = (std::min)(rows, cols);
+    workspace.resize(rows);
+    result.setIdentity(rows, rows);
+    for (Index k = size-1; k >= 0; k--)
+    {
+      result.block(k, k, rows-k, rows-k)
+            .applyHouseholderOnTheLeft(m_qr.col(k).tail(rows-k-1), conj(m_hCoeffs.coeff(k)), &workspace.coeffRef(k));
+      result.row(k).swap(result.row(m_rowsTranspositions.coeff(k)));
+    }
+  }
+
+    Index rows() const { return m_qr.rows(); }
+    Index cols() const { return m_qr.rows(); }
+
+protected:
+  typename MatrixType::Nested m_qr;
+  typename HCoeffsType::Nested m_hCoeffs;
+  typename IntDiagSizeVectorType::Nested m_rowsTranspositions;
+};
+
+} // end namespace internal
+
+template<typename MatrixType>
+inline typename FullPivHouseholderQR<MatrixType>::MatrixQReturnType FullPivHouseholderQR<MatrixType>::matrixQ() const
+{
+  eigen_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
+  return MatrixQReturnType(m_qr, m_hCoeffs, m_rows_transpositions);
+}
+
+/** \return the full-pivoting Householder QR decomposition of \c *this.
+  *
+  * \sa class FullPivHouseholderQR
+  */
+template<typename Derived>
+const FullPivHouseholderQR<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::fullPivHouseholderQr() const
+{
+  return FullPivHouseholderQR<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_FULLPIVOTINGHOUSEHOLDERQR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/HouseholderQR_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/HouseholderQR_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/HouseholderQR_MKL.h	(revision 2476)
@@ -0,0 +1,71 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *    Householder QR decomposition of a matrix w/o pivoting based on
+ *    LAPACKE_?geqrf function.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_QR_MKL_H
+#define EIGEN_QR_MKL_H
+
+#include "../Core/util/MKL_support.h"
+
+namespace Eigen { 
+
+  namespace internal {
+
+    /** \internal Specialization for the data types supported by MKL */
+
+#define EIGEN_MKL_QR_NOPIV(EIGTYPE, MKLTYPE, MKLPREFIX) \
+template<typename MatrixQR, typename HCoeffs> \
+struct householder_qr_inplace_blocked<MatrixQR, HCoeffs, EIGTYPE, true> \
+{ \
+  static void run(MatrixQR& mat, HCoeffs& hCoeffs, \
+      typename MatrixQR::Index = 32, \
+      typename MatrixQR::Scalar* = 0) \
+  { \
+    lapack_int m = (lapack_int) mat.rows(); \
+    lapack_int n = (lapack_int) mat.cols(); \
+    lapack_int lda = (lapack_int) mat.outerStride(); \
+    lapack_int matrix_order = (MatrixQR::IsRowMajor) ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR; \
+    LAPACKE_##MKLPREFIX##geqrf( matrix_order, m, n, (MKLTYPE*)mat.data(), lda, (MKLTYPE*)hCoeffs.data()); \
+    hCoeffs.adjointInPlace(); \
+  } \
+};
+
+EIGEN_MKL_QR_NOPIV(double, double, d)
+EIGEN_MKL_QR_NOPIV(float, float, s)
+EIGEN_MKL_QR_NOPIV(dcomplex, MKL_Complex16, z)
+EIGEN_MKL_QR_NOPIV(scomplex, MKL_Complex8, c)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_QR_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/ColPivHouseholderQR.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/ColPivHouseholderQR.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/ColPivHouseholderQR.h	(revision 2476)
@@ -0,0 +1,580 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COLPIVOTINGHOUSEHOLDERQR_H
+#define EIGEN_COLPIVOTINGHOUSEHOLDERQR_H
+
+namespace Eigen { 
+
+/** \ingroup QR_Module
+  *
+  * \class ColPivHouseholderQR
+  *
+  * \brief Householder rank-revealing QR decomposition of a matrix with column-pivoting
+  *
+  * \param MatrixType the type of the matrix of which we are computing the QR decomposition
+  *
+  * This class performs a rank-revealing QR decomposition of a matrix \b A into matrices \b P, \b Q and \b R
+  * such that 
+  * \f[
+  *  \mathbf{A} \, \mathbf{P} = \mathbf{Q} \, \mathbf{R}
+  * \f]
+  * by using Householder transformations. Here, \b P is a permutation matrix, \b Q a unitary matrix and \b R an 
+  * upper triangular matrix.
+  *
+  * This decomposition performs column pivoting in order to be rank-revealing and improve
+  * numerical stability. It is slower than HouseholderQR, and faster than FullPivHouseholderQR.
+  *
+  * \sa MatrixBase::colPivHouseholderQr()
+  */
+template<typename _MatrixType> class ColPivHouseholderQR
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, Options, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixQType;
+    typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
+    typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationType;
+    typedef typename internal::plain_row_type<MatrixType, Index>::type IntRowVectorType;
+    typedef typename internal::plain_row_type<MatrixType>::type RowVectorType;
+    typedef typename internal::plain_row_type<MatrixType, RealScalar>::type RealRowVectorType;
+    typedef HouseholderSequence<MatrixType,typename internal::remove_all<typename HCoeffsType::ConjugateReturnType>::type> HouseholderSequenceType;
+    
+  private:
+    
+    typedef typename PermutationType::Index PermIndexType;
+    
+  public:
+
+    /**
+    * \brief Default Constructor.
+    *
+    * The default constructor is useful in cases in which the user intends to
+    * perform decompositions via ColPivHouseholderQR::compute(const MatrixType&).
+    */
+    ColPivHouseholderQR()
+      : m_qr(),
+        m_hCoeffs(),
+        m_colsPermutation(),
+        m_colsTranspositions(),
+        m_temp(),
+        m_colSqNorms(),
+        m_isInitialized(false),
+        m_usePrescribedThreshold(false) {}
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa ColPivHouseholderQR()
+      */
+    ColPivHouseholderQR(Index rows, Index cols)
+      : m_qr(rows, cols),
+        m_hCoeffs((std::min)(rows,cols)),
+        m_colsPermutation(PermIndexType(cols)),
+        m_colsTranspositions(cols),
+        m_temp(cols),
+        m_colSqNorms(cols),
+        m_isInitialized(false),
+        m_usePrescribedThreshold(false) {}
+
+    /** \brief Constructs a QR factorization from a given matrix
+      *
+      * This constructor computes the QR factorization of the matrix \a matrix by calling
+      * the method compute(). It is a short cut for:
+      * 
+      * \code
+      * ColPivHouseholderQR<MatrixType> qr(matrix.rows(), matrix.cols());
+      * qr.compute(matrix);
+      * \endcode
+      * 
+      * \sa compute()
+      */
+    ColPivHouseholderQR(const MatrixType& matrix)
+      : m_qr(matrix.rows(), matrix.cols()),
+        m_hCoeffs((std::min)(matrix.rows(),matrix.cols())),
+        m_colsPermutation(PermIndexType(matrix.cols())),
+        m_colsTranspositions(matrix.cols()),
+        m_temp(matrix.cols()),
+        m_colSqNorms(matrix.cols()),
+        m_isInitialized(false),
+        m_usePrescribedThreshold(false)
+    {
+      compute(matrix);
+    }
+
+    /** This method finds a solution x to the equation Ax=b, where A is the matrix of which
+      * *this is the QR decomposition, if any exists.
+      *
+      * \param b the right-hand-side of the equation to solve.
+      *
+      * \returns a solution.
+      *
+      * \note The case where b is a matrix is not yet implemented. Also, this
+      *       code is space inefficient.
+      *
+      * \note_about_checking_solutions
+      *
+      * \note_about_arbitrary_choice_of_solution
+      *
+      * Example: \include ColPivHouseholderQR_solve.cpp
+      * Output: \verbinclude ColPivHouseholderQR_solve.out
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<ColPivHouseholderQR, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return internal::solve_retval<ColPivHouseholderQR, Rhs>(*this, b.derived());
+    }
+
+    HouseholderSequenceType householderQ(void) const;
+    HouseholderSequenceType matrixQ(void) const
+    {
+      return householderQ(); 
+    }
+
+    /** \returns a reference to the matrix where the Householder QR decomposition is stored
+      */
+    const MatrixType& matrixQR() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return m_qr;
+    }
+    
+    /** \returns a reference to the matrix where the result Householder QR is stored 
+     * \warning The strict lower part of this matrix contains internal values. 
+     * Only the upper triangular part should be referenced. To get it, use
+     * \code matrixR().template triangularView<Upper>() \endcode
+     * For rank-deficient matrices, use 
+     * \code 
+     * matrixR().topLeftCorner(rank(), rank()).template triangularView<Upper>() 
+     * \endcode
+     */
+    const MatrixType& matrixR() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return m_qr;
+    }
+    
+    ColPivHouseholderQR& compute(const MatrixType& matrix);
+
+    /** \returns a const reference to the column permutation matrix */
+    const PermutationType& colsPermutation() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return m_colsPermutation;
+    }
+
+    /** \returns the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the QR decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \warning a determinant can be very big or small, so for matrices
+      * of large enough dimension, there is a risk of overflow/underflow.
+      * One way to work around that is to use logAbsDeterminant() instead.
+      *
+      * \sa logAbsDeterminant(), MatrixBase::determinant()
+      */
+    typename MatrixType::RealScalar absDeterminant() const;
+
+    /** \returns the natural log of the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the QR decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \note This method is useful to work around the risk of overflow/underflow that's inherent
+      * to determinant computation.
+      *
+      * \sa absDeterminant(), MatrixBase::determinant()
+      */
+    typename MatrixType::RealScalar logAbsDeterminant() const;
+
+    /** \returns the rank of the matrix of which *this is the QR decomposition.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index rank() const
+    {
+      using std::abs;
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold();
+      Index result = 0;
+      for(Index i = 0; i < m_nonzero_pivots; ++i)
+        result += (abs(m_qr.coeff(i,i)) > premultiplied_threshold);
+      return result;
+    }
+
+    /** \returns the dimension of the kernel of the matrix of which *this is the QR decomposition.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index dimensionOfKernel() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return cols() - rank();
+    }
+
+    /** \returns true if the matrix of which *this is the QR decomposition represents an injective
+      *          linear map, i.e. has trivial kernel; false otherwise.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isInjective() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return rank() == cols();
+    }
+
+    /** \returns true if the matrix of which *this is the QR decomposition represents a surjective
+      *          linear map; false otherwise.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isSurjective() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return rank() == rows();
+    }
+
+    /** \returns true if the matrix of which *this is the QR decomposition is invertible.
+      *
+      * \note This method has to determine which pivots should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline bool isInvertible() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return isInjective() && isSurjective();
+    }
+
+    /** \returns the inverse of the matrix of which *this is the QR decomposition.
+      *
+      * \note If this matrix is not invertible, the returned matrix has undefined coefficients.
+      *       Use isInvertible() to first determine whether this matrix is invertible.
+      */
+    inline const
+    internal::solve_retval<ColPivHouseholderQR, typename MatrixType::IdentityReturnType>
+    inverse() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return internal::solve_retval<ColPivHouseholderQR,typename MatrixType::IdentityReturnType>
+               (*this, MatrixType::Identity(m_qr.rows(), m_qr.cols()));
+    }
+
+    inline Index rows() const { return m_qr.rows(); }
+    inline Index cols() const { return m_qr.cols(); }
+    
+    /** \returns a const reference to the vector of Householder coefficients used to represent the factor \c Q.
+      * 
+      * For advanced uses only.
+      */
+    const HCoeffsType& hCoeffs() const { return m_hCoeffs; }
+
+    /** Allows to prescribe a threshold to be used by certain methods, such as rank(),
+      * who need to determine when pivots are to be considered nonzero. This is not used for the
+      * QR decomposition itself.
+      *
+      * When it needs to get the threshold value, Eigen calls threshold(). By default, this
+      * uses a formula to automatically determine a reasonable threshold.
+      * Once you have called the present method setThreshold(const RealScalar&),
+      * your value is used instead.
+      *
+      * \param threshold The new value to use as the threshold.
+      *
+      * A pivot will be considered nonzero if its absolute value is strictly greater than
+      *  \f$ \vert pivot \vert \leqslant threshold \times \vert maxpivot \vert \f$
+      * where maxpivot is the biggest pivot.
+      *
+      * If you want to come back to the default behavior, call setThreshold(Default_t)
+      */
+    ColPivHouseholderQR& setThreshold(const RealScalar& threshold)
+    {
+      m_usePrescribedThreshold = true;
+      m_prescribedThreshold = threshold;
+      return *this;
+    }
+
+    /** Allows to come back to the default behavior, letting Eigen use its default formula for
+      * determining the threshold.
+      *
+      * You should pass the special object Eigen::Default as parameter here.
+      * \code qr.setThreshold(Eigen::Default); \endcode
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    ColPivHouseholderQR& setThreshold(Default_t)
+    {
+      m_usePrescribedThreshold = false;
+      return *this;
+    }
+
+    /** Returns the threshold that will be used by certain methods such as rank().
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    RealScalar threshold() const
+    {
+      eigen_assert(m_isInitialized || m_usePrescribedThreshold);
+      return m_usePrescribedThreshold ? m_prescribedThreshold
+      // this formula comes from experimenting (see "LU precision tuning" thread on the list)
+      // and turns out to be identical to Higham's formula used already in LDLt.
+                                      : NumTraits<Scalar>::epsilon() * RealScalar(m_qr.diagonalSize());
+    }
+
+    /** \returns the number of nonzero pivots in the QR decomposition.
+      * Here nonzero is meant in the exact sense, not in a fuzzy sense.
+      * So that notion isn't really intrinsically interesting, but it is
+      * still useful when implementing algorithms.
+      *
+      * \sa rank()
+      */
+    inline Index nonzeroPivots() const
+    {
+      eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+      return m_nonzero_pivots;
+    }
+
+    /** \returns the absolute value of the biggest pivot, i.e. the biggest
+      *          diagonal coefficient of R.
+      */
+    RealScalar maxPivot() const { return m_maxpivot; }
+    
+    /** \brief Reports whether the QR factorization was succesful.
+      *
+      * \note This function always returns \c Success. It is provided for compatibility 
+      * with other factorization routines.
+      * \returns \c Success 
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return Success;
+    }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    MatrixType m_qr;
+    HCoeffsType m_hCoeffs;
+    PermutationType m_colsPermutation;
+    IntRowVectorType m_colsTranspositions;
+    RowVectorType m_temp;
+    RealRowVectorType m_colSqNorms;
+    bool m_isInitialized, m_usePrescribedThreshold;
+    RealScalar m_prescribedThreshold, m_maxpivot;
+    Index m_nonzero_pivots;
+    Index m_det_pq;
+};
+
+template<typename MatrixType>
+typename MatrixType::RealScalar ColPivHouseholderQR<MatrixType>::absDeterminant() const
+{
+  using std::abs;
+  eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+  return abs(m_qr.diagonal().prod());
+}
+
+template<typename MatrixType>
+typename MatrixType::RealScalar ColPivHouseholderQR<MatrixType>::logAbsDeterminant() const
+{
+  eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+  return m_qr.diagonal().cwiseAbs().array().log().sum();
+}
+
+/** Performs the QR factorization of the given matrix \a matrix. The result of
+  * the factorization is stored into \c *this, and a reference to \c *this
+  * is returned.
+  *
+  * \sa class ColPivHouseholderQR, ColPivHouseholderQR(const MatrixType&)
+  */
+template<typename MatrixType>
+ColPivHouseholderQR<MatrixType>& ColPivHouseholderQR<MatrixType>::compute(const MatrixType& matrix)
+{
+  check_template_parameters();
+  
+  using std::abs;
+  Index rows = matrix.rows();
+  Index cols = matrix.cols();
+  Index size = matrix.diagonalSize();
+  
+  // the column permutation is stored as int indices, so just to be sure:
+  eigen_assert(cols<=NumTraits<int>::highest());
+
+  m_qr = matrix;
+  m_hCoeffs.resize(size);
+
+  m_temp.resize(cols);
+
+  m_colsTranspositions.resize(matrix.cols());
+  Index number_of_transpositions = 0;
+
+  m_colSqNorms.resize(cols);
+  for(Index k = 0; k < cols; ++k)
+    m_colSqNorms.coeffRef(k) = m_qr.col(k).squaredNorm();
+
+  RealScalar threshold_helper = m_colSqNorms.maxCoeff() * numext::abs2(NumTraits<Scalar>::epsilon()) / RealScalar(rows);
+
+  m_nonzero_pivots = size; // the generic case is that in which all pivots are nonzero (invertible case)
+  m_maxpivot = RealScalar(0);
+
+  for(Index k = 0; k < size; ++k)
+  {
+    // first, we look up in our table m_colSqNorms which column has the biggest squared norm
+    Index biggest_col_index;
+    RealScalar biggest_col_sq_norm = m_colSqNorms.tail(cols-k).maxCoeff(&biggest_col_index);
+    biggest_col_index += k;
+
+    // since our table m_colSqNorms accumulates imprecision at every step, we must now recompute
+    // the actual squared norm of the selected column.
+    // Note that not doing so does result in solve() sometimes returning inf/nan values
+    // when running the unit test with 1000 repetitions.
+    biggest_col_sq_norm = m_qr.col(biggest_col_index).tail(rows-k).squaredNorm();
+
+    // we store that back into our table: it can't hurt to correct our table.
+    m_colSqNorms.coeffRef(biggest_col_index) = biggest_col_sq_norm;
+
+    // Track the number of meaningful pivots but do not stop the decomposition to make
+    // sure that the initial matrix is properly reproduced. See bug 941.
+    if(m_nonzero_pivots==size && biggest_col_sq_norm < threshold_helper * RealScalar(rows-k))
+      m_nonzero_pivots = k;
+
+    // apply the transposition to the columns
+    m_colsTranspositions.coeffRef(k) = biggest_col_index;
+    if(k != biggest_col_index) {
+      m_qr.col(k).swap(m_qr.col(biggest_col_index));
+      std::swap(m_colSqNorms.coeffRef(k), m_colSqNorms.coeffRef(biggest_col_index));
+      ++number_of_transpositions;
+    }
+
+    // generate the householder vector, store it below the diagonal
+    RealScalar beta;
+    m_qr.col(k).tail(rows-k).makeHouseholderInPlace(m_hCoeffs.coeffRef(k), beta);
+
+    // apply the householder transformation to the diagonal coefficient
+    m_qr.coeffRef(k,k) = beta;
+
+    // remember the maximum absolute value of diagonal coefficients
+    if(abs(beta) > m_maxpivot) m_maxpivot = abs(beta);
+
+    // apply the householder transformation
+    m_qr.bottomRightCorner(rows-k, cols-k-1)
+        .applyHouseholderOnTheLeft(m_qr.col(k).tail(rows-k-1), m_hCoeffs.coeffRef(k), &m_temp.coeffRef(k+1));
+
+    // update our table of squared norms of the columns
+    m_colSqNorms.tail(cols-k-1) -= m_qr.row(k).tail(cols-k-1).cwiseAbs2();
+  }
+
+  m_colsPermutation.setIdentity(PermIndexType(cols));
+  for(PermIndexType k = 0; k < size/*m_nonzero_pivots*/; ++k)
+    m_colsPermutation.applyTranspositionOnTheRight(k, PermIndexType(m_colsTranspositions.coeff(k)));
+
+  m_det_pq = (number_of_transpositions%2) ? -1 : 1;
+  m_isInitialized = true;
+
+  return *this;
+}
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<ColPivHouseholderQR<_MatrixType>, Rhs>
+  : solve_retval_base<ColPivHouseholderQR<_MatrixType>, Rhs>
+{
+  EIGEN_MAKE_SOLVE_HELPERS(ColPivHouseholderQR<_MatrixType>,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    eigen_assert(rhs().rows() == dec().rows());
+
+    const Index cols = dec().cols(),
+				nonzero_pivots = dec().nonzeroPivots();
+
+    if(nonzero_pivots == 0)
+    {
+      dst.setZero();
+      return;
+    }
+
+    typename Rhs::PlainObject c(rhs());
+
+    // Note that the matrix Q = H_0^* H_1^*... so its inverse is Q^* = (H_0 H_1 ...)^T
+    c.applyOnTheLeft(householderSequence(dec().matrixQR(), dec().hCoeffs())
+                     .setLength(dec().nonzeroPivots())
+		     .transpose()
+      );
+
+    dec().matrixR()
+       .topLeftCorner(nonzero_pivots, nonzero_pivots)
+       .template triangularView<Upper>()
+       .solveInPlace(c.topRows(nonzero_pivots));
+
+    for(Index i = 0; i < nonzero_pivots; ++i) dst.row(dec().colsPermutation().indices().coeff(i)) = c.row(i);
+    for(Index i = nonzero_pivots; i < cols; ++i) dst.row(dec().colsPermutation().indices().coeff(i)).setZero();
+  }
+};
+
+} // end namespace internal
+
+/** \returns the matrix Q as a sequence of householder transformations.
+  * You can extract the meaningful part only by using:
+  * \code qr.householderQ().setLength(qr.nonzeroPivots()) \endcode*/
+template<typename MatrixType>
+typename ColPivHouseholderQR<MatrixType>::HouseholderSequenceType ColPivHouseholderQR<MatrixType>
+  ::householderQ() const
+{
+  eigen_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
+  return HouseholderSequenceType(m_qr, m_hCoeffs.conjugate());
+}
+
+/** \return the column-pivoting Householder QR decomposition of \c *this.
+  *
+  * \sa class ColPivHouseholderQR
+  */
+template<typename Derived>
+const ColPivHouseholderQR<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::colPivHouseholderQr() const
+{
+  return ColPivHouseholderQR<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_COLPIVOTINGHOUSEHOLDERQR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/ColPivHouseholderQR_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/ColPivHouseholderQR_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/ColPivHouseholderQR_MKL.h	(revision 2476)
@@ -0,0 +1,98 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *    Householder QR decomposition of a matrix with column pivoting based on
+ *    LAPACKE_?geqp3 function.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_COLPIVOTINGHOUSEHOLDERQR_MKL_H
+#define EIGEN_COLPIVOTINGHOUSEHOLDERQR_MKL_H
+
+#include "Eigen/src/Core/util/MKL_support.h"
+
+namespace Eigen { 
+
+/** \internal Specialization for the data types supported by MKL */
+
+#define EIGEN_MKL_QR_COLPIV(EIGTYPE, MKLTYPE, MKLPREFIX, EIGCOLROW, MKLCOLROW) \
+template<> inline \
+ColPivHouseholderQR<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> >& \
+ColPivHouseholderQR<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> >::compute( \
+              const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>& matrix) \
+\
+{ \
+  using std::abs; \
+  typedef Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> MatrixType; \
+  typedef MatrixType::RealScalar RealScalar; \
+  Index rows = matrix.rows();\
+  Index cols = matrix.cols();\
+  Index size = matrix.diagonalSize();\
+\
+  m_qr = matrix;\
+  m_hCoeffs.resize(size);\
+\
+  m_colsTranspositions.resize(cols);\
+  /*Index number_of_transpositions = 0;*/ \
+\
+  m_nonzero_pivots = 0; \
+  m_maxpivot = RealScalar(0);\
+  m_colsPermutation.resize(cols); \
+  m_colsPermutation.indices().setZero(); \
+\
+  lapack_int lda = m_qr.outerStride(), i; \
+  lapack_int matrix_order = MKLCOLROW; \
+  LAPACKE_##MKLPREFIX##geqp3( matrix_order, rows, cols, (MKLTYPE*)m_qr.data(), lda, (lapack_int*)m_colsPermutation.indices().data(), (MKLTYPE*)m_hCoeffs.data()); \
+  m_isInitialized = true; \
+  m_maxpivot=m_qr.diagonal().cwiseAbs().maxCoeff(); \
+  m_hCoeffs.adjointInPlace(); \
+  RealScalar premultiplied_threshold = abs(m_maxpivot) * threshold(); \
+  lapack_int *perm = m_colsPermutation.indices().data(); \
+  for(i=0;i<size;i++) { \
+    m_nonzero_pivots += (abs(m_qr.coeff(i,i)) > premultiplied_threshold);\
+  } \
+  for(i=0;i<cols;i++) perm[i]--;\
+\
+  /*m_det_pq = (number_of_transpositions%2) ? -1 : 1;  // TODO: It's not needed now; fix upon availability in Eigen */ \
+\
+  return *this; \
+}
+
+EIGEN_MKL_QR_COLPIV(double,   double,        d, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_QR_COLPIV(float,    float,         s, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_QR_COLPIV(dcomplex, MKL_Complex16, z, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_QR_COLPIV(scomplex, MKL_Complex8,  c, ColMajor, LAPACK_COL_MAJOR)
+
+EIGEN_MKL_QR_COLPIV(double,   double,        d, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_QR_COLPIV(float,    float,         s, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_QR_COLPIV(dcomplex, MKL_Complex16, z, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_QR_COLPIV(scomplex, MKL_Complex8,  c, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_COLPIVOTINGHOUSEHOLDERQR_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/HouseholderQR.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/HouseholderQR.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/QR/HouseholderQR.h	(revision 2476)
@@ -0,0 +1,388 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2010 Vincent Lejeune
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_QR_H
+#define EIGEN_QR_H
+
+namespace Eigen { 
+
+/** \ingroup QR_Module
+  *
+  *
+  * \class HouseholderQR
+  *
+  * \brief Householder QR decomposition of a matrix
+  *
+  * \param MatrixType the type of the matrix of which we are computing the QR decomposition
+  *
+  * This class performs a QR decomposition of a matrix \b A into matrices \b Q and \b R
+  * such that 
+  * \f[
+  *  \mathbf{A} = \mathbf{Q} \, \mathbf{R}
+  * \f]
+  * by using Householder transformations. Here, \b Q a unitary matrix and \b R an upper triangular matrix.
+  * The result is stored in a compact way compatible with LAPACK.
+  *
+  * Note that no pivoting is performed. This is \b not a rank-revealing decomposition.
+  * If you want that feature, use FullPivHouseholderQR or ColPivHouseholderQR instead.
+  *
+  * This Householder QR decomposition is faster, but less numerically stable and less feature-full than
+  * FullPivHouseholderQR or ColPivHouseholderQR.
+  *
+  * \sa MatrixBase::householderQr()
+  */
+template<typename _MatrixType> class HouseholderQR
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      Options = MatrixType::Options,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, (MatrixType::Flags&RowMajorBit) ? RowMajor : ColMajor, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixQType;
+    typedef typename internal::plain_diag_type<MatrixType>::type HCoeffsType;
+    typedef typename internal::plain_row_type<MatrixType>::type RowVectorType;
+    typedef HouseholderSequence<MatrixType,typename internal::remove_all<typename HCoeffsType::ConjugateReturnType>::type> HouseholderSequenceType;
+
+    /**
+      * \brief Default Constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via HouseholderQR::compute(const MatrixType&).
+      */
+    HouseholderQR() : m_qr(), m_hCoeffs(), m_temp(), m_isInitialized(false) {}
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem \a size.
+      * \sa HouseholderQR()
+      */
+    HouseholderQR(Index rows, Index cols)
+      : m_qr(rows, cols),
+        m_hCoeffs((std::min)(rows,cols)),
+        m_temp(cols),
+        m_isInitialized(false) {}
+
+    /** \brief Constructs a QR factorization from a given matrix
+      *
+      * This constructor computes the QR factorization of the matrix \a matrix by calling
+      * the method compute(). It is a short cut for:
+      * 
+      * \code
+      * HouseholderQR<MatrixType> qr(matrix.rows(), matrix.cols());
+      * qr.compute(matrix);
+      * \endcode
+      * 
+      * \sa compute()
+      */
+    HouseholderQR(const MatrixType& matrix)
+      : m_qr(matrix.rows(), matrix.cols()),
+        m_hCoeffs((std::min)(matrix.rows(),matrix.cols())),
+        m_temp(matrix.cols()),
+        m_isInitialized(false)
+    {
+      compute(matrix);
+    }
+
+    /** This method finds a solution x to the equation Ax=b, where A is the matrix of which
+      * *this is the QR decomposition, if any exists.
+      *
+      * \param b the right-hand-side of the equation to solve.
+      *
+      * \returns a solution.
+      *
+      * \note The case where b is a matrix is not yet implemented. Also, this
+      *       code is space inefficient.
+      *
+      * \note_about_checking_solutions
+      *
+      * \note_about_arbitrary_choice_of_solution
+      *
+      * Example: \include HouseholderQR_solve.cpp
+      * Output: \verbinclude HouseholderQR_solve.out
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<HouseholderQR, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+      return internal::solve_retval<HouseholderQR, Rhs>(*this, b.derived());
+    }
+
+    /** This method returns an expression of the unitary matrix Q as a sequence of Householder transformations.
+      *
+      * The returned expression can directly be used to perform matrix products. It can also be assigned to a dense Matrix object.
+      * Here is an example showing how to recover the full or thin matrix Q, as well as how to perform matrix products using operator*:
+      *
+      * Example: \include HouseholderQR_householderQ.cpp
+      * Output: \verbinclude HouseholderQR_householderQ.out
+      */
+    HouseholderSequenceType householderQ() const
+    {
+      eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+      return HouseholderSequenceType(m_qr, m_hCoeffs.conjugate());
+    }
+
+    /** \returns a reference to the matrix where the Householder QR decomposition is stored
+      * in a LAPACK-compatible way.
+      */
+    const MatrixType& matrixQR() const
+    {
+        eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+        return m_qr;
+    }
+
+    HouseholderQR& compute(const MatrixType& matrix);
+
+    /** \returns the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the QR decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \warning a determinant can be very big or small, so for matrices
+      * of large enough dimension, there is a risk of overflow/underflow.
+      * One way to work around that is to use logAbsDeterminant() instead.
+      *
+      * \sa logAbsDeterminant(), MatrixBase::determinant()
+      */
+    typename MatrixType::RealScalar absDeterminant() const;
+
+    /** \returns the natural log of the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition. It has only linear complexity
+      * (that is, O(n) where n is the dimension of the square matrix)
+      * as the QR decomposition has already been computed.
+      *
+      * \note This is only for square matrices.
+      *
+      * \note This method is useful to work around the risk of overflow/underflow that's inherent
+      * to determinant computation.
+      *
+      * \sa absDeterminant(), MatrixBase::determinant()
+      */
+    typename MatrixType::RealScalar logAbsDeterminant() const;
+
+    inline Index rows() const { return m_qr.rows(); }
+    inline Index cols() const { return m_qr.cols(); }
+    
+    /** \returns a const reference to the vector of Householder coefficients used to represent the factor \c Q.
+      * 
+      * For advanced uses only.
+      */
+    const HCoeffsType& hCoeffs() const { return m_hCoeffs; }
+
+  protected:
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+    
+    MatrixType m_qr;
+    HCoeffsType m_hCoeffs;
+    RowVectorType m_temp;
+    bool m_isInitialized;
+};
+
+template<typename MatrixType>
+typename MatrixType::RealScalar HouseholderQR<MatrixType>::absDeterminant() const
+{
+  using std::abs;
+  eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+  return abs(m_qr.diagonal().prod());
+}
+
+template<typename MatrixType>
+typename MatrixType::RealScalar HouseholderQR<MatrixType>::logAbsDeterminant() const
+{
+  eigen_assert(m_isInitialized && "HouseholderQR is not initialized.");
+  eigen_assert(m_qr.rows() == m_qr.cols() && "You can't take the determinant of a non-square matrix!");
+  return m_qr.diagonal().cwiseAbs().array().log().sum();
+}
+
+namespace internal {
+
+/** \internal */
+template<typename MatrixQR, typename HCoeffs>
+void householder_qr_inplace_unblocked(MatrixQR& mat, HCoeffs& hCoeffs, typename MatrixQR::Scalar* tempData = 0)
+{
+  typedef typename MatrixQR::Index Index;
+  typedef typename MatrixQR::Scalar Scalar;
+  typedef typename MatrixQR::RealScalar RealScalar;
+  Index rows = mat.rows();
+  Index cols = mat.cols();
+  Index size = (std::min)(rows,cols);
+
+  eigen_assert(hCoeffs.size() == size);
+
+  typedef Matrix<Scalar,MatrixQR::ColsAtCompileTime,1> TempType;
+  TempType tempVector;
+  if(tempData==0)
+  {
+    tempVector.resize(cols);
+    tempData = tempVector.data();
+  }
+
+  for(Index k = 0; k < size; ++k)
+  {
+    Index remainingRows = rows - k;
+    Index remainingCols = cols - k - 1;
+
+    RealScalar beta;
+    mat.col(k).tail(remainingRows).makeHouseholderInPlace(hCoeffs.coeffRef(k), beta);
+    mat.coeffRef(k,k) = beta;
+
+    // apply H to remaining part of m_qr from the left
+    mat.bottomRightCorner(remainingRows, remainingCols)
+        .applyHouseholderOnTheLeft(mat.col(k).tail(remainingRows-1), hCoeffs.coeffRef(k), tempData+k+1);
+  }
+}
+
+/** \internal */
+template<typename MatrixQR, typename HCoeffs,
+  typename MatrixQRScalar = typename MatrixQR::Scalar,
+  bool InnerStrideIsOne = (MatrixQR::InnerStrideAtCompileTime == 1 && HCoeffs::InnerStrideAtCompileTime == 1)>
+struct householder_qr_inplace_blocked
+{
+  // This is specialized for MKL-supported Scalar types in HouseholderQR_MKL.h
+  static void run(MatrixQR& mat, HCoeffs& hCoeffs,
+      typename MatrixQR::Index maxBlockSize=32,
+      typename MatrixQR::Scalar* tempData = 0)
+  {
+    typedef typename MatrixQR::Index Index;
+    typedef typename MatrixQR::Scalar Scalar;
+    typedef Block<MatrixQR,Dynamic,Dynamic> BlockType;
+
+    Index rows = mat.rows();
+    Index cols = mat.cols();
+    Index size = (std::min)(rows, cols);
+
+    typedef Matrix<Scalar,Dynamic,1,ColMajor,MatrixQR::MaxColsAtCompileTime,1> TempType;
+    TempType tempVector;
+    if(tempData==0)
+    {
+      tempVector.resize(cols);
+      tempData = tempVector.data();
+    }
+
+    Index blockSize = (std::min)(maxBlockSize,size);
+
+    Index k = 0;
+    for (k = 0; k < size; k += blockSize)
+    {
+      Index bs = (std::min)(size-k,blockSize);  // actual size of the block
+      Index tcols = cols - k - bs;            // trailing columns
+      Index brows = rows-k;                   // rows of the block
+
+      // partition the matrix:
+      //        A00 | A01 | A02
+      // mat  = A10 | A11 | A12
+      //        A20 | A21 | A22
+      // and performs the qr dec of [A11^T A12^T]^T
+      // and update [A21^T A22^T]^T using level 3 operations.
+      // Finally, the algorithm continue on A22
+
+      BlockType A11_21 = mat.block(k,k,brows,bs);
+      Block<HCoeffs,Dynamic,1> hCoeffsSegment = hCoeffs.segment(k,bs);
+
+      householder_qr_inplace_unblocked(A11_21, hCoeffsSegment, tempData);
+
+      if(tcols)
+      {
+        BlockType A21_22 = mat.block(k,k+bs,brows,tcols);
+        apply_block_householder_on_the_left(A21_22,A11_21,hCoeffsSegment.adjoint());
+      }
+    }
+  }
+};
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<HouseholderQR<_MatrixType>, Rhs>
+  : solve_retval_base<HouseholderQR<_MatrixType>, Rhs>
+{
+  EIGEN_MAKE_SOLVE_HELPERS(HouseholderQR<_MatrixType>,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    const Index rows = dec().rows(), cols = dec().cols();
+    const Index rank = (std::min)(rows, cols);
+    eigen_assert(rhs().rows() == rows);
+
+    typename Rhs::PlainObject c(rhs());
+
+    // Note that the matrix Q = H_0^* H_1^*... so its inverse is Q^* = (H_0 H_1 ...)^T
+    c.applyOnTheLeft(householderSequence(
+      dec().matrixQR().leftCols(rank),
+      dec().hCoeffs().head(rank)).transpose()
+    );
+
+    dec().matrixQR()
+       .topLeftCorner(rank, rank)
+       .template triangularView<Upper>()
+       .solveInPlace(c.topRows(rank));
+
+    dst.topRows(rank) = c.topRows(rank);
+    dst.bottomRows(cols-rank).setZero();
+  }
+};
+
+} // end namespace internal
+
+/** Performs the QR factorization of the given matrix \a matrix. The result of
+  * the factorization is stored into \c *this, and a reference to \c *this
+  * is returned.
+  *
+  * \sa class HouseholderQR, HouseholderQR(const MatrixType&)
+  */
+template<typename MatrixType>
+HouseholderQR<MatrixType>& HouseholderQR<MatrixType>::compute(const MatrixType& matrix)
+{
+  check_template_parameters();
+  
+  Index rows = matrix.rows();
+  Index cols = matrix.cols();
+  Index size = (std::min)(rows,cols);
+
+  m_qr = matrix;
+  m_hCoeffs.resize(size);
+
+  m_temp.resize(cols);
+
+  internal::householder_qr_inplace_blocked<MatrixType, HCoeffsType>::run(m_qr, m_hCoeffs, 48, m_temp.data());
+
+  m_isInitialized = true;
+  return *this;
+}
+
+/** \return the Householder QR decomposition of \c *this.
+  *
+  * \sa class HouseholderQR
+  */
+template<typename Derived>
+const HouseholderQR<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::householderQr() const
+{
+  return HouseholderQR<PlainObject>(eval());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_QR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h	(revision 2476)
@@ -0,0 +1,338 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Desire Nuentsa <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SUITESPARSEQRSUPPORT_H
+#define EIGEN_SUITESPARSEQRSUPPORT_H
+
+namespace Eigen {
+  
+  template<typename MatrixType> class SPQR; 
+  template<typename SPQRType> struct SPQRMatrixQReturnType; 
+  template<typename SPQRType> struct SPQRMatrixQTransposeReturnType; 
+  template <typename SPQRType, typename Derived> struct SPQR_QProduct;
+  namespace internal {
+    template <typename SPQRType> struct traits<SPQRMatrixQReturnType<SPQRType> >
+    {
+      typedef typename SPQRType::MatrixType ReturnType;
+    };
+    template <typename SPQRType> struct traits<SPQRMatrixQTransposeReturnType<SPQRType> >
+    {
+      typedef typename SPQRType::MatrixType ReturnType;
+    };
+    template <typename SPQRType, typename Derived> struct traits<SPQR_QProduct<SPQRType, Derived> >
+    {
+      typedef typename Derived::PlainObject ReturnType;
+    };
+  } // End namespace internal
+  
+/**
+ * \ingroup SPQRSupport_Module
+ * \class SPQR
+ * \brief Sparse QR factorization based on SuiteSparseQR library
+ * 
+ * This class is used to perform a multithreaded and multifrontal rank-revealing QR decomposition 
+ * of sparse matrices. The result is then used to solve linear leasts_square systems.
+ * Clearly, a QR factorization is returned such that A*P = Q*R where :
+ * 
+ * P is the column permutation. Use colsPermutation() to get it.
+ * 
+ * Q is the orthogonal matrix represented as Householder reflectors. 
+ * Use matrixQ() to get an expression and matrixQ().transpose() to get the transpose.
+ * You can then apply it to a vector.
+ * 
+ * R is the sparse triangular factor. Use matrixQR() to get it as SparseMatrix.
+ * NOTE : The Index type of R is always SuiteSparse_long. You can get it with SPQR::Index
+ * 
+ * \tparam _MatrixType The type of the sparse matrix A, must be a column-major SparseMatrix<>
+ * NOTE 
+ * 
+ */
+template<typename _MatrixType>
+class SPQR
+{
+  public:
+    typedef typename _MatrixType::Scalar Scalar;
+    typedef typename _MatrixType::RealScalar RealScalar;
+    typedef SuiteSparse_long Index ;
+    typedef SparseMatrix<Scalar, ColMajor, Index> MatrixType;
+    typedef PermutationMatrix<Dynamic, Dynamic> PermutationType;
+  public:
+    SPQR() 
+      : m_isInitialized(false), m_ordering(SPQR_ORDERING_DEFAULT), m_allow_tol(SPQR_DEFAULT_TOL), m_tolerance (NumTraits<Scalar>::epsilon()), m_useDefaultThreshold(true)
+    { 
+      cholmod_l_start(&m_cc);
+    }
+    
+    SPQR(const _MatrixType& matrix)
+    : m_isInitialized(false), m_ordering(SPQR_ORDERING_DEFAULT), m_allow_tol(SPQR_DEFAULT_TOL), m_tolerance (NumTraits<Scalar>::epsilon()), m_useDefaultThreshold(true)
+    {
+      cholmod_l_start(&m_cc);
+      compute(matrix);
+    }
+    
+    ~SPQR()
+    {
+      SPQR_free();
+      cholmod_l_finish(&m_cc);
+    }
+    void SPQR_free()
+    {
+      cholmod_l_free_sparse(&m_H, &m_cc);
+      cholmod_l_free_sparse(&m_cR, &m_cc);
+      cholmod_l_free_dense(&m_HTau, &m_cc);
+      std::free(m_E);
+      std::free(m_HPinv);
+    }
+
+    void compute(const _MatrixType& matrix)
+    {
+      if(m_isInitialized) SPQR_free();
+
+      MatrixType mat(matrix);
+      
+      /* Compute the default threshold as in MatLab, see:
+       * Tim Davis, "Algorithm 915, SuiteSparseQR: Multifrontal Multithreaded Rank-Revealing
+       * Sparse QR Factorization, ACM Trans. on Math. Soft. 38(1), 2011, Page 8:3 
+       */
+      RealScalar pivotThreshold = m_tolerance;
+      if(m_useDefaultThreshold) 
+      {
+        using std::max;
+        RealScalar max2Norm = 0.0;
+        for (int j = 0; j < mat.cols(); j++) max2Norm = (max)(max2Norm, mat.col(j).norm());
+        if(max2Norm==RealScalar(0))
+          max2Norm = RealScalar(1);
+        pivotThreshold = 20 * (mat.rows() + mat.cols()) * max2Norm * NumTraits<RealScalar>::epsilon();
+      }
+      
+      cholmod_sparse A; 
+      A = viewAsCholmod(mat);
+      Index col = matrix.cols();
+      m_rank = SuiteSparseQR<Scalar>(m_ordering, pivotThreshold, col, &A, 
+                             &m_cR, &m_E, &m_H, &m_HPinv, &m_HTau, &m_cc);
+
+      if (!m_cR)
+      {
+        m_info = NumericalIssue; 
+        m_isInitialized = false;
+        return;
+      }
+      m_info = Success;
+      m_isInitialized = true;
+      m_isRUpToDate = false;
+    }
+    /** 
+     * Get the number of rows of the input matrix and the Q matrix
+     */
+    inline Index rows() const {return m_cR->nrow; }
+    
+    /** 
+     * Get the number of columns of the input matrix. 
+     */
+    inline Index cols() const { return m_cR->ncol; }
+   
+      /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<SPQR, Rhs> solve(const MatrixBase<Rhs>& B) const 
+    {
+      eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
+      eigen_assert(this->rows()==B.rows()
+                    && "SPQR::solve(): invalid number of rows of the right hand side matrix B");
+          return internal::solve_retval<SPQR, Rhs>(*this, B.derived());
+    }
+    
+    template<typename Rhs, typename Dest>
+    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
+    {
+      eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
+      eigen_assert(b.cols()==1 && "This method is for vectors only");
+
+      //Compute Q^T * b
+      typename Dest::PlainObject y, y2;
+      y = matrixQ().transpose() * b;
+      
+      // Solves with the triangular matrix R
+      Index rk = this->rank();
+      y2 = y;
+      y.resize((std::max)(cols(),Index(y.rows())),y.cols());
+      y.topRows(rk) = this->matrixR().topLeftCorner(rk, rk).template triangularView<Upper>().solve(y2.topRows(rk));
+
+      // Apply the column permutation 
+      // colsPermutation() performs a copy of the permutation,
+      // so let's apply it manually:
+      for(Index i = 0; i < rk; ++i) dest.row(m_E[i]) = y.row(i);
+      for(Index i = rk; i < cols(); ++i) dest.row(m_E[i]).setZero();
+      
+//       y.bottomRows(y.rows()-rk).setZero();
+//       dest = colsPermutation() * y.topRows(cols());
+      
+      m_info = Success;
+    }
+    
+    /** \returns the sparse triangular factor R. It is a sparse matrix
+     */
+    const MatrixType matrixR() const
+    {
+      eigen_assert(m_isInitialized && " The QR factorization should be computed first, call compute()");
+      if(!m_isRUpToDate) {
+        m_R = viewAsEigen<Scalar,ColMajor, typename MatrixType::Index>(*m_cR);
+        m_isRUpToDate = true;
+      }
+      return m_R;
+    }
+    /// Get an expression of the matrix Q
+    SPQRMatrixQReturnType<SPQR> matrixQ() const
+    {
+      return SPQRMatrixQReturnType<SPQR>(*this);
+    }
+    /// Get the permutation that was applied to columns of A
+    PermutationType colsPermutation() const
+    { 
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      Index n = m_cR->ncol;
+      PermutationType colsPerm(n);
+      for(Index j = 0; j <n; j++) colsPerm.indices()(j) = m_E[j];
+      return colsPerm; 
+      
+    }
+    /**
+     * Gets the rank of the matrix. 
+     * It should be equal to matrixQR().cols if the matrix is full-rank
+     */
+    Index rank() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_cc.SPQR_istat[4];
+    }
+    /// Set the fill-reducing ordering method to be used
+    void setSPQROrdering(int ord) { m_ordering = ord;}
+    /// Set the tolerance tol to treat columns with 2-norm < =tol as zero
+    void setPivotThreshold(const RealScalar& tol)
+    {
+      m_useDefaultThreshold = false;
+      m_tolerance = tol;
+    }
+    
+    /** \returns a pointer to the SPQR workspace */
+    cholmod_common *cholmodCommon() const { return &m_cc; }
+    
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the sparse QR can not be computed
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+  protected:
+    bool m_isInitialized;
+    bool m_analysisIsOk;
+    bool m_factorizationIsOk;
+    mutable bool m_isRUpToDate;
+    mutable ComputationInfo m_info;
+    int m_ordering; // Ordering method to use, see SPQR's manual
+    int m_allow_tol; // Allow to use some tolerance during numerical factorization.
+    RealScalar m_tolerance; // treat columns with 2-norm below this tolerance as zero
+    mutable cholmod_sparse *m_cR; // The sparse R factor in cholmod format
+    mutable MatrixType m_R; // The sparse matrix R in Eigen format
+    mutable Index *m_E; // The permutation applied to columns
+    mutable cholmod_sparse *m_H;  //The householder vectors
+    mutable Index *m_HPinv; // The row permutation of H
+    mutable cholmod_dense *m_HTau; // The Householder coefficients
+    mutable Index m_rank; // The rank of the matrix
+    mutable cholmod_common m_cc; // Workspace and parameters
+    bool m_useDefaultThreshold;     // Use default threshold
+    template<typename ,typename > friend struct SPQR_QProduct;
+};
+
+template <typename SPQRType, typename Derived>
+struct SPQR_QProduct : ReturnByValue<SPQR_QProduct<SPQRType,Derived> >
+{
+  typedef typename SPQRType::Scalar Scalar;
+  typedef typename SPQRType::Index Index;
+  //Define the constructor to get reference to argument types
+  SPQR_QProduct(const SPQRType& spqr, const Derived& other, bool transpose) : m_spqr(spqr),m_other(other),m_transpose(transpose) {}
+  
+  inline Index rows() const { return m_transpose ? m_spqr.rows() : m_spqr.cols(); }
+  inline Index cols() const { return m_other.cols(); }
+  // Assign to a vector
+  template<typename ResType>
+  void evalTo(ResType& res) const
+  {
+    cholmod_dense y_cd;
+    cholmod_dense *x_cd; 
+    int method = m_transpose ? SPQR_QTX : SPQR_QX; 
+    cholmod_common *cc = m_spqr.cholmodCommon();
+    y_cd = viewAsCholmod(m_other.const_cast_derived());
+    x_cd = SuiteSparseQR_qmult<Scalar>(method, m_spqr.m_H, m_spqr.m_HTau, m_spqr.m_HPinv, &y_cd, cc);
+    res = Matrix<Scalar,ResType::RowsAtCompileTime,ResType::ColsAtCompileTime>::Map(reinterpret_cast<Scalar*>(x_cd->x), x_cd->nrow, x_cd->ncol);
+    cholmod_l_free_dense(&x_cd, cc);
+  }
+  const SPQRType& m_spqr; 
+  const Derived& m_other; 
+  bool m_transpose; 
+  
+};
+template<typename SPQRType>
+struct SPQRMatrixQReturnType{
+  
+  SPQRMatrixQReturnType(const SPQRType& spqr) : m_spqr(spqr) {}
+  template<typename Derived>
+  SPQR_QProduct<SPQRType, Derived> operator*(const MatrixBase<Derived>& other)
+  {
+    return SPQR_QProduct<SPQRType,Derived>(m_spqr,other.derived(),false);
+  }
+  SPQRMatrixQTransposeReturnType<SPQRType> adjoint() const
+  {
+    return SPQRMatrixQTransposeReturnType<SPQRType>(m_spqr);
+  }
+  // To use for operations with the transpose of Q
+  SPQRMatrixQTransposeReturnType<SPQRType> transpose() const
+  {
+    return SPQRMatrixQTransposeReturnType<SPQRType>(m_spqr);
+  }
+  const SPQRType& m_spqr;
+};
+
+template<typename SPQRType>
+struct SPQRMatrixQTransposeReturnType{
+  SPQRMatrixQTransposeReturnType(const SPQRType& spqr) : m_spqr(spqr) {}
+  template<typename Derived>
+  SPQR_QProduct<SPQRType,Derived> operator*(const MatrixBase<Derived>& other)
+  {
+    return SPQR_QProduct<SPQRType,Derived>(m_spqr,other.derived(), true);
+  }
+  const SPQRType& m_spqr;
+};
+
+namespace internal {
+  
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<SPQR<_MatrixType>, Rhs>
+  : solve_retval_base<SPQR<_MatrixType>, Rhs>
+{
+  typedef SPQR<_MatrixType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+}// End namespace Eigen
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/UmfPackSupport/UmfPackSupport.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/UmfPackSupport/UmfPackSupport.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/UmfPackSupport/UmfPackSupport.h	(revision 2476)
@@ -0,0 +1,474 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_UMFPACKSUPPORT_H
+#define EIGEN_UMFPACKSUPPORT_H
+
+namespace Eigen { 
+
+/* TODO extract L, extract U, compute det, etc... */
+
+// generic double/complex<double> wrapper functions:
+
+inline void umfpack_free_numeric(void **Numeric, double)
+{ umfpack_di_free_numeric(Numeric); *Numeric = 0; }
+
+inline void umfpack_free_numeric(void **Numeric, std::complex<double>)
+{ umfpack_zi_free_numeric(Numeric); *Numeric = 0; }
+
+inline void umfpack_free_symbolic(void **Symbolic, double)
+{ umfpack_di_free_symbolic(Symbolic); *Symbolic = 0; }
+
+inline void umfpack_free_symbolic(void **Symbolic, std::complex<double>)
+{ umfpack_zi_free_symbolic(Symbolic); *Symbolic = 0; }
+
+inline int umfpack_symbolic(int n_row,int n_col,
+                            const int Ap[], const int Ai[], const double Ax[], void **Symbolic,
+                            const double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
+{
+  return umfpack_di_symbolic(n_row,n_col,Ap,Ai,Ax,Symbolic,Control,Info);
+}
+
+inline int umfpack_symbolic(int n_row,int n_col,
+                            const int Ap[], const int Ai[], const std::complex<double> Ax[], void **Symbolic,
+                            const double Control [UMFPACK_CONTROL], double Info [UMFPACK_INFO])
+{
+  return umfpack_zi_symbolic(n_row,n_col,Ap,Ai,&numext::real_ref(Ax[0]),0,Symbolic,Control,Info);
+}
+
+inline int umfpack_numeric( const int Ap[], const int Ai[], const double Ax[],
+                            void *Symbolic, void **Numeric,
+                            const double Control[UMFPACK_CONTROL],double Info [UMFPACK_INFO])
+{
+  return umfpack_di_numeric(Ap,Ai,Ax,Symbolic,Numeric,Control,Info);
+}
+
+inline int umfpack_numeric( const int Ap[], const int Ai[], const std::complex<double> Ax[],
+                            void *Symbolic, void **Numeric,
+                            const double Control[UMFPACK_CONTROL],double Info [UMFPACK_INFO])
+{
+  return umfpack_zi_numeric(Ap,Ai,&numext::real_ref(Ax[0]),0,Symbolic,Numeric,Control,Info);
+}
+
+inline int umfpack_solve( int sys, const int Ap[], const int Ai[], const double Ax[],
+                          double X[], const double B[], void *Numeric,
+                          const double Control[UMFPACK_CONTROL], double Info[UMFPACK_INFO])
+{
+  return umfpack_di_solve(sys,Ap,Ai,Ax,X,B,Numeric,Control,Info);
+}
+
+inline int umfpack_solve( int sys, const int Ap[], const int Ai[], const std::complex<double> Ax[],
+                          std::complex<double> X[], const std::complex<double> B[], void *Numeric,
+                          const double Control[UMFPACK_CONTROL], double Info[UMFPACK_INFO])
+{
+  return umfpack_zi_solve(sys,Ap,Ai,&numext::real_ref(Ax[0]),0,&numext::real_ref(X[0]),0,&numext::real_ref(B[0]),0,Numeric,Control,Info);
+}
+
+inline int umfpack_get_lunz(int *lnz, int *unz, int *n_row, int *n_col, int *nz_udiag, void *Numeric, double)
+{
+  return umfpack_di_get_lunz(lnz,unz,n_row,n_col,nz_udiag,Numeric);
+}
+
+inline int umfpack_get_lunz(int *lnz, int *unz, int *n_row, int *n_col, int *nz_udiag, void *Numeric, std::complex<double>)
+{
+  return umfpack_zi_get_lunz(lnz,unz,n_row,n_col,nz_udiag,Numeric);
+}
+
+inline int umfpack_get_numeric(int Lp[], int Lj[], double Lx[], int Up[], int Ui[], double Ux[],
+                               int P[], int Q[], double Dx[], int *do_recip, double Rs[], void *Numeric)
+{
+  return umfpack_di_get_numeric(Lp,Lj,Lx,Up,Ui,Ux,P,Q,Dx,do_recip,Rs,Numeric);
+}
+
+inline int umfpack_get_numeric(int Lp[], int Lj[], std::complex<double> Lx[], int Up[], int Ui[], std::complex<double> Ux[],
+                               int P[], int Q[], std::complex<double> Dx[], int *do_recip, double Rs[], void *Numeric)
+{
+  double& lx0_real = numext::real_ref(Lx[0]);
+  double& ux0_real = numext::real_ref(Ux[0]);
+  double& dx0_real = numext::real_ref(Dx[0]);
+  return umfpack_zi_get_numeric(Lp,Lj,Lx?&lx0_real:0,0,Up,Ui,Ux?&ux0_real:0,0,P,Q,
+                                Dx?&dx0_real:0,0,do_recip,Rs,Numeric);
+}
+
+inline int umfpack_get_determinant(double *Mx, double *Ex, void *NumericHandle, double User_Info [UMFPACK_INFO])
+{
+  return umfpack_di_get_determinant(Mx,Ex,NumericHandle,User_Info);
+}
+
+inline int umfpack_get_determinant(std::complex<double> *Mx, double *Ex, void *NumericHandle, double User_Info [UMFPACK_INFO])
+{
+  double& mx_real = numext::real_ref(*Mx);
+  return umfpack_zi_get_determinant(&mx_real,0,Ex,NumericHandle,User_Info);
+}
+
+namespace internal {
+  template<typename T> struct umfpack_helper_is_sparse_plain : false_type {};
+  template<typename Scalar, int Options, typename StorageIndex>
+  struct umfpack_helper_is_sparse_plain<SparseMatrix<Scalar,Options,StorageIndex> >
+    : true_type {};
+  template<typename Scalar, int Options, typename StorageIndex>
+  struct umfpack_helper_is_sparse_plain<MappedSparseMatrix<Scalar,Options,StorageIndex> >
+    : true_type {};
+}
+
+/** \ingroup UmfPackSupport_Module
+  * \brief A sparse LU factorization and solver based on UmfPack
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a LU factorization
+  * using the UmfPack library. The sparse matrix A must be squared and full rank.
+  * The vectors or matrices X and B can be either dense or sparse.
+  *
+  * \warning The input matrix A should be in a \b compressed and \b column-major form.
+  * Otherwise an expensive copy will be made. You can call the inexpensive makeCompressed() to get a compressed matrix.
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename _MatrixType>
+class UmfPackLU : internal::noncopyable
+{
+  public:
+    typedef _MatrixType MatrixType;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Scalar,Dynamic,1> Vector;
+    typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> IntRowVectorType;
+    typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> IntColVectorType;
+    typedef SparseMatrix<Scalar> LUMatrixType;
+    typedef SparseMatrix<Scalar,ColMajor,int> UmfpackMatrixType;
+
+  public:
+
+    UmfPackLU() { init(); }
+
+    UmfPackLU(const MatrixType& matrix)
+    {
+      init();
+      compute(matrix);
+    }
+
+    ~UmfPackLU()
+    {
+      if(m_symbolic) umfpack_free_symbolic(&m_symbolic,Scalar());
+      if(m_numeric)  umfpack_free_numeric(&m_numeric,Scalar());
+    }
+
+    inline Index rows() const { return m_copyMatrix.rows(); }
+    inline Index cols() const { return m_copyMatrix.cols(); }
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+
+    inline const LUMatrixType& matrixL() const
+    {
+      if (m_extractedDataAreDirty) extractData();
+      return m_l;
+    }
+
+    inline const LUMatrixType& matrixU() const
+    {
+      if (m_extractedDataAreDirty) extractData();
+      return m_u;
+    }
+
+    inline const IntColVectorType& permutationP() const
+    {
+      if (m_extractedDataAreDirty) extractData();
+      return m_p;
+    }
+
+    inline const IntRowVectorType& permutationQ() const
+    {
+      if (m_extractedDataAreDirty) extractData();
+      return m_q;
+    }
+
+    /** Computes the sparse Cholesky decomposition of \a matrix 
+     *  Note that the matrix should be column-major, and in compressed format for best performance.
+     *  \sa SparseMatrix::makeCompressed().
+     */
+    template<typename InputMatrixType>
+    void compute(const InputMatrixType& matrix)
+    {
+      if(m_symbolic) umfpack_free_symbolic(&m_symbolic,Scalar());
+      if(m_numeric)  umfpack_free_numeric(&m_numeric,Scalar());
+      grapInput(matrix.derived());
+      analyzePattern_impl();
+      factorize_impl();
+    }
+
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<UmfPackLU, Rhs> solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "UmfPackLU is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "UmfPackLU::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<UmfPackLU, Rhs>(*this, b.derived());
+    }
+
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<UmfPackLU, Rhs> solve(const SparseMatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "UmfPackLU is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "UmfPackLU::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::sparse_solve_retval<UmfPackLU, Rhs>(*this, b.derived());
+    }
+
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      *
+      * \sa factorize(), compute()
+      */
+    template<typename InputMatrixType>
+    void analyzePattern(const InputMatrixType& matrix)
+    {
+      if(m_symbolic) umfpack_free_symbolic(&m_symbolic,Scalar());
+      if(m_numeric)  umfpack_free_numeric(&m_numeric,Scalar());
+      
+      grapInput(matrix.derived());
+
+      analyzePattern_impl();
+    }
+
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the pattern anylysis has been performed.
+      *
+      * \sa analyzePattern(), compute()
+      */
+    template<typename InputMatrixType>
+    void factorize(const InputMatrixType& matrix)
+    {
+      eigen_assert(m_analysisIsOk && "UmfPackLU: you must first call analyzePattern()");
+      if(m_numeric)
+        umfpack_free_numeric(&m_numeric,Scalar());
+
+      grapInput(matrix.derived());
+      
+      factorize_impl();
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal */
+    template<typename BDerived,typename XDerived>
+    bool _solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived> &x) const;
+    #endif
+
+    Scalar determinant() const;
+
+    void extractData() const;
+
+  protected:
+
+    void init()
+    {
+      m_info                  = InvalidInput;
+      m_isInitialized         = false;
+      m_numeric               = 0;
+      m_symbolic              = 0;
+      m_outerIndexPtr         = 0;
+      m_innerIndexPtr         = 0;
+      m_valuePtr              = 0;
+      m_extractedDataAreDirty = true;
+    }
+    
+    template<typename InputMatrixType>
+    void grapInput_impl(const InputMatrixType& mat, internal::true_type)
+    {
+      m_copyMatrix.resize(mat.rows(), mat.cols());
+      if( ((MatrixType::Flags&RowMajorBit)==RowMajorBit) || sizeof(typename MatrixType::Index)!=sizeof(int) || !mat.isCompressed() )
+      {
+        // non supported input -> copy
+        m_copyMatrix = mat;
+        m_outerIndexPtr = m_copyMatrix.outerIndexPtr();
+        m_innerIndexPtr = m_copyMatrix.innerIndexPtr();
+        m_valuePtr      = m_copyMatrix.valuePtr();
+      }
+      else
+      {
+        m_outerIndexPtr = mat.outerIndexPtr();
+        m_innerIndexPtr = mat.innerIndexPtr();
+        m_valuePtr      = mat.valuePtr();
+      }
+    }
+    
+    template<typename InputMatrixType>
+    void grapInput_impl(const InputMatrixType& mat, internal::false_type)
+    {
+      m_copyMatrix = mat;
+      m_outerIndexPtr = m_copyMatrix.outerIndexPtr();
+      m_innerIndexPtr = m_copyMatrix.innerIndexPtr();
+      m_valuePtr      = m_copyMatrix.valuePtr();
+    }
+    
+    template<typename InputMatrixType>
+    void grapInput(const InputMatrixType& mat)
+    {
+      grapInput_impl(mat, internal::umfpack_helper_is_sparse_plain<InputMatrixType>());
+    }
+    
+    void analyzePattern_impl()
+    {
+      int errorCode = 0;
+      errorCode = umfpack_symbolic(m_copyMatrix.rows(), m_copyMatrix.cols(), m_outerIndexPtr, m_innerIndexPtr, m_valuePtr,
+                                   &m_symbolic, 0, 0);
+
+      m_isInitialized = true;
+      m_info = errorCode ? InvalidInput : Success;
+      m_analysisIsOk = true;
+      m_factorizationIsOk = false;
+      m_extractedDataAreDirty = true;
+    }
+    
+    void factorize_impl()
+    {
+      int errorCode;
+      errorCode = umfpack_numeric(m_outerIndexPtr, m_innerIndexPtr, m_valuePtr,
+                                  m_symbolic, &m_numeric, 0, 0);
+
+      m_info = errorCode ? NumericalIssue : Success;
+      m_factorizationIsOk = true;
+      m_extractedDataAreDirty = true;
+    }
+
+    // cached data to reduce reallocation, etc.
+    mutable LUMatrixType m_l;
+    mutable LUMatrixType m_u;
+    mutable IntColVectorType m_p;
+    mutable IntRowVectorType m_q;
+
+    UmfpackMatrixType m_copyMatrix;
+    const Scalar* m_valuePtr;
+    const int* m_outerIndexPtr;
+    const int* m_innerIndexPtr;
+    void* m_numeric;
+    void* m_symbolic;
+
+    mutable ComputationInfo m_info;
+    bool m_isInitialized;
+    int m_factorizationIsOk;
+    int m_analysisIsOk;
+    mutable bool m_extractedDataAreDirty;
+    
+  private:
+    UmfPackLU(UmfPackLU& ) { }
+};
+
+
+template<typename MatrixType>
+void UmfPackLU<MatrixType>::extractData() const
+{
+  if (m_extractedDataAreDirty)
+  {
+    // get size of the data
+    int lnz, unz, rows, cols, nz_udiag;
+    umfpack_get_lunz(&lnz, &unz, &rows, &cols, &nz_udiag, m_numeric, Scalar());
+
+    // allocate data
+    m_l.resize(rows,(std::min)(rows,cols));
+    m_l.resizeNonZeros(lnz);
+
+    m_u.resize((std::min)(rows,cols),cols);
+    m_u.resizeNonZeros(unz);
+
+    m_p.resize(rows);
+    m_q.resize(cols);
+
+    // extract
+    umfpack_get_numeric(m_l.outerIndexPtr(), m_l.innerIndexPtr(), m_l.valuePtr(),
+                        m_u.outerIndexPtr(), m_u.innerIndexPtr(), m_u.valuePtr(),
+                        m_p.data(), m_q.data(), 0, 0, 0, m_numeric);
+
+    m_extractedDataAreDirty = false;
+  }
+}
+
+template<typename MatrixType>
+typename UmfPackLU<MatrixType>::Scalar UmfPackLU<MatrixType>::determinant() const
+{
+  Scalar det;
+  umfpack_get_determinant(&det, 0, m_numeric, 0);
+  return det;
+}
+
+template<typename MatrixType>
+template<typename BDerived,typename XDerived>
+bool UmfPackLU<MatrixType>::_solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived> &x) const
+{
+  const int rhsCols = b.cols();
+  eigen_assert((BDerived::Flags&RowMajorBit)==0 && "UmfPackLU backend does not support non col-major rhs yet");
+  eigen_assert((XDerived::Flags&RowMajorBit)==0 && "UmfPackLU backend does not support non col-major result yet");
+  eigen_assert(b.derived().data() != x.derived().data() && " Umfpack does not support inplace solve");
+  
+  int errorCode;
+  for (int j=0; j<rhsCols; ++j)
+  {
+    errorCode = umfpack_solve(UMFPACK_A,
+        m_outerIndexPtr, m_innerIndexPtr, m_valuePtr,
+        &x.col(j).coeffRef(0), &b.const_cast_derived().col(j).coeffRef(0), m_numeric, 0, 0);
+    if (errorCode!=0)
+      return false;
+  }
+
+  return true;
+}
+
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<UmfPackLU<_MatrixType>, Rhs>
+  : solve_retval_base<UmfPackLU<_MatrixType>, Rhs>
+{
+  typedef UmfPackLU<_MatrixType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+template<typename _MatrixType, typename Rhs>
+struct sparse_solve_retval<UmfPackLU<_MatrixType>, Rhs>
+  : sparse_solve_retval_base<UmfPackLU<_MatrixType>, Rhs>
+{
+  typedef UmfPackLU<_MatrixType> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_UMFPACKSUPPORT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Jacobi/Jacobi.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Jacobi/Jacobi.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Jacobi/Jacobi.h	(revision 2476)
@@ -0,0 +1,433 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_JACOBI_H
+#define EIGEN_JACOBI_H
+
+namespace Eigen { 
+
+/** \ingroup Jacobi_Module
+  * \jacobi_module
+  * \class JacobiRotation
+  * \brief Rotation given by a cosine-sine pair.
+  *
+  * This class represents a Jacobi or Givens rotation.
+  * This is a 2D rotation in the plane \c J of angle \f$ \theta \f$ defined by
+  * its cosine \c c and sine \c s as follow:
+  * \f$ J = \left ( \begin{array}{cc} c & \overline s \\ -s  & \overline c \end{array} \right ) \f$
+  *
+  * You can apply the respective counter-clockwise rotation to a column vector \c v by
+  * applying its adjoint on the left: \f$ v = J^* v \f$ that translates to the following Eigen code:
+  * \code
+  * v.applyOnTheLeft(J.adjoint());
+  * \endcode
+  *
+  * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+  */
+template<typename Scalar> class JacobiRotation
+{
+  public:
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    /** Default constructor without any initialization. */
+    JacobiRotation() {}
+
+    /** Construct a planar rotation from a cosine-sine pair (\a c, \c s). */
+    JacobiRotation(const Scalar& c, const Scalar& s) : m_c(c), m_s(s) {}
+
+    Scalar& c() { return m_c; }
+    Scalar c() const { return m_c; }
+    Scalar& s() { return m_s; }
+    Scalar s() const { return m_s; }
+
+    /** Concatenates two planar rotation */
+    JacobiRotation operator*(const JacobiRotation& other)
+    {
+      using numext::conj;
+      return JacobiRotation(m_c * other.m_c - conj(m_s) * other.m_s,
+                            conj(m_c * conj(other.m_s) + conj(m_s) * conj(other.m_c)));
+    }
+
+    /** Returns the transposed transformation */
+    JacobiRotation transpose() const { using numext::conj; return JacobiRotation(m_c, -conj(m_s)); }
+
+    /** Returns the adjoint transformation */
+    JacobiRotation adjoint() const { using numext::conj; return JacobiRotation(conj(m_c), -m_s); }
+
+    template<typename Derived>
+    bool makeJacobi(const MatrixBase<Derived>&, typename Derived::Index p, typename Derived::Index q);
+    bool makeJacobi(const RealScalar& x, const Scalar& y, const RealScalar& z);
+
+    void makeGivens(const Scalar& p, const Scalar& q, Scalar* z=0);
+
+  protected:
+    void makeGivens(const Scalar& p, const Scalar& q, Scalar* z, internal::true_type);
+    void makeGivens(const Scalar& p, const Scalar& q, Scalar* z, internal::false_type);
+
+    Scalar m_c, m_s;
+};
+
+/** Makes \c *this as a Jacobi rotation \a J such that applying \a J on both the right and left sides of the selfadjoint 2x2 matrix
+  * \f$ B = \left ( \begin{array}{cc} x & y \\ \overline y & z \end{array} \right )\f$ yields a diagonal matrix \f$ A = J^* B J \f$
+  *
+  * \sa MatrixBase::makeJacobi(const MatrixBase<Derived>&, Index, Index), MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+  */
+template<typename Scalar>
+bool JacobiRotation<Scalar>::makeJacobi(const RealScalar& x, const Scalar& y, const RealScalar& z)
+{
+  using std::sqrt;
+  using std::abs;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  if(y == Scalar(0))
+  {
+    m_c = Scalar(1);
+    m_s = Scalar(0);
+    return false;
+  }
+  else
+  {
+    RealScalar tau = (x-z)/(RealScalar(2)*abs(y));
+    RealScalar w = sqrt(numext::abs2(tau) + RealScalar(1));
+    RealScalar t;
+    if(tau>RealScalar(0))
+    {
+      t = RealScalar(1) / (tau + w);
+    }
+    else
+    {
+      t = RealScalar(1) / (tau - w);
+    }
+    RealScalar sign_t = t > RealScalar(0) ? RealScalar(1) : RealScalar(-1);
+    RealScalar n = RealScalar(1) / sqrt(numext::abs2(t)+RealScalar(1));
+    m_s = - sign_t * (numext::conj(y) / abs(y)) * abs(t) * n;
+    m_c = n;
+    return true;
+  }
+}
+
+/** Makes \c *this as a Jacobi rotation \c J such that applying \a J on both the right and left sides of the 2x2 selfadjoint matrix
+  * \f$ B = \left ( \begin{array}{cc} \text{this}_{pp} & \text{this}_{pq} \\ (\text{this}_{pq})^* & \text{this}_{qq} \end{array} \right )\f$ yields
+  * a diagonal matrix \f$ A = J^* B J \f$
+  *
+  * Example: \include Jacobi_makeJacobi.cpp
+  * Output: \verbinclude Jacobi_makeJacobi.out
+  *
+  * \sa JacobiRotation::makeJacobi(RealScalar, Scalar, RealScalar), MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+  */
+template<typename Scalar>
+template<typename Derived>
+inline bool JacobiRotation<Scalar>::makeJacobi(const MatrixBase<Derived>& m, typename Derived::Index p, typename Derived::Index q)
+{
+  return makeJacobi(numext::real(m.coeff(p,p)), m.coeff(p,q), numext::real(m.coeff(q,q)));
+}
+
+/** Makes \c *this as a Givens rotation \c G such that applying \f$ G^* \f$ to the left of the vector
+  * \f$ V = \left ( \begin{array}{c} p \\ q \end{array} \right )\f$ yields:
+  * \f$ G^* V = \left ( \begin{array}{c} r \\ 0 \end{array} \right )\f$.
+  *
+  * The value of \a z is returned if \a z is not null (the default is null).
+  * Also note that G is built such that the cosine is always real.
+  *
+  * Example: \include Jacobi_makeGivens.cpp
+  * Output: \verbinclude Jacobi_makeGivens.out
+  *
+  * This function implements the continuous Givens rotation generation algorithm
+  * found in Anderson (2000), Discontinuous Plane Rotations and the Symmetric Eigenvalue Problem.
+  * LAPACK Working Note 150, University of Tennessee, UT-CS-00-454, December 4, 2000.
+  *
+  * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+  */
+template<typename Scalar>
+void JacobiRotation<Scalar>::makeGivens(const Scalar& p, const Scalar& q, Scalar* z)
+{
+  makeGivens(p, q, z, typename internal::conditional<NumTraits<Scalar>::IsComplex, internal::true_type, internal::false_type>::type());
+}
+
+
+// specialization for complexes
+template<typename Scalar>
+void JacobiRotation<Scalar>::makeGivens(const Scalar& p, const Scalar& q, Scalar* r, internal::true_type)
+{
+  using std::sqrt;
+  using std::abs;
+  using numext::conj;
+  
+  if(q==Scalar(0))
+  {
+    m_c = numext::real(p)<0 ? Scalar(-1) : Scalar(1);
+    m_s = 0;
+    if(r) *r = m_c * p;
+  }
+  else if(p==Scalar(0))
+  {
+    m_c = 0;
+    m_s = -q/abs(q);
+    if(r) *r = abs(q);
+  }
+  else
+  {
+    RealScalar p1 = numext::norm1(p);
+    RealScalar q1 = numext::norm1(q);
+    if(p1>=q1)
+    {
+      Scalar ps = p / p1;
+      RealScalar p2 = numext::abs2(ps);
+      Scalar qs = q / p1;
+      RealScalar q2 = numext::abs2(qs);
+
+      RealScalar u = sqrt(RealScalar(1) + q2/p2);
+      if(numext::real(p)<RealScalar(0))
+        u = -u;
+
+      m_c = Scalar(1)/u;
+      m_s = -qs*conj(ps)*(m_c/p2);
+      if(r) *r = p * u;
+    }
+    else
+    {
+      Scalar ps = p / q1;
+      RealScalar p2 = numext::abs2(ps);
+      Scalar qs = q / q1;
+      RealScalar q2 = numext::abs2(qs);
+
+      RealScalar u = q1 * sqrt(p2 + q2);
+      if(numext::real(p)<RealScalar(0))
+        u = -u;
+
+      p1 = abs(p);
+      ps = p/p1;
+      m_c = p1/u;
+      m_s = -conj(ps) * (q/u);
+      if(r) *r = ps * u;
+    }
+  }
+}
+
+// specialization for reals
+template<typename Scalar>
+void JacobiRotation<Scalar>::makeGivens(const Scalar& p, const Scalar& q, Scalar* r, internal::false_type)
+{
+  using std::sqrt;
+  using std::abs;
+  if(q==Scalar(0))
+  {
+    m_c = p<Scalar(0) ? Scalar(-1) : Scalar(1);
+    m_s = Scalar(0);
+    if(r) *r = abs(p);
+  }
+  else if(p==Scalar(0))
+  {
+    m_c = Scalar(0);
+    m_s = q<Scalar(0) ? Scalar(1) : Scalar(-1);
+    if(r) *r = abs(q);
+  }
+  else if(abs(p) > abs(q))
+  {
+    Scalar t = q/p;
+    Scalar u = sqrt(Scalar(1) + numext::abs2(t));
+    if(p<Scalar(0))
+      u = -u;
+    m_c = Scalar(1)/u;
+    m_s = -t * m_c;
+    if(r) *r = p * u;
+  }
+  else
+  {
+    Scalar t = p/q;
+    Scalar u = sqrt(Scalar(1) + numext::abs2(t));
+    if(q<Scalar(0))
+      u = -u;
+    m_s = -Scalar(1)/u;
+    m_c = -t * m_s;
+    if(r) *r = q * u;
+  }
+
+}
+
+/****************************************************************************************
+*   Implementation of MatrixBase methods
+****************************************************************************************/
+
+/** \jacobi_module
+  * Applies the clock wise 2D rotation \a j to the set of 2D vectors of cordinates \a x and \a y:
+  * \f$ \left ( \begin{array}{cc} x \\ y \end{array} \right )  =  J \left ( \begin{array}{cc} x \\ y \end{array} \right ) \f$
+  *
+  * \sa MatrixBase::applyOnTheLeft(), MatrixBase::applyOnTheRight()
+  */
+namespace internal {
+template<typename VectorX, typename VectorY, typename OtherScalar>
+void apply_rotation_in_the_plane(VectorX& _x, VectorY& _y, const JacobiRotation<OtherScalar>& j);
+}
+
+/** \jacobi_module
+  * Applies the rotation in the plane \a j to the rows \a p and \a q of \c *this, i.e., it computes B = J * B,
+  * with \f$ B = \left ( \begin{array}{cc} \text{*this.row}(p) \\ \text{*this.row}(q) \end{array} \right ) \f$.
+  *
+  * \sa class JacobiRotation, MatrixBase::applyOnTheRight(), internal::apply_rotation_in_the_plane()
+  */
+template<typename Derived>
+template<typename OtherScalar>
+inline void MatrixBase<Derived>::applyOnTheLeft(Index p, Index q, const JacobiRotation<OtherScalar>& j)
+{
+  RowXpr x(this->row(p));
+  RowXpr y(this->row(q));
+  internal::apply_rotation_in_the_plane(x, y, j);
+}
+
+/** \ingroup Jacobi_Module
+  * Applies the rotation in the plane \a j to the columns \a p and \a q of \c *this, i.e., it computes B = B * J
+  * with \f$ B = \left ( \begin{array}{cc} \text{*this.col}(p) & \text{*this.col}(q) \end{array} \right ) \f$.
+  *
+  * \sa class JacobiRotation, MatrixBase::applyOnTheLeft(), internal::apply_rotation_in_the_plane()
+  */
+template<typename Derived>
+template<typename OtherScalar>
+inline void MatrixBase<Derived>::applyOnTheRight(Index p, Index q, const JacobiRotation<OtherScalar>& j)
+{
+  ColXpr x(this->col(p));
+  ColXpr y(this->col(q));
+  internal::apply_rotation_in_the_plane(x, y, j.transpose());
+}
+
+namespace internal {
+template<typename VectorX, typename VectorY, typename OtherScalar>
+void /*EIGEN_DONT_INLINE*/ apply_rotation_in_the_plane(VectorX& _x, VectorY& _y, const JacobiRotation<OtherScalar>& j)
+{
+  typedef typename VectorX::Index Index;
+  typedef typename VectorX::Scalar Scalar;
+  enum { PacketSize = packet_traits<Scalar>::size };
+  typedef typename packet_traits<Scalar>::type Packet;
+  eigen_assert(_x.size() == _y.size());
+  Index size = _x.size();
+  Index incrx = _x.innerStride();
+  Index incry = _y.innerStride();
+
+  Scalar* EIGEN_RESTRICT x = &_x.coeffRef(0);
+  Scalar* EIGEN_RESTRICT y = &_y.coeffRef(0);
+  
+  OtherScalar c = j.c();
+  OtherScalar s = j.s();
+  if (c==OtherScalar(1) && s==OtherScalar(0))
+    return;
+
+  /*** dynamic-size vectorized paths ***/
+
+  if(VectorX::SizeAtCompileTime == Dynamic &&
+    (VectorX::Flags & VectorY::Flags & PacketAccessBit) &&
+    ((incrx==1 && incry==1) || PacketSize == 1))
+  {
+    // both vectors are sequentially stored in memory => vectorization
+    enum { Peeling = 2 };
+
+    Index alignedStart = internal::first_aligned(y, size);
+    Index alignedEnd = alignedStart + ((size-alignedStart)/PacketSize)*PacketSize;
+
+    const Packet pc = pset1<Packet>(c);
+    const Packet ps = pset1<Packet>(s);
+    conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex,false> pcj;
+
+    for(Index i=0; i<alignedStart; ++i)
+    {
+      Scalar xi = x[i];
+      Scalar yi = y[i];
+      x[i] =  c * xi + numext::conj(s) * yi;
+      y[i] = -s * xi + numext::conj(c) * yi;
+    }
+
+    Scalar* EIGEN_RESTRICT px = x + alignedStart;
+    Scalar* EIGEN_RESTRICT py = y + alignedStart;
+
+    if(internal::first_aligned(x, size)==alignedStart)
+    {
+      for(Index i=alignedStart; i<alignedEnd; i+=PacketSize)
+      {
+        Packet xi = pload<Packet>(px);
+        Packet yi = pload<Packet>(py);
+        pstore(px, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
+        pstore(py, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
+        px += PacketSize;
+        py += PacketSize;
+      }
+    }
+    else
+    {
+      Index peelingEnd = alignedStart + ((size-alignedStart)/(Peeling*PacketSize))*(Peeling*PacketSize);
+      for(Index i=alignedStart; i<peelingEnd; i+=Peeling*PacketSize)
+      {
+        Packet xi   = ploadu<Packet>(px);
+        Packet xi1  = ploadu<Packet>(px+PacketSize);
+        Packet yi   = pload <Packet>(py);
+        Packet yi1  = pload <Packet>(py+PacketSize);
+        pstoreu(px, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
+        pstoreu(px+PacketSize, padd(pmul(pc,xi1),pcj.pmul(ps,yi1)));
+        pstore (py, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
+        pstore (py+PacketSize, psub(pcj.pmul(pc,yi1),pmul(ps,xi1)));
+        px += Peeling*PacketSize;
+        py += Peeling*PacketSize;
+      }
+      if(alignedEnd!=peelingEnd)
+      {
+        Packet xi = ploadu<Packet>(x+peelingEnd);
+        Packet yi = pload <Packet>(y+peelingEnd);
+        pstoreu(x+peelingEnd, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
+        pstore (y+peelingEnd, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
+      }
+    }
+
+    for(Index i=alignedEnd; i<size; ++i)
+    {
+      Scalar xi = x[i];
+      Scalar yi = y[i];
+      x[i] =  c * xi + numext::conj(s) * yi;
+      y[i] = -s * xi + numext::conj(c) * yi;
+    }
+  }
+
+  /*** fixed-size vectorized path ***/
+  else if(VectorX::SizeAtCompileTime != Dynamic &&
+          (VectorX::Flags & VectorY::Flags & PacketAccessBit) &&
+          (VectorX::Flags & VectorY::Flags & AlignedBit))
+  {
+    const Packet pc = pset1<Packet>(c);
+    const Packet ps = pset1<Packet>(s);
+    conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex,false> pcj;
+    Scalar* EIGEN_RESTRICT px = x;
+    Scalar* EIGEN_RESTRICT py = y;
+    for(Index i=0; i<size; i+=PacketSize)
+    {
+      Packet xi = pload<Packet>(px);
+      Packet yi = pload<Packet>(py);
+      pstore(px, padd(pmul(pc,xi),pcj.pmul(ps,yi)));
+      pstore(py, psub(pcj.pmul(pc,yi),pmul(ps,xi)));
+      px += PacketSize;
+      py += PacketSize;
+    }
+  }
+
+  /*** non-vectorized path ***/
+  else
+  {
+    for(Index i=0; i<size; ++i)
+    {
+      Scalar xi = *x;
+      Scalar yi = *y;
+      *x =  c * xi + numext::conj(s) * yi;
+      *y = -s * xi + numext::conj(c) * yi;
+      x += incrx;
+      y += incry;
+    }
+  }
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_JACOBI_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ReturnByValue.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ReturnByValue.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ReturnByValue.h	(revision 2476)
@@ -0,0 +1,99 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_RETURNBYVALUE_H
+#define EIGEN_RETURNBYVALUE_H
+
+namespace Eigen {
+
+/** \class ReturnByValue
+  * \ingroup Core_Module
+  *
+  */
+
+namespace internal {
+
+template<typename Derived>
+struct traits<ReturnByValue<Derived> >
+  : public traits<typename traits<Derived>::ReturnType>
+{
+  enum {
+    // We're disabling the DirectAccess because e.g. the constructor of
+    // the Block-with-DirectAccess expression requires to have a coeffRef method.
+    // Also, we don't want to have to implement the stride stuff.
+    Flags = (traits<typename traits<Derived>::ReturnType>::Flags
+             | EvalBeforeNestingBit) & ~DirectAccessBit
+  };
+};
+
+/* The ReturnByValue object doesn't even have a coeff() method.
+ * So the only way that nesting it in an expression can work, is by evaluating it into a plain matrix.
+ * So internal::nested always gives the plain return matrix type.
+ *
+ * FIXME: I don't understand why we need this specialization: isn't this taken care of by the EvalBeforeNestingBit ??
+ */
+template<typename Derived,int n,typename PlainObject>
+struct nested<ReturnByValue<Derived>, n, PlainObject>
+{
+  typedef typename traits<Derived>::ReturnType type;
+};
+
+} // end namespace internal
+
+template<typename Derived> class ReturnByValue
+  : internal::no_assignment_operator, public internal::dense_xpr_base< ReturnByValue<Derived> >::type
+{
+  public:
+    typedef typename internal::traits<Derived>::ReturnType ReturnType;
+
+    typedef typename internal::dense_xpr_base<ReturnByValue>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(ReturnByValue)
+
+    template<typename Dest>
+    inline void evalTo(Dest& dst) const
+    { static_cast<const Derived*>(this)->evalTo(dst); }
+    inline Index rows() const { return static_cast<const Derived*>(this)->rows(); }
+    inline Index cols() const { return static_cast<const Derived*>(this)->cols(); }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+#define Unusable YOU_ARE_TRYING_TO_ACCESS_A_SINGLE_COEFFICIENT_IN_A_SPECIAL_EXPRESSION_WHERE_THAT_IS_NOT_ALLOWED_BECAUSE_THAT_WOULD_BE_INEFFICIENT
+    class Unusable{
+      Unusable(const Unusable&) {}
+      Unusable& operator=(const Unusable&) {return *this;}
+    };
+    const Unusable& coeff(Index) const { return *reinterpret_cast<const Unusable*>(this); }
+    const Unusable& coeff(Index,Index) const { return *reinterpret_cast<const Unusable*>(this); }
+    Unusable& coeffRef(Index) { return *reinterpret_cast<Unusable*>(this); }
+    Unusable& coeffRef(Index,Index) { return *reinterpret_cast<Unusable*>(this); }
+    template<int LoadMode>  Unusable& packet(Index) const;
+    template<int LoadMode>  Unusable& packet(Index, Index) const;
+#endif
+};
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& DenseBase<Derived>::operator=(const ReturnByValue<OtherDerived>& other)
+{
+  other.evalTo(derived());
+  return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& DenseBase<Derived>::lazyAssign(const ReturnByValue<OtherDerived>& other)
+{
+  other.evalTo(derived());
+  return derived();
+}
+
+
+} // end namespace Eigen
+
+#endif // EIGEN_RETURNBYVALUE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/MapBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/MapBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/MapBase.h	(revision 2476)
@@ -0,0 +1,251 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MAPBASE_H
+#define EIGEN_MAPBASE_H
+
+#define EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived) \
+      EIGEN_STATIC_ASSERT((int(internal::traits<Derived>::Flags) & LinearAccessBit) || Derived::IsVectorAtCompileTime, \
+                          YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT)
+
+namespace Eigen { 
+
+/** \class MapBase
+  * \ingroup Core_Module
+  *
+  * \brief Base class for Map and Block expression with direct access
+  *
+  * \sa class Map, class Block
+  */
+template<typename Derived> class MapBase<Derived, ReadOnlyAccessors>
+  : public internal::dense_xpr_base<Derived>::type
+{
+  public:
+
+    typedef typename internal::dense_xpr_base<Derived>::type Base;
+    enum {
+      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+      SizeAtCompileTime = Base::SizeAtCompileTime
+    };
+
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename internal::conditional<
+                         bool(internal::is_lvalue<Derived>::value),
+                         Scalar *,
+                         const Scalar *>::type
+                     PointerType;
+
+    using Base::derived;
+//    using Base::RowsAtCompileTime;
+//    using Base::ColsAtCompileTime;
+//    using Base::SizeAtCompileTime;
+    using Base::MaxRowsAtCompileTime;
+    using Base::MaxColsAtCompileTime;
+    using Base::MaxSizeAtCompileTime;
+    using Base::IsVectorAtCompileTime;
+    using Base::Flags;
+    using Base::IsRowMajor;
+
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::coeff;
+    using Base::coeffRef;
+    using Base::lazyAssign;
+    using Base::eval;
+
+    using Base::innerStride;
+    using Base::outerStride;
+    using Base::rowStride;
+    using Base::colStride;
+
+    // bug 217 - compile error on ICC 11.1
+    using Base::operator=;
+
+    typedef typename Base::CoeffReturnType CoeffReturnType;
+
+    inline Index rows() const { return m_rows.value(); }
+    inline Index cols() const { return m_cols.value(); }
+
+    /** Returns a pointer to the first coefficient of the matrix or vector.
+      *
+      * \note When addressing this data, make sure to honor the strides returned by innerStride() and outerStride().
+      *
+      * \sa innerStride(), outerStride()
+      */
+    inline const Scalar* data() const { return m_data; }
+
+    inline const Scalar& coeff(Index rowId, Index colId) const
+    {
+      return m_data[colId * colStride() + rowId * rowStride()];
+    }
+
+    inline const Scalar& coeff(Index index) const
+    {
+      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+      return m_data[index * innerStride()];
+    }
+
+    inline const Scalar& coeffRef(Index rowId, Index colId) const
+    {
+      return this->m_data[colId * colStride() + rowId * rowStride()];
+    }
+
+    inline const Scalar& coeffRef(Index index) const
+    {
+      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+      return this->m_data[index * innerStride()];
+    }
+
+    template<int LoadMode>
+    inline PacketScalar packet(Index rowId, Index colId) const
+    {
+      return internal::ploadt<PacketScalar, LoadMode>
+               (m_data + (colId * colStride() + rowId * rowStride()));
+    }
+
+    template<int LoadMode>
+    inline PacketScalar packet(Index index) const
+    {
+      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+      return internal::ploadt<PacketScalar, LoadMode>(m_data + index * innerStride());
+    }
+
+    explicit inline MapBase(PointerType dataPtr) : m_data(dataPtr), m_rows(RowsAtCompileTime), m_cols(ColsAtCompileTime)
+    {
+      EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
+      checkSanity();
+    }
+
+    inline MapBase(PointerType dataPtr, Index vecSize)
+            : m_data(dataPtr),
+              m_rows(RowsAtCompileTime == Dynamic ? vecSize : Index(RowsAtCompileTime)),
+              m_cols(ColsAtCompileTime == Dynamic ? vecSize : Index(ColsAtCompileTime))
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+      eigen_assert(vecSize >= 0);
+      eigen_assert(dataPtr == 0 || SizeAtCompileTime == Dynamic || SizeAtCompileTime == vecSize);
+      checkSanity();
+    }
+
+    inline MapBase(PointerType dataPtr, Index nbRows, Index nbCols)
+            : m_data(dataPtr), m_rows(nbRows), m_cols(nbCols)
+    {
+      eigen_assert( (dataPtr == 0)
+              || (   nbRows >= 0 && (RowsAtCompileTime == Dynamic || RowsAtCompileTime == nbRows)
+                  && nbCols >= 0 && (ColsAtCompileTime == Dynamic || ColsAtCompileTime == nbCols)));
+      checkSanity();
+    }
+
+    #ifdef EIGEN_MAPBASE_PLUGIN
+    #include EIGEN_MAPBASE_PLUGIN
+    #endif
+
+  protected:
+
+    void checkSanity() const
+    {
+      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(internal::traits<Derived>::Flags&PacketAccessBit,
+                                        internal::inner_stride_at_compile_time<Derived>::ret==1),
+                          PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1);
+      eigen_assert(EIGEN_IMPLIES(internal::traits<Derived>::Flags&AlignedBit, (size_t(m_data) % 16) == 0)
+                   && "input pointer is not aligned on a 16 byte boundary");
+    }
+
+    PointerType m_data;
+    const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_rows;
+    const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_cols;
+};
+
+template<typename Derived> class MapBase<Derived, WriteAccessors>
+  : public MapBase<Derived, ReadOnlyAccessors>
+{
+    typedef MapBase<Derived, ReadOnlyAccessors> ReadOnlyMapBase;
+  public:
+
+    typedef MapBase<Derived, ReadOnlyAccessors> Base;
+
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::PacketScalar PacketScalar;
+    typedef typename Base::Index Index;
+    typedef typename Base::PointerType PointerType;
+
+    using Base::derived;
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::coeff;
+    using Base::coeffRef;
+
+    using Base::innerStride;
+    using Base::outerStride;
+    using Base::rowStride;
+    using Base::colStride;
+
+    typedef typename internal::conditional<
+                    internal::is_lvalue<Derived>::value,
+                    Scalar,
+                    const Scalar
+                  >::type ScalarWithConstIfNotLvalue;
+
+    inline const Scalar* data() const { return this->m_data; }
+    inline ScalarWithConstIfNotLvalue* data() { return this->m_data; } // no const-cast here so non-const-correct code will give a compile error
+
+    inline ScalarWithConstIfNotLvalue& coeffRef(Index row, Index col)
+    {
+      return this->m_data[col * colStride() + row * rowStride()];
+    }
+
+    inline ScalarWithConstIfNotLvalue& coeffRef(Index index)
+    {
+      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+      return this->m_data[index * innerStride()];
+    }
+
+    template<int StoreMode>
+    inline void writePacket(Index row, Index col, const PacketScalar& val)
+    {
+      internal::pstoret<Scalar, PacketScalar, StoreMode>
+               (this->m_data + (col * colStride() + row * rowStride()), val);
+    }
+
+    template<int StoreMode>
+    inline void writePacket(Index index, const PacketScalar& val)
+    {
+      EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
+      internal::pstoret<Scalar, PacketScalar, StoreMode>
+                (this->m_data + index * innerStride(), val);
+    }
+
+    explicit inline MapBase(PointerType dataPtr) : Base(dataPtr) {}
+    inline MapBase(PointerType dataPtr, Index vecSize) : Base(dataPtr, vecSize) {}
+    inline MapBase(PointerType dataPtr, Index nbRows, Index nbCols) : Base(dataPtr, nbRows, nbCols) {}
+
+    Derived& operator=(const MapBase& other)
+    {
+      ReadOnlyMapBase::Base::operator=(other);
+      return derived();
+    }
+
+    // In theory we could simply refer to Base:Base::operator=, but MSVC does not like Base::Base,
+    // see bugs 821 and 920.
+    using ReadOnlyMapBase::Base::operator=;
+};
+
+#undef EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS
+
+} // end namespace Eigen
+
+#endif // EIGEN_MAPBASE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Replicate.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Replicate.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Replicate.h	(revision 2476)
@@ -0,0 +1,177 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REPLICATE_H
+#define EIGEN_REPLICATE_H
+
+namespace Eigen { 
+
+/**
+  * \class Replicate
+  * \ingroup Core_Module
+  *
+  * \brief Expression of the multiple replication of a matrix or vector
+  *
+  * \param MatrixType the type of the object we are replicating
+  *
+  * This class represents an expression of the multiple replication of a matrix or vector.
+  * It is the return type of DenseBase::replicate() and most of the time
+  * this is the only way it is used.
+  *
+  * \sa DenseBase::replicate()
+  */
+
+namespace internal {
+template<typename MatrixType,int RowFactor,int ColFactor>
+struct traits<Replicate<MatrixType,RowFactor,ColFactor> >
+ : traits<MatrixType>
+{
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename traits<MatrixType>::StorageKind StorageKind;
+  typedef typename traits<MatrixType>::XprKind XprKind;
+  enum {
+    Factor = (RowFactor==Dynamic || ColFactor==Dynamic) ? Dynamic : RowFactor*ColFactor
+  };
+  typedef typename nested<MatrixType,Factor>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+  enum {
+    RowsAtCompileTime = RowFactor==Dynamic || int(MatrixType::RowsAtCompileTime)==Dynamic
+                      ? Dynamic
+                      : RowFactor * MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = ColFactor==Dynamic || int(MatrixType::ColsAtCompileTime)==Dynamic
+                      ? Dynamic
+                      : ColFactor * MatrixType::ColsAtCompileTime,
+   //FIXME we don't propagate the max sizes !!!
+    MaxRowsAtCompileTime = RowsAtCompileTime,
+    MaxColsAtCompileTime = ColsAtCompileTime,
+    IsRowMajor = MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1 ? 1
+               : MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1 ? 0
+               : (MatrixType::Flags & RowMajorBit) ? 1 : 0,
+    Flags = (_MatrixTypeNested::Flags & HereditaryBits & ~RowMajorBit) | (IsRowMajor ? RowMajorBit : 0),
+    CoeffReadCost = _MatrixTypeNested::CoeffReadCost
+  };
+};
+}
+
+template<typename MatrixType,int RowFactor,int ColFactor> class Replicate
+  : public internal::dense_xpr_base< Replicate<MatrixType,RowFactor,ColFactor> >::type
+{
+    typedef typename internal::traits<Replicate>::MatrixTypeNested MatrixTypeNested;
+    typedef typename internal::traits<Replicate>::_MatrixTypeNested _MatrixTypeNested;
+  public:
+
+    typedef typename internal::dense_xpr_base<Replicate>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Replicate)
+
+    template<typename OriginalMatrixType>
+    inline explicit Replicate(const OriginalMatrixType& a_matrix)
+      : m_matrix(a_matrix), m_rowFactor(RowFactor), m_colFactor(ColFactor)
+    {
+      EIGEN_STATIC_ASSERT((internal::is_same<typename internal::remove_const<MatrixType>::type,OriginalMatrixType>::value),
+                          THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE)
+      eigen_assert(RowFactor!=Dynamic && ColFactor!=Dynamic);
+    }
+
+    template<typename OriginalMatrixType>
+    inline Replicate(const OriginalMatrixType& a_matrix, Index rowFactor, Index colFactor)
+      : m_matrix(a_matrix), m_rowFactor(rowFactor), m_colFactor(colFactor)
+    {
+      EIGEN_STATIC_ASSERT((internal::is_same<typename internal::remove_const<MatrixType>::type,OriginalMatrixType>::value),
+                          THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE)
+    }
+
+    inline Index rows() const { return m_matrix.rows() * m_rowFactor.value(); }
+    inline Index cols() const { return m_matrix.cols() * m_colFactor.value(); }
+
+    inline Scalar coeff(Index rowId, Index colId) const
+    {
+      // try to avoid using modulo; this is a pure optimization strategy
+      const Index actual_row  = internal::traits<MatrixType>::RowsAtCompileTime==1 ? 0
+                            : RowFactor==1 ? rowId
+                            : rowId%m_matrix.rows();
+      const Index actual_col  = internal::traits<MatrixType>::ColsAtCompileTime==1 ? 0
+                            : ColFactor==1 ? colId
+                            : colId%m_matrix.cols();
+
+      return m_matrix.coeff(actual_row, actual_col);
+    }
+    template<int LoadMode>
+    inline PacketScalar packet(Index rowId, Index colId) const
+    {
+      const Index actual_row  = internal::traits<MatrixType>::RowsAtCompileTime==1 ? 0
+                            : RowFactor==1 ? rowId
+                            : rowId%m_matrix.rows();
+      const Index actual_col  = internal::traits<MatrixType>::ColsAtCompileTime==1 ? 0
+                            : ColFactor==1 ? colId
+                            : colId%m_matrix.cols();
+
+      return m_matrix.template packet<LoadMode>(actual_row, actual_col);
+    }
+
+    const _MatrixTypeNested& nestedExpression() const
+    { 
+      return m_matrix; 
+    }
+
+  protected:
+    MatrixTypeNested m_matrix;
+    const internal::variable_if_dynamic<Index, RowFactor> m_rowFactor;
+    const internal::variable_if_dynamic<Index, ColFactor> m_colFactor;
+};
+
+/**
+  * \return an expression of the replication of \c *this
+  *
+  * Example: \include MatrixBase_replicate.cpp
+  * Output: \verbinclude MatrixBase_replicate.out
+  *
+  * \sa VectorwiseOp::replicate(), DenseBase::replicate(Index,Index), class Replicate
+  */
+template<typename Derived>
+template<int RowFactor, int ColFactor>
+const Replicate<Derived,RowFactor,ColFactor>
+DenseBase<Derived>::replicate() const
+{
+  return Replicate<Derived,RowFactor,ColFactor>(derived());
+}
+
+/**
+  * \return an expression of the replication of \c *this
+  *
+  * Example: \include MatrixBase_replicate_int_int.cpp
+  * Output: \verbinclude MatrixBase_replicate_int_int.out
+  *
+  * \sa VectorwiseOp::replicate(), DenseBase::replicate<int,int>(), class Replicate
+  */
+template<typename Derived>
+const typename DenseBase<Derived>::ReplicateReturnType
+DenseBase<Derived>::replicate(Index rowFactor,Index colFactor) const
+{
+  return Replicate<Derived,Dynamic,Dynamic>(derived(),rowFactor,colFactor);
+}
+
+/**
+  * \return an expression of the replication of each column (or row) of \c *this
+  *
+  * Example: \include DirectionWise_replicate_int.cpp
+  * Output: \verbinclude DirectionWise_replicate_int.out
+  *
+  * \sa VectorwiseOp::replicate(), DenseBase::replicate(), class Replicate
+  */
+template<typename ExpressionType, int Direction>
+const typename VectorwiseOp<ExpressionType,Direction>::ReplicateReturnType
+VectorwiseOp<ExpressionType,Direction>::replicate(Index factor) const
+{
+  return typename VectorwiseOp<ExpressionType,Direction>::ReplicateReturnType
+          (_expression(),Direction==Vertical?factor:1,Direction==Horizontal?factor:1);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_REPLICATE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Swap.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Swap.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Swap.h	(revision 2476)
@@ -0,0 +1,126 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SWAP_H
+#define EIGEN_SWAP_H
+
+namespace Eigen { 
+
+/** \class SwapWrapper
+  * \ingroup Core_Module
+  *
+  * \internal
+  *
+  * \brief Internal helper class for swapping two expressions
+  */
+namespace internal {
+template<typename ExpressionType>
+struct traits<SwapWrapper<ExpressionType> > : traits<ExpressionType> {};
+}
+
+template<typename ExpressionType> class SwapWrapper
+  : public internal::dense_xpr_base<SwapWrapper<ExpressionType> >::type
+{
+  public:
+
+    typedef typename internal::dense_xpr_base<SwapWrapper>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(SwapWrapper)
+    typedef typename internal::packet_traits<Scalar>::type Packet;
+
+    inline SwapWrapper(ExpressionType& xpr) : m_expression(xpr) {}
+
+    inline Index rows() const { return m_expression.rows(); }
+    inline Index cols() const { return m_expression.cols(); }
+    inline Index outerStride() const { return m_expression.outerStride(); }
+    inline Index innerStride() const { return m_expression.innerStride(); }
+    
+    typedef typename internal::conditional<
+                       internal::is_lvalue<ExpressionType>::value,
+                       Scalar,
+                       const Scalar
+                     >::type ScalarWithConstIfNotLvalue;
+                     
+    inline ScalarWithConstIfNotLvalue* data() { return m_expression.data(); }
+    inline const Scalar* data() const { return m_expression.data(); }
+
+    inline Scalar& coeffRef(Index rowId, Index colId)
+    {
+      return m_expression.const_cast_derived().coeffRef(rowId, colId);
+    }
+
+    inline Scalar& coeffRef(Index index)
+    {
+      return m_expression.const_cast_derived().coeffRef(index);
+    }
+
+    inline Scalar& coeffRef(Index rowId, Index colId) const
+    {
+      return m_expression.coeffRef(rowId, colId);
+    }
+
+    inline Scalar& coeffRef(Index index) const
+    {
+      return m_expression.coeffRef(index);
+    }
+
+    template<typename OtherDerived>
+    void copyCoeff(Index rowId, Index colId, const DenseBase<OtherDerived>& other)
+    {
+      OtherDerived& _other = other.const_cast_derived();
+      eigen_internal_assert(rowId >= 0 && rowId < rows()
+                         && colId >= 0 && colId < cols());
+      Scalar tmp = m_expression.coeff(rowId, colId);
+      m_expression.coeffRef(rowId, colId) = _other.coeff(rowId, colId);
+      _other.coeffRef(rowId, colId) = tmp;
+    }
+
+    template<typename OtherDerived>
+    void copyCoeff(Index index, const DenseBase<OtherDerived>& other)
+    {
+      OtherDerived& _other = other.const_cast_derived();
+      eigen_internal_assert(index >= 0 && index < m_expression.size());
+      Scalar tmp = m_expression.coeff(index);
+      m_expression.coeffRef(index) = _other.coeff(index);
+      _other.coeffRef(index) = tmp;
+    }
+
+    template<typename OtherDerived, int StoreMode, int LoadMode>
+    void copyPacket(Index rowId, Index colId, const DenseBase<OtherDerived>& other)
+    {
+      OtherDerived& _other = other.const_cast_derived();
+      eigen_internal_assert(rowId >= 0 && rowId < rows()
+                        && colId >= 0 && colId < cols());
+      Packet tmp = m_expression.template packet<StoreMode>(rowId, colId);
+      m_expression.template writePacket<StoreMode>(rowId, colId,
+        _other.template packet<LoadMode>(rowId, colId)
+      );
+      _other.template writePacket<LoadMode>(rowId, colId, tmp);
+    }
+
+    template<typename OtherDerived, int StoreMode, int LoadMode>
+    void copyPacket(Index index, const DenseBase<OtherDerived>& other)
+    {
+      OtherDerived& _other = other.const_cast_derived();
+      eigen_internal_assert(index >= 0 && index < m_expression.size());
+      Packet tmp = m_expression.template packet<StoreMode>(index);
+      m_expression.template writePacket<StoreMode>(index,
+        _other.template packet<LoadMode>(index)
+      );
+      _other.template writePacket<LoadMode>(index, tmp);
+    }
+
+    ExpressionType& expression() const { return m_expression; }
+
+  protected:
+    ExpressionType& m_expression;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SWAP_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ProductBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ProductBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ProductBase.h	(revision 2476)
@@ -0,0 +1,290 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PRODUCTBASE_H
+#define EIGEN_PRODUCTBASE_H
+
+namespace Eigen { 
+
+/** \class ProductBase
+  * \ingroup Core_Module
+  *
+  */
+
+namespace internal {
+template<typename Derived, typename _Lhs, typename _Rhs>
+struct traits<ProductBase<Derived,_Lhs,_Rhs> >
+{
+  typedef MatrixXpr XprKind;
+  typedef typename remove_all<_Lhs>::type Lhs;
+  typedef typename remove_all<_Rhs>::type Rhs;
+  typedef typename scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType Scalar;
+  typedef typename promote_storage_type<typename traits<Lhs>::StorageKind,
+                                           typename traits<Rhs>::StorageKind>::ret StorageKind;
+  typedef typename promote_index_type<typename traits<Lhs>::Index,
+                                         typename traits<Rhs>::Index>::type Index;
+  enum {
+    RowsAtCompileTime = traits<Lhs>::RowsAtCompileTime,
+    ColsAtCompileTime = traits<Rhs>::ColsAtCompileTime,
+    MaxRowsAtCompileTime = traits<Lhs>::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = traits<Rhs>::MaxColsAtCompileTime,
+    Flags = (MaxRowsAtCompileTime==1 ? RowMajorBit : 0)
+          | EvalBeforeNestingBit | EvalBeforeAssigningBit | NestByRefBit,
+                  // Note that EvalBeforeNestingBit and NestByRefBit
+                  // are not used in practice because nested is overloaded for products
+    CoeffReadCost = 0 // FIXME why is it needed ?
+  };
+};
+}
+
+#define EIGEN_PRODUCT_PUBLIC_INTERFACE(Derived) \
+  typedef ProductBase<Derived, Lhs, Rhs > Base; \
+  EIGEN_DENSE_PUBLIC_INTERFACE(Derived) \
+  typedef typename Base::LhsNested LhsNested; \
+  typedef typename Base::_LhsNested _LhsNested; \
+  typedef typename Base::LhsBlasTraits LhsBlasTraits; \
+  typedef typename Base::ActualLhsType ActualLhsType; \
+  typedef typename Base::_ActualLhsType _ActualLhsType; \
+  typedef typename Base::RhsNested RhsNested; \
+  typedef typename Base::_RhsNested _RhsNested; \
+  typedef typename Base::RhsBlasTraits RhsBlasTraits; \
+  typedef typename Base::ActualRhsType ActualRhsType; \
+  typedef typename Base::_ActualRhsType _ActualRhsType; \
+  using Base::m_lhs; \
+  using Base::m_rhs;
+
+template<typename Derived, typename Lhs, typename Rhs>
+class ProductBase : public MatrixBase<Derived>
+{
+  public:
+    typedef MatrixBase<Derived> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(ProductBase)
+    
+    typedef typename Lhs::Nested LhsNested;
+    typedef typename internal::remove_all<LhsNested>::type _LhsNested;
+    typedef internal::blas_traits<_LhsNested> LhsBlasTraits;
+    typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType;
+    typedef typename internal::remove_all<ActualLhsType>::type _ActualLhsType;
+    typedef typename internal::traits<Lhs>::Scalar LhsScalar;
+
+    typedef typename Rhs::Nested RhsNested;
+    typedef typename internal::remove_all<RhsNested>::type _RhsNested;
+    typedef internal::blas_traits<_RhsNested> RhsBlasTraits;
+    typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
+    typedef typename internal::remove_all<ActualRhsType>::type _ActualRhsType;
+    typedef typename internal::traits<Rhs>::Scalar RhsScalar;
+
+    // Diagonal of a product: no need to evaluate the arguments because they are going to be evaluated only once
+    typedef CoeffBasedProduct<LhsNested, RhsNested, 0> FullyLazyCoeffBaseProductType;
+
+  public:
+
+#ifndef EIGEN_NO_MALLOC
+    typedef typename Base::PlainObject BasePlainObject;
+    typedef Matrix<Scalar,RowsAtCompileTime==1?1:Dynamic,ColsAtCompileTime==1?1:Dynamic,BasePlainObject::Options> DynPlainObject;
+    typedef typename internal::conditional<(BasePlainObject::SizeAtCompileTime==Dynamic) || (BasePlainObject::SizeAtCompileTime*int(sizeof(Scalar)) < int(EIGEN_STACK_ALLOCATION_LIMIT)),
+                                           BasePlainObject, DynPlainObject>::type PlainObject;
+#else
+    typedef typename Base::PlainObject PlainObject;
+#endif
+
+    ProductBase(const Lhs& a_lhs, const Rhs& a_rhs)
+      : m_lhs(a_lhs), m_rhs(a_rhs)
+    {
+      eigen_assert(a_lhs.cols() == a_rhs.rows()
+        && "invalid matrix product"
+        && "if you wanted a coeff-wise or a dot product use the respective explicit functions");
+    }
+
+    inline Index rows() const { return m_lhs.rows(); }
+    inline Index cols() const { return m_rhs.cols(); }
+
+    template<typename Dest>
+    inline void evalTo(Dest& dst) const { dst.setZero(); scaleAndAddTo(dst,Scalar(1)); }
+
+    template<typename Dest>
+    inline void addTo(Dest& dst) const { scaleAndAddTo(dst,Scalar(1)); }
+
+    template<typename Dest>
+    inline void subTo(Dest& dst) const { scaleAndAddTo(dst,Scalar(-1)); }
+
+    template<typename Dest>
+    inline void scaleAndAddTo(Dest& dst, const Scalar& alpha) const { derived().scaleAndAddTo(dst,alpha); }
+
+    const _LhsNested& lhs() const { return m_lhs; }
+    const _RhsNested& rhs() const { return m_rhs; }
+
+    // Implicit conversion to the nested type (trigger the evaluation of the product)
+    operator const PlainObject& () const
+    {
+      m_result.resize(m_lhs.rows(), m_rhs.cols());
+      derived().evalTo(m_result);
+      return m_result;
+    }
+
+    const Diagonal<const FullyLazyCoeffBaseProductType,0> diagonal() const
+    { return FullyLazyCoeffBaseProductType(m_lhs, m_rhs); }
+
+    template<int Index>
+    const Diagonal<FullyLazyCoeffBaseProductType,Index> diagonal() const
+    { return FullyLazyCoeffBaseProductType(m_lhs, m_rhs); }
+
+    const Diagonal<FullyLazyCoeffBaseProductType,Dynamic> diagonal(Index index) const
+    { return FullyLazyCoeffBaseProductType(m_lhs, m_rhs).diagonal(index); }
+
+    // restrict coeff accessors to 1x1 expressions. No need to care about mutators here since this isnt a Lvalue expression
+    typename Base::CoeffReturnType coeff(Index row, Index col) const
+    {
+#ifdef EIGEN2_SUPPORT
+      return lhs().row(row).cwiseProduct(rhs().col(col).transpose()).sum();
+#else
+      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
+      eigen_assert(this->rows() == 1 && this->cols() == 1);
+      Matrix<Scalar,1,1> result = *this;
+      return result.coeff(row,col);
+#endif
+    }
+
+    typename Base::CoeffReturnType coeff(Index i) const
+    {
+      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
+      eigen_assert(this->rows() == 1 && this->cols() == 1);
+      Matrix<Scalar,1,1> result = *this;
+      return result.coeff(i);
+    }
+
+    const Scalar& coeffRef(Index row, Index col) const
+    {
+      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
+      eigen_assert(this->rows() == 1 && this->cols() == 1);
+      return derived().coeffRef(row,col);
+    }
+
+    const Scalar& coeffRef(Index i) const
+    {
+      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
+      eigen_assert(this->rows() == 1 && this->cols() == 1);
+      return derived().coeffRef(i);
+    }
+
+  protected:
+
+    LhsNested m_lhs;
+    RhsNested m_rhs;
+
+    mutable PlainObject m_result;
+};
+
+// here we need to overload the nested rule for products
+// such that the nested type is a const reference to a plain matrix
+namespace internal {
+template<typename Lhs, typename Rhs, int Mode, int N, typename PlainObject>
+struct nested<GeneralProduct<Lhs,Rhs,Mode>, N, PlainObject>
+{
+  typedef typename GeneralProduct<Lhs,Rhs,Mode>::PlainObject const& type;
+};
+template<typename Lhs, typename Rhs, int Mode, int N, typename PlainObject>
+struct nested<const GeneralProduct<Lhs,Rhs,Mode>, N, PlainObject>
+{
+  typedef typename GeneralProduct<Lhs,Rhs,Mode>::PlainObject const& type;
+};
+}
+
+template<typename NestedProduct>
+class ScaledProduct;
+
+// Note that these two operator* functions are not defined as member
+// functions of ProductBase, because, otherwise we would have to
+// define all overloads defined in MatrixBase. Furthermore, Using
+// "using Base::operator*" would not work with MSVC.
+//
+// Also note that here we accept any compatible scalar types
+template<typename Derived,typename Lhs,typename Rhs>
+const ScaledProduct<Derived>
+operator*(const ProductBase<Derived,Lhs,Rhs>& prod, const typename Derived::Scalar& x)
+{ return ScaledProduct<Derived>(prod.derived(), x); }
+
+template<typename Derived,typename Lhs,typename Rhs>
+typename internal::enable_if<!internal::is_same<typename Derived::Scalar,typename Derived::RealScalar>::value,
+                      const ScaledProduct<Derived> >::type
+operator*(const ProductBase<Derived,Lhs,Rhs>& prod, const typename Derived::RealScalar& x)
+{ return ScaledProduct<Derived>(prod.derived(), x); }
+
+
+template<typename Derived,typename Lhs,typename Rhs>
+const ScaledProduct<Derived>
+operator*(const typename Derived::Scalar& x,const ProductBase<Derived,Lhs,Rhs>& prod)
+{ return ScaledProduct<Derived>(prod.derived(), x); }
+
+template<typename Derived,typename Lhs,typename Rhs>
+typename internal::enable_if<!internal::is_same<typename Derived::Scalar,typename Derived::RealScalar>::value,
+                      const ScaledProduct<Derived> >::type
+operator*(const typename Derived::RealScalar& x,const ProductBase<Derived,Lhs,Rhs>& prod)
+{ return ScaledProduct<Derived>(prod.derived(), x); }
+
+namespace internal {
+template<typename NestedProduct>
+struct traits<ScaledProduct<NestedProduct> >
+ : traits<ProductBase<ScaledProduct<NestedProduct>,
+                         typename NestedProduct::_LhsNested,
+                         typename NestedProduct::_RhsNested> >
+{
+  typedef typename traits<NestedProduct>::StorageKind StorageKind;
+};
+}
+
+template<typename NestedProduct>
+class ScaledProduct
+  : public ProductBase<ScaledProduct<NestedProduct>,
+                       typename NestedProduct::_LhsNested,
+                       typename NestedProduct::_RhsNested>
+{
+  public:
+    typedef ProductBase<ScaledProduct<NestedProduct>,
+                       typename NestedProduct::_LhsNested,
+                       typename NestedProduct::_RhsNested> Base;
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::PlainObject PlainObject;
+//     EIGEN_PRODUCT_PUBLIC_INTERFACE(ScaledProduct)
+
+    ScaledProduct(const NestedProduct& prod, const Scalar& x)
+    : Base(prod.lhs(),prod.rhs()), m_prod(prod), m_alpha(x) {}
+
+    template<typename Dest>
+    inline void evalTo(Dest& dst) const { dst.setZero(); scaleAndAddTo(dst, Scalar(1)); }
+
+    template<typename Dest>
+    inline void addTo(Dest& dst) const { scaleAndAddTo(dst, Scalar(1)); }
+
+    template<typename Dest>
+    inline void subTo(Dest& dst) const { scaleAndAddTo(dst, Scalar(-1)); }
+
+    template<typename Dest>
+    inline void scaleAndAddTo(Dest& dst, const Scalar& a_alpha) const { m_prod.derived().scaleAndAddTo(dst,a_alpha * m_alpha); }
+
+    const Scalar& alpha() const { return m_alpha; }
+    
+  protected:
+    const NestedProduct& m_prod;
+    Scalar m_alpha;
+};
+
+/** \internal
+  * Overloaded to perform an efficient C = (A*B).lazy() */
+template<typename Derived>
+template<typename ProductDerived, typename Lhs, typename Rhs>
+Derived& MatrixBase<Derived>::lazyAssign(const ProductBase<ProductDerived, Lhs,Rhs>& other)
+{
+  other.derived().evalTo(derived());
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PRODUCTBASE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixVector.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixVector.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixVector.h	(revision 2476)
@@ -0,0 +1,281 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINT_MATRIX_VECTOR_H
+#define EIGEN_SELFADJOINT_MATRIX_VECTOR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/* Optimized selfadjoint matrix * vector product:
+ * This algorithm processes 2 columns at onces that allows to both reduce
+ * the number of load/stores of the result by a factor 2 and to reduce
+ * the instruction dependency.
+ */
+
+template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs, int Version=Specialized>
+struct selfadjoint_matrix_vector_product;
+
+template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs, int Version>
+struct selfadjoint_matrix_vector_product
+
+{
+static EIGEN_DONT_INLINE void run(
+  Index size,
+  const Scalar*  lhs, Index lhsStride,
+  const Scalar* _rhs, Index rhsIncr,
+  Scalar* res,
+  Scalar alpha);
+};
+
+template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs, int Version>
+EIGEN_DONT_INLINE void selfadjoint_matrix_vector_product<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs,Version>::run(
+  Index size,
+  const Scalar*  lhs, Index lhsStride,
+  const Scalar* _rhs, Index rhsIncr,
+  Scalar* res,
+  Scalar alpha)
+{
+  typedef typename packet_traits<Scalar>::type Packet;
+  const Index PacketSize = sizeof(Packet)/sizeof(Scalar);
+
+  enum {
+    IsRowMajor = StorageOrder==RowMajor ? 1 : 0,
+    IsLower = UpLo == Lower ? 1 : 0,
+    FirstTriangular = IsRowMajor == IsLower
+  };
+
+  conj_helper<Scalar,Scalar,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs,  IsRowMajor), ConjugateRhs> cj0;
+  conj_helper<Scalar,Scalar,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs, !IsRowMajor), ConjugateRhs> cj1;
+  conj_helper<Scalar,Scalar,NumTraits<Scalar>::IsComplex, ConjugateRhs> cjd;
+
+  conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs,  IsRowMajor), ConjugateRhs> pcj0;
+  conj_helper<Packet,Packet,NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(ConjugateLhs, !IsRowMajor), ConjugateRhs> pcj1;
+
+  Scalar cjAlpha = ConjugateRhs ? numext::conj(alpha) : alpha;
+
+  // FIXME this copy is now handled outside product_selfadjoint_vector, so it could probably be removed.
+  // if the rhs is not sequentially stored in memory we copy it to a temporary buffer,
+  // this is because we need to extract packets
+  ei_declare_aligned_stack_constructed_variable(Scalar,rhs,size,rhsIncr==1 ? const_cast<Scalar*>(_rhs) : 0);  
+  if (rhsIncr!=1)
+  {
+    const Scalar* it = _rhs;
+    for (Index i=0; i<size; ++i, it+=rhsIncr)
+      rhs[i] = *it;
+  }
+
+  Index bound = (std::max)(Index(0),size-8) & 0xfffffffe;
+  if (FirstTriangular)
+    bound = size - bound;
+
+  for (Index j=FirstTriangular ? bound : 0;
+       j<(FirstTriangular ? size : bound);j+=2)
+  {
+    const Scalar* EIGEN_RESTRICT A0 = lhs + j*lhsStride;
+    const Scalar* EIGEN_RESTRICT A1 = lhs + (j+1)*lhsStride;
+
+    Scalar t0 = cjAlpha * rhs[j];
+    Packet ptmp0 = pset1<Packet>(t0);
+    Scalar t1 = cjAlpha * rhs[j+1];
+    Packet ptmp1 = pset1<Packet>(t1);
+
+    Scalar t2(0);
+    Packet ptmp2 = pset1<Packet>(t2);
+    Scalar t3(0);
+    Packet ptmp3 = pset1<Packet>(t3);
+
+    size_t starti = FirstTriangular ? 0 : j+2;
+    size_t endi   = FirstTriangular ? j : size;
+    size_t alignedStart = (starti) + internal::first_aligned(&res[starti], endi-starti);
+    size_t alignedEnd = alignedStart + ((endi-alignedStart)/(PacketSize))*(PacketSize);
+
+    // TODO make sure this product is a real * complex and that the rhs is properly conjugated if needed
+    res[j]   += cjd.pmul(numext::real(A0[j]), t0);
+    res[j+1] += cjd.pmul(numext::real(A1[j+1]), t1);
+    if(FirstTriangular)
+    {
+      res[j]   += cj0.pmul(A1[j],   t1);
+      t3       += cj1.pmul(A1[j],   rhs[j]);
+    }
+    else
+    {
+      res[j+1] += cj0.pmul(A0[j+1],t0);
+      t2 += cj1.pmul(A0[j+1], rhs[j+1]);
+    }
+
+    for (size_t i=starti; i<alignedStart; ++i)
+    {
+      res[i] += t0 * A0[i] + t1 * A1[i];
+      t2 += numext::conj(A0[i]) * rhs[i];
+      t3 += numext::conj(A1[i]) * rhs[i];
+    }
+    // Yes this an optimization for gcc 4.3 and 4.4 (=> huge speed up)
+    // gcc 4.2 does this optimization automatically.
+    const Scalar* EIGEN_RESTRICT a0It  = A0  + alignedStart;
+    const Scalar* EIGEN_RESTRICT a1It  = A1  + alignedStart;
+    const Scalar* EIGEN_RESTRICT rhsIt = rhs + alignedStart;
+          Scalar* EIGEN_RESTRICT resIt = res + alignedStart;
+    for (size_t i=alignedStart; i<alignedEnd; i+=PacketSize)
+    {
+      Packet A0i = ploadu<Packet>(a0It);  a0It  += PacketSize;
+      Packet A1i = ploadu<Packet>(a1It);  a1It  += PacketSize;
+      Packet Bi  = ploadu<Packet>(rhsIt); rhsIt += PacketSize; // FIXME should be aligned in most cases
+      Packet Xi  = pload <Packet>(resIt);
+
+      Xi    = pcj0.pmadd(A0i,ptmp0, pcj0.pmadd(A1i,ptmp1,Xi));
+      ptmp2 = pcj1.pmadd(A0i,  Bi, ptmp2);
+      ptmp3 = pcj1.pmadd(A1i,  Bi, ptmp3);
+      pstore(resIt,Xi); resIt += PacketSize;
+    }
+    for (size_t i=alignedEnd; i<endi; i++)
+    {
+      res[i] += cj0.pmul(A0[i], t0) + cj0.pmul(A1[i],t1);
+      t2 += cj1.pmul(A0[i], rhs[i]);
+      t3 += cj1.pmul(A1[i], rhs[i]);
+    }
+
+    res[j]   += alpha * (t2 + predux(ptmp2));
+    res[j+1] += alpha * (t3 + predux(ptmp3));
+  }
+  for (Index j=FirstTriangular ? 0 : bound;j<(FirstTriangular ? bound : size);j++)
+  {
+    const Scalar* EIGEN_RESTRICT A0 = lhs + j*lhsStride;
+
+    Scalar t1 = cjAlpha * rhs[j];
+    Scalar t2(0);
+    // TODO make sure this product is a real * complex and that the rhs is properly conjugated if needed
+    res[j] += cjd.pmul(numext::real(A0[j]), t1);
+    for (Index i=FirstTriangular ? 0 : j+1; i<(FirstTriangular ? j : size); i++)
+    {
+      res[i] += cj0.pmul(A0[i], t1);
+      t2 += cj1.pmul(A0[i], rhs[i]);
+    }
+    res[j] += alpha * t2;
+  }
+}
+
+} // end namespace internal 
+
+/***************************************************************************
+* Wrapper to product_selfadjoint_vector
+***************************************************************************/
+
+namespace internal {
+template<typename Lhs, int LhsMode, typename Rhs>
+struct traits<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,0,true> >
+  : traits<ProductBase<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,0,true>, Lhs, Rhs> >
+{};
+}
+
+template<typename Lhs, int LhsMode, typename Rhs>
+struct SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,0,true>
+  : public ProductBase<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,0,true>, Lhs, Rhs >
+{
+  EIGEN_PRODUCT_PUBLIC_INTERFACE(SelfadjointProductMatrix)
+
+  enum {
+    LhsUpLo = LhsMode&(Upper|Lower)
+  };
+
+  SelfadjointProductMatrix(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
+
+  template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
+  {
+    typedef typename Dest::Scalar ResScalar;
+    typedef typename Base::RhsScalar RhsScalar;
+    typedef Map<Matrix<ResScalar,Dynamic,1>, Aligned> MappedDest;
+    
+    eigen_assert(dest.rows()==m_lhs.rows() && dest.cols()==m_rhs.cols());
+
+    typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(m_lhs);
+    typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(m_rhs);
+
+    Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(m_lhs)
+                               * RhsBlasTraits::extractScalarFactor(m_rhs);
+
+    enum {
+      EvalToDest = (Dest::InnerStrideAtCompileTime==1),
+      UseRhs = (_ActualRhsType::InnerStrideAtCompileTime==1)
+    };
+    
+    internal::gemv_static_vector_if<ResScalar,Dest::SizeAtCompileTime,Dest::MaxSizeAtCompileTime,!EvalToDest> static_dest;
+    internal::gemv_static_vector_if<RhsScalar,_ActualRhsType::SizeAtCompileTime,_ActualRhsType::MaxSizeAtCompileTime,!UseRhs> static_rhs;
+
+    ei_declare_aligned_stack_constructed_variable(ResScalar,actualDestPtr,dest.size(),
+                                                  EvalToDest ? dest.data() : static_dest.data());
+                                                  
+    ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhsPtr,rhs.size(),
+        UseRhs ? const_cast<RhsScalar*>(rhs.data()) : static_rhs.data());
+    
+    if(!EvalToDest)
+    {
+      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      int size = dest.size();
+      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      #endif
+      MappedDest(actualDestPtr, dest.size()) = dest;
+    }
+      
+    if(!UseRhs)
+    {
+      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      int size = rhs.size();
+      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      #endif
+      Map<typename _ActualRhsType::PlainObject>(actualRhsPtr, rhs.size()) = rhs;
+    }
+      
+      
+    internal::selfadjoint_matrix_vector_product<Scalar, Index, (internal::traits<_ActualLhsType>::Flags&RowMajorBit) ? RowMajor : ColMajor, int(LhsUpLo), bool(LhsBlasTraits::NeedToConjugate), bool(RhsBlasTraits::NeedToConjugate)>::run
+      (
+        lhs.rows(),                             // size
+        &lhs.coeffRef(0,0),  lhs.outerStride(), // lhs info
+        actualRhsPtr, 1,                        // rhs info
+        actualDestPtr,                          // result info
+        actualAlpha                             // scale factor
+      );
+    
+    if(!EvalToDest)
+      dest = MappedDest(actualDestPtr, dest.size());
+  }
+};
+
+namespace internal {
+template<typename Lhs, typename Rhs, int RhsMode>
+struct traits<SelfadjointProductMatrix<Lhs,0,true,Rhs,RhsMode,false> >
+  : traits<ProductBase<SelfadjointProductMatrix<Lhs,0,true,Rhs,RhsMode,false>, Lhs, Rhs> >
+{};
+}
+
+template<typename Lhs, typename Rhs, int RhsMode>
+struct SelfadjointProductMatrix<Lhs,0,true,Rhs,RhsMode,false>
+  : public ProductBase<SelfadjointProductMatrix<Lhs,0,true,Rhs,RhsMode,false>, Lhs, Rhs >
+{
+  EIGEN_PRODUCT_PUBLIC_INTERFACE(SelfadjointProductMatrix)
+
+  enum {
+    RhsUpLo = RhsMode&(Upper|Lower)
+  };
+
+  SelfadjointProductMatrix(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
+
+  template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
+  {
+    // let's simply transpose the product
+    Transpose<Dest> destT(dest);
+    SelfadjointProductMatrix<Transpose<const Rhs>, int(RhsUpLo)==Upper ? Lower : Upper, false,
+                             Transpose<const Lhs>, 0, true>(m_rhs.transpose(), m_lhs.transpose()).scaleAndAddTo(destT, alpha);
+  }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINT_MATRIX_VECTOR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixMatrix.h	(revision 2476)
@@ -0,0 +1,436 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINT_MATRIX_MATRIX_H
+#define EIGEN_SELFADJOINT_MATRIX_MATRIX_H
+
+namespace Eigen { 
+
+namespace internal {
+
+// pack a selfadjoint block diagonal for use with the gebp_kernel
+template<typename Scalar, typename Index, int Pack1, int Pack2, int StorageOrder>
+struct symm_pack_lhs
+{
+  template<int BlockRows> inline
+  void pack(Scalar* blockA, const const_blas_data_mapper<Scalar,Index,StorageOrder>& lhs, Index cols, Index i, Index& count)
+  {
+    // normal copy
+    for(Index k=0; k<i; k++)
+      for(Index w=0; w<BlockRows; w++)
+        blockA[count++] = lhs(i+w,k);           // normal
+    // symmetric copy
+    Index h = 0;
+    for(Index k=i; k<i+BlockRows; k++)
+    {
+      for(Index w=0; w<h; w++)
+        blockA[count++] = numext::conj(lhs(k, i+w)); // transposed
+
+      blockA[count++] = numext::real(lhs(k,k));   // real (diagonal)
+
+      for(Index w=h+1; w<BlockRows; w++)
+        blockA[count++] = lhs(i+w, k);          // normal
+      ++h;
+    }
+    // transposed copy
+    for(Index k=i+BlockRows; k<cols; k++)
+      for(Index w=0; w<BlockRows; w++)
+        blockA[count++] = numext::conj(lhs(k, i+w)); // transposed
+  }
+  void operator()(Scalar* blockA, const Scalar* _lhs, Index lhsStride, Index cols, Index rows)
+  {
+    const_blas_data_mapper<Scalar,Index,StorageOrder> lhs(_lhs,lhsStride);
+    Index count = 0;
+    Index peeled_mc = (rows/Pack1)*Pack1;
+    for(Index i=0; i<peeled_mc; i+=Pack1)
+    {
+      pack<Pack1>(blockA, lhs, cols, i, count);
+    }
+
+    if(rows-peeled_mc>=Pack2)
+    {
+      pack<Pack2>(blockA, lhs, cols, peeled_mc, count);
+      peeled_mc += Pack2;
+    }
+
+    // do the same with mr==1
+    for(Index i=peeled_mc; i<rows; i++)
+    {
+      for(Index k=0; k<i; k++)
+        blockA[count++] = lhs(i, k);              // normal
+
+      blockA[count++] = numext::real(lhs(i, i));       // real (diagonal)
+
+      for(Index k=i+1; k<cols; k++)
+        blockA[count++] = numext::conj(lhs(k, i));     // transposed
+    }
+  }
+};
+
+template<typename Scalar, typename Index, int nr, int StorageOrder>
+struct symm_pack_rhs
+{
+  enum { PacketSize = packet_traits<Scalar>::size };
+  void operator()(Scalar* blockB, const Scalar* _rhs, Index rhsStride, Index rows, Index cols, Index k2)
+  {
+    Index end_k = k2 + rows;
+    Index count = 0;
+    const_blas_data_mapper<Scalar,Index,StorageOrder> rhs(_rhs,rhsStride);
+    Index packet_cols = (cols/nr)*nr;
+
+    // first part: normal case
+    for(Index j2=0; j2<k2; j2+=nr)
+    {
+      for(Index k=k2; k<end_k; k++)
+      {
+        blockB[count+0] = rhs(k,j2+0);
+        blockB[count+1] = rhs(k,j2+1);
+        if (nr==4)
+        {
+          blockB[count+2] = rhs(k,j2+2);
+          blockB[count+3] = rhs(k,j2+3);
+        }
+        count += nr;
+      }
+    }
+
+    // second part: diagonal block
+    for(Index j2=k2; j2<(std::min)(k2+rows,packet_cols); j2+=nr)
+    {
+      // again we can split vertically in three different parts (transpose, symmetric, normal)
+      // transpose
+      for(Index k=k2; k<j2; k++)
+      {
+        blockB[count+0] = numext::conj(rhs(j2+0,k));
+        blockB[count+1] = numext::conj(rhs(j2+1,k));
+        if (nr==4)
+        {
+          blockB[count+2] = numext::conj(rhs(j2+2,k));
+          blockB[count+3] = numext::conj(rhs(j2+3,k));
+        }
+        count += nr;
+      }
+      // symmetric
+      Index h = 0;
+      for(Index k=j2; k<j2+nr; k++)
+      {
+        // normal
+        for (Index w=0 ; w<h; ++w)
+          blockB[count+w] = rhs(k,j2+w);
+
+        blockB[count+h] = numext::real(rhs(k,k));
+
+        // transpose
+        for (Index w=h+1 ; w<nr; ++w)
+          blockB[count+w] = numext::conj(rhs(j2+w,k));
+        count += nr;
+        ++h;
+      }
+      // normal
+      for(Index k=j2+nr; k<end_k; k++)
+      {
+        blockB[count+0] = rhs(k,j2+0);
+        blockB[count+1] = rhs(k,j2+1);
+        if (nr==4)
+        {
+          blockB[count+2] = rhs(k,j2+2);
+          blockB[count+3] = rhs(k,j2+3);
+        }
+        count += nr;
+      }
+    }
+
+    // third part: transposed
+    for(Index j2=k2+rows; j2<packet_cols; j2+=nr)
+    {
+      for(Index k=k2; k<end_k; k++)
+      {
+        blockB[count+0] = numext::conj(rhs(j2+0,k));
+        blockB[count+1] = numext::conj(rhs(j2+1,k));
+        if (nr==4)
+        {
+          blockB[count+2] = numext::conj(rhs(j2+2,k));
+          blockB[count+3] = numext::conj(rhs(j2+3,k));
+        }
+        count += nr;
+      }
+    }
+
+    // copy the remaining columns one at a time (=> the same with nr==1)
+    for(Index j2=packet_cols; j2<cols; ++j2)
+    {
+      // transpose
+      Index half = (std::min)(end_k,j2);
+      for(Index k=k2; k<half; k++)
+      {
+        blockB[count] = numext::conj(rhs(j2,k));
+        count += 1;
+      }
+
+      if(half==j2 && half<k2+rows)
+      {
+        blockB[count] = numext::real(rhs(j2,j2));
+        count += 1;
+      }
+      else
+        half--;
+
+      // normal
+      for(Index k=half+1; k<k2+rows; k++)
+      {
+        blockB[count] = rhs(k,j2);
+        count += 1;
+      }
+    }
+  }
+};
+
+/* Optimized selfadjoint matrix * matrix (_SYMM) product built on top of
+ * the general matrix matrix product.
+ */
+template <typename Scalar, typename Index,
+          int LhsStorageOrder, bool LhsSelfAdjoint, bool ConjugateLhs,
+          int RhsStorageOrder, bool RhsSelfAdjoint, bool ConjugateRhs,
+          int ResStorageOrder>
+struct product_selfadjoint_matrix;
+
+template <typename Scalar, typename Index,
+          int LhsStorageOrder, bool LhsSelfAdjoint, bool ConjugateLhs,
+          int RhsStorageOrder, bool RhsSelfAdjoint, bool ConjugateRhs>
+struct product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,LhsSelfAdjoint,ConjugateLhs, RhsStorageOrder,RhsSelfAdjoint,ConjugateRhs,RowMajor>
+{
+
+  static EIGEN_STRONG_INLINE void run(
+    Index rows, Index cols,
+    const Scalar* lhs, Index lhsStride,
+    const Scalar* rhs, Index rhsStride,
+    Scalar* res,       Index resStride,
+    const Scalar& alpha)
+  {
+    product_selfadjoint_matrix<Scalar, Index,
+      EIGEN_LOGICAL_XOR(RhsSelfAdjoint,RhsStorageOrder==RowMajor) ? ColMajor : RowMajor,
+      RhsSelfAdjoint, NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(RhsSelfAdjoint,ConjugateRhs),
+      EIGEN_LOGICAL_XOR(LhsSelfAdjoint,LhsStorageOrder==RowMajor) ? ColMajor : RowMajor,
+      LhsSelfAdjoint, NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(LhsSelfAdjoint,ConjugateLhs),
+      ColMajor>
+      ::run(cols, rows,  rhs, rhsStride,  lhs, lhsStride,  res, resStride,  alpha);
+  }
+};
+
+template <typename Scalar, typename Index,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs>
+struct product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,true,ConjugateLhs, RhsStorageOrder,false,ConjugateRhs,ColMajor>
+{
+
+  static EIGEN_DONT_INLINE void run(
+    Index rows, Index cols,
+    const Scalar* _lhs, Index lhsStride,
+    const Scalar* _rhs, Index rhsStride,
+    Scalar* res,        Index resStride,
+    const Scalar& alpha);
+};
+
+template <typename Scalar, typename Index,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs>
+EIGEN_DONT_INLINE void product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,true,ConjugateLhs, RhsStorageOrder,false,ConjugateRhs,ColMajor>::run(
+    Index rows, Index cols,
+    const Scalar* _lhs, Index lhsStride,
+    const Scalar* _rhs, Index rhsStride,
+    Scalar* res,        Index resStride,
+    const Scalar& alpha)
+  {
+    Index size = rows;
+
+    const_blas_data_mapper<Scalar, Index, LhsStorageOrder> lhs(_lhs,lhsStride);
+    const_blas_data_mapper<Scalar, Index, RhsStorageOrder> rhs(_rhs,rhsStride);
+
+    typedef gebp_traits<Scalar,Scalar> Traits;
+
+    Index kc = size;  // cache block size along the K direction
+    Index mc = rows;  // cache block size along the M direction
+    Index nc = cols;  // cache block size along the N direction
+    computeProductBlockingSizes<Scalar,Scalar>(kc, mc, nc);
+    // kc must smaller than mc
+    kc = (std::min)(kc,mc);
+
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+    std::size_t sizeB = sizeW + kc*cols;
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, kc*mc, 0);
+    ei_declare_aligned_stack_constructed_variable(Scalar, allocatedBlockB, sizeB, 0);
+    Scalar* blockB = allocatedBlockB + sizeW;
+
+    gebp_kernel<Scalar, Scalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
+    symm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+    gemm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder> pack_rhs;
+    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder==RowMajor?ColMajor:RowMajor, true> pack_lhs_transposed;
+
+    for(Index k2=0; k2<size; k2+=kc)
+    {
+      const Index actual_kc = (std::min)(k2+kc,size)-k2;
+
+      // we have selected one row panel of rhs and one column panel of lhs
+      // pack rhs's panel into a sequential chunk of memory
+      // and expand each coeff to a constant packet for further reuse
+      pack_rhs(blockB, &rhs(k2,0), rhsStride, actual_kc, cols);
+
+      // the select lhs's panel has to be split in three different parts:
+      //  1 - the transposed panel above the diagonal block => transposed packed copy
+      //  2 - the diagonal block => special packed copy
+      //  3 - the panel below the diagonal block => generic packed copy
+      for(Index i2=0; i2<k2; i2+=mc)
+      {
+        const Index actual_mc = (std::min)(i2+mc,k2)-i2;
+        // transposed packed copy
+        pack_lhs_transposed(blockA, &lhs(k2, i2), lhsStride, actual_kc, actual_mc);
+
+        gebp_kernel(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha);
+      }
+      // the block diagonal
+      {
+        const Index actual_mc = (std::min)(k2+kc,size)-k2;
+        // symmetric packed copy
+        pack_lhs(blockA, &lhs(k2,k2), lhsStride, actual_kc, actual_mc);
+
+        gebp_kernel(res+k2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha);
+      }
+
+      for(Index i2=k2+kc; i2<size; i2+=mc)
+      {
+        const Index actual_mc = (std::min)(i2+mc,size)-i2;
+        gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder,false>()
+          (blockA, &lhs(i2, k2), lhsStride, actual_kc, actual_mc);
+
+        gebp_kernel(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha);
+      }
+    }
+  }
+
+// matrix * selfadjoint product
+template <typename Scalar, typename Index,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs>
+struct product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,false,ConjugateLhs, RhsStorageOrder,true,ConjugateRhs,ColMajor>
+{
+
+  static EIGEN_DONT_INLINE void run(
+    Index rows, Index cols,
+    const Scalar* _lhs, Index lhsStride,
+    const Scalar* _rhs, Index rhsStride,
+    Scalar* res,        Index resStride,
+    const Scalar& alpha);
+};
+
+template <typename Scalar, typename Index,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs>
+EIGEN_DONT_INLINE void product_selfadjoint_matrix<Scalar,Index,LhsStorageOrder,false,ConjugateLhs, RhsStorageOrder,true,ConjugateRhs,ColMajor>::run(
+    Index rows, Index cols,
+    const Scalar* _lhs, Index lhsStride,
+    const Scalar* _rhs, Index rhsStride,
+    Scalar* res,        Index resStride,
+    const Scalar& alpha)
+  {
+    Index size = cols;
+
+    const_blas_data_mapper<Scalar, Index, LhsStorageOrder> lhs(_lhs,lhsStride);
+
+    typedef gebp_traits<Scalar,Scalar> Traits;
+
+    Index kc = size; // cache block size along the K direction
+    Index mc = rows;  // cache block size along the M direction
+    Index nc = cols;  // cache block size along the N direction
+    computeProductBlockingSizes<Scalar,Scalar>(kc, mc, nc);
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+    std::size_t sizeB = sizeW + kc*cols;
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, kc*mc, 0);
+    ei_declare_aligned_stack_constructed_variable(Scalar, allocatedBlockB, sizeB, 0);
+    Scalar* blockB = allocatedBlockB + sizeW;
+
+    gebp_kernel<Scalar, Scalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
+    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+    symm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder> pack_rhs;
+
+    for(Index k2=0; k2<size; k2+=kc)
+    {
+      const Index actual_kc = (std::min)(k2+kc,size)-k2;
+
+      pack_rhs(blockB, _rhs, rhsStride, actual_kc, cols, k2);
+
+      // => GEPP
+      for(Index i2=0; i2<rows; i2+=mc)
+      {
+        const Index actual_mc = (std::min)(i2+mc,rows)-i2;
+        pack_lhs(blockA, &lhs(i2, k2), lhsStride, actual_kc, actual_mc);
+
+        gebp_kernel(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha);
+      }
+    }
+  }
+
+} // end namespace internal
+
+/***************************************************************************
+* Wrapper to product_selfadjoint_matrix
+***************************************************************************/
+
+namespace internal {
+template<typename Lhs, int LhsMode, typename Rhs, int RhsMode>
+struct traits<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,RhsMode,false> >
+  : traits<ProductBase<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,RhsMode,false>, Lhs, Rhs> >
+{};
+}
+
+template<typename Lhs, int LhsMode, typename Rhs, int RhsMode>
+struct SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,RhsMode,false>
+  : public ProductBase<SelfadjointProductMatrix<Lhs,LhsMode,false,Rhs,RhsMode,false>, Lhs, Rhs >
+{
+  EIGEN_PRODUCT_PUBLIC_INTERFACE(SelfadjointProductMatrix)
+
+  SelfadjointProductMatrix(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
+
+  enum {
+    LhsIsUpper = (LhsMode&(Upper|Lower))==Upper,
+    LhsIsSelfAdjoint = (LhsMode&SelfAdjoint)==SelfAdjoint,
+    RhsIsUpper = (RhsMode&(Upper|Lower))==Upper,
+    RhsIsSelfAdjoint = (RhsMode&SelfAdjoint)==SelfAdjoint
+  };
+
+  template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
+  {
+    eigen_assert(dst.rows()==m_lhs.rows() && dst.cols()==m_rhs.cols());
+
+    typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(m_lhs);
+    typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(m_rhs);
+
+    Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(m_lhs)
+                               * RhsBlasTraits::extractScalarFactor(m_rhs);
+
+    internal::product_selfadjoint_matrix<Scalar, Index,
+      EIGEN_LOGICAL_XOR(LhsIsUpper,
+                        internal::traits<Lhs>::Flags &RowMajorBit) ? RowMajor : ColMajor, LhsIsSelfAdjoint,
+      NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(LhsIsUpper,bool(LhsBlasTraits::NeedToConjugate)),
+      EIGEN_LOGICAL_XOR(RhsIsUpper,
+                        internal::traits<Rhs>::Flags &RowMajorBit) ? RowMajor : ColMajor, RhsIsSelfAdjoint,
+      NumTraits<Scalar>::IsComplex && EIGEN_LOGICAL_XOR(RhsIsUpper,bool(RhsBlasTraits::NeedToConjugate)),
+      internal::traits<Dest>::Flags&RowMajorBit  ? RowMajor : ColMajor>
+      ::run(
+        lhs.rows(), rhs.cols(),                 // sizes
+        &lhs.coeffRef(0,0),    lhs.outerStride(),  // lhs info
+        &rhs.coeffRef(0,0),    rhs.outerStride(),  // rhs info
+        &dst.coeffRef(0,0), dst.outerStride(),  // result info
+        actualAlpha                             // alpha
+      );
+  }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINT_MATRIX_MATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h	(revision 2476)
@@ -0,0 +1,114 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *   Selfadjoint matrix-vector product functionality based on ?SYMV/HEMV.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_SELFADJOINT_MATRIX_VECTOR_MKL_H
+#define EIGEN_SELFADJOINT_MATRIX_VECTOR_MKL_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/**********************************************************************
+* This file implements selfadjoint matrix-vector multiplication using BLAS
+**********************************************************************/
+
+// symv/hemv specialization
+
+template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs>
+struct selfadjoint_matrix_vector_product_symv :
+  selfadjoint_matrix_vector_product<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs,BuiltIn> {};
+
+#define EIGEN_MKL_SYMV_SPECIALIZE(Scalar) \
+template<typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs> \
+struct selfadjoint_matrix_vector_product<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs,Specialized> { \
+static void run( \
+  Index size, const Scalar*  lhs, Index lhsStride, \
+  const Scalar* _rhs, Index rhsIncr, Scalar* res, Scalar alpha) { \
+    enum {\
+      IsColMajor = StorageOrder==ColMajor \
+    }; \
+    if (IsColMajor == ConjugateLhs) {\
+      selfadjoint_matrix_vector_product<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs,BuiltIn>::run( \
+        size, lhs, lhsStride, _rhs, rhsIncr, res, alpha);  \
+    } else {\
+      selfadjoint_matrix_vector_product_symv<Scalar,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs>::run( \
+        size, lhs, lhsStride, _rhs, rhsIncr, res, alpha);  \
+    }\
+  } \
+}; \
+
+EIGEN_MKL_SYMV_SPECIALIZE(double)
+EIGEN_MKL_SYMV_SPECIALIZE(float)
+EIGEN_MKL_SYMV_SPECIALIZE(dcomplex)
+EIGEN_MKL_SYMV_SPECIALIZE(scomplex)
+
+#define EIGEN_MKL_SYMV_SPECIALIZATION(EIGTYPE,MKLTYPE,MKLFUNC) \
+template<typename Index, int StorageOrder, int UpLo, bool ConjugateLhs, bool ConjugateRhs> \
+struct selfadjoint_matrix_vector_product_symv<EIGTYPE,Index,StorageOrder,UpLo,ConjugateLhs,ConjugateRhs> \
+{ \
+typedef Matrix<EIGTYPE,Dynamic,1,ColMajor> SYMVVector;\
+\
+static void run( \
+Index size, const EIGTYPE*  lhs, Index lhsStride, \
+const EIGTYPE* _rhs, Index rhsIncr, EIGTYPE* res, EIGTYPE alpha) \
+{ \
+  enum {\
+    IsRowMajor = StorageOrder==RowMajor ? 1 : 0, \
+    IsLower = UpLo == Lower ? 1 : 0 \
+  }; \
+  MKL_INT n=size, lda=lhsStride, incx=rhsIncr, incy=1; \
+  MKLTYPE alpha_, beta_; \
+  const EIGTYPE *x_ptr, myone(1); \
+  char uplo=(IsRowMajor) ? (IsLower ? 'U' : 'L') : (IsLower ? 'L' : 'U'); \
+  assign_scalar_eig2mkl(alpha_, alpha); \
+  assign_scalar_eig2mkl(beta_, myone); \
+  SYMVVector x_tmp; \
+  if (ConjugateRhs) { \
+    Map<const SYMVVector, 0, InnerStride<> > map_x(_rhs,size,1,InnerStride<>(incx)); \
+    x_tmp=map_x.conjugate(); \
+    x_ptr=x_tmp.data(); \
+    incx=1; \
+  } else x_ptr=_rhs; \
+  MKLFUNC(&uplo, &n, &alpha_, (const MKLTYPE*)lhs, &lda, (const MKLTYPE*)x_ptr, &incx, &beta_, (MKLTYPE*)res, &incy); \
+}\
+};
+
+EIGEN_MKL_SYMV_SPECIALIZATION(double,   double,        dsymv)
+EIGEN_MKL_SYMV_SPECIALIZATION(float,    float,         ssymv)
+EIGEN_MKL_SYMV_SPECIALIZATION(dcomplex, MKL_Complex16, zhemv)
+EIGEN_MKL_SYMV_SPECIALIZATION(scomplex, MKL_Complex8,  chemv)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINT_MATRIX_VECTOR_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h	(revision 2476)
@@ -0,0 +1,295 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *   Self adjoint matrix * matrix product functionality based on ?SYMM/?HEMM.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_SELFADJOINT_MATRIX_MATRIX_MKL_H
+#define EIGEN_SELFADJOINT_MATRIX_MATRIX_MKL_H
+
+namespace Eigen { 
+
+namespace internal {
+
+
+/* Optimized selfadjoint matrix * matrix (?SYMM/?HEMM) product */
+
+#define EIGEN_MKL_SYMM_L(EIGTYPE, MKLTYPE, EIGPREFIX, MKLPREFIX) \
+template <typename Index, \
+          int LhsStorageOrder, bool ConjugateLhs, \
+          int RhsStorageOrder, bool ConjugateRhs> \
+struct product_selfadjoint_matrix<EIGTYPE,Index,LhsStorageOrder,true,ConjugateLhs,RhsStorageOrder,false,ConjugateRhs,ColMajor> \
+{\
+\
+  static void run( \
+    Index rows, Index cols, \
+    const EIGTYPE* _lhs, Index lhsStride, \
+    const EIGTYPE* _rhs, Index rhsStride, \
+    EIGTYPE* res,        Index resStride, \
+    EIGTYPE alpha) \
+  { \
+    char side='L', uplo='L'; \
+    MKL_INT m, n, lda, ldb, ldc; \
+    const EIGTYPE *a, *b; \
+    MKLTYPE alpha_, beta_; \
+    MatrixX##EIGPREFIX b_tmp; \
+    EIGTYPE myone(1);\
+\
+/* Set transpose options */ \
+/* Set m, n, k */ \
+    m = (MKL_INT)rows;  \
+    n = (MKL_INT)cols;  \
+\
+/* Set alpha_ & beta_ */ \
+    assign_scalar_eig2mkl(alpha_, alpha); \
+    assign_scalar_eig2mkl(beta_, myone); \
+\
+/* Set lda, ldb, ldc */ \
+    lda = (MKL_INT)lhsStride; \
+    ldb = (MKL_INT)rhsStride; \
+    ldc = (MKL_INT)resStride; \
+\
+/* Set a, b, c */ \
+    if (LhsStorageOrder==RowMajor) uplo='U'; \
+    a = _lhs; \
+\
+    if (RhsStorageOrder==RowMajor) { \
+      Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > rhs(_rhs,n,m,OuterStride<>(rhsStride)); \
+      b_tmp = rhs.adjoint(); \
+      b = b_tmp.data(); \
+      ldb = b_tmp.outerStride(); \
+    } else b = _rhs; \
+\
+    MKLPREFIX##symm(&side, &uplo, &m, &n, &alpha_, (const MKLTYPE*)a, &lda, (const MKLTYPE*)b, &ldb, &beta_, (MKLTYPE*)res, &ldc); \
+\
+  } \
+};
+
+
+#define EIGEN_MKL_HEMM_L(EIGTYPE, MKLTYPE, EIGPREFIX, MKLPREFIX) \
+template <typename Index, \
+          int LhsStorageOrder, bool ConjugateLhs, \
+          int RhsStorageOrder, bool ConjugateRhs> \
+struct product_selfadjoint_matrix<EIGTYPE,Index,LhsStorageOrder,true,ConjugateLhs,RhsStorageOrder,false,ConjugateRhs,ColMajor> \
+{\
+  static void run( \
+    Index rows, Index cols, \
+    const EIGTYPE* _lhs, Index lhsStride, \
+    const EIGTYPE* _rhs, Index rhsStride, \
+    EIGTYPE* res,        Index resStride, \
+    EIGTYPE alpha) \
+  { \
+    char side='L', uplo='L'; \
+    MKL_INT m, n, lda, ldb, ldc; \
+    const EIGTYPE *a, *b; \
+    MKLTYPE alpha_, beta_; \
+    MatrixX##EIGPREFIX b_tmp; \
+    Matrix<EIGTYPE, Dynamic, Dynamic, LhsStorageOrder> a_tmp; \
+    EIGTYPE myone(1); \
+\
+/* Set transpose options */ \
+/* Set m, n, k */ \
+    m = (MKL_INT)rows; \
+    n = (MKL_INT)cols; \
+\
+/* Set alpha_ & beta_ */ \
+    assign_scalar_eig2mkl(alpha_, alpha); \
+    assign_scalar_eig2mkl(beta_, myone); \
+\
+/* Set lda, ldb, ldc */ \
+    lda = (MKL_INT)lhsStride; \
+    ldb = (MKL_INT)rhsStride; \
+    ldc = (MKL_INT)resStride; \
+\
+/* Set a, b, c */ \
+    if (((LhsStorageOrder==ColMajor) && ConjugateLhs) || ((LhsStorageOrder==RowMajor) && (!ConjugateLhs))) { \
+      Map<const Matrix<EIGTYPE, Dynamic, Dynamic, LhsStorageOrder>, 0, OuterStride<> > lhs(_lhs,m,m,OuterStride<>(lhsStride)); \
+      a_tmp = lhs.conjugate(); \
+      a = a_tmp.data(); \
+      lda = a_tmp.outerStride(); \
+    } else a = _lhs; \
+    if (LhsStorageOrder==RowMajor) uplo='U'; \
+\
+    if (RhsStorageOrder==ColMajor && (!ConjugateRhs)) { \
+       b = _rhs; } \
+    else { \
+      if (RhsStorageOrder==ColMajor && ConjugateRhs) { \
+        Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > rhs(_rhs,m,n,OuterStride<>(rhsStride)); \
+        b_tmp = rhs.conjugate(); \
+      } else \
+      if (ConjugateRhs) { \
+        Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > rhs(_rhs,n,m,OuterStride<>(rhsStride)); \
+        b_tmp = rhs.adjoint(); \
+      } else { \
+        Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > rhs(_rhs,n,m,OuterStride<>(rhsStride)); \
+        b_tmp = rhs.transpose(); \
+      } \
+      b = b_tmp.data(); \
+      ldb = b_tmp.outerStride(); \
+    } \
+\
+    MKLPREFIX##hemm(&side, &uplo, &m, &n, &alpha_, (const MKLTYPE*)a, &lda, (const MKLTYPE*)b, &ldb, &beta_, (MKLTYPE*)res, &ldc); \
+\
+  } \
+};
+
+EIGEN_MKL_SYMM_L(double, double, d, d)
+EIGEN_MKL_SYMM_L(float, float, f, s)
+EIGEN_MKL_HEMM_L(dcomplex, MKL_Complex16, cd, z)
+EIGEN_MKL_HEMM_L(scomplex, MKL_Complex8, cf, c)
+
+
+/* Optimized matrix * selfadjoint matrix (?SYMM/?HEMM) product */
+
+#define EIGEN_MKL_SYMM_R(EIGTYPE, MKLTYPE, EIGPREFIX, MKLPREFIX) \
+template <typename Index, \
+          int LhsStorageOrder, bool ConjugateLhs, \
+          int RhsStorageOrder, bool ConjugateRhs> \
+struct product_selfadjoint_matrix<EIGTYPE,Index,LhsStorageOrder,false,ConjugateLhs,RhsStorageOrder,true,ConjugateRhs,ColMajor> \
+{\
+\
+  static void run( \
+    Index rows, Index cols, \
+    const EIGTYPE* _lhs, Index lhsStride, \
+    const EIGTYPE* _rhs, Index rhsStride, \
+    EIGTYPE* res,        Index resStride, \
+    EIGTYPE alpha) \
+  { \
+    char side='R', uplo='L'; \
+    MKL_INT m, n, lda, ldb, ldc; \
+    const EIGTYPE *a, *b; \
+    MKLTYPE alpha_, beta_; \
+    MatrixX##EIGPREFIX b_tmp; \
+    EIGTYPE myone(1);\
+\
+/* Set m, n, k */ \
+    m = (MKL_INT)rows;  \
+    n = (MKL_INT)cols;  \
+\
+/* Set alpha_ & beta_ */ \
+    assign_scalar_eig2mkl(alpha_, alpha); \
+    assign_scalar_eig2mkl(beta_, myone); \
+\
+/* Set lda, ldb, ldc */ \
+    lda = (MKL_INT)rhsStride; \
+    ldb = (MKL_INT)lhsStride; \
+    ldc = (MKL_INT)resStride; \
+\
+/* Set a, b, c */ \
+    if (RhsStorageOrder==RowMajor) uplo='U'; \
+    a = _rhs; \
+\
+    if (LhsStorageOrder==RowMajor) { \
+      Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > lhs(_lhs,n,m,OuterStride<>(rhsStride)); \
+      b_tmp = lhs.adjoint(); \
+      b = b_tmp.data(); \
+      ldb = b_tmp.outerStride(); \
+    } else b = _lhs; \
+\
+    MKLPREFIX##symm(&side, &uplo, &m, &n, &alpha_, (const MKLTYPE*)a, &lda, (const MKLTYPE*)b, &ldb, &beta_, (MKLTYPE*)res, &ldc); \
+\
+  } \
+};
+
+
+#define EIGEN_MKL_HEMM_R(EIGTYPE, MKLTYPE, EIGPREFIX, MKLPREFIX) \
+template <typename Index, \
+          int LhsStorageOrder, bool ConjugateLhs, \
+          int RhsStorageOrder, bool ConjugateRhs> \
+struct product_selfadjoint_matrix<EIGTYPE,Index,LhsStorageOrder,false,ConjugateLhs,RhsStorageOrder,true,ConjugateRhs,ColMajor> \
+{\
+  static void run( \
+    Index rows, Index cols, \
+    const EIGTYPE* _lhs, Index lhsStride, \
+    const EIGTYPE* _rhs, Index rhsStride, \
+    EIGTYPE* res,        Index resStride, \
+    EIGTYPE alpha) \
+  { \
+    char side='R', uplo='L'; \
+    MKL_INT m, n, lda, ldb, ldc; \
+    const EIGTYPE *a, *b; \
+    MKLTYPE alpha_, beta_; \
+    MatrixX##EIGPREFIX b_tmp; \
+    Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder> a_tmp; \
+    EIGTYPE myone(1); \
+\
+/* Set m, n, k */ \
+    m = (MKL_INT)rows; \
+    n = (MKL_INT)cols; \
+\
+/* Set alpha_ & beta_ */ \
+    assign_scalar_eig2mkl(alpha_, alpha); \
+    assign_scalar_eig2mkl(beta_, myone); \
+\
+/* Set lda, ldb, ldc */ \
+    lda = (MKL_INT)rhsStride; \
+    ldb = (MKL_INT)lhsStride; \
+    ldc = (MKL_INT)resStride; \
+\
+/* Set a, b, c */ \
+    if (((RhsStorageOrder==ColMajor) && ConjugateRhs) || ((RhsStorageOrder==RowMajor) && (!ConjugateRhs))) { \
+      Map<const Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder>, 0, OuterStride<> > rhs(_rhs,n,n,OuterStride<>(rhsStride)); \
+      a_tmp = rhs.conjugate(); \
+      a = a_tmp.data(); \
+      lda = a_tmp.outerStride(); \
+    } else a = _rhs; \
+    if (RhsStorageOrder==RowMajor) uplo='U'; \
+\
+    if (LhsStorageOrder==ColMajor && (!ConjugateLhs)) { \
+       b = _lhs; } \
+    else { \
+      if (LhsStorageOrder==ColMajor && ConjugateLhs) { \
+        Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > lhs(_lhs,m,n,OuterStride<>(lhsStride)); \
+        b_tmp = lhs.conjugate(); \
+      } else \
+      if (ConjugateLhs) { \
+        Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > lhs(_lhs,n,m,OuterStride<>(lhsStride)); \
+        b_tmp = lhs.adjoint(); \
+      } else { \
+        Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > lhs(_lhs,n,m,OuterStride<>(lhsStride)); \
+        b_tmp = lhs.transpose(); \
+      } \
+      b = b_tmp.data(); \
+      ldb = b_tmp.outerStride(); \
+    } \
+\
+    MKLPREFIX##hemm(&side, &uplo, &m, &n, &alpha_, (const MKLTYPE*)a, &lda, (const MKLTYPE*)b, &ldb, &beta_, (MKLTYPE*)res, &ldc); \
+  } \
+};
+
+EIGEN_MKL_SYMM_R(double, double, d, d)
+EIGEN_MKL_SYMM_R(float, float, f, s)
+EIGEN_MKL_HEMM_R(dcomplex, MKL_Complex16, cd, z)
+EIGEN_MKL_HEMM_R(scomplex, MKL_Complex8, cf, c)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINT_MATRIX_MATRIX_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixVector.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixVector.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixVector.h	(revision 2476)
@@ -0,0 +1,348 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULARMATRIXVECTOR_H
+#define EIGEN_TRIANGULARMATRIXVECTOR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int StorageOrder, int Version=Specialized>
+struct triangular_matrix_vector_product;
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int Version>
+struct triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,ColMajor,Version>
+{
+  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+  enum {
+    IsLower = ((Mode&Lower)==Lower),
+    HasUnitDiag = (Mode & UnitDiag)==UnitDiag,
+    HasZeroDiag = (Mode & ZeroDiag)==ZeroDiag
+  };
+  static EIGEN_DONT_INLINE  void run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
+                                     const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha);
+};
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int Version>
+EIGEN_DONT_INLINE void triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,ColMajor,Version>
+  ::run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
+        const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha)
+  {
+    static const Index PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH;
+    Index size = (std::min)(_rows,_cols);
+    Index rows = IsLower ? _rows : (std::min)(_rows,_cols);
+    Index cols = IsLower ? (std::min)(_rows,_cols) : _cols;
+
+    typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,ColMajor>, 0, OuterStride<> > LhsMap;
+    const LhsMap lhs(_lhs,rows,cols,OuterStride<>(lhsStride));
+    typename conj_expr_if<ConjLhs,LhsMap>::type cjLhs(lhs);
+    
+    typedef Map<const Matrix<RhsScalar,Dynamic,1>, 0, InnerStride<> > RhsMap;
+    const RhsMap rhs(_rhs,cols,InnerStride<>(rhsIncr));
+    typename conj_expr_if<ConjRhs,RhsMap>::type cjRhs(rhs);
+
+    typedef Map<Matrix<ResScalar,Dynamic,1> > ResMap;
+    ResMap res(_res,rows);
+
+    for (Index pi=0; pi<size; pi+=PanelWidth)
+    {
+      Index actualPanelWidth = (std::min)(PanelWidth, size-pi);
+      for (Index k=0; k<actualPanelWidth; ++k)
+      {
+        Index i = pi + k;
+        Index s = IsLower ? ((HasUnitDiag||HasZeroDiag) ? i+1 : i ) : pi;
+        Index r = IsLower ? actualPanelWidth-k : k+1;
+        if ((!(HasUnitDiag||HasZeroDiag)) || (--r)>0)
+          res.segment(s,r) += (alpha * cjRhs.coeff(i)) * cjLhs.col(i).segment(s,r);
+        if (HasUnitDiag)
+          res.coeffRef(i) += alpha * cjRhs.coeff(i);
+      }
+      Index r = IsLower ? rows - pi - actualPanelWidth : pi;
+      if (r>0)
+      {
+        Index s = IsLower ? pi+actualPanelWidth : 0;
+        general_matrix_vector_product<Index,LhsScalar,ColMajor,ConjLhs,RhsScalar,ConjRhs,BuiltIn>::run(
+            r, actualPanelWidth,
+            &lhs.coeffRef(s,pi), lhsStride,
+            &rhs.coeffRef(pi), rhsIncr,
+            &res.coeffRef(s), resIncr, alpha);
+      }
+    }
+    if((!IsLower) && cols>size)
+    {
+      general_matrix_vector_product<Index,LhsScalar,ColMajor,ConjLhs,RhsScalar,ConjRhs>::run(
+          rows, cols-size,
+          &lhs.coeffRef(0,size), lhsStride,
+          &rhs.coeffRef(size), rhsIncr,
+          _res, resIncr, alpha);
+    }
+  }
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs,int Version>
+struct triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,RowMajor,Version>
+{
+  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+  enum {
+    IsLower = ((Mode&Lower)==Lower),
+    HasUnitDiag = (Mode & UnitDiag)==UnitDiag,
+    HasZeroDiag = (Mode & ZeroDiag)==ZeroDiag
+  };
+  static EIGEN_DONT_INLINE void run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
+                                    const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha);
+};
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs,int Version>
+EIGEN_DONT_INLINE void triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,RowMajor,Version>
+  ::run(Index _rows, Index _cols, const LhsScalar* _lhs, Index lhsStride,
+        const RhsScalar* _rhs, Index rhsIncr, ResScalar* _res, Index resIncr, const ResScalar& alpha)
+  {
+    static const Index PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH;
+    Index diagSize = (std::min)(_rows,_cols);
+    Index rows = IsLower ? _rows : diagSize;
+    Index cols = IsLower ? diagSize : _cols;
+
+    typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,RowMajor>, 0, OuterStride<> > LhsMap;
+    const LhsMap lhs(_lhs,rows,cols,OuterStride<>(lhsStride));
+    typename conj_expr_if<ConjLhs,LhsMap>::type cjLhs(lhs);
+
+    typedef Map<const Matrix<RhsScalar,Dynamic,1> > RhsMap;
+    const RhsMap rhs(_rhs,cols);
+    typename conj_expr_if<ConjRhs,RhsMap>::type cjRhs(rhs);
+
+    typedef Map<Matrix<ResScalar,Dynamic,1>, 0, InnerStride<> > ResMap;
+    ResMap res(_res,rows,InnerStride<>(resIncr));
+    
+    for (Index pi=0; pi<diagSize; pi+=PanelWidth)
+    {
+      Index actualPanelWidth = (std::min)(PanelWidth, diagSize-pi);
+      for (Index k=0; k<actualPanelWidth; ++k)
+      {
+        Index i = pi + k;
+        Index s = IsLower ? pi  : ((HasUnitDiag||HasZeroDiag) ? i+1 : i);
+        Index r = IsLower ? k+1 : actualPanelWidth-k;
+        if ((!(HasUnitDiag||HasZeroDiag)) || (--r)>0)
+          res.coeffRef(i) += alpha * (cjLhs.row(i).segment(s,r).cwiseProduct(cjRhs.segment(s,r).transpose())).sum();
+        if (HasUnitDiag)
+          res.coeffRef(i) += alpha * cjRhs.coeff(i);
+      }
+      Index r = IsLower ? pi : cols - pi - actualPanelWidth;
+      if (r>0)
+      {
+        Index s = IsLower ? 0 : pi + actualPanelWidth;
+        general_matrix_vector_product<Index,LhsScalar,RowMajor,ConjLhs,RhsScalar,ConjRhs,BuiltIn>::run(
+            actualPanelWidth, r,
+            &lhs.coeffRef(pi,s), lhsStride,
+            &rhs.coeffRef(s), rhsIncr,
+            &res.coeffRef(pi), resIncr, alpha);
+      }
+    }
+    if(IsLower && rows>diagSize)
+    {
+      general_matrix_vector_product<Index,LhsScalar,RowMajor,ConjLhs,RhsScalar,ConjRhs>::run(
+            rows-diagSize, cols,
+            &lhs.coeffRef(diagSize,0), lhsStride,
+            &rhs.coeffRef(0), rhsIncr,
+            &res.coeffRef(diagSize), resIncr, alpha);
+    }
+  }
+
+/***************************************************************************
+* Wrapper to product_triangular_vector
+***************************************************************************/
+
+template<int Mode, bool LhsIsTriangular, typename Lhs, typename Rhs>
+struct traits<TriangularProduct<Mode,LhsIsTriangular,Lhs,false,Rhs,true> >
+ : traits<ProductBase<TriangularProduct<Mode,LhsIsTriangular,Lhs,false,Rhs,true>, Lhs, Rhs> >
+{};
+
+template<int Mode, bool LhsIsTriangular, typename Lhs, typename Rhs>
+struct traits<TriangularProduct<Mode,LhsIsTriangular,Lhs,true,Rhs,false> >
+ : traits<ProductBase<TriangularProduct<Mode,LhsIsTriangular,Lhs,true,Rhs,false>, Lhs, Rhs> >
+{};
+
+
+template<int StorageOrder>
+struct trmv_selector;
+
+} // end namespace internal
+
+template<int Mode, typename Lhs, typename Rhs>
+struct TriangularProduct<Mode,true,Lhs,false,Rhs,true>
+  : public ProductBase<TriangularProduct<Mode,true,Lhs,false,Rhs,true>, Lhs, Rhs >
+{
+  EIGEN_PRODUCT_PUBLIC_INTERFACE(TriangularProduct)
+
+  TriangularProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
+
+  template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
+  {
+    eigen_assert(dst.rows()==m_lhs.rows() && dst.cols()==m_rhs.cols());
+  
+    internal::trmv_selector<(int(internal::traits<Lhs>::Flags)&RowMajorBit) ? RowMajor : ColMajor>::run(*this, dst, alpha);
+  }
+};
+
+template<int Mode, typename Lhs, typename Rhs>
+struct TriangularProduct<Mode,false,Lhs,true,Rhs,false>
+  : public ProductBase<TriangularProduct<Mode,false,Lhs,true,Rhs,false>, Lhs, Rhs >
+{
+  EIGEN_PRODUCT_PUBLIC_INTERFACE(TriangularProduct)
+
+  TriangularProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
+
+  template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
+  {
+    eigen_assert(dst.rows()==m_lhs.rows() && dst.cols()==m_rhs.cols());
+
+    typedef TriangularProduct<(Mode & (UnitDiag|ZeroDiag)) | ((Mode & Lower) ? Upper : Lower),true,Transpose<const Rhs>,false,Transpose<const Lhs>,true> TriangularProductTranspose;
+    Transpose<Dest> dstT(dst);
+    internal::trmv_selector<(int(internal::traits<Rhs>::Flags)&RowMajorBit) ? ColMajor : RowMajor>::run(
+      TriangularProductTranspose(m_rhs.transpose(),m_lhs.transpose()), dstT, alpha);
+  }
+};
+
+namespace internal {
+
+// TODO: find a way to factorize this piece of code with gemv_selector since the logic is exactly the same.
+  
+template<> struct trmv_selector<ColMajor>
+{
+  template<int Mode, typename Lhs, typename Rhs, typename Dest>
+  static void run(const TriangularProduct<Mode,true,Lhs,false,Rhs,true>& prod, Dest& dest, const typename TriangularProduct<Mode,true,Lhs,false,Rhs,true>::Scalar& alpha)
+  {
+    typedef TriangularProduct<Mode,true,Lhs,false,Rhs,true> ProductType;
+    typedef typename ProductType::Index Index;
+    typedef typename ProductType::LhsScalar   LhsScalar;
+    typedef typename ProductType::RhsScalar   RhsScalar;
+    typedef typename ProductType::Scalar      ResScalar;
+    typedef typename ProductType::RealScalar  RealScalar;
+    typedef typename ProductType::ActualLhsType ActualLhsType;
+    typedef typename ProductType::ActualRhsType ActualRhsType;
+    typedef typename ProductType::LhsBlasTraits LhsBlasTraits;
+    typedef typename ProductType::RhsBlasTraits RhsBlasTraits;
+    typedef Map<Matrix<ResScalar,Dynamic,1>, Aligned> MappedDest;
+
+    typename internal::add_const_on_value_type<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(prod.lhs());
+    typename internal::add_const_on_value_type<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(prod.rhs());
+
+    ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs())
+                                  * RhsBlasTraits::extractScalarFactor(prod.rhs());
+
+    enum {
+      // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1
+      // on, the other hand it is good for the cache to pack the vector anyways...
+      EvalToDestAtCompileTime = Dest::InnerStrideAtCompileTime==1,
+      ComplexByReal = (NumTraits<LhsScalar>::IsComplex) && (!NumTraits<RhsScalar>::IsComplex),
+      MightCannotUseDest = (Dest::InnerStrideAtCompileTime!=1) || ComplexByReal
+    };
+
+    gemv_static_vector_if<ResScalar,Dest::SizeAtCompileTime,Dest::MaxSizeAtCompileTime,MightCannotUseDest> static_dest;
+
+    bool alphaIsCompatible = (!ComplexByReal) || (numext::imag(actualAlpha)==RealScalar(0));
+    bool evalToDest = EvalToDestAtCompileTime && alphaIsCompatible;
+    
+    RhsScalar compatibleAlpha = get_factor<ResScalar,RhsScalar>::run(actualAlpha);
+
+    ei_declare_aligned_stack_constructed_variable(ResScalar,actualDestPtr,dest.size(),
+                                                  evalToDest ? dest.data() : static_dest.data());
+
+    if(!evalToDest)
+    {
+      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      Index size = dest.size();
+      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      #endif
+      if(!alphaIsCompatible)
+      {
+        MappedDest(actualDestPtr, dest.size()).setZero();
+        compatibleAlpha = RhsScalar(1);
+      }
+      else
+        MappedDest(actualDestPtr, dest.size()) = dest;
+    }
+    
+    internal::triangular_matrix_vector_product
+      <Index,Mode,
+       LhsScalar, LhsBlasTraits::NeedToConjugate,
+       RhsScalar, RhsBlasTraits::NeedToConjugate,
+       ColMajor>
+      ::run(actualLhs.rows(),actualLhs.cols(),
+            actualLhs.data(),actualLhs.outerStride(),
+            actualRhs.data(),actualRhs.innerStride(),
+            actualDestPtr,1,compatibleAlpha);
+
+    if (!evalToDest)
+    {
+      if(!alphaIsCompatible)
+        dest += actualAlpha * MappedDest(actualDestPtr, dest.size());
+      else
+        dest = MappedDest(actualDestPtr, dest.size());
+    }
+  }
+};
+
+template<> struct trmv_selector<RowMajor>
+{
+  template<int Mode, typename Lhs, typename Rhs, typename Dest>
+  static void run(const TriangularProduct<Mode,true,Lhs,false,Rhs,true>& prod, Dest& dest, const typename TriangularProduct<Mode,true,Lhs,false,Rhs,true>::Scalar& alpha)
+  {
+    typedef TriangularProduct<Mode,true,Lhs,false,Rhs,true> ProductType;
+    typedef typename ProductType::LhsScalar LhsScalar;
+    typedef typename ProductType::RhsScalar RhsScalar;
+    typedef typename ProductType::Scalar    ResScalar;
+    typedef typename ProductType::Index Index;
+    typedef typename ProductType::ActualLhsType ActualLhsType;
+    typedef typename ProductType::ActualRhsType ActualRhsType;
+    typedef typename ProductType::_ActualRhsType _ActualRhsType;
+    typedef typename ProductType::LhsBlasTraits LhsBlasTraits;
+    typedef typename ProductType::RhsBlasTraits RhsBlasTraits;
+
+    typename add_const<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(prod.lhs());
+    typename add_const<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(prod.rhs());
+
+    ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs())
+                                  * RhsBlasTraits::extractScalarFactor(prod.rhs());
+
+    enum {
+      DirectlyUseRhs = _ActualRhsType::InnerStrideAtCompileTime==1
+    };
+
+    gemv_static_vector_if<RhsScalar,_ActualRhsType::SizeAtCompileTime,_ActualRhsType::MaxSizeAtCompileTime,!DirectlyUseRhs> static_rhs;
+
+    ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhsPtr,actualRhs.size(),
+        DirectlyUseRhs ? const_cast<RhsScalar*>(actualRhs.data()) : static_rhs.data());
+
+    if(!DirectlyUseRhs)
+    {
+      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      int size = actualRhs.size();
+      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      #endif
+      Map<typename _ActualRhsType::PlainObject>(actualRhsPtr, actualRhs.size()) = actualRhs;
+    }
+    
+    internal::triangular_matrix_vector_product
+      <Index,Mode,
+       LhsScalar, LhsBlasTraits::NeedToConjugate,
+       RhsScalar, RhsBlasTraits::NeedToConjugate,
+       RowMajor>
+      ::run(actualLhs.rows(),actualLhs.cols(),
+            actualLhs.data(),actualLhs.outerStride(),
+            actualRhsPtr,1,
+            dest.data(),dest.innerStride(),
+            actualAlpha);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULARMATRIXVECTOR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h	(revision 2476)
@@ -0,0 +1,278 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_MATRIX_MATRIX_TRIANGULAR_H
+#define EIGEN_GENERAL_MATRIX_MATRIX_TRIANGULAR_H
+
+namespace Eigen { 
+
+template<typename Scalar, typename Index, int StorageOrder, int UpLo, bool ConjLhs, bool ConjRhs>
+struct selfadjoint_rank1_update;
+
+namespace internal {
+
+/**********************************************************************
+* This file implements a general A * B product while
+* evaluating only one triangular part of the product.
+* This is more general version of self adjoint product (C += A A^T)
+* as the level 3 SYRK Blas routine.
+**********************************************************************/
+
+// forward declarations (defined at the end of this file)
+template<typename LhsScalar, typename RhsScalar, typename Index, int mr, int nr, bool ConjLhs, bool ConjRhs, int UpLo>
+struct tribb_kernel;
+  
+/* Optimized matrix-matrix product evaluating only one triangular half */
+template <typename Index,
+          typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+          typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs,
+                              int ResStorageOrder, int  UpLo, int Version = Specialized>
+struct general_matrix_matrix_triangular_product;
+
+// as usual if the result is row major => we transpose the product
+template <typename Index, typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+                          typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs, int  UpLo, int Version>
+struct general_matrix_matrix_triangular_product<Index,LhsScalar,LhsStorageOrder,ConjugateLhs,RhsScalar,RhsStorageOrder,ConjugateRhs,RowMajor,UpLo,Version>
+{
+  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+  static EIGEN_STRONG_INLINE void run(Index size, Index depth,const LhsScalar* lhs, Index lhsStride,
+                                      const RhsScalar* rhs, Index rhsStride, ResScalar* res, Index resStride, const ResScalar& alpha)
+  {
+    general_matrix_matrix_triangular_product<Index,
+        RhsScalar, RhsStorageOrder==RowMajor ? ColMajor : RowMajor, ConjugateRhs,
+        LhsScalar, LhsStorageOrder==RowMajor ? ColMajor : RowMajor, ConjugateLhs,
+        ColMajor, UpLo==Lower?Upper:Lower>
+      ::run(size,depth,rhs,rhsStride,lhs,lhsStride,res,resStride,alpha);
+  }
+};
+
+template <typename Index, typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+                          typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs, int  UpLo, int Version>
+struct general_matrix_matrix_triangular_product<Index,LhsScalar,LhsStorageOrder,ConjugateLhs,RhsScalar,RhsStorageOrder,ConjugateRhs,ColMajor,UpLo,Version>
+{
+  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+  static EIGEN_STRONG_INLINE void run(Index size, Index depth,const LhsScalar* _lhs, Index lhsStride,
+                                      const RhsScalar* _rhs, Index rhsStride, ResScalar* res, Index resStride, const ResScalar& alpha)
+  {
+    const_blas_data_mapper<LhsScalar, Index, LhsStorageOrder> lhs(_lhs,lhsStride);
+    const_blas_data_mapper<RhsScalar, Index, RhsStorageOrder> rhs(_rhs,rhsStride);
+
+    typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+
+    Index kc = depth; // cache block size along the K direction
+    Index mc = size;  // cache block size along the M direction
+    Index nc = size;  // cache block size along the N direction
+    computeProductBlockingSizes<LhsScalar,RhsScalar>(kc, mc, nc);
+    // !!! mc must be a multiple of nr:
+    if(mc > Traits::nr)
+      mc = (mc/Traits::nr)*Traits::nr;
+
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+    std::size_t sizeB = sizeW + kc*size;
+    ei_declare_aligned_stack_constructed_variable(LhsScalar, blockA, kc*mc, 0);
+    ei_declare_aligned_stack_constructed_variable(RhsScalar, allocatedBlockB, sizeB, 0);
+    RhsScalar* blockB = allocatedBlockB + sizeW;
+    
+    gemm_pack_lhs<LhsScalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+    gemm_pack_rhs<RhsScalar, Index, Traits::nr, RhsStorageOrder> pack_rhs;
+    gebp_kernel <LhsScalar, RhsScalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp;
+    tribb_kernel<LhsScalar, RhsScalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs, UpLo> sybb;
+
+    for(Index k2=0; k2<depth; k2+=kc)
+    {
+      const Index actual_kc = (std::min)(k2+kc,depth)-k2;
+
+      // note that the actual rhs is the transpose/adjoint of mat
+      pack_rhs(blockB, &rhs(k2,0), rhsStride, actual_kc, size);
+
+      for(Index i2=0; i2<size; i2+=mc)
+      {
+        const Index actual_mc = (std::min)(i2+mc,size)-i2;
+
+        pack_lhs(blockA, &lhs(i2, k2), lhsStride, actual_kc, actual_mc);
+
+        // the selected actual_mc * size panel of res is split into three different part:
+        //  1 - before the diagonal => processed with gebp or skipped
+        //  2 - the actual_mc x actual_mc symmetric block => processed with a special kernel
+        //  3 - after the diagonal => processed with gebp or skipped
+        if (UpLo==Lower)
+          gebp(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, (std::min)(size,i2), alpha,
+               -1, -1, 0, 0, allocatedBlockB);
+
+        sybb(res+resStride*i2 + i2, resStride, blockA, blockB + actual_kc*i2, actual_mc, actual_kc, alpha, allocatedBlockB);
+
+        if (UpLo==Upper)
+        {
+          Index j2 = i2+actual_mc;
+          gebp(res+resStride*j2+i2, resStride, blockA, blockB+actual_kc*j2, actual_mc, actual_kc, (std::max)(Index(0), size-j2), alpha,
+               -1, -1, 0, 0, allocatedBlockB);
+        }
+      }
+    }
+  }
+};
+
+// Optimized packed Block * packed Block product kernel evaluating only one given triangular part
+// This kernel is built on top of the gebp kernel:
+// - the current destination block is processed per panel of actual_mc x BlockSize
+//   where BlockSize is set to the minimal value allowing gebp to be as fast as possible
+// - then, as usual, each panel is split into three parts along the diagonal,
+//   the sub blocks above and below the diagonal are processed as usual,
+//   while the triangular block overlapping the diagonal is evaluated into a
+//   small temporary buffer which is then accumulated into the result using a
+//   triangular traversal.
+template<typename LhsScalar, typename RhsScalar, typename Index, int mr, int nr, bool ConjLhs, bool ConjRhs, int UpLo>
+struct tribb_kernel
+{
+  typedef gebp_traits<LhsScalar,RhsScalar,ConjLhs,ConjRhs> Traits;
+  typedef typename Traits::ResScalar ResScalar;
+  
+  enum {
+    BlockSize  = EIGEN_PLAIN_ENUM_MAX(mr,nr)
+  };
+  void operator()(ResScalar* res, Index resStride, const LhsScalar* blockA, const RhsScalar* blockB, Index size, Index depth, const ResScalar& alpha, RhsScalar* workspace)
+  {
+    gebp_kernel<LhsScalar, RhsScalar, Index, mr, nr, ConjLhs, ConjRhs> gebp_kernel;
+    Matrix<ResScalar,BlockSize,BlockSize,ColMajor> buffer;
+
+    // let's process the block per panel of actual_mc x BlockSize,
+    // again, each is split into three parts, etc.
+    for (Index j=0; j<size; j+=BlockSize)
+    {
+      Index actualBlockSize = std::min<Index>(BlockSize,size - j);
+      const RhsScalar* actual_b = blockB+j*depth;
+
+      if(UpLo==Upper)
+        gebp_kernel(res+j*resStride, resStride, blockA, actual_b, j, depth, actualBlockSize, alpha,
+                    -1, -1, 0, 0, workspace);
+
+      // selfadjoint micro block
+      {
+        Index i = j;
+        buffer.setZero();
+        // 1 - apply the kernel on the temporary buffer
+        gebp_kernel(buffer.data(), BlockSize, blockA+depth*i, actual_b, actualBlockSize, depth, actualBlockSize, alpha,
+                    -1, -1, 0, 0, workspace);
+        // 2 - triangular accumulation
+        for(Index j1=0; j1<actualBlockSize; ++j1)
+        {
+          ResScalar* r = res + (j+j1)*resStride + i;
+          for(Index i1=UpLo==Lower ? j1 : 0;
+              UpLo==Lower ? i1<actualBlockSize : i1<=j1; ++i1)
+            r[i1] += buffer(i1,j1);
+        }
+      }
+
+      if(UpLo==Lower)
+      {
+        Index i = j+actualBlockSize;
+        gebp_kernel(res+j*resStride+i, resStride, blockA+depth*i, actual_b, size-i, depth, actualBlockSize, alpha,
+                    -1, -1, 0, 0, workspace);
+      }
+    }
+  }
+};
+
+} // end namespace internal
+
+// high level API
+
+template<typename MatrixType, typename ProductType, int UpLo, bool IsOuterProduct>
+struct general_product_to_triangular_selector;
+
+
+template<typename MatrixType, typename ProductType, int UpLo>
+struct general_product_to_triangular_selector<MatrixType,ProductType,UpLo,true>
+{
+  static void run(MatrixType& mat, const ProductType& prod, const typename MatrixType::Scalar& alpha)
+  {
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+    
+    typedef typename internal::remove_all<typename ProductType::LhsNested>::type Lhs;
+    typedef internal::blas_traits<Lhs> LhsBlasTraits;
+    typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhs;
+    typedef typename internal::remove_all<ActualLhs>::type _ActualLhs;
+    typename internal::add_const_on_value_type<ActualLhs>::type actualLhs = LhsBlasTraits::extract(prod.lhs());
+    
+    typedef typename internal::remove_all<typename ProductType::RhsNested>::type Rhs;
+    typedef internal::blas_traits<Rhs> RhsBlasTraits;
+    typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhs;
+    typedef typename internal::remove_all<ActualRhs>::type _ActualRhs;
+    typename internal::add_const_on_value_type<ActualRhs>::type actualRhs = RhsBlasTraits::extract(prod.rhs());
+
+    Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs().derived()) * RhsBlasTraits::extractScalarFactor(prod.rhs().derived());
+
+    enum {
+      StorageOrder = (internal::traits<MatrixType>::Flags&RowMajorBit) ? RowMajor : ColMajor,
+      UseLhsDirectly = _ActualLhs::InnerStrideAtCompileTime==1,
+      UseRhsDirectly = _ActualRhs::InnerStrideAtCompileTime==1
+    };
+    
+    internal::gemv_static_vector_if<Scalar,Lhs::SizeAtCompileTime,Lhs::MaxSizeAtCompileTime,!UseLhsDirectly> static_lhs;
+    ei_declare_aligned_stack_constructed_variable(Scalar, actualLhsPtr, actualLhs.size(),
+      (UseLhsDirectly ? const_cast<Scalar*>(actualLhs.data()) : static_lhs.data()));
+    if(!UseLhsDirectly) Map<typename _ActualLhs::PlainObject>(actualLhsPtr, actualLhs.size()) = actualLhs;
+    
+    internal::gemv_static_vector_if<Scalar,Rhs::SizeAtCompileTime,Rhs::MaxSizeAtCompileTime,!UseRhsDirectly> static_rhs;
+    ei_declare_aligned_stack_constructed_variable(Scalar, actualRhsPtr, actualRhs.size(),
+      (UseRhsDirectly ? const_cast<Scalar*>(actualRhs.data()) : static_rhs.data()));
+    if(!UseRhsDirectly) Map<typename _ActualRhs::PlainObject>(actualRhsPtr, actualRhs.size()) = actualRhs;
+    
+    
+    selfadjoint_rank1_update<Scalar,Index,StorageOrder,UpLo,
+                              LhsBlasTraits::NeedToConjugate && NumTraits<Scalar>::IsComplex,
+                              RhsBlasTraits::NeedToConjugate && NumTraits<Scalar>::IsComplex>
+          ::run(actualLhs.size(), mat.data(), mat.outerStride(), actualLhsPtr, actualRhsPtr, actualAlpha);
+  }
+};
+
+template<typename MatrixType, typename ProductType, int UpLo>
+struct general_product_to_triangular_selector<MatrixType,ProductType,UpLo,false>
+{
+  static void run(MatrixType& mat, const ProductType& prod, const typename MatrixType::Scalar& alpha)
+  {
+    typedef typename MatrixType::Index Index;
+    
+    typedef typename internal::remove_all<typename ProductType::LhsNested>::type Lhs;
+    typedef internal::blas_traits<Lhs> LhsBlasTraits;
+    typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhs;
+    typedef typename internal::remove_all<ActualLhs>::type _ActualLhs;
+    typename internal::add_const_on_value_type<ActualLhs>::type actualLhs = LhsBlasTraits::extract(prod.lhs());
+    
+    typedef typename internal::remove_all<typename ProductType::RhsNested>::type Rhs;
+    typedef internal::blas_traits<Rhs> RhsBlasTraits;
+    typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhs;
+    typedef typename internal::remove_all<ActualRhs>::type _ActualRhs;
+    typename internal::add_const_on_value_type<ActualRhs>::type actualRhs = RhsBlasTraits::extract(prod.rhs());
+
+    typename ProductType::Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs().derived()) * RhsBlasTraits::extractScalarFactor(prod.rhs().derived());
+
+    internal::general_matrix_matrix_triangular_product<Index,
+      typename Lhs::Scalar, _ActualLhs::Flags&RowMajorBit ? RowMajor : ColMajor, LhsBlasTraits::NeedToConjugate,
+      typename Rhs::Scalar, _ActualRhs::Flags&RowMajorBit ? RowMajor : ColMajor, RhsBlasTraits::NeedToConjugate,
+      MatrixType::Flags&RowMajorBit ? RowMajor : ColMajor, UpLo>
+      ::run(mat.cols(), actualLhs.cols(),
+            &actualLhs.coeffRef(0,0), actualLhs.outerStride(), &actualRhs.coeffRef(0,0), actualRhs.outerStride(),
+            mat.data(), mat.outerStride(), actualAlpha);
+  }
+};
+
+template<typename MatrixType, unsigned int UpLo>
+template<typename ProductDerived, typename _Lhs, typename _Rhs>
+TriangularView<MatrixType,UpLo>& TriangularView<MatrixType,UpLo>::assignProduct(const ProductBase<ProductDerived, _Lhs,_Rhs>& prod, const Scalar& alpha)
+{
+  general_product_to_triangular_selector<MatrixType, ProductDerived, UpLo, (_Lhs::ColsAtCompileTime==1) || (_Rhs::RowsAtCompileTime==1)>::run(m_matrix.const_cast_derived(), prod.derived(), alpha);
+  
+  return *this;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_MATRIX_TRIANGULAR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/CoeffBasedProduct.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/CoeffBasedProduct.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/CoeffBasedProduct.h	(revision 2476)
@@ -0,0 +1,476 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COEFFBASED_PRODUCT_H
+#define EIGEN_COEFFBASED_PRODUCT_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/*********************************************************************************
+*  Coefficient based product implementation.
+*  It is designed for the following use cases:
+*  - small fixed sizes
+*  - lazy products
+*********************************************************************************/
+
+/* Since the all the dimensions of the product are small, here we can rely
+ * on the generic Assign mechanism to evaluate the product per coeff (or packet).
+ *
+ * Note that here the inner-loops should always be unrolled.
+ */
+
+template<int Traversal, int UnrollingIndex, typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl;
+
+template<int StorageOrder, int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl;
+
+template<typename LhsNested, typename RhsNested, int NestingFlags>
+struct traits<CoeffBasedProduct<LhsNested,RhsNested,NestingFlags> >
+{
+  typedef MatrixXpr XprKind;
+  typedef typename remove_all<LhsNested>::type _LhsNested;
+  typedef typename remove_all<RhsNested>::type _RhsNested;
+  typedef typename scalar_product_traits<typename _LhsNested::Scalar, typename _RhsNested::Scalar>::ReturnType Scalar;
+  typedef typename promote_storage_type<typename traits<_LhsNested>::StorageKind,
+                                           typename traits<_RhsNested>::StorageKind>::ret StorageKind;
+  typedef typename promote_index_type<typename traits<_LhsNested>::Index,
+                                         typename traits<_RhsNested>::Index>::type Index;
+
+  enum {
+      LhsCoeffReadCost = _LhsNested::CoeffReadCost,
+      RhsCoeffReadCost = _RhsNested::CoeffReadCost,
+      LhsFlags = _LhsNested::Flags,
+      RhsFlags = _RhsNested::Flags,
+
+      RowsAtCompileTime = _LhsNested::RowsAtCompileTime,
+      ColsAtCompileTime = _RhsNested::ColsAtCompileTime,
+      InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(_LhsNested::ColsAtCompileTime, _RhsNested::RowsAtCompileTime),
+
+      MaxRowsAtCompileTime = _LhsNested::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = _RhsNested::MaxColsAtCompileTime,
+
+      LhsRowMajor = LhsFlags & RowMajorBit,
+      RhsRowMajor = RhsFlags & RowMajorBit,
+
+      SameType = is_same<typename _LhsNested::Scalar,typename _RhsNested::Scalar>::value,
+
+      CanVectorizeRhs = RhsRowMajor && (RhsFlags & PacketAccessBit)
+                      && (ColsAtCompileTime == Dynamic
+                          || ( (ColsAtCompileTime % packet_traits<Scalar>::size) == 0
+                              && (RhsFlags&AlignedBit)
+                             )
+                         ),
+
+      CanVectorizeLhs = (!LhsRowMajor) && (LhsFlags & PacketAccessBit)
+                      && (RowsAtCompileTime == Dynamic
+                          || ( (RowsAtCompileTime % packet_traits<Scalar>::size) == 0
+                              && (LhsFlags&AlignedBit)
+                             )
+                         ),
+
+      EvalToRowMajor = (MaxRowsAtCompileTime==1&&MaxColsAtCompileTime!=1) ? 1
+                     : (MaxColsAtCompileTime==1&&MaxRowsAtCompileTime!=1) ? 0
+                     : (RhsRowMajor && !CanVectorizeLhs),
+
+      Flags = ((unsigned int)(LhsFlags | RhsFlags) & HereditaryBits & ~RowMajorBit)
+            | (EvalToRowMajor ? RowMajorBit : 0)
+            | NestingFlags
+            | (LhsFlags & RhsFlags & AlignedBit)
+            // TODO enable vectorization for mixed types
+            | (SameType && (CanVectorizeLhs || CanVectorizeRhs) ? PacketAccessBit : 0),
+
+      CoeffReadCost = InnerSize == Dynamic ? Dynamic
+                    : InnerSize == 0 ? 0
+                    : InnerSize * (NumTraits<Scalar>::MulCost + LhsCoeffReadCost + RhsCoeffReadCost)
+                      + (InnerSize - 1) * NumTraits<Scalar>::AddCost,
+
+      /* CanVectorizeInner deserves special explanation. It does not affect the product flags. It is not used outside
+      * of Product. If the Product itself is not a packet-access expression, there is still a chance that the inner
+      * loop of the product might be vectorized. This is the meaning of CanVectorizeInner. Since it doesn't affect
+      * the Flags, it is safe to make this value depend on ActualPacketAccessBit, that doesn't affect the ABI.
+      */
+      CanVectorizeInner =    SameType
+                          && LhsRowMajor
+                          && (!RhsRowMajor)
+                          && (LhsFlags & RhsFlags & ActualPacketAccessBit)
+                          && (LhsFlags & RhsFlags & AlignedBit)
+                          && (InnerSize % packet_traits<Scalar>::size == 0)
+    };
+};
+
+} // end namespace internal
+
+template<typename LhsNested, typename RhsNested, int NestingFlags>
+class CoeffBasedProduct
+  : internal::no_assignment_operator,
+    public MatrixBase<CoeffBasedProduct<LhsNested, RhsNested, NestingFlags> >
+{
+  public:
+
+    typedef MatrixBase<CoeffBasedProduct> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(CoeffBasedProduct)
+    typedef typename Base::PlainObject PlainObject;
+
+  private:
+
+    typedef typename internal::traits<CoeffBasedProduct>::_LhsNested _LhsNested;
+    typedef typename internal::traits<CoeffBasedProduct>::_RhsNested _RhsNested;
+
+    enum {
+      PacketSize = internal::packet_traits<Scalar>::size,
+      InnerSize  = internal::traits<CoeffBasedProduct>::InnerSize,
+      Unroll = CoeffReadCost != Dynamic && CoeffReadCost <= EIGEN_UNROLLING_LIMIT,
+      CanVectorizeInner = internal::traits<CoeffBasedProduct>::CanVectorizeInner
+    };
+
+    typedef internal::product_coeff_impl<CanVectorizeInner ? InnerVectorizedTraversal : DefaultTraversal,
+                                   Unroll ? InnerSize : Dynamic,
+                                   _LhsNested, _RhsNested, Scalar> ScalarCoeffImpl;
+
+    typedef CoeffBasedProduct<LhsNested,RhsNested,NestByRefBit> LazyCoeffBasedProductType;
+
+  public:
+
+    inline CoeffBasedProduct(const CoeffBasedProduct& other)
+      : Base(), m_lhs(other.m_lhs), m_rhs(other.m_rhs)
+    {}
+
+    template<typename Lhs, typename Rhs>
+    inline CoeffBasedProduct(const Lhs& lhs, const Rhs& rhs)
+      : m_lhs(lhs), m_rhs(rhs)
+    {
+      // we don't allow taking products of matrices of different real types, as that wouldn't be vectorizable.
+      // We still allow to mix T and complex<T>.
+      EIGEN_STATIC_ASSERT((internal::scalar_product_traits<typename Lhs::RealScalar, typename Rhs::RealScalar>::Defined),
+        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+      eigen_assert(lhs.cols() == rhs.rows()
+        && "invalid matrix product"
+        && "if you wanted a coeff-wise or a dot product use the respective explicit functions");
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_lhs.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_rhs.cols(); }
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index row, Index col) const
+    {
+      Scalar res;
+      ScalarCoeffImpl::run(row, col, m_lhs, m_rhs, res);
+      return res;
+    }
+
+    /* Allow index-based non-packet access. It is impossible though to allow index-based packed access,
+     * which is why we don't set the LinearAccessBit.
+     */
+    EIGEN_STRONG_INLINE const Scalar coeff(Index index) const
+    {
+      Scalar res;
+      const Index row = RowsAtCompileTime == 1 ? 0 : index;
+      const Index col = RowsAtCompileTime == 1 ? index : 0;
+      ScalarCoeffImpl::run(row, col, m_lhs, m_rhs, res);
+      return res;
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE const PacketScalar packet(Index row, Index col) const
+    {
+      PacketScalar res;
+      internal::product_packet_impl<Flags&RowMajorBit ? RowMajor : ColMajor,
+                              Unroll ? InnerSize : Dynamic,
+                              _LhsNested, _RhsNested, PacketScalar, LoadMode>
+        ::run(row, col, m_lhs, m_rhs, res);
+      return res;
+    }
+
+    // Implicit conversion to the nested type (trigger the evaluation of the product)
+    EIGEN_STRONG_INLINE operator const PlainObject& () const
+    {
+      m_result.lazyAssign(*this);
+      return m_result;
+    }
+
+    const _LhsNested& lhs() const { return m_lhs; }
+    const _RhsNested& rhs() const { return m_rhs; }
+
+    const Diagonal<const LazyCoeffBasedProductType,0> diagonal() const
+    { return reinterpret_cast<const LazyCoeffBasedProductType&>(*this); }
+
+    template<int DiagonalIndex>
+    const Diagonal<const LazyCoeffBasedProductType,DiagonalIndex> diagonal() const
+    { return reinterpret_cast<const LazyCoeffBasedProductType&>(*this); }
+
+    const Diagonal<const LazyCoeffBasedProductType,Dynamic> diagonal(Index index) const
+    { return reinterpret_cast<const LazyCoeffBasedProductType&>(*this).diagonal(index); }
+
+  protected:
+    typename internal::add_const_on_value_type<LhsNested>::type m_lhs;
+    typename internal::add_const_on_value_type<RhsNested>::type m_rhs;
+
+    mutable PlainObject m_result;
+};
+
+namespace internal {
+
+// here we need to overload the nested rule for products
+// such that the nested type is a const reference to a plain matrix
+template<typename Lhs, typename Rhs, int N, typename PlainObject>
+struct nested<CoeffBasedProduct<Lhs,Rhs,EvalBeforeNestingBit|EvalBeforeAssigningBit>, N, PlainObject>
+{
+  typedef PlainObject const& type;
+};
+
+/***************************************************************************
+* Normal product .coeff() implementation (with meta-unrolling)
+***************************************************************************/
+
+/**************************************
+*** Scalar path  - no vectorization ***
+**************************************/
+
+template<int UnrollingIndex, typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<DefaultTraversal, UnrollingIndex, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, RetScalar &res)
+  {
+    product_coeff_impl<DefaultTraversal, UnrollingIndex-1, Lhs, Rhs, RetScalar>::run(row, col, lhs, rhs, res);
+    res += lhs.coeff(row, UnrollingIndex-1) * rhs.coeff(UnrollingIndex-1, col);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<DefaultTraversal, 1, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, RetScalar &res)
+  {
+    res = lhs.coeff(row, 0) * rhs.coeff(0, col);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<DefaultTraversal, 0, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& /*lhs*/, const Rhs& /*rhs*/, RetScalar &res)
+  {
+    res = RetScalar(0);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<DefaultTraversal, Dynamic, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, RetScalar& res)
+  {
+    res = (lhs.row(row).transpose().cwiseProduct( rhs.col(col) )).sum();
+  }
+};
+
+/*******************************************
+*** Scalar path with inner vectorization ***
+*******************************************/
+
+template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet>
+struct product_coeff_vectorized_unroller
+{
+  typedef typename Lhs::Index Index;
+  enum { PacketSize = packet_traits<typename Lhs::Scalar>::size };
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::PacketScalar &pres)
+  {
+    product_coeff_vectorized_unroller<UnrollingIndex-PacketSize, Lhs, Rhs, Packet>::run(row, col, lhs, rhs, pres);
+    pres = padd(pres, pmul( lhs.template packet<Aligned>(row, UnrollingIndex) , rhs.template packet<Aligned>(UnrollingIndex, col) ));
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet>
+struct product_coeff_vectorized_unroller<0, Lhs, Rhs, Packet>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::PacketScalar &pres)
+  {
+    pres = pmul(lhs.template packet<Aligned>(row, 0) , rhs.template packet<Aligned>(0, col));
+  }
+};
+
+template<typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<InnerVectorizedTraversal, 0, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& /*lhs*/, const Rhs& /*rhs*/, RetScalar &res)
+  {
+    res = 0;
+  }
+};
+
+template<int UnrollingIndex, typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<InnerVectorizedTraversal, UnrollingIndex, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::PacketScalar Packet;
+  typedef typename Lhs::Index Index;
+  enum { PacketSize = packet_traits<typename Lhs::Scalar>::size };
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, RetScalar &res)
+  {
+    Packet pres;
+    product_coeff_vectorized_unroller<UnrollingIndex-PacketSize, Lhs, Rhs, Packet>::run(row, col, lhs, rhs, pres);
+    res = predux(pres);
+  }
+};
+
+template<typename Lhs, typename Rhs, int LhsRows = Lhs::RowsAtCompileTime, int RhsCols = Rhs::ColsAtCompileTime>
+struct product_coeff_vectorized_dyn_selector
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
+  {
+    res = lhs.row(row).transpose().cwiseProduct(rhs.col(col)).sum();
+  }
+};
+
+// NOTE the 3 following specializations are because taking .col(0) on a vector is a bit slower
+// NOTE maybe they are now useless since we have a specialization for Block<Matrix>
+template<typename Lhs, typename Rhs, int RhsCols>
+struct product_coeff_vectorized_dyn_selector<Lhs,Rhs,1,RhsCols>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
+  {
+    res = lhs.transpose().cwiseProduct(rhs.col(col)).sum();
+  }
+};
+
+template<typename Lhs, typename Rhs, int LhsRows>
+struct product_coeff_vectorized_dyn_selector<Lhs,Rhs,LhsRows,1>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index /*col*/, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
+  {
+    res = lhs.row(row).transpose().cwiseProduct(rhs).sum();
+  }
+};
+
+template<typename Lhs, typename Rhs>
+struct product_coeff_vectorized_dyn_selector<Lhs,Rhs,1,1>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
+  {
+    res = lhs.transpose().cwiseProduct(rhs).sum();
+  }
+};
+
+template<typename Lhs, typename Rhs, typename RetScalar>
+struct product_coeff_impl<InnerVectorizedTraversal, Dynamic, Lhs, Rhs, RetScalar>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar &res)
+  {
+    product_coeff_vectorized_dyn_selector<Lhs,Rhs>::run(row, col, lhs, rhs, res);
+  }
+};
+
+/*******************
+*** Packet path  ***
+*******************/
+
+template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<RowMajor, UnrollingIndex, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet &res)
+  {
+    product_packet_impl<RowMajor, UnrollingIndex-1, Lhs, Rhs, Packet, LoadMode>::run(row, col, lhs, rhs, res);
+    res =  pmadd(pset1<Packet>(lhs.coeff(row, UnrollingIndex-1)), rhs.template packet<LoadMode>(UnrollingIndex-1, col), res);
+  }
+};
+
+template<int UnrollingIndex, typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<ColMajor, UnrollingIndex, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet &res)
+  {
+    product_packet_impl<ColMajor, UnrollingIndex-1, Lhs, Rhs, Packet, LoadMode>::run(row, col, lhs, rhs, res);
+    res =  pmadd(lhs.template packet<LoadMode>(row, UnrollingIndex-1), pset1<Packet>(rhs.coeff(UnrollingIndex-1, col)), res);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<RowMajor, 1, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet &res)
+  {
+    res = pmul(pset1<Packet>(lhs.coeff(row, 0)),rhs.template packet<LoadMode>(0, col));
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<ColMajor, 1, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet &res)
+  {
+    res = pmul(lhs.template packet<LoadMode>(row, 0), pset1<Packet>(rhs.coeff(0, col)));
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<RowMajor, 0, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& /*lhs*/, const Rhs& /*rhs*/, Packet &res)
+  {
+    res = pset1<Packet>(0);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<ColMajor, 0, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index /*row*/, Index /*col*/, const Lhs& /*lhs*/, const Rhs& /*rhs*/, Packet &res)
+  {
+    res = pset1<Packet>(0);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<RowMajor, Dynamic, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet& res)
+  {
+    res = pset1<Packet>(0);
+    for(Index i = 0; i < lhs.cols(); ++i)
+      res =  pmadd(pset1<Packet>(lhs.coeff(row, i)), rhs.template packet<LoadMode>(i, col), res);
+  }
+};
+
+template<typename Lhs, typename Rhs, typename Packet, int LoadMode>
+struct product_packet_impl<ColMajor, Dynamic, Lhs, Rhs, Packet, LoadMode>
+{
+  typedef typename Lhs::Index Index;
+  static EIGEN_STRONG_INLINE void run(Index row, Index col, const Lhs& lhs, const Rhs& rhs, Packet& res)
+  {
+    res = pset1<Packet>(0);
+    for(Index i = 0; i < lhs.cols(); ++i)
+      res =  pmadd(lhs.template packet<LoadMode>(row, i), pset1<Packet>(rhs.coeff(i, col)), res);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COEFFBASED_PRODUCT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixMatrix.h	(revision 2476)
@@ -0,0 +1,427 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULAR_MATRIX_MATRIX_H
+#define EIGEN_TRIANGULAR_MATRIX_MATRIX_H
+
+namespace Eigen { 
+
+namespace internal {
+
+// template<typename Scalar, int mr, int StorageOrder, bool Conjugate, int Mode>
+// struct gemm_pack_lhs_triangular
+// {
+//   Matrix<Scalar,mr,mr,
+//   void operator()(Scalar* blockA, const EIGEN_RESTRICT Scalar* _lhs, int lhsStride, int depth, int rows)
+//   {
+//     conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
+//     const_blas_data_mapper<Scalar, StorageOrder> lhs(_lhs,lhsStride);
+//     int count = 0;
+//     const int peeled_mc = (rows/mr)*mr;
+//     for(int i=0; i<peeled_mc; i+=mr)
+//     {
+//       for(int k=0; k<depth; k++)
+//         for(int w=0; w<mr; w++)
+//           blockA[count++] = cj(lhs(i+w, k));
+//     }
+//     for(int i=peeled_mc; i<rows; i++)
+//     {
+//       for(int k=0; k<depth; k++)
+//         blockA[count++] = cj(lhs(i, k));
+//     }
+//   }
+// };
+
+/* Optimized triangular matrix * matrix (_TRMM++) product built on top of
+ * the general matrix matrix product.
+ */
+template <typename Scalar, typename Index,
+          int Mode, bool LhsIsTriangular,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs,
+          int ResStorageOrder, int Version = Specialized>
+struct product_triangular_matrix_matrix;
+
+template <typename Scalar, typename Index,
+          int Mode, bool LhsIsTriangular,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs, int Version>
+struct product_triangular_matrix_matrix<Scalar,Index,Mode,LhsIsTriangular,
+                                           LhsStorageOrder,ConjugateLhs,
+                                           RhsStorageOrder,ConjugateRhs,RowMajor,Version>
+{
+  static EIGEN_STRONG_INLINE void run(
+    Index rows, Index cols, Index depth,
+    const Scalar* lhs, Index lhsStride,
+    const Scalar* rhs, Index rhsStride,
+    Scalar* res,       Index resStride,
+    const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking)
+  {
+    product_triangular_matrix_matrix<Scalar, Index,
+      (Mode&(UnitDiag|ZeroDiag)) | ((Mode&Upper) ? Lower : Upper),
+      (!LhsIsTriangular),
+      RhsStorageOrder==RowMajor ? ColMajor : RowMajor,
+      ConjugateRhs,
+      LhsStorageOrder==RowMajor ? ColMajor : RowMajor,
+      ConjugateLhs,
+      ColMajor>
+      ::run(cols, rows, depth, rhs, rhsStride, lhs, lhsStride, res, resStride, alpha, blocking);
+  }
+};
+
+// implements col-major += alpha * op(triangular) * op(general)
+template <typename Scalar, typename Index, int Mode,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs, int Version>
+struct product_triangular_matrix_matrix<Scalar,Index,Mode,true,
+                                           LhsStorageOrder,ConjugateLhs,
+                                           RhsStorageOrder,ConjugateRhs,ColMajor,Version>
+{
+  
+  typedef gebp_traits<Scalar,Scalar> Traits;
+  enum {
+    SmallPanelWidth   = 2 * EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
+    IsLower = (Mode&Lower) == Lower,
+    SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1
+  };
+
+  static EIGEN_DONT_INLINE void run(
+    Index _rows, Index _cols, Index _depth,
+    const Scalar* _lhs, Index lhsStride,
+    const Scalar* _rhs, Index rhsStride,
+    Scalar* res,        Index resStride,
+    const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking);
+};
+
+template <typename Scalar, typename Index, int Mode,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs, int Version>
+EIGEN_DONT_INLINE void product_triangular_matrix_matrix<Scalar,Index,Mode,true,
+                                                        LhsStorageOrder,ConjugateLhs,
+                                                        RhsStorageOrder,ConjugateRhs,ColMajor,Version>::run(
+    Index _rows, Index _cols, Index _depth,
+    const Scalar* _lhs, Index lhsStride,
+    const Scalar* _rhs, Index rhsStride,
+    Scalar* res,        Index resStride,
+    const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking)
+  {
+    // strip zeros
+    Index diagSize  = (std::min)(_rows,_depth);
+    Index rows      = IsLower ? _rows : diagSize;
+    Index depth     = IsLower ? diagSize : _depth;
+    Index cols      = _cols;
+    
+    const_blas_data_mapper<Scalar, Index, LhsStorageOrder> lhs(_lhs,lhsStride);
+    const_blas_data_mapper<Scalar, Index, RhsStorageOrder> rhs(_rhs,rhsStride);
+
+    Index kc = blocking.kc();                   // cache block size along the K direction
+    Index mc = (std::min)(rows,blocking.mc());  // cache block size along the M direction
+
+    std::size_t sizeA = kc*mc;
+    std::size_t sizeB = kc*cols;
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockW, sizeW, blocking.blockW());
+
+    Matrix<Scalar,SmallPanelWidth,SmallPanelWidth,LhsStorageOrder> triangularBuffer;
+    triangularBuffer.setZero();
+    if((Mode&ZeroDiag)==ZeroDiag)
+      triangularBuffer.diagonal().setZero();
+    else
+      triangularBuffer.diagonal().setOnes();
+
+    gebp_kernel<Scalar, Scalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
+    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+    gemm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder> pack_rhs;
+
+    for(Index k2=IsLower ? depth : 0;
+        IsLower ? k2>0 : k2<depth;
+        IsLower ? k2-=kc : k2+=kc)
+    {
+      Index actual_kc = (std::min)(IsLower ? k2 : depth-k2, kc);
+      Index actual_k2 = IsLower ? k2-actual_kc : k2;
+
+      // align blocks with the end of the triangular part for trapezoidal lhs
+      if((!IsLower)&&(k2<rows)&&(k2+actual_kc>rows))
+      {
+        actual_kc = rows-k2;
+        k2 = k2+actual_kc-kc;
+      }
+
+      pack_rhs(blockB, &rhs(actual_k2,0), rhsStride, actual_kc, cols);
+
+      // the selected lhs's panel has to be split in three different parts:
+      //  1 - the part which is zero => skip it
+      //  2 - the diagonal block => special kernel
+      //  3 - the dense panel below (lower case) or above (upper case) the diagonal block => GEPP
+
+      // the block diagonal, if any:
+      if(IsLower || actual_k2<rows)
+      {
+        // for each small vertical panels of lhs
+        for (Index k1=0; k1<actual_kc; k1+=SmallPanelWidth)
+        {
+          Index actualPanelWidth = std::min<Index>(actual_kc-k1, SmallPanelWidth);
+          Index lengthTarget = IsLower ? actual_kc-k1-actualPanelWidth : k1;
+          Index startBlock   = actual_k2+k1;
+          Index blockBOffset = k1;
+
+          // => GEBP with the micro triangular block
+          // The trick is to pack this micro block while filling the opposite triangular part with zeros.
+          // To this end we do an extra triangular copy to a small temporary buffer
+          for (Index k=0;k<actualPanelWidth;++k)
+          {
+            if (SetDiag)
+              triangularBuffer.coeffRef(k,k) = lhs(startBlock+k,startBlock+k);
+            for (Index i=IsLower ? k+1 : 0; IsLower ? i<actualPanelWidth : i<k; ++i)
+              triangularBuffer.coeffRef(i,k) = lhs(startBlock+i,startBlock+k);
+          }
+          pack_lhs(blockA, triangularBuffer.data(), triangularBuffer.outerStride(), actualPanelWidth, actualPanelWidth);
+
+          gebp_kernel(res+startBlock, resStride, blockA, blockB, actualPanelWidth, actualPanelWidth, cols, alpha,
+                      actualPanelWidth, actual_kc, 0, blockBOffset, blockW);
+
+          // GEBP with remaining micro panel
+          if (lengthTarget>0)
+          {
+            Index startTarget  = IsLower ? actual_k2+k1+actualPanelWidth : actual_k2;
+
+            pack_lhs(blockA, &lhs(startTarget,startBlock), lhsStride, actualPanelWidth, lengthTarget);
+
+            gebp_kernel(res+startTarget, resStride, blockA, blockB, lengthTarget, actualPanelWidth, cols, alpha,
+                        actualPanelWidth, actual_kc, 0, blockBOffset, blockW);
+          }
+        }
+      }
+      // the part below (lower case) or above (upper case) the diagonal => GEPP
+      {
+        Index start = IsLower ? k2 : 0;
+        Index end   = IsLower ? rows : (std::min)(actual_k2,rows);
+        for(Index i2=start; i2<end; i2+=mc)
+        {
+          const Index actual_mc = (std::min)(i2+mc,end)-i2;
+          gemm_pack_lhs<Scalar, Index, Traits::mr,Traits::LhsProgress, LhsStorageOrder,false>()
+            (blockA, &lhs(i2, actual_k2), lhsStride, actual_kc, actual_mc);
+
+          gebp_kernel(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha, -1, -1, 0, 0, blockW);
+        }
+      }
+    }
+  }
+
+// implements col-major += alpha * op(general) * op(triangular)
+template <typename Scalar, typename Index, int Mode,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs, int Version>
+struct product_triangular_matrix_matrix<Scalar,Index,Mode,false,
+                                        LhsStorageOrder,ConjugateLhs,
+                                        RhsStorageOrder,ConjugateRhs,ColMajor,Version>
+{
+  typedef gebp_traits<Scalar,Scalar> Traits;
+  enum {
+    SmallPanelWidth   = EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
+    IsLower = (Mode&Lower) == Lower,
+    SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1
+  };
+
+  static EIGEN_DONT_INLINE void run(
+    Index _rows, Index _cols, Index _depth,
+    const Scalar* _lhs, Index lhsStride,
+    const Scalar* _rhs, Index rhsStride,
+    Scalar* res,        Index resStride,
+    const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking);
+};
+
+template <typename Scalar, typename Index, int Mode,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs, int Version>
+EIGEN_DONT_INLINE void product_triangular_matrix_matrix<Scalar,Index,Mode,false,
+                                                        LhsStorageOrder,ConjugateLhs,
+                                                        RhsStorageOrder,ConjugateRhs,ColMajor,Version>::run(
+    Index _rows, Index _cols, Index _depth,
+    const Scalar* _lhs, Index lhsStride,
+    const Scalar* _rhs, Index rhsStride,
+    Scalar* res,        Index resStride,
+    const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking)
+  {
+    // strip zeros
+    Index diagSize  = (std::min)(_cols,_depth);
+    Index rows      = _rows;
+    Index depth     = IsLower ? _depth : diagSize;
+    Index cols      = IsLower ? diagSize : _cols;
+    
+    const_blas_data_mapper<Scalar, Index, LhsStorageOrder> lhs(_lhs,lhsStride);
+    const_blas_data_mapper<Scalar, Index, RhsStorageOrder> rhs(_rhs,rhsStride);
+
+    Index kc = blocking.kc();                   // cache block size along the K direction
+    Index mc = (std::min)(rows,blocking.mc());  // cache block size along the M direction
+
+    std::size_t sizeA = kc*mc;
+    std::size_t sizeB = kc*cols;
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockW, sizeW, blocking.blockW());
+
+    Matrix<Scalar,SmallPanelWidth,SmallPanelWidth,RhsStorageOrder> triangularBuffer;
+    triangularBuffer.setZero();
+    if((Mode&ZeroDiag)==ZeroDiag)
+      triangularBuffer.diagonal().setZero();
+    else
+      triangularBuffer.diagonal().setOnes();
+
+    gebp_kernel<Scalar, Scalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
+    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+    gemm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder> pack_rhs;
+    gemm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder,false,true> pack_rhs_panel;
+
+    for(Index k2=IsLower ? 0 : depth;
+        IsLower ? k2<depth  : k2>0;
+        IsLower ? k2+=kc   : k2-=kc)
+    {
+      Index actual_kc = (std::min)(IsLower ? depth-k2 : k2, kc);
+      Index actual_k2 = IsLower ? k2 : k2-actual_kc;
+
+      // align blocks with the end of the triangular part for trapezoidal rhs
+      if(IsLower && (k2<cols) && (actual_k2+actual_kc>cols))
+      {
+        actual_kc = cols-k2;
+        k2 = actual_k2 + actual_kc - kc;
+      }
+
+      // remaining size
+      Index rs = IsLower ? (std::min)(cols,actual_k2) : cols - k2;
+      // size of the triangular part
+      Index ts = (IsLower && actual_k2>=cols) ? 0 : actual_kc;
+
+      Scalar* geb = blockB+ts*ts;
+
+      pack_rhs(geb, &rhs(actual_k2,IsLower ? 0 : k2), rhsStride, actual_kc, rs);
+
+      // pack the triangular part of the rhs padding the unrolled blocks with zeros
+      if(ts>0)
+      {
+        for (Index j2=0; j2<actual_kc; j2+=SmallPanelWidth)
+        {
+          Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
+          Index actual_j2 = actual_k2 + j2;
+          Index panelOffset = IsLower ? j2+actualPanelWidth : 0;
+          Index panelLength = IsLower ? actual_kc-j2-actualPanelWidth : j2;
+          // general part
+          pack_rhs_panel(blockB+j2*actual_kc,
+                         &rhs(actual_k2+panelOffset, actual_j2), rhsStride,
+                         panelLength, actualPanelWidth,
+                         actual_kc, panelOffset);
+
+          // append the triangular part via a temporary buffer
+          for (Index j=0;j<actualPanelWidth;++j)
+          {
+            if (SetDiag)
+              triangularBuffer.coeffRef(j,j) = rhs(actual_j2+j,actual_j2+j);
+            for (Index k=IsLower ? j+1 : 0; IsLower ? k<actualPanelWidth : k<j; ++k)
+              triangularBuffer.coeffRef(k,j) = rhs(actual_j2+k,actual_j2+j);
+          }
+
+          pack_rhs_panel(blockB+j2*actual_kc,
+                         triangularBuffer.data(), triangularBuffer.outerStride(),
+                         actualPanelWidth, actualPanelWidth,
+                         actual_kc, j2);
+        }
+      }
+
+      for (Index i2=0; i2<rows; i2+=mc)
+      {
+        const Index actual_mc = (std::min)(mc,rows-i2);
+        pack_lhs(blockA, &lhs(i2, actual_k2), lhsStride, actual_kc, actual_mc);
+
+        // triangular kernel
+        if(ts>0)
+        {
+          for (Index j2=0; j2<actual_kc; j2+=SmallPanelWidth)
+          {
+            Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
+            Index panelLength = IsLower ? actual_kc-j2 : j2+actualPanelWidth;
+            Index blockOffset = IsLower ? j2 : 0;
+
+            gebp_kernel(res+i2+(actual_k2+j2)*resStride, resStride,
+                        blockA, blockB+j2*actual_kc,
+                        actual_mc, panelLength, actualPanelWidth,
+                        alpha,
+                        actual_kc, actual_kc,  // strides
+                        blockOffset, blockOffset,// offsets
+                        blockW); // workspace
+          }
+        }
+        gebp_kernel(res+i2+(IsLower ? 0 : k2)*resStride, resStride,
+                    blockA, geb, actual_mc, actual_kc, rs,
+                    alpha,
+                    -1, -1, 0, 0, blockW);
+      }
+    }
+  }
+
+/***************************************************************************
+* Wrapper to product_triangular_matrix_matrix
+***************************************************************************/
+
+template<int Mode, bool LhsIsTriangular, typename Lhs, typename Rhs>
+struct traits<TriangularProduct<Mode,LhsIsTriangular,Lhs,false,Rhs,false> >
+  : traits<ProductBase<TriangularProduct<Mode,LhsIsTriangular,Lhs,false,Rhs,false>, Lhs, Rhs> >
+{};
+
+} // end namespace internal
+
+template<int Mode, bool LhsIsTriangular, typename Lhs, typename Rhs>
+struct TriangularProduct<Mode,LhsIsTriangular,Lhs,false,Rhs,false>
+  : public ProductBase<TriangularProduct<Mode,LhsIsTriangular,Lhs,false,Rhs,false>, Lhs, Rhs >
+{
+  EIGEN_PRODUCT_PUBLIC_INTERFACE(TriangularProduct)
+
+  TriangularProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs) {}
+
+  template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
+  {
+    typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(m_lhs);
+    typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(m_rhs);
+
+    Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(m_lhs)
+                               * RhsBlasTraits::extractScalarFactor(m_rhs);
+
+    typedef internal::gemm_blocking_space<(Dest::Flags&RowMajorBit) ? RowMajor : ColMajor,Scalar,Scalar,
+              Lhs::MaxRowsAtCompileTime, Rhs::MaxColsAtCompileTime, Lhs::MaxColsAtCompileTime,4> BlockingType;
+
+    enum { IsLower = (Mode&Lower) == Lower };
+    Index stripedRows  = ((!LhsIsTriangular) || (IsLower))  ? lhs.rows() : (std::min)(lhs.rows(),lhs.cols());
+    Index stripedCols  = ((LhsIsTriangular)  || (!IsLower)) ? rhs.cols() : (std::min)(rhs.cols(),rhs.rows());
+    Index stripedDepth = LhsIsTriangular ? ((!IsLower) ? lhs.cols() : (std::min)(lhs.cols(),lhs.rows()))
+                                         : ((IsLower)  ? rhs.rows() : (std::min)(rhs.rows(),rhs.cols()));
+
+    BlockingType blocking(stripedRows, stripedCols, stripedDepth);
+
+    internal::product_triangular_matrix_matrix<Scalar, Index,
+      Mode, LhsIsTriangular,
+      (internal::traits<_ActualLhsType>::Flags&RowMajorBit) ? RowMajor : ColMajor, LhsBlasTraits::NeedToConjugate,
+      (internal::traits<_ActualRhsType>::Flags&RowMajorBit) ? RowMajor : ColMajor, RhsBlasTraits::NeedToConjugate,
+      (internal::traits<Dest          >::Flags&RowMajorBit) ? RowMajor : ColMajor>
+      ::run(
+        stripedRows, stripedCols, stripedDepth,   // sizes
+        &lhs.coeffRef(0,0),    lhs.outerStride(), // lhs info
+        &rhs.coeffRef(0,0),    rhs.outerStride(), // rhs info
+        &dst.coeffRef(0,0), dst.outerStride(),    // result info
+        actualAlpha, blocking
+      );
+  }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_MATRIX_MATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixVector_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixVector_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixVector_MKL.h	(revision 2476)
@@ -0,0 +1,247 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *   Triangular matrix-vector product functionality based on ?TRMV.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_TRIANGULAR_MATRIX_VECTOR_MKL_H
+#define EIGEN_TRIANGULAR_MATRIX_VECTOR_MKL_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/**********************************************************************
+* This file implements triangular matrix-vector multiplication using BLAS
+**********************************************************************/
+
+// trmv/hemv specialization
+
+template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int StorageOrder>
+struct triangular_matrix_vector_product_trmv :
+  triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,StorageOrder,BuiltIn> {};
+
+#define EIGEN_MKL_TRMV_SPECIALIZE(Scalar) \
+template<typename Index, int Mode, bool ConjLhs, bool ConjRhs> \
+struct triangular_matrix_vector_product<Index,Mode,Scalar,ConjLhs,Scalar,ConjRhs,ColMajor,Specialized> { \
+ static void run(Index _rows, Index _cols, const Scalar* _lhs, Index lhsStride, \
+                                     const Scalar* _rhs, Index rhsIncr, Scalar* _res, Index resIncr, Scalar alpha) { \
+      triangular_matrix_vector_product_trmv<Index,Mode,Scalar,ConjLhs,Scalar,ConjRhs,ColMajor>::run( \
+        _rows, _cols, _lhs, lhsStride, _rhs, rhsIncr, _res, resIncr, alpha); \
+  } \
+}; \
+template<typename Index, int Mode, bool ConjLhs, bool ConjRhs> \
+struct triangular_matrix_vector_product<Index,Mode,Scalar,ConjLhs,Scalar,ConjRhs,RowMajor,Specialized> { \
+ static void run(Index _rows, Index _cols, const Scalar* _lhs, Index lhsStride, \
+                                     const Scalar* _rhs, Index rhsIncr, Scalar* _res, Index resIncr, Scalar alpha) { \
+      triangular_matrix_vector_product_trmv<Index,Mode,Scalar,ConjLhs,Scalar,ConjRhs,RowMajor>::run( \
+        _rows, _cols, _lhs, lhsStride, _rhs, rhsIncr, _res, resIncr, alpha); \
+  } \
+};
+
+EIGEN_MKL_TRMV_SPECIALIZE(double)
+EIGEN_MKL_TRMV_SPECIALIZE(float)
+EIGEN_MKL_TRMV_SPECIALIZE(dcomplex)
+EIGEN_MKL_TRMV_SPECIALIZE(scomplex)
+
+// implements col-major: res += alpha * op(triangular) * vector
+#define EIGEN_MKL_TRMV_CM(EIGTYPE, MKLTYPE, EIGPREFIX, MKLPREFIX) \
+template<typename Index, int Mode, bool ConjLhs, bool ConjRhs> \
+struct triangular_matrix_vector_product_trmv<Index,Mode,EIGTYPE,ConjLhs,EIGTYPE,ConjRhs,ColMajor> { \
+  enum { \
+    IsLower = (Mode&Lower) == Lower, \
+    SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
+    IsUnitDiag  = (Mode&UnitDiag) ? 1 : 0, \
+    IsZeroDiag  = (Mode&ZeroDiag) ? 1 : 0, \
+    LowUp = IsLower ? Lower : Upper \
+  }; \
+ static void run(Index _rows, Index _cols, const EIGTYPE* _lhs, Index lhsStride, \
+                 const EIGTYPE* _rhs, Index rhsIncr, EIGTYPE* _res, Index resIncr, EIGTYPE alpha) \
+ { \
+   if (ConjLhs || IsZeroDiag) { \
+     triangular_matrix_vector_product<Index,Mode,EIGTYPE,ConjLhs,EIGTYPE,ConjRhs,ColMajor,BuiltIn>::run( \
+       _rows, _cols, _lhs, lhsStride, _rhs, rhsIncr, _res, resIncr, alpha); \
+     return; \
+   }\
+   Index size = (std::min)(_rows,_cols); \
+   Index rows = IsLower ? _rows : size; \
+   Index cols = IsLower ? size : _cols; \
+\
+   typedef VectorX##EIGPREFIX VectorRhs; \
+   EIGTYPE *x, *y;\
+\
+/* Set x*/ \
+   Map<const VectorRhs, 0, InnerStride<> > rhs(_rhs,cols,InnerStride<>(rhsIncr)); \
+   VectorRhs x_tmp; \
+   if (ConjRhs) x_tmp = rhs.conjugate(); else x_tmp = rhs; \
+   x = x_tmp.data(); \
+\
+/* Square part handling */\
+\
+   char trans, uplo, diag; \
+   MKL_INT m, n, lda, incx, incy; \
+   EIGTYPE const *a; \
+   MKLTYPE alpha_, beta_; \
+   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(alpha_, alpha); \
+   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(beta_, EIGTYPE(1)); \
+\
+/* Set m, n */ \
+   n = (MKL_INT)size; \
+   lda = lhsStride; \
+   incx = 1; \
+   incy = resIncr; \
+\
+/* Set uplo, trans and diag*/ \
+   trans = 'N'; \
+   uplo = IsLower ? 'L' : 'U'; \
+   diag = IsUnitDiag ? 'U' : 'N'; \
+\
+/* call ?TRMV*/ \
+   MKLPREFIX##trmv(&uplo, &trans, &diag, &n, (const MKLTYPE*)_lhs, &lda, (MKLTYPE*)x, &incx); \
+\
+/* Add op(a_tr)rhs into res*/ \
+   MKLPREFIX##axpy(&n, &alpha_,(const MKLTYPE*)x, &incx, (MKLTYPE*)_res, &incy); \
+/* Non-square case - doesn't fit to MKL ?TRMV. Fall to default triangular product*/ \
+   if (size<(std::max)(rows,cols)) { \
+     typedef Matrix<EIGTYPE, Dynamic, Dynamic> MatrixLhs; \
+     if (ConjRhs) x_tmp = rhs.conjugate(); else x_tmp = rhs; \
+     x = x_tmp.data(); \
+     if (size<rows) { \
+       y = _res + size*resIncr; \
+       a = _lhs + size; \
+       m = rows-size; \
+       n = size; \
+     } \
+     else { \
+       x += size; \
+       y = _res; \
+       a = _lhs + size*lda; \
+       m = size; \
+       n = cols-size; \
+     } \
+     MKLPREFIX##gemv(&trans, &m, &n, &alpha_, (const MKLTYPE*)a, &lda, (const MKLTYPE*)x, &incx, &beta_, (MKLTYPE*)y, &incy); \
+   } \
+  } \
+};
+
+EIGEN_MKL_TRMV_CM(double, double, d, d)
+EIGEN_MKL_TRMV_CM(dcomplex, MKL_Complex16, cd, z)
+EIGEN_MKL_TRMV_CM(float, float, f, s)
+EIGEN_MKL_TRMV_CM(scomplex, MKL_Complex8, cf, c)
+
+// implements row-major: res += alpha * op(triangular) * vector
+#define EIGEN_MKL_TRMV_RM(EIGTYPE, MKLTYPE, EIGPREFIX, MKLPREFIX) \
+template<typename Index, int Mode, bool ConjLhs, bool ConjRhs> \
+struct triangular_matrix_vector_product_trmv<Index,Mode,EIGTYPE,ConjLhs,EIGTYPE,ConjRhs,RowMajor> { \
+  enum { \
+    IsLower = (Mode&Lower) == Lower, \
+    SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
+    IsUnitDiag  = (Mode&UnitDiag) ? 1 : 0, \
+    IsZeroDiag  = (Mode&ZeroDiag) ? 1 : 0, \
+    LowUp = IsLower ? Lower : Upper \
+  }; \
+ static void run(Index _rows, Index _cols, const EIGTYPE* _lhs, Index lhsStride, \
+                 const EIGTYPE* _rhs, Index rhsIncr, EIGTYPE* _res, Index resIncr, EIGTYPE alpha) \
+ { \
+   if (IsZeroDiag) { \
+     triangular_matrix_vector_product<Index,Mode,EIGTYPE,ConjLhs,EIGTYPE,ConjRhs,RowMajor,BuiltIn>::run( \
+       _rows, _cols, _lhs, lhsStride, _rhs, rhsIncr, _res, resIncr, alpha); \
+     return; \
+   }\
+   Index size = (std::min)(_rows,_cols); \
+   Index rows = IsLower ? _rows : size; \
+   Index cols = IsLower ? size : _cols; \
+\
+   typedef VectorX##EIGPREFIX VectorRhs; \
+   EIGTYPE *x, *y;\
+\
+/* Set x*/ \
+   Map<const VectorRhs, 0, InnerStride<> > rhs(_rhs,cols,InnerStride<>(rhsIncr)); \
+   VectorRhs x_tmp; \
+   if (ConjRhs) x_tmp = rhs.conjugate(); else x_tmp = rhs; \
+   x = x_tmp.data(); \
+\
+/* Square part handling */\
+\
+   char trans, uplo, diag; \
+   MKL_INT m, n, lda, incx, incy; \
+   EIGTYPE const *a; \
+   MKLTYPE alpha_, beta_; \
+   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(alpha_, alpha); \
+   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(beta_, EIGTYPE(1)); \
+\
+/* Set m, n */ \
+   n = (MKL_INT)size; \
+   lda = lhsStride; \
+   incx = 1; \
+   incy = resIncr; \
+\
+/* Set uplo, trans and diag*/ \
+   trans = ConjLhs ? 'C' : 'T'; \
+   uplo = IsLower ? 'U' : 'L'; \
+   diag = IsUnitDiag ? 'U' : 'N'; \
+\
+/* call ?TRMV*/ \
+   MKLPREFIX##trmv(&uplo, &trans, &diag, &n, (const MKLTYPE*)_lhs, &lda, (MKLTYPE*)x, &incx); \
+\
+/* Add op(a_tr)rhs into res*/ \
+   MKLPREFIX##axpy(&n, &alpha_,(const MKLTYPE*)x, &incx, (MKLTYPE*)_res, &incy); \
+/* Non-square case - doesn't fit to MKL ?TRMV. Fall to default triangular product*/ \
+   if (size<(std::max)(rows,cols)) { \
+     typedef Matrix<EIGTYPE, Dynamic, Dynamic> MatrixLhs; \
+     if (ConjRhs) x_tmp = rhs.conjugate(); else x_tmp = rhs; \
+     x = x_tmp.data(); \
+     if (size<rows) { \
+       y = _res + size*resIncr; \
+       a = _lhs + size*lda; \
+       m = rows-size; \
+       n = size; \
+     } \
+     else { \
+       x += size; \
+       y = _res; \
+       a = _lhs + size; \
+       m = size; \
+       n = cols-size; \
+     } \
+     MKLPREFIX##gemv(&trans, &n, &m, &alpha_, (const MKLTYPE*)a, &lda, (const MKLTYPE*)x, &incx, &beta_, (MKLTYPE*)y, &incy); \
+   } \
+  } \
+};
+
+EIGEN_MKL_TRMV_RM(double, double, d, d)
+EIGEN_MKL_TRMV_RM(dcomplex, MKL_Complex16, cd, z)
+EIGEN_MKL_TRMV_RM(float, float, f, s)
+EIGEN_MKL_TRMV_RM(scomplex, MKL_Complex8, cf, c)
+
+} // end namespase internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_MATRIX_VECTOR_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h	(revision 2476)
@@ -0,0 +1,146 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *   Level 3 BLAS SYRK/HERK implementation.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_GENERAL_MATRIX_MATRIX_TRIANGULAR_MKL_H
+#define EIGEN_GENERAL_MATRIX_MATRIX_TRIANGULAR_MKL_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template <typename Index, typename Scalar, int AStorageOrder, bool ConjugateA, int ResStorageOrder, int  UpLo>
+struct general_matrix_matrix_rankupdate :
+       general_matrix_matrix_triangular_product<
+         Index,Scalar,AStorageOrder,ConjugateA,Scalar,AStorageOrder,ConjugateA,ResStorageOrder,UpLo,BuiltIn> {};
+
+
+// try to go to BLAS specialization
+#define EIGEN_MKL_RANKUPDATE_SPECIALIZE(Scalar) \
+template <typename Index, int LhsStorageOrder, bool ConjugateLhs, \
+                          int RhsStorageOrder, bool ConjugateRhs, int  UpLo> \
+struct general_matrix_matrix_triangular_product<Index,Scalar,LhsStorageOrder,ConjugateLhs, \
+               Scalar,RhsStorageOrder,ConjugateRhs,ColMajor,UpLo,Specialized> { \
+  static EIGEN_STRONG_INLINE void run(Index size, Index depth,const Scalar* lhs, Index lhsStride, \
+                          const Scalar* rhs, Index rhsStride, Scalar* res, Index resStride, Scalar alpha) \
+  { \
+    if (lhs==rhs) { \
+      general_matrix_matrix_rankupdate<Index,Scalar,LhsStorageOrder,ConjugateLhs,ColMajor,UpLo> \
+      ::run(size,depth,lhs,lhsStride,rhs,rhsStride,res,resStride,alpha); \
+    } else { \
+      general_matrix_matrix_triangular_product<Index, \
+        Scalar, LhsStorageOrder, ConjugateLhs, \
+        Scalar, RhsStorageOrder, ConjugateRhs, \
+        ColMajor, UpLo, BuiltIn> \
+      ::run(size,depth,lhs,lhsStride,rhs,rhsStride,res,resStride,alpha); \
+    } \
+  } \
+};
+
+EIGEN_MKL_RANKUPDATE_SPECIALIZE(double)
+//EIGEN_MKL_RANKUPDATE_SPECIALIZE(dcomplex)
+EIGEN_MKL_RANKUPDATE_SPECIALIZE(float)
+//EIGEN_MKL_RANKUPDATE_SPECIALIZE(scomplex)
+
+// SYRK for float/double
+#define EIGEN_MKL_RANKUPDATE_R(EIGTYPE, MKLTYPE, MKLFUNC) \
+template <typename Index, int AStorageOrder, bool ConjugateA, int  UpLo> \
+struct general_matrix_matrix_rankupdate<Index,EIGTYPE,AStorageOrder,ConjugateA,ColMajor,UpLo> { \
+  enum { \
+    IsLower = (UpLo&Lower) == Lower, \
+    LowUp = IsLower ? Lower : Upper, \
+    conjA = ((AStorageOrder==ColMajor) && ConjugateA) ? 1 : 0 \
+  }; \
+  static EIGEN_STRONG_INLINE void run(Index size, Index depth,const EIGTYPE* lhs, Index lhsStride, \
+                          const EIGTYPE* rhs, Index rhsStride, EIGTYPE* res, Index resStride, EIGTYPE alpha) \
+  { \
+  /* typedef Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder> MatrixRhs;*/ \
+\
+   MKL_INT lda=lhsStride, ldc=resStride, n=size, k=depth; \
+   char uplo=(IsLower) ? 'L' : 'U', trans=(AStorageOrder==RowMajor) ? 'T':'N'; \
+   MKLTYPE alpha_, beta_; \
+\
+/* Set alpha_ & beta_ */ \
+   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(alpha_, alpha); \
+   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(beta_, EIGTYPE(1)); \
+   MKLFUNC(&uplo, &trans, &n, &k, &alpha_, lhs, &lda, &beta_, res, &ldc); \
+  } \
+};
+
+// HERK for complex data
+#define EIGEN_MKL_RANKUPDATE_C(EIGTYPE, MKLTYPE, RTYPE, MKLFUNC) \
+template <typename Index, int AStorageOrder, bool ConjugateA, int  UpLo> \
+struct general_matrix_matrix_rankupdate<Index,EIGTYPE,AStorageOrder,ConjugateA,ColMajor,UpLo> { \
+  enum { \
+    IsLower = (UpLo&Lower) == Lower, \
+    LowUp = IsLower ? Lower : Upper, \
+    conjA = (((AStorageOrder==ColMajor) && ConjugateA) || ((AStorageOrder==RowMajor) && !ConjugateA)) ? 1 : 0 \
+  }; \
+  static EIGEN_STRONG_INLINE void run(Index size, Index depth,const EIGTYPE* lhs, Index lhsStride, \
+                          const EIGTYPE* rhs, Index rhsStride, EIGTYPE* res, Index resStride, EIGTYPE alpha) \
+  { \
+   typedef Matrix<EIGTYPE, Dynamic, Dynamic, AStorageOrder> MatrixType; \
+\
+   MKL_INT lda=lhsStride, ldc=resStride, n=size, k=depth; \
+   char uplo=(IsLower) ? 'L' : 'U', trans=(AStorageOrder==RowMajor) ? 'C':'N'; \
+   RTYPE alpha_, beta_; \
+   const EIGTYPE* a_ptr; \
+\
+/* Set alpha_ & beta_ */ \
+/*   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(alpha_, alpha); */\
+/*   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(beta_, EIGTYPE(1));*/ \
+   alpha_ = alpha.real(); \
+   beta_ = 1.0; \
+/* Copy with conjugation in some cases*/ \
+   MatrixType a; \
+   if (conjA) { \
+     Map<const MatrixType, 0, OuterStride<> > mapA(lhs,n,k,OuterStride<>(lhsStride)); \
+     a = mapA.conjugate(); \
+     lda = a.outerStride(); \
+     a_ptr = a.data(); \
+   } else a_ptr=lhs; \
+   MKLFUNC(&uplo, &trans, &n, &k, &alpha_, (MKLTYPE*)a_ptr, &lda, &beta_, (MKLTYPE*)res, &ldc); \
+  } \
+};
+
+
+EIGEN_MKL_RANKUPDATE_R(double, double, dsyrk)
+EIGEN_MKL_RANKUPDATE_R(float,  float,  ssyrk)
+
+//EIGEN_MKL_RANKUPDATE_C(dcomplex, MKL_Complex16, double, zherk)
+//EIGEN_MKL_RANKUPDATE_C(scomplex, MKL_Complex8,  double, cherk)
+
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_MATRIX_TRIANGULAR_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h	(revision 2476)
@@ -0,0 +1,309 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *   Triangular matrix * matrix product functionality based on ?TRMM.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_TRIANGULAR_MATRIX_MATRIX_MKL_H
+#define EIGEN_TRIANGULAR_MATRIX_MATRIX_MKL_H
+
+namespace Eigen { 
+
+namespace internal {
+
+
+template <typename Scalar, typename Index,
+          int Mode, bool LhsIsTriangular,
+          int LhsStorageOrder, bool ConjugateLhs,
+          int RhsStorageOrder, bool ConjugateRhs,
+          int ResStorageOrder>
+struct product_triangular_matrix_matrix_trmm :
+       product_triangular_matrix_matrix<Scalar,Index,Mode,
+          LhsIsTriangular,LhsStorageOrder,ConjugateLhs,
+          RhsStorageOrder, ConjugateRhs, ResStorageOrder, BuiltIn> {};
+
+
+// try to go to BLAS specialization
+#define EIGEN_MKL_TRMM_SPECIALIZE(Scalar, LhsIsTriangular) \
+template <typename Index, int Mode, \
+          int LhsStorageOrder, bool ConjugateLhs, \
+          int RhsStorageOrder, bool ConjugateRhs> \
+struct product_triangular_matrix_matrix<Scalar,Index, Mode, LhsIsTriangular, \
+           LhsStorageOrder,ConjugateLhs, RhsStorageOrder,ConjugateRhs,ColMajor,Specialized> { \
+  static inline void run(Index _rows, Index _cols, Index _depth, const Scalar* _lhs, Index lhsStride,\
+    const Scalar* _rhs, Index rhsStride, Scalar* res, Index resStride, Scalar alpha, level3_blocking<Scalar,Scalar>& blocking) { \
+      product_triangular_matrix_matrix_trmm<Scalar,Index,Mode, \
+        LhsIsTriangular,LhsStorageOrder,ConjugateLhs, \
+        RhsStorageOrder, ConjugateRhs, ColMajor>::run( \
+        _rows, _cols, _depth, _lhs, lhsStride, _rhs, rhsStride, res, resStride, alpha, blocking); \
+  } \
+};
+
+EIGEN_MKL_TRMM_SPECIALIZE(double, true)
+EIGEN_MKL_TRMM_SPECIALIZE(double, false)
+EIGEN_MKL_TRMM_SPECIALIZE(dcomplex, true)
+EIGEN_MKL_TRMM_SPECIALIZE(dcomplex, false)
+EIGEN_MKL_TRMM_SPECIALIZE(float, true)
+EIGEN_MKL_TRMM_SPECIALIZE(float, false)
+EIGEN_MKL_TRMM_SPECIALIZE(scomplex, true)
+EIGEN_MKL_TRMM_SPECIALIZE(scomplex, false)
+
+// implements col-major += alpha * op(triangular) * op(general)
+#define EIGEN_MKL_TRMM_L(EIGTYPE, MKLTYPE, EIGPREFIX, MKLPREFIX) \
+template <typename Index, int Mode, \
+          int LhsStorageOrder, bool ConjugateLhs, \
+          int RhsStorageOrder, bool ConjugateRhs> \
+struct product_triangular_matrix_matrix_trmm<EIGTYPE,Index,Mode,true, \
+         LhsStorageOrder,ConjugateLhs,RhsStorageOrder,ConjugateRhs,ColMajor> \
+{ \
+  enum { \
+    IsLower = (Mode&Lower) == Lower, \
+    SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
+    IsUnitDiag  = (Mode&UnitDiag) ? 1 : 0, \
+    IsZeroDiag  = (Mode&ZeroDiag) ? 1 : 0, \
+    LowUp = IsLower ? Lower : Upper, \
+    conjA = ((LhsStorageOrder==ColMajor) && ConjugateLhs) ? 1 : 0 \
+  }; \
+\
+  static void run( \
+    Index _rows, Index _cols, Index _depth, \
+    const EIGTYPE* _lhs, Index lhsStride, \
+    const EIGTYPE* _rhs, Index rhsStride, \
+    EIGTYPE* res,        Index resStride, \
+    EIGTYPE alpha, level3_blocking<EIGTYPE,EIGTYPE>& blocking) \
+  { \
+   Index diagSize  = (std::min)(_rows,_depth); \
+   Index rows      = IsLower ? _rows : diagSize; \
+   Index depth     = IsLower ? diagSize : _depth; \
+   Index cols      = _cols; \
+\
+   typedef Matrix<EIGTYPE, Dynamic, Dynamic, LhsStorageOrder> MatrixLhs; \
+   typedef Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder> MatrixRhs; \
+\
+/* Non-square case - doesn't fit to MKL ?TRMM. Fall to default triangular product or call MKL ?GEMM*/ \
+   if (rows != depth) { \
+\
+     int nthr = mkl_domain_get_max_threads(EIGEN_MKL_DOMAIN_BLAS); \
+\
+     if (((nthr==1) && (((std::max)(rows,depth)-diagSize)/(double)diagSize < 0.5))) { \
+     /* Most likely no benefit to call TRMM or GEMM from MKL*/ \
+       product_triangular_matrix_matrix<EIGTYPE,Index,Mode,true, \
+       LhsStorageOrder,ConjugateLhs, RhsStorageOrder, ConjugateRhs, ColMajor, BuiltIn>::run( \
+           _rows, _cols, _depth, _lhs, lhsStride, _rhs, rhsStride, res, resStride, alpha, blocking); \
+     /*std::cout << "TRMM_L: A is not square! Go to Eigen TRMM implementation!\n";*/ \
+     } else { \
+     /* Make sense to call GEMM */ \
+       Map<const MatrixLhs, 0, OuterStride<> > lhsMap(_lhs,rows,depth,OuterStride<>(lhsStride)); \
+       MatrixLhs aa_tmp=lhsMap.template triangularView<Mode>(); \
+       MKL_INT aStride = aa_tmp.outerStride(); \
+       gemm_blocking_space<ColMajor,EIGTYPE,EIGTYPE,Dynamic,Dynamic,Dynamic> gemm_blocking(_rows,_cols,_depth); \
+       general_matrix_matrix_product<Index,EIGTYPE,LhsStorageOrder,ConjugateLhs,EIGTYPE,RhsStorageOrder,ConjugateRhs,ColMajor>::run( \
+       rows, cols, depth, aa_tmp.data(), aStride, _rhs, rhsStride, res, resStride, alpha, gemm_blocking, 0); \
+\
+     /*std::cout << "TRMM_L: A is not square! Go to MKL GEMM implementation! " << nthr<<" \n";*/ \
+     } \
+     return; \
+   } \
+   char side = 'L', transa, uplo, diag = 'N'; \
+   EIGTYPE *b; \
+   const EIGTYPE *a; \
+   MKL_INT m, n, lda, ldb; \
+   MKLTYPE alpha_; \
+\
+/* Set alpha_*/ \
+   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(alpha_, alpha); \
+\
+/* Set m, n */ \
+   m = (MKL_INT)diagSize; \
+   n = (MKL_INT)cols; \
+\
+/* Set trans */ \
+   transa = (LhsStorageOrder==RowMajor) ? ((ConjugateLhs) ? 'C' : 'T') : 'N'; \
+\
+/* Set b, ldb */ \
+   Map<const MatrixRhs, 0, OuterStride<> > rhs(_rhs,depth,cols,OuterStride<>(rhsStride)); \
+   MatrixX##EIGPREFIX b_tmp; \
+\
+   if (ConjugateRhs) b_tmp = rhs.conjugate(); else b_tmp = rhs; \
+   b = b_tmp.data(); \
+   ldb = b_tmp.outerStride(); \
+\
+/* Set uplo */ \
+   uplo = IsLower ? 'L' : 'U'; \
+   if (LhsStorageOrder==RowMajor) uplo = (uplo == 'L') ? 'U' : 'L'; \
+/* Set a, lda */ \
+   Map<const MatrixLhs, 0, OuterStride<> > lhs(_lhs,rows,depth,OuterStride<>(lhsStride)); \
+   MatrixLhs a_tmp; \
+\
+   if ((conjA!=0) || (SetDiag==0)) { \
+     if (conjA) a_tmp = lhs.conjugate(); else a_tmp = lhs; \
+     if (IsZeroDiag) \
+       a_tmp.diagonal().setZero(); \
+     else if (IsUnitDiag) \
+       a_tmp.diagonal().setOnes();\
+     a = a_tmp.data(); \
+     lda = a_tmp.outerStride(); \
+   } else { \
+     a = _lhs; \
+     lda = lhsStride; \
+   } \
+   /*std::cout << "TRMM_L: A is square! Go to MKL TRMM implementation! \n";*/ \
+/* call ?trmm*/ \
+   MKLPREFIX##trmm(&side, &uplo, &transa, &diag, &m, &n, &alpha_, (const MKLTYPE*)a, &lda, (MKLTYPE*)b, &ldb); \
+\
+/* Add op(a_triangular)*b into res*/ \
+   Map<MatrixX##EIGPREFIX, 0, OuterStride<> > res_tmp(res,rows,cols,OuterStride<>(resStride)); \
+   res_tmp=res_tmp+b_tmp; \
+  } \
+};
+
+EIGEN_MKL_TRMM_L(double, double, d, d)
+EIGEN_MKL_TRMM_L(dcomplex, MKL_Complex16, cd, z)
+EIGEN_MKL_TRMM_L(float, float, f, s)
+EIGEN_MKL_TRMM_L(scomplex, MKL_Complex8, cf, c)
+
+// implements col-major += alpha * op(general) * op(triangular)
+#define EIGEN_MKL_TRMM_R(EIGTYPE, MKLTYPE, EIGPREFIX, MKLPREFIX) \
+template <typename Index, int Mode, \
+          int LhsStorageOrder, bool ConjugateLhs, \
+          int RhsStorageOrder, bool ConjugateRhs> \
+struct product_triangular_matrix_matrix_trmm<EIGTYPE,Index,Mode,false, \
+         LhsStorageOrder,ConjugateLhs,RhsStorageOrder,ConjugateRhs,ColMajor> \
+{ \
+  enum { \
+    IsLower = (Mode&Lower) == Lower, \
+    SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
+    IsUnitDiag  = (Mode&UnitDiag) ? 1 : 0, \
+    IsZeroDiag  = (Mode&ZeroDiag) ? 1 : 0, \
+    LowUp = IsLower ? Lower : Upper, \
+    conjA = ((RhsStorageOrder==ColMajor) && ConjugateRhs) ? 1 : 0 \
+  }; \
+\
+  static void run( \
+    Index _rows, Index _cols, Index _depth, \
+    const EIGTYPE* _lhs, Index lhsStride, \
+    const EIGTYPE* _rhs, Index rhsStride, \
+    EIGTYPE* res,        Index resStride, \
+    EIGTYPE alpha, level3_blocking<EIGTYPE,EIGTYPE>& blocking) \
+  { \
+   Index diagSize  = (std::min)(_cols,_depth); \
+   Index rows      = _rows; \
+   Index depth     = IsLower ? _depth : diagSize; \
+   Index cols      = IsLower ? diagSize : _cols; \
+\
+   typedef Matrix<EIGTYPE, Dynamic, Dynamic, LhsStorageOrder> MatrixLhs; \
+   typedef Matrix<EIGTYPE, Dynamic, Dynamic, RhsStorageOrder> MatrixRhs; \
+\
+/* Non-square case - doesn't fit to MKL ?TRMM. Fall to default triangular product or call MKL ?GEMM*/ \
+   if (cols != depth) { \
+\
+     int nthr = mkl_domain_get_max_threads(EIGEN_MKL_DOMAIN_BLAS); \
+\
+     if ((nthr==1) && (((std::max)(cols,depth)-diagSize)/(double)diagSize < 0.5)) { \
+     /* Most likely no benefit to call TRMM or GEMM from MKL*/ \
+       product_triangular_matrix_matrix<EIGTYPE,Index,Mode,false, \
+       LhsStorageOrder,ConjugateLhs, RhsStorageOrder, ConjugateRhs, ColMajor, BuiltIn>::run( \
+           _rows, _cols, _depth, _lhs, lhsStride, _rhs, rhsStride, res, resStride, alpha, blocking); \
+       /*std::cout << "TRMM_R: A is not square! Go to Eigen TRMM implementation!\n";*/ \
+     } else { \
+     /* Make sense to call GEMM */ \
+       Map<const MatrixRhs, 0, OuterStride<> > rhsMap(_rhs,depth,cols, OuterStride<>(rhsStride)); \
+       MatrixRhs aa_tmp=rhsMap.template triangularView<Mode>(); \
+       MKL_INT aStride = aa_tmp.outerStride(); \
+       gemm_blocking_space<ColMajor,EIGTYPE,EIGTYPE,Dynamic,Dynamic,Dynamic> gemm_blocking(_rows,_cols,_depth); \
+       general_matrix_matrix_product<Index,EIGTYPE,LhsStorageOrder,ConjugateLhs,EIGTYPE,RhsStorageOrder,ConjugateRhs,ColMajor>::run( \
+       rows, cols, depth, _lhs, lhsStride, aa_tmp.data(), aStride, res, resStride, alpha, gemm_blocking, 0); \
+\
+     /*std::cout << "TRMM_R: A is not square! Go to MKL GEMM implementation! " << nthr<<" \n";*/ \
+     } \
+     return; \
+   } \
+   char side = 'R', transa, uplo, diag = 'N'; \
+   EIGTYPE *b; \
+   const EIGTYPE *a; \
+   MKL_INT m, n, lda, ldb; \
+   MKLTYPE alpha_; \
+\
+/* Set alpha_*/ \
+   assign_scalar_eig2mkl<MKLTYPE, EIGTYPE>(alpha_, alpha); \
+\
+/* Set m, n */ \
+   m = (MKL_INT)rows; \
+   n = (MKL_INT)diagSize; \
+\
+/* Set trans */ \
+   transa = (RhsStorageOrder==RowMajor) ? ((ConjugateRhs) ? 'C' : 'T') : 'N'; \
+\
+/* Set b, ldb */ \
+   Map<const MatrixLhs, 0, OuterStride<> > lhs(_lhs,rows,depth,OuterStride<>(lhsStride)); \
+   MatrixX##EIGPREFIX b_tmp; \
+\
+   if (ConjugateLhs) b_tmp = lhs.conjugate(); else b_tmp = lhs; \
+   b = b_tmp.data(); \
+   ldb = b_tmp.outerStride(); \
+\
+/* Set uplo */ \
+   uplo = IsLower ? 'L' : 'U'; \
+   if (RhsStorageOrder==RowMajor) uplo = (uplo == 'L') ? 'U' : 'L'; \
+/* Set a, lda */ \
+   Map<const MatrixRhs, 0, OuterStride<> > rhs(_rhs,depth,cols, OuterStride<>(rhsStride)); \
+   MatrixRhs a_tmp; \
+\
+   if ((conjA!=0) || (SetDiag==0)) { \
+     if (conjA) a_tmp = rhs.conjugate(); else a_tmp = rhs; \
+     if (IsZeroDiag) \
+       a_tmp.diagonal().setZero(); \
+     else if (IsUnitDiag) \
+       a_tmp.diagonal().setOnes();\
+     a = a_tmp.data(); \
+     lda = a_tmp.outerStride(); \
+   } else { \
+     a = _rhs; \
+     lda = rhsStride; \
+   } \
+   /*std::cout << "TRMM_R: A is square! Go to MKL TRMM implementation! \n";*/ \
+/* call ?trmm*/ \
+   MKLPREFIX##trmm(&side, &uplo, &transa, &diag, &m, &n, &alpha_, (const MKLTYPE*)a, &lda, (MKLTYPE*)b, &ldb); \
+\
+/* Add op(a_triangular)*b into res*/ \
+   Map<MatrixX##EIGPREFIX, 0, OuterStride<> > res_tmp(res,rows,cols,OuterStride<>(resStride)); \
+   res_tmp=res_tmp+b_tmp; \
+  } \
+};
+
+EIGEN_MKL_TRMM_R(double, double, d, d)
+EIGEN_MKL_TRMM_R(dcomplex, MKL_Complex16, cd, z)
+EIGEN_MKL_TRMM_R(float, float, f, s)
+EIGEN_MKL_TRMM_R(scomplex, MKL_Complex8, cf, c)
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_MATRIX_MATRIX_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixVector.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixVector.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixVector.h	(revision 2476)
@@ -0,0 +1,566 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_MATRIX_VECTOR_H
+#define EIGEN_GENERAL_MATRIX_VECTOR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/* Optimized col-major matrix * vector product:
+ * This algorithm processes 4 columns at onces that allows to both reduce
+ * the number of load/stores of the result by a factor 4 and to reduce
+ * the instruction dependency. Moreover, we know that all bands have the
+ * same alignment pattern.
+ *
+ * Mixing type logic: C += alpha * A * B
+ *  |  A  |  B  |alpha| comments
+ *  |real |cplx |cplx | no vectorization
+ *  |real |cplx |real | alpha is converted to a cplx when calling the run function, no vectorization
+ *  |cplx |real |cplx | invalid, the caller has to do tmp: = A * B; C += alpha*tmp
+ *  |cplx |real |real | optimal case, vectorization possible via real-cplx mul
+ */
+template<typename Index, typename LhsScalar, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version>
+struct general_matrix_vector_product<Index,LhsScalar,ColMajor,ConjugateLhs,RhsScalar,ConjugateRhs,Version>
+{
+typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+
+enum {
+  Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable
+              && int(packet_traits<LhsScalar>::size)==int(packet_traits<RhsScalar>::size),
+  LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+  RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+  ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1
+};
+
+typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
+typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
+typedef typename packet_traits<ResScalar>::type  _ResPacket;
+
+typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+
+EIGEN_DONT_INLINE static void run(
+  Index rows, Index cols,
+  const LhsScalar* lhs, Index lhsStride,
+  const RhsScalar* rhs, Index rhsIncr,
+  ResScalar* res, Index resIncr, RhsScalar alpha);
+};
+
+template<typename Index, typename LhsScalar, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version>
+EIGEN_DONT_INLINE void general_matrix_vector_product<Index,LhsScalar,ColMajor,ConjugateLhs,RhsScalar,ConjugateRhs,Version>::run(
+  Index rows, Index cols,
+  const LhsScalar* lhs, Index lhsStride,
+  const RhsScalar* rhs, Index rhsIncr,
+  ResScalar* res, Index resIncr, RhsScalar alpha)
+{
+  EIGEN_UNUSED_VARIABLE(resIncr)
+  eigen_internal_assert(resIncr==1);
+  #ifdef _EIGEN_ACCUMULATE_PACKETS
+  #error _EIGEN_ACCUMULATE_PACKETS has already been defined
+  #endif
+  #define _EIGEN_ACCUMULATE_PACKETS(A0,A13,A2) \
+    pstore(&res[j], \
+      padd(pload<ResPacket>(&res[j]), \
+        padd( \
+          padd(pcj.pmul(EIGEN_CAT(ploa , A0)<LhsPacket>(&lhs0[j]),    ptmp0), \
+                  pcj.pmul(EIGEN_CAT(ploa , A13)<LhsPacket>(&lhs1[j]),   ptmp1)), \
+          padd(pcj.pmul(EIGEN_CAT(ploa , A2)<LhsPacket>(&lhs2[j]),    ptmp2), \
+                  pcj.pmul(EIGEN_CAT(ploa , A13)<LhsPacket>(&lhs3[j]),   ptmp3)) )))
+
+  conj_helper<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> cj;
+  conj_helper<LhsPacket,RhsPacket,ConjugateLhs,ConjugateRhs> pcj;
+  if(ConjugateRhs)
+    alpha = numext::conj(alpha);
+
+  enum { AllAligned = 0, EvenAligned, FirstAligned, NoneAligned };
+  const Index columnsAtOnce = 4;
+  const Index peels = 2;
+  const Index LhsPacketAlignedMask = LhsPacketSize-1;
+  const Index ResPacketAlignedMask = ResPacketSize-1;
+//  const Index PeelAlignedMask = ResPacketSize*peels-1;
+  const Index size = rows;
+  
+  // How many coeffs of the result do we have to skip to be aligned.
+  // Here we assume data are at least aligned on the base scalar type.
+  Index alignedStart = internal::first_aligned(res,size);
+  Index alignedSize = ResPacketSize>1 ? alignedStart + ((size-alignedStart) & ~ResPacketAlignedMask) : 0;
+  const Index peeledSize = alignedSize - RhsPacketSize*peels - RhsPacketSize + 1;
+
+  const Index alignmentStep = LhsPacketSize>1 ? (LhsPacketSize - lhsStride % LhsPacketSize) & LhsPacketAlignedMask : 0;
+  Index alignmentPattern = alignmentStep==0 ? AllAligned
+                       : alignmentStep==(LhsPacketSize/2) ? EvenAligned
+                       : FirstAligned;
+
+  // we cannot assume the first element is aligned because of sub-matrices
+  const Index lhsAlignmentOffset = internal::first_aligned(lhs,size);
+
+  // find how many columns do we have to skip to be aligned with the result (if possible)
+  Index skipColumns = 0;
+  // if the data cannot be aligned (TODO add some compile time tests when possible, e.g. for floats)
+  if( (size_t(lhs)%sizeof(LhsScalar)) || (size_t(res)%sizeof(ResScalar)) )
+  {
+    alignedSize = 0;
+    alignedStart = 0;
+  }
+  else if (LhsPacketSize>1)
+  {
+    eigen_internal_assert(size_t(lhs+lhsAlignmentOffset)%sizeof(LhsPacket)==0 || size<LhsPacketSize);
+
+    while (skipColumns<LhsPacketSize &&
+          alignedStart != ((lhsAlignmentOffset + alignmentStep*skipColumns)%LhsPacketSize))
+      ++skipColumns;
+    if (skipColumns==LhsPacketSize)
+    {
+      // nothing can be aligned, no need to skip any column
+      alignmentPattern = NoneAligned;
+      skipColumns = 0;
+    }
+    else
+    {
+      skipColumns = (std::min)(skipColumns,cols);
+      // note that the skiped columns are processed later.
+    }
+
+    eigen_internal_assert(  (alignmentPattern==NoneAligned)
+                      || (skipColumns + columnsAtOnce >= cols)
+                      || LhsPacketSize > size
+                      || (size_t(lhs+alignedStart+lhsStride*skipColumns)%sizeof(LhsPacket))==0);
+  }
+  else if(Vectorizable)
+  {
+    alignedStart = 0;
+    alignedSize = size;
+    alignmentPattern = AllAligned;
+  }
+
+  Index offset1 = (FirstAligned && alignmentStep==1?3:1);
+  Index offset3 = (FirstAligned && alignmentStep==1?1:3);
+
+  Index columnBound = ((cols-skipColumns)/columnsAtOnce)*columnsAtOnce + skipColumns;
+  for (Index i=skipColumns; i<columnBound; i+=columnsAtOnce)
+  {
+    RhsPacket ptmp0 = pset1<RhsPacket>(alpha*rhs[i*rhsIncr]),
+              ptmp1 = pset1<RhsPacket>(alpha*rhs[(i+offset1)*rhsIncr]),
+              ptmp2 = pset1<RhsPacket>(alpha*rhs[(i+2)*rhsIncr]),
+              ptmp3 = pset1<RhsPacket>(alpha*rhs[(i+offset3)*rhsIncr]);
+
+    // this helps a lot generating better binary code
+    const LhsScalar *lhs0 = lhs + i*lhsStride,     *lhs1 = lhs + (i+offset1)*lhsStride,
+                    *lhs2 = lhs + (i+2)*lhsStride, *lhs3 = lhs + (i+offset3)*lhsStride;
+
+    if (Vectorizable)
+    {
+      /* explicit vectorization */
+      // process initial unaligned coeffs
+      for (Index j=0; j<alignedStart; ++j)
+      {
+        res[j] = cj.pmadd(lhs0[j], pfirst(ptmp0), res[j]);
+        res[j] = cj.pmadd(lhs1[j], pfirst(ptmp1), res[j]);
+        res[j] = cj.pmadd(lhs2[j], pfirst(ptmp2), res[j]);
+        res[j] = cj.pmadd(lhs3[j], pfirst(ptmp3), res[j]);
+      }
+
+      if (alignedSize>alignedStart)
+      {
+        switch(alignmentPattern)
+        {
+          case AllAligned:
+            for (Index j = alignedStart; j<alignedSize; j+=ResPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(d,d,d);
+            break;
+          case EvenAligned:
+            for (Index j = alignedStart; j<alignedSize; j+=ResPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(d,du,d);
+            break;
+          case FirstAligned:
+          {
+            Index j = alignedStart;
+            if(peels>1)
+            {
+              LhsPacket A00, A01, A02, A03, A10, A11, A12, A13;
+              ResPacket T0, T1;
+
+              A01 = pload<LhsPacket>(&lhs1[alignedStart-1]);
+              A02 = pload<LhsPacket>(&lhs2[alignedStart-2]);
+              A03 = pload<LhsPacket>(&lhs3[alignedStart-3]);
+
+              for (; j<peeledSize; j+=peels*ResPacketSize)
+              {
+                A11 = pload<LhsPacket>(&lhs1[j-1+LhsPacketSize]);  palign<1>(A01,A11);
+                A12 = pload<LhsPacket>(&lhs2[j-2+LhsPacketSize]);  palign<2>(A02,A12);
+                A13 = pload<LhsPacket>(&lhs3[j-3+LhsPacketSize]);  palign<3>(A03,A13);
+
+                A00 = pload<LhsPacket>(&lhs0[j]);
+                A10 = pload<LhsPacket>(&lhs0[j+LhsPacketSize]);
+                T0  = pcj.pmadd(A00, ptmp0, pload<ResPacket>(&res[j]));
+                T1  = pcj.pmadd(A10, ptmp0, pload<ResPacket>(&res[j+ResPacketSize]));
+
+                T0  = pcj.pmadd(A01, ptmp1, T0);
+                A01 = pload<LhsPacket>(&lhs1[j-1+2*LhsPacketSize]);  palign<1>(A11,A01);
+                T0  = pcj.pmadd(A02, ptmp2, T0);
+                A02 = pload<LhsPacket>(&lhs2[j-2+2*LhsPacketSize]);  palign<2>(A12,A02);
+                T0  = pcj.pmadd(A03, ptmp3, T0);
+                pstore(&res[j],T0);
+                A03 = pload<LhsPacket>(&lhs3[j-3+2*LhsPacketSize]);  palign<3>(A13,A03);
+                T1  = pcj.pmadd(A11, ptmp1, T1);
+                T1  = pcj.pmadd(A12, ptmp2, T1);
+                T1  = pcj.pmadd(A13, ptmp3, T1);
+                pstore(&res[j+ResPacketSize],T1);
+              }
+            }
+            for (; j<alignedSize; j+=ResPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(d,du,du);
+            break;
+          }
+          default:
+            for (Index j = alignedStart; j<alignedSize; j+=ResPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(du,du,du);
+            break;
+        }
+      }
+    } // end explicit vectorization
+
+    /* process remaining coeffs (or all if there is no explicit vectorization) */
+    for (Index j=alignedSize; j<size; ++j)
+    {
+      res[j] = cj.pmadd(lhs0[j], pfirst(ptmp0), res[j]);
+      res[j] = cj.pmadd(lhs1[j], pfirst(ptmp1), res[j]);
+      res[j] = cj.pmadd(lhs2[j], pfirst(ptmp2), res[j]);
+      res[j] = cj.pmadd(lhs3[j], pfirst(ptmp3), res[j]);
+    }
+  }
+
+  // process remaining first and last columns (at most columnsAtOnce-1)
+  Index end = cols;
+  Index start = columnBound;
+  do
+  {
+    for (Index k=start; k<end; ++k)
+    {
+      RhsPacket ptmp0 = pset1<RhsPacket>(alpha*rhs[k*rhsIncr]);
+      const LhsScalar* lhs0 = lhs + k*lhsStride;
+
+      if (Vectorizable)
+      {
+        /* explicit vectorization */
+        // process first unaligned result's coeffs
+        for (Index j=0; j<alignedStart; ++j)
+          res[j] += cj.pmul(lhs0[j], pfirst(ptmp0));
+        // process aligned result's coeffs
+        if ((size_t(lhs0+alignedStart)%sizeof(LhsPacket))==0)
+          for (Index i = alignedStart;i<alignedSize;i+=ResPacketSize)
+            pstore(&res[i], pcj.pmadd(pload<LhsPacket>(&lhs0[i]), ptmp0, pload<ResPacket>(&res[i])));
+        else
+          for (Index i = alignedStart;i<alignedSize;i+=ResPacketSize)
+            pstore(&res[i], pcj.pmadd(ploadu<LhsPacket>(&lhs0[i]), ptmp0, pload<ResPacket>(&res[i])));
+      }
+
+      // process remaining scalars (or all if no explicit vectorization)
+      for (Index i=alignedSize; i<size; ++i)
+        res[i] += cj.pmul(lhs0[i], pfirst(ptmp0));
+    }
+    if (skipColumns)
+    {
+      start = 0;
+      end = skipColumns;
+      skipColumns = 0;
+    }
+    else
+      break;
+  } while(Vectorizable);
+  #undef _EIGEN_ACCUMULATE_PACKETS
+}
+
+/* Optimized row-major matrix * vector product:
+ * This algorithm processes 4 rows at onces that allows to both reduce
+ * the number of load/stores of the result by a factor 4 and to reduce
+ * the instruction dependency. Moreover, we know that all bands have the
+ * same alignment pattern.
+ *
+ * Mixing type logic:
+ *  - alpha is always a complex (or converted to a complex)
+ *  - no vectorization
+ */
+template<typename Index, typename LhsScalar, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version>
+struct general_matrix_vector_product<Index,LhsScalar,RowMajor,ConjugateLhs,RhsScalar,ConjugateRhs,Version>
+{
+typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+
+enum {
+  Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable
+              && int(packet_traits<LhsScalar>::size)==int(packet_traits<RhsScalar>::size),
+  LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+  RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+  ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1
+};
+
+typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
+typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
+typedef typename packet_traits<ResScalar>::type  _ResPacket;
+
+typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+  
+EIGEN_DONT_INLINE static void run(
+  Index rows, Index cols,
+  const LhsScalar* lhs, Index lhsStride,
+  const RhsScalar* rhs, Index rhsIncr,
+  ResScalar* res, Index resIncr,
+  ResScalar alpha);
+};
+
+template<typename Index, typename LhsScalar, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version>
+EIGEN_DONT_INLINE void general_matrix_vector_product<Index,LhsScalar,RowMajor,ConjugateLhs,RhsScalar,ConjugateRhs,Version>::run(
+  Index rows, Index cols,
+  const LhsScalar* lhs, Index lhsStride,
+  const RhsScalar* rhs, Index rhsIncr,
+  ResScalar* res, Index resIncr,
+  ResScalar alpha)
+{
+  EIGEN_UNUSED_VARIABLE(rhsIncr);
+  eigen_internal_assert(rhsIncr==1);
+  #ifdef _EIGEN_ACCUMULATE_PACKETS
+  #error _EIGEN_ACCUMULATE_PACKETS has already been defined
+  #endif
+
+  #define _EIGEN_ACCUMULATE_PACKETS(A0,A13,A2) {\
+    RhsPacket b = pload<RhsPacket>(&rhs[j]); \
+    ptmp0 = pcj.pmadd(EIGEN_CAT(ploa,A0) <LhsPacket>(&lhs0[j]), b, ptmp0); \
+    ptmp1 = pcj.pmadd(EIGEN_CAT(ploa,A13)<LhsPacket>(&lhs1[j]), b, ptmp1); \
+    ptmp2 = pcj.pmadd(EIGEN_CAT(ploa,A2) <LhsPacket>(&lhs2[j]), b, ptmp2); \
+    ptmp3 = pcj.pmadd(EIGEN_CAT(ploa,A13)<LhsPacket>(&lhs3[j]), b, ptmp3); }
+
+  conj_helper<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> cj;
+  conj_helper<LhsPacket,RhsPacket,ConjugateLhs,ConjugateRhs> pcj;
+
+  enum { AllAligned=0, EvenAligned=1, FirstAligned=2, NoneAligned=3 };
+  const Index rowsAtOnce = 4;
+  const Index peels = 2;
+  const Index RhsPacketAlignedMask = RhsPacketSize-1;
+  const Index LhsPacketAlignedMask = LhsPacketSize-1;
+//   const Index PeelAlignedMask = RhsPacketSize*peels-1;
+  const Index depth = cols;
+
+  // How many coeffs of the result do we have to skip to be aligned.
+  // Here we assume data are at least aligned on the base scalar type
+  // if that's not the case then vectorization is discarded, see below.
+  Index alignedStart = internal::first_aligned(rhs, depth);
+  Index alignedSize = RhsPacketSize>1 ? alignedStart + ((depth-alignedStart) & ~RhsPacketAlignedMask) : 0;
+  const Index peeledSize = alignedSize - RhsPacketSize*peels - RhsPacketSize + 1;
+
+  const Index alignmentStep = LhsPacketSize>1 ? (LhsPacketSize - lhsStride % LhsPacketSize) & LhsPacketAlignedMask : 0;
+  Index alignmentPattern = alignmentStep==0 ? AllAligned
+                         : alignmentStep==(LhsPacketSize/2) ? EvenAligned
+                         : FirstAligned;
+
+  // we cannot assume the first element is aligned because of sub-matrices
+  const Index lhsAlignmentOffset = internal::first_aligned(lhs,depth);
+
+  // find how many rows do we have to skip to be aligned with rhs (if possible)
+  Index skipRows = 0;
+  // if the data cannot be aligned (TODO add some compile time tests when possible, e.g. for floats)
+  if( (sizeof(LhsScalar)!=sizeof(RhsScalar)) || (size_t(lhs)%sizeof(LhsScalar)) || (size_t(rhs)%sizeof(RhsScalar)) )
+  {
+    alignedSize = 0;
+    alignedStart = 0;
+  }
+  else if (LhsPacketSize>1)
+  {
+    eigen_internal_assert(size_t(lhs+lhsAlignmentOffset)%sizeof(LhsPacket)==0  || depth<LhsPacketSize);
+
+    while (skipRows<LhsPacketSize &&
+           alignedStart != ((lhsAlignmentOffset + alignmentStep*skipRows)%LhsPacketSize))
+      ++skipRows;
+    if (skipRows==LhsPacketSize)
+    {
+      // nothing can be aligned, no need to skip any column
+      alignmentPattern = NoneAligned;
+      skipRows = 0;
+    }
+    else
+    {
+      skipRows = (std::min)(skipRows,Index(rows));
+      // note that the skiped columns are processed later.
+    }
+    eigen_internal_assert(  alignmentPattern==NoneAligned
+                      || LhsPacketSize==1
+                      || (skipRows + rowsAtOnce >= rows)
+                      || LhsPacketSize > depth
+                      || (size_t(lhs+alignedStart+lhsStride*skipRows)%sizeof(LhsPacket))==0);
+  }
+  else if(Vectorizable)
+  {
+    alignedStart = 0;
+    alignedSize = depth;
+    alignmentPattern = AllAligned;
+  }
+
+  Index offset1 = (FirstAligned && alignmentStep==1?3:1);
+  Index offset3 = (FirstAligned && alignmentStep==1?1:3);
+
+  Index rowBound = ((rows-skipRows)/rowsAtOnce)*rowsAtOnce + skipRows;
+  for (Index i=skipRows; i<rowBound; i+=rowsAtOnce)
+  {
+    EIGEN_ALIGN16 ResScalar tmp0 = ResScalar(0);
+    ResScalar tmp1 = ResScalar(0), tmp2 = ResScalar(0), tmp3 = ResScalar(0);
+
+    // this helps the compiler generating good binary code
+    const LhsScalar *lhs0 = lhs + i*lhsStride,     *lhs1 = lhs + (i+offset1)*lhsStride,
+                    *lhs2 = lhs + (i+2)*lhsStride, *lhs3 = lhs + (i+offset3)*lhsStride;
+
+    if (Vectorizable)
+    {
+      /* explicit vectorization */
+      ResPacket ptmp0 = pset1<ResPacket>(ResScalar(0)), ptmp1 = pset1<ResPacket>(ResScalar(0)),
+                ptmp2 = pset1<ResPacket>(ResScalar(0)), ptmp3 = pset1<ResPacket>(ResScalar(0));
+
+      // process initial unaligned coeffs
+      // FIXME this loop get vectorized by the compiler !
+      for (Index j=0; j<alignedStart; ++j)
+      {
+        RhsScalar b = rhs[j];
+        tmp0 += cj.pmul(lhs0[j],b); tmp1 += cj.pmul(lhs1[j],b);
+        tmp2 += cj.pmul(lhs2[j],b); tmp3 += cj.pmul(lhs3[j],b);
+      }
+
+      if (alignedSize>alignedStart)
+      {
+        switch(alignmentPattern)
+        {
+          case AllAligned:
+            for (Index j = alignedStart; j<alignedSize; j+=RhsPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(d,d,d);
+            break;
+          case EvenAligned:
+            for (Index j = alignedStart; j<alignedSize; j+=RhsPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(d,du,d);
+            break;
+          case FirstAligned:
+          {
+            Index j = alignedStart;
+            if (peels>1)
+            {
+              /* Here we proccess 4 rows with with two peeled iterations to hide
+               * the overhead of unaligned loads. Moreover unaligned loads are handled
+               * using special shift/move operations between the two aligned packets
+               * overlaping the desired unaligned packet. This is *much* more efficient
+               * than basic unaligned loads.
+               */
+              LhsPacket A01, A02, A03, A11, A12, A13;
+              A01 = pload<LhsPacket>(&lhs1[alignedStart-1]);
+              A02 = pload<LhsPacket>(&lhs2[alignedStart-2]);
+              A03 = pload<LhsPacket>(&lhs3[alignedStart-3]);
+
+              for (; j<peeledSize; j+=peels*RhsPacketSize)
+              {
+                RhsPacket b = pload<RhsPacket>(&rhs[j]);
+                A11 = pload<LhsPacket>(&lhs1[j-1+LhsPacketSize]);  palign<1>(A01,A11);
+                A12 = pload<LhsPacket>(&lhs2[j-2+LhsPacketSize]);  palign<2>(A02,A12);
+                A13 = pload<LhsPacket>(&lhs3[j-3+LhsPacketSize]);  palign<3>(A03,A13);
+
+                ptmp0 = pcj.pmadd(pload<LhsPacket>(&lhs0[j]), b, ptmp0);
+                ptmp1 = pcj.pmadd(A01, b, ptmp1);
+                A01 = pload<LhsPacket>(&lhs1[j-1+2*LhsPacketSize]);  palign<1>(A11,A01);
+                ptmp2 = pcj.pmadd(A02, b, ptmp2);
+                A02 = pload<LhsPacket>(&lhs2[j-2+2*LhsPacketSize]);  palign<2>(A12,A02);
+                ptmp3 = pcj.pmadd(A03, b, ptmp3);
+                A03 = pload<LhsPacket>(&lhs3[j-3+2*LhsPacketSize]);  palign<3>(A13,A03);
+
+                b = pload<RhsPacket>(&rhs[j+RhsPacketSize]);
+                ptmp0 = pcj.pmadd(pload<LhsPacket>(&lhs0[j+LhsPacketSize]), b, ptmp0);
+                ptmp1 = pcj.pmadd(A11, b, ptmp1);
+                ptmp2 = pcj.pmadd(A12, b, ptmp2);
+                ptmp3 = pcj.pmadd(A13, b, ptmp3);
+              }
+            }
+            for (; j<alignedSize; j+=RhsPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(d,du,du);
+            break;
+          }
+          default:
+            for (Index j = alignedStart; j<alignedSize; j+=RhsPacketSize)
+              _EIGEN_ACCUMULATE_PACKETS(du,du,du);
+            break;
+        }
+        tmp0 += predux(ptmp0);
+        tmp1 += predux(ptmp1);
+        tmp2 += predux(ptmp2);
+        tmp3 += predux(ptmp3);
+      }
+    } // end explicit vectorization
+
+    // process remaining coeffs (or all if no explicit vectorization)
+    // FIXME this loop get vectorized by the compiler !
+    for (Index j=alignedSize; j<depth; ++j)
+    {
+      RhsScalar b = rhs[j];
+      tmp0 += cj.pmul(lhs0[j],b); tmp1 += cj.pmul(lhs1[j],b);
+      tmp2 += cj.pmul(lhs2[j],b); tmp3 += cj.pmul(lhs3[j],b);
+    }
+    res[i*resIncr]            += alpha*tmp0;
+    res[(i+offset1)*resIncr]  += alpha*tmp1;
+    res[(i+2)*resIncr]        += alpha*tmp2;
+    res[(i+offset3)*resIncr]  += alpha*tmp3;
+  }
+
+  // process remaining first and last rows (at most columnsAtOnce-1)
+  Index end = rows;
+  Index start = rowBound;
+  do
+  {
+    for (Index i=start; i<end; ++i)
+    {
+      EIGEN_ALIGN16 ResScalar tmp0 = ResScalar(0);
+      ResPacket ptmp0 = pset1<ResPacket>(tmp0);
+      const LhsScalar* lhs0 = lhs + i*lhsStride;
+      // process first unaligned result's coeffs
+      // FIXME this loop get vectorized by the compiler !
+      for (Index j=0; j<alignedStart; ++j)
+        tmp0 += cj.pmul(lhs0[j], rhs[j]);
+
+      if (alignedSize>alignedStart)
+      {
+        // process aligned rhs coeffs
+        if ((size_t(lhs0+alignedStart)%sizeof(LhsPacket))==0)
+          for (Index j = alignedStart;j<alignedSize;j+=RhsPacketSize)
+            ptmp0 = pcj.pmadd(pload<LhsPacket>(&lhs0[j]), pload<RhsPacket>(&rhs[j]), ptmp0);
+        else
+          for (Index j = alignedStart;j<alignedSize;j+=RhsPacketSize)
+            ptmp0 = pcj.pmadd(ploadu<LhsPacket>(&lhs0[j]), pload<RhsPacket>(&rhs[j]), ptmp0);
+        tmp0 += predux(ptmp0);
+      }
+
+      // process remaining scalars
+      // FIXME this loop get vectorized by the compiler !
+      for (Index j=alignedSize; j<depth; ++j)
+        tmp0 += cj.pmul(lhs0[j], rhs[j]);
+      res[i*resIncr] += alpha*tmp0;
+    }
+    if (skipRows)
+    {
+      start = 0;
+      end = skipRows;
+      skipRows = 0;
+    }
+    else
+      break;
+  } while(Vectorizable);
+
+  #undef _EIGEN_ACCUMULATE_PACKETS
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_VECTOR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularSolverVector.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularSolverVector.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularSolverVector.h	(revision 2476)
@@ -0,0 +1,139 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULAR_SOLVER_VECTOR_H
+#define EIGEN_TRIANGULAR_SOLVER_VECTOR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename LhsScalar, typename RhsScalar, typename Index, int Mode, bool Conjugate, int StorageOrder>
+struct triangular_solve_vector<LhsScalar, RhsScalar, Index, OnTheRight, Mode, Conjugate, StorageOrder>
+{
+  static void run(Index size, const LhsScalar* _lhs, Index lhsStride, RhsScalar* rhs)
+  {
+    triangular_solve_vector<LhsScalar,RhsScalar,Index,OnTheLeft,
+        ((Mode&Upper)==Upper ? Lower : Upper) | (Mode&UnitDiag),
+        Conjugate,StorageOrder==RowMajor?ColMajor:RowMajor
+      >::run(size, _lhs, lhsStride, rhs);
+  }
+};
+    
+// forward and backward substitution, row-major, rhs is a vector
+template<typename LhsScalar, typename RhsScalar, typename Index, int Mode, bool Conjugate>
+struct triangular_solve_vector<LhsScalar, RhsScalar, Index, OnTheLeft, Mode, Conjugate, RowMajor>
+{
+  enum {
+    IsLower = ((Mode&Lower)==Lower)
+  };
+  static void run(Index size, const LhsScalar* _lhs, Index lhsStride, RhsScalar* rhs)
+  {
+    typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,RowMajor>, 0, OuterStride<> > LhsMap;
+    const LhsMap lhs(_lhs,size,size,OuterStride<>(lhsStride));
+    typename internal::conditional<
+                          Conjugate,
+                          const CwiseUnaryOp<typename internal::scalar_conjugate_op<LhsScalar>,LhsMap>,
+                          const LhsMap&>
+                        ::type cjLhs(lhs);
+    static const Index PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH;
+    for(Index pi=IsLower ? 0 : size;
+        IsLower ? pi<size : pi>0;
+        IsLower ? pi+=PanelWidth : pi-=PanelWidth)
+    {
+      Index actualPanelWidth = (std::min)(IsLower ? size - pi : pi, PanelWidth);
+
+      Index r = IsLower ? pi : size - pi; // remaining size
+      if (r > 0)
+      {
+        // let's directly call the low level product function because:
+        // 1 - it is faster to compile
+        // 2 - it is slighlty faster at runtime
+        Index startRow = IsLower ? pi : pi-actualPanelWidth;
+        Index startCol = IsLower ? 0 : pi;
+
+        general_matrix_vector_product<Index,LhsScalar,RowMajor,Conjugate,RhsScalar,false>::run(
+          actualPanelWidth, r,
+          &lhs.coeffRef(startRow,startCol), lhsStride,
+          rhs + startCol, 1,
+          rhs + startRow, 1,
+          RhsScalar(-1));
+      }
+
+      for(Index k=0; k<actualPanelWidth; ++k)
+      {
+        Index i = IsLower ? pi+k : pi-k-1;
+        Index s = IsLower ? pi   : i+1;
+        if (k>0)
+          rhs[i] -= (cjLhs.row(i).segment(s,k).transpose().cwiseProduct(Map<const Matrix<RhsScalar,Dynamic,1> >(rhs+s,k))).sum();
+        
+        if(!(Mode & UnitDiag))
+          rhs[i] /= cjLhs(i,i);
+      }
+    }
+  }
+};
+
+// forward and backward substitution, column-major, rhs is a vector
+template<typename LhsScalar, typename RhsScalar, typename Index, int Mode, bool Conjugate>
+struct triangular_solve_vector<LhsScalar, RhsScalar, Index, OnTheLeft, Mode, Conjugate, ColMajor>
+{
+  enum {
+    IsLower = ((Mode&Lower)==Lower)
+  };
+  static void run(Index size, const LhsScalar* _lhs, Index lhsStride, RhsScalar* rhs)
+  {
+    typedef Map<const Matrix<LhsScalar,Dynamic,Dynamic,ColMajor>, 0, OuterStride<> > LhsMap;
+    const LhsMap lhs(_lhs,size,size,OuterStride<>(lhsStride));
+    typename internal::conditional<Conjugate,
+                                   const CwiseUnaryOp<typename internal::scalar_conjugate_op<LhsScalar>,LhsMap>,
+                                   const LhsMap&
+                                  >::type cjLhs(lhs);
+    static const Index PanelWidth = EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH;
+
+    for(Index pi=IsLower ? 0 : size;
+        IsLower ? pi<size : pi>0;
+        IsLower ? pi+=PanelWidth : pi-=PanelWidth)
+    {
+      Index actualPanelWidth = (std::min)(IsLower ? size - pi : pi, PanelWidth);
+      Index startBlock = IsLower ? pi : pi-actualPanelWidth;
+      Index endBlock = IsLower ? pi + actualPanelWidth : 0;
+
+      for(Index k=0; k<actualPanelWidth; ++k)
+      {
+        Index i = IsLower ? pi+k : pi-k-1;
+        if(!(Mode & UnitDiag))
+          rhs[i] /= cjLhs.coeff(i,i);
+
+        Index r = actualPanelWidth - k - 1; // remaining size
+        Index s = IsLower ? i+1 : i-r;
+        if (r>0)
+          Map<Matrix<RhsScalar,Dynamic,1> >(rhs+s,r) -= rhs[i] * cjLhs.col(i).segment(s,r);
+      }
+      Index r = IsLower ? size - endBlock : startBlock; // remaining size
+      if (r > 0)
+      {
+        // let's directly call the low level product function because:
+        // 1 - it is faster to compile
+        // 2 - it is slighlty faster at runtime
+        general_matrix_vector_product<Index,LhsScalar,ColMajor,Conjugate,RhsScalar,false>::run(
+            r, actualPanelWidth,
+            &lhs.coeffRef(endBlock,startBlock), lhsStride,
+            rhs+startBlock, 1,
+            rhs+endBlock, 1, RhsScalar(-1));
+      }
+    }
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_SOLVER_VECTOR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/Parallelizer.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/Parallelizer.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/Parallelizer.h	(revision 2476)
@@ -0,0 +1,162 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARALLELIZER_H
+#define EIGEN_PARALLELIZER_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal */
+inline void manage_multi_threading(Action action, int* v)
+{
+  static EIGEN_UNUSED int m_maxThreads = -1;
+
+  if(action==SetAction)
+  {
+    eigen_internal_assert(v!=0);
+    m_maxThreads = *v;
+  }
+  else if(action==GetAction)
+  {
+    eigen_internal_assert(v!=0);
+    #ifdef EIGEN_HAS_OPENMP
+    if(m_maxThreads>0)
+      *v = m_maxThreads;
+    else
+      *v = omp_get_max_threads();
+    #else
+    *v = 1;
+    #endif
+  }
+  else
+  {
+    eigen_internal_assert(false);
+  }
+}
+
+}
+
+/** Must be call first when calling Eigen from multiple threads */
+inline void initParallel()
+{
+  int nbt;
+  internal::manage_multi_threading(GetAction, &nbt);
+  std::ptrdiff_t l1, l2;
+  internal::manage_caching_sizes(GetAction, &l1, &l2);
+}
+
+/** \returns the max number of threads reserved for Eigen
+  * \sa setNbThreads */
+inline int nbThreads()
+{
+  int ret;
+  internal::manage_multi_threading(GetAction, &ret);
+  return ret;
+}
+
+/** Sets the max number of threads reserved for Eigen
+  * \sa nbThreads */
+inline void setNbThreads(int v)
+{
+  internal::manage_multi_threading(SetAction, &v);
+}
+
+namespace internal {
+
+template<typename Index> struct GemmParallelInfo
+{
+  GemmParallelInfo() : sync(-1), users(0), rhs_start(0), rhs_length(0) {}
+
+  int volatile sync;
+  int volatile users;
+
+  Index rhs_start;
+  Index rhs_length;
+};
+
+template<bool Condition, typename Functor, typename Index>
+void parallelize_gemm(const Functor& func, Index rows, Index cols, bool transpose)
+{
+  // TODO when EIGEN_USE_BLAS is defined,
+  // we should still enable OMP for other scalar types
+#if !(defined (EIGEN_HAS_OPENMP)) || defined (EIGEN_USE_BLAS)
+  // FIXME the transpose variable is only needed to properly split
+  // the matrix product when multithreading is enabled. This is a temporary
+  // fix to support row-major destination matrices. This whole
+  // parallelizer mechanism has to be redisigned anyway.
+  EIGEN_UNUSED_VARIABLE(transpose);
+  func(0,rows, 0,cols);
+#else
+
+  // Dynamically check whether we should enable or disable OpenMP.
+  // The conditions are:
+  // - the max number of threads we can create is greater than 1
+  // - we are not already in a parallel code
+  // - the sizes are large enough
+
+  // 1- are we already in a parallel session?
+  // FIXME omp_get_num_threads()>1 only works for openmp, what if the user does not use openmp?
+  if((!Condition) || (omp_get_num_threads()>1))
+    return func(0,rows, 0,cols);
+
+  Index size = transpose ? cols : rows;
+
+  // 2- compute the maximal number of threads from the size of the product:
+  // FIXME this has to be fine tuned
+  Index max_threads = std::max<Index>(1,size / 32);
+
+  // 3 - compute the number of threads we are going to use
+  Index threads = std::min<Index>(nbThreads(), max_threads);
+
+  if(threads==1)
+    return func(0,rows, 0,cols);
+
+  Eigen::initParallel();
+  func.initParallelSession();
+
+  if(transpose)
+    std::swap(rows,cols);
+
+  GemmParallelInfo<Index>* info = new GemmParallelInfo<Index>[threads];
+
+  #pragma omp parallel num_threads(threads)
+  {
+    Index i = omp_get_thread_num();
+    // Note that the actual number of threads might be lower than the number of request ones.
+    Index actual_threads = omp_get_num_threads();
+    
+    Index blockCols = (cols / actual_threads) & ~Index(0x3);
+    Index blockRows = (rows / actual_threads) & ~Index(0x7);
+    
+    Index r0 = i*blockRows;
+    Index actualBlockRows = (i+1==actual_threads) ? rows-r0 : blockRows;
+
+    Index c0 = i*blockCols;
+    Index actualBlockCols = (i+1==actual_threads) ? cols-c0 : blockCols;
+
+    info[i].rhs_start = c0;
+    info[i].rhs_length = actualBlockCols;
+
+    if(transpose)
+      func(0, cols, r0, actualBlockRows, info);
+    else
+      func(r0, actualBlockRows, 0,cols, info);
+  }
+
+  delete[] info;
+#endif
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARALLELIZER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixMatrix.h	(revision 2476)
@@ -0,0 +1,433 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_MATRIX_MATRIX_H
+#define EIGEN_GENERAL_MATRIX_MATRIX_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename _LhsScalar, typename _RhsScalar> class level3_blocking;
+
+/* Specialization for a row-major destination matrix => simple transposition of the product */
+template<
+  typename Index,
+  typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+  typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs>
+struct general_matrix_matrix_product<Index,LhsScalar,LhsStorageOrder,ConjugateLhs,RhsScalar,RhsStorageOrder,ConjugateRhs,RowMajor>
+{
+  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+  static EIGEN_STRONG_INLINE void run(
+    Index rows, Index cols, Index depth,
+    const LhsScalar* lhs, Index lhsStride,
+    const RhsScalar* rhs, Index rhsStride,
+    ResScalar* res, Index resStride,
+    ResScalar alpha,
+    level3_blocking<RhsScalar,LhsScalar>& blocking,
+    GemmParallelInfo<Index>* info = 0)
+  {
+    // transpose the product such that the result is column major
+    general_matrix_matrix_product<Index,
+      RhsScalar, RhsStorageOrder==RowMajor ? ColMajor : RowMajor, ConjugateRhs,
+      LhsScalar, LhsStorageOrder==RowMajor ? ColMajor : RowMajor, ConjugateLhs,
+      ColMajor>
+    ::run(cols,rows,depth,rhs,rhsStride,lhs,lhsStride,res,resStride,alpha,blocking,info);
+  }
+};
+
+/*  Specialization for a col-major destination matrix
+ *    => Blocking algorithm following Goto's paper */
+template<
+  typename Index,
+  typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+  typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs>
+struct general_matrix_matrix_product<Index,LhsScalar,LhsStorageOrder,ConjugateLhs,RhsScalar,RhsStorageOrder,ConjugateRhs,ColMajor>
+{
+
+typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+static void run(Index rows, Index cols, Index depth,
+  const LhsScalar* _lhs, Index lhsStride,
+  const RhsScalar* _rhs, Index rhsStride,
+  ResScalar* res, Index resStride,
+  ResScalar alpha,
+  level3_blocking<LhsScalar,RhsScalar>& blocking,
+  GemmParallelInfo<Index>* info = 0)
+{
+  const_blas_data_mapper<LhsScalar, Index, LhsStorageOrder> lhs(_lhs,lhsStride);
+  const_blas_data_mapper<RhsScalar, Index, RhsStorageOrder> rhs(_rhs,rhsStride);
+
+  typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+
+  Index kc = blocking.kc();                   // cache block size along the K direction
+  Index mc = (std::min)(rows,blocking.mc());  // cache block size along the M direction
+  //Index nc = blocking.nc(); // cache block size along the N direction
+
+  gemm_pack_lhs<LhsScalar, Index, Traits::mr, Traits::LhsProgress, LhsStorageOrder> pack_lhs;
+  gemm_pack_rhs<RhsScalar, Index, Traits::nr, RhsStorageOrder> pack_rhs;
+  gebp_kernel<LhsScalar, RhsScalar, Index, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp;
+
+#ifdef EIGEN_HAS_OPENMP
+  if(info)
+  {
+    // this is the parallel version!
+    Index tid = omp_get_thread_num();
+    Index threads = omp_get_num_threads();
+    
+    std::size_t sizeA = kc*mc;
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+    ei_declare_aligned_stack_constructed_variable(LhsScalar, blockA, sizeA, 0);
+    ei_declare_aligned_stack_constructed_variable(RhsScalar, w, sizeW, 0);
+    
+    RhsScalar* blockB = blocking.blockB();
+    eigen_internal_assert(blockB!=0);
+
+    // For each horizontal panel of the rhs, and corresponding vertical panel of the lhs...
+    for(Index k=0; k<depth; k+=kc)
+    {
+      const Index actual_kc = (std::min)(k+kc,depth)-k; // => rows of B', and cols of the A'
+
+      // In order to reduce the chance that a thread has to wait for the other,
+      // let's start by packing A'.
+      pack_lhs(blockA, &lhs(0,k), lhsStride, actual_kc, mc);
+
+      // Pack B_k to B' in a parallel fashion:
+      // each thread packs the sub block B_k,j to B'_j where j is the thread id.
+
+      // However, before copying to B'_j, we have to make sure that no other thread is still using it,
+      // i.e., we test that info[tid].users equals 0.
+      // Then, we set info[tid].users to the number of threads to mark that all other threads are going to use it.
+      while(info[tid].users!=0) {}
+      info[tid].users += threads;
+
+      pack_rhs(blockB+info[tid].rhs_start*actual_kc, &rhs(k,info[tid].rhs_start), rhsStride, actual_kc, info[tid].rhs_length);
+
+      // Notify the other threads that the part B'_j is ready to go.
+      info[tid].sync = k;
+
+      // Computes C_i += A' * B' per B'_j
+      for(Index shift=0; shift<threads; ++shift)
+      {
+        Index j = (tid+shift)%threads;
+
+        // At this point we have to make sure that B'_j has been updated by the thread j,
+        // we use testAndSetOrdered to mimic a volatile access.
+        // However, no need to wait for the B' part which has been updated by the current thread!
+        if(shift>0)
+          while(info[j].sync!=k) {}
+
+        gebp(res+info[j].rhs_start*resStride, resStride, blockA, blockB+info[j].rhs_start*actual_kc, mc, actual_kc, info[j].rhs_length, alpha, -1,-1,0,0, w);
+      }
+
+      // Then keep going as usual with the remaining A'
+      for(Index i=mc; i<rows; i+=mc)
+      {
+        const Index actual_mc = (std::min)(i+mc,rows)-i;
+
+        // pack A_i,k to A'
+        pack_lhs(blockA, &lhs(i,k), lhsStride, actual_kc, actual_mc);
+
+        // C_i += A' * B'
+        gebp(res+i, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha, -1,-1,0,0, w);
+      }
+
+      // Release all the sub blocks B'_j of B' for the current thread,
+      // i.e., we simply decrement the number of users by 1
+      for(Index j=0; j<threads; ++j)
+      {
+        #pragma omp atomic
+        info[j].users -= 1;
+      }
+    }
+  }
+  else
+#endif // EIGEN_HAS_OPENMP
+  {
+    EIGEN_UNUSED_VARIABLE(info);
+
+    // this is the sequential version!
+    std::size_t sizeA = kc*mc;
+    std::size_t sizeB = kc*cols;
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+
+    ei_declare_aligned_stack_constructed_variable(LhsScalar, blockA, sizeA, blocking.blockA());
+    ei_declare_aligned_stack_constructed_variable(RhsScalar, blockB, sizeB, blocking.blockB());
+    ei_declare_aligned_stack_constructed_variable(RhsScalar, blockW, sizeW, blocking.blockW());
+
+    // For each horizontal panel of the rhs, and corresponding panel of the lhs...
+    // (==GEMM_VAR1)
+    for(Index k2=0; k2<depth; k2+=kc)
+    {
+      const Index actual_kc = (std::min)(k2+kc,depth)-k2;
+
+      // OK, here we have selected one horizontal panel of rhs and one vertical panel of lhs.
+      // => Pack rhs's panel into a sequential chunk of memory (L2 caching)
+      // Note that this panel will be read as many times as the number of blocks in the lhs's
+      // vertical panel which is, in practice, a very low number.
+      pack_rhs(blockB, &rhs(k2,0), rhsStride, actual_kc, cols);
+
+      // For each mc x kc block of the lhs's vertical panel...
+      // (==GEPP_VAR1)
+      for(Index i2=0; i2<rows; i2+=mc)
+      {
+        const Index actual_mc = (std::min)(i2+mc,rows)-i2;
+
+        // We pack the lhs's block into a sequential chunk of memory (L1 caching)
+        // Note that this block will be read a very high number of times, which is equal to the number of
+        // micro vertical panel of the large rhs's panel (e.g., cols/4 times).
+        pack_lhs(blockA, &lhs(i2,k2), lhsStride, actual_kc, actual_mc);
+
+        // Everything is packed, we can now call the block * panel kernel:
+        gebp(res+i2, resStride, blockA, blockB, actual_mc, actual_kc, cols, alpha, -1, -1, 0, 0, blockW);
+      }
+    }
+  }
+}
+
+};
+
+/*********************************************************************************
+*  Specialization of GeneralProduct<> for "large" GEMM, i.e.,
+*  implementation of the high level wrapper to general_matrix_matrix_product
+**********************************************************************************/
+
+template<typename Lhs, typename Rhs>
+struct traits<GeneralProduct<Lhs,Rhs,GemmProduct> >
+ : traits<ProductBase<GeneralProduct<Lhs,Rhs,GemmProduct>, Lhs, Rhs> >
+{};
+
+template<typename Scalar, typename Index, typename Gemm, typename Lhs, typename Rhs, typename Dest, typename BlockingType>
+struct gemm_functor
+{
+  gemm_functor(const Lhs& lhs, const Rhs& rhs, Dest& dest, const Scalar& actualAlpha,
+                  BlockingType& blocking)
+    : m_lhs(lhs), m_rhs(rhs), m_dest(dest), m_actualAlpha(actualAlpha), m_blocking(blocking)
+  {}
+
+  void initParallelSession() const
+  {
+    m_blocking.allocateB();
+  }
+
+  void operator() (Index row, Index rows, Index col=0, Index cols=-1, GemmParallelInfo<Index>* info=0) const
+  {
+    if(cols==-1)
+      cols = m_rhs.cols();
+
+    Gemm::run(rows, cols, m_lhs.cols(),
+              /*(const Scalar*)*/&m_lhs.coeffRef(row,0), m_lhs.outerStride(),
+              /*(const Scalar*)*/&m_rhs.coeffRef(0,col), m_rhs.outerStride(),
+              (Scalar*)&(m_dest.coeffRef(row,col)), m_dest.outerStride(),
+              m_actualAlpha, m_blocking, info);
+  }
+
+  protected:
+    const Lhs& m_lhs;
+    const Rhs& m_rhs;
+    Dest& m_dest;
+    Scalar m_actualAlpha;
+    BlockingType& m_blocking;
+};
+
+template<int StorageOrder, typename LhsScalar, typename RhsScalar, int MaxRows, int MaxCols, int MaxDepth, int KcFactor=1,
+bool FiniteAtCompileTime = MaxRows!=Dynamic && MaxCols!=Dynamic && MaxDepth != Dynamic> class gemm_blocking_space;
+
+template<typename _LhsScalar, typename _RhsScalar>
+class level3_blocking
+{
+    typedef _LhsScalar LhsScalar;
+    typedef _RhsScalar RhsScalar;
+
+  protected:
+    LhsScalar* m_blockA;
+    RhsScalar* m_blockB;
+    RhsScalar* m_blockW;
+
+    DenseIndex m_mc;
+    DenseIndex m_nc;
+    DenseIndex m_kc;
+
+  public:
+
+    level3_blocking()
+      : m_blockA(0), m_blockB(0), m_blockW(0), m_mc(0), m_nc(0), m_kc(0)
+    {}
+
+    inline DenseIndex mc() const { return m_mc; }
+    inline DenseIndex nc() const { return m_nc; }
+    inline DenseIndex kc() const { return m_kc; }
+
+    inline LhsScalar* blockA() { return m_blockA; }
+    inline RhsScalar* blockB() { return m_blockB; }
+    inline RhsScalar* blockW() { return m_blockW; }
+};
+
+template<int StorageOrder, typename _LhsScalar, typename _RhsScalar, int MaxRows, int MaxCols, int MaxDepth, int KcFactor>
+class gemm_blocking_space<StorageOrder,_LhsScalar,_RhsScalar,MaxRows, MaxCols, MaxDepth, KcFactor, true>
+  : public level3_blocking<
+      typename conditional<StorageOrder==RowMajor,_RhsScalar,_LhsScalar>::type,
+      typename conditional<StorageOrder==RowMajor,_LhsScalar,_RhsScalar>::type>
+{
+    enum {
+      Transpose = StorageOrder==RowMajor,
+      ActualRows = Transpose ? MaxCols : MaxRows,
+      ActualCols = Transpose ? MaxRows : MaxCols
+    };
+    typedef typename conditional<Transpose,_RhsScalar,_LhsScalar>::type LhsScalar;
+    typedef typename conditional<Transpose,_LhsScalar,_RhsScalar>::type RhsScalar;
+    typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+    enum {
+      SizeA = ActualRows * MaxDepth,
+      SizeB = ActualCols * MaxDepth,
+      SizeW = MaxDepth * Traits::WorkSpaceFactor
+    };
+
+    EIGEN_ALIGN16 LhsScalar m_staticA[SizeA];
+    EIGEN_ALIGN16 RhsScalar m_staticB[SizeB];
+    EIGEN_ALIGN16 RhsScalar m_staticW[SizeW];
+
+  public:
+
+    gemm_blocking_space(DenseIndex /*rows*/, DenseIndex /*cols*/, DenseIndex /*depth*/)
+    {
+      this->m_mc = ActualRows;
+      this->m_nc = ActualCols;
+      this->m_kc = MaxDepth;
+      this->m_blockA = m_staticA;
+      this->m_blockB = m_staticB;
+      this->m_blockW = m_staticW;
+    }
+
+    inline void allocateA() {}
+    inline void allocateB() {}
+    inline void allocateW() {}
+    inline void allocateAll() {}
+};
+
+template<int StorageOrder, typename _LhsScalar, typename _RhsScalar, int MaxRows, int MaxCols, int MaxDepth, int KcFactor>
+class gemm_blocking_space<StorageOrder,_LhsScalar,_RhsScalar,MaxRows, MaxCols, MaxDepth, KcFactor, false>
+  : public level3_blocking<
+      typename conditional<StorageOrder==RowMajor,_RhsScalar,_LhsScalar>::type,
+      typename conditional<StorageOrder==RowMajor,_LhsScalar,_RhsScalar>::type>
+{
+    enum {
+      Transpose = StorageOrder==RowMajor
+    };
+    typedef typename conditional<Transpose,_RhsScalar,_LhsScalar>::type LhsScalar;
+    typedef typename conditional<Transpose,_LhsScalar,_RhsScalar>::type RhsScalar;
+    typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+
+    DenseIndex m_sizeA;
+    DenseIndex m_sizeB;
+    DenseIndex m_sizeW;
+
+  public:
+
+    gemm_blocking_space(DenseIndex rows, DenseIndex cols, DenseIndex depth)
+    {
+      this->m_mc = Transpose ? cols : rows;
+      this->m_nc = Transpose ? rows : cols;
+      this->m_kc = depth;
+
+      computeProductBlockingSizes<LhsScalar,RhsScalar,KcFactor>(this->m_kc, this->m_mc, this->m_nc);
+      m_sizeA = this->m_mc * this->m_kc;
+      m_sizeB = this->m_kc * this->m_nc;
+      m_sizeW = this->m_kc*Traits::WorkSpaceFactor;
+    }
+
+    void allocateA()
+    {
+      if(this->m_blockA==0)
+        this->m_blockA = aligned_new<LhsScalar>(m_sizeA);
+    }
+
+    void allocateB()
+    {
+      if(this->m_blockB==0)
+        this->m_blockB = aligned_new<RhsScalar>(m_sizeB);
+    }
+
+    void allocateW()
+    {
+      if(this->m_blockW==0)
+        this->m_blockW = aligned_new<RhsScalar>(m_sizeW);
+    }
+
+    void allocateAll()
+    {
+      allocateA();
+      allocateB();
+      allocateW();
+    }
+
+    ~gemm_blocking_space()
+    {
+      aligned_delete(this->m_blockA, m_sizeA);
+      aligned_delete(this->m_blockB, m_sizeB);
+      aligned_delete(this->m_blockW, m_sizeW);
+    }
+};
+
+} // end namespace internal
+
+template<typename Lhs, typename Rhs>
+class GeneralProduct<Lhs, Rhs, GemmProduct>
+  : public ProductBase<GeneralProduct<Lhs,Rhs,GemmProduct>, Lhs, Rhs>
+{
+    enum {
+      MaxDepthAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(Lhs::MaxColsAtCompileTime,Rhs::MaxRowsAtCompileTime)
+    };
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(GeneralProduct)
+    
+    typedef typename  Lhs::Scalar LhsScalar;
+    typedef typename  Rhs::Scalar RhsScalar;
+    typedef           Scalar      ResScalar;
+
+    GeneralProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
+    {
+#if !(defined(EIGEN_NO_STATIC_ASSERT) && defined(EIGEN_NO_DEBUG))
+      typedef internal::scalar_product_op<LhsScalar,RhsScalar> BinOp;
+      EIGEN_CHECK_BINARY_COMPATIBILIY(BinOp,LhsScalar,RhsScalar);
+#endif
+    }
+
+    template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
+    {
+      eigen_assert(dst.rows()==m_lhs.rows() && dst.cols()==m_rhs.cols());
+      if(m_lhs.cols()==0 || m_lhs.rows()==0 || m_rhs.cols()==0)
+        return;
+
+      typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(m_lhs);
+      typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(m_rhs);
+
+      Scalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(m_lhs)
+                                 * RhsBlasTraits::extractScalarFactor(m_rhs);
+
+      typedef internal::gemm_blocking_space<(Dest::Flags&RowMajorBit) ? RowMajor : ColMajor,LhsScalar,RhsScalar,
+              Dest::MaxRowsAtCompileTime,Dest::MaxColsAtCompileTime,MaxDepthAtCompileTime> BlockingType;
+
+      typedef internal::gemm_functor<
+        Scalar, Index,
+        internal::general_matrix_matrix_product<
+          Index,
+          LhsScalar, (_ActualLhsType::Flags&RowMajorBit) ? RowMajor : ColMajor, bool(LhsBlasTraits::NeedToConjugate),
+          RhsScalar, (_ActualRhsType::Flags&RowMajorBit) ? RowMajor : ColMajor, bool(RhsBlasTraits::NeedToConjugate),
+          (Dest::Flags&RowMajorBit) ? RowMajor : ColMajor>,
+        _ActualLhsType, _ActualRhsType, Dest, BlockingType> GemmFunctor;
+
+      BlockingType blocking(dst.rows(), dst.cols(), lhs.cols());
+
+      internal::parallelize_gemm<(Dest::MaxRowsAtCompileTime>32 || Dest::MaxRowsAtCompileTime==Dynamic)>(GemmFunctor(lhs, rhs, dst, actualAlpha, blocking), this->rows(), this->cols(), Dest::Flags&RowMajorBit);
+    }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_MATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularSolverMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularSolverMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularSolverMatrix.h	(revision 2476)
@@ -0,0 +1,332 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULAR_SOLVER_MATRIX_H
+#define EIGEN_TRIANGULAR_SOLVER_MATRIX_H
+
+namespace Eigen { 
+
+namespace internal {
+
+// if the rhs is row major, let's transpose the product
+template <typename Scalar, typename Index, int Side, int Mode, bool Conjugate, int TriStorageOrder>
+struct triangular_solve_matrix<Scalar,Index,Side,Mode,Conjugate,TriStorageOrder,RowMajor>
+{
+  static void run(
+    Index size, Index cols,
+    const Scalar*  tri, Index triStride,
+    Scalar* _other, Index otherStride,
+    level3_blocking<Scalar,Scalar>& blocking)
+  {
+    triangular_solve_matrix<
+      Scalar, Index, Side==OnTheLeft?OnTheRight:OnTheLeft,
+      (Mode&UnitDiag) | ((Mode&Upper) ? Lower : Upper),
+      NumTraits<Scalar>::IsComplex && Conjugate,
+      TriStorageOrder==RowMajor ? ColMajor : RowMajor, ColMajor>
+      ::run(size, cols, tri, triStride, _other, otherStride, blocking);
+  }
+};
+
+/* Optimized triangular solver with multiple right hand side and the triangular matrix on the left
+ */
+template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
+struct triangular_solve_matrix<Scalar,Index,OnTheLeft,Mode,Conjugate,TriStorageOrder,ColMajor>
+{
+  static EIGEN_DONT_INLINE void run(
+    Index size, Index otherSize,
+    const Scalar* _tri, Index triStride,
+    Scalar* _other, Index otherStride,
+    level3_blocking<Scalar,Scalar>& blocking);
+};
+template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
+EIGEN_DONT_INLINE void triangular_solve_matrix<Scalar,Index,OnTheLeft,Mode,Conjugate,TriStorageOrder,ColMajor>::run(
+    Index size, Index otherSize,
+    const Scalar* _tri, Index triStride,
+    Scalar* _other, Index otherStride,
+    level3_blocking<Scalar,Scalar>& blocking)
+  {
+    Index cols = otherSize;
+    const_blas_data_mapper<Scalar, Index, TriStorageOrder> tri(_tri,triStride);
+    blas_data_mapper<Scalar, Index, ColMajor> other(_other,otherStride);
+
+    typedef gebp_traits<Scalar,Scalar> Traits;
+    enum {
+      SmallPanelWidth   = EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
+      IsLower = (Mode&Lower) == Lower
+    };
+
+    Index kc = blocking.kc();                   // cache block size along the K direction
+    Index mc = (std::min)(size,blocking.mc());  // cache block size along the M direction
+
+    std::size_t sizeA = kc*mc;
+    std::size_t sizeB = kc*cols;
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockW, sizeW, blocking.blockW());
+
+    conj_if<Conjugate> conj;
+    gebp_kernel<Scalar, Scalar, Index, Traits::mr, Traits::nr, Conjugate, false> gebp_kernel;
+    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, TriStorageOrder> pack_lhs;
+    gemm_pack_rhs<Scalar, Index, Traits::nr, ColMajor, false, true> pack_rhs;
+
+    // the goal here is to subdivise the Rhs panels such that we keep some cache
+    // coherence when accessing the rhs elements
+    std::ptrdiff_t l1, l2;
+    manage_caching_sizes(GetAction, &l1, &l2);
+    Index subcols = cols>0 ? l2/(4 * sizeof(Scalar) *  std::max<Index>(otherStride,size)) : 0;
+    subcols = std::max<Index>((subcols/Traits::nr)*Traits::nr, Traits::nr);
+
+    for(Index k2=IsLower ? 0 : size;
+        IsLower ? k2<size : k2>0;
+        IsLower ? k2+=kc : k2-=kc)
+    {
+      const Index actual_kc = (std::min)(IsLower ? size-k2 : k2, kc);
+
+      // We have selected and packed a big horizontal panel R1 of rhs. Let B be the packed copy of this panel,
+      // and R2 the remaining part of rhs. The corresponding vertical panel of lhs is split into
+      // A11 (the triangular part) and A21 the remaining rectangular part.
+      // Then the high level algorithm is:
+      //  - B = R1                    => general block copy (done during the next step)
+      //  - R1 = A11^-1 B             => tricky part
+      //  - update B from the new R1  => actually this has to be performed continuously during the above step
+      //  - R2 -= A21 * B             => GEPP
+
+      // The tricky part: compute R1 = A11^-1 B while updating B from R1
+      // The idea is to split A11 into multiple small vertical panels.
+      // Each panel can be split into a small triangular part T1k which is processed without optimization,
+      // and the remaining small part T2k which is processed using gebp with appropriate block strides
+      for(Index j2=0; j2<cols; j2+=subcols)
+      {
+        Index actual_cols = (std::min)(cols-j2,subcols);
+        // for each small vertical panels [T1k^T, T2k^T]^T of lhs
+        for (Index k1=0; k1<actual_kc; k1+=SmallPanelWidth)
+        {
+          Index actualPanelWidth = std::min<Index>(actual_kc-k1, SmallPanelWidth);
+          // tr solve
+          for (Index k=0; k<actualPanelWidth; ++k)
+          {
+            // TODO write a small kernel handling this (can be shared with trsv)
+            Index i  = IsLower ? k2+k1+k : k2-k1-k-1;
+            Index rs = actualPanelWidth - k - 1; // remaining size
+            Index s  = TriStorageOrder==RowMajor ? (IsLower ? k2+k1 : i+1)
+                                                 :  IsLower ? i+1 : i-rs;
+
+            Scalar a = (Mode & UnitDiag) ? Scalar(1) : Scalar(1)/conj(tri(i,i));
+            for (Index j=j2; j<j2+actual_cols; ++j)
+            {
+              if (TriStorageOrder==RowMajor)
+              {
+                Scalar b(0);
+                const Scalar* l = &tri(i,s);
+                Scalar* r = &other(s,j);
+                for (Index i3=0; i3<k; ++i3)
+                  b += conj(l[i3]) * r[i3];
+
+                other(i,j) = (other(i,j) - b)*a;
+              }
+              else
+              {
+                Scalar b = (other(i,j) *= a);
+                Scalar* r = &other(s,j);
+                const Scalar* l = &tri(s,i);
+                for (Index i3=0;i3<rs;++i3)
+                  r[i3] -= b * conj(l[i3]);
+              }
+            }
+          }
+
+          Index lengthTarget = actual_kc-k1-actualPanelWidth;
+          Index startBlock   = IsLower ? k2+k1 : k2-k1-actualPanelWidth;
+          Index blockBOffset = IsLower ? k1 : lengthTarget;
+
+          // update the respective rows of B from other
+          pack_rhs(blockB+actual_kc*j2, &other(startBlock,j2), otherStride, actualPanelWidth, actual_cols, actual_kc, blockBOffset);
+
+          // GEBP
+          if (lengthTarget>0)
+          {
+            Index startTarget  = IsLower ? k2+k1+actualPanelWidth : k2-actual_kc;
+
+            pack_lhs(blockA, &tri(startTarget,startBlock), triStride, actualPanelWidth, lengthTarget);
+
+            gebp_kernel(&other(startTarget,j2), otherStride, blockA, blockB+actual_kc*j2, lengthTarget, actualPanelWidth, actual_cols, Scalar(-1),
+                        actualPanelWidth, actual_kc, 0, blockBOffset, blockW);
+          }
+        }
+      }
+      
+      // R2 -= A21 * B => GEPP
+      {
+        Index start = IsLower ? k2+kc : 0;
+        Index end   = IsLower ? size : k2-kc;
+        for(Index i2=start; i2<end; i2+=mc)
+        {
+          const Index actual_mc = (std::min)(mc,end-i2);
+          if (actual_mc>0)
+          {
+            pack_lhs(blockA, &tri(i2, IsLower ? k2 : k2-kc), triStride, actual_kc, actual_mc);
+
+            gebp_kernel(_other+i2, otherStride, blockA, blockB, actual_mc, actual_kc, cols, Scalar(-1), -1, -1, 0, 0, blockW);
+          }
+        }
+      }
+    }
+  }
+
+/* Optimized triangular solver with multiple left hand sides and the trinagular matrix on the right
+ */
+template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
+struct triangular_solve_matrix<Scalar,Index,OnTheRight,Mode,Conjugate,TriStorageOrder,ColMajor>
+{
+  static EIGEN_DONT_INLINE void run(
+    Index size, Index otherSize,
+    const Scalar* _tri, Index triStride,
+    Scalar* _other, Index otherStride,
+    level3_blocking<Scalar,Scalar>& blocking);
+};
+template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder>
+EIGEN_DONT_INLINE void triangular_solve_matrix<Scalar,Index,OnTheRight,Mode,Conjugate,TriStorageOrder,ColMajor>::run(
+    Index size, Index otherSize,
+    const Scalar* _tri, Index triStride,
+    Scalar* _other, Index otherStride,
+    level3_blocking<Scalar,Scalar>& blocking)
+  {
+    Index rows = otherSize;
+    const_blas_data_mapper<Scalar, Index, TriStorageOrder> rhs(_tri,triStride);
+    blas_data_mapper<Scalar, Index, ColMajor> lhs(_other,otherStride);
+
+    typedef gebp_traits<Scalar,Scalar> Traits;
+    enum {
+      RhsStorageOrder   = TriStorageOrder,
+      SmallPanelWidth   = EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
+      IsLower = (Mode&Lower) == Lower
+    };
+
+    Index kc = blocking.kc();                   // cache block size along the K direction
+    Index mc = (std::min)(rows,blocking.mc());  // cache block size along the M direction
+
+    std::size_t sizeA = kc*mc;
+    std::size_t sizeB = kc*size;
+    std::size_t sizeW = kc*Traits::WorkSpaceFactor;
+
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
+    ei_declare_aligned_stack_constructed_variable(Scalar, blockW, sizeW, blocking.blockW());
+
+    conj_if<Conjugate> conj;
+    gebp_kernel<Scalar,Scalar, Index, Traits::mr, Traits::nr, false, Conjugate> gebp_kernel;
+    gemm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder> pack_rhs;
+    gemm_pack_rhs<Scalar, Index, Traits::nr,RhsStorageOrder,false,true> pack_rhs_panel;
+    gemm_pack_lhs<Scalar, Index, Traits::mr, Traits::LhsProgress, ColMajor, false, true> pack_lhs_panel;
+
+    for(Index k2=IsLower ? size : 0;
+        IsLower ? k2>0 : k2<size;
+        IsLower ? k2-=kc : k2+=kc)
+    {
+      const Index actual_kc = (std::min)(IsLower ? k2 : size-k2, kc);
+      Index actual_k2 = IsLower ? k2-actual_kc : k2 ;
+
+      Index startPanel = IsLower ? 0 : k2+actual_kc;
+      Index rs = IsLower ? actual_k2 : size - actual_k2 - actual_kc;
+      Scalar* geb = blockB+actual_kc*actual_kc;
+
+      if (rs>0) pack_rhs(geb, &rhs(actual_k2,startPanel), triStride, actual_kc, rs);
+
+      // triangular packing (we only pack the panels off the diagonal,
+      // neglecting the blocks overlapping the diagonal
+      {
+        for (Index j2=0; j2<actual_kc; j2+=SmallPanelWidth)
+        {
+          Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
+          Index actual_j2 = actual_k2 + j2;
+          Index panelOffset = IsLower ? j2+actualPanelWidth : 0;
+          Index panelLength = IsLower ? actual_kc-j2-actualPanelWidth : j2;
+
+          if (panelLength>0)
+          pack_rhs_panel(blockB+j2*actual_kc,
+                         &rhs(actual_k2+panelOffset, actual_j2), triStride,
+                         panelLength, actualPanelWidth,
+                         actual_kc, panelOffset);
+        }
+      }
+
+      for(Index i2=0; i2<rows; i2+=mc)
+      {
+        const Index actual_mc = (std::min)(mc,rows-i2);
+
+        // triangular solver kernel
+        {
+          // for each small block of the diagonal (=> vertical panels of rhs)
+          for (Index j2 = IsLower
+                      ? (actual_kc - ((actual_kc%SmallPanelWidth) ? Index(actual_kc%SmallPanelWidth)
+                                                                  : Index(SmallPanelWidth)))
+                      : 0;
+               IsLower ? j2>=0 : j2<actual_kc;
+               IsLower ? j2-=SmallPanelWidth : j2+=SmallPanelWidth)
+          {
+            Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
+            Index absolute_j2 = actual_k2 + j2;
+            Index panelOffset = IsLower ? j2+actualPanelWidth : 0;
+            Index panelLength = IsLower ? actual_kc - j2 - actualPanelWidth : j2;
+
+            // GEBP
+            if(panelLength>0)
+            {
+              gebp_kernel(&lhs(i2,absolute_j2), otherStride,
+                          blockA, blockB+j2*actual_kc,
+                          actual_mc, panelLength, actualPanelWidth,
+                          Scalar(-1),
+                          actual_kc, actual_kc, // strides
+                          panelOffset, panelOffset, // offsets
+                          blockW);  // workspace
+            }
+
+            // unblocked triangular solve
+            for (Index k=0; k<actualPanelWidth; ++k)
+            {
+              Index j = IsLower ? absolute_j2+actualPanelWidth-k-1 : absolute_j2+k;
+
+              Scalar* r = &lhs(i2,j);
+              for (Index k3=0; k3<k; ++k3)
+              {
+                Scalar b = conj(rhs(IsLower ? j+1+k3 : absolute_j2+k3,j));
+                Scalar* a = &lhs(i2,IsLower ? j+1+k3 : absolute_j2+k3);
+                for (Index i=0; i<actual_mc; ++i)
+                  r[i] -= a[i] * b;
+              }
+              if((Mode & UnitDiag)==0)
+              {
+                Scalar b = conj(rhs(j,j));
+                for (Index i=0; i<actual_mc; ++i)
+                  r[i] /= b;
+              }
+            }
+
+            // pack the just computed part of lhs to A
+            pack_lhs_panel(blockA, _other+absolute_j2*otherStride+i2, otherStride,
+                           actualPanelWidth, actual_mc,
+                           actual_kc, j2);
+          }
+        }
+
+        if (rs>0)
+          gebp_kernel(_other+i2+startPanel*otherStride, otherStride, blockA, geb,
+                      actual_mc, actual_kc, rs, Scalar(-1),
+                      -1, -1, 0, 0, blockW);
+      }
+    }
+  }
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_SOLVER_MATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixVector_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixVector_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixVector_MKL.h	(revision 2476)
@@ -0,0 +1,131 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *   General matrix-vector product functionality based on ?GEMV.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_GENERAL_MATRIX_VECTOR_MKL_H
+#define EIGEN_GENERAL_MATRIX_VECTOR_MKL_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/**********************************************************************
+* This file implements general matrix-vector multiplication using BLAS
+* gemv function via partial specialization of
+* general_matrix_vector_product::run(..) method for float, double,
+* std::complex<float> and std::complex<double> types
+**********************************************************************/
+
+// gemv specialization
+
+template<typename Index, typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs>
+struct general_matrix_vector_product_gemv :
+  general_matrix_vector_product<Index,LhsScalar,LhsStorageOrder,ConjugateLhs,RhsScalar,ConjugateRhs,BuiltIn> {};
+
+#define EIGEN_MKL_GEMV_SPECIALIZE(Scalar) \
+template<typename Index, bool ConjugateLhs, bool ConjugateRhs> \
+struct general_matrix_vector_product<Index,Scalar,ColMajor,ConjugateLhs,Scalar,ConjugateRhs,Specialized> { \
+static void run( \
+  Index rows, Index cols, \
+  const Scalar* lhs, Index lhsStride, \
+  const Scalar* rhs, Index rhsIncr, \
+  Scalar* res, Index resIncr, Scalar alpha) \
+{ \
+  if (ConjugateLhs) { \
+    general_matrix_vector_product<Index,Scalar,ColMajor,ConjugateLhs,Scalar,ConjugateRhs,BuiltIn>::run( \
+      rows, cols, lhs, lhsStride, rhs, rhsIncr, res, resIncr, alpha); \
+  } else { \
+    general_matrix_vector_product_gemv<Index,Scalar,ColMajor,ConjugateLhs,Scalar,ConjugateRhs>::run( \
+      rows, cols, lhs, lhsStride, rhs, rhsIncr, res, resIncr, alpha); \
+  } \
+} \
+}; \
+template<typename Index, bool ConjugateLhs, bool ConjugateRhs> \
+struct general_matrix_vector_product<Index,Scalar,RowMajor,ConjugateLhs,Scalar,ConjugateRhs,Specialized> { \
+static void run( \
+  Index rows, Index cols, \
+  const Scalar* lhs, Index lhsStride, \
+  const Scalar* rhs, Index rhsIncr, \
+  Scalar* res, Index resIncr, Scalar alpha) \
+{ \
+    general_matrix_vector_product_gemv<Index,Scalar,RowMajor,ConjugateLhs,Scalar,ConjugateRhs>::run( \
+      rows, cols, lhs, lhsStride, rhs, rhsIncr, res, resIncr, alpha); \
+} \
+}; \
+
+EIGEN_MKL_GEMV_SPECIALIZE(double)
+EIGEN_MKL_GEMV_SPECIALIZE(float)
+EIGEN_MKL_GEMV_SPECIALIZE(dcomplex)
+EIGEN_MKL_GEMV_SPECIALIZE(scomplex)
+
+#define EIGEN_MKL_GEMV_SPECIALIZATION(EIGTYPE,MKLTYPE,MKLPREFIX) \
+template<typename Index, int LhsStorageOrder, bool ConjugateLhs, bool ConjugateRhs> \
+struct general_matrix_vector_product_gemv<Index,EIGTYPE,LhsStorageOrder,ConjugateLhs,EIGTYPE,ConjugateRhs> \
+{ \
+typedef Matrix<EIGTYPE,Dynamic,1,ColMajor> GEMVVector;\
+\
+static void run( \
+  Index rows, Index cols, \
+  const EIGTYPE* lhs, Index lhsStride, \
+  const EIGTYPE* rhs, Index rhsIncr, \
+  EIGTYPE* res, Index resIncr, EIGTYPE alpha) \
+{ \
+  MKL_INT m=rows, n=cols, lda=lhsStride, incx=rhsIncr, incy=resIncr; \
+  MKLTYPE alpha_, beta_; \
+  const EIGTYPE *x_ptr, myone(1); \
+  char trans=(LhsStorageOrder==ColMajor) ? 'N' : (ConjugateLhs) ? 'C' : 'T'; \
+  if (LhsStorageOrder==RowMajor) { \
+    m=cols; \
+    n=rows; \
+  }\
+  assign_scalar_eig2mkl(alpha_, alpha); \
+  assign_scalar_eig2mkl(beta_, myone); \
+  GEMVVector x_tmp; \
+  if (ConjugateRhs) { \
+    Map<const GEMVVector, 0, InnerStride<> > map_x(rhs,cols,1,InnerStride<>(incx)); \
+    x_tmp=map_x.conjugate(); \
+    x_ptr=x_tmp.data(); \
+    incx=1; \
+  } else x_ptr=rhs; \
+  MKLPREFIX##gemv(&trans, &m, &n, &alpha_, (const MKLTYPE*)lhs, &lda, (const MKLTYPE*)x_ptr, &incx, &beta_, (MKLTYPE*)res, &incy); \
+}\
+};
+
+EIGEN_MKL_GEMV_SPECIALIZATION(double,   double,        d)
+EIGEN_MKL_GEMV_SPECIALIZATION(float,    float,         s)
+EIGEN_MKL_GEMV_SPECIALIZATION(dcomplex, MKL_Complex16, z)
+EIGEN_MKL_GEMV_SPECIALIZATION(scomplex, MKL_Complex8,  c)
+
+} // end namespase internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_VECTOR_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h	(revision 2476)
@@ -0,0 +1,118 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *   General matrix-matrix product functionality based on ?GEMM.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_GENERAL_MATRIX_MATRIX_MKL_H
+#define EIGEN_GENERAL_MATRIX_MATRIX_MKL_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/**********************************************************************
+* This file implements general matrix-matrix multiplication using BLAS
+* gemm function via partial specialization of
+* general_matrix_matrix_product::run(..) method for float, double,
+* std::complex<float> and std::complex<double> types
+**********************************************************************/
+
+// gemm specialization
+
+#define GEMM_SPECIALIZATION(EIGTYPE, EIGPREFIX, MKLTYPE, MKLPREFIX) \
+template< \
+  typename Index, \
+  int LhsStorageOrder, bool ConjugateLhs, \
+  int RhsStorageOrder, bool ConjugateRhs> \
+struct general_matrix_matrix_product<Index,EIGTYPE,LhsStorageOrder,ConjugateLhs,EIGTYPE,RhsStorageOrder,ConjugateRhs,ColMajor> \
+{ \
+static void run(Index rows, Index cols, Index depth, \
+  const EIGTYPE* _lhs, Index lhsStride, \
+  const EIGTYPE* _rhs, Index rhsStride, \
+  EIGTYPE* res, Index resStride, \
+  EIGTYPE alpha, \
+  level3_blocking<EIGTYPE, EIGTYPE>& /*blocking*/, \
+  GemmParallelInfo<Index>* /*info = 0*/) \
+{ \
+  using std::conj; \
+\
+  char transa, transb; \
+  MKL_INT m, n, k, lda, ldb, ldc; \
+  const EIGTYPE *a, *b; \
+  MKLTYPE alpha_, beta_; \
+  MatrixX##EIGPREFIX a_tmp, b_tmp; \
+  EIGTYPE myone(1);\
+\
+/* Set transpose options */ \
+  transa = (LhsStorageOrder==RowMajor) ? ((ConjugateLhs) ? 'C' : 'T') : 'N'; \
+  transb = (RhsStorageOrder==RowMajor) ? ((ConjugateRhs) ? 'C' : 'T') : 'N'; \
+\
+/* Set m, n, k */ \
+  m = (MKL_INT)rows;  \
+  n = (MKL_INT)cols;  \
+  k = (MKL_INT)depth; \
+\
+/* Set alpha_ & beta_ */ \
+  assign_scalar_eig2mkl(alpha_, alpha); \
+  assign_scalar_eig2mkl(beta_, myone); \
+\
+/* Set lda, ldb, ldc */ \
+  lda = (MKL_INT)lhsStride; \
+  ldb = (MKL_INT)rhsStride; \
+  ldc = (MKL_INT)resStride; \
+\
+/* Set a, b, c */ \
+  if ((LhsStorageOrder==ColMajor) && (ConjugateLhs)) { \
+    Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > lhs(_lhs,m,k,OuterStride<>(lhsStride)); \
+    a_tmp = lhs.conjugate(); \
+    a = a_tmp.data(); \
+    lda = a_tmp.outerStride(); \
+  } else a = _lhs; \
+\
+  if ((RhsStorageOrder==ColMajor) && (ConjugateRhs)) { \
+    Map<const MatrixX##EIGPREFIX, 0, OuterStride<> > rhs(_rhs,k,n,OuterStride<>(rhsStride)); \
+    b_tmp = rhs.conjugate(); \
+    b = b_tmp.data(); \
+    ldb = b_tmp.outerStride(); \
+  } else b = _rhs; \
+\
+  MKLPREFIX##gemm(&transa, &transb, &m, &n, &k, &alpha_, (const MKLTYPE*)a, &lda, (const MKLTYPE*)b, &ldb, &beta_, (MKLTYPE*)res, &ldc); \
+}};
+
+GEMM_SPECIALIZATION(double,   d,  double,        d)
+GEMM_SPECIALIZATION(float,    f,  float,         s)
+GEMM_SPECIALIZATION(dcomplex, cd, MKL_Complex16, z)
+GEMM_SPECIALIZATION(scomplex, cf, MKL_Complex8,  c)
+
+} // end namespase internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_MATRIX_MATRIX_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h	(revision 2476)
@@ -0,0 +1,155 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *   Triangular matrix * matrix product functionality based on ?TRMM.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_TRIANGULAR_SOLVER_MATRIX_MKL_H
+#define EIGEN_TRIANGULAR_SOLVER_MATRIX_MKL_H
+
+namespace Eigen {
+
+namespace internal {
+
+// implements LeftSide op(triangular)^-1 * general
+#define EIGEN_MKL_TRSM_L(EIGTYPE, MKLTYPE, MKLPREFIX) \
+template <typename Index, int Mode, bool Conjugate, int TriStorageOrder> \
+struct triangular_solve_matrix<EIGTYPE,Index,OnTheLeft,Mode,Conjugate,TriStorageOrder,ColMajor> \
+{ \
+  enum { \
+    IsLower = (Mode&Lower) == Lower, \
+    IsUnitDiag  = (Mode&UnitDiag) ? 1 : 0, \
+    IsZeroDiag  = (Mode&ZeroDiag) ? 1 : 0, \
+    conjA = ((TriStorageOrder==ColMajor) && Conjugate) ? 1 : 0 \
+  }; \
+  static void run( \
+      Index size, Index otherSize, \
+      const EIGTYPE* _tri, Index triStride, \
+      EIGTYPE* _other, Index otherStride, level3_blocking<EIGTYPE,EIGTYPE>& /*blocking*/) \
+  { \
+   MKL_INT m = size, n = otherSize, lda, ldb; \
+   char side = 'L', uplo, diag='N', transa; \
+   /* Set alpha_ */ \
+   MKLTYPE alpha; \
+   EIGTYPE myone(1); \
+   assign_scalar_eig2mkl(alpha, myone); \
+   ldb = otherStride;\
+\
+   const EIGTYPE *a; \
+/* Set trans */ \
+   transa = (TriStorageOrder==RowMajor) ? ((Conjugate) ? 'C' : 'T') : 'N'; \
+/* Set uplo */ \
+   uplo = IsLower ? 'L' : 'U'; \
+   if (TriStorageOrder==RowMajor) uplo = (uplo == 'L') ? 'U' : 'L'; \
+/* Set a, lda */ \
+   typedef Matrix<EIGTYPE, Dynamic, Dynamic, TriStorageOrder> MatrixTri; \
+   Map<const MatrixTri, 0, OuterStride<> > tri(_tri,size,size,OuterStride<>(triStride)); \
+   MatrixTri a_tmp; \
+\
+   if (conjA) { \
+     a_tmp = tri.conjugate(); \
+     a = a_tmp.data(); \
+     lda = a_tmp.outerStride(); \
+   } else { \
+     a = _tri; \
+     lda = triStride; \
+   } \
+   if (IsUnitDiag) diag='U'; \
+/* call ?trsm*/ \
+   MKLPREFIX##trsm(&side, &uplo, &transa, &diag, &m, &n, &alpha, (const MKLTYPE*)a, &lda, (MKLTYPE*)_other, &ldb); \
+ } \
+};
+
+EIGEN_MKL_TRSM_L(double, double, d)
+EIGEN_MKL_TRSM_L(dcomplex, MKL_Complex16, z)
+EIGEN_MKL_TRSM_L(float, float, s)
+EIGEN_MKL_TRSM_L(scomplex, MKL_Complex8, c)
+
+
+// implements RightSide general * op(triangular)^-1
+#define EIGEN_MKL_TRSM_R(EIGTYPE, MKLTYPE, MKLPREFIX) \
+template <typename Index, int Mode, bool Conjugate, int TriStorageOrder> \
+struct triangular_solve_matrix<EIGTYPE,Index,OnTheRight,Mode,Conjugate,TriStorageOrder,ColMajor> \
+{ \
+  enum { \
+    IsLower = (Mode&Lower) == Lower, \
+    IsUnitDiag  = (Mode&UnitDiag) ? 1 : 0, \
+    IsZeroDiag  = (Mode&ZeroDiag) ? 1 : 0, \
+    conjA = ((TriStorageOrder==ColMajor) && Conjugate) ? 1 : 0 \
+  }; \
+  static void run( \
+      Index size, Index otherSize, \
+      const EIGTYPE* _tri, Index triStride, \
+      EIGTYPE* _other, Index otherStride, level3_blocking<EIGTYPE,EIGTYPE>& /*blocking*/) \
+  { \
+   MKL_INT m = otherSize, n = size, lda, ldb; \
+   char side = 'R', uplo, diag='N', transa; \
+   /* Set alpha_ */ \
+   MKLTYPE alpha; \
+   EIGTYPE myone(1); \
+   assign_scalar_eig2mkl(alpha, myone); \
+   ldb = otherStride;\
+\
+   const EIGTYPE *a; \
+/* Set trans */ \
+   transa = (TriStorageOrder==RowMajor) ? ((Conjugate) ? 'C' : 'T') : 'N'; \
+/* Set uplo */ \
+   uplo = IsLower ? 'L' : 'U'; \
+   if (TriStorageOrder==RowMajor) uplo = (uplo == 'L') ? 'U' : 'L'; \
+/* Set a, lda */ \
+   typedef Matrix<EIGTYPE, Dynamic, Dynamic, TriStorageOrder> MatrixTri; \
+   Map<const MatrixTri, 0, OuterStride<> > tri(_tri,size,size,OuterStride<>(triStride)); \
+   MatrixTri a_tmp; \
+\
+   if (conjA) { \
+     a_tmp = tri.conjugate(); \
+     a = a_tmp.data(); \
+     lda = a_tmp.outerStride(); \
+   } else { \
+     a = _tri; \
+     lda = triStride; \
+   } \
+   if (IsUnitDiag) diag='U'; \
+/* call ?trsm*/ \
+   MKLPREFIX##trsm(&side, &uplo, &transa, &diag, &m, &n, &alpha, (const MKLTYPE*)a, &lda, (MKLTYPE*)_other, &ldb); \
+   /*std::cout << "TRMS_L specialization!\n";*/ \
+ } \
+};
+
+EIGEN_MKL_TRSM_R(double, double, d)
+EIGEN_MKL_TRSM_R(dcomplex, MKL_Complex16, z)
+EIGEN_MKL_TRSM_R(float, float, s)
+EIGEN_MKL_TRSM_R(scomplex, MKL_Complex8, c)
+
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULAR_SOLVER_MATRIX_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointRank2Update.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointRank2Update.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointRank2Update.h	(revision 2476)
@@ -0,0 +1,93 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINTRANK2UPTADE_H
+#define EIGEN_SELFADJOINTRANK2UPTADE_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/* Optimized selfadjoint matrix += alpha * uv' + conj(alpha)*vu'
+ * It corresponds to the Level2 syr2 BLAS routine
+ */
+
+template<typename Scalar, typename Index, typename UType, typename VType, int UpLo>
+struct selfadjoint_rank2_update_selector;
+
+template<typename Scalar, typename Index, typename UType, typename VType>
+struct selfadjoint_rank2_update_selector<Scalar,Index,UType,VType,Lower>
+{
+  static void run(Scalar* mat, Index stride, const UType& u, const VType& v, const Scalar& alpha)
+  {
+    const Index size = u.size();
+    for (Index i=0; i<size; ++i)
+    {
+      Map<Matrix<Scalar,Dynamic,1> >(mat+stride*i+i, size-i) +=
+                        (numext::conj(alpha) * numext::conj(u.coeff(i))) * v.tail(size-i)
+                      + (alpha * numext::conj(v.coeff(i))) * u.tail(size-i);
+    }
+  }
+};
+
+template<typename Scalar, typename Index, typename UType, typename VType>
+struct selfadjoint_rank2_update_selector<Scalar,Index,UType,VType,Upper>
+{
+  static void run(Scalar* mat, Index stride, const UType& u, const VType& v, const Scalar& alpha)
+  {
+    const Index size = u.size();
+    for (Index i=0; i<size; ++i)
+      Map<Matrix<Scalar,Dynamic,1> >(mat+stride*i, i+1) +=
+                        (numext::conj(alpha)  * numext::conj(u.coeff(i))) * v.head(i+1)
+                      + (alpha * numext::conj(v.coeff(i))) * u.head(i+1);
+  }
+};
+
+template<bool Cond, typename T> struct conj_expr_if
+  : conditional<!Cond, const T&,
+      CwiseUnaryOp<scalar_conjugate_op<typename traits<T>::Scalar>,T> > {};
+
+} // end namespace internal
+
+template<typename MatrixType, unsigned int UpLo>
+template<typename DerivedU, typename DerivedV>
+SelfAdjointView<MatrixType,UpLo>& SelfAdjointView<MatrixType,UpLo>
+::rankUpdate(const MatrixBase<DerivedU>& u, const MatrixBase<DerivedV>& v, const Scalar& alpha)
+{
+  typedef internal::blas_traits<DerivedU> UBlasTraits;
+  typedef typename UBlasTraits::DirectLinearAccessType ActualUType;
+  typedef typename internal::remove_all<ActualUType>::type _ActualUType;
+  typename internal::add_const_on_value_type<ActualUType>::type actualU = UBlasTraits::extract(u.derived());
+
+  typedef internal::blas_traits<DerivedV> VBlasTraits;
+  typedef typename VBlasTraits::DirectLinearAccessType ActualVType;
+  typedef typename internal::remove_all<ActualVType>::type _ActualVType;
+  typename internal::add_const_on_value_type<ActualVType>::type actualV = VBlasTraits::extract(v.derived());
+
+  // If MatrixType is row major, then we use the routine for lower triangular in the upper triangular case and
+  // vice versa, and take the complex conjugate of all coefficients and vector entries.
+
+  enum { IsRowMajor = (internal::traits<MatrixType>::Flags&RowMajorBit) ? 1 : 0 };
+  Scalar actualAlpha = alpha * UBlasTraits::extractScalarFactor(u.derived())
+                             * numext::conj(VBlasTraits::extractScalarFactor(v.derived()));
+  if (IsRowMajor)
+    actualAlpha = numext::conj(actualAlpha);
+
+  internal::selfadjoint_rank2_update_selector<Scalar, Index,
+    typename internal::remove_all<typename internal::conj_expr_if<IsRowMajor ^ UBlasTraits::NeedToConjugate,_ActualUType>::type>::type,
+    typename internal::remove_all<typename internal::conj_expr_if<IsRowMajor ^ VBlasTraits::NeedToConjugate,_ActualVType>::type>::type,
+    (IsRowMajor ? int(UpLo==Upper ? Lower : Upper) : UpLo)>
+    ::run(_expression().const_cast_derived().data(),_expression().outerStride(),actualU,actualV,actualAlpha);
+
+  return *this;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINTRANK2UPTADE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointProduct.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointProduct.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/SelfadjointProduct.h	(revision 2476)
@@ -0,0 +1,123 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINT_PRODUCT_H
+#define EIGEN_SELFADJOINT_PRODUCT_H
+
+/**********************************************************************
+* This file implements a self adjoint product: C += A A^T updating only
+* half of the selfadjoint matrix C.
+* It corresponds to the level 3 SYRK and level 2 SYR Blas routines.
+**********************************************************************/
+
+namespace Eigen { 
+
+
+template<typename Scalar, typename Index, int UpLo, bool ConjLhs, bool ConjRhs>
+struct selfadjoint_rank1_update<Scalar,Index,ColMajor,UpLo,ConjLhs,ConjRhs>
+{
+  static void run(Index size, Scalar* mat, Index stride, const Scalar* vecX, const Scalar* vecY, const Scalar& alpha)
+  {
+    internal::conj_if<ConjRhs> cj;
+    typedef Map<const Matrix<Scalar,Dynamic,1> > OtherMap;
+    typedef typename internal::conditional<ConjLhs,typename OtherMap::ConjugateReturnType,const OtherMap&>::type ConjLhsType;
+    for (Index i=0; i<size; ++i)
+    {
+      Map<Matrix<Scalar,Dynamic,1> >(mat+stride*i+(UpLo==Lower ? i : 0), (UpLo==Lower ? size-i : (i+1)))
+          += (alpha * cj(vecY[i])) * ConjLhsType(OtherMap(vecX+(UpLo==Lower ? i : 0),UpLo==Lower ? size-i : (i+1)));
+    }
+  }
+};
+
+template<typename Scalar, typename Index, int UpLo, bool ConjLhs, bool ConjRhs>
+struct selfadjoint_rank1_update<Scalar,Index,RowMajor,UpLo,ConjLhs,ConjRhs>
+{
+  static void run(Index size, Scalar* mat, Index stride, const Scalar* vecX, const Scalar* vecY, const Scalar& alpha)
+  {
+    selfadjoint_rank1_update<Scalar,Index,ColMajor,UpLo==Lower?Upper:Lower,ConjRhs,ConjLhs>::run(size,mat,stride,vecY,vecX,alpha);
+  }
+};
+
+template<typename MatrixType, typename OtherType, int UpLo, bool OtherIsVector = OtherType::IsVectorAtCompileTime>
+struct selfadjoint_product_selector;
+
+template<typename MatrixType, typename OtherType, int UpLo>
+struct selfadjoint_product_selector<MatrixType,OtherType,UpLo,true>
+{
+  static void run(MatrixType& mat, const OtherType& other, const typename MatrixType::Scalar& alpha)
+  {
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+    typedef internal::blas_traits<OtherType> OtherBlasTraits;
+    typedef typename OtherBlasTraits::DirectLinearAccessType ActualOtherType;
+    typedef typename internal::remove_all<ActualOtherType>::type _ActualOtherType;
+    typename internal::add_const_on_value_type<ActualOtherType>::type actualOther = OtherBlasTraits::extract(other.derived());
+
+    Scalar actualAlpha = alpha * OtherBlasTraits::extractScalarFactor(other.derived());
+
+    enum {
+      StorageOrder = (internal::traits<MatrixType>::Flags&RowMajorBit) ? RowMajor : ColMajor,
+      UseOtherDirectly = _ActualOtherType::InnerStrideAtCompileTime==1
+    };
+    internal::gemv_static_vector_if<Scalar,OtherType::SizeAtCompileTime,OtherType::MaxSizeAtCompileTime,!UseOtherDirectly> static_other;
+
+    ei_declare_aligned_stack_constructed_variable(Scalar, actualOtherPtr, other.size(),
+      (UseOtherDirectly ? const_cast<Scalar*>(actualOther.data()) : static_other.data()));
+      
+    if(!UseOtherDirectly)
+      Map<typename _ActualOtherType::PlainObject>(actualOtherPtr, actualOther.size()) = actualOther;
+    
+    selfadjoint_rank1_update<Scalar,Index,StorageOrder,UpLo,
+                              OtherBlasTraits::NeedToConjugate  && NumTraits<Scalar>::IsComplex,
+                            (!OtherBlasTraits::NeedToConjugate) && NumTraits<Scalar>::IsComplex>
+          ::run(other.size(), mat.data(), mat.outerStride(), actualOtherPtr, actualOtherPtr, actualAlpha);
+  }
+};
+
+template<typename MatrixType, typename OtherType, int UpLo>
+struct selfadjoint_product_selector<MatrixType,OtherType,UpLo,false>
+{
+  static void run(MatrixType& mat, const OtherType& other, const typename MatrixType::Scalar& alpha)
+  {
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+    typedef internal::blas_traits<OtherType> OtherBlasTraits;
+    typedef typename OtherBlasTraits::DirectLinearAccessType ActualOtherType;
+    typedef typename internal::remove_all<ActualOtherType>::type _ActualOtherType;
+    typename internal::add_const_on_value_type<ActualOtherType>::type actualOther = OtherBlasTraits::extract(other.derived());
+
+    Scalar actualAlpha = alpha * OtherBlasTraits::extractScalarFactor(other.derived());
+
+    enum { IsRowMajor = (internal::traits<MatrixType>::Flags&RowMajorBit) ? 1 : 0 };
+
+    internal::general_matrix_matrix_triangular_product<Index,
+      Scalar, _ActualOtherType::Flags&RowMajorBit ? RowMajor : ColMajor,   OtherBlasTraits::NeedToConjugate  && NumTraits<Scalar>::IsComplex,
+      Scalar, _ActualOtherType::Flags&RowMajorBit ? ColMajor : RowMajor, (!OtherBlasTraits::NeedToConjugate) && NumTraits<Scalar>::IsComplex,
+      MatrixType::Flags&RowMajorBit ? RowMajor : ColMajor, UpLo>
+      ::run(mat.cols(), actualOther.cols(),
+            &actualOther.coeffRef(0,0), actualOther.outerStride(), &actualOther.coeffRef(0,0), actualOther.outerStride(),
+            mat.data(), mat.outerStride(), actualAlpha);
+  }
+};
+
+// high level API
+
+template<typename MatrixType, unsigned int UpLo>
+template<typename DerivedU>
+SelfAdjointView<MatrixType,UpLo>& SelfAdjointView<MatrixType,UpLo>
+::rankUpdate(const MatrixBase<DerivedU>& u, const Scalar& alpha)
+{
+  selfadjoint_product_selector<MatrixType,DerivedU,UpLo>::run(_expression().const_cast_derived(), u.derived(), alpha);
+
+  return *this;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINT_PRODUCT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralBlockPanelKernel.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralBlockPanelKernel.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/products/GeneralBlockPanelKernel.h	(revision 2476)
@@ -0,0 +1,1341 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_BLOCK_PANEL_H
+#define EIGEN_GENERAL_BLOCK_PANEL_H
+
+namespace Eigen { 
+  
+namespace internal {
+
+template<typename _LhsScalar, typename _RhsScalar, bool _ConjLhs=false, bool _ConjRhs=false>
+class gebp_traits;
+
+
+/** \internal \returns b if a<=0, and returns a otherwise. */
+inline std::ptrdiff_t manage_caching_sizes_helper(std::ptrdiff_t a, std::ptrdiff_t b)
+{
+  return a<=0 ? b : a;
+}
+
+/** \internal */
+inline void manage_caching_sizes(Action action, std::ptrdiff_t* l1=0, std::ptrdiff_t* l2=0)
+{
+  static std::ptrdiff_t m_l1CacheSize = 0;
+  static std::ptrdiff_t m_l2CacheSize = 0;
+  if(m_l2CacheSize==0)
+  {
+    m_l1CacheSize = manage_caching_sizes_helper(queryL1CacheSize(),8 * 1024);
+    m_l2CacheSize = manage_caching_sizes_helper(queryTopLevelCacheSize(),1*1024*1024);
+  }
+  
+  if(action==SetAction)
+  {
+    // set the cpu cache size and cache all block sizes from a global cache size in byte
+    eigen_internal_assert(l1!=0 && l2!=0);
+    m_l1CacheSize = *l1;
+    m_l2CacheSize = *l2;
+  }
+  else if(action==GetAction)
+  {
+    eigen_internal_assert(l1!=0 && l2!=0);
+    *l1 = m_l1CacheSize;
+    *l2 = m_l2CacheSize;
+  }
+  else
+  {
+    eigen_internal_assert(false);
+  }
+}
+
+/** \brief Computes the blocking parameters for a m x k times k x n matrix product
+  *
+  * \param[in,out] k Input: the third dimension of the product. Output: the blocking size along the same dimension.
+  * \param[in,out] m Input: the number of rows of the left hand side. Output: the blocking size along the same dimension.
+  * \param[in,out] n Input: the number of columns of the right hand side. Output: the blocking size along the same dimension.
+  *
+  * Given a m x k times k x n matrix product of scalar types \c LhsScalar and \c RhsScalar,
+  * this function computes the blocking size parameters along the respective dimensions
+  * for matrix products and related algorithms. The blocking sizes depends on various
+  * parameters:
+  * - the L1 and L2 cache sizes,
+  * - the register level blocking sizes defined by gebp_traits,
+  * - the number of scalars that fit into a packet (when vectorization is enabled).
+  *
+  * \sa setCpuCacheSizes */
+template<typename LhsScalar, typename RhsScalar, int KcFactor, typename SizeType>
+void computeProductBlockingSizes(SizeType& k, SizeType& m, SizeType& n)
+{
+  EIGEN_UNUSED_VARIABLE(n);
+  // Explanations:
+  // Let's recall the product algorithms form kc x nc horizontal panels B' on the rhs and
+  // mc x kc blocks A' on the lhs. A' has to fit into L2 cache. Moreover, B' is processed
+  // per kc x nr vertical small panels where nr is the blocking size along the n dimension
+  // at the register level. For vectorization purpose, these small vertical panels are unpacked,
+  // e.g., each coefficient is replicated to fit a packet. This small vertical panel has to
+  // stay in L1 cache.
+  std::ptrdiff_t l1, l2;
+
+  typedef gebp_traits<LhsScalar,RhsScalar> Traits;
+  enum {
+    kdiv = KcFactor * 2 * Traits::nr
+         * Traits::RhsProgress * sizeof(RhsScalar),
+    mr = gebp_traits<LhsScalar,RhsScalar>::mr,
+    mr_mask = (0xffffffff/mr)*mr
+  };
+
+  manage_caching_sizes(GetAction, &l1, &l2);
+  k = std::min<SizeType>(k, l1/kdiv);
+  SizeType _m = k>0 ? l2/(4 * sizeof(LhsScalar) * k) : 0;
+  if(_m<m) m = _m & mr_mask;
+}
+
+template<typename LhsScalar, typename RhsScalar, typename SizeType>
+inline void computeProductBlockingSizes(SizeType& k, SizeType& m, SizeType& n)
+{
+  computeProductBlockingSizes<LhsScalar,RhsScalar,1>(k, m, n);
+}
+
+#ifdef EIGEN_HAS_FUSE_CJMADD
+  #define MADD(CJ,A,B,C,T)  C = CJ.pmadd(A,B,C);
+#else
+
+  // FIXME (a bit overkill maybe ?)
+
+  template<typename CJ, typename A, typename B, typename C, typename T> struct gebp_madd_selector {
+    EIGEN_ALWAYS_INLINE static void run(const CJ& cj, A& a, B& b, C& c, T& /*t*/)
+    {
+      c = cj.pmadd(a,b,c);
+    }
+  };
+
+  template<typename CJ, typename T> struct gebp_madd_selector<CJ,T,T,T,T> {
+    EIGEN_ALWAYS_INLINE static void run(const CJ& cj, T& a, T& b, T& c, T& t)
+    {
+      t = b; t = cj.pmul(a,t); c = padd(c,t);
+    }
+  };
+
+  template<typename CJ, typename A, typename B, typename C, typename T>
+  EIGEN_STRONG_INLINE void gebp_madd(const CJ& cj, A& a, B& b, C& c, T& t)
+  {
+    gebp_madd_selector<CJ,A,B,C,T>::run(cj,a,b,c,t);
+  }
+
+  #define MADD(CJ,A,B,C,T)  gebp_madd(CJ,A,B,C,T);
+//   #define MADD(CJ,A,B,C,T)  T = B; T = CJ.pmul(A,T); C = padd(C,T);
+#endif
+
+/* Vectorization logic
+ *  real*real: unpack rhs to constant packets, ...
+ * 
+ *  cd*cd : unpack rhs to (b_r,b_r), (b_i,b_i), mul to get (a_r b_r,a_i b_r) (a_r b_i,a_i b_i),
+ *          storing each res packet into two packets (2x2),
+ *          at the end combine them: swap the second and addsub them 
+ *  cf*cf : same but with 2x4 blocks
+ *  cplx*real : unpack rhs to constant packets, ...
+ *  real*cplx : load lhs as (a0,a0,a1,a1), and mul as usual
+ */
+template<typename _LhsScalar, typename _RhsScalar, bool _ConjLhs, bool _ConjRhs>
+class gebp_traits
+{
+public:
+  typedef _LhsScalar LhsScalar;
+  typedef _RhsScalar RhsScalar;
+  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+
+  enum {
+    ConjLhs = _ConjLhs,
+    ConjRhs = _ConjRhs,
+    Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable,
+    LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+    RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+    ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1,
+    
+    NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
+
+    // register block size along the N direction (must be either 2 or 4)
+    nr = NumberOfRegisters/4,
+
+    // register block size along the M direction (currently, this one cannot be modified)
+    mr = 2 * LhsPacketSize,
+    
+    WorkSpaceFactor = nr * RhsPacketSize,
+
+    LhsProgress = LhsPacketSize,
+    RhsProgress = RhsPacketSize
+  };
+
+  typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
+  typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
+  typedef typename packet_traits<ResScalar>::type  _ResPacket;
+
+  typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+  typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+  typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+
+  typedef ResPacket AccPacket;
+  
+  EIGEN_STRONG_INLINE void initAcc(AccPacket& p)
+  {
+    p = pset1<ResPacket>(ResScalar(0));
+  }
+
+  EIGEN_STRONG_INLINE void unpackRhs(DenseIndex n, const RhsScalar* rhs, RhsScalar* b)
+  {
+    for(DenseIndex k=0; k<n; k++)
+      pstore1<RhsPacket>(&b[k*RhsPacketSize], rhs[k]);
+  }
+
+  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacket& dest) const
+  {
+    dest = pload<RhsPacket>(b);
+  }
+
+  EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
+  {
+    dest = pload<LhsPacket>(a);
+  }
+
+  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, AccPacket& c, AccPacket& tmp) const
+  {
+    tmp = b; tmp = pmul(a,tmp); c = padd(c,tmp);
+  }
+
+  EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha, ResPacket& r) const
+  {
+    r = pmadd(c,alpha,r);
+  }
+
+protected:
+//   conj_helper<LhsScalar,RhsScalar,ConjLhs,ConjRhs> cj;
+//   conj_helper<LhsPacket,RhsPacket,ConjLhs,ConjRhs> pcj;
+};
+
+template<typename RealScalar, bool _ConjLhs>
+class gebp_traits<std::complex<RealScalar>, RealScalar, _ConjLhs, false>
+{
+public:
+  typedef std::complex<RealScalar> LhsScalar;
+  typedef RealScalar RhsScalar;
+  typedef typename scalar_product_traits<LhsScalar, RhsScalar>::ReturnType ResScalar;
+
+  enum {
+    ConjLhs = _ConjLhs,
+    ConjRhs = false,
+    Vectorizable = packet_traits<LhsScalar>::Vectorizable && packet_traits<RhsScalar>::Vectorizable,
+    LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+    RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+    ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1,
+    
+    NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
+    nr = NumberOfRegisters/4,
+    mr = 2 * LhsPacketSize,
+    WorkSpaceFactor = nr*RhsPacketSize,
+
+    LhsProgress = LhsPacketSize,
+    RhsProgress = RhsPacketSize
+  };
+
+  typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
+  typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
+  typedef typename packet_traits<ResScalar>::type  _ResPacket;
+
+  typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+  typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+  typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+
+  typedef ResPacket AccPacket;
+
+  EIGEN_STRONG_INLINE void initAcc(AccPacket& p)
+  {
+    p = pset1<ResPacket>(ResScalar(0));
+  }
+
+  EIGEN_STRONG_INLINE void unpackRhs(DenseIndex n, const RhsScalar* rhs, RhsScalar* b)
+  {
+    for(DenseIndex k=0; k<n; k++)
+      pstore1<RhsPacket>(&b[k*RhsPacketSize], rhs[k]);
+  }
+
+  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacket& dest) const
+  {
+    dest = pload<RhsPacket>(b);
+  }
+
+  EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
+  {
+    dest = pload<LhsPacket>(a);
+  }
+
+  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp) const
+  {
+    madd_impl(a, b, c, tmp, typename conditional<Vectorizable,true_type,false_type>::type());
+  }
+
+  EIGEN_STRONG_INLINE void madd_impl(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp, const true_type&) const
+  {
+    tmp = b; tmp = pmul(a.v,tmp); c.v = padd(c.v,tmp);
+  }
+
+  EIGEN_STRONG_INLINE void madd_impl(const LhsScalar& a, const RhsScalar& b, ResScalar& c, RhsScalar& /*tmp*/, const false_type&) const
+  {
+    c += a * b;
+  }
+
+  EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha, ResPacket& r) const
+  {
+    r = cj.pmadd(c,alpha,r);
+  }
+
+protected:
+  conj_helper<ResPacket,ResPacket,ConjLhs,false> cj;
+};
+
+template<typename RealScalar, bool _ConjLhs, bool _ConjRhs>
+class gebp_traits<std::complex<RealScalar>, std::complex<RealScalar>, _ConjLhs, _ConjRhs >
+{
+public:
+  typedef std::complex<RealScalar>  Scalar;
+  typedef std::complex<RealScalar>  LhsScalar;
+  typedef std::complex<RealScalar>  RhsScalar;
+  typedef std::complex<RealScalar>  ResScalar;
+  
+  enum {
+    ConjLhs = _ConjLhs,
+    ConjRhs = _ConjRhs,
+    Vectorizable = packet_traits<RealScalar>::Vectorizable
+                && packet_traits<Scalar>::Vectorizable,
+    RealPacketSize  = Vectorizable ? packet_traits<RealScalar>::size : 1,
+    ResPacketSize   = Vectorizable ? packet_traits<ResScalar>::size : 1,
+    
+    nr = 2,
+    mr = 2 * ResPacketSize,
+    WorkSpaceFactor = Vectorizable ? 2*nr*RealPacketSize : nr,
+
+    LhsProgress = ResPacketSize,
+    RhsProgress = Vectorizable ? 2*ResPacketSize : 1
+  };
+  
+  typedef typename packet_traits<RealScalar>::type RealPacket;
+  typedef typename packet_traits<Scalar>::type     ScalarPacket;
+  struct DoublePacket
+  {
+    RealPacket first;
+    RealPacket second;
+  };
+
+  typedef typename conditional<Vectorizable,RealPacket,  Scalar>::type LhsPacket;
+  typedef typename conditional<Vectorizable,DoublePacket,Scalar>::type RhsPacket;
+  typedef typename conditional<Vectorizable,ScalarPacket,Scalar>::type ResPacket;
+  typedef typename conditional<Vectorizable,DoublePacket,Scalar>::type AccPacket;
+  
+  EIGEN_STRONG_INLINE void initAcc(Scalar& p) { p = Scalar(0); }
+
+  EIGEN_STRONG_INLINE void initAcc(DoublePacket& p)
+  {
+    p.first   = pset1<RealPacket>(RealScalar(0));
+    p.second  = pset1<RealPacket>(RealScalar(0));
+  }
+
+  /* Unpack the rhs coeff such that each complex coefficient is spread into
+   * two packects containing respectively the real and imaginary coefficient
+   * duplicated as many time as needed: (x+iy) => [x, ..., x] [y, ..., y]
+   */
+  EIGEN_STRONG_INLINE void unpackRhs(DenseIndex n, const Scalar* rhs, Scalar* b)
+  {
+    for(DenseIndex k=0; k<n; k++)
+    {
+      if(Vectorizable)
+      {
+        pstore1<RealPacket>((RealScalar*)&b[k*ResPacketSize*2+0],             real(rhs[k]));
+        pstore1<RealPacket>((RealScalar*)&b[k*ResPacketSize*2+ResPacketSize], imag(rhs[k]));
+      }
+      else
+        b[k] = rhs[k];
+    }
+  }
+
+  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, ResPacket& dest) const { dest = *b; }
+
+  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, DoublePacket& dest) const
+  {
+    dest.first  = pload<RealPacket>((const RealScalar*)b);
+    dest.second = pload<RealPacket>((const RealScalar*)(b+ResPacketSize));
+  }
+
+  // nothing special here
+  EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
+  {
+    dest = pload<LhsPacket>((const typename unpacket_traits<LhsPacket>::type*)(a));
+  }
+
+  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, DoublePacket& c, RhsPacket& /*tmp*/) const
+  {
+    c.first   = padd(pmul(a,b.first), c.first);
+    c.second  = padd(pmul(a,b.second),c.second);
+  }
+
+  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, ResPacket& c, RhsPacket& /*tmp*/) const
+  {
+    c = cj.pmadd(a,b,c);
+  }
+  
+  EIGEN_STRONG_INLINE void acc(const Scalar& c, const Scalar& alpha, Scalar& r) const { r += alpha * c; }
+  
+  EIGEN_STRONG_INLINE void acc(const DoublePacket& c, const ResPacket& alpha, ResPacket& r) const
+  {
+    // assemble c
+    ResPacket tmp;
+    if((!ConjLhs)&&(!ConjRhs))
+    {
+      tmp = pcplxflip(pconj(ResPacket(c.second)));
+      tmp = padd(ResPacket(c.first),tmp);
+    }
+    else if((!ConjLhs)&&(ConjRhs))
+    {
+      tmp = pconj(pcplxflip(ResPacket(c.second)));
+      tmp = padd(ResPacket(c.first),tmp);
+    }
+    else if((ConjLhs)&&(!ConjRhs))
+    {
+      tmp = pcplxflip(ResPacket(c.second));
+      tmp = padd(pconj(ResPacket(c.first)),tmp);
+    }
+    else if((ConjLhs)&&(ConjRhs))
+    {
+      tmp = pcplxflip(ResPacket(c.second));
+      tmp = psub(pconj(ResPacket(c.first)),tmp);
+    }
+    
+    r = pmadd(tmp,alpha,r);
+  }
+
+protected:
+  conj_helper<LhsScalar,RhsScalar,ConjLhs,ConjRhs> cj;
+};
+
+template<typename RealScalar, bool _ConjRhs>
+class gebp_traits<RealScalar, std::complex<RealScalar>, false, _ConjRhs >
+{
+public:
+  typedef std::complex<RealScalar>  Scalar;
+  typedef RealScalar  LhsScalar;
+  typedef Scalar      RhsScalar;
+  typedef Scalar      ResScalar;
+
+  enum {
+    ConjLhs = false,
+    ConjRhs = _ConjRhs,
+    Vectorizable = packet_traits<RealScalar>::Vectorizable
+                && packet_traits<Scalar>::Vectorizable,
+    LhsPacketSize = Vectorizable ? packet_traits<LhsScalar>::size : 1,
+    RhsPacketSize = Vectorizable ? packet_traits<RhsScalar>::size : 1,
+    ResPacketSize = Vectorizable ? packet_traits<ResScalar>::size : 1,
+    
+    NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
+    nr = 4,
+    mr = 2*ResPacketSize,
+    WorkSpaceFactor = nr*RhsPacketSize,
+
+    LhsProgress = ResPacketSize,
+    RhsProgress = ResPacketSize
+  };
+
+  typedef typename packet_traits<LhsScalar>::type  _LhsPacket;
+  typedef typename packet_traits<RhsScalar>::type  _RhsPacket;
+  typedef typename packet_traits<ResScalar>::type  _ResPacket;
+
+  typedef typename conditional<Vectorizable,_LhsPacket,LhsScalar>::type LhsPacket;
+  typedef typename conditional<Vectorizable,_RhsPacket,RhsScalar>::type RhsPacket;
+  typedef typename conditional<Vectorizable,_ResPacket,ResScalar>::type ResPacket;
+
+  typedef ResPacket AccPacket;
+
+  EIGEN_STRONG_INLINE void initAcc(AccPacket& p)
+  {
+    p = pset1<ResPacket>(ResScalar(0));
+  }
+
+  EIGEN_STRONG_INLINE void unpackRhs(DenseIndex n, const RhsScalar* rhs, RhsScalar* b)
+  {
+    for(DenseIndex k=0; k<n; k++)
+      pstore1<RhsPacket>(&b[k*RhsPacketSize], rhs[k]);
+  }
+
+  EIGEN_STRONG_INLINE void loadRhs(const RhsScalar* b, RhsPacket& dest) const
+  {
+    dest = pload<RhsPacket>(b);
+  }
+
+  EIGEN_STRONG_INLINE void loadLhs(const LhsScalar* a, LhsPacket& dest) const
+  {
+    dest = ploaddup<LhsPacket>(a);
+  }
+
+  EIGEN_STRONG_INLINE void madd(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp) const
+  {
+    madd_impl(a, b, c, tmp, typename conditional<Vectorizable,true_type,false_type>::type());
+  }
+
+  EIGEN_STRONG_INLINE void madd_impl(const LhsPacket& a, const RhsPacket& b, AccPacket& c, RhsPacket& tmp, const true_type&) const
+  {
+    tmp = b; tmp.v = pmul(a,tmp.v); c = padd(c,tmp);
+  }
+
+  EIGEN_STRONG_INLINE void madd_impl(const LhsScalar& a, const RhsScalar& b, ResScalar& c, RhsScalar& /*tmp*/, const false_type&) const
+  {
+    c += a * b;
+  }
+
+  EIGEN_STRONG_INLINE void acc(const AccPacket& c, const ResPacket& alpha, ResPacket& r) const
+  {
+    r = cj.pmadd(alpha,c,r);
+  }
+
+protected:
+  conj_helper<ResPacket,ResPacket,false,ConjRhs> cj;
+};
+
+/* optimized GEneral packed Block * packed Panel product kernel
+ *
+ * Mixing type logic: C += A * B
+ *  |  A  |  B  | comments
+ *  |real |cplx | no vectorization yet, would require to pack A with duplication
+ *  |cplx |real | easy vectorization
+ */
+template<typename LhsScalar, typename RhsScalar, typename Index, int mr, int nr, bool ConjugateLhs, bool ConjugateRhs>
+struct gebp_kernel
+{
+  typedef gebp_traits<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> Traits;
+  typedef typename Traits::ResScalar ResScalar;
+  typedef typename Traits::LhsPacket LhsPacket;
+  typedef typename Traits::RhsPacket RhsPacket;
+  typedef typename Traits::ResPacket ResPacket;
+  typedef typename Traits::AccPacket AccPacket;
+
+  enum {
+    Vectorizable  = Traits::Vectorizable,
+    LhsProgress   = Traits::LhsProgress,
+    RhsProgress   = Traits::RhsProgress,
+    ResPacketSize = Traits::ResPacketSize
+  };
+
+  EIGEN_DONT_INLINE
+  void operator()(ResScalar* res, Index resStride, const LhsScalar* blockA, const RhsScalar* blockB, Index rows, Index depth, Index cols, ResScalar alpha,
+                  Index strideA=-1, Index strideB=-1, Index offsetA=0, Index offsetB=0, RhsScalar* unpackedB=0);
+};
+
+template<typename LhsScalar, typename RhsScalar, typename Index, int mr, int nr, bool ConjugateLhs, bool ConjugateRhs>
+EIGEN_DONT_INLINE
+void gebp_kernel<LhsScalar,RhsScalar,Index,mr,nr,ConjugateLhs,ConjugateRhs>
+  ::operator()(ResScalar* res, Index resStride, const LhsScalar* blockA, const RhsScalar* blockB, Index rows, Index depth, Index cols, ResScalar alpha,
+               Index strideA, Index strideB, Index offsetA, Index offsetB, RhsScalar* unpackedB)
+  {
+    Traits traits;
+    
+    if(strideA==-1) strideA = depth;
+    if(strideB==-1) strideB = depth;
+    conj_helper<LhsScalar,RhsScalar,ConjugateLhs,ConjugateRhs> cj;
+//     conj_helper<LhsPacket,RhsPacket,ConjugateLhs,ConjugateRhs> pcj;
+    Index packet_cols = (cols/nr) * nr;
+    const Index peeled_mc = (rows/mr)*mr;
+    // FIXME:
+    const Index peeled_mc2 = peeled_mc + (rows-peeled_mc >= LhsProgress ? LhsProgress : 0);
+    const Index peeled_kc = (depth/4)*4;
+
+    if(unpackedB==0)
+      unpackedB = const_cast<RhsScalar*>(blockB - strideB * nr * RhsProgress);
+
+    // loops on each micro vertical panel of rhs (depth x nr)
+    for(Index j2=0; j2<packet_cols; j2+=nr)
+    {
+      traits.unpackRhs(depth*nr,&blockB[j2*strideB+offsetB*nr],unpackedB); 
+
+      // loops on each largest micro horizontal panel of lhs (mr x depth)
+      // => we select a mr x nr micro block of res which is entirely
+      //    stored into mr/packet_size x nr registers.
+      for(Index i=0; i<peeled_mc; i+=mr)
+      {
+        const LhsScalar* blA = &blockA[i*strideA+offsetA*mr];
+        prefetch(&blA[0]);
+
+        // gets res block as register
+        AccPacket C0, C1, C2, C3, C4, C5, C6, C7;
+                  traits.initAcc(C0);
+                  traits.initAcc(C1);
+        if(nr==4) traits.initAcc(C2);
+        if(nr==4) traits.initAcc(C3);
+                  traits.initAcc(C4);
+                  traits.initAcc(C5);
+        if(nr==4) traits.initAcc(C6);
+        if(nr==4) traits.initAcc(C7);
+
+        ResScalar* r0 = &res[(j2+0)*resStride + i];
+        ResScalar* r1 = r0 + resStride;
+        ResScalar* r2 = r1 + resStride;
+        ResScalar* r3 = r2 + resStride;
+
+        prefetch(r0+16);
+        prefetch(r1+16);
+        prefetch(r2+16);
+        prefetch(r3+16);
+
+        // performs "inner" product
+        // TODO let's check wether the folowing peeled loop could not be
+        //      optimized via optimal prefetching from one loop to the other
+        const RhsScalar* blB = unpackedB;
+        for(Index k=0; k<peeled_kc; k+=4)
+        {
+          if(nr==2)
+          {
+            LhsPacket A0, A1;
+            RhsPacket B_0;
+            RhsPacket T0;
+            
+EIGEN_ASM_COMMENT("mybegin2");
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadLhs(&blA[1*LhsProgress], A1);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B_0);
+            traits.madd(A0,B_0,C1,T0);
+            traits.madd(A1,B_0,C5,B_0);
+
+            traits.loadLhs(&blA[2*LhsProgress], A0);
+            traits.loadLhs(&blA[3*LhsProgress], A1);
+            traits.loadRhs(&blB[2*RhsProgress], B_0);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[3*RhsProgress], B_0);
+            traits.madd(A0,B_0,C1,T0);
+            traits.madd(A1,B_0,C5,B_0);
+
+            traits.loadLhs(&blA[4*LhsProgress], A0);
+            traits.loadLhs(&blA[5*LhsProgress], A1);
+            traits.loadRhs(&blB[4*RhsProgress], B_0);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[5*RhsProgress], B_0);
+            traits.madd(A0,B_0,C1,T0);
+            traits.madd(A1,B_0,C5,B_0);
+
+            traits.loadLhs(&blA[6*LhsProgress], A0);
+            traits.loadLhs(&blA[7*LhsProgress], A1);
+            traits.loadRhs(&blB[6*RhsProgress], B_0);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[7*RhsProgress], B_0);
+            traits.madd(A0,B_0,C1,T0);
+            traits.madd(A1,B_0,C5,B_0);
+EIGEN_ASM_COMMENT("myend");
+          }
+          else
+          {
+EIGEN_ASM_COMMENT("mybegin4");
+            LhsPacket A0, A1;
+            RhsPacket B_0, B1, B2, B3;
+            RhsPacket T0;
+            
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadLhs(&blA[1*LhsProgress], A1);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B1);
+
+            traits.madd(A0,B_0,C0,T0);
+            traits.loadRhs(&blB[2*RhsProgress], B2);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[3*RhsProgress], B3);
+            traits.loadRhs(&blB[4*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,T0);
+            traits.madd(A1,B1,C5,B1);
+            traits.loadRhs(&blB[5*RhsProgress], B1);
+            traits.madd(A0,B2,C2,T0);
+            traits.madd(A1,B2,C6,B2);
+            traits.loadRhs(&blB[6*RhsProgress], B2);
+            traits.madd(A0,B3,C3,T0);
+            traits.loadLhs(&blA[2*LhsProgress], A0);
+            traits.madd(A1,B3,C7,B3);
+            traits.loadLhs(&blA[3*LhsProgress], A1);
+            traits.loadRhs(&blB[7*RhsProgress], B3);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[8*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,T0);
+            traits.madd(A1,B1,C5,B1);
+            traits.loadRhs(&blB[9*RhsProgress], B1);
+            traits.madd(A0,B2,C2,T0);
+            traits.madd(A1,B2,C6,B2);
+            traits.loadRhs(&blB[10*RhsProgress], B2);
+            traits.madd(A0,B3,C3,T0);
+            traits.loadLhs(&blA[4*LhsProgress], A0);
+            traits.madd(A1,B3,C7,B3);
+            traits.loadLhs(&blA[5*LhsProgress], A1);
+            traits.loadRhs(&blB[11*RhsProgress], B3);
+
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[12*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,T0);
+            traits.madd(A1,B1,C5,B1);
+            traits.loadRhs(&blB[13*RhsProgress], B1);
+            traits.madd(A0,B2,C2,T0);
+            traits.madd(A1,B2,C6,B2);
+            traits.loadRhs(&blB[14*RhsProgress], B2);
+            traits.madd(A0,B3,C3,T0);
+            traits.loadLhs(&blA[6*LhsProgress], A0);
+            traits.madd(A1,B3,C7,B3);
+            traits.loadLhs(&blA[7*LhsProgress], A1);
+            traits.loadRhs(&blB[15*RhsProgress], B3);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.madd(A0,B1,C1,T0);
+            traits.madd(A1,B1,C5,B1);
+            traits.madd(A0,B2,C2,T0);
+            traits.madd(A1,B2,C6,B2);
+            traits.madd(A0,B3,C3,T0);
+            traits.madd(A1,B3,C7,B3);
+          }
+
+          blB += 4*nr*RhsProgress;
+          blA += 4*mr;
+        }
+        // process remaining peeled loop
+        for(Index k=peeled_kc; k<depth; k++)
+        {
+          if(nr==2)
+          {
+            LhsPacket A0, A1;
+            RhsPacket B_0;
+            RhsPacket T0;
+
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadLhs(&blA[1*LhsProgress], A1);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.madd(A0,B_0,C0,T0);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B_0);
+            traits.madd(A0,B_0,C1,T0);
+            traits.madd(A1,B_0,C5,B_0);
+          }
+          else
+          {
+            LhsPacket A0, A1;
+            RhsPacket B_0, B1, B2, B3;
+            RhsPacket T0;
+
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadLhs(&blA[1*LhsProgress], A1);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B1);
+
+            traits.madd(A0,B_0,C0,T0);
+            traits.loadRhs(&blB[2*RhsProgress], B2);
+            traits.madd(A1,B_0,C4,B_0);
+            traits.loadRhs(&blB[3*RhsProgress], B3);
+            traits.madd(A0,B1,C1,T0);
+            traits.madd(A1,B1,C5,B1);
+            traits.madd(A0,B2,C2,T0);
+            traits.madd(A1,B2,C6,B2);
+            traits.madd(A0,B3,C3,T0);
+            traits.madd(A1,B3,C7,B3);
+          }
+
+          blB += nr*RhsProgress;
+          blA += mr;
+        }
+
+        if(nr==4)
+        {
+          ResPacket R0, R1, R2, R3, R4, R5, R6;
+          ResPacket alphav = pset1<ResPacket>(alpha);
+
+          R0 = ploadu<ResPacket>(r0);
+          R1 = ploadu<ResPacket>(r1);
+          R2 = ploadu<ResPacket>(r2);
+          R3 = ploadu<ResPacket>(r3);
+          R4 = ploadu<ResPacket>(r0 + ResPacketSize);
+          R5 = ploadu<ResPacket>(r1 + ResPacketSize);
+          R6 = ploadu<ResPacket>(r2 + ResPacketSize);
+          traits.acc(C0, alphav, R0);
+          pstoreu(r0, R0);
+          R0 = ploadu<ResPacket>(r3 + ResPacketSize);
+
+          traits.acc(C1, alphav, R1);
+          traits.acc(C2, alphav, R2);
+          traits.acc(C3, alphav, R3);
+          traits.acc(C4, alphav, R4);
+          traits.acc(C5, alphav, R5);
+          traits.acc(C6, alphav, R6);
+          traits.acc(C7, alphav, R0);
+          
+          pstoreu(r1, R1);
+          pstoreu(r2, R2);
+          pstoreu(r3, R3);
+          pstoreu(r0 + ResPacketSize, R4);
+          pstoreu(r1 + ResPacketSize, R5);
+          pstoreu(r2 + ResPacketSize, R6);
+          pstoreu(r3 + ResPacketSize, R0);
+        }
+        else
+        {
+          ResPacket R0, R1, R4;
+          ResPacket alphav = pset1<ResPacket>(alpha);
+
+          R0 = ploadu<ResPacket>(r0);
+          R1 = ploadu<ResPacket>(r1);
+          R4 = ploadu<ResPacket>(r0 + ResPacketSize);
+          traits.acc(C0, alphav, R0);
+          pstoreu(r0, R0);
+          R0 = ploadu<ResPacket>(r1 + ResPacketSize);
+          traits.acc(C1, alphav, R1);
+          traits.acc(C4, alphav, R4);
+          traits.acc(C5, alphav, R0);
+          pstoreu(r1, R1);
+          pstoreu(r0 + ResPacketSize, R4);
+          pstoreu(r1 + ResPacketSize, R0);
+        }
+        
+      }
+      
+      if(rows-peeled_mc>=LhsProgress)
+      {
+        Index i = peeled_mc;
+        const LhsScalar* blA = &blockA[i*strideA+offsetA*LhsProgress];
+        prefetch(&blA[0]);
+
+        // gets res block as register
+        AccPacket C0, C1, C2, C3;
+                  traits.initAcc(C0);
+                  traits.initAcc(C1);
+        if(nr==4) traits.initAcc(C2);
+        if(nr==4) traits.initAcc(C3);
+
+        // performs "inner" product
+        const RhsScalar* blB = unpackedB;
+        for(Index k=0; k<peeled_kc; k+=4)
+        {
+          if(nr==2)
+          {
+            LhsPacket A0;
+            RhsPacket B_0, B1;
+
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B1);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.loadRhs(&blB[2*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.loadLhs(&blA[1*LhsProgress], A0);
+            traits.loadRhs(&blB[3*RhsProgress], B1);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.loadRhs(&blB[4*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.loadLhs(&blA[2*LhsProgress], A0);
+            traits.loadRhs(&blB[5*RhsProgress], B1);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.loadRhs(&blB[6*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.loadLhs(&blA[3*LhsProgress], A0);
+            traits.loadRhs(&blB[7*RhsProgress], B1);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.madd(A0,B1,C1,B1);
+          }
+          else
+          {
+            LhsPacket A0;
+            RhsPacket B_0, B1, B2, B3;
+
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B1);
+
+            traits.madd(A0,B_0,C0,B_0);
+            traits.loadRhs(&blB[2*RhsProgress], B2);
+            traits.loadRhs(&blB[3*RhsProgress], B3);
+            traits.loadRhs(&blB[4*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.loadRhs(&blB[5*RhsProgress], B1);
+            traits.madd(A0,B2,C2,B2);
+            traits.loadRhs(&blB[6*RhsProgress], B2);
+            traits.madd(A0,B3,C3,B3);
+            traits.loadLhs(&blA[1*LhsProgress], A0);
+            traits.loadRhs(&blB[7*RhsProgress], B3);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.loadRhs(&blB[8*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.loadRhs(&blB[9*RhsProgress], B1);
+            traits.madd(A0,B2,C2,B2);
+            traits.loadRhs(&blB[10*RhsProgress], B2);
+            traits.madd(A0,B3,C3,B3);
+            traits.loadLhs(&blA[2*LhsProgress], A0);
+            traits.loadRhs(&blB[11*RhsProgress], B3);
+
+            traits.madd(A0,B_0,C0,B_0);
+            traits.loadRhs(&blB[12*RhsProgress], B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.loadRhs(&blB[13*RhsProgress], B1);
+            traits.madd(A0,B2,C2,B2);
+            traits.loadRhs(&blB[14*RhsProgress], B2);
+            traits.madd(A0,B3,C3,B3);
+
+            traits.loadLhs(&blA[3*LhsProgress], A0);
+            traits.loadRhs(&blB[15*RhsProgress], B3);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.madd(A0,B2,C2,B2);
+            traits.madd(A0,B3,C3,B3);
+          }
+
+          blB += nr*4*RhsProgress;
+          blA += 4*LhsProgress;
+        }
+        // process remaining peeled loop
+        for(Index k=peeled_kc; k<depth; k++)
+        {
+          if(nr==2)
+          {
+            LhsPacket A0;
+            RhsPacket B_0, B1;
+
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B1);
+            traits.madd(A0,B_0,C0,B_0);
+            traits.madd(A0,B1,C1,B1);
+          }
+          else
+          {
+            LhsPacket A0;
+            RhsPacket B_0, B1, B2, B3;
+
+            traits.loadLhs(&blA[0*LhsProgress], A0);
+            traits.loadRhs(&blB[0*RhsProgress], B_0);
+            traits.loadRhs(&blB[1*RhsProgress], B1);
+            traits.loadRhs(&blB[2*RhsProgress], B2);
+            traits.loadRhs(&blB[3*RhsProgress], B3);
+
+            traits.madd(A0,B_0,C0,B_0);
+            traits.madd(A0,B1,C1,B1);
+            traits.madd(A0,B2,C2,B2);
+            traits.madd(A0,B3,C3,B3);
+          }
+
+          blB += nr*RhsProgress;
+          blA += LhsProgress;
+        }
+
+        ResPacket R0, R1, R2, R3;
+        ResPacket alphav = pset1<ResPacket>(alpha);
+
+        ResScalar* r0 = &res[(j2+0)*resStride + i];
+        ResScalar* r1 = r0 + resStride;
+        ResScalar* r2 = r1 + resStride;
+        ResScalar* r3 = r2 + resStride;
+
+                  R0 = ploadu<ResPacket>(r0);
+                  R1 = ploadu<ResPacket>(r1);
+        if(nr==4) R2 = ploadu<ResPacket>(r2);
+        if(nr==4) R3 = ploadu<ResPacket>(r3);
+
+                  traits.acc(C0, alphav, R0);
+                  traits.acc(C1, alphav, R1);
+        if(nr==4) traits.acc(C2, alphav, R2);
+        if(nr==4) traits.acc(C3, alphav, R3);
+
+                  pstoreu(r0, R0);
+                  pstoreu(r1, R1);
+        if(nr==4) pstoreu(r2, R2);
+        if(nr==4) pstoreu(r3, R3);
+      }
+      for(Index i=peeled_mc2; i<rows; i++)
+      {
+        const LhsScalar* blA = &blockA[i*strideA+offsetA];
+        prefetch(&blA[0]);
+
+        // gets a 1 x nr res block as registers
+        ResScalar C0(0), C1(0), C2(0), C3(0);
+        // TODO directly use blockB ???
+        const RhsScalar* blB = &blockB[j2*strideB+offsetB*nr];
+        for(Index k=0; k<depth; k++)
+        {
+          if(nr==2)
+          {
+            LhsScalar A0;
+            RhsScalar B_0, B1;
+
+            A0 = blA[k];
+            B_0 = blB[0];
+            B1 = blB[1];
+            MADD(cj,A0,B_0,C0,B_0);
+            MADD(cj,A0,B1,C1,B1);
+          }
+          else
+          {
+            LhsScalar A0;
+            RhsScalar B_0, B1, B2, B3;
+
+            A0 = blA[k];
+            B_0 = blB[0];
+            B1 = blB[1];
+            B2 = blB[2];
+            B3 = blB[3];
+
+            MADD(cj,A0,B_0,C0,B_0);
+            MADD(cj,A0,B1,C1,B1);
+            MADD(cj,A0,B2,C2,B2);
+            MADD(cj,A0,B3,C3,B3);
+          }
+
+          blB += nr;
+        }
+                  res[(j2+0)*resStride + i] += alpha*C0;
+                  res[(j2+1)*resStride + i] += alpha*C1;
+        if(nr==4) res[(j2+2)*resStride + i] += alpha*C2;
+        if(nr==4) res[(j2+3)*resStride + i] += alpha*C3;
+      }
+    }
+    // process remaining rhs/res columns one at a time
+    // => do the same but with nr==1
+    for(Index j2=packet_cols; j2<cols; j2++)
+    {
+      // unpack B
+      traits.unpackRhs(depth, &blockB[j2*strideB+offsetB], unpackedB);
+
+      for(Index i=0; i<peeled_mc; i+=mr)
+      {
+        const LhsScalar* blA = &blockA[i*strideA+offsetA*mr];
+        prefetch(&blA[0]);
+
+        // TODO move the res loads to the stores
+
+        // get res block as registers
+        AccPacket C0, C4;
+        traits.initAcc(C0);
+        traits.initAcc(C4);
+
+        const RhsScalar* blB = unpackedB;
+        for(Index k=0; k<depth; k++)
+        {
+          LhsPacket A0, A1;
+          RhsPacket B_0;
+          RhsPacket T0;
+
+          traits.loadLhs(&blA[0*LhsProgress], A0);
+          traits.loadLhs(&blA[1*LhsProgress], A1);
+          traits.loadRhs(&blB[0*RhsProgress], B_0);
+          traits.madd(A0,B_0,C0,T0);
+          traits.madd(A1,B_0,C4,B_0);
+
+          blB += RhsProgress;
+          blA += 2*LhsProgress;
+        }
+        ResPacket R0, R4;
+        ResPacket alphav = pset1<ResPacket>(alpha);
+
+        ResScalar* r0 = &res[(j2+0)*resStride + i];
+
+        R0 = ploadu<ResPacket>(r0);
+        R4 = ploadu<ResPacket>(r0+ResPacketSize);
+
+        traits.acc(C0, alphav, R0);
+        traits.acc(C4, alphav, R4);
+
+        pstoreu(r0,               R0);
+        pstoreu(r0+ResPacketSize, R4);
+      }
+      if(rows-peeled_mc>=LhsProgress)
+      {
+        Index i = peeled_mc;
+        const LhsScalar* blA = &blockA[i*strideA+offsetA*LhsProgress];
+        prefetch(&blA[0]);
+
+        AccPacket C0;
+        traits.initAcc(C0);
+
+        const RhsScalar* blB = unpackedB;
+        for(Index k=0; k<depth; k++)
+        {
+          LhsPacket A0;
+          RhsPacket B_0;
+          traits.loadLhs(blA, A0);
+          traits.loadRhs(blB, B_0);
+          traits.madd(A0, B_0, C0, B_0);
+          blB += RhsProgress;
+          blA += LhsProgress;
+        }
+
+        ResPacket alphav = pset1<ResPacket>(alpha);
+        ResPacket R0 = ploadu<ResPacket>(&res[(j2+0)*resStride + i]);
+        traits.acc(C0, alphav, R0);
+        pstoreu(&res[(j2+0)*resStride + i], R0);
+      }
+      for(Index i=peeled_mc2; i<rows; i++)
+      {
+        const LhsScalar* blA = &blockA[i*strideA+offsetA];
+        prefetch(&blA[0]);
+
+        // gets a 1 x 1 res block as registers
+        ResScalar C0(0);
+        // FIXME directly use blockB ??
+        const RhsScalar* blB = &blockB[j2*strideB+offsetB];
+        for(Index k=0; k<depth; k++)
+        {
+          LhsScalar A0 = blA[k];
+          RhsScalar B_0 = blB[k];
+          MADD(cj, A0, B_0, C0, B_0);
+        }
+        res[(j2+0)*resStride + i] += alpha*C0;
+      }
+    }
+  }
+
+
+#undef CJMADD
+
+// pack a block of the lhs
+// The traversal is as follow (mr==4):
+//   0  4  8 12 ...
+//   1  5  9 13 ...
+//   2  6 10 14 ...
+//   3  7 11 15 ...
+//
+//  16 20 24 28 ...
+//  17 21 25 29 ...
+//  18 22 26 30 ...
+//  19 23 27 31 ...
+//
+//  32 33 34 35 ...
+//  36 36 38 39 ...
+template<typename Scalar, typename Index, int Pack1, int Pack2, int StorageOrder, bool Conjugate, bool PanelMode>
+struct gemm_pack_lhs
+{
+  EIGEN_DONT_INLINE void operator()(Scalar* blockA, const Scalar* EIGEN_RESTRICT _lhs, Index lhsStride, Index depth, Index rows, Index stride=0, Index offset=0);
+};
+
+template<typename Scalar, typename Index, int Pack1, int Pack2, int StorageOrder, bool Conjugate, bool PanelMode>
+EIGEN_DONT_INLINE void gemm_pack_lhs<Scalar, Index, Pack1, Pack2, StorageOrder, Conjugate, PanelMode>
+  ::operator()(Scalar* blockA, const Scalar* EIGEN_RESTRICT _lhs, Index lhsStride, Index depth, Index rows, Index stride, Index offset)
+{
+  typedef typename packet_traits<Scalar>::type Packet;
+  enum { PacketSize = packet_traits<Scalar>::size };
+
+  EIGEN_ASM_COMMENT("EIGEN PRODUCT PACK LHS");
+  EIGEN_UNUSED_VARIABLE(stride)
+  EIGEN_UNUSED_VARIABLE(offset)
+  eigen_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride));
+  eigen_assert( (StorageOrder==RowMajor) || ((Pack1%PacketSize)==0 && Pack1<=4*PacketSize) );
+  conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
+  const_blas_data_mapper<Scalar, Index, StorageOrder> lhs(_lhs,lhsStride);
+  Index count = 0;
+  Index peeled_mc = (rows/Pack1)*Pack1;
+  for(Index i=0; i<peeled_mc; i+=Pack1)
+  {
+    if(PanelMode) count += Pack1 * offset;
+
+    if(StorageOrder==ColMajor)
+    {
+      for(Index k=0; k<depth; k++)
+      {
+        Packet A, B, C, D;
+        if(Pack1>=1*PacketSize) A = ploadu<Packet>(&lhs(i+0*PacketSize, k));
+        if(Pack1>=2*PacketSize) B = ploadu<Packet>(&lhs(i+1*PacketSize, k));
+        if(Pack1>=3*PacketSize) C = ploadu<Packet>(&lhs(i+2*PacketSize, k));
+        if(Pack1>=4*PacketSize) D = ploadu<Packet>(&lhs(i+3*PacketSize, k));
+        if(Pack1>=1*PacketSize) { pstore(blockA+count, cj.pconj(A)); count+=PacketSize; }
+        if(Pack1>=2*PacketSize) { pstore(blockA+count, cj.pconj(B)); count+=PacketSize; }
+        if(Pack1>=3*PacketSize) { pstore(blockA+count, cj.pconj(C)); count+=PacketSize; }
+        if(Pack1>=4*PacketSize) { pstore(blockA+count, cj.pconj(D)); count+=PacketSize; }
+      }
+    }
+    else
+    {
+      for(Index k=0; k<depth; k++)
+      {
+        // TODO add a vectorized transpose here
+        Index w=0;
+        for(; w<Pack1-3; w+=4)
+        {
+          Scalar a(cj(lhs(i+w+0, k))),
+                  b(cj(lhs(i+w+1, k))),
+                  c(cj(lhs(i+w+2, k))),
+                  d(cj(lhs(i+w+3, k)));
+          blockA[count++] = a;
+          blockA[count++] = b;
+          blockA[count++] = c;
+          blockA[count++] = d;
+        }
+        if(Pack1%4)
+          for(;w<Pack1;++w)
+            blockA[count++] = cj(lhs(i+w, k));
+      }
+    }
+    if(PanelMode) count += Pack1 * (stride-offset-depth);
+  }
+  if(rows-peeled_mc>=Pack2)
+  {
+    if(PanelMode) count += Pack2*offset;
+    for(Index k=0; k<depth; k++)
+      for(Index w=0; w<Pack2; w++)
+        blockA[count++] = cj(lhs(peeled_mc+w, k));
+    if(PanelMode) count += Pack2 * (stride-offset-depth);
+    peeled_mc += Pack2;
+  }
+  for(Index i=peeled_mc; i<rows; i++)
+  {
+    if(PanelMode) count += offset;
+    for(Index k=0; k<depth; k++)
+      blockA[count++] = cj(lhs(i, k));
+    if(PanelMode) count += (stride-offset-depth);
+  }
+}
+
+// copy a complete panel of the rhs
+// this version is optimized for column major matrices
+// The traversal order is as follow: (nr==4):
+//  0  1  2  3   12 13 14 15   24 27
+//  4  5  6  7   16 17 18 19   25 28
+//  8  9 10 11   20 21 22 23   26 29
+//  .  .  .  .    .  .  .  .    .  .
+template<typename Scalar, typename Index, int nr, bool Conjugate, bool PanelMode>
+struct gemm_pack_rhs<Scalar, Index, nr, ColMajor, Conjugate, PanelMode>
+{
+  typedef typename packet_traits<Scalar>::type Packet;
+  enum { PacketSize = packet_traits<Scalar>::size };
+  EIGEN_DONT_INLINE void operator()(Scalar* blockB, const Scalar* rhs, Index rhsStride, Index depth, Index cols, Index stride=0, Index offset=0);
+};
+
+template<typename Scalar, typename Index, int nr, bool Conjugate, bool PanelMode>
+EIGEN_DONT_INLINE void gemm_pack_rhs<Scalar, Index, nr, ColMajor, Conjugate, PanelMode>
+  ::operator()(Scalar* blockB, const Scalar* rhs, Index rhsStride, Index depth, Index cols, Index stride, Index offset)
+{
+  EIGEN_ASM_COMMENT("EIGEN PRODUCT PACK RHS COLMAJOR");
+  EIGEN_UNUSED_VARIABLE(stride)
+  EIGEN_UNUSED_VARIABLE(offset)
+  eigen_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride));
+  conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
+  Index packet_cols = (cols/nr) * nr;
+  Index count = 0;
+  for(Index j2=0; j2<packet_cols; j2+=nr)
+  {
+    // skip what we have before
+    if(PanelMode) count += nr * offset;
+    const Scalar* b0 = &rhs[(j2+0)*rhsStride];
+    const Scalar* b1 = &rhs[(j2+1)*rhsStride];
+    const Scalar* b2 = &rhs[(j2+2)*rhsStride];
+    const Scalar* b3 = &rhs[(j2+3)*rhsStride];
+    for(Index k=0; k<depth; k++)
+    {
+                blockB[count+0] = cj(b0[k]);
+                blockB[count+1] = cj(b1[k]);
+      if(nr==4) blockB[count+2] = cj(b2[k]);
+      if(nr==4) blockB[count+3] = cj(b3[k]);
+      count += nr;
+    }
+    // skip what we have after
+    if(PanelMode) count += nr * (stride-offset-depth);
+  }
+
+  // copy the remaining columns one at a time (nr==1)
+  for(Index j2=packet_cols; j2<cols; ++j2)
+  {
+    if(PanelMode) count += offset;
+    const Scalar* b0 = &rhs[(j2+0)*rhsStride];
+    for(Index k=0; k<depth; k++)
+    {
+      blockB[count] = cj(b0[k]);
+      count += 1;
+    }
+    if(PanelMode) count += (stride-offset-depth);
+  }
+}
+
+// this version is optimized for row major matrices
+template<typename Scalar, typename Index, int nr, bool Conjugate, bool PanelMode>
+struct gemm_pack_rhs<Scalar, Index, nr, RowMajor, Conjugate, PanelMode>
+{
+  enum { PacketSize = packet_traits<Scalar>::size };
+  EIGEN_DONT_INLINE void operator()(Scalar* blockB, const Scalar* rhs, Index rhsStride, Index depth, Index cols, Index stride=0, Index offset=0);
+};
+
+template<typename Scalar, typename Index, int nr, bool Conjugate, bool PanelMode>
+EIGEN_DONT_INLINE void gemm_pack_rhs<Scalar, Index, nr, RowMajor, Conjugate, PanelMode>
+  ::operator()(Scalar* blockB, const Scalar* rhs, Index rhsStride, Index depth, Index cols, Index stride, Index offset)
+{
+  EIGEN_ASM_COMMENT("EIGEN PRODUCT PACK RHS ROWMAJOR");
+  EIGEN_UNUSED_VARIABLE(stride)
+  EIGEN_UNUSED_VARIABLE(offset)
+  eigen_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride));
+  conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
+  Index packet_cols = (cols/nr) * nr;
+  Index count = 0;
+  for(Index j2=0; j2<packet_cols; j2+=nr)
+  {
+    // skip what we have before
+    if(PanelMode) count += nr * offset;
+    for(Index k=0; k<depth; k++)
+    {
+      const Scalar* b0 = &rhs[k*rhsStride + j2];
+                blockB[count+0] = cj(b0[0]);
+                blockB[count+1] = cj(b0[1]);
+      if(nr==4) blockB[count+2] = cj(b0[2]);
+      if(nr==4) blockB[count+3] = cj(b0[3]);
+      count += nr;
+    }
+    // skip what we have after
+    if(PanelMode) count += nr * (stride-offset-depth);
+  }
+  // copy the remaining columns one at a time (nr==1)
+  for(Index j2=packet_cols; j2<cols; ++j2)
+  {
+    if(PanelMode) count += offset;
+    const Scalar* b0 = &rhs[j2];
+    for(Index k=0; k<depth; k++)
+    {
+      blockB[count] = cj(b0[k*rhsStride]);
+      count += 1;
+    }
+    if(PanelMode) count += stride-offset-depth;
+  }
+}
+
+} // end namespace internal
+
+/** \returns the currently set level 1 cpu cache size (in bytes) used to estimate the ideal blocking size parameters.
+  * \sa setCpuCacheSize */
+inline std::ptrdiff_t l1CacheSize()
+{
+  std::ptrdiff_t l1, l2;
+  internal::manage_caching_sizes(GetAction, &l1, &l2);
+  return l1;
+}
+
+/** \returns the currently set level 2 cpu cache size (in bytes) used to estimate the ideal blocking size parameters.
+  * \sa setCpuCacheSize */
+inline std::ptrdiff_t l2CacheSize()
+{
+  std::ptrdiff_t l1, l2;
+  internal::manage_caching_sizes(GetAction, &l1, &l2);
+  return l2;
+}
+
+/** Set the cpu L1 and L2 cache sizes (in bytes).
+  * These values are use to adjust the size of the blocks
+  * for the algorithms working per blocks.
+  *
+  * \sa computeProductBlockingSizes */
+inline void setCpuCacheSizes(std::ptrdiff_t l1, std::ptrdiff_t l2)
+{
+  internal::manage_caching_sizes(SetAction, &l1, &l2);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERAL_BLOCK_PANEL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/VectorBlock.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/VectorBlock.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/VectorBlock.h	(revision 2476)
@@ -0,0 +1,95 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_VECTORBLOCK_H
+#define EIGEN_VECTORBLOCK_H
+
+namespace Eigen { 
+
+/** \class VectorBlock
+  * \ingroup Core_Module
+  *
+  * \brief Expression of a fixed-size or dynamic-size sub-vector
+  *
+  * \param VectorType the type of the object in which we are taking a sub-vector
+  * \param Size size of the sub-vector we are taking at compile time (optional)
+  *
+  * This class represents an expression of either a fixed-size or dynamic-size sub-vector.
+  * It is the return type of DenseBase::segment(Index,Index) and DenseBase::segment<int>(Index) and
+  * most of the time this is the only way it is used.
+  *
+  * However, if you want to directly maniputate sub-vector expressions,
+  * for instance if you want to write a function returning such an expression, you
+  * will need to use this class.
+  *
+  * Here is an example illustrating the dynamic case:
+  * \include class_VectorBlock.cpp
+  * Output: \verbinclude class_VectorBlock.out
+  *
+  * \note Even though this expression has dynamic size, in the case where \a VectorType
+  * has fixed size, this expression inherits a fixed maximal size which means that evaluating
+  * it does not cause a dynamic memory allocation.
+  *
+  * Here is an example illustrating the fixed-size case:
+  * \include class_FixedVectorBlock.cpp
+  * Output: \verbinclude class_FixedVectorBlock.out
+  *
+  * \sa class Block, DenseBase::segment(Index,Index,Index,Index), DenseBase::segment(Index,Index)
+  */
+
+namespace internal {
+template<typename VectorType, int Size>
+struct traits<VectorBlock<VectorType, Size> >
+  : public traits<Block<VectorType,
+                     traits<VectorType>::Flags & RowMajorBit ? 1 : Size,
+                     traits<VectorType>::Flags & RowMajorBit ? Size : 1> >
+{
+};
+}
+
+template<typename VectorType, int Size> class VectorBlock
+  : public Block<VectorType,
+                     internal::traits<VectorType>::Flags & RowMajorBit ? 1 : Size,
+                     internal::traits<VectorType>::Flags & RowMajorBit ? Size : 1>
+{
+    typedef Block<VectorType,
+                     internal::traits<VectorType>::Flags & RowMajorBit ? 1 : Size,
+                     internal::traits<VectorType>::Flags & RowMajorBit ? Size : 1> Base;
+    enum {
+      IsColVector = !(internal::traits<VectorType>::Flags & RowMajorBit)
+    };
+  public:
+    EIGEN_DENSE_PUBLIC_INTERFACE(VectorBlock)
+
+    using Base::operator=;
+
+    /** Dynamic-size constructor
+      */
+    inline VectorBlock(VectorType& vector, Index start, Index size)
+      : Base(vector,
+             IsColVector ? start : 0, IsColVector ? 0 : start,
+             IsColVector ? size  : 1, IsColVector ? 1 : size)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(VectorBlock);
+    }
+
+    /** Fixed-size constructor
+      */
+    inline VectorBlock(VectorType& vector, Index start)
+      : Base(vector, IsColVector ? start : 0, IsColVector ? 0 : start)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(VectorBlock);
+    }
+};
+
+
+} // end namespace Eigen
+
+#endif // EIGEN_VECTORBLOCK_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/GenericPacketMath.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/GenericPacketMath.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/GenericPacketMath.h	(revision 2476)
@@ -0,0 +1,350 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERIC_PACKET_MATH_H
+#define EIGEN_GENERIC_PACKET_MATH_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal
+  * \file GenericPacketMath.h
+  *
+  * Default implementation for types not supported by the vectorization.
+  * In practice these functions are provided to make easier the writing
+  * of generic vectorized code.
+  */
+
+#ifndef EIGEN_DEBUG_ALIGNED_LOAD
+#define EIGEN_DEBUG_ALIGNED_LOAD
+#endif
+
+#ifndef EIGEN_DEBUG_UNALIGNED_LOAD
+#define EIGEN_DEBUG_UNALIGNED_LOAD
+#endif
+
+#ifndef EIGEN_DEBUG_ALIGNED_STORE
+#define EIGEN_DEBUG_ALIGNED_STORE
+#endif
+
+#ifndef EIGEN_DEBUG_UNALIGNED_STORE
+#define EIGEN_DEBUG_UNALIGNED_STORE
+#endif
+
+struct default_packet_traits
+{
+  enum {
+    HasAdd    = 1,
+    HasSub    = 1,
+    HasMul    = 1,
+    HasNegate = 1,
+    HasAbs    = 1,
+    HasAbs2   = 1,
+    HasMin    = 1,
+    HasMax    = 1,
+    HasConj   = 1,
+    HasSetLinear = 1,
+
+    HasDiv    = 0,
+    HasSqrt   = 0,
+    HasExp    = 0,
+    HasLog    = 0,
+    HasPow    = 0,
+
+    HasSin    = 0,
+    HasCos    = 0,
+    HasTan    = 0,
+    HasASin   = 0,
+    HasACos   = 0,
+    HasATan   = 0
+  };
+};
+
+template<typename T> struct packet_traits : default_packet_traits
+{
+  typedef T type;
+  enum {
+    Vectorizable = 0,
+    size = 1,
+    AlignedOnScalar = 0
+  };
+  enum {
+    HasAdd    = 0,
+    HasSub    = 0,
+    HasMul    = 0,
+    HasNegate = 0,
+    HasAbs    = 0,
+    HasAbs2   = 0,
+    HasMin    = 0,
+    HasMax    = 0,
+    HasConj   = 0,
+    HasSetLinear = 0
+  };
+};
+
+/** \internal \returns a + b (coeff-wise) */
+template<typename Packet> inline Packet
+padd(const Packet& a,
+        const Packet& b) { return a+b; }
+
+/** \internal \returns a - b (coeff-wise) */
+template<typename Packet> inline Packet
+psub(const Packet& a,
+        const Packet& b) { return a-b; }
+
+/** \internal \returns -a (coeff-wise) */
+template<typename Packet> inline Packet
+pnegate(const Packet& a) { return -a; }
+
+/** \internal \returns conj(a) (coeff-wise) */
+template<typename Packet> inline Packet
+pconj(const Packet& a) { return numext::conj(a); }
+
+/** \internal \returns a * b (coeff-wise) */
+template<typename Packet> inline Packet
+pmul(const Packet& a,
+        const Packet& b) { return a*b; }
+
+/** \internal \returns a / b (coeff-wise) */
+template<typename Packet> inline Packet
+pdiv(const Packet& a,
+        const Packet& b) { return a/b; }
+
+/** \internal \returns the min of \a a and \a b  (coeff-wise) */
+template<typename Packet> inline Packet
+pmin(const Packet& a,
+        const Packet& b) { using std::min; return (min)(a, b); }
+
+/** \internal \returns the max of \a a and \a b  (coeff-wise) */
+template<typename Packet> inline Packet
+pmax(const Packet& a,
+        const Packet& b) { using std::max; return (max)(a, b); }
+
+/** \internal \returns the absolute value of \a a */
+template<typename Packet> inline Packet
+pabs(const Packet& a) { using std::abs; return abs(a); }
+
+/** \internal \returns the bitwise and of \a a and \a b */
+template<typename Packet> inline Packet
+pand(const Packet& a, const Packet& b) { return a & b; }
+
+/** \internal \returns the bitwise or of \a a and \a b */
+template<typename Packet> inline Packet
+por(const Packet& a, const Packet& b) { return a | b; }
+
+/** \internal \returns the bitwise xor of \a a and \a b */
+template<typename Packet> inline Packet
+pxor(const Packet& a, const Packet& b) { return a ^ b; }
+
+/** \internal \returns the bitwise andnot of \a a and \a b */
+template<typename Packet> inline Packet
+pandnot(const Packet& a, const Packet& b) { return a & (!b); }
+
+/** \internal \returns a packet version of \a *from, from must be 16 bytes aligned */
+template<typename Packet> inline Packet
+pload(const typename unpacket_traits<Packet>::type* from) { return *from; }
+
+/** \internal \returns a packet version of \a *from, (un-aligned load) */
+template<typename Packet> inline Packet
+ploadu(const typename unpacket_traits<Packet>::type* from) { return *from; }
+
+/** \internal \returns a packet with elements of \a *from duplicated.
+  * For instance, for a packet of 8 elements, 4 scalar will be read from \a *from and
+  * duplicated to form: {from[0],from[0],from[1],from[1],,from[2],from[2],,from[3],from[3]}
+  * Currently, this function is only used for scalar * complex products.
+ */
+template<typename Packet> inline Packet
+ploaddup(const typename unpacket_traits<Packet>::type* from) { return *from; }
+
+/** \internal \returns a packet with constant coefficients \a a, e.g.: (a,a,a,a) */
+template<typename Packet> inline Packet
+pset1(const typename unpacket_traits<Packet>::type& a) { return a; }
+
+/** \internal \brief Returns a packet with coefficients (a,a+1,...,a+packet_size-1). */
+template<typename Scalar> inline typename packet_traits<Scalar>::type
+plset(const Scalar& a) { return a; }
+
+/** \internal copy the packet \a from to \a *to, \a to must be 16 bytes aligned */
+template<typename Scalar, typename Packet> inline void pstore(Scalar* to, const Packet& from)
+{ (*to) = from; }
+
+/** \internal copy the packet \a from to \a *to, (un-aligned store) */
+template<typename Scalar, typename Packet> inline void pstoreu(Scalar* to, const Packet& from)
+{ (*to) = from; }
+
+/** \internal tries to do cache prefetching of \a addr */
+template<typename Scalar> inline void prefetch(const Scalar* addr)
+{
+#if !defined(_MSC_VER)
+__builtin_prefetch(addr);
+#endif
+}
+
+/** \internal \returns the first element of a packet */
+template<typename Packet> inline typename unpacket_traits<Packet>::type pfirst(const Packet& a)
+{ return a; }
+
+/** \internal \returns a packet where the element i contains the sum of the packet of \a vec[i] */
+template<typename Packet> inline Packet
+preduxp(const Packet* vecs) { return vecs[0]; }
+
+/** \internal \returns the sum of the elements of \a a*/
+template<typename Packet> inline typename unpacket_traits<Packet>::type predux(const Packet& a)
+{ return a; }
+
+/** \internal \returns the product of the elements of \a a*/
+template<typename Packet> inline typename unpacket_traits<Packet>::type predux_mul(const Packet& a)
+{ return a; }
+
+/** \internal \returns the min of the elements of \a a*/
+template<typename Packet> inline typename unpacket_traits<Packet>::type predux_min(const Packet& a)
+{ return a; }
+
+/** \internal \returns the max of the elements of \a a*/
+template<typename Packet> inline typename unpacket_traits<Packet>::type predux_max(const Packet& a)
+{ return a; }
+
+/** \internal \returns the reversed elements of \a a*/
+template<typename Packet> inline Packet preverse(const Packet& a)
+{ return a; }
+
+
+/** \internal \returns \a a with real and imaginary part flipped (for complex type only) */
+template<typename Packet> inline Packet pcplxflip(const Packet& a)
+{
+  // FIXME: uncomment the following in case we drop the internal imag and real functions.
+//   using std::imag;
+//   using std::real;
+  return Packet(imag(a),real(a));
+}
+
+/**************************
+* Special math functions
+***************************/
+
+/** \internal \returns the sine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet psin(const Packet& a) { using std::sin; return sin(a); }
+
+/** \internal \returns the cosine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pcos(const Packet& a) { using std::cos; return cos(a); }
+
+/** \internal \returns the tan of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet ptan(const Packet& a) { using std::tan; return tan(a); }
+
+/** \internal \returns the arc sine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pasin(const Packet& a) { using std::asin; return asin(a); }
+
+/** \internal \returns the arc cosine of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pacos(const Packet& a) { using std::acos; return acos(a); }
+
+/** \internal \returns the exp of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet pexp(const Packet& a) { using std::exp; return exp(a); }
+
+/** \internal \returns the log of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet plog(const Packet& a) { using std::log; return log(a); }
+
+/** \internal \returns the square-root of \a a (coeff-wise) */
+template<typename Packet> EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet psqrt(const Packet& a) { using std::sqrt; return sqrt(a); }
+
+/***************************************************************************
+* The following functions might not have to be overwritten for vectorized types
+***************************************************************************/
+
+/** \internal copy a packet with constant coeficient \a a (e.g., [a,a,a,a]) to \a *to. \a to must be 16 bytes aligned */
+// NOTE: this function must really be templated on the packet type (think about different packet types for the same scalar type)
+template<typename Packet>
+inline void pstore1(typename unpacket_traits<Packet>::type* to, const typename unpacket_traits<Packet>::type& a)
+{
+  pstore(to, pset1<Packet>(a));
+}
+
+/** \internal \returns a * b + c (coeff-wise) */
+template<typename Packet> inline Packet
+pmadd(const Packet&  a,
+         const Packet&  b,
+         const Packet&  c)
+{ return padd(pmul(a, b),c); }
+
+/** \internal \returns a packet version of \a *from.
+  * If LoadMode equals #Aligned, \a from must be 16 bytes aligned */
+template<typename Packet, int LoadMode>
+inline Packet ploadt(const typename unpacket_traits<Packet>::type* from)
+{
+  if(LoadMode == Aligned)
+    return pload<Packet>(from);
+  else
+    return ploadu<Packet>(from);
+}
+
+/** \internal copy the packet \a from to \a *to.
+  * If StoreMode equals #Aligned, \a to must be 16 bytes aligned */
+template<typename Scalar, typename Packet, int LoadMode>
+inline void pstoret(Scalar* to, const Packet& from)
+{
+  if(LoadMode == Aligned)
+    pstore(to, from);
+  else
+    pstoreu(to, from);
+}
+
+/** \internal default implementation of palign() allowing partial specialization */
+template<int Offset,typename PacketType>
+struct palign_impl
+{
+  // by default data are aligned, so there is nothing to be done :)
+  static inline void run(PacketType&, const PacketType&) {}
+};
+
+/** \internal update \a first using the concatenation of the packet_size minus \a Offset last elements
+  * of \a first and \a Offset first elements of \a second.
+  * 
+  * This function is currently only used to optimize matrix-vector products on unligned matrices.
+  * It takes 2 packets that represent a contiguous memory array, and returns a packet starting
+  * at the position \a Offset. For instance, for packets of 4 elements, we have:
+  *  Input:
+  *  - first = {f0,f1,f2,f3}
+  *  - second = {s0,s1,s2,s3}
+  * Output: 
+  *   - if Offset==0 then {f0,f1,f2,f3}
+  *   - if Offset==1 then {f1,f2,f3,s0}
+  *   - if Offset==2 then {f2,f3,s0,s1}
+  *   - if Offset==3 then {f3,s0,s1,s3}
+  */
+template<int Offset,typename PacketType>
+inline void palign(PacketType& first, const PacketType& second)
+{
+  palign_impl<Offset,PacketType>::run(first,second);
+}
+
+/***************************************************************************
+* Fast complex products (GCC generates a function call which is very slow)
+***************************************************************************/
+
+template<> inline std::complex<float> pmul(const std::complex<float>& a, const std::complex<float>& b)
+{ return std::complex<float>(real(a)*real(b) - imag(a)*imag(b), imag(a)*real(b) + real(a)*imag(b)); }
+
+template<> inline std::complex<double> pmul(const std::complex<double>& a, const std::complex<double>& b)
+{ return std::complex<double>(real(a)*real(b) - imag(a)*imag(b), imag(a)*real(b) + real(a)*imag(b)); }
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GENERIC_PACKET_MATH_H
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Array.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Array.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Array.h	(revision 2476)
@@ -0,0 +1,323 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ARRAY_H
+#define EIGEN_ARRAY_H
+
+namespace Eigen {
+
+/** \class Array 
+  * \ingroup Core_Module
+  *
+  * \brief General-purpose arrays with easy API for coefficient-wise operations
+  *
+  * The %Array class is very similar to the Matrix class. It provides
+  * general-purpose one- and two-dimensional arrays. The difference between the
+  * %Array and the %Matrix class is primarily in the API: the API for the
+  * %Array class provides easy access to coefficient-wise operations, while the
+  * API for the %Matrix class provides easy access to linear-algebra
+  * operations.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_ARRAY_PLUGIN.
+  *
+  * \sa \ref TutorialArrayClass, \ref TopicClassHierarchy
+  */
+namespace internal {
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct traits<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > : traits<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+{
+  typedef ArrayXpr XprKind;
+  typedef ArrayBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > XprBase;
+};
+}
+
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+class Array
+  : public PlainObjectBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+{
+  public:
+
+    typedef PlainObjectBase<Array> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Array)
+
+    enum { Options = _Options };
+    typedef typename Base::PlainObject PlainObject;
+
+  protected:
+    template <typename Derived, typename OtherDerived, bool IsVector>
+    friend struct internal::conservative_resize_like_impl;
+
+    using Base::m_storage;
+
+  public:
+
+    using Base::base;
+    using Base::coeff;
+    using Base::coeffRef;
+
+    /**
+      * The usage of
+      *   using Base::operator=;
+      * fails on MSVC. Since the code below is working with GCC and MSVC, we skipped
+      * the usage of 'using'. This should be done only for operator=.
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Array& operator=(const EigenBase<OtherDerived> &other)
+    {
+      return Base::operator=(other);
+    }
+
+    /** Copies the value of the expression \a other into \c *this with automatic resizing.
+      *
+      * *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized),
+      * it will be initialized.
+      *
+      * Note that copying a row-vector into a vector (and conversely) is allowed.
+      * The resizing, if any, is then done in the appropriate way so that row-vectors
+      * remain row-vectors and vectors remain vectors.
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Array& operator=(const ArrayBase<OtherDerived>& other)
+    {
+      return Base::_set(other);
+    }
+
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    EIGEN_STRONG_INLINE Array& operator=(const Array& other)
+    {
+      return Base::_set(other);
+    }
+
+    /** Default constructor.
+      *
+      * For fixed-size matrices, does nothing.
+      *
+      * For dynamic-size matrices, creates an empty matrix of size 0. Does not allocate any array. Such a matrix
+      * is called a null matrix. This constructor is the unique way to create null matrices: resizing
+      * a matrix to 0 is not supported.
+      *
+      * \sa resize(Index,Index)
+      */
+    EIGEN_STRONG_INLINE Array() : Base()
+    {
+      Base::_check_template_params();
+      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    // FIXME is it still needed ??
+    /** \internal */
+    Array(internal::constructor_without_unaligned_array_assert)
+      : Base(internal::constructor_without_unaligned_array_assert())
+    {
+      Base::_check_template_params();
+      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+#endif
+
+#ifdef EIGEN_HAVE_RVALUE_REFERENCES
+    Array(Array&& other)
+      : Base(std::move(other))
+    {
+      Base::_check_template_params();
+      if (RowsAtCompileTime!=Dynamic && ColsAtCompileTime!=Dynamic)
+        Base::_set_noalias(other);
+    }
+    Array& operator=(Array&& other)
+    {
+      other.swap(*this);
+      return *this;
+    }
+#endif
+
+    /** Constructs a vector or row-vector with given dimension. \only_for_vectors
+      *
+      * Note that this is only useful for dynamic-size vectors. For fixed-size vectors,
+      * it is redundant to pass the dimension here, so it makes more sense to use the default
+      * constructor Matrix() instead.
+      */
+    EIGEN_STRONG_INLINE explicit Array(Index dim)
+      : Base(dim, RowsAtCompileTime == 1 ? 1 : dim, ColsAtCompileTime == 1 ? 1 : dim)
+    {
+      Base::_check_template_params();
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(Array)
+      eigen_assert(dim >= 0);
+      eigen_assert(SizeAtCompileTime == Dynamic || SizeAtCompileTime == dim);
+      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename T0, typename T1>
+    EIGEN_STRONG_INLINE Array(const T0& val0, const T1& val1)
+    {
+      Base::_check_template_params();
+      this->template _init2<T0,T1>(val0, val1);
+    }
+    #else
+    /** constructs an uninitialized matrix with \a rows rows and \a cols columns.
+      *
+      * This is useful for dynamic-size matrices. For fixed-size matrices,
+      * it is redundant to pass these parameters, so one should use the default constructor
+      * Matrix() instead. */
+    Array(Index rows, Index cols);
+    /** constructs an initialized 2D vector with given coefficients */
+    Array(const Scalar& val0, const Scalar& val1);
+    #endif
+
+    /** constructs an initialized 3D vector with given coefficients */
+    EIGEN_STRONG_INLINE Array(const Scalar& val0, const Scalar& val1, const Scalar& val2)
+    {
+      Base::_check_template_params();
+      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Array, 3)
+      m_storage.data()[0] = val0;
+      m_storage.data()[1] = val1;
+      m_storage.data()[2] = val2;
+    }
+    /** constructs an initialized 4D vector with given coefficients */
+    EIGEN_STRONG_INLINE Array(const Scalar& val0, const Scalar& val1, const Scalar& val2, const Scalar& val3)
+    {
+      Base::_check_template_params();
+      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Array, 4)
+      m_storage.data()[0] = val0;
+      m_storage.data()[1] = val1;
+      m_storage.data()[2] = val2;
+      m_storage.data()[3] = val3;
+    }
+
+    explicit Array(const Scalar *data);
+
+    /** Constructor copying the value of the expression \a other */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Array(const ArrayBase<OtherDerived>& other)
+             : Base(other.rows() * other.cols(), other.rows(), other.cols())
+    {
+      Base::_check_template_params();
+      Base::_set_noalias(other);
+    }
+    /** Copy constructor */
+    EIGEN_STRONG_INLINE Array(const Array& other)
+            : Base(other.rows() * other.cols(), other.rows(), other.cols())
+    {
+      Base::_check_template_params();
+      Base::_set_noalias(other);
+    }
+    /** Copy constructor with in-place evaluation */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Array(const ReturnByValue<OtherDerived>& other)
+    {
+      Base::_check_template_params();
+      Base::resize(other.rows(), other.cols());
+      other.evalTo(*this);
+    }
+
+    /** \sa MatrixBase::operator=(const EigenBase<OtherDerived>&) */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Array(const EigenBase<OtherDerived> &other)
+      : Base(other.derived().rows() * other.derived().cols(), other.derived().rows(), other.derived().cols())
+    {
+      Base::_check_template_params();
+      Base::_resize_to_match(other);
+      *this = other;
+    }
+
+    /** Override MatrixBase::swap() since for dynamic-sized matrices of same type it is enough to swap the
+      * data pointers.
+      */
+    template<typename OtherDerived>
+    void swap(ArrayBase<OtherDerived> const & other)
+    { this->_swap(other.derived()); }
+
+    inline Index innerStride() const { return 1; }
+    inline Index outerStride() const { return this->innerSize(); }
+
+    #ifdef EIGEN_ARRAY_PLUGIN
+    #include EIGEN_ARRAY_PLUGIN
+    #endif
+
+  private:
+
+    template<typename MatrixType, typename OtherDerived, bool SwapPointers>
+    friend struct internal::matrix_swap_impl;
+};
+
+/** \defgroup arraytypedefs Global array typedefs
+  * \ingroup Core_Module
+  *
+  * Eigen defines several typedef shortcuts for most common 1D and 2D array types.
+  *
+  * The general patterns are the following:
+  *
+  * \c ArrayRowsColsType where \c Rows and \c Cols can be \c 2,\c 3,\c 4 for fixed size square matrices or \c X for dynamic size,
+  * and where \c Type can be \c i for integer, \c f for float, \c d for double, \c cf for complex float, \c cd
+  * for complex double.
+  *
+  * For example, \c Array33d is a fixed-size 3x3 array type of doubles, and \c ArrayXXf is a dynamic-size matrix of floats.
+  *
+  * There are also \c ArraySizeType which are self-explanatory. For example, \c Array4cf is
+  * a fixed-size 1D array of 4 complex floats.
+  *
+  * \sa class Array
+  */
+
+#define EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix)   \
+/** \ingroup arraytypedefs */                                    \
+typedef Array<Type, Size, Size> Array##SizeSuffix##SizeSuffix##TypeSuffix;  \
+/** \ingroup arraytypedefs */                                    \
+typedef Array<Type, Size, 1>    Array##SizeSuffix##TypeSuffix;
+
+#define EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, Size)         \
+/** \ingroup arraytypedefs */                                    \
+typedef Array<Type, Size, Dynamic> Array##Size##X##TypeSuffix;  \
+/** \ingroup arraytypedefs */                                    \
+typedef Array<Type, Dynamic, Size> Array##X##Size##TypeSuffix;
+
+#define EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
+EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 2, 2) \
+EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 3, 3) \
+EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, 4, 4) \
+EIGEN_MAKE_ARRAY_TYPEDEFS(Type, TypeSuffix, Dynamic, X) \
+EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 2) \
+EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 3) \
+EIGEN_MAKE_ARRAY_FIXED_TYPEDEFS(Type, TypeSuffix, 4)
+
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(int,                  i)
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(float,                f)
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(double,               d)
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(std::complex<float>,  cf)
+EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES(std::complex<double>, cd)
+
+#undef EIGEN_MAKE_ARRAY_TYPEDEFS_ALL_SIZES
+#undef EIGEN_MAKE_ARRAY_TYPEDEFS
+
+#undef EIGEN_MAKE_ARRAY_TYPEDEFS_LARGE
+
+#define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \
+using Eigen::Matrix##SizeSuffix##TypeSuffix; \
+using Eigen::Vector##SizeSuffix##TypeSuffix; \
+using Eigen::RowVector##SizeSuffix##TypeSuffix;
+
+#define EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(TypeSuffix) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 2) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 3) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 4) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, X) \
+
+#define EIGEN_USING_ARRAY_TYPEDEFS \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(i) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(f) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(d) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cf) \
+EIGEN_USING_ARRAY_TYPEDEFS_FOR_TYPE(cd)
+
+} // end namespace Eigen
+
+#endif // EIGEN_ARRAY_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Transpose.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Transpose.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Transpose.h	(revision 2476)
@@ -0,0 +1,418 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRANSPOSE_H
+#define EIGEN_TRANSPOSE_H
+
+namespace Eigen { 
+
+/** \class Transpose
+  * \ingroup Core_Module
+  *
+  * \brief Expression of the transpose of a matrix
+  *
+  * \param MatrixType the type of the object of which we are taking the transpose
+  *
+  * This class represents an expression of the transpose of a matrix.
+  * It is the return type of MatrixBase::transpose() and MatrixBase::adjoint()
+  * and most of the time this is the only way it is used.
+  *
+  * \sa MatrixBase::transpose(), MatrixBase::adjoint()
+  */
+
+namespace internal {
+template<typename MatrixType>
+struct traits<Transpose<MatrixType> > : traits<MatrixType>
+{
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type MatrixTypeNestedPlain;
+  typedef typename traits<MatrixType>::StorageKind StorageKind;
+  typedef typename traits<MatrixType>::XprKind XprKind;
+  enum {
+    RowsAtCompileTime = MatrixType::ColsAtCompileTime,
+    ColsAtCompileTime = MatrixType::RowsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    FlagsLvalueBit = is_lvalue<MatrixType>::value ? LvalueBit : 0,
+    Flags0 = MatrixTypeNestedPlain::Flags & ~(LvalueBit | NestByRefBit),
+    Flags1 = Flags0 | FlagsLvalueBit,
+    Flags = Flags1 ^ RowMajorBit,
+    CoeffReadCost = MatrixTypeNestedPlain::CoeffReadCost,
+    InnerStrideAtCompileTime = inner_stride_at_compile_time<MatrixType>::ret,
+    OuterStrideAtCompileTime = outer_stride_at_compile_time<MatrixType>::ret
+  };
+};
+}
+
+template<typename MatrixType, typename StorageKind> class TransposeImpl;
+
+template<typename MatrixType> class Transpose
+  : public TransposeImpl<MatrixType,typename internal::traits<MatrixType>::StorageKind>
+{
+  public:
+
+    typedef typename TransposeImpl<MatrixType,typename internal::traits<MatrixType>::StorageKind>::Base Base;
+    EIGEN_GENERIC_PUBLIC_INTERFACE(Transpose)
+
+    inline Transpose(MatrixType& a_matrix) : m_matrix(a_matrix) {}
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Transpose)
+
+    inline Index rows() const { return m_matrix.cols(); }
+    inline Index cols() const { return m_matrix.rows(); }
+
+    /** \returns the nested expression */
+    const typename internal::remove_all<typename MatrixType::Nested>::type&
+    nestedExpression() const { return m_matrix; }
+
+    /** \returns the nested expression */
+    typename internal::remove_all<typename MatrixType::Nested>::type&
+    nestedExpression() { return m_matrix.const_cast_derived(); }
+
+  protected:
+    typename MatrixType::Nested m_matrix;
+};
+
+namespace internal {
+
+template<typename MatrixType, bool HasDirectAccess = has_direct_access<MatrixType>::ret>
+struct TransposeImpl_base
+{
+  typedef typename dense_xpr_base<Transpose<MatrixType> >::type type;
+};
+
+template<typename MatrixType>
+struct TransposeImpl_base<MatrixType, false>
+{
+  typedef typename dense_xpr_base<Transpose<MatrixType> >::type type;
+};
+
+} // end namespace internal
+
+template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
+  : public internal::TransposeImpl_base<MatrixType>::type
+{
+  public:
+
+    typedef typename internal::TransposeImpl_base<MatrixType>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Transpose<MatrixType>)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(TransposeImpl)
+
+    inline Index innerStride() const { return derived().nestedExpression().innerStride(); }
+    inline Index outerStride() const { return derived().nestedExpression().outerStride(); }
+
+    typedef typename internal::conditional<
+                       internal::is_lvalue<MatrixType>::value,
+                       Scalar,
+                       const Scalar
+                     >::type ScalarWithConstIfNotLvalue;
+
+    inline ScalarWithConstIfNotLvalue* data() { return derived().nestedExpression().data(); }
+    inline const Scalar* data() const { return derived().nestedExpression().data(); }
+
+    inline ScalarWithConstIfNotLvalue& coeffRef(Index rowId, Index colId)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+      return derived().nestedExpression().const_cast_derived().coeffRef(colId, rowId);
+    }
+
+    inline ScalarWithConstIfNotLvalue& coeffRef(Index index)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+      return derived().nestedExpression().const_cast_derived().coeffRef(index);
+    }
+
+    inline const Scalar& coeffRef(Index rowId, Index colId) const
+    {
+      return derived().nestedExpression().coeffRef(colId, rowId);
+    }
+
+    inline const Scalar& coeffRef(Index index) const
+    {
+      return derived().nestedExpression().coeffRef(index);
+    }
+
+    inline CoeffReturnType coeff(Index rowId, Index colId) const
+    {
+      return derived().nestedExpression().coeff(colId, rowId);
+    }
+
+    inline CoeffReturnType coeff(Index index) const
+    {
+      return derived().nestedExpression().coeff(index);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index rowId, Index colId) const
+    {
+      return derived().nestedExpression().template packet<LoadMode>(colId, rowId);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index rowId, Index colId, const PacketScalar& x)
+    {
+      derived().nestedExpression().const_cast_derived().template writePacket<LoadMode>(colId, rowId, x);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index index) const
+    {
+      return derived().nestedExpression().template packet<LoadMode>(index);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index index, const PacketScalar& x)
+    {
+      derived().nestedExpression().const_cast_derived().template writePacket<LoadMode>(index, x);
+    }
+};
+
+/** \returns an expression of the transpose of *this.
+  *
+  * Example: \include MatrixBase_transpose.cpp
+  * Output: \verbinclude MatrixBase_transpose.out
+  *
+  * \warning If you want to replace a matrix by its own transpose, do \b NOT do this:
+  * \code
+  * m = m.transpose(); // bug!!! caused by aliasing effect
+  * \endcode
+  * Instead, use the transposeInPlace() method:
+  * \code
+  * m.transposeInPlace();
+  * \endcode
+  * which gives Eigen good opportunities for optimization, or alternatively you can also do:
+  * \code
+  * m = m.transpose().eval();
+  * \endcode
+  *
+  * \sa transposeInPlace(), adjoint() */
+template<typename Derived>
+inline Transpose<Derived>
+DenseBase<Derived>::transpose()
+{
+  return derived();
+}
+
+/** This is the const version of transpose().
+  *
+  * Make sure you read the warning for transpose() !
+  *
+  * \sa transposeInPlace(), adjoint() */
+template<typename Derived>
+inline typename DenseBase<Derived>::ConstTransposeReturnType
+DenseBase<Derived>::transpose() const
+{
+  return ConstTransposeReturnType(derived());
+}
+
+/** \returns an expression of the adjoint (i.e. conjugate transpose) of *this.
+  *
+  * Example: \include MatrixBase_adjoint.cpp
+  * Output: \verbinclude MatrixBase_adjoint.out
+  *
+  * \warning If you want to replace a matrix by its own adjoint, do \b NOT do this:
+  * \code
+  * m = m.adjoint(); // bug!!! caused by aliasing effect
+  * \endcode
+  * Instead, use the adjointInPlace() method:
+  * \code
+  * m.adjointInPlace();
+  * \endcode
+  * which gives Eigen good opportunities for optimization, or alternatively you can also do:
+  * \code
+  * m = m.adjoint().eval();
+  * \endcode
+  *
+  * \sa adjointInPlace(), transpose(), conjugate(), class Transpose, class internal::scalar_conjugate_op */
+template<typename Derived>
+inline const typename MatrixBase<Derived>::AdjointReturnType
+MatrixBase<Derived>::adjoint() const
+{
+  return this->transpose(); // in the complex case, the .conjugate() is be implicit here
+                            // due to implicit conversion to return type
+}
+
+/***************************************************************************
+* "in place" transpose implementation
+***************************************************************************/
+
+namespace internal {
+
+template<typename MatrixType,
+  bool IsSquare = (MatrixType::RowsAtCompileTime == MatrixType::ColsAtCompileTime) && MatrixType::RowsAtCompileTime!=Dynamic>
+struct inplace_transpose_selector;
+
+template<typename MatrixType>
+struct inplace_transpose_selector<MatrixType,true> { // square matrix
+  static void run(MatrixType& m) {
+    m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose());
+  }
+};
+
+template<typename MatrixType>
+struct inplace_transpose_selector<MatrixType,false> { // non square matrix
+  static void run(MatrixType& m) {
+    if (m.rows()==m.cols())
+      m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose());
+    else
+      m = m.transpose().eval();
+  }
+};
+
+} // end namespace internal
+
+/** This is the "in place" version of transpose(): it replaces \c *this by its own transpose.
+  * Thus, doing
+  * \code
+  * m.transposeInPlace();
+  * \endcode
+  * has the same effect on m as doing
+  * \code
+  * m = m.transpose().eval();
+  * \endcode
+  * and is faster and also safer because in the latter line of code, forgetting the eval() results
+  * in a bug caused by \ref TopicAliasing "aliasing".
+  *
+  * Notice however that this method is only useful if you want to replace a matrix by its own transpose.
+  * If you just need the transpose of a matrix, use transpose().
+  *
+  * \note if the matrix is not square, then \c *this must be a resizable matrix. 
+  * This excludes (non-square) fixed-size matrices, block-expressions and maps.
+  *
+  * \sa transpose(), adjoint(), adjointInPlace() */
+template<typename Derived>
+inline void DenseBase<Derived>::transposeInPlace()
+{
+  eigen_assert((rows() == cols() || (RowsAtCompileTime == Dynamic && ColsAtCompileTime == Dynamic))
+               && "transposeInPlace() called on a non-square non-resizable matrix");
+  internal::inplace_transpose_selector<Derived>::run(derived());
+}
+
+/***************************************************************************
+* "in place" adjoint implementation
+***************************************************************************/
+
+/** This is the "in place" version of adjoint(): it replaces \c *this by its own transpose.
+  * Thus, doing
+  * \code
+  * m.adjointInPlace();
+  * \endcode
+  * has the same effect on m as doing
+  * \code
+  * m = m.adjoint().eval();
+  * \endcode
+  * and is faster and also safer because in the latter line of code, forgetting the eval() results
+  * in a bug caused by aliasing.
+  *
+  * Notice however that this method is only useful if you want to replace a matrix by its own adjoint.
+  * If you just need the adjoint of a matrix, use adjoint().
+  *
+  * \note if the matrix is not square, then \c *this must be a resizable matrix.
+  * This excludes (non-square) fixed-size matrices, block-expressions and maps.
+  *
+  * \sa transpose(), adjoint(), transposeInPlace() */
+template<typename Derived>
+inline void MatrixBase<Derived>::adjointInPlace()
+{
+  derived() = adjoint().eval();
+}
+
+#ifndef EIGEN_NO_DEBUG
+
+// The following is to detect aliasing problems in most common cases.
+
+namespace internal {
+
+template<typename BinOp,typename Xpr,typename Rhs>
+struct blas_traits<SelfCwiseBinaryOp<BinOp,Xpr,Rhs> >
+ : blas_traits<typename internal::remove_all<typename Xpr::Nested>::type>
+{
+  typedef SelfCwiseBinaryOp<BinOp,Xpr,Rhs> XprType;
+  static inline const XprType extract(const XprType& x) { return x; }
+};
+
+template<bool DestIsTransposed, typename OtherDerived>
+struct check_transpose_aliasing_compile_time_selector
+{
+  enum { ret = bool(blas_traits<OtherDerived>::IsTransposed) != DestIsTransposed };
+};
+
+template<bool DestIsTransposed, typename BinOp, typename DerivedA, typename DerivedB>
+struct check_transpose_aliasing_compile_time_selector<DestIsTransposed,CwiseBinaryOp<BinOp,DerivedA,DerivedB> >
+{
+  enum { ret =    bool(blas_traits<DerivedA>::IsTransposed) != DestIsTransposed
+               || bool(blas_traits<DerivedB>::IsTransposed) != DestIsTransposed
+  };
+};
+
+template<typename Scalar, bool DestIsTransposed, typename OtherDerived>
+struct check_transpose_aliasing_run_time_selector
+{
+  static bool run(const Scalar* dest, const OtherDerived& src)
+  {
+    return (bool(blas_traits<OtherDerived>::IsTransposed) != DestIsTransposed) && (dest!=0 && dest==(const Scalar*)extract_data(src));
+  }
+};
+
+template<typename Scalar, bool DestIsTransposed, typename BinOp, typename DerivedA, typename DerivedB>
+struct check_transpose_aliasing_run_time_selector<Scalar,DestIsTransposed,CwiseBinaryOp<BinOp,DerivedA,DerivedB> >
+{
+  static bool run(const Scalar* dest, const CwiseBinaryOp<BinOp,DerivedA,DerivedB>& src)
+  {
+    return ((blas_traits<DerivedA>::IsTransposed != DestIsTransposed) && (dest!=0 && dest==(const Scalar*)extract_data(src.lhs())))
+        || ((blas_traits<DerivedB>::IsTransposed != DestIsTransposed) && (dest!=0 && dest==(const Scalar*)extract_data(src.rhs())));
+  }
+};
+
+// the following selector, checkTransposeAliasing_impl, based on MightHaveTransposeAliasing,
+// is because when the condition controlling the assert is known at compile time, ICC emits a warning.
+// This is actually a good warning: in expressions that don't have any transposing, the condition is
+// known at compile time to be false, and using that, we can avoid generating the code of the assert again
+// and again for all these expressions that don't need it.
+
+template<typename Derived, typename OtherDerived,
+         bool MightHaveTransposeAliasing
+                 = check_transpose_aliasing_compile_time_selector
+                     <blas_traits<Derived>::IsTransposed,OtherDerived>::ret
+        >
+struct checkTransposeAliasing_impl
+{
+    static void run(const Derived& dst, const OtherDerived& other)
+    {
+        eigen_assert((!check_transpose_aliasing_run_time_selector
+                      <typename Derived::Scalar,blas_traits<Derived>::IsTransposed,OtherDerived>
+                      ::run(extract_data(dst), other))
+          && "aliasing detected during transposition, use transposeInPlace() "
+             "or evaluate the rhs into a temporary using .eval()");
+    }
+};
+
+template<typename Derived, typename OtherDerived>
+struct checkTransposeAliasing_impl<Derived, OtherDerived, false>
+{
+    static void run(const Derived&, const OtherDerived&)
+    {
+    }
+};
+
+} // end namespace internal
+
+template<typename Derived>
+template<typename OtherDerived>
+void DenseBase<Derived>::checkTransposeAliasing(const OtherDerived& other) const
+{
+    internal::checkTransposeAliasing_impl<Derived, OtherDerived>::run(derived(), other);
+}
+#endif
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRANSPOSE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/GeneralProduct.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/GeneralProduct.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/GeneralProduct.h	(revision 2476)
@@ -0,0 +1,633 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GENERAL_PRODUCT_H
+#define EIGEN_GENERAL_PRODUCT_H
+
+namespace Eigen { 
+
+/** \class GeneralProduct
+  * \ingroup Core_Module
+  *
+  * \brief Expression of the product of two general matrices or vectors
+  *
+  * \param LhsNested the type used to store the left-hand side
+  * \param RhsNested the type used to store the right-hand side
+  * \param ProductMode the type of the product
+  *
+  * This class represents an expression of the product of two general matrices.
+  * We call a general matrix, a dense matrix with full storage. For instance,
+  * This excludes triangular, selfadjoint, and sparse matrices.
+  * It is the return type of the operator* between general matrices. Its template
+  * arguments are determined automatically by ProductReturnType. Therefore,
+  * GeneralProduct should never be used direclty. To determine the result type of a
+  * function which involves a matrix product, use ProductReturnType::Type.
+  *
+  * \sa ProductReturnType, MatrixBase::operator*(const MatrixBase<OtherDerived>&)
+  */
+template<typename Lhs, typename Rhs, int ProductType = internal::product_type<Lhs,Rhs>::value>
+class GeneralProduct;
+
+enum {
+  Large = 2,
+  Small = 3
+};
+
+namespace internal {
+
+template<int Rows, int Cols, int Depth> struct product_type_selector;
+
+template<int Size, int MaxSize> struct product_size_category
+{
+  enum { is_large = MaxSize == Dynamic ||
+                    Size >= EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD,
+         value = is_large  ? Large
+               : Size == 1 ? 1
+                           : Small
+  };
+};
+
+template<typename Lhs, typename Rhs> struct product_type
+{
+  typedef typename remove_all<Lhs>::type _Lhs;
+  typedef typename remove_all<Rhs>::type _Rhs;
+  enum {
+    MaxRows  = _Lhs::MaxRowsAtCompileTime,
+    Rows  = _Lhs::RowsAtCompileTime,
+    MaxCols  = _Rhs::MaxColsAtCompileTime,
+    Cols  = _Rhs::ColsAtCompileTime,
+    MaxDepth = EIGEN_SIZE_MIN_PREFER_FIXED(_Lhs::MaxColsAtCompileTime,
+                                           _Rhs::MaxRowsAtCompileTime),
+    Depth = EIGEN_SIZE_MIN_PREFER_FIXED(_Lhs::ColsAtCompileTime,
+                                        _Rhs::RowsAtCompileTime),
+    LargeThreshold = EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+  };
+
+  // the splitting into different lines of code here, introducing the _select enums and the typedef below,
+  // is to work around an internal compiler error with gcc 4.1 and 4.2.
+private:
+  enum {
+    rows_select = product_size_category<Rows,MaxRows>::value,
+    cols_select = product_size_category<Cols,MaxCols>::value,
+    depth_select = product_size_category<Depth,MaxDepth>::value
+  };
+  typedef product_type_selector<rows_select, cols_select, depth_select> selector;
+
+public:
+  enum {
+    value = selector::ret
+  };
+#ifdef EIGEN_DEBUG_PRODUCT
+  static void debug()
+  {
+      EIGEN_DEBUG_VAR(Rows);
+      EIGEN_DEBUG_VAR(Cols);
+      EIGEN_DEBUG_VAR(Depth);
+      EIGEN_DEBUG_VAR(rows_select);
+      EIGEN_DEBUG_VAR(cols_select);
+      EIGEN_DEBUG_VAR(depth_select);
+      EIGEN_DEBUG_VAR(value);
+  }
+#endif
+};
+
+
+/* The following allows to select the kind of product at compile time
+ * based on the three dimensions of the product.
+ * This is a compile time mapping from {1,Small,Large}^3 -> {product types} */
+// FIXME I'm not sure the current mapping is the ideal one.
+template<int M, int N>  struct product_type_selector<M,N,1>              { enum { ret = OuterProduct }; };
+template<int Depth>     struct product_type_selector<1,    1,    Depth>  { enum { ret = InnerProduct }; };
+template<>              struct product_type_selector<1,    1,    1>      { enum { ret = InnerProduct }; };
+template<>              struct product_type_selector<Small,1,    Small>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<1,    Small,Small>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<Small,Small,Small>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<Small, Small, 1>    { enum { ret = LazyCoeffBasedProductMode }; };
+template<>              struct product_type_selector<Small, Large, 1>    { enum { ret = LazyCoeffBasedProductMode }; };
+template<>              struct product_type_selector<Large, Small, 1>    { enum { ret = LazyCoeffBasedProductMode }; };
+template<>              struct product_type_selector<1,    Large,Small>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<1,    Large,Large>  { enum { ret = GemvProduct }; };
+template<>              struct product_type_selector<1,    Small,Large>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<Large,1,    Small>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<Large,1,    Large>  { enum { ret = GemvProduct }; };
+template<>              struct product_type_selector<Small,1,    Large>  { enum { ret = CoeffBasedProductMode }; };
+template<>              struct product_type_selector<Small,Small,Large>  { enum { ret = GemmProduct }; };
+template<>              struct product_type_selector<Large,Small,Large>  { enum { ret = GemmProduct }; };
+template<>              struct product_type_selector<Small,Large,Large>  { enum { ret = GemmProduct }; };
+template<>              struct product_type_selector<Large,Large,Large>  { enum { ret = GemmProduct }; };
+template<>              struct product_type_selector<Large,Small,Small>  { enum { ret = GemmProduct }; };
+template<>              struct product_type_selector<Small,Large,Small>  { enum { ret = GemmProduct }; };
+template<>              struct product_type_selector<Large,Large,Small>  { enum { ret = GemmProduct }; };
+
+} // end namespace internal
+
+/** \class ProductReturnType
+  * \ingroup Core_Module
+  *
+  * \brief Helper class to get the correct and optimized returned type of operator*
+  *
+  * \param Lhs the type of the left-hand side
+  * \param Rhs the type of the right-hand side
+  * \param ProductMode the type of the product (determined automatically by internal::product_mode)
+  *
+  * This class defines the typename Type representing the optimized product expression
+  * between two matrix expressions. In practice, using ProductReturnType<Lhs,Rhs>::Type
+  * is the recommended way to define the result type of a function returning an expression
+  * which involve a matrix product. The class Product should never be
+  * used directly.
+  *
+  * \sa class Product, MatrixBase::operator*(const MatrixBase<OtherDerived>&)
+  */
+template<typename Lhs, typename Rhs, int ProductType>
+struct ProductReturnType
+{
+  // TODO use the nested type to reduce instanciations ????
+//   typedef typename internal::nested<Lhs,Rhs::ColsAtCompileTime>::type LhsNested;
+//   typedef typename internal::nested<Rhs,Lhs::RowsAtCompileTime>::type RhsNested;
+
+  typedef GeneralProduct<Lhs/*Nested*/, Rhs/*Nested*/, ProductType> Type;
+};
+
+template<typename Lhs, typename Rhs>
+struct ProductReturnType<Lhs,Rhs,CoeffBasedProductMode>
+{
+  typedef typename internal::nested<Lhs, Rhs::ColsAtCompileTime, typename internal::plain_matrix_type<Lhs>::type >::type LhsNested;
+  typedef typename internal::nested<Rhs, Lhs::RowsAtCompileTime, typename internal::plain_matrix_type<Rhs>::type >::type RhsNested;
+  typedef CoeffBasedProduct<LhsNested, RhsNested, EvalBeforeAssigningBit | EvalBeforeNestingBit> Type;
+};
+
+template<typename Lhs, typename Rhs>
+struct ProductReturnType<Lhs,Rhs,LazyCoeffBasedProductMode>
+{
+  typedef typename internal::nested<Lhs, Rhs::ColsAtCompileTime, typename internal::plain_matrix_type<Lhs>::type >::type LhsNested;
+  typedef typename internal::nested<Rhs, Lhs::RowsAtCompileTime, typename internal::plain_matrix_type<Rhs>::type >::type RhsNested;
+  typedef CoeffBasedProduct<LhsNested, RhsNested, NestByRefBit> Type;
+};
+
+// this is a workaround for sun CC
+template<typename Lhs, typename Rhs>
+struct LazyProductReturnType : public ProductReturnType<Lhs,Rhs,LazyCoeffBasedProductMode>
+{};
+
+/***********************************************************************
+*  Implementation of Inner Vector Vector Product
+***********************************************************************/
+
+// FIXME : maybe the "inner product" could return a Scalar
+// instead of a 1x1 matrix ??
+// Pro: more natural for the user
+// Cons: this could be a problem if in a meta unrolled algorithm a matrix-matrix
+// product ends up to a row-vector times col-vector product... To tackle this use
+// case, we could have a specialization for Block<MatrixType,1,1> with: operator=(Scalar x);
+
+namespace internal {
+
+template<typename Lhs, typename Rhs>
+struct traits<GeneralProduct<Lhs,Rhs,InnerProduct> >
+ : traits<Matrix<typename scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType,1,1> >
+{};
+
+}
+
+template<typename Lhs, typename Rhs>
+class GeneralProduct<Lhs, Rhs, InnerProduct>
+  : internal::no_assignment_operator,
+    public Matrix<typename internal::scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType,1,1>
+{
+    typedef Matrix<typename internal::scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType,1,1> Base;
+  public:
+    GeneralProduct(const Lhs& lhs, const Rhs& rhs)
+    {
+      Base::coeffRef(0,0) = (lhs.transpose().cwiseProduct(rhs)).sum();
+    }
+
+    /** Convertion to scalar */
+    operator const typename Base::Scalar() const {
+      return Base::coeff(0,0);
+    }
+};
+
+/***********************************************************************
+*  Implementation of Outer Vector Vector Product
+***********************************************************************/
+
+namespace internal {
+
+// Column major
+template<typename ProductType, typename Dest, typename Func>
+EIGEN_DONT_INLINE void outer_product_selector_run(const ProductType& prod, Dest& dest, const Func& func, const false_type&)
+{
+  typedef typename Dest::Index Index;
+  // FIXME make sure lhs is sequentially stored
+  // FIXME not very good if rhs is real and lhs complex while alpha is real too
+  const Index cols = dest.cols();
+  for (Index j=0; j<cols; ++j)
+    func(dest.col(j), prod.rhs().coeff(0,j) * prod.lhs());
+}
+
+// Row major
+template<typename ProductType, typename Dest, typename Func>
+EIGEN_DONT_INLINE void outer_product_selector_run(const ProductType& prod, Dest& dest, const Func& func, const true_type&) {
+  typedef typename Dest::Index Index;
+  // FIXME make sure rhs is sequentially stored
+  // FIXME not very good if lhs is real and rhs complex while alpha is real too
+  const Index rows = dest.rows();
+  for (Index i=0; i<rows; ++i)
+    func(dest.row(i), prod.lhs().coeff(i,0) * prod.rhs());
+}
+
+template<typename Lhs, typename Rhs>
+struct traits<GeneralProduct<Lhs,Rhs,OuterProduct> >
+ : traits<ProductBase<GeneralProduct<Lhs,Rhs,OuterProduct>, Lhs, Rhs> >
+{};
+
+}
+
+template<typename Lhs, typename Rhs>
+class GeneralProduct<Lhs, Rhs, OuterProduct>
+  : public ProductBase<GeneralProduct<Lhs,Rhs,OuterProduct>, Lhs, Rhs>
+{
+    template<typename T> struct is_row_major : internal::conditional<(int(T::Flags)&RowMajorBit), internal::true_type, internal::false_type>::type {};
+    
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(GeneralProduct)
+
+    GeneralProduct(const Lhs& lhs, const Rhs& rhs) : Base(lhs,rhs)
+    {
+    }
+    
+    struct set  { template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const { dst.const_cast_derived()  = src; } };
+    struct add  { template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const { dst.const_cast_derived() += src; } };
+    struct sub  { template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const { dst.const_cast_derived() -= src; } };
+    struct adds {
+      Scalar m_scale;
+      adds(const Scalar& s) : m_scale(s) {}
+      template<typename Dst, typename Src> void operator()(const Dst& dst, const Src& src) const {
+        dst.const_cast_derived() += m_scale * src;
+      }
+    };
+    
+    template<typename Dest>
+    inline void evalTo(Dest& dest) const {
+      internal::outer_product_selector_run(*this, dest, set(), is_row_major<Dest>());
+    }
+    
+    template<typename Dest>
+    inline void addTo(Dest& dest) const {
+      internal::outer_product_selector_run(*this, dest, add(), is_row_major<Dest>());
+    }
+
+    template<typename Dest>
+    inline void subTo(Dest& dest) const {
+      internal::outer_product_selector_run(*this, dest, sub(), is_row_major<Dest>());
+    }
+
+    template<typename Dest> void scaleAndAddTo(Dest& dest, const Scalar& alpha) const
+    {
+      internal::outer_product_selector_run(*this, dest, adds(alpha), is_row_major<Dest>());
+    }
+};
+
+/***********************************************************************
+*  Implementation of General Matrix Vector Product
+***********************************************************************/
+
+/*  According to the shape/flags of the matrix we have to distinghish 3 different cases:
+ *   1 - the matrix is col-major, BLAS compatible and M is large => call fast BLAS-like colmajor routine
+ *   2 - the matrix is row-major, BLAS compatible and N is large => call fast BLAS-like rowmajor routine
+ *   3 - all other cases are handled using a simple loop along the outer-storage direction.
+ *  Therefore we need a lower level meta selector.
+ *  Furthermore, if the matrix is the rhs, then the product has to be transposed.
+ */
+namespace internal {
+
+template<typename Lhs, typename Rhs>
+struct traits<GeneralProduct<Lhs,Rhs,GemvProduct> >
+ : traits<ProductBase<GeneralProduct<Lhs,Rhs,GemvProduct>, Lhs, Rhs> >
+{};
+
+template<int Side, int StorageOrder, bool BlasCompatible>
+struct gemv_selector;
+
+} // end namespace internal
+
+template<typename Lhs, typename Rhs>
+class GeneralProduct<Lhs, Rhs, GemvProduct>
+  : public ProductBase<GeneralProduct<Lhs,Rhs,GemvProduct>, Lhs, Rhs>
+{
+  public:
+    EIGEN_PRODUCT_PUBLIC_INTERFACE(GeneralProduct)
+
+    typedef typename Lhs::Scalar LhsScalar;
+    typedef typename Rhs::Scalar RhsScalar;
+
+    GeneralProduct(const Lhs& a_lhs, const Rhs& a_rhs) : Base(a_lhs,a_rhs)
+    {
+//       EIGEN_STATIC_ASSERT((internal::is_same<typename Lhs::Scalar, typename Rhs::Scalar>::value),
+//         YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+    }
+
+    enum { Side = Lhs::IsVectorAtCompileTime ? OnTheLeft : OnTheRight };
+    typedef typename internal::conditional<int(Side)==OnTheRight,_LhsNested,_RhsNested>::type MatrixType;
+
+    template<typename Dest> void scaleAndAddTo(Dest& dst, const Scalar& alpha) const
+    {
+      eigen_assert(m_lhs.rows() == dst.rows() && m_rhs.cols() == dst.cols());
+      internal::gemv_selector<Side,(int(MatrixType::Flags)&RowMajorBit) ? RowMajor : ColMajor,
+                       bool(internal::blas_traits<MatrixType>::HasUsableDirectAccess)>::run(*this, dst, alpha);
+    }
+};
+
+namespace internal {
+
+// The vector is on the left => transposition
+template<int StorageOrder, bool BlasCompatible>
+struct gemv_selector<OnTheLeft,StorageOrder,BlasCompatible>
+{
+  template<typename ProductType, typename Dest>
+  static void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
+  {
+    Transpose<Dest> destT(dest);
+    enum { OtherStorageOrder = StorageOrder == RowMajor ? ColMajor : RowMajor };
+    gemv_selector<OnTheRight,OtherStorageOrder,BlasCompatible>
+      ::run(GeneralProduct<Transpose<const typename ProductType::_RhsNested>,Transpose<const typename ProductType::_LhsNested>, GemvProduct>
+        (prod.rhs().transpose(), prod.lhs().transpose()), destT, alpha);
+  }
+};
+
+template<typename Scalar,int Size,int MaxSize,bool Cond> struct gemv_static_vector_if;
+
+template<typename Scalar,int Size,int MaxSize>
+struct gemv_static_vector_if<Scalar,Size,MaxSize,false>
+{
+  EIGEN_STRONG_INLINE  Scalar* data() { eigen_internal_assert(false && "should never be called"); return 0; }
+};
+
+template<typename Scalar,int Size>
+struct gemv_static_vector_if<Scalar,Size,Dynamic,true>
+{
+  EIGEN_STRONG_INLINE Scalar* data() { return 0; }
+};
+
+template<typename Scalar,int Size,int MaxSize>
+struct gemv_static_vector_if<Scalar,Size,MaxSize,true>
+{
+  #if EIGEN_ALIGN_STATICALLY
+  internal::plain_array<Scalar,EIGEN_SIZE_MIN_PREFER_FIXED(Size,MaxSize),0> m_data;
+  EIGEN_STRONG_INLINE Scalar* data() { return m_data.array; }
+  #else
+  // Some architectures cannot align on the stack,
+  // => let's manually enforce alignment by allocating more data and return the address of the first aligned element.
+  enum {
+    ForceAlignment  = internal::packet_traits<Scalar>::Vectorizable,
+    PacketSize      = internal::packet_traits<Scalar>::size
+  };
+  internal::plain_array<Scalar,EIGEN_SIZE_MIN_PREFER_FIXED(Size,MaxSize)+(ForceAlignment?PacketSize:0),0> m_data;
+  EIGEN_STRONG_INLINE Scalar* data() {
+    return ForceAlignment
+            ? reinterpret_cast<Scalar*>((reinterpret_cast<size_t>(m_data.array) & ~(size_t(15))) + 16)
+            : m_data.array;
+  }
+  #endif
+};
+
+template<> struct gemv_selector<OnTheRight,ColMajor,true>
+{
+  template<typename ProductType, typename Dest>
+  static inline void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
+  {
+    typedef typename ProductType::Index Index;
+    typedef typename ProductType::LhsScalar   LhsScalar;
+    typedef typename ProductType::RhsScalar   RhsScalar;
+    typedef typename ProductType::Scalar      ResScalar;
+    typedef typename ProductType::RealScalar  RealScalar;
+    typedef typename ProductType::ActualLhsType ActualLhsType;
+    typedef typename ProductType::ActualRhsType ActualRhsType;
+    typedef typename ProductType::LhsBlasTraits LhsBlasTraits;
+    typedef typename ProductType::RhsBlasTraits RhsBlasTraits;
+    typedef Map<Matrix<ResScalar,Dynamic,1>, Aligned> MappedDest;
+
+    ActualLhsType actualLhs = LhsBlasTraits::extract(prod.lhs());
+    ActualRhsType actualRhs = RhsBlasTraits::extract(prod.rhs());
+
+    ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs())
+                                  * RhsBlasTraits::extractScalarFactor(prod.rhs());
+
+    // make sure Dest is a compile-time vector type (bug 1166)
+    typedef typename conditional<Dest::IsVectorAtCompileTime, Dest, typename Dest::ColXpr>::type ActualDest;
+
+    enum {
+      // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1
+      // on, the other hand it is good for the cache to pack the vector anyways...
+      EvalToDestAtCompileTime = (ActualDest::InnerStrideAtCompileTime==1),
+      ComplexByReal = (NumTraits<LhsScalar>::IsComplex) && (!NumTraits<RhsScalar>::IsComplex),
+      MightCannotUseDest = (ActualDest::InnerStrideAtCompileTime!=1) || ComplexByReal
+    };
+
+    gemv_static_vector_if<ResScalar,ActualDest::SizeAtCompileTime,ActualDest::MaxSizeAtCompileTime,MightCannotUseDest> static_dest;
+
+    bool alphaIsCompatible = (!ComplexByReal) || (numext::imag(actualAlpha)==RealScalar(0));
+    bool evalToDest = EvalToDestAtCompileTime && alphaIsCompatible;
+    
+    RhsScalar compatibleAlpha = get_factor<ResScalar,RhsScalar>::run(actualAlpha);
+
+    ei_declare_aligned_stack_constructed_variable(ResScalar,actualDestPtr,dest.size(),
+                                                  evalToDest ? dest.data() : static_dest.data());
+    
+    if(!evalToDest)
+    {
+      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      int size = dest.size();
+      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      #endif
+      if(!alphaIsCompatible)
+      {
+        MappedDest(actualDestPtr, dest.size()).setZero();
+        compatibleAlpha = RhsScalar(1);
+      }
+      else
+        MappedDest(actualDestPtr, dest.size()) = dest;
+    }
+
+    general_matrix_vector_product
+      <Index,LhsScalar,ColMajor,LhsBlasTraits::NeedToConjugate,RhsScalar,RhsBlasTraits::NeedToConjugate>::run(
+        actualLhs.rows(), actualLhs.cols(),
+        actualLhs.data(), actualLhs.outerStride(),
+        actualRhs.data(), actualRhs.innerStride(),
+        actualDestPtr, 1,
+        compatibleAlpha);
+
+    if (!evalToDest)
+    {
+      if(!alphaIsCompatible)
+        dest += actualAlpha * MappedDest(actualDestPtr, dest.size());
+      else
+        dest = MappedDest(actualDestPtr, dest.size());
+    }
+  }
+};
+
+template<> struct gemv_selector<OnTheRight,RowMajor,true>
+{
+  template<typename ProductType, typename Dest>
+  static void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
+  {
+    typedef typename ProductType::LhsScalar LhsScalar;
+    typedef typename ProductType::RhsScalar RhsScalar;
+    typedef typename ProductType::Scalar    ResScalar;
+    typedef typename ProductType::Index Index;
+    typedef typename ProductType::ActualLhsType ActualLhsType;
+    typedef typename ProductType::ActualRhsType ActualRhsType;
+    typedef typename ProductType::_ActualRhsType _ActualRhsType;
+    typedef typename ProductType::LhsBlasTraits LhsBlasTraits;
+    typedef typename ProductType::RhsBlasTraits RhsBlasTraits;
+
+    typename add_const<ActualLhsType>::type actualLhs = LhsBlasTraits::extract(prod.lhs());
+    typename add_const<ActualRhsType>::type actualRhs = RhsBlasTraits::extract(prod.rhs());
+
+    ResScalar actualAlpha = alpha * LhsBlasTraits::extractScalarFactor(prod.lhs())
+                                  * RhsBlasTraits::extractScalarFactor(prod.rhs());
+
+    enum {
+      // FIXME find a way to allow an inner stride on the result if packet_traits<Scalar>::size==1
+      // on, the other hand it is good for the cache to pack the vector anyways...
+      DirectlyUseRhs = _ActualRhsType::InnerStrideAtCompileTime==1
+    };
+
+    gemv_static_vector_if<RhsScalar,_ActualRhsType::SizeAtCompileTime,_ActualRhsType::MaxSizeAtCompileTime,!DirectlyUseRhs> static_rhs;
+
+    ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhsPtr,actualRhs.size(),
+        DirectlyUseRhs ? const_cast<RhsScalar*>(actualRhs.data()) : static_rhs.data());
+
+    if(!DirectlyUseRhs)
+    {
+      #ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      int size = actualRhs.size();
+      EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+      #endif
+      Map<typename _ActualRhsType::PlainObject>(actualRhsPtr, actualRhs.size()) = actualRhs;
+    }
+
+    general_matrix_vector_product
+      <Index,LhsScalar,RowMajor,LhsBlasTraits::NeedToConjugate,RhsScalar,RhsBlasTraits::NeedToConjugate>::run(
+        actualLhs.rows(), actualLhs.cols(),
+        actualLhs.data(), actualLhs.outerStride(),
+        actualRhsPtr, 1,
+        dest.data(), dest.col(0).innerStride(), //NOTE  if dest is not a vector at compile-time, then dest.innerStride() might be wrong. (bug 1166)
+        actualAlpha);
+  }
+};
+
+template<> struct gemv_selector<OnTheRight,ColMajor,false>
+{
+  template<typename ProductType, typename Dest>
+  static void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
+  {
+    typedef typename Dest::Index Index;
+    // TODO makes sure dest is sequentially stored in memory, otherwise use a temp
+    const Index size = prod.rhs().rows();
+    for(Index k=0; k<size; ++k)
+      dest += (alpha*prod.rhs().coeff(k)) * prod.lhs().col(k);
+  }
+};
+
+template<> struct gemv_selector<OnTheRight,RowMajor,false>
+{
+  template<typename ProductType, typename Dest>
+  static void run(const ProductType& prod, Dest& dest, const typename ProductType::Scalar& alpha)
+  {
+    typedef typename Dest::Index Index;
+    // TODO makes sure rhs is sequentially stored in memory, otherwise use a temp
+    const Index rows = prod.rows();
+    for(Index i=0; i<rows; ++i)
+      dest.coeffRef(i) += alpha * (prod.lhs().row(i).cwiseProduct(prod.rhs().transpose())).sum();
+  }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Implementation of matrix base methods
+***************************************************************************/
+
+/** \returns the matrix product of \c *this and \a other.
+  *
+  * \note If instead of the matrix product you want the coefficient-wise product, see Cwise::operator*().
+  *
+  * \sa lazyProduct(), operator*=(const MatrixBase&), Cwise::operator*()
+  */
+template<typename Derived>
+template<typename OtherDerived>
+inline const typename ProductReturnType<Derived, OtherDerived>::Type
+MatrixBase<Derived>::operator*(const MatrixBase<OtherDerived> &other) const
+{
+  // A note regarding the function declaration: In MSVC, this function will sometimes
+  // not be inlined since DenseStorage is an unwindable object for dynamic
+  // matrices and product types are holding a member to store the result.
+  // Thus it does not help tagging this function with EIGEN_STRONG_INLINE.
+  enum {
+    ProductIsValid =  Derived::ColsAtCompileTime==Dynamic
+                   || OtherDerived::RowsAtCompileTime==Dynamic
+                   || int(Derived::ColsAtCompileTime)==int(OtherDerived::RowsAtCompileTime),
+    AreVectors = Derived::IsVectorAtCompileTime && OtherDerived::IsVectorAtCompileTime,
+    SameSizes = EIGEN_PREDICATE_SAME_MATRIX_SIZE(Derived,OtherDerived)
+  };
+  // note to the lost user:
+  //    * for a dot product use: v1.dot(v2)
+  //    * for a coeff-wise product use: v1.cwiseProduct(v2)
+  EIGEN_STATIC_ASSERT(ProductIsValid || !(AreVectors && SameSizes),
+    INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS)
+  EIGEN_STATIC_ASSERT(ProductIsValid || !(SameSizes && !AreVectors),
+    INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION)
+  EIGEN_STATIC_ASSERT(ProductIsValid || SameSizes, INVALID_MATRIX_PRODUCT)
+#ifdef EIGEN_DEBUG_PRODUCT
+  internal::product_type<Derived,OtherDerived>::debug();
+#endif
+  return typename ProductReturnType<Derived,OtherDerived>::Type(derived(), other.derived());
+}
+
+/** \returns an expression of the matrix product of \c *this and \a other without implicit evaluation.
+  *
+  * The returned product will behave like any other expressions: the coefficients of the product will be
+  * computed once at a time as requested. This might be useful in some extremely rare cases when only
+  * a small and no coherent fraction of the result's coefficients have to be computed.
+  *
+  * \warning This version of the matrix product can be much much slower. So use it only if you know
+  * what you are doing and that you measured a true speed improvement.
+  *
+  * \sa operator*(const MatrixBase&)
+  */
+template<typename Derived>
+template<typename OtherDerived>
+const typename LazyProductReturnType<Derived,OtherDerived>::Type
+MatrixBase<Derived>::lazyProduct(const MatrixBase<OtherDerived> &other) const
+{
+  enum {
+    ProductIsValid =  Derived::ColsAtCompileTime==Dynamic
+                   || OtherDerived::RowsAtCompileTime==Dynamic
+                   || int(Derived::ColsAtCompileTime)==int(OtherDerived::RowsAtCompileTime),
+    AreVectors = Derived::IsVectorAtCompileTime && OtherDerived::IsVectorAtCompileTime,
+    SameSizes = EIGEN_PREDICATE_SAME_MATRIX_SIZE(Derived,OtherDerived)
+  };
+  // note to the lost user:
+  //    * for a dot product use: v1.dot(v2)
+  //    * for a coeff-wise product use: v1.cwiseProduct(v2)
+  EIGEN_STATIC_ASSERT(ProductIsValid || !(AreVectors && SameSizes),
+    INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS)
+  EIGEN_STATIC_ASSERT(ProductIsValid || !(SameSizes && !AreVectors),
+    INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION)
+  EIGEN_STATIC_ASSERT(ProductIsValid || SameSizes, INVALID_MATRIX_PRODUCT)
+
+  return typename LazyProductReturnType<Derived,OtherDerived>::Type(derived(), other.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PRODUCT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DiagonalProduct.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DiagonalProduct.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DiagonalProduct.h	(revision 2476)
@@ -0,0 +1,131 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DIAGONALPRODUCT_H
+#define EIGEN_DIAGONALPRODUCT_H
+
+namespace Eigen { 
+
+namespace internal {
+template<typename MatrixType, typename DiagonalType, int ProductOrder>
+struct traits<DiagonalProduct<MatrixType, DiagonalType, ProductOrder> >
+ : traits<MatrixType>
+{
+  typedef typename scalar_product_traits<typename MatrixType::Scalar, typename DiagonalType::Scalar>::ReturnType Scalar;
+  enum {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+
+    _StorageOrder = MatrixType::Flags & RowMajorBit ? RowMajor : ColMajor,
+    _ScalarAccessOnDiag =  !((int(_StorageOrder) == ColMajor && int(ProductOrder) == OnTheLeft)
+                          ||(int(_StorageOrder) == RowMajor && int(ProductOrder) == OnTheRight)),
+    _SameTypes = is_same<typename MatrixType::Scalar, typename DiagonalType::Scalar>::value,
+    // FIXME currently we need same types, but in the future the next rule should be the one
+    //_Vectorizable = bool(int(MatrixType::Flags)&PacketAccessBit) && ((!_PacketOnDiag) || (_SameTypes && bool(int(DiagonalType::DiagonalVectorType::Flags)&PacketAccessBit))),
+    _Vectorizable = bool(int(MatrixType::Flags)&PacketAccessBit) && _SameTypes && (_ScalarAccessOnDiag || (bool(int(DiagonalType::DiagonalVectorType::Flags)&PacketAccessBit))),
+    _LinearAccessMask = (RowsAtCompileTime==1 || ColsAtCompileTime==1) ? LinearAccessBit : 0,
+
+    Flags = ((HereditaryBits|_LinearAccessMask|AlignedBit) & (unsigned int)(MatrixType::Flags)) | (_Vectorizable ? PacketAccessBit : 0),//(int(MatrixType::Flags)&int(DiagonalType::DiagonalVectorType::Flags)&AlignedBit),
+    Cost0 = EIGEN_ADD_COST(NumTraits<Scalar>::MulCost, MatrixType::CoeffReadCost),
+    CoeffReadCost = EIGEN_ADD_COST(Cost0,DiagonalType::DiagonalVectorType::CoeffReadCost)
+  };
+};
+}
+
+template<typename MatrixType, typename DiagonalType, int ProductOrder>
+class DiagonalProduct : internal::no_assignment_operator,
+                        public MatrixBase<DiagonalProduct<MatrixType, DiagonalType, ProductOrder> >
+{
+  public:
+
+    typedef MatrixBase<DiagonalProduct> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(DiagonalProduct)
+
+    inline DiagonalProduct(const MatrixType& matrix, const DiagonalType& diagonal)
+      : m_matrix(matrix), m_diagonal(diagonal)
+    {
+      eigen_assert(diagonal.diagonal().size() == (ProductOrder == OnTheLeft ? matrix.rows() : matrix.cols()));
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_matrix.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_matrix.cols(); }
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index row, Index col) const
+    {
+      return m_diagonal.diagonal().coeff(ProductOrder == OnTheLeft ? row : col) * m_matrix.coeff(row, col);
+    }
+    
+    EIGEN_STRONG_INLINE const Scalar coeff(Index idx) const
+    {
+      enum {
+        StorageOrder = int(MatrixType::Flags) & RowMajorBit ? RowMajor : ColMajor
+      };
+      return coeff(int(StorageOrder)==ColMajor?idx:0,int(StorageOrder)==ColMajor?0:idx);
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index row, Index col) const
+    {
+      enum {
+        StorageOrder = Flags & RowMajorBit ? RowMajor : ColMajor
+      };
+      const Index indexInDiagonalVector = ProductOrder == OnTheLeft ? row : col;
+      return packet_impl<LoadMode>(row,col,indexInDiagonalVector,typename internal::conditional<
+        ((int(StorageOrder) == RowMajor && int(ProductOrder) == OnTheLeft)
+       ||(int(StorageOrder) == ColMajor && int(ProductOrder) == OnTheRight)), internal::true_type, internal::false_type>::type());
+    }
+    
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index idx) const
+    {
+      enum {
+        StorageOrder = int(MatrixType::Flags) & RowMajorBit ? RowMajor : ColMajor
+      };
+      return packet<LoadMode>(int(StorageOrder)==ColMajor?idx:0,int(StorageOrder)==ColMajor?0:idx);
+    }
+
+  protected:
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet_impl(Index row, Index col, Index id, internal::true_type) const
+    {
+      return internal::pmul(m_matrix.template packet<LoadMode>(row, col),
+                     internal::pset1<PacketScalar>(m_diagonal.diagonal().coeff(id)));
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet_impl(Index row, Index col, Index id, internal::false_type) const
+    {
+      enum {
+        InnerSize = (MatrixType::Flags & RowMajorBit) ? MatrixType::ColsAtCompileTime : MatrixType::RowsAtCompileTime,
+        DiagonalVectorPacketLoadMode = (LoadMode == Aligned && (((InnerSize%16) == 0) || (int(DiagonalType::DiagonalVectorType::Flags)&AlignedBit)==AlignedBit) ? Aligned : Unaligned)
+      };
+      return internal::pmul(m_matrix.template packet<LoadMode>(row, col),
+                     m_diagonal.diagonal().template packet<DiagonalVectorPacketLoadMode>(id));
+    }
+
+    typename MatrixType::Nested m_matrix;
+    typename DiagonalType::Nested m_diagonal;
+};
+
+/** \returns the diagonal matrix product of \c *this by the diagonal matrix \a diagonal.
+  */
+template<typename Derived>
+template<typename DiagonalDerived>
+inline const DiagonalProduct<Derived, DiagonalDerived, OnTheRight>
+MatrixBase<Derived>::operator*(const DiagonalBase<DiagonalDerived> &a_diagonal) const
+{
+  return DiagonalProduct<Derived, DiagonalDerived, OnTheRight>(derived(), a_diagonal.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_DIAGONALPRODUCT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DenseCoeffsBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DenseCoeffsBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DenseCoeffsBase.h	(revision 2476)
@@ -0,0 +1,754 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DENSECOEFFSBASE_H
+#define EIGEN_DENSECOEFFSBASE_H
+
+namespace Eigen {
+
+namespace internal {
+template<typename T> struct add_const_on_value_type_if_arithmetic
+{
+  typedef typename conditional<is_arithmetic<T>::value, T, typename add_const_on_value_type<T>::type>::type type;
+};
+}
+
+/** \brief Base class providing read-only coefficient access to matrices and arrays.
+  * \ingroup Core_Module
+  * \tparam Derived Type of the derived class
+  * \tparam #ReadOnlyAccessors Constant indicating read-only access
+  *
+  * This class defines the \c operator() \c const function and friends, which can be used to read specific
+  * entries of a matrix or array.
+  * 
+  * \sa DenseCoeffsBase<Derived, WriteAccessors>, DenseCoeffsBase<Derived, DirectAccessors>,
+  *     \ref TopicClassHierarchy
+  */
+template<typename Derived>
+class DenseCoeffsBase<Derived,ReadOnlyAccessors> : public EigenBase<Derived>
+{
+  public:
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+
+    // Explanation for this CoeffReturnType typedef.
+    // - This is the return type of the coeff() method.
+    // - The LvalueBit means exactly that we can offer a coeffRef() method, which means exactly that we can get references
+    // to coeffs, which means exactly that we can have coeff() return a const reference (as opposed to returning a value).
+    // - The is_artihmetic check is required since "const int", "const double", etc. will cause warnings on some systems
+    // while the declaration of "const T", where T is a non arithmetic type does not. Always returning "const Scalar&" is
+    // not possible, since the underlying expressions might not offer a valid address the reference could be referring to.
+    typedef typename internal::conditional<bool(internal::traits<Derived>::Flags&LvalueBit),
+                         const Scalar&,
+                         typename internal::conditional<internal::is_arithmetic<Scalar>::value, Scalar, const Scalar>::type
+                     >::type CoeffReturnType;
+
+    typedef typename internal::add_const_on_value_type_if_arithmetic<
+                         typename internal::packet_traits<Scalar>::type
+                     >::type PacketReturnType;
+
+    typedef EigenBase<Derived> Base;
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::derived;
+
+    EIGEN_STRONG_INLINE Index rowIndexByOuterInner(Index outer, Index inner) const
+    {
+      return int(Derived::RowsAtCompileTime) == 1 ? 0
+          : int(Derived::ColsAtCompileTime) == 1 ? inner
+          : int(Derived::Flags)&RowMajorBit ? outer
+          : inner;
+    }
+
+    EIGEN_STRONG_INLINE Index colIndexByOuterInner(Index outer, Index inner) const
+    {
+      return int(Derived::ColsAtCompileTime) == 1 ? 0
+          : int(Derived::RowsAtCompileTime) == 1 ? inner
+          : int(Derived::Flags)&RowMajorBit ? inner
+          : outer;
+    }
+
+    /** Short version: don't use this function, use
+      * \link operator()(Index,Index) const \endlink instead.
+      *
+      * Long version: this function is similar to
+      * \link operator()(Index,Index) const \endlink, but without the assertion.
+      * Use this for limiting the performance cost of debugging code when doing
+      * repeated coefficient access. Only use this when it is guaranteed that the
+      * parameters \a row and \a col are in range.
+      *
+      * If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this
+      * function equivalent to \link operator()(Index,Index) const \endlink.
+      *
+      * \sa operator()(Index,Index) const, coeffRef(Index,Index), coeff(Index) const
+      */
+    EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
+    {
+      eigen_internal_assert(row >= 0 && row < rows()
+                        && col >= 0 && col < cols());
+      return derived().coeff(row, col);
+    }
+
+    EIGEN_STRONG_INLINE CoeffReturnType coeffByOuterInner(Index outer, Index inner) const
+    {
+      return coeff(rowIndexByOuterInner(outer, inner),
+                   colIndexByOuterInner(outer, inner));
+    }
+
+    /** \returns the coefficient at given the given row and column.
+      *
+      * \sa operator()(Index,Index), operator[](Index)
+      */
+    EIGEN_STRONG_INLINE CoeffReturnType operator()(Index row, Index col) const
+    {
+      eigen_assert(row >= 0 && row < rows()
+          && col >= 0 && col < cols());
+      return derived().coeff(row, col);
+    }
+
+    /** Short version: don't use this function, use
+      * \link operator[](Index) const \endlink instead.
+      *
+      * Long version: this function is similar to
+      * \link operator[](Index) const \endlink, but without the assertion.
+      * Use this for limiting the performance cost of debugging code when doing
+      * repeated coefficient access. Only use this when it is guaranteed that the
+      * parameter \a index is in range.
+      *
+      * If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this
+      * function equivalent to \link operator[](Index) const \endlink.
+      *
+      * \sa operator[](Index) const, coeffRef(Index), coeff(Index,Index) const
+      */
+
+    EIGEN_STRONG_INLINE CoeffReturnType
+    coeff(Index index) const
+    {
+      eigen_internal_assert(index >= 0 && index < size());
+      return derived().coeff(index);
+    }
+
+
+    /** \returns the coefficient at given index.
+      *
+      * This method is allowed only for vector expressions, and for matrix expressions having the LinearAccessBit.
+      *
+      * \sa operator[](Index), operator()(Index,Index) const, x() const, y() const,
+      * z() const, w() const
+      */
+
+    EIGEN_STRONG_INLINE CoeffReturnType
+    operator[](Index index) const
+    {
+      #ifndef EIGEN2_SUPPORT
+      EIGEN_STATIC_ASSERT(Derived::IsVectorAtCompileTime,
+                          THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD)
+      #endif
+      eigen_assert(index >= 0 && index < size());
+      return derived().coeff(index);
+    }
+
+    /** \returns the coefficient at given index.
+      *
+      * This is synonymous to operator[](Index) const.
+      *
+      * This method is allowed only for vector expressions, and for matrix expressions having the LinearAccessBit.
+      *
+      * \sa operator[](Index), operator()(Index,Index) const, x() const, y() const,
+      * z() const, w() const
+      */
+
+    EIGEN_STRONG_INLINE CoeffReturnType
+    operator()(Index index) const
+    {
+      eigen_assert(index >= 0 && index < size());
+      return derived().coeff(index);
+    }
+
+    /** equivalent to operator[](0).  */
+
+    EIGEN_STRONG_INLINE CoeffReturnType
+    x() const { return (*this)[0]; }
+
+    /** equivalent to operator[](1).  */
+
+    EIGEN_STRONG_INLINE CoeffReturnType
+    y() const { return (*this)[1]; }
+
+    /** equivalent to operator[](2).  */
+
+    EIGEN_STRONG_INLINE CoeffReturnType
+    z() const { return (*this)[2]; }
+
+    /** equivalent to operator[](3).  */
+
+    EIGEN_STRONG_INLINE CoeffReturnType
+    w() const { return (*this)[3]; }
+
+    /** \internal
+      * \returns the packet of coefficients starting at the given row and column. It is your responsibility
+      * to ensure that a packet really starts there. This method is only available on expressions having the
+      * PacketAccessBit.
+      *
+      * The \a LoadMode parameter may have the value \a #Aligned or \a #Unaligned. Its effect is to select
+      * the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets
+      * starting at an address which is a multiple of the packet size.
+      */
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketReturnType packet(Index row, Index col) const
+    {
+      eigen_internal_assert(row >= 0 && row < rows()
+                      && col >= 0 && col < cols());
+      return derived().template packet<LoadMode>(row,col);
+    }
+
+
+    /** \internal */
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketReturnType packetByOuterInner(Index outer, Index inner) const
+    {
+      return packet<LoadMode>(rowIndexByOuterInner(outer, inner),
+                              colIndexByOuterInner(outer, inner));
+    }
+
+    /** \internal
+      * \returns the packet of coefficients starting at the given index. It is your responsibility
+      * to ensure that a packet really starts there. This method is only available on expressions having the
+      * PacketAccessBit and the LinearAccessBit.
+      *
+      * The \a LoadMode parameter may have the value \a #Aligned or \a #Unaligned. Its effect is to select
+      * the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets
+      * starting at an address which is a multiple of the packet size.
+      */
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketReturnType packet(Index index) const
+    {
+      eigen_internal_assert(index >= 0 && index < size());
+      return derived().template packet<LoadMode>(index);
+    }
+
+  protected:
+    // explanation: DenseBase is doing "using ..." on the methods from DenseCoeffsBase.
+    // But some methods are only available in the DirectAccess case.
+    // So we add dummy methods here with these names, so that "using... " doesn't fail.
+    // It's not private so that the child class DenseBase can access them, and it's not public
+    // either since it's an implementation detail, so has to be protected.
+    void coeffRef();
+    void coeffRefByOuterInner();
+    void writePacket();
+    void writePacketByOuterInner();
+    void copyCoeff();
+    void copyCoeffByOuterInner();
+    void copyPacket();
+    void copyPacketByOuterInner();
+    void stride();
+    void innerStride();
+    void outerStride();
+    void rowStride();
+    void colStride();
+};
+
+/** \brief Base class providing read/write coefficient access to matrices and arrays.
+  * \ingroup Core_Module
+  * \tparam Derived Type of the derived class
+  * \tparam #WriteAccessors Constant indicating read/write access
+  *
+  * This class defines the non-const \c operator() function and friends, which can be used to write specific
+  * entries of a matrix or array. This class inherits DenseCoeffsBase<Derived, ReadOnlyAccessors> which
+  * defines the const variant for reading specific entries.
+  * 
+  * \sa DenseCoeffsBase<Derived, DirectAccessors>, \ref TopicClassHierarchy
+  */
+template<typename Derived>
+class DenseCoeffsBase<Derived, WriteAccessors> : public DenseCoeffsBase<Derived, ReadOnlyAccessors>
+{
+  public:
+
+    typedef DenseCoeffsBase<Derived, ReadOnlyAccessors> Base;
+
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    using Base::coeff;
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::derived;
+    using Base::rowIndexByOuterInner;
+    using Base::colIndexByOuterInner;
+    using Base::operator[];
+    using Base::operator();
+    using Base::x;
+    using Base::y;
+    using Base::z;
+    using Base::w;
+
+    /** Short version: don't use this function, use
+      * \link operator()(Index,Index) \endlink instead.
+      *
+      * Long version: this function is similar to
+      * \link operator()(Index,Index) \endlink, but without the assertion.
+      * Use this for limiting the performance cost of debugging code when doing
+      * repeated coefficient access. Only use this when it is guaranteed that the
+      * parameters \a row and \a col are in range.
+      *
+      * If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this
+      * function equivalent to \link operator()(Index,Index) \endlink.
+      *
+      * \sa operator()(Index,Index), coeff(Index, Index) const, coeffRef(Index)
+      */
+    EIGEN_STRONG_INLINE Scalar& coeffRef(Index row, Index col)
+    {
+      eigen_internal_assert(row >= 0 && row < rows()
+                        && col >= 0 && col < cols());
+      return derived().coeffRef(row, col);
+    }
+
+    EIGEN_STRONG_INLINE Scalar&
+    coeffRefByOuterInner(Index outer, Index inner)
+    {
+      return coeffRef(rowIndexByOuterInner(outer, inner),
+                      colIndexByOuterInner(outer, inner));
+    }
+
+    /** \returns a reference to the coefficient at given the given row and column.
+      *
+      * \sa operator[](Index)
+      */
+
+    EIGEN_STRONG_INLINE Scalar&
+    operator()(Index row, Index col)
+    {
+      eigen_assert(row >= 0 && row < rows()
+          && col >= 0 && col < cols());
+      return derived().coeffRef(row, col);
+    }
+
+
+    /** Short version: don't use this function, use
+      * \link operator[](Index) \endlink instead.
+      *
+      * Long version: this function is similar to
+      * \link operator[](Index) \endlink, but without the assertion.
+      * Use this for limiting the performance cost of debugging code when doing
+      * repeated coefficient access. Only use this when it is guaranteed that the
+      * parameters \a row and \a col are in range.
+      *
+      * If EIGEN_INTERNAL_DEBUGGING is defined, an assertion will be made, making this
+      * function equivalent to \link operator[](Index) \endlink.
+      *
+      * \sa operator[](Index), coeff(Index) const, coeffRef(Index,Index)
+      */
+
+    EIGEN_STRONG_INLINE Scalar&
+    coeffRef(Index index)
+    {
+      eigen_internal_assert(index >= 0 && index < size());
+      return derived().coeffRef(index);
+    }
+
+    /** \returns a reference to the coefficient at given index.
+      *
+      * This method is allowed only for vector expressions, and for matrix expressions having the LinearAccessBit.
+      *
+      * \sa operator[](Index) const, operator()(Index,Index), x(), y(), z(), w()
+      */
+
+    EIGEN_STRONG_INLINE Scalar&
+    operator[](Index index)
+    {
+      #ifndef EIGEN2_SUPPORT
+      EIGEN_STATIC_ASSERT(Derived::IsVectorAtCompileTime,
+                          THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD)
+      #endif
+      eigen_assert(index >= 0 && index < size());
+      return derived().coeffRef(index);
+    }
+
+    /** \returns a reference to the coefficient at given index.
+      *
+      * This is synonymous to operator[](Index).
+      *
+      * This method is allowed only for vector expressions, and for matrix expressions having the LinearAccessBit.
+      *
+      * \sa operator[](Index) const, operator()(Index,Index), x(), y(), z(), w()
+      */
+
+    EIGEN_STRONG_INLINE Scalar&
+    operator()(Index index)
+    {
+      eigen_assert(index >= 0 && index < size());
+      return derived().coeffRef(index);
+    }
+
+    /** equivalent to operator[](0).  */
+
+    EIGEN_STRONG_INLINE Scalar&
+    x() { return (*this)[0]; }
+
+    /** equivalent to operator[](1).  */
+
+    EIGEN_STRONG_INLINE Scalar&
+    y() { return (*this)[1]; }
+
+    /** equivalent to operator[](2).  */
+
+    EIGEN_STRONG_INLINE Scalar&
+    z() { return (*this)[2]; }
+
+    /** equivalent to operator[](3).  */
+
+    EIGEN_STRONG_INLINE Scalar&
+    w() { return (*this)[3]; }
+
+    /** \internal
+      * Stores the given packet of coefficients, at the given row and column of this expression. It is your responsibility
+      * to ensure that a packet really starts there. This method is only available on expressions having the
+      * PacketAccessBit.
+      *
+      * The \a LoadMode parameter may have the value \a #Aligned or \a #Unaligned. Its effect is to select
+      * the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets
+      * starting at an address which is a multiple of the packet size.
+      */
+
+    template<int StoreMode>
+    EIGEN_STRONG_INLINE void writePacket
+    (Index row, Index col, const typename internal::packet_traits<Scalar>::type& val)
+    {
+      eigen_internal_assert(row >= 0 && row < rows()
+                        && col >= 0 && col < cols());
+      derived().template writePacket<StoreMode>(row,col,val);
+    }
+
+
+    /** \internal */
+    template<int StoreMode>
+    EIGEN_STRONG_INLINE void writePacketByOuterInner
+    (Index outer, Index inner, const typename internal::packet_traits<Scalar>::type& val)
+    {
+      writePacket<StoreMode>(rowIndexByOuterInner(outer, inner),
+                            colIndexByOuterInner(outer, inner),
+                            val);
+    }
+
+    /** \internal
+      * Stores the given packet of coefficients, at the given index in this expression. It is your responsibility
+      * to ensure that a packet really starts there. This method is only available on expressions having the
+      * PacketAccessBit and the LinearAccessBit.
+      *
+      * The \a LoadMode parameter may have the value \a Aligned or \a Unaligned. Its effect is to select
+      * the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets
+      * starting at an address which is a multiple of the packet size.
+      */
+    template<int StoreMode>
+    EIGEN_STRONG_INLINE void writePacket
+    (Index index, const typename internal::packet_traits<Scalar>::type& val)
+    {
+      eigen_internal_assert(index >= 0 && index < size());
+      derived().template writePacket<StoreMode>(index,val);
+    }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+
+    /** \internal Copies the coefficient at position (row,col) of other into *this.
+      *
+      * This method is overridden in SwapWrapper, allowing swap() assignments to share 99% of their code
+      * with usual assignments.
+      *
+      * Outside of this internal usage, this method has probably no usefulness. It is hidden in the public API dox.
+      */
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE void copyCoeff(Index row, Index col, const DenseBase<OtherDerived>& other)
+    {
+      eigen_internal_assert(row >= 0 && row < rows()
+                        && col >= 0 && col < cols());
+      derived().coeffRef(row, col) = other.derived().coeff(row, col);
+    }
+
+    /** \internal Copies the coefficient at the given index of other into *this.
+      *
+      * This method is overridden in SwapWrapper, allowing swap() assignments to share 99% of their code
+      * with usual assignments.
+      *
+      * Outside of this internal usage, this method has probably no usefulness. It is hidden in the public API dox.
+      */
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE void copyCoeff(Index index, const DenseBase<OtherDerived>& other)
+    {
+      eigen_internal_assert(index >= 0 && index < size());
+      derived().coeffRef(index) = other.derived().coeff(index);
+    }
+
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE void copyCoeffByOuterInner(Index outer, Index inner, const DenseBase<OtherDerived>& other)
+    {
+      const Index row = rowIndexByOuterInner(outer,inner);
+      const Index col = colIndexByOuterInner(outer,inner);
+      // derived() is important here: copyCoeff() may be reimplemented in Derived!
+      derived().copyCoeff(row, col, other);
+    }
+
+    /** \internal Copies the packet at position (row,col) of other into *this.
+      *
+      * This method is overridden in SwapWrapper, allowing swap() assignments to share 99% of their code
+      * with usual assignments.
+      *
+      * Outside of this internal usage, this method has probably no usefulness. It is hidden in the public API dox.
+      */
+
+    template<typename OtherDerived, int StoreMode, int LoadMode>
+    EIGEN_STRONG_INLINE void copyPacket(Index row, Index col, const DenseBase<OtherDerived>& other)
+    {
+      eigen_internal_assert(row >= 0 && row < rows()
+                        && col >= 0 && col < cols());
+      derived().template writePacket<StoreMode>(row, col,
+        other.derived().template packet<LoadMode>(row, col));
+    }
+
+    /** \internal Copies the packet at the given index of other into *this.
+      *
+      * This method is overridden in SwapWrapper, allowing swap() assignments to share 99% of their code
+      * with usual assignments.
+      *
+      * Outside of this internal usage, this method has probably no usefulness. It is hidden in the public API dox.
+      */
+
+    template<typename OtherDerived, int StoreMode, int LoadMode>
+    EIGEN_STRONG_INLINE void copyPacket(Index index, const DenseBase<OtherDerived>& other)
+    {
+      eigen_internal_assert(index >= 0 && index < size());
+      derived().template writePacket<StoreMode>(index,
+        other.derived().template packet<LoadMode>(index));
+    }
+
+    /** \internal */
+    template<typename OtherDerived, int StoreMode, int LoadMode>
+    EIGEN_STRONG_INLINE void copyPacketByOuterInner(Index outer, Index inner, const DenseBase<OtherDerived>& other)
+    {
+      const Index row = rowIndexByOuterInner(outer,inner);
+      const Index col = colIndexByOuterInner(outer,inner);
+      // derived() is important here: copyCoeff() may be reimplemented in Derived!
+      derived().template copyPacket< OtherDerived, StoreMode, LoadMode>(row, col, other);
+    }
+#endif
+
+};
+
+/** \brief Base class providing direct read-only coefficient access to matrices and arrays.
+  * \ingroup Core_Module
+  * \tparam Derived Type of the derived class
+  * \tparam #DirectAccessors Constant indicating direct access
+  *
+  * This class defines functions to work with strides which can be used to access entries directly. This class
+  * inherits DenseCoeffsBase<Derived, ReadOnlyAccessors> which defines functions to access entries read-only using
+  * \c operator() .
+  *
+  * \sa \ref TopicClassHierarchy
+  */
+template<typename Derived>
+class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived, ReadOnlyAccessors>
+{
+  public:
+
+    typedef DenseCoeffsBase<Derived, ReadOnlyAccessors> Base;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::derived;
+
+    /** \returns the pointer increment between two consecutive elements within a slice in the inner direction.
+      *
+      * \sa outerStride(), rowStride(), colStride()
+      */
+    inline Index innerStride() const
+    {
+      return derived().innerStride();
+    }
+
+    /** \returns the pointer increment between two consecutive inner slices (for example, between two consecutive columns
+      *          in a column-major matrix).
+      *
+      * \sa innerStride(), rowStride(), colStride()
+      */
+    inline Index outerStride() const
+    {
+      return derived().outerStride();
+    }
+
+    // FIXME shall we remove it ?
+    inline Index stride() const
+    {
+      return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
+    }
+
+    /** \returns the pointer increment between two consecutive rows.
+      *
+      * \sa innerStride(), outerStride(), colStride()
+      */
+    inline Index rowStride() const
+    {
+      return Derived::IsRowMajor ? outerStride() : innerStride();
+    }
+
+    /** \returns the pointer increment between two consecutive columns.
+      *
+      * \sa innerStride(), outerStride(), rowStride()
+      */
+    inline Index colStride() const
+    {
+      return Derived::IsRowMajor ? innerStride() : outerStride();
+    }
+};
+
+/** \brief Base class providing direct read/write coefficient access to matrices and arrays.
+  * \ingroup Core_Module
+  * \tparam Derived Type of the derived class
+  * \tparam #DirectWriteAccessors Constant indicating direct access
+  *
+  * This class defines functions to work with strides which can be used to access entries directly. This class
+  * inherits DenseCoeffsBase<Derived, WriteAccessors> which defines functions to access entries read/write using
+  * \c operator().
+  *
+  * \sa \ref TopicClassHierarchy
+  */
+template<typename Derived>
+class DenseCoeffsBase<Derived, DirectWriteAccessors>
+  : public DenseCoeffsBase<Derived, WriteAccessors>
+{
+  public:
+
+    typedef DenseCoeffsBase<Derived, WriteAccessors> Base;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::derived;
+
+    /** \returns the pointer increment between two consecutive elements within a slice in the inner direction.
+      *
+      * \sa outerStride(), rowStride(), colStride()
+      */
+    inline Index innerStride() const
+    {
+      return derived().innerStride();
+    }
+
+    /** \returns the pointer increment between two consecutive inner slices (for example, between two consecutive columns
+      *          in a column-major matrix).
+      *
+      * \sa innerStride(), rowStride(), colStride()
+      */
+    inline Index outerStride() const
+    {
+      return derived().outerStride();
+    }
+
+    // FIXME shall we remove it ?
+    inline Index stride() const
+    {
+      return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
+    }
+
+    /** \returns the pointer increment between two consecutive rows.
+      *
+      * \sa innerStride(), outerStride(), colStride()
+      */
+    inline Index rowStride() const
+    {
+      return Derived::IsRowMajor ? outerStride() : innerStride();
+    }
+
+    /** \returns the pointer increment between two consecutive columns.
+      *
+      * \sa innerStride(), outerStride(), rowStride()
+      */
+    inline Index colStride() const
+    {
+      return Derived::IsRowMajor ? innerStride() : outerStride();
+    }
+};
+
+namespace internal {
+
+template<typename Derived, bool JustReturnZero>
+struct first_aligned_impl
+{
+  static inline typename Derived::Index run(const Derived&)
+  { return 0; }
+};
+
+template<typename Derived>
+struct first_aligned_impl<Derived, false>
+{
+  static inline typename Derived::Index run(const Derived& m)
+  {
+    return internal::first_aligned(&m.const_cast_derived().coeffRef(0,0), m.size());
+  }
+};
+
+/** \internal \returns the index of the first element of the array that is well aligned for vectorization.
+  *
+  * There is also the variant first_aligned(const Scalar*, Integer) defined in Memory.h. See it for more
+  * documentation.
+  */
+template<typename Derived>
+static inline typename Derived::Index first_aligned(const Derived& m)
+{
+  return first_aligned_impl
+          <Derived, (Derived::Flags & AlignedBit) || !(Derived::Flags & DirectAccessBit)>
+          ::run(m);
+}
+
+template<typename Derived, bool HasDirectAccess = has_direct_access<Derived>::ret>
+struct inner_stride_at_compile_time
+{
+  enum { ret = traits<Derived>::InnerStrideAtCompileTime };
+};
+
+template<typename Derived>
+struct inner_stride_at_compile_time<Derived, false>
+{
+  enum { ret = 0 };
+};
+
+template<typename Derived, bool HasDirectAccess = has_direct_access<Derived>::ret>
+struct outer_stride_at_compile_time
+{
+  enum { ret = traits<Derived>::OuterStrideAtCompileTime };
+};
+
+template<typename Derived>
+struct outer_stride_at_compile_time<Derived, false>
+{
+  enum { ret = 0 };
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_DENSECOEFFSBASE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Select.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Select.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Select.h	(revision 2476)
@@ -0,0 +1,162 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELECT_H
+#define EIGEN_SELECT_H
+
+namespace Eigen { 
+
+/** \class Select
+  * \ingroup Core_Module
+  *
+  * \brief Expression of a coefficient wise version of the C++ ternary operator ?:
+  *
+  * \param ConditionMatrixType the type of the \em condition expression which must be a boolean matrix
+  * \param ThenMatrixType the type of the \em then expression
+  * \param ElseMatrixType the type of the \em else expression
+  *
+  * This class represents an expression of a coefficient wise version of the C++ ternary operator ?:.
+  * It is the return type of DenseBase::select() and most of the time this is the only way it is used.
+  *
+  * \sa DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const
+  */
+
+namespace internal {
+template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType>
+struct traits<Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> >
+ : traits<ThenMatrixType>
+{
+  typedef typename traits<ThenMatrixType>::Scalar Scalar;
+  typedef Dense StorageKind;
+  typedef typename traits<ThenMatrixType>::XprKind XprKind;
+  typedef typename ConditionMatrixType::Nested ConditionMatrixNested;
+  typedef typename ThenMatrixType::Nested ThenMatrixNested;
+  typedef typename ElseMatrixType::Nested ElseMatrixNested;
+  enum {
+    RowsAtCompileTime = ConditionMatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = ConditionMatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = ConditionMatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = ConditionMatrixType::MaxColsAtCompileTime,
+    Flags = (unsigned int)ThenMatrixType::Flags & ElseMatrixType::Flags & HereditaryBits,
+    CoeffReadCost = traits<typename remove_all<ConditionMatrixNested>::type>::CoeffReadCost
+                  + EIGEN_SIZE_MAX(traits<typename remove_all<ThenMatrixNested>::type>::CoeffReadCost,
+                                   traits<typename remove_all<ElseMatrixNested>::type>::CoeffReadCost)
+  };
+};
+}
+
+template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType>
+class Select : internal::no_assignment_operator,
+  public internal::dense_xpr_base< Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> >::type
+{
+  public:
+
+    typedef typename internal::dense_xpr_base<Select>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Select)
+
+    Select(const ConditionMatrixType& a_conditionMatrix,
+           const ThenMatrixType& a_thenMatrix,
+           const ElseMatrixType& a_elseMatrix)
+      : m_condition(a_conditionMatrix), m_then(a_thenMatrix), m_else(a_elseMatrix)
+    {
+      eigen_assert(m_condition.rows() == m_then.rows() && m_condition.rows() == m_else.rows());
+      eigen_assert(m_condition.cols() == m_then.cols() && m_condition.cols() == m_else.cols());
+    }
+
+    Index rows() const { return m_condition.rows(); }
+    Index cols() const { return m_condition.cols(); }
+
+    const Scalar coeff(Index i, Index j) const
+    {
+      if (m_condition.coeff(i,j))
+        return m_then.coeff(i,j);
+      else
+        return m_else.coeff(i,j);
+    }
+
+    const Scalar coeff(Index i) const
+    {
+      if (m_condition.coeff(i))
+        return m_then.coeff(i);
+      else
+        return m_else.coeff(i);
+    }
+
+    const ConditionMatrixType& conditionMatrix() const
+    {
+      return m_condition;
+    }
+
+    const ThenMatrixType& thenMatrix() const
+    {
+      return m_then;
+    }
+
+    const ElseMatrixType& elseMatrix() const
+    {
+      return m_else;
+    }
+
+  protected:
+    typename ConditionMatrixType::Nested m_condition;
+    typename ThenMatrixType::Nested m_then;
+    typename ElseMatrixType::Nested m_else;
+};
+
+
+/** \returns a matrix where each coefficient (i,j) is equal to \a thenMatrix(i,j)
+  * if \c *this(i,j), and \a elseMatrix(i,j) otherwise.
+  *
+  * Example: \include MatrixBase_select.cpp
+  * Output: \verbinclude MatrixBase_select.out
+  *
+  * \sa class Select
+  */
+template<typename Derived>
+template<typename ThenDerived,typename ElseDerived>
+inline const Select<Derived,ThenDerived,ElseDerived>
+DenseBase<Derived>::select(const DenseBase<ThenDerived>& thenMatrix,
+                            const DenseBase<ElseDerived>& elseMatrix) const
+{
+  return Select<Derived,ThenDerived,ElseDerived>(derived(), thenMatrix.derived(), elseMatrix.derived());
+}
+
+/** Version of DenseBase::select(const DenseBase&, const DenseBase&) with
+  * the \em else expression being a scalar value.
+  *
+  * \sa DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const, class Select
+  */
+template<typename Derived>
+template<typename ThenDerived>
+inline const Select<Derived,ThenDerived, typename ThenDerived::ConstantReturnType>
+DenseBase<Derived>::select(const DenseBase<ThenDerived>& thenMatrix,
+                           const typename ThenDerived::Scalar& elseScalar) const
+{
+  return Select<Derived,ThenDerived,typename ThenDerived::ConstantReturnType>(
+    derived(), thenMatrix.derived(), ThenDerived::Constant(rows(),cols(),elseScalar));
+}
+
+/** Version of DenseBase::select(const DenseBase&, const DenseBase&) with
+  * the \em then expression being a scalar value.
+  *
+  * \sa DenseBase::select(const DenseBase<ThenDerived>&, const DenseBase<ElseDerived>&) const, class Select
+  */
+template<typename Derived>
+template<typename ElseDerived>
+inline const Select<Derived, typename ElseDerived::ConstantReturnType, ElseDerived >
+DenseBase<Derived>::select(const typename ElseDerived::Scalar& thenScalar,
+                           const DenseBase<ElseDerived>& elseMatrix) const
+{
+  return Select<Derived,typename ElseDerived::ConstantReturnType,ElseDerived>(
+    derived(), ElseDerived::Constant(rows(),cols(),thenScalar), elseMatrix.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELECT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/SolveTriangular.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/SolveTriangular.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/SolveTriangular.h	(revision 2476)
@@ -0,0 +1,261 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SOLVETRIANGULAR_H
+#define EIGEN_SOLVETRIANGULAR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+// Forward declarations:
+// The following two routines are implemented in the products/TriangularSolver*.h files
+template<typename LhsScalar, typename RhsScalar, typename Index, int Side, int Mode, bool Conjugate, int StorageOrder>
+struct triangular_solve_vector;
+
+template <typename Scalar, typename Index, int Side, int Mode, bool Conjugate, int TriStorageOrder, int OtherStorageOrder>
+struct triangular_solve_matrix;
+
+// small helper struct extracting some traits on the underlying solver operation
+template<typename Lhs, typename Rhs, int Side>
+class trsolve_traits
+{
+  private:
+    enum {
+      RhsIsVectorAtCompileTime = (Side==OnTheLeft ? Rhs::ColsAtCompileTime : Rhs::RowsAtCompileTime)==1
+    };
+  public:
+    enum {
+      Unrolling   = (RhsIsVectorAtCompileTime && Rhs::SizeAtCompileTime != Dynamic && Rhs::SizeAtCompileTime <= 8)
+                  ? CompleteUnrolling : NoUnrolling,
+      RhsVectors  = RhsIsVectorAtCompileTime ? 1 : Dynamic
+    };
+};
+
+template<typename Lhs, typename Rhs,
+  int Side, // can be OnTheLeft/OnTheRight
+  int Mode, // can be Upper/Lower | UnitDiag
+  int Unrolling = trsolve_traits<Lhs,Rhs,Side>::Unrolling,
+  int RhsVectors = trsolve_traits<Lhs,Rhs,Side>::RhsVectors
+  >
+struct triangular_solver_selector;
+
+template<typename Lhs, typename Rhs, int Side, int Mode>
+struct triangular_solver_selector<Lhs,Rhs,Side,Mode,NoUnrolling,1>
+{
+  typedef typename Lhs::Scalar LhsScalar;
+  typedef typename Rhs::Scalar RhsScalar;
+  typedef blas_traits<Lhs> LhsProductTraits;
+  typedef typename LhsProductTraits::ExtractType ActualLhsType;
+  typedef Map<Matrix<RhsScalar,Dynamic,1>, Aligned> MappedRhs;
+  static void run(const Lhs& lhs, Rhs& rhs)
+  {
+    ActualLhsType actualLhs = LhsProductTraits::extract(lhs);
+
+    // FIXME find a way to allow an inner stride if packet_traits<Scalar>::size==1
+
+    bool useRhsDirectly = Rhs::InnerStrideAtCompileTime==1 || rhs.innerStride()==1;
+
+    ei_declare_aligned_stack_constructed_variable(RhsScalar,actualRhs,rhs.size(),
+                                                  (useRhsDirectly ? rhs.data() : 0));
+                                                  
+    if(!useRhsDirectly)
+      MappedRhs(actualRhs,rhs.size()) = rhs;
+
+    triangular_solve_vector<LhsScalar, RhsScalar, typename Lhs::Index, Side, Mode, LhsProductTraits::NeedToConjugate,
+                            (int(Lhs::Flags) & RowMajorBit) ? RowMajor : ColMajor>
+      ::run(actualLhs.cols(), actualLhs.data(), actualLhs.outerStride(), actualRhs);
+
+    if(!useRhsDirectly)
+      rhs = MappedRhs(actualRhs, rhs.size());
+  }
+};
+
+// the rhs is a matrix
+template<typename Lhs, typename Rhs, int Side, int Mode>
+struct triangular_solver_selector<Lhs,Rhs,Side,Mode,NoUnrolling,Dynamic>
+{
+  typedef typename Rhs::Scalar Scalar;
+  typedef typename Rhs::Index Index;
+  typedef blas_traits<Lhs> LhsProductTraits;
+  typedef typename LhsProductTraits::DirectLinearAccessType ActualLhsType;
+
+  static void run(const Lhs& lhs, Rhs& rhs)
+  {
+    typename internal::add_const_on_value_type<ActualLhsType>::type actualLhs = LhsProductTraits::extract(lhs);
+
+    const Index size = lhs.rows();
+    const Index othersize = Side==OnTheLeft? rhs.cols() : rhs.rows();
+
+    typedef internal::gemm_blocking_space<(Rhs::Flags&RowMajorBit) ? RowMajor : ColMajor,Scalar,Scalar,
+              Rhs::MaxRowsAtCompileTime, Rhs::MaxColsAtCompileTime, Lhs::MaxRowsAtCompileTime,4> BlockingType;
+
+    BlockingType blocking(rhs.rows(), rhs.cols(), size);
+
+    triangular_solve_matrix<Scalar,Index,Side,Mode,LhsProductTraits::NeedToConjugate,(int(Lhs::Flags) & RowMajorBit) ? RowMajor : ColMajor,
+                               (Rhs::Flags&RowMajorBit) ? RowMajor : ColMajor>
+      ::run(size, othersize, &actualLhs.coeffRef(0,0), actualLhs.outerStride(), &rhs.coeffRef(0,0), rhs.outerStride(), blocking);
+  }
+};
+
+/***************************************************************************
+* meta-unrolling implementation
+***************************************************************************/
+
+template<typename Lhs, typename Rhs, int Mode, int Index, int Size,
+         bool Stop = Index==Size>
+struct triangular_solver_unroller;
+
+template<typename Lhs, typename Rhs, int Mode, int Index, int Size>
+struct triangular_solver_unroller<Lhs,Rhs,Mode,Index,Size,false> {
+  enum {
+    IsLower = ((Mode&Lower)==Lower),
+    RowIndex = IsLower ? Index : Size - Index - 1,
+    S = IsLower ? 0     : RowIndex+1
+  };
+  static void run(const Lhs& lhs, Rhs& rhs)
+  {
+    if (Index>0)
+      rhs.coeffRef(RowIndex) -= lhs.row(RowIndex).template segment<Index>(S).transpose()
+                         .cwiseProduct(rhs.template segment<Index>(S)).sum();
+
+    if(!(Mode & UnitDiag))
+      rhs.coeffRef(RowIndex) /= lhs.coeff(RowIndex,RowIndex);
+
+    triangular_solver_unroller<Lhs,Rhs,Mode,Index+1,Size>::run(lhs,rhs);
+  }
+};
+
+template<typename Lhs, typename Rhs, int Mode, int Index, int Size>
+struct triangular_solver_unroller<Lhs,Rhs,Mode,Index,Size,true> {
+  static void run(const Lhs&, Rhs&) {}
+};
+
+template<typename Lhs, typename Rhs, int Mode>
+struct triangular_solver_selector<Lhs,Rhs,OnTheLeft,Mode,CompleteUnrolling,1> {
+  static void run(const Lhs& lhs, Rhs& rhs)
+  { triangular_solver_unroller<Lhs,Rhs,Mode,0,Rhs::SizeAtCompileTime>::run(lhs,rhs); }
+};
+
+template<typename Lhs, typename Rhs, int Mode>
+struct triangular_solver_selector<Lhs,Rhs,OnTheRight,Mode,CompleteUnrolling,1> {
+  static void run(const Lhs& lhs, Rhs& rhs)
+  {
+    Transpose<const Lhs> trLhs(lhs);
+    Transpose<Rhs> trRhs(rhs);
+    
+    triangular_solver_unroller<Transpose<const Lhs>,Transpose<Rhs>,
+                              ((Mode&Upper)==Upper ? Lower : Upper) | (Mode&UnitDiag),
+                              0,Rhs::SizeAtCompileTime>::run(trLhs,trRhs);
+  }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* TriangularView methods
+***************************************************************************/
+
+/** "in-place" version of TriangularView::solve() where the result is written in \a other
+  *
+  * \warning The parameter is only marked 'const' to make the C++ compiler accept a temporary expression here.
+  * This function will const_cast it, so constness isn't honored here.
+  *
+  * See TriangularView:solve() for the details.
+  */
+template<typename MatrixType, unsigned int Mode>
+template<int Side, typename OtherDerived>
+void TriangularView<MatrixType,Mode>::solveInPlace(const MatrixBase<OtherDerived>& _other) const
+{
+  OtherDerived& other = _other.const_cast_derived();
+  eigen_assert( cols() == rows() && ((Side==OnTheLeft && cols() == other.rows()) || (Side==OnTheRight && cols() == other.cols())) );
+  eigen_assert((!(Mode & ZeroDiag)) && bool(Mode & (Upper|Lower)));
+
+  enum { copy = internal::traits<OtherDerived>::Flags & RowMajorBit  && OtherDerived::IsVectorAtCompileTime };
+  typedef typename internal::conditional<copy,
+    typename internal::plain_matrix_type_column_major<OtherDerived>::type, OtherDerived&>::type OtherCopy;
+  OtherCopy otherCopy(other);
+
+  internal::triangular_solver_selector<MatrixType, typename internal::remove_reference<OtherCopy>::type,
+    Side, Mode>::run(nestedExpression(), otherCopy);
+
+  if (copy)
+    other = otherCopy;
+}
+
+/** \returns the product of the inverse of \c *this with \a other, \a *this being triangular.
+  *
+  * This function computes the inverse-matrix matrix product inverse(\c *this) * \a other if
+  * \a Side==OnTheLeft (the default), or the right-inverse-multiply  \a other * inverse(\c *this) if
+  * \a Side==OnTheRight.
+  *
+  * The matrix \c *this must be triangular and invertible (i.e., all the coefficients of the
+  * diagonal must be non zero). It works as a forward (resp. backward) substitution if \c *this
+  * is an upper (resp. lower) triangular matrix.
+  *
+  * Example: \include MatrixBase_marked.cpp
+  * Output: \verbinclude MatrixBase_marked.out
+  *
+  * This function returns an expression of the inverse-multiply and can works in-place if it is assigned
+  * to the same matrix or vector \a other.
+  *
+  * For users coming from BLAS, this function (and more specifically solveInPlace()) offer
+  * all the operations supported by the \c *TRSV and \c *TRSM BLAS routines.
+  *
+  * \sa TriangularView::solveInPlace()
+  */
+template<typename Derived, unsigned int Mode>
+template<int Side, typename Other>
+const internal::triangular_solve_retval<Side,TriangularView<Derived,Mode>,Other>
+TriangularView<Derived,Mode>::solve(const MatrixBase<Other>& other) const
+{
+  return internal::triangular_solve_retval<Side,TriangularView,Other>(*this, other.derived());
+}
+
+namespace internal {
+
+
+template<int Side, typename TriangularType, typename Rhs>
+struct traits<triangular_solve_retval<Side, TriangularType, Rhs> >
+{
+  typedef typename internal::plain_matrix_type_column_major<Rhs>::type ReturnType;
+};
+
+template<int Side, typename TriangularType, typename Rhs> struct triangular_solve_retval
+ : public ReturnByValue<triangular_solve_retval<Side, TriangularType, Rhs> >
+{
+  typedef typename remove_all<typename Rhs::Nested>::type RhsNestedCleaned;
+  typedef ReturnByValue<triangular_solve_retval> Base;
+  typedef typename Base::Index Index;
+
+  triangular_solve_retval(const TriangularType& tri, const Rhs& rhs)
+    : m_triangularMatrix(tri), m_rhs(rhs)
+  {}
+
+  inline Index rows() const { return m_rhs.rows(); }
+  inline Index cols() const { return m_rhs.cols(); }
+
+  template<typename Dest> inline void evalTo(Dest& dst) const
+  {
+    const typename Dest::Scalar *dst_data = internal::extract_data(dst);
+    if(!(is_same<RhsNestedCleaned,Dest>::value && dst_data!=0 && extract_data(dst) == extract_data(m_rhs)))
+      dst = m_rhs;
+    m_triangularMatrix.template solveInPlace<Side>(dst);
+  }
+
+  protected:
+    const TriangularType& m_triangularMatrix;
+    typename Rhs::Nested m_rhs;
+};
+
+} // namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SOLVETRIANGULAR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CwiseUnaryView.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CwiseUnaryView.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CwiseUnaryView.h	(revision 2476)
@@ -0,0 +1,139 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CWISE_UNARY_VIEW_H
+#define EIGEN_CWISE_UNARY_VIEW_H
+
+namespace Eigen {
+
+/** \class CwiseUnaryView
+  * \ingroup Core_Module
+  *
+  * \brief Generic lvalue expression of a coefficient-wise unary operator of a matrix or a vector
+  *
+  * \param ViewOp template functor implementing the view
+  * \param MatrixType the type of the matrix we are applying the unary operator
+  *
+  * This class represents a lvalue expression of a generic unary view operator of a matrix or a vector.
+  * It is the return type of real() and imag(), and most of the time this is the only way it is used.
+  *
+  * \sa MatrixBase::unaryViewExpr(const CustomUnaryOp &) const, class CwiseUnaryOp
+  */
+
+namespace internal {
+template<typename ViewOp, typename MatrixType>
+struct traits<CwiseUnaryView<ViewOp, MatrixType> >
+ : traits<MatrixType>
+{
+  typedef typename result_of<
+                     ViewOp(typename traits<MatrixType>::Scalar)
+                   >::type Scalar;
+  typedef typename MatrixType::Nested MatrixTypeNested;
+  typedef typename remove_all<MatrixTypeNested>::type _MatrixTypeNested;
+  enum {
+    Flags = (traits<_MatrixTypeNested>::Flags & (HereditaryBits | LvalueBit | LinearAccessBit | DirectAccessBit)),
+    CoeffReadCost = EIGEN_ADD_COST(traits<_MatrixTypeNested>::CoeffReadCost, functor_traits<ViewOp>::Cost),
+    MatrixTypeInnerStride =  inner_stride_at_compile_time<MatrixType>::ret,
+    // need to cast the sizeof's from size_t to int explicitly, otherwise:
+    // "error: no integral type can represent all of the enumerator values
+    InnerStrideAtCompileTime = MatrixTypeInnerStride == Dynamic
+                             ? int(Dynamic)
+                             : int(MatrixTypeInnerStride) * int(sizeof(typename traits<MatrixType>::Scalar) / sizeof(Scalar)),
+    OuterStrideAtCompileTime = outer_stride_at_compile_time<MatrixType>::ret == Dynamic
+                             ? int(Dynamic)
+                             : outer_stride_at_compile_time<MatrixType>::ret * int(sizeof(typename traits<MatrixType>::Scalar) / sizeof(Scalar))
+  };
+};
+}
+
+template<typename ViewOp, typename MatrixType, typename StorageKind>
+class CwiseUnaryViewImpl;
+
+template<typename ViewOp, typename MatrixType>
+class CwiseUnaryView : public CwiseUnaryViewImpl<ViewOp, MatrixType, typename internal::traits<MatrixType>::StorageKind>
+{
+  public:
+
+    typedef typename CwiseUnaryViewImpl<ViewOp, MatrixType,typename internal::traits<MatrixType>::StorageKind>::Base Base;
+    EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseUnaryView)
+
+    inline CwiseUnaryView(const MatrixType& mat, const ViewOp& func = ViewOp())
+      : m_matrix(mat), m_functor(func) {}
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(CwiseUnaryView)
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_matrix.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_matrix.cols(); }
+
+    /** \returns the functor representing unary operation */
+    const ViewOp& functor() const { return m_functor; }
+
+    /** \returns the nested expression */
+    const typename internal::remove_all<typename MatrixType::Nested>::type&
+    nestedExpression() const { return m_matrix; }
+
+    /** \returns the nested expression */
+    typename internal::remove_all<typename MatrixType::Nested>::type&
+    nestedExpression() { return m_matrix.const_cast_derived(); }
+
+  protected:
+    // FIXME changed from MatrixType::Nested because of a weird compilation error with sun CC
+    typename internal::nested<MatrixType>::type m_matrix;
+    ViewOp m_functor;
+};
+
+template<typename ViewOp, typename MatrixType>
+class CwiseUnaryViewImpl<ViewOp,MatrixType,Dense>
+  : public internal::dense_xpr_base< CwiseUnaryView<ViewOp, MatrixType> >::type
+{
+  public:
+
+    typedef CwiseUnaryView<ViewOp, MatrixType> Derived;
+    typedef typename internal::dense_xpr_base< CwiseUnaryView<ViewOp, MatrixType> >::type Base;
+
+    EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(CwiseUnaryViewImpl)
+    
+    inline Scalar* data() { return &coeffRef(0); }
+    inline const Scalar* data() const { return &coeff(0); }
+
+    inline Index innerStride() const
+    {
+      return derived().nestedExpression().innerStride() * sizeof(typename internal::traits<MatrixType>::Scalar) / sizeof(Scalar);
+    }
+
+    inline Index outerStride() const
+    {
+      return derived().nestedExpression().outerStride() * sizeof(typename internal::traits<MatrixType>::Scalar) / sizeof(Scalar);
+    }
+
+    EIGEN_STRONG_INLINE CoeffReturnType coeff(Index row, Index col) const
+    {
+      return derived().functor()(derived().nestedExpression().coeff(row, col));
+    }
+
+    EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
+    {
+      return derived().functor()(derived().nestedExpression().coeff(index));
+    }
+
+    EIGEN_STRONG_INLINE Scalar& coeffRef(Index row, Index col)
+    {
+      return derived().functor()(const_cast_derived().nestedExpression().coeffRef(row, col));
+    }
+
+    EIGEN_STRONG_INLINE Scalar& coeffRef(Index index)
+    {
+      return derived().functor()(const_cast_derived().nestedExpression().coeffRef(index));
+    }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_CWISE_UNARY_VIEW_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/NoAlias.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/NoAlias.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/NoAlias.h	(revision 2476)
@@ -0,0 +1,134 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_NOALIAS_H
+#define EIGEN_NOALIAS_H
+
+namespace Eigen {
+
+/** \class NoAlias
+  * \ingroup Core_Module
+  *
+  * \brief Pseudo expression providing an operator = assuming no aliasing
+  *
+  * \param ExpressionType the type of the object on which to do the lazy assignment
+  *
+  * This class represents an expression with special assignment operators
+  * assuming no aliasing between the target expression and the source expression.
+  * More precisely it alloas to bypass the EvalBeforeAssignBit flag of the source expression.
+  * It is the return type of MatrixBase::noalias()
+  * and most of the time this is the only way it is used.
+  *
+  * \sa MatrixBase::noalias()
+  */
+template<typename ExpressionType, template <typename> class StorageBase>
+class NoAlias
+{
+    typedef typename ExpressionType::Scalar Scalar;
+  public:
+    NoAlias(ExpressionType& expression) : m_expression(expression) {}
+
+    /** Behaves like MatrixBase::lazyAssign(other)
+      * \sa MatrixBase::lazyAssign() */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE ExpressionType& operator=(const StorageBase<OtherDerived>& other)
+    { return internal::assign_selector<ExpressionType,OtherDerived,false>::run(m_expression,other.derived()); }
+
+    /** \sa MatrixBase::operator+= */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE ExpressionType& operator+=(const StorageBase<OtherDerived>& other)
+    {
+      typedef SelfCwiseBinaryOp<internal::scalar_sum_op<Scalar>, ExpressionType, OtherDerived> SelfAdder;
+      SelfAdder tmp(m_expression);
+      typedef typename internal::nested<OtherDerived>::type OtherDerivedNested;
+      typedef typename internal::remove_all<OtherDerivedNested>::type _OtherDerivedNested;
+      internal::assign_selector<SelfAdder,_OtherDerivedNested,false>::run(tmp,OtherDerivedNested(other.derived()));
+      return m_expression;
+    }
+
+    /** \sa MatrixBase::operator-= */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE ExpressionType& operator-=(const StorageBase<OtherDerived>& other)
+    {
+      typedef SelfCwiseBinaryOp<internal::scalar_difference_op<Scalar>, ExpressionType, OtherDerived> SelfAdder;
+      SelfAdder tmp(m_expression);
+      typedef typename internal::nested<OtherDerived>::type OtherDerivedNested;
+      typedef typename internal::remove_all<OtherDerivedNested>::type _OtherDerivedNested;
+      internal::assign_selector<SelfAdder,_OtherDerivedNested,false>::run(tmp,OtherDerivedNested(other.derived()));
+      return m_expression;
+    }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE ExpressionType& operator+=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
+    { other.derived().addTo(m_expression); return m_expression; }
+
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE ExpressionType& operator-=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
+    { other.derived().subTo(m_expression); return m_expression; }
+
+    template<typename Lhs, typename Rhs, int NestingFlags>
+    EIGEN_STRONG_INLINE ExpressionType& operator+=(const CoeffBasedProduct<Lhs,Rhs,NestingFlags>& other)
+    { return m_expression.derived() += CoeffBasedProduct<Lhs,Rhs,NestByRefBit>(other.lhs(), other.rhs()); }
+
+    template<typename Lhs, typename Rhs, int NestingFlags>
+    EIGEN_STRONG_INLINE ExpressionType& operator-=(const CoeffBasedProduct<Lhs,Rhs,NestingFlags>& other)
+    { return m_expression.derived() -= CoeffBasedProduct<Lhs,Rhs,NestByRefBit>(other.lhs(), other.rhs()); }
+    
+    template<typename OtherDerived>
+    ExpressionType& operator=(const ReturnByValue<OtherDerived>& func)
+    { return m_expression = func; }
+#endif
+
+    ExpressionType& expression() const
+    {
+      return m_expression;
+    }
+
+  protected:
+    ExpressionType& m_expression;
+};
+
+/** \returns a pseudo expression of \c *this with an operator= assuming
+  * no aliasing between \c *this and the source expression.
+  *
+  * More precisely, noalias() allows to bypass the EvalBeforeAssignBit flag.
+  * Currently, even though several expressions may alias, only product
+  * expressions have this flag. Therefore, noalias() is only usefull when
+  * the source expression contains a matrix product.
+  *
+  * Here are some examples where noalias is usefull:
+  * \code
+  * D.noalias()  = A * B;
+  * D.noalias() += A.transpose() * B;
+  * D.noalias() -= 2 * A * B.adjoint();
+  * \endcode
+  *
+  * On the other hand the following example will lead to a \b wrong result:
+  * \code
+  * A.noalias() = A * B;
+  * \endcode
+  * because the result matrix A is also an operand of the matrix product. Therefore,
+  * there is no alternative than evaluating A * B in a temporary, that is the default
+  * behavior when you write:
+  * \code
+  * A = A * B;
+  * \endcode
+  *
+  * \sa class NoAlias
+  */
+template<typename Derived>
+NoAlias<Derived,MatrixBase> MatrixBase<Derived>::noalias()
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_NOALIAS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/NumTraits.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/NumTraits.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/NumTraits.h	(revision 2476)
@@ -0,0 +1,150 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_NUMTRAITS_H
+#define EIGEN_NUMTRAITS_H
+
+namespace Eigen {
+
+/** \class NumTraits
+  * \ingroup Core_Module
+  *
+  * \brief Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
+  *
+  * \param T the numeric type at hand
+  *
+  * This class stores enums, typedefs and static methods giving information about a numeric type.
+  *
+  * The provided data consists of:
+  * \li A typedef \a Real, giving the "real part" type of \a T. If \a T is already real,
+  *     then \a Real is just a typedef to \a T. If \a T is \c std::complex<U> then \a Real
+  *     is a typedef to \a U.
+  * \li A typedef \a NonInteger, giving the type that should be used for operations producing non-integral values,
+  *     such as quotients, square roots, etc. If \a T is a floating-point type, then this typedef just gives
+  *     \a T again. Note however that many Eigen functions such as internal::sqrt simply refuse to
+  *     take integers. Outside of a few cases, Eigen doesn't do automatic type promotion. Thus, this typedef is
+  *     only intended as a helper for code that needs to explicitly promote types.
+  * \li A typedef \a Nested giving the type to use to nest a value inside of the expression tree. If you don't know what
+  *     this means, just use \a T here.
+  * \li An enum value \a IsComplex. It is equal to 1 if \a T is a \c std::complex
+  *     type, and to 0 otherwise.
+  * \li An enum value \a IsInteger. It is equal to \c 1 if \a T is an integer type such as \c int,
+  *     and to \c 0 otherwise.
+  * \li Enum values ReadCost, AddCost and MulCost representing a rough estimate of the number of CPU cycles needed
+  *     to by move / add / mul instructions respectively, assuming the data is already stored in CPU registers.
+  *     Stay vague here. No need to do architecture-specific stuff.
+  * \li An enum value \a IsSigned. It is equal to \c 1 if \a T is a signed type and to 0 if \a T is unsigned.
+  * \li An enum value \a RequireInitialization. It is equal to \c 1 if the constructor of the numeric type \a T must
+  *     be called, and to 0 if it is safe not to call it. Default is 0 if \a T is an arithmetic type, and 1 otherwise.
+  * \li An epsilon() function which, unlike std::numeric_limits::epsilon(), returns a \a Real instead of a \a T.
+  * \li A dummy_precision() function returning a weak epsilon value. It is mainly used as a default
+  *     value by the fuzzy comparison operators.
+  * \li highest() and lowest() functions returning the highest and lowest possible values respectively.
+  */
+
+template<typename T> struct GenericNumTraits
+{
+  enum {
+    IsInteger = std::numeric_limits<T>::is_integer,
+    IsSigned = std::numeric_limits<T>::is_signed,
+    IsComplex = 0,
+    RequireInitialization = internal::is_arithmetic<T>::value ? 0 : 1,
+    ReadCost = 1,
+    AddCost = 1,
+    MulCost = 1
+  };
+
+  typedef T Real;
+  typedef typename internal::conditional<
+                     IsInteger,
+                     typename internal::conditional<sizeof(T)<=2, float, double>::type,
+                     T
+                   >::type NonInteger;
+  typedef T Nested;
+
+  static inline Real epsilon() { return std::numeric_limits<T>::epsilon(); }
+  static inline Real dummy_precision()
+  {
+    // make sure to override this for floating-point types
+    return Real(0);
+  }
+  static inline T highest() { return (std::numeric_limits<T>::max)(); }
+  static inline T lowest()  { return IsInteger ? (std::numeric_limits<T>::min)() : (-(std::numeric_limits<T>::max)()); }
+  
+#ifdef EIGEN2_SUPPORT
+  enum {
+    HasFloatingPoint = !IsInteger
+  };
+  typedef NonInteger FloatingPoint;
+#endif
+};
+
+template<typename T> struct NumTraits : GenericNumTraits<T>
+{};
+
+template<> struct NumTraits<float>
+  : GenericNumTraits<float>
+{
+  static inline float dummy_precision() { return 1e-5f; }
+};
+
+template<> struct NumTraits<double> : GenericNumTraits<double>
+{
+  static inline double dummy_precision() { return 1e-12; }
+};
+
+template<> struct NumTraits<long double>
+  : GenericNumTraits<long double>
+{
+  static inline long double dummy_precision() { return 1e-15l; }
+};
+
+template<typename _Real> struct NumTraits<std::complex<_Real> >
+  : GenericNumTraits<std::complex<_Real> >
+{
+  typedef _Real Real;
+  enum {
+    IsComplex = 1,
+    RequireInitialization = NumTraits<_Real>::RequireInitialization,
+    ReadCost = 2 * NumTraits<_Real>::ReadCost,
+    AddCost = 2 * NumTraits<Real>::AddCost,
+    MulCost = 4 * NumTraits<Real>::MulCost + 2 * NumTraits<Real>::AddCost
+  };
+
+  static inline Real epsilon() { return NumTraits<Real>::epsilon(); }
+  static inline Real dummy_precision() { return NumTraits<Real>::dummy_precision(); }
+};
+
+template<typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
+struct NumTraits<Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols> >
+{
+  typedef Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols> ArrayType;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef Array<RealScalar, Rows, Cols, Options, MaxRows, MaxCols> Real;
+  typedef typename NumTraits<Scalar>::NonInteger NonIntegerScalar;
+  typedef Array<NonIntegerScalar, Rows, Cols, Options, MaxRows, MaxCols> NonInteger;
+  typedef ArrayType & Nested;
+  
+  enum {
+    IsComplex = NumTraits<Scalar>::IsComplex,
+    IsInteger = NumTraits<Scalar>::IsInteger,
+    IsSigned  = NumTraits<Scalar>::IsSigned,
+    RequireInitialization = 1,
+    ReadCost = ArrayType::SizeAtCompileTime==Dynamic ? Dynamic : ArrayType::SizeAtCompileTime * NumTraits<Scalar>::ReadCost,
+    AddCost  = ArrayType::SizeAtCompileTime==Dynamic ? Dynamic : ArrayType::SizeAtCompileTime * NumTraits<Scalar>::AddCost,
+    MulCost  = ArrayType::SizeAtCompileTime==Dynamic ? Dynamic : ArrayType::SizeAtCompileTime * NumTraits<Scalar>::MulCost
+  };
+  
+  static inline RealScalar epsilon() { return NumTraits<RealScalar>::epsilon(); }
+  static inline RealScalar dummy_precision() { return NumTraits<RealScalar>::dummy_precision(); }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_NUMTRAITS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/Memory.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/Memory.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/Memory.h	(revision 2476)
@@ -0,0 +1,944 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2008-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009 Kenneth Riddile <kfriddile@yahoo.com>
+// Copyright (C) 2010 Hauke Heibel <hauke.heibel@gmail.com>
+// Copyright (C) 2010 Thomas Capricelli <orzel@freehackers.org>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+/*****************************************************************************
+*** Platform checks for aligned malloc functions                           ***
+*****************************************************************************/
+
+#ifndef EIGEN_MEMORY_H
+#define EIGEN_MEMORY_H
+
+#ifndef EIGEN_MALLOC_ALREADY_ALIGNED
+
+// Try to determine automatically if malloc is already aligned.
+
+// On 64-bit systems, glibc's malloc returns 16-byte-aligned pointers, see:
+//   http://www.gnu.org/s/libc/manual/html_node/Aligned-Memory-Blocks.html
+// This is true at least since glibc 2.8.
+// This leaves the question how to detect 64-bit. According to this document,
+//   http://gcc.fyxm.net/summit/2003/Porting%20to%2064%20bit.pdf
+// page 114, "[The] LP64 model [...] is used by all 64-bit UNIX ports" so it's indeed
+// quite safe, at least within the context of glibc, to equate 64-bit with LP64.
+#if defined(__GLIBC__) && ((__GLIBC__>=2 && __GLIBC_MINOR__ >= 8) || __GLIBC__>2) \
+ && defined(__LP64__) && ! defined( __SANITIZE_ADDRESS__ )
+  #define EIGEN_GLIBC_MALLOC_ALREADY_ALIGNED 1
+#else
+  #define EIGEN_GLIBC_MALLOC_ALREADY_ALIGNED 0
+#endif
+
+// FreeBSD 6 seems to have 16-byte aligned malloc
+//   See http://svn.freebsd.org/viewvc/base/stable/6/lib/libc/stdlib/malloc.c?view=markup
+// FreeBSD 7 seems to have 16-byte aligned malloc except on ARM and MIPS architectures
+//   See http://svn.freebsd.org/viewvc/base/stable/7/lib/libc/stdlib/malloc.c?view=markup
+#if defined(__FreeBSD__) && !defined(__arm__) && !defined(__mips__)
+  #define EIGEN_FREEBSD_MALLOC_ALREADY_ALIGNED 1
+#else
+  #define EIGEN_FREEBSD_MALLOC_ALREADY_ALIGNED 0
+#endif
+
+#if defined(__APPLE__) \
+ || defined(_WIN64) \
+ || EIGEN_GLIBC_MALLOC_ALREADY_ALIGNED \
+ || EIGEN_FREEBSD_MALLOC_ALREADY_ALIGNED
+  #define EIGEN_MALLOC_ALREADY_ALIGNED 1
+#else
+  #define EIGEN_MALLOC_ALREADY_ALIGNED 0
+#endif
+
+#endif
+
+// See bug 554 (http://eigen.tuxfamily.org/bz/show_bug.cgi?id=554)
+// It seems to be unsafe to check _POSIX_ADVISORY_INFO without including unistd.h first.
+// Currently, let's include it only on unix systems:
+#if defined(__unix__) || defined(__unix)
+  #include <unistd.h>
+  #if ((defined __QNXNTO__) || (defined _GNU_SOURCE) || (defined __PGI) || ((defined _XOPEN_SOURCE) && (_XOPEN_SOURCE >= 600))) && (defined _POSIX_ADVISORY_INFO) && (_POSIX_ADVISORY_INFO > 0)
+    #define EIGEN_HAS_POSIX_MEMALIGN 1
+  #endif
+#endif
+
+#ifndef EIGEN_HAS_POSIX_MEMALIGN
+  #define EIGEN_HAS_POSIX_MEMALIGN 0
+#endif
+
+#ifdef EIGEN_VECTORIZE_SSE
+  #define EIGEN_HAS_MM_MALLOC 1
+#else
+  #define EIGEN_HAS_MM_MALLOC 0
+#endif
+
+namespace Eigen {
+
+namespace internal {
+
+inline void throw_std_bad_alloc()
+{
+  #ifdef EIGEN_EXCEPTIONS
+    throw std::bad_alloc();
+  #else
+    std::size_t huge = -1;
+    new int[huge];
+  #endif
+}
+
+/*****************************************************************************
+*** Implementation of handmade aligned functions                           ***
+*****************************************************************************/
+
+/* ----- Hand made implementations of aligned malloc/free and realloc ----- */
+
+/** \internal Like malloc, but the returned pointer is guaranteed to be 16-byte aligned.
+  * Fast, but wastes 16 additional bytes of memory. Does not throw any exception.
+  */
+inline void* handmade_aligned_malloc(std::size_t size)
+{
+  void *original = std::malloc(size+16);
+  if (original == 0) return 0;
+  void *aligned = reinterpret_cast<void*>((reinterpret_cast<std::size_t>(original) & ~(std::size_t(15))) + 16);
+  *(reinterpret_cast<void**>(aligned) - 1) = original;
+  return aligned;
+}
+
+/** \internal Frees memory allocated with handmade_aligned_malloc */
+inline void handmade_aligned_free(void *ptr)
+{
+  if (ptr) std::free(*(reinterpret_cast<void**>(ptr) - 1));
+}
+
+/** \internal
+  * \brief Reallocates aligned memory.
+  * Since we know that our handmade version is based on std::realloc
+  * we can use std::realloc to implement efficient reallocation.
+  */
+inline void* handmade_aligned_realloc(void* ptr, std::size_t size, std::size_t = 0)
+{
+  if (ptr == 0) return handmade_aligned_malloc(size);
+  void *original = *(reinterpret_cast<void**>(ptr) - 1);
+  std::ptrdiff_t previous_offset = static_cast<char *>(ptr)-static_cast<char *>(original);
+  original = std::realloc(original,size+16);
+  if (original == 0) return 0;
+  void *aligned = reinterpret_cast<void*>((reinterpret_cast<std::size_t>(original) & ~(std::size_t(15))) + 16);
+  void *previous_aligned = static_cast<char *>(original)+previous_offset;
+  if(aligned!=previous_aligned)
+    std::memmove(aligned, previous_aligned, size);
+  
+  *(reinterpret_cast<void**>(aligned) - 1) = original;
+  return aligned;
+}
+
+/*****************************************************************************
+*** Implementation of generic aligned realloc (when no realloc can be used)***
+*****************************************************************************/
+
+void* aligned_malloc(std::size_t size);
+void  aligned_free(void *ptr);
+
+/** \internal
+  * \brief Reallocates aligned memory.
+  * Allows reallocation with aligned ptr types. This implementation will
+  * always create a new memory chunk and copy the old data.
+  */
+inline void* generic_aligned_realloc(void* ptr, size_t size, size_t old_size)
+{
+  if (ptr==0)
+    return aligned_malloc(size);
+
+  if (size==0)
+  {
+    aligned_free(ptr);
+    return 0;
+  }
+
+  void* newptr = aligned_malloc(size);
+  if (newptr == 0)
+  {
+    #ifdef EIGEN_HAS_ERRNO
+    errno = ENOMEM; // according to the standard
+    #endif
+    return 0;
+  }
+
+  if (ptr != 0)
+  {
+    std::memcpy(newptr, ptr, (std::min)(size,old_size));
+    aligned_free(ptr);
+  }
+
+  return newptr;
+}
+
+/*****************************************************************************
+*** Implementation of portable aligned versions of malloc/free/realloc     ***
+*****************************************************************************/
+
+#ifdef EIGEN_NO_MALLOC
+inline void check_that_malloc_is_allowed()
+{
+  eigen_assert(false && "heap allocation is forbidden (EIGEN_NO_MALLOC is defined)");
+}
+#elif defined EIGEN_RUNTIME_NO_MALLOC
+inline bool is_malloc_allowed_impl(bool update, bool new_value = false)
+{
+  static bool value = true;
+  if (update == 1)
+    value = new_value;
+  return value;
+}
+inline bool is_malloc_allowed() { return is_malloc_allowed_impl(false); }
+inline bool set_is_malloc_allowed(bool new_value) { return is_malloc_allowed_impl(true, new_value); }
+inline void check_that_malloc_is_allowed()
+{
+  eigen_assert(is_malloc_allowed() && "heap allocation is forbidden (EIGEN_RUNTIME_NO_MALLOC is defined and g_is_malloc_allowed is false)");
+}
+#else 
+inline void check_that_malloc_is_allowed()
+{}
+#endif
+
+/** \internal Allocates \a size bytes. The returned pointer is guaranteed to have 16 bytes alignment.
+  * On allocation error, the returned pointer is null, and std::bad_alloc is thrown.
+  */
+inline void* aligned_malloc(size_t size)
+{
+  check_that_malloc_is_allowed();
+
+  void *result;
+  #if !EIGEN_ALIGN
+    result = std::malloc(size);
+  #elif EIGEN_MALLOC_ALREADY_ALIGNED
+    result = std::malloc(size);
+  #elif EIGEN_HAS_POSIX_MEMALIGN
+    if(posix_memalign(&result, 16, size)) result = 0;
+  #elif EIGEN_HAS_MM_MALLOC
+    result = _mm_malloc(size, 16);
+  #elif defined(_MSC_VER) && (!defined(_WIN32_WCE))
+    result = _aligned_malloc(size, 16);
+  #else
+    result = handmade_aligned_malloc(size);
+  #endif
+
+  if(!result && size)
+    throw_std_bad_alloc();
+
+  return result;
+}
+
+/** \internal Frees memory allocated with aligned_malloc. */
+inline void aligned_free(void *ptr)
+{
+  #if !EIGEN_ALIGN
+    std::free(ptr);
+  #elif EIGEN_MALLOC_ALREADY_ALIGNED
+    std::free(ptr);
+  #elif EIGEN_HAS_POSIX_MEMALIGN
+    std::free(ptr);
+  #elif EIGEN_HAS_MM_MALLOC
+    _mm_free(ptr);
+  #elif defined(_MSC_VER) && (!defined(_WIN32_WCE))
+    _aligned_free(ptr);
+  #else
+    handmade_aligned_free(ptr);
+  #endif
+}
+
+/**
+* \internal
+* \brief Reallocates an aligned block of memory.
+* \throws std::bad_alloc on allocation failure
+**/
+inline void* aligned_realloc(void *ptr, size_t new_size, size_t old_size)
+{
+  EIGEN_UNUSED_VARIABLE(old_size);
+
+  void *result;
+#if !EIGEN_ALIGN
+  result = std::realloc(ptr,new_size);
+#elif EIGEN_MALLOC_ALREADY_ALIGNED
+  result = std::realloc(ptr,new_size);
+#elif EIGEN_HAS_POSIX_MEMALIGN
+  result = generic_aligned_realloc(ptr,new_size,old_size);
+#elif EIGEN_HAS_MM_MALLOC
+  // The defined(_mm_free) is just here to verify that this MSVC version
+  // implements _mm_malloc/_mm_free based on the corresponding _aligned_
+  // functions. This may not always be the case and we just try to be safe.
+  #if defined(_MSC_VER) && (!defined(_WIN32_WCE)) && defined(_mm_free)
+    result = _aligned_realloc(ptr,new_size,16);
+  #else
+    result = generic_aligned_realloc(ptr,new_size,old_size);
+  #endif
+#elif defined(_MSC_VER) && (!defined(_WIN32_WCE))
+  result = _aligned_realloc(ptr,new_size,16);
+#else
+  result = handmade_aligned_realloc(ptr,new_size,old_size);
+#endif
+
+  if (!result && new_size)
+    throw_std_bad_alloc();
+
+  return result;
+}
+
+/*****************************************************************************
+*** Implementation of conditionally aligned functions                      ***
+*****************************************************************************/
+
+/** \internal Allocates \a size bytes. If Align is true, then the returned ptr is 16-byte-aligned.
+  * On allocation error, the returned pointer is null, and a std::bad_alloc is thrown.
+  */
+template<bool Align> inline void* conditional_aligned_malloc(size_t size)
+{
+  return aligned_malloc(size);
+}
+
+template<> inline void* conditional_aligned_malloc<false>(size_t size)
+{
+  check_that_malloc_is_allowed();
+
+  void *result = std::malloc(size);
+  if(!result && size)
+    throw_std_bad_alloc();
+  return result;
+}
+
+/** \internal Frees memory allocated with conditional_aligned_malloc */
+template<bool Align> inline void conditional_aligned_free(void *ptr)
+{
+  aligned_free(ptr);
+}
+
+template<> inline void conditional_aligned_free<false>(void *ptr)
+{
+  std::free(ptr);
+}
+
+template<bool Align> inline void* conditional_aligned_realloc(void* ptr, size_t new_size, size_t old_size)
+{
+  return aligned_realloc(ptr, new_size, old_size);
+}
+
+template<> inline void* conditional_aligned_realloc<false>(void* ptr, size_t new_size, size_t)
+{
+  return std::realloc(ptr, new_size);
+}
+
+/*****************************************************************************
+*** Construction/destruction of array elements                             ***
+*****************************************************************************/
+
+/** \internal Constructs the elements of an array.
+  * The \a size parameter tells on how many objects to call the constructor of T.
+  */
+template<typename T> inline T* construct_elements_of_array(T *ptr, size_t size)
+{
+  for (size_t i=0; i < size; ++i) ::new (ptr + i) T;
+  return ptr;
+}
+
+/** \internal Destructs the elements of an array.
+  * The \a size parameters tells on how many objects to call the destructor of T.
+  */
+template<typename T> inline void destruct_elements_of_array(T *ptr, size_t size)
+{
+  // always destruct an array starting from the end.
+  if(ptr)
+    while(size) ptr[--size].~T();
+}
+
+/*****************************************************************************
+*** Implementation of aligned new/delete-like functions                    ***
+*****************************************************************************/
+
+template<typename T>
+EIGEN_ALWAYS_INLINE void check_size_for_overflow(size_t size)
+{
+  if(size > size_t(-1) / sizeof(T))
+    throw_std_bad_alloc();
+}
+
+/** \internal Allocates \a size objects of type T. The returned pointer is guaranteed to have 16 bytes alignment.
+  * On allocation error, the returned pointer is undefined, but a std::bad_alloc is thrown.
+  * The default constructor of T is called.
+  */
+template<typename T> inline T* aligned_new(size_t size)
+{
+  check_size_for_overflow<T>(size);
+  T *result = reinterpret_cast<T*>(aligned_malloc(sizeof(T)*size));
+  return construct_elements_of_array(result, size);
+}
+
+template<typename T, bool Align> inline T* conditional_aligned_new(size_t size)
+{
+  check_size_for_overflow<T>(size);
+  T *result = reinterpret_cast<T*>(conditional_aligned_malloc<Align>(sizeof(T)*size));
+  return construct_elements_of_array(result, size);
+}
+
+/** \internal Deletes objects constructed with aligned_new
+  * The \a size parameters tells on how many objects to call the destructor of T.
+  */
+template<typename T> inline void aligned_delete(T *ptr, size_t size)
+{
+  destruct_elements_of_array<T>(ptr, size);
+  aligned_free(ptr);
+}
+
+/** \internal Deletes objects constructed with conditional_aligned_new
+  * The \a size parameters tells on how many objects to call the destructor of T.
+  */
+template<typename T, bool Align> inline void conditional_aligned_delete(T *ptr, size_t size)
+{
+  destruct_elements_of_array<T>(ptr, size);
+  conditional_aligned_free<Align>(ptr);
+}
+
+template<typename T, bool Align> inline T* conditional_aligned_realloc_new(T* pts, size_t new_size, size_t old_size)
+{
+  check_size_for_overflow<T>(new_size);
+  check_size_for_overflow<T>(old_size);
+  if(new_size < old_size)
+    destruct_elements_of_array(pts+new_size, old_size-new_size);
+  T *result = reinterpret_cast<T*>(conditional_aligned_realloc<Align>(reinterpret_cast<void*>(pts), sizeof(T)*new_size, sizeof(T)*old_size));
+  if(new_size > old_size)
+    construct_elements_of_array(result+old_size, new_size-old_size);
+  return result;
+}
+
+
+template<typename T, bool Align> inline T* conditional_aligned_new_auto(size_t size)
+{
+  if(size==0)
+    return 0; // short-cut. Also fixes Bug 884
+  check_size_for_overflow<T>(size);
+  T *result = reinterpret_cast<T*>(conditional_aligned_malloc<Align>(sizeof(T)*size));
+  if(NumTraits<T>::RequireInitialization)
+    construct_elements_of_array(result, size);
+  return result;
+}
+
+template<typename T, bool Align> inline T* conditional_aligned_realloc_new_auto(T* pts, size_t new_size, size_t old_size)
+{
+  check_size_for_overflow<T>(new_size);
+  check_size_for_overflow<T>(old_size);
+  if(NumTraits<T>::RequireInitialization && (new_size < old_size))
+    destruct_elements_of_array(pts+new_size, old_size-new_size);
+  T *result = reinterpret_cast<T*>(conditional_aligned_realloc<Align>(reinterpret_cast<void*>(pts), sizeof(T)*new_size, sizeof(T)*old_size));
+  if(NumTraits<T>::RequireInitialization && (new_size > old_size))
+    construct_elements_of_array(result+old_size, new_size-old_size);
+  return result;
+}
+
+template<typename T, bool Align> inline void conditional_aligned_delete_auto(T *ptr, size_t size)
+{
+  if(NumTraits<T>::RequireInitialization)
+    destruct_elements_of_array<T>(ptr, size);
+  conditional_aligned_free<Align>(ptr);
+}
+
+/****************************************************************************/
+
+/** \internal Returns the index of the first element of the array that is well aligned for vectorization.
+  *
+  * \param array the address of the start of the array
+  * \param size the size of the array
+  *
+  * \note If no element of the array is well aligned, the size of the array is returned. Typically,
+  * for example with SSE, "well aligned" means 16-byte-aligned. If vectorization is disabled or if the
+  * packet size for the given scalar type is 1, then everything is considered well-aligned.
+  *
+  * \note If the scalar type is vectorizable, we rely on the following assumptions: sizeof(Scalar) is a
+  * power of 2, the packet size in bytes is also a power of 2, and is a multiple of sizeof(Scalar). On the
+  * other hand, we do not assume that the array address is a multiple of sizeof(Scalar), as that fails for
+  * example with Scalar=double on certain 32-bit platforms, see bug #79.
+  *
+  * There is also the variant first_aligned(const MatrixBase&) defined in DenseCoeffsBase.h.
+  */
+template<typename Scalar, typename Index>
+static inline Index first_aligned(const Scalar* array, Index size)
+{
+  static const Index PacketSize = packet_traits<Scalar>::size;
+  static const Index PacketAlignedMask = PacketSize-1;
+
+  if(PacketSize==1)
+  {
+    // Either there is no vectorization, or a packet consists of exactly 1 scalar so that all elements
+    // of the array have the same alignment.
+    return 0;
+  }
+  else if(size_t(array) & (sizeof(Scalar)-1))
+  {
+    // There is vectorization for this scalar type, but the array is not aligned to the size of a single scalar.
+    // Consequently, no element of the array is well aligned.
+    return size;
+  }
+  else
+  {
+    return std::min<Index>( (PacketSize - (Index((size_t(array)/sizeof(Scalar))) & PacketAlignedMask))
+                           & PacketAlignedMask, size);
+  }
+}
+
+/** \internal Returns the smallest integer multiple of \a base and greater or equal to \a size
+  */ 
+template<typename Index> 
+inline static Index first_multiple(Index size, Index base)
+{
+  return ((size+base-1)/base)*base;
+}
+
+// std::copy is much slower than memcpy, so let's introduce a smart_copy which
+// use memcpy on trivial types, i.e., on types that does not require an initialization ctor.
+template<typename T, bool UseMemcpy> struct smart_copy_helper;
+
+template<typename T> void smart_copy(const T* start, const T* end, T* target)
+{
+  smart_copy_helper<T,!NumTraits<T>::RequireInitialization>::run(start, end, target);
+}
+
+template<typename T> struct smart_copy_helper<T,true> {
+  static inline void run(const T* start, const T* end, T* target)
+  {
+    std::ptrdiff_t size = std::ptrdiff_t(end)-std::ptrdiff_t(start);
+    if(size==0) return;
+    eigen_internal_assert(start!=0 && end!=0 && target!=0);
+    memcpy(target, start, size);
+  }
+};
+
+template<typename T> struct smart_copy_helper<T,false> {
+  static inline void run(const T* start, const T* end, T* target)
+  { std::copy(start, end, target); }
+};
+
+/*****************************************************************************
+*** Implementation of runtime stack allocation (falling back to malloc)    ***
+*****************************************************************************/
+
+// you can overwrite Eigen's default behavior regarding alloca by defining EIGEN_ALLOCA
+// to the appropriate stack allocation function
+#ifndef EIGEN_ALLOCA
+  #if (defined __linux__) || (defined __APPLE__) || (defined alloca)
+    #define EIGEN_ALLOCA alloca
+  #elif defined(_MSC_VER)
+    #define EIGEN_ALLOCA _alloca
+  #endif
+#endif
+
+// This helper class construct the allocated memory, and takes care of destructing and freeing the handled data
+// at destruction time. In practice this helper class is mainly useful to avoid memory leak in case of exceptions.
+template<typename T> class aligned_stack_memory_handler
+{
+  public:
+    /* Creates a stack_memory_handler responsible for the buffer \a ptr of size \a size.
+     * Note that \a ptr can be 0 regardless of the other parameters.
+     * This constructor takes care of constructing/initializing the elements of the buffer if required by the scalar type T (see NumTraits<T>::RequireInitialization).
+     * In this case, the buffer elements will also be destructed when this handler will be destructed.
+     * Finally, if \a dealloc is true, then the pointer \a ptr is freed.
+     **/
+    aligned_stack_memory_handler(T* ptr, size_t size, bool dealloc)
+      : m_ptr(ptr), m_size(size), m_deallocate(dealloc)
+    {
+      if(NumTraits<T>::RequireInitialization && m_ptr)
+        Eigen::internal::construct_elements_of_array(m_ptr, size);
+    }
+    ~aligned_stack_memory_handler()
+    {
+      if(NumTraits<T>::RequireInitialization && m_ptr)
+        Eigen::internal::destruct_elements_of_array<T>(m_ptr, m_size);
+      if(m_deallocate)
+        Eigen::internal::aligned_free(m_ptr);
+    }
+  protected:
+    T* m_ptr;
+    size_t m_size;
+    bool m_deallocate;
+};
+
+} // end namespace internal
+
+/** \internal
+  * Declares, allocates and construct an aligned buffer named NAME of SIZE elements of type TYPE on the stack
+  * if SIZE is smaller than EIGEN_STACK_ALLOCATION_LIMIT, and if stack allocation is supported by the platform
+  * (currently, this is Linux and Visual Studio only). Otherwise the memory is allocated on the heap.
+  * The allocated buffer is automatically deleted when exiting the scope of this declaration.
+  * If BUFFER is non null, then the declared variable is simply an alias for BUFFER, and no allocation/deletion occurs.
+  * Here is an example:
+  * \code
+  * {
+  *   ei_declare_aligned_stack_constructed_variable(float,data,size,0);
+  *   // use data[0] to data[size-1]
+  * }
+  * \endcode
+  * The underlying stack allocation function can controlled with the EIGEN_ALLOCA preprocessor token.
+  */
+#ifdef EIGEN_ALLOCA
+
+  #if defined(__arm__) || defined(_WIN32)
+    #define EIGEN_ALIGNED_ALLOCA(SIZE) reinterpret_cast<void*>((reinterpret_cast<size_t>(EIGEN_ALLOCA(SIZE+16)) & ~(size_t(15))) + 16)
+  #else
+    #define EIGEN_ALIGNED_ALLOCA EIGEN_ALLOCA
+  #endif
+
+  #define ei_declare_aligned_stack_constructed_variable(TYPE,NAME,SIZE,BUFFER) \
+    Eigen::internal::check_size_for_overflow<TYPE>(SIZE); \
+    TYPE* NAME = (BUFFER)!=0 ? (BUFFER) \
+               : reinterpret_cast<TYPE*>( \
+                      (sizeof(TYPE)*SIZE<=EIGEN_STACK_ALLOCATION_LIMIT) ? EIGEN_ALIGNED_ALLOCA(sizeof(TYPE)*SIZE) \
+                    : Eigen::internal::aligned_malloc(sizeof(TYPE)*SIZE) );  \
+    Eigen::internal::aligned_stack_memory_handler<TYPE> EIGEN_CAT(NAME,_stack_memory_destructor)((BUFFER)==0 ? NAME : 0,SIZE,sizeof(TYPE)*SIZE>EIGEN_STACK_ALLOCATION_LIMIT)
+
+#else
+
+  #define ei_declare_aligned_stack_constructed_variable(TYPE,NAME,SIZE,BUFFER) \
+    Eigen::internal::check_size_for_overflow<TYPE>(SIZE); \
+    TYPE* NAME = (BUFFER)!=0 ? BUFFER : reinterpret_cast<TYPE*>(Eigen::internal::aligned_malloc(sizeof(TYPE)*SIZE));    \
+    Eigen::internal::aligned_stack_memory_handler<TYPE> EIGEN_CAT(NAME,_stack_memory_destructor)((BUFFER)==0 ? NAME : 0,SIZE,true)
+    
+#endif
+
+
+/*****************************************************************************
+*** Implementation of EIGEN_MAKE_ALIGNED_OPERATOR_NEW [_IF]                ***
+*****************************************************************************/
+
+#if EIGEN_ALIGN
+  #ifdef EIGEN_EXCEPTIONS
+    #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_NOTHROW(NeedsToAlign) \
+      void* operator new(size_t size, const std::nothrow_t&) throw() { \
+        try { return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); } \
+        catch (...) { return 0; } \
+      }
+  #else
+    #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_NOTHROW(NeedsToAlign) \
+      void* operator new(size_t size, const std::nothrow_t&) throw() { \
+        return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); \
+      }
+  #endif
+
+  #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign) \
+      void *operator new(size_t size) { \
+        return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); \
+      } \
+      void *operator new[](size_t size) { \
+        return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); \
+      } \
+      void operator delete(void * ptr) throw() { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
+      void operator delete[](void * ptr) throw() { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
+      void operator delete(void * ptr, std::size_t /* sz */) throw() { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
+      void operator delete[](void * ptr, std::size_t /* sz */) throw() { Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); } \
+      /* in-place new and delete. since (at least afaik) there is no actual   */ \
+      /* memory allocated we can safely let the default implementation handle */ \
+      /* this particular case. */ \
+      static void *operator new(size_t size, void *ptr) { return ::operator new(size,ptr); } \
+      static void *operator new[](size_t size, void* ptr) { return ::operator new[](size,ptr); } \
+      void operator delete(void * memory, void *ptr) throw() { return ::operator delete(memory,ptr); } \
+      void operator delete[](void * memory, void *ptr) throw() { return ::operator delete[](memory,ptr); } \
+      /* nothrow-new (returns zero instead of std::bad_alloc) */ \
+      EIGEN_MAKE_ALIGNED_OPERATOR_NEW_NOTHROW(NeedsToAlign) \
+      void operator delete(void *ptr, const std::nothrow_t&) throw() { \
+        Eigen::internal::conditional_aligned_free<NeedsToAlign>(ptr); \
+      } \
+      typedef void eigen_aligned_operator_new_marker_type;
+#else
+  #define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign)
+#endif
+
+#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(true)
+#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar,Size) \
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(bool(((Size)!=Eigen::Dynamic) && ((sizeof(Scalar)*(Size))%16==0)))
+
+/****************************************************************************/
+
+
+/** \class aligned_allocator
+  * \ingroup Core_Module
+  *
+  * \brief STL compatible allocator to use with with 16 byte aligned types
+  *
+  * Example:
+  * \code
+  * // Matrix4f requires 16 bytes alignment:
+  * std::map< int, Matrix4f, std::less<int>,
+  *           aligned_allocator<std::pair<const int, Matrix4f> > > my_map_mat4;
+  * // Vector3f does not require 16 bytes alignment, no need to use Eigen's allocator:
+  * std::map< int, Vector3f > my_map_vec3;
+  * \endcode
+  *
+  * \sa \blank \ref TopicStlContainers.
+  */
+template<class T>
+class aligned_allocator : public std::allocator<T>
+{
+public:
+  typedef size_t          size_type;
+  typedef std::ptrdiff_t  difference_type;
+  typedef T*              pointer;
+  typedef const T*        const_pointer;
+  typedef T&              reference;
+  typedef const T&        const_reference;
+  typedef T               value_type;
+
+  template<class U>
+  struct rebind
+  {
+    typedef aligned_allocator<U> other;
+  };
+
+  aligned_allocator() : std::allocator<T>() {}
+
+  aligned_allocator(const aligned_allocator& other) : std::allocator<T>(other) {}
+
+  template<class U>
+  aligned_allocator(const aligned_allocator<U>& other) : std::allocator<T>(other) {}
+
+  ~aligned_allocator() {}
+
+  pointer allocate(size_type num, const void* /*hint*/ = 0)
+  {
+    internal::check_size_for_overflow<T>(num);
+    return static_cast<pointer>( internal::aligned_malloc(num * sizeof(T)) );
+  }
+
+  void deallocate(pointer p, size_type /*num*/)
+  {
+    internal::aligned_free(p);
+  }
+};
+
+//---------- Cache sizes ----------
+
+#if !defined(EIGEN_NO_CPUID)
+#  if defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) )
+#    if defined(__PIC__) && defined(__i386__)
+       // Case for x86 with PIC
+#      define EIGEN_CPUID(abcd,func,id) \
+         __asm__ __volatile__ ("xchgl %%ebx, %k1;cpuid; xchgl %%ebx,%k1": "=a" (abcd[0]), "=&r" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "a" (func), "c" (id));
+#    elif defined(__PIC__) && defined(__x86_64__)
+       // Case for x64 with PIC. In theory this is only a problem with recent gcc and with medium or large code model, not with the default small code model.
+       // However, we cannot detect which code model is used, and the xchg overhead is negligible anyway.
+#      define EIGEN_CPUID(abcd,func,id) \
+        __asm__ __volatile__ ("xchg{q}\t{%%}rbx, %q1; cpuid; xchg{q}\t{%%}rbx, %q1": "=a" (abcd[0]), "=&r" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "0" (func), "2" (id));
+#    else
+       // Case for x86_64 or x86 w/o PIC
+#      define EIGEN_CPUID(abcd,func,id) \
+         __asm__ __volatile__ ("cpuid": "=a" (abcd[0]), "=b" (abcd[1]), "=c" (abcd[2]), "=d" (abcd[3]) : "0" (func), "2" (id) );
+#    endif
+#  elif defined(_MSC_VER)
+#    if (_MSC_VER > 1500) && ( defined(_M_IX86) || defined(_M_X64) )
+#      define EIGEN_CPUID(abcd,func,id) __cpuidex((int*)abcd,func,id)
+#    endif
+#  endif
+#endif
+
+namespace internal {
+
+#ifdef EIGEN_CPUID
+
+inline bool cpuid_is_vendor(int abcd[4], const int vendor[3])
+{
+  return abcd[1]==vendor[0] && abcd[3]==vendor[1] && abcd[2]==vendor[2];
+}
+
+inline void queryCacheSizes_intel_direct(int& l1, int& l2, int& l3)
+{
+  int abcd[4];
+  l1 = l2 = l3 = 0;
+  int cache_id = 0;
+  int cache_type = 0;
+  do {
+    abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
+    EIGEN_CPUID(abcd,0x4,cache_id);
+    cache_type  = (abcd[0] & 0x0F) >> 0;
+    if(cache_type==1||cache_type==3) // data or unified cache
+    {
+      int cache_level = (abcd[0] & 0xE0) >> 5;  // A[7:5]
+      int ways        = (abcd[1] & 0xFFC00000) >> 22; // B[31:22]
+      int partitions  = (abcd[1] & 0x003FF000) >> 12; // B[21:12]
+      int line_size   = (abcd[1] & 0x00000FFF) >>  0; // B[11:0]
+      int sets        = (abcd[2]);                    // C[31:0]
+
+      int cache_size = (ways+1) * (partitions+1) * (line_size+1) * (sets+1);
+
+      switch(cache_level)
+      {
+        case 1: l1 = cache_size; break;
+        case 2: l2 = cache_size; break;
+        case 3: l3 = cache_size; break;
+        default: break;
+      }
+    }
+    cache_id++;
+  } while(cache_type>0 && cache_id<16);
+}
+
+inline void queryCacheSizes_intel_codes(int& l1, int& l2, int& l3)
+{
+  int abcd[4];
+  abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
+  l1 = l2 = l3 = 0;
+  EIGEN_CPUID(abcd,0x00000002,0);
+  unsigned char * bytes = reinterpret_cast<unsigned char *>(abcd)+2;
+  bool check_for_p2_core2 = false;
+  for(int i=0; i<14; ++i)
+  {
+    switch(bytes[i])
+    {
+      case 0x0A: l1 = 8; break;   // 0Ah   data L1 cache, 8 KB, 2 ways, 32 byte lines
+      case 0x0C: l1 = 16; break;  // 0Ch   data L1 cache, 16 KB, 4 ways, 32 byte lines
+      case 0x0E: l1 = 24; break;  // 0Eh   data L1 cache, 24 KB, 6 ways, 64 byte lines
+      case 0x10: l1 = 16; break;  // 10h   data L1 cache, 16 KB, 4 ways, 32 byte lines (IA-64)
+      case 0x15: l1 = 16; break;  // 15h   code L1 cache, 16 KB, 4 ways, 32 byte lines (IA-64)
+      case 0x2C: l1 = 32; break;  // 2Ch   data L1 cache, 32 KB, 8 ways, 64 byte lines
+      case 0x30: l1 = 32; break;  // 30h   code L1 cache, 32 KB, 8 ways, 64 byte lines
+      case 0x60: l1 = 16; break;  // 60h   data L1 cache, 16 KB, 8 ways, 64 byte lines, sectored
+      case 0x66: l1 = 8; break;   // 66h   data L1 cache, 8 KB, 4 ways, 64 byte lines, sectored
+      case 0x67: l1 = 16; break;  // 67h   data L1 cache, 16 KB, 4 ways, 64 byte lines, sectored
+      case 0x68: l1 = 32; break;  // 68h   data L1 cache, 32 KB, 4 ways, 64 byte lines, sectored
+      case 0x1A: l2 = 96; break;   // code and data L2 cache, 96 KB, 6 ways, 64 byte lines (IA-64)
+      case 0x22: l3 = 512; break;   // code and data L3 cache, 512 KB, 4 ways (!), 64 byte lines, dual-sectored
+      case 0x23: l3 = 1024; break;   // code and data L3 cache, 1024 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x25: l3 = 2048; break;   // code and data L3 cache, 2048 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x29: l3 = 4096; break;   // code and data L3 cache, 4096 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x39: l2 = 128; break;   // code and data L2 cache, 128 KB, 4 ways, 64 byte lines, sectored
+      case 0x3A: l2 = 192; break;   // code and data L2 cache, 192 KB, 6 ways, 64 byte lines, sectored
+      case 0x3B: l2 = 128; break;   // code and data L2 cache, 128 KB, 2 ways, 64 byte lines, sectored
+      case 0x3C: l2 = 256; break;   // code and data L2 cache, 256 KB, 4 ways, 64 byte lines, sectored
+      case 0x3D: l2 = 384; break;   // code and data L2 cache, 384 KB, 6 ways, 64 byte lines, sectored
+      case 0x3E: l2 = 512; break;   // code and data L2 cache, 512 KB, 4 ways, 64 byte lines, sectored
+      case 0x40: l2 = 0; break;   // no integrated L2 cache (P6 core) or L3 cache (P4 core)
+      case 0x41: l2 = 128; break;   // code and data L2 cache, 128 KB, 4 ways, 32 byte lines
+      case 0x42: l2 = 256; break;   // code and data L2 cache, 256 KB, 4 ways, 32 byte lines
+      case 0x43: l2 = 512; break;   // code and data L2 cache, 512 KB, 4 ways, 32 byte lines
+      case 0x44: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 4 ways, 32 byte lines
+      case 0x45: l2 = 2048; break;   // code and data L2 cache, 2048 KB, 4 ways, 32 byte lines
+      case 0x46: l3 = 4096; break;   // code and data L3 cache, 4096 KB, 4 ways, 64 byte lines
+      case 0x47: l3 = 8192; break;   // code and data L3 cache, 8192 KB, 8 ways, 64 byte lines
+      case 0x48: l2 = 3072; break;   // code and data L2 cache, 3072 KB, 12 ways, 64 byte lines
+      case 0x49: if(l2!=0) l3 = 4096; else {check_for_p2_core2=true; l3 = l2 = 4096;} break;// code and data L3 cache, 4096 KB, 16 ways, 64 byte lines (P4) or L2 for core2
+      case 0x4A: l3 = 6144; break;   // code and data L3 cache, 6144 KB, 12 ways, 64 byte lines
+      case 0x4B: l3 = 8192; break;   // code and data L3 cache, 8192 KB, 16 ways, 64 byte lines
+      case 0x4C: l3 = 12288; break;   // code and data L3 cache, 12288 KB, 12 ways, 64 byte lines
+      case 0x4D: l3 = 16384; break;   // code and data L3 cache, 16384 KB, 16 ways, 64 byte lines
+      case 0x4E: l2 = 6144; break;   // code and data L2 cache, 6144 KB, 24 ways, 64 byte lines
+      case 0x78: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 4 ways, 64 byte lines
+      case 0x79: l2 = 128; break;   // code and data L2 cache, 128 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x7A: l2 = 256; break;   // code and data L2 cache, 256 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x7B: l2 = 512; break;   // code and data L2 cache, 512 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x7C: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 8 ways, 64 byte lines, dual-sectored
+      case 0x7D: l2 = 2048; break;   // code and data L2 cache, 2048 KB, 8 ways, 64 byte lines
+      case 0x7E: l2 = 256; break;   // code and data L2 cache, 256 KB, 8 ways, 128 byte lines, sect. (IA-64)
+      case 0x7F: l2 = 512; break;   // code and data L2 cache, 512 KB, 2 ways, 64 byte lines
+      case 0x80: l2 = 512; break;   // code and data L2 cache, 512 KB, 8 ways, 64 byte lines
+      case 0x81: l2 = 128; break;   // code and data L2 cache, 128 KB, 8 ways, 32 byte lines
+      case 0x82: l2 = 256; break;   // code and data L2 cache, 256 KB, 8 ways, 32 byte lines
+      case 0x83: l2 = 512; break;   // code and data L2 cache, 512 KB, 8 ways, 32 byte lines
+      case 0x84: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 8 ways, 32 byte lines
+      case 0x85: l2 = 2048; break;   // code and data L2 cache, 2048 KB, 8 ways, 32 byte lines
+      case 0x86: l2 = 512; break;   // code and data L2 cache, 512 KB, 4 ways, 64 byte lines
+      case 0x87: l2 = 1024; break;   // code and data L2 cache, 1024 KB, 8 ways, 64 byte lines
+      case 0x88: l3 = 2048; break;   // code and data L3 cache, 2048 KB, 4 ways, 64 byte lines (IA-64)
+      case 0x89: l3 = 4096; break;   // code and data L3 cache, 4096 KB, 4 ways, 64 byte lines (IA-64)
+      case 0x8A: l3 = 8192; break;   // code and data L3 cache, 8192 KB, 4 ways, 64 byte lines (IA-64)
+      case 0x8D: l3 = 3072; break;   // code and data L3 cache, 3072 KB, 12 ways, 128 byte lines (IA-64)
+
+      default: break;
+    }
+  }
+  if(check_for_p2_core2 && l2 == l3)
+    l3 = 0;
+  l1 *= 1024;
+  l2 *= 1024;
+  l3 *= 1024;
+}
+
+inline void queryCacheSizes_intel(int& l1, int& l2, int& l3, int max_std_funcs)
+{
+  if(max_std_funcs>=4)
+    queryCacheSizes_intel_direct(l1,l2,l3);
+  else
+    queryCacheSizes_intel_codes(l1,l2,l3);
+}
+
+inline void queryCacheSizes_amd(int& l1, int& l2, int& l3)
+{
+  int abcd[4];
+  abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
+  EIGEN_CPUID(abcd,0x80000005,0);
+  l1 = (abcd[2] >> 24) * 1024; // C[31:24] = L1 size in KB
+  abcd[0] = abcd[1] = abcd[2] = abcd[3] = 0;
+  EIGEN_CPUID(abcd,0x80000006,0);
+  l2 = (abcd[2] >> 16) * 1024; // C[31;16] = l2 cache size in KB
+  l3 = ((abcd[3] & 0xFFFC000) >> 18) * 512 * 1024; // D[31;18] = l3 cache size in 512KB
+}
+#endif
+
+/** \internal
+ * Queries and returns the cache sizes in Bytes of the L1, L2, and L3 data caches respectively */
+inline void queryCacheSizes(int& l1, int& l2, int& l3)
+{
+  #ifdef EIGEN_CPUID
+  int abcd[4];
+  const int GenuineIntel[] = {0x756e6547, 0x49656e69, 0x6c65746e};
+  const int AuthenticAMD[] = {0x68747541, 0x69746e65, 0x444d4163};
+  const int AMDisbetter_[] = {0x69444d41, 0x74656273, 0x21726574}; // "AMDisbetter!"
+
+  // identify the CPU vendor
+  EIGEN_CPUID(abcd,0x0,0);
+  int max_std_funcs = abcd[1];
+  if(cpuid_is_vendor(abcd,GenuineIntel))
+    queryCacheSizes_intel(l1,l2,l3,max_std_funcs);
+  else if(cpuid_is_vendor(abcd,AuthenticAMD) || cpuid_is_vendor(abcd,AMDisbetter_))
+    queryCacheSizes_amd(l1,l2,l3);
+  else
+    // by default let's use Intel's API
+    queryCacheSizes_intel(l1,l2,l3,max_std_funcs);
+
+  // here is the list of other vendors:
+//   ||cpuid_is_vendor(abcd,"VIA VIA VIA ")
+//   ||cpuid_is_vendor(abcd,"CyrixInstead")
+//   ||cpuid_is_vendor(abcd,"CentaurHauls")
+//   ||cpuid_is_vendor(abcd,"GenuineTMx86")
+//   ||cpuid_is_vendor(abcd,"TransmetaCPU")
+//   ||cpuid_is_vendor(abcd,"RiseRiseRise")
+//   ||cpuid_is_vendor(abcd,"Geode by NSC")
+//   ||cpuid_is_vendor(abcd,"SiS SiS SiS ")
+//   ||cpuid_is_vendor(abcd,"UMC UMC UMC ")
+//   ||cpuid_is_vendor(abcd,"NexGenDriven")
+  #else
+  l1 = l2 = l3 = -1;
+  #endif
+}
+
+/** \internal
+ * \returns the size in Bytes of the L1 data cache */
+inline int queryL1CacheSize()
+{
+  int l1(-1), l2, l3;
+  queryCacheSizes(l1,l2,l3);
+  return l1;
+}
+
+/** \internal
+ * \returns the size in Bytes of the L2 or L3 cache if this later is present */
+inline int queryTopLevelCacheSize()
+{
+  int l1, l2(-1), l3(-1);
+  queryCacheSizes(l1,l2,l3);
+  return (std::max)(l2,l3);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MEMORY_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/StaticAssert.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/StaticAssert.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/StaticAssert.h	(revision 2476)
@@ -0,0 +1,208 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STATIC_ASSERT_H
+#define EIGEN_STATIC_ASSERT_H
+
+/* Some notes on Eigen's static assertion mechanism:
+ *
+ *  - in EIGEN_STATIC_ASSERT(CONDITION,MSG) the parameter CONDITION must be a compile time boolean
+ *    expression, and MSG an enum listed in struct internal::static_assertion<true>
+ *
+ *  - define EIGEN_NO_STATIC_ASSERT to disable them (and save compilation time)
+ *    in that case, the static assertion is converted to the following runtime assert:
+ *      eigen_assert(CONDITION && "MSG")
+ *
+ *  - currently EIGEN_STATIC_ASSERT can only be used in function scope
+ *
+ */
+
+#ifndef EIGEN_NO_STATIC_ASSERT
+
+  #if __has_feature(cxx_static_assert) || (defined(__cplusplus) && __cplusplus >= 201103L) || (EIGEN_COMP_MSVC >= 1600)
+
+    // if native static_assert is enabled, let's use it
+    #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
+
+  #else // not CXX0X
+
+    namespace Eigen {
+
+    namespace internal {
+
+    template<bool condition>
+    struct static_assertion {};
+
+    template<>
+    struct static_assertion<true>
+    {
+      enum {
+        YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX,
+        YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES,
+        YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES,
+        THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE,
+        THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE,
+        THIS_METHOD_IS_ONLY_FOR_OBJECTS_OF_A_SPECIFIC_SIZE,
+        YOU_MADE_A_PROGRAMMING_MISTAKE,
+        EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT,
+        EIGEN_INTERNAL_COMPILATION_ERROR_OR_YOU_MADE_A_PROGRAMMING_MISTAKE,
+        YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR,
+        YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR,
+        UNALIGNED_LOAD_AND_STORE_OPERATIONS_UNIMPLEMENTED_ON_ALTIVEC,
+        THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES,
+        FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED,
+        NUMERIC_TYPE_MUST_BE_REAL,
+        COEFFICIENT_WRITE_ACCESS_TO_SELFADJOINT_NOT_SUPPORTED,
+        WRITING_TO_TRIANGULAR_PART_WITH_UNIT_DIAGONAL_IS_NOT_SUPPORTED,
+        THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE,
+        INVALID_MATRIX_PRODUCT,
+        INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS,
+        INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION,
+        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY,
+        THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES,
+        THIS_METHOD_IS_ONLY_FOR_ROW_MAJOR_MATRICES,
+        INVALID_MATRIX_TEMPLATE_PARAMETERS,
+        INVALID_MATRIXBASE_TEMPLATE_PARAMETERS,
+        BOTH_MATRICES_MUST_HAVE_THE_SAME_STORAGE_ORDER,
+        THIS_METHOD_IS_ONLY_FOR_DIAGONAL_MATRIX,
+        THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE,
+        THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_WITH_DIRECT_MEMORY_ACCESS_SUCH_AS_MAP_OR_PLAIN_MATRICES,
+        YOU_ALREADY_SPECIFIED_THIS_STRIDE,
+        INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION,
+        THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD,
+        PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1,
+        THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS,
+        YOU_CANNOT_MIX_ARRAYS_AND_MATRICES,
+        YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION,
+        THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY,
+        YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT,
+        THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS,
+        THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL,
+        THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES,
+        YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED,
+        YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED,
+        THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE,
+        THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH,
+        OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG,
+        IMPLICIT_CONVERSION_TO_SCALAR_IS_FOR_INNER_PRODUCT_ONLY,
+        STORAGE_LAYOUT_DOES_NOT_MATCH
+      };
+    };
+
+    } // end namespace internal
+
+    } // end namespace Eigen
+
+    // Specialized implementation for MSVC to avoid "conditional
+    // expression is constant" warnings.  This implementation doesn't
+    // appear to work under GCC, hence the multiple implementations.
+    #ifdef _MSC_VER
+
+      #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
+        {Eigen::internal::static_assertion<bool(CONDITION)>::MSG;}
+
+    #else
+
+      #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
+        if (Eigen::internal::static_assertion<bool(CONDITION)>::MSG) {}
+
+    #endif
+
+  #endif // not CXX0X
+
+#else // EIGEN_NO_STATIC_ASSERT
+
+  #define EIGEN_STATIC_ASSERT(CONDITION,MSG) eigen_assert((CONDITION) && #MSG);
+
+#endif // EIGEN_NO_STATIC_ASSERT
+
+
+// static assertion failing if the type \a TYPE is not a vector type
+#define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE) \
+  EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime, \
+                      YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX)
+
+// static assertion failing if the type \a TYPE is not fixed-size
+#define EIGEN_STATIC_ASSERT_FIXED_SIZE(TYPE) \
+  EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime!=Eigen::Dynamic, \
+                      YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR)
+
+// static assertion failing if the type \a TYPE is not dynamic-size
+#define EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(TYPE) \
+  EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime==Eigen::Dynamic, \
+                      YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR)
+
+// static assertion failing if the type \a TYPE is not a vector type of the given size
+#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE) \
+  EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime && TYPE::SizeAtCompileTime==SIZE, \
+                      THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE)
+
+// static assertion failing if the type \a TYPE is not a vector type of the given size
+#define EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(TYPE, ROWS, COLS) \
+  EIGEN_STATIC_ASSERT(TYPE::RowsAtCompileTime==ROWS && TYPE::ColsAtCompileTime==COLS, \
+                      THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE)
+
+// static assertion failing if the two vector expression types are not compatible (same fixed-size or dynamic size)
+#define EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(TYPE0,TYPE1) \
+  EIGEN_STATIC_ASSERT( \
+      (int(TYPE0::SizeAtCompileTime)==Eigen::Dynamic \
+    || int(TYPE1::SizeAtCompileTime)==Eigen::Dynamic \
+    || int(TYPE0::SizeAtCompileTime)==int(TYPE1::SizeAtCompileTime)),\
+    YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES)
+
+#define EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0,TYPE1) \
+     ( \
+        (int(TYPE0::SizeAtCompileTime)==0 && int(TYPE1::SizeAtCompileTime)==0) \
+    || (\
+          (int(TYPE0::RowsAtCompileTime)==Eigen::Dynamic \
+        || int(TYPE1::RowsAtCompileTime)==Eigen::Dynamic \
+        || int(TYPE0::RowsAtCompileTime)==int(TYPE1::RowsAtCompileTime)) \
+      &&  (int(TYPE0::ColsAtCompileTime)==Eigen::Dynamic \
+        || int(TYPE1::ColsAtCompileTime)==Eigen::Dynamic \
+        || int(TYPE0::ColsAtCompileTime)==int(TYPE1::ColsAtCompileTime))\
+       ) \
+     )
+
+#ifdef EIGEN2_SUPPORT
+  #define EIGEN_STATIC_ASSERT_NON_INTEGER(TYPE) \
+    eigen_assert(!NumTraits<Scalar>::IsInteger);
+#else
+  #define EIGEN_STATIC_ASSERT_NON_INTEGER(TYPE) \
+    EIGEN_STATIC_ASSERT(!NumTraits<TYPE>::IsInteger, THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES)
+#endif
+
+
+// static assertion failing if it is guaranteed at compile-time that the two matrix expression types have different sizes
+#define EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(TYPE0,TYPE1) \
+  EIGEN_STATIC_ASSERT( \
+     EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0,TYPE1),\
+    YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES)
+
+#define EIGEN_STATIC_ASSERT_SIZE_1x1(TYPE) \
+      EIGEN_STATIC_ASSERT((TYPE::RowsAtCompileTime == 1 || TYPE::RowsAtCompileTime == Dynamic) && \
+                          (TYPE::ColsAtCompileTime == 1 || TYPE::ColsAtCompileTime == Dynamic), \
+                          THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS)
+
+#define EIGEN_STATIC_ASSERT_LVALUE(Derived) \
+      EIGEN_STATIC_ASSERT(internal::is_lvalue<Derived>::value, \
+                          THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
+
+#define EIGEN_STATIC_ASSERT_ARRAYXPR(Derived) \
+      EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Derived>::XprKind, ArrayXpr>::value), \
+                          THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES)
+
+#define EIGEN_STATIC_ASSERT_SAME_XPR_KIND(Derived1, Derived2) \
+      EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Derived1>::XprKind, \
+                                             typename internal::traits<Derived2>::XprKind \
+                                            >::value), \
+                          YOU_CANNOT_MIX_ARRAYS_AND_MATRICES)
+
+
+#endif // EIGEN_STATIC_ASSERT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/XprHelper.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/XprHelper.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/XprHelper.h	(revision 2476)
@@ -0,0 +1,469 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_XPRHELPER_H
+#define EIGEN_XPRHELPER_H
+
+// just a workaround because GCC seems to not really like empty structs
+// FIXME: gcc 4.3 generates bad code when strict-aliasing is enabled
+// so currently we simply disable this optimization for gcc 4.3
+#if (defined __GNUG__) && !((__GNUC__==4) && (__GNUC_MINOR__==3))
+  #define EIGEN_EMPTY_STRUCT_CTOR(X) \
+    EIGEN_STRONG_INLINE X() {} \
+    EIGEN_STRONG_INLINE X(const X& ) {}
+#else
+  #define EIGEN_EMPTY_STRUCT_CTOR(X)
+#endif
+
+namespace Eigen {
+
+typedef EIGEN_DEFAULT_DENSE_INDEX_TYPE DenseIndex;
+
+namespace internal {
+
+//classes inheriting no_assignment_operator don't generate a default operator=.
+class no_assignment_operator
+{
+  private:
+    no_assignment_operator& operator=(const no_assignment_operator&);
+};
+
+/** \internal return the index type with the largest number of bits */
+template<typename I1, typename I2>
+struct promote_index_type
+{
+  typedef typename conditional<(sizeof(I1)<sizeof(I2)), I2, I1>::type type;
+};
+
+/** \internal If the template parameter Value is Dynamic, this class is just a wrapper around a T variable that
+  * can be accessed using value() and setValue().
+  * Otherwise, this class is an empty structure and value() just returns the template parameter Value.
+  */
+template<typename T, int Value> class variable_if_dynamic
+{
+  public:
+    EIGEN_EMPTY_STRUCT_CTOR(variable_if_dynamic)
+    explicit variable_if_dynamic(T v) { EIGEN_ONLY_USED_FOR_DEBUG(v); assert(v == T(Value)); }
+    static T value() { return T(Value); }
+    void setValue(T) {}
+};
+
+template<typename T> class variable_if_dynamic<T, Dynamic>
+{
+    T m_value;
+    variable_if_dynamic() { assert(false); }
+  public:
+    explicit variable_if_dynamic(T value) : m_value(value) {}
+    T value() const { return m_value; }
+    void setValue(T value) { m_value = value; }
+};
+
+/** \internal like variable_if_dynamic but for DynamicIndex
+  */
+template<typename T, int Value> class variable_if_dynamicindex
+{
+  public:
+    EIGEN_EMPTY_STRUCT_CTOR(variable_if_dynamicindex)
+    explicit variable_if_dynamicindex(T v) { EIGEN_ONLY_USED_FOR_DEBUG(v); assert(v == T(Value)); }
+    static T value() { return T(Value); }
+    void setValue(T) {}
+};
+
+template<typename T> class variable_if_dynamicindex<T, DynamicIndex>
+{
+    T m_value;
+    variable_if_dynamicindex() { assert(false); }
+  public:
+    explicit variable_if_dynamicindex(T value) : m_value(value) {}
+    T value() const { return m_value; }
+    void setValue(T value) { m_value = value; }
+};
+
+template<typename T> struct functor_traits
+{
+  enum
+  {
+    Cost = 10,
+    PacketAccess = false,
+    IsRepeatable = false
+  };
+};
+
+template<typename T> struct packet_traits;
+
+template<typename T> struct unpacket_traits
+{
+  typedef T type;
+  enum {size=1};
+};
+
+template<typename _Scalar, int _Rows, int _Cols,
+         int _Options = AutoAlign |
+                          ( (_Rows==1 && _Cols!=1) ? RowMajor
+                          : (_Cols==1 && _Rows!=1) ? ColMajor
+                          : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ),
+         int _MaxRows = _Rows,
+         int _MaxCols = _Cols
+> class make_proper_matrix_type
+{
+    enum {
+      IsColVector = _Cols==1 && _Rows!=1,
+      IsRowVector = _Rows==1 && _Cols!=1,
+      Options = IsColVector ? (_Options | ColMajor) & ~RowMajor
+              : IsRowVector ? (_Options | RowMajor) & ~ColMajor
+              : _Options
+    };
+  public:
+    typedef Matrix<_Scalar, _Rows, _Cols, Options, _MaxRows, _MaxCols> type;
+};
+
+template<typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
+class compute_matrix_flags
+{
+    enum {
+      row_major_bit = Options&RowMajor ? RowMajorBit : 0,
+      is_dynamic_size_storage = MaxRows==Dynamic || MaxCols==Dynamic,
+
+      aligned_bit =
+      (
+            ((Options&DontAlign)==0)
+        && (
+#if EIGEN_ALIGN_STATICALLY
+             ((!is_dynamic_size_storage) && (((MaxCols*MaxRows*int(sizeof(Scalar))) % 16) == 0))
+#else
+             0
+#endif
+
+          ||
+
+#if EIGEN_ALIGN
+             is_dynamic_size_storage
+#else
+             0
+#endif
+
+          )
+      ) ? AlignedBit : 0,
+      packet_access_bit = packet_traits<Scalar>::Vectorizable && aligned_bit ? PacketAccessBit : 0
+    };
+
+  public:
+    enum { ret = LinearAccessBit | LvalueBit | DirectAccessBit | NestByRefBit | packet_access_bit | row_major_bit | aligned_bit };
+};
+
+template<int _Rows, int _Cols> struct size_at_compile_time
+{
+  enum { ret = (_Rows==Dynamic || _Cols==Dynamic) ? Dynamic : _Rows * _Cols };
+};
+
+/* plain_matrix_type : the difference from eval is that plain_matrix_type is always a plain matrix type,
+ * whereas eval is a const reference in the case of a matrix
+ */
+
+template<typename T, typename StorageKind = typename traits<T>::StorageKind> struct plain_matrix_type;
+template<typename T, typename BaseClassType> struct plain_matrix_type_dense;
+template<typename T> struct plain_matrix_type<T,Dense>
+{
+  typedef typename plain_matrix_type_dense<T,typename traits<T>::XprKind>::type type;
+};
+
+template<typename T> struct plain_matrix_type_dense<T,MatrixXpr>
+{
+  typedef Matrix<typename traits<T>::Scalar,
+                traits<T>::RowsAtCompileTime,
+                traits<T>::ColsAtCompileTime,
+                AutoAlign | (traits<T>::Flags&RowMajorBit ? RowMajor : ColMajor),
+                traits<T>::MaxRowsAtCompileTime,
+                traits<T>::MaxColsAtCompileTime
+          > type;
+};
+
+template<typename T> struct plain_matrix_type_dense<T,ArrayXpr>
+{
+  typedef Array<typename traits<T>::Scalar,
+                traits<T>::RowsAtCompileTime,
+                traits<T>::ColsAtCompileTime,
+                AutoAlign | (traits<T>::Flags&RowMajorBit ? RowMajor : ColMajor),
+                traits<T>::MaxRowsAtCompileTime,
+                traits<T>::MaxColsAtCompileTime
+          > type;
+};
+
+/* eval : the return type of eval(). For matrices, this is just a const reference
+ * in order to avoid a useless copy
+ */
+
+template<typename T, typename StorageKind = typename traits<T>::StorageKind> struct eval;
+
+template<typename T> struct eval<T,Dense>
+{
+  typedef typename plain_matrix_type<T>::type type;
+//   typedef typename T::PlainObject type;
+//   typedef T::Matrix<typename traits<T>::Scalar,
+//                 traits<T>::RowsAtCompileTime,
+//                 traits<T>::ColsAtCompileTime,
+//                 AutoAlign | (traits<T>::Flags&RowMajorBit ? RowMajor : ColMajor),
+//                 traits<T>::MaxRowsAtCompileTime,
+//                 traits<T>::MaxColsAtCompileTime
+//           > type;
+};
+
+// for matrices, no need to evaluate, just use a const reference to avoid a useless copy
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct eval<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>, Dense>
+{
+  typedef const Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& type;
+};
+
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct eval<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>, Dense>
+{
+  typedef const Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& type;
+};
+
+
+
+/* plain_matrix_type_column_major : same as plain_matrix_type but guaranteed to be column-major
+ */
+template<typename T> struct plain_matrix_type_column_major
+{
+  enum { Rows = traits<T>::RowsAtCompileTime,
+         Cols = traits<T>::ColsAtCompileTime,
+         MaxRows = traits<T>::MaxRowsAtCompileTime,
+         MaxCols = traits<T>::MaxColsAtCompileTime
+  };
+  typedef Matrix<typename traits<T>::Scalar,
+                Rows,
+                Cols,
+                (MaxRows==1&&MaxCols!=1) ? RowMajor : ColMajor,
+                MaxRows,
+                MaxCols
+          > type;
+};
+
+/* plain_matrix_type_row_major : same as plain_matrix_type but guaranteed to be row-major
+ */
+template<typename T> struct plain_matrix_type_row_major
+{
+  enum { Rows = traits<T>::RowsAtCompileTime,
+         Cols = traits<T>::ColsAtCompileTime,
+         MaxRows = traits<T>::MaxRowsAtCompileTime,
+         MaxCols = traits<T>::MaxColsAtCompileTime
+  };
+  typedef Matrix<typename traits<T>::Scalar,
+                Rows,
+                Cols,
+                (MaxCols==1&&MaxRows!=1) ? RowMajor : ColMajor,
+                MaxRows,
+                MaxCols
+          > type;
+};
+
+// we should be able to get rid of this one too
+template<typename T> struct must_nest_by_value { enum { ret = false }; };
+
+/** \internal The reference selector for template expressions. The idea is that we don't
+  * need to use references for expressions since they are light weight proxy
+  * objects which should generate no copying overhead. */
+template <typename T>
+struct ref_selector
+{
+  typedef typename conditional<
+    bool(traits<T>::Flags & NestByRefBit),
+    T const&,
+    const T
+  >::type type;
+};
+
+/** \internal Adds the const qualifier on the value-type of T2 if and only if T1 is a const type */
+template<typename T1, typename T2>
+struct transfer_constness
+{
+  typedef typename conditional<
+    bool(internal::is_const<T1>::value),
+    typename internal::add_const_on_value_type<T2>::type,
+    T2
+  >::type type;
+};
+
+/** \internal Determines how a given expression should be nested into another one.
+  * For example, when you do a * (b+c), Eigen will determine how the expression b+c should be
+  * nested into the bigger product expression. The choice is between nesting the expression b+c as-is, or
+  * evaluating that expression b+c into a temporary variable d, and nest d so that the resulting expression is
+  * a*d. Evaluating can be beneficial for example if every coefficient access in the resulting expression causes
+  * many coefficient accesses in the nested expressions -- as is the case with matrix product for example.
+  *
+  * \param T the type of the expression being nested
+  * \param n the number of coefficient accesses in the nested expression for each coefficient access in the bigger expression.
+  *
+  * Note that if no evaluation occur, then the constness of T is preserved.
+  *
+  * Example. Suppose that a, b, and c are of type Matrix3d. The user forms the expression a*(b+c).
+  * b+c is an expression "sum of matrices", which we will denote by S. In order to determine how to nest it,
+  * the Product expression uses: nested<S, 3>::ret, which turns out to be Matrix3d because the internal logic of
+  * nested determined that in this case it was better to evaluate the expression b+c into a temporary. On the other hand,
+  * since a is of type Matrix3d, the Product expression nests it as nested<Matrix3d, 3>::ret, which turns out to be
+  * const Matrix3d&, because the internal logic of nested determined that since a was already a matrix, there was no point
+  * in copying it into another matrix.
+  */
+template<typename T, int n=1, typename PlainObject = typename eval<T>::type> struct nested
+{
+  enum {
+    // for the purpose of this test, to keep it reasonably simple, we arbitrarily choose a value of Dynamic values.
+    // the choice of 10000 makes it larger than any practical fixed value and even most dynamic values.
+    // in extreme cases where these assumptions would be wrong, we would still at worst suffer performance issues
+    // (poor choice of temporaries).
+    // it's important that this value can still be squared without integer overflowing.
+    DynamicAsInteger = 10000,
+    ScalarReadCost = NumTraits<typename traits<T>::Scalar>::ReadCost,
+    ScalarReadCostAsInteger = ScalarReadCost == Dynamic ? int(DynamicAsInteger) : int(ScalarReadCost),
+    CoeffReadCost = traits<T>::CoeffReadCost,
+    CoeffReadCostAsInteger = CoeffReadCost == Dynamic ? int(DynamicAsInteger) : int(CoeffReadCost),
+    NAsInteger = n == Dynamic ? int(DynamicAsInteger) : n,
+    CostEvalAsInteger   = (NAsInteger+1) * ScalarReadCostAsInteger + CoeffReadCostAsInteger,
+    CostNoEvalAsInteger = NAsInteger * CoeffReadCostAsInteger
+  };
+
+  typedef typename conditional<
+      ( (int(traits<T>::Flags) & EvalBeforeNestingBit) ||
+        int(CostEvalAsInteger) < int(CostNoEvalAsInteger)
+      ),
+      PlainObject,
+      typename ref_selector<T>::type
+  >::type type;
+};
+
+template<typename T>
+inline T* const_cast_ptr(const T* ptr)
+{
+  return const_cast<T*>(ptr);
+}
+
+template<typename Derived, typename XprKind = typename traits<Derived>::XprKind>
+struct dense_xpr_base
+{
+  /* dense_xpr_base should only ever be used on dense expressions, thus falling either into the MatrixXpr or into the ArrayXpr cases */
+};
+
+template<typename Derived>
+struct dense_xpr_base<Derived, MatrixXpr>
+{
+  typedef MatrixBase<Derived> type;
+};
+
+template<typename Derived>
+struct dense_xpr_base<Derived, ArrayXpr>
+{
+  typedef ArrayBase<Derived> type;
+};
+
+/** \internal Helper base class to add a scalar multiple operator
+  * overloads for complex types */
+template<typename Derived, typename Scalar, typename OtherScalar, typename BaseType,
+         bool EnableIt = !is_same<Scalar,OtherScalar>::value >
+struct special_scalar_op_base : public BaseType
+{
+  // dummy operator* so that the
+  // "using special_scalar_op_base::operator*" compiles
+  void operator*() const;
+};
+
+template<typename Derived,typename Scalar,typename OtherScalar, typename BaseType>
+struct special_scalar_op_base<Derived,Scalar,OtherScalar,BaseType,true>  : public BaseType
+{
+  const CwiseUnaryOp<scalar_multiple2_op<Scalar,OtherScalar>, Derived>
+  operator*(const OtherScalar& scalar) const
+  {
+    return CwiseUnaryOp<scalar_multiple2_op<Scalar,OtherScalar>, Derived>
+      (*static_cast<const Derived*>(this), scalar_multiple2_op<Scalar,OtherScalar>(scalar));
+  }
+
+  inline friend const CwiseUnaryOp<scalar_multiple2_op<Scalar,OtherScalar>, Derived>
+  operator*(const OtherScalar& scalar, const Derived& matrix)
+  { return static_cast<const special_scalar_op_base&>(matrix).operator*(scalar); }
+};
+
+template<typename XprType, typename CastType> struct cast_return_type
+{
+  typedef typename XprType::Scalar CurrentScalarType;
+  typedef typename remove_all<CastType>::type _CastType;
+  typedef typename _CastType::Scalar NewScalarType;
+  typedef typename conditional<is_same<CurrentScalarType,NewScalarType>::value,
+                              const XprType&,CastType>::type type;
+};
+
+template <typename A, typename B> struct promote_storage_type;
+
+template <typename A> struct promote_storage_type<A,A>
+{
+  typedef A ret;
+};
+
+/** \internal gives the plain matrix or array type to store a row/column/diagonal of a matrix type.
+  * \param Scalar optional parameter allowing to pass a different scalar type than the one of the MatrixType.
+  */
+template<typename ExpressionType, typename Scalar = typename ExpressionType::Scalar>
+struct plain_row_type
+{
+  typedef Matrix<Scalar, 1, ExpressionType::ColsAtCompileTime,
+                 ExpressionType::PlainObject::Options | RowMajor, 1, ExpressionType::MaxColsAtCompileTime> MatrixRowType;
+  typedef Array<Scalar, 1, ExpressionType::ColsAtCompileTime,
+                 ExpressionType::PlainObject::Options | RowMajor, 1, ExpressionType::MaxColsAtCompileTime> ArrayRowType;
+
+  typedef typename conditional<
+    is_same< typename traits<ExpressionType>::XprKind, MatrixXpr >::value,
+    MatrixRowType,
+    ArrayRowType 
+  >::type type;
+};
+
+template<typename ExpressionType, typename Scalar = typename ExpressionType::Scalar>
+struct plain_col_type
+{
+  typedef Matrix<Scalar, ExpressionType::RowsAtCompileTime, 1,
+                 ExpressionType::PlainObject::Options & ~RowMajor, ExpressionType::MaxRowsAtCompileTime, 1> MatrixColType;
+  typedef Array<Scalar, ExpressionType::RowsAtCompileTime, 1,
+                 ExpressionType::PlainObject::Options & ~RowMajor, ExpressionType::MaxRowsAtCompileTime, 1> ArrayColType;
+
+  typedef typename conditional<
+    is_same< typename traits<ExpressionType>::XprKind, MatrixXpr >::value,
+    MatrixColType,
+    ArrayColType 
+  >::type type;
+};
+
+template<typename ExpressionType, typename Scalar = typename ExpressionType::Scalar>
+struct plain_diag_type
+{
+  enum { diag_size = EIGEN_SIZE_MIN_PREFER_DYNAMIC(ExpressionType::RowsAtCompileTime, ExpressionType::ColsAtCompileTime),
+         max_diag_size = EIGEN_SIZE_MIN_PREFER_FIXED(ExpressionType::MaxRowsAtCompileTime, ExpressionType::MaxColsAtCompileTime)
+  };
+  typedef Matrix<Scalar, diag_size, 1, ExpressionType::PlainObject::Options & ~RowMajor, max_diag_size, 1> MatrixDiagType;
+  typedef Array<Scalar, diag_size, 1, ExpressionType::PlainObject::Options & ~RowMajor, max_diag_size, 1> ArrayDiagType;
+
+  typedef typename conditional<
+    is_same< typename traits<ExpressionType>::XprKind, MatrixXpr >::value,
+    MatrixDiagType,
+    ArrayDiagType 
+  >::type type;
+};
+
+template<typename ExpressionType>
+struct is_lvalue
+{
+  enum { value = !bool(is_const<ExpressionType>::value) &&
+                 bool(traits<ExpressionType>::Flags & LvalueBit) };
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_XPRHELPER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/Constants.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/Constants.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/Constants.h	(revision 2476)
@@ -0,0 +1,451 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CONSTANTS_H
+#define EIGEN_CONSTANTS_H
+
+namespace Eigen {
+
+/** This value means that a positive quantity (e.g., a size) is not known at compile-time, and that instead the value is
+  * stored in some runtime variable.
+  *
+  * Changing the value of Dynamic breaks the ABI, as Dynamic is often used as a template parameter for Matrix.
+  */
+const int Dynamic = -1;
+
+/** This value means that a signed quantity (e.g., a signed index) is not known at compile-time, and that instead its value
+  * has to be specified at runtime.
+  */
+const int DynamicIndex = 0xffffff;
+
+/** This value means +Infinity; it is currently used only as the p parameter to MatrixBase::lpNorm<int>().
+  * The value Infinity there means the L-infinity norm.
+  */
+const int Infinity = -1;
+
+/** \defgroup flags Flags
+  * \ingroup Core_Module
+  *
+  * These are the possible bits which can be OR'ed to constitute the flags of a matrix or
+  * expression.
+  *
+  * It is important to note that these flags are a purely compile-time notion. They are a compile-time property of
+  * an expression type, implemented as enum's. They are not stored in memory at runtime, and they do not incur any
+  * runtime overhead.
+  *
+  * \sa MatrixBase::Flags
+  */
+
+/** \ingroup flags
+  *
+  * for a matrix, this means that the storage order is row-major.
+  * If this bit is not set, the storage order is column-major.
+  * For an expression, this determines the storage order of
+  * the matrix created by evaluation of that expression. 
+  * \sa \ref TopicStorageOrders */
+const unsigned int RowMajorBit = 0x1;
+
+/** \ingroup flags
+  *
+  * means the expression should be evaluated by the calling expression */
+const unsigned int EvalBeforeNestingBit = 0x2;
+
+/** \ingroup flags
+  *
+  * means the expression should be evaluated before any assignment */
+const unsigned int EvalBeforeAssigningBit = 0x4;
+
+/** \ingroup flags
+  *
+  * Short version: means the expression might be vectorized
+  *
+  * Long version: means that the coefficients can be handled by packets
+  * and start at a memory location whose alignment meets the requirements
+  * of the present CPU architecture for optimized packet access. In the fixed-size
+  * case, there is the additional condition that it be possible to access all the
+  * coefficients by packets (this implies the requirement that the size be a multiple of 16 bytes,
+  * and that any nontrivial strides don't break the alignment). In the dynamic-size case,
+  * there is no such condition on the total size and strides, so it might not be possible to access
+  * all coeffs by packets.
+  *
+  * \note This bit can be set regardless of whether vectorization is actually enabled.
+  *       To check for actual vectorizability, see \a ActualPacketAccessBit.
+  */
+const unsigned int PacketAccessBit = 0x8;
+
+#ifdef EIGEN_VECTORIZE
+/** \ingroup flags
+  *
+  * If vectorization is enabled (EIGEN_VECTORIZE is defined) this constant
+  * is set to the value \a PacketAccessBit.
+  *
+  * If vectorization is not enabled (EIGEN_VECTORIZE is not defined) this constant
+  * is set to the value 0.
+  */
+const unsigned int ActualPacketAccessBit = PacketAccessBit;
+#else
+const unsigned int ActualPacketAccessBit = 0x0;
+#endif
+
+/** \ingroup flags
+  *
+  * Short version: means the expression can be seen as 1D vector.
+  *
+  * Long version: means that one can access the coefficients
+  * of this expression by coeff(int), and coeffRef(int) in the case of a lvalue expression. These
+  * index-based access methods are guaranteed
+  * to not have to do any runtime computation of a (row, col)-pair from the index, so that it
+  * is guaranteed that whenever it is available, index-based access is at least as fast as
+  * (row,col)-based access. Expressions for which that isn't possible don't have the LinearAccessBit.
+  *
+  * If both PacketAccessBit and LinearAccessBit are set, then the
+  * packets of this expression can be accessed by packet(int), and writePacket(int) in the case of a
+  * lvalue expression.
+  *
+  * Typically, all vector expressions have the LinearAccessBit, but there is one exception:
+  * Product expressions don't have it, because it would be troublesome for vectorization, even when the
+  * Product is a vector expression. Thus, vector Product expressions allow index-based coefficient access but
+  * not index-based packet access, so they don't have the LinearAccessBit.
+  */
+const unsigned int LinearAccessBit = 0x10;
+
+/** \ingroup flags
+  *
+  * Means the expression has a coeffRef() method, i.e. is writable as its individual coefficients are directly addressable.
+  * This rules out read-only expressions.
+  *
+  * Note that DirectAccessBit and LvalueBit are mutually orthogonal, as there are examples of expression having one but note
+  * the other:
+  *   \li writable expressions that don't have a very simple memory layout as a strided array, have LvalueBit but not DirectAccessBit
+  *   \li Map-to-const expressions, for example Map<const Matrix>, have DirectAccessBit but not LvalueBit
+  *
+  * Expressions having LvalueBit also have their coeff() method returning a const reference instead of returning a new value.
+  */
+const unsigned int LvalueBit = 0x20;
+
+/** \ingroup flags
+  *
+  * Means that the underlying array of coefficients can be directly accessed as a plain strided array. The memory layout
+  * of the array of coefficients must be exactly the natural one suggested by rows(), cols(),
+  * outerStride(), innerStride(), and the RowMajorBit. This rules out expressions such as Diagonal, whose coefficients,
+  * though referencable, do not have such a regular memory layout.
+  *
+  * See the comment on LvalueBit for an explanation of how LvalueBit and DirectAccessBit are mutually orthogonal.
+  */
+const unsigned int DirectAccessBit = 0x40;
+
+/** \ingroup flags
+  *
+  * means the first coefficient packet is guaranteed to be aligned */
+const unsigned int AlignedBit = 0x80;
+
+const unsigned int NestByRefBit = 0x100;
+
+// list of flags that are inherited by default
+const unsigned int HereditaryBits = RowMajorBit
+                                  | EvalBeforeNestingBit
+                                  | EvalBeforeAssigningBit;
+
+/** \defgroup enums Enumerations
+  * \ingroup Core_Module
+  *
+  * Various enumerations used in %Eigen. Many of these are used as template parameters.
+  */
+
+/** \ingroup enums
+  * Enum containing possible values for the \p Mode parameter of 
+  * MatrixBase::selfadjointView() and MatrixBase::triangularView(). */
+enum UpLoType {
+  /** View matrix as a lower triangular matrix. */
+  Lower=0x1,                      
+  /** View matrix as an upper triangular matrix. */
+  Upper=0x2,                      
+  /** %Matrix has ones on the diagonal; to be used in combination with #Lower or #Upper. */
+  UnitDiag=0x4, 
+  /** %Matrix has zeros on the diagonal; to be used in combination with #Lower or #Upper. */
+  ZeroDiag=0x8,
+  /** View matrix as a lower triangular matrix with ones on the diagonal. */
+  UnitLower=UnitDiag|Lower, 
+  /** View matrix as an upper triangular matrix with ones on the diagonal. */
+  UnitUpper=UnitDiag|Upper,
+  /** View matrix as a lower triangular matrix with zeros on the diagonal. */
+  StrictlyLower=ZeroDiag|Lower, 
+  /** View matrix as an upper triangular matrix with zeros on the diagonal. */
+  StrictlyUpper=ZeroDiag|Upper,
+  /** Used in BandMatrix and SelfAdjointView to indicate that the matrix is self-adjoint. */
+  SelfAdjoint=0x10,
+  /** Used to support symmetric, non-selfadjoint, complex matrices. */
+  Symmetric=0x20
+};
+
+/** \ingroup enums
+  * Enum for indicating whether an object is aligned or not. */
+enum AlignmentType {
+  /** Object is not correctly aligned for vectorization. */
+  Unaligned=0, 
+  /** Object is aligned for vectorization. */
+  Aligned=1 
+};
+
+/** \ingroup enums
+ * Enum used by DenseBase::corner() in Eigen2 compatibility mode. */
+// FIXME after the corner() API change, this was not needed anymore, except by AlignedBox
+// TODO: find out what to do with that. Adapt the AlignedBox API ?
+enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight };
+
+/** \ingroup enums
+  * Enum containing possible values for the \p Direction parameter of
+  * Reverse, PartialReduxExpr and VectorwiseOp. */
+enum DirectionType { 
+  /** For Reverse, all columns are reversed; 
+    * for PartialReduxExpr and VectorwiseOp, act on columns. */
+  Vertical, 
+  /** For Reverse, all rows are reversed; 
+    * for PartialReduxExpr and VectorwiseOp, act on rows. */
+  Horizontal, 
+  /** For Reverse, both rows and columns are reversed; 
+    * not used for PartialReduxExpr and VectorwiseOp. */
+  BothDirections 
+};
+
+/** \internal \ingroup enums
+  * Enum to specify how to traverse the entries of a matrix. */
+enum TraversalType {
+  /** \internal Default traversal, no vectorization, no index-based access */
+  DefaultTraversal,
+  /** \internal No vectorization, use index-based access to have only one for loop instead of 2 nested loops */
+  LinearTraversal,
+  /** \internal Equivalent to a slice vectorization for fixed-size matrices having good alignment
+    * and good size */
+  InnerVectorizedTraversal,
+  /** \internal Vectorization path using a single loop plus scalar loops for the
+    * unaligned boundaries */
+  LinearVectorizedTraversal,
+  /** \internal Generic vectorization path using one vectorized loop per row/column with some
+    * scalar loops to handle the unaligned boundaries */
+  SliceVectorizedTraversal,
+  /** \internal Special case to properly handle incompatible scalar types or other defecting cases*/
+  InvalidTraversal,
+  /** \internal Evaluate all entries at once */
+  AllAtOnceTraversal
+};
+
+/** \internal \ingroup enums
+  * Enum to specify whether to unroll loops when traversing over the entries of a matrix. */
+enum UnrollingType {
+  /** \internal Do not unroll loops. */
+  NoUnrolling,
+  /** \internal Unroll only the inner loop, but not the outer loop. */
+  InnerUnrolling,
+  /** \internal Unroll both the inner and the outer loop. If there is only one loop, 
+    * because linear traversal is used, then unroll that loop. */
+  CompleteUnrolling
+};
+
+/** \internal \ingroup enums
+  * Enum to specify whether to use the default (built-in) implementation or the specialization. */
+enum SpecializedType {
+  Specialized,
+  BuiltIn
+};
+
+/** \ingroup enums
+  * Enum containing possible values for the \p _Options template parameter of
+  * Matrix, Array and BandMatrix. */
+enum StorageOptions {
+  /** Storage order is column major (see \ref TopicStorageOrders). */
+  ColMajor = 0,
+  /** Storage order is row major (see \ref TopicStorageOrders). */
+  RowMajor = 0x1,  // it is only a coincidence that this is equal to RowMajorBit -- don't rely on that
+  /** Align the matrix itself if it is vectorizable fixed-size */
+  AutoAlign = 0,
+  /** Don't require alignment for the matrix itself (the array of coefficients, if dynamically allocated, may still be requested to be aligned) */ // FIXME --- clarify the situation
+  DontAlign = 0x2
+};
+
+/** \ingroup enums
+  * Enum for specifying whether to apply or solve on the left or right. */
+enum SideType {
+  /** Apply transformation on the left. */
+  OnTheLeft = 1,  
+  /** Apply transformation on the right. */
+  OnTheRight = 2  
+};
+
+/* the following used to be written as:
+ *
+ *   struct NoChange_t {};
+ *   namespace {
+ *     EIGEN_UNUSED NoChange_t NoChange;
+ *   }
+ *
+ * on the ground that it feels dangerous to disambiguate overloaded functions on enum/integer types.  
+ * However, this leads to "variable declared but never referenced" warnings on Intel Composer XE,
+ * and we do not know how to get rid of them (bug 450).
+ */
+
+enum NoChange_t   { NoChange };
+enum Sequential_t { Sequential };
+enum Default_t    { Default };
+
+/** \internal \ingroup enums
+  * Used in AmbiVector. */
+enum {
+  IsDense         = 0,
+  IsSparse
+};
+
+/** \ingroup enums
+  * Used as template parameter in DenseCoeffBase and MapBase to indicate 
+  * which accessors should be provided. */
+enum AccessorLevels {
+  /** Read-only access via a member function. */
+  ReadOnlyAccessors, 
+  /** Read/write access via member functions. */
+  WriteAccessors, 
+  /** Direct read-only access to the coefficients. */
+  DirectAccessors, 
+  /** Direct read/write access to the coefficients. */
+  DirectWriteAccessors
+};
+
+/** \ingroup enums
+  * Enum with options to give to various decompositions. */
+enum DecompositionOptions {
+  /** \internal Not used (meant for LDLT?). */
+  Pivoting            = 0x01, 
+  /** \internal Not used (meant for LDLT?). */
+  NoPivoting          = 0x02, 
+  /** Used in JacobiSVD to indicate that the square matrix U is to be computed. */
+  ComputeFullU        = 0x04,
+  /** Used in JacobiSVD to indicate that the thin matrix U is to be computed. */
+  ComputeThinU        = 0x08,
+  /** Used in JacobiSVD to indicate that the square matrix V is to be computed. */
+  ComputeFullV        = 0x10,
+  /** Used in JacobiSVD to indicate that the thin matrix V is to be computed. */
+  ComputeThinV        = 0x20,
+  /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
+    * that only the eigenvalues are to be computed and not the eigenvectors. */
+  EigenvaluesOnly     = 0x40,
+  /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
+    * that both the eigenvalues and the eigenvectors are to be computed. */
+  ComputeEigenvectors = 0x80,
+  /** \internal */
+  EigVecMask = EigenvaluesOnly | ComputeEigenvectors,
+  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
+    * solve the generalized eigenproblem \f$ Ax = \lambda B x \f$. */
+  Ax_lBx              = 0x100,
+  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
+    * solve the generalized eigenproblem \f$ ABx = \lambda x \f$. */
+  ABx_lx              = 0x200,
+  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
+    * solve the generalized eigenproblem \f$ BAx = \lambda x \f$. */
+  BAx_lx              = 0x400,
+  /** \internal */
+  GenEigMask = Ax_lBx | ABx_lx | BAx_lx
+};
+
+/** \ingroup enums
+  * Possible values for the \p QRPreconditioner template parameter of JacobiSVD. */
+enum QRPreconditioners {
+  /** Do not specify what is to be done if the SVD of a non-square matrix is asked for. */
+  NoQRPreconditioner,
+  /** Use a QR decomposition without pivoting as the first step. */
+  HouseholderQRPreconditioner,
+  /** Use a QR decomposition with column pivoting as the first step. */
+  ColPivHouseholderQRPreconditioner,
+  /** Use a QR decomposition with full pivoting as the first step. */
+  FullPivHouseholderQRPreconditioner
+};
+
+#ifdef Success
+#error The preprocessor symbol 'Success' is defined, possibly by the X11 header file X.h
+#endif
+
+/** \ingroup enums
+  * Enum for reporting the status of a computation. */
+enum ComputationInfo {
+  /** Computation was successful. */
+  Success = 0,        
+  /** The provided data did not satisfy the prerequisites. */
+  NumericalIssue = 1, 
+  /** Iterative procedure did not converge. */
+  NoConvergence = 2,
+  /** The inputs are invalid, or the algorithm has been improperly called.
+    * When assertions are enabled, such errors trigger an assert. */
+  InvalidInput = 3
+};
+
+/** \ingroup enums
+  * Enum used to specify how a particular transformation is stored in a matrix.
+  * \sa Transform, Hyperplane::transform(). */
+enum TransformTraits {
+  /** Transformation is an isometry. */
+  Isometry      = 0x1,
+  /** Transformation is an affine transformation stored as a (Dim+1)^2 matrix whose last row is 
+    * assumed to be [0 ... 0 1]. */
+  Affine        = 0x2,
+  /** Transformation is an affine transformation stored as a (Dim) x (Dim+1) matrix. */
+  AffineCompact = 0x10 | Affine,
+  /** Transformation is a general projective transformation stored as a (Dim+1)^2 matrix. */
+  Projective    = 0x20
+};
+
+/** \internal \ingroup enums
+  * Enum used to choose between implementation depending on the computer architecture. */
+namespace Architecture
+{
+  enum Type {
+    Generic = 0x0,
+    SSE = 0x1,
+    AltiVec = 0x2,
+#if defined EIGEN_VECTORIZE_SSE
+    Target = SSE
+#elif defined EIGEN_VECTORIZE_ALTIVEC
+    Target = AltiVec
+#else
+    Target = Generic
+#endif
+  };
+}
+
+/** \internal \ingroup enums
+  * Enum used as template parameter in GeneralProduct. */
+enum ProductImplType { CoeffBasedProductMode, LazyCoeffBasedProductMode, OuterProduct, InnerProduct, GemvProduct, GemmProduct };
+
+/** \internal \ingroup enums
+  * Enum used in experimental parallel implementation. */
+enum Action {GetAction, SetAction};
+
+/** The type used to identify a dense storage. */
+struct Dense {};
+
+/** The type used to identify a matrix expression */
+struct MatrixXpr {};
+
+/** The type used to identify an array expression */
+struct ArrayXpr {};
+
+namespace internal {
+  /** \internal
+  * Constants for comparison functors
+  */
+  enum ComparisonName {
+    cmp_EQ = 0,
+    cmp_LT = 1,
+    cmp_LE = 2,
+    cmp_UNORD = 3,
+    cmp_NEQ = 4
+  };
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_CONSTANTS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/ForwardDeclarations.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/ForwardDeclarations.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/ForwardDeclarations.h	(revision 2476)
@@ -0,0 +1,302 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FORWARDDECLARATIONS_H
+#define EIGEN_FORWARDDECLARATIONS_H
+
+namespace Eigen {
+namespace internal {
+
+template<typename T> struct traits;
+
+// here we say once and for all that traits<const T> == traits<T>
+// When constness must affect traits, it has to be constness on template parameters on which T itself depends.
+// For example, traits<Map<const T> > != traits<Map<T> >, but
+//              traits<const Map<T> > == traits<Map<T> >
+template<typename T> struct traits<const T> : traits<T> {};
+
+template<typename Derived> struct has_direct_access
+{
+  enum { ret = (traits<Derived>::Flags & DirectAccessBit) ? 1 : 0 };
+};
+
+template<typename Derived> struct accessors_level
+{
+  enum { has_direct_access = (traits<Derived>::Flags & DirectAccessBit) ? 1 : 0,
+         has_write_access = (traits<Derived>::Flags & LvalueBit) ? 1 : 0,
+         value = has_direct_access ? (has_write_access ? DirectWriteAccessors : DirectAccessors)
+                                   : (has_write_access ? WriteAccessors       : ReadOnlyAccessors)
+  };
+};
+
+} // end namespace internal
+
+template<typename T> struct NumTraits;
+
+template<typename Derived> struct EigenBase;
+template<typename Derived> class DenseBase;
+template<typename Derived> class PlainObjectBase;
+
+
+template<typename Derived,
+         int Level = internal::accessors_level<Derived>::value >
+class DenseCoeffsBase;
+
+template<typename _Scalar, int _Rows, int _Cols,
+         int _Options = AutoAlign |
+#if defined(__GNUC__) && __GNUC__==3 && __GNUC_MINOR__==4
+    // workaround a bug in at least gcc 3.4.6
+    // the innermost ?: ternary operator is misparsed. We write it slightly
+    // differently and this makes gcc 3.4.6 happy, but it's ugly.
+    // The error would only show up with EIGEN_DEFAULT_TO_ROW_MAJOR is defined
+    // (when EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION is RowMajor)
+                          ( (_Rows==1 && _Cols!=1) ? RowMajor
+                          : !(_Cols==1 && _Rows!=1) ?  EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION
+                          : ColMajor ),
+#else
+                          ( (_Rows==1 && _Cols!=1) ? RowMajor
+                          : (_Cols==1 && _Rows!=1) ? ColMajor
+                          : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ),
+#endif
+         int _MaxRows = _Rows,
+         int _MaxCols = _Cols
+> class Matrix;
+
+template<typename Derived> class MatrixBase;
+template<typename Derived> class ArrayBase;
+
+template<typename ExpressionType, unsigned int Added, unsigned int Removed> class Flagged;
+template<typename ExpressionType, template <typename> class StorageBase > class NoAlias;
+template<typename ExpressionType> class NestByValue;
+template<typename ExpressionType> class ForceAlignedAccess;
+template<typename ExpressionType> class SwapWrapper;
+
+template<typename XprType, int BlockRows=Dynamic, int BlockCols=Dynamic, bool InnerPanel = false> class Block;
+
+template<typename MatrixType, int Size=Dynamic> class VectorBlock;
+template<typename MatrixType> class Transpose;
+template<typename MatrixType> class Conjugate;
+template<typename NullaryOp, typename MatrixType>         class CwiseNullaryOp;
+template<typename UnaryOp,   typename MatrixType>         class CwiseUnaryOp;
+template<typename ViewOp,    typename MatrixType>         class CwiseUnaryView;
+template<typename BinaryOp,  typename Lhs, typename Rhs>  class CwiseBinaryOp;
+template<typename BinOp,     typename Lhs, typename Rhs>  class SelfCwiseBinaryOp;
+template<typename Derived,   typename Lhs, typename Rhs>  class ProductBase;
+template<typename Lhs, typename Rhs, int Mode>            class GeneralProduct;
+template<typename Lhs, typename Rhs, int NestingFlags>    class CoeffBasedProduct;
+
+template<typename Derived> class DiagonalBase;
+template<typename _DiagonalVectorType> class DiagonalWrapper;
+template<typename _Scalar, int SizeAtCompileTime, int MaxSizeAtCompileTime=SizeAtCompileTime> class DiagonalMatrix;
+template<typename MatrixType, typename DiagonalType, int ProductOrder> class DiagonalProduct;
+template<typename MatrixType, int Index = 0> class Diagonal;
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime = SizeAtCompileTime, typename IndexType=int> class PermutationMatrix;
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime = SizeAtCompileTime, typename IndexType=int> class Transpositions;
+template<typename Derived> class PermutationBase;
+template<typename Derived> class TranspositionsBase;
+template<typename _IndicesType> class PermutationWrapper;
+template<typename _IndicesType> class TranspositionsWrapper;
+
+template<typename Derived,
+         int Level = internal::accessors_level<Derived>::has_write_access ? WriteAccessors : ReadOnlyAccessors
+> class MapBase;
+template<int InnerStrideAtCompileTime, int OuterStrideAtCompileTime> class Stride;
+template<typename MatrixType, int MapOptions=Unaligned, typename StrideType = Stride<0,0> > class Map;
+
+template<typename Derived> class TriangularBase;
+template<typename MatrixType, unsigned int Mode> class TriangularView;
+template<typename MatrixType, unsigned int Mode> class SelfAdjointView;
+template<typename MatrixType> class SparseView;
+template<typename ExpressionType> class WithFormat;
+template<typename MatrixType> struct CommaInitializer;
+template<typename Derived> class ReturnByValue;
+template<typename ExpressionType> class ArrayWrapper;
+template<typename ExpressionType> class MatrixWrapper;
+
+namespace internal {
+template<typename DecompositionType, typename Rhs> struct solve_retval_base;
+template<typename DecompositionType, typename Rhs> struct solve_retval;
+template<typename DecompositionType> struct kernel_retval_base;
+template<typename DecompositionType> struct kernel_retval;
+template<typename DecompositionType> struct image_retval_base;
+template<typename DecompositionType> struct image_retval;
+} // end namespace internal
+
+namespace internal {
+template<typename _Scalar, int Rows=Dynamic, int Cols=Dynamic, int Supers=Dynamic, int Subs=Dynamic, int Options=0> class BandMatrix;
+}
+
+namespace internal {
+template<typename Lhs, typename Rhs> struct product_type;
+}
+
+template<typename Lhs, typename Rhs,
+         int ProductType = internal::product_type<Lhs,Rhs>::value>
+struct ProductReturnType;
+
+// this is a workaround for sun CC
+template<typename Lhs, typename Rhs> struct LazyProductReturnType;
+
+namespace internal {
+
+// Provides scalar/packet-wise product and product with accumulation
+// with optional conjugation of the arguments.
+template<typename LhsScalar, typename RhsScalar, bool ConjLhs=false, bool ConjRhs=false> struct conj_helper;
+
+template<typename Scalar> struct scalar_sum_op;
+template<typename Scalar> struct scalar_difference_op;
+template<typename LhsScalar,typename RhsScalar> struct scalar_conj_product_op;
+template<typename Scalar> struct scalar_opposite_op;
+template<typename Scalar> struct scalar_conjugate_op;
+template<typename Scalar> struct scalar_real_op;
+template<typename Scalar> struct scalar_imag_op;
+template<typename Scalar> struct scalar_abs_op;
+template<typename Scalar> struct scalar_abs2_op;
+template<typename Scalar> struct scalar_sqrt_op;
+template<typename Scalar> struct scalar_exp_op;
+template<typename Scalar> struct scalar_log_op;
+template<typename Scalar> struct scalar_cos_op;
+template<typename Scalar> struct scalar_sin_op;
+template<typename Scalar> struct scalar_acos_op;
+template<typename Scalar> struct scalar_asin_op;
+template<typename Scalar> struct scalar_tan_op;
+template<typename Scalar> struct scalar_pow_op;
+template<typename Scalar> struct scalar_inverse_op;
+template<typename Scalar> struct scalar_square_op;
+template<typename Scalar> struct scalar_cube_op;
+template<typename Scalar, typename NewType> struct scalar_cast_op;
+template<typename Scalar> struct scalar_multiple_op;
+template<typename Scalar> struct scalar_quotient1_op;
+template<typename Scalar> struct scalar_min_op;
+template<typename Scalar> struct scalar_max_op;
+template<typename Scalar> struct scalar_random_op;
+template<typename Scalar> struct scalar_add_op;
+template<typename Scalar> struct scalar_constant_op;
+template<typename Scalar> struct scalar_identity_op;
+
+template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_product_op;
+template<typename LhsScalar,typename RhsScalar> struct scalar_multiple2_op;
+template<typename LhsScalar,typename RhsScalar=LhsScalar> struct scalar_quotient_op;
+
+} // end namespace internal
+
+struct IOFormat;
+
+// Array module
+template<typename _Scalar, int _Rows, int _Cols,
+         int _Options = AutoAlign |
+#if defined(__GNUC__) && __GNUC__==3 && __GNUC_MINOR__==4
+    // workaround a bug in at least gcc 3.4.6
+    // the innermost ?: ternary operator is misparsed. We write it slightly
+    // differently and this makes gcc 3.4.6 happy, but it's ugly.
+    // The error would only show up with EIGEN_DEFAULT_TO_ROW_MAJOR is defined
+    // (when EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION is RowMajor)
+                          ( (_Rows==1 && _Cols!=1) ? RowMajor
+                          : !(_Cols==1 && _Rows!=1) ?  EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION
+                          : ColMajor ),
+#else
+                          ( (_Rows==1 && _Cols!=1) ? RowMajor
+                          : (_Cols==1 && _Rows!=1) ? ColMajor
+                          : EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ),
+#endif
+         int _MaxRows = _Rows, int _MaxCols = _Cols> class Array;
+template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType> class Select;
+template<typename MatrixType, typename BinaryOp, int Direction> class PartialReduxExpr;
+template<typename ExpressionType, int Direction> class VectorwiseOp;
+template<typename MatrixType,int RowFactor,int ColFactor> class Replicate;
+template<typename MatrixType, int Direction = BothDirections> class Reverse;
+
+template<typename MatrixType> class FullPivLU;
+template<typename MatrixType> class PartialPivLU;
+namespace internal {
+template<typename MatrixType> struct inverse_impl;
+}
+template<typename MatrixType> class HouseholderQR;
+template<typename MatrixType> class ColPivHouseholderQR;
+template<typename MatrixType> class FullPivHouseholderQR;
+template<typename MatrixType, int QRPreconditioner = ColPivHouseholderQRPreconditioner> class JacobiSVD;
+template<typename MatrixType, int UpLo = Lower> class LLT;
+template<typename MatrixType, int UpLo = Lower> class LDLT;
+template<typename VectorsType, typename CoeffsType, int Side=OnTheLeft> class HouseholderSequence;
+template<typename Scalar>     class JacobiRotation;
+
+// Geometry module:
+template<typename Derived, int _Dim> class RotationBase;
+template<typename Lhs, typename Rhs> class Cross;
+template<typename Derived> class QuaternionBase;
+template<typename Scalar> class Rotation2D;
+template<typename Scalar> class AngleAxis;
+template<typename Scalar,int Dim> class Translation;
+
+// Sparse module:
+template<typename Derived> class SparseMatrixBase;
+
+#ifdef EIGEN2_SUPPORT
+template<typename Derived, int _Dim> class eigen2_RotationBase;
+template<typename Lhs, typename Rhs> class eigen2_Cross;
+template<typename Scalar> class eigen2_Quaternion;
+template<typename Scalar> class eigen2_Rotation2D;
+template<typename Scalar> class eigen2_AngleAxis;
+template<typename Scalar,int Dim> class eigen2_Transform;
+template <typename _Scalar, int _AmbientDim> class eigen2_ParametrizedLine;
+template <typename _Scalar, int _AmbientDim> class eigen2_Hyperplane;
+template<typename Scalar,int Dim> class eigen2_Translation;
+template<typename Scalar,int Dim> class eigen2_Scaling;
+#endif
+
+#if EIGEN2_SUPPORT_STAGE < STAGE20_RESOLVE_API_CONFLICTS
+template<typename Scalar> class Quaternion;
+template<typename Scalar,int Dim> class Transform;
+template <typename _Scalar, int _AmbientDim> class ParametrizedLine;
+template <typename _Scalar, int _AmbientDim> class Hyperplane;
+template<typename Scalar,int Dim> class Scaling;
+#endif
+
+#if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
+template<typename Scalar, int Options = AutoAlign> class Quaternion;
+template<typename Scalar,int Dim,int Mode,int _Options=AutoAlign> class Transform;
+template <typename _Scalar, int _AmbientDim, int Options=AutoAlign> class ParametrizedLine;
+template <typename _Scalar, int _AmbientDim, int Options=AutoAlign> class Hyperplane;
+template<typename Scalar> class UniformScaling;
+template<typename MatrixType,int Direction> class Homogeneous;
+#endif
+
+// MatrixFunctions module
+template<typename Derived> struct MatrixExponentialReturnValue;
+template<typename Derived> class MatrixFunctionReturnValue;
+template<typename Derived> class MatrixSquareRootReturnValue;
+template<typename Derived> class MatrixLogarithmReturnValue;
+template<typename Derived> class MatrixPowerReturnValue;
+template<typename Derived, typename Lhs, typename Rhs> class MatrixPowerProduct;
+
+namespace internal {
+template <typename Scalar>
+struct stem_function
+{
+  typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
+  typedef ComplexScalar type(ComplexScalar, int);
+};
+}
+
+
+#ifdef EIGEN2_SUPPORT
+template<typename ExpressionType> class Cwise;
+template<typename MatrixType> class Minor;
+template<typename MatrixType> class LU;
+template<typename MatrixType> class QR;
+template<typename MatrixType> class SVD;
+namespace internal {
+template<typename MatrixType, unsigned int Mode> struct eigen2_part_return_type;
+}
+#endif
+
+} // end namespace Eigen
+
+#endif // EIGEN_FORWARDDECLARATIONS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/BlasUtil.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/BlasUtil.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/BlasUtil.h	(revision 2476)
@@ -0,0 +1,268 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BLASUTIL_H
+#define EIGEN_BLASUTIL_H
+
+// This file contains many lightweight helper classes used to
+// implement and control fast level 2 and level 3 BLAS-like routines.
+
+namespace Eigen {
+
+namespace internal {
+
+// forward declarations
+template<typename LhsScalar, typename RhsScalar, typename Index, int mr, int nr, bool ConjugateLhs=false, bool ConjugateRhs=false>
+struct gebp_kernel;
+
+template<typename Scalar, typename Index, int nr, int StorageOrder, bool Conjugate = false, bool PanelMode=false>
+struct gemm_pack_rhs;
+
+template<typename Scalar, typename Index, int Pack1, int Pack2, int StorageOrder, bool Conjugate = false, bool PanelMode = false>
+struct gemm_pack_lhs;
+
+template<
+  typename Index,
+  typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs,
+  typename RhsScalar, int RhsStorageOrder, bool ConjugateRhs,
+  int ResStorageOrder>
+struct general_matrix_matrix_product;
+
+template<typename Index, typename LhsScalar, int LhsStorageOrder, bool ConjugateLhs, typename RhsScalar, bool ConjugateRhs, int Version=Specialized>
+struct general_matrix_vector_product;
+
+
+template<bool Conjugate> struct conj_if;
+
+template<> struct conj_if<true> {
+  template<typename T>
+  inline T operator()(const T& x) { return numext::conj(x); }
+  template<typename T>
+  inline T pconj(const T& x) { return internal::pconj(x); }
+};
+
+template<> struct conj_if<false> {
+  template<typename T>
+  inline const T& operator()(const T& x) { return x; }
+  template<typename T>
+  inline const T& pconj(const T& x) { return x; }
+};
+
+template<typename Scalar> struct conj_helper<Scalar,Scalar,false,false>
+{
+  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const { return internal::pmadd(x,y,c); }
+  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const { return internal::pmul(x,y); }
+};
+
+template<typename RealScalar> struct conj_helper<std::complex<RealScalar>, std::complex<RealScalar>, false,true>
+{
+  typedef std::complex<RealScalar> Scalar;
+  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const
+  { return c + pmul(x,y); }
+
+  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
+  { return Scalar(numext::real(x)*numext::real(y) + numext::imag(x)*numext::imag(y), numext::imag(x)*numext::real(y) - numext::real(x)*numext::imag(y)); }
+};
+
+template<typename RealScalar> struct conj_helper<std::complex<RealScalar>, std::complex<RealScalar>, true,false>
+{
+  typedef std::complex<RealScalar> Scalar;
+  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const
+  { return c + pmul(x,y); }
+
+  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
+  { return Scalar(numext::real(x)*numext::real(y) + numext::imag(x)*numext::imag(y), numext::real(x)*numext::imag(y) - numext::imag(x)*numext::real(y)); }
+};
+
+template<typename RealScalar> struct conj_helper<std::complex<RealScalar>, std::complex<RealScalar>, true,true>
+{
+  typedef std::complex<RealScalar> Scalar;
+  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const Scalar& y, const Scalar& c) const
+  { return c + pmul(x,y); }
+
+  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const Scalar& y) const
+  { return Scalar(numext::real(x)*numext::real(y) - numext::imag(x)*numext::imag(y), - numext::real(x)*numext::imag(y) - numext::imag(x)*numext::real(y)); }
+};
+
+template<typename RealScalar,bool Conj> struct conj_helper<std::complex<RealScalar>, RealScalar, Conj,false>
+{
+  typedef std::complex<RealScalar> Scalar;
+  EIGEN_STRONG_INLINE Scalar pmadd(const Scalar& x, const RealScalar& y, const Scalar& c) const
+  { return padd(c, pmul(x,y)); }
+  EIGEN_STRONG_INLINE Scalar pmul(const Scalar& x, const RealScalar& y) const
+  { return conj_if<Conj>()(x)*y; }
+};
+
+template<typename RealScalar,bool Conj> struct conj_helper<RealScalar, std::complex<RealScalar>, false,Conj>
+{
+  typedef std::complex<RealScalar> Scalar;
+  EIGEN_STRONG_INLINE Scalar pmadd(const RealScalar& x, const Scalar& y, const Scalar& c) const
+  { return padd(c, pmul(x,y)); }
+  EIGEN_STRONG_INLINE Scalar pmul(const RealScalar& x, const Scalar& y) const
+  { return x*conj_if<Conj>()(y); }
+};
+
+template<typename From,typename To> struct get_factor {
+  static EIGEN_STRONG_INLINE To run(const From& x) { return x; }
+};
+
+template<typename Scalar> struct get_factor<Scalar,typename NumTraits<Scalar>::Real> {
+  static EIGEN_STRONG_INLINE typename NumTraits<Scalar>::Real run(const Scalar& x) { return numext::real(x); }
+};
+
+// Lightweight helper class to access matrix coefficients.
+// Yes, this is somehow redundant with Map<>, but this version is much much lighter,
+// and so I hope better compilation performance (time and code quality).
+template<typename Scalar, typename Index, int StorageOrder>
+class blas_data_mapper
+{
+  public:
+    blas_data_mapper(Scalar* data, Index stride) : m_data(data), m_stride(stride) {}
+    EIGEN_STRONG_INLINE Scalar& operator()(Index i, Index j)
+    { return m_data[StorageOrder==RowMajor ? j + i*m_stride : i + j*m_stride]; }
+  protected:
+    Scalar* EIGEN_RESTRICT m_data;
+    Index m_stride;
+};
+
+// lightweight helper class to access matrix coefficients (const version)
+template<typename Scalar, typename Index, int StorageOrder>
+class const_blas_data_mapper
+{
+  public:
+    const_blas_data_mapper(const Scalar* data, Index stride) : m_data(data), m_stride(stride) {}
+    EIGEN_STRONG_INLINE const Scalar& operator()(Index i, Index j) const
+    { return m_data[StorageOrder==RowMajor ? j + i*m_stride : i + j*m_stride]; }
+  protected:
+    const Scalar* EIGEN_RESTRICT m_data;
+    Index m_stride;
+};
+
+
+/* Helper class to analyze the factors of a Product expression.
+ * In particular it allows to pop out operator-, scalar multiples,
+ * and conjugate */
+template<typename XprType> struct blas_traits
+{
+  typedef typename traits<XprType>::Scalar Scalar;
+  typedef const XprType& ExtractType;
+  typedef XprType _ExtractType;
+  enum {
+    IsComplex = NumTraits<Scalar>::IsComplex,
+    IsTransposed = false,
+    NeedToConjugate = false,
+    HasUsableDirectAccess = (    (int(XprType::Flags)&DirectAccessBit)
+                              && (   bool(XprType::IsVectorAtCompileTime)
+                                  || int(inner_stride_at_compile_time<XprType>::ret) == 1)
+                             ) ?  1 : 0
+  };
+  typedef typename conditional<bool(HasUsableDirectAccess),
+    ExtractType,
+    typename _ExtractType::PlainObject
+    >::type DirectLinearAccessType;
+  static inline ExtractType extract(const XprType& x) { return x; }
+  static inline const Scalar extractScalarFactor(const XprType&) { return Scalar(1); }
+};
+
+// pop conjugate
+template<typename Scalar, typename Xpr>
+struct blas_traits<CwiseUnaryOp<scalar_conjugate_op<Scalar>, Xpr> >
+ : blas_traits<typename internal::remove_all<typename Xpr::Nested>::type>
+{
+  typedef typename internal::remove_all<typename Xpr::Nested>::type NestedXpr;
+  typedef blas_traits<NestedXpr> Base;
+  typedef CwiseUnaryOp<scalar_conjugate_op<Scalar>, Xpr> XprType;
+  typedef typename Base::ExtractType ExtractType;
+
+  enum {
+    IsComplex = NumTraits<Scalar>::IsComplex,
+    NeedToConjugate = Base::NeedToConjugate ? 0 : IsComplex
+  };
+  static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
+  static inline Scalar extractScalarFactor(const XprType& x) { return conj(Base::extractScalarFactor(x.nestedExpression())); }
+};
+
+// pop scalar multiple
+template<typename Scalar, typename Xpr>
+struct blas_traits<CwiseUnaryOp<scalar_multiple_op<Scalar>, Xpr> >
+ : blas_traits<typename internal::remove_all<typename Xpr::Nested>::type>
+{
+  typedef typename internal::remove_all<typename Xpr::Nested>::type NestedXpr;
+  typedef blas_traits<NestedXpr> Base;
+  typedef CwiseUnaryOp<scalar_multiple_op<Scalar>, Xpr> XprType;
+  typedef typename Base::ExtractType ExtractType;
+  static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
+  static inline Scalar extractScalarFactor(const XprType& x)
+  { return x.functor().m_other * Base::extractScalarFactor(x.nestedExpression()); }
+};
+
+// pop opposite
+template<typename Scalar, typename Xpr>
+struct blas_traits<CwiseUnaryOp<scalar_opposite_op<Scalar>, Xpr> >
+ : blas_traits<typename internal::remove_all<typename Xpr::Nested>::type>
+{
+  typedef typename internal::remove_all<typename Xpr::Nested>::type NestedXpr;
+  typedef blas_traits<NestedXpr> Base;
+  typedef CwiseUnaryOp<scalar_opposite_op<Scalar>, Xpr> XprType;
+  typedef typename Base::ExtractType ExtractType;
+  static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
+  static inline Scalar extractScalarFactor(const XprType& x)
+  { return - Base::extractScalarFactor(x.nestedExpression()); }
+};
+
+// pop/push transpose
+template<typename Xpr>
+struct blas_traits<Transpose<Xpr> >
+ : blas_traits<typename internal::remove_all<typename Xpr::Nested>::type>
+{
+  typedef typename internal::remove_all<typename Xpr::Nested>::type NestedXpr;
+  typedef typename NestedXpr::Scalar Scalar;
+  typedef blas_traits<NestedXpr> Base;
+  typedef Transpose<Xpr> XprType;
+  typedef Transpose<const typename Base::_ExtractType>  ExtractType; // const to get rid of a compile error; anyway blas traits are only used on the RHS
+  typedef Transpose<const typename Base::_ExtractType> _ExtractType;
+  typedef typename conditional<bool(Base::HasUsableDirectAccess),
+    ExtractType,
+    typename ExtractType::PlainObject
+    >::type DirectLinearAccessType;
+  enum {
+    IsTransposed = Base::IsTransposed ? 0 : 1
+  };
+  static inline ExtractType extract(const XprType& x) { return Base::extract(x.nestedExpression()); }
+  static inline Scalar extractScalarFactor(const XprType& x) { return Base::extractScalarFactor(x.nestedExpression()); }
+};
+
+template<typename T>
+struct blas_traits<const T>
+     : blas_traits<T>
+{};
+
+template<typename T, bool HasUsableDirectAccess=blas_traits<T>::HasUsableDirectAccess>
+struct extract_data_selector {
+  static const typename T::Scalar* run(const T& m)
+  {
+    return blas_traits<T>::extract(m).data();
+  }
+};
+
+template<typename T>
+struct extract_data_selector<T,false> {
+  static typename T::Scalar* run(const T&) { return 0; }
+};
+
+template<typename T> const typename T::Scalar* extract_data(const T& m)
+{
+  return extract_data_selector<T>::run(m);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BLASUTIL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/MKL_support.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/MKL_support.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/MKL_support.h	(revision 2476)
@@ -0,0 +1,158 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *   Include file with common MKL declarations
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_MKL_SUPPORT_H
+#define EIGEN_MKL_SUPPORT_H
+
+#ifdef EIGEN_USE_MKL_ALL
+  #ifndef EIGEN_USE_BLAS
+    #define EIGEN_USE_BLAS
+  #endif
+  #ifndef EIGEN_USE_LAPACKE
+    #define EIGEN_USE_LAPACKE
+  #endif
+  #ifndef EIGEN_USE_MKL_VML
+    #define EIGEN_USE_MKL_VML
+  #endif
+#endif
+
+#ifdef EIGEN_USE_LAPACKE_STRICT
+  #define EIGEN_USE_LAPACKE
+#endif
+
+#if defined(EIGEN_USE_BLAS) || defined(EIGEN_USE_LAPACKE) || defined(EIGEN_USE_MKL_VML)
+  #define EIGEN_USE_MKL
+#endif
+
+#if defined EIGEN_USE_MKL
+#   include <mkl.h> 
+/*Check IMKL version for compatibility: < 10.3 is not usable with Eigen*/
+#   ifndef INTEL_MKL_VERSION
+#       undef EIGEN_USE_MKL /* INTEL_MKL_VERSION is not even defined on older versions */
+#   elif INTEL_MKL_VERSION < 100305    /* the intel-mkl-103-release-notes say this was when the lapacke.h interface was added*/
+#       undef EIGEN_USE_MKL
+#   endif
+#   ifndef EIGEN_USE_MKL
+    /*If the MKL version is too old, undef everything*/
+#       undef   EIGEN_USE_MKL_ALL
+#       undef   EIGEN_USE_BLAS
+#       undef   EIGEN_USE_LAPACKE
+#       undef   EIGEN_USE_MKL_VML
+#       undef   EIGEN_USE_LAPACKE_STRICT
+#       undef   EIGEN_USE_LAPACKE
+#   endif
+#endif
+
+#if defined EIGEN_USE_MKL
+#include <mkl_lapacke.h>
+#define EIGEN_MKL_VML_THRESHOLD 128
+
+/* MKL_DOMAIN_BLAS, etc are defined only in 10.3 update 7 */
+/* MKL_BLAS, etc are not defined in 11.2 */
+#ifdef MKL_DOMAIN_ALL
+#define EIGEN_MKL_DOMAIN_ALL MKL_DOMAIN_ALL
+#else
+#define EIGEN_MKL_DOMAIN_ALL MKL_ALL
+#endif
+
+#ifdef MKL_DOMAIN_BLAS
+#define EIGEN_MKL_DOMAIN_BLAS MKL_DOMAIN_BLAS
+#else
+#define EIGEN_MKL_DOMAIN_BLAS MKL_BLAS
+#endif
+
+#ifdef MKL_DOMAIN_FFT
+#define EIGEN_MKL_DOMAIN_FFT MKL_DOMAIN_FFT
+#else
+#define EIGEN_MKL_DOMAIN_FFT MKL_FFT
+#endif
+
+#ifdef MKL_DOMAIN_VML
+#define EIGEN_MKL_DOMAIN_VML MKL_DOMAIN_VML
+#else
+#define EIGEN_MKL_DOMAIN_VML MKL_VML
+#endif
+
+#ifdef MKL_DOMAIN_PARDISO
+#define EIGEN_MKL_DOMAIN_PARDISO MKL_DOMAIN_PARDISO
+#else
+#define EIGEN_MKL_DOMAIN_PARDISO MKL_PARDISO
+#endif
+
+namespace Eigen {
+
+typedef std::complex<double> dcomplex;
+typedef std::complex<float>  scomplex;
+
+namespace internal {
+
+template<typename MKLType, typename EigenType>
+static inline void assign_scalar_eig2mkl(MKLType& mklScalar, const EigenType& eigenScalar) {
+  mklScalar=eigenScalar;
+}
+
+template<typename MKLType, typename EigenType>
+static inline void assign_conj_scalar_eig2mkl(MKLType& mklScalar, const EigenType& eigenScalar) {
+  mklScalar=eigenScalar;
+}
+
+template <>
+inline void assign_scalar_eig2mkl<MKL_Complex16,dcomplex>(MKL_Complex16& mklScalar, const dcomplex& eigenScalar) {
+  mklScalar.real=eigenScalar.real();
+  mklScalar.imag=eigenScalar.imag();
+}
+
+template <>
+inline void assign_scalar_eig2mkl<MKL_Complex8,scomplex>(MKL_Complex8& mklScalar, const scomplex& eigenScalar) {
+  mklScalar.real=eigenScalar.real();
+  mklScalar.imag=eigenScalar.imag();
+}
+
+template <>
+inline void assign_conj_scalar_eig2mkl<MKL_Complex16,dcomplex>(MKL_Complex16& mklScalar, const dcomplex& eigenScalar) {
+  mklScalar.real=eigenScalar.real();
+  mklScalar.imag=-eigenScalar.imag();
+}
+
+template <>
+inline void assign_conj_scalar_eig2mkl<MKL_Complex8,scomplex>(MKL_Complex8& mklScalar, const scomplex& eigenScalar) {
+  mklScalar.real=eigenScalar.real();
+  mklScalar.imag=-eigenScalar.imag();
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif
+
+#endif // EIGEN_MKL_SUPPORT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/ReenableStupidWarnings.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/ReenableStupidWarnings.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/ReenableStupidWarnings.h	(revision 2476)
@@ -0,0 +1,17 @@
+#ifdef EIGEN_WARNINGS_DISABLED
+#undef EIGEN_WARNINGS_DISABLED
+
+#ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
+  #ifdef _MSC_VER
+    #pragma warning( pop )
+  #elif defined __INTEL_COMPILER
+    #pragma warning pop
+  #elif defined __clang__
+    #pragma clang diagnostic pop
+  #elif defined __GNUC__ && __GNUC__>=6
+    #pragma GCC diagnostic pop
+  #endif
+
+#endif
+
+#endif // EIGEN_WARNINGS_DISABLED
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/Macros.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/Macros.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/Macros.h	(revision 2476)
@@ -0,0 +1,714 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MACROS_H
+#define EIGEN_MACROS_H
+
+#define EIGEN_WORLD_VERSION 3
+#define EIGEN_MAJOR_VERSION 2
+#define EIGEN_MINOR_VERSION 9
+
+#define EIGEN_VERSION_AT_LEAST(x,y,z) (EIGEN_WORLD_VERSION>x || (EIGEN_WORLD_VERSION>=x && \
+                                      (EIGEN_MAJOR_VERSION>y || (EIGEN_MAJOR_VERSION>=y && \
+                                                                 EIGEN_MINOR_VERSION>=z))))
+
+
+// Compiler identification, EIGEN_COMP_*
+
+/// \internal EIGEN_COMP_GNUC set to 1 for all compilers compatible with GCC
+#ifdef __GNUC__
+  #define EIGEN_COMP_GNUC 1
+#else
+  #define EIGEN_COMP_GNUC 0
+#endif
+
+/// \internal EIGEN_COMP_CLANG set to 1 if the compiler is clang (alias for __clang__)
+#if defined(__clang__)
+  #define EIGEN_COMP_CLANG 1
+#else
+  #define EIGEN_COMP_CLANG 0
+#endif
+
+
+/// \internal EIGEN_COMP_LLVM set to 1 if the compiler backend is llvm
+#if defined(__llvm__)
+  #define EIGEN_COMP_LLVM 1
+#else
+  #define EIGEN_COMP_LLVM 0
+#endif
+
+/// \internal EIGEN_COMP_ICC set to __INTEL_COMPILER if the compiler is Intel compiler, 0 otherwise
+#if defined(__INTEL_COMPILER)
+  #define EIGEN_COMP_ICC __INTEL_COMPILER
+#else
+  #define EIGEN_COMP_ICC 0
+#endif
+
+/// \internal EIGEN_COMP_MINGW set to 1 if the compiler is mingw
+#if defined(__MINGW32__)
+  #define EIGEN_COMP_MINGW 1
+#else
+  #define EIGEN_COMP_MINGW 0
+#endif
+
+/// \internal EIGEN_COMP_SUNCC set to 1 if the compiler is Solaris Studio
+#if defined(__SUNPRO_CC)
+  #define EIGEN_COMP_SUNCC 1
+#else
+  #define EIGEN_COMP_SUNCC 0
+#endif
+
+/// \internal EIGEN_COMP_MSVC set to _MSC_VER if the compiler is Microsoft Visual C++, 0 otherwise.
+#if defined(_MSC_VER)
+  #define EIGEN_COMP_MSVC _MSC_VER
+#else
+  #define EIGEN_COMP_MSVC 0
+#endif
+
+/// \internal EIGEN_COMP_MSVC_STRICT set to 1 if the compiler is really Microsoft Visual C++ and not ,e.g., ICC
+#if EIGEN_COMP_MSVC && !(EIGEN_COMP_ICC)
+  #define EIGEN_COMP_MSVC_STRICT _MSC_VER
+#else
+  #define EIGEN_COMP_MSVC_STRICT 0
+#endif
+
+/// \internal EIGEN_COMP_IBM set to 1 if the compiler is IBM XL C++
+#if defined(__IBMCPP__) || defined(__xlc__)
+  #define EIGEN_COMP_IBM 1
+#else
+  #define EIGEN_COMP_IBM 0
+#endif
+
+/// \internal EIGEN_COMP_PGI set to 1 if the compiler is Portland Group Compiler
+#if defined(__PGI)
+  #define EIGEN_COMP_PGI 1
+#else
+  #define EIGEN_COMP_PGI 0
+#endif
+
+/// \internal EIGEN_COMP_ARM set to 1 if the compiler is ARM Compiler
+#if defined(__CC_ARM) || defined(__ARMCC_VERSION)
+  #define EIGEN_COMP_ARM 1
+#else
+  #define EIGEN_COMP_ARM 0
+#endif
+
+
+/// \internal EIGEN_GNUC_STRICT set to 1 if the compiler is really GCC and not a compatible compiler (e.g., ICC, clang, mingw, etc.)
+#if EIGEN_COMP_GNUC && !(EIGEN_COMP_CLANG || EIGEN_COMP_ICC || EIGEN_COMP_MINGW || EIGEN_COMP_PGI || EIGEN_COMP_IBM || EIGEN_COMP_ARM )
+  #define EIGEN_COMP_GNUC_STRICT 1
+#else
+  #define EIGEN_COMP_GNUC_STRICT 0
+#endif
+
+
+#if EIGEN_COMP_GNUC
+  #define EIGEN_GNUC_AT_LEAST(x,y) ((__GNUC__==x && __GNUC_MINOR__>=y) || __GNUC__>x)
+  #define EIGEN_GNUC_AT_MOST(x,y)  ((__GNUC__==x && __GNUC_MINOR__<=y) || __GNUC__<x)
+  #define EIGEN_GNUC_AT(x,y)       ( __GNUC__==x && __GNUC_MINOR__==y )
+#else
+  #define EIGEN_GNUC_AT_LEAST(x,y) 0
+  #define EIGEN_GNUC_AT_MOST(x,y)  0
+  #define EIGEN_GNUC_AT(x,y)       0
+#endif
+
+// FIXME: could probably be removed as we do not support gcc 3.x anymore
+#if EIGEN_COMP_GNUC && (__GNUC__ <= 3)
+#define EIGEN_GCC3_OR_OLDER 1
+#else
+#define EIGEN_GCC3_OR_OLDER 0
+#endif
+
+
+// Architecture identification, EIGEN_ARCH_*
+
+#if defined(__x86_64__) || defined(_M_X64) || defined(__amd64)
+  #define EIGEN_ARCH_x86_64 1
+#else
+  #define EIGEN_ARCH_x86_64 0
+#endif
+
+#if defined(__i386__) || defined(_M_IX86) || defined(_X86_) || defined(__i386)
+  #define EIGEN_ARCH_i386 1
+#else
+  #define EIGEN_ARCH_i386 0
+#endif
+
+#if EIGEN_ARCH_x86_64 || EIGEN_ARCH_i386
+  #define EIGEN_ARCH_i386_OR_x86_64 1
+#else
+  #define EIGEN_ARCH_i386_OR_x86_64 0
+#endif
+
+/// \internal EIGEN_ARCH_ARM set to 1 if the architecture is ARM
+#if defined(__arm__)
+  #define EIGEN_ARCH_ARM 1
+#else
+  #define EIGEN_ARCH_ARM 0
+#endif
+
+/// \internal EIGEN_ARCH_ARM64 set to 1 if the architecture is ARM64
+#if defined(__aarch64__)
+  #define EIGEN_ARCH_ARM64 1
+#else
+  #define EIGEN_ARCH_ARM64 0
+#endif
+
+#if EIGEN_ARCH_ARM || EIGEN_ARCH_ARM64
+  #define EIGEN_ARCH_ARM_OR_ARM64 1
+#else
+  #define EIGEN_ARCH_ARM_OR_ARM64 0
+#endif
+
+/// \internal EIGEN_ARCH_MIPS set to 1 if the architecture is MIPS
+#if defined(__mips__) || defined(__mips)
+  #define EIGEN_ARCH_MIPS 1
+#else
+  #define EIGEN_ARCH_MIPS 0
+#endif
+
+/// \internal EIGEN_ARCH_SPARC set to 1 if the architecture is SPARC
+#if defined(__sparc__) || defined(__sparc)
+  #define EIGEN_ARCH_SPARC 1
+#else
+  #define EIGEN_ARCH_SPARC 0
+#endif
+
+/// \internal EIGEN_ARCH_IA64 set to 1 if the architecture is Intel Itanium
+#if defined(__ia64__)
+  #define EIGEN_ARCH_IA64 1
+#else
+  #define EIGEN_ARCH_IA64 0
+#endif
+
+/// \internal EIGEN_ARCH_PPC set to 1 if the architecture is PowerPC
+#if defined(__powerpc__) || defined(__ppc__) || defined(_M_PPC)
+  #define EIGEN_ARCH_PPC 1
+#else
+  #define EIGEN_ARCH_PPC 0
+#endif
+
+
+
+// Operating system identification, EIGEN_OS_*
+
+/// \internal EIGEN_OS_UNIX set to 1 if the OS is a unix variant
+#if defined(__unix__) || defined(__unix)
+  #define EIGEN_OS_UNIX 1
+#else
+  #define EIGEN_OS_UNIX 0
+#endif
+
+/// \internal EIGEN_OS_LINUX set to 1 if the OS is based on Linux kernel
+#if defined(__linux__)
+  #define EIGEN_OS_LINUX 1
+#else
+  #define EIGEN_OS_LINUX 0
+#endif
+
+/// \internal EIGEN_OS_ANDROID set to 1 if the OS is Android
+// note: ANDROID is defined when using ndk_build, __ANDROID__ is defined when using a standalone toolchain.
+#if defined(__ANDROID__) || defined(ANDROID)
+  #define EIGEN_OS_ANDROID 1
+#else
+  #define EIGEN_OS_ANDROID 0
+#endif
+
+/// \internal EIGEN_OS_GNULINUX set to 1 if the OS is GNU Linux and not Linux-based OS (e.g., not android)
+#if defined(__gnu_linux__) && !(EIGEN_OS_ANDROID)
+  #define EIGEN_OS_GNULINUX 1
+#else
+  #define EIGEN_OS_GNULINUX 0
+#endif
+
+/// \internal EIGEN_OS_BSD set to 1 if the OS is a BSD variant
+#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__DragonFly__)
+  #define EIGEN_OS_BSD 1
+#else
+  #define EIGEN_OS_BSD 0
+#endif
+
+/// \internal EIGEN_OS_MAC set to 1 if the OS is MacOS
+#if defined(__APPLE__)
+  #define EIGEN_OS_MAC 1
+#else
+  #define EIGEN_OS_MAC 0
+#endif
+
+/// \internal EIGEN_OS_QNX set to 1 if the OS is QNX
+#if defined(__QNX__)
+  #define EIGEN_OS_QNX 1
+#else
+  #define EIGEN_OS_QNX 0
+#endif
+
+/// \internal EIGEN_OS_WIN set to 1 if the OS is Windows based
+#if defined(_WIN32)
+  #define EIGEN_OS_WIN 1
+#else
+  #define EIGEN_OS_WIN 0
+#endif
+
+/// \internal EIGEN_OS_WIN64 set to 1 if the OS is Windows 64bits
+#if defined(_WIN64)
+  #define EIGEN_OS_WIN64 1
+#else
+  #define EIGEN_OS_WIN64 0
+#endif
+
+/// \internal EIGEN_OS_WINCE set to 1 if the OS is Windows CE
+#if defined(_WIN32_WCE)
+  #define EIGEN_OS_WINCE 1
+#else
+  #define EIGEN_OS_WINCE 0
+#endif
+
+/// \internal EIGEN_OS_CYGWIN set to 1 if the OS is Windows/Cygwin
+#if defined(__CYGWIN__)
+  #define EIGEN_OS_CYGWIN 1
+#else
+  #define EIGEN_OS_CYGWIN 0
+#endif
+
+/// \internal EIGEN_OS_WIN_STRICT set to 1 if the OS is really Windows and not some variants
+#if EIGEN_OS_WIN && !( EIGEN_OS_WINCE || EIGEN_OS_CYGWIN )
+  #define EIGEN_OS_WIN_STRICT 1
+#else
+  #define EIGEN_OS_WIN_STRICT 0
+#endif
+
+/// \internal EIGEN_OS_SUN set to 1 if the OS is SUN
+#if (defined(sun) || defined(__sun)) && !(defined(__SVR4) || defined(__svr4__))
+  #define EIGEN_OS_SUN 1
+#else
+  #define EIGEN_OS_SUN 0
+#endif
+
+/// \internal EIGEN_OS_SOLARIS set to 1 if the OS is Solaris
+#if (defined(sun) || defined(__sun)) && (defined(__SVR4) || defined(__svr4__))
+  #define EIGEN_OS_SOLARIS 1
+#else
+  #define EIGEN_OS_SOLARIS 0
+#endif
+
+
+#if EIGEN_GNUC_AT_MOST(4,3) && !defined(__clang__)
+  // see bug 89
+  #define EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO 0
+#else
+  #define EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO 1
+#endif
+
+// 16 byte alignment is only useful for vectorization. Since it affects the ABI, we need to enable
+// 16 byte alignment on all platforms where vectorization might be enabled. In theory we could always
+// enable alignment, but it can be a cause of problems on some platforms, so we just disable it in
+// certain common platform (compiler+architecture combinations) to avoid these problems.
+// Only static alignment is really problematic (relies on nonstandard compiler extensions that don't
+// work everywhere, for example don't work on GCC/ARM), try to keep heap alignment even
+// when we have to disable static alignment.
+#if defined(__GNUC__) && !(defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) || defined(__ppc__) || defined(__ia64__))
+#define EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT 1
+#else
+#define EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT 0
+#endif
+
+// static alignment is completely disabled with GCC 3, Sun Studio, and QCC/QNX
+#if !EIGEN_GCC_AND_ARCH_DOESNT_WANT_STACK_ALIGNMENT \
+ && !EIGEN_GCC3_OR_OLDER \
+ && !defined(__SUNPRO_CC) \
+ && !defined(__QNXNTO__)
+  #define EIGEN_ARCH_WANTS_STACK_ALIGNMENT 1
+#else
+  #define EIGEN_ARCH_WANTS_STACK_ALIGNMENT 0
+#endif
+
+#ifdef EIGEN_DONT_ALIGN
+  #ifndef EIGEN_DONT_ALIGN_STATICALLY
+    #define EIGEN_DONT_ALIGN_STATICALLY
+  #endif
+  #define EIGEN_ALIGN 0
+#else
+  #define EIGEN_ALIGN 1
+#endif
+
+// EIGEN_ALIGN_STATICALLY is the true test whether we want to align arrays on the stack or not. It takes into account both the user choice to explicitly disable
+// alignment (EIGEN_DONT_ALIGN_STATICALLY) and the architecture config (EIGEN_ARCH_WANTS_STACK_ALIGNMENT). Henceforth, only EIGEN_ALIGN_STATICALLY should be used.
+#if EIGEN_ARCH_WANTS_STACK_ALIGNMENT && !defined(EIGEN_DONT_ALIGN_STATICALLY)
+  #define EIGEN_ALIGN_STATICALLY 1
+#else
+  #define EIGEN_ALIGN_STATICALLY 0
+  #ifndef EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT
+    #define EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT
+  #endif
+#endif
+
+#ifdef EIGEN_DEFAULT_TO_ROW_MAJOR
+#define EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION RowMajor
+#else
+#define EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ColMajor
+#endif
+
+#ifndef EIGEN_DEFAULT_DENSE_INDEX_TYPE
+#define EIGEN_DEFAULT_DENSE_INDEX_TYPE std::ptrdiff_t
+#endif
+
+// A Clang feature extension to determine compiler features.
+// We use it to determine 'cxx_rvalue_references'
+#ifndef __has_feature
+# define __has_feature(x) 0
+#endif
+
+// Do we support r-value references?
+#if (__has_feature(cxx_rvalue_references) || \
+     (defined(__cplusplus) && __cplusplus >= 201103L) || \
+     (defined(_MSC_VER) && _MSC_VER >= 1600))
+  #define EIGEN_HAVE_RVALUE_REFERENCES
+#endif
+
+
+// Cross compiler wrapper around LLVM's __has_builtin
+#ifdef __has_builtin
+#  define EIGEN_HAS_BUILTIN(x) __has_builtin(x)
+#else
+#  define EIGEN_HAS_BUILTIN(x) 0
+#endif
+
+/** Allows to disable some optimizations which might affect the accuracy of the result.
+  * Such optimization are enabled by default, and set EIGEN_FAST_MATH to 0 to disable them.
+  * They currently include:
+  *   - single precision Cwise::sin() and Cwise::cos() when SSE vectorization is enabled.
+  */
+#ifndef EIGEN_FAST_MATH
+#define EIGEN_FAST_MATH 1
+#endif
+
+#define EIGEN_DEBUG_VAR(x) std::cerr << #x << " = " << x << std::endl;
+
+// concatenate two tokens
+#define EIGEN_CAT2(a,b) a ## b
+#define EIGEN_CAT(a,b) EIGEN_CAT2(a,b)
+
+// convert a token to a string
+#define EIGEN_MAKESTRING2(a) #a
+#define EIGEN_MAKESTRING(a) EIGEN_MAKESTRING2(a)
+
+// EIGEN_STRONG_INLINE is a stronger version of the inline, using __forceinline on MSVC,
+// but it still doesn't use GCC's always_inline. This is useful in (common) situations where MSVC needs forceinline
+// but GCC is still doing fine with just inline.
+#if (defined _MSC_VER) || (defined __INTEL_COMPILER)
+#define EIGEN_STRONG_INLINE __forceinline
+#else
+#define EIGEN_STRONG_INLINE inline
+#endif
+
+// EIGEN_ALWAYS_INLINE is the stronget, it has the effect of making the function inline and adding every possible
+// attribute to maximize inlining. This should only be used when really necessary: in particular,
+// it uses __attribute__((always_inline)) on GCC, which most of the time is useless and can severely harm compile times.
+// FIXME with the always_inline attribute,
+// gcc 3.4.x reports the following compilation error:
+//   Eval.h:91: sorry, unimplemented: inlining failed in call to 'const Eigen::Eval<Derived> Eigen::MatrixBase<Scalar, Derived>::eval() const'
+//    : function body not available
+#if EIGEN_GNUC_AT_LEAST(4,0)
+#define EIGEN_ALWAYS_INLINE __attribute__((always_inline)) inline
+#else
+#define EIGEN_ALWAYS_INLINE EIGEN_STRONG_INLINE
+#endif
+
+#if (defined __GNUC__)
+#define EIGEN_DONT_INLINE __attribute__((noinline))
+#elif (defined _MSC_VER)
+#define EIGEN_DONT_INLINE __declspec(noinline)
+#else
+#define EIGEN_DONT_INLINE
+#endif
+
+#if (defined __GNUC__)
+#define EIGEN_PERMISSIVE_EXPR __extension__
+#else
+#define EIGEN_PERMISSIVE_EXPR
+#endif
+
+// this macro allows to get rid of linking errors about multiply defined functions.
+//  - static is not very good because it prevents definitions from different object files to be merged.
+//           So static causes the resulting linked executable to be bloated with multiple copies of the same function.
+//  - inline is not perfect either as it unwantedly hints the compiler toward inlining the function.
+#define EIGEN_DECLARE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+#define EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS inline
+
+#ifdef NDEBUG
+# ifndef EIGEN_NO_DEBUG
+#  define EIGEN_NO_DEBUG
+# endif
+#endif
+
+// eigen_plain_assert is where we implement the workaround for the assert() bug in GCC <= 4.3, see bug 89
+#ifdef EIGEN_NO_DEBUG
+  #define eigen_plain_assert(x)
+#else
+  #if EIGEN_SAFE_TO_USE_STANDARD_ASSERT_MACRO
+    namespace Eigen {
+    namespace internal {
+    inline bool copy_bool(bool b) { return b; }
+    }
+    }
+    #define eigen_plain_assert(x) assert(x)
+  #else
+    // work around bug 89
+    #include <cstdlib>   // for abort
+    #include <iostream>  // for std::cerr
+
+    namespace Eigen {
+    namespace internal {
+    // trivial function copying a bool. Must be EIGEN_DONT_INLINE, so we implement it after including Eigen headers.
+    // see bug 89.
+    namespace {
+    EIGEN_DONT_INLINE bool copy_bool(bool b) { return b; }
+    }
+    inline void assert_fail(const char *condition, const char *function, const char *file, int line)
+    {
+      std::cerr << "assertion failed: " << condition << " in function " << function << " at " << file << ":" << line << std::endl;
+      abort();
+    }
+    }
+    }
+    #define eigen_plain_assert(x) \
+      do { \
+        if(!Eigen::internal::copy_bool(x)) \
+          Eigen::internal::assert_fail(EIGEN_MAKESTRING(x), __PRETTY_FUNCTION__, __FILE__, __LINE__); \
+      } while(false)
+  #endif
+#endif
+
+// eigen_assert can be overridden
+#ifndef eigen_assert
+#define eigen_assert(x) eigen_plain_assert(x)
+#endif
+
+#ifdef EIGEN_INTERNAL_DEBUGGING
+#define eigen_internal_assert(x) eigen_assert(x)
+#else
+#define eigen_internal_assert(x)
+#endif
+
+#ifdef EIGEN_NO_DEBUG
+#define EIGEN_ONLY_USED_FOR_DEBUG(x) (void)x
+#else
+#define EIGEN_ONLY_USED_FOR_DEBUG(x)
+#endif
+
+#ifndef EIGEN_NO_DEPRECATED_WARNING
+  #if (defined __GNUC__)
+    #define EIGEN_DEPRECATED __attribute__((deprecated))
+  #elif (defined _MSC_VER)
+    #define EIGEN_DEPRECATED __declspec(deprecated)
+  #else
+    #define EIGEN_DEPRECATED
+  #endif
+#else
+  #define EIGEN_DEPRECATED
+#endif
+
+#if (defined __GNUC__)
+#define EIGEN_UNUSED __attribute__((unused))
+#else
+#define EIGEN_UNUSED
+#endif
+
+// Suppresses 'unused variable' warnings.
+namespace Eigen {
+  namespace internal {
+    template<typename T> void ignore_unused_variable(const T&) {}
+  }
+}
+#define EIGEN_UNUSED_VARIABLE(var) Eigen::internal::ignore_unused_variable(var);
+
+#if !defined(EIGEN_ASM_COMMENT)
+  #if (defined __GNUC__) && ( defined(__i386__) || defined(__x86_64__) )
+    #define EIGEN_ASM_COMMENT(X)  __asm__("#" X)
+  #else
+    #define EIGEN_ASM_COMMENT(X)
+  #endif
+#endif
+
+/* EIGEN_ALIGN_TO_BOUNDARY(n) forces data to be n-byte aligned. This is used to satisfy SIMD requirements.
+ * However, we do that EVEN if vectorization (EIGEN_VECTORIZE) is disabled,
+ * so that vectorization doesn't affect binary compatibility.
+ *
+ * If we made alignment depend on whether or not EIGEN_VECTORIZE is defined, it would be impossible to link
+ * vectorized and non-vectorized code.
+ */
+#if (defined __GNUC__) || (defined __PGI) || (defined __IBMCPP__) || (defined __ARMCC_VERSION)
+  #define EIGEN_ALIGN_TO_BOUNDARY(n) __attribute__((aligned(n)))
+#elif (defined _MSC_VER)
+  #define EIGEN_ALIGN_TO_BOUNDARY(n) __declspec(align(n))
+#elif (defined __SUNPRO_CC)
+  // FIXME not sure about this one:
+  #define EIGEN_ALIGN_TO_BOUNDARY(n) __attribute__((aligned(n)))
+#else
+  #error Please tell me what is the equivalent of __attribute__((aligned(n))) for your compiler
+#endif
+
+#define EIGEN_ALIGN8  EIGEN_ALIGN_TO_BOUNDARY(8)
+#define EIGEN_ALIGN16 EIGEN_ALIGN_TO_BOUNDARY(16)
+
+#if EIGEN_ALIGN_STATICALLY
+#define EIGEN_USER_ALIGN_TO_BOUNDARY(n) EIGEN_ALIGN_TO_BOUNDARY(n)
+#define EIGEN_USER_ALIGN16 EIGEN_ALIGN16
+#else
+#define EIGEN_USER_ALIGN_TO_BOUNDARY(n)
+#define EIGEN_USER_ALIGN16
+#endif
+
+#ifdef EIGEN_DONT_USE_RESTRICT_KEYWORD
+  #define EIGEN_RESTRICT
+#endif
+#ifndef EIGEN_RESTRICT
+  #define EIGEN_RESTRICT __restrict
+#endif
+
+#ifndef EIGEN_STACK_ALLOCATION_LIMIT
+// 131072 == 128 KB
+#define EIGEN_STACK_ALLOCATION_LIMIT 131072
+#endif
+
+#ifndef EIGEN_DEFAULT_IO_FORMAT
+#ifdef EIGEN_MAKING_DOCS
+// format used in Eigen's documentation
+// needed to define it here as escaping characters in CMake add_definition's argument seems very problematic.
+#define EIGEN_DEFAULT_IO_FORMAT Eigen::IOFormat(3, 0, " ", "\n", "", "")
+#else
+#define EIGEN_DEFAULT_IO_FORMAT Eigen::IOFormat()
+#endif
+#endif
+
+// just an empty macro !
+#define EIGEN_EMPTY
+
+#if defined(_MSC_VER) && (_MSC_VER < 1900) && (!defined(__INTEL_COMPILER))
+#define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \
+  using Base::operator =;
+#elif defined(__clang__) // workaround clang bug (see http://forum.kde.org/viewtopic.php?f=74&t=102653)
+#define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \
+  using Base::operator =; \
+  EIGEN_STRONG_INLINE Derived& operator=(const Derived& other) { Base::operator=(other); return *this; } \
+  template <typename OtherDerived> \
+  EIGEN_STRONG_INLINE Derived& operator=(const DenseBase<OtherDerived>& other) { Base::operator=(other.derived()); return *this; }
+#else
+#define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \
+  using Base::operator =; \
+  EIGEN_STRONG_INLINE Derived& operator=(const Derived& other) \
+  { \
+    Base::operator=(other); \
+    return *this; \
+  }
+#endif
+
+/** \internal
+ * \brief Macro to manually inherit assignment operators.
+ * This is necessary, because the implicitly defined assignment operator gets deleted when a custom operator= is defined.
+ */
+#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived) EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived)
+
+/**
+* Just a side note. Commenting within defines works only by documenting
+* behind the object (via '!<'). Comments cannot be multi-line and thus
+* we have these extra long lines. What is confusing doxygen over here is
+* that we use '\' and basically have a bunch of typedefs with their
+* documentation in a single line.
+**/
+
+#define EIGEN_GENERIC_PUBLIC_INTERFACE(Derived) \
+  typedef typename Eigen::internal::traits<Derived>::Scalar Scalar; /*!< \brief Numeric type, e.g. float, double, int or std::complex<float>. */ \
+  typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; /*!< \brief The underlying numeric type for composed scalar types. \details In cases where Scalar is e.g. std::complex<T>, T were corresponding to RealScalar. */ \
+  typedef typename Base::CoeffReturnType CoeffReturnType; /*!< \brief The return type for coefficient access. \details Depending on whether the object allows direct coefficient access (e.g. for a MatrixXd), this type is either 'const Scalar&' or simply 'Scalar' for objects that do not allow direct coefficient access. */ \
+  typedef typename Eigen::internal::nested<Derived>::type Nested; \
+  typedef typename Eigen::internal::traits<Derived>::StorageKind StorageKind; \
+  typedef typename Eigen::internal::traits<Derived>::Index Index; \
+  enum { RowsAtCompileTime = Eigen::internal::traits<Derived>::RowsAtCompileTime, \
+        ColsAtCompileTime = Eigen::internal::traits<Derived>::ColsAtCompileTime, \
+        Flags = Eigen::internal::traits<Derived>::Flags, \
+        CoeffReadCost = Eigen::internal::traits<Derived>::CoeffReadCost, \
+        SizeAtCompileTime = Base::SizeAtCompileTime, \
+        MaxSizeAtCompileTime = Base::MaxSizeAtCompileTime, \
+        IsVectorAtCompileTime = Base::IsVectorAtCompileTime };
+
+
+#define EIGEN_DENSE_PUBLIC_INTERFACE(Derived) \
+  typedef typename Eigen::internal::traits<Derived>::Scalar Scalar; /*!< \brief Numeric type, e.g. float, double, int or std::complex<float>. */ \
+  typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; /*!< \brief The underlying numeric type for composed scalar types. \details In cases where Scalar is e.g. std::complex<T>, T were corresponding to RealScalar. */ \
+  typedef typename Base::PacketScalar PacketScalar; \
+  typedef typename Base::CoeffReturnType CoeffReturnType; /*!< \brief The return type for coefficient access. \details Depending on whether the object allows direct coefficient access (e.g. for a MatrixXd), this type is either 'const Scalar&' or simply 'Scalar' for objects that do not allow direct coefficient access. */ \
+  typedef typename Eigen::internal::nested<Derived>::type Nested; \
+  typedef typename Eigen::internal::traits<Derived>::StorageKind StorageKind; \
+  typedef typename Eigen::internal::traits<Derived>::Index Index; \
+  enum { RowsAtCompileTime = Eigen::internal::traits<Derived>::RowsAtCompileTime, \
+        ColsAtCompileTime = Eigen::internal::traits<Derived>::ColsAtCompileTime, \
+        MaxRowsAtCompileTime = Eigen::internal::traits<Derived>::MaxRowsAtCompileTime, \
+        MaxColsAtCompileTime = Eigen::internal::traits<Derived>::MaxColsAtCompileTime, \
+        Flags = Eigen::internal::traits<Derived>::Flags, \
+        CoeffReadCost = Eigen::internal::traits<Derived>::CoeffReadCost, \
+        SizeAtCompileTime = Base::SizeAtCompileTime, \
+        MaxSizeAtCompileTime = Base::MaxSizeAtCompileTime, \
+        IsVectorAtCompileTime = Base::IsVectorAtCompileTime }; \
+  using Base::derived; \
+  using Base::const_cast_derived;
+
+
+#define EIGEN_PLAIN_ENUM_MIN(a,b) (((int)a <= (int)b) ? (int)a : (int)b)
+#define EIGEN_PLAIN_ENUM_MAX(a,b) (((int)a >= (int)b) ? (int)a : (int)b)
+
+// EIGEN_SIZE_MIN_PREFER_DYNAMIC gives the min between compile-time sizes. 0 has absolute priority, followed by 1,
+// followed by Dynamic, followed by other finite values. The reason for giving Dynamic the priority over
+// finite values is that min(3, Dynamic) should be Dynamic, since that could be anything between 0 and 3.
+#define EIGEN_SIZE_MIN_PREFER_DYNAMIC(a,b) (((int)a == 0 || (int)b == 0) ? 0 \
+                           : ((int)a == 1 || (int)b == 1) ? 1 \
+                           : ((int)a == Dynamic || (int)b == Dynamic) ? Dynamic \
+                           : ((int)a <= (int)b) ? (int)a : (int)b)
+
+// EIGEN_SIZE_MIN_PREFER_FIXED is a variant of EIGEN_SIZE_MIN_PREFER_DYNAMIC comparing MaxSizes. The difference is that finite values
+// now have priority over Dynamic, so that min(3, Dynamic) gives 3. Indeed, whatever the actual value is
+// (between 0 and 3), it is not more than 3.
+#define EIGEN_SIZE_MIN_PREFER_FIXED(a,b)  (((int)a == 0 || (int)b == 0) ? 0 \
+                           : ((int)a == 1 || (int)b == 1) ? 1 \
+                           : ((int)a == Dynamic && (int)b == Dynamic) ? Dynamic \
+                           : ((int)a == Dynamic) ? (int)b \
+                           : ((int)b == Dynamic) ? (int)a \
+                           : ((int)a <= (int)b) ? (int)a : (int)b)
+
+// see EIGEN_SIZE_MIN_PREFER_DYNAMIC. No need for a separate variant for MaxSizes here.
+#define EIGEN_SIZE_MAX(a,b) (((int)a == Dynamic || (int)b == Dynamic) ? Dynamic \
+                           : ((int)a >= (int)b) ? (int)a : (int)b)
+
+#define EIGEN_ADD_COST(a,b) int(a)==Dynamic || int(b)==Dynamic ? Dynamic : int(a)+int(b)
+
+#define EIGEN_LOGICAL_XOR(a,b) (((a) || (b)) && !((a) && (b)))
+
+#define EIGEN_IMPLIES(a,b) (!(a) || (b))
+
+#define EIGEN_MAKE_CWISE_BINARY_OP(METHOD,FUNCTOR) \
+  template<typename OtherDerived> \
+  EIGEN_STRONG_INLINE const CwiseBinaryOp<FUNCTOR<Scalar>, const Derived, const OtherDerived> \
+  (METHOD)(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const \
+  { \
+    return CwiseBinaryOp<FUNCTOR<Scalar>, const Derived, const OtherDerived>(derived(), other.derived()); \
+  }
+
+// the expression type of a cwise product
+#define EIGEN_CWISE_PRODUCT_RETURN_TYPE(LHS,RHS) \
+    CwiseBinaryOp< \
+      internal::scalar_product_op< \
+          typename internal::traits<LHS>::Scalar, \
+          typename internal::traits<RHS>::Scalar \
+      >, \
+      const LHS, \
+      const RHS \
+    >
+
+#endif // EIGEN_MACROS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/DisableStupidWarnings.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/DisableStupidWarnings.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/DisableStupidWarnings.h	(revision 2476)
@@ -0,0 +1,48 @@
+#ifndef EIGEN_WARNINGS_DISABLED
+#define EIGEN_WARNINGS_DISABLED
+
+#ifdef _MSC_VER
+  // 4100 - unreferenced formal parameter (occurred e.g. in aligned_allocator::destroy(pointer p))
+  // 4101 - unreferenced local variable
+  // 4127 - conditional expression is constant
+  // 4181 - qualifier applied to reference type ignored
+  // 4211 - nonstandard extension used : redefined extern to static
+  // 4244 - 'argument' : conversion from 'type1' to 'type2', possible loss of data
+  // 4273 - QtAlignedMalloc, inconsistent DLL linkage
+  // 4324 - structure was padded due to declspec(align())
+  // 4512 - assignment operator could not be generated
+  // 4522 - 'class' : multiple assignment operators specified
+  // 4700 - uninitialized local variable 'xyz' used
+  // 4717 - 'function' : recursive on all control paths, function will cause runtime stack overflow
+  #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
+    #pragma warning( push )
+  #endif
+  #pragma warning( disable : 4100 4101 4127 4181 4211 4244 4273 4324 4512 4522 4700 4717 )
+#elif defined __INTEL_COMPILER
+  // 2196 - routine is both "inline" and "noinline" ("noinline" assumed)
+  //        ICC 12 generates this warning even without any inline keyword, when defining class methods 'inline' i.e. inside of class body
+  //        typedef that may be a reference type.
+  // 279  - controlling expression is constant
+  //        ICC 12 generates this warning on assert(constant_expression_depending_on_template_params) and frankly this is a legitimate use case.
+  #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
+    #pragma warning push
+  #endif
+  #pragma warning disable 2196 279
+#elif defined __clang__
+  // -Wconstant-logical-operand - warning: use of logical && with constant operand; switch to bitwise & or remove constant
+  //     this is really a stupid warning as it warns on compile-time expressions involving enums
+  #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
+    #pragma clang diagnostic push
+  #endif
+  #pragma clang diagnostic ignored "-Wconstant-logical-operand"
+
+#elif defined __GNUC__ && __GNUC__>=6
+
+  #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
+    #pragma GCC diagnostic push
+  #endif
+  #pragma GCC diagnostic ignored "-Wignored-attributes"
+
+#endif
+
+#endif // not EIGEN_WARNINGS_DISABLED
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/NonMPL2.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/NonMPL2.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/NonMPL2.h	(revision 2476)
@@ -0,0 +1,3 @@
+#ifdef EIGEN_MPL2_ONLY
+#error Including non-MPL2 code in EIGEN_MPL2_ONLY mode
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/Meta.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/Meta.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/util/Meta.h	(revision 2476)
@@ -0,0 +1,243 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_META_H
+#define EIGEN_META_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal
+  * \file Meta.h
+  * This file contains generic metaprogramming classes which are not specifically related to Eigen.
+  * \note In case you wonder, yes we're aware that Boost already provides all these features,
+  * we however don't want to add a dependency to Boost.
+  */
+
+struct true_type {  enum { value = 1 }; };
+struct false_type { enum { value = 0 }; };
+
+template<bool Condition, typename Then, typename Else>
+struct conditional { typedef Then type; };
+
+template<typename Then, typename Else>
+struct conditional <false, Then, Else> { typedef Else type; };
+
+template<typename T, typename U> struct is_same { enum { value = 0 }; };
+template<typename T> struct is_same<T,T> { enum { value = 1 }; };
+
+template<typename T> struct remove_reference { typedef T type; };
+template<typename T> struct remove_reference<T&> { typedef T type; };
+
+template<typename T> struct remove_pointer { typedef T type; };
+template<typename T> struct remove_pointer<T*> { typedef T type; };
+template<typename T> struct remove_pointer<T*const> { typedef T type; };
+
+template <class T> struct remove_const { typedef T type; };
+template <class T> struct remove_const<const T> { typedef T type; };
+template <class T> struct remove_const<const T[]> { typedef T type[]; };
+template <class T, unsigned int Size> struct remove_const<const T[Size]> { typedef T type[Size]; };
+
+template<typename T> struct remove_all { typedef T type; };
+template<typename T> struct remove_all<const T>   { typedef typename remove_all<T>::type type; };
+template<typename T> struct remove_all<T const&>  { typedef typename remove_all<T>::type type; };
+template<typename T> struct remove_all<T&>        { typedef typename remove_all<T>::type type; };
+template<typename T> struct remove_all<T const*>  { typedef typename remove_all<T>::type type; };
+template<typename T> struct remove_all<T*>        { typedef typename remove_all<T>::type type; };
+
+template<typename T> struct is_arithmetic      { enum { value = false }; };
+template<> struct is_arithmetic<float>         { enum { value = true }; };
+template<> struct is_arithmetic<double>        { enum { value = true }; };
+template<> struct is_arithmetic<long double>   { enum { value = true }; };
+template<> struct is_arithmetic<bool>          { enum { value = true }; };
+template<> struct is_arithmetic<char>          { enum { value = true }; };
+template<> struct is_arithmetic<signed char>   { enum { value = true }; };
+template<> struct is_arithmetic<unsigned char> { enum { value = true }; };
+template<> struct is_arithmetic<signed short>  { enum { value = true }; };
+template<> struct is_arithmetic<unsigned short>{ enum { value = true }; };
+template<> struct is_arithmetic<signed int>    { enum { value = true }; };
+template<> struct is_arithmetic<unsigned int>  { enum { value = true }; };
+template<> struct is_arithmetic<signed long>   { enum { value = true }; };
+template<> struct is_arithmetic<unsigned long> { enum { value = true }; };
+
+template <typename T> struct add_const { typedef const T type; };
+template <typename T> struct add_const<T&> { typedef T& type; };
+
+template <typename T> struct is_const { enum { value = 0 }; };
+template <typename T> struct is_const<T const> { enum { value = 1 }; };
+
+template<typename T> struct add_const_on_value_type            { typedef const T type;  };
+template<typename T> struct add_const_on_value_type<T&>        { typedef T const& type; };
+template<typename T> struct add_const_on_value_type<T*>        { typedef T const* type; };
+template<typename T> struct add_const_on_value_type<T* const>  { typedef T const* const type; };
+template<typename T> struct add_const_on_value_type<T const* const>  { typedef T const* const type; };
+
+/** \internal Allows to enable/disable an overload
+  * according to a compile time condition.
+  */
+template<bool Condition, typename T> struct enable_if;
+
+template<typename T> struct enable_if<true,T>
+{ typedef T type; };
+
+
+
+/** \internal
+  * A base class do disable default copy ctor and copy assignement operator.
+  */
+class noncopyable
+{
+  noncopyable(const noncopyable&);
+  const noncopyable& operator=(const noncopyable&);
+protected:
+  noncopyable() {}
+  ~noncopyable() {}
+};
+
+
+/** \internal
+  * Convenient struct to get the result type of a unary or binary functor.
+  *
+  * It supports both the current STL mechanism (using the result_type member) as well as
+  * upcoming next STL generation (using a templated result member).
+  * If none of these members is provided, then the type of the first argument is returned. FIXME, that behavior is a pretty bad hack.
+  */
+template<typename T> struct result_of {};
+
+struct has_none {int a[1];};
+struct has_std_result_type {int a[2];};
+struct has_tr1_result {int a[3];};
+
+template<typename Func, typename ArgType, int SizeOf=sizeof(has_none)>
+struct unary_result_of_select {typedef ArgType type;};
+
+template<typename Func, typename ArgType>
+struct unary_result_of_select<Func, ArgType, sizeof(has_std_result_type)> {typedef typename Func::result_type type;};
+
+template<typename Func, typename ArgType>
+struct unary_result_of_select<Func, ArgType, sizeof(has_tr1_result)> {typedef typename Func::template result<Func(ArgType)>::type type;};
+
+template<typename Func, typename ArgType>
+struct result_of<Func(ArgType)> {
+    template<typename T>
+    static has_std_result_type testFunctor(T const *, typename T::result_type const * = 0);
+    template<typename T>
+    static has_tr1_result      testFunctor(T const *, typename T::template result<T(ArgType)>::type const * = 0);
+    static has_none            testFunctor(...);
+
+    // note that the following indirection is needed for gcc-3.3
+    enum {FunctorType = sizeof(testFunctor(static_cast<Func*>(0)))};
+    typedef typename unary_result_of_select<Func, ArgType, FunctorType>::type type;
+};
+
+template<typename Func, typename ArgType0, typename ArgType1, int SizeOf=sizeof(has_none)>
+struct binary_result_of_select {typedef ArgType0 type;};
+
+template<typename Func, typename ArgType0, typename ArgType1>
+struct binary_result_of_select<Func, ArgType0, ArgType1, sizeof(has_std_result_type)>
+{typedef typename Func::result_type type;};
+
+template<typename Func, typename ArgType0, typename ArgType1>
+struct binary_result_of_select<Func, ArgType0, ArgType1, sizeof(has_tr1_result)>
+{typedef typename Func::template result<Func(ArgType0,ArgType1)>::type type;};
+
+template<typename Func, typename ArgType0, typename ArgType1>
+struct result_of<Func(ArgType0,ArgType1)> {
+    template<typename T>
+    static has_std_result_type testFunctor(T const *, typename T::result_type const * = 0);
+    template<typename T>
+    static has_tr1_result      testFunctor(T const *, typename T::template result<T(ArgType0,ArgType1)>::type const * = 0);
+    static has_none            testFunctor(...);
+
+    // note that the following indirection is needed for gcc-3.3
+    enum {FunctorType = sizeof(testFunctor(static_cast<Func*>(0)))};
+    typedef typename binary_result_of_select<Func, ArgType0, ArgType1, FunctorType>::type type;
+};
+
+/** \internal In short, it computes int(sqrt(\a Y)) with \a Y an integer.
+  * Usage example: \code meta_sqrt<1023>::ret \endcode
+  */
+template<int Y,
+         int InfX = 0,
+         int SupX = ((Y==1) ? 1 : Y/2),
+         bool Done = ((SupX-InfX)<=1 ? true : ((SupX*SupX <= Y) && ((SupX+1)*(SupX+1) > Y))) >
+                                // use ?: instead of || just to shut up a stupid gcc 4.3 warning
+class meta_sqrt
+{
+    enum {
+      MidX = (InfX+SupX)/2,
+      TakeInf = MidX*MidX > Y ? 1 : 0,
+      NewInf = int(TakeInf) ? InfX : int(MidX),
+      NewSup = int(TakeInf) ? int(MidX) : SupX
+    };
+  public:
+    enum { ret = meta_sqrt<Y,NewInf,NewSup>::ret };
+};
+
+template<int Y, int InfX, int SupX>
+class meta_sqrt<Y, InfX, SupX, true> { public:  enum { ret = (SupX*SupX <= Y) ? SupX : InfX }; };
+
+/** \internal determines whether the product of two numeric types is allowed and what the return type is */
+template<typename T, typename U> struct scalar_product_traits
+{
+  enum { Defined = 0 };
+};
+
+template<typename T> struct scalar_product_traits<T,T>
+{
+  enum {
+    // Cost = NumTraits<T>::MulCost,
+    Defined = 1
+  };
+  typedef T ReturnType;
+};
+
+template<typename T> struct scalar_product_traits<T,std::complex<T> >
+{
+  enum {
+    // Cost = 2*NumTraits<T>::MulCost,
+    Defined = 1
+  };
+  typedef std::complex<T> ReturnType;
+};
+
+template<typename T> struct scalar_product_traits<std::complex<T>, T>
+{
+  enum {
+    // Cost = 2*NumTraits<T>::MulCost,
+    Defined = 1
+  };
+  typedef std::complex<T> ReturnType;
+};
+
+// FIXME quick workaround around current limitation of result_of
+// template<typename Scalar, typename ArgType0, typename ArgType1>
+// struct result_of<scalar_product_op<Scalar>(ArgType0,ArgType1)> {
+// typedef typename scalar_product_traits<typename remove_all<ArgType0>::type, typename remove_all<ArgType1>::type>::ReturnType type;
+// };
+
+template<typename T> struct is_diagonal
+{ enum { ret = false }; };
+
+template<typename T> struct is_diagonal<DiagonalBase<T> >
+{ enum { ret = true }; };
+
+template<typename T> struct is_diagonal<DiagonalWrapper<T> >
+{ enum { ret = true }; };
+
+template<typename T, int S> struct is_diagonal<DiagonalMatrix<T,S> >
+{ enum { ret = true }; };
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_META_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/SelfCwiseBinaryOp.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/SelfCwiseBinaryOp.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/SelfCwiseBinaryOp.h	(revision 2476)
@@ -0,0 +1,191 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFCWISEBINARYOP_H
+#define EIGEN_SELFCWISEBINARYOP_H
+
+namespace Eigen { 
+
+/** \class SelfCwiseBinaryOp
+  * \ingroup Core_Module
+  *
+  * \internal
+  *
+  * \brief Internal helper class for optimizing operators like +=, -=
+  *
+  * This is a pseudo expression class re-implementing the copyCoeff/copyPacket
+  * method to directly performs a +=/-= operations in an optimal way. In particular,
+  * this allows to make sure that the input/output data are loaded only once using
+  * aligned packet loads.
+  *
+  * \sa class SwapWrapper for a similar trick.
+  */
+
+namespace internal {
+template<typename BinaryOp, typename Lhs, typename Rhs>
+struct traits<SelfCwiseBinaryOp<BinaryOp,Lhs,Rhs> >
+  : traits<CwiseBinaryOp<BinaryOp,Lhs,Rhs> >
+{
+  enum {
+    // Note that it is still a good idea to preserve the DirectAccessBit
+    // so that assign can correctly align the data.
+    Flags = traits<CwiseBinaryOp<BinaryOp,Lhs,Rhs> >::Flags | (Lhs::Flags&DirectAccessBit) | (Lhs::Flags&LvalueBit),
+    OuterStrideAtCompileTime = Lhs::OuterStrideAtCompileTime,
+    InnerStrideAtCompileTime = Lhs::InnerStrideAtCompileTime
+  };
+};
+}
+
+template<typename BinaryOp, typename Lhs, typename Rhs> class SelfCwiseBinaryOp
+  : public internal::dense_xpr_base< SelfCwiseBinaryOp<BinaryOp, Lhs, Rhs> >::type
+{
+  public:
+
+    typedef typename internal::dense_xpr_base<SelfCwiseBinaryOp>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(SelfCwiseBinaryOp)
+
+    typedef typename internal::packet_traits<Scalar>::type Packet;
+
+    inline SelfCwiseBinaryOp(Lhs& xpr, const BinaryOp& func = BinaryOp()) : m_matrix(xpr), m_functor(func) {}
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+    inline Index outerStride() const { return m_matrix.outerStride(); }
+    inline Index innerStride() const { return m_matrix.innerStride(); }
+    inline const Scalar* data() const { return m_matrix.data(); }
+
+    // note that this function is needed by assign to correctly align loads/stores
+    // TODO make Assign use .data()
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(Lhs)
+      return m_matrix.const_cast_derived().coeffRef(row, col);
+    }
+    inline const Scalar& coeffRef(Index row, Index col) const
+    {
+      return m_matrix.coeffRef(row, col);
+    }
+
+    // note that this function is needed by assign to correctly align loads/stores
+    // TODO make Assign use .data()
+    inline Scalar& coeffRef(Index index)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(Lhs)
+      return m_matrix.const_cast_derived().coeffRef(index);
+    }
+    inline const Scalar& coeffRef(Index index) const
+    {
+      return m_matrix.const_cast_derived().coeffRef(index);
+    }
+
+    template<typename OtherDerived>
+    void copyCoeff(Index row, Index col, const DenseBase<OtherDerived>& other)
+    {
+      OtherDerived& _other = other.const_cast_derived();
+      eigen_internal_assert(row >= 0 && row < rows()
+                         && col >= 0 && col < cols());
+      Scalar& tmp = m_matrix.coeffRef(row,col);
+      tmp = m_functor(tmp, _other.coeff(row,col));
+    }
+
+    template<typename OtherDerived>
+    void copyCoeff(Index index, const DenseBase<OtherDerived>& other)
+    {
+      OtherDerived& _other = other.const_cast_derived();
+      eigen_internal_assert(index >= 0 && index < m_matrix.size());
+      Scalar& tmp = m_matrix.coeffRef(index);
+      tmp = m_functor(tmp, _other.coeff(index));
+    }
+
+    template<typename OtherDerived, int StoreMode, int LoadMode>
+    void copyPacket(Index row, Index col, const DenseBase<OtherDerived>& other)
+    {
+      OtherDerived& _other = other.const_cast_derived();
+      eigen_internal_assert(row >= 0 && row < rows()
+                        && col >= 0 && col < cols());
+      m_matrix.template writePacket<StoreMode>(row, col,
+        m_functor.packetOp(m_matrix.template packet<StoreMode>(row, col),_other.template packet<LoadMode>(row, col)) );
+    }
+
+    template<typename OtherDerived, int StoreMode, int LoadMode>
+    void copyPacket(Index index, const DenseBase<OtherDerived>& other)
+    {
+      OtherDerived& _other = other.const_cast_derived();
+      eigen_internal_assert(index >= 0 && index < m_matrix.size());
+      m_matrix.template writePacket<StoreMode>(index,
+        m_functor.packetOp(m_matrix.template packet<StoreMode>(index),_other.template packet<LoadMode>(index)) );
+    }
+
+    // reimplement lazyAssign to handle complex *= real
+    // see CwiseBinaryOp ctor for details
+    template<typename RhsDerived>
+    EIGEN_STRONG_INLINE SelfCwiseBinaryOp& lazyAssign(const DenseBase<RhsDerived>& rhs)
+    {
+      EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Lhs,RhsDerived)
+      EIGEN_CHECK_BINARY_COMPATIBILIY(BinaryOp,typename Lhs::Scalar,typename RhsDerived::Scalar);
+      
+    #ifdef EIGEN_DEBUG_ASSIGN
+      internal::assign_traits<SelfCwiseBinaryOp, RhsDerived>::debug();
+    #endif
+      eigen_assert(rows() == rhs.rows() && cols() == rhs.cols());
+      internal::assign_impl<SelfCwiseBinaryOp, RhsDerived>::run(*this,rhs.derived());
+    #ifndef EIGEN_NO_DEBUG
+      this->checkTransposeAliasing(rhs.derived());
+    #endif
+      return *this;
+    }
+    
+    // overloaded to honor evaluation of special matrices
+    // maybe another solution would be to not use SelfCwiseBinaryOp
+    // at first...
+    SelfCwiseBinaryOp& operator=(const Rhs& _rhs)
+    {
+      typename internal::nested<Rhs>::type rhs(_rhs);
+      return Base::operator=(rhs);
+    }
+
+    Lhs& expression() const 
+    { 
+      return m_matrix;
+    }
+
+    const BinaryOp& functor() const 
+    { 
+      return m_functor;
+    }
+
+  protected:
+    Lhs& m_matrix;
+    const BinaryOp& m_functor;
+
+  private:
+    SelfCwiseBinaryOp& operator=(const SelfCwiseBinaryOp&);
+};
+
+template<typename Derived>
+inline Derived& DenseBase<Derived>::operator*=(const Scalar& other)
+{
+  typedef typename Derived::PlainObject PlainObject;
+  SelfCwiseBinaryOp<internal::scalar_product_op<Scalar>, Derived, typename PlainObject::ConstantReturnType> tmp(derived());
+  tmp = PlainObject::Constant(rows(),cols(),other);
+  return derived();
+}
+
+template<typename Derived>
+inline Derived& DenseBase<Derived>::operator/=(const Scalar& other)
+{
+  typedef typename Derived::PlainObject PlainObject;
+  SelfCwiseBinaryOp<internal::scalar_quotient_op<Scalar>, Derived, typename PlainObject::ConstantReturnType> tmp(derived());
+  tmp = PlainObject::Constant(rows(),cols(), other);
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFCWISEBINARYOP_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Flagged.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Flagged.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Flagged.h	(revision 2476)
@@ -0,0 +1,140 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FLAGGED_H
+#define EIGEN_FLAGGED_H
+
+namespace Eigen { 
+
+/** \class Flagged
+  * \ingroup Core_Module
+  *
+  * \brief Expression with modified flags
+  *
+  * \param ExpressionType the type of the object of which we are modifying the flags
+  * \param Added the flags added to the expression
+  * \param Removed the flags removed from the expression (has priority over Added).
+  *
+  * This class represents an expression whose flags have been modified.
+  * It is the return type of MatrixBase::flagged()
+  * and most of the time this is the only way it is used.
+  *
+  * \sa MatrixBase::flagged()
+  */
+
+namespace internal {
+template<typename ExpressionType, unsigned int Added, unsigned int Removed>
+struct traits<Flagged<ExpressionType, Added, Removed> > : traits<ExpressionType>
+{
+  enum { Flags = (ExpressionType::Flags | Added) & ~Removed };
+};
+}
+
+template<typename ExpressionType, unsigned int Added, unsigned int Removed> class Flagged
+  : public MatrixBase<Flagged<ExpressionType, Added, Removed> >
+{
+  public:
+
+    typedef MatrixBase<Flagged> Base;
+    
+    EIGEN_DENSE_PUBLIC_INTERFACE(Flagged)
+    typedef typename internal::conditional<internal::must_nest_by_value<ExpressionType>::ret,
+        ExpressionType, const ExpressionType&>::type ExpressionTypeNested;
+    typedef typename ExpressionType::InnerIterator InnerIterator;
+
+    inline Flagged(const ExpressionType& matrix) : m_matrix(matrix) {}
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+    inline Index outerStride() const { return m_matrix.outerStride(); }
+    inline Index innerStride() const { return m_matrix.innerStride(); }
+
+    inline CoeffReturnType coeff(Index row, Index col) const
+    {
+      return m_matrix.coeff(row, col);
+    }
+
+    inline CoeffReturnType coeff(Index index) const
+    {
+      return m_matrix.coeff(index);
+    }
+    
+    inline const Scalar& coeffRef(Index row, Index col) const
+    {
+      return m_matrix.const_cast_derived().coeffRef(row, col);
+    }
+
+    inline const Scalar& coeffRef(Index index) const
+    {
+      return m_matrix.const_cast_derived().coeffRef(index);
+    }
+
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      return m_matrix.const_cast_derived().coeffRef(row, col);
+    }
+
+    inline Scalar& coeffRef(Index index)
+    {
+      return m_matrix.const_cast_derived().coeffRef(index);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index row, Index col) const
+    {
+      return m_matrix.template packet<LoadMode>(row, col);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index row, Index col, const PacketScalar& x)
+    {
+      m_matrix.const_cast_derived().template writePacket<LoadMode>(row, col, x);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index index) const
+    {
+      return m_matrix.template packet<LoadMode>(index);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index index, const PacketScalar& x)
+    {
+      m_matrix.const_cast_derived().template writePacket<LoadMode>(index, x);
+    }
+
+    const ExpressionType& _expression() const { return m_matrix; }
+
+    template<typename OtherDerived>
+    typename ExpressionType::PlainObject solveTriangular(const MatrixBase<OtherDerived>& other) const;
+
+    template<typename OtherDerived>
+    void solveTriangularInPlace(const MatrixBase<OtherDerived>& other) const;
+
+  protected:
+    ExpressionTypeNested m_matrix;
+};
+
+/** \returns an expression of *this with added and removed flags
+  *
+  * This is mostly for internal use.
+  *
+  * \sa class Flagged
+  */
+template<typename Derived>
+template<unsigned int Added,unsigned int Removed>
+inline const Flagged<Derived, Added, Removed>
+DenseBase<Derived>::flagged() const
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_FLAGGED_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/GlobalFunctions.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/GlobalFunctions.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/GlobalFunctions.h	(revision 2476)
@@ -0,0 +1,92 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010-2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GLOBAL_FUNCTIONS_H
+#define EIGEN_GLOBAL_FUNCTIONS_H
+
+#define EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(NAME,FUNCTOR) \
+  template<typename Derived> \
+  inline const Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived> \
+  NAME(const Eigen::ArrayBase<Derived>& x) { \
+    return x.derived(); \
+  }
+
+#define EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(NAME,FUNCTOR) \
+  \
+  template<typename Derived> \
+  struct NAME##_retval<ArrayBase<Derived> > \
+  { \
+    typedef const Eigen::CwiseUnaryOp<Eigen::internal::FUNCTOR<typename Derived::Scalar>, const Derived> type; \
+  }; \
+  template<typename Derived> \
+  struct NAME##_impl<ArrayBase<Derived> > \
+  { \
+    static inline typename NAME##_retval<ArrayBase<Derived> >::type run(const Eigen::ArrayBase<Derived>& x) \
+    { \
+      return x.derived(); \
+    } \
+  };
+
+
+namespace Eigen
+{
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(real,scalar_real_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(imag,scalar_imag_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(conj,scalar_conjugate_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(sin,scalar_sin_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(cos,scalar_cos_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(asin,scalar_asin_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(acos,scalar_acos_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(tan,scalar_tan_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(exp,scalar_exp_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(log,scalar_log_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(abs,scalar_abs_op)
+  EIGEN_ARRAY_DECLARE_GLOBAL_UNARY(sqrt,scalar_sqrt_op)
+  
+  template<typename Derived>
+  inline const Eigen::CwiseUnaryOp<Eigen::internal::scalar_pow_op<typename Derived::Scalar>, const Derived>
+  pow(const Eigen::ArrayBase<Derived>& x, const typename Derived::Scalar& exponent) {
+    return x.derived().pow(exponent);
+  }
+
+  template<typename Derived>
+  inline const Eigen::CwiseBinaryOp<Eigen::internal::scalar_binary_pow_op<typename Derived::Scalar, typename Derived::Scalar>, const Derived, const Derived>
+  pow(const Eigen::ArrayBase<Derived>& x, const Eigen::ArrayBase<Derived>& exponents) 
+  {
+    return Eigen::CwiseBinaryOp<Eigen::internal::scalar_binary_pow_op<typename Derived::Scalar, typename Derived::Scalar>, const Derived, const Derived>(
+      x.derived(),
+      exponents.derived()
+    );
+  }
+  
+  /**
+  * \brief Component-wise division of a scalar by array elements.
+  **/
+  template <typename Derived>
+  inline const Eigen::CwiseUnaryOp<Eigen::internal::scalar_inverse_mult_op<typename Derived::Scalar>, const Derived>
+    operator/(const typename Derived::Scalar& s, const Eigen::ArrayBase<Derived>& a)
+  {
+    return Eigen::CwiseUnaryOp<Eigen::internal::scalar_inverse_mult_op<typename Derived::Scalar>, const Derived>(
+      a.derived(),
+      Eigen::internal::scalar_inverse_mult_op<typename Derived::Scalar>(s)  
+    );
+  }
+
+  namespace internal
+  {
+    EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(real,scalar_real_op)
+    EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(imag,scalar_imag_op)
+    EIGEN_ARRAY_DECLARE_GLOBAL_EIGEN_UNARY(abs2,scalar_abs2_op)
+  }
+}
+
+// TODO: cleanly disable those functions that are not supported on Array (numext::real_ref, internal::random, internal::isApprox...)
+
+#endif // EIGEN_GLOBAL_FUNCTIONS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/BandMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/BandMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/BandMatrix.h	(revision 2476)
@@ -0,0 +1,334 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BANDMATRIX_H
+#define EIGEN_BANDMATRIX_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Derived>
+class BandMatrixBase : public EigenBase<Derived>
+{
+  public:
+
+    enum {
+      Flags = internal::traits<Derived>::Flags,
+      CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
+      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+      MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
+      Supers = internal::traits<Derived>::Supers,
+      Subs   = internal::traits<Derived>::Subs,
+      Options = internal::traits<Derived>::Options
+    };
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime> DenseMatrixType;
+    typedef typename DenseMatrixType::Index Index;
+    typedef typename internal::traits<Derived>::CoefficientsType CoefficientsType;
+    typedef EigenBase<Derived> Base;
+
+  protected:
+    enum {
+      DataRowsAtCompileTime = ((Supers!=Dynamic) && (Subs!=Dynamic))
+                            ? 1 + Supers + Subs
+                            : Dynamic,
+      SizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime,ColsAtCompileTime)
+    };
+
+  public:
+    
+    using Base::derived;
+    using Base::rows;
+    using Base::cols;
+
+    /** \returns the number of super diagonals */
+    inline Index supers() const { return derived().supers(); }
+
+    /** \returns the number of sub diagonals */
+    inline Index subs() const { return derived().subs(); }
+    
+    /** \returns an expression of the underlying coefficient matrix */
+    inline const CoefficientsType& coeffs() const { return derived().coeffs(); }
+    
+    /** \returns an expression of the underlying coefficient matrix */
+    inline CoefficientsType& coeffs() { return derived().coeffs(); }
+
+    /** \returns a vector expression of the \a i -th column,
+      * only the meaningful part is returned.
+      * \warning the internal storage must be column major. */
+    inline Block<CoefficientsType,Dynamic,1> col(Index i)
+    {
+      EIGEN_STATIC_ASSERT((Options&RowMajor)==0,THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
+      Index start = 0;
+      Index len = coeffs().rows();
+      if (i<=supers())
+      {
+        start = supers()-i;
+        len = (std::min)(rows(),std::max<Index>(0,coeffs().rows() - (supers()-i)));
+      }
+      else if (i>=rows()-subs())
+        len = std::max<Index>(0,coeffs().rows() - (i + 1 - rows() + subs()));
+      return Block<CoefficientsType,Dynamic,1>(coeffs(), start, i, len, 1);
+    }
+
+    /** \returns a vector expression of the main diagonal */
+    inline Block<CoefficientsType,1,SizeAtCompileTime> diagonal()
+    { return Block<CoefficientsType,1,SizeAtCompileTime>(coeffs(),supers(),0,1,(std::min)(rows(),cols())); }
+
+    /** \returns a vector expression of the main diagonal (const version) */
+    inline const Block<const CoefficientsType,1,SizeAtCompileTime> diagonal() const
+    { return Block<const CoefficientsType,1,SizeAtCompileTime>(coeffs(),supers(),0,1,(std::min)(rows(),cols())); }
+
+    template<int Index> struct DiagonalIntReturnType {
+      enum {
+        ReturnOpposite = (Options&SelfAdjoint) && (((Index)>0 && Supers==0) || ((Index)<0 && Subs==0)),
+        Conjugate = ReturnOpposite && NumTraits<Scalar>::IsComplex,
+        ActualIndex = ReturnOpposite ? -Index : Index,
+        DiagonalSize = (RowsAtCompileTime==Dynamic || ColsAtCompileTime==Dynamic)
+                     ? Dynamic
+                     : (ActualIndex<0
+                     ? EIGEN_SIZE_MIN_PREFER_DYNAMIC(ColsAtCompileTime, RowsAtCompileTime + ActualIndex)
+                     : EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime, ColsAtCompileTime - ActualIndex))
+      };
+      typedef Block<CoefficientsType,1, DiagonalSize> BuildType;
+      typedef typename internal::conditional<Conjugate,
+                 CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>,BuildType >,
+                 BuildType>::type Type;
+    };
+
+    /** \returns a vector expression of the \a N -th sub or super diagonal */
+    template<int N> inline typename DiagonalIntReturnType<N>::Type diagonal()
+    {
+      return typename DiagonalIntReturnType<N>::BuildType(coeffs(), supers()-N, (std::max)(0,N), 1, diagonalLength(N));
+    }
+
+    /** \returns a vector expression of the \a N -th sub or super diagonal */
+    template<int N> inline const typename DiagonalIntReturnType<N>::Type diagonal() const
+    {
+      return typename DiagonalIntReturnType<N>::BuildType(coeffs(), supers()-N, (std::max)(0,N), 1, diagonalLength(N));
+    }
+
+    /** \returns a vector expression of the \a i -th sub or super diagonal */
+    inline Block<CoefficientsType,1,Dynamic> diagonal(Index i)
+    {
+      eigen_assert((i<0 && -i<=subs()) || (i>=0 && i<=supers()));
+      return Block<CoefficientsType,1,Dynamic>(coeffs(), supers()-i, std::max<Index>(0,i), 1, diagonalLength(i));
+    }
+
+    /** \returns a vector expression of the \a i -th sub or super diagonal */
+    inline const Block<const CoefficientsType,1,Dynamic> diagonal(Index i) const
+    {
+      eigen_assert((i<0 && -i<=subs()) || (i>=0 && i<=supers()));
+      return Block<const CoefficientsType,1,Dynamic>(coeffs(), supers()-i, std::max<Index>(0,i), 1, diagonalLength(i));
+    }
+    
+    template<typename Dest> inline void evalTo(Dest& dst) const
+    {
+      dst.resize(rows(),cols());
+      dst.setZero();
+      dst.diagonal() = diagonal();
+      for (Index i=1; i<=supers();++i)
+        dst.diagonal(i) = diagonal(i);
+      for (Index i=1; i<=subs();++i)
+        dst.diagonal(-i) = diagonal(-i);
+    }
+
+    DenseMatrixType toDenseMatrix() const
+    {
+      DenseMatrixType res(rows(),cols());
+      evalTo(res);
+      return res;
+    }
+
+  protected:
+
+    inline Index diagonalLength(Index i) const
+    { return i<0 ? (std::min)(cols(),rows()+i) : (std::min)(rows(),cols()-i); }
+};
+
+/**
+  * \class BandMatrix
+  * \ingroup Core_Module
+  *
+  * \brief Represents a rectangular matrix with a banded storage
+  *
+  * \param _Scalar Numeric type, i.e. float, double, int
+  * \param Rows Number of rows, or \b Dynamic
+  * \param Cols Number of columns, or \b Dynamic
+  * \param Supers Number of super diagonal
+  * \param Subs Number of sub diagonal
+  * \param _Options A combination of either \b #RowMajor or \b #ColMajor, and of \b #SelfAdjoint
+  *                 The former controls \ref TopicStorageOrders "storage order", and defaults to
+  *                 column-major. The latter controls whether the matrix represents a selfadjoint 
+  *                 matrix in which case either Supers of Subs have to be null.
+  *
+  * \sa class TridiagonalMatrix
+  */
+
+template<typename _Scalar, int _Rows, int _Cols, int _Supers, int _Subs, int _Options>
+struct traits<BandMatrix<_Scalar,_Rows,_Cols,_Supers,_Subs,_Options> >
+{
+  typedef _Scalar Scalar;
+  typedef Dense StorageKind;
+  typedef DenseIndex Index;
+  enum {
+    CoeffReadCost = NumTraits<Scalar>::ReadCost,
+    RowsAtCompileTime = _Rows,
+    ColsAtCompileTime = _Cols,
+    MaxRowsAtCompileTime = _Rows,
+    MaxColsAtCompileTime = _Cols,
+    Flags = LvalueBit,
+    Supers = _Supers,
+    Subs = _Subs,
+    Options = _Options,
+    DataRowsAtCompileTime = ((Supers!=Dynamic) && (Subs!=Dynamic)) ? 1 + Supers + Subs : Dynamic
+  };
+  typedef Matrix<Scalar,DataRowsAtCompileTime,ColsAtCompileTime,Options&RowMajor?RowMajor:ColMajor> CoefficientsType;
+};
+
+template<typename _Scalar, int Rows, int Cols, int Supers, int Subs, int Options>
+class BandMatrix : public BandMatrixBase<BandMatrix<_Scalar,Rows,Cols,Supers,Subs,Options> >
+{
+  public:
+
+    typedef typename internal::traits<BandMatrix>::Scalar Scalar;
+    typedef typename internal::traits<BandMatrix>::Index Index;
+    typedef typename internal::traits<BandMatrix>::CoefficientsType CoefficientsType;
+
+    inline BandMatrix(Index rows=Rows, Index cols=Cols, Index supers=Supers, Index subs=Subs)
+      : m_coeffs(1+supers+subs,cols),
+        m_rows(rows), m_supers(supers), m_subs(subs)
+    {
+    }
+
+    /** \returns the number of columns */
+    inline Index rows() const { return m_rows.value(); }
+
+    /** \returns the number of rows */
+    inline Index cols() const { return m_coeffs.cols(); }
+
+    /** \returns the number of super diagonals */
+    inline Index supers() const { return m_supers.value(); }
+
+    /** \returns the number of sub diagonals */
+    inline Index subs() const { return m_subs.value(); }
+
+    inline const CoefficientsType& coeffs() const { return m_coeffs; }
+    inline CoefficientsType& coeffs() { return m_coeffs; }
+
+  protected:
+
+    CoefficientsType m_coeffs;
+    internal::variable_if_dynamic<Index, Rows>   m_rows;
+    internal::variable_if_dynamic<Index, Supers> m_supers;
+    internal::variable_if_dynamic<Index, Subs>   m_subs;
+};
+
+template<typename _CoefficientsType,int _Rows, int _Cols, int _Supers, int _Subs,int _Options>
+class BandMatrixWrapper;
+
+template<typename _CoefficientsType,int _Rows, int _Cols, int _Supers, int _Subs,int _Options>
+struct traits<BandMatrixWrapper<_CoefficientsType,_Rows,_Cols,_Supers,_Subs,_Options> >
+{
+  typedef typename _CoefficientsType::Scalar Scalar;
+  typedef typename _CoefficientsType::StorageKind StorageKind;
+  typedef typename _CoefficientsType::Index Index;
+  enum {
+    CoeffReadCost = internal::traits<_CoefficientsType>::CoeffReadCost,
+    RowsAtCompileTime = _Rows,
+    ColsAtCompileTime = _Cols,
+    MaxRowsAtCompileTime = _Rows,
+    MaxColsAtCompileTime = _Cols,
+    Flags = LvalueBit,
+    Supers = _Supers,
+    Subs = _Subs,
+    Options = _Options,
+    DataRowsAtCompileTime = ((Supers!=Dynamic) && (Subs!=Dynamic)) ? 1 + Supers + Subs : Dynamic
+  };
+  typedef _CoefficientsType CoefficientsType;
+};
+
+template<typename _CoefficientsType,int _Rows, int _Cols, int _Supers, int _Subs,int _Options>
+class BandMatrixWrapper : public BandMatrixBase<BandMatrixWrapper<_CoefficientsType,_Rows,_Cols,_Supers,_Subs,_Options> >
+{
+  public:
+
+    typedef typename internal::traits<BandMatrixWrapper>::Scalar Scalar;
+    typedef typename internal::traits<BandMatrixWrapper>::CoefficientsType CoefficientsType;
+    typedef typename internal::traits<BandMatrixWrapper>::Index Index;
+
+    inline BandMatrixWrapper(const CoefficientsType& coeffs, Index rows=_Rows, Index cols=_Cols, Index supers=_Supers, Index subs=_Subs)
+      : m_coeffs(coeffs),
+        m_rows(rows), m_supers(supers), m_subs(subs)
+    {
+      EIGEN_UNUSED_VARIABLE(cols);
+      //internal::assert(coeffs.cols()==cols() && (supers()+subs()+1)==coeffs.rows());
+    }
+
+    /** \returns the number of columns */
+    inline Index rows() const { return m_rows.value(); }
+
+    /** \returns the number of rows */
+    inline Index cols() const { return m_coeffs.cols(); }
+
+    /** \returns the number of super diagonals */
+    inline Index supers() const { return m_supers.value(); }
+
+    /** \returns the number of sub diagonals */
+    inline Index subs() const { return m_subs.value(); }
+
+    inline const CoefficientsType& coeffs() const { return m_coeffs; }
+
+  protected:
+
+    const CoefficientsType& m_coeffs;
+    internal::variable_if_dynamic<Index, _Rows>   m_rows;
+    internal::variable_if_dynamic<Index, _Supers> m_supers;
+    internal::variable_if_dynamic<Index, _Subs>   m_subs;
+};
+
+/**
+  * \class TridiagonalMatrix
+  * \ingroup Core_Module
+  *
+  * \brief Represents a tridiagonal matrix with a compact banded storage
+  *
+  * \param _Scalar Numeric type, i.e. float, double, int
+  * \param Size Number of rows and cols, or \b Dynamic
+  * \param _Options Can be 0 or \b SelfAdjoint
+  *
+  * \sa class BandMatrix
+  */
+template<typename Scalar, int Size, int Options>
+class TridiagonalMatrix : public BandMatrix<Scalar,Size,Size,Options&SelfAdjoint?0:1,1,Options|RowMajor>
+{
+    typedef BandMatrix<Scalar,Size,Size,Options&SelfAdjoint?0:1,1,Options|RowMajor> Base;
+    typedef typename Base::Index Index;
+  public:
+    TridiagonalMatrix(Index size = Size) : Base(size,size,Options&SelfAdjoint?0:1,1) {}
+
+    inline typename Base::template DiagonalIntReturnType<1>::Type super()
+    { return Base::template diagonal<1>(); }
+    inline const typename Base::template DiagonalIntReturnType<1>::Type super() const
+    { return Base::template diagonal<1>(); }
+    inline typename Base::template DiagonalIntReturnType<-1>::Type sub()
+    { return Base::template diagonal<-1>(); }
+    inline const typename Base::template DiagonalIntReturnType<-1>::Type sub() const
+    { return Base::template diagonal<-1>(); }
+  protected:
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BANDMATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/PermutationMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/PermutationMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/PermutationMatrix.h	(revision 2476)
@@ -0,0 +1,722 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PERMUTATIONMATRIX_H
+#define EIGEN_PERMUTATIONMATRIX_H
+
+namespace Eigen { 
+
+template<int RowCol,typename IndicesType,typename MatrixType, typename StorageKind> class PermutedImpl;
+
+/** \class PermutationBase
+  * \ingroup Core_Module
+  *
+  * \brief Base class for permutations
+  *
+  * \param Derived the derived class
+  *
+  * This class is the base class for all expressions representing a permutation matrix,
+  * internally stored as a vector of integers.
+  * The convention followed here is that if \f$ \sigma \f$ is a permutation, the corresponding permutation matrix
+  * \f$ P_\sigma \f$ is such that if \f$ (e_1,\ldots,e_p) \f$ is the canonical basis, we have:
+  *  \f[ P_\sigma(e_i) = e_{\sigma(i)}. \f]
+  * This convention ensures that for any two permutations \f$ \sigma, \tau \f$, we have:
+  *  \f[ P_{\sigma\circ\tau} = P_\sigma P_\tau. \f]
+  *
+  * Permutation matrices are square and invertible.
+  *
+  * Notice that in addition to the member functions and operators listed here, there also are non-member
+  * operator* to multiply any kind of permutation object with any kind of matrix expression (MatrixBase)
+  * on either side.
+  *
+  * \sa class PermutationMatrix, class PermutationWrapper
+  */
+
+namespace internal {
+
+template<typename PermutationType, typename MatrixType, int Side, bool Transposed=false>
+struct permut_matrix_product_retval;
+template<typename PermutationType, typename MatrixType, int Side, bool Transposed=false>
+struct permut_sparsematrix_product_retval;
+enum PermPermProduct_t {PermPermProduct};
+
+} // end namespace internal
+
+template<typename Derived>
+class PermutationBase : public EigenBase<Derived>
+{
+    typedef internal::traits<Derived> Traits;
+    typedef EigenBase<Derived> Base;
+  public:
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef typename Traits::IndicesType IndicesType;
+    enum {
+      Flags = Traits::Flags,
+      CoeffReadCost = Traits::CoeffReadCost,
+      RowsAtCompileTime = Traits::RowsAtCompileTime,
+      ColsAtCompileTime = Traits::ColsAtCompileTime,
+      MaxRowsAtCompileTime = Traits::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = Traits::MaxColsAtCompileTime
+    };
+    typedef typename Traits::Scalar Scalar;
+    typedef typename Traits::Index Index;
+    typedef Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime,0,MaxRowsAtCompileTime,MaxColsAtCompileTime>
+            DenseMatrixType;
+    typedef PermutationMatrix<IndicesType::SizeAtCompileTime,IndicesType::MaxSizeAtCompileTime,Index>
+            PlainPermutationType;
+    using Base::derived;
+    #endif
+
+    /** Copies the other permutation into *this */
+    template<typename OtherDerived>
+    Derived& operator=(const PermutationBase<OtherDerived>& other)
+    {
+      indices() = other.indices();
+      return derived();
+    }
+
+    /** Assignment from the Transpositions \a tr */
+    template<typename OtherDerived>
+    Derived& operator=(const TranspositionsBase<OtherDerived>& tr)
+    {
+      setIdentity(tr.size());
+      for(Index k=size()-1; k>=0; --k)
+        applyTranspositionOnTheRight(k,tr.coeff(k));
+      return derived();
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    Derived& operator=(const PermutationBase& other)
+    {
+      indices() = other.indices();
+      return derived();
+    }
+    #endif
+
+    /** \returns the number of rows */
+    inline Index rows() const { return Index(indices().size()); }
+
+    /** \returns the number of columns */
+    inline Index cols() const { return Index(indices().size()); }
+
+    /** \returns the size of a side of the respective square matrix, i.e., the number of indices */
+    inline Index size() const { return Index(indices().size()); }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename DenseDerived>
+    void evalTo(MatrixBase<DenseDerived>& other) const
+    {
+      other.setZero();
+      for (int i=0; i<rows();++i)
+        other.coeffRef(indices().coeff(i),i) = typename DenseDerived::Scalar(1);
+    }
+    #endif
+
+    /** \returns a Matrix object initialized from this permutation matrix. Notice that it
+      * is inefficient to return this Matrix object by value. For efficiency, favor using
+      * the Matrix constructor taking EigenBase objects.
+      */
+    DenseMatrixType toDenseMatrix() const
+    {
+      return derived();
+    }
+
+    /** const version of indices(). */
+    const IndicesType& indices() const { return derived().indices(); }
+    /** \returns a reference to the stored array representing the permutation. */
+    IndicesType& indices() { return derived().indices(); }
+
+    /** Resizes to given size.
+      */
+    inline void resize(Index newSize)
+    {
+      indices().resize(newSize);
+    }
+
+    /** Sets *this to be the identity permutation matrix */
+    void setIdentity()
+    {
+      for(Index i = 0; i < size(); ++i)
+        indices().coeffRef(i) = i;
+    }
+
+    /** Sets *this to be the identity permutation matrix of given size.
+      */
+    void setIdentity(Index newSize)
+    {
+      resize(newSize);
+      setIdentity();
+    }
+
+    /** Multiplies *this by the transposition \f$(ij)\f$ on the left.
+      *
+      * \returns a reference to *this.
+      *
+      * \warning This is much slower than applyTranspositionOnTheRight(int,int):
+      * this has linear complexity and requires a lot of branching.
+      *
+      * \sa applyTranspositionOnTheRight(int,int)
+      */
+    Derived& applyTranspositionOnTheLeft(Index i, Index j)
+    {
+      eigen_assert(i>=0 && j>=0 && i<size() && j<size());
+      for(Index k = 0; k < size(); ++k)
+      {
+        if(indices().coeff(k) == i) indices().coeffRef(k) = j;
+        else if(indices().coeff(k) == j) indices().coeffRef(k) = i;
+      }
+      return derived();
+    }
+
+    /** Multiplies *this by the transposition \f$(ij)\f$ on the right.
+      *
+      * \returns a reference to *this.
+      *
+      * This is a fast operation, it only consists in swapping two indices.
+      *
+      * \sa applyTranspositionOnTheLeft(int,int)
+      */
+    Derived& applyTranspositionOnTheRight(Index i, Index j)
+    {
+      eigen_assert(i>=0 && j>=0 && i<size() && j<size());
+      std::swap(indices().coeffRef(i), indices().coeffRef(j));
+      return derived();
+    }
+
+    /** \returns the inverse permutation matrix.
+      *
+      * \note \note_try_to_help_rvo
+      */
+    inline Transpose<PermutationBase> inverse() const
+    { return derived(); }
+    /** \returns the tranpose permutation matrix.
+      *
+      * \note \note_try_to_help_rvo
+      */
+    inline Transpose<PermutationBase> transpose() const
+    { return derived(); }
+
+    /**** multiplication helpers to hopefully get RVO ****/
+
+  
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+  protected:
+    template<typename OtherDerived>
+    void assignTranspose(const PermutationBase<OtherDerived>& other)
+    {
+      for (int i=0; i<rows();++i) indices().coeffRef(other.indices().coeff(i)) = i;
+    }
+    template<typename Lhs,typename Rhs>
+    void assignProduct(const Lhs& lhs, const Rhs& rhs)
+    {
+      eigen_assert(lhs.cols() == rhs.rows());
+      for (int i=0; i<rows();++i) indices().coeffRef(i) = lhs.indices().coeff(rhs.indices().coeff(i));
+    }
+#endif
+
+  public:
+
+    /** \returns the product permutation matrix.
+      *
+      * \note \note_try_to_help_rvo
+      */
+    template<typename Other>
+    inline PlainPermutationType operator*(const PermutationBase<Other>& other) const
+    { return PlainPermutationType(internal::PermPermProduct, derived(), other.derived()); }
+
+    /** \returns the product of a permutation with another inverse permutation.
+      *
+      * \note \note_try_to_help_rvo
+      */
+    template<typename Other>
+    inline PlainPermutationType operator*(const Transpose<PermutationBase<Other> >& other) const
+    { return PlainPermutationType(internal::PermPermProduct, *this, other.eval()); }
+
+    /** \returns the product of an inverse permutation with another permutation.
+      *
+      * \note \note_try_to_help_rvo
+      */
+    template<typename Other> friend
+    inline PlainPermutationType operator*(const Transpose<PermutationBase<Other> >& other, const PermutationBase& perm)
+    { return PlainPermutationType(internal::PermPermProduct, other.eval(), perm); }
+    
+    /** \returns the determinant of the permutation matrix, which is either 1 or -1 depending on the parity of the permutation.
+      *
+      * This function is O(\c n) procedure allocating a buffer of \c n booleans.
+      */
+    Index determinant() const
+    {
+      Index res = 1;
+      Index n = size();
+      Matrix<bool,RowsAtCompileTime,1,0,MaxRowsAtCompileTime> mask(n);
+      mask.fill(false);
+      Index r = 0;
+      while(r < n)
+      {
+        // search for the next seed
+        while(r<n && mask[r]) r++;
+        if(r>=n)
+          break;
+        // we got one, let's follow it until we are back to the seed
+        Index k0 = r++;
+        mask.coeffRef(k0) = true;
+        for(Index k=indices().coeff(k0); k!=k0; k=indices().coeff(k))
+        {
+          mask.coeffRef(k) = true;
+          res = -res;
+        }
+      }
+      return res;
+    }
+
+  protected:
+
+};
+
+/** \class PermutationMatrix
+  * \ingroup Core_Module
+  *
+  * \brief Permutation matrix
+  *
+  * \param SizeAtCompileTime the number of rows/cols, or Dynamic
+  * \param MaxSizeAtCompileTime the maximum number of rows/cols, or Dynamic. This optional parameter defaults to SizeAtCompileTime. Most of the time, you should not have to specify it.
+  * \param IndexType the interger type of the indices
+  *
+  * This class represents a permutation matrix, internally stored as a vector of integers.
+  *
+  * \sa class PermutationBase, class PermutationWrapper, class DiagonalMatrix
+  */
+
+namespace internal {
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
+struct traits<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType> >
+ : traits<Matrix<IndexType,SizeAtCompileTime,SizeAtCompileTime,0,MaxSizeAtCompileTime,MaxSizeAtCompileTime> >
+{
+  typedef IndexType Index;
+  typedef Matrix<IndexType, SizeAtCompileTime, 1, 0, MaxSizeAtCompileTime, 1> IndicesType;
+};
+}
+
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
+class PermutationMatrix : public PermutationBase<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType> >
+{
+    typedef PermutationBase<PermutationMatrix> Base;
+    typedef internal::traits<PermutationMatrix> Traits;
+  public:
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef typename Traits::IndicesType IndicesType;
+    #endif
+
+    inline PermutationMatrix()
+    {}
+
+    /** Constructs an uninitialized permutation matrix of given size.
+      */
+    inline PermutationMatrix(int size) : m_indices(size)
+    {}
+
+    /** Copy constructor. */
+    template<typename OtherDerived>
+    inline PermutationMatrix(const PermutationBase<OtherDerived>& other)
+      : m_indices(other.indices()) {}
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** Standard copy constructor. Defined only to prevent a default copy constructor
+      * from hiding the other templated constructor */
+    inline PermutationMatrix(const PermutationMatrix& other) : m_indices(other.indices()) {}
+    #endif
+
+    /** Generic constructor from expression of the indices. The indices
+      * array has the meaning that the permutations sends each integer i to indices[i].
+      *
+      * \warning It is your responsibility to check that the indices array that you passes actually
+      * describes a permutation, i.e., each value between 0 and n-1 occurs exactly once, where n is the
+      * array's size.
+      */
+    template<typename Other>
+    explicit inline PermutationMatrix(const MatrixBase<Other>& a_indices) : m_indices(a_indices)
+    {}
+
+    /** Convert the Transpositions \a tr to a permutation matrix */
+    template<typename Other>
+    explicit PermutationMatrix(const TranspositionsBase<Other>& tr)
+      : m_indices(tr.size())
+    {
+      *this = tr;
+    }
+
+    /** Copies the other permutation into *this */
+    template<typename Other>
+    PermutationMatrix& operator=(const PermutationBase<Other>& other)
+    {
+      m_indices = other.indices();
+      return *this;
+    }
+
+    /** Assignment from the Transpositions \a tr */
+    template<typename Other>
+    PermutationMatrix& operator=(const TranspositionsBase<Other>& tr)
+    {
+      return Base::operator=(tr.derived());
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    PermutationMatrix& operator=(const PermutationMatrix& other)
+    {
+      m_indices = other.m_indices;
+      return *this;
+    }
+    #endif
+
+    /** const version of indices(). */
+    const IndicesType& indices() const { return m_indices; }
+    /** \returns a reference to the stored array representing the permutation. */
+    IndicesType& indices() { return m_indices; }
+
+
+    /**** multiplication helpers to hopefully get RVO ****/
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename Other>
+    PermutationMatrix(const Transpose<PermutationBase<Other> >& other)
+      : m_indices(other.nestedPermutation().size())
+    {
+      for (int i=0; i<m_indices.size();++i) m_indices.coeffRef(other.nestedPermutation().indices().coeff(i)) = i;
+    }
+    template<typename Lhs,typename Rhs>
+    PermutationMatrix(internal::PermPermProduct_t, const Lhs& lhs, const Rhs& rhs)
+      : m_indices(lhs.indices().size())
+    {
+      Base::assignProduct(lhs,rhs);
+    }
+#endif
+
+  protected:
+
+    IndicesType m_indices;
+};
+
+
+namespace internal {
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType, int _PacketAccess>
+struct traits<Map<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType>,_PacketAccess> >
+ : traits<Matrix<IndexType,SizeAtCompileTime,SizeAtCompileTime,0,MaxSizeAtCompileTime,MaxSizeAtCompileTime> >
+{
+  typedef IndexType Index;
+  typedef Map<const Matrix<IndexType, SizeAtCompileTime, 1, 0, MaxSizeAtCompileTime, 1>, _PacketAccess> IndicesType;
+};
+}
+
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType, int _PacketAccess>
+class Map<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType>,_PacketAccess>
+  : public PermutationBase<Map<PermutationMatrix<SizeAtCompileTime, MaxSizeAtCompileTime, IndexType>,_PacketAccess> >
+{
+    typedef PermutationBase<Map> Base;
+    typedef internal::traits<Map> Traits;
+  public:
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef typename Traits::IndicesType IndicesType;
+    typedef typename IndicesType::Scalar Index;
+    #endif
+
+    inline Map(const Index* indicesPtr)
+      : m_indices(indicesPtr)
+    {}
+
+    inline Map(const Index* indicesPtr, Index size)
+      : m_indices(indicesPtr,size)
+    {}
+
+    /** Copies the other permutation into *this */
+    template<typename Other>
+    Map& operator=(const PermutationBase<Other>& other)
+    { return Base::operator=(other.derived()); }
+
+    /** Assignment from the Transpositions \a tr */
+    template<typename Other>
+    Map& operator=(const TranspositionsBase<Other>& tr)
+    { return Base::operator=(tr.derived()); }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    Map& operator=(const Map& other)
+    {
+      m_indices = other.m_indices;
+      return *this;
+    }
+    #endif
+
+    /** const version of indices(). */
+    const IndicesType& indices() const { return m_indices; }
+    /** \returns a reference to the stored array representing the permutation. */
+    IndicesType& indices() { return m_indices; }
+
+  protected:
+
+    IndicesType m_indices;
+};
+
+/** \class PermutationWrapper
+  * \ingroup Core_Module
+  *
+  * \brief Class to view a vector of integers as a permutation matrix
+  *
+  * \param _IndicesType the type of the vector of integer (can be any compatible expression)
+  *
+  * This class allows to view any vector expression of integers as a permutation matrix.
+  *
+  * \sa class PermutationBase, class PermutationMatrix
+  */
+
+struct PermutationStorage {};
+
+template<typename _IndicesType> class TranspositionsWrapper;
+namespace internal {
+template<typename _IndicesType>
+struct traits<PermutationWrapper<_IndicesType> >
+{
+  typedef PermutationStorage StorageKind;
+  typedef typename _IndicesType::Scalar Scalar;
+  typedef typename _IndicesType::Scalar Index;
+  typedef _IndicesType IndicesType;
+  enum {
+    RowsAtCompileTime = _IndicesType::SizeAtCompileTime,
+    ColsAtCompileTime = _IndicesType::SizeAtCompileTime,
+    MaxRowsAtCompileTime = IndicesType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = IndicesType::MaxColsAtCompileTime,
+    Flags = 0,
+    CoeffReadCost = _IndicesType::CoeffReadCost
+  };
+};
+}
+
+template<typename _IndicesType>
+class PermutationWrapper : public PermutationBase<PermutationWrapper<_IndicesType> >
+{
+    typedef PermutationBase<PermutationWrapper> Base;
+    typedef internal::traits<PermutationWrapper> Traits;
+  public:
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef typename Traits::IndicesType IndicesType;
+    #endif
+
+    inline PermutationWrapper(const IndicesType& a_indices)
+      : m_indices(a_indices)
+    {}
+
+    /** const version of indices(). */
+    const typename internal::remove_all<typename IndicesType::Nested>::type&
+    indices() const { return m_indices; }
+
+  protected:
+
+    typename IndicesType::Nested m_indices;
+};
+
+/** \returns the matrix with the permutation applied to the columns.
+  */
+template<typename Derived, typename PermutationDerived>
+inline const internal::permut_matrix_product_retval<PermutationDerived, Derived, OnTheRight>
+operator*(const MatrixBase<Derived>& matrix,
+          const PermutationBase<PermutationDerived> &permutation)
+{
+  return internal::permut_matrix_product_retval
+           <PermutationDerived, Derived, OnTheRight>
+           (permutation.derived(), matrix.derived());
+}
+
+/** \returns the matrix with the permutation applied to the rows.
+  */
+template<typename Derived, typename PermutationDerived>
+inline const internal::permut_matrix_product_retval
+               <PermutationDerived, Derived, OnTheLeft>
+operator*(const PermutationBase<PermutationDerived> &permutation,
+          const MatrixBase<Derived>& matrix)
+{
+  return internal::permut_matrix_product_retval
+           <PermutationDerived, Derived, OnTheLeft>
+           (permutation.derived(), matrix.derived());
+}
+
+namespace internal {
+
+template<typename PermutationType, typename MatrixType, int Side, bool Transposed>
+struct traits<permut_matrix_product_retval<PermutationType, MatrixType, Side, Transposed> >
+{
+  typedef typename MatrixType::PlainObject ReturnType;
+};
+
+template<typename PermutationType, typename MatrixType, int Side, bool Transposed>
+struct permut_matrix_product_retval
+ : public ReturnByValue<permut_matrix_product_retval<PermutationType, MatrixType, Side, Transposed> >
+{
+    typedef typename remove_all<typename MatrixType::Nested>::type MatrixTypeNestedCleaned;
+    typedef typename MatrixType::Index Index;
+
+    permut_matrix_product_retval(const PermutationType& perm, const MatrixType& matrix)
+      : m_permutation(perm), m_matrix(matrix)
+    {}
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+
+    template<typename Dest> inline void evalTo(Dest& dst) const
+    {
+      const Index n = Side==OnTheLeft ? rows() : cols();
+      // FIXME we need an is_same for expression that is not sensitive to constness. For instance
+      // is_same_xpr<Block<const Matrix>, Block<Matrix> >::value should be true.
+      const typename Dest::Scalar *dst_data = internal::extract_data(dst);
+      if(    is_same<MatrixTypeNestedCleaned,Dest>::value
+          && blas_traits<MatrixTypeNestedCleaned>::HasUsableDirectAccess
+          && blas_traits<Dest>::HasUsableDirectAccess
+          && dst_data!=0 && dst_data == extract_data(m_matrix))
+      {
+        // apply the permutation inplace
+        Matrix<bool,PermutationType::RowsAtCompileTime,1,0,PermutationType::MaxRowsAtCompileTime> mask(m_permutation.size());
+        mask.fill(false);
+        Index r = 0;
+        while(r < m_permutation.size())
+        {
+          // search for the next seed
+          while(r<m_permutation.size() && mask[r]) r++;
+          if(r>=m_permutation.size())
+            break;
+          // we got one, let's follow it until we are back to the seed
+          Index k0 = r++;
+          Index kPrev = k0;
+          mask.coeffRef(k0) = true;
+          for(Index k=m_permutation.indices().coeff(k0); k!=k0; k=m_permutation.indices().coeff(k))
+          {
+                  Block<Dest, Side==OnTheLeft ? 1 : Dest::RowsAtCompileTime, Side==OnTheRight ? 1 : Dest::ColsAtCompileTime>(dst, k)
+            .swap(Block<Dest, Side==OnTheLeft ? 1 : Dest::RowsAtCompileTime, Side==OnTheRight ? 1 : Dest::ColsAtCompileTime>
+                       (dst,((Side==OnTheLeft) ^ Transposed) ? k0 : kPrev));
+
+            mask.coeffRef(k) = true;
+            kPrev = k;
+          }
+        }
+      }
+      else
+      {
+        for(int i = 0; i < n; ++i)
+        {
+          Block<Dest, Side==OnTheLeft ? 1 : Dest::RowsAtCompileTime, Side==OnTheRight ? 1 : Dest::ColsAtCompileTime>
+               (dst, ((Side==OnTheLeft) ^ Transposed) ? m_permutation.indices().coeff(i) : i)
+
+          =
+
+          Block<const MatrixTypeNestedCleaned,Side==OnTheLeft ? 1 : MatrixType::RowsAtCompileTime,Side==OnTheRight ? 1 : MatrixType::ColsAtCompileTime>
+               (m_matrix, ((Side==OnTheRight) ^ Transposed) ? m_permutation.indices().coeff(i) : i);
+        }
+      }
+    }
+
+  protected:
+    const PermutationType& m_permutation;
+    typename MatrixType::Nested m_matrix;
+};
+
+/* Template partial specialization for transposed/inverse permutations */
+
+template<typename Derived>
+struct traits<Transpose<PermutationBase<Derived> > >
+ : traits<Derived>
+{};
+
+} // end namespace internal
+
+template<typename Derived>
+class Transpose<PermutationBase<Derived> >
+  : public EigenBase<Transpose<PermutationBase<Derived> > >
+{
+    typedef Derived PermutationType;
+    typedef typename PermutationType::IndicesType IndicesType;
+    typedef typename PermutationType::PlainPermutationType PlainPermutationType;
+  public:
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef internal::traits<PermutationType> Traits;
+    typedef typename Derived::DenseMatrixType DenseMatrixType;
+    enum {
+      Flags = Traits::Flags,
+      CoeffReadCost = Traits::CoeffReadCost,
+      RowsAtCompileTime = Traits::RowsAtCompileTime,
+      ColsAtCompileTime = Traits::ColsAtCompileTime,
+      MaxRowsAtCompileTime = Traits::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = Traits::MaxColsAtCompileTime
+    };
+    typedef typename Traits::Scalar Scalar;
+    #endif
+
+    Transpose(const PermutationType& p) : m_permutation(p) {}
+
+    inline int rows() const { return m_permutation.rows(); }
+    inline int cols() const { return m_permutation.cols(); }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename DenseDerived>
+    void evalTo(MatrixBase<DenseDerived>& other) const
+    {
+      other.setZero();
+      for (int i=0; i<rows();++i)
+        other.coeffRef(i, m_permutation.indices().coeff(i)) = typename DenseDerived::Scalar(1);
+    }
+    #endif
+
+    /** \return the equivalent permutation matrix */
+    PlainPermutationType eval() const { return *this; }
+
+    DenseMatrixType toDenseMatrix() const { return *this; }
+
+    /** \returns the matrix with the inverse permutation applied to the columns.
+      */
+    template<typename OtherDerived> friend
+    inline const internal::permut_matrix_product_retval<PermutationType, OtherDerived, OnTheRight, true>
+    operator*(const MatrixBase<OtherDerived>& matrix, const Transpose& trPerm)
+    {
+      return internal::permut_matrix_product_retval<PermutationType, OtherDerived, OnTheRight, true>(trPerm.m_permutation, matrix.derived());
+    }
+
+    /** \returns the matrix with the inverse permutation applied to the rows.
+      */
+    template<typename OtherDerived>
+    inline const internal::permut_matrix_product_retval<PermutationType, OtherDerived, OnTheLeft, true>
+    operator*(const MatrixBase<OtherDerived>& matrix) const
+    {
+      return internal::permut_matrix_product_retval<PermutationType, OtherDerived, OnTheLeft, true>(m_permutation, matrix.derived());
+    }
+
+    const PermutationType& nestedPermutation() const { return m_permutation; }
+
+  protected:
+    const PermutationType& m_permutation;
+};
+
+template<typename Derived>
+const PermutationWrapper<const Derived> MatrixBase<Derived>::asPermutation() const
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PERMUTATIONMATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/TriangularMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/TriangularMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/TriangularMatrix.h	(revision 2476)
@@ -0,0 +1,839 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRIANGULARMATRIX_H
+#define EIGEN_TRIANGULARMATRIX_H
+
+namespace Eigen { 
+
+namespace internal {
+  
+template<int Side, typename TriangularType, typename Rhs> struct triangular_solve_retval;
+  
+}
+
+/** \internal
+  *
+  * \class TriangularBase
+  * \ingroup Core_Module
+  *
+  * \brief Base class for triangular part in a matrix
+  */
+template<typename Derived> class TriangularBase : public EigenBase<Derived>
+{
+  public:
+
+    enum {
+      Mode = internal::traits<Derived>::Mode,
+      CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
+      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+      MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime
+    };
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::DenseMatrixType DenseMatrixType;
+    typedef DenseMatrixType DenseType;
+
+    inline TriangularBase() { eigen_assert(!((Mode&UnitDiag) && (Mode&ZeroDiag))); }
+
+    inline Index rows() const { return derived().rows(); }
+    inline Index cols() const { return derived().cols(); }
+    inline Index outerStride() const { return derived().outerStride(); }
+    inline Index innerStride() const { return derived().innerStride(); }
+
+    inline Scalar coeff(Index row, Index col) const  { return derived().coeff(row,col); }
+    inline Scalar& coeffRef(Index row, Index col) { return derived().coeffRef(row,col); }
+
+    /** \see MatrixBase::copyCoeff(row,col)
+      */
+    template<typename Other>
+    EIGEN_STRONG_INLINE void copyCoeff(Index row, Index col, Other& other)
+    {
+      derived().coeffRef(row, col) = other.coeff(row, col);
+    }
+
+    inline Scalar operator()(Index row, Index col) const
+    {
+      check_coordinates(row, col);
+      return coeff(row,col);
+    }
+    inline Scalar& operator()(Index row, Index col)
+    {
+      check_coordinates(row, col);
+      return coeffRef(row,col);
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
+    inline Derived& derived() { return *static_cast<Derived*>(this); }
+    #endif // not EIGEN_PARSED_BY_DOXYGEN
+
+    template<typename DenseDerived>
+    void evalTo(MatrixBase<DenseDerived> &other) const;
+    template<typename DenseDerived>
+    void evalToLazy(MatrixBase<DenseDerived> &other) const;
+
+    DenseMatrixType toDenseMatrix() const
+    {
+      DenseMatrixType res(rows(), cols());
+      evalToLazy(res);
+      return res;
+    }
+
+  protected:
+
+    void check_coordinates(Index row, Index col) const
+    {
+      EIGEN_ONLY_USED_FOR_DEBUG(row);
+      EIGEN_ONLY_USED_FOR_DEBUG(col);
+      eigen_assert(col>=0 && col<cols() && row>=0 && row<rows());
+      const int mode = int(Mode) & ~SelfAdjoint;
+      EIGEN_ONLY_USED_FOR_DEBUG(mode);
+      eigen_assert((mode==Upper && col>=row)
+                || (mode==Lower && col<=row)
+                || ((mode==StrictlyUpper || mode==UnitUpper) && col>row)
+                || ((mode==StrictlyLower || mode==UnitLower) && col<row));
+    }
+
+    #ifdef EIGEN_INTERNAL_DEBUGGING
+    void check_coordinates_internal(Index row, Index col) const
+    {
+      check_coordinates(row, col);
+    }
+    #else
+    void check_coordinates_internal(Index , Index ) const {}
+    #endif
+
+};
+
+/** \class TriangularView
+  * \ingroup Core_Module
+  *
+  * \brief Base class for triangular part in a matrix
+  *
+  * \param MatrixType the type of the object in which we are taking the triangular part
+  * \param Mode the kind of triangular matrix expression to construct. Can be #Upper,
+  *             #Lower, #UnitUpper, #UnitLower, #StrictlyUpper, or #StrictlyLower.
+  *             This is in fact a bit field; it must have either #Upper or #Lower, 
+  *             and additionnaly it may have #UnitDiag or #ZeroDiag or neither.
+  *
+  * This class represents a triangular part of a matrix, not necessarily square. Strictly speaking, for rectangular
+  * matrices one should speak of "trapezoid" parts. This class is the return type
+  * of MatrixBase::triangularView() and most of the time this is the only way it is used.
+  *
+  * \sa MatrixBase::triangularView()
+  */
+namespace internal {
+template<typename MatrixType, unsigned int _Mode>
+struct traits<TriangularView<MatrixType, _Mode> > : traits<MatrixType>
+{
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type MatrixTypeNestedNonRef;
+  typedef typename remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
+  typedef MatrixType ExpressionType;
+  typedef typename MatrixType::PlainObject DenseMatrixType;
+  enum {
+    Mode = _Mode,
+    Flags = (MatrixTypeNestedCleaned::Flags & (HereditaryBits) & (~(PacketAccessBit | DirectAccessBit | LinearAccessBit))) | Mode,
+    CoeffReadCost = MatrixTypeNestedCleaned::CoeffReadCost
+  };
+};
+}
+
+template<int Mode, bool LhsIsTriangular,
+         typename Lhs, bool LhsIsVector,
+         typename Rhs, bool RhsIsVector>
+struct TriangularProduct;
+
+template<typename _MatrixType, unsigned int _Mode> class TriangularView
+  : public TriangularBase<TriangularView<_MatrixType, _Mode> >
+{
+  public:
+
+    typedef TriangularBase<TriangularView> Base;
+    typedef typename internal::traits<TriangularView>::Scalar Scalar;
+
+    typedef _MatrixType MatrixType;
+    typedef typename internal::traits<TriangularView>::DenseMatrixType DenseMatrixType;
+    typedef DenseMatrixType PlainObject;
+
+  protected:
+    typedef typename internal::traits<TriangularView>::MatrixTypeNested MatrixTypeNested;
+    typedef typename internal::traits<TriangularView>::MatrixTypeNestedNonRef MatrixTypeNestedNonRef;
+    typedef typename internal::traits<TriangularView>::MatrixTypeNestedCleaned MatrixTypeNestedCleaned;
+
+    typedef typename internal::remove_all<typename MatrixType::ConjugateReturnType>::type MatrixConjugateReturnType;
+    
+  public:
+    using Base::evalToLazy;
+  
+
+    typedef typename internal::traits<TriangularView>::StorageKind StorageKind;
+    typedef typename internal::traits<TriangularView>::Index Index;
+
+    enum {
+      Mode = _Mode,
+      TransposeMode = (Mode & Upper ? Lower : 0)
+                    | (Mode & Lower ? Upper : 0)
+                    | (Mode & (UnitDiag))
+                    | (Mode & (ZeroDiag))
+    };
+
+    inline TriangularView(const MatrixType& matrix) : m_matrix(matrix)
+    {}
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+    inline Index outerStride() const { return m_matrix.outerStride(); }
+    inline Index innerStride() const { return m_matrix.innerStride(); }
+
+    /** \sa MatrixBase::operator+=() */
+    template<typename Other> TriangularView&  operator+=(const DenseBase<Other>& other) { return *this = m_matrix + other.derived(); }
+    /** \sa MatrixBase::operator-=() */
+    template<typename Other> TriangularView&  operator-=(const DenseBase<Other>& other) { return *this = m_matrix - other.derived(); }
+    /** \sa MatrixBase::operator*=() */
+    TriangularView&  operator*=(const typename internal::traits<MatrixType>::Scalar& other) { return *this = m_matrix * other; }
+    /** \sa MatrixBase::operator/=() */
+    TriangularView&  operator/=(const typename internal::traits<MatrixType>::Scalar& other) { return *this = m_matrix / other; }
+
+    /** \sa MatrixBase::fill() */
+    void fill(const Scalar& value) { setConstant(value); }
+    /** \sa MatrixBase::setConstant() */
+    TriangularView& setConstant(const Scalar& value)
+    { return *this = MatrixType::Constant(rows(), cols(), value); }
+    /** \sa MatrixBase::setZero() */
+    TriangularView& setZero() { return setConstant(Scalar(0)); }
+    /** \sa MatrixBase::setOnes() */
+    TriangularView& setOnes() { return setConstant(Scalar(1)); }
+
+    /** \sa MatrixBase::coeff()
+      * \warning the coordinates must fit into the referenced triangular part
+      */
+    inline Scalar coeff(Index row, Index col) const
+    {
+      Base::check_coordinates_internal(row, col);
+      return m_matrix.coeff(row, col);
+    }
+
+    /** \sa MatrixBase::coeffRef()
+      * \warning the coordinates must fit into the referenced triangular part
+      */
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      Base::check_coordinates_internal(row, col);
+      return m_matrix.const_cast_derived().coeffRef(row, col);
+    }
+
+    const MatrixTypeNestedCleaned& nestedExpression() const { return m_matrix; }
+    MatrixTypeNestedCleaned& nestedExpression() { return *const_cast<MatrixTypeNestedCleaned*>(&m_matrix); }
+
+    /** Assigns a triangular matrix to a triangular part of a dense matrix */
+    template<typename OtherDerived>
+    TriangularView& operator=(const TriangularBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    TriangularView& operator=(const MatrixBase<OtherDerived>& other);
+
+    TriangularView& operator=(const TriangularView& other)
+    { return *this = other.nestedExpression(); }
+
+    template<typename OtherDerived>
+    void lazyAssign(const TriangularBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    void lazyAssign(const MatrixBase<OtherDerived>& other);
+
+    /** \sa MatrixBase::conjugate() */
+    inline TriangularView<MatrixConjugateReturnType,Mode> conjugate()
+    { return m_matrix.conjugate(); }
+    /** \sa MatrixBase::conjugate() const */
+    inline const TriangularView<MatrixConjugateReturnType,Mode> conjugate() const
+    { return m_matrix.conjugate(); }
+
+    /** \sa MatrixBase::adjoint() const */
+    inline const TriangularView<const typename MatrixType::AdjointReturnType,TransposeMode> adjoint() const
+    { return m_matrix.adjoint(); }
+
+    /** \sa MatrixBase::transpose() */
+    inline TriangularView<Transpose<MatrixType>,TransposeMode> transpose()
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+      return m_matrix.const_cast_derived().transpose();
+    }
+    /** \sa MatrixBase::transpose() const */
+    inline const TriangularView<Transpose<MatrixType>,TransposeMode> transpose() const
+    {
+      return m_matrix.transpose();
+    }
+
+    /** Efficient triangular matrix times vector/matrix product */
+    template<typename OtherDerived>
+    TriangularProduct<Mode, true, MatrixType, false, OtherDerived, OtherDerived::ColsAtCompileTime==1>
+    operator*(const MatrixBase<OtherDerived>& rhs) const
+    {
+      return TriangularProduct
+              <Mode, true, MatrixType, false, OtherDerived, OtherDerived::ColsAtCompileTime==1>
+              (m_matrix, rhs.derived());
+    }
+
+    /** Efficient vector/matrix times triangular matrix product */
+    template<typename OtherDerived> friend
+    TriangularProduct<Mode, false, OtherDerived, OtherDerived::RowsAtCompileTime==1, MatrixType, false>
+    operator*(const MatrixBase<OtherDerived>& lhs, const TriangularView& rhs)
+    {
+      return TriangularProduct
+              <Mode, false, OtherDerived, OtherDerived::RowsAtCompileTime==1, MatrixType, false>
+              (lhs.derived(),rhs.m_matrix);
+    }
+
+    #ifdef EIGEN2_SUPPORT
+    template<typename OtherDerived>
+    struct eigen2_product_return_type
+    {
+      typedef typename TriangularView<MatrixType,Mode>::DenseMatrixType DenseMatrixType;
+      typedef typename OtherDerived::PlainObject::DenseType OtherPlainObject;
+      typedef typename ProductReturnType<DenseMatrixType, OtherPlainObject>::Type ProdRetType;
+      typedef typename ProdRetType::PlainObject type;
+    };
+    template<typename OtherDerived>
+    const typename eigen2_product_return_type<OtherDerived>::type
+    operator*(const EigenBase<OtherDerived>& rhs) const
+    {
+      typename OtherDerived::PlainObject::DenseType rhsPlainObject;
+      rhs.evalTo(rhsPlainObject);
+      return this->toDenseMatrix() * rhsPlainObject;
+    }
+    template<typename OtherMatrixType>
+    bool isApprox(const TriangularView<OtherMatrixType, Mode>& other, typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision()) const
+    {
+      return this->toDenseMatrix().isApprox(other.toDenseMatrix(), precision);
+    }
+    template<typename OtherDerived>
+    bool isApprox(const MatrixBase<OtherDerived>& other, typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision()) const
+    {
+      return this->toDenseMatrix().isApprox(other, precision);
+    }
+    #endif // EIGEN2_SUPPORT
+
+    template<int Side, typename Other>
+    inline const internal::triangular_solve_retval<Side,TriangularView, Other>
+    solve(const MatrixBase<Other>& other) const;
+
+    template<int Side, typename OtherDerived>
+    void solveInPlace(const MatrixBase<OtherDerived>& other) const;
+
+    template<typename Other>
+    inline const internal::triangular_solve_retval<OnTheLeft,TriangularView, Other> 
+    solve(const MatrixBase<Other>& other) const
+    { return solve<OnTheLeft>(other); }
+
+    template<typename OtherDerived>
+    void solveInPlace(const MatrixBase<OtherDerived>& other) const
+    { return solveInPlace<OnTheLeft>(other); }
+
+    const SelfAdjointView<MatrixTypeNestedNonRef,Mode> selfadjointView() const
+    {
+      EIGEN_STATIC_ASSERT((Mode&UnitDiag)==0,PROGRAMMING_ERROR);
+      return SelfAdjointView<MatrixTypeNestedNonRef,Mode>(m_matrix);
+    }
+    SelfAdjointView<MatrixTypeNestedNonRef,Mode> selfadjointView()
+    {
+      EIGEN_STATIC_ASSERT((Mode&UnitDiag)==0,PROGRAMMING_ERROR);
+      return SelfAdjointView<MatrixTypeNestedNonRef,Mode>(m_matrix);
+    }
+
+    template<typename OtherDerived>
+    void swap(TriangularBase<OtherDerived> const & other)
+    {
+      TriangularView<SwapWrapper<MatrixType>,Mode>(const_cast<MatrixType&>(m_matrix)).lazyAssign(other.derived());
+    }
+
+    template<typename OtherDerived>
+    void swap(MatrixBase<OtherDerived> const & other)
+    {
+      SwapWrapper<MatrixType> swaper(const_cast<MatrixType&>(m_matrix));
+      TriangularView<SwapWrapper<MatrixType>,Mode>(swaper).lazyAssign(other.derived());
+    }
+
+    Scalar determinant() const
+    {
+      if (Mode & UnitDiag)
+        return 1;
+      else if (Mode & ZeroDiag)
+        return 0;
+      else
+        return m_matrix.diagonal().prod();
+    }
+    
+    // TODO simplify the following:
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE TriangularView& operator=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
+    {
+      setZero();
+      return assignProduct(other.derived(),1);
+    }
+    
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE TriangularView& operator+=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
+    {
+      return assignProduct(other.derived(),1);
+    }
+    
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE TriangularView& operator-=(const ProductBase<ProductDerived, Lhs,Rhs>& other)
+    {
+      return assignProduct(other.derived(),-1);
+    }
+    
+    
+    template<typename ProductDerived>
+    EIGEN_STRONG_INLINE TriangularView& operator=(const ScaledProduct<ProductDerived>& other)
+    {
+      setZero();
+      return assignProduct(other.derived(),other.alpha());
+    }
+    
+    template<typename ProductDerived>
+    EIGEN_STRONG_INLINE TriangularView& operator+=(const ScaledProduct<ProductDerived>& other)
+    {
+      return assignProduct(other.derived(),other.alpha());
+    }
+    
+    template<typename ProductDerived>
+    EIGEN_STRONG_INLINE TriangularView& operator-=(const ScaledProduct<ProductDerived>& other)
+    {
+      return assignProduct(other.derived(),-other.alpha());
+    }
+    
+  protected:
+    
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE TriangularView& assignProduct(const ProductBase<ProductDerived, Lhs,Rhs>& prod, const Scalar& alpha);
+    
+    template<int Mode, bool LhsIsTriangular,
+         typename Lhs, bool LhsIsVector,
+         typename Rhs, bool RhsIsVector>
+    EIGEN_STRONG_INLINE TriangularView& assignProduct(const TriangularProduct<Mode, LhsIsTriangular, Lhs, LhsIsVector, Rhs, RhsIsVector>& prod, const Scalar& alpha)
+    {
+      lazyAssign(alpha*prod.eval());
+      return *this;
+    }
+
+    MatrixTypeNested m_matrix;
+};
+
+/***************************************************************************
+* Implementation of triangular evaluation/assignment
+***************************************************************************/
+
+namespace internal {
+
+template<typename Derived1, typename Derived2, unsigned int Mode, int UnrollCount, bool ClearOpposite>
+struct triangular_assignment_selector
+{
+  enum {
+    col = (UnrollCount-1) / Derived1::RowsAtCompileTime,
+    row = (UnrollCount-1) % Derived1::RowsAtCompileTime
+  };
+  
+  typedef typename Derived1::Scalar Scalar;
+
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    triangular_assignment_selector<Derived1, Derived2, Mode, UnrollCount-1, ClearOpposite>::run(dst, src);
+
+    eigen_assert( Mode == Upper || Mode == Lower
+            || Mode == StrictlyUpper || Mode == StrictlyLower
+            || Mode == UnitUpper || Mode == UnitLower);
+    if((Mode == Upper && row <= col)
+    || (Mode == Lower && row >= col)
+    || (Mode == StrictlyUpper && row < col)
+    || (Mode == StrictlyLower && row > col)
+    || (Mode == UnitUpper && row < col)
+    || (Mode == UnitLower && row > col))
+      dst.copyCoeff(row, col, src);
+    else if(ClearOpposite)
+    {
+      if (Mode&UnitDiag && row==col)
+        dst.coeffRef(row, col) = Scalar(1);
+      else
+        dst.coeffRef(row, col) = Scalar(0);
+    }
+  }
+};
+
+// prevent buggy user code from causing an infinite recursion
+template<typename Derived1, typename Derived2, unsigned int Mode, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, Mode, 0, ClearOpposite>
+{
+  static inline void run(Derived1 &, const Derived2 &) {}
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, Upper, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  typedef typename Derived1::Scalar Scalar;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      Index maxi = (std::min)(j, dst.rows()-1);
+      for(Index i = 0; i <= maxi; ++i)
+        dst.copyCoeff(i, j, src);
+      if (ClearOpposite)
+        for(Index i = maxi+1; i < dst.rows(); ++i)
+          dst.coeffRef(i, j) = Scalar(0);
+    }
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, Lower, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      for(Index i = j; i < dst.rows(); ++i)
+        dst.copyCoeff(i, j, src);
+      Index maxi = (std::min)(j, dst.rows());
+      if (ClearOpposite)
+        for(Index i = 0; i < maxi; ++i)
+          dst.coeffRef(i, j) = static_cast<typename Derived1::Scalar>(0);
+    }
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, StrictlyUpper, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  typedef typename Derived1::Scalar Scalar;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      Index maxi = (std::min)(j, dst.rows());
+      for(Index i = 0; i < maxi; ++i)
+        dst.copyCoeff(i, j, src);
+      if (ClearOpposite)
+        for(Index i = maxi; i < dst.rows(); ++i)
+          dst.coeffRef(i, j) = Scalar(0);
+    }
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, StrictlyLower, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      for(Index i = j+1; i < dst.rows(); ++i)
+        dst.copyCoeff(i, j, src);
+      Index maxi = (std::min)(j, dst.rows()-1);
+      if (ClearOpposite)
+        for(Index i = 0; i <= maxi; ++i)
+          dst.coeffRef(i, j) = static_cast<typename Derived1::Scalar>(0);
+    }
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, UnitUpper, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      Index maxi = (std::min)(j, dst.rows());
+      for(Index i = 0; i < maxi; ++i)
+        dst.copyCoeff(i, j, src);
+      if (ClearOpposite)
+      {
+        for(Index i = maxi+1; i < dst.rows(); ++i)
+          dst.coeffRef(i, j) = 0;
+      }
+    }
+    dst.diagonal().setOnes();
+  }
+};
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, UnitLower, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      Index maxi = (std::min)(j, dst.rows());
+      for(Index i = maxi+1; i < dst.rows(); ++i)
+        dst.copyCoeff(i, j, src);
+      if (ClearOpposite)
+      {
+        for(Index i = 0; i < maxi; ++i)
+          dst.coeffRef(i, j) = 0;
+      }
+    }
+    dst.diagonal().setOnes();
+  }
+};
+
+} // end namespace internal
+
+// FIXME should we keep that possibility
+template<typename MatrixType, unsigned int Mode>
+template<typename OtherDerived>
+inline TriangularView<MatrixType, Mode>&
+TriangularView<MatrixType, Mode>::operator=(const MatrixBase<OtherDerived>& other)
+{
+  if(OtherDerived::Flags & EvalBeforeAssigningBit)
+  {
+    typename internal::plain_matrix_type<OtherDerived>::type other_evaluated(other.rows(), other.cols());
+    other_evaluated.template triangularView<Mode>().lazyAssign(other.derived());
+    lazyAssign(other_evaluated);
+  }
+  else
+    lazyAssign(other.derived());
+  return *this;
+}
+
+// FIXME should we keep that possibility
+template<typename MatrixType, unsigned int Mode>
+template<typename OtherDerived>
+void TriangularView<MatrixType, Mode>::lazyAssign(const MatrixBase<OtherDerived>& other)
+{
+  enum {
+    unroll = MatrixType::SizeAtCompileTime != Dynamic
+          && internal::traits<OtherDerived>::CoeffReadCost != Dynamic
+          && MatrixType::SizeAtCompileTime*internal::traits<OtherDerived>::CoeffReadCost/2 <= EIGEN_UNROLLING_LIMIT
+  };
+  eigen_assert(m_matrix.rows() == other.rows() && m_matrix.cols() == other.cols());
+
+  internal::triangular_assignment_selector
+    <MatrixType, OtherDerived, int(Mode),
+    unroll ? int(MatrixType::SizeAtCompileTime) : Dynamic,
+    false // do not change the opposite triangular part
+    >::run(m_matrix.const_cast_derived(), other.derived());
+}
+
+
+
+template<typename MatrixType, unsigned int Mode>
+template<typename OtherDerived>
+inline TriangularView<MatrixType, Mode>&
+TriangularView<MatrixType, Mode>::operator=(const TriangularBase<OtherDerived>& other)
+{
+  eigen_assert(Mode == int(OtherDerived::Mode));
+  if(internal::traits<OtherDerived>::Flags & EvalBeforeAssigningBit)
+  {
+    typename OtherDerived::DenseMatrixType other_evaluated(other.rows(), other.cols());
+    other_evaluated.template triangularView<Mode>().lazyAssign(other.derived().nestedExpression());
+    lazyAssign(other_evaluated);
+  }
+  else
+    lazyAssign(other.derived().nestedExpression());
+  return *this;
+}
+
+template<typename MatrixType, unsigned int Mode>
+template<typename OtherDerived>
+void TriangularView<MatrixType, Mode>::lazyAssign(const TriangularBase<OtherDerived>& other)
+{
+  enum {
+    unroll = MatrixType::SizeAtCompileTime != Dynamic
+                   && internal::traits<OtherDerived>::CoeffReadCost != Dynamic
+                   && MatrixType::SizeAtCompileTime * internal::traits<OtherDerived>::CoeffReadCost / 2
+                        <= EIGEN_UNROLLING_LIMIT
+  };
+  eigen_assert(m_matrix.rows() == other.rows() && m_matrix.cols() == other.cols());
+
+  internal::triangular_assignment_selector
+    <MatrixType, OtherDerived, int(Mode),
+    unroll ? int(MatrixType::SizeAtCompileTime) : Dynamic,
+    false // preserve the opposite triangular part
+    >::run(m_matrix.const_cast_derived(), other.derived().nestedExpression());
+}
+
+/***************************************************************************
+* Implementation of TriangularBase methods
+***************************************************************************/
+
+/** Assigns a triangular or selfadjoint matrix to a dense matrix.
+  * If the matrix is triangular, the opposite part is set to zero. */
+template<typename Derived>
+template<typename DenseDerived>
+void TriangularBase<Derived>::evalTo(MatrixBase<DenseDerived> &other) const
+{
+  if(internal::traits<Derived>::Flags & EvalBeforeAssigningBit)
+  {
+    typename internal::plain_matrix_type<Derived>::type other_evaluated(rows(), cols());
+    evalToLazy(other_evaluated);
+    other.derived().swap(other_evaluated);
+  }
+  else
+    evalToLazy(other.derived());
+}
+
+/** Assigns a triangular or selfadjoint matrix to a dense matrix.
+  * If the matrix is triangular, the opposite part is set to zero. */
+template<typename Derived>
+template<typename DenseDerived>
+void TriangularBase<Derived>::evalToLazy(MatrixBase<DenseDerived> &other) const
+{
+  enum {
+    unroll = DenseDerived::SizeAtCompileTime != Dynamic
+                   && internal::traits<Derived>::CoeffReadCost != Dynamic
+                   && DenseDerived::SizeAtCompileTime * internal::traits<Derived>::CoeffReadCost / 2
+                        <= EIGEN_UNROLLING_LIMIT
+  };
+  other.derived().resize(this->rows(), this->cols());
+
+  internal::triangular_assignment_selector
+    <DenseDerived, typename internal::traits<Derived>::MatrixTypeNestedCleaned, Derived::Mode,
+    unroll ? int(DenseDerived::SizeAtCompileTime) : Dynamic,
+    true // clear the opposite triangular part
+    >::run(other.derived(), derived().nestedExpression());
+}
+
+/***************************************************************************
+* Implementation of TriangularView methods
+***************************************************************************/
+
+/***************************************************************************
+* Implementation of MatrixBase methods
+***************************************************************************/
+
+#ifdef EIGEN2_SUPPORT
+
+// implementation of part<>(), including the SelfAdjoint case.
+
+namespace internal {
+template<typename MatrixType, unsigned int Mode>
+struct eigen2_part_return_type
+{
+  typedef TriangularView<MatrixType, Mode> type;
+};
+
+template<typename MatrixType>
+struct eigen2_part_return_type<MatrixType, SelfAdjoint>
+{
+  typedef SelfAdjointView<MatrixType, Upper> type;
+};
+}
+
+/** \deprecated use MatrixBase::triangularView() */
+template<typename Derived>
+template<unsigned int Mode>
+const typename internal::eigen2_part_return_type<Derived, Mode>::type MatrixBase<Derived>::part() const
+{
+  return derived();
+}
+
+/** \deprecated use MatrixBase::triangularView() */
+template<typename Derived>
+template<unsigned int Mode>
+typename internal::eigen2_part_return_type<Derived, Mode>::type MatrixBase<Derived>::part()
+{
+  return derived();
+}
+#endif
+
+/**
+  * \returns an expression of a triangular view extracted from the current matrix
+  *
+  * The parameter \a Mode can have the following values: \c #Upper, \c #StrictlyUpper, \c #UnitUpper,
+  * \c #Lower, \c #StrictlyLower, \c #UnitLower.
+  *
+  * Example: \include MatrixBase_extract.cpp
+  * Output: \verbinclude MatrixBase_extract.out
+  *
+  * \sa class TriangularView
+  */
+template<typename Derived>
+template<unsigned int Mode>
+typename MatrixBase<Derived>::template TriangularViewReturnType<Mode>::Type
+MatrixBase<Derived>::triangularView()
+{
+  return derived();
+}
+
+/** This is the const version of MatrixBase::triangularView() */
+template<typename Derived>
+template<unsigned int Mode>
+typename MatrixBase<Derived>::template ConstTriangularViewReturnType<Mode>::Type
+MatrixBase<Derived>::triangularView() const
+{
+  return derived();
+}
+
+/** \returns true if *this is approximately equal to an upper triangular matrix,
+  *          within the precision given by \a prec.
+  *
+  * \sa isLowerTriangular()
+  */
+template<typename Derived>
+bool MatrixBase<Derived>::isUpperTriangular(const RealScalar& prec) const
+{
+  using std::abs;
+  RealScalar maxAbsOnUpperPart = static_cast<RealScalar>(-1);
+  for(Index j = 0; j < cols(); ++j)
+  {
+    Index maxi = (std::min)(j, rows()-1);
+    for(Index i = 0; i <= maxi; ++i)
+    {
+      RealScalar absValue = abs(coeff(i,j));
+      if(absValue > maxAbsOnUpperPart) maxAbsOnUpperPart = absValue;
+    }
+  }
+  RealScalar threshold = maxAbsOnUpperPart * prec;
+  for(Index j = 0; j < cols(); ++j)
+    for(Index i = j+1; i < rows(); ++i)
+      if(abs(coeff(i, j)) > threshold) return false;
+  return true;
+}
+
+/** \returns true if *this is approximately equal to a lower triangular matrix,
+  *          within the precision given by \a prec.
+  *
+  * \sa isUpperTriangular()
+  */
+template<typename Derived>
+bool MatrixBase<Derived>::isLowerTriangular(const RealScalar& prec) const
+{
+  using std::abs;
+  RealScalar maxAbsOnLowerPart = static_cast<RealScalar>(-1);
+  for(Index j = 0; j < cols(); ++j)
+    for(Index i = j; i < rows(); ++i)
+    {
+      RealScalar absValue = abs(coeff(i,j));
+      if(absValue > maxAbsOnLowerPart) maxAbsOnLowerPart = absValue;
+    }
+  RealScalar threshold = maxAbsOnLowerPart * prec;
+  for(Index j = 1; j < cols(); ++j)
+  {
+    Index maxi = (std::min)(j, rows()-1);
+    for(Index i = 0; i < maxi; ++i)
+      if(abs(coeff(i, j)) > threshold) return false;
+  }
+  return true;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRIANGULARMATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CommaInitializer.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CommaInitializer.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CommaInitializer.h	(revision 2476)
@@ -0,0 +1,157 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMMAINITIALIZER_H
+#define EIGEN_COMMAINITIALIZER_H
+
+namespace Eigen { 
+
+/** \class CommaInitializer
+  * \ingroup Core_Module
+  *
+  * \brief Helper class used by the comma initializer operator
+  *
+  * This class is internally used to implement the comma initializer feature. It is
+  * the return type of MatrixBase::operator<<, and most of the time this is the only
+  * way it is used.
+  *
+  * \sa \ref MatrixBaseCommaInitRef "MatrixBase::operator<<", CommaInitializer::finished()
+  */
+template<typename XprType>
+struct CommaInitializer
+{
+  typedef typename XprType::Scalar Scalar;
+  typedef typename XprType::Index Index;
+
+  inline CommaInitializer(XprType& xpr, const Scalar& s)
+    : m_xpr(xpr), m_row(0), m_col(1), m_currentBlockRows(1)
+  {
+    m_xpr.coeffRef(0,0) = s;
+  }
+
+  template<typename OtherDerived>
+  inline CommaInitializer(XprType& xpr, const DenseBase<OtherDerived>& other)
+    : m_xpr(xpr), m_row(0), m_col(other.cols()), m_currentBlockRows(other.rows())
+  {
+    m_xpr.block(0, 0, other.rows(), other.cols()) = other;
+  }
+
+  /* Copy/Move constructor which transfers ownership. This is crucial in 
+   * absence of return value optimization to avoid assertions during destruction. */
+  // FIXME in C++11 mode this could be replaced by a proper RValue constructor
+  inline CommaInitializer(const CommaInitializer& o)
+  : m_xpr(o.m_xpr), m_row(o.m_row), m_col(o.m_col), m_currentBlockRows(o.m_currentBlockRows) {
+    // Mark original object as finished. In absence of R-value references we need to const_cast:
+    const_cast<CommaInitializer&>(o).m_row = m_xpr.rows();
+    const_cast<CommaInitializer&>(o).m_col = m_xpr.cols();
+    const_cast<CommaInitializer&>(o).m_currentBlockRows = 0;
+  }
+
+  /* inserts a scalar value in the target matrix */
+  CommaInitializer& operator,(const Scalar& s)
+  {
+    if (m_col==m_xpr.cols())
+    {
+      m_row+=m_currentBlockRows;
+      m_col = 0;
+      m_currentBlockRows = 1;
+      eigen_assert(m_row<m_xpr.rows()
+        && "Too many rows passed to comma initializer (operator<<)");
+    }
+    eigen_assert(m_col<m_xpr.cols()
+      && "Too many coefficients passed to comma initializer (operator<<)");
+    eigen_assert(m_currentBlockRows==1);
+    m_xpr.coeffRef(m_row, m_col++) = s;
+    return *this;
+  }
+
+  /* inserts a matrix expression in the target matrix */
+  template<typename OtherDerived>
+  CommaInitializer& operator,(const DenseBase<OtherDerived>& other)
+  {
+    if(other.rows()==0)
+    {
+      m_col += other.cols();
+      return *this;
+    }
+    if (m_col==m_xpr.cols())
+    {
+      m_row+=m_currentBlockRows;
+      m_col = 0;
+      m_currentBlockRows = other.rows();
+      eigen_assert(m_row+m_currentBlockRows<=m_xpr.rows()
+        && "Too many rows passed to comma initializer (operator<<)");
+    }
+    eigen_assert((m_col<m_xpr.cols() || (m_xpr.cols()==0 && m_col==0))
+      && "Too many coefficients passed to comma initializer (operator<<)");
+    eigen_assert(m_currentBlockRows==other.rows());
+    if (OtherDerived::SizeAtCompileTime != Dynamic)
+      m_xpr.template block<OtherDerived::RowsAtCompileTime != Dynamic ? OtherDerived::RowsAtCompileTime : 1,
+                              OtherDerived::ColsAtCompileTime != Dynamic ? OtherDerived::ColsAtCompileTime : 1>
+                    (m_row, m_col) = other;
+    else
+      m_xpr.block(m_row, m_col, other.rows(), other.cols()) = other;
+    m_col += other.cols();
+    return *this;
+  }
+
+  inline ~CommaInitializer()
+  {
+    eigen_assert((m_row+m_currentBlockRows) == m_xpr.rows()
+         && m_col == m_xpr.cols()
+         && "Too few coefficients passed to comma initializer (operator<<)");
+  }
+
+  /** \returns the built matrix once all its coefficients have been set.
+    * Calling finished is 100% optional. Its purpose is to write expressions
+    * like this:
+    * \code
+    * quaternion.fromRotationMatrix((Matrix3f() << axis0, axis1, axis2).finished());
+    * \endcode
+    */
+  inline XprType& finished() { return m_xpr; }
+
+  XprType& m_xpr;   // target expression
+  Index m_row;              // current row id
+  Index m_col;              // current col id
+  Index m_currentBlockRows; // current block height
+};
+
+/** \anchor MatrixBaseCommaInitRef
+  * Convenient operator to set the coefficients of a matrix.
+  *
+  * The coefficients must be provided in a row major order and exactly match
+  * the size of the matrix. Otherwise an assertion is raised.
+  *
+  * Example: \include MatrixBase_set.cpp
+  * Output: \verbinclude MatrixBase_set.out
+  * 
+  * \note According the c++ standard, the argument expressions of this comma initializer are evaluated in arbitrary order.
+  *
+  * \sa CommaInitializer::finished(), class CommaInitializer
+  */
+template<typename Derived>
+inline CommaInitializer<Derived> DenseBase<Derived>::operator<< (const Scalar& s)
+{
+  return CommaInitializer<Derived>(*static_cast<Derived*>(this), s);
+}
+
+/** \sa operator<<(const Scalar&) */
+template<typename Derived>
+template<typename OtherDerived>
+inline CommaInitializer<Derived>
+DenseBase<Derived>::operator<<(const DenseBase<OtherDerived>& other)
+{
+  return CommaInitializer<Derived>(*static_cast<Derived *>(this), other);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMMAINITIALIZER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DiagonalMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DiagonalMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DiagonalMatrix.h	(revision 2476)
@@ -0,0 +1,313 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DIAGONALMATRIX_H
+#define EIGEN_DIAGONALMATRIX_H
+
+namespace Eigen { 
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename Derived>
+class DiagonalBase : public EigenBase<Derived>
+{
+  public:
+    typedef typename internal::traits<Derived>::DiagonalVectorType DiagonalVectorType;
+    typedef typename DiagonalVectorType::Scalar Scalar;
+    typedef typename DiagonalVectorType::RealScalar RealScalar;
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+
+    enum {
+      RowsAtCompileTime = DiagonalVectorType::SizeAtCompileTime,
+      ColsAtCompileTime = DiagonalVectorType::SizeAtCompileTime,
+      MaxRowsAtCompileTime = DiagonalVectorType::MaxSizeAtCompileTime,
+      MaxColsAtCompileTime = DiagonalVectorType::MaxSizeAtCompileTime,
+      IsVectorAtCompileTime = 0,
+      Flags = 0
+    };
+
+    typedef Matrix<Scalar, RowsAtCompileTime, ColsAtCompileTime, 0, MaxRowsAtCompileTime, MaxColsAtCompileTime> DenseMatrixType;
+    typedef DenseMatrixType DenseType;
+    typedef DiagonalMatrix<Scalar,DiagonalVectorType::SizeAtCompileTime,DiagonalVectorType::MaxSizeAtCompileTime> PlainObject;
+
+    inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
+    inline Derived& derived() { return *static_cast<Derived*>(this); }
+
+    DenseMatrixType toDenseMatrix() const { return derived(); }
+    template<typename DenseDerived>
+    void evalTo(MatrixBase<DenseDerived> &other) const;
+    template<typename DenseDerived>
+    inline void addTo(MatrixBase<DenseDerived> &other) const
+    { other.diagonal() += diagonal(); }
+    template<typename DenseDerived>
+    inline void subTo(MatrixBase<DenseDerived> &other) const
+    { other.diagonal() -= diagonal(); }
+
+    inline const DiagonalVectorType& diagonal() const { return derived().diagonal(); }
+    inline DiagonalVectorType& diagonal() { return derived().diagonal(); }
+
+    inline Index rows() const { return diagonal().size(); }
+    inline Index cols() const { return diagonal().size(); }
+
+    /** \returns the diagonal matrix product of \c *this by the matrix \a matrix.
+      */
+    template<typename MatrixDerived>
+    const DiagonalProduct<MatrixDerived, Derived, OnTheLeft>
+    operator*(const MatrixBase<MatrixDerived> &matrix) const
+    {
+      return DiagonalProduct<MatrixDerived, Derived, OnTheLeft>(matrix.derived(), derived());
+    }
+
+    inline const DiagonalWrapper<const CwiseUnaryOp<internal::scalar_inverse_op<Scalar>, const DiagonalVectorType> >
+    inverse() const
+    {
+      return diagonal().cwiseInverse();
+    }
+    
+    inline const DiagonalWrapper<const CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DiagonalVectorType> >
+    operator*(const Scalar& scalar) const
+    {
+      return diagonal() * scalar;
+    }
+    friend inline const DiagonalWrapper<const CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DiagonalVectorType> >
+    operator*(const Scalar& scalar, const DiagonalBase& other)
+    {
+      return other.diagonal() * scalar;
+    }
+    
+    #ifdef EIGEN2_SUPPORT
+    template<typename OtherDerived>
+    bool isApprox(const DiagonalBase<OtherDerived>& other, typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision()) const
+    {
+      return diagonal().isApprox(other.diagonal(), precision);
+    }
+    template<typename OtherDerived>
+    bool isApprox(const MatrixBase<OtherDerived>& other, typename NumTraits<Scalar>::Real precision = NumTraits<Scalar>::dummy_precision()) const
+    {
+      return toDenseMatrix().isApprox(other, precision);
+    }
+    #endif
+};
+
+template<typename Derived>
+template<typename DenseDerived>
+inline void DiagonalBase<Derived>::evalTo(MatrixBase<DenseDerived> &other) const
+{
+  other.setZero();
+  other.diagonal() = diagonal();
+}
+#endif
+
+/** \class DiagonalMatrix
+  * \ingroup Core_Module
+  *
+  * \brief Represents a diagonal matrix with its storage
+  *
+  * \param _Scalar the type of coefficients
+  * \param SizeAtCompileTime the dimension of the matrix, or Dynamic
+  * \param MaxSizeAtCompileTime the dimension of the matrix, or Dynamic. This parameter is optional and defaults
+  *        to SizeAtCompileTime. Most of the time, you do not need to specify it.
+  *
+  * \sa class DiagonalWrapper
+  */
+
+namespace internal {
+template<typename _Scalar, int SizeAtCompileTime, int MaxSizeAtCompileTime>
+struct traits<DiagonalMatrix<_Scalar,SizeAtCompileTime,MaxSizeAtCompileTime> >
+ : traits<Matrix<_Scalar,SizeAtCompileTime,SizeAtCompileTime,0,MaxSizeAtCompileTime,MaxSizeAtCompileTime> >
+{
+  typedef Matrix<_Scalar,SizeAtCompileTime,1,0,MaxSizeAtCompileTime,1> DiagonalVectorType;
+  typedef Dense StorageKind;
+  typedef DenseIndex Index;
+  enum {
+    Flags = LvalueBit
+  };
+};
+}
+template<typename _Scalar, int SizeAtCompileTime, int MaxSizeAtCompileTime>
+class DiagonalMatrix
+  : public DiagonalBase<DiagonalMatrix<_Scalar,SizeAtCompileTime,MaxSizeAtCompileTime> >
+{
+  public:
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef typename internal::traits<DiagonalMatrix>::DiagonalVectorType DiagonalVectorType;
+    typedef const DiagonalMatrix& Nested;
+    typedef _Scalar Scalar;
+    typedef typename internal::traits<DiagonalMatrix>::StorageKind StorageKind;
+    typedef typename internal::traits<DiagonalMatrix>::Index Index;
+    #endif
+
+  protected:
+
+    DiagonalVectorType m_diagonal;
+
+  public:
+
+    /** const version of diagonal(). */
+    inline const DiagonalVectorType& diagonal() const { return m_diagonal; }
+    /** \returns a reference to the stored vector of diagonal coefficients. */
+    inline DiagonalVectorType& diagonal() { return m_diagonal; }
+
+    /** Default constructor without initialization */
+    inline DiagonalMatrix() {}
+
+    /** Constructs a diagonal matrix with given dimension  */
+    inline DiagonalMatrix(Index dim) : m_diagonal(dim) {}
+
+    /** 2D constructor. */
+    inline DiagonalMatrix(const Scalar& x, const Scalar& y) : m_diagonal(x,y) {}
+
+    /** 3D constructor. */
+    inline DiagonalMatrix(const Scalar& x, const Scalar& y, const Scalar& z) : m_diagonal(x,y,z) {}
+
+    /** Copy constructor. */
+    template<typename OtherDerived>
+    inline DiagonalMatrix(const DiagonalBase<OtherDerived>& other) : m_diagonal(other.diagonal()) {}
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** copy constructor. prevent a default copy constructor from hiding the other templated constructor */
+    inline DiagonalMatrix(const DiagonalMatrix& other) : m_diagonal(other.diagonal()) {}
+    #endif
+
+    /** generic constructor from expression of the diagonal coefficients */
+    template<typename OtherDerived>
+    explicit inline DiagonalMatrix(const MatrixBase<OtherDerived>& other) : m_diagonal(other)
+    {}
+
+    /** Copy operator. */
+    template<typename OtherDerived>
+    DiagonalMatrix& operator=(const DiagonalBase<OtherDerived>& other)
+    {
+      m_diagonal = other.diagonal();
+      return *this;
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    DiagonalMatrix& operator=(const DiagonalMatrix& other)
+    {
+      m_diagonal = other.diagonal();
+      return *this;
+    }
+    #endif
+
+    /** Resizes to given size. */
+    inline void resize(Index size) { m_diagonal.resize(size); }
+    /** Sets all coefficients to zero. */
+    inline void setZero() { m_diagonal.setZero(); }
+    /** Resizes and sets all coefficients to zero. */
+    inline void setZero(Index size) { m_diagonal.setZero(size); }
+    /** Sets this matrix to be the identity matrix of the current size. */
+    inline void setIdentity() { m_diagonal.setOnes(); }
+    /** Sets this matrix to be the identity matrix of the given size. */
+    inline void setIdentity(Index size) { m_diagonal.setOnes(size); }
+};
+
+/** \class DiagonalWrapper
+  * \ingroup Core_Module
+  *
+  * \brief Expression of a diagonal matrix
+  *
+  * \param _DiagonalVectorType the type of the vector of diagonal coefficients
+  *
+  * This class is an expression of a diagonal matrix, but not storing its own vector of diagonal coefficients,
+  * instead wrapping an existing vector expression. It is the return type of MatrixBase::asDiagonal()
+  * and most of the time this is the only way that it is used.
+  *
+  * \sa class DiagonalMatrix, class DiagonalBase, MatrixBase::asDiagonal()
+  */
+
+namespace internal {
+template<typename _DiagonalVectorType>
+struct traits<DiagonalWrapper<_DiagonalVectorType> >
+{
+  typedef _DiagonalVectorType DiagonalVectorType;
+  typedef typename DiagonalVectorType::Scalar Scalar;
+  typedef typename DiagonalVectorType::Index Index;
+  typedef typename DiagonalVectorType::StorageKind StorageKind;
+  enum {
+    RowsAtCompileTime = DiagonalVectorType::SizeAtCompileTime,
+    ColsAtCompileTime = DiagonalVectorType::SizeAtCompileTime,
+    MaxRowsAtCompileTime = DiagonalVectorType::SizeAtCompileTime,
+    MaxColsAtCompileTime = DiagonalVectorType::SizeAtCompileTime,
+    Flags =  traits<DiagonalVectorType>::Flags & LvalueBit
+  };
+};
+}
+
+template<typename _DiagonalVectorType>
+class DiagonalWrapper
+  : public DiagonalBase<DiagonalWrapper<_DiagonalVectorType> >, internal::no_assignment_operator
+{
+  public:
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef _DiagonalVectorType DiagonalVectorType;
+    typedef DiagonalWrapper Nested;
+    #endif
+
+    /** Constructor from expression of diagonal coefficients to wrap. */
+    inline DiagonalWrapper(DiagonalVectorType& a_diagonal) : m_diagonal(a_diagonal) {}
+
+    /** \returns a const reference to the wrapped expression of diagonal coefficients. */
+    const DiagonalVectorType& diagonal() const { return m_diagonal; }
+
+  protected:
+    typename DiagonalVectorType::Nested m_diagonal;
+};
+
+/** \returns a pseudo-expression of a diagonal matrix with *this as vector of diagonal coefficients
+  *
+  * \only_for_vectors
+  *
+  * Example: \include MatrixBase_asDiagonal.cpp
+  * Output: \verbinclude MatrixBase_asDiagonal.out
+  *
+  * \sa class DiagonalWrapper, class DiagonalMatrix, diagonal(), isDiagonal()
+  **/
+template<typename Derived>
+inline const DiagonalWrapper<const Derived>
+MatrixBase<Derived>::asDiagonal() const
+{
+  return derived();
+}
+
+/** \returns true if *this is approximately equal to a diagonal matrix,
+  *          within the precision given by \a prec.
+  *
+  * Example: \include MatrixBase_isDiagonal.cpp
+  * Output: \verbinclude MatrixBase_isDiagonal.out
+  *
+  * \sa asDiagonal()
+  */
+template<typename Derived>
+bool MatrixBase<Derived>::isDiagonal(const RealScalar& prec) const
+{
+  using std::abs;
+  if(cols() != rows()) return false;
+  RealScalar maxAbsOnDiagonal = static_cast<RealScalar>(-1);
+  for(Index j = 0; j < cols(); ++j)
+  {
+    RealScalar absOnDiagonal = abs(coeff(j,j));
+    if(absOnDiagonal > maxAbsOnDiagonal) maxAbsOnDiagonal = absOnDiagonal;
+  }
+  for(Index j = 0; j < cols(); ++j)
+    for(Index i = 0; i < j; ++i)
+    {
+      if(!internal::isMuchSmallerThan(coeff(i, j), maxAbsOnDiagonal, prec)) return false;
+      if(!internal::isMuchSmallerThan(coeff(j, i), maxAbsOnDiagonal, prec)) return false;
+    }
+  return true;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_DIAGONALMATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ForceAlignedAccess.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ForceAlignedAccess.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ForceAlignedAccess.h	(revision 2476)
@@ -0,0 +1,146 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FORCEALIGNEDACCESS_H
+#define EIGEN_FORCEALIGNEDACCESS_H
+
+namespace Eigen {
+
+/** \class ForceAlignedAccess
+  * \ingroup Core_Module
+  *
+  * \brief Enforce aligned packet loads and stores regardless of what is requested
+  *
+  * \param ExpressionType the type of the object of which we are forcing aligned packet access
+  *
+  * This class is the return type of MatrixBase::forceAlignedAccess()
+  * and most of the time this is the only way it is used.
+  *
+  * \sa MatrixBase::forceAlignedAccess()
+  */
+
+namespace internal {
+template<typename ExpressionType>
+struct traits<ForceAlignedAccess<ExpressionType> > : public traits<ExpressionType>
+{};
+}
+
+template<typename ExpressionType> class ForceAlignedAccess
+  : public internal::dense_xpr_base< ForceAlignedAccess<ExpressionType> >::type
+{
+  public:
+
+    typedef typename internal::dense_xpr_base<ForceAlignedAccess>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(ForceAlignedAccess)
+
+    inline ForceAlignedAccess(const ExpressionType& matrix) : m_expression(matrix) {}
+
+    inline Index rows() const { return m_expression.rows(); }
+    inline Index cols() const { return m_expression.cols(); }
+    inline Index outerStride() const { return m_expression.outerStride(); }
+    inline Index innerStride() const { return m_expression.innerStride(); }
+
+    inline const CoeffReturnType coeff(Index row, Index col) const
+    {
+      return m_expression.coeff(row, col);
+    }
+
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      return m_expression.const_cast_derived().coeffRef(row, col);
+    }
+
+    inline const CoeffReturnType coeff(Index index) const
+    {
+      return m_expression.coeff(index);
+    }
+
+    inline Scalar& coeffRef(Index index)
+    {
+      return m_expression.const_cast_derived().coeffRef(index);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index row, Index col) const
+    {
+      return m_expression.template packet<Aligned>(row, col);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index row, Index col, const PacketScalar& x)
+    {
+      m_expression.const_cast_derived().template writePacket<Aligned>(row, col, x);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index index) const
+    {
+      return m_expression.template packet<Aligned>(index);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index index, const PacketScalar& x)
+    {
+      m_expression.const_cast_derived().template writePacket<Aligned>(index, x);
+    }
+
+    operator const ExpressionType&() const { return m_expression; }
+
+  protected:
+    const ExpressionType& m_expression;
+
+  private:
+    ForceAlignedAccess& operator=(const ForceAlignedAccess&);
+};
+
+/** \returns an expression of *this with forced aligned access
+  * \sa forceAlignedAccessIf(),class ForceAlignedAccess
+  */
+template<typename Derived>
+inline const ForceAlignedAccess<Derived>
+MatrixBase<Derived>::forceAlignedAccess() const
+{
+  return ForceAlignedAccess<Derived>(derived());
+}
+
+/** \returns an expression of *this with forced aligned access
+  * \sa forceAlignedAccessIf(), class ForceAlignedAccess
+  */
+template<typename Derived>
+inline ForceAlignedAccess<Derived>
+MatrixBase<Derived>::forceAlignedAccess()
+{
+  return ForceAlignedAccess<Derived>(derived());
+}
+
+/** \returns an expression of *this with forced aligned access if \a Enable is true.
+  * \sa forceAlignedAccess(), class ForceAlignedAccess
+  */
+template<typename Derived>
+template<bool Enable>
+inline typename internal::add_const_on_value_type<typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type>::type
+MatrixBase<Derived>::forceAlignedAccessIf() const
+{
+  return derived();
+}
+
+/** \returns an expression of *this with forced aligned access if \a Enable is true.
+  * \sa forceAlignedAccess(), class ForceAlignedAccess
+  */
+template<typename Derived>
+template<bool Enable>
+inline typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type
+MatrixBase<Derived>::forceAlignedAccessIf()
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_FORCEALIGNEDACCESS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Matrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Matrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Matrix.h	(revision 2476)
@@ -0,0 +1,420 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIX_H
+#define EIGEN_MATRIX_H
+
+namespace Eigen {
+
+/** \class Matrix
+  * \ingroup Core_Module
+  *
+  * \brief The matrix class, also used for vectors and row-vectors
+  *
+  * The %Matrix class is the work-horse for all \em dense (\ref dense "note") matrices and vectors within Eigen.
+  * Vectors are matrices with one column, and row-vectors are matrices with one row.
+  *
+  * The %Matrix class encompasses \em both fixed-size and dynamic-size objects (\ref fixedsize "note").
+  *
+  * The first three template parameters are required:
+  * \tparam _Scalar \anchor matrix_tparam_scalar Numeric type, e.g. float, double, int or std::complex<float>.
+  *                 User defined sclar types are supported as well (see \ref user_defined_scalars "here").
+  * \tparam _Rows Number of rows, or \b Dynamic
+  * \tparam _Cols Number of columns, or \b Dynamic
+  *
+  * The remaining template parameters are optional -- in most cases you don't have to worry about them.
+  * \tparam _Options \anchor matrix_tparam_options A combination of either \b #RowMajor or \b #ColMajor, and of either
+  *                 \b #AutoAlign or \b #DontAlign.
+  *                 The former controls \ref TopicStorageOrders "storage order", and defaults to column-major. The latter controls alignment, which is required
+  *                 for vectorization. It defaults to aligning matrices except for fixed sizes that aren't a multiple of the packet size.
+  * \tparam _MaxRows Maximum number of rows. Defaults to \a _Rows (\ref maxrows "note").
+  * \tparam _MaxCols Maximum number of columns. Defaults to \a _Cols (\ref maxrows "note").
+  *
+  * Eigen provides a number of typedefs covering the usual cases. Here are some examples:
+  *
+  * \li \c Matrix2d is a 2x2 square matrix of doubles (\c Matrix<double, 2, 2>)
+  * \li \c Vector4f is a vector of 4 floats (\c Matrix<float, 4, 1>)
+  * \li \c RowVector3i is a row-vector of 3 ints (\c Matrix<int, 1, 3>)
+  *
+  * \li \c MatrixXf is a dynamic-size matrix of floats (\c Matrix<float, Dynamic, Dynamic>)
+  * \li \c VectorXf is a dynamic-size vector of floats (\c Matrix<float, Dynamic, 1>)
+  *
+  * \li \c Matrix2Xf is a partially fixed-size (dynamic-size) matrix of floats (\c Matrix<float, 2, Dynamic>)
+  * \li \c MatrixX3d is a partially dynamic-size (fixed-size) matrix of double (\c Matrix<double, Dynamic, 3>)
+  *
+  * See \link matrixtypedefs this page \endlink for a complete list of predefined \em %Matrix and \em Vector typedefs.
+  *
+  * You can access elements of vectors and matrices using normal subscripting:
+  *
+  * \code
+  * Eigen::VectorXd v(10);
+  * v[0] = 0.1;
+  * v[1] = 0.2;
+  * v(0) = 0.3;
+  * v(1) = 0.4;
+  *
+  * Eigen::MatrixXi m(10, 10);
+  * m(0, 1) = 1;
+  * m(0, 2) = 2;
+  * m(0, 3) = 3;
+  * \endcode
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_MATRIX_PLUGIN.
+  *
+  * <i><b>Some notes:</b></i>
+  *
+  * <dl>
+  * <dt><b>\anchor dense Dense versus sparse:</b></dt>
+  * <dd>This %Matrix class handles dense, not sparse matrices and vectors. For sparse matrices and vectors, see the Sparse module.
+  *
+  * Dense matrices and vectors are plain usual arrays of coefficients. All the coefficients are stored, in an ordinary contiguous array.
+  * This is unlike Sparse matrices and vectors where the coefficients are stored as a list of nonzero coefficients.</dd>
+  *
+  * <dt><b>\anchor fixedsize Fixed-size versus dynamic-size:</b></dt>
+  * <dd>Fixed-size means that the numbers of rows and columns are known are compile-time. In this case, Eigen allocates the array
+  * of coefficients as a fixed-size array, as a class member. This makes sense for very small matrices, typically up to 4x4, sometimes up
+  * to 16x16. Larger matrices should be declared as dynamic-size even if one happens to know their size at compile-time.
+  *
+  * Dynamic-size means that the numbers of rows or columns are not necessarily known at compile-time. In this case they are runtime
+  * variables, and the array of coefficients is allocated dynamically on the heap.
+  *
+  * Note that \em dense matrices, be they Fixed-size or Dynamic-size, <em>do not</em> expand dynamically in the sense of a std::map.
+  * If you want this behavior, see the Sparse module.</dd>
+  *
+  * <dt><b>\anchor maxrows _MaxRows and _MaxCols:</b></dt>
+  * <dd>In most cases, one just leaves these parameters to the default values.
+  * These parameters mean the maximum size of rows and columns that the matrix may have. They are useful in cases
+  * when the exact numbers of rows and columns are not known are compile-time, but it is known at compile-time that they cannot
+  * exceed a certain value. This happens when taking dynamic-size blocks inside fixed-size matrices: in this case _MaxRows and _MaxCols
+  * are the dimensions of the original matrix, while _Rows and _Cols are Dynamic.</dd>
+  * </dl>
+  *
+  * \see MatrixBase for the majority of the API methods for matrices, \ref TopicClassHierarchy, 
+  * \ref TopicStorageOrders 
+  */
+
+namespace internal {
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct traits<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+{
+  typedef _Scalar Scalar;
+  typedef Dense StorageKind;
+  typedef DenseIndex Index;
+  typedef MatrixXpr XprKind;
+  enum {
+    RowsAtCompileTime = _Rows,
+    ColsAtCompileTime = _Cols,
+    MaxRowsAtCompileTime = _MaxRows,
+    MaxColsAtCompileTime = _MaxCols,
+    Flags = compute_matrix_flags<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::ret,
+    CoeffReadCost = NumTraits<Scalar>::ReadCost,
+    Options = _Options,
+    InnerStrideAtCompileTime = 1,
+    OuterStrideAtCompileTime = (Options&RowMajor) ? ColsAtCompileTime : RowsAtCompileTime
+  };
+};
+}
+
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+class Matrix
+  : public PlainObjectBase<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+{
+  public:
+
+    /** \brief Base class typedef.
+      * \sa PlainObjectBase
+      */
+    typedef PlainObjectBase<Matrix> Base;
+
+    enum { Options = _Options };
+
+    EIGEN_DENSE_PUBLIC_INTERFACE(Matrix)
+
+    typedef typename Base::PlainObject PlainObject;
+
+    using Base::base;
+    using Base::coeffRef;
+
+    /**
+      * \brief Assigns matrices to each other.
+      *
+      * \note This is a special case of the templated operator=. Its purpose is
+      * to prevent a default operator= from hiding the templated operator=.
+      *
+      * \callgraph
+      */
+    EIGEN_STRONG_INLINE Matrix& operator=(const Matrix& other)
+    {
+      return Base::_set(other);
+    }
+
+    /** \internal
+      * \brief Copies the value of the expression \a other into \c *this with automatic resizing.
+      *
+      * *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized),
+      * it will be initialized.
+      *
+      * Note that copying a row-vector into a vector (and conversely) is allowed.
+      * The resizing, if any, is then done in the appropriate way so that row-vectors
+      * remain row-vectors and vectors remain vectors.
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Matrix& operator=(const MatrixBase<OtherDerived>& other)
+    {
+      return Base::_set(other);
+    }
+
+    /* Here, doxygen failed to copy the brief information when using \copydoc */
+
+    /**
+      * \brief Copies the generic expression \a other into *this.
+      * \copydetails DenseBase::operator=(const EigenBase<OtherDerived> &other)
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Matrix& operator=(const EigenBase<OtherDerived> &other)
+    {
+      return Base::operator=(other);
+    }
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Matrix& operator=(const ReturnByValue<OtherDerived>& func)
+    {
+      return Base::operator=(func);
+    }
+
+    /** \brief Default constructor.
+      *
+      * For fixed-size matrices, does nothing.
+      *
+      * For dynamic-size matrices, creates an empty matrix of size 0. Does not allocate any array. Such a matrix
+      * is called a null matrix. This constructor is the unique way to create null matrices: resizing
+      * a matrix to 0 is not supported.
+      *
+      * \sa resize(Index,Index)
+      */
+    EIGEN_STRONG_INLINE Matrix() : Base()
+    {
+      Base::_check_template_params();
+      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+
+    // FIXME is it still needed
+    Matrix(internal::constructor_without_unaligned_array_assert)
+      : Base(internal::constructor_without_unaligned_array_assert())
+    { Base::_check_template_params(); EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED }
+
+#ifdef EIGEN_HAVE_RVALUE_REFERENCES
+    Matrix(Matrix&& other)
+      : Base(std::move(other))
+    {
+      Base::_check_template_params();
+      if (RowsAtCompileTime!=Dynamic && ColsAtCompileTime!=Dynamic)
+        Base::_set_noalias(other);
+    }
+    Matrix& operator=(Matrix&& other)
+    {
+      other.swap(*this);
+      return *this;
+    }
+#endif
+
+    /** \brief Constructs a vector or row-vector with given dimension. \only_for_vectors
+      *
+      * Note that this is only useful for dynamic-size vectors. For fixed-size vectors,
+      * it is redundant to pass the dimension here, so it makes more sense to use the default
+      * constructor Matrix() instead.
+      */
+    EIGEN_STRONG_INLINE explicit Matrix(Index dim)
+      : Base(dim, RowsAtCompileTime == 1 ? 1 : dim, ColsAtCompileTime == 1 ? 1 : dim)
+    {
+      Base::_check_template_params();
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(Matrix)
+      eigen_assert(dim >= 0);
+      eigen_assert(SizeAtCompileTime == Dynamic || SizeAtCompileTime == dim);
+      EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename T0, typename T1>
+    EIGEN_STRONG_INLINE Matrix(const T0& x, const T1& y)
+    {
+      Base::_check_template_params();
+      Base::template _init2<T0,T1>(x, y);
+    }
+    #else
+    /** \brief Constructs an uninitialized matrix with \a rows rows and \a cols columns.
+      *
+      * This is useful for dynamic-size matrices. For fixed-size matrices,
+      * it is redundant to pass these parameters, so one should use the default constructor
+      * Matrix() instead. */
+    Matrix(Index rows, Index cols);
+    /** \brief Constructs an initialized 2D vector with given coefficients */
+    Matrix(const Scalar& x, const Scalar& y);
+    #endif
+
+    /** \brief Constructs an initialized 3D vector with given coefficients */
+    EIGEN_STRONG_INLINE Matrix(const Scalar& x, const Scalar& y, const Scalar& z)
+    {
+      Base::_check_template_params();
+      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Matrix, 3)
+      m_storage.data()[0] = x;
+      m_storage.data()[1] = y;
+      m_storage.data()[2] = z;
+    }
+    /** \brief Constructs an initialized 4D vector with given coefficients */
+    EIGEN_STRONG_INLINE Matrix(const Scalar& x, const Scalar& y, const Scalar& z, const Scalar& w)
+    {
+      Base::_check_template_params();
+      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Matrix, 4)
+      m_storage.data()[0] = x;
+      m_storage.data()[1] = y;
+      m_storage.data()[2] = z;
+      m_storage.data()[3] = w;
+    }
+
+    explicit Matrix(const Scalar *data);
+
+    /** \brief Constructor copying the value of the expression \a other */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Matrix(const MatrixBase<OtherDerived>& other)
+             : Base(other.rows() * other.cols(), other.rows(), other.cols())
+    {
+      // This test resides here, to bring the error messages closer to the user. Normally, these checks
+      // are performed deeply within the library, thus causing long and scary error traces.
+      EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+        YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+      Base::_check_template_params();
+      Base::_set_noalias(other);
+    }
+    /** \brief Copy constructor */
+    EIGEN_STRONG_INLINE Matrix(const Matrix& other)
+            : Base(other.rows() * other.cols(), other.rows(), other.cols())
+    {
+      Base::_check_template_params();
+      Base::_set_noalias(other);
+    }
+    /** \brief Copy constructor with in-place evaluation */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Matrix(const ReturnByValue<OtherDerived>& other)
+    {
+      Base::_check_template_params();
+      Base::resize(other.rows(), other.cols());
+      other.evalTo(*this);
+    }
+
+    /** \brief Copy constructor for generic expressions.
+      * \sa MatrixBase::operator=(const EigenBase<OtherDerived>&)
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Matrix(const EigenBase<OtherDerived> &other)
+      : Base(other.derived().rows() * other.derived().cols(), other.derived().rows(), other.derived().cols())
+    {
+      Base::_check_template_params();
+      Base::_resize_to_match(other);
+      // FIXME/CHECK: isn't *this = other.derived() more efficient. it allows to
+      //              go for pure _set() implementations, right?
+      *this = other;
+    }
+
+    /** \internal
+      * \brief Override MatrixBase::swap() since for dynamic-sized matrices
+      * of same type it is enough to swap the data pointers.
+      */
+    template<typename OtherDerived>
+    void swap(MatrixBase<OtherDerived> const & other)
+    { this->_swap(other.derived()); }
+
+    inline Index innerStride() const { return 1; }
+    inline Index outerStride() const { return this->innerSize(); }
+
+    /////////// Geometry module ///////////
+
+    template<typename OtherDerived>
+    explicit Matrix(const RotationBase<OtherDerived,ColsAtCompileTime>& r);
+    template<typename OtherDerived>
+    Matrix& operator=(const RotationBase<OtherDerived,ColsAtCompileTime>& r);
+
+    #ifdef EIGEN2_SUPPORT
+    template<typename OtherDerived>
+    explicit Matrix(const eigen2_RotationBase<OtherDerived,ColsAtCompileTime>& r);
+    template<typename OtherDerived>
+    Matrix& operator=(const eigen2_RotationBase<OtherDerived,ColsAtCompileTime>& r);
+    #endif
+
+    // allow to extend Matrix outside Eigen
+    #ifdef EIGEN_MATRIX_PLUGIN
+    #include EIGEN_MATRIX_PLUGIN
+    #endif
+
+  protected:
+    template <typename Derived, typename OtherDerived, bool IsVector>
+    friend struct internal::conservative_resize_like_impl;
+
+    using Base::m_storage;
+};
+
+/** \defgroup matrixtypedefs Global matrix typedefs
+  *
+  * \ingroup Core_Module
+  *
+  * Eigen defines several typedef shortcuts for most common matrix and vector types.
+  *
+  * The general patterns are the following:
+  *
+  * \c MatrixSizeType where \c Size can be \c 2,\c 3,\c 4 for fixed size square matrices or \c X for dynamic size,
+  * and where \c Type can be \c i for integer, \c f for float, \c d for double, \c cf for complex float, \c cd
+  * for complex double.
+  *
+  * For example, \c Matrix3d is a fixed-size 3x3 matrix type of doubles, and \c MatrixXf is a dynamic-size matrix of floats.
+  *
+  * There are also \c VectorSizeType and \c RowVectorSizeType which are self-explanatory. For example, \c Vector4cf is
+  * a fixed-size vector of 4 complex floats.
+  *
+  * \sa class Matrix
+  */
+
+#define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix)   \
+/** \ingroup matrixtypedefs */                                    \
+typedef Matrix<Type, Size, Size> Matrix##SizeSuffix##TypeSuffix;  \
+/** \ingroup matrixtypedefs */                                    \
+typedef Matrix<Type, Size, 1>    Vector##SizeSuffix##TypeSuffix;  \
+/** \ingroup matrixtypedefs */                                    \
+typedef Matrix<Type, 1, Size>    RowVector##SizeSuffix##TypeSuffix;
+
+#define EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, Size)         \
+/** \ingroup matrixtypedefs */                                    \
+typedef Matrix<Type, Size, Dynamic> Matrix##Size##X##TypeSuffix;  \
+/** \ingroup matrixtypedefs */                                    \
+typedef Matrix<Type, Dynamic, Size> Matrix##X##Size##TypeSuffix;
+
+#define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 2, 2) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 3, 3) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 4, 4) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Dynamic, X) \
+EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 2) \
+EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 3) \
+EIGEN_MAKE_FIXED_TYPEDEFS(Type, TypeSuffix, 4)
+
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(int,                  i)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(float,                f)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(double,               d)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(std::complex<float>,  cf)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(std::complex<double>, cd)
+
+#undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES
+#undef EIGEN_MAKE_TYPEDEFS
+#undef EIGEN_MAKE_FIXED_TYPEDEFS
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/StableNorm.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/StableNorm.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/StableNorm.h	(revision 2476)
@@ -0,0 +1,203 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STABLENORM_H
+#define EIGEN_STABLENORM_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename ExpressionType, typename Scalar>
+inline void stable_norm_kernel(const ExpressionType& bl, Scalar& ssq, Scalar& scale, Scalar& invScale)
+{
+  using std::max;
+  Scalar maxCoeff = bl.cwiseAbs().maxCoeff();
+  
+  if (maxCoeff>scale)
+  {
+    ssq = ssq * numext::abs2(scale/maxCoeff);
+    Scalar tmp = Scalar(1)/maxCoeff;
+    if(tmp > NumTraits<Scalar>::highest())
+    {
+      invScale = NumTraits<Scalar>::highest();
+      scale = Scalar(1)/invScale;
+    }
+    else
+    {
+      scale = maxCoeff;
+      invScale = tmp;
+    }
+  }
+  
+  // TODO if the maxCoeff is much much smaller than the current scale,
+  // then we can neglect this sub vector
+  if(scale>Scalar(0)) // if scale==0, then bl is 0 
+    ssq += (bl*invScale).squaredNorm();
+}
+
+template<typename Derived>
+inline typename NumTraits<typename traits<Derived>::Scalar>::Real
+blueNorm_impl(const EigenBase<Derived>& _vec)
+{
+  typedef typename Derived::RealScalar RealScalar;  
+  typedef typename Derived::Index Index;
+  using std::pow;
+  using std::min;
+  using std::max;
+  using std::sqrt;
+  using std::abs;
+  const Derived& vec(_vec.derived());
+  static bool initialized = false;
+  static RealScalar b1, b2, s1m, s2m, overfl, rbig, relerr;
+  if(!initialized)
+  {
+    int ibeta, it, iemin, iemax, iexp;
+    RealScalar eps;
+    // This program calculates the machine-dependent constants
+    // bl, b2, slm, s2m, relerr overfl
+    // from the "basic" machine-dependent numbers
+    // nbig, ibeta, it, iemin, iemax, rbig.
+    // The following define the basic machine-dependent constants.
+    // For portability, the PORT subprograms "ilmaeh" and "rlmach"
+    // are used. For any specific computer, each of the assignment
+    // statements can be replaced
+    ibeta = std::numeric_limits<RealScalar>::radix;                 // base for floating-point numbers
+    it    = std::numeric_limits<RealScalar>::digits;                // number of base-beta digits in mantissa
+    iemin = std::numeric_limits<RealScalar>::min_exponent;          // minimum exponent
+    iemax = std::numeric_limits<RealScalar>::max_exponent;          // maximum exponent
+    rbig  = (std::numeric_limits<RealScalar>::max)();               // largest floating-point number
+
+    iexp  = -((1-iemin)/2);
+    b1    = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp)));    // lower boundary of midrange
+    iexp  = (iemax + 1 - it)/2;
+    b2    = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp)));    // upper boundary of midrange
+
+    iexp  = (2-iemin)/2;
+    s1m   = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp)));    // scaling factor for lower range
+    iexp  = - ((iemax+it)/2);
+    s2m   = RealScalar(pow(RealScalar(ibeta),RealScalar(iexp)));    // scaling factor for upper range
+
+    overfl  = rbig*s2m;                                             // overflow boundary for abig
+    eps     = RealScalar(pow(double(ibeta), 1-it));
+    relerr  = sqrt(eps);                                            // tolerance for neglecting asml
+    initialized = true;
+  }
+  Index n = vec.size();
+  RealScalar ab2 = b2 / RealScalar(n);
+  RealScalar asml = RealScalar(0);
+  RealScalar amed = RealScalar(0);
+  RealScalar abig = RealScalar(0);
+  for(typename Derived::InnerIterator it(vec, 0); it; ++it)
+  {
+    RealScalar ax = abs(it.value());
+    if(ax > ab2)     abig += numext::abs2(ax*s2m);
+    else if(ax < b1) asml += numext::abs2(ax*s1m);
+    else             amed += numext::abs2(ax);
+  }
+  if(abig > RealScalar(0))
+  {
+    abig = sqrt(abig);
+    if(abig > overfl)
+    {
+      return rbig;
+    }
+    if(amed > RealScalar(0))
+    {
+      abig = abig/s2m;
+      amed = sqrt(amed);
+    }
+    else
+      return abig/s2m;
+  }
+  else if(asml > RealScalar(0))
+  {
+    if (amed > RealScalar(0))
+    {
+      abig = sqrt(amed);
+      amed = sqrt(asml) / s1m;
+    }
+    else
+      return sqrt(asml)/s1m;
+  }
+  else
+    return sqrt(amed);
+  asml = (min)(abig, amed);
+  abig = (max)(abig, amed);
+  if(asml <= abig*relerr)
+    return abig;
+  else
+    return abig * sqrt(RealScalar(1) + numext::abs2(asml/abig));
+}
+
+} // end namespace internal
+
+/** \returns the \em l2 norm of \c *this avoiding underflow and overflow.
+  * This version use a blockwise two passes algorithm:
+  *  1 - find the absolute largest coefficient \c s
+  *  2 - compute \f$ s \Vert \frac{*this}{s} \Vert \f$ in a standard way
+  *
+  * For architecture/scalar types supporting vectorization, this version
+  * is faster than blueNorm(). Otherwise the blueNorm() is much faster.
+  *
+  * \sa norm(), blueNorm(), hypotNorm()
+  */
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+MatrixBase<Derived>::stableNorm() const
+{
+  using std::min;
+  using std::sqrt;
+  const Index blockSize = 4096;
+  RealScalar scale(0);
+  RealScalar invScale(1);
+  RealScalar ssq(0); // sum of square
+  enum {
+    Alignment = (int(Flags)&DirectAccessBit) || (int(Flags)&AlignedBit) ? 1 : 0
+  };
+  Index n = size();
+  Index bi = internal::first_aligned(derived());
+  if (bi>0)
+    internal::stable_norm_kernel(this->head(bi), ssq, scale, invScale);
+  for (; bi<n; bi+=blockSize)
+    internal::stable_norm_kernel(this->segment(bi,(min)(blockSize, n - bi)).template forceAlignedAccessIf<Alignment>(), ssq, scale, invScale);
+  return scale * sqrt(ssq);
+}
+
+/** \returns the \em l2 norm of \c *this using the Blue's algorithm.
+  * A Portable Fortran Program to Find the Euclidean Norm of a Vector,
+  * ACM TOMS, Vol 4, Issue 1, 1978.
+  *
+  * For architecture/scalar types without vectorization, this version
+  * is much faster than stableNorm(). Otherwise the stableNorm() is faster.
+  *
+  * \sa norm(), stableNorm(), hypotNorm()
+  */
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+MatrixBase<Derived>::blueNorm() const
+{
+  return internal::blueNorm_impl(*this);
+}
+
+/** \returns the \em l2 norm of \c *this avoiding undeflow and overflow.
+  * This version use a concatenation of hypot() calls, and it is very slow.
+  *
+  * \sa norm(), stableNorm()
+  */
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+MatrixBase<Derived>::hypotNorm() const
+{
+  return this->cwiseAbs().redux(internal::scalar_hypot_op<RealScalar>());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_STABLENORM_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/IO.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/IO.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/IO.h	(revision 2476)
@@ -0,0 +1,250 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_IO_H
+#define EIGEN_IO_H
+
+namespace Eigen { 
+
+enum { DontAlignCols = 1 };
+enum { StreamPrecision = -1,
+       FullPrecision = -2 };
+
+namespace internal {
+template<typename Derived>
+std::ostream & print_matrix(std::ostream & s, const Derived& _m, const IOFormat& fmt);
+}
+
+/** \class IOFormat
+  * \ingroup Core_Module
+  *
+  * \brief Stores a set of parameters controlling the way matrices are printed
+  *
+  * List of available parameters:
+  *  - \b precision number of digits for floating point values, or one of the special constants \c StreamPrecision and \c FullPrecision.
+  *                 The default is the special value \c StreamPrecision which means to use the
+  *                 stream's own precision setting, as set for instance using \c cout.precision(3). The other special value
+  *                 \c FullPrecision means that the number of digits will be computed to match the full precision of each floating-point
+  *                 type.
+  *  - \b flags an OR-ed combination of flags, the default value is 0, the only currently available flag is \c DontAlignCols which
+  *             allows to disable the alignment of columns, resulting in faster code.
+  *  - \b coeffSeparator string printed between two coefficients of the same row
+  *  - \b rowSeparator string printed between two rows
+  *  - \b rowPrefix string printed at the beginning of each row
+  *  - \b rowSuffix string printed at the end of each row
+  *  - \b matPrefix string printed at the beginning of the matrix
+  *  - \b matSuffix string printed at the end of the matrix
+  *
+  * Example: \include IOFormat.cpp
+  * Output: \verbinclude IOFormat.out
+  *
+  * \sa DenseBase::format(), class WithFormat
+  */
+struct IOFormat
+{
+  /** Default contructor, see class IOFormat for the meaning of the parameters */
+  IOFormat(int _precision = StreamPrecision, int _flags = 0,
+    const std::string& _coeffSeparator = " ",
+    const std::string& _rowSeparator = "\n", const std::string& _rowPrefix="", const std::string& _rowSuffix="",
+    const std::string& _matPrefix="", const std::string& _matSuffix="")
+  : matPrefix(_matPrefix), matSuffix(_matSuffix), rowPrefix(_rowPrefix), rowSuffix(_rowSuffix), rowSeparator(_rowSeparator),
+    rowSpacer(""), coeffSeparator(_coeffSeparator), precision(_precision), flags(_flags)
+  {
+    int i = int(matSuffix.length())-1;
+    while (i>=0 && matSuffix[i]!='\n')
+    {
+      rowSpacer += ' ';
+      i--;
+    }
+  }
+  std::string matPrefix, matSuffix;
+  std::string rowPrefix, rowSuffix, rowSeparator, rowSpacer;
+  std::string coeffSeparator;
+  int precision;
+  int flags;
+};
+
+/** \class WithFormat
+  * \ingroup Core_Module
+  *
+  * \brief Pseudo expression providing matrix output with given format
+  *
+  * \param ExpressionType the type of the object on which IO stream operations are performed
+  *
+  * This class represents an expression with stream operators controlled by a given IOFormat.
+  * It is the return type of DenseBase::format()
+  * and most of the time this is the only way it is used.
+  *
+  * See class IOFormat for some examples.
+  *
+  * \sa DenseBase::format(), class IOFormat
+  */
+template<typename ExpressionType>
+class WithFormat
+{
+  public:
+
+    WithFormat(const ExpressionType& matrix, const IOFormat& format)
+      : m_matrix(matrix), m_format(format)
+    {}
+
+    friend std::ostream & operator << (std::ostream & s, const WithFormat& wf)
+    {
+      return internal::print_matrix(s, wf.m_matrix.eval(), wf.m_format);
+    }
+
+  protected:
+    const typename ExpressionType::Nested m_matrix;
+    IOFormat m_format;
+};
+
+/** \returns a WithFormat proxy object allowing to print a matrix the with given
+  * format \a fmt.
+  *
+  * See class IOFormat for some examples.
+  *
+  * \sa class IOFormat, class WithFormat
+  */
+template<typename Derived>
+inline const WithFormat<Derived>
+DenseBase<Derived>::format(const IOFormat& fmt) const
+{
+  return WithFormat<Derived>(derived(), fmt);
+}
+
+namespace internal {
+
+template<typename Scalar, bool IsInteger>
+struct significant_decimals_default_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline int run()
+  {
+    using std::ceil;
+    using std::log;
+    return cast<RealScalar,int>(ceil(-log(NumTraits<RealScalar>::epsilon())/log(RealScalar(10))));
+  }
+};
+
+template<typename Scalar>
+struct significant_decimals_default_impl<Scalar, true>
+{
+  static inline int run()
+  {
+    return 0;
+  }
+};
+
+template<typename Scalar>
+struct significant_decimals_impl
+  : significant_decimals_default_impl<Scalar, NumTraits<Scalar>::IsInteger>
+{};
+
+/** \internal
+  * print the matrix \a _m to the output stream \a s using the output format \a fmt */
+template<typename Derived>
+std::ostream & print_matrix(std::ostream & s, const Derived& _m, const IOFormat& fmt)
+{
+  if(_m.size() == 0)
+  {
+    s << fmt.matPrefix << fmt.matSuffix;
+    return s;
+  }
+  
+  typename Derived::Nested m = _m;
+  typedef typename Derived::Scalar Scalar;
+  typedef typename Derived::Index Index;
+
+  Index width = 0;
+
+  std::streamsize explicit_precision;
+  if(fmt.precision == StreamPrecision)
+  {
+    explicit_precision = 0;
+  }
+  else if(fmt.precision == FullPrecision)
+  {
+    if (NumTraits<Scalar>::IsInteger)
+    {
+      explicit_precision = 0;
+    }
+    else
+    {
+      explicit_precision = significant_decimals_impl<Scalar>::run();
+    }
+  }
+  else
+  {
+    explicit_precision = fmt.precision;
+  }
+
+  std::streamsize old_precision = 0;
+  if(explicit_precision) old_precision = s.precision(explicit_precision);
+
+  bool align_cols = !(fmt.flags & DontAlignCols);
+  if(align_cols)
+  {
+    // compute the largest width
+    for(Index j = 0; j < m.cols(); ++j)
+      for(Index i = 0; i < m.rows(); ++i)
+      {
+        std::stringstream sstr;
+        sstr.copyfmt(s);
+        sstr << m.coeff(i,j);
+        width = std::max<Index>(width, Index(sstr.str().length()));
+      }
+  }
+  s << fmt.matPrefix;
+  for(Index i = 0; i < m.rows(); ++i)
+  {
+    if (i)
+      s << fmt.rowSpacer;
+    s << fmt.rowPrefix;
+    if(width) s.width(width);
+    s << m.coeff(i, 0);
+    for(Index j = 1; j < m.cols(); ++j)
+    {
+      s << fmt.coeffSeparator;
+      if (width) s.width(width);
+      s << m.coeff(i, j);
+    }
+    s << fmt.rowSuffix;
+    if( i < m.rows() - 1)
+      s << fmt.rowSeparator;
+  }
+  s << fmt.matSuffix;
+  if(explicit_precision) s.precision(old_precision);
+  return s;
+}
+
+} // end namespace internal
+
+/** \relates DenseBase
+  *
+  * Outputs the matrix, to the given stream.
+  *
+  * If you wish to print the matrix with a format different than the default, use DenseBase::format().
+  *
+  * It is also possible to change the default format by defining EIGEN_DEFAULT_IO_FORMAT before including Eigen headers.
+  * If not defined, this will automatically be defined to Eigen::IOFormat(), that is the Eigen::IOFormat with default parameters.
+  *
+  * \sa DenseBase::format()
+  */
+template<typename Derived>
+std::ostream & operator <<
+(std::ostream & s,
+ const DenseBase<Derived> & m)
+{
+  return internal::print_matrix(s, m.eval(), EIGEN_DEFAULT_IO_FORMAT);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_IO_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ArrayBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ArrayBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ArrayBase.h	(revision 2476)
@@ -0,0 +1,226 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ARRAYBASE_H
+#define EIGEN_ARRAYBASE_H
+
+namespace Eigen { 
+
+template<typename ExpressionType> class MatrixWrapper;
+
+/** \class ArrayBase
+  * \ingroup Core_Module
+  *
+  * \brief Base class for all 1D and 2D array, and related expressions
+  *
+  * An array is similar to a dense vector or matrix. While matrices are mathematical
+  * objects with well defined linear algebra operators, an array is just a collection
+  * of scalar values arranged in a one or two dimensionnal fashion. As the main consequence,
+  * all operations applied to an array are performed coefficient wise. Furthermore,
+  * arrays support scalar math functions of the c++ standard library (e.g., std::sin(x)), and convenient
+  * constructors allowing to easily write generic code working for both scalar values
+  * and arrays.
+  *
+  * This class is the base that is inherited by all array expression types.
+  *
+  * \tparam Derived is the derived type, e.g., an array or an expression type.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_ARRAYBASE_PLUGIN.
+  *
+  * \sa class MatrixBase, \ref TopicClassHierarchy
+  */
+template<typename Derived> class ArrayBase
+  : public DenseBase<Derived>
+{
+  public:
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** The base class for a given storage type. */
+    typedef ArrayBase StorageBaseType;
+
+    typedef ArrayBase Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl;
+
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    typedef DenseBase<Derived> Base;
+    using Base::operator*;
+    using Base::RowsAtCompileTime;
+    using Base::ColsAtCompileTime;
+    using Base::SizeAtCompileTime;
+    using Base::MaxRowsAtCompileTime;
+    using Base::MaxColsAtCompileTime;
+    using Base::MaxSizeAtCompileTime;
+    using Base::IsVectorAtCompileTime;
+    using Base::Flags;
+    using Base::CoeffReadCost;
+
+    using Base::derived;
+    using Base::const_cast_derived;
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::coeff;
+    using Base::coeffRef;
+    using Base::lazyAssign;
+    using Base::operator=;
+    using Base::operator+=;
+    using Base::operator-=;
+    using Base::operator*=;
+    using Base::operator/=;
+
+    typedef typename Base::CoeffReturnType CoeffReturnType;
+
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal the plain matrix type corresponding to this expression. Note that is not necessarily
+      * exactly the return type of eval(): in the case of plain matrices, the return type of eval() is a const
+      * reference to a matrix, not a matrix! It is however guaranteed that the return type of eval() is either
+      * PlainObject or const PlainObject&.
+      */
+    typedef Array<typename internal::traits<Derived>::Scalar,
+                internal::traits<Derived>::RowsAtCompileTime,
+                internal::traits<Derived>::ColsAtCompileTime,
+                AutoAlign | (internal::traits<Derived>::Flags&RowMajorBit ? RowMajor : ColMajor),
+                internal::traits<Derived>::MaxRowsAtCompileTime,
+                internal::traits<Derived>::MaxColsAtCompileTime
+          > PlainObject;
+
+
+    /** \internal Represents a matrix with all coefficients equal to one another*/
+    typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,Derived> ConstantReturnType;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::ArrayBase
+#   include "../plugins/CommonCwiseUnaryOps.h"
+#   include "../plugins/MatrixCwiseUnaryOps.h"
+#   include "../plugins/ArrayCwiseUnaryOps.h"
+#   include "../plugins/CommonCwiseBinaryOps.h"
+#   include "../plugins/MatrixCwiseBinaryOps.h"
+#   include "../plugins/ArrayCwiseBinaryOps.h"
+#   ifdef EIGEN_ARRAYBASE_PLUGIN
+#     include EIGEN_ARRAYBASE_PLUGIN
+#   endif
+#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+
+    /** Special case of the template operator=, in order to prevent the compiler
+      * from generating a default operator= (issue hit with g++ 4.1)
+      */
+    Derived& operator=(const ArrayBase& other)
+    {
+      return internal::assign_selector<Derived,Derived>::run(derived(), other.derived());
+    }
+
+    Derived& operator+=(const Scalar& scalar)
+    { return *this = derived() + scalar; }
+    Derived& operator-=(const Scalar& scalar)
+    { return *this = derived() - scalar; }
+
+    template<typename OtherDerived>
+    Derived& operator+=(const ArrayBase<OtherDerived>& other);
+    template<typename OtherDerived>
+    Derived& operator-=(const ArrayBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    Derived& operator*=(const ArrayBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    Derived& operator/=(const ArrayBase<OtherDerived>& other);
+
+  public:
+    ArrayBase<Derived>& array() { return *this; }
+    const ArrayBase<Derived>& array() const { return *this; }
+
+    /** \returns an \link Eigen::MatrixBase Matrix \endlink expression of this array
+      * \sa MatrixBase::array() */
+    MatrixWrapper<Derived> matrix() { return derived(); }
+    const MatrixWrapper<const Derived> matrix() const { return derived(); }
+
+//     template<typename Dest>
+//     inline void evalTo(Dest& dst) const { dst = matrix(); }
+
+  protected:
+    ArrayBase() : Base() {}
+
+  private:
+    explicit ArrayBase(Index);
+    ArrayBase(Index,Index);
+    template<typename OtherDerived> explicit ArrayBase(const ArrayBase<OtherDerived>&);
+  protected:
+    // mixing arrays and matrices is not legal
+    template<typename OtherDerived> Derived& operator+=(const MatrixBase<OtherDerived>& )
+    {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
+    // mixing arrays and matrices is not legal
+    template<typename OtherDerived> Derived& operator-=(const MatrixBase<OtherDerived>& )
+    {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
+};
+
+/** replaces \c *this by \c *this - \a other.
+  *
+  * \returns a reference to \c *this
+  */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+ArrayBase<Derived>::operator-=(const ArrayBase<OtherDerived> &other)
+{
+  SelfCwiseBinaryOp<internal::scalar_difference_op<Scalar>, Derived, OtherDerived> tmp(derived());
+  tmp = other.derived();
+  return derived();
+}
+
+/** replaces \c *this by \c *this + \a other.
+  *
+  * \returns a reference to \c *this
+  */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+ArrayBase<Derived>::operator+=(const ArrayBase<OtherDerived>& other)
+{
+  SelfCwiseBinaryOp<internal::scalar_sum_op<Scalar>, Derived, OtherDerived> tmp(derived());
+  tmp = other.derived();
+  return derived();
+}
+
+/** replaces \c *this by \c *this * \a other coefficient wise.
+  *
+  * \returns a reference to \c *this
+  */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+ArrayBase<Derived>::operator*=(const ArrayBase<OtherDerived>& other)
+{
+  SelfCwiseBinaryOp<internal::scalar_product_op<Scalar>, Derived, OtherDerived> tmp(derived());
+  tmp = other.derived();
+  return derived();
+}
+
+/** replaces \c *this by \c *this / \a other coefficient wise.
+  *
+  * \returns a reference to \c *this
+  */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+ArrayBase<Derived>::operator/=(const ArrayBase<OtherDerived>& other)
+{
+  SelfCwiseBinaryOp<internal::scalar_quotient_op<Scalar>, Derived, OtherDerived> tmp(derived());
+  tmp = other.derived();
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ARRAYBASE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Reverse.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Reverse.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Reverse.h	(revision 2476)
@@ -0,0 +1,224 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009 Ricard Marxer <email@ricardmarxer.com>
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REVERSE_H
+#define EIGEN_REVERSE_H
+
+namespace Eigen { 
+
+/** \class Reverse
+  * \ingroup Core_Module
+  *
+  * \brief Expression of the reverse of a vector or matrix
+  *
+  * \param MatrixType the type of the object of which we are taking the reverse
+  *
+  * This class represents an expression of the reverse of a vector.
+  * It is the return type of MatrixBase::reverse() and VectorwiseOp::reverse()
+  * and most of the time this is the only way it is used.
+  *
+  * \sa MatrixBase::reverse(), VectorwiseOp::reverse()
+  */
+
+namespace internal {
+
+template<typename MatrixType, int Direction>
+struct traits<Reverse<MatrixType, Direction> >
+ : traits<MatrixType>
+{
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename traits<MatrixType>::StorageKind StorageKind;
+  typedef typename traits<MatrixType>::XprKind XprKind;
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+  enum {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+
+    // let's enable LinearAccess only with vectorization because of the product overhead
+    LinearAccess = ( (Direction==BothDirections) && (int(_MatrixTypeNested::Flags)&PacketAccessBit) )
+                 ? LinearAccessBit : 0,
+
+    Flags = int(_MatrixTypeNested::Flags) & (HereditaryBits | LvalueBit | PacketAccessBit | LinearAccess),
+
+    CoeffReadCost = _MatrixTypeNested::CoeffReadCost
+  };
+};
+
+template<typename PacketScalar, bool ReversePacket> struct reverse_packet_cond
+{
+  static inline PacketScalar run(const PacketScalar& x) { return preverse(x); }
+};
+
+template<typename PacketScalar> struct reverse_packet_cond<PacketScalar,false>
+{
+  static inline PacketScalar run(const PacketScalar& x) { return x; }
+};
+
+} // end namespace internal 
+
+template<typename MatrixType, int Direction> class Reverse
+  : public internal::dense_xpr_base< Reverse<MatrixType, Direction> >::type
+{
+  public:
+
+    typedef typename internal::dense_xpr_base<Reverse>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Reverse)
+    using Base::IsRowMajor;
+
+    // next line is necessary because otherwise const version of operator()
+    // is hidden by non-const version defined in this file
+    using Base::operator(); 
+
+  protected:
+    enum {
+      PacketSize = internal::packet_traits<Scalar>::size,
+      IsColMajor = !IsRowMajor,
+      ReverseRow = (Direction == Vertical)   || (Direction == BothDirections),
+      ReverseCol = (Direction == Horizontal) || (Direction == BothDirections),
+      OffsetRow  = ReverseRow && IsColMajor ? PacketSize : 1,
+      OffsetCol  = ReverseCol && IsRowMajor ? PacketSize : 1,
+      ReversePacket = (Direction == BothDirections)
+                    || ((Direction == Vertical)   && IsColMajor)
+                    || ((Direction == Horizontal) && IsRowMajor)
+    };
+    typedef internal::reverse_packet_cond<PacketScalar,ReversePacket> reverse_packet;
+  public:
+
+    inline Reverse(const MatrixType& matrix) : m_matrix(matrix) { }
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Reverse)
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+
+    inline Index innerStride() const
+    {
+      return -m_matrix.innerStride();
+    }
+
+    inline Scalar& operator()(Index row, Index col)
+    {
+      eigen_assert(row >= 0 && row < rows() && col >= 0 && col < cols());
+      return coeffRef(row, col);
+    }
+
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      return m_matrix.const_cast_derived().coeffRef(ReverseRow ? m_matrix.rows() - row - 1 : row,
+                                                    ReverseCol ? m_matrix.cols() - col - 1 : col);
+    }
+
+    inline CoeffReturnType coeff(Index row, Index col) const
+    {
+      return m_matrix.coeff(ReverseRow ? m_matrix.rows() - row - 1 : row,
+                            ReverseCol ? m_matrix.cols() - col - 1 : col);
+    }
+
+    inline CoeffReturnType coeff(Index index) const
+    {
+      return m_matrix.coeff(m_matrix.size() - index - 1);
+    }
+
+    inline Scalar& coeffRef(Index index)
+    {
+      return m_matrix.const_cast_derived().coeffRef(m_matrix.size() - index - 1);
+    }
+
+    inline Scalar& operator()(Index index)
+    {
+      eigen_assert(index >= 0 && index < m_matrix.size());
+      return coeffRef(index);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index row, Index col) const
+    {
+      return reverse_packet::run(m_matrix.template packet<LoadMode>(
+                                    ReverseRow ? m_matrix.rows() - row - OffsetRow : row,
+                                    ReverseCol ? m_matrix.cols() - col - OffsetCol : col));
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index row, Index col, const PacketScalar& x)
+    {
+      m_matrix.const_cast_derived().template writePacket<LoadMode>(
+                                      ReverseRow ? m_matrix.rows() - row - OffsetRow : row,
+                                      ReverseCol ? m_matrix.cols() - col - OffsetCol : col,
+                                      reverse_packet::run(x));
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index index) const
+    {
+      return internal::preverse(m_matrix.template packet<LoadMode>( m_matrix.size() - index - PacketSize ));
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index index, const PacketScalar& x)
+    {
+      m_matrix.const_cast_derived().template writePacket<LoadMode>(m_matrix.size() - index - PacketSize, internal::preverse(x));
+    }
+
+    const typename internal::remove_all<typename MatrixType::Nested>::type& 
+    nestedExpression() const 
+    {
+      return m_matrix;
+    }
+
+  protected:
+    typename MatrixType::Nested m_matrix;
+};
+
+/** \returns an expression of the reverse of *this.
+  *
+  * Example: \include MatrixBase_reverse.cpp
+  * Output: \verbinclude MatrixBase_reverse.out
+  *
+  */
+template<typename Derived>
+inline typename DenseBase<Derived>::ReverseReturnType
+DenseBase<Derived>::reverse()
+{
+  return derived();
+}
+
+/** This is the const version of reverse(). */
+template<typename Derived>
+inline const typename DenseBase<Derived>::ConstReverseReturnType
+DenseBase<Derived>::reverse() const
+{
+  return derived();
+}
+
+/** This is the "in place" version of reverse: it reverses \c *this.
+  *
+  * In most cases it is probably better to simply use the reversed expression
+  * of a matrix. However, when reversing the matrix data itself is really needed,
+  * then this "in-place" version is probably the right choice because it provides
+  * the following additional features:
+  *  - less error prone: doing the same operation with .reverse() requires special care:
+  *    \code m = m.reverse().eval(); \endcode
+  *  - this API allows to avoid creating a temporary (the current implementation creates a temporary, but that could be avoided using swap)
+  *  - it allows future optimizations (cache friendliness, etc.)
+  *
+  * \sa reverse() */
+template<typename Derived>
+inline void DenseBase<Derived>::reverseInPlace()
+{
+  derived() = derived().reverse().eval();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_REVERSE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Ref.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Ref.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Ref.h	(revision 2476)
@@ -0,0 +1,278 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REF_H
+#define EIGEN_REF_H
+
+namespace Eigen { 
+
+template<typename Derived> class RefBase;
+template<typename PlainObjectType, int Options = 0,
+         typename StrideType = typename internal::conditional<PlainObjectType::IsVectorAtCompileTime,InnerStride<1>,OuterStride<> >::type > class Ref;
+
+/** \class Ref
+  * \ingroup Core_Module
+  *
+  * \brief A matrix or vector expression mapping an existing expressions
+  *
+  * \tparam PlainObjectType the equivalent matrix type of the mapped data
+  * \tparam Options specifies whether the pointer is \c #Aligned, or \c #Unaligned.
+  *                The default is \c #Unaligned.
+  * \tparam StrideType optionally specifies strides. By default, Ref implies a contiguous storage along the inner dimension (inner stride==1),
+  *                   but accept a variable outer stride (leading dimension).
+  *                   This can be overridden by specifying strides.
+  *                   The type passed here must be a specialization of the Stride template, see examples below.
+  *
+  * This class permits to write non template functions taking Eigen's object as parameters while limiting the number of copies.
+  * A Ref<> object can represent either a const expression or a l-value:
+  * \code
+  * // in-out argument:
+  * void foo1(Ref<VectorXf> x);
+  *
+  * // read-only const argument:
+  * void foo2(const Ref<const VectorXf>& x);
+  * \endcode
+  *
+  * In the in-out case, the input argument must satisfies the constraints of the actual Ref<> type, otherwise a compilation issue will be triggered.
+  * By default, a Ref<VectorXf> can reference any dense vector expression of float having a contiguous memory layout.
+  * Likewise, a Ref<MatrixXf> can reference any column major dense matrix expression of float whose column's elements are contiguously stored with
+  * the possibility to have a constant space inbetween each column, i.e.: the inner stride mmust be equal to 1, but the outer-stride (or leading dimension),
+  * can be greater than the number of rows.
+  *
+  * In the const case, if the input expression does not match the above requirement, then it is evaluated into a temporary before being passed to the function.
+  * Here are some examples:
+  * \code
+  * MatrixXf A;
+  * VectorXf a;
+  * foo1(a.head());             // OK
+  * foo1(A.col());              // OK
+  * foo1(A.row());              // compilation error because here innerstride!=1
+  * foo2(A.row());              // The row is copied into a contiguous temporary
+  * foo2(2*a);                  // The expression is evaluated into a temporary
+  * foo2(A.col().segment(2,4)); // No temporary
+  * \endcode
+  *
+  * The range of inputs that can be referenced without temporary can be enlarged using the last two template parameter.
+  * Here is an example accepting an innerstride!=1:
+  * \code
+  * // in-out argument:
+  * void foo3(Ref<VectorXf,0,InnerStride<> > x);
+  * foo3(A.row());              // OK
+  * \endcode
+  * The downside here is that the function foo3 might be significantly slower than foo1 because it won't be able to exploit vectorization, and will involved more
+  * expensive address computations even if the input is contiguously stored in memory. To overcome this issue, one might propose to overloads internally calling a
+  * template function, e.g.:
+  * \code
+  * // in the .h:
+  * void foo(const Ref<MatrixXf>& A);
+  * void foo(const Ref<MatrixXf,0,Stride<> >& A);
+  *
+  * // in the .cpp:
+  * template<typename TypeOfA> void foo_impl(const TypeOfA& A) {
+  *     ... // crazy code goes here
+  * }
+  * void foo(const Ref<MatrixXf>& A) { foo_impl(A); }
+  * void foo(const Ref<MatrixXf,0,Stride<> >& A) { foo_impl(A); }
+  * \endcode
+  *
+  *
+  * \sa PlainObjectBase::Map(), \ref TopicStorageOrders
+  */
+
+namespace internal {
+
+template<typename _PlainObjectType, int _Options, typename _StrideType>
+struct traits<Ref<_PlainObjectType, _Options, _StrideType> >
+  : public traits<Map<_PlainObjectType, _Options, _StrideType> >
+{
+  typedef _PlainObjectType PlainObjectType;
+  typedef _StrideType StrideType;
+  enum {
+    Options = _Options,
+    Flags = traits<Map<_PlainObjectType, _Options, _StrideType> >::Flags | NestByRefBit
+  };
+
+  template<typename Derived> struct match {
+    enum {
+      HasDirectAccess = internal::has_direct_access<Derived>::ret,
+      StorageOrderMatch = PlainObjectType::IsVectorAtCompileTime || Derived::IsVectorAtCompileTime || ((PlainObjectType::Flags&RowMajorBit)==(Derived::Flags&RowMajorBit)),
+      InnerStrideMatch = int(StrideType::InnerStrideAtCompileTime)==int(Dynamic)
+                      || int(StrideType::InnerStrideAtCompileTime)==int(Derived::InnerStrideAtCompileTime)
+                      || (int(StrideType::InnerStrideAtCompileTime)==0 && int(Derived::InnerStrideAtCompileTime)==1),
+      OuterStrideMatch = Derived::IsVectorAtCompileTime
+                      || int(StrideType::OuterStrideAtCompileTime)==int(Dynamic) || int(StrideType::OuterStrideAtCompileTime)==int(Derived::OuterStrideAtCompileTime),
+      AlignmentMatch = (_Options!=Aligned) || ((PlainObjectType::Flags&AlignedBit)==0) || ((traits<Derived>::Flags&AlignedBit)==AlignedBit),
+      ScalarTypeMatch = internal::is_same<typename PlainObjectType::Scalar, typename Derived::Scalar>::value,
+      MatchAtCompileTime = HasDirectAccess && StorageOrderMatch && InnerStrideMatch && OuterStrideMatch && AlignmentMatch && ScalarTypeMatch
+    };
+    typedef typename internal::conditional<MatchAtCompileTime,internal::true_type,internal::false_type>::type type;
+  };
+  
+};
+
+template<typename Derived>
+struct traits<RefBase<Derived> > : public traits<Derived> {};
+
+}
+
+template<typename Derived> class RefBase
+ : public MapBase<Derived>
+{
+  typedef typename internal::traits<Derived>::PlainObjectType PlainObjectType;
+  typedef typename internal::traits<Derived>::StrideType StrideType;
+
+public:
+
+  typedef MapBase<Derived> Base;
+  EIGEN_DENSE_PUBLIC_INTERFACE(RefBase)
+
+  inline Index innerStride() const
+  {
+    return StrideType::InnerStrideAtCompileTime != 0 ? m_stride.inner() : 1;
+  }
+
+  inline Index outerStride() const
+  {
+    return StrideType::OuterStrideAtCompileTime != 0 ? m_stride.outer()
+         : IsVectorAtCompileTime ? this->size()
+         : int(Flags)&RowMajorBit ? this->cols()
+         : this->rows();
+  }
+
+  RefBase()
+    : Base(0,RowsAtCompileTime==Dynamic?0:RowsAtCompileTime,ColsAtCompileTime==Dynamic?0:ColsAtCompileTime),
+      // Stride<> does not allow default ctor for Dynamic strides, so let' initialize it with dummy values:
+      m_stride(StrideType::OuterStrideAtCompileTime==Dynamic?0:StrideType::OuterStrideAtCompileTime,
+               StrideType::InnerStrideAtCompileTime==Dynamic?0:StrideType::InnerStrideAtCompileTime)
+  {}
+  
+  EIGEN_INHERIT_ASSIGNMENT_OPERATORS(RefBase)
+
+protected:
+
+  typedef Stride<StrideType::OuterStrideAtCompileTime,StrideType::InnerStrideAtCompileTime> StrideBase;
+
+  template<typename Expression>
+  void construct(Expression& expr)
+  {
+    if(PlainObjectType::RowsAtCompileTime==1)
+    {
+      eigen_assert(expr.rows()==1 || expr.cols()==1);
+      ::new (static_cast<Base*>(this)) Base(expr.data(), 1, expr.size());
+    }
+    else if(PlainObjectType::ColsAtCompileTime==1)
+    {
+      eigen_assert(expr.rows()==1 || expr.cols()==1);
+      ::new (static_cast<Base*>(this)) Base(expr.data(), expr.size(), 1);
+    }
+    else
+      ::new (static_cast<Base*>(this)) Base(expr.data(), expr.rows(), expr.cols());
+    
+    if(Expression::IsVectorAtCompileTime && (!PlainObjectType::IsVectorAtCompileTime) && ((Expression::Flags&RowMajorBit)!=(PlainObjectType::Flags&RowMajorBit)))
+      ::new (&m_stride) StrideBase(expr.innerStride(), StrideType::InnerStrideAtCompileTime==0?0:1);
+    else
+      ::new (&m_stride) StrideBase(StrideType::OuterStrideAtCompileTime==0?0:expr.outerStride(),
+                                   StrideType::InnerStrideAtCompileTime==0?0:expr.innerStride());    
+  }
+
+  StrideBase m_stride;
+};
+
+
+template<typename PlainObjectType, int Options, typename StrideType> class Ref
+  : public RefBase<Ref<PlainObjectType, Options, StrideType> >
+{
+  private:
+    typedef internal::traits<Ref> Traits;
+    template<typename Derived>
+    inline Ref(const PlainObjectBase<Derived>& expr,
+               typename internal::enable_if<bool(Traits::template match<Derived>::MatchAtCompileTime),Derived>::type* = 0);
+  public:
+
+    typedef RefBase<Ref> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Ref)
+
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    template<typename Derived>
+    inline Ref(PlainObjectBase<Derived>& expr,
+               typename internal::enable_if<bool(Traits::template match<Derived>::MatchAtCompileTime),Derived>::type* = 0)
+    {
+      EIGEN_STATIC_ASSERT(static_cast<bool>(Traits::template match<Derived>::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
+      Base::construct(expr.derived());
+    }
+    template<typename Derived>
+    inline Ref(const DenseBase<Derived>& expr,
+               typename internal::enable_if<bool(Traits::template match<Derived>::MatchAtCompileTime),Derived>::type* = 0)
+    #else
+    template<typename Derived>
+    inline Ref(DenseBase<Derived>& expr)
+    #endif
+    {
+      EIGEN_STATIC_ASSERT(static_cast<bool>(internal::is_lvalue<Derived>::value), THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
+      EIGEN_STATIC_ASSERT(static_cast<bool>(Traits::template match<Derived>::MatchAtCompileTime), STORAGE_LAYOUT_DOES_NOT_MATCH);
+      enum { THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY = Derived::ThisConstantIsPrivateInPlainObjectBase};
+      Base::construct(expr.const_cast_derived());
+    }
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Ref)
+
+};
+
+// this is the const ref version
+template<typename TPlainObjectType, int Options, typename StrideType> class Ref<const TPlainObjectType, Options, StrideType>
+  : public RefBase<Ref<const TPlainObjectType, Options, StrideType> >
+{
+    typedef internal::traits<Ref> Traits;
+  public:
+
+    typedef RefBase<Ref> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Ref)
+
+    template<typename Derived>
+    inline Ref(const DenseBase<Derived>& expr,
+               typename internal::enable_if<bool(Traits::template match<Derived>::ScalarTypeMatch),Derived>::type* = 0)
+    {
+//      std::cout << match_helper<Derived>::HasDirectAccess << "," << match_helper<Derived>::OuterStrideMatch << "," << match_helper<Derived>::InnerStrideMatch << "\n";
+//      std::cout << int(StrideType::OuterStrideAtCompileTime) << " - " << int(Derived::OuterStrideAtCompileTime) << "\n";
+//      std::cout << int(StrideType::InnerStrideAtCompileTime) << " - " << int(Derived::InnerStrideAtCompileTime) << "\n";
+      construct(expr.derived(), typename Traits::template match<Derived>::type());
+    }
+    
+    inline Ref(const Ref& other) : Base(other) {
+      // copy constructor shall not copy the m_object, to avoid unnecessary malloc and copy
+    }
+
+    template<typename OtherRef>
+    inline Ref(const RefBase<OtherRef>& other) {
+      construct(other.derived(), typename Traits::template match<OtherRef>::type());
+    }
+
+  protected:
+
+    template<typename Expression>
+    void construct(const Expression& expr,internal::true_type)
+    {
+      Base::construct(expr);
+    }
+
+    template<typename Expression>
+    void construct(const Expression& expr, internal::false_type)
+    {
+      m_object.lazyAssign(expr);
+      Base::construct(m_object);
+    }
+
+  protected:
+    TPlainObjectType m_object;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_REF_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Map.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Map.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Map.h	(revision 2476)
@@ -0,0 +1,192 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MAP_H
+#define EIGEN_MAP_H
+
+namespace Eigen { 
+
+/** \class Map
+  * \ingroup Core_Module
+  *
+  * \brief A matrix or vector expression mapping an existing array of data.
+  *
+  * \tparam PlainObjectType the equivalent matrix type of the mapped data
+  * \tparam MapOptions specifies whether the pointer is \c #Aligned, or \c #Unaligned.
+  *                The default is \c #Unaligned.
+  * \tparam StrideType optionally specifies strides. By default, Map assumes the memory layout
+  *                   of an ordinary, contiguous array. This can be overridden by specifying strides.
+  *                   The type passed here must be a specialization of the Stride template, see examples below.
+  *
+  * This class represents a matrix or vector expression mapping an existing array of data.
+  * It can be used to let Eigen interface without any overhead with non-Eigen data structures,
+  * such as plain C arrays or structures from other libraries. By default, it assumes that the
+  * data is laid out contiguously in memory. You can however override this by explicitly specifying
+  * inner and outer strides.
+  *
+  * Here's an example of simply mapping a contiguous array as a \ref TopicStorageOrders "column-major" matrix:
+  * \include Map_simple.cpp
+  * Output: \verbinclude Map_simple.out
+  *
+  * If you need to map non-contiguous arrays, you can do so by specifying strides:
+  *
+  * Here's an example of mapping an array as a vector, specifying an inner stride, that is, the pointer
+  * increment between two consecutive coefficients. Here, we're specifying the inner stride as a compile-time
+  * fixed value.
+  * \include Map_inner_stride.cpp
+  * Output: \verbinclude Map_inner_stride.out
+  *
+  * Here's an example of mapping an array while specifying an outer stride. Here, since we're mapping
+  * as a column-major matrix, 'outer stride' means the pointer increment between two consecutive columns.
+  * Here, we're specifying the outer stride as a runtime parameter. Note that here \c OuterStride<> is
+  * a short version of \c OuterStride<Dynamic> because the default template parameter of OuterStride
+  * is  \c Dynamic
+  * \include Map_outer_stride.cpp
+  * Output: \verbinclude Map_outer_stride.out
+  *
+  * For more details and for an example of specifying both an inner and an outer stride, see class Stride.
+  *
+  * \b Tip: to change the array of data mapped by a Map object, you can use the C++
+  * placement new syntax:
+  *
+  * Example: \include Map_placement_new.cpp
+  * Output: \verbinclude Map_placement_new.out
+  *
+  * This class is the return type of PlainObjectBase::Map() but can also be used directly.
+  *
+  * \sa PlainObjectBase::Map(), \ref TopicStorageOrders
+  */
+
+namespace internal {
+template<typename PlainObjectType, int MapOptions, typename StrideType>
+struct traits<Map<PlainObjectType, MapOptions, StrideType> >
+  : public traits<PlainObjectType>
+{
+  typedef traits<PlainObjectType> TraitsBase;
+  typedef typename PlainObjectType::Index Index;
+  typedef typename PlainObjectType::Scalar Scalar;
+  enum {
+    InnerStrideAtCompileTime = StrideType::InnerStrideAtCompileTime == 0
+                             ? int(PlainObjectType::InnerStrideAtCompileTime)
+                             : int(StrideType::InnerStrideAtCompileTime),
+    OuterStrideAtCompileTime = StrideType::OuterStrideAtCompileTime == 0
+                             ? int(PlainObjectType::OuterStrideAtCompileTime)
+                             : int(StrideType::OuterStrideAtCompileTime),
+    HasNoInnerStride = InnerStrideAtCompileTime == 1,
+    HasNoOuterStride = StrideType::OuterStrideAtCompileTime == 0,
+    HasNoStride = HasNoInnerStride && HasNoOuterStride,
+    IsAligned = bool(EIGEN_ALIGN) && ((int(MapOptions)&Aligned)==Aligned),
+    IsDynamicSize = PlainObjectType::SizeAtCompileTime==Dynamic,
+    KeepsPacketAccess = bool(HasNoInnerStride)
+                        && ( bool(IsDynamicSize)
+                           || HasNoOuterStride
+                           || ( OuterStrideAtCompileTime!=Dynamic
+                           && ((static_cast<int>(sizeof(Scalar))*OuterStrideAtCompileTime)%16)==0 ) ),
+    Flags0 = TraitsBase::Flags & (~NestByRefBit),
+    Flags1 = IsAligned ? (int(Flags0) | AlignedBit) : (int(Flags0) & ~AlignedBit),
+    Flags2 = (bool(HasNoStride) || bool(PlainObjectType::IsVectorAtCompileTime))
+           ? int(Flags1) : int(Flags1 & ~LinearAccessBit),
+    Flags3 = is_lvalue<PlainObjectType>::value ? int(Flags2) : (int(Flags2) & ~LvalueBit),
+    Flags = KeepsPacketAccess ? int(Flags3) : (int(Flags3) & ~PacketAccessBit)
+  };
+private:
+  enum { Options }; // Expressions don't have Options
+};
+}
+
+template<typename PlainObjectType, int MapOptions, typename StrideType> class Map
+  : public MapBase<Map<PlainObjectType, MapOptions, StrideType> >
+{
+  public:
+
+    typedef MapBase<Map> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Map)
+
+    typedef typename Base::PointerType PointerType;
+#if EIGEN2_SUPPORT_STAGE <= STAGE30_FULL_EIGEN3_API
+    typedef const Scalar* PointerArgType;
+    inline PointerType cast_to_pointer_type(PointerArgType ptr) { return const_cast<PointerType>(ptr); }
+#else
+    typedef PointerType PointerArgType;
+    inline PointerType cast_to_pointer_type(PointerArgType ptr) { return ptr; }
+#endif
+
+    inline Index innerStride() const
+    {
+      return StrideType::InnerStrideAtCompileTime != 0 ? m_stride.inner() : 1;
+    }
+
+    inline Index outerStride() const
+    {
+      return StrideType::OuterStrideAtCompileTime != 0 ? m_stride.outer()
+           : IsVectorAtCompileTime ? this->size()
+           : int(Flags)&RowMajorBit ? this->cols()
+           : this->rows();
+    }
+
+    /** Constructor in the fixed-size case.
+      *
+      * \param dataPtr pointer to the array to map
+      * \param a_stride optional Stride object, passing the strides.
+      */
+    inline Map(PointerArgType dataPtr, const StrideType& a_stride = StrideType())
+      : Base(cast_to_pointer_type(dataPtr)), m_stride(a_stride)
+    {
+      PlainObjectType::Base::_check_template_params();
+    }
+
+    /** Constructor in the dynamic-size vector case.
+      *
+      * \param dataPtr pointer to the array to map
+      * \param a_size the size of the vector expression
+      * \param a_stride optional Stride object, passing the strides.
+      */
+    inline Map(PointerArgType dataPtr, Index a_size, const StrideType& a_stride = StrideType())
+      : Base(cast_to_pointer_type(dataPtr), a_size), m_stride(a_stride)
+    {
+      PlainObjectType::Base::_check_template_params();
+    }
+
+    /** Constructor in the dynamic-size matrix case.
+      *
+      * \param dataPtr pointer to the array to map
+      * \param nbRows the number of rows of the matrix expression
+      * \param nbCols the number of columns of the matrix expression
+      * \param a_stride optional Stride object, passing the strides.
+      */
+    inline Map(PointerArgType dataPtr, Index nbRows, Index nbCols, const StrideType& a_stride = StrideType())
+      : Base(cast_to_pointer_type(dataPtr), nbRows, nbCols), m_stride(a_stride)
+    {
+      PlainObjectType::Base::_check_template_params();
+    }
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Map)
+
+  protected:
+    StrideType m_stride;
+};
+
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+inline Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>
+  ::Array(const Scalar *data)
+{
+  this->_set_noalias(Eigen::Map<const Array>(data));
+}
+
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+inline Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>
+  ::Matrix(const Scalar *data)
+{
+  this->_set_noalias(Eigen::Map<const Matrix>(data));
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MAP_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Diagonal.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Diagonal.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Diagonal.h	(revision 2476)
@@ -0,0 +1,237 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DIAGONAL_H
+#define EIGEN_DIAGONAL_H
+
+namespace Eigen { 
+
+/** \class Diagonal
+  * \ingroup Core_Module
+  *
+  * \brief Expression of a diagonal/subdiagonal/superdiagonal in a matrix
+  *
+  * \param MatrixType the type of the object in which we are taking a sub/main/super diagonal
+  * \param DiagIndex the index of the sub/super diagonal. The default is 0 and it means the main diagonal.
+  *              A positive value means a superdiagonal, a negative value means a subdiagonal.
+  *              You can also use Dynamic so the index can be set at runtime.
+  *
+  * The matrix is not required to be square.
+  *
+  * This class represents an expression of the main diagonal, or any sub/super diagonal
+  * of a square matrix. It is the return type of MatrixBase::diagonal() and MatrixBase::diagonal(Index) and most of the
+  * time this is the only way it is used.
+  *
+  * \sa MatrixBase::diagonal(), MatrixBase::diagonal(Index)
+  */
+
+namespace internal {
+template<typename MatrixType, int DiagIndex>
+struct traits<Diagonal<MatrixType,DiagIndex> >
+ : traits<MatrixType>
+{
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+  typedef typename MatrixType::StorageKind StorageKind;
+  enum {
+    RowsAtCompileTime = (int(DiagIndex) == DynamicIndex || int(MatrixType::SizeAtCompileTime) == Dynamic) ? Dynamic
+                      : (EIGEN_PLAIN_ENUM_MIN(MatrixType::RowsAtCompileTime - EIGEN_PLAIN_ENUM_MAX(-DiagIndex, 0),
+                                              MatrixType::ColsAtCompileTime - EIGEN_PLAIN_ENUM_MAX( DiagIndex, 0))),
+    ColsAtCompileTime = 1,
+    MaxRowsAtCompileTime = int(MatrixType::MaxSizeAtCompileTime) == Dynamic ? Dynamic
+                         : DiagIndex == DynamicIndex ? EIGEN_SIZE_MIN_PREFER_FIXED(MatrixType::MaxRowsAtCompileTime,
+                                                                              MatrixType::MaxColsAtCompileTime)
+                         : (EIGEN_PLAIN_ENUM_MIN(MatrixType::MaxRowsAtCompileTime - EIGEN_PLAIN_ENUM_MAX(-DiagIndex, 0),
+                                                 MatrixType::MaxColsAtCompileTime - EIGEN_PLAIN_ENUM_MAX( DiagIndex, 0))),
+    MaxColsAtCompileTime = 1,
+    MaskLvalueBit = is_lvalue<MatrixType>::value ? LvalueBit : 0,
+    Flags = (unsigned int)_MatrixTypeNested::Flags & (HereditaryBits | LinearAccessBit | MaskLvalueBit | DirectAccessBit) & ~RowMajorBit,
+    CoeffReadCost = _MatrixTypeNested::CoeffReadCost,
+    MatrixTypeOuterStride = outer_stride_at_compile_time<MatrixType>::ret,
+    InnerStrideAtCompileTime = MatrixTypeOuterStride == Dynamic ? Dynamic : MatrixTypeOuterStride+1,
+    OuterStrideAtCompileTime = 0
+  };
+};
+}
+
+template<typename MatrixType, int _DiagIndex> class Diagonal
+   : public internal::dense_xpr_base< Diagonal<MatrixType,_DiagIndex> >::type
+{
+  public:
+
+    enum { DiagIndex = _DiagIndex };
+    typedef typename internal::dense_xpr_base<Diagonal>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Diagonal)
+
+    inline Diagonal(MatrixType& matrix, Index a_index = DiagIndex) : m_matrix(matrix), m_index(a_index) {}
+
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Diagonal)
+
+    inline Index rows() const
+    { return m_index.value()<0 ? (std::min<Index>)(m_matrix.cols(),m_matrix.rows()+m_index.value()) : (std::min<Index>)(m_matrix.rows(),m_matrix.cols()-m_index.value()); }
+
+    inline Index cols() const { return 1; }
+
+    inline Index innerStride() const
+    {
+      return m_matrix.outerStride() + 1;
+    }
+
+    inline Index outerStride() const
+    {
+      return 0;
+    }
+
+    typedef typename internal::conditional<
+                       internal::is_lvalue<MatrixType>::value,
+                       Scalar,
+                       const Scalar
+                     >::type ScalarWithConstIfNotLvalue;
+
+    inline ScalarWithConstIfNotLvalue* data() { return &(m_matrix.const_cast_derived().coeffRef(rowOffset(), colOffset())); }
+    inline const Scalar* data() const { return &(m_matrix.const_cast_derived().coeffRef(rowOffset(), colOffset())); }
+
+    inline Scalar& coeffRef(Index row, Index)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+      return m_matrix.const_cast_derived().coeffRef(row+rowOffset(), row+colOffset());
+    }
+
+    inline const Scalar& coeffRef(Index row, Index) const
+    {
+      return m_matrix.const_cast_derived().coeffRef(row+rowOffset(), row+colOffset());
+    }
+
+    inline CoeffReturnType coeff(Index row, Index) const
+    {
+      return m_matrix.coeff(row+rowOffset(), row+colOffset());
+    }
+
+    inline Scalar& coeffRef(Index idx)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
+      return m_matrix.const_cast_derived().coeffRef(idx+rowOffset(), idx+colOffset());
+    }
+
+    inline const Scalar& coeffRef(Index idx) const
+    {
+      return m_matrix.const_cast_derived().coeffRef(idx+rowOffset(), idx+colOffset());
+    }
+
+    inline CoeffReturnType coeff(Index idx) const
+    {
+      return m_matrix.coeff(idx+rowOffset(), idx+colOffset());
+    }
+
+    const typename internal::remove_all<typename MatrixType::Nested>::type& 
+    nestedExpression() const 
+    {
+      return m_matrix;
+    }
+
+    int index() const
+    {
+      return m_index.value();
+    }
+
+  protected:
+    typename MatrixType::Nested m_matrix;
+    const internal::variable_if_dynamicindex<Index, DiagIndex> m_index;
+
+  private:
+    // some compilers may fail to optimize std::max etc in case of compile-time constants...
+    EIGEN_STRONG_INLINE Index absDiagIndex() const { return m_index.value()>0 ? m_index.value() : -m_index.value(); }
+    EIGEN_STRONG_INLINE Index rowOffset() const { return m_index.value()>0 ? 0 : -m_index.value(); }
+    EIGEN_STRONG_INLINE Index colOffset() const { return m_index.value()>0 ? m_index.value() : 0; }
+    // triger a compile time error is someone try to call packet
+    template<int LoadMode> typename MatrixType::PacketReturnType packet(Index) const;
+    template<int LoadMode> typename MatrixType::PacketReturnType packet(Index,Index) const;
+};
+
+/** \returns an expression of the main diagonal of the matrix \c *this
+  *
+  * \c *this is not required to be square.
+  *
+  * Example: \include MatrixBase_diagonal.cpp
+  * Output: \verbinclude MatrixBase_diagonal.out
+  *
+  * \sa class Diagonal */
+template<typename Derived>
+inline typename MatrixBase<Derived>::DiagonalReturnType
+MatrixBase<Derived>::diagonal()
+{
+  return derived();
+}
+
+/** This is the const version of diagonal(). */
+template<typename Derived>
+inline typename MatrixBase<Derived>::ConstDiagonalReturnType
+MatrixBase<Derived>::diagonal() const
+{
+  return ConstDiagonalReturnType(derived());
+}
+
+/** \returns an expression of the \a DiagIndex-th sub or super diagonal of the matrix \c *this
+  *
+  * \c *this is not required to be square.
+  *
+  * The template parameter \a DiagIndex represent a super diagonal if \a DiagIndex > 0
+  * and a sub diagonal otherwise. \a DiagIndex == 0 is equivalent to the main diagonal.
+  *
+  * Example: \include MatrixBase_diagonal_int.cpp
+  * Output: \verbinclude MatrixBase_diagonal_int.out
+  *
+  * \sa MatrixBase::diagonal(), class Diagonal */
+template<typename Derived>
+inline typename MatrixBase<Derived>::DiagonalDynamicIndexReturnType
+MatrixBase<Derived>::diagonal(Index index)
+{
+  return DiagonalDynamicIndexReturnType(derived(), index);
+}
+
+/** This is the const version of diagonal(Index). */
+template<typename Derived>
+inline typename MatrixBase<Derived>::ConstDiagonalDynamicIndexReturnType
+MatrixBase<Derived>::diagonal(Index index) const
+{
+  return ConstDiagonalDynamicIndexReturnType(derived(), index);
+}
+
+/** \returns an expression of the \a DiagIndex-th sub or super diagonal of the matrix \c *this
+  *
+  * \c *this is not required to be square.
+  *
+  * The template parameter \a DiagIndex represent a super diagonal if \a DiagIndex > 0
+  * and a sub diagonal otherwise. \a DiagIndex == 0 is equivalent to the main diagonal.
+  *
+  * Example: \include MatrixBase_diagonal_template_int.cpp
+  * Output: \verbinclude MatrixBase_diagonal_template_int.out
+  *
+  * \sa MatrixBase::diagonal(), class Diagonal */
+template<typename Derived>
+template<int Index>
+inline typename MatrixBase<Derived>::template DiagonalIndexReturnType<Index>::Type
+MatrixBase<Derived>::diagonal()
+{
+  return derived();
+}
+
+/** This is the const version of diagonal<int>(). */
+template<typename Derived>
+template<int Index>
+inline typename MatrixBase<Derived>::template ConstDiagonalIndexReturnType<Index>::Type
+MatrixBase<Derived>::diagonal() const
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_DIAGONAL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CwiseBinaryOp.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CwiseBinaryOp.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CwiseBinaryOp.h	(revision 2476)
@@ -0,0 +1,230 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CWISE_BINARY_OP_H
+#define EIGEN_CWISE_BINARY_OP_H
+
+namespace Eigen {
+
+/** \class CwiseBinaryOp
+  * \ingroup Core_Module
+  *
+  * \brief Generic expression where a coefficient-wise binary operator is applied to two expressions
+  *
+  * \param BinaryOp template functor implementing the operator
+  * \param Lhs the type of the left-hand side
+  * \param Rhs the type of the right-hand side
+  *
+  * This class represents an expression  where a coefficient-wise binary operator is applied to two expressions.
+  * It is the return type of binary operators, by which we mean only those binary operators where
+  * both the left-hand side and the right-hand side are Eigen expressions.
+  * For example, the return type of matrix1+matrix2 is a CwiseBinaryOp.
+  *
+  * Most of the time, this is the only way that it is used, so you typically don't have to name
+  * CwiseBinaryOp types explicitly.
+  *
+  * \sa MatrixBase::binaryExpr(const MatrixBase<OtherDerived> &,const CustomBinaryOp &) const, class CwiseUnaryOp, class CwiseNullaryOp
+  */
+
+namespace internal {
+template<typename BinaryOp, typename Lhs, typename Rhs>
+struct traits<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
+{
+  // we must not inherit from traits<Lhs> since it has
+  // the potential to cause problems with MSVC
+  typedef typename remove_all<Lhs>::type Ancestor;
+  typedef typename traits<Ancestor>::XprKind XprKind;
+  enum {
+    RowsAtCompileTime = traits<Ancestor>::RowsAtCompileTime,
+    ColsAtCompileTime = traits<Ancestor>::ColsAtCompileTime,
+    MaxRowsAtCompileTime = traits<Ancestor>::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = traits<Ancestor>::MaxColsAtCompileTime
+  };
+
+  // even though we require Lhs and Rhs to have the same scalar type (see CwiseBinaryOp constructor),
+  // we still want to handle the case when the result type is different.
+  typedef typename result_of<
+                     BinaryOp(
+                       typename Lhs::Scalar,
+                       typename Rhs::Scalar
+                     )
+                   >::type Scalar;
+  typedef typename promote_storage_type<typename traits<Lhs>::StorageKind,
+                                           typename traits<Rhs>::StorageKind>::ret StorageKind;
+  typedef typename promote_index_type<typename traits<Lhs>::Index,
+                                         typename traits<Rhs>::Index>::type Index;
+  typedef typename Lhs::Nested LhsNested;
+  typedef typename Rhs::Nested RhsNested;
+  typedef typename remove_reference<LhsNested>::type _LhsNested;
+  typedef typename remove_reference<RhsNested>::type _RhsNested;
+  enum {
+    LhsCoeffReadCost = _LhsNested::CoeffReadCost,
+    RhsCoeffReadCost = _RhsNested::CoeffReadCost,
+    LhsFlags = _LhsNested::Flags,
+    RhsFlags = _RhsNested::Flags,
+    SameType = is_same<typename _LhsNested::Scalar,typename _RhsNested::Scalar>::value,
+    StorageOrdersAgree = (int(Lhs::Flags)&RowMajorBit)==(int(Rhs::Flags)&RowMajorBit),
+    Flags0 = (int(LhsFlags) | int(RhsFlags)) & (
+        HereditaryBits
+      | (int(LhsFlags) & int(RhsFlags) &
+           ( AlignedBit
+           | (StorageOrdersAgree ? LinearAccessBit : 0)
+           | (functor_traits<BinaryOp>::PacketAccess && StorageOrdersAgree && SameType ? PacketAccessBit : 0)
+           )
+        )
+     ),
+    Flags = (Flags0 & ~RowMajorBit) | (LhsFlags & RowMajorBit),
+    Cost0 = EIGEN_ADD_COST(LhsCoeffReadCost,RhsCoeffReadCost),
+    CoeffReadCost = EIGEN_ADD_COST(Cost0,functor_traits<BinaryOp>::Cost)
+  };
+};
+} // end namespace internal
+
+// we require Lhs and Rhs to have the same scalar type. Currently there is no example of a binary functor
+// that would take two operands of different types. If there were such an example, then this check should be
+// moved to the BinaryOp functors, on a per-case basis. This would however require a change in the BinaryOp functors, as
+// currently they take only one typename Scalar template parameter.
+// It is tempting to always allow mixing different types but remember that this is often impossible in the vectorized paths.
+// So allowing mixing different types gives very unexpected errors when enabling vectorization, when the user tries to
+// add together a float matrix and a double matrix.
+#define EIGEN_CHECK_BINARY_COMPATIBILIY(BINOP,LHS,RHS) \
+  EIGEN_STATIC_ASSERT((internal::functor_is_product_like<BINOP>::ret \
+                        ? int(internal::scalar_product_traits<LHS, RHS>::Defined) \
+                        : int(internal::is_same<LHS, RHS>::value)), \
+    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+template<typename BinaryOp, typename Lhs, typename Rhs, typename StorageKind>
+class CwiseBinaryOpImpl;
+
+template<typename BinaryOp, typename Lhs, typename Rhs>
+class CwiseBinaryOp : internal::no_assignment_operator,
+  public CwiseBinaryOpImpl<
+          BinaryOp, Lhs, Rhs,
+          typename internal::promote_storage_type<typename internal::traits<Lhs>::StorageKind,
+                                           typename internal::traits<Rhs>::StorageKind>::ret>
+{
+  public:
+
+    typedef typename CwiseBinaryOpImpl<
+        BinaryOp, Lhs, Rhs,
+        typename internal::promote_storage_type<typename internal::traits<Lhs>::StorageKind,
+                                         typename internal::traits<Rhs>::StorageKind>::ret>::Base Base;
+    EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseBinaryOp)
+
+    typedef typename internal::nested<Lhs>::type LhsNested;
+    typedef typename internal::nested<Rhs>::type RhsNested;
+    typedef typename internal::remove_reference<LhsNested>::type _LhsNested;
+    typedef typename internal::remove_reference<RhsNested>::type _RhsNested;
+
+    EIGEN_STRONG_INLINE CwiseBinaryOp(const Lhs& aLhs, const Rhs& aRhs, const BinaryOp& func = BinaryOp())
+      : m_lhs(aLhs), m_rhs(aRhs), m_functor(func)
+    {
+      EIGEN_CHECK_BINARY_COMPATIBILIY(BinaryOp,typename Lhs::Scalar,typename Rhs::Scalar);
+      // require the sizes to match
+      EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Lhs, Rhs)
+      eigen_assert(aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols());
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const {
+      // return the fixed size type if available to enable compile time optimizations
+      if (internal::traits<typename internal::remove_all<LhsNested>::type>::RowsAtCompileTime==Dynamic)
+        return m_rhs.rows();
+      else
+        return m_lhs.rows();
+    }
+    EIGEN_STRONG_INLINE Index cols() const {
+      // return the fixed size type if available to enable compile time optimizations
+      if (internal::traits<typename internal::remove_all<LhsNested>::type>::ColsAtCompileTime==Dynamic)
+        return m_rhs.cols();
+      else
+        return m_lhs.cols();
+    }
+
+    /** \returns the left hand side nested expression */
+    const _LhsNested& lhs() const { return m_lhs; }
+    /** \returns the right hand side nested expression */
+    const _RhsNested& rhs() const { return m_rhs; }
+    /** \returns the functor representing the binary operation */
+    const BinaryOp& functor() const { return m_functor; }
+
+  protected:
+    LhsNested m_lhs;
+    RhsNested m_rhs;
+    const BinaryOp m_functor;
+};
+
+template<typename BinaryOp, typename Lhs, typename Rhs>
+class CwiseBinaryOpImpl<BinaryOp, Lhs, Rhs, Dense>
+  : public internal::dense_xpr_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >::type
+{
+    typedef CwiseBinaryOp<BinaryOp, Lhs, Rhs> Derived;
+  public:
+
+    typedef typename internal::dense_xpr_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE( Derived )
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index rowId, Index colId) const
+    {
+      return derived().functor()(derived().lhs().coeff(rowId, colId),
+                                 derived().rhs().coeff(rowId, colId));
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index rowId, Index colId) const
+    {
+      return derived().functor().packetOp(derived().lhs().template packet<LoadMode>(rowId, colId),
+                                          derived().rhs().template packet<LoadMode>(rowId, colId));
+    }
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index index) const
+    {
+      return derived().functor()(derived().lhs().coeff(index),
+                                 derived().rhs().coeff(index));
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index index) const
+    {
+      return derived().functor().packetOp(derived().lhs().template packet<LoadMode>(index),
+                                          derived().rhs().template packet<LoadMode>(index));
+    }
+};
+
+/** replaces \c *this by \c *this - \a other.
+  *
+  * \returns a reference to \c *this
+  */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+MatrixBase<Derived>::operator-=(const MatrixBase<OtherDerived> &other)
+{
+  SelfCwiseBinaryOp<internal::scalar_difference_op<Scalar>, Derived, OtherDerived> tmp(derived());
+  tmp = other.derived();
+  return derived();
+}
+
+/** replaces \c *this by \c *this + \a other.
+  *
+  * \returns a reference to \c *this
+  */
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived &
+MatrixBase<Derived>::operator+=(const MatrixBase<OtherDerived>& other)
+{
+  SelfCwiseBinaryOp<internal::scalar_sum_op<Scalar>, Derived, OtherDerived> tmp(derived());
+  tmp = other.derived();
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_CWISE_BINARY_OP_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ArrayWrapper.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ArrayWrapper.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/ArrayWrapper.h	(revision 2476)
@@ -0,0 +1,264 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ARRAYWRAPPER_H
+#define EIGEN_ARRAYWRAPPER_H
+
+namespace Eigen { 
+
+/** \class ArrayWrapper
+  * \ingroup Core_Module
+  *
+  * \brief Expression of a mathematical vector or matrix as an array object
+  *
+  * This class is the return type of MatrixBase::array(), and most of the time
+  * this is the only way it is use.
+  *
+  * \sa MatrixBase::array(), class MatrixWrapper
+  */
+
+namespace internal {
+template<typename ExpressionType>
+struct traits<ArrayWrapper<ExpressionType> >
+  : public traits<typename remove_all<typename ExpressionType::Nested>::type >
+{
+  typedef ArrayXpr XprKind;
+  // Let's remove NestByRefBit
+  enum {
+    Flags0 = traits<typename remove_all<typename ExpressionType::Nested>::type >::Flags,
+    Flags = Flags0 & ~NestByRefBit
+  };
+};
+}
+
+template<typename ExpressionType>
+class ArrayWrapper : public ArrayBase<ArrayWrapper<ExpressionType> >
+{
+  public:
+    typedef ArrayBase<ArrayWrapper> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(ArrayWrapper)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(ArrayWrapper)
+
+    typedef typename internal::conditional<
+                       internal::is_lvalue<ExpressionType>::value,
+                       Scalar,
+                       const Scalar
+                     >::type ScalarWithConstIfNotLvalue;
+
+    typedef typename internal::nested<ExpressionType>::type NestedExpressionType;
+
+    inline ArrayWrapper(ExpressionType& matrix) : m_expression(matrix) {}
+
+    inline Index rows() const { return m_expression.rows(); }
+    inline Index cols() const { return m_expression.cols(); }
+    inline Index outerStride() const { return m_expression.outerStride(); }
+    inline Index innerStride() const { return m_expression.innerStride(); }
+
+    inline ScalarWithConstIfNotLvalue* data() { return m_expression.const_cast_derived().data(); }
+    inline const Scalar* data() const { return m_expression.data(); }
+
+    inline CoeffReturnType coeff(Index rowId, Index colId) const
+    {
+      return m_expression.coeff(rowId, colId);
+    }
+
+    inline Scalar& coeffRef(Index rowId, Index colId)
+    {
+      return m_expression.const_cast_derived().coeffRef(rowId, colId);
+    }
+
+    inline const Scalar& coeffRef(Index rowId, Index colId) const
+    {
+      return m_expression.const_cast_derived().coeffRef(rowId, colId);
+    }
+
+    inline CoeffReturnType coeff(Index index) const
+    {
+      return m_expression.coeff(index);
+    }
+
+    inline Scalar& coeffRef(Index index)
+    {
+      return m_expression.const_cast_derived().coeffRef(index);
+    }
+
+    inline const Scalar& coeffRef(Index index) const
+    {
+      return m_expression.const_cast_derived().coeffRef(index);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index rowId, Index colId) const
+    {
+      return m_expression.template packet<LoadMode>(rowId, colId);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index rowId, Index colId, const PacketScalar& val)
+    {
+      m_expression.const_cast_derived().template writePacket<LoadMode>(rowId, colId, val);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index index) const
+    {
+      return m_expression.template packet<LoadMode>(index);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index index, const PacketScalar& val)
+    {
+      m_expression.const_cast_derived().template writePacket<LoadMode>(index, val);
+    }
+
+    template<typename Dest>
+    inline void evalTo(Dest& dst) const { dst = m_expression; }
+
+    const typename internal::remove_all<NestedExpressionType>::type& 
+    nestedExpression() const 
+    {
+      return m_expression;
+    }
+
+    /** Forwards the resizing request to the nested expression
+      * \sa DenseBase::resize(Index)  */
+    void resize(Index newSize) { m_expression.const_cast_derived().resize(newSize); }
+    /** Forwards the resizing request to the nested expression
+      * \sa DenseBase::resize(Index,Index)*/
+    void resize(Index nbRows, Index nbCols) { m_expression.const_cast_derived().resize(nbRows,nbCols); }
+
+  protected:
+    NestedExpressionType m_expression;
+};
+
+/** \class MatrixWrapper
+  * \ingroup Core_Module
+  *
+  * \brief Expression of an array as a mathematical vector or matrix
+  *
+  * This class is the return type of ArrayBase::matrix(), and most of the time
+  * this is the only way it is use.
+  *
+  * \sa MatrixBase::matrix(), class ArrayWrapper
+  */
+
+namespace internal {
+template<typename ExpressionType>
+struct traits<MatrixWrapper<ExpressionType> >
+ : public traits<typename remove_all<typename ExpressionType::Nested>::type >
+{
+  typedef MatrixXpr XprKind;
+  // Let's remove NestByRefBit
+  enum {
+    Flags0 = traits<typename remove_all<typename ExpressionType::Nested>::type >::Flags,
+    Flags = Flags0 & ~NestByRefBit
+  };
+};
+}
+
+template<typename ExpressionType>
+class MatrixWrapper : public MatrixBase<MatrixWrapper<ExpressionType> >
+{
+  public:
+    typedef MatrixBase<MatrixWrapper<ExpressionType> > Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(MatrixWrapper)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(MatrixWrapper)
+
+    typedef typename internal::conditional<
+                       internal::is_lvalue<ExpressionType>::value,
+                       Scalar,
+                       const Scalar
+                     >::type ScalarWithConstIfNotLvalue;
+
+    typedef typename internal::nested<ExpressionType>::type NestedExpressionType;
+
+    inline MatrixWrapper(ExpressionType& a_matrix) : m_expression(a_matrix) {}
+
+    inline Index rows() const { return m_expression.rows(); }
+    inline Index cols() const { return m_expression.cols(); }
+    inline Index outerStride() const { return m_expression.outerStride(); }
+    inline Index innerStride() const { return m_expression.innerStride(); }
+
+    inline ScalarWithConstIfNotLvalue* data() { return m_expression.const_cast_derived().data(); }
+    inline const Scalar* data() const { return m_expression.data(); }
+
+    inline CoeffReturnType coeff(Index rowId, Index colId) const
+    {
+      return m_expression.coeff(rowId, colId);
+    }
+
+    inline Scalar& coeffRef(Index rowId, Index colId)
+    {
+      return m_expression.const_cast_derived().coeffRef(rowId, colId);
+    }
+
+    inline const Scalar& coeffRef(Index rowId, Index colId) const
+    {
+      return m_expression.derived().coeffRef(rowId, colId);
+    }
+
+    inline CoeffReturnType coeff(Index index) const
+    {
+      return m_expression.coeff(index);
+    }
+
+    inline Scalar& coeffRef(Index index)
+    {
+      return m_expression.const_cast_derived().coeffRef(index);
+    }
+
+    inline const Scalar& coeffRef(Index index) const
+    {
+      return m_expression.const_cast_derived().coeffRef(index);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index rowId, Index colId) const
+    {
+      return m_expression.template packet<LoadMode>(rowId, colId);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index rowId, Index colId, const PacketScalar& val)
+    {
+      m_expression.const_cast_derived().template writePacket<LoadMode>(rowId, colId, val);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index index) const
+    {
+      return m_expression.template packet<LoadMode>(index);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index index, const PacketScalar& val)
+    {
+      m_expression.const_cast_derived().template writePacket<LoadMode>(index, val);
+    }
+
+    const typename internal::remove_all<NestedExpressionType>::type& 
+    nestedExpression() const 
+    {
+      return m_expression;
+    }
+
+    /** Forwards the resizing request to the nested expression
+      * \sa DenseBase::resize(Index)  */
+    void resize(Index newSize) { m_expression.const_cast_derived().resize(newSize); }
+    /** Forwards the resizing request to the nested expression
+      * \sa DenseBase::resize(Index,Index)*/
+    void resize(Index nbRows, Index nbCols) { m_expression.const_cast_derived().resize(nbRows,nbCols); }
+
+  protected:
+    NestedExpressionType m_expression;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_ARRAYWRAPPER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CwiseNullaryOp.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CwiseNullaryOp.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CwiseNullaryOp.h	(revision 2476)
@@ -0,0 +1,864 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CWISE_NULLARY_OP_H
+#define EIGEN_CWISE_NULLARY_OP_H
+
+namespace Eigen {
+
+/** \class CwiseNullaryOp
+  * \ingroup Core_Module
+  *
+  * \brief Generic expression of a matrix where all coefficients are defined by a functor
+  *
+  * \param NullaryOp template functor implementing the operator
+  * \param PlainObjectType the underlying plain matrix/array type
+  *
+  * This class represents an expression of a generic nullary operator.
+  * It is the return type of the Ones(), Zero(), Constant(), Identity() and Random() methods,
+  * and most of the time this is the only way it is used.
+  *
+  * However, if you want to write a function returning such an expression, you
+  * will need to use this class.
+  *
+  * \sa class CwiseUnaryOp, class CwiseBinaryOp, DenseBase::NullaryExpr()
+  */
+
+namespace internal {
+template<typename NullaryOp, typename PlainObjectType>
+struct traits<CwiseNullaryOp<NullaryOp, PlainObjectType> > : traits<PlainObjectType>
+{
+  enum {
+    Flags = (traits<PlainObjectType>::Flags
+      & (  HereditaryBits
+         | (functor_has_linear_access<NullaryOp>::ret ? LinearAccessBit : 0)
+         | (functor_traits<NullaryOp>::PacketAccess ? PacketAccessBit : 0)))
+      | (functor_traits<NullaryOp>::IsRepeatable ? 0 : EvalBeforeNestingBit),
+    CoeffReadCost = functor_traits<NullaryOp>::Cost
+  };
+};
+}
+
+template<typename NullaryOp, typename PlainObjectType>
+class CwiseNullaryOp : internal::no_assignment_operator,
+  public internal::dense_xpr_base< CwiseNullaryOp<NullaryOp, PlainObjectType> >::type
+{
+  public:
+
+    typedef typename internal::dense_xpr_base<CwiseNullaryOp>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(CwiseNullaryOp)
+
+    CwiseNullaryOp(Index nbRows, Index nbCols, const NullaryOp& func = NullaryOp())
+      : m_rows(nbRows), m_cols(nbCols), m_functor(func)
+    {
+      eigen_assert(nbRows >= 0
+            && (RowsAtCompileTime == Dynamic || RowsAtCompileTime == nbRows)
+            &&  nbCols >= 0
+            && (ColsAtCompileTime == Dynamic || ColsAtCompileTime == nbCols));
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_rows.value(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_cols.value(); }
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index rowId, Index colId) const
+    {
+      return m_functor(rowId, colId);
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index rowId, Index colId) const
+    {
+      return m_functor.packetOp(rowId, colId);
+    }
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index index) const
+    {
+      return m_functor(index);
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index index) const
+    {
+      return m_functor.packetOp(index);
+    }
+
+    /** \returns the functor representing the nullary operation */
+    const NullaryOp& functor() const { return m_functor; }
+
+  protected:
+    const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_rows;
+    const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_cols;
+    const NullaryOp m_functor;
+};
+
+
+/** \returns an expression of a matrix defined by a custom functor \a func
+  *
+  * The parameters \a rows and \a cols are the number of rows and of columns of
+  * the returned matrix. Must be compatible with this MatrixBase type.
+  *
+  * This variant is meant to be used for dynamic-size matrix types. For fixed-size types,
+  * it is redundant to pass \a rows and \a cols as arguments, so Zero() should be used
+  * instead.
+  *
+  * The template parameter \a CustomNullaryOp is the type of the functor.
+  *
+  * \sa class CwiseNullaryOp
+  */
+template<typename Derived>
+template<typename CustomNullaryOp>
+EIGEN_STRONG_INLINE const CwiseNullaryOp<CustomNullaryOp, Derived>
+DenseBase<Derived>::NullaryExpr(Index rows, Index cols, const CustomNullaryOp& func)
+{
+  return CwiseNullaryOp<CustomNullaryOp, Derived>(rows, cols, func);
+}
+
+/** \returns an expression of a matrix defined by a custom functor \a func
+  *
+  * The parameter \a size is the size of the returned vector.
+  * Must be compatible with this MatrixBase type.
+  *
+  * \only_for_vectors
+  *
+  * This variant is meant to be used for dynamic-size vector types. For fixed-size types,
+  * it is redundant to pass \a size as argument, so Zero() should be used
+  * instead.
+  *
+  * The template parameter \a CustomNullaryOp is the type of the functor.
+  *
+  * \sa class CwiseNullaryOp
+  */
+template<typename Derived>
+template<typename CustomNullaryOp>
+EIGEN_STRONG_INLINE const CwiseNullaryOp<CustomNullaryOp, Derived>
+DenseBase<Derived>::NullaryExpr(Index size, const CustomNullaryOp& func)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  if(RowsAtCompileTime == 1) return CwiseNullaryOp<CustomNullaryOp, Derived>(1, size, func);
+  else return CwiseNullaryOp<CustomNullaryOp, Derived>(size, 1, func);
+}
+
+/** \returns an expression of a matrix defined by a custom functor \a func
+  *
+  * This variant is only for fixed-size DenseBase types. For dynamic-size types, you
+  * need to use the variants taking size arguments.
+  *
+  * The template parameter \a CustomNullaryOp is the type of the functor.
+  *
+  * \sa class CwiseNullaryOp
+  */
+template<typename Derived>
+template<typename CustomNullaryOp>
+EIGEN_STRONG_INLINE const CwiseNullaryOp<CustomNullaryOp, Derived>
+DenseBase<Derived>::NullaryExpr(const CustomNullaryOp& func)
+{
+  return CwiseNullaryOp<CustomNullaryOp, Derived>(RowsAtCompileTime, ColsAtCompileTime, func);
+}
+
+/** \returns an expression of a constant matrix of value \a value
+  *
+  * The parameters \a nbRows and \a nbCols are the number of rows and of columns of
+  * the returned matrix. Must be compatible with this DenseBase type.
+  *
+  * This variant is meant to be used for dynamic-size matrix types. For fixed-size types,
+  * it is redundant to pass \a nbRows and \a nbCols as arguments, so Zero() should be used
+  * instead.
+  *
+  * The template parameter \a CustomNullaryOp is the type of the functor.
+  *
+  * \sa class CwiseNullaryOp
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Constant(Index nbRows, Index nbCols, const Scalar& value)
+{
+  return DenseBase<Derived>::NullaryExpr(nbRows, nbCols, internal::scalar_constant_op<Scalar>(value));
+}
+
+/** \returns an expression of a constant matrix of value \a value
+  *
+  * The parameter \a size is the size of the returned vector.
+  * Must be compatible with this DenseBase type.
+  *
+  * \only_for_vectors
+  *
+  * This variant is meant to be used for dynamic-size vector types. For fixed-size types,
+  * it is redundant to pass \a size as argument, so Zero() should be used
+  * instead.
+  *
+  * The template parameter \a CustomNullaryOp is the type of the functor.
+  *
+  * \sa class CwiseNullaryOp
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Constant(Index size, const Scalar& value)
+{
+  return DenseBase<Derived>::NullaryExpr(size, internal::scalar_constant_op<Scalar>(value));
+}
+
+/** \returns an expression of a constant matrix of value \a value
+  *
+  * This variant is only for fixed-size DenseBase types. For dynamic-size types, you
+  * need to use the variants taking size arguments.
+  *
+  * The template parameter \a CustomNullaryOp is the type of the functor.
+  *
+  * \sa class CwiseNullaryOp
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Constant(const Scalar& value)
+{
+  EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
+  return DenseBase<Derived>::NullaryExpr(RowsAtCompileTime, ColsAtCompileTime, internal::scalar_constant_op<Scalar>(value));
+}
+
+/**
+  * \brief Sets a linearly space vector.
+  *
+  * The function generates 'size' equally spaced values in the closed interval [low,high].
+  * This particular version of LinSpaced() uses sequential access, i.e. vector access is
+  * assumed to be a(0), a(1), ..., a(size). This assumption allows for better vectorization
+  * and yields faster code than the random access version.
+  *
+  * When size is set to 1, a vector of length 1 containing 'high' is returned.
+  *
+  * \only_for_vectors
+  *
+  * Example: \include DenseBase_LinSpaced_seq.cpp
+  * Output: \verbinclude DenseBase_LinSpaced_seq.out
+  *
+  * \sa setLinSpaced(Index,const Scalar&,const Scalar&), LinSpaced(Index,Scalar,Scalar), CwiseNullaryOp
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::SequentialLinSpacedReturnType
+DenseBase<Derived>::LinSpaced(Sequential_t, Index size, const Scalar& low, const Scalar& high)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return DenseBase<Derived>::NullaryExpr(size, internal::linspaced_op<Scalar,false>(low,high,size));
+}
+
+/**
+  * \copydoc DenseBase::LinSpaced(Sequential_t, Index, const Scalar&, const Scalar&)
+  * Special version for fixed size types which does not require the size parameter.
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::SequentialLinSpacedReturnType
+DenseBase<Derived>::LinSpaced(Sequential_t, const Scalar& low, const Scalar& high)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
+  return DenseBase<Derived>::NullaryExpr(Derived::SizeAtCompileTime, internal::linspaced_op<Scalar,false>(low,high,Derived::SizeAtCompileTime));
+}
+
+/**
+  * \brief Sets a linearly space vector.
+  *
+  * The function generates 'size' equally spaced values in the closed interval [low,high].
+  * When size is set to 1, a vector of length 1 containing 'high' is returned.
+  *
+  * \only_for_vectors
+  *
+  * Example: \include DenseBase_LinSpaced.cpp
+  * Output: \verbinclude DenseBase_LinSpaced.out
+  *
+  * \sa setLinSpaced(Index,const Scalar&,const Scalar&), LinSpaced(Sequential_t,Index,const Scalar&,const Scalar&,Index), CwiseNullaryOp
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::RandomAccessLinSpacedReturnType
+DenseBase<Derived>::LinSpaced(Index size, const Scalar& low, const Scalar& high)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return DenseBase<Derived>::NullaryExpr(size, internal::linspaced_op<Scalar,true>(low,high,size));
+}
+
+/**
+  * \copydoc DenseBase::LinSpaced(Index, const Scalar&, const Scalar&)
+  * Special version for fixed size types which does not require the size parameter.
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::RandomAccessLinSpacedReturnType
+DenseBase<Derived>::LinSpaced(const Scalar& low, const Scalar& high)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
+  return DenseBase<Derived>::NullaryExpr(Derived::SizeAtCompileTime, internal::linspaced_op<Scalar,true>(low,high,Derived::SizeAtCompileTime));
+}
+
+/** \returns true if all coefficients in this matrix are approximately equal to \a val, to within precision \a prec */
+template<typename Derived>
+bool DenseBase<Derived>::isApproxToConstant
+(const Scalar& val, const RealScalar& prec) const
+{
+  for(Index j = 0; j < cols(); ++j)
+    for(Index i = 0; i < rows(); ++i)
+      if(!internal::isApprox(this->coeff(i, j), val, prec))
+        return false;
+  return true;
+}
+
+/** This is just an alias for isApproxToConstant().
+  *
+  * \returns true if all coefficients in this matrix are approximately equal to \a value, to within precision \a prec */
+template<typename Derived>
+bool DenseBase<Derived>::isConstant
+(const Scalar& val, const RealScalar& prec) const
+{
+  return isApproxToConstant(val, prec);
+}
+
+/** Alias for setConstant(): sets all coefficients in this expression to \a val.
+  *
+  * \sa setConstant(), Constant(), class CwiseNullaryOp
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE void DenseBase<Derived>::fill(const Scalar& val)
+{
+  setConstant(val);
+}
+
+/** Sets all coefficients in this expression to \a value.
+  *
+  * \sa fill(), setConstant(Index,const Scalar&), setConstant(Index,Index,const Scalar&), setZero(), setOnes(), Constant(), class CwiseNullaryOp, setZero(), setOnes()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::setConstant(const Scalar& val)
+{
+  return derived() = Constant(rows(), cols(), val);
+}
+
+/** Resizes to the given \a size, and sets all coefficients in this expression to the given \a value.
+  *
+  * \only_for_vectors
+  *
+  * Example: \include Matrix_setConstant_int.cpp
+  * Output: \verbinclude Matrix_setConstant_int.out
+  *
+  * \sa MatrixBase::setConstant(const Scalar&), setConstant(Index,Index,const Scalar&), class CwiseNullaryOp, MatrixBase::Constant(const Scalar&)
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setConstant(Index size, const Scalar& val)
+{
+  resize(size);
+  return setConstant(val);
+}
+
+/** Resizes to the given size, and sets all coefficients in this expression to the given \a value.
+  *
+  * \param nbRows the new number of rows
+  * \param nbCols the new number of columns
+  * \param val the value to which all coefficients are set
+  *
+  * Example: \include Matrix_setConstant_int_int.cpp
+  * Output: \verbinclude Matrix_setConstant_int_int.out
+  *
+  * \sa MatrixBase::setConstant(const Scalar&), setConstant(Index,const Scalar&), class CwiseNullaryOp, MatrixBase::Constant(const Scalar&)
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setConstant(Index nbRows, Index nbCols, const Scalar& val)
+{
+  resize(nbRows, nbCols);
+  return setConstant(val);
+}
+
+/**
+  * \brief Sets a linearly space vector.
+  *
+  * The function generates 'size' equally spaced values in the closed interval [low,high].
+  * When size is set to 1, a vector of length 1 containing 'high' is returned.
+  *
+  * \only_for_vectors
+  *
+  * Example: \include DenseBase_setLinSpaced.cpp
+  * Output: \verbinclude DenseBase_setLinSpaced.out
+  *
+  * \sa CwiseNullaryOp
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::setLinSpaced(Index newSize, const Scalar& low, const Scalar& high)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return derived() = Derived::NullaryExpr(newSize, internal::linspaced_op<Scalar,false>(low,high,newSize));
+}
+
+/**
+  * \brief Sets a linearly space vector.
+  *
+  * The function fill *this with equally spaced values in the closed interval [low,high].
+  * When size is set to 1, a vector of length 1 containing 'high' is returned.
+  *
+  * \only_for_vectors
+  *
+  * \sa setLinSpaced(Index, const Scalar&, const Scalar&), CwiseNullaryOp
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::setLinSpaced(const Scalar& low, const Scalar& high)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return setLinSpaced(size(), low, high);
+}
+
+// zero:
+
+/** \returns an expression of a zero matrix.
+  *
+  * The parameters \a rows and \a cols are the number of rows and of columns of
+  * the returned matrix. Must be compatible with this MatrixBase type.
+  *
+  * This variant is meant to be used for dynamic-size matrix types. For fixed-size types,
+  * it is redundant to pass \a rows and \a cols as arguments, so Zero() should be used
+  * instead.
+  *
+  * Example: \include MatrixBase_zero_int_int.cpp
+  * Output: \verbinclude MatrixBase_zero_int_int.out
+  *
+  * \sa Zero(), Zero(Index)
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Zero(Index nbRows, Index nbCols)
+{
+  return Constant(nbRows, nbCols, Scalar(0));
+}
+
+/** \returns an expression of a zero vector.
+  *
+  * The parameter \a size is the size of the returned vector.
+  * Must be compatible with this MatrixBase type.
+  *
+  * \only_for_vectors
+  *
+  * This variant is meant to be used for dynamic-size vector types. For fixed-size types,
+  * it is redundant to pass \a size as argument, so Zero() should be used
+  * instead.
+  *
+  * Example: \include MatrixBase_zero_int.cpp
+  * Output: \verbinclude MatrixBase_zero_int.out
+  *
+  * \sa Zero(), Zero(Index,Index)
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Zero(Index size)
+{
+  return Constant(size, Scalar(0));
+}
+
+/** \returns an expression of a fixed-size zero matrix or vector.
+  *
+  * This variant is only for fixed-size MatrixBase types. For dynamic-size types, you
+  * need to use the variants taking size arguments.
+  *
+  * Example: \include MatrixBase_zero.cpp
+  * Output: \verbinclude MatrixBase_zero.out
+  *
+  * \sa Zero(Index), Zero(Index,Index)
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Zero()
+{
+  return Constant(Scalar(0));
+}
+
+/** \returns true if *this is approximately equal to the zero matrix,
+  *          within the precision given by \a prec.
+  *
+  * Example: \include MatrixBase_isZero.cpp
+  * Output: \verbinclude MatrixBase_isZero.out
+  *
+  * \sa class CwiseNullaryOp, Zero()
+  */
+template<typename Derived>
+bool DenseBase<Derived>::isZero(const RealScalar& prec) const
+{
+  for(Index j = 0; j < cols(); ++j)
+    for(Index i = 0; i < rows(); ++i)
+      if(!internal::isMuchSmallerThan(this->coeff(i, j), static_cast<Scalar>(1), prec))
+        return false;
+  return true;
+}
+
+/** Sets all coefficients in this expression to zero.
+  *
+  * Example: \include MatrixBase_setZero.cpp
+  * Output: \verbinclude MatrixBase_setZero.out
+  *
+  * \sa class CwiseNullaryOp, Zero()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::setZero()
+{
+  return setConstant(Scalar(0));
+}
+
+/** Resizes to the given \a size, and sets all coefficients in this expression to zero.
+  *
+  * \only_for_vectors
+  *
+  * Example: \include Matrix_setZero_int.cpp
+  * Output: \verbinclude Matrix_setZero_int.out
+  *
+  * \sa DenseBase::setZero(), setZero(Index,Index), class CwiseNullaryOp, DenseBase::Zero()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setZero(Index newSize)
+{
+  resize(newSize);
+  return setConstant(Scalar(0));
+}
+
+/** Resizes to the given size, and sets all coefficients in this expression to zero.
+  *
+  * \param nbRows the new number of rows
+  * \param nbCols the new number of columns
+  *
+  * Example: \include Matrix_setZero_int_int.cpp
+  * Output: \verbinclude Matrix_setZero_int_int.out
+  *
+  * \sa DenseBase::setZero(), setZero(Index), class CwiseNullaryOp, DenseBase::Zero()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setZero(Index nbRows, Index nbCols)
+{
+  resize(nbRows, nbCols);
+  return setConstant(Scalar(0));
+}
+
+// ones:
+
+/** \returns an expression of a matrix where all coefficients equal one.
+  *
+  * The parameters \a nbRows and \a nbCols are the number of rows and of columns of
+  * the returned matrix. Must be compatible with this MatrixBase type.
+  *
+  * This variant is meant to be used for dynamic-size matrix types. For fixed-size types,
+  * it is redundant to pass \a rows and \a cols as arguments, so Ones() should be used
+  * instead.
+  *
+  * Example: \include MatrixBase_ones_int_int.cpp
+  * Output: \verbinclude MatrixBase_ones_int_int.out
+  *
+  * \sa Ones(), Ones(Index), isOnes(), class Ones
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Ones(Index nbRows, Index nbCols)
+{
+  return Constant(nbRows, nbCols, Scalar(1));
+}
+
+/** \returns an expression of a vector where all coefficients equal one.
+  *
+  * The parameter \a newSize is the size of the returned vector.
+  * Must be compatible with this MatrixBase type.
+  *
+  * \only_for_vectors
+  *
+  * This variant is meant to be used for dynamic-size vector types. For fixed-size types,
+  * it is redundant to pass \a size as argument, so Ones() should be used
+  * instead.
+  *
+  * Example: \include MatrixBase_ones_int.cpp
+  * Output: \verbinclude MatrixBase_ones_int.out
+  *
+  * \sa Ones(), Ones(Index,Index), isOnes(), class Ones
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Ones(Index newSize)
+{
+  return Constant(newSize, Scalar(1));
+}
+
+/** \returns an expression of a fixed-size matrix or vector where all coefficients equal one.
+  *
+  * This variant is only for fixed-size MatrixBase types. For dynamic-size types, you
+  * need to use the variants taking size arguments.
+  *
+  * Example: \include MatrixBase_ones.cpp
+  * Output: \verbinclude MatrixBase_ones.out
+  *
+  * \sa Ones(Index), Ones(Index,Index), isOnes(), class Ones
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename DenseBase<Derived>::ConstantReturnType
+DenseBase<Derived>::Ones()
+{
+  return Constant(Scalar(1));
+}
+
+/** \returns true if *this is approximately equal to the matrix where all coefficients
+  *          are equal to 1, within the precision given by \a prec.
+  *
+  * Example: \include MatrixBase_isOnes.cpp
+  * Output: \verbinclude MatrixBase_isOnes.out
+  *
+  * \sa class CwiseNullaryOp, Ones()
+  */
+template<typename Derived>
+bool DenseBase<Derived>::isOnes
+(const RealScalar& prec) const
+{
+  return isApproxToConstant(Scalar(1), prec);
+}
+
+/** Sets all coefficients in this expression to one.
+  *
+  * Example: \include MatrixBase_setOnes.cpp
+  * Output: \verbinclude MatrixBase_setOnes.out
+  *
+  * \sa class CwiseNullaryOp, Ones()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::setOnes()
+{
+  return setConstant(Scalar(1));
+}
+
+/** Resizes to the given \a newSize, and sets all coefficients in this expression to one.
+  *
+  * \only_for_vectors
+  *
+  * Example: \include Matrix_setOnes_int.cpp
+  * Output: \verbinclude Matrix_setOnes_int.out
+  *
+  * \sa MatrixBase::setOnes(), setOnes(Index,Index), class CwiseNullaryOp, MatrixBase::Ones()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setOnes(Index newSize)
+{
+  resize(newSize);
+  return setConstant(Scalar(1));
+}
+
+/** Resizes to the given size, and sets all coefficients in this expression to one.
+  *
+  * \param nbRows the new number of rows
+  * \param nbCols the new number of columns
+  *
+  * Example: \include Matrix_setOnes_int_int.cpp
+  * Output: \verbinclude Matrix_setOnes_int_int.out
+  *
+  * \sa MatrixBase::setOnes(), setOnes(Index), class CwiseNullaryOp, MatrixBase::Ones()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setOnes(Index nbRows, Index nbCols)
+{
+  resize(nbRows, nbCols);
+  return setConstant(Scalar(1));
+}
+
+// Identity:
+
+/** \returns an expression of the identity matrix (not necessarily square).
+  *
+  * The parameters \a nbRows and \a nbCols are the number of rows and of columns of
+  * the returned matrix. Must be compatible with this MatrixBase type.
+  *
+  * This variant is meant to be used for dynamic-size matrix types. For fixed-size types,
+  * it is redundant to pass \a rows and \a cols as arguments, so Identity() should be used
+  * instead.
+  *
+  * Example: \include MatrixBase_identity_int_int.cpp
+  * Output: \verbinclude MatrixBase_identity_int_int.out
+  *
+  * \sa Identity(), setIdentity(), isIdentity()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::IdentityReturnType
+MatrixBase<Derived>::Identity(Index nbRows, Index nbCols)
+{
+  return DenseBase<Derived>::NullaryExpr(nbRows, nbCols, internal::scalar_identity_op<Scalar>());
+}
+
+/** \returns an expression of the identity matrix (not necessarily square).
+  *
+  * This variant is only for fixed-size MatrixBase types. For dynamic-size types, you
+  * need to use the variant taking size arguments.
+  *
+  * Example: \include MatrixBase_identity.cpp
+  * Output: \verbinclude MatrixBase_identity.out
+  *
+  * \sa Identity(Index,Index), setIdentity(), isIdentity()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::IdentityReturnType
+MatrixBase<Derived>::Identity()
+{
+  EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
+  return MatrixBase<Derived>::NullaryExpr(RowsAtCompileTime, ColsAtCompileTime, internal::scalar_identity_op<Scalar>());
+}
+
+/** \returns true if *this is approximately equal to the identity matrix
+  *          (not necessarily square),
+  *          within the precision given by \a prec.
+  *
+  * Example: \include MatrixBase_isIdentity.cpp
+  * Output: \verbinclude MatrixBase_isIdentity.out
+  *
+  * \sa class CwiseNullaryOp, Identity(), Identity(Index,Index), setIdentity()
+  */
+template<typename Derived>
+bool MatrixBase<Derived>::isIdentity
+(const RealScalar& prec) const
+{
+  for(Index j = 0; j < cols(); ++j)
+  {
+    for(Index i = 0; i < rows(); ++i)
+    {
+      if(i == j)
+      {
+        if(!internal::isApprox(this->coeff(i, j), static_cast<Scalar>(1), prec))
+          return false;
+      }
+      else
+      {
+        if(!internal::isMuchSmallerThan(this->coeff(i, j), static_cast<RealScalar>(1), prec))
+          return false;
+      }
+    }
+  }
+  return true;
+}
+
+namespace internal {
+
+template<typename Derived, bool Big = (Derived::SizeAtCompileTime>=16)>
+struct setIdentity_impl
+{
+  static EIGEN_STRONG_INLINE Derived& run(Derived& m)
+  {
+    return m = Derived::Identity(m.rows(), m.cols());
+  }
+};
+
+template<typename Derived>
+struct setIdentity_impl<Derived, true>
+{
+  typedef typename Derived::Index Index;
+  static EIGEN_STRONG_INLINE Derived& run(Derived& m)
+  {
+    m.setZero();
+    const Index size = (std::min)(m.rows(), m.cols());
+    for(Index i = 0; i < size; ++i) m.coeffRef(i,i) = typename Derived::Scalar(1);
+    return m;
+  }
+};
+
+} // end namespace internal
+
+/** Writes the identity expression (not necessarily square) into *this.
+  *
+  * Example: \include MatrixBase_setIdentity.cpp
+  * Output: \verbinclude MatrixBase_setIdentity.out
+  *
+  * \sa class CwiseNullaryOp, Identity(), Identity(Index,Index), isIdentity()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::setIdentity()
+{
+  return internal::setIdentity_impl<Derived>::run(derived());
+}
+
+/** \brief Resizes to the given size, and writes the identity expression (not necessarily square) into *this.
+  *
+  * \param nbRows the new number of rows
+  * \param nbCols the new number of columns
+  *
+  * Example: \include Matrix_setIdentity_int_int.cpp
+  * Output: \verbinclude Matrix_setIdentity_int_int.out
+  *
+  * \sa MatrixBase::setIdentity(), class CwiseNullaryOp, MatrixBase::Identity()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::setIdentity(Index nbRows, Index nbCols)
+{
+  derived().resize(nbRows, nbCols);
+  return setIdentity();
+}
+
+/** \returns an expression of the i-th unit (basis) vector.
+  *
+  * \only_for_vectors
+  *
+  * \sa MatrixBase::Unit(Index), MatrixBase::UnitX(), MatrixBase::UnitY(), MatrixBase::UnitZ(), MatrixBase::UnitW()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::BasisReturnType MatrixBase<Derived>::Unit(Index newSize, Index i)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return BasisReturnType(SquareMatrixType::Identity(newSize,newSize), i);
+}
+
+/** \returns an expression of the i-th unit (basis) vector.
+  *
+  * \only_for_vectors
+  *
+  * This variant is for fixed-size vector only.
+  *
+  * \sa MatrixBase::Unit(Index,Index), MatrixBase::UnitX(), MatrixBase::UnitY(), MatrixBase::UnitZ(), MatrixBase::UnitW()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::BasisReturnType MatrixBase<Derived>::Unit(Index i)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return BasisReturnType(SquareMatrixType::Identity(),i);
+}
+
+/** \returns an expression of the X axis unit vector (1{,0}^*)
+  *
+  * \only_for_vectors
+  *
+  * \sa MatrixBase::Unit(Index,Index), MatrixBase::Unit(Index), MatrixBase::UnitY(), MatrixBase::UnitZ(), MatrixBase::UnitW()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::BasisReturnType MatrixBase<Derived>::UnitX()
+{ return Derived::Unit(0); }
+
+/** \returns an expression of the Y axis unit vector (0,1{,0}^*)
+  *
+  * \only_for_vectors
+  *
+  * \sa MatrixBase::Unit(Index,Index), MatrixBase::Unit(Index), MatrixBase::UnitY(), MatrixBase::UnitZ(), MatrixBase::UnitW()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::BasisReturnType MatrixBase<Derived>::UnitY()
+{ return Derived::Unit(1); }
+
+/** \returns an expression of the Z axis unit vector (0,0,1{,0}^*)
+  *
+  * \only_for_vectors
+  *
+  * \sa MatrixBase::Unit(Index,Index), MatrixBase::Unit(Index), MatrixBase::UnitY(), MatrixBase::UnitZ(), MatrixBase::UnitW()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::BasisReturnType MatrixBase<Derived>::UnitZ()
+{ return Derived::Unit(2); }
+
+/** \returns an expression of the W axis unit vector (0,0,0,1)
+  *
+  * \only_for_vectors
+  *
+  * \sa MatrixBase::Unit(Index,Index), MatrixBase::Unit(Index), MatrixBase::UnitY(), MatrixBase::UnitZ(), MatrixBase::UnitW()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE const typename MatrixBase<Derived>::BasisReturnType MatrixBase<Derived>::UnitW()
+{ return Derived::Unit(3); }
+
+} // end namespace Eigen
+
+#endif // EIGEN_CWISE_NULLARY_OP_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Random.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Random.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Random.h	(revision 2476)
@@ -0,0 +1,152 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_RANDOM_H
+#define EIGEN_RANDOM_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Scalar> struct scalar_random_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_random_op)
+  template<typename Index>
+  inline const Scalar operator() (Index, Index = 0) const { return random<Scalar>(); }
+};
+
+template<typename Scalar>
+struct functor_traits<scalar_random_op<Scalar> >
+{ enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = false, IsRepeatable = false }; };
+
+} // end namespace internal
+
+/** \returns a random matrix expression
+  *
+  * The parameters \a rows and \a cols are the number of rows and of columns of
+  * the returned matrix. Must be compatible with this MatrixBase type.
+  *
+  * This variant is meant to be used for dynamic-size matrix types. For fixed-size types,
+  * it is redundant to pass \a rows and \a cols as arguments, so Random() should be used
+  * instead.
+  *
+  * Example: \include MatrixBase_random_int_int.cpp
+  * Output: \verbinclude MatrixBase_random_int_int.out
+  *
+  * This expression has the "evaluate before nesting" flag so that it will be evaluated into
+  * a temporary matrix whenever it is nested in a larger expression. This prevents unexpected
+  * behavior with expressions involving random matrices.
+  *
+  * \sa MatrixBase::setRandom(), MatrixBase::Random(Index), MatrixBase::Random()
+  */
+template<typename Derived>
+inline const CwiseNullaryOp<internal::scalar_random_op<typename internal::traits<Derived>::Scalar>, Derived>
+DenseBase<Derived>::Random(Index rows, Index cols)
+{
+  return NullaryExpr(rows, cols, internal::scalar_random_op<Scalar>());
+}
+
+/** \returns a random vector expression
+  *
+  * The parameter \a size is the size of the returned vector.
+  * Must be compatible with this MatrixBase type.
+  *
+  * \only_for_vectors
+  *
+  * This variant is meant to be used for dynamic-size vector types. For fixed-size types,
+  * it is redundant to pass \a size as argument, so Random() should be used
+  * instead.
+  *
+  * Example: \include MatrixBase_random_int.cpp
+  * Output: \verbinclude MatrixBase_random_int.out
+  *
+  * This expression has the "evaluate before nesting" flag so that it will be evaluated into
+  * a temporary vector whenever it is nested in a larger expression. This prevents unexpected
+  * behavior with expressions involving random matrices.
+  *
+  * \sa MatrixBase::setRandom(), MatrixBase::Random(Index,Index), MatrixBase::Random()
+  */
+template<typename Derived>
+inline const CwiseNullaryOp<internal::scalar_random_op<typename internal::traits<Derived>::Scalar>, Derived>
+DenseBase<Derived>::Random(Index size)
+{
+  return NullaryExpr(size, internal::scalar_random_op<Scalar>());
+}
+
+/** \returns a fixed-size random matrix or vector expression
+  *
+  * This variant is only for fixed-size MatrixBase types. For dynamic-size types, you
+  * need to use the variants taking size arguments.
+  *
+  * Example: \include MatrixBase_random.cpp
+  * Output: \verbinclude MatrixBase_random.out
+  *
+  * This expression has the "evaluate before nesting" flag so that it will be evaluated into
+  * a temporary matrix whenever it is nested in a larger expression. This prevents unexpected
+  * behavior with expressions involving random matrices.
+  *
+  * \sa MatrixBase::setRandom(), MatrixBase::Random(Index,Index), MatrixBase::Random(Index)
+  */
+template<typename Derived>
+inline const CwiseNullaryOp<internal::scalar_random_op<typename internal::traits<Derived>::Scalar>, Derived>
+DenseBase<Derived>::Random()
+{
+  return NullaryExpr(RowsAtCompileTime, ColsAtCompileTime, internal::scalar_random_op<Scalar>());
+}
+
+/** Sets all coefficients in this expression to random values.
+  *
+  * Example: \include MatrixBase_setRandom.cpp
+  * Output: \verbinclude MatrixBase_setRandom.out
+  *
+  * \sa class CwiseNullaryOp, setRandom(Index), setRandom(Index,Index)
+  */
+template<typename Derived>
+inline Derived& DenseBase<Derived>::setRandom()
+{
+  return *this = Random(rows(), cols());
+}
+
+/** Resizes to the given \a newSize, and sets all coefficients in this expression to random values.
+  *
+  * \only_for_vectors
+  *
+  * Example: \include Matrix_setRandom_int.cpp
+  * Output: \verbinclude Matrix_setRandom_int.out
+  *
+  * \sa MatrixBase::setRandom(), setRandom(Index,Index), class CwiseNullaryOp, MatrixBase::Random()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setRandom(Index newSize)
+{
+  resize(newSize);
+  return setRandom();
+}
+
+/** Resizes to the given size, and sets all coefficients in this expression to random values.
+  *
+  * \param nbRows the new number of rows
+  * \param nbCols the new number of columns
+  *
+  * Example: \include Matrix_setRandom_int_int.cpp
+  * Output: \verbinclude Matrix_setRandom_int_int.out
+  *
+  * \sa MatrixBase::setRandom(), setRandom(Index), class CwiseNullaryOp, MatrixBase::Random()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived&
+PlainObjectBase<Derived>::setRandom(Index nbRows, Index nbCols)
+{
+  resize(nbRows, nbCols);
+  return setRandom();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_RANDOM_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/EigenBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/EigenBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/EigenBase.h	(revision 2476)
@@ -0,0 +1,131 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_EIGENBASE_H
+#define EIGEN_EIGENBASE_H
+
+namespace Eigen {
+
+/** Common base class for all classes T such that MatrixBase has an operator=(T) and a constructor MatrixBase(T).
+  *
+  * In other words, an EigenBase object is an object that can be copied into a MatrixBase.
+  *
+  * Besides MatrixBase-derived classes, this also includes special matrix classes such as diagonal matrices, etc.
+  *
+  * Notice that this class is trivial, it is only used to disambiguate overloaded functions.
+  *
+  * \sa \ref TopicClassHierarchy
+  */
+template<typename Derived> struct EigenBase
+{
+//   typedef typename internal::plain_matrix_type<Derived>::type PlainObject;
+
+  typedef typename internal::traits<Derived>::StorageKind StorageKind;
+  typedef typename internal::traits<Derived>::Index Index;
+
+  /** \returns a reference to the derived object */
+  Derived& derived() { return *static_cast<Derived*>(this); }
+  /** \returns a const reference to the derived object */
+  const Derived& derived() const { return *static_cast<const Derived*>(this); }
+
+  inline Derived& const_cast_derived() const
+  { return *static_cast<Derived*>(const_cast<EigenBase*>(this)); }
+  inline const Derived& const_derived() const
+  { return *static_cast<const Derived*>(this); }
+
+  /** \returns the number of rows. \sa cols(), RowsAtCompileTime */
+  inline Index rows() const { return derived().rows(); }
+  /** \returns the number of columns. \sa rows(), ColsAtCompileTime*/
+  inline Index cols() const { return derived().cols(); }
+  /** \returns the number of coefficients, which is rows()*cols().
+    * \sa rows(), cols(), SizeAtCompileTime. */
+  inline Index size() const { return rows() * cols(); }
+
+  /** \internal Don't use it, but do the equivalent: \code dst = *this; \endcode */
+  template<typename Dest> inline void evalTo(Dest& dst) const
+  { derived().evalTo(dst); }
+
+  /** \internal Don't use it, but do the equivalent: \code dst += *this; \endcode */
+  template<typename Dest> inline void addTo(Dest& dst) const
+  {
+    // This is the default implementation,
+    // derived class can reimplement it in a more optimized way.
+    typename Dest::PlainObject res(rows(),cols());
+    evalTo(res);
+    dst += res;
+  }
+
+  /** \internal Don't use it, but do the equivalent: \code dst -= *this; \endcode */
+  template<typename Dest> inline void subTo(Dest& dst) const
+  {
+    // This is the default implementation,
+    // derived class can reimplement it in a more optimized way.
+    typename Dest::PlainObject res(rows(),cols());
+    evalTo(res);
+    dst -= res;
+  }
+
+  /** \internal Don't use it, but do the equivalent: \code dst.applyOnTheRight(*this); \endcode */
+  template<typename Dest> inline void applyThisOnTheRight(Dest& dst) const
+  {
+    // This is the default implementation,
+    // derived class can reimplement it in a more optimized way.
+    dst = dst * this->derived();
+  }
+
+  /** \internal Don't use it, but do the equivalent: \code dst.applyOnTheLeft(*this); \endcode */
+  template<typename Dest> inline void applyThisOnTheLeft(Dest& dst) const
+  {
+    // This is the default implementation,
+    // derived class can reimplement it in a more optimized way.
+    dst = this->derived() * dst;
+  }
+
+};
+
+/***************************************************************************
+* Implementation of matrix base methods
+***************************************************************************/
+
+/** \brief Copies the generic expression \a other into *this.
+  *
+  * \details The expression must provide a (templated) evalTo(Derived& dst) const
+  * function which does the actual job. In practice, this allows any user to write
+  * its own special matrix without having to modify MatrixBase
+  *
+  * \returns a reference to *this.
+  */
+template<typename Derived>
+template<typename OtherDerived>
+Derived& DenseBase<Derived>::operator=(const EigenBase<OtherDerived> &other)
+{
+  other.derived().evalTo(derived());
+  return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& DenseBase<Derived>::operator+=(const EigenBase<OtherDerived> &other)
+{
+  other.derived().addTo(derived());
+  return derived();
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+Derived& DenseBase<Derived>::operator-=(const EigenBase<OtherDerived> &other)
+{
+  other.derived().subTo(derived());
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_EIGENBASE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/MathFunctions.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/MathFunctions.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/MathFunctions.h	(revision 2476)
@@ -0,0 +1,779 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATHFUNCTIONS_H
+#define EIGEN_MATHFUNCTIONS_H
+
+namespace Eigen {
+
+namespace internal {
+
+/** \internal \struct global_math_functions_filtering_base
+  *
+  * What it does:
+  * Defines a typedef 'type' as follows:
+  * - if type T has a member typedef Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl, then
+  *   global_math_functions_filtering_base<T>::type is a typedef for it.
+  * - otherwise, global_math_functions_filtering_base<T>::type is a typedef for T.
+  *
+  * How it's used:
+  * To allow to defined the global math functions (like sin...) in certain cases, like the Array expressions.
+  * When you do sin(array1+array2), the object array1+array2 has a complicated expression type, all what you want to know
+  * is that it inherits ArrayBase. So we implement a partial specialization of sin_impl for ArrayBase<Derived>.
+  * So we must make sure to use sin_impl<ArrayBase<Derived> > and not sin_impl<Derived>, otherwise our partial specialization
+  * won't be used. How does sin know that? That's exactly what global_math_functions_filtering_base tells it.
+  *
+  * How it's implemented:
+  * SFINAE in the style of enable_if. Highly susceptible of breaking compilers. With GCC, it sure does work, but if you replace
+  * the typename dummy by an integer template parameter, it doesn't work anymore!
+  */
+
+template<typename T, typename dummy = void>
+struct global_math_functions_filtering_base
+{
+  typedef T type;
+};
+
+template<typename T> struct always_void { typedef void type; };
+
+template<typename T>
+struct global_math_functions_filtering_base
+  <T,
+   typename always_void<typename T::Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl>::type
+  >
+{
+  typedef typename T::Eigen_BaseClassForSpecializationOfGlobalMathFuncImpl type;
+};
+
+#define EIGEN_MATHFUNC_IMPL(func, scalar) Eigen::internal::func##_impl<typename Eigen::internal::global_math_functions_filtering_base<scalar>::type>
+#define EIGEN_MATHFUNC_RETVAL(func, scalar) typename Eigen::internal::func##_retval<typename Eigen::internal::global_math_functions_filtering_base<scalar>::type>::type
+
+/****************************************************************************
+* Implementation of real                                                 *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
+struct real_default_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x)
+  {
+    return x;
+  }
+};
+
+template<typename Scalar>
+struct real_default_impl<Scalar,true>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x)
+  {
+    using std::real;
+    return real(x);
+  }
+};
+
+template<typename Scalar> struct real_impl : real_default_impl<Scalar> {};
+
+template<typename Scalar>
+struct real_retval
+{
+  typedef typename NumTraits<Scalar>::Real type;
+};
+
+
+/****************************************************************************
+* Implementation of imag                                                 *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
+struct imag_default_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar&)
+  {
+    return RealScalar(0);
+  }
+};
+
+template<typename Scalar>
+struct imag_default_impl<Scalar,true>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x)
+  {
+    using std::imag;
+    return imag(x);
+  }
+};
+
+template<typename Scalar> struct imag_impl : imag_default_impl<Scalar> {};
+
+template<typename Scalar>
+struct imag_retval
+{
+  typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of real_ref                                             *
+****************************************************************************/
+
+template<typename Scalar>
+struct real_ref_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar& run(Scalar& x)
+  {
+    return reinterpret_cast<RealScalar*>(&x)[0];
+  }
+  static inline const RealScalar& run(const Scalar& x)
+  {
+    return reinterpret_cast<const RealScalar*>(&x)[0];
+  }
+};
+
+template<typename Scalar>
+struct real_ref_retval
+{
+  typedef typename NumTraits<Scalar>::Real & type;
+};
+
+/****************************************************************************
+* Implementation of imag_ref                                             *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex>
+struct imag_ref_default_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar& run(Scalar& x)
+  {
+    return reinterpret_cast<RealScalar*>(&x)[1];
+  }
+  static inline const RealScalar& run(const Scalar& x)
+  {
+    return reinterpret_cast<RealScalar*>(&x)[1];
+  }
+};
+
+template<typename Scalar>
+struct imag_ref_default_impl<Scalar, false>
+{
+  static inline Scalar run(Scalar&)
+  {
+    return Scalar(0);
+  }
+  static inline const Scalar run(const Scalar&)
+  {
+    return Scalar(0);
+  }
+};
+
+template<typename Scalar>
+struct imag_ref_impl : imag_ref_default_impl<Scalar, NumTraits<Scalar>::IsComplex> {};
+
+template<typename Scalar>
+struct imag_ref_retval
+{
+  typedef typename NumTraits<Scalar>::Real & type;
+};
+
+/****************************************************************************
+* Implementation of conj                                                 *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex = NumTraits<Scalar>::IsComplex>
+struct conj_impl
+{
+  static inline Scalar run(const Scalar& x)
+  {
+    return x;
+  }
+};
+
+template<typename Scalar>
+struct conj_impl<Scalar,true>
+{
+  static inline Scalar run(const Scalar& x)
+  {
+    using std::conj;
+    return conj(x);
+  }
+};
+
+template<typename Scalar>
+struct conj_retval
+{
+  typedef Scalar type;
+};
+
+/****************************************************************************
+* Implementation of abs2                                                 *
+****************************************************************************/
+
+template<typename Scalar,bool IsComplex>
+struct abs2_impl_default
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x)
+  {
+    return x*x;
+  }
+};
+
+template<typename Scalar>
+struct abs2_impl_default<Scalar, true> // IsComplex
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x)
+  {
+    return real(x)*real(x) + imag(x)*imag(x);
+  }
+};
+
+template<typename Scalar>
+struct abs2_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x)
+  {
+    return abs2_impl_default<Scalar,NumTraits<Scalar>::IsComplex>::run(x);
+  }
+};
+
+template<typename Scalar>
+struct abs2_retval
+{
+  typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of norm1                                                *
+****************************************************************************/
+
+template<typename Scalar, bool IsComplex>
+struct norm1_default_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x)
+  {
+    using std::abs;
+    return abs(real(x)) + abs(imag(x));
+  }
+};
+
+template<typename Scalar>
+struct norm1_default_impl<Scalar, false>
+{
+  static inline Scalar run(const Scalar& x)
+  {
+    using std::abs;
+    return abs(x);
+  }
+};
+
+template<typename Scalar>
+struct norm1_impl : norm1_default_impl<Scalar, NumTraits<Scalar>::IsComplex> {};
+
+template<typename Scalar>
+struct norm1_retval
+{
+  typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of hypot                                                *
+****************************************************************************/
+
+template<typename Scalar>
+struct hypot_impl
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline RealScalar run(const Scalar& x, const Scalar& y)
+  {
+    using std::max;
+    using std::min;
+    using std::abs;
+    using std::sqrt;
+    RealScalar _x = abs(x);
+    RealScalar _y = abs(y);
+    RealScalar p = (max)(_x, _y);
+    if(p==RealScalar(0)) return RealScalar(0);
+    RealScalar q = (min)(_x, _y);
+    RealScalar qp = q/p;
+    return p * sqrt(RealScalar(1) + qp*qp);
+  }
+};
+
+template<typename Scalar>
+struct hypot_retval
+{
+  typedef typename NumTraits<Scalar>::Real type;
+};
+
+/****************************************************************************
+* Implementation of cast                                                 *
+****************************************************************************/
+
+template<typename OldType, typename NewType>
+struct cast_impl
+{
+  static inline NewType run(const OldType& x)
+  {
+    return static_cast<NewType>(x);
+  }
+};
+
+// here, for once, we're plainly returning NewType: we don't want cast to do weird things.
+
+template<typename OldType, typename NewType>
+inline NewType cast(const OldType& x)
+{
+  return cast_impl<OldType, NewType>::run(x);
+}
+
+/****************************************************************************
+* Implementation of atanh2                                                *
+****************************************************************************/
+
+template<typename Scalar, bool IsInteger>
+struct atanh2_default_impl
+{
+  typedef Scalar retval;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline Scalar run(const Scalar& x, const Scalar& y)
+  {
+    using std::abs;
+    using std::log;
+    using std::sqrt;
+    Scalar z = x / y;
+    if (y == Scalar(0) || abs(z) > sqrt(NumTraits<RealScalar>::epsilon()))
+      return RealScalar(0.5) * log((y + x) / (y - x));
+    else
+      return z + z*z*z / RealScalar(3);
+  }
+};
+
+template<typename Scalar>
+struct atanh2_default_impl<Scalar, true>
+{
+  static inline Scalar run(const Scalar&, const Scalar&)
+  {
+    EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar)
+    return Scalar(0);
+  }
+};
+
+template<typename Scalar>
+struct atanh2_impl : atanh2_default_impl<Scalar, NumTraits<Scalar>::IsInteger> {};
+
+template<typename Scalar>
+struct atanh2_retval
+{
+  typedef Scalar type;
+};
+
+/****************************************************************************
+* Implementation of pow                                                  *
+****************************************************************************/
+
+template<typename Scalar, bool IsInteger>
+struct pow_default_impl
+{
+  typedef Scalar retval;
+  static inline Scalar run(const Scalar& x, const Scalar& y)
+  {
+    using std::pow;
+    return pow(x, y);
+  }
+};
+
+template<typename Scalar>
+struct pow_default_impl<Scalar, true>
+{
+  static inline Scalar run(Scalar x, Scalar y)
+  {
+    Scalar res(1);
+    eigen_assert(!NumTraits<Scalar>::IsSigned || y >= 0);
+    if(y & 1) res *= x;
+    y >>= 1;
+    while(y)
+    {
+      x *= x;
+      if(y&1) res *= x;
+      y >>= 1;
+    }
+    return res;
+  }
+};
+
+template<typename Scalar>
+struct pow_impl : pow_default_impl<Scalar, NumTraits<Scalar>::IsInteger> {};
+
+template<typename Scalar>
+struct pow_retval
+{
+  typedef Scalar type;
+};
+
+/****************************************************************************
+* Implementation of random                                               *
+****************************************************************************/
+
+template<typename Scalar,
+         bool IsComplex,
+         bool IsInteger>
+struct random_default_impl {};
+
+template<typename Scalar>
+struct random_impl : random_default_impl<Scalar, NumTraits<Scalar>::IsComplex, NumTraits<Scalar>::IsInteger> {};
+
+template<typename Scalar>
+struct random_retval
+{
+  typedef Scalar type;
+};
+
+template<typename Scalar> inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random(const Scalar& x, const Scalar& y);
+template<typename Scalar> inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random();
+
+template<typename Scalar>
+struct random_default_impl<Scalar, false, false>
+{
+  static inline Scalar run(const Scalar& x, const Scalar& y)
+  {
+    return x + (y-x) * Scalar(std::rand()) / Scalar(RAND_MAX);
+  }
+  static inline Scalar run()
+  {
+    return run(Scalar(NumTraits<Scalar>::IsSigned ? -1 : 0), Scalar(1));
+  }
+};
+
+enum {
+  floor_log2_terminate,
+  floor_log2_move_up,
+  floor_log2_move_down,
+  floor_log2_bogus
+};
+
+template<unsigned int n, int lower, int upper> struct floor_log2_selector
+{
+  enum { middle = (lower + upper) / 2,
+         value = (upper <= lower + 1) ? int(floor_log2_terminate)
+               : (n < (1 << middle)) ? int(floor_log2_move_down)
+               : (n==0) ? int(floor_log2_bogus)
+               : int(floor_log2_move_up)
+  };
+};
+
+template<unsigned int n,
+         int lower = 0,
+         int upper = sizeof(unsigned int) * CHAR_BIT - 1,
+         int selector = floor_log2_selector<n, lower, upper>::value>
+struct floor_log2 {};
+
+template<unsigned int n, int lower, int upper>
+struct floor_log2<n, lower, upper, floor_log2_move_down>
+{
+  enum { value = floor_log2<n, lower, floor_log2_selector<n, lower, upper>::middle>::value };
+};
+
+template<unsigned int n, int lower, int upper>
+struct floor_log2<n, lower, upper, floor_log2_move_up>
+{
+  enum { value = floor_log2<n, floor_log2_selector<n, lower, upper>::middle, upper>::value };
+};
+
+template<unsigned int n, int lower, int upper>
+struct floor_log2<n, lower, upper, floor_log2_terminate>
+{
+  enum { value = (n >= ((unsigned int)(1) << (lower+1))) ? lower+1 : lower };
+};
+
+template<unsigned int n, int lower, int upper>
+struct floor_log2<n, lower, upper, floor_log2_bogus>
+{
+  // no value, error at compile time
+};
+
+template<typename Scalar>
+struct random_default_impl<Scalar, false, true>
+{
+  typedef typename NumTraits<Scalar>::NonInteger NonInteger;
+
+  static inline Scalar run(const Scalar& x, const Scalar& y)
+  {
+    return x + Scalar((NonInteger(y)-x+1) * std::rand() / (RAND_MAX + NonInteger(1)));
+  }
+
+  static inline Scalar run()
+  {
+#ifdef EIGEN_MAKING_DOCS
+    return run(Scalar(NumTraits<Scalar>::IsSigned ? -10 : 0), Scalar(10));
+#else
+    enum { rand_bits = floor_log2<(unsigned int)(RAND_MAX)+1>::value,
+           scalar_bits = sizeof(Scalar) * CHAR_BIT,
+           shift = EIGEN_PLAIN_ENUM_MAX(0, int(rand_bits) - int(scalar_bits)),
+           offset = NumTraits<Scalar>::IsSigned ? (1 << (EIGEN_PLAIN_ENUM_MIN(rand_bits,scalar_bits)-1)) : 0
+    };
+    return Scalar((std::rand() >> shift) - offset);
+#endif
+  }
+};
+
+template<typename Scalar>
+struct random_default_impl<Scalar, true, false>
+{
+  static inline Scalar run(const Scalar& x, const Scalar& y)
+  {
+    return Scalar(random(real(x), real(y)),
+                  random(imag(x), imag(y)));
+  }
+  static inline Scalar run()
+  {
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    return Scalar(random<RealScalar>(), random<RealScalar>());
+  }
+};
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random(const Scalar& x, const Scalar& y)
+{
+  return EIGEN_MATHFUNC_IMPL(random, Scalar)::run(x, y);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(random, Scalar) random()
+{
+  return EIGEN_MATHFUNC_IMPL(random, Scalar)::run();
+}
+
+} // end namespace internal
+
+/****************************************************************************
+* Generic math function                                                    *
+****************************************************************************/
+
+namespace numext {
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(real, Scalar) real(const Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(real, Scalar)::run(x);
+}  
+
+template<typename Scalar>
+inline typename internal::add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(real_ref, Scalar) >::type real_ref(const Scalar& x)
+{
+  return internal::real_ref_impl<Scalar>::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(real_ref, Scalar) real_ref(Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(real_ref, Scalar)::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(imag, Scalar) imag(const Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(imag, Scalar)::run(x);
+}
+
+template<typename Scalar>
+inline typename internal::add_const_on_value_type< EIGEN_MATHFUNC_RETVAL(imag_ref, Scalar) >::type imag_ref(const Scalar& x)
+{
+  return internal::imag_ref_impl<Scalar>::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(imag_ref, Scalar) imag_ref(Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(imag_ref, Scalar)::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(conj, Scalar) conj(const Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(conj, Scalar)::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(abs2, Scalar) abs2(const Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(abs2, Scalar)::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(norm1, Scalar) norm1(const Scalar& x)
+{
+  return EIGEN_MATHFUNC_IMPL(norm1, Scalar)::run(x);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(hypot, Scalar) hypot(const Scalar& x, const Scalar& y)
+{
+  return EIGEN_MATHFUNC_IMPL(hypot, Scalar)::run(x, y);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(atanh2, Scalar) atanh2(const Scalar& x, const Scalar& y)
+{
+  return EIGEN_MATHFUNC_IMPL(atanh2, Scalar)::run(x, y);
+}
+
+template<typename Scalar>
+inline EIGEN_MATHFUNC_RETVAL(pow, Scalar) pow(const Scalar& x, const Scalar& y)
+{
+  return EIGEN_MATHFUNC_IMPL(pow, Scalar)::run(x, y);
+}
+
+// std::isfinite is non standard, so let's define our own version,
+// even though it is not very efficient.
+template<typename T> bool (isfinite)(const T& x)
+{
+  return x<NumTraits<T>::highest() && x>NumTraits<T>::lowest();
+}
+
+} // end namespace numext
+
+namespace internal {
+
+/****************************************************************************
+* Implementation of fuzzy comparisons                                       *
+****************************************************************************/
+
+template<typename Scalar,
+         bool IsComplex,
+         bool IsInteger>
+struct scalar_fuzzy_default_impl {};
+
+template<typename Scalar>
+struct scalar_fuzzy_default_impl<Scalar, false, false>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  template<typename OtherScalar>
+  static inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y, const RealScalar& prec)
+  {
+    using std::abs;
+    return abs(x) <= abs(y) * prec;
+  }
+  static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar& prec)
+  {
+    using std::min;
+    using std::abs;
+    return abs(x - y) <= (min)(abs(x), abs(y)) * prec;
+  }
+  static inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y, const RealScalar& prec)
+  {
+    return x <= y || isApprox(x, y, prec);
+  }
+};
+
+template<typename Scalar>
+struct scalar_fuzzy_default_impl<Scalar, false, true>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  template<typename OtherScalar>
+  static inline bool isMuchSmallerThan(const Scalar& x, const Scalar&, const RealScalar&)
+  {
+    return x == Scalar(0);
+  }
+  static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar&)
+  {
+    return x == y;
+  }
+  static inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y, const RealScalar&)
+  {
+    return x <= y;
+  }
+};
+
+template<typename Scalar>
+struct scalar_fuzzy_default_impl<Scalar, true, false>
+{
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  template<typename OtherScalar>
+  static inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y, const RealScalar& prec)
+  {
+    return numext::abs2(x) <= numext::abs2(y) * prec * prec;
+  }
+  static inline bool isApprox(const Scalar& x, const Scalar& y, const RealScalar& prec)
+  {
+    using std::min;
+    return numext::abs2(x - y) <= (min)(numext::abs2(x), numext::abs2(y)) * prec * prec;
+  }
+};
+
+template<typename Scalar>
+struct scalar_fuzzy_impl : scalar_fuzzy_default_impl<Scalar, NumTraits<Scalar>::IsComplex, NumTraits<Scalar>::IsInteger> {};
+
+template<typename Scalar, typename OtherScalar>
+inline bool isMuchSmallerThan(const Scalar& x, const OtherScalar& y,
+                              const typename NumTraits<Scalar>::Real &precision = NumTraits<Scalar>::dummy_precision())
+{
+  return scalar_fuzzy_impl<Scalar>::template isMuchSmallerThan<OtherScalar>(x, y, precision);
+}
+
+template<typename Scalar>
+inline bool isApprox(const Scalar& x, const Scalar& y,
+                     const typename NumTraits<Scalar>::Real &precision = NumTraits<Scalar>::dummy_precision())
+{
+  return scalar_fuzzy_impl<Scalar>::isApprox(x, y, precision);
+}
+
+template<typename Scalar>
+inline bool isApproxOrLessThan(const Scalar& x, const Scalar& y,
+                               const typename NumTraits<Scalar>::Real &precision = NumTraits<Scalar>::dummy_precision())
+{
+  return scalar_fuzzy_impl<Scalar>::isApproxOrLessThan(x, y, precision);
+}
+
+/******************************************
+***  The special case of the  bool type ***
+******************************************/
+
+template<> struct random_impl<bool>
+{
+  static inline bool run()
+  {
+    return random<int>(0,1)==0 ? false : true;
+  }
+};
+
+template<> struct scalar_fuzzy_impl<bool>
+{
+  typedef bool RealScalar;
+  
+  template<typename OtherScalar>
+  static inline bool isMuchSmallerThan(const bool& x, const bool&, const bool&)
+  {
+    return !x;
+  }
+  
+  static inline bool isApprox(bool x, bool y, bool)
+  {
+    return x == y;
+  }
+
+  static inline bool isApproxOrLessThan(const bool& x, const bool& y, const bool&)
+  {
+    return (!x) || y;
+  }
+  
+};
+
+  
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATHFUNCTIONS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DenseStorage.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DenseStorage.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DenseStorage.h	(revision 2476)
@@ -0,0 +1,434 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2010 Hauke Heibel <hauke.heibel@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIXSTORAGE_H
+#define EIGEN_MATRIXSTORAGE_H
+
+#ifdef EIGEN_DENSE_STORAGE_CTOR_PLUGIN
+  #define EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN EIGEN_DENSE_STORAGE_CTOR_PLUGIN;
+#else
+  #define EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN
+#endif
+
+namespace Eigen {
+
+namespace internal {
+
+struct constructor_without_unaligned_array_assert {};
+
+template<typename T, int Size> void check_static_allocation_size()
+{
+  // if EIGEN_STACK_ALLOCATION_LIMIT is defined to 0, then no limit
+  #if EIGEN_STACK_ALLOCATION_LIMIT
+  EIGEN_STATIC_ASSERT(Size * sizeof(T) <= EIGEN_STACK_ALLOCATION_LIMIT, OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG);
+  #endif
+}
+
+/** \internal
+  * Static array. If the MatrixOrArrayOptions require auto-alignment, the array will be automatically aligned:
+  * to 16 bytes boundary if the total size is a multiple of 16 bytes.
+  */
+template <typename T, int Size, int MatrixOrArrayOptions,
+          int Alignment = (MatrixOrArrayOptions&DontAlign) ? 0
+                        : (((Size*sizeof(T))%16)==0) ? 16
+                        : 0 >
+struct plain_array
+{
+  T array[Size];
+
+  plain_array() 
+  { 
+    check_static_allocation_size<T,Size>();
+  }
+
+  plain_array(constructor_without_unaligned_array_assert) 
+  { 
+    check_static_allocation_size<T,Size>();
+  }
+};
+
+#if defined(EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT)
+  #define EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(sizemask)
+#elif EIGEN_GNUC_AT_LEAST(4,7) 
+  // GCC 4.7 is too aggressive in its optimizations and remove the alignement test based on the fact the array is declared to be aligned.
+  // See this bug report: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53900
+  // Hiding the origin of the array pointer behind a function argument seems to do the trick even if the function is inlined:
+  template<typename PtrType>
+  EIGEN_ALWAYS_INLINE PtrType eigen_unaligned_array_assert_workaround_gcc47(PtrType array) { return array; }
+  #define EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(sizemask) \
+    eigen_assert((reinterpret_cast<size_t>(eigen_unaligned_array_assert_workaround_gcc47(array)) & sizemask) == 0 \
+              && "this assertion is explained here: " \
+              "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" \
+              " **** READ THIS WEB PAGE !!! ****");
+#else
+  #define EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(sizemask) \
+    eigen_assert((reinterpret_cast<size_t>(array) & sizemask) == 0 \
+              && "this assertion is explained here: " \
+              "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" \
+              " **** READ THIS WEB PAGE !!! ****");
+#endif
+
+template <typename T, int Size, int MatrixOrArrayOptions>
+struct plain_array<T, Size, MatrixOrArrayOptions, 16>
+{
+  EIGEN_USER_ALIGN16 T array[Size];
+
+  plain_array() 
+  { 
+    EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT(0xf);
+    check_static_allocation_size<T,Size>();
+  }
+
+  plain_array(constructor_without_unaligned_array_assert) 
+  { 
+    check_static_allocation_size<T,Size>();
+  }
+};
+
+template <typename T, int MatrixOrArrayOptions, int Alignment>
+struct plain_array<T, 0, MatrixOrArrayOptions, Alignment>
+{
+  EIGEN_USER_ALIGN16 T array[1];
+  plain_array() {}
+  plain_array(constructor_without_unaligned_array_assert) {}
+};
+
+} // end namespace internal
+
+/** \internal
+  *
+  * \class DenseStorage
+  * \ingroup Core_Module
+  *
+  * \brief Stores the data of a matrix
+  *
+  * This class stores the data of fixed-size, dynamic-size or mixed matrices
+  * in a way as compact as possible.
+  *
+  * \sa Matrix
+  */
+template<typename T, int Size, int _Rows, int _Cols, int _Options> class DenseStorage;
+
+// purely fixed-size matrix
+template<typename T, int Size, int _Rows, int _Cols, int _Options> class DenseStorage
+{
+    internal::plain_array<T,Size,_Options> m_data;
+  public:
+    DenseStorage() {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert)
+      : m_data(internal::constructor_without_unaligned_array_assert()) {}
+    DenseStorage(const DenseStorage& other) : m_data(other.m_data) {}
+    DenseStorage& operator=(const DenseStorage& other)
+    {
+      if (this != &other) m_data = other.m_data;
+      return *this;
+    }
+    DenseStorage(DenseIndex,DenseIndex,DenseIndex) {}
+    void swap(DenseStorage& other) { std::swap(m_data,other.m_data); }
+    static DenseIndex rows(void) {return _Rows;}
+    static DenseIndex cols(void) {return _Cols;}
+    void conservativeResize(DenseIndex,DenseIndex,DenseIndex) {}
+    void resize(DenseIndex,DenseIndex,DenseIndex) {}
+    const T *data() const { return m_data.array; }
+    T *data() { return m_data.array; }
+};
+
+// null matrix
+template<typename T, int _Rows, int _Cols, int _Options> class DenseStorage<T, 0, _Rows, _Cols, _Options>
+{
+  public:
+    DenseStorage() {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert) {}
+    DenseStorage(const DenseStorage&) {}
+    DenseStorage& operator=(const DenseStorage&) { return *this; }
+    DenseStorage(DenseIndex,DenseIndex,DenseIndex) {}
+    void swap(DenseStorage& ) {}
+    static DenseIndex rows(void) {return _Rows;}
+    static DenseIndex cols(void) {return _Cols;}
+    void conservativeResize(DenseIndex,DenseIndex,DenseIndex) {}
+    void resize(DenseIndex,DenseIndex,DenseIndex) {}
+    const T *data() const { return 0; }
+    T *data() { return 0; }
+};
+
+// more specializations for null matrices; these are necessary to resolve ambiguities
+template<typename T, int _Options> class DenseStorage<T, 0, Dynamic, Dynamic, _Options>
+: public DenseStorage<T, 0, 0, 0, _Options> { };
+
+template<typename T, int _Rows, int _Options> class DenseStorage<T, 0, _Rows, Dynamic, _Options>
+: public DenseStorage<T, 0, 0, 0, _Options> { };
+
+template<typename T, int _Cols, int _Options> class DenseStorage<T, 0, Dynamic, _Cols, _Options>
+: public DenseStorage<T, 0, 0, 0, _Options> { };
+
+// dynamic-size matrix with fixed-size storage
+template<typename T, int Size, int _Options> class DenseStorage<T, Size, Dynamic, Dynamic, _Options>
+{
+    internal::plain_array<T,Size,_Options> m_data;
+    DenseIndex m_rows;
+    DenseIndex m_cols;
+  public:
+    DenseStorage() : m_rows(0), m_cols(0) {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert)
+      : m_data(internal::constructor_without_unaligned_array_assert()), m_rows(0), m_cols(0) {}
+    DenseStorage(const DenseStorage& other) : m_data(other.m_data), m_rows(other.m_rows), m_cols(other.m_cols) {}
+    DenseStorage& operator=(const DenseStorage& other)
+    {
+      if (this != &other)
+      {
+        m_data = other.m_data;
+        m_rows = other.m_rows;
+        m_cols = other.m_cols;
+      }
+      return *this;
+    }
+    DenseStorage(DenseIndex, DenseIndex nbRows, DenseIndex nbCols) : m_rows(nbRows), m_cols(nbCols) {}
+    void swap(DenseStorage& other)
+    { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); std::swap(m_cols,other.m_cols); }
+    DenseIndex rows() const {return m_rows;}
+    DenseIndex cols() const {return m_cols;}
+    void conservativeResize(DenseIndex, DenseIndex nbRows, DenseIndex nbCols) { m_rows = nbRows; m_cols = nbCols; }
+    void resize(DenseIndex, DenseIndex nbRows, DenseIndex nbCols) { m_rows = nbRows; m_cols = nbCols; }
+    const T *data() const { return m_data.array; }
+    T *data() { return m_data.array; }
+};
+
+// dynamic-size matrix with fixed-size storage and fixed width
+template<typename T, int Size, int _Cols, int _Options> class DenseStorage<T, Size, Dynamic, _Cols, _Options>
+{
+    internal::plain_array<T,Size,_Options> m_data;
+    DenseIndex m_rows;
+  public:
+    DenseStorage() : m_rows(0) {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert)
+      : m_data(internal::constructor_without_unaligned_array_assert()), m_rows(0) {}
+    DenseStorage(const DenseStorage& other) : m_data(other.m_data), m_rows(other.m_rows) {}
+    DenseStorage& operator=(const DenseStorage& other)
+    {
+      if (this != &other)
+      {
+        m_data = other.m_data;
+        m_rows = other.m_rows;
+      }
+      return *this;
+    }
+    DenseStorage(DenseIndex, DenseIndex nbRows, DenseIndex) : m_rows(nbRows) {}
+    void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); }
+    DenseIndex rows(void) const {return m_rows;}
+    DenseIndex cols(void) const {return _Cols;}
+    void conservativeResize(DenseIndex, DenseIndex nbRows, DenseIndex) { m_rows = nbRows; }
+    void resize(DenseIndex, DenseIndex nbRows, DenseIndex) { m_rows = nbRows; }
+    const T *data() const { return m_data.array; }
+    T *data() { return m_data.array; }
+};
+
+// dynamic-size matrix with fixed-size storage and fixed height
+template<typename T, int Size, int _Rows, int _Options> class DenseStorage<T, Size, _Rows, Dynamic, _Options>
+{
+    internal::plain_array<T,Size,_Options> m_data;
+    DenseIndex m_cols;
+  public:
+    DenseStorage() : m_cols(0) {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert)
+      : m_data(internal::constructor_without_unaligned_array_assert()), m_cols(0) {}
+    DenseStorage(const DenseStorage& other) : m_data(other.m_data), m_cols(other.m_cols) {}
+    DenseStorage& operator=(const DenseStorage& other)
+    {
+      if (this != &other)
+      {
+        m_data = other.m_data;
+        m_cols = other.m_cols;
+      }
+      return *this;
+    }
+    DenseStorage(DenseIndex, DenseIndex, DenseIndex nbCols) : m_cols(nbCols) {}
+    void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_cols,other.m_cols); }
+    DenseIndex rows(void) const {return _Rows;}
+    DenseIndex cols(void) const {return m_cols;}
+    void conservativeResize(DenseIndex, DenseIndex, DenseIndex nbCols) { m_cols = nbCols; }
+    void resize(DenseIndex, DenseIndex, DenseIndex nbCols) { m_cols = nbCols; }
+    const T *data() const { return m_data.array; }
+    T *data() { return m_data.array; }
+};
+
+// purely dynamic matrix.
+template<typename T, int _Options> class DenseStorage<T, Dynamic, Dynamic, Dynamic, _Options>
+{
+    T *m_data;
+    DenseIndex m_rows;
+    DenseIndex m_cols;
+  public:
+    DenseStorage() : m_data(0), m_rows(0), m_cols(0) {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert)
+       : m_data(0), m_rows(0), m_cols(0) {}
+    DenseStorage(DenseIndex size, DenseIndex nbRows, DenseIndex nbCols)
+      : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size)), m_rows(nbRows), m_cols(nbCols)
+    { EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN }
+#ifdef EIGEN_HAVE_RVALUE_REFERENCES
+    DenseStorage(DenseStorage&& other)
+      : m_data(std::move(other.m_data))
+      , m_rows(std::move(other.m_rows))
+      , m_cols(std::move(other.m_cols))
+    {
+      other.m_data = nullptr;
+    }
+    DenseStorage& operator=(DenseStorage&& other)
+    {
+      using std::swap;
+      swap(m_data, other.m_data);
+      swap(m_rows, other.m_rows);
+      swap(m_cols, other.m_cols);
+      return *this;
+    }
+#endif
+    ~DenseStorage() { internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, m_rows*m_cols); }
+    void swap(DenseStorage& other)
+    { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); std::swap(m_cols,other.m_cols); }
+    DenseIndex rows(void) const {return m_rows;}
+    DenseIndex cols(void) const {return m_cols;}
+    void conservativeResize(DenseIndex size, DenseIndex nbRows, DenseIndex nbCols)
+    {
+      m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, m_rows*m_cols);
+      m_rows = nbRows;
+      m_cols = nbCols;
+    }
+    void resize(DenseIndex size, DenseIndex nbRows, DenseIndex nbCols)
+    {
+      if(size != m_rows*m_cols)
+      {
+        internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, m_rows*m_cols);
+        if (size)
+          m_data = internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size);
+        else
+          m_data = 0;
+        EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN
+      }
+      m_rows = nbRows;
+      m_cols = nbCols;
+    }
+    const T *data() const { return m_data; }
+    T *data() { return m_data; }
+  private:
+    DenseStorage(const DenseStorage&);
+    DenseStorage& operator=(const DenseStorage&);
+};
+
+// matrix with dynamic width and fixed height (so that matrix has dynamic size).
+template<typename T, int _Rows, int _Options> class DenseStorage<T, Dynamic, _Rows, Dynamic, _Options>
+{
+    T *m_data;
+    DenseIndex m_cols;
+  public:
+    DenseStorage() : m_data(0), m_cols(0) {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert) : m_data(0), m_cols(0) {}
+    DenseStorage(DenseIndex size, DenseIndex, DenseIndex nbCols) : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size)), m_cols(nbCols)
+    { EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN }
+#ifdef EIGEN_HAVE_RVALUE_REFERENCES
+    DenseStorage(DenseStorage&& other)
+      : m_data(std::move(other.m_data))
+      , m_cols(std::move(other.m_cols))
+    {
+      other.m_data = nullptr;
+    }
+    DenseStorage& operator=(DenseStorage&& other)
+    {
+      using std::swap;
+      swap(m_data, other.m_data);
+      swap(m_cols, other.m_cols);
+      return *this;
+    }
+#endif
+    ~DenseStorage() { internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Rows*m_cols); }
+    void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_cols,other.m_cols); }
+    static DenseIndex rows(void) {return _Rows;}
+    DenseIndex cols(void) const {return m_cols;}
+    void conservativeResize(DenseIndex size, DenseIndex, DenseIndex nbCols)
+    {
+      m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, _Rows*m_cols);
+      m_cols = nbCols;
+    }
+    EIGEN_STRONG_INLINE void resize(DenseIndex size, DenseIndex, DenseIndex nbCols)
+    {
+      if(size != _Rows*m_cols)
+      {
+        internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Rows*m_cols);
+        if (size)
+          m_data = internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size);
+        else
+          m_data = 0;
+        EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN
+      }
+      m_cols = nbCols;
+    }
+    const T *data() const { return m_data; }
+    T *data() { return m_data; }
+  private:
+    DenseStorage(const DenseStorage&);
+    DenseStorage& operator=(const DenseStorage&);
+};
+
+// matrix with dynamic height and fixed width (so that matrix has dynamic size).
+template<typename T, int _Cols, int _Options> class DenseStorage<T, Dynamic, Dynamic, _Cols, _Options>
+{
+    T *m_data;
+    DenseIndex m_rows;
+  public:
+    DenseStorage() : m_data(0), m_rows(0) {}
+    DenseStorage(internal::constructor_without_unaligned_array_assert) : m_data(0), m_rows(0) {}
+    DenseStorage(DenseIndex size, DenseIndex nbRows, DenseIndex) : m_data(internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size)), m_rows(nbRows)
+    { EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN }
+#ifdef EIGEN_HAVE_RVALUE_REFERENCES
+    DenseStorage(DenseStorage&& other)
+      : m_data(std::move(other.m_data))
+      , m_rows(std::move(other.m_rows))
+    {
+      other.m_data = nullptr;
+    }
+    DenseStorage& operator=(DenseStorage&& other)
+    {
+      using std::swap;
+      swap(m_data, other.m_data);
+      swap(m_rows, other.m_rows);
+      return *this;
+    }
+#endif
+    ~DenseStorage() { internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Cols*m_rows); }
+    void swap(DenseStorage& other) { std::swap(m_data,other.m_data); std::swap(m_rows,other.m_rows); }
+    DenseIndex rows(void) const {return m_rows;}
+    static DenseIndex cols(void) {return _Cols;}
+    void conservativeResize(DenseIndex size, DenseIndex nbRows, DenseIndex)
+    {
+      m_data = internal::conditional_aligned_realloc_new_auto<T,(_Options&DontAlign)==0>(m_data, size, m_rows*_Cols);
+      m_rows = nbRows;
+    }
+    EIGEN_STRONG_INLINE void resize(DenseIndex size, DenseIndex nbRows, DenseIndex)
+    {
+      if(size != m_rows*_Cols)
+      {
+        internal::conditional_aligned_delete_auto<T,(_Options&DontAlign)==0>(m_data, _Cols*m_rows);
+        if (size)
+          m_data = internal::conditional_aligned_new_auto<T,(_Options&DontAlign)==0>(size);
+        else
+          m_data = 0;
+        EIGEN_INTERNAL_DENSE_STORAGE_CTOR_PLUGIN
+      }
+      m_rows = nbRows;
+    }
+    const T *data() const { return m_data; }
+    T *data() { return m_data; }
+  private:
+    DenseStorage(const DenseStorage&);
+    DenseStorage& operator=(const DenseStorage&);
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Assign.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Assign.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Assign.h	(revision 2476)
@@ -0,0 +1,590 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007 Michael Olbrich <michael.olbrich@gmx.net>
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ASSIGN_H
+#define EIGEN_ASSIGN_H
+
+namespace Eigen {
+
+namespace internal {
+
+/***************************************************************************
+* Part 1 : the logic deciding a strategy for traversal and unrolling       *
+***************************************************************************/
+
+template <typename Derived, typename OtherDerived>
+struct assign_traits
+{
+public:
+  enum {
+    DstIsAligned = Derived::Flags & AlignedBit,
+    DstHasDirectAccess = Derived::Flags & DirectAccessBit,
+    SrcIsAligned = OtherDerived::Flags & AlignedBit,
+    JointAlignment = bool(DstIsAligned) && bool(SrcIsAligned) ? Aligned : Unaligned
+  };
+
+private:
+  enum {
+    InnerSize = int(Derived::IsVectorAtCompileTime) ? int(Derived::SizeAtCompileTime)
+              : int(Derived::Flags)&RowMajorBit ? int(Derived::ColsAtCompileTime)
+              : int(Derived::RowsAtCompileTime),
+    InnerMaxSize = int(Derived::IsVectorAtCompileTime) ? int(Derived::MaxSizeAtCompileTime)
+              : int(Derived::Flags)&RowMajorBit ? int(Derived::MaxColsAtCompileTime)
+              : int(Derived::MaxRowsAtCompileTime),
+    MaxSizeAtCompileTime = Derived::SizeAtCompileTime,
+    PacketSize = packet_traits<typename Derived::Scalar>::size
+  };
+
+  enum {
+    StorageOrdersAgree = (int(Derived::IsRowMajor) == int(OtherDerived::IsRowMajor)),
+    MightVectorize = StorageOrdersAgree
+                  && (int(Derived::Flags) & int(OtherDerived::Flags) & ActualPacketAccessBit),
+    MayInnerVectorize  = MightVectorize && int(InnerSize)!=Dynamic && int(InnerSize)%int(PacketSize)==0
+                       && int(DstIsAligned) && int(SrcIsAligned),
+    MayLinearize = StorageOrdersAgree && (int(Derived::Flags) & int(OtherDerived::Flags) & LinearAccessBit),
+    MayLinearVectorize = MightVectorize && MayLinearize && DstHasDirectAccess
+                       && (DstIsAligned || MaxSizeAtCompileTime == Dynamic),
+      /* If the destination isn't aligned, we have to do runtime checks and we don't unroll,
+         so it's only good for large enough sizes. */
+    MaySliceVectorize  = MightVectorize && DstHasDirectAccess
+                       && (int(InnerMaxSize)==Dynamic || int(InnerMaxSize)>=3*PacketSize)
+      /* slice vectorization can be slow, so we only want it if the slices are big, which is
+         indicated by InnerMaxSize rather than InnerSize, think of the case of a dynamic block
+         in a fixed-size matrix */
+  };
+
+public:
+  enum {
+    Traversal = int(MayInnerVectorize)  ? int(InnerVectorizedTraversal)
+              : int(MayLinearVectorize) ? int(LinearVectorizedTraversal)
+              : int(MaySliceVectorize)  ? int(SliceVectorizedTraversal)
+              : int(MayLinearize)       ? int(LinearTraversal)
+                                        : int(DefaultTraversal),
+    Vectorized = int(Traversal) == InnerVectorizedTraversal
+              || int(Traversal) == LinearVectorizedTraversal
+              || int(Traversal) == SliceVectorizedTraversal
+  };
+
+private:
+  enum {
+    UnrollingLimit      = EIGEN_UNROLLING_LIMIT * (Vectorized ? int(PacketSize) : 1),
+    MayUnrollCompletely = int(Derived::SizeAtCompileTime) != Dynamic
+                       && int(OtherDerived::CoeffReadCost) != Dynamic
+                       && int(Derived::SizeAtCompileTime) * int(OtherDerived::CoeffReadCost) <= int(UnrollingLimit),
+    MayUnrollInner      = int(InnerSize) != Dynamic
+                       && int(OtherDerived::CoeffReadCost) != Dynamic
+                       && int(InnerSize) * int(OtherDerived::CoeffReadCost) <= int(UnrollingLimit)
+  };
+
+public:
+  enum {
+    Unrolling = (int(Traversal) == int(InnerVectorizedTraversal) || int(Traversal) == int(DefaultTraversal))
+                ? (
+                    int(MayUnrollCompletely) ? int(CompleteUnrolling)
+                  : int(MayUnrollInner)      ? int(InnerUnrolling)
+                                             : int(NoUnrolling)
+                  )
+              : int(Traversal) == int(LinearVectorizedTraversal)
+                ? ( bool(MayUnrollCompletely) && bool(DstIsAligned) ? int(CompleteUnrolling) : int(NoUnrolling) )
+              : int(Traversal) == int(LinearTraversal)
+                ? ( bool(MayUnrollCompletely) ? int(CompleteUnrolling) : int(NoUnrolling) )
+              : int(NoUnrolling)
+  };
+
+#ifdef EIGEN_DEBUG_ASSIGN
+  static void debug()
+  {
+    EIGEN_DEBUG_VAR(DstIsAligned)
+    EIGEN_DEBUG_VAR(SrcIsAligned)
+    EIGEN_DEBUG_VAR(JointAlignment)
+    EIGEN_DEBUG_VAR(InnerSize)
+    EIGEN_DEBUG_VAR(InnerMaxSize)
+    EIGEN_DEBUG_VAR(PacketSize)
+    EIGEN_DEBUG_VAR(StorageOrdersAgree)
+    EIGEN_DEBUG_VAR(MightVectorize)
+    EIGEN_DEBUG_VAR(MayLinearize)
+    EIGEN_DEBUG_VAR(MayInnerVectorize)
+    EIGEN_DEBUG_VAR(MayLinearVectorize)
+    EIGEN_DEBUG_VAR(MaySliceVectorize)
+    EIGEN_DEBUG_VAR(Traversal)
+    EIGEN_DEBUG_VAR(UnrollingLimit)
+    EIGEN_DEBUG_VAR(MayUnrollCompletely)
+    EIGEN_DEBUG_VAR(MayUnrollInner)
+    EIGEN_DEBUG_VAR(Unrolling)
+  }
+#endif
+};
+
+/***************************************************************************
+* Part 2 : meta-unrollers
+***************************************************************************/
+
+/************************
+*** Default traversal ***
+************************/
+
+template<typename Derived1, typename Derived2, int Index, int Stop>
+struct assign_DefaultTraversal_CompleteUnrolling
+{
+  enum {
+    outer = Index / Derived1::InnerSizeAtCompileTime,
+    inner = Index % Derived1::InnerSizeAtCompileTime
+  };
+
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    dst.copyCoeffByOuterInner(outer, inner, src);
+    assign_DefaultTraversal_CompleteUnrolling<Derived1, Derived2, Index+1, Stop>::run(dst, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Stop>
+struct assign_DefaultTraversal_CompleteUnrolling<Derived1, Derived2, Stop, Stop>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &) {}
+};
+
+template<typename Derived1, typename Derived2, int Index, int Stop>
+struct assign_DefaultTraversal_InnerUnrolling
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src, typename Derived1::Index outer)
+  {
+    dst.copyCoeffByOuterInner(outer, Index, src);
+    assign_DefaultTraversal_InnerUnrolling<Derived1, Derived2, Index+1, Stop>::run(dst, src, outer);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Stop>
+struct assign_DefaultTraversal_InnerUnrolling<Derived1, Derived2, Stop, Stop>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &, typename Derived1::Index) {}
+};
+
+/***********************
+*** Linear traversal ***
+***********************/
+
+template<typename Derived1, typename Derived2, int Index, int Stop>
+struct assign_LinearTraversal_CompleteUnrolling
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    dst.copyCoeff(Index, src);
+    assign_LinearTraversal_CompleteUnrolling<Derived1, Derived2, Index+1, Stop>::run(dst, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Stop>
+struct assign_LinearTraversal_CompleteUnrolling<Derived1, Derived2, Stop, Stop>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &) {}
+};
+
+/**************************
+*** Inner vectorization ***
+**************************/
+
+template<typename Derived1, typename Derived2, int Index, int Stop>
+struct assign_innervec_CompleteUnrolling
+{
+  enum {
+    outer = Index / Derived1::InnerSizeAtCompileTime,
+    inner = Index % Derived1::InnerSizeAtCompileTime,
+    JointAlignment = assign_traits<Derived1,Derived2>::JointAlignment
+  };
+
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    dst.template copyPacketByOuterInner<Derived2, Aligned, JointAlignment>(outer, inner, src);
+    assign_innervec_CompleteUnrolling<Derived1, Derived2,
+      Index+packet_traits<typename Derived1::Scalar>::size, Stop>::run(dst, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Stop>
+struct assign_innervec_CompleteUnrolling<Derived1, Derived2, Stop, Stop>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &) {}
+};
+
+template<typename Derived1, typename Derived2, int Index, int Stop>
+struct assign_innervec_InnerUnrolling
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src, typename Derived1::Index outer)
+  {
+    dst.template copyPacketByOuterInner<Derived2, Aligned, Aligned>(outer, Index, src);
+    assign_innervec_InnerUnrolling<Derived1, Derived2,
+      Index+packet_traits<typename Derived1::Scalar>::size, Stop>::run(dst, src, outer);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Stop>
+struct assign_innervec_InnerUnrolling<Derived1, Derived2, Stop, Stop>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &, const Derived2 &, typename Derived1::Index) {}
+};
+
+/***************************************************************************
+* Part 3 : implementation of all cases
+***************************************************************************/
+
+template<typename Derived1, typename Derived2,
+         int Traversal = assign_traits<Derived1, Derived2>::Traversal,
+         int Unrolling = assign_traits<Derived1, Derived2>::Unrolling,
+         int Version = Specialized>
+struct assign_impl;
+
+/************************
+*** Default traversal ***
+************************/
+
+template<typename Derived1, typename Derived2, int Unrolling, int Version>
+struct assign_impl<Derived1, Derived2, InvalidTraversal, Unrolling, Version>
+{
+  static inline void run(Derived1 &, const Derived2 &) { }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, DefaultTraversal, NoUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    const Index innerSize = dst.innerSize();
+    const Index outerSize = dst.outerSize();
+    for(Index outer = 0; outer < outerSize; ++outer)
+      for(Index inner = 0; inner < innerSize; ++inner)
+        dst.copyCoeffByOuterInner(outer, inner, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, DefaultTraversal, CompleteUnrolling, Version>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    assign_DefaultTraversal_CompleteUnrolling<Derived1, Derived2, 0, Derived1::SizeAtCompileTime>
+      ::run(dst, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, DefaultTraversal, InnerUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    const Index outerSize = dst.outerSize();
+    for(Index outer = 0; outer < outerSize; ++outer)
+      assign_DefaultTraversal_InnerUnrolling<Derived1, Derived2, 0, Derived1::InnerSizeAtCompileTime>
+        ::run(dst, src, outer);
+  }
+};
+
+/***********************
+*** Linear traversal ***
+***********************/
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, LinearTraversal, NoUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    const Index size = dst.size();
+    for(Index i = 0; i < size; ++i)
+      dst.copyCoeff(i, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, LinearTraversal, CompleteUnrolling, Version>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    assign_LinearTraversal_CompleteUnrolling<Derived1, Derived2, 0, Derived1::SizeAtCompileTime>
+      ::run(dst, src);
+  }
+};
+
+/**************************
+*** Inner vectorization ***
+**************************/
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, InnerVectorizedTraversal, NoUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    const Index innerSize = dst.innerSize();
+    const Index outerSize = dst.outerSize();
+    const Index packetSize = packet_traits<typename Derived1::Scalar>::size;
+    for(Index outer = 0; outer < outerSize; ++outer)
+      for(Index inner = 0; inner < innerSize; inner+=packetSize)
+        dst.template copyPacketByOuterInner<Derived2, Aligned, Aligned>(outer, inner, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, InnerVectorizedTraversal, CompleteUnrolling, Version>
+{
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    assign_innervec_CompleteUnrolling<Derived1, Derived2, 0, Derived1::SizeAtCompileTime>
+      ::run(dst, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, InnerVectorizedTraversal, InnerUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    const Index outerSize = dst.outerSize();
+    for(Index outer = 0; outer < outerSize; ++outer)
+      assign_innervec_InnerUnrolling<Derived1, Derived2, 0, Derived1::InnerSizeAtCompileTime>
+        ::run(dst, src, outer);
+  }
+};
+
+/***************************
+*** Linear vectorization ***
+***************************/
+
+template <bool IsAligned = false>
+struct unaligned_assign_impl
+{
+  template <typename Derived, typename OtherDerived>
+  static EIGEN_STRONG_INLINE void run(const Derived&, OtherDerived&, typename Derived::Index, typename Derived::Index) {}
+};
+
+template <>
+struct unaligned_assign_impl<false>
+{
+  // MSVC must not inline this functions. If it does, it fails to optimize the
+  // packet access path.
+#ifdef _MSC_VER
+  template <typename Derived, typename OtherDerived>
+  static EIGEN_DONT_INLINE void run(const Derived& src, OtherDerived& dst, typename Derived::Index start, typename Derived::Index end)
+#else
+  template <typename Derived, typename OtherDerived>
+  static EIGEN_STRONG_INLINE void run(const Derived& src, OtherDerived& dst, typename Derived::Index start, typename Derived::Index end)
+#endif
+  {
+    for (typename Derived::Index index = start; index < end; ++index)
+      dst.copyCoeff(index, src);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, LinearVectorizedTraversal, NoUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    const Index size = dst.size();
+    typedef packet_traits<typename Derived1::Scalar> PacketTraits;
+    enum {
+      packetSize = PacketTraits::size,
+      dstAlignment = PacketTraits::AlignedOnScalar ? Aligned : int(assign_traits<Derived1,Derived2>::DstIsAligned) ,
+      srcAlignment = assign_traits<Derived1,Derived2>::JointAlignment
+    };
+    const Index alignedStart = assign_traits<Derived1,Derived2>::DstIsAligned ? 0
+                             : internal::first_aligned(&dst.coeffRef(0), size);
+    const Index alignedEnd = alignedStart + ((size-alignedStart)/packetSize)*packetSize;
+
+    unaligned_assign_impl<assign_traits<Derived1,Derived2>::DstIsAligned!=0>::run(src,dst,0,alignedStart);
+
+    for(Index index = alignedStart; index < alignedEnd; index += packetSize)
+    {
+      dst.template copyPacket<Derived2, dstAlignment, srcAlignment>(index, src);
+    }
+
+    unaligned_assign_impl<>::run(src,dst,alignedEnd,size);
+  }
+};
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, LinearVectorizedTraversal, CompleteUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static EIGEN_STRONG_INLINE void run(Derived1 &dst, const Derived2 &src)
+  {
+    enum { size = Derived1::SizeAtCompileTime,
+           packetSize = packet_traits<typename Derived1::Scalar>::size,
+           alignedSize = (size/packetSize)*packetSize };
+
+    assign_innervec_CompleteUnrolling<Derived1, Derived2, 0, alignedSize>::run(dst, src);
+    assign_DefaultTraversal_CompleteUnrolling<Derived1, Derived2, alignedSize, size>::run(dst, src);
+  }
+};
+
+/**************************
+*** Slice vectorization ***
+***************************/
+
+template<typename Derived1, typename Derived2, int Version>
+struct assign_impl<Derived1, Derived2, SliceVectorizedTraversal, NoUnrolling, Version>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    typedef typename Derived1::Scalar Scalar;
+    typedef packet_traits<Scalar> PacketTraits;
+    enum {
+      packetSize = PacketTraits::size,
+      alignable = PacketTraits::AlignedOnScalar,
+      dstIsAligned = assign_traits<Derived1,Derived2>::DstIsAligned,
+      dstAlignment = alignable ? Aligned : int(dstIsAligned),
+      srcAlignment = assign_traits<Derived1,Derived2>::JointAlignment
+    };
+    const Scalar *dst_ptr = &dst.coeffRef(0,0);
+    if((!bool(dstIsAligned)) && (size_t(dst_ptr) % sizeof(Scalar))>0)
+    {
+      // the pointer is not aligend-on scalar, so alignment is not possible
+      return assign_impl<Derived1,Derived2,DefaultTraversal,NoUnrolling>::run(dst, src);
+    }
+    const Index packetAlignedMask = packetSize - 1;
+    const Index innerSize = dst.innerSize();
+    const Index outerSize = dst.outerSize();
+    const Index alignedStep = alignable ? (packetSize - dst.outerStride() % packetSize) & packetAlignedMask : 0;
+    Index alignedStart = ((!alignable) || bool(dstIsAligned)) ? 0 : internal::first_aligned(dst_ptr, innerSize);
+
+    for(Index outer = 0; outer < outerSize; ++outer)
+    {
+      const Index alignedEnd = alignedStart + ((innerSize-alignedStart) & ~packetAlignedMask);
+      // do the non-vectorizable part of the assignment
+      for(Index inner = 0; inner<alignedStart ; ++inner)
+        dst.copyCoeffByOuterInner(outer, inner, src);
+
+      // do the vectorizable part of the assignment
+      for(Index inner = alignedStart; inner<alignedEnd; inner+=packetSize)
+        dst.template copyPacketByOuterInner<Derived2, dstAlignment, Unaligned>(outer, inner, src);
+
+      // do the non-vectorizable part of the assignment
+      for(Index inner = alignedEnd; inner<innerSize ; ++inner)
+        dst.copyCoeffByOuterInner(outer, inner, src);
+
+      alignedStart = std::min<Index>((alignedStart+alignedStep)%packetSize, innerSize);
+    }
+  }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Part 4 : implementation of DenseBase methods
+***************************************************************************/
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>
+  ::lazyAssign(const DenseBase<OtherDerived>& other)
+{
+  enum{
+    SameType = internal::is_same<typename Derived::Scalar,typename OtherDerived::Scalar>::value
+  };
+
+  EIGEN_STATIC_ASSERT_LVALUE(Derived)
+  EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Derived,OtherDerived)
+  EIGEN_STATIC_ASSERT(SameType,YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+#ifdef EIGEN_DEBUG_ASSIGN
+  internal::assign_traits<Derived, OtherDerived>::debug();
+#endif
+  eigen_assert(rows() == other.rows() && cols() == other.cols());
+  internal::assign_impl<Derived, OtherDerived, int(SameType) ? int(internal::assign_traits<Derived, OtherDerived>::Traversal)
+                                                       : int(InvalidTraversal)>::run(derived(),other.derived());
+#ifndef EIGEN_NO_DEBUG
+  checkTransposeAliasing(other.derived());
+#endif
+  return derived();
+}
+
+namespace internal {
+
+template<typename Derived, typename OtherDerived,
+         bool EvalBeforeAssigning = (int(internal::traits<OtherDerived>::Flags) & EvalBeforeAssigningBit) != 0,
+         bool NeedToTranspose = ((int(Derived::RowsAtCompileTime) == 1 && int(OtherDerived::ColsAtCompileTime) == 1)
+                              |   // FIXME | instead of || to please GCC 4.4.0 stupid warning "suggest parentheses around &&".
+                                  // revert to || as soon as not needed anymore.
+                                  (int(Derived::ColsAtCompileTime) == 1 && int(OtherDerived::RowsAtCompileTime) == 1))
+                              && int(Derived::SizeAtCompileTime) != 1>
+struct assign_selector;
+
+template<typename Derived, typename OtherDerived>
+struct assign_selector<Derived,OtherDerived,false,false> {
+  static EIGEN_STRONG_INLINE Derived& run(Derived& dst, const OtherDerived& other) { return dst.lazyAssign(other.derived()); }
+  template<typename ActualDerived, typename ActualOtherDerived>
+  static EIGEN_STRONG_INLINE Derived& evalTo(ActualDerived& dst, const ActualOtherDerived& other) { other.evalTo(dst); return dst; }
+};
+template<typename Derived, typename OtherDerived>
+struct assign_selector<Derived,OtherDerived,true,false> {
+  static EIGEN_STRONG_INLINE Derived& run(Derived& dst, const OtherDerived& other) { return dst.lazyAssign(other.eval()); }
+};
+template<typename Derived, typename OtherDerived>
+struct assign_selector<Derived,OtherDerived,false,true> {
+  static EIGEN_STRONG_INLINE Derived& run(Derived& dst, const OtherDerived& other) { return dst.lazyAssign(other.transpose()); }
+  template<typename ActualDerived, typename ActualOtherDerived>
+  static EIGEN_STRONG_INLINE Derived& evalTo(ActualDerived& dst, const ActualOtherDerived& other) { Transpose<ActualDerived> dstTrans(dst); other.evalTo(dstTrans); return dst; }
+};
+template<typename Derived, typename OtherDerived>
+struct assign_selector<Derived,OtherDerived,true,true> {
+  static EIGEN_STRONG_INLINE Derived& run(Derived& dst, const OtherDerived& other) { return dst.lazyAssign(other.transpose().eval()); }
+};
+
+} // end namespace internal
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator=(const DenseBase<OtherDerived>& other)
+{
+  return internal::assign_selector<Derived,OtherDerived>::run(derived(), other.derived());
+}
+
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived& DenseBase<Derived>::operator=(const DenseBase& other)
+{
+  return internal::assign_selector<Derived,Derived>::run(derived(), other.derived());
+}
+
+template<typename Derived>
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const MatrixBase& other)
+{
+  return internal::assign_selector<Derived,Derived>::run(derived(), other.derived());
+}
+
+template<typename Derived>
+template <typename OtherDerived>
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const DenseBase<OtherDerived>& other)
+{
+  return internal::assign_selector<Derived,OtherDerived>::run(derived(), other.derived());
+}
+
+template<typename Derived>
+template <typename OtherDerived>
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const EigenBase<OtherDerived>& other)
+{
+  return internal::assign_selector<Derived,OtherDerived,false>::evalTo(derived(), other.derived());
+}
+
+template<typename Derived>
+template<typename OtherDerived>
+EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const ReturnByValue<OtherDerived>& other)
+{
+  return internal::assign_selector<Derived,OtherDerived,false>::evalTo(derived(), other.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ASSIGN_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CoreIterators.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CoreIterators.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CoreIterators.h	(revision 2476)
@@ -0,0 +1,61 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COREITERATORS_H
+#define EIGEN_COREITERATORS_H
+
+namespace Eigen { 
+
+/* This file contains the respective InnerIterator definition of the expressions defined in Eigen/Core
+ */
+
+/** \ingroup SparseCore_Module
+  * \class InnerIterator
+  * \brief An InnerIterator allows to loop over the element of a sparse (or dense) matrix or expression
+  *
+  * todo
+  */
+
+// generic version for dense matrix and expressions
+template<typename Derived> class DenseBase<Derived>::InnerIterator
+{
+  protected:
+    typedef typename Derived::Scalar Scalar;
+    typedef typename Derived::Index Index;
+
+    enum { IsRowMajor = (Derived::Flags&RowMajorBit)==RowMajorBit };
+  public:
+    EIGEN_STRONG_INLINE InnerIterator(const Derived& expr, Index outer)
+      : m_expression(expr), m_inner(0), m_outer(outer), m_end(expr.innerSize())
+    {}
+
+    EIGEN_STRONG_INLINE Scalar value() const
+    {
+      return (IsRowMajor) ? m_expression.coeff(m_outer, m_inner)
+                          : m_expression.coeff(m_inner, m_outer);
+    }
+
+    EIGEN_STRONG_INLINE InnerIterator& operator++() { m_inner++; return *this; }
+
+    EIGEN_STRONG_INLINE Index index() const { return m_inner; }
+    inline Index row() const { return IsRowMajor ? m_outer : index(); }
+    inline Index col() const { return IsRowMajor ? index() : m_outer; }
+
+    EIGEN_STRONG_INLINE operator bool() const { return m_inner < m_end && m_inner>=0; }
+
+  protected:
+    const Derived& m_expression;
+    Index m_inner;
+    const Index m_outer;
+    const Index m_end;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_COREITERATORS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/PlainObjectBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/PlainObjectBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/PlainObjectBase.h	(revision 2476)
@@ -0,0 +1,822 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DENSESTORAGEBASE_H
+#define EIGEN_DENSESTORAGEBASE_H
+
+#if defined(EIGEN_INITIALIZE_MATRICES_BY_ZERO)
+# define EIGEN_INITIALIZE_COEFFS
+# define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED for(int i=0;i<base().size();++i) coeffRef(i)=Scalar(0);
+#elif defined(EIGEN_INITIALIZE_MATRICES_BY_NAN)
+# define EIGEN_INITIALIZE_COEFFS
+# define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED for(int i=0;i<base().size();++i) coeffRef(i)=std::numeric_limits<Scalar>::quiet_NaN();
+#else
+# undef EIGEN_INITIALIZE_COEFFS
+# define EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+#endif
+
+namespace Eigen {
+
+namespace internal {
+
+template<int MaxSizeAtCompileTime> struct check_rows_cols_for_overflow {
+  template<typename Index>
+  static EIGEN_ALWAYS_INLINE void run(Index, Index)
+  {
+  }
+};
+
+template<> struct check_rows_cols_for_overflow<Dynamic> {
+  template<typename Index>
+  static EIGEN_ALWAYS_INLINE void run(Index rows, Index cols)
+  {
+    // http://hg.mozilla.org/mozilla-central/file/6c8a909977d3/xpcom/ds/CheckedInt.h#l242
+    // we assume Index is signed
+    Index max_index = (size_t(1) << (8 * sizeof(Index) - 1)) - 1; // assume Index is signed
+    bool error = (rows == 0 || cols == 0) ? false
+               : (rows > max_index / cols);
+    if (error)
+      throw_std_bad_alloc();
+  }
+};
+
+template <typename Derived,
+          typename OtherDerived = Derived,
+          bool IsVector = bool(Derived::IsVectorAtCompileTime) && bool(OtherDerived::IsVectorAtCompileTime)>
+struct conservative_resize_like_impl;
+
+template<typename MatrixTypeA, typename MatrixTypeB, bool SwapPointers> struct matrix_swap_impl;
+
+} // end namespace internal
+
+/** \class PlainObjectBase
+  * \brief %Dense storage base class for matrices and arrays.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_PLAINOBJECTBASE_PLUGIN.
+  *
+  * \sa \ref TopicClassHierarchy
+  */
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+namespace internal {
+
+// this is a warkaround to doxygen not being able to understand the inheritence logic
+// when it is hidden by the dense_xpr_base helper struct.
+template<typename Derived> struct dense_xpr_base_dispatcher_for_doxygen;// : public MatrixBase<Derived> {};
+/** This class is just a workaround for Doxygen and it does not not actually exist. */
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct dense_xpr_base_dispatcher_for_doxygen<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+    : public MatrixBase<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > {};
+/** This class is just a workaround for Doxygen and it does not not actually exist. */
+template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
+struct dense_xpr_base_dispatcher_for_doxygen<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
+    : public ArrayBase<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> > {};
+
+} // namespace internal
+
+template<typename Derived>
+class PlainObjectBase : public internal::dense_xpr_base_dispatcher_for_doxygen<Derived>
+#else
+template<typename Derived>
+class PlainObjectBase : public internal::dense_xpr_base<Derived>::type
+#endif
+{
+  public:
+    enum { Options = internal::traits<Derived>::Options };
+    typedef typename internal::dense_xpr_base<Derived>::type Base;
+
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef Derived DenseType;
+
+    using Base::RowsAtCompileTime;
+    using Base::ColsAtCompileTime;
+    using Base::SizeAtCompileTime;
+    using Base::MaxRowsAtCompileTime;
+    using Base::MaxColsAtCompileTime;
+    using Base::MaxSizeAtCompileTime;
+    using Base::IsVectorAtCompileTime;
+    using Base::Flags;
+
+    template<typename PlainObjectType, int MapOptions, typename StrideType> friend class Eigen::Map;
+    friend  class Eigen::Map<Derived, Unaligned>;
+    typedef Eigen::Map<Derived, Unaligned>  MapType;
+    friend  class Eigen::Map<const Derived, Unaligned>;
+    typedef const Eigen::Map<const Derived, Unaligned> ConstMapType;
+    friend  class Eigen::Map<Derived, Aligned>;
+    typedef Eigen::Map<Derived, Aligned> AlignedMapType;
+    friend  class Eigen::Map<const Derived, Aligned>;
+    typedef const Eigen::Map<const Derived, Aligned> ConstAlignedMapType;
+    template<typename StrideType> struct StridedMapType { typedef Eigen::Map<Derived, Unaligned, StrideType> type; };
+    template<typename StrideType> struct StridedConstMapType { typedef Eigen::Map<const Derived, Unaligned, StrideType> type; };
+    template<typename StrideType> struct StridedAlignedMapType { typedef Eigen::Map<Derived, Aligned, StrideType> type; };
+    template<typename StrideType> struct StridedConstAlignedMapType { typedef Eigen::Map<const Derived, Aligned, StrideType> type; };
+
+  protected:
+    DenseStorage<Scalar, Base::MaxSizeAtCompileTime, Base::RowsAtCompileTime, Base::ColsAtCompileTime, Options> m_storage;
+
+  public:
+    enum { NeedsToAlign = SizeAtCompileTime != Dynamic && (internal::traits<Derived>::Flags & AlignedBit) != 0 };
+    EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(NeedsToAlign)
+
+    Base& base() { return *static_cast<Base*>(this); }
+    const Base& base() const { return *static_cast<const Base*>(this); }
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_storage.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_storage.cols(); }
+
+    EIGEN_STRONG_INLINE const Scalar& coeff(Index rowId, Index colId) const
+    {
+      if(Flags & RowMajorBit)
+        return m_storage.data()[colId + rowId * m_storage.cols()];
+      else // column-major
+        return m_storage.data()[rowId + colId * m_storage.rows()];
+    }
+
+    EIGEN_STRONG_INLINE const Scalar& coeff(Index index) const
+    {
+      return m_storage.data()[index];
+    }
+
+    EIGEN_STRONG_INLINE Scalar& coeffRef(Index rowId, Index colId)
+    {
+      if(Flags & RowMajorBit)
+        return m_storage.data()[colId + rowId * m_storage.cols()];
+      else // column-major
+        return m_storage.data()[rowId + colId * m_storage.rows()];
+    }
+
+    EIGEN_STRONG_INLINE Scalar& coeffRef(Index index)
+    {
+      return m_storage.data()[index];
+    }
+
+    EIGEN_STRONG_INLINE const Scalar& coeffRef(Index rowId, Index colId) const
+    {
+      if(Flags & RowMajorBit)
+        return m_storage.data()[colId + rowId * m_storage.cols()];
+      else // column-major
+        return m_storage.data()[rowId + colId * m_storage.rows()];
+    }
+
+    EIGEN_STRONG_INLINE const Scalar& coeffRef(Index index) const
+    {
+      return m_storage.data()[index];
+    }
+
+    /** \internal */
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index rowId, Index colId) const
+    {
+      return internal::ploadt<PacketScalar, LoadMode>
+               (m_storage.data() + (Flags & RowMajorBit
+                                   ? colId + rowId * m_storage.cols()
+                                   : rowId + colId * m_storage.rows()));
+    }
+
+    /** \internal */
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index index) const
+    {
+      return internal::ploadt<PacketScalar, LoadMode>(m_storage.data() + index);
+    }
+
+    /** \internal */
+    template<int StoreMode>
+    EIGEN_STRONG_INLINE void writePacket(Index rowId, Index colId, const PacketScalar& val)
+    {
+      internal::pstoret<Scalar, PacketScalar, StoreMode>
+              (m_storage.data() + (Flags & RowMajorBit
+                                   ? colId + rowId * m_storage.cols()
+                                   : rowId + colId * m_storage.rows()), val);
+    }
+
+    /** \internal */
+    template<int StoreMode>
+    EIGEN_STRONG_INLINE void writePacket(Index index, const PacketScalar& val)
+    {
+      internal::pstoret<Scalar, PacketScalar, StoreMode>(m_storage.data() + index, val);
+    }
+
+    /** \returns a const pointer to the data array of this matrix */
+    EIGEN_STRONG_INLINE const Scalar *data() const
+    { return m_storage.data(); }
+
+    /** \returns a pointer to the data array of this matrix */
+    EIGEN_STRONG_INLINE Scalar *data()
+    { return m_storage.data(); }
+
+    /** Resizes \c *this to a \a rows x \a cols matrix.
+      *
+      * This method is intended for dynamic-size matrices, although it is legal to call it on any
+      * matrix as long as fixed dimensions are left unchanged. If you only want to change the number
+      * of rows and/or of columns, you can use resize(NoChange_t, Index), resize(Index, NoChange_t).
+      *
+      * If the current number of coefficients of \c *this exactly matches the
+      * product \a rows * \a cols, then no memory allocation is performed and
+      * the current values are left unchanged. In all other cases, including
+      * shrinking, the data is reallocated and all previous values are lost.
+      *
+      * Example: \include Matrix_resize_int_int.cpp
+      * Output: \verbinclude Matrix_resize_int_int.out
+      *
+      * \sa resize(Index) for vectors, resize(NoChange_t, Index), resize(Index, NoChange_t)
+      */
+    EIGEN_STRONG_INLINE void resize(Index nbRows, Index nbCols)
+    {
+      eigen_assert(   EIGEN_IMPLIES(RowsAtCompileTime!=Dynamic,nbRows==RowsAtCompileTime)
+                   && EIGEN_IMPLIES(ColsAtCompileTime!=Dynamic,nbCols==ColsAtCompileTime)
+                   && EIGEN_IMPLIES(RowsAtCompileTime==Dynamic && MaxRowsAtCompileTime!=Dynamic,nbRows<=MaxRowsAtCompileTime)
+                   && EIGEN_IMPLIES(ColsAtCompileTime==Dynamic && MaxColsAtCompileTime!=Dynamic,nbCols<=MaxColsAtCompileTime)
+                   && nbRows>=0 && nbCols>=0 && "Invalid sizes when resizing a matrix or array.");
+      internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(nbRows, nbCols);
+      #ifdef EIGEN_INITIALIZE_COEFFS
+        Index size = nbRows*nbCols;
+        bool size_changed = size != this->size();
+        m_storage.resize(size, nbRows, nbCols);
+        if(size_changed) EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+      #else
+        internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(nbRows, nbCols);
+        m_storage.resize(nbRows*nbCols, nbRows, nbCols);
+      #endif
+    }
+
+    /** Resizes \c *this to a vector of length \a size
+      *
+      * \only_for_vectors. This method does not work for
+      * partially dynamic matrices when the static dimension is anything other
+      * than 1. For example it will not work with Matrix<double, 2, Dynamic>.
+      *
+      * Example: \include Matrix_resize_int.cpp
+      * Output: \verbinclude Matrix_resize_int.out
+      *
+      * \sa resize(Index,Index), resize(NoChange_t, Index), resize(Index, NoChange_t)
+      */
+    inline void resize(Index size)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(PlainObjectBase)
+      eigen_assert(((SizeAtCompileTime == Dynamic && (MaxSizeAtCompileTime==Dynamic || size<=MaxSizeAtCompileTime)) || SizeAtCompileTime == size) && size>=0);
+      #ifdef EIGEN_INITIALIZE_COEFFS
+        bool size_changed = size != this->size();
+      #endif
+      if(RowsAtCompileTime == 1)
+        m_storage.resize(size, 1, size);
+      else
+        m_storage.resize(size, size, 1);
+      #ifdef EIGEN_INITIALIZE_COEFFS
+        if(size_changed) EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+      #endif
+    }
+
+    /** Resizes the matrix, changing only the number of columns. For the parameter of type NoChange_t, just pass the special value \c NoChange
+      * as in the example below.
+      *
+      * Example: \include Matrix_resize_NoChange_int.cpp
+      * Output: \verbinclude Matrix_resize_NoChange_int.out
+      *
+      * \sa resize(Index,Index)
+      */
+    inline void resize(NoChange_t, Index nbCols)
+    {
+      resize(rows(), nbCols);
+    }
+
+    /** Resizes the matrix, changing only the number of rows. For the parameter of type NoChange_t, just pass the special value \c NoChange
+      * as in the example below.
+      *
+      * Example: \include Matrix_resize_int_NoChange.cpp
+      * Output: \verbinclude Matrix_resize_int_NoChange.out
+      *
+      * \sa resize(Index,Index)
+      */
+    inline void resize(Index nbRows, NoChange_t)
+    {
+      resize(nbRows, cols());
+    }
+
+    /** Resizes \c *this to have the same dimensions as \a other.
+      * Takes care of doing all the checking that's needed.
+      *
+      * Note that copying a row-vector into a vector (and conversely) is allowed.
+      * The resizing, if any, is then done in the appropriate way so that row-vectors
+      * remain row-vectors and vectors remain vectors.
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE void resizeLike(const EigenBase<OtherDerived>& _other)
+    {
+      const OtherDerived& other = _other.derived();
+      internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(Index(other.rows()), Index(other.cols()));
+      const Index othersize = Index(other.rows())*Index(other.cols());
+      if(RowsAtCompileTime == 1)
+      {
+        eigen_assert(other.rows() == 1 || other.cols() == 1);
+        resize(1, othersize);
+      }
+      else if(ColsAtCompileTime == 1)
+      {
+        eigen_assert(other.rows() == 1 || other.cols() == 1);
+        resize(othersize, 1);
+      }
+      else resize(other.rows(), other.cols());
+    }
+
+    /** Resizes the matrix to \a rows x \a cols while leaving old values untouched.
+      *
+      * The method is intended for matrices of dynamic size. If you only want to change the number
+      * of rows and/or of columns, you can use conservativeResize(NoChange_t, Index) or
+      * conservativeResize(Index, NoChange_t).
+      *
+      * Matrices are resized relative to the top-left element. In case values need to be 
+      * appended to the matrix they will be uninitialized.
+      */
+    EIGEN_STRONG_INLINE void conservativeResize(Index nbRows, Index nbCols)
+    {
+      internal::conservative_resize_like_impl<Derived>::run(*this, nbRows, nbCols);
+    }
+
+    /** Resizes the matrix to \a rows x \a cols while leaving old values untouched.
+      *
+      * As opposed to conservativeResize(Index rows, Index cols), this version leaves
+      * the number of columns unchanged.
+      *
+      * In case the matrix is growing, new rows will be uninitialized.
+      */
+    EIGEN_STRONG_INLINE void conservativeResize(Index nbRows, NoChange_t)
+    {
+      // Note: see the comment in conservativeResize(Index,Index)
+      conservativeResize(nbRows, cols());
+    }
+
+    /** Resizes the matrix to \a rows x \a cols while leaving old values untouched.
+      *
+      * As opposed to conservativeResize(Index rows, Index cols), this version leaves
+      * the number of rows unchanged.
+      *
+      * In case the matrix is growing, new columns will be uninitialized.
+      */
+    EIGEN_STRONG_INLINE void conservativeResize(NoChange_t, Index nbCols)
+    {
+      // Note: see the comment in conservativeResize(Index,Index)
+      conservativeResize(rows(), nbCols);
+    }
+
+    /** Resizes the vector to \a size while retaining old values.
+      *
+      * \only_for_vectors. This method does not work for
+      * partially dynamic matrices when the static dimension is anything other
+      * than 1. For example it will not work with Matrix<double, 2, Dynamic>.
+      *
+      * When values are appended, they will be uninitialized.
+      */
+    EIGEN_STRONG_INLINE void conservativeResize(Index size)
+    {
+      internal::conservative_resize_like_impl<Derived>::run(*this, size);
+    }
+
+    /** Resizes the matrix to \a rows x \a cols of \c other, while leaving old values untouched.
+      *
+      * The method is intended for matrices of dynamic size. If you only want to change the number
+      * of rows and/or of columns, you can use conservativeResize(NoChange_t, Index) or
+      * conservativeResize(Index, NoChange_t).
+      *
+      * Matrices are resized relative to the top-left element. In case values need to be 
+      * appended to the matrix they will copied from \c other.
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE void conservativeResizeLike(const DenseBase<OtherDerived>& other)
+    {
+      internal::conservative_resize_like_impl<Derived,OtherDerived>::run(*this, other);
+    }
+
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    EIGEN_STRONG_INLINE Derived& operator=(const PlainObjectBase& other)
+    {
+      return _set(other);
+    }
+
+    /** \sa MatrixBase::lazyAssign() */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Derived& lazyAssign(const DenseBase<OtherDerived>& other)
+    {
+      _resize_to_match(other);
+      return Base::lazyAssign(other.derived());
+    }
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Derived& operator=(const ReturnByValue<OtherDerived>& func)
+    {
+      resize(func.rows(), func.cols());
+      return Base::operator=(func);
+    }
+
+    EIGEN_STRONG_INLINE PlainObjectBase() : m_storage()
+    {
+//       _check_template_params();
+//       EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    // FIXME is it still needed ?
+    /** \internal */
+    PlainObjectBase(internal::constructor_without_unaligned_array_assert)
+      : m_storage(internal::constructor_without_unaligned_array_assert())
+    {
+//       _check_template_params(); EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+#endif
+
+#ifdef EIGEN_HAVE_RVALUE_REFERENCES
+    PlainObjectBase(PlainObjectBase&& other)
+      : m_storage( std::move(other.m_storage) )
+    {
+    }
+
+    PlainObjectBase& operator=(PlainObjectBase&& other)
+    {
+      using std::swap;
+      swap(m_storage, other.m_storage);
+      return *this;
+    }
+#endif
+
+    /** Copy constructor */
+    EIGEN_STRONG_INLINE PlainObjectBase(const PlainObjectBase& other)
+      : m_storage()
+    {
+      _check_template_params();
+      lazyAssign(other);
+    }
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE PlainObjectBase(const DenseBase<OtherDerived> &other)
+      : m_storage()
+    {
+      _check_template_params();
+      lazyAssign(other);
+    }
+
+    EIGEN_STRONG_INLINE PlainObjectBase(Index a_size, Index nbRows, Index nbCols)
+      : m_storage(a_size, nbRows, nbCols)
+    {
+//       _check_template_params();
+//       EIGEN_INITIALIZE_COEFFS_IF_THAT_OPTION_IS_ENABLED
+    }
+
+    /** \copydoc MatrixBase::operator=(const EigenBase<OtherDerived>&)
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Derived& operator=(const EigenBase<OtherDerived> &other)
+    {
+      _resize_to_match(other);
+      Base::operator=(other.derived());
+      return this->derived();
+    }
+
+    /** \sa MatrixBase::operator=(const EigenBase<OtherDerived>&) */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE PlainObjectBase(const EigenBase<OtherDerived> &other)
+      : m_storage(Index(other.derived().rows()) * Index(other.derived().cols()), other.derived().rows(), other.derived().cols())
+    {
+      _check_template_params();
+      internal::check_rows_cols_for_overflow<MaxSizeAtCompileTime>::run(other.derived().rows(), other.derived().cols());
+      Base::operator=(other.derived());
+    }
+
+    /** \name Map
+      * These are convenience functions returning Map objects. The Map() static functions return unaligned Map objects,
+      * while the AlignedMap() functions return aligned Map objects and thus should be called only with 16-byte-aligned
+      * \a data pointers.
+      *
+      * \see class Map
+      */
+    //@{
+    static inline ConstMapType Map(const Scalar* data)
+    { return ConstMapType(data); }
+    static inline MapType Map(Scalar* data)
+    { return MapType(data); }
+    static inline ConstMapType Map(const Scalar* data, Index size)
+    { return ConstMapType(data, size); }
+    static inline MapType Map(Scalar* data, Index size)
+    { return MapType(data, size); }
+    static inline ConstMapType Map(const Scalar* data, Index rows, Index cols)
+    { return ConstMapType(data, rows, cols); }
+    static inline MapType Map(Scalar* data, Index rows, Index cols)
+    { return MapType(data, rows, cols); }
+
+    static inline ConstAlignedMapType MapAligned(const Scalar* data)
+    { return ConstAlignedMapType(data); }
+    static inline AlignedMapType MapAligned(Scalar* data)
+    { return AlignedMapType(data); }
+    static inline ConstAlignedMapType MapAligned(const Scalar* data, Index size)
+    { return ConstAlignedMapType(data, size); }
+    static inline AlignedMapType MapAligned(Scalar* data, Index size)
+    { return AlignedMapType(data, size); }
+    static inline ConstAlignedMapType MapAligned(const Scalar* data, Index rows, Index cols)
+    { return ConstAlignedMapType(data, rows, cols); }
+    static inline AlignedMapType MapAligned(Scalar* data, Index rows, Index cols)
+    { return AlignedMapType(data, rows, cols); }
+
+    template<int Outer, int Inner>
+    static inline typename StridedConstMapType<Stride<Outer, Inner> >::type Map(const Scalar* data, const Stride<Outer, Inner>& stride)
+    { return typename StridedConstMapType<Stride<Outer, Inner> >::type(data, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedMapType<Stride<Outer, Inner> >::type Map(Scalar* data, const Stride<Outer, Inner>& stride)
+    { return typename StridedMapType<Stride<Outer, Inner> >::type(data, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedConstMapType<Stride<Outer, Inner> >::type Map(const Scalar* data, Index size, const Stride<Outer, Inner>& stride)
+    { return typename StridedConstMapType<Stride<Outer, Inner> >::type(data, size, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedMapType<Stride<Outer, Inner> >::type Map(Scalar* data, Index size, const Stride<Outer, Inner>& stride)
+    { return typename StridedMapType<Stride<Outer, Inner> >::type(data, size, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedConstMapType<Stride<Outer, Inner> >::type Map(const Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
+    { return typename StridedConstMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedMapType<Stride<Outer, Inner> >::type Map(Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
+    { return typename StridedMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
+
+    template<int Outer, int Inner>
+    static inline typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type MapAligned(const Scalar* data, const Stride<Outer, Inner>& stride)
+    { return typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type(data, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedAlignedMapType<Stride<Outer, Inner> >::type MapAligned(Scalar* data, const Stride<Outer, Inner>& stride)
+    { return typename StridedAlignedMapType<Stride<Outer, Inner> >::type(data, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type MapAligned(const Scalar* data, Index size, const Stride<Outer, Inner>& stride)
+    { return typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type(data, size, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedAlignedMapType<Stride<Outer, Inner> >::type MapAligned(Scalar* data, Index size, const Stride<Outer, Inner>& stride)
+    { return typename StridedAlignedMapType<Stride<Outer, Inner> >::type(data, size, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type MapAligned(const Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
+    { return typename StridedConstAlignedMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
+    template<int Outer, int Inner>
+    static inline typename StridedAlignedMapType<Stride<Outer, Inner> >::type MapAligned(Scalar* data, Index rows, Index cols, const Stride<Outer, Inner>& stride)
+    { return typename StridedAlignedMapType<Stride<Outer, Inner> >::type(data, rows, cols, stride); }
+    //@}
+
+    using Base::setConstant;
+    Derived& setConstant(Index size, const Scalar& value);
+    Derived& setConstant(Index rows, Index cols, const Scalar& value);
+
+    using Base::setZero;
+    Derived& setZero(Index size);
+    Derived& setZero(Index rows, Index cols);
+
+    using Base::setOnes;
+    Derived& setOnes(Index size);
+    Derived& setOnes(Index rows, Index cols);
+
+    using Base::setRandom;
+    Derived& setRandom(Index size);
+    Derived& setRandom(Index rows, Index cols);
+
+    #ifdef EIGEN_PLAINOBJECTBASE_PLUGIN
+    #include EIGEN_PLAINOBJECTBASE_PLUGIN
+    #endif
+
+  protected:
+    /** \internal Resizes *this in preparation for assigning \a other to it.
+      * Takes care of doing all the checking that's needed.
+      *
+      * Note that copying a row-vector into a vector (and conversely) is allowed.
+      * The resizing, if any, is then done in the appropriate way so that row-vectors
+      * remain row-vectors and vectors remain vectors.
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE void _resize_to_match(const EigenBase<OtherDerived>& other)
+    {
+      #ifdef EIGEN_NO_AUTOMATIC_RESIZING
+      eigen_assert((this->size()==0 || (IsVectorAtCompileTime ? (this->size() == other.size())
+                 : (rows() == other.rows() && cols() == other.cols())))
+        && "Size mismatch. Automatic resizing is disabled because EIGEN_NO_AUTOMATIC_RESIZING is defined");
+      EIGEN_ONLY_USED_FOR_DEBUG(other);
+      if(this->size()==0)
+        resizeLike(other);
+      #else
+      resizeLike(other);
+      #endif
+    }
+
+    /**
+      * \brief Copies the value of the expression \a other into \c *this with automatic resizing.
+      *
+      * *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized),
+      * it will be initialized.
+      *
+      * Note that copying a row-vector into a vector (and conversely) is allowed.
+      * The resizing, if any, is then done in the appropriate way so that row-vectors
+      * remain row-vectors and vectors remain vectors.
+      *
+      * \sa operator=(const MatrixBase<OtherDerived>&), _set_noalias()
+      *
+      * \internal
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Derived& _set(const DenseBase<OtherDerived>& other)
+    {
+      _set_selector(other.derived(), typename internal::conditional<static_cast<bool>(int(OtherDerived::Flags) & EvalBeforeAssigningBit), internal::true_type, internal::false_type>::type());
+      return this->derived();
+    }
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE void _set_selector(const OtherDerived& other, const internal::true_type&) { _set_noalias(other.eval()); }
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE void _set_selector(const OtherDerived& other, const internal::false_type&) { _set_noalias(other); }
+
+    /** \internal Like _set() but additionally makes the assumption that no aliasing effect can happen (which
+      * is the case when creating a new matrix) so one can enforce lazy evaluation.
+      *
+      * \sa operator=(const MatrixBase<OtherDerived>&), _set()
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE Derived& _set_noalias(const DenseBase<OtherDerived>& other)
+    {
+      // I don't think we need this resize call since the lazyAssign will anyways resize
+      // and lazyAssign will be called by the assign selector.
+      //_resize_to_match(other);
+      // the 'false' below means to enforce lazy evaluation. We don't use lazyAssign() because
+      // it wouldn't allow to copy a row-vector into a column-vector.
+      return internal::assign_selector<Derived,OtherDerived,false>::run(this->derived(), other.derived());
+    }
+
+    template<typename T0, typename T1>
+    EIGEN_STRONG_INLINE void _init2(Index nbRows, Index nbCols, typename internal::enable_if<Base::SizeAtCompileTime!=2,T0>::type* = 0)
+    {
+      EIGEN_STATIC_ASSERT(bool(NumTraits<T0>::IsInteger) &&
+                          bool(NumTraits<T1>::IsInteger),
+                          FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED)
+      resize(nbRows,nbCols);
+    }
+    template<typename T0, typename T1>
+    EIGEN_STRONG_INLINE void _init2(const Scalar& val0, const Scalar& val1, typename internal::enable_if<Base::SizeAtCompileTime==2,T0>::type* = 0)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(PlainObjectBase, 2)
+      m_storage.data()[0] = val0;
+      m_storage.data()[1] = val1;
+    }
+
+    template<typename MatrixTypeA, typename MatrixTypeB, bool SwapPointers>
+    friend struct internal::matrix_swap_impl;
+
+    /** \internal generic implementation of swap for dense storage since for dynamic-sized matrices of same type it is enough to swap the
+      * data pointers.
+      */
+    template<typename OtherDerived>
+    void _swap(DenseBase<OtherDerived> const & other)
+    {
+      enum { SwapPointers = internal::is_same<Derived, OtherDerived>::value && Base::SizeAtCompileTime==Dynamic };
+      internal::matrix_swap_impl<Derived, OtherDerived, bool(SwapPointers)>::run(this->derived(), other.const_cast_derived());
+    }
+
+  public:
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    static EIGEN_STRONG_INLINE void _check_template_params()
+    {
+      EIGEN_STATIC_ASSERT((EIGEN_IMPLIES(MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1, (Options&RowMajor)==RowMajor)
+                        && EIGEN_IMPLIES(MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1, (Options&RowMajor)==0)
+                        && ((RowsAtCompileTime == Dynamic) || (RowsAtCompileTime >= 0))
+                        && ((ColsAtCompileTime == Dynamic) || (ColsAtCompileTime >= 0))
+                        && ((MaxRowsAtCompileTime == Dynamic) || (MaxRowsAtCompileTime >= 0))
+                        && ((MaxColsAtCompileTime == Dynamic) || (MaxColsAtCompileTime >= 0))
+                        && (MaxRowsAtCompileTime == RowsAtCompileTime || RowsAtCompileTime==Dynamic)
+                        && (MaxColsAtCompileTime == ColsAtCompileTime || ColsAtCompileTime==Dynamic)
+                        && (Options & (DontAlign|RowMajor)) == Options),
+        INVALID_MATRIX_TEMPLATE_PARAMETERS)
+    }
+#endif
+
+private:
+    enum { ThisConstantIsPrivateInPlainObjectBase };
+};
+
+namespace internal {
+
+template <typename Derived, typename OtherDerived, bool IsVector>
+struct conservative_resize_like_impl
+{
+  typedef typename Derived::Index Index;
+  static void run(DenseBase<Derived>& _this, Index rows, Index cols)
+  {
+    if (_this.rows() == rows && _this.cols() == cols) return;
+    EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(Derived)
+
+    if ( ( Derived::IsRowMajor && _this.cols() == cols) || // row-major and we change only the number of rows
+         (!Derived::IsRowMajor && _this.rows() == rows) )  // column-major and we change only the number of columns
+    {
+      internal::check_rows_cols_for_overflow<Derived::MaxSizeAtCompileTime>::run(rows, cols);
+      _this.derived().m_storage.conservativeResize(rows*cols,rows,cols);
+    }
+    else
+    {
+      // The storage order does not allow us to use reallocation.
+      typename Derived::PlainObject tmp(rows,cols);
+      const Index common_rows = (std::min)(rows, _this.rows());
+      const Index common_cols = (std::min)(cols, _this.cols());
+      tmp.block(0,0,common_rows,common_cols) = _this.block(0,0,common_rows,common_cols);
+      _this.derived().swap(tmp);
+    }
+  }
+
+  static void run(DenseBase<Derived>& _this, const DenseBase<OtherDerived>& other)
+  {
+    if (_this.rows() == other.rows() && _this.cols() == other.cols()) return;
+
+    // Note: Here is space for improvement. Basically, for conservativeResize(Index,Index),
+    // neither RowsAtCompileTime or ColsAtCompileTime must be Dynamic. If only one of the
+    // dimensions is dynamic, one could use either conservativeResize(Index rows, NoChange_t) or
+    // conservativeResize(NoChange_t, Index cols). For these methods new static asserts like
+    // EIGEN_STATIC_ASSERT_DYNAMIC_ROWS and EIGEN_STATIC_ASSERT_DYNAMIC_COLS would be good.
+    EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(Derived)
+    EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(OtherDerived)
+
+    if ( ( Derived::IsRowMajor && _this.cols() == other.cols()) || // row-major and we change only the number of rows
+         (!Derived::IsRowMajor && _this.rows() == other.rows()) )  // column-major and we change only the number of columns
+    {
+      const Index new_rows = other.rows() - _this.rows();
+      const Index new_cols = other.cols() - _this.cols();
+      _this.derived().m_storage.conservativeResize(other.size(),other.rows(),other.cols());
+      if (new_rows>0)
+        _this.bottomRightCorner(new_rows, other.cols()) = other.bottomRows(new_rows);
+      else if (new_cols>0)
+        _this.bottomRightCorner(other.rows(), new_cols) = other.rightCols(new_cols);
+    }
+    else
+    {
+      // The storage order does not allow us to use reallocation.
+      typename Derived::PlainObject tmp(other);
+      const Index common_rows = (std::min)(tmp.rows(), _this.rows());
+      const Index common_cols = (std::min)(tmp.cols(), _this.cols());
+      tmp.block(0,0,common_rows,common_cols) = _this.block(0,0,common_rows,common_cols);
+      _this.derived().swap(tmp);
+    }
+  }
+};
+
+// Here, the specialization for vectors inherits from the general matrix case
+// to allow calling .conservativeResize(rows,cols) on vectors.
+template <typename Derived, typename OtherDerived>
+struct conservative_resize_like_impl<Derived,OtherDerived,true>
+  : conservative_resize_like_impl<Derived,OtherDerived,false>
+{
+  using conservative_resize_like_impl<Derived,OtherDerived,false>::run;
+  
+  typedef typename Derived::Index Index;
+  static void run(DenseBase<Derived>& _this, Index size)
+  {
+    const Index new_rows = Derived::RowsAtCompileTime==1 ? 1 : size;
+    const Index new_cols = Derived::RowsAtCompileTime==1 ? size : 1;
+    _this.derived().m_storage.conservativeResize(size,new_rows,new_cols);
+  }
+
+  static void run(DenseBase<Derived>& _this, const DenseBase<OtherDerived>& other)
+  {
+    if (_this.rows() == other.rows() && _this.cols() == other.cols()) return;
+
+    const Index num_new_elements = other.size() - _this.size();
+
+    const Index new_rows = Derived::RowsAtCompileTime==1 ? 1 : other.rows();
+    const Index new_cols = Derived::RowsAtCompileTime==1 ? other.cols() : 1;
+    _this.derived().m_storage.conservativeResize(other.size(),new_rows,new_cols);
+
+    if (num_new_elements > 0)
+      _this.tail(num_new_elements) = other.tail(num_new_elements);
+  }
+};
+
+template<typename MatrixTypeA, typename MatrixTypeB, bool SwapPointers>
+struct matrix_swap_impl
+{
+  static inline void run(MatrixTypeA& a, MatrixTypeB& b)
+  {
+    a.base().swap(b);
+  }
+};
+
+template<typename MatrixTypeA, typename MatrixTypeB>
+struct matrix_swap_impl<MatrixTypeA, MatrixTypeB, true>
+{
+  static inline void run(MatrixTypeA& a, MatrixTypeB& b)
+  {
+    static_cast<typename MatrixTypeA::Base&>(a).m_storage.swap(static_cast<typename MatrixTypeB::Base&>(b).m_storage);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_DENSESTORAGEBASE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Dot.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Dot.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Dot.h	(revision 2476)
@@ -0,0 +1,263 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008, 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DOT_H
+#define EIGEN_DOT_H
+
+namespace Eigen { 
+
+namespace internal {
+
+// helper function for dot(). The problem is that if we put that in the body of dot(), then upon calling dot
+// with mismatched types, the compiler emits errors about failing to instantiate cwiseProduct BEFORE
+// looking at the static assertions. Thus this is a trick to get better compile errors.
+template<typename T, typename U,
+// the NeedToTranspose condition here is taken straight from Assign.h
+         bool NeedToTranspose = T::IsVectorAtCompileTime
+                && U::IsVectorAtCompileTime
+                && ((int(T::RowsAtCompileTime) == 1 && int(U::ColsAtCompileTime) == 1)
+                      |  // FIXME | instead of || to please GCC 4.4.0 stupid warning "suggest parentheses around &&".
+                         // revert to || as soon as not needed anymore.
+                    (int(T::ColsAtCompileTime) == 1 && int(U::RowsAtCompileTime) == 1))
+>
+struct dot_nocheck
+{
+  typedef typename scalar_product_traits<typename traits<T>::Scalar,typename traits<U>::Scalar>::ReturnType ResScalar;
+  static inline ResScalar run(const MatrixBase<T>& a, const MatrixBase<U>& b)
+  {
+    return a.template binaryExpr<scalar_conj_product_op<typename traits<T>::Scalar,typename traits<U>::Scalar> >(b).sum();
+  }
+};
+
+template<typename T, typename U>
+struct dot_nocheck<T, U, true>
+{
+  typedef typename scalar_product_traits<typename traits<T>::Scalar,typename traits<U>::Scalar>::ReturnType ResScalar;
+  static inline ResScalar run(const MatrixBase<T>& a, const MatrixBase<U>& b)
+  {
+    return a.transpose().template binaryExpr<scalar_conj_product_op<typename traits<T>::Scalar,typename traits<U>::Scalar> >(b).sum();
+  }
+};
+
+} // end namespace internal
+
+/** \returns the dot product of *this with other.
+  *
+  * \only_for_vectors
+  *
+  * \note If the scalar type is complex numbers, then this function returns the hermitian
+  * (sesquilinear) dot product, conjugate-linear in the first variable and linear in the
+  * second variable.
+  *
+  * \sa squaredNorm(), norm()
+  */
+template<typename Derived>
+template<typename OtherDerived>
+inline typename internal::scalar_product_traits<typename internal::traits<Derived>::Scalar,typename internal::traits<OtherDerived>::Scalar>::ReturnType
+MatrixBase<Derived>::dot(const MatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+  EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
+  typedef internal::scalar_conj_product_op<Scalar,typename OtherDerived::Scalar> func;
+  EIGEN_CHECK_BINARY_COMPATIBILIY(func,Scalar,typename OtherDerived::Scalar);
+
+  eigen_assert(size() == other.size());
+
+  return internal::dot_nocheck<Derived,OtherDerived>::run(*this, other);
+}
+
+#ifdef EIGEN2_SUPPORT
+/** \returns the dot product of *this with other, with the Eigen2 convention that the dot product is linear in the first variable
+  * (conjugating the second variable). Of course this only makes a difference in the complex case.
+  *
+  * This method is only available in EIGEN2_SUPPORT mode.
+  *
+  * \only_for_vectors
+  *
+  * \sa dot()
+  */
+template<typename Derived>
+template<typename OtherDerived>
+typename internal::traits<Derived>::Scalar
+MatrixBase<Derived>::eigen2_dot(const MatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+  EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
+  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+  eigen_assert(size() == other.size());
+
+  return internal::dot_nocheck<OtherDerived,Derived>::run(other,*this);
+}
+#endif
+
+
+//---------- implementation of L2 norm and related functions ----------
+
+/** \returns, for vectors, the squared \em l2 norm of \c *this, and for matrices the Frobenius norm.
+  * In both cases, it consists in the sum of the square of all the matrix entries.
+  * For vectors, this is also equals to the dot product of \c *this with itself.
+  *
+  * \sa dot(), norm()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename NumTraits<typename internal::traits<Derived>::Scalar>::Real MatrixBase<Derived>::squaredNorm() const
+{
+  return numext::real((*this).cwiseAbs2().sum());
+}
+
+/** \returns, for vectors, the \em l2 norm of \c *this, and for matrices the Frobenius norm.
+  * In both cases, it consists in the square root of the sum of the square of all the matrix entries.
+  * For vectors, this is also equals to the square root of the dot product of \c *this with itself.
+  *
+  * \sa dot(), squaredNorm()
+  */
+template<typename Derived>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real MatrixBase<Derived>::norm() const
+{
+  using std::sqrt;
+  return sqrt(squaredNorm());
+}
+
+/** \returns an expression of the quotient of *this by its own norm.
+  *
+  * \only_for_vectors
+  *
+  * \sa norm(), normalize()
+  */
+template<typename Derived>
+inline const typename MatrixBase<Derived>::PlainObject
+MatrixBase<Derived>::normalized() const
+{
+  typedef typename internal::nested<Derived>::type Nested;
+  typedef typename internal::remove_reference<Nested>::type _Nested;
+  _Nested n(derived());
+  return n / n.norm();
+}
+
+/** Normalizes the vector, i.e. divides it by its own norm.
+  *
+  * \only_for_vectors
+  *
+  * \sa norm(), normalized()
+  */
+template<typename Derived>
+inline void MatrixBase<Derived>::normalize()
+{
+  *this /= norm();
+}
+
+//---------- implementation of other norms ----------
+
+namespace internal {
+
+template<typename Derived, int p>
+struct lpNorm_selector
+{
+  typedef typename NumTraits<typename traits<Derived>::Scalar>::Real RealScalar;
+  static inline RealScalar run(const MatrixBase<Derived>& m)
+  {
+    using std::pow;
+    return pow(m.cwiseAbs().array().pow(p).sum(), RealScalar(1)/p);
+  }
+};
+
+template<typename Derived>
+struct lpNorm_selector<Derived, 1>
+{
+  static inline typename NumTraits<typename traits<Derived>::Scalar>::Real run(const MatrixBase<Derived>& m)
+  {
+    return m.cwiseAbs().sum();
+  }
+};
+
+template<typename Derived>
+struct lpNorm_selector<Derived, 2>
+{
+  static inline typename NumTraits<typename traits<Derived>::Scalar>::Real run(const MatrixBase<Derived>& m)
+  {
+    return m.norm();
+  }
+};
+
+template<typename Derived>
+struct lpNorm_selector<Derived, Infinity>
+{
+  static inline typename NumTraits<typename traits<Derived>::Scalar>::Real run(const MatrixBase<Derived>& m)
+  {
+    return m.cwiseAbs().maxCoeff();
+  }
+};
+
+} // end namespace internal
+
+/** \returns the \f$ \ell^p \f$ norm of *this, that is, returns the p-th root of the sum of the p-th powers of the absolute values
+  *          of the coefficients of *this. If \a p is the special value \a Eigen::Infinity, this function returns the \f$ \ell^\infty \f$
+  *          norm, that is the maximum of the absolute values of the coefficients of *this.
+  *
+  * \sa norm()
+  */
+template<typename Derived>
+template<int p>
+inline typename NumTraits<typename internal::traits<Derived>::Scalar>::Real
+MatrixBase<Derived>::lpNorm() const
+{
+  return internal::lpNorm_selector<Derived, p>::run(*this);
+}
+
+//---------- implementation of isOrthogonal / isUnitary ----------
+
+/** \returns true if *this is approximately orthogonal to \a other,
+  *          within the precision given by \a prec.
+  *
+  * Example: \include MatrixBase_isOrthogonal.cpp
+  * Output: \verbinclude MatrixBase_isOrthogonal.out
+  */
+template<typename Derived>
+template<typename OtherDerived>
+bool MatrixBase<Derived>::isOrthogonal
+(const MatrixBase<OtherDerived>& other, const RealScalar& prec) const
+{
+  typename internal::nested<Derived,2>::type nested(derived());
+  typename internal::nested<OtherDerived,2>::type otherNested(other.derived());
+  return numext::abs2(nested.dot(otherNested)) <= prec * prec * nested.squaredNorm() * otherNested.squaredNorm();
+}
+
+/** \returns true if *this is approximately an unitary matrix,
+  *          within the precision given by \a prec. In the case where the \a Scalar
+  *          type is real numbers, a unitary matrix is an orthogonal matrix, whence the name.
+  *
+  * \note This can be used to check whether a family of vectors forms an orthonormal basis.
+  *       Indeed, \c m.isUnitary() returns true if and only if the columns (equivalently, the rows) of m form an
+  *       orthonormal basis.
+  *
+  * Example: \include MatrixBase_isUnitary.cpp
+  * Output: \verbinclude MatrixBase_isUnitary.out
+  */
+template<typename Derived>
+bool MatrixBase<Derived>::isUnitary(const RealScalar& prec) const
+{
+  typename Derived::Nested nested(derived());
+  for(Index i = 0; i < cols(); ++i)
+  {
+    if(!internal::isApprox(nested.col(i).squaredNorm(), static_cast<RealScalar>(1), prec))
+      return false;
+    for(Index j = 0; j < i; ++j)
+      if(!internal::isMuchSmallerThan(nested.col(i).dot(nested.col(j)), static_cast<Scalar>(1), prec))
+        return false;
+  }
+  return true;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_DOT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/Default/Settings.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/Default/Settings.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/Default/Settings.h	(revision 2476)
@@ -0,0 +1,49 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+/* All the parameters defined in this file can be specialized in the
+ * architecture specific files, and/or by the user.
+ * More to come... */
+
+#ifndef EIGEN_DEFAULT_SETTINGS_H
+#define EIGEN_DEFAULT_SETTINGS_H
+
+/** Defines the maximal loop size to enable meta unrolling of loops.
+  * Note that the value here is expressed in Eigen's own notion of "number of FLOPS",
+  * it does not correspond to the number of iterations or the number of instructions
+  */
+#ifndef EIGEN_UNROLLING_LIMIT
+#define EIGEN_UNROLLING_LIMIT 100
+#endif
+
+/** Defines the threshold between a "small" and a "large" matrix.
+  * This threshold is mainly used to select the proper product implementation.
+  */
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
+#endif
+
+/** Defines the maximal width of the blocks used in the triangular product and solver
+  * for vectors (level 2 blas xTRMV and xTRSV). The default is 8.
+  */
+#ifndef EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH
+#define EIGEN_TUNE_TRIANGULAR_PANEL_WIDTH 8
+#endif
+
+
+/** Defines the default number of registers available for that architecture.
+  * Currently it must be 8 or 16. Other values will fail.
+  */
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 8
+#endif
+
+#endif // EIGEN_DEFAULT_SETTINGS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/AltiVec/PacketMath.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/AltiVec/PacketMath.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/AltiVec/PacketMath.h	(revision 2476)
@@ -0,0 +1,501 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Konstantinos Margaritis <markos@codex.gr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_ALTIVEC_H
+#define EIGEN_PACKET_MATH_ALTIVEC_H
+
+namespace Eigen {
+
+namespace internal {
+
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 4
+#endif
+
+#ifndef EIGEN_HAS_FUSE_CJMADD
+#define EIGEN_HAS_FUSE_CJMADD 1
+#endif
+
+// NOTE Altivec has 32 registers, but Eigen only accepts a value of 8 or 16
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 16
+#endif
+
+typedef __vector float          Packet4f;
+typedef __vector int            Packet4i;
+typedef __vector unsigned int   Packet4ui;
+typedef __vector __bool int     Packet4bi;
+typedef __vector short int      Packet8i;
+typedef __vector unsigned char  Packet16uc;
+
+// We don't want to write the same code all the time, but we need to reuse the constants
+// and it doesn't really work to declare them global, so we define macros instead
+
+#define _EIGEN_DECLARE_CONST_FAST_Packet4f(NAME,X) \
+  Packet4f p4f_##NAME = (Packet4f) vec_splat_s32(X)
+
+#define _EIGEN_DECLARE_CONST_FAST_Packet4i(NAME,X) \
+  Packet4i p4i_##NAME = vec_splat_s32(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4f(NAME,X) \
+  Packet4f p4f_##NAME = pset1<Packet4f>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME,X) \
+  Packet4f p4f_##NAME = vreinterpretq_f32_u32(pset1<int>(X))
+
+#define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \
+  Packet4i p4i_##NAME = pset1<Packet4i>(X)
+
+#define DST_CHAN 1
+#define DST_CTRL(size, count, stride) (((size) << 24) | ((count) << 16) | (stride))
+
+// Define global static constants:
+static Packet4f p4f_COUNTDOWN = { 3.0, 2.0, 1.0, 0.0 };
+static Packet4i p4i_COUNTDOWN = { 3, 2, 1, 0 };
+static Packet16uc p16uc_REVERSE = {12,13,14,15, 8,9,10,11, 4,5,6,7, 0,1,2,3};
+static Packet16uc p16uc_FORWARD = vec_lvsl(0, (float*)0);
+static Packet16uc p16uc_DUPLICATE = {0,1,2,3, 0,1,2,3, 4,5,6,7, 4,5,6,7};
+
+static _EIGEN_DECLARE_CONST_FAST_Packet4f(ZERO, 0);
+static _EIGEN_DECLARE_CONST_FAST_Packet4i(ZERO, 0);
+static _EIGEN_DECLARE_CONST_FAST_Packet4i(ONE,1);
+static _EIGEN_DECLARE_CONST_FAST_Packet4i(MINUS16,-16);
+static _EIGEN_DECLARE_CONST_FAST_Packet4i(MINUS1,-1);
+static Packet4f p4f_ONE = vec_ctf(p4i_ONE, 0);
+static Packet4f p4f_ZERO_ = (Packet4f) vec_sl((Packet4ui)p4i_MINUS1, (Packet4ui)p4i_MINUS1);
+
+template<> struct packet_traits<float>  : default_packet_traits
+{
+  typedef Packet4f type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size=4,
+
+    // FIXME check the Has*
+    HasSin  = 0,
+    HasCos  = 0,
+    HasLog  = 0,
+    HasExp  = 0,
+    HasSqrt = 0
+  };
+};
+template<> struct packet_traits<int>    : default_packet_traits
+{
+  typedef Packet4i type;
+  enum {
+    // FIXME check the Has*
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size=4
+  };
+};
+
+template<> struct unpacket_traits<Packet4f> { typedef float  type; enum {size=4}; };
+template<> struct unpacket_traits<Packet4i> { typedef int    type; enum {size=4}; };
+/*
+inline std::ostream & operator <<(std::ostream & s, const Packet4f & v)
+{
+  union {
+    Packet4f   v;
+    float n[4];
+  } vt;
+  vt.v = v;
+  s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
+  return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packet4i & v)
+{
+  union {
+    Packet4i   v;
+    int n[4];
+  } vt;
+  vt.v = v;
+  s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
+  return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packet4ui & v)
+{
+  union {
+    Packet4ui   v;
+    unsigned int n[4];
+  } vt;
+  vt.v = v;
+  s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
+  return s;
+}
+
+inline std::ostream & operator <<(std::ostream & s, const Packetbi & v)
+{
+  union {
+    Packet4bi v;
+    unsigned int n[4];
+  } vt;
+  vt.v = v;
+  s << vt.n[0] << ", " << vt.n[1] << ", " << vt.n[2] << ", " << vt.n[3];
+  return s;
+}
+*/
+template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float&  from) {
+  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
+  float EIGEN_ALIGN16 af[4];
+  af[0] = from;
+  Packet4f vc = vec_ld(0, af);
+  vc = vec_splat(vc, 0);
+  return vc;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int&    from)   {
+  int EIGEN_ALIGN16 ai[4];
+  ai[0] = from;
+  Packet4i vc = vec_ld(0, ai);
+  vc = vec_splat(vc, 0);
+  return vc;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f plset<float>(const float& a) { return vec_add(pset1<Packet4f>(a), p4f_COUNTDOWN); }
+template<> EIGEN_STRONG_INLINE Packet4i plset<int>(const int& a)     { return vec_add(pset1<Packet4i>(a), p4i_COUNTDOWN); }
+
+template<> EIGEN_STRONG_INLINE Packet4f padd<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_add(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i padd<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_add(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f psub<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_sub(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i psub<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_sub(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f& a) { return psub<Packet4f>(p4f_ZERO, a); }
+template<> EIGEN_STRONG_INLINE Packet4i pnegate(const Packet4i& a) { return psub<Packet4i>(p4i_ZERO, a); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pconj(const Packet4f& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet4i pconj(const Packet4i& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmul<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_madd(a,b,p4f_ZERO); }
+/* Commented out: it's actually slower than processing it scalar
+ *
+template<> EIGEN_STRONG_INLINE Packet4i pmul<Packet4i>(const Packet4i& a, const Packet4i& b)
+{
+  // Detailed in: http://freevec.org/content/32bit_signed_integer_multiplication_altivec
+  //Set up constants, variables
+  Packet4i a1, b1, bswap, low_prod, high_prod, prod, prod_, v1sel;
+
+  // Get the absolute values
+  a1  = vec_abs(a);
+  b1  = vec_abs(b);
+
+  // Get the signs using xor
+  Packet4bi sgn = (Packet4bi) vec_cmplt(vec_xor(a, b), p4i_ZERO);
+
+  // Do the multiplication for the asbolute values.
+  bswap = (Packet4i) vec_rl((Packet4ui) b1, (Packet4ui) p4i_MINUS16 );
+  low_prod = vec_mulo((Packet8i) a1, (Packet8i)b1);
+  high_prod = vec_msum((Packet8i) a1, (Packet8i) bswap, p4i_ZERO);
+  high_prod = (Packet4i) vec_sl((Packet4ui) high_prod, (Packet4ui) p4i_MINUS16);
+  prod = vec_add( low_prod, high_prod );
+
+  // NOR the product and select only the negative elements according to the sign mask
+  prod_ = vec_nor(prod, prod);
+  prod_ = vec_sel(p4i_ZERO, prod_, sgn);
+
+  // Add 1 to the result to get the negative numbers
+  v1sel = vec_sel(p4i_ZERO, p4i_ONE, sgn);
+  prod_ = vec_add(prod_, v1sel);
+
+  // Merge the results back to the final vector.
+  prod = vec_sel(prod, prod_, sgn);
+
+  return prod;
+}
+*/
+template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+  Packet4f t, y_0, y_1, res;
+
+  // Altivec does not offer a divide instruction, we have to do a reciprocal approximation
+  y_0 = vec_re(b);
+
+  // Do one Newton-Raphson iteration to get the needed accuracy
+  t   = vec_nmsub(y_0, b, p4f_ONE);
+  y_1 = vec_madd(y_0, t, y_0);
+
+  res = vec_madd(a, y_1, p4f_ZERO);
+  return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i pdiv<Packet4i>(const Packet4i& /*a*/, const Packet4i& /*b*/)
+{ eigen_assert(false && "packet integer division are not supported by AltiVec");
+  return pset1<Packet4i>(0);
+}
+
+// for some weird raisons, it has to be overloaded for packet of integers
+template<> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c) { return vec_madd(a, b, c); }
+template<> EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) { return padd(pmul(a,b), c); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_min(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmin<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_min(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_max(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmax<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_max(a, b); }
+
+// Logical Operations are not supported for float, so we have to reinterpret casts using NEON intrinsics
+template<> EIGEN_STRONG_INLINE Packet4f pand<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_and(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i pand<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_and(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f por<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_or(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i por<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_or(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pxor<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_xor(a, b); }
+template<> EIGEN_STRONG_INLINE Packet4i pxor<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_xor(a, b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pandnot<Packet4f>(const Packet4f& a, const Packet4f& b) { return vec_and(a, vec_nor(b, b)); }
+template<> EIGEN_STRONG_INLINE Packet4i pandnot<Packet4i>(const Packet4i& a, const Packet4i& b) { return vec_and(a, vec_nor(b, b)); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pload<Packet4f>(const float* from) { EIGEN_DEBUG_ALIGNED_LOAD return vec_ld(0, from); }
+template<> EIGEN_STRONG_INLINE Packet4i pload<Packet4i>(const int*     from) { EIGEN_DEBUG_ALIGNED_LOAD return vec_ld(0, from); }
+
+template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from)
+{
+  EIGEN_DEBUG_ALIGNED_LOAD
+  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
+  Packet16uc MSQ, LSQ;
+  Packet16uc mask;
+  MSQ = vec_ld(0, (unsigned char *)from);          // most significant quadword
+  LSQ = vec_ld(15, (unsigned char *)from);         // least significant quadword
+  mask = vec_lvsl(0, from);                        // create the permute mask
+  return (Packet4f) vec_perm(MSQ, LSQ, mask);           // align the data
+
+}
+template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int* from)
+{
+  EIGEN_DEBUG_ALIGNED_LOAD
+  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
+  Packet16uc MSQ, LSQ;
+  Packet16uc mask;
+  MSQ = vec_ld(0, (unsigned char *)from);          // most significant quadword
+  LSQ = vec_ld(15, (unsigned char *)from);         // least significant quadword
+  mask = vec_lvsl(0, from);                        // create the permute mask
+  return (Packet4i) vec_perm(MSQ, LSQ, mask);    // align the data
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f ploaddup<Packet4f>(const float*   from)
+{
+  Packet4f p;
+  if((ptrdiff_t(&from) % 16) == 0)  p = pload<Packet4f>(from);
+  else                              p = ploadu<Packet4f>(from);
+  return vec_perm(p, p, p16uc_DUPLICATE);
+}
+template<> EIGEN_STRONG_INLINE Packet4i ploaddup<Packet4i>(const int*     from)
+{
+  Packet4i p;
+  if((ptrdiff_t(&from) % 16) == 0)  p = pload<Packet4i>(from);
+  else                              p = ploadu<Packet4i>(from);
+  return vec_perm(p, p, p16uc_DUPLICATE);
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<float>(float*   to, const Packet4f& from) { EIGEN_DEBUG_ALIGNED_STORE vec_st(from, 0, to); }
+template<> EIGEN_STRONG_INLINE void pstore<int>(int*       to, const Packet4i& from) { EIGEN_DEBUG_ALIGNED_STORE vec_st(from, 0, to); }
+
+template<> EIGEN_STRONG_INLINE void pstoreu<float>(float*  to, const Packet4f& from)
+{
+  EIGEN_DEBUG_UNALIGNED_STORE
+  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
+  // Warning: not thread safe!
+  Packet16uc MSQ, LSQ, edges;
+  Packet16uc edgeAlign, align;
+
+  MSQ = vec_ld(0, (unsigned char *)to);                     // most significant quadword
+  LSQ = vec_ld(15, (unsigned char *)to);                    // least significant quadword
+  edgeAlign = vec_lvsl(0, to);                              // permute map to extract edges
+  edges=vec_perm(LSQ,MSQ,edgeAlign);                        // extract the edges
+  align = vec_lvsr( 0, to );                                // permute map to misalign data
+  MSQ = vec_perm(edges,(Packet16uc)from,align);             // misalign the data (MSQ)
+  LSQ = vec_perm((Packet16uc)from,edges,align);             // misalign the data (LSQ)
+  vec_st( LSQ, 15, (unsigned char *)to );                   // Store the LSQ part first
+  vec_st( MSQ, 0, (unsigned char *)to );                    // Store the MSQ part
+}
+template<> EIGEN_STRONG_INLINE void pstoreu<int>(int*      to, const Packet4i& from)
+{
+  EIGEN_DEBUG_UNALIGNED_STORE
+  // Taken from http://developer.apple.com/hardwaredrivers/ve/alignment.html
+  // Warning: not thread safe!
+  Packet16uc MSQ, LSQ, edges;
+  Packet16uc edgeAlign, align;
+
+  MSQ = vec_ld(0, (unsigned char *)to);                     // most significant quadword
+  LSQ = vec_ld(15, (unsigned char *)to);                    // least significant quadword
+  edgeAlign = vec_lvsl(0, to);                              // permute map to extract edges
+  edges=vec_perm(LSQ, MSQ, edgeAlign);                      // extract the edges
+  align = vec_lvsr( 0, to );                                // permute map to misalign data
+  MSQ = vec_perm(edges, (Packet16uc) from, align);          // misalign the data (MSQ)
+  LSQ = vec_perm((Packet16uc) from, edges, align);          // misalign the data (LSQ)
+  vec_st( LSQ, 15, (unsigned char *)to );                   // Store the LSQ part first
+  vec_st( MSQ, 0, (unsigned char *)to );                    // Store the MSQ part
+}
+
+template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN); }
+template<> EIGEN_STRONG_INLINE void prefetch<int>(const int*     addr) { vec_dstt(addr, DST_CTRL(2,2,32), DST_CHAN); }
+
+template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { float EIGEN_ALIGN16 x[4]; vec_st(a, 0, x); return x[0]; }
+template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { int   EIGEN_ALIGN16 x[4]; vec_st(a, 0, x); return x[0]; }
+
+template<> EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f& a) { return (Packet4f)vec_perm((Packet16uc)a,(Packet16uc)a, p16uc_REVERSE); }
+template<> EIGEN_STRONG_INLINE Packet4i preverse(const Packet4i& a) { return (Packet4i)vec_perm((Packet16uc)a,(Packet16uc)a, p16uc_REVERSE); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f& a) { return vec_abs(a); }
+template<> EIGEN_STRONG_INLINE Packet4i pabs(const Packet4i& a) { return vec_abs(a); }
+
+template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
+{
+  Packet4f b, sum;
+  b   = (Packet4f) vec_sld(a, a, 8);
+  sum = vec_add(a, b);
+  b   = (Packet4f) vec_sld(sum, sum, 4);
+  sum = vec_add(sum, b);
+  return pfirst(sum);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
+{
+  Packet4f v[4], sum[4];
+
+  // It's easier and faster to transpose then add as columns
+  // Check: http://www.freevec.org/function/matrix_4x4_transpose_floats for explanation
+  // Do the transpose, first set of moves
+  v[0] = vec_mergeh(vecs[0], vecs[2]);
+  v[1] = vec_mergel(vecs[0], vecs[2]);
+  v[2] = vec_mergeh(vecs[1], vecs[3]);
+  v[3] = vec_mergel(vecs[1], vecs[3]);
+  // Get the resulting vectors
+  sum[0] = vec_mergeh(v[0], v[2]);
+  sum[1] = vec_mergel(v[0], v[2]);
+  sum[2] = vec_mergeh(v[1], v[3]);
+  sum[3] = vec_mergel(v[1], v[3]);
+
+  // Now do the summation:
+  // Lines 0+1
+  sum[0] = vec_add(sum[0], sum[1]);
+  // Lines 2+3
+  sum[1] = vec_add(sum[2], sum[3]);
+  // Add the results
+  sum[0] = vec_add(sum[0], sum[1]);
+
+  return sum[0];
+}
+
+template<> EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a)
+{
+  Packet4i sum;
+  sum = vec_sums(a, p4i_ZERO);
+  sum = vec_sld(sum, p4i_ZERO, 12);
+  return pfirst(sum);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
+{
+  Packet4i v[4], sum[4];
+
+  // It's easier and faster to transpose then add as columns
+  // Check: http://www.freevec.org/function/matrix_4x4_transpose_floats for explanation
+  // Do the transpose, first set of moves
+  v[0] = vec_mergeh(vecs[0], vecs[2]);
+  v[1] = vec_mergel(vecs[0], vecs[2]);
+  v[2] = vec_mergeh(vecs[1], vecs[3]);
+  v[3] = vec_mergel(vecs[1], vecs[3]);
+  // Get the resulting vectors
+  sum[0] = vec_mergeh(v[0], v[2]);
+  sum[1] = vec_mergel(v[0], v[2]);
+  sum[2] = vec_mergeh(v[1], v[3]);
+  sum[3] = vec_mergel(v[1], v[3]);
+
+  // Now do the summation:
+  // Lines 0+1
+  sum[0] = vec_add(sum[0], sum[1]);
+  // Lines 2+3
+  sum[1] = vec_add(sum[2], sum[3]);
+  // Add the results
+  sum[0] = vec_add(sum[0], sum[1]);
+
+  return sum[0];
+}
+
+// Other reduction functions:
+// mul
+template<> EIGEN_STRONG_INLINE float predux_mul<Packet4f>(const Packet4f& a)
+{
+  Packet4f prod;
+  prod = pmul(a, (Packet4f)vec_sld(a, a, 8));
+  return pfirst(pmul(prod, (Packet4f)vec_sld(prod, prod, 4)));
+}
+
+template<> EIGEN_STRONG_INLINE int predux_mul<Packet4i>(const Packet4i& a)
+{
+  EIGEN_ALIGN16 int aux[4];
+  pstore(aux, a);
+  return aux[0] * aux[1] * aux[2] * aux[3];
+}
+
+// min
+template<> EIGEN_STRONG_INLINE float predux_min<Packet4f>(const Packet4f& a)
+{
+  Packet4f b, res;
+  b = vec_min(a, vec_sld(a, a, 8));
+  res = vec_min(b, vec_sld(b, b, 4));
+  return pfirst(res);
+}
+
+template<> EIGEN_STRONG_INLINE int predux_min<Packet4i>(const Packet4i& a)
+{
+  Packet4i b, res;
+  b = vec_min(a, vec_sld(a, a, 8));
+  res = vec_min(b, vec_sld(b, b, 4));
+  return pfirst(res);
+}
+
+// max
+template<> EIGEN_STRONG_INLINE float predux_max<Packet4f>(const Packet4f& a)
+{
+  Packet4f b, res;
+  b = vec_max(a, vec_sld(a, a, 8));
+  res = vec_max(b, vec_sld(b, b, 4));
+  return pfirst(res);
+}
+
+template<> EIGEN_STRONG_INLINE int predux_max<Packet4i>(const Packet4i& a)
+{
+  Packet4i b, res;
+  b = vec_max(a, vec_sld(a, a, 8));
+  res = vec_max(b, vec_sld(b, b, 4));
+  return pfirst(res);
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet4f>
+{
+  static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second)
+  {
+    if (Offset!=0)
+      first = vec_sld(first, second, Offset*4);
+  }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet4i>
+{
+  static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second)
+  {
+    if (Offset!=0)
+      first = vec_sld(first, second, Offset*4);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PACKET_MATH_ALTIVEC_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/AltiVec/Complex.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/AltiVec/Complex.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/AltiVec/Complex.h	(revision 2476)
@@ -0,0 +1,217 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_ALTIVEC_H
+#define EIGEN_COMPLEX_ALTIVEC_H
+
+namespace Eigen {
+
+namespace internal {
+
+static Packet4ui  p4ui_CONJ_XOR = vec_mergeh((Packet4ui)p4i_ZERO, (Packet4ui)p4f_ZERO_);//{ 0x00000000, 0x80000000, 0x00000000, 0x80000000 };
+static Packet16uc p16uc_COMPLEX_RE   = vec_sld((Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 0), (Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 2), 8);//{ 0,1,2,3, 0,1,2,3, 8,9,10,11, 8,9,10,11 };
+static Packet16uc p16uc_COMPLEX_IM   = vec_sld((Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 1), (Packet16uc) vec_splat((Packet4ui)p16uc_FORWARD, 3), 8);//{ 4,5,6,7, 4,5,6,7, 12,13,14,15, 12,13,14,15 };
+static Packet16uc p16uc_COMPLEX_REV  = vec_sld(p16uc_REVERSE, p16uc_REVERSE, 8);//{ 4,5,6,7, 0,1,2,3, 12,13,14,15, 8,9,10,11 };
+static Packet16uc p16uc_COMPLEX_REV2 = vec_sld(p16uc_FORWARD, p16uc_FORWARD, 8);//{ 8,9,10,11, 12,13,14,15, 0,1,2,3, 4,5,6,7 };
+static Packet16uc p16uc_PSET_HI = (Packet16uc) vec_mergeh((Packet4ui) vec_splat((Packet4ui)p16uc_FORWARD, 0), (Packet4ui) vec_splat((Packet4ui)p16uc_FORWARD, 1));//{ 0,1,2,3, 4,5,6,7, 0,1,2,3, 4,5,6,7 };
+static Packet16uc p16uc_PSET_LO = (Packet16uc) vec_mergeh((Packet4ui) vec_splat((Packet4ui)p16uc_FORWARD, 2), (Packet4ui) vec_splat((Packet4ui)p16uc_FORWARD, 3));//{ 8,9,10,11, 12,13,14,15, 8,9,10,11, 12,13,14,15 };
+
+//---------- float ----------
+struct Packet2cf
+{
+  EIGEN_STRONG_INLINE Packet2cf() {}
+  EIGEN_STRONG_INLINE explicit Packet2cf(const Packet4f& a) : v(a) {}
+  Packet4f  v;
+};
+
+template<> struct packet_traits<std::complex<float> >  : default_packet_traits
+{
+  typedef Packet2cf type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size = 2,
+
+    HasAdd    = 1,
+    HasSub    = 1,
+    HasMul    = 1,
+    HasDiv    = 1,
+    HasNegate = 1,
+    HasAbs    = 0,
+    HasAbs2   = 0,
+    HasMin    = 0,
+    HasMax    = 0,
+    HasSetLinear = 0
+  };
+};
+
+template<> struct unpacket_traits<Packet2cf> { typedef std::complex<float> type; enum {size=2}; };
+
+template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>&  from)
+{
+  Packet2cf res;
+  /* On AltiVec we cannot load 64-bit registers, so wa have to take care of alignment */
+  if((ptrdiff_t(&from) % 16) == 0)
+    res.v = pload<Packet4f>((const float *)&from);
+  else
+    res.v = ploadu<Packet4f>((const float *)&from);
+  res.v = vec_perm(res.v, res.v, p16uc_PSET_HI);
+  return res;
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf padd<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(vec_add(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf psub<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(vec_sub(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf& a) { return Packet2cf(pnegate(a.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf& a) { return Packet2cf((Packet4f)vec_xor((Packet4ui)a.v, p4ui_CONJ_XOR)); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf pmul<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  Packet4f v1, v2;
+
+  // Permute and multiply the real parts of a and b
+  v1 = vec_perm(a.v, a.v, p16uc_COMPLEX_RE);
+  // Get the imaginary parts of a
+  v2 = vec_perm(a.v, a.v, p16uc_COMPLEX_IM);
+  // multiply a_re * b 
+  v1 = vec_madd(v1, b.v, p4f_ZERO);
+  // multiply a_im * b and get the conjugate result
+  v2 = vec_madd(v2, b.v, p4f_ZERO);
+  v2 = (Packet4f) vec_xor((Packet4ui)v2, p4ui_CONJ_XOR);
+  // permute back to a proper order
+  v2 = vec_perm(v2, v2, p16uc_COMPLEX_REV);
+  
+  return Packet2cf(vec_add(v1, v2));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pand   <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(vec_and(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf por    <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(vec_or(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pxor   <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(vec_xor(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pandnot<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(vec_and(a.v, vec_nor(b.v,b.v))); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf pload <Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet2cf(pload<Packet4f>((const float*)from)); }
+template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_UNALIGNED_LOAD return Packet2cf(ploadu<Packet4f>((const float*)from)); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>*     from)
+{
+  return pset1<Packet2cf>(*from);
+}
+
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_ALIGNED_STORE pstore((float*)to, from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu((float*)to, from.v); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> *   addr) { vec_dstt((float *)addr, DST_CTRL(2,2,32), DST_CHAN); }
+
+template<> EIGEN_STRONG_INLINE std::complex<float>  pfirst<Packet2cf>(const Packet2cf& a)
+{
+  std::complex<float> EIGEN_ALIGN16 res[2];
+  pstore((float *)&res, a.v);
+
+  return res[0];
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf& a)
+{
+  Packet4f rev_a;
+  rev_a = vec_perm(a.v, a.v, p16uc_COMPLEX_REV2);
+  return Packet2cf(rev_a);
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux<Packet2cf>(const Packet2cf& a)
+{
+  Packet4f b;
+  b = (Packet4f) vec_sld(a.v, a.v, 8);
+  b = padd(a.v, b);
+  return pfirst(Packet2cf(b));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preduxp<Packet2cf>(const Packet2cf* vecs)
+{
+  Packet4f b1, b2;
+  
+  b1 = (Packet4f) vec_sld(vecs[0].v, vecs[1].v, 8);
+  b2 = (Packet4f) vec_sld(vecs[1].v, vecs[0].v, 8);
+  b2 = (Packet4f) vec_sld(b2, b2, 8);
+  b2 = padd(b1, b2);
+
+  return Packet2cf(b2);
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux_mul<Packet2cf>(const Packet2cf& a)
+{
+  Packet4f b;
+  Packet2cf prod;
+  b = (Packet4f) vec_sld(a.v, a.v, 8);
+  prod = pmul(a, Packet2cf(b));
+
+  return pfirst(prod);
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet2cf>
+{
+  static EIGEN_STRONG_INLINE void run(Packet2cf& first, const Packet2cf& second)
+  {
+    if (Offset==1)
+    {
+      first.v = vec_sld(first.v, second.v, 8);
+    }
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, false,true>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    return internal::pmul(a, pconj(b));
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,false>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    return internal::pmul(pconj(a), b);
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,true>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    return pconj(internal::pmul(a, b));
+  }
+};
+
+template<> EIGEN_STRONG_INLINE Packet2cf pdiv<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  // TODO optimize it for AltiVec
+  Packet2cf res = conj_helper<Packet2cf,Packet2cf,false,true>().pmul(a,b);
+  Packet4f s = vec_madd(b.v, b.v, p4f_ZERO);
+  return Packet2cf(pdiv(res.v, vec_add(s,vec_perm(s, s, p16uc_COMPLEX_REV))));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pcplxflip<Packet2cf>(const Packet2cf& x)
+{
+  return Packet2cf(vec_perm(x.v, x.v, p16uc_COMPLEX_REV));
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_ALTIVEC_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/SSE/PacketMath.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/SSE/PacketMath.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/SSE/PacketMath.h	(revision 2476)
@@ -0,0 +1,613 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_SSE_H
+#define EIGEN_PACKET_MATH_SSE_H
+
+namespace Eigen {
+
+namespace internal {
+
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
+#endif
+
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS (2*sizeof(void*))
+#endif
+
+typedef __m128  Packet4f;
+typedef __m128i Packet4i;
+typedef __m128d Packet2d;
+
+template<> struct is_arithmetic<__m128>  { enum { value = true }; };
+template<> struct is_arithmetic<__m128i> { enum { value = true }; };
+template<> struct is_arithmetic<__m128d> { enum { value = true }; };
+
+#define vec4f_swizzle1(v,p,q,r,s) \
+  (_mm_castsi128_ps(_mm_shuffle_epi32( _mm_castps_si128(v), ((s)<<6|(r)<<4|(q)<<2|(p)))))
+
+#define vec4i_swizzle1(v,p,q,r,s) \
+  (_mm_shuffle_epi32( v, ((s)<<6|(r)<<4|(q)<<2|(p))))
+
+#define vec2d_swizzle1(v,p,q) \
+  (_mm_castsi128_pd(_mm_shuffle_epi32( _mm_castpd_si128(v), ((q*2+1)<<6|(q*2)<<4|(p*2+1)<<2|(p*2)))))
+  
+#define vec4f_swizzle2(a,b,p,q,r,s) \
+  (_mm_shuffle_ps( (a), (b), ((s)<<6|(r)<<4|(q)<<2|(p))))
+
+#define vec4i_swizzle2(a,b,p,q,r,s) \
+  (_mm_castps_si128( (_mm_shuffle_ps( _mm_castsi128_ps(a), _mm_castsi128_ps(b), ((s)<<6|(r)<<4|(q)<<2|(p))))))
+
+#define _EIGEN_DECLARE_CONST_Packet4f(NAME,X) \
+  const Packet4f p4f_##NAME = pset1<Packet4f>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet2d(NAME,X) \
+  const Packet2d p2d_##NAME = pset1<Packet2d>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME,X) \
+  const Packet4f p4f_##NAME = _mm_castsi128_ps(pset1<Packet4i>(X))
+
+#define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \
+  const Packet4i p4i_##NAME = pset1<Packet4i>(X)
+
+
+template<> struct packet_traits<float>  : default_packet_traits
+{
+  typedef Packet4f type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size=4,
+
+    HasDiv  = 1,
+    HasSin  = EIGEN_FAST_MATH,
+    HasCos  = EIGEN_FAST_MATH,
+    HasLog  = 1,
+    HasExp  = 1,
+    HasSqrt = 1
+  };
+};
+template<> struct packet_traits<double> : default_packet_traits
+{
+  typedef Packet2d type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size=2,
+
+    HasDiv  = 1,
+    HasExp  = 1,
+    HasSqrt = 1
+  };
+};
+template<> struct packet_traits<int>    : default_packet_traits
+{
+  typedef Packet4i type;
+  enum {
+    // FIXME check the Has*
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size=4
+  };
+};
+
+template<> struct unpacket_traits<Packet4f> { typedef float  type; enum {size=4}; };
+template<> struct unpacket_traits<Packet2d> { typedef double type; enum {size=2}; };
+template<> struct unpacket_traits<Packet4i> { typedef int    type; enum {size=4}; };
+
+#if defined(_MSC_VER) && (_MSC_VER==1500)
+// Workaround MSVC 9 internal compiler error.
+// TODO: It has been detected with win64 builds (amd64), so let's check whether it also happens in 32bits+SSE mode
+// TODO: let's check whether there does not exist a better fix, like adding a pset0() function. (it crashed on pset1(0)).
+template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float&  from) { return _mm_set_ps(from,from,from,from); }
+template<> EIGEN_STRONG_INLINE Packet2d pset1<Packet2d>(const double& from) { return _mm_set_pd(from,from); }
+template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int&    from) { return _mm_set_epi32(from,from,from,from); }
+#else
+template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float&  from) { return _mm_set1_ps(from); }
+template<> EIGEN_STRONG_INLINE Packet2d pset1<Packet2d>(const double& from) { return _mm_set1_pd(from); }
+template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int&    from) { return _mm_set1_epi32(from); }
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet4f plset<float>(const float& a) { return _mm_add_ps(pset1<Packet4f>(a), _mm_set_ps(3,2,1,0)); }
+template<> EIGEN_STRONG_INLINE Packet2d plset<double>(const double& a) { return _mm_add_pd(pset1<Packet2d>(a),_mm_set_pd(1,0)); }
+template<> EIGEN_STRONG_INLINE Packet4i plset<int>(const int& a) { return _mm_add_epi32(pset1<Packet4i>(a),_mm_set_epi32(3,2,1,0)); }
+
+template<> EIGEN_STRONG_INLINE Packet4f padd<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_add_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d padd<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_add_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i padd<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_add_epi32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f psub<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_sub_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d psub<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_sub_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i psub<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_sub_epi32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f& a)
+{
+  const Packet4f mask = _mm_castsi128_ps(_mm_setr_epi32(0x80000000,0x80000000,0x80000000,0x80000000));
+  return _mm_xor_ps(a,mask);
+}
+template<> EIGEN_STRONG_INLINE Packet2d pnegate(const Packet2d& a)
+{
+  const Packet2d mask = _mm_castsi128_pd(_mm_setr_epi32(0x0,0x80000000,0x0,0x80000000));
+  return _mm_xor_pd(a,mask);
+}
+template<> EIGEN_STRONG_INLINE Packet4i pnegate(const Packet4i& a)
+{
+  return psub(_mm_setr_epi32(0,0,0,0), a);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pconj(const Packet4f& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet2d pconj(const Packet2d& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet4i pconj(const Packet4i& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmul<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_mul_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pmul<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_mul_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmul<Packet4i>(const Packet4i& a, const Packet4i& b)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+  return _mm_mullo_epi32(a,b);
+#else
+  // this version is slightly faster than 4 scalar products
+  return vec4i_swizzle1(
+            vec4i_swizzle2(
+              _mm_mul_epu32(a,b),
+              _mm_mul_epu32(vec4i_swizzle1(a,1,0,3,2),
+                            vec4i_swizzle1(b,1,0,3,2)),
+              0,2,0,2),
+            0,2,1,3);
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_div_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pdiv<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_div_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pdiv<Packet4i>(const Packet4i& /*a*/, const Packet4i& /*b*/)
+{ eigen_assert(false && "packet integer division are not supported by SSE");
+  return pset1<Packet4i>(0);
+}
+
+// for some weird raisons, it has to be overloaded for packet of integers
+template<> EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) { return padd(pmul(a,b), c); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_min_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pmin<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_min_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmin<Packet4i>(const Packet4i& a, const Packet4i& b)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+  return _mm_min_epi32(a,b);
+#else
+  // after some bench, this version *is* faster than a scalar implementation
+  Packet4i mask = _mm_cmplt_epi32(a,b);
+  return _mm_or_si128(_mm_and_si128(mask,a),_mm_andnot_si128(mask,b));
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_max_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pmax<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_max_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmax<Packet4i>(const Packet4i& a, const Packet4i& b)
+{
+#ifdef EIGEN_VECTORIZE_SSE4_1
+  return _mm_max_epi32(a,b);
+#else
+  // after some bench, this version *is* faster than a scalar implementation
+  Packet4i mask = _mm_cmpgt_epi32(a,b);
+  return _mm_or_si128(_mm_and_si128(mask,a),_mm_andnot_si128(mask,b));
+#endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f pand<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_and_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pand<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_and_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pand<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_and_si128(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f por<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_or_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d por<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_or_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i por<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_or_si128(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pxor<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_xor_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pxor<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_xor_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pxor<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_xor_si128(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pandnot<Packet4f>(const Packet4f& a, const Packet4f& b) { return _mm_andnot_ps(a,b); }
+template<> EIGEN_STRONG_INLINE Packet2d pandnot<Packet2d>(const Packet2d& a, const Packet2d& b) { return _mm_andnot_pd(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pandnot<Packet4i>(const Packet4i& a, const Packet4i& b) { return _mm_andnot_si128(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pload<Packet4f>(const float*   from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm_load_ps(from); }
+template<> EIGEN_STRONG_INLINE Packet2d pload<Packet2d>(const double*  from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm_load_pd(from); }
+template<> EIGEN_STRONG_INLINE Packet4i pload<Packet4i>(const int*     from) { EIGEN_DEBUG_ALIGNED_LOAD return _mm_load_si128(reinterpret_cast<const Packet4i*>(from)); }
+
+#if defined(_MSC_VER)
+  template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float*  from) {
+    EIGEN_DEBUG_UNALIGNED_LOAD
+    #if (_MSC_VER==1600)
+    // NOTE Some version of MSVC10 generates bad code when using _mm_loadu_ps
+    // (i.e., it does not generate an unaligned load!!
+    // TODO On most architectures this version should also be faster than a single _mm_loadu_ps
+    // so we could also enable it for MSVC08 but first we have to make this later does not generate crap when doing so...
+    __m128 res = _mm_loadl_pi(_mm_set1_ps(0.0f), (const __m64*)(from));
+    res = _mm_loadh_pi(res, (const __m64*)(from+2));
+    return res;
+    #else
+    return _mm_loadu_ps(from);
+    #endif
+  }
+#else
+// NOTE: with the code below, MSVC's compiler crashes!
+
+template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from)
+{
+  EIGEN_DEBUG_UNALIGNED_LOAD
+  return _mm_loadu_ps(from);
+}
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet2d ploadu<Packet2d>(const double* from)
+{
+  EIGEN_DEBUG_UNALIGNED_LOAD
+  return _mm_loadu_pd(from);
+}
+template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int* from)
+{
+  EIGEN_DEBUG_UNALIGNED_LOAD
+  return _mm_loadu_si128(reinterpret_cast<const __m128i*>(from));
+}
+
+
+template<> EIGEN_STRONG_INLINE Packet4f ploaddup<Packet4f>(const float*   from)
+{
+  return vec4f_swizzle1(_mm_castpd_ps(_mm_load_sd(reinterpret_cast<const double*>(from))), 0, 0, 1, 1);
+}
+template<> EIGEN_STRONG_INLINE Packet2d ploaddup<Packet2d>(const double*  from)
+{ return pset1<Packet2d>(from[0]); }
+template<> EIGEN_STRONG_INLINE Packet4i ploaddup<Packet4i>(const int*     from)
+{
+  Packet4i tmp;
+  tmp = _mm_loadl_epi64(reinterpret_cast<const Packet4i*>(from));
+  return vec4i_swizzle1(tmp, 0, 0, 1, 1);
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<float>(float*   to, const Packet4f& from) { EIGEN_DEBUG_ALIGNED_STORE _mm_store_ps(to, from); }
+template<> EIGEN_STRONG_INLINE void pstore<double>(double* to, const Packet2d& from) { EIGEN_DEBUG_ALIGNED_STORE _mm_store_pd(to, from); }
+template<> EIGEN_STRONG_INLINE void pstore<int>(int*       to, const Packet4i& from) { EIGEN_DEBUG_ALIGNED_STORE _mm_store_si128(reinterpret_cast<Packet4i*>(to), from); }
+
+template<> EIGEN_STRONG_INLINE void pstoreu<double>(double* to, const Packet2d& from) {
+  EIGEN_DEBUG_UNALIGNED_STORE
+  _mm_storel_pd((to), from);
+  _mm_storeh_pd((to+1), from);
+}
+template<> EIGEN_STRONG_INLINE void pstoreu<float>(float*  to, const Packet4f& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu(reinterpret_cast<double*>(to), _mm_castps_pd(from)); }
+template<> EIGEN_STRONG_INLINE void pstoreu<int>(int*      to, const Packet4i& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu(reinterpret_cast<double*>(to), _mm_castsi128_pd(from)); }
+
+// some compilers might be tempted to perform multiple moves instead of using a vector path.
+template<> EIGEN_STRONG_INLINE void pstore1<Packet4f>(float* to, const float& a)
+{
+  Packet4f pa = _mm_set_ss(a);
+  pstore(to, vec4f_swizzle1(pa,0,0,0,0));
+}
+// some compilers might be tempted to perform multiple moves instead of using a vector path.
+template<> EIGEN_STRONG_INLINE void pstore1<Packet2d>(double* to, const double& a)
+{
+  Packet2d pa = _mm_set_sd(a);
+  pstore(to, vec2d_swizzle1(pa,0,0));
+}
+
+template<> EIGEN_STRONG_INLINE void prefetch<float>(const float*   addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+template<> EIGEN_STRONG_INLINE void prefetch<double>(const double* addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+template<> EIGEN_STRONG_INLINE void prefetch<int>(const int*       addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+
+#if defined(_MSC_VER) && defined(_WIN64) && !defined(__INTEL_COMPILER)
+// The temporary variable fixes an internal compilation error in vs <= 2008 and a wrong-result bug in vs 2010
+// Direct of the struct members fixed bug #62.
+template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { return a.m128_f32[0]; }
+template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { return a.m128d_f64[0]; }
+template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { int x = _mm_cvtsi128_si32(a); return x; }
+#elif defined(_MSC_VER) && !defined(__INTEL_COMPILER)
+// The temporary variable fixes an internal compilation error in vs <= 2008 and a wrong-result bug in vs 2010
+template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { float x = _mm_cvtss_f32(a); return x; }
+template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { double x = _mm_cvtsd_f64(a); return x; }
+template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { int x = _mm_cvtsi128_si32(a); return x; }
+#else
+template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { return _mm_cvtss_f32(a); }
+template<> EIGEN_STRONG_INLINE double pfirst<Packet2d>(const Packet2d& a) { return _mm_cvtsd_f64(a); }
+template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { return _mm_cvtsi128_si32(a); }
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f& a)
+{ return _mm_shuffle_ps(a,a,0x1B); }
+template<> EIGEN_STRONG_INLINE Packet2d preverse(const Packet2d& a)
+{ return _mm_shuffle_pd(a,a,0x1); }
+template<> EIGEN_STRONG_INLINE Packet4i preverse(const Packet4i& a)
+{ return _mm_shuffle_epi32(a,0x1B); }
+
+
+template<> EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f& a)
+{
+  const Packet4f mask = _mm_castsi128_ps(_mm_setr_epi32(0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF));
+  return _mm_and_ps(a,mask);
+}
+template<> EIGEN_STRONG_INLINE Packet2d pabs(const Packet2d& a)
+{
+  const Packet2d mask = _mm_castsi128_pd(_mm_setr_epi32(0xFFFFFFFF,0x7FFFFFFF,0xFFFFFFFF,0x7FFFFFFF));
+  return _mm_and_pd(a,mask);
+}
+template<> EIGEN_STRONG_INLINE Packet4i pabs(const Packet4i& a)
+{
+  #ifdef EIGEN_VECTORIZE_SSSE3
+  return _mm_abs_epi32(a);
+  #else
+  Packet4i aux = _mm_srai_epi32(a,31);
+  return _mm_sub_epi32(_mm_xor_si128(a,aux),aux);
+  #endif
+}
+
+EIGEN_STRONG_INLINE void punpackp(Packet4f* vecs)
+{
+  vecs[1] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0x55));
+  vecs[2] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0xAA));
+  vecs[3] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0xFF));
+  vecs[0] = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(vecs[0]), 0x00));
+}
+
+#ifdef EIGEN_VECTORIZE_SSE3
+// TODO implement SSE2 versions as well as integer versions
+template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
+{
+  return _mm_hadd_ps(_mm_hadd_ps(vecs[0], vecs[1]),_mm_hadd_ps(vecs[2], vecs[3]));
+}
+template<> EIGEN_STRONG_INLINE Packet2d preduxp<Packet2d>(const Packet2d* vecs)
+{
+  return _mm_hadd_pd(vecs[0], vecs[1]);
+}
+// SSSE3 version:
+// EIGEN_STRONG_INLINE Packet4i preduxp(const Packet4i* vecs)
+// {
+//   return _mm_hadd_epi32(_mm_hadd_epi32(vecs[0], vecs[1]),_mm_hadd_epi32(vecs[2], vecs[3]));
+// }
+
+template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
+{
+  Packet4f tmp0 = _mm_hadd_ps(a,a);
+  return pfirst(_mm_hadd_ps(tmp0, tmp0));
+}
+
+template<> EIGEN_STRONG_INLINE double predux<Packet2d>(const Packet2d& a) { return pfirst(_mm_hadd_pd(a, a)); }
+
+// SSSE3 version:
+// EIGEN_STRONG_INLINE float predux(const Packet4i& a)
+// {
+//   Packet4i tmp0 = _mm_hadd_epi32(a,a);
+//   return pfirst(_mm_hadd_epi32(tmp0, tmp0));
+// }
+#else
+// SSE2 versions
+template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
+{
+  Packet4f tmp = _mm_add_ps(a, _mm_movehl_ps(a,a));
+  return pfirst(_mm_add_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
+}
+template<> EIGEN_STRONG_INLINE double predux<Packet2d>(const Packet2d& a)
+{
+  return pfirst(_mm_add_sd(a, _mm_unpackhi_pd(a,a)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
+{
+  Packet4f tmp0, tmp1, tmp2;
+  tmp0 = _mm_unpacklo_ps(vecs[0], vecs[1]);
+  tmp1 = _mm_unpackhi_ps(vecs[0], vecs[1]);
+  tmp2 = _mm_unpackhi_ps(vecs[2], vecs[3]);
+  tmp0 = _mm_add_ps(tmp0, tmp1);
+  tmp1 = _mm_unpacklo_ps(vecs[2], vecs[3]);
+  tmp1 = _mm_add_ps(tmp1, tmp2);
+  tmp2 = _mm_movehl_ps(tmp1, tmp0);
+  tmp0 = _mm_movelh_ps(tmp0, tmp1);
+  return _mm_add_ps(tmp0, tmp2);
+}
+
+template<> EIGEN_STRONG_INLINE Packet2d preduxp<Packet2d>(const Packet2d* vecs)
+{
+  return _mm_add_pd(_mm_unpacklo_pd(vecs[0], vecs[1]), _mm_unpackhi_pd(vecs[0], vecs[1]));
+}
+#endif  // SSE3
+
+template<> EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a)
+{
+  Packet4i tmp = _mm_add_epi32(a, _mm_unpackhi_epi64(a,a));
+  return pfirst(tmp) + pfirst(_mm_shuffle_epi32(tmp, 1));
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
+{
+  Packet4i tmp0, tmp1, tmp2;
+  tmp0 = _mm_unpacklo_epi32(vecs[0], vecs[1]);
+  tmp1 = _mm_unpackhi_epi32(vecs[0], vecs[1]);
+  tmp2 = _mm_unpackhi_epi32(vecs[2], vecs[3]);
+  tmp0 = _mm_add_epi32(tmp0, tmp1);
+  tmp1 = _mm_unpacklo_epi32(vecs[2], vecs[3]);
+  tmp1 = _mm_add_epi32(tmp1, tmp2);
+  tmp2 = _mm_unpacklo_epi64(tmp0, tmp1);
+  tmp0 = _mm_unpackhi_epi64(tmp0, tmp1);
+  return _mm_add_epi32(tmp0, tmp2);
+}
+
+// Other reduction functions:
+
+// mul
+template<> EIGEN_STRONG_INLINE float predux_mul<Packet4f>(const Packet4f& a)
+{
+  Packet4f tmp = _mm_mul_ps(a, _mm_movehl_ps(a,a));
+  return pfirst(_mm_mul_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
+}
+template<> EIGEN_STRONG_INLINE double predux_mul<Packet2d>(const Packet2d& a)
+{
+  return pfirst(_mm_mul_sd(a, _mm_unpackhi_pd(a,a)));
+}
+template<> EIGEN_STRONG_INLINE int predux_mul<Packet4i>(const Packet4i& a)
+{
+  // after some experiments, it is seems this is the fastest way to implement it
+  // for GCC (eg., reusing pmul is very slow !)
+  // TODO try to call _mm_mul_epu32 directly
+  EIGEN_ALIGN16 int aux[4];
+  pstore(aux, a);
+  return  (aux[0] * aux[1]) * (aux[2] * aux[3]);;
+}
+
+// min
+template<> EIGEN_STRONG_INLINE float predux_min<Packet4f>(const Packet4f& a)
+{
+  Packet4f tmp = _mm_min_ps(a, _mm_movehl_ps(a,a));
+  return pfirst(_mm_min_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
+}
+template<> EIGEN_STRONG_INLINE double predux_min<Packet2d>(const Packet2d& a)
+{
+  return pfirst(_mm_min_sd(a, _mm_unpackhi_pd(a,a)));
+}
+template<> EIGEN_STRONG_INLINE int predux_min<Packet4i>(const Packet4i& a)
+{
+  // after some experiments, it is seems this is the fastest way to implement it
+  // for GCC (eg., it does not like using std::min after the pstore !!)
+  EIGEN_ALIGN16 int aux[4];
+  pstore(aux, a);
+  int aux0 = aux[0]<aux[1] ? aux[0] : aux[1];
+  int aux2 = aux[2]<aux[3] ? aux[2] : aux[3];
+  return aux0<aux2 ? aux0 : aux2;
+}
+
+// max
+template<> EIGEN_STRONG_INLINE float predux_max<Packet4f>(const Packet4f& a)
+{
+  Packet4f tmp = _mm_max_ps(a, _mm_movehl_ps(a,a));
+  return pfirst(_mm_max_ss(tmp, _mm_shuffle_ps(tmp,tmp, 1)));
+}
+template<> EIGEN_STRONG_INLINE double predux_max<Packet2d>(const Packet2d& a)
+{
+  return pfirst(_mm_max_sd(a, _mm_unpackhi_pd(a,a)));
+}
+template<> EIGEN_STRONG_INLINE int predux_max<Packet4i>(const Packet4i& a)
+{
+  // after some experiments, it is seems this is the fastest way to implement it
+  // for GCC (eg., it does not like using std::min after the pstore !!)
+  EIGEN_ALIGN16 int aux[4];
+  pstore(aux, a);
+  int aux0 = aux[0]>aux[1] ? aux[0] : aux[1];
+  int aux2 = aux[2]>aux[3] ? aux[2] : aux[3];
+  return aux0>aux2 ? aux0 : aux2;
+}
+
+#if (defined __GNUC__)
+// template <> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f&  a, const Packet4f&  b, const Packet4f&  c)
+// {
+//   Packet4f res = b;
+//   asm("mulps %[a], %[b] \n\taddps %[c], %[b]" : [b] "+x" (res) : [a] "x" (a), [c] "x" (c));
+//   return res;
+// }
+// EIGEN_STRONG_INLINE Packet4i _mm_alignr_epi8(const Packet4i&  a, const Packet4i&  b, const int i)
+// {
+//   Packet4i res = a;
+//   asm("palignr %[i], %[a], %[b] " : [b] "+x" (res) : [a] "x" (a), [i] "i" (i));
+//   return res;
+// }
+#endif
+
+#ifdef EIGEN_VECTORIZE_SSSE3
+// SSSE3 versions
+template<int Offset>
+struct palign_impl<Offset,Packet4f>
+{
+  static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second)
+  {
+    if (Offset!=0)
+      first = _mm_castsi128_ps(_mm_alignr_epi8(_mm_castps_si128(second), _mm_castps_si128(first), Offset*4));
+  }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet4i>
+{
+  static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second)
+  {
+    if (Offset!=0)
+      first = _mm_alignr_epi8(second,first, Offset*4);
+  }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet2d>
+{
+  static EIGEN_STRONG_INLINE void run(Packet2d& first, const Packet2d& second)
+  {
+    if (Offset==1)
+      first = _mm_castsi128_pd(_mm_alignr_epi8(_mm_castpd_si128(second), _mm_castpd_si128(first), 8));
+  }
+};
+#else
+// SSE2 versions
+template<int Offset>
+struct palign_impl<Offset,Packet4f>
+{
+  static EIGEN_STRONG_INLINE void run(Packet4f& first, const Packet4f& second)
+  {
+    if (Offset==1)
+    {
+      first = _mm_move_ss(first,second);
+      first = _mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(first),0x39));
+    }
+    else if (Offset==2)
+    {
+      first = _mm_movehl_ps(first,first);
+      first = _mm_movelh_ps(first,second);
+    }
+    else if (Offset==3)
+    {
+      first = _mm_move_ss(first,second);
+      first = _mm_shuffle_ps(first,second,0x93);
+    }
+  }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet4i>
+{
+  static EIGEN_STRONG_INLINE void run(Packet4i& first, const Packet4i& second)
+  {
+    if (Offset==1)
+    {
+      first = _mm_castps_si128(_mm_move_ss(_mm_castsi128_ps(first),_mm_castsi128_ps(second)));
+      first = _mm_shuffle_epi32(first,0x39);
+    }
+    else if (Offset==2)
+    {
+      first = _mm_castps_si128(_mm_movehl_ps(_mm_castsi128_ps(first),_mm_castsi128_ps(first)));
+      first = _mm_castps_si128(_mm_movelh_ps(_mm_castsi128_ps(first),_mm_castsi128_ps(second)));
+    }
+    else if (Offset==3)
+    {
+      first = _mm_castps_si128(_mm_move_ss(_mm_castsi128_ps(first),_mm_castsi128_ps(second)));
+      first = _mm_castps_si128(_mm_shuffle_ps(_mm_castsi128_ps(first),_mm_castsi128_ps(second),0x93));
+    }
+  }
+};
+
+template<int Offset>
+struct palign_impl<Offset,Packet2d>
+{
+  static EIGEN_STRONG_INLINE void run(Packet2d& first, const Packet2d& second)
+  {
+    if (Offset==1)
+    {
+      first = _mm_castps_pd(_mm_movehl_ps(_mm_castpd_ps(first),_mm_castpd_ps(first)));
+      first = _mm_castps_pd(_mm_movelh_ps(_mm_castpd_ps(first),_mm_castpd_ps(second)));
+    }
+  }
+};
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PACKET_MATH_SSE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/SSE/MathFunctions.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/SSE/MathFunctions.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/SSE/MathFunctions.h	(revision 2476)
@@ -0,0 +1,475 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007 Julien Pommier
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* The sin, cos, exp, and log functions of this file come from
+ * Julien Pommier's sse math library: http://gruntthepeon.free.fr/ssemath/
+ */
+
+#ifndef EIGEN_MATH_FUNCTIONS_SSE_H
+#define EIGEN_MATH_FUNCTIONS_SSE_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f plog<Packet4f>(const Packet4f& _x)
+{
+  Packet4f x = _x;
+  _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+  _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+  _EIGEN_DECLARE_CONST_Packet4i(0x7f, 0x7f);
+
+  _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(inv_mant_mask, ~0x7f800000);
+
+  /* the smallest non denormalized float number */
+  _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(min_norm_pos,  0x00800000);
+  _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(minus_inf,     0xff800000);//-1.f/0.f);
+  
+  /* natural logarithm computed for 4 simultaneous float
+    return NaN for x <= 0
+  */
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_SQRTHF, 0.707106781186547524f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p0, 7.0376836292E-2f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p1, - 1.1514610310E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p2, 1.1676998740E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p3, - 1.2420140846E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p4, + 1.4249322787E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p5, - 1.6668057665E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p6, + 2.0000714765E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p7, - 2.4999993993E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_p8, + 3.3333331174E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_q1, -2.12194440e-4f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_log_q2, 0.693359375f);
+
+
+  Packet4i emm0;
+
+  Packet4f invalid_mask = _mm_cmpnge_ps(x, _mm_setzero_ps()); // not greater equal is true if x is NaN
+  Packet4f iszero_mask = _mm_cmpeq_ps(x, _mm_setzero_ps());
+
+  x = pmax(x, p4f_min_norm_pos);  /* cut off denormalized stuff */
+  emm0 = _mm_srli_epi32(_mm_castps_si128(x), 23);
+
+  /* keep only the fractional part */
+  x = _mm_and_ps(x, p4f_inv_mant_mask);
+  x = _mm_or_ps(x, p4f_half);
+
+  emm0 = _mm_sub_epi32(emm0, p4i_0x7f);
+  Packet4f e = padd(_mm_cvtepi32_ps(emm0), p4f_1);
+
+  /* part2:
+     if( x < SQRTHF ) {
+       e -= 1;
+       x = x + x - 1.0;
+     } else { x = x - 1.0; }
+  */
+  Packet4f mask = _mm_cmplt_ps(x, p4f_cephes_SQRTHF);
+  Packet4f tmp = _mm_and_ps(x, mask);
+  x = psub(x, p4f_1);
+  e = psub(e, _mm_and_ps(p4f_1, mask));
+  x = padd(x, tmp);
+
+  Packet4f x2 = pmul(x,x);
+  Packet4f x3 = pmul(x2,x);
+
+  Packet4f y, y1, y2;
+  y  = pmadd(p4f_cephes_log_p0, x, p4f_cephes_log_p1);
+  y1 = pmadd(p4f_cephes_log_p3, x, p4f_cephes_log_p4);
+  y2 = pmadd(p4f_cephes_log_p6, x, p4f_cephes_log_p7);
+  y  = pmadd(y , x, p4f_cephes_log_p2);
+  y1 = pmadd(y1, x, p4f_cephes_log_p5);
+  y2 = pmadd(y2, x, p4f_cephes_log_p8);
+  y = pmadd(y, x3, y1);
+  y = pmadd(y, x3, y2);
+  y = pmul(y, x3);
+
+  y1 = pmul(e, p4f_cephes_log_q1);
+  tmp = pmul(x2, p4f_half);
+  y = padd(y, y1);
+  x = psub(x, tmp);
+  y2 = pmul(e, p4f_cephes_log_q2);
+  x = padd(x, y);
+  x = padd(x, y2);
+  // negative arg will be NAN, 0 will be -INF
+  return _mm_or_ps(_mm_andnot_ps(iszero_mask, _mm_or_ps(x, invalid_mask)),
+                   _mm_and_ps(iszero_mask, p4f_minus_inf));
+}
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f pexp<Packet4f>(const Packet4f& _x)
+{
+  Packet4f x = _x;
+  _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+  _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+  _EIGEN_DECLARE_CONST_Packet4i(0x7f, 0x7f);
+
+
+  _EIGEN_DECLARE_CONST_Packet4f(exp_hi,  88.3762626647950f);
+  _EIGEN_DECLARE_CONST_Packet4f(exp_lo, -88.3762626647949f);
+
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_LOG2EF, 1.44269504088896341f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_C1, 0.693359375f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_C2, -2.12194440e-4f);
+
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p0, 1.9875691500E-4f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p1, 1.3981999507E-3f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p2, 8.3334519073E-3f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p3, 4.1665795894E-2f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p4, 1.6666665459E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_exp_p5, 5.0000001201E-1f);
+
+  Packet4f tmp, fx;
+  Packet4i emm0;
+
+  // clamp x
+  x = pmax(pmin(x, p4f_exp_hi), p4f_exp_lo);
+
+  /* express exp(x) as exp(g + n*log(2)) */
+  fx = pmadd(x, p4f_cephes_LOG2EF, p4f_half);
+
+#ifdef EIGEN_VECTORIZE_SSE4_1
+  fx = _mm_floor_ps(fx);
+#else
+  emm0 = _mm_cvttps_epi32(fx);
+  tmp  = _mm_cvtepi32_ps(emm0);
+  /* if greater, substract 1 */
+  Packet4f mask = _mm_cmpgt_ps(tmp, fx);
+  mask = _mm_and_ps(mask, p4f_1);
+  fx = psub(tmp, mask);
+#endif
+
+  tmp = pmul(fx, p4f_cephes_exp_C1);
+  Packet4f z = pmul(fx, p4f_cephes_exp_C2);
+  x = psub(x, tmp);
+  x = psub(x, z);
+
+  z = pmul(x,x);
+
+  Packet4f y = p4f_cephes_exp_p0;
+  y = pmadd(y, x, p4f_cephes_exp_p1);
+  y = pmadd(y, x, p4f_cephes_exp_p2);
+  y = pmadd(y, x, p4f_cephes_exp_p3);
+  y = pmadd(y, x, p4f_cephes_exp_p4);
+  y = pmadd(y, x, p4f_cephes_exp_p5);
+  y = pmadd(y, z, x);
+  y = padd(y, p4f_1);
+
+  // build 2^n
+  emm0 = _mm_cvttps_epi32(fx);
+  emm0 = _mm_add_epi32(emm0, p4i_0x7f);
+  emm0 = _mm_slli_epi32(emm0, 23);
+  return pmax(pmul(y, Packet4f(_mm_castsi128_ps(emm0))), _x);
+}
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet2d pexp<Packet2d>(const Packet2d& _x)
+{
+  Packet2d x = _x;
+
+  _EIGEN_DECLARE_CONST_Packet2d(1 , 1.0);
+  _EIGEN_DECLARE_CONST_Packet2d(2 , 2.0);
+  _EIGEN_DECLARE_CONST_Packet2d(half, 0.5);
+
+  _EIGEN_DECLARE_CONST_Packet2d(exp_hi,  709.437);
+  _EIGEN_DECLARE_CONST_Packet2d(exp_lo, -709.436139303);
+
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_LOG2EF, 1.4426950408889634073599);
+
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p0, 1.26177193074810590878e-4);
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p1, 3.02994407707441961300e-2);
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_p2, 9.99999999999999999910e-1);
+
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q0, 3.00198505138664455042e-6);
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q1, 2.52448340349684104192e-3);
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q2, 2.27265548208155028766e-1);
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_q3, 2.00000000000000000009e0);
+
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_C1, 0.693145751953125);
+  _EIGEN_DECLARE_CONST_Packet2d(cephes_exp_C2, 1.42860682030941723212e-6);
+  static const __m128i p4i_1023_0 = _mm_setr_epi32(1023, 1023, 0, 0);
+
+  Packet2d tmp, fx;
+  Packet4i emm0;
+
+  // clamp x
+  x = pmax(pmin(x, p2d_exp_hi), p2d_exp_lo);
+  /* express exp(x) as exp(g + n*log(2)) */
+  fx = pmadd(p2d_cephes_LOG2EF, x, p2d_half);
+
+#ifdef EIGEN_VECTORIZE_SSE4_1
+  fx = _mm_floor_pd(fx);
+#else
+  emm0 = _mm_cvttpd_epi32(fx);
+  tmp  = _mm_cvtepi32_pd(emm0);
+  /* if greater, substract 1 */
+  Packet2d mask = _mm_cmpgt_pd(tmp, fx);
+  mask = _mm_and_pd(mask, p2d_1);
+  fx = psub(tmp, mask);
+#endif
+
+  tmp = pmul(fx, p2d_cephes_exp_C1);
+  Packet2d z = pmul(fx, p2d_cephes_exp_C2);
+  x = psub(x, tmp);
+  x = psub(x, z);
+
+  Packet2d x2 = pmul(x,x);
+
+  Packet2d px = p2d_cephes_exp_p0;
+  px = pmadd(px, x2, p2d_cephes_exp_p1);
+  px = pmadd(px, x2, p2d_cephes_exp_p2);
+  px = pmul (px, x);
+
+  Packet2d qx = p2d_cephes_exp_q0;
+  qx = pmadd(qx, x2, p2d_cephes_exp_q1);
+  qx = pmadd(qx, x2, p2d_cephes_exp_q2);
+  qx = pmadd(qx, x2, p2d_cephes_exp_q3);
+
+  x = pdiv(px,psub(qx,px));
+  x = pmadd(p2d_2,x,p2d_1);
+
+  // build 2^n
+  emm0 = _mm_cvttpd_epi32(fx);
+  emm0 = _mm_add_epi32(emm0, p4i_1023_0);
+  emm0 = _mm_slli_epi32(emm0, 20);
+  emm0 = _mm_shuffle_epi32(emm0, _MM_SHUFFLE(1,2,0,3));
+  return pmax(pmul(x, Packet2d(_mm_castsi128_pd(emm0))), _x);
+}
+
+/* evaluation of 4 sines at onces, using SSE2 intrinsics.
+
+   The code is the exact rewriting of the cephes sinf function.
+   Precision is excellent as long as x < 8192 (I did not bother to
+   take into account the special handling they have for greater values
+   -- it does not return garbage for arguments over 8192, though, but
+   the extra precision is missing).
+
+   Note that it is such that sinf((float)M_PI) = 8.74e-8, which is the
+   surprising but correct result.
+*/
+
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f psin<Packet4f>(const Packet4f& _x)
+{
+  Packet4f x = _x;
+  _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+  _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+
+  _EIGEN_DECLARE_CONST_Packet4i(1, 1);
+  _EIGEN_DECLARE_CONST_Packet4i(not1, ~1);
+  _EIGEN_DECLARE_CONST_Packet4i(2, 2);
+  _EIGEN_DECLARE_CONST_Packet4i(4, 4);
+
+  _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(sign_mask, 0x80000000);
+
+  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP1,-0.78515625f);
+  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP2, -2.4187564849853515625e-4f);
+  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP3, -3.77489497744594108e-8f);
+  _EIGEN_DECLARE_CONST_Packet4f(sincof_p0, -1.9515295891E-4f);
+  _EIGEN_DECLARE_CONST_Packet4f(sincof_p1,  8.3321608736E-3f);
+  _EIGEN_DECLARE_CONST_Packet4f(sincof_p2, -1.6666654611E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(coscof_p0,  2.443315711809948E-005f);
+  _EIGEN_DECLARE_CONST_Packet4f(coscof_p1, -1.388731625493765E-003f);
+  _EIGEN_DECLARE_CONST_Packet4f(coscof_p2,  4.166664568298827E-002f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_FOPI, 1.27323954473516f); // 4 / M_PI
+
+  Packet4f xmm1, xmm2, xmm3, sign_bit, y;
+
+  Packet4i emm0, emm2;
+  sign_bit = x;
+  /* take the absolute value */
+  x = pabs(x);
+
+  /* take the modulo */
+
+  /* extract the sign bit (upper one) */
+  sign_bit = _mm_and_ps(sign_bit, p4f_sign_mask);
+
+  /* scale by 4/Pi */
+  y = pmul(x, p4f_cephes_FOPI);
+
+  /* store the integer part of y in mm0 */
+  emm2 = _mm_cvttps_epi32(y);
+  /* j=(j+1) & (~1) (see the cephes sources) */
+  emm2 = _mm_add_epi32(emm2, p4i_1);
+  emm2 = _mm_and_si128(emm2, p4i_not1);
+  y = _mm_cvtepi32_ps(emm2);
+  /* get the swap sign flag */
+  emm0 = _mm_and_si128(emm2, p4i_4);
+  emm0 = _mm_slli_epi32(emm0, 29);
+  /* get the polynom selection mask
+     there is one polynom for 0 <= x <= Pi/4
+     and another one for Pi/4<x<=Pi/2
+
+     Both branches will be computed.
+  */
+  emm2 = _mm_and_si128(emm2, p4i_2);
+  emm2 = _mm_cmpeq_epi32(emm2, _mm_setzero_si128());
+
+  Packet4f swap_sign_bit = _mm_castsi128_ps(emm0);
+  Packet4f poly_mask = _mm_castsi128_ps(emm2);
+  sign_bit = _mm_xor_ps(sign_bit, swap_sign_bit);
+
+  /* The magic pass: "Extended precision modular arithmetic"
+     x = ((x - y * DP1) - y * DP2) - y * DP3; */
+  xmm1 = pmul(y, p4f_minus_cephes_DP1);
+  xmm2 = pmul(y, p4f_minus_cephes_DP2);
+  xmm3 = pmul(y, p4f_minus_cephes_DP3);
+  x = padd(x, xmm1);
+  x = padd(x, xmm2);
+  x = padd(x, xmm3);
+
+  /* Evaluate the first polynom  (0 <= x <= Pi/4) */
+  y = p4f_coscof_p0;
+  Packet4f z = _mm_mul_ps(x,x);
+
+  y = pmadd(y, z, p4f_coscof_p1);
+  y = pmadd(y, z, p4f_coscof_p2);
+  y = pmul(y, z);
+  y = pmul(y, z);
+  Packet4f tmp = pmul(z, p4f_half);
+  y = psub(y, tmp);
+  y = padd(y, p4f_1);
+
+  /* Evaluate the second polynom  (Pi/4 <= x <= 0) */
+
+  Packet4f y2 = p4f_sincof_p0;
+  y2 = pmadd(y2, z, p4f_sincof_p1);
+  y2 = pmadd(y2, z, p4f_sincof_p2);
+  y2 = pmul(y2, z);
+  y2 = pmul(y2, x);
+  y2 = padd(y2, x);
+
+  /* select the correct result from the two polynoms */
+  y2 = _mm_and_ps(poly_mask, y2);
+  y = _mm_andnot_ps(poly_mask, y);
+  y = _mm_or_ps(y,y2);
+  /* update the sign */
+  return _mm_xor_ps(y, sign_bit);
+}
+
+/* almost the same as psin */
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f pcos<Packet4f>(const Packet4f& _x)
+{
+  Packet4f x = _x;
+  _EIGEN_DECLARE_CONST_Packet4f(1 , 1.0f);
+  _EIGEN_DECLARE_CONST_Packet4f(half, 0.5f);
+
+  _EIGEN_DECLARE_CONST_Packet4i(1, 1);
+  _EIGEN_DECLARE_CONST_Packet4i(not1, ~1);
+  _EIGEN_DECLARE_CONST_Packet4i(2, 2);
+  _EIGEN_DECLARE_CONST_Packet4i(4, 4);
+
+  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP1,-0.78515625f);
+  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP2, -2.4187564849853515625e-4f);
+  _EIGEN_DECLARE_CONST_Packet4f(minus_cephes_DP3, -3.77489497744594108e-8f);
+  _EIGEN_DECLARE_CONST_Packet4f(sincof_p0, -1.9515295891E-4f);
+  _EIGEN_DECLARE_CONST_Packet4f(sincof_p1,  8.3321608736E-3f);
+  _EIGEN_DECLARE_CONST_Packet4f(sincof_p2, -1.6666654611E-1f);
+  _EIGEN_DECLARE_CONST_Packet4f(coscof_p0,  2.443315711809948E-005f);
+  _EIGEN_DECLARE_CONST_Packet4f(coscof_p1, -1.388731625493765E-003f);
+  _EIGEN_DECLARE_CONST_Packet4f(coscof_p2,  4.166664568298827E-002f);
+  _EIGEN_DECLARE_CONST_Packet4f(cephes_FOPI, 1.27323954473516f); // 4 / M_PI
+
+  Packet4f xmm1, xmm2, xmm3, y;
+  Packet4i emm0, emm2;
+
+  x = pabs(x);
+
+  /* scale by 4/Pi */
+  y = pmul(x, p4f_cephes_FOPI);
+
+  /* get the integer part of y */
+  emm2 = _mm_cvttps_epi32(y);
+  /* j=(j+1) & (~1) (see the cephes sources) */
+  emm2 = _mm_add_epi32(emm2, p4i_1);
+  emm2 = _mm_and_si128(emm2, p4i_not1);
+  y = _mm_cvtepi32_ps(emm2);
+
+  emm2 = _mm_sub_epi32(emm2, p4i_2);
+
+  /* get the swap sign flag */
+  emm0 = _mm_andnot_si128(emm2, p4i_4);
+  emm0 = _mm_slli_epi32(emm0, 29);
+  /* get the polynom selection mask */
+  emm2 = _mm_and_si128(emm2, p4i_2);
+  emm2 = _mm_cmpeq_epi32(emm2, _mm_setzero_si128());
+
+  Packet4f sign_bit = _mm_castsi128_ps(emm0);
+  Packet4f poly_mask = _mm_castsi128_ps(emm2);
+
+  /* The magic pass: "Extended precision modular arithmetic"
+     x = ((x - y * DP1) - y * DP2) - y * DP3; */
+  xmm1 = pmul(y, p4f_minus_cephes_DP1);
+  xmm2 = pmul(y, p4f_minus_cephes_DP2);
+  xmm3 = pmul(y, p4f_minus_cephes_DP3);
+  x = padd(x, xmm1);
+  x = padd(x, xmm2);
+  x = padd(x, xmm3);
+
+  /* Evaluate the first polynom  (0 <= x <= Pi/4) */
+  y = p4f_coscof_p0;
+  Packet4f z = pmul(x,x);
+
+  y = pmadd(y,z,p4f_coscof_p1);
+  y = pmadd(y,z,p4f_coscof_p2);
+  y = pmul(y, z);
+  y = pmul(y, z);
+  Packet4f tmp = _mm_mul_ps(z, p4f_half);
+  y = psub(y, tmp);
+  y = padd(y, p4f_1);
+
+  /* Evaluate the second polynom  (Pi/4 <= x <= 0) */
+  Packet4f y2 = p4f_sincof_p0;
+  y2 = pmadd(y2, z, p4f_sincof_p1);
+  y2 = pmadd(y2, z, p4f_sincof_p2);
+  y2 = pmul(y2, z);
+  y2 = pmadd(y2, x, x);
+
+  /* select the correct result from the two polynoms */
+  y2 = _mm_and_ps(poly_mask, y2);
+  y  = _mm_andnot_ps(poly_mask, y);
+  y  = _mm_or_ps(y,y2);
+
+  /* update the sign */
+  return _mm_xor_ps(y, sign_bit);
+}
+
+#if EIGEN_FAST_MATH
+
+// This is based on Quake3's fast inverse square root.
+// For detail see here: http://www.beyond3d.com/content/articles/8/
+// It lacks 1 (or 2 bits in some rare cases) of precision, and does not handle negative, +inf, or denormalized numbers correctly.
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
+Packet4f psqrt<Packet4f>(const Packet4f& _x)
+{
+  Packet4f half = pmul(_x, pset1<Packet4f>(.5f));
+
+  /* select only the inverse sqrt of non-zero inputs */
+  Packet4f non_zero_mask = _mm_cmpge_ps(_x, pset1<Packet4f>((std::numeric_limits<float>::min)()));
+  Packet4f x = _mm_and_ps(non_zero_mask, _mm_rsqrt_ps(_x));
+
+  x = pmul(x, psub(pset1<Packet4f>(1.5f), pmul(half, pmul(x,x))));
+  return pmul(_x,x);
+}
+
+#else
+
+template<> EIGEN_STRONG_INLINE Packet4f psqrt<Packet4f>(const Packet4f& x) { return _mm_sqrt_ps(x); }
+
+#endif
+
+template<> EIGEN_STRONG_INLINE Packet2d psqrt<Packet2d>(const Packet2d& x) { return _mm_sqrt_pd(x); }
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATH_FUNCTIONS_SSE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/SSE/Complex.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/SSE/Complex.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/SSE/Complex.h	(revision 2476)
@@ -0,0 +1,442 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_SSE_H
+#define EIGEN_COMPLEX_SSE_H
+
+namespace Eigen {
+
+namespace internal {
+
+//---------- float ----------
+struct Packet2cf
+{
+  EIGEN_STRONG_INLINE Packet2cf() {}
+  EIGEN_STRONG_INLINE explicit Packet2cf(const __m128& a) : v(a) {}
+  __m128  v;
+};
+
+template<> struct packet_traits<std::complex<float> >  : default_packet_traits
+{
+  typedef Packet2cf type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size = 2,
+
+    HasAdd    = 1,
+    HasSub    = 1,
+    HasMul    = 1,
+    HasDiv    = 1,
+    HasNegate = 1,
+    HasAbs    = 0,
+    HasAbs2   = 0,
+    HasMin    = 0,
+    HasMax    = 0,
+    HasSetLinear = 0
+  };
+};
+
+template<> struct unpacket_traits<Packet2cf> { typedef std::complex<float> type; enum {size=2}; };
+
+template<> EIGEN_STRONG_INLINE Packet2cf padd<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_add_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf psub<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_sub_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf& a)
+{
+  const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x80000000,0x80000000,0x80000000,0x80000000));
+  return Packet2cf(_mm_xor_ps(a.v,mask));
+}
+template<> EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf& a)
+{
+  const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
+  return Packet2cf(_mm_xor_ps(a.v,mask));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pmul<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  // TODO optimize it for SSE3 and 4
+  #ifdef EIGEN_VECTORIZE_SSE3
+  return Packet2cf(_mm_addsub_ps(_mm_mul_ps(_mm_moveldup_ps(a.v), b.v),
+                                 _mm_mul_ps(_mm_movehdup_ps(a.v),
+                                            vec4f_swizzle1(b.v, 1, 0, 3, 2))));
+//   return Packet2cf(_mm_addsub_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v),
+//                                  _mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+//                                             vec4f_swizzle1(b.v, 1, 0, 3, 2))));
+  #else
+  const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x80000000,0x00000000,0x80000000,0x00000000));
+  return Packet2cf(_mm_add_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v),
+                              _mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+                                                    vec4f_swizzle1(b.v, 1, 0, 3, 2)), mask)));
+  #endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pand   <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_and_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf por    <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_or_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pxor   <Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_xor_ps(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pandnot<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(_mm_andnot_ps(a.v,b.v)); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf pload <Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet2cf(pload<Packet4f>(&numext::real_ref(*from))); }
+template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_UNALIGNED_LOAD return Packet2cf(ploadu<Packet4f>(&numext::real_ref(*from))); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>&  from)
+{
+  Packet2cf res;
+#if EIGEN_GNUC_AT_MOST(4,2)
+  // Workaround annoying "may be used uninitialized in this function" warning with gcc 4.2
+  res.v = _mm_loadl_pi(_mm_set1_ps(0.0f), reinterpret_cast<const __m64*>(&from));
+#elif EIGEN_GNUC_AT_LEAST(4,6)
+  // Suppress annoying "may be used uninitialized in this function" warning with gcc >= 4.6
+  #pragma GCC diagnostic push
+  #pragma GCC diagnostic ignored "-Wuninitialized"
+  res.v = _mm_loadl_pi(res.v, (const __m64*)&from);
+  #pragma GCC diagnostic pop
+#else
+  res.v = _mm_loadl_pi(res.v, (const __m64*)&from);
+#endif
+  return Packet2cf(_mm_movelh_ps(res.v,res.v));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>* from) { return pset1<Packet2cf>(*from); }
+
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_ALIGNED_STORE pstore(&numext::real_ref(*to), from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu(&numext::real_ref(*to), from.v); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> *   addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+
+template<> EIGEN_STRONG_INLINE std::complex<float>  pfirst<Packet2cf>(const Packet2cf& a)
+{
+  #if EIGEN_GNUC_AT_MOST(4,3)
+  // Workaround gcc 4.2 ICE - this is not performance wise ideal, but who cares...
+  // This workaround also fix invalid code generation with gcc 4.3
+  EIGEN_ALIGN16 std::complex<float> res[2];
+  _mm_store_ps((float*)res, a.v);
+  return res[0];
+  #else
+  std::complex<float> res;
+  _mm_storel_pi((__m64*)&res, a.v);
+  return res;
+  #endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf& a) { return Packet2cf(_mm_castpd_ps(preverse(_mm_castps_pd(a.v)))); }
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux<Packet2cf>(const Packet2cf& a)
+{
+  return pfirst(Packet2cf(_mm_add_ps(a.v, _mm_movehl_ps(a.v,a.v))));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preduxp<Packet2cf>(const Packet2cf* vecs)
+{
+  return Packet2cf(_mm_add_ps(_mm_movelh_ps(vecs[0].v,vecs[1].v), _mm_movehl_ps(vecs[1].v,vecs[0].v)));
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux_mul<Packet2cf>(const Packet2cf& a)
+{
+  return pfirst(pmul(a, Packet2cf(_mm_movehl_ps(a.v,a.v))));
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet2cf>
+{
+  static EIGEN_STRONG_INLINE void run(Packet2cf& first, const Packet2cf& second)
+  {
+    if (Offset==1)
+    {
+      first.v = _mm_movehl_ps(first.v, first.v);
+      first.v = _mm_movelh_ps(first.v, second.v);
+    }
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, false,true>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    #ifdef EIGEN_VECTORIZE_SSE3
+    return internal::pmul(a, pconj(b));
+    #else
+    const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
+    return Packet2cf(_mm_add_ps(_mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v), mask),
+                                _mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+                                           vec4f_swizzle1(b.v, 1, 0, 3, 2))));
+    #endif
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,false>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    #ifdef EIGEN_VECTORIZE_SSE3
+    return internal::pmul(pconj(a), b);
+    #else
+    const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
+    return Packet2cf(_mm_add_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v),
+                                _mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+                                                      vec4f_swizzle1(b.v, 1, 0, 3, 2)), mask)));
+    #endif
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,true>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    #ifdef EIGEN_VECTORIZE_SSE3
+    return pconj(internal::pmul(a, b));
+    #else
+    const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0x00000000,0x80000000,0x00000000,0x80000000));
+    return Packet2cf(_mm_sub_ps(_mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a.v, 0, 0, 2, 2), b.v), mask),
+                                _mm_mul_ps(vec4f_swizzle1(a.v, 1, 1, 3, 3),
+                                           vec4f_swizzle1(b.v, 1, 0, 3, 2))));
+    #endif
+  }
+};
+
+template<> struct conj_helper<Packet4f, Packet2cf, false,false>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet4f& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(c, pmul(x,y)); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet4f& x, const Packet2cf& y) const
+  { return Packet2cf(Eigen::internal::pmul(x, y.v)); }
+};
+
+template<> struct conj_helper<Packet2cf, Packet4f, false,false>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet4f& y, const Packet2cf& c) const
+  { return padd(c, pmul(x,y)); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& x, const Packet4f& y) const
+  { return Packet2cf(Eigen::internal::pmul(x.v, y)); }
+};
+
+template<> EIGEN_STRONG_INLINE Packet2cf pdiv<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  // TODO optimize it for SSE3 and 4
+  Packet2cf res = conj_helper<Packet2cf,Packet2cf,false,true>().pmul(a,b);
+  __m128 s = _mm_mul_ps(b.v,b.v);
+  return Packet2cf(_mm_div_ps(res.v,_mm_add_ps(s,_mm_castsi128_ps(_mm_shuffle_epi32(_mm_castps_si128(s), 0xb1)))));
+}
+
+EIGEN_STRONG_INLINE Packet2cf pcplxflip/*<Packet2cf>*/(const Packet2cf& x)
+{
+  return Packet2cf(vec4f_swizzle1(x.v, 1, 0, 3, 2));
+}
+
+
+//---------- double ----------
+struct Packet1cd
+{
+  EIGEN_STRONG_INLINE Packet1cd() {}
+  EIGEN_STRONG_INLINE explicit Packet1cd(const __m128d& a) : v(a) {}
+  __m128d  v;
+};
+
+template<> struct packet_traits<std::complex<double> >  : default_packet_traits
+{
+  typedef Packet1cd type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 0,
+    size = 1,
+
+    HasAdd    = 1,
+    HasSub    = 1,
+    HasMul    = 1,
+    HasDiv    = 1,
+    HasNegate = 1,
+    HasAbs    = 0,
+    HasAbs2   = 0,
+    HasMin    = 0,
+    HasMax    = 0,
+    HasSetLinear = 0
+  };
+};
+
+template<> struct unpacket_traits<Packet1cd> { typedef std::complex<double> type; enum {size=1}; };
+
+template<> EIGEN_STRONG_INLINE Packet1cd padd<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_add_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd psub<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_sub_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pnegate(const Packet1cd& a) { return Packet1cd(pnegate(a.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pconj(const Packet1cd& a)
+{
+  const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
+  return Packet1cd(_mm_xor_pd(a.v,mask));
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd pmul<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+  // TODO optimize it for SSE3 and 4
+  #ifdef EIGEN_VECTORIZE_SSE3
+  return Packet1cd(_mm_addsub_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v),
+                                 _mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+                                            vec2d_swizzle1(b.v, 1, 0))));
+  #else
+  const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x0,0x0,0x80000000,0x0));
+  return Packet1cd(_mm_add_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v),
+                              _mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+                                                    vec2d_swizzle1(b.v, 1, 0)), mask)));
+  #endif
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd pand   <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_and_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd por    <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_or_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pxor   <Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_xor_pd(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pandnot<Packet1cd>(const Packet1cd& a, const Packet1cd& b) { return Packet1cd(_mm_andnot_pd(a.v,b.v)); }
+
+// FIXME force unaligned load, this is a temporary fix
+template<> EIGEN_STRONG_INLINE Packet1cd pload <Packet1cd>(const std::complex<double>* from)
+{ EIGEN_DEBUG_ALIGNED_LOAD return Packet1cd(pload<Packet2d>((const double*)from)); }
+template<> EIGEN_STRONG_INLINE Packet1cd ploadu<Packet1cd>(const std::complex<double>* from)
+{ EIGEN_DEBUG_UNALIGNED_LOAD return Packet1cd(ploadu<Packet2d>((const double*)from)); }
+template<> EIGEN_STRONG_INLINE Packet1cd pset1<Packet1cd>(const std::complex<double>&  from)
+{ /* here we really have to use unaligned loads :( */ return ploadu<Packet1cd>(&from); }
+
+template<> EIGEN_STRONG_INLINE Packet1cd ploaddup<Packet1cd>(const std::complex<double>* from) { return pset1<Packet1cd>(*from); }
+
+// FIXME force unaligned store, this is a temporary fix
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<double> >(std::complex<double> *   to, const Packet1cd& from) { EIGEN_DEBUG_ALIGNED_STORE pstore((double*)to, from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<double> >(std::complex<double> *   to, const Packet1cd& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu((double*)to, from.v); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<double> >(const std::complex<double> *   addr) { _mm_prefetch((const char*)(addr), _MM_HINT_T0); }
+
+template<> EIGEN_STRONG_INLINE std::complex<double>  pfirst<Packet1cd>(const Packet1cd& a)
+{
+  EIGEN_ALIGN16 double res[2];
+  _mm_store_pd(res, a.v);
+  return std::complex<double>(res[0],res[1]);
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd preverse(const Packet1cd& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux<Packet1cd>(const Packet1cd& a)
+{
+  return pfirst(a);
+}
+
+template<> EIGEN_STRONG_INLINE Packet1cd preduxp<Packet1cd>(const Packet1cd* vecs)
+{
+  return vecs[0];
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<double> predux_mul<Packet1cd>(const Packet1cd& a)
+{
+  return pfirst(a);
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet1cd>
+{
+  static EIGEN_STRONG_INLINE void run(Packet1cd& /*first*/, const Packet1cd& /*second*/)
+  {
+    // FIXME is it sure we never have to align a Packet1cd?
+    // Even though a std::complex<double> has 16 bytes, it is not necessarily aligned on a 16 bytes boundary...
+  }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, false,true>
+{
+  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+  {
+    #ifdef EIGEN_VECTORIZE_SSE3
+    return internal::pmul(a, pconj(b));
+    #else
+    const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
+    return Packet1cd(_mm_add_pd(_mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v), mask),
+                                _mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+                                           vec2d_swizzle1(b.v, 1, 0))));
+    #endif
+  }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, true,false>
+{
+  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+  {
+    #ifdef EIGEN_VECTORIZE_SSE3
+    return internal::pmul(pconj(a), b);
+    #else
+    const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
+    return Packet1cd(_mm_add_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v),
+                                _mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+                                                      vec2d_swizzle1(b.v, 1, 0)), mask)));
+    #endif
+  }
+};
+
+template<> struct conj_helper<Packet1cd, Packet1cd, true,true>
+{
+  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet1cd& y, const Packet1cd& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& a, const Packet1cd& b) const
+  {
+    #ifdef EIGEN_VECTORIZE_SSE3
+    return pconj(internal::pmul(a, b));
+    #else
+    const __m128d mask = _mm_castsi128_pd(_mm_set_epi32(0x80000000,0x0,0x0,0x0));
+    return Packet1cd(_mm_sub_pd(_mm_xor_pd(_mm_mul_pd(vec2d_swizzle1(a.v, 0, 0), b.v), mask),
+                                _mm_mul_pd(vec2d_swizzle1(a.v, 1, 1),
+                                           vec2d_swizzle1(b.v, 1, 0))));
+    #endif
+  }
+};
+
+template<> struct conj_helper<Packet2d, Packet1cd, false,false>
+{
+  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet2d& x, const Packet1cd& y, const Packet1cd& c) const
+  { return padd(c, pmul(x,y)); }
+
+  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet2d& x, const Packet1cd& y) const
+  { return Packet1cd(Eigen::internal::pmul(x, y.v)); }
+};
+
+template<> struct conj_helper<Packet1cd, Packet2d, false,false>
+{
+  EIGEN_STRONG_INLINE Packet1cd pmadd(const Packet1cd& x, const Packet2d& y, const Packet1cd& c) const
+  { return padd(c, pmul(x,y)); }
+
+  EIGEN_STRONG_INLINE Packet1cd pmul(const Packet1cd& x, const Packet2d& y) const
+  { return Packet1cd(Eigen::internal::pmul(x.v, y)); }
+};
+
+template<> EIGEN_STRONG_INLINE Packet1cd pdiv<Packet1cd>(const Packet1cd& a, const Packet1cd& b)
+{
+  // TODO optimize it for SSE3 and 4
+  Packet1cd res = conj_helper<Packet1cd,Packet1cd,false,true>().pmul(a,b);
+  __m128d s = _mm_mul_pd(b.v,b.v);
+  return Packet1cd(_mm_div_pd(res.v, _mm_add_pd(s,_mm_shuffle_pd(s, s, 0x1))));
+}
+
+EIGEN_STRONG_INLINE Packet1cd pcplxflip/*<Packet1cd>*/(const Packet1cd& x)
+{
+  return Packet1cd(preverse(x.v));
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_SSE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/NEON/PacketMath.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/NEON/PacketMath.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/NEON/PacketMath.h	(revision 2476)
@@ -0,0 +1,420 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2010 Konstantinos Margaritis <markos@codex.gr>
+// Heavily based on Gael's SSE version.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PACKET_MATH_NEON_H
+#define EIGEN_PACKET_MATH_NEON_H
+
+namespace Eigen {
+
+namespace internal {
+
+#ifndef EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD
+#define EIGEN_CACHEFRIENDLY_PRODUCT_THRESHOLD 8
+#endif
+
+// FIXME NEON has 16 quad registers, but since the current register allocator
+// is so bad, it is much better to reduce it to 8
+#ifndef EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS
+#define EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS 8
+#endif
+
+typedef float32x4_t Packet4f;
+typedef int32x4_t   Packet4i;
+typedef uint32x4_t  Packet4ui;
+
+#define _EIGEN_DECLARE_CONST_Packet4f(NAME,X) \
+  const Packet4f p4f_##NAME = pset1<Packet4f>(X)
+
+#define _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(NAME,X) \
+  const Packet4f p4f_##NAME = vreinterpretq_f32_u32(pset1<int>(X))
+
+#define _EIGEN_DECLARE_CONST_Packet4i(NAME,X) \
+  const Packet4i p4i_##NAME = pset1<Packet4i>(X)
+
+#if defined(__llvm__) && !defined(__clang__)
+  //Special treatment for Apple's llvm-gcc, its NEON packet types are unions
+  #define EIGEN_INIT_NEON_PACKET2(X, Y)       {{X, Y}}
+  #define EIGEN_INIT_NEON_PACKET4(X, Y, Z, W) {{X, Y, Z, W}}
+#else
+  //Default initializer for packets
+  #define EIGEN_INIT_NEON_PACKET2(X, Y)       {X, Y}
+  #define EIGEN_INIT_NEON_PACKET4(X, Y, Z, W) {X, Y, Z, W}
+#endif
+
+// arm64 does have the pld instruction. If available, let's trust the __builtin_prefetch built-in function
+// which available on LLVM and GCC (at least)
+#if EIGEN_HAS_BUILTIN(__builtin_prefetch) || defined(__GNUC__)
+  #define EIGEN_ARM_PREFETCH(ADDR) __builtin_prefetch(ADDR);
+#elif defined __pld
+  #define EIGEN_ARM_PREFETCH(ADDR) __pld(ADDR)
+#elif !defined(__aarch64__)
+  #define EIGEN_ARM_PREFETCH(ADDR) __asm__ __volatile__ ( "   pld [%[addr]]\n" :: [addr] "r" (ADDR) : "cc" );
+#else
+  // by default no explicit prefetching
+  #define EIGEN_ARM_PREFETCH(ADDR)
+#endif
+
+template<> struct packet_traits<float>  : default_packet_traits
+{
+  typedef Packet4f type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size = 4,
+   
+    HasDiv  = 1,
+    // FIXME check the Has*
+    HasSin  = 0,
+    HasCos  = 0,
+    HasLog  = 0,
+    HasExp  = 0,
+    HasSqrt = 0
+  };
+};
+template<> struct packet_traits<int>    : default_packet_traits
+{
+  typedef Packet4i type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size=4
+    // FIXME check the Has*
+  };
+};
+
+#if EIGEN_GNUC_AT_MOST(4,4) && !defined(__llvm__)
+// workaround gcc 4.2, 4.3 and 4.4 compilatin issue
+EIGEN_STRONG_INLINE float32x4_t vld1q_f32(const float* x) { return ::vld1q_f32((const float32_t*)x); }
+EIGEN_STRONG_INLINE float32x2_t vld1_f32 (const float* x) { return ::vld1_f32 ((const float32_t*)x); }
+EIGEN_STRONG_INLINE void        vst1q_f32(float* to, float32x4_t from) { ::vst1q_f32((float32_t*)to,from); }
+EIGEN_STRONG_INLINE void        vst1_f32 (float* to, float32x2_t from) { ::vst1_f32 ((float32_t*)to,from); }
+#endif
+
+template<> struct unpacket_traits<Packet4f> { typedef float  type; enum {size=4}; };
+template<> struct unpacket_traits<Packet4i> { typedef int    type; enum {size=4}; };
+
+template<> EIGEN_STRONG_INLINE Packet4f pset1<Packet4f>(const float&  from) { return vdupq_n_f32(from); }
+template<> EIGEN_STRONG_INLINE Packet4i pset1<Packet4i>(const int&    from)   { return vdupq_n_s32(from); }
+
+template<> EIGEN_STRONG_INLINE Packet4f plset<float>(const float& a)
+{
+  Packet4f countdown = EIGEN_INIT_NEON_PACKET4(0, 1, 2, 3);
+  return vaddq_f32(pset1<Packet4f>(a), countdown);
+}
+template<> EIGEN_STRONG_INLINE Packet4i plset<int>(const int& a)
+{
+  Packet4i countdown = EIGEN_INIT_NEON_PACKET4(0, 1, 2, 3);
+  return vaddq_s32(pset1<Packet4i>(a), countdown);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f padd<Packet4f>(const Packet4f& a, const Packet4f& b) { return vaddq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i padd<Packet4i>(const Packet4i& a, const Packet4i& b) { return vaddq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f psub<Packet4f>(const Packet4f& a, const Packet4f& b) { return vsubq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i psub<Packet4i>(const Packet4i& a, const Packet4i& b) { return vsubq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pnegate(const Packet4f& a) { return vnegq_f32(a); }
+template<> EIGEN_STRONG_INLINE Packet4i pnegate(const Packet4i& a) { return vnegq_s32(a); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pconj(const Packet4f& a) { return a; }
+template<> EIGEN_STRONG_INLINE Packet4i pconj(const Packet4i& a) { return a; }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmul<Packet4f>(const Packet4f& a, const Packet4f& b) { return vmulq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmul<Packet4i>(const Packet4i& a, const Packet4i& b) { return vmulq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pdiv<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+  Packet4f inv, restep, div;
+
+  // NEON does not offer a divide instruction, we have to do a reciprocal approximation
+  // However NEON in contrast to other SIMD engines (AltiVec/SSE), offers
+  // a reciprocal estimate AND a reciprocal step -which saves a few instructions
+  // vrecpeq_f32() returns an estimate to 1/b, which we will finetune with
+  // Newton-Raphson and vrecpsq_f32()
+  inv = vrecpeq_f32(b);
+
+  // This returns a differential, by which we will have to multiply inv to get a better
+  // approximation of 1/b.
+  restep = vrecpsq_f32(b, inv);
+  inv = vmulq_f32(restep, inv);
+
+  // Finally, multiply a by 1/b and get the wanted result of the division.
+  div = vmulq_f32(a, inv);
+
+  return div;
+}
+template<> EIGEN_STRONG_INLINE Packet4i pdiv<Packet4i>(const Packet4i& /*a*/, const Packet4i& /*b*/)
+{ eigen_assert(false && "packet integer division are not supported by NEON");
+  return pset1<Packet4i>(0);
+}
+
+// for some weird raisons, it has to be overloaded for packet of integers
+template<> EIGEN_STRONG_INLINE Packet4f pmadd(const Packet4f& a, const Packet4f& b, const Packet4f& c) { return vmlaq_f32(c,a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmadd(const Packet4i& a, const Packet4i& b, const Packet4i& c) { return vmlaq_s32(c,a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmin<Packet4f>(const Packet4f& a, const Packet4f& b) { return vminq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmin<Packet4i>(const Packet4i& a, const Packet4i& b) { return vminq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pmax<Packet4f>(const Packet4f& a, const Packet4f& b) { return vmaxq_f32(a,b); }
+template<> EIGEN_STRONG_INLINE Packet4i pmax<Packet4i>(const Packet4i& a, const Packet4i& b) { return vmaxq_s32(a,b); }
+
+// Logical Operations are not supported for float, so we have to reinterpret casts using NEON intrinsics
+template<> EIGEN_STRONG_INLINE Packet4f pand<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+  return vreinterpretq_f32_u32(vandq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
+}
+template<> EIGEN_STRONG_INLINE Packet4i pand<Packet4i>(const Packet4i& a, const Packet4i& b) { return vandq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f por<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+  return vreinterpretq_f32_u32(vorrq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
+}
+template<> EIGEN_STRONG_INLINE Packet4i por<Packet4i>(const Packet4i& a, const Packet4i& b) { return vorrq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pxor<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+  return vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
+}
+template<> EIGEN_STRONG_INLINE Packet4i pxor<Packet4i>(const Packet4i& a, const Packet4i& b) { return veorq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pandnot<Packet4f>(const Packet4f& a, const Packet4f& b)
+{
+  return vreinterpretq_f32_u32(vbicq_u32(vreinterpretq_u32_f32(a),vreinterpretq_u32_f32(b)));
+}
+template<> EIGEN_STRONG_INLINE Packet4i pandnot<Packet4i>(const Packet4i& a, const Packet4i& b) { return vbicq_s32(a,b); }
+
+template<> EIGEN_STRONG_INLINE Packet4f pload<Packet4f>(const float* from) { EIGEN_DEBUG_ALIGNED_LOAD return vld1q_f32(from); }
+template<> EIGEN_STRONG_INLINE Packet4i pload<Packet4i>(const int*   from) { EIGEN_DEBUG_ALIGNED_LOAD return vld1q_s32(from); }
+
+template<> EIGEN_STRONG_INLINE Packet4f ploadu<Packet4f>(const float* from) { EIGEN_DEBUG_UNALIGNED_LOAD return vld1q_f32(from); }
+template<> EIGEN_STRONG_INLINE Packet4i ploadu<Packet4i>(const int* from)   { EIGEN_DEBUG_UNALIGNED_LOAD return vld1q_s32(from); }
+
+template<> EIGEN_STRONG_INLINE Packet4f ploaddup<Packet4f>(const float*   from)
+{
+  float32x2_t lo, hi;
+  lo = vld1_dup_f32(from);
+  hi = vld1_dup_f32(from+1);
+  return vcombine_f32(lo, hi);
+}
+template<> EIGEN_STRONG_INLINE Packet4i ploaddup<Packet4i>(const int*     from)
+{
+  int32x2_t lo, hi;
+  lo = vld1_dup_s32(from);
+  hi = vld1_dup_s32(from+1);
+  return vcombine_s32(lo, hi);
+}
+
+template<> EIGEN_STRONG_INLINE void pstore<float>(float*   to, const Packet4f& from) { EIGEN_DEBUG_ALIGNED_STORE vst1q_f32(to, from); }
+template<> EIGEN_STRONG_INLINE void pstore<int>(int*       to, const Packet4i& from) { EIGEN_DEBUG_ALIGNED_STORE vst1q_s32(to, from); }
+
+template<> EIGEN_STRONG_INLINE void pstoreu<float>(float*  to, const Packet4f& from) { EIGEN_DEBUG_UNALIGNED_STORE vst1q_f32(to, from); }
+template<> EIGEN_STRONG_INLINE void pstoreu<int>(int*      to, const Packet4i& from) { EIGEN_DEBUG_UNALIGNED_STORE vst1q_s32(to, from); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<float>(const float* addr) { EIGEN_ARM_PREFETCH(addr); }
+template<> EIGEN_STRONG_INLINE void prefetch<int>(const int*     addr) { EIGEN_ARM_PREFETCH(addr); }
+
+// FIXME only store the 2 first elements ?
+template<> EIGEN_STRONG_INLINE float  pfirst<Packet4f>(const Packet4f& a) { float EIGEN_ALIGN16 x[4]; vst1q_f32(x, a); return x[0]; }
+template<> EIGEN_STRONG_INLINE int    pfirst<Packet4i>(const Packet4i& a) { int   EIGEN_ALIGN16 x[4]; vst1q_s32(x, a); return x[0]; }
+
+template<> EIGEN_STRONG_INLINE Packet4f preverse(const Packet4f& a) {
+  float32x2_t a_lo, a_hi;
+  Packet4f a_r64;
+
+  a_r64 = vrev64q_f32(a);
+  a_lo = vget_low_f32(a_r64);
+  a_hi = vget_high_f32(a_r64);
+  return vcombine_f32(a_hi, a_lo);
+}
+template<> EIGEN_STRONG_INLINE Packet4i preverse(const Packet4i& a) {
+  int32x2_t a_lo, a_hi;
+  Packet4i a_r64;
+
+  a_r64 = vrev64q_s32(a);
+  a_lo = vget_low_s32(a_r64);
+  a_hi = vget_high_s32(a_r64);
+  return vcombine_s32(a_hi, a_lo);
+}
+template<> EIGEN_STRONG_INLINE Packet4f pabs(const Packet4f& a) { return vabsq_f32(a); }
+template<> EIGEN_STRONG_INLINE Packet4i pabs(const Packet4i& a) { return vabsq_s32(a); }
+
+template<> EIGEN_STRONG_INLINE float predux<Packet4f>(const Packet4f& a)
+{
+  float32x2_t a_lo, a_hi, sum;
+
+  a_lo = vget_low_f32(a);
+  a_hi = vget_high_f32(a);
+  sum = vpadd_f32(a_lo, a_hi);
+  sum = vpadd_f32(sum, sum);
+  return vget_lane_f32(sum, 0);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4f preduxp<Packet4f>(const Packet4f* vecs)
+{
+  float32x4x2_t vtrn1, vtrn2, res1, res2;
+  Packet4f sum1, sum2, sum;
+
+  // NEON zip performs interleaving of the supplied vectors.
+  // We perform two interleaves in a row to acquire the transposed vector
+  vtrn1 = vzipq_f32(vecs[0], vecs[2]);
+  vtrn2 = vzipq_f32(vecs[1], vecs[3]);
+  res1 = vzipq_f32(vtrn1.val[0], vtrn2.val[0]);
+  res2 = vzipq_f32(vtrn1.val[1], vtrn2.val[1]);
+
+  // Do the addition of the resulting vectors
+  sum1 = vaddq_f32(res1.val[0], res1.val[1]);
+  sum2 = vaddq_f32(res2.val[0], res2.val[1]);
+  sum = vaddq_f32(sum1, sum2);
+
+  return sum;
+}
+
+template<> EIGEN_STRONG_INLINE int predux<Packet4i>(const Packet4i& a)
+{
+  int32x2_t a_lo, a_hi, sum;
+
+  a_lo = vget_low_s32(a);
+  a_hi = vget_high_s32(a);
+  sum = vpadd_s32(a_lo, a_hi);
+  sum = vpadd_s32(sum, sum);
+  return vget_lane_s32(sum, 0);
+}
+
+template<> EIGEN_STRONG_INLINE Packet4i preduxp<Packet4i>(const Packet4i* vecs)
+{
+  int32x4x2_t vtrn1, vtrn2, res1, res2;
+  Packet4i sum1, sum2, sum;
+
+  // NEON zip performs interleaving of the supplied vectors.
+  // We perform two interleaves in a row to acquire the transposed vector
+  vtrn1 = vzipq_s32(vecs[0], vecs[2]);
+  vtrn2 = vzipq_s32(vecs[1], vecs[3]);
+  res1 = vzipq_s32(vtrn1.val[0], vtrn2.val[0]);
+  res2 = vzipq_s32(vtrn1.val[1], vtrn2.val[1]);
+
+  // Do the addition of the resulting vectors
+  sum1 = vaddq_s32(res1.val[0], res1.val[1]);
+  sum2 = vaddq_s32(res2.val[0], res2.val[1]);
+  sum = vaddq_s32(sum1, sum2);
+
+  return sum;
+}
+
+// Other reduction functions:
+// mul
+template<> EIGEN_STRONG_INLINE float predux_mul<Packet4f>(const Packet4f& a)
+{
+  float32x2_t a_lo, a_hi, prod;
+
+  // Get a_lo = |a1|a2| and a_hi = |a3|a4|
+  a_lo = vget_low_f32(a);
+  a_hi = vget_high_f32(a);
+  // Get the product of a_lo * a_hi -> |a1*a3|a2*a4|
+  prod = vmul_f32(a_lo, a_hi);
+  // Multiply prod with its swapped value |a2*a4|a1*a3|
+  prod = vmul_f32(prod, vrev64_f32(prod));
+
+  return vget_lane_f32(prod, 0);
+}
+template<> EIGEN_STRONG_INLINE int predux_mul<Packet4i>(const Packet4i& a)
+{
+  int32x2_t a_lo, a_hi, prod;
+
+  // Get a_lo = |a1|a2| and a_hi = |a3|a4|
+  a_lo = vget_low_s32(a);
+  a_hi = vget_high_s32(a);
+  // Get the product of a_lo * a_hi -> |a1*a3|a2*a4|
+  prod = vmul_s32(a_lo, a_hi);
+  // Multiply prod with its swapped value |a2*a4|a1*a3|
+  prod = vmul_s32(prod, vrev64_s32(prod));
+
+  return vget_lane_s32(prod, 0);
+}
+
+// min
+template<> EIGEN_STRONG_INLINE float predux_min<Packet4f>(const Packet4f& a)
+{
+  float32x2_t a_lo, a_hi, min;
+
+  a_lo = vget_low_f32(a);
+  a_hi = vget_high_f32(a);
+  min = vpmin_f32(a_lo, a_hi);
+  min = vpmin_f32(min, min);
+
+  return vget_lane_f32(min, 0);
+}
+
+template<> EIGEN_STRONG_INLINE int predux_min<Packet4i>(const Packet4i& a)
+{
+  int32x2_t a_lo, a_hi, min;
+
+  a_lo = vget_low_s32(a);
+  a_hi = vget_high_s32(a);
+  min = vpmin_s32(a_lo, a_hi);
+  min = vpmin_s32(min, min);
+  
+  return vget_lane_s32(min, 0);
+}
+
+// max
+template<> EIGEN_STRONG_INLINE float predux_max<Packet4f>(const Packet4f& a)
+{
+  float32x2_t a_lo, a_hi, max;
+
+  a_lo = vget_low_f32(a);
+  a_hi = vget_high_f32(a);
+  max = vpmax_f32(a_lo, a_hi);
+  max = vpmax_f32(max, max);
+
+  return vget_lane_f32(max, 0);
+}
+
+template<> EIGEN_STRONG_INLINE int predux_max<Packet4i>(const Packet4i& a)
+{
+  int32x2_t a_lo, a_hi, max;
+
+  a_lo = vget_low_s32(a);
+  a_hi = vget_high_s32(a);
+  max = vpmax_s32(a_lo, a_hi);
+  max = vpmax_s32(max, max);
+
+  return vget_lane_s32(max, 0);
+}
+
+// this PALIGN_NEON business is to work around a bug in LLVM Clang 3.0 causing incorrect compilation errors,
+// see bug 347 and this LLVM bug: http://llvm.org/bugs/show_bug.cgi?id=11074
+#define PALIGN_NEON(Offset,Type,Command) \
+template<>\
+struct palign_impl<Offset,Type>\
+{\
+    EIGEN_STRONG_INLINE static void run(Type& first, const Type& second)\
+    {\
+        if (Offset!=0)\
+            first = Command(first, second, Offset);\
+    }\
+};\
+
+PALIGN_NEON(0,Packet4f,vextq_f32)
+PALIGN_NEON(1,Packet4f,vextq_f32)
+PALIGN_NEON(2,Packet4f,vextq_f32)
+PALIGN_NEON(3,Packet4f,vextq_f32)
+PALIGN_NEON(0,Packet4i,vextq_s32)
+PALIGN_NEON(1,Packet4i,vextq_s32)
+PALIGN_NEON(2,Packet4i,vextq_s32)
+PALIGN_NEON(3,Packet4i,vextq_s32)
+    
+#undef PALIGN_NEON
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PACKET_MATH_NEON_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/NEON/Complex.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/NEON/Complex.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/arch/NEON/Complex.h	(revision 2476)
@@ -0,0 +1,253 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPLEX_NEON_H
+#define EIGEN_COMPLEX_NEON_H
+
+namespace Eigen {
+
+namespace internal {
+
+static uint32x4_t p4ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET4(0x00000000, 0x80000000, 0x00000000, 0x80000000);
+static uint32x2_t p2ui_CONJ_XOR = EIGEN_INIT_NEON_PACKET2(0x00000000, 0x80000000);
+
+//---------- float ----------
+struct Packet2cf
+{
+  EIGEN_STRONG_INLINE Packet2cf() {}
+  EIGEN_STRONG_INLINE explicit Packet2cf(const Packet4f& a) : v(a) {}
+  Packet4f  v;
+};
+
+template<> struct packet_traits<std::complex<float> >  : default_packet_traits
+{
+  typedef Packet2cf type;
+  enum {
+    Vectorizable = 1,
+    AlignedOnScalar = 1,
+    size = 2,
+
+    HasAdd    = 1,
+    HasSub    = 1,
+    HasMul    = 1,
+    HasDiv    = 1,
+    HasNegate = 1,
+    HasAbs    = 0,
+    HasAbs2   = 0,
+    HasMin    = 0,
+    HasMax    = 0,
+    HasSetLinear = 0
+  };
+};
+
+template<> struct unpacket_traits<Packet2cf> { typedef std::complex<float> type; enum {size=2}; };
+
+template<> EIGEN_STRONG_INLINE Packet2cf pset1<Packet2cf>(const std::complex<float>&  from)
+{
+  float32x2_t r64;
+  r64 = vld1_f32((float *)&from);
+
+  return Packet2cf(vcombine_f32(r64, r64));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf padd<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(padd<Packet4f>(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf psub<Packet2cf>(const Packet2cf& a, const Packet2cf& b) { return Packet2cf(psub<Packet4f>(a.v,b.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pnegate(const Packet2cf& a) { return Packet2cf(pnegate<Packet4f>(a.v)); }
+template<> EIGEN_STRONG_INLINE Packet2cf pconj(const Packet2cf& a)
+{
+  Packet4ui b = vreinterpretq_u32_f32(a.v);
+  return Packet2cf(vreinterpretq_f32_u32(veorq_u32(b, p4ui_CONJ_XOR)));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pmul<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  Packet4f v1, v2;
+
+  // Get the real values of a | a1_re | a1_re | a2_re | a2_re |
+  v1 = vcombine_f32(vdup_lane_f32(vget_low_f32(a.v), 0), vdup_lane_f32(vget_high_f32(a.v), 0));
+  // Get the real values of a | a1_im | a1_im | a2_im | a2_im |
+  v2 = vcombine_f32(vdup_lane_f32(vget_low_f32(a.v), 1), vdup_lane_f32(vget_high_f32(a.v), 1));
+  // Multiply the real a with b
+  v1 = vmulq_f32(v1, b.v);
+  // Multiply the imag a with b
+  v2 = vmulq_f32(v2, b.v);
+  // Conjugate v2 
+  v2 = vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(v2), p4ui_CONJ_XOR));
+  // Swap real/imag elements in v2.
+  v2 = vrev64q_f32(v2);
+  // Add and return the result
+  return Packet2cf(vaddq_f32(v1, v2));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pand   <Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  return Packet2cf(vreinterpretq_f32_u32(vorrq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
+}
+template<> EIGEN_STRONG_INLINE Packet2cf por    <Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  return Packet2cf(vreinterpretq_f32_u32(vorrq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
+}
+template<> EIGEN_STRONG_INLINE Packet2cf pxor   <Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  return Packet2cf(vreinterpretq_f32_u32(veorq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
+}
+template<> EIGEN_STRONG_INLINE Packet2cf pandnot<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  return Packet2cf(vreinterpretq_f32_u32(vbicq_u32(vreinterpretq_u32_f32(a.v),vreinterpretq_u32_f32(b.v))));
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pload<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_ALIGNED_LOAD return Packet2cf(pload<Packet4f>((const float*)from)); }
+template<> EIGEN_STRONG_INLINE Packet2cf ploadu<Packet2cf>(const std::complex<float>* from) { EIGEN_DEBUG_UNALIGNED_LOAD return Packet2cf(ploadu<Packet4f>((const float*)from)); }
+
+template<> EIGEN_STRONG_INLINE Packet2cf ploaddup<Packet2cf>(const std::complex<float>* from) { return pset1<Packet2cf>(*from); }
+
+template<> EIGEN_STRONG_INLINE void pstore <std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_ALIGNED_STORE pstore((float*)to, from.v); }
+template<> EIGEN_STRONG_INLINE void pstoreu<std::complex<float> >(std::complex<float> *   to, const Packet2cf& from) { EIGEN_DEBUG_UNALIGNED_STORE pstoreu((float*)to, from.v); }
+
+template<> EIGEN_STRONG_INLINE void prefetch<std::complex<float> >(const std::complex<float> *   addr) { EIGEN_ARM_PREFETCH((float *)addr); }
+
+template<> EIGEN_STRONG_INLINE std::complex<float>  pfirst<Packet2cf>(const Packet2cf& a)
+{
+  std::complex<float> EIGEN_ALIGN16 x[2];
+  vst1q_f32((float *)x, a.v);
+  return x[0];
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preverse(const Packet2cf& a)
+{
+  float32x2_t a_lo, a_hi;
+  Packet4f a_r128;
+
+  a_lo = vget_low_f32(a.v);
+  a_hi = vget_high_f32(a.v);
+  a_r128 = vcombine_f32(a_hi, a_lo);
+
+  return Packet2cf(a_r128);
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf pcplxflip<Packet2cf>(const Packet2cf& a)
+{
+  return Packet2cf(vrev64q_f32(a.v));
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux<Packet2cf>(const Packet2cf& a)
+{
+  float32x2_t a1, a2;
+  std::complex<float> s;
+
+  a1 = vget_low_f32(a.v);
+  a2 = vget_high_f32(a.v);
+  a2 = vadd_f32(a1, a2);
+  vst1_f32((float *)&s, a2);
+
+  return s;
+}
+
+template<> EIGEN_STRONG_INLINE Packet2cf preduxp<Packet2cf>(const Packet2cf* vecs)
+{
+  Packet4f sum1, sum2, sum;
+
+  // Add the first two 64-bit float32x2_t of vecs[0]
+  sum1 = vcombine_f32(vget_low_f32(vecs[0].v), vget_low_f32(vecs[1].v));
+  sum2 = vcombine_f32(vget_high_f32(vecs[0].v), vget_high_f32(vecs[1].v));
+  sum = vaddq_f32(sum1, sum2);
+
+  return Packet2cf(sum);
+}
+
+template<> EIGEN_STRONG_INLINE std::complex<float> predux_mul<Packet2cf>(const Packet2cf& a)
+{
+  float32x2_t a1, a2, v1, v2, prod;
+  std::complex<float> s;
+
+  a1 = vget_low_f32(a.v);
+  a2 = vget_high_f32(a.v);
+   // Get the real values of a | a1_re | a1_re | a2_re | a2_re |
+  v1 = vdup_lane_f32(a1, 0);
+  // Get the real values of a | a1_im | a1_im | a2_im | a2_im |
+  v2 = vdup_lane_f32(a1, 1);
+  // Multiply the real a with b
+  v1 = vmul_f32(v1, a2);
+  // Multiply the imag a with b
+  v2 = vmul_f32(v2, a2);
+  // Conjugate v2 
+  v2 = vreinterpret_f32_u32(veor_u32(vreinterpret_u32_f32(v2), p2ui_CONJ_XOR));
+  // Swap real/imag elements in v2.
+  v2 = vrev64_f32(v2);
+  // Add v1, v2
+  prod = vadd_f32(v1, v2);
+
+  vst1_f32((float *)&s, prod);
+
+  return s;
+}
+
+template<int Offset>
+struct palign_impl<Offset,Packet2cf>
+{
+  EIGEN_STRONG_INLINE static void run(Packet2cf& first, const Packet2cf& second)
+  {
+    if (Offset==1)
+    {
+      first.v = vextq_f32(first.v, second.v, 2);
+    }
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, false,true>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    return internal::pmul(a, pconj(b));
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,false>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    return internal::pmul(pconj(a), b);
+  }
+};
+
+template<> struct conj_helper<Packet2cf, Packet2cf, true,true>
+{
+  EIGEN_STRONG_INLINE Packet2cf pmadd(const Packet2cf& x, const Packet2cf& y, const Packet2cf& c) const
+  { return padd(pmul(x,y),c); }
+
+  EIGEN_STRONG_INLINE Packet2cf pmul(const Packet2cf& a, const Packet2cf& b) const
+  {
+    return pconj(internal::pmul(a, b));
+  }
+};
+
+template<> EIGEN_STRONG_INLINE Packet2cf pdiv<Packet2cf>(const Packet2cf& a, const Packet2cf& b)
+{
+  // TODO optimize it for AltiVec
+  Packet2cf res = conj_helper<Packet2cf,Packet2cf,false,true>().pmul(a,b);
+  Packet4f s, rev_s;
+
+  // this computes the norm
+  s = vmulq_f32(b.v, b.v);
+  rev_s = vrev64q_f32(s);
+
+  return Packet2cf(pdiv(res.v, vaddq_f32(s,rev_s)));
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPLEX_NEON_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Assign_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Assign_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Assign_MKL.h	(revision 2476)
@@ -0,0 +1,224 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *   MKL VML support for coefficient-wise unary Eigen expressions like a=b.sin()
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_ASSIGN_VML_H
+#define EIGEN_ASSIGN_VML_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Op> struct vml_call
+{ enum { IsSupported = 0 }; };
+
+template<typename Dst, typename Src, typename UnaryOp>
+class vml_assign_traits
+{
+  private:
+    enum {
+      DstHasDirectAccess = Dst::Flags & DirectAccessBit,
+      SrcHasDirectAccess = Src::Flags & DirectAccessBit,
+
+      StorageOrdersAgree = (int(Dst::IsRowMajor) == int(Src::IsRowMajor)),
+      InnerSize = int(Dst::IsVectorAtCompileTime) ? int(Dst::SizeAtCompileTime)
+                : int(Dst::Flags)&RowMajorBit ? int(Dst::ColsAtCompileTime)
+                : int(Dst::RowsAtCompileTime),
+      InnerMaxSize  = int(Dst::IsVectorAtCompileTime) ? int(Dst::MaxSizeAtCompileTime)
+                    : int(Dst::Flags)&RowMajorBit ? int(Dst::MaxColsAtCompileTime)
+                    : int(Dst::MaxRowsAtCompileTime),
+      MaxSizeAtCompileTime = Dst::SizeAtCompileTime,
+
+      MightEnableVml =  vml_call<UnaryOp>::IsSupported && StorageOrdersAgree && DstHasDirectAccess && SrcHasDirectAccess
+                     && Src::InnerStrideAtCompileTime==1 && Dst::InnerStrideAtCompileTime==1,
+      MightLinearize = MightEnableVml && (int(Dst::Flags) & int(Src::Flags) & LinearAccessBit),
+      VmlSize = MightLinearize ? MaxSizeAtCompileTime : InnerMaxSize,
+      LargeEnough = VmlSize==Dynamic || VmlSize>=EIGEN_MKL_VML_THRESHOLD,
+      MayEnableVml = MightEnableVml && LargeEnough,
+      MayLinearize = MayEnableVml && MightLinearize
+    };
+  public:
+    enum {
+      Traversal = MayLinearize ? LinearVectorizedTraversal
+                : MayEnableVml ? InnerVectorizedTraversal
+                : DefaultTraversal
+    };
+};
+
+template<typename Derived1, typename Derived2, typename UnaryOp, int Traversal, int Unrolling,
+         int VmlTraversal = vml_assign_traits<Derived1, Derived2, UnaryOp>::Traversal >
+struct vml_assign_impl
+  : assign_impl<Derived1, Eigen::CwiseUnaryOp<UnaryOp, Derived2>,Traversal,Unrolling,BuiltIn>
+{
+};
+
+template<typename Derived1, typename Derived2, typename UnaryOp, int Traversal, int Unrolling>
+struct vml_assign_impl<Derived1, Derived2, UnaryOp, Traversal, Unrolling, InnerVectorizedTraversal>
+{
+  typedef typename Derived1::Scalar Scalar;
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1& dst, const CwiseUnaryOp<UnaryOp, Derived2>& src)
+  {
+    // in case we want to (or have to) skip VML at runtime we can call:
+    // assign_impl<Derived1,Eigen::CwiseUnaryOp<UnaryOp, Derived2>,Traversal,Unrolling,BuiltIn>::run(dst,src);
+    const Index innerSize = dst.innerSize();
+    const Index outerSize = dst.outerSize();
+    for(Index outer = 0; outer < outerSize; ++outer) {
+      const Scalar *src_ptr = src.IsRowMajor ?  &(src.nestedExpression().coeffRef(outer,0)) :
+                                                &(src.nestedExpression().coeffRef(0, outer));
+      Scalar *dst_ptr = dst.IsRowMajor ? &(dst.coeffRef(outer,0)) : &(dst.coeffRef(0, outer));
+      vml_call<UnaryOp>::run(src.functor(), innerSize, src_ptr, dst_ptr );
+    }
+  }
+};
+
+template<typename Derived1, typename Derived2, typename UnaryOp, int Traversal, int Unrolling>
+struct vml_assign_impl<Derived1, Derived2, UnaryOp, Traversal, Unrolling, LinearVectorizedTraversal>
+{
+  static inline void run(Derived1& dst, const CwiseUnaryOp<UnaryOp, Derived2>& src)
+  {
+    // in case we want to (or have to) skip VML at runtime we can call:
+    // assign_impl<Derived1,Eigen::CwiseUnaryOp<UnaryOp, Derived2>,Traversal,Unrolling,BuiltIn>::run(dst,src);
+    vml_call<UnaryOp>::run(src.functor(), dst.size(), src.nestedExpression().data(), dst.data() );
+  }
+};
+
+// Macroses
+
+#define EIGEN_MKL_VML_SPECIALIZE_ASSIGN(TRAVERSAL,UNROLLING) \
+  template<typename Derived1, typename Derived2, typename UnaryOp> \
+  struct assign_impl<Derived1, Eigen::CwiseUnaryOp<UnaryOp, Derived2>, TRAVERSAL, UNROLLING, Specialized>  {  \
+    static inline void run(Derived1 &dst, const Eigen::CwiseUnaryOp<UnaryOp, Derived2> &src) { \
+      vml_assign_impl<Derived1,Derived2,UnaryOp,TRAVERSAL,UNROLLING>::run(dst, src); \
+    } \
+  };
+
+EIGEN_MKL_VML_SPECIALIZE_ASSIGN(DefaultTraversal,NoUnrolling)
+EIGEN_MKL_VML_SPECIALIZE_ASSIGN(DefaultTraversal,CompleteUnrolling)
+EIGEN_MKL_VML_SPECIALIZE_ASSIGN(DefaultTraversal,InnerUnrolling)
+EIGEN_MKL_VML_SPECIALIZE_ASSIGN(LinearTraversal,NoUnrolling)
+EIGEN_MKL_VML_SPECIALIZE_ASSIGN(LinearTraversal,CompleteUnrolling)
+EIGEN_MKL_VML_SPECIALIZE_ASSIGN(InnerVectorizedTraversal,NoUnrolling)
+EIGEN_MKL_VML_SPECIALIZE_ASSIGN(InnerVectorizedTraversal,CompleteUnrolling)
+EIGEN_MKL_VML_SPECIALIZE_ASSIGN(InnerVectorizedTraversal,InnerUnrolling)
+EIGEN_MKL_VML_SPECIALIZE_ASSIGN(LinearVectorizedTraversal,CompleteUnrolling)
+EIGEN_MKL_VML_SPECIALIZE_ASSIGN(LinearVectorizedTraversal,NoUnrolling)
+EIGEN_MKL_VML_SPECIALIZE_ASSIGN(SliceVectorizedTraversal,NoUnrolling)
+
+
+#if !defined (EIGEN_FAST_MATH) || (EIGEN_FAST_MATH != 1)
+#define  EIGEN_MKL_VML_MODE VML_HA
+#else
+#define  EIGEN_MKL_VML_MODE VML_LA
+#endif
+
+#define EIGEN_MKL_VML_DECLARE_UNARY_CALL(EIGENOP, VMLOP, EIGENTYPE, VMLTYPE)     \
+  template<> struct vml_call< scalar_##EIGENOP##_op<EIGENTYPE> > {               \
+    enum { IsSupported = 1 };                                                    \
+    static inline void run( const scalar_##EIGENOP##_op<EIGENTYPE>& /*func*/,        \
+                            int size, const EIGENTYPE* src, EIGENTYPE* dst) {    \
+      VMLOP(size, (const VMLTYPE*)src, (VMLTYPE*)dst);                           \
+    }                                                                            \
+  };
+
+#define EIGEN_MKL_VML_DECLARE_UNARY_CALL_LA(EIGENOP, VMLOP, EIGENTYPE, VMLTYPE)  \
+  template<> struct vml_call< scalar_##EIGENOP##_op<EIGENTYPE> > {               \
+    enum { IsSupported = 1 };                                                    \
+    static inline void run( const scalar_##EIGENOP##_op<EIGENTYPE>& /*func*/,        \
+                            int size, const EIGENTYPE* src, EIGENTYPE* dst) {    \
+      MKL_INT64 vmlMode = EIGEN_MKL_VML_MODE;                                    \
+      VMLOP(size, (const VMLTYPE*)src, (VMLTYPE*)dst, vmlMode);                  \
+    }                                                                            \
+  };
+
+#define EIGEN_MKL_VML_DECLARE_POW_CALL(EIGENOP, VMLOP, EIGENTYPE, VMLTYPE)       \
+  template<> struct vml_call< scalar_##EIGENOP##_op<EIGENTYPE> > {               \
+    enum { IsSupported = 1 };                                                    \
+    static inline void run( const scalar_##EIGENOP##_op<EIGENTYPE>& func,        \
+                          int size, const EIGENTYPE* src, EIGENTYPE* dst) {      \
+      EIGENTYPE exponent = func.m_exponent;                                      \
+      MKL_INT64 vmlMode = EIGEN_MKL_VML_MODE;                                    \
+      VMLOP(&size, (const VMLTYPE*)src, (const VMLTYPE*)&exponent,               \
+                        (VMLTYPE*)dst, &vmlMode);                                \
+    }                                                                            \
+  };
+
+#define EIGEN_MKL_VML_DECLARE_UNARY_CALLS_REAL(EIGENOP, VMLOP)                   \
+  EIGEN_MKL_VML_DECLARE_UNARY_CALL(EIGENOP, vs##VMLOP, float, float)             \
+  EIGEN_MKL_VML_DECLARE_UNARY_CALL(EIGENOP, vd##VMLOP, double, double)
+
+#define EIGEN_MKL_VML_DECLARE_UNARY_CALLS_COMPLEX(EIGENOP, VMLOP)                \
+  EIGEN_MKL_VML_DECLARE_UNARY_CALL(EIGENOP, vc##VMLOP, scomplex, MKL_Complex8)   \
+  EIGEN_MKL_VML_DECLARE_UNARY_CALL(EIGENOP, vz##VMLOP, dcomplex, MKL_Complex16)
+
+#define EIGEN_MKL_VML_DECLARE_UNARY_CALLS(EIGENOP, VMLOP)                        \
+  EIGEN_MKL_VML_DECLARE_UNARY_CALLS_REAL(EIGENOP, VMLOP)                         \
+  EIGEN_MKL_VML_DECLARE_UNARY_CALLS_COMPLEX(EIGENOP, VMLOP)
+
+
+#define EIGEN_MKL_VML_DECLARE_UNARY_CALLS_REAL_LA(EIGENOP, VMLOP)                \
+  EIGEN_MKL_VML_DECLARE_UNARY_CALL_LA(EIGENOP, vms##VMLOP, float, float)         \
+  EIGEN_MKL_VML_DECLARE_UNARY_CALL_LA(EIGENOP, vmd##VMLOP, double, double)
+
+#define EIGEN_MKL_VML_DECLARE_UNARY_CALLS_COMPLEX_LA(EIGENOP, VMLOP)             \
+  EIGEN_MKL_VML_DECLARE_UNARY_CALL_LA(EIGENOP, vmc##VMLOP, scomplex, MKL_Complex8)  \
+  EIGEN_MKL_VML_DECLARE_UNARY_CALL_LA(EIGENOP, vmz##VMLOP, dcomplex, MKL_Complex16)
+
+#define EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(EIGENOP, VMLOP)                     \
+  EIGEN_MKL_VML_DECLARE_UNARY_CALLS_REAL_LA(EIGENOP, VMLOP)                      \
+  EIGEN_MKL_VML_DECLARE_UNARY_CALLS_COMPLEX_LA(EIGENOP, VMLOP)
+
+
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(sin,  Sin)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(asin, Asin)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(cos,  Cos)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(acos, Acos)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(tan,  Tan)
+//EIGEN_MKL_VML_DECLARE_UNARY_CALLS(abs,  Abs)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(exp,  Exp)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(log,  Ln)
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_LA(sqrt, Sqrt)
+
+EIGEN_MKL_VML_DECLARE_UNARY_CALLS_REAL(square, Sqr)
+
+// The vm*powx functions are not avaibale in the windows version of MKL.
+#ifndef _WIN32
+EIGEN_MKL_VML_DECLARE_POW_CALL(pow, vmspowx_, float, float)
+EIGEN_MKL_VML_DECLARE_POW_CALL(pow, vmdpowx_, double, double)
+EIGEN_MKL_VML_DECLARE_POW_CALL(pow, vmcpowx_, scomplex, MKL_Complex8)
+EIGEN_MKL_VML_DECLARE_POW_CALL(pow, vmzpowx_, dcomplex, MKL_Complex16)
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_ASSIGN_VML_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/BooleanRedux.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/BooleanRedux.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/BooleanRedux.h	(revision 2476)
@@ -0,0 +1,154 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ALLANDANY_H
+#define EIGEN_ALLANDANY_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Derived, int UnrollCount>
+struct all_unroller
+{
+  enum {
+    col = (UnrollCount-1) / Derived::RowsAtCompileTime,
+    row = (UnrollCount-1) % Derived::RowsAtCompileTime
+  };
+
+  static inline bool run(const Derived &mat)
+  {
+    return all_unroller<Derived, UnrollCount-1>::run(mat) && mat.coeff(row, col);
+  }
+};
+
+template<typename Derived>
+struct all_unroller<Derived, 0>
+{
+  static inline bool run(const Derived &/*mat*/) { return true; }
+};
+
+template<typename Derived>
+struct all_unroller<Derived, Dynamic>
+{
+  static inline bool run(const Derived &) { return false; }
+};
+
+template<typename Derived, int UnrollCount>
+struct any_unroller
+{
+  enum {
+    col = (UnrollCount-1) / Derived::RowsAtCompileTime,
+    row = (UnrollCount-1) % Derived::RowsAtCompileTime
+  };
+
+  static inline bool run(const Derived &mat)
+  {
+    return any_unroller<Derived, UnrollCount-1>::run(mat) || mat.coeff(row, col);
+  }
+};
+
+template<typename Derived>
+struct any_unroller<Derived, 0>
+{
+  static inline bool run(const Derived & /*mat*/) { return false; }
+};
+
+template<typename Derived>
+struct any_unroller<Derived, Dynamic>
+{
+  static inline bool run(const Derived &) { return false; }
+};
+
+} // end namespace internal
+
+/** \returns true if all coefficients are true
+  *
+  * Example: \include MatrixBase_all.cpp
+  * Output: \verbinclude MatrixBase_all.out
+  *
+  * \sa any(), Cwise::operator<()
+  */
+template<typename Derived>
+inline bool DenseBase<Derived>::all() const
+{
+  enum {
+    unroll = SizeAtCompileTime != Dynamic
+          && CoeffReadCost != Dynamic
+          && NumTraits<Scalar>::AddCost != Dynamic
+          && SizeAtCompileTime * (CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
+  };
+  if(unroll)
+    return internal::all_unroller<Derived, unroll ? int(SizeAtCompileTime) : Dynamic>::run(derived());
+  else
+  {
+    for(Index j = 0; j < cols(); ++j)
+      for(Index i = 0; i < rows(); ++i)
+        if (!coeff(i, j)) return false;
+    return true;
+  }
+}
+
+/** \returns true if at least one coefficient is true
+  *
+  * \sa all()
+  */
+template<typename Derived>
+inline bool DenseBase<Derived>::any() const
+{
+  enum {
+    unroll = SizeAtCompileTime != Dynamic
+          && CoeffReadCost != Dynamic
+          && NumTraits<Scalar>::AddCost != Dynamic
+          && SizeAtCompileTime * (CoeffReadCost + NumTraits<Scalar>::AddCost) <= EIGEN_UNROLLING_LIMIT
+  };
+  if(unroll)
+    return internal::any_unroller<Derived, unroll ? int(SizeAtCompileTime) : Dynamic>::run(derived());
+  else
+  {
+    for(Index j = 0; j < cols(); ++j)
+      for(Index i = 0; i < rows(); ++i)
+        if (coeff(i, j)) return true;
+    return false;
+  }
+}
+
+/** \returns the number of coefficients which evaluate to true
+  *
+  * \sa all(), any()
+  */
+template<typename Derived>
+inline typename DenseBase<Derived>::Index DenseBase<Derived>::count() const
+{
+  return derived().template cast<bool>().template cast<Index>().sum();
+}
+
+/** \returns true is \c *this contains at least one Not A Number (NaN).
+  *
+  * \sa allFinite()
+  */
+template<typename Derived>
+inline bool DenseBase<Derived>::hasNaN() const
+{
+  return !((derived().array()==derived().array()).all());
+}
+
+/** \returns true if \c *this contains only finite numbers, i.e., no NaN and no +/-INF values.
+  *
+  * \sa hasNaN()
+  */
+template<typename Derived>
+inline bool DenseBase<Derived>::allFinite() const
+{
+  return !((derived()-derived()).hasNaN());
+}
+    
+} // end namespace Eigen
+
+#endif // EIGEN_ALLANDANY_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Fuzzy.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Fuzzy.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Fuzzy.h	(revision 2476)
@@ -0,0 +1,150 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FUZZY_H
+#define EIGEN_FUZZY_H
+
+namespace Eigen { 
+
+namespace internal
+{
+
+template<typename Derived, typename OtherDerived, bool is_integer = NumTraits<typename Derived::Scalar>::IsInteger>
+struct isApprox_selector
+{
+  static bool run(const Derived& x, const OtherDerived& y, const typename Derived::RealScalar& prec)
+  {
+    using std::min;
+    typename internal::nested<Derived,2>::type nested(x);
+    typename internal::nested<OtherDerived,2>::type otherNested(y);
+    return (nested - otherNested).cwiseAbs2().sum() <= prec * prec * (min)(nested.cwiseAbs2().sum(), otherNested.cwiseAbs2().sum());
+  }
+};
+
+template<typename Derived, typename OtherDerived>
+struct isApprox_selector<Derived, OtherDerived, true>
+{
+  static bool run(const Derived& x, const OtherDerived& y, const typename Derived::RealScalar&)
+  {
+    return x.matrix() == y.matrix();
+  }
+};
+
+template<typename Derived, typename OtherDerived, bool is_integer = NumTraits<typename Derived::Scalar>::IsInteger>
+struct isMuchSmallerThan_object_selector
+{
+  static bool run(const Derived& x, const OtherDerived& y, const typename Derived::RealScalar& prec)
+  {
+    return x.cwiseAbs2().sum() <= numext::abs2(prec) * y.cwiseAbs2().sum();
+  }
+};
+
+template<typename Derived, typename OtherDerived>
+struct isMuchSmallerThan_object_selector<Derived, OtherDerived, true>
+{
+  static bool run(const Derived& x, const OtherDerived&, const typename Derived::RealScalar&)
+  {
+    return x.matrix() == Derived::Zero(x.rows(), x.cols()).matrix();
+  }
+};
+
+template<typename Derived, bool is_integer = NumTraits<typename Derived::Scalar>::IsInteger>
+struct isMuchSmallerThan_scalar_selector
+{
+  static bool run(const Derived& x, const typename Derived::RealScalar& y, const typename Derived::RealScalar& prec)
+  {
+    return x.cwiseAbs2().sum() <= numext::abs2(prec * y);
+  }
+};
+
+template<typename Derived>
+struct isMuchSmallerThan_scalar_selector<Derived, true>
+{
+  static bool run(const Derived& x, const typename Derived::RealScalar&, const typename Derived::RealScalar&)
+  {
+    return x.matrix() == Derived::Zero(x.rows(), x.cols()).matrix();
+  }
+};
+
+} // end namespace internal
+
+
+/** \returns \c true if \c *this is approximately equal to \a other, within the precision
+  * determined by \a prec.
+  *
+  * \note The fuzzy compares are done multiplicatively. Two vectors \f$ v \f$ and \f$ w \f$
+  * are considered to be approximately equal within precision \f$ p \f$ if
+  * \f[ \Vert v - w \Vert \leqslant p\,\min(\Vert v\Vert, \Vert w\Vert). \f]
+  * For matrices, the comparison is done using the Hilbert-Schmidt norm (aka Frobenius norm
+  * L2 norm).
+  *
+  * \note Because of the multiplicativeness of this comparison, one can't use this function
+  * to check whether \c *this is approximately equal to the zero matrix or vector.
+  * Indeed, \c isApprox(zero) returns false unless \c *this itself is exactly the zero matrix
+  * or vector. If you want to test whether \c *this is zero, use internal::isMuchSmallerThan(const
+  * RealScalar&, RealScalar) instead.
+  *
+  * \sa internal::isMuchSmallerThan(const RealScalar&, RealScalar) const
+  */
+template<typename Derived>
+template<typename OtherDerived>
+bool DenseBase<Derived>::isApprox(
+  const DenseBase<OtherDerived>& other,
+  const RealScalar& prec
+) const
+{
+  return internal::isApprox_selector<Derived, OtherDerived>::run(derived(), other.derived(), prec);
+}
+
+/** \returns \c true if the norm of \c *this is much smaller than \a other,
+  * within the precision determined by \a prec.
+  *
+  * \note The fuzzy compares are done multiplicatively. A vector \f$ v \f$ is
+  * considered to be much smaller than \f$ x \f$ within precision \f$ p \f$ if
+  * \f[ \Vert v \Vert \leqslant p\,\vert x\vert. \f]
+  *
+  * For matrices, the comparison is done using the Hilbert-Schmidt norm. For this reason,
+  * the value of the reference scalar \a other should come from the Hilbert-Schmidt norm
+  * of a reference matrix of same dimensions.
+  *
+  * \sa isApprox(), isMuchSmallerThan(const DenseBase<OtherDerived>&, RealScalar) const
+  */
+template<typename Derived>
+bool DenseBase<Derived>::isMuchSmallerThan(
+  const typename NumTraits<Scalar>::Real& other,
+  const RealScalar& prec
+) const
+{
+  return internal::isMuchSmallerThan_scalar_selector<Derived>::run(derived(), other, prec);
+}
+
+/** \returns \c true if the norm of \c *this is much smaller than the norm of \a other,
+  * within the precision determined by \a prec.
+  *
+  * \note The fuzzy compares are done multiplicatively. A vector \f$ v \f$ is
+  * considered to be much smaller than a vector \f$ w \f$ within precision \f$ p \f$ if
+  * \f[ \Vert v \Vert \leqslant p\,\Vert w\Vert. \f]
+  * For matrices, the comparison is done using the Hilbert-Schmidt norm.
+  *
+  * \sa isApprox(), isMuchSmallerThan(const RealScalar&, RealScalar) const
+  */
+template<typename Derived>
+template<typename OtherDerived>
+bool DenseBase<Derived>::isMuchSmallerThan(
+  const DenseBase<OtherDerived>& other,
+  const RealScalar& prec
+) const
+{
+  return internal::isMuchSmallerThan_object_selector<Derived, OtherDerived>::run(derived(), other.derived(), prec);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_FUZZY_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Redux.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Redux.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Redux.h	(revision 2476)
@@ -0,0 +1,409 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_REDUX_H
+#define EIGEN_REDUX_H
+
+namespace Eigen { 
+
+namespace internal {
+
+// TODO
+//  * implement other kind of vectorization
+//  * factorize code
+
+/***************************************************************************
+* Part 1 : the logic deciding a strategy for vectorization and unrolling
+***************************************************************************/
+
+template<typename Func, typename Derived>
+struct redux_traits
+{
+public:
+  enum {
+    PacketSize = packet_traits<typename Derived::Scalar>::size,
+    InnerMaxSize = int(Derived::IsRowMajor)
+                 ? Derived::MaxColsAtCompileTime
+                 : Derived::MaxRowsAtCompileTime
+  };
+
+  enum {
+    MightVectorize = (int(Derived::Flags)&ActualPacketAccessBit)
+                  && (functor_traits<Func>::PacketAccess),
+    MayLinearVectorize = MightVectorize && (int(Derived::Flags)&LinearAccessBit),
+    MaySliceVectorize  = MightVectorize && int(InnerMaxSize)>=3*PacketSize
+  };
+
+public:
+  enum {
+    Traversal = int(MayLinearVectorize) ? int(LinearVectorizedTraversal)
+              : int(MaySliceVectorize)  ? int(SliceVectorizedTraversal)
+                                        : int(DefaultTraversal)
+  };
+
+public:
+  enum {
+    Cost = (  Derived::SizeAtCompileTime == Dynamic
+           || Derived::CoeffReadCost == Dynamic
+           || (Derived::SizeAtCompileTime!=1 && functor_traits<Func>::Cost == Dynamic)
+           ) ? Dynamic
+           : Derived::SizeAtCompileTime * Derived::CoeffReadCost
+               + (Derived::SizeAtCompileTime-1) * functor_traits<Func>::Cost,
+    UnrollingLimit = EIGEN_UNROLLING_LIMIT * (int(Traversal) == int(DefaultTraversal) ? 1 : int(PacketSize))
+  };
+
+public:
+  enum {
+    Unrolling = Cost != Dynamic && Cost <= UnrollingLimit
+              ? CompleteUnrolling
+              : NoUnrolling
+  };
+};
+
+/***************************************************************************
+* Part 2 : unrollers
+***************************************************************************/
+
+/*** no vectorization ***/
+
+template<typename Func, typename Derived, int Start, int Length>
+struct redux_novec_unroller
+{
+  enum {
+    HalfLength = Length/2
+  };
+
+  typedef typename Derived::Scalar Scalar;
+
+  static EIGEN_STRONG_INLINE Scalar run(const Derived &mat, const Func& func)
+  {
+    return func(redux_novec_unroller<Func, Derived, Start, HalfLength>::run(mat,func),
+                redux_novec_unroller<Func, Derived, Start+HalfLength, Length-HalfLength>::run(mat,func));
+  }
+};
+
+template<typename Func, typename Derived, int Start>
+struct redux_novec_unroller<Func, Derived, Start, 1>
+{
+  enum {
+    outer = Start / Derived::InnerSizeAtCompileTime,
+    inner = Start % Derived::InnerSizeAtCompileTime
+  };
+
+  typedef typename Derived::Scalar Scalar;
+
+  static EIGEN_STRONG_INLINE Scalar run(const Derived &mat, const Func&)
+  {
+    return mat.coeffByOuterInner(outer, inner);
+  }
+};
+
+// This is actually dead code and will never be called. It is required
+// to prevent false warnings regarding failed inlining though
+// for 0 length run() will never be called at all.
+template<typename Func, typename Derived, int Start>
+struct redux_novec_unroller<Func, Derived, Start, 0>
+{
+  typedef typename Derived::Scalar Scalar;
+  static EIGEN_STRONG_INLINE Scalar run(const Derived&, const Func&) { return Scalar(); }
+};
+
+/*** vectorization ***/
+
+template<typename Func, typename Derived, int Start, int Length>
+struct redux_vec_unroller
+{
+  enum {
+    PacketSize = packet_traits<typename Derived::Scalar>::size,
+    HalfLength = Length/2
+  };
+
+  typedef typename Derived::Scalar Scalar;
+  typedef typename packet_traits<Scalar>::type PacketScalar;
+
+  static EIGEN_STRONG_INLINE PacketScalar run(const Derived &mat, const Func& func)
+  {
+    return func.packetOp(
+            redux_vec_unroller<Func, Derived, Start, HalfLength>::run(mat,func),
+            redux_vec_unroller<Func, Derived, Start+HalfLength, Length-HalfLength>::run(mat,func) );
+  }
+};
+
+template<typename Func, typename Derived, int Start>
+struct redux_vec_unroller<Func, Derived, Start, 1>
+{
+  enum {
+    index = Start * packet_traits<typename Derived::Scalar>::size,
+    outer = index / int(Derived::InnerSizeAtCompileTime),
+    inner = index % int(Derived::InnerSizeAtCompileTime),
+    alignment = (Derived::Flags & AlignedBit) ? Aligned : Unaligned
+  };
+
+  typedef typename Derived::Scalar Scalar;
+  typedef typename packet_traits<Scalar>::type PacketScalar;
+
+  static EIGEN_STRONG_INLINE PacketScalar run(const Derived &mat, const Func&)
+  {
+    return mat.template packetByOuterInner<alignment>(outer, inner);
+  }
+};
+
+/***************************************************************************
+* Part 3 : implementation of all cases
+***************************************************************************/
+
+template<typename Func, typename Derived,
+         int Traversal = redux_traits<Func, Derived>::Traversal,
+         int Unrolling = redux_traits<Func, Derived>::Unrolling
+>
+struct redux_impl;
+
+template<typename Func, typename Derived>
+struct redux_impl<Func, Derived, DefaultTraversal, NoUnrolling>
+{
+  typedef typename Derived::Scalar Scalar;
+  typedef typename Derived::Index Index;
+  static EIGEN_STRONG_INLINE Scalar run(const Derived& mat, const Func& func)
+  {
+    eigen_assert(mat.rows()>0 && mat.cols()>0 && "you are using an empty matrix");
+    Scalar res;
+    res = mat.coeffByOuterInner(0, 0);
+    for(Index i = 1; i < mat.innerSize(); ++i)
+      res = func(res, mat.coeffByOuterInner(0, i));
+    for(Index i = 1; i < mat.outerSize(); ++i)
+      for(Index j = 0; j < mat.innerSize(); ++j)
+        res = func(res, mat.coeffByOuterInner(i, j));
+    return res;
+  }
+};
+
+template<typename Func, typename Derived>
+struct redux_impl<Func,Derived, DefaultTraversal, CompleteUnrolling>
+  : public redux_novec_unroller<Func,Derived, 0, Derived::SizeAtCompileTime>
+{};
+
+template<typename Func, typename Derived>
+struct redux_impl<Func, Derived, LinearVectorizedTraversal, NoUnrolling>
+{
+  typedef typename Derived::Scalar Scalar;
+  typedef typename packet_traits<Scalar>::type PacketScalar;
+  typedef typename Derived::Index Index;
+
+  static Scalar run(const Derived& mat, const Func& func)
+  {
+    const Index size = mat.size();
+    eigen_assert(size && "you are using an empty matrix");
+    const Index packetSize = packet_traits<Scalar>::size;
+    const Index alignedStart = internal::first_aligned(mat);
+    enum {
+      alignment = bool(Derived::Flags & DirectAccessBit) || bool(Derived::Flags & AlignedBit)
+                ? Aligned : Unaligned
+    };
+    const Index alignedSize2 = ((size-alignedStart)/(2*packetSize))*(2*packetSize);
+    const Index alignedSize = ((size-alignedStart)/(packetSize))*(packetSize);
+    const Index alignedEnd2 = alignedStart + alignedSize2;
+    const Index alignedEnd  = alignedStart + alignedSize;
+    Scalar res;
+    if(alignedSize)
+    {
+      PacketScalar packet_res0 = mat.template packet<alignment>(alignedStart);
+      if(alignedSize>packetSize) // we have at least two packets to partly unroll the loop
+      {
+        PacketScalar packet_res1 = mat.template packet<alignment>(alignedStart+packetSize);
+        for(Index index = alignedStart + 2*packetSize; index < alignedEnd2; index += 2*packetSize)
+        {
+          packet_res0 = func.packetOp(packet_res0, mat.template packet<alignment>(index));
+          packet_res1 = func.packetOp(packet_res1, mat.template packet<alignment>(index+packetSize));
+        }
+
+        packet_res0 = func.packetOp(packet_res0,packet_res1);
+        if(alignedEnd>alignedEnd2)
+          packet_res0 = func.packetOp(packet_res0, mat.template packet<alignment>(alignedEnd2));
+      }
+      res = func.predux(packet_res0);
+
+      for(Index index = 0; index < alignedStart; ++index)
+        res = func(res,mat.coeff(index));
+
+      for(Index index = alignedEnd; index < size; ++index)
+        res = func(res,mat.coeff(index));
+    }
+    else // too small to vectorize anything.
+         // since this is dynamic-size hence inefficient anyway for such small sizes, don't try to optimize.
+    {
+      res = mat.coeff(0);
+      for(Index index = 1; index < size; ++index)
+        res = func(res,mat.coeff(index));
+    }
+
+    return res;
+  }
+};
+
+// NOTE: for SliceVectorizedTraversal we simply bypass unrolling
+template<typename Func, typename Derived, int Unrolling>
+struct redux_impl<Func, Derived, SliceVectorizedTraversal, Unrolling>
+{
+  typedef typename Derived::Scalar Scalar;
+  typedef typename packet_traits<Scalar>::type PacketScalar;
+  typedef typename Derived::Index Index;
+
+  static Scalar run(const Derived& mat, const Func& func)
+  {
+    eigen_assert(mat.rows()>0 && mat.cols()>0 && "you are using an empty matrix");
+    const Index innerSize = mat.innerSize();
+    const Index outerSize = mat.outerSize();
+    enum {
+      packetSize = packet_traits<Scalar>::size
+    };
+    const Index packetedInnerSize = ((innerSize)/packetSize)*packetSize;
+    Scalar res;
+    if(packetedInnerSize)
+    {
+      PacketScalar packet_res = mat.template packet<Unaligned>(0,0);
+      for(Index j=0; j<outerSize; ++j)
+        for(Index i=(j==0?packetSize:0); i<packetedInnerSize; i+=Index(packetSize))
+          packet_res = func.packetOp(packet_res, mat.template packetByOuterInner<Unaligned>(j,i));
+
+      res = func.predux(packet_res);
+      for(Index j=0; j<outerSize; ++j)
+        for(Index i=packetedInnerSize; i<innerSize; ++i)
+          res = func(res, mat.coeffByOuterInner(j,i));
+    }
+    else // too small to vectorize anything.
+         // since this is dynamic-size hence inefficient anyway for such small sizes, don't try to optimize.
+    {
+      res = redux_impl<Func, Derived, DefaultTraversal, NoUnrolling>::run(mat, func);
+    }
+
+    return res;
+  }
+};
+
+template<typename Func, typename Derived>
+struct redux_impl<Func, Derived, LinearVectorizedTraversal, CompleteUnrolling>
+{
+  typedef typename Derived::Scalar Scalar;
+  typedef typename packet_traits<Scalar>::type PacketScalar;
+  enum {
+    PacketSize = packet_traits<Scalar>::size,
+    Size = Derived::SizeAtCompileTime,
+    VectorizedSize = (Size / PacketSize) * PacketSize
+  };
+  static EIGEN_STRONG_INLINE Scalar run(const Derived& mat, const Func& func)
+  {
+    eigen_assert(mat.rows()>0 && mat.cols()>0 && "you are using an empty matrix");
+    Scalar res = func.predux(redux_vec_unroller<Func, Derived, 0, Size / PacketSize>::run(mat,func));
+    if (VectorizedSize != Size)
+      res = func(res,redux_novec_unroller<Func, Derived, VectorizedSize, Size-VectorizedSize>::run(mat,func));
+    return res;
+  }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Part 4 : public API
+***************************************************************************/
+
+
+/** \returns the result of a full redux operation on the whole matrix or vector using \a func
+  *
+  * The template parameter \a BinaryOp is the type of the functor \a func which must be
+  * an associative operator. Both current STL and TR1 functor styles are handled.
+  *
+  * \sa DenseBase::sum(), DenseBase::minCoeff(), DenseBase::maxCoeff(), MatrixBase::colwise(), MatrixBase::rowwise()
+  */
+template<typename Derived>
+template<typename Func>
+EIGEN_STRONG_INLINE typename internal::result_of<Func(typename internal::traits<Derived>::Scalar)>::type
+DenseBase<Derived>::redux(const Func& func) const
+{
+  typedef typename internal::remove_all<typename Derived::Nested>::type ThisNested;
+  return internal::redux_impl<Func, ThisNested>
+            ::run(derived(), func);
+}
+
+/** \returns the minimum of all coefficients of \c *this.
+  * \warning the result is undefined if \c *this contains NaN.
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::minCoeff() const
+{
+  return this->redux(Eigen::internal::scalar_min_op<Scalar>());
+}
+
+/** \returns the maximum of all coefficients of \c *this.
+  * \warning the result is undefined if \c *this contains NaN.
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::maxCoeff() const
+{
+  return this->redux(Eigen::internal::scalar_max_op<Scalar>());
+}
+
+/** \returns the sum of all coefficients of *this
+  *
+  * \sa trace(), prod(), mean()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::sum() const
+{
+  if(SizeAtCompileTime==0 || (SizeAtCompileTime==Dynamic && size()==0))
+    return Scalar(0);
+  return this->redux(Eigen::internal::scalar_sum_op<Scalar>());
+}
+
+/** \returns the mean of all coefficients of *this
+*
+* \sa trace(), prod(), sum()
+*/
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::mean() const
+{
+  return Scalar(this->redux(Eigen::internal::scalar_sum_op<Scalar>())) / Scalar(this->size());
+}
+
+/** \returns the product of all coefficients of *this
+  *
+  * Example: \include MatrixBase_prod.cpp
+  * Output: \verbinclude MatrixBase_prod.out
+  *
+  * \sa sum(), mean(), trace()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::prod() const
+{
+  if(SizeAtCompileTime==0 || (SizeAtCompileTime==Dynamic && size()==0))
+    return Scalar(1);
+  return this->redux(Eigen::internal::scalar_product_op<Scalar>());
+}
+
+/** \returns the trace of \c *this, i.e. the sum of the coefficients on the main diagonal.
+  *
+  * \c *this can be any matrix, not necessarily square.
+  *
+  * \sa diagonal(), sum()
+  */
+template<typename Derived>
+EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
+MatrixBase<Derived>::trace() const
+{
+  return derived().diagonal().sum();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_REDUX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CwiseUnaryOp.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CwiseUnaryOp.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/CwiseUnaryOp.h	(revision 2476)
@@ -0,0 +1,126 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CWISE_UNARY_OP_H
+#define EIGEN_CWISE_UNARY_OP_H
+
+namespace Eigen { 
+
+/** \class CwiseUnaryOp
+  * \ingroup Core_Module
+  *
+  * \brief Generic expression where a coefficient-wise unary operator is applied to an expression
+  *
+  * \param UnaryOp template functor implementing the operator
+  * \param XprType the type of the expression to which we are applying the unary operator
+  *
+  * This class represents an expression where a unary operator is applied to an expression.
+  * It is the return type of all operations taking exactly 1 input expression, regardless of the
+  * presence of other inputs such as scalars. For example, the operator* in the expression 3*matrix
+  * is considered unary, because only the right-hand side is an expression, and its
+  * return type is a specialization of CwiseUnaryOp.
+  *
+  * Most of the time, this is the only way that it is used, so you typically don't have to name
+  * CwiseUnaryOp types explicitly.
+  *
+  * \sa MatrixBase::unaryExpr(const CustomUnaryOp &) const, class CwiseBinaryOp, class CwiseNullaryOp
+  */
+
+namespace internal {
+template<typename UnaryOp, typename XprType>
+struct traits<CwiseUnaryOp<UnaryOp, XprType> >
+ : traits<XprType>
+{
+  typedef typename result_of<
+                     UnaryOp(typename XprType::Scalar)
+                   >::type Scalar;
+  typedef typename XprType::Nested XprTypeNested;
+  typedef typename remove_reference<XprTypeNested>::type _XprTypeNested;
+  enum {
+    Flags = _XprTypeNested::Flags & (
+      HereditaryBits | LinearAccessBit | AlignedBit
+      | (functor_traits<UnaryOp>::PacketAccess ? PacketAccessBit : 0)),
+    CoeffReadCost = EIGEN_ADD_COST(_XprTypeNested::CoeffReadCost, functor_traits<UnaryOp>::Cost)
+  };
+};
+}
+
+template<typename UnaryOp, typename XprType, typename StorageKind>
+class CwiseUnaryOpImpl;
+
+template<typename UnaryOp, typename XprType>
+class CwiseUnaryOp : internal::no_assignment_operator,
+  public CwiseUnaryOpImpl<UnaryOp, XprType, typename internal::traits<XprType>::StorageKind>
+{
+  public:
+
+    typedef typename CwiseUnaryOpImpl<UnaryOp, XprType,typename internal::traits<XprType>::StorageKind>::Base Base;
+    EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseUnaryOp)
+
+    inline CwiseUnaryOp(const XprType& xpr, const UnaryOp& func = UnaryOp())
+      : m_xpr(xpr), m_functor(func) {}
+
+    EIGEN_STRONG_INLINE Index rows() const { return m_xpr.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return m_xpr.cols(); }
+
+    /** \returns the functor representing the unary operation */
+    const UnaryOp& functor() const { return m_functor; }
+
+    /** \returns the nested expression */
+    const typename internal::remove_all<typename XprType::Nested>::type&
+    nestedExpression() const { return m_xpr; }
+
+    /** \returns the nested expression */
+    typename internal::remove_all<typename XprType::Nested>::type&
+    nestedExpression() { return m_xpr.const_cast_derived(); }
+
+  protected:
+    typename XprType::Nested m_xpr;
+    const UnaryOp m_functor;
+};
+
+// This is the generic implementation for dense storage.
+// It can be used for any expression types implementing the dense concept.
+template<typename UnaryOp, typename XprType>
+class CwiseUnaryOpImpl<UnaryOp,XprType,Dense>
+  : public internal::dense_xpr_base<CwiseUnaryOp<UnaryOp, XprType> >::type
+{
+  public:
+
+    typedef CwiseUnaryOp<UnaryOp, XprType> Derived;
+    typedef typename internal::dense_xpr_base<CwiseUnaryOp<UnaryOp, XprType> >::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index rowId, Index colId) const
+    {
+      return derived().functor()(derived().nestedExpression().coeff(rowId, colId));
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index rowId, Index colId) const
+    {
+      return derived().functor().packetOp(derived().nestedExpression().template packet<LoadMode>(rowId, colId));
+    }
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index index) const
+    {
+      return derived().functor()(derived().nestedExpression().coeff(index));
+    }
+
+    template<int LoadMode>
+    EIGEN_STRONG_INLINE PacketScalar packet(Index index) const
+    {
+      return derived().functor().packetOp(derived().nestedExpression().template packet<LoadMode>(index));
+    }
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_CWISE_UNARY_OP_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/VectorwiseOp.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/VectorwiseOp.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/VectorwiseOp.h	(revision 2476)
@@ -0,0 +1,642 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARTIAL_REDUX_H
+#define EIGEN_PARTIAL_REDUX_H
+
+namespace Eigen { 
+
+/** \class PartialReduxExpr
+  * \ingroup Core_Module
+  *
+  * \brief Generic expression of a partially reduxed matrix
+  *
+  * \tparam MatrixType the type of the matrix we are applying the redux operation
+  * \tparam MemberOp type of the member functor
+  * \tparam Direction indicates the direction of the redux (#Vertical or #Horizontal)
+  *
+  * This class represents an expression of a partial redux operator of a matrix.
+  * It is the return type of some VectorwiseOp functions,
+  * and most of the time this is the only way it is used.
+  *
+  * \sa class VectorwiseOp
+  */
+
+template< typename MatrixType, typename MemberOp, int Direction>
+class PartialReduxExpr;
+
+namespace internal {
+template<typename MatrixType, typename MemberOp, int Direction>
+struct traits<PartialReduxExpr<MatrixType, MemberOp, Direction> >
+ : traits<MatrixType>
+{
+  typedef typename MemberOp::result_type Scalar;
+  typedef typename traits<MatrixType>::StorageKind StorageKind;
+  typedef typename traits<MatrixType>::XprKind XprKind;
+  typedef typename MatrixType::Scalar InputScalar;
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_all<MatrixTypeNested>::type _MatrixTypeNested;
+  enum {
+    RowsAtCompileTime = Direction==Vertical   ? 1 : MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = Direction==Horizontal ? 1 : MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = Direction==Vertical   ? 1 : MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = Direction==Horizontal ? 1 : MatrixType::MaxColsAtCompileTime,
+    Flags0 = (unsigned int)_MatrixTypeNested::Flags & HereditaryBits,
+    Flags = (Flags0 & ~RowMajorBit) | (RowsAtCompileTime == 1 ? RowMajorBit : 0),
+    TraversalSize = Direction==Vertical ? MatrixType::RowsAtCompileTime :  MatrixType::ColsAtCompileTime
+  };
+  #if EIGEN_GNUC_AT_LEAST(3,4)
+  typedef typename MemberOp::template Cost<InputScalar,int(TraversalSize)> CostOpType;
+  #else
+  typedef typename MemberOp::template Cost<InputScalar,TraversalSize> CostOpType;
+  #endif
+  enum {
+    CoeffReadCost = TraversalSize==Dynamic ? Dynamic
+                  : TraversalSize * traits<_MatrixTypeNested>::CoeffReadCost + int(CostOpType::value)
+  };
+};
+}
+
+template< typename MatrixType, typename MemberOp, int Direction>
+class PartialReduxExpr : internal::no_assignment_operator,
+  public internal::dense_xpr_base< PartialReduxExpr<MatrixType, MemberOp, Direction> >::type
+{
+  public:
+
+    typedef typename internal::dense_xpr_base<PartialReduxExpr>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(PartialReduxExpr)
+    typedef typename internal::traits<PartialReduxExpr>::MatrixTypeNested MatrixTypeNested;
+    typedef typename internal::traits<PartialReduxExpr>::_MatrixTypeNested _MatrixTypeNested;
+
+    PartialReduxExpr(const MatrixType& mat, const MemberOp& func = MemberOp())
+      : m_matrix(mat), m_functor(func) {}
+
+    Index rows() const { return (Direction==Vertical   ? 1 : m_matrix.rows()); }
+    Index cols() const { return (Direction==Horizontal ? 1 : m_matrix.cols()); }
+
+    EIGEN_STRONG_INLINE const Scalar coeff(Index i, Index j) const
+    {
+      if (Direction==Vertical)
+        return m_functor(m_matrix.col(j));
+      else
+        return m_functor(m_matrix.row(i));
+    }
+
+    const Scalar coeff(Index index) const
+    {
+      if (Direction==Vertical)
+        return m_functor(m_matrix.col(index));
+      else
+        return m_functor(m_matrix.row(index));
+    }
+
+  protected:
+    MatrixTypeNested m_matrix;
+    const MemberOp m_functor;
+};
+
+#define EIGEN_MEMBER_FUNCTOR(MEMBER,COST)                               \
+  template <typename ResultType>                                        \
+  struct member_##MEMBER {                                              \
+    EIGEN_EMPTY_STRUCT_CTOR(member_##MEMBER)                            \
+    typedef ResultType result_type;                                     \
+    template<typename Scalar, int Size> struct Cost                     \
+    { enum { value = COST }; };                                         \
+    template<typename XprType>                                          \
+    EIGEN_STRONG_INLINE ResultType operator()(const XprType& mat) const \
+    { return mat.MEMBER(); } \
+  }
+
+namespace internal {
+
+EIGEN_MEMBER_FUNCTOR(squaredNorm, Size * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(norm, (Size+5) * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(stableNorm, (Size+5) * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(blueNorm, (Size+5) * NumTraits<Scalar>::MulCost + (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(hypotNorm, (Size-1) * functor_traits<scalar_hypot_op<Scalar> >::Cost );
+EIGEN_MEMBER_FUNCTOR(sum, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(mean, (Size-1)*NumTraits<Scalar>::AddCost + NumTraits<Scalar>::MulCost);
+EIGEN_MEMBER_FUNCTOR(minCoeff, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(maxCoeff, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(all, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(any, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(count, (Size-1)*NumTraits<Scalar>::AddCost);
+EIGEN_MEMBER_FUNCTOR(prod, (Size-1)*NumTraits<Scalar>::MulCost);
+
+
+template <typename BinaryOp, typename Scalar>
+struct member_redux {
+  typedef typename result_of<
+                     BinaryOp(Scalar)
+                   >::type  result_type;
+  template<typename _Scalar, int Size> struct Cost
+  { enum { value = (Size-1) * functor_traits<BinaryOp>::Cost }; };
+  member_redux(const BinaryOp func) : m_functor(func) {}
+  template<typename Derived>
+  inline result_type operator()(const DenseBase<Derived>& mat) const
+  { return mat.redux(m_functor); }
+  const BinaryOp m_functor;
+};
+}
+
+/** \class VectorwiseOp
+  * \ingroup Core_Module
+  *
+  * \brief Pseudo expression providing partial reduction operations
+  *
+  * \param ExpressionType the type of the object on which to do partial reductions
+  * \param Direction indicates the direction of the redux (#Vertical or #Horizontal)
+  *
+  * This class represents a pseudo expression with partial reduction features.
+  * It is the return type of DenseBase::colwise() and DenseBase::rowwise()
+  * and most of the time this is the only way it is used.
+  *
+  * Example: \include MatrixBase_colwise.cpp
+  * Output: \verbinclude MatrixBase_colwise.out
+  *
+  * \sa DenseBase::colwise(), DenseBase::rowwise(), class PartialReduxExpr
+  */
+template<typename ExpressionType, int Direction> class VectorwiseOp
+{
+  public:
+
+    typedef typename ExpressionType::Scalar Scalar;
+    typedef typename ExpressionType::RealScalar RealScalar;
+    typedef typename ExpressionType::Index Index;
+    typedef typename internal::conditional<internal::must_nest_by_value<ExpressionType>::ret,
+        ExpressionType, ExpressionType&>::type ExpressionTypeNested;
+    typedef typename internal::remove_all<ExpressionTypeNested>::type ExpressionTypeNestedCleaned;
+
+    template<template<typename _Scalar> class Functor,
+                      typename Scalar=typename internal::traits<ExpressionType>::Scalar> struct ReturnType
+    {
+      typedef PartialReduxExpr<ExpressionType,
+                               Functor<Scalar>,
+                               Direction
+                              > Type;
+    };
+
+    template<typename BinaryOp> struct ReduxReturnType
+    {
+      typedef PartialReduxExpr<ExpressionType,
+                               internal::member_redux<BinaryOp,typename internal::traits<ExpressionType>::Scalar>,
+                               Direction
+                              > Type;
+    };
+
+    enum {
+      IsVertical   = (Direction==Vertical) ? 1 : 0,
+      IsHorizontal = (Direction==Horizontal) ? 1 : 0
+    };
+
+  protected:
+
+    /** \internal
+      * \returns the i-th subvector according to the \c Direction */
+    typedef typename internal::conditional<Direction==Vertical,
+                               typename ExpressionType::ColXpr,
+                               typename ExpressionType::RowXpr>::type SubVector;
+    SubVector subVector(Index i)
+    {
+      return SubVector(m_matrix.derived(),i);
+    }
+
+    /** \internal
+      * \returns the number of subvectors in the direction \c Direction */
+    Index subVectors() const
+    { return Direction==Vertical?m_matrix.cols():m_matrix.rows(); }
+
+    template<typename OtherDerived> struct ExtendedType {
+      typedef Replicate<OtherDerived,
+                        Direction==Vertical   ? 1 : ExpressionType::RowsAtCompileTime,
+                        Direction==Horizontal ? 1 : ExpressionType::ColsAtCompileTime> Type;
+    };
+
+    /** \internal
+      * Replicates a vector to match the size of \c *this */
+    template<typename OtherDerived>
+    typename ExtendedType<OtherDerived>::Type
+    extendedTo(const DenseBase<OtherDerived>& other) const
+    {
+      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(Direction==Vertical, OtherDerived::MaxColsAtCompileTime==1),
+                          YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED)
+      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(Direction==Horizontal, OtherDerived::MaxRowsAtCompileTime==1),
+                          YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED)
+      return typename ExtendedType<OtherDerived>::Type
+                      (other.derived(),
+                       Direction==Vertical   ? 1 : m_matrix.rows(),
+                       Direction==Horizontal ? 1 : m_matrix.cols());
+    }
+    
+    template<typename OtherDerived> struct OppositeExtendedType {
+      typedef Replicate<OtherDerived,
+                        Direction==Horizontal ? 1 : ExpressionType::RowsAtCompileTime,
+                        Direction==Vertical   ? 1 : ExpressionType::ColsAtCompileTime> Type;
+    };
+
+    /** \internal
+      * Replicates a vector in the opposite direction to match the size of \c *this */
+    template<typename OtherDerived>
+    typename OppositeExtendedType<OtherDerived>::Type
+    extendedToOpposite(const DenseBase<OtherDerived>& other) const
+    {
+      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(Direction==Horizontal, OtherDerived::MaxColsAtCompileTime==1),
+                          YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED)
+      EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(Direction==Vertical, OtherDerived::MaxRowsAtCompileTime==1),
+                          YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED)
+      return typename OppositeExtendedType<OtherDerived>::Type
+                      (other.derived(),
+                       Direction==Horizontal  ? 1 : m_matrix.rows(),
+                       Direction==Vertical    ? 1 : m_matrix.cols());
+    }
+
+  public:
+
+    inline VectorwiseOp(ExpressionType& matrix) : m_matrix(matrix) {}
+
+    /** \internal */
+    inline const ExpressionType& _expression() const { return m_matrix; }
+
+    /** \returns a row or column vector expression of \c *this reduxed by \a func
+      *
+      * The template parameter \a BinaryOp is the type of the functor
+      * of the custom redux operator. Note that func must be an associative operator.
+      *
+      * \sa class VectorwiseOp, DenseBase::colwise(), DenseBase::rowwise()
+      */
+    template<typename BinaryOp>
+    const typename ReduxReturnType<BinaryOp>::Type
+    redux(const BinaryOp& func = BinaryOp()) const
+    { return typename ReduxReturnType<BinaryOp>::Type(_expression(), func); }
+
+    /** \returns a row (or column) vector expression of the smallest coefficient
+      * of each column (or row) of the referenced expression.
+      * 
+      * \warning the result is undefined if \c *this contains NaN.
+      *
+      * Example: \include PartialRedux_minCoeff.cpp
+      * Output: \verbinclude PartialRedux_minCoeff.out
+      *
+      * \sa DenseBase::minCoeff() */
+    const typename ReturnType<internal::member_minCoeff>::Type minCoeff() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression of the largest coefficient
+      * of each column (or row) of the referenced expression.
+      * 
+      * \warning the result is undefined if \c *this contains NaN.
+      *
+      * Example: \include PartialRedux_maxCoeff.cpp
+      * Output: \verbinclude PartialRedux_maxCoeff.out
+      *
+      * \sa DenseBase::maxCoeff() */
+    const typename ReturnType<internal::member_maxCoeff>::Type maxCoeff() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression of the squared norm
+      * of each column (or row) of the referenced expression.
+      *
+      * Example: \include PartialRedux_squaredNorm.cpp
+      * Output: \verbinclude PartialRedux_squaredNorm.out
+      *
+      * \sa DenseBase::squaredNorm() */
+    const typename ReturnType<internal::member_squaredNorm,RealScalar>::Type squaredNorm() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression of the norm
+      * of each column (or row) of the referenced expression.
+      *
+      * Example: \include PartialRedux_norm.cpp
+      * Output: \verbinclude PartialRedux_norm.out
+      *
+      * \sa DenseBase::norm() */
+    const typename ReturnType<internal::member_norm,RealScalar>::Type norm() const
+    { return _expression(); }
+
+
+    /** \returns a row (or column) vector expression of the norm
+      * of each column (or row) of the referenced expression, using
+      * blue's algorithm.
+      *
+      * \sa DenseBase::blueNorm() */
+    const typename ReturnType<internal::member_blueNorm,RealScalar>::Type blueNorm() const
+    { return _expression(); }
+
+
+    /** \returns a row (or column) vector expression of the norm
+      * of each column (or row) of the referenced expression, avoiding
+      * underflow and overflow.
+      *
+      * \sa DenseBase::stableNorm() */
+    const typename ReturnType<internal::member_stableNorm,RealScalar>::Type stableNorm() const
+    { return _expression(); }
+
+
+    /** \returns a row (or column) vector expression of the norm
+      * of each column (or row) of the referenced expression, avoiding
+      * underflow and overflow using a concatenation of hypot() calls.
+      *
+      * \sa DenseBase::hypotNorm() */
+    const typename ReturnType<internal::member_hypotNorm,RealScalar>::Type hypotNorm() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression of the sum
+      * of each column (or row) of the referenced expression.
+      *
+      * Example: \include PartialRedux_sum.cpp
+      * Output: \verbinclude PartialRedux_sum.out
+      *
+      * \sa DenseBase::sum() */
+    const typename ReturnType<internal::member_sum>::Type sum() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression of the mean
+    * of each column (or row) of the referenced expression.
+    *
+    * \sa DenseBase::mean() */
+    const typename ReturnType<internal::member_mean>::Type mean() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression representing
+      * whether \b all coefficients of each respective column (or row) are \c true.
+      *
+      * \sa DenseBase::all() */
+    const typename ReturnType<internal::member_all>::Type all() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression representing
+      * whether \b at \b least one coefficient of each respective column (or row) is \c true.
+      *
+      * \sa DenseBase::any() */
+    const typename ReturnType<internal::member_any>::Type any() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression representing
+      * the number of \c true coefficients of each respective column (or row).
+      *
+      * Example: \include PartialRedux_count.cpp
+      * Output: \verbinclude PartialRedux_count.out
+      *
+      * \sa DenseBase::count() */
+    const PartialReduxExpr<ExpressionType, internal::member_count<Index>, Direction> count() const
+    { return _expression(); }
+
+    /** \returns a row (or column) vector expression of the product
+      * of each column (or row) of the referenced expression.
+      *
+      * Example: \include PartialRedux_prod.cpp
+      * Output: \verbinclude PartialRedux_prod.out
+      *
+      * \sa DenseBase::prod() */
+    const typename ReturnType<internal::member_prod>::Type prod() const
+    { return _expression(); }
+
+
+    /** \returns a matrix expression
+      * where each column (or row) are reversed.
+      *
+      * Example: \include Vectorwise_reverse.cpp
+      * Output: \verbinclude Vectorwise_reverse.out
+      *
+      * \sa DenseBase::reverse() */
+    const Reverse<ExpressionType, Direction> reverse() const
+    { return Reverse<ExpressionType, Direction>( _expression() ); }
+
+    typedef Replicate<ExpressionType,Direction==Vertical?Dynamic:1,Direction==Horizontal?Dynamic:1> ReplicateReturnType;
+    const ReplicateReturnType replicate(Index factor) const;
+
+    /**
+      * \return an expression of the replication of each column (or row) of \c *this
+      *
+      * Example: \include DirectionWise_replicate.cpp
+      * Output: \verbinclude DirectionWise_replicate.out
+      *
+      * \sa VectorwiseOp::replicate(Index), DenseBase::replicate(), class Replicate
+      */
+    // NOTE implemented here because of sunstudio's compilation errors
+    template<int Factor> const Replicate<ExpressionType,(IsVertical?Factor:1),(IsHorizontal?Factor:1)>
+    replicate(Index factor = Factor) const
+    {
+      return Replicate<ExpressionType,Direction==Vertical?Factor:1,Direction==Horizontal?Factor:1>
+          (_expression(),Direction==Vertical?factor:1,Direction==Horizontal?factor:1);
+    }
+
+/////////// Artithmetic operators ///////////
+
+    /** Copies the vector \a other to each subvector of \c *this */
+    template<typename OtherDerived>
+    ExpressionType& operator=(const DenseBase<OtherDerived>& other)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      //eigen_assert((m_matrix.isNull()) == (other.isNull())); FIXME
+      return const_cast<ExpressionType&>(m_matrix = extendedTo(other.derived()));
+    }
+
+    /** Adds the vector \a other to each subvector of \c *this */
+    template<typename OtherDerived>
+    ExpressionType& operator+=(const DenseBase<OtherDerived>& other)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      return const_cast<ExpressionType&>(m_matrix += extendedTo(other.derived()));
+    }
+
+    /** Substracts the vector \a other to each subvector of \c *this */
+    template<typename OtherDerived>
+    ExpressionType& operator-=(const DenseBase<OtherDerived>& other)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      return const_cast<ExpressionType&>(m_matrix -= extendedTo(other.derived()));
+    }
+
+    /** Multiples each subvector of \c *this by the vector \a other */
+    template<typename OtherDerived>
+    ExpressionType& operator*=(const DenseBase<OtherDerived>& other)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      m_matrix *= extendedTo(other.derived());
+      return const_cast<ExpressionType&>(m_matrix);
+    }
+
+    /** Divides each subvector of \c *this by the vector \a other */
+    template<typename OtherDerived>
+    ExpressionType& operator/=(const DenseBase<OtherDerived>& other)
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      m_matrix /= extendedTo(other.derived());
+      return const_cast<ExpressionType&>(m_matrix);
+    }
+
+    /** Returns the expression of the sum of the vector \a other to each subvector of \c *this */
+    template<typename OtherDerived> EIGEN_STRONG_INLINE
+    CwiseBinaryOp<internal::scalar_sum_op<Scalar>,
+                  const ExpressionTypeNestedCleaned,
+                  const typename ExtendedType<OtherDerived>::Type>
+    operator+(const DenseBase<OtherDerived>& other) const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      return m_matrix + extendedTo(other.derived());
+    }
+
+    /** Returns the expression of the difference between each subvector of \c *this and the vector \a other */
+    template<typename OtherDerived>
+    CwiseBinaryOp<internal::scalar_difference_op<Scalar>,
+                  const ExpressionTypeNestedCleaned,
+                  const typename ExtendedType<OtherDerived>::Type>
+    operator-(const DenseBase<OtherDerived>& other) const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      return m_matrix - extendedTo(other.derived());
+    }
+
+    /** Returns the expression where each subvector is the product of the vector \a other
+      * by the corresponding subvector of \c *this */
+    template<typename OtherDerived> EIGEN_STRONG_INLINE
+    CwiseBinaryOp<internal::scalar_product_op<Scalar>,
+                  const ExpressionTypeNestedCleaned,
+                  const typename ExtendedType<OtherDerived>::Type>
+    operator*(const DenseBase<OtherDerived>& other) const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      return m_matrix * extendedTo(other.derived());
+    }
+
+    /** Returns the expression where each subvector is the quotient of the corresponding
+      * subvector of \c *this by the vector \a other */
+    template<typename OtherDerived>
+    CwiseBinaryOp<internal::scalar_quotient_op<Scalar>,
+                  const ExpressionTypeNestedCleaned,
+                  const typename ExtendedType<OtherDerived>::Type>
+    operator/(const DenseBase<OtherDerived>& other) const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
+      EIGEN_STATIC_ASSERT_ARRAYXPR(ExpressionType)
+      EIGEN_STATIC_ASSERT_SAME_XPR_KIND(ExpressionType, OtherDerived)
+      return m_matrix / extendedTo(other.derived());
+    }
+    
+    /** \returns an expression where each column of row of the referenced matrix are normalized.
+      * The referenced matrix is \b not modified.
+      * \sa MatrixBase::normalized(), normalize()
+      */
+    CwiseBinaryOp<internal::scalar_quotient_op<Scalar>,
+                  const ExpressionTypeNestedCleaned,
+                  const typename OppositeExtendedType<typename ReturnType<internal::member_norm,RealScalar>::Type>::Type>
+    normalized() const { return m_matrix.cwiseQuotient(extendedToOpposite(this->norm())); }
+    
+    
+    /** Normalize in-place each row or columns of the referenced matrix.
+      * \sa MatrixBase::normalize(), normalized()
+      */
+    void normalize() {
+      m_matrix = this->normalized();
+    }
+
+/////////// Geometry module ///////////
+
+    #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
+    Homogeneous<ExpressionType,Direction> homogeneous() const;
+    #endif
+
+    typedef typename ExpressionType::PlainObject CrossReturnType;
+    template<typename OtherDerived>
+    const CrossReturnType cross(const MatrixBase<OtherDerived>& other) const;
+
+    enum {
+      HNormalized_Size = Direction==Vertical ? internal::traits<ExpressionType>::RowsAtCompileTime
+                                             : internal::traits<ExpressionType>::ColsAtCompileTime,
+      HNormalized_SizeMinusOne = HNormalized_Size==Dynamic ? Dynamic : HNormalized_Size-1
+    };
+    typedef Block<const ExpressionType,
+                  Direction==Vertical   ? int(HNormalized_SizeMinusOne)
+                                        : int(internal::traits<ExpressionType>::RowsAtCompileTime),
+                  Direction==Horizontal ? int(HNormalized_SizeMinusOne)
+                                        : int(internal::traits<ExpressionType>::ColsAtCompileTime)>
+            HNormalized_Block;
+    typedef Block<const ExpressionType,
+                  Direction==Vertical   ? 1 : int(internal::traits<ExpressionType>::RowsAtCompileTime),
+                  Direction==Horizontal ? 1 : int(internal::traits<ExpressionType>::ColsAtCompileTime)>
+            HNormalized_Factors;
+    typedef CwiseBinaryOp<internal::scalar_quotient_op<typename internal::traits<ExpressionType>::Scalar>,
+                const HNormalized_Block,
+                const Replicate<HNormalized_Factors,
+                  Direction==Vertical   ? HNormalized_SizeMinusOne : 1,
+                  Direction==Horizontal ? HNormalized_SizeMinusOne : 1> >
+            HNormalizedReturnType;
+
+    const HNormalizedReturnType hnormalized() const;
+
+  protected:
+    ExpressionTypeNested m_matrix;
+};
+
+/** \returns a VectorwiseOp wrapper of *this providing additional partial reduction operations
+  *
+  * Example: \include MatrixBase_colwise.cpp
+  * Output: \verbinclude MatrixBase_colwise.out
+  *
+  * \sa rowwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
+  */
+template<typename Derived>
+inline const typename DenseBase<Derived>::ConstColwiseReturnType
+DenseBase<Derived>::colwise() const
+{
+  return derived();
+}
+
+/** \returns a writable VectorwiseOp wrapper of *this providing additional partial reduction operations
+  *
+  * \sa rowwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
+  */
+template<typename Derived>
+inline typename DenseBase<Derived>::ColwiseReturnType
+DenseBase<Derived>::colwise()
+{
+  return derived();
+}
+
+/** \returns a VectorwiseOp wrapper of *this providing additional partial reduction operations
+  *
+  * Example: \include MatrixBase_rowwise.cpp
+  * Output: \verbinclude MatrixBase_rowwise.out
+  *
+  * \sa colwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
+  */
+template<typename Derived>
+inline const typename DenseBase<Derived>::ConstRowwiseReturnType
+DenseBase<Derived>::rowwise() const
+{
+  return derived();
+}
+
+/** \returns a writable VectorwiseOp wrapper of *this providing additional partial reduction operations
+  *
+  * \sa colwise(), class VectorwiseOp, \ref TutorialReductionsVisitorsBroadcasting
+  */
+template<typename Derived>
+inline typename DenseBase<Derived>::RowwiseReturnType
+DenseBase<Derived>::rowwise()
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARTIAL_REDUX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DenseBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DenseBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/DenseBase.h	(revision 2476)
@@ -0,0 +1,521 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2007-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DENSEBASE_H
+#define EIGEN_DENSEBASE_H
+
+namespace Eigen {
+
+namespace internal {
+  
+// The index type defined by EIGEN_DEFAULT_DENSE_INDEX_TYPE must be a signed type.
+// This dummy function simply aims at checking that at compile time.
+static inline void check_DenseIndex_is_signed() {
+  EIGEN_STATIC_ASSERT(NumTraits<DenseIndex>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE); 
+}
+
+} // end namespace internal
+  
+/** \class DenseBase
+  * \ingroup Core_Module
+  *
+  * \brief Base class for all dense matrices, vectors, and arrays
+  *
+  * This class is the base that is inherited by all dense objects (matrix, vector, arrays,
+  * and related expression types). The common Eigen API for dense objects is contained in this class.
+  *
+  * \tparam Derived is the derived type, e.g., a matrix type or an expression.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_DENSEBASE_PLUGIN.
+  *
+  * \sa \ref TopicClassHierarchy
+  */
+template<typename Derived> class DenseBase
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+  : public internal::special_scalar_op_base<Derived, typename internal::traits<Derived>::Scalar,
+                                            typename NumTraits<typename internal::traits<Derived>::Scalar>::Real,
+                                            DenseCoeffsBase<Derived> >
+#else
+  : public DenseCoeffsBase<Derived>
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+{
+  public:
+
+    class InnerIterator;
+
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+
+    /** \brief The type of indices 
+      * \details To change this, \c \#define the preprocessor symbol \c EIGEN_DEFAULT_DENSE_INDEX_TYPE.
+      * \sa \ref TopicPreprocessorDirectives.
+      */
+    typedef typename internal::traits<Derived>::Index Index; 
+
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef internal::special_scalar_op_base<Derived,Scalar,RealScalar, DenseCoeffsBase<Derived> > Base;
+
+    using Base::operator*;
+    using Base::derived;
+    using Base::const_cast_derived;
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::rowIndexByOuterInner;
+    using Base::colIndexByOuterInner;
+    using Base::coeff;
+    using Base::coeffByOuterInner;
+    using Base::packet;
+    using Base::packetByOuterInner;
+    using Base::writePacket;
+    using Base::writePacketByOuterInner;
+    using Base::coeffRef;
+    using Base::coeffRefByOuterInner;
+    using Base::copyCoeff;
+    using Base::copyCoeffByOuterInner;
+    using Base::copyPacket;
+    using Base::copyPacketByOuterInner;
+    using Base::operator();
+    using Base::operator[];
+    using Base::x;
+    using Base::y;
+    using Base::z;
+    using Base::w;
+    using Base::stride;
+    using Base::innerStride;
+    using Base::outerStride;
+    using Base::rowStride;
+    using Base::colStride;
+    typedef typename Base::CoeffReturnType CoeffReturnType;
+
+    enum {
+
+      RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+        /**< The number of rows at compile-time. This is just a copy of the value provided
+          * by the \a Derived type. If a value is not known at compile-time,
+          * it is set to the \a Dynamic constant.
+          * \sa MatrixBase::rows(), MatrixBase::cols(), ColsAtCompileTime, SizeAtCompileTime */
+
+      ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+        /**< The number of columns at compile-time. This is just a copy of the value provided
+          * by the \a Derived type. If a value is not known at compile-time,
+          * it is set to the \a Dynamic constant.
+          * \sa MatrixBase::rows(), MatrixBase::cols(), RowsAtCompileTime, SizeAtCompileTime */
+
+
+      SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
+                                                   internal::traits<Derived>::ColsAtCompileTime>::ret),
+        /**< This is equal to the number of coefficients, i.e. the number of
+          * rows times the number of columns, or to \a Dynamic if this is not
+          * known at compile-time. \sa RowsAtCompileTime, ColsAtCompileTime */
+
+      MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
+        /**< This value is equal to the maximum possible number of rows that this expression
+          * might have. If this expression might have an arbitrarily high number of rows,
+          * this value is set to \a Dynamic.
+          *
+          * This value is useful to know when evaluating an expression, in order to determine
+          * whether it is possible to avoid doing a dynamic memory allocation.
+          *
+          * \sa RowsAtCompileTime, MaxColsAtCompileTime, MaxSizeAtCompileTime
+          */
+
+      MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
+        /**< This value is equal to the maximum possible number of columns that this expression
+          * might have. If this expression might have an arbitrarily high number of columns,
+          * this value is set to \a Dynamic.
+          *
+          * This value is useful to know when evaluating an expression, in order to determine
+          * whether it is possible to avoid doing a dynamic memory allocation.
+          *
+          * \sa ColsAtCompileTime, MaxRowsAtCompileTime, MaxSizeAtCompileTime
+          */
+
+      MaxSizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::MaxRowsAtCompileTime,
+                                                      internal::traits<Derived>::MaxColsAtCompileTime>::ret),
+        /**< This value is equal to the maximum possible number of coefficients that this expression
+          * might have. If this expression might have an arbitrarily high number of coefficients,
+          * this value is set to \a Dynamic.
+          *
+          * This value is useful to know when evaluating an expression, in order to determine
+          * whether it is possible to avoid doing a dynamic memory allocation.
+          *
+          * \sa SizeAtCompileTime, MaxRowsAtCompileTime, MaxColsAtCompileTime
+          */
+
+      IsVectorAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime == 1
+                           || internal::traits<Derived>::MaxColsAtCompileTime == 1,
+        /**< This is set to true if either the number of rows or the number of
+          * columns is known at compile-time to be equal to 1. Indeed, in that case,
+          * we are dealing with a column-vector (if there is only one column) or with
+          * a row-vector (if there is only one row). */
+
+      Flags = internal::traits<Derived>::Flags,
+        /**< This stores expression \ref flags flags which may or may not be inherited by new expressions
+          * constructed from this one. See the \ref flags "list of flags".
+          */
+
+      IsRowMajor = int(Flags) & RowMajorBit, /**< True if this expression has row-major storage order. */
+
+      InnerSizeAtCompileTime = int(IsVectorAtCompileTime) ? int(SizeAtCompileTime)
+                             : int(IsRowMajor) ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
+
+      CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
+        /**< This is a rough measure of how expensive it is to read one coefficient from
+          * this expression.
+          */
+
+      InnerStrideAtCompileTime = internal::inner_stride_at_compile_time<Derived>::ret,
+      OuterStrideAtCompileTime = internal::outer_stride_at_compile_time<Derived>::ret
+    };
+
+    enum { ThisConstantIsPrivateInPlainObjectBase };
+
+    /** \returns the number of nonzero coefficients which is in practice the number
+      * of stored coefficients. */
+    inline Index nonZeros() const { return size(); }
+
+    /** \returns the outer size.
+      *
+      * \note For a vector, this returns just 1. For a matrix (non-vector), this is the major dimension
+      * with respect to the \ref TopicStorageOrders "storage order", i.e., the number of columns for a
+      * column-major matrix, and the number of rows for a row-major matrix. */
+    Index outerSize() const
+    {
+      return IsVectorAtCompileTime ? 1
+           : int(IsRowMajor) ? this->rows() : this->cols();
+    }
+
+    /** \returns the inner size.
+      *
+      * \note For a vector, this is just the size. For a matrix (non-vector), this is the minor dimension
+      * with respect to the \ref TopicStorageOrders "storage order", i.e., the number of rows for a 
+      * column-major matrix, and the number of columns for a row-major matrix. */
+    Index innerSize() const
+    {
+      return IsVectorAtCompileTime ? this->size()
+           : int(IsRowMajor) ? this->cols() : this->rows();
+    }
+
+    /** Only plain matrices/arrays, not expressions, may be resized; therefore the only useful resize methods are
+      * Matrix::resize() and Array::resize(). The present method only asserts that the new size equals the old size, and does
+      * nothing else.
+      */
+    void resize(Index newSize)
+    {
+      EIGEN_ONLY_USED_FOR_DEBUG(newSize);
+      eigen_assert(newSize == this->size()
+                && "DenseBase::resize() does not actually allow to resize.");
+    }
+    /** Only plain matrices/arrays, not expressions, may be resized; therefore the only useful resize methods are
+      * Matrix::resize() and Array::resize(). The present method only asserts that the new size equals the old size, and does
+      * nothing else.
+      */
+    void resize(Index nbRows, Index nbCols)
+    {
+      EIGEN_ONLY_USED_FOR_DEBUG(nbRows);
+      EIGEN_ONLY_USED_FOR_DEBUG(nbCols);
+      eigen_assert(nbRows == this->rows() && nbCols == this->cols()
+                && "DenseBase::resize() does not actually allow to resize.");
+    }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+
+    /** \internal Represents a matrix with all coefficients equal to one another*/
+    typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,Derived> ConstantReturnType;
+    /** \internal Represents a vector with linearly spaced coefficients that allows sequential access only. */
+    typedef CwiseNullaryOp<internal::linspaced_op<Scalar,false>,Derived> SequentialLinSpacedReturnType;
+    /** \internal Represents a vector with linearly spaced coefficients that allows random access. */
+    typedef CwiseNullaryOp<internal::linspaced_op<Scalar,true>,Derived> RandomAccessLinSpacedReturnType;
+    /** \internal the return type of MatrixBase::eigenvalues() */
+    typedef Matrix<typename NumTraits<typename internal::traits<Derived>::Scalar>::Real, internal::traits<Derived>::ColsAtCompileTime, 1> EigenvaluesReturnType;
+
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+    /** Copies \a other into *this. \returns a reference to *this. */
+    template<typename OtherDerived>
+    Derived& operator=(const DenseBase<OtherDerived>& other);
+
+    /** Special case of the template operator=, in order to prevent the compiler
+      * from generating a default operator= (issue hit with g++ 4.1)
+      */
+    Derived& operator=(const DenseBase& other);
+
+    template<typename OtherDerived>
+    Derived& operator=(const EigenBase<OtherDerived> &other);
+
+    template<typename OtherDerived>
+    Derived& operator+=(const EigenBase<OtherDerived> &other);
+
+    template<typename OtherDerived>
+    Derived& operator-=(const EigenBase<OtherDerived> &other);
+
+    template<typename OtherDerived>
+    Derived& operator=(const ReturnByValue<OtherDerived>& func);
+
+    /** \internal Copies \a other into *this without evaluating other. \returns a reference to *this. */
+    template<typename OtherDerived>
+    Derived& lazyAssign(const DenseBase<OtherDerived>& other);
+
+    /** \internal Evaluates \a other into *this. \returns a reference to *this. */
+    template<typename OtherDerived>
+    Derived& lazyAssign(const ReturnByValue<OtherDerived>& other);
+
+    CommaInitializer<Derived> operator<< (const Scalar& s);
+
+    template<unsigned int Added,unsigned int Removed>
+    const Flagged<Derived, Added, Removed> flagged() const;
+
+    template<typename OtherDerived>
+    CommaInitializer<Derived> operator<< (const DenseBase<OtherDerived>& other);
+
+    Eigen::Transpose<Derived> transpose();
+	typedef typename internal::add_const<Transpose<const Derived> >::type ConstTransposeReturnType;
+    ConstTransposeReturnType transpose() const;
+    void transposeInPlace();
+#ifndef EIGEN_NO_DEBUG
+  protected:
+    template<typename OtherDerived>
+    void checkTransposeAliasing(const OtherDerived& other) const;
+  public:
+#endif
+
+
+    static const ConstantReturnType
+    Constant(Index rows, Index cols, const Scalar& value);
+    static const ConstantReturnType
+    Constant(Index size, const Scalar& value);
+    static const ConstantReturnType
+    Constant(const Scalar& value);
+
+    static const SequentialLinSpacedReturnType
+    LinSpaced(Sequential_t, Index size, const Scalar& low, const Scalar& high);
+    static const RandomAccessLinSpacedReturnType
+    LinSpaced(Index size, const Scalar& low, const Scalar& high);
+    static const SequentialLinSpacedReturnType
+    LinSpaced(Sequential_t, const Scalar& low, const Scalar& high);
+    static const RandomAccessLinSpacedReturnType
+    LinSpaced(const Scalar& low, const Scalar& high);
+
+    template<typename CustomNullaryOp>
+    static const CwiseNullaryOp<CustomNullaryOp, Derived>
+    NullaryExpr(Index rows, Index cols, const CustomNullaryOp& func);
+    template<typename CustomNullaryOp>
+    static const CwiseNullaryOp<CustomNullaryOp, Derived>
+    NullaryExpr(Index size, const CustomNullaryOp& func);
+    template<typename CustomNullaryOp>
+    static const CwiseNullaryOp<CustomNullaryOp, Derived>
+    NullaryExpr(const CustomNullaryOp& func);
+
+    static const ConstantReturnType Zero(Index rows, Index cols);
+    static const ConstantReturnType Zero(Index size);
+    static const ConstantReturnType Zero();
+    static const ConstantReturnType Ones(Index rows, Index cols);
+    static const ConstantReturnType Ones(Index size);
+    static const ConstantReturnType Ones();
+
+    void fill(const Scalar& value);
+    Derived& setConstant(const Scalar& value);
+    Derived& setLinSpaced(Index size, const Scalar& low, const Scalar& high);
+    Derived& setLinSpaced(const Scalar& low, const Scalar& high);
+    Derived& setZero();
+    Derived& setOnes();
+    Derived& setRandom();
+
+    template<typename OtherDerived>
+    bool isApprox(const DenseBase<OtherDerived>& other,
+                  const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isMuchSmallerThan(const RealScalar& other,
+                           const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    template<typename OtherDerived>
+    bool isMuchSmallerThan(const DenseBase<OtherDerived>& other,
+                           const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+    bool isApproxToConstant(const Scalar& value, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isConstant(const Scalar& value, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isZero(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isOnes(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    
+    inline bool hasNaN() const;
+    inline bool allFinite() const;
+
+    inline Derived& operator*=(const Scalar& other);
+    inline Derived& operator/=(const Scalar& other);
+
+    typedef typename internal::add_const_on_value_type<typename internal::eval<Derived>::type>::type EvalReturnType;
+    /** \returns the matrix or vector obtained by evaluating this expression.
+      *
+      * Notice that in the case of a plain matrix or vector (not an expression) this function just returns
+      * a const reference, in order to avoid a useless copy.
+      */
+    EIGEN_STRONG_INLINE EvalReturnType eval() const
+    {
+      // Even though MSVC does not honor strong inlining when the return type
+      // is a dynamic matrix, we desperately need strong inlining for fixed
+      // size types on MSVC.
+      return typename internal::eval<Derived>::type(derived());
+    }
+
+    /** swaps *this with the expression \a other.
+      *
+      */
+    template<typename OtherDerived>
+    void swap(const DenseBase<OtherDerived>& other,
+              int = OtherDerived::ThisConstantIsPrivateInPlainObjectBase)
+    {
+      SwapWrapper<Derived>(derived()).lazyAssign(other.derived());
+    }
+
+    /** swaps *this with the matrix or array \a other.
+      *
+      */
+    template<typename OtherDerived>
+    void swap(PlainObjectBase<OtherDerived>& other)
+    {
+      SwapWrapper<Derived>(derived()).lazyAssign(other.derived());
+    }
+
+
+    inline const NestByValue<Derived> nestByValue() const;
+    inline const ForceAlignedAccess<Derived> forceAlignedAccess() const;
+    inline ForceAlignedAccess<Derived> forceAlignedAccess();
+    template<bool Enable> inline const typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type forceAlignedAccessIf() const;
+    template<bool Enable> inline typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type forceAlignedAccessIf();
+
+    Scalar sum() const;
+    Scalar mean() const;
+    Scalar trace() const;
+
+    Scalar prod() const;
+
+    typename internal::traits<Derived>::Scalar minCoeff() const;
+    typename internal::traits<Derived>::Scalar maxCoeff() const;
+
+    template<typename IndexType>
+    typename internal::traits<Derived>::Scalar minCoeff(IndexType* row, IndexType* col) const;
+    template<typename IndexType>
+    typename internal::traits<Derived>::Scalar maxCoeff(IndexType* row, IndexType* col) const;
+    template<typename IndexType>
+    typename internal::traits<Derived>::Scalar minCoeff(IndexType* index) const;
+    template<typename IndexType>
+    typename internal::traits<Derived>::Scalar maxCoeff(IndexType* index) const;
+
+    template<typename BinaryOp>
+    typename internal::result_of<BinaryOp(typename internal::traits<Derived>::Scalar)>::type
+    redux(const BinaryOp& func) const;
+
+    template<typename Visitor>
+    void visit(Visitor& func) const;
+
+    inline const WithFormat<Derived> format(const IOFormat& fmt) const;
+
+    /** \returns the unique coefficient of a 1x1 expression */
+    CoeffReturnType value() const
+    {
+      EIGEN_STATIC_ASSERT_SIZE_1x1(Derived)
+      eigen_assert(this->rows() == 1 && this->cols() == 1);
+      return derived().coeff(0,0);
+    }
+
+    bool all(void) const;
+    bool any(void) const;
+    Index count() const;
+
+    typedef VectorwiseOp<Derived, Horizontal> RowwiseReturnType;
+    typedef const VectorwiseOp<const Derived, Horizontal> ConstRowwiseReturnType;
+    typedef VectorwiseOp<Derived, Vertical> ColwiseReturnType;
+    typedef const VectorwiseOp<const Derived, Vertical> ConstColwiseReturnType;
+
+    ConstRowwiseReturnType rowwise() const;
+    RowwiseReturnType rowwise();
+    ConstColwiseReturnType colwise() const;
+    ColwiseReturnType colwise();
+
+    static const CwiseNullaryOp<internal::scalar_random_op<Scalar>,Derived> Random(Index rows, Index cols);
+    static const CwiseNullaryOp<internal::scalar_random_op<Scalar>,Derived> Random(Index size);
+    static const CwiseNullaryOp<internal::scalar_random_op<Scalar>,Derived> Random();
+
+    template<typename ThenDerived,typename ElseDerived>
+    const Select<Derived,ThenDerived,ElseDerived>
+    select(const DenseBase<ThenDerived>& thenMatrix,
+           const DenseBase<ElseDerived>& elseMatrix) const;
+
+    template<typename ThenDerived>
+    inline const Select<Derived,ThenDerived, typename ThenDerived::ConstantReturnType>
+    select(const DenseBase<ThenDerived>& thenMatrix, const typename ThenDerived::Scalar& elseScalar) const;
+
+    template<typename ElseDerived>
+    inline const Select<Derived, typename ElseDerived::ConstantReturnType, ElseDerived >
+    select(const typename ElseDerived::Scalar& thenScalar, const DenseBase<ElseDerived>& elseMatrix) const;
+
+    template<int p> RealScalar lpNorm() const;
+
+    template<int RowFactor, int ColFactor>
+    inline const Replicate<Derived,RowFactor,ColFactor> replicate() const;
+    
+    typedef Replicate<Derived,Dynamic,Dynamic> ReplicateReturnType;
+    inline const ReplicateReturnType replicate(Index rowFacor,Index colFactor) const;
+
+    typedef Reverse<Derived, BothDirections> ReverseReturnType;
+    typedef const Reverse<const Derived, BothDirections> ConstReverseReturnType;
+    ReverseReturnType reverse();
+    ConstReverseReturnType reverse() const;
+    void reverseInPlace();
+
+#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::DenseBase
+#   include "../plugins/BlockMethods.h"
+#   ifdef EIGEN_DENSEBASE_PLUGIN
+#     include EIGEN_DENSEBASE_PLUGIN
+#   endif
+#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+
+#ifdef EIGEN2_SUPPORT
+
+    Block<Derived> corner(CornerType type, Index cRows, Index cCols);
+    const Block<Derived> corner(CornerType type, Index cRows, Index cCols) const;
+    template<int CRows, int CCols>
+    Block<Derived, CRows, CCols> corner(CornerType type);
+    template<int CRows, int CCols>
+    const Block<Derived, CRows, CCols> corner(CornerType type) const;
+
+#endif // EIGEN2_SUPPORT
+
+
+    // disable the use of evalTo for dense objects with a nice compilation error
+    template<typename Dest> inline void evalTo(Dest& ) const
+    {
+      EIGEN_STATIC_ASSERT((internal::is_same<Dest,void>::value),THE_EVAL_EVALTO_FUNCTION_SHOULD_NEVER_BE_CALLED_FOR_DENSE_OBJECTS);
+    }
+
+  protected:
+    /** Default constructor. Do nothing. */
+    DenseBase()
+    {
+      /* Just checks for self-consistency of the flags.
+       * Only do it when debugging Eigen, as this borders on paranoiac and could slow compilation down
+       */
+#ifdef EIGEN_INTERNAL_DEBUGGING
+      EIGEN_STATIC_ASSERT((EIGEN_IMPLIES(MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1, int(IsRowMajor))
+                        && EIGEN_IMPLIES(MaxColsAtCompileTime==1 && MaxRowsAtCompileTime!=1, int(!IsRowMajor))),
+                          INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION)
+#endif
+    }
+
+  private:
+    explicit DenseBase(int);
+    DenseBase(int,int);
+    template<typename OtherDerived> explicit DenseBase(const DenseBase<OtherDerived>&);
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_DENSEBASE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Stride.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Stride.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Stride.h	(revision 2476)
@@ -0,0 +1,108 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STRIDE_H
+#define EIGEN_STRIDE_H
+
+namespace Eigen { 
+
+/** \class Stride
+  * \ingroup Core_Module
+  *
+  * \brief Holds strides information for Map
+  *
+  * This class holds the strides information for mapping arrays with strides with class Map.
+  *
+  * It holds two values: the inner stride and the outer stride.
+  *
+  * The inner stride is the pointer increment between two consecutive entries within a given row of a
+  * row-major matrix or within a given column of a column-major matrix.
+  *
+  * The outer stride is the pointer increment between two consecutive rows of a row-major matrix or
+  * between two consecutive columns of a column-major matrix.
+  *
+  * These two values can be passed either at compile-time as template parameters, or at runtime as
+  * arguments to the constructor.
+  *
+  * Indeed, this class takes two template parameters:
+  *  \param _OuterStrideAtCompileTime the outer stride, or Dynamic if you want to specify it at runtime.
+  *  \param _InnerStrideAtCompileTime the inner stride, or Dynamic if you want to specify it at runtime.
+  *
+  * Here is an example:
+  * \include Map_general_stride.cpp
+  * Output: \verbinclude Map_general_stride.out
+  *
+  * \sa class InnerStride, class OuterStride, \ref TopicStorageOrders
+  */
+template<int _OuterStrideAtCompileTime, int _InnerStrideAtCompileTime>
+class Stride
+{
+  public:
+    typedef DenseIndex Index;
+    enum {
+      InnerStrideAtCompileTime = _InnerStrideAtCompileTime,
+      OuterStrideAtCompileTime = _OuterStrideAtCompileTime
+    };
+
+    /** Default constructor, for use when strides are fixed at compile time */
+    Stride()
+      : m_outer(OuterStrideAtCompileTime), m_inner(InnerStrideAtCompileTime)
+    {
+      eigen_assert(InnerStrideAtCompileTime != Dynamic && OuterStrideAtCompileTime != Dynamic);
+    }
+
+    /** Constructor allowing to pass the strides at runtime */
+    Stride(Index outerStride, Index innerStride)
+      : m_outer(outerStride), m_inner(innerStride)
+    {
+      eigen_assert(innerStride>=0 && outerStride>=0);
+    }
+
+    /** Copy constructor */
+    Stride(const Stride& other)
+      : m_outer(other.outer()), m_inner(other.inner())
+    {}
+
+    /** \returns the outer stride */
+    inline Index outer() const { return m_outer.value(); }
+    /** \returns the inner stride */
+    inline Index inner() const { return m_inner.value(); }
+
+  protected:
+    internal::variable_if_dynamic<Index, OuterStrideAtCompileTime> m_outer;
+    internal::variable_if_dynamic<Index, InnerStrideAtCompileTime> m_inner;
+};
+
+/** \brief Convenience specialization of Stride to specify only an inner stride
+  * See class Map for some examples */
+template<int Value = Dynamic>
+class InnerStride : public Stride<0, Value>
+{
+    typedef Stride<0, Value> Base;
+  public:
+    typedef DenseIndex Index;
+    InnerStride() : Base() {}
+    InnerStride(Index v) : Base(0, v) {}
+};
+
+/** \brief Convenience specialization of Stride to specify only an outer stride
+  * See class Map for some examples */
+template<int Value = Dynamic>
+class OuterStride : public Stride<Value, 0>
+{
+    typedef Stride<Value, 0> Base;
+  public:
+    typedef DenseIndex Index;
+    OuterStride() : Base() {}
+    OuterStride(Index v) : Base(v,0) {}
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_STRIDE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Block.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Block.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Block.h	(revision 2476)
@@ -0,0 +1,406 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BLOCK_H
+#define EIGEN_BLOCK_H
+
+namespace Eigen { 
+
+/** \class Block
+  * \ingroup Core_Module
+  *
+  * \brief Expression of a fixed-size or dynamic-size block
+  *
+  * \param XprType the type of the expression in which we are taking a block
+  * \param BlockRows the number of rows of the block we are taking at compile time (optional)
+  * \param BlockCols the number of columns of the block we are taking at compile time (optional)
+  *
+  * This class represents an expression of either a fixed-size or dynamic-size block. It is the return
+  * type of DenseBase::block(Index,Index,Index,Index) and DenseBase::block<int,int>(Index,Index) and
+  * most of the time this is the only way it is used.
+  *
+  * However, if you want to directly maniputate block expressions,
+  * for instance if you want to write a function returning such an expression, you
+  * will need to use this class.
+  *
+  * Here is an example illustrating the dynamic case:
+  * \include class_Block.cpp
+  * Output: \verbinclude class_Block.out
+  *
+  * \note Even though this expression has dynamic size, in the case where \a XprType
+  * has fixed size, this expression inherits a fixed maximal size which means that evaluating
+  * it does not cause a dynamic memory allocation.
+  *
+  * Here is an example illustrating the fixed-size case:
+  * \include class_FixedBlock.cpp
+  * Output: \verbinclude class_FixedBlock.out
+  *
+  * \sa DenseBase::block(Index,Index,Index,Index), DenseBase::block(Index,Index), class VectorBlock
+  */
+
+namespace internal {
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
+struct traits<Block<XprType, BlockRows, BlockCols, InnerPanel> > : traits<XprType>
+{
+  typedef typename traits<XprType>::Scalar Scalar;
+  typedef typename traits<XprType>::StorageKind StorageKind;
+  typedef typename traits<XprType>::XprKind XprKind;
+  typedef typename nested<XprType>::type XprTypeNested;
+  typedef typename remove_reference<XprTypeNested>::type _XprTypeNested;
+  enum{
+    MatrixRows = traits<XprType>::RowsAtCompileTime,
+    MatrixCols = traits<XprType>::ColsAtCompileTime,
+    RowsAtCompileTime = MatrixRows == 0 ? 0 : BlockRows,
+    ColsAtCompileTime = MatrixCols == 0 ? 0 : BlockCols,
+    MaxRowsAtCompileTime = BlockRows==0 ? 0
+                         : RowsAtCompileTime != Dynamic ? int(RowsAtCompileTime)
+                         : int(traits<XprType>::MaxRowsAtCompileTime),
+    MaxColsAtCompileTime = BlockCols==0 ? 0
+                         : ColsAtCompileTime != Dynamic ? int(ColsAtCompileTime)
+                         : int(traits<XprType>::MaxColsAtCompileTime),
+    XprTypeIsRowMajor = (int(traits<XprType>::Flags)&RowMajorBit) != 0,
+    IsDense = is_same<StorageKind,Dense>::value,
+    IsRowMajor = (IsDense&&MaxRowsAtCompileTime==1&&MaxColsAtCompileTime!=1) ? 1
+               : (IsDense&&MaxColsAtCompileTime==1&&MaxRowsAtCompileTime!=1) ? 0
+               : XprTypeIsRowMajor,
+    HasSameStorageOrderAsXprType = (IsRowMajor == XprTypeIsRowMajor),
+    InnerSize = IsRowMajor ? int(ColsAtCompileTime) : int(RowsAtCompileTime),
+    InnerStrideAtCompileTime = HasSameStorageOrderAsXprType
+                             ? int(inner_stride_at_compile_time<XprType>::ret)
+                             : int(outer_stride_at_compile_time<XprType>::ret),
+    OuterStrideAtCompileTime = HasSameStorageOrderAsXprType
+                             ? int(outer_stride_at_compile_time<XprType>::ret)
+                             : int(inner_stride_at_compile_time<XprType>::ret),
+    MaskPacketAccessBit = (InnerSize == Dynamic || (InnerSize % packet_traits<Scalar>::size) == 0)
+                       && (InnerStrideAtCompileTime == 1)
+                        ? PacketAccessBit : 0,
+    MaskAlignedBit = (InnerPanel && (OuterStrideAtCompileTime!=Dynamic) && (((OuterStrideAtCompileTime * int(sizeof(Scalar))) % 16) == 0)) ? AlignedBit : 0,
+    FlagsLinearAccessBit = (RowsAtCompileTime == 1 || ColsAtCompileTime == 1 || (InnerPanel && (traits<XprType>::Flags&LinearAccessBit))) ? LinearAccessBit : 0,
+    FlagsLvalueBit = is_lvalue<XprType>::value ? LvalueBit : 0,
+    FlagsRowMajorBit = IsRowMajor ? RowMajorBit : 0,
+    Flags0 = traits<XprType>::Flags & ( (HereditaryBits & ~RowMajorBit) |
+                                        DirectAccessBit |
+                                        MaskPacketAccessBit |
+                                        MaskAlignedBit),
+    Flags = Flags0 | FlagsLinearAccessBit | FlagsLvalueBit | FlagsRowMajorBit
+  };
+};
+
+template<typename XprType, int BlockRows=Dynamic, int BlockCols=Dynamic, bool InnerPanel = false,
+         bool HasDirectAccess = internal::has_direct_access<XprType>::ret> class BlockImpl_dense;
+         
+} // end namespace internal
+
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel, typename StorageKind> class BlockImpl;
+
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel> class Block
+  : public BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, typename internal::traits<XprType>::StorageKind>
+{
+    typedef BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, typename internal::traits<XprType>::StorageKind> Impl;
+  public:
+    //typedef typename Impl::Base Base;
+    typedef Impl Base;
+    EIGEN_GENERIC_PUBLIC_INTERFACE(Block)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Block)
+  
+    /** Column or Row constructor
+      */
+    inline Block(XprType& xpr, Index i) : Impl(xpr,i)
+    {
+      eigen_assert( (i>=0) && (
+          ((BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) && i<xpr.rows())
+        ||((BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) && i<xpr.cols())));
+    }
+
+    /** Fixed-size constructor
+      */
+    inline Block(XprType& xpr, Index a_startRow, Index a_startCol)
+      : Impl(xpr, a_startRow, a_startCol)
+    {
+      EIGEN_STATIC_ASSERT(RowsAtCompileTime!=Dynamic && ColsAtCompileTime!=Dynamic,THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE)
+      eigen_assert(a_startRow >= 0 && BlockRows >= 1 && a_startRow + BlockRows <= xpr.rows()
+             && a_startCol >= 0 && BlockCols >= 1 && a_startCol + BlockCols <= xpr.cols());
+    }
+
+    /** Dynamic-size constructor
+      */
+    inline Block(XprType& xpr,
+          Index a_startRow, Index a_startCol,
+          Index blockRows, Index blockCols)
+      : Impl(xpr, a_startRow, a_startCol, blockRows, blockCols)
+    {
+      eigen_assert((RowsAtCompileTime==Dynamic || RowsAtCompileTime==blockRows)
+          && (ColsAtCompileTime==Dynamic || ColsAtCompileTime==blockCols));
+      eigen_assert(a_startRow >= 0 && blockRows >= 0 && a_startRow  <= xpr.rows() - blockRows
+          && a_startCol >= 0 && blockCols >= 0 && a_startCol <= xpr.cols() - blockCols);
+    }
+};
+         
+// The generic default implementation for dense block simplu forward to the internal::BlockImpl_dense
+// that must be specialized for direct and non-direct access...
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
+class BlockImpl<XprType, BlockRows, BlockCols, InnerPanel, Dense>
+  : public internal::BlockImpl_dense<XprType, BlockRows, BlockCols, InnerPanel>
+{
+    typedef internal::BlockImpl_dense<XprType, BlockRows, BlockCols, InnerPanel> Impl;
+    typedef typename XprType::Index Index;
+  public:
+    typedef Impl Base;
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl)
+    inline BlockImpl(XprType& xpr, Index i) : Impl(xpr,i) {}
+    inline BlockImpl(XprType& xpr, Index a_startRow, Index a_startCol) : Impl(xpr, a_startRow, a_startCol) {}
+    inline BlockImpl(XprType& xpr, Index a_startRow, Index a_startCol, Index blockRows, Index blockCols)
+      : Impl(xpr, a_startRow, a_startCol, blockRows, blockCols) {}
+};
+
+namespace internal {
+
+/** \internal Internal implementation of dense Blocks in the general case. */
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel, bool HasDirectAccess> class BlockImpl_dense
+  : public internal::dense_xpr_base<Block<XprType, BlockRows, BlockCols, InnerPanel> >::type
+{
+    typedef Block<XprType, BlockRows, BlockCols, InnerPanel> BlockType;
+  public:
+
+    typedef typename internal::dense_xpr_base<BlockType>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(BlockType)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl_dense)
+
+    class InnerIterator;
+
+    /** Column or Row constructor
+      */
+    inline BlockImpl_dense(XprType& xpr, Index i)
+      : m_xpr(xpr),
+        // It is a row if and only if BlockRows==1 and BlockCols==XprType::ColsAtCompileTime,
+        // and it is a column if and only if BlockRows==XprType::RowsAtCompileTime and BlockCols==1,
+        // all other cases are invalid.
+        // The case a 1x1 matrix seems ambiguous, but the result is the same anyway.
+        m_startRow( (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0),
+        m_startCol( (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0),
+        m_blockRows(BlockRows==1 ? 1 : xpr.rows()),
+        m_blockCols(BlockCols==1 ? 1 : xpr.cols())
+    {}
+
+    /** Fixed-size constructor
+      */
+    inline BlockImpl_dense(XprType& xpr, Index a_startRow, Index a_startCol)
+      : m_xpr(xpr), m_startRow(a_startRow), m_startCol(a_startCol),
+                    m_blockRows(BlockRows), m_blockCols(BlockCols)
+    {}
+
+    /** Dynamic-size constructor
+      */
+    inline BlockImpl_dense(XprType& xpr,
+          Index a_startRow, Index a_startCol,
+          Index blockRows, Index blockCols)
+      : m_xpr(xpr), m_startRow(a_startRow), m_startCol(a_startCol),
+                    m_blockRows(blockRows), m_blockCols(blockCols)
+    {}
+
+    inline Index rows() const { return m_blockRows.value(); }
+    inline Index cols() const { return m_blockCols.value(); }
+
+    inline Scalar& coeffRef(Index rowId, Index colId)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(XprType)
+      return m_xpr.const_cast_derived()
+               .coeffRef(rowId + m_startRow.value(), colId + m_startCol.value());
+    }
+
+    inline const Scalar& coeffRef(Index rowId, Index colId) const
+    {
+      return m_xpr.derived()
+               .coeffRef(rowId + m_startRow.value(), colId + m_startCol.value());
+    }
+
+    EIGEN_STRONG_INLINE const CoeffReturnType coeff(Index rowId, Index colId) const
+    {
+      return m_xpr.coeff(rowId + m_startRow.value(), colId + m_startCol.value());
+    }
+
+    inline Scalar& coeffRef(Index index)
+    {
+      EIGEN_STATIC_ASSERT_LVALUE(XprType)
+      return m_xpr.const_cast_derived()
+             .coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+                       m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+    }
+
+    inline const Scalar& coeffRef(Index index) const
+    {
+      return m_xpr.const_cast_derived()
+             .coeffRef(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+                       m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+    }
+
+    inline const CoeffReturnType coeff(Index index) const
+    {
+      return m_xpr
+             .coeff(m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+                    m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+    }
+
+    template<int LoadMode>
+    inline PacketScalar packet(Index rowId, Index colId) const
+    {
+      return m_xpr.template packet<Unaligned>
+              (rowId + m_startRow.value(), colId + m_startCol.value());
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index rowId, Index colId, const PacketScalar& val)
+    {
+      m_xpr.const_cast_derived().template writePacket<Unaligned>
+              (rowId + m_startRow.value(), colId + m_startCol.value(), val);
+    }
+
+    template<int LoadMode>
+    inline PacketScalar packet(Index index) const
+    {
+      return m_xpr.template packet<Unaligned>
+              (m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+               m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0));
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index index, const PacketScalar& val)
+    {
+      m_xpr.const_cast_derived().template writePacket<Unaligned>
+         (m_startRow.value() + (RowsAtCompileTime == 1 ? 0 : index),
+          m_startCol.value() + (RowsAtCompileTime == 1 ? index : 0), val);
+    }
+
+    #ifdef EIGEN_PARSED_BY_DOXYGEN
+    /** \sa MapBase::data() */
+    inline const Scalar* data() const;
+    inline Index innerStride() const;
+    inline Index outerStride() const;
+    #endif
+
+    const typename internal::remove_all<typename XprType::Nested>::type& nestedExpression() const 
+    { 
+      return m_xpr; 
+    }
+      
+    Index startRow() const 
+    { 
+      return m_startRow.value(); 
+    }
+      
+    Index startCol() const 
+    { 
+      return m_startCol.value(); 
+    }
+
+  protected:
+
+    const typename XprType::Nested m_xpr;
+    const internal::variable_if_dynamic<Index, XprType::RowsAtCompileTime == 1 ? 0 : Dynamic> m_startRow;
+    const internal::variable_if_dynamic<Index, XprType::ColsAtCompileTime == 1 ? 0 : Dynamic> m_startCol;
+    const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_blockRows;
+    const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_blockCols;
+};
+
+/** \internal Internal implementation of dense Blocks in the direct access case.*/
+template<typename XprType, int BlockRows, int BlockCols, bool InnerPanel>
+class BlockImpl_dense<XprType,BlockRows,BlockCols, InnerPanel,true>
+  : public MapBase<Block<XprType, BlockRows, BlockCols, InnerPanel> >
+{
+    typedef Block<XprType, BlockRows, BlockCols, InnerPanel> BlockType;
+  public:
+
+    typedef MapBase<BlockType> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(BlockType)
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(BlockImpl_dense)
+
+    /** Column or Row constructor
+      */
+    inline BlockImpl_dense(XprType& xpr, Index i)
+      : Base(internal::const_cast_ptr(&xpr.coeffRef(
+              (BlockRows==1) && (BlockCols==XprType::ColsAtCompileTime) ? i : 0,
+              (BlockRows==XprType::RowsAtCompileTime) && (BlockCols==1) ? i : 0)),
+             BlockRows==1 ? 1 : xpr.rows(),
+             BlockCols==1 ? 1 : xpr.cols()),
+        m_xpr(xpr)
+    {
+      init();
+    }
+
+    /** Fixed-size constructor
+      */
+    inline BlockImpl_dense(XprType& xpr, Index startRow, Index startCol)
+      : Base(internal::const_cast_ptr(&xpr.coeffRef(startRow,startCol))), m_xpr(xpr)
+    {
+      init();
+    }
+
+    /** Dynamic-size constructor
+      */
+    inline BlockImpl_dense(XprType& xpr,
+          Index startRow, Index startCol,
+          Index blockRows, Index blockCols)
+      : Base(internal::const_cast_ptr(&xpr.coeffRef(startRow,startCol)), blockRows, blockCols),
+        m_xpr(xpr)
+    {
+      init();
+    }
+
+    const typename internal::remove_all<typename XprType::Nested>::type& nestedExpression() const 
+    { 
+      return m_xpr; 
+    }
+      
+    /** \sa MapBase::innerStride() */
+    inline Index innerStride() const
+    {
+      return internal::traits<BlockType>::HasSameStorageOrderAsXprType
+             ? m_xpr.innerStride()
+             : m_xpr.outerStride();
+    }
+
+    /** \sa MapBase::outerStride() */
+    inline Index outerStride() const
+    {
+      return m_outerStride;
+    }
+
+  #ifndef __SUNPRO_CC
+  // FIXME sunstudio is not friendly with the above friend...
+  // META-FIXME there is no 'friend' keyword around here. Is this obsolete?
+  protected:
+  #endif
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal used by allowAligned() */
+    inline BlockImpl_dense(XprType& xpr, const Scalar* data, Index blockRows, Index blockCols)
+      : Base(data, blockRows, blockCols), m_xpr(xpr)
+    {
+      init();
+    }
+    #endif
+
+  protected:
+    void init()
+    {
+      m_outerStride = internal::traits<BlockType>::HasSameStorageOrderAsXprType
+                    ? m_xpr.outerStride()
+                    : m_xpr.innerStride();
+    }
+
+    typename XprType::Nested m_xpr;
+    Index m_outerStride;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BLOCK_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/SelfAdjointView.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/SelfAdjointView.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/SelfAdjointView.h	(revision 2476)
@@ -0,0 +1,314 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SELFADJOINTMATRIX_H
+#define EIGEN_SELFADJOINTMATRIX_H
+
+namespace Eigen { 
+
+/** \class SelfAdjointView
+  * \ingroup Core_Module
+  *
+  *
+  * \brief Expression of a selfadjoint matrix from a triangular part of a dense matrix
+  *
+  * \param MatrixType the type of the dense matrix storing the coefficients
+  * \param TriangularPart can be either \c #Lower or \c #Upper
+  *
+  * This class is an expression of a sefladjoint matrix from a triangular part of a matrix
+  * with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView()
+  * and most of the time this is the only way that it is used.
+  *
+  * \sa class TriangularBase, MatrixBase::selfadjointView()
+  */
+
+namespace internal {
+template<typename MatrixType, unsigned int UpLo>
+struct traits<SelfAdjointView<MatrixType, UpLo> > : traits<MatrixType>
+{
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
+  typedef MatrixType ExpressionType;
+  typedef typename MatrixType::PlainObject DenseMatrixType;
+  enum {
+    Mode = UpLo | SelfAdjoint,
+    Flags =  MatrixTypeNestedCleaned::Flags & (HereditaryBits)
+           & (~(PacketAccessBit | DirectAccessBit | LinearAccessBit)), // FIXME these flags should be preserved
+    CoeffReadCost = MatrixTypeNestedCleaned::CoeffReadCost
+  };
+};
+}
+
+template <typename Lhs, int LhsMode, bool LhsIsVector,
+          typename Rhs, int RhsMode, bool RhsIsVector>
+struct SelfadjointProductMatrix;
+
+// FIXME could also be called SelfAdjointWrapper to be consistent with DiagonalWrapper ??
+template<typename MatrixType, unsigned int UpLo> class SelfAdjointView
+  : public TriangularBase<SelfAdjointView<MatrixType, UpLo> >
+{
+  public:
+
+    typedef TriangularBase<SelfAdjointView> Base;
+    typedef typename internal::traits<SelfAdjointView>::MatrixTypeNested MatrixTypeNested;
+    typedef typename internal::traits<SelfAdjointView>::MatrixTypeNestedCleaned MatrixTypeNestedCleaned;
+
+    /** \brief The type of coefficients in this matrix */
+    typedef typename internal::traits<SelfAdjointView>::Scalar Scalar; 
+
+    typedef typename MatrixType::Index Index;
+
+    enum {
+      Mode = internal::traits<SelfAdjointView>::Mode
+    };
+    typedef typename MatrixType::PlainObject PlainObject;
+
+    inline SelfAdjointView(MatrixType& matrix) : m_matrix(matrix)
+    {}
+
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+    inline Index outerStride() const { return m_matrix.outerStride(); }
+    inline Index innerStride() const { return m_matrix.innerStride(); }
+
+    /** \sa MatrixBase::coeff()
+      * \warning the coordinates must fit into the referenced triangular part
+      */
+    inline Scalar coeff(Index row, Index col) const
+    {
+      Base::check_coordinates_internal(row, col);
+      return m_matrix.coeff(row, col);
+    }
+
+    /** \sa MatrixBase::coeffRef()
+      * \warning the coordinates must fit into the referenced triangular part
+      */
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      Base::check_coordinates_internal(row, col);
+      return m_matrix.const_cast_derived().coeffRef(row, col);
+    }
+
+    /** \internal */
+    const MatrixTypeNestedCleaned& _expression() const { return m_matrix; }
+
+    const MatrixTypeNestedCleaned& nestedExpression() const { return m_matrix; }
+    MatrixTypeNestedCleaned& nestedExpression() { return *const_cast<MatrixTypeNestedCleaned*>(&m_matrix); }
+
+    /** Efficient self-adjoint matrix times vector/matrix product */
+    template<typename OtherDerived>
+    SelfadjointProductMatrix<MatrixType,Mode,false,OtherDerived,0,OtherDerived::IsVectorAtCompileTime>
+    operator*(const MatrixBase<OtherDerived>& rhs) const
+    {
+      return SelfadjointProductMatrix
+              <MatrixType,Mode,false,OtherDerived,0,OtherDerived::IsVectorAtCompileTime>
+              (m_matrix, rhs.derived());
+    }
+
+    /** Efficient vector/matrix times self-adjoint matrix product */
+    template<typename OtherDerived> friend
+    SelfadjointProductMatrix<OtherDerived,0,OtherDerived::IsVectorAtCompileTime,MatrixType,Mode,false>
+    operator*(const MatrixBase<OtherDerived>& lhs, const SelfAdjointView& rhs)
+    {
+      return SelfadjointProductMatrix
+              <OtherDerived,0,OtherDerived::IsVectorAtCompileTime,MatrixType,Mode,false>
+              (lhs.derived(),rhs.m_matrix);
+    }
+
+    /** Perform a symmetric rank 2 update of the selfadjoint matrix \c *this:
+      * \f$ this = this + \alpha u v^* + conj(\alpha) v u^* \f$
+      * \returns a reference to \c *this
+      *
+      * The vectors \a u and \c v \b must be column vectors, however they can be
+      * a adjoint expression without any overhead. Only the meaningful triangular
+      * part of the matrix is updated, the rest is left unchanged.
+      *
+      * \sa rankUpdate(const MatrixBase<DerivedU>&, Scalar)
+      */
+    template<typename DerivedU, typename DerivedV>
+    SelfAdjointView& rankUpdate(const MatrixBase<DerivedU>& u, const MatrixBase<DerivedV>& v, const Scalar& alpha = Scalar(1));
+
+    /** Perform a symmetric rank K update of the selfadjoint matrix \c *this:
+      * \f$ this = this + \alpha ( u u^* ) \f$ where \a u is a vector or matrix.
+      *
+      * \returns a reference to \c *this
+      *
+      * Note that to perform \f$ this = this + \alpha ( u^* u ) \f$ you can simply
+      * call this function with u.adjoint().
+      *
+      * \sa rankUpdate(const MatrixBase<DerivedU>&, const MatrixBase<DerivedV>&, Scalar)
+      */
+    template<typename DerivedU>
+    SelfAdjointView& rankUpdate(const MatrixBase<DerivedU>& u, const Scalar& alpha = Scalar(1));
+
+/////////// Cholesky module ///////////
+
+    const LLT<PlainObject, UpLo> llt() const;
+    const LDLT<PlainObject, UpLo> ldlt() const;
+
+/////////// Eigenvalue module ///////////
+
+    /** Real part of #Scalar */
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    /** Return type of eigenvalues() */
+    typedef Matrix<RealScalar, internal::traits<MatrixType>::ColsAtCompileTime, 1> EigenvaluesReturnType;
+
+    EigenvaluesReturnType eigenvalues() const;
+    RealScalar operatorNorm() const;
+    
+    #ifdef EIGEN2_SUPPORT
+    template<typename OtherDerived>
+    SelfAdjointView& operator=(const MatrixBase<OtherDerived>& other)
+    {
+      enum {
+        OtherPart = UpLo == Upper ? StrictlyLower : StrictlyUpper
+      };
+      m_matrix.const_cast_derived().template triangularView<UpLo>() = other;
+      m_matrix.const_cast_derived().template triangularView<OtherPart>() = other.adjoint();
+      return *this;
+    }
+    template<typename OtherMatrixType, unsigned int OtherMode>
+    SelfAdjointView& operator=(const TriangularView<OtherMatrixType, OtherMode>& other)
+    {
+      enum {
+        OtherPart = UpLo == Upper ? StrictlyLower : StrictlyUpper
+      };
+      m_matrix.const_cast_derived().template triangularView<UpLo>() = other.toDenseMatrix();
+      m_matrix.const_cast_derived().template triangularView<OtherPart>() = other.toDenseMatrix().adjoint();
+      return *this;
+    }
+    #endif
+
+  protected:
+    MatrixTypeNested m_matrix;
+};
+
+
+// template<typename OtherDerived, typename MatrixType, unsigned int UpLo>
+// internal::selfadjoint_matrix_product_returntype<OtherDerived,SelfAdjointView<MatrixType,UpLo> >
+// operator*(const MatrixBase<OtherDerived>& lhs, const SelfAdjointView<MatrixType,UpLo>& rhs)
+// {
+//   return internal::matrix_selfadjoint_product_returntype<OtherDerived,SelfAdjointView<MatrixType,UpLo> >(lhs.derived(),rhs);
+// }
+
+// selfadjoint to dense matrix
+
+namespace internal {
+
+template<typename Derived1, typename Derived2, int UnrollCount, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, (SelfAdjoint|Upper), UnrollCount, ClearOpposite>
+{
+  enum {
+    col = (UnrollCount-1) / Derived1::RowsAtCompileTime,
+    row = (UnrollCount-1) % Derived1::RowsAtCompileTime
+  };
+
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    triangular_assignment_selector<Derived1, Derived2, (SelfAdjoint|Upper), UnrollCount-1, ClearOpposite>::run(dst, src);
+
+    if(row == col)
+      dst.coeffRef(row, col) = numext::real(src.coeff(row, col));
+    else if(row < col)
+      dst.coeffRef(col, row) = numext::conj(dst.coeffRef(row, col) = src.coeff(row, col));
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, SelfAdjoint|Upper, 0, ClearOpposite>
+{
+  static inline void run(Derived1 &, const Derived2 &) {}
+};
+
+template<typename Derived1, typename Derived2, int UnrollCount, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, (SelfAdjoint|Lower), UnrollCount, ClearOpposite>
+{
+  enum {
+    col = (UnrollCount-1) / Derived1::RowsAtCompileTime,
+    row = (UnrollCount-1) % Derived1::RowsAtCompileTime
+  };
+
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    triangular_assignment_selector<Derived1, Derived2, (SelfAdjoint|Lower), UnrollCount-1, ClearOpposite>::run(dst, src);
+
+    if(row == col)
+      dst.coeffRef(row, col) = numext::real(src.coeff(row, col));
+    else if(row > col)
+      dst.coeffRef(col, row) = numext::conj(dst.coeffRef(row, col) = src.coeff(row, col));
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, SelfAdjoint|Lower, 0, ClearOpposite>
+{
+  static inline void run(Derived1 &, const Derived2 &) {}
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, SelfAdjoint|Upper, Dynamic, ClearOpposite>
+{
+  typedef typename Derived1::Index Index;
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+    for(Index j = 0; j < dst.cols(); ++j)
+    {
+      for(Index i = 0; i < j; ++i)
+      {
+        dst.copyCoeff(i, j, src);
+        dst.coeffRef(j,i) = numext::conj(dst.coeff(i,j));
+      }
+      dst.copyCoeff(j, j, src);
+    }
+  }
+};
+
+template<typename Derived1, typename Derived2, bool ClearOpposite>
+struct triangular_assignment_selector<Derived1, Derived2, SelfAdjoint|Lower, Dynamic, ClearOpposite>
+{
+  static inline void run(Derived1 &dst, const Derived2 &src)
+  {
+  typedef typename Derived1::Index Index;
+    for(Index i = 0; i < dst.rows(); ++i)
+    {
+      for(Index j = 0; j < i; ++j)
+      {
+        dst.copyCoeff(i, j, src);
+        dst.coeffRef(j,i) = numext::conj(dst.coeff(i,j));
+      }
+      dst.copyCoeff(i, i, src);
+    }
+  }
+};
+
+} // end namespace internal
+
+/***************************************************************************
+* Implementation of MatrixBase methods
+***************************************************************************/
+
+template<typename Derived>
+template<unsigned int UpLo>
+typename MatrixBase<Derived>::template ConstSelfAdjointViewReturnType<UpLo>::Type
+MatrixBase<Derived>::selfadjointView() const
+{
+  return derived();
+}
+
+template<typename Derived>
+template<unsigned int UpLo>
+typename MatrixBase<Derived>::template SelfAdjointViewReturnType<UpLo>::Type
+MatrixBase<Derived>::selfadjointView()
+{
+  return derived();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SELFADJOINTMATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Transpositions.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Transpositions.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Transpositions.h	(revision 2476)
@@ -0,0 +1,437 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRANSPOSITIONS_H
+#define EIGEN_TRANSPOSITIONS_H
+
+namespace Eigen { 
+
+/** \class Transpositions
+  * \ingroup Core_Module
+  *
+  * \brief Represents a sequence of transpositions (row/column interchange)
+  *
+  * \param SizeAtCompileTime the number of transpositions, or Dynamic
+  * \param MaxSizeAtCompileTime the maximum number of transpositions, or Dynamic. This optional parameter defaults to SizeAtCompileTime. Most of the time, you should not have to specify it.
+  *
+  * This class represents a permutation transformation as a sequence of \em n transpositions
+  * \f$[T_{n-1} \ldots T_{i} \ldots T_{0}]\f$. It is internally stored as a vector of integers \c indices.
+  * Each transposition \f$ T_{i} \f$ applied on the left of a matrix (\f$ T_{i} M\f$) interchanges
+  * the rows \c i and \c indices[i] of the matrix \c M.
+  * A transposition applied on the right (e.g., \f$ M T_{i}\f$) yields a column interchange.
+  *
+  * Compared to the class PermutationMatrix, such a sequence of transpositions is what is
+  * computed during a decomposition with pivoting, and it is faster when applying the permutation in-place.
+  * 
+  * To apply a sequence of transpositions to a matrix, simply use the operator * as in the following example:
+  * \code
+  * Transpositions tr;
+  * MatrixXf mat;
+  * mat = tr * mat;
+  * \endcode
+  * In this example, we detect that the matrix appears on both side, and so the transpositions
+  * are applied in-place without any temporary or extra copy.
+  *
+  * \sa class PermutationMatrix
+  */
+
+namespace internal {
+template<typename TranspositionType, typename MatrixType, int Side, bool Transposed=false> struct transposition_matrix_product_retval;
+}
+
+template<typename Derived>
+class TranspositionsBase
+{
+    typedef internal::traits<Derived> Traits;
+    
+  public:
+
+    typedef typename Traits::IndicesType IndicesType;
+    typedef typename IndicesType::Scalar Index;
+
+    Derived& derived() { return *static_cast<Derived*>(this); }
+    const Derived& derived() const { return *static_cast<const Derived*>(this); }
+
+    /** Copies the \a other transpositions into \c *this */
+    template<typename OtherDerived>
+    Derived& operator=(const TranspositionsBase<OtherDerived>& other)
+    {
+      indices() = other.indices();
+      return derived();
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    Derived& operator=(const TranspositionsBase& other)
+    {
+      indices() = other.indices();
+      return derived();
+    }
+    #endif
+
+    /** \returns the number of transpositions */
+    inline Index size() const { return indices().size(); }
+
+    /** Direct access to the underlying index vector */
+    inline const Index& coeff(Index i) const { return indices().coeff(i); }
+    /** Direct access to the underlying index vector */
+    inline Index& coeffRef(Index i) { return indices().coeffRef(i); }
+    /** Direct access to the underlying index vector */
+    inline const Index& operator()(Index i) const { return indices()(i); }
+    /** Direct access to the underlying index vector */
+    inline Index& operator()(Index i) { return indices()(i); }
+    /** Direct access to the underlying index vector */
+    inline const Index& operator[](Index i) const { return indices()(i); }
+    /** Direct access to the underlying index vector */
+    inline Index& operator[](Index i) { return indices()(i); }
+
+    /** const version of indices(). */
+    const IndicesType& indices() const { return derived().indices(); }
+    /** \returns a reference to the stored array representing the transpositions. */
+    IndicesType& indices() { return derived().indices(); }
+
+    /** Resizes to given size. */
+    inline void resize(int newSize)
+    {
+      indices().resize(newSize);
+    }
+
+    /** Sets \c *this to represents an identity transformation */
+    void setIdentity()
+    {
+      for(int i = 0; i < indices().size(); ++i)
+        coeffRef(i) = i;
+    }
+
+    // FIXME: do we want such methods ?
+    // might be usefull when the target matrix expression is complex, e.g.:
+    // object.matrix().block(..,..,..,..) = trans * object.matrix().block(..,..,..,..);
+    /*
+    template<typename MatrixType>
+    void applyForwardToRows(MatrixType& mat) const
+    {
+      for(Index k=0 ; k<size() ; ++k)
+        if(m_indices(k)!=k)
+          mat.row(k).swap(mat.row(m_indices(k)));
+    }
+
+    template<typename MatrixType>
+    void applyBackwardToRows(MatrixType& mat) const
+    {
+      for(Index k=size()-1 ; k>=0 ; --k)
+        if(m_indices(k)!=k)
+          mat.row(k).swap(mat.row(m_indices(k)));
+    }
+    */
+
+    /** \returns the inverse transformation */
+    inline Transpose<TranspositionsBase> inverse() const
+    { return Transpose<TranspositionsBase>(derived()); }
+
+    /** \returns the tranpose transformation */
+    inline Transpose<TranspositionsBase> transpose() const
+    { return Transpose<TranspositionsBase>(derived()); }
+
+  protected:
+};
+
+namespace internal {
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
+struct traits<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,IndexType> >
+{
+  typedef IndexType Index;
+  typedef Matrix<Index, SizeAtCompileTime, 1, 0, MaxSizeAtCompileTime, 1> IndicesType;
+};
+}
+
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType>
+class Transpositions : public TranspositionsBase<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,IndexType> >
+{
+    typedef internal::traits<Transpositions> Traits;
+  public:
+
+    typedef TranspositionsBase<Transpositions> Base;
+    typedef typename Traits::IndicesType IndicesType;
+    typedef typename IndicesType::Scalar Index;
+
+    inline Transpositions() {}
+
+    /** Copy constructor. */
+    template<typename OtherDerived>
+    inline Transpositions(const TranspositionsBase<OtherDerived>& other)
+      : m_indices(other.indices()) {}
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** Standard copy constructor. Defined only to prevent a default copy constructor
+      * from hiding the other templated constructor */
+    inline Transpositions(const Transpositions& other) : m_indices(other.indices()) {}
+    #endif
+
+    /** Generic constructor from expression of the transposition indices. */
+    template<typename Other>
+    explicit inline Transpositions(const MatrixBase<Other>& a_indices) : m_indices(a_indices)
+    {}
+
+    /** Copies the \a other transpositions into \c *this */
+    template<typename OtherDerived>
+    Transpositions& operator=(const TranspositionsBase<OtherDerived>& other)
+    {
+      return Base::operator=(other);
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    Transpositions& operator=(const Transpositions& other)
+    {
+      m_indices = other.m_indices;
+      return *this;
+    }
+    #endif
+
+    /** Constructs an uninitialized permutation matrix of given size.
+      */
+    inline Transpositions(Index size) : m_indices(size)
+    {}
+
+    /** const version of indices(). */
+    const IndicesType& indices() const { return m_indices; }
+    /** \returns a reference to the stored array representing the transpositions. */
+    IndicesType& indices() { return m_indices; }
+
+  protected:
+
+    IndicesType m_indices;
+};
+
+
+namespace internal {
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType, int _PacketAccess>
+struct traits<Map<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,IndexType>,_PacketAccess> >
+{
+  typedef IndexType Index;
+  typedef Map<const Matrix<Index,SizeAtCompileTime,1,0,MaxSizeAtCompileTime,1>, _PacketAccess> IndicesType;
+};
+}
+
+template<int SizeAtCompileTime, int MaxSizeAtCompileTime, typename IndexType, int PacketAccess>
+class Map<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,IndexType>,PacketAccess>
+ : public TranspositionsBase<Map<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,IndexType>,PacketAccess> >
+{
+    typedef internal::traits<Map> Traits;
+  public:
+
+    typedef TranspositionsBase<Map> Base;
+    typedef typename Traits::IndicesType IndicesType;
+    typedef typename IndicesType::Scalar Index;
+
+    inline Map(const Index* indicesPtr)
+      : m_indices(indicesPtr)
+    {}
+
+    inline Map(const Index* indicesPtr, Index size)
+      : m_indices(indicesPtr,size)
+    {}
+
+    /** Copies the \a other transpositions into \c *this */
+    template<typename OtherDerived>
+    Map& operator=(const TranspositionsBase<OtherDerived>& other)
+    {
+      return Base::operator=(other);
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    Map& operator=(const Map& other)
+    {
+      m_indices = other.m_indices;
+      return *this;
+    }
+    #endif
+
+    /** const version of indices(). */
+    const IndicesType& indices() const { return m_indices; }
+    
+    /** \returns a reference to the stored array representing the transpositions. */
+    IndicesType& indices() { return m_indices; }
+
+  protected:
+
+    IndicesType m_indices;
+};
+
+namespace internal {
+template<typename _IndicesType>
+struct traits<TranspositionsWrapper<_IndicesType> >
+{
+  typedef typename _IndicesType::Scalar Index;
+  typedef _IndicesType IndicesType;
+};
+}
+
+template<typename _IndicesType>
+class TranspositionsWrapper
+ : public TranspositionsBase<TranspositionsWrapper<_IndicesType> >
+{
+    typedef internal::traits<TranspositionsWrapper> Traits;
+  public:
+
+    typedef TranspositionsBase<TranspositionsWrapper> Base;
+    typedef typename Traits::IndicesType IndicesType;
+    typedef typename IndicesType::Scalar Index;
+
+    inline TranspositionsWrapper(IndicesType& a_indices)
+      : m_indices(a_indices)
+    {}
+
+    /** Copies the \a other transpositions into \c *this */
+    template<typename OtherDerived>
+    TranspositionsWrapper& operator=(const TranspositionsBase<OtherDerived>& other)
+    {
+      return Base::operator=(other);
+    }
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is a special case of the templated operator=. Its purpose is to
+      * prevent a default operator= from hiding the templated operator=.
+      */
+    TranspositionsWrapper& operator=(const TranspositionsWrapper& other)
+    {
+      m_indices = other.m_indices;
+      return *this;
+    }
+    #endif
+
+    /** const version of indices(). */
+    const IndicesType& indices() const { return m_indices; }
+
+    /** \returns a reference to the stored array representing the transpositions. */
+    IndicesType& indices() { return m_indices; }
+
+  protected:
+
+    const typename IndicesType::Nested m_indices;
+};
+
+/** \returns the \a matrix with the \a transpositions applied to the columns.
+  */
+template<typename Derived, typename TranspositionsDerived>
+inline const internal::transposition_matrix_product_retval<TranspositionsDerived, Derived, OnTheRight>
+operator*(const MatrixBase<Derived>& matrix,
+          const TranspositionsBase<TranspositionsDerived> &transpositions)
+{
+  return internal::transposition_matrix_product_retval
+           <TranspositionsDerived, Derived, OnTheRight>
+           (transpositions.derived(), matrix.derived());
+}
+
+/** \returns the \a matrix with the \a transpositions applied to the rows.
+  */
+template<typename Derived, typename TranspositionDerived>
+inline const internal::transposition_matrix_product_retval
+               <TranspositionDerived, Derived, OnTheLeft>
+operator*(const TranspositionsBase<TranspositionDerived> &transpositions,
+          const MatrixBase<Derived>& matrix)
+{
+  return internal::transposition_matrix_product_retval
+           <TranspositionDerived, Derived, OnTheLeft>
+           (transpositions.derived(), matrix.derived());
+}
+
+namespace internal {
+
+template<typename TranspositionType, typename MatrixType, int Side, bool Transposed>
+struct traits<transposition_matrix_product_retval<TranspositionType, MatrixType, Side, Transposed> >
+{
+  typedef typename MatrixType::PlainObject ReturnType;
+};
+
+template<typename TranspositionType, typename MatrixType, int Side, bool Transposed>
+struct transposition_matrix_product_retval
+ : public ReturnByValue<transposition_matrix_product_retval<TranspositionType, MatrixType, Side, Transposed> >
+{
+    typedef typename remove_all<typename MatrixType::Nested>::type MatrixTypeNestedCleaned;
+    typedef typename TranspositionType::Index Index;
+
+    transposition_matrix_product_retval(const TranspositionType& tr, const MatrixType& matrix)
+      : m_transpositions(tr), m_matrix(matrix)
+    {}
+
+    inline int rows() const { return m_matrix.rows(); }
+    inline int cols() const { return m_matrix.cols(); }
+
+    template<typename Dest> inline void evalTo(Dest& dst) const
+    {
+      const int size = m_transpositions.size();
+      Index j = 0;
+
+      const typename Dest::Scalar *dst_data = internal::extract_data(dst);
+      if(!(is_same<MatrixTypeNestedCleaned,Dest>::value && dst_data!=0 && dst_data == extract_data(m_matrix)))
+        dst = m_matrix;
+
+      for(int k=(Transposed?size-1:0) ; Transposed?k>=0:k<size ; Transposed?--k:++k)
+        if((j=m_transpositions.coeff(k))!=k)
+        {
+          if(Side==OnTheLeft)
+            dst.row(k).swap(dst.row(j));
+          else if(Side==OnTheRight)
+            dst.col(k).swap(dst.col(j));
+        }
+    }
+
+  protected:
+    const TranspositionType& m_transpositions;
+    typename MatrixType::Nested m_matrix;
+};
+
+} // end namespace internal
+
+/* Template partial specialization for transposed/inverse transpositions */
+
+template<typename TranspositionsDerived>
+class Transpose<TranspositionsBase<TranspositionsDerived> >
+{
+    typedef TranspositionsDerived TranspositionType;
+    typedef typename TranspositionType::IndicesType IndicesType;
+  public:
+
+    Transpose(const TranspositionType& t) : m_transpositions(t) {}
+
+    inline int size() const { return m_transpositions.size(); }
+
+    /** \returns the \a matrix with the inverse transpositions applied to the columns.
+      */
+    template<typename Derived> friend
+    inline const internal::transposition_matrix_product_retval<TranspositionType, Derived, OnTheRight, true>
+    operator*(const MatrixBase<Derived>& matrix, const Transpose& trt)
+    {
+      return internal::transposition_matrix_product_retval<TranspositionType, Derived, OnTheRight, true>(trt.m_transpositions, matrix.derived());
+    }
+
+    /** \returns the \a matrix with the inverse transpositions applied to the rows.
+      */
+    template<typename Derived>
+    inline const internal::transposition_matrix_product_retval<TranspositionType, Derived, OnTheLeft, true>
+    operator*(const MatrixBase<Derived>& matrix) const
+    {
+      return internal::transposition_matrix_product_retval<TranspositionType, Derived, OnTheLeft, true>(m_transpositions, matrix.derived());
+    }
+
+  protected:
+    const TranspositionType& m_transpositions;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRANSPOSITIONS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/MatrixBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/MatrixBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/MatrixBase.h	(revision 2476)
@@ -0,0 +1,563 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIXBASE_H
+#define EIGEN_MATRIXBASE_H
+
+namespace Eigen {
+
+/** \class MatrixBase
+  * \ingroup Core_Module
+  *
+  * \brief Base class for all dense matrices, vectors, and expressions
+  *
+  * This class is the base that is inherited by all matrix, vector, and related expression
+  * types. Most of the Eigen API is contained in this class, and its base classes. Other important
+  * classes for the Eigen API are Matrix, and VectorwiseOp.
+  *
+  * Note that some methods are defined in other modules such as the \ref LU_Module LU module
+  * for all functions related to matrix inversions.
+  *
+  * \tparam Derived is the derived type, e.g. a matrix type, or an expression, etc.
+  *
+  * When writing a function taking Eigen objects as argument, if you want your function
+  * to take as argument any matrix, vector, or expression, just let it take a
+  * MatrixBase argument. As an example, here is a function printFirstRow which, given
+  * a matrix, vector, or expression \a x, prints the first row of \a x.
+  *
+  * \code
+    template<typename Derived>
+    void printFirstRow(const Eigen::MatrixBase<Derived>& x)
+    {
+      cout << x.row(0) << endl;
+    }
+  * \endcode
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_MATRIXBASE_PLUGIN.
+  *
+  * \sa \ref TopicClassHierarchy
+  */
+template<typename Derived> class MatrixBase
+  : public DenseBase<Derived>
+{
+  public:
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    typedef MatrixBase StorageBaseType;
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::traits<Derived>::Index Index;
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::packet_traits<Scalar>::type PacketScalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    typedef DenseBase<Derived> Base;
+    using Base::RowsAtCompileTime;
+    using Base::ColsAtCompileTime;
+    using Base::SizeAtCompileTime;
+    using Base::MaxRowsAtCompileTime;
+    using Base::MaxColsAtCompileTime;
+    using Base::MaxSizeAtCompileTime;
+    using Base::IsVectorAtCompileTime;
+    using Base::Flags;
+    using Base::CoeffReadCost;
+
+    using Base::derived;
+    using Base::const_cast_derived;
+    using Base::rows;
+    using Base::cols;
+    using Base::size;
+    using Base::coeff;
+    using Base::coeffRef;
+    using Base::lazyAssign;
+    using Base::eval;
+    using Base::operator+=;
+    using Base::operator-=;
+    using Base::operator*=;
+    using Base::operator/=;
+
+    typedef typename Base::CoeffReturnType CoeffReturnType;
+    typedef typename Base::ConstTransposeReturnType ConstTransposeReturnType;
+    typedef typename Base::RowXpr RowXpr;
+    typedef typename Base::ColXpr ColXpr;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** type of the equivalent square matrix */
+    typedef Matrix<Scalar,EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime),
+                          EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime)> SquareMatrixType;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+    /** \returns the size of the main diagonal, which is min(rows(),cols()).
+      * \sa rows(), cols(), SizeAtCompileTime. */
+    inline Index diagonalSize() const { return (std::min)(rows(),cols()); }
+
+    /** \brief The plain matrix type corresponding to this expression.
+      *
+      * This is not necessarily exactly the return type of eval(). In the case of plain matrices,
+      * the return type of eval() is a const reference to a matrix, not a matrix! It is however guaranteed
+      * that the return type of eval() is either PlainObject or const PlainObject&.
+      */
+    typedef Matrix<typename internal::traits<Derived>::Scalar,
+                internal::traits<Derived>::RowsAtCompileTime,
+                internal::traits<Derived>::ColsAtCompileTime,
+                AutoAlign | (internal::traits<Derived>::Flags&RowMajorBit ? RowMajor : ColMajor),
+                internal::traits<Derived>::MaxRowsAtCompileTime,
+                internal::traits<Derived>::MaxColsAtCompileTime
+          > PlainObject;
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal Represents a matrix with all coefficients equal to one another*/
+    typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,Derived> ConstantReturnType;
+    /** \internal the return type of MatrixBase::adjoint() */
+    typedef typename internal::conditional<NumTraits<Scalar>::IsComplex,
+                        CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, ConstTransposeReturnType>,
+                        ConstTransposeReturnType
+                     >::type AdjointReturnType;
+    /** \internal Return type of eigenvalues() */
+    typedef Matrix<std::complex<RealScalar>, internal::traits<Derived>::ColsAtCompileTime, 1, ColMajor> EigenvaluesReturnType;
+    /** \internal the return type of identity */
+    typedef CwiseNullaryOp<internal::scalar_identity_op<Scalar>,Derived> IdentityReturnType;
+    /** \internal the return type of unit vectors */
+    typedef Block<const CwiseNullaryOp<internal::scalar_identity_op<Scalar>, SquareMatrixType>,
+                  internal::traits<Derived>::RowsAtCompileTime,
+                  internal::traits<Derived>::ColsAtCompileTime> BasisReturnType;
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::MatrixBase
+#   include "../plugins/CommonCwiseUnaryOps.h"
+#   include "../plugins/CommonCwiseBinaryOps.h"
+#   include "../plugins/MatrixCwiseUnaryOps.h"
+#   include "../plugins/MatrixCwiseBinaryOps.h"
+#   ifdef EIGEN_MATRIXBASE_PLUGIN
+#     include EIGEN_MATRIXBASE_PLUGIN
+#   endif
+#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
+
+    /** Special case of the template operator=, in order to prevent the compiler
+      * from generating a default operator= (issue hit with g++ 4.1)
+      */
+    Derived& operator=(const MatrixBase& other);
+
+    // We cannot inherit here via Base::operator= since it is causing
+    // trouble with MSVC.
+
+    template <typename OtherDerived>
+    Derived& operator=(const DenseBase<OtherDerived>& other);
+
+    template <typename OtherDerived>
+    Derived& operator=(const EigenBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    Derived& operator=(const ReturnByValue<OtherDerived>& other);
+
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    Derived& lazyAssign(const ProductBase<ProductDerived, Lhs,Rhs>& other);
+
+    template<typename MatrixPower, typename Lhs, typename Rhs>
+    Derived& lazyAssign(const MatrixPowerProduct<MatrixPower, Lhs,Rhs>& other);
+
+    template<typename OtherDerived>
+    Derived& operator+=(const MatrixBase<OtherDerived>& other);
+    template<typename OtherDerived>
+    Derived& operator-=(const MatrixBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    const typename ProductReturnType<Derived,OtherDerived>::Type
+    operator*(const MatrixBase<OtherDerived> &other) const;
+
+    template<typename OtherDerived>
+    const typename LazyProductReturnType<Derived,OtherDerived>::Type
+    lazyProduct(const MatrixBase<OtherDerived> &other) const;
+
+    template<typename OtherDerived>
+    Derived& operator*=(const EigenBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    void applyOnTheLeft(const EigenBase<OtherDerived>& other);
+
+    template<typename OtherDerived>
+    void applyOnTheRight(const EigenBase<OtherDerived>& other);
+
+    template<typename DiagonalDerived>
+    const DiagonalProduct<Derived, DiagonalDerived, OnTheRight>
+    operator*(const DiagonalBase<DiagonalDerived> &diagonal) const;
+
+    template<typename OtherDerived>
+    typename internal::scalar_product_traits<typename internal::traits<Derived>::Scalar,typename internal::traits<OtherDerived>::Scalar>::ReturnType
+    dot(const MatrixBase<OtherDerived>& other) const;
+
+    #ifdef EIGEN2_SUPPORT
+      template<typename OtherDerived>
+      Scalar eigen2_dot(const MatrixBase<OtherDerived>& other) const;
+    #endif
+
+    RealScalar squaredNorm() const;
+    RealScalar norm() const;
+    RealScalar stableNorm() const;
+    RealScalar blueNorm() const;
+    RealScalar hypotNorm() const;
+    const PlainObject normalized() const;
+    void normalize();
+
+    const AdjointReturnType adjoint() const;
+    void adjointInPlace();
+
+    typedef Diagonal<Derived> DiagonalReturnType;
+    DiagonalReturnType diagonal();
+    typedef typename internal::add_const<Diagonal<const Derived> >::type ConstDiagonalReturnType;
+    ConstDiagonalReturnType diagonal() const;
+
+    template<int Index> struct DiagonalIndexReturnType { typedef Diagonal<Derived,Index> Type; };
+    template<int Index> struct ConstDiagonalIndexReturnType { typedef const Diagonal<const Derived,Index> Type; };
+
+    template<int Index> typename DiagonalIndexReturnType<Index>::Type diagonal();
+    template<int Index> typename ConstDiagonalIndexReturnType<Index>::Type diagonal() const;
+    
+    typedef Diagonal<Derived,DynamicIndex> DiagonalDynamicIndexReturnType;
+    typedef typename internal::add_const<Diagonal<const Derived,DynamicIndex> >::type ConstDiagonalDynamicIndexReturnType;
+
+    DiagonalDynamicIndexReturnType diagonal(Index index);
+    ConstDiagonalDynamicIndexReturnType diagonal(Index index) const;
+
+    #ifdef EIGEN2_SUPPORT
+    template<unsigned int Mode> typename internal::eigen2_part_return_type<Derived, Mode>::type part();
+    template<unsigned int Mode> const typename internal::eigen2_part_return_type<Derived, Mode>::type part() const;
+    
+    // huuuge hack. make Eigen2's matrix.part<Diagonal>() work in eigen3. Problem: Diagonal is now a class template instead
+    // of an integer constant. Solution: overload the part() method template wrt template parameters list.
+    template<template<typename T, int N> class U>
+    const DiagonalWrapper<ConstDiagonalReturnType> part() const
+    { return diagonal().asDiagonal(); }
+    #endif // EIGEN2_SUPPORT
+
+    template<unsigned int Mode> struct TriangularViewReturnType { typedef TriangularView<Derived, Mode> Type; };
+    template<unsigned int Mode> struct ConstTriangularViewReturnType { typedef const TriangularView<const Derived, Mode> Type; };
+
+    template<unsigned int Mode> typename TriangularViewReturnType<Mode>::Type triangularView();
+    template<unsigned int Mode> typename ConstTriangularViewReturnType<Mode>::Type triangularView() const;
+
+    template<unsigned int UpLo> struct SelfAdjointViewReturnType { typedef SelfAdjointView<Derived, UpLo> Type; };
+    template<unsigned int UpLo> struct ConstSelfAdjointViewReturnType { typedef const SelfAdjointView<const Derived, UpLo> Type; };
+
+    template<unsigned int UpLo> typename SelfAdjointViewReturnType<UpLo>::Type selfadjointView();
+    template<unsigned int UpLo> typename ConstSelfAdjointViewReturnType<UpLo>::Type selfadjointView() const;
+
+    const SparseView<Derived> sparseView(const Scalar& m_reference = Scalar(0),
+                                         const typename NumTraits<Scalar>::Real& m_epsilon = NumTraits<Scalar>::dummy_precision()) const;
+    static const IdentityReturnType Identity();
+    static const IdentityReturnType Identity(Index rows, Index cols);
+    static const BasisReturnType Unit(Index size, Index i);
+    static const BasisReturnType Unit(Index i);
+    static const BasisReturnType UnitX();
+    static const BasisReturnType UnitY();
+    static const BasisReturnType UnitZ();
+    static const BasisReturnType UnitW();
+
+    const DiagonalWrapper<const Derived> asDiagonal() const;
+    const PermutationWrapper<const Derived> asPermutation() const;
+
+    Derived& setIdentity();
+    Derived& setIdentity(Index rows, Index cols);
+
+    bool isIdentity(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isDiagonal(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+    bool isUpperTriangular(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isLowerTriangular(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+    template<typename OtherDerived>
+    bool isOrthogonal(const MatrixBase<OtherDerived>& other,
+                      const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+    bool isUnitary(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
+
+    /** \returns true if each coefficients of \c *this and \a other are all exactly equal.
+      * \warning When using floating point scalar values you probably should rather use a
+      *          fuzzy comparison such as isApprox()
+      * \sa isApprox(), operator!= */
+    template<typename OtherDerived>
+    inline bool operator==(const MatrixBase<OtherDerived>& other) const
+    { return cwiseEqual(other).all(); }
+
+    /** \returns true if at least one pair of coefficients of \c *this and \a other are not exactly equal to each other.
+      * \warning When using floating point scalar values you probably should rather use a
+      *          fuzzy comparison such as isApprox()
+      * \sa isApprox(), operator== */
+    template<typename OtherDerived>
+    inline bool operator!=(const MatrixBase<OtherDerived>& other) const
+    { return cwiseNotEqual(other).any(); }
+
+    NoAlias<Derived,Eigen::MatrixBase > noalias();
+
+    inline const ForceAlignedAccess<Derived> forceAlignedAccess() const;
+    inline ForceAlignedAccess<Derived> forceAlignedAccess();
+    template<bool Enable> inline typename internal::add_const_on_value_type<typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type>::type forceAlignedAccessIf() const;
+    template<bool Enable> inline typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type forceAlignedAccessIf();
+
+    Scalar trace() const;
+
+/////////// Array module ///////////
+
+    template<int p> RealScalar lpNorm() const;
+
+    MatrixBase<Derived>& matrix() { return *this; }
+    const MatrixBase<Derived>& matrix() const { return *this; }
+
+    /** \returns an \link Eigen::ArrayBase Array \endlink expression of this matrix
+      * \sa ArrayBase::matrix() */
+    ArrayWrapper<Derived> array() { return derived(); }
+    const ArrayWrapper<const Derived> array() const { return derived(); }
+
+/////////// LU module ///////////
+
+    const FullPivLU<PlainObject> fullPivLu() const;
+    const PartialPivLU<PlainObject> partialPivLu() const;
+
+    #if EIGEN2_SUPPORT_STAGE < STAGE20_RESOLVE_API_CONFLICTS
+    const LU<PlainObject> lu() const;
+    #endif
+
+    #ifdef EIGEN2_SUPPORT
+    const LU<PlainObject> eigen2_lu() const;
+    #endif
+
+    #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
+    const PartialPivLU<PlainObject> lu() const;
+    #endif
+    
+    #ifdef EIGEN2_SUPPORT
+    template<typename ResultType>
+    void computeInverse(MatrixBase<ResultType> *result) const {
+      *result = this->inverse();
+    }
+    #endif
+
+    const internal::inverse_impl<Derived> inverse() const;
+    template<typename ResultType>
+    void computeInverseAndDetWithCheck(
+      ResultType& inverse,
+      typename ResultType::Scalar& determinant,
+      bool& invertible,
+      const RealScalar& absDeterminantThreshold = NumTraits<Scalar>::dummy_precision()
+    ) const;
+    template<typename ResultType>
+    void computeInverseWithCheck(
+      ResultType& inverse,
+      bool& invertible,
+      const RealScalar& absDeterminantThreshold = NumTraits<Scalar>::dummy_precision()
+    ) const;
+    Scalar determinant() const;
+
+/////////// Cholesky module ///////////
+
+    const LLT<PlainObject>  llt() const;
+    const LDLT<PlainObject> ldlt() const;
+
+/////////// QR module ///////////
+
+    const HouseholderQR<PlainObject> householderQr() const;
+    const ColPivHouseholderQR<PlainObject> colPivHouseholderQr() const;
+    const FullPivHouseholderQR<PlainObject> fullPivHouseholderQr() const;
+    
+    #ifdef EIGEN2_SUPPORT
+    const QR<PlainObject> qr() const;
+    #endif
+
+    EigenvaluesReturnType eigenvalues() const;
+    RealScalar operatorNorm() const;
+
+/////////// SVD module ///////////
+
+    JacobiSVD<PlainObject> jacobiSvd(unsigned int computationOptions = 0) const;
+
+    #ifdef EIGEN2_SUPPORT
+    SVD<PlainObject> svd() const;
+    #endif
+
+/////////// Geometry module ///////////
+
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /// \internal helper struct to form the return type of the cross product
+    template<typename OtherDerived> struct cross_product_return_type {
+      typedef typename internal::scalar_product_traits<typename internal::traits<Derived>::Scalar,typename internal::traits<OtherDerived>::Scalar>::ReturnType Scalar;
+      typedef Matrix<Scalar,MatrixBase::RowsAtCompileTime,MatrixBase::ColsAtCompileTime> type;
+    };
+    #endif // EIGEN_PARSED_BY_DOXYGEN
+    template<typename OtherDerived>
+    typename cross_product_return_type<OtherDerived>::type
+    cross(const MatrixBase<OtherDerived>& other) const;
+    template<typename OtherDerived>
+    PlainObject cross3(const MatrixBase<OtherDerived>& other) const;
+    PlainObject unitOrthogonal(void) const;
+    Matrix<Scalar,3,1> eulerAngles(Index a0, Index a1, Index a2) const;
+    
+    #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
+    ScalarMultipleReturnType operator*(const UniformScaling<Scalar>& s) const;
+    // put this as separate enum value to work around possible GCC 4.3 bug (?)
+    enum { HomogeneousReturnTypeDirection = ColsAtCompileTime==1?Vertical:Horizontal };
+    typedef Homogeneous<Derived, HomogeneousReturnTypeDirection> HomogeneousReturnType;
+    HomogeneousReturnType homogeneous() const;
+    #endif
+    
+    enum {
+      SizeMinusOne = SizeAtCompileTime==Dynamic ? Dynamic : SizeAtCompileTime-1
+    };
+    typedef Block<const Derived,
+                  internal::traits<Derived>::ColsAtCompileTime==1 ? SizeMinusOne : 1,
+                  internal::traits<Derived>::ColsAtCompileTime==1 ? 1 : SizeMinusOne> ConstStartMinusOne;
+    typedef CwiseUnaryOp<internal::scalar_quotient1_op<typename internal::traits<Derived>::Scalar>,
+                const ConstStartMinusOne > HNormalizedReturnType;
+
+    const HNormalizedReturnType hnormalized() const;
+
+////////// Householder module ///////////
+
+    void makeHouseholderInPlace(Scalar& tau, RealScalar& beta);
+    template<typename EssentialPart>
+    void makeHouseholder(EssentialPart& essential,
+                         Scalar& tau, RealScalar& beta) const;
+    template<typename EssentialPart>
+    void applyHouseholderOnTheLeft(const EssentialPart& essential,
+                                   const Scalar& tau,
+                                   Scalar* workspace);
+    template<typename EssentialPart>
+    void applyHouseholderOnTheRight(const EssentialPart& essential,
+                                    const Scalar& tau,
+                                    Scalar* workspace);
+
+///////// Jacobi module /////////
+
+    template<typename OtherScalar>
+    void applyOnTheLeft(Index p, Index q, const JacobiRotation<OtherScalar>& j);
+    template<typename OtherScalar>
+    void applyOnTheRight(Index p, Index q, const JacobiRotation<OtherScalar>& j);
+
+///////// SparseCore module /////////
+
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE const typename SparseMatrixBase<OtherDerived>::template CwiseProductDenseReturnType<Derived>::Type
+    cwiseProduct(const SparseMatrixBase<OtherDerived> &other) const
+    {
+      return other.cwiseProduct(derived());
+    }
+
+///////// MatrixFunctions module /////////
+
+    typedef typename internal::stem_function<Scalar>::type StemFunction;
+    const MatrixExponentialReturnValue<Derived> exp() const;
+    const MatrixFunctionReturnValue<Derived> matrixFunction(StemFunction f) const;
+    const MatrixFunctionReturnValue<Derived> cosh() const;
+    const MatrixFunctionReturnValue<Derived> sinh() const;
+    const MatrixFunctionReturnValue<Derived> cos() const;
+    const MatrixFunctionReturnValue<Derived> sin() const;
+    const MatrixSquareRootReturnValue<Derived> sqrt() const;
+    const MatrixLogarithmReturnValue<Derived> log() const;
+    const MatrixPowerReturnValue<Derived> pow(const RealScalar& p) const;
+
+#ifdef EIGEN2_SUPPORT
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    Derived& operator+=(const Flagged<ProductBase<ProductDerived, Lhs,Rhs>, 0,
+                                      EvalBeforeAssigningBit>& other);
+
+    template<typename ProductDerived, typename Lhs, typename Rhs>
+    Derived& operator-=(const Flagged<ProductBase<ProductDerived, Lhs,Rhs>, 0,
+                                      EvalBeforeAssigningBit>& other);
+
+    /** \deprecated because .lazy() is deprecated
+      * Overloaded for cache friendly product evaluation */
+    template<typename OtherDerived>
+    Derived& lazyAssign(const Flagged<OtherDerived, 0, EvalBeforeAssigningBit>& other)
+    { return lazyAssign(other._expression()); }
+
+    template<unsigned int Added>
+    const Flagged<Derived, Added, 0> marked() const;
+    const Flagged<Derived, 0, EvalBeforeAssigningBit> lazy() const;
+
+    inline const Cwise<Derived> cwise() const;
+    inline Cwise<Derived> cwise();
+
+    VectorBlock<Derived> start(Index size);
+    const VectorBlock<const Derived> start(Index size) const;
+    VectorBlock<Derived> end(Index size);
+    const VectorBlock<const Derived> end(Index size) const;
+    template<int Size> VectorBlock<Derived,Size> start();
+    template<int Size> const VectorBlock<const Derived,Size> start() const;
+    template<int Size> VectorBlock<Derived,Size> end();
+    template<int Size> const VectorBlock<const Derived,Size> end() const;
+
+    Minor<Derived> minor(Index row, Index col);
+    const Minor<Derived> minor(Index row, Index col) const;
+#endif
+
+  protected:
+    MatrixBase() : Base() {}
+
+  private:
+    explicit MatrixBase(int);
+    MatrixBase(int,int);
+    template<typename OtherDerived> explicit MatrixBase(const MatrixBase<OtherDerived>&);
+  protected:
+    // mixing arrays and matrices is not legal
+    template<typename OtherDerived> Derived& operator+=(const ArrayBase<OtherDerived>& )
+    {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
+    // mixing arrays and matrices is not legal
+    template<typename OtherDerived> Derived& operator-=(const ArrayBase<OtherDerived>& )
+    {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
+};
+
+
+/***************************************************************************
+* Implementation of matrix base methods
+***************************************************************************/
+
+/** replaces \c *this by \c *this * \a other.
+  *
+  * \returns a reference to \c *this
+  *
+  * Example: \include MatrixBase_applyOnTheRight.cpp
+  * Output: \verbinclude MatrixBase_applyOnTheRight.out
+  */
+template<typename Derived>
+template<typename OtherDerived>
+inline Derived&
+MatrixBase<Derived>::operator*=(const EigenBase<OtherDerived> &other)
+{
+  other.derived().applyThisOnTheRight(derived());
+  return derived();
+}
+
+/** replaces \c *this by \c *this * \a other. It is equivalent to MatrixBase::operator*=().
+  *
+  * Example: \include MatrixBase_applyOnTheRight.cpp
+  * Output: \verbinclude MatrixBase_applyOnTheRight.out
+  */
+template<typename Derived>
+template<typename OtherDerived>
+inline void MatrixBase<Derived>::applyOnTheRight(const EigenBase<OtherDerived> &other)
+{
+  other.derived().applyThisOnTheRight(derived());
+}
+
+/** replaces \c *this by \a other * \c *this.
+  *
+  * Example: \include MatrixBase_applyOnTheLeft.cpp
+  * Output: \verbinclude MatrixBase_applyOnTheLeft.out
+  */
+template<typename Derived>
+template<typename OtherDerived>
+inline void MatrixBase<Derived>::applyOnTheLeft(const EigenBase<OtherDerived> &other)
+{
+  other.derived().applyThisOnTheLeft(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIXBASE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Visitor.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Visitor.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Visitor.h	(revision 2476)
@@ -0,0 +1,240 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_VISITOR_H
+#define EIGEN_VISITOR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Visitor, typename Derived, int UnrollCount>
+struct visitor_impl
+{
+  enum {
+    col = (UnrollCount-1) / Derived::RowsAtCompileTime,
+    row = (UnrollCount-1) % Derived::RowsAtCompileTime
+  };
+
+  static inline void run(const Derived &mat, Visitor& visitor)
+  {
+    visitor_impl<Visitor, Derived, UnrollCount-1>::run(mat, visitor);
+    visitor(mat.coeff(row, col), row, col);
+  }
+};
+
+template<typename Visitor, typename Derived>
+struct visitor_impl<Visitor, Derived, 1>
+{
+  static inline void run(const Derived &mat, Visitor& visitor)
+  {
+    return visitor.init(mat.coeff(0, 0), 0, 0);
+  }
+};
+
+template<typename Visitor, typename Derived>
+struct visitor_impl<Visitor, Derived, Dynamic>
+{
+  typedef typename Derived::Index Index;
+  static inline void run(const Derived& mat, Visitor& visitor)
+  {
+    visitor.init(mat.coeff(0,0), 0, 0);
+    for(Index i = 1; i < mat.rows(); ++i)
+      visitor(mat.coeff(i, 0), i, 0);
+    for(Index j = 1; j < mat.cols(); ++j)
+      for(Index i = 0; i < mat.rows(); ++i)
+        visitor(mat.coeff(i, j), i, j);
+  }
+};
+
+} // end namespace internal
+
+/** Applies the visitor \a visitor to the whole coefficients of the matrix or vector.
+  *
+  * The template parameter \a Visitor is the type of the visitor and provides the following interface:
+  * \code
+  * struct MyVisitor {
+  *   // called for the first coefficient
+  *   void init(const Scalar& value, Index i, Index j);
+  *   // called for all other coefficients
+  *   void operator() (const Scalar& value, Index i, Index j);
+  * };
+  * \endcode
+  *
+  * \note compared to one or two \em for \em loops, visitors offer automatic
+  * unrolling for small fixed size matrix.
+  *
+  * \sa minCoeff(Index*,Index*), maxCoeff(Index*,Index*), DenseBase::redux()
+  */
+template<typename Derived>
+template<typename Visitor>
+void DenseBase<Derived>::visit(Visitor& visitor) const
+{
+  typedef typename internal::remove_all<typename Derived::Nested>::type ThisNested;
+  typename Derived::Nested thisNested(derived());
+
+  enum { unroll = SizeAtCompileTime != Dynamic
+                   && CoeffReadCost != Dynamic
+                   && (SizeAtCompileTime == 1 || internal::functor_traits<Visitor>::Cost != Dynamic)
+                   && SizeAtCompileTime * CoeffReadCost + (SizeAtCompileTime-1) * internal::functor_traits<Visitor>::Cost
+                      <= EIGEN_UNROLLING_LIMIT };
+  return internal::visitor_impl<Visitor, ThisNested,
+      unroll ? int(SizeAtCompileTime) : Dynamic
+    >::run(thisNested, visitor);
+}
+
+namespace internal {
+
+/** \internal
+  * \brief Base class to implement min and max visitors
+  */
+template <typename Derived>
+struct coeff_visitor
+{
+  typedef typename Derived::Index Index;
+  typedef typename Derived::Scalar Scalar;
+  Index row, col;
+  Scalar res;
+  inline void init(const Scalar& value, Index i, Index j)
+  {
+    res = value;
+    row = i;
+    col = j;
+  }
+};
+
+/** \internal
+  * \brief Visitor computing the min coefficient with its value and coordinates
+  *
+  * \sa DenseBase::minCoeff(Index*, Index*)
+  */
+template <typename Derived>
+struct min_coeff_visitor : coeff_visitor<Derived>
+{
+  typedef typename Derived::Index Index;
+  typedef typename Derived::Scalar Scalar;
+  void operator() (const Scalar& value, Index i, Index j)
+  {
+    if(value < this->res)
+    {
+      this->res = value;
+      this->row = i;
+      this->col = j;
+    }
+  }
+};
+
+template<typename Scalar>
+struct functor_traits<min_coeff_visitor<Scalar> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost
+  };
+};
+
+/** \internal
+  * \brief Visitor computing the max coefficient with its value and coordinates
+  *
+  * \sa DenseBase::maxCoeff(Index*, Index*)
+  */
+template <typename Derived>
+struct max_coeff_visitor : coeff_visitor<Derived>
+{
+  typedef typename Derived::Index Index;
+  typedef typename Derived::Scalar Scalar;
+  void operator() (const Scalar& value, Index i, Index j)
+  {
+    if(value > this->res)
+    {
+      this->res = value;
+      this->row = i;
+      this->col = j;
+    }
+  }
+};
+
+template<typename Scalar>
+struct functor_traits<max_coeff_visitor<Scalar> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost
+  };
+};
+
+} // end namespace internal
+
+/** \returns the minimum of all coefficients of *this and puts in *row and *col its location.
+  * \warning the result is undefined if \c *this contains NaN.
+  *
+  * \sa DenseBase::minCoeff(Index*), DenseBase::maxCoeff(Index*,Index*), DenseBase::visitor(), DenseBase::minCoeff()
+  */
+template<typename Derived>
+template<typename IndexType>
+typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::minCoeff(IndexType* rowId, IndexType* colId) const
+{
+  internal::min_coeff_visitor<Derived> minVisitor;
+  this->visit(minVisitor);
+  *rowId = minVisitor.row;
+  if (colId) *colId = minVisitor.col;
+  return minVisitor.res;
+}
+
+/** \returns the minimum of all coefficients of *this and puts in *index its location.
+  * \warning the result is undefined if \c *this contains NaN. 
+  *
+  * \sa DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::maxCoeff(IndexType*,IndexType*), DenseBase::visitor(), DenseBase::minCoeff()
+  */
+template<typename Derived>
+template<typename IndexType>
+typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::minCoeff(IndexType* index) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  internal::min_coeff_visitor<Derived> minVisitor;
+  this->visit(minVisitor);
+  *index = (RowsAtCompileTime==1) ? minVisitor.col : minVisitor.row;
+  return minVisitor.res;
+}
+
+/** \returns the maximum of all coefficients of *this and puts in *row and *col its location.
+  * \warning the result is undefined if \c *this contains NaN. 
+  *
+  * \sa DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visitor(), DenseBase::maxCoeff()
+  */
+template<typename Derived>
+template<typename IndexType>
+typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::maxCoeff(IndexType* rowPtr, IndexType* colPtr) const
+{
+  internal::max_coeff_visitor<Derived> maxVisitor;
+  this->visit(maxVisitor);
+  *rowPtr = maxVisitor.row;
+  if (colPtr) *colPtr = maxVisitor.col;
+  return maxVisitor.res;
+}
+
+/** \returns the maximum of all coefficients of *this and puts in *index its location.
+  * \warning the result is undefined if \c *this contains NaN.
+  *
+  * \sa DenseBase::maxCoeff(IndexType*,IndexType*), DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visitor(), DenseBase::maxCoeff()
+  */
+template<typename Derived>
+template<typename IndexType>
+typename internal::traits<Derived>::Scalar
+DenseBase<Derived>::maxCoeff(IndexType* index) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  internal::max_coeff_visitor<Derived> maxVisitor;
+  this->visit(maxVisitor);
+  *index = (RowsAtCompileTime==1) ? maxVisitor.col : maxVisitor.row;
+  return maxVisitor.res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_VISITOR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/NestByValue.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/NestByValue.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/NestByValue.h	(revision 2476)
@@ -0,0 +1,111 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_NESTBYVALUE_H
+#define EIGEN_NESTBYVALUE_H
+
+namespace Eigen {
+
+/** \class NestByValue
+  * \ingroup Core_Module
+  *
+  * \brief Expression which must be nested by value
+  *
+  * \param ExpressionType the type of the object of which we are requiring nesting-by-value
+  *
+  * This class is the return type of MatrixBase::nestByValue()
+  * and most of the time this is the only way it is used.
+  *
+  * \sa MatrixBase::nestByValue()
+  */
+
+namespace internal {
+template<typename ExpressionType>
+struct traits<NestByValue<ExpressionType> > : public traits<ExpressionType>
+{};
+}
+
+template<typename ExpressionType> class NestByValue
+  : public internal::dense_xpr_base< NestByValue<ExpressionType> >::type
+{
+  public:
+
+    typedef typename internal::dense_xpr_base<NestByValue>::type Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(NestByValue)
+
+    inline NestByValue(const ExpressionType& matrix) : m_expression(matrix) {}
+
+    inline Index rows() const { return m_expression.rows(); }
+    inline Index cols() const { return m_expression.cols(); }
+    inline Index outerStride() const { return m_expression.outerStride(); }
+    inline Index innerStride() const { return m_expression.innerStride(); }
+
+    inline const CoeffReturnType coeff(Index row, Index col) const
+    {
+      return m_expression.coeff(row, col);
+    }
+
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      return m_expression.const_cast_derived().coeffRef(row, col);
+    }
+
+    inline const CoeffReturnType coeff(Index index) const
+    {
+      return m_expression.coeff(index);
+    }
+
+    inline Scalar& coeffRef(Index index)
+    {
+      return m_expression.const_cast_derived().coeffRef(index);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index row, Index col) const
+    {
+      return m_expression.template packet<LoadMode>(row, col);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index row, Index col, const PacketScalar& x)
+    {
+      m_expression.const_cast_derived().template writePacket<LoadMode>(row, col, x);
+    }
+
+    template<int LoadMode>
+    inline const PacketScalar packet(Index index) const
+    {
+      return m_expression.template packet<LoadMode>(index);
+    }
+
+    template<int LoadMode>
+    inline void writePacket(Index index, const PacketScalar& x)
+    {
+      m_expression.const_cast_derived().template writePacket<LoadMode>(index, x);
+    }
+
+    operator const ExpressionType&() const { return m_expression; }
+
+  protected:
+    const ExpressionType m_expression;
+};
+
+/** \returns an expression of the temporary version of *this.
+  */
+template<typename Derived>
+inline const NestByValue<Derived>
+DenseBase<Derived>::nestByValue() const
+{
+  return NestByValue<Derived>(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_NESTBYVALUE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Functors.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Functors.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Core/Functors.h	(revision 2476)
@@ -0,0 +1,1026 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_FUNCTORS_H
+#define EIGEN_FUNCTORS_H
+
+namespace Eigen {
+
+namespace internal {
+
+// associative functors:
+
+/** \internal
+  * \brief Template functor to compute the sum of two scalars
+  *
+  * \sa class CwiseBinaryOp, MatrixBase::operator+, class VectorwiseOp, MatrixBase::sum()
+  */
+template<typename Scalar> struct scalar_sum_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_sum_op)
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { return a + b; }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return internal::padd(a,b); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Scalar predux(const Packet& a) const
+  { return internal::predux(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_sum_op<Scalar> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = packet_traits<Scalar>::HasAdd
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the product of two scalars
+  *
+  * \sa class CwiseBinaryOp, Cwise::operator*(), class VectorwiseOp, MatrixBase::redux()
+  */
+template<typename LhsScalar,typename RhsScalar> struct scalar_product_op {
+  enum {
+    // TODO vectorize mixed product
+    Vectorizable = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasMul && packet_traits<RhsScalar>::HasMul
+  };
+  typedef typename scalar_product_traits<LhsScalar,RhsScalar>::ReturnType result_type;
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_product_op)
+  EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const { return a * b; }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return internal::pmul(a,b); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const result_type predux(const Packet& a) const
+  { return internal::predux_mul(a); }
+};
+template<typename LhsScalar,typename RhsScalar>
+struct functor_traits<scalar_product_op<LhsScalar,RhsScalar> > {
+  enum {
+    Cost = (NumTraits<LhsScalar>::MulCost + NumTraits<RhsScalar>::MulCost)/2, // rough estimate!
+    PacketAccess = scalar_product_op<LhsScalar,RhsScalar>::Vectorizable
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the conjugate product of two scalars
+  *
+  * This is a short cut for conj(x) * y which is needed for optimization purpose; in Eigen2 support mode, this becomes x * conj(y)
+  */
+template<typename LhsScalar,typename RhsScalar> struct scalar_conj_product_op {
+
+  enum {
+    Conj = NumTraits<LhsScalar>::IsComplex
+  };
+  
+  typedef typename scalar_product_traits<LhsScalar,RhsScalar>::ReturnType result_type;
+  
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_conj_product_op)
+  EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const
+  { return conj_helper<LhsScalar,RhsScalar,Conj,false>().pmul(a,b); }
+  
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return conj_helper<Packet,Packet,Conj,false>().pmul(a,b); }
+};
+template<typename LhsScalar,typename RhsScalar>
+struct functor_traits<scalar_conj_product_op<LhsScalar,RhsScalar> > {
+  enum {
+    Cost = NumTraits<LhsScalar>::MulCost,
+    PacketAccess = internal::is_same<LhsScalar, RhsScalar>::value && packet_traits<LhsScalar>::HasMul
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the min of two scalars
+  *
+  * \sa class CwiseBinaryOp, MatrixBase::cwiseMin, class VectorwiseOp, MatrixBase::minCoeff()
+  */
+template<typename Scalar> struct scalar_min_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_min_op)
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { using std::min; return (min)(a, b); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return internal::pmin(a,b); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Scalar predux(const Packet& a) const
+  { return internal::predux_min(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_min_op<Scalar> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = packet_traits<Scalar>::HasMin
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the max of two scalars
+  *
+  * \sa class CwiseBinaryOp, MatrixBase::cwiseMax, class VectorwiseOp, MatrixBase::maxCoeff()
+  */
+template<typename Scalar> struct scalar_max_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_max_op)
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { using std::max; return (max)(a, b); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return internal::pmax(a,b); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Scalar predux(const Packet& a) const
+  { return internal::predux_max(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_max_op<Scalar> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = packet_traits<Scalar>::HasMax
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the hypot of two scalars
+  *
+  * \sa MatrixBase::stableNorm(), class Redux
+  */
+template<typename Scalar> struct scalar_hypot_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_hypot_op)
+//   typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& _x, const Scalar& _y) const
+  {
+    using std::max;
+    using std::min;
+    using std::sqrt;
+    Scalar p = (max)(_x, _y);
+    Scalar q = (min)(_x, _y);
+    Scalar qp = q/p;
+    return p * sqrt(Scalar(1) + qp*qp);
+  }
+};
+template<typename Scalar>
+struct functor_traits<scalar_hypot_op<Scalar> > {
+  enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess=0 };
+};
+
+/** \internal
+  * \brief Template functor to compute the pow of two scalars
+  */
+template<typename Scalar, typename OtherScalar> struct scalar_binary_pow_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_binary_pow_op)
+  inline Scalar operator() (const Scalar& a, const OtherScalar& b) const { return numext::pow(a, b); }
+};
+template<typename Scalar, typename OtherScalar>
+struct functor_traits<scalar_binary_pow_op<Scalar,OtherScalar> > {
+  enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = false };
+};
+
+// other binary functors:
+
+/** \internal
+  * \brief Template functor to compute the difference of two scalars
+  *
+  * \sa class CwiseBinaryOp, MatrixBase::operator-
+  */
+template<typename Scalar> struct scalar_difference_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_difference_op)
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a, const Scalar& b) const { return a - b; }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return internal::psub(a,b); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_difference_op<Scalar> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = packet_traits<Scalar>::HasSub
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the quotient of two scalars
+  *
+  * \sa class CwiseBinaryOp, Cwise::operator/()
+  */
+template<typename LhsScalar,typename RhsScalar> struct scalar_quotient_op {
+  enum {
+    // TODO vectorize mixed product
+    Vectorizable = is_same<LhsScalar,RhsScalar>::value && packet_traits<LhsScalar>::HasDiv && packet_traits<RhsScalar>::HasDiv
+  };
+  typedef typename scalar_product_traits<LhsScalar,RhsScalar>::ReturnType result_type;
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_quotient_op)
+  EIGEN_STRONG_INLINE const result_type operator() (const LhsScalar& a, const RhsScalar& b) const { return a / b; }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a, const Packet& b) const
+  { return internal::pdiv(a,b); }
+};
+template<typename LhsScalar,typename RhsScalar>
+struct functor_traits<scalar_quotient_op<LhsScalar,RhsScalar> > {
+  enum {
+    Cost = (NumTraits<LhsScalar>::MulCost + NumTraits<RhsScalar>::MulCost), // rough estimate!
+    PacketAccess = scalar_quotient_op<LhsScalar,RhsScalar>::Vectorizable
+  };
+};
+
+
+
+/** \internal
+  * \brief Template functor to compute the and of two booleans
+  *
+  * \sa class CwiseBinaryOp, ArrayBase::operator&&
+  */
+struct scalar_boolean_and_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_boolean_and_op)
+  EIGEN_STRONG_INLINE bool operator() (const bool& a, const bool& b) const { return a && b; }
+};
+template<> struct functor_traits<scalar_boolean_and_op> {
+  enum {
+    Cost = NumTraits<bool>::AddCost,
+    PacketAccess = false
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the or of two booleans
+  *
+  * \sa class CwiseBinaryOp, ArrayBase::operator||
+  */
+struct scalar_boolean_or_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_boolean_or_op)
+  EIGEN_STRONG_INLINE bool operator() (const bool& a, const bool& b) const { return a || b; }
+};
+template<> struct functor_traits<scalar_boolean_or_op> {
+  enum {
+    Cost = NumTraits<bool>::AddCost,
+    PacketAccess = false
+  };
+};
+
+/** \internal
+  * \brief Template functors for comparison of two scalars
+  * \todo Implement packet-comparisons
+  */
+template<typename Scalar, ComparisonName cmp> struct scalar_cmp_op;
+
+template<typename Scalar, ComparisonName cmp>
+struct functor_traits<scalar_cmp_op<Scalar, cmp> > {
+  enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = false
+  };
+};
+
+template<ComparisonName Cmp, typename Scalar>
+struct result_of<scalar_cmp_op<Scalar, Cmp>(Scalar,Scalar)> {
+  typedef bool type;
+};
+
+
+template<typename Scalar> struct scalar_cmp_op<Scalar, cmp_EQ> {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+  EIGEN_STRONG_INLINE bool operator()(const Scalar& a, const Scalar& b) const {return a==b;}
+};
+template<typename Scalar> struct scalar_cmp_op<Scalar, cmp_LT> {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+  EIGEN_STRONG_INLINE bool operator()(const Scalar& a, const Scalar& b) const {return a<b;}
+};
+template<typename Scalar> struct scalar_cmp_op<Scalar, cmp_LE> {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+  EIGEN_STRONG_INLINE bool operator()(const Scalar& a, const Scalar& b) const {return a<=b;}
+};
+template<typename Scalar> struct scalar_cmp_op<Scalar, cmp_UNORD> {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+  EIGEN_STRONG_INLINE bool operator()(const Scalar& a, const Scalar& b) const {return !(a<=b || b<=a);}
+};
+template<typename Scalar> struct scalar_cmp_op<Scalar, cmp_NEQ> {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cmp_op)
+  EIGEN_STRONG_INLINE bool operator()(const Scalar& a, const Scalar& b) const {return a!=b;}
+};
+
+// unary functors:
+
+/** \internal
+  * \brief Template functor to compute the opposite of a scalar
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::operator-
+  */
+template<typename Scalar> struct scalar_opposite_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_opposite_op)
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { return -a; }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+  { return internal::pnegate(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_opposite_op<Scalar> >
+{ enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = packet_traits<Scalar>::HasNegate };
+};
+
+/** \internal
+  * \brief Template functor to compute the absolute value of a scalar
+  *
+  * \sa class CwiseUnaryOp, Cwise::abs
+  */
+template<typename Scalar> struct scalar_abs_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_abs_op)
+  typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE const result_type operator() (const Scalar& a) const { using std::abs; return abs(a); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+  { return internal::pabs(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_abs_op<Scalar> >
+{
+  enum {
+    Cost = NumTraits<Scalar>::AddCost,
+    PacketAccess = packet_traits<Scalar>::HasAbs
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the squared absolute value of a scalar
+  *
+  * \sa class CwiseUnaryOp, Cwise::abs2
+  */
+template<typename Scalar> struct scalar_abs2_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_abs2_op)
+  typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE const result_type operator() (const Scalar& a) const { return numext::abs2(a); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+  { return internal::pmul(a,a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_abs2_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasAbs2 }; };
+
+/** \internal
+  * \brief Template functor to compute the conjugate of a complex value
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::conjugate()
+  */
+template<typename Scalar> struct scalar_conjugate_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_conjugate_op)
+  EIGEN_STRONG_INLINE const Scalar operator() (const Scalar& a) const { using numext::conj; return conj(a); }
+  template<typename Packet>
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const { return internal::pconj(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_conjugate_op<Scalar> >
+{
+  enum {
+    Cost = NumTraits<Scalar>::IsComplex ? NumTraits<Scalar>::AddCost : 0,
+    PacketAccess = packet_traits<Scalar>::HasConj
+  };
+};
+
+/** \internal
+  * \brief Template functor to cast a scalar to another type
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::cast()
+  */
+template<typename Scalar, typename NewType>
+struct scalar_cast_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cast_op)
+  typedef NewType result_type;
+  EIGEN_STRONG_INLINE const NewType operator() (const Scalar& a) const { return cast<Scalar, NewType>(a); }
+};
+template<typename Scalar, typename NewType>
+struct functor_traits<scalar_cast_op<Scalar,NewType> >
+{ enum { Cost = is_same<Scalar, NewType>::value ? 0 : NumTraits<NewType>::AddCost, PacketAccess = false }; };
+
+/** \internal
+  * \brief Template functor to extract the real part of a complex
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::real()
+  */
+template<typename Scalar>
+struct scalar_real_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_real_op)
+  typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE result_type operator() (const Scalar& a) const { return numext::real(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_real_op<Scalar> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+/** \internal
+  * \brief Template functor to extract the imaginary part of a complex
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::imag()
+  */
+template<typename Scalar>
+struct scalar_imag_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_imag_op)
+  typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE result_type operator() (const Scalar& a) const { return numext::imag(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_imag_op<Scalar> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+/** \internal
+  * \brief Template functor to extract the real part of a complex as a reference
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::real()
+  */
+template<typename Scalar>
+struct scalar_real_ref_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_real_ref_op)
+  typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE result_type& operator() (const Scalar& a) const { return numext::real_ref(*const_cast<Scalar*>(&a)); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_real_ref_op<Scalar> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+/** \internal
+  * \brief Template functor to extract the imaginary part of a complex as a reference
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::imag()
+  */
+template<typename Scalar>
+struct scalar_imag_ref_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_imag_ref_op)
+  typedef typename NumTraits<Scalar>::Real result_type;
+  EIGEN_STRONG_INLINE result_type& operator() (const Scalar& a) const { return numext::imag_ref(*const_cast<Scalar*>(&a)); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_imag_ref_op<Scalar> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+/** \internal
+  *
+  * \brief Template functor to compute the exponential of a scalar
+  *
+  * \sa class CwiseUnaryOp, Cwise::exp()
+  */
+template<typename Scalar> struct scalar_exp_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_exp_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::exp; return exp(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::pexp(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_exp_op<Scalar> >
+{ enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasExp }; };
+
+/** \internal
+  *
+  * \brief Template functor to compute the logarithm of a scalar
+  *
+  * \sa class CwiseUnaryOp, Cwise::log()
+  */
+template<typename Scalar> struct scalar_log_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_log_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::log; return log(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::plog(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_log_op<Scalar> >
+{ enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasLog }; };
+
+/** \internal
+  * \brief Template functor to multiply a scalar by a fixed other one
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::operator*, MatrixBase::operator/
+  */
+/* NOTE why doing the pset1() in packetOp *is* an optimization ?
+ * indeed it seems better to declare m_other as a Packet and do the pset1() once
+ * in the constructor. However, in practice:
+ *  - GCC does not like m_other as a Packet and generate a load every time it needs it
+ *  - on the other hand GCC is able to moves the pset1() outside the loop :)
+ *  - simpler code ;)
+ * (ICC and gcc 4.4 seems to perform well in both cases, the issue is visible with y = a*x + b*y)
+ */
+template<typename Scalar>
+struct scalar_multiple_op {
+  typedef typename packet_traits<Scalar>::type Packet;
+  // FIXME default copy constructors seems bugged with std::complex<>
+  EIGEN_STRONG_INLINE scalar_multiple_op(const scalar_multiple_op& other) : m_other(other.m_other) { }
+  EIGEN_STRONG_INLINE scalar_multiple_op(const Scalar& other) : m_other(other) { }
+  EIGEN_STRONG_INLINE Scalar operator() (const Scalar& a) const { return a * m_other; }
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+  { return internal::pmul(a, pset1<Packet>(m_other)); }
+  typename add_const_on_value_type<typename NumTraits<Scalar>::Nested>::type m_other;
+};
+template<typename Scalar>
+struct functor_traits<scalar_multiple_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasMul }; };
+
+template<typename Scalar1, typename Scalar2>
+struct scalar_multiple2_op {
+  typedef typename scalar_product_traits<Scalar1,Scalar2>::ReturnType result_type;
+  EIGEN_STRONG_INLINE scalar_multiple2_op(const scalar_multiple2_op& other) : m_other(other.m_other) { }
+  EIGEN_STRONG_INLINE scalar_multiple2_op(const Scalar2& other) : m_other(other) { }
+  EIGEN_STRONG_INLINE result_type operator() (const Scalar1& a) const { return a * m_other; }
+  typename add_const_on_value_type<typename NumTraits<Scalar2>::Nested>::type m_other;
+};
+template<typename Scalar1,typename Scalar2>
+struct functor_traits<scalar_multiple2_op<Scalar1,Scalar2> >
+{ enum { Cost = NumTraits<Scalar1>::MulCost, PacketAccess = false }; };
+
+/** \internal
+  * \brief Template functor to divide a scalar by a fixed other one
+  *
+  * This functor is used to implement the quotient of a matrix by
+  * a scalar where the scalar type is not necessarily a floating point type.
+  *
+  * \sa class CwiseUnaryOp, MatrixBase::operator/
+  */
+template<typename Scalar>
+struct scalar_quotient1_op {
+  typedef typename packet_traits<Scalar>::type Packet;
+  // FIXME default copy constructors seems bugged with std::complex<>
+  EIGEN_STRONG_INLINE scalar_quotient1_op(const scalar_quotient1_op& other) : m_other(other.m_other) { }
+  EIGEN_STRONG_INLINE scalar_quotient1_op(const Scalar& other) : m_other(other) {}
+  EIGEN_STRONG_INLINE Scalar operator() (const Scalar& a) const { return a / m_other; }
+  EIGEN_STRONG_INLINE const Packet packetOp(const Packet& a) const
+  { return internal::pdiv(a, pset1<Packet>(m_other)); }
+  typename add_const_on_value_type<typename NumTraits<Scalar>::Nested>::type m_other;
+};
+template<typename Scalar>
+struct functor_traits<scalar_quotient1_op<Scalar> >
+{ enum { Cost = 2 * NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasDiv }; };
+
+// nullary functors
+
+template<typename Scalar>
+struct scalar_constant_op {
+  typedef typename packet_traits<Scalar>::type Packet;
+  EIGEN_STRONG_INLINE scalar_constant_op(const scalar_constant_op& other) : m_other(other.m_other) { }
+  EIGEN_STRONG_INLINE scalar_constant_op(const Scalar& other) : m_other(other) { }
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Scalar operator() (Index, Index = 0) const { return m_other; }
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Packet packetOp(Index, Index = 0) const { return internal::pset1<Packet>(m_other); }
+  const Scalar m_other;
+};
+template<typename Scalar>
+struct functor_traits<scalar_constant_op<Scalar> >
+// FIXME replace this packet test by a safe one
+{ enum { Cost = 1, PacketAccess = packet_traits<Scalar>::Vectorizable, IsRepeatable = true }; };
+
+template<typename Scalar> struct scalar_identity_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_identity_op)
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Scalar operator() (Index row, Index col) const { return row==col ? Scalar(1) : Scalar(0); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_identity_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = false, IsRepeatable = true }; };
+
+template <typename Scalar, bool RandomAccess> struct linspaced_op_impl;
+
+// linear access for packet ops:
+// 1) initialization
+//   base = [low, ..., low] + ([step, ..., step] * [-size, ..., 0])
+// 2) each step (where size is 1 for coeff access or PacketSize for packet access)
+//   base += [size*step, ..., size*step]
+//
+// TODO: Perhaps it's better to initialize lazily (so not in the constructor but in packetOp)
+//       in order to avoid the padd() in operator() ?
+template <typename Scalar>
+struct linspaced_op_impl<Scalar,false>
+{
+  typedef typename packet_traits<Scalar>::type Packet;
+
+  linspaced_op_impl(const Scalar& low, const Scalar& step) :
+  m_low(low), m_step(step),
+  m_packetStep(pset1<Packet>(packet_traits<Scalar>::size*step)),
+  m_base(padd(pset1<Packet>(low), pmul(pset1<Packet>(step),plset<Scalar>(-packet_traits<Scalar>::size)))) {}
+
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Scalar operator() (Index i) const 
+  { 
+    m_base = padd(m_base, pset1<Packet>(m_step));
+    return m_low+Scalar(i)*m_step; 
+  }
+
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Packet packetOp(Index) const { return m_base = padd(m_base,m_packetStep); }
+
+  const Scalar m_low;
+  const Scalar m_step;
+  const Packet m_packetStep;
+  mutable Packet m_base;
+};
+
+// random access for packet ops:
+// 1) each step
+//   [low, ..., low] + ( [step, ..., step] * ( [i, ..., i] + [0, ..., size] ) )
+template <typename Scalar>
+struct linspaced_op_impl<Scalar,true>
+{
+  typedef typename packet_traits<Scalar>::type Packet;
+
+  linspaced_op_impl(const Scalar& low, const Scalar& step) :
+  m_low(low), m_step(step),
+  m_lowPacket(pset1<Packet>(m_low)), m_stepPacket(pset1<Packet>(m_step)), m_interPacket(plset<Scalar>(0)) {}
+
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Scalar operator() (Index i) const { return m_low+i*m_step; }
+
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Packet packetOp(Index i) const
+  { return internal::padd(m_lowPacket, pmul(m_stepPacket, padd(pset1<Packet>(Scalar(i)),m_interPacket))); }
+
+  const Scalar m_low;
+  const Scalar m_step;
+  const Packet m_lowPacket;
+  const Packet m_stepPacket;
+  const Packet m_interPacket;
+};
+
+// ----- Linspace functor ----------------------------------------------------------------
+
+// Forward declaration (we default to random access which does not really give
+// us a speed gain when using packet access but it allows to use the functor in
+// nested expressions).
+template <typename Scalar, bool RandomAccess = true> struct linspaced_op;
+template <typename Scalar, bool RandomAccess> struct functor_traits< linspaced_op<Scalar,RandomAccess> >
+{ enum { Cost = 1, PacketAccess = packet_traits<Scalar>::HasSetLinear, IsRepeatable = true }; };
+template <typename Scalar, bool RandomAccess> struct linspaced_op
+{
+  typedef typename packet_traits<Scalar>::type Packet;
+  linspaced_op(const Scalar& low, const Scalar& high, DenseIndex num_steps) : impl((num_steps==1 ? high : low), (num_steps==1 ? Scalar() : (high-low)/Scalar(num_steps-1))) {}
+
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Scalar operator() (Index i) const { return impl(i); }
+
+  // We need this function when assigning e.g. a RowVectorXd to a MatrixXd since
+  // there row==0 and col is used for the actual iteration.
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Scalar operator() (Index row, Index col) const 
+  {
+    eigen_assert(col==0 || row==0);
+    return impl(col + row);
+  }
+
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Packet packetOp(Index i) const { return impl.packetOp(i); }
+
+  // We need this function when assigning e.g. a RowVectorXd to a MatrixXd since
+  // there row==0 and col is used for the actual iteration.
+  template<typename Index>
+  EIGEN_STRONG_INLINE const Packet packetOp(Index row, Index col) const
+  {
+    eigen_assert(col==0 || row==0);
+    return impl.packetOp(col + row);
+  }
+
+  // This proxy object handles the actual required temporaries, the different
+  // implementations (random vs. sequential access) as well as the
+  // correct piping to size 2/4 packet operations.
+  const linspaced_op_impl<Scalar,RandomAccess> impl;
+};
+
+// all functors allow linear access, except scalar_identity_op. So we fix here a quick meta
+// to indicate whether a functor allows linear access, just always answering 'yes' except for
+// scalar_identity_op.
+// FIXME move this to functor_traits adding a functor_default
+template<typename Functor> struct functor_has_linear_access { enum { ret = 1 }; };
+template<typename Scalar> struct functor_has_linear_access<scalar_identity_op<Scalar> > { enum { ret = 0 }; };
+
+// In Eigen, any binary op (Product, CwiseBinaryOp) require the Lhs and Rhs to have the same scalar type, except for multiplication
+// where the mixing of different types is handled by scalar_product_traits
+// In particular, real * complex<real> is allowed.
+// FIXME move this to functor_traits adding a functor_default
+template<typename Functor> struct functor_is_product_like { enum { ret = 0 }; };
+template<typename LhsScalar,typename RhsScalar> struct functor_is_product_like<scalar_product_op<LhsScalar,RhsScalar> > { enum { ret = 1 }; };
+template<typename LhsScalar,typename RhsScalar> struct functor_is_product_like<scalar_conj_product_op<LhsScalar,RhsScalar> > { enum { ret = 1 }; };
+template<typename LhsScalar,typename RhsScalar> struct functor_is_product_like<scalar_quotient_op<LhsScalar,RhsScalar> > { enum { ret = 1 }; };
+
+
+/** \internal
+  * \brief Template functor to add a scalar to a fixed other one
+  * \sa class CwiseUnaryOp, Array::operator+
+  */
+/* If you wonder why doing the pset1() in packetOp() is an optimization check scalar_multiple_op */
+template<typename Scalar>
+struct scalar_add_op {
+  typedef typename packet_traits<Scalar>::type Packet;
+  // FIXME default copy constructors seems bugged with std::complex<>
+  inline scalar_add_op(const scalar_add_op& other) : m_other(other.m_other) { }
+  inline scalar_add_op(const Scalar& other) : m_other(other) { }
+  inline Scalar operator() (const Scalar& a) const { return a + m_other; }
+  inline const Packet packetOp(const Packet& a) const
+  { return internal::padd(a, pset1<Packet>(m_other)); }
+  const Scalar m_other;
+};
+template<typename Scalar>
+struct functor_traits<scalar_add_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = packet_traits<Scalar>::HasAdd }; };
+
+/** \internal
+  * \brief Template functor to compute the square root of a scalar
+  * \sa class CwiseUnaryOp, Cwise::sqrt()
+  */
+template<typename Scalar> struct scalar_sqrt_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_sqrt_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::sqrt; return sqrt(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::psqrt(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_sqrt_op<Scalar> >
+{ enum {
+    Cost = 5 * NumTraits<Scalar>::MulCost,
+    PacketAccess = packet_traits<Scalar>::HasSqrt
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the cosine of a scalar
+  * \sa class CwiseUnaryOp, ArrayBase::cos()
+  */
+template<typename Scalar> struct scalar_cos_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cos_op)
+  inline Scalar operator() (const Scalar& a) const { using std::cos; return cos(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::pcos(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_cos_op<Scalar> >
+{
+  enum {
+    Cost = 5 * NumTraits<Scalar>::MulCost,
+    PacketAccess = packet_traits<Scalar>::HasCos
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the sine of a scalar
+  * \sa class CwiseUnaryOp, ArrayBase::sin()
+  */
+template<typename Scalar> struct scalar_sin_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_sin_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::sin; return sin(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::psin(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_sin_op<Scalar> >
+{
+  enum {
+    Cost = 5 * NumTraits<Scalar>::MulCost,
+    PacketAccess = packet_traits<Scalar>::HasSin
+  };
+};
+
+
+/** \internal
+  * \brief Template functor to compute the tan of a scalar
+  * \sa class CwiseUnaryOp, ArrayBase::tan()
+  */
+template<typename Scalar> struct scalar_tan_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_tan_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::tan; return tan(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::ptan(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_tan_op<Scalar> >
+{
+  enum {
+    Cost = 5 * NumTraits<Scalar>::MulCost,
+    PacketAccess = packet_traits<Scalar>::HasTan
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the arc cosine of a scalar
+  * \sa class CwiseUnaryOp, ArrayBase::acos()
+  */
+template<typename Scalar> struct scalar_acos_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_acos_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::acos; return acos(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::pacos(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_acos_op<Scalar> >
+{
+  enum {
+    Cost = 5 * NumTraits<Scalar>::MulCost,
+    PacketAccess = packet_traits<Scalar>::HasACos
+  };
+};
+
+/** \internal
+  * \brief Template functor to compute the arc sine of a scalar
+  * \sa class CwiseUnaryOp, ArrayBase::asin()
+  */
+template<typename Scalar> struct scalar_asin_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_asin_op)
+  inline const Scalar operator() (const Scalar& a) const { using std::asin; return asin(a); }
+  typedef typename packet_traits<Scalar>::type Packet;
+  inline Packet packetOp(const Packet& a) const { return internal::pasin(a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_asin_op<Scalar> >
+{
+  enum {
+    Cost = 5 * NumTraits<Scalar>::MulCost,
+    PacketAccess = packet_traits<Scalar>::HasASin
+  };
+};
+
+/** \internal
+  * \brief Template functor to raise a scalar to a power
+  * \sa class CwiseUnaryOp, Cwise::pow
+  */
+template<typename Scalar>
+struct scalar_pow_op {
+  // FIXME default copy constructors seems bugged with std::complex<>
+  inline scalar_pow_op(const scalar_pow_op& other) : m_exponent(other.m_exponent) { }
+  inline scalar_pow_op(const Scalar& exponent) : m_exponent(exponent) {}
+  inline Scalar operator() (const Scalar& a) const { return numext::pow(a, m_exponent); }
+  const Scalar m_exponent;
+};
+template<typename Scalar>
+struct functor_traits<scalar_pow_op<Scalar> >
+{ enum { Cost = 5 * NumTraits<Scalar>::MulCost, PacketAccess = false }; };
+
+/** \internal
+  * \brief Template functor to compute the quotient between a scalar and array entries.
+  * \sa class CwiseUnaryOp, Cwise::inverse()
+  */
+template<typename Scalar>
+struct scalar_inverse_mult_op {
+  scalar_inverse_mult_op(const Scalar& other) : m_other(other) {}
+  inline Scalar operator() (const Scalar& a) const { return m_other / a; }
+  template<typename Packet>
+  inline const Packet packetOp(const Packet& a) const
+  { return internal::pdiv(pset1<Packet>(m_other),a); }
+  Scalar m_other;
+};
+
+/** \internal
+  * \brief Template functor to compute the inverse of a scalar
+  * \sa class CwiseUnaryOp, Cwise::inverse()
+  */
+template<typename Scalar>
+struct scalar_inverse_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_inverse_op)
+  inline Scalar operator() (const Scalar& a) const { return Scalar(1)/a; }
+  template<typename Packet>
+  inline const Packet packetOp(const Packet& a) const
+  { return internal::pdiv(pset1<Packet>(Scalar(1)),a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_inverse_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasDiv }; };
+
+/** \internal
+  * \brief Template functor to compute the square of a scalar
+  * \sa class CwiseUnaryOp, Cwise::square()
+  */
+template<typename Scalar>
+struct scalar_square_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_square_op)
+  inline Scalar operator() (const Scalar& a) const { return a*a; }
+  template<typename Packet>
+  inline const Packet packetOp(const Packet& a) const
+  { return internal::pmul(a,a); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_square_op<Scalar> >
+{ enum { Cost = NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasMul }; };
+
+/** \internal
+  * \brief Template functor to compute the cube of a scalar
+  * \sa class CwiseUnaryOp, Cwise::cube()
+  */
+template<typename Scalar>
+struct scalar_cube_op {
+  EIGEN_EMPTY_STRUCT_CTOR(scalar_cube_op)
+  inline Scalar operator() (const Scalar& a) const { return a*a*a; }
+  template<typename Packet>
+  inline const Packet packetOp(const Packet& a) const
+  { return internal::pmul(a,pmul(a,a)); }
+};
+template<typename Scalar>
+struct functor_traits<scalar_cube_op<Scalar> >
+{ enum { Cost = 2*NumTraits<Scalar>::MulCost, PacketAccess = packet_traits<Scalar>::HasMul }; };
+
+// default functor traits for STL functors:
+
+template<typename T>
+struct functor_traits<std::multiplies<T> >
+{ enum { Cost = NumTraits<T>::MulCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::divides<T> >
+{ enum { Cost = NumTraits<T>::MulCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::plus<T> >
+{ enum { Cost = NumTraits<T>::AddCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::minus<T> >
+{ enum { Cost = NumTraits<T>::AddCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::negate<T> >
+{ enum { Cost = NumTraits<T>::AddCost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::logical_or<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::logical_and<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::logical_not<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::greater<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::less<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::greater_equal<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::less_equal<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::equal_to<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::not_equal_to<T> >
+{ enum { Cost = 1, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::binder2nd<T> >
+{ enum { Cost = functor_traits<T>::Cost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::binder1st<T> >
+{ enum { Cost = functor_traits<T>::Cost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::unary_negate<T> >
+{ enum { Cost = 1 + functor_traits<T>::Cost, PacketAccess = false }; };
+
+template<typename T>
+struct functor_traits<std::binary_negate<T> >
+{ enum { Cost = 1 + functor_traits<T>::Cost, PacketAccess = false }; };
+
+#ifdef EIGEN_STDEXT_SUPPORT
+
+template<typename T0,typename T1>
+struct functor_traits<std::project1st<T0,T1> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+template<typename T0,typename T1>
+struct functor_traits<std::project2nd<T0,T1> >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+template<typename T0,typename T1>
+struct functor_traits<std::select2nd<std::pair<T0,T1> > >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+template<typename T0,typename T1>
+struct functor_traits<std::select1st<std::pair<T0,T1> > >
+{ enum { Cost = 0, PacketAccess = false }; };
+
+template<typename T0,typename T1>
+struct functor_traits<std::unary_compose<T0,T1> >
+{ enum { Cost = functor_traits<T0>::Cost + functor_traits<T1>::Cost, PacketAccess = false }; };
+
+template<typename T0,typename T1,typename T2>
+struct functor_traits<std::binary_compose<T0,T1,T2> >
+{ enum { Cost = functor_traits<T0>::Cost + functor_traits<T1>::Cost + functor_traits<T2>::Cost, PacketAccess = false }; };
+
+#endif // EIGEN_STDEXT_SUPPORT
+
+// allow to add new functors and specializations of functor_traits from outside Eigen.
+// this macro is really needed because functor_traits must be specialized after it is declared but before it is used...
+#ifdef EIGEN_FUNCTORS_PLUGIN
+#include EIGEN_FUNCTORS_PLUGIN
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_FUNCTORS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/Kernel.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/Kernel.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/Kernel.h	(revision 2476)
@@ -0,0 +1,81 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MISC_KERNEL_H
+#define EIGEN_MISC_KERNEL_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \class kernel_retval_base
+  *
+  */
+template<typename DecompositionType>
+struct traits<kernel_retval_base<DecompositionType> >
+{
+  typedef typename DecompositionType::MatrixType MatrixType;
+  typedef Matrix<
+    typename MatrixType::Scalar,
+    MatrixType::ColsAtCompileTime, // the number of rows in the "kernel matrix"
+                                   // is the number of cols of the original matrix
+                                   // so that the product "matrix * kernel = zero" makes sense
+    Dynamic,                       // we don't know at compile-time the dimension of the kernel
+    MatrixType::Options,
+    MatrixType::MaxColsAtCompileTime, // see explanation for 2nd template parameter
+    MatrixType::MaxColsAtCompileTime // the kernel is a subspace of the domain space,
+                                     // whose dimension is the number of columns of the original matrix
+  > ReturnType;
+};
+
+template<typename _DecompositionType> struct kernel_retval_base
+ : public ReturnByValue<kernel_retval_base<_DecompositionType> >
+{
+  typedef _DecompositionType DecompositionType;
+  typedef ReturnByValue<kernel_retval_base> Base;
+  typedef typename Base::Index Index;
+
+  kernel_retval_base(const DecompositionType& dec)
+    : m_dec(dec),
+      m_rank(dec.rank()),
+      m_cols(m_rank==dec.cols() ? 1 : dec.cols() - m_rank)
+  {}
+
+  inline Index rows() const { return m_dec.cols(); }
+  inline Index cols() const { return m_cols; }
+  inline Index rank() const { return m_rank; }
+  inline const DecompositionType& dec() const { return m_dec; }
+
+  template<typename Dest> inline void evalTo(Dest& dst) const
+  {
+    static_cast<const kernel_retval<DecompositionType>*>(this)->evalTo(dst);
+  }
+
+  protected:
+    const DecompositionType& m_dec;
+    Index m_rank, m_cols;
+};
+
+} // end namespace internal
+
+#define EIGEN_MAKE_KERNEL_HELPERS(DecompositionType) \
+  typedef typename DecompositionType::MatrixType MatrixType; \
+  typedef typename MatrixType::Scalar Scalar; \
+  typedef typename MatrixType::RealScalar RealScalar; \
+  typedef typename MatrixType::Index Index; \
+  typedef Eigen::internal::kernel_retval_base<DecompositionType> Base; \
+  using Base::dec; \
+  using Base::rank; \
+  using Base::rows; \
+  using Base::cols; \
+  kernel_retval(const DecompositionType& dec) : Base(dec) {}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MISC_KERNEL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/blas.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/blas.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/blas.h	(revision 2476)
@@ -0,0 +1,658 @@
+#ifndef BLAS_H
+#define BLAS_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define BLASFUNC(FUNC) FUNC##_
+
+#ifdef __WIN64__
+typedef long long BLASLONG;
+typedef unsigned long long BLASULONG;
+#else
+typedef long BLASLONG;
+typedef unsigned long BLASULONG;
+#endif
+
+int    BLASFUNC(xerbla)(const char *, int *info, int);
+
+float  BLASFUNC(sdot)  (int *, float  *, int *, float  *, int *);
+float  BLASFUNC(sdsdot)(int *, float  *,        float  *, int *, float  *, int *);
+
+double BLASFUNC(dsdot) (int *, float  *, int *, float  *, int *);
+double BLASFUNC(ddot)  (int *, double *, int *, double *, int *);
+double BLASFUNC(qdot)  (int *, double *, int *, double *, int *);
+
+int  BLASFUNC(cdotuw)  (int *, float  *, int *, float  *, int *, float*);
+int  BLASFUNC(cdotcw)  (int *, float  *, int *, float  *, int *, float*);
+int  BLASFUNC(zdotuw)  (int *, double  *, int *, double  *, int *, double*);
+int  BLASFUNC(zdotcw)  (int *, double  *, int *, double  *, int *, double*);
+
+int    BLASFUNC(saxpy) (int *, float  *, float  *, int *, float  *, int *);
+int    BLASFUNC(daxpy) (int *, double *, double *, int *, double *, int *);
+int    BLASFUNC(qaxpy) (int *, double *, double *, int *, double *, int *);
+int    BLASFUNC(caxpy) (int *, float  *, float  *, int *, float  *, int *);
+int    BLASFUNC(zaxpy) (int *, double *, double *, int *, double *, int *);
+int    BLASFUNC(xaxpy) (int *, double *, double *, int *, double *, int *);
+int    BLASFUNC(caxpyc)(int *, float  *, float  *, int *, float  *, int *);
+int    BLASFUNC(zaxpyc)(int *, double *, double *, int *, double *, int *);
+int    BLASFUNC(xaxpyc)(int *, double *, double *, int *, double *, int *);
+
+int    BLASFUNC(scopy) (int *, float  *, int *, float  *, int *);
+int    BLASFUNC(dcopy) (int *, double *, int *, double *, int *);
+int    BLASFUNC(qcopy) (int *, double *, int *, double *, int *);
+int    BLASFUNC(ccopy) (int *, float  *, int *, float  *, int *);
+int    BLASFUNC(zcopy) (int *, double *, int *, double *, int *);
+int    BLASFUNC(xcopy) (int *, double *, int *, double *, int *);
+
+int    BLASFUNC(sswap) (int *, float  *, int *, float  *, int *);
+int    BLASFUNC(dswap) (int *, double *, int *, double *, int *);
+int    BLASFUNC(qswap) (int *, double *, int *, double *, int *);
+int    BLASFUNC(cswap) (int *, float  *, int *, float  *, int *);
+int    BLASFUNC(zswap) (int *, double *, int *, double *, int *);
+int    BLASFUNC(xswap) (int *, double *, int *, double *, int *);
+
+float  BLASFUNC(sasum) (int *, float  *, int *);
+float  BLASFUNC(scasum)(int *, float  *, int *);
+double BLASFUNC(dasum) (int *, double *, int *);
+double BLASFUNC(qasum) (int *, double *, int *);
+double BLASFUNC(dzasum)(int *, double *, int *);
+double BLASFUNC(qxasum)(int *, double *, int *);
+
+int    BLASFUNC(isamax)(int *, float  *, int *);
+int    BLASFUNC(idamax)(int *, double *, int *);
+int    BLASFUNC(iqamax)(int *, double *, int *);
+int    BLASFUNC(icamax)(int *, float  *, int *);
+int    BLASFUNC(izamax)(int *, double *, int *);
+int    BLASFUNC(ixamax)(int *, double *, int *);
+
+int    BLASFUNC(ismax) (int *, float  *, int *);
+int    BLASFUNC(idmax) (int *, double *, int *);
+int    BLASFUNC(iqmax) (int *, double *, int *);
+int    BLASFUNC(icmax) (int *, float  *, int *);
+int    BLASFUNC(izmax) (int *, double *, int *);
+int    BLASFUNC(ixmax) (int *, double *, int *);
+
+int    BLASFUNC(isamin)(int *, float  *, int *);
+int    BLASFUNC(idamin)(int *, double *, int *);
+int    BLASFUNC(iqamin)(int *, double *, int *);
+int    BLASFUNC(icamin)(int *, float  *, int *);
+int    BLASFUNC(izamin)(int *, double *, int *);
+int    BLASFUNC(ixamin)(int *, double *, int *);
+
+int    BLASFUNC(ismin)(int *, float  *, int *);
+int    BLASFUNC(idmin)(int *, double *, int *);
+int    BLASFUNC(iqmin)(int *, double *, int *);
+int    BLASFUNC(icmin)(int *, float  *, int *);
+int    BLASFUNC(izmin)(int *, double *, int *);
+int    BLASFUNC(ixmin)(int *, double *, int *);
+
+float  BLASFUNC(samax) (int *, float  *, int *);
+double BLASFUNC(damax) (int *, double *, int *);
+double BLASFUNC(qamax) (int *, double *, int *);
+float  BLASFUNC(scamax)(int *, float  *, int *);
+double BLASFUNC(dzamax)(int *, double *, int *);
+double BLASFUNC(qxamax)(int *, double *, int *);
+
+float  BLASFUNC(samin) (int *, float  *, int *);
+double BLASFUNC(damin) (int *, double *, int *);
+double BLASFUNC(qamin) (int *, double *, int *);
+float  BLASFUNC(scamin)(int *, float  *, int *);
+double BLASFUNC(dzamin)(int *, double *, int *);
+double BLASFUNC(qxamin)(int *, double *, int *);
+
+float  BLASFUNC(smax)  (int *, float  *, int *);
+double BLASFUNC(dmax)  (int *, double *, int *);
+double BLASFUNC(qmax)  (int *, double *, int *);
+float  BLASFUNC(scmax) (int *, float  *, int *);
+double BLASFUNC(dzmax) (int *, double *, int *);
+double BLASFUNC(qxmax) (int *, double *, int *);
+
+float  BLASFUNC(smin)  (int *, float  *, int *);
+double BLASFUNC(dmin)  (int *, double *, int *);
+double BLASFUNC(qmin)  (int *, double *, int *);
+float  BLASFUNC(scmin) (int *, float  *, int *);
+double BLASFUNC(dzmin) (int *, double *, int *);
+double BLASFUNC(qxmin) (int *, double *, int *);
+
+int    BLASFUNC(sscal) (int *,  float  *, float  *, int *);
+int    BLASFUNC(dscal) (int *,  double *, double *, int *);
+int    BLASFUNC(qscal) (int *,  double *, double *, int *);
+int    BLASFUNC(cscal) (int *,  float  *, float  *, int *);
+int    BLASFUNC(zscal) (int *,  double *, double *, int *);
+int    BLASFUNC(xscal) (int *,  double *, double *, int *);
+int    BLASFUNC(csscal)(int *,  float  *, float  *, int *);
+int    BLASFUNC(zdscal)(int *,  double *, double *, int *);
+int    BLASFUNC(xqscal)(int *,  double *, double *, int *);
+
+float  BLASFUNC(snrm2) (int *, float  *, int *);
+float  BLASFUNC(scnrm2)(int *, float  *, int *);
+
+double BLASFUNC(dnrm2) (int *, double *, int *);
+double BLASFUNC(qnrm2) (int *, double *, int *);
+double BLASFUNC(dznrm2)(int *, double *, int *);
+double BLASFUNC(qxnrm2)(int *, double *, int *);
+
+int    BLASFUNC(srot)  (int *, float  *, int *, float  *, int *, float  *, float  *);
+int    BLASFUNC(drot)  (int *, double *, int *, double *, int *, double *, double *);
+int    BLASFUNC(qrot)  (int *, double *, int *, double *, int *, double *, double *);
+int    BLASFUNC(csrot) (int *, float  *, int *, float  *, int *, float  *, float  *);
+int    BLASFUNC(zdrot) (int *, double *, int *, double *, int *, double *, double *);
+int    BLASFUNC(xqrot) (int *, double *, int *, double *, int *, double *, double *);
+
+int    BLASFUNC(srotg) (float  *, float  *, float  *, float  *);
+int    BLASFUNC(drotg) (double *, double *, double *, double *);
+int    BLASFUNC(qrotg) (double *, double *, double *, double *);
+int    BLASFUNC(crotg) (float  *, float  *, float  *, float  *);
+int    BLASFUNC(zrotg) (double *, double *, double *, double *);
+int    BLASFUNC(xrotg) (double *, double *, double *, double *);
+
+int    BLASFUNC(srotmg)(float  *, float  *, float  *, float  *, float  *);
+int    BLASFUNC(drotmg)(double *, double *, double *, double *, double *);
+
+int    BLASFUNC(srotm) (int *, float  *, int *, float  *, int *, float  *);
+int    BLASFUNC(drotm) (int *, double *, int *, double *, int *, double *);
+int    BLASFUNC(qrotm) (int *, double *, int *, double *, int *, double *);
+
+/* Level 2 routines */
+
+int BLASFUNC(sger)(int *,    int *, float *,  float *, int *,
+		   float *,  int *, float *,  int *);
+int BLASFUNC(dger)(int *,    int *, double *, double *, int *,
+		   double *, int *, double *, int *);
+int BLASFUNC(qger)(int *,    int *, double *, double *, int *,
+		   double *, int *, double *, int *);
+int BLASFUNC(cgeru)(int *,    int *, float *,  float *, int *,
+		    float *,  int *, float *,  int *);
+int BLASFUNC(cgerc)(int *,    int *, float *,  float *, int *,
+		    float *,  int *, float *,  int *);
+int BLASFUNC(zgeru)(int *,    int *, double *, double *, int *,
+		    double *, int *, double *, int *);
+int BLASFUNC(zgerc)(int *,    int *, double *, double *, int *,
+		    double *, int *, double *, int *);
+int BLASFUNC(xgeru)(int *,    int *, double *, double *, int *,
+		    double *, int *, double *, int *);
+int BLASFUNC(xgerc)(int *,    int *, double *, double *, int *,
+		    double *, int *, double *, int *);
+
+int BLASFUNC(sgemv)(char *, int *, int *, float  *, float  *, int *,
+		    float  *, int *, float  *, float  *, int *);
+int BLASFUNC(dgemv)(char *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+int BLASFUNC(qgemv)(char *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+int BLASFUNC(cgemv)(char *, int *, int *, float  *, float  *, int *,
+		    float  *, int *, float  *, float  *, int *);
+int BLASFUNC(zgemv)(char *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+int BLASFUNC(xgemv)(char *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+
+int BLASFUNC(strsv) (char *, char *, char *, int *, float  *, int *,
+		     float  *, int *);
+int BLASFUNC(dtrsv) (char *, char *, char *, int *, double *, int *,
+		     double *, int *);
+int BLASFUNC(qtrsv) (char *, char *, char *, int *, double *, int *,
+		     double *, int *);
+int BLASFUNC(ctrsv) (char *, char *, char *, int *, float  *, int *,
+		     float  *, int *);
+int BLASFUNC(ztrsv) (char *, char *, char *, int *, double *, int *,
+		     double *, int *);
+int BLASFUNC(xtrsv) (char *, char *, char *, int *, double *, int *,
+		     double *, int *);
+
+int BLASFUNC(stpsv) (char *, char *, char *, int *, float  *, float  *, int *);
+int BLASFUNC(dtpsv) (char *, char *, char *, int *, double *, double *, int *);
+int BLASFUNC(qtpsv) (char *, char *, char *, int *, double *, double *, int *);
+int BLASFUNC(ctpsv) (char *, char *, char *, int *, float  *, float  *, int *);
+int BLASFUNC(ztpsv) (char *, char *, char *, int *, double *, double *, int *);
+int BLASFUNC(xtpsv) (char *, char *, char *, int *, double *, double *, int *);
+
+int BLASFUNC(strmv) (char *, char *, char *, int *, float  *, int *,
+		     float  *, int *);
+int BLASFUNC(dtrmv) (char *, char *, char *, int *, double *, int *,
+		     double *, int *);
+int BLASFUNC(qtrmv) (char *, char *, char *, int *, double *, int *,
+		     double *, int *);
+int BLASFUNC(ctrmv) (char *, char *, char *, int *, float  *, int *,
+		     float  *, int *);
+int BLASFUNC(ztrmv) (char *, char *, char *, int *, double *, int *,
+		     double *, int *);
+int BLASFUNC(xtrmv) (char *, char *, char *, int *, double *, int *,
+		     double *, int *);
+
+int BLASFUNC(stpmv) (char *, char *, char *, int *, float  *, float  *, int *);
+int BLASFUNC(dtpmv) (char *, char *, char *, int *, double *, double *, int *);
+int BLASFUNC(qtpmv) (char *, char *, char *, int *, double *, double *, int *);
+int BLASFUNC(ctpmv) (char *, char *, char *, int *, float  *, float  *, int *);
+int BLASFUNC(ztpmv) (char *, char *, char *, int *, double *, double *, int *);
+int BLASFUNC(xtpmv) (char *, char *, char *, int *, double *, double *, int *);
+
+int BLASFUNC(stbmv) (char *, char *, char *, int *, int *, float  *, int *, float  *, int *);
+int BLASFUNC(dtbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+int BLASFUNC(qtbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+int BLASFUNC(ctbmv) (char *, char *, char *, int *, int *, float  *, int *, float  *, int *);
+int BLASFUNC(ztbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+int BLASFUNC(xtbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+
+int BLASFUNC(stbsv) (char *, char *, char *, int *, int *, float  *, int *, float  *, int *);
+int BLASFUNC(dtbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+int BLASFUNC(qtbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+int BLASFUNC(ctbsv) (char *, char *, char *, int *, int *, float  *, int *, float  *, int *);
+int BLASFUNC(ztbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+int BLASFUNC(xtbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
+
+int BLASFUNC(ssymv) (char *, int *, float  *, float *, int *,
+		     float  *, int *, float *, float *, int *);
+int BLASFUNC(dsymv) (char *, int *, double  *, double *, int *,
+		     double  *, int *, double *, double *, int *);
+int BLASFUNC(qsymv) (char *, int *, double  *, double *, int *,
+		     double  *, int *, double *, double *, int *);
+int BLASFUNC(csymv) (char *, int *, float  *, float *, int *,
+		     float  *, int *, float *, float *, int *);
+int BLASFUNC(zsymv) (char *, int *, double  *, double *, int *,
+		     double  *, int *, double *, double *, int *);
+int BLASFUNC(xsymv) (char *, int *, double  *, double *, int *,
+		     double  *, int *, double *, double *, int *);
+
+int BLASFUNC(sspmv) (char *, int *, float  *, float *,
+		     float  *, int *, float *, float *, int *);
+int BLASFUNC(dspmv) (char *, int *, double  *, double *,
+		     double  *, int *, double *, double *, int *);
+int BLASFUNC(qspmv) (char *, int *, double  *, double *,
+		     double  *, int *, double *, double *, int *);
+int BLASFUNC(cspmv) (char *, int *, float  *, float *,
+		     float  *, int *, float *, float *, int *);
+int BLASFUNC(zspmv) (char *, int *, double  *, double *,
+		     double  *, int *, double *, double *, int *);
+int BLASFUNC(xspmv) (char *, int *, double  *, double *,
+		     double  *, int *, double *, double *, int *);
+
+int BLASFUNC(ssyr) (char *, int *, float   *, float  *, int *,
+		    float  *, int *);
+int BLASFUNC(dsyr) (char *, int *, double  *, double *, int *,
+		    double *, int *);
+int BLASFUNC(qsyr) (char *, int *, double  *, double *, int *,
+		    double *, int *);
+int BLASFUNC(csyr) (char *, int *, float   *, float  *, int *,
+		    float  *, int *);
+int BLASFUNC(zsyr) (char *, int *, double  *, double *, int *,
+		    double *, int *);
+int BLASFUNC(xsyr) (char *, int *, double  *, double *, int *,
+		    double *, int *);
+
+int BLASFUNC(ssyr2) (char *, int *, float   *,
+		     float  *, int *, float  *, int *, float  *, int *);
+int BLASFUNC(dsyr2) (char *, int *, double  *,
+		     double *, int *, double *, int *, double *, int *);
+int BLASFUNC(qsyr2) (char *, int *, double  *,
+		     double *, int *, double *, int *, double *, int *);
+int BLASFUNC(csyr2) (char *, int *, float   *,
+		     float  *, int *, float  *, int *, float  *, int *);
+int BLASFUNC(zsyr2) (char *, int *, double  *,
+		     double *, int *, double *, int *, double *, int *);
+int BLASFUNC(xsyr2) (char *, int *, double  *,
+		     double *, int *, double *, int *, double *, int *);
+
+int BLASFUNC(sspr) (char *, int *, float   *, float  *, int *,
+		    float  *);
+int BLASFUNC(dspr) (char *, int *, double  *, double *, int *,
+		    double *);
+int BLASFUNC(qspr) (char *, int *, double  *, double *, int *,
+		    double *);
+int BLASFUNC(cspr) (char *, int *, float   *, float  *, int *,
+		    float  *);
+int BLASFUNC(zspr) (char *, int *, double  *, double *, int *,
+		    double *);
+int BLASFUNC(xspr) (char *, int *, double  *, double *, int *,
+		    double *);
+
+int BLASFUNC(sspr2) (char *, int *, float   *,
+		     float  *, int *, float  *, int *, float  *);
+int BLASFUNC(dspr2) (char *, int *, double  *,
+		     double *, int *, double *, int *, double *);
+int BLASFUNC(qspr2) (char *, int *, double  *,
+		     double *, int *, double *, int *, double *);
+int BLASFUNC(cspr2) (char *, int *, float   *,
+		     float  *, int *, float  *, int *, float  *);
+int BLASFUNC(zspr2) (char *, int *, double  *,
+		     double *, int *, double *, int *, double *);
+int BLASFUNC(xspr2) (char *, int *, double  *,
+		     double *, int *, double *, int *, double *);
+
+int BLASFUNC(cher) (char *, int *, float   *, float  *, int *,
+		    float  *, int *);
+int BLASFUNC(zher) (char *, int *, double  *, double *, int *,
+		    double *, int *);
+int BLASFUNC(xher) (char *, int *, double  *, double *, int *,
+		    double *, int *);
+
+int BLASFUNC(chpr) (char *, int *, float   *, float  *, int *, float  *);
+int BLASFUNC(zhpr) (char *, int *, double  *, double *, int *, double *);
+int BLASFUNC(xhpr) (char *, int *, double  *, double *, int *, double *);
+
+int BLASFUNC(cher2) (char *, int *, float   *,
+		     float  *, int *, float  *, int *, float  *, int *);
+int BLASFUNC(zher2) (char *, int *, double  *,
+		     double *, int *, double *, int *, double *, int *);
+int BLASFUNC(xher2) (char *, int *, double  *,
+		     double *, int *, double *, int *, double *, int *);
+
+int BLASFUNC(chpr2) (char *, int *, float   *,
+		     float  *, int *, float  *, int *, float  *);
+int BLASFUNC(zhpr2) (char *, int *, double  *,
+		     double *, int *, double *, int *, double *);
+int BLASFUNC(xhpr2) (char *, int *, double  *,
+		     double *, int *, double *, int *, double *);
+
+int BLASFUNC(chemv) (char *, int *, float  *, float *, int *,
+		     float  *, int *, float *, float *, int *);
+int BLASFUNC(zhemv) (char *, int *, double  *, double *, int *,
+		     double  *, int *, double *, double *, int *);
+int BLASFUNC(xhemv) (char *, int *, double  *, double *, int *,
+		     double  *, int *, double *, double *, int *);
+
+int BLASFUNC(chpmv) (char *, int *, float  *, float *,
+		     float  *, int *, float *, float *, int *);
+int BLASFUNC(zhpmv) (char *, int *, double  *, double *,
+		     double  *, int *, double *, double *, int *);
+int BLASFUNC(xhpmv) (char *, int *, double  *, double *,
+		     double  *, int *, double *, double *, int *);
+
+int BLASFUNC(snorm)(char *, int *, int *, float  *, int *);
+int BLASFUNC(dnorm)(char *, int *, int *, double *, int *);
+int BLASFUNC(cnorm)(char *, int *, int *, float  *, int *);
+int BLASFUNC(znorm)(char *, int *, int *, double *, int *);
+
+int BLASFUNC(sgbmv)(char *, int *, int *, int *, int *, float  *, float  *, int *,
+		    float  *, int *, float  *, float  *, int *);
+int BLASFUNC(dgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+int BLASFUNC(qgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+int BLASFUNC(cgbmv)(char *, int *, int *, int *, int *, float  *, float  *, int *,
+		    float  *, int *, float  *, float  *, int *);
+int BLASFUNC(zgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+int BLASFUNC(xgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+
+int BLASFUNC(ssbmv)(char *, int *, int *, float  *, float  *, int *,
+		    float  *, int *, float  *, float  *, int *);
+int BLASFUNC(dsbmv)(char *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+int BLASFUNC(qsbmv)(char *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+int BLASFUNC(csbmv)(char *, int *, int *, float  *, float  *, int *,
+		    float  *, int *, float  *, float  *, int *);
+int BLASFUNC(zsbmv)(char *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+int BLASFUNC(xsbmv)(char *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+
+int BLASFUNC(chbmv)(char *, int *, int *, float  *, float  *, int *,
+		    float  *, int *, float  *, float  *, int *);
+int BLASFUNC(zhbmv)(char *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+int BLASFUNC(xhbmv)(char *, int *, int *, double *, double *, int *,
+		    double *, int *, double *, double *, int *);
+
+/* Level 3 routines */
+
+int BLASFUNC(sgemm)(char *, char *, int *, int *, int *, float *,
+	   float  *, int *, float  *, int *, float  *, float  *, int *);
+int BLASFUNC(dgemm)(char *, char *, int *, int *, int *, double *,
+	   double *, int *, double *, int *, double *, double *, int *);
+int BLASFUNC(qgemm)(char *, char *, int *, int *, int *, double *,
+	   double *, int *, double *, int *, double *, double *, int *);
+int BLASFUNC(cgemm)(char *, char *, int *, int *, int *, float *,
+	   float  *, int *, float  *, int *, float  *, float  *, int *);
+int BLASFUNC(zgemm)(char *, char *, int *, int *, int *, double *,
+	   double *, int *, double *, int *, double *, double *, int *);
+int BLASFUNC(xgemm)(char *, char *, int *, int *, int *, double *,
+	   double *, int *, double *, int *, double *, double *, int *);
+
+int BLASFUNC(cgemm3m)(char *, char *, int *, int *, int *, float *,
+	   float  *, int *, float  *, int *, float  *, float  *, int *);
+int BLASFUNC(zgemm3m)(char *, char *, int *, int *, int *, double *,
+	   double *, int *, double *, int *, double *, double *, int *);
+int BLASFUNC(xgemm3m)(char *, char *, int *, int *, int *, double *,
+	   double *, int *, double *, int *, double *, double *, int *);
+
+int BLASFUNC(sge2mm)(char *, char *, char *, int *, int *,
+		     float *, float  *, int *, float  *, int *,
+		     float *, float  *, int *);
+int BLASFUNC(dge2mm)(char *, char *, char *, int *, int *,
+		     double *, double  *, int *, double  *, int *,
+		     double *, double  *, int *);
+int BLASFUNC(cge2mm)(char *, char *, char *, int *, int *,
+		     float *, float  *, int *, float  *, int *,
+		     float *, float  *, int *);
+int BLASFUNC(zge2mm)(char *, char *, char *, int *, int *,
+		     double *, double  *, int *, double  *, int *,
+		     double *, double  *, int *);
+
+int BLASFUNC(strsm)(char *, char *, char *, char *, int *, int *,
+	   float *,  float *, int *, float *, int *);
+int BLASFUNC(dtrsm)(char *, char *, char *, char *, int *, int *,
+	   double *,  double *, int *, double *, int *);
+int BLASFUNC(qtrsm)(char *, char *, char *, char *, int *, int *,
+	   double *,  double *, int *, double *, int *);
+int BLASFUNC(ctrsm)(char *, char *, char *, char *, int *, int *,
+	   float *,  float *, int *, float *, int *);
+int BLASFUNC(ztrsm)(char *, char *, char *, char *, int *, int *,
+	   double *,  double *, int *, double *, int *);
+int BLASFUNC(xtrsm)(char *, char *, char *, char *, int *, int *,
+	   double *,  double *, int *, double *, int *);
+
+int BLASFUNC(strmm)(char *, char *, char *, char *, int *, int *,
+	   float *,  float *, int *, float *, int *);
+int BLASFUNC(dtrmm)(char *, char *, char *, char *, int *, int *,
+	   double *,  double *, int *, double *, int *);
+int BLASFUNC(qtrmm)(char *, char *, char *, char *, int *, int *,
+	   double *,  double *, int *, double *, int *);
+int BLASFUNC(ctrmm)(char *, char *, char *, char *, int *, int *,
+	   float *,  float *, int *, float *, int *);
+int BLASFUNC(ztrmm)(char *, char *, char *, char *, int *, int *,
+	   double *,  double *, int *, double *, int *);
+int BLASFUNC(xtrmm)(char *, char *, char *, char *, int *, int *,
+	   double *,  double *, int *, double *, int *);
+
+int BLASFUNC(ssymm)(char *, char *, int *, int *, float  *, float  *, int *,
+	   float  *, int *, float  *, float  *, int *);
+int BLASFUNC(dsymm)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, int *, double *, double *, int *);
+int BLASFUNC(qsymm)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, int *, double *, double *, int *);
+int BLASFUNC(csymm)(char *, char *, int *, int *, float  *, float  *, int *,
+	   float  *, int *, float  *, float  *, int *);
+int BLASFUNC(zsymm)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, int *, double *, double *, int *);
+int BLASFUNC(xsymm)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, int *, double *, double *, int *);
+
+int BLASFUNC(csymm3m)(char *, char *, int *, int *, float  *, float  *, int *,
+	   float  *, int *, float  *, float  *, int *);
+int BLASFUNC(zsymm3m)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, int *, double *, double *, int *);
+int BLASFUNC(xsymm3m)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, int *, double *, double *, int *);
+
+int BLASFUNC(ssyrk)(char *, char *, int *, int *, float  *, float  *, int *,
+	   float  *, float  *, int *);
+int BLASFUNC(dsyrk)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, double *, int *);
+int BLASFUNC(qsyrk)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, double *, int *);
+int BLASFUNC(csyrk)(char *, char *, int *, int *, float  *, float  *, int *,
+	   float  *, float  *, int *);
+int BLASFUNC(zsyrk)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, double *, int *);
+int BLASFUNC(xsyrk)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, double *, int *);
+
+int BLASFUNC(ssyr2k)(char *, char *, int *, int *, float  *, float  *, int *,
+	   float *, int *, float  *, float  *, int *);
+int BLASFUNC(dsyr2k)(char *, char *, int *, int *, double *, double *, int *,
+	   double*, int *, double *, double *, int *);
+int BLASFUNC(qsyr2k)(char *, char *, int *, int *, double *, double *, int *,
+	   double*, int *, double *, double *, int *);
+int BLASFUNC(csyr2k)(char *, char *, int *, int *, float  *, float  *, int *,
+	   float *, int *, float  *, float  *, int *);
+int BLASFUNC(zsyr2k)(char *, char *, int *, int *, double *, double *, int *,
+	   double*, int *, double *, double *, int *);
+int BLASFUNC(xsyr2k)(char *, char *, int *, int *, double *, double *, int *,
+	   double*, int *, double *, double *, int *);
+
+int BLASFUNC(chemm)(char *, char *, int *, int *, float  *, float  *, int *,
+	   float  *, int *, float  *, float  *, int *);
+int BLASFUNC(zhemm)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, int *, double *, double *, int *);
+int BLASFUNC(xhemm)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, int *, double *, double *, int *);
+
+int BLASFUNC(chemm3m)(char *, char *, int *, int *, float  *, float  *, int *,
+	   float  *, int *, float  *, float  *, int *);
+int BLASFUNC(zhemm3m)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, int *, double *, double *, int *);
+int BLASFUNC(xhemm3m)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, int *, double *, double *, int *);
+
+int BLASFUNC(cherk)(char *, char *, int *, int *, float  *, float  *, int *,
+	   float  *, float  *, int *);
+int BLASFUNC(zherk)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, double *, int *);
+int BLASFUNC(xherk)(char *, char *, int *, int *, double *, double *, int *,
+	   double *, double *, int *);
+
+int BLASFUNC(cher2k)(char *, char *, int *, int *, float  *, float  *, int *,
+	   float *, int *, float  *, float  *, int *);
+int BLASFUNC(zher2k)(char *, char *, int *, int *, double *, double *, int *,
+	   double*, int *, double *, double *, int *);
+int BLASFUNC(xher2k)(char *, char *, int *, int *, double *, double *, int *,
+	   double*, int *, double *, double *, int *);
+int BLASFUNC(cher2m)(char *, char *, char *, int *, int *, float  *, float  *, int *,
+	   float *, int *, float  *, float  *, int *);
+int BLASFUNC(zher2m)(char *, char *, char *, int *, int *, double *, double *, int *,
+	   double*, int *, double *, double *, int *);
+int BLASFUNC(xher2m)(char *, char *, char *, int *, int *, double *, double *, int *,
+	   double*, int *, double *, double *, int *);
+
+int BLASFUNC(sgemt)(char *, int *, int *, float  *, float  *, int *,
+		    float  *, int *);
+int BLASFUNC(dgemt)(char *, int *, int *, double *, double *, int *,
+		    double *, int *);
+int BLASFUNC(cgemt)(char *, int *, int *, float  *, float  *, int *,
+		    float  *, int *);
+int BLASFUNC(zgemt)(char *, int *, int *, double *, double *, int *,
+		    double *, int *);
+
+int BLASFUNC(sgema)(char *, char *, int *, int *, float  *,
+		    float  *, int *, float *, float  *, int *, float *, int *);
+int BLASFUNC(dgema)(char *, char *, int *, int *, double *,
+		    double *, int *, double*, double *, int *, double*, int *);
+int BLASFUNC(cgema)(char *, char *, int *, int *, float  *,
+		    float  *, int *, float *, float  *, int *, float *, int *);
+int BLASFUNC(zgema)(char *, char *, int *, int *, double *,
+		    double *, int *, double*, double *, int *, double*, int *);
+
+int BLASFUNC(sgems)(char *, char *, int *, int *, float  *,
+		    float  *, int *, float *, float  *, int *, float *, int *);
+int BLASFUNC(dgems)(char *, char *, int *, int *, double *,
+		    double *, int *, double*, double *, int *, double*, int *);
+int BLASFUNC(cgems)(char *, char *, int *, int *, float  *,
+		    float  *, int *, float *, float  *, int *, float *, int *);
+int BLASFUNC(zgems)(char *, char *, int *, int *, double *,
+		    double *, int *, double*, double *, int *, double*, int *);
+
+int BLASFUNC(sgetf2)(int *, int *, float  *, int *, int *, int *);
+int BLASFUNC(dgetf2)(int *, int *, double *, int *, int *, int *);
+int BLASFUNC(qgetf2)(int *, int *, double *, int *, int *, int *);
+int BLASFUNC(cgetf2)(int *, int *, float  *, int *, int *, int *);
+int BLASFUNC(zgetf2)(int *, int *, double *, int *, int *, int *);
+int BLASFUNC(xgetf2)(int *, int *, double *, int *, int *, int *);
+
+int BLASFUNC(sgetrf)(int *, int *, float  *, int *, int *, int *);
+int BLASFUNC(dgetrf)(int *, int *, double *, int *, int *, int *);
+int BLASFUNC(qgetrf)(int *, int *, double *, int *, int *, int *);
+int BLASFUNC(cgetrf)(int *, int *, float  *, int *, int *, int *);
+int BLASFUNC(zgetrf)(int *, int *, double *, int *, int *, int *);
+int BLASFUNC(xgetrf)(int *, int *, double *, int *, int *, int *);
+
+int BLASFUNC(slaswp)(int *, float  *, int *, int *, int *, int *, int *);
+int BLASFUNC(dlaswp)(int *, double *, int *, int *, int *, int *, int *);
+int BLASFUNC(qlaswp)(int *, double *, int *, int *, int *, int *, int *);
+int BLASFUNC(claswp)(int *, float  *, int *, int *, int *, int *, int *);
+int BLASFUNC(zlaswp)(int *, double *, int *, int *, int *, int *, int *);
+int BLASFUNC(xlaswp)(int *, double *, int *, int *, int *, int *, int *);
+
+int BLASFUNC(sgetrs)(char *, int *, int *, float  *, int *, int *, float  *, int *, int *);
+int BLASFUNC(dgetrs)(char *, int *, int *, double *, int *, int *, double *, int *, int *);
+int BLASFUNC(qgetrs)(char *, int *, int *, double *, int *, int *, double *, int *, int *);
+int BLASFUNC(cgetrs)(char *, int *, int *, float  *, int *, int *, float  *, int *, int *);
+int BLASFUNC(zgetrs)(char *, int *, int *, double *, int *, int *, double *, int *, int *);
+int BLASFUNC(xgetrs)(char *, int *, int *, double *, int *, int *, double *, int *, int *);
+
+int BLASFUNC(sgesv)(int *, int *, float  *, int *, int *, float *, int *, int *);
+int BLASFUNC(dgesv)(int *, int *, double *, int *, int *, double*, int *, int *);
+int BLASFUNC(qgesv)(int *, int *, double *, int *, int *, double*, int *, int *);
+int BLASFUNC(cgesv)(int *, int *, float  *, int *, int *, float *, int *, int *);
+int BLASFUNC(zgesv)(int *, int *, double *, int *, int *, double*, int *, int *);
+int BLASFUNC(xgesv)(int *, int *, double *, int *, int *, double*, int *, int *);
+
+int BLASFUNC(spotf2)(char *, int *, float  *, int *, int *);
+int BLASFUNC(dpotf2)(char *, int *, double *, int *, int *);
+int BLASFUNC(qpotf2)(char *, int *, double *, int *, int *);
+int BLASFUNC(cpotf2)(char *, int *, float  *, int *, int *);
+int BLASFUNC(zpotf2)(char *, int *, double *, int *, int *);
+int BLASFUNC(xpotf2)(char *, int *, double *, int *, int *);
+
+int BLASFUNC(spotrf)(char *, int *, float  *, int *, int *);
+int BLASFUNC(dpotrf)(char *, int *, double *, int *, int *);
+int BLASFUNC(qpotrf)(char *, int *, double *, int *, int *);
+int BLASFUNC(cpotrf)(char *, int *, float  *, int *, int *);
+int BLASFUNC(zpotrf)(char *, int *, double *, int *, int *);
+int BLASFUNC(xpotrf)(char *, int *, double *, int *, int *);
+
+int BLASFUNC(slauu2)(char *, int *, float  *, int *, int *);
+int BLASFUNC(dlauu2)(char *, int *, double *, int *, int *);
+int BLASFUNC(qlauu2)(char *, int *, double *, int *, int *);
+int BLASFUNC(clauu2)(char *, int *, float  *, int *, int *);
+int BLASFUNC(zlauu2)(char *, int *, double *, int *, int *);
+int BLASFUNC(xlauu2)(char *, int *, double *, int *, int *);
+
+int BLASFUNC(slauum)(char *, int *, float  *, int *, int *);
+int BLASFUNC(dlauum)(char *, int *, double *, int *, int *);
+int BLASFUNC(qlauum)(char *, int *, double *, int *, int *);
+int BLASFUNC(clauum)(char *, int *, float  *, int *, int *);
+int BLASFUNC(zlauum)(char *, int *, double *, int *, int *);
+int BLASFUNC(xlauum)(char *, int *, double *, int *, int *);
+
+int BLASFUNC(strti2)(char *, char *, int *, float  *, int *, int *);
+int BLASFUNC(dtrti2)(char *, char *, int *, double *, int *, int *);
+int BLASFUNC(qtrti2)(char *, char *, int *, double *, int *, int *);
+int BLASFUNC(ctrti2)(char *, char *, int *, float  *, int *, int *);
+int BLASFUNC(ztrti2)(char *, char *, int *, double *, int *, int *);
+int BLASFUNC(xtrti2)(char *, char *, int *, double *, int *, int *);
+
+int BLASFUNC(strtri)(char *, char *, int *, float  *, int *, int *);
+int BLASFUNC(dtrtri)(char *, char *, int *, double *, int *, int *);
+int BLASFUNC(qtrtri)(char *, char *, int *, double *, int *, int *);
+int BLASFUNC(ctrtri)(char *, char *, int *, float  *, int *, int *);
+int BLASFUNC(ztrtri)(char *, char *, int *, double *, int *, int *);
+int BLASFUNC(xtrtri)(char *, char *, int *, double *, int *, int *);
+
+int BLASFUNC(spotri)(char *, int *, float  *, int *, int *);
+int BLASFUNC(dpotri)(char *, int *, double *, int *, int *);
+int BLASFUNC(qpotri)(char *, int *, double *, int *, int *);
+int BLASFUNC(cpotri)(char *, int *, float  *, int *, int *);
+int BLASFUNC(zpotri)(char *, int *, double *, int *, int *);
+int BLASFUNC(xpotri)(char *, int *, double *, int *, int *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/Image.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/Image.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/Image.h	(revision 2476)
@@ -0,0 +1,84 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MISC_IMAGE_H
+#define EIGEN_MISC_IMAGE_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \class image_retval_base
+  *
+  */
+template<typename DecompositionType>
+struct traits<image_retval_base<DecompositionType> >
+{
+  typedef typename DecompositionType::MatrixType MatrixType;
+  typedef Matrix<
+    typename MatrixType::Scalar,
+    MatrixType::RowsAtCompileTime, // the image is a subspace of the destination space, whose
+                                   // dimension is the number of rows of the original matrix
+    Dynamic,                       // we don't know at compile time the dimension of the image (the rank)
+    MatrixType::Options,
+    MatrixType::MaxRowsAtCompileTime, // the image matrix will consist of columns from the original matrix,
+    MatrixType::MaxColsAtCompileTime  // so it has the same number of rows and at most as many columns.
+  > ReturnType;
+};
+
+template<typename _DecompositionType> struct image_retval_base
+ : public ReturnByValue<image_retval_base<_DecompositionType> >
+{
+  typedef _DecompositionType DecompositionType;
+  typedef typename DecompositionType::MatrixType MatrixType;
+  typedef ReturnByValue<image_retval_base> Base;
+  typedef typename Base::Index Index;
+
+  image_retval_base(const DecompositionType& dec, const MatrixType& originalMatrix)
+    : m_dec(dec), m_rank(dec.rank()),
+      m_cols(m_rank == 0 ? 1 : m_rank),
+      m_originalMatrix(originalMatrix)
+  {}
+
+  inline Index rows() const { return m_dec.rows(); }
+  inline Index cols() const { return m_cols; }
+  inline Index rank() const { return m_rank; }
+  inline const DecompositionType& dec() const { return m_dec; }
+  inline const MatrixType& originalMatrix() const { return m_originalMatrix; }
+
+  template<typename Dest> inline void evalTo(Dest& dst) const
+  {
+    static_cast<const image_retval<DecompositionType>*>(this)->evalTo(dst);
+  }
+
+  protected:
+    const DecompositionType& m_dec;
+    Index m_rank, m_cols;
+    const MatrixType& m_originalMatrix;
+};
+
+} // end namespace internal
+
+#define EIGEN_MAKE_IMAGE_HELPERS(DecompositionType) \
+  typedef typename DecompositionType::MatrixType MatrixType; \
+  typedef typename MatrixType::Scalar Scalar; \
+  typedef typename MatrixType::RealScalar RealScalar; \
+  typedef typename MatrixType::Index Index; \
+  typedef Eigen::internal::image_retval_base<DecompositionType> Base; \
+  using Base::dec; \
+  using Base::originalMatrix; \
+  using Base::rank; \
+  using Base::rows; \
+  using Base::cols; \
+  image_retval(const DecompositionType& dec, const MatrixType& originalMatrix) \
+    : Base(dec, originalMatrix) {}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MISC_IMAGE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/SparseSolve.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/SparseSolve.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/SparseSolve.h	(revision 2476)
@@ -0,0 +1,128 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_SOLVE_H
+#define EIGEN_SPARSE_SOLVE_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename _DecompositionType, typename Rhs> struct sparse_solve_retval_base;
+template<typename _DecompositionType, typename Rhs> struct sparse_solve_retval;
+  
+template<typename DecompositionType, typename Rhs>
+struct traits<sparse_solve_retval_base<DecompositionType, Rhs> >
+{
+  typedef typename DecompositionType::MatrixType MatrixType;
+  typedef SparseMatrix<typename Rhs::Scalar, Rhs::Options, typename Rhs::Index> ReturnType;
+};
+
+template<typename _DecompositionType, typename Rhs> struct sparse_solve_retval_base
+ : public ReturnByValue<sparse_solve_retval_base<_DecompositionType, Rhs> >
+{
+  typedef typename remove_all<typename Rhs::Nested>::type RhsNestedCleaned;
+  typedef _DecompositionType DecompositionType;
+  typedef ReturnByValue<sparse_solve_retval_base> Base;
+  typedef typename Base::Index Index;
+
+  sparse_solve_retval_base(const DecompositionType& dec, const Rhs& rhs)
+    : m_dec(dec), m_rhs(rhs)
+  {}
+
+  inline Index rows() const { return m_dec.cols(); }
+  inline Index cols() const { return m_rhs.cols(); }
+  inline const DecompositionType& dec() const { return m_dec; }
+  inline const RhsNestedCleaned& rhs() const { return m_rhs; }
+
+  template<typename Dest> inline void evalTo(Dest& dst) const
+  {
+    static_cast<const sparse_solve_retval<DecompositionType,Rhs>*>(this)->evalTo(dst);
+  }
+
+  protected:
+    template<typename DestScalar, int DestOptions, typename DestIndex>
+    inline void defaultEvalTo(SparseMatrix<DestScalar,DestOptions,DestIndex>& dst) const
+    {
+      // we process the sparse rhs per block of NbColsAtOnce columns temporarily stored into a dense matrix.
+      static const int NbColsAtOnce = 4;
+      int rhsCols = m_rhs.cols();
+      int size = m_rhs.rows();
+      Eigen::Matrix<DestScalar,Dynamic,Dynamic> tmp(size,rhsCols);
+      Eigen::Matrix<DestScalar,Dynamic,Dynamic> tmpX(size,rhsCols);
+      for(int k=0; k<rhsCols; k+=NbColsAtOnce)
+      {
+        int actualCols = std::min<int>(rhsCols-k, NbColsAtOnce);
+        tmp.leftCols(actualCols) = m_rhs.middleCols(k,actualCols);
+        tmpX.leftCols(actualCols) = m_dec.solve(tmp.leftCols(actualCols));
+        dst.middleCols(k,actualCols) = tmpX.leftCols(actualCols).sparseView();
+      }
+    }
+    const DecompositionType& m_dec;
+    typename Rhs::Nested m_rhs;
+};
+
+#define EIGEN_MAKE_SPARSE_SOLVE_HELPERS(DecompositionType,Rhs) \
+  typedef typename DecompositionType::MatrixType MatrixType; \
+  typedef typename MatrixType::Scalar Scalar; \
+  typedef typename MatrixType::RealScalar RealScalar; \
+  typedef typename MatrixType::Index Index; \
+  typedef Eigen::internal::sparse_solve_retval_base<DecompositionType,Rhs> Base; \
+  using Base::dec; \
+  using Base::rhs; \
+  using Base::rows; \
+  using Base::cols; \
+  sparse_solve_retval(const DecompositionType& dec, const Rhs& rhs) \
+    : Base(dec, rhs) {}
+
+
+
+template<typename DecompositionType, typename Rhs, typename Guess> struct solve_retval_with_guess;
+
+template<typename DecompositionType, typename Rhs, typename Guess>
+struct traits<solve_retval_with_guess<DecompositionType, Rhs, Guess> >
+{
+  typedef typename DecompositionType::MatrixType MatrixType;
+  typedef Matrix<typename Rhs::Scalar,
+                 MatrixType::ColsAtCompileTime,
+                 Rhs::ColsAtCompileTime,
+                 Rhs::PlainObject::Options,
+                 MatrixType::MaxColsAtCompileTime,
+                 Rhs::MaxColsAtCompileTime> ReturnType;
+};
+
+template<typename DecompositionType, typename Rhs, typename Guess> struct solve_retval_with_guess
+ : public ReturnByValue<solve_retval_with_guess<DecompositionType, Rhs, Guess> >
+{
+  typedef typename DecompositionType::Index Index;
+
+  solve_retval_with_guess(const DecompositionType& dec, const Rhs& rhs, const Guess& guess)
+    : m_dec(dec), m_rhs(rhs), m_guess(guess)
+  {}
+
+  inline Index rows() const { return m_dec.cols(); }
+  inline Index cols() const { return m_rhs.cols(); }
+
+  template<typename Dest> inline void evalTo(Dest& dst) const
+  {
+    dst = m_guess;
+    m_dec._solveWithGuess(m_rhs,dst);
+  }
+
+  protected:
+    const DecompositionType& m_dec;
+    const typename Rhs::Nested m_rhs;
+    const typename Guess::Nested m_guess;
+};
+
+} // namepsace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_SOLVE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/Solve.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/Solve.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/misc/Solve.h	(revision 2476)
@@ -0,0 +1,76 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MISC_SOLVE_H
+#define EIGEN_MISC_SOLVE_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \class solve_retval_base
+  *
+  */
+template<typename DecompositionType, typename Rhs>
+struct traits<solve_retval_base<DecompositionType, Rhs> >
+{
+  typedef typename DecompositionType::MatrixType MatrixType;
+  typedef Matrix<typename Rhs::Scalar,
+                 MatrixType::ColsAtCompileTime,
+                 Rhs::ColsAtCompileTime,
+                 Rhs::PlainObject::Options,
+                 MatrixType::MaxColsAtCompileTime,
+                 Rhs::MaxColsAtCompileTime> ReturnType;
+};
+
+template<typename _DecompositionType, typename Rhs> struct solve_retval_base
+ : public ReturnByValue<solve_retval_base<_DecompositionType, Rhs> >
+{
+  typedef typename remove_all<typename Rhs::Nested>::type RhsNestedCleaned;
+  typedef _DecompositionType DecompositionType;
+  typedef ReturnByValue<solve_retval_base> Base;
+  typedef typename Base::Index Index;
+
+  solve_retval_base(const DecompositionType& dec, const Rhs& rhs)
+    : m_dec(dec), m_rhs(rhs)
+  {}
+
+  inline Index rows() const { return m_dec.cols(); }
+  inline Index cols() const { return m_rhs.cols(); }
+  inline const DecompositionType& dec() const { return m_dec; }
+  inline const RhsNestedCleaned& rhs() const { return m_rhs; }
+
+  template<typename Dest> inline void evalTo(Dest& dst) const
+  {
+    static_cast<const solve_retval<DecompositionType,Rhs>*>(this)->evalTo(dst);
+  }
+
+  protected:
+    const DecompositionType& m_dec;
+    typename Rhs::Nested m_rhs;
+};
+
+} // end namespace internal
+
+#define EIGEN_MAKE_SOLVE_HELPERS(DecompositionType,Rhs) \
+  typedef typename DecompositionType::MatrixType MatrixType; \
+  typedef typename MatrixType::Scalar Scalar; \
+  typedef typename MatrixType::RealScalar RealScalar; \
+  typedef typename MatrixType::Index Index; \
+  typedef Eigen::internal::solve_retval_base<DecompositionType,Rhs> Base; \
+  using Base::dec; \
+  using Base::rhs; \
+  using Base::rows; \
+  using Base::cols; \
+  solve_retval(const DecompositionType& dec, const Rhs& rhs) \
+    : Base(dec, rhs) {}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MISC_SOLVE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Translation.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Translation.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Translation.h	(revision 2476)
@@ -0,0 +1,206 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRANSLATION_H
+#define EIGEN_TRANSLATION_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Translation
+  *
+  * \brief Represents a translation transformation
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients.
+  * \param _Dim the  dimension of the space, can be a compile time value or Dynamic
+  *
+  * \note This class is not aimed to be used to store a translation transformation,
+  * but rather to make easier the constructions and updates of Transform objects.
+  *
+  * \sa class Scaling, class Transform
+  */
+template<typename _Scalar, int _Dim>
+class Translation
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Dim)
+  /** dimension of the space */
+  enum { Dim = _Dim };
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+  /** corresponding vector type */
+  typedef Matrix<Scalar,Dim,1> VectorType;
+  /** corresponding linear transformation matrix type */
+  typedef Matrix<Scalar,Dim,Dim> LinearMatrixType;
+  /** corresponding affine transformation type */
+  typedef Transform<Scalar,Dim,Affine> AffineTransformType;
+  /** corresponding isometric transformation type */
+  typedef Transform<Scalar,Dim,Isometry> IsometryTransformType;
+
+protected:
+
+  VectorType m_coeffs;
+
+public:
+
+  /** Default constructor without initialization. */
+  Translation() {}
+  /**  */
+  inline Translation(const Scalar& sx, const Scalar& sy)
+  {
+    eigen_assert(Dim==2);
+    m_coeffs.x() = sx;
+    m_coeffs.y() = sy;
+  }
+  /**  */
+  inline Translation(const Scalar& sx, const Scalar& sy, const Scalar& sz)
+  {
+    eigen_assert(Dim==3);
+    m_coeffs.x() = sx;
+    m_coeffs.y() = sy;
+    m_coeffs.z() = sz;
+  }
+  /** Constructs and initialize the translation transformation from a vector of translation coefficients */
+  explicit inline Translation(const VectorType& vector) : m_coeffs(vector) {}
+
+  /** \brief Retruns the x-translation by value. **/
+  inline Scalar x() const { return m_coeffs.x(); }
+  /** \brief Retruns the y-translation by value. **/
+  inline Scalar y() const { return m_coeffs.y(); }
+  /** \brief Retruns the z-translation by value. **/
+  inline Scalar z() const { return m_coeffs.z(); }
+
+  /** \brief Retruns the x-translation as a reference. **/
+  inline Scalar& x() { return m_coeffs.x(); }
+  /** \brief Retruns the y-translation as a reference. **/
+  inline Scalar& y() { return m_coeffs.y(); }
+  /** \brief Retruns the z-translation as a reference. **/
+  inline Scalar& z() { return m_coeffs.z(); }
+
+  const VectorType& vector() const { return m_coeffs; }
+  VectorType& vector() { return m_coeffs; }
+
+  const VectorType& translation() const { return m_coeffs; }
+  VectorType& translation() { return m_coeffs; }
+
+  /** Concatenates two translation */
+  inline Translation operator* (const Translation& other) const
+  { return Translation(m_coeffs + other.m_coeffs); }
+
+  /** Concatenates a translation and a uniform scaling */
+  inline AffineTransformType operator* (const UniformScaling<Scalar>& other) const;
+
+  /** Concatenates a translation and a linear transformation */
+  template<typename OtherDerived>
+  inline AffineTransformType operator* (const EigenBase<OtherDerived>& linear) const;
+
+  /** Concatenates a translation and a rotation */
+  template<typename Derived>
+  inline IsometryTransformType operator*(const RotationBase<Derived,Dim>& r) const
+  { return *this * IsometryTransformType(r); }
+
+  /** \returns the concatenation of a linear transformation \a l with the translation \a t */
+  // its a nightmare to define a templated friend function outside its declaration
+  template<typename OtherDerived> friend
+  inline AffineTransformType operator*(const EigenBase<OtherDerived>& linear, const Translation& t)
+  {
+    AffineTransformType res;
+    res.matrix().setZero();
+    res.linear() = linear.derived();
+    res.translation() = linear.derived() * t.m_coeffs;
+    res.matrix().row(Dim).setZero();
+    res(Dim,Dim) = Scalar(1);
+    return res;
+  }
+
+  /** Concatenates a translation and a transformation */
+  template<int Mode, int Options>
+  inline Transform<Scalar,Dim,Mode> operator* (const Transform<Scalar,Dim,Mode,Options>& t) const
+  {
+    Transform<Scalar,Dim,Mode> res = t;
+    res.pretranslate(m_coeffs);
+    return res;
+  }
+
+  /** Applies translation to vector */
+  inline VectorType operator* (const VectorType& other) const
+  { return m_coeffs + other; }
+
+  /** \returns the inverse translation (opposite) */
+  Translation inverse() const { return Translation(-m_coeffs); }
+
+  Translation& operator=(const Translation& other)
+  {
+    m_coeffs = other.m_coeffs;
+    return *this;
+  }
+
+  static const Translation Identity() { return Translation(VectorType::Zero()); }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Translation,Translation<NewScalarType,Dim> >::type cast() const
+  { return typename internal::cast_return_type<Translation,Translation<NewScalarType,Dim> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit Translation(const Translation<OtherScalarType,Dim>& other)
+  { m_coeffs = other.vector().template cast<Scalar>(); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const Translation& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return m_coeffs.isApprox(other.m_coeffs, prec); }
+
+};
+
+/** \addtogroup Geometry_Module */
+//@{
+typedef Translation<float, 2> Translation2f;
+typedef Translation<double,2> Translation2d;
+typedef Translation<float, 3> Translation3f;
+typedef Translation<double,3> Translation3d;
+//@}
+
+template<typename Scalar, int Dim>
+inline typename Translation<Scalar,Dim>::AffineTransformType
+Translation<Scalar,Dim>::operator* (const UniformScaling<Scalar>& other) const
+{
+  AffineTransformType res;
+  res.matrix().setZero();
+  res.linear().diagonal().fill(other.factor());
+  res.translation() = m_coeffs;
+  res(Dim,Dim) = Scalar(1);
+  return res;
+}
+
+template<typename Scalar, int Dim>
+template<typename OtherDerived>
+inline typename Translation<Scalar,Dim>::AffineTransformType
+Translation<Scalar,Dim>::operator* (const EigenBase<OtherDerived>& linear) const
+{
+  AffineTransformType res;
+  res.matrix().setZero();
+  res.linear() = linear.derived();
+  res.translation() = m_coeffs;
+  res.matrix().row(Dim).setZero();
+  res(Dim,Dim) = Scalar(1);
+  return res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRANSLATION_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Umeyama.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Umeyama.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Umeyama.h	(revision 2476)
@@ -0,0 +1,177 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_UMEYAMA_H
+#define EIGEN_UMEYAMA_H
+
+// This file requires the user to include 
+// * Eigen/Core
+// * Eigen/LU 
+// * Eigen/SVD
+// * Eigen/Array
+
+namespace Eigen { 
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+
+// These helpers are required since it allows to use mixed types as parameters
+// for the Umeyama. The problem with mixed parameters is that the return type
+// cannot trivially be deduced when float and double types are mixed.
+namespace internal {
+
+// Compile time return type deduction for different MatrixBase types.
+// Different means here different alignment and parameters but the same underlying
+// real scalar type.
+template<typename MatrixType, typename OtherMatrixType>
+struct umeyama_transform_matrix_type
+{
+  enum {
+    MinRowsAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(MatrixType::RowsAtCompileTime, OtherMatrixType::RowsAtCompileTime),
+
+    // When possible we want to choose some small fixed size value since the result
+    // is likely to fit on the stack. So here, EIGEN_SIZE_MIN_PREFER_DYNAMIC is not what we want.
+    HomogeneousDimension = int(MinRowsAtCompileTime) == Dynamic ? Dynamic : int(MinRowsAtCompileTime)+1
+  };
+
+  typedef Matrix<typename traits<MatrixType>::Scalar,
+    HomogeneousDimension,
+    HomogeneousDimension,
+    AutoAlign | (traits<MatrixType>::Flags & RowMajorBit ? RowMajor : ColMajor),
+    HomogeneousDimension,
+    HomogeneousDimension
+  > type;
+};
+
+}
+
+#endif
+
+/**
+* \geometry_module \ingroup Geometry_Module
+*
+* \brief Returns the transformation between two point sets.
+*
+* The algorithm is based on:
+* "Least-squares estimation of transformation parameters between two point patterns",
+* Shinji Umeyama, PAMI 1991, DOI: 10.1109/34.88573
+*
+* It estimates parameters \f$ c, \mathbf{R}, \f$ and \f$ \mathbf{t} \f$ such that
+* \f{align*}
+*   \frac{1}{n} \sum_{i=1}^n \vert\vert y_i - (c\mathbf{R}x_i + \mathbf{t}) \vert\vert_2^2
+* \f}
+* is minimized.
+*
+* The algorithm is based on the analysis of the covariance matrix
+* \f$ \Sigma_{\mathbf{x}\mathbf{y}} \in \mathbb{R}^{d \times d} \f$
+* of the input point sets \f$ \mathbf{x} \f$ and \f$ \mathbf{y} \f$ where 
+* \f$d\f$ is corresponding to the dimension (which is typically small).
+* The analysis is involving the SVD having a complexity of \f$O(d^3)\f$
+* though the actual computational effort lies in the covariance
+* matrix computation which has an asymptotic lower bound of \f$O(dm)\f$ when 
+* the input point sets have dimension \f$d \times m\f$.
+*
+* Currently the method is working only for floating point matrices.
+*
+* \todo Should the return type of umeyama() become a Transform?
+*
+* \param src Source points \f$ \mathbf{x} = \left( x_1, \hdots, x_n \right) \f$.
+* \param dst Destination points \f$ \mathbf{y} = \left( y_1, \hdots, y_n \right) \f$.
+* \param with_scaling Sets \f$ c=1 \f$ when <code>false</code> is passed.
+* \return The homogeneous transformation 
+* \f{align*}
+*   T = \begin{bmatrix} c\mathbf{R} & \mathbf{t} \\ \mathbf{0} & 1 \end{bmatrix}
+* \f}
+* minimizing the resudiual above. This transformation is always returned as an 
+* Eigen::Matrix.
+*/
+template <typename Derived, typename OtherDerived>
+typename internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type
+umeyama(const MatrixBase<Derived>& src, const MatrixBase<OtherDerived>& dst, bool with_scaling = true)
+{
+  typedef typename internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type TransformationMatrixType;
+  typedef typename internal::traits<TransformationMatrixType>::Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef typename Derived::Index Index;
+
+  EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL)
+  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename internal::traits<OtherDerived>::Scalar>::value),
+    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+  enum { Dimension = EIGEN_SIZE_MIN_PREFER_DYNAMIC(Derived::RowsAtCompileTime, OtherDerived::RowsAtCompileTime) };
+
+  typedef Matrix<Scalar, Dimension, 1> VectorType;
+  typedef Matrix<Scalar, Dimension, Dimension> MatrixType;
+  typedef typename internal::plain_matrix_type_row_major<Derived>::type RowMajorMatrixType;
+
+  const Index m = src.rows(); // dimension
+  const Index n = src.cols(); // number of measurements
+
+  // required for demeaning ...
+  const RealScalar one_over_n = RealScalar(1) / static_cast<RealScalar>(n);
+
+  // computation of mean
+  const VectorType src_mean = src.rowwise().sum() * one_over_n;
+  const VectorType dst_mean = dst.rowwise().sum() * one_over_n;
+
+  // demeaning of src and dst points
+  const RowMajorMatrixType src_demean = src.colwise() - src_mean;
+  const RowMajorMatrixType dst_demean = dst.colwise() - dst_mean;
+
+  // Eq. (36)-(37)
+  const Scalar src_var = src_demean.rowwise().squaredNorm().sum() * one_over_n;
+
+  // Eq. (38)
+  const MatrixType sigma = one_over_n * dst_demean * src_demean.transpose();
+
+  JacobiSVD<MatrixType> svd(sigma, ComputeFullU | ComputeFullV);
+
+  // Initialize the resulting transformation with an identity matrix...
+  TransformationMatrixType Rt = TransformationMatrixType::Identity(m+1,m+1);
+
+  // Eq. (39)
+  VectorType S = VectorType::Ones(m);
+  if (sigma.determinant()<Scalar(0)) S(m-1) = Scalar(-1);
+
+  // Eq. (40) and (43)
+  const VectorType& d = svd.singularValues();
+  Index rank = 0; for (Index i=0; i<m; ++i) if (!internal::isMuchSmallerThan(d.coeff(i),d.coeff(0))) ++rank;
+  if (rank == m-1) {
+    if ( svd.matrixU().determinant() * svd.matrixV().determinant() > Scalar(0) ) {
+      Rt.block(0,0,m,m).noalias() = svd.matrixU()*svd.matrixV().transpose();
+    } else {
+      const Scalar s = S(m-1); S(m-1) = Scalar(-1);
+      Rt.block(0,0,m,m).noalias() = svd.matrixU() * S.asDiagonal() * svd.matrixV().transpose();
+      S(m-1) = s;
+    }
+  } else {
+    Rt.block(0,0,m,m).noalias() = svd.matrixU() * S.asDiagonal() * svd.matrixV().transpose();
+  }
+
+  if (with_scaling)
+  {
+    // Eq. (42)
+    const Scalar c = Scalar(1)/src_var * svd.singularValues().dot(S);
+
+    // Eq. (41)
+    Rt.col(m).head(m) = dst_mean;
+    Rt.col(m).head(m).noalias() -= c*Rt.topLeftCorner(m,m)*src_mean;
+    Rt.block(0,0,m,m) *= c;
+  }
+  else
+  {
+    Rt.col(m).head(m) = dst_mean;
+    Rt.col(m).head(m).noalias() -= Rt.topLeftCorner(m,m)*src_mean;
+  }
+
+  return Rt;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_UMEYAMA_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/OrthoMethods.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/OrthoMethods.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/OrthoMethods.h	(revision 2476)
@@ -0,0 +1,218 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ORTHOMETHODS_H
+#define EIGEN_ORTHOMETHODS_H
+
+namespace Eigen { 
+
+/** \geometry_module
+  *
+  * \returns the cross product of \c *this and \a other
+  *
+  * Here is a very good explanation of cross-product: http://xkcd.com/199/
+  * \sa MatrixBase::cross3()
+  */
+template<typename Derived>
+template<typename OtherDerived>
+inline typename MatrixBase<Derived>::template cross_product_return_type<OtherDerived>::type
+MatrixBase<Derived>::cross(const MatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Derived,3)
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,3)
+
+  // Note that there is no need for an expression here since the compiler
+  // optimize such a small temporary very well (even within a complex expression)
+  typename internal::nested<Derived,2>::type lhs(derived());
+  typename internal::nested<OtherDerived,2>::type rhs(other.derived());
+  return typename cross_product_return_type<OtherDerived>::type(
+    numext::conj(lhs.coeff(1) * rhs.coeff(2) - lhs.coeff(2) * rhs.coeff(1)),
+    numext::conj(lhs.coeff(2) * rhs.coeff(0) - lhs.coeff(0) * rhs.coeff(2)),
+    numext::conj(lhs.coeff(0) * rhs.coeff(1) - lhs.coeff(1) * rhs.coeff(0))
+  );
+}
+
+namespace internal {
+
+template< int Arch,typename VectorLhs,typename VectorRhs,
+          typename Scalar = typename VectorLhs::Scalar,
+          bool Vectorizable = bool((VectorLhs::Flags&VectorRhs::Flags)&PacketAccessBit)>
+struct cross3_impl {
+  static inline typename internal::plain_matrix_type<VectorLhs>::type
+  run(const VectorLhs& lhs, const VectorRhs& rhs)
+  {
+    return typename internal::plain_matrix_type<VectorLhs>::type(
+      numext::conj(lhs.coeff(1) * rhs.coeff(2) - lhs.coeff(2) * rhs.coeff(1)),
+      numext::conj(lhs.coeff(2) * rhs.coeff(0) - lhs.coeff(0) * rhs.coeff(2)),
+      numext::conj(lhs.coeff(0) * rhs.coeff(1) - lhs.coeff(1) * rhs.coeff(0)),
+      0
+    );
+  }
+};
+
+}
+
+/** \geometry_module
+  *
+  * \returns the cross product of \c *this and \a other using only the x, y, and z coefficients
+  *
+  * The size of \c *this and \a other must be four. This function is especially useful
+  * when using 4D vectors instead of 3D ones to get advantage of SSE/AltiVec vectorization.
+  *
+  * \sa MatrixBase::cross()
+  */
+template<typename Derived>
+template<typename OtherDerived>
+inline typename MatrixBase<Derived>::PlainObject
+MatrixBase<Derived>::cross3(const MatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(Derived,4)
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,4)
+
+  typedef typename internal::nested<Derived,2>::type DerivedNested;
+  typedef typename internal::nested<OtherDerived,2>::type OtherDerivedNested;
+  DerivedNested lhs(derived());
+  OtherDerivedNested rhs(other.derived());
+
+  return internal::cross3_impl<Architecture::Target,
+                        typename internal::remove_all<DerivedNested>::type,
+                        typename internal::remove_all<OtherDerivedNested>::type>::run(lhs,rhs);
+}
+
+/** \returns a matrix expression of the cross product of each column or row
+  * of the referenced expression with the \a other vector.
+  *
+  * The referenced matrix must have one dimension equal to 3.
+  * The result matrix has the same dimensions than the referenced one.
+  *
+  * \geometry_module
+  *
+  * \sa MatrixBase::cross() */
+template<typename ExpressionType, int Direction>
+template<typename OtherDerived>
+const typename VectorwiseOp<ExpressionType,Direction>::CrossReturnType
+VectorwiseOp<ExpressionType,Direction>::cross(const MatrixBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,3)
+  EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename OtherDerived::Scalar>::value),
+    YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+
+  CrossReturnType res(_expression().rows(),_expression().cols());
+  if(Direction==Vertical)
+  {
+    eigen_assert(CrossReturnType::RowsAtCompileTime==3 && "the matrix must have exactly 3 rows");
+    res.row(0) = (_expression().row(1) * other.coeff(2) - _expression().row(2) * other.coeff(1)).conjugate();
+    res.row(1) = (_expression().row(2) * other.coeff(0) - _expression().row(0) * other.coeff(2)).conjugate();
+    res.row(2) = (_expression().row(0) * other.coeff(1) - _expression().row(1) * other.coeff(0)).conjugate();
+  }
+  else
+  {
+    eigen_assert(CrossReturnType::ColsAtCompileTime==3 && "the matrix must have exactly 3 columns");
+    res.col(0) = (_expression().col(1) * other.coeff(2) - _expression().col(2) * other.coeff(1)).conjugate();
+    res.col(1) = (_expression().col(2) * other.coeff(0) - _expression().col(0) * other.coeff(2)).conjugate();
+    res.col(2) = (_expression().col(0) * other.coeff(1) - _expression().col(1) * other.coeff(0)).conjugate();
+  }
+  return res;
+}
+
+namespace internal {
+
+template<typename Derived, int Size = Derived::SizeAtCompileTime>
+struct unitOrthogonal_selector
+{
+  typedef typename plain_matrix_type<Derived>::type VectorType;
+  typedef typename traits<Derived>::Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef typename Derived::Index Index;
+  typedef Matrix<Scalar,2,1> Vector2;
+  static inline VectorType run(const Derived& src)
+  {
+    VectorType perp = VectorType::Zero(src.size());
+    Index maxi = 0;
+    Index sndi = 0;
+    src.cwiseAbs().maxCoeff(&maxi);
+    if (maxi==0)
+      sndi = 1;
+    RealScalar invnm = RealScalar(1)/(Vector2() << src.coeff(sndi),src.coeff(maxi)).finished().norm();
+    perp.coeffRef(maxi) = -numext::conj(src.coeff(sndi)) * invnm;
+    perp.coeffRef(sndi) =  numext::conj(src.coeff(maxi)) * invnm;
+
+    return perp;
+   }
+};
+
+template<typename Derived>
+struct unitOrthogonal_selector<Derived,3>
+{
+  typedef typename plain_matrix_type<Derived>::type VectorType;
+  typedef typename traits<Derived>::Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  static inline VectorType run(const Derived& src)
+  {
+    VectorType perp;
+    /* Let us compute the crossed product of *this with a vector
+     * that is not too close to being colinear to *this.
+     */
+
+    /* unless the x and y coords are both close to zero, we can
+     * simply take ( -y, x, 0 ) and normalize it.
+     */
+    if((!isMuchSmallerThan(src.x(), src.z()))
+    || (!isMuchSmallerThan(src.y(), src.z())))
+    {
+      RealScalar invnm = RealScalar(1)/src.template head<2>().norm();
+      perp.coeffRef(0) = -numext::conj(src.y())*invnm;
+      perp.coeffRef(1) = numext::conj(src.x())*invnm;
+      perp.coeffRef(2) = 0;
+    }
+    /* if both x and y are close to zero, then the vector is close
+     * to the z-axis, so it's far from colinear to the x-axis for instance.
+     * So we take the crossed product with (1,0,0) and normalize it.
+     */
+    else
+    {
+      RealScalar invnm = RealScalar(1)/src.template tail<2>().norm();
+      perp.coeffRef(0) = 0;
+      perp.coeffRef(1) = -numext::conj(src.z())*invnm;
+      perp.coeffRef(2) = numext::conj(src.y())*invnm;
+    }
+
+    return perp;
+   }
+};
+
+template<typename Derived>
+struct unitOrthogonal_selector<Derived,2>
+{
+  typedef typename plain_matrix_type<Derived>::type VectorType;
+  static inline VectorType run(const Derived& src)
+  { return VectorType(-numext::conj(src.y()), numext::conj(src.x())).normalized(); }
+};
+
+} // end namespace internal
+
+/** \returns a unit vector which is orthogonal to \c *this
+  *
+  * The size of \c *this must be at least 2. If the size is exactly 2,
+  * then the returned vector is a counter clock wise rotation of \c *this, i.e., (-y,x).normalized().
+  *
+  * \sa cross()
+  */
+template<typename Derived>
+typename MatrixBase<Derived>::PlainObject
+MatrixBase<Derived>::unitOrthogonal() const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
+  return internal::unitOrthogonal_selector<Derived>::run(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ORTHOMETHODS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/ParametrizedLine.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/ParametrizedLine.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/ParametrizedLine.h	(revision 2476)
@@ -0,0 +1,195 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_PARAMETRIZEDLINE_H
+#define EIGEN_PARAMETRIZEDLINE_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class ParametrizedLine
+  *
+  * \brief A parametrized line
+  *
+  * A parametrized line is defined by an origin point \f$ \mathbf{o} \f$ and a unit
+  * direction vector \f$ \mathbf{d} \f$ such that the line corresponds to
+  * the set \f$ l(t) = \mathbf{o} + t \mathbf{d} \f$, \f$ t \in \mathbf{R} \f$.
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients
+  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+class ParametrizedLine
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
+  enum {
+    AmbientDimAtCompileTime = _AmbientDim,
+    Options = _Options
+  };
+  typedef _Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef DenseIndex Index;
+  typedef Matrix<Scalar,AmbientDimAtCompileTime,1,Options> VectorType;
+
+  /** Default constructor without initialization */
+  inline ParametrizedLine() {}
+  
+  template<int OtherOptions>
+  ParametrizedLine(const ParametrizedLine<Scalar,AmbientDimAtCompileTime,OtherOptions>& other)
+   : m_origin(other.origin()), m_direction(other.direction())
+  {}
+
+  /** Constructs a dynamic-size line with \a _dim the dimension
+    * of the ambient space */
+  inline explicit ParametrizedLine(Index _dim) : m_origin(_dim), m_direction(_dim) {}
+
+  /** Initializes a parametrized line of direction \a direction and origin \a origin.
+    * \warning the vector direction is assumed to be normalized.
+    */
+  ParametrizedLine(const VectorType& origin, const VectorType& direction)
+    : m_origin(origin), m_direction(direction) {}
+
+  template <int OtherOptions>
+  explicit ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane);
+
+  /** Constructs a parametrized line going from \a p0 to \a p1. */
+  static inline ParametrizedLine Through(const VectorType& p0, const VectorType& p1)
+  { return ParametrizedLine(p0, (p1-p0).normalized()); }
+
+  ~ParametrizedLine() {}
+
+  /** \returns the dimension in which the line holds */
+  inline Index dim() const { return m_direction.size(); }
+
+  const VectorType& origin() const { return m_origin; }
+  VectorType& origin() { return m_origin; }
+
+  const VectorType& direction() const { return m_direction; }
+  VectorType& direction() { return m_direction; }
+
+  /** \returns the squared distance of a point \a p to its projection onto the line \c *this.
+    * \sa distance()
+    */
+  RealScalar squaredDistance(const VectorType& p) const
+  {
+    VectorType diff = p - origin();
+    return (diff - direction().dot(diff) * direction()).squaredNorm();
+  }
+  /** \returns the distance of a point \a p to its projection onto the line \c *this.
+    * \sa squaredDistance()
+    */
+  RealScalar distance(const VectorType& p) const { using std::sqrt; return sqrt(squaredDistance(p)); }
+
+  /** \returns the projection of a point \a p onto the line \c *this. */
+  VectorType projection(const VectorType& p) const
+  { return origin() + direction().dot(p-origin()) * direction(); }
+
+  VectorType pointAt(const Scalar& t) const;
+  
+  template <int OtherOptions>
+  Scalar intersectionParameter(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const;
+ 
+  template <int OtherOptions>
+  Scalar intersection(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const;
+  
+  template <int OtherOptions>
+  VectorType intersectionPoint(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const;
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<ParametrizedLine,
+           ParametrizedLine<NewScalarType,AmbientDimAtCompileTime,Options> >::type cast() const
+  {
+    return typename internal::cast_return_type<ParametrizedLine,
+                    ParametrizedLine<NewScalarType,AmbientDimAtCompileTime,Options> >::type(*this);
+  }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType,int OtherOptions>
+  inline explicit ParametrizedLine(const ParametrizedLine<OtherScalarType,AmbientDimAtCompileTime,OtherOptions>& other)
+  {
+    m_origin = other.origin().template cast<Scalar>();
+    m_direction = other.direction().template cast<Scalar>();
+  }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const ParametrizedLine& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return m_origin.isApprox(other.m_origin, prec) && m_direction.isApprox(other.m_direction, prec); }
+
+protected:
+
+  VectorType m_origin, m_direction;
+};
+
+/** Constructs a parametrized line from a 2D hyperplane
+  *
+  * \warning the ambient space must have dimension 2 such that the hyperplane actually describes a line
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+template <int OtherOptions>
+inline ParametrizedLine<_Scalar, _AmbientDim,_Options>::ParametrizedLine(const Hyperplane<_Scalar, _AmbientDim,OtherOptions>& hyperplane)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
+  direction() = hyperplane.normal().unitOrthogonal();
+  origin() = -hyperplane.normal()*hyperplane.offset();
+}
+
+/** \returns the point at \a t along this line
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+inline typename ParametrizedLine<_Scalar, _AmbientDim,_Options>::VectorType
+ParametrizedLine<_Scalar, _AmbientDim,_Options>::pointAt(const _Scalar& t) const
+{
+  return origin() + (direction()*t); 
+}
+
+/** \returns the parameter value of the intersection between \c *this and the given \a hyperplane
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+template <int OtherOptions>
+inline _Scalar ParametrizedLine<_Scalar, _AmbientDim,_Options>::intersectionParameter(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const
+{
+  return -(hyperplane.offset()+hyperplane.normal().dot(origin()))
+          / hyperplane.normal().dot(direction());
+}
+
+
+/** \deprecated use intersectionParameter()
+  * \returns the parameter value of the intersection between \c *this and the given \a hyperplane
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+template <int OtherOptions>
+inline _Scalar ParametrizedLine<_Scalar, _AmbientDim,_Options>::intersection(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const
+{
+  return intersectionParameter(hyperplane);
+}
+
+/** \returns the point of the intersection between \c *this and the given hyperplane
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+template <int OtherOptions>
+inline typename ParametrizedLine<_Scalar, _AmbientDim,_Options>::VectorType
+ParametrizedLine<_Scalar, _AmbientDim,_Options>::intersectionPoint(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const
+{
+  return pointAt(intersectionParameter(hyperplane));
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARAMETRIZEDLINE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Scaling.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Scaling.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Scaling.h	(revision 2476)
@@ -0,0 +1,166 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SCALING_H
+#define EIGEN_SCALING_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Scaling
+  *
+  * \brief Represents a generic uniform scaling transformation
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients.
+  *
+  * This class represent a uniform scaling transformation. It is the return
+  * type of Scaling(Scalar), and most of the time this is the only way it
+  * is used. In particular, this class is not aimed to be used to store a scaling transformation,
+  * but rather to make easier the constructions and updates of Transform objects.
+  *
+  * To represent an axis aligned scaling, use the DiagonalMatrix class.
+  *
+  * \sa Scaling(), class DiagonalMatrix, MatrixBase::asDiagonal(), class Translation, class Transform
+  */
+template<typename _Scalar>
+class UniformScaling
+{
+public:
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+
+protected:
+
+  Scalar m_factor;
+
+public:
+
+  /** Default constructor without initialization. */
+  UniformScaling() {}
+  /** Constructs and initialize a uniform scaling transformation */
+  explicit inline UniformScaling(const Scalar& s) : m_factor(s) {}
+
+  inline const Scalar& factor() const { return m_factor; }
+  inline Scalar& factor() { return m_factor; }
+
+  /** Concatenates two uniform scaling */
+  inline UniformScaling operator* (const UniformScaling& other) const
+  { return UniformScaling(m_factor * other.factor()); }
+
+  /** Concatenates a uniform scaling and a translation */
+  template<int Dim>
+  inline Transform<Scalar,Dim,Affine> operator* (const Translation<Scalar,Dim>& t) const;
+
+  /** Concatenates a uniform scaling and an affine transformation */
+  template<int Dim, int Mode, int Options>
+  inline Transform<Scalar,Dim,(int(Mode)==int(Isometry)?Affine:Mode)> operator* (const Transform<Scalar,Dim, Mode, Options>& t) const
+  {
+   Transform<Scalar,Dim,(int(Mode)==int(Isometry)?Affine:Mode)> res = t;
+   res.prescale(factor());
+   return res;
+}
+
+  /** Concatenates a uniform scaling and a linear transformation matrix */
+  // TODO returns an expression
+  template<typename Derived>
+  inline typename internal::plain_matrix_type<Derived>::type operator* (const MatrixBase<Derived>& other) const
+  { return other * m_factor; }
+
+  template<typename Derived,int Dim>
+  inline Matrix<Scalar,Dim,Dim> operator*(const RotationBase<Derived,Dim>& r) const
+  { return r.toRotationMatrix() * m_factor; }
+
+  /** \returns the inverse scaling */
+  inline UniformScaling inverse() const
+  { return UniformScaling(Scalar(1)/m_factor); }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline UniformScaling<NewScalarType> cast() const
+  { return UniformScaling<NewScalarType>(NewScalarType(m_factor)); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit UniformScaling(const UniformScaling<OtherScalarType>& other)
+  { m_factor = Scalar(other.factor()); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const UniformScaling& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return internal::isApprox(m_factor, other.factor(), prec); }
+
+};
+
+/** Concatenates a linear transformation matrix and a uniform scaling */
+// NOTE this operator is defiend in MatrixBase and not as a friend function
+// of UniformScaling to fix an internal crash of Intel's ICC
+template<typename Derived> typename MatrixBase<Derived>::ScalarMultipleReturnType
+MatrixBase<Derived>::operator*(const UniformScaling<Scalar>& s) const
+{ return derived() * s.factor(); }
+
+/** Constructs a uniform scaling from scale factor \a s */
+static inline UniformScaling<float> Scaling(float s) { return UniformScaling<float>(s); }
+/** Constructs a uniform scaling from scale factor \a s */
+static inline UniformScaling<double> Scaling(double s) { return UniformScaling<double>(s); }
+/** Constructs a uniform scaling from scale factor \a s */
+template<typename RealScalar>
+static inline UniformScaling<std::complex<RealScalar> > Scaling(const std::complex<RealScalar>& s)
+{ return UniformScaling<std::complex<RealScalar> >(s); }
+
+/** Constructs a 2D axis aligned scaling */
+template<typename Scalar>
+static inline DiagonalMatrix<Scalar,2> Scaling(const Scalar& sx, const Scalar& sy)
+{ return DiagonalMatrix<Scalar,2>(sx, sy); }
+/** Constructs a 3D axis aligned scaling */
+template<typename Scalar>
+static inline DiagonalMatrix<Scalar,3> Scaling(const Scalar& sx, const Scalar& sy, const Scalar& sz)
+{ return DiagonalMatrix<Scalar,3>(sx, sy, sz); }
+
+/** Constructs an axis aligned scaling expression from vector expression \a coeffs
+  * This is an alias for coeffs.asDiagonal()
+  */
+template<typename Derived>
+static inline const DiagonalWrapper<const Derived> Scaling(const MatrixBase<Derived>& coeffs)
+{ return coeffs.asDiagonal(); }
+
+/** \addtogroup Geometry_Module */
+//@{
+/** \deprecated */
+typedef DiagonalMatrix<float, 2> AlignedScaling2f;
+/** \deprecated */
+typedef DiagonalMatrix<double,2> AlignedScaling2d;
+/** \deprecated */
+typedef DiagonalMatrix<float, 3> AlignedScaling3f;
+/** \deprecated */
+typedef DiagonalMatrix<double,3> AlignedScaling3d;
+//@}
+
+template<typename Scalar>
+template<int Dim>
+inline Transform<Scalar,Dim,Affine>
+UniformScaling<Scalar>::operator* (const Translation<Scalar,Dim>& t) const
+{
+  Transform<Scalar,Dim,Affine> res;
+  res.matrix().setZero();
+  res.linear().diagonal().fill(factor());
+  res.translation() = factor() * t.vector();
+  res(Dim,Dim) = Scalar(1);
+  return res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SCALING_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Quaternion.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Quaternion.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Quaternion.h	(revision 2476)
@@ -0,0 +1,776 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Mathieu Gautier <mathieu.gautier@cea.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_QUATERNION_H
+#define EIGEN_QUATERNION_H
+namespace Eigen { 
+
+
+/***************************************************************************
+* Definition of QuaternionBase<Derived>
+* The implementation is at the end of the file
+***************************************************************************/
+
+namespace internal {
+template<typename Other,
+         int OtherRows=Other::RowsAtCompileTime,
+         int OtherCols=Other::ColsAtCompileTime>
+struct quaternionbase_assign_impl;
+}
+
+/** \geometry_module \ingroup Geometry_Module
+  * \class QuaternionBase
+  * \brief Base class for quaternion expressions
+  * \tparam Derived derived type (CRTP)
+  * \sa class Quaternion
+  */
+template<class Derived>
+class QuaternionBase : public RotationBase<Derived, 3>
+{
+  typedef RotationBase<Derived, 3> Base;
+public:
+  using Base::operator*;
+  using Base::derived;
+
+  typedef typename internal::traits<Derived>::Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef typename internal::traits<Derived>::Coefficients Coefficients;
+  enum {
+    Flags = Eigen::internal::traits<Derived>::Flags
+  };
+
+ // typedef typename Matrix<Scalar,4,1> Coefficients;
+  /** the type of a 3D vector */
+  typedef Matrix<Scalar,3,1> Vector3;
+  /** the equivalent rotation matrix type */
+  typedef Matrix<Scalar,3,3> Matrix3;
+  /** the equivalent angle-axis type */
+  typedef AngleAxis<Scalar> AngleAxisType;
+
+
+
+  /** \returns the \c x coefficient */
+  inline Scalar x() const { return this->derived().coeffs().coeff(0); }
+  /** \returns the \c y coefficient */
+  inline Scalar y() const { return this->derived().coeffs().coeff(1); }
+  /** \returns the \c z coefficient */
+  inline Scalar z() const { return this->derived().coeffs().coeff(2); }
+  /** \returns the \c w coefficient */
+  inline Scalar w() const { return this->derived().coeffs().coeff(3); }
+
+  /** \returns a reference to the \c x coefficient */
+  inline Scalar& x() { return this->derived().coeffs().coeffRef(0); }
+  /** \returns a reference to the \c y coefficient */
+  inline Scalar& y() { return this->derived().coeffs().coeffRef(1); }
+  /** \returns a reference to the \c z coefficient */
+  inline Scalar& z() { return this->derived().coeffs().coeffRef(2); }
+  /** \returns a reference to the \c w coefficient */
+  inline Scalar& w() { return this->derived().coeffs().coeffRef(3); }
+
+  /** \returns a read-only vector expression of the imaginary part (x,y,z) */
+  inline const VectorBlock<const Coefficients,3> vec() const { return coeffs().template head<3>(); }
+
+  /** \returns a vector expression of the imaginary part (x,y,z) */
+  inline VectorBlock<Coefficients,3> vec() { return coeffs().template head<3>(); }
+
+  /** \returns a read-only vector expression of the coefficients (x,y,z,w) */
+  inline const typename internal::traits<Derived>::Coefficients& coeffs() const { return derived().coeffs(); }
+
+  /** \returns a vector expression of the coefficients (x,y,z,w) */
+  inline typename internal::traits<Derived>::Coefficients& coeffs() { return derived().coeffs(); }
+
+  EIGEN_STRONG_INLINE QuaternionBase<Derived>& operator=(const QuaternionBase<Derived>& other);
+  template<class OtherDerived> EIGEN_STRONG_INLINE Derived& operator=(const QuaternionBase<OtherDerived>& other);
+
+// disabled this copy operator as it is giving very strange compilation errors when compiling
+// test_stdvector with GCC 4.4.2. This looks like a GCC bug though, so feel free to re-enable it if it's
+// useful; however notice that we already have the templated operator= above and e.g. in MatrixBase
+// we didn't have to add, in addition to templated operator=, such a non-templated copy operator.
+//  Derived& operator=(const QuaternionBase& other)
+//  { return operator=<Derived>(other); }
+
+  Derived& operator=(const AngleAxisType& aa);
+  template<class OtherDerived> Derived& operator=(const MatrixBase<OtherDerived>& m);
+
+  /** \returns a quaternion representing an identity rotation
+    * \sa MatrixBase::Identity()
+    */
+  static inline Quaternion<Scalar> Identity() { return Quaternion<Scalar>(Scalar(1), Scalar(0), Scalar(0), Scalar(0)); }
+
+  /** \sa QuaternionBase::Identity(), MatrixBase::setIdentity()
+    */
+  inline QuaternionBase& setIdentity() { coeffs() << Scalar(0), Scalar(0), Scalar(0), Scalar(1); return *this; }
+
+  /** \returns the squared norm of the quaternion's coefficients
+    * \sa QuaternionBase::norm(), MatrixBase::squaredNorm()
+    */
+  inline Scalar squaredNorm() const { return coeffs().squaredNorm(); }
+
+  /** \returns the norm of the quaternion's coefficients
+    * \sa QuaternionBase::squaredNorm(), MatrixBase::norm()
+    */
+  inline Scalar norm() const { return coeffs().norm(); }
+
+  /** Normalizes the quaternion \c *this
+    * \sa normalized(), MatrixBase::normalize() */
+  inline void normalize() { coeffs().normalize(); }
+  /** \returns a normalized copy of \c *this
+    * \sa normalize(), MatrixBase::normalized() */
+  inline Quaternion<Scalar> normalized() const { return Quaternion<Scalar>(coeffs().normalized()); }
+
+    /** \returns the dot product of \c *this and \a other
+    * Geometrically speaking, the dot product of two unit quaternions
+    * corresponds to the cosine of half the angle between the two rotations.
+    * \sa angularDistance()
+    */
+  template<class OtherDerived> inline Scalar dot(const QuaternionBase<OtherDerived>& other) const { return coeffs().dot(other.coeffs()); }
+
+  template<class OtherDerived> Scalar angularDistance(const QuaternionBase<OtherDerived>& other) const;
+
+  /** \returns an equivalent 3x3 rotation matrix */
+  Matrix3 toRotationMatrix() const;
+
+  /** \returns the quaternion which transform \a a into \a b through a rotation */
+  template<typename Derived1, typename Derived2>
+  Derived& setFromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b);
+
+  template<class OtherDerived> EIGEN_STRONG_INLINE Quaternion<Scalar> operator* (const QuaternionBase<OtherDerived>& q) const;
+  template<class OtherDerived> EIGEN_STRONG_INLINE Derived& operator*= (const QuaternionBase<OtherDerived>& q);
+
+  /** \returns the quaternion describing the inverse rotation */
+  Quaternion<Scalar> inverse() const;
+
+  /** \returns the conjugated quaternion */
+  Quaternion<Scalar> conjugate() const;
+
+  template<class OtherDerived> Quaternion<Scalar> slerp(const Scalar& t, const QuaternionBase<OtherDerived>& other) const;
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  template<class OtherDerived>
+  bool isApprox(const QuaternionBase<OtherDerived>& other, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return coeffs().isApprox(other.coeffs(), prec); }
+
+	/** return the result vector of \a v through the rotation*/
+  EIGEN_STRONG_INLINE Vector3 _transformVector(const Vector3& v) const;
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Derived,Quaternion<NewScalarType> >::type cast() const
+  {
+    return typename internal::cast_return_type<Derived,Quaternion<NewScalarType> >::type(derived());
+  }
+
+#ifdef EIGEN_QUATERNIONBASE_PLUGIN
+# include EIGEN_QUATERNIONBASE_PLUGIN
+#endif
+};
+
+/***************************************************************************
+* Definition/implementation of Quaternion<Scalar>
+***************************************************************************/
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Quaternion
+  *
+  * \brief The quaternion class used to represent 3D orientations and rotations
+  *
+  * \tparam _Scalar the scalar type, i.e., the type of the coefficients
+  * \tparam _Options controls the memory alignment of the coefficients. Can be \# AutoAlign or \# DontAlign. Default is AutoAlign.
+  *
+  * This class represents a quaternion \f$ w+xi+yj+zk \f$ that is a convenient representation of
+  * orientations and rotations of objects in three dimensions. Compared to other representations
+  * like Euler angles or 3x3 matrices, quaternions offer the following advantages:
+  * \li \b compact storage (4 scalars)
+  * \li \b efficient to compose (28 flops),
+  * \li \b stable spherical interpolation
+  *
+  * The following two typedefs are provided for convenience:
+  * \li \c Quaternionf for \c float
+  * \li \c Quaterniond for \c double
+  *
+  * \warning Operations interpreting the quaternion as rotation have undefined behavior if the quaternion is not normalized.
+  *
+  * \sa  class AngleAxis, class Transform
+  */
+
+namespace internal {
+template<typename _Scalar,int _Options>
+struct traits<Quaternion<_Scalar,_Options> >
+{
+  typedef Quaternion<_Scalar,_Options> PlainObject;
+  typedef _Scalar Scalar;
+  typedef Matrix<_Scalar,4,1,_Options> Coefficients;
+  enum{
+    IsAligned = internal::traits<Coefficients>::Flags & AlignedBit,
+    Flags = IsAligned ? (AlignedBit | LvalueBit) : LvalueBit
+  };
+};
+}
+
+template<typename _Scalar, int _Options>
+class Quaternion : public QuaternionBase<Quaternion<_Scalar,_Options> >
+{
+  typedef QuaternionBase<Quaternion<_Scalar,_Options> > Base;
+  enum { IsAligned = internal::traits<Quaternion>::IsAligned };
+
+public:
+  typedef _Scalar Scalar;
+
+  EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Quaternion)
+  using Base::operator*=;
+
+  typedef typename internal::traits<Quaternion>::Coefficients Coefficients;
+  typedef typename Base::AngleAxisType AngleAxisType;
+
+  /** Default constructor leaving the quaternion uninitialized. */
+  inline Quaternion() {}
+
+  /** Constructs and initializes the quaternion \f$ w+xi+yj+zk \f$ from
+    * its four coefficients \a w, \a x, \a y and \a z.
+    *
+    * \warning Note the order of the arguments: the real \a w coefficient first,
+    * while internally the coefficients are stored in the following order:
+    * [\c x, \c y, \c z, \c w]
+    */
+  inline Quaternion(const Scalar& w, const Scalar& x, const Scalar& y, const Scalar& z) : m_coeffs(x, y, z, w){}
+
+  /** Constructs and initialize a quaternion from the array data */
+  inline Quaternion(const Scalar* data) : m_coeffs(data) {}
+
+  /** Copy constructor */
+  template<class Derived> EIGEN_STRONG_INLINE Quaternion(const QuaternionBase<Derived>& other) { this->Base::operator=(other); }
+
+  /** Constructs and initializes a quaternion from the angle-axis \a aa */
+  explicit inline Quaternion(const AngleAxisType& aa) { *this = aa; }
+
+  /** Constructs and initializes a quaternion from either:
+    *  - a rotation matrix expression,
+    *  - a 4D vector expression representing quaternion coefficients.
+    */
+  template<typename Derived>
+  explicit inline Quaternion(const MatrixBase<Derived>& other) { *this = other; }
+
+  /** Explicit copy constructor with scalar conversion */
+  template<typename OtherScalar, int OtherOptions>
+  explicit inline Quaternion(const Quaternion<OtherScalar, OtherOptions>& other)
+  { m_coeffs = other.coeffs().template cast<Scalar>(); }
+
+  template<typename Derived1, typename Derived2>
+  static Quaternion FromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b);
+
+  inline Coefficients& coeffs() { return m_coeffs;}
+  inline const Coefficients& coeffs() const { return m_coeffs;}
+
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF(bool(IsAligned))
+
+protected:
+  Coefficients m_coeffs;
+  
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    static EIGEN_STRONG_INLINE void _check_template_params()
+    {
+      EIGEN_STATIC_ASSERT( (_Options & DontAlign) == _Options,
+        INVALID_MATRIX_TEMPLATE_PARAMETERS)
+    }
+#endif
+};
+
+/** \ingroup Geometry_Module
+  * single precision quaternion type */
+typedef Quaternion<float> Quaternionf;
+/** \ingroup Geometry_Module
+  * double precision quaternion type */
+typedef Quaternion<double> Quaterniond;
+
+/***************************************************************************
+* Specialization of Map<Quaternion<Scalar>>
+***************************************************************************/
+
+namespace internal {
+  template<typename _Scalar, int _Options>
+  struct traits<Map<Quaternion<_Scalar>, _Options> > : traits<Quaternion<_Scalar, (int(_Options)&Aligned)==Aligned ? AutoAlign : DontAlign> >
+  {
+    typedef Map<Matrix<_Scalar,4,1>, _Options> Coefficients;
+  };
+}
+
+namespace internal {
+  template<typename _Scalar, int _Options>
+  struct traits<Map<const Quaternion<_Scalar>, _Options> > : traits<Quaternion<_Scalar, (int(_Options)&Aligned)==Aligned ? AutoAlign : DontAlign> >
+  {
+    typedef Map<const Matrix<_Scalar,4,1>, _Options> Coefficients;
+    typedef traits<Quaternion<_Scalar, (int(_Options)&Aligned)==Aligned ? AutoAlign : DontAlign> > TraitsBase;
+    enum {
+      Flags = TraitsBase::Flags & ~LvalueBit
+    };
+  };
+}
+
+/** \ingroup Geometry_Module
+  * \brief Quaternion expression mapping a constant memory buffer
+  *
+  * \tparam _Scalar the type of the Quaternion coefficients
+  * \tparam _Options see class Map
+  *
+  * This is a specialization of class Map for Quaternion. This class allows to view
+  * a 4 scalar memory buffer as an Eigen's Quaternion object.
+  *
+  * \sa class Map, class Quaternion, class QuaternionBase
+  */
+template<typename _Scalar, int _Options>
+class Map<const Quaternion<_Scalar>, _Options >
+  : public QuaternionBase<Map<const Quaternion<_Scalar>, _Options> >
+{
+    typedef QuaternionBase<Map<const Quaternion<_Scalar>, _Options> > Base;
+
+  public:
+    typedef _Scalar Scalar;
+    typedef typename internal::traits<Map>::Coefficients Coefficients;
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Map)
+    using Base::operator*=;
+
+    /** Constructs a Mapped Quaternion object from the pointer \a coeffs
+      *
+      * The pointer \a coeffs must reference the four coefficients of Quaternion in the following order:
+      * \code *coeffs == {x, y, z, w} \endcode
+      *
+      * If the template parameter _Options is set to #Aligned, then the pointer coeffs must be aligned. */
+    EIGEN_STRONG_INLINE Map(const Scalar* coeffs) : m_coeffs(coeffs) {}
+
+    inline const Coefficients& coeffs() const { return m_coeffs;}
+
+  protected:
+    const Coefficients m_coeffs;
+};
+
+/** \ingroup Geometry_Module
+  * \brief Expression of a quaternion from a memory buffer
+  *
+  * \tparam _Scalar the type of the Quaternion coefficients
+  * \tparam _Options see class Map
+  *
+  * This is a specialization of class Map for Quaternion. This class allows to view
+  * a 4 scalar memory buffer as an Eigen's  Quaternion object.
+  *
+  * \sa class Map, class Quaternion, class QuaternionBase
+  */
+template<typename _Scalar, int _Options>
+class Map<Quaternion<_Scalar>, _Options >
+  : public QuaternionBase<Map<Quaternion<_Scalar>, _Options> >
+{
+    typedef QuaternionBase<Map<Quaternion<_Scalar>, _Options> > Base;
+
+  public:
+    typedef _Scalar Scalar;
+    typedef typename internal::traits<Map>::Coefficients Coefficients;
+    EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Map)
+    using Base::operator*=;
+
+    /** Constructs a Mapped Quaternion object from the pointer \a coeffs
+      *
+      * The pointer \a coeffs must reference the four coefficients of Quaternion in the following order:
+      * \code *coeffs == {x, y, z, w} \endcode
+      *
+      * If the template parameter _Options is set to #Aligned, then the pointer coeffs must be aligned. */
+    EIGEN_STRONG_INLINE Map(Scalar* coeffs) : m_coeffs(coeffs) {}
+
+    inline Coefficients& coeffs() { return m_coeffs; }
+    inline const Coefficients& coeffs() const { return m_coeffs; }
+
+  protected:
+    Coefficients m_coeffs;
+};
+
+/** \ingroup Geometry_Module
+  * Map an unaligned array of single precision scalars as a quaternion */
+typedef Map<Quaternion<float>, 0>         QuaternionMapf;
+/** \ingroup Geometry_Module
+  * Map an unaligned array of double precision scalars as a quaternion */
+typedef Map<Quaternion<double>, 0>        QuaternionMapd;
+/** \ingroup Geometry_Module
+  * Map a 16-byte aligned array of single precision scalars as a quaternion */
+typedef Map<Quaternion<float>, Aligned>   QuaternionMapAlignedf;
+/** \ingroup Geometry_Module
+  * Map a 16-byte aligned array of double precision scalars as a quaternion */
+typedef Map<Quaternion<double>, Aligned>  QuaternionMapAlignedd;
+
+/***************************************************************************
+* Implementation of QuaternionBase methods
+***************************************************************************/
+
+// Generic Quaternion * Quaternion product
+// This product can be specialized for a given architecture via the Arch template argument.
+namespace internal {
+template<int Arch, class Derived1, class Derived2, typename Scalar, int _Options> struct quat_product
+{
+  static EIGEN_STRONG_INLINE Quaternion<Scalar> run(const QuaternionBase<Derived1>& a, const QuaternionBase<Derived2>& b){
+    return Quaternion<Scalar>
+    (
+      a.w() * b.w() - a.x() * b.x() - a.y() * b.y() - a.z() * b.z(),
+      a.w() * b.x() + a.x() * b.w() + a.y() * b.z() - a.z() * b.y(),
+      a.w() * b.y() + a.y() * b.w() + a.z() * b.x() - a.x() * b.z(),
+      a.w() * b.z() + a.z() * b.w() + a.x() * b.y() - a.y() * b.x()
+    );
+  }
+};
+}
+
+/** \returns the concatenation of two rotations as a quaternion-quaternion product */
+template <class Derived>
+template <class OtherDerived>
+EIGEN_STRONG_INLINE Quaternion<typename internal::traits<Derived>::Scalar>
+QuaternionBase<Derived>::operator* (const QuaternionBase<OtherDerived>& other) const
+{
+  EIGEN_STATIC_ASSERT((internal::is_same<typename Derived::Scalar, typename OtherDerived::Scalar>::value),
+   YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+  return internal::quat_product<Architecture::Target, Derived, OtherDerived,
+                         typename internal::traits<Derived>::Scalar,
+                         internal::traits<Derived>::IsAligned && internal::traits<OtherDerived>::IsAligned>::run(*this, other);
+}
+
+/** \sa operator*(Quaternion) */
+template <class Derived>
+template <class OtherDerived>
+EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator*= (const QuaternionBase<OtherDerived>& other)
+{
+  derived() = derived() * other.derived();
+  return derived();
+}
+
+/** Rotation of a vector by a quaternion.
+  * \remarks If the quaternion is used to rotate several points (>1)
+  * then it is much more efficient to first convert it to a 3x3 Matrix.
+  * Comparison of the operation cost for n transformations:
+  *   - Quaternion2:    30n
+  *   - Via a Matrix3: 24 + 15n
+  */
+template <class Derived>
+EIGEN_STRONG_INLINE typename QuaternionBase<Derived>::Vector3
+QuaternionBase<Derived>::_transformVector(const Vector3& v) const
+{
+    // Note that this algorithm comes from the optimization by hand
+    // of the conversion to a Matrix followed by a Matrix/Vector product.
+    // It appears to be much faster than the common algorithm found
+    // in the literature (30 versus 39 flops). It also requires two
+    // Vector3 as temporaries.
+    Vector3 uv = this->vec().cross(v);
+    uv += uv;
+    return v + this->w() * uv + this->vec().cross(uv);
+}
+
+template<class Derived>
+EIGEN_STRONG_INLINE QuaternionBase<Derived>& QuaternionBase<Derived>::operator=(const QuaternionBase<Derived>& other)
+{
+  coeffs() = other.coeffs();
+  return derived();
+}
+
+template<class Derived>
+template<class OtherDerived>
+EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator=(const QuaternionBase<OtherDerived>& other)
+{
+  coeffs() = other.coeffs();
+  return derived();
+}
+
+/** Set \c *this from an angle-axis \a aa and returns a reference to \c *this
+  */
+template<class Derived>
+EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator=(const AngleAxisType& aa)
+{
+  using std::cos;
+  using std::sin;
+  Scalar ha = Scalar(0.5)*aa.angle(); // Scalar(0.5) to suppress precision loss warnings
+  this->w() = cos(ha);
+  this->vec() = sin(ha) * aa.axis();
+  return derived();
+}
+
+/** Set \c *this from the expression \a xpr:
+  *   - if \a xpr is a 4x1 vector, then \a xpr is assumed to be a quaternion
+  *   - if \a xpr is a 3x3 matrix, then \a xpr is assumed to be rotation matrix
+  *     and \a xpr is converted to a quaternion
+  */
+
+template<class Derived>
+template<class MatrixDerived>
+inline Derived& QuaternionBase<Derived>::operator=(const MatrixBase<MatrixDerived>& xpr)
+{
+  EIGEN_STATIC_ASSERT((internal::is_same<typename Derived::Scalar, typename MatrixDerived::Scalar>::value),
+   YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
+  internal::quaternionbase_assign_impl<MatrixDerived>::run(*this, xpr.derived());
+  return derived();
+}
+
+/** Convert the quaternion to a 3x3 rotation matrix. The quaternion is required to
+  * be normalized, otherwise the result is undefined.
+  */
+template<class Derived>
+inline typename QuaternionBase<Derived>::Matrix3
+QuaternionBase<Derived>::toRotationMatrix(void) const
+{
+  // NOTE if inlined, then gcc 4.2 and 4.4 get rid of the temporary (not gcc 4.3 !!)
+  // if not inlined then the cost of the return by value is huge ~ +35%,
+  // however, not inlining this function is an order of magnitude slower, so
+  // it has to be inlined, and so the return by value is not an issue
+  Matrix3 res;
+
+  const Scalar tx  = Scalar(2)*this->x();
+  const Scalar ty  = Scalar(2)*this->y();
+  const Scalar tz  = Scalar(2)*this->z();
+  const Scalar twx = tx*this->w();
+  const Scalar twy = ty*this->w();
+  const Scalar twz = tz*this->w();
+  const Scalar txx = tx*this->x();
+  const Scalar txy = ty*this->x();
+  const Scalar txz = tz*this->x();
+  const Scalar tyy = ty*this->y();
+  const Scalar tyz = tz*this->y();
+  const Scalar tzz = tz*this->z();
+
+  res.coeffRef(0,0) = Scalar(1)-(tyy+tzz);
+  res.coeffRef(0,1) = txy-twz;
+  res.coeffRef(0,2) = txz+twy;
+  res.coeffRef(1,0) = txy+twz;
+  res.coeffRef(1,1) = Scalar(1)-(txx+tzz);
+  res.coeffRef(1,2) = tyz-twx;
+  res.coeffRef(2,0) = txz-twy;
+  res.coeffRef(2,1) = tyz+twx;
+  res.coeffRef(2,2) = Scalar(1)-(txx+tyy);
+
+  return res;
+}
+
+/** Sets \c *this to be a quaternion representing a rotation between
+  * the two arbitrary vectors \a a and \a b. In other words, the built
+  * rotation represent a rotation sending the line of direction \a a
+  * to the line of direction \a b, both lines passing through the origin.
+  *
+  * \returns a reference to \c *this.
+  *
+  * Note that the two input vectors do \b not have to be normalized, and
+  * do not need to have the same norm.
+  */
+template<class Derived>
+template<typename Derived1, typename Derived2>
+inline Derived& QuaternionBase<Derived>::setFromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b)
+{
+  using std::max;
+  using std::sqrt;
+  Vector3 v0 = a.normalized();
+  Vector3 v1 = b.normalized();
+  Scalar c = v1.dot(v0);
+
+  // if dot == -1, vectors are nearly opposites
+  // => accurately compute the rotation axis by computing the
+  //    intersection of the two planes. This is done by solving:
+  //       x^T v0 = 0
+  //       x^T v1 = 0
+  //    under the constraint:
+  //       ||x|| = 1
+  //    which yields a singular value problem
+  if (c < Scalar(-1)+NumTraits<Scalar>::dummy_precision())
+  {
+    c = (max)(c,Scalar(-1));
+    Matrix<Scalar,2,3> m; m << v0.transpose(), v1.transpose();
+    JacobiSVD<Matrix<Scalar,2,3> > svd(m, ComputeFullV);
+    Vector3 axis = svd.matrixV().col(2);
+
+    Scalar w2 = (Scalar(1)+c)*Scalar(0.5);
+    this->w() = sqrt(w2);
+    this->vec() = axis * sqrt(Scalar(1) - w2);
+    return derived();
+  }
+  Vector3 axis = v0.cross(v1);
+  Scalar s = sqrt((Scalar(1)+c)*Scalar(2));
+  Scalar invs = Scalar(1)/s;
+  this->vec() = axis * invs;
+  this->w() = s * Scalar(0.5);
+
+  return derived();
+}
+
+
+/** Returns a quaternion representing a rotation between
+  * the two arbitrary vectors \a a and \a b. In other words, the built
+  * rotation represent a rotation sending the line of direction \a a
+  * to the line of direction \a b, both lines passing through the origin.
+  *
+  * \returns resulting quaternion
+  *
+  * Note that the two input vectors do \b not have to be normalized, and
+  * do not need to have the same norm.
+  */
+template<typename Scalar, int Options>
+template<typename Derived1, typename Derived2>
+Quaternion<Scalar,Options> Quaternion<Scalar,Options>::FromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b)
+{
+    Quaternion quat;
+    quat.setFromTwoVectors(a, b);
+    return quat;
+}
+
+
+/** \returns the multiplicative inverse of \c *this
+  * Note that in most cases, i.e., if you simply want the opposite rotation,
+  * and/or the quaternion is normalized, then it is enough to use the conjugate.
+  *
+  * \sa QuaternionBase::conjugate()
+  */
+template <class Derived>
+inline Quaternion<typename internal::traits<Derived>::Scalar> QuaternionBase<Derived>::inverse() const
+{
+  // FIXME should this function be called multiplicativeInverse and conjugate() be called inverse() or opposite()  ??
+  Scalar n2 = this->squaredNorm();
+  if (n2 > Scalar(0))
+    return Quaternion<Scalar>(conjugate().coeffs() / n2);
+  else
+  {
+    // return an invalid result to flag the error
+    return Quaternion<Scalar>(Coefficients::Zero());
+  }
+}
+
+/** \returns the conjugate of the \c *this which is equal to the multiplicative inverse
+  * if the quaternion is normalized.
+  * The conjugate of a quaternion represents the opposite rotation.
+  *
+  * \sa Quaternion2::inverse()
+  */
+template <class Derived>
+inline Quaternion<typename internal::traits<Derived>::Scalar>
+QuaternionBase<Derived>::conjugate() const
+{
+  return Quaternion<Scalar>(this->w(),-this->x(),-this->y(),-this->z());
+}
+
+/** \returns the angle (in radian) between two rotations
+  * \sa dot()
+  */
+template <class Derived>
+template <class OtherDerived>
+inline typename internal::traits<Derived>::Scalar
+QuaternionBase<Derived>::angularDistance(const QuaternionBase<OtherDerived>& other) const
+{
+  using std::atan2;
+  using std::abs;
+  Quaternion<Scalar> d = (*this) * other.conjugate();
+  return Scalar(2) * atan2( d.vec().norm(), abs(d.w()) );
+}
+
+ 
+    
+/** \returns the spherical linear interpolation between the two quaternions
+  * \c *this and \a other at the parameter \a t in [0;1].
+  * 
+  * This represents an interpolation for a constant motion between \c *this and \a other,
+  * see also http://en.wikipedia.org/wiki/Slerp.
+  */
+template <class Derived>
+template <class OtherDerived>
+Quaternion<typename internal::traits<Derived>::Scalar>
+QuaternionBase<Derived>::slerp(const Scalar& t, const QuaternionBase<OtherDerived>& other) const
+{
+  using std::acos;
+  using std::sin;
+  using std::abs;
+  static const Scalar one = Scalar(1) - NumTraits<Scalar>::epsilon();
+  Scalar d = this->dot(other);
+  Scalar absD = abs(d);
+
+  Scalar scale0;
+  Scalar scale1;
+
+  if(absD>=one)
+  {
+    scale0 = Scalar(1) - t;
+    scale1 = t;
+  }
+  else
+  {
+    // theta is the angle between the 2 quaternions
+    Scalar theta = acos(absD);
+    Scalar sinTheta = sin(theta);
+
+    scale0 = sin( ( Scalar(1) - t ) * theta) / sinTheta;
+    scale1 = sin( ( t * theta) ) / sinTheta;
+  }
+  if(d<Scalar(0)) scale1 = -scale1;
+
+  return Quaternion<Scalar>(scale0 * coeffs() + scale1 * other.coeffs());
+}
+
+namespace internal {
+
+// set from a rotation matrix
+template<typename Other>
+struct quaternionbase_assign_impl<Other,3,3>
+{
+  typedef typename Other::Scalar Scalar;
+  typedef DenseIndex Index;
+  template<class Derived> static inline void run(QuaternionBase<Derived>& q, const Other& mat)
+  {
+    using std::sqrt;
+    // This algorithm comes from  "Quaternion Calculus and Fast Animation",
+    // Ken Shoemake, 1987 SIGGRAPH course notes
+    Scalar t = mat.trace();
+    if (t > Scalar(0))
+    {
+      t = sqrt(t + Scalar(1.0));
+      q.w() = Scalar(0.5)*t;
+      t = Scalar(0.5)/t;
+      q.x() = (mat.coeff(2,1) - mat.coeff(1,2)) * t;
+      q.y() = (mat.coeff(0,2) - mat.coeff(2,0)) * t;
+      q.z() = (mat.coeff(1,0) - mat.coeff(0,1)) * t;
+    }
+    else
+    {
+      DenseIndex i = 0;
+      if (mat.coeff(1,1) > mat.coeff(0,0))
+        i = 1;
+      if (mat.coeff(2,2) > mat.coeff(i,i))
+        i = 2;
+      DenseIndex j = (i+1)%3;
+      DenseIndex k = (j+1)%3;
+
+      t = sqrt(mat.coeff(i,i)-mat.coeff(j,j)-mat.coeff(k,k) + Scalar(1.0));
+      q.coeffs().coeffRef(i) = Scalar(0.5) * t;
+      t = Scalar(0.5)/t;
+      q.w() = (mat.coeff(k,j)-mat.coeff(j,k))*t;
+      q.coeffs().coeffRef(j) = (mat.coeff(j,i)+mat.coeff(i,j))*t;
+      q.coeffs().coeffRef(k) = (mat.coeff(k,i)+mat.coeff(i,k))*t;
+    }
+  }
+};
+
+// set from a vector of coefficients assumed to be a quaternion
+template<typename Other>
+struct quaternionbase_assign_impl<Other,4,1>
+{
+  typedef typename Other::Scalar Scalar;
+  template<class Derived> static inline void run(QuaternionBase<Derived>& q, const Other& vec)
+  {
+    q.coeffs() = vec;
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_QUATERNION_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Rotation2D.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Rotation2D.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Rotation2D.h	(revision 2476)
@@ -0,0 +1,160 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ROTATION2D_H
+#define EIGEN_ROTATION2D_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Rotation2D
+  *
+  * \brief Represents a rotation/orientation in a 2 dimensional space.
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients
+  *
+  * This class is equivalent to a single scalar representing a counter clock wise rotation
+  * as a single angle in radian. It provides some additional features such as the automatic
+  * conversion from/to a 2x2 rotation matrix. Moreover this class aims to provide a similar
+  * interface to Quaternion in order to facilitate the writing of generic algorithms
+  * dealing with rotations.
+  *
+  * \sa class Quaternion, class Transform
+  */
+
+namespace internal {
+
+template<typename _Scalar> struct traits<Rotation2D<_Scalar> >
+{
+  typedef _Scalar Scalar;
+};
+} // end namespace internal
+
+template<typename _Scalar>
+class Rotation2D : public RotationBase<Rotation2D<_Scalar>,2>
+{
+  typedef RotationBase<Rotation2D<_Scalar>,2> Base;
+
+public:
+
+  using Base::operator*;
+
+  enum { Dim = 2 };
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+  typedef Matrix<Scalar,2,1> Vector2;
+  typedef Matrix<Scalar,2,2> Matrix2;
+
+protected:
+
+  Scalar m_angle;
+
+public:
+
+  /** Construct a 2D counter clock wise rotation from the angle \a a in radian. */
+  inline Rotation2D(const Scalar& a) : m_angle(a) {}
+  
+  /** Default constructor wihtout initialization. The represented rotation is undefined. */
+  Rotation2D() {}
+
+  /** \returns the rotation angle */
+  inline Scalar angle() const { return m_angle; }
+
+  /** \returns a read-write reference to the rotation angle */
+  inline Scalar& angle() { return m_angle; }
+
+  /** \returns the inverse rotation */
+  inline Rotation2D inverse() const { return -m_angle; }
+
+  /** Concatenates two rotations */
+  inline Rotation2D operator*(const Rotation2D& other) const
+  { return m_angle + other.m_angle; }
+
+  /** Concatenates two rotations */
+  inline Rotation2D& operator*=(const Rotation2D& other)
+  { m_angle += other.m_angle; return *this; }
+
+  /** Applies the rotation to a 2D vector */
+  Vector2 operator* (const Vector2& vec) const
+  { return toRotationMatrix() * vec; }
+  
+  template<typename Derived>
+  Rotation2D& fromRotationMatrix(const MatrixBase<Derived>& m);
+  Matrix2 toRotationMatrix() const;
+
+  /** \returns the spherical interpolation between \c *this and \a other using
+    * parameter \a t. It is in fact equivalent to a linear interpolation.
+    */
+  inline Rotation2D slerp(const Scalar& t, const Rotation2D& other) const
+  { return m_angle * (1-t) + other.angle() * t; }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Rotation2D,Rotation2D<NewScalarType> >::type cast() const
+  { return typename internal::cast_return_type<Rotation2D,Rotation2D<NewScalarType> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit Rotation2D(const Rotation2D<OtherScalarType>& other)
+  {
+    m_angle = Scalar(other.angle());
+  }
+
+  static inline Rotation2D Identity() { return Rotation2D(0); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const Rotation2D& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return internal::isApprox(m_angle,other.m_angle, prec); }
+};
+
+/** \ingroup Geometry_Module
+  * single precision 2D rotation type */
+typedef Rotation2D<float> Rotation2Df;
+/** \ingroup Geometry_Module
+  * double precision 2D rotation type */
+typedef Rotation2D<double> Rotation2Dd;
+
+/** Set \c *this from a 2x2 rotation matrix \a mat.
+  * In other words, this function extract the rotation angle
+  * from the rotation matrix.
+  */
+template<typename Scalar>
+template<typename Derived>
+Rotation2D<Scalar>& Rotation2D<Scalar>::fromRotationMatrix(const MatrixBase<Derived>& mat)
+{
+  using std::atan2;
+  EIGEN_STATIC_ASSERT(Derived::RowsAtCompileTime==2 && Derived::ColsAtCompileTime==2,YOU_MADE_A_PROGRAMMING_MISTAKE)
+  m_angle = atan2(mat.coeff(1,0), mat.coeff(0,0));
+  return *this;
+}
+
+/** Constructs and \returns an equivalent 2x2 rotation matrix.
+  */
+template<typename Scalar>
+typename Rotation2D<Scalar>::Matrix2
+Rotation2D<Scalar>::toRotationMatrix(void) const
+{
+  using std::sin;
+  using std::cos;
+  Scalar sinA = sin(m_angle);
+  Scalar cosA = cos(m_angle);
+  return (Matrix2() << cosA, -sinA, sinA, cosA).finished();
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ROTATION2D_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/EulerAngles.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/EulerAngles.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/EulerAngles.h	(revision 2476)
@@ -0,0 +1,104 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_EULERANGLES_H
+#define EIGEN_EULERANGLES_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  *
+  * \returns the Euler-angles of the rotation matrix \c *this using the convention defined by the triplet (\a a0,\a a1,\a a2)
+  *
+  * Each of the three parameters \a a0,\a a1,\a a2 represents the respective rotation axis as an integer in {0,1,2}.
+  * For instance, in:
+  * \code Vector3f ea = mat.eulerAngles(2, 0, 2); \endcode
+  * "2" represents the z axis and "0" the x axis, etc. The returned angles are such that
+  * we have the following equality:
+  * \code
+  * mat == AngleAxisf(ea[0], Vector3f::UnitZ())
+  *      * AngleAxisf(ea[1], Vector3f::UnitX())
+  *      * AngleAxisf(ea[2], Vector3f::UnitZ()); \endcode
+  * This corresponds to the right-multiply conventions (with right hand side frames).
+  * 
+  * The returned angles are in the ranges [0:pi]x[-pi:pi]x[-pi:pi].
+  * 
+  * \sa class AngleAxis
+  */
+template<typename Derived>
+inline Matrix<typename MatrixBase<Derived>::Scalar,3,1>
+MatrixBase<Derived>::eulerAngles(Index a0, Index a1, Index a2) const
+{
+  using std::atan2;
+  using std::sin;
+  using std::cos;
+  /* Implemented from Graphics Gems IV */
+  EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Derived,3,3)
+
+  Matrix<Scalar,3,1> res;
+  typedef Matrix<typename Derived::Scalar,2,1> Vector2;
+
+  const Index odd = ((a0+1)%3 == a1) ? 0 : 1;
+  const Index i = a0;
+  const Index j = (a0 + 1 + odd)%3;
+  const Index k = (a0 + 2 - odd)%3;
+  
+  if (a0==a2)
+  {
+    res[0] = atan2(coeff(j,i), coeff(k,i));
+    if((odd && res[0]<Scalar(0)) || ((!odd) && res[0]>Scalar(0)))
+    {
+      res[0] = (res[0] > Scalar(0)) ? res[0] - Scalar(M_PI) : res[0] + Scalar(M_PI);
+      Scalar s2 = Vector2(coeff(j,i), coeff(k,i)).norm();
+      res[1] = -atan2(s2, coeff(i,i));
+    }
+    else
+    {
+      Scalar s2 = Vector2(coeff(j,i), coeff(k,i)).norm();
+      res[1] = atan2(s2, coeff(i,i));
+    }
+    
+    // With a=(0,1,0), we have i=0; j=1; k=2, and after computing the first two angles,
+    // we can compute their respective rotation, and apply its inverse to M. Since the result must
+    // be a rotation around x, we have:
+    //
+    //  c2  s1.s2 c1.s2                   1  0   0 
+    //  0   c1    -s1       *    M    =   0  c3  s3
+    //  -s2 s1.c2 c1.c2                   0 -s3  c3
+    //
+    //  Thus:  m11.c1 - m21.s1 = c3  &   m12.c1 - m22.s1 = s3
+    
+    Scalar s1 = sin(res[0]);
+    Scalar c1 = cos(res[0]);
+    res[2] = atan2(c1*coeff(j,k)-s1*coeff(k,k), c1*coeff(j,j) - s1 * coeff(k,j));
+  } 
+  else
+  {
+    res[0] = atan2(coeff(j,k), coeff(k,k));
+    Scalar c2 = Vector2(coeff(i,i), coeff(i,j)).norm();
+    if((odd && res[0]<Scalar(0)) || ((!odd) && res[0]>Scalar(0))) {
+      res[0] = (res[0] > Scalar(0)) ? res[0] - Scalar(M_PI) : res[0] + Scalar(M_PI);
+      res[1] = atan2(-coeff(i,k), -c2);
+    }
+    else
+      res[1] = atan2(-coeff(i,k), c2);
+    Scalar s1 = sin(res[0]);
+    Scalar c1 = cos(res[0]);
+    res[2] = atan2(s1*coeff(k,i)-c1*coeff(j,i), c1*coeff(j,j) - s1 * coeff(k,j));
+  }
+  if (!odd)
+    res = -res;
+  
+  return res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_EULERANGLES_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Hyperplane.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Hyperplane.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Hyperplane.h	(revision 2476)
@@ -0,0 +1,280 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HYPERPLANE_H
+#define EIGEN_HYPERPLANE_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Hyperplane
+  *
+  * \brief A hyperplane
+  *
+  * A hyperplane is an affine subspace of dimension n-1 in a space of dimension n.
+  * For example, a hyperplane in a plane is a line; a hyperplane in 3-space is a plane.
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients
+  * \param _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+  *             Notice that the dimension of the hyperplane is _AmbientDim-1.
+  *
+  * This class represents an hyperplane as the zero set of the implicit equation
+  * \f$ n \cdot x + d = 0 \f$ where \f$ n \f$ is a unit normal vector of the plane (linear part)
+  * and \f$ d \f$ is the distance (offset) to the origin.
+  */
+template <typename _Scalar, int _AmbientDim, int _Options>
+class Hyperplane
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim==Dynamic ? Dynamic : _AmbientDim+1)
+  enum {
+    AmbientDimAtCompileTime = _AmbientDim,
+    Options = _Options
+  };
+  typedef _Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  typedef DenseIndex Index;
+  typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
+  typedef Matrix<Scalar,Index(AmbientDimAtCompileTime)==Dynamic
+                        ? Dynamic
+                        : Index(AmbientDimAtCompileTime)+1,1,Options> Coefficients;
+  typedef Block<Coefficients,AmbientDimAtCompileTime,1> NormalReturnType;
+  typedef const Block<const Coefficients,AmbientDimAtCompileTime,1> ConstNormalReturnType;
+
+  /** Default constructor without initialization */
+  inline Hyperplane() {}
+  
+  template<int OtherOptions>
+  Hyperplane(const Hyperplane<Scalar,AmbientDimAtCompileTime,OtherOptions>& other)
+   : m_coeffs(other.coeffs())
+  {}
+
+  /** Constructs a dynamic-size hyperplane with \a _dim the dimension
+    * of the ambient space */
+  inline explicit Hyperplane(Index _dim) : m_coeffs(_dim+1) {}
+
+  /** Construct a plane from its normal \a n and a point \a e onto the plane.
+    * \warning the vector normal is assumed to be normalized.
+    */
+  inline Hyperplane(const VectorType& n, const VectorType& e)
+    : m_coeffs(n.size()+1)
+  {
+    normal() = n;
+    offset() = -n.dot(e);
+  }
+
+  /** Constructs a plane from its normal \a n and distance to the origin \a d
+    * such that the algebraic equation of the plane is \f$ n \cdot x + d = 0 \f$.
+    * \warning the vector normal is assumed to be normalized.
+    */
+  inline Hyperplane(const VectorType& n, const Scalar& d)
+    : m_coeffs(n.size()+1)
+  {
+    normal() = n;
+    offset() = d;
+  }
+
+  /** Constructs a hyperplane passing through the two points. If the dimension of the ambient space
+    * is greater than 2, then there isn't uniqueness, so an arbitrary choice is made.
+    */
+  static inline Hyperplane Through(const VectorType& p0, const VectorType& p1)
+  {
+    Hyperplane result(p0.size());
+    result.normal() = (p1 - p0).unitOrthogonal();
+    result.offset() = -p0.dot(result.normal());
+    return result;
+  }
+
+  /** Constructs a hyperplane passing through the three points. The dimension of the ambient space
+    * is required to be exactly 3.
+    */
+  static inline Hyperplane Through(const VectorType& p0, const VectorType& p1, const VectorType& p2)
+  {
+    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 3)
+    Hyperplane result(p0.size());
+    VectorType v0(p2 - p0), v1(p1 - p0);
+    result.normal() = v0.cross(v1);
+    RealScalar norm = result.normal().norm();
+    if(norm <= v0.norm() * v1.norm() * NumTraits<RealScalar>::epsilon())
+    {
+      Matrix<Scalar,2,3> m; m << v0.transpose(), v1.transpose();
+      JacobiSVD<Matrix<Scalar,2,3> > svd(m, ComputeFullV);
+      result.normal() = svd.matrixV().col(2);
+    }
+    else
+      result.normal() /= norm;
+    result.offset() = -p0.dot(result.normal());
+    return result;
+  }
+
+  /** Constructs a hyperplane passing through the parametrized line \a parametrized.
+    * If the dimension of the ambient space is greater than 2, then there isn't uniqueness,
+    * so an arbitrary choice is made.
+    */
+  // FIXME to be consitent with the rest this could be implemented as a static Through function ??
+  explicit Hyperplane(const ParametrizedLine<Scalar, AmbientDimAtCompileTime>& parametrized)
+  {
+    normal() = parametrized.direction().unitOrthogonal();
+    offset() = -parametrized.origin().dot(normal());
+  }
+
+  ~Hyperplane() {}
+
+  /** \returns the dimension in which the plane holds */
+  inline Index dim() const { return AmbientDimAtCompileTime==Dynamic ? m_coeffs.size()-1 : Index(AmbientDimAtCompileTime); }
+
+  /** normalizes \c *this */
+  void normalize(void)
+  {
+    m_coeffs /= normal().norm();
+  }
+
+  /** \returns the signed distance between the plane \c *this and a point \a p.
+    * \sa absDistance()
+    */
+  inline Scalar signedDistance(const VectorType& p) const { return normal().dot(p) + offset(); }
+
+  /** \returns the absolute distance between the plane \c *this and a point \a p.
+    * \sa signedDistance()
+    */
+  inline Scalar absDistance(const VectorType& p) const { using std::abs; return abs(signedDistance(p)); }
+
+  /** \returns the projection of a point \a p onto the plane \c *this.
+    */
+  inline VectorType projection(const VectorType& p) const { return p - signedDistance(p) * normal(); }
+
+  /** \returns a constant reference to the unit normal vector of the plane, which corresponds
+    * to the linear part of the implicit equation.
+    */
+  inline ConstNormalReturnType normal() const { return ConstNormalReturnType(m_coeffs,0,0,dim(),1); }
+
+  /** \returns a non-constant reference to the unit normal vector of the plane, which corresponds
+    * to the linear part of the implicit equation.
+    */
+  inline NormalReturnType normal() { return NormalReturnType(m_coeffs,0,0,dim(),1); }
+
+  /** \returns the distance to the origin, which is also the "constant term" of the implicit equation
+    * \warning the vector normal is assumed to be normalized.
+    */
+  inline const Scalar& offset() const { return m_coeffs.coeff(dim()); }
+
+  /** \returns a non-constant reference to the distance to the origin, which is also the constant part
+    * of the implicit equation */
+  inline Scalar& offset() { return m_coeffs(dim()); }
+
+  /** \returns a constant reference to the coefficients c_i of the plane equation:
+    * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
+    */
+  inline const Coefficients& coeffs() const { return m_coeffs; }
+
+  /** \returns a non-constant reference to the coefficients c_i of the plane equation:
+    * \f$ c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \f$
+    */
+  inline Coefficients& coeffs() { return m_coeffs; }
+
+  /** \returns the intersection of *this with \a other.
+    *
+    * \warning The ambient space must be a plane, i.e. have dimension 2, so that \c *this and \a other are lines.
+    *
+    * \note If \a other is approximately parallel to *this, this method will return any point on *this.
+    */
+  VectorType intersection(const Hyperplane& other) const
+  {
+    using std::abs;
+    EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(VectorType, 2)
+    Scalar det = coeffs().coeff(0) * other.coeffs().coeff(1) - coeffs().coeff(1) * other.coeffs().coeff(0);
+    // since the line equations ax+by=c are normalized with a^2+b^2=1, the following tests
+    // whether the two lines are approximately parallel.
+    if(internal::isMuchSmallerThan(det, Scalar(1)))
+    {   // special case where the two lines are approximately parallel. Pick any point on the first line.
+        if(abs(coeffs().coeff(1))>abs(coeffs().coeff(0)))
+            return VectorType(coeffs().coeff(1), -coeffs().coeff(2)/coeffs().coeff(1)-coeffs().coeff(0));
+        else
+            return VectorType(-coeffs().coeff(2)/coeffs().coeff(0)-coeffs().coeff(1), coeffs().coeff(0));
+    }
+    else
+    {   // general case
+        Scalar invdet = Scalar(1) / det;
+        return VectorType(invdet*(coeffs().coeff(1)*other.coeffs().coeff(2)-other.coeffs().coeff(1)*coeffs().coeff(2)),
+                          invdet*(other.coeffs().coeff(0)*coeffs().coeff(2)-coeffs().coeff(0)*other.coeffs().coeff(2)));
+    }
+  }
+
+  /** Applies the transformation matrix \a mat to \c *this and returns a reference to \c *this.
+    *
+    * \param mat the Dim x Dim transformation matrix
+    * \param traits specifies whether the matrix \a mat represents an #Isometry
+    *               or a more generic #Affine transformation. The default is #Affine.
+    */
+  template<typename XprType>
+  inline Hyperplane& transform(const MatrixBase<XprType>& mat, TransformTraits traits = Affine)
+  {
+    if (traits==Affine)
+      normal() = mat.inverse().transpose() * normal();
+    else if (traits==Isometry)
+      normal() = mat * normal();
+    else
+    {
+      eigen_assert(0 && "invalid traits value in Hyperplane::transform()");
+    }
+    return *this;
+  }
+
+  /** Applies the transformation \a t to \c *this and returns a reference to \c *this.
+    *
+    * \param t the transformation of dimension Dim
+    * \param traits specifies whether the transformation \a t represents an #Isometry
+    *               or a more generic #Affine transformation. The default is #Affine.
+    *               Other kind of transformations are not supported.
+    */
+  template<int TrOptions>
+  inline Hyperplane& transform(const Transform<Scalar,AmbientDimAtCompileTime,Affine,TrOptions>& t,
+                                TransformTraits traits = Affine)
+  {
+    transform(t.linear(), traits);
+    offset() -= normal().dot(t.translation());
+    return *this;
+  }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Hyperplane,
+           Hyperplane<NewScalarType,AmbientDimAtCompileTime,Options> >::type cast() const
+  {
+    return typename internal::cast_return_type<Hyperplane,
+                    Hyperplane<NewScalarType,AmbientDimAtCompileTime,Options> >::type(*this);
+  }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType,int OtherOptions>
+  inline explicit Hyperplane(const Hyperplane<OtherScalarType,AmbientDimAtCompileTime,OtherOptions>& other)
+  { m_coeffs = other.coeffs().template cast<Scalar>(); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  template<int OtherOptions>
+  bool isApprox(const Hyperplane<Scalar,AmbientDimAtCompileTime,OtherOptions>& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return m_coeffs.isApprox(other.m_coeffs, prec); }
+
+protected:
+
+  Coefficients m_coeffs;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_HYPERPLANE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/arch/Geometry_SSE.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/arch/Geometry_SSE.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/arch/Geometry_SSE.h	(revision 2476)
@@ -0,0 +1,115 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Rohit Garg <rpg.314@gmail.com>
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GEOMETRY_SSE_H
+#define EIGEN_GEOMETRY_SSE_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<class Derived, class OtherDerived>
+struct quat_product<Architecture::SSE, Derived, OtherDerived, float, Aligned>
+{
+  static inline Quaternion<float> run(const QuaternionBase<Derived>& _a, const QuaternionBase<OtherDerived>& _b)
+  {
+    const __m128 mask = _mm_castsi128_ps(_mm_setr_epi32(0,0,0,0x80000000));
+    Quaternion<float> res;
+    __m128 a = _a.coeffs().template packet<Aligned>(0);
+    __m128 b = _b.coeffs().template packet<Aligned>(0);
+    __m128 flip1 = _mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a,1,2,0,2),
+                                         vec4f_swizzle1(b,2,0,1,2)),mask);
+    __m128 flip2 = _mm_xor_ps(_mm_mul_ps(vec4f_swizzle1(a,3,3,3,1),
+                                         vec4f_swizzle1(b,0,1,2,1)),mask);
+    pstore(&res.x(),
+              _mm_add_ps(_mm_sub_ps(_mm_mul_ps(a,vec4f_swizzle1(b,3,3,3,3)),
+                                    _mm_mul_ps(vec4f_swizzle1(a,2,0,1,0),
+                                               vec4f_swizzle1(b,1,2,0,0))),
+                         _mm_add_ps(flip1,flip2)));
+    return res;
+  }
+};
+
+template<typename VectorLhs,typename VectorRhs>
+struct cross3_impl<Architecture::SSE,VectorLhs,VectorRhs,float,true>
+{
+  static inline typename plain_matrix_type<VectorLhs>::type
+  run(const VectorLhs& lhs, const VectorRhs& rhs)
+  {
+    __m128 a = lhs.template packet<VectorLhs::Flags&AlignedBit ? Aligned : Unaligned>(0);
+    __m128 b = rhs.template packet<VectorRhs::Flags&AlignedBit ? Aligned : Unaligned>(0);
+    __m128 mul1=_mm_mul_ps(vec4f_swizzle1(a,1,2,0,3),vec4f_swizzle1(b,2,0,1,3));
+    __m128 mul2=_mm_mul_ps(vec4f_swizzle1(a,2,0,1,3),vec4f_swizzle1(b,1,2,0,3));
+    typename plain_matrix_type<VectorLhs>::type res;
+    pstore(&res.x(),_mm_sub_ps(mul1,mul2));
+    return res;
+  }
+};
+
+
+
+
+template<class Derived, class OtherDerived>
+struct quat_product<Architecture::SSE, Derived, OtherDerived, double, Aligned>
+{
+  static inline Quaternion<double> run(const QuaternionBase<Derived>& _a, const QuaternionBase<OtherDerived>& _b)
+  {
+  const Packet2d mask = _mm_castsi128_pd(_mm_set_epi32(0x0,0x0,0x80000000,0x0));
+
+  Quaternion<double> res;
+
+  const double* a = _a.coeffs().data();
+  Packet2d b_xy = _b.coeffs().template packet<Aligned>(0);
+  Packet2d b_zw = _b.coeffs().template packet<Aligned>(2);
+  Packet2d a_xx = pset1<Packet2d>(a[0]);
+  Packet2d a_yy = pset1<Packet2d>(a[1]);
+  Packet2d a_zz = pset1<Packet2d>(a[2]);
+  Packet2d a_ww = pset1<Packet2d>(a[3]);
+
+  // two temporaries:
+  Packet2d t1, t2;
+
+  /*
+   * t1 = ww*xy + yy*zw
+   * t2 = zz*xy - xx*zw
+   * res.xy = t1 +/- swap(t2)
+   */
+  t1 = padd(pmul(a_ww, b_xy), pmul(a_yy, b_zw));
+  t2 = psub(pmul(a_zz, b_xy), pmul(a_xx, b_zw));
+#ifdef EIGEN_VECTORIZE_SSE3
+  EIGEN_UNUSED_VARIABLE(mask)
+  pstore(&res.x(), _mm_addsub_pd(t1, preverse(t2)));
+#else
+  pstore(&res.x(), padd(t1, pxor(mask,preverse(t2))));
+#endif
+  
+  /*
+   * t1 = ww*zw - yy*xy
+   * t2 = zz*zw + xx*xy
+   * res.zw = t1 -/+ swap(t2) = swap( swap(t1) +/- t2)
+   */
+  t1 = psub(pmul(a_ww, b_zw), pmul(a_yy, b_xy));
+  t2 = padd(pmul(a_zz, b_zw), pmul(a_xx, b_xy));
+#ifdef EIGEN_VECTORIZE_SSE3
+  EIGEN_UNUSED_VARIABLE(mask)
+  pstore(&res.z(), preverse(_mm_addsub_pd(preverse(t1), t2)));
+#else
+  pstore(&res.z(), psub(t1, pxor(mask,preverse(t2))));
+#endif
+
+  return res;
+}
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GEOMETRY_SSE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Homogeneous.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Homogeneous.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Homogeneous.h	(revision 2476)
@@ -0,0 +1,307 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HOMOGENEOUS_H
+#define EIGEN_HOMOGENEOUS_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Homogeneous
+  *
+  * \brief Expression of one (or a set of) homogeneous vector(s)
+  *
+  * \param MatrixType the type of the object in which we are making homogeneous
+  *
+  * This class represents an expression of one (or a set of) homogeneous vector(s).
+  * It is the return type of MatrixBase::homogeneous() and most of the time
+  * this is the only way it is used.
+  *
+  * \sa MatrixBase::homogeneous()
+  */
+
+namespace internal {
+
+template<typename MatrixType,int Direction>
+struct traits<Homogeneous<MatrixType,Direction> >
+ : traits<MatrixType>
+{
+  typedef typename traits<MatrixType>::StorageKind StorageKind;
+  typedef typename nested<MatrixType>::type MatrixTypeNested;
+  typedef typename remove_reference<MatrixTypeNested>::type _MatrixTypeNested;
+  enum {
+    RowsPlusOne = (MatrixType::RowsAtCompileTime != Dynamic) ?
+                  int(MatrixType::RowsAtCompileTime) + 1 : Dynamic,
+    ColsPlusOne = (MatrixType::ColsAtCompileTime != Dynamic) ?
+                  int(MatrixType::ColsAtCompileTime) + 1 : Dynamic,
+    RowsAtCompileTime = Direction==Vertical  ?  RowsPlusOne : MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = Direction==Horizontal ? ColsPlusOne : MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = RowsAtCompileTime,
+    MaxColsAtCompileTime = ColsAtCompileTime,
+    TmpFlags = _MatrixTypeNested::Flags & HereditaryBits,
+    Flags = ColsAtCompileTime==1 ? (TmpFlags & ~RowMajorBit)
+          : RowsAtCompileTime==1 ? (TmpFlags | RowMajorBit)
+          : TmpFlags,
+    CoeffReadCost = _MatrixTypeNested::CoeffReadCost
+  };
+};
+
+template<typename MatrixType,typename Lhs> struct homogeneous_left_product_impl;
+template<typename MatrixType,typename Rhs> struct homogeneous_right_product_impl;
+
+} // end namespace internal
+
+template<typename MatrixType,int _Direction> class Homogeneous
+  : internal::no_assignment_operator, public MatrixBase<Homogeneous<MatrixType,_Direction> >
+{
+  public:
+
+    enum { Direction = _Direction };
+
+    typedef MatrixBase<Homogeneous> Base;
+    EIGEN_DENSE_PUBLIC_INTERFACE(Homogeneous)
+
+    inline Homogeneous(const MatrixType& matrix)
+      : m_matrix(matrix)
+    {}
+
+    inline Index rows() const { return m_matrix.rows() + (int(Direction)==Vertical   ? 1 : 0); }
+    inline Index cols() const { return m_matrix.cols() + (int(Direction)==Horizontal ? 1 : 0); }
+
+    inline Scalar coeff(Index row, Index col=0) const
+    {
+      if(  (int(Direction)==Vertical   && row==m_matrix.rows())
+        || (int(Direction)==Horizontal && col==m_matrix.cols()))
+        return Scalar(1);
+      return m_matrix.coeff(row, col);
+    }
+
+    template<typename Rhs>
+    inline const internal::homogeneous_right_product_impl<Homogeneous,Rhs>
+    operator* (const MatrixBase<Rhs>& rhs) const
+    {
+      eigen_assert(int(Direction)==Horizontal);
+      return internal::homogeneous_right_product_impl<Homogeneous,Rhs>(m_matrix,rhs.derived());
+    }
+
+    template<typename Lhs> friend
+    inline const internal::homogeneous_left_product_impl<Homogeneous,Lhs>
+    operator* (const MatrixBase<Lhs>& lhs, const Homogeneous& rhs)
+    {
+      eigen_assert(int(Direction)==Vertical);
+      return internal::homogeneous_left_product_impl<Homogeneous,Lhs>(lhs.derived(),rhs.m_matrix);
+    }
+
+    template<typename Scalar, int Dim, int Mode, int Options> friend
+    inline const internal::homogeneous_left_product_impl<Homogeneous,Transform<Scalar,Dim,Mode,Options> >
+    operator* (const Transform<Scalar,Dim,Mode,Options>& lhs, const Homogeneous& rhs)
+    {
+      eigen_assert(int(Direction)==Vertical);
+      return internal::homogeneous_left_product_impl<Homogeneous,Transform<Scalar,Dim,Mode,Options> >(lhs,rhs.m_matrix);
+    }
+
+  protected:
+    typename MatrixType::Nested m_matrix;
+};
+
+/** \geometry_module
+  *
+  * \return an expression of the equivalent homogeneous vector
+  *
+  * \only_for_vectors
+  *
+  * Example: \include MatrixBase_homogeneous.cpp
+  * Output: \verbinclude MatrixBase_homogeneous.out
+  *
+  * \sa class Homogeneous
+  */
+template<typename Derived>
+inline typename MatrixBase<Derived>::HomogeneousReturnType
+MatrixBase<Derived>::homogeneous() const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
+  return derived();
+}
+
+/** \geometry_module
+  *
+  * \returns a matrix expression of homogeneous column (or row) vectors
+  *
+  * Example: \include VectorwiseOp_homogeneous.cpp
+  * Output: \verbinclude VectorwiseOp_homogeneous.out
+  *
+  * \sa MatrixBase::homogeneous() */
+template<typename ExpressionType, int Direction>
+inline Homogeneous<ExpressionType,Direction>
+VectorwiseOp<ExpressionType,Direction>::homogeneous() const
+{
+  return _expression();
+}
+
+/** \geometry_module
+  *
+  * \returns an expression of the homogeneous normalized vector of \c *this
+  *
+  * Example: \include MatrixBase_hnormalized.cpp
+  * Output: \verbinclude MatrixBase_hnormalized.out
+  *
+  * \sa VectorwiseOp::hnormalized() */
+template<typename Derived>
+inline const typename MatrixBase<Derived>::HNormalizedReturnType
+MatrixBase<Derived>::hnormalized() const
+{
+  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived);
+  return ConstStartMinusOne(derived(),0,0,
+    ColsAtCompileTime==1?size()-1:1,
+    ColsAtCompileTime==1?1:size()-1) / coeff(size()-1);
+}
+
+/** \geometry_module
+  *
+  * \returns an expression of the homogeneous normalized vector of \c *this
+  *
+  * Example: \include DirectionWise_hnormalized.cpp
+  * Output: \verbinclude DirectionWise_hnormalized.out
+  *
+  * \sa MatrixBase::hnormalized() */
+template<typename ExpressionType, int Direction>
+inline const typename VectorwiseOp<ExpressionType,Direction>::HNormalizedReturnType
+VectorwiseOp<ExpressionType,Direction>::hnormalized() const
+{
+  return HNormalized_Block(_expression(),0,0,
+      Direction==Vertical   ? _expression().rows()-1 : _expression().rows(),
+      Direction==Horizontal ? _expression().cols()-1 : _expression().cols()).cwiseQuotient(
+      Replicate<HNormalized_Factors,
+                Direction==Vertical   ? HNormalized_SizeMinusOne : 1,
+                Direction==Horizontal ? HNormalized_SizeMinusOne : 1>
+        (HNormalized_Factors(_expression(),
+          Direction==Vertical    ? _expression().rows()-1:0,
+          Direction==Horizontal  ? _expression().cols()-1:0,
+          Direction==Vertical    ? 1 : _expression().rows(),
+          Direction==Horizontal  ? 1 : _expression().cols()),
+         Direction==Vertical   ? _expression().rows()-1 : 1,
+         Direction==Horizontal ? _expression().cols()-1 : 1));
+}
+
+namespace internal {
+
+template<typename MatrixOrTransformType>
+struct take_matrix_for_product
+{
+  typedef MatrixOrTransformType type;
+  static const type& run(const type &x) { return x; }
+};
+
+template<typename Scalar, int Dim, int Mode,int Options>
+struct take_matrix_for_product<Transform<Scalar, Dim, Mode, Options> >
+{
+  typedef Transform<Scalar, Dim, Mode, Options> TransformType;
+  typedef typename internal::add_const<typename TransformType::ConstAffinePart>::type type;
+  static type run (const TransformType& x) { return x.affine(); }
+};
+
+template<typename Scalar, int Dim, int Options>
+struct take_matrix_for_product<Transform<Scalar, Dim, Projective, Options> >
+{
+  typedef Transform<Scalar, Dim, Projective, Options> TransformType;
+  typedef typename TransformType::MatrixType type;
+  static const type& run (const TransformType& x) { return x.matrix(); }
+};
+
+template<typename MatrixType,typename Lhs>
+struct traits<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> >
+{
+  typedef typename take_matrix_for_product<Lhs>::type LhsMatrixType;
+  typedef typename remove_all<MatrixType>::type MatrixTypeCleaned;
+  typedef typename remove_all<LhsMatrixType>::type LhsMatrixTypeCleaned;
+  typedef typename make_proper_matrix_type<
+                 typename traits<MatrixTypeCleaned>::Scalar,
+                 LhsMatrixTypeCleaned::RowsAtCompileTime,
+                 MatrixTypeCleaned::ColsAtCompileTime,
+                 MatrixTypeCleaned::PlainObject::Options,
+                 LhsMatrixTypeCleaned::MaxRowsAtCompileTime,
+                 MatrixTypeCleaned::MaxColsAtCompileTime>::type ReturnType;
+};
+
+template<typename MatrixType,typename Lhs>
+struct homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs>
+  : public ReturnByValue<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> >
+{
+  typedef typename traits<homogeneous_left_product_impl>::LhsMatrixType LhsMatrixType;
+  typedef typename remove_all<LhsMatrixType>::type LhsMatrixTypeCleaned;
+  typedef typename remove_all<typename LhsMatrixTypeCleaned::Nested>::type LhsMatrixTypeNested;
+  typedef typename MatrixType::Index Index;
+  homogeneous_left_product_impl(const Lhs& lhs, const MatrixType& rhs)
+    : m_lhs(take_matrix_for_product<Lhs>::run(lhs)),
+      m_rhs(rhs)
+  {}
+
+  inline Index rows() const { return m_lhs.rows(); }
+  inline Index cols() const { return m_rhs.cols(); }
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    // FIXME investigate how to allow lazy evaluation of this product when possible
+    dst = Block<const LhsMatrixTypeNested,
+              LhsMatrixTypeNested::RowsAtCompileTime,
+              LhsMatrixTypeNested::ColsAtCompileTime==Dynamic?Dynamic:LhsMatrixTypeNested::ColsAtCompileTime-1>
+            (m_lhs,0,0,m_lhs.rows(),m_lhs.cols()-1) * m_rhs;
+    dst += m_lhs.col(m_lhs.cols()-1).rowwise()
+            .template replicate<MatrixType::ColsAtCompileTime>(m_rhs.cols());
+  }
+
+  typename LhsMatrixTypeCleaned::Nested m_lhs;
+  typename MatrixType::Nested m_rhs;
+};
+
+template<typename MatrixType,typename Rhs>
+struct traits<homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs> >
+{
+  typedef typename make_proper_matrix_type<typename traits<MatrixType>::Scalar,
+                 MatrixType::RowsAtCompileTime,
+                 Rhs::ColsAtCompileTime,
+                 MatrixType::PlainObject::Options,
+                 MatrixType::MaxRowsAtCompileTime,
+                 Rhs::MaxColsAtCompileTime>::type ReturnType;
+};
+
+template<typename MatrixType,typename Rhs>
+struct homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs>
+  : public ReturnByValue<homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs> >
+{
+  typedef typename remove_all<typename Rhs::Nested>::type RhsNested;
+  typedef typename MatrixType::Index Index;
+  homogeneous_right_product_impl(const MatrixType& lhs, const Rhs& rhs)
+    : m_lhs(lhs), m_rhs(rhs)
+  {}
+
+  inline Index rows() const { return m_lhs.rows(); }
+  inline Index cols() const { return m_rhs.cols(); }
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    // FIXME investigate how to allow lazy evaluation of this product when possible
+    dst = m_lhs * Block<const RhsNested,
+                        RhsNested::RowsAtCompileTime==Dynamic?Dynamic:RhsNested::RowsAtCompileTime-1,
+                        RhsNested::ColsAtCompileTime>
+            (m_rhs,0,0,m_rhs.rows()-1,m_rhs.cols());
+    dst += m_rhs.row(m_rhs.rows()-1).colwise()
+            .template replicate<MatrixType::RowsAtCompileTime>(m_lhs.rows());
+  }
+
+  typename MatrixType::Nested m_lhs;
+  typename Rhs::Nested m_rhs;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_HOMOGENEOUS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/RotationBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/RotationBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/RotationBase.h	(revision 2476)
@@ -0,0 +1,206 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ROTATIONBASE_H
+#define EIGEN_ROTATIONBASE_H
+
+namespace Eigen { 
+
+// forward declaration
+namespace internal {
+template<typename RotationDerived, typename MatrixType, bool IsVector=MatrixType::IsVectorAtCompileTime>
+struct rotation_base_generic_product_selector;
+}
+
+/** \class RotationBase
+  *
+  * \brief Common base class for compact rotation representations
+  *
+  * \param Derived is the derived type, i.e., a rotation type
+  * \param _Dim the dimension of the space
+  */
+template<typename Derived, int _Dim>
+class RotationBase
+{
+  public:
+    enum { Dim = _Dim };
+    /** the scalar type of the coefficients */
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+
+    /** corresponding linear transformation matrix type */
+    typedef Matrix<Scalar,Dim,Dim> RotationMatrixType;
+    typedef Matrix<Scalar,Dim,1> VectorType;
+
+  public:
+    inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
+    inline Derived& derived() { return *static_cast<Derived*>(this); }
+
+    /** \returns an equivalent rotation matrix */
+    inline RotationMatrixType toRotationMatrix() const { return derived().toRotationMatrix(); }
+
+    /** \returns an equivalent rotation matrix 
+      * This function is added to be conform with the Transform class' naming scheme.
+      */
+    inline RotationMatrixType matrix() const { return derived().toRotationMatrix(); }
+
+    /** \returns the inverse rotation */
+    inline Derived inverse() const { return derived().inverse(); }
+
+    /** \returns the concatenation of the rotation \c *this with a translation \a t */
+    inline Transform<Scalar,Dim,Isometry> operator*(const Translation<Scalar,Dim>& t) const
+    { return Transform<Scalar,Dim,Isometry>(*this) * t; }
+
+    /** \returns the concatenation of the rotation \c *this with a uniform scaling \a s */
+    inline RotationMatrixType operator*(const UniformScaling<Scalar>& s) const
+    { return toRotationMatrix() * s.factor(); }
+
+    /** \returns the concatenation of the rotation \c *this with a generic expression \a e
+      * \a e can be:
+      *  - a DimxDim linear transformation matrix
+      *  - a DimxDim diagonal matrix (axis aligned scaling)
+      *  - a vector of size Dim
+      */
+    template<typename OtherDerived>
+    EIGEN_STRONG_INLINE typename internal::rotation_base_generic_product_selector<Derived,OtherDerived,OtherDerived::IsVectorAtCompileTime>::ReturnType
+    operator*(const EigenBase<OtherDerived>& e) const
+    { return internal::rotation_base_generic_product_selector<Derived,OtherDerived>::run(derived(), e.derived()); }
+
+    /** \returns the concatenation of a linear transformation \a l with the rotation \a r */
+    template<typename OtherDerived> friend
+    inline RotationMatrixType operator*(const EigenBase<OtherDerived>& l, const Derived& r)
+    { return l.derived() * r.toRotationMatrix(); }
+
+    /** \returns the concatenation of a scaling \a l with the rotation \a r */
+    friend inline Transform<Scalar,Dim,Affine> operator*(const DiagonalMatrix<Scalar,Dim>& l, const Derived& r)
+    { 
+      Transform<Scalar,Dim,Affine> res(r);
+      res.linear().applyOnTheLeft(l);
+      return res;
+    }
+
+    /** \returns the concatenation of the rotation \c *this with a transformation \a t */
+    template<int Mode, int Options>
+    inline Transform<Scalar,Dim,Mode> operator*(const Transform<Scalar,Dim,Mode,Options>& t) const
+    { return toRotationMatrix() * t; }
+
+    template<typename OtherVectorType>
+    inline VectorType _transformVector(const OtherVectorType& v) const
+    { return toRotationMatrix() * v; }
+};
+
+namespace internal {
+
+// implementation of the generic product rotation * matrix
+template<typename RotationDerived, typename MatrixType>
+struct rotation_base_generic_product_selector<RotationDerived,MatrixType,false>
+{
+  enum { Dim = RotationDerived::Dim };
+  typedef Matrix<typename RotationDerived::Scalar,Dim,Dim> ReturnType;
+  static inline ReturnType run(const RotationDerived& r, const MatrixType& m)
+  { return r.toRotationMatrix() * m; }
+};
+
+template<typename RotationDerived, typename Scalar, int Dim, int MaxDim>
+struct rotation_base_generic_product_selector< RotationDerived, DiagonalMatrix<Scalar,Dim,MaxDim>, false >
+{
+  typedef Transform<Scalar,Dim,Affine> ReturnType;
+  static inline ReturnType run(const RotationDerived& r, const DiagonalMatrix<Scalar,Dim,MaxDim>& m)
+  {
+    ReturnType res(r);
+    res.linear() *= m;
+    return res;
+  }
+};
+
+template<typename RotationDerived,typename OtherVectorType>
+struct rotation_base_generic_product_selector<RotationDerived,OtherVectorType,true>
+{
+  enum { Dim = RotationDerived::Dim };
+  typedef Matrix<typename RotationDerived::Scalar,Dim,1> ReturnType;
+  static EIGEN_STRONG_INLINE ReturnType run(const RotationDerived& r, const OtherVectorType& v)
+  {
+    return r._transformVector(v);
+  }
+};
+
+} // end namespace internal
+
+/** \geometry_module
+  *
+  * \brief Constructs a Dim x Dim rotation matrix from the rotation \a r
+  */
+template<typename _Scalar, int _Rows, int _Cols, int _Storage, int _MaxRows, int _MaxCols>
+template<typename OtherDerived>
+Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>
+::Matrix(const RotationBase<OtherDerived,ColsAtCompileTime>& r)
+{
+  EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix,int(OtherDerived::Dim),int(OtherDerived::Dim))
+  *this = r.toRotationMatrix();
+}
+
+/** \geometry_module
+  *
+  * \brief Set a Dim x Dim rotation matrix from the rotation \a r
+  */
+template<typename _Scalar, int _Rows, int _Cols, int _Storage, int _MaxRows, int _MaxCols>
+template<typename OtherDerived>
+Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>&
+Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>
+::operator=(const RotationBase<OtherDerived,ColsAtCompileTime>& r)
+{
+  EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix,int(OtherDerived::Dim),int(OtherDerived::Dim))
+  return *this = r.toRotationMatrix();
+}
+
+namespace internal {
+
+/** \internal
+  *
+  * Helper function to return an arbitrary rotation object to a rotation matrix.
+  *
+  * \param Scalar the numeric type of the matrix coefficients
+  * \param Dim the dimension of the current space
+  *
+  * It returns a Dim x Dim fixed size matrix.
+  *
+  * Default specializations are provided for:
+  *   - any scalar type (2D),
+  *   - any matrix expression,
+  *   - any type based on RotationBase (e.g., Quaternion, AngleAxis, Rotation2D)
+  *
+  * Currently toRotationMatrix is only used by Transform.
+  *
+  * \sa class Transform, class Rotation2D, class Quaternion, class AngleAxis
+  */
+template<typename Scalar, int Dim>
+static inline Matrix<Scalar,2,2> toRotationMatrix(const Scalar& s)
+{
+  EIGEN_STATIC_ASSERT(Dim==2,YOU_MADE_A_PROGRAMMING_MISTAKE)
+  return Rotation2D<Scalar>(s).toRotationMatrix();
+}
+
+template<typename Scalar, int Dim, typename OtherDerived>
+static inline Matrix<Scalar,Dim,Dim> toRotationMatrix(const RotationBase<OtherDerived,Dim>& r)
+{
+  return r.toRotationMatrix();
+}
+
+template<typename Scalar, int Dim, typename OtherDerived>
+static inline const MatrixBase<OtherDerived>& toRotationMatrix(const MatrixBase<OtherDerived>& mat)
+{
+  EIGEN_STATIC_ASSERT(OtherDerived::RowsAtCompileTime==Dim && OtherDerived::ColsAtCompileTime==Dim,
+    YOU_MADE_A_PROGRAMMING_MISTAKE)
+  return mat;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_ROTATIONBASE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/AngleAxis.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/AngleAxis.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/AngleAxis.h	(revision 2476)
@@ -0,0 +1,240 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ANGLEAXIS_H
+#define EIGEN_ANGLEAXIS_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class AngleAxis
+  *
+  * \brief Represents a 3D rotation as a rotation angle around an arbitrary 3D axis
+  *
+  * \param _Scalar the scalar type, i.e., the type of the coefficients.
+  *
+  * \warning When setting up an AngleAxis object, the axis vector \b must \b be \b normalized.
+  *
+  * The following two typedefs are provided for convenience:
+  * \li \c AngleAxisf for \c float
+  * \li \c AngleAxisd for \c double
+  *
+  * Combined with MatrixBase::Unit{X,Y,Z}, AngleAxis can be used to easily
+  * mimic Euler-angles. Here is an example:
+  * \include AngleAxis_mimic_euler.cpp
+  * Output: \verbinclude AngleAxis_mimic_euler.out
+  *
+  * \note This class is not aimed to be used to store a rotation transformation,
+  * but rather to make easier the creation of other rotation (Quaternion, rotation Matrix)
+  * and transformation objects.
+  *
+  * \sa class Quaternion, class Transform, MatrixBase::UnitX()
+  */
+
+namespace internal {
+template<typename _Scalar> struct traits<AngleAxis<_Scalar> >
+{
+  typedef _Scalar Scalar;
+};
+}
+
+template<typename _Scalar>
+class AngleAxis : public RotationBase<AngleAxis<_Scalar>,3>
+{
+  typedef RotationBase<AngleAxis<_Scalar>,3> Base;
+
+public:
+
+  using Base::operator*;
+
+  enum { Dim = 3 };
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+  typedef Matrix<Scalar,3,3> Matrix3;
+  typedef Matrix<Scalar,3,1> Vector3;
+  typedef Quaternion<Scalar> QuaternionType;
+
+protected:
+
+  Vector3 m_axis;
+  Scalar m_angle;
+
+public:
+
+  /** Default constructor without initialization. */
+  AngleAxis() {}
+  /** Constructs and initialize the angle-axis rotation from an \a angle in radian
+    * and an \a axis which \b must \b be \b normalized.
+    *
+    * \warning If the \a axis vector is not normalized, then the angle-axis object
+    *          represents an invalid rotation. */
+  template<typename Derived>
+  inline AngleAxis(const Scalar& angle, const MatrixBase<Derived>& axis) : m_axis(axis), m_angle(angle) {}
+  /** Constructs and initialize the angle-axis rotation from a quaternion \a q. */
+  template<typename QuatDerived> inline explicit AngleAxis(const QuaternionBase<QuatDerived>& q) { *this = q; }
+  /** Constructs and initialize the angle-axis rotation from a 3x3 rotation matrix. */
+  template<typename Derived>
+  inline explicit AngleAxis(const MatrixBase<Derived>& m) { *this = m; }
+
+  /** \returns the value of the rotation angle in radian */
+  Scalar angle() const { return m_angle; }
+  /** \returns a read-write reference to the stored angle in radian */
+  Scalar& angle() { return m_angle; }
+
+  /** \returns the rotation axis */
+  const Vector3& axis() const { return m_axis; }
+  /** \returns a read-write reference to the stored rotation axis.
+    *
+    * \warning The rotation axis must remain a \b unit vector.
+    */
+  Vector3& axis() { return m_axis; }
+
+  /** Concatenates two rotations */
+  inline QuaternionType operator* (const AngleAxis& other) const
+  { return QuaternionType(*this) * QuaternionType(other); }
+
+  /** Concatenates two rotations */
+  inline QuaternionType operator* (const QuaternionType& other) const
+  { return QuaternionType(*this) * other; }
+
+  /** Concatenates two rotations */
+  friend inline QuaternionType operator* (const QuaternionType& a, const AngleAxis& b)
+  { return a * QuaternionType(b); }
+
+  /** \returns the inverse rotation, i.e., an angle-axis with opposite rotation angle */
+  AngleAxis inverse() const
+  { return AngleAxis(-m_angle, m_axis); }
+
+  template<class QuatDerived>
+  AngleAxis& operator=(const QuaternionBase<QuatDerived>& q);
+  template<typename Derived>
+  AngleAxis& operator=(const MatrixBase<Derived>& m);
+
+  template<typename Derived>
+  AngleAxis& fromRotationMatrix(const MatrixBase<Derived>& m);
+  Matrix3 toRotationMatrix(void) const;
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type cast() const
+  { return typename internal::cast_return_type<AngleAxis,AngleAxis<NewScalarType> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit AngleAxis(const AngleAxis<OtherScalarType>& other)
+  {
+    m_axis = other.axis().template cast<Scalar>();
+    m_angle = Scalar(other.angle());
+  }
+
+  static inline const AngleAxis Identity() { return AngleAxis(Scalar(0), Vector3::UnitX()); }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const AngleAxis& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return m_axis.isApprox(other.m_axis, prec) && internal::isApprox(m_angle,other.m_angle, prec); }
+};
+
+/** \ingroup Geometry_Module
+  * single precision angle-axis type */
+typedef AngleAxis<float> AngleAxisf;
+/** \ingroup Geometry_Module
+  * double precision angle-axis type */
+typedef AngleAxis<double> AngleAxisd;
+
+/** Set \c *this from a \b unit quaternion.
+  * The axis is normalized.
+  * 
+  * \warning As any other method dealing with quaternion, if the input quaternion
+  *          is not normalized then the result is undefined.
+  */
+template<typename Scalar>
+template<typename QuatDerived>
+AngleAxis<Scalar>& AngleAxis<Scalar>::operator=(const QuaternionBase<QuatDerived>& q)
+{
+  using std::acos;
+  using std::min;
+  using std::max;
+  using std::sqrt;
+  Scalar n2 = q.vec().squaredNorm();
+  if (n2 < NumTraits<Scalar>::dummy_precision()*NumTraits<Scalar>::dummy_precision())
+  {
+    m_angle = Scalar(0);
+    m_axis << Scalar(1), Scalar(0), Scalar(0);
+  }
+  else
+  {
+    m_angle = Scalar(2)*acos((min)((max)(Scalar(-1),q.w()),Scalar(1)));
+    m_axis = q.vec() / sqrt(n2);
+  }
+  return *this;
+}
+
+/** Set \c *this from a 3x3 rotation matrix \a mat.
+  */
+template<typename Scalar>
+template<typename Derived>
+AngleAxis<Scalar>& AngleAxis<Scalar>::operator=(const MatrixBase<Derived>& mat)
+{
+  // Since a direct conversion would not be really faster,
+  // let's use the robust Quaternion implementation:
+  return *this = QuaternionType(mat);
+}
+
+/**
+* \brief Sets \c *this from a 3x3 rotation matrix.
+**/
+template<typename Scalar>
+template<typename Derived>
+AngleAxis<Scalar>& AngleAxis<Scalar>::fromRotationMatrix(const MatrixBase<Derived>& mat)
+{
+  return *this = QuaternionType(mat);
+}
+
+/** Constructs and \returns an equivalent 3x3 rotation matrix.
+  */
+template<typename Scalar>
+typename AngleAxis<Scalar>::Matrix3
+AngleAxis<Scalar>::toRotationMatrix(void) const
+{
+  using std::sin;
+  using std::cos;
+  Matrix3 res;
+  Vector3 sin_axis  = sin(m_angle) * m_axis;
+  Scalar c = cos(m_angle);
+  Vector3 cos1_axis = (Scalar(1)-c) * m_axis;
+
+  Scalar tmp;
+  tmp = cos1_axis.x() * m_axis.y();
+  res.coeffRef(0,1) = tmp - sin_axis.z();
+  res.coeffRef(1,0) = tmp + sin_axis.z();
+
+  tmp = cos1_axis.x() * m_axis.z();
+  res.coeffRef(0,2) = tmp + sin_axis.y();
+  res.coeffRef(2,0) = tmp - sin_axis.y();
+
+  tmp = cos1_axis.y() * m_axis.z();
+  res.coeffRef(1,2) = tmp - sin_axis.x();
+  res.coeffRef(2,1) = tmp + sin_axis.x();
+
+  res.diagonal() = (cos1_axis.cwiseProduct(m_axis)).array() + c;
+
+  return res;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_ANGLEAXIS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Transform.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Transform.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/Transform.h	(revision 2476)
@@ -0,0 +1,1474 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+// Copyright (C) 2010 Hauke Heibel <hauke.heibel@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_TRANSFORM_H
+#define EIGEN_TRANSFORM_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Transform>
+struct transform_traits
+{
+  enum
+  {
+    Dim = Transform::Dim,
+    HDim = Transform::HDim,
+    Mode = Transform::Mode,
+    IsProjective = (int(Mode)==int(Projective))
+  };
+};
+
+template< typename TransformType,
+          typename MatrixType,
+          int Case = transform_traits<TransformType>::IsProjective ? 0
+                   : int(MatrixType::RowsAtCompileTime) == int(transform_traits<TransformType>::HDim) ? 1
+                   : 2>
+struct transform_right_product_impl;
+
+template< typename Other,
+          int Mode,
+          int Options,
+          int Dim,
+          int HDim,
+          int OtherRows=Other::RowsAtCompileTime,
+          int OtherCols=Other::ColsAtCompileTime>
+struct transform_left_product_impl;
+
+template< typename Lhs,
+          typename Rhs,
+          bool AnyProjective = 
+            transform_traits<Lhs>::IsProjective ||
+            transform_traits<Rhs>::IsProjective>
+struct transform_transform_product_impl;
+
+template< typename Other,
+          int Mode,
+          int Options,
+          int Dim,
+          int HDim,
+          int OtherRows=Other::RowsAtCompileTime,
+          int OtherCols=Other::ColsAtCompileTime>
+struct transform_construct_from_matrix;
+
+template<typename TransformType> struct transform_take_affine_part;
+
+template<int Mode> struct transform_make_affine;
+
+} // end namespace internal
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  * \class Transform
+  *
+  * \brief Represents an homogeneous transformation in a N dimensional space
+  *
+  * \tparam _Scalar the scalar type, i.e., the type of the coefficients
+  * \tparam _Dim the dimension of the space
+  * \tparam _Mode the type of the transformation. Can be:
+  *              - #Affine: the transformation is stored as a (Dim+1)^2 matrix,
+  *                         where the last row is assumed to be [0 ... 0 1].
+  *              - #AffineCompact: the transformation is stored as a (Dim)x(Dim+1) matrix.
+  *              - #Projective: the transformation is stored as a (Dim+1)^2 matrix
+  *                             without any assumption.
+  * \tparam _Options has the same meaning as in class Matrix. It allows to specify DontAlign and/or RowMajor.
+  *                  These Options are passed directly to the underlying matrix type.
+  *
+  * The homography is internally represented and stored by a matrix which
+  * is available through the matrix() method. To understand the behavior of
+  * this class you have to think a Transform object as its internal
+  * matrix representation. The chosen convention is right multiply:
+  *
+  * \code v' = T * v \endcode
+  *
+  * Therefore, an affine transformation matrix M is shaped like this:
+  *
+  * \f$ \left( \begin{array}{cc}
+  * linear & translation\\
+  * 0 ... 0 & 1
+  * \end{array} \right) \f$
+  *
+  * Note that for a projective transformation the last row can be anything,
+  * and then the interpretation of different parts might be sightly different.
+  *
+  * However, unlike a plain matrix, the Transform class provides many features
+  * simplifying both its assembly and usage. In particular, it can be composed
+  * with any other transformations (Transform,Translation,RotationBase,DiagonalMatrix)
+  * and can be directly used to transform implicit homogeneous vectors. All these
+  * operations are handled via the operator*. For the composition of transformations,
+  * its principle consists to first convert the right/left hand sides of the product
+  * to a compatible (Dim+1)^2 matrix and then perform a pure matrix product.
+  * Of course, internally, operator* tries to perform the minimal number of operations
+  * according to the nature of each terms. Likewise, when applying the transform
+  * to points, the latters are automatically promoted to homogeneous vectors
+  * before doing the matrix product. The conventions to homogeneous representations
+  * are performed as follow:
+  *
+  * \b Translation t (Dim)x(1):
+  * \f$ \left( \begin{array}{cc}
+  * I & t \\
+  * 0\,...\,0 & 1
+  * \end{array} \right) \f$
+  *
+  * \b Rotation R (Dim)x(Dim):
+  * \f$ \left( \begin{array}{cc}
+  * R & 0\\
+  * 0\,...\,0 & 1
+  * \end{array} \right) \f$
+  *<!--
+  * \b Linear \b Matrix L (Dim)x(Dim):
+  * \f$ \left( \begin{array}{cc}
+  * L & 0\\
+  * 0\,...\,0 & 1
+  * \end{array} \right) \f$
+  *
+  * \b Affine \b Matrix A (Dim)x(Dim+1):
+  * \f$ \left( \begin{array}{c}
+  * A\\
+  * 0\,...\,0\,1
+  * \end{array} \right) \f$
+  *-->
+  * \b Scaling \b DiagonalMatrix S (Dim)x(Dim):
+  * \f$ \left( \begin{array}{cc}
+  * S & 0\\
+  * 0\,...\,0 & 1
+  * \end{array} \right) \f$
+  *
+  * \b Column \b point v (Dim)x(1):
+  * \f$ \left( \begin{array}{c}
+  * v\\
+  * 1
+  * \end{array} \right) \f$
+  *
+  * \b Set \b of \b column \b points V1...Vn (Dim)x(n):
+  * \f$ \left( \begin{array}{ccc}
+  * v_1 & ... & v_n\\
+  * 1 & ... & 1
+  * \end{array} \right) \f$
+  *
+  * The concatenation of a Transform object with any kind of other transformation
+  * always returns a Transform object.
+  *
+  * A little exception to the "as pure matrix product" rule is the case of the
+  * transformation of non homogeneous vectors by an affine transformation. In
+  * that case the last matrix row can be ignored, and the product returns non
+  * homogeneous vectors.
+  *
+  * Since, for instance, a Dim x Dim matrix is interpreted as a linear transformation,
+  * it is not possible to directly transform Dim vectors stored in a Dim x Dim matrix.
+  * The solution is either to use a Dim x Dynamic matrix or explicitly request a
+  * vector transformation by making the vector homogeneous:
+  * \code
+  * m' = T * m.colwise().homogeneous();
+  * \endcode
+  * Note that there is zero overhead.
+  *
+  * Conversion methods from/to Qt's QMatrix and QTransform are available if the
+  * preprocessor token EIGEN_QT_SUPPORT is defined.
+  *
+  * This class can be extended with the help of the plugin mechanism described on the page
+  * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_TRANSFORM_PLUGIN.
+  *
+  * \sa class Matrix, class Quaternion
+  */
+template<typename _Scalar, int _Dim, int _Mode, int _Options>
+class Transform
+{
+public:
+  EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Dim==Dynamic ? Dynamic : (_Dim+1)*(_Dim+1))
+  enum {
+    Mode = _Mode,
+    Options = _Options,
+    Dim = _Dim,     ///< space dimension in which the transformation holds
+    HDim = _Dim+1,  ///< size of a respective homogeneous vector
+    Rows = int(Mode)==(AffineCompact) ? Dim : HDim
+  };
+  /** the scalar type of the coefficients */
+  typedef _Scalar Scalar;
+  typedef DenseIndex Index;
+  /** type of the matrix used to represent the transformation */
+  typedef typename internal::make_proper_matrix_type<Scalar,Rows,HDim,Options>::type MatrixType;
+  /** constified MatrixType */
+  typedef const MatrixType ConstMatrixType;
+  /** type of the matrix used to represent the linear part of the transformation */
+  typedef Matrix<Scalar,Dim,Dim,Options> LinearMatrixType;
+  /** type of read/write reference to the linear part of the transformation */
+  typedef Block<MatrixType,Dim,Dim,int(Mode)==(AffineCompact) && (Options&RowMajor)==0> LinearPart;
+  /** type of read reference to the linear part of the transformation */
+  typedef const Block<ConstMatrixType,Dim,Dim,int(Mode)==(AffineCompact) && (Options&RowMajor)==0> ConstLinearPart;
+  /** type of read/write reference to the affine part of the transformation */
+  typedef typename internal::conditional<int(Mode)==int(AffineCompact),
+                              MatrixType&,
+                              Block<MatrixType,Dim,HDim> >::type AffinePart;
+  /** type of read reference to the affine part of the transformation */
+  typedef typename internal::conditional<int(Mode)==int(AffineCompact),
+                              const MatrixType&,
+                              const Block<const MatrixType,Dim,HDim> >::type ConstAffinePart;
+  /** type of a vector */
+  typedef Matrix<Scalar,Dim,1> VectorType;
+  /** type of a read/write reference to the translation part of the rotation */
+  typedef Block<MatrixType,Dim,1,int(Mode)==(AffineCompact)> TranslationPart;
+  /** type of a read reference to the translation part of the rotation */
+  typedef const Block<ConstMatrixType,Dim,1,int(Mode)==(AffineCompact)> ConstTranslationPart;
+  /** corresponding translation type */
+  typedef Translation<Scalar,Dim> TranslationType;
+  
+  // this intermediate enum is needed to avoid an ICE with gcc 3.4 and 4.0
+  enum { TransformTimeDiagonalMode = ((Mode==int(Isometry))?Affine:int(Mode)) };
+  /** The return type of the product between a diagonal matrix and a transform */
+  typedef Transform<Scalar,Dim,TransformTimeDiagonalMode> TransformTimeDiagonalReturnType;
+
+protected:
+
+  MatrixType m_matrix;
+
+public:
+
+  /** Default constructor without initialization of the meaningful coefficients.
+    * If Mode==Affine, then the last row is set to [0 ... 0 1] */
+  inline Transform()
+  {
+    check_template_params();
+    internal::transform_make_affine<(int(Mode)==Affine) ? Affine : AffineCompact>::run(m_matrix);
+  }
+
+  inline Transform(const Transform& other)
+  {
+    check_template_params();
+    m_matrix = other.m_matrix;
+  }
+
+  inline explicit Transform(const TranslationType& t)
+  {
+    check_template_params();
+    *this = t;
+  }
+  inline explicit Transform(const UniformScaling<Scalar>& s)
+  {
+    check_template_params();
+    *this = s;
+  }
+  template<typename Derived>
+  inline explicit Transform(const RotationBase<Derived, Dim>& r)
+  {
+    check_template_params();
+    *this = r;
+  }
+
+  inline Transform& operator=(const Transform& other)
+  { m_matrix = other.m_matrix; return *this; }
+
+  typedef internal::transform_take_affine_part<Transform> take_affine_part;
+
+  /** Constructs and initializes a transformation from a Dim^2 or a (Dim+1)^2 matrix. */
+  template<typename OtherDerived>
+  inline explicit Transform(const EigenBase<OtherDerived>& other)
+  {
+    EIGEN_STATIC_ASSERT((internal::is_same<Scalar,typename OtherDerived::Scalar>::value),
+      YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY);
+
+    check_template_params();
+    internal::transform_construct_from_matrix<OtherDerived,Mode,Options,Dim,HDim>::run(this, other.derived());
+  }
+
+  /** Set \c *this from a Dim^2 or (Dim+1)^2 matrix. */
+  template<typename OtherDerived>
+  inline Transform& operator=(const EigenBase<OtherDerived>& other)
+  {
+    EIGEN_STATIC_ASSERT((internal::is_same<Scalar,typename OtherDerived::Scalar>::value),
+      YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY);
+
+    internal::transform_construct_from_matrix<OtherDerived,Mode,Options,Dim,HDim>::run(this, other.derived());
+    return *this;
+  }
+  
+  template<int OtherOptions>
+  inline Transform(const Transform<Scalar,Dim,Mode,OtherOptions>& other)
+  {
+    check_template_params();
+    // only the options change, we can directly copy the matrices
+    m_matrix = other.matrix();
+  }
+
+  template<int OtherMode,int OtherOptions>
+  inline Transform(const Transform<Scalar,Dim,OtherMode,OtherOptions>& other)
+  {
+    check_template_params();
+    // prevent conversions as:
+    // Affine | AffineCompact | Isometry = Projective
+    EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(OtherMode==int(Projective), Mode==int(Projective)),
+                        YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION)
+
+    // prevent conversions as:
+    // Isometry = Affine | AffineCompact
+    EIGEN_STATIC_ASSERT(EIGEN_IMPLIES(OtherMode==int(Affine)||OtherMode==int(AffineCompact), Mode!=int(Isometry)),
+                        YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION)
+
+    enum { ModeIsAffineCompact = Mode == int(AffineCompact),
+           OtherModeIsAffineCompact = OtherMode == int(AffineCompact)
+    };
+
+    if(ModeIsAffineCompact == OtherModeIsAffineCompact)
+    {
+      // We need the block expression because the code is compiled for all
+      // combinations of transformations and will trigger a compile time error
+      // if one tries to assign the matrices directly
+      m_matrix.template block<Dim,Dim+1>(0,0) = other.matrix().template block<Dim,Dim+1>(0,0);
+      makeAffine();
+    }
+    else if(OtherModeIsAffineCompact)
+    {
+      typedef typename Transform<Scalar,Dim,OtherMode,OtherOptions>::MatrixType OtherMatrixType;
+      internal::transform_construct_from_matrix<OtherMatrixType,Mode,Options,Dim,HDim>::run(this, other.matrix());
+    }
+    else
+    {
+      // here we know that Mode == AffineCompact and OtherMode != AffineCompact.
+      // if OtherMode were Projective, the static assert above would already have caught it.
+      // So the only possibility is that OtherMode == Affine
+      linear() = other.linear();
+      translation() = other.translation();
+    }
+  }
+
+  template<typename OtherDerived>
+  Transform(const ReturnByValue<OtherDerived>& other)
+  {
+    check_template_params();
+    other.evalTo(*this);
+  }
+
+  template<typename OtherDerived>
+  Transform& operator=(const ReturnByValue<OtherDerived>& other)
+  {
+    other.evalTo(*this);
+    return *this;
+  }
+
+  #ifdef EIGEN_QT_SUPPORT
+  inline Transform(const QMatrix& other);
+  inline Transform& operator=(const QMatrix& other);
+  inline QMatrix toQMatrix(void) const;
+  inline Transform(const QTransform& other);
+  inline Transform& operator=(const QTransform& other);
+  inline QTransform toQTransform(void) const;
+  #endif
+
+  /** shortcut for m_matrix(row,col);
+    * \sa MatrixBase::operator(Index,Index) const */
+  inline Scalar operator() (Index row, Index col) const { return m_matrix(row,col); }
+  /** shortcut for m_matrix(row,col);
+    * \sa MatrixBase::operator(Index,Index) */
+  inline Scalar& operator() (Index row, Index col) { return m_matrix(row,col); }
+
+  /** \returns a read-only expression of the transformation matrix */
+  inline const MatrixType& matrix() const { return m_matrix; }
+  /** \returns a writable expression of the transformation matrix */
+  inline MatrixType& matrix() { return m_matrix; }
+
+  /** \returns a read-only expression of the linear part of the transformation */
+  inline ConstLinearPart linear() const { return ConstLinearPart(m_matrix,0,0); }
+  /** \returns a writable expression of the linear part of the transformation */
+  inline LinearPart linear() { return LinearPart(m_matrix,0,0); }
+
+  /** \returns a read-only expression of the Dim x HDim affine part of the transformation */
+  inline ConstAffinePart affine() const { return take_affine_part::run(m_matrix); }
+  /** \returns a writable expression of the Dim x HDim affine part of the transformation */
+  inline AffinePart affine() { return take_affine_part::run(m_matrix); }
+
+  /** \returns a read-only expression of the translation vector of the transformation */
+  inline ConstTranslationPart translation() const { return ConstTranslationPart(m_matrix,0,Dim); }
+  /** \returns a writable expression of the translation vector of the transformation */
+  inline TranslationPart translation() { return TranslationPart(m_matrix,0,Dim); }
+
+  /** \returns an expression of the product between the transform \c *this and a matrix expression \a other.
+    *
+    * The right-hand-side \a other can be either:
+    * \li an homogeneous vector of size Dim+1,
+    * \li a set of homogeneous vectors of size Dim+1 x N,
+    * \li a transformation matrix of size Dim+1 x Dim+1.
+    *
+    * Moreover, if \c *this represents an affine transformation (i.e., Mode!=Projective), then \a other can also be:
+    * \li a point of size Dim (computes: \code this->linear() * other + this->translation()\endcode),
+    * \li a set of N points as a Dim x N matrix (computes: \code (this->linear() * other).colwise() + this->translation()\endcode),
+    *
+    * In all cases, the return type is a matrix or vector of same sizes as the right-hand-side \a other.
+    *
+    * If you want to interpret \a other as a linear or affine transformation, then first convert it to a Transform<> type,
+    * or do your own cooking.
+    *
+    * Finally, if you want to apply Affine transformations to vectors, then explicitly apply the linear part only:
+    * \code
+    * Affine3f A;
+    * Vector3f v1, v2;
+    * v2 = A.linear() * v1;
+    * \endcode
+    *
+    */
+  // note: this function is defined here because some compilers cannot find the respective declaration
+  template<typename OtherDerived>
+  EIGEN_STRONG_INLINE const typename OtherDerived::PlainObject
+  operator * (const EigenBase<OtherDerived> &other) const
+  { return internal::transform_right_product_impl<Transform, OtherDerived>::run(*this,other.derived()); }
+
+  /** \returns the product expression of a transformation matrix \a a times a transform \a b
+    *
+    * The left hand side \a other can be either:
+    * \li a linear transformation matrix of size Dim x Dim,
+    * \li an affine transformation matrix of size Dim x Dim+1,
+    * \li a general transformation matrix of size Dim+1 x Dim+1.
+    */
+  template<typename OtherDerived> friend
+  inline const typename internal::transform_left_product_impl<OtherDerived,Mode,Options,_Dim,_Dim+1>::ResultType
+    operator * (const EigenBase<OtherDerived> &a, const Transform &b)
+  { return internal::transform_left_product_impl<OtherDerived,Mode,Options,Dim,HDim>::run(a.derived(),b); }
+
+  /** \returns The product expression of a transform \a a times a diagonal matrix \a b
+    *
+    * The rhs diagonal matrix is interpreted as an affine scaling transformation. The
+    * product results in a Transform of the same type (mode) as the lhs only if the lhs 
+    * mode is no isometry. In that case, the returned transform is an affinity.
+    */
+  template<typename DiagonalDerived>
+  inline const TransformTimeDiagonalReturnType
+    operator * (const DiagonalBase<DiagonalDerived> &b) const
+  {
+    TransformTimeDiagonalReturnType res(*this);
+    res.linear() *= b;
+    return res;
+  }
+
+  /** \returns The product expression of a diagonal matrix \a a times a transform \a b
+    *
+    * The lhs diagonal matrix is interpreted as an affine scaling transformation. The
+    * product results in a Transform of the same type (mode) as the lhs only if the lhs 
+    * mode is no isometry. In that case, the returned transform is an affinity.
+    */
+  template<typename DiagonalDerived>
+  friend inline TransformTimeDiagonalReturnType
+    operator * (const DiagonalBase<DiagonalDerived> &a, const Transform &b)
+  {
+    TransformTimeDiagonalReturnType res;
+    res.linear().noalias() = a*b.linear();
+    res.translation().noalias() = a*b.translation();
+    if (Mode!=int(AffineCompact))
+      res.matrix().row(Dim) = b.matrix().row(Dim);
+    return res;
+  }
+
+  template<typename OtherDerived>
+  inline Transform& operator*=(const EigenBase<OtherDerived>& other) { return *this = *this * other; }
+
+  /** Concatenates two transformations */
+  inline const Transform operator * (const Transform& other) const
+  {
+    return internal::transform_transform_product_impl<Transform,Transform>::run(*this,other);
+  }
+  
+  #ifdef __INTEL_COMPILER
+private:
+  // this intermediate structure permits to workaround a bug in ICC 11:
+  //   error: template instantiation resulted in unexpected function type of "Eigen::Transform<double, 3, 32, 0>
+  //             (const Eigen::Transform<double, 3, 2, 0> &) const"
+  //  (the meaning of a name may have changed since the template declaration -- the type of the template is:
+  // "Eigen::internal::transform_transform_product_impl<Eigen::Transform<double, 3, 32, 0>,
+  //     Eigen::Transform<double, 3, Mode, Options>, <expression>>::ResultType (const Eigen::Transform<double, 3, Mode, Options> &) const")
+  // 
+  template<int OtherMode,int OtherOptions> struct icc_11_workaround
+  {
+    typedef internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> > ProductType;
+    typedef typename ProductType::ResultType ResultType;
+  };
+  
+public:
+  /** Concatenates two different transformations */
+  template<int OtherMode,int OtherOptions>
+  inline typename icc_11_workaround<OtherMode,OtherOptions>::ResultType
+    operator * (const Transform<Scalar,Dim,OtherMode,OtherOptions>& other) const
+  {
+    typedef typename icc_11_workaround<OtherMode,OtherOptions>::ProductType ProductType;
+    return ProductType::run(*this,other);
+  }
+  #else
+  /** Concatenates two different transformations */
+  template<int OtherMode,int OtherOptions>
+  inline typename internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> >::ResultType
+    operator * (const Transform<Scalar,Dim,OtherMode,OtherOptions>& other) const
+  {
+    return internal::transform_transform_product_impl<Transform,Transform<Scalar,Dim,OtherMode,OtherOptions> >::run(*this,other);
+  }
+  #endif
+
+  /** \sa MatrixBase::setIdentity() */
+  void setIdentity() { m_matrix.setIdentity(); }
+
+  /**
+   * \brief Returns an identity transformation.
+   * \todo In the future this function should be returning a Transform expression.
+   */
+  static const Transform Identity()
+  {
+    return Transform(MatrixType::Identity());
+  }
+
+  template<typename OtherDerived>
+  inline Transform& scale(const MatrixBase<OtherDerived> &other);
+
+  template<typename OtherDerived>
+  inline Transform& prescale(const MatrixBase<OtherDerived> &other);
+
+  inline Transform& scale(const Scalar& s);
+  inline Transform& prescale(const Scalar& s);
+
+  template<typename OtherDerived>
+  inline Transform& translate(const MatrixBase<OtherDerived> &other);
+
+  template<typename OtherDerived>
+  inline Transform& pretranslate(const MatrixBase<OtherDerived> &other);
+
+  template<typename RotationType>
+  inline Transform& rotate(const RotationType& rotation);
+
+  template<typename RotationType>
+  inline Transform& prerotate(const RotationType& rotation);
+
+  Transform& shear(const Scalar& sx, const Scalar& sy);
+  Transform& preshear(const Scalar& sx, const Scalar& sy);
+
+  inline Transform& operator=(const TranslationType& t);
+  inline Transform& operator*=(const TranslationType& t) { return translate(t.vector()); }
+  inline Transform operator*(const TranslationType& t) const;
+
+  inline Transform& operator=(const UniformScaling<Scalar>& t);
+  inline Transform& operator*=(const UniformScaling<Scalar>& s) { return scale(s.factor()); }
+  inline Transform<Scalar,Dim,(int(Mode)==int(Isometry)?int(Affine):int(Mode))> operator*(const UniformScaling<Scalar>& s) const
+  {
+    Transform<Scalar,Dim,(int(Mode)==int(Isometry)?int(Affine):int(Mode)),Options> res = *this;
+    res.scale(s.factor());
+    return res;
+  }
+
+  inline Transform& operator*=(const DiagonalMatrix<Scalar,Dim>& s) { linear() *= s; return *this; }
+
+  template<typename Derived>
+  inline Transform& operator=(const RotationBase<Derived,Dim>& r);
+  template<typename Derived>
+  inline Transform& operator*=(const RotationBase<Derived,Dim>& r) { return rotate(r.toRotationMatrix()); }
+  template<typename Derived>
+  inline Transform operator*(const RotationBase<Derived,Dim>& r) const;
+
+  const LinearMatrixType rotation() const;
+  template<typename RotationMatrixType, typename ScalingMatrixType>
+  void computeRotationScaling(RotationMatrixType *rotation, ScalingMatrixType *scaling) const;
+  template<typename ScalingMatrixType, typename RotationMatrixType>
+  void computeScalingRotation(ScalingMatrixType *scaling, RotationMatrixType *rotation) const;
+
+  template<typename PositionDerived, typename OrientationType, typename ScaleDerived>
+  Transform& fromPositionOrientationScale(const MatrixBase<PositionDerived> &position,
+    const OrientationType& orientation, const MatrixBase<ScaleDerived> &scale);
+
+  inline Transform inverse(TransformTraits traits = (TransformTraits)Mode) const;
+
+  /** \returns a const pointer to the column major internal matrix */
+  const Scalar* data() const { return m_matrix.data(); }
+  /** \returns a non-const pointer to the column major internal matrix */
+  Scalar* data() { return m_matrix.data(); }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim,Mode,Options> >::type cast() const
+  { return typename internal::cast_return_type<Transform,Transform<NewScalarType,Dim,Mode,Options> >::type(*this); }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit Transform(const Transform<OtherScalarType,Dim,Mode,Options>& other)
+  {
+    check_template_params();
+    m_matrix = other.matrix().template cast<Scalar>();
+  }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const Transform& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
+  { return m_matrix.isApprox(other.m_matrix, prec); }
+
+  /** Sets the last row to [0 ... 0 1]
+    */
+  void makeAffine()
+  {
+    internal::transform_make_affine<int(Mode)>::run(m_matrix);
+  }
+
+  /** \internal
+    * \returns the Dim x Dim linear part if the transformation is affine,
+    *          and the HDim x Dim part for projective transformations.
+    */
+  inline Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,Dim> linearExt()
+  { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,Dim>(0,0); }
+  /** \internal
+    * \returns the Dim x Dim linear part if the transformation is affine,
+    *          and the HDim x Dim part for projective transformations.
+    */
+  inline const Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,Dim> linearExt() const
+  { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,Dim>(0,0); }
+
+  /** \internal
+    * \returns the translation part if the transformation is affine,
+    *          and the last column for projective transformations.
+    */
+  inline Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,1> translationExt()
+  { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,1>(0,Dim); }
+  /** \internal
+    * \returns the translation part if the transformation is affine,
+    *          and the last column for projective transformations.
+    */
+  inline const Block<MatrixType,int(Mode)==int(Projective)?HDim:Dim,1> translationExt() const
+  { return m_matrix.template block<int(Mode)==int(Projective)?HDim:Dim,1>(0,Dim); }
+
+
+  #ifdef EIGEN_TRANSFORM_PLUGIN
+  #include EIGEN_TRANSFORM_PLUGIN
+  #endif
+  
+protected:
+  #ifndef EIGEN_PARSED_BY_DOXYGEN
+    static EIGEN_STRONG_INLINE void check_template_params()
+    {
+      EIGEN_STATIC_ASSERT((Options & (DontAlign|RowMajor)) == Options, INVALID_MATRIX_TEMPLATE_PARAMETERS)
+    }
+  #endif
+
+};
+
+/** \ingroup Geometry_Module */
+typedef Transform<float,2,Isometry> Isometry2f;
+/** \ingroup Geometry_Module */
+typedef Transform<float,3,Isometry> Isometry3f;
+/** \ingroup Geometry_Module */
+typedef Transform<double,2,Isometry> Isometry2d;
+/** \ingroup Geometry_Module */
+typedef Transform<double,3,Isometry> Isometry3d;
+
+/** \ingroup Geometry_Module */
+typedef Transform<float,2,Affine> Affine2f;
+/** \ingroup Geometry_Module */
+typedef Transform<float,3,Affine> Affine3f;
+/** \ingroup Geometry_Module */
+typedef Transform<double,2,Affine> Affine2d;
+/** \ingroup Geometry_Module */
+typedef Transform<double,3,Affine> Affine3d;
+
+/** \ingroup Geometry_Module */
+typedef Transform<float,2,AffineCompact> AffineCompact2f;
+/** \ingroup Geometry_Module */
+typedef Transform<float,3,AffineCompact> AffineCompact3f;
+/** \ingroup Geometry_Module */
+typedef Transform<double,2,AffineCompact> AffineCompact2d;
+/** \ingroup Geometry_Module */
+typedef Transform<double,3,AffineCompact> AffineCompact3d;
+
+/** \ingroup Geometry_Module */
+typedef Transform<float,2,Projective> Projective2f;
+/** \ingroup Geometry_Module */
+typedef Transform<float,3,Projective> Projective3f;
+/** \ingroup Geometry_Module */
+typedef Transform<double,2,Projective> Projective2d;
+/** \ingroup Geometry_Module */
+typedef Transform<double,3,Projective> Projective3d;
+
+/**************************
+*** Optional QT support ***
+**************************/
+
+#ifdef EIGEN_QT_SUPPORT
+/** Initializes \c *this from a QMatrix assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim, int Mode,int Options>
+Transform<Scalar,Dim,Mode,Options>::Transform(const QMatrix& other)
+{
+  check_template_params();
+  *this = other;
+}
+
+/** Set \c *this from a QMatrix assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim, int Mode,int Options>
+Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const QMatrix& other)
+{
+  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  m_matrix << other.m11(), other.m21(), other.dx(),
+              other.m12(), other.m22(), other.dy(),
+              0, 0, 1;
+  return *this;
+}
+
+/** \returns a QMatrix from \c *this assuming the dimension is 2.
+  *
+  * \warning this conversion might loss data if \c *this is not affine
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+QMatrix Transform<Scalar,Dim,Mode,Options>::toQMatrix(void) const
+{
+  check_template_params();
+  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  return QMatrix(m_matrix.coeff(0,0), m_matrix.coeff(1,0),
+                 m_matrix.coeff(0,1), m_matrix.coeff(1,1),
+                 m_matrix.coeff(0,2), m_matrix.coeff(1,2));
+}
+
+/** Initializes \c *this from a QTransform assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim, int Mode,int Options>
+Transform<Scalar,Dim,Mode,Options>::Transform(const QTransform& other)
+{
+  check_template_params();
+  *this = other;
+}
+
+/** Set \c *this from a QTransform assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const QTransform& other)
+{
+  check_template_params();
+  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  if (Mode == int(AffineCompact))
+    m_matrix << other.m11(), other.m21(), other.dx(),
+                other.m12(), other.m22(), other.dy();
+  else
+    m_matrix << other.m11(), other.m21(), other.dx(),
+                other.m12(), other.m22(), other.dy(),
+                other.m13(), other.m23(), other.m33();
+  return *this;
+}
+
+/** \returns a QTransform from \c *this assuming the dimension is 2.
+  *
+  * This function is available only if the token EIGEN_QT_SUPPORT is defined.
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+QTransform Transform<Scalar,Dim,Mode,Options>::toQTransform(void) const
+{
+  EIGEN_STATIC_ASSERT(Dim==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  if (Mode == int(AffineCompact))
+    return QTransform(m_matrix.coeff(0,0), m_matrix.coeff(1,0),
+                      m_matrix.coeff(0,1), m_matrix.coeff(1,1),
+                      m_matrix.coeff(0,2), m_matrix.coeff(1,2));
+  else
+    return QTransform(m_matrix.coeff(0,0), m_matrix.coeff(1,0), m_matrix.coeff(2,0),
+                      m_matrix.coeff(0,1), m_matrix.coeff(1,1), m_matrix.coeff(2,1),
+                      m_matrix.coeff(0,2), m_matrix.coeff(1,2), m_matrix.coeff(2,2));
+}
+#endif
+
+/*********************
+*** Procedural API ***
+*********************/
+
+/** Applies on the right the non uniform scale transformation represented
+  * by the vector \a other to \c *this and returns a reference to \c *this.
+  * \sa prescale()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename OtherDerived>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::scale(const MatrixBase<OtherDerived> &other)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+  linearExt().noalias() = (linearExt() * other.asDiagonal());
+  return *this;
+}
+
+/** Applies on the right a uniform scale of a factor \a c to \c *this
+  * and returns a reference to \c *this.
+  * \sa prescale(Scalar)
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::scale(const Scalar& s)
+{
+  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+  linearExt() *= s;
+  return *this;
+}
+
+/** Applies on the left the non uniform scale transformation represented
+  * by the vector \a other to \c *this and returns a reference to \c *this.
+  * \sa scale()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename OtherDerived>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::prescale(const MatrixBase<OtherDerived> &other)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+  m_matrix.template block<Dim,HDim>(0,0).noalias() = (other.asDiagonal() * m_matrix.template block<Dim,HDim>(0,0));
+  return *this;
+}
+
+/** Applies on the left a uniform scale of a factor \a c to \c *this
+  * and returns a reference to \c *this.
+  * \sa scale(Scalar)
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::prescale(const Scalar& s)
+{
+  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+  m_matrix.template topRows<Dim>() *= s;
+  return *this;
+}
+
+/** Applies on the right the translation matrix represented by the vector \a other
+  * to \c *this and returns a reference to \c *this.
+  * \sa pretranslate()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename OtherDerived>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::translate(const MatrixBase<OtherDerived> &other)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+  translationExt() += linearExt() * other;
+  return *this;
+}
+
+/** Applies on the left the translation matrix represented by the vector \a other
+  * to \c *this and returns a reference to \c *this.
+  * \sa translate()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename OtherDerived>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::pretranslate(const MatrixBase<OtherDerived> &other)
+{
+  EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(OtherDerived,int(Dim))
+  if(int(Mode)==int(Projective))
+    affine() += other * m_matrix.row(Dim);
+  else
+    translation() += other;
+  return *this;
+}
+
+/** Applies on the right the rotation represented by the rotation \a rotation
+  * to \c *this and returns a reference to \c *this.
+  *
+  * The template parameter \a RotationType is the type of the rotation which
+  * must be known by internal::toRotationMatrix<>.
+  *
+  * Natively supported types includes:
+  *   - any scalar (2D),
+  *   - a Dim x Dim matrix expression,
+  *   - a Quaternion (3D),
+  *   - a AngleAxis (3D)
+  *
+  * This mechanism is easily extendable to support user types such as Euler angles,
+  * or a pair of Quaternion for 4D rotations.
+  *
+  * \sa rotate(Scalar), class Quaternion, class AngleAxis, prerotate(RotationType)
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename RotationType>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::rotate(const RotationType& rotation)
+{
+  linearExt() *= internal::toRotationMatrix<Scalar,Dim>(rotation);
+  return *this;
+}
+
+/** Applies on the left the rotation represented by the rotation \a rotation
+  * to \c *this and returns a reference to \c *this.
+  *
+  * See rotate() for further details.
+  *
+  * \sa rotate()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename RotationType>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::prerotate(const RotationType& rotation)
+{
+  m_matrix.template block<Dim,HDim>(0,0) = internal::toRotationMatrix<Scalar,Dim>(rotation)
+                                         * m_matrix.template block<Dim,HDim>(0,0);
+  return *this;
+}
+
+/** Applies on the right the shear transformation represented
+  * by the vector \a other to \c *this and returns a reference to \c *this.
+  * \warning 2D only.
+  * \sa preshear()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::shear(const Scalar& sx, const Scalar& sy)
+{
+  EIGEN_STATIC_ASSERT(int(Dim)==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+  VectorType tmp = linear().col(0)*sy + linear().col(1);
+  linear() << linear().col(0) + linear().col(1)*sx, tmp;
+  return *this;
+}
+
+/** Applies on the left the shear transformation represented
+  * by the vector \a other to \c *this and returns a reference to \c *this.
+  * \warning 2D only.
+  * \sa shear()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::preshear(const Scalar& sx, const Scalar& sy)
+{
+  EIGEN_STATIC_ASSERT(int(Dim)==2, YOU_MADE_A_PROGRAMMING_MISTAKE)
+  EIGEN_STATIC_ASSERT(Mode!=int(Isometry), THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS)
+  m_matrix.template block<Dim,HDim>(0,0) = LinearMatrixType(1, sx, sy, 1) * m_matrix.template block<Dim,HDim>(0,0);
+  return *this;
+}
+
+/******************************************************
+*** Scaling, Translation and Rotation compatibility ***
+******************************************************/
+
+template<typename Scalar, int Dim, int Mode, int Options>
+inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const TranslationType& t)
+{
+  linear().setIdentity();
+  translation() = t.vector();
+  makeAffine();
+  return *this;
+}
+
+template<typename Scalar, int Dim, int Mode, int Options>
+inline Transform<Scalar,Dim,Mode,Options> Transform<Scalar,Dim,Mode,Options>::operator*(const TranslationType& t) const
+{
+  Transform res = *this;
+  res.translate(t.vector());
+  return res;
+}
+
+template<typename Scalar, int Dim, int Mode, int Options>
+inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const UniformScaling<Scalar>& s)
+{
+  m_matrix.setZero();
+  linear().diagonal().fill(s.factor());
+  makeAffine();
+  return *this;
+}
+
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename Derived>
+inline Transform<Scalar,Dim,Mode,Options>& Transform<Scalar,Dim,Mode,Options>::operator=(const RotationBase<Derived,Dim>& r)
+{
+  linear() = internal::toRotationMatrix<Scalar,Dim>(r);
+  translation().setZero();
+  makeAffine();
+  return *this;
+}
+
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename Derived>
+inline Transform<Scalar,Dim,Mode,Options> Transform<Scalar,Dim,Mode,Options>::operator*(const RotationBase<Derived,Dim>& r) const
+{
+  Transform res = *this;
+  res.rotate(r.derived());
+  return res;
+}
+
+/************************
+*** Special functions ***
+************************/
+
+/** \returns the rotation part of the transformation
+  *
+  *
+  * \svd_module
+  *
+  * \sa computeRotationScaling(), computeScalingRotation(), class SVD
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+const typename Transform<Scalar,Dim,Mode,Options>::LinearMatrixType
+Transform<Scalar,Dim,Mode,Options>::rotation() const
+{
+  LinearMatrixType result;
+  computeRotationScaling(&result, (LinearMatrixType*)0);
+  return result;
+}
+
+
+/** decomposes the linear part of the transformation as a product rotation x scaling, the scaling being
+  * not necessarily positive.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  *
+  *
+  * \svd_module
+  *
+  * \sa computeScalingRotation(), rotation(), class SVD
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename RotationMatrixType, typename ScalingMatrixType>
+void Transform<Scalar,Dim,Mode,Options>::computeRotationScaling(RotationMatrixType *rotation, ScalingMatrixType *scaling) const
+{
+  JacobiSVD<LinearMatrixType> svd(linear(), ComputeFullU | ComputeFullV);
+
+  Scalar x = (svd.matrixU() * svd.matrixV().adjoint()).determinant(); // so x has absolute value 1
+  VectorType sv(svd.singularValues());
+  sv.coeffRef(0) *= x;
+  if(scaling) scaling->lazyAssign(svd.matrixV() * sv.asDiagonal() * svd.matrixV().adjoint());
+  if(rotation)
+  {
+    LinearMatrixType m(svd.matrixU());
+    m.col(0) /= x;
+    rotation->lazyAssign(m * svd.matrixV().adjoint());
+  }
+}
+
+/** decomposes the linear part of the transformation as a product rotation x scaling, the scaling being
+  * not necessarily positive.
+  *
+  * If either pointer is zero, the corresponding computation is skipped.
+  *
+  *
+  *
+  * \svd_module
+  *
+  * \sa computeRotationScaling(), rotation(), class SVD
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename ScalingMatrixType, typename RotationMatrixType>
+void Transform<Scalar,Dim,Mode,Options>::computeScalingRotation(ScalingMatrixType *scaling, RotationMatrixType *rotation) const
+{
+  JacobiSVD<LinearMatrixType> svd(linear(), ComputeFullU | ComputeFullV);
+
+  Scalar x = (svd.matrixU() * svd.matrixV().adjoint()).determinant(); // so x has absolute value 1
+  VectorType sv(svd.singularValues());
+  sv.coeffRef(0) *= x;
+  if(scaling) scaling->lazyAssign(svd.matrixU() * sv.asDiagonal() * svd.matrixU().adjoint());
+  if(rotation)
+  {
+    LinearMatrixType m(svd.matrixU());
+    m.col(0) /= x;
+    rotation->lazyAssign(m * svd.matrixV().adjoint());
+  }
+}
+
+/** Convenient method to set \c *this from a position, orientation and scale
+  * of a 3D object.
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+template<typename PositionDerived, typename OrientationType, typename ScaleDerived>
+Transform<Scalar,Dim,Mode,Options>&
+Transform<Scalar,Dim,Mode,Options>::fromPositionOrientationScale(const MatrixBase<PositionDerived> &position,
+  const OrientationType& orientation, const MatrixBase<ScaleDerived> &scale)
+{
+  linear() = internal::toRotationMatrix<Scalar,Dim>(orientation);
+  linear() *= scale.asDiagonal();
+  translation() = position;
+  makeAffine();
+  return *this;
+}
+
+namespace internal {
+
+template<int Mode>
+struct transform_make_affine
+{
+  template<typename MatrixType>
+  static void run(MatrixType &mat)
+  {
+    static const int Dim = MatrixType::ColsAtCompileTime-1;
+    mat.template block<1,Dim>(Dim,0).setZero();
+    mat.coeffRef(Dim,Dim) = typename MatrixType::Scalar(1);
+  }
+};
+
+template<>
+struct transform_make_affine<AffineCompact>
+{
+  template<typename MatrixType> static void run(MatrixType &) { }
+};
+    
+// selector needed to avoid taking the inverse of a 3x4 matrix
+template<typename TransformType, int Mode=TransformType::Mode>
+struct projective_transform_inverse
+{
+  static inline void run(const TransformType&, TransformType&)
+  {}
+};
+
+template<typename TransformType>
+struct projective_transform_inverse<TransformType, Projective>
+{
+  static inline void run(const TransformType& m, TransformType& res)
+  {
+    res.matrix() = m.matrix().inverse();
+  }
+};
+
+} // end namespace internal
+
+
+/**
+  *
+  * \returns the inverse transformation according to some given knowledge
+  * on \c *this.
+  *
+  * \param hint allows to optimize the inversion process when the transformation
+  * is known to be not a general transformation (optional). The possible values are:
+  *  - #Projective if the transformation is not necessarily affine, i.e., if the
+  *    last row is not guaranteed to be [0 ... 0 1]
+  *  - #Affine if the last row can be assumed to be [0 ... 0 1]
+  *  - #Isometry if the transformation is only a concatenations of translations
+  *    and rotations.
+  *  The default is the template class parameter \c Mode.
+  *
+  * \warning unless \a traits is always set to NoShear or NoScaling, this function
+  * requires the generic inverse method of MatrixBase defined in the LU module. If
+  * you forget to include this module, then you will get hard to debug linking errors.
+  *
+  * \sa MatrixBase::inverse()
+  */
+template<typename Scalar, int Dim, int Mode, int Options>
+Transform<Scalar,Dim,Mode,Options>
+Transform<Scalar,Dim,Mode,Options>::inverse(TransformTraits hint) const
+{
+  Transform res;
+  if (hint == Projective)
+  {
+    internal::projective_transform_inverse<Transform>::run(*this, res);
+  }
+  else
+  {
+    if (hint == Isometry)
+    {
+      res.matrix().template topLeftCorner<Dim,Dim>() = linear().transpose();
+    }
+    else if(hint&Affine)
+    {
+      res.matrix().template topLeftCorner<Dim,Dim>() = linear().inverse();
+    }
+    else
+    {
+      eigen_assert(false && "Invalid transform traits in Transform::Inverse");
+    }
+    // translation and remaining parts
+    res.matrix().template topRightCorner<Dim,1>()
+      = - res.matrix().template topLeftCorner<Dim,Dim>() * translation();
+    res.makeAffine(); // we do need this, because in the beginning res is uninitialized
+  }
+  return res;
+}
+
+namespace internal {
+
+/*****************************************************
+*** Specializations of take affine part            ***
+*****************************************************/
+
+template<typename TransformType> struct transform_take_affine_part {
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef typename TransformType::AffinePart AffinePart;
+  typedef typename TransformType::ConstAffinePart ConstAffinePart;
+  static inline AffinePart run(MatrixType& m)
+  { return m.template block<TransformType::Dim,TransformType::HDim>(0,0); }
+  static inline ConstAffinePart run(const MatrixType& m)
+  { return m.template block<TransformType::Dim,TransformType::HDim>(0,0); }
+};
+
+template<typename Scalar, int Dim, int Options>
+struct transform_take_affine_part<Transform<Scalar,Dim,AffineCompact, Options> > {
+  typedef typename Transform<Scalar,Dim,AffineCompact,Options>::MatrixType MatrixType;
+  static inline MatrixType& run(MatrixType& m) { return m; }
+  static inline const MatrixType& run(const MatrixType& m) { return m; }
+};
+
+/*****************************************************
+*** Specializations of construct from matrix       ***
+*****************************************************/
+
+template<typename Other, int Mode, int Options, int Dim, int HDim>
+struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, Dim,Dim>
+{
+  static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
+  {
+    transform->linear() = other;
+    transform->translation().setZero();
+    transform->makeAffine();
+  }
+};
+
+template<typename Other, int Mode, int Options, int Dim, int HDim>
+struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, Dim,HDim>
+{
+  static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
+  {
+    transform->affine() = other;
+    transform->makeAffine();
+  }
+};
+
+template<typename Other, int Mode, int Options, int Dim, int HDim>
+struct transform_construct_from_matrix<Other, Mode,Options,Dim,HDim, HDim,HDim>
+{
+  static inline void run(Transform<typename Other::Scalar,Dim,Mode,Options> *transform, const Other& other)
+  { transform->matrix() = other; }
+};
+
+template<typename Other, int Options, int Dim, int HDim>
+struct transform_construct_from_matrix<Other, AffineCompact,Options,Dim,HDim, HDim,HDim>
+{
+  static inline void run(Transform<typename Other::Scalar,Dim,AffineCompact,Options> *transform, const Other& other)
+  { transform->matrix() = other.template block<Dim,HDim>(0,0); }
+};
+
+/**********************************************************
+***   Specializations of operator* with rhs EigenBase   ***
+**********************************************************/
+
+template<int LhsMode,int RhsMode>
+struct transform_product_result
+{
+  enum 
+  { 
+    Mode =
+      (LhsMode == (int)Projective    || RhsMode == (int)Projective    ) ? Projective :
+      (LhsMode == (int)Affine        || RhsMode == (int)Affine        ) ? Affine :
+      (LhsMode == (int)AffineCompact || RhsMode == (int)AffineCompact ) ? AffineCompact :
+      (LhsMode == (int)Isometry      || RhsMode == (int)Isometry      ) ? Isometry : Projective
+  };
+};
+
+template< typename TransformType, typename MatrixType >
+struct transform_right_product_impl< TransformType, MatrixType, 0 >
+{
+  typedef typename MatrixType::PlainObject ResultType;
+
+  static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const MatrixType& other)
+  {
+    return T.matrix() * other;
+  }
+};
+
+template< typename TransformType, typename MatrixType >
+struct transform_right_product_impl< TransformType, MatrixType, 1 >
+{
+  enum { 
+    Dim = TransformType::Dim, 
+    HDim = TransformType::HDim,
+    OtherRows = MatrixType::RowsAtCompileTime,
+    OtherCols = MatrixType::ColsAtCompileTime
+  };
+
+  typedef typename MatrixType::PlainObject ResultType;
+
+  static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const MatrixType& other)
+  {
+    EIGEN_STATIC_ASSERT(OtherRows==HDim, YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES);
+
+    typedef Block<ResultType, Dim, OtherCols, int(MatrixType::RowsAtCompileTime)==Dim> TopLeftLhs;
+
+    ResultType res(other.rows(),other.cols());
+    TopLeftLhs(res, 0, 0, Dim, other.cols()).noalias() = T.affine() * other;
+    res.row(OtherRows-1) = other.row(OtherRows-1);
+    
+    return res;
+  }
+};
+
+template< typename TransformType, typename MatrixType >
+struct transform_right_product_impl< TransformType, MatrixType, 2 >
+{
+  enum { 
+    Dim = TransformType::Dim, 
+    HDim = TransformType::HDim,
+    OtherRows = MatrixType::RowsAtCompileTime,
+    OtherCols = MatrixType::ColsAtCompileTime
+  };
+
+  typedef typename MatrixType::PlainObject ResultType;
+
+  static EIGEN_STRONG_INLINE ResultType run(const TransformType& T, const MatrixType& other)
+  {
+    EIGEN_STATIC_ASSERT(OtherRows==Dim, YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES);
+
+    typedef Block<ResultType, Dim, OtherCols, true> TopLeftLhs;
+    ResultType res(Replicate<typename TransformType::ConstTranslationPart, 1, OtherCols>(T.translation(),1,other.cols()));
+    TopLeftLhs(res, 0, 0, Dim, other.cols()).noalias() += T.linear() * other;
+
+    return res;
+  }
+};
+
+/**********************************************************
+***   Specializations of operator* with lhs EigenBase   ***
+**********************************************************/
+
+// generic HDim x HDim matrix * T => Projective
+template<typename Other,int Mode, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, HDim,HDim>
+{
+  typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef Transform<typename Other::Scalar,Dim,Projective,Options> ResultType;
+  static ResultType run(const Other& other,const TransformType& tr)
+  { return ResultType(other * tr.matrix()); }
+};
+
+// generic HDim x HDim matrix * AffineCompact => Projective
+template<typename Other, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,AffineCompact,Options,Dim,HDim, HDim,HDim>
+{
+  typedef Transform<typename Other::Scalar,Dim,AffineCompact,Options> TransformType;
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef Transform<typename Other::Scalar,Dim,Projective,Options> ResultType;
+  static ResultType run(const Other& other,const TransformType& tr)
+  {
+    ResultType res;
+    res.matrix().noalias() = other.template block<HDim,Dim>(0,0) * tr.matrix();
+    res.matrix().col(Dim) += other.col(Dim);
+    return res;
+  }
+};
+
+// affine matrix * T
+template<typename Other,int Mode, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, Dim,HDim>
+{
+  typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef TransformType ResultType;
+  static ResultType run(const Other& other,const TransformType& tr)
+  {
+    ResultType res;
+    res.affine().noalias() = other * tr.matrix();
+    res.matrix().row(Dim) = tr.matrix().row(Dim);
+    return res;
+  }
+};
+
+// affine matrix * AffineCompact
+template<typename Other, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,AffineCompact,Options,Dim,HDim, Dim,HDim>
+{
+  typedef Transform<typename Other::Scalar,Dim,AffineCompact,Options> TransformType;
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef TransformType ResultType;
+  static ResultType run(const Other& other,const TransformType& tr)
+  {
+    ResultType res;
+    res.matrix().noalias() = other.template block<Dim,Dim>(0,0) * tr.matrix();
+    res.translation() += other.col(Dim);
+    return res;
+  }
+};
+
+// linear matrix * T
+template<typename Other,int Mode, int Options, int Dim, int HDim>
+struct transform_left_product_impl<Other,Mode,Options,Dim,HDim, Dim,Dim>
+{
+  typedef Transform<typename Other::Scalar,Dim,Mode,Options> TransformType;
+  typedef typename TransformType::MatrixType MatrixType;
+  typedef TransformType ResultType;
+  static ResultType run(const Other& other, const TransformType& tr)
+  {
+    TransformType res;
+    if(Mode!=int(AffineCompact))
+      res.matrix().row(Dim) = tr.matrix().row(Dim);
+    res.matrix().template topRows<Dim>().noalias()
+      = other * tr.matrix().template topRows<Dim>();
+    return res;
+  }
+};
+
+/**********************************************************
+*** Specializations of operator* with another Transform ***
+**********************************************************/
+
+template<typename Scalar, int Dim, int LhsMode, int LhsOptions, int RhsMode, int RhsOptions>
+struct transform_transform_product_impl<Transform<Scalar,Dim,LhsMode,LhsOptions>,Transform<Scalar,Dim,RhsMode,RhsOptions>,false >
+{
+  enum { ResultMode = transform_product_result<LhsMode,RhsMode>::Mode };
+  typedef Transform<Scalar,Dim,LhsMode,LhsOptions> Lhs;
+  typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
+  typedef Transform<Scalar,Dim,ResultMode,LhsOptions> ResultType;
+  static ResultType run(const Lhs& lhs, const Rhs& rhs)
+  {
+    ResultType res;
+    res.linear() = lhs.linear() * rhs.linear();
+    res.translation() = lhs.linear() * rhs.translation() + lhs.translation();
+    res.makeAffine();
+    return res;
+  }
+};
+
+template<typename Scalar, int Dim, int LhsMode, int LhsOptions, int RhsMode, int RhsOptions>
+struct transform_transform_product_impl<Transform<Scalar,Dim,LhsMode,LhsOptions>,Transform<Scalar,Dim,RhsMode,RhsOptions>,true >
+{
+  typedef Transform<Scalar,Dim,LhsMode,LhsOptions> Lhs;
+  typedef Transform<Scalar,Dim,RhsMode,RhsOptions> Rhs;
+  typedef Transform<Scalar,Dim,Projective> ResultType;
+  static ResultType run(const Lhs& lhs, const Rhs& rhs)
+  {
+    return ResultType( lhs.matrix() * rhs.matrix() );
+  }
+};
+
+template<typename Scalar, int Dim, int LhsOptions, int RhsOptions>
+struct transform_transform_product_impl<Transform<Scalar,Dim,AffineCompact,LhsOptions>,Transform<Scalar,Dim,Projective,RhsOptions>,true >
+{
+  typedef Transform<Scalar,Dim,AffineCompact,LhsOptions> Lhs;
+  typedef Transform<Scalar,Dim,Projective,RhsOptions> Rhs;
+  typedef Transform<Scalar,Dim,Projective> ResultType;
+  static ResultType run(const Lhs& lhs, const Rhs& rhs)
+  {
+    ResultType res;
+    res.matrix().template topRows<Dim>() = lhs.matrix() * rhs.matrix();
+    res.matrix().row(Dim) = rhs.matrix().row(Dim);
+    return res;
+  }
+};
+
+template<typename Scalar, int Dim, int LhsOptions, int RhsOptions>
+struct transform_transform_product_impl<Transform<Scalar,Dim,Projective,LhsOptions>,Transform<Scalar,Dim,AffineCompact,RhsOptions>,true >
+{
+  typedef Transform<Scalar,Dim,Projective,LhsOptions> Lhs;
+  typedef Transform<Scalar,Dim,AffineCompact,RhsOptions> Rhs;
+  typedef Transform<Scalar,Dim,Projective> ResultType;
+  static ResultType run(const Lhs& lhs, const Rhs& rhs)
+  {
+    ResultType res(lhs.matrix().template leftCols<Dim>() * rhs.matrix());
+    res.matrix().col(Dim) += lhs.matrix().col(Dim);
+    return res;
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_TRANSFORM_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/AlignedBox.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/AlignedBox.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/Geometry/AlignedBox.h	(revision 2476)
@@ -0,0 +1,392 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ALIGNEDBOX_H
+#define EIGEN_ALIGNEDBOX_H
+
+namespace Eigen { 
+
+/** \geometry_module \ingroup Geometry_Module
+  *
+  *
+  * \class AlignedBox
+  *
+  * \brief An axis aligned box
+  *
+  * \tparam _Scalar the type of the scalar coefficients
+  * \tparam _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
+  *
+  * This class represents an axis aligned box as a pair of the minimal and maximal corners.
+  * \warning The result of most methods is undefined when applied to an empty box. You can check for empty boxes using isEmpty().
+  * \sa alignedboxtypedefs
+  */
+template <typename _Scalar, int _AmbientDim>
+class AlignedBox
+{
+public:
+EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
+  enum { AmbientDimAtCompileTime = _AmbientDim };
+  typedef _Scalar                                   Scalar;
+  typedef NumTraits<Scalar>                         ScalarTraits;
+  typedef DenseIndex                                Index;
+  typedef typename ScalarTraits::Real               RealScalar;
+  typedef typename ScalarTraits::NonInteger      NonInteger;
+  typedef Matrix<Scalar,AmbientDimAtCompileTime,1>  VectorType;
+
+  /** Define constants to name the corners of a 1D, 2D or 3D axis aligned bounding box */
+  enum CornerType
+  {
+    /** 1D names @{ */
+    Min=0, Max=1,
+    /** @} */
+
+    /** Identifier for 2D corner @{ */
+    BottomLeft=0, BottomRight=1,
+    TopLeft=2, TopRight=3,
+    /** @} */
+
+    /** Identifier for 3D corner  @{ */
+    BottomLeftFloor=0, BottomRightFloor=1,
+    TopLeftFloor=2, TopRightFloor=3,
+    BottomLeftCeil=4, BottomRightCeil=5,
+    TopLeftCeil=6, TopRightCeil=7
+    /** @} */
+  };
+
+
+  /** Default constructor initializing a null box. */
+  inline AlignedBox()
+  { if (AmbientDimAtCompileTime!=Dynamic) setEmpty(); }
+
+  /** Constructs a null box with \a _dim the dimension of the ambient space. */
+  inline explicit AlignedBox(Index _dim) : m_min(_dim), m_max(_dim)
+  { setEmpty(); }
+
+  /** Constructs a box with extremities \a _min and \a _max.
+   * \warning If either component of \a _min is larger than the same component of \a _max, the constructed box is empty. */
+  template<typename OtherVectorType1, typename OtherVectorType2>
+  inline AlignedBox(const OtherVectorType1& _min, const OtherVectorType2& _max) : m_min(_min), m_max(_max) {}
+
+  /** Constructs a box containing a single point \a p. */
+  template<typename Derived>
+  inline explicit AlignedBox(const MatrixBase<Derived>& p) : m_min(p), m_max(m_min)
+  { }
+
+  ~AlignedBox() {}
+
+  /** \returns the dimension in which the box holds */
+  inline Index dim() const { return AmbientDimAtCompileTime==Dynamic ? m_min.size() : Index(AmbientDimAtCompileTime); }
+
+  /** \deprecated use isEmpty() */
+  inline bool isNull() const { return isEmpty(); }
+
+  /** \deprecated use setEmpty() */
+  inline void setNull() { setEmpty(); }
+
+  /** \returns true if the box is empty.
+   * \sa setEmpty */
+  inline bool isEmpty() const { return (m_min.array() > m_max.array()).any(); }
+
+  /** Makes \c *this an empty box.
+   * \sa isEmpty */
+  inline void setEmpty()
+  {
+    m_min.setConstant( ScalarTraits::highest() );
+    m_max.setConstant( ScalarTraits::lowest() );
+  }
+
+  /** \returns the minimal corner */
+  inline const VectorType& (min)() const { return m_min; }
+  /** \returns a non const reference to the minimal corner */
+  inline VectorType& (min)() { return m_min; }
+  /** \returns the maximal corner */
+  inline const VectorType& (max)() const { return m_max; }
+  /** \returns a non const reference to the maximal corner */
+  inline VectorType& (max)() { return m_max; }
+
+  /** \returns the center of the box */
+  inline const CwiseUnaryOp<internal::scalar_quotient1_op<Scalar>,
+                            const CwiseBinaryOp<internal::scalar_sum_op<Scalar>, const VectorType, const VectorType> >
+  center() const
+  { return (m_min+m_max)/2; }
+
+  /** \returns the lengths of the sides of the bounding box.
+    * Note that this function does not get the same
+    * result for integral or floating scalar types: see
+    */
+  inline const CwiseBinaryOp< internal::scalar_difference_op<Scalar>, const VectorType, const VectorType> sizes() const
+  { return m_max - m_min; }
+
+  /** \returns the volume of the bounding box */
+  inline Scalar volume() const
+  { return sizes().prod(); }
+
+  /** \returns an expression for the bounding box diagonal vector
+    * if the length of the diagonal is needed: diagonal().norm()
+    * will provide it.
+    */
+  inline CwiseBinaryOp< internal::scalar_difference_op<Scalar>, const VectorType, const VectorType> diagonal() const
+  { return sizes(); }
+
+  /** \returns the vertex of the bounding box at the corner defined by
+    * the corner-id corner. It works only for a 1D, 2D or 3D bounding box.
+    * For 1D bounding boxes corners are named by 2 enum constants:
+    * BottomLeft and BottomRight.
+    * For 2D bounding boxes, corners are named by 4 enum constants:
+    * BottomLeft, BottomRight, TopLeft, TopRight.
+    * For 3D bounding boxes, the following names are added:
+    * BottomLeftCeil, BottomRightCeil, TopLeftCeil, TopRightCeil.
+    */
+  inline VectorType corner(CornerType corner) const
+  {
+    EIGEN_STATIC_ASSERT(_AmbientDim <= 3, THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE);
+
+    VectorType res;
+
+    Index mult = 1;
+    for(Index d=0; d<dim(); ++d)
+    {
+      if( mult & corner ) res[d] = m_max[d];
+      else                res[d] = m_min[d];
+      mult *= 2;
+    }
+    return res;
+  }
+
+  /** \returns a random point inside the bounding box sampled with
+   * a uniform distribution */
+  inline VectorType sample() const
+  {
+    VectorType r(dim());
+    for(Index d=0; d<dim(); ++d)
+    {
+      if(!ScalarTraits::IsInteger)
+      {
+        r[d] = m_min[d] + (m_max[d]-m_min[d])
+             * internal::random<Scalar>(Scalar(0), Scalar(1));
+      }
+      else
+        r[d] = internal::random(m_min[d], m_max[d]);
+    }
+    return r;
+  }
+
+  /** \returns true if the point \a p is inside the box \c *this. */
+  template<typename Derived>
+  inline bool contains(const MatrixBase<Derived>& p) const
+  {
+    typename internal::nested<Derived,2>::type p_n(p.derived());
+    return (m_min.array()<=p_n.array()).all() && (p_n.array()<=m_max.array()).all();
+  }
+
+  /** \returns true if the box \a b is entirely inside the box \c *this. */
+  inline bool contains(const AlignedBox& b) const
+  { return (m_min.array()<=(b.min)().array()).all() && ((b.max)().array()<=m_max.array()).all(); }
+
+  /** \returns true if the box \a b is intersecting the box \c *this.
+   * \sa intersection, clamp */
+  inline bool intersects(const AlignedBox& b) const
+  { return (m_min.array()<=(b.max)().array()).all() && ((b.min)().array()<=m_max.array()).all(); }
+
+  /** Extends \c *this such that it contains the point \a p and returns a reference to \c *this.
+   * \sa extend(const AlignedBox&) */
+  template<typename Derived>
+  inline AlignedBox& extend(const MatrixBase<Derived>& p)
+  {
+    typename internal::nested<Derived,2>::type p_n(p.derived());
+    m_min = m_min.cwiseMin(p_n);
+    m_max = m_max.cwiseMax(p_n);
+    return *this;
+  }
+
+  /** Extends \c *this such that it contains the box \a b and returns a reference to \c *this.
+   * \sa merged, extend(const MatrixBase&) */
+  inline AlignedBox& extend(const AlignedBox& b)
+  {
+    m_min = m_min.cwiseMin(b.m_min);
+    m_max = m_max.cwiseMax(b.m_max);
+    return *this;
+  }
+
+  /** Clamps \c *this by the box \a b and returns a reference to \c *this.
+   * \note If the boxes don't intersect, the resulting box is empty.
+   * \sa intersection(), intersects() */
+  inline AlignedBox& clamp(const AlignedBox& b)
+  {
+    m_min = m_min.cwiseMax(b.m_min);
+    m_max = m_max.cwiseMin(b.m_max);
+    return *this;
+  }
+
+  /** Returns an AlignedBox that is the intersection of \a b and \c *this
+   * \note If the boxes don't intersect, the resulting box is empty.
+   * \sa intersects(), clamp, contains()  */
+  inline AlignedBox intersection(const AlignedBox& b) const
+  {return AlignedBox(m_min.cwiseMax(b.m_min), m_max.cwiseMin(b.m_max)); }
+
+  /** Returns an AlignedBox that is the union of \a b and \c *this.
+   * \note Merging with an empty box may result in a box bigger than \c *this. 
+   * \sa extend(const AlignedBox&) */
+  inline AlignedBox merged(const AlignedBox& b) const
+  { return AlignedBox(m_min.cwiseMin(b.m_min), m_max.cwiseMax(b.m_max)); }
+
+  /** Translate \c *this by the vector \a t and returns a reference to \c *this. */
+  template<typename Derived>
+  inline AlignedBox& translate(const MatrixBase<Derived>& a_t)
+  {
+    const typename internal::nested<Derived,2>::type t(a_t.derived());
+    m_min += t;
+    m_max += t;
+    return *this;
+  }
+
+  /** \returns the squared distance between the point \a p and the box \c *this,
+    * and zero if \a p is inside the box.
+    * \sa exteriorDistance(const MatrixBase&), squaredExteriorDistance(const AlignedBox&)
+    */
+  template<typename Derived>
+  inline Scalar squaredExteriorDistance(const MatrixBase<Derived>& p) const;
+
+  /** \returns the squared distance between the boxes \a b and \c *this,
+    * and zero if the boxes intersect.
+    * \sa exteriorDistance(const AlignedBox&), squaredExteriorDistance(const MatrixBase&)
+    */
+  inline Scalar squaredExteriorDistance(const AlignedBox& b) const;
+
+  /** \returns the distance between the point \a p and the box \c *this,
+    * and zero if \a p is inside the box.
+    * \sa squaredExteriorDistance(const MatrixBase&), exteriorDistance(const AlignedBox&)
+    */
+  template<typename Derived>
+  inline NonInteger exteriorDistance(const MatrixBase<Derived>& p) const
+  { using std::sqrt; return sqrt(NonInteger(squaredExteriorDistance(p))); }
+
+  /** \returns the distance between the boxes \a b and \c *this,
+    * and zero if the boxes intersect.
+    * \sa squaredExteriorDistance(const AlignedBox&), exteriorDistance(const MatrixBase&)
+    */
+  inline NonInteger exteriorDistance(const AlignedBox& b) const
+  { using std::sqrt; return sqrt(NonInteger(squaredExteriorDistance(b))); }
+
+  /** \returns \c *this with scalar type casted to \a NewScalarType
+    *
+    * Note that if \a NewScalarType is equal to the current scalar type of \c *this
+    * then this function smartly returns a const reference to \c *this.
+    */
+  template<typename NewScalarType>
+  inline typename internal::cast_return_type<AlignedBox,
+           AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
+  {
+    return typename internal::cast_return_type<AlignedBox,
+                    AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
+  }
+
+  /** Copy constructor with scalar type conversion */
+  template<typename OtherScalarType>
+  inline explicit AlignedBox(const AlignedBox<OtherScalarType,AmbientDimAtCompileTime>& other)
+  {
+    m_min = (other.min)().template cast<Scalar>();
+    m_max = (other.max)().template cast<Scalar>();
+  }
+
+  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
+    * determined by \a prec.
+    *
+    * \sa MatrixBase::isApprox() */
+  bool isApprox(const AlignedBox& other, const RealScalar& prec = ScalarTraits::dummy_precision()) const
+  { return m_min.isApprox(other.m_min, prec) && m_max.isApprox(other.m_max, prec); }
+
+protected:
+
+  VectorType m_min, m_max;
+};
+
+
+
+template<typename Scalar,int AmbientDim>
+template<typename Derived>
+inline Scalar AlignedBox<Scalar,AmbientDim>::squaredExteriorDistance(const MatrixBase<Derived>& a_p) const
+{
+  typename internal::nested<Derived,2*AmbientDim>::type p(a_p.derived());
+  Scalar dist2(0);
+  Scalar aux;
+  for (Index k=0; k<dim(); ++k)
+  {
+    if( m_min[k] > p[k] )
+    {
+      aux = m_min[k] - p[k];
+      dist2 += aux*aux;
+    }
+    else if( p[k] > m_max[k] )
+    {
+      aux = p[k] - m_max[k];
+      dist2 += aux*aux;
+    }
+  }
+  return dist2;
+}
+
+template<typename Scalar,int AmbientDim>
+inline Scalar AlignedBox<Scalar,AmbientDim>::squaredExteriorDistance(const AlignedBox& b) const
+{
+  Scalar dist2(0);
+  Scalar aux;
+  for (Index k=0; k<dim(); ++k)
+  {
+    if( m_min[k] > b.m_max[k] )
+    {
+      aux = m_min[k] - b.m_max[k];
+      dist2 += aux*aux;
+    }
+    else if( b.m_min[k] > m_max[k] )
+    {
+      aux = b.m_min[k] - m_max[k];
+      dist2 += aux*aux;
+    }
+  }
+  return dist2;
+}
+
+/** \defgroup alignedboxtypedefs Global aligned box typedefs
+  *
+  * \ingroup Geometry_Module
+  *
+  * Eigen defines several typedef shortcuts for most common aligned box types.
+  *
+  * The general patterns are the following:
+  *
+  * \c AlignedBoxSizeType where \c Size can be \c 1, \c 2,\c 3,\c 4 for fixed size boxes or \c X for dynamic size,
+  * and where \c Type can be \c i for integer, \c f for float, \c d for double.
+  *
+  * For example, \c AlignedBox3d is a fixed-size 3x3 aligned box type of doubles, and \c AlignedBoxXf is a dynamic-size aligned box of floats.
+  *
+  * \sa class AlignedBox
+  */
+
+#define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix)    \
+/** \ingroup alignedboxtypedefs */                                 \
+typedef AlignedBox<Type, Size>   AlignedBox##SizeSuffix##TypeSuffix;
+
+#define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 1, 1) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 2, 2) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 3, 3) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 4, 4) \
+EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Dynamic, X)
+
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(int,                  i)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(float,                f)
+EIGEN_MAKE_TYPEDEFS_ALL_SIZES(double,               d)
+
+#undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES
+#undef EIGEN_MAKE_TYPEDEFS
+
+} // end namespace Eigen
+
+#endif // EIGEN_ALIGNEDBOX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SuperLUSupport/SuperLUSupport.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SuperLUSupport/SuperLUSupport.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SuperLUSupport/SuperLUSupport.h	(revision 2476)
@@ -0,0 +1,1026 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SUPERLUSUPPORT_H
+#define EIGEN_SUPERLUSUPPORT_H
+
+namespace Eigen { 
+
+#define DECL_GSSVX(PREFIX,FLOATTYPE,KEYTYPE)		\
+    extern "C" {                                                                                          \
+      typedef struct { FLOATTYPE for_lu; FLOATTYPE total_needed; int expansions; } PREFIX##mem_usage_t;   \
+      extern void PREFIX##gssvx(superlu_options_t *, SuperMatrix *, int *, int *, int *,                  \
+                                char *, FLOATTYPE *, FLOATTYPE *, SuperMatrix *, SuperMatrix *,           \
+                                void *, int, SuperMatrix *, SuperMatrix *,                                \
+                                FLOATTYPE *, FLOATTYPE *, FLOATTYPE *, FLOATTYPE *,                       \
+                                PREFIX##mem_usage_t *, SuperLUStat_t *, int *);                           \
+    }                                                                                                     \
+    inline float SuperLU_gssvx(superlu_options_t *options, SuperMatrix *A,                                \
+         int *perm_c, int *perm_r, int *etree, char *equed,                                               \
+         FLOATTYPE *R, FLOATTYPE *C, SuperMatrix *L,                                                      \
+         SuperMatrix *U, void *work, int lwork,                                                           \
+         SuperMatrix *B, SuperMatrix *X,                                                                  \
+         FLOATTYPE *recip_pivot_growth,                                                                   \
+         FLOATTYPE *rcond, FLOATTYPE *ferr, FLOATTYPE *berr,                                              \
+         SuperLUStat_t *stats, int *info, KEYTYPE) {                                                      \
+    PREFIX##mem_usage_t mem_usage;                                                                        \
+    PREFIX##gssvx(options, A, perm_c, perm_r, etree, equed, R, C, L,                                      \
+         U, work, lwork, B, X, recip_pivot_growth, rcond,                                                 \
+         ferr, berr, &mem_usage, stats, info);                                                            \
+    return mem_usage.for_lu; /* bytes used by the factor storage */                                       \
+  }
+
+DECL_GSSVX(s,float,float)
+DECL_GSSVX(c,float,std::complex<float>)
+DECL_GSSVX(d,double,double)
+DECL_GSSVX(z,double,std::complex<double>)
+
+#ifdef MILU_ALPHA
+#define EIGEN_SUPERLU_HAS_ILU
+#endif
+
+#ifdef EIGEN_SUPERLU_HAS_ILU
+
+// similarly for the incomplete factorization using gsisx
+#define DECL_GSISX(PREFIX,FLOATTYPE,KEYTYPE)                                                    \
+    extern "C" {                                                                                \
+      extern void PREFIX##gsisx(superlu_options_t *, SuperMatrix *, int *, int *, int *,        \
+                         char *, FLOATTYPE *, FLOATTYPE *, SuperMatrix *, SuperMatrix *,        \
+                         void *, int, SuperMatrix *, SuperMatrix *, FLOATTYPE *, FLOATTYPE *,   \
+                         PREFIX##mem_usage_t *, SuperLUStat_t *, int *);                        \
+    }                                                                                           \
+    inline float SuperLU_gsisx(superlu_options_t *options, SuperMatrix *A,                      \
+         int *perm_c, int *perm_r, int *etree, char *equed,                                     \
+         FLOATTYPE *R, FLOATTYPE *C, SuperMatrix *L,                                            \
+         SuperMatrix *U, void *work, int lwork,                                                 \
+         SuperMatrix *B, SuperMatrix *X,                                                        \
+         FLOATTYPE *recip_pivot_growth,                                                         \
+         FLOATTYPE *rcond,                                                                      \
+         SuperLUStat_t *stats, int *info, KEYTYPE) {                                            \
+    PREFIX##mem_usage_t mem_usage;                                                              \
+    PREFIX##gsisx(options, A, perm_c, perm_r, etree, equed, R, C, L,                            \
+         U, work, lwork, B, X, recip_pivot_growth, rcond,                                       \
+         &mem_usage, stats, info);                                                              \
+    return mem_usage.for_lu; /* bytes used by the factor storage */                             \
+  }
+
+DECL_GSISX(s,float,float)
+DECL_GSISX(c,float,std::complex<float>)
+DECL_GSISX(d,double,double)
+DECL_GSISX(z,double,std::complex<double>)
+
+#endif
+
+template<typename MatrixType>
+struct SluMatrixMapHelper;
+
+/** \internal
+  *
+  * A wrapper class for SuperLU matrices. It supports only compressed sparse matrices
+  * and dense matrices. Supernodal and other fancy format are not supported by this wrapper.
+  *
+  * This wrapper class mainly aims to avoids the need of dynamic allocation of the storage structure.
+  */
+struct SluMatrix : SuperMatrix
+{
+  SluMatrix()
+  {
+    Store = &storage;
+  }
+
+  SluMatrix(const SluMatrix& other)
+    : SuperMatrix(other)
+  {
+    Store = &storage;
+    storage = other.storage;
+  }
+
+  SluMatrix& operator=(const SluMatrix& other)
+  {
+    SuperMatrix::operator=(static_cast<const SuperMatrix&>(other));
+    Store = &storage;
+    storage = other.storage;
+    return *this;
+  }
+
+  struct
+  {
+    union {int nnz;int lda;};
+    void *values;
+    int *innerInd;
+    int *outerInd;
+  } storage;
+
+  void setStorageType(Stype_t t)
+  {
+    Stype = t;
+    if (t==SLU_NC || t==SLU_NR || t==SLU_DN)
+      Store = &storage;
+    else
+    {
+      eigen_assert(false && "storage type not supported");
+      Store = 0;
+    }
+  }
+
+  template<typename Scalar>
+  void setScalarType()
+  {
+    if (internal::is_same<Scalar,float>::value)
+      Dtype = SLU_S;
+    else if (internal::is_same<Scalar,double>::value)
+      Dtype = SLU_D;
+    else if (internal::is_same<Scalar,std::complex<float> >::value)
+      Dtype = SLU_C;
+    else if (internal::is_same<Scalar,std::complex<double> >::value)
+      Dtype = SLU_Z;
+    else
+    {
+      eigen_assert(false && "Scalar type not supported by SuperLU");
+    }
+  }
+
+  template<typename MatrixType>
+  static SluMatrix Map(MatrixBase<MatrixType>& _mat)
+  {
+    MatrixType& mat(_mat.derived());
+    eigen_assert( ((MatrixType::Flags&RowMajorBit)!=RowMajorBit) && "row-major dense matrices are not supported by SuperLU");
+    SluMatrix res;
+    res.setStorageType(SLU_DN);
+    res.setScalarType<typename MatrixType::Scalar>();
+    res.Mtype     = SLU_GE;
+
+    res.nrow      = mat.rows();
+    res.ncol      = mat.cols();
+
+    res.storage.lda       = MatrixType::IsVectorAtCompileTime ? mat.size() : mat.outerStride();
+    res.storage.values    = (void*)(mat.data());
+    return res;
+  }
+
+  template<typename MatrixType>
+  static SluMatrix Map(SparseMatrixBase<MatrixType>& mat)
+  {
+    SluMatrix res;
+    if ((MatrixType::Flags&RowMajorBit)==RowMajorBit)
+    {
+      res.setStorageType(SLU_NR);
+      res.nrow      = mat.cols();
+      res.ncol      = mat.rows();
+    }
+    else
+    {
+      res.setStorageType(SLU_NC);
+      res.nrow      = mat.rows();
+      res.ncol      = mat.cols();
+    }
+
+    res.Mtype       = SLU_GE;
+
+    res.storage.nnz       = mat.nonZeros();
+    res.storage.values    = mat.derived().valuePtr();
+    res.storage.innerInd  = mat.derived().innerIndexPtr();
+    res.storage.outerInd  = mat.derived().outerIndexPtr();
+
+    res.setScalarType<typename MatrixType::Scalar>();
+
+    // FIXME the following is not very accurate
+    if (MatrixType::Flags & Upper)
+      res.Mtype = SLU_TRU;
+    if (MatrixType::Flags & Lower)
+      res.Mtype = SLU_TRL;
+
+    eigen_assert(((MatrixType::Flags & SelfAdjoint)==0) && "SelfAdjoint matrix shape not supported by SuperLU");
+
+    return res;
+  }
+};
+
+template<typename Scalar, int Rows, int Cols, int Options, int MRows, int MCols>
+struct SluMatrixMapHelper<Matrix<Scalar,Rows,Cols,Options,MRows,MCols> >
+{
+  typedef Matrix<Scalar,Rows,Cols,Options,MRows,MCols> MatrixType;
+  static void run(MatrixType& mat, SluMatrix& res)
+  {
+    eigen_assert( ((Options&RowMajor)!=RowMajor) && "row-major dense matrices is not supported by SuperLU");
+    res.setStorageType(SLU_DN);
+    res.setScalarType<Scalar>();
+    res.Mtype     = SLU_GE;
+
+    res.nrow      = mat.rows();
+    res.ncol      = mat.cols();
+
+    res.storage.lda       = mat.outerStride();
+    res.storage.values    = mat.data();
+  }
+};
+
+template<typename Derived>
+struct SluMatrixMapHelper<SparseMatrixBase<Derived> >
+{
+  typedef Derived MatrixType;
+  static void run(MatrixType& mat, SluMatrix& res)
+  {
+    if ((MatrixType::Flags&RowMajorBit)==RowMajorBit)
+    {
+      res.setStorageType(SLU_NR);
+      res.nrow      = mat.cols();
+      res.ncol      = mat.rows();
+    }
+    else
+    {
+      res.setStorageType(SLU_NC);
+      res.nrow      = mat.rows();
+      res.ncol      = mat.cols();
+    }
+
+    res.Mtype       = SLU_GE;
+
+    res.storage.nnz       = mat.nonZeros();
+    res.storage.values    = mat.valuePtr();
+    res.storage.innerInd  = mat.innerIndexPtr();
+    res.storage.outerInd  = mat.outerIndexPtr();
+
+    res.setScalarType<typename MatrixType::Scalar>();
+
+    // FIXME the following is not very accurate
+    if (MatrixType::Flags & Upper)
+      res.Mtype = SLU_TRU;
+    if (MatrixType::Flags & Lower)
+      res.Mtype = SLU_TRL;
+
+    eigen_assert(((MatrixType::Flags & SelfAdjoint)==0) && "SelfAdjoint matrix shape not supported by SuperLU");
+  }
+};
+
+namespace internal {
+
+template<typename MatrixType>
+SluMatrix asSluMatrix(MatrixType& mat)
+{
+  return SluMatrix::Map(mat);
+}
+
+/** View a Super LU matrix as an Eigen expression */
+template<typename Scalar, int Flags, typename Index>
+MappedSparseMatrix<Scalar,Flags,Index> map_superlu(SluMatrix& sluMat)
+{
+  eigen_assert((Flags&RowMajor)==RowMajor && sluMat.Stype == SLU_NR
+         || (Flags&ColMajor)==ColMajor && sluMat.Stype == SLU_NC);
+
+  Index outerSize = (Flags&RowMajor)==RowMajor ? sluMat.ncol : sluMat.nrow;
+
+  return MappedSparseMatrix<Scalar,Flags,Index>(
+    sluMat.nrow, sluMat.ncol, sluMat.storage.outerInd[outerSize],
+    sluMat.storage.outerInd, sluMat.storage.innerInd, reinterpret_cast<Scalar*>(sluMat.storage.values) );
+}
+
+} // end namespace internal
+
+/** \ingroup SuperLUSupport_Module
+  * \class SuperLUBase
+  * \brief The base class for the direct and incomplete LU factorization of SuperLU
+  */
+template<typename _MatrixType, typename Derived>
+class SuperLUBase : internal::noncopyable
+{
+  public:
+    typedef _MatrixType MatrixType;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Scalar,Dynamic,1> Vector;
+    typedef Matrix<int, 1, MatrixType::ColsAtCompileTime> IntRowVectorType;
+    typedef Matrix<int, MatrixType::RowsAtCompileTime, 1> IntColVectorType;    
+    typedef SparseMatrix<Scalar> LUMatrixType;
+
+  public:
+
+    SuperLUBase() {}
+
+    ~SuperLUBase()
+    {
+      clearFactors();
+    }
+    
+    Derived& derived() { return *static_cast<Derived*>(this); }
+    const Derived& derived() const { return *static_cast<const Derived*>(this); }
+    
+    inline Index rows() const { return m_matrix.rows(); }
+    inline Index cols() const { return m_matrix.cols(); }
+    
+    /** \returns a reference to the Super LU option object to configure the  Super LU algorithms. */
+    inline superlu_options_t& options() { return m_sluOptions; }
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+
+    /** Computes the sparse Cholesky decomposition of \a matrix */
+    void compute(const MatrixType& matrix)
+    {
+      derived().analyzePattern(matrix);
+      derived().factorize(matrix);
+    }
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<SuperLUBase, Rhs> solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "SuperLU is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "SuperLU::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<SuperLUBase, Rhs>(*this, b.derived());
+    }
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<SuperLUBase, Rhs> solve(const SparseMatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "SuperLU is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "SuperLU::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::sparse_solve_retval<SuperLUBase, Rhs>(*this, b.derived());
+    }
+    
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      * 
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& /*matrix*/)
+    {
+      m_isInitialized = true;
+      m_info = Success;
+      m_analysisIsOk = true;
+      m_factorizationIsOk = false;
+    }
+    
+    template<typename Stream>
+    void dumpMemory(Stream& /*s*/)
+    {}
+    
+  protected:
+    
+    void initFactorization(const MatrixType& a)
+    {
+      set_default_options(&this->m_sluOptions);
+      
+      const int size = a.rows();
+      m_matrix = a;
+
+      m_sluA = internal::asSluMatrix(m_matrix);
+      clearFactors();
+
+      m_p.resize(size);
+      m_q.resize(size);
+      m_sluRscale.resize(size);
+      m_sluCscale.resize(size);
+      m_sluEtree.resize(size);
+
+      // set empty B and X
+      m_sluB.setStorageType(SLU_DN);
+      m_sluB.setScalarType<Scalar>();
+      m_sluB.Mtype          = SLU_GE;
+      m_sluB.storage.values = 0;
+      m_sluB.nrow           = 0;
+      m_sluB.ncol           = 0;
+      m_sluB.storage.lda    = size;
+      m_sluX                = m_sluB;
+      
+      m_extractedDataAreDirty = true;
+    }
+    
+    void init()
+    {
+      m_info = InvalidInput;
+      m_isInitialized = false;
+      m_sluL.Store = 0;
+      m_sluU.Store = 0;
+    }
+    
+    void extractData() const;
+
+    void clearFactors()
+    {
+      if(m_sluL.Store)
+        Destroy_SuperNode_Matrix(&m_sluL);
+      if(m_sluU.Store)
+        Destroy_CompCol_Matrix(&m_sluU);
+
+      m_sluL.Store = 0;
+      m_sluU.Store = 0;
+
+      memset(&m_sluL,0,sizeof m_sluL);
+      memset(&m_sluU,0,sizeof m_sluU);
+    }
+
+    // cached data to reduce reallocation, etc.
+    mutable LUMatrixType m_l;
+    mutable LUMatrixType m_u;
+    mutable IntColVectorType m_p;
+    mutable IntRowVectorType m_q;
+
+    mutable LUMatrixType m_matrix;  // copy of the factorized matrix
+    mutable SluMatrix m_sluA;
+    mutable SuperMatrix m_sluL, m_sluU;
+    mutable SluMatrix m_sluB, m_sluX;
+    mutable SuperLUStat_t m_sluStat;
+    mutable superlu_options_t m_sluOptions;
+    mutable std::vector<int> m_sluEtree;
+    mutable Matrix<RealScalar,Dynamic,1> m_sluRscale, m_sluCscale;
+    mutable Matrix<RealScalar,Dynamic,1> m_sluFerr, m_sluBerr;
+    mutable char m_sluEqued;
+
+    mutable ComputationInfo m_info;
+    bool m_isInitialized;
+    int m_factorizationIsOk;
+    int m_analysisIsOk;
+    mutable bool m_extractedDataAreDirty;
+    
+  private:
+    SuperLUBase(SuperLUBase& ) { }
+};
+
+
+/** \ingroup SuperLUSupport_Module
+  * \class SuperLU
+  * \brief A sparse direct LU factorization and solver based on the SuperLU library
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a direct LU factorization
+  * using the SuperLU library. The sparse matrix A must be squared and invertible. The vectors or matrices
+  * X and B can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename _MatrixType>
+class SuperLU : public SuperLUBase<_MatrixType,SuperLU<_MatrixType> >
+{
+  public:
+    typedef SuperLUBase<_MatrixType,SuperLU> Base;
+    typedef _MatrixType MatrixType;
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::RealScalar RealScalar;
+    typedef typename Base::Index Index;
+    typedef typename Base::IntRowVectorType IntRowVectorType;
+    typedef typename Base::IntColVectorType IntColVectorType;    
+    typedef typename Base::LUMatrixType LUMatrixType;
+    typedef TriangularView<LUMatrixType, Lower|UnitDiag>  LMatrixType;
+    typedef TriangularView<LUMatrixType,  Upper>           UMatrixType;
+
+  public:
+
+    SuperLU() : Base() { init(); }
+
+    SuperLU(const MatrixType& matrix) : Base()
+    {
+      init();
+      Base::compute(matrix);
+    }
+
+    ~SuperLU()
+    {
+    }
+    
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      * 
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& matrix)
+    {
+      m_info = InvalidInput;
+      m_isInitialized = false;
+      Base::analyzePattern(matrix);
+    }
+    
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    void factorize(const MatrixType& matrix);
+    
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal */
+    template<typename Rhs,typename Dest>
+    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const;
+    #endif // EIGEN_PARSED_BY_DOXYGEN
+    
+    inline const LMatrixType& matrixL() const
+    {
+      if (m_extractedDataAreDirty) this->extractData();
+      return m_l;
+    }
+
+    inline const UMatrixType& matrixU() const
+    {
+      if (m_extractedDataAreDirty) this->extractData();
+      return m_u;
+    }
+
+    inline const IntColVectorType& permutationP() const
+    {
+      if (m_extractedDataAreDirty) this->extractData();
+      return m_p;
+    }
+
+    inline const IntRowVectorType& permutationQ() const
+    {
+      if (m_extractedDataAreDirty) this->extractData();
+      return m_q;
+    }
+    
+    Scalar determinant() const;
+    
+  protected:
+    
+    using Base::m_matrix;
+    using Base::m_sluOptions;
+    using Base::m_sluA;
+    using Base::m_sluB;
+    using Base::m_sluX;
+    using Base::m_p;
+    using Base::m_q;
+    using Base::m_sluEtree;
+    using Base::m_sluEqued;
+    using Base::m_sluRscale;
+    using Base::m_sluCscale;
+    using Base::m_sluL;
+    using Base::m_sluU;
+    using Base::m_sluStat;
+    using Base::m_sluFerr;
+    using Base::m_sluBerr;
+    using Base::m_l;
+    using Base::m_u;
+    
+    using Base::m_analysisIsOk;
+    using Base::m_factorizationIsOk;
+    using Base::m_extractedDataAreDirty;
+    using Base::m_isInitialized;
+    using Base::m_info;
+    
+    void init()
+    {
+      Base::init();
+      
+      set_default_options(&this->m_sluOptions);
+      m_sluOptions.PrintStat        = NO;
+      m_sluOptions.ConditionNumber  = NO;
+      m_sluOptions.Trans            = NOTRANS;
+      m_sluOptions.ColPerm          = COLAMD;
+    }
+    
+    
+  private:
+    SuperLU(SuperLU& ) { }
+};
+
+template<typename MatrixType>
+void SuperLU<MatrixType>::factorize(const MatrixType& a)
+{
+  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+  if(!m_analysisIsOk)
+  {
+    m_info = InvalidInput;
+    return;
+  }
+  
+  this->initFactorization(a);
+  
+  m_sluOptions.ColPerm = COLAMD;
+  int info = 0;
+  RealScalar recip_pivot_growth, rcond;
+  RealScalar ferr, berr;
+
+  StatInit(&m_sluStat);
+  SuperLU_gssvx(&m_sluOptions, &m_sluA, m_q.data(), m_p.data(), &m_sluEtree[0],
+                &m_sluEqued, &m_sluRscale[0], &m_sluCscale[0],
+                &m_sluL, &m_sluU,
+                NULL, 0,
+                &m_sluB, &m_sluX,
+                &recip_pivot_growth, &rcond,
+                &ferr, &berr,
+                &m_sluStat, &info, Scalar());
+  StatFree(&m_sluStat);
+
+  m_extractedDataAreDirty = true;
+
+  // FIXME how to better check for errors ???
+  m_info = info == 0 ? Success : NumericalIssue;
+  m_factorizationIsOk = true;
+}
+
+template<typename MatrixType>
+template<typename Rhs,typename Dest>
+void SuperLU<MatrixType>::_solve(const MatrixBase<Rhs> &b, MatrixBase<Dest>& x) const
+{
+  eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or analyzePattern()/factorize()");
+
+  const int size = m_matrix.rows();
+  const int rhsCols = b.cols();
+  eigen_assert(size==b.rows());
+
+  m_sluOptions.Trans = NOTRANS;
+  m_sluOptions.Fact = FACTORED;
+  m_sluOptions.IterRefine = NOREFINE;
+  
+
+  m_sluFerr.resize(rhsCols);
+  m_sluBerr.resize(rhsCols);
+  m_sluB = SluMatrix::Map(b.const_cast_derived());
+  m_sluX = SluMatrix::Map(x.derived());
+  
+  typename Rhs::PlainObject b_cpy;
+  if(m_sluEqued!='N')
+  {
+    b_cpy = b;
+    m_sluB = SluMatrix::Map(b_cpy.const_cast_derived());  
+  }
+
+  StatInit(&m_sluStat);
+  int info = 0;
+  RealScalar recip_pivot_growth, rcond;
+  SuperLU_gssvx(&m_sluOptions, &m_sluA,
+                m_q.data(), m_p.data(),
+                &m_sluEtree[0], &m_sluEqued,
+                &m_sluRscale[0], &m_sluCscale[0],
+                &m_sluL, &m_sluU,
+                NULL, 0,
+                &m_sluB, &m_sluX,
+                &recip_pivot_growth, &rcond,
+                &m_sluFerr[0], &m_sluBerr[0],
+                &m_sluStat, &info, Scalar());
+  StatFree(&m_sluStat);
+  m_info = info==0 ? Success : NumericalIssue;
+}
+
+// the code of this extractData() function has been adapted from the SuperLU's Matlab support code,
+//
+//  Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+//
+//  THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+//  EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+//
+template<typename MatrixType, typename Derived>
+void SuperLUBase<MatrixType,Derived>::extractData() const
+{
+  eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for extracting factors, you must first call either compute() or analyzePattern()/factorize()");
+  if (m_extractedDataAreDirty)
+  {
+    int         upper;
+    int         fsupc, istart, nsupr;
+    int         lastl = 0, lastu = 0;
+    SCformat    *Lstore = static_cast<SCformat*>(m_sluL.Store);
+    NCformat    *Ustore = static_cast<NCformat*>(m_sluU.Store);
+    Scalar      *SNptr;
+
+    const int size = m_matrix.rows();
+    m_l.resize(size,size);
+    m_l.resizeNonZeros(Lstore->nnz);
+    m_u.resize(size,size);
+    m_u.resizeNonZeros(Ustore->nnz);
+
+    int* Lcol = m_l.outerIndexPtr();
+    int* Lrow = m_l.innerIndexPtr();
+    Scalar* Lval = m_l.valuePtr();
+
+    int* Ucol = m_u.outerIndexPtr();
+    int* Urow = m_u.innerIndexPtr();
+    Scalar* Uval = m_u.valuePtr();
+
+    Ucol[0] = 0;
+    Ucol[0] = 0;
+
+    /* for each supernode */
+    for (int k = 0; k <= Lstore->nsuper; ++k)
+    {
+      fsupc   = L_FST_SUPC(k);
+      istart  = L_SUB_START(fsupc);
+      nsupr   = L_SUB_START(fsupc+1) - istart;
+      upper   = 1;
+
+      /* for each column in the supernode */
+      for (int j = fsupc; j < L_FST_SUPC(k+1); ++j)
+      {
+        SNptr = &((Scalar*)Lstore->nzval)[L_NZ_START(j)];
+
+        /* Extract U */
+        for (int i = U_NZ_START(j); i < U_NZ_START(j+1); ++i)
+        {
+          Uval[lastu] = ((Scalar*)Ustore->nzval)[i];
+          /* Matlab doesn't like explicit zero. */
+          if (Uval[lastu] != 0.0)
+            Urow[lastu++] = U_SUB(i);
+        }
+        for (int i = 0; i < upper; ++i)
+        {
+          /* upper triangle in the supernode */
+          Uval[lastu] = SNptr[i];
+          /* Matlab doesn't like explicit zero. */
+          if (Uval[lastu] != 0.0)
+            Urow[lastu++] = L_SUB(istart+i);
+        }
+        Ucol[j+1] = lastu;
+
+        /* Extract L */
+        Lval[lastl] = 1.0; /* unit diagonal */
+        Lrow[lastl++] = L_SUB(istart + upper - 1);
+        for (int i = upper; i < nsupr; ++i)
+        {
+          Lval[lastl] = SNptr[i];
+          /* Matlab doesn't like explicit zero. */
+          if (Lval[lastl] != 0.0)
+            Lrow[lastl++] = L_SUB(istart+i);
+        }
+        Lcol[j+1] = lastl;
+
+        ++upper;
+      } /* for j ... */
+
+    } /* for k ... */
+
+    // squeeze the matrices :
+    m_l.resizeNonZeros(lastl);
+    m_u.resizeNonZeros(lastu);
+
+    m_extractedDataAreDirty = false;
+  }
+}
+
+template<typename MatrixType>
+typename SuperLU<MatrixType>::Scalar SuperLU<MatrixType>::determinant() const
+{
+  eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for computing the determinant, you must first call either compute() or analyzePattern()/factorize()");
+  
+  if (m_extractedDataAreDirty)
+    this->extractData();
+
+  Scalar det = Scalar(1);
+  for (int j=0; j<m_u.cols(); ++j)
+  {
+    if (m_u.outerIndexPtr()[j+1]-m_u.outerIndexPtr()[j] > 0)
+    {
+      int lastId = m_u.outerIndexPtr()[j+1]-1;
+      eigen_assert(m_u.innerIndexPtr()[lastId]<=j);
+      if (m_u.innerIndexPtr()[lastId]==j)
+        det *= m_u.valuePtr()[lastId];
+    }
+  }
+  if(m_sluEqued!='N')
+    return det/m_sluRscale.prod()/m_sluCscale.prod();
+  else
+    return det;
+}
+
+#ifdef EIGEN_PARSED_BY_DOXYGEN
+#define EIGEN_SUPERLU_HAS_ILU
+#endif
+
+#ifdef EIGEN_SUPERLU_HAS_ILU
+
+/** \ingroup SuperLUSupport_Module
+  * \class SuperILU
+  * \brief A sparse direct \b incomplete LU factorization and solver based on the SuperLU library
+  *
+  * This class allows to solve for an approximate solution of A.X = B sparse linear problems via an incomplete LU factorization
+  * using the SuperLU library. This class is aimed to be used as a preconditioner of the iterative linear solvers.
+  *
+  * \warning This class requires SuperLU 4 or later.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  *
+  * \sa \ref TutorialSparseDirectSolvers, class ConjugateGradient, class BiCGSTAB
+  */
+
+template<typename _MatrixType>
+class SuperILU : public SuperLUBase<_MatrixType,SuperILU<_MatrixType> >
+{
+  public:
+    typedef SuperLUBase<_MatrixType,SuperILU> Base;
+    typedef _MatrixType MatrixType;
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::RealScalar RealScalar;
+    typedef typename Base::Index Index;
+
+  public:
+
+    SuperILU() : Base() { init(); }
+
+    SuperILU(const MatrixType& matrix) : Base()
+    {
+      init();
+      Base::compute(matrix);
+    }
+
+    ~SuperILU()
+    {
+    }
+    
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      * 
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& matrix)
+    {
+      Base::analyzePattern(matrix);
+    }
+    
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    void factorize(const MatrixType& matrix);
+    
+    #ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal */
+    template<typename Rhs,typename Dest>
+    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const;
+    #endif // EIGEN_PARSED_BY_DOXYGEN
+    
+  protected:
+    
+    using Base::m_matrix;
+    using Base::m_sluOptions;
+    using Base::m_sluA;
+    using Base::m_sluB;
+    using Base::m_sluX;
+    using Base::m_p;
+    using Base::m_q;
+    using Base::m_sluEtree;
+    using Base::m_sluEqued;
+    using Base::m_sluRscale;
+    using Base::m_sluCscale;
+    using Base::m_sluL;
+    using Base::m_sluU;
+    using Base::m_sluStat;
+    using Base::m_sluFerr;
+    using Base::m_sluBerr;
+    using Base::m_l;
+    using Base::m_u;
+    
+    using Base::m_analysisIsOk;
+    using Base::m_factorizationIsOk;
+    using Base::m_extractedDataAreDirty;
+    using Base::m_isInitialized;
+    using Base::m_info;
+
+    void init()
+    {
+      Base::init();
+      
+      ilu_set_default_options(&m_sluOptions);
+      m_sluOptions.PrintStat        = NO;
+      m_sluOptions.ConditionNumber  = NO;
+      m_sluOptions.Trans            = NOTRANS;
+      m_sluOptions.ColPerm          = MMD_AT_PLUS_A;
+      
+      // no attempt to preserve column sum
+      m_sluOptions.ILU_MILU = SILU;
+      // only basic ILU(k) support -- no direct control over memory consumption
+      // better to use ILU_DropRule = DROP_BASIC | DROP_AREA
+      // and set ILU_FillFactor to max memory growth
+      m_sluOptions.ILU_DropRule = DROP_BASIC;
+      m_sluOptions.ILU_DropTol = NumTraits<Scalar>::dummy_precision()*10;
+    }
+    
+  private:
+    SuperILU(SuperILU& ) { }
+};
+
+template<typename MatrixType>
+void SuperILU<MatrixType>::factorize(const MatrixType& a)
+{
+  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+  if(!m_analysisIsOk)
+  {
+    m_info = InvalidInput;
+    return;
+  }
+  
+  this->initFactorization(a);
+
+  int info = 0;
+  RealScalar recip_pivot_growth, rcond;
+
+  StatInit(&m_sluStat);
+  SuperLU_gsisx(&m_sluOptions, &m_sluA, m_q.data(), m_p.data(), &m_sluEtree[0],
+                &m_sluEqued, &m_sluRscale[0], &m_sluCscale[0],
+                &m_sluL, &m_sluU,
+                NULL, 0,
+                &m_sluB, &m_sluX,
+                &recip_pivot_growth, &rcond,
+                &m_sluStat, &info, Scalar());
+  StatFree(&m_sluStat);
+
+  // FIXME how to better check for errors ???
+  m_info = info == 0 ? Success : NumericalIssue;
+  m_factorizationIsOk = true;
+}
+
+template<typename MatrixType>
+template<typename Rhs,typename Dest>
+void SuperILU<MatrixType>::_solve(const MatrixBase<Rhs> &b, MatrixBase<Dest>& x) const
+{
+  eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or analyzePattern()/factorize()");
+
+  const int size = m_matrix.rows();
+  const int rhsCols = b.cols();
+  eigen_assert(size==b.rows());
+
+  m_sluOptions.Trans = NOTRANS;
+  m_sluOptions.Fact = FACTORED;
+  m_sluOptions.IterRefine = NOREFINE;
+
+  m_sluFerr.resize(rhsCols);
+  m_sluBerr.resize(rhsCols);
+  m_sluB = SluMatrix::Map(b.const_cast_derived());
+  m_sluX = SluMatrix::Map(x.derived());
+
+  typename Rhs::PlainObject b_cpy;
+  if(m_sluEqued!='N')
+  {
+    b_cpy = b;
+    m_sluB = SluMatrix::Map(b_cpy.const_cast_derived());  
+  }
+  
+  int info = 0;
+  RealScalar recip_pivot_growth, rcond;
+
+  StatInit(&m_sluStat);
+  SuperLU_gsisx(&m_sluOptions, &m_sluA,
+                m_q.data(), m_p.data(),
+                &m_sluEtree[0], &m_sluEqued,
+                &m_sluRscale[0], &m_sluCscale[0],
+                &m_sluL, &m_sluU,
+                NULL, 0,
+                &m_sluB, &m_sluX,
+                &recip_pivot_growth, &rcond,
+                &m_sluStat, &info, Scalar());
+  StatFree(&m_sluStat);
+
+  m_info = info==0 ? Success : NumericalIssue;
+}
+#endif
+
+namespace internal {
+  
+template<typename _MatrixType, typename Derived, typename Rhs>
+struct solve_retval<SuperLUBase<_MatrixType,Derived>, Rhs>
+  : solve_retval_base<SuperLUBase<_MatrixType,Derived>, Rhs>
+{
+  typedef SuperLUBase<_MatrixType,Derived> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec().derived()._solve(rhs(),dst);
+  }
+};
+
+template<typename _MatrixType, typename Derived, typename Rhs>
+struct sparse_solve_retval<SuperLUBase<_MatrixType,Derived>, Rhs>
+  : sparse_solve_retval_base<SuperLUBase<_MatrixType,Derived>, Rhs>
+{
+  typedef SuperLUBase<_MatrixType,Derived> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SUPERLUSUPPORT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SVD/UpperBidiagonalization.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SVD/UpperBidiagonalization.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SVD/UpperBidiagonalization.h	(revision 2476)
@@ -0,0 +1,148 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BIDIAGONALIZATION_H
+#define EIGEN_BIDIAGONALIZATION_H
+
+namespace Eigen { 
+
+namespace internal {
+// UpperBidiagonalization will probably be replaced by a Bidiagonalization class, don't want to make it stable API.
+// At the same time, it's useful to keep for now as it's about the only thing that is testing the BandMatrix class.
+
+template<typename _MatrixType> class UpperBidiagonalization
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      ColsAtCompileTimeMinusOne = internal::decrement_size<ColsAtCompileTime>::ret
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Matrix<Scalar, 1, ColsAtCompileTime> RowVectorType;
+    typedef Matrix<Scalar, RowsAtCompileTime, 1> ColVectorType;
+    typedef BandMatrix<RealScalar, ColsAtCompileTime, ColsAtCompileTime, 1, 0> BidiagonalType;
+    typedef Matrix<Scalar, ColsAtCompileTime, 1> DiagVectorType;
+    typedef Matrix<Scalar, ColsAtCompileTimeMinusOne, 1> SuperDiagVectorType;
+    typedef HouseholderSequence<
+              const MatrixType,
+              CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, const Diagonal<const MatrixType,0> >
+            > HouseholderUSequenceType;
+    typedef HouseholderSequence<
+              const typename internal::remove_all<typename MatrixType::ConjugateReturnType>::type,
+              Diagonal<const MatrixType,1>,
+              OnTheRight
+            > HouseholderVSequenceType;
+    
+    /**
+    * \brief Default Constructor.
+    *
+    * The default constructor is useful in cases in which the user intends to
+    * perform decompositions via Bidiagonalization::compute(const MatrixType&).
+    */
+    UpperBidiagonalization() : m_householder(), m_bidiagonal(), m_isInitialized(false) {}
+
+    UpperBidiagonalization(const MatrixType& matrix)
+      : m_householder(matrix.rows(), matrix.cols()),
+        m_bidiagonal(matrix.cols(), matrix.cols()),
+        m_isInitialized(false)
+    {
+      compute(matrix);
+    }
+    
+    UpperBidiagonalization& compute(const MatrixType& matrix);
+    
+    const MatrixType& householder() const { return m_householder; }
+    const BidiagonalType& bidiagonal() const { return m_bidiagonal; }
+    
+    const HouseholderUSequenceType householderU() const
+    {
+      eigen_assert(m_isInitialized && "UpperBidiagonalization is not initialized.");
+      return HouseholderUSequenceType(m_householder, m_householder.diagonal().conjugate());
+    }
+
+    const HouseholderVSequenceType householderV() // const here gives nasty errors and i'm lazy
+    {
+      eigen_assert(m_isInitialized && "UpperBidiagonalization is not initialized.");
+      return HouseholderVSequenceType(m_householder.conjugate(), m_householder.const_derived().template diagonal<1>())
+             .setLength(m_householder.cols()-1)
+             .setShift(1);
+    }
+    
+  protected:
+    MatrixType m_householder;
+    BidiagonalType m_bidiagonal;
+    bool m_isInitialized;
+};
+
+template<typename _MatrixType>
+UpperBidiagonalization<_MatrixType>& UpperBidiagonalization<_MatrixType>::compute(const _MatrixType& matrix)
+{
+  Index rows = matrix.rows();
+  Index cols = matrix.cols();
+  
+  eigen_assert(rows >= cols && "UpperBidiagonalization is only for matrices satisfying rows>=cols.");
+  
+  m_householder = matrix;
+
+  ColVectorType temp(rows);
+
+  for (Index k = 0; /* breaks at k==cols-1 below */ ; ++k)
+  {
+    Index remainingRows = rows - k;
+    Index remainingCols = cols - k - 1;
+
+    // construct left householder transform in-place in m_householder
+    m_householder.col(k).tail(remainingRows)
+                 .makeHouseholderInPlace(m_householder.coeffRef(k,k),
+                                         m_bidiagonal.template diagonal<0>().coeffRef(k));
+    // apply householder transform to remaining part of m_householder on the left
+    m_householder.bottomRightCorner(remainingRows, remainingCols)
+                 .applyHouseholderOnTheLeft(m_householder.col(k).tail(remainingRows-1),
+                                            m_householder.coeff(k,k),
+                                            temp.data());
+
+    if(k == cols-1) break;
+    
+    // construct right householder transform in-place in m_householder
+    m_householder.row(k).tail(remainingCols)
+                 .makeHouseholderInPlace(m_householder.coeffRef(k,k+1),
+                                         m_bidiagonal.template diagonal<1>().coeffRef(k));
+    // apply householder transform to remaining part of m_householder on the left
+    m_householder.bottomRightCorner(remainingRows-1, remainingCols)
+                 .applyHouseholderOnTheRight(m_householder.row(k).tail(remainingCols-1).transpose(),
+                                             m_householder.coeff(k,k+1),
+                                             temp.data());
+  }
+  m_isInitialized = true;
+  return *this;
+}
+
+#if 0
+/** \return the Householder QR decomposition of \c *this.
+  *
+  * \sa class Bidiagonalization
+  */
+template<typename Derived>
+const UpperBidiagonalization<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::bidiagonalization() const
+{
+  return UpperBidiagonalization<PlainObject>(eval());
+}
+#endif
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_BIDIAGONALIZATION_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SVD/JacobiSVD.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SVD/JacobiSVD.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SVD/JacobiSVD.h	(revision 2476)
@@ -0,0 +1,1000 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_JACOBISVD_H
+#define EIGEN_JACOBISVD_H
+
+namespace Eigen { 
+
+namespace internal {
+// forward declaration (needed by ICC)
+// the empty body is required by MSVC
+template<typename MatrixType, int QRPreconditioner,
+         bool IsComplex = NumTraits<typename MatrixType::Scalar>::IsComplex>
+struct svd_precondition_2x2_block_to_be_real {};
+
+/*** QR preconditioners (R-SVD)
+ ***
+ *** Their role is to reduce the problem of computing the SVD to the case of a square matrix.
+ *** This approach, known as R-SVD, is an optimization for rectangular-enough matrices, and is a requirement for
+ *** JacobiSVD which by itself is only able to work on square matrices.
+ ***/
+
+enum { PreconditionIfMoreColsThanRows, PreconditionIfMoreRowsThanCols };
+
+template<typename MatrixType, int QRPreconditioner, int Case>
+struct qr_preconditioner_should_do_anything
+{
+  enum { a = MatrixType::RowsAtCompileTime != Dynamic &&
+             MatrixType::ColsAtCompileTime != Dynamic &&
+             MatrixType::ColsAtCompileTime <= MatrixType::RowsAtCompileTime,
+         b = MatrixType::RowsAtCompileTime != Dynamic &&
+             MatrixType::ColsAtCompileTime != Dynamic &&
+             MatrixType::RowsAtCompileTime <= MatrixType::ColsAtCompileTime,
+         ret = !( (QRPreconditioner == NoQRPreconditioner) ||
+                  (Case == PreconditionIfMoreColsThanRows && bool(a)) ||
+                  (Case == PreconditionIfMoreRowsThanCols && bool(b)) )
+  };
+};
+
+template<typename MatrixType, int QRPreconditioner, int Case,
+         bool DoAnything = qr_preconditioner_should_do_anything<MatrixType, QRPreconditioner, Case>::ret
+> struct qr_preconditioner_impl {};
+
+template<typename MatrixType, int QRPreconditioner, int Case>
+class qr_preconditioner_impl<MatrixType, QRPreconditioner, Case, false>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  void allocate(const JacobiSVD<MatrixType, QRPreconditioner>&) {}
+  bool run(JacobiSVD<MatrixType, QRPreconditioner>&, const MatrixType&)
+  {
+    return false;
+  }
+};
+
+/*** preconditioner using FullPivHouseholderQR ***/
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, FullPivHouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  enum
+  {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime
+  };
+  typedef Matrix<Scalar, 1, RowsAtCompileTime, RowMajor, 1, MaxRowsAtCompileTime> WorkspaceType;
+
+  void allocate(const JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd)
+  {
+    if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.rows(), svd.cols());
+    }
+    if (svd.m_computeFullU) m_workspace.resize(svd.rows());
+  }
+
+  bool run(JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.rows() > matrix.cols())
+    {
+      m_qr.compute(matrix);
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
+      if(svd.m_computeFullU) m_qr.matrixQ().evalTo(svd.m_matrixU, m_workspace);
+      if(svd.computeV()) svd.m_matrixV = m_qr.colsPermutation();
+      return true;
+    }
+    return false;
+  }
+private:
+  typedef FullPivHouseholderQR<MatrixType> QRType;
+  QRType m_qr;
+  WorkspaceType m_workspace;
+};
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, FullPivHouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  enum
+  {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+    Options = MatrixType::Options
+  };
+  typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, MaxColsAtCompileTime, MaxRowsAtCompileTime>
+          TransposeTypeWithSameStorageOrder;
+
+  void allocate(const JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd)
+  {
+    if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.cols(), svd.rows());
+    }
+    m_adjoint.resize(svd.cols(), svd.rows());
+    if (svd.m_computeFullV) m_workspace.resize(svd.cols());
+  }
+
+  bool run(JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.cols() > matrix.rows())
+    {
+      m_adjoint = matrix.adjoint();
+      m_qr.compute(m_adjoint);
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
+      if(svd.m_computeFullV) m_qr.matrixQ().evalTo(svd.m_matrixV, m_workspace);
+      if(svd.computeU()) svd.m_matrixU = m_qr.colsPermutation();
+      return true;
+    }
+    else return false;
+  }
+private:
+  typedef FullPivHouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
+  QRType m_qr;
+  TransposeTypeWithSameStorageOrder m_adjoint;
+  typename internal::plain_row_type<MatrixType>::type m_workspace;
+};
+
+/*** preconditioner using ColPivHouseholderQR ***/
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, ColPivHouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+
+  void allocate(const JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd)
+  {
+    if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.rows(), svd.cols());
+    }
+    if (svd.m_computeFullU) m_workspace.resize(svd.rows());
+    else if (svd.m_computeThinU) m_workspace.resize(svd.cols());
+  }
+
+  bool run(JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.rows() > matrix.cols())
+    {
+      m_qr.compute(matrix);
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
+      if(svd.m_computeFullU) m_qr.householderQ().evalTo(svd.m_matrixU, m_workspace);
+      else if(svd.m_computeThinU)
+      {
+        svd.m_matrixU.setIdentity(matrix.rows(), matrix.cols());
+        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixU, m_workspace);
+      }
+      if(svd.computeV()) svd.m_matrixV = m_qr.colsPermutation();
+      return true;
+    }
+    return false;
+  }
+
+private:
+  typedef ColPivHouseholderQR<MatrixType> QRType;
+  QRType m_qr;
+  typename internal::plain_col_type<MatrixType>::type m_workspace;
+};
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, ColPivHouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  enum
+  {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+    Options = MatrixType::Options
+  };
+
+  typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, MaxColsAtCompileTime, MaxRowsAtCompileTime>
+          TransposeTypeWithSameStorageOrder;
+
+  void allocate(const JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd)
+  {
+    if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.cols(), svd.rows());
+    }
+    if (svd.m_computeFullV) m_workspace.resize(svd.cols());
+    else if (svd.m_computeThinV) m_workspace.resize(svd.rows());
+    m_adjoint.resize(svd.cols(), svd.rows());
+  }
+
+  bool run(JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.cols() > matrix.rows())
+    {
+      m_adjoint = matrix.adjoint();
+      m_qr.compute(m_adjoint);
+
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
+      if(svd.m_computeFullV) m_qr.householderQ().evalTo(svd.m_matrixV, m_workspace);
+      else if(svd.m_computeThinV)
+      {
+        svd.m_matrixV.setIdentity(matrix.cols(), matrix.rows());
+        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixV, m_workspace);
+      }
+      if(svd.computeU()) svd.m_matrixU = m_qr.colsPermutation();
+      return true;
+    }
+    else return false;
+  }
+
+private:
+  typedef ColPivHouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
+  QRType m_qr;
+  TransposeTypeWithSameStorageOrder m_adjoint;
+  typename internal::plain_row_type<MatrixType>::type m_workspace;
+};
+
+/*** preconditioner using HouseholderQR ***/
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, HouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+
+  void allocate(const JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd)
+  {
+    if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.rows(), svd.cols());
+    }
+    if (svd.m_computeFullU) m_workspace.resize(svd.rows());
+    else if (svd.m_computeThinU) m_workspace.resize(svd.cols());
+  }
+
+  bool run(JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.rows() > matrix.cols())
+    {
+      m_qr.compute(matrix);
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
+      if(svd.m_computeFullU) m_qr.householderQ().evalTo(svd.m_matrixU, m_workspace);
+      else if(svd.m_computeThinU)
+      {
+        svd.m_matrixU.setIdentity(matrix.rows(), matrix.cols());
+        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixU, m_workspace);
+      }
+      if(svd.computeV()) svd.m_matrixV.setIdentity(matrix.cols(), matrix.cols());
+      return true;
+    }
+    return false;
+  }
+private:
+  typedef HouseholderQR<MatrixType> QRType;
+  QRType m_qr;
+  typename internal::plain_col_type<MatrixType>::type m_workspace;
+};
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, HouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  enum
+  {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+    Options = MatrixType::Options
+  };
+
+  typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, MaxColsAtCompileTime, MaxRowsAtCompileTime>
+          TransposeTypeWithSameStorageOrder;
+
+  void allocate(const JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd)
+  {
+    if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.cols(), svd.rows());
+    }
+    if (svd.m_computeFullV) m_workspace.resize(svd.cols());
+    else if (svd.m_computeThinV) m_workspace.resize(svd.rows());
+    m_adjoint.resize(svd.cols(), svd.rows());
+  }
+
+  bool run(JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.cols() > matrix.rows())
+    {
+      m_adjoint = matrix.adjoint();
+      m_qr.compute(m_adjoint);
+
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
+      if(svd.m_computeFullV) m_qr.householderQ().evalTo(svd.m_matrixV, m_workspace);
+      else if(svd.m_computeThinV)
+      {
+        svd.m_matrixV.setIdentity(matrix.cols(), matrix.rows());
+        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixV, m_workspace);
+      }
+      if(svd.computeU()) svd.m_matrixU.setIdentity(matrix.rows(), matrix.rows());
+      return true;
+    }
+    else return false;
+  }
+
+private:
+  typedef HouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
+  QRType m_qr;
+  TransposeTypeWithSameStorageOrder m_adjoint;
+  typename internal::plain_row_type<MatrixType>::type m_workspace;
+};
+
+/*** 2x2 SVD implementation
+ ***
+ *** JacobiSVD consists in performing a series of 2x2 SVD subproblems
+ ***/
+
+template<typename MatrixType, int QRPreconditioner>
+struct svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner, false>
+{
+  typedef JacobiSVD<MatrixType, QRPreconditioner> SVD;
+  typedef typename SVD::Index Index;
+  typedef typename MatrixType::RealScalar RealScalar;
+  static bool run(typename SVD::WorkMatrixType&, SVD&, Index, Index, RealScalar&) { return true; }
+};
+
+template<typename MatrixType, int QRPreconditioner>
+struct svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner, true>
+{
+  typedef JacobiSVD<MatrixType, QRPreconditioner> SVD;
+  typedef typename SVD::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::RealScalar RealScalar;
+  static bool run(typename SVD::WorkMatrixType& work_matrix, SVD& svd, Index p, Index q, RealScalar& maxDiagEntry)
+  {
+    using std::sqrt;
+    using std::abs;
+    using std::max;
+    Scalar z;
+    JacobiRotation<Scalar> rot;
+    RealScalar n = sqrt(numext::abs2(work_matrix.coeff(p,p)) + numext::abs2(work_matrix.coeff(q,p)));
+
+    const RealScalar considerAsZero = (std::numeric_limits<RealScalar>::min)();
+    const RealScalar precision = NumTraits<Scalar>::epsilon();
+
+    if(n==0)
+    {
+      // make sure first column is zero
+      work_matrix.coeffRef(p,p) = work_matrix.coeffRef(q,p) = Scalar(0);
+
+      if(abs(numext::imag(work_matrix.coeff(p,q)))>considerAsZero)
+      {
+        // work_matrix.coeff(p,q) can be zero if work_matrix.coeff(q,p) is not zero but small enough to underflow when computing n
+        z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q);
+        work_matrix.row(p) *= z;
+        if(svd.computeU()) svd.m_matrixU.col(p) *= conj(z);
+      }
+      if(abs(numext::imag(work_matrix.coeff(q,q)))>considerAsZero)
+      {
+        z = abs(work_matrix.coeff(q,q)) / work_matrix.coeff(q,q);
+        work_matrix.row(q) *= z;
+        if(svd.computeU()) svd.m_matrixU.col(q) *= conj(z);
+      }
+      // otherwise the second row is already zero, so we have nothing to do.
+    }
+    else
+    {
+      rot.c() = conj(work_matrix.coeff(p,p)) / n;
+      rot.s() = work_matrix.coeff(q,p) / n;
+      work_matrix.applyOnTheLeft(p,q,rot);
+      if(svd.computeU()) svd.m_matrixU.applyOnTheRight(p,q,rot.adjoint());
+      if(abs(numext::imag(work_matrix.coeff(p,q)))>considerAsZero)
+      {
+        z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q);
+        work_matrix.col(q) *= z;
+        if(svd.computeV()) svd.m_matrixV.col(q) *= z;
+      }
+      if(abs(numext::imag(work_matrix.coeff(q,q)))>considerAsZero)
+      {
+        z = abs(work_matrix.coeff(q,q)) / work_matrix.coeff(q,q);
+        work_matrix.row(q) *= z;
+        if(svd.computeU()) svd.m_matrixU.col(q) *= conj(z);
+      }
+    }
+
+    // update largest diagonal entry
+    maxDiagEntry = max EIGEN_EMPTY (maxDiagEntry,max EIGEN_EMPTY (abs(work_matrix.coeff(p,p)), abs(work_matrix.coeff(q,q))));
+    // and check whether the 2x2 block is already diagonal
+    RealScalar threshold = max EIGEN_EMPTY (considerAsZero, precision * maxDiagEntry);
+    return abs(work_matrix.coeff(p,q))>threshold || abs(work_matrix.coeff(q,p)) > threshold;
+  }
+};
+
+template<typename MatrixType, typename RealScalar, typename Index>
+void real_2x2_jacobi_svd(const MatrixType& matrix, Index p, Index q,
+                            JacobiRotation<RealScalar> *j_left,
+                            JacobiRotation<RealScalar> *j_right)
+{
+  using std::sqrt;
+  using std::abs;
+  Matrix<RealScalar,2,2> m;
+  m << numext::real(matrix.coeff(p,p)), numext::real(matrix.coeff(p,q)),
+       numext::real(matrix.coeff(q,p)), numext::real(matrix.coeff(q,q));
+  JacobiRotation<RealScalar> rot1;
+  RealScalar t = m.coeff(0,0) + m.coeff(1,1);
+  RealScalar d = m.coeff(1,0) - m.coeff(0,1);
+  if(d == RealScalar(0))
+  {
+    rot1.s() = RealScalar(0);
+    rot1.c() = RealScalar(1);
+  }
+  else
+  {
+    // If d!=0, then t/d cannot overflow because the magnitude of the
+    // entries forming d are not too small compared to the ones forming t.
+    RealScalar u = t / d;
+    RealScalar tmp = sqrt(RealScalar(1) + numext::abs2(u));
+    rot1.s() = RealScalar(1) / tmp;
+    rot1.c() = u / tmp;
+  }
+  m.applyOnTheLeft(0,1,rot1);
+  j_right->makeJacobi(m,0,1);
+  *j_left = rot1 * j_right->transpose();
+}
+
+} // end namespace internal
+
+/** \ingroup SVD_Module
+  *
+  *
+  * \class JacobiSVD
+  *
+  * \brief Two-sided Jacobi SVD decomposition of a rectangular matrix
+  *
+  * \param MatrixType the type of the matrix of which we are computing the SVD decomposition
+  * \param QRPreconditioner this optional parameter allows to specify the type of QR decomposition that will be used internally
+  *                        for the R-SVD step for non-square matrices. See discussion of possible values below.
+  *
+  * SVD decomposition consists in decomposing any n-by-p matrix \a A as a product
+  *   \f[ A = U S V^* \f]
+  * where \a U is a n-by-n unitary, \a V is a p-by-p unitary, and \a S is a n-by-p real positive matrix which is zero outside of its main diagonal;
+  * the diagonal entries of S are known as the \em singular \em values of \a A and the columns of \a U and \a V are known as the left
+  * and right \em singular \em vectors of \a A respectively.
+  *
+  * Singular values are always sorted in decreasing order.
+  *
+  * This JacobiSVD decomposition computes only the singular values by default. If you want \a U or \a V, you need to ask for them explicitly.
+  *
+  * You can ask for only \em thin \a U or \a V to be computed, meaning the following. In case of a rectangular n-by-p matrix, letting \a m be the
+  * smaller value among \a n and \a p, there are only \a m singular vectors; the remaining columns of \a U and \a V do not correspond to actual
+  * singular vectors. Asking for \em thin \a U or \a V means asking for only their \a m first columns to be formed. So \a U is then a n-by-m matrix,
+  * and \a V is then a p-by-m matrix. Notice that thin \a U and \a V are all you need for (least squares) solving.
+  *
+  * Here's an example demonstrating basic usage:
+  * \include JacobiSVD_basic.cpp
+  * Output: \verbinclude JacobiSVD_basic.out
+  *
+  * This JacobiSVD class is a two-sided Jacobi R-SVD decomposition, ensuring optimal reliability and accuracy. The downside is that it's slower than
+  * bidiagonalizing SVD algorithms for large square matrices; however its complexity is still \f$ O(n^2p) \f$ where \a n is the smaller dimension and
+  * \a p is the greater dimension, meaning that it is still of the same order of complexity as the faster bidiagonalizing R-SVD algorithms.
+  * In particular, like any R-SVD, it takes advantage of non-squareness in that its complexity is only linear in the greater dimension.
+  *
+  * If the input matrix has inf or nan coefficients, the result of the computation is undefined, but the computation is guaranteed to
+  * terminate in finite (and reasonable) time.
+  *
+  * The possible values for QRPreconditioner are:
+  * \li ColPivHouseholderQRPreconditioner is the default. In practice it's very safe. It uses column-pivoting QR.
+  * \li FullPivHouseholderQRPreconditioner, is the safest and slowest. It uses full-pivoting QR.
+  *     Contrary to other QRs, it doesn't allow computing thin unitaries.
+  * \li HouseholderQRPreconditioner is the fastest, and less safe and accurate than the pivoting variants. It uses non-pivoting QR.
+  *     This is very similar in safety and accuracy to the bidiagonalization process used by bidiagonalizing SVD algorithms (since bidiagonalization
+  *     is inherently non-pivoting). However the resulting SVD is still more reliable than bidiagonalizing SVDs because the Jacobi-based iterarive
+  *     process is more reliable than the optimized bidiagonal SVD iterations.
+  * \li NoQRPreconditioner allows not to use a QR preconditioner at all. This is useful if you know that you will only be computing
+  *     JacobiSVD decompositions of square matrices. Non-square matrices require a QR preconditioner. Using this option will result in
+  *     faster compilation and smaller executable code. It won't significantly speed up computation, since JacobiSVD is always checking
+  *     if QR preconditioning is needed before applying it anyway.
+  *
+  * \sa MatrixBase::jacobiSvd()
+  */
+template<typename _MatrixType, int QRPreconditioner> class JacobiSVD
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      DiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime,ColsAtCompileTime),
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+      MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(MaxRowsAtCompileTime,MaxColsAtCompileTime),
+      MatrixOptions = MatrixType::Options
+    };
+
+    typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime,
+                   MatrixOptions, MaxRowsAtCompileTime, MaxRowsAtCompileTime>
+            MatrixUType;
+    typedef Matrix<Scalar, ColsAtCompileTime, ColsAtCompileTime,
+                   MatrixOptions, MaxColsAtCompileTime, MaxColsAtCompileTime>
+            MatrixVType;
+    typedef typename internal::plain_diag_type<MatrixType, RealScalar>::type SingularValuesType;
+    typedef typename internal::plain_row_type<MatrixType>::type RowType;
+    typedef typename internal::plain_col_type<MatrixType>::type ColType;
+    typedef Matrix<Scalar, DiagSizeAtCompileTime, DiagSizeAtCompileTime,
+                   MatrixOptions, MaxDiagSizeAtCompileTime, MaxDiagSizeAtCompileTime>
+            WorkMatrixType;
+
+    /** \brief Default Constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via JacobiSVD::compute(const MatrixType&).
+      */
+    JacobiSVD()
+      : m_isInitialized(false),
+        m_isAllocated(false),
+        m_usePrescribedThreshold(false),
+        m_computationOptions(0),
+        m_rows(-1), m_cols(-1), m_diagSize(0)
+    {}
+
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem size.
+      * \sa JacobiSVD()
+      */
+    JacobiSVD(Index rows, Index cols, unsigned int computationOptions = 0)
+      : m_isInitialized(false),
+        m_isAllocated(false),
+        m_usePrescribedThreshold(false),
+        m_computationOptions(0),
+        m_rows(-1), m_cols(-1)
+    {
+      allocate(rows, cols, computationOptions);
+    }
+
+    /** \brief Constructor performing the decomposition of given matrix.
+     *
+     * \param matrix the matrix to decompose
+     * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
+     *                           By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU,
+     *                           #ComputeFullV, #ComputeThinV.
+     *
+     * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
+     * available with the (non-default) FullPivHouseholderQR preconditioner.
+     */
+    JacobiSVD(const MatrixType& matrix, unsigned int computationOptions = 0)
+      : m_isInitialized(false),
+        m_isAllocated(false),
+        m_usePrescribedThreshold(false),
+        m_computationOptions(0),
+        m_rows(-1), m_cols(-1)
+    {
+      compute(matrix, computationOptions);
+    }
+
+    /** \brief Method performing the decomposition of given matrix using custom options.
+     *
+     * \param matrix the matrix to decompose
+     * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
+     *                           By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU,
+     *                           #ComputeFullV, #ComputeThinV.
+     *
+     * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
+     * available with the (non-default) FullPivHouseholderQR preconditioner.
+     */
+    JacobiSVD& compute(const MatrixType& matrix, unsigned int computationOptions);
+
+    /** \brief Method performing the decomposition of given matrix using current options.
+     *
+     * \param matrix the matrix to decompose
+     *
+     * This method uses the current \a computationOptions, as already passed to the constructor or to compute(const MatrixType&, unsigned int).
+     */
+    JacobiSVD& compute(const MatrixType& matrix)
+    {
+      return compute(matrix, m_computationOptions);
+    }
+
+    /** \returns the \a U matrix.
+     *
+     * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
+     * the U matrix is n-by-n if you asked for #ComputeFullU, and is n-by-m if you asked for #ComputeThinU.
+     *
+     * The \a m first columns of \a U are the left singular vectors of the matrix being decomposed.
+     *
+     * This method asserts that you asked for \a U to be computed.
+     */
+    const MatrixUType& matrixU() const
+    {
+      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
+      eigen_assert(computeU() && "This JacobiSVD decomposition didn't compute U. Did you ask for it?");
+      return m_matrixU;
+    }
+
+    /** \returns the \a V matrix.
+     *
+     * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
+     * the V matrix is p-by-p if you asked for #ComputeFullV, and is p-by-m if you asked for ComputeThinV.
+     *
+     * The \a m first columns of \a V are the right singular vectors of the matrix being decomposed.
+     *
+     * This method asserts that you asked for \a V to be computed.
+     */
+    const MatrixVType& matrixV() const
+    {
+      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
+      eigen_assert(computeV() && "This JacobiSVD decomposition didn't compute V. Did you ask for it?");
+      return m_matrixV;
+    }
+
+    /** \returns the vector of singular values.
+     *
+     * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p, the
+     * returned vector has size \a m.  Singular values are always sorted in decreasing order.
+     */
+    const SingularValuesType& singularValues() const
+    {
+      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
+      return m_singularValues;
+    }
+
+    /** \returns true if \a U (full or thin) is asked for in this SVD decomposition */
+    inline bool computeU() const { return m_computeFullU || m_computeThinU; }
+    /** \returns true if \a V (full or thin) is asked for in this SVD decomposition */
+    inline bool computeV() const { return m_computeFullV || m_computeThinV; }
+
+    /** \returns a (least squares) solution of \f$ A x = b \f$ using the current SVD decomposition of A.
+      *
+      * \param b the right-hand-side of the equation to solve.
+      *
+      * \note Solving requires both U and V to be computed. Thin U and V are enough, there is no need for full U or V.
+      *
+      * \note SVD solving is implicitly least-squares. Thus, this method serves both purposes of exact solving and least-squares solving.
+      * In other words, the returned solution is guaranteed to minimize the Euclidean norm \f$ \Vert A x - b \Vert \f$.
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<JacobiSVD, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
+      eigen_assert(computeU() && computeV() && "JacobiSVD::solve() requires both unitaries U and V to be computed (thin unitaries suffice).");
+      return internal::solve_retval<JacobiSVD, Rhs>(*this, b.derived());
+    }
+
+    /** \returns the number of singular values that are not exactly 0 */
+    Index nonzeroSingularValues() const
+    {
+      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
+      return m_nonzeroSingularValues;
+    }
+    
+    /** \returns the rank of the matrix of which \c *this is the SVD.
+      *
+      * \note This method has to determine which singular values should be considered nonzero.
+      *       For that, it uses the threshold value that you can control by calling
+      *       setThreshold(const RealScalar&).
+      */
+    inline Index rank() const
+    {
+      using std::abs;
+      eigen_assert(m_isInitialized && "JacobiSVD is not initialized.");
+      if(m_singularValues.size()==0) return 0;
+      RealScalar premultiplied_threshold = m_singularValues.coeff(0) * threshold();
+      Index i = m_nonzeroSingularValues-1;
+      while(i>=0 && m_singularValues.coeff(i) < premultiplied_threshold) --i;
+      return i+1;
+    }
+    
+    /** Allows to prescribe a threshold to be used by certain methods, such as rank() and solve(),
+      * which need to determine when singular values are to be considered nonzero.
+      * This is not used for the SVD decomposition itself.
+      *
+      * When it needs to get the threshold value, Eigen calls threshold().
+      * The default is \c NumTraits<Scalar>::epsilon()
+      *
+      * \param threshold The new value to use as the threshold.
+      *
+      * A singular value will be considered nonzero if its value is strictly greater than
+      *  \f$ \vert singular value \vert \leqslant threshold \times \vert max singular value \vert \f$.
+      *
+      * If you want to come back to the default behavior, call setThreshold(Default_t)
+      */
+    JacobiSVD& setThreshold(const RealScalar& threshold)
+    {
+      m_usePrescribedThreshold = true;
+      m_prescribedThreshold = threshold;
+      return *this;
+    }
+
+    /** Allows to come back to the default behavior, letting Eigen use its default formula for
+      * determining the threshold.
+      *
+      * You should pass the special object Eigen::Default as parameter here.
+      * \code svd.setThreshold(Eigen::Default); \endcode
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    JacobiSVD& setThreshold(Default_t)
+    {
+      m_usePrescribedThreshold = false;
+      return *this;
+    }
+
+    /** Returns the threshold that will be used by certain methods such as rank().
+      *
+      * See the documentation of setThreshold(const RealScalar&).
+      */
+    RealScalar threshold() const
+    {
+      eigen_assert(m_isInitialized || m_usePrescribedThreshold);
+      return m_usePrescribedThreshold ? m_prescribedThreshold
+                                      : (std::max<Index>)(1,m_diagSize)*NumTraits<Scalar>::epsilon();
+    }
+
+    inline Index rows() const { return m_rows; }
+    inline Index cols() const { return m_cols; }
+
+  private:
+    void allocate(Index rows, Index cols, unsigned int computationOptions);
+    
+    static void check_template_parameters()
+    {
+      EIGEN_STATIC_ASSERT_NON_INTEGER(Scalar);
+    }
+
+  protected:
+    MatrixUType m_matrixU;
+    MatrixVType m_matrixV;
+    SingularValuesType m_singularValues;
+    WorkMatrixType m_workMatrix;
+    bool m_isInitialized, m_isAllocated, m_usePrescribedThreshold;
+    bool m_computeFullU, m_computeThinU;
+    bool m_computeFullV, m_computeThinV;
+    unsigned int m_computationOptions;
+    Index m_nonzeroSingularValues, m_rows, m_cols, m_diagSize;
+    RealScalar m_prescribedThreshold;
+
+    template<typename __MatrixType, int _QRPreconditioner, bool _IsComplex>
+    friend struct internal::svd_precondition_2x2_block_to_be_real;
+    template<typename __MatrixType, int _QRPreconditioner, int _Case, bool _DoAnything>
+    friend struct internal::qr_preconditioner_impl;
+
+    internal::qr_preconditioner_impl<MatrixType, QRPreconditioner, internal::PreconditionIfMoreColsThanRows> m_qr_precond_morecols;
+    internal::qr_preconditioner_impl<MatrixType, QRPreconditioner, internal::PreconditionIfMoreRowsThanCols> m_qr_precond_morerows;
+    MatrixType m_scaledMatrix;
+};
+
+template<typename MatrixType, int QRPreconditioner>
+void JacobiSVD<MatrixType, QRPreconditioner>::allocate(Index rows, Index cols, unsigned int computationOptions)
+{
+  eigen_assert(rows >= 0 && cols >= 0);
+
+  if (m_isAllocated &&
+      rows == m_rows &&
+      cols == m_cols &&
+      computationOptions == m_computationOptions)
+  {
+    return;
+  }
+
+  m_rows = rows;
+  m_cols = cols;
+  m_isInitialized = false;
+  m_isAllocated = true;
+  m_computationOptions = computationOptions;
+  m_computeFullU = (computationOptions & ComputeFullU) != 0;
+  m_computeThinU = (computationOptions & ComputeThinU) != 0;
+  m_computeFullV = (computationOptions & ComputeFullV) != 0;
+  m_computeThinV = (computationOptions & ComputeThinV) != 0;
+  eigen_assert(!(m_computeFullU && m_computeThinU) && "JacobiSVD: you can't ask for both full and thin U");
+  eigen_assert(!(m_computeFullV && m_computeThinV) && "JacobiSVD: you can't ask for both full and thin V");
+  eigen_assert(EIGEN_IMPLIES(m_computeThinU || m_computeThinV, MatrixType::ColsAtCompileTime==Dynamic) &&
+              "JacobiSVD: thin U and V are only available when your matrix has a dynamic number of columns.");
+  if (QRPreconditioner == FullPivHouseholderQRPreconditioner)
+  {
+      eigen_assert(!(m_computeThinU || m_computeThinV) &&
+              "JacobiSVD: can't compute thin U or thin V with the FullPivHouseholderQR preconditioner. "
+              "Use the ColPivHouseholderQR preconditioner instead.");
+  }
+  m_diagSize = (std::min)(m_rows, m_cols);
+  m_singularValues.resize(m_diagSize);
+  if(RowsAtCompileTime==Dynamic)
+    m_matrixU.resize(m_rows, m_computeFullU ? m_rows
+                            : m_computeThinU ? m_diagSize
+                            : 0);
+  if(ColsAtCompileTime==Dynamic)
+    m_matrixV.resize(m_cols, m_computeFullV ? m_cols
+                            : m_computeThinV ? m_diagSize
+                            : 0);
+  m_workMatrix.resize(m_diagSize, m_diagSize);
+  
+  if(m_cols>m_rows)   m_qr_precond_morecols.allocate(*this);
+  if(m_rows>m_cols)   m_qr_precond_morerows.allocate(*this);
+  if(m_rows!=m_cols)  m_scaledMatrix.resize(rows,cols);
+}
+
+template<typename MatrixType, int QRPreconditioner>
+JacobiSVD<MatrixType, QRPreconditioner>&
+JacobiSVD<MatrixType, QRPreconditioner>::compute(const MatrixType& matrix, unsigned int computationOptions)
+{
+  check_template_parameters();
+  
+  using std::abs;
+  using std::max;
+  allocate(matrix.rows(), matrix.cols(), computationOptions);
+
+  // currently we stop when we reach precision 2*epsilon as the last bit of precision can require an unreasonable number of iterations,
+  // only worsening the precision of U and V as we accumulate more rotations
+  const RealScalar precision = RealScalar(2) * NumTraits<Scalar>::epsilon();
+
+  // limit for very small denormal numbers to be considered zero in order to avoid infinite loops (see bug 286)
+  const RealScalar considerAsZero = RealScalar(2) * std::numeric_limits<RealScalar>::denorm_min();
+
+  // Scaling factor to reduce over/under-flows
+  RealScalar scale = matrix.cwiseAbs().maxCoeff();
+  if(scale==RealScalar(0)) scale = RealScalar(1);
+  
+  /*** step 1. The R-SVD step: we use a QR decomposition to reduce to the case of a square matrix */
+
+  if(m_rows!=m_cols)
+  {
+    m_scaledMatrix = matrix / scale;
+    m_qr_precond_morecols.run(*this, m_scaledMatrix);
+    m_qr_precond_morerows.run(*this, m_scaledMatrix);
+  }
+  else
+  {
+    m_workMatrix = matrix.block(0,0,m_diagSize,m_diagSize) / scale;
+    if(m_computeFullU) m_matrixU.setIdentity(m_rows,m_rows);
+    if(m_computeThinU) m_matrixU.setIdentity(m_rows,m_diagSize);
+    if(m_computeFullV) m_matrixV.setIdentity(m_cols,m_cols);
+    if(m_computeThinV) m_matrixV.setIdentity(m_cols, m_diagSize);
+  }
+
+  /*** step 2. The main Jacobi SVD iteration. ***/
+  RealScalar maxDiagEntry = m_workMatrix.cwiseAbs().diagonal().maxCoeff();
+
+  bool finished = false;
+  while(!finished)
+  {
+    finished = true;
+
+    // do a sweep: for all index pairs (p,q), perform SVD of the corresponding 2x2 sub-matrix
+
+    for(Index p = 1; p < m_diagSize; ++p)
+    {
+      for(Index q = 0; q < p; ++q)
+      {
+        // if this 2x2 sub-matrix is not diagonal already...
+        // notice that this comparison will evaluate to false if any NaN is involved, ensuring that NaN's don't
+        // keep us iterating forever. Similarly, small denormal numbers are considered zero.
+        RealScalar threshold = max EIGEN_EMPTY (considerAsZero, precision * maxDiagEntry);
+        if(abs(m_workMatrix.coeff(p,q))>threshold || abs(m_workMatrix.coeff(q,p)) > threshold)
+        {
+          finished = false;
+          // perform SVD decomposition of 2x2 sub-matrix corresponding to indices p,q to make it diagonal
+          // the complex to real operation returns true is the updated 2x2 block is not already diagonal
+          if(internal::svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner>::run(m_workMatrix, *this, p, q, maxDiagEntry))
+          {
+            JacobiRotation<RealScalar> j_left, j_right;
+            internal::real_2x2_jacobi_svd(m_workMatrix, p, q, &j_left, &j_right);
+
+            // accumulate resulting Jacobi rotations
+            m_workMatrix.applyOnTheLeft(p,q,j_left);
+            if(computeU()) m_matrixU.applyOnTheRight(p,q,j_left.transpose());
+
+            m_workMatrix.applyOnTheRight(p,q,j_right);
+            if(computeV()) m_matrixV.applyOnTheRight(p,q,j_right);
+
+            // keep track of the largest diagonal coefficient
+            maxDiagEntry = max EIGEN_EMPTY (maxDiagEntry,max EIGEN_EMPTY (abs(m_workMatrix.coeff(p,p)), abs(m_workMatrix.coeff(q,q))));
+          }
+        }
+      }
+    }
+  }
+
+  /*** step 3. The work matrix is now diagonal, so ensure it's positive so its diagonal entries are the singular values ***/
+
+  for(Index i = 0; i < m_diagSize; ++i)
+  {
+    RealScalar a = abs(m_workMatrix.coeff(i,i));
+    m_singularValues.coeffRef(i) = a;
+    if(computeU() && (a!=RealScalar(0))) m_matrixU.col(i) *= m_workMatrix.coeff(i,i)/a;
+  }
+
+  /*** step 4. Sort singular values in descending order and compute the number of nonzero singular values ***/
+
+  m_nonzeroSingularValues = m_diagSize;
+  for(Index i = 0; i < m_diagSize; i++)
+  {
+    Index pos;
+    RealScalar maxRemainingSingularValue = m_singularValues.tail(m_diagSize-i).maxCoeff(&pos);
+    if(maxRemainingSingularValue == RealScalar(0))
+    {
+      m_nonzeroSingularValues = i;
+      break;
+    }
+    if(pos)
+    {
+      pos += i;
+      std::swap(m_singularValues.coeffRef(i), m_singularValues.coeffRef(pos));
+      if(computeU()) m_matrixU.col(pos).swap(m_matrixU.col(i));
+      if(computeV()) m_matrixV.col(pos).swap(m_matrixV.col(i));
+    }
+  }
+  
+  m_singularValues *= scale;
+
+  m_isInitialized = true;
+  return *this;
+}
+
+namespace internal {
+template<typename _MatrixType, int QRPreconditioner, typename Rhs>
+struct solve_retval<JacobiSVD<_MatrixType, QRPreconditioner>, Rhs>
+  : solve_retval_base<JacobiSVD<_MatrixType, QRPreconditioner>, Rhs>
+{
+  typedef JacobiSVD<_MatrixType, QRPreconditioner> JacobiSVDType;
+  EIGEN_MAKE_SOLVE_HELPERS(JacobiSVDType,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    eigen_assert(rhs().rows() == dec().rows());
+
+    // A = U S V^*
+    // So A^{-1} = V S^{-1} U^*
+
+    Matrix<Scalar, Dynamic, Rhs::ColsAtCompileTime, 0, _MatrixType::MaxRowsAtCompileTime, Rhs::MaxColsAtCompileTime> tmp;
+    Index rank = dec().rank();
+    
+    tmp.noalias() = dec().matrixU().leftCols(rank).adjoint() * rhs();
+    tmp = dec().singularValues().head(rank).asDiagonal().inverse() * tmp;
+    dst = dec().matrixV().leftCols(rank) * tmp;
+  }
+};
+} // end namespace internal
+
+/** \svd_module
+  *
+  * \return the singular value decomposition of \c *this computed by two-sided
+  * Jacobi transformations.
+  *
+  * \sa class JacobiSVD
+  */
+template<typename Derived>
+JacobiSVD<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::jacobiSvd(unsigned int computationOptions) const
+{
+  return JacobiSVD<PlainObject>(*this, computationOptions);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_JACOBISVD_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SVD/JacobiSVD_MKL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SVD/JacobiSVD_MKL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SVD/JacobiSVD_MKL.h	(revision 2476)
@@ -0,0 +1,92 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL
+ *    Singular Value Decomposition - SVD.
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_JACOBISVD_MKL_H
+#define EIGEN_JACOBISVD_MKL_H
+
+#include "Eigen/src/Core/util/MKL_support.h"
+
+namespace Eigen { 
+
+/** \internal Specialization for the data types supported by MKL */
+
+#define EIGEN_MKL_SVD(EIGTYPE, MKLTYPE, MKLRTYPE, MKLPREFIX, EIGCOLROW, MKLCOLROW) \
+template<> inline \
+JacobiSVD<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>, ColPivHouseholderQRPreconditioner>& \
+JacobiSVD<Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>, ColPivHouseholderQRPreconditioner>::compute(const Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic>& matrix, unsigned int computationOptions) \
+{ \
+  typedef Matrix<EIGTYPE, Dynamic, Dynamic, EIGCOLROW, Dynamic, Dynamic> MatrixType; \
+  /*typedef MatrixType::Scalar Scalar;*/ \
+  /*typedef MatrixType::RealScalar RealScalar;*/ \
+  allocate(matrix.rows(), matrix.cols(), computationOptions); \
+\
+  /*const RealScalar precision = RealScalar(2) * NumTraits<Scalar>::epsilon();*/ \
+  m_nonzeroSingularValues = m_diagSize; \
+\
+  lapack_int lda = matrix.outerStride(), ldu, ldvt; \
+  lapack_int matrix_order = MKLCOLROW; \
+  char jobu, jobvt; \
+  MKLTYPE *u, *vt, dummy; \
+  jobu  = (m_computeFullU) ? 'A' : (m_computeThinU) ? 'S' : 'N'; \
+  jobvt = (m_computeFullV) ? 'A' : (m_computeThinV) ? 'S' : 'N'; \
+  if (computeU()) { \
+    ldu  = m_matrixU.outerStride(); \
+    u    = (MKLTYPE*)m_matrixU.data(); \
+  } else { ldu=1; u=&dummy; }\
+  MatrixType localV; \
+  ldvt = (m_computeFullV) ? m_cols : (m_computeThinV) ? m_diagSize : 1; \
+  if (computeV()) { \
+    localV.resize(ldvt, m_cols); \
+    vt   = (MKLTYPE*)localV.data(); \
+  } else { ldvt=1; vt=&dummy; }\
+  Matrix<MKLRTYPE, Dynamic, Dynamic> superb; superb.resize(m_diagSize, 1); \
+  MatrixType m_temp; m_temp = matrix; \
+  LAPACKE_##MKLPREFIX##gesvd( matrix_order, jobu, jobvt, m_rows, m_cols, (MKLTYPE*)m_temp.data(), lda, (MKLRTYPE*)m_singularValues.data(), u, ldu, vt, ldvt, superb.data()); \
+  if (computeV()) m_matrixV = localV.adjoint(); \
+ /* for(int i=0;i<m_diagSize;i++) if (m_singularValues.coeffRef(i) < precision) { m_nonzeroSingularValues--; m_singularValues.coeffRef(i)=RealScalar(0);}*/ \
+  m_isInitialized = true; \
+  return *this; \
+}
+
+EIGEN_MKL_SVD(double,   double,        double, d, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SVD(float,    float,         float , s, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SVD(dcomplex, MKL_Complex16, double, z, ColMajor, LAPACK_COL_MAJOR)
+EIGEN_MKL_SVD(scomplex, MKL_Complex8,  float , c, ColMajor, LAPACK_COL_MAJOR)
+
+EIGEN_MKL_SVD(double,   double,        double, d, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_SVD(float,    float,         float , s, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_SVD(dcomplex, MKL_Complex16, double, z, RowMajor, LAPACK_ROW_MAJOR)
+EIGEN_MKL_SVD(scomplex, MKL_Complex8,  float , c, RowMajor, LAPACK_ROW_MAJOR)
+
+} // end namespace Eigen
+
+#endif // EIGEN_JACOBISVD_MKL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/OrderingMethods/Amd.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/OrderingMethods/Amd.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/OrderingMethods/Amd.h	(revision 2476)
@@ -0,0 +1,444 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Gael Guennebaud <gael.guennebaud@inria.fr>
+
+/*
+
+NOTE: this routine has been adapted from the CSparse library:
+
+Copyright (c) 2006, Timothy A. Davis.
+http://www.suitesparse.com
+
+CSparse is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+CSparse is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this Module; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+*/
+
+#include "../Core/util/NonMPL2.h"
+
+#ifndef EIGEN_SPARSE_AMD_H
+#define EIGEN_SPARSE_AMD_H
+
+namespace Eigen { 
+
+namespace internal {
+  
+template<typename T> inline T amd_flip(const T& i) { return -i-2; }
+template<typename T> inline T amd_unflip(const T& i) { return i<0 ? amd_flip(i) : i; }
+template<typename T0, typename T1> inline bool amd_marked(const T0* w, const T1& j) { return w[j]<0; }
+template<typename T0, typename T1> inline void amd_mark(const T0* w, const T1& j) { return w[j] = amd_flip(w[j]); }
+
+/* clear w */
+template<typename Index>
+static int cs_wclear (Index mark, Index lemax, Index *w, Index n)
+{
+  Index k;
+  if(mark < 2 || (mark + lemax < 0))
+  {
+    for(k = 0; k < n; k++)
+      if(w[k] != 0)
+        w[k] = 1;
+    mark = 2;
+  }
+  return (mark);     /* at this point, w[0..n-1] < mark holds */
+}
+
+/* depth-first search and postorder of a tree rooted at node j */
+template<typename Index>
+Index cs_tdfs(Index j, Index k, Index *head, const Index *next, Index *post, Index *stack)
+{
+  int i, p, top = 0;
+  if(!head || !next || !post || !stack) return (-1);    /* check inputs */
+  stack[0] = j;                 /* place j on the stack */
+  while (top >= 0)                /* while (stack is not empty) */
+  {
+    p = stack[top];           /* p = top of stack */
+    i = head[p];              /* i = youngest child of p */
+    if(i == -1)
+    {
+      top--;                 /* p has no unordered children left */
+      post[k++] = p;        /* node p is the kth postordered node */
+    }
+    else
+    {
+      head[p] = next[i];   /* remove i from children of p */
+      stack[++top] = i;     /* start dfs on child node i */
+    }
+  }
+  return k;
+}
+
+
+/** \internal
+  * \ingroup OrderingMethods_Module 
+  * Approximate minimum degree ordering algorithm.
+  * \returns the permutation P reducing the fill-in of the input matrix \a C
+  * The input matrix \a C must be a selfadjoint compressed column major SparseMatrix object. Both the upper and lower parts have to be stored, but the diagonal entries are optional.
+  * On exit the values of C are destroyed */
+template<typename Scalar, typename Index>
+void minimum_degree_ordering(SparseMatrix<Scalar,ColMajor,Index>& C, PermutationMatrix<Dynamic,Dynamic,Index>& perm)
+{
+  using std::sqrt;
+  
+  int d, dk, dext, lemax = 0, e, elenk, eln, i, j, k, k1,
+      k2, k3, jlast, ln, dense, nzmax, mindeg = 0, nvi, nvj, nvk, mark, wnvi,
+      ok, nel = 0, p, p1, p2, p3, p4, pj, pk, pk1, pk2, pn, q, t;
+  unsigned int h;
+  
+  Index n = C.cols();
+  dense = std::max<Index> (16, Index(10 * sqrt(double(n))));   /* find dense threshold */
+  dense = std::min<Index> (n-2, dense);
+  
+  Index cnz = C.nonZeros();
+  perm.resize(n+1);
+  t = cnz + cnz/5 + 2*n;                 /* add elbow room to C */
+  C.resizeNonZeros(t);
+  
+  Index* W       = new Index[8*(n+1)]; /* get workspace */
+  Index* len     = W;
+  Index* nv      = W +   (n+1);
+  Index* next    = W + 2*(n+1);
+  Index* head    = W + 3*(n+1);
+  Index* elen    = W + 4*(n+1);
+  Index* degree  = W + 5*(n+1);
+  Index* w       = W + 6*(n+1);
+  Index* hhead   = W + 7*(n+1);
+  Index* last    = perm.indices().data();                              /* use P as workspace for last */
+  
+  /* --- Initialize quotient graph ---------------------------------------- */
+  Index* Cp = C.outerIndexPtr();
+  Index* Ci = C.innerIndexPtr();
+  for(k = 0; k < n; k++)
+    len[k] = Cp[k+1] - Cp[k];
+  len[n] = 0;
+  nzmax = t;
+  
+  for(i = 0; i <= n; i++)
+  {
+    head[i]   = -1;                     // degree list i is empty
+    last[i]   = -1;
+    next[i]   = -1;
+    hhead[i]  = -1;                     // hash list i is empty 
+    nv[i]     = 1;                      // node i is just one node
+    w[i]      = 1;                      // node i is alive
+    elen[i]   = 0;                      // Ek of node i is empty
+    degree[i] = len[i];                 // degree of node i
+  }
+  mark = internal::cs_wclear<Index>(0, 0, w, n);         /* clear w */
+  
+  /* --- Initialize degree lists ------------------------------------------ */
+  for(i = 0; i < n; i++)
+  {
+    bool has_diag = false;
+    for(p = Cp[i]; p<Cp[i+1]; ++p)
+      if(Ci[p]==i)
+      {
+        has_diag = true;
+        break;
+      }
+   
+    d = degree[i];
+    if(d == 1 && has_diag)           /* node i is empty */
+    {
+      elen[i] = -2;                 /* element i is dead */
+      nel++;
+      Cp[i] = -1;                   /* i is a root of assembly tree */
+      w[i] = 0;
+    }
+    else if(d > dense || !has_diag)  /* node i is dense or has no structural diagonal element */
+    {
+      nv[i] = 0;                    /* absorb i into element n */
+      elen[i] = -1;                 /* node i is dead */
+      nel++;
+      Cp[i] = amd_flip (n);
+      nv[n]++;
+    }
+    else
+    {
+      if(head[d] != -1) last[head[d]] = i;
+      next[i] = head[d];           /* put node i in degree list d */
+      head[d] = i;
+    }
+  }
+  
+  elen[n] = -2;                         /* n is a dead element */
+  Cp[n] = -1;                           /* n is a root of assembly tree */
+  w[n] = 0;                             /* n is a dead element */
+  
+  while (nel < n)                         /* while (selecting pivots) do */
+  {
+    /* --- Select node of minimum approximate degree -------------------- */
+    for(k = -1; mindeg < n && (k = head[mindeg]) == -1; mindeg++) {}
+    if(next[k] != -1) last[next[k]] = -1;
+    head[mindeg] = next[k];          /* remove k from degree list */
+    elenk = elen[k];                  /* elenk = |Ek| */
+    nvk = nv[k];                      /* # of nodes k represents */
+    nel += nvk;                        /* nv[k] nodes of A eliminated */
+    
+    /* --- Garbage collection ------------------------------------------- */
+    if(elenk > 0 && cnz + mindeg >= nzmax)
+    {
+      for(j = 0; j < n; j++)
+      {
+        if((p = Cp[j]) >= 0)      /* j is a live node or element */
+        {
+          Cp[j] = Ci[p];          /* save first entry of object */
+          Ci[p] = amd_flip (j);    /* first entry is now amd_flip(j) */
+        }
+      }
+      for(q = 0, p = 0; p < cnz; ) /* scan all of memory */
+      {
+        if((j = amd_flip (Ci[p++])) >= 0)  /* found object j */
+        {
+          Ci[q] = Cp[j];       /* restore first entry of object */
+          Cp[j] = q++;          /* new pointer to object j */
+          for(k3 = 0; k3 < len[j]-1; k3++) Ci[q++] = Ci[p++];
+        }
+      }
+      cnz = q;                       /* Ci[cnz...nzmax-1] now free */
+    }
+    
+    /* --- Construct new element ---------------------------------------- */
+    dk = 0;
+    nv[k] = -nvk;                     /* flag k as in Lk */
+    p = Cp[k];
+    pk1 = (elenk == 0) ? p : cnz;      /* do in place if elen[k] == 0 */
+    pk2 = pk1;
+    for(k1 = 1; k1 <= elenk + 1; k1++)
+    {
+      if(k1 > elenk)
+      {
+        e = k;                     /* search the nodes in k */
+        pj = p;                    /* list of nodes starts at Ci[pj]*/
+        ln = len[k] - elenk;      /* length of list of nodes in k */
+      }
+      else
+      {
+        e = Ci[p++];              /* search the nodes in e */
+        pj = Cp[e];
+        ln = len[e];              /* length of list of nodes in e */
+      }
+      for(k2 = 1; k2 <= ln; k2++)
+      {
+        i = Ci[pj++];
+        if((nvi = nv[i]) <= 0) continue; /* node i dead, or seen */
+        dk += nvi;                 /* degree[Lk] += size of node i */
+        nv[i] = -nvi;             /* negate nv[i] to denote i in Lk*/
+        Ci[pk2++] = i;            /* place i in Lk */
+        if(next[i] != -1) last[next[i]] = last[i];
+        if(last[i] != -1)         /* remove i from degree list */
+        {
+          next[last[i]] = next[i];
+        }
+        else
+        {
+          head[degree[i]] = next[i];
+        }
+      }
+      if(e != k)
+      {
+        Cp[e] = amd_flip (k);      /* absorb e into k */
+        w[e] = 0;                 /* e is now a dead element */
+      }
+    }
+    if(elenk != 0) cnz = pk2;         /* Ci[cnz...nzmax] is free */
+    degree[k] = dk;                   /* external degree of k - |Lk\i| */
+    Cp[k] = pk1;                      /* element k is in Ci[pk1..pk2-1] */
+    len[k] = pk2 - pk1;
+    elen[k] = -2;                     /* k is now an element */
+    
+    /* --- Find set differences ----------------------------------------- */
+    mark = internal::cs_wclear<Index>(mark, lemax, w, n);  /* clear w if necessary */
+    for(pk = pk1; pk < pk2; pk++)    /* scan 1: find |Le\Lk| */
+    {
+      i = Ci[pk];
+      if((eln = elen[i]) <= 0) continue;/* skip if elen[i] empty */
+      nvi = -nv[i];                      /* nv[i] was negated */
+      wnvi = mark - nvi;
+      for(p = Cp[i]; p <= Cp[i] + eln - 1; p++)  /* scan Ei */
+      {
+        e = Ci[p];
+        if(w[e] >= mark)
+        {
+          w[e] -= nvi;          /* decrement |Le\Lk| */
+        }
+        else if(w[e] != 0)        /* ensure e is a live element */
+        {
+          w[e] = degree[e] + wnvi; /* 1st time e seen in scan 1 */
+        }
+      }
+    }
+    
+    /* --- Degree update ------------------------------------------------ */
+    for(pk = pk1; pk < pk2; pk++)    /* scan2: degree update */
+    {
+      i = Ci[pk];                   /* consider node i in Lk */
+      p1 = Cp[i];
+      p2 = p1 + elen[i] - 1;
+      pn = p1;
+      for(h = 0, d = 0, p = p1; p <= p2; p++)    /* scan Ei */
+      {
+        e = Ci[p];
+        if(w[e] != 0)             /* e is an unabsorbed element */
+        {
+          dext = w[e] - mark;   /* dext = |Le\Lk| */
+          if(dext > 0)
+          {
+            d += dext;         /* sum up the set differences */
+            Ci[pn++] = e;     /* keep e in Ei */
+            h += e;            /* compute the hash of node i */
+          }
+          else
+          {
+            Cp[e] = amd_flip (k);  /* aggressive absorb. e->k */
+            w[e] = 0;             /* e is a dead element */
+          }
+        }
+      }
+      elen[i] = pn - p1 + 1;        /* elen[i] = |Ei| */
+      p3 = pn;
+      p4 = p1 + len[i];
+      for(p = p2 + 1; p < p4; p++) /* prune edges in Ai */
+      {
+        j = Ci[p];
+        if((nvj = nv[j]) <= 0) continue; /* node j dead or in Lk */
+        d += nvj;                  /* degree(i) += |j| */
+        Ci[pn++] = j;             /* place j in node list of i */
+        h += j;                    /* compute hash for node i */
+      }
+      if(d == 0)                     /* check for mass elimination */
+      {
+        Cp[i] = amd_flip (k);      /* absorb i into k */
+        nvi = -nv[i];
+        dk -= nvi;                 /* |Lk| -= |i| */
+        nvk += nvi;                /* |k| += nv[i] */
+        nel += nvi;
+        nv[i] = 0;
+        elen[i] = -1;             /* node i is dead */
+      }
+      else
+      {
+        degree[i] = std::min<Index> (degree[i], d);   /* update degree(i) */
+        Ci[pn] = Ci[p3];         /* move first node to end */
+        Ci[p3] = Ci[p1];         /* move 1st el. to end of Ei */
+        Ci[p1] = k;               /* add k as 1st element in of Ei */
+        len[i] = pn - p1 + 1;     /* new len of adj. list of node i */
+        h %= n;                    /* finalize hash of i */
+        next[i] = hhead[h];      /* place i in hash bucket */
+        hhead[h] = i;
+        last[i] = h;              /* save hash of i in last[i] */
+      }
+    }                                   /* scan2 is done */
+    degree[k] = dk;                   /* finalize |Lk| */
+    lemax = std::max<Index>(lemax, dk);
+    mark = internal::cs_wclear<Index>(mark+lemax, lemax, w, n);    /* clear w */
+    
+    /* --- Supernode detection ------------------------------------------ */
+    for(pk = pk1; pk < pk2; pk++)
+    {
+      i = Ci[pk];
+      if(nv[i] >= 0) continue;         /* skip if i is dead */
+      h = last[i];                      /* scan hash bucket of node i */
+      i = hhead[h];
+      hhead[h] = -1;                    /* hash bucket will be empty */
+      for(; i != -1 && next[i] != -1; i = next[i], mark++)
+      {
+        ln = len[i];
+        eln = elen[i];
+        for(p = Cp[i]+1; p <= Cp[i] + ln-1; p++) w[Ci[p]] = mark;
+        jlast = i;
+        for(j = next[i]; j != -1; ) /* compare i with all j */
+        {
+          ok = (len[j] == ln) && (elen[j] == eln);
+          for(p = Cp[j] + 1; ok && p <= Cp[j] + ln - 1; p++)
+          {
+            if(w[Ci[p]] != mark) ok = 0;    /* compare i and j*/
+          }
+          if(ok)                     /* i and j are identical */
+          {
+            Cp[j] = amd_flip (i);  /* absorb j into i */
+            nv[i] += nv[j];
+            nv[j] = 0;
+            elen[j] = -1;         /* node j is dead */
+            j = next[j];          /* delete j from hash bucket */
+            next[jlast] = j;
+          }
+          else
+          {
+            jlast = j;             /* j and i are different */
+            j = next[j];
+          }
+        }
+      }
+    }
+    
+    /* --- Finalize new element------------------------------------------ */
+    for(p = pk1, pk = pk1; pk < pk2; pk++)   /* finalize Lk */
+    {
+      i = Ci[pk];
+      if((nvi = -nv[i]) <= 0) continue;/* skip if i is dead */
+      nv[i] = nvi;                      /* restore nv[i] */
+      d = degree[i] + dk - nvi;         /* compute external degree(i) */
+      d = std::min<Index> (d, n - nel - nvi);
+      if(head[d] != -1) last[head[d]] = i;
+      next[i] = head[d];               /* put i back in degree list */
+      last[i] = -1;
+      head[d] = i;
+      mindeg = std::min<Index> (mindeg, d);       /* find new minimum degree */
+      degree[i] = d;
+      Ci[p++] = i;                      /* place i in Lk */
+    }
+    nv[k] = nvk;                      /* # nodes absorbed into k */
+    if((len[k] = p-pk1) == 0)         /* length of adj list of element k*/
+    {
+      Cp[k] = -1;                   /* k is a root of the tree */
+      w[k] = 0;                     /* k is now a dead element */
+    }
+    if(elenk != 0) cnz = p;           /* free unused space in Lk */
+  }
+  
+  /* --- Postordering ----------------------------------------------------- */
+  for(i = 0; i < n; i++) Cp[i] = amd_flip (Cp[i]);/* fix assembly tree */
+  for(j = 0; j <= n; j++) head[j] = -1;
+  for(j = n; j >= 0; j--)              /* place unordered nodes in lists */
+  {
+    if(nv[j] > 0) continue;          /* skip if j is an element */
+    next[j] = head[Cp[j]];          /* place j in list of its parent */
+    head[Cp[j]] = j;
+  }
+  for(e = n; e >= 0; e--)              /* place elements in lists */
+  {
+    if(nv[e] <= 0) continue;         /* skip unless e is an element */
+    if(Cp[e] != -1)
+    {
+      next[e] = head[Cp[e]];      /* place e in list of its parent */
+      head[Cp[e]] = e;
+    }
+  }
+  for(k = 0, i = 0; i <= n; i++)       /* postorder the assembly tree */
+  {
+    if(Cp[i] == -1) k = internal::cs_tdfs<Index>(i, k, head, next, perm.indices().data(), w);
+  }
+  
+  perm.indices().conservativeResize(n);
+
+  delete[] W;
+}
+
+} // namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_AMD_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/OrderingMethods/Eigen_Colamd.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/OrderingMethods/Eigen_Colamd.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/OrderingMethods/Eigen_Colamd.h	(revision 2476)
@@ -0,0 +1,1843 @@
+// // This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Desire Nuentsa Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+// This file is modified from the colamd/symamd library. The copyright is below
+
+//   The authors of the code itself are Stefan I. Larimore and Timothy A.
+//   Davis (davis@cise.ufl.edu), University of Florida.  The algorithm was
+//   developed in collaboration with John Gilbert, Xerox PARC, and Esmond
+//   Ng, Oak Ridge National Laboratory.
+// 
+//     Date:
+// 
+//   September 8, 2003.  Version 2.3.
+// 
+//     Acknowledgements:
+// 
+//   This work was supported by the National Science Foundation, under
+//   grants DMS-9504974 and DMS-9803599.
+// 
+//     Notice:
+// 
+//   Copyright (c) 1998-2003 by the University of Florida.
+//   All Rights Reserved.
+// 
+//   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+//   EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+// 
+//   Permission is hereby granted to use, copy, modify, and/or distribute
+//   this program, provided that the Copyright, this License, and the
+//   Availability of the original version is retained on all copies and made
+//   accessible to the end-user of any code or package that includes COLAMD
+//   or any modified version of COLAMD. 
+// 
+//     Availability:
+// 
+//   The colamd/symamd library is available at
+// 
+//       http://www.suitesparse.com
+
+  
+#ifndef EIGEN_COLAMD_H
+#define EIGEN_COLAMD_H
+
+namespace internal {
+/* Ensure that debugging is turned off: */
+#ifndef COLAMD_NDEBUG
+#define COLAMD_NDEBUG
+#endif /* NDEBUG */
+/* ========================================================================== */
+/* === Knob and statistics definitions ====================================== */
+/* ========================================================================== */
+
+/* size of the knobs [ ] array.  Only knobs [0..1] are currently used. */
+#define COLAMD_KNOBS 20
+
+/* number of output statistics.  Only stats [0..6] are currently used. */
+#define COLAMD_STATS 20 
+
+/* knobs [0] and stats [0]: dense row knob and output statistic. */
+#define COLAMD_DENSE_ROW 0
+
+/* knobs [1] and stats [1]: dense column knob and output statistic. */
+#define COLAMD_DENSE_COL 1
+
+/* stats [2]: memory defragmentation count output statistic */
+#define COLAMD_DEFRAG_COUNT 2
+
+/* stats [3]: colamd status:  zero OK, > 0 warning or notice, < 0 error */
+#define COLAMD_STATUS 3
+
+/* stats [4..6]: error info, or info on jumbled columns */ 
+#define COLAMD_INFO1 4
+#define COLAMD_INFO2 5
+#define COLAMD_INFO3 6
+
+/* error codes returned in stats [3]: */
+#define COLAMD_OK       (0)
+#define COLAMD_OK_BUT_JUMBLED     (1)
+#define COLAMD_ERROR_A_not_present    (-1)
+#define COLAMD_ERROR_p_not_present    (-2)
+#define COLAMD_ERROR_nrow_negative    (-3)
+#define COLAMD_ERROR_ncol_negative    (-4)
+#define COLAMD_ERROR_nnz_negative   (-5)
+#define COLAMD_ERROR_p0_nonzero     (-6)
+#define COLAMD_ERROR_A_too_small    (-7)
+#define COLAMD_ERROR_col_length_negative  (-8)
+#define COLAMD_ERROR_row_index_out_of_bounds  (-9)
+#define COLAMD_ERROR_out_of_memory    (-10)
+#define COLAMD_ERROR_internal_error   (-999)
+
+/* ========================================================================== */
+/* === Definitions ========================================================== */
+/* ========================================================================== */
+
+#define ONES_COMPLEMENT(r) (-(r)-1)
+
+/* -------------------------------------------------------------------------- */
+
+#define COLAMD_EMPTY (-1)
+
+/* Row and column status */
+#define ALIVE (0)
+#define DEAD  (-1)
+
+/* Column status */
+#define DEAD_PRINCIPAL    (-1)
+#define DEAD_NON_PRINCIPAL  (-2)
+
+/* Macros for row and column status update and checking. */
+#define ROW_IS_DEAD(r)      ROW_IS_MARKED_DEAD (Row[r].shared2.mark)
+#define ROW_IS_MARKED_DEAD(row_mark)  (row_mark < ALIVE)
+#define ROW_IS_ALIVE(r)     (Row [r].shared2.mark >= ALIVE)
+#define COL_IS_DEAD(c)      (Col [c].start < ALIVE)
+#define COL_IS_ALIVE(c)     (Col [c].start >= ALIVE)
+#define COL_IS_DEAD_PRINCIPAL(c)  (Col [c].start == DEAD_PRINCIPAL)
+#define KILL_ROW(r)     { Row [r].shared2.mark = DEAD ; }
+#define KILL_PRINCIPAL_COL(c)   { Col [c].start = DEAD_PRINCIPAL ; }
+#define KILL_NON_PRINCIPAL_COL(c) { Col [c].start = DEAD_NON_PRINCIPAL ; }
+
+/* ========================================================================== */
+/* === Colamd reporting mechanism =========================================== */
+/* ========================================================================== */
+
+// == Row and Column structures ==
+template <typename Index>
+struct colamd_col
+{
+  Index start ;   /* index for A of first row in this column, or DEAD */
+  /* if column is dead */
+  Index length ;  /* number of rows in this column */
+  union
+  {
+    Index thickness ; /* number of original columns represented by this */
+    /* col, if the column is alive */
+    Index parent ;  /* parent in parent tree super-column structure, if */
+    /* the column is dead */
+  } shared1 ;
+  union
+  {
+    Index score ; /* the score used to maintain heap, if col is alive */
+    Index order ; /* pivot ordering of this column, if col is dead */
+  } shared2 ;
+  union
+  {
+    Index headhash ;  /* head of a hash bucket, if col is at the head of */
+    /* a degree list */
+    Index hash ;  /* hash value, if col is not in a degree list */
+    Index prev ;  /* previous column in degree list, if col is in a */
+    /* degree list (but not at the head of a degree list) */
+  } shared3 ;
+  union
+  {
+    Index degree_next ; /* next column, if col is in a degree list */
+    Index hash_next ;   /* next column, if col is in a hash list */
+  } shared4 ;
+  
+};
+ 
+template <typename Index>
+struct Colamd_Row
+{
+  Index start ;   /* index for A of first col in this row */
+  Index length ;  /* number of principal columns in this row */
+  union
+  {
+    Index degree ;  /* number of principal & non-principal columns in row */
+    Index p ;   /* used as a row pointer in init_rows_cols () */
+  } shared1 ;
+  union
+  {
+    Index mark ;  /* for computing set differences and marking dead rows*/
+    Index first_column ;/* first column in row (used in garbage collection) */
+  } shared2 ;
+  
+};
+ 
+/* ========================================================================== */
+/* === Colamd recommended memory size ======================================= */
+/* ========================================================================== */
+ 
+/*
+  The recommended length Alen of the array A passed to colamd is given by
+  the COLAMD_RECOMMENDED (nnz, n_row, n_col) macro.  It returns -1 if any
+  argument is negative.  2*nnz space is required for the row and column
+  indices of the matrix. colamd_c (n_col) + colamd_r (n_row) space is
+  required for the Col and Row arrays, respectively, which are internal to
+  colamd.  An additional n_col space is the minimal amount of "elbow room",
+  and nnz/5 more space is recommended for run time efficiency.
+  
+  This macro is not needed when using symamd.
+  
+  Explicit typecast to Index added Sept. 23, 2002, COLAMD version 2.2, to avoid
+  gcc -pedantic warning messages.
+*/
+template <typename Index>
+inline Index colamd_c(Index n_col) 
+{ return Index( ((n_col) + 1) * sizeof (colamd_col<Index>) / sizeof (Index) ) ; }
+
+template <typename Index>
+inline Index  colamd_r(Index n_row)
+{ return Index(((n_row) + 1) * sizeof (Colamd_Row<Index>) / sizeof (Index)); }
+
+// Prototypes of non-user callable routines
+template <typename Index>
+static Index init_rows_cols (Index n_row, Index n_col, Colamd_Row<Index> Row [], colamd_col<Index> col [], Index A [], Index p [], Index stats[COLAMD_STATS] ); 
+
+template <typename Index>
+static void init_scoring (Index n_row, Index n_col, Colamd_Row<Index> Row [], colamd_col<Index> Col [], Index A [], Index head [], double knobs[COLAMD_KNOBS], Index *p_n_row2, Index *p_n_col2, Index *p_max_deg);
+
+template <typename Index>
+static Index find_ordering (Index n_row, Index n_col, Index Alen, Colamd_Row<Index> Row [], colamd_col<Index> Col [], Index A [], Index head [], Index n_col2, Index max_deg, Index pfree);
+
+template <typename Index>
+static void order_children (Index n_col, colamd_col<Index> Col [], Index p []);
+
+template <typename Index>
+static void detect_super_cols (colamd_col<Index> Col [], Index A [], Index head [], Index row_start, Index row_length ) ;
+
+template <typename Index>
+static Index garbage_collection (Index n_row, Index n_col, Colamd_Row<Index> Row [], colamd_col<Index> Col [], Index A [], Index *pfree) ;
+
+template <typename Index>
+static inline  Index clear_mark (Index n_row, Colamd_Row<Index> Row [] ) ;
+
+/* === No debugging ========================================================= */
+
+#define COLAMD_DEBUG0(params) ;
+#define COLAMD_DEBUG1(params) ;
+#define COLAMD_DEBUG2(params) ;
+#define COLAMD_DEBUG3(params) ;
+#define COLAMD_DEBUG4(params) ;
+
+#define COLAMD_ASSERT(expression) ((void) 0)
+
+
+/**
+ * \brief Returns the recommended value of Alen 
+ * 
+ * Returns recommended value of Alen for use by colamd.  
+ * Returns -1 if any input argument is negative.  
+ * The use of this routine or macro is optional.  
+ * Note that the macro uses its arguments   more than once, 
+ * so be careful for side effects, if you pass expressions as arguments to COLAMD_RECOMMENDED.  
+ * 
+ * \param nnz nonzeros in A
+ * \param n_row number of rows in A
+ * \param n_col number of columns in A
+ * \return recommended value of Alen for use by colamd
+ */
+template <typename Index>
+inline Index colamd_recommended ( Index nnz, Index n_row, Index n_col)
+{
+  if ((nnz) < 0 || (n_row) < 0 || (n_col) < 0)
+    return (-1);
+  else
+    return (2 * (nnz) + colamd_c (n_col) + colamd_r (n_row) + (n_col) + ((nnz) / 5)); 
+}
+
+/**
+ * \brief set default parameters  The use of this routine is optional.
+ * 
+ * Colamd: rows with more than (knobs [COLAMD_DENSE_ROW] * n_col)
+ * entries are removed prior to ordering.  Columns with more than
+ * (knobs [COLAMD_DENSE_COL] * n_row) entries are removed prior to
+ * ordering, and placed last in the output column ordering. 
+ *
+ * COLAMD_DENSE_ROW and COLAMD_DENSE_COL are defined as 0 and 1,
+ * respectively, in colamd.h.  Default values of these two knobs
+ * are both 0.5.  Currently, only knobs [0] and knobs [1] are
+ * used, but future versions may use more knobs.  If so, they will
+ * be properly set to their defaults by the future version of
+ * colamd_set_defaults, so that the code that calls colamd will
+ * not need to change, assuming that you either use
+ * colamd_set_defaults, or pass a (double *) NULL pointer as the
+ * knobs array to colamd or symamd.
+ * 
+ * \param knobs parameter settings for colamd
+ */
+
+static inline void colamd_set_defaults(double knobs[COLAMD_KNOBS])
+{
+  /* === Local variables ================================================== */
+  
+  int i ;
+
+  if (!knobs)
+  {
+    return ;      /* no knobs to initialize */
+  }
+  for (i = 0 ; i < COLAMD_KNOBS ; i++)
+  {
+    knobs [i] = 0 ;
+  }
+  knobs [COLAMD_DENSE_ROW] = 0.5 ;  /* ignore rows over 50% dense */
+  knobs [COLAMD_DENSE_COL] = 0.5 ;  /* ignore columns over 50% dense */
+}
+
+/** 
+ * \brief  Computes a column ordering using the column approximate minimum degree ordering
+ * 
+ * Computes a column ordering (Q) of A such that P(AQ)=LU or
+ * (AQ)'AQ=LL' have less fill-in and require fewer floating point
+ * operations than factorizing the unpermuted matrix A or A'A,
+ * respectively.
+ * 
+ * 
+ * \param n_row number of rows in A
+ * \param n_col number of columns in A
+ * \param Alen, size of the array A
+ * \param A row indices of the matrix, of size ALen
+ * \param p column pointers of A, of size n_col+1
+ * \param knobs parameter settings for colamd
+ * \param stats colamd output statistics and error codes
+ */
+template <typename Index>
+static bool colamd(Index n_row, Index n_col, Index Alen, Index *A, Index *p, double knobs[COLAMD_KNOBS], Index stats[COLAMD_STATS])
+{
+  /* === Local variables ================================================== */
+  
+  Index i ;     /* loop index */
+  Index nnz ;     /* nonzeros in A */
+  Index Row_size ;    /* size of Row [], in integers */
+  Index Col_size ;    /* size of Col [], in integers */
+  Index need ;      /* minimum required length of A */
+  Colamd_Row<Index> *Row ;   /* pointer into A of Row [0..n_row] array */
+  colamd_col<Index> *Col ;   /* pointer into A of Col [0..n_col] array */
+  Index n_col2 ;    /* number of non-dense, non-empty columns */
+  Index n_row2 ;    /* number of non-dense, non-empty rows */
+  Index ngarbage ;    /* number of garbage collections performed */
+  Index max_deg ;   /* maximum row degree */
+  double default_knobs [COLAMD_KNOBS] ; /* default knobs array */
+  
+  
+  /* === Check the input arguments ======================================== */
+  
+  if (!stats)
+  {
+    COLAMD_DEBUG0 (("colamd: stats not present\n")) ;
+    return (false) ;
+  }
+  for (i = 0 ; i < COLAMD_STATS ; i++)
+  {
+    stats [i] = 0 ;
+  }
+  stats [COLAMD_STATUS] = COLAMD_OK ;
+  stats [COLAMD_INFO1] = -1 ;
+  stats [COLAMD_INFO2] = -1 ;
+  
+  if (!A)   /* A is not present */
+  {
+    stats [COLAMD_STATUS] = COLAMD_ERROR_A_not_present ;
+    COLAMD_DEBUG0 (("colamd: A not present\n")) ;
+    return (false) ;
+  }
+  
+  if (!p)   /* p is not present */
+  {
+    stats [COLAMD_STATUS] = COLAMD_ERROR_p_not_present ;
+    COLAMD_DEBUG0 (("colamd: p not present\n")) ;
+    return (false) ;
+  }
+  
+  if (n_row < 0)  /* n_row must be >= 0 */
+  {
+    stats [COLAMD_STATUS] = COLAMD_ERROR_nrow_negative ;
+    stats [COLAMD_INFO1] = n_row ;
+    COLAMD_DEBUG0 (("colamd: nrow negative %d\n", n_row)) ;
+    return (false) ;
+  }
+  
+  if (n_col < 0)  /* n_col must be >= 0 */
+  {
+    stats [COLAMD_STATUS] = COLAMD_ERROR_ncol_negative ;
+    stats [COLAMD_INFO1] = n_col ;
+    COLAMD_DEBUG0 (("colamd: ncol negative %d\n", n_col)) ;
+    return (false) ;
+  }
+  
+  nnz = p [n_col] ;
+  if (nnz < 0)  /* nnz must be >= 0 */
+  {
+    stats [COLAMD_STATUS] = COLAMD_ERROR_nnz_negative ;
+    stats [COLAMD_INFO1] = nnz ;
+    COLAMD_DEBUG0 (("colamd: number of entries negative %d\n", nnz)) ;
+    return (false) ;
+  }
+  
+  if (p [0] != 0)
+  {
+    stats [COLAMD_STATUS] = COLAMD_ERROR_p0_nonzero ;
+    stats [COLAMD_INFO1] = p [0] ;
+    COLAMD_DEBUG0 (("colamd: p[0] not zero %d\n", p [0])) ;
+    return (false) ;
+  }
+  
+  /* === If no knobs, set default knobs =================================== */
+  
+  if (!knobs)
+  {
+    colamd_set_defaults (default_knobs) ;
+    knobs = default_knobs ;
+  }
+  
+  /* === Allocate the Row and Col arrays from array A ===================== */
+  
+  Col_size = colamd_c (n_col) ;
+  Row_size = colamd_r (n_row) ;
+  need = 2*nnz + n_col + Col_size + Row_size ;
+  
+  if (need > Alen)
+  {
+    /* not enough space in array A to perform the ordering */
+    stats [COLAMD_STATUS] = COLAMD_ERROR_A_too_small ;
+    stats [COLAMD_INFO1] = need ;
+    stats [COLAMD_INFO2] = Alen ;
+    COLAMD_DEBUG0 (("colamd: Need Alen >= %d, given only Alen = %d\n", need,Alen));
+    return (false) ;
+  }
+  
+  Alen -= Col_size + Row_size ;
+  Col = (colamd_col<Index> *) &A [Alen] ;
+  Row = (Colamd_Row<Index> *) &A [Alen + Col_size] ;
+
+  /* === Construct the row and column data structures ===================== */
+  
+  if (!Eigen::internal::init_rows_cols (n_row, n_col, Row, Col, A, p, stats))
+  {
+    /* input matrix is invalid */
+    COLAMD_DEBUG0 (("colamd: Matrix invalid\n")) ;
+    return (false) ;
+  }
+  
+  /* === Initialize scores, kill dense rows/columns ======================= */
+
+  Eigen::internal::init_scoring (n_row, n_col, Row, Col, A, p, knobs,
+		&n_row2, &n_col2, &max_deg) ;
+  
+  /* === Order the supercolumns =========================================== */
+  
+  ngarbage = Eigen::internal::find_ordering (n_row, n_col, Alen, Row, Col, A, p,
+			    n_col2, max_deg, 2*nnz) ;
+  
+  /* === Order the non-principal columns ================================== */
+  
+  Eigen::internal::order_children (n_col, Col, p) ;
+  
+  /* === Return statistics in stats ======================================= */
+  
+  stats [COLAMD_DENSE_ROW] = n_row - n_row2 ;
+  stats [COLAMD_DENSE_COL] = n_col - n_col2 ;
+  stats [COLAMD_DEFRAG_COUNT] = ngarbage ;
+  COLAMD_DEBUG0 (("colamd: done.\n")) ; 
+  return (true) ;
+}
+
+/* ========================================================================== */
+/* === NON-USER-CALLABLE ROUTINES: ========================================== */
+/* ========================================================================== */
+
+/* There are no user-callable routines beyond this point in the file */
+
+
+/* ========================================================================== */
+/* === init_rows_cols ======================================================= */
+/* ========================================================================== */
+
+/*
+  Takes the column form of the matrix in A and creates the row form of the
+  matrix.  Also, row and column attributes are stored in the Col and Row
+  structs.  If the columns are un-sorted or contain duplicate row indices,
+  this routine will also sort and remove duplicate row indices from the
+  column form of the matrix.  Returns false if the matrix is invalid,
+  true otherwise.  Not user-callable.
+*/
+template <typename Index>
+static Index init_rows_cols  /* returns true if OK, or false otherwise */
+  (
+    /* === Parameters ======================================================= */
+
+    Index n_row,      /* number of rows of A */
+    Index n_col,      /* number of columns of A */
+    Colamd_Row<Index> Row [],    /* of size n_row+1 */
+    colamd_col<Index> Col [],    /* of size n_col+1 */
+    Index A [],     /* row indices of A, of size Alen */
+    Index p [],     /* pointers to columns in A, of size n_col+1 */
+    Index stats [COLAMD_STATS]  /* colamd statistics */ 
+    )
+{
+  /* === Local variables ================================================== */
+
+  Index col ;     /* a column index */
+  Index row ;     /* a row index */
+  Index *cp ;     /* a column pointer */
+  Index *cp_end ;   /* a pointer to the end of a column */
+  Index *rp ;     /* a row pointer */
+  Index *rp_end ;   /* a pointer to the end of a row */
+  Index last_row ;    /* previous row */
+
+  /* === Initialize columns, and check column pointers ==================== */
+
+  for (col = 0 ; col < n_col ; col++)
+  {
+    Col [col].start = p [col] ;
+    Col [col].length = p [col+1] - p [col] ;
+
+    if ((Col [col].length) < 0) // extra parentheses to work-around gcc bug 10200
+    {
+      /* column pointers must be non-decreasing */
+      stats [COLAMD_STATUS] = COLAMD_ERROR_col_length_negative ;
+      stats [COLAMD_INFO1] = col ;
+      stats [COLAMD_INFO2] = Col [col].length ;
+      COLAMD_DEBUG0 (("colamd: col %d length %d < 0\n", col, Col [col].length)) ;
+      return (false) ;
+    }
+
+    Col [col].shared1.thickness = 1 ;
+    Col [col].shared2.score = 0 ;
+    Col [col].shared3.prev = COLAMD_EMPTY ;
+    Col [col].shared4.degree_next = COLAMD_EMPTY ;
+  }
+
+  /* p [0..n_col] no longer needed, used as "head" in subsequent routines */
+
+  /* === Scan columns, compute row degrees, and check row indices ========= */
+
+  stats [COLAMD_INFO3] = 0 ;  /* number of duplicate or unsorted row indices*/
+
+  for (row = 0 ; row < n_row ; row++)
+  {
+    Row [row].length = 0 ;
+    Row [row].shared2.mark = -1 ;
+  }
+
+  for (col = 0 ; col < n_col ; col++)
+  {
+    last_row = -1 ;
+
+    cp = &A [p [col]] ;
+    cp_end = &A [p [col+1]] ;
+
+    while (cp < cp_end)
+    {
+      row = *cp++ ;
+
+      /* make sure row indices within range */
+      if (row < 0 || row >= n_row)
+      {
+	stats [COLAMD_STATUS] = COLAMD_ERROR_row_index_out_of_bounds ;
+	stats [COLAMD_INFO1] = col ;
+	stats [COLAMD_INFO2] = row ;
+	stats [COLAMD_INFO3] = n_row ;
+	COLAMD_DEBUG0 (("colamd: row %d col %d out of bounds\n", row, col)) ;
+	return (false) ;
+      }
+
+      if (row <= last_row || Row [row].shared2.mark == col)
+      {
+	/* row index are unsorted or repeated (or both), thus col */
+	/* is jumbled.  This is a notice, not an error condition. */
+	stats [COLAMD_STATUS] = COLAMD_OK_BUT_JUMBLED ;
+	stats [COLAMD_INFO1] = col ;
+	stats [COLAMD_INFO2] = row ;
+	(stats [COLAMD_INFO3]) ++ ;
+	COLAMD_DEBUG1 (("colamd: row %d col %d unsorted/duplicate\n",row,col));
+      }
+
+      if (Row [row].shared2.mark != col)
+      {
+	Row [row].length++ ;
+      }
+      else
+      {
+	/* this is a repeated entry in the column, */
+	/* it will be removed */
+	Col [col].length-- ;
+      }
+
+      /* mark the row as having been seen in this column */
+      Row [row].shared2.mark = col ;
+
+      last_row = row ;
+    }
+  }
+
+  /* === Compute row pointers ============================================= */
+
+  /* row form of the matrix starts directly after the column */
+  /* form of matrix in A */
+  Row [0].start = p [n_col] ;
+  Row [0].shared1.p = Row [0].start ;
+  Row [0].shared2.mark = -1 ;
+  for (row = 1 ; row < n_row ; row++)
+  {
+    Row [row].start = Row [row-1].start + Row [row-1].length ;
+    Row [row].shared1.p = Row [row].start ;
+    Row [row].shared2.mark = -1 ;
+  }
+
+  /* === Create row form ================================================== */
+
+  if (stats [COLAMD_STATUS] == COLAMD_OK_BUT_JUMBLED)
+  {
+    /* if cols jumbled, watch for repeated row indices */
+    for (col = 0 ; col < n_col ; col++)
+    {
+      cp = &A [p [col]] ;
+      cp_end = &A [p [col+1]] ;
+      while (cp < cp_end)
+      {
+	row = *cp++ ;
+	if (Row [row].shared2.mark != col)
+	{
+	  A [(Row [row].shared1.p)++] = col ;
+	  Row [row].shared2.mark = col ;
+	}
+      }
+    }
+  }
+  else
+  {
+    /* if cols not jumbled, we don't need the mark (this is faster) */
+    for (col = 0 ; col < n_col ; col++)
+    {
+      cp = &A [p [col]] ;
+      cp_end = &A [p [col+1]] ;
+      while (cp < cp_end)
+      {
+	A [(Row [*cp++].shared1.p)++] = col ;
+      }
+    }
+  }
+
+  /* === Clear the row marks and set row degrees ========================== */
+
+  for (row = 0 ; row < n_row ; row++)
+  {
+    Row [row].shared2.mark = 0 ;
+    Row [row].shared1.degree = Row [row].length ;
+  }
+
+  /* === See if we need to re-create columns ============================== */
+
+  if (stats [COLAMD_STATUS] == COLAMD_OK_BUT_JUMBLED)
+  {
+    COLAMD_DEBUG0 (("colamd: reconstructing column form, matrix jumbled\n")) ;
+
+
+    /* === Compute col pointers ========================================= */
+
+    /* col form of the matrix starts at A [0]. */
+    /* Note, we may have a gap between the col form and the row */
+    /* form if there were duplicate entries, if so, it will be */
+    /* removed upon the first garbage collection */
+    Col [0].start = 0 ;
+    p [0] = Col [0].start ;
+    for (col = 1 ; col < n_col ; col++)
+    {
+      /* note that the lengths here are for pruned columns, i.e. */
+      /* no duplicate row indices will exist for these columns */
+      Col [col].start = Col [col-1].start + Col [col-1].length ;
+      p [col] = Col [col].start ;
+    }
+
+    /* === Re-create col form =========================================== */
+
+    for (row = 0 ; row < n_row ; row++)
+    {
+      rp = &A [Row [row].start] ;
+      rp_end = rp + Row [row].length ;
+      while (rp < rp_end)
+      {
+	A [(p [*rp++])++] = row ;
+      }
+    }
+  }
+
+  /* === Done.  Matrix is not (or no longer) jumbled ====================== */
+
+  return (true) ;
+}
+
+
+/* ========================================================================== */
+/* === init_scoring ========================================================= */
+/* ========================================================================== */
+
+/*
+  Kills dense or empty columns and rows, calculates an initial score for
+  each column, and places all columns in the degree lists.  Not user-callable.
+*/
+template <typename Index>
+static void init_scoring
+  (
+    /* === Parameters ======================================================= */
+
+    Index n_row,      /* number of rows of A */
+    Index n_col,      /* number of columns of A */
+    Colamd_Row<Index> Row [],    /* of size n_row+1 */
+    colamd_col<Index> Col [],    /* of size n_col+1 */
+    Index A [],     /* column form and row form of A */
+    Index head [],    /* of size n_col+1 */
+    double knobs [COLAMD_KNOBS],/* parameters */
+    Index *p_n_row2,    /* number of non-dense, non-empty rows */
+    Index *p_n_col2,    /* number of non-dense, non-empty columns */
+    Index *p_max_deg    /* maximum row degree */
+    )
+{
+  /* === Local variables ================================================== */
+
+  Index c ;     /* a column index */
+  Index r, row ;    /* a row index */
+  Index *cp ;     /* a column pointer */
+  Index deg ;     /* degree of a row or column */
+  Index *cp_end ;   /* a pointer to the end of a column */
+  Index *new_cp ;   /* new column pointer */
+  Index col_length ;    /* length of pruned column */
+  Index score ;     /* current column score */
+  Index n_col2 ;    /* number of non-dense, non-empty columns */
+  Index n_row2 ;    /* number of non-dense, non-empty rows */
+  Index dense_row_count ; /* remove rows with more entries than this */
+  Index dense_col_count ; /* remove cols with more entries than this */
+  Index min_score ;   /* smallest column score */
+  Index max_deg ;   /* maximum row degree */
+  Index next_col ;    /* Used to add to degree list.*/
+
+
+  /* === Extract knobs ==================================================== */
+
+  dense_row_count = std::max<Index>(0, (std::min)(Index(knobs [COLAMD_DENSE_ROW] * n_col), n_col)) ;
+  dense_col_count = std::max<Index>(0, (std::min)(Index(knobs [COLAMD_DENSE_COL] * n_row), n_row)) ;
+  COLAMD_DEBUG1 (("colamd: densecount: %d %d\n", dense_row_count, dense_col_count)) ;
+  max_deg = 0 ;
+  n_col2 = n_col ;
+  n_row2 = n_row ;
+
+  /* === Kill empty columns =============================================== */
+
+  /* Put the empty columns at the end in their natural order, so that LU */
+  /* factorization can proceed as far as possible. */
+  for (c = n_col-1 ; c >= 0 ; c--)
+  {
+    deg = Col [c].length ;
+    if (deg == 0)
+    {
+      /* this is a empty column, kill and order it last */
+      Col [c].shared2.order = --n_col2 ;
+      KILL_PRINCIPAL_COL (c) ;
+    }
+  }
+  COLAMD_DEBUG1 (("colamd: null columns killed: %d\n", n_col - n_col2)) ;
+
+  /* === Kill dense columns =============================================== */
+
+  /* Put the dense columns at the end, in their natural order */
+  for (c = n_col-1 ; c >= 0 ; c--)
+  {
+    /* skip any dead columns */
+    if (COL_IS_DEAD (c))
+    {
+      continue ;
+    }
+    deg = Col [c].length ;
+    if (deg > dense_col_count)
+    {
+      /* this is a dense column, kill and order it last */
+      Col [c].shared2.order = --n_col2 ;
+      /* decrement the row degrees */
+      cp = &A [Col [c].start] ;
+      cp_end = cp + Col [c].length ;
+      while (cp < cp_end)
+      {
+	Row [*cp++].shared1.degree-- ;
+      }
+      KILL_PRINCIPAL_COL (c) ;
+    }
+  }
+  COLAMD_DEBUG1 (("colamd: Dense and null columns killed: %d\n", n_col - n_col2)) ;
+
+  /* === Kill dense and empty rows ======================================== */
+
+  for (r = 0 ; r < n_row ; r++)
+  {
+    deg = Row [r].shared1.degree ;
+    COLAMD_ASSERT (deg >= 0 && deg <= n_col) ;
+    if (deg > dense_row_count || deg == 0)
+    {
+      /* kill a dense or empty row */
+      KILL_ROW (r) ;
+      --n_row2 ;
+    }
+    else
+    {
+      /* keep track of max degree of remaining rows */
+      max_deg = (std::max)(max_deg, deg) ;
+    }
+  }
+  COLAMD_DEBUG1 (("colamd: Dense and null rows killed: %d\n", n_row - n_row2)) ;
+
+  /* === Compute initial column scores ==================================== */
+
+  /* At this point the row degrees are accurate.  They reflect the number */
+  /* of "live" (non-dense) columns in each row.  No empty rows exist. */
+  /* Some "live" columns may contain only dead rows, however.  These are */
+  /* pruned in the code below. */
+
+  /* now find the initial matlab score for each column */
+  for (c = n_col-1 ; c >= 0 ; c--)
+  {
+    /* skip dead column */
+    if (COL_IS_DEAD (c))
+    {
+      continue ;
+    }
+    score = 0 ;
+    cp = &A [Col [c].start] ;
+    new_cp = cp ;
+    cp_end = cp + Col [c].length ;
+    while (cp < cp_end)
+    {
+      /* get a row */
+      row = *cp++ ;
+      /* skip if dead */
+      if (ROW_IS_DEAD (row))
+      {
+	continue ;
+      }
+      /* compact the column */
+      *new_cp++ = row ;
+      /* add row's external degree */
+      score += Row [row].shared1.degree - 1 ;
+      /* guard against integer overflow */
+      score = (std::min)(score, n_col) ;
+    }
+    /* determine pruned column length */
+    col_length = (Index) (new_cp - &A [Col [c].start]) ;
+    if (col_length == 0)
+    {
+      /* a newly-made null column (all rows in this col are "dense" */
+      /* and have already been killed) */
+      COLAMD_DEBUG2 (("Newly null killed: %d\n", c)) ;
+      Col [c].shared2.order = --n_col2 ;
+      KILL_PRINCIPAL_COL (c) ;
+    }
+    else
+    {
+      /* set column length and set score */
+      COLAMD_ASSERT (score >= 0) ;
+      COLAMD_ASSERT (score <= n_col) ;
+      Col [c].length = col_length ;
+      Col [c].shared2.score = score ;
+    }
+  }
+  COLAMD_DEBUG1 (("colamd: Dense, null, and newly-null columns killed: %d\n",
+		  n_col-n_col2)) ;
+
+  /* At this point, all empty rows and columns are dead.  All live columns */
+  /* are "clean" (containing no dead rows) and simplicial (no supercolumns */
+  /* yet).  Rows may contain dead columns, but all live rows contain at */
+  /* least one live column. */
+
+  /* === Initialize degree lists ========================================== */
+
+
+  /* clear the hash buckets */
+  for (c = 0 ; c <= n_col ; c++)
+  {
+    head [c] = COLAMD_EMPTY ;
+  }
+  min_score = n_col ;
+  /* place in reverse order, so low column indices are at the front */
+  /* of the lists.  This is to encourage natural tie-breaking */
+  for (c = n_col-1 ; c >= 0 ; c--)
+  {
+    /* only add principal columns to degree lists */
+    if (COL_IS_ALIVE (c))
+    {
+      COLAMD_DEBUG4 (("place %d score %d minscore %d ncol %d\n",
+		      c, Col [c].shared2.score, min_score, n_col)) ;
+
+      /* === Add columns score to DList =============================== */
+
+      score = Col [c].shared2.score ;
+
+      COLAMD_ASSERT (min_score >= 0) ;
+      COLAMD_ASSERT (min_score <= n_col) ;
+      COLAMD_ASSERT (score >= 0) ;
+      COLAMD_ASSERT (score <= n_col) ;
+      COLAMD_ASSERT (head [score] >= COLAMD_EMPTY) ;
+
+      /* now add this column to dList at proper score location */
+      next_col = head [score] ;
+      Col [c].shared3.prev = COLAMD_EMPTY ;
+      Col [c].shared4.degree_next = next_col ;
+
+      /* if there already was a column with the same score, set its */
+      /* previous pointer to this new column */
+      if (next_col != COLAMD_EMPTY)
+      {
+	Col [next_col].shared3.prev = c ;
+      }
+      head [score] = c ;
+
+      /* see if this score is less than current min */
+      min_score = (std::min)(min_score, score) ;
+
+
+    }
+  }
+
+
+  /* === Return number of remaining columns, and max row degree =========== */
+
+  *p_n_col2 = n_col2 ;
+  *p_n_row2 = n_row2 ;
+  *p_max_deg = max_deg ;
+}
+
+
+/* ========================================================================== */
+/* === find_ordering ======================================================== */
+/* ========================================================================== */
+
+/*
+  Order the principal columns of the supercolumn form of the matrix
+  (no supercolumns on input).  Uses a minimum approximate column minimum
+  degree ordering method.  Not user-callable.
+*/
+template <typename Index>
+static Index find_ordering /* return the number of garbage collections */
+  (
+    /* === Parameters ======================================================= */
+
+    Index n_row,      /* number of rows of A */
+    Index n_col,      /* number of columns of A */
+    Index Alen,     /* size of A, 2*nnz + n_col or larger */
+    Colamd_Row<Index> Row [],    /* of size n_row+1 */
+    colamd_col<Index> Col [],    /* of size n_col+1 */
+    Index A [],     /* column form and row form of A */
+    Index head [],    /* of size n_col+1 */
+    Index n_col2,     /* Remaining columns to order */
+    Index max_deg,    /* Maximum row degree */
+    Index pfree     /* index of first free slot (2*nnz on entry) */
+    )
+{
+  /* === Local variables ================================================== */
+
+  Index k ;     /* current pivot ordering step */
+  Index pivot_col ;   /* current pivot column */
+  Index *cp ;     /* a column pointer */
+  Index *rp ;     /* a row pointer */
+  Index pivot_row ;   /* current pivot row */
+  Index *new_cp ;   /* modified column pointer */
+  Index *new_rp ;   /* modified row pointer */
+  Index pivot_row_start ; /* pointer to start of pivot row */
+  Index pivot_row_degree ;  /* number of columns in pivot row */
+  Index pivot_row_length ;  /* number of supercolumns in pivot row */
+  Index pivot_col_score ; /* score of pivot column */
+  Index needed_memory ;   /* free space needed for pivot row */
+  Index *cp_end ;   /* pointer to the end of a column */
+  Index *rp_end ;   /* pointer to the end of a row */
+  Index row ;     /* a row index */
+  Index col ;     /* a column index */
+  Index max_score ;   /* maximum possible score */
+  Index cur_score ;   /* score of current column */
+  unsigned int hash ;   /* hash value for supernode detection */
+  Index head_column ;   /* head of hash bucket */
+  Index first_col ;   /* first column in hash bucket */
+  Index tag_mark ;    /* marker value for mark array */
+  Index row_mark ;    /* Row [row].shared2.mark */
+  Index set_difference ;  /* set difference size of row with pivot row */
+  Index min_score ;   /* smallest column score */
+  Index col_thickness ;   /* "thickness" (no. of columns in a supercol) */
+  Index max_mark ;    /* maximum value of tag_mark */
+  Index pivot_col_thickness ; /* number of columns represented by pivot col */
+  Index prev_col ;    /* Used by Dlist operations. */
+  Index next_col ;    /* Used by Dlist operations. */
+  Index ngarbage ;    /* number of garbage collections performed */
+
+
+  /* === Initialization and clear mark ==================================== */
+
+  max_mark = INT_MAX - n_col ;  /* INT_MAX defined in <limits.h> */
+  tag_mark = Eigen::internal::clear_mark (n_row, Row) ;
+  min_score = 0 ;
+  ngarbage = 0 ;
+  COLAMD_DEBUG1 (("colamd: Ordering, n_col2=%d\n", n_col2)) ;
+
+  /* === Order the columns ================================================ */
+
+  for (k = 0 ; k < n_col2 ; /* 'k' is incremented below */)
+  {
+
+    /* === Select pivot column, and order it ============================ */
+
+    /* make sure degree list isn't empty */
+    COLAMD_ASSERT (min_score >= 0) ;
+    COLAMD_ASSERT (min_score <= n_col) ;
+    COLAMD_ASSERT (head [min_score] >= COLAMD_EMPTY) ;
+
+    /* get pivot column from head of minimum degree list */
+    while (head [min_score] == COLAMD_EMPTY && min_score < n_col)
+    {
+      min_score++ ;
+    }
+    pivot_col = head [min_score] ;
+    COLAMD_ASSERT (pivot_col >= 0 && pivot_col <= n_col) ;
+    next_col = Col [pivot_col].shared4.degree_next ;
+    head [min_score] = next_col ;
+    if (next_col != COLAMD_EMPTY)
+    {
+      Col [next_col].shared3.prev = COLAMD_EMPTY ;
+    }
+
+    COLAMD_ASSERT (COL_IS_ALIVE (pivot_col)) ;
+    COLAMD_DEBUG3 (("Pivot col: %d\n", pivot_col)) ;
+
+    /* remember score for defrag check */
+    pivot_col_score = Col [pivot_col].shared2.score ;
+
+    /* the pivot column is the kth column in the pivot order */
+    Col [pivot_col].shared2.order = k ;
+
+    /* increment order count by column thickness */
+    pivot_col_thickness = Col [pivot_col].shared1.thickness ;
+    k += pivot_col_thickness ;
+    COLAMD_ASSERT (pivot_col_thickness > 0) ;
+
+    /* === Garbage_collection, if necessary ============================= */
+
+    needed_memory = (std::min)(pivot_col_score, n_col - k) ;
+    if (pfree + needed_memory >= Alen)
+    {
+      pfree = Eigen::internal::garbage_collection (n_row, n_col, Row, Col, A, &A [pfree]) ;
+      ngarbage++ ;
+      /* after garbage collection we will have enough */
+      COLAMD_ASSERT (pfree + needed_memory < Alen) ;
+      /* garbage collection has wiped out the Row[].shared2.mark array */
+      tag_mark = Eigen::internal::clear_mark (n_row, Row) ;
+
+    }
+
+    /* === Compute pivot row pattern ==================================== */
+
+    /* get starting location for this new merged row */
+    pivot_row_start = pfree ;
+
+    /* initialize new row counts to zero */
+    pivot_row_degree = 0 ;
+
+    /* tag pivot column as having been visited so it isn't included */
+    /* in merged pivot row */
+    Col [pivot_col].shared1.thickness = -pivot_col_thickness ;
+
+    /* pivot row is the union of all rows in the pivot column pattern */
+    cp = &A [Col [pivot_col].start] ;
+    cp_end = cp + Col [pivot_col].length ;
+    while (cp < cp_end)
+    {
+      /* get a row */
+      row = *cp++ ;
+      COLAMD_DEBUG4 (("Pivot col pattern %d %d\n", ROW_IS_ALIVE (row), row)) ;
+      /* skip if row is dead */
+      if (ROW_IS_DEAD (row))
+      {
+	continue ;
+      }
+      rp = &A [Row [row].start] ;
+      rp_end = rp + Row [row].length ;
+      while (rp < rp_end)
+      {
+	/* get a column */
+	col = *rp++ ;
+	/* add the column, if alive and untagged */
+	col_thickness = Col [col].shared1.thickness ;
+	if (col_thickness > 0 && COL_IS_ALIVE (col))
+	{
+	  /* tag column in pivot row */
+	  Col [col].shared1.thickness = -col_thickness ;
+	  COLAMD_ASSERT (pfree < Alen) ;
+	  /* place column in pivot row */
+	  A [pfree++] = col ;
+	  pivot_row_degree += col_thickness ;
+	}
+      }
+    }
+
+    /* clear tag on pivot column */
+    Col [pivot_col].shared1.thickness = pivot_col_thickness ;
+    max_deg = (std::max)(max_deg, pivot_row_degree) ;
+
+
+    /* === Kill all rows used to construct pivot row ==================== */
+
+    /* also kill pivot row, temporarily */
+    cp = &A [Col [pivot_col].start] ;
+    cp_end = cp + Col [pivot_col].length ;
+    while (cp < cp_end)
+    {
+      /* may be killing an already dead row */
+      row = *cp++ ;
+      COLAMD_DEBUG3 (("Kill row in pivot col: %d\n", row)) ;
+      KILL_ROW (row) ;
+    }
+
+    /* === Select a row index to use as the new pivot row =============== */
+
+    pivot_row_length = pfree - pivot_row_start ;
+    if (pivot_row_length > 0)
+    {
+      /* pick the "pivot" row arbitrarily (first row in col) */
+      pivot_row = A [Col [pivot_col].start] ;
+      COLAMD_DEBUG3 (("Pivotal row is %d\n", pivot_row)) ;
+    }
+    else
+    {
+      /* there is no pivot row, since it is of zero length */
+      pivot_row = COLAMD_EMPTY ;
+      COLAMD_ASSERT (pivot_row_length == 0) ;
+    }
+    COLAMD_ASSERT (Col [pivot_col].length > 0 || pivot_row_length == 0) ;
+
+    /* === Approximate degree computation =============================== */
+
+    /* Here begins the computation of the approximate degree.  The column */
+    /* score is the sum of the pivot row "length", plus the size of the */
+    /* set differences of each row in the column minus the pattern of the */
+    /* pivot row itself.  The column ("thickness") itself is also */
+    /* excluded from the column score (we thus use an approximate */
+    /* external degree). */
+
+    /* The time taken by the following code (compute set differences, and */
+    /* add them up) is proportional to the size of the data structure */
+    /* being scanned - that is, the sum of the sizes of each column in */
+    /* the pivot row.  Thus, the amortized time to compute a column score */
+    /* is proportional to the size of that column (where size, in this */
+    /* context, is the column "length", or the number of row indices */
+    /* in that column).  The number of row indices in a column is */
+    /* monotonically non-decreasing, from the length of the original */
+    /* column on input to colamd. */
+
+    /* === Compute set differences ====================================== */
+
+    COLAMD_DEBUG3 (("** Computing set differences phase. **\n")) ;
+
+    /* pivot row is currently dead - it will be revived later. */
+
+    COLAMD_DEBUG3 (("Pivot row: ")) ;
+    /* for each column in pivot row */
+    rp = &A [pivot_row_start] ;
+    rp_end = rp + pivot_row_length ;
+    while (rp < rp_end)
+    {
+      col = *rp++ ;
+      COLAMD_ASSERT (COL_IS_ALIVE (col) && col != pivot_col) ;
+      COLAMD_DEBUG3 (("Col: %d\n", col)) ;
+
+      /* clear tags used to construct pivot row pattern */
+      col_thickness = -Col [col].shared1.thickness ;
+      COLAMD_ASSERT (col_thickness > 0) ;
+      Col [col].shared1.thickness = col_thickness ;
+
+      /* === Remove column from degree list =========================== */
+
+      cur_score = Col [col].shared2.score ;
+      prev_col = Col [col].shared3.prev ;
+      next_col = Col [col].shared4.degree_next ;
+      COLAMD_ASSERT (cur_score >= 0) ;
+      COLAMD_ASSERT (cur_score <= n_col) ;
+      COLAMD_ASSERT (cur_score >= COLAMD_EMPTY) ;
+      if (prev_col == COLAMD_EMPTY)
+      {
+	head [cur_score] = next_col ;
+      }
+      else
+      {
+	Col [prev_col].shared4.degree_next = next_col ;
+      }
+      if (next_col != COLAMD_EMPTY)
+      {
+	Col [next_col].shared3.prev = prev_col ;
+      }
+
+      /* === Scan the column ========================================== */
+
+      cp = &A [Col [col].start] ;
+      cp_end = cp + Col [col].length ;
+      while (cp < cp_end)
+      {
+	/* get a row */
+	row = *cp++ ;
+	row_mark = Row [row].shared2.mark ;
+	/* skip if dead */
+	if (ROW_IS_MARKED_DEAD (row_mark))
+	{
+	  continue ;
+	}
+	COLAMD_ASSERT (row != pivot_row) ;
+	set_difference = row_mark - tag_mark ;
+	/* check if the row has been seen yet */
+	if (set_difference < 0)
+	{
+	  COLAMD_ASSERT (Row [row].shared1.degree <= max_deg) ;
+	  set_difference = Row [row].shared1.degree ;
+	}
+	/* subtract column thickness from this row's set difference */
+	set_difference -= col_thickness ;
+	COLAMD_ASSERT (set_difference >= 0) ;
+	/* absorb this row if the set difference becomes zero */
+	if (set_difference == 0)
+	{
+	  COLAMD_DEBUG3 (("aggressive absorption. Row: %d\n", row)) ;
+	  KILL_ROW (row) ;
+	}
+	else
+	{
+	  /* save the new mark */
+	  Row [row].shared2.mark = set_difference + tag_mark ;
+	}
+      }
+    }
+
+
+    /* === Add up set differences for each column ======================= */
+
+    COLAMD_DEBUG3 (("** Adding set differences phase. **\n")) ;
+
+    /* for each column in pivot row */
+    rp = &A [pivot_row_start] ;
+    rp_end = rp + pivot_row_length ;
+    while (rp < rp_end)
+    {
+      /* get a column */
+      col = *rp++ ;
+      COLAMD_ASSERT (COL_IS_ALIVE (col) && col != pivot_col) ;
+      hash = 0 ;
+      cur_score = 0 ;
+      cp = &A [Col [col].start] ;
+      /* compact the column */
+      new_cp = cp ;
+      cp_end = cp + Col [col].length ;
+
+      COLAMD_DEBUG4 (("Adding set diffs for Col: %d.\n", col)) ;
+
+      while (cp < cp_end)
+      {
+	/* get a row */
+	row = *cp++ ;
+	COLAMD_ASSERT(row >= 0 && row < n_row) ;
+	row_mark = Row [row].shared2.mark ;
+	/* skip if dead */
+	if (ROW_IS_MARKED_DEAD (row_mark))
+	{
+	  continue ;
+	}
+	COLAMD_ASSERT (row_mark > tag_mark) ;
+	/* compact the column */
+	*new_cp++ = row ;
+	/* compute hash function */
+	hash += row ;
+	/* add set difference */
+	cur_score += row_mark - tag_mark ;
+	/* integer overflow... */
+	cur_score = (std::min)(cur_score, n_col) ;
+      }
+
+      /* recompute the column's length */
+      Col [col].length = (Index) (new_cp - &A [Col [col].start]) ;
+
+      /* === Further mass elimination ================================= */
+
+      if (Col [col].length == 0)
+      {
+	COLAMD_DEBUG4 (("further mass elimination. Col: %d\n", col)) ;
+	/* nothing left but the pivot row in this column */
+	KILL_PRINCIPAL_COL (col) ;
+	pivot_row_degree -= Col [col].shared1.thickness ;
+	COLAMD_ASSERT (pivot_row_degree >= 0) ;
+	/* order it */
+	Col [col].shared2.order = k ;
+	/* increment order count by column thickness */
+	k += Col [col].shared1.thickness ;
+      }
+      else
+      {
+	/* === Prepare for supercolumn detection ==================== */
+
+	COLAMD_DEBUG4 (("Preparing supercol detection for Col: %d.\n", col)) ;
+
+	/* save score so far */
+	Col [col].shared2.score = cur_score ;
+
+	/* add column to hash table, for supercolumn detection */
+	hash %= n_col + 1 ;
+
+	COLAMD_DEBUG4 ((" Hash = %d, n_col = %d.\n", hash, n_col)) ;
+	COLAMD_ASSERT (hash <= n_col) ;
+
+	head_column = head [hash] ;
+	if (head_column > COLAMD_EMPTY)
+	{
+	  /* degree list "hash" is non-empty, use prev (shared3) of */
+	  /* first column in degree list as head of hash bucket */
+	  first_col = Col [head_column].shared3.headhash ;
+	  Col [head_column].shared3.headhash = col ;
+	}
+	else
+	{
+	  /* degree list "hash" is empty, use head as hash bucket */
+	  first_col = - (head_column + 2) ;
+	  head [hash] = - (col + 2) ;
+	}
+	Col [col].shared4.hash_next = first_col ;
+
+	/* save hash function in Col [col].shared3.hash */
+	Col [col].shared3.hash = (Index) hash ;
+	COLAMD_ASSERT (COL_IS_ALIVE (col)) ;
+      }
+    }
+
+    /* The approximate external column degree is now computed.  */
+
+    /* === Supercolumn detection ======================================== */
+
+    COLAMD_DEBUG3 (("** Supercolumn detection phase. **\n")) ;
+
+    Eigen::internal::detect_super_cols (Col, A, head, pivot_row_start, pivot_row_length) ;
+
+    /* === Kill the pivotal column ====================================== */
+
+    KILL_PRINCIPAL_COL (pivot_col) ;
+
+    /* === Clear mark =================================================== */
+
+    tag_mark += (max_deg + 1) ;
+    if (tag_mark >= max_mark)
+    {
+      COLAMD_DEBUG2 (("clearing tag_mark\n")) ;
+      tag_mark = Eigen::internal::clear_mark (n_row, Row) ;
+    }
+
+    /* === Finalize the new pivot row, and column scores ================ */
+
+    COLAMD_DEBUG3 (("** Finalize scores phase. **\n")) ;
+
+    /* for each column in pivot row */
+    rp = &A [pivot_row_start] ;
+    /* compact the pivot row */
+    new_rp = rp ;
+    rp_end = rp + pivot_row_length ;
+    while (rp < rp_end)
+    {
+      col = *rp++ ;
+      /* skip dead columns */
+      if (COL_IS_DEAD (col))
+      {
+	continue ;
+      }
+      *new_rp++ = col ;
+      /* add new pivot row to column */
+      A [Col [col].start + (Col [col].length++)] = pivot_row ;
+
+      /* retrieve score so far and add on pivot row's degree. */
+      /* (we wait until here for this in case the pivot */
+      /* row's degree was reduced due to mass elimination). */
+      cur_score = Col [col].shared2.score + pivot_row_degree ;
+
+      /* calculate the max possible score as the number of */
+      /* external columns minus the 'k' value minus the */
+      /* columns thickness */
+      max_score = n_col - k - Col [col].shared1.thickness ;
+
+      /* make the score the external degree of the union-of-rows */
+      cur_score -= Col [col].shared1.thickness ;
+
+      /* make sure score is less or equal than the max score */
+      cur_score = (std::min)(cur_score, max_score) ;
+      COLAMD_ASSERT (cur_score >= 0) ;
+
+      /* store updated score */
+      Col [col].shared2.score = cur_score ;
+
+      /* === Place column back in degree list ========================= */
+
+      COLAMD_ASSERT (min_score >= 0) ;
+      COLAMD_ASSERT (min_score <= n_col) ;
+      COLAMD_ASSERT (cur_score >= 0) ;
+      COLAMD_ASSERT (cur_score <= n_col) ;
+      COLAMD_ASSERT (head [cur_score] >= COLAMD_EMPTY) ;
+      next_col = head [cur_score] ;
+      Col [col].shared4.degree_next = next_col ;
+      Col [col].shared3.prev = COLAMD_EMPTY ;
+      if (next_col != COLAMD_EMPTY)
+      {
+	Col [next_col].shared3.prev = col ;
+      }
+      head [cur_score] = col ;
+
+      /* see if this score is less than current min */
+      min_score = (std::min)(min_score, cur_score) ;
+
+    }
+
+    /* === Resurrect the new pivot row ================================== */
+
+    if (pivot_row_degree > 0)
+    {
+      /* update pivot row length to reflect any cols that were killed */
+      /* during super-col detection and mass elimination */
+      Row [pivot_row].start  = pivot_row_start ;
+      Row [pivot_row].length = (Index) (new_rp - &A[pivot_row_start]) ;
+      Row [pivot_row].shared1.degree = pivot_row_degree ;
+      Row [pivot_row].shared2.mark = 0 ;
+      /* pivot row is no longer dead */
+    }
+  }
+
+  /* === All principal columns have now been ordered ====================== */
+
+  return (ngarbage) ;
+}
+
+
+/* ========================================================================== */
+/* === order_children ======================================================= */
+/* ========================================================================== */
+
+/*
+  The find_ordering routine has ordered all of the principal columns (the
+  representatives of the supercolumns).  The non-principal columns have not
+  yet been ordered.  This routine orders those columns by walking up the
+  parent tree (a column is a child of the column which absorbed it).  The
+  final permutation vector is then placed in p [0 ... n_col-1], with p [0]
+  being the first column, and p [n_col-1] being the last.  It doesn't look
+  like it at first glance, but be assured that this routine takes time linear
+  in the number of columns.  Although not immediately obvious, the time
+  taken by this routine is O (n_col), that is, linear in the number of
+  columns.  Not user-callable.
+*/
+template <typename Index>
+static inline  void order_children
+(
+  /* === Parameters ======================================================= */
+
+  Index n_col,      /* number of columns of A */
+  colamd_col<Index> Col [],    /* of size n_col+1 */
+  Index p []      /* p [0 ... n_col-1] is the column permutation*/
+  )
+{
+  /* === Local variables ================================================== */
+
+  Index i ;     /* loop counter for all columns */
+  Index c ;     /* column index */
+  Index parent ;    /* index of column's parent */
+  Index order ;     /* column's order */
+
+  /* === Order each non-principal column ================================== */
+
+  for (i = 0 ; i < n_col ; i++)
+  {
+    /* find an un-ordered non-principal column */
+    COLAMD_ASSERT (COL_IS_DEAD (i)) ;
+    if (!COL_IS_DEAD_PRINCIPAL (i) && Col [i].shared2.order == COLAMD_EMPTY)
+    {
+      parent = i ;
+      /* once found, find its principal parent */
+      do
+      {
+	parent = Col [parent].shared1.parent ;
+      } while (!COL_IS_DEAD_PRINCIPAL (parent)) ;
+
+      /* now, order all un-ordered non-principal columns along path */
+      /* to this parent.  collapse tree at the same time */
+      c = i ;
+      /* get order of parent */
+      order = Col [parent].shared2.order ;
+
+      do
+      {
+	COLAMD_ASSERT (Col [c].shared2.order == COLAMD_EMPTY) ;
+
+	/* order this column */
+	Col [c].shared2.order = order++ ;
+	/* collaps tree */
+	Col [c].shared1.parent = parent ;
+
+	/* get immediate parent of this column */
+	c = Col [c].shared1.parent ;
+
+	/* continue until we hit an ordered column.  There are */
+	/* guarranteed not to be anymore unordered columns */
+	/* above an ordered column */
+      } while (Col [c].shared2.order == COLAMD_EMPTY) ;
+
+      /* re-order the super_col parent to largest order for this group */
+      Col [parent].shared2.order = order ;
+    }
+  }
+
+  /* === Generate the permutation ========================================= */
+
+  for (c = 0 ; c < n_col ; c++)
+  {
+    p [Col [c].shared2.order] = c ;
+  }
+}
+
+
+/* ========================================================================== */
+/* === detect_super_cols ==================================================== */
+/* ========================================================================== */
+
+/*
+  Detects supercolumns by finding matches between columns in the hash buckets.
+  Check amongst columns in the set A [row_start ... row_start + row_length-1].
+  The columns under consideration are currently *not* in the degree lists,
+  and have already been placed in the hash buckets.
+
+  The hash bucket for columns whose hash function is equal to h is stored
+  as follows:
+
+  if head [h] is >= 0, then head [h] contains a degree list, so:
+
+  head [h] is the first column in degree bucket h.
+  Col [head [h]].headhash gives the first column in hash bucket h.
+
+  otherwise, the degree list is empty, and:
+
+  -(head [h] + 2) is the first column in hash bucket h.
+
+  For a column c in a hash bucket, Col [c].shared3.prev is NOT a "previous
+  column" pointer.  Col [c].shared3.hash is used instead as the hash number
+  for that column.  The value of Col [c].shared4.hash_next is the next column
+  in the same hash bucket.
+
+  Assuming no, or "few" hash collisions, the time taken by this routine is
+  linear in the sum of the sizes (lengths) of each column whose score has
+  just been computed in the approximate degree computation.
+  Not user-callable.
+*/
+template <typename Index>
+static void detect_super_cols
+(
+  /* === Parameters ======================================================= */
+  
+  colamd_col<Index> Col [],    /* of size n_col+1 */
+  Index A [],     /* row indices of A */
+  Index head [],    /* head of degree lists and hash buckets */
+  Index row_start,    /* pointer to set of columns to check */
+  Index row_length    /* number of columns to check */
+)
+{
+  /* === Local variables ================================================== */
+
+  Index hash ;      /* hash value for a column */
+  Index *rp ;     /* pointer to a row */
+  Index c ;     /* a column index */
+  Index super_c ;   /* column index of the column to absorb into */
+  Index *cp1 ;      /* column pointer for column super_c */
+  Index *cp2 ;      /* column pointer for column c */
+  Index length ;    /* length of column super_c */
+  Index prev_c ;    /* column preceding c in hash bucket */
+  Index i ;     /* loop counter */
+  Index *rp_end ;   /* pointer to the end of the row */
+  Index col ;     /* a column index in the row to check */
+  Index head_column ;   /* first column in hash bucket or degree list */
+  Index first_col ;   /* first column in hash bucket */
+
+  /* === Consider each column in the row ================================== */
+
+  rp = &A [row_start] ;
+  rp_end = rp + row_length ;
+  while (rp < rp_end)
+  {
+    col = *rp++ ;
+    if (COL_IS_DEAD (col))
+    {
+      continue ;
+    }
+
+    /* get hash number for this column */
+    hash = Col [col].shared3.hash ;
+    COLAMD_ASSERT (hash <= n_col) ;
+
+    /* === Get the first column in this hash bucket ===================== */
+
+    head_column = head [hash] ;
+    if (head_column > COLAMD_EMPTY)
+    {
+      first_col = Col [head_column].shared3.headhash ;
+    }
+    else
+    {
+      first_col = - (head_column + 2) ;
+    }
+
+    /* === Consider each column in the hash bucket ====================== */
+
+    for (super_c = first_col ; super_c != COLAMD_EMPTY ;
+	 super_c = Col [super_c].shared4.hash_next)
+    {
+      COLAMD_ASSERT (COL_IS_ALIVE (super_c)) ;
+      COLAMD_ASSERT (Col [super_c].shared3.hash == hash) ;
+      length = Col [super_c].length ;
+
+      /* prev_c is the column preceding column c in the hash bucket */
+      prev_c = super_c ;
+
+      /* === Compare super_c with all columns after it ================ */
+
+      for (c = Col [super_c].shared4.hash_next ;
+	   c != COLAMD_EMPTY ; c = Col [c].shared4.hash_next)
+      {
+	COLAMD_ASSERT (c != super_c) ;
+	COLAMD_ASSERT (COL_IS_ALIVE (c)) ;
+	COLAMD_ASSERT (Col [c].shared3.hash == hash) ;
+
+	/* not identical if lengths or scores are different */
+	if (Col [c].length != length ||
+	    Col [c].shared2.score != Col [super_c].shared2.score)
+	{
+	  prev_c = c ;
+	  continue ;
+	}
+
+	/* compare the two columns */
+	cp1 = &A [Col [super_c].start] ;
+	cp2 = &A [Col [c].start] ;
+
+	for (i = 0 ; i < length ; i++)
+	{
+	  /* the columns are "clean" (no dead rows) */
+	  COLAMD_ASSERT (ROW_IS_ALIVE (*cp1))  ;
+	  COLAMD_ASSERT (ROW_IS_ALIVE (*cp2))  ;
+	  /* row indices will same order for both supercols, */
+	  /* no gather scatter nessasary */
+	  if (*cp1++ != *cp2++)
+	  {
+	    break ;
+	  }
+	}
+
+	/* the two columns are different if the for-loop "broke" */
+	if (i != length)
+	{
+	  prev_c = c ;
+	  continue ;
+	}
+
+	/* === Got it!  two columns are identical =================== */
+
+	COLAMD_ASSERT (Col [c].shared2.score == Col [super_c].shared2.score) ;
+
+	Col [super_c].shared1.thickness += Col [c].shared1.thickness ;
+	Col [c].shared1.parent = super_c ;
+	KILL_NON_PRINCIPAL_COL (c) ;
+	/* order c later, in order_children() */
+	Col [c].shared2.order = COLAMD_EMPTY ;
+	/* remove c from hash bucket */
+	Col [prev_c].shared4.hash_next = Col [c].shared4.hash_next ;
+      }
+    }
+
+    /* === Empty this hash bucket ======================================= */
+
+    if (head_column > COLAMD_EMPTY)
+    {
+      /* corresponding degree list "hash" is not empty */
+      Col [head_column].shared3.headhash = COLAMD_EMPTY ;
+    }
+    else
+    {
+      /* corresponding degree list "hash" is empty */
+      head [hash] = COLAMD_EMPTY ;
+    }
+  }
+}
+
+
+/* ========================================================================== */
+/* === garbage_collection =================================================== */
+/* ========================================================================== */
+
+/*
+  Defragments and compacts columns and rows in the workspace A.  Used when
+  all avaliable memory has been used while performing row merging.  Returns
+  the index of the first free position in A, after garbage collection.  The
+  time taken by this routine is linear is the size of the array A, which is
+  itself linear in the number of nonzeros in the input matrix.
+  Not user-callable.
+*/
+template <typename Index>
+static Index garbage_collection  /* returns the new value of pfree */
+  (
+    /* === Parameters ======================================================= */
+    
+    Index n_row,      /* number of rows */
+    Index n_col,      /* number of columns */
+    Colamd_Row<Index> Row [],    /* row info */
+    colamd_col<Index> Col [],    /* column info */
+    Index A [],     /* A [0 ... Alen-1] holds the matrix */
+    Index *pfree      /* &A [0] ... pfree is in use */
+    )
+{
+  /* === Local variables ================================================== */
+
+  Index *psrc ;     /* source pointer */
+  Index *pdest ;    /* destination pointer */
+  Index j ;     /* counter */
+  Index r ;     /* a row index */
+  Index c ;     /* a column index */
+  Index length ;    /* length of a row or column */
+
+  /* === Defragment the columns =========================================== */
+
+  pdest = &A[0] ;
+  for (c = 0 ; c < n_col ; c++)
+  {
+    if (COL_IS_ALIVE (c))
+    {
+      psrc = &A [Col [c].start] ;
+
+      /* move and compact the column */
+      COLAMD_ASSERT (pdest <= psrc) ;
+      Col [c].start = (Index) (pdest - &A [0]) ;
+      length = Col [c].length ;
+      for (j = 0 ; j < length ; j++)
+      {
+	r = *psrc++ ;
+	if (ROW_IS_ALIVE (r))
+	{
+	  *pdest++ = r ;
+	}
+      }
+      Col [c].length = (Index) (pdest - &A [Col [c].start]) ;
+    }
+  }
+
+  /* === Prepare to defragment the rows =================================== */
+
+  for (r = 0 ; r < n_row ; r++)
+  {
+    if (ROW_IS_ALIVE (r))
+    {
+      if (Row [r].length == 0)
+      {
+	/* this row is of zero length.  cannot compact it, so kill it */
+	COLAMD_DEBUG3 (("Defrag row kill\n")) ;
+	KILL_ROW (r) ;
+      }
+      else
+      {
+	/* save first column index in Row [r].shared2.first_column */
+	psrc = &A [Row [r].start] ;
+	Row [r].shared2.first_column = *psrc ;
+	COLAMD_ASSERT (ROW_IS_ALIVE (r)) ;
+	/* flag the start of the row with the one's complement of row */
+	*psrc = ONES_COMPLEMENT (r) ;
+
+      }
+    }
+  }
+
+  /* === Defragment the rows ============================================== */
+
+  psrc = pdest ;
+  while (psrc < pfree)
+  {
+    /* find a negative number ... the start of a row */
+    if (*psrc++ < 0)
+    {
+      psrc-- ;
+      /* get the row index */
+      r = ONES_COMPLEMENT (*psrc) ;
+      COLAMD_ASSERT (r >= 0 && r < n_row) ;
+      /* restore first column index */
+      *psrc = Row [r].shared2.first_column ;
+      COLAMD_ASSERT (ROW_IS_ALIVE (r)) ;
+
+      /* move and compact the row */
+      COLAMD_ASSERT (pdest <= psrc) ;
+      Row [r].start = (Index) (pdest - &A [0]) ;
+      length = Row [r].length ;
+      for (j = 0 ; j < length ; j++)
+      {
+	c = *psrc++ ;
+	if (COL_IS_ALIVE (c))
+	{
+	  *pdest++ = c ;
+	}
+      }
+      Row [r].length = (Index) (pdest - &A [Row [r].start]) ;
+
+    }
+  }
+  /* ensure we found all the rows */
+  COLAMD_ASSERT (debug_rows == 0) ;
+
+  /* === Return the new value of pfree ==================================== */
+
+  return ((Index) (pdest - &A [0])) ;
+}
+
+
+/* ========================================================================== */
+/* === clear_mark =========================================================== */
+/* ========================================================================== */
+
+/*
+  Clears the Row [].shared2.mark array, and returns the new tag_mark.
+  Return value is the new tag_mark.  Not user-callable.
+*/
+template <typename Index>
+static inline  Index clear_mark  /* return the new value for tag_mark */
+  (
+      /* === Parameters ======================================================= */
+
+    Index n_row,    /* number of rows in A */
+    Colamd_Row<Index> Row [] /* Row [0 ... n_row-1].shared2.mark is set to zero */
+    )
+{
+  /* === Local variables ================================================== */
+
+  Index r ;
+
+  for (r = 0 ; r < n_row ; r++)
+  {
+    if (ROW_IS_ALIVE (r))
+    {
+      Row [r].shared2.mark = 0 ;
+    }
+  }
+  return (1) ;
+}
+
+
+} // namespace internal 
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/OrderingMethods/Ordering.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/OrderingMethods/Ordering.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/OrderingMethods/Ordering.h	(revision 2476)
@@ -0,0 +1,154 @@
+ 
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012  Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ORDERING_H
+#define EIGEN_ORDERING_H
+
+namespace Eigen {
+  
+#include "Eigen_Colamd.h"
+
+namespace internal {
+    
+/** \internal
+  * \ingroup OrderingMethods_Module
+  * \returns the symmetric pattern A^T+A from the input matrix A. 
+  * FIXME: The values should not be considered here
+  */
+template<typename MatrixType> 
+void ordering_helper_at_plus_a(const MatrixType& mat, MatrixType& symmat)
+{
+  MatrixType C;
+  C = mat.transpose(); // NOTE: Could be  costly
+  for (int i = 0; i < C.rows(); i++) 
+  {
+      for (typename MatrixType::InnerIterator it(C, i); it; ++it)
+        it.valueRef() = 0.0;
+  }
+  symmat = C + mat; 
+}
+    
+}
+
+#ifndef EIGEN_MPL2_ONLY
+
+/** \ingroup OrderingMethods_Module
+  * \class AMDOrdering
+  *
+  * Functor computing the \em approximate \em minimum \em degree ordering
+  * If the matrix is not structurally symmetric, an ordering of A^T+A is computed
+  * \tparam  Index The type of indices of the matrix 
+  * \sa COLAMDOrdering
+  */
+template <typename Index>
+class AMDOrdering
+{
+  public:
+    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
+    
+    /** Compute the permutation vector from a sparse matrix
+     * This routine is much faster if the input matrix is column-major     
+     */
+    template <typename MatrixType>
+    void operator()(const MatrixType& mat, PermutationType& perm)
+    {
+      // Compute the symmetric pattern
+      SparseMatrix<typename MatrixType::Scalar, ColMajor, Index> symm;
+      internal::ordering_helper_at_plus_a(mat,symm); 
+    
+      // Call the AMD routine 
+      //m_mat.prune(keep_diag());
+      internal::minimum_degree_ordering(symm, perm);
+    }
+    
+    /** Compute the permutation with a selfadjoint matrix */
+    template <typename SrcType, unsigned int SrcUpLo> 
+    void operator()(const SparseSelfAdjointView<SrcType, SrcUpLo>& mat, PermutationType& perm)
+    { 
+      SparseMatrix<typename SrcType::Scalar, ColMajor, Index> C; C = mat;
+      
+      // Call the AMD routine 
+      // m_mat.prune(keep_diag()); //Remove the diagonal elements 
+      internal::minimum_degree_ordering(C, perm);
+    }
+};
+
+#endif // EIGEN_MPL2_ONLY
+
+/** \ingroup OrderingMethods_Module
+  * \class NaturalOrdering
+  *
+  * Functor computing the natural ordering (identity)
+  * 
+  * \note Returns an empty permutation matrix
+  * \tparam  Index The type of indices of the matrix 
+  */
+template <typename Index>
+class NaturalOrdering
+{
+  public:
+    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
+    
+    /** Compute the permutation vector from a column-major sparse matrix */
+    template <typename MatrixType>
+    void operator()(const MatrixType& /*mat*/, PermutationType& perm)
+    {
+      perm.resize(0); 
+    }
+    
+};
+
+/** \ingroup OrderingMethods_Module
+  * \class COLAMDOrdering
+  *
+  * Functor computing the \em column \em approximate \em minimum \em degree ordering 
+  * The matrix should be in column-major and \b compressed format (see SparseMatrix::makeCompressed()).
+  */
+template<typename Index>
+class COLAMDOrdering
+{
+  public:
+    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType; 
+    typedef Matrix<Index, Dynamic, 1> IndexVector;
+    
+    /** Compute the permutation vector \a perm form the sparse matrix \a mat
+      * \warning The input sparse matrix \a mat must be in compressed mode (see SparseMatrix::makeCompressed()).
+      */
+    template <typename MatrixType>
+    void operator() (const MatrixType& mat, PermutationType& perm)
+    {
+      eigen_assert(mat.isCompressed() && "COLAMDOrdering requires a sparse matrix in compressed mode. Call .makeCompressed() before passing it to COLAMDOrdering");
+      
+      Index m = mat.rows();
+      Index n = mat.cols();
+      Index nnz = mat.nonZeros();
+      // Get the recommended value of Alen to be used by colamd
+      Index Alen = internal::colamd_recommended(nnz, m, n); 
+      // Set the default parameters
+      double knobs [COLAMD_KNOBS]; 
+      Index stats [COLAMD_STATS];
+      internal::colamd_set_defaults(knobs);
+      
+      IndexVector p(n+1), A(Alen); 
+      for(Index i=0; i <= n; i++)   p(i) = mat.outerIndexPtr()[i];
+      for(Index i=0; i < nnz; i++)  A(i) = mat.innerIndexPtr()[i];
+      // Call Colamd routine to compute the ordering 
+      Index info = internal::colamd(m, n, Alen, A.data(), p.data(), knobs, stats); 
+      EIGEN_UNUSED_VARIABLE(info);
+      eigen_assert( info && "COLAMD failed " );
+      
+      perm.resize(n);
+      for (Index i = 0; i < n; i++) perm.indices()(p(i)) = i;
+    }
+};
+
+} // end namespace Eigen
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_pivotL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_pivotL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_pivotL.h	(revision 2476)
@@ -0,0 +1,137 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of xpivotL.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PIVOTL_H
+#define SPARSELU_PIVOTL_H
+
+namespace Eigen {
+namespace internal {
+  
+/**
+ * \brief Performs the numerical pivotin on the current column of L, and the CDIV operation.
+ * 
+ * Pivot policy :
+ * (1) Compute thresh = u * max_(i>=j) abs(A_ij);
+ * (2) IF user specifies pivot row k and abs(A_kj) >= thresh THEN
+ *           pivot row = k;
+ *       ELSE IF abs(A_jj) >= thresh THEN
+ *           pivot row = j;
+ *       ELSE
+ *           pivot row = m;
+ * 
+ *   Note: If you absolutely want to use a given pivot order, then set u=0.0.
+ * 
+ * \param jcol The current column of L
+ * \param diagpivotthresh diagonal pivoting threshold
+ * \param[in,out] perm_r Row permutation (threshold pivoting)
+ * \param[in] iperm_c column permutation - used to finf diagonal of Pc*A*Pc'
+ * \param[out] pivrow  The pivot row
+ * \param glu Global LU data
+ * \return 0 if success, i > 0 if U(i,i) is exactly zero 
+ * 
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::pivotL(const Index jcol, const RealScalar& diagpivotthresh, IndexVector& perm_r, IndexVector& iperm_c, Index& pivrow, GlobalLU_t& glu)
+{
+  
+  Index fsupc = (glu.xsup)((glu.supno)(jcol)); // First column in the supernode containing the column jcol
+  Index nsupc = jcol - fsupc; // Number of columns in the supernode portion, excluding jcol; nsupc >=0
+  Index lptr = glu.xlsub(fsupc); // pointer to the starting location of the row subscripts for this supernode portion
+  Index nsupr = glu.xlsub(fsupc+1) - lptr; // Number of rows in the supernode
+  Index lda = glu.xlusup(fsupc+1) - glu.xlusup(fsupc); // leading dimension
+  Scalar* lu_sup_ptr = &(glu.lusup.data()[glu.xlusup(fsupc)]); // Start of the current supernode
+  Scalar* lu_col_ptr = &(glu.lusup.data()[glu.xlusup(jcol)]); // Start of jcol in the supernode
+  Index* lsub_ptr = &(glu.lsub.data()[lptr]); // Start of row indices of the supernode
+  
+  // Determine the largest abs numerical value for partial pivoting 
+  Index diagind = iperm_c(jcol); // diagonal index 
+  RealScalar pivmax(-1.0);
+  Index pivptr = nsupc; 
+  Index diag = emptyIdxLU; 
+  RealScalar rtemp;
+  Index isub, icol, itemp, k; 
+  for (isub = nsupc; isub < nsupr; ++isub) {
+    using std::abs;
+    rtemp = abs(lu_col_ptr[isub]);
+    if (rtemp > pivmax) {
+      pivmax = rtemp; 
+      pivptr = isub;
+    } 
+    if (lsub_ptr[isub] == diagind) diag = isub;
+  }
+  
+  // Test for singularity
+  if ( pivmax <= RealScalar(0.0) ) {
+    // if pivmax == -1, the column is structurally empty, otherwise it is only numerically zero
+    pivrow = pivmax < RealScalar(0.0) ? diagind : lsub_ptr[pivptr];
+    perm_r(pivrow) = jcol;
+    return (jcol+1);
+  }
+  
+  RealScalar thresh = diagpivotthresh * pivmax; 
+  
+  // Choose appropriate pivotal element 
+  
+  {
+    // Test if the diagonal element can be used as a pivot (given the threshold value)
+    if (diag >= 0 ) 
+    {
+      // Diagonal element exists
+      using std::abs;
+      rtemp = abs(lu_col_ptr[diag]);
+      if (rtemp != 0.0 && rtemp >= thresh) pivptr = diag;
+    }
+    pivrow = lsub_ptr[pivptr];
+  }
+  
+  // Record pivot row
+  perm_r(pivrow) = jcol; 
+  // Interchange row subscripts
+  if (pivptr != nsupc )
+  {
+    std::swap( lsub_ptr[pivptr], lsub_ptr[nsupc] );
+    // Interchange numerical values as well, for the two rows in the whole snode
+    // such that L is indexed the same way as A
+    for (icol = 0; icol <= nsupc; icol++)
+    {
+      itemp = pivptr + icol * lda; 
+      std::swap(lu_sup_ptr[itemp], lu_sup_ptr[nsupc + icol * lda]);
+    }
+  }
+  // cdiv operations
+  Scalar temp = Scalar(1.0) / lu_col_ptr[nsupc];
+  for (k = nsupc+1; k < nsupr; k++)
+    lu_col_ptr[k] *= temp; 
+  return 0;
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_PIVOTL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU.h	(revision 2476)
@@ -0,0 +1,806 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+#ifndef EIGEN_SPARSE_LU_H
+#define EIGEN_SPARSE_LU_H
+
+namespace Eigen {
+
+template <typename _MatrixType, typename _OrderingType = COLAMDOrdering<typename _MatrixType::Index> > class SparseLU;
+template <typename MappedSparseMatrixType> struct SparseLUMatrixLReturnType;
+template <typename MatrixLType, typename MatrixUType> struct SparseLUMatrixUReturnType;
+
+/** \ingroup SparseLU_Module
+  * \class SparseLU
+  * 
+  * \brief Sparse supernodal LU factorization for general matrices
+  * 
+  * This class implements the supernodal LU factorization for general matrices.
+  * It uses the main techniques from the sequential SuperLU package 
+  * (http://crd-legacy.lbl.gov/~xiaoye/SuperLU/). It handles transparently real 
+  * and complex arithmetics with single and double precision, depending on the 
+  * scalar type of your input matrix. 
+  * The code has been optimized to provide BLAS-3 operations during supernode-panel updates. 
+  * It benefits directly from the built-in high-performant Eigen BLAS routines. 
+  * Moreover, when the size of a supernode is very small, the BLAS calls are avoided to 
+  * enable a better optimization from the compiler. For best performance, 
+  * you should compile it with NDEBUG flag to avoid the numerous bounds checking on vectors. 
+  * 
+  * An important parameter of this class is the ordering method. It is used to reorder the columns 
+  * (and eventually the rows) of the matrix to reduce the number of new elements that are created during 
+  * numerical factorization. The cheapest method available is COLAMD. 
+  * See  \link OrderingMethods_Module the OrderingMethods module \endlink for the list of 
+  * built-in and external ordering methods. 
+  *
+  * Simple example with key steps 
+  * \code
+  * VectorXd x(n), b(n);
+  * SparseMatrix<double, ColMajor> A;
+  * SparseLU<SparseMatrix<scalar, ColMajor>, COLAMDOrdering<Index> >   solver;
+  * // fill A and b;
+  * // Compute the ordering permutation vector from the structural pattern of A
+  * solver.analyzePattern(A); 
+  * // Compute the numerical factorization 
+  * solver.factorize(A); 
+  * //Use the factors to solve the linear system 
+  * x = solver.solve(b); 
+  * \endcode
+  * 
+  * \warning The input matrix A should be in a \b compressed and \b column-major form.
+  * Otherwise an expensive copy will be made. You can call the inexpensive makeCompressed() to get a compressed matrix.
+  * 
+  * \note Unlike the initial SuperLU implementation, there is no step to equilibrate the matrix. 
+  * For badly scaled matrices, this step can be useful to reduce the pivoting during factorization. 
+  * If this is the case for your matrices, you can try the basic scaling method at
+  *  "unsupported/Eigen/src/IterativeSolvers/Scaling.h"
+  * 
+  * \tparam _MatrixType The type of the sparse matrix. It must be a column-major SparseMatrix<>
+  * \tparam _OrderingType The ordering method to use, either AMD, COLAMD or METIS. Default is COLMAD
+  * 
+  * 
+  * \sa \ref TutorialSparseDirectSolvers
+  * \sa \ref OrderingMethods_Module
+  */
+template <typename _MatrixType, typename _OrderingType>
+class SparseLU : public internal::SparseLUImpl<typename _MatrixType::Scalar, typename _MatrixType::Index>
+{
+  public:
+    typedef _MatrixType MatrixType; 
+    typedef _OrderingType OrderingType;
+    typedef typename MatrixType::Scalar Scalar; 
+    typedef typename MatrixType::RealScalar RealScalar; 
+    typedef typename MatrixType::Index Index; 
+    typedef SparseMatrix<Scalar,ColMajor,Index> NCMatrix;
+    typedef internal::MappedSuperNodalMatrix<Scalar, Index> SCMatrix; 
+    typedef Matrix<Scalar,Dynamic,1> ScalarVector;
+    typedef Matrix<Index,Dynamic,1> IndexVector;
+    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
+    typedef internal::SparseLUImpl<Scalar, Index> Base;
+    
+  public:
+    SparseLU():m_isInitialized(true),m_lastError(""),m_Ustore(0,0,0,0,0,0),m_symmetricmode(false),m_diagpivotthresh(1.0),m_detPermR(1)
+    {
+      initperfvalues(); 
+    }
+    SparseLU(const MatrixType& matrix):m_isInitialized(true),m_lastError(""),m_Ustore(0,0,0,0,0,0),m_symmetricmode(false),m_diagpivotthresh(1.0),m_detPermR(1)
+    {
+      initperfvalues(); 
+      compute(matrix);
+    }
+    
+    ~SparseLU()
+    {
+      // Free all explicit dynamic pointers 
+    }
+    
+    void analyzePattern (const MatrixType& matrix);
+    void factorize (const MatrixType& matrix);
+    void simplicialfactorize(const MatrixType& matrix);
+    
+    /**
+      * Compute the symbolic and numeric factorization of the input sparse matrix.
+      * The input matrix should be in column-major storage. 
+      */
+    void compute (const MatrixType& matrix)
+    {
+      // Analyze 
+      analyzePattern(matrix); 
+      //Factorize
+      factorize(matrix);
+    } 
+    
+    inline Index rows() const { return m_mat.rows(); }
+    inline Index cols() const { return m_mat.cols(); }
+    /** Indicate that the pattern of the input matrix is symmetric */
+    void isSymmetric(bool sym)
+    {
+      m_symmetricmode = sym;
+    }
+    
+    /** \returns an expression of the matrix L, internally stored as supernodes
+      * The only operation available with this expression is the triangular solve
+      * \code
+      * y = b; matrixL().solveInPlace(y);
+      * \endcode
+      */
+    SparseLUMatrixLReturnType<SCMatrix> matrixL() const
+    {
+      return SparseLUMatrixLReturnType<SCMatrix>(m_Lstore);
+    }
+    /** \returns an expression of the matrix U,
+      * The only operation available with this expression is the triangular solve
+      * \code
+      * y = b; matrixU().solveInPlace(y);
+      * \endcode
+      */
+    SparseLUMatrixUReturnType<SCMatrix,MappedSparseMatrix<Scalar,ColMajor,Index> > matrixU() const
+    {
+      return SparseLUMatrixUReturnType<SCMatrix, MappedSparseMatrix<Scalar,ColMajor,Index> >(m_Lstore, m_Ustore);
+    }
+
+    /**
+      * \returns a reference to the row matrix permutation \f$ P_r \f$ such that \f$P_r A P_c^T = L U\f$
+      * \sa colsPermutation()
+      */
+    inline const PermutationType& rowsPermutation() const
+    {
+      return m_perm_r;
+    }
+    /**
+      * \returns a reference to the column matrix permutation\f$ P_c^T \f$ such that \f$P_r A P_c^T = L U\f$
+      * \sa rowsPermutation()
+      */
+    inline const PermutationType& colsPermutation() const
+    {
+      return m_perm_c;
+    }
+    /** Set the threshold used for a diagonal entry to be an acceptable pivot. */
+    void setPivotThreshold(const RealScalar& thresh)
+    {
+      m_diagpivotthresh = thresh; 
+    }
+
+    /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+      *
+      * \warning the destination matrix X in X = this->solve(B) must be colmun-major.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<SparseLU, Rhs> solve(const MatrixBase<Rhs>& B) const 
+    {
+      eigen_assert(m_factorizationIsOk && "SparseLU is not initialized."); 
+      eigen_assert(rows()==B.rows()
+                    && "SparseLU::solve(): invalid number of rows of the right hand side matrix B");
+          return internal::solve_retval<SparseLU, Rhs>(*this, B.derived());
+    }
+
+    /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<SparseLU, Rhs> solve(const SparseMatrixBase<Rhs>& B) const 
+    {
+      eigen_assert(m_factorizationIsOk && "SparseLU is not initialized."); 
+      eigen_assert(rows()==B.rows()
+                    && "SparseLU::solve(): invalid number of rows of the right hand side matrix B");
+          return internal::sparse_solve_retval<SparseLU, Rhs>(*this, B.derived());
+    }
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the LU factorization reports a problem, zero diagonal for instance
+      *          \c InvalidInput if the input matrix is invalid
+      *
+      * \sa iparm()          
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+    
+    /**
+      * \returns A string describing the type of error
+      */
+    std::string lastErrorMessage() const
+    {
+      return m_lastError; 
+    }
+
+    template<typename Rhs, typename Dest>
+    bool _solve(const MatrixBase<Rhs> &B, MatrixBase<Dest> &X_base) const
+    {
+      Dest& X(X_base.derived());
+      eigen_assert(m_factorizationIsOk && "The matrix should be factorized first");
+      EIGEN_STATIC_ASSERT((Dest::Flags&RowMajorBit)==0,
+                        THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
+      
+      // Permute the right hand side to form X = Pr*B
+      // on return, X is overwritten by the computed solution
+      X.resize(B.rows(),B.cols());
+
+      // this ugly const_cast_derived() helps to detect aliasing when applying the permutations
+      for(Index j = 0; j < B.cols(); ++j)
+        X.col(j) = rowsPermutation() * B.const_cast_derived().col(j);
+      
+      //Forward substitution with L
+      this->matrixL().solveInPlace(X);
+      this->matrixU().solveInPlace(X);
+      
+      // Permute back the solution 
+      for (Index j = 0; j < B.cols(); ++j)
+        X.col(j) = colsPermutation().inverse() * X.col(j);
+      
+      return true; 
+    }
+    
+    /**
+      * \returns the absolute value of the determinant of the matrix of which
+      * *this is the QR decomposition.
+      *
+      * \warning a determinant can be very big or small, so for matrices
+      * of large enough dimension, there is a risk of overflow/underflow.
+      * One way to work around that is to use logAbsDeterminant() instead.
+      *
+      * \sa logAbsDeterminant(), signDeterminant()
+      */
+     Scalar absDeterminant()
+    {
+      eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+      // Initialize with the determinant of the row matrix
+      Scalar det = Scalar(1.);
+      // Note that the diagonal blocks of U are stored in supernodes,
+      // which are available in the  L part :)
+      for (Index j = 0; j < this->cols(); ++j)
+      {
+        for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+        {
+          if(it.index() == j)
+          {
+            using std::abs;
+            det *= abs(it.value());
+            break;
+          }
+        }
+       }
+       return det;
+     }
+
+     /** \returns the natural log of the absolute value of the determinant of the matrix
+       * of which **this is the QR decomposition
+       *
+       * \note This method is useful to work around the risk of overflow/underflow that's
+       * inherent to the determinant computation.
+       *
+       * \sa absDeterminant(), signDeterminant()
+       */
+     Scalar logAbsDeterminant() const
+     {
+       eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+       Scalar det = Scalar(0.);
+       for (Index j = 0; j < this->cols(); ++j)
+       {
+         for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+         {
+           if(it.row() < j) continue;
+           if(it.row() == j)
+           {
+             using std::log; using std::abs;
+             det += log(abs(it.value()));
+             break;
+           }
+         }
+       }
+       return det;
+     }
+
+    /** \returns A number representing the sign of the determinant
+      *
+      * \sa absDeterminant(), logAbsDeterminant()
+      */
+    Scalar signDeterminant()
+    {
+      eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+      // Initialize with the determinant of the row matrix
+      Index det = 1;
+      // Note that the diagonal blocks of U are stored in supernodes,
+      // which are available in the  L part :)
+      for (Index j = 0; j < this->cols(); ++j)
+      {
+        for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+        {
+          if(it.index() == j)
+          {
+            if(it.value()<0)
+              det = -det;
+            else if(it.value()==0)
+              return 0;
+            break;
+          }
+        }
+      }
+      return det * m_detPermR * m_detPermC;
+    }
+    
+    /** \returns The determinant of the matrix.
+      *
+      * \sa absDeterminant(), logAbsDeterminant()
+      */
+    Scalar determinant()
+    {
+      eigen_assert(m_factorizationIsOk && "The matrix should be factorized first.");
+      // Initialize with the determinant of the row matrix
+      Scalar det = Scalar(1.);
+      // Note that the diagonal blocks of U are stored in supernodes,
+      // which are available in the  L part :)
+      for (Index j = 0; j < this->cols(); ++j)
+      {
+        for (typename SCMatrix::InnerIterator it(m_Lstore, j); it; ++it)
+        {
+          if(it.index() == j)
+          {
+            det *= it.value();
+            break;
+          }
+        }
+      }
+      return det * Scalar(m_detPermR * m_detPermC);
+    }
+
+  protected:
+    // Functions 
+    void initperfvalues()
+    {
+      m_perfv.panel_size = 16;
+      m_perfv.relax = 1; 
+      m_perfv.maxsuper = 128; 
+      m_perfv.rowblk = 16; 
+      m_perfv.colblk = 8; 
+      m_perfv.fillfactor = 20;  
+    }
+      
+    // Variables 
+    mutable ComputationInfo m_info;
+    bool m_isInitialized;
+    bool m_factorizationIsOk;
+    bool m_analysisIsOk;
+    std::string m_lastError;
+    NCMatrix m_mat; // The input (permuted ) matrix 
+    SCMatrix m_Lstore; // The lower triangular matrix (supernodal)
+    MappedSparseMatrix<Scalar,ColMajor,Index> m_Ustore; // The upper triangular matrix
+    PermutationType m_perm_c; // Column permutation 
+    PermutationType m_perm_r ; // Row permutation
+    IndexVector m_etree; // Column elimination tree 
+    
+    typename Base::GlobalLU_t m_glu; 
+                               
+    // SparseLU options 
+    bool m_symmetricmode;
+    // values for performance 
+    internal::perfvalues<Index> m_perfv; 
+    RealScalar m_diagpivotthresh; // Specifies the threshold used for a diagonal entry to be an acceptable pivot
+    Index m_nnzL, m_nnzU; // Nonzeros in L and U factors
+    Index m_detPermR, m_detPermC; // Determinants of the permutation matrices
+  private:
+    // Disable copy constructor 
+    SparseLU (const SparseLU& );
+  
+}; // End class SparseLU
+
+
+
+// Functions needed by the anaysis phase
+/** 
+  * Compute the column permutation to minimize the fill-in
+  * 
+  *  - Apply this permutation to the input matrix - 
+  * 
+  *  - Compute the column elimination tree on the permuted matrix 
+  * 
+  *  - Postorder the elimination tree and the column permutation
+  * 
+  */
+template <typename MatrixType, typename OrderingType>
+void SparseLU<MatrixType, OrderingType>::analyzePattern(const MatrixType& mat)
+{
+  
+  //TODO  It is possible as in SuperLU to compute row and columns scaling vectors to equilibrate the matrix mat.
+  
+  OrderingType ord; 
+  ord(mat,m_perm_c);
+  
+  // Apply the permutation to the column of the input  matrix
+  //First copy the whole input matrix. 
+  m_mat = mat;
+  if (m_perm_c.size()) {
+    m_mat.uncompress(); //NOTE: The effect of this command is only to create the InnerNonzeros pointers. FIXME : This vector is filled but not subsequently used.  
+    //Then, permute only the column pointers
+    const Index * outerIndexPtr;
+    if (mat.isCompressed()) outerIndexPtr = mat.outerIndexPtr();
+    else
+    {
+      Index *outerIndexPtr_t = new Index[mat.cols()+1];
+      for(Index i = 0; i <= mat.cols(); i++) outerIndexPtr_t[i] = m_mat.outerIndexPtr()[i];
+      outerIndexPtr = outerIndexPtr_t;
+    }
+    for (Index i = 0; i < mat.cols(); i++)
+    {
+      m_mat.outerIndexPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i];
+      m_mat.innerNonZeroPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i+1] - outerIndexPtr[i];
+    }
+    if(!mat.isCompressed()) delete[] outerIndexPtr;
+  }
+  // Compute the column elimination tree of the permuted matrix 
+  IndexVector firstRowElt;
+  internal::coletree(m_mat, m_etree,firstRowElt); 
+     
+  // In symmetric mode, do not do postorder here
+  if (!m_symmetricmode) {
+    IndexVector post, iwork; 
+    // Post order etree
+    internal::treePostorder(m_mat.cols(), m_etree, post); 
+      
+   
+    // Renumber etree in postorder 
+    Index m = m_mat.cols(); 
+    iwork.resize(m+1);
+    for (Index i = 0; i < m; ++i) iwork(post(i)) = post(m_etree(i));
+    m_etree = iwork;
+    
+    // Postmultiply A*Pc by post, i.e reorder the matrix according to the postorder of the etree
+    PermutationType post_perm(m); 
+    for (Index i = 0; i < m; i++) 
+      post_perm.indices()(i) = post(i); 
+        
+    // Combine the two permutations : postorder the permutation for future use
+    if(m_perm_c.size()) {
+      m_perm_c = post_perm * m_perm_c;
+    }
+    
+  } // end postordering 
+  
+  m_analysisIsOk = true; 
+}
+
+// Functions needed by the numerical factorization phase
+
+
+/** 
+  *  - Numerical factorization 
+  *  - Interleaved with the symbolic factorization 
+  * On exit,  info is 
+  * 
+  *    = 0: successful factorization
+  * 
+  *    > 0: if info = i, and i is
+  * 
+  *       <= A->ncol: U(i,i) is exactly zero. The factorization has
+  *          been completed, but the factor U is exactly singular,
+  *          and division by zero will occur if it is used to solve a
+  *          system of equations.
+  * 
+  *       > A->ncol: number of bytes allocated when memory allocation
+  *         failure occurred, plus A->ncol. If lwork = -1, it is
+  *         the estimated amount of space needed, plus A->ncol.  
+  */
+template <typename MatrixType, typename OrderingType>
+void SparseLU<MatrixType, OrderingType>::factorize(const MatrixType& matrix)
+{
+  using internal::emptyIdxLU;
+  eigen_assert(m_analysisIsOk && "analyzePattern() should be called first"); 
+  eigen_assert((matrix.rows() == matrix.cols()) && "Only for squared matrices");
+  
+  typedef typename IndexVector::Scalar Index; 
+  
+  
+  // Apply the column permutation computed in analyzepattern()
+  //   m_mat = matrix * m_perm_c.inverse(); 
+  m_mat = matrix;
+  if (m_perm_c.size()) 
+  {
+    m_mat.uncompress(); //NOTE: The effect of this command is only to create the InnerNonzeros pointers.
+    //Then, permute only the column pointers
+    const Index * outerIndexPtr;
+    if (matrix.isCompressed()) outerIndexPtr = matrix.outerIndexPtr();
+    else
+    {
+      Index* outerIndexPtr_t = new Index[matrix.cols()+1];
+      for(Index i = 0; i <= matrix.cols(); i++) outerIndexPtr_t[i] = m_mat.outerIndexPtr()[i];
+      outerIndexPtr = outerIndexPtr_t;
+    }
+    for (Index i = 0; i < matrix.cols(); i++)
+    {
+      m_mat.outerIndexPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i];
+      m_mat.innerNonZeroPtr()[m_perm_c.indices()(i)] = outerIndexPtr[i+1] - outerIndexPtr[i];
+    }
+    if(!matrix.isCompressed()) delete[] outerIndexPtr;
+  } 
+  else 
+  { //FIXME This should not be needed if the empty permutation is handled transparently
+    m_perm_c.resize(matrix.cols());
+    for(Index i = 0; i < matrix.cols(); ++i) m_perm_c.indices()(i) = i;
+  }
+  
+  Index m = m_mat.rows();
+  Index n = m_mat.cols();
+  Index nnz = m_mat.nonZeros();
+  Index maxpanel = m_perfv.panel_size * m;
+  // Allocate working storage common to the factor routines
+  Index lwork = 0;
+  Index info = Base::memInit(m, n, nnz, lwork, m_perfv.fillfactor, m_perfv.panel_size, m_glu); 
+  if (info) 
+  {
+    m_lastError = "UNABLE TO ALLOCATE WORKING MEMORY\n\n" ;
+    m_factorizationIsOk = false;
+    return ; 
+  }
+  
+  // Set up pointers for integer working arrays 
+  IndexVector segrep(m); segrep.setZero();
+  IndexVector parent(m); parent.setZero();
+  IndexVector xplore(m); xplore.setZero();
+  IndexVector repfnz(maxpanel);
+  IndexVector panel_lsub(maxpanel);
+  IndexVector xprune(n); xprune.setZero();
+  IndexVector marker(m*internal::LUNoMarker); marker.setZero();
+  
+  repfnz.setConstant(-1); 
+  panel_lsub.setConstant(-1);
+  
+  // Set up pointers for scalar working arrays 
+  ScalarVector dense; 
+  dense.setZero(maxpanel);
+  ScalarVector tempv; 
+  tempv.setZero(internal::LUnumTempV(m, m_perfv.panel_size, m_perfv.maxsuper, /*m_perfv.rowblk*/m) );
+  
+  // Compute the inverse of perm_c
+  PermutationType iperm_c(m_perm_c.inverse()); 
+  
+  // Identify initial relaxed snodes
+  IndexVector relax_end(n);
+  if ( m_symmetricmode == true ) 
+    Base::heap_relax_snode(n, m_etree, m_perfv.relax, marker, relax_end);
+  else
+    Base::relax_snode(n, m_etree, m_perfv.relax, marker, relax_end);
+  
+  
+  m_perm_r.resize(m); 
+  m_perm_r.indices().setConstant(-1);
+  marker.setConstant(-1);
+  m_detPermR = 1; // Record the determinant of the row permutation
+  
+  m_glu.supno(0) = emptyIdxLU; m_glu.xsup.setConstant(0);
+  m_glu.xsup(0) = m_glu.xlsub(0) = m_glu.xusub(0) = m_glu.xlusup(0) = Index(0);
+  
+  // Work on one 'panel' at a time. A panel is one of the following :
+  //  (a) a relaxed supernode at the bottom of the etree, or
+  //  (b) panel_size contiguous columns, <panel_size> defined by the user
+  Index jcol; 
+  IndexVector panel_histo(n);
+  Index pivrow; // Pivotal row number in the original row matrix
+  Index nseg1; // Number of segments in U-column above panel row jcol
+  Index nseg; // Number of segments in each U-column 
+  Index irep; 
+  Index i, k, jj; 
+  for (jcol = 0; jcol < n; )
+  {
+    // Adjust panel size so that a panel won't overlap with the next relaxed snode. 
+    Index panel_size = m_perfv.panel_size; // upper bound on panel width
+    for (k = jcol + 1; k < (std::min)(jcol+panel_size, n); k++)
+    {
+      if (relax_end(k) != emptyIdxLU) 
+      {
+        panel_size = k - jcol; 
+        break; 
+      }
+    }
+    if (k == n) 
+      panel_size = n - jcol; 
+      
+    // Symbolic outer factorization on a panel of columns 
+    Base::panel_dfs(m, panel_size, jcol, m_mat, m_perm_r.indices(), nseg1, dense, panel_lsub, segrep, repfnz, xprune, marker, parent, xplore, m_glu); 
+    
+    // Numeric sup-panel updates in topological order 
+    Base::panel_bmod(m, panel_size, jcol, nseg1, dense, tempv, segrep, repfnz, m_glu); 
+    
+    // Sparse LU within the panel, and below the panel diagonal 
+    for ( jj = jcol; jj< jcol + panel_size; jj++) 
+    {
+      k = (jj - jcol) * m; // Column index for w-wide arrays 
+      
+      nseg = nseg1; // begin after all the panel segments
+      //Depth-first-search for the current column
+      VectorBlock<IndexVector> panel_lsubk(panel_lsub, k, m);
+      VectorBlock<IndexVector> repfnz_k(repfnz, k, m); 
+      info = Base::column_dfs(m, jj, m_perm_r.indices(), m_perfv.maxsuper, nseg, panel_lsubk, segrep, repfnz_k, xprune, marker, parent, xplore, m_glu); 
+      if ( info ) 
+      {
+        m_lastError =  "UNABLE TO EXPAND MEMORY IN COLUMN_DFS() ";
+        m_info = NumericalIssue; 
+        m_factorizationIsOk = false; 
+        return; 
+      }
+      // Numeric updates to this column 
+      VectorBlock<ScalarVector> dense_k(dense, k, m); 
+      VectorBlock<IndexVector> segrep_k(segrep, nseg1, m-nseg1); 
+      info = Base::column_bmod(jj, (nseg - nseg1), dense_k, tempv, segrep_k, repfnz_k, jcol, m_glu); 
+      if ( info ) 
+      {
+        m_lastError = "UNABLE TO EXPAND MEMORY IN COLUMN_BMOD() ";
+        m_info = NumericalIssue; 
+        m_factorizationIsOk = false; 
+        return; 
+      }
+      
+      // Copy the U-segments to ucol(*)
+      info = Base::copy_to_ucol(jj, nseg, segrep, repfnz_k ,m_perm_r.indices(), dense_k, m_glu); 
+      if ( info ) 
+      {
+        m_lastError = "UNABLE TO EXPAND MEMORY IN COPY_TO_UCOL() ";
+        m_info = NumericalIssue; 
+        m_factorizationIsOk = false; 
+        return; 
+      }
+      
+      // Form the L-segment 
+      info = Base::pivotL(jj, m_diagpivotthresh, m_perm_r.indices(), iperm_c.indices(), pivrow, m_glu);
+      if ( info ) 
+      {
+        m_lastError = "THE MATRIX IS STRUCTURALLY SINGULAR ... ZERO COLUMN AT ";
+        std::ostringstream returnInfo;
+        returnInfo << info; 
+        m_lastError += returnInfo.str();
+        m_info = NumericalIssue; 
+        m_factorizationIsOk = false; 
+        return; 
+      }
+      
+      // Update the determinant of the row permutation matrix
+      // FIXME: the following test is not correct, we should probably take iperm_c into account and pivrow is not directly the row pivot.
+      if (pivrow != jj) m_detPermR = -m_detPermR;
+
+      // Prune columns (0:jj-1) using column jj
+      Base::pruneL(jj, m_perm_r.indices(), pivrow, nseg, segrep, repfnz_k, xprune, m_glu); 
+      
+      // Reset repfnz for this column 
+      for (i = 0; i < nseg; i++)
+      {
+        irep = segrep(i); 
+        repfnz_k(irep) = emptyIdxLU; 
+      }
+    } // end SparseLU within the panel  
+    jcol += panel_size;  // Move to the next panel
+  } // end for -- end elimination 
+  
+  m_detPermR = m_perm_r.determinant();
+  m_detPermC = m_perm_c.determinant();
+  
+  // Count the number of nonzeros in factors 
+  Base::countnz(n, m_nnzL, m_nnzU, m_glu); 
+  // Apply permutation  to the L subscripts 
+  Base::fixupL(n, m_perm_r.indices(), m_glu);
+  
+  // Create supernode matrix L 
+  m_Lstore.setInfos(m, n, m_glu.lusup, m_glu.xlusup, m_glu.lsub, m_glu.xlsub, m_glu.supno, m_glu.xsup); 
+  // Create the column major upper sparse matrix  U; 
+  new (&m_Ustore) MappedSparseMatrix<Scalar, ColMajor, Index> ( m, n, m_nnzU, m_glu.xusub.data(), m_glu.usub.data(), m_glu.ucol.data() ); 
+  
+  m_info = Success;
+  m_factorizationIsOk = true;
+}
+
+template<typename MappedSupernodalType>
+struct SparseLUMatrixLReturnType : internal::no_assignment_operator
+{
+  typedef typename MappedSupernodalType::Index Index;
+  typedef typename MappedSupernodalType::Scalar Scalar;
+  SparseLUMatrixLReturnType(const MappedSupernodalType& mapL) : m_mapL(mapL)
+  { }
+  Index rows() { return m_mapL.rows(); }
+  Index cols() { return m_mapL.cols(); }
+  template<typename Dest>
+  void solveInPlace( MatrixBase<Dest> &X) const
+  {
+    m_mapL.solveInPlace(X);
+  }
+  const MappedSupernodalType& m_mapL;
+};
+
+template<typename MatrixLType, typename MatrixUType>
+struct SparseLUMatrixUReturnType : internal::no_assignment_operator
+{
+  typedef typename MatrixLType::Index Index;
+  typedef typename MatrixLType::Scalar Scalar;
+  SparseLUMatrixUReturnType(const MatrixLType& mapL, const MatrixUType& mapU)
+  : m_mapL(mapL),m_mapU(mapU)
+  { }
+  Index rows() { return m_mapL.rows(); }
+  Index cols() { return m_mapL.cols(); }
+
+  template<typename Dest>   void solveInPlace(MatrixBase<Dest> &X) const
+  {
+    Index nrhs = X.cols();
+    Index n = X.rows();
+    // Backward solve with U
+    for (Index k = m_mapL.nsuper(); k >= 0; k--)
+    {
+      Index fsupc = m_mapL.supToCol()[k];
+      Index lda = m_mapL.colIndexPtr()[fsupc+1] - m_mapL.colIndexPtr()[fsupc]; // leading dimension
+      Index nsupc = m_mapL.supToCol()[k+1] - fsupc;
+      Index luptr = m_mapL.colIndexPtr()[fsupc];
+
+      if (nsupc == 1)
+      {
+        for (Index j = 0; j < nrhs; j++)
+        {
+          X(fsupc, j) /= m_mapL.valuePtr()[luptr];
+        }
+      }
+      else
+      {
+        Map<const Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > A( &(m_mapL.valuePtr()[luptr]), nsupc, nsupc, OuterStride<>(lda) );
+        Map< Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > U (&(X(fsupc,0)), nsupc, nrhs, OuterStride<>(n) );
+        U = A.template triangularView<Upper>().solve(U);
+      }
+
+      for (Index j = 0; j < nrhs; ++j)
+      {
+        for (Index jcol = fsupc; jcol < fsupc + nsupc; jcol++)
+        {
+          typename MatrixUType::InnerIterator it(m_mapU, jcol);
+          for ( ; it; ++it)
+          {
+            Index irow = it.index();
+            X(irow, j) -= X(jcol, j) * it.value();
+          }
+        }
+      }
+    } // End For U-solve
+  }
+  const MatrixLType& m_mapL;
+  const MatrixUType& m_mapU;
+};
+
+namespace internal {
+  
+template<typename _MatrixType, typename Derived, typename Rhs>
+struct solve_retval<SparseLU<_MatrixType,Derived>, Rhs>
+  : solve_retval_base<SparseLU<_MatrixType,Derived>, Rhs>
+{
+  typedef SparseLU<_MatrixType,Derived> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+template<typename _MatrixType, typename Derived, typename Rhs>
+struct sparse_solve_retval<SparseLU<_MatrixType,Derived>, Rhs>
+  : sparse_solve_retval_base<SparseLU<_MatrixType,Derived>, Rhs>
+{
+  typedef SparseLU<_MatrixType,Derived> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+} // end namespace internal
+
+} // End namespace Eigen 
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_kernel_bmod.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_kernel_bmod.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_kernel_bmod.h	(revision 2476)
@@ -0,0 +1,130 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef SPARSELU_KERNEL_BMOD_H
+#define SPARSELU_KERNEL_BMOD_H
+
+namespace Eigen {
+namespace internal {
+  
+/**
+ * \brief Performs numeric block updates from a given supernode to a single column
+ * 
+ * \param segsize Size of the segment (and blocks ) to use for updates
+ * \param[in,out] dense Packed values of the original matrix
+ * \param tempv temporary vector to use for updates
+ * \param lusup array containing the supernodes
+ * \param lda Leading dimension in the supernode
+ * \param nrow Number of rows in the rectangular part of the supernode
+ * \param lsub compressed row subscripts of supernodes
+ * \param lptr pointer to the first column of the current supernode in lsub
+ * \param no_zeros Number of nonzeros elements before the diagonal part of the supernode
+ * \return 0 on success
+ */
+template <int SegSizeAtCompileTime> struct LU_kernel_bmod
+{
+  template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
+  static EIGEN_DONT_INLINE void run(const int segsize, BlockScalarVector& dense, ScalarVector& tempv, ScalarVector& lusup, Index& luptr, const Index lda,
+                                    const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros);
+};
+
+template <int SegSizeAtCompileTime>
+template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
+EIGEN_DONT_INLINE void LU_kernel_bmod<SegSizeAtCompileTime>::run(const int segsize, BlockScalarVector& dense, ScalarVector& tempv, ScalarVector& lusup, Index& luptr, const Index lda,
+                                                                  const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros)
+{
+  typedef typename ScalarVector::Scalar Scalar;
+  // First, copy U[*,j] segment from dense(*) to tempv(*)
+  // The result of triangular solve is in tempv[*]; 
+    // The result of matric-vector update is in dense[*]
+  Index isub = lptr + no_zeros; 
+  int i;
+  Index irow;
+  for (i = 0; i < ((SegSizeAtCompileTime==Dynamic)?segsize:SegSizeAtCompileTime); i++)
+  {
+    irow = lsub(isub); 
+    tempv(i) = dense(irow); 
+    ++isub; 
+  }
+  // Dense triangular solve -- start effective triangle
+  luptr += lda * no_zeros + no_zeros; 
+  // Form Eigen matrix and vector 
+  Map<Matrix<Scalar,SegSizeAtCompileTime,SegSizeAtCompileTime, ColMajor>, 0, OuterStride<> > A( &(lusup.data()[luptr]), segsize, segsize, OuterStride<>(lda) );
+  Map<Matrix<Scalar,SegSizeAtCompileTime,1> > u(tempv.data(), segsize);
+  
+  u = A.template triangularView<UnitLower>().solve(u); 
+  
+  // Dense matrix-vector product y <-- B*x 
+  luptr += segsize;
+  const Index PacketSize = internal::packet_traits<Scalar>::size;
+  Index ldl = internal::first_multiple(nrow, PacketSize);
+  Map<Matrix<Scalar,Dynamic,SegSizeAtCompileTime, ColMajor>, 0, OuterStride<> > B( &(lusup.data()[luptr]), nrow, segsize, OuterStride<>(lda) );
+  Index aligned_offset = internal::first_aligned(tempv.data()+segsize, PacketSize);
+  Index aligned_with_B_offset = (PacketSize-internal::first_aligned(B.data(), PacketSize))%PacketSize;
+  Map<Matrix<Scalar,Dynamic,1>, 0, OuterStride<> > l(tempv.data()+segsize+aligned_offset+aligned_with_B_offset, nrow, OuterStride<>(ldl) );
+  
+  l.setZero();
+  internal::sparselu_gemm<Scalar>(l.rows(), l.cols(), B.cols(), B.data(), B.outerStride(), u.data(), u.outerStride(), l.data(), l.outerStride());
+  
+  // Scatter tempv[] into SPA dense[] as a temporary storage 
+  isub = lptr + no_zeros;
+  for (i = 0; i < ((SegSizeAtCompileTime==Dynamic)?segsize:SegSizeAtCompileTime); i++)
+  {
+    irow = lsub(isub++); 
+    dense(irow) = tempv(i);
+  }
+  
+  // Scatter l into SPA dense[]
+  for (i = 0; i < nrow; i++)
+  {
+    irow = lsub(isub++); 
+    dense(irow) -= l(i);
+  } 
+}
+
+template <> struct LU_kernel_bmod<1>
+{
+  template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
+  static EIGEN_DONT_INLINE void run(const int /*segsize*/, BlockScalarVector& dense, ScalarVector& /*tempv*/, ScalarVector& lusup, Index& luptr,
+                                    const Index lda, const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros);
+};
+
+
+template <typename BlockScalarVector, typename ScalarVector, typename IndexVector, typename Index>
+EIGEN_DONT_INLINE void LU_kernel_bmod<1>::run(const int /*segsize*/, BlockScalarVector& dense, ScalarVector& /*tempv*/, ScalarVector& lusup, Index& luptr,
+                                              const Index lda, const Index nrow, IndexVector& lsub, const Index lptr, const Index no_zeros)
+{
+  typedef typename ScalarVector::Scalar Scalar;
+  Scalar f = dense(lsub(lptr + no_zeros));
+  luptr += lda * no_zeros + no_zeros + 1;
+  const Scalar* a(lusup.data() + luptr);
+  const /*typename IndexVector::Scalar*/Index*  irow(lsub.data()+lptr + no_zeros + 1);
+  Index i = 0;
+  for (; i+1 < nrow; i+=2)
+  {
+    Index i0 = *(irow++);
+    Index i1 = *(irow++);
+    Scalar a0 = *(a++);
+    Scalar a1 = *(a++);
+    Scalar d0 = dense.coeff(i0);
+    Scalar d1 = dense.coeff(i1);
+    d0 -= f*a0;
+    d1 -= f*a1;
+    dense.coeffRef(i0) = d0;
+    dense.coeffRef(i1) = d1;
+  }
+  if(i<nrow)
+    dense.coeffRef(*(irow++)) -= f * *(a++);
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // SPARSELU_KERNEL_BMOD_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_gemm_kernel.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_gemm_kernel.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_gemm_kernel.h	(revision 2476)
@@ -0,0 +1,279 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSELU_GEMM_KERNEL_H
+#define EIGEN_SPARSELU_GEMM_KERNEL_H
+
+namespace Eigen {
+
+namespace internal {
+
+
+/** \internal
+  * A general matrix-matrix product kernel optimized for the SparseLU factorization.
+  *  - A, B, and C must be column major
+  *  - lda and ldc must be multiples of the respective packet size
+  *  - C must have the same alignment as A
+  */
+template<typename Scalar,typename Index>
+EIGEN_DONT_INLINE
+void sparselu_gemm(Index m, Index n, Index d, const Scalar* A, Index lda, const Scalar* B, Index ldb, Scalar* C, Index ldc)
+{
+  using namespace Eigen::internal;
+  
+  typedef typename packet_traits<Scalar>::type Packet;
+  enum {
+    NumberOfRegisters = EIGEN_ARCH_DEFAULT_NUMBER_OF_REGISTERS,
+    PacketSize = packet_traits<Scalar>::size,
+    PM = 8,                             // peeling in M
+    RN = 2,                             // register blocking
+    RK = NumberOfRegisters>=16 ? 4 : 2, // register blocking
+    BM = 4096/sizeof(Scalar),           // number of rows of A-C per chunk
+    SM = PM*PacketSize                  // step along M
+  };
+  Index d_end = (d/RK)*RK;    // number of columns of A (rows of B) suitable for full register blocking
+  Index n_end = (n/RN)*RN;    // number of columns of B-C suitable for processing RN columns at once
+  Index i0 = internal::first_aligned(A,m);
+  
+  eigen_internal_assert(((lda%PacketSize)==0) && ((ldc%PacketSize)==0) && (i0==internal::first_aligned(C,m)));
+  
+  // handle the non aligned rows of A and C without any optimization:
+  for(Index i=0; i<i0; ++i)
+  {
+    for(Index j=0; j<n; ++j)
+    {
+      Scalar c = C[i+j*ldc];
+      for(Index k=0; k<d; ++k)
+        c += B[k+j*ldb] * A[i+k*lda];
+      C[i+j*ldc] = c;
+    }
+  }
+  // process the remaining rows per chunk of BM rows
+  for(Index ib=i0; ib<m; ib+=BM)
+  {
+    Index actual_b = std::min<Index>(BM, m-ib);                 // actual number of rows
+    Index actual_b_end1 = (actual_b/SM)*SM;                   // actual number of rows suitable for peeling
+    Index actual_b_end2 = (actual_b/PacketSize)*PacketSize;   // actual number of rows suitable for vectorization
+    
+    // Let's process two columns of B-C at once
+    for(Index j=0; j<n_end; j+=RN)
+    {
+      const Scalar* Bc0 = B+(j+0)*ldb;
+      const Scalar* Bc1 = B+(j+1)*ldb;
+      
+      for(Index k=0; k<d_end; k+=RK)
+      {
+        
+        // load and expand a RN x RK block of B
+        Packet b00, b10, b20, b30, b01, b11, b21, b31;
+                  b00 = pset1<Packet>(Bc0[0]);
+                  b10 = pset1<Packet>(Bc0[1]);
+        if(RK==4) b20 = pset1<Packet>(Bc0[2]);
+        if(RK==4) b30 = pset1<Packet>(Bc0[3]);
+                  b01 = pset1<Packet>(Bc1[0]);
+                  b11 = pset1<Packet>(Bc1[1]);
+        if(RK==4) b21 = pset1<Packet>(Bc1[2]);
+        if(RK==4) b31 = pset1<Packet>(Bc1[3]);
+        
+        Packet a0, a1, a2, a3, c0, c1, t0, t1;
+        
+        const Scalar* A0 = A+ib+(k+0)*lda;
+        const Scalar* A1 = A+ib+(k+1)*lda;
+        const Scalar* A2 = A+ib+(k+2)*lda;
+        const Scalar* A3 = A+ib+(k+3)*lda;
+        
+        Scalar* C0 = C+ib+(j+0)*ldc;
+        Scalar* C1 = C+ib+(j+1)*ldc;
+        
+                  a0 = pload<Packet>(A0);
+                  a1 = pload<Packet>(A1);
+        if(RK==4)
+        {
+          a2 = pload<Packet>(A2);
+          a3 = pload<Packet>(A3);
+        }
+        else
+        {
+          // workaround "may be used uninitialized in this function" warning
+          a2 = a3 = a0;
+        }
+        
+#define KMADD(c, a, b, tmp) {tmp = b; tmp = pmul(a,tmp); c = padd(c,tmp);}
+#define WORK(I)  \
+                    c0 = pload<Packet>(C0+i+(I)*PacketSize);   \
+                    c1 = pload<Packet>(C1+i+(I)*PacketSize);   \
+                    KMADD(c0, a0, b00, t0)      \
+                    KMADD(c1, a0, b01, t1)      \
+                    a0 = pload<Packet>(A0+i+(I+1)*PacketSize); \
+                    KMADD(c0, a1, b10, t0)      \
+                    KMADD(c1, a1, b11, t1)       \
+                    a1 = pload<Packet>(A1+i+(I+1)*PacketSize); \
+          if(RK==4) KMADD(c0, a2, b20, t0)       \
+          if(RK==4) KMADD(c1, a2, b21, t1)       \
+          if(RK==4) a2 = pload<Packet>(A2+i+(I+1)*PacketSize); \
+          if(RK==4) KMADD(c0, a3, b30, t0)       \
+          if(RK==4) KMADD(c1, a3, b31, t1)       \
+          if(RK==4) a3 = pload<Packet>(A3+i+(I+1)*PacketSize); \
+                    pstore(C0+i+(I)*PacketSize, c0);           \
+                    pstore(C1+i+(I)*PacketSize, c1)
+        
+        // process rows of A' - C' with aggressive vectorization and peeling 
+        for(Index i=0; i<actual_b_end1; i+=PacketSize*8)
+        {
+          EIGEN_ASM_COMMENT("SPARSELU_GEMML_KERNEL1");
+                    prefetch((A0+i+(5)*PacketSize));
+                    prefetch((A1+i+(5)*PacketSize));
+          if(RK==4) prefetch((A2+i+(5)*PacketSize));
+          if(RK==4) prefetch((A3+i+(5)*PacketSize));
+                    WORK(0);
+                    WORK(1);
+                    WORK(2);
+                    WORK(3);
+                    WORK(4);
+                    WORK(5);
+                    WORK(6);
+                    WORK(7);
+        }
+        // process the remaining rows with vectorization only
+        for(Index i=actual_b_end1; i<actual_b_end2; i+=PacketSize)
+        {
+          WORK(0);
+        }
+#undef WORK
+        // process the remaining rows without vectorization
+        for(Index i=actual_b_end2; i<actual_b; ++i)
+        {
+          if(RK==4)
+          {
+            C0[i] += A0[i]*Bc0[0]+A1[i]*Bc0[1]+A2[i]*Bc0[2]+A3[i]*Bc0[3];
+            C1[i] += A0[i]*Bc1[0]+A1[i]*Bc1[1]+A2[i]*Bc1[2]+A3[i]*Bc1[3];
+          }
+          else
+          {
+            C0[i] += A0[i]*Bc0[0]+A1[i]*Bc0[1];
+            C1[i] += A0[i]*Bc1[0]+A1[i]*Bc1[1];
+          }
+        }
+        
+        Bc0 += RK;
+        Bc1 += RK;
+      } // peeled loop on k
+    } // peeled loop on the columns j
+    // process the last column (we now perform a matrux-vector product)
+    if((n-n_end)>0)
+    {
+      const Scalar* Bc0 = B+(n-1)*ldb;
+      
+      for(Index k=0; k<d_end; k+=RK)
+      {
+        
+        // load and expand a 1 x RK block of B
+        Packet b00, b10, b20, b30;
+                  b00 = pset1<Packet>(Bc0[0]);
+                  b10 = pset1<Packet>(Bc0[1]);
+        if(RK==4) b20 = pset1<Packet>(Bc0[2]);
+        if(RK==4) b30 = pset1<Packet>(Bc0[3]);
+        
+        Packet a0, a1, a2, a3, c0, t0/*, t1*/;
+        
+        const Scalar* A0 = A+ib+(k+0)*lda;
+        const Scalar* A1 = A+ib+(k+1)*lda;
+        const Scalar* A2 = A+ib+(k+2)*lda;
+        const Scalar* A3 = A+ib+(k+3)*lda;
+        
+        Scalar* C0 = C+ib+(n_end)*ldc;
+        
+                  a0 = pload<Packet>(A0);
+                  a1 = pload<Packet>(A1);
+        if(RK==4)
+        {
+          a2 = pload<Packet>(A2);
+          a3 = pload<Packet>(A3);
+        }
+        else
+        {
+          // workaround "may be used uninitialized in this function" warning
+          a2 = a3 = a0;
+        }
+        
+#define WORK(I) \
+                  c0 = pload<Packet>(C0+i+(I)*PacketSize);   \
+                  KMADD(c0, a0, b00, t0)       \
+                  a0 = pload<Packet>(A0+i+(I+1)*PacketSize); \
+                  KMADD(c0, a1, b10, t0)       \
+                  a1 = pload<Packet>(A1+i+(I+1)*PacketSize); \
+        if(RK==4) KMADD(c0, a2, b20, t0)       \
+        if(RK==4) a2 = pload<Packet>(A2+i+(I+1)*PacketSize); \
+        if(RK==4) KMADD(c0, a3, b30, t0)       \
+        if(RK==4) a3 = pload<Packet>(A3+i+(I+1)*PacketSize); \
+                  pstore(C0+i+(I)*PacketSize, c0);
+        
+        // agressive vectorization and peeling
+        for(Index i=0; i<actual_b_end1; i+=PacketSize*8)
+        {
+          EIGEN_ASM_COMMENT("SPARSELU_GEMML_KERNEL2");
+          WORK(0);
+          WORK(1);
+          WORK(2);
+          WORK(3);
+          WORK(4);
+          WORK(5);
+          WORK(6);
+          WORK(7);
+        }
+        // vectorization only
+        for(Index i=actual_b_end1; i<actual_b_end2; i+=PacketSize)
+        {
+          WORK(0);
+        }
+        // remaining scalars
+        for(Index i=actual_b_end2; i<actual_b; ++i)
+        {
+          if(RK==4) 
+            C0[i] += A0[i]*Bc0[0]+A1[i]*Bc0[1]+A2[i]*Bc0[2]+A3[i]*Bc0[3];
+          else
+            C0[i] += A0[i]*Bc0[0]+A1[i]*Bc0[1];
+        }
+        
+        Bc0 += RK;
+#undef WORK
+      }
+    }
+    
+    // process the last columns of A, corresponding to the last rows of B
+    Index rd = d-d_end;
+    if(rd>0)
+    {
+      for(Index j=0; j<n; ++j)
+      {
+        enum {
+          Alignment = PacketSize>1 ? Aligned : 0
+        };
+        typedef Map<Matrix<Scalar,Dynamic,1>, Alignment > MapVector;
+        typedef Map<const Matrix<Scalar,Dynamic,1>, Alignment > ConstMapVector;
+        if(rd==1)       MapVector(C+j*ldc+ib,actual_b) += B[0+d_end+j*ldb] * ConstMapVector(A+(d_end+0)*lda+ib, actual_b);
+        
+        else if(rd==2)  MapVector(C+j*ldc+ib,actual_b) += B[0+d_end+j*ldb] * ConstMapVector(A+(d_end+0)*lda+ib, actual_b)
+                                                        + B[1+d_end+j*ldb] * ConstMapVector(A+(d_end+1)*lda+ib, actual_b);
+        
+        else            MapVector(C+j*ldc+ib,actual_b) += B[0+d_end+j*ldb] * ConstMapVector(A+(d_end+0)*lda+ib, actual_b)
+                                                        + B[1+d_end+j*ldb] * ConstMapVector(A+(d_end+1)*lda+ib, actual_b)
+                                                        + B[2+d_end+j*ldb] * ConstMapVector(A+(d_end+2)*lda+ib, actual_b);
+      }
+    }
+  
+  } // blocking on the rows of A and C
+}
+#undef KMADD
+
+} // namespace internal
+
+} // namespace Eigen
+
+#endif // EIGEN_SPARSELU_GEMM_KERNEL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_column_dfs.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_column_dfs.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_column_dfs.h	(revision 2476)
@@ -0,0 +1,177 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]column_dfs.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_COLUMN_DFS_H
+#define SPARSELU_COLUMN_DFS_H
+
+template <typename Scalar, typename Index> class SparseLUImpl;
+namespace Eigen {
+
+namespace internal {
+
+template<typename IndexVector, typename ScalarVector>
+struct column_dfs_traits : no_assignment_operator
+{
+  typedef typename ScalarVector::Scalar Scalar;
+  typedef typename IndexVector::Scalar Index;
+  column_dfs_traits(Index jcol, Index& jsuper, typename SparseLUImpl<Scalar, Index>::GlobalLU_t& glu, SparseLUImpl<Scalar, Index>& luImpl)
+   : m_jcol(jcol), m_jsuper_ref(jsuper), m_glu(glu), m_luImpl(luImpl)
+ {}
+  bool update_segrep(Index /*krep*/, Index /*jj*/)
+  {
+    return true;
+  }
+  void mem_expand(IndexVector& lsub, Index& nextl, Index chmark)
+  {
+    if (nextl >= m_glu.nzlmax)
+      m_luImpl.memXpand(lsub, m_glu.nzlmax, nextl, LSUB, m_glu.num_expansions); 
+    if (chmark != (m_jcol-1)) m_jsuper_ref = emptyIdxLU;
+  }
+  enum { ExpandMem = true };
+  
+  Index m_jcol;
+  Index& m_jsuper_ref;
+  typename SparseLUImpl<Scalar, Index>::GlobalLU_t& m_glu;
+  SparseLUImpl<Scalar, Index>& m_luImpl;
+};
+
+
+/**
+ * \brief Performs a symbolic factorization on column jcol and decide the supernode boundary
+ * 
+ * A supernode representative is the last column of a supernode.
+ * The nonzeros in U[*,j] are segments that end at supernodes representatives. 
+ * The routine returns a list of the supernodal representatives 
+ * in topological order of the dfs that generates them. 
+ * The location of the first nonzero in each supernodal segment 
+ * (supernodal entry location) is also returned. 
+ * 
+ * \param m number of rows in the matrix
+ * \param jcol Current column 
+ * \param perm_r Row permutation
+ * \param maxsuper  Maximum number of column allowed in a supernode
+ * \param [in,out] nseg Number of segments in current U[*,j] - new segments appended
+ * \param lsub_col defines the rhs vector to start the dfs
+ * \param [in,out] segrep Segment representatives - new segments appended 
+ * \param repfnz  First nonzero location in each row
+ * \param xprune 
+ * \param marker  marker[i] == jj, if i was visited during dfs of current column jj;
+ * \param parent
+ * \param xplore working array
+ * \param glu global LU data 
+ * \return 0 success
+ *         > 0 number of bytes allocated when run out of space
+ * 
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::column_dfs(const Index m, const Index jcol, IndexVector& perm_r, Index maxsuper, Index& nseg,  BlockIndexVector lsub_col, IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu)
+{
+  
+  Index jsuper = glu.supno(jcol); 
+  Index nextl = glu.xlsub(jcol); 
+  VectorBlock<IndexVector> marker2(marker, 2*m, m); 
+  
+  
+  column_dfs_traits<IndexVector, ScalarVector> traits(jcol, jsuper, glu, *this);
+  
+  // For each nonzero in A(*,jcol) do dfs 
+  for (Index k = 0; ((k < m) ? lsub_col[k] != emptyIdxLU : false) ; k++)
+  {
+    Index krow = lsub_col(k); 
+    lsub_col(k) = emptyIdxLU; 
+    Index kmark = marker2(krow); 
+    
+    // krow was visited before, go to the next nonz; 
+    if (kmark == jcol) continue;
+    
+    dfs_kernel(jcol, perm_r, nseg, glu.lsub, segrep, repfnz, xprune, marker2, parent,
+                   xplore, glu, nextl, krow, traits);
+  } // for each nonzero ... 
+  
+  Index fsupc, jptr, jm1ptr, ito, ifrom, istop;
+  Index nsuper = glu.supno(jcol);
+  Index jcolp1 = jcol + 1;
+  Index jcolm1 = jcol - 1;
+  
+  // check to see if j belongs in the same supernode as j-1
+  if ( jcol == 0 )
+  { // Do nothing for column 0 
+    nsuper = glu.supno(0) = 0 ;
+  }
+  else 
+  {
+    fsupc = glu.xsup(nsuper); 
+    jptr = glu.xlsub(jcol); // Not yet compressed
+    jm1ptr = glu.xlsub(jcolm1); 
+    
+    // Use supernodes of type T2 : see SuperLU paper
+    if ( (nextl-jptr != jptr-jm1ptr-1) ) jsuper = emptyIdxLU;
+    
+    // Make sure the number of columns in a supernode doesn't
+    // exceed threshold
+    if ( (jcol - fsupc) >= maxsuper) jsuper = emptyIdxLU; 
+    
+    /* If jcol starts a new supernode, reclaim storage space in
+     * glu.lsub from previous supernode. Note we only store 
+     * the subscript set of the first and last columns of 
+     * a supernode. (first for num values, last for pruning)
+     */
+    if (jsuper == emptyIdxLU)
+    { // starts a new supernode 
+      if ( (fsupc < jcolm1-1) ) 
+      { // >= 3 columns in nsuper
+        ito = glu.xlsub(fsupc+1);
+        glu.xlsub(jcolm1) = ito; 
+        istop = ito + jptr - jm1ptr; 
+        xprune(jcolm1) = istop; // intialize xprune(jcol-1)
+        glu.xlsub(jcol) = istop; 
+        
+        for (ifrom = jm1ptr; ifrom < nextl; ++ifrom, ++ito)
+          glu.lsub(ito) = glu.lsub(ifrom); 
+        nextl = ito;  // = istop + length(jcol)
+      }
+      nsuper++; 
+      glu.supno(jcol) = nsuper; 
+    } // if a new supernode 
+  } // end else:  jcol > 0
+  
+  // Tidy up the pointers before exit
+  glu.xsup(nsuper+1) = jcolp1; 
+  glu.supno(jcolp1) = nsuper; 
+  xprune(jcol) = nextl;  // Intialize upper bound for pruning
+  glu.xlsub(jcolp1) = nextl; 
+  
+  return 0; 
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_panel_dfs.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_panel_dfs.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_panel_dfs.h	(revision 2476)
@@ -0,0 +1,258 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]panel_dfs.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PANEL_DFS_H
+#define SPARSELU_PANEL_DFS_H
+
+namespace Eigen {
+
+namespace internal {
+  
+template<typename IndexVector>
+struct panel_dfs_traits
+{
+  typedef typename IndexVector::Scalar Index;
+  panel_dfs_traits(Index jcol, Index* marker)
+    : m_jcol(jcol), m_marker(marker)
+  {}
+  bool update_segrep(Index krep, Index jj)
+  {
+    if(m_marker[krep]<m_jcol)
+    {
+      m_marker[krep] = jj; 
+      return true;
+    }
+    return false;
+  }
+  void mem_expand(IndexVector& /*glu.lsub*/, Index /*nextl*/, Index /*chmark*/) {}
+  enum { ExpandMem = false };
+  Index m_jcol;
+  Index* m_marker;
+};
+
+
+template <typename Scalar, typename Index>
+template <typename Traits>
+void SparseLUImpl<Scalar,Index>::dfs_kernel(const Index jj, IndexVector& perm_r,
+                   Index& nseg, IndexVector& panel_lsub, IndexVector& segrep,
+                   Ref<IndexVector> repfnz_col, IndexVector& xprune, Ref<IndexVector> marker, IndexVector& parent,
+                   IndexVector& xplore, GlobalLU_t& glu,
+                   Index& nextl_col, Index krow, Traits& traits
+                  )
+{
+  
+  Index kmark = marker(krow);
+      
+  // For each unmarked krow of jj
+  marker(krow) = jj; 
+  Index kperm = perm_r(krow); 
+  if (kperm == emptyIdxLU ) {
+    // krow is in L : place it in structure of L(*, jj)
+    panel_lsub(nextl_col++) = krow;  // krow is indexed into A
+    
+    traits.mem_expand(panel_lsub, nextl_col, kmark);
+  }
+  else 
+  {
+    // krow is in U : if its supernode-representative krep
+    // has been explored, update repfnz(*)
+    // krep = supernode representative of the current row
+    Index krep = glu.xsup(glu.supno(kperm)+1) - 1; 
+    // First nonzero element in the current column:
+    Index myfnz = repfnz_col(krep); 
+    
+    if (myfnz != emptyIdxLU )
+    {
+      // Representative visited before
+      if (myfnz > kperm ) repfnz_col(krep) = kperm; 
+      
+    }
+    else 
+    {
+      // Otherwise, perform dfs starting at krep
+      Index oldrep = emptyIdxLU; 
+      parent(krep) = oldrep; 
+      repfnz_col(krep) = kperm; 
+      Index xdfs =  glu.xlsub(krep); 
+      Index maxdfs = xprune(krep); 
+      
+      Index kpar;
+      do 
+      {
+        // For each unmarked kchild of krep
+        while (xdfs < maxdfs) 
+        {
+          Index kchild = glu.lsub(xdfs); 
+          xdfs++; 
+          Index chmark = marker(kchild); 
+          
+          if (chmark != jj ) 
+          {
+            marker(kchild) = jj; 
+            Index chperm = perm_r(kchild); 
+            
+            if (chperm == emptyIdxLU) 
+            {
+              // case kchild is in L: place it in L(*, j)
+              panel_lsub(nextl_col++) = kchild;
+              traits.mem_expand(panel_lsub, nextl_col, chmark);
+            }
+            else
+            {
+              // case kchild is in U :
+              // chrep = its supernode-rep. If its rep has been explored, 
+              // update its repfnz(*)
+              Index chrep = glu.xsup(glu.supno(chperm)+1) - 1; 
+              myfnz = repfnz_col(chrep); 
+              
+              if (myfnz != emptyIdxLU) 
+              { // Visited before 
+                if (myfnz > chperm) 
+                  repfnz_col(chrep) = chperm; 
+              }
+              else 
+              { // Cont. dfs at snode-rep of kchild
+                xplore(krep) = xdfs; 
+                oldrep = krep; 
+                krep = chrep; // Go deeper down G(L)
+                parent(krep) = oldrep; 
+                repfnz_col(krep) = chperm; 
+                xdfs = glu.xlsub(krep); 
+                maxdfs = xprune(krep); 
+                
+              } // end if myfnz != -1
+            } // end if chperm == -1 
+                
+          } // end if chmark !=jj
+        } // end while xdfs < maxdfs
+        
+        // krow has no more unexplored nbrs :
+        //    Place snode-rep krep in postorder DFS, if this 
+        //    segment is seen for the first time. (Note that 
+        //    "repfnz(krep)" may change later.)
+        //    Baktrack dfs to its parent
+        if(traits.update_segrep(krep,jj))
+        //if (marker1(krep) < jcol )
+        {
+          segrep(nseg) = krep; 
+          ++nseg; 
+          //marker1(krep) = jj; 
+        }
+        
+        kpar = parent(krep); // Pop recursion, mimic recursion 
+        if (kpar == emptyIdxLU) 
+          break; // dfs done 
+        krep = kpar; 
+        xdfs = xplore(krep); 
+        maxdfs = xprune(krep); 
+
+      } while (kpar != emptyIdxLU); // Do until empty stack 
+      
+    } // end if (myfnz = -1)
+
+  } // end if (kperm == -1)   
+}
+
+/**
+ * \brief Performs a symbolic factorization on a panel of columns [jcol, jcol+w)
+ * 
+ * A supernode representative is the last column of a supernode.
+ * The nonzeros in U[*,j] are segments that end at supernodes representatives
+ * 
+ * The routine returns a list of the supernodal representatives 
+ * in topological order of the dfs that generates them. This list is 
+ * a superset of the topological order of each individual column within 
+ * the panel.
+ * The location of the first nonzero in each supernodal segment 
+ * (supernodal entry location) is also returned. Each column has 
+ * a separate list for this purpose. 
+ * 
+ * Two markers arrays are used for dfs :
+ *    marker[i] == jj, if i was visited during dfs of current column jj;
+ *    marker1[i] >= jcol, if i was visited by earlier columns in this panel; 
+ * 
+ * \param[in] m number of rows in the matrix
+ * \param[in] w Panel size
+ * \param[in] jcol Starting  column of the panel
+ * \param[in] A Input matrix in column-major storage
+ * \param[in] perm_r Row permutation
+ * \param[out] nseg Number of U segments
+ * \param[out] dense Accumulate the column vectors of the panel
+ * \param[out] panel_lsub Subscripts of the row in the panel 
+ * \param[out] segrep Segment representative i.e first nonzero row of each segment
+ * \param[out] repfnz First nonzero location in each row
+ * \param[out] xprune The pruned elimination tree
+ * \param[out] marker work vector
+ * \param  parent The elimination tree
+ * \param xplore work vector
+ * \param glu The global data structure
+ * 
+ */
+
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::panel_dfs(const Index m, const Index w, const Index jcol, MatrixType& A, IndexVector& perm_r, Index& nseg, ScalarVector& dense, IndexVector& panel_lsub, IndexVector& segrep, IndexVector& repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu)
+{
+  Index nextl_col; // Next available position in panel_lsub[*,jj] 
+  
+  // Initialize pointers 
+  VectorBlock<IndexVector> marker1(marker, m, m); 
+  nseg = 0; 
+  
+  panel_dfs_traits<IndexVector> traits(jcol, marker1.data());
+  
+  // For each column in the panel 
+  for (Index jj = jcol; jj < jcol + w; jj++) 
+  {
+    nextl_col = (jj - jcol) * m; 
+    
+    VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero location in each row
+    VectorBlock<ScalarVector> dense_col(dense,nextl_col, m); // Accumulate a column vector here
+    
+    
+    // For each nnz in A[*, jj] do depth first search
+    for (typename MatrixType::InnerIterator it(A, jj); it; ++it)
+    {
+      Index krow = it.row(); 
+      dense_col(krow) = it.value();
+      
+      Index kmark = marker(krow); 
+      if (kmark == jj) 
+        continue; // krow visited before, go to the next nonzero
+      
+      dfs_kernel(jj, perm_r, nseg, panel_lsub, segrep, repfnz_col, xprune, marker, parent,
+                   xplore, glu, nextl_col, krow, traits);
+    }// end for nonzeros in column jj
+    
+  } // end for column jj
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_PANEL_DFS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h	(revision 2476)
@@ -0,0 +1,106 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]copy_to_ucol.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_COPY_TO_UCOL_H
+#define SPARSELU_COPY_TO_UCOL_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Performs numeric block updates (sup-col) in topological order
+ * 
+ * \param jcol current column to update
+ * \param nseg Number of segments in the U part
+ * \param segrep segment representative ...
+ * \param repfnz First nonzero column in each row  ...
+ * \param perm_r Row permutation 
+ * \param dense Store the full representation of the column
+ * \param glu Global LU data. 
+ * \return 0 - successful return 
+ *         > 0 - number of bytes allocated when run out of space
+ * 
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::copy_to_ucol(const Index jcol, const Index nseg, IndexVector& segrep, BlockIndexVector repfnz ,IndexVector& perm_r, BlockScalarVector dense, GlobalLU_t& glu)
+{  
+  Index ksub, krep, ksupno; 
+    
+  Index jsupno = glu.supno(jcol);
+  
+  // For each nonzero supernode segment of U[*,j] in topological order 
+  Index k = nseg - 1, i; 
+  Index nextu = glu.xusub(jcol); 
+  Index kfnz, isub, segsize; 
+  Index new_next,irow; 
+  Index fsupc, mem; 
+  for (ksub = 0; ksub < nseg; ksub++)
+  {
+    krep = segrep(k); k--; 
+    ksupno = glu.supno(krep); 
+    if (jsupno != ksupno ) // should go into ucol(); 
+    {
+      kfnz = repfnz(krep); 
+      if (kfnz != emptyIdxLU)
+      { // Nonzero U-segment 
+        fsupc = glu.xsup(ksupno); 
+        isub = glu.xlsub(fsupc) + kfnz - fsupc; 
+        segsize = krep - kfnz + 1; 
+        new_next = nextu + segsize; 
+        while (new_next > glu.nzumax) 
+        {
+          mem = memXpand<ScalarVector>(glu.ucol, glu.nzumax, nextu, UCOL, glu.num_expansions); 
+          if (mem) return mem; 
+          mem = memXpand<IndexVector>(glu.usub, glu.nzumax, nextu, USUB, glu.num_expansions); 
+          if (mem) return mem; 
+          
+        }
+        
+        for (i = 0; i < segsize; i++)
+        {
+          irow = glu.lsub(isub); 
+          glu.usub(nextu) = perm_r(irow); // Unlike the L part, the U part is stored in its final order
+          glu.ucol(nextu) = dense(irow); 
+          dense(irow) = Scalar(0.0); 
+          nextu++;
+          isub++;
+        }
+        
+      } // end nonzero U-segment 
+      
+    } // end if jsupno 
+    
+  } // end for each segment
+  glu.xusub(jcol + 1) = nextu; // close U(*,jcol)
+  return 0; 
+}
+
+} // namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_COPY_TO_UCOL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_column_bmod.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_column_bmod.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_column_bmod.h	(revision 2476)
@@ -0,0 +1,180 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of xcolumn_bmod.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_COLUMN_BMOD_H
+#define SPARSELU_COLUMN_BMOD_H
+
+namespace Eigen {
+
+namespace internal {
+/**
+ * \brief Performs numeric block updates (sup-col) in topological order
+ * 
+ * \param jcol current column to update
+ * \param nseg Number of segments in the U part
+ * \param dense Store the full representation of the column
+ * \param tempv working array 
+ * \param segrep segment representative ...
+ * \param repfnz ??? First nonzero column in each row ???  ...
+ * \param fpanelc First column in the current panel
+ * \param glu Global LU data. 
+ * \return 0 - successful return 
+ *         > 0 - number of bytes allocated when run out of space
+ * 
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::column_bmod(const Index jcol, const Index nseg, BlockScalarVector dense, ScalarVector& tempv, BlockIndexVector segrep, BlockIndexVector repfnz, Index fpanelc, GlobalLU_t& glu)
+{
+  Index  jsupno, k, ksub, krep, ksupno; 
+  Index lptr, nrow, isub, irow, nextlu, new_next, ufirst; 
+  Index fsupc, nsupc, nsupr, luptr, kfnz, no_zeros; 
+  /* krep = representative of current k-th supernode
+    * fsupc =  first supernodal column
+    * nsupc = number of columns in a supernode
+    * nsupr = number of rows in a supernode
+    * luptr = location of supernodal LU-block in storage
+    * kfnz = first nonz in the k-th supernodal segment
+    * no_zeros = no lf leading zeros in a supernodal U-segment
+    */
+  
+  jsupno = glu.supno(jcol);
+  // For each nonzero supernode segment of U[*,j] in topological order 
+  k = nseg - 1; 
+  Index d_fsupc; // distance between the first column of the current panel and the 
+               // first column of the current snode
+  Index fst_col; // First column within small LU update
+  Index segsize; 
+  for (ksub = 0; ksub < nseg; ksub++)
+  {
+    krep = segrep(k); k--; 
+    ksupno = glu.supno(krep); 
+    if (jsupno != ksupno )
+    {
+      // outside the rectangular supernode 
+      fsupc = glu.xsup(ksupno); 
+      fst_col = (std::max)(fsupc, fpanelc); 
+      
+      // Distance from the current supernode to the current panel; 
+      // d_fsupc = 0 if fsupc > fpanelc
+      d_fsupc = fst_col - fsupc; 
+      
+      luptr = glu.xlusup(fst_col) + d_fsupc; 
+      lptr = glu.xlsub(fsupc) + d_fsupc; 
+      
+      kfnz = repfnz(krep); 
+      kfnz = (std::max)(kfnz, fpanelc); 
+      
+      segsize = krep - kfnz + 1; 
+      nsupc = krep - fst_col + 1; 
+      nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); 
+      nrow = nsupr - d_fsupc - nsupc;
+      Index lda = glu.xlusup(fst_col+1) - glu.xlusup(fst_col);
+      
+      
+      // Perform a triangular solver and block update, 
+      // then scatter the result of sup-col update to dense
+      no_zeros = kfnz - fst_col; 
+      if(segsize==1)
+        LU_kernel_bmod<1>::run(segsize, dense, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+      else
+        LU_kernel_bmod<Dynamic>::run(segsize, dense, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+    } // end if jsupno 
+  } // end for each segment
+  
+  // Process the supernodal portion of  L\U[*,j]
+  nextlu = glu.xlusup(jcol); 
+  fsupc = glu.xsup(jsupno);
+  
+  // copy the SPA dense into L\U[*,j]
+  Index mem; 
+  new_next = nextlu + glu.xlsub(fsupc + 1) - glu.xlsub(fsupc); 
+  Index offset = internal::first_multiple<Index>(new_next, internal::packet_traits<Scalar>::size) - new_next;
+  if(offset)
+    new_next += offset;
+  while (new_next > glu.nzlumax )
+  {
+    mem = memXpand<ScalarVector>(glu.lusup, glu.nzlumax, nextlu, LUSUP, glu.num_expansions);  
+    if (mem) return mem; 
+  }
+  
+  for (isub = glu.xlsub(fsupc); isub < glu.xlsub(fsupc+1); isub++)
+  {
+    irow = glu.lsub(isub);
+    glu.lusup(nextlu) = dense(irow);
+    dense(irow) = Scalar(0.0); 
+    ++nextlu; 
+  }
+  
+  if(offset)
+  {
+    glu.lusup.segment(nextlu,offset).setZero();
+    nextlu += offset;
+  }
+  glu.xlusup(jcol + 1) = nextlu;  // close L\U(*,jcol); 
+  
+  /* For more updates within the panel (also within the current supernode),
+   * should start from the first column of the panel, or the first column
+   * of the supernode, whichever is bigger. There are two cases:
+   *  1) fsupc < fpanelc, then fst_col <-- fpanelc
+   *  2) fsupc >= fpanelc, then fst_col <-- fsupc
+   */
+  fst_col = (std::max)(fsupc, fpanelc); 
+  
+  if (fst_col  < jcol)
+  {
+    // Distance between the current supernode and the current panel
+    // d_fsupc = 0 if fsupc >= fpanelc
+    d_fsupc = fst_col - fsupc; 
+    
+    lptr = glu.xlsub(fsupc) + d_fsupc; 
+    luptr = glu.xlusup(fst_col) + d_fsupc; 
+    nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); // leading dimension
+    nsupc = jcol - fst_col; // excluding jcol 
+    nrow = nsupr - d_fsupc - nsupc; 
+    
+    // points to the beginning of jcol in snode L\U(jsupno) 
+    ufirst = glu.xlusup(jcol) + d_fsupc; 
+    Index lda = glu.xlusup(jcol+1) - glu.xlusup(jcol);
+    MappedMatrixBlock A( &(glu.lusup.data()[luptr]), nsupc, nsupc, OuterStride<>(lda) );
+    VectorBlock<ScalarVector> u(glu.lusup, ufirst, nsupc); 
+    u = A.template triangularView<UnitLower>().solve(u); 
+    
+    new (&A) MappedMatrixBlock ( &(glu.lusup.data()[luptr+nsupc]), nrow, nsupc, OuterStride<>(lda) );
+    VectorBlock<ScalarVector> l(glu.lusup, ufirst+nsupc, nrow); 
+    l.noalias() -= A * u;
+    
+  } // End if fst_col
+  return 0; 
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_COLUMN_BMOD_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_Utils.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_Utils.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_Utils.h	(revision 2476)
@@ -0,0 +1,80 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+#ifndef EIGEN_SPARSELU_UTILS_H
+#define EIGEN_SPARSELU_UTILS_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Count Nonzero elements in the factors
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::countnz(const Index n, Index& nnzL, Index& nnzU, GlobalLU_t& glu)
+{
+ nnzL = 0; 
+ nnzU = (glu.xusub)(n); 
+ Index nsuper = (glu.supno)(n); 
+ Index jlen; 
+ Index i, j, fsupc;
+ if (n <= 0 ) return; 
+ // For each supernode
+ for (i = 0; i <= nsuper; i++)
+ {
+   fsupc = glu.xsup(i); 
+   jlen = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); 
+   
+   for (j = fsupc; j < glu.xsup(i+1); j++)
+   {
+     nnzL += jlen; 
+     nnzU += j - fsupc + 1; 
+     jlen--; 
+   }
+ }
+}
+
+/**
+ * \brief Fix up the data storage lsub for L-subscripts. 
+ * 
+ * It removes the subscripts sets for structural pruning, 
+ * and applies permutation to the remaining subscripts
+ * 
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::fixupL(const Index n, const IndexVector& perm_r, GlobalLU_t& glu)
+{
+  Index fsupc, i, j, k, jstart; 
+  
+  Index nextl = 0; 
+  Index nsuper = (glu.supno)(n); 
+  
+  // For each supernode 
+  for (i = 0; i <= nsuper; i++)
+  {
+    fsupc = glu.xsup(i); 
+    jstart = glu.xlsub(fsupc); 
+    glu.xlsub(fsupc) = nextl; 
+    for (j = jstart; j < glu.xlsub(fsupc + 1); j++)
+    {
+      glu.lsub(nextl) = perm_r(glu.lsub(j)); // Now indexed into P*A
+      nextl++;
+    }
+    for (k = fsupc+1; k < glu.xsup(i+1); k++)
+      glu.xlsub(k) = nextl; // other columns in supernode i
+  }
+  
+  glu.xlsub(n) = nextl; 
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // EIGEN_SPARSELU_UTILS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h	(revision 2476)
@@ -0,0 +1,127 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* This file is a modified version of heap_relax_snode.c file in SuperLU
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+
+#ifndef SPARSELU_HEAP_RELAX_SNODE_H
+#define SPARSELU_HEAP_RELAX_SNODE_H
+
+namespace Eigen {
+namespace internal {
+
+/** 
+ * \brief Identify the initial relaxed supernodes
+ * 
+ * This routine applied to a symmetric elimination tree. 
+ * It assumes that the matrix has been reordered according to the postorder of the etree
+ * \param n The number of columns
+ * \param et elimination tree 
+ * \param relax_columns Maximum number of columns allowed in a relaxed snode 
+ * \param descendants Number of descendants of each node in the etree
+ * \param relax_end last column in a supernode
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::heap_relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end)
+{
+  
+  // The etree may not be postordered, but its heap ordered  
+  IndexVector post;
+  internal::treePostorder(n, et, post); // Post order etree
+  IndexVector inv_post(n+1); 
+  Index i;
+  for (i = 0; i < n+1; ++i) inv_post(post(i)) = i; // inv_post = post.inverse()???
+  
+  // Renumber etree in postorder 
+  IndexVector iwork(n);
+  IndexVector et_save(n+1);
+  for (i = 0; i < n; ++i)
+  {
+    iwork(post(i)) = post(et(i));
+  }
+  et_save = et; // Save the original etree
+  et = iwork; 
+  
+  // compute the number of descendants of each node in the etree
+  relax_end.setConstant(emptyIdxLU);
+  Index j, parent; 
+  descendants.setZero();
+  for (j = 0; j < n; j++) 
+  {
+    parent = et(j);
+    if (parent != n) // not the dummy root
+      descendants(parent) += descendants(j) + 1;
+  }
+  // Identify the relaxed supernodes by postorder traversal of the etree
+  Index snode_start; // beginning of a snode 
+  Index k;
+  Index nsuper_et_post = 0; // Number of relaxed snodes in postordered etree 
+  Index nsuper_et = 0; // Number of relaxed snodes in the original etree 
+  Index l; 
+  for (j = 0; j < n; )
+  {
+    parent = et(j);
+    snode_start = j; 
+    while ( parent != n && descendants(parent) < relax_columns ) 
+    {
+      j = parent; 
+      parent = et(j);
+    }
+    // Found a supernode in postordered etree, j is the last column 
+    ++nsuper_et_post;
+    k = n;
+    for (i = snode_start; i <= j; ++i)
+      k = (std::min)(k, inv_post(i));
+    l = inv_post(j);
+    if ( (l - k) == (j - snode_start) )  // Same number of columns in the snode
+    {
+      // This is also a supernode in the original etree
+      relax_end(k) = l; // Record last column 
+      ++nsuper_et; 
+    }
+    else 
+    {
+      for (i = snode_start; i <= j; ++i) 
+      {
+        l = inv_post(i);
+        if (descendants(i) == 0) 
+        {
+          relax_end(l) = l;
+          ++nsuper_et;
+        }
+      }
+    }
+    j++;
+    // Search for a new leaf
+    while (descendants(j) != 0 && j < n) j++;
+  } // End postorder traversal of the etree
+  
+  // Recover the original etree
+  et = et_save; 
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // SPARSELU_HEAP_RELAX_SNODE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_panel_bmod.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_panel_bmod.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_panel_bmod.h	(revision 2476)
@@ -0,0 +1,223 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]panel_bmod.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PANEL_BMOD_H
+#define SPARSELU_PANEL_BMOD_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Performs numeric block updates (sup-panel) in topological order.
+ * 
+ * Before entering this routine, the original nonzeros in the panel
+ * were already copied i nto the spa[m,w]
+ * 
+ * \param m number of rows in the matrix
+ * \param w Panel size
+ * \param jcol Starting  column of the panel
+ * \param nseg Number of segments in the U part
+ * \param dense Store the full representation of the panel 
+ * \param tempv working array 
+ * \param segrep segment representative... first row in the segment
+ * \param repfnz First nonzero rows
+ * \param glu Global LU data. 
+ * 
+ * 
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::panel_bmod(const Index m, const Index w, const Index jcol, 
+                                            const Index nseg, ScalarVector& dense, ScalarVector& tempv,
+                                            IndexVector& segrep, IndexVector& repfnz, GlobalLU_t& glu)
+{
+  
+  Index ksub,jj,nextl_col; 
+  Index fsupc, nsupc, nsupr, nrow; 
+  Index krep, kfnz; 
+  Index lptr; // points to the row subscripts of a supernode 
+  Index luptr; // ...
+  Index segsize,no_zeros ; 
+  // For each nonz supernode segment of U[*,j] in topological order
+  Index k = nseg - 1; 
+  const Index PacketSize = internal::packet_traits<Scalar>::size;
+  
+  for (ksub = 0; ksub < nseg; ksub++)
+  { // For each updating supernode
+    /* krep = representative of current k-th supernode
+     * fsupc =  first supernodal column
+     * nsupc = number of columns in a supernode
+     * nsupr = number of rows in a supernode
+     */
+    krep = segrep(k); k--; 
+    fsupc = glu.xsup(glu.supno(krep)); 
+    nsupc = krep - fsupc + 1; 
+    nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); 
+    nrow = nsupr - nsupc; 
+    lptr = glu.xlsub(fsupc); 
+    
+    // loop over the panel columns to detect the actual number of columns and rows
+    Index u_rows = 0;
+    Index u_cols = 0;
+    for (jj = jcol; jj < jcol + w; jj++)
+    {
+      nextl_col = (jj-jcol) * m; 
+      VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+      
+      kfnz = repfnz_col(krep); 
+      if ( kfnz == emptyIdxLU ) 
+        continue; // skip any zero segment
+      
+      segsize = krep - kfnz + 1;
+      u_cols++;
+      u_rows = (std::max)(segsize,u_rows);
+    }
+    
+    if(nsupc >= 2)
+    { 
+      Index ldu = internal::first_multiple<Index>(u_rows, PacketSize);
+      Map<ScalarMatrix, Aligned,  OuterStride<> > U(tempv.data(), u_rows, u_cols, OuterStride<>(ldu));
+      
+      // gather U
+      Index u_col = 0;
+      for (jj = jcol; jj < jcol + w; jj++)
+      {
+        nextl_col = (jj-jcol) * m; 
+        VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+        VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
+        
+        kfnz = repfnz_col(krep); 
+        if ( kfnz == emptyIdxLU ) 
+          continue; // skip any zero segment
+        
+        segsize = krep - kfnz + 1;
+        luptr = glu.xlusup(fsupc);    
+        no_zeros = kfnz - fsupc; 
+        
+        Index isub = lptr + no_zeros;
+        Index off = u_rows-segsize;
+        for (Index i = 0; i < off; i++) U(i,u_col) = 0;
+        for (Index i = 0; i < segsize; i++)
+        {
+          Index irow = glu.lsub(isub); 
+          U(i+off,u_col) = dense_col(irow); 
+          ++isub; 
+        }
+        u_col++;
+      }
+      // solve U = A^-1 U
+      luptr = glu.xlusup(fsupc);
+      Index lda = glu.xlusup(fsupc+1) - glu.xlusup(fsupc);
+      no_zeros = (krep - u_rows + 1) - fsupc;
+      luptr += lda * no_zeros + no_zeros;
+      MappedMatrixBlock A(glu.lusup.data()+luptr, u_rows, u_rows, OuterStride<>(lda) );
+      U = A.template triangularView<UnitLower>().solve(U);
+      
+      // update
+      luptr += u_rows;
+      MappedMatrixBlock B(glu.lusup.data()+luptr, nrow, u_rows, OuterStride<>(lda) );
+      eigen_assert(tempv.size()>w*ldu + nrow*w + 1);
+      
+      Index ldl = internal::first_multiple<Index>(nrow, PacketSize);
+      Index offset = (PacketSize-internal::first_aligned(B.data(), PacketSize)) % PacketSize;
+      MappedMatrixBlock L(tempv.data()+w*ldu+offset, nrow, u_cols, OuterStride<>(ldl));
+      
+      L.setZero();
+      internal::sparselu_gemm<Scalar>(L.rows(), L.cols(), B.cols(), B.data(), B.outerStride(), U.data(), U.outerStride(), L.data(), L.outerStride());
+      
+      // scatter U and L
+      u_col = 0;
+      for (jj = jcol; jj < jcol + w; jj++)
+      {
+        nextl_col = (jj-jcol) * m; 
+        VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+        VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
+        
+        kfnz = repfnz_col(krep); 
+        if ( kfnz == emptyIdxLU ) 
+          continue; // skip any zero segment
+        
+        segsize = krep - kfnz + 1;
+        no_zeros = kfnz - fsupc; 
+        Index isub = lptr + no_zeros;
+        
+        Index off = u_rows-segsize;
+        for (Index i = 0; i < segsize; i++)
+        {
+          Index irow = glu.lsub(isub++); 
+          dense_col(irow) = U.coeff(i+off,u_col);
+          U.coeffRef(i+off,u_col) = 0;
+        }
+        
+        // Scatter l into SPA dense[]
+        for (Index i = 0; i < nrow; i++)
+        {
+          Index irow = glu.lsub(isub++); 
+          dense_col(irow) -= L.coeff(i,u_col);
+          L.coeffRef(i,u_col) = 0;
+        }
+        u_col++;
+      }
+    }
+    else // level 2 only
+    {
+      // Sequence through each column in the panel
+      for (jj = jcol; jj < jcol + w; jj++)
+      {
+        nextl_col = (jj-jcol) * m; 
+        VectorBlock<IndexVector> repfnz_col(repfnz, nextl_col, m); // First nonzero column index for each row
+        VectorBlock<ScalarVector> dense_col(dense, nextl_col, m); // Scatter/gather entire matrix column from/to here
+        
+        kfnz = repfnz_col(krep); 
+        if ( kfnz == emptyIdxLU ) 
+          continue; // skip any zero segment
+        
+        segsize = krep - kfnz + 1;
+        luptr = glu.xlusup(fsupc);
+        
+        Index lda = glu.xlusup(fsupc+1)-glu.xlusup(fsupc);// nsupr
+        
+        // Perform a trianglar solve and block update, 
+        // then scatter the result of sup-col update to dense[]
+        no_zeros = kfnz - fsupc; 
+              if(segsize==1)  LU_kernel_bmod<1>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+        else  if(segsize==2)  LU_kernel_bmod<2>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+        else  if(segsize==3)  LU_kernel_bmod<3>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
+        else                  LU_kernel_bmod<Dynamic>::run(segsize, dense_col, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros); 
+      } // End for each column in the panel 
+    }
+    
+  } // End for each updating supernode
+} // end panel bmod
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // SPARSELU_PANEL_BMOD_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h	(revision 2476)
@@ -0,0 +1,298 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSELU_SUPERNODAL_MATRIX_H
+#define EIGEN_SPARSELU_SUPERNODAL_MATRIX_H
+
+namespace Eigen {
+namespace internal {
+
+/** \ingroup SparseLU_Module
+ * \brief a class to manipulate the L supernodal factor from the SparseLU factorization
+ * 
+ * This class  contain the data to easily store 
+ * and manipulate the supernodes during the factorization and solution phase of Sparse LU. 
+ * Only the lower triangular matrix has supernodes.
+ * 
+ * NOTE : This class corresponds to the SCformat structure in SuperLU
+ * 
+ */
+/* TODO
+ * InnerIterator as for sparsematrix 
+ * SuperInnerIterator to iterate through all supernodes 
+ * Function for triangular solve
+ */
+template <typename _Scalar, typename _Index>
+class MappedSuperNodalMatrix
+{
+  public:
+    typedef _Scalar Scalar; 
+    typedef _Index Index;
+    typedef Matrix<Index,Dynamic,1> IndexVector; 
+    typedef Matrix<Scalar,Dynamic,1> ScalarVector;
+  public:
+    MappedSuperNodalMatrix()
+    {
+      
+    }
+    MappedSuperNodalMatrix(Index m, Index n,  ScalarVector& nzval, IndexVector& nzval_colptr, IndexVector& rowind, 
+             IndexVector& rowind_colptr, IndexVector& col_to_sup, IndexVector& sup_to_col )
+    {
+      setInfos(m, n, nzval, nzval_colptr, rowind, rowind_colptr, col_to_sup, sup_to_col);
+    }
+    
+    ~MappedSuperNodalMatrix()
+    {
+      
+    }
+    /**
+     * Set appropriate pointers for the lower triangular supernodal matrix
+     * These infos are available at the end of the numerical factorization
+     * FIXME This class will be modified such that it can be use in the course 
+     * of the factorization.
+     */
+    void setInfos(Index m, Index n, ScalarVector& nzval, IndexVector& nzval_colptr, IndexVector& rowind, 
+             IndexVector& rowind_colptr, IndexVector& col_to_sup, IndexVector& sup_to_col )
+    {
+      m_row = m;
+      m_col = n; 
+      m_nzval = nzval.data(); 
+      m_nzval_colptr = nzval_colptr.data(); 
+      m_rowind = rowind.data(); 
+      m_rowind_colptr = rowind_colptr.data(); 
+      m_nsuper = col_to_sup(n); 
+      m_col_to_sup = col_to_sup.data(); 
+      m_sup_to_col = sup_to_col.data(); 
+    }
+    
+    /**
+     * Number of rows
+     */
+    Index rows() { return m_row; }
+    
+    /**
+     * Number of columns
+     */
+    Index cols() { return m_col; }
+    
+    /**
+     * Return the array of nonzero values packed by column
+     * 
+     * The size is nnz
+     */
+    Scalar* valuePtr() {  return m_nzval; }
+    
+    const Scalar* valuePtr() const 
+    {
+      return m_nzval; 
+    }
+    /**
+     * Return the pointers to the beginning of each column in \ref valuePtr()
+     */
+    Index* colIndexPtr()
+    {
+      return m_nzval_colptr; 
+    }
+    
+    const Index* colIndexPtr() const
+    {
+      return m_nzval_colptr; 
+    }
+    
+    /**
+     * Return the array of compressed row indices of all supernodes
+     */
+    Index* rowIndex()  { return m_rowind; }
+    
+    const Index* rowIndex() const
+    {
+      return m_rowind; 
+    }
+    
+    /**
+     * Return the location in \em rowvaluePtr() which starts each column
+     */
+    Index* rowIndexPtr() { return m_rowind_colptr; }
+    
+    const Index* rowIndexPtr() const 
+    {
+      return m_rowind_colptr; 
+    }
+    
+    /** 
+     * Return the array of column-to-supernode mapping 
+     */
+    Index* colToSup()  { return m_col_to_sup; }
+    
+    const Index* colToSup() const
+    {
+      return m_col_to_sup;       
+    }
+    /**
+     * Return the array of supernode-to-column mapping
+     */
+    Index* supToCol() { return m_sup_to_col; }
+    
+    const Index* supToCol() const 
+    {
+      return m_sup_to_col;
+    }
+    
+    /**
+     * Return the number of supernodes
+     */
+    Index nsuper() const 
+    {
+      return m_nsuper; 
+    }
+    
+    class InnerIterator; 
+    template<typename Dest>
+    void solveInPlace( MatrixBase<Dest>&X) const;
+    
+      
+      
+    
+  protected:
+    Index m_row; // Number of rows
+    Index m_col; // Number of columns 
+    Index m_nsuper; // Number of supernodes 
+    Scalar* m_nzval; //array of nonzero values packed by column
+    Index* m_nzval_colptr; //nzval_colptr[j] Stores the location in nzval[] which starts column j 
+    Index* m_rowind; // Array of compressed row indices of rectangular supernodes
+    Index* m_rowind_colptr; //rowind_colptr[j] stores the location in rowind[] which starts column j
+    Index* m_col_to_sup; // col_to_sup[j] is the supernode number to which column j belongs
+    Index* m_sup_to_col; //sup_to_col[s] points to the starting column of the s-th supernode
+    
+  private :
+};
+
+/**
+  * \brief InnerIterator class to iterate over nonzero values of the current column in the supernodal matrix L
+  * 
+  */
+template<typename Scalar, typename Index>
+class MappedSuperNodalMatrix<Scalar,Index>::InnerIterator
+{
+  public:
+     InnerIterator(const MappedSuperNodalMatrix& mat, Index outer)
+      : m_matrix(mat),
+        m_outer(outer), 
+        m_supno(mat.colToSup()[outer]),
+        m_idval(mat.colIndexPtr()[outer]),
+        m_startidval(m_idval),
+        m_endidval(mat.colIndexPtr()[outer+1]),
+        m_idrow(mat.rowIndexPtr()[mat.supToCol()[mat.colToSup()[outer]]]),
+        m_endidrow(mat.rowIndexPtr()[mat.supToCol()[mat.colToSup()[outer]]+1])
+    {}
+    inline InnerIterator& operator++()
+    { 
+      m_idval++; 
+      m_idrow++;
+      return *this;
+    }
+    inline Scalar value() const { return m_matrix.valuePtr()[m_idval]; }
+    
+    inline Scalar& valueRef() { return const_cast<Scalar&>(m_matrix.valuePtr()[m_idval]); }
+    
+    inline Index index() const { return m_matrix.rowIndex()[m_idrow]; }
+    inline Index row() const { return index(); }
+    inline Index col() const { return m_outer; }
+    
+    inline Index supIndex() const { return m_supno; }
+    
+    inline operator bool() const 
+    { 
+      return ( (m_idval < m_endidval) && (m_idval >= m_startidval)
+                && (m_idrow < m_endidrow) );
+    }
+    
+  protected:
+    const MappedSuperNodalMatrix& m_matrix; // Supernodal lower triangular matrix 
+    const Index m_outer;                    // Current column 
+    const Index m_supno;                    // Current SuperNode number
+    Index m_idval;                          // Index to browse the values in the current column
+    const Index m_startidval;               // Start of the column value
+    const Index m_endidval;                 // End of the column value
+    Index m_idrow;                          // Index to browse the row indices 
+    Index m_endidrow;                       // End index of row indices of the current column
+};
+
+/**
+ * \brief Solve with the supernode triangular matrix
+ * 
+ */
+template<typename Scalar, typename Index>
+template<typename Dest>
+void MappedSuperNodalMatrix<Scalar,Index>::solveInPlace( MatrixBase<Dest>&X) const
+{
+    Index n = X.rows(); 
+    Index nrhs = X.cols(); 
+    const Scalar * Lval = valuePtr();                 // Nonzero values 
+    Matrix<Scalar,Dynamic,Dynamic, ColMajor> work(n, nrhs);     // working vector
+    work.setZero();
+    for (Index k = 0; k <= nsuper(); k ++)
+    {
+      Index fsupc = supToCol()[k];                    // First column of the current supernode 
+      Index istart = rowIndexPtr()[fsupc];            // Pointer index to the subscript of the current column
+      Index nsupr = rowIndexPtr()[fsupc+1] - istart;  // Number of rows in the current supernode
+      Index nsupc = supToCol()[k+1] - fsupc;          // Number of columns in the current supernode
+      Index nrow = nsupr - nsupc;                     // Number of rows in the non-diagonal part of the supernode
+      Index irow;                                     //Current index row
+      
+      if (nsupc == 1 )
+      {
+        for (Index j = 0; j < nrhs; j++)
+        {
+          InnerIterator it(*this, fsupc);
+          ++it; // Skip the diagonal element
+          for (; it; ++it)
+          {
+            irow = it.row();
+            X(irow, j) -= X(fsupc, j) * it.value();
+          }
+        }
+      }
+      else
+      {
+        // The supernode has more than one column 
+        Index luptr = colIndexPtr()[fsupc]; 
+        Index lda = colIndexPtr()[fsupc+1] - luptr;
+        
+        // Triangular solve 
+        Map<const Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > A( &(Lval[luptr]), nsupc, nsupc, OuterStride<>(lda) );
+        Map< Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > U (&(X(fsupc,0)), nsupc, nrhs, OuterStride<>(n) ); 
+        U = A.template triangularView<UnitLower>().solve(U); 
+        
+        // Matrix-vector product 
+        new (&A) Map<const Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > ( &(Lval[luptr+nsupc]), nrow, nsupc, OuterStride<>(lda) );
+        work.block(0, 0, nrow, nrhs) = A * U; 
+        
+        //Begin Scatter 
+        for (Index j = 0; j < nrhs; j++)
+        {
+          Index iptr = istart + nsupc; 
+          for (Index i = 0; i < nrow; i++)
+          {
+            irow = rowIndex()[iptr]; 
+            X(irow, j) -= work(i, j); // Scatter operation
+            work(i, j) = Scalar(0); 
+            iptr++;
+          }
+        }
+      }
+    } 
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSELU_MATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLUImpl.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLUImpl.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLUImpl.h	(revision 2476)
@@ -0,0 +1,66 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#ifndef SPARSELU_IMPL_H
+#define SPARSELU_IMPL_H
+
+namespace Eigen {
+namespace internal {
+  
+/** \ingroup SparseLU_Module
+  * \class SparseLUImpl
+  * Base class for sparseLU
+  */
+template <typename Scalar, typename Index>
+class SparseLUImpl
+{
+  public:
+    typedef Matrix<Scalar,Dynamic,1> ScalarVector;
+    typedef Matrix<Scalar,Dynamic,Dynamic,ColMajor> ScalarMatrix;
+    typedef Map<ScalarMatrix, 0,  OuterStride<> > MappedMatrixBlock;
+    typedef Matrix<Index,Dynamic,1> IndexVector; 
+    typedef typename ScalarVector::RealScalar RealScalar; 
+    typedef Ref<Matrix<Scalar,Dynamic,1> > BlockScalarVector;
+    typedef Ref<Matrix<Index,Dynamic,1> > BlockIndexVector;
+    typedef LU_GlobalLU_t<IndexVector, ScalarVector> GlobalLU_t; 
+    typedef SparseMatrix<Scalar,ColMajor,Index> MatrixType; 
+    
+  protected:
+     template <typename VectorType>
+     Index expand(VectorType& vec, Index& length, Index nbElts, Index keep_prev, Index& num_expansions);
+     Index memInit(Index m, Index n, Index annz, Index lwork, Index fillratio, Index panel_size,  GlobalLU_t& glu); 
+     template <typename VectorType>
+     Index memXpand(VectorType& vec, Index& maxlen, Index nbElts, MemType memtype, Index& num_expansions);
+     void heap_relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end); 
+     void relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end); 
+     Index snode_dfs(const Index jcol, const Index kcol,const MatrixType& mat,  IndexVector& xprune, IndexVector& marker, GlobalLU_t& glu); 
+     Index snode_bmod (const Index jcol, const Index fsupc, ScalarVector& dense, GlobalLU_t& glu);
+     Index pivotL(const Index jcol, const RealScalar& diagpivotthresh, IndexVector& perm_r, IndexVector& iperm_c, Index& pivrow, GlobalLU_t& glu);
+     template <typename Traits>
+     void dfs_kernel(const Index jj, IndexVector& perm_r,
+                    Index& nseg, IndexVector& panel_lsub, IndexVector& segrep,
+                    Ref<IndexVector> repfnz_col, IndexVector& xprune, Ref<IndexVector> marker, IndexVector& parent,
+                    IndexVector& xplore, GlobalLU_t& glu, Index& nextl_col, Index krow, Traits& traits);
+     void panel_dfs(const Index m, const Index w, const Index jcol, MatrixType& A, IndexVector& perm_r, Index& nseg, ScalarVector& dense, IndexVector& panel_lsub, IndexVector& segrep, IndexVector& repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu);
+    
+     void panel_bmod(const Index m, const Index w, const Index jcol, const Index nseg, ScalarVector& dense, ScalarVector& tempv, IndexVector& segrep, IndexVector& repfnz, GlobalLU_t& glu);
+     Index column_dfs(const Index m, const Index jcol, IndexVector& perm_r, Index maxsuper, Index& nseg,  BlockIndexVector lsub_col, IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, IndexVector& marker, IndexVector& parent, IndexVector& xplore, GlobalLU_t& glu);
+     Index column_bmod(const Index jcol, const Index nseg, BlockScalarVector dense, ScalarVector& tempv, BlockIndexVector segrep, BlockIndexVector repfnz, Index fpanelc, GlobalLU_t& glu); 
+     Index copy_to_ucol(const Index jcol, const Index nseg, IndexVector& segrep, BlockIndexVector repfnz ,IndexVector& perm_r, BlockScalarVector dense, GlobalLU_t& glu); 
+     void pruneL(const Index jcol, const IndexVector& perm_r, const Index pivrow, const Index nseg, const IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, GlobalLU_t& glu);
+     void countnz(const Index n, Index& nnzL, Index& nnzU, GlobalLU_t& glu); 
+     void fixupL(const Index n, const IndexVector& perm_r, GlobalLU_t& glu); 
+     
+     template<typename , typename >
+     friend struct column_dfs_traits;
+}; 
+
+} // end namespace internal
+} // namespace Eigen
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_relax_snode.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_relax_snode.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_relax_snode.h	(revision 2476)
@@ -0,0 +1,83 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* This file is a modified version of heap_relax_snode.c file in SuperLU
+ * -- SuperLU routine (version 3.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * October 15, 2003
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+
+#ifndef SPARSELU_RELAX_SNODE_H
+#define SPARSELU_RELAX_SNODE_H
+
+namespace Eigen {
+
+namespace internal {
+ 
+/** 
+ * \brief Identify the initial relaxed supernodes
+ * 
+ * This routine is applied to a column elimination tree. 
+ * It assumes that the matrix has been reordered according to the postorder of the etree
+ * \param n  the number of columns
+ * \param et elimination tree 
+ * \param relax_columns Maximum number of columns allowed in a relaxed snode 
+ * \param descendants Number of descendants of each node in the etree
+ * \param relax_end last column in a supernode
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::relax_snode (const Index n, IndexVector& et, const Index relax_columns, IndexVector& descendants, IndexVector& relax_end)
+{
+  
+  // compute the number of descendants of each node in the etree
+  Index j, parent; 
+  relax_end.setConstant(emptyIdxLU);
+  descendants.setZero();
+  for (j = 0; j < n; j++) 
+  {
+    parent = et(j);
+    if (parent != n) // not the dummy root
+      descendants(parent) += descendants(j) + 1;
+  }
+  // Identify the relaxed supernodes by postorder traversal of the etree
+  Index snode_start; // beginning of a snode 
+  for (j = 0; j < n; )
+  {
+    parent = et(j);
+    snode_start = j; 
+    while ( parent != n && descendants(parent) < relax_columns ) 
+    {
+      j = parent; 
+      parent = et(j);
+    }
+    // Found a supernode in postordered etree, j is the last column 
+    relax_end(snode_start) = j; // Record last column
+    j++;
+    // Search for a new leaf
+    while (descendants(j) != 0 && j < n) j++;
+  } // End postorder traversal of the etree
+  
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_pruneL.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_pruneL.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_pruneL.h	(revision 2476)
@@ -0,0 +1,135 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]pruneL.c file in SuperLU 
+ 
+ * -- SuperLU routine (version 2.0) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November 15, 1997
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+#ifndef SPARSELU_PRUNEL_H
+#define SPARSELU_PRUNEL_H
+
+namespace Eigen {
+namespace internal {
+
+/**
+ * \brief Prunes the L-structure.
+ *
+ * It prunes the L-structure  of supernodes whose L-structure contains the current pivot row "pivrow"
+ * 
+ * 
+ * \param jcol The current column of L
+ * \param[in] perm_r Row permutation
+ * \param[out] pivrow  The pivot row
+ * \param nseg Number of segments
+ * \param segrep 
+ * \param repfnz
+ * \param[out] xprune 
+ * \param glu Global LU data
+ * 
+ */
+template <typename Scalar, typename Index>
+void SparseLUImpl<Scalar,Index>::pruneL(const Index jcol, const IndexVector& perm_r, const Index pivrow, const Index nseg, const IndexVector& segrep, BlockIndexVector repfnz, IndexVector& xprune, GlobalLU_t& glu)
+{
+  // For each supernode-rep irep in U(*,j]
+  Index jsupno = glu.supno(jcol); 
+  Index i,irep,irep1; 
+  bool movnum, do_prune = false; 
+  Index kmin = 0, kmax = 0, minloc, maxloc,krow; 
+  for (i = 0; i < nseg; i++)
+  {
+    irep = segrep(i); 
+    irep1 = irep + 1; 
+    do_prune = false; 
+    
+    // Don't prune with a zero U-segment 
+    if (repfnz(irep) == emptyIdxLU) continue; 
+    
+    // If a snode overlaps with the next panel, then the U-segment
+    // is fragmented into two parts -- irep and irep1. We should let 
+    // pruning occur at the rep-column in irep1s snode. 
+    if (glu.supno(irep) == glu.supno(irep1) ) continue; // don't prune 
+    
+    // If it has not been pruned & it has a nonz in row L(pivrow,i)
+    if (glu.supno(irep) != jsupno )
+    {
+      if ( xprune (irep) >= glu.xlsub(irep1) )
+      {
+        kmin = glu.xlsub(irep);
+        kmax = glu.xlsub(irep1) - 1; 
+        for (krow = kmin; krow <= kmax; krow++)
+        {
+          if (glu.lsub(krow) == pivrow) 
+          {
+            do_prune = true; 
+            break; 
+          }
+        }
+      }
+      
+      if (do_prune) 
+      {
+        // do a quicksort-type partition
+        // movnum=true means that the num values have to be exchanged
+        movnum = false; 
+        if (irep == glu.xsup(glu.supno(irep)) ) // Snode of size 1 
+          movnum = true; 
+        
+        while (kmin <= kmax)
+        {
+          if (perm_r(glu.lsub(kmax)) == emptyIdxLU)
+            kmax--; 
+          else if ( perm_r(glu.lsub(kmin)) != emptyIdxLU)
+            kmin++;
+          else 
+          {
+            // kmin below pivrow (not yet pivoted), and kmax
+            // above pivrow: interchange the two suscripts
+            std::swap(glu.lsub(kmin), glu.lsub(kmax)); 
+            
+            // If the supernode has only one column, then we 
+            // only keep one set of subscripts. For any subscript
+            // intercnahge performed, similar interchange must be 
+            // done on the numerical values. 
+            if (movnum) 
+            {
+              minloc = glu.xlusup(irep) + ( kmin - glu.xlsub(irep) ); 
+              maxloc = glu.xlusup(irep) + ( kmax - glu.xlsub(irep) ); 
+              std::swap(glu.lusup(minloc), glu.lusup(maxloc)); 
+            }
+            kmin++;
+            kmax--;
+          }
+        } // end while 
+        
+        xprune(irep) = kmin;  //Pruning 
+      } // end if do_prune 
+    } // end pruning 
+  } // End for each U-segment
+}
+
+} // end namespace internal
+} // end namespace Eigen
+
+#endif // SPARSELU_PRUNEL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_Structs.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_Structs.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_Structs.h	(revision 2476)
@@ -0,0 +1,111 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ * NOTE: This file comes from a partly modified version of files slu_[s,d,c,z]defs.h
+ * -- SuperLU routine (version 4.1) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * November, 2010
+ * 
+ * Global data structures used in LU factorization -
+ * 
+ *   nsuper: #supernodes = nsuper + 1, numbered [0, nsuper].
+ *   (xsup,supno): supno[i] is the supernode no to which i belongs;
+ *  xsup(s) points to the beginning of the s-th supernode.
+ *  e.g.   supno 0 1 2 2 3 3 3 4 4 4 4 4   (n=12)
+ *          xsup 0 1 2 4 7 12
+ *  Note: dfs will be performed on supernode rep. relative to the new 
+ *        row pivoting ordering
+ *
+ *   (xlsub,lsub): lsub[*] contains the compressed subscript of
+ *  rectangular supernodes; xlsub[j] points to the starting
+ *  location of the j-th column in lsub[*]. Note that xlsub 
+ *  is indexed by column.
+ *  Storage: original row subscripts
+ *
+ *      During the course of sparse LU factorization, we also use
+ *  (xlsub,lsub) for the purpose of symmetric pruning. For each
+ *  supernode {s,s+1,...,t=s+r} with first column s and last
+ *  column t, the subscript set
+ *    lsub[j], j=xlsub[s], .., xlsub[s+1]-1
+ *  is the structure of column s (i.e. structure of this supernode).
+ *  It is used for the storage of numerical values.
+ *  Furthermore,
+ *    lsub[j], j=xlsub[t], .., xlsub[t+1]-1
+ *  is the structure of the last column t of this supernode.
+ *  It is for the purpose of symmetric pruning. Therefore, the
+ *  structural subscripts can be rearranged without making physical
+ *  interchanges among the numerical values.
+ *
+ *  However, if the supernode has only one column, then we
+ *  only keep one set of subscripts. For any subscript interchange
+ *  performed, similar interchange must be done on the numerical
+ *  values.
+ *
+ *  The last column structures (for pruning) will be removed
+ *  after the numercial LU factorization phase.
+ *
+ *   (xlusup,lusup): lusup[*] contains the numerical values of the
+ *  rectangular supernodes; xlusup[j] points to the starting
+ *  location of the j-th column in storage vector lusup[*]
+ *  Note: xlusup is indexed by column.
+ *  Each rectangular supernode is stored by column-major
+ *  scheme, consistent with Fortran 2-dim array storage.
+ *
+ *   (xusub,ucol,usub): ucol[*] stores the numerical values of
+ *  U-columns outside the rectangular supernodes. The row
+ *  subscript of nonzero ucol[k] is stored in usub[k].
+ *  xusub[i] points to the starting location of column i in ucol.
+ *  Storage: new row subscripts; that is subscripts of PA.
+ */
+
+#ifndef EIGEN_LU_STRUCTS
+#define EIGEN_LU_STRUCTS
+namespace Eigen {
+namespace internal {
+  
+typedef enum {LUSUP, UCOL, LSUB, USUB, LLVL, ULVL} MemType; 
+
+template <typename IndexVector, typename ScalarVector>
+struct LU_GlobalLU_t {
+  typedef typename IndexVector::Scalar Index; 
+  IndexVector xsup; //First supernode column ... xsup(s) points to the beginning of the s-th supernode
+  IndexVector supno; // Supernode number corresponding to this column (column to supernode mapping)
+  ScalarVector  lusup; // nonzero values of L ordered by columns 
+  IndexVector lsub; // Compressed row indices of L rectangular supernodes. 
+  IndexVector xlusup; // pointers to the beginning of each column in lusup
+  IndexVector xlsub; // pointers to the beginning of each column in lsub
+  Index   nzlmax; // Current max size of lsub
+  Index   nzlumax; // Current max size of lusup
+  ScalarVector  ucol; // nonzero values of U ordered by columns 
+  IndexVector usub; // row indices of U columns in ucol
+  IndexVector xusub; // Pointers to the beginning of each column of U in ucol 
+  Index   nzumax; // Current max size of ucol
+  Index   n; // Number of columns in the matrix  
+  Index   num_expansions; 
+};
+
+// Values to set for performance
+template <typename Index>
+struct perfvalues {
+  Index panel_size; // a panel consists of at most <panel_size> consecutive columns
+  Index relax; // To control degree of relaxing supernodes. If the number of nodes (columns) 
+                // in a subtree of the elimination tree is less than relax, this subtree is considered 
+                // as one supernode regardless of the row structures of those columns
+  Index maxsuper; // The maximum size for a supernode in complete LU
+  Index rowblk; // The minimum row dimension for 2-D blocking to be used;
+  Index colblk; // The minimum column dimension for 2-D blocking to be used;
+  Index fillfactor; // The estimated fills factors for L and U, compared with A
+}; 
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // EIGEN_LU_STRUCTS
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_Memory.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_Memory.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseLU/SparseLU_Memory.h	(revision 2476)
@@ -0,0 +1,227 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+/* 
+ 
+ * NOTE: This file is the modified version of [s,d,c,z]memory.c files in SuperLU 
+ 
+ * -- SuperLU routine (version 3.1) --
+ * Univ. of California Berkeley, Xerox Palo Alto Research Center,
+ * and Lawrence Berkeley National Lab.
+ * August 1, 2008
+ *
+ * Copyright (c) 1994 by Xerox Corporation.  All rights reserved.
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+ * EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program for any
+ * purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is
+ * granted, provided the above notices are retained, and a notice that
+ * the code was modified is included with the above copyright notice.
+ */
+
+#ifndef EIGEN_SPARSELU_MEMORY
+#define EIGEN_SPARSELU_MEMORY
+
+namespace Eigen {
+namespace internal {
+  
+enum { LUNoMarker = 3 };
+enum {emptyIdxLU = -1};
+template<typename Index>
+inline Index LUnumTempV(Index& m, Index& w, Index& t, Index& b)
+{
+  return (std::max)(m, (t+b)*w);
+}
+
+template< typename Scalar, typename Index>
+inline Index LUTempSpace(Index&m, Index& w)
+{
+  return (2*w + 4 + LUNoMarker) * m * sizeof(Index) + (w + 1) * m * sizeof(Scalar);
+}
+
+
+
+
+/** 
+  * Expand the existing storage to accomodate more fill-ins
+  * \param vec Valid pointer to the vector to allocate or expand
+  * \param[in,out] length  At input, contain the current length of the vector that is to be increased. At output, length of the newly allocated vector
+  * \param[in] nbElts Current number of elements in the factors
+  * \param keep_prev  1: use length  and do not expand the vector; 0: compute new_len and expand
+  * \param[in,out] num_expansions Number of times the memory has been expanded
+  */
+template <typename Scalar, typename Index>
+template <typename VectorType>
+Index  SparseLUImpl<Scalar,Index>::expand(VectorType& vec, Index& length, Index nbElts, Index keep_prev, Index& num_expansions) 
+{
+  
+  float alpha = 1.5; // Ratio of the memory increase 
+  Index new_len; // New size of the allocated memory
+  
+  if(num_expansions == 0 || keep_prev) 
+    new_len = length ; // First time allocate requested
+  else 
+    new_len = (std::max)(length+1,Index(alpha * length));
+  
+  VectorType old_vec; // Temporary vector to hold the previous values   
+  if (nbElts > 0 )
+    old_vec = vec.segment(0,nbElts); 
+  
+  //Allocate or expand the current vector
+#ifdef EIGEN_EXCEPTIONS
+  try
+#endif
+  {
+    vec.resize(new_len); 
+  }
+#ifdef EIGEN_EXCEPTIONS
+  catch(std::bad_alloc& )
+#else
+  if(!vec.size())
+#endif
+  {
+    if (!num_expansions)
+    {
+      // First time to allocate from LUMemInit()
+      // Let LUMemInit() deals with it.
+      return -1;
+    }
+    if (keep_prev)
+    {
+      // In this case, the memory length should not not be reduced
+      return new_len;
+    }
+    else 
+    {
+      // Reduce the size and increase again 
+      Index tries = 0; // Number of attempts
+      do 
+      {
+        alpha = (alpha + 1)/2;
+        new_len = (std::max)(length+1,Index(alpha * length));
+#ifdef EIGEN_EXCEPTIONS
+        try
+#endif
+        {
+          vec.resize(new_len); 
+        }
+#ifdef EIGEN_EXCEPTIONS
+        catch(std::bad_alloc& )
+#else
+        if (!vec.size())
+#endif
+        {
+          tries += 1; 
+          if ( tries > 10) return new_len; 
+        }
+      } while (!vec.size());
+    }
+  }
+  //Copy the previous values to the newly allocated space 
+  if (nbElts > 0)
+    vec.segment(0, nbElts) = old_vec;   
+   
+  
+  length  = new_len;
+  if(num_expansions) ++num_expansions;
+  return 0; 
+}
+
+/**
+ * \brief  Allocate various working space for the numerical factorization phase.
+ * \param m number of rows of the input matrix 
+ * \param n number of columns 
+ * \param annz number of initial nonzeros in the matrix 
+ * \param lwork  if lwork=-1, this routine returns an estimated size of the required memory
+ * \param glu persistent data to facilitate multiple factors : will be deleted later ??
+ * \param fillratio estimated ratio of fill in the factors
+ * \param panel_size Size of a panel
+ * \return an estimated size of the required memory if lwork = -1; otherwise, return the size of actually allocated memory when allocation failed, and 0 on success
+ * \note Unlike SuperLU, this routine does not support successive factorization with the same pattern and the same row permutation
+ */
+template <typename Scalar, typename Index>
+Index SparseLUImpl<Scalar,Index>::memInit(Index m, Index n, Index annz, Index lwork, Index fillratio, Index panel_size,  GlobalLU_t& glu)
+{
+  Index& num_expansions = glu.num_expansions; //No memory expansions so far
+  num_expansions = 0;
+  glu.nzumax = glu.nzlumax = (std::min)(fillratio * (annz+1) / n, m) * n; // estimated number of nonzeros in U 
+  glu.nzlmax = (std::max)(Index(4), fillratio) * (annz+1) / 4; // estimated  nnz in L factor
+  // Return the estimated size to the user if necessary
+  Index tempSpace;
+  tempSpace = (2*panel_size + 4 + LUNoMarker) * m * sizeof(Index) + (panel_size + 1) * m * sizeof(Scalar);
+  if (lwork == emptyIdxLU) 
+  {
+    Index estimated_size;
+    estimated_size = (5 * n + 5) * sizeof(Index)  + tempSpace
+                    + (glu.nzlmax + glu.nzumax) * sizeof(Index) + (glu.nzlumax+glu.nzumax) *  sizeof(Scalar) + n; 
+    return estimated_size;
+  }
+  
+  // Setup the required space 
+  
+  // First allocate Integer pointers for L\U factors
+  glu.xsup.resize(n+1);
+  glu.supno.resize(n+1);
+  glu.xlsub.resize(n+1);
+  glu.xlusup.resize(n+1);
+  glu.xusub.resize(n+1);
+
+  // Reserve memory for L/U factors
+  do 
+  {
+    if(     (expand<ScalarVector>(glu.lusup, glu.nzlumax, 0, 0, num_expansions)<0)
+        ||  (expand<ScalarVector>(glu.ucol,  glu.nzumax,  0, 0, num_expansions)<0)
+        ||  (expand<IndexVector> (glu.lsub,  glu.nzlmax,  0, 0, num_expansions)<0)
+        ||  (expand<IndexVector> (glu.usub,  glu.nzumax,  0, 1, num_expansions)<0) )
+    {
+      //Reduce the estimated size and retry
+      glu.nzlumax /= 2;
+      glu.nzumax /= 2;
+      glu.nzlmax /= 2;
+      if (glu.nzlumax < annz ) return glu.nzlumax; 
+    }
+  } while (!glu.lusup.size() || !glu.ucol.size() || !glu.lsub.size() || !glu.usub.size());
+  
+  ++num_expansions;
+  return 0;
+  
+} // end LuMemInit
+
+/** 
+ * \brief Expand the existing storage 
+ * \param vec vector to expand 
+ * \param[in,out] maxlen On input, previous size of vec (Number of elements to copy ). on output, new size
+ * \param nbElts current number of elements in the vector.
+ * \param memtype Type of the element to expand
+ * \param num_expansions Number of expansions 
+ * \return 0 on success, > 0 size of the memory allocated so far
+ */
+template <typename Scalar, typename Index>
+template <typename VectorType>
+Index SparseLUImpl<Scalar,Index>::memXpand(VectorType& vec, Index& maxlen, Index nbElts, MemType memtype, Index& num_expansions)
+{
+  Index failed_size; 
+  if (memtype == USUB)
+     failed_size = this->expand<VectorType>(vec, maxlen, nbElts, 1, num_expansions);
+  else
+    failed_size = this->expand<VectorType>(vec, maxlen, nbElts, 0, num_expansions);
+
+  if (failed_size)
+    return failed_size; 
+  
+  return 0 ;  
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+#endif // EIGEN_SPARSELU_MEMORY
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/PardisoSupport/PardisoSupport.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/PardisoSupport/PardisoSupport.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/PardisoSupport/PardisoSupport.h	(revision 2476)
@@ -0,0 +1,603 @@
+/*
+ Copyright (c) 2011, Intel Corporation. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this
+   list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+   this list of conditions and the following disclaimer in the documentation
+   and/or other materials provided with the distribution.
+ * Neither the name of Intel Corporation nor the names of its contributors may
+   be used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ********************************************************************************
+ *   Content : Eigen bindings to Intel(R) MKL PARDISO
+ ********************************************************************************
+*/
+
+#ifndef EIGEN_PARDISOSUPPORT_H
+#define EIGEN_PARDISOSUPPORT_H
+
+namespace Eigen { 
+
+template<typename _MatrixType> class PardisoLU;
+template<typename _MatrixType, int Options=Upper> class PardisoLLT;
+template<typename _MatrixType, int Options=Upper> class PardisoLDLT;
+
+namespace internal
+{
+  template<typename Index>
+  struct pardiso_run_selector
+  {
+    static Index run( _MKL_DSS_HANDLE_t pt, Index maxfct, Index mnum, Index type, Index phase, Index n, void *a,
+                      Index *ia, Index *ja, Index *perm, Index nrhs, Index *iparm, Index msglvl, void *b, void *x)
+    {
+      Index error = 0;
+      ::pardiso(pt, &maxfct, &mnum, &type, &phase, &n, a, ia, ja, perm, &nrhs, iparm, &msglvl, b, x, &error);
+      return error;
+    }
+  };
+  template<>
+  struct pardiso_run_selector<long long int>
+  {
+    typedef long long int Index;
+    static Index run( _MKL_DSS_HANDLE_t pt, Index maxfct, Index mnum, Index type, Index phase, Index n, void *a,
+                      Index *ia, Index *ja, Index *perm, Index nrhs, Index *iparm, Index msglvl, void *b, void *x)
+    {
+      Index error = 0;
+      ::pardiso_64(pt, &maxfct, &mnum, &type, &phase, &n, a, ia, ja, perm, &nrhs, iparm, &msglvl, b, x, &error);
+      return error;
+    }
+  };
+
+  template<class Pardiso> struct pardiso_traits;
+
+  template<typename _MatrixType>
+  struct pardiso_traits< PardisoLU<_MatrixType> >
+  {
+    typedef _MatrixType MatrixType;
+    typedef typename _MatrixType::Scalar Scalar;
+    typedef typename _MatrixType::RealScalar RealScalar;
+    typedef typename _MatrixType::Index Index;
+  };
+
+  template<typename _MatrixType, int Options>
+  struct pardiso_traits< PardisoLLT<_MatrixType, Options> >
+  {
+    typedef _MatrixType MatrixType;
+    typedef typename _MatrixType::Scalar Scalar;
+    typedef typename _MatrixType::RealScalar RealScalar;
+    typedef typename _MatrixType::Index Index;
+  };
+
+  template<typename _MatrixType, int Options>
+  struct pardiso_traits< PardisoLDLT<_MatrixType, Options> >
+  {
+    typedef _MatrixType MatrixType;
+    typedef typename _MatrixType::Scalar Scalar;
+    typedef typename _MatrixType::RealScalar RealScalar;
+    typedef typename _MatrixType::Index Index;    
+  };
+
+}
+
+template<class Derived>
+class PardisoImpl
+{
+    typedef internal::pardiso_traits<Derived> Traits;
+  public:
+    typedef typename Traits::MatrixType MatrixType;
+    typedef typename Traits::Scalar Scalar;
+    typedef typename Traits::RealScalar RealScalar;
+    typedef typename Traits::Index Index;
+    typedef SparseMatrix<Scalar,RowMajor,Index> SparseMatrixType;
+    typedef Matrix<Scalar,Dynamic,1> VectorType;
+    typedef Matrix<Index, 1, MatrixType::ColsAtCompileTime> IntRowVectorType;
+    typedef Matrix<Index, MatrixType::RowsAtCompileTime, 1> IntColVectorType;
+    typedef Array<Index,64,1,DontAlign> ParameterType;
+    enum {
+      ScalarIsComplex = NumTraits<Scalar>::IsComplex
+    };
+
+    PardisoImpl()
+    {
+      eigen_assert((sizeof(Index) >= sizeof(_INTEGER_t) && sizeof(Index) <= 8) && "Non-supported index type");
+      m_iparm.setZero();
+      m_msglvl = 0; // No output
+      m_initialized = false;
+    }
+
+    ~PardisoImpl()
+    {
+      pardisoRelease();
+    }
+
+    inline Index cols() const { return m_size; }
+    inline Index rows() const { return m_size; }
+  
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_initialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+
+    /** \warning for advanced usage only.
+      * \returns a reference to the parameter array controlling PARDISO.
+      * See the PARDISO manual to know how to use it. */
+    ParameterType& pardisoParameterArray()
+    {
+      return m_iparm;
+    }
+    
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      * 
+      * \sa factorize()
+      */
+    Derived& analyzePattern(const MatrixType& matrix);
+    
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    Derived& factorize(const MatrixType& matrix);
+
+    Derived& compute(const MatrixType& matrix);
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<PardisoImpl, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_initialized && "Pardiso solver is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "PardisoImpl::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<PardisoImpl, Rhs>(*this, b.derived());
+    }
+
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<PardisoImpl, Rhs>
+    solve(const SparseMatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_initialized && "Pardiso solver is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "PardisoImpl::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::sparse_solve_retval<PardisoImpl, Rhs>(*this, b.derived());
+    }
+
+    Derived& derived()
+    {
+      return *static_cast<Derived*>(this);
+    }
+    const Derived& derived() const
+    {
+      return *static_cast<const Derived*>(this);
+    }
+
+    template<typename BDerived, typename XDerived>
+    bool _solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived>& x) const;
+
+  protected:
+    void pardisoRelease()
+    {
+      if(m_initialized) // Factorization ran at least once
+      {
+        internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, -1, m_size, 0, 0, 0, m_perm.data(), 0,
+                                                   m_iparm.data(), m_msglvl, 0, 0);
+      }
+    }
+
+    void pardisoInit(int type)
+    {
+      m_type = type;
+      bool symmetric = std::abs(m_type) < 10;
+      m_iparm[0] = 1;   // No solver default
+      m_iparm[1] = 2;   // use Metis for the ordering
+      m_iparm[2] = 0;   // Reserved. Set to zero. (??Numbers of processors, value of OMP_NUM_THREADS??)
+      m_iparm[3] = 0;   // No iterative-direct algorithm
+      m_iparm[4] = 0;   // No user fill-in reducing permutation
+      m_iparm[5] = 0;   // Write solution into x, b is left unchanged
+      m_iparm[6] = 0;   // Not in use
+      m_iparm[7] = 2;   // Max numbers of iterative refinement steps
+      m_iparm[8] = 0;   // Not in use
+      m_iparm[9] = 13;  // Perturb the pivot elements with 1E-13
+      m_iparm[10] = symmetric ? 0 : 1; // Use nonsymmetric permutation and scaling MPS
+      m_iparm[11] = 0;  // Not in use
+      m_iparm[12] = symmetric ? 0 : 1;  // Maximum weighted matching algorithm is switched-off (default for symmetric).
+                                        // Try m_iparm[12] = 1 in case of inappropriate accuracy
+      m_iparm[13] = 0;  // Output: Number of perturbed pivots
+      m_iparm[14] = 0;  // Not in use
+      m_iparm[15] = 0;  // Not in use
+      m_iparm[16] = 0;  // Not in use
+      m_iparm[17] = -1; // Output: Number of nonzeros in the factor LU
+      m_iparm[18] = -1; // Output: Mflops for LU factorization
+      m_iparm[19] = 0;  // Output: Numbers of CG Iterations
+      
+      m_iparm[20] = 0;  // 1x1 pivoting
+      m_iparm[26] = 0;  // No matrix checker
+      m_iparm[27] = (sizeof(RealScalar) == 4) ? 1 : 0;
+      m_iparm[34] = 1;  // C indexing
+      m_iparm[36] = 0;  // CSR
+      m_iparm[59] = 0;  // 0 - In-Core ; 1 - Automatic switch between In-Core and Out-of-Core modes ; 2 - Out-of-Core
+      
+      memset(m_pt, 0, sizeof(m_pt));
+    }
+
+  protected:
+    // cached data to reduce reallocation, etc.
+    
+    void manageErrorCode(Index error)
+    {
+      switch(error)
+      {
+        case 0:
+          m_info = Success;
+          break;
+        case -4:
+        case -7:
+          m_info = NumericalIssue;
+          break;
+        default:
+          m_info = InvalidInput;
+      }
+    }
+
+    mutable SparseMatrixType m_matrix;
+    ComputationInfo m_info;
+    bool m_initialized, m_analysisIsOk, m_factorizationIsOk;
+    Index m_type, m_msglvl;
+    mutable void *m_pt[64];
+    mutable ParameterType m_iparm;
+    mutable IntColVectorType m_perm;
+    Index m_size;
+    
+  private:
+    PardisoImpl(PardisoImpl &) {}
+};
+
+template<class Derived>
+Derived& PardisoImpl<Derived>::compute(const MatrixType& a)
+{
+  m_size = a.rows();
+  eigen_assert(a.rows() == a.cols());
+
+  pardisoRelease();
+  memset(m_pt, 0, sizeof(m_pt));
+  m_perm.setZero(m_size);
+  derived().getMatrix(a);
+  
+  Index error;
+  error = internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, 12, m_size,
+                                                     m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
+                                                     m_perm.data(), 0, m_iparm.data(), m_msglvl, NULL, NULL);
+
+  manageErrorCode(error);
+  m_analysisIsOk = true;
+  m_factorizationIsOk = true;
+  m_initialized = true;
+  return derived();
+}
+
+template<class Derived>
+Derived& PardisoImpl<Derived>::analyzePattern(const MatrixType& a)
+{
+  m_size = a.rows();
+  eigen_assert(m_size == a.cols());
+
+  pardisoRelease();
+  memset(m_pt, 0, sizeof(m_pt));
+  m_perm.setZero(m_size);
+  derived().getMatrix(a);
+  
+  Index error;
+  error = internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, 11, m_size,
+                                                     m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
+                                                     m_perm.data(), 0, m_iparm.data(), m_msglvl, NULL, NULL);
+  
+  manageErrorCode(error);
+  m_analysisIsOk = true;
+  m_factorizationIsOk = false;
+  m_initialized = true;
+  return derived();
+}
+
+template<class Derived>
+Derived& PardisoImpl<Derived>::factorize(const MatrixType& a)
+{
+  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+  eigen_assert(m_size == a.rows() && m_size == a.cols());
+  
+  derived().getMatrix(a);
+
+  Index error;  
+  error = internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, 22, m_size,
+                                                     m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
+                                                     m_perm.data(), 0, m_iparm.data(), m_msglvl, NULL, NULL);
+  
+  manageErrorCode(error);
+  m_factorizationIsOk = true;
+  return derived();
+}
+
+template<class Base>
+template<typename BDerived,typename XDerived>
+bool PardisoImpl<Base>::_solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived>& x) const
+{
+  if(m_iparm[0] == 0) // Factorization was not computed
+    return false;
+
+  //Index n = m_matrix.rows();
+  Index nrhs = Index(b.cols());
+  eigen_assert(m_size==b.rows());
+  eigen_assert(((MatrixBase<BDerived>::Flags & RowMajorBit) == 0 || nrhs == 1) && "Row-major right hand sides are not supported");
+  eigen_assert(((MatrixBase<XDerived>::Flags & RowMajorBit) == 0 || nrhs == 1) && "Row-major matrices of unknowns are not supported");
+  eigen_assert(((nrhs == 1) || b.outerStride() == b.rows()));
+
+
+//  switch (transposed) {
+//    case SvNoTrans    : m_iparm[11] = 0 ; break;
+//    case SvTranspose  : m_iparm[11] = 2 ; break;
+//    case SvAdjoint    : m_iparm[11] = 1 ; break;
+//    default:
+//      //std::cerr << "Eigen: transposition  option \"" << transposed << "\" not supported by the PARDISO backend\n";
+//      m_iparm[11] = 0;
+//  }
+
+  Scalar* rhs_ptr = const_cast<Scalar*>(b.derived().data());
+  Matrix<Scalar,Dynamic,Dynamic,ColMajor> tmp;
+  
+  // Pardiso cannot solve in-place
+  if(rhs_ptr == x.derived().data())
+  {
+    tmp = b;
+    rhs_ptr = tmp.data();
+  }
+  
+  Index error;
+  error = internal::pardiso_run_selector<Index>::run(m_pt, 1, 1, m_type, 33, m_size,
+                                                     m_matrix.valuePtr(), m_matrix.outerIndexPtr(), m_matrix.innerIndexPtr(),
+                                                     m_perm.data(), nrhs, m_iparm.data(), m_msglvl,
+                                                     rhs_ptr, x.derived().data());
+  return error==0;
+}
+
+
+/** \ingroup PardisoSupport_Module
+  * \class PardisoLU
+  * \brief A sparse direct LU factorization and solver based on the PARDISO library
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a direct LU factorization
+  * using the Intel MKL PARDISO library. The sparse matrix A must be squared and invertible.
+  * The vectors or matrices X and B can be either dense or sparse.
+  *
+  * By default, it runs in in-core mode. To enable PARDISO's out-of-core feature, set:
+  * \code solver.pardisoParameterArray()[59] = 1; \endcode
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename MatrixType>
+class PardisoLU : public PardisoImpl< PardisoLU<MatrixType> >
+{
+  protected:
+    typedef PardisoImpl< PardisoLU<MatrixType> > Base;
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::RealScalar RealScalar;
+    using Base::pardisoInit;
+    using Base::m_matrix;
+    friend class PardisoImpl< PardisoLU<MatrixType> >;
+
+  public:
+
+    using Base::compute;
+    using Base::solve;
+
+    PardisoLU()
+      : Base()
+    {
+      pardisoInit(Base::ScalarIsComplex ? 13 : 11);
+    }
+
+    PardisoLU(const MatrixType& matrix)
+      : Base()
+    {
+      pardisoInit(Base::ScalarIsComplex ? 13 : 11);
+      compute(matrix);
+    }
+  protected:
+    void getMatrix(const MatrixType& matrix)
+    {
+      m_matrix = matrix;
+    }
+    
+  private:
+    PardisoLU(PardisoLU& ) {}
+};
+
+/** \ingroup PardisoSupport_Module
+  * \class PardisoLLT
+  * \brief A sparse direct Cholesky (LLT) factorization and solver based on the PARDISO library
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a LL^T Cholesky factorization
+  * using the Intel MKL PARDISO library. The sparse matrix A must be selfajoint and positive definite.
+  * The vectors or matrices X and B can be either dense or sparse.
+  *
+  * By default, it runs in in-core mode. To enable PARDISO's out-of-core feature, set:
+  * \code solver.pardisoParameterArray()[59] = 1; \endcode
+  *
+  * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam UpLo can be any bitwise combination of Upper, Lower. The default is Upper, meaning only the upper triangular part has to be used.
+  *         Upper|Lower can be used to tell both triangular parts can be used as input.
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename MatrixType, int _UpLo>
+class PardisoLLT : public PardisoImpl< PardisoLLT<MatrixType,_UpLo> >
+{
+  protected:
+    typedef PardisoImpl< PardisoLLT<MatrixType,_UpLo> > Base;
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::Index Index;
+    typedef typename Base::RealScalar RealScalar;
+    using Base::pardisoInit;
+    using Base::m_matrix;
+    friend class PardisoImpl< PardisoLLT<MatrixType,_UpLo> >;
+
+  public:
+
+    enum { UpLo = _UpLo };
+    using Base::compute;
+    using Base::solve;
+
+    PardisoLLT()
+      : Base()
+    {
+      pardisoInit(Base::ScalarIsComplex ? 4 : 2);
+    }
+
+    PardisoLLT(const MatrixType& matrix)
+      : Base()
+    {
+      pardisoInit(Base::ScalarIsComplex ? 4 : 2);
+      compute(matrix);
+    }
+    
+  protected:
+    
+    void getMatrix(const MatrixType& matrix)
+    {
+      // PARDISO supports only upper, row-major matrices
+      PermutationMatrix<Dynamic,Dynamic,Index> p_null;
+      m_matrix.resize(matrix.rows(), matrix.cols());
+      m_matrix.template selfadjointView<Upper>() = matrix.template selfadjointView<UpLo>().twistedBy(p_null);
+    }
+    
+  private:
+    PardisoLLT(PardisoLLT& ) {}
+};
+
+/** \ingroup PardisoSupport_Module
+  * \class PardisoLDLT
+  * \brief A sparse direct Cholesky (LDLT) factorization and solver based on the PARDISO library
+  *
+  * This class allows to solve for A.X = B sparse linear problems via a LDL^T Cholesky factorization
+  * using the Intel MKL PARDISO library. The sparse matrix A is assumed to be selfajoint and positive definite.
+  * For complex matrices, A can also be symmetric only, see the \a Options template parameter.
+  * The vectors or matrices X and B can be either dense or sparse.
+  *
+  * By default, it runs in in-core mode. To enable PARDISO's out-of-core feature, set:
+  * \code solver.pardisoParameterArray()[59] = 1; \endcode
+  *
+  * \tparam MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam Options can be any bitwise combination of Upper, Lower, and Symmetric. The default is Upper, meaning only the upper triangular part has to be used.
+  *         Symmetric can be used for symmetric, non-selfadjoint complex matrices, the default being to assume a selfadjoint matrix.
+  *         Upper|Lower can be used to tell both triangular parts can be used as input.
+  *
+  * \sa \ref TutorialSparseDirectSolvers
+  */
+template<typename MatrixType, int Options>
+class PardisoLDLT : public PardisoImpl< PardisoLDLT<MatrixType,Options> >
+{
+  protected:
+    typedef PardisoImpl< PardisoLDLT<MatrixType,Options> > Base;
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::Index Index;
+    typedef typename Base::RealScalar RealScalar;
+    using Base::pardisoInit;
+    using Base::m_matrix;
+    friend class PardisoImpl< PardisoLDLT<MatrixType,Options> >;
+
+  public:
+
+    using Base::compute;
+    using Base::solve;
+    enum { UpLo = Options&(Upper|Lower) };
+
+    PardisoLDLT()
+      : Base()
+    {
+      pardisoInit(Base::ScalarIsComplex ? ( bool(Options&Symmetric) ? 6 : -4 ) : -2);
+    }
+
+    PardisoLDLT(const MatrixType& matrix)
+      : Base()
+    {
+      pardisoInit(Base::ScalarIsComplex ? ( bool(Options&Symmetric) ? 6 : -4 ) : -2);
+      compute(matrix);
+    }
+    
+    void getMatrix(const MatrixType& matrix)
+    {
+      // PARDISO supports only upper, row-major matrices
+      PermutationMatrix<Dynamic,Dynamic,Index> p_null;
+      m_matrix.resize(matrix.rows(), matrix.cols());
+      m_matrix.template selfadjointView<Upper>() = matrix.template selfadjointView<UpLo>().twistedBy(p_null);
+    }
+    
+  private:
+    PardisoLDLT(PardisoLDLT& ) {}
+};
+
+namespace internal {
+  
+template<typename _Derived, typename Rhs>
+struct solve_retval<PardisoImpl<_Derived>, Rhs>
+  : solve_retval_base<PardisoImpl<_Derived>, Rhs>
+{
+  typedef PardisoImpl<_Derived> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+template<typename Derived, typename Rhs>
+struct sparse_solve_retval<PardisoImpl<Derived>, Rhs>
+  : sparse_solve_retval_base<PardisoImpl<Derived>, Rhs>
+{
+  typedef PardisoImpl<Derived> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_PARDISOSUPPORT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCholesky/SimplicialCholesky.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCholesky/SimplicialCholesky.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCholesky/SimplicialCholesky.h	(revision 2476)
@@ -0,0 +1,671 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SIMPLICIAL_CHOLESKY_H
+#define EIGEN_SIMPLICIAL_CHOLESKY_H
+
+namespace Eigen { 
+
+enum SimplicialCholeskyMode {
+  SimplicialCholeskyLLT,
+  SimplicialCholeskyLDLT
+};
+
+/** \ingroup SparseCholesky_Module
+  * \brief A direct sparse Cholesky factorizations
+  *
+  * These classes provide LL^T and LDL^T Cholesky factorizations of sparse matrices that are
+  * selfadjoint and positive definite. The factorization allows for solving A.X = B where
+  * X and B can be either dense or sparse.
+  * 
+  * In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization
+  * such that the factorized matrix is P A P^-1.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  *
+  */
+template<typename Derived>
+class SimplicialCholeskyBase : internal::noncopyable
+{
+  public:
+    typedef typename internal::traits<Derived>::MatrixType MatrixType;
+    typedef typename internal::traits<Derived>::OrderingType OrderingType;
+    enum { UpLo = internal::traits<Derived>::UpLo };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
+    typedef Matrix<Scalar,Dynamic,1> VectorType;
+
+  public:
+
+    /** Default constructor */
+    SimplicialCholeskyBase()
+      : m_info(Success), m_isInitialized(false), m_shiftOffset(0), m_shiftScale(1)
+    {}
+
+    SimplicialCholeskyBase(const MatrixType& matrix)
+      : m_info(Success), m_isInitialized(false), m_shiftOffset(0), m_shiftScale(1)
+    {
+      derived().compute(matrix);
+    }
+
+    ~SimplicialCholeskyBase()
+    {
+    }
+
+    Derived& derived() { return *static_cast<Derived*>(this); }
+    const Derived& derived() const { return *static_cast<const Derived*>(this); }
+    
+    inline Index cols() const { return m_matrix.cols(); }
+    inline Index rows() const { return m_matrix.rows(); }
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix.appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<SimplicialCholeskyBase, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "Simplicial LLT or LDLT is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "SimplicialCholeskyBase::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<SimplicialCholeskyBase, Rhs>(*this, b.derived());
+    }
+    
+    /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<SimplicialCholeskyBase, Rhs>
+    solve(const SparseMatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "Simplicial LLT or LDLT is not initialized.");
+      eigen_assert(rows()==b.rows()
+                && "SimplicialCholesky::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::sparse_solve_retval<SimplicialCholeskyBase, Rhs>(*this, b.derived());
+    }
+    
+    /** \returns the permutation P
+      * \sa permutationPinv() */
+    const PermutationMatrix<Dynamic,Dynamic,Index>& permutationP() const
+    { return m_P; }
+    
+    /** \returns the inverse P^-1 of the permutation P
+      * \sa permutationP() */
+    const PermutationMatrix<Dynamic,Dynamic,Index>& permutationPinv() const
+    { return m_Pinv; }
+
+    /** Sets the shift parameters that will be used to adjust the diagonal coefficients during the numerical factorization.
+      *
+      * During the numerical factorization, the diagonal coefficients are transformed by the following linear model:\n
+      * \c d_ii = \a offset + \a scale * \c d_ii
+      *
+      * The default is the identity transformation with \a offset=0, and \a scale=1.
+      *
+      * \returns a reference to \c *this.
+      */
+    Derived& setShift(const RealScalar& offset, const RealScalar& scale = 1)
+    {
+      m_shiftOffset = offset;
+      m_shiftScale = scale;
+      return derived();
+    }
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** \internal */
+    template<typename Stream>
+    void dumpMemory(Stream& s)
+    {
+      int total = 0;
+      s << "  L:        " << ((total+=(m_matrix.cols()+1) * sizeof(int) + m_matrix.nonZeros()*(sizeof(int)+sizeof(Scalar))) >> 20) << "Mb" << "\n";
+      s << "  diag:     " << ((total+=m_diag.size() * sizeof(Scalar)) >> 20) << "Mb" << "\n";
+      s << "  tree:     " << ((total+=m_parent.size() * sizeof(int)) >> 20) << "Mb" << "\n";
+      s << "  nonzeros: " << ((total+=m_nonZerosPerCol.size() * sizeof(int)) >> 20) << "Mb" << "\n";
+      s << "  perm:     " << ((total+=m_P.size() * sizeof(int)) >> 20) << "Mb" << "\n";
+      s << "  perm^-1:  " << ((total+=m_Pinv.size() * sizeof(int)) >> 20) << "Mb" << "\n";
+      s << "  TOTAL:    " << (total>> 20) << "Mb" << "\n";
+    }
+
+    /** \internal */
+    template<typename Rhs,typename Dest>
+    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
+    {
+      eigen_assert(m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
+      eigen_assert(m_matrix.rows()==b.rows());
+
+      if(m_info!=Success)
+        return;
+
+      if(m_P.size()>0)
+        dest = m_P * b;
+      else
+        dest = b;
+
+      if(m_matrix.nonZeros()>0) // otherwise L==I
+        derived().matrixL().solveInPlace(dest);
+
+      if(m_diag.size()>0)
+        dest = m_diag.asDiagonal().inverse() * dest;
+
+      if (m_matrix.nonZeros()>0) // otherwise U==I
+        derived().matrixU().solveInPlace(dest);
+
+      if(m_P.size()>0)
+        dest = m_Pinv * dest;
+    }
+
+#endif // EIGEN_PARSED_BY_DOXYGEN
+
+  protected:
+    
+    /** Computes the sparse Cholesky decomposition of \a matrix */
+    template<bool DoLDLT>
+    void compute(const MatrixType& matrix)
+    {
+      eigen_assert(matrix.rows()==matrix.cols());
+      Index size = matrix.cols();
+      CholMatrixType ap(size,size);
+      ordering(matrix, ap);
+      analyzePattern_preordered(ap, DoLDLT);
+      factorize_preordered<DoLDLT>(ap);
+    }
+    
+    template<bool DoLDLT>
+    void factorize(const MatrixType& a)
+    {
+      eigen_assert(a.rows()==a.cols());
+      int size = a.cols();
+      CholMatrixType ap(size,size);
+      ap.template selfadjointView<Upper>() = a.template selfadjointView<UpLo>().twistedBy(m_P);
+      factorize_preordered<DoLDLT>(ap);
+    }
+
+    template<bool DoLDLT>
+    void factorize_preordered(const CholMatrixType& a);
+
+    void analyzePattern(const MatrixType& a, bool doLDLT)
+    {
+      eigen_assert(a.rows()==a.cols());
+      int size = a.cols();
+      CholMatrixType ap(size,size);
+      ordering(a, ap);
+      analyzePattern_preordered(ap,doLDLT);
+    }
+    void analyzePattern_preordered(const CholMatrixType& a, bool doLDLT);
+    
+    void ordering(const MatrixType& a, CholMatrixType& ap);
+
+    /** keeps off-diagonal entries; drops diagonal entries */
+    struct keep_diag {
+      inline bool operator() (const Index& row, const Index& col, const Scalar&) const
+      {
+        return row!=col;
+      }
+    };
+
+    mutable ComputationInfo m_info;
+    bool m_isInitialized;
+    bool m_factorizationIsOk;
+    bool m_analysisIsOk;
+    
+    CholMatrixType m_matrix;
+    VectorType m_diag;                                // the diagonal coefficients (LDLT mode)
+    VectorXi m_parent;                                // elimination tree
+    VectorXi m_nonZerosPerCol;
+    PermutationMatrix<Dynamic,Dynamic,Index> m_P;     // the permutation
+    PermutationMatrix<Dynamic,Dynamic,Index> m_Pinv;  // the inverse permutation
+
+    RealScalar m_shiftOffset;
+    RealScalar m_shiftScale;
+};
+
+template<typename _MatrixType, int _UpLo = Lower, typename _Ordering = AMDOrdering<typename _MatrixType::Index> > class SimplicialLLT;
+template<typename _MatrixType, int _UpLo = Lower, typename _Ordering = AMDOrdering<typename _MatrixType::Index> > class SimplicialLDLT;
+template<typename _MatrixType, int _UpLo = Lower, typename _Ordering = AMDOrdering<typename _MatrixType::Index> > class SimplicialCholesky;
+
+namespace internal {
+
+template<typename _MatrixType, int _UpLo, typename _Ordering> struct traits<SimplicialLLT<_MatrixType,_UpLo,_Ordering> >
+{
+  typedef _MatrixType MatrixType;
+  typedef _Ordering OrderingType;
+  enum { UpLo = _UpLo };
+  typedef typename MatrixType::Scalar                         Scalar;
+  typedef typename MatrixType::Index                          Index;
+  typedef SparseMatrix<Scalar, ColMajor, Index>               CholMatrixType;
+  typedef SparseTriangularView<CholMatrixType, Eigen::Lower>  MatrixL;
+  typedef SparseTriangularView<typename CholMatrixType::AdjointReturnType, Eigen::Upper>   MatrixU;
+  static inline MatrixL getL(const MatrixType& m) { return m; }
+  static inline MatrixU getU(const MatrixType& m) { return m.adjoint(); }
+};
+
+template<typename _MatrixType,int _UpLo, typename _Ordering> struct traits<SimplicialLDLT<_MatrixType,_UpLo,_Ordering> >
+{
+  typedef _MatrixType MatrixType;
+  typedef _Ordering OrderingType;
+  enum { UpLo = _UpLo };
+  typedef typename MatrixType::Scalar                             Scalar;
+  typedef typename MatrixType::Index                              Index;
+  typedef SparseMatrix<Scalar, ColMajor, Index>                   CholMatrixType;
+  typedef SparseTriangularView<CholMatrixType, Eigen::UnitLower>  MatrixL;
+  typedef SparseTriangularView<typename CholMatrixType::AdjointReturnType, Eigen::UnitUpper> MatrixU;
+  static inline MatrixL getL(const MatrixType& m) { return m; }
+  static inline MatrixU getU(const MatrixType& m) { return m.adjoint(); }
+};
+
+template<typename _MatrixType, int _UpLo, typename _Ordering> struct traits<SimplicialCholesky<_MatrixType,_UpLo,_Ordering> >
+{
+  typedef _MatrixType MatrixType;
+  typedef _Ordering OrderingType;
+  enum { UpLo = _UpLo };
+};
+
+}
+
+/** \ingroup SparseCholesky_Module
+  * \class SimplicialLLT
+  * \brief A direct sparse LLT Cholesky factorizations
+  *
+  * This class provides a LL^T Cholesky factorizations of sparse matrices that are
+  * selfadjoint and positive definite. The factorization allows for solving A.X = B where
+  * X and B can be either dense or sparse.
+  * 
+  * In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization
+  * such that the factorized matrix is P A P^-1.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  * \tparam _Ordering The ordering method to use, either AMDOrdering<> or NaturalOrdering<>. Default is AMDOrdering<>
+  *
+  * \sa class SimplicialLDLT, class AMDOrdering, class NaturalOrdering
+  */
+template<typename _MatrixType, int _UpLo, typename _Ordering>
+    class SimplicialLLT : public SimplicialCholeskyBase<SimplicialLLT<_MatrixType,_UpLo,_Ordering> >
+{
+public:
+    typedef _MatrixType MatrixType;
+    enum { UpLo = _UpLo };
+    typedef SimplicialCholeskyBase<SimplicialLLT> Base;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
+    typedef Matrix<Scalar,Dynamic,1> VectorType;
+    typedef internal::traits<SimplicialLLT> Traits;
+    typedef typename Traits::MatrixL  MatrixL;
+    typedef typename Traits::MatrixU  MatrixU;
+public:
+    /** Default constructor */
+    SimplicialLLT() : Base() {}
+    /** Constructs and performs the LLT factorization of \a matrix */
+    SimplicialLLT(const MatrixType& matrix)
+        : Base(matrix) {}
+
+    /** \returns an expression of the factor L */
+    inline const MatrixL matrixL() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial LLT not factorized");
+        return Traits::getL(Base::m_matrix);
+    }
+
+    /** \returns an expression of the factor U (= L^*) */
+    inline const MatrixU matrixU() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial LLT not factorized");
+        return Traits::getU(Base::m_matrix);
+    }
+    
+    /** Computes the sparse Cholesky decomposition of \a matrix */
+    SimplicialLLT& compute(const MatrixType& matrix)
+    {
+      Base::template compute<false>(matrix);
+      return *this;
+    }
+
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      *
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& a)
+    {
+      Base::analyzePattern(a, false);
+    }
+
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    void factorize(const MatrixType& a)
+    {
+      Base::template factorize<false>(a);
+    }
+
+    /** \returns the determinant of the underlying matrix from the current factorization */
+    Scalar determinant() const
+    {
+      Scalar detL = Base::m_matrix.diagonal().prod();
+      return numext::abs2(detL);
+    }
+};
+
+/** \ingroup SparseCholesky_Module
+  * \class SimplicialLDLT
+  * \brief A direct sparse LDLT Cholesky factorizations without square root.
+  *
+  * This class provides a LDL^T Cholesky factorizations without square root of sparse matrices that are
+  * selfadjoint and positive definite. The factorization allows for solving A.X = B where
+  * X and B can be either dense or sparse.
+  * 
+  * In order to reduce the fill-in, a symmetric permutation P is applied prior to the factorization
+  * such that the factorized matrix is P A P^-1.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, it must be a SparseMatrix<>
+  * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+  *               or Upper. Default is Lower.
+  * \tparam _Ordering The ordering method to use, either AMDOrdering<> or NaturalOrdering<>. Default is AMDOrdering<>
+  *
+  * \sa class SimplicialLLT, class AMDOrdering, class NaturalOrdering
+  */
+template<typename _MatrixType, int _UpLo, typename _Ordering>
+    class SimplicialLDLT : public SimplicialCholeskyBase<SimplicialLDLT<_MatrixType,_UpLo,_Ordering> >
+{
+public:
+    typedef _MatrixType MatrixType;
+    enum { UpLo = _UpLo };
+    typedef SimplicialCholeskyBase<SimplicialLDLT> Base;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
+    typedef Matrix<Scalar,Dynamic,1> VectorType;
+    typedef internal::traits<SimplicialLDLT> Traits;
+    typedef typename Traits::MatrixL  MatrixL;
+    typedef typename Traits::MatrixU  MatrixU;
+public:
+    /** Default constructor */
+    SimplicialLDLT() : Base() {}
+
+    /** Constructs and performs the LLT factorization of \a matrix */
+    SimplicialLDLT(const MatrixType& matrix)
+        : Base(matrix) {}
+
+    /** \returns a vector expression of the diagonal D */
+    inline const VectorType vectorD() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial LDLT not factorized");
+        return Base::m_diag;
+    }
+    /** \returns an expression of the factor L */
+    inline const MatrixL matrixL() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial LDLT not factorized");
+        return Traits::getL(Base::m_matrix);
+    }
+
+    /** \returns an expression of the factor U (= L^*) */
+    inline const MatrixU matrixU() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial LDLT not factorized");
+        return Traits::getU(Base::m_matrix);
+    }
+
+    /** Computes the sparse Cholesky decomposition of \a matrix */
+    SimplicialLDLT& compute(const MatrixType& matrix)
+    {
+      Base::template compute<true>(matrix);
+      return *this;
+    }
+    
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      *
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& a)
+    {
+      Base::analyzePattern(a, true);
+    }
+
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    void factorize(const MatrixType& a)
+    {
+      Base::template factorize<true>(a);
+    }
+
+    /** \returns the determinant of the underlying matrix from the current factorization */
+    Scalar determinant() const
+    {
+      return Base::m_diag.prod();
+    }
+};
+
+/** \deprecated use SimplicialLDLT or class SimplicialLLT
+  * \ingroup SparseCholesky_Module
+  * \class SimplicialCholesky
+  *
+  * \sa class SimplicialLDLT, class SimplicialLLT
+  */
+template<typename _MatrixType, int _UpLo, typename _Ordering>
+    class SimplicialCholesky : public SimplicialCholeskyBase<SimplicialCholesky<_MatrixType,_UpLo,_Ordering> >
+{
+public:
+    typedef _MatrixType MatrixType;
+    enum { UpLo = _UpLo };
+    typedef SimplicialCholeskyBase<SimplicialCholesky> Base;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef SparseMatrix<Scalar,ColMajor,Index> CholMatrixType;
+    typedef Matrix<Scalar,Dynamic,1> VectorType;
+    typedef internal::traits<SimplicialCholesky> Traits;
+    typedef internal::traits<SimplicialLDLT<MatrixType,UpLo> > LDLTTraits;
+    typedef internal::traits<SimplicialLLT<MatrixType,UpLo>  > LLTTraits;
+  public:
+    SimplicialCholesky() : Base(), m_LDLT(true) {}
+
+    SimplicialCholesky(const MatrixType& matrix)
+      : Base(), m_LDLT(true)
+    {
+      compute(matrix);
+    }
+
+    SimplicialCholesky& setMode(SimplicialCholeskyMode mode)
+    {
+      switch(mode)
+      {
+      case SimplicialCholeskyLLT:
+        m_LDLT = false;
+        break;
+      case SimplicialCholeskyLDLT:
+        m_LDLT = true;
+        break;
+      default:
+        break;
+      }
+
+      return *this;
+    }
+
+    inline const VectorType vectorD() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial Cholesky not factorized");
+        return Base::m_diag;
+    }
+    inline const CholMatrixType rawMatrix() const {
+        eigen_assert(Base::m_factorizationIsOk && "Simplicial Cholesky not factorized");
+        return Base::m_matrix;
+    }
+    
+    /** Computes the sparse Cholesky decomposition of \a matrix */
+    SimplicialCholesky& compute(const MatrixType& matrix)
+    {
+      if(m_LDLT)
+        Base::template compute<true>(matrix);
+      else
+        Base::template compute<false>(matrix);
+      return *this;
+    }
+
+    /** Performs a symbolic decomposition on the sparcity of \a matrix.
+      *
+      * This function is particularly useful when solving for several problems having the same structure.
+      *
+      * \sa factorize()
+      */
+    void analyzePattern(const MatrixType& a)
+    {
+      Base::analyzePattern(a, m_LDLT);
+    }
+
+    /** Performs a numeric decomposition of \a matrix
+      *
+      * The given matrix must has the same sparcity than the matrix on which the symbolic decomposition has been performed.
+      *
+      * \sa analyzePattern()
+      */
+    void factorize(const MatrixType& a)
+    {
+      if(m_LDLT)
+        Base::template factorize<true>(a);
+      else
+        Base::template factorize<false>(a);
+    }
+
+    /** \internal */
+    template<typename Rhs,typename Dest>
+    void _solve(const MatrixBase<Rhs> &b, MatrixBase<Dest> &dest) const
+    {
+      eigen_assert(Base::m_factorizationIsOk && "The decomposition is not in a valid state for solving, you must first call either compute() or symbolic()/numeric()");
+      eigen_assert(Base::m_matrix.rows()==b.rows());
+
+      if(Base::m_info!=Success)
+        return;
+
+      if(Base::m_P.size()>0)
+        dest = Base::m_P * b;
+      else
+        dest = b;
+
+      if(Base::m_matrix.nonZeros()>0) // otherwise L==I
+      {
+        if(m_LDLT)
+          LDLTTraits::getL(Base::m_matrix).solveInPlace(dest);
+        else
+          LLTTraits::getL(Base::m_matrix).solveInPlace(dest);
+      }
+
+      if(Base::m_diag.size()>0)
+        dest = Base::m_diag.asDiagonal().inverse() * dest;
+
+      if (Base::m_matrix.nonZeros()>0) // otherwise I==I
+      {
+        if(m_LDLT)
+          LDLTTraits::getU(Base::m_matrix).solveInPlace(dest);
+        else
+          LLTTraits::getU(Base::m_matrix).solveInPlace(dest);
+      }
+
+      if(Base::m_P.size()>0)
+        dest = Base::m_Pinv * dest;
+    }
+    
+    Scalar determinant() const
+    {
+      if(m_LDLT)
+      {
+        return Base::m_diag.prod();
+      }
+      else
+      {
+        Scalar detL = Diagonal<const CholMatrixType>(Base::m_matrix).prod();
+        return numext::abs2(detL);
+      }
+    }
+    
+  protected:
+    bool m_LDLT;
+};
+
+template<typename Derived>
+void SimplicialCholeskyBase<Derived>::ordering(const MatrixType& a, CholMatrixType& ap)
+{
+  eigen_assert(a.rows()==a.cols());
+  const Index size = a.rows();
+  // Note that amd compute the inverse permutation
+  {
+    CholMatrixType C;
+    C = a.template selfadjointView<UpLo>();
+    
+    OrderingType ordering;
+    ordering(C,m_Pinv);
+  }
+
+  if(m_Pinv.size()>0)
+    m_P = m_Pinv.inverse();
+  else
+    m_P.resize(0);
+
+  ap.resize(size,size);
+  ap.template selfadjointView<Upper>() = a.template selfadjointView<UpLo>().twistedBy(m_P);
+}
+
+namespace internal {
+  
+template<typename Derived, typename Rhs>
+struct solve_retval<SimplicialCholeskyBase<Derived>, Rhs>
+  : solve_retval_base<SimplicialCholeskyBase<Derived>, Rhs>
+{
+  typedef SimplicialCholeskyBase<Derived> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec().derived()._solve(rhs(),dst);
+  }
+};
+
+template<typename Derived, typename Rhs>
+struct sparse_solve_retval<SimplicialCholeskyBase<Derived>, Rhs>
+  : sparse_solve_retval_base<SimplicialCholeskyBase<Derived>, Rhs>
+{
+  typedef SimplicialCholeskyBase<Derived> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SIMPLICIAL_CHOLESKY_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h	(revision 2476)
@@ -0,0 +1,199 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+
+/*
+
+NOTE: thes functions vave been adapted from the LDL library:
+
+LDL Copyright (c) 2005 by Timothy A. Davis.  All Rights Reserved.
+
+LDL License:
+
+    Your use or distribution of LDL or any modified version of
+    LDL implies that you agree to this License.
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
+    USA
+
+    Permission is hereby granted to use or copy this program under the
+    terms of the GNU LGPL, provided that the Copyright, this License,
+    and the Availability of the original version is retained on all copies.
+    User documentation of any code that uses this code or any modified
+    version of this code must cite the Copyright, this License, the
+    Availability note, and "Used by permission." Permission to modify
+    the code and to distribute modified code is granted, provided the
+    Copyright, this License, and the Availability note are retained,
+    and a notice that the code was modified is included.
+ */
+
+#include "../Core/util/NonMPL2.h"
+
+#ifndef EIGEN_SIMPLICIAL_CHOLESKY_IMPL_H
+#define EIGEN_SIMPLICIAL_CHOLESKY_IMPL_H
+
+namespace Eigen {
+
+template<typename Derived>
+void SimplicialCholeskyBase<Derived>::analyzePattern_preordered(const CholMatrixType& ap, bool doLDLT)
+{
+  const Index size = ap.rows();
+  m_matrix.resize(size, size);
+  m_parent.resize(size);
+  m_nonZerosPerCol.resize(size);
+
+  ei_declare_aligned_stack_constructed_variable(Index, tags, size, 0);
+
+  for(Index k = 0; k < size; ++k)
+  {
+    /* L(k,:) pattern: all nodes reachable in etree from nz in A(0:k-1,k) */
+    m_parent[k] = -1;             /* parent of k is not yet known */
+    tags[k] = k;                  /* mark node k as visited */
+    m_nonZerosPerCol[k] = 0;      /* count of nonzeros in column k of L */
+    for(typename CholMatrixType::InnerIterator it(ap,k); it; ++it)
+    {
+      Index i = it.index();
+      if(i < k)
+      {
+        /* follow path from i to root of etree, stop at flagged node */
+        for(; tags[i] != k; i = m_parent[i])
+        {
+          /* find parent of i if not yet determined */
+          if (m_parent[i] == -1)
+            m_parent[i] = k;
+          m_nonZerosPerCol[i]++;        /* L (k,i) is nonzero */
+          tags[i] = k;                  /* mark i as visited */
+        }
+      }
+    }
+  }
+
+  /* construct Lp index array from m_nonZerosPerCol column counts */
+  Index* Lp = m_matrix.outerIndexPtr();
+  Lp[0] = 0;
+  for(Index k = 0; k < size; ++k)
+    Lp[k+1] = Lp[k] + m_nonZerosPerCol[k] + (doLDLT ? 0 : 1);
+
+  m_matrix.resizeNonZeros(Lp[size]);
+
+  m_isInitialized     = true;
+  m_info              = Success;
+  m_analysisIsOk      = true;
+  m_factorizationIsOk = false;
+}
+
+
+template<typename Derived>
+template<bool DoLDLT>
+void SimplicialCholeskyBase<Derived>::factorize_preordered(const CholMatrixType& ap)
+{
+  using std::sqrt;
+
+  eigen_assert(m_analysisIsOk && "You must first call analyzePattern()");
+  eigen_assert(ap.rows()==ap.cols());
+  const Index size = ap.rows();
+  eigen_assert(m_parent.size()==size);
+  eigen_assert(m_nonZerosPerCol.size()==size);
+
+  const Index* Lp = m_matrix.outerIndexPtr();
+  Index* Li = m_matrix.innerIndexPtr();
+  Scalar* Lx = m_matrix.valuePtr();
+
+  ei_declare_aligned_stack_constructed_variable(Scalar, y, size, 0);
+  ei_declare_aligned_stack_constructed_variable(Index,  pattern, size, 0);
+  ei_declare_aligned_stack_constructed_variable(Index,  tags, size, 0);
+
+  bool ok = true;
+  m_diag.resize(DoLDLT ? size : 0);
+
+  for(Index k = 0; k < size; ++k)
+  {
+    // compute nonzero pattern of kth row of L, in topological order
+    y[k] = 0.0;                     // Y(0:k) is now all zero
+    Index top = size;               // stack for pattern is empty
+    tags[k] = k;                    // mark node k as visited
+    m_nonZerosPerCol[k] = 0;        // count of nonzeros in column k of L
+    for(typename MatrixType::InnerIterator it(ap,k); it; ++it)
+    {
+      Index i = it.index();
+      if(i <= k)
+      {
+        y[i] += numext::conj(it.value());            /* scatter A(i,k) into Y (sum duplicates) */
+        Index len;
+        for(len = 0; tags[i] != k; i = m_parent[i])
+        {
+          pattern[len++] = i;     /* L(k,i) is nonzero */
+          tags[i] = k;            /* mark i as visited */
+        }
+        while(len > 0)
+          pattern[--top] = pattern[--len];
+      }
+    }
+
+    /* compute numerical values kth row of L (a sparse triangular solve) */
+
+    RealScalar d = numext::real(y[k]) * m_shiftScale + m_shiftOffset;    // get D(k,k), apply the shift function, and clear Y(k)
+    y[k] = 0.0;
+    for(; top < size; ++top)
+    {
+      Index i = pattern[top];       /* pattern[top:n-1] is pattern of L(:,k) */
+      Scalar yi = y[i];             /* get and clear Y(i) */
+      y[i] = 0.0;
+
+      /* the nonzero entry L(k,i) */
+      Scalar l_ki;
+      if(DoLDLT)
+        l_ki = yi / m_diag[i];
+      else
+        yi = l_ki = yi / Lx[Lp[i]];
+
+      Index p2 = Lp[i] + m_nonZerosPerCol[i];
+      Index p;
+      for(p = Lp[i] + (DoLDLT ? 0 : 1); p < p2; ++p)
+        y[Li[p]] -= numext::conj(Lx[p]) * yi;
+      d -= numext::real(l_ki * numext::conj(yi));
+      Li[p] = k;                          /* store L(k,i) in column form of L */
+      Lx[p] = l_ki;
+      ++m_nonZerosPerCol[i];              /* increment count of nonzeros in col i */
+    }
+    if(DoLDLT)
+    {
+      m_diag[k] = d;
+      if(d == RealScalar(0))
+      {
+        ok = false;                         /* failure, D(k,k) is zero */
+        break;
+      }
+    }
+    else
+    {
+      Index p = Lp[k] + m_nonZerosPerCol[k]++;
+      Li[p] = k ;                /* store L(k,k) = sqrt (d) in column k */
+      if(d <= RealScalar(0)) {
+        ok = false;              /* failure, matrix is not positive definite */
+        break;
+      }
+      Lx[p] = sqrt(d) ;
+    }
+  }
+
+  m_info = ok ? Success : NumericalIssue;
+  m_factorizationIsOk = true;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SIMPLICIAL_CHOLESKY_IMPL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/StlSupport/StdVector.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/StlSupport/StdVector.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/StlSupport/StdVector.h	(revision 2476)
@@ -0,0 +1,126 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDVECTOR_H
+#define EIGEN_STDVECTOR_H
+
+#include "details.h"
+
+/**
+ * This section contains a convenience MACRO which allows an easy specialization of
+ * std::vector such that for data types with alignment issues the correct allocator
+ * is used automatically.
+ */
+#define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(...) \
+namespace std \
+{ \
+  template<> \
+  class vector<__VA_ARGS__, std::allocator<__VA_ARGS__> >  \
+    : public vector<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \
+  { \
+    typedef vector<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > vector_base; \
+  public: \
+    typedef __VA_ARGS__ value_type; \
+    typedef vector_base::allocator_type allocator_type; \
+    typedef vector_base::size_type size_type;  \
+    typedef vector_base::iterator iterator;  \
+    explicit vector(const allocator_type& a = allocator_type()) : vector_base(a) {}  \
+    template<typename InputIterator> \
+    vector(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : vector_base(first, last, a) {} \
+    vector(const vector& c) : vector_base(c) {}  \
+    explicit vector(size_type num, const value_type& val = value_type()) : vector_base(num, val) {} \
+    vector(iterator start, iterator end) : vector_base(start, end) {}  \
+    vector& operator=(const vector& x) {  \
+      vector_base::operator=(x);  \
+      return *this;  \
+    } \
+  }; \
+}
+
+namespace std {
+
+#define EIGEN_STD_VECTOR_SPECIALIZATION_BODY \
+  public:  \
+    typedef T value_type; \
+    typedef typename vector_base::allocator_type allocator_type; \
+    typedef typename vector_base::size_type size_type;  \
+    typedef typename vector_base::iterator iterator;  \
+    typedef typename vector_base::const_iterator const_iterator;  \
+    explicit vector(const allocator_type& a = allocator_type()) : vector_base(a) {}  \
+    template<typename InputIterator> \
+    vector(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) \
+    : vector_base(first, last, a) {} \
+    vector(const vector& c) : vector_base(c) {}  \
+    explicit vector(size_type num, const value_type& val = value_type()) : vector_base(num, val) {} \
+    vector(iterator start, iterator end) : vector_base(start, end) {}  \
+    vector& operator=(const vector& x) {  \
+      vector_base::operator=(x);  \
+      return *this;  \
+    }
+
+  template<typename T>
+  class vector<T,EIGEN_ALIGNED_ALLOCATOR<T> >
+    : public vector<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+                    Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> >
+{
+  typedef vector<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+                 Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> > vector_base;
+  EIGEN_STD_VECTOR_SPECIALIZATION_BODY
+
+  void resize(size_type new_size)
+  { resize(new_size, T()); }
+
+#if defined(_VECTOR_)
+  // workaround MSVC std::vector implementation
+  void resize(size_type new_size, const value_type& x)
+  {
+    if (vector_base::size() < new_size)
+      vector_base::_Insert_n(vector_base::end(), new_size - vector_base::size(), x);
+    else if (new_size < vector_base::size())
+      vector_base::erase(vector_base::begin() + new_size, vector_base::end());
+  }
+  void push_back(const value_type& x)
+  { vector_base::push_back(x); } 
+  using vector_base::insert;  
+  iterator insert(const_iterator position, const value_type& x)
+  { return vector_base::insert(position,x); }
+  void insert(const_iterator position, size_type new_size, const value_type& x)
+  { vector_base::insert(position, new_size, x); }
+#elif defined(_GLIBCXX_VECTOR) && (!(EIGEN_GNUC_AT_LEAST(4,1)))
+  /* Note that before gcc-4.1 we already have: std::vector::resize(size_type,const T&).
+   * However, this specialization is still needed to make the above EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION trick to work. */
+  void resize(size_type new_size, const value_type& x)
+  {
+    vector_base::resize(new_size,x);
+  }
+#elif defined(_GLIBCXX_VECTOR) && EIGEN_GNUC_AT_LEAST(4,2)
+  // workaround GCC std::vector implementation
+  void resize(size_type new_size, const value_type& x)
+  {
+    if (new_size < vector_base::size())
+      vector_base::_M_erase_at_end(this->_M_impl._M_start + new_size);
+    else
+      vector_base::insert(vector_base::end(), new_size - vector_base::size(), x);
+  }
+#else
+  // either GCC 4.1 or non-GCC
+  // default implementation which should always work.
+  void resize(size_type new_size, const value_type& x)
+  {
+    if (new_size < vector_base::size())
+      vector_base::erase(vector_base::begin() + new_size, vector_base::end());
+    else if (new_size > vector_base::size())
+      vector_base::insert(vector_base::end(), new_size - vector_base::size(), x);
+  }
+#endif
+  };
+}
+
+#endif // EIGEN_STDVECTOR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/StlSupport/StdDeque.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/StlSupport/StdDeque.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/StlSupport/StdDeque.h	(revision 2476)
@@ -0,0 +1,126 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDDEQUE_H
+#define EIGEN_STDDEQUE_H
+
+#include "details.h"
+
+/**
+ * This section contains a convenience MACRO which allows an easy specialization of
+ * std::deque such that for data types with alignment issues the correct allocator
+ * is used automatically.
+ */
+#define EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(...) \
+namespace std \
+{ \
+  template<> \
+  class deque<__VA_ARGS__, std::allocator<__VA_ARGS__> >           \
+    : public deque<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \
+  { \
+    typedef deque<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > deque_base; \
+  public: \
+    typedef __VA_ARGS__ value_type; \
+    typedef deque_base::allocator_type allocator_type; \
+    typedef deque_base::size_type size_type;  \
+    typedef deque_base::iterator iterator;  \
+    explicit deque(const allocator_type& a = allocator_type()) : deque_base(a) {}  \
+    template<typename InputIterator> \
+    deque(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : deque_base(first, last, a) {} \
+    deque(const deque& c) : deque_base(c) {}  \
+    explicit deque(size_type num, const value_type& val = value_type()) : deque_base(num, val) {} \
+    deque(iterator start, iterator end) : deque_base(start, end) {}  \
+    deque& operator=(const deque& x) {  \
+      deque_base::operator=(x);  \
+      return *this;  \
+    } \
+  }; \
+}
+
+// check whether we really need the std::deque specialization
+#if !(defined(_GLIBCXX_DEQUE) && (!EIGEN_GNUC_AT_LEAST(4,1))) /* Note that before gcc-4.1 we already have: std::deque::resize(size_type,const T&). */
+
+namespace std {
+
+#define EIGEN_STD_DEQUE_SPECIALIZATION_BODY \
+  public:  \
+    typedef T value_type; \
+    typedef typename deque_base::allocator_type allocator_type; \
+    typedef typename deque_base::size_type size_type;  \
+    typedef typename deque_base::iterator iterator;  \
+    typedef typename deque_base::const_iterator const_iterator;  \
+    explicit deque(const allocator_type& a = allocator_type()) : deque_base(a) {}  \
+    template<typename InputIterator> \
+    deque(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) \
+    : deque_base(first, last, a) {} \
+    deque(const deque& c) : deque_base(c) {}  \
+    explicit deque(size_type num, const value_type& val = value_type()) : deque_base(num, val) {} \
+    deque(iterator start, iterator end) : deque_base(start, end) {}  \
+    deque& operator=(const deque& x) {  \
+      deque_base::operator=(x);  \
+      return *this;  \
+    }
+
+  template<typename T>
+  class deque<T,EIGEN_ALIGNED_ALLOCATOR<T> >
+    : public deque<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+                   Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> >
+{
+  typedef deque<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+                Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> > deque_base;
+  EIGEN_STD_DEQUE_SPECIALIZATION_BODY
+
+  void resize(size_type new_size)
+  { resize(new_size, T()); }
+
+#if defined(_DEQUE_)
+  // workaround MSVC std::deque implementation
+  void resize(size_type new_size, const value_type& x)
+  {
+    if (deque_base::size() < new_size)
+      deque_base::_Insert_n(deque_base::end(), new_size - deque_base::size(), x);
+    else if (new_size < deque_base::size())
+      deque_base::erase(deque_base::begin() + new_size, deque_base::end());
+  }
+  void push_back(const value_type& x)
+  { deque_base::push_back(x); } 
+  void push_front(const value_type& x)
+  { deque_base::push_front(x); }
+  using deque_base::insert;  
+  iterator insert(const_iterator position, const value_type& x)
+  { return deque_base::insert(position,x); }
+  void insert(const_iterator position, size_type new_size, const value_type& x)
+  { deque_base::insert(position, new_size, x); }
+#elif defined(_GLIBCXX_DEQUE) && EIGEN_GNUC_AT_LEAST(4,2)
+  // workaround GCC std::deque implementation
+  void resize(size_type new_size, const value_type& x)
+  {
+    if (new_size < deque_base::size())
+      deque_base::_M_erase_at_end(this->_M_impl._M_start + new_size);
+    else
+      deque_base::insert(deque_base::end(), new_size - deque_base::size(), x);
+  }
+#else
+  // either GCC 4.1 or non-GCC
+  // default implementation which should always work.
+  void resize(size_type new_size, const value_type& x)
+  {
+    if (new_size < deque_base::size())
+      deque_base::erase(deque_base::begin() + new_size, deque_base::end());
+    else if (new_size > deque_base::size())
+      deque_base::insert(deque_base::end(), new_size - deque_base::size(), x);
+  }
+#endif
+  };
+}
+
+#endif // check whether specialization is actually required
+
+#endif // EIGEN_STDDEQUE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/StlSupport/details.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/StlSupport/details.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/StlSupport/details.h	(revision 2476)
@@ -0,0 +1,84 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STL_DETAILS_H
+#define EIGEN_STL_DETAILS_H
+
+#ifndef EIGEN_ALIGNED_ALLOCATOR
+  #define EIGEN_ALIGNED_ALLOCATOR Eigen::aligned_allocator
+#endif
+
+namespace Eigen {
+
+  // This one is needed to prevent reimplementing the whole std::vector.
+  template <class T>
+  class aligned_allocator_indirection : public EIGEN_ALIGNED_ALLOCATOR<T>
+  {
+  public:
+    typedef size_t    size_type;
+    typedef ptrdiff_t difference_type;
+    typedef T*        pointer;
+    typedef const T*  const_pointer;
+    typedef T&        reference;
+    typedef const T&  const_reference;
+    typedef T         value_type;
+
+    template<class U>
+    struct rebind
+    {
+      typedef aligned_allocator_indirection<U> other;
+    };
+
+    aligned_allocator_indirection() {}
+    aligned_allocator_indirection(const aligned_allocator_indirection& ) : EIGEN_ALIGNED_ALLOCATOR<T>() {}
+    aligned_allocator_indirection(const EIGEN_ALIGNED_ALLOCATOR<T>& ) {}
+    template<class U>
+    aligned_allocator_indirection(const aligned_allocator_indirection<U>& ) {}
+    template<class U>
+    aligned_allocator_indirection(const EIGEN_ALIGNED_ALLOCATOR<U>& ) {}
+    ~aligned_allocator_indirection() {}
+  };
+
+#ifdef _MSC_VER
+
+  // sometimes, MSVC detects, at compile time, that the argument x
+  // in std::vector::resize(size_t s,T x) won't be aligned and generate an error
+  // even if this function is never called. Whence this little wrapper.
+#define EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T) \
+  typename Eigen::internal::conditional< \
+    Eigen::internal::is_arithmetic<T>::value, \
+    T, \
+    Eigen::internal::workaround_msvc_stl_support<T> \
+  >::type
+
+  namespace internal {
+  template<typename T> struct workaround_msvc_stl_support : public T
+  {
+    inline workaround_msvc_stl_support() : T() {}
+    inline workaround_msvc_stl_support(const T& other) : T(other) {}
+    inline operator T& () { return *static_cast<T*>(this); }
+    inline operator const T& () const { return *static_cast<const T*>(this); }
+    template<typename OtherT>
+    inline T& operator=(const OtherT& other)
+    { T::operator=(other); return *this; }
+    inline workaround_msvc_stl_support& operator=(const workaround_msvc_stl_support& other)
+    { T::operator=(other); return *this; }
+  };
+  }
+
+#else
+
+#define EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T) T
+
+#endif
+
+}
+
+#endif // EIGEN_STL_DETAILS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/StlSupport/StdList.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/StlSupport/StdList.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/StlSupport/StdList.h	(revision 2476)
@@ -0,0 +1,106 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDLIST_H
+#define EIGEN_STDLIST_H
+
+#include "details.h"
+
+/**
+ * This section contains a convenience MACRO which allows an easy specialization of
+ * std::list such that for data types with alignment issues the correct allocator
+ * is used automatically.
+ */
+#define EIGEN_DEFINE_STL_LIST_SPECIALIZATION(...) \
+namespace std \
+{ \
+  template<> \
+  class list<__VA_ARGS__, std::allocator<__VA_ARGS__> >           \
+    : public list<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > \
+  { \
+    typedef list<__VA_ARGS__, EIGEN_ALIGNED_ALLOCATOR<__VA_ARGS__> > list_base; \
+  public: \
+    typedef __VA_ARGS__ value_type; \
+    typedef list_base::allocator_type allocator_type; \
+    typedef list_base::size_type size_type;  \
+    typedef list_base::iterator iterator;  \
+    explicit list(const allocator_type& a = allocator_type()) : list_base(a) {}  \
+    template<typename InputIterator> \
+    list(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) : list_base(first, last, a) {} \
+    list(const list& c) : list_base(c) {}  \
+    explicit list(size_type num, const value_type& val = value_type()) : list_base(num, val) {} \
+    list(iterator start, iterator end) : list_base(start, end) {}  \
+    list& operator=(const list& x) {  \
+      list_base::operator=(x);  \
+      return *this;  \
+    } \
+  }; \
+}
+
+// check whether we really need the std::vector specialization
+#if !(defined(_GLIBCXX_VECTOR) && (!EIGEN_GNUC_AT_LEAST(4,1))) /* Note that before gcc-4.1 we already have: std::list::resize(size_type,const T&). */
+
+namespace std
+{
+
+#define EIGEN_STD_LIST_SPECIALIZATION_BODY \
+  public:  \
+    typedef T value_type; \
+    typedef typename list_base::allocator_type allocator_type; \
+    typedef typename list_base::size_type size_type;  \
+    typedef typename list_base::iterator iterator;  \
+    typedef typename list_base::const_iterator const_iterator;  \
+    explicit list(const allocator_type& a = allocator_type()) : list_base(a) {}  \
+    template<typename InputIterator> \
+    list(InputIterator first, InputIterator last, const allocator_type& a = allocator_type()) \
+    : list_base(first, last, a) {} \
+    list(const list& c) : list_base(c) {}  \
+    explicit list(size_type num, const value_type& val = value_type()) : list_base(num, val) {} \
+    list(iterator start, iterator end) : list_base(start, end) {}  \
+    list& operator=(const list& x) {  \
+    list_base::operator=(x);  \
+    return *this; \
+  }
+
+  template<typename T>
+  class list<T,EIGEN_ALIGNED_ALLOCATOR<T> >
+    : public list<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+                  Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> >
+  {
+    typedef list<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T),
+                 Eigen::aligned_allocator_indirection<EIGEN_WORKAROUND_MSVC_STL_SUPPORT(T)> > list_base;
+    EIGEN_STD_LIST_SPECIALIZATION_BODY
+
+    void resize(size_type new_size)
+    { resize(new_size, T()); }
+
+    void resize(size_type new_size, const value_type& x)
+    {
+      if (list_base::size() < new_size)
+        list_base::insert(list_base::end(), new_size - list_base::size(), x);
+      else
+        while (new_size < list_base::size()) list_base::pop_back();
+    }
+
+#if defined(_LIST_)
+    // workaround MSVC std::list implementation
+    void push_back(const value_type& x)
+    { list_base::push_back(x); } 
+    using list_base::insert;  
+    iterator insert(const_iterator position, const value_type& x)
+    { return list_base::insert(position,x); }
+    void insert(const_iterator position, size_type new_size, const value_type& x)
+    { list_base::insert(position, new_size, x); }
+#endif
+  };
+}
+
+#endif // check whether specialization is actually required
+
+#endif // EIGEN_STDLIST_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseQR/SparseQR.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseQR/SparseQR.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/src/SparseQR/SparseQR.h	(revision 2476)
@@ -0,0 +1,714 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012-2013 Desire Nuentsa <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012-2014 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_QR_H
+#define EIGEN_SPARSE_QR_H
+
+namespace Eigen {
+
+template<typename MatrixType, typename OrderingType> class SparseQR;
+template<typename SparseQRType> struct SparseQRMatrixQReturnType;
+template<typename SparseQRType> struct SparseQRMatrixQTransposeReturnType;
+template<typename SparseQRType, typename Derived> struct SparseQR_QProduct;
+namespace internal {
+  template <typename SparseQRType> struct traits<SparseQRMatrixQReturnType<SparseQRType> >
+  {
+    typedef typename SparseQRType::MatrixType ReturnType;
+    typedef typename ReturnType::Index Index;
+    typedef typename ReturnType::StorageKind StorageKind;
+  };
+  template <typename SparseQRType> struct traits<SparseQRMatrixQTransposeReturnType<SparseQRType> >
+  {
+    typedef typename SparseQRType::MatrixType ReturnType;
+  };
+  template <typename SparseQRType, typename Derived> struct traits<SparseQR_QProduct<SparseQRType, Derived> >
+  {
+    typedef typename Derived::PlainObject ReturnType;
+  };
+} // End namespace internal
+
+/**
+  * \ingroup SparseQR_Module
+  * \class SparseQR
+  * \brief Sparse left-looking rank-revealing QR factorization
+  * 
+  * This class implements a left-looking rank-revealing QR decomposition 
+  * of sparse matrices. When a column has a norm less than a given tolerance
+  * it is implicitly permuted to the end. The QR factorization thus obtained is 
+  * given by A*P = Q*R where R is upper triangular or trapezoidal. 
+  * 
+  * P is the column permutation which is the product of the fill-reducing and the
+  * rank-revealing permutations. Use colsPermutation() to get it.
+  * 
+  * Q is the orthogonal matrix represented as products of Householder reflectors. 
+  * Use matrixQ() to get an expression and matrixQ().transpose() to get the transpose.
+  * You can then apply it to a vector.
+  * 
+  * R is the sparse triangular or trapezoidal matrix. The later occurs when A is rank-deficient.
+  * matrixR().topLeftCorner(rank(), rank()) always returns a triangular factor of full rank.
+  * 
+  * \tparam _MatrixType The type of the sparse matrix A, must be a column-major SparseMatrix<>
+  * \tparam _OrderingType The fill-reducing ordering method. See the \link OrderingMethods_Module 
+  *  OrderingMethods \endlink module for the list of built-in and external ordering methods.
+  * 
+  * \warning The input sparse matrix A must be in compressed mode (see SparseMatrix::makeCompressed()).
+  * 
+  */
+template<typename _MatrixType, typename _OrderingType>
+class SparseQR
+{
+  public:
+    typedef _MatrixType MatrixType;
+    typedef _OrderingType OrderingType;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+    typedef SparseMatrix<Scalar,ColMajor,Index> QRMatrixType;
+    typedef Matrix<Index, Dynamic, 1> IndexVector;
+    typedef Matrix<Scalar, Dynamic, 1> ScalarVector;
+    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
+  public:
+    SparseQR () : m_isInitialized(false), m_analysisIsok(false), m_lastError(""), m_useDefaultThreshold(true),m_isQSorted(false),m_isEtreeOk(false)
+    { }
+    
+    /** Construct a QR factorization of the matrix \a mat.
+      * 
+      * \warning The matrix \a mat must be in compressed mode (see SparseMatrix::makeCompressed()).
+      * 
+      * \sa compute()
+      */
+    SparseQR(const MatrixType& mat) : m_isInitialized(false), m_analysisIsok(false), m_lastError(""), m_useDefaultThreshold(true),m_isQSorted(false),m_isEtreeOk(false)
+    {
+      compute(mat);
+    }
+    
+    /** Computes the QR factorization of the sparse matrix \a mat.
+      * 
+      * \warning The matrix \a mat must be in compressed mode (see SparseMatrix::makeCompressed()).
+      * 
+      * \sa analyzePattern(), factorize()
+      */
+    void compute(const MatrixType& mat)
+    {
+      analyzePattern(mat);
+      factorize(mat);
+    }
+    void analyzePattern(const MatrixType& mat);
+    void factorize(const MatrixType& mat);
+    
+    /** \returns the number of rows of the represented matrix. 
+      */
+    inline Index rows() const { return m_pmat.rows(); }
+    
+    /** \returns the number of columns of the represented matrix. 
+      */
+    inline Index cols() const { return m_pmat.cols();}
+    
+    /** \returns a const reference to the \b sparse upper triangular matrix R of the QR factorization.
+      */
+    const QRMatrixType& matrixR() const { return m_R; }
+    
+    /** \returns the number of non linearly dependent columns as determined by the pivoting threshold.
+      *
+      * \sa setPivotThreshold()
+      */
+    Index rank() const 
+    {
+      eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+      return m_nonzeropivots; 
+    }
+    
+    /** \returns an expression of the matrix Q as products of sparse Householder reflectors.
+    * The common usage of this function is to apply it to a dense matrix or vector
+    * \code
+    * VectorXd B1, B2;
+    * // Initialize B1
+    * B2 = matrixQ() * B1;
+    * \endcode
+    *
+    * To get a plain SparseMatrix representation of Q:
+    * \code
+    * SparseMatrix<double> Q;
+    * Q = SparseQR<SparseMatrix<double> >(A).matrixQ();
+    * \endcode
+    * Internally, this call simply performs a sparse product between the matrix Q
+    * and a sparse identity matrix. However, due to the fact that the sparse
+    * reflectors are stored unsorted, two transpositions are needed to sort
+    * them before performing the product.
+    */
+    SparseQRMatrixQReturnType<SparseQR> matrixQ() const 
+    { return SparseQRMatrixQReturnType<SparseQR>(*this); }
+    
+    /** \returns a const reference to the column permutation P that was applied to A such that A*P = Q*R
+      * It is the combination of the fill-in reducing permutation and numerical column pivoting.
+      */
+    const PermutationType& colsPermutation() const
+    { 
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_outputPerm_c;
+    }
+    
+    /** \returns A string describing the type of error.
+      * This method is provided to ease debugging, not to handle errors.
+      */
+    std::string lastErrorMessage() const { return m_lastError; }
+    
+    /** \internal */
+    template<typename Rhs, typename Dest>
+    bool _solve(const MatrixBase<Rhs> &B, MatrixBase<Dest> &dest) const
+    {
+      eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+      eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
+
+      Index rank = this->rank();
+      
+      // Compute Q^T * b;
+      typename Dest::PlainObject y, b;
+      y = this->matrixQ().transpose() * B; 
+      b = y;
+      
+      // Solve with the triangular matrix R
+      y.resize((std::max)(cols(),Index(y.rows())),y.cols());
+      y.topRows(rank) = this->matrixR().topLeftCorner(rank, rank).template triangularView<Upper>().solve(b.topRows(rank));
+      y.bottomRows(y.rows()-rank).setZero();
+
+      // Apply the column permutation
+      if (m_perm_c.size())  dest = colsPermutation() * y.topRows(cols());
+      else                  dest = y.topRows(cols());
+      
+      m_info = Success;
+      return true;
+    }
+    
+
+    /** Sets the threshold that is used to determine linearly dependent columns during the factorization.
+      *
+      * In practice, if during the factorization the norm of the column that has to be eliminated is below
+      * this threshold, then the entire column is treated as zero, and it is moved at the end.
+      */
+    void setPivotThreshold(const RealScalar& threshold)
+    {
+      m_useDefaultThreshold = false;
+      m_threshold = threshold;
+    }
+    
+    /** \returns the solution X of \f$ A X = B \f$ using the current decomposition of A.
+      *
+      * \sa compute()
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<SparseQR, Rhs> solve(const MatrixBase<Rhs>& B) const 
+    {
+      eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+      eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
+      return internal::solve_retval<SparseQR, Rhs>(*this, B.derived());
+    }
+    template<typename Rhs>
+    inline const internal::sparse_solve_retval<SparseQR, Rhs> solve(const SparseMatrixBase<Rhs>& B) const
+    {
+          eigen_assert(m_isInitialized && "The factorization should be called first, use compute()");
+          eigen_assert(this->rows() == B.rows() && "SparseQR::solve() : invalid number of rows in the right hand side matrix");
+          return internal::sparse_solve_retval<SparseQR, Rhs>(*this, B.derived());
+    }
+    
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was successful,
+      *          \c NumericalIssue if the QR factorization reports a numerical problem
+      *          \c InvalidInput if the input matrix is invalid
+      *
+      * \sa iparm()          
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "Decomposition is not initialized.");
+      return m_info;
+    }
+
+  protected:
+    inline void sort_matrix_Q()
+    {
+      if(this->m_isQSorted) return;
+      // The matrix Q is sorted during the transposition
+      SparseMatrix<Scalar, RowMajor, Index> mQrm(this->m_Q);
+      this->m_Q = mQrm;
+      this->m_isQSorted = true;
+    }
+
+    
+  protected:
+    bool m_isInitialized;
+    bool m_analysisIsok;
+    bool m_factorizationIsok;
+    mutable ComputationInfo m_info;
+    std::string m_lastError;
+    QRMatrixType m_pmat;            // Temporary matrix
+    QRMatrixType m_R;               // The triangular factor matrix
+    QRMatrixType m_Q;               // The orthogonal reflectors
+    ScalarVector m_hcoeffs;         // The Householder coefficients
+    PermutationType m_perm_c;       // Fill-reducing  Column  permutation
+    PermutationType m_pivotperm;    // The permutation for rank revealing
+    PermutationType m_outputPerm_c; // The final column permutation
+    RealScalar m_threshold;         // Threshold to determine null Householder reflections
+    bool m_useDefaultThreshold;     // Use default threshold
+    Index m_nonzeropivots;          // Number of non zero pivots found 
+    IndexVector m_etree;            // Column elimination tree
+    IndexVector m_firstRowElt;      // First element in each row
+    bool m_isQSorted;               // whether Q is sorted or not
+    bool m_isEtreeOk;               // whether the elimination tree match the initial input matrix
+    
+    template <typename, typename > friend struct SparseQR_QProduct;
+    template <typename > friend struct SparseQRMatrixQReturnType;
+    
+};
+
+/** \brief Preprocessing step of a QR factorization 
+  * 
+  * \warning The matrix \a mat must be in compressed mode (see SparseMatrix::makeCompressed()).
+  * 
+  * In this step, the fill-reducing permutation is computed and applied to the columns of A
+  * and the column elimination tree is computed as well. Only the sparsity pattern of \a mat is exploited.
+  * 
+  * \note In this step it is assumed that there is no empty row in the matrix \a mat.
+  */
+template <typename MatrixType, typename OrderingType>
+void SparseQR<MatrixType,OrderingType>::analyzePattern(const MatrixType& mat)
+{
+  eigen_assert(mat.isCompressed() && "SparseQR requires a sparse matrix in compressed mode. Call .makeCompressed() before passing it to SparseQR");
+  // Copy to a column major matrix if the input is rowmajor
+  typename internal::conditional<MatrixType::IsRowMajor,QRMatrixType,const MatrixType&>::type matCpy(mat);
+  // Compute the column fill reducing ordering
+  OrderingType ord; 
+  ord(matCpy, m_perm_c); 
+  Index n = mat.cols();
+  Index m = mat.rows();
+  Index diagSize = (std::min)(m,n);
+  
+  if (!m_perm_c.size())
+  {
+    m_perm_c.resize(n);
+    m_perm_c.indices().setLinSpaced(n, 0,n-1);
+  }
+  
+  // Compute the column elimination tree of the permuted matrix
+  m_outputPerm_c = m_perm_c.inverse();
+  internal::coletree(matCpy, m_etree, m_firstRowElt, m_outputPerm_c.indices().data());
+  m_isEtreeOk = true;
+  
+  m_R.resize(m, n);
+  m_Q.resize(m, diagSize);
+  
+  // Allocate space for nonzero elements : rough estimation
+  m_R.reserve(2*mat.nonZeros()); //FIXME Get a more accurate estimation through symbolic factorization with the etree
+  m_Q.reserve(2*mat.nonZeros());
+  m_hcoeffs.resize(diagSize);
+  m_analysisIsok = true;
+}
+
+/** \brief Performs the numerical QR factorization of the input matrix
+  * 
+  * The function SparseQR::analyzePattern(const MatrixType&) must have been called beforehand with
+  * a matrix having the same sparsity pattern than \a mat.
+  * 
+  * \param mat The sparse column-major matrix
+  */
+template <typename MatrixType, typename OrderingType>
+void SparseQR<MatrixType,OrderingType>::factorize(const MatrixType& mat)
+{
+  using std::abs;
+  using std::max;
+  
+  eigen_assert(m_analysisIsok && "analyzePattern() should be called before this step");
+  Index m = mat.rows();
+  Index n = mat.cols();
+  Index diagSize = (std::min)(m,n);
+  IndexVector mark((std::max)(m,n)); mark.setConstant(-1);  // Record the visited nodes
+  IndexVector Ridx(n), Qidx(m);                             // Store temporarily the row indexes for the current column of R and Q
+  Index nzcolR, nzcolQ;                                     // Number of nonzero for the current column of R and Q
+  ScalarVector tval(m);                                     // The dense vector used to compute the current column
+  RealScalar pivotThreshold = m_threshold;
+  
+  m_R.setZero();
+  m_Q.setZero();
+  m_pmat = mat;
+  if(!m_isEtreeOk)
+  {
+    m_outputPerm_c = m_perm_c.inverse();
+    internal::coletree(m_pmat, m_etree, m_firstRowElt, m_outputPerm_c.indices().data());
+    m_isEtreeOk = true;
+  }
+
+  m_pmat.uncompress(); // To have the innerNonZeroPtr allocated
+  
+  // Apply the fill-in reducing permutation lazily:
+  {
+    // If the input is row major, copy the original column indices,
+    // otherwise directly use the input matrix
+    // 
+    IndexVector originalOuterIndicesCpy;
+    const Index *originalOuterIndices = mat.outerIndexPtr();
+    if(MatrixType::IsRowMajor)
+    {
+      originalOuterIndicesCpy = IndexVector::Map(m_pmat.outerIndexPtr(),n+1);
+      originalOuterIndices = originalOuterIndicesCpy.data();
+    }
+    
+    for (int i = 0; i < n; i++)
+    {
+      Index p = m_perm_c.size() ? m_perm_c.indices()(i) : i;
+      m_pmat.outerIndexPtr()[p] = originalOuterIndices[i]; 
+      m_pmat.innerNonZeroPtr()[p] = originalOuterIndices[i+1] - originalOuterIndices[i]; 
+    }
+  }
+  
+  /* Compute the default threshold as in MatLab, see:
+   * Tim Davis, "Algorithm 915, SuiteSparseQR: Multifrontal Multithreaded Rank-Revealing
+   * Sparse QR Factorization, ACM Trans. on Math. Soft. 38(1), 2011, Page 8:3 
+   */
+  if(m_useDefaultThreshold) 
+  {
+    RealScalar max2Norm = 0.0;
+    for (int j = 0; j < n; j++) max2Norm = (max)(max2Norm, m_pmat.col(j).norm());
+    if(max2Norm==RealScalar(0))
+      max2Norm = RealScalar(1);
+    pivotThreshold = 20 * (m + n) * max2Norm * NumTraits<RealScalar>::epsilon();
+  }
+  
+  // Initialize the numerical permutation
+  m_pivotperm.setIdentity(n);
+  
+  Index nonzeroCol = 0; // Record the number of valid pivots
+  m_Q.startVec(0);
+
+  // Left looking rank-revealing QR factorization: compute a column of R and Q at a time
+  for (Index col = 0; col < n; ++col)
+  {
+    mark.setConstant(-1);
+    m_R.startVec(col);
+    mark(nonzeroCol) = col;
+    Qidx(0) = nonzeroCol;
+    nzcolR = 0; nzcolQ = 1;
+    bool found_diag = nonzeroCol>=m;
+    tval.setZero(); 
+    
+    // Symbolic factorization: find the nonzero locations of the column k of the factors R and Q, i.e.,
+    // all the nodes (with indexes lower than rank) reachable through the column elimination tree (etree) rooted at node k.
+    // Note: if the diagonal entry does not exist, then its contribution must be explicitly added,
+    // thus the trick with found_diag that permits to do one more iteration on the diagonal element if this one has not been found.
+    for (typename QRMatrixType::InnerIterator itp(m_pmat, col); itp || !found_diag; ++itp)
+    {
+      Index curIdx = nonzeroCol;
+      if(itp) curIdx = itp.row();
+      if(curIdx == nonzeroCol) found_diag = true;
+      
+      // Get the nonzeros indexes of the current column of R
+      Index st = m_firstRowElt(curIdx); // The traversal of the etree starts here 
+      if (st < 0 )
+      {
+        m_lastError = "Empty row found during numerical factorization";
+        m_info = InvalidInput;
+        return;
+      }
+
+      // Traverse the etree 
+      Index bi = nzcolR;
+      for (; mark(st) != col; st = m_etree(st))
+      {
+        Ridx(nzcolR) = st;  // Add this row to the list,
+        mark(st) = col;     // and mark this row as visited
+        nzcolR++;
+      }
+
+      // Reverse the list to get the topological ordering
+      Index nt = nzcolR-bi;
+      for(Index i = 0; i < nt/2; i++) std::swap(Ridx(bi+i), Ridx(nzcolR-i-1));
+       
+      // Copy the current (curIdx,pcol) value of the input matrix
+      if(itp) tval(curIdx) = itp.value();
+      else    tval(curIdx) = Scalar(0);
+      
+      // Compute the pattern of Q(:,k)
+      if(curIdx > nonzeroCol && mark(curIdx) != col ) 
+      {
+        Qidx(nzcolQ) = curIdx;  // Add this row to the pattern of Q,
+        mark(curIdx) = col;     // and mark it as visited
+        nzcolQ++;
+      }
+    }
+
+    // Browse all the indexes of R(:,col) in reverse order
+    for (Index i = nzcolR-1; i >= 0; i--)
+    {
+      Index curIdx = Ridx(i);
+      
+      // Apply the curIdx-th householder vector to the current column (temporarily stored into tval)
+      Scalar tdot(0);
+      
+      // First compute q' * tval
+      tdot = m_Q.col(curIdx).dot(tval);
+
+      tdot *= m_hcoeffs(curIdx);
+      
+      // Then update tval = tval - q * tau
+      // FIXME: tval -= tdot * m_Q.col(curIdx) should amount to the same (need to check/add support for efficient "dense ?= sparse")
+      for (typename QRMatrixType::InnerIterator itq(m_Q, curIdx); itq; ++itq)
+        tval(itq.row()) -= itq.value() * tdot;
+
+      // Detect fill-in for the current column of Q
+      if(m_etree(Ridx(i)) == nonzeroCol)
+      {
+        for (typename QRMatrixType::InnerIterator itq(m_Q, curIdx); itq; ++itq)
+        {
+          Index iQ = itq.row();
+          if (mark(iQ) != col)
+          {
+            Qidx(nzcolQ++) = iQ;  // Add this row to the pattern of Q,
+            mark(iQ) = col;       // and mark it as visited
+          }
+        }
+      }
+    } // End update current column
+    
+    Scalar tau = 0;
+    RealScalar beta = 0;
+    
+    if(nonzeroCol < diagSize)
+    {
+      // Compute the Householder reflection that eliminate the current column
+      // FIXME this step should call the Householder module.
+      Scalar c0 = nzcolQ ? tval(Qidx(0)) : Scalar(0);
+      
+      // First, the squared norm of Q((col+1):m, col)
+      RealScalar sqrNorm = 0.;
+      for (Index itq = 1; itq < nzcolQ; ++itq) sqrNorm += numext::abs2(tval(Qidx(itq)));
+      if(sqrNorm == RealScalar(0) && numext::imag(c0) == RealScalar(0))
+      {
+        beta = numext::real(c0);
+        tval(Qidx(0)) = 1;
+      }
+      else
+      {
+        using std::sqrt;
+        beta = sqrt(numext::abs2(c0) + sqrNorm);
+        if(numext::real(c0) >= RealScalar(0))
+          beta = -beta;
+        tval(Qidx(0)) = 1;
+        for (Index itq = 1; itq < nzcolQ; ++itq)
+          tval(Qidx(itq)) /= (c0 - beta);
+        tau = numext::conj((beta-c0) / beta);
+          
+      }
+    }
+
+    // Insert values in R
+    for (Index  i = nzcolR-1; i >= 0; i--)
+    {
+      Index curIdx = Ridx(i);
+      if(curIdx < nonzeroCol) 
+      {
+        m_R.insertBackByOuterInnerUnordered(col, curIdx) = tval(curIdx);
+        tval(curIdx) = Scalar(0.);
+      }
+    }
+
+    if(nonzeroCol < diagSize && abs(beta) >= pivotThreshold)
+    {
+      m_R.insertBackByOuterInner(col, nonzeroCol) = beta;
+      // The householder coefficient
+      m_hcoeffs(nonzeroCol) = tau;
+      // Record the householder reflections
+      for (Index itq = 0; itq < nzcolQ; ++itq)
+      {
+        Index iQ = Qidx(itq);
+        m_Q.insertBackByOuterInnerUnordered(nonzeroCol,iQ) = tval(iQ);
+        tval(iQ) = Scalar(0.);
+      }
+      nonzeroCol++;
+      if(nonzeroCol<diagSize)
+        m_Q.startVec(nonzeroCol);
+    }
+    else
+    {
+      // Zero pivot found: move implicitly this column to the end
+      for (Index j = nonzeroCol; j < n-1; j++) 
+        std::swap(m_pivotperm.indices()(j), m_pivotperm.indices()[j+1]);
+      
+      // Recompute the column elimination tree
+      internal::coletree(m_pmat, m_etree, m_firstRowElt, m_pivotperm.indices().data());
+      m_isEtreeOk = false;
+    }
+  }
+  
+  m_hcoeffs.tail(diagSize-nonzeroCol).setZero();
+  
+  // Finalize the column pointers of the sparse matrices R and Q
+  m_Q.finalize();
+  m_Q.makeCompressed();
+  m_R.finalize();
+  m_R.makeCompressed();
+  m_isQSorted = false;
+
+  m_nonzeropivots = nonzeroCol;
+  
+  if(nonzeroCol<n)
+  {
+    // Permute the triangular factor to put the 'dead' columns to the end
+    QRMatrixType tempR(m_R);
+    m_R = tempR * m_pivotperm;
+    
+    // Update the column permutation
+    m_outputPerm_c = m_outputPerm_c * m_pivotperm;
+  }
+  
+  m_isInitialized = true; 
+  m_factorizationIsok = true;
+  m_info = Success;
+}
+
+namespace internal {
+  
+template<typename _MatrixType, typename OrderingType, typename Rhs>
+struct solve_retval<SparseQR<_MatrixType,OrderingType>, Rhs>
+  : solve_retval_base<SparseQR<_MatrixType,OrderingType>, Rhs>
+{
+  typedef SparseQR<_MatrixType,OrderingType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+template<typename _MatrixType, typename OrderingType, typename Rhs>
+struct sparse_solve_retval<SparseQR<_MatrixType, OrderingType>, Rhs>
+ : sparse_solve_retval_base<SparseQR<_MatrixType, OrderingType>, Rhs>
+{
+  typedef SparseQR<_MatrixType, OrderingType> Dec;
+  EIGEN_MAKE_SPARSE_SOLVE_HELPERS(Dec, Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    this->defaultEvalTo(dst);
+  }
+};
+} // end namespace internal
+
+template <typename SparseQRType, typename Derived>
+struct SparseQR_QProduct : ReturnByValue<SparseQR_QProduct<SparseQRType, Derived> >
+{
+  typedef typename SparseQRType::QRMatrixType MatrixType;
+  typedef typename SparseQRType::Scalar Scalar;
+  typedef typename SparseQRType::Index Index;
+  // Get the references 
+  SparseQR_QProduct(const SparseQRType& qr, const Derived& other, bool transpose) : 
+  m_qr(qr),m_other(other),m_transpose(transpose) {}
+  inline Index rows() const { return m_transpose ? m_qr.rows() : m_qr.cols(); }
+  inline Index cols() const { return m_other.cols(); }
+  
+  // Assign to a vector
+  template<typename DesType>
+  void evalTo(DesType& res) const
+  {
+    Index m = m_qr.rows();
+    Index n = m_qr.cols();
+    Index diagSize = (std::min)(m,n);
+    res = m_other;
+    if (m_transpose)
+    {
+      eigen_assert(m_qr.m_Q.rows() == m_other.rows() && "Non conforming object sizes");
+      //Compute res = Q' * other column by column
+      for(Index j = 0; j < res.cols(); j++){
+        for (Index k = 0; k < diagSize; k++)
+        {
+          Scalar tau = Scalar(0);
+          tau = m_qr.m_Q.col(k).dot(res.col(j));
+          if(tau==Scalar(0)) continue;
+          tau = tau * m_qr.m_hcoeffs(k);
+          res.col(j) -= tau * m_qr.m_Q.col(k);
+        }
+      }
+    }
+    else
+    {
+      eigen_assert(m_qr.m_Q.rows() == m_other.rows() && "Non conforming object sizes");
+      // Compute res = Q * other column by column
+      for(Index j = 0; j < res.cols(); j++)
+      {
+        for (Index k = diagSize-1; k >=0; k--)
+        {
+          Scalar tau = Scalar(0);
+          tau = m_qr.m_Q.col(k).dot(res.col(j));
+          if(tau==Scalar(0)) continue;
+          tau = tau * m_qr.m_hcoeffs(k);
+          res.col(j) -= tau * m_qr.m_Q.col(k);
+        }
+      }
+    }
+  }
+  
+  const SparseQRType& m_qr;
+  const Derived& m_other;
+  bool m_transpose;
+};
+
+template<typename SparseQRType>
+struct SparseQRMatrixQReturnType : public EigenBase<SparseQRMatrixQReturnType<SparseQRType> >
+{  
+  typedef typename SparseQRType::Index Index;
+  typedef typename SparseQRType::Scalar Scalar;
+  typedef Matrix<Scalar,Dynamic,Dynamic> DenseMatrix;
+  SparseQRMatrixQReturnType(const SparseQRType& qr) : m_qr(qr) {}
+  template<typename Derived>
+  SparseQR_QProduct<SparseQRType, Derived> operator*(const MatrixBase<Derived>& other)
+  {
+    return SparseQR_QProduct<SparseQRType,Derived>(m_qr,other.derived(),false);
+  }
+  SparseQRMatrixQTransposeReturnType<SparseQRType> adjoint() const
+  {
+    return SparseQRMatrixQTransposeReturnType<SparseQRType>(m_qr);
+  }
+  inline Index rows() const { return m_qr.rows(); }
+  inline Index cols() const { return (std::min)(m_qr.rows(),m_qr.cols()); }
+  // To use for operations with the transpose of Q
+  SparseQRMatrixQTransposeReturnType<SparseQRType> transpose() const
+  {
+    return SparseQRMatrixQTransposeReturnType<SparseQRType>(m_qr);
+  }
+  template<typename Dest> void evalTo(MatrixBase<Dest>& dest) const
+  {
+    dest.derived() = m_qr.matrixQ() * Dest::Identity(m_qr.rows(), m_qr.rows());
+  }
+  template<typename Dest> void evalTo(SparseMatrixBase<Dest>& dest) const
+  {
+    Dest idMat(m_qr.rows(), m_qr.rows());
+    idMat.setIdentity();
+    // Sort the sparse householder reflectors if needed
+    const_cast<SparseQRType *>(&m_qr)->sort_matrix_Q();
+    dest.derived() = SparseQR_QProduct<SparseQRType, Dest>(m_qr, idMat, false);
+  }
+
+  const SparseQRType& m_qr;
+};
+
+template<typename SparseQRType>
+struct SparseQRMatrixQTransposeReturnType
+{
+  SparseQRMatrixQTransposeReturnType(const SparseQRType& qr) : m_qr(qr) {}
+  template<typename Derived>
+  SparseQR_QProduct<SparseQRType,Derived> operator*(const MatrixBase<Derived>& other)
+  {
+    return SparseQR_QProduct<SparseQRType,Derived>(m_qr,other.derived(), true);
+  }
+  const SparseQRType& m_qr;
+};
+
+} // end namespace Eigen
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Core
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Core	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Core	(revision 2476)
@@ -0,0 +1,376 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2007-2011 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_CORE_H
+#define EIGEN_CORE_H
+
+// first thing Eigen does: stop the compiler from committing suicide
+#include "src/Core/util/DisableStupidWarnings.h"
+
+// then include this file where all our macros are defined. It's really important to do it first because
+// it's where we do all the alignment settings (platform detection and honoring the user's will if he
+// defined e.g. EIGEN_DONT_ALIGN) so it needs to be done before we do anything with vectorization.
+#include "src/Core/util/Macros.h"
+
+// Disable the ipa-cp-clone optimization flag with MinGW 6.x or newer (enabled by default with -O3)
+// See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556 for details.
+#if defined(__MINGW32__) && EIGEN_GNUC_AT_LEAST(4,6)
+  #pragma GCC optimize ("-fno-ipa-cp-clone")
+#endif
+
+#include <complex>
+
+// this include file manages BLAS and MKL related macros
+// and inclusion of their respective header files
+#include "src/Core/util/MKL_support.h"
+
+// if alignment is disabled, then disable vectorization. Note: EIGEN_ALIGN is the proper check, it takes into
+// account both the user's will (EIGEN_DONT_ALIGN) and our own platform checks
+#if !EIGEN_ALIGN
+  #ifndef EIGEN_DONT_VECTORIZE
+    #define EIGEN_DONT_VECTORIZE
+  #endif
+#endif
+
+#ifdef _MSC_VER
+  #include <malloc.h> // for _aligned_malloc -- need it regardless of whether vectorization is enabled
+  #if (_MSC_VER >= 1500) // 2008 or later
+    // Remember that usage of defined() in a #define is undefined by the standard.
+    // a user reported that in 64-bit mode, MSVC doesn't care to define _M_IX86_FP.
+    #if (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || defined(_M_X64)
+      #define EIGEN_SSE2_ON_MSVC_2008_OR_LATER
+    #endif
+  #endif
+#else
+  // Remember that usage of defined() in a #define is undefined by the standard
+  #if (defined __SSE2__) && ( (!defined __GNUC__) || (defined __INTEL_COMPILER) || EIGEN_GNUC_AT_LEAST(4,2) )
+    #define EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC
+  #endif
+#endif
+
+#ifndef EIGEN_DONT_VECTORIZE
+
+  #if defined (EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC) || defined(EIGEN_SSE2_ON_MSVC_2008_OR_LATER)
+
+    // Defines symbols for compile-time detection of which instructions are
+    // used.
+    // EIGEN_VECTORIZE_YY is defined if and only if the instruction set YY is used
+    #define EIGEN_VECTORIZE
+    #define EIGEN_VECTORIZE_SSE
+    #define EIGEN_VECTORIZE_SSE2
+
+    // Detect sse3/ssse3/sse4:
+    // gcc and icc defines __SSE3__, ...
+    // there is no way to know about this on msvc. You can define EIGEN_VECTORIZE_SSE* if you
+    // want to force the use of those instructions with msvc.
+    #ifdef __SSE3__
+      #define EIGEN_VECTORIZE_SSE3
+    #endif
+    #ifdef __SSSE3__
+      #define EIGEN_VECTORIZE_SSSE3
+    #endif
+    #ifdef __SSE4_1__
+      #define EIGEN_VECTORIZE_SSE4_1
+    #endif
+    #ifdef __SSE4_2__
+      #define EIGEN_VECTORIZE_SSE4_2
+    #endif
+
+    // include files
+
+    // This extern "C" works around a MINGW-w64 compilation issue
+    // https://sourceforge.net/tracker/index.php?func=detail&aid=3018394&group_id=202880&atid=983354
+    // In essence, intrin.h is included by windows.h and also declares intrinsics (just as emmintrin.h etc. below do).
+    // However, intrin.h uses an extern "C" declaration, and g++ thus complains of duplicate declarations
+    // with conflicting linkage.  The linkage for intrinsics doesn't matter, but at that stage the compiler doesn't know;
+    // so, to avoid compile errors when windows.h is included after Eigen/Core, ensure intrinsics are extern "C" here too.
+    // notice that since these are C headers, the extern "C" is theoretically needed anyways.
+    extern "C" {
+      // In theory we should only include immintrin.h and not the other *mmintrin.h header files directly.
+      // Doing so triggers some issues with ICC. However old gcc versions seems to not have this file, thus:
+      #if defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 1110
+        #include <immintrin.h>
+      #else
+        #include <emmintrin.h>
+        #include <xmmintrin.h>
+        #ifdef  EIGEN_VECTORIZE_SSE3
+        #include <pmmintrin.h>
+        #endif
+        #ifdef EIGEN_VECTORIZE_SSSE3
+        #include <tmmintrin.h>
+        #endif
+        #ifdef EIGEN_VECTORIZE_SSE4_1
+        #include <smmintrin.h>
+        #endif
+        #ifdef EIGEN_VECTORIZE_SSE4_2
+        #include <nmmintrin.h>
+        #endif
+      #endif
+    } // end extern "C"
+  #elif defined __ALTIVEC__
+    #define EIGEN_VECTORIZE
+    #define EIGEN_VECTORIZE_ALTIVEC
+    #include <altivec.h>
+    // We need to #undef all these ugly tokens defined in <altivec.h>
+    // => use __vector instead of vector
+    #undef bool
+    #undef vector
+    #undef pixel
+  #elif defined  __ARM_NEON
+    #define EIGEN_VECTORIZE
+    #define EIGEN_VECTORIZE_NEON
+    #include <arm_neon.h>
+  #endif
+#endif
+
+#if (defined _OPENMP) && (!defined EIGEN_DONT_PARALLELIZE)
+  #define EIGEN_HAS_OPENMP
+#endif
+
+#ifdef EIGEN_HAS_OPENMP
+#include <omp.h>
+#endif
+
+// MSVC for windows mobile does not have the errno.h file
+#if !(defined(_MSC_VER) && defined(_WIN32_WCE)) && !defined(__ARMCC_VERSION)
+#define EIGEN_HAS_ERRNO
+#endif
+
+#ifdef EIGEN_HAS_ERRNO
+#include <cerrno>
+#endif
+#include <cstddef>
+#include <cstdlib>
+#include <cmath>
+#include <cassert>
+#include <functional>
+#include <iosfwd>
+#include <cstring>
+#include <string>
+#include <limits>
+#include <climits> // for CHAR_BIT
+// for min/max:
+#include <algorithm>
+
+// for outputting debug info
+#ifdef EIGEN_DEBUG_ASSIGN
+#include <iostream>
+#endif
+
+// required for __cpuid, needs to be included after cmath
+#if defined(_MSC_VER) && (defined(_M_IX86)||defined(_M_X64)) && (!defined(_WIN32_WCE))
+  #include <intrin.h>
+#endif
+
+#if defined(_CPPUNWIND) || defined(__EXCEPTIONS)
+  #define EIGEN_EXCEPTIONS
+#endif
+
+#ifdef EIGEN_EXCEPTIONS
+  #include <new>
+#endif
+
+/** \brief Namespace containing all symbols from the %Eigen library. */
+namespace Eigen {
+
+inline static const char *SimdInstructionSetsInUse(void) {
+#if defined(EIGEN_VECTORIZE_SSE4_2)
+  return "SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2";
+#elif defined(EIGEN_VECTORIZE_SSE4_1)
+  return "SSE, SSE2, SSE3, SSSE3, SSE4.1";
+#elif defined(EIGEN_VECTORIZE_SSSE3)
+  return "SSE, SSE2, SSE3, SSSE3";
+#elif defined(EIGEN_VECTORIZE_SSE3)
+  return "SSE, SSE2, SSE3";
+#elif defined(EIGEN_VECTORIZE_SSE2)
+  return "SSE, SSE2";
+#elif defined(EIGEN_VECTORIZE_ALTIVEC)
+  return "AltiVec";
+#elif defined(EIGEN_VECTORIZE_NEON)
+  return "ARM NEON";
+#else
+  return "None";
+#endif
+}
+
+} // end namespace Eigen
+
+#define STAGE10_FULL_EIGEN2_API             10
+#define STAGE20_RESOLVE_API_CONFLICTS       20
+#define STAGE30_FULL_EIGEN3_API             30
+#define STAGE40_FULL_EIGEN3_STRICTNESS      40
+#define STAGE99_NO_EIGEN2_SUPPORT           99
+
+#if   defined EIGEN2_SUPPORT_STAGE40_FULL_EIGEN3_STRICTNESS
+  #define EIGEN2_SUPPORT
+  #define EIGEN2_SUPPORT_STAGE STAGE40_FULL_EIGEN3_STRICTNESS
+#elif defined EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API
+  #define EIGEN2_SUPPORT
+  #define EIGEN2_SUPPORT_STAGE STAGE30_FULL_EIGEN3_API
+#elif defined EIGEN2_SUPPORT_STAGE20_RESOLVE_API_CONFLICTS
+  #define EIGEN2_SUPPORT
+  #define EIGEN2_SUPPORT_STAGE STAGE20_RESOLVE_API_CONFLICTS
+#elif defined EIGEN2_SUPPORT_STAGE10_FULL_EIGEN2_API
+  #define EIGEN2_SUPPORT
+  #define EIGEN2_SUPPORT_STAGE STAGE10_FULL_EIGEN2_API
+#elif defined EIGEN2_SUPPORT
+  // default to stage 3, that's what it's always meant
+  #define EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API
+  #define EIGEN2_SUPPORT_STAGE STAGE30_FULL_EIGEN3_API
+#else
+  #define EIGEN2_SUPPORT_STAGE STAGE99_NO_EIGEN2_SUPPORT
+#endif
+
+#ifdef EIGEN2_SUPPORT
+#undef minor
+#endif
+
+// we use size_t frequently and we'll never remember to prepend it with std:: everytime just to
+// ensure QNX/QCC support
+using std::size_t;
+// gcc 4.6.0 wants std:: for ptrdiff_t 
+using std::ptrdiff_t;
+
+/** \defgroup Core_Module Core module
+  * This is the main module of Eigen providing dense matrix and vector support
+  * (both fixed and dynamic size) with all the features corresponding to a BLAS library
+  * and much more...
+  *
+  * \code
+  * #include <Eigen/Core>
+  * \endcode
+  */
+
+#include "src/Core/util/Constants.h"
+#include "src/Core/util/ForwardDeclarations.h"
+#include "src/Core/util/Meta.h"
+#include "src/Core/util/StaticAssert.h"
+#include "src/Core/util/XprHelper.h"
+#include "src/Core/util/Memory.h"
+
+#include "src/Core/NumTraits.h"
+#include "src/Core/MathFunctions.h"
+#include "src/Core/GenericPacketMath.h"
+
+#if defined EIGEN_VECTORIZE_SSE
+  #include "src/Core/arch/SSE/PacketMath.h"
+  #include "src/Core/arch/SSE/MathFunctions.h"
+  #include "src/Core/arch/SSE/Complex.h"
+#elif defined EIGEN_VECTORIZE_ALTIVEC
+  #include "src/Core/arch/AltiVec/PacketMath.h"
+  #include "src/Core/arch/AltiVec/Complex.h"
+#elif defined EIGEN_VECTORIZE_NEON
+  #include "src/Core/arch/NEON/PacketMath.h"
+  #include "src/Core/arch/NEON/Complex.h"
+#endif
+
+#include "src/Core/arch/Default/Settings.h"
+
+#include "src/Core/Functors.h"
+#include "src/Core/DenseCoeffsBase.h"
+#include "src/Core/DenseBase.h"
+#include "src/Core/MatrixBase.h"
+#include "src/Core/EigenBase.h"
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN // work around Doxygen bug triggered by Assign.h r814874
+                                // at least confirmed with Doxygen 1.5.5 and 1.5.6
+  #include "src/Core/Assign.h"
+#endif
+
+#include "src/Core/util/BlasUtil.h"
+#include "src/Core/DenseStorage.h"
+#include "src/Core/NestByValue.h"
+#include "src/Core/ForceAlignedAccess.h"
+#include "src/Core/ReturnByValue.h"
+#include "src/Core/NoAlias.h"
+#include "src/Core/PlainObjectBase.h"
+#include "src/Core/Matrix.h"
+#include "src/Core/Array.h"
+#include "src/Core/CwiseBinaryOp.h"
+#include "src/Core/CwiseUnaryOp.h"
+#include "src/Core/CwiseNullaryOp.h"
+#include "src/Core/CwiseUnaryView.h"
+#include "src/Core/SelfCwiseBinaryOp.h"
+#include "src/Core/Dot.h"
+#include "src/Core/StableNorm.h"
+#include "src/Core/MapBase.h"
+#include "src/Core/Stride.h"
+#include "src/Core/Map.h"
+#include "src/Core/Block.h"
+#include "src/Core/VectorBlock.h"
+#include "src/Core/Ref.h"
+#include "src/Core/Transpose.h"
+#include "src/Core/DiagonalMatrix.h"
+#include "src/Core/Diagonal.h"
+#include "src/Core/DiagonalProduct.h"
+#include "src/Core/PermutationMatrix.h"
+#include "src/Core/Transpositions.h"
+#include "src/Core/Redux.h"
+#include "src/Core/Visitor.h"
+#include "src/Core/Fuzzy.h"
+#include "src/Core/IO.h"
+#include "src/Core/Swap.h"
+#include "src/Core/CommaInitializer.h"
+#include "src/Core/Flagged.h"
+#include "src/Core/ProductBase.h"
+#include "src/Core/GeneralProduct.h"
+#include "src/Core/TriangularMatrix.h"
+#include "src/Core/SelfAdjointView.h"
+#include "src/Core/products/GeneralBlockPanelKernel.h"
+#include "src/Core/products/Parallelizer.h"
+#include "src/Core/products/CoeffBasedProduct.h"
+#include "src/Core/products/GeneralMatrixVector.h"
+#include "src/Core/products/GeneralMatrixMatrix.h"
+#include "src/Core/SolveTriangular.h"
+#include "src/Core/products/GeneralMatrixMatrixTriangular.h"
+#include "src/Core/products/SelfadjointMatrixVector.h"
+#include "src/Core/products/SelfadjointMatrixMatrix.h"
+#include "src/Core/products/SelfadjointProduct.h"
+#include "src/Core/products/SelfadjointRank2Update.h"
+#include "src/Core/products/TriangularMatrixVector.h"
+#include "src/Core/products/TriangularMatrixMatrix.h"
+#include "src/Core/products/TriangularSolverMatrix.h"
+#include "src/Core/products/TriangularSolverVector.h"
+#include "src/Core/BandMatrix.h"
+#include "src/Core/CoreIterators.h"
+
+#include "src/Core/BooleanRedux.h"
+#include "src/Core/Select.h"
+#include "src/Core/VectorwiseOp.h"
+#include "src/Core/Random.h"
+#include "src/Core/Replicate.h"
+#include "src/Core/Reverse.h"
+#include "src/Core/ArrayBase.h"
+#include "src/Core/ArrayWrapper.h"
+
+#ifdef EIGEN_USE_BLAS
+#include "src/Core/products/GeneralMatrixMatrix_MKL.h"
+#include "src/Core/products/GeneralMatrixVector_MKL.h"
+#include "src/Core/products/GeneralMatrixMatrixTriangular_MKL.h"
+#include "src/Core/products/SelfadjointMatrixMatrix_MKL.h"
+#include "src/Core/products/SelfadjointMatrixVector_MKL.h"
+#include "src/Core/products/TriangularMatrixMatrix_MKL.h"
+#include "src/Core/products/TriangularMatrixVector_MKL.h"
+#include "src/Core/products/TriangularSolverMatrix_MKL.h"
+#endif // EIGEN_USE_BLAS
+
+#ifdef EIGEN_USE_MKL_VML
+#include "src/Core/Assign_MKL.h"
+#endif
+
+#include "src/Core/GlobalFunctions.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#ifdef EIGEN2_SUPPORT
+#include "Eigen2Support"
+#endif
+
+#endif // EIGEN_CORE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Geometry
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Geometry	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Geometry	(revision 2476)
@@ -0,0 +1,63 @@
+#ifndef EIGEN_GEOMETRY_MODULE_H
+#define EIGEN_GEOMETRY_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include "SVD"
+#include "LU"
+#include <limits>
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+/** \defgroup Geometry_Module Geometry module
+  *
+  *
+  *
+  * This module provides support for:
+  *  - fixed-size homogeneous transformations
+  *  - translation, scaling, 2D and 3D rotations
+  *  - quaternions
+  *  - \ref MatrixBase::cross() "cross product"
+  *  - \ref MatrixBase::unitOrthogonal() "orthognal vector generation"
+  *  - some linear components: parametrized-lines and hyperplanes
+  *
+  * \code
+  * #include <Eigen/Geometry>
+  * \endcode
+  */
+
+#include "src/Geometry/OrthoMethods.h"
+#include "src/Geometry/EulerAngles.h"
+
+#if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
+  #include "src/Geometry/Homogeneous.h"
+  #include "src/Geometry/RotationBase.h"
+  #include "src/Geometry/Rotation2D.h"
+  #include "src/Geometry/Quaternion.h"
+  #include "src/Geometry/AngleAxis.h"
+  #include "src/Geometry/Transform.h"
+  #include "src/Geometry/Translation.h"
+  #include "src/Geometry/Scaling.h"
+  #include "src/Geometry/Hyperplane.h"
+  #include "src/Geometry/ParametrizedLine.h"
+  #include "src/Geometry/AlignedBox.h"
+  #include "src/Geometry/Umeyama.h"
+
+  #if defined EIGEN_VECTORIZE_SSE
+    #include "src/Geometry/arch/Geometry_SSE.h"
+  #endif
+#endif
+
+#ifdef EIGEN2_SUPPORT
+#include "src/Eigen2Support/Geometry/All.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_GEOMETRY_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/OrderingMethods
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/OrderingMethods	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/OrderingMethods	(revision 2476)
@@ -0,0 +1,66 @@
+#ifndef EIGEN_ORDERINGMETHODS_MODULE_H
+#define EIGEN_ORDERINGMETHODS_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** 
+  * \defgroup OrderingMethods_Module OrderingMethods module
+  *
+  * This module is currently for internal use only
+  * 
+  * It defines various built-in and external ordering methods for sparse matrices. 
+  * They are typically used to reduce the number of elements during 
+  * the sparse matrix decomposition (LLT, LU, QR).
+  * Precisely, in a preprocessing step, a permutation matrix P is computed using 
+  * those ordering methods and applied to the columns of the matrix. 
+  * Using for instance the sparse Cholesky decomposition, it is expected that 
+  * the nonzeros elements in LLT(A*P) will be much smaller than that in LLT(A).
+  * 
+  * 
+  * Usage : 
+  * \code
+  * #include <Eigen/OrderingMethods>
+  * \endcode
+  * 
+  * A simple usage is as a template parameter in the sparse decomposition classes : 
+  * 
+  * \code 
+  * SparseLU<MatrixType, COLAMDOrdering<int> > solver;
+  * \endcode 
+  * 
+  * \code 
+  * SparseQR<MatrixType, COLAMDOrdering<int> > solver;
+  * \endcode
+  * 
+  * It is possible as well to call directly a particular ordering method for your own purpose, 
+  * \code 
+  * AMDOrdering<int> ordering;
+  * PermutationMatrix<Dynamic, Dynamic, int> perm;
+  * SparseMatrix<double> A; 
+  * //Fill the matrix ...
+  * 
+  * ordering(A, perm); // Call AMD
+  * \endcode
+  * 
+  * \note Some of these methods (like AMD or METIS), need the sparsity pattern 
+  * of the input matrix to be symmetric. When the matrix is structurally unsymmetric, 
+  * Eigen computes internally the pattern of \f$A^T*A\f$ before calling the method.
+  * If your matrix is already symmetric (at leat in structure), you can avoid that
+  * by calling the method with a SelfAdjointView type.
+  * 
+  * \code
+  *  // Call the ordering on the pattern of the lower triangular matrix A
+  * ordering(A.selfadjointView<Lower>(), perm);
+  * \endcode
+  */
+
+#ifndef EIGEN_MPL2_ONLY
+#include "src/OrderingMethods/Amd.h"
+#endif
+
+#include "src/OrderingMethods/Ordering.h"
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_ORDERINGMETHODS_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/PardisoSupport
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/PardisoSupport	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/PardisoSupport	(revision 2476)
@@ -0,0 +1,30 @@
+#ifndef EIGEN_PARDISOSUPPORT_MODULE_H
+#define EIGEN_PARDISOSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include <mkl_pardiso.h>
+
+#include <unsupported/Eigen/SparseExtra>
+
+/** \ingroup Support_modules
+  * \defgroup PardisoSupport_Module PardisoSupport module
+  *
+  * This module brings support for the Intel(R) MKL PARDISO direct sparse solvers.
+  *
+  * \code
+  * #include <Eigen/PardisoSupport>
+  * \endcode
+  *
+  * In order to use this module, the MKL headers must be accessible from the include paths, and your binary must be linked to the MKL library and its dependencies.
+  * See this \ref TopicUsingIntelMKL "page" for more information on MKL-Eigen integration.
+  * 
+  */
+
+#include "src/PardisoSupport/PardisoSupport.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_PARDISOSUPPORT_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SparseLU
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SparseLU	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SparseLU	(revision 2476)
@@ -0,0 +1,49 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSELU_MODULE_H
+#define EIGEN_SPARSELU_MODULE_H
+
+#include "SparseCore"
+
+/** 
+  * \defgroup SparseLU_Module SparseLU module
+  * This module defines a supernodal factorization of general sparse matrices.
+  * The code is fully optimized for supernode-panel updates with specialized kernels.
+  * Please, see the documentation of the SparseLU class for more details.
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+
+// Ordering interface
+#include "OrderingMethods"
+
+#include "src/SparseLU/SparseLU_gemm_kernel.h"
+
+#include "src/SparseLU/SparseLU_Structs.h"
+#include "src/SparseLU/SparseLU_SupernodalMatrix.h"
+#include "src/SparseLU/SparseLUImpl.h"
+#include "src/SparseCore/SparseColEtree.h"
+#include "src/SparseLU/SparseLU_Memory.h"
+#include "src/SparseLU/SparseLU_heap_relax_snode.h"
+#include "src/SparseLU/SparseLU_relax_snode.h"
+#include "src/SparseLU/SparseLU_pivotL.h"
+#include "src/SparseLU/SparseLU_panel_dfs.h"
+#include "src/SparseLU/SparseLU_kernel_bmod.h"
+#include "src/SparseLU/SparseLU_panel_bmod.h"
+#include "src/SparseLU/SparseLU_column_dfs.h"
+#include "src/SparseLU/SparseLU_column_bmod.h"
+#include "src/SparseLU/SparseLU_copy_to_ucol.h"
+#include "src/SparseLU/SparseLU_pruneL.h"
+#include "src/SparseLU/SparseLU_Utils.h"
+#include "src/SparseLU/SparseLU.h"
+
+#endif // EIGEN_SPARSELU_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/QtAlignedMalloc
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/QtAlignedMalloc	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/QtAlignedMalloc	(revision 2476)
@@ -0,0 +1,34 @@
+
+#ifndef EIGEN_QTMALLOC_MODULE_H
+#define EIGEN_QTMALLOC_MODULE_H
+
+#include "Core"
+
+#if (!EIGEN_MALLOC_ALREADY_ALIGNED)
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+void *qMalloc(size_t size)
+{
+  return Eigen::internal::aligned_malloc(size);
+}
+
+void qFree(void *ptr)
+{
+  Eigen::internal::aligned_free(ptr);
+}
+
+void *qRealloc(void *ptr, size_t size)
+{
+  void* newPtr = Eigen::internal::aligned_malloc(size);
+  memcpy(newPtr, ptr, size);
+  Eigen::internal::aligned_free(ptr);
+  return newPtr;
+}
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif
+
+#endif // EIGEN_QTMALLOC_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/IterativeLinearSolvers
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/IterativeLinearSolvers	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/IterativeLinearSolvers	(revision 2476)
@@ -0,0 +1,40 @@
+#ifndef EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
+#define EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
+
+#include "SparseCore"
+#include "OrderingMethods"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** 
+  * \defgroup IterativeLinearSolvers_Module IterativeLinearSolvers module
+  *
+  * This module currently provides iterative methods to solve problems of the form \c A \c x = \c b, where \c A is a squared matrix, usually very large and sparse.
+  * Those solvers are accessible via the following classes:
+  *  - ConjugateGradient for selfadjoint (hermitian) matrices,
+  *  - BiCGSTAB for general square matrices.
+  *
+  * These iterative solvers are associated with some preconditioners:
+  *  - IdentityPreconditioner - not really useful
+  *  - DiagonalPreconditioner - also called JAcobi preconditioner, work very well on diagonal dominant matrices.
+  *  - IncompleteILUT - incomplete LU factorization with dual thresholding
+  *
+  * Such problems can also be solved using the direct sparse decomposition modules: SparseCholesky, CholmodSupport, UmfPackSupport, SuperLUSupport.
+  *
+  * \code
+  * #include <Eigen/IterativeLinearSolvers>
+  * \endcode
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+
+#include "src/IterativeLinearSolvers/IterativeSolverBase.h"
+#include "src/IterativeLinearSolvers/BasicPreconditioners.h"
+#include "src/IterativeLinearSolvers/ConjugateGradient.h"
+#include "src/IterativeLinearSolvers/BiCGSTAB.h"
+#include "src/IterativeLinearSolvers/IncompleteLUT.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SparseCore
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SparseCore	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SparseCore	(revision 2476)
@@ -0,0 +1,64 @@
+#ifndef EIGEN_SPARSECORE_MODULE_H
+#define EIGEN_SPARSECORE_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include <vector>
+#include <map>
+#include <cstdlib>
+#include <cstring>
+#include <algorithm>
+
+/** 
+  * \defgroup SparseCore_Module SparseCore module
+  *
+  * This module provides a sparse matrix representation, and basic associated matrix manipulations
+  * and operations.
+  *
+  * See the \ref TutorialSparse "Sparse tutorial"
+  *
+  * \code
+  * #include <Eigen/SparseCore>
+  * \endcode
+  *
+  * This module depends on: Core.
+  */
+
+namespace Eigen {
+
+/** The type used to identify a general sparse storage. */
+struct Sparse {};
+
+}
+
+#include "src/SparseCore/SparseUtil.h"
+#include "src/SparseCore/SparseMatrixBase.h"
+#include "src/SparseCore/CompressedStorage.h"
+#include "src/SparseCore/AmbiVector.h"
+#include "src/SparseCore/SparseMatrix.h"
+#include "src/SparseCore/MappedSparseMatrix.h"
+#include "src/SparseCore/SparseVector.h"
+#include "src/SparseCore/SparseBlock.h"
+#include "src/SparseCore/SparseTranspose.h"
+#include "src/SparseCore/SparseCwiseUnaryOp.h"
+#include "src/SparseCore/SparseCwiseBinaryOp.h"
+#include "src/SparseCore/SparseDot.h"
+#include "src/SparseCore/SparsePermutation.h"
+#include "src/SparseCore/SparseRedux.h"
+#include "src/SparseCore/SparseFuzzy.h"
+#include "src/SparseCore/ConservativeSparseSparseProduct.h"
+#include "src/SparseCore/SparseSparseProductWithPruning.h"
+#include "src/SparseCore/SparseProduct.h"
+#include "src/SparseCore/SparseDenseProduct.h"
+#include "src/SparseCore/SparseDiagonalProduct.h"
+#include "src/SparseCore/SparseTriangularView.h"
+#include "src/SparseCore/SparseSelfAdjointView.h"
+#include "src/SparseCore/TriangularSolver.h"
+#include "src/SparseCore/SparseView.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_SPARSECORE_MODULE_H
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Eigenvalues
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Eigenvalues	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Eigenvalues	(revision 2476)
@@ -0,0 +1,48 @@
+#ifndef EIGEN_EIGENVALUES_MODULE_H
+#define EIGEN_EIGENVALUES_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include "Cholesky"
+#include "Jacobi"
+#include "Householder"
+#include "LU"
+#include "Geometry"
+
+/** \defgroup Eigenvalues_Module Eigenvalues module
+  *
+  *
+  *
+  * This module mainly provides various eigenvalue solvers.
+  * This module also provides some MatrixBase methods, including:
+  *  - MatrixBase::eigenvalues(),
+  *  - MatrixBase::operatorNorm()
+  *
+  * \code
+  * #include <Eigen/Eigenvalues>
+  * \endcode
+  */
+
+#include "src/Eigenvalues/Tridiagonalization.h"
+#include "src/Eigenvalues/RealSchur.h"
+#include "src/Eigenvalues/EigenSolver.h"
+#include "src/Eigenvalues/SelfAdjointEigenSolver.h"
+#include "src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h"
+#include "src/Eigenvalues/HessenbergDecomposition.h"
+#include "src/Eigenvalues/ComplexSchur.h"
+#include "src/Eigenvalues/ComplexEigenSolver.h"
+#include "src/Eigenvalues/RealQZ.h"
+#include "src/Eigenvalues/GeneralizedEigenSolver.h"
+#include "src/Eigenvalues/MatrixBaseEigenvalues.h"
+#ifdef EIGEN_USE_LAPACKE
+#include "src/Eigenvalues/RealSchur_MKL.h"
+#include "src/Eigenvalues/ComplexSchur_MKL.h"
+#include "src/Eigenvalues/SelfAdjointEigenSolver_MKL.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_EIGENVALUES_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/StdVector
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/StdVector	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/StdVector	(revision 2476)
@@ -0,0 +1,27 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDVECTOR_MODULE_H
+#define EIGEN_STDVECTOR_MODULE_H
+
+#include "Core"
+#include <vector>
+
+#if (defined(_MSC_VER) && defined(_WIN64)) /* MSVC auto aligns in 64 bit builds */
+
+#define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(...)
+
+#else
+
+#include "src/StlSupport/StdVector.h"
+
+#endif
+
+#endif // EIGEN_STDVECTOR_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/StdDeque
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/StdDeque	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/StdDeque	(revision 2476)
@@ -0,0 +1,27 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDDEQUE_MODULE_H
+#define EIGEN_STDDEQUE_MODULE_H
+
+#include "Core"
+#include <deque>
+
+#if (defined(_MSC_VER) && defined(_WIN64)) /* MSVC auto aligns in 64 bit builds */
+
+#define EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(...)
+
+#else
+
+#include "src/StlSupport/StdDeque.h"
+
+#endif
+
+#endif // EIGEN_STDDEQUE_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Array
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Array	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Array	(revision 2476)
@@ -0,0 +1,11 @@
+#ifndef EIGEN_ARRAY_MODULE_H
+#define EIGEN_ARRAY_MODULE_H
+
+// include Core first to handle Eigen2 support macros
+#include "Core"
+
+#ifndef EIGEN2_SUPPORT
+  #error The Eigen/Array header does no longer exist in Eigen3. All that functionality has moved to Eigen/Core.
+#endif
+
+#endif // EIGEN_ARRAY_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Cholesky
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Cholesky	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Cholesky	(revision 2476)
@@ -0,0 +1,32 @@
+#ifndef EIGEN_CHOLESKY_MODULE_H
+#define EIGEN_CHOLESKY_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup Cholesky_Module Cholesky module
+  *
+  *
+  *
+  * This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices.
+  * Those decompositions are accessible via the following MatrixBase methods:
+  *  - MatrixBase::llt(),
+  *  - MatrixBase::ldlt()
+  *
+  * \code
+  * #include <Eigen/Cholesky>
+  * \endcode
+  */
+
+#include "src/misc/Solve.h"
+#include "src/Cholesky/LLT.h"
+#include "src/Cholesky/LDLT.h"
+#ifdef EIGEN_USE_LAPACKE
+#include "src/Cholesky/LLT_MKL.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_CHOLESKY_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Householder
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Householder	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Householder	(revision 2476)
@@ -0,0 +1,23 @@
+#ifndef EIGEN_HOUSEHOLDER_MODULE_H
+#define EIGEN_HOUSEHOLDER_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup Householder_Module Householder module
+  * This module provides Householder transformations.
+  *
+  * \code
+  * #include <Eigen/Householder>
+  * \endcode
+  */
+
+#include "src/Householder/Householder.h"
+#include "src/Householder/HouseholderSequence.h"
+#include "src/Householder/BlockHouseholder.h"
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_HOUSEHOLDER_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/QR
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/QR	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/QR	(revision 2476)
@@ -0,0 +1,45 @@
+#ifndef EIGEN_QR_MODULE_H
+#define EIGEN_QR_MODULE_H
+
+#include "Core"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include "Cholesky"
+#include "Jacobi"
+#include "Householder"
+
+/** \defgroup QR_Module QR module
+  *
+  *
+  *
+  * This module provides various QR decompositions
+  * This module also provides some MatrixBase methods, including:
+  *  - MatrixBase::qr(),
+  *
+  * \code
+  * #include <Eigen/QR>
+  * \endcode
+  */
+
+#include "src/misc/Solve.h"
+#include "src/QR/HouseholderQR.h"
+#include "src/QR/FullPivHouseholderQR.h"
+#include "src/QR/ColPivHouseholderQR.h"
+#ifdef EIGEN_USE_LAPACKE
+#include "src/QR/HouseholderQR_MKL.h"
+#include "src/QR/ColPivHouseholderQR_MKL.h"
+#endif
+
+#ifdef EIGEN2_SUPPORT
+#include "src/Eigen2Support/QR.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#ifdef EIGEN2_SUPPORT
+#include "Eigenvalues"
+#endif
+
+#endif // EIGEN_QR_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SPQRSupport
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SPQRSupport	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SPQRSupport	(revision 2476)
@@ -0,0 +1,29 @@
+#ifndef EIGEN_SPQRSUPPORT_MODULE_H
+#define EIGEN_SPQRSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#include "SuiteSparseQR.hpp"
+
+/** \ingroup Support_modules
+  * \defgroup SPQRSupport_Module SuiteSparseQR module
+  * 
+  * This module provides an interface to the SPQR library, which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
+  *
+  * \code
+  * #include <Eigen/SPQRSupport>
+  * \endcode
+  *
+  * In order to use this module, the SPQR headers must be accessible from the include paths, and your binary must be linked to the SPQR library and its dependencies (Cholmod, AMD, COLAMD,...).
+  * For a cmake based project, you can use our FindSPQR.cmake and FindCholmod.Cmake modules
+  *
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+#include "src/CholmodSupport/CholmodSupport.h"
+#include "src/SPQRSupport/SuiteSparseQRSupport.h"
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/CholmodSupport
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/CholmodSupport	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/CholmodSupport	(revision 2476)
@@ -0,0 +1,45 @@
+#ifndef EIGEN_CHOLMODSUPPORT_MODULE_H
+#define EIGEN_CHOLMODSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+extern "C" {
+  #include <RcppEigenCholmod.h>
+}
+
+/** \ingroup Support_modules
+  * \defgroup CholmodSupport_Module CholmodSupport module
+  *
+  * This module provides an interface to the Cholmod library which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
+  * It provides the two following main factorization classes:
+  * - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization.
+  * - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial).
+  *
+  * For the sake of completeness, this module also propose the two following classes:
+  * - class CholmodSimplicialLLT
+  * - class CholmodSimplicialLDLT
+  * Note that these classes does not bring any particular advantage compared to the built-in
+  * SimplicialLLT and SimplicialLDLT factorization classes.
+  *
+  * \code
+  * #include <Eigen/CholmodSupport>
+  * \endcode
+  *
+  * In order to use this module, the cholmod headers must be accessible from the include paths, and your binary must be linked to the cholmod library and its dependencies.
+  * The dependencies depend on how cholmod has been compiled.
+  * For a cmake based project, you can use our FindCholmod.cmake module to help you in this task.
+  *
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+
+#include "src/CholmodSupport/CholmodSupport.h"
+
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_CHOLMODSUPPORT_MODULE_H
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/StdList
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/StdList	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/StdList	(revision 2476)
@@ -0,0 +1,26 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STDLIST_MODULE_H
+#define EIGEN_STDLIST_MODULE_H
+
+#include "Core"
+#include <list>
+
+#if (defined(_MSC_VER) && defined(_WIN64)) /* MSVC auto aligns in 64 bit builds */    
+
+#define EIGEN_DEFINE_STL_LIST_SPECIALIZATION(...)
+
+#else
+
+#include "src/StlSupport/StdList.h"
+
+#endif
+
+#endif // EIGEN_STDLIST_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Eigen
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Eigen	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Eigen	(revision 2476)
@@ -0,0 +1,2 @@
+#include "Dense"
+//#include "Sparse"
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SVD
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SVD	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SVD	(revision 2476)
@@ -0,0 +1,37 @@
+#ifndef EIGEN_SVD_MODULE_H
+#define EIGEN_SVD_MODULE_H
+
+#include "QR"
+#include "Householder"
+#include "Jacobi"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** \defgroup SVD_Module SVD module
+  *
+  *
+  *
+  * This module provides SVD decomposition for matrices (both real and complex).
+  * This decomposition is accessible via the following MatrixBase method:
+  *  - MatrixBase::jacobiSvd()
+  *
+  * \code
+  * #include <Eigen/SVD>
+  * \endcode
+  */
+
+#include "src/misc/Solve.h"
+#include "src/SVD/JacobiSVD.h"
+#if defined(EIGEN_USE_LAPACKE) && !defined(EIGEN_USE_LAPACKE_STRICT)
+#include "src/SVD/JacobiSVD_MKL.h"
+#endif
+#include "src/SVD/UpperBidiagonalization.h"
+
+#ifdef EIGEN2_SUPPORT
+#include "src/Eigen2Support/SVD.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_SVD_MODULE_H
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SuperLUSupport
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SuperLUSupport	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SuperLUSupport	(revision 2476)
@@ -0,0 +1,59 @@
+#ifndef EIGEN_SUPERLUSUPPORT_MODULE_H
+#define EIGEN_SUPERLUSUPPORT_MODULE_H
+
+#include "SparseCore"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+#ifdef EMPTY
+#define EIGEN_EMPTY_WAS_ALREADY_DEFINED
+#endif
+
+typedef int int_t;
+#include <slu_Cnames.h>
+#include <supermatrix.h>
+#include <slu_util.h>
+
+// slu_util.h defines a preprocessor token named EMPTY which is really polluting,
+// so we remove it in favor of a SUPERLU_EMPTY token.
+// If EMPTY was already defined then we don't undef it.
+
+#if defined(EIGEN_EMPTY_WAS_ALREADY_DEFINED)
+# undef EIGEN_EMPTY_WAS_ALREADY_DEFINED
+#elif defined(EMPTY)
+# undef EMPTY
+#endif
+
+#define SUPERLU_EMPTY (-1)
+
+namespace Eigen { struct SluMatrix; }
+
+/** \ingroup Support_modules
+  * \defgroup SuperLUSupport_Module SuperLUSupport module
+  *
+  * This module provides an interface to the <a href="http://crd-legacy.lbl.gov/~xiaoye/SuperLU/">SuperLU</a> library.
+  * It provides the following factorization class:
+  * - class SuperLU: a supernodal sequential LU factorization.
+  * - class SuperILU: a supernodal sequential incomplete LU factorization (to be used as a preconditioner for iterative methods).
+  *
+  * \warning When including this module, you have to use SUPERLU_EMPTY instead of EMPTY which is no longer defined because it is too polluting.
+  *
+  * \code
+  * #include <Eigen/SuperLUSupport>
+  * \endcode
+  *
+  * In order to use this module, the superlu headers must be accessible from the include paths, and your binary must be linked to the superlu library and its dependencies.
+  * The dependencies depend on how superlu has been compiled.
+  * For a cmake based project, you can use our FindSuperLU.cmake module to help you in this task.
+  *
+  */
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+
+#include "src/SuperLUSupport/SuperLUSupport.h"
+
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_SUPERLUSUPPORT_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Sparse
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Sparse	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Sparse	(revision 2476)
@@ -0,0 +1,27 @@
+#ifndef EIGEN_SPARSE_MODULE_H
+#define EIGEN_SPARSE_MODULE_H
+
+/** \defgroup Sparse_Module Sparse meta-module
+  *
+  * Meta-module including all related modules:
+  * - \ref SparseCore_Module
+  * - \ref OrderingMethods_Module
+  * - \ref SparseCholesky_Module
+  * - \ref SparseLU_Module
+  * - \ref SparseQR_Module
+  * - \ref IterativeLinearSolvers_Module
+  *
+  * \code
+  * #include <Eigen/Sparse>
+  * \endcode
+  */
+
+#include "SparseCore"
+#include "OrderingMethods"
+#include "SparseCholesky"
+#include "SparseLU"
+#include "SparseQR"
+#include "IterativeLinearSolvers"
+
+#endif // EIGEN_SPARSE_MODULE_H
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Dense
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Dense	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/Dense	(revision 2476)
@@ -0,0 +1,7 @@
+#include "Core"
+#include "LU"
+#include "Cholesky"
+#include "QR"
+#include "SVD"
+#include "Geometry"
+#include "Eigenvalues"
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SparseCholesky
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SparseCholesky	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/Eigen/SparseCholesky	(revision 2476)
@@ -0,0 +1,47 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2013 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSECHOLESKY_MODULE_H
+#define EIGEN_SPARSECHOLESKY_MODULE_H
+
+#include "SparseCore"
+#include "OrderingMethods"
+
+#include "src/Core/util/DisableStupidWarnings.h"
+
+/** 
+  * \defgroup SparseCholesky_Module SparseCholesky module
+  *
+  * This module currently provides two variants of the direct sparse Cholesky decomposition for selfadjoint (hermitian) matrices.
+  * Those decompositions are accessible via the following classes:
+  *  - SimplicialLLt,
+  *  - SimplicialLDLt
+  *
+  * Such problems can also be solved using the ConjugateGradient solver from the IterativeLinearSolvers module.
+  *
+  * \code
+  * #include <Eigen/SparseCholesky>
+  * \endcode
+  */
+
+#ifdef EIGEN_MPL2_ONLY
+#error The SparseCholesky module has nothing to offer in MPL2 only mode
+#endif
+
+#include "src/misc/Solve.h"
+#include "src/misc/SparseSolve.h"
+#include "src/SparseCholesky/SimplicialCholesky.h"
+
+#ifndef EIGEN_MPL2_ONLY
+#include "src/SparseCholesky/SimplicialCholesky_impl.h"
+#endif
+
+#include "src/Core/util/ReenableStupidWarnings.h"
+
+#endif // EIGEN_SPARSECHOLESKY_MODULE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigenForward.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigenForward.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigenForward.h	(revision 2476)
@@ -0,0 +1,72 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// RcppEigenForward.h: Rcpp/Eigen glue
+//
+// Copyright (C)      2011 Douglas Bates, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of RcppEigen.
+//
+// RcppEigen is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// RcppEigen is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with RcppEigen.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RcppEigen__RcppEigenForward__h
+#define RcppEigen__RcppEigenForward__h
+
+#include <iterator>
+#include <RcppCommon.h>
+#include <Rconfig.h>
+#include <RcppEigenCholmod.h>
+#include <RcppEigenStubs.h>
+#include <Eigen/Dense>
+#include <Eigen/Sparse>
+#include <Eigen/CholmodSupport>
+//#include <unsupported/Eigen/AutoDiff>  // causes problems redefining sign
+#include <unsupported/Eigen/IterativeSolvers>
+#include <unsupported/Eigen/KroneckerProduct>
+#include <unsupported/Eigen/MatrixFunctions>
+#include <unsupported/Eigen/NonLinearOptimization>
+#include <unsupported/Eigen/NumericalDiff>
+#include <unsupported/Eigen/Polynomials>
+#include <unsupported/Eigen/SparseExtra> // also includes Eigen/Sparse
+#include <unsupported/Eigen/Splines>
+
+/* forward declarations */
+namespace Rcpp {
+    /* support for wrap */
+   
+    template<typename T>
+    SEXP wrap(const Eigen::CholmodDecomposition<Eigen::SparseMatrix<T> >& obj);
+
+    namespace traits {
+
+	/* support for as */
+	template<typename T> class Exporter< Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, 1> > >;
+	template<typename T> class Exporter< Eigen::Map<Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> > >;
+	template<typename T> class Exporter< Eigen::Map<Eigen::Array<T, Eigen::Dynamic, 1> > >;
+	template<typename T> class Exporter< Eigen::Map<Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic> > >;
+	template<typename T> class Exporter< Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic> >;
+	template<typename T> class Exporter< Eigen::Matrix<T, Eigen::Dynamic, 1> >;
+	template<typename T> class Exporter< Eigen::Matrix<T, 1, Eigen::Dynamic> >;
+	template<typename T> class Exporter< Eigen::Array<T, Eigen::Dynamic, Eigen::Dynamic> >;
+	template<typename T> class Exporter< Eigen::Array<T, Eigen::Dynamic, 1> >;
+	template<typename T> class Exporter< Eigen::Array<T, 1, Eigen::Dynamic> >;
+	template<typename T> class Exporter< Eigen::MappedSparseMatrix<T> >;
+	template<typename T> class Exporter< Eigen::SparseMatrix<T> >;
+	template<typename T> class Exporter< Eigen::MappedSparseMatrix<T, Eigen::RowMajor> >;
+	template<typename T> class Exporter< Eigen::SparseMatrix<T, Eigen::RowMajor> >;
+
+    } // namespace traits 
+
+}
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigenCholmod.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigenCholmod.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/RcppEigenCholmod.h	(revision 2476)
@@ -0,0 +1,1068 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*-
+//
+// cholmod.h: selected headers from Tim Davis's CHOLMOD package
+//
+// Copyright (C)      2011 Douglas Bates, Martin Maechler, Dirk Eddelbuettel and Romain Francois
+//
+// This file is part of RcppEigen.
+//
+// RcppEigen is free software: you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 2 of the License, or
+// (at your option) any later version.
+//
+// RcppEigen is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with RcppEigen.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef RcppEigen_CHOLMOD_H
+#define RcppEigen_CHOLMOD_H
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+// from Matrix/src/SuiteSparse_config/SuiteSparse_config.h - line 51 :
+#ifndef SuiteSparse_long
+
+#ifdef _WIN64
+
+#define SuiteSparse_long __int64
+#define SuiteSparse_long_max _I64_MAX
+#define SuiteSparse_long_idd "I64d"
+
+#else
+
+#define SuiteSparse_long long
+#define SuiteSparse_long_max LONG_MAX
+#define SuiteSparse_long_idd "ld"
+
+#endif
+#define SuiteSparse_long_id "%" SuiteSparse_long_idd
+#endif
+
+/* For backward compatibility with prior versions of SuiteSparse.  The UF_*
+ * macros are deprecated and will be removed in a future version. */
+#ifndef UF_long
+#define UF_long     SuiteSparse_long
+#define UF_long_max SuiteSparse_long_max
+#define UF_long_idd SuiteSparse_long_idd
+#define UF_long_id  SuiteSparse_long_id
+#endif
+
+#define CHOLMOD_HAS_VERSION_FUNCTION
+
+#define CHOLMOD_DATE "April 25, 2013"
+#define CHOLMOD_VER_CODE(main,sub) ((main) * 1000 + (sub))
+#define CHOLMOD_MAIN_VERSION 2
+#define CHOLMOD_SUB_VERSION 1
+#define CHOLMOD_SUBSUB_VERSION 2
+#define CHOLMOD_VERSION \
+    CHOLMOD_VER_CODE(CHOLMOD_MAIN_VERSION,CHOLMOD_SUB_VERSION)
+// from ../../src/CHOLMOD/Include/cholmod_core.h - line 275 :
+/* Each CHOLMOD object has its own type code. */
+
+#define CHOLMOD_COMMON 0
+#define CHOLMOD_SPARSE 1
+#define CHOLMOD_FACTOR 2
+#define CHOLMOD_DENSE 3
+#define CHOLMOD_TRIPLET 4
+
+/* ========================================================================== */
+/* === CHOLMOD Common ======================================================= */
+/* ========================================================================== */
+
+/* itype defines the types of integer used: */
+#define CHOLMOD_INT 0		/* all integer arrays are int */
+#define CHOLMOD_INTLONG 1	/* most are int, some are SuiteSparse_long */
+#define CHOLMOD_LONG 2		/* all integer arrays are SuiteSparse_long */
+
+/* The itype of all parameters for all CHOLMOD routines must match.
+ * FUTURE WORK: CHOLMOD_INTLONG is not yet supported.
+ */
+
+/* dtype defines what the numerical type is (double or float): */
+#define CHOLMOD_DOUBLE 0	/* all numerical values are double */
+#define CHOLMOD_SINGLE 1	/* all numerical values are float */
+
+/* The dtype of all parameters for all CHOLMOD routines must match.
+ *
+ * Scalar floating-point values are always passed as double arrays of size 2
+ * (for the real and imaginary parts).  They are typecast to float as needed.
+ * FUTURE WORK: the float case is not supported yet.
+ */
+
+/* xtype defines the kind of numerical values used: */
+#define CHOLMOD_PATTERN 0	/* pattern only, no numerical values */
+#define CHOLMOD_REAL 1		/* a real matrix */
+#define CHOLMOD_COMPLEX 2	/* a complex matrix (ANSI C99 compatible) */
+#define CHOLMOD_ZOMPLEX 3	/* a complex matrix (MATLAB compatible) */
+
+/* Definitions for cholmod_common: */
+#define CHOLMOD_MAXMETHODS 9	/* maximum number of different methods that */
+				/* cholmod_analyze can try. Must be >= 9. */
+
+/* Common->status values.  zero means success, negative means a fatal error,
+ * positive is a warning. */
+#define CHOLMOD_OK 0			/* success */
+#define CHOLMOD_NOT_INSTALLED (-1)	/* failure: method not installed */
+#define CHOLMOD_OUT_OF_MEMORY (-2)	/* failure: out of memory */
+#define CHOLMOD_TOO_LARGE (-3)		/* failure: integer overflow occured */
+#define CHOLMOD_INVALID (-4)		/* failure: invalid input */
+#define CHOLMOD_GPU_PROBLEM (-5)        /* failure: GPU fatal error */
+#define CHOLMOD_NOT_POSDEF (1)		/* warning: matrix not pos. def. */
+#define CHOLMOD_DSMALL (2)		/* warning: D for LDL'  or diag(L) or */
+					/* LL' has tiny absolute value */
+
+/* ordering method (also used for L->ordering) */
+#define CHOLMOD_NATURAL 0	/* use natural ordering */
+#define CHOLMOD_GIVEN 1		/* use given permutation */
+#define CHOLMOD_AMD 2		/* use minimum degree (AMD) */
+#define CHOLMOD_METIS 3		/* use METIS' nested dissection */
+#define CHOLMOD_NESDIS 4	/* use CHOLMOD's version of nested dissection:*/
+				/* node bisector applied recursively, followed
+				 * by constrained minimum degree (CSYMAMD or
+				 * CCOLAMD) */
+#define CHOLMOD_COLAMD 5	/* use AMD for A, COLAMD for A*A' */
+
+/* POSTORDERED is not a method, but a result of natural ordering followed by a
+ * weighted postorder.  It is used for L->ordering, not method [ ].ordering. */
+#define CHOLMOD_POSTORDERED 6	/* natural ordering, postordered. */
+
+/* supernodal strategy (for Common->supernodal) */
+#define CHOLMOD_SIMPLICIAL 0	/* always do simplicial */
+#define CHOLMOD_AUTO 1		/* select simpl/super depending on matrix */
+#define CHOLMOD_SUPERNODAL 2	/* always do supernodal */
+
+typedef struct cholmod_common_struct
+{
+    /* ---------------------------------------------------------------------- */
+    /* parameters for symbolic/numeric factorization and update/downdate */
+    /* ---------------------------------------------------------------------- */
+
+    double dbound ;	/* Smallest absolute value of diagonal entries of D
+			 * for LDL' factorization and update/downdate/rowadd/
+	* rowdel, or the diagonal of L for an LL' factorization.
+	* Entries in the range 0 to dbound are replaced with dbound.
+	* Entries in the range -dbound to 0 are replaced with -dbound.  No
+	* changes are made to the diagonal if dbound <= 0.  Default: zero */
+
+    double grow0 ;	/* For a simplicial factorization, L->i and L->x can
+			 * grow if necessary.  grow0 is the factor by which
+	* it grows.  For the initial space, L is of size MAX (1,grow0) times
+	* the required space.  If L runs out of space, the new size of L is
+	* MAX(1.2,grow0) times the new required space.   If you do not plan on
+	* modifying the LDL' factorization in the Modify module, set grow0 to
+	* zero (or set grow2 to 0, see below).  Default: 1.2 */
+
+    double grow1 ;
+
+    size_t grow2 ;	/* For a simplicial factorization, each column j of L
+			 * is initialized with space equal to
+	* grow1*L->ColCount[j] + grow2.  If grow0 < 1, grow1 < 1, or grow2 == 0,
+	* then the space allocated is exactly equal to L->ColCount[j].  If the
+	* column j runs out of space, it increases to grow1*need + grow2 in
+	* size, where need is the total # of nonzeros in that column.  If you do
+	* not plan on modifying the factorization in the Modify module, set
+	* grow2 to zero.  Default: grow1 = 1.2, grow2 = 5. */
+
+    size_t maxrank ;	/* rank of maximum update/downdate.  Valid values:
+			 * 2, 4, or 8.  A value < 2 is set to 2, and a
+	* value > 8 is set to 8.  It is then rounded up to the next highest
+	* power of 2, if not already a power of 2.  Workspace (Xwork, below) of
+	* size nrow-by-maxrank double's is allocated for the update/downdate.
+	* If an update/downdate of rank-k is requested, with k > maxrank,
+	* it is done in steps of maxrank.  Default: 8, which is fastest.
+	* Memory usage can be reduced by setting maxrank to 2 or 4.
+	*/
+
+    double supernodal_switch ;	/* supernodal vs simplicial factorization */
+    int supernodal ;		/* If Common->supernodal <= CHOLMOD_SIMPLICIAL
+				 * (0) then cholmod_analyze performs a
+	* simplicial analysis.  If >= CHOLMOD_SUPERNODAL (2), then a supernodal
+	* analysis is performed.  If == CHOLMOD_AUTO (1) and
+	* flop/nnz(L) < Common->supernodal_switch, then a simplicial analysis
+	* is done.  A supernodal analysis done otherwise.
+	* Default:  CHOLMOD_AUTO.  Default supernodal_switch = 40 */
+
+    int final_asis ;	/* If TRUE, then ignore the other final_* parameters
+			 * (except for final_pack).
+			 * The factor is left as-is when done.  Default: TRUE.*/
+
+    int final_super ;	/* If TRUE, leave a factor in supernodal form when
+			 * supernodal factorization is finished.  If FALSE,
+			 * then convert to a simplicial factor when done.
+			 * Default: TRUE */
+
+    int final_ll ;	/* If TRUE, leave factor in LL' form when done.
+			 * Otherwise, leave in LDL' form.  Default: FALSE */
+
+    int final_pack ;	/* If TRUE, pack the columns when done.  If TRUE, and
+			 * cholmod_factorize is called with a symbolic L, L is
+	* allocated with exactly the space required, using L->ColCount.  If you
+	* plan on modifying the factorization, set Common->final_pack to FALSE,
+	* and each column will be given a little extra slack space for future
+	* growth in fill-in due to updates.  Default: TRUE */
+
+    int final_monotonic ;   /* If TRUE, ensure columns are monotonic when done.
+			 * Default: TRUE */
+
+    int final_resymbol ;/* if cholmod_factorize performed a supernodal
+			 * factorization, final_resymbol is true, and
+	* final_super is FALSE (convert a simplicial numeric factorization),
+	* then numerically zero entries that resulted from relaxed supernodal
+	* amalgamation are removed.  This does not remove entries that are zero
+	* due to exact numeric cancellation, since doing so would break the
+	* update/downdate rowadd/rowdel routines.  Default: FALSE. */
+
+    /* supernodal relaxed amalgamation parameters: */
+    double zrelax [3] ;
+    size_t nrelax [3] ;
+
+	/* Let ns be the total number of columns in two adjacent supernodes.
+	 * Let z be the fraction of zero entries in the two supernodes if they
+	 * are merged (z includes zero entries from prior amalgamations).  The
+	 * two supernodes are merged if:
+	 *    (ns <= nrelax [0]) || (no new zero entries added) ||
+	 *    (ns <= nrelax [1] && z < zrelax [0]) ||
+	 *    (ns <= nrelax [2] && z < zrelax [1]) || (z < zrelax [2])
+	 *
+	 * Default parameters result in the following rule:
+	 *    (ns <= 4) || (no new zero entries added) ||
+	 *    (ns <= 16 && z < 0.8) || (ns <= 48 && z < 0.1) || (z < 0.05)
+	 */
+
+    int prefer_zomplex ;    /* X = cholmod_solve (sys, L, B, Common) computes
+			     * x=A\b or solves a related system.  If L and B are
+	 * both real, then X is real.  Otherwise, X is returned as
+	 * CHOLMOD_COMPLEX if Common->prefer_zomplex is FALSE, or
+	 * CHOLMOD_ZOMPLEX if Common->prefer_zomplex is TRUE.  This parameter
+	 * is needed because there is no supernodal zomplex L.  Suppose the
+	 * caller wants all complex matrices to be stored in zomplex form
+	 * (MATLAB, for example).  A supernodal L is returned in complex form
+	 * if A is zomplex.  B can be real, and thus X = cholmod_solve (L,B)
+	 * should return X as zomplex.  This cannot be inferred from the input
+	 * arguments L and B.  Default: FALSE, since all data types are
+	 * supported in CHOLMOD_COMPLEX form and since this is the native type
+	 * of LAPACK and the BLAS.  Note that the MATLAB/cholmod.c mexFunction
+	 * sets this parameter to TRUE, since MATLAB matrices are in
+	 * CHOLMOD_ZOMPLEX form.
+	 */
+
+    int prefer_upper ;	    /* cholmod_analyze and cholmod_factorize work
+			     * fastest when a symmetric matrix is stored in
+	 * upper triangular form when a fill-reducing ordering is used.  In
+	 * MATLAB, this corresponds to how x=A\b works.  When the matrix is
+	 * ordered as-is, they work fastest when a symmetric matrix is in lower
+	 * triangular form.  In MATLAB, R=chol(A) does the opposite.  This
+	 * parameter affects only how cholmod_read returns a symmetric matrix.
+	 * If TRUE (the default case), a symmetric matrix is always returned in
+	 * upper-triangular form (A->stype = 1).  */
+
+    int quick_return_if_not_posdef ;	/* if TRUE, the supernodal numeric
+					 * factorization will return quickly if
+	* the matrix is not positive definite.  Default: FALSE. */
+
+    /* ---------------------------------------------------------------------- */
+    /* printing and error handling options */
+    /* ---------------------------------------------------------------------- */
+
+    int print ;		/* print level. Default: 3 */
+    int precise ;	/* if TRUE, print 16 digits.  Otherwise print 5 */
+    int (*print_function) (const char *, ...) ;	/* pointer to printf */
+
+    int try_catch ;	/* if TRUE, then ignore errors; CHOLMOD is in the middle
+			 * of a try/catch block.  No error message is printed
+	 * and the Common->error_handler function is not called. */
+
+    void (*error_handler) (int status, const char *file,
+        int line, const char *message) ;
+
+	/* Common->error_handler is the user's error handling routine.  If not
+	 * NULL, this routine is called if an error occurs in CHOLMOD.  status
+	 * can be CHOLMOD_OK (0), negative for a fatal error, and positive for
+	 * a warning. file is a string containing the name of the source code
+	 * file where the error occured, and line is the line number in that
+	 * file.  message is a string describing the error in more detail. */
+
+    /* ---------------------------------------------------------------------- */
+    /* ordering options */
+    /* ---------------------------------------------------------------------- */
+
+    /* The cholmod_analyze routine can try many different orderings and select
+     * the best one.  It can also try one ordering method multiple times, with
+     * different parameter settings.  The default is to use three orderings,
+     * the user's permutation (if provided), AMD which is the fastest ordering
+     * and generally gives good fill-in, and METIS.  CHOLMOD's nested dissection
+     * (METIS with a constrained AMD) usually gives a better ordering than METIS
+     * alone (by about 5% to 10%) but it takes more time.
+     *
+     * If you know the method that is best for your matrix, set Common->nmethods
+     * to 1 and set Common->method [0] to the set of parameters for that method.
+     * If you set it to 1 and do not provide a permutation, then only AMD will
+     * be called.
+     *
+     * If METIS is not available, the default # of methods tried is 2 (the user
+     * permutation, if any, and AMD).
+     *
+     * To try other methods, set Common->nmethods to the number of methods you
+     * want to try.  The suite of default methods and their parameters is
+     * described in the cholmod_defaults routine, and summarized here:
+     *
+     *	    Common->method [i]:
+     *	    i = 0: user-provided ordering (cholmod_analyze_p only)
+     *	    i = 1: AMD (for both A and A*A')
+     *	    i = 2: METIS
+     *	    i = 3: CHOLMOD's nested dissection (NESDIS), default parameters
+     *	    i = 4: natural
+     *	    i = 5: NESDIS with nd_small = 20000
+     *	    i = 6: NESDIS with nd_small = 4, no constrained minimum degree
+     *	    i = 7: NESDIS with no dense node removal
+     *	    i = 8: AMD for A, COLAMD for A*A'
+     *
+     * You can modify the suite of methods you wish to try by modifying
+     * Common.method [...] after calling cholmod_start or cholmod_defaults.
+     *
+     * For example, to use AMD, followed by a weighted postordering:
+     *
+     *	    Common->nmethods = 1 ;
+     *	    Common->method [0].ordering = CHOLMOD_AMD ;
+     *	    Common->postorder = TRUE ;
+     *
+     * To use the natural ordering (with no postordering):
+     *
+     *	    Common->nmethods = 1 ;
+     *	    Common->method [0].ordering = CHOLMOD_NATURAL ;
+     *	    Common->postorder = FALSE ;
+     *
+     * If you are going to factorize hundreds or more matrices with the same
+     * nonzero pattern, you may wish to spend a great deal of time finding a
+     * good permutation.  In this case, try setting Common->nmethods to 9.
+     * The time spent in cholmod_analysis will be very high, but you need to
+     * call it only once.
+     *
+     * cholmod_analyze sets Common->current to a value between 0 and nmethods-1.
+     * Each ordering method uses the set of options defined by this parameter.
+     */
+
+    int nmethods ;	/* The number of ordering methods to try.  Default: 0.
+			 * nmethods = 0 is a special case.  cholmod_analyze
+	* will try the user-provided ordering (if given) and AMD.  Let fl and
+	* lnz be the flop count and nonzeros in L from AMD's ordering.  Let
+	* anz be the number of nonzeros in the upper or lower triangular part
+	* of the symmetric matrix A.  If fl/lnz < 500 or lnz/anz < 5, then this
+	* is a good ordering, and METIS is not attempted.  Otherwise, METIS is
+	* tried.   The best ordering found is used.  If nmethods > 0, the
+	* methods used are given in the method[ ] array, below.  The first
+	* three methods in the default suite of orderings is (1) use the given
+	* permutation (if provided), (2) use AMD, and (3) use METIS.  Maximum
+	* allowed value is CHOLMOD_MAXMETHODS.  */
+
+    int current ;	/* The current method being tried.  Default: 0.  Valid
+			 * range is 0 to nmethods-1. */
+
+    int selected ;	/* The best method found. */
+
+    /* The suite of ordering methods and parameters: */
+
+    struct cholmod_method_struct
+    {
+	/* statistics for this method */
+	double lnz ;	    /* nnz(L) excl. zeros from supernodal amalgamation,
+			     * for a "pure" L */
+
+	double fl ;	    /* flop count for a "pure", real simplicial LL'
+			     * factorization, with no extra work due to
+	    * amalgamation.  Subtract n to get the LDL' flop count.   Multiply
+	    * by about 4 if the matrix is complex or zomplex. */
+
+	/* ordering method parameters */
+	double prune_dense ;/* dense row/col control for AMD, SYMAMD, CSYMAMD,
+			     * and NESDIS (cholmod_nested_dissection).  For a
+	    * symmetric n-by-n matrix, rows/columns with more than
+	    * MAX (16, prune_dense * sqrt (n)) entries are removed prior to
+	    * ordering.  They appear at the end of the re-ordered matrix.
+	    *
+	    * If prune_dense < 0, only completely dense rows/cols are removed.
+	    *
+	    * This paramater is also the dense column control for COLAMD and
+	    * CCOLAMD.  For an m-by-n matrix, columns with more than
+	    * MAX (16, prune_dense * sqrt (MIN (m,n))) entries are removed prior
+	    * to ordering.  They appear at the end of the re-ordered matrix.
+	    * CHOLMOD factorizes A*A', so it calls COLAMD and CCOLAMD with A',
+	    * not A.  Thus, this parameter affects the dense *row* control for
+	    * CHOLMOD's matrix, and the dense *column* control for COLAMD and
+	    * CCOLAMD.
+	    *
+	    * Removing dense rows and columns improves the run-time of the
+	    * ordering methods.  It has some impact on ordering quality
+	    * (usually minimal, sometimes good, sometimes bad).
+	    *
+	    * Default: 10. */
+
+	double prune_dense2 ;/* dense row control for COLAMD and CCOLAMD.
+			    *  Rows with more than MAX (16, dense2 * sqrt (n))
+	    * for an m-by-n matrix are removed prior to ordering.  CHOLMOD's
+	    * matrix is transposed before ordering it with COLAMD or CCOLAMD,
+	    * so this controls the dense *columns* of CHOLMOD's matrix, and
+	    * the dense *rows* of COLAMD's or CCOLAMD's matrix.
+	    *
+	    * If prune_dense2 < 0, only completely dense rows/cols are removed.
+	    *
+	    * Default: -1.  Note that this is not the default for COLAMD and
+	    * CCOLAMD.  -1 is best for Cholesky.  10 is best for LU.  */
+
+	double nd_oksep ;   /* in NESDIS, when a node separator is computed, it
+			     * discarded if nsep >= nd_oksep*n, where nsep is
+	    * the number of nodes in the separator, and n is the size of the
+	    * graph being cut.  Valid range is 0 to 1.  If 1 or greater, the
+	    * separator is discarded if it consists of the entire graph.
+	    * Default: 1 */
+
+	double other1 [4] ; /* future expansion */
+
+	size_t nd_small ;    /* do not partition graphs with fewer nodes than
+			     * nd_small, in NESDIS.  Default: 200 (same as
+			     * METIS) */
+
+	size_t other2 [4] ; /* future expansion */
+
+	int aggressive ;    /* Aggresive absorption in AMD, COLAMD, SYMAMD,
+			     * CCOLAMD, and CSYMAMD.  Default: TRUE */
+
+	int order_for_lu ;  /* CCOLAMD can be optimized to produce an ordering
+			     * for LU or Cholesky factorization.  CHOLMOD only
+	    * performs a Cholesky factorization.  However, you may wish to use
+	    * CHOLMOD as an interface for CCOLAMD but use it for your own LU
+	    * factorization.  In this case, order_for_lu should be set to FALSE.
+	    * When factorizing in CHOLMOD itself, you should *** NEVER *** set
+	    * this parameter FALSE.  Default: TRUE. */
+
+	int nd_compress ;   /* If TRUE, compress the graph and subgraphs before
+			     * partitioning them in NESDIS.  Default: TRUE */
+
+	int nd_camd ;	    /* If 1, follow the nested dissection ordering
+			     * with a constrained minimum degree ordering that
+	    * respects the partitioning just found (using CAMD).  If 2, use
+	    * CSYMAMD instead.  If you set nd_small very small, you may not need
+	    * this ordering, and can save time by setting it to zero (no
+	    * constrained minimum degree ordering).  Default: 1. */
+
+	int nd_components ; /* The nested dissection ordering finds a node
+			     * separator that splits the graph into two parts,
+	    * which may be unconnected.  If nd_components is TRUE, each of
+	    * these connected components is split independently.  If FALSE,
+	    * each part is split as a whole, even if it consists of more than
+	    * one connected component.  Default: FALSE */
+
+	/* fill-reducing ordering to use */
+	int ordering ;
+
+	size_t other3 [4] ; /* future expansion */
+
+    } method [CHOLMOD_MAXMETHODS + 1] ;
+
+    int postorder ;	/* If TRUE, cholmod_analyze follows the ordering with a
+			 * weighted postorder of the elimination tree.  Improves
+	* supernode amalgamation.  Does not affect fundamental nnz(L) and
+	* flop count.  Default: TRUE. */
+
+    /* ---------------------------------------------------------------------- */
+    /* memory management routines */
+    /* ---------------------------------------------------------------------- */
+
+    void *(*malloc_memory) (size_t) ;		/* pointer to malloc */
+    void *(*realloc_memory) (void *, size_t) ;  /* pointer to realloc */
+    void (*free_memory) (void *) ;		/* pointer to free */
+    void *(*calloc_memory) (size_t, size_t) ;	/* pointer to calloc */
+
+    /* ---------------------------------------------------------------------- */
+    /* routines for complex arithmetic */
+    /* ---------------------------------------------------------------------- */
+
+    int (*complex_divide) (double ax, double az, double bx, double bz,
+	    double *cx, double *cz) ;
+
+	/* flag = complex_divide (ax, az, bx, bz, &cx, &cz) computes the complex
+	 * division c = a/b, where ax and az hold the real and imaginary part
+	 * of a, and b and c are stored similarly.  flag is returned as 1 if
+	 * a divide-by-zero occurs, or 0 otherwise.  By default, the function
+	 * pointer Common->complex_divide is set equal to cholmod_divcomplex.
+	 */
+
+    double (*hypotenuse) (double x, double y) ;
+
+	/* s = hypotenuse (x,y) computes s = sqrt (x*x + y*y), but does so more
+	 * accurately.  By default, the function pointer Common->hypotenuse is
+	 * set equal to cholmod_hypot.  See also the hypot function in the C99
+	 * standard, which has an identical syntax and function.  If you have
+	 * a C99-compliant compiler, you can set Common->hypotenuse = hypot.  */
+
+    /* ---------------------------------------------------------------------- */
+    /* METIS workarounds */
+    /* ---------------------------------------------------------------------- */
+
+    double metis_memory ;   /* This is a parameter for CHOLMOD's interface to
+			     * METIS, not a parameter to METIS itself.  METIS
+	* uses an amount of memory that is difficult to estimate precisely
+	* beforehand.  If it runs out of memory, it terminates your program.
+	* All routines in CHOLMOD except for CHOLMOD's interface to METIS
+	* return an error status and safely return to your program if they run
+	* out of memory.  To mitigate this problem, the CHOLMOD interface
+	* can allocate a single block of memory equal in size to an empirical
+	* upper bound of METIS's memory usage times the Common->metis_memory
+	* parameter, and then immediately free it.  It then calls METIS.  If
+	* this pre-allocation fails, it is possible that METIS will fail as
+	* well, and so CHOLMOD returns with an out-of-memory condition without
+	* calling METIS.
+	*
+	* METIS_NodeND (used in the CHOLMOD_METIS ordering option) with its
+	* default parameter settings typically uses about (4*nz+40n+4096)
+	* times sizeof(int) memory, where nz is equal to the number of entries
+	* in A for the symmetric case or AA' if an unsymmetric matrix is
+	* being ordered (where nz includes both the upper and lower parts
+	* of A or AA').  The observed "upper bound" (with 2 exceptions),
+	* measured in an instrumented copy of METIS 4.0.1 on thousands of
+	* matrices, is (10*nz+50*n+4096) * sizeof(int).  Two large matrices
+	* exceeded this bound, one by almost a factor of 2 (Gupta/gupta2).
+	*
+	* If your program is terminated by METIS, try setting metis_memory to
+	* 2.0, or even higher if needed.  By default, CHOLMOD assumes that METIS
+	* does not have this problem (so that CHOLMOD will work correctly when
+	* this issue is fixed in METIS).  Thus, the default value is zero.
+	* This work-around is not guaranteed anyway.
+	*
+	* If a matrix exceeds this predicted memory usage, AMD is attempted
+	* instead.  It, too, may run out of memory, but if it does so it will
+	* not terminate your program.
+	*/
+
+    double metis_dswitch ;	/* METIS_NodeND in METIS 4.0.1 gives a seg */
+    size_t metis_nswitch ;	/* fault with one matrix of order n = 3005 and
+				 * nz = 6,036,025.  This is a very dense graph.
+     * The workaround is to use AMD instead of METIS for matrices of dimension
+     * greater than Common->metis_nswitch (default 3000) or more and with
+     * density of Common->metis_dswitch (default 0.66) or more.
+     * cholmod_nested_dissection has no problems with the same matrix, even
+     * though it uses METIS_NodeComputeSeparator on this matrix.  If this
+     * seg fault does not affect you, set metis_nswitch to zero or less,
+     * and CHOLMOD will not switch to AMD based just on the density of the
+     * matrix (it will still switch to AMD if the metis_memory parameter
+     * causes the switch).
+     */
+
+    /* ---------------------------------------------------------------------- */
+    /* workspace */
+    /* ---------------------------------------------------------------------- */
+
+    /* CHOLMOD has several routines that take less time than the size of
+     * workspace they require.  Allocating and initializing the workspace would
+     * dominate the run time, unless workspace is allocated and initialized
+     * just once.  CHOLMOD allocates this space when needed, and holds it here
+     * between calls to CHOLMOD.  cholmod_start sets these pointers to NULL
+     * (which is why it must be the first routine called in CHOLMOD).
+     * cholmod_finish frees the workspace (which is why it must be the last
+     * call to CHOLMOD).
+     */
+
+    size_t nrow ;	/* size of Flag and Head */
+    UF_long mark ;	/* mark value for Flag array */
+    size_t iworksize ;	/* size of Iwork.  Upper bound: 6*nrow+ncol */
+    size_t xworksize ;	/* size of Xwork,  in bytes.
+			 * maxrank*nrow*sizeof(double) for update/downdate.
+			 * 2*nrow*sizeof(double) otherwise */
+
+    /* initialized workspace: contents needed between calls to CHOLMOD */
+    void *Flag ;	/* size nrow, an integer array.  Kept cleared between
+			 * calls to cholmod rouines (Flag [i] < mark) */
+
+    void *Head ;	/* size nrow+1, an integer array. Kept cleared between
+			 * calls to cholmod routines (Head [i] = EMPTY) */
+
+    void *Xwork ; 	/* a double array.  Its size varies.  It is nrow for
+			 * most routines (cholmod_rowfac, cholmod_add,
+	* cholmod_aat, cholmod_norm, cholmod_ssmult) for the real case, twice
+	* that when the input matrices are complex or zomplex.  It is of size
+	* 2*nrow for cholmod_rowadd and cholmod_rowdel.  For cholmod_updown,
+	* its size is maxrank*nrow where maxrank is 2, 4, or 8.  Kept cleared
+	* between calls to cholmod (set to zero). */
+
+    /* uninitialized workspace, contents not needed between calls to CHOLMOD */
+    void *Iwork ;	/* size iworksize, 2*nrow+ncol for most routines,
+			 * up to 6*nrow+ncol for cholmod_analyze. */
+
+    int itype ;		/* If CHOLMOD_LONG, Flag, Head, and Iwork are UF_long.
+			 * Otherwise all three arrays are int. */
+
+    int dtype ;		/* double or float */
+
+	/* Common->itype and Common->dtype are used to define the types of all
+	 * sparse matrices, triplet matrices, dense matrices, and factors
+	 * created using this Common struct.  The itypes and dtypes of all
+	 * parameters to all CHOLMOD routines must match.  */
+
+    int no_workspace_reallocate ;   /* this is an internal flag, used as a
+	* precaution by cholmod_analyze.  It is normally false.  If true,
+	* cholmod_allocate_work is not allowed to reallocate any workspace;
+	* they must use the existing workspace in Common (Iwork, Flag, Head,
+	* and Xwork).  Added for CHOLMOD v1.1 */
+
+    /* ---------------------------------------------------------------------- */
+    /* statistics */
+    /* ---------------------------------------------------------------------- */
+
+    /* fl and lnz are set only in cholmod_analyze and cholmod_rowcolcounts,
+     * in the Cholesky modudle.  modfl is set only in the Modify module. */
+
+    int status ;	    /* error code */
+    double fl ;		    /* LL' flop count from most recent analysis */
+    double lnz ;	    /* fundamental nz in L */
+    double anz ;	    /* nonzeros in tril(A) if A is symmetric/lower,
+			     * triu(A) if symmetric/upper, or tril(A*A') if
+			     * unsymmetric, in last call to cholmod_analyze. */
+    double modfl ;	    /* flop count from most recent update/downdate/
+			     * rowadd/rowdel (excluding flops to modify the
+			     * solution to Lx=b, if computed) */
+    size_t malloc_count ;   /* # of objects malloc'ed minus the # free'd*/
+    size_t memory_usage ;   /* peak memory usage in bytes */
+    size_t memory_inuse ;   /* current memory usage in bytes */
+
+    double nrealloc_col ;   /* # of column reallocations */
+    double nrealloc_factor ;/* # of factor reallocations due to col. reallocs */
+    double ndbounds_hit ;   /* # of times diagonal modified by dbound */
+
+    double rowfacfl ;	    /* # of flops in last call to cholmod_rowfac */
+    double aatfl ;	    /* # of flops to compute A(:,f)*A(:,f)' */
+
+    /* ---------------------------------------------------------------------- */
+    /* future expansion */
+    /* ---------------------------------------------------------------------- */
+
+    /* To allow CHOLMOD to be updated without recompiling the user application,
+     * additional space is set aside here for future statistics, parameters,
+     * and workspace.  Note:  additional entries were added in v1.1 to the
+     * method array, above, and thus v1.0 and v1.1 are not binary compatible.
+     *
+     * v1.1 to the current version are binary compatible.
+     */
+
+    /* ---------------------------------------------------------------------- */
+    double other1 [10] ;
+
+    double SPQR_xstat [4] ;     /* for SuiteSparseQR statistics */
+
+    /* SuiteSparseQR control parameters: */
+    double SPQR_grain ;         /* task size is >= max (total flops / grain) */
+    double SPQR_small ;         /* task size is >= small */
+
+    /* ---------------------------------------------------------------------- */
+    UF_long SPQR_istat [10] ;   /* for SuiteSparseQR statistics */
+    UF_long other2 [6] ;        /* reduced from size 16 in v1.6 */
+
+    /* ---------------------------------------------------------------------- */
+    int other3 [10] ;       /* reduced from size 16 in v1.1. */
+
+    int prefer_binary ;	    /* cholmod_read_triplet converts a symmetric
+			     * pattern-only matrix into a real matrix.  If
+	* prefer_binary is FALSE, the diagonal entries are set to 1 + the degree
+	* of the row/column, and off-diagonal entries are set to -1 (resulting
+	* in a positive definite matrix if the diagonal is zero-free).  Most
+	* symmetric patterns are the pattern a positive definite matrix.  If
+	* this parameter is TRUE, then the matrix is returned with a 1 in each
+	* entry, instead.  Default: FALSE.  Added in v1.3. */
+
+    /* control parameter (added for v1.2): */
+    int default_nesdis ;    /* Default: FALSE.  If FALSE, then the default
+			     * ordering strategy (when Common->nmethods == 0)
+	* is to try the given ordering (if present), AMD, and then METIS if AMD
+	* reports high fill-in.  If Common->default_nesdis is TRUE then NESDIS
+	* is used instead in the default strategy. */
+
+    /* statistic (added for v1.2): */
+    int called_nd ;	    /* TRUE if the last call to
+			     * cholmod_analyze called NESDIS or METIS. */
+
+    int blas_ok ;           /* FALSE if BLAS int overflow; TRUE otherwise */
+
+    /* SuiteSparseQR control parameters: */
+    int SPQR_shrink ;        /* controls stack realloc method */
+    int SPQR_nthreads ;      /* number of TBB threads, 0 = auto */
+
+    /* ---------------------------------------------------------------------- */
+    size_t  other4 [16] ;
+
+    /* ---------------------------------------------------------------------- */
+    void   *other5 [16] ;
+
+} cholmod_common ;
+
+// in ../../src/CHOLMOD/Include/cholmod_core.h  skip forward to - line 1114 :
+/* A sparse matrix stored in compressed-column form. */
+
+typedef struct cholmod_sparse_struct
+{
+    size_t nrow ;	/* the matrix is nrow-by-ncol */
+    size_t ncol ;
+    size_t nzmax ;	/* maximum number of entries in the matrix */
+
+    /* pointers to int or UF_long: */
+    void *p ;		/* p [0..ncol], the column pointers */
+    void *i ;		/* i [0..nzmax-1], the row indices */
+
+    /* for unpacked matrices only: */
+    void *nz ;		/* nz [0..ncol-1], the # of nonzeros in each col.  In
+			 * packed form, the nonzero pattern of column j is in
+	* A->i [A->p [j] ... A->p [j+1]-1].  In unpacked form, column j is in
+	* A->i [A->p [j] ... A->p [j]+A->nz[j]-1] instead.  In both cases, the
+	* numerical values (if present) are in the corresponding locations in
+	* the array x (or z if A->xtype is CHOLMOD_ZOMPLEX). */
+
+    /* pointers to double or float: */
+    void *x ;		/* size nzmax or 2*nzmax, if present */
+    void *z ;		/* size nzmax, if present */
+
+    int stype ;		/* Describes what parts of the matrix are considered:
+			 *
+	* 0:  matrix is "unsymmetric": use both upper and lower triangular parts
+	*     (the matrix may actually be symmetric in pattern and value, but
+	*     both parts are explicitly stored and used).  May be square or
+	*     rectangular.
+	* >0: matrix is square and symmetric, use upper triangular part.
+	*     Entries in the lower triangular part are ignored.
+	* <0: matrix is square and symmetric, use lower triangular part.
+	*     Entries in the upper triangular part are ignored.
+	*
+	* Note that stype>0 and stype<0 are different for cholmod_sparse and
+	* cholmod_triplet.  See the cholmod_triplet data structure for more
+	* details.
+	*/
+
+    int itype ;		/* CHOLMOD_INT:     p, i, and nz are int.
+			 * CHOLMOD_INTLONG: p is UF_long, i and nz are int.
+			 * CHOLMOD_LONG:    p, i, and nz are UF_long.  */
+
+    int xtype ;		/* pattern, real, complex, or zomplex */
+    int dtype ;		/* x and z are double or float */
+    int sorted ;	/* TRUE if columns are sorted, FALSE otherwise */
+    int packed ;	/* TRUE if packed (nz ignored), FALSE if unpacked
+			 * (nz is required) */
+
+} cholmod_sparse ;
+
+// in ../../src/CHOLMOD/Include/cholmod_core.h  skip forward to - line 1554 :
+/* A symbolic and numeric factorization, either simplicial or supernodal.
+ * In all cases, the row indices in the columns of L are kept sorted. */
+
+typedef struct cholmod_factor_struct
+{
+    /* ---------------------------------------------------------------------- */
+    /* for both simplicial and supernodal factorizations */
+    /* ---------------------------------------------------------------------- */
+
+    size_t n ;		/* L is n-by-n */
+
+    size_t minor ;	/* If the factorization failed, L->minor is the column
+			 * at which it failed (in the range 0 to n-1).  A value
+			 * of n means the factorization was successful or
+			 * the matrix has not yet been factorized. */
+
+    /* ---------------------------------------------------------------------- */
+    /* symbolic ordering and analysis */
+    /* ---------------------------------------------------------------------- */
+
+    void *Perm ;	/* size n, permutation used */
+    void *ColCount ;	/* size n, column counts for simplicial L */
+
+    void *IPerm ;       /* size n, inverse permutation.  Only created by
+                         * cholmod_solve2 if Bset is used. */
+
+    /* ---------------------------------------------------------------------- */
+    /* simplicial factorization */
+    /* ---------------------------------------------------------------------- */
+
+    size_t nzmax ;	/* size of i and x */
+
+    void *p ;		/* p [0..ncol], the column pointers */
+    void *i ;		/* i [0..nzmax-1], the row indices */
+    void *x ;		/* x [0..nzmax-1], the numerical values */
+    void *z ;
+    void *nz ;		/* nz [0..ncol-1], the # of nonzeros in each column.
+			 * i [p [j] ... p [j]+nz[j]-1] contains the row indices,
+			 * and the numerical values are in the same locatins
+			 * in x. The value of i [p [k]] is always k. */
+
+    void *next ;	/* size ncol+2. next [j] is the next column in i/x */
+    void *prev ;	/* size ncol+2. prev [j] is the prior column in i/x.
+			 * head of the list is ncol+1, and the tail is ncol. */
+
+    /* ---------------------------------------------------------------------- */
+    /* supernodal factorization */
+    /* ---------------------------------------------------------------------- */
+
+    /* Note that L->x is shared with the simplicial data structure.  L->x has
+     * size L->nzmax for a simplicial factor, and size L->xsize for a supernodal
+     * factor. */
+
+    size_t nsuper ;	/* number of supernodes */
+    size_t ssize ;	/* size of s, integer part of supernodes */
+    size_t xsize ;	/* size of x, real part of supernodes */
+    size_t maxcsize ;	/* size of largest update matrix */
+    size_t maxesize ;	/* max # of rows in supernodes, excl. triangular part */
+
+    void *super ;	/* size nsuper+1, first col in each supernode */
+    void *pi ;		/* size nsuper+1, pointers to integer patterns */
+    void *px ;		/* size nsuper+1, pointers to real parts */
+    void *s ;		/* size ssize, integer part of supernodes */
+
+    /* ---------------------------------------------------------------------- */
+    /* factorization type */
+    /* ---------------------------------------------------------------------- */
+
+    int ordering ;	/* ordering method used */
+
+    int is_ll ;		/* TRUE if LL', FALSE if LDL' */
+    int is_super ;	/* TRUE if supernodal, FALSE if simplicial */
+    int is_monotonic ;	/* TRUE if columns of L appear in order 0..n-1.
+			 * Only applicable to simplicial numeric types. */
+
+    /* There are 8 types of factor objects that cholmod_factor can represent
+     * (only 6 are used):
+     *
+     * Numeric types (xtype is not CHOLMOD_PATTERN)
+     * --------------------------------------------
+     *
+     * simplicial LDL':  (is_ll FALSE, is_super FALSE).  Stored in compressed
+     *	    column form, using the simplicial components above (nzmax, p, i,
+     *	    x, z, nz, next, and prev).  The unit diagonal of L is not stored,
+     *	    and D is stored in its place.  There are no supernodes.
+     *
+     * simplicial LL': (is_ll TRUE, is_super FALSE).  Uses the same storage
+     *	    scheme as the simplicial LDL', except that D does not appear.
+     *	    The first entry of each column of L is the diagonal entry of
+     *	    that column of L.
+     *
+     * supernodal LDL': (is_ll FALSE, is_super TRUE).  Not used.
+     *	    FUTURE WORK:  add support for supernodal LDL'
+     *
+     * supernodal LL': (is_ll TRUE, is_super TRUE).  A supernodal factor,
+     *	    using the supernodal components described above (nsuper, ssize,
+     *	    xsize, maxcsize, maxesize, super, pi, px, s, x, and z).
+     *
+     *
+     * Symbolic types (xtype is CHOLMOD_PATTERN)
+     * -----------------------------------------
+     *
+     * simplicial LDL': (is_ll FALSE, is_super FALSE).  Nothing is present
+     *	    except Perm and ColCount.
+     *
+     * simplicial LL': (is_ll TRUE, is_super FALSE).  Identical to the
+     *	    simplicial LDL', except for the is_ll flag.
+     *
+     * supernodal LDL': (is_ll FALSE, is_super TRUE).  Not used.
+     *	    FUTURE WORK:  add support for supernodal LDL'
+     *
+     * supernodal LL': (is_ll TRUE, is_super TRUE).  A supernodal symbolic
+     *	    factorization.  The simplicial symbolic information is present
+     *	    (Perm and ColCount), as is all of the supernodal factorization
+     *	    except for the numerical values (x and z).
+     */
+
+    int itype ; /* The integer arrays are Perm, ColCount, p, i, nz,
+                 * next, prev, super, pi, px, and s.  If itype is
+		 * CHOLMOD_INT, all of these are int arrays.
+		 * CHOLMOD_INTLONG: p, pi, px are SuiteSparse_long, others int.
+		 * CHOLMOD_LONG:    all integer arrays are SuiteSparse_long. */
+    int xtype ; /* pattern, real, complex, or zomplex */
+    int dtype ; /* x and z double or float */
+
+} cholmod_factor ;
+
+// in ../../src/CHOLMOD/Include/cholmod_core.h  skip forward to - line 1836 :
+/* A dense matrix in column-oriented form.  It has no itype since it contains
+ * no integers.  Entry in row i and column j is located in x [i+j*d].
+ */
+
+typedef struct cholmod_dense_struct
+{
+    size_t nrow ;	/* the matrix is nrow-by-ncol */
+    size_t ncol ;
+    size_t nzmax ;	/* maximum number of entries in the matrix */
+    size_t d ;		/* leading dimension (d >= nrow must hold) */
+    void *x ;		/* size nzmax or 2*nzmax, if present */
+    void *z ;		/* size nzmax, if present */
+    int xtype ;		/* pattern, real, complex, or zomplex */
+    int dtype ;		/* x and z double or float */
+
+} cholmod_dense ;
+
+// in ../../src/CHOLMOD/Include/cholmod_core.h  skip forward to - line 2033 :
+/* A sparse matrix stored in triplet form. */
+
+typedef struct cholmod_triplet_struct
+{
+    size_t nrow ;	/* the matrix is nrow-by-ncol */
+    size_t ncol ;
+    size_t nzmax ;	/* maximum number of entries in the matrix */
+    size_t nnz ;	/* number of nonzeros in the matrix */
+
+    void *i ;		/* i [0..nzmax-1], the row indices */
+    void *j ;		/* j [0..nzmax-1], the column indices */
+    void *x ;		/* size nzmax or 2*nzmax, if present */
+    void *z ;		/* size nzmax, if present */
+
+    int stype ;		/* Describes what parts of the matrix are considered:
+			 *
+	* 0:  matrix is "unsymmetric": use both upper and lower triangular parts
+	*     (the matrix may actually be symmetric in pattern and value, but
+	*     both parts are explicitly stored and used).  May be square or
+	*     rectangular.
+	* >0: matrix is square and symmetric.  Entries in the lower triangular
+	*     part are transposed and added to the upper triangular part when
+	*     the matrix is converted to cholmod_sparse form.
+	* <0: matrix is square and symmetric.  Entries in the upper triangular
+	*     part are transposed and added to the lower triangular part when
+	*     the matrix is converted to cholmod_sparse form.
+	*
+	* Note that stype>0 and stype<0 are different for cholmod_sparse and
+	* cholmod_triplet.  The reason is simple.  You can permute a symmetric
+	* triplet matrix by simply replacing a row and column index with their
+	* new row and column indices, via an inverse permutation.  Suppose
+	* P = L->Perm is your permutation, and Pinv is an array of size n.
+	* Suppose a symmetric matrix A is represent by a triplet matrix T, with
+	* entries only in the upper triangular part.  Then the following code:
+	*
+	*	Ti = T->i ;
+	*	Tj = T->j ;
+	*	for (k = 0 ; k < n  ; k++) Pinv [P [k]] = k ;
+	*	for (k = 0 ; k < nz ; k++) Ti [k] = Pinv [Ti [k]] ;
+	*	for (k = 0 ; k < nz ; k++) Tj [k] = Pinv [Tj [k]] ;
+	*
+	* creates the triplet form of C=P*A*P'.  However, if T initially
+	* contains just the upper triangular entries (T->stype = 1), after
+	* permutation it has entries in both the upper and lower triangular
+	* parts.  These entries should be transposed when constructing the
+	* cholmod_sparse form of A, which is what cholmod_triplet_to_sparse
+	* does.  Thus:
+	*
+	*	C = cholmod_triplet_to_sparse (T, 0, &Common) ;
+	*
+	* will return the matrix C = P*A*P'.
+	*
+	* Since the triplet matrix T is so simple to generate, it's quite easy
+	* to remove entries that you do not want, prior to converting T to the
+	* cholmod_sparse form.  So if you include these entries in T, CHOLMOD
+	* assumes that there must be a reason (such as the one above).  Thus,
+	* no entry in a triplet matrix is ever ignored.
+	*/
+
+    int itype ; /* CHOLMOD_LONG: i and j are SuiteSparse_long.  Otherwise int */
+    int xtype ; /* pattern, real, complex, or zomplex */
+    int dtype ; /* x and z are double or float */
+
+} cholmod_triplet ;
+
+// -------- our (Matrix)  short and const_ forms of of the pointers :
+typedef       cholmod_common*        CHM_CM;
+typedef       cholmod_dense*         CHM_DN;
+typedef const cholmod_dense*   const_CHM_DN;
+typedef       cholmod_factor*        CHM_FR;
+typedef const cholmod_factor*  const_CHM_FR;
+typedef       cholmod_sparse*        CHM_SP;
+typedef const cholmod_sparse*  const_CHM_SP;
+typedef       cholmod_triplet*       CHM_TR;
+typedef const cholmod_triplet* const_CHM_TR;
+
+
+// --------- Matrix ("M_") R ("R_") pkg  routines "re-exported": ---------------
+
+int  cholmod_start(CHM_CM);
+void R_cholmod_error(int status, const char *file, int line, const char *message);
+int  cholmod_finish(CHM_CM);
+
+CHM_SP cholmod_allocate_sparse(size_t nrow, size_t ncol,
+				 size_t nzmax, int sorted,
+				 int packed, int stype, int xtype,
+				 CHM_CM);
+int      cholmod_free_factor(CHM_FR *L, CHM_CM);
+int      cholmod_free_dense(CHM_DN *A, CHM_CM);
+int      cholmod_free_sparse(CHM_SP *A, CHM_CM);
+int      cholmod_free_triplet(CHM_TR *T, CHM_CM);
+
+long int cholmod_nnz(const_CHM_SP, CHM_CM);
+CHM_SP   cholmod_speye(size_t nrow, size_t ncol, int xtype, CHM_CM);
+CHM_SP   cholmod_transpose(const_CHM_SP, int values, CHM_CM);
+int      cholmod_sort(CHM_SP A, CHM_CM);
+CHM_SP   cholmod_vertcat(const_CHM_SP, const_CHM_SP, int values, CHM_CM);
+CHM_SP   cholmod_copy(const_CHM_SP, int stype, int mode, CHM_CM);
+CHM_SP   cholmod_add(const_CHM_SP, const_CHM_SP, double alpha [2], double beta [2],
+		     int values, int sorted, CHM_CM);
+
+// from ../../src/CHOLMOD/Include/cholmod_cholesky.h - line 178 :
+#define CHOLMOD_A    0		/* solve Ax=b */
+#define CHOLMOD_LDLt 1		/* solve LDL'x=b */
+#define CHOLMOD_LD   2		/* solve LDx=b */
+#define CHOLMOD_DLt  3		/* solve DL'x=b */
+#define CHOLMOD_L    4		/* solve Lx=b */
+#define CHOLMOD_Lt   5		/* solve L'x=b */
+#define CHOLMOD_D    6		/* solve Dx=b */
+#define CHOLMOD_P    7		/* permute x=Px */
+#define CHOLMOD_Pt   8		/* permute x=P'x */
+
+CHM_DN   cholmod_solve(int, const_CHM_FR, const_CHM_DN, CHM_CM);
+CHM_SP   cholmod_spsolve(int, const_CHM_FR, const_CHM_SP, CHM_CM);
+int      cholmod_sdmult(const_CHM_SP, int, const double*, const double*,
+		     const_CHM_DN, CHM_DN Y, CHM_CM);
+CHM_SP   cholmod_ssmult(const_CHM_SP, const_CHM_SP, int, int, int,
+			CHM_CM);
+int      cholmod_factorize(const_CHM_SP, CHM_FR L, CHM_CM);
+int      cholmod_factorize_p(const_CHM_SP, double *beta, int *fset,
+			  size_t fsize, CHM_FR L, CHM_CM);
+CHM_SP   cholmod_copy_sparse(const_CHM_SP, CHM_CM);
+CHM_DN   cholmod_copy_dense(const_CHM_DN, CHM_CM);
+CHM_SP   cholmod_aat(const_CHM_SP, int *fset, size_t fsize, int mode,
+		     CHM_CM);
+int      cholmod_band_inplace(CHM_SP A, int k1, int k2, int mode, CHM_CM);
+CHM_SP   cholmod_add(const_CHM_SP, const_CHM_SP, double alpha[2], double beta[2],
+		     int values, int sorted, CHM_CM);
+CHM_DN   cholmod_allocate_dense(size_t nrow, size_t ncol, size_t d,
+				int xtype, CHM_CM);
+CHM_FR   cholmod_analyze(const_CHM_SP, CHM_CM);
+CHM_FR   cholmod_analyze_p(const_CHM_SP, int *Perm, int *fset,
+				    size_t fsize, CHM_CM);
+int      cholmod_change_factor(int to_xtype, int to_ll, int to_super,
+			    int to_packed, int to_monotonic,
+			    CHM_FR L, CHM_CM);
+CHM_FR   cholmod_copy_factor(const_CHM_FR, CHM_CM);
+CHM_SP   cholmod_factor_to_sparse(const_CHM_FR, CHM_CM);
+CHM_SP   cholmod_dense_to_sparse(const_CHM_DN, int values, CHM_CM);
+int      cholmod_defaults (CHM_CM);
+CHM_SP   cholmod_triplet_to_sparse(const cholmod_triplet*, int nzmax, CHM_CM);
+CHM_SP   cholmod_submatrix(const_CHM_SP, int *rset, int rsize, int *cset,
+			   int csize, int values, int sorted,
+			   CHM_CM);
+CHM_TR   cholmod_sparse_to_triplet(const_CHM_SP, CHM_CM);
+CHM_DN   cholmod_sparse_to_dense(const_CHM_SP, CHM_CM);
+CHM_TR   cholmod_allocate_triplet (size_t nrow, size_t ncol, size_t nzmax,
+				   int stype, int xtype, CHM_CM);
+
+// from ../../src/CHOLMOD/Include/cholmod_matrixops.h - line 107 :
+/* scaling modes, selected by the scale input parameter: */
+#define CHOLMOD_SCALAR 0	/* A = s*A */
+#define CHOLMOD_ROW 1		/* A = diag(s)*A */
+#define CHOLMOD_COL 2		/* A = A*diag(s) */
+#define CHOLMOD_SYM 3		/* A = diag(s)*A*diag(s) */
+
+int      cholmod_scale(const_CHM_DN, int scale, CHM_SP, CHM_CM);
+
+// added in the Matrix package - the log of the determinant of the matrix that was factored
+double   chm_factor_ldetL2(const_CHM_FR);
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif  /* RcppEigen_CHOLMOD_H */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h	(revision 2476)
@@ -0,0 +1,352 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Guillaume Saupin <guillaume.saupin@cea.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SKYLINEINPLACELU_H
+#define EIGEN_SKYLINEINPLACELU_H
+
+namespace Eigen { 
+
+/** \ingroup Skyline_Module
+ *
+ * \class SkylineInplaceLU
+ *
+ * \brief Inplace LU decomposition of a skyline matrix and associated features
+ *
+ * \param MatrixType the type of the matrix of which we are computing the LU factorization
+ *
+ */
+template<typename MatrixType>
+class SkylineInplaceLU {
+protected:
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+    
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+
+public:
+
+    /** Creates a LU object and compute the respective factorization of \a matrix using
+     * flags \a flags. */
+    SkylineInplaceLU(MatrixType& matrix, int flags = 0)
+    : /*m_matrix(matrix.rows(), matrix.cols()),*/ m_flags(flags), m_status(0), m_lu(matrix) {
+        m_precision = RealScalar(0.1) * Eigen::dummy_precision<RealScalar > ();
+        m_lu.IsRowMajor ? computeRowMajor() : compute();
+    }
+
+    /** Sets the relative threshold value used to prune zero coefficients during the decomposition.
+     *
+     * Setting a value greater than zero speeds up computation, and yields to an imcomplete
+     * factorization with fewer non zero coefficients. Such approximate factors are especially
+     * useful to initialize an iterative solver.
+     *
+     * Note that the exact meaning of this parameter might depends on the actual
+     * backend. Moreover, not all backends support this feature.
+     *
+     * \sa precision() */
+    void setPrecision(RealScalar v) {
+        m_precision = v;
+    }
+
+    /** \returns the current precision.
+     *
+     * \sa setPrecision() */
+    RealScalar precision() const {
+        return m_precision;
+    }
+
+    /** Sets the flags. Possible values are:
+     *  - CompleteFactorization
+     *  - IncompleteFactorization
+     *  - MemoryEfficient
+     *  - one of the ordering methods
+     *  - etc...
+     *
+     * \sa flags() */
+    void setFlags(int f) {
+        m_flags = f;
+    }
+
+    /** \returns the current flags */
+    int flags() const {
+        return m_flags;
+    }
+
+    void setOrderingMethod(int m) {
+        m_flags = m;
+    }
+
+    int orderingMethod() const {
+        return m_flags;
+    }
+
+    /** Computes/re-computes the LU factorization */
+    void compute();
+    void computeRowMajor();
+
+    /** \returns the lower triangular matrix L */
+    //inline const MatrixType& matrixL() const { return m_matrixL; }
+
+    /** \returns the upper triangular matrix U */
+    //inline const MatrixType& matrixU() const { return m_matrixU; }
+
+    template<typename BDerived, typename XDerived>
+    bool solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived>* x,
+            const int transposed = 0) const;
+
+    /** \returns true if the factorization succeeded */
+    inline bool succeeded(void) const {
+        return m_succeeded;
+    }
+
+protected:
+    RealScalar m_precision;
+    int m_flags;
+    mutable int m_status;
+    bool m_succeeded;
+    MatrixType& m_lu;
+};
+
+/** Computes / recomputes the in place LU decomposition of the SkylineInplaceLU.
+ * using the default algorithm.
+ */
+template<typename MatrixType>
+//template<typename _Scalar>
+void SkylineInplaceLU<MatrixType>::compute() {
+    const size_t rows = m_lu.rows();
+    const size_t cols = m_lu.cols();
+
+    eigen_assert(rows == cols && "We do not (yet) support rectangular LU.");
+    eigen_assert(!m_lu.IsRowMajor && "LU decomposition does not work with rowMajor Storage");
+
+    for (Index row = 0; row < rows; row++) {
+        const double pivot = m_lu.coeffDiag(row);
+
+        //Lower matrix Columns update
+        const Index& col = row;
+        for (typename MatrixType::InnerLowerIterator lIt(m_lu, col); lIt; ++lIt) {
+            lIt.valueRef() /= pivot;
+        }
+
+        //Upper matrix update -> contiguous memory access
+        typename MatrixType::InnerLowerIterator lIt(m_lu, col);
+        for (Index rrow = row + 1; rrow < m_lu.rows(); rrow++) {
+            typename MatrixType::InnerUpperIterator uItPivot(m_lu, row);
+            typename MatrixType::InnerUpperIterator uIt(m_lu, rrow);
+            const double coef = lIt.value();
+
+            uItPivot += (rrow - row - 1);
+
+            //update upper part  -> contiguous memory access
+            for (++uItPivot; uIt && uItPivot;) {
+                uIt.valueRef() -= uItPivot.value() * coef;
+
+                ++uIt;
+                ++uItPivot;
+            }
+            ++lIt;
+        }
+
+        //Upper matrix update -> non contiguous memory access
+        typename MatrixType::InnerLowerIterator lIt3(m_lu, col);
+        for (Index rrow = row + 1; rrow < m_lu.rows(); rrow++) {
+            typename MatrixType::InnerUpperIterator uItPivot(m_lu, row);
+            const double coef = lIt3.value();
+
+            //update lower part ->  non contiguous memory access
+            for (Index i = 0; i < rrow - row - 1; i++) {
+                m_lu.coeffRefLower(rrow, row + i + 1) -= uItPivot.value() * coef;
+                ++uItPivot;
+            }
+            ++lIt3;
+        }
+        //update diag -> contiguous
+        typename MatrixType::InnerLowerIterator lIt2(m_lu, col);
+        for (Index rrow = row + 1; rrow < m_lu.rows(); rrow++) {
+
+            typename MatrixType::InnerUpperIterator uItPivot(m_lu, row);
+            typename MatrixType::InnerUpperIterator uIt(m_lu, rrow);
+            const double coef = lIt2.value();
+
+            uItPivot += (rrow - row - 1);
+            m_lu.coeffRefDiag(rrow) -= uItPivot.value() * coef;
+            ++lIt2;
+        }
+    }
+}
+
+template<typename MatrixType>
+void SkylineInplaceLU<MatrixType>::computeRowMajor() {
+    const size_t rows = m_lu.rows();
+    const size_t cols = m_lu.cols();
+
+    eigen_assert(rows == cols && "We do not (yet) support rectangular LU.");
+    eigen_assert(m_lu.IsRowMajor && "You're trying to apply rowMajor decomposition on a ColMajor matrix !");
+
+    for (Index row = 0; row < rows; row++) {
+        typename MatrixType::InnerLowerIterator llIt(m_lu, row);
+
+
+        for (Index col = llIt.col(); col < row; col++) {
+            if (m_lu.coeffExistLower(row, col)) {
+                const double diag = m_lu.coeffDiag(col);
+
+                typename MatrixType::InnerLowerIterator lIt(m_lu, row);
+                typename MatrixType::InnerUpperIterator uIt(m_lu, col);
+
+
+                const Index offset = lIt.col() - uIt.row();
+
+
+                Index stop = offset > 0 ? col - lIt.col() : col - uIt.row();
+
+                //#define VECTORIZE
+#ifdef VECTORIZE
+                Map<VectorXd > rowVal(lIt.valuePtr() + (offset > 0 ? 0 : -offset), stop);
+                Map<VectorXd > colVal(uIt.valuePtr() + (offset > 0 ? offset : 0), stop);
+
+
+                Scalar newCoeff = m_lu.coeffLower(row, col) - rowVal.dot(colVal);
+#else
+                if (offset > 0) //Skip zero value of lIt
+                    uIt += offset;
+                else //Skip zero values of uIt
+                    lIt += -offset;
+                Scalar newCoeff = m_lu.coeffLower(row, col);
+
+                for (Index k = 0; k < stop; ++k) {
+                    const Scalar tmp = newCoeff;
+                    newCoeff = tmp - lIt.value() * uIt.value();
+                    ++lIt;
+                    ++uIt;
+                }
+#endif
+
+                m_lu.coeffRefLower(row, col) = newCoeff / diag;
+            }
+        }
+
+        //Upper matrix update
+        const Index col = row;
+        typename MatrixType::InnerUpperIterator uuIt(m_lu, col);
+        for (Index rrow = uuIt.row(); rrow < col; rrow++) {
+
+            typename MatrixType::InnerLowerIterator lIt(m_lu, rrow);
+            typename MatrixType::InnerUpperIterator uIt(m_lu, col);
+            const Index offset = lIt.col() - uIt.row();
+
+            Index stop = offset > 0 ? rrow - lIt.col() : rrow - uIt.row();
+
+#ifdef VECTORIZE
+            Map<VectorXd > rowVal(lIt.valuePtr() + (offset > 0 ? 0 : -offset), stop);
+            Map<VectorXd > colVal(uIt.valuePtr() + (offset > 0 ? offset : 0), stop);
+
+            Scalar newCoeff = m_lu.coeffUpper(rrow, col) - rowVal.dot(colVal);
+#else
+            if (offset > 0) //Skip zero value of lIt
+                uIt += offset;
+            else //Skip zero values of uIt
+                lIt += -offset;
+            Scalar newCoeff = m_lu.coeffUpper(rrow, col);
+            for (Index k = 0; k < stop; ++k) {
+                const Scalar tmp = newCoeff;
+                newCoeff = tmp - lIt.value() * uIt.value();
+
+                ++lIt;
+                ++uIt;
+            }
+#endif
+            m_lu.coeffRefUpper(rrow, col) = newCoeff;
+        }
+
+
+        //Diag matrix update
+        typename MatrixType::InnerLowerIterator lIt(m_lu, row);
+        typename MatrixType::InnerUpperIterator uIt(m_lu, row);
+
+        const Index offset = lIt.col() - uIt.row();
+
+
+        Index stop = offset > 0 ? lIt.size() : uIt.size();
+#ifdef VECTORIZE
+        Map<VectorXd > rowVal(lIt.valuePtr() + (offset > 0 ? 0 : -offset), stop);
+        Map<VectorXd > colVal(uIt.valuePtr() + (offset > 0 ? offset : 0), stop);
+        Scalar newCoeff = m_lu.coeffDiag(row) - rowVal.dot(colVal);
+#else
+        if (offset > 0) //Skip zero value of lIt
+            uIt += offset;
+        else //Skip zero values of uIt
+            lIt += -offset;
+        Scalar newCoeff = m_lu.coeffDiag(row);
+        for (Index k = 0; k < stop; ++k) {
+            const Scalar tmp = newCoeff;
+            newCoeff = tmp - lIt.value() * uIt.value();
+            ++lIt;
+            ++uIt;
+        }
+#endif
+        m_lu.coeffRefDiag(row) = newCoeff;
+    }
+}
+
+/** Computes *x = U^-1 L^-1 b
+ *
+ * If \a transpose is set to SvTranspose or SvAdjoint, the solution
+ * of the transposed/adjoint system is computed instead.
+ *
+ * Not all backends implement the solution of the transposed or
+ * adjoint system.
+ */
+template<typename MatrixType>
+template<typename BDerived, typename XDerived>
+bool SkylineInplaceLU<MatrixType>::solve(const MatrixBase<BDerived> &b, MatrixBase<XDerived>* x, const int transposed) const {
+    const size_t rows = m_lu.rows();
+    const size_t cols = m_lu.cols();
+
+
+    for (Index row = 0; row < rows; row++) {
+        x->coeffRef(row) = b.coeff(row);
+        Scalar newVal = x->coeff(row);
+        typename MatrixType::InnerLowerIterator lIt(m_lu, row);
+
+        Index col = lIt.col();
+        while (lIt.col() < row) {
+
+            newVal -= x->coeff(col++) * lIt.value();
+            ++lIt;
+        }
+
+        x->coeffRef(row) = newVal;
+    }
+
+
+    for (Index col = rows - 1; col > 0; col--) {
+        x->coeffRef(col) = x->coeff(col) / m_lu.coeffDiag(col);
+
+        const Scalar x_col = x->coeff(col);
+
+        typename MatrixType::InnerUpperIterator uIt(m_lu, col);
+        uIt += uIt.size()-1;
+
+
+        while (uIt) {
+            x->coeffRef(uIt.row()) -= x_col * uIt.value();
+            //TODO : introduce --operator
+            uIt += -1;
+        }
+
+
+    }
+    x->coeffRef(0) = x->coeff(0) / m_lu.coeffDiag(0);
+
+    return true;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SKYLINELU_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineUtil.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineUtil.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineUtil.h	(revision 2476)
@@ -0,0 +1,89 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Guillaume Saupin <guillaume.saupin@cea.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SKYLINEUTIL_H
+#define EIGEN_SKYLINEUTIL_H
+
+namespace Eigen { 
+
+#ifdef NDEBUG
+#define EIGEN_DBG_SKYLINE(X)
+#else
+#define EIGEN_DBG_SKYLINE(X) X
+#endif
+
+const unsigned int SkylineBit = 0x1200;
+template<typename Lhs, typename Rhs, int ProductMode> class SkylineProduct;
+enum AdditionalProductEvaluationMode {SkylineTimeDenseProduct, SkylineTimeSkylineProduct, DenseTimeSkylineProduct};
+enum {IsSkyline = SkylineBit};
+
+
+#define EIGEN_SKYLINE_INHERIT_ASSIGNMENT_OPERATOR(Derived, Op) \
+template<typename OtherDerived> \
+EIGEN_STRONG_INLINE Derived& operator Op(const Eigen::SkylineMatrixBase<OtherDerived>& other) \
+{ \
+  return Base::operator Op(other.derived()); \
+} \
+EIGEN_STRONG_INLINE Derived& operator Op(const Derived& other) \
+{ \
+  return Base::operator Op(other); \
+}
+
+#define EIGEN_SKYLINE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, Op) \
+template<typename Other> \
+EIGEN_STRONG_INLINE Derived& operator Op(const Other& scalar) \
+{ \
+  return Base::operator Op(scalar); \
+}
+
+#define EIGEN_SKYLINE_INHERIT_ASSIGNMENT_OPERATORS(Derived) \
+  EIGEN_SKYLINE_INHERIT_ASSIGNMENT_OPERATOR(Derived, =) \
+  EIGEN_SKYLINE_INHERIT_ASSIGNMENT_OPERATOR(Derived, +=) \
+  EIGEN_SKYLINE_INHERIT_ASSIGNMENT_OPERATOR(Derived, -=) \
+  EIGEN_SKYLINE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, *=) \
+  EIGEN_SKYLINE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, /=)
+
+#define _EIGEN_SKYLINE_GENERIC_PUBLIC_INTERFACE(Derived, BaseClass) \
+  typedef BaseClass Base; \
+  typedef typename Eigen::internal::traits<Derived>::Scalar Scalar; \
+  typedef typename Eigen::NumTraits<Scalar>::Real RealScalar; \
+  typedef typename Eigen::internal::traits<Derived>::StorageKind StorageKind; \
+  typedef typename Eigen::internal::index<StorageKind>::type Index; \
+  enum {  Flags = Eigen::internal::traits<Derived>::Flags, };
+
+#define EIGEN_SKYLINE_GENERIC_PUBLIC_INTERFACE(Derived) \
+  _EIGEN_SKYLINE_GENERIC_PUBLIC_INTERFACE(Derived, Eigen::SkylineMatrixBase<Derived>)
+
+template<typename Derived> class SkylineMatrixBase;
+template<typename _Scalar, int _Flags = 0> class SkylineMatrix;
+template<typename _Scalar, int _Flags = 0> class DynamicSkylineMatrix;
+template<typename _Scalar, int _Flags = 0> class SkylineVector;
+template<typename _Scalar, int _Flags = 0> class MappedSkylineMatrix;
+
+namespace internal {
+
+template<typename Lhs, typename Rhs> struct skyline_product_mode;
+template<typename Lhs, typename Rhs, int ProductMode = skyline_product_mode<Lhs,Rhs>::value> struct SkylineProductReturnType;
+
+template<typename T> class eval<T,IsSkyline>
+{
+    typedef typename traits<T>::Scalar _Scalar;
+    enum {
+          _Flags = traits<T>::Flags
+    };
+
+  public:
+    typedef SkylineMatrix<_Scalar, _Flags> type;
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_SKYLINEUTIL_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h	(revision 2476)
@@ -0,0 +1,212 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Guillaume Saupin <guillaume.saupin@cea.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SKYLINEMATRIXBASE_H
+#define EIGEN_SKYLINEMATRIXBASE_H
+
+#include "SkylineUtil.h"
+
+namespace Eigen { 
+
+/** \ingroup Skyline_Module
+ *
+ * \class SkylineMatrixBase
+ *
+ * \brief Base class of any skyline matrices or skyline expressions
+ *
+ * \param Derived
+ *
+ */
+template<typename Derived> class SkylineMatrixBase : public EigenBase<Derived> {
+public:
+
+    typedef typename internal::traits<Derived>::Scalar Scalar;
+    typedef typename internal::traits<Derived>::StorageKind StorageKind;
+    typedef typename internal::index<StorageKind>::type Index;
+
+    enum {
+        RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
+        /**< The number of rows at compile-time. This is just a copy of the value provided
+         * by the \a Derived type. If a value is not known at compile-time,
+         * it is set to the \a Dynamic constant.
+         * \sa MatrixBase::rows(), MatrixBase::cols(), ColsAtCompileTime, SizeAtCompileTime */
+
+        ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
+        /**< The number of columns at compile-time. This is just a copy of the value provided
+         * by the \a Derived type. If a value is not known at compile-time,
+         * it is set to the \a Dynamic constant.
+         * \sa MatrixBase::rows(), MatrixBase::cols(), RowsAtCompileTime, SizeAtCompileTime */
+
+
+        SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
+        internal::traits<Derived>::ColsAtCompileTime>::ret),
+        /**< This is equal to the number of coefficients, i.e. the number of
+         * rows times the number of columns, or to \a Dynamic if this is not
+         * known at compile-time. \sa RowsAtCompileTime, ColsAtCompileTime */
+
+        MaxRowsAtCompileTime = RowsAtCompileTime,
+        MaxColsAtCompileTime = ColsAtCompileTime,
+
+        MaxSizeAtCompileTime = (internal::size_at_compile_time<MaxRowsAtCompileTime,
+        MaxColsAtCompileTime>::ret),
+
+        IsVectorAtCompileTime = RowsAtCompileTime == 1 || ColsAtCompileTime == 1,
+        /**< This is set to true if either the number of rows or the number of
+         * columns is known at compile-time to be equal to 1. Indeed, in that case,
+         * we are dealing with a column-vector (if there is only one column) or with
+         * a row-vector (if there is only one row). */
+
+        Flags = internal::traits<Derived>::Flags,
+        /**< This stores expression \ref flags flags which may or may not be inherited by new expressions
+         * constructed from this one. See the \ref flags "list of flags".
+         */
+
+        CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
+        /**< This is a rough measure of how expensive it is to read one coefficient from
+         * this expression.
+         */
+
+        IsRowMajor = Flags & RowMajorBit ? 1 : 0
+    };
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+    /** This is the "real scalar" type; if the \a Scalar type is already real numbers
+     * (e.g. int, float or double) then \a RealScalar is just the same as \a Scalar. If
+     * \a Scalar is \a std::complex<T> then RealScalar is \a T.
+     *
+     * \sa class NumTraits
+     */
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+
+    /** type of the equivalent square matrix */
+    typedef Matrix<Scalar, EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime),
+                           EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime) > SquareMatrixType;
+
+    inline const Derived& derived() const {
+        return *static_cast<const Derived*> (this);
+    }
+
+    inline Derived& derived() {
+        return *static_cast<Derived*> (this);
+    }
+
+    inline Derived& const_cast_derived() const {
+        return *static_cast<Derived*> (const_cast<SkylineMatrixBase*> (this));
+    }
+#endif // not EIGEN_PARSED_BY_DOXYGEN
+
+    /** \returns the number of rows. \sa cols(), RowsAtCompileTime */
+    inline Index rows() const {
+        return derived().rows();
+    }
+
+    /** \returns the number of columns. \sa rows(), ColsAtCompileTime*/
+    inline Index cols() const {
+        return derived().cols();
+    }
+
+    /** \returns the number of coefficients, which is \a rows()*cols().
+     * \sa rows(), cols(), SizeAtCompileTime. */
+    inline Index size() const {
+        return rows() * cols();
+    }
+
+    /** \returns the number of nonzero coefficients which is in practice the number
+     * of stored coefficients. */
+    inline Index nonZeros() const {
+        return derived().nonZeros();
+    }
+
+    /** \returns the size of the storage major dimension,
+     * i.e., the number of columns for a columns major matrix, and the number of rows otherwise */
+    Index outerSize() const {
+        return (int(Flags) & RowMajorBit) ? this->rows() : this->cols();
+    }
+
+    /** \returns the size of the inner dimension according to the storage order,
+     * i.e., the number of rows for a columns major matrix, and the number of cols otherwise */
+    Index innerSize() const {
+        return (int(Flags) & RowMajorBit) ? this->cols() : this->rows();
+    }
+
+    bool isRValue() const {
+        return m_isRValue;
+    }
+
+    Derived& markAsRValue() {
+        m_isRValue = true;
+        return derived();
+    }
+
+    SkylineMatrixBase() : m_isRValue(false) {
+        /* TODO check flags */
+    }
+
+    inline Derived & operator=(const Derived& other) {
+        this->operator=<Derived > (other);
+        return derived();
+    }
+
+    template<typename OtherDerived>
+    inline void assignGeneric(const OtherDerived& other) {
+        derived().resize(other.rows(), other.cols());
+        for (Index row = 0; row < rows(); row++)
+            for (Index col = 0; col < cols(); col++) {
+                if (other.coeff(row, col) != Scalar(0))
+                    derived().insert(row, col) = other.coeff(row, col);
+            }
+        derived().finalize();
+    }
+
+    template<typename OtherDerived>
+            inline Derived & operator=(const SkylineMatrixBase<OtherDerived>& other) {
+        //TODO
+    }
+
+    template<typename Lhs, typename Rhs>
+            inline Derived & operator=(const SkylineProduct<Lhs, Rhs, SkylineTimeSkylineProduct>& product);
+
+    friend std::ostream & operator <<(std::ostream & s, const SkylineMatrixBase& m) {
+        s << m.derived();
+        return s;
+    }
+
+    template<typename OtherDerived>
+    const typename SkylineProductReturnType<Derived, OtherDerived>::Type
+    operator*(const MatrixBase<OtherDerived> &other) const;
+
+    /** \internal use operator= */
+    template<typename DenseDerived>
+    void evalTo(MatrixBase<DenseDerived>& dst) const {
+        dst.setZero();
+        for (Index i = 0; i < rows(); i++)
+            for (Index j = 0; j < rows(); j++)
+                dst(i, j) = derived().coeff(i, j);
+    }
+
+    Matrix<Scalar, RowsAtCompileTime, ColsAtCompileTime> toDense() const {
+        return derived();
+    }
+
+    /** \returns the matrix or vector obtained by evaluating this expression.
+     *
+     * Notice that in the case of a plain matrix or vector (not an expression) this function just returns
+     * a const reference, in order to avoid a useless copy.
+     */
+    EIGEN_STRONG_INLINE const typename internal::eval<Derived, IsSkyline>::type eval() const {
+        return typename internal::eval<Derived>::type(derived());
+    }
+
+protected:
+    bool m_isRValue;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SkylineMatrixBase_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineProduct.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineProduct.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineProduct.h	(revision 2476)
@@ -0,0 +1,295 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Guillaume Saupin <guillaume.saupin@cea.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SKYLINEPRODUCT_H
+#define EIGEN_SKYLINEPRODUCT_H
+
+namespace Eigen { 
+
+template<typename Lhs, typename Rhs, int ProductMode>
+struct SkylineProductReturnType {
+    typedef const typename internal::nested<Lhs, Rhs::RowsAtCompileTime>::type LhsNested;
+    typedef const typename internal::nested<Rhs, Lhs::RowsAtCompileTime>::type RhsNested;
+
+    typedef SkylineProduct<LhsNested, RhsNested, ProductMode> Type;
+};
+
+template<typename LhsNested, typename RhsNested, int ProductMode>
+struct internal::traits<SkylineProduct<LhsNested, RhsNested, ProductMode> > {
+    // clean the nested types:
+    typedef typename internal::remove_all<LhsNested>::type _LhsNested;
+    typedef typename internal::remove_all<RhsNested>::type _RhsNested;
+    typedef typename _LhsNested::Scalar Scalar;
+
+    enum {
+        LhsCoeffReadCost = _LhsNested::CoeffReadCost,
+        RhsCoeffReadCost = _RhsNested::CoeffReadCost,
+        LhsFlags = _LhsNested::Flags,
+        RhsFlags = _RhsNested::Flags,
+
+        RowsAtCompileTime = _LhsNested::RowsAtCompileTime,
+        ColsAtCompileTime = _RhsNested::ColsAtCompileTime,
+        InnerSize = EIGEN_SIZE_MIN_PREFER_FIXED(_LhsNested::ColsAtCompileTime, _RhsNested::RowsAtCompileTime),
+
+        MaxRowsAtCompileTime = _LhsNested::MaxRowsAtCompileTime,
+        MaxColsAtCompileTime = _RhsNested::MaxColsAtCompileTime,
+
+        EvalToRowMajor = (RhsFlags & LhsFlags & RowMajorBit),
+        ResultIsSkyline = ProductMode == SkylineTimeSkylineProduct,
+
+        RemovedBits = ~((EvalToRowMajor ? 0 : RowMajorBit) | (ResultIsSkyline ? 0 : SkylineBit)),
+
+        Flags = (int(LhsFlags | RhsFlags) & HereditaryBits & RemovedBits)
+        | EvalBeforeAssigningBit
+        | EvalBeforeNestingBit,
+
+        CoeffReadCost = Dynamic
+    };
+
+    typedef typename internal::conditional<ResultIsSkyline,
+            SkylineMatrixBase<SkylineProduct<LhsNested, RhsNested, ProductMode> >,
+            MatrixBase<SkylineProduct<LhsNested, RhsNested, ProductMode> > >::type Base;
+};
+
+namespace internal {
+template<typename LhsNested, typename RhsNested, int ProductMode>
+class SkylineProduct : no_assignment_operator,
+public traits<SkylineProduct<LhsNested, RhsNested, ProductMode> >::Base {
+public:
+
+    EIGEN_GENERIC_PUBLIC_INTERFACE(SkylineProduct)
+
+private:
+
+    typedef typename traits<SkylineProduct>::_LhsNested _LhsNested;
+    typedef typename traits<SkylineProduct>::_RhsNested _RhsNested;
+
+public:
+
+    template<typename Lhs, typename Rhs>
+    EIGEN_STRONG_INLINE SkylineProduct(const Lhs& lhs, const Rhs& rhs)
+    : m_lhs(lhs), m_rhs(rhs) {
+        eigen_assert(lhs.cols() == rhs.rows());
+
+        enum {
+            ProductIsValid = _LhsNested::ColsAtCompileTime == Dynamic
+            || _RhsNested::RowsAtCompileTime == Dynamic
+            || int(_LhsNested::ColsAtCompileTime) == int(_RhsNested::RowsAtCompileTime),
+            AreVectors = _LhsNested::IsVectorAtCompileTime && _RhsNested::IsVectorAtCompileTime,
+            SameSizes = EIGEN_PREDICATE_SAME_MATRIX_SIZE(_LhsNested, _RhsNested)
+        };
+        // note to the lost user:
+        //    * for a dot product use: v1.dot(v2)
+        //    * for a coeff-wise product use: v1.cwise()*v2
+        EIGEN_STATIC_ASSERT(ProductIsValid || !(AreVectors && SameSizes),
+                INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS)
+                EIGEN_STATIC_ASSERT(ProductIsValid || !(SameSizes && !AreVectors),
+                INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION)
+                EIGEN_STATIC_ASSERT(ProductIsValid || SameSizes, INVALID_MATRIX_PRODUCT)
+    }
+
+    EIGEN_STRONG_INLINE Index rows() const {
+        return m_lhs.rows();
+    }
+
+    EIGEN_STRONG_INLINE Index cols() const {
+        return m_rhs.cols();
+    }
+
+    EIGEN_STRONG_INLINE const _LhsNested& lhs() const {
+        return m_lhs;
+    }
+
+    EIGEN_STRONG_INLINE const _RhsNested& rhs() const {
+        return m_rhs;
+    }
+
+protected:
+    LhsNested m_lhs;
+    RhsNested m_rhs;
+};
+
+// dense = skyline * dense
+// Note that here we force no inlining and separate the setZero() because GCC messes up otherwise
+
+template<typename Lhs, typename Rhs, typename Dest>
+EIGEN_DONT_INLINE void skyline_row_major_time_dense_product(const Lhs& lhs, const Rhs& rhs, Dest& dst) {
+    typedef typename remove_all<Lhs>::type _Lhs;
+    typedef typename remove_all<Rhs>::type _Rhs;
+    typedef typename traits<Lhs>::Scalar Scalar;
+
+    enum {
+        LhsIsRowMajor = (_Lhs::Flags & RowMajorBit) == RowMajorBit,
+        LhsIsSelfAdjoint = (_Lhs::Flags & SelfAdjointBit) == SelfAdjointBit,
+        ProcessFirstHalf = LhsIsSelfAdjoint
+        && (((_Lhs::Flags & (UpperTriangularBit | LowerTriangularBit)) == 0)
+        || ((_Lhs::Flags & UpperTriangularBit) && !LhsIsRowMajor)
+        || ((_Lhs::Flags & LowerTriangularBit) && LhsIsRowMajor)),
+        ProcessSecondHalf = LhsIsSelfAdjoint && (!ProcessFirstHalf)
+    };
+
+    //Use matrix diagonal part <- Improvement : use inner iterator on dense matrix.
+    for (Index col = 0; col < rhs.cols(); col++) {
+        for (Index row = 0; row < lhs.rows(); row++) {
+            dst(row, col) = lhs.coeffDiag(row) * rhs(row, col);
+        }
+    }
+    //Use matrix lower triangular part
+    for (Index row = 0; row < lhs.rows(); row++) {
+        typename _Lhs::InnerLowerIterator lIt(lhs, row);
+        const Index stop = lIt.col() + lIt.size();
+        for (Index col = 0; col < rhs.cols(); col++) {
+
+            Index k = lIt.col();
+            Scalar tmp = 0;
+            while (k < stop) {
+                tmp +=
+                        lIt.value() *
+                        rhs(k++, col);
+                ++lIt;
+            }
+            dst(row, col) += tmp;
+            lIt += -lIt.size();
+        }
+
+    }
+
+    //Use matrix upper triangular part
+    for (Index lhscol = 0; lhscol < lhs.cols(); lhscol++) {
+        typename _Lhs::InnerUpperIterator uIt(lhs, lhscol);
+        const Index stop = uIt.size() + uIt.row();
+        for (Index rhscol = 0; rhscol < rhs.cols(); rhscol++) {
+
+
+            const Scalar rhsCoeff = rhs.coeff(lhscol, rhscol);
+            Index k = uIt.row();
+            while (k < stop) {
+                dst(k++, rhscol) +=
+                        uIt.value() *
+                        rhsCoeff;
+                ++uIt;
+            }
+            uIt += -uIt.size();
+        }
+    }
+
+}
+
+template<typename Lhs, typename Rhs, typename Dest>
+EIGEN_DONT_INLINE void skyline_col_major_time_dense_product(const Lhs& lhs, const Rhs& rhs, Dest& dst) {
+    typedef typename remove_all<Lhs>::type _Lhs;
+    typedef typename remove_all<Rhs>::type _Rhs;
+    typedef typename traits<Lhs>::Scalar Scalar;
+
+    enum {
+        LhsIsRowMajor = (_Lhs::Flags & RowMajorBit) == RowMajorBit,
+        LhsIsSelfAdjoint = (_Lhs::Flags & SelfAdjointBit) == SelfAdjointBit,
+        ProcessFirstHalf = LhsIsSelfAdjoint
+        && (((_Lhs::Flags & (UpperTriangularBit | LowerTriangularBit)) == 0)
+        || ((_Lhs::Flags & UpperTriangularBit) && !LhsIsRowMajor)
+        || ((_Lhs::Flags & LowerTriangularBit) && LhsIsRowMajor)),
+        ProcessSecondHalf = LhsIsSelfAdjoint && (!ProcessFirstHalf)
+    };
+
+    //Use matrix diagonal part <- Improvement : use inner iterator on dense matrix.
+    for (Index col = 0; col < rhs.cols(); col++) {
+        for (Index row = 0; row < lhs.rows(); row++) {
+            dst(row, col) = lhs.coeffDiag(row) * rhs(row, col);
+        }
+    }
+
+    //Use matrix upper triangular part
+    for (Index row = 0; row < lhs.rows(); row++) {
+        typename _Lhs::InnerUpperIterator uIt(lhs, row);
+        const Index stop = uIt.col() + uIt.size();
+        for (Index col = 0; col < rhs.cols(); col++) {
+
+            Index k = uIt.col();
+            Scalar tmp = 0;
+            while (k < stop) {
+                tmp +=
+                        uIt.value() *
+                        rhs(k++, col);
+                ++uIt;
+            }
+
+
+            dst(row, col) += tmp;
+            uIt += -uIt.size();
+        }
+    }
+
+    //Use matrix lower triangular part
+    for (Index lhscol = 0; lhscol < lhs.cols(); lhscol++) {
+        typename _Lhs::InnerLowerIterator lIt(lhs, lhscol);
+        const Index stop = lIt.size() + lIt.row();
+        for (Index rhscol = 0; rhscol < rhs.cols(); rhscol++) {
+
+            const Scalar rhsCoeff = rhs.coeff(lhscol, rhscol);
+            Index k = lIt.row();
+            while (k < stop) {
+                dst(k++, rhscol) +=
+                        lIt.value() *
+                        rhsCoeff;
+                ++lIt;
+            }
+            lIt += -lIt.size();
+        }
+    }
+
+}
+
+template<typename Lhs, typename Rhs, typename ResultType,
+        int LhsStorageOrder = traits<Lhs>::Flags&RowMajorBit>
+        struct skyline_product_selector;
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct skyline_product_selector<Lhs, Rhs, ResultType, RowMajor> {
+    typedef typename traits<typename remove_all<Lhs>::type>::Scalar Scalar;
+
+    static void run(const Lhs& lhs, const Rhs& rhs, ResultType & res) {
+        skyline_row_major_time_dense_product<Lhs, Rhs, ResultType > (lhs, rhs, res);
+    }
+};
+
+template<typename Lhs, typename Rhs, typename ResultType>
+struct skyline_product_selector<Lhs, Rhs, ResultType, ColMajor> {
+    typedef typename traits<typename remove_all<Lhs>::type>::Scalar Scalar;
+
+    static void run(const Lhs& lhs, const Rhs& rhs, ResultType & res) {
+        skyline_col_major_time_dense_product<Lhs, Rhs, ResultType > (lhs, rhs, res);
+    }
+};
+
+} // end namespace internal
+
+// template<typename Derived>
+// template<typename Lhs, typename Rhs >
+// Derived & MatrixBase<Derived>::lazyAssign(const SkylineProduct<Lhs, Rhs, SkylineTimeDenseProduct>& product) {
+//     typedef typename internal::remove_all<Lhs>::type _Lhs;
+//     internal::skyline_product_selector<typename internal::remove_all<Lhs>::type,
+//             typename internal::remove_all<Rhs>::type,
+//             Derived>::run(product.lhs(), product.rhs(), derived());
+// 
+//     return derived();
+// }
+
+// skyline * dense
+
+template<typename Derived>
+template<typename OtherDerived >
+EIGEN_STRONG_INLINE const typename SkylineProductReturnType<Derived, OtherDerived>::Type
+SkylineMatrixBase<Derived>::operator*(const MatrixBase<OtherDerived> &other) const {
+
+    return typename SkylineProductReturnType<Derived, OtherDerived>::Type(derived(), other.derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SKYLINEPRODUCT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineMatrix.h	(revision 2476)
@@ -0,0 +1,862 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Guillaume Saupin <guillaume.saupin@cea.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SKYLINEMATRIX_H
+#define EIGEN_SKYLINEMATRIX_H
+
+#include "SkylineStorage.h"
+#include "SkylineMatrixBase.h"
+
+namespace Eigen { 
+
+/** \ingroup Skyline_Module
+ *
+ * \class SkylineMatrix
+ *
+ * \brief The main skyline matrix class
+ *
+ * This class implements a skyline matrix using the very uncommon storage
+ * scheme.
+ *
+ * \param _Scalar the scalar type, i.e. the type of the coefficients
+ * \param _Options Union of bit flags controlling the storage scheme. Currently the only possibility
+ *                 is RowMajor. The default is 0 which means column-major.
+ *
+ *
+ */
+namespace internal {
+template<typename _Scalar, int _Options>
+struct traits<SkylineMatrix<_Scalar, _Options> > {
+    typedef _Scalar Scalar;
+    typedef Sparse StorageKind;
+
+    enum {
+        RowsAtCompileTime = Dynamic,
+        ColsAtCompileTime = Dynamic,
+        MaxRowsAtCompileTime = Dynamic,
+        MaxColsAtCompileTime = Dynamic,
+        Flags = SkylineBit | _Options,
+        CoeffReadCost = NumTraits<Scalar>::ReadCost,
+    };
+};
+}
+
+template<typename _Scalar, int _Options>
+class SkylineMatrix
+: public SkylineMatrixBase<SkylineMatrix<_Scalar, _Options> > {
+public:
+    EIGEN_SKYLINE_GENERIC_PUBLIC_INTERFACE(SkylineMatrix)
+    EIGEN_SKYLINE_INHERIT_ASSIGNMENT_OPERATOR(SkylineMatrix, +=)
+    EIGEN_SKYLINE_INHERIT_ASSIGNMENT_OPERATOR(SkylineMatrix, -=)
+
+    using Base::IsRowMajor;
+
+protected:
+
+    typedef SkylineMatrix<Scalar, (Flags&~RowMajorBit) | (IsRowMajor ? RowMajorBit : 0) > TransposedSkylineMatrix;
+
+    Index m_outerSize;
+    Index m_innerSize;
+
+public:
+    Index* m_colStartIndex;
+    Index* m_rowStartIndex;
+    SkylineStorage<Scalar> m_data;
+
+public:
+
+    inline Index rows() const {
+        return IsRowMajor ? m_outerSize : m_innerSize;
+    }
+
+    inline Index cols() const {
+        return IsRowMajor ? m_innerSize : m_outerSize;
+    }
+
+    inline Index innerSize() const {
+        return m_innerSize;
+    }
+
+    inline Index outerSize() const {
+        return m_outerSize;
+    }
+
+    inline Index upperNonZeros() const {
+        return m_data.upperSize();
+    }
+
+    inline Index lowerNonZeros() const {
+        return m_data.lowerSize();
+    }
+
+    inline Index upperNonZeros(Index j) const {
+        return m_colStartIndex[j + 1] - m_colStartIndex[j];
+    }
+
+    inline Index lowerNonZeros(Index j) const {
+        return m_rowStartIndex[j + 1] - m_rowStartIndex[j];
+    }
+
+    inline const Scalar* _diagPtr() const {
+        return &m_data.diag(0);
+    }
+
+    inline Scalar* _diagPtr() {
+        return &m_data.diag(0);
+    }
+
+    inline const Scalar* _upperPtr() const {
+        return &m_data.upper(0);
+    }
+
+    inline Scalar* _upperPtr() {
+        return &m_data.upper(0);
+    }
+
+    inline const Scalar* _lowerPtr() const {
+        return &m_data.lower(0);
+    }
+
+    inline Scalar* _lowerPtr() {
+        return &m_data.lower(0);
+    }
+
+    inline const Index* _upperProfilePtr() const {
+        return &m_data.upperProfile(0);
+    }
+
+    inline Index* _upperProfilePtr() {
+        return &m_data.upperProfile(0);
+    }
+
+    inline const Index* _lowerProfilePtr() const {
+        return &m_data.lowerProfile(0);
+    }
+
+    inline Index* _lowerProfilePtr() {
+        return &m_data.lowerProfile(0);
+    }
+
+    inline Scalar coeff(Index row, Index col) const {
+        const Index outer = IsRowMajor ? row : col;
+        const Index inner = IsRowMajor ? col : row;
+
+        eigen_assert(outer < outerSize());
+        eigen_assert(inner < innerSize());
+
+        if (outer == inner)
+            return this->m_data.diag(outer);
+
+        if (IsRowMajor) {
+            if (inner > outer) //upper matrix
+            {
+                const Index minOuterIndex = inner - m_data.upperProfile(inner);
+                if (outer >= minOuterIndex)
+                    return this->m_data.upper(m_colStartIndex[inner] + outer - (inner - m_data.upperProfile(inner)));
+                else
+                    return Scalar(0);
+            }
+            if (inner < outer) //lower matrix
+            {
+                const Index minInnerIndex = outer - m_data.lowerProfile(outer);
+                if (inner >= minInnerIndex)
+                    return this->m_data.lower(m_rowStartIndex[outer] + inner - (outer - m_data.lowerProfile(outer)));
+                else
+                    return Scalar(0);
+            }
+            return m_data.upper(m_colStartIndex[inner] + outer - inner);
+        } else {
+            if (outer > inner) //upper matrix
+            {
+                const Index maxOuterIndex = inner + m_data.upperProfile(inner);
+                if (outer <= maxOuterIndex)
+                    return this->m_data.upper(m_colStartIndex[inner] + (outer - inner));
+                else
+                    return Scalar(0);
+            }
+            if (outer < inner) //lower matrix
+            {
+                const Index maxInnerIndex = outer + m_data.lowerProfile(outer);
+
+                if (inner <= maxInnerIndex)
+                    return this->m_data.lower(m_rowStartIndex[outer] + (inner - outer));
+                else
+                    return Scalar(0);
+            }
+        }
+    }
+
+    inline Scalar& coeffRef(Index row, Index col) {
+        const Index outer = IsRowMajor ? row : col;
+        const Index inner = IsRowMajor ? col : row;
+
+        eigen_assert(outer < outerSize());
+        eigen_assert(inner < innerSize());
+
+        if (outer == inner)
+            return this->m_data.diag(outer);
+
+        if (IsRowMajor) {
+            if (col > row) //upper matrix
+            {
+                const Index minOuterIndex = inner - m_data.upperProfile(inner);
+                eigen_assert(outer >= minOuterIndex && "you try to acces a coeff that do not exist in the storage");
+                return this->m_data.upper(m_colStartIndex[inner] + outer - (inner - m_data.upperProfile(inner)));
+            }
+            if (col < row) //lower matrix
+            {
+                const Index minInnerIndex = outer - m_data.lowerProfile(outer);
+                eigen_assert(inner >= minInnerIndex && "you try to acces a coeff that do not exist in the storage");
+                return this->m_data.lower(m_rowStartIndex[outer] + inner - (outer - m_data.lowerProfile(outer)));
+            }
+        } else {
+            if (outer > inner) //upper matrix
+            {
+                const Index maxOuterIndex = inner + m_data.upperProfile(inner);
+                eigen_assert(outer <= maxOuterIndex && "you try to acces a coeff that do not exist in the storage");
+                return this->m_data.upper(m_colStartIndex[inner] + (outer - inner));
+            }
+            if (outer < inner) //lower matrix
+            {
+                const Index maxInnerIndex = outer + m_data.lowerProfile(outer);
+                eigen_assert(inner <= maxInnerIndex && "you try to acces a coeff that do not exist in the storage");
+                return this->m_data.lower(m_rowStartIndex[outer] + (inner - outer));
+            }
+        }
+    }
+
+    inline Scalar coeffDiag(Index idx) const {
+        eigen_assert(idx < outerSize());
+        eigen_assert(idx < innerSize());
+        return this->m_data.diag(idx);
+    }
+
+    inline Scalar coeffLower(Index row, Index col) const {
+        const Index outer = IsRowMajor ? row : col;
+        const Index inner = IsRowMajor ? col : row;
+
+        eigen_assert(outer < outerSize());
+        eigen_assert(inner < innerSize());
+        eigen_assert(inner != outer);
+
+        if (IsRowMajor) {
+            const Index minInnerIndex = outer - m_data.lowerProfile(outer);
+            if (inner >= minInnerIndex)
+                return this->m_data.lower(m_rowStartIndex[outer] + inner - (outer - m_data.lowerProfile(outer)));
+            else
+                return Scalar(0);
+
+        } else {
+            const Index maxInnerIndex = outer + m_data.lowerProfile(outer);
+            if (inner <= maxInnerIndex)
+                return this->m_data.lower(m_rowStartIndex[outer] + (inner - outer));
+            else
+                return Scalar(0);
+        }
+    }
+
+    inline Scalar coeffUpper(Index row, Index col) const {
+        const Index outer = IsRowMajor ? row : col;
+        const Index inner = IsRowMajor ? col : row;
+
+        eigen_assert(outer < outerSize());
+        eigen_assert(inner < innerSize());
+        eigen_assert(inner != outer);
+
+        if (IsRowMajor) {
+            const Index minOuterIndex = inner - m_data.upperProfile(inner);
+            if (outer >= minOuterIndex)
+                return this->m_data.upper(m_colStartIndex[inner] + outer - (inner - m_data.upperProfile(inner)));
+            else
+                return Scalar(0);
+        } else {
+            const Index maxOuterIndex = inner + m_data.upperProfile(inner);
+            if (outer <= maxOuterIndex)
+                return this->m_data.upper(m_colStartIndex[inner] + (outer - inner));
+            else
+                return Scalar(0);
+        }
+    }
+
+    inline Scalar& coeffRefDiag(Index idx) {
+        eigen_assert(idx < outerSize());
+        eigen_assert(idx < innerSize());
+        return this->m_data.diag(idx);
+    }
+
+    inline Scalar& coeffRefLower(Index row, Index col) {
+        const Index outer = IsRowMajor ? row : col;
+        const Index inner = IsRowMajor ? col : row;
+
+        eigen_assert(outer < outerSize());
+        eigen_assert(inner < innerSize());
+        eigen_assert(inner != outer);
+
+        if (IsRowMajor) {
+            const Index minInnerIndex = outer - m_data.lowerProfile(outer);
+            eigen_assert(inner >= minInnerIndex && "you try to acces a coeff that do not exist in the storage");
+            return this->m_data.lower(m_rowStartIndex[outer] + inner - (outer - m_data.lowerProfile(outer)));
+        } else {
+            const Index maxInnerIndex = outer + m_data.lowerProfile(outer);
+            eigen_assert(inner <= maxInnerIndex && "you try to acces a coeff that do not exist in the storage");
+            return this->m_data.lower(m_rowStartIndex[outer] + (inner - outer));
+        }
+    }
+
+    inline bool coeffExistLower(Index row, Index col) {
+        const Index outer = IsRowMajor ? row : col;
+        const Index inner = IsRowMajor ? col : row;
+
+        eigen_assert(outer < outerSize());
+        eigen_assert(inner < innerSize());
+        eigen_assert(inner != outer);
+
+        if (IsRowMajor) {
+            const Index minInnerIndex = outer - m_data.lowerProfile(outer);
+            return inner >= minInnerIndex;
+        } else {
+            const Index maxInnerIndex = outer + m_data.lowerProfile(outer);
+            return inner <= maxInnerIndex;
+        }
+    }
+
+    inline Scalar& coeffRefUpper(Index row, Index col) {
+        const Index outer = IsRowMajor ? row : col;
+        const Index inner = IsRowMajor ? col : row;
+
+        eigen_assert(outer < outerSize());
+        eigen_assert(inner < innerSize());
+        eigen_assert(inner != outer);
+
+        if (IsRowMajor) {
+            const Index minOuterIndex = inner - m_data.upperProfile(inner);
+            eigen_assert(outer >= minOuterIndex && "you try to acces a coeff that do not exist in the storage");
+            return this->m_data.upper(m_colStartIndex[inner] + outer - (inner - m_data.upperProfile(inner)));
+        } else {
+            const Index maxOuterIndex = inner + m_data.upperProfile(inner);
+            eigen_assert(outer <= maxOuterIndex && "you try to acces a coeff that do not exist in the storage");
+            return this->m_data.upper(m_colStartIndex[inner] + (outer - inner));
+        }
+    }
+
+    inline bool coeffExistUpper(Index row, Index col) {
+        const Index outer = IsRowMajor ? row : col;
+        const Index inner = IsRowMajor ? col : row;
+
+        eigen_assert(outer < outerSize());
+        eigen_assert(inner < innerSize());
+        eigen_assert(inner != outer);
+
+        if (IsRowMajor) {
+            const Index minOuterIndex = inner - m_data.upperProfile(inner);
+            return outer >= minOuterIndex;
+        } else {
+            const Index maxOuterIndex = inner + m_data.upperProfile(inner);
+            return outer <= maxOuterIndex;
+        }
+    }
+
+
+protected:
+
+public:
+    class InnerUpperIterator;
+    class InnerLowerIterator;
+
+    class OuterUpperIterator;
+    class OuterLowerIterator;
+
+    /** Removes all non zeros */
+    inline void setZero() {
+        m_data.clear();
+        memset(m_colStartIndex, 0, (m_outerSize + 1) * sizeof (Index));
+        memset(m_rowStartIndex, 0, (m_outerSize + 1) * sizeof (Index));
+    }
+
+    /** \returns the number of non zero coefficients */
+    inline Index nonZeros() const {
+        return m_data.diagSize() + m_data.upperSize() + m_data.lowerSize();
+    }
+
+    /** Preallocates \a reserveSize non zeros */
+    inline void reserve(Index reserveSize, Index reserveUpperSize, Index reserveLowerSize) {
+        m_data.reserve(reserveSize, reserveUpperSize, reserveLowerSize);
+    }
+
+    /** \returns a reference to a novel non zero coefficient with coordinates \a row x \a col.
+
+     *
+     * \warning This function can be extremely slow if the non zero coefficients
+     * are not inserted in a coherent order.
+     *
+     * After an insertion session, you should call the finalize() function.
+     */
+    EIGEN_DONT_INLINE Scalar & insert(Index row, Index col) {
+        const Index outer = IsRowMajor ? row : col;
+        const Index inner = IsRowMajor ? col : row;
+
+        eigen_assert(outer < outerSize());
+        eigen_assert(inner < innerSize());
+
+        if (outer == inner)
+            return m_data.diag(col);
+
+        if (IsRowMajor) {
+            if (outer < inner) //upper matrix
+            {
+                Index minOuterIndex = 0;
+                minOuterIndex = inner - m_data.upperProfile(inner);
+
+                if (outer < minOuterIndex) //The value does not yet exist
+                {
+                    const Index previousProfile = m_data.upperProfile(inner);
+
+                    m_data.upperProfile(inner) = inner - outer;
+
+
+                    const Index bandIncrement = m_data.upperProfile(inner) - previousProfile;
+                    //shift data stored after this new one
+                    const Index stop = m_colStartIndex[cols()];
+                    const Index start = m_colStartIndex[inner];
+
+
+                    for (Index innerIdx = stop; innerIdx >= start; innerIdx--) {
+                        m_data.upper(innerIdx + bandIncrement) = m_data.upper(innerIdx);
+                    }
+
+                    for (Index innerIdx = cols(); innerIdx > inner; innerIdx--) {
+                        m_colStartIndex[innerIdx] += bandIncrement;
+                    }
+
+                    //zeros new data
+                    memset(this->_upperPtr() + start, 0, (bandIncrement - 1) * sizeof (Scalar));
+
+                    return m_data.upper(m_colStartIndex[inner]);
+                } else {
+                    return m_data.upper(m_colStartIndex[inner] + outer - (inner - m_data.upperProfile(inner)));
+                }
+            }
+
+            if (outer > inner) //lower matrix
+            {
+                const Index minInnerIndex = outer - m_data.lowerProfile(outer);
+                if (inner < minInnerIndex) //The value does not yet exist
+                {
+                    const Index previousProfile = m_data.lowerProfile(outer);
+                    m_data.lowerProfile(outer) = outer - inner;
+
+                    const Index bandIncrement = m_data.lowerProfile(outer) - previousProfile;
+                    //shift data stored after this new one
+                    const Index stop = m_rowStartIndex[rows()];
+                    const Index start = m_rowStartIndex[outer];
+
+
+                    for (Index innerIdx = stop; innerIdx >= start; innerIdx--) {
+                        m_data.lower(innerIdx + bandIncrement) = m_data.lower(innerIdx);
+                    }
+
+                    for (Index innerIdx = rows(); innerIdx > outer; innerIdx--) {
+                        m_rowStartIndex[innerIdx] += bandIncrement;
+                    }
+
+                    //zeros new data
+                    memset(this->_lowerPtr() + start, 0, (bandIncrement - 1) * sizeof (Scalar));
+                    return m_data.lower(m_rowStartIndex[outer]);
+                } else {
+                    return m_data.lower(m_rowStartIndex[outer] + inner - (outer - m_data.lowerProfile(outer)));
+                }
+            }
+        } else {
+            if (outer > inner) //upper matrix
+            {
+                const Index maxOuterIndex = inner + m_data.upperProfile(inner);
+                if (outer > maxOuterIndex) //The value does not yet exist
+                {
+                    const Index previousProfile = m_data.upperProfile(inner);
+                    m_data.upperProfile(inner) = outer - inner;
+
+                    const Index bandIncrement = m_data.upperProfile(inner) - previousProfile;
+                    //shift data stored after this new one
+                    const Index stop = m_rowStartIndex[rows()];
+                    const Index start = m_rowStartIndex[inner + 1];
+
+                    for (Index innerIdx = stop; innerIdx >= start; innerIdx--) {
+                        m_data.upper(innerIdx + bandIncrement) = m_data.upper(innerIdx);
+                    }
+
+                    for (Index innerIdx = inner + 1; innerIdx < outerSize() + 1; innerIdx++) {
+                        m_rowStartIndex[innerIdx] += bandIncrement;
+                    }
+                    memset(this->_upperPtr() + m_rowStartIndex[inner] + previousProfile + 1, 0, (bandIncrement - 1) * sizeof (Scalar));
+                    return m_data.upper(m_rowStartIndex[inner] + m_data.upperProfile(inner));
+                } else {
+                    return m_data.upper(m_rowStartIndex[inner] + (outer - inner));
+                }
+            }
+
+            if (outer < inner) //lower matrix
+            {
+                const Index maxInnerIndex = outer + m_data.lowerProfile(outer);
+                if (inner > maxInnerIndex) //The value does not yet exist
+                {
+                    const Index previousProfile = m_data.lowerProfile(outer);
+                    m_data.lowerProfile(outer) = inner - outer;
+
+                    const Index bandIncrement = m_data.lowerProfile(outer) - previousProfile;
+                    //shift data stored after this new one
+                    const Index stop = m_colStartIndex[cols()];
+                    const Index start = m_colStartIndex[outer + 1];
+
+                    for (Index innerIdx = stop; innerIdx >= start; innerIdx--) {
+                        m_data.lower(innerIdx + bandIncrement) = m_data.lower(innerIdx);
+                    }
+
+                    for (Index innerIdx = outer + 1; innerIdx < outerSize() + 1; innerIdx++) {
+                        m_colStartIndex[innerIdx] += bandIncrement;
+                    }
+                    memset(this->_lowerPtr() + m_colStartIndex[outer] + previousProfile + 1, 0, (bandIncrement - 1) * sizeof (Scalar));
+                    return m_data.lower(m_colStartIndex[outer] + m_data.lowerProfile(outer));
+                } else {
+                    return m_data.lower(m_colStartIndex[outer] + (inner - outer));
+                }
+            }
+        }
+    }
+
+    /** Must be called after inserting a set of non zero entries.
+     */
+    inline void finalize() {
+        if (IsRowMajor) {
+            if (rows() > cols())
+                m_data.resize(cols(), cols(), rows(), m_colStartIndex[cols()] + 1, m_rowStartIndex[rows()] + 1);
+            else
+                m_data.resize(rows(), cols(), rows(), m_colStartIndex[cols()] + 1, m_rowStartIndex[rows()] + 1);
+
+            //            eigen_assert(rows() == cols() && "memory reorganisatrion only works with suare matrix");
+            //
+            //            Scalar* newArray = new Scalar[m_colStartIndex[cols()] + 1 + m_rowStartIndex[rows()] + 1];
+            //            Index dataIdx = 0;
+            //            for (Index row = 0; row < rows(); row++) {
+            //
+            //                const Index nbLowerElts = m_rowStartIndex[row + 1] - m_rowStartIndex[row];
+            //                //                std::cout << "nbLowerElts" << nbLowerElts << std::endl;
+            //                memcpy(newArray + dataIdx, m_data.m_lower + m_rowStartIndex[row], nbLowerElts * sizeof (Scalar));
+            //                m_rowStartIndex[row] = dataIdx;
+            //                dataIdx += nbLowerElts;
+            //
+            //                const Index nbUpperElts = m_colStartIndex[row + 1] - m_colStartIndex[row];
+            //                memcpy(newArray + dataIdx, m_data.m_upper + m_colStartIndex[row], nbUpperElts * sizeof (Scalar));
+            //                m_colStartIndex[row] = dataIdx;
+            //                dataIdx += nbUpperElts;
+            //
+            //
+            //            }
+            //            //todo : don't access m_data profile directly : add an accessor from SkylineMatrix
+            //            m_rowStartIndex[rows()] = m_rowStartIndex[rows()-1] + m_data.lowerProfile(rows()-1);
+            //            m_colStartIndex[cols()] = m_colStartIndex[cols()-1] + m_data.upperProfile(cols()-1);
+            //
+            //            delete[] m_data.m_lower;
+            //            delete[] m_data.m_upper;
+            //
+            //            m_data.m_lower = newArray;
+            //            m_data.m_upper = newArray;
+        } else {
+            if (rows() > cols())
+                m_data.resize(cols(), rows(), cols(), m_rowStartIndex[cols()] + 1, m_colStartIndex[cols()] + 1);
+            else
+                m_data.resize(rows(), rows(), cols(), m_rowStartIndex[rows()] + 1, m_colStartIndex[rows()] + 1);
+        }
+    }
+
+    inline void squeeze() {
+        finalize();
+        m_data.squeeze();
+    }
+
+    void prune(Scalar reference, RealScalar epsilon = dummy_precision<RealScalar > ()) {
+        //TODO
+    }
+
+    /** Resizes the matrix to a \a rows x \a cols matrix and initializes it to zero
+     * \sa resizeNonZeros(Index), reserve(), setZero()
+     */
+    void resize(size_t rows, size_t cols) {
+        const Index diagSize = rows > cols ? cols : rows;
+        m_innerSize = IsRowMajor ? cols : rows;
+
+        eigen_assert(rows == cols && "Skyline matrix must be square matrix");
+
+        if (diagSize % 2) { // diagSize is odd
+            const Index k = (diagSize - 1) / 2;
+
+            m_data.resize(diagSize, IsRowMajor ? cols : rows, IsRowMajor ? rows : cols,
+                    2 * k * k + k + 1,
+                    2 * k * k + k + 1);
+
+        } else // diagSize is even
+        {
+            const Index k = diagSize / 2;
+            m_data.resize(diagSize, IsRowMajor ? cols : rows, IsRowMajor ? rows : cols,
+                    2 * k * k - k + 1,
+                    2 * k * k - k + 1);
+        }
+
+        if (m_colStartIndex && m_rowStartIndex) {
+            delete[] m_colStartIndex;
+            delete[] m_rowStartIndex;
+        }
+        m_colStartIndex = new Index [cols + 1];
+        m_rowStartIndex = new Index [rows + 1];
+        m_outerSize = diagSize;
+
+        m_data.reset();
+        m_data.clear();
+
+        m_outerSize = diagSize;
+        memset(m_colStartIndex, 0, (cols + 1) * sizeof (Index));
+        memset(m_rowStartIndex, 0, (rows + 1) * sizeof (Index));
+    }
+
+    void resizeNonZeros(Index size) {
+        m_data.resize(size);
+    }
+
+    inline SkylineMatrix()
+    : m_outerSize(-1), m_innerSize(0), m_colStartIndex(0), m_rowStartIndex(0) {
+        resize(0, 0);
+    }
+
+    inline SkylineMatrix(size_t rows, size_t cols)
+    : m_outerSize(0), m_innerSize(0), m_colStartIndex(0), m_rowStartIndex(0) {
+        resize(rows, cols);
+    }
+
+    template<typename OtherDerived>
+    inline SkylineMatrix(const SkylineMatrixBase<OtherDerived>& other)
+    : m_outerSize(0), m_innerSize(0), m_colStartIndex(0), m_rowStartIndex(0) {
+        *this = other.derived();
+    }
+
+    inline SkylineMatrix(const SkylineMatrix & other)
+    : Base(), m_outerSize(0), m_innerSize(0), m_colStartIndex(0), m_rowStartIndex(0) {
+        *this = other.derived();
+    }
+
+    inline void swap(SkylineMatrix & other) {
+        //EIGEN_DBG_SKYLINE(std::cout << "SkylineMatrix:: swap\n");
+        std::swap(m_colStartIndex, other.m_colStartIndex);
+        std::swap(m_rowStartIndex, other.m_rowStartIndex);
+        std::swap(m_innerSize, other.m_innerSize);
+        std::swap(m_outerSize, other.m_outerSize);
+        m_data.swap(other.m_data);
+    }
+
+    inline SkylineMatrix & operator=(const SkylineMatrix & other) {
+        std::cout << "SkylineMatrix& operator=(const SkylineMatrix& other)\n";
+        if (other.isRValue()) {
+            swap(other.const_cast_derived());
+        } else {
+            resize(other.rows(), other.cols());
+            memcpy(m_colStartIndex, other.m_colStartIndex, (m_outerSize + 1) * sizeof (Index));
+            memcpy(m_rowStartIndex, other.m_rowStartIndex, (m_outerSize + 1) * sizeof (Index));
+            m_data = other.m_data;
+        }
+        return *this;
+    }
+
+    template<typename OtherDerived>
+            inline SkylineMatrix & operator=(const SkylineMatrixBase<OtherDerived>& other) {
+        const bool needToTranspose = (Flags & RowMajorBit) != (OtherDerived::Flags & RowMajorBit);
+        if (needToTranspose) {
+            //         TODO
+            //            return *this;
+        } else {
+            // there is no special optimization
+            return SkylineMatrixBase<SkylineMatrix>::operator=(other.derived());
+        }
+    }
+
+    friend std::ostream & operator <<(std::ostream & s, const SkylineMatrix & m) {
+
+        EIGEN_DBG_SKYLINE(
+        std::cout << "upper elements : " << std::endl;
+        for (Index i = 0; i < m.m_data.upperSize(); i++)
+            std::cout << m.m_data.upper(i) << "\t";
+        std::cout << std::endl;
+        std::cout << "upper profile : " << std::endl;
+        for (Index i = 0; i < m.m_data.upperProfileSize(); i++)
+            std::cout << m.m_data.upperProfile(i) << "\t";
+        std::cout << std::endl;
+        std::cout << "lower startIdx : " << std::endl;
+        for (Index i = 0; i < m.m_data.upperProfileSize(); i++)
+            std::cout << (IsRowMajor ? m.m_colStartIndex[i] : m.m_rowStartIndex[i]) << "\t";
+        std::cout << std::endl;
+
+
+        std::cout << "lower elements : " << std::endl;
+        for (Index i = 0; i < m.m_data.lowerSize(); i++)
+            std::cout << m.m_data.lower(i) << "\t";
+        std::cout << std::endl;
+        std::cout << "lower profile : " << std::endl;
+        for (Index i = 0; i < m.m_data.lowerProfileSize(); i++)
+            std::cout << m.m_data.lowerProfile(i) << "\t";
+        std::cout << std::endl;
+        std::cout << "lower startIdx : " << std::endl;
+        for (Index i = 0; i < m.m_data.lowerProfileSize(); i++)
+            std::cout << (IsRowMajor ? m.m_rowStartIndex[i] : m.m_colStartIndex[i]) << "\t";
+        std::cout << std::endl;
+        );
+        for (Index rowIdx = 0; rowIdx < m.rows(); rowIdx++) {
+            for (Index colIdx = 0; colIdx < m.cols(); colIdx++) {
+                s << m.coeff(rowIdx, colIdx) << "\t";
+            }
+            s << std::endl;
+        }
+        return s;
+    }
+
+    /** Destructor */
+    inline ~SkylineMatrix() {
+        delete[] m_colStartIndex;
+        delete[] m_rowStartIndex;
+    }
+
+    /** Overloaded for performance */
+    Scalar sum() const;
+};
+
+template<typename Scalar, int _Options>
+class SkylineMatrix<Scalar, _Options>::InnerUpperIterator {
+public:
+
+    InnerUpperIterator(const SkylineMatrix& mat, Index outer)
+    : m_matrix(mat), m_outer(outer),
+    m_id(_Options == RowMajor ? mat.m_colStartIndex[outer] : mat.m_rowStartIndex[outer] + 1),
+    m_start(m_id),
+    m_end(_Options == RowMajor ? mat.m_colStartIndex[outer + 1] : mat.m_rowStartIndex[outer + 1] + 1) {
+    }
+
+    inline InnerUpperIterator & operator++() {
+        m_id++;
+        return *this;
+    }
+
+    inline InnerUpperIterator & operator+=(Index shift) {
+        m_id += shift;
+        return *this;
+    }
+
+    inline Scalar value() const {
+        return m_matrix.m_data.upper(m_id);
+    }
+
+    inline Scalar* valuePtr() {
+        return const_cast<Scalar*> (&(m_matrix.m_data.upper(m_id)));
+    }
+
+    inline Scalar& valueRef() {
+        return const_cast<Scalar&> (m_matrix.m_data.upper(m_id));
+    }
+
+    inline Index index() const {
+        return IsRowMajor ? m_outer - m_matrix.m_data.upperProfile(m_outer) + (m_id - m_start) :
+                m_outer + (m_id - m_start) + 1;
+    }
+
+    inline Index row() const {
+        return IsRowMajor ? index() : m_outer;
+    }
+
+    inline Index col() const {
+        return IsRowMajor ? m_outer : index();
+    }
+
+    inline size_t size() const {
+        return m_matrix.m_data.upperProfile(m_outer);
+    }
+
+    inline operator bool() const {
+        return (m_id < m_end) && (m_id >= m_start);
+    }
+
+protected:
+    const SkylineMatrix& m_matrix;
+    const Index m_outer;
+    Index m_id;
+    const Index m_start;
+    const Index m_end;
+};
+
+template<typename Scalar, int _Options>
+class SkylineMatrix<Scalar, _Options>::InnerLowerIterator {
+public:
+
+    InnerLowerIterator(const SkylineMatrix& mat, Index outer)
+    : m_matrix(mat),
+    m_outer(outer),
+    m_id(_Options == RowMajor ? mat.m_rowStartIndex[outer] : mat.m_colStartIndex[outer] + 1),
+    m_start(m_id),
+    m_end(_Options == RowMajor ? mat.m_rowStartIndex[outer + 1] : mat.m_colStartIndex[outer + 1] + 1) {
+    }
+
+    inline InnerLowerIterator & operator++() {
+        m_id++;
+        return *this;
+    }
+
+    inline InnerLowerIterator & operator+=(Index shift) {
+        m_id += shift;
+        return *this;
+    }
+
+    inline Scalar value() const {
+        return m_matrix.m_data.lower(m_id);
+    }
+
+    inline Scalar* valuePtr() {
+        return const_cast<Scalar*> (&(m_matrix.m_data.lower(m_id)));
+    }
+
+    inline Scalar& valueRef() {
+        return const_cast<Scalar&> (m_matrix.m_data.lower(m_id));
+    }
+
+    inline Index index() const {
+        return IsRowMajor ? m_outer - m_matrix.m_data.lowerProfile(m_outer) + (m_id - m_start) :
+                m_outer + (m_id - m_start) + 1;
+        ;
+    }
+
+    inline Index row() const {
+        return IsRowMajor ? m_outer : index();
+    }
+
+    inline Index col() const {
+        return IsRowMajor ? index() : m_outer;
+    }
+
+    inline size_t size() const {
+        return m_matrix.m_data.lowerProfile(m_outer);
+    }
+
+    inline operator bool() const {
+        return (m_id < m_end) && (m_id >= m_start);
+    }
+
+protected:
+    const SkylineMatrix& m_matrix;
+    const Index m_outer;
+    Index m_id;
+    const Index m_start;
+    const Index m_end;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_SkylineMatrix_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineStorage.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineStorage.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Skyline/SkylineStorage.h	(revision 2476)
@@ -0,0 +1,259 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Guillaume Saupin <guillaume.saupin@cea.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SKYLINE_STORAGE_H
+#define EIGEN_SKYLINE_STORAGE_H
+
+namespace Eigen { 
+
+/** Stores a skyline set of values in three structures :
+ * The diagonal elements
+ * The upper elements
+ * The lower elements
+ *
+ */
+template<typename Scalar>
+class SkylineStorage {
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef SparseIndex Index;
+public:
+
+    SkylineStorage()
+    : m_diag(0),
+    m_lower(0),
+    m_upper(0),
+    m_lowerProfile(0),
+    m_upperProfile(0),
+    m_diagSize(0),
+    m_upperSize(0),
+    m_lowerSize(0),
+    m_upperProfileSize(0),
+    m_lowerProfileSize(0),
+    m_allocatedSize(0) {
+    }
+
+    SkylineStorage(const SkylineStorage& other)
+    : m_diag(0),
+    m_lower(0),
+    m_upper(0),
+    m_lowerProfile(0),
+    m_upperProfile(0),
+    m_diagSize(0),
+    m_upperSize(0),
+    m_lowerSize(0),
+    m_upperProfileSize(0),
+    m_lowerProfileSize(0),
+    m_allocatedSize(0) {
+        *this = other;
+    }
+
+    SkylineStorage & operator=(const SkylineStorage& other) {
+        resize(other.diagSize(), other.m_upperProfileSize, other.m_lowerProfileSize, other.upperSize(), other.lowerSize());
+        memcpy(m_diag, other.m_diag, m_diagSize * sizeof (Scalar));
+        memcpy(m_upper, other.m_upper, other.upperSize() * sizeof (Scalar));
+        memcpy(m_lower, other.m_lower, other.lowerSize() * sizeof (Scalar));
+        memcpy(m_upperProfile, other.m_upperProfile, m_upperProfileSize * sizeof (Index));
+        memcpy(m_lowerProfile, other.m_lowerProfile, m_lowerProfileSize * sizeof (Index));
+        return *this;
+    }
+
+    void swap(SkylineStorage& other) {
+        std::swap(m_diag, other.m_diag);
+        std::swap(m_upper, other.m_upper);
+        std::swap(m_lower, other.m_lower);
+        std::swap(m_upperProfile, other.m_upperProfile);
+        std::swap(m_lowerProfile, other.m_lowerProfile);
+        std::swap(m_diagSize, other.m_diagSize);
+        std::swap(m_upperSize, other.m_upperSize);
+        std::swap(m_lowerSize, other.m_lowerSize);
+        std::swap(m_allocatedSize, other.m_allocatedSize);
+    }
+
+    ~SkylineStorage() {
+        delete[] m_diag;
+        delete[] m_upper;
+        if (m_upper != m_lower)
+            delete[] m_lower;
+        delete[] m_upperProfile;
+        delete[] m_lowerProfile;
+    }
+
+    void reserve(Index size, Index upperProfileSize, Index lowerProfileSize, Index upperSize, Index lowerSize) {
+        Index newAllocatedSize = size + upperSize + lowerSize;
+        if (newAllocatedSize > m_allocatedSize)
+            reallocate(size, upperProfileSize, lowerProfileSize, upperSize, lowerSize);
+    }
+
+    void squeeze() {
+        if (m_allocatedSize > m_diagSize + m_upperSize + m_lowerSize)
+            reallocate(m_diagSize, m_upperProfileSize, m_lowerProfileSize, m_upperSize, m_lowerSize);
+    }
+
+    void resize(Index diagSize, Index upperProfileSize, Index lowerProfileSize, Index upperSize, Index lowerSize, float reserveSizeFactor = 0) {
+        if (m_allocatedSize < diagSize + upperSize + lowerSize)
+            reallocate(diagSize, upperProfileSize, lowerProfileSize, upperSize + Index(reserveSizeFactor * upperSize), lowerSize + Index(reserveSizeFactor * lowerSize));
+        m_diagSize = diagSize;
+        m_upperSize = upperSize;
+        m_lowerSize = lowerSize;
+        m_upperProfileSize = upperProfileSize;
+        m_lowerProfileSize = lowerProfileSize;
+    }
+
+    inline Index diagSize() const {
+        return m_diagSize;
+    }
+
+    inline Index upperSize() const {
+        return m_upperSize;
+    }
+
+    inline Index lowerSize() const {
+        return m_lowerSize;
+    }
+
+    inline Index upperProfileSize() const {
+        return m_upperProfileSize;
+    }
+
+    inline Index lowerProfileSize() const {
+        return m_lowerProfileSize;
+    }
+
+    inline Index allocatedSize() const {
+        return m_allocatedSize;
+    }
+
+    inline void clear() {
+        m_diagSize = 0;
+    }
+
+    inline Scalar& diag(Index i) {
+        return m_diag[i];
+    }
+
+    inline const Scalar& diag(Index i) const {
+        return m_diag[i];
+    }
+
+    inline Scalar& upper(Index i) {
+        return m_upper[i];
+    }
+
+    inline const Scalar& upper(Index i) const {
+        return m_upper[i];
+    }
+
+    inline Scalar& lower(Index i) {
+        return m_lower[i];
+    }
+
+    inline const Scalar& lower(Index i) const {
+        return m_lower[i];
+    }
+
+    inline Index& upperProfile(Index i) {
+        return m_upperProfile[i];
+    }
+
+    inline const Index& upperProfile(Index i) const {
+        return m_upperProfile[i];
+    }
+
+    inline Index& lowerProfile(Index i) {
+        return m_lowerProfile[i];
+    }
+
+    inline const Index& lowerProfile(Index i) const {
+        return m_lowerProfile[i];
+    }
+
+    static SkylineStorage Map(Index* upperProfile, Index* lowerProfile, Scalar* diag, Scalar* upper, Scalar* lower, Index size, Index upperSize, Index lowerSize) {
+        SkylineStorage res;
+        res.m_upperProfile = upperProfile;
+        res.m_lowerProfile = lowerProfile;
+        res.m_diag = diag;
+        res.m_upper = upper;
+        res.m_lower = lower;
+        res.m_allocatedSize = res.m_diagSize = size;
+        res.m_upperSize = upperSize;
+        res.m_lowerSize = lowerSize;
+        return res;
+    }
+
+    inline void reset() {
+        memset(m_diag, 0, m_diagSize * sizeof (Scalar));
+        memset(m_upper, 0, m_upperSize * sizeof (Scalar));
+        memset(m_lower, 0, m_lowerSize * sizeof (Scalar));
+        memset(m_upperProfile, 0, m_diagSize * sizeof (Index));
+        memset(m_lowerProfile, 0, m_diagSize * sizeof (Index));
+    }
+
+    void prune(Scalar reference, RealScalar epsilon = dummy_precision<RealScalar>()) {
+        //TODO
+    }
+
+protected:
+
+    inline void reallocate(Index diagSize, Index upperProfileSize, Index lowerProfileSize, Index upperSize, Index lowerSize) {
+
+        Scalar* diag = new Scalar[diagSize];
+        Scalar* upper = new Scalar[upperSize];
+        Scalar* lower = new Scalar[lowerSize];
+        Index* upperProfile = new Index[upperProfileSize];
+        Index* lowerProfile = new Index[lowerProfileSize];
+
+        Index copyDiagSize = (std::min)(diagSize, m_diagSize);
+        Index copyUpperSize = (std::min)(upperSize, m_upperSize);
+        Index copyLowerSize = (std::min)(lowerSize, m_lowerSize);
+        Index copyUpperProfileSize = (std::min)(upperProfileSize, m_upperProfileSize);
+        Index copyLowerProfileSize = (std::min)(lowerProfileSize, m_lowerProfileSize);
+
+        // copy
+        memcpy(diag, m_diag, copyDiagSize * sizeof (Scalar));
+        memcpy(upper, m_upper, copyUpperSize * sizeof (Scalar));
+        memcpy(lower, m_lower, copyLowerSize * sizeof (Scalar));
+        memcpy(upperProfile, m_upperProfile, copyUpperProfileSize * sizeof (Index));
+        memcpy(lowerProfile, m_lowerProfile, copyLowerProfileSize * sizeof (Index));
+
+
+
+        // delete old stuff
+        delete[] m_diag;
+        delete[] m_upper;
+        delete[] m_lower;
+        delete[] m_upperProfile;
+        delete[] m_lowerProfile;
+        m_diag = diag;
+        m_upper = upper;
+        m_lower = lower;
+        m_upperProfile = upperProfile;
+        m_lowerProfile = lowerProfile;
+        m_allocatedSize = diagSize + upperSize + lowerSize;
+        m_upperSize = upperSize;
+        m_lowerSize = lowerSize;
+    }
+
+public:
+    Scalar* m_diag;
+    Scalar* m_upper;
+    Scalar* m_lower;
+    Index* m_upperProfile;
+    Index* m_lowerProfile;
+    Index m_diagSize;
+    Index m_upperSize;
+    Index m_lowerSize;
+    Index m_upperProfileSize;
+    Index m_lowerProfileSize;
+    Index m_allocatedSize;
+
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPRESSED_STORAGE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/BVH/KdBVH.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/BVH/KdBVH.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/BVH/KdBVH.h	(revision 2476)
@@ -0,0 +1,222 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Ilya Baran <ibaran@mit.edu>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef KDBVH_H_INCLUDED
+#define KDBVH_H_INCLUDED
+
+namespace Eigen { 
+
+namespace internal {
+
+//internal pair class for the BVH--used instead of std::pair because of alignment
+template<typename Scalar, int Dim>
+struct vector_int_pair
+{
+EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar, Dim)
+  typedef Matrix<Scalar, Dim, 1> VectorType;
+
+  vector_int_pair(const VectorType &v, int i) : first(v), second(i) {}
+
+  VectorType first;
+  int second;
+};
+
+//these templates help the tree initializer get the bounding boxes either from a provided
+//iterator range or using bounding_box in a unified way
+template<typename ObjectList, typename VolumeList, typename BoxIter>
+struct get_boxes_helper {
+  void operator()(const ObjectList &objects, BoxIter boxBegin, BoxIter boxEnd, VolumeList &outBoxes)
+  {
+    outBoxes.insert(outBoxes.end(), boxBegin, boxEnd);
+    eigen_assert(outBoxes.size() == objects.size());
+  }
+};
+
+template<typename ObjectList, typename VolumeList>
+struct get_boxes_helper<ObjectList, VolumeList, int> {
+  void operator()(const ObjectList &objects, int, int, VolumeList &outBoxes)
+  {
+    outBoxes.reserve(objects.size());
+    for(int i = 0; i < (int)objects.size(); ++i)
+      outBoxes.push_back(bounding_box(objects[i]));
+  }
+};
+
+} // end namespace internal
+
+
+/** \class KdBVH
+ *  \brief A simple bounding volume hierarchy based on AlignedBox
+ *
+ *  \param _Scalar The underlying scalar type of the bounding boxes
+ *  \param _Dim The dimension of the space in which the hierarchy lives
+ *  \param _Object The object type that lives in the hierarchy.  It must have value semantics.  Either bounding_box(_Object) must
+ *                 be defined and return an AlignedBox<_Scalar, _Dim> or bounding boxes must be provided to the tree initializer.
+ *
+ *  This class provides a simple (as opposed to optimized) implementation of a bounding volume hierarchy analogous to a Kd-tree.
+ *  Given a sequence of objects, it computes their bounding boxes, constructs a Kd-tree of their centers
+ *  and builds a BVH with the structure of that Kd-tree.  When the elements of the tree are too expensive to be copied around,
+ *  it is useful for _Object to be a pointer.
+ */
+template<typename _Scalar, int _Dim, typename _Object> class KdBVH
+{
+public:
+  enum { Dim = _Dim };
+  typedef _Object Object;
+  typedef std::vector<Object, aligned_allocator<Object> > ObjectList;
+  typedef _Scalar Scalar;
+  typedef AlignedBox<Scalar, Dim> Volume;
+  typedef std::vector<Volume, aligned_allocator<Volume> > VolumeList;
+  typedef int Index;
+  typedef const int *VolumeIterator; //the iterators are just pointers into the tree's vectors
+  typedef const Object *ObjectIterator;
+
+  KdBVH() {}
+
+  /** Given an iterator range over \a Object references, constructs the BVH.  Requires that bounding_box(Object) return a Volume. */
+  template<typename Iter> KdBVH(Iter begin, Iter end) { init(begin, end, 0, 0); } //int is recognized by init as not being an iterator type
+
+  /** Given an iterator range over \a Object references and an iterator range over their bounding boxes, constructs the BVH */
+  template<typename OIter, typename BIter> KdBVH(OIter begin, OIter end, BIter boxBegin, BIter boxEnd) { init(begin, end, boxBegin, boxEnd); }
+
+  /** Given an iterator range over \a Object references, constructs the BVH, overwriting whatever is in there currently.
+    * Requires that bounding_box(Object) return a Volume. */
+  template<typename Iter> void init(Iter begin, Iter end) { init(begin, end, 0, 0); }
+
+  /** Given an iterator range over \a Object references and an iterator range over their bounding boxes,
+    * constructs the BVH, overwriting whatever is in there currently. */
+  template<typename OIter, typename BIter> void init(OIter begin, OIter end, BIter boxBegin, BIter boxEnd)
+  {
+    objects.clear();
+    boxes.clear();
+    children.clear();
+
+    objects.insert(objects.end(), begin, end);
+    int n = static_cast<int>(objects.size());
+
+    if(n < 2)
+      return; //if we have at most one object, we don't need any internal nodes
+
+    VolumeList objBoxes;
+    VIPairList objCenters;
+
+    //compute the bounding boxes depending on BIter type
+    internal::get_boxes_helper<ObjectList, VolumeList, BIter>()(objects, boxBegin, boxEnd, objBoxes);
+
+    objCenters.reserve(n);
+    boxes.reserve(n - 1);
+    children.reserve(2 * n - 2);
+
+    for(int i = 0; i < n; ++i)
+      objCenters.push_back(VIPair(objBoxes[i].center(), i));
+
+    build(objCenters, 0, n, objBoxes, 0); //the recursive part of the algorithm
+
+    ObjectList tmp(n);
+    tmp.swap(objects);
+    for(int i = 0; i < n; ++i)
+      objects[i] = tmp[objCenters[i].second];
+  }
+
+  /** \returns the index of the root of the hierarchy */
+  inline Index getRootIndex() const { return (int)boxes.size() - 1; }
+
+  /** Given an \a index of a node, on exit, \a outVBegin and \a outVEnd range over the indices of the volume children of the node
+    * and \a outOBegin and \a outOEnd range over the object children of the node */
+  EIGEN_STRONG_INLINE void getChildren(Index index, VolumeIterator &outVBegin, VolumeIterator &outVEnd,
+                                       ObjectIterator &outOBegin, ObjectIterator &outOEnd) const
+  { //inlining this function should open lots of optimization opportunities to the compiler
+    if(index < 0) {
+      outVBegin = outVEnd;
+      if(!objects.empty())
+        outOBegin = &(objects[0]);
+      outOEnd = outOBegin + objects.size(); //output all objects--necessary when the tree has only one object
+      return;
+    }
+
+    int numBoxes = static_cast<int>(boxes.size());
+
+    int idx = index * 2;
+    if(children[idx + 1] < numBoxes) { //second index is always bigger
+      outVBegin = &(children[idx]);
+      outVEnd = outVBegin + 2;
+      outOBegin = outOEnd;
+    }
+    else if(children[idx] >= numBoxes) { //if both children are objects
+      outVBegin = outVEnd;
+      outOBegin = &(objects[children[idx] - numBoxes]);
+      outOEnd = outOBegin + 2;
+    } else { //if the first child is a volume and the second is an object
+      outVBegin = &(children[idx]);
+      outVEnd = outVBegin + 1;
+      outOBegin = &(objects[children[idx + 1] - numBoxes]);
+      outOEnd = outOBegin + 1;
+    }
+  }
+
+  /** \returns the bounding box of the node at \a index */
+  inline const Volume &getVolume(Index index) const
+  {
+    return boxes[index];
+  }
+
+private:
+  typedef internal::vector_int_pair<Scalar, Dim> VIPair;
+  typedef std::vector<VIPair, aligned_allocator<VIPair> > VIPairList;
+  typedef Matrix<Scalar, Dim, 1> VectorType;
+  struct VectorComparator //compares vectors, or, more specificall, VIPairs along a particular dimension
+  {
+    VectorComparator(int inDim) : dim(inDim) {}
+    inline bool operator()(const VIPair &v1, const VIPair &v2) const { return v1.first[dim] < v2.first[dim]; }
+    int dim;
+  };
+
+  //Build the part of the tree between objects[from] and objects[to] (not including objects[to]).
+  //This routine partitions the objCenters in [from, to) along the dimension dim, recursively constructs
+  //the two halves, and adds their parent node.  TODO: a cache-friendlier layout
+  void build(VIPairList &objCenters, int from, int to, const VolumeList &objBoxes, int dim)
+  {
+    eigen_assert(to - from > 1);
+    if(to - from == 2) {
+      boxes.push_back(objBoxes[objCenters[from].second].merged(objBoxes[objCenters[from + 1].second]));
+      children.push_back(from + (int)objects.size() - 1); //there are objects.size() - 1 tree nodes
+      children.push_back(from + (int)objects.size());
+    }
+    else if(to - from == 3) {
+      int mid = from + 2;
+      std::nth_element(objCenters.begin() + from, objCenters.begin() + mid,
+                        objCenters.begin() + to, VectorComparator(dim)); //partition
+      build(objCenters, from, mid, objBoxes, (dim + 1) % Dim);
+      int idx1 = (int)boxes.size() - 1;
+      boxes.push_back(boxes[idx1].merged(objBoxes[objCenters[mid].second]));
+      children.push_back(idx1);
+      children.push_back(mid + (int)objects.size() - 1);
+    }
+    else {
+      int mid = from + (to - from) / 2;
+      nth_element(objCenters.begin() + from, objCenters.begin() + mid,
+                  objCenters.begin() + to, VectorComparator(dim)); //partition
+      build(objCenters, from, mid, objBoxes, (dim + 1) % Dim);
+      int idx1 = (int)boxes.size() - 1;
+      build(objCenters, mid, to, objBoxes, (dim + 1) % Dim);
+      int idx2 = (int)boxes.size() - 1;
+      boxes.push_back(boxes[idx1].merged(boxes[idx2]));
+      children.push_back(idx1);
+      children.push_back(idx2);
+    }
+  }
+
+  std::vector<int> children; //children of x are children[2x] and children[2x+1], indices bigger than boxes.size() index into objects.
+  VolumeList boxes;
+  ObjectList objects;
+};
+
+} // end namespace Eigen
+
+#endif //KDBVH_H_INCLUDED
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/BVH/BVAlgorithms.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/BVH/BVAlgorithms.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/BVH/BVAlgorithms.h	(revision 2476)
@@ -0,0 +1,293 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Ilya Baran <ibaran@mit.edu>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BVALGORITHMS_H
+#define EIGEN_BVALGORITHMS_H
+
+namespace Eigen { 
+
+namespace internal {
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename BVH, typename Intersector>
+bool intersect_helper(const BVH &tree, Intersector &intersector, typename BVH::Index root)
+{
+  typedef typename BVH::Index Index;
+  typedef typename BVH::VolumeIterator VolIter;
+  typedef typename BVH::ObjectIterator ObjIter;
+
+  VolIter vBegin = VolIter(), vEnd = VolIter();
+  ObjIter oBegin = ObjIter(), oEnd = ObjIter();
+
+  std::vector<Index> todo(1, root);
+
+  while(!todo.empty()) {
+    tree.getChildren(todo.back(), vBegin, vEnd, oBegin, oEnd);
+    todo.pop_back();
+
+    for(; vBegin != vEnd; ++vBegin) //go through child volumes
+      if(intersector.intersectVolume(tree.getVolume(*vBegin)))
+        todo.push_back(*vBegin);
+
+    for(; oBegin != oEnd; ++oBegin) //go through child objects
+      if(intersector.intersectObject(*oBegin))
+        return true; //intersector said to stop query
+  }
+  return false;
+}
+#endif //not EIGEN_PARSED_BY_DOXYGEN
+
+template<typename Volume1, typename Object1, typename Object2, typename Intersector>
+struct intersector_helper1
+{
+  intersector_helper1(const Object2 &inStored, Intersector &in) : stored(inStored), intersector(in) {}
+  bool intersectVolume(const Volume1 &vol) { return intersector.intersectVolumeObject(vol, stored); }
+  bool intersectObject(const Object1 &obj) { return intersector.intersectObjectObject(obj, stored); }
+  Object2 stored;
+  Intersector &intersector;
+private:
+  intersector_helper1& operator=(const intersector_helper1&);
+};
+
+template<typename Volume2, typename Object2, typename Object1, typename Intersector>
+struct intersector_helper2
+{
+  intersector_helper2(const Object1 &inStored, Intersector &in) : stored(inStored), intersector(in) {}
+  bool intersectVolume(const Volume2 &vol) { return intersector.intersectObjectVolume(stored, vol); }
+  bool intersectObject(const Object2 &obj) { return intersector.intersectObjectObject(stored, obj); }
+  Object1 stored;
+  Intersector &intersector;
+private:
+  intersector_helper2& operator=(const intersector_helper2&);
+};
+
+} // end namespace internal
+
+/**  Given a BVH, runs the query encapsulated by \a intersector.
+  *  The Intersector type must provide the following members: \code
+     bool intersectVolume(const BVH::Volume &volume) //returns true if volume intersects the query
+     bool intersectObject(const BVH::Object &object) //returns true if the search should terminate immediately
+  \endcode
+  */
+template<typename BVH, typename Intersector>
+void BVIntersect(const BVH &tree, Intersector &intersector)
+{
+  internal::intersect_helper(tree, intersector, tree.getRootIndex());
+}
+
+/**  Given two BVH's, runs the query on their Cartesian product encapsulated by \a intersector.
+  *  The Intersector type must provide the following members: \code
+     bool intersectVolumeVolume(const BVH1::Volume &v1, const BVH2::Volume &v2) //returns true if product of volumes intersects the query
+     bool intersectVolumeObject(const BVH1::Volume &v1, const BVH2::Object &o2) //returns true if the volume-object product intersects the query
+     bool intersectObjectVolume(const BVH1::Object &o1, const BVH2::Volume &v2) //returns true if the volume-object product intersects the query
+     bool intersectObjectObject(const BVH1::Object &o1, const BVH2::Object &o2) //returns true if the search should terminate immediately
+  \endcode
+  */
+template<typename BVH1, typename BVH2, typename Intersector>
+void BVIntersect(const BVH1 &tree1, const BVH2 &tree2, Intersector &intersector) //TODO: tandem descent when it makes sense
+{
+  typedef typename BVH1::Index Index1;
+  typedef typename BVH2::Index Index2;
+  typedef internal::intersector_helper1<typename BVH1::Volume, typename BVH1::Object, typename BVH2::Object, Intersector> Helper1;
+  typedef internal::intersector_helper2<typename BVH2::Volume, typename BVH2::Object, typename BVH1::Object, Intersector> Helper2;
+  typedef typename BVH1::VolumeIterator VolIter1;
+  typedef typename BVH1::ObjectIterator ObjIter1;
+  typedef typename BVH2::VolumeIterator VolIter2;
+  typedef typename BVH2::ObjectIterator ObjIter2;
+
+  VolIter1 vBegin1 = VolIter1(), vEnd1 = VolIter1();
+  ObjIter1 oBegin1 = ObjIter1(), oEnd1 = ObjIter1();
+  VolIter2 vBegin2 = VolIter2(), vEnd2 = VolIter2(), vCur2 = VolIter2();
+  ObjIter2 oBegin2 = ObjIter2(), oEnd2 = ObjIter2(), oCur2 = ObjIter2();
+
+  std::vector<std::pair<Index1, Index2> > todo(1, std::make_pair(tree1.getRootIndex(), tree2.getRootIndex()));
+
+  while(!todo.empty()) {
+    tree1.getChildren(todo.back().first, vBegin1, vEnd1, oBegin1, oEnd1);
+    tree2.getChildren(todo.back().second, vBegin2, vEnd2, oBegin2, oEnd2);
+    todo.pop_back();
+
+    for(; vBegin1 != vEnd1; ++vBegin1) { //go through child volumes of first tree
+      const typename BVH1::Volume &vol1 = tree1.getVolume(*vBegin1);
+      for(vCur2 = vBegin2; vCur2 != vEnd2; ++vCur2) { //go through child volumes of second tree
+        if(intersector.intersectVolumeVolume(vol1, tree2.getVolume(*vCur2)))
+          todo.push_back(std::make_pair(*vBegin1, *vCur2));
+      }
+
+      for(oCur2 = oBegin2; oCur2 != oEnd2; ++oCur2) {//go through child objects of second tree
+        Helper1 helper(*oCur2, intersector);
+        if(internal::intersect_helper(tree1, helper, *vBegin1))
+          return; //intersector said to stop query
+      }
+    }
+
+    for(; oBegin1 != oEnd1; ++oBegin1) { //go through child objects of first tree
+      for(vCur2 = vBegin2; vCur2 != vEnd2; ++vCur2) { //go through child volumes of second tree
+        Helper2 helper(*oBegin1, intersector);
+        if(internal::intersect_helper(tree2, helper, *vCur2))
+          return; //intersector said to stop query
+      }
+
+      for(oCur2 = oBegin2; oCur2 != oEnd2; ++oCur2) {//go through child objects of second tree
+        if(intersector.intersectObjectObject(*oBegin1, *oCur2))
+          return; //intersector said to stop query
+      }
+    }
+  }
+}
+
+namespace internal {
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+template<typename BVH, typename Minimizer>
+typename Minimizer::Scalar minimize_helper(const BVH &tree, Minimizer &minimizer, typename BVH::Index root, typename Minimizer::Scalar minimum)
+{
+  typedef typename Minimizer::Scalar Scalar;
+  typedef typename BVH::Index Index;
+  typedef std::pair<Scalar, Index> QueueElement; //first element is priority
+  typedef typename BVH::VolumeIterator VolIter;
+  typedef typename BVH::ObjectIterator ObjIter;
+
+  VolIter vBegin = VolIter(), vEnd = VolIter();
+  ObjIter oBegin = ObjIter(), oEnd = ObjIter();
+  std::priority_queue<QueueElement, std::vector<QueueElement>, std::greater<QueueElement> > todo; //smallest is at the top
+
+  todo.push(std::make_pair(Scalar(), root));
+
+  while(!todo.empty()) {
+    tree.getChildren(todo.top().second, vBegin, vEnd, oBegin, oEnd);
+    todo.pop();
+
+    for(; oBegin != oEnd; ++oBegin) //go through child objects
+      minimum = (std::min)(minimum, minimizer.minimumOnObject(*oBegin));
+
+    for(; vBegin != vEnd; ++vBegin) { //go through child volumes
+      Scalar val = minimizer.minimumOnVolume(tree.getVolume(*vBegin));
+      if(val < minimum)
+        todo.push(std::make_pair(val, *vBegin));
+    }
+  }
+
+  return minimum;
+}
+#endif //not EIGEN_PARSED_BY_DOXYGEN
+
+
+template<typename Volume1, typename Object1, typename Object2, typename Minimizer>
+struct minimizer_helper1
+{
+  typedef typename Minimizer::Scalar Scalar;
+  minimizer_helper1(const Object2 &inStored, Minimizer &m) : stored(inStored), minimizer(m) {}
+  Scalar minimumOnVolume(const Volume1 &vol) { return minimizer.minimumOnVolumeObject(vol, stored); }
+  Scalar minimumOnObject(const Object1 &obj) { return minimizer.minimumOnObjectObject(obj, stored); }
+  Object2 stored;
+  Minimizer &minimizer;
+private:
+  minimizer_helper1& operator=(const minimizer_helper1&);
+};
+
+template<typename Volume2, typename Object2, typename Object1, typename Minimizer>
+struct minimizer_helper2
+{
+  typedef typename Minimizer::Scalar Scalar;
+  minimizer_helper2(const Object1 &inStored, Minimizer &m) : stored(inStored), minimizer(m) {}
+  Scalar minimumOnVolume(const Volume2 &vol) { return minimizer.minimumOnObjectVolume(stored, vol); }
+  Scalar minimumOnObject(const Object2 &obj) { return minimizer.minimumOnObjectObject(stored, obj); }
+  Object1 stored;
+  Minimizer &minimizer;
+private:
+  minimizer_helper2& operator=(const minimizer_helper2&);
+};
+
+} // end namespace internal
+
+/**  Given a BVH, runs the query encapsulated by \a minimizer.
+  *  \returns the minimum value.
+  *  The Minimizer type must provide the following members: \code
+     typedef Scalar //the numeric type of what is being minimized--not necessarily the Scalar type of the BVH (if it has one)
+     Scalar minimumOnVolume(const BVH::Volume &volume)
+     Scalar minimumOnObject(const BVH::Object &object)
+  \endcode
+  */
+template<typename BVH, typename Minimizer>
+typename Minimizer::Scalar BVMinimize(const BVH &tree, Minimizer &minimizer)
+{
+  return internal::minimize_helper(tree, minimizer, tree.getRootIndex(), (std::numeric_limits<typename Minimizer::Scalar>::max)());
+}
+
+/**  Given two BVH's, runs the query on their cartesian product encapsulated by \a minimizer.
+  *  \returns the minimum value.
+  *  The Minimizer type must provide the following members: \code
+     typedef Scalar //the numeric type of what is being minimized--not necessarily the Scalar type of the BVH (if it has one)
+     Scalar minimumOnVolumeVolume(const BVH1::Volume &v1, const BVH2::Volume &v2)
+     Scalar minimumOnVolumeObject(const BVH1::Volume &v1, const BVH2::Object &o2)
+     Scalar minimumOnObjectVolume(const BVH1::Object &o1, const BVH2::Volume &v2)
+     Scalar minimumOnObjectObject(const BVH1::Object &o1, const BVH2::Object &o2)
+  \endcode
+  */
+template<typename BVH1, typename BVH2, typename Minimizer>
+typename Minimizer::Scalar BVMinimize(const BVH1 &tree1, const BVH2 &tree2, Minimizer &minimizer)
+{
+  typedef typename Minimizer::Scalar Scalar;
+  typedef typename BVH1::Index Index1;
+  typedef typename BVH2::Index Index2;
+  typedef internal::minimizer_helper1<typename BVH1::Volume, typename BVH1::Object, typename BVH2::Object, Minimizer> Helper1;
+  typedef internal::minimizer_helper2<typename BVH2::Volume, typename BVH2::Object, typename BVH1::Object, Minimizer> Helper2;
+  typedef std::pair<Scalar, std::pair<Index1, Index2> > QueueElement; //first element is priority
+  typedef typename BVH1::VolumeIterator VolIter1;
+  typedef typename BVH1::ObjectIterator ObjIter1;
+  typedef typename BVH2::VolumeIterator VolIter2;
+  typedef typename BVH2::ObjectIterator ObjIter2;
+
+  VolIter1 vBegin1 = VolIter1(), vEnd1 = VolIter1();
+  ObjIter1 oBegin1 = ObjIter1(), oEnd1 = ObjIter1();
+  VolIter2 vBegin2 = VolIter2(), vEnd2 = VolIter2(), vCur2 = VolIter2();
+  ObjIter2 oBegin2 = ObjIter2(), oEnd2 = ObjIter2(), oCur2 = ObjIter2();
+  std::priority_queue<QueueElement, std::vector<QueueElement>, std::greater<QueueElement> > todo; //smallest is at the top
+
+  Scalar minimum = (std::numeric_limits<Scalar>::max)();
+  todo.push(std::make_pair(Scalar(), std::make_pair(tree1.getRootIndex(), tree2.getRootIndex())));
+
+  while(!todo.empty()) {
+    tree1.getChildren(todo.top().second.first, vBegin1, vEnd1, oBegin1, oEnd1);
+    tree2.getChildren(todo.top().second.second, vBegin2, vEnd2, oBegin2, oEnd2);
+    todo.pop();
+
+    for(; oBegin1 != oEnd1; ++oBegin1) { //go through child objects of first tree
+      for(oCur2 = oBegin2; oCur2 != oEnd2; ++oCur2) {//go through child objects of second tree
+        minimum = (std::min)(minimum, minimizer.minimumOnObjectObject(*oBegin1, *oCur2));
+      }
+
+      for(vCur2 = vBegin2; vCur2 != vEnd2; ++vCur2) { //go through child volumes of second tree
+        Helper2 helper(*oBegin1, minimizer);
+        minimum = (std::min)(minimum, internal::minimize_helper(tree2, helper, *vCur2, minimum));
+      }
+    }
+
+    for(; vBegin1 != vEnd1; ++vBegin1) { //go through child volumes of first tree
+      const typename BVH1::Volume &vol1 = tree1.getVolume(*vBegin1);
+
+      for(oCur2 = oBegin2; oCur2 != oEnd2; ++oCur2) {//go through child objects of second tree
+        Helper1 helper(*oCur2, minimizer);
+        minimum = (std::min)(minimum, internal::minimize_helper(tree1, helper, *vBegin1, minimum));
+      }
+
+      for(vCur2 = vBegin2; vCur2 != vEnd2; ++vCur2) { //go through child volumes of second tree
+        Scalar val = minimizer.minimumOnVolumeVolume(vol1, tree2.getVolume(*vCur2));
+        if(val < minimum)
+          todo.push(std::make_pair(val, std::make_pair(*vBegin1, *vCur2)));
+      }
+    }
+  }
+  return minimum;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_BVALGORITHMS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/FFT/ei_fftw_impl.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/FFT/ei_fftw_impl.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/FFT/ei_fftw_impl.h	(revision 2476)
@@ -0,0 +1,261 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra. 
+//
+// Copyright (C) 2009 Mark Borgerding mark a borgerding net
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+namespace Eigen { 
+
+namespace internal {
+
+  // FFTW uses non-const arguments
+  // so we must use ugly const_cast calls for all the args it uses
+  //
+  // This should be safe as long as 
+  // 1. we use FFTW_ESTIMATE for all our planning
+  //       see the FFTW docs section 4.3.2 "Planner Flags"
+  // 2. fftw_complex is compatible with std::complex
+  //    This assumes std::complex<T> layout is array of size 2 with real,imag
+  template <typename T> 
+  inline 
+  T * fftw_cast(const T* p)
+  { 
+      return const_cast<T*>( p); 
+  }
+
+  inline 
+  fftw_complex * fftw_cast( const std::complex<double> * p)
+  {
+      return const_cast<fftw_complex*>( reinterpret_cast<const fftw_complex*>(p) ); 
+  }
+
+  inline 
+  fftwf_complex * fftw_cast( const std::complex<float> * p)
+  { 
+      return const_cast<fftwf_complex*>( reinterpret_cast<const fftwf_complex*>(p) ); 
+  }
+
+  inline 
+  fftwl_complex * fftw_cast( const std::complex<long double> * p)
+  { 
+      return const_cast<fftwl_complex*>( reinterpret_cast<const fftwl_complex*>(p) ); 
+  }
+
+  template <typename T> 
+  struct fftw_plan {};
+
+  template <> 
+  struct fftw_plan<float>
+  {
+      typedef float scalar_type;
+      typedef fftwf_complex complex_type;
+      fftwf_plan m_plan;
+      fftw_plan() :m_plan(NULL) {}
+      ~fftw_plan() {if (m_plan) fftwf_destroy_plan(m_plan);}
+
+      inline
+      void fwd(complex_type * dst,complex_type * src,int nfft) {
+          if (m_plan==NULL) m_plan = fftwf_plan_dft_1d(nfft,src,dst, FFTW_FORWARD, FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftwf_execute_dft( m_plan, src,dst);
+      }
+      inline
+      void inv(complex_type * dst,complex_type * src,int nfft) {
+          if (m_plan==NULL) m_plan = fftwf_plan_dft_1d(nfft,src,dst, FFTW_BACKWARD , FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftwf_execute_dft( m_plan, src,dst);
+      }
+      inline
+      void fwd(complex_type * dst,scalar_type * src,int nfft) {
+          if (m_plan==NULL) m_plan = fftwf_plan_dft_r2c_1d(nfft,src,dst,FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftwf_execute_dft_r2c( m_plan,src,dst);
+      }
+      inline
+      void inv(scalar_type * dst,complex_type * src,int nfft) {
+          if (m_plan==NULL)
+              m_plan = fftwf_plan_dft_c2r_1d(nfft,src,dst,FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftwf_execute_dft_c2r( m_plan, src,dst);
+      }
+
+      inline 
+      void fwd2( complex_type * dst,complex_type * src,int n0,int n1) {
+          if (m_plan==NULL) m_plan = fftwf_plan_dft_2d(n0,n1,src,dst,FFTW_FORWARD,FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftwf_execute_dft( m_plan, src,dst);
+      }
+      inline 
+      void inv2( complex_type * dst,complex_type * src,int n0,int n1) {
+          if (m_plan==NULL) m_plan = fftwf_plan_dft_2d(n0,n1,src,dst,FFTW_BACKWARD,FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftwf_execute_dft( m_plan, src,dst);
+      }
+
+  };
+  template <> 
+  struct fftw_plan<double>
+  {
+      typedef double scalar_type;
+      typedef fftw_complex complex_type;
+      ::fftw_plan m_plan;
+      fftw_plan() :m_plan(NULL) {}
+      ~fftw_plan() {if (m_plan) fftw_destroy_plan(m_plan);}
+
+      inline
+      void fwd(complex_type * dst,complex_type * src,int nfft) {
+          if (m_plan==NULL) m_plan = fftw_plan_dft_1d(nfft,src,dst, FFTW_FORWARD, FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftw_execute_dft( m_plan, src,dst);
+      }
+      inline
+      void inv(complex_type * dst,complex_type * src,int nfft) {
+          if (m_plan==NULL) m_plan = fftw_plan_dft_1d(nfft,src,dst, FFTW_BACKWARD , FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftw_execute_dft( m_plan, src,dst);
+      }
+      inline
+      void fwd(complex_type * dst,scalar_type * src,int nfft) {
+          if (m_plan==NULL) m_plan = fftw_plan_dft_r2c_1d(nfft,src,dst,FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftw_execute_dft_r2c( m_plan,src,dst);
+      }
+      inline
+      void inv(scalar_type * dst,complex_type * src,int nfft) {
+          if (m_plan==NULL)
+              m_plan = fftw_plan_dft_c2r_1d(nfft,src,dst,FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftw_execute_dft_c2r( m_plan, src,dst);
+      }
+      inline 
+      void fwd2( complex_type * dst,complex_type * src,int n0,int n1) {
+          if (m_plan==NULL) m_plan = fftw_plan_dft_2d(n0,n1,src,dst,FFTW_FORWARD,FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftw_execute_dft( m_plan, src,dst);
+      }
+      inline 
+      void inv2( complex_type * dst,complex_type * src,int n0,int n1) {
+          if (m_plan==NULL) m_plan = fftw_plan_dft_2d(n0,n1,src,dst,FFTW_BACKWARD,FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftw_execute_dft( m_plan, src,dst);
+      }
+  };
+  template <> 
+  struct fftw_plan<long double>
+  {
+      typedef long double scalar_type;
+      typedef fftwl_complex complex_type;
+      fftwl_plan m_plan;
+      fftw_plan() :m_plan(NULL) {}
+      ~fftw_plan() {if (m_plan) fftwl_destroy_plan(m_plan);}
+
+      inline
+      void fwd(complex_type * dst,complex_type * src,int nfft) {
+          if (m_plan==NULL) m_plan = fftwl_plan_dft_1d(nfft,src,dst, FFTW_FORWARD, FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftwl_execute_dft( m_plan, src,dst);
+      }
+      inline
+      void inv(complex_type * dst,complex_type * src,int nfft) {
+          if (m_plan==NULL) m_plan = fftwl_plan_dft_1d(nfft,src,dst, FFTW_BACKWARD , FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftwl_execute_dft( m_plan, src,dst);
+      }
+      inline
+      void fwd(complex_type * dst,scalar_type * src,int nfft) {
+          if (m_plan==NULL) m_plan = fftwl_plan_dft_r2c_1d(nfft,src,dst,FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftwl_execute_dft_r2c( m_plan,src,dst);
+      }
+      inline
+      void inv(scalar_type * dst,complex_type * src,int nfft) {
+          if (m_plan==NULL)
+              m_plan = fftwl_plan_dft_c2r_1d(nfft,src,dst,FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftwl_execute_dft_c2r( m_plan, src,dst);
+      }
+      inline 
+      void fwd2( complex_type * dst,complex_type * src,int n0,int n1) {
+          if (m_plan==NULL) m_plan = fftwl_plan_dft_2d(n0,n1,src,dst,FFTW_FORWARD,FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftwl_execute_dft( m_plan, src,dst);
+      }
+      inline 
+      void inv2( complex_type * dst,complex_type * src,int n0,int n1) {
+          if (m_plan==NULL) m_plan = fftwl_plan_dft_2d(n0,n1,src,dst,FFTW_BACKWARD,FFTW_ESTIMATE|FFTW_PRESERVE_INPUT);
+          fftwl_execute_dft( m_plan, src,dst);
+      }
+  };
+
+  template <typename _Scalar>
+  struct fftw_impl
+  {
+      typedef _Scalar Scalar;
+      typedef std::complex<Scalar> Complex;
+
+      inline
+      void clear() 
+      {
+        m_plans.clear();
+      }
+
+      // complex-to-complex forward FFT
+      inline
+      void fwd( Complex * dst,const Complex *src,int nfft)
+      {
+        get_plan(nfft,false,dst,src).fwd(fftw_cast(dst), fftw_cast(src),nfft );
+      }
+
+      // real-to-complex forward FFT
+      inline
+      void fwd( Complex * dst,const Scalar * src,int nfft) 
+      {
+          get_plan(nfft,false,dst,src).fwd(fftw_cast(dst), fftw_cast(src) ,nfft);
+      }
+
+      // 2-d complex-to-complex
+      inline
+      void fwd2(Complex * dst, const Complex * src, int n0,int n1)
+      {
+          get_plan(n0,n1,false,dst,src).fwd2(fftw_cast(dst), fftw_cast(src) ,n0,n1);
+      }
+
+      // inverse complex-to-complex
+      inline
+      void inv(Complex * dst,const Complex  *src,int nfft)
+      {
+        get_plan(nfft,true,dst,src).inv(fftw_cast(dst), fftw_cast(src),nfft );
+      }
+
+      // half-complex to scalar
+      inline
+      void inv( Scalar * dst,const Complex * src,int nfft) 
+      {
+        get_plan(nfft,true,dst,src).inv(fftw_cast(dst), fftw_cast(src),nfft );
+      }
+
+      // 2-d complex-to-complex
+      inline
+      void inv2(Complex * dst, const Complex * src, int n0,int n1)
+      {
+        get_plan(n0,n1,true,dst,src).inv2(fftw_cast(dst), fftw_cast(src) ,n0,n1);
+      }
+
+
+  protected:
+      typedef fftw_plan<Scalar> PlanData;
+
+      typedef std::map<int64_t,PlanData> PlanMap;
+
+      PlanMap m_plans;
+
+      inline
+      PlanData & get_plan(int nfft,bool inverse,void * dst,const void * src)
+      {
+          bool inplace = (dst==src);
+          bool aligned = ( (reinterpret_cast<size_t>(src)&15) | (reinterpret_cast<size_t>(dst)&15) ) == 0;
+          int64_t key = ( (nfft<<3 ) | (inverse<<2) | (inplace<<1) | aligned ) << 1;
+          return m_plans[key];
+      }
+
+      inline
+      PlanData & get_plan(int n0,int n1,bool inverse,void * dst,const void * src)
+      {
+          bool inplace = (dst==src);
+          bool aligned = ( (reinterpret_cast<size_t>(src)&15) | (reinterpret_cast<size_t>(dst)&15) ) == 0;
+          int64_t key = ( ( (((int64_t)n0) << 30)|(n1<<3 ) | (inverse<<2) | (inplace<<1) | aligned ) << 1 ) + 1;
+          return m_plans[key];
+      }
+  };
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/FFT/ei_kissfft_impl.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/FFT/ei_kissfft_impl.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/FFT/ei_kissfft_impl.h	(revision 2476)
@@ -0,0 +1,420 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Mark Borgerding mark a borgerding net
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+namespace Eigen { 
+
+namespace internal {
+
+  // This FFT implementation was derived from kissfft http:sourceforge.net/projects/kissfft
+  // Copyright 2003-2009 Mark Borgerding
+
+template <typename _Scalar>
+struct kiss_cpx_fft
+{
+  typedef _Scalar Scalar;
+  typedef std::complex<Scalar> Complex;
+  std::vector<Complex> m_twiddles;
+  std::vector<int> m_stageRadix;
+  std::vector<int> m_stageRemainder;
+  std::vector<Complex> m_scratchBuf;
+  bool m_inverse;
+
+  inline
+    void make_twiddles(int nfft,bool inverse)
+    {
+      using std::acos;
+      m_inverse = inverse;
+      m_twiddles.resize(nfft);
+      Scalar phinc =  (inverse?2:-2)* acos( (Scalar) -1)  / nfft;
+      for (int i=0;i<nfft;++i)
+        m_twiddles[i] = exp( Complex(0,i*phinc) );
+    }
+
+  void factorize(int nfft)
+  {
+    //start factoring out 4's, then 2's, then 3,5,7,9,...
+    int n= nfft;
+    int p=4;
+    do {
+      while (n % p) {
+        switch (p) {
+          case 4: p = 2; break;
+          case 2: p = 3; break;
+          default: p += 2; break;
+        }
+        if (p*p>n)
+          p=n;// impossible to have a factor > sqrt(n)
+      }
+      n /= p;
+      m_stageRadix.push_back(p);
+      m_stageRemainder.push_back(n);
+      if ( p > 5 )
+        m_scratchBuf.resize(p); // scratchbuf will be needed in bfly_generic
+    }while(n>1);
+  }
+
+  template <typename _Src>
+    inline
+    void work( int stage,Complex * xout, const _Src * xin, size_t fstride,size_t in_stride)
+    {
+      int p = m_stageRadix[stage];
+      int m = m_stageRemainder[stage];
+      Complex * Fout_beg = xout;
+      Complex * Fout_end = xout + p*m;
+
+      if (m>1) {
+        do{
+          // recursive call:
+          // DFT of size m*p performed by doing
+          // p instances of smaller DFTs of size m, 
+          // each one takes a decimated version of the input
+          work(stage+1, xout , xin, fstride*p,in_stride);
+          xin += fstride*in_stride;
+        }while( (xout += m) != Fout_end );
+      }else{
+        do{
+          *xout = *xin;
+          xin += fstride*in_stride;
+        }while(++xout != Fout_end );
+      }
+      xout=Fout_beg;
+
+      // recombine the p smaller DFTs 
+      switch (p) {
+        case 2: bfly2(xout,fstride,m); break;
+        case 3: bfly3(xout,fstride,m); break;
+        case 4: bfly4(xout,fstride,m); break;
+        case 5: bfly5(xout,fstride,m); break;
+        default: bfly_generic(xout,fstride,m,p); break;
+      }
+    }
+
+  inline
+    void bfly2( Complex * Fout, const size_t fstride, int m)
+    {
+      for (int k=0;k<m;++k) {
+        Complex t = Fout[m+k] * m_twiddles[k*fstride];
+        Fout[m+k] = Fout[k] - t;
+        Fout[k] += t;
+      }
+    }
+
+  inline
+    void bfly4( Complex * Fout, const size_t fstride, const size_t m)
+    {
+      Complex scratch[6];
+      int negative_if_inverse = m_inverse * -2 +1;
+      for (size_t k=0;k<m;++k) {
+        scratch[0] = Fout[k+m] * m_twiddles[k*fstride];
+        scratch[1] = Fout[k+2*m] * m_twiddles[k*fstride*2];
+        scratch[2] = Fout[k+3*m] * m_twiddles[k*fstride*3];
+        scratch[5] = Fout[k] - scratch[1];
+
+        Fout[k] += scratch[1];
+        scratch[3] = scratch[0] + scratch[2];
+        scratch[4] = scratch[0] - scratch[2];
+        scratch[4] = Complex( scratch[4].imag()*negative_if_inverse , -scratch[4].real()* negative_if_inverse );
+
+        Fout[k+2*m]  = Fout[k] - scratch[3];
+        Fout[k] += scratch[3];
+        Fout[k+m] = scratch[5] + scratch[4];
+        Fout[k+3*m] = scratch[5] - scratch[4];
+      }
+    }
+
+  inline
+    void bfly3( Complex * Fout, const size_t fstride, const size_t m)
+    {
+      size_t k=m;
+      const size_t m2 = 2*m;
+      Complex *tw1,*tw2;
+      Complex scratch[5];
+      Complex epi3;
+      epi3 = m_twiddles[fstride*m];
+
+      tw1=tw2=&m_twiddles[0];
+
+      do{
+        scratch[1]=Fout[m] * *tw1;
+        scratch[2]=Fout[m2] * *tw2;
+
+        scratch[3]=scratch[1]+scratch[2];
+        scratch[0]=scratch[1]-scratch[2];
+        tw1 += fstride;
+        tw2 += fstride*2;
+        Fout[m] = Complex( Fout->real() - Scalar(.5)*scratch[3].real() , Fout->imag() - Scalar(.5)*scratch[3].imag() );
+        scratch[0] *= epi3.imag();
+        *Fout += scratch[3];
+        Fout[m2] = Complex(  Fout[m].real() + scratch[0].imag() , Fout[m].imag() - scratch[0].real() );
+        Fout[m] += Complex( -scratch[0].imag(),scratch[0].real() );
+        ++Fout;
+      }while(--k);
+    }
+
+  inline
+    void bfly5( Complex * Fout, const size_t fstride, const size_t m)
+    {
+      Complex *Fout0,*Fout1,*Fout2,*Fout3,*Fout4;
+      size_t u;
+      Complex scratch[13];
+      Complex * twiddles = &m_twiddles[0];
+      Complex *tw;
+      Complex ya,yb;
+      ya = twiddles[fstride*m];
+      yb = twiddles[fstride*2*m];
+
+      Fout0=Fout;
+      Fout1=Fout0+m;
+      Fout2=Fout0+2*m;
+      Fout3=Fout0+3*m;
+      Fout4=Fout0+4*m;
+
+      tw=twiddles;
+      for ( u=0; u<m; ++u ) {
+        scratch[0] = *Fout0;
+
+        scratch[1]  = *Fout1 * tw[u*fstride];
+        scratch[2]  = *Fout2 * tw[2*u*fstride];
+        scratch[3]  = *Fout3 * tw[3*u*fstride];
+        scratch[4]  = *Fout4 * tw[4*u*fstride];
+
+        scratch[7] = scratch[1] + scratch[4];
+        scratch[10] = scratch[1] - scratch[4];
+        scratch[8] = scratch[2] + scratch[3];
+        scratch[9] = scratch[2] - scratch[3];
+
+        *Fout0 +=  scratch[7];
+        *Fout0 +=  scratch[8];
+
+        scratch[5] = scratch[0] + Complex(
+            (scratch[7].real()*ya.real() ) + (scratch[8].real() *yb.real() ),
+            (scratch[7].imag()*ya.real()) + (scratch[8].imag()*yb.real())
+            );
+
+        scratch[6] = Complex(
+            (scratch[10].imag()*ya.imag()) + (scratch[9].imag()*yb.imag()),
+            -(scratch[10].real()*ya.imag()) - (scratch[9].real()*yb.imag())
+            );
+
+        *Fout1 = scratch[5] - scratch[6];
+        *Fout4 = scratch[5] + scratch[6];
+
+        scratch[11] = scratch[0] +
+          Complex(
+              (scratch[7].real()*yb.real()) + (scratch[8].real()*ya.real()),
+              (scratch[7].imag()*yb.real()) + (scratch[8].imag()*ya.real())
+              );
+
+        scratch[12] = Complex(
+            -(scratch[10].imag()*yb.imag()) + (scratch[9].imag()*ya.imag()),
+            (scratch[10].real()*yb.imag()) - (scratch[9].real()*ya.imag())
+            );
+
+        *Fout2=scratch[11]+scratch[12];
+        *Fout3=scratch[11]-scratch[12];
+
+        ++Fout0;++Fout1;++Fout2;++Fout3;++Fout4;
+      }
+    }
+
+  /* perform the butterfly for one stage of a mixed radix FFT */
+  inline
+    void bfly_generic(
+        Complex * Fout,
+        const size_t fstride,
+        int m,
+        int p
+        )
+    {
+      int u,k,q1,q;
+      Complex * twiddles = &m_twiddles[0];
+      Complex t;
+      int Norig = static_cast<int>(m_twiddles.size());
+      Complex * scratchbuf = &m_scratchBuf[0];
+
+      for ( u=0; u<m; ++u ) {
+        k=u;
+        for ( q1=0 ; q1<p ; ++q1 ) {
+          scratchbuf[q1] = Fout[ k  ];
+          k += m;
+        }
+
+        k=u;
+        for ( q1=0 ; q1<p ; ++q1 ) {
+          int twidx=0;
+          Fout[ k ] = scratchbuf[0];
+          for (q=1;q<p;++q ) {
+            twidx += static_cast<int>(fstride) * k;
+            if (twidx>=Norig) twidx-=Norig;
+            t=scratchbuf[q] * twiddles[twidx];
+            Fout[ k ] += t;
+          }
+          k += m;
+        }
+      }
+    }
+};
+
+template <typename _Scalar>
+struct kissfft_impl
+{
+  typedef _Scalar Scalar;
+  typedef std::complex<Scalar> Complex;
+
+  void clear() 
+  {
+    m_plans.clear();
+    m_realTwiddles.clear();
+  }
+
+  inline
+    void fwd( Complex * dst,const Complex *src,int nfft)
+    {
+      get_plan(nfft,false).work(0, dst, src, 1,1);
+    }
+
+  inline
+    void fwd2( Complex * dst,const Complex *src,int n0,int n1)
+    {
+        EIGEN_UNUSED_VARIABLE(dst);
+        EIGEN_UNUSED_VARIABLE(src);
+        EIGEN_UNUSED_VARIABLE(n0);
+        EIGEN_UNUSED_VARIABLE(n1);
+    }
+
+  inline
+    void inv2( Complex * dst,const Complex *src,int n0,int n1)
+    {
+        EIGEN_UNUSED_VARIABLE(dst);
+        EIGEN_UNUSED_VARIABLE(src);
+        EIGEN_UNUSED_VARIABLE(n0);
+        EIGEN_UNUSED_VARIABLE(n1);
+    }
+
+  // real-to-complex forward FFT
+  // perform two FFTs of src even and src odd
+  // then twiddle to recombine them into the half-spectrum format
+  // then fill in the conjugate symmetric half
+  inline
+    void fwd( Complex * dst,const Scalar * src,int nfft) 
+    {
+      if ( nfft&3  ) {
+        // use generic mode for odd
+        m_tmpBuf1.resize(nfft);
+        get_plan(nfft,false).work(0, &m_tmpBuf1[0], src, 1,1);
+        std::copy(m_tmpBuf1.begin(),m_tmpBuf1.begin()+(nfft>>1)+1,dst );
+      }else{
+        int ncfft = nfft>>1;
+        int ncfft2 = nfft>>2;
+        Complex * rtw = real_twiddles(ncfft2);
+
+        // use optimized mode for even real
+        fwd( dst, reinterpret_cast<const Complex*> (src), ncfft);
+        Complex dc = dst[0].real() +  dst[0].imag();
+        Complex nyquist = dst[0].real() -  dst[0].imag();
+        int k;
+        for ( k=1;k <= ncfft2 ; ++k ) {
+          Complex fpk = dst[k];
+          Complex fpnk = conj(dst[ncfft-k]);
+          Complex f1k = fpk + fpnk;
+          Complex f2k = fpk - fpnk;
+          Complex tw= f2k * rtw[k-1];
+          dst[k] =  (f1k + tw) * Scalar(.5);
+          dst[ncfft-k] =  conj(f1k -tw)*Scalar(.5);
+        }
+        dst[0] = dc;
+        dst[ncfft] = nyquist;
+      }
+    }
+
+  // inverse complex-to-complex
+  inline
+    void inv(Complex * dst,const Complex  *src,int nfft)
+    {
+      get_plan(nfft,true).work(0, dst, src, 1,1);
+    }
+
+  // half-complex to scalar
+  inline
+    void inv( Scalar * dst,const Complex * src,int nfft) 
+    {
+      if (nfft&3) {
+        m_tmpBuf1.resize(nfft);
+        m_tmpBuf2.resize(nfft);
+        std::copy(src,src+(nfft>>1)+1,m_tmpBuf1.begin() );
+        for (int k=1;k<(nfft>>1)+1;++k)
+          m_tmpBuf1[nfft-k] = conj(m_tmpBuf1[k]);
+        inv(&m_tmpBuf2[0],&m_tmpBuf1[0],nfft);
+        for (int k=0;k<nfft;++k)
+          dst[k] = m_tmpBuf2[k].real();
+      }else{
+        // optimized version for multiple of 4
+        int ncfft = nfft>>1;
+        int ncfft2 = nfft>>2;
+        Complex * rtw = real_twiddles(ncfft2);
+        m_tmpBuf1.resize(ncfft);
+        m_tmpBuf1[0] = Complex( src[0].real() + src[ncfft].real(), src[0].real() - src[ncfft].real() );
+        for (int k = 1; k <= ncfft / 2; ++k) {
+          Complex fk = src[k];
+          Complex fnkc = conj(src[ncfft-k]);
+          Complex fek = fk + fnkc;
+          Complex tmp = fk - fnkc;
+          Complex fok = tmp * conj(rtw[k-1]);
+          m_tmpBuf1[k] = fek + fok;
+          m_tmpBuf1[ncfft-k] = conj(fek - fok);
+        }
+        get_plan(ncfft,true).work(0, reinterpret_cast<Complex*>(dst), &m_tmpBuf1[0], 1,1);
+      }
+    }
+
+  protected:
+  typedef kiss_cpx_fft<Scalar> PlanData;
+  typedef std::map<int,PlanData> PlanMap;
+
+  PlanMap m_plans;
+  std::map<int, std::vector<Complex> > m_realTwiddles;
+  std::vector<Complex> m_tmpBuf1;
+  std::vector<Complex> m_tmpBuf2;
+
+  inline
+    int PlanKey(int nfft, bool isinverse) const { return (nfft<<1) | int(isinverse); }
+
+  inline
+    PlanData & get_plan(int nfft, bool inverse)
+    {
+      // TODO look for PlanKey(nfft, ! inverse) and conjugate the twiddles
+      PlanData & pd = m_plans[ PlanKey(nfft,inverse) ];
+      if ( pd.m_twiddles.size() == 0 ) {
+        pd.make_twiddles(nfft,inverse);
+        pd.factorize(nfft);
+      }
+      return pd;
+    }
+
+  inline
+    Complex * real_twiddles(int ncfft2)
+    {
+      using std::acos;
+      std::vector<Complex> & twidref = m_realTwiddles[ncfft2];// creates new if not there
+      if ( (int)twidref.size() != ncfft2 ) {
+        twidref.resize(ncfft2);
+        int ncfft= ncfft2<<1;
+        Scalar pi =  acos( Scalar(-1) );
+        for (int k=1;k<=ncfft2;++k) 
+          twidref[k-1] = exp( Complex(0,-pi * (Scalar(k) / ncfft + Scalar(.5)) ) );
+      }
+      return &twidref[0];
+    }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+/* vim: set filetype=cpp et sw=2 ts=2 ai: */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MoreVectorization/MathFunctions.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MoreVectorization/MathFunctions.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MoreVectorization/MathFunctions.h	(revision 2476)
@@ -0,0 +1,95 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Rohit Garg <rpg.314@gmail.com>
+// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MOREVECTORIZATION_MATHFUNCTIONS_H
+#define EIGEN_MOREVECTORIZATION_MATHFUNCTIONS_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \internal \returns the arcsin of \a a (coeff-wise) */
+template<typename Packet> inline static Packet pasin(Packet a) { return std::asin(a); }
+
+#ifdef EIGEN_VECTORIZE_SSE
+
+template<> EIGEN_DONT_INLINE Packet4f pasin(Packet4f x)
+{
+  _EIGEN_DECLARE_CONST_Packet4f(half, 0.5);
+  _EIGEN_DECLARE_CONST_Packet4f(minus_half, -0.5);
+  _EIGEN_DECLARE_CONST_Packet4f(3half, 1.5);
+
+  _EIGEN_DECLARE_CONST_Packet4f_FROM_INT(sign_mask, 0x80000000);
+
+  _EIGEN_DECLARE_CONST_Packet4f(pi, 3.141592654);
+  _EIGEN_DECLARE_CONST_Packet4f(pi_over_2, 3.141592654*0.5);
+
+  _EIGEN_DECLARE_CONST_Packet4f(asin1, 4.2163199048E-2);
+  _EIGEN_DECLARE_CONST_Packet4f(asin2, 2.4181311049E-2);
+  _EIGEN_DECLARE_CONST_Packet4f(asin3, 4.5470025998E-2);
+  _EIGEN_DECLARE_CONST_Packet4f(asin4, 7.4953002686E-2);
+  _EIGEN_DECLARE_CONST_Packet4f(asin5, 1.6666752422E-1);
+
+  Packet4f a = pabs(x);//got the absolute value
+
+  Packet4f sign_bit= _mm_and_ps(x, p4f_sign_mask);//extracted the sign bit
+
+  Packet4f z1,z2;//will need them during computation    
+
+
+//will compute the two branches for asin
+//so first compare with half
+
+  Packet4f branch_mask= _mm_cmpgt_ps(a, p4f_half);//this is to select which branch to take
+//both will be taken, and finally results will be merged
+//the branch for values >0.5
+
+    {
+//the core series expansion 
+    z1=pmadd(p4f_minus_half,a,p4f_half);
+    Packet4f x1=psqrt(z1);
+    Packet4f s1=pmadd(p4f_asin1, z1, p4f_asin2);
+    Packet4f s2=pmadd(s1, z1, p4f_asin3);
+    Packet4f s3=pmadd(s2,z1, p4f_asin4);
+    Packet4f s4=pmadd(s3,z1, p4f_asin5);
+    Packet4f temp=pmul(s4,z1);//not really a madd but a mul by z so that the next term can be a madd
+    z1=pmadd(temp,x1,x1);
+    z1=padd(z1,z1);
+    z1=psub(p4f_pi_over_2,z1);
+    }
+
+    {
+//the core series expansion 
+    Packet4f x2=a;
+    z2=pmul(x2,x2);
+    Packet4f s1=pmadd(p4f_asin1, z2, p4f_asin2);
+    Packet4f s2=pmadd(s1, z2, p4f_asin3);
+    Packet4f s3=pmadd(s2,z2, p4f_asin4);
+    Packet4f s4=pmadd(s3,z2, p4f_asin5);
+    Packet4f temp=pmul(s4,z2);//not really a madd but a mul by z so that the next term can be a madd
+    z2=pmadd(temp,x2,x2);
+    }
+
+/* select the correct result from the two branch evaluations */
+  z1  = _mm_and_ps(branch_mask, z1);
+  z2  = _mm_andnot_ps(branch_mask, z2);
+  Packet4f z  = _mm_or_ps(z1,z2);
+
+/* update the sign */
+  return _mm_xor_ps(z, sign_bit);
+}
+
+#endif // EIGEN_VECTORIZE_SSE
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_MOREVECTORIZATION_MATHFUNCTIONS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h	(revision 2476)
@@ -0,0 +1,244 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Kolja Brix <brix@igpm.rwth-aachen.de>
+// Copyright (C) 2011 Andreas Platen <andiplaten@gmx.de>
+// Copyright (C) 2012 Chen-Pang He <jdh8@ms63.hinet.net>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef KRONECKER_TENSOR_PRODUCT_H
+#define KRONECKER_TENSOR_PRODUCT_H
+
+namespace Eigen { 
+
+template<typename Scalar, int Options, typename Index> class SparseMatrix;
+
+/*!
+ * \brief Kronecker tensor product helper class for dense matrices
+ *
+ * This class is the return value of kroneckerProduct(MatrixBase,
+ * MatrixBase). Use the function rather than construct this class
+ * directly to avoid specifying template prarameters.
+ *
+ * \tparam Lhs  Type of the left-hand side, a matrix expression.
+ * \tparam Rhs  Type of the rignt-hand side, a matrix expression.
+ */
+template<typename Lhs, typename Rhs>
+class KroneckerProduct : public ReturnByValue<KroneckerProduct<Lhs,Rhs> >
+{
+  private:
+    typedef ReturnByValue<KroneckerProduct> Base;
+    typedef typename Base::Scalar Scalar;
+    typedef typename Base::Index Index;
+
+  public:
+    /*! \brief Constructor. */
+    KroneckerProduct(const Lhs& A, const Rhs& B)
+      : m_A(A), m_B(B)
+    {}
+
+    /*! \brief Evaluate the Kronecker tensor product. */
+    template<typename Dest> void evalTo(Dest& dst) const;
+    
+    inline Index rows() const { return m_A.rows() * m_B.rows(); }
+    inline Index cols() const { return m_A.cols() * m_B.cols(); }
+
+    Scalar coeff(Index row, Index col) const
+    {
+      return m_A.coeff(row / m_B.rows(), col / m_B.cols()) *
+             m_B.coeff(row % m_B.rows(), col % m_B.cols());
+    }
+
+    Scalar coeff(Index i) const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(KroneckerProduct);
+      return m_A.coeff(i / m_A.size()) * m_B.coeff(i % m_A.size());
+    }
+
+  private:
+    typename Lhs::Nested m_A;
+    typename Rhs::Nested m_B;
+};
+
+/*!
+ * \brief Kronecker tensor product helper class for sparse matrices
+ *
+ * If at least one of the operands is a sparse matrix expression,
+ * then this class is returned and evaluates into a sparse matrix.
+ *
+ * This class is the return value of kroneckerProduct(EigenBase,
+ * EigenBase). Use the function rather than construct this class
+ * directly to avoid specifying template prarameters.
+ *
+ * \tparam Lhs  Type of the left-hand side, a matrix expression.
+ * \tparam Rhs  Type of the rignt-hand side, a matrix expression.
+ */
+template<typename Lhs, typename Rhs>
+class KroneckerProductSparse : public EigenBase<KroneckerProductSparse<Lhs,Rhs> >
+{
+  private:
+    typedef typename internal::traits<KroneckerProductSparse>::Index Index;
+
+  public:
+    /*! \brief Constructor. */
+    KroneckerProductSparse(const Lhs& A, const Rhs& B)
+      : m_A(A), m_B(B)
+    {}
+
+    /*! \brief Evaluate the Kronecker tensor product. */
+    template<typename Dest> void evalTo(Dest& dst) const;
+    
+    inline Index rows() const { return m_A.rows() * m_B.rows(); }
+    inline Index cols() const { return m_A.cols() * m_B.cols(); }
+
+    template<typename Scalar, int Options, typename Index>
+    operator SparseMatrix<Scalar, Options, Index>()
+    {
+      SparseMatrix<Scalar, Options, Index> result;
+      evalTo(result.derived());
+      return result;
+    }
+
+  private:
+    typename Lhs::Nested m_A;
+    typename Rhs::Nested m_B;
+};
+
+template<typename Lhs, typename Rhs>
+template<typename Dest>
+void KroneckerProduct<Lhs,Rhs>::evalTo(Dest& dst) const
+{
+  const int BlockRows = Rhs::RowsAtCompileTime,
+            BlockCols = Rhs::ColsAtCompileTime;
+  const Index Br = m_B.rows(),
+              Bc = m_B.cols();
+  for (Index i=0; i < m_A.rows(); ++i)
+    for (Index j=0; j < m_A.cols(); ++j)
+      Block<Dest,BlockRows,BlockCols>(dst,i*Br,j*Bc,Br,Bc) = m_A.coeff(i,j) * m_B;
+}
+
+template<typename Lhs, typename Rhs>
+template<typename Dest>
+void KroneckerProductSparse<Lhs,Rhs>::evalTo(Dest& dst) const
+{
+  const Index Br = m_B.rows(),
+              Bc = m_B.cols();
+  dst.resize(rows(),cols());
+  dst.resizeNonZeros(0);
+  dst.reserve(m_A.nonZeros() * m_B.nonZeros());
+
+  for (Index kA=0; kA < m_A.outerSize(); ++kA)
+  {
+    for (Index kB=0; kB < m_B.outerSize(); ++kB)
+    {
+      for (typename Lhs::InnerIterator itA(m_A,kA); itA; ++itA)
+      {
+        for (typename Rhs::InnerIterator itB(m_B,kB); itB; ++itB)
+        {
+          const Index i = itA.row() * Br + itB.row(),
+                      j = itA.col() * Bc + itB.col();
+          dst.insert(i,j) = itA.value() * itB.value();
+        }
+      }
+    }
+  }
+}
+
+namespace internal {
+
+template<typename _Lhs, typename _Rhs>
+struct traits<KroneckerProduct<_Lhs,_Rhs> >
+{
+  typedef typename remove_all<_Lhs>::type Lhs;
+  typedef typename remove_all<_Rhs>::type Rhs;
+  typedef typename scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType Scalar;
+
+  enum {
+    Rows = size_at_compile_time<traits<Lhs>::RowsAtCompileTime, traits<Rhs>::RowsAtCompileTime>::ret,
+    Cols = size_at_compile_time<traits<Lhs>::ColsAtCompileTime, traits<Rhs>::ColsAtCompileTime>::ret,
+    MaxRows = size_at_compile_time<traits<Lhs>::MaxRowsAtCompileTime, traits<Rhs>::MaxRowsAtCompileTime>::ret,
+    MaxCols = size_at_compile_time<traits<Lhs>::MaxColsAtCompileTime, traits<Rhs>::MaxColsAtCompileTime>::ret,
+    CoeffReadCost = Lhs::CoeffReadCost + Rhs::CoeffReadCost + NumTraits<Scalar>::MulCost
+  };
+
+  typedef Matrix<Scalar,Rows,Cols> ReturnType;
+};
+
+template<typename _Lhs, typename _Rhs>
+struct traits<KroneckerProductSparse<_Lhs,_Rhs> >
+{
+  typedef MatrixXpr XprKind;
+  typedef typename remove_all<_Lhs>::type Lhs;
+  typedef typename remove_all<_Rhs>::type Rhs;
+  typedef typename scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType Scalar;
+  typedef typename promote_storage_type<typename traits<Lhs>::StorageKind, typename traits<Rhs>::StorageKind>::ret StorageKind;
+  typedef typename promote_index_type<typename Lhs::Index, typename Rhs::Index>::type Index;
+
+  enum {
+    LhsFlags = Lhs::Flags,
+    RhsFlags = Rhs::Flags,
+
+    RowsAtCompileTime = size_at_compile_time<traits<Lhs>::RowsAtCompileTime, traits<Rhs>::RowsAtCompileTime>::ret,
+    ColsAtCompileTime = size_at_compile_time<traits<Lhs>::ColsAtCompileTime, traits<Rhs>::ColsAtCompileTime>::ret,
+    MaxRowsAtCompileTime = size_at_compile_time<traits<Lhs>::MaxRowsAtCompileTime, traits<Rhs>::MaxRowsAtCompileTime>::ret,
+    MaxColsAtCompileTime = size_at_compile_time<traits<Lhs>::MaxColsAtCompileTime, traits<Rhs>::MaxColsAtCompileTime>::ret,
+
+    EvalToRowMajor = (LhsFlags & RhsFlags & RowMajorBit),
+    RemovedBits = ~(EvalToRowMajor ? 0 : RowMajorBit),
+
+    Flags = ((LhsFlags | RhsFlags) & HereditaryBits & RemovedBits)
+          | EvalBeforeNestingBit | EvalBeforeAssigningBit,
+    CoeffReadCost = Dynamic
+  };
+};
+
+} // end namespace internal
+
+/*!
+ * \ingroup KroneckerProduct_Module
+ *
+ * Computes Kronecker tensor product of two dense matrices
+ *
+ * \warning If you want to replace a matrix by its Kronecker product
+ *          with some matrix, do \b NOT do this:
+ * \code
+ * A = kroneckerProduct(A,B); // bug!!! caused by aliasing effect
+ * \endcode
+ * instead, use eval() to work around this:
+ * \code
+ * A = kroneckerProduct(A,B).eval();
+ * \endcode
+ *
+ * \param a  Dense matrix a
+ * \param b  Dense matrix b
+ * \return   Kronecker tensor product of a and b
+ */
+template<typename A, typename B>
+KroneckerProduct<A,B> kroneckerProduct(const MatrixBase<A>& a, const MatrixBase<B>& b)
+{
+  return KroneckerProduct<A, B>(a.derived(), b.derived());
+}
+
+/*!
+ * \ingroup KroneckerProduct_Module
+ *
+ * Computes Kronecker tensor product of two matrices, at least one of
+ * which is sparse
+ *
+ * \param a  Dense/sparse matrix a
+ * \param b  Dense/sparse matrix b
+ * \return   Kronecker tensor product of a and b, stored in a sparse
+ *           matrix
+ */
+template<typename A, typename B>
+KroneckerProductSparse<A,B> kroneckerProduct(const EigenBase<A>& a, const EigenBase<B>& b)
+{
+  return KroneckerProductSparse<A,B>(a.derived(), b.derived());
+}
+
+} // end namespace Eigen
+
+#endif // KRONECKER_TENSOR_PRODUCT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h	(revision 2476)
@@ -0,0 +1,377 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Thomas Capricelli <orzel@freehackers.org>
+// Copyright (C) 2012 Desire Nuentsa <desire.nuentsa_wakam@inria.fr>
+//
+// The algorithm of this class initially comes from MINPACK whose original authors are:
+// Copyright Jorge More - Argonne National Laboratory
+// Copyright Burt Garbow - Argonne National Laboratory
+// Copyright Ken Hillstrom - Argonne National Laboratory
+//
+// This Source Code Form is subject to the terms of the Minpack license
+// (a BSD-like license) described in the campaigned CopyrightMINPACK.txt file.
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LEVENBERGMARQUARDT_H
+#define EIGEN_LEVENBERGMARQUARDT_H
+
+
+namespace Eigen {
+namespace LevenbergMarquardtSpace {
+    enum Status {
+        NotStarted = -2,
+        Running = -1,
+        ImproperInputParameters = 0,
+        RelativeReductionTooSmall = 1,
+        RelativeErrorTooSmall = 2,
+        RelativeErrorAndReductionTooSmall = 3,
+        CosinusTooSmall = 4,
+        TooManyFunctionEvaluation = 5,
+        FtolTooSmall = 6,
+        XtolTooSmall = 7,
+        GtolTooSmall = 8,
+        UserAsked = 9
+    };
+}
+
+template <typename _Scalar, int NX=Dynamic, int NY=Dynamic>
+struct DenseFunctor
+{
+  typedef _Scalar Scalar;
+  enum {
+    InputsAtCompileTime = NX,
+    ValuesAtCompileTime = NY
+  };
+  typedef Matrix<Scalar,InputsAtCompileTime,1> InputType;
+  typedef Matrix<Scalar,ValuesAtCompileTime,1> ValueType;
+  typedef Matrix<Scalar,ValuesAtCompileTime,InputsAtCompileTime> JacobianType;
+  typedef ColPivHouseholderQR<JacobianType> QRSolver;
+  const int m_inputs, m_values;
+
+  DenseFunctor() : m_inputs(InputsAtCompileTime), m_values(ValuesAtCompileTime) {}
+  DenseFunctor(int inputs, int values) : m_inputs(inputs), m_values(values) {}
+
+  int inputs() const { return m_inputs; }
+  int values() const { return m_values; }
+
+  //int operator()(const InputType &x, ValueType& fvec) { }
+  // should be defined in derived classes
+  
+  //int df(const InputType &x, JacobianType& fjac) { }
+  // should be defined in derived classes
+};
+
+template <typename _Scalar, typename _Index>
+struct SparseFunctor
+{
+  typedef _Scalar Scalar;
+  typedef _Index Index;
+  typedef Matrix<Scalar,Dynamic,1> InputType;
+  typedef Matrix<Scalar,Dynamic,1> ValueType;
+  typedef SparseMatrix<Scalar, ColMajor, Index> JacobianType;
+  typedef SparseQR<JacobianType, COLAMDOrdering<int> > QRSolver;
+  enum {
+    InputsAtCompileTime = Dynamic,
+    ValuesAtCompileTime = Dynamic
+  };
+  
+  SparseFunctor(int inputs, int values) : m_inputs(inputs), m_values(values) {}
+
+  int inputs() const { return m_inputs; }
+  int values() const { return m_values; }
+  
+  const int m_inputs, m_values;
+  //int operator()(const InputType &x, ValueType& fvec) { }
+  // to be defined in the functor
+  
+  //int df(const InputType &x, JacobianType& fjac) { }
+  // to be defined in the functor if no automatic differentiation
+  
+};
+namespace internal {
+template <typename QRSolver, typename VectorType>
+void lmpar2(const QRSolver &qr, const VectorType  &diag, const VectorType  &qtb,
+	    typename VectorType::Scalar m_delta, typename VectorType::Scalar &par,
+	    VectorType  &x);
+    }
+/**
+  * \ingroup NonLinearOptimization_Module
+  * \brief Performs non linear optimization over a non-linear function,
+  * using a variant of the Levenberg Marquardt algorithm.
+  *
+  * Check wikipedia for more information.
+  * http://en.wikipedia.org/wiki/Levenberg%E2%80%93Marquardt_algorithm
+  */
+template<typename _FunctorType>
+class LevenbergMarquardt : internal::no_assignment_operator
+{
+  public:
+    typedef _FunctorType FunctorType;
+    typedef typename FunctorType::QRSolver QRSolver;
+    typedef typename FunctorType::JacobianType JacobianType;
+    typedef typename JacobianType::Scalar Scalar;
+    typedef typename JacobianType::RealScalar RealScalar; 
+    typedef typename JacobianType::Index Index;
+    typedef typename QRSolver::Index PermIndex;
+    typedef Matrix<Scalar,Dynamic,1> FVectorType;
+    typedef PermutationMatrix<Dynamic,Dynamic> PermutationType;
+  public:
+    LevenbergMarquardt(FunctorType& functor) 
+    : m_functor(functor),m_nfev(0),m_njev(0),m_fnorm(0.0),m_gnorm(0),
+      m_isInitialized(false),m_info(InvalidInput)
+    {
+      resetParameters();
+      m_useExternalScaling=false; 
+    }
+    
+    LevenbergMarquardtSpace::Status minimize(FVectorType &x);
+    LevenbergMarquardtSpace::Status minimizeInit(FVectorType &x);
+    LevenbergMarquardtSpace::Status minimizeOneStep(FVectorType &x);
+    LevenbergMarquardtSpace::Status lmder1(
+      FVectorType  &x, 
+      const Scalar tol = std::sqrt(NumTraits<Scalar>::epsilon())
+    );
+    static LevenbergMarquardtSpace::Status lmdif1(
+            FunctorType &functor,
+            FVectorType  &x,
+            Index *nfev,
+            const Scalar tol = std::sqrt(NumTraits<Scalar>::epsilon())
+            );
+    
+    /** Sets the default parameters */
+    void resetParameters() 
+    { 
+      m_factor = 100.; 
+      m_maxfev = 400; 
+      m_ftol = std::sqrt(NumTraits<RealScalar>::epsilon());
+      m_xtol = std::sqrt(NumTraits<RealScalar>::epsilon());
+      m_gtol = 0. ; 
+      m_epsfcn = 0. ;
+    }
+    
+    /** Sets the tolerance for the norm of the solution vector*/
+    void setXtol(RealScalar xtol) { m_xtol = xtol; }
+    
+    /** Sets the tolerance for the norm of the vector function*/
+    void setFtol(RealScalar ftol) { m_ftol = ftol; }
+    
+    /** Sets the tolerance for the norm of the gradient of the error vector*/
+    void setGtol(RealScalar gtol) { m_gtol = gtol; }
+    
+    /** Sets the step bound for the diagonal shift */
+    void setFactor(RealScalar factor) { m_factor = factor; }    
+    
+    /** Sets the error precision  */
+    void setEpsilon (RealScalar epsfcn) { m_epsfcn = epsfcn; }
+    
+    /** Sets the maximum number of function evaluation */
+    void setMaxfev(Index maxfev) {m_maxfev = maxfev; }
+    
+    /** Use an external Scaling. If set to true, pass a nonzero diagonal to diag() */
+    void setExternalScaling(bool value) {m_useExternalScaling  = value; }
+    
+    /** \returns a reference to the diagonal of the jacobian */
+    FVectorType& diag() {return m_diag; }
+    
+    /** \returns the number of iterations performed */
+    Index iterations() { return m_iter; }
+    
+    /** \returns the number of functions evaluation */
+    Index nfev() { return m_nfev; }
+    
+    /** \returns the number of jacobian evaluation */
+    Index njev() { return m_njev; }
+    
+    /** \returns the norm of current vector function */
+    RealScalar fnorm() {return m_fnorm; }
+    
+    /** \returns the norm of the gradient of the error */
+    RealScalar gnorm() {return m_gnorm; }
+    
+    /** \returns the LevenbergMarquardt parameter */
+    RealScalar lm_param(void) { return m_par; }
+    
+    /** \returns a reference to the  current vector function 
+     */
+    FVectorType& fvec() {return m_fvec; }
+    
+    /** \returns a reference to the matrix where the current Jacobian matrix is stored
+     */
+    JacobianType& jacobian() {return m_fjac; }
+    
+    /** \returns a reference to the triangular matrix R from the QR of the jacobian matrix.
+     * \sa jacobian()
+     */
+    JacobianType& matrixR() {return m_rfactor; }
+    
+    /** the permutation used in the QR factorization
+     */
+    PermutationType permutation() {return m_permutation; }
+    
+    /** 
+     * \brief Reports whether the minimization was successful
+     * \returns \c Success if the minimization was succesful,
+     *         \c NumericalIssue if a numerical problem arises during the 
+     *          minimization process, for exemple during the QR factorization
+     *         \c NoConvergence if the minimization did not converge after 
+     *          the maximum number of function evaluation allowed
+     *          \c InvalidInput if the input matrix is invalid
+     */
+    ComputationInfo info() const
+    {
+      
+      return m_info;
+    }
+  private:
+    JacobianType m_fjac; 
+    JacobianType m_rfactor; // The triangular matrix R from the QR of the jacobian matrix m_fjac
+    FunctorType &m_functor;
+    FVectorType m_fvec, m_qtf, m_diag; 
+    Index n;
+    Index m; 
+    Index m_nfev;
+    Index m_njev; 
+    RealScalar m_fnorm; // Norm of the current vector function
+    RealScalar m_gnorm; //Norm of the gradient of the error 
+    RealScalar m_factor; //
+    Index m_maxfev; // Maximum number of function evaluation
+    RealScalar m_ftol; //Tolerance in the norm of the vector function
+    RealScalar m_xtol; // 
+    RealScalar m_gtol; //tolerance of the norm of the error gradient
+    RealScalar m_epsfcn; //
+    Index m_iter; // Number of iterations performed
+    RealScalar m_delta;
+    bool m_useExternalScaling;
+    PermutationType m_permutation;
+    FVectorType m_wa1, m_wa2, m_wa3, m_wa4; //Temporary vectors
+    RealScalar m_par;
+    bool m_isInitialized; // Check whether the minimization step has been called
+    ComputationInfo m_info; 
+};
+
+template<typename FunctorType>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType>::minimize(FVectorType  &x)
+{
+    LevenbergMarquardtSpace::Status status = minimizeInit(x);
+    if (status==LevenbergMarquardtSpace::ImproperInputParameters) {
+      m_isInitialized = true;
+      return status;
+    }
+    do {
+//       std::cout << " uv " << x.transpose() << "\n";
+        status = minimizeOneStep(x);
+    } while (status==LevenbergMarquardtSpace::Running);
+     m_isInitialized = true;
+     return status;
+}
+
+template<typename FunctorType>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType>::minimizeInit(FVectorType  &x)
+{
+    n = x.size();
+    m = m_functor.values();
+
+    m_wa1.resize(n); m_wa2.resize(n); m_wa3.resize(n);
+    m_wa4.resize(m);
+    m_fvec.resize(m);
+    //FIXME Sparse Case : Allocate space for the jacobian
+    m_fjac.resize(m, n);
+//     m_fjac.reserve(VectorXi::Constant(n,5)); // FIXME Find a better alternative
+    if (!m_useExternalScaling)
+        m_diag.resize(n);
+    eigen_assert( (!m_useExternalScaling || m_diag.size()==n) || "When m_useExternalScaling is set, the caller must provide a valid 'm_diag'");
+    m_qtf.resize(n);
+
+    /* Function Body */
+    m_nfev = 0;
+    m_njev = 0;
+
+    /*     check the input parameters for errors. */
+    if (n <= 0 || m < n || m_ftol < 0. || m_xtol < 0. || m_gtol < 0. || m_maxfev <= 0 || m_factor <= 0.){
+      m_info = InvalidInput;
+      return LevenbergMarquardtSpace::ImproperInputParameters;
+    }
+
+    if (m_useExternalScaling)
+        for (Index j = 0; j < n; ++j)
+            if (m_diag[j] <= 0.) 
+            {
+              m_info = InvalidInput;
+              return LevenbergMarquardtSpace::ImproperInputParameters;
+            }
+
+    /*     evaluate the function at the starting point */
+    /*     and calculate its norm. */
+    m_nfev = 1;
+    if ( m_functor(x, m_fvec) < 0)
+        return LevenbergMarquardtSpace::UserAsked;
+    m_fnorm = m_fvec.stableNorm();
+
+    /*     initialize levenberg-marquardt parameter and iteration counter. */
+    m_par = 0.;
+    m_iter = 1;
+
+    return LevenbergMarquardtSpace::NotStarted;
+}
+
+template<typename FunctorType>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType>::lmder1(
+        FVectorType  &x,
+        const Scalar tol
+        )
+{
+    n = x.size();
+    m = m_functor.values();
+
+    /* check the input parameters for errors. */
+    if (n <= 0 || m < n || tol < 0.)
+        return LevenbergMarquardtSpace::ImproperInputParameters;
+
+    resetParameters();
+    m_ftol = tol;
+    m_xtol = tol;
+    m_maxfev = 100*(n+1);
+
+    return minimize(x);
+}
+
+
+template<typename FunctorType>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType>::lmdif1(
+        FunctorType &functor,
+        FVectorType  &x,
+        Index *nfev,
+        const Scalar tol
+        )
+{
+    Index n = x.size();
+    Index m = functor.values();
+
+    /* check the input parameters for errors. */
+    if (n <= 0 || m < n || tol < 0.)
+        return LevenbergMarquardtSpace::ImproperInputParameters;
+
+    NumericalDiff<FunctorType> numDiff(functor);
+    // embedded LevenbergMarquardt
+    LevenbergMarquardt<NumericalDiff<FunctorType> > lm(numDiff);
+    lm.setFtol(tol);
+    lm.setXtol(tol);
+    lm.setMaxfev(200*(n+1));
+
+    LevenbergMarquardtSpace::Status info = LevenbergMarquardtSpace::Status(lm.minimize(x));
+    if (nfev)
+        * nfev = lm.nfev();
+    return info;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_LEVENBERGMARQUARDT_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h	(revision 2476)
@@ -0,0 +1,160 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This code initially comes from MINPACK whose original authors are:
+// Copyright Jorge More - Argonne National Laboratory
+// Copyright Burt Garbow - Argonne National Laboratory
+// Copyright Ken Hillstrom - Argonne National Laboratory
+//
+// This Source Code Form is subject to the terms of the Minpack license
+// (a BSD-like license) described in the campaigned CopyrightMINPACK.txt file.
+
+#ifndef EIGEN_LMPAR_H
+#define EIGEN_LMPAR_H
+
+namespace Eigen {
+
+namespace internal {
+  
+  template <typename QRSolver, typename VectorType>
+    void lmpar2(
+    const QRSolver &qr,
+    const VectorType  &diag,
+    const VectorType  &qtb,
+    typename VectorType::Scalar m_delta,
+    typename VectorType::Scalar &par,
+    VectorType  &x)
+
+  {
+    using std::sqrt;
+    using std::abs;
+    typedef typename QRSolver::MatrixType MatrixType;
+    typedef typename QRSolver::Scalar Scalar;
+    typedef typename QRSolver::Index Index;
+
+    /* Local variables */
+    Index j;
+    Scalar fp;
+    Scalar parc, parl;
+    Index iter;
+    Scalar temp, paru;
+    Scalar gnorm;
+    Scalar dxnorm;
+    
+    // Make a copy of the triangular factor. 
+    // This copy is modified during call the qrsolv
+    MatrixType s;
+    s = qr.matrixR();
+
+    /* Function Body */
+    const Scalar dwarf = (std::numeric_limits<Scalar>::min)();
+    const Index n = qr.matrixR().cols();
+    eigen_assert(n==diag.size());
+    eigen_assert(n==qtb.size());
+
+    VectorType  wa1, wa2;
+
+    /* compute and store in x the gauss-newton direction. if the */
+    /* jacobian is rank-deficient, obtain a least squares solution. */
+
+    //    const Index rank = qr.nonzeroPivots(); // exactly double(0.)
+    const Index rank = qr.rank(); // use a threshold
+    wa1 = qtb;
+    wa1.tail(n-rank).setZero();
+    //FIXME There is no solve in place for sparse triangularView
+    wa1.head(rank) = s.topLeftCorner(rank,rank).template triangularView<Upper>().solve(qtb.head(rank));
+
+    x = qr.colsPermutation()*wa1;
+
+    /* initialize the iteration counter. */
+    /* evaluate the function at the origin, and test */
+    /* for acceptance of the gauss-newton direction. */
+    iter = 0;
+    wa2 = diag.cwiseProduct(x);
+    dxnorm = wa2.blueNorm();
+    fp = dxnorm - m_delta;
+    if (fp <= Scalar(0.1) * m_delta) {
+      par = 0;
+      return;
+    }
+
+    /* if the jacobian is not rank deficient, the newton */
+    /* step provides a lower bound, parl, for the zero of */
+    /* the function. otherwise set this bound to zero. */
+    parl = 0.;
+    if (rank==n) {
+      wa1 = qr.colsPermutation().inverse() *  diag.cwiseProduct(wa2)/dxnorm;
+      s.topLeftCorner(n,n).transpose().template triangularView<Lower>().solveInPlace(wa1);
+      temp = wa1.blueNorm();
+      parl = fp / m_delta / temp / temp;
+    }
+
+    /* calculate an upper bound, paru, for the zero of the function. */
+    for (j = 0; j < n; ++j)
+      wa1[j] = s.col(j).head(j+1).dot(qtb.head(j+1)) / diag[qr.colsPermutation().indices()(j)];
+
+    gnorm = wa1.stableNorm();
+    paru = gnorm / m_delta;
+    if (paru == 0.)
+      paru = dwarf / (std::min)(m_delta,Scalar(0.1));
+
+    /* if the input par lies outside of the interval (parl,paru), */
+    /* set par to the closer endpoint. */
+    par = (std::max)(par,parl);
+    par = (std::min)(par,paru);
+    if (par == 0.)
+      par = gnorm / dxnorm;
+
+    /* beginning of an iteration. */
+    while (true) {
+      ++iter;
+
+      /* evaluate the function at the current value of par. */
+      if (par == 0.)
+        par = (std::max)(dwarf,Scalar(.001) * paru); /* Computing MAX */
+      wa1 = sqrt(par)* diag;
+
+      VectorType sdiag(n);
+      lmqrsolv(s, qr.colsPermutation(), wa1, qtb, x, sdiag);
+
+      wa2 = diag.cwiseProduct(x);
+      dxnorm = wa2.blueNorm();
+      temp = fp;
+      fp = dxnorm - m_delta;
+
+      /* if the function is small enough, accept the current value */
+      /* of par. also test for the exceptional cases where parl */
+      /* is zero or the number of iterations has reached 10. */
+      if (abs(fp) <= Scalar(0.1) * m_delta || (parl == 0. && fp <= temp && temp < 0.) || iter == 10)
+        break;
+
+      /* compute the newton correction. */
+      wa1 = qr.colsPermutation().inverse() * diag.cwiseProduct(wa2/dxnorm);
+      // we could almost use this here, but the diagonal is outside qr, in sdiag[]
+      for (j = 0; j < n; ++j) {
+        wa1[j] /= sdiag[j];
+        temp = wa1[j];
+        for (Index i = j+1; i < n; ++i)
+          wa1[i] -= s.coeff(i,j) * temp;
+      }
+      temp = wa1.blueNorm();
+      parc = fp / m_delta / temp / temp;
+
+      /* depending on the sign of the function, update parl or paru. */
+      if (fp > 0.)
+        parl = (std::max)(parl,par);
+      if (fp < 0.)
+        paru = (std::min)(paru,par);
+
+      /* compute an improved estimate for par. */
+      par = (std::max)(parl,par+parc);
+    }
+    if (iter == 0)
+      par = 0.;
+    return;
+  }
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_LMPAR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h	(revision 2476)
@@ -0,0 +1,189 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Thomas Capricelli <orzel@freehackers.org>
+// Copyright (C) 2012 Desire Nuentsa <desire.nuentsa_wakam@inria.fr>
+//
+// This code initially comes from MINPACK whose original authors are:
+// Copyright Jorge More - Argonne National Laboratory
+// Copyright Burt Garbow - Argonne National Laboratory
+// Copyright Ken Hillstrom - Argonne National Laboratory
+//
+// This Source Code Form is subject to the terms of the Minpack license
+// (a BSD-like license) described in the campaigned CopyrightMINPACK.txt file.
+
+#ifndef EIGEN_LMQRSOLV_H
+#define EIGEN_LMQRSOLV_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template <typename Scalar,int Rows, int Cols, typename Index>
+void lmqrsolv(
+  Matrix<Scalar,Rows,Cols> &s,
+  const PermutationMatrix<Dynamic,Dynamic,Index> &iPerm,
+  const Matrix<Scalar,Dynamic,1> &diag,
+  const Matrix<Scalar,Dynamic,1> &qtb,
+  Matrix<Scalar,Dynamic,1> &x,
+  Matrix<Scalar,Dynamic,1> &sdiag)
+{
+
+    /* Local variables */
+    Index i, j, k, l;
+    Scalar temp;
+    Index n = s.cols();
+    Matrix<Scalar,Dynamic,1>  wa(n);
+    JacobiRotation<Scalar> givens;
+
+    /* Function Body */
+    // the following will only change the lower triangular part of s, including
+    // the diagonal, though the diagonal is restored afterward
+
+    /*     copy r and (q transpose)*b to preserve input and initialize s. */
+    /*     in particular, save the diagonal elements of r in x. */
+    x = s.diagonal();
+    wa = qtb;
+    
+   
+    s.topLeftCorner(n,n).template triangularView<StrictlyLower>() = s.topLeftCorner(n,n).transpose();
+    /*     eliminate the diagonal matrix d using a givens rotation. */
+    for (j = 0; j < n; ++j) {
+
+        /*        prepare the row of d to be eliminated, locating the */
+        /*        diagonal element using p from the qr factorization. */
+        l = iPerm.indices()(j);
+        if (diag[l] == 0.)
+            break;
+        sdiag.tail(n-j).setZero();
+        sdiag[j] = diag[l];
+
+        /*        the transformations to eliminate the row of d */
+        /*        modify only a single element of (q transpose)*b */
+        /*        beyond the first n, which is initially zero. */
+        Scalar qtbpj = 0.;
+        for (k = j; k < n; ++k) {
+            /*           determine a givens rotation which eliminates the */
+            /*           appropriate element in the current row of d. */
+            givens.makeGivens(-s(k,k), sdiag[k]);
+
+            /*           compute the modified diagonal element of r and */
+            /*           the modified element of ((q transpose)*b,0). */
+            s(k,k) = givens.c() * s(k,k) + givens.s() * sdiag[k];
+            temp = givens.c() * wa[k] + givens.s() * qtbpj;
+            qtbpj = -givens.s() * wa[k] + givens.c() * qtbpj;
+            wa[k] = temp;
+
+            /*           accumulate the tranformation in the row of s. */
+            for (i = k+1; i<n; ++i) {
+                temp = givens.c() * s(i,k) + givens.s() * sdiag[i];
+                sdiag[i] = -givens.s() * s(i,k) + givens.c() * sdiag[i];
+                s(i,k) = temp;
+            }
+        }
+    }
+  
+    /*     solve the triangular system for z. if the system is */
+    /*     singular, then obtain a least squares solution. */
+    Index nsing;
+    for(nsing=0; nsing<n && sdiag[nsing]!=0; nsing++) {}
+
+    wa.tail(n-nsing).setZero();
+    s.topLeftCorner(nsing, nsing).transpose().template triangularView<Upper>().solveInPlace(wa.head(nsing));
+  
+    // restore
+    sdiag = s.diagonal();
+    s.diagonal() = x;
+
+    /* permute the components of z back to components of x. */
+    x = iPerm * wa; 
+}
+
+template <typename Scalar, int _Options, typename Index>
+void lmqrsolv(
+  SparseMatrix<Scalar,_Options,Index> &s,
+  const PermutationMatrix<Dynamic,Dynamic> &iPerm,
+  const Matrix<Scalar,Dynamic,1> &diag,
+  const Matrix<Scalar,Dynamic,1> &qtb,
+  Matrix<Scalar,Dynamic,1> &x,
+  Matrix<Scalar,Dynamic,1> &sdiag)
+{
+  /* Local variables */
+  typedef SparseMatrix<Scalar,RowMajor,Index> FactorType;
+    Index i, j, k, l;
+    Scalar temp;
+    Index n = s.cols();
+    Matrix<Scalar,Dynamic,1>  wa(n);
+    JacobiRotation<Scalar> givens;
+
+    /* Function Body */
+    // the following will only change the lower triangular part of s, including
+    // the diagonal, though the diagonal is restored afterward
+
+    /*     copy r and (q transpose)*b to preserve input and initialize R. */
+    wa = qtb;
+    FactorType R(s);
+    // Eliminate the diagonal matrix d using a givens rotation
+    for (j = 0; j < n; ++j)
+    {
+      // Prepare the row of d to be eliminated, locating the 
+      // diagonal element using p from the qr factorization
+      l = iPerm.indices()(j);
+      if (diag(l) == Scalar(0)) 
+        break; 
+      sdiag.tail(n-j).setZero();
+      sdiag[j] = diag[l];
+      // the transformations to eliminate the row of d
+      // modify only a single element of (q transpose)*b
+      // beyond the first n, which is initially zero. 
+      
+      Scalar qtbpj = 0; 
+      // Browse the nonzero elements of row j of the upper triangular s
+      for (k = j; k < n; ++k)
+      {
+        typename FactorType::InnerIterator itk(R,k);
+        for (; itk; ++itk){
+          if (itk.index() < k) continue;
+          else break;
+        }
+        //At this point, we have the diagonal element R(k,k)
+        // Determine a givens rotation which eliminates 
+        // the appropriate element in the current row of d
+        givens.makeGivens(-itk.value(), sdiag(k));
+        
+        // Compute the modified diagonal element of r and 
+        // the modified element of ((q transpose)*b,0).
+        itk.valueRef() = givens.c() * itk.value() + givens.s() * sdiag(k);
+        temp = givens.c() * wa(k) + givens.s() * qtbpj; 
+        qtbpj = -givens.s() * wa(k) + givens.c() * qtbpj;
+        wa(k) = temp;
+        
+        // Accumulate the transformation in the remaining k row/column of R
+        for (++itk; itk; ++itk)
+        {
+          i = itk.index();
+          temp = givens.c() *  itk.value() + givens.s() * sdiag(i);
+          sdiag(i) = -givens.s() * itk.value() + givens.c() * sdiag(i);
+          itk.valueRef() = temp;
+        }
+      }
+    }
+    
+    // Solve the triangular system for z. If the system is 
+    // singular, then obtain a least squares solution
+    Index nsing;
+    for(nsing = 0; nsing<n && sdiag(nsing) !=0; nsing++) {}
+    
+    wa.tail(n-nsing).setZero();
+//     x = wa; 
+    wa.head(nsing) = R.topLeftCorner(nsing,nsing).template triangularView<Upper>().solve/*InPlace*/(wa.head(nsing));
+    
+    sdiag = R.diagonal();
+    // Permute the components of z back to components of x
+    x = iPerm * wa; 
+}
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_LMQRSOLV_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt	(revision 2476)
@@ -0,0 +1,52 @@
+Minpack Copyright Notice (1999) University of Chicago.  All rights reserved
+
+Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the
+following conditions are met:
+
+1. Redistributions of source code must retain the above
+copyright notice, this list of conditions and the following
+disclaimer.
+
+2. Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following
+disclaimer in the documentation and/or other materials
+provided with the distribution.
+
+3. The end-user documentation included with the
+redistribution, if any, must include the following
+acknowledgment:
+
+   "This product includes software developed by the
+   University of Chicago, as Operator of Argonne National
+   Laboratory.
+
+Alternately, this acknowledgment may appear in the software
+itself, if and wherever such third-party acknowledgments
+normally appear.
+
+4. WARRANTY DISCLAIMER. THE SOFTWARE IS SUPPLIED "AS IS"
+WITHOUT WARRANTY OF ANY KIND. THE COPYRIGHT HOLDER, THE
+UNITED STATES, THE UNITED STATES DEPARTMENT OF ENERGY, AND
+THEIR EMPLOYEES: (1) DISCLAIM ANY WARRANTIES, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE
+OR NON-INFRINGEMENT, (2) DO NOT ASSUME ANY LEGAL LIABILITY
+OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
+USEFULNESS OF THE SOFTWARE, (3) DO NOT REPRESENT THAT USE OF
+THE SOFTWARE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS, (4)
+DO NOT WARRANT THAT THE SOFTWARE WILL FUNCTION
+UNINTERRUPTED, THAT IT IS ERROR-FREE OR THAT ANY ERRORS WILL
+BE CORRECTED.
+
+5. LIMITATION OF LIABILITY. IN NO EVENT WILL THE COPYRIGHT
+HOLDER, THE UNITED STATES, THE UNITED STATES DEPARTMENT OF
+ENERGY, OR THEIR EMPLOYEES: BE LIABLE FOR ANY INDIRECT,
+INCIDENTAL, CONSEQUENTIAL, SPECIAL OR PUNITIVE DAMAGES OF
+ANY KIND OR NATURE, INCLUDING BUT NOT LIMITED TO LOSS OF
+PROFITS OR LOSS OF DATA, FOR ANY REASON WHATSOEVER, WHETHER
+SUCH LIABILITY IS ASSERTED ON THE BASIS OF CONTRACT, TORT
+(INCLUDING NEGLIGENCE OR STRICT LIABILITY), OR OTHERWISE,
+EVEN IF ANY OF SAID PARTIES HAS BEEN WARNED OF THE
+POSSIBILITY OF SUCH LOSS OR DAMAGES.
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/CopyrightMINPACK.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h	(revision 2476)
@@ -0,0 +1,85 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// This code initially comes from MINPACK whose original authors are:
+// Copyright Jorge More - Argonne National Laboratory
+// Copyright Burt Garbow - Argonne National Laboratory
+// Copyright Ken Hillstrom - Argonne National Laboratory
+//
+// This Source Code Form is subject to the terms of the Minpack license
+// (a BSD-like license) described in the campaigned CopyrightMINPACK.txt file.
+
+#ifndef EIGEN_LMCOVAR_H
+#define EIGEN_LMCOVAR_H
+
+namespace Eigen { 
+
+namespace internal {
+
+template <typename Scalar>
+void covar(
+        Matrix< Scalar, Dynamic, Dynamic > &r,
+        const VectorXi& ipvt,
+        Scalar tol = std::sqrt(NumTraits<Scalar>::epsilon()) )
+{
+    using std::abs;
+    typedef DenseIndex Index;
+    /* Local variables */
+    Index i, j, k, l, ii, jj;
+    bool sing;
+    Scalar temp;
+
+    /* Function Body */
+    const Index n = r.cols();
+    const Scalar tolr = tol * abs(r(0,0));
+    Matrix< Scalar, Dynamic, 1 > wa(n);
+    eigen_assert(ipvt.size()==n);
+
+    /* form the inverse of r in the full upper triangle of r. */
+    l = -1;
+    for (k = 0; k < n; ++k)
+        if (abs(r(k,k)) > tolr) {
+            r(k,k) = 1. / r(k,k);
+            for (j = 0; j <= k-1; ++j) {
+                temp = r(k,k) * r(j,k);
+                r(j,k) = 0.;
+                r.col(k).head(j+1) -= r.col(j).head(j+1) * temp;
+            }
+            l = k;
+        }
+
+    /* form the full upper triangle of the inverse of (r transpose)*r */
+    /* in the full upper triangle of r. */
+    for (k = 0; k <= l; ++k) {
+        for (j = 0; j <= k-1; ++j)
+            r.col(j).head(j+1) += r.col(k).head(j+1) * r(j,k);
+        r.col(k).head(k+1) *= r(k,k);
+    }
+
+    /* form the full lower triangle of the covariance matrix */
+    /* in the strict lower triangle of r and in wa. */
+    for (j = 0; j < n; ++j) {
+        jj = ipvt[j];
+        sing = j > l;
+        for (i = 0; i <= j; ++i) {
+            if (sing)
+                r(i,j) = 0.;
+            ii = ipvt[i];
+            if (ii > jj)
+                r(ii,jj) = r(i,j);
+            if (ii < jj)
+                r(jj,ii) = r(i,j);
+        }
+        wa[jj] = r(j,j);
+    }
+
+    /* symmetrize the covariance matrix in r. */
+    r.topLeftCorner(n,n).template triangularView<StrictlyUpper>() = r.topLeftCorner(n,n).transpose();
+    r.diagonal() = wa;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_LMCOVAR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h	(revision 2476)
@@ -0,0 +1,202 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Thomas Capricelli <orzel@freehackers.org>
+//
+// This code initially comes from MINPACK whose original authors are:
+// Copyright Jorge More - Argonne National Laboratory
+// Copyright Burt Garbow - Argonne National Laboratory
+// Copyright Ken Hillstrom - Argonne National Laboratory
+//
+// This Source Code Form is subject to the terms of the Minpack license
+// (a BSD-like license) described in the campaigned CopyrightMINPACK.txt file.
+
+#ifndef EIGEN_LMONESTEP_H
+#define EIGEN_LMONESTEP_H
+
+namespace Eigen {
+
+template<typename FunctorType>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType>::minimizeOneStep(FVectorType  &x)
+{
+  using std::abs;
+  using std::sqrt;
+  RealScalar temp, temp1,temp2; 
+  RealScalar ratio; 
+  RealScalar pnorm, xnorm, fnorm1, actred, dirder, prered;
+  eigen_assert(x.size()==n); // check the caller is not cheating us
+
+  temp = 0.0; xnorm = 0.0;
+  /* calculate the jacobian matrix. */
+  Index df_ret = m_functor.df(x, m_fjac);
+  if (df_ret<0)
+      return LevenbergMarquardtSpace::UserAsked;
+  if (df_ret>0)
+      // numerical diff, we evaluated the function df_ret times
+      m_nfev += df_ret;
+  else m_njev++;
+
+  /* compute the qr factorization of the jacobian. */
+  for (int j = 0; j < x.size(); ++j)
+    m_wa2(j) = m_fjac.col(j).blueNorm();
+  QRSolver qrfac(m_fjac);
+  if(qrfac.info() != Success) {
+    m_info = NumericalIssue;
+    return LevenbergMarquardtSpace::ImproperInputParameters;
+  }
+  // Make a copy of the first factor with the associated permutation
+  m_rfactor = qrfac.matrixR();
+  m_permutation = (qrfac.colsPermutation());
+
+  /* on the first iteration and if external scaling is not used, scale according */
+  /* to the norms of the columns of the initial jacobian. */
+  if (m_iter == 1) {
+      if (!m_useExternalScaling)
+          for (Index j = 0; j < n; ++j)
+              m_diag[j] = (m_wa2[j]==0.)? 1. : m_wa2[j];
+
+      /* on the first iteration, calculate the norm of the scaled x */
+      /* and initialize the step bound m_delta. */
+      xnorm = m_diag.cwiseProduct(x).stableNorm();
+      m_delta = m_factor * xnorm;
+      if (m_delta == 0.)
+          m_delta = m_factor;
+  }
+
+  /* form (q transpose)*m_fvec and store the first n components in */
+  /* m_qtf. */
+  m_wa4 = m_fvec;
+  m_wa4 = qrfac.matrixQ().adjoint() * m_fvec; 
+  m_qtf = m_wa4.head(n);
+
+  /* compute the norm of the scaled gradient. */
+  m_gnorm = 0.;
+  if (m_fnorm != 0.)
+      for (Index j = 0; j < n; ++j)
+          if (m_wa2[m_permutation.indices()[j]] != 0.)
+              m_gnorm = (std::max)(m_gnorm, abs( m_rfactor.col(j).head(j+1).dot(m_qtf.head(j+1)/m_fnorm) / m_wa2[m_permutation.indices()[j]]));
+
+  /* test for convergence of the gradient norm. */
+  if (m_gnorm <= m_gtol) {
+    m_info = Success;
+    return LevenbergMarquardtSpace::CosinusTooSmall;
+  }
+
+  /* rescale if necessary. */
+  if (!m_useExternalScaling)
+      m_diag = m_diag.cwiseMax(m_wa2);
+
+  do {
+    /* determine the levenberg-marquardt parameter. */
+    internal::lmpar2(qrfac, m_diag, m_qtf, m_delta, m_par, m_wa1);
+
+    /* store the direction p and x + p. calculate the norm of p. */
+    m_wa1 = -m_wa1;
+    m_wa2 = x + m_wa1;
+    pnorm = m_diag.cwiseProduct(m_wa1).stableNorm();
+
+    /* on the first iteration, adjust the initial step bound. */
+    if (m_iter == 1)
+        m_delta = (std::min)(m_delta,pnorm);
+
+    /* evaluate the function at x + p and calculate its norm. */
+    if ( m_functor(m_wa2, m_wa4) < 0)
+        return LevenbergMarquardtSpace::UserAsked;
+    ++m_nfev;
+    fnorm1 = m_wa4.stableNorm();
+
+    /* compute the scaled actual reduction. */
+    actred = -1.;
+    if (Scalar(.1) * fnorm1 < m_fnorm)
+        actred = 1. - numext::abs2(fnorm1 / m_fnorm);
+
+    /* compute the scaled predicted reduction and */
+    /* the scaled directional derivative. */
+    m_wa3 = m_rfactor.template triangularView<Upper>() * (m_permutation.inverse() *m_wa1);
+    temp1 = numext::abs2(m_wa3.stableNorm() / m_fnorm);
+    temp2 = numext::abs2(sqrt(m_par) * pnorm / m_fnorm);
+    prered = temp1 + temp2 / Scalar(.5);
+    dirder = -(temp1 + temp2);
+
+    /* compute the ratio of the actual to the predicted */
+    /* reduction. */
+    ratio = 0.;
+    if (prered != 0.)
+        ratio = actred / prered;
+
+    /* update the step bound. */
+    if (ratio <= Scalar(.25)) {
+        if (actred >= 0.)
+            temp = RealScalar(.5);
+        if (actred < 0.)
+            temp = RealScalar(.5) * dirder / (dirder + RealScalar(.5) * actred);
+        if (RealScalar(.1) * fnorm1 >= m_fnorm || temp < RealScalar(.1))
+            temp = Scalar(.1);
+        /* Computing MIN */
+        m_delta = temp * (std::min)(m_delta, pnorm / RealScalar(.1));
+        m_par /= temp;
+    } else if (!(m_par != 0. && ratio < RealScalar(.75))) {
+        m_delta = pnorm / RealScalar(.5);
+        m_par = RealScalar(.5) * m_par;
+    }
+
+    /* test for successful iteration. */
+    if (ratio >= RealScalar(1e-4)) {
+        /* successful iteration. update x, m_fvec, and their norms. */
+        x = m_wa2;
+        m_wa2 = m_diag.cwiseProduct(x);
+        m_fvec = m_wa4;
+        xnorm = m_wa2.stableNorm();
+        m_fnorm = fnorm1;
+        ++m_iter;
+    }
+
+    /* tests for convergence. */
+    if (abs(actred) <= m_ftol && prered <= m_ftol && Scalar(.5) * ratio <= 1. && m_delta <= m_xtol * xnorm)
+    {
+       m_info = Success;
+      return LevenbergMarquardtSpace::RelativeErrorAndReductionTooSmall;
+    }
+    if (abs(actred) <= m_ftol && prered <= m_ftol && Scalar(.5) * ratio <= 1.) 
+    {
+      m_info = Success;
+      return LevenbergMarquardtSpace::RelativeReductionTooSmall;
+    }
+    if (m_delta <= m_xtol * xnorm)
+    {
+      m_info = Success;
+      return LevenbergMarquardtSpace::RelativeErrorTooSmall;
+    }
+
+    /* tests for termination and stringent tolerances. */
+    if (m_nfev >= m_maxfev) 
+    {
+      m_info = NoConvergence;
+      return LevenbergMarquardtSpace::TooManyFunctionEvaluation;
+    }
+    if (abs(actred) <= NumTraits<Scalar>::epsilon() && prered <= NumTraits<Scalar>::epsilon() && Scalar(.5) * ratio <= 1.)
+    {
+      m_info = Success;
+      return LevenbergMarquardtSpace::FtolTooSmall;
+    }
+    if (m_delta <= NumTraits<Scalar>::epsilon() * xnorm) 
+    {
+      m_info = Success;
+      return LevenbergMarquardtSpace::XtolTooSmall;
+    }
+    if (m_gnorm <= NumTraits<Scalar>::epsilon())
+    {
+      m_info = Success;
+      return LevenbergMarquardtSpace::GtolTooSmall;
+    }
+
+  } while (ratio < Scalar(1e-4));
+
+  return LevenbergMarquardtSpace::Running;
+}
+
+  
+} // end namespace Eigen
+
+#endif // EIGEN_LMONESTEP_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h	(revision 2476)
@@ -0,0 +1,49 @@
+namespace Eigen { 
+
+namespace internal {
+
+template <typename Scalar>
+void rwupdt(
+        Matrix< Scalar, Dynamic, Dynamic >  &r,
+        const Matrix< Scalar, Dynamic, 1>  &w,
+        Matrix< Scalar, Dynamic, 1>  &b,
+        Scalar alpha)
+{
+    typedef DenseIndex Index;
+
+    const Index n = r.cols();
+    eigen_assert(r.rows()>=n);
+    std::vector<JacobiRotation<Scalar> > givens(n);
+
+    /* Local variables */
+    Scalar temp, rowj;
+
+    /* Function Body */
+    for (Index j = 0; j < n; ++j) {
+        rowj = w[j];
+
+        /* apply the previous transformations to */
+        /* r(i,j), i=0,1,...,j-1, and to w(j). */
+        for (Index i = 0; i < j; ++i) {
+            temp = givens[i].c() * r(i,j) + givens[i].s() * rowj;
+            rowj = -givens[i].s() * r(i,j) + givens[i].c() * rowj;
+            r(i,j) = temp;
+        }
+
+        /* determine a givens rotation which eliminates w(j). */
+        givens[j].makeGivens(-r(j,j), rowj);
+
+        if (rowj == 0.)
+            continue; // givens[j] is identity
+
+        /* apply the current transformation to r(j,j), b(j), and alpha. */
+        r(j,j) = givens[j].c() * r(j,j) + givens[j].s() * rowj;
+        temp = givens[j].c() * b[j] + givens[j].s() * alpha;
+        alpha = -givens[j].s() * b[j] + givens[j].c() * alpha;
+        b[j] = temp;
+    }
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h	(revision 2476)
@@ -0,0 +1,91 @@
+namespace Eigen { 
+
+namespace internal {
+
+// TODO : once qrsolv2 is removed, use ColPivHouseholderQR or PermutationMatrix instead of ipvt
+template <typename Scalar>
+void qrsolv(
+        Matrix< Scalar, Dynamic, Dynamic > &s,
+        // TODO : use a PermutationMatrix once lmpar is no more:
+        const VectorXi &ipvt,
+        const Matrix< Scalar, Dynamic, 1 >  &diag,
+        const Matrix< Scalar, Dynamic, 1 >  &qtb,
+        Matrix< Scalar, Dynamic, 1 >  &x,
+        Matrix< Scalar, Dynamic, 1 >  &sdiag)
+
+{
+    typedef DenseIndex Index;
+
+    /* Local variables */
+    Index i, j, k, l;
+    Scalar temp;
+    Index n = s.cols();
+    Matrix< Scalar, Dynamic, 1 >  wa(n);
+    JacobiRotation<Scalar> givens;
+
+    /* Function Body */
+    // the following will only change the lower triangular part of s, including
+    // the diagonal, though the diagonal is restored afterward
+
+    /*     copy r and (q transpose)*b to preserve input and initialize s. */
+    /*     in particular, save the diagonal elements of r in x. */
+    x = s.diagonal();
+    wa = qtb;
+
+    s.topLeftCorner(n,n).template triangularView<StrictlyLower>() = s.topLeftCorner(n,n).transpose();
+
+    /*     eliminate the diagonal matrix d using a givens rotation. */
+    for (j = 0; j < n; ++j) {
+
+        /*        prepare the row of d to be eliminated, locating the */
+        /*        diagonal element using p from the qr factorization. */
+        l = ipvt[j];
+        if (diag[l] == 0.)
+            break;
+        sdiag.tail(n-j).setZero();
+        sdiag[j] = diag[l];
+
+        /*        the transformations to eliminate the row of d */
+        /*        modify only a single element of (q transpose)*b */
+        /*        beyond the first n, which is initially zero. */
+        Scalar qtbpj = 0.;
+        for (k = j; k < n; ++k) {
+            /*           determine a givens rotation which eliminates the */
+            /*           appropriate element in the current row of d. */
+            givens.makeGivens(-s(k,k), sdiag[k]);
+
+            /*           compute the modified diagonal element of r and */
+            /*           the modified element of ((q transpose)*b,0). */
+            s(k,k) = givens.c() * s(k,k) + givens.s() * sdiag[k];
+            temp = givens.c() * wa[k] + givens.s() * qtbpj;
+            qtbpj = -givens.s() * wa[k] + givens.c() * qtbpj;
+            wa[k] = temp;
+
+            /*           accumulate the tranformation in the row of s. */
+            for (i = k+1; i<n; ++i) {
+                temp = givens.c() * s(i,k) + givens.s() * sdiag[i];
+                sdiag[i] = -givens.s() * s(i,k) + givens.c() * sdiag[i];
+                s(i,k) = temp;
+            }
+        }
+    }
+
+    /*     solve the triangular system for z. if the system is */
+    /*     singular, then obtain a least squares solution. */
+    Index nsing;
+    for(nsing=0; nsing<n && sdiag[nsing]!=0; nsing++) {}
+
+    wa.tail(n-nsing).setZero();
+    s.topLeftCorner(nsing, nsing).transpose().template triangularView<Upper>().solveInPlace(wa.head(nsing));
+
+    // restore
+    sdiag = s.diagonal();
+    s.diagonal() = x;
+
+    /*     permute the components of z back to components of x. */
+    for (j = 0; j < n; ++j) x[ipvt[j]] = wa[j];
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h	(revision 2476)
@@ -0,0 +1,79 @@
+namespace Eigen { 
+
+namespace internal {
+
+template<typename FunctorType, typename Scalar>
+DenseIndex fdjac1(
+        const FunctorType &Functor,
+        Matrix< Scalar, Dynamic, 1 >  &x,
+        Matrix< Scalar, Dynamic, 1 >  &fvec,
+        Matrix< Scalar, Dynamic, Dynamic > &fjac,
+        DenseIndex ml, DenseIndex mu,
+        Scalar epsfcn)
+{
+    using std::sqrt;
+    using std::abs;
+    
+    typedef DenseIndex Index;
+
+    /* Local variables */
+    Scalar h;
+    Index j, k;
+    Scalar eps, temp;
+    Index msum;
+    int iflag;
+    Index start, length;
+
+    /* Function Body */
+    const Scalar epsmch = NumTraits<Scalar>::epsilon();
+    const Index n = x.size();
+    eigen_assert(fvec.size()==n);
+    Matrix< Scalar, Dynamic, 1 >  wa1(n);
+    Matrix< Scalar, Dynamic, 1 >  wa2(n);
+
+    eps = sqrt((std::max)(epsfcn,epsmch));
+    msum = ml + mu + 1;
+    if (msum >= n) {
+        /* computation of dense approximate jacobian. */
+        for (j = 0; j < n; ++j) {
+            temp = x[j];
+            h = eps * abs(temp);
+            if (h == 0.)
+                h = eps;
+            x[j] = temp + h;
+            iflag = Functor(x, wa1);
+            if (iflag < 0)
+                return iflag;
+            x[j] = temp;
+            fjac.col(j) = (wa1-fvec)/h;
+        }
+
+    }else {
+        /* computation of banded approximate jacobian. */
+        for (k = 0; k < msum; ++k) {
+            for (j = k; (msum<0) ? (j>n): (j<n); j += msum) {
+                wa2[j] = x[j];
+                h = eps * abs(wa2[j]);
+                if (h == 0.) h = eps;
+                x[j] = wa2[j] + h;
+            }
+            iflag = Functor(x, wa1);
+            if (iflag < 0)
+                return iflag;
+            for (j = k; (msum<0) ? (j>n): (j<n); j += msum) {
+                x[j] = wa2[j];
+                h = eps * abs(wa2[j]);
+                if (h == 0.) h = eps;
+                fjac.col(j).setZero();
+                start = std::max<Index>(0,j-mu);
+                length = (std::min)(n-1, j+ml) - start + 1;
+                fjac.col(j).segment(start, length) = ( wa1.segment(start, length)-fvec.segment(start, length))/h;
+            }
+        }
+    }
+    return 0;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h	(revision 2476)
@@ -0,0 +1,30 @@
+namespace Eigen { 
+
+namespace internal {
+
+// TODO : move this to GivensQR once there's such a thing in Eigen
+
+template <typename Scalar>
+void r1mpyq(DenseIndex m, DenseIndex n, Scalar *a, const std::vector<JacobiRotation<Scalar> > &v_givens, const std::vector<JacobiRotation<Scalar> > &w_givens)
+{
+    typedef DenseIndex Index;
+
+    /*     apply the first set of givens rotations to a. */
+    for (Index j = n-2; j>=0; --j)
+        for (Index i = 0; i<m; ++i) {
+            Scalar temp = v_givens[j].c() * a[i+m*j] - v_givens[j].s() * a[i+m*(n-1)];
+            a[i+m*(n-1)] = v_givens[j].s() * a[i+m*j] + v_givens[j].c() * a[i+m*(n-1)];
+            a[i+m*j] = temp;
+        }
+    /*     apply the second set of givens rotations to a. */
+    for (Index j = 0; j<n-1; ++j)
+        for (Index i = 0; i<m; ++i) {
+            Scalar temp = w_givens[j].c() * a[i+m*j] + w_givens[j].s() * a[i+m*(n-1)];
+            a[i+m*(n-1)] = -w_givens[j].s() * a[i+m*j] + w_givens[j].c() * a[i+m*(n-1)];
+            a[i+m*j] = temp;
+        }
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h	(revision 2476)
@@ -0,0 +1,650 @@
+// -*- coding: utf-8
+// vim: set fileencoding=utf-8
+
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Thomas Capricelli <orzel@freehackers.org>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_LEVENBERGMARQUARDT__H
+#define EIGEN_LEVENBERGMARQUARDT__H
+
+namespace Eigen { 
+
+namespace LevenbergMarquardtSpace {
+    enum Status {
+        NotStarted = -2,
+        Running = -1,
+        ImproperInputParameters = 0,
+        RelativeReductionTooSmall = 1,
+        RelativeErrorTooSmall = 2,
+        RelativeErrorAndReductionTooSmall = 3,
+        CosinusTooSmall = 4,
+        TooManyFunctionEvaluation = 5,
+        FtolTooSmall = 6,
+        XtolTooSmall = 7,
+        GtolTooSmall = 8,
+        UserAsked = 9
+    };
+}
+
+
+
+/**
+  * \ingroup NonLinearOptimization_Module
+  * \brief Performs non linear optimization over a non-linear function,
+  * using a variant of the Levenberg Marquardt algorithm.
+  *
+  * Check wikipedia for more information.
+  * http://en.wikipedia.org/wiki/Levenberg%E2%80%93Marquardt_algorithm
+  */
+template<typename FunctorType, typename Scalar=double>
+class LevenbergMarquardt
+{
+public:
+    LevenbergMarquardt(FunctorType &_functor)
+        : functor(_functor) { nfev = njev = iter = 0;  fnorm = gnorm = 0.; useExternalScaling=false; }
+
+    typedef DenseIndex Index;
+
+    struct Parameters {
+        Parameters()
+            : factor(Scalar(100.))
+            , maxfev(400)
+            , ftol(std::sqrt(NumTraits<Scalar>::epsilon()))
+            , xtol(std::sqrt(NumTraits<Scalar>::epsilon()))
+            , gtol(Scalar(0.))
+            , epsfcn(Scalar(0.)) {}
+        Scalar factor;
+        Index maxfev;   // maximum number of function evaluation
+        Scalar ftol;
+        Scalar xtol;
+        Scalar gtol;
+        Scalar epsfcn;
+    };
+
+    typedef Matrix< Scalar, Dynamic, 1 > FVectorType;
+    typedef Matrix< Scalar, Dynamic, Dynamic > JacobianType;
+
+    LevenbergMarquardtSpace::Status lmder1(
+            FVectorType &x,
+            const Scalar tol = std::sqrt(NumTraits<Scalar>::epsilon())
+            );
+
+    LevenbergMarquardtSpace::Status minimize(FVectorType &x);
+    LevenbergMarquardtSpace::Status minimizeInit(FVectorType &x);
+    LevenbergMarquardtSpace::Status minimizeOneStep(FVectorType &x);
+
+    static LevenbergMarquardtSpace::Status lmdif1(
+            FunctorType &functor,
+            FVectorType &x,
+            Index *nfev,
+            const Scalar tol = std::sqrt(NumTraits<Scalar>::epsilon())
+            );
+
+    LevenbergMarquardtSpace::Status lmstr1(
+            FVectorType  &x,
+            const Scalar tol = std::sqrt(NumTraits<Scalar>::epsilon())
+            );
+
+    LevenbergMarquardtSpace::Status minimizeOptimumStorage(FVectorType  &x);
+    LevenbergMarquardtSpace::Status minimizeOptimumStorageInit(FVectorType  &x);
+    LevenbergMarquardtSpace::Status minimizeOptimumStorageOneStep(FVectorType  &x);
+
+    void resetParameters(void) { parameters = Parameters(); }
+
+    Parameters parameters;
+    FVectorType  fvec, qtf, diag;
+    JacobianType fjac;
+    PermutationMatrix<Dynamic,Dynamic> permutation;
+    Index nfev;
+    Index njev;
+    Index iter;
+    Scalar fnorm, gnorm;
+    bool useExternalScaling; 
+
+    Scalar lm_param(void) { return par; }
+private:
+    FunctorType &functor;
+    Index n;
+    Index m;
+    FVectorType wa1, wa2, wa3, wa4;
+
+    Scalar par, sum;
+    Scalar temp, temp1, temp2;
+    Scalar delta;
+    Scalar ratio;
+    Scalar pnorm, xnorm, fnorm1, actred, dirder, prered;
+
+    LevenbergMarquardt& operator=(const LevenbergMarquardt&);
+};
+
+template<typename FunctorType, typename Scalar>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType,Scalar>::lmder1(
+        FVectorType  &x,
+        const Scalar tol
+        )
+{
+    n = x.size();
+    m = functor.values();
+
+    /* check the input parameters for errors. */
+    if (n <= 0 || m < n || tol < 0.)
+        return LevenbergMarquardtSpace::ImproperInputParameters;
+
+    resetParameters();
+    parameters.ftol = tol;
+    parameters.xtol = tol;
+    parameters.maxfev = 100*(n+1);
+
+    return minimize(x);
+}
+
+
+template<typename FunctorType, typename Scalar>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType,Scalar>::minimize(FVectorType  &x)
+{
+    LevenbergMarquardtSpace::Status status = minimizeInit(x);
+    if (status==LevenbergMarquardtSpace::ImproperInputParameters)
+        return status;
+    do {
+        status = minimizeOneStep(x);
+    } while (status==LevenbergMarquardtSpace::Running);
+    return status;
+}
+
+template<typename FunctorType, typename Scalar>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType,Scalar>::minimizeInit(FVectorType  &x)
+{
+    n = x.size();
+    m = functor.values();
+
+    wa1.resize(n); wa2.resize(n); wa3.resize(n);
+    wa4.resize(m);
+    fvec.resize(m);
+    fjac.resize(m, n);
+    if (!useExternalScaling)
+        diag.resize(n);
+    eigen_assert( (!useExternalScaling || diag.size()==n) || "When useExternalScaling is set, the caller must provide a valid 'diag'");
+    qtf.resize(n);
+
+    /* Function Body */
+    nfev = 0;
+    njev = 0;
+
+    /*     check the input parameters for errors. */
+    if (n <= 0 || m < n || parameters.ftol < 0. || parameters.xtol < 0. || parameters.gtol < 0. || parameters.maxfev <= 0 || parameters.factor <= 0.)
+        return LevenbergMarquardtSpace::ImproperInputParameters;
+
+    if (useExternalScaling)
+        for (Index j = 0; j < n; ++j)
+            if (diag[j] <= 0.)
+                return LevenbergMarquardtSpace::ImproperInputParameters;
+
+    /*     evaluate the function at the starting point */
+    /*     and calculate its norm. */
+    nfev = 1;
+    if ( functor(x, fvec) < 0)
+        return LevenbergMarquardtSpace::UserAsked;
+    fnorm = fvec.stableNorm();
+
+    /*     initialize levenberg-marquardt parameter and iteration counter. */
+    par = 0.;
+    iter = 1;
+
+    return LevenbergMarquardtSpace::NotStarted;
+}
+
+template<typename FunctorType, typename Scalar>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType,Scalar>::minimizeOneStep(FVectorType  &x)
+{
+    using std::abs;
+    using std::sqrt;
+    
+    eigen_assert(x.size()==n); // check the caller is not cheating us
+
+    /* calculate the jacobian matrix. */
+    Index df_ret = functor.df(x, fjac);
+    if (df_ret<0)
+        return LevenbergMarquardtSpace::UserAsked;
+    if (df_ret>0)
+        // numerical diff, we evaluated the function df_ret times
+        nfev += df_ret;
+    else njev++;
+
+    /* compute the qr factorization of the jacobian. */
+    wa2 = fjac.colwise().blueNorm();
+    ColPivHouseholderQR<JacobianType> qrfac(fjac);
+    fjac = qrfac.matrixQR();
+    permutation = qrfac.colsPermutation();
+
+    /* on the first iteration and if external scaling is not used, scale according */
+    /* to the norms of the columns of the initial jacobian. */
+    if (iter == 1) {
+        if (!useExternalScaling)
+            for (Index j = 0; j < n; ++j)
+                diag[j] = (wa2[j]==0.)? 1. : wa2[j];
+
+        /* on the first iteration, calculate the norm of the scaled x */
+        /* and initialize the step bound delta. */
+        xnorm = diag.cwiseProduct(x).stableNorm();
+        delta = parameters.factor * xnorm;
+        if (delta == 0.)
+            delta = parameters.factor;
+    }
+
+    /* form (q transpose)*fvec and store the first n components in */
+    /* qtf. */
+    wa4 = fvec;
+    wa4.applyOnTheLeft(qrfac.householderQ().adjoint());
+    qtf = wa4.head(n);
+
+    /* compute the norm of the scaled gradient. */
+    gnorm = 0.;
+    if (fnorm != 0.)
+        for (Index j = 0; j < n; ++j)
+            if (wa2[permutation.indices()[j]] != 0.)
+                gnorm = (std::max)(gnorm, abs( fjac.col(j).head(j+1).dot(qtf.head(j+1)/fnorm) / wa2[permutation.indices()[j]]));
+
+    /* test for convergence of the gradient norm. */
+    if (gnorm <= parameters.gtol)
+        return LevenbergMarquardtSpace::CosinusTooSmall;
+
+    /* rescale if necessary. */
+    if (!useExternalScaling)
+        diag = diag.cwiseMax(wa2);
+
+    do {
+
+        /* determine the levenberg-marquardt parameter. */
+        internal::lmpar2<Scalar>(qrfac, diag, qtf, delta, par, wa1);
+
+        /* store the direction p and x + p. calculate the norm of p. */
+        wa1 = -wa1;
+        wa2 = x + wa1;
+        pnorm = diag.cwiseProduct(wa1).stableNorm();
+
+        /* on the first iteration, adjust the initial step bound. */
+        if (iter == 1)
+            delta = (std::min)(delta,pnorm);
+
+        /* evaluate the function at x + p and calculate its norm. */
+        if ( functor(wa2, wa4) < 0)
+            return LevenbergMarquardtSpace::UserAsked;
+        ++nfev;
+        fnorm1 = wa4.stableNorm();
+
+        /* compute the scaled actual reduction. */
+        actred = -1.;
+        if (Scalar(.1) * fnorm1 < fnorm)
+            actred = 1. - numext::abs2(fnorm1 / fnorm);
+
+        /* compute the scaled predicted reduction and */
+        /* the scaled directional derivative. */
+        wa3 = fjac.template triangularView<Upper>() * (qrfac.colsPermutation().inverse() *wa1);
+        temp1 = numext::abs2(wa3.stableNorm() / fnorm);
+        temp2 = numext::abs2(sqrt(par) * pnorm / fnorm);
+        prered = temp1 + temp2 / Scalar(.5);
+        dirder = -(temp1 + temp2);
+
+        /* compute the ratio of the actual to the predicted */
+        /* reduction. */
+        ratio = 0.;
+        if (prered != 0.)
+            ratio = actred / prered;
+
+        /* update the step bound. */
+        if (ratio <= Scalar(.25)) {
+            if (actred >= 0.)
+                temp = Scalar(.5);
+            if (actred < 0.)
+                temp = Scalar(.5) * dirder / (dirder + Scalar(.5) * actred);
+            if (Scalar(.1) * fnorm1 >= fnorm || temp < Scalar(.1))
+                temp = Scalar(.1);
+            /* Computing MIN */
+            delta = temp * (std::min)(delta, pnorm / Scalar(.1));
+            par /= temp;
+        } else if (!(par != 0. && ratio < Scalar(.75))) {
+            delta = pnorm / Scalar(.5);
+            par = Scalar(.5) * par;
+        }
+
+        /* test for successful iteration. */
+        if (ratio >= Scalar(1e-4)) {
+            /* successful iteration. update x, fvec, and their norms. */
+            x = wa2;
+            wa2 = diag.cwiseProduct(x);
+            fvec = wa4;
+            xnorm = wa2.stableNorm();
+            fnorm = fnorm1;
+            ++iter;
+        }
+
+        /* tests for convergence. */
+        if (abs(actred) <= parameters.ftol && prered <= parameters.ftol && Scalar(.5) * ratio <= 1. && delta <= parameters.xtol * xnorm)
+            return LevenbergMarquardtSpace::RelativeErrorAndReductionTooSmall;
+        if (abs(actred) <= parameters.ftol && prered <= parameters.ftol && Scalar(.5) * ratio <= 1.)
+            return LevenbergMarquardtSpace::RelativeReductionTooSmall;
+        if (delta <= parameters.xtol * xnorm)
+            return LevenbergMarquardtSpace::RelativeErrorTooSmall;
+
+        /* tests for termination and stringent tolerances. */
+        if (nfev >= parameters.maxfev)
+            return LevenbergMarquardtSpace::TooManyFunctionEvaluation;
+        if (abs(actred) <= NumTraits<Scalar>::epsilon() && prered <= NumTraits<Scalar>::epsilon() && Scalar(.5) * ratio <= 1.)
+            return LevenbergMarquardtSpace::FtolTooSmall;
+        if (delta <= NumTraits<Scalar>::epsilon() * xnorm)
+            return LevenbergMarquardtSpace::XtolTooSmall;
+        if (gnorm <= NumTraits<Scalar>::epsilon())
+            return LevenbergMarquardtSpace::GtolTooSmall;
+
+    } while (ratio < Scalar(1e-4));
+
+    return LevenbergMarquardtSpace::Running;
+}
+
+template<typename FunctorType, typename Scalar>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType,Scalar>::lmstr1(
+        FVectorType  &x,
+        const Scalar tol
+        )
+{
+    n = x.size();
+    m = functor.values();
+
+    /* check the input parameters for errors. */
+    if (n <= 0 || m < n || tol < 0.)
+        return LevenbergMarquardtSpace::ImproperInputParameters;
+
+    resetParameters();
+    parameters.ftol = tol;
+    parameters.xtol = tol;
+    parameters.maxfev = 100*(n+1);
+
+    return minimizeOptimumStorage(x);
+}
+
+template<typename FunctorType, typename Scalar>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType,Scalar>::minimizeOptimumStorageInit(FVectorType  &x)
+{
+    n = x.size();
+    m = functor.values();
+
+    wa1.resize(n); wa2.resize(n); wa3.resize(n);
+    wa4.resize(m);
+    fvec.resize(m);
+    // Only R is stored in fjac. Q is only used to compute 'qtf', which is
+    // Q.transpose()*rhs. qtf will be updated using givens rotation,
+    // instead of storing them in Q.
+    // The purpose it to only use a nxn matrix, instead of mxn here, so
+    // that we can handle cases where m>>n :
+    fjac.resize(n, n);
+    if (!useExternalScaling)
+        diag.resize(n);
+    eigen_assert( (!useExternalScaling || diag.size()==n) || "When useExternalScaling is set, the caller must provide a valid 'diag'");
+    qtf.resize(n);
+
+    /* Function Body */
+    nfev = 0;
+    njev = 0;
+
+    /*     check the input parameters for errors. */
+    if (n <= 0 || m < n || parameters.ftol < 0. || parameters.xtol < 0. || parameters.gtol < 0. || parameters.maxfev <= 0 || parameters.factor <= 0.)
+        return LevenbergMarquardtSpace::ImproperInputParameters;
+
+    if (useExternalScaling)
+        for (Index j = 0; j < n; ++j)
+            if (diag[j] <= 0.)
+                return LevenbergMarquardtSpace::ImproperInputParameters;
+
+    /*     evaluate the function at the starting point */
+    /*     and calculate its norm. */
+    nfev = 1;
+    if ( functor(x, fvec) < 0)
+        return LevenbergMarquardtSpace::UserAsked;
+    fnorm = fvec.stableNorm();
+
+    /*     initialize levenberg-marquardt parameter and iteration counter. */
+    par = 0.;
+    iter = 1;
+
+    return LevenbergMarquardtSpace::NotStarted;
+}
+
+
+template<typename FunctorType, typename Scalar>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType,Scalar>::minimizeOptimumStorageOneStep(FVectorType  &x)
+{
+    using std::abs;
+    using std::sqrt;
+    
+    eigen_assert(x.size()==n); // check the caller is not cheating us
+
+    Index i, j;
+    bool sing;
+
+    /* compute the qr factorization of the jacobian matrix */
+    /* calculated one row at a time, while simultaneously */
+    /* forming (q transpose)*fvec and storing the first */
+    /* n components in qtf. */
+    qtf.fill(0.);
+    fjac.fill(0.);
+    Index rownb = 2;
+    for (i = 0; i < m; ++i) {
+        if (functor.df(x, wa3, rownb) < 0) return LevenbergMarquardtSpace::UserAsked;
+        internal::rwupdt<Scalar>(fjac, wa3, qtf, fvec[i]);
+        ++rownb;
+    }
+    ++njev;
+
+    /* if the jacobian is rank deficient, call qrfac to */
+    /* reorder its columns and update the components of qtf. */
+    sing = false;
+    for (j = 0; j < n; ++j) {
+        if (fjac(j,j) == 0.)
+            sing = true;
+        wa2[j] = fjac.col(j).head(j).stableNorm();
+    }
+    permutation.setIdentity(n);
+    if (sing) {
+        wa2 = fjac.colwise().blueNorm();
+        // TODO We have no unit test covering this code path, do not modify
+        // until it is carefully tested
+        ColPivHouseholderQR<JacobianType> qrfac(fjac);
+        fjac = qrfac.matrixQR();
+        wa1 = fjac.diagonal();
+        fjac.diagonal() = qrfac.hCoeffs();
+        permutation = qrfac.colsPermutation();
+        // TODO : avoid this:
+        for(Index ii=0; ii< fjac.cols(); ii++) fjac.col(ii).segment(ii+1, fjac.rows()-ii-1) *= fjac(ii,ii); // rescale vectors
+
+        for (j = 0; j < n; ++j) {
+            if (fjac(j,j) != 0.) {
+                sum = 0.;
+                for (i = j; i < n; ++i)
+                    sum += fjac(i,j) * qtf[i];
+                temp = -sum / fjac(j,j);
+                for (i = j; i < n; ++i)
+                    qtf[i] += fjac(i,j) * temp;
+            }
+            fjac(j,j) = wa1[j];
+        }
+    }
+
+    /* on the first iteration and if external scaling is not used, scale according */
+    /* to the norms of the columns of the initial jacobian. */
+    if (iter == 1) {
+        if (!useExternalScaling)
+            for (j = 0; j < n; ++j)
+                diag[j] = (wa2[j]==0.)? 1. : wa2[j];
+
+        /* on the first iteration, calculate the norm of the scaled x */
+        /* and initialize the step bound delta. */
+        xnorm = diag.cwiseProduct(x).stableNorm();
+        delta = parameters.factor * xnorm;
+        if (delta == 0.)
+            delta = parameters.factor;
+    }
+
+    /* compute the norm of the scaled gradient. */
+    gnorm = 0.;
+    if (fnorm != 0.)
+        for (j = 0; j < n; ++j)
+            if (wa2[permutation.indices()[j]] != 0.)
+                gnorm = (std::max)(gnorm, abs( fjac.col(j).head(j+1).dot(qtf.head(j+1)/fnorm) / wa2[permutation.indices()[j]]));
+
+    /* test for convergence of the gradient norm. */
+    if (gnorm <= parameters.gtol)
+        return LevenbergMarquardtSpace::CosinusTooSmall;
+
+    /* rescale if necessary. */
+    if (!useExternalScaling)
+        diag = diag.cwiseMax(wa2);
+
+    do {
+
+        /* determine the levenberg-marquardt parameter. */
+        internal::lmpar<Scalar>(fjac, permutation.indices(), diag, qtf, delta, par, wa1);
+
+        /* store the direction p and x + p. calculate the norm of p. */
+        wa1 = -wa1;
+        wa2 = x + wa1;
+        pnorm = diag.cwiseProduct(wa1).stableNorm();
+
+        /* on the first iteration, adjust the initial step bound. */
+        if (iter == 1)
+            delta = (std::min)(delta,pnorm);
+
+        /* evaluate the function at x + p and calculate its norm. */
+        if ( functor(wa2, wa4) < 0)
+            return LevenbergMarquardtSpace::UserAsked;
+        ++nfev;
+        fnorm1 = wa4.stableNorm();
+
+        /* compute the scaled actual reduction. */
+        actred = -1.;
+        if (Scalar(.1) * fnorm1 < fnorm)
+            actred = 1. - numext::abs2(fnorm1 / fnorm);
+
+        /* compute the scaled predicted reduction and */
+        /* the scaled directional derivative. */
+        wa3 = fjac.topLeftCorner(n,n).template triangularView<Upper>() * (permutation.inverse() * wa1);
+        temp1 = numext::abs2(wa3.stableNorm() / fnorm);
+        temp2 = numext::abs2(sqrt(par) * pnorm / fnorm);
+        prered = temp1 + temp2 / Scalar(.5);
+        dirder = -(temp1 + temp2);
+
+        /* compute the ratio of the actual to the predicted */
+        /* reduction. */
+        ratio = 0.;
+        if (prered != 0.)
+            ratio = actred / prered;
+
+        /* update the step bound. */
+        if (ratio <= Scalar(.25)) {
+            if (actred >= 0.)
+                temp = Scalar(.5);
+            if (actred < 0.)
+                temp = Scalar(.5) * dirder / (dirder + Scalar(.5) * actred);
+            if (Scalar(.1) * fnorm1 >= fnorm || temp < Scalar(.1))
+                temp = Scalar(.1);
+            /* Computing MIN */
+            delta = temp * (std::min)(delta, pnorm / Scalar(.1));
+            par /= temp;
+        } else if (!(par != 0. && ratio < Scalar(.75))) {
+            delta = pnorm / Scalar(.5);
+            par = Scalar(.5) * par;
+        }
+
+        /* test for successful iteration. */
+        if (ratio >= Scalar(1e-4)) {
+            /* successful iteration. update x, fvec, and their norms. */
+            x = wa2;
+            wa2 = diag.cwiseProduct(x);
+            fvec = wa4;
+            xnorm = wa2.stableNorm();
+            fnorm = fnorm1;
+            ++iter;
+        }
+
+        /* tests for convergence. */
+        if (abs(actred) <= parameters.ftol && prered <= parameters.ftol && Scalar(.5) * ratio <= 1. && delta <= parameters.xtol * xnorm)
+            return LevenbergMarquardtSpace::RelativeErrorAndReductionTooSmall;
+        if (abs(actred) <= parameters.ftol && prered <= parameters.ftol && Scalar(.5) * ratio <= 1.)
+            return LevenbergMarquardtSpace::RelativeReductionTooSmall;
+        if (delta <= parameters.xtol * xnorm)
+            return LevenbergMarquardtSpace::RelativeErrorTooSmall;
+
+        /* tests for termination and stringent tolerances. */
+        if (nfev >= parameters.maxfev)
+            return LevenbergMarquardtSpace::TooManyFunctionEvaluation;
+        if (abs(actred) <= NumTraits<Scalar>::epsilon() && prered <= NumTraits<Scalar>::epsilon() && Scalar(.5) * ratio <= 1.)
+            return LevenbergMarquardtSpace::FtolTooSmall;
+        if (delta <= NumTraits<Scalar>::epsilon() * xnorm)
+            return LevenbergMarquardtSpace::XtolTooSmall;
+        if (gnorm <= NumTraits<Scalar>::epsilon())
+            return LevenbergMarquardtSpace::GtolTooSmall;
+
+    } while (ratio < Scalar(1e-4));
+
+    return LevenbergMarquardtSpace::Running;
+}
+
+template<typename FunctorType, typename Scalar>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType,Scalar>::minimizeOptimumStorage(FVectorType  &x)
+{
+    LevenbergMarquardtSpace::Status status = minimizeOptimumStorageInit(x);
+    if (status==LevenbergMarquardtSpace::ImproperInputParameters)
+        return status;
+    do {
+        status = minimizeOptimumStorageOneStep(x);
+    } while (status==LevenbergMarquardtSpace::Running);
+    return status;
+}
+
+template<typename FunctorType, typename Scalar>
+LevenbergMarquardtSpace::Status
+LevenbergMarquardt<FunctorType,Scalar>::lmdif1(
+        FunctorType &functor,
+        FVectorType  &x,
+        Index *nfev,
+        const Scalar tol
+        )
+{
+    Index n = x.size();
+    Index m = functor.values();
+
+    /* check the input parameters for errors. */
+    if (n <= 0 || m < n || tol < 0.)
+        return LevenbergMarquardtSpace::ImproperInputParameters;
+
+    NumericalDiff<FunctorType> numDiff(functor);
+    // embedded LevenbergMarquardt
+    LevenbergMarquardt<NumericalDiff<FunctorType>, Scalar > lm(numDiff);
+    lm.parameters.ftol = tol;
+    lm.parameters.xtol = tol;
+    lm.parameters.maxfev = 200*(n+1);
+
+    LevenbergMarquardtSpace::Status info = LevenbergMarquardtSpace::Status(lm.minimize(x));
+    if (nfev)
+        * nfev = lm.nfev;
+    return info;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_LEVENBERGMARQUARDT__H
+
+//vim: ai ts=4 sts=4 et sw=4
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/covar.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/covar.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/covar.h	(revision 2476)
@@ -0,0 +1,70 @@
+namespace Eigen { 
+
+namespace internal {
+
+template <typename Scalar>
+void covar(
+        Matrix< Scalar, Dynamic, Dynamic > &r,
+        const VectorXi &ipvt,
+        Scalar tol = std::sqrt(NumTraits<Scalar>::epsilon()) )
+{
+    using std::abs;
+    typedef DenseIndex Index;
+
+    /* Local variables */
+    Index i, j, k, l, ii, jj;
+    bool sing;
+    Scalar temp;
+
+    /* Function Body */
+    const Index n = r.cols();
+    const Scalar tolr = tol * abs(r(0,0));
+    Matrix< Scalar, Dynamic, 1 > wa(n);
+    eigen_assert(ipvt.size()==n);
+
+    /* form the inverse of r in the full upper triangle of r. */
+    l = -1;
+    for (k = 0; k < n; ++k)
+        if (abs(r(k,k)) > tolr) {
+            r(k,k) = 1. / r(k,k);
+            for (j = 0; j <= k-1; ++j) {
+                temp = r(k,k) * r(j,k);
+                r(j,k) = 0.;
+                r.col(k).head(j+1) -= r.col(j).head(j+1) * temp;
+            }
+            l = k;
+        }
+
+    /* form the full upper triangle of the inverse of (r transpose)*r */
+    /* in the full upper triangle of r. */
+    for (k = 0; k <= l; ++k) {
+        for (j = 0; j <= k-1; ++j)
+            r.col(j).head(j+1) += r.col(k).head(j+1) * r(j,k);
+        r.col(k).head(k+1) *= r(k,k);
+    }
+
+    /* form the full lower triangle of the covariance matrix */
+    /* in the strict lower triangle of r and in wa. */
+    for (j = 0; j < n; ++j) {
+        jj = ipvt[j];
+        sing = j > l;
+        for (i = 0; i <= j; ++i) {
+            if (sing)
+                r(i,j) = 0.;
+            ii = ipvt[i];
+            if (ii > jj)
+                r(ii,jj) = r(i,j);
+            if (ii < jj)
+                r(jj,ii) = r(i,j);
+        }
+        wa[jj] = r(j,j);
+    }
+
+    /* symmetrize the covariance matrix in r. */
+    r.topLeftCorner(n,n).template triangularView<StrictlyUpper>() = r.topLeftCorner(n,n).transpose();
+    r.diagonal() = wa;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/lmpar.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/lmpar.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/lmpar.h	(revision 2476)
@@ -0,0 +1,298 @@
+namespace Eigen { 
+
+namespace internal {
+
+template <typename Scalar>
+void lmpar(
+        Matrix< Scalar, Dynamic, Dynamic > &r,
+        const VectorXi &ipvt,
+        const Matrix< Scalar, Dynamic, 1 >  &diag,
+        const Matrix< Scalar, Dynamic, 1 >  &qtb,
+        Scalar delta,
+        Scalar &par,
+        Matrix< Scalar, Dynamic, 1 >  &x)
+{
+    using std::abs;
+    using std::sqrt;
+    typedef DenseIndex Index;
+
+    /* Local variables */
+    Index i, j, l;
+    Scalar fp;
+    Scalar parc, parl;
+    Index iter;
+    Scalar temp, paru;
+    Scalar gnorm;
+    Scalar dxnorm;
+
+
+    /* Function Body */
+    const Scalar dwarf = (std::numeric_limits<Scalar>::min)();
+    const Index n = r.cols();
+    eigen_assert(n==diag.size());
+    eigen_assert(n==qtb.size());
+    eigen_assert(n==x.size());
+
+    Matrix< Scalar, Dynamic, 1 >  wa1, wa2;
+
+    /* compute and store in x the gauss-newton direction. if the */
+    /* jacobian is rank-deficient, obtain a least squares solution. */
+    Index nsing = n-1;
+    wa1 = qtb;
+    for (j = 0; j < n; ++j) {
+        if (r(j,j) == 0. && nsing == n-1)
+            nsing = j - 1;
+        if (nsing < n-1)
+            wa1[j] = 0.;
+    }
+    for (j = nsing; j>=0; --j) {
+        wa1[j] /= r(j,j);
+        temp = wa1[j];
+        for (i = 0; i < j ; ++i)
+            wa1[i] -= r(i,j) * temp;
+    }
+
+    for (j = 0; j < n; ++j)
+        x[ipvt[j]] = wa1[j];
+
+    /* initialize the iteration counter. */
+    /* evaluate the function at the origin, and test */
+    /* for acceptance of the gauss-newton direction. */
+    iter = 0;
+    wa2 = diag.cwiseProduct(x);
+    dxnorm = wa2.blueNorm();
+    fp = dxnorm - delta;
+    if (fp <= Scalar(0.1) * delta) {
+        par = 0;
+        return;
+    }
+
+    /* if the jacobian is not rank deficient, the newton */
+    /* step provides a lower bound, parl, for the zero of */
+    /* the function. otherwise set this bound to zero. */
+    parl = 0.;
+    if (nsing >= n-1) {
+        for (j = 0; j < n; ++j) {
+            l = ipvt[j];
+            wa1[j] = diag[l] * (wa2[l] / dxnorm);
+        }
+        // it's actually a triangularView.solveInplace(), though in a weird
+        // way:
+        for (j = 0; j < n; ++j) {
+            Scalar sum = 0.;
+            for (i = 0; i < j; ++i)
+                sum += r(i,j) * wa1[i];
+            wa1[j] = (wa1[j] - sum) / r(j,j);
+        }
+        temp = wa1.blueNorm();
+        parl = fp / delta / temp / temp;
+    }
+
+    /* calculate an upper bound, paru, for the zero of the function. */
+    for (j = 0; j < n; ++j)
+        wa1[j] = r.col(j).head(j+1).dot(qtb.head(j+1)) / diag[ipvt[j]];
+
+    gnorm = wa1.stableNorm();
+    paru = gnorm / delta;
+    if (paru == 0.)
+        paru = dwarf / (std::min)(delta,Scalar(0.1));
+
+    /* if the input par lies outside of the interval (parl,paru), */
+    /* set par to the closer endpoint. */
+    par = (std::max)(par,parl);
+    par = (std::min)(par,paru);
+    if (par == 0.)
+        par = gnorm / dxnorm;
+
+    /* beginning of an iteration. */
+    while (true) {
+        ++iter;
+
+        /* evaluate the function at the current value of par. */
+        if (par == 0.)
+            par = (std::max)(dwarf,Scalar(.001) * paru); /* Computing MAX */
+        wa1 = sqrt(par)* diag;
+
+        Matrix< Scalar, Dynamic, 1 > sdiag(n);
+        qrsolv<Scalar>(r, ipvt, wa1, qtb, x, sdiag);
+
+        wa2 = diag.cwiseProduct(x);
+        dxnorm = wa2.blueNorm();
+        temp = fp;
+        fp = dxnorm - delta;
+
+        /* if the function is small enough, accept the current value */
+        /* of par. also test for the exceptional cases where parl */
+        /* is zero or the number of iterations has reached 10. */
+        if (abs(fp) <= Scalar(0.1) * delta || (parl == 0. && fp <= temp && temp < 0.) || iter == 10)
+            break;
+
+        /* compute the newton correction. */
+        for (j = 0; j < n; ++j) {
+            l = ipvt[j];
+            wa1[j] = diag[l] * (wa2[l] / dxnorm);
+        }
+        for (j = 0; j < n; ++j) {
+            wa1[j] /= sdiag[j];
+            temp = wa1[j];
+            for (i = j+1; i < n; ++i)
+                wa1[i] -= r(i,j) * temp;
+        }
+        temp = wa1.blueNorm();
+        parc = fp / delta / temp / temp;
+
+        /* depending on the sign of the function, update parl or paru. */
+        if (fp > 0.)
+            parl = (std::max)(parl,par);
+        if (fp < 0.)
+            paru = (std::min)(paru,par);
+
+        /* compute an improved estimate for par. */
+        /* Computing MAX */
+        par = (std::max)(parl,par+parc);
+
+        /* end of an iteration. */
+    }
+
+    /* termination. */
+    if (iter == 0)
+        par = 0.;
+    return;
+}
+
+template <typename Scalar>
+void lmpar2(
+        const ColPivHouseholderQR<Matrix< Scalar, Dynamic, Dynamic> > &qr,
+        const Matrix< Scalar, Dynamic, 1 >  &diag,
+        const Matrix< Scalar, Dynamic, 1 >  &qtb,
+        Scalar delta,
+        Scalar &par,
+        Matrix< Scalar, Dynamic, 1 >  &x)
+
+{
+    using std::sqrt;
+    using std::abs;
+    typedef DenseIndex Index;
+
+    /* Local variables */
+    Index j;
+    Scalar fp;
+    Scalar parc, parl;
+    Index iter;
+    Scalar temp, paru;
+    Scalar gnorm;
+    Scalar dxnorm;
+
+
+    /* Function Body */
+    const Scalar dwarf = (std::numeric_limits<Scalar>::min)();
+    const Index n = qr.matrixQR().cols();
+    eigen_assert(n==diag.size());
+    eigen_assert(n==qtb.size());
+
+    Matrix< Scalar, Dynamic, 1 >  wa1, wa2;
+
+    /* compute and store in x the gauss-newton direction. if the */
+    /* jacobian is rank-deficient, obtain a least squares solution. */
+
+//    const Index rank = qr.nonzeroPivots(); // exactly double(0.)
+    const Index rank = qr.rank(); // use a threshold
+    wa1 = qtb;
+    wa1.tail(n-rank).setZero();
+    qr.matrixQR().topLeftCorner(rank, rank).template triangularView<Upper>().solveInPlace(wa1.head(rank));
+
+    x = qr.colsPermutation()*wa1;
+
+    /* initialize the iteration counter. */
+    /* evaluate the function at the origin, and test */
+    /* for acceptance of the gauss-newton direction. */
+    iter = 0;
+    wa2 = diag.cwiseProduct(x);
+    dxnorm = wa2.blueNorm();
+    fp = dxnorm - delta;
+    if (fp <= Scalar(0.1) * delta) {
+        par = 0;
+        return;
+    }
+
+    /* if the jacobian is not rank deficient, the newton */
+    /* step provides a lower bound, parl, for the zero of */
+    /* the function. otherwise set this bound to zero. */
+    parl = 0.;
+    if (rank==n) {
+        wa1 = qr.colsPermutation().inverse() *  diag.cwiseProduct(wa2)/dxnorm;
+        qr.matrixQR().topLeftCorner(n, n).transpose().template triangularView<Lower>().solveInPlace(wa1);
+        temp = wa1.blueNorm();
+        parl = fp / delta / temp / temp;
+    }
+
+    /* calculate an upper bound, paru, for the zero of the function. */
+    for (j = 0; j < n; ++j)
+        wa1[j] = qr.matrixQR().col(j).head(j+1).dot(qtb.head(j+1)) / diag[qr.colsPermutation().indices()(j)];
+
+    gnorm = wa1.stableNorm();
+    paru = gnorm / delta;
+    if (paru == 0.)
+        paru = dwarf / (std::min)(delta,Scalar(0.1));
+
+    /* if the input par lies outside of the interval (parl,paru), */
+    /* set par to the closer endpoint. */
+    par = (std::max)(par,parl);
+    par = (std::min)(par,paru);
+    if (par == 0.)
+        par = gnorm / dxnorm;
+
+    /* beginning of an iteration. */
+    Matrix< Scalar, Dynamic, Dynamic > s = qr.matrixQR();
+    while (true) {
+        ++iter;
+
+        /* evaluate the function at the current value of par. */
+        if (par == 0.)
+            par = (std::max)(dwarf,Scalar(.001) * paru); /* Computing MAX */
+        wa1 = sqrt(par)* diag;
+
+        Matrix< Scalar, Dynamic, 1 > sdiag(n);
+        qrsolv<Scalar>(s, qr.colsPermutation().indices(), wa1, qtb, x, sdiag);
+
+        wa2 = diag.cwiseProduct(x);
+        dxnorm = wa2.blueNorm();
+        temp = fp;
+        fp = dxnorm - delta;
+
+        /* if the function is small enough, accept the current value */
+        /* of par. also test for the exceptional cases where parl */
+        /* is zero or the number of iterations has reached 10. */
+        if (abs(fp) <= Scalar(0.1) * delta || (parl == 0. && fp <= temp && temp < 0.) || iter == 10)
+            break;
+
+        /* compute the newton correction. */
+        wa1 = qr.colsPermutation().inverse() * diag.cwiseProduct(wa2/dxnorm);
+        // we could almost use this here, but the diagonal is outside qr, in sdiag[]
+        // qr.matrixQR().topLeftCorner(n, n).transpose().template triangularView<Lower>().solveInPlace(wa1);
+        for (j = 0; j < n; ++j) {
+            wa1[j] /= sdiag[j];
+            temp = wa1[j];
+            for (Index i = j+1; i < n; ++i)
+                wa1[i] -= s(i,j) * temp;
+        }
+        temp = wa1.blueNorm();
+        parc = fp / delta / temp / temp;
+
+        /* depending on the sign of the function, update parl or paru. */
+        if (fp > 0.)
+            parl = (std::max)(parl,par);
+        if (fp < 0.)
+            paru = (std::min)(paru,par);
+
+        /* compute an improved estimate for par. */
+        par = (std::max)(parl,par+parc);
+    }
+    if (iter == 0)
+        par = 0.;
+    return;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/r1updt.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/r1updt.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/r1updt.h	(revision 2476)
@@ -0,0 +1,99 @@
+namespace Eigen { 
+
+namespace internal {
+
+template <typename Scalar>
+void r1updt(
+        Matrix< Scalar, Dynamic, Dynamic > &s,
+        const Matrix< Scalar, Dynamic, 1> &u,
+        std::vector<JacobiRotation<Scalar> > &v_givens,
+        std::vector<JacobiRotation<Scalar> > &w_givens,
+        Matrix< Scalar, Dynamic, 1> &v,
+        Matrix< Scalar, Dynamic, 1> &w,
+        bool *sing)
+{
+    typedef DenseIndex Index;
+    const JacobiRotation<Scalar> IdentityRotation = JacobiRotation<Scalar>(1,0);
+
+    /* Local variables */
+    const Index m = s.rows();
+    const Index n = s.cols();
+    Index i, j=1;
+    Scalar temp;
+    JacobiRotation<Scalar> givens;
+
+    // r1updt had a broader usecase, but we dont use it here. And, more
+    // importantly, we can not test it.
+    eigen_assert(m==n);
+    eigen_assert(u.size()==m);
+    eigen_assert(v.size()==n);
+    eigen_assert(w.size()==n);
+
+    /* move the nontrivial part of the last column of s into w. */
+    w[n-1] = s(n-1,n-1);
+
+    /* rotate the vector v into a multiple of the n-th unit vector */
+    /* in such a way that a spike is introduced into w. */
+    for (j=n-2; j>=0; --j) {
+        w[j] = 0.;
+        if (v[j] != 0.) {
+            /* determine a givens rotation which eliminates the */
+            /* j-th element of v. */
+            givens.makeGivens(-v[n-1], v[j]);
+
+            /* apply the transformation to v and store the information */
+            /* necessary to recover the givens rotation. */
+            v[n-1] = givens.s() * v[j] + givens.c() * v[n-1];
+            v_givens[j] = givens;
+
+            /* apply the transformation to s and extend the spike in w. */
+            for (i = j; i < m; ++i) {
+                temp = givens.c() * s(j,i) - givens.s() * w[i];
+                w[i] = givens.s() * s(j,i) + givens.c() * w[i];
+                s(j,i) = temp;
+            }
+        } else
+            v_givens[j] = IdentityRotation;
+    }
+
+    /* add the spike from the rank 1 update to w. */
+    w += v[n-1] * u;
+
+    /* eliminate the spike. */
+    *sing = false;
+    for (j = 0; j < n-1; ++j) {
+        if (w[j] != 0.) {
+            /* determine a givens rotation which eliminates the */
+            /* j-th element of the spike. */
+            givens.makeGivens(-s(j,j), w[j]);
+
+            /* apply the transformation to s and reduce the spike in w. */
+            for (i = j; i < m; ++i) {
+                temp = givens.c() * s(j,i) + givens.s() * w[i];
+                w[i] = -givens.s() * s(j,i) + givens.c() * w[i];
+                s(j,i) = temp;
+            }
+
+            /* store the information necessary to recover the */
+            /* givens rotation. */
+            w_givens[j] = givens;
+        } else
+            v_givens[j] = IdentityRotation;
+
+        /* test for zero diagonal elements in the output s. */
+        if (s(j,j) == 0.) {
+            *sing = true;
+        }
+    }
+    /* move w back into the last column of the output s. */
+    s(n-1,n-1) = w[n-1];
+
+    if (s(j,j) == 0.) {
+        *sing = true;
+    }
+    return;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/chkder.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/chkder.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/chkder.h	(revision 2476)
@@ -0,0 +1,66 @@
+#define chkder_log10e 0.43429448190325182765
+#define chkder_factor 100.
+
+namespace Eigen { 
+
+namespace internal {
+
+template<typename Scalar>
+void chkder(
+        const Matrix< Scalar, Dynamic, 1 >  &x,
+        const Matrix< Scalar, Dynamic, 1 >  &fvec,
+        const Matrix< Scalar, Dynamic, Dynamic > &fjac,
+        Matrix< Scalar, Dynamic, 1 >  &xp,
+        const Matrix< Scalar, Dynamic, 1 >  &fvecp,
+        int mode,
+        Matrix< Scalar, Dynamic, 1 >  &err
+        )
+{
+    using std::sqrt;
+    using std::abs;
+    using std::log;
+    
+    typedef DenseIndex Index;
+
+    const Scalar eps = sqrt(NumTraits<Scalar>::epsilon());
+    const Scalar epsf = chkder_factor * NumTraits<Scalar>::epsilon();
+    const Scalar epslog = chkder_log10e * log(eps);
+    Scalar temp;
+
+    const Index m = fvec.size(), n = x.size();
+
+    if (mode != 2) {
+        /* mode = 1. */
+        xp.resize(n);
+        for (Index j = 0; j < n; ++j) {
+            temp = eps * abs(x[j]);
+            if (temp == 0.)
+                temp = eps;
+            xp[j] = x[j] + temp;
+        }
+    }
+    else {
+        /* mode = 2. */
+        err.setZero(m); 
+        for (Index j = 0; j < n; ++j) {
+            temp = abs(x[j]);
+            if (temp == 0.)
+                temp = 1.;
+            err += temp * fjac.col(j);
+        }
+        for (Index i = 0; i < m; ++i) {
+            temp = 1.;
+            if (fvec[i] != 0. && fvecp[i] != 0. && abs(fvecp[i] - fvec[i]) >= epsf * abs(fvec[i]))
+                temp = eps * abs((fvecp[i] - fvec[i]) / eps - err[i]) / (abs(fvec[i]) + abs(fvecp[i]));
+            err[i] = 1.;
+            if (temp > NumTraits<Scalar>::epsilon() && temp < eps)
+                err[i] = (chkder_log10e * log(temp) - epslog) / epslog;
+            if (temp >= eps)
+                err[i] = 0.;
+        }
+    }
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/dogleg.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/dogleg.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/dogleg.h	(revision 2476)
@@ -0,0 +1,107 @@
+namespace Eigen { 
+
+namespace internal {
+
+template <typename Scalar>
+void dogleg(
+        const Matrix< Scalar, Dynamic, Dynamic >  &qrfac,
+        const Matrix< Scalar, Dynamic, 1 >  &diag,
+        const Matrix< Scalar, Dynamic, 1 >  &qtb,
+        Scalar delta,
+        Matrix< Scalar, Dynamic, 1 >  &x)
+{
+    using std::abs;
+    using std::sqrt;
+    
+    typedef DenseIndex Index;
+
+    /* Local variables */
+    Index i, j;
+    Scalar sum, temp, alpha, bnorm;
+    Scalar gnorm, qnorm;
+    Scalar sgnorm;
+
+    /* Function Body */
+    const Scalar epsmch = NumTraits<Scalar>::epsilon();
+    const Index n = qrfac.cols();
+    eigen_assert(n==qtb.size());
+    eigen_assert(n==x.size());
+    eigen_assert(n==diag.size());
+    Matrix< Scalar, Dynamic, 1 >  wa1(n), wa2(n);
+
+    /* first, calculate the gauss-newton direction. */
+    for (j = n-1; j >=0; --j) {
+        temp = qrfac(j,j);
+        if (temp == 0.) {
+            temp = epsmch * qrfac.col(j).head(j+1).maxCoeff();
+            if (temp == 0.)
+                temp = epsmch;
+        }
+        if (j==n-1)
+            x[j] = qtb[j] / temp;
+        else
+            x[j] = (qtb[j] - qrfac.row(j).tail(n-j-1).dot(x.tail(n-j-1))) / temp;
+    }
+
+    /* test whether the gauss-newton direction is acceptable. */
+    qnorm = diag.cwiseProduct(x).stableNorm();
+    if (qnorm <= delta)
+        return;
+
+    // TODO : this path is not tested by Eigen unit tests
+
+    /* the gauss-newton direction is not acceptable. */
+    /* next, calculate the scaled gradient direction. */
+
+    wa1.fill(0.);
+    for (j = 0; j < n; ++j) {
+        wa1.tail(n-j) += qrfac.row(j).tail(n-j) * qtb[j];
+        wa1[j] /= diag[j];
+    }
+
+    /* calculate the norm of the scaled gradient and test for */
+    /* the special case in which the scaled gradient is zero. */
+    gnorm = wa1.stableNorm();
+    sgnorm = 0.;
+    alpha = delta / qnorm;
+    if (gnorm == 0.)
+        goto algo_end;
+
+    /* calculate the point along the scaled gradient */
+    /* at which the quadratic is minimized. */
+    wa1.array() /= (diag*gnorm).array();
+    // TODO : once unit tests cover this part,:
+    // wa2 = qrfac.template triangularView<Upper>() * wa1;
+    for (j = 0; j < n; ++j) {
+        sum = 0.;
+        for (i = j; i < n; ++i) {
+            sum += qrfac(j,i) * wa1[i];
+        }
+        wa2[j] = sum;
+    }
+    temp = wa2.stableNorm();
+    sgnorm = gnorm / temp / temp;
+
+    /* test whether the scaled gradient direction is acceptable. */
+    alpha = 0.;
+    if (sgnorm >= delta)
+        goto algo_end;
+
+    /* the scaled gradient direction is not acceptable. */
+    /* finally, calculate the point along the dogleg */
+    /* at which the quadratic is minimized. */
+    bnorm = qtb.stableNorm();
+    temp = bnorm / gnorm * (bnorm / qnorm) * (sgnorm / delta);
+    temp = temp - delta / qnorm * numext::abs2(sgnorm / delta) + sqrt(numext::abs2(temp - delta / qnorm) + (1.-numext::abs2(delta / qnorm)) * (1.-numext::abs2(sgnorm / delta)));
+    alpha = delta / qnorm * (1. - numext::abs2(sgnorm / delta)) / temp;
+algo_end:
+
+    /* form appropriate convex combination of the gauss-newton */
+    /* direction and the scaled gradient direction. */
+    temp = (1.-alpha) * (std::min)(sgnorm,delta);
+    x = temp * wa1 + alpha * x;
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h	(revision 2476)
@@ -0,0 +1,601 @@
+// -*- coding: utf-8
+// vim: set fileencoding=utf-8
+
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Thomas Capricelli <orzel@freehackers.org>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_HYBRIDNONLINEARSOLVER_H
+#define EIGEN_HYBRIDNONLINEARSOLVER_H
+
+namespace Eigen { 
+
+namespace HybridNonLinearSolverSpace { 
+    enum Status {
+        Running = -1,
+        ImproperInputParameters = 0,
+        RelativeErrorTooSmall = 1,
+        TooManyFunctionEvaluation = 2,
+        TolTooSmall = 3,
+        NotMakingProgressJacobian = 4,
+        NotMakingProgressIterations = 5,
+        UserAsked = 6
+    };
+}
+
+/**
+  * \ingroup NonLinearOptimization_Module
+  * \brief Finds a zero of a system of n
+  * nonlinear functions in n variables by a modification of the Powell
+  * hybrid method ("dogleg").
+  *
+  * The user must provide a subroutine which calculates the
+  * functions. The Jacobian is either provided by the user, or approximated
+  * using a forward-difference method.
+  *
+  */
+template<typename FunctorType, typename Scalar=double>
+class HybridNonLinearSolver
+{
+public:
+    typedef DenseIndex Index;
+
+    HybridNonLinearSolver(FunctorType &_functor)
+        : functor(_functor) { nfev=njev=iter = 0;  fnorm= 0.; useExternalScaling=false;}
+
+    struct Parameters {
+        Parameters()
+            : factor(Scalar(100.))
+            , maxfev(1000)
+            , xtol(std::sqrt(NumTraits<Scalar>::epsilon()))
+            , nb_of_subdiagonals(-1)
+            , nb_of_superdiagonals(-1)
+            , epsfcn(Scalar(0.)) {}
+        Scalar factor;
+        Index maxfev;   // maximum number of function evaluation
+        Scalar xtol;
+        Index nb_of_subdiagonals;
+        Index nb_of_superdiagonals;
+        Scalar epsfcn;
+    };
+    typedef Matrix< Scalar, Dynamic, 1 > FVectorType;
+    typedef Matrix< Scalar, Dynamic, Dynamic > JacobianType;
+    /* TODO: if eigen provides a triangular storage, use it here */
+    typedef Matrix< Scalar, Dynamic, Dynamic > UpperTriangularType;
+
+    HybridNonLinearSolverSpace::Status hybrj1(
+            FVectorType  &x,
+            const Scalar tol = std::sqrt(NumTraits<Scalar>::epsilon())
+            );
+
+    HybridNonLinearSolverSpace::Status solveInit(FVectorType  &x);
+    HybridNonLinearSolverSpace::Status solveOneStep(FVectorType  &x);
+    HybridNonLinearSolverSpace::Status solve(FVectorType  &x);
+
+    HybridNonLinearSolverSpace::Status hybrd1(
+            FVectorType  &x,
+            const Scalar tol = std::sqrt(NumTraits<Scalar>::epsilon())
+            );
+
+    HybridNonLinearSolverSpace::Status solveNumericalDiffInit(FVectorType  &x);
+    HybridNonLinearSolverSpace::Status solveNumericalDiffOneStep(FVectorType  &x);
+    HybridNonLinearSolverSpace::Status solveNumericalDiff(FVectorType  &x);
+
+    void resetParameters(void) { parameters = Parameters(); }
+    Parameters parameters;
+    FVectorType  fvec, qtf, diag;
+    JacobianType fjac;
+    UpperTriangularType R;
+    Index nfev;
+    Index njev;
+    Index iter;
+    Scalar fnorm;
+    bool useExternalScaling; 
+private:
+    FunctorType &functor;
+    Index n;
+    Scalar sum;
+    bool sing;
+    Scalar temp;
+    Scalar delta;
+    bool jeval;
+    Index ncsuc;
+    Scalar ratio;
+    Scalar pnorm, xnorm, fnorm1;
+    Index nslow1, nslow2;
+    Index ncfail;
+    Scalar actred, prered;
+    FVectorType wa1, wa2, wa3, wa4;
+
+    HybridNonLinearSolver& operator=(const HybridNonLinearSolver&);
+};
+
+
+
+template<typename FunctorType, typename Scalar>
+HybridNonLinearSolverSpace::Status
+HybridNonLinearSolver<FunctorType,Scalar>::hybrj1(
+        FVectorType  &x,
+        const Scalar tol
+        )
+{
+    n = x.size();
+
+    /* check the input parameters for errors. */
+    if (n <= 0 || tol < 0.)
+        return HybridNonLinearSolverSpace::ImproperInputParameters;
+
+    resetParameters();
+    parameters.maxfev = 100*(n+1);
+    parameters.xtol = tol;
+    diag.setConstant(n, 1.);
+    useExternalScaling = true;
+    return solve(x);
+}
+
+template<typename FunctorType, typename Scalar>
+HybridNonLinearSolverSpace::Status
+HybridNonLinearSolver<FunctorType,Scalar>::solveInit(FVectorType  &x)
+{
+    n = x.size();
+
+    wa1.resize(n); wa2.resize(n); wa3.resize(n); wa4.resize(n);
+    fvec.resize(n);
+    qtf.resize(n);
+    fjac.resize(n, n);
+    if (!useExternalScaling)
+        diag.resize(n);
+    eigen_assert( (!useExternalScaling || diag.size()==n) || "When useExternalScaling is set, the caller must provide a valid 'diag'");
+
+    /* Function Body */
+    nfev = 0;
+    njev = 0;
+
+    /*     check the input parameters for errors. */
+    if (n <= 0 || parameters.xtol < 0. || parameters.maxfev <= 0 || parameters.factor <= 0. )
+        return HybridNonLinearSolverSpace::ImproperInputParameters;
+    if (useExternalScaling)
+        for (Index j = 0; j < n; ++j)
+            if (diag[j] <= 0.)
+                return HybridNonLinearSolverSpace::ImproperInputParameters;
+
+    /*     evaluate the function at the starting point */
+    /*     and calculate its norm. */
+    nfev = 1;
+    if ( functor(x, fvec) < 0)
+        return HybridNonLinearSolverSpace::UserAsked;
+    fnorm = fvec.stableNorm();
+
+    /*     initialize iteration counter and monitors. */
+    iter = 1;
+    ncsuc = 0;
+    ncfail = 0;
+    nslow1 = 0;
+    nslow2 = 0;
+
+    return HybridNonLinearSolverSpace::Running;
+}
+
+template<typename FunctorType, typename Scalar>
+HybridNonLinearSolverSpace::Status
+HybridNonLinearSolver<FunctorType,Scalar>::solveOneStep(FVectorType  &x)
+{
+    using std::abs;
+    
+    eigen_assert(x.size()==n); // check the caller is not cheating us
+
+    Index j;
+    std::vector<JacobiRotation<Scalar> > v_givens(n), w_givens(n);
+
+    jeval = true;
+
+    /* calculate the jacobian matrix. */
+    if ( functor.df(x, fjac) < 0)
+        return HybridNonLinearSolverSpace::UserAsked;
+    ++njev;
+
+    wa2 = fjac.colwise().blueNorm();
+
+    /* on the first iteration and if external scaling is not used, scale according */
+    /* to the norms of the columns of the initial jacobian. */
+    if (iter == 1) {
+        if (!useExternalScaling)
+            for (j = 0; j < n; ++j)
+                diag[j] = (wa2[j]==0.) ? 1. : wa2[j];
+
+        /* on the first iteration, calculate the norm of the scaled x */
+        /* and initialize the step bound delta. */
+        xnorm = diag.cwiseProduct(x).stableNorm();
+        delta = parameters.factor * xnorm;
+        if (delta == 0.)
+            delta = parameters.factor;
+    }
+
+    /* compute the qr factorization of the jacobian. */
+    HouseholderQR<JacobianType> qrfac(fjac); // no pivoting:
+
+    /* copy the triangular factor of the qr factorization into r. */
+    R = qrfac.matrixQR();
+
+    /* accumulate the orthogonal factor in fjac. */
+    fjac = qrfac.householderQ();
+
+    /* form (q transpose)*fvec and store in qtf. */
+    qtf = fjac.transpose() * fvec;
+
+    /* rescale if necessary. */
+    if (!useExternalScaling)
+        diag = diag.cwiseMax(wa2);
+
+    while (true) {
+        /* determine the direction p. */
+        internal::dogleg<Scalar>(R, diag, qtf, delta, wa1);
+
+        /* store the direction p and x + p. calculate the norm of p. */
+        wa1 = -wa1;
+        wa2 = x + wa1;
+        pnorm = diag.cwiseProduct(wa1).stableNorm();
+
+        /* on the first iteration, adjust the initial step bound. */
+        if (iter == 1)
+            delta = (std::min)(delta,pnorm);
+
+        /* evaluate the function at x + p and calculate its norm. */
+        if ( functor(wa2, wa4) < 0)
+            return HybridNonLinearSolverSpace::UserAsked;
+        ++nfev;
+        fnorm1 = wa4.stableNorm();
+
+        /* compute the scaled actual reduction. */
+        actred = -1.;
+        if (fnorm1 < fnorm) /* Computing 2nd power */
+            actred = 1. - numext::abs2(fnorm1 / fnorm);
+
+        /* compute the scaled predicted reduction. */
+        wa3 = R.template triangularView<Upper>()*wa1 + qtf;
+        temp = wa3.stableNorm();
+        prered = 0.;
+        if (temp < fnorm) /* Computing 2nd power */
+            prered = 1. - numext::abs2(temp / fnorm);
+
+        /* compute the ratio of the actual to the predicted reduction. */
+        ratio = 0.;
+        if (prered > 0.)
+            ratio = actred / prered;
+
+        /* update the step bound. */
+        if (ratio < Scalar(.1)) {
+            ncsuc = 0;
+            ++ncfail;
+            delta = Scalar(.5) * delta;
+        } else {
+            ncfail = 0;
+            ++ncsuc;
+            if (ratio >= Scalar(.5) || ncsuc > 1)
+                delta = (std::max)(delta, pnorm / Scalar(.5));
+            if (abs(ratio - 1.) <= Scalar(.1)) {
+                delta = pnorm / Scalar(.5);
+            }
+        }
+
+        /* test for successful iteration. */
+        if (ratio >= Scalar(1e-4)) {
+            /* successful iteration. update x, fvec, and their norms. */
+            x = wa2;
+            wa2 = diag.cwiseProduct(x);
+            fvec = wa4;
+            xnorm = wa2.stableNorm();
+            fnorm = fnorm1;
+            ++iter;
+        }
+
+        /* determine the progress of the iteration. */
+        ++nslow1;
+        if (actred >= Scalar(.001))
+            nslow1 = 0;
+        if (jeval)
+            ++nslow2;
+        if (actred >= Scalar(.1))
+            nslow2 = 0;
+
+        /* test for convergence. */
+        if (delta <= parameters.xtol * xnorm || fnorm == 0.)
+            return HybridNonLinearSolverSpace::RelativeErrorTooSmall;
+
+        /* tests for termination and stringent tolerances. */
+        if (nfev >= parameters.maxfev)
+            return HybridNonLinearSolverSpace::TooManyFunctionEvaluation;
+        if (Scalar(.1) * (std::max)(Scalar(.1) * delta, pnorm) <= NumTraits<Scalar>::epsilon() * xnorm)
+            return HybridNonLinearSolverSpace::TolTooSmall;
+        if (nslow2 == 5)
+            return HybridNonLinearSolverSpace::NotMakingProgressJacobian;
+        if (nslow1 == 10)
+            return HybridNonLinearSolverSpace::NotMakingProgressIterations;
+
+        /* criterion for recalculating jacobian. */
+        if (ncfail == 2)
+            break; // leave inner loop and go for the next outer loop iteration
+
+        /* calculate the rank one modification to the jacobian */
+        /* and update qtf if necessary. */
+        wa1 = diag.cwiseProduct( diag.cwiseProduct(wa1)/pnorm );
+        wa2 = fjac.transpose() * wa4;
+        if (ratio >= Scalar(1e-4))
+            qtf = wa2;
+        wa2 = (wa2-wa3)/pnorm;
+
+        /* compute the qr factorization of the updated jacobian. */
+        internal::r1updt<Scalar>(R, wa1, v_givens, w_givens, wa2, wa3, &sing);
+        internal::r1mpyq<Scalar>(n, n, fjac.data(), v_givens, w_givens);
+        internal::r1mpyq<Scalar>(1, n, qtf.data(), v_givens, w_givens);
+
+        jeval = false;
+    }
+    return HybridNonLinearSolverSpace::Running;
+}
+
+template<typename FunctorType, typename Scalar>
+HybridNonLinearSolverSpace::Status
+HybridNonLinearSolver<FunctorType,Scalar>::solve(FVectorType  &x)
+{
+    HybridNonLinearSolverSpace::Status status = solveInit(x);
+    if (status==HybridNonLinearSolverSpace::ImproperInputParameters)
+        return status;
+    while (status==HybridNonLinearSolverSpace::Running)
+        status = solveOneStep(x);
+    return status;
+}
+
+
+
+template<typename FunctorType, typename Scalar>
+HybridNonLinearSolverSpace::Status
+HybridNonLinearSolver<FunctorType,Scalar>::hybrd1(
+        FVectorType  &x,
+        const Scalar tol
+        )
+{
+    n = x.size();
+
+    /* check the input parameters for errors. */
+    if (n <= 0 || tol < 0.)
+        return HybridNonLinearSolverSpace::ImproperInputParameters;
+
+    resetParameters();
+    parameters.maxfev = 200*(n+1);
+    parameters.xtol = tol;
+
+    diag.setConstant(n, 1.);
+    useExternalScaling = true;
+    return solveNumericalDiff(x);
+}
+
+template<typename FunctorType, typename Scalar>
+HybridNonLinearSolverSpace::Status
+HybridNonLinearSolver<FunctorType,Scalar>::solveNumericalDiffInit(FVectorType  &x)
+{
+    n = x.size();
+
+    if (parameters.nb_of_subdiagonals<0) parameters.nb_of_subdiagonals= n-1;
+    if (parameters.nb_of_superdiagonals<0) parameters.nb_of_superdiagonals= n-1;
+
+    wa1.resize(n); wa2.resize(n); wa3.resize(n); wa4.resize(n);
+    qtf.resize(n);
+    fjac.resize(n, n);
+    fvec.resize(n);
+    if (!useExternalScaling)
+        diag.resize(n);
+    eigen_assert( (!useExternalScaling || diag.size()==n) || "When useExternalScaling is set, the caller must provide a valid 'diag'");
+
+    /* Function Body */
+    nfev = 0;
+    njev = 0;
+
+    /*     check the input parameters for errors. */
+    if (n <= 0 || parameters.xtol < 0. || parameters.maxfev <= 0 || parameters.nb_of_subdiagonals< 0 || parameters.nb_of_superdiagonals< 0 || parameters.factor <= 0. )
+        return HybridNonLinearSolverSpace::ImproperInputParameters;
+    if (useExternalScaling)
+        for (Index j = 0; j < n; ++j)
+            if (diag[j] <= 0.)
+                return HybridNonLinearSolverSpace::ImproperInputParameters;
+
+    /*     evaluate the function at the starting point */
+    /*     and calculate its norm. */
+    nfev = 1;
+    if ( functor(x, fvec) < 0)
+        return HybridNonLinearSolverSpace::UserAsked;
+    fnorm = fvec.stableNorm();
+
+    /*     initialize iteration counter and monitors. */
+    iter = 1;
+    ncsuc = 0;
+    ncfail = 0;
+    nslow1 = 0;
+    nslow2 = 0;
+
+    return HybridNonLinearSolverSpace::Running;
+}
+
+template<typename FunctorType, typename Scalar>
+HybridNonLinearSolverSpace::Status
+HybridNonLinearSolver<FunctorType,Scalar>::solveNumericalDiffOneStep(FVectorType  &x)
+{
+    using std::sqrt;
+    using std::abs;
+    
+    assert(x.size()==n); // check the caller is not cheating us
+
+    Index j;
+    std::vector<JacobiRotation<Scalar> > v_givens(n), w_givens(n);
+
+    jeval = true;
+    if (parameters.nb_of_subdiagonals<0) parameters.nb_of_subdiagonals= n-1;
+    if (parameters.nb_of_superdiagonals<0) parameters.nb_of_superdiagonals= n-1;
+
+    /* calculate the jacobian matrix. */
+    if (internal::fdjac1(functor, x, fvec, fjac, parameters.nb_of_subdiagonals, parameters.nb_of_superdiagonals, parameters.epsfcn) <0)
+        return HybridNonLinearSolverSpace::UserAsked;
+    nfev += (std::min)(parameters.nb_of_subdiagonals+parameters.nb_of_superdiagonals+ 1, n);
+
+    wa2 = fjac.colwise().blueNorm();
+
+    /* on the first iteration and if external scaling is not used, scale according */
+    /* to the norms of the columns of the initial jacobian. */
+    if (iter == 1) {
+        if (!useExternalScaling)
+            for (j = 0; j < n; ++j)
+                diag[j] = (wa2[j]==0.) ? 1. : wa2[j];
+
+        /* on the first iteration, calculate the norm of the scaled x */
+        /* and initialize the step bound delta. */
+        xnorm = diag.cwiseProduct(x).stableNorm();
+        delta = parameters.factor * xnorm;
+        if (delta == 0.)
+            delta = parameters.factor;
+    }
+
+    /* compute the qr factorization of the jacobian. */
+    HouseholderQR<JacobianType> qrfac(fjac); // no pivoting:
+
+    /* copy the triangular factor of the qr factorization into r. */
+    R = qrfac.matrixQR();
+
+    /* accumulate the orthogonal factor in fjac. */
+    fjac = qrfac.householderQ();
+
+    /* form (q transpose)*fvec and store in qtf. */
+    qtf = fjac.transpose() * fvec;
+
+    /* rescale if necessary. */
+    if (!useExternalScaling)
+        diag = diag.cwiseMax(wa2);
+
+    while (true) {
+        /* determine the direction p. */
+        internal::dogleg<Scalar>(R, diag, qtf, delta, wa1);
+
+        /* store the direction p and x + p. calculate the norm of p. */
+        wa1 = -wa1;
+        wa2 = x + wa1;
+        pnorm = diag.cwiseProduct(wa1).stableNorm();
+
+        /* on the first iteration, adjust the initial step bound. */
+        if (iter == 1)
+            delta = (std::min)(delta,pnorm);
+
+        /* evaluate the function at x + p and calculate its norm. */
+        if ( functor(wa2, wa4) < 0)
+            return HybridNonLinearSolverSpace::UserAsked;
+        ++nfev;
+        fnorm1 = wa4.stableNorm();
+
+        /* compute the scaled actual reduction. */
+        actred = -1.;
+        if (fnorm1 < fnorm) /* Computing 2nd power */
+            actred = 1. - numext::abs2(fnorm1 / fnorm);
+
+        /* compute the scaled predicted reduction. */
+        wa3 = R.template triangularView<Upper>()*wa1 + qtf;
+        temp = wa3.stableNorm();
+        prered = 0.;
+        if (temp < fnorm) /* Computing 2nd power */
+            prered = 1. - numext::abs2(temp / fnorm);
+
+        /* compute the ratio of the actual to the predicted reduction. */
+        ratio = 0.;
+        if (prered > 0.)
+            ratio = actred / prered;
+
+        /* update the step bound. */
+        if (ratio < Scalar(.1)) {
+            ncsuc = 0;
+            ++ncfail;
+            delta = Scalar(.5) * delta;
+        } else {
+            ncfail = 0;
+            ++ncsuc;
+            if (ratio >= Scalar(.5) || ncsuc > 1)
+                delta = (std::max)(delta, pnorm / Scalar(.5));
+            if (abs(ratio - 1.) <= Scalar(.1)) {
+                delta = pnorm / Scalar(.5);
+            }
+        }
+
+        /* test for successful iteration. */
+        if (ratio >= Scalar(1e-4)) {
+            /* successful iteration. update x, fvec, and their norms. */
+            x = wa2;
+            wa2 = diag.cwiseProduct(x);
+            fvec = wa4;
+            xnorm = wa2.stableNorm();
+            fnorm = fnorm1;
+            ++iter;
+        }
+
+        /* determine the progress of the iteration. */
+        ++nslow1;
+        if (actred >= Scalar(.001))
+            nslow1 = 0;
+        if (jeval)
+            ++nslow2;
+        if (actred >= Scalar(.1))
+            nslow2 = 0;
+
+        /* test for convergence. */
+        if (delta <= parameters.xtol * xnorm || fnorm == 0.)
+            return HybridNonLinearSolverSpace::RelativeErrorTooSmall;
+
+        /* tests for termination and stringent tolerances. */
+        if (nfev >= parameters.maxfev)
+            return HybridNonLinearSolverSpace::TooManyFunctionEvaluation;
+        if (Scalar(.1) * (std::max)(Scalar(.1) * delta, pnorm) <= NumTraits<Scalar>::epsilon() * xnorm)
+            return HybridNonLinearSolverSpace::TolTooSmall;
+        if (nslow2 == 5)
+            return HybridNonLinearSolverSpace::NotMakingProgressJacobian;
+        if (nslow1 == 10)
+            return HybridNonLinearSolverSpace::NotMakingProgressIterations;
+
+        /* criterion for recalculating jacobian. */
+        if (ncfail == 2)
+            break; // leave inner loop and go for the next outer loop iteration
+
+        /* calculate the rank one modification to the jacobian */
+        /* and update qtf if necessary. */
+        wa1 = diag.cwiseProduct( diag.cwiseProduct(wa1)/pnorm );
+        wa2 = fjac.transpose() * wa4;
+        if (ratio >= Scalar(1e-4))
+            qtf = wa2;
+        wa2 = (wa2-wa3)/pnorm;
+
+        /* compute the qr factorization of the updated jacobian. */
+        internal::r1updt<Scalar>(R, wa1, v_givens, w_givens, wa2, wa3, &sing);
+        internal::r1mpyq<Scalar>(n, n, fjac.data(), v_givens, w_givens);
+        internal::r1mpyq<Scalar>(1, n, qtf.data(), v_givens, w_givens);
+
+        jeval = false;
+    }
+    return HybridNonLinearSolverSpace::Running;
+}
+
+template<typename FunctorType, typename Scalar>
+HybridNonLinearSolverSpace::Status
+HybridNonLinearSolver<FunctorType,Scalar>::solveNumericalDiff(FVectorType  &x)
+{
+    HybridNonLinearSolverSpace::Status status = solveNumericalDiffInit(x);
+    if (status==HybridNonLinearSolverSpace::ImproperInputParameters)
+        return status;
+    while (status==HybridNonLinearSolverSpace::Running)
+        status = solveNumericalDiffOneStep(x);
+    return status;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_HYBRIDNONLINEARSOLVER_H
+
+//vim: ai ts=4 sts=4 et sw=4
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/TODOBdcsvd.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/TODOBdcsvd.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/TODOBdcsvd.txt	(revision 2476)
@@ -0,0 +1,29 @@
+TO DO LIST
+
+
+
+(optional optimization) - do all the allocations in the allocate part 
+                        - support static matrices
+                        - return a error at compilation time when using integer matrices (int, long, std::complex<int>, ...)
+
+to finish the algorithm :
+			-implement the last part of the algorithm as described on the reference paper. 
+			    You may find more information on that part on this paper
+
+			-to replace the call to JacobiSVD at the end of the divide algorithm, just after the call to 
+			    deflation.
+
+(suggested step by step resolution)
+                       0) comment the call to Jacobi in the last part of the divide method and everything right after
+                               until the end of the method. What is commented can be a guideline to steps 3) 4) and 6)
+                       1) solve the secular equation (Characteristic equation) on the values that are not null (zi!=0 and di!=0), after the deflation
+                               wich should be uncommented in the divide method
+                       2) remember the values of the singular values that are already computed (zi=0)
+                       3) assign the singular values found in m_computed at the right places (with the ones found in step 2) )
+                               in decreasing order
+                       4) set the firstcol to zero (except the first element) in m_computed
+                       5) compute all the singular vectors when CompV is set to true and only the left vectors when
+                               CompV is set to false
+                       6) multiply naiveU and naiveV to the right by the matrices found, only naiveU when CompV is set to
+                               false, /!\ if CompU is false NaiveU has only 2 rows
+                       7) delete everything commented in step 0)

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/TODOBdcsvd.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/JacobiSVD.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/JacobiSVD.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/JacobiSVD.h	(revision 2476)
@@ -0,0 +1,782 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_JACOBISVD_H
+#define EIGEN_JACOBISVD_H
+
+namespace Eigen { 
+
+namespace internal {
+// forward declaration (needed by ICC)
+// the empty body is required by MSVC
+template<typename MatrixType, int QRPreconditioner,
+         bool IsComplex = NumTraits<typename MatrixType::Scalar>::IsComplex>
+struct svd_precondition_2x2_block_to_be_real {};
+
+/*** QR preconditioners (R-SVD)
+ ***
+ *** Their role is to reduce the problem of computing the SVD to the case of a square matrix.
+ *** This approach, known as R-SVD, is an optimization for rectangular-enough matrices, and is a requirement for
+ *** JacobiSVD which by itself is only able to work on square matrices.
+ ***/
+
+enum { PreconditionIfMoreColsThanRows, PreconditionIfMoreRowsThanCols };
+
+template<typename MatrixType, int QRPreconditioner, int Case>
+struct qr_preconditioner_should_do_anything
+{
+  enum { a = MatrixType::RowsAtCompileTime != Dynamic &&
+             MatrixType::ColsAtCompileTime != Dynamic &&
+             MatrixType::ColsAtCompileTime <= MatrixType::RowsAtCompileTime,
+         b = MatrixType::RowsAtCompileTime != Dynamic &&
+             MatrixType::ColsAtCompileTime != Dynamic &&
+             MatrixType::RowsAtCompileTime <= MatrixType::ColsAtCompileTime,
+         ret = !( (QRPreconditioner == NoQRPreconditioner) ||
+                  (Case == PreconditionIfMoreColsThanRows && bool(a)) ||
+                  (Case == PreconditionIfMoreRowsThanCols && bool(b)) )
+  };
+};
+
+template<typename MatrixType, int QRPreconditioner, int Case,
+         bool DoAnything = qr_preconditioner_should_do_anything<MatrixType, QRPreconditioner, Case>::ret
+> struct qr_preconditioner_impl {};
+
+template<typename MatrixType, int QRPreconditioner, int Case>
+class qr_preconditioner_impl<MatrixType, QRPreconditioner, Case, false>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  void allocate(const JacobiSVD<MatrixType, QRPreconditioner>&) {}
+  bool run(JacobiSVD<MatrixType, QRPreconditioner>&, const MatrixType&)
+  {
+    return false;
+  }
+};
+
+/*** preconditioner using FullPivHouseholderQR ***/
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, FullPivHouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  enum
+  {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime
+  };
+  typedef Matrix<Scalar, 1, RowsAtCompileTime, RowMajor, 1, MaxRowsAtCompileTime> WorkspaceType;
+
+  void allocate(const JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd)
+  {
+    if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.rows(), svd.cols());
+    }
+    if (svd.m_computeFullU) m_workspace.resize(svd.rows());
+  }
+
+  bool run(JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.rows() > matrix.cols())
+    {
+      m_qr.compute(matrix);
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
+      if(svd.m_computeFullU) m_qr.matrixQ().evalTo(svd.m_matrixU, m_workspace);
+      if(svd.computeV()) svd.m_matrixV = m_qr.colsPermutation();
+      return true;
+    }
+    return false;
+  }
+private:
+  typedef FullPivHouseholderQR<MatrixType> QRType;
+  QRType m_qr;
+  WorkspaceType m_workspace;
+};
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, FullPivHouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  enum
+  {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+    Options = MatrixType::Options
+  };
+  typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, MaxColsAtCompileTime, MaxRowsAtCompileTime>
+          TransposeTypeWithSameStorageOrder;
+
+  void allocate(const JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd)
+  {
+    if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.cols(), svd.rows());
+    }
+    m_adjoint.resize(svd.cols(), svd.rows());
+    if (svd.m_computeFullV) m_workspace.resize(svd.cols());
+  }
+
+  bool run(JacobiSVD<MatrixType, FullPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.cols() > matrix.rows())
+    {
+      m_adjoint = matrix.adjoint();
+      m_qr.compute(m_adjoint);
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
+      if(svd.m_computeFullV) m_qr.matrixQ().evalTo(svd.m_matrixV, m_workspace);
+      if(svd.computeU()) svd.m_matrixU = m_qr.colsPermutation();
+      return true;
+    }
+    else return false;
+  }
+private:
+  typedef FullPivHouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
+  QRType m_qr;
+  TransposeTypeWithSameStorageOrder m_adjoint;
+  typename internal::plain_row_type<MatrixType>::type m_workspace;
+};
+
+/*** preconditioner using ColPivHouseholderQR ***/
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, ColPivHouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+
+  void allocate(const JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd)
+  {
+    if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.rows(), svd.cols());
+    }
+    if (svd.m_computeFullU) m_workspace.resize(svd.rows());
+    else if (svd.m_computeThinU) m_workspace.resize(svd.cols());
+  }
+
+  bool run(JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.rows() > matrix.cols())
+    {
+      m_qr.compute(matrix);
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
+      if(svd.m_computeFullU) m_qr.householderQ().evalTo(svd.m_matrixU, m_workspace);
+      else if(svd.m_computeThinU)
+      {
+        svd.m_matrixU.setIdentity(matrix.rows(), matrix.cols());
+        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixU, m_workspace);
+      }
+      if(svd.computeV()) svd.m_matrixV = m_qr.colsPermutation();
+      return true;
+    }
+    return false;
+  }
+
+private:
+  typedef ColPivHouseholderQR<MatrixType> QRType;
+  QRType m_qr;
+  typename internal::plain_col_type<MatrixType>::type m_workspace;
+};
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, ColPivHouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  enum
+  {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+    Options = MatrixType::Options
+  };
+
+  typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, MaxColsAtCompileTime, MaxRowsAtCompileTime>
+          TransposeTypeWithSameStorageOrder;
+
+  void allocate(const JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd)
+  {
+    if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.cols(), svd.rows());
+    }
+    if (svd.m_computeFullV) m_workspace.resize(svd.cols());
+    else if (svd.m_computeThinV) m_workspace.resize(svd.rows());
+    m_adjoint.resize(svd.cols(), svd.rows());
+  }
+
+  bool run(JacobiSVD<MatrixType, ColPivHouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.cols() > matrix.rows())
+    {
+      m_adjoint = matrix.adjoint();
+      m_qr.compute(m_adjoint);
+
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
+      if(svd.m_computeFullV) m_qr.householderQ().evalTo(svd.m_matrixV, m_workspace);
+      else if(svd.m_computeThinV)
+      {
+        svd.m_matrixV.setIdentity(matrix.cols(), matrix.rows());
+        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixV, m_workspace);
+      }
+      if(svd.computeU()) svd.m_matrixU = m_qr.colsPermutation();
+      return true;
+    }
+    else return false;
+  }
+
+private:
+  typedef ColPivHouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
+  QRType m_qr;
+  TransposeTypeWithSameStorageOrder m_adjoint;
+  typename internal::plain_row_type<MatrixType>::type m_workspace;
+};
+
+/*** preconditioner using HouseholderQR ***/
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, HouseholderQRPreconditioner, PreconditionIfMoreRowsThanCols, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+
+  void allocate(const JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd)
+  {
+    if (svd.rows() != m_qr.rows() || svd.cols() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.rows(), svd.cols());
+    }
+    if (svd.m_computeFullU) m_workspace.resize(svd.rows());
+    else if (svd.m_computeThinU) m_workspace.resize(svd.cols());
+  }
+
+  bool run(JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.rows() > matrix.cols())
+    {
+      m_qr.compute(matrix);
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.cols(),matrix.cols()).template triangularView<Upper>();
+      if(svd.m_computeFullU) m_qr.householderQ().evalTo(svd.m_matrixU, m_workspace);
+      else if(svd.m_computeThinU)
+      {
+        svd.m_matrixU.setIdentity(matrix.rows(), matrix.cols());
+        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixU, m_workspace);
+      }
+      if(svd.computeV()) svd.m_matrixV.setIdentity(matrix.cols(), matrix.cols());
+      return true;
+    }
+    return false;
+  }
+private:
+  typedef HouseholderQR<MatrixType> QRType;
+  QRType m_qr;
+  typename internal::plain_col_type<MatrixType>::type m_workspace;
+};
+
+template<typename MatrixType>
+class qr_preconditioner_impl<MatrixType, HouseholderQRPreconditioner, PreconditionIfMoreColsThanRows, true>
+{
+public:
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::Scalar Scalar;
+  enum
+  {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+    Options = MatrixType::Options
+  };
+
+  typedef Matrix<Scalar, ColsAtCompileTime, RowsAtCompileTime, Options, MaxColsAtCompileTime, MaxRowsAtCompileTime>
+          TransposeTypeWithSameStorageOrder;
+
+  void allocate(const JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd)
+  {
+    if (svd.cols() != m_qr.rows() || svd.rows() != m_qr.cols())
+    {
+      m_qr.~QRType();
+      ::new (&m_qr) QRType(svd.cols(), svd.rows());
+    }
+    if (svd.m_computeFullV) m_workspace.resize(svd.cols());
+    else if (svd.m_computeThinV) m_workspace.resize(svd.rows());
+    m_adjoint.resize(svd.cols(), svd.rows());
+  }
+
+  bool run(JacobiSVD<MatrixType, HouseholderQRPreconditioner>& svd, const MatrixType& matrix)
+  {
+    if(matrix.cols() > matrix.rows())
+    {
+      m_adjoint = matrix.adjoint();
+      m_qr.compute(m_adjoint);
+
+      svd.m_workMatrix = m_qr.matrixQR().block(0,0,matrix.rows(),matrix.rows()).template triangularView<Upper>().adjoint();
+      if(svd.m_computeFullV) m_qr.householderQ().evalTo(svd.m_matrixV, m_workspace);
+      else if(svd.m_computeThinV)
+      {
+        svd.m_matrixV.setIdentity(matrix.cols(), matrix.rows());
+        m_qr.householderQ().applyThisOnTheLeft(svd.m_matrixV, m_workspace);
+      }
+      if(svd.computeU()) svd.m_matrixU.setIdentity(matrix.rows(), matrix.rows());
+      return true;
+    }
+    else return false;
+  }
+
+private:
+  typedef HouseholderQR<TransposeTypeWithSameStorageOrder> QRType;
+  QRType m_qr;
+  TransposeTypeWithSameStorageOrder m_adjoint;
+  typename internal::plain_row_type<MatrixType>::type m_workspace;
+};
+
+/*** 2x2 SVD implementation
+ ***
+ *** JacobiSVD consists in performing a series of 2x2 SVD subproblems
+ ***/
+
+template<typename MatrixType, int QRPreconditioner>
+struct svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner, false>
+{
+  typedef JacobiSVD<MatrixType, QRPreconditioner> SVD;
+  typedef typename SVD::Index Index;
+  static void run(typename SVD::WorkMatrixType&, SVD&, Index, Index) {}
+};
+
+template<typename MatrixType, int QRPreconditioner>
+struct svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner, true>
+{
+  typedef JacobiSVD<MatrixType, QRPreconditioner> SVD;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::RealScalar RealScalar;
+  typedef typename SVD::Index Index;
+  static void run(typename SVD::WorkMatrixType& work_matrix, SVD& svd, Index p, Index q)
+  {
+    using std::sqrt;
+    Scalar z;
+    JacobiRotation<Scalar> rot;
+    RealScalar n = sqrt(numext::abs2(work_matrix.coeff(p,p)) + numext::abs2(work_matrix.coeff(q,p)));
+    if(n==0)
+    {
+      z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q);
+      work_matrix.row(p) *= z;
+      if(svd.computeU()) svd.m_matrixU.col(p) *= conj(z);
+      z = abs(work_matrix.coeff(q,q)) / work_matrix.coeff(q,q);
+      work_matrix.row(q) *= z;
+      if(svd.computeU()) svd.m_matrixU.col(q) *= conj(z);
+    }
+    else
+    {
+      rot.c() = conj(work_matrix.coeff(p,p)) / n;
+      rot.s() = work_matrix.coeff(q,p) / n;
+      work_matrix.applyOnTheLeft(p,q,rot);
+      if(svd.computeU()) svd.m_matrixU.applyOnTheRight(p,q,rot.adjoint());
+      if(work_matrix.coeff(p,q) != Scalar(0))
+      {
+        Scalar z = abs(work_matrix.coeff(p,q)) / work_matrix.coeff(p,q);
+        work_matrix.col(q) *= z;
+        if(svd.computeV()) svd.m_matrixV.col(q) *= z;
+      }
+      if(work_matrix.coeff(q,q) != Scalar(0))
+      {
+        z = abs(work_matrix.coeff(q,q)) / work_matrix.coeff(q,q);
+        work_matrix.row(q) *= z;
+        if(svd.computeU()) svd.m_matrixU.col(q) *= conj(z);
+      }
+    }
+  }
+};
+
+template<typename MatrixType, typename RealScalar, typename Index>
+void real_2x2_jacobi_svd(const MatrixType& matrix, Index p, Index q,
+                            JacobiRotation<RealScalar> *j_left,
+                            JacobiRotation<RealScalar> *j_right)
+{
+  using std::sqrt;
+  Matrix<RealScalar,2,2> m;
+  m << numext::real(matrix.coeff(p,p)), numext::real(matrix.coeff(p,q)),
+       numext::real(matrix.coeff(q,p)), numext::real(matrix.coeff(q,q));
+  JacobiRotation<RealScalar> rot1;
+  RealScalar t = m.coeff(0,0) + m.coeff(1,1);
+  RealScalar d = m.coeff(1,0) - m.coeff(0,1);
+  if(t == RealScalar(0))
+  {
+    rot1.c() = RealScalar(0);
+    rot1.s() = d > RealScalar(0) ? RealScalar(1) : RealScalar(-1);
+  }
+  else
+  {
+    RealScalar u = d / t;
+    rot1.c() = RealScalar(1) / sqrt(RealScalar(1) + numext::abs2(u));
+    rot1.s() = rot1.c() * u;
+  }
+  m.applyOnTheLeft(0,1,rot1);
+  j_right->makeJacobi(m,0,1);
+  *j_left  = rot1 * j_right->transpose();
+}
+
+} // end namespace internal
+
+/** \ingroup SVD_Module
+  *
+  *
+  * \class JacobiSVD
+  *
+  * \brief Two-sided Jacobi SVD decomposition of a rectangular matrix
+  *
+  * \param MatrixType the type of the matrix of which we are computing the SVD decomposition
+  * \param QRPreconditioner this optional parameter allows to specify the type of QR decomposition that will be used internally
+  *                        for the R-SVD step for non-square matrices. See discussion of possible values below.
+  *
+  * SVD decomposition consists in decomposing any n-by-p matrix \a A as a product
+  *   \f[ A = U S V^* \f]
+  * where \a U is a n-by-n unitary, \a V is a p-by-p unitary, and \a S is a n-by-p real positive matrix which is zero outside of its main diagonal;
+  * the diagonal entries of S are known as the \em singular \em values of \a A and the columns of \a U and \a V are known as the left
+  * and right \em singular \em vectors of \a A respectively.
+  *
+  * Singular values are always sorted in decreasing order.
+  *
+  * This JacobiSVD decomposition computes only the singular values by default. If you want \a U or \a V, you need to ask for them explicitly.
+  *
+  * You can ask for only \em thin \a U or \a V to be computed, meaning the following. In case of a rectangular n-by-p matrix, letting \a m be the
+  * smaller value among \a n and \a p, there are only \a m singular vectors; the remaining columns of \a U and \a V do not correspond to actual
+  * singular vectors. Asking for \em thin \a U or \a V means asking for only their \a m first columns to be formed. So \a U is then a n-by-m matrix,
+  * and \a V is then a p-by-m matrix. Notice that thin \a U and \a V are all you need for (least squares) solving.
+  *
+  * Here's an example demonstrating basic usage:
+  * \include JacobiSVD_basic.cpp
+  * Output: \verbinclude JacobiSVD_basic.out
+  *
+  * This JacobiSVD class is a two-sided Jacobi R-SVD decomposition, ensuring optimal reliability and accuracy. The downside is that it's slower than
+  * bidiagonalizing SVD algorithms for large square matrices; however its complexity is still \f$ O(n^2p) \f$ where \a n is the smaller dimension and
+  * \a p is the greater dimension, meaning that it is still of the same order of complexity as the faster bidiagonalizing R-SVD algorithms.
+  * In particular, like any R-SVD, it takes advantage of non-squareness in that its complexity is only linear in the greater dimension.
+  *
+  * If the input matrix has inf or nan coefficients, the result of the computation is undefined, but the computation is guaranteed to
+  * terminate in finite (and reasonable) time.
+  *
+  * The possible values for QRPreconditioner are:
+  * \li ColPivHouseholderQRPreconditioner is the default. In practice it's very safe. It uses column-pivoting QR.
+  * \li FullPivHouseholderQRPreconditioner, is the safest and slowest. It uses full-pivoting QR.
+  *     Contrary to other QRs, it doesn't allow computing thin unitaries.
+  * \li HouseholderQRPreconditioner is the fastest, and less safe and accurate than the pivoting variants. It uses non-pivoting QR.
+  *     This is very similar in safety and accuracy to the bidiagonalization process used by bidiagonalizing SVD algorithms (since bidiagonalization
+  *     is inherently non-pivoting). However the resulting SVD is still more reliable than bidiagonalizing SVDs because the Jacobi-based iterarive
+  *     process is more reliable than the optimized bidiagonal SVD iterations.
+  * \li NoQRPreconditioner allows not to use a QR preconditioner at all. This is useful if you know that you will only be computing
+  *     JacobiSVD decompositions of square matrices. Non-square matrices require a QR preconditioner. Using this option will result in
+  *     faster compilation and smaller executable code. It won't significantly speed up computation, since JacobiSVD is always checking
+  *     if QR preconditioning is needed before applying it anyway.
+  *
+  * \sa MatrixBase::jacobiSvd()
+  */
+template<typename _MatrixType, int QRPreconditioner> 
+class JacobiSVD : public SVDBase<_MatrixType>
+{
+  public:
+
+    typedef _MatrixType MatrixType;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+    typedef typename MatrixType::Index Index;
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      DiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime,ColsAtCompileTime),
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+      MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(MaxRowsAtCompileTime,MaxColsAtCompileTime),
+      MatrixOptions = MatrixType::Options
+    };
+
+    typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime,
+                   MatrixOptions, MaxRowsAtCompileTime, MaxRowsAtCompileTime>
+            MatrixUType;
+    typedef Matrix<Scalar, ColsAtCompileTime, ColsAtCompileTime,
+                   MatrixOptions, MaxColsAtCompileTime, MaxColsAtCompileTime>
+            MatrixVType;
+    typedef typename internal::plain_diag_type<MatrixType, RealScalar>::type SingularValuesType;
+    typedef typename internal::plain_row_type<MatrixType>::type RowType;
+    typedef typename internal::plain_col_type<MatrixType>::type ColType;
+    typedef Matrix<Scalar, DiagSizeAtCompileTime, DiagSizeAtCompileTime,
+                   MatrixOptions, MaxDiagSizeAtCompileTime, MaxDiagSizeAtCompileTime>
+            WorkMatrixType;
+
+    /** \brief Default Constructor.
+      *
+      * The default constructor is useful in cases in which the user intends to
+      * perform decompositions via JacobiSVD::compute(const MatrixType&).
+      */
+    JacobiSVD()
+      : SVDBase<_MatrixType>::SVDBase()
+    {}
+
+
+    /** \brief Default Constructor with memory preallocation
+      *
+      * Like the default constructor but with preallocation of the internal data
+      * according to the specified problem size.
+      * \sa JacobiSVD()
+      */
+    JacobiSVD(Index rows, Index cols, unsigned int computationOptions = 0)
+      : SVDBase<_MatrixType>::SVDBase() 
+    {
+      allocate(rows, cols, computationOptions);
+    }
+
+    /** \brief Constructor performing the decomposition of given matrix.
+     *
+     * \param matrix the matrix to decompose
+     * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
+     *                           By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU,
+     *                           #ComputeFullV, #ComputeThinV.
+     *
+     * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
+     * available with the (non-default) FullPivHouseholderQR preconditioner.
+     */
+    JacobiSVD(const MatrixType& matrix, unsigned int computationOptions = 0)
+      : SVDBase<_MatrixType>::SVDBase()
+    {
+      compute(matrix, computationOptions);
+    }
+
+    /** \brief Method performing the decomposition of given matrix using custom options.
+     *
+     * \param matrix the matrix to decompose
+     * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
+     *                           By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU,
+     *                           #ComputeFullV, #ComputeThinV.
+     *
+     * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
+     * available with the (non-default) FullPivHouseholderQR preconditioner.
+     */
+    SVDBase<MatrixType>& compute(const MatrixType& matrix, unsigned int computationOptions);
+
+    /** \brief Method performing the decomposition of given matrix using current options.
+     *
+     * \param matrix the matrix to decompose
+     *
+     * This method uses the current \a computationOptions, as already passed to the constructor or to compute(const MatrixType&, unsigned int).
+     */
+    SVDBase<MatrixType>& compute(const MatrixType& matrix)
+    {
+      return compute(matrix, this->m_computationOptions);
+    }
+    
+    /** \returns a (least squares) solution of \f$ A x = b \f$ using the current SVD decomposition of A.
+      *
+      * \param b the right-hand-side of the equation to solve.
+      *
+      * \note Solving requires both U and V to be computed. Thin U and V are enough, there is no need for full U or V.
+      *
+      * \note SVD solving is implicitly least-squares. Thus, this method serves both purposes of exact solving and least-squares solving.
+      * In other words, the returned solution is guaranteed to minimize the Euclidean norm \f$ \Vert A x - b \Vert \f$.
+      */
+    template<typename Rhs>
+    inline const internal::solve_retval<JacobiSVD, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(this->m_isInitialized && "JacobiSVD is not initialized.");
+      eigen_assert(SVDBase<MatrixType>::computeU() && SVDBase<MatrixType>::computeV() && "JacobiSVD::solve() requires both unitaries U and V to be computed (thin unitaries suffice).");
+      return internal::solve_retval<JacobiSVD, Rhs>(*this, b.derived());
+    }
+
+    
+
+  private:
+    void allocate(Index rows, Index cols, unsigned int computationOptions);
+
+  protected:
+    WorkMatrixType m_workMatrix;
+   
+    template<typename __MatrixType, int _QRPreconditioner, bool _IsComplex>
+    friend struct internal::svd_precondition_2x2_block_to_be_real;
+    template<typename __MatrixType, int _QRPreconditioner, int _Case, bool _DoAnything>
+    friend struct internal::qr_preconditioner_impl;
+
+    internal::qr_preconditioner_impl<MatrixType, QRPreconditioner, internal::PreconditionIfMoreColsThanRows> m_qr_precond_morecols;
+    internal::qr_preconditioner_impl<MatrixType, QRPreconditioner, internal::PreconditionIfMoreRowsThanCols> m_qr_precond_morerows;
+};
+
+template<typename MatrixType, int QRPreconditioner>
+void JacobiSVD<MatrixType, QRPreconditioner>::allocate(Index rows, Index cols, unsigned int computationOptions)
+{
+  if (SVDBase<MatrixType>::allocate(rows, cols, computationOptions)) return;
+
+  if (QRPreconditioner == FullPivHouseholderQRPreconditioner)
+  {
+      eigen_assert(!(this->m_computeThinU || this->m_computeThinV) &&
+              "JacobiSVD: can't compute thin U or thin V with the FullPivHouseholderQR preconditioner. "
+              "Use the ColPivHouseholderQR preconditioner instead.");
+  }
+
+  m_workMatrix.resize(this->m_diagSize, this->m_diagSize);
+  
+  if(this->m_cols>this->m_rows) m_qr_precond_morecols.allocate(*this);
+  if(this->m_rows>this->m_cols) m_qr_precond_morerows.allocate(*this);
+}
+
+template<typename MatrixType, int QRPreconditioner>
+SVDBase<MatrixType>&
+JacobiSVD<MatrixType, QRPreconditioner>::compute(const MatrixType& matrix, unsigned int computationOptions)
+{
+  using std::abs;
+  allocate(matrix.rows(), matrix.cols(), computationOptions);
+
+  // currently we stop when we reach precision 2*epsilon as the last bit of precision can require an unreasonable number of iterations,
+  // only worsening the precision of U and V as we accumulate more rotations
+  const RealScalar precision = RealScalar(2) * NumTraits<Scalar>::epsilon();
+
+  // limit for very small denormal numbers to be considered zero in order to avoid infinite loops (see bug 286)
+  const RealScalar considerAsZero = RealScalar(2) * std::numeric_limits<RealScalar>::denorm_min();
+
+  /*** step 1. The R-SVD step: we use a QR decomposition to reduce to the case of a square matrix */
+
+  if(!m_qr_precond_morecols.run(*this, matrix) && !m_qr_precond_morerows.run(*this, matrix))
+  {
+    m_workMatrix = matrix.block(0,0,this->m_diagSize,this->m_diagSize);
+    if(this->m_computeFullU) this->m_matrixU.setIdentity(this->m_rows,this->m_rows);
+    if(this->m_computeThinU) this->m_matrixU.setIdentity(this->m_rows,this->m_diagSize);
+    if(this->m_computeFullV) this->m_matrixV.setIdentity(this->m_cols,this->m_cols);
+    if(this->m_computeThinV) this->m_matrixV.setIdentity(this->m_cols, this->m_diagSize);
+  }
+
+  /*** step 2. The main Jacobi SVD iteration. ***/
+
+  bool finished = false;
+  while(!finished)
+  {
+    finished = true;
+
+    // do a sweep: for all index pairs (p,q), perform SVD of the corresponding 2x2 sub-matrix
+
+    for(Index p = 1; p < this->m_diagSize; ++p)
+    {
+      for(Index q = 0; q < p; ++q)
+      {
+        // if this 2x2 sub-matrix is not diagonal already...
+        // notice that this comparison will evaluate to false if any NaN is involved, ensuring that NaN's don't
+        // keep us iterating forever. Similarly, small denormal numbers are considered zero.
+        using std::max;
+        RealScalar threshold = (max)(considerAsZero, precision * (max)(abs(m_workMatrix.coeff(p,p)),
+                                                                       abs(m_workMatrix.coeff(q,q))));
+        if((max)(abs(m_workMatrix.coeff(p,q)),abs(m_workMatrix.coeff(q,p))) > threshold)
+        {
+          finished = false;
+
+          // perform SVD decomposition of 2x2 sub-matrix corresponding to indices p,q to make it diagonal
+          internal::svd_precondition_2x2_block_to_be_real<MatrixType, QRPreconditioner>::run(m_workMatrix, *this, p, q);
+          JacobiRotation<RealScalar> j_left, j_right;
+          internal::real_2x2_jacobi_svd(m_workMatrix, p, q, &j_left, &j_right);
+
+          // accumulate resulting Jacobi rotations
+          m_workMatrix.applyOnTheLeft(p,q,j_left);
+          if(SVDBase<MatrixType>::computeU()) this->m_matrixU.applyOnTheRight(p,q,j_left.transpose());
+
+          m_workMatrix.applyOnTheRight(p,q,j_right);
+          if(SVDBase<MatrixType>::computeV()) this->m_matrixV.applyOnTheRight(p,q,j_right);
+        }
+      }
+    }
+  }
+
+  /*** step 3. The work matrix is now diagonal, so ensure it's positive so its diagonal entries are the singular values ***/
+
+  for(Index i = 0; i < this->m_diagSize; ++i)
+  {
+    RealScalar a = abs(m_workMatrix.coeff(i,i));
+    this->m_singularValues.coeffRef(i) = a;
+    if(SVDBase<MatrixType>::computeU() && (a!=RealScalar(0))) this->m_matrixU.col(i) *= this->m_workMatrix.coeff(i,i)/a;
+  }
+
+  /*** step 4. Sort singular values in descending order and compute the number of nonzero singular values ***/
+
+  this->m_nonzeroSingularValues = this->m_diagSize;
+  for(Index i = 0; i < this->m_diagSize; i++)
+  {
+    Index pos;
+    RealScalar maxRemainingSingularValue = this->m_singularValues.tail(this->m_diagSize-i).maxCoeff(&pos);
+    if(maxRemainingSingularValue == RealScalar(0))
+    {
+      this->m_nonzeroSingularValues = i;
+      break;
+    }
+    if(pos)
+    {
+      pos += i;
+      std::swap(this->m_singularValues.coeffRef(i), this->m_singularValues.coeffRef(pos));
+      if(SVDBase<MatrixType>::computeU()) this->m_matrixU.col(pos).swap(this->m_matrixU.col(i));
+      if(SVDBase<MatrixType>::computeV()) this->m_matrixV.col(pos).swap(this->m_matrixV.col(i));
+    }
+  }
+
+  this->m_isInitialized = true;
+  return *this;
+}
+
+namespace internal {
+template<typename _MatrixType, int QRPreconditioner, typename Rhs>
+struct solve_retval<JacobiSVD<_MatrixType, QRPreconditioner>, Rhs>
+  : solve_retval_base<JacobiSVD<_MatrixType, QRPreconditioner>, Rhs>
+{
+  typedef JacobiSVD<_MatrixType, QRPreconditioner> JacobiSVDType;
+  EIGEN_MAKE_SOLVE_HELPERS(JacobiSVDType,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    eigen_assert(rhs().rows() == dec().rows());
+
+    // A = U S V^*
+    // So A^{-1} = V S^{-1} U^*
+
+    Index diagSize = (std::min)(dec().rows(), dec().cols());
+    typename JacobiSVDType::SingularValuesType invertedSingVals(diagSize);
+
+    Index nonzeroSingVals = dec().nonzeroSingularValues();
+    invertedSingVals.head(nonzeroSingVals) = dec().singularValues().head(nonzeroSingVals).array().inverse();
+    invertedSingVals.tail(diagSize - nonzeroSingVals).setZero();
+
+    dst = dec().matrixV().leftCols(diagSize)
+        * invertedSingVals.asDiagonal()
+        * dec().matrixU().leftCols(diagSize).adjoint()
+        * rhs();
+  }
+};
+} // end namespace internal
+
+/** \svd_module
+  *
+  * \return the singular value decomposition of \c *this computed by two-sided
+  * Jacobi transformations.
+  *
+  * \sa class JacobiSVD
+  */
+template<typename Derived>
+JacobiSVD<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::jacobiSvd(unsigned int computationOptions) const
+{
+  return JacobiSVD<PlainObject>(*this, computationOptions);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_JACOBISVD_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/BDCSVD.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/BDCSVD.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/BDCSVD.h	(revision 2476)
@@ -0,0 +1,748 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+// 
+// We used the "A Divide-And-Conquer Algorithm for the Bidiagonal SVD"
+// research report written by Ming Gu and Stanley C.Eisenstat
+// The code variable names correspond to the names they used in their 
+// report
+//
+// Copyright (C) 2013 Gauthier Brun <brun.gauthier@gmail.com>
+// Copyright (C) 2013 Nicolas Carre <nicolas.carre@ensimag.fr>
+// Copyright (C) 2013 Jean Ceccato <jean.ceccato@ensimag.fr>
+// Copyright (C) 2013 Pierre Zoppitelli <pierre.zoppitelli@ensimag.fr>
+//
+// Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BDCSVD_H
+#define EIGEN_BDCSVD_H
+
+#define EPSILON 0.0000000000000001
+
+#define ALGOSWAP 32
+
+namespace Eigen {
+/** \ingroup SVD_Module
+ *
+ *
+ * \class BDCSVD
+ *
+ * \brief class Bidiagonal Divide and Conquer SVD
+ *
+ * \param MatrixType the type of the matrix of which we are computing the SVD decomposition
+ * We plan to have a very similar interface to JacobiSVD on this class.
+ * It should be used to speed up the calcul of SVD for big matrices. 
+ */
+template<typename _MatrixType> 
+class BDCSVD : public SVDBase<_MatrixType>
+{
+  typedef SVDBase<_MatrixType> Base;
+    
+public:
+  using Base::rows;
+  using Base::cols;
+  
+  typedef _MatrixType MatrixType;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+  typedef typename MatrixType::Index Index;
+  enum {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime, 
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime, 
+    DiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime, ColsAtCompileTime), 
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime, 
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime, 
+    MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(MaxRowsAtCompileTime, MaxColsAtCompileTime), 
+    MatrixOptions = MatrixType::Options
+  };
+
+  typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, 
+		 MatrixOptions, MaxRowsAtCompileTime, MaxRowsAtCompileTime>
+  MatrixUType;
+  typedef Matrix<Scalar, ColsAtCompileTime, ColsAtCompileTime, 
+		 MatrixOptions, MaxColsAtCompileTime, MaxColsAtCompileTime>
+  MatrixVType;
+  typedef typename internal::plain_diag_type<MatrixType, RealScalar>::type SingularValuesType;
+  typedef typename internal::plain_row_type<MatrixType>::type RowType;
+  typedef typename internal::plain_col_type<MatrixType>::type ColType;
+  typedef Matrix<Scalar, Dynamic, Dynamic> MatrixX;
+  typedef Matrix<RealScalar, Dynamic, Dynamic> MatrixXr;
+  typedef Matrix<RealScalar, Dynamic, 1> VectorType;
+
+  /** \brief Default Constructor.
+   *
+   * The default constructor is useful in cases in which the user intends to
+   * perform decompositions via BDCSVD::compute(const MatrixType&).
+   */
+  BDCSVD()
+    : SVDBase<_MatrixType>::SVDBase(), 
+      algoswap(ALGOSWAP)
+  {}
+
+
+  /** \brief Default Constructor with memory preallocation
+   *
+   * Like the default constructor but with preallocation of the internal data
+   * according to the specified problem size.
+   * \sa BDCSVD()
+   */
+  BDCSVD(Index rows, Index cols, unsigned int computationOptions = 0)
+    : SVDBase<_MatrixType>::SVDBase(), 
+      algoswap(ALGOSWAP)
+  {
+    allocate(rows, cols, computationOptions);
+  }
+
+  /** \brief Constructor performing the decomposition of given matrix.
+   *
+   * \param matrix the matrix to decompose
+   * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
+   *                           By default, none is computed. This is a bit - field, the possible bits are #ComputeFullU, #ComputeThinU, 
+   *                           #ComputeFullV, #ComputeThinV.
+   *
+   * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
+   * available with the (non - default) FullPivHouseholderQR preconditioner.
+   */
+  BDCSVD(const MatrixType& matrix, unsigned int computationOptions = 0)
+    : SVDBase<_MatrixType>::SVDBase(), 
+      algoswap(ALGOSWAP)
+  {
+    compute(matrix, computationOptions);
+  }
+
+  ~BDCSVD() 
+  {
+  }
+  /** \brief Method performing the decomposition of given matrix using custom options.
+   *
+   * \param matrix the matrix to decompose
+   * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
+   *                           By default, none is computed. This is a bit - field, the possible bits are #ComputeFullU, #ComputeThinU, 
+   *                           #ComputeFullV, #ComputeThinV.
+   *
+   * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
+   * available with the (non - default) FullPivHouseholderQR preconditioner.
+   */
+  SVDBase<MatrixType>& compute(const MatrixType& matrix, unsigned int computationOptions);
+
+  /** \brief Method performing the decomposition of given matrix using current options.
+   *
+   * \param matrix the matrix to decompose
+   *
+   * This method uses the current \a computationOptions, as already passed to the constructor or to compute(const MatrixType&, unsigned int).
+   */
+  SVDBase<MatrixType>& compute(const MatrixType& matrix)
+  {
+    return compute(matrix, this->m_computationOptions);
+  }
+
+  void setSwitchSize(int s) 
+  {
+    eigen_assert(s>3 && "BDCSVD the size of the algo switch has to be greater than 4");
+    algoswap = s;
+  }
+
+
+  /** \returns a (least squares) solution of \f$ A x = b \f$ using the current SVD decomposition of A.
+   *
+   * \param b the right - hand - side of the equation to solve.
+   *
+   * \note Solving requires both U and V to be computed. Thin U and V are enough, there is no need for full U or V.
+   *
+   * \note SVD solving is implicitly least - squares. Thus, this method serves both purposes of exact solving and least - squares solving.
+   * In other words, the returned solution is guaranteed to minimize the Euclidean norm \f$ \Vert A x - b \Vert \f$.
+   */
+  template<typename Rhs>
+  inline const internal::solve_retval<BDCSVD, Rhs>
+  solve(const MatrixBase<Rhs>& b) const
+  {
+    eigen_assert(this->m_isInitialized && "BDCSVD is not initialized.");
+    eigen_assert(SVDBase<_MatrixType>::computeU() && SVDBase<_MatrixType>::computeV() && 
+		 "BDCSVD::solve() requires both unitaries U and V to be computed (thin unitaries suffice).");
+    return internal::solve_retval<BDCSVD, Rhs>(*this, b.derived());
+  }
+
+ 
+  const MatrixUType& matrixU() const
+  {
+    eigen_assert(this->m_isInitialized && "SVD is not initialized.");
+    if (isTranspose){
+      eigen_assert(this->computeV() && "This SVD decomposition didn't compute U. Did you ask for it?");
+      return this->m_matrixV;
+    }
+    else 
+    {
+      eigen_assert(this->computeU() && "This SVD decomposition didn't compute U. Did you ask for it?");
+      return this->m_matrixU;
+    }
+     
+  }
+
+
+  const MatrixVType& matrixV() const
+  {
+    eigen_assert(this->m_isInitialized && "SVD is not initialized.");
+    if (isTranspose){
+      eigen_assert(this->computeU() && "This SVD decomposition didn't compute V. Did you ask for it?");
+      return this->m_matrixU;
+    }
+    else
+    {
+      eigen_assert(this->computeV() && "This SVD decomposition didn't compute V. Did you ask for it?");
+      return this->m_matrixV;
+    }
+  }
+ 
+private:
+  void allocate(Index rows, Index cols, unsigned int computationOptions);
+  void divide (Index firstCol, Index lastCol, Index firstRowW, 
+	       Index firstColW, Index shift);
+  void deflation43(Index firstCol, Index shift, Index i, Index size);
+  void deflation44(Index firstColu , Index firstColm, Index firstRowW, Index firstColW, Index i, Index j, Index size);
+  void deflation(Index firstCol, Index lastCol, Index k, Index firstRowW, Index firstColW, Index shift);
+  void copyUV(MatrixXr naiveU, MatrixXr naiveV, MatrixX householderU, MatrixX houseHolderV);
+
+protected:
+  MatrixXr m_naiveU, m_naiveV;
+  MatrixXr m_computed;
+  Index nRec;
+  int algoswap;
+  bool isTranspose, compU, compV;
+  
+}; //end class BDCSVD
+
+
+// Methode to allocate ans initialize matrix and attributs
+template<typename MatrixType>
+void BDCSVD<MatrixType>::allocate(Index rows, Index cols, unsigned int computationOptions)
+{
+  isTranspose = (cols > rows);
+  if (SVDBase<MatrixType>::allocate(rows, cols, computationOptions)) return;
+  m_computed = MatrixXr::Zero(this->m_diagSize + 1, this->m_diagSize );
+  if (isTranspose){
+    compU = this->computeU();
+    compV = this->computeV();    
+  } 
+  else
+  {
+    compV = this->computeU();
+    compU = this->computeV();   
+  }
+  if (compU) m_naiveU = MatrixXr::Zero(this->m_diagSize + 1, this->m_diagSize + 1 );
+  else m_naiveU = MatrixXr::Zero(2, this->m_diagSize + 1 );
+  
+  if (compV) m_naiveV = MatrixXr::Zero(this->m_diagSize, this->m_diagSize);
+  
+
+  //should be changed for a cleaner implementation
+  if (isTranspose){
+    bool aux;
+    if (this->computeU()||this->computeV()){
+      aux = this->m_computeFullU;
+      this->m_computeFullU = this->m_computeFullV;
+      this->m_computeFullV = aux;
+      aux = this->m_computeThinU;
+      this->m_computeThinU = this->m_computeThinV;
+      this->m_computeThinV = aux;
+    } 
+  }
+}// end allocate
+
+// Methode which compute the BDCSVD for the int
+template<>
+SVDBase<Matrix<int, Dynamic, Dynamic> >&
+BDCSVD<Matrix<int, Dynamic, Dynamic> >::compute(const MatrixType& matrix, unsigned int computationOptions) {
+  allocate(matrix.rows(), matrix.cols(), computationOptions);
+  this->m_nonzeroSingularValues = 0;
+  m_computed = Matrix<int, Dynamic, Dynamic>::Zero(rows(), cols());
+  for (int i=0; i<this->m_diagSize; i++)   {
+    this->m_singularValues.coeffRef(i) = 0;
+  }
+  if (this->m_computeFullU) this->m_matrixU = Matrix<int, Dynamic, Dynamic>::Zero(rows(), rows());
+  if (this->m_computeFullV) this->m_matrixV = Matrix<int, Dynamic, Dynamic>::Zero(cols(), cols()); 
+  this->m_isInitialized = true;
+  return *this;
+}
+
+
+// Methode which compute the BDCSVD
+template<typename MatrixType>
+SVDBase<MatrixType>&
+BDCSVD<MatrixType>::compute(const MatrixType& matrix, unsigned int computationOptions) 
+{
+  allocate(matrix.rows(), matrix.cols(), computationOptions);
+  using std::abs;
+
+  //**** step 1 Bidiagonalization  isTranspose = (matrix.cols()>matrix.rows()) ;
+  MatrixType copy;
+  if (isTranspose) copy = matrix.adjoint();
+  else copy = matrix;
+  
+  internal::UpperBidiagonalization<MatrixX > bid(copy);
+
+  //**** step 2 Divide
+  // this is ugly and has to be redone (care of complex cast)
+  MatrixXr temp;
+  temp = bid.bidiagonal().toDenseMatrix().transpose();
+  m_computed.setZero();
+  for (int i=0; i<this->m_diagSize - 1; i++)   {
+    m_computed(i, i) = temp(i, i);
+    m_computed(i + 1, i) = temp(i + 1, i);
+  }
+  m_computed(this->m_diagSize - 1, this->m_diagSize - 1) = temp(this->m_diagSize - 1, this->m_diagSize - 1);
+  divide(0, this->m_diagSize - 1, 0, 0, 0);
+
+  //**** step 3 copy
+  for (int i=0; i<this->m_diagSize; i++)   {
+    RealScalar a = abs(m_computed.coeff(i, i));
+    this->m_singularValues.coeffRef(i) = a;
+    if (a == 0){
+      this->m_nonzeroSingularValues = i;
+      break;
+    }
+    else  if (i == this->m_diagSize - 1)
+    {
+      this->m_nonzeroSingularValues = i + 1;
+      break;
+    }
+  }
+  copyUV(m_naiveV, m_naiveU, bid.householderU(), bid.householderV());
+  this->m_isInitialized = true;
+  return *this;
+}// end compute
+
+
+template<typename MatrixType>
+void BDCSVD<MatrixType>::copyUV(MatrixXr naiveU, MatrixXr naiveV, MatrixX householderU, MatrixX householderV){
+  if (this->computeU()){
+    MatrixX temp = MatrixX::Zero(naiveU.rows(), naiveU.cols());
+    temp.real() = naiveU;
+    if (this->m_computeThinU){
+      this->m_matrixU = MatrixX::Identity(householderU.cols(), this->m_nonzeroSingularValues );
+      this->m_matrixU.block(0, 0, this->m_diagSize, this->m_nonzeroSingularValues) = 
+	temp.block(0, 0, this->m_diagSize, this->m_nonzeroSingularValues);
+      this->m_matrixU = householderU * this->m_matrixU ;
+    }
+    else
+    {
+      this->m_matrixU = MatrixX::Identity(householderU.cols(), householderU.cols());
+      this->m_matrixU.block(0, 0, this->m_diagSize, this->m_diagSize) = temp.block(0, 0, this->m_diagSize, this->m_diagSize);
+      this->m_matrixU = householderU * this->m_matrixU ;
+    }
+  }
+  if (this->computeV()){
+    MatrixX temp = MatrixX::Zero(naiveV.rows(), naiveV.cols());
+    temp.real() = naiveV;
+    if (this->m_computeThinV){
+      this->m_matrixV = MatrixX::Identity(householderV.cols(),this->m_nonzeroSingularValues );
+      this->m_matrixV.block(0, 0, this->m_nonzeroSingularValues, this->m_nonzeroSingularValues) = 
+	temp.block(0, 0, this->m_nonzeroSingularValues, this->m_nonzeroSingularValues);
+      this->m_matrixV = householderV * this->m_matrixV ;
+    }
+    else  
+    {
+      this->m_matrixV = MatrixX::Identity(householderV.cols(), householderV.cols());
+      this->m_matrixV.block(0, 0, this->m_diagSize, this->m_diagSize) = temp.block(0, 0, this->m_diagSize, this->m_diagSize);
+      this->m_matrixV = householderV * this->m_matrixV;
+    }
+  }
+}
+
+// The divide algorithm is done "in place", we are always working on subsets of the same matrix. The divide methods takes as argument the 
+// place of the submatrix we are currently working on.
+
+//@param firstCol : The Index of the first column of the submatrix of m_computed and for m_naiveU;
+//@param lastCol : The Index of the last column of the submatrix of m_computed and for m_naiveU; 
+// lastCol + 1 - firstCol is the size of the submatrix.
+//@param firstRowW : The Index of the first row of the matrix W that we are to change. (see the reference paper section 1 for more information on W)
+//@param firstRowW : Same as firstRowW with the column.
+//@param shift : Each time one takes the left submatrix, one must add 1 to the shift. Why? Because! We actually want the last column of the U submatrix 
+// to become the first column (*coeff) and to shift all the other columns to the right. There are more details on the reference paper.
+template<typename MatrixType>
+void BDCSVD<MatrixType>::divide (Index firstCol, Index lastCol, Index firstRowW, 
+				 Index firstColW, Index shift)
+{
+  // requires nbRows = nbCols + 1;
+  using std::pow;
+  using std::sqrt;
+  using std::abs;
+  const Index n = lastCol - firstCol + 1;
+  const Index k = n/2;
+  RealScalar alphaK;
+  RealScalar betaK; 
+  RealScalar r0; 
+  RealScalar lambda, phi, c0, s0;
+  MatrixXr l, f;
+  // We use the other algorithm which is more efficient for small 
+  // matrices.
+  if (n < algoswap){
+    JacobiSVD<MatrixXr> b(m_computed.block(firstCol, firstCol, n + 1, n), 
+			  ComputeFullU | (ComputeFullV * compV)) ;
+    if (compU) m_naiveU.block(firstCol, firstCol, n + 1, n + 1).real() << b.matrixU();
+    else 
+    {
+      m_naiveU.row(0).segment(firstCol, n + 1).real() << b.matrixU().row(0);
+      m_naiveU.row(1).segment(firstCol, n + 1).real() << b.matrixU().row(n);
+    }
+    if (compV) m_naiveV.block(firstRowW, firstColW, n, n).real() << b.matrixV();
+    m_computed.block(firstCol + shift, firstCol + shift, n + 1, n).setZero();
+    for (int i=0; i<n; i++)
+    {
+      m_computed(firstCol + shift + i, firstCol + shift +i) = b.singularValues().coeffRef(i);
+    }
+    return;
+  }
+  // We use the divide and conquer algorithm
+  alphaK =  m_computed(firstCol + k, firstCol + k);
+  betaK = m_computed(firstCol + k + 1, firstCol + k);
+  // The divide must be done in that order in order to have good results. Divide change the data inside the submatrices
+  // and the divide of the right submatrice reads one column of the left submatrice. That's why we need to treat the 
+  // right submatrix before the left one. 
+  divide(k + 1 + firstCol, lastCol, k + 1 + firstRowW, k + 1 + firstColW, shift);
+  divide(firstCol, k - 1 + firstCol, firstRowW, firstColW + 1, shift + 1);
+  if (compU)
+  {
+    lambda = m_naiveU(firstCol + k, firstCol + k);
+    phi = m_naiveU(firstCol + k + 1, lastCol + 1);
+  } 
+  else 
+  {
+    lambda = m_naiveU(1, firstCol + k);
+    phi = m_naiveU(0, lastCol + 1);
+  }
+  r0 = sqrt((abs(alphaK * lambda) * abs(alphaK * lambda))
+	    + abs(betaK * phi) * abs(betaK * phi));
+  if (compU)
+  {
+    l = m_naiveU.row(firstCol + k).segment(firstCol, k);
+    f = m_naiveU.row(firstCol + k + 1).segment(firstCol + k + 1, n - k - 1);
+  } 
+  else 
+  {
+    l = m_naiveU.row(1).segment(firstCol, k);
+    f = m_naiveU.row(0).segment(firstCol + k + 1, n - k - 1);
+  }
+  if (compV) m_naiveV(firstRowW+k, firstColW) = 1;
+  if (r0 == 0)
+  {
+    c0 = 1;
+    s0 = 0;
+  }
+  else
+  {
+    c0 = alphaK * lambda / r0;
+    s0 = betaK * phi / r0;
+  }
+  if (compU)
+  {
+    MatrixXr q1 (m_naiveU.col(firstCol + k).segment(firstCol, k + 1));     
+    // we shiftW Q1 to the right
+    for (Index i = firstCol + k - 1; i >= firstCol; i--) 
+    {
+      m_naiveU.col(i + 1).segment(firstCol, k + 1) << m_naiveU.col(i).segment(firstCol, k + 1);
+    }
+    // we shift q1 at the left with a factor c0
+    m_naiveU.col(firstCol).segment( firstCol, k + 1) << (q1 * c0);
+    // last column = q1 * - s0
+    m_naiveU.col(lastCol + 1).segment(firstCol, k + 1) << (q1 * ( - s0));
+    // first column = q2 * s0
+    m_naiveU.col(firstCol).segment(firstCol + k + 1, n - k) << 
+      m_naiveU.col(lastCol + 1).segment(firstCol + k + 1, n - k) *s0; 
+    // q2 *= c0
+    m_naiveU.col(lastCol + 1).segment(firstCol + k + 1, n - k) *= c0; 
+  } 
+  else 
+  {
+    RealScalar q1 = (m_naiveU(0, firstCol + k));
+    // we shift Q1 to the right
+    for (Index i = firstCol + k - 1; i >= firstCol; i--) 
+    {
+      m_naiveU(0, i + 1) = m_naiveU(0, i);
+    }
+    // we shift q1 at the left with a factor c0
+    m_naiveU(0, firstCol) = (q1 * c0);
+    // last column = q1 * - s0
+    m_naiveU(0, lastCol + 1) = (q1 * ( - s0));
+    // first column = q2 * s0
+    m_naiveU(1, firstCol) = m_naiveU(1, lastCol + 1) *s0; 
+    // q2 *= c0
+    m_naiveU(1, lastCol + 1) *= c0;
+    m_naiveU.row(1).segment(firstCol + 1, k).setZero();
+    m_naiveU.row(0).segment(firstCol + k + 1, n - k - 1).setZero();
+  }
+  m_computed(firstCol + shift, firstCol + shift) = r0;
+  m_computed.col(firstCol + shift).segment(firstCol + shift + 1, k) << alphaK * l.transpose().real();
+  m_computed.col(firstCol + shift).segment(firstCol + shift + k + 1, n - k - 1) << betaK * f.transpose().real();
+
+
+  // the line below do the deflation of the matrix for the third part of the algorithm
+  // Here the deflation is commented because the third part of the algorithm is not implemented
+  // the third part of the algorithm is a fast SVD on the matrix m_computed which works thanks to the deflation
+
+  deflation(firstCol, lastCol, k, firstRowW, firstColW, shift);
+
+  // Third part of the algorithm, since the real third part of the algorithm is not implemeted we use a JacobiSVD
+  JacobiSVD<MatrixXr> res= JacobiSVD<MatrixXr>(m_computed.block(firstCol + shift, firstCol +shift, n + 1, n), 
+					       ComputeFullU | (ComputeFullV * compV)) ;
+  if (compU) m_naiveU.block(firstCol, firstCol, n + 1, n + 1) *= res.matrixU();
+  else m_naiveU.block(0, firstCol, 2, n + 1) *= res.matrixU();
+  
+  if (compV) m_naiveV.block(firstRowW, firstColW, n, n) *= res.matrixV();
+  m_computed.block(firstCol + shift, firstCol + shift, n, n) << MatrixXr::Zero(n, n);
+  for (int i=0; i<n; i++)
+    m_computed(firstCol + shift + i, firstCol + shift +i) = res.singularValues().coeffRef(i);
+  // end of the third part
+
+
+}// end divide
+
+
+// page 12_13
+// i >= 1, di almost null and zi non null.
+// We use a rotation to zero out zi applied to the left of M
+template <typename MatrixType>
+void BDCSVD<MatrixType>::deflation43(Index firstCol, Index shift, Index i, Index size){
+  using std::abs;
+  using std::sqrt;
+  using std::pow;
+  RealScalar c = m_computed(firstCol + shift, firstCol + shift);
+  RealScalar s = m_computed(i, firstCol + shift);
+  RealScalar r = sqrt(pow(abs(c), 2) + pow(abs(s), 2));
+  if (r == 0){
+    m_computed(i, i)=0;
+    return;
+  }
+  c/=r;
+  s/=r;
+  m_computed(firstCol + shift, firstCol + shift) = r;  
+  m_computed(i, firstCol + shift) = 0;
+  m_computed(i, i) = 0;
+  if (compU){
+    m_naiveU.col(firstCol).segment(firstCol,size) = 
+      c * m_naiveU.col(firstCol).segment(firstCol, size) - 
+      s * m_naiveU.col(i).segment(firstCol, size) ;
+
+    m_naiveU.col(i).segment(firstCol, size) = 
+      (c + s*s/c) * m_naiveU.col(i).segment(firstCol, size) + 
+      (s/c) * m_naiveU.col(firstCol).segment(firstCol,size);
+  }
+}// end deflation 43
+
+
+// page 13
+// i,j >= 1, i != j and |di - dj| < epsilon * norm2(M)
+// We apply two rotations to have zj = 0;
+template <typename MatrixType>
+void BDCSVD<MatrixType>::deflation44(Index firstColu , Index firstColm, Index firstRowW, Index firstColW, Index i, Index j, Index size){
+  using std::abs;
+  using std::sqrt;
+  using std::conj;
+  using std::pow;
+  RealScalar c = m_computed(firstColm, firstColm + j - 1);
+  RealScalar s = m_computed(firstColm, firstColm + i - 1);
+  RealScalar r = sqrt(pow(abs(c), 2) + pow(abs(s), 2));
+  if (r==0){
+    m_computed(firstColm + i, firstColm + i) = m_computed(firstColm + j, firstColm + j);
+    return;
+  }
+  c/=r;
+  s/=r;
+  m_computed(firstColm + i, firstColm) = r;  
+  m_computed(firstColm + i, firstColm + i) = m_computed(firstColm + j, firstColm + j);
+  m_computed(firstColm + j, firstColm) = 0;
+  if (compU){
+    m_naiveU.col(firstColu + i).segment(firstColu, size) = 
+      c * m_naiveU.col(firstColu + i).segment(firstColu, size) - 
+      s * m_naiveU.col(firstColu + j).segment(firstColu, size) ;
+
+    m_naiveU.col(firstColu + j).segment(firstColu, size) = 
+      (c + s*s/c) *  m_naiveU.col(firstColu + j).segment(firstColu, size) + 
+      (s/c) * m_naiveU.col(firstColu + i).segment(firstColu, size);
+  } 
+  if (compV){
+    m_naiveV.col(firstColW + i).segment(firstRowW, size - 1) = 
+      c * m_naiveV.col(firstColW + i).segment(firstRowW, size - 1) + 
+      s * m_naiveV.col(firstColW + j).segment(firstRowW, size - 1) ;
+
+    m_naiveV.col(firstColW + j).segment(firstRowW, size - 1)  = 
+      (c + s*s/c) * m_naiveV.col(firstColW + j).segment(firstRowW, size - 1) - 
+      (s/c) * m_naiveV.col(firstColW + i).segment(firstRowW, size - 1);
+  }
+}// end deflation 44
+
+
+
+template <typename MatrixType>
+void BDCSVD<MatrixType>::deflation(Index firstCol, Index lastCol, Index k, Index firstRowW, Index firstColW, Index shift){
+  //condition 4.1
+  RealScalar EPS = EPSILON * (std::max<RealScalar>(m_computed(firstCol + shift + 1, firstCol + shift + 1), m_computed(firstCol + k, firstCol + k)));
+  const Index length = lastCol + 1 - firstCol;
+  if (m_computed(firstCol + shift, firstCol + shift) < EPS){
+    m_computed(firstCol + shift, firstCol + shift) = EPS;
+  }
+  //condition 4.2
+  for (Index i=firstCol + shift + 1;i<=lastCol + shift;i++){
+    if (std::abs(m_computed(i, firstCol + shift)) < EPS){
+      m_computed(i, firstCol + shift) = 0;
+    }
+  }
+
+  //condition 4.3
+  for (Index i=firstCol + shift + 1;i<=lastCol + shift; i++){
+    if (m_computed(i, i) < EPS){
+      deflation43(firstCol, shift, i, length);
+    }
+  }
+
+  //condition 4.4
+ 
+  Index i=firstCol + shift + 1, j=firstCol + shift + k + 1;
+  //we stock the final place of each line
+  Index *permutation = new Index[length];
+
+  for (Index p =1; p < length; p++) {
+    if (i> firstCol + shift + k){
+      permutation[p] = j;
+      j++;
+    } else if (j> lastCol + shift) 
+    {
+      permutation[p] = i;
+      i++;
+    }
+    else 
+    {
+      if (m_computed(i, i) < m_computed(j, j)){
+        permutation[p] = j;
+        j++;
+      } 
+      else
+      {
+        permutation[p] = i;
+        i++;
+      }
+    }
+  }
+  //we do the permutation
+  RealScalar aux;
+  //we stock the current index of each col
+  //and the column of each index
+  Index *realInd = new Index[length];
+  Index *realCol = new Index[length];
+  for (int pos = 0; pos< length; pos++){
+    realCol[pos] = pos + firstCol + shift;
+    realInd[pos] = pos;
+  }
+  const Index Zero = firstCol + shift;
+  VectorType temp;
+  for (int i = 1; i < length - 1; i++){
+    const Index I = i + Zero;
+    const Index realI = realInd[i];
+    const Index j  = permutation[length - i] - Zero;
+    const Index J = realCol[j];
+    
+    //diag displace
+    aux = m_computed(I, I); 
+    m_computed(I, I) = m_computed(J, J);
+    m_computed(J, J) = aux;
+    
+    //firstrow displace
+    aux = m_computed(I, Zero); 
+    m_computed(I, Zero) = m_computed(J, Zero);
+    m_computed(J, Zero) = aux;
+
+    // change columns
+    if (compU) {
+      temp = m_naiveU.col(I - shift).segment(firstCol, length + 1);
+      m_naiveU.col(I - shift).segment(firstCol, length + 1) << 
+        m_naiveU.col(J - shift).segment(firstCol, length + 1);
+      m_naiveU.col(J - shift).segment(firstCol, length + 1) << temp;
+    } 
+    else
+    {
+      temp = m_naiveU.col(I - shift).segment(0, 2);
+      m_naiveU.col(I - shift).segment(0, 2) << 
+        m_naiveU.col(J - shift).segment(0, 2);
+      m_naiveU.col(J - shift).segment(0, 2) << temp;      
+    }
+    if (compV) {
+      const Index CWI = I + firstColW - Zero;
+      const Index CWJ = J + firstColW - Zero;
+      temp = m_naiveV.col(CWI).segment(firstRowW, length);
+      m_naiveV.col(CWI).segment(firstRowW, length) << m_naiveV.col(CWJ).segment(firstRowW, length);
+      m_naiveV.col(CWJ).segment(firstRowW, length) << temp;
+    }
+
+    //update real pos
+    realCol[realI] = J;
+    realCol[j] = I;
+    realInd[J - Zero] = realI;
+    realInd[I - Zero] = j;
+  }
+  for (Index i = firstCol + shift + 1; i<lastCol + shift;i++){
+    if ((m_computed(i + 1, i + 1) - m_computed(i, i)) < EPS){
+      deflation44(firstCol , 
+		  firstCol + shift, 
+		  firstRowW, 
+		  firstColW, 
+		  i - Zero, 
+		  i + 1 - Zero, 
+		  length);
+    }
+  }
+  delete [] permutation;
+  delete [] realInd;
+  delete [] realCol;
+
+}//end deflation
+
+
+namespace internal{
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<BDCSVD<_MatrixType>, Rhs>
+  : solve_retval_base<BDCSVD<_MatrixType>, Rhs>
+{
+  typedef BDCSVD<_MatrixType> BDCSVDType;
+  EIGEN_MAKE_SOLVE_HELPERS(BDCSVDType, Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    eigen_assert(rhs().rows() == dec().rows());
+    // A = U S V^*
+    // So A^{ - 1} = V S^{ - 1} U^*    
+    Index diagSize = (std::min)(dec().rows(), dec().cols());
+    typename BDCSVDType::SingularValuesType invertedSingVals(diagSize);
+    Index nonzeroSingVals = dec().nonzeroSingularValues();
+    invertedSingVals.head(nonzeroSingVals) = dec().singularValues().head(nonzeroSingVals).array().inverse();
+    invertedSingVals.tail(diagSize - nonzeroSingVals).setZero();
+    
+    dst = dec().matrixV().leftCols(diagSize)
+      * invertedSingVals.asDiagonal()
+      * dec().matrixU().leftCols(diagSize).adjoint()
+      * rhs();	
+    return;
+  }
+};
+
+} //end namespace internal
+
+  /** \svd_module
+   *
+   * \return the singular value decomposition of \c *this computed by 
+   *  BDC Algorithm
+   *
+   * \sa class BDCSVD
+   */
+/*
+template<typename Derived>
+BDCSVD<typename MatrixBase<Derived>::PlainObject>
+MatrixBase<Derived>::bdcSvd(unsigned int computationOptions) const
+{
+  return BDCSVD<PlainObject>(*this, computationOptions);
+}
+*/
+
+} // end namespace Eigen
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/SVDBase.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/SVDBase.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/SVDBase.h	(revision 2476)
@@ -0,0 +1,236 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
+//
+// Copyright (C) 2013 Gauthier Brun <brun.gauthier@gmail.com>
+// Copyright (C) 2013 Nicolas Carre <nicolas.carre@ensimag.fr>
+// Copyright (C) 2013 Jean Ceccato <jean.ceccato@ensimag.fr>
+// Copyright (C) 2013 Pierre Zoppitelli <pierre.zoppitelli@ensimag.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SVD_H
+#define EIGEN_SVD_H
+
+namespace Eigen {
+/** \ingroup SVD_Module
+ *
+ *
+ * \class SVDBase
+ *
+ * \brief Mother class of SVD classes algorithms
+ *
+ * \param MatrixType the type of the matrix of which we are computing the SVD decomposition
+ * SVD decomposition consists in decomposing any n-by-p matrix \a A as a product
+ *   \f[ A = U S V^* \f]
+ * where \a U is a n-by-n unitary, \a V is a p-by-p unitary, and \a S is a n-by-p real positive matrix which is zero outside of its main diagonal;
+ * the diagonal entries of S are known as the \em singular \em values of \a A and the columns of \a U and \a V are known as the left
+ * and right \em singular \em vectors of \a A respectively.
+ *
+ * Singular values are always sorted in decreasing order.
+ *
+ * 
+ * You can ask for only \em thin \a U or \a V to be computed, meaning the following. In case of a rectangular n-by-p matrix, letting \a m be the
+ * smaller value among \a n and \a p, there are only \a m singular vectors; the remaining columns of \a U and \a V do not correspond to actual
+ * singular vectors. Asking for \em thin \a U or \a V means asking for only their \a m first columns to be formed. So \a U is then a n-by-m matrix,
+ * and \a V is then a p-by-m matrix. Notice that thin \a U and \a V are all you need for (least squares) solving.
+ *  
+ * If the input matrix has inf or nan coefficients, the result of the computation is undefined, but the computation is guaranteed to
+ * terminate in finite (and reasonable) time.
+ * \sa MatrixBase::genericSvd()
+ */
+template<typename _MatrixType> 
+class SVDBase
+{
+
+public:
+  typedef _MatrixType MatrixType;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
+  typedef typename MatrixType::Index Index;
+  enum {
+    RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+    ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+    DiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime,ColsAtCompileTime),
+    MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+    MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
+    MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_FIXED(MaxRowsAtCompileTime,MaxColsAtCompileTime),
+    MatrixOptions = MatrixType::Options
+  };
+
+  typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime,
+		 MatrixOptions, MaxRowsAtCompileTime, MaxRowsAtCompileTime>
+  MatrixUType;
+  typedef Matrix<Scalar, ColsAtCompileTime, ColsAtCompileTime,
+		 MatrixOptions, MaxColsAtCompileTime, MaxColsAtCompileTime>
+  MatrixVType;
+  typedef typename internal::plain_diag_type<MatrixType, RealScalar>::type SingularValuesType;
+  typedef typename internal::plain_row_type<MatrixType>::type RowType;
+  typedef typename internal::plain_col_type<MatrixType>::type ColType;
+  typedef Matrix<Scalar, DiagSizeAtCompileTime, DiagSizeAtCompileTime,
+		 MatrixOptions, MaxDiagSizeAtCompileTime, MaxDiagSizeAtCompileTime>
+  WorkMatrixType;
+	
+
+
+
+  /** \brief Method performing the decomposition of given matrix using custom options.
+   *
+   * \param matrix the matrix to decompose
+   * \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
+   *                           By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU,
+   *                           #ComputeFullV, #ComputeThinV.
+   *
+   * Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
+   * available with the (non-default) FullPivHouseholderQR preconditioner.
+   */
+  SVDBase& compute(const MatrixType& matrix, unsigned int computationOptions);
+
+  /** \brief Method performing the decomposition of given matrix using current options.
+   *
+   * \param matrix the matrix to decompose
+   *
+   * This method uses the current \a computationOptions, as already passed to the constructor or to compute(const MatrixType&, unsigned int).
+   */
+  //virtual SVDBase& compute(const MatrixType& matrix) = 0;
+  SVDBase& compute(const MatrixType& matrix);
+
+  /** \returns the \a U matrix.
+   *
+   * For the SVDBase decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
+   * the U matrix is n-by-n if you asked for #ComputeFullU, and is n-by-m if you asked for #ComputeThinU.
+   *
+   * The \a m first columns of \a U are the left singular vectors of the matrix being decomposed.
+   *
+   * This method asserts that you asked for \a U to be computed.
+   */
+  const MatrixUType& matrixU() const
+  {
+    eigen_assert(m_isInitialized && "SVD is not initialized.");
+    eigen_assert(computeU() && "This SVD decomposition didn't compute U. Did you ask for it?");
+    return m_matrixU;
+  }
+
+  /** \returns the \a V matrix.
+   *
+   * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
+   * the V matrix is p-by-p if you asked for #ComputeFullV, and is p-by-m if you asked for ComputeThinV.
+   *
+   * The \a m first columns of \a V are the right singular vectors of the matrix being decomposed.
+   *
+   * This method asserts that you asked for \a V to be computed.
+   */
+  const MatrixVType& matrixV() const
+  {
+    eigen_assert(m_isInitialized && "SVD is not initialized.");
+    eigen_assert(computeV() && "This SVD decomposition didn't compute V. Did you ask for it?");
+    return m_matrixV;
+  }
+
+  /** \returns the vector of singular values.
+   *
+   * For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p, the
+   * returned vector has size \a m.  Singular values are always sorted in decreasing order.
+   */
+  const SingularValuesType& singularValues() const
+  {
+    eigen_assert(m_isInitialized && "SVD is not initialized.");
+    return m_singularValues;
+  }
+
+  
+
+  /** \returns the number of singular values that are not exactly 0 */
+  Index nonzeroSingularValues() const
+  {
+    eigen_assert(m_isInitialized && "SVD is not initialized.");
+    return m_nonzeroSingularValues;
+  }
+
+
+  /** \returns true if \a U (full or thin) is asked for in this SVD decomposition */
+  inline bool computeU() const { return m_computeFullU || m_computeThinU; }
+  /** \returns true if \a V (full or thin) is asked for in this SVD decomposition */
+  inline bool computeV() const { return m_computeFullV || m_computeThinV; }
+
+
+  inline Index rows() const { return m_rows; }
+  inline Index cols() const { return m_cols; }
+
+
+protected:
+  // return true if already allocated
+  bool allocate(Index rows, Index cols, unsigned int computationOptions) ;
+
+  MatrixUType m_matrixU;
+  MatrixVType m_matrixV;
+  SingularValuesType m_singularValues;
+  bool m_isInitialized, m_isAllocated;
+  bool m_computeFullU, m_computeThinU;
+  bool m_computeFullV, m_computeThinV;
+  unsigned int m_computationOptions;
+  Index m_nonzeroSingularValues, m_rows, m_cols, m_diagSize;
+
+
+  /** \brief Default Constructor.
+   *
+   * Default constructor of SVDBase
+   */
+  SVDBase()
+    : m_isInitialized(false),
+      m_isAllocated(false),
+      m_computationOptions(0),
+      m_rows(-1), m_cols(-1)
+  {}
+
+
+};
+
+
+template<typename MatrixType>
+bool SVDBase<MatrixType>::allocate(Index rows, Index cols, unsigned int computationOptions)
+{
+  eigen_assert(rows >= 0 && cols >= 0);
+
+  if (m_isAllocated &&
+      rows == m_rows &&
+      cols == m_cols &&
+      computationOptions == m_computationOptions)
+  {
+    return true;
+  }
+
+  m_rows = rows;
+  m_cols = cols;
+  m_isInitialized = false;
+  m_isAllocated = true;
+  m_computationOptions = computationOptions;
+  m_computeFullU = (computationOptions & ComputeFullU) != 0;
+  m_computeThinU = (computationOptions & ComputeThinU) != 0;
+  m_computeFullV = (computationOptions & ComputeFullV) != 0;
+  m_computeThinV = (computationOptions & ComputeThinV) != 0;
+  eigen_assert(!(m_computeFullU && m_computeThinU) && "SVDBase: you can't ask for both full and thin U");
+  eigen_assert(!(m_computeFullV && m_computeThinV) && "SVDBase: you can't ask for both full and thin V");
+  eigen_assert(EIGEN_IMPLIES(m_computeThinU || m_computeThinV, MatrixType::ColsAtCompileTime==Dynamic) &&
+	       "SVDBase: thin U and V are only available when your matrix has a dynamic number of columns.");
+
+  m_diagSize = (std::min)(m_rows, m_cols);
+  m_singularValues.resize(m_diagSize);
+  if(RowsAtCompileTime==Dynamic)
+    m_matrixU.resize(m_rows, m_computeFullU ? m_rows
+		     : m_computeThinU ? m_diagSize
+		     : 0);
+  if(ColsAtCompileTime==Dynamic)
+    m_matrixV.resize(m_cols, m_computeFullV ? m_cols
+		     : m_computeThinV ? m_diagSize
+		     : 0);
+
+  return false;
+}
+
+}// end namespace
+
+#endif // EIGEN_SVD_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/doneInBDCSVD.txt
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/doneInBDCSVD.txt	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/doneInBDCSVD.txt	(revision 2476)
@@ -0,0 +1,21 @@
+This unsupported package is about a divide and conquer algorithm to compute SVD.
+
+The implementation follows as closely as possible the following reference paper : 
+http://www.cs.yale.edu/publications/techreports/tr933.pdf
+
+The code documentation uses the same names for variables as the reference paper. The code, deflation included, is
+working  but there are a few things that could be optimised as explained in the TODOBdsvd. 
+
+In the code comments were put at the line where would be the third step of the algorithm so one could simply add the call 
+of a function doing the last part of the algorithm and that would not require any knowledge of the part we implemented.
+
+In the TODOBdcsvd we explain what is the main difficulty of the last part and suggest a reference paper to help solve it.
+
+The implemented has trouble with fixed size matrices. 
+
+In the actual implementation, it returns matrices of zero when ask to do a svd on an int matrix. 
+
+
+Paper for the third part:
+http://www.stat.uchicago.edu/~lekheng/courses/302/classics/greengard-rokhlin.pdf
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SVD/doneInBDCSVD.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h	(revision 2476)
@@ -0,0 +1,451 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009, 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
+// Copyright (C) 2011 Chen-Pang He <jdh8@ms63.hinet.net>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIX_EXPONENTIAL
+#define EIGEN_MATRIX_EXPONENTIAL
+
+#include "StemFunction.h"
+
+namespace Eigen {
+
+/** \ingroup MatrixFunctions_Module
+  * \brief Class for computing the matrix exponential.
+  * \tparam MatrixType type of the argument of the exponential,
+  * expected to be an instantiation of the Matrix class template.
+  */
+template <typename MatrixType>
+class MatrixExponential {
+
+  public:
+
+    /** \brief Constructor.
+      * 
+      * The class stores a reference to \p M, so it should not be
+      * changed (or destroyed) before compute() is called.
+      *
+      * \param[in] M  matrix whose exponential is to be computed.
+      */
+    MatrixExponential(const MatrixType &M);
+
+    /** \brief Computes the matrix exponential.
+      *
+      * \param[out] result  the matrix exponential of \p M in the constructor.
+      */
+    template <typename ResultType> 
+    void compute(ResultType &result);
+
+  private:
+
+    // Prevent copying
+    MatrixExponential(const MatrixExponential&);
+    MatrixExponential& operator=(const MatrixExponential&);
+
+    /** \brief Compute the (3,3)-Pad&eacute; approximant to the exponential.
+     *
+     *  After exit, \f$ (V+U)(V-U)^{-1} \f$ is the Pad&eacute;
+     *  approximant of \f$ \exp(A) \f$ around \f$ A = 0 \f$.
+     *
+     *  \param[in] A   Argument of matrix exponential
+     */
+    void pade3(const MatrixType &A);
+
+    /** \brief Compute the (5,5)-Pad&eacute; approximant to the exponential.
+     *
+     *  After exit, \f$ (V+U)(V-U)^{-1} \f$ is the Pad&eacute;
+     *  approximant of \f$ \exp(A) \f$ around \f$ A = 0 \f$.
+     *
+     *  \param[in] A   Argument of matrix exponential
+     */
+    void pade5(const MatrixType &A);
+
+    /** \brief Compute the (7,7)-Pad&eacute; approximant to the exponential.
+     *
+     *  After exit, \f$ (V+U)(V-U)^{-1} \f$ is the Pad&eacute;
+     *  approximant of \f$ \exp(A) \f$ around \f$ A = 0 \f$.
+     *
+     *  \param[in] A   Argument of matrix exponential
+     */
+    void pade7(const MatrixType &A);
+
+    /** \brief Compute the (9,9)-Pad&eacute; approximant to the exponential.
+     *
+     *  After exit, \f$ (V+U)(V-U)^{-1} \f$ is the Pad&eacute;
+     *  approximant of \f$ \exp(A) \f$ around \f$ A = 0 \f$.
+     *
+     *  \param[in] A   Argument of matrix exponential
+     */
+    void pade9(const MatrixType &A);
+
+    /** \brief Compute the (13,13)-Pad&eacute; approximant to the exponential.
+     *
+     *  After exit, \f$ (V+U)(V-U)^{-1} \f$ is the Pad&eacute;
+     *  approximant of \f$ \exp(A) \f$ around \f$ A = 0 \f$.
+     *
+     *  \param[in] A   Argument of matrix exponential
+     */
+    void pade13(const MatrixType &A);
+
+    /** \brief Compute the (17,17)-Pad&eacute; approximant to the exponential.
+     *
+     *  After exit, \f$ (V+U)(V-U)^{-1} \f$ is the Pad&eacute;
+     *  approximant of \f$ \exp(A) \f$ around \f$ A = 0 \f$.
+     *
+     *  This function activates only if your long double is double-double or quadruple.
+     *
+     *  \param[in] A   Argument of matrix exponential
+     */
+    void pade17(const MatrixType &A);
+
+    /** \brief Compute Pad&eacute; approximant to the exponential.
+     *
+     * Computes \c m_U, \c m_V and \c m_squarings such that
+     * \f$ (V+U)(V-U)^{-1} \f$ is a Pad&eacute; of
+     * \f$ \exp(2^{-\mbox{squarings}}M) \f$ around \f$ M = 0 \f$. The
+     * degree of the Pad&eacute; approximant and the value of
+     * squarings are chosen such that the approximation error is no
+     * more than the round-off error.
+     *
+     * The argument of this function should correspond with the (real
+     * part of) the entries of \c m_M.  It is used to select the
+     * correct implementation using overloading.
+     */
+    void computeUV(double);
+
+    /** \brief Compute Pad&eacute; approximant to the exponential.
+     *
+     *  \sa computeUV(double);
+     */
+    void computeUV(float);
+    
+    /** \brief Compute Pad&eacute; approximant to the exponential.
+     *
+     *  \sa computeUV(double);
+     */
+    void computeUV(long double);
+
+    typedef typename internal::traits<MatrixType>::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename std::complex<RealScalar> ComplexScalar;
+
+    /** \brief Reference to matrix whose exponential is to be computed. */
+    typename internal::nested<MatrixType>::type m_M;
+
+    /** \brief Odd-degree terms in numerator of Pad&eacute; approximant. */
+    MatrixType m_U;
+
+    /** \brief Even-degree terms in numerator of Pad&eacute; approximant. */
+    MatrixType m_V;
+
+    /** \brief Used for temporary storage. */
+    MatrixType m_tmp1;
+
+    /** \brief Used for temporary storage. */
+    MatrixType m_tmp2;
+
+    /** \brief Identity matrix of the same size as \c m_M. */
+    MatrixType m_Id;
+
+    /** \brief Number of squarings required in the last step. */
+    int m_squarings;
+
+    /** \brief L1 norm of m_M. */
+    RealScalar m_l1norm;
+};
+
+template <typename MatrixType>
+MatrixExponential<MatrixType>::MatrixExponential(const MatrixType &M) :
+  m_M(M),
+  m_U(M.rows(),M.cols()),
+  m_V(M.rows(),M.cols()),
+  m_tmp1(M.rows(),M.cols()),
+  m_tmp2(M.rows(),M.cols()),
+  m_Id(MatrixType::Identity(M.rows(), M.cols())),
+  m_squarings(0),
+  m_l1norm(M.cwiseAbs().colwise().sum().maxCoeff())
+{
+  /* empty body */
+}
+
+template <typename MatrixType>
+template <typename ResultType> 
+void MatrixExponential<MatrixType>::compute(ResultType &result)
+{
+#if LDBL_MANT_DIG > 112 // rarely happens
+  if(sizeof(RealScalar) > 14) {
+    result = m_M.matrixFunction(StdStemFunctions<ComplexScalar>::exp);
+    return;
+  }
+#endif
+  computeUV(RealScalar());
+  m_tmp1 = m_U + m_V;   // numerator of Pade approximant
+  m_tmp2 = -m_U + m_V;  // denominator of Pade approximant
+  result = m_tmp2.partialPivLu().solve(m_tmp1);
+  for (int i=0; i<m_squarings; i++)
+    result *= result;   // undo scaling by repeated squaring
+}
+
+template <typename MatrixType>
+EIGEN_STRONG_INLINE void MatrixExponential<MatrixType>::pade3(const MatrixType &A)
+{
+  const RealScalar b[] = {120., 60., 12., 1.};
+  m_tmp1.noalias() = A * A;
+  m_tmp2 = b[3]*m_tmp1 + b[1]*m_Id;
+  m_U.noalias() = A * m_tmp2;
+  m_V = b[2]*m_tmp1 + b[0]*m_Id;
+}
+
+template <typename MatrixType>
+EIGEN_STRONG_INLINE void MatrixExponential<MatrixType>::pade5(const MatrixType &A)
+{
+  const RealScalar b[] = {30240., 15120., 3360., 420., 30., 1.};
+  MatrixType A2 = A * A;
+  m_tmp1.noalias() = A2 * A2;
+  m_tmp2 = b[5]*m_tmp1 + b[3]*A2 + b[1]*m_Id;
+  m_U.noalias() = A * m_tmp2;
+  m_V = b[4]*m_tmp1 + b[2]*A2 + b[0]*m_Id;
+}
+
+template <typename MatrixType>
+EIGEN_STRONG_INLINE void MatrixExponential<MatrixType>::pade7(const MatrixType &A)
+{
+  const RealScalar b[] = {17297280., 8648640., 1995840., 277200., 25200., 1512., 56., 1.};
+  MatrixType A2 = A * A;
+  MatrixType A4 = A2 * A2;
+  m_tmp1.noalias() = A4 * A2;
+  m_tmp2 = b[7]*m_tmp1 + b[5]*A4 + b[3]*A2 + b[1]*m_Id;
+  m_U.noalias() = A * m_tmp2;
+  m_V = b[6]*m_tmp1 + b[4]*A4 + b[2]*A2 + b[0]*m_Id;
+}
+
+template <typename MatrixType>
+EIGEN_STRONG_INLINE void MatrixExponential<MatrixType>::pade9(const MatrixType &A)
+{
+  const RealScalar b[] = {17643225600., 8821612800., 2075673600., 302702400., 30270240.,
+		      2162160., 110880., 3960., 90., 1.};
+  MatrixType A2 = A * A;
+  MatrixType A4 = A2 * A2;
+  MatrixType A6 = A4 * A2;
+  m_tmp1.noalias() = A6 * A2;
+  m_tmp2 = b[9]*m_tmp1 + b[7]*A6 + b[5]*A4 + b[3]*A2 + b[1]*m_Id;
+  m_U.noalias() = A * m_tmp2;
+  m_V = b[8]*m_tmp1 + b[6]*A6 + b[4]*A4 + b[2]*A2 + b[0]*m_Id;
+}
+
+template <typename MatrixType>
+EIGEN_STRONG_INLINE void MatrixExponential<MatrixType>::pade13(const MatrixType &A)
+{
+  const RealScalar b[] = {64764752532480000., 32382376266240000., 7771770303897600.,
+		      1187353796428800., 129060195264000., 10559470521600., 670442572800.,
+		      33522128640., 1323241920., 40840800., 960960., 16380., 182., 1.};
+  MatrixType A2 = A * A;
+  MatrixType A4 = A2 * A2;
+  m_tmp1.noalias() = A4 * A2;
+  m_V = b[13]*m_tmp1 + b[11]*A4 + b[9]*A2; // used for temporary storage
+  m_tmp2.noalias() = m_tmp1 * m_V;
+  m_tmp2 += b[7]*m_tmp1 + b[5]*A4 + b[3]*A2 + b[1]*m_Id;
+  m_U.noalias() = A * m_tmp2;
+  m_tmp2 = b[12]*m_tmp1 + b[10]*A4 + b[8]*A2;
+  m_V.noalias() = m_tmp1 * m_tmp2;
+  m_V += b[6]*m_tmp1 + b[4]*A4 + b[2]*A2 + b[0]*m_Id;
+}
+
+#if LDBL_MANT_DIG > 64
+template <typename MatrixType>
+EIGEN_STRONG_INLINE void MatrixExponential<MatrixType>::pade17(const MatrixType &A)
+{
+  const RealScalar b[] = {830034394580628357120000.L, 415017197290314178560000.L,
+		      100610229646136770560000.L, 15720348382208870400000.L,
+		      1774878043152614400000.L, 153822763739893248000.L, 10608466464820224000.L,
+		      595373117923584000.L, 27563570274240000.L, 1060137318240000.L,
+		      33924394183680.L, 899510451840.L, 19554575040.L, 341863200.L, 4651200.L,
+		      46512.L, 306.L, 1.L};
+  MatrixType A2 = A * A;
+  MatrixType A4 = A2 * A2;
+  MatrixType A6 = A4 * A2;
+  m_tmp1.noalias() = A4 * A4;
+  m_V = b[17]*m_tmp1 + b[15]*A6 + b[13]*A4 + b[11]*A2; // used for temporary storage
+  m_tmp2.noalias() = m_tmp1 * m_V;
+  m_tmp2 += b[9]*m_tmp1 + b[7]*A6 + b[5]*A4 + b[3]*A2 + b[1]*m_Id;
+  m_U.noalias() = A * m_tmp2;
+  m_tmp2 = b[16]*m_tmp1 + b[14]*A6 + b[12]*A4 + b[10]*A2;
+  m_V.noalias() = m_tmp1 * m_tmp2;
+  m_V += b[8]*m_tmp1 + b[6]*A6 + b[4]*A4 + b[2]*A2 + b[0]*m_Id;
+}
+#endif
+
+template <typename MatrixType>
+void MatrixExponential<MatrixType>::computeUV(float)
+{
+  using std::frexp;
+  using std::pow;
+  if (m_l1norm < 4.258730016922831e-001) {
+    pade3(m_M);
+  } else if (m_l1norm < 1.880152677804762e+000) {
+    pade5(m_M);
+  } else {
+    const float maxnorm = 3.925724783138660f;
+    frexp(m_l1norm / maxnorm, &m_squarings);
+    if (m_squarings < 0) m_squarings = 0;
+    MatrixType A = m_M / Scalar(pow(2, m_squarings));
+    pade7(A);
+  }
+}
+
+template <typename MatrixType>
+void MatrixExponential<MatrixType>::computeUV(double)
+{
+  using std::frexp;
+  using std::pow;
+  if (m_l1norm < 1.495585217958292e-002) {
+    pade3(m_M);
+  } else if (m_l1norm < 2.539398330063230e-001) {
+    pade5(m_M);
+  } else if (m_l1norm < 9.504178996162932e-001) {
+    pade7(m_M);
+  } else if (m_l1norm < 2.097847961257068e+000) {
+    pade9(m_M);
+  } else {
+    const double maxnorm = 5.371920351148152;
+    frexp(m_l1norm / maxnorm, &m_squarings);
+    if (m_squarings < 0) m_squarings = 0;
+    MatrixType A = m_M / Scalar(pow(2, m_squarings));
+    pade13(A);
+  }
+}
+
+template <typename MatrixType>
+void MatrixExponential<MatrixType>::computeUV(long double)
+{
+  using std::frexp;
+  using std::pow;
+#if   LDBL_MANT_DIG == 53   // double precision
+  computeUV(double());
+#elif LDBL_MANT_DIG <= 64   // extended precision
+  if (m_l1norm < 4.1968497232266989671e-003L) {
+    pade3(m_M);
+  } else if (m_l1norm < 1.1848116734693823091e-001L) {
+    pade5(m_M);
+  } else if (m_l1norm < 5.5170388480686700274e-001L) {
+    pade7(m_M);
+  } else if (m_l1norm < 1.3759868875587845383e+000L) {
+    pade9(m_M);
+  } else {
+    const long double maxnorm = 4.0246098906697353063L;
+    frexp(m_l1norm / maxnorm, &m_squarings);
+    if (m_squarings < 0) m_squarings = 0;
+    MatrixType A = m_M / Scalar(pow(2, m_squarings));
+    pade13(A);
+  }
+#elif LDBL_MANT_DIG <= 106  // double-double
+  if (m_l1norm < 3.2787892205607026992947488108213e-005L) {
+    pade3(m_M);
+  } else if (m_l1norm < 6.4467025060072760084130906076332e-003L) {
+    pade5(m_M);
+  } else if (m_l1norm < 6.8988028496595374751374122881143e-002L) {
+    pade7(m_M);
+  } else if (m_l1norm < 2.7339737518502231741495857201670e-001L) {
+    pade9(m_M);
+  } else if (m_l1norm < 1.3203382096514474905666448850278e+000L) {
+    pade13(m_M);
+  } else {
+    const long double maxnorm = 3.2579440895405400856599663723517L;
+    frexp(m_l1norm / maxnorm, &m_squarings);
+    if (m_squarings < 0) m_squarings = 0;
+    MatrixType A = m_M / pow(Scalar(2), m_squarings);
+    pade17(A);
+  }
+#elif LDBL_MANT_DIG <= 112  // quadruple precison
+  if (m_l1norm < 1.639394610288918690547467954466970e-005L) {
+    pade3(m_M);
+  } else if (m_l1norm < 4.253237712165275566025884344433009e-003L) {
+    pade5(m_M);
+  } else if (m_l1norm < 5.125804063165764409885122032933142e-002L) {
+    pade7(m_M);
+  } else if (m_l1norm < 2.170000765161155195453205651889853e-001L) {
+    pade9(m_M);
+  } else if (m_l1norm < 1.125358383453143065081397882891878e+000L) {
+    pade13(m_M);
+  } else {
+    const long double maxnorm = 2.884233277829519311757165057717815L;
+    frexp(m_l1norm / maxnorm, &m_squarings);
+    if (m_squarings < 0) m_squarings = 0;
+    MatrixType A = m_M / Scalar(pow(2, m_squarings));
+    pade17(A);
+  }
+#else
+  // this case should be handled in compute()
+  eigen_assert(false && "Bug in MatrixExponential"); 
+#endif  // LDBL_MANT_DIG
+}
+
+/** \ingroup MatrixFunctions_Module
+  *
+  * \brief Proxy for the matrix exponential of some matrix (expression).
+  *
+  * \tparam Derived  Type of the argument to the matrix exponential.
+  *
+  * This class holds the argument to the matrix exponential until it
+  * is assigned or evaluated for some other reason (so the argument
+  * should not be changed in the meantime). It is the return type of
+  * MatrixBase::exp() and most of the time this is the only way it is
+  * used.
+  */
+template<typename Derived> struct MatrixExponentialReturnValue
+: public ReturnByValue<MatrixExponentialReturnValue<Derived> >
+{
+    typedef typename Derived::Index Index;
+  public:
+    /** \brief Constructor.
+      *
+      * \param[in] src %Matrix (expression) forming the argument of the
+      * matrix exponential.
+      */
+    MatrixExponentialReturnValue(const Derived& src) : m_src(src) { }
+
+    /** \brief Compute the matrix exponential.
+      *
+      * \param[out] result the matrix exponential of \p src in the
+      * constructor.
+      */
+    template <typename ResultType>
+    inline void evalTo(ResultType& result) const
+    {
+      const typename Derived::PlainObject srcEvaluated = m_src.eval();
+      MatrixExponential<typename Derived::PlainObject> me(srcEvaluated);
+      me.compute(result);
+    }
+
+    Index rows() const { return m_src.rows(); }
+    Index cols() const { return m_src.cols(); }
+
+  protected:
+    const Derived& m_src;
+  private:
+    MatrixExponentialReturnValue& operator=(const MatrixExponentialReturnValue&);
+};
+
+namespace internal {
+template<typename Derived>
+struct traits<MatrixExponentialReturnValue<Derived> >
+{
+  typedef typename Derived::PlainObject ReturnType;
+};
+}
+
+template <typename Derived>
+const MatrixExponentialReturnValue<Derived> MatrixBase<Derived>::exp() const
+{
+  eigen_assert(rows() == cols());
+  return MatrixExponentialReturnValue<Derived>(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIX_EXPONENTIAL
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h	(revision 2476)
@@ -0,0 +1,486 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Jitse Niesen <jitse@maths.leeds.ac.uk>
+// Copyright (C) 2011 Chen-Pang He <jdh8@ms63.hinet.net>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIX_LOGARITHM
+#define EIGEN_MATRIX_LOGARITHM
+
+#ifndef M_PI
+#define M_PI 3.141592653589793238462643383279503L
+#endif
+
+namespace Eigen { 
+
+/** \ingroup MatrixFunctions_Module
+  * \class MatrixLogarithmAtomic
+  * \brief Helper class for computing matrix logarithm of atomic matrices.
+  *
+  * \internal
+  * Here, an atomic matrix is a triangular matrix whose diagonal
+  * entries are close to each other.
+  *
+  * \sa class MatrixFunctionAtomic, MatrixBase::log()
+  */
+template <typename MatrixType>
+class MatrixLogarithmAtomic
+{
+public:
+
+  typedef typename MatrixType::Scalar Scalar;
+  // typedef typename MatrixType::Index Index;
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+  // typedef typename internal::stem_function<Scalar>::type StemFunction;
+  // typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> VectorType;
+
+  /** \brief Constructor. */
+  MatrixLogarithmAtomic() { }
+
+  /** \brief Compute matrix logarithm of atomic matrix
+    * \param[in]  A  argument of matrix logarithm, should be upper triangular and atomic
+    * \returns  The logarithm of \p A.
+    */
+  MatrixType compute(const MatrixType& A);
+
+private:
+
+  void compute2x2(const MatrixType& A, MatrixType& result);
+  void computeBig(const MatrixType& A, MatrixType& result);
+  int getPadeDegree(float normTminusI);
+  int getPadeDegree(double normTminusI);
+  int getPadeDegree(long double normTminusI);
+  void computePade(MatrixType& result, const MatrixType& T, int degree);
+  void computePade3(MatrixType& result, const MatrixType& T);
+  void computePade4(MatrixType& result, const MatrixType& T);
+  void computePade5(MatrixType& result, const MatrixType& T);
+  void computePade6(MatrixType& result, const MatrixType& T);
+  void computePade7(MatrixType& result, const MatrixType& T);
+  void computePade8(MatrixType& result, const MatrixType& T);
+  void computePade9(MatrixType& result, const MatrixType& T);
+  void computePade10(MatrixType& result, const MatrixType& T);
+  void computePade11(MatrixType& result, const MatrixType& T);
+
+  static const int minPadeDegree = 3;
+  static const int maxPadeDegree = std::numeric_limits<RealScalar>::digits<= 24?  5:  // single precision
+                                   std::numeric_limits<RealScalar>::digits<= 53?  7:  // double precision
+                                   std::numeric_limits<RealScalar>::digits<= 64?  8:  // extended precision
+                                   std::numeric_limits<RealScalar>::digits<=106? 10:  // double-double
+                                                                                 11;  // quadruple precision
+
+  // Prevent copying
+  MatrixLogarithmAtomic(const MatrixLogarithmAtomic&);
+  MatrixLogarithmAtomic& operator=(const MatrixLogarithmAtomic&);
+};
+
+/** \brief Compute logarithm of triangular matrix with clustered eigenvalues. */
+template <typename MatrixType>
+MatrixType MatrixLogarithmAtomic<MatrixType>::compute(const MatrixType& A)
+{
+  using std::log;
+  MatrixType result(A.rows(), A.rows());
+  if (A.rows() == 1)
+    result(0,0) = log(A(0,0));
+  else if (A.rows() == 2)
+    compute2x2(A, result);
+  else
+    computeBig(A, result);
+  return result;
+}
+
+/** \brief Compute logarithm of 2x2 triangular matrix. */
+template <typename MatrixType>
+void MatrixLogarithmAtomic<MatrixType>::compute2x2(const MatrixType& A, MatrixType& result)
+{
+  using std::abs;
+  using std::ceil;
+  using std::imag;
+  using std::log;
+
+  Scalar logA00 = log(A(0,0));
+  Scalar logA11 = log(A(1,1));
+
+  result(0,0) = logA00;
+  result(1,0) = Scalar(0);
+  result(1,1) = logA11;
+
+  if (A(0,0) == A(1,1)) {
+    result(0,1) = A(0,1) / A(0,0);
+  } else if ((abs(A(0,0)) < 0.5*abs(A(1,1))) || (abs(A(0,0)) > 2*abs(A(1,1)))) {
+    result(0,1) = A(0,1) * (logA11 - logA00) / (A(1,1) - A(0,0));
+  } else {
+    // computation in previous branch is inaccurate if A(1,1) \approx A(0,0)
+    int unwindingNumber = static_cast<int>(ceil((imag(logA11 - logA00) - M_PI) / (2*M_PI)));
+    Scalar y = A(1,1) - A(0,0), x = A(1,1) + A(0,0);
+    result(0,1) = A(0,1) * (Scalar(2) * numext::atanh2(y,x) + Scalar(0,2*M_PI*unwindingNumber)) / y;
+  }
+}
+
+/** \brief Compute logarithm of triangular matrices with size > 2. 
+  * \details This uses a inverse scale-and-square algorithm. */
+template <typename MatrixType>
+void MatrixLogarithmAtomic<MatrixType>::computeBig(const MatrixType& A, MatrixType& result)
+{
+  using std::pow;
+  int numberOfSquareRoots = 0;
+  int numberOfExtraSquareRoots = 0;
+  int degree;
+  MatrixType T = A, sqrtT;
+  const RealScalar maxNormForPade = maxPadeDegree<= 5? 5.3149729967117310e-1:                     // single precision
+                                    maxPadeDegree<= 7? 2.6429608311114350e-1:                     // double precision
+                                    maxPadeDegree<= 8? 2.32777776523703892094e-1L:                // extended precision
+                                    maxPadeDegree<=10? 1.05026503471351080481093652651105e-1L:    // double-double
+                                                       1.1880960220216759245467951592883642e-1L;  // quadruple precision
+
+  while (true) {
+    RealScalar normTminusI = (T - MatrixType::Identity(T.rows(), T.rows())).cwiseAbs().colwise().sum().maxCoeff();
+    if (normTminusI < maxNormForPade) {
+      degree = getPadeDegree(normTminusI);
+      int degree2 = getPadeDegree(normTminusI / RealScalar(2));
+      if ((degree - degree2 <= 1) || (numberOfExtraSquareRoots == 1)) 
+        break;
+      ++numberOfExtraSquareRoots;
+    }
+    MatrixSquareRootTriangular<MatrixType>(T).compute(sqrtT);
+    T = sqrtT.template triangularView<Upper>();
+    ++numberOfSquareRoots;
+  }
+
+  computePade(result, T, degree);
+  result *= pow(RealScalar(2), numberOfSquareRoots);
+}
+
+/* \brief Get suitable degree for Pade approximation. (specialized for RealScalar = float) */
+template <typename MatrixType>
+int MatrixLogarithmAtomic<MatrixType>::getPadeDegree(float normTminusI)
+{
+  const float maxNormForPade[] = { 2.5111573934555054e-1 /* degree = 3 */ , 4.0535837411880493e-1,
+            5.3149729967117310e-1 };
+  int degree = 3;
+  for (; degree <= maxPadeDegree; ++degree) 
+    if (normTminusI <= maxNormForPade[degree - minPadeDegree])
+      break;
+  return degree;
+}
+
+/* \brief Get suitable degree for Pade approximation. (specialized for RealScalar = double) */
+template <typename MatrixType>
+int MatrixLogarithmAtomic<MatrixType>::getPadeDegree(double normTminusI)
+{
+  const double maxNormForPade[] = { 1.6206284795015624e-2 /* degree = 3 */ , 5.3873532631381171e-2,
+            1.1352802267628681e-1, 1.8662860613541288e-1, 2.642960831111435e-1 };
+  int degree = 3;
+  for (; degree <= maxPadeDegree; ++degree)
+    if (normTminusI <= maxNormForPade[degree - minPadeDegree])
+      break;
+  return degree;
+}
+
+/* \brief Get suitable degree for Pade approximation. (specialized for RealScalar = long double) */
+template <typename MatrixType>
+int MatrixLogarithmAtomic<MatrixType>::getPadeDegree(long double normTminusI)
+{
+#if   LDBL_MANT_DIG == 53         // double precision
+  const long double maxNormForPade[] = { 1.6206284795015624e-2L /* degree = 3 */ , 5.3873532631381171e-2L,
+            1.1352802267628681e-1L, 1.8662860613541288e-1L, 2.642960831111435e-1L };
+#elif LDBL_MANT_DIG <= 64         // extended precision
+  const long double maxNormForPade[] = { 5.48256690357782863103e-3L /* degree = 3 */, 2.34559162387971167321e-2L,
+            5.84603923897347449857e-2L, 1.08486423756725170223e-1L, 1.68385767881294446649e-1L,
+            2.32777776523703892094e-1L };
+#elif LDBL_MANT_DIG <= 106        // double-double
+  const long double maxNormForPade[] = { 8.58970550342939562202529664318890e-5L /* degree = 3 */,
+            9.34074328446359654039446552677759e-4L, 4.26117194647672175773064114582860e-3L,
+            1.21546224740281848743149666560464e-2L, 2.61100544998339436713088248557444e-2L,
+            4.66170074627052749243018566390567e-2L, 7.32585144444135027565872014932387e-2L,
+            1.05026503471351080481093652651105e-1L };
+#else                             // quadruple precision
+  const long double maxNormForPade[] = { 4.7419931187193005048501568167858103e-5L /* degree = 3 */,
+            5.8853168473544560470387769480192666e-4L, 2.9216120366601315391789493628113520e-3L,
+            8.8415758124319434347116734705174308e-3L, 1.9850836029449446668518049562565291e-2L,
+            3.6688019729653446926585242192447447e-2L, 5.9290962294020186998954055264528393e-2L,
+            8.6998436081634343903250580992127677e-2L, 1.1880960220216759245467951592883642e-1L };
+#endif
+  int degree = 3;
+  for (; degree <= maxPadeDegree; ++degree)
+    if (normTminusI <= maxNormForPade[degree - minPadeDegree])
+      break;
+  return degree;
+}
+
+/* \brief Compute Pade approximation to matrix logarithm */
+template <typename MatrixType>
+void MatrixLogarithmAtomic<MatrixType>::computePade(MatrixType& result, const MatrixType& T, int degree)
+{
+  switch (degree) {
+    case 3:  computePade3(result, T);  break;
+    case 4:  computePade4(result, T);  break;
+    case 5:  computePade5(result, T);  break;
+    case 6:  computePade6(result, T);  break;
+    case 7:  computePade7(result, T);  break;
+    case 8:  computePade8(result, T);  break;
+    case 9:  computePade9(result, T);  break;
+    case 10: computePade10(result, T); break;
+    case 11: computePade11(result, T); break;
+    default: assert(false); // should never happen
+  }
+} 
+
+template <typename MatrixType>
+void MatrixLogarithmAtomic<MatrixType>::computePade3(MatrixType& result, const MatrixType& T)
+{
+  const int degree = 3;
+  const RealScalar nodes[]   = { 0.1127016653792583114820734600217600L, 0.5000000000000000000000000000000000L,
+            0.8872983346207416885179265399782400L };
+  const RealScalar weights[] = { 0.2777777777777777777777777777777778L, 0.4444444444444444444444444444444444L,
+            0.2777777777777777777777777777777778L };
+  eigen_assert(degree <= maxPadeDegree);
+  MatrixType TminusI = T - MatrixType::Identity(T.rows(), T.rows());
+  result.setZero(T.rows(), T.rows());
+  for (int k = 0; k < degree; ++k)
+    result += weights[k] * (MatrixType::Identity(T.rows(), T.rows()) + nodes[k] * TminusI)
+                           .template triangularView<Upper>().solve(TminusI);
+}
+
+template <typename MatrixType>
+void MatrixLogarithmAtomic<MatrixType>::computePade4(MatrixType& result, const MatrixType& T)
+{
+  const int degree = 4;
+  const RealScalar nodes[]   = { 0.0694318442029737123880267555535953L, 0.3300094782075718675986671204483777L,
+            0.6699905217924281324013328795516223L, 0.9305681557970262876119732444464048L };
+  const RealScalar weights[] = { 0.1739274225687269286865319746109997L, 0.3260725774312730713134680253890003L,
+            0.3260725774312730713134680253890003L, 0.1739274225687269286865319746109997L };
+  eigen_assert(degree <= maxPadeDegree);
+  MatrixType TminusI = T - MatrixType::Identity(T.rows(), T.rows());
+  result.setZero(T.rows(), T.rows());
+  for (int k = 0; k < degree; ++k)
+    result += weights[k] * (MatrixType::Identity(T.rows(), T.rows()) + nodes[k] * TminusI)
+                           .template triangularView<Upper>().solve(TminusI);
+}
+
+template <typename MatrixType>
+void MatrixLogarithmAtomic<MatrixType>::computePade5(MatrixType& result, const MatrixType& T)
+{
+  const int degree = 5;
+  const RealScalar nodes[]   = { 0.0469100770306680036011865608503035L, 0.2307653449471584544818427896498956L,
+            0.5000000000000000000000000000000000L, 0.7692346550528415455181572103501044L,
+            0.9530899229693319963988134391496965L };
+  const RealScalar weights[] = { 0.1184634425280945437571320203599587L, 0.2393143352496832340206457574178191L,
+            0.2844444444444444444444444444444444L, 0.2393143352496832340206457574178191L,
+            0.1184634425280945437571320203599587L };
+  eigen_assert(degree <= maxPadeDegree);
+  MatrixType TminusI = T - MatrixType::Identity(T.rows(), T.rows());
+  result.setZero(T.rows(), T.rows());
+  for (int k = 0; k < degree; ++k)
+    result += weights[k] * (MatrixType::Identity(T.rows(), T.rows()) + nodes[k] * TminusI)
+                           .template triangularView<Upper>().solve(TminusI);
+}
+
+template <typename MatrixType>
+void MatrixLogarithmAtomic<MatrixType>::computePade6(MatrixType& result, const MatrixType& T)
+{
+  const int degree = 6;
+  const RealScalar nodes[]   = { 0.0337652428984239860938492227530027L, 0.1693953067668677431693002024900473L,
+            0.3806904069584015456847491391596440L, 0.6193095930415984543152508608403560L,
+            0.8306046932331322568306997975099527L, 0.9662347571015760139061507772469973L };
+  const RealScalar weights[] = { 0.0856622461895851725201480710863665L, 0.1803807865240693037849167569188581L,
+            0.2339569672863455236949351719947755L, 0.2339569672863455236949351719947755L,
+            0.1803807865240693037849167569188581L, 0.0856622461895851725201480710863665L };
+  eigen_assert(degree <= maxPadeDegree);
+  MatrixType TminusI = T - MatrixType::Identity(T.rows(), T.rows());
+  result.setZero(T.rows(), T.rows());
+  for (int k = 0; k < degree; ++k)
+    result += weights[k] * (MatrixType::Identity(T.rows(), T.rows()) + nodes[k] * TminusI)
+                           .template triangularView<Upper>().solve(TminusI);
+}
+
+template <typename MatrixType>
+void MatrixLogarithmAtomic<MatrixType>::computePade7(MatrixType& result, const MatrixType& T)
+{
+  const int degree = 7;
+  const RealScalar nodes[]   = { 0.0254460438286207377369051579760744L, 0.1292344072003027800680676133596058L,
+            0.2970774243113014165466967939615193L, 0.5000000000000000000000000000000000L,
+            0.7029225756886985834533032060384807L, 0.8707655927996972199319323866403942L,
+            0.9745539561713792622630948420239256L };
+  const RealScalar weights[] = { 0.0647424830844348466353057163395410L, 0.1398526957446383339507338857118898L,
+            0.1909150252525594724751848877444876L, 0.2089795918367346938775510204081633L,
+            0.1909150252525594724751848877444876L, 0.1398526957446383339507338857118898L,
+            0.0647424830844348466353057163395410L };
+  eigen_assert(degree <= maxPadeDegree);
+  MatrixType TminusI = T - MatrixType::Identity(T.rows(), T.rows());
+  result.setZero(T.rows(), T.rows());
+  for (int k = 0; k < degree; ++k)
+    result += weights[k] * (MatrixType::Identity(T.rows(), T.rows()) + nodes[k] * TminusI)
+                           .template triangularView<Upper>().solve(TminusI);
+}
+
+template <typename MatrixType>
+void MatrixLogarithmAtomic<MatrixType>::computePade8(MatrixType& result, const MatrixType& T)
+{
+  const int degree = 8;
+  const RealScalar nodes[]   = { 0.0198550717512318841582195657152635L, 0.1016667612931866302042230317620848L,
+            0.2372337950418355070911304754053768L, 0.4082826787521750975302619288199080L,
+            0.5917173212478249024697380711800920L, 0.7627662049581644929088695245946232L,
+            0.8983332387068133697957769682379152L, 0.9801449282487681158417804342847365L };
+  const RealScalar weights[] = { 0.0506142681451881295762656771549811L, 0.1111905172266872352721779972131204L,
+            0.1568533229389436436689811009933007L, 0.1813418916891809914825752246385978L,
+            0.1813418916891809914825752246385978L, 0.1568533229389436436689811009933007L,
+            0.1111905172266872352721779972131204L, 0.0506142681451881295762656771549811L };
+  eigen_assert(degree <= maxPadeDegree);
+  MatrixType TminusI = T - MatrixType::Identity(T.rows(), T.rows());
+  result.setZero(T.rows(), T.rows());
+  for (int k = 0; k < degree; ++k)
+    result += weights[k] * (MatrixType::Identity(T.rows(), T.rows()) + nodes[k] * TminusI)
+                           .template triangularView<Upper>().solve(TminusI);
+}
+
+template <typename MatrixType>
+void MatrixLogarithmAtomic<MatrixType>::computePade9(MatrixType& result, const MatrixType& T)
+{
+  const int degree = 9;
+  const RealScalar nodes[]   = { 0.0159198802461869550822118985481636L, 0.0819844463366821028502851059651326L,
+            0.1933142836497048013456489803292629L, 0.3378732882980955354807309926783317L,
+            0.5000000000000000000000000000000000L, 0.6621267117019044645192690073216683L,
+            0.8066857163502951986543510196707371L, 0.9180155536633178971497148940348674L,
+            0.9840801197538130449177881014518364L };
+  const RealScalar weights[] = { 0.0406371941807872059859460790552618L, 0.0903240803474287020292360156214564L,
+            0.1303053482014677311593714347093164L, 0.1561735385200014200343152032922218L,
+            0.1651196775006298815822625346434870L, 0.1561735385200014200343152032922218L,
+            0.1303053482014677311593714347093164L, 0.0903240803474287020292360156214564L,
+            0.0406371941807872059859460790552618L };
+  eigen_assert(degree <= maxPadeDegree);
+  MatrixType TminusI = T - MatrixType::Identity(T.rows(), T.rows());
+  result.setZero(T.rows(), T.rows());
+  for (int k = 0; k < degree; ++k)
+    result += weights[k] * (MatrixType::Identity(T.rows(), T.rows()) + nodes[k] * TminusI)
+                           .template triangularView<Upper>().solve(TminusI);
+}
+
+template <typename MatrixType>
+void MatrixLogarithmAtomic<MatrixType>::computePade10(MatrixType& result, const MatrixType& T)
+{
+  const int degree = 10;
+  const RealScalar nodes[]   = { 0.0130467357414141399610179939577740L, 0.0674683166555077446339516557882535L,
+            0.1602952158504877968828363174425632L, 0.2833023029353764046003670284171079L,
+            0.4255628305091843945575869994351400L, 0.5744371694908156054424130005648600L,
+            0.7166976970646235953996329715828921L, 0.8397047841495122031171636825574368L,
+            0.9325316833444922553660483442117465L, 0.9869532642585858600389820060422260L };
+  const RealScalar weights[] = { 0.0333356721543440687967844049466659L, 0.0747256745752902965728881698288487L,
+            0.1095431812579910219977674671140816L, 0.1346333596549981775456134607847347L,
+            0.1477621123573764350869464973256692L, 0.1477621123573764350869464973256692L,
+            0.1346333596549981775456134607847347L, 0.1095431812579910219977674671140816L,
+            0.0747256745752902965728881698288487L, 0.0333356721543440687967844049466659L };
+  eigen_assert(degree <= maxPadeDegree);
+  MatrixType TminusI = T - MatrixType::Identity(T.rows(), T.rows());
+  result.setZero(T.rows(), T.rows());
+  for (int k = 0; k < degree; ++k)
+    result += weights[k] * (MatrixType::Identity(T.rows(), T.rows()) + nodes[k] * TminusI)
+                           .template triangularView<Upper>().solve(TminusI);
+}
+
+template <typename MatrixType>
+void MatrixLogarithmAtomic<MatrixType>::computePade11(MatrixType& result, const MatrixType& T)
+{
+  const int degree = 11;
+  const RealScalar nodes[]   = { 0.0108856709269715035980309994385713L, 0.0564687001159523504624211153480364L,
+            0.1349239972129753379532918739844233L, 0.2404519353965940920371371652706952L,
+            0.3652284220238275138342340072995692L, 0.5000000000000000000000000000000000L,
+            0.6347715779761724861657659927004308L, 0.7595480646034059079628628347293048L,
+            0.8650760027870246620467081260155767L, 0.9435312998840476495375788846519636L,
+            0.9891143290730284964019690005614287L };
+  const RealScalar weights[] = { 0.0278342835580868332413768602212743L, 0.0627901847324523123173471496119701L,
+            0.0931451054638671257130488207158280L, 0.1165968822959952399592618524215876L,
+            0.1314022722551233310903444349452546L, 0.1364625433889503153572417641681711L,
+            0.1314022722551233310903444349452546L, 0.1165968822959952399592618524215876L,
+            0.0931451054638671257130488207158280L, 0.0627901847324523123173471496119701L,
+            0.0278342835580868332413768602212743L };
+  eigen_assert(degree <= maxPadeDegree);
+  MatrixType TminusI = T - MatrixType::Identity(T.rows(), T.rows());
+  result.setZero(T.rows(), T.rows());
+  for (int k = 0; k < degree; ++k)
+    result += weights[k] * (MatrixType::Identity(T.rows(), T.rows()) + nodes[k] * TminusI)
+                           .template triangularView<Upper>().solve(TminusI);
+}
+
+/** \ingroup MatrixFunctions_Module
+  *
+  * \brief Proxy for the matrix logarithm of some matrix (expression).
+  *
+  * \tparam Derived  Type of the argument to the matrix function.
+  *
+  * This class holds the argument to the matrix function until it is
+  * assigned or evaluated for some other reason (so the argument
+  * should not be changed in the meantime). It is the return type of
+  * MatrixBase::log() and most of the time this is the only way it
+  * is used.
+  */
+template<typename Derived> class MatrixLogarithmReturnValue
+: public ReturnByValue<MatrixLogarithmReturnValue<Derived> >
+{
+public:
+
+  typedef typename Derived::Scalar Scalar;
+  typedef typename Derived::Index Index;
+
+  /** \brief Constructor.
+    *
+    * \param[in]  A  %Matrix (expression) forming the argument of the matrix logarithm.
+    */
+  MatrixLogarithmReturnValue(const Derived& A) : m_A(A) { }
+  
+  /** \brief Compute the matrix logarithm.
+    *
+    * \param[out]  result  Logarithm of \p A, where \A is as specified in the constructor.
+    */
+  template <typename ResultType>
+  inline void evalTo(ResultType& result) const
+  {
+    typedef typename Derived::PlainObject PlainObject;
+    typedef internal::traits<PlainObject> Traits;
+    static const int RowsAtCompileTime = Traits::RowsAtCompileTime;
+    static const int ColsAtCompileTime = Traits::ColsAtCompileTime;
+    static const int Options = PlainObject::Options;
+    typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
+    typedef Matrix<ComplexScalar, Dynamic, Dynamic, Options, RowsAtCompileTime, ColsAtCompileTime> DynMatrixType;
+    typedef MatrixLogarithmAtomic<DynMatrixType> AtomicType;
+    AtomicType atomic;
+    
+    const PlainObject Aevaluated = m_A.eval();
+    MatrixFunction<PlainObject, AtomicType> mf(Aevaluated, atomic);
+    mf.compute(result);
+  }
+
+  Index rows() const { return m_A.rows(); }
+  Index cols() const { return m_A.cols(); }
+  
+private:
+  typename internal::nested<Derived>::type m_A;
+  
+  MatrixLogarithmReturnValue& operator=(const MatrixLogarithmReturnValue&);
+};
+
+namespace internal {
+  template<typename Derived>
+  struct traits<MatrixLogarithmReturnValue<Derived> >
+  {
+    typedef typename Derived::PlainObject ReturnType;
+  };
+}
+
+
+/********** MatrixBase method **********/
+
+
+template <typename Derived>
+const MatrixLogarithmReturnValue<Derived> MatrixBase<Derived>::log() const
+{
+  eigen_assert(rows() == cols());
+  return MatrixLogarithmReturnValue<Derived>(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIX_LOGARITHM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/StemFunction.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/StemFunction.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/StemFunction.h	(revision 2476)
@@ -0,0 +1,105 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_STEM_FUNCTION
+#define EIGEN_STEM_FUNCTION
+
+namespace Eigen { 
+
+/** \ingroup MatrixFunctions_Module 
+  * \brief Stem functions corresponding to standard mathematical functions.
+  */
+template <typename Scalar>
+class StdStemFunctions
+{
+  public:
+
+    /** \brief The exponential function (and its derivatives). */
+    static Scalar exp(Scalar x, int)
+    {
+      return std::exp(x);
+    }
+
+    /** \brief Cosine (and its derivatives). */
+    static Scalar cos(Scalar x, int n)
+    {
+      Scalar res;
+      switch (n % 4) {
+      case 0: 
+	res = std::cos(x);
+	break;
+      case 1:
+	res = -std::sin(x);
+	break;
+      case 2:
+	res = -std::cos(x);
+	break;
+      case 3:
+	res = std::sin(x);
+	break;
+      }
+      return res;
+    }
+
+    /** \brief Sine (and its derivatives). */
+    static Scalar sin(Scalar x, int n)
+    {
+      Scalar res;
+      switch (n % 4) {
+      case 0:
+	res = std::sin(x);
+	break;
+      case 1:
+	res = std::cos(x);
+	break;
+      case 2:
+	res = -std::sin(x);
+	break;
+      case 3:
+	res = -std::cos(x);
+	break;
+      }
+      return res;
+    }
+
+    /** \brief Hyperbolic cosine (and its derivatives). */
+    static Scalar cosh(Scalar x, int n)
+    {
+      Scalar res;
+      switch (n % 2) {
+      case 0:
+	res = std::cosh(x);
+	break;
+      case 1:
+	res = std::sinh(x);
+	break;
+      }
+      return res;
+    }
+	
+    /** \brief Hyperbolic sine (and its derivatives). */
+    static Scalar sinh(Scalar x, int n)
+    {
+      Scalar res;
+      switch (n % 2) {
+      case 0:
+	res = std::sinh(x);
+	break;
+      case 1:
+	res = std::cosh(x);
+	break;
+      }
+      return res;
+    }
+
+}; // end of class StdStemFunctions
+
+} // end namespace Eigen
+
+#endif // EIGEN_STEM_FUNCTION
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h	(revision 2476)
@@ -0,0 +1,508 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012, 2013 Chen-Pang He <jdh8@ms63.hinet.net>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIX_POWER
+#define EIGEN_MATRIX_POWER
+
+namespace Eigen {
+
+template<typename MatrixType> class MatrixPower;
+
+template<typename MatrixType>
+class MatrixPowerRetval : public ReturnByValue< MatrixPowerRetval<MatrixType> >
+{
+  public:
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+
+    MatrixPowerRetval(MatrixPower<MatrixType>& pow, RealScalar p) : m_pow(pow), m_p(p)
+    { }
+
+    template<typename ResultType>
+    inline void evalTo(ResultType& res) const
+    { m_pow.compute(res, m_p); }
+
+    Index rows() const { return m_pow.rows(); }
+    Index cols() const { return m_pow.cols(); }
+
+  private:
+    MatrixPower<MatrixType>& m_pow;
+    const RealScalar m_p;
+    MatrixPowerRetval& operator=(const MatrixPowerRetval&);
+};
+
+template<typename MatrixType>
+class MatrixPowerAtomic
+{
+  private:
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef std::complex<RealScalar> ComplexScalar;
+    typedef typename MatrixType::Index Index;
+    typedef Array<Scalar, RowsAtCompileTime, 1, ColMajor, MaxRowsAtCompileTime> ArrayType;
+
+    const MatrixType& m_A;
+    RealScalar m_p;
+
+    void computePade(int degree, const MatrixType& IminusT, MatrixType& res) const;
+    void compute2x2(MatrixType& res, RealScalar p) const;
+    void computeBig(MatrixType& res) const;
+    static int getPadeDegree(float normIminusT);
+    static int getPadeDegree(double normIminusT);
+    static int getPadeDegree(long double normIminusT);
+    static ComplexScalar computeSuperDiag(const ComplexScalar&, const ComplexScalar&, RealScalar p);
+    static RealScalar computeSuperDiag(RealScalar, RealScalar, RealScalar p);
+
+  public:
+    MatrixPowerAtomic(const MatrixType& T, RealScalar p);
+    void compute(MatrixType& res) const;
+};
+
+template<typename MatrixType>
+MatrixPowerAtomic<MatrixType>::MatrixPowerAtomic(const MatrixType& T, RealScalar p) :
+  m_A(T), m_p(p)
+{ eigen_assert(T.rows() == T.cols()); }
+
+template<typename MatrixType>
+void MatrixPowerAtomic<MatrixType>::compute(MatrixType& res) const
+{
+  res.resizeLike(m_A);
+  switch (m_A.rows()) {
+    case 0:
+      break;
+    case 1:
+      res(0,0) = std::pow(m_A(0,0), m_p);
+      break;
+    case 2:
+      compute2x2(res, m_p);
+      break;
+    default:
+      computeBig(res);
+  }
+}
+
+template<typename MatrixType>
+void MatrixPowerAtomic<MatrixType>::computePade(int degree, const MatrixType& IminusT, MatrixType& res) const
+{
+  int i = degree<<1;
+  res = (m_p-degree) / ((i-1)<<1) * IminusT;
+  for (--i; i; --i) {
+    res = (MatrixType::Identity(IminusT.rows(), IminusT.cols()) + res).template triangularView<Upper>()
+	.solve((i==1 ? -m_p : i&1 ? (-m_p-(i>>1))/(i<<1) : (m_p-(i>>1))/((i-1)<<1)) * IminusT).eval();
+  }
+  res += MatrixType::Identity(IminusT.rows(), IminusT.cols());
+}
+
+// This function assumes that res has the correct size (see bug 614)
+template<typename MatrixType>
+void MatrixPowerAtomic<MatrixType>::compute2x2(MatrixType& res, RealScalar p) const
+{
+  using std::abs;
+  using std::pow;
+  
+  res.coeffRef(0,0) = pow(m_A.coeff(0,0), p);
+
+  for (Index i=1; i < m_A.cols(); ++i) {
+    res.coeffRef(i,i) = pow(m_A.coeff(i,i), p);
+    if (m_A.coeff(i-1,i-1) == m_A.coeff(i,i))
+      res.coeffRef(i-1,i) = p * pow(m_A.coeff(i,i), p-1);
+    else if (2*abs(m_A.coeff(i-1,i-1)) < abs(m_A.coeff(i,i)) || 2*abs(m_A.coeff(i,i)) < abs(m_A.coeff(i-1,i-1)))
+      res.coeffRef(i-1,i) = (res.coeff(i,i)-res.coeff(i-1,i-1)) / (m_A.coeff(i,i)-m_A.coeff(i-1,i-1));
+    else
+      res.coeffRef(i-1,i) = computeSuperDiag(m_A.coeff(i,i), m_A.coeff(i-1,i-1), p);
+    res.coeffRef(i-1,i) *= m_A.coeff(i-1,i);
+  }
+}
+
+template<typename MatrixType>
+void MatrixPowerAtomic<MatrixType>::computeBig(MatrixType& res) const
+{
+  const int digits = std::numeric_limits<RealScalar>::digits;
+  const RealScalar maxNormForPade = digits <=  24? 4.3386528e-1f:                           // sigle precision
+				    digits <=  53? 2.789358995219730e-1:                    // double precision
+				    digits <=  64? 2.4471944416607995472e-1L:               // extended precision
+				    digits <= 106? 1.1016843812851143391275867258512e-1L:   // double-double
+						   9.134603732914548552537150753385375e-2L; // quadruple precision
+  MatrixType IminusT, sqrtT, T = m_A.template triangularView<Upper>();
+  RealScalar normIminusT;
+  int degree, degree2, numberOfSquareRoots = 0;
+  bool hasExtraSquareRoot = false;
+
+  /* FIXME
+   * For singular T, norm(I - T) >= 1 but maxNormForPade < 1, leads to infinite
+   * loop.  We should move 0 eigenvalues to bottom right corner.  We need not
+   * worry about tiny values (e.g. 1e-300) because they will reach 1 if
+   * repetitively sqrt'ed.
+   *
+   * If the 0 eigenvalues are semisimple, they can form a 0 matrix at the
+   * bottom right corner.
+   *
+   * [ T  A ]^p   [ T^p  (T^-1 T^p A) ]
+   * [      ]   = [                   ]
+   * [ 0  0 ]     [  0         0      ]
+   */
+  for (Index i=0; i < m_A.cols(); ++i)
+    eigen_assert(m_A(i,i) != RealScalar(0));
+
+  while (true) {
+    IminusT = MatrixType::Identity(m_A.rows(), m_A.cols()) - T;
+    normIminusT = IminusT.cwiseAbs().colwise().sum().maxCoeff();
+    if (normIminusT < maxNormForPade) {
+      degree = getPadeDegree(normIminusT);
+      degree2 = getPadeDegree(normIminusT/2);
+      if (degree - degree2 <= 1 || hasExtraSquareRoot)
+	break;
+      hasExtraSquareRoot = true;
+    }
+    MatrixSquareRootTriangular<MatrixType>(T).compute(sqrtT);
+    T = sqrtT.template triangularView<Upper>();
+    ++numberOfSquareRoots;
+  }
+  computePade(degree, IminusT, res);
+
+  for (; numberOfSquareRoots; --numberOfSquareRoots) {
+    compute2x2(res, std::ldexp(m_p, -numberOfSquareRoots));
+    res = res.template triangularView<Upper>() * res;
+  }
+  compute2x2(res, m_p);
+}
+  
+template<typename MatrixType>
+inline int MatrixPowerAtomic<MatrixType>::getPadeDegree(float normIminusT)
+{
+  const float maxNormForPade[] = { 2.8064004e-1f /* degree = 3 */ , 4.3386528e-1f };
+  int degree = 3;
+  for (; degree <= 4; ++degree)
+    if (normIminusT <= maxNormForPade[degree - 3])
+      break;
+  return degree;
+}
+
+template<typename MatrixType>
+inline int MatrixPowerAtomic<MatrixType>::getPadeDegree(double normIminusT)
+{
+  const double maxNormForPade[] = { 1.884160592658218e-2 /* degree = 3 */ , 6.038881904059573e-2, 1.239917516308172e-1,
+      1.999045567181744e-1, 2.789358995219730e-1 };
+  int degree = 3;
+  for (; degree <= 7; ++degree)
+    if (normIminusT <= maxNormForPade[degree - 3])
+      break;
+  return degree;
+}
+
+template<typename MatrixType>
+inline int MatrixPowerAtomic<MatrixType>::getPadeDegree(long double normIminusT)
+{
+#if   LDBL_MANT_DIG == 53
+  const int maxPadeDegree = 7;
+  const double maxNormForPade[] = { 1.884160592658218e-2L /* degree = 3 */ , 6.038881904059573e-2L, 1.239917516308172e-1L,
+      1.999045567181744e-1L, 2.789358995219730e-1L };
+#elif LDBL_MANT_DIG <= 64
+  const int maxPadeDegree = 8;
+  const double maxNormForPade[] = { 6.3854693117491799460e-3L /* degree = 3 */ , 2.6394893435456973676e-2L,
+      6.4216043030404063729e-2L, 1.1701165502926694307e-1L, 1.7904284231268670284e-1L, 2.4471944416607995472e-1L };
+#elif LDBL_MANT_DIG <= 106
+  const int maxPadeDegree = 10;
+  const double maxNormForPade[] = { 1.0007161601787493236741409687186e-4L /* degree = 3 */ ,
+      1.0007161601787493236741409687186e-3L, 4.7069769360887572939882574746264e-3L, 1.3220386624169159689406653101695e-2L,
+      2.8063482381631737920612944054906e-2L, 4.9625993951953473052385361085058e-2L, 7.7367040706027886224557538328171e-2L,
+      1.1016843812851143391275867258512e-1L };
+#else
+  const int maxPadeDegree = 10;
+  const double maxNormForPade[] = { 5.524506147036624377378713555116378e-5L /* degree = 3 */ ,
+      6.640600568157479679823602193345995e-4L, 3.227716520106894279249709728084626e-3L,
+      9.619593944683432960546978734646284e-3L, 2.134595382433742403911124458161147e-2L,
+      3.908166513900489428442993794761185e-2L, 6.266780814639442865832535460550138e-2L,
+      9.134603732914548552537150753385375e-2L };
+#endif
+  int degree = 3;
+  for (; degree <= maxPadeDegree; ++degree)
+    if (normIminusT <= maxNormForPade[degree - 3])
+      break;
+  return degree;
+}
+
+template<typename MatrixType>
+inline typename MatrixPowerAtomic<MatrixType>::ComplexScalar
+MatrixPowerAtomic<MatrixType>::computeSuperDiag(const ComplexScalar& curr, const ComplexScalar& prev, RealScalar p)
+{
+  ComplexScalar logCurr = std::log(curr);
+  ComplexScalar logPrev = std::log(prev);
+  int unwindingNumber = std::ceil((numext::imag(logCurr - logPrev) - M_PI) / (2*M_PI));
+  ComplexScalar w = numext::atanh2(curr - prev, curr + prev) + ComplexScalar(0, M_PI*unwindingNumber);
+  return RealScalar(2) * std::exp(RealScalar(0.5) * p * (logCurr + logPrev)) * std::sinh(p * w) / (curr - prev);
+}
+
+template<typename MatrixType>
+inline typename MatrixPowerAtomic<MatrixType>::RealScalar
+MatrixPowerAtomic<MatrixType>::computeSuperDiag(RealScalar curr, RealScalar prev, RealScalar p)
+{
+  RealScalar w = numext::atanh2(curr - prev, curr + prev);
+  return 2 * std::exp(p * (std::log(curr) + std::log(prev)) / 2) * std::sinh(p * w) / (curr - prev);
+}
+
+/**
+ * \ingroup MatrixFunctions_Module
+ *
+ * \brief Class for computing matrix powers.
+ *
+ * \tparam MatrixType  type of the base, expected to be an instantiation
+ * of the Matrix class template.
+ *
+ * This class is capable of computing real/complex matrices raised to
+ * an arbitrary real power. Meanwhile, it saves the result of Schur
+ * decomposition if an non-integral power has even been calculated.
+ * Therefore, if you want to compute multiple (>= 2) matrix powers
+ * for the same matrix, using the class directly is more efficient than
+ * calling MatrixBase::pow().
+ *
+ * Example:
+ * \include MatrixPower_optimal.cpp
+ * Output: \verbinclude MatrixPower_optimal.out
+ */
+template<typename MatrixType>
+class MatrixPower
+{
+  private:
+    enum {
+      RowsAtCompileTime = MatrixType::RowsAtCompileTime,
+      ColsAtCompileTime = MatrixType::ColsAtCompileTime,
+      MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
+      MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
+    };
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef typename MatrixType::Index Index;
+
+  public:
+    /**
+     * \brief Constructor.
+     *
+     * \param[in] A  the base of the matrix power.
+     *
+     * The class stores a reference to A, so it should not be changed
+     * (or destroyed) before evaluation.
+     */
+    explicit MatrixPower(const MatrixType& A) : m_A(A), m_conditionNumber(0)
+    { eigen_assert(A.rows() == A.cols()); }
+
+    /**
+     * \brief Returns the matrix power.
+     *
+     * \param[in] p  exponent, a real scalar.
+     * \return The expression \f$ A^p \f$, where A is specified in the
+     * constructor.
+     */
+    const MatrixPowerRetval<MatrixType> operator()(RealScalar p)
+    { return MatrixPowerRetval<MatrixType>(*this, p); }
+
+    /**
+     * \brief Compute the matrix power.
+     *
+     * \param[in]  p    exponent, a real scalar.
+     * \param[out] res  \f$ A^p \f$ where A is specified in the
+     * constructor.
+     */
+    template<typename ResultType>
+    void compute(ResultType& res, RealScalar p);
+    
+    Index rows() const { return m_A.rows(); }
+    Index cols() const { return m_A.cols(); }
+
+  private:
+    typedef std::complex<RealScalar> ComplexScalar;
+    typedef Matrix<ComplexScalar, RowsAtCompileTime, ColsAtCompileTime, MatrixType::Options,
+              MaxRowsAtCompileTime, MaxColsAtCompileTime> ComplexMatrix;
+
+    typename MatrixType::Nested m_A;
+    MatrixType m_tmp;
+    ComplexMatrix m_T, m_U, m_fT;
+    RealScalar m_conditionNumber;
+
+    RealScalar modfAndInit(RealScalar, RealScalar*);
+
+    template<typename ResultType>
+    void computeIntPower(ResultType&, RealScalar);
+
+    template<typename ResultType>
+    void computeFracPower(ResultType&, RealScalar);
+
+    template<int Rows, int Cols, int Options, int MaxRows, int MaxCols>
+    static void revertSchur(
+        Matrix<ComplexScalar, Rows, Cols, Options, MaxRows, MaxCols>& res,
+        const ComplexMatrix& T,
+        const ComplexMatrix& U);
+
+    template<int Rows, int Cols, int Options, int MaxRows, int MaxCols>
+    static void revertSchur(
+        Matrix<RealScalar, Rows, Cols, Options, MaxRows, MaxCols>& res,
+        const ComplexMatrix& T,
+        const ComplexMatrix& U);
+};
+
+template<typename MatrixType>
+template<typename ResultType>
+void MatrixPower<MatrixType>::compute(ResultType& res, RealScalar p)
+{
+  switch (cols()) {
+    case 0:
+      break;
+    case 1:
+      res(0,0) = std::pow(m_A.coeff(0,0), p);
+      break;
+    default:
+      RealScalar intpart, x = modfAndInit(p, &intpart);
+      computeIntPower(res, intpart);
+      computeFracPower(res, x);
+  }
+}
+
+template<typename MatrixType>
+typename MatrixPower<MatrixType>::RealScalar
+MatrixPower<MatrixType>::modfAndInit(RealScalar x, RealScalar* intpart)
+{
+  typedef Array<RealScalar, RowsAtCompileTime, 1, ColMajor, MaxRowsAtCompileTime> RealArray;
+
+  *intpart = std::floor(x);
+  RealScalar res = x - *intpart;
+
+  if (!m_conditionNumber && res) {
+    const ComplexSchur<MatrixType> schurOfA(m_A);
+    m_T = schurOfA.matrixT();
+    m_U = schurOfA.matrixU();
+    
+    const RealArray absTdiag = m_T.diagonal().array().abs();
+    m_conditionNumber = absTdiag.maxCoeff() / absTdiag.minCoeff();
+  }
+
+  if (res>RealScalar(0.5) && res>(1-res)*std::pow(m_conditionNumber, res)) {
+    --res;
+    ++*intpart;
+  }
+  return res;
+}
+
+template<typename MatrixType>
+template<typename ResultType>
+void MatrixPower<MatrixType>::computeIntPower(ResultType& res, RealScalar p)
+{
+  RealScalar pp = std::abs(p);
+
+  if (p<0)  m_tmp = m_A.inverse();
+  else      m_tmp = m_A;
+
+  res = MatrixType::Identity(rows(), cols());
+  while (pp >= 1) {
+    if (std::fmod(pp, 2) >= 1)
+      res = m_tmp * res;
+    m_tmp *= m_tmp;
+    pp /= 2;
+  }
+}
+
+template<typename MatrixType>
+template<typename ResultType>
+void MatrixPower<MatrixType>::computeFracPower(ResultType& res, RealScalar p)
+{
+  if (p) {
+    eigen_assert(m_conditionNumber);
+    MatrixPowerAtomic<ComplexMatrix>(m_T, p).compute(m_fT);
+    revertSchur(m_tmp, m_fT, m_U);
+    res = m_tmp * res;
+  }
+}
+
+template<typename MatrixType>
+template<int Rows, int Cols, int Options, int MaxRows, int MaxCols>
+inline void MatrixPower<MatrixType>::revertSchur(
+    Matrix<ComplexScalar, Rows, Cols, Options, MaxRows, MaxCols>& res,
+    const ComplexMatrix& T,
+    const ComplexMatrix& U)
+{ res.noalias() = U * (T.template triangularView<Upper>() * U.adjoint()); }
+
+template<typename MatrixType>
+template<int Rows, int Cols, int Options, int MaxRows, int MaxCols>
+inline void MatrixPower<MatrixType>::revertSchur(
+    Matrix<RealScalar, Rows, Cols, Options, MaxRows, MaxCols>& res,
+    const ComplexMatrix& T,
+    const ComplexMatrix& U)
+{ res.noalias() = (U * (T.template triangularView<Upper>() * U.adjoint())).real(); }
+
+/**
+ * \ingroup MatrixFunctions_Module
+ *
+ * \brief Proxy for the matrix power of some matrix (expression).
+ *
+ * \tparam Derived  type of the base, a matrix (expression).
+ *
+ * This class holds the arguments to the matrix power until it is
+ * assigned or evaluated for some other reason (so the argument
+ * should not be changed in the meantime). It is the return type of
+ * MatrixBase::pow() and related functions and most of the
+ * time this is the only way it is used.
+ */
+template<typename Derived>
+class MatrixPowerReturnValue : public ReturnByValue< MatrixPowerReturnValue<Derived> >
+{
+  public:
+    typedef typename Derived::PlainObject PlainObject;
+    typedef typename Derived::RealScalar RealScalar;
+    typedef typename Derived::Index Index;
+
+    /**
+     * \brief Constructor.
+     *
+     * \param[in] A  %Matrix (expression), the base of the matrix power.
+     * \param[in] p  scalar, the exponent of the matrix power.
+     */
+    MatrixPowerReturnValue(const Derived& A, RealScalar p) : m_A(A), m_p(p)
+    { }
+
+    /**
+     * \brief Compute the matrix power.
+     *
+     * \param[out] result  \f$ A^p \f$ where \p A and \p p are as in the
+     * constructor.
+     */
+    template<typename ResultType>
+    inline void evalTo(ResultType& res) const
+    { MatrixPower<PlainObject>(m_A.eval()).compute(res, m_p); }
+
+    Index rows() const { return m_A.rows(); }
+    Index cols() const { return m_A.cols(); }
+
+  private:
+    const Derived& m_A;
+    const RealScalar m_p;
+    MatrixPowerReturnValue& operator=(const MatrixPowerReturnValue&);
+};
+
+namespace internal {
+
+template<typename MatrixPowerType>
+struct traits< MatrixPowerRetval<MatrixPowerType> >
+{ typedef typename MatrixPowerType::PlainObject ReturnType; };
+
+template<typename Derived>
+struct traits< MatrixPowerReturnValue<Derived> >
+{ typedef typename Derived::PlainObject ReturnType; };
+
+}
+
+template<typename Derived>
+const MatrixPowerReturnValue<Derived> MatrixBase<Derived>::pow(const RealScalar& p) const
+{ return MatrixPowerReturnValue<Derived>(derived(), p); }
+
+} // namespace Eigen
+
+#endif // EIGEN_MATRIX_POWER
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h	(revision 2476)
@@ -0,0 +1,131 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIX_FUNCTION_ATOMIC
+#define EIGEN_MATRIX_FUNCTION_ATOMIC
+
+namespace Eigen { 
+
+/** \ingroup MatrixFunctions_Module
+  * \class MatrixFunctionAtomic
+  * \brief Helper class for computing matrix functions of atomic matrices.
+  *
+  * \internal
+  * Here, an atomic matrix is a triangular matrix whose diagonal
+  * entries are close to each other.
+  */
+template <typename MatrixType>
+class MatrixFunctionAtomic
+{
+  public:
+
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef typename internal::stem_function<Scalar>::type StemFunction;
+    typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> VectorType;
+
+    /** \brief Constructor
+      * \param[in]  f  matrix function to compute.
+      */
+    MatrixFunctionAtomic(StemFunction f) : m_f(f) { }
+
+    /** \brief Compute matrix function of atomic matrix
+      * \param[in]  A  argument of matrix function, should be upper triangular and atomic
+      * \returns  f(A), the matrix function evaluated at the given matrix
+      */
+    MatrixType compute(const MatrixType& A);
+
+  private:
+
+    // Prevent copying
+    MatrixFunctionAtomic(const MatrixFunctionAtomic&);
+    MatrixFunctionAtomic& operator=(const MatrixFunctionAtomic&);
+
+    void computeMu();
+    bool taylorConverged(Index s, const MatrixType& F, const MatrixType& Fincr, const MatrixType& P);
+
+    /** \brief Pointer to scalar function */
+    StemFunction* m_f;
+
+    /** \brief Size of matrix function */
+    Index m_Arows;
+
+    /** \brief Mean of eigenvalues */
+    Scalar m_avgEival;
+
+    /** \brief Argument shifted by mean of eigenvalues */
+    MatrixType m_Ashifted;
+
+    /** \brief Constant used to determine whether Taylor series has converged */
+    RealScalar m_mu;
+};
+
+template <typename MatrixType>
+MatrixType MatrixFunctionAtomic<MatrixType>::compute(const MatrixType& A)
+{
+  // TODO: Use that A is upper triangular
+  m_Arows = A.rows();
+  m_avgEival = A.trace() / Scalar(RealScalar(m_Arows));
+  m_Ashifted = A - m_avgEival * MatrixType::Identity(m_Arows, m_Arows);
+  computeMu();
+  MatrixType F = m_f(m_avgEival, 0) * MatrixType::Identity(m_Arows, m_Arows);
+  MatrixType P = m_Ashifted;
+  MatrixType Fincr;
+  for (Index s = 1; s < 1.1 * m_Arows + 10; s++) { // upper limit is fairly arbitrary
+    Fincr = m_f(m_avgEival, static_cast<int>(s)) * P;
+    F += Fincr;
+    P = Scalar(RealScalar(1.0/(s + 1))) * P * m_Ashifted;
+    if (taylorConverged(s, F, Fincr, P)) {
+      return F;
+    }
+  }
+  eigen_assert("Taylor series does not converge" && 0);
+  return F;
+}
+
+/** \brief Compute \c m_mu. */
+template <typename MatrixType>
+void MatrixFunctionAtomic<MatrixType>::computeMu()
+{
+  const MatrixType N = MatrixType::Identity(m_Arows, m_Arows) - m_Ashifted;
+  VectorType e = VectorType::Ones(m_Arows);
+  N.template triangularView<Upper>().solveInPlace(e);
+  m_mu = e.cwiseAbs().maxCoeff();
+}
+
+/** \brief Determine whether Taylor series has converged */
+template <typename MatrixType>
+bool MatrixFunctionAtomic<MatrixType>::taylorConverged(Index s, const MatrixType& F,
+						       const MatrixType& Fincr, const MatrixType& P)
+{
+  const Index n = F.rows();
+  const RealScalar F_norm = F.cwiseAbs().rowwise().sum().maxCoeff();
+  const RealScalar Fincr_norm = Fincr.cwiseAbs().rowwise().sum().maxCoeff();
+  if (Fincr_norm < NumTraits<Scalar>::epsilon() * F_norm) {
+    RealScalar delta = 0;
+    RealScalar rfactorial = 1;
+    for (Index r = 0; r < n; r++) {
+      RealScalar mx = 0;
+      for (Index i = 0; i < n; i++)
+        mx = (std::max)(mx, std::abs(m_f(m_Ashifted(i, i) + m_avgEival, static_cast<int>(s+r))));
+      if (r != 0)
+        rfactorial *= RealScalar(r);
+      delta = (std::max)(delta, mx / rfactorial);
+    }
+    const RealScalar P_norm = P.cwiseAbs().rowwise().sum().maxCoeff();
+    if (m_mu * delta * P_norm < NumTraits<Scalar>::epsilon() * F_norm)
+      return true;
+  }
+  return false;
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIX_FUNCTION_ATOMIC
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h	(revision 2476)
@@ -0,0 +1,466 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIX_SQUARE_ROOT
+#define EIGEN_MATRIX_SQUARE_ROOT
+
+namespace Eigen { 
+
+/** \ingroup MatrixFunctions_Module
+  * \brief Class for computing matrix square roots of upper quasi-triangular matrices.
+  * \tparam  MatrixType  type of the argument of the matrix square root,
+  *                      expected to be an instantiation of the Matrix class template.
+  *
+  * This class computes the square root of the upper quasi-triangular
+  * matrix stored in the upper Hessenberg part of the matrix passed to
+  * the constructor.
+  *
+  * \sa MatrixSquareRoot, MatrixSquareRootTriangular
+  */
+template <typename MatrixType>
+class MatrixSquareRootQuasiTriangular
+{
+  public:
+
+    /** \brief Constructor. 
+      *
+      * \param[in]  A  upper quasi-triangular matrix whose square root 
+      *                is to be computed.
+      *
+      * The class stores a reference to \p A, so it should not be
+      * changed (or destroyed) before compute() is called.
+      */
+    MatrixSquareRootQuasiTriangular(const MatrixType& A) 
+      : m_A(A) 
+    {
+      eigen_assert(A.rows() == A.cols());
+    }
+    
+    /** \brief Compute the matrix square root
+      *
+      * \param[out] result  square root of \p A, as specified in the constructor.
+      *
+      * Only the upper Hessenberg part of \p result is updated, the
+      * rest is not touched.  See MatrixBase::sqrt() for details on
+      * how this computation is implemented.
+      */
+    template <typename ResultType> void compute(ResultType &result);    
+    
+  private:
+    typedef typename MatrixType::Index Index;
+    typedef typename MatrixType::Scalar Scalar;
+    
+    void computeDiagonalPartOfSqrt(MatrixType& sqrtT, const MatrixType& T);
+    void computeOffDiagonalPartOfSqrt(MatrixType& sqrtT, const MatrixType& T);
+    void compute2x2diagonalBlock(MatrixType& sqrtT, const MatrixType& T, typename MatrixType::Index i);
+    void compute1x1offDiagonalBlock(MatrixType& sqrtT, const MatrixType& T, 
+				  typename MatrixType::Index i, typename MatrixType::Index j);
+    void compute1x2offDiagonalBlock(MatrixType& sqrtT, const MatrixType& T, 
+				  typename MatrixType::Index i, typename MatrixType::Index j);
+    void compute2x1offDiagonalBlock(MatrixType& sqrtT, const MatrixType& T, 
+				  typename MatrixType::Index i, typename MatrixType::Index j);
+    void compute2x2offDiagonalBlock(MatrixType& sqrtT, const MatrixType& T, 
+				  typename MatrixType::Index i, typename MatrixType::Index j);
+  
+    template <typename SmallMatrixType>
+    static void solveAuxiliaryEquation(SmallMatrixType& X, const SmallMatrixType& A, 
+				     const SmallMatrixType& B, const SmallMatrixType& C);
+  
+    const MatrixType& m_A;
+};
+
+template <typename MatrixType>
+template <typename ResultType> 
+void MatrixSquareRootQuasiTriangular<MatrixType>::compute(ResultType &result)
+{
+  result.resize(m_A.rows(), m_A.cols());
+  computeDiagonalPartOfSqrt(result, m_A);
+  computeOffDiagonalPartOfSqrt(result, m_A);
+}
+
+// pre:  T is quasi-upper-triangular and sqrtT is a zero matrix of the same size
+// post: the diagonal blocks of sqrtT are the square roots of the diagonal blocks of T
+template <typename MatrixType>
+void MatrixSquareRootQuasiTriangular<MatrixType>::computeDiagonalPartOfSqrt(MatrixType& sqrtT, 
+									  const MatrixType& T)
+{
+  using std::sqrt;
+  const Index size = m_A.rows();
+  for (Index i = 0; i < size; i++) {
+    if (i == size - 1 || T.coeff(i+1, i) == 0) {
+      eigen_assert(T(i,i) >= 0);
+      sqrtT.coeffRef(i,i) = sqrt(T.coeff(i,i));
+    }
+    else {
+      compute2x2diagonalBlock(sqrtT, T, i);
+      ++i;
+    }
+  }
+}
+
+// pre:  T is quasi-upper-triangular and diagonal blocks of sqrtT are square root of diagonal blocks of T.
+// post: sqrtT is the square root of T.
+template <typename MatrixType>
+void MatrixSquareRootQuasiTriangular<MatrixType>::computeOffDiagonalPartOfSqrt(MatrixType& sqrtT, 
+									     const MatrixType& T)
+{
+  const Index size = m_A.rows();
+  for (Index j = 1; j < size; j++) {
+      if (T.coeff(j, j-1) != 0)  // if T(j-1:j, j-1:j) is a 2-by-2 block
+	continue;
+    for (Index i = j-1; i >= 0; i--) {
+      if (i > 0 && T.coeff(i, i-1) != 0)  // if T(i-1:i, i-1:i) is a 2-by-2 block
+	continue;
+      bool iBlockIs2x2 = (i < size - 1) && (T.coeff(i+1, i) != 0);
+      bool jBlockIs2x2 = (j < size - 1) && (T.coeff(j+1, j) != 0);
+      if (iBlockIs2x2 && jBlockIs2x2) 
+	compute2x2offDiagonalBlock(sqrtT, T, i, j);
+      else if (iBlockIs2x2 && !jBlockIs2x2) 
+	compute2x1offDiagonalBlock(sqrtT, T, i, j);
+      else if (!iBlockIs2x2 && jBlockIs2x2) 
+	compute1x2offDiagonalBlock(sqrtT, T, i, j);
+      else if (!iBlockIs2x2 && !jBlockIs2x2) 
+	compute1x1offDiagonalBlock(sqrtT, T, i, j);
+    }
+  }
+}
+
+// pre:  T.block(i,i,2,2) has complex conjugate eigenvalues
+// post: sqrtT.block(i,i,2,2) is square root of T.block(i,i,2,2)
+template <typename MatrixType>
+void MatrixSquareRootQuasiTriangular<MatrixType>
+     ::compute2x2diagonalBlock(MatrixType& sqrtT, const MatrixType& T, typename MatrixType::Index i)
+{
+  // TODO: This case (2-by-2 blocks with complex conjugate eigenvalues) is probably hidden somewhere
+  //       in EigenSolver. If we expose it, we could call it directly from here.
+  Matrix<Scalar,2,2> block = T.template block<2,2>(i,i);
+  EigenSolver<Matrix<Scalar,2,2> > es(block);
+  sqrtT.template block<2,2>(i,i)
+    = (es.eigenvectors() * es.eigenvalues().cwiseSqrt().asDiagonal() * es.eigenvectors().inverse()).real();
+}
+
+// pre:  block structure of T is such that (i,j) is a 1x1 block,
+//       all blocks of sqrtT to left of and below (i,j) are correct
+// post: sqrtT(i,j) has the correct value
+template <typename MatrixType>
+void MatrixSquareRootQuasiTriangular<MatrixType>
+     ::compute1x1offDiagonalBlock(MatrixType& sqrtT, const MatrixType& T, 
+				  typename MatrixType::Index i, typename MatrixType::Index j)
+{
+  Scalar tmp = (sqrtT.row(i).segment(i+1,j-i-1) * sqrtT.col(j).segment(i+1,j-i-1)).value();
+  sqrtT.coeffRef(i,j) = (T.coeff(i,j) - tmp) / (sqrtT.coeff(i,i) + sqrtT.coeff(j,j));
+}
+
+// similar to compute1x1offDiagonalBlock()
+template <typename MatrixType>
+void MatrixSquareRootQuasiTriangular<MatrixType>
+     ::compute1x2offDiagonalBlock(MatrixType& sqrtT, const MatrixType& T, 
+				  typename MatrixType::Index i, typename MatrixType::Index j)
+{
+  Matrix<Scalar,1,2> rhs = T.template block<1,2>(i,j);
+  if (j-i > 1)
+    rhs -= sqrtT.block(i, i+1, 1, j-i-1) * sqrtT.block(i+1, j, j-i-1, 2);
+  Matrix<Scalar,2,2> A = sqrtT.coeff(i,i) * Matrix<Scalar,2,2>::Identity();
+  A += sqrtT.template block<2,2>(j,j).transpose();
+  sqrtT.template block<1,2>(i,j).transpose() = A.fullPivLu().solve(rhs.transpose());
+}
+
+// similar to compute1x1offDiagonalBlock()
+template <typename MatrixType>
+void MatrixSquareRootQuasiTriangular<MatrixType>
+     ::compute2x1offDiagonalBlock(MatrixType& sqrtT, const MatrixType& T, 
+				  typename MatrixType::Index i, typename MatrixType::Index j)
+{
+  Matrix<Scalar,2,1> rhs = T.template block<2,1>(i,j);
+  if (j-i > 2)
+    rhs -= sqrtT.block(i, i+2, 2, j-i-2) * sqrtT.block(i+2, j, j-i-2, 1);
+  Matrix<Scalar,2,2> A = sqrtT.coeff(j,j) * Matrix<Scalar,2,2>::Identity();
+  A += sqrtT.template block<2,2>(i,i);
+  sqrtT.template block<2,1>(i,j) = A.fullPivLu().solve(rhs);
+}
+
+// similar to compute1x1offDiagonalBlock()
+template <typename MatrixType>
+void MatrixSquareRootQuasiTriangular<MatrixType>
+     ::compute2x2offDiagonalBlock(MatrixType& sqrtT, const MatrixType& T, 
+				  typename MatrixType::Index i, typename MatrixType::Index j)
+{
+  Matrix<Scalar,2,2> A = sqrtT.template block<2,2>(i,i);
+  Matrix<Scalar,2,2> B = sqrtT.template block<2,2>(j,j);
+  Matrix<Scalar,2,2> C = T.template block<2,2>(i,j);
+  if (j-i > 2)
+    C -= sqrtT.block(i, i+2, 2, j-i-2) * sqrtT.block(i+2, j, j-i-2, 2);
+  Matrix<Scalar,2,2> X;
+  solveAuxiliaryEquation(X, A, B, C);
+  sqrtT.template block<2,2>(i,j) = X;
+}
+
+// solves the equation A X + X B = C where all matrices are 2-by-2
+template <typename MatrixType>
+template <typename SmallMatrixType>
+void MatrixSquareRootQuasiTriangular<MatrixType>
+     ::solveAuxiliaryEquation(SmallMatrixType& X, const SmallMatrixType& A,
+			      const SmallMatrixType& B, const SmallMatrixType& C)
+{
+  EIGEN_STATIC_ASSERT((internal::is_same<SmallMatrixType, Matrix<Scalar,2,2> >::value),
+		      EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT);
+
+  Matrix<Scalar,4,4> coeffMatrix = Matrix<Scalar,4,4>::Zero();
+  coeffMatrix.coeffRef(0,0) = A.coeff(0,0) + B.coeff(0,0);
+  coeffMatrix.coeffRef(1,1) = A.coeff(0,0) + B.coeff(1,1);
+  coeffMatrix.coeffRef(2,2) = A.coeff(1,1) + B.coeff(0,0);
+  coeffMatrix.coeffRef(3,3) = A.coeff(1,1) + B.coeff(1,1);
+  coeffMatrix.coeffRef(0,1) = B.coeff(1,0);
+  coeffMatrix.coeffRef(0,2) = A.coeff(0,1);
+  coeffMatrix.coeffRef(1,0) = B.coeff(0,1);
+  coeffMatrix.coeffRef(1,3) = A.coeff(0,1);
+  coeffMatrix.coeffRef(2,0) = A.coeff(1,0);
+  coeffMatrix.coeffRef(2,3) = B.coeff(1,0);
+  coeffMatrix.coeffRef(3,1) = A.coeff(1,0);
+  coeffMatrix.coeffRef(3,2) = B.coeff(0,1);
+  
+  Matrix<Scalar,4,1> rhs;
+  rhs.coeffRef(0) = C.coeff(0,0);
+  rhs.coeffRef(1) = C.coeff(0,1);
+  rhs.coeffRef(2) = C.coeff(1,0);
+  rhs.coeffRef(3) = C.coeff(1,1);
+  
+  Matrix<Scalar,4,1> result;
+  result = coeffMatrix.fullPivLu().solve(rhs);
+
+  X.coeffRef(0,0) = result.coeff(0);
+  X.coeffRef(0,1) = result.coeff(1);
+  X.coeffRef(1,0) = result.coeff(2);
+  X.coeffRef(1,1) = result.coeff(3);
+}
+
+
+/** \ingroup MatrixFunctions_Module
+  * \brief Class for computing matrix square roots of upper triangular matrices.
+  * \tparam  MatrixType  type of the argument of the matrix square root,
+  *                      expected to be an instantiation of the Matrix class template.
+  *
+  * This class computes the square root of the upper triangular matrix
+  * stored in the upper triangular part (including the diagonal) of
+  * the matrix passed to the constructor.
+  *
+  * \sa MatrixSquareRoot, MatrixSquareRootQuasiTriangular
+  */
+template <typename MatrixType>
+class MatrixSquareRootTriangular
+{
+  public:
+    MatrixSquareRootTriangular(const MatrixType& A) 
+      : m_A(A) 
+    {
+      eigen_assert(A.rows() == A.cols());
+    }
+
+    /** \brief Compute the matrix square root
+      *
+      * \param[out] result  square root of \p A, as specified in the constructor.
+      *
+      * Only the upper triangular part (including the diagonal) of 
+      * \p result is updated, the rest is not touched.  See
+      * MatrixBase::sqrt() for details on how this computation is
+      * implemented.
+      */
+    template <typename ResultType> void compute(ResultType &result);    
+
+ private:
+    const MatrixType& m_A;
+};
+
+template <typename MatrixType>
+template <typename ResultType> 
+void MatrixSquareRootTriangular<MatrixType>::compute(ResultType &result)
+{
+  using std::sqrt;
+
+  // Compute square root of m_A and store it in upper triangular part of result
+  // This uses that the square root of triangular matrices can be computed directly.
+  result.resize(m_A.rows(), m_A.cols());
+  typedef typename MatrixType::Index Index;
+  for (Index i = 0; i < m_A.rows(); i++) {
+    result.coeffRef(i,i) = sqrt(m_A.coeff(i,i));
+  }
+  for (Index j = 1; j < m_A.cols(); j++) {
+    for (Index i = j-1; i >= 0; i--) {
+      typedef typename MatrixType::Scalar Scalar;
+      // if i = j-1, then segment has length 0 so tmp = 0
+      Scalar tmp = (result.row(i).segment(i+1,j-i-1) * result.col(j).segment(i+1,j-i-1)).value();
+      // denominator may be zero if original matrix is singular
+      result.coeffRef(i,j) = (m_A.coeff(i,j) - tmp) / (result.coeff(i,i) + result.coeff(j,j));
+    }
+  }
+}
+
+
+/** \ingroup MatrixFunctions_Module
+  * \brief Class for computing matrix square roots of general matrices.
+  * \tparam  MatrixType  type of the argument of the matrix square root,
+  *                      expected to be an instantiation of the Matrix class template.
+  *
+  * \sa MatrixSquareRootTriangular, MatrixSquareRootQuasiTriangular, MatrixBase::sqrt()
+  */
+template <typename MatrixType, int IsComplex = NumTraits<typename internal::traits<MatrixType>::Scalar>::IsComplex>
+class MatrixSquareRoot
+{
+  public:
+
+    /** \brief Constructor. 
+      *
+      * \param[in]  A  matrix whose square root is to be computed.
+      *
+      * The class stores a reference to \p A, so it should not be
+      * changed (or destroyed) before compute() is called.
+      */
+    MatrixSquareRoot(const MatrixType& A); 
+    
+    /** \brief Compute the matrix square root
+      *
+      * \param[out] result  square root of \p A, as specified in the constructor.
+      *
+      * See MatrixBase::sqrt() for details on how this computation is
+      * implemented.
+      */
+    template <typename ResultType> void compute(ResultType &result);    
+};
+
+
+// ********** Partial specialization for real matrices **********
+
+template <typename MatrixType>
+class MatrixSquareRoot<MatrixType, 0>
+{
+  public:
+
+    MatrixSquareRoot(const MatrixType& A) 
+      : m_A(A) 
+    {  
+      eigen_assert(A.rows() == A.cols());
+    }
+  
+    template <typename ResultType> void compute(ResultType &result)
+    {
+      // Compute Schur decomposition of m_A
+      const RealSchur<MatrixType> schurOfA(m_A);  
+      const MatrixType& T = schurOfA.matrixT();
+      const MatrixType& U = schurOfA.matrixU();
+    
+      // Compute square root of T
+      MatrixType sqrtT = MatrixType::Zero(m_A.rows(), m_A.cols());
+      MatrixSquareRootQuasiTriangular<MatrixType>(T).compute(sqrtT);
+    
+      // Compute square root of m_A
+      result = U * sqrtT * U.adjoint();
+    }
+    
+  private:
+    const MatrixType& m_A;
+};
+
+
+// ********** Partial specialization for complex matrices **********
+
+template <typename MatrixType>
+class MatrixSquareRoot<MatrixType, 1>
+{
+  public:
+
+    MatrixSquareRoot(const MatrixType& A) 
+      : m_A(A) 
+    {  
+      eigen_assert(A.rows() == A.cols());
+    }
+  
+    template <typename ResultType> void compute(ResultType &result)
+    {
+      // Compute Schur decomposition of m_A
+      const ComplexSchur<MatrixType> schurOfA(m_A);  
+      const MatrixType& T = schurOfA.matrixT();
+      const MatrixType& U = schurOfA.matrixU();
+    
+      // Compute square root of T
+      MatrixType sqrtT;
+      MatrixSquareRootTriangular<MatrixType>(T).compute(sqrtT);
+    
+      // Compute square root of m_A
+      result = U * (sqrtT.template triangularView<Upper>() * U.adjoint());
+    }
+    
+  private:
+    const MatrixType& m_A;
+};
+
+
+/** \ingroup MatrixFunctions_Module
+  *
+  * \brief Proxy for the matrix square root of some matrix (expression).
+  *
+  * \tparam Derived  Type of the argument to the matrix square root.
+  *
+  * This class holds the argument to the matrix square root until it
+  * is assigned or evaluated for some other reason (so the argument
+  * should not be changed in the meantime). It is the return type of
+  * MatrixBase::sqrt() and most of the time this is the only way it is
+  * used.
+  */
+template<typename Derived> class MatrixSquareRootReturnValue
+: public ReturnByValue<MatrixSquareRootReturnValue<Derived> >
+{
+    typedef typename Derived::Index Index;
+  public:
+    /** \brief Constructor.
+      *
+      * \param[in]  src  %Matrix (expression) forming the argument of the
+      * matrix square root.
+      */
+    MatrixSquareRootReturnValue(const Derived& src) : m_src(src) { }
+
+    /** \brief Compute the matrix square root.
+      *
+      * \param[out]  result  the matrix square root of \p src in the
+      * constructor.
+      */
+    template <typename ResultType>
+    inline void evalTo(ResultType& result) const
+    {
+      const typename Derived::PlainObject srcEvaluated = m_src.eval();
+      MatrixSquareRoot<typename Derived::PlainObject> me(srcEvaluated);
+      me.compute(result);
+    }
+
+    Index rows() const { return m_src.rows(); }
+    Index cols() const { return m_src.cols(); }
+
+  protected:
+    const Derived& m_src;
+  private:
+    MatrixSquareRootReturnValue& operator=(const MatrixSquareRootReturnValue&);
+};
+
+namespace internal {
+template<typename Derived>
+struct traits<MatrixSquareRootReturnValue<Derived> >
+{
+  typedef typename Derived::PlainObject ReturnType;
+};
+}
+
+template <typename Derived>
+const MatrixSquareRootReturnValue<Derived> MatrixBase<Derived>::sqrt() const
+{
+  eigen_assert(rows() == cols());
+  return MatrixSquareRootReturnValue<Derived>(derived());
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIX_FUNCTION
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h	(revision 2476)
@@ -0,0 +1,591 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009-2011 Jitse Niesen <jitse@maths.leeds.ac.uk>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_MATRIX_FUNCTION
+#define EIGEN_MATRIX_FUNCTION
+
+#include "StemFunction.h"
+#include "MatrixFunctionAtomic.h"
+
+
+namespace Eigen { 
+
+/** \ingroup MatrixFunctions_Module
+  * \brief Class for computing matrix functions.
+  * \tparam  MatrixType  type of the argument of the matrix function,
+  *                      expected to be an instantiation of the Matrix class template.
+  * \tparam  AtomicType  type for computing matrix function of atomic blocks.
+  * \tparam  IsComplex   used internally to select correct specialization.
+  *
+  * This class implements the Schur-Parlett algorithm for computing matrix functions. The spectrum of the
+  * matrix is divided in clustered of eigenvalues that lies close together. This class delegates the
+  * computation of the matrix function on every block corresponding to these clusters to an object of type
+  * \p AtomicType and uses these results to compute the matrix function of the whole matrix. The class
+  * \p AtomicType should have a \p compute() member function for computing the matrix function of a block.
+  *
+  * \sa class MatrixFunctionAtomic, class MatrixLogarithmAtomic
+  */
+template <typename MatrixType, 
+	  typename AtomicType,  
+          int IsComplex = NumTraits<typename internal::traits<MatrixType>::Scalar>::IsComplex>
+class MatrixFunction
+{  
+  public:
+
+    /** \brief Constructor. 
+      *
+      * \param[in]  A       argument of matrix function, should be a square matrix.
+      * \param[in]  atomic  class for computing matrix function of atomic blocks.
+      *
+      * The class stores references to \p A and \p atomic, so they should not be
+      * changed (or destroyed) before compute() is called.
+      */
+    MatrixFunction(const MatrixType& A, AtomicType& atomic);
+
+    /** \brief Compute the matrix function.
+      *
+      * \param[out] result  the function \p f applied to \p A, as
+      * specified in the constructor.
+      *
+      * See MatrixBase::matrixFunction() for details on how this computation
+      * is implemented.
+      */
+    template <typename ResultType> 
+    void compute(ResultType &result);    
+};
+
+
+/** \internal \ingroup MatrixFunctions_Module 
+  * \brief Partial specialization of MatrixFunction for real matrices
+  */
+template <typename MatrixType, typename AtomicType>
+class MatrixFunction<MatrixType, AtomicType, 0>
+{  
+  private:
+
+    typedef internal::traits<MatrixType> Traits;
+    typedef typename Traits::Scalar Scalar;
+    static const int Rows = Traits::RowsAtCompileTime;
+    static const int Cols = Traits::ColsAtCompileTime;
+    static const int Options = MatrixType::Options;
+    static const int MaxRows = Traits::MaxRowsAtCompileTime;
+    static const int MaxCols = Traits::MaxColsAtCompileTime;
+
+    typedef std::complex<Scalar> ComplexScalar;
+    typedef Matrix<ComplexScalar, Rows, Cols, Options, MaxRows, MaxCols> ComplexMatrix;
+
+  public:
+
+    /** \brief Constructor. 
+      *
+      * \param[in]  A       argument of matrix function, should be a square matrix.
+      * \param[in]  atomic  class for computing matrix function of atomic blocks.
+      */
+    MatrixFunction(const MatrixType& A, AtomicType& atomic) : m_A(A), m_atomic(atomic) { }
+
+    /** \brief Compute the matrix function.
+      *
+      * \param[out] result  the function \p f applied to \p A, as
+      * specified in the constructor.
+      *
+      * This function converts the real matrix \c A to a complex matrix,
+      * uses MatrixFunction<MatrixType,1> and then converts the result back to
+      * a real matrix.
+      */
+    template <typename ResultType>
+    void compute(ResultType& result) 
+    {
+      ComplexMatrix CA = m_A.template cast<ComplexScalar>();
+      ComplexMatrix Cresult;
+      MatrixFunction<ComplexMatrix, AtomicType> mf(CA, m_atomic);
+      mf.compute(Cresult);
+      result = Cresult.real();
+    }
+
+  private:
+    typename internal::nested<MatrixType>::type m_A; /**< \brief Reference to argument of matrix function. */
+    AtomicType& m_atomic; /**< \brief Class for computing matrix function of atomic blocks. */
+
+    MatrixFunction& operator=(const MatrixFunction&);
+};
+
+      
+/** \internal \ingroup MatrixFunctions_Module 
+  * \brief Partial specialization of MatrixFunction for complex matrices
+  */
+template <typename MatrixType, typename AtomicType>
+class MatrixFunction<MatrixType, AtomicType, 1>
+{
+  private:
+
+    typedef internal::traits<MatrixType> Traits;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+    static const int RowsAtCompileTime = Traits::RowsAtCompileTime;
+    static const int ColsAtCompileTime = Traits::ColsAtCompileTime;
+    static const int Options = MatrixType::Options;
+    typedef typename NumTraits<Scalar>::Real RealScalar;
+    typedef Matrix<Scalar, Traits::RowsAtCompileTime, 1> VectorType;
+    typedef Matrix<Index, Traits::RowsAtCompileTime, 1> IntVectorType;
+    typedef Matrix<Index, Dynamic, 1> DynamicIntVectorType;
+    typedef std::list<Scalar> Cluster;
+    typedef std::list<Cluster> ListOfClusters;
+    typedef Matrix<Scalar, Dynamic, Dynamic, Options, RowsAtCompileTime, ColsAtCompileTime> DynMatrixType;
+
+  public:
+
+    MatrixFunction(const MatrixType& A, AtomicType& atomic);
+    template <typename ResultType> void compute(ResultType& result);
+
+  private:
+
+    void computeSchurDecomposition();
+    void partitionEigenvalues();
+    typename ListOfClusters::iterator findCluster(Scalar key);
+    void computeClusterSize();
+    void computeBlockStart();
+    void constructPermutation();
+    void permuteSchur();
+    void swapEntriesInSchur(Index index);
+    void computeBlockAtomic();
+    Block<MatrixType> block(MatrixType& A, Index i, Index j);
+    void computeOffDiagonal();
+    DynMatrixType solveTriangularSylvester(const DynMatrixType& A, const DynMatrixType& B, const DynMatrixType& C);
+
+    typename internal::nested<MatrixType>::type m_A; /**< \brief Reference to argument of matrix function. */
+    AtomicType& m_atomic; /**< \brief Class for computing matrix function of atomic blocks. */
+    MatrixType m_T; /**< \brief Triangular part of Schur decomposition */
+    MatrixType m_U; /**< \brief Unitary part of Schur decomposition */
+    MatrixType m_fT; /**< \brief %Matrix function applied to #m_T */
+    ListOfClusters m_clusters; /**< \brief Partition of eigenvalues into clusters of ei'vals "close" to each other */
+    DynamicIntVectorType m_eivalToCluster; /**< \brief m_eivalToCluster[i] = j means i-th ei'val is in j-th cluster */
+    DynamicIntVectorType m_clusterSize; /**< \brief Number of eigenvalues in each clusters  */
+    DynamicIntVectorType m_blockStart; /**< \brief Row index at which block corresponding to i-th cluster starts */
+    IntVectorType m_permutation; /**< \brief Permutation which groups ei'vals in the same cluster together */
+
+    /** \brief Maximum distance allowed between eigenvalues to be considered "close".
+      *
+      * This is morally a \c static \c const \c Scalar, but only
+      * integers can be static constant class members in C++. The
+      * separation constant is set to 0.1, a value taken from the
+      * paper by Davies and Higham. */
+    static const RealScalar separation() { return static_cast<RealScalar>(0.1); }
+
+    MatrixFunction& operator=(const MatrixFunction&);
+};
+
+/** \brief Constructor. 
+ *
+ * \param[in]  A       argument of matrix function, should be a square matrix.
+ * \param[in]  atomic  class for computing matrix function of atomic blocks.
+ */
+template <typename MatrixType, typename AtomicType>
+MatrixFunction<MatrixType,AtomicType,1>::MatrixFunction(const MatrixType& A, AtomicType& atomic)
+  : m_A(A), m_atomic(atomic)
+{
+  /* empty body */
+}
+
+/** \brief Compute the matrix function.
+  *
+  * \param[out] result  the function \p f applied to \p A, as
+  * specified in the constructor.
+  */
+template <typename MatrixType, typename AtomicType>
+template <typename ResultType>
+void MatrixFunction<MatrixType,AtomicType,1>::compute(ResultType& result) 
+{
+  computeSchurDecomposition();
+  partitionEigenvalues();
+  computeClusterSize();
+  computeBlockStart();
+  constructPermutation();
+  permuteSchur();
+  computeBlockAtomic();
+  computeOffDiagonal();
+  result = m_U * (m_fT.template triangularView<Upper>() * m_U.adjoint());
+}
+
+/** \brief Store the Schur decomposition of #m_A in #m_T and #m_U */
+template <typename MatrixType, typename AtomicType>
+void MatrixFunction<MatrixType,AtomicType,1>::computeSchurDecomposition()
+{
+  const ComplexSchur<MatrixType> schurOfA(m_A);  
+  m_T = schurOfA.matrixT();
+  m_U = schurOfA.matrixU();
+}
+
+/** \brief Partition eigenvalues in clusters of ei'vals close to each other
+  * 
+  * This function computes #m_clusters. This is a partition of the
+  * eigenvalues of #m_T in clusters, such that
+  * # Any eigenvalue in a certain cluster is at most separation() away
+  *   from another eigenvalue in the same cluster.
+  * # The distance between two eigenvalues in different clusters is
+  *   more than separation().
+  * The implementation follows Algorithm 4.1 in the paper of Davies
+  * and Higham. 
+  */
+template <typename MatrixType, typename AtomicType>
+void MatrixFunction<MatrixType,AtomicType,1>::partitionEigenvalues()
+{
+  using std::abs;
+  const Index rows = m_T.rows();
+  VectorType diag = m_T.diagonal(); // contains eigenvalues of A
+
+  for (Index i=0; i<rows; ++i) {
+    // Find set containing diag(i), adding a new set if necessary
+    typename ListOfClusters::iterator qi = findCluster(diag(i));
+    if (qi == m_clusters.end()) {
+      Cluster l;
+      l.push_back(diag(i));
+      m_clusters.push_back(l);
+      qi = m_clusters.end();
+      --qi;
+    }
+
+    // Look for other element to add to the set
+    for (Index j=i+1; j<rows; ++j) {
+      if (abs(diag(j) - diag(i)) <= separation() && std::find(qi->begin(), qi->end(), diag(j)) == qi->end()) {
+        typename ListOfClusters::iterator qj = findCluster(diag(j));
+        if (qj == m_clusters.end()) {
+          qi->push_back(diag(j));
+        } else {
+          qi->insert(qi->end(), qj->begin(), qj->end());
+          m_clusters.erase(qj);
+        }
+      }
+    }
+  }
+}
+
+/** \brief Find cluster in #m_clusters containing some value 
+  * \param[in] key Value to find
+  * \returns Iterator to cluster containing \c key, or
+  * \c m_clusters.end() if no cluster in m_clusters contains \c key.
+  */
+template <typename MatrixType, typename AtomicType>
+typename MatrixFunction<MatrixType,AtomicType,1>::ListOfClusters::iterator MatrixFunction<MatrixType,AtomicType,1>::findCluster(Scalar key)
+{
+  typename Cluster::iterator j;
+  for (typename ListOfClusters::iterator i = m_clusters.begin(); i != m_clusters.end(); ++i) {
+    j = std::find(i->begin(), i->end(), key);
+    if (j != i->end())
+      return i;
+  }
+  return m_clusters.end();
+}
+
+/** \brief Compute #m_clusterSize and #m_eivalToCluster using #m_clusters */
+template <typename MatrixType, typename AtomicType>
+void MatrixFunction<MatrixType,AtomicType,1>::computeClusterSize()
+{
+  const Index rows = m_T.rows();
+  VectorType diag = m_T.diagonal(); 
+  const Index numClusters = static_cast<Index>(m_clusters.size());
+
+  m_clusterSize.setZero(numClusters);
+  m_eivalToCluster.resize(rows);
+  Index clusterIndex = 0;
+  for (typename ListOfClusters::const_iterator cluster = m_clusters.begin(); cluster != m_clusters.end(); ++cluster) {
+    for (Index i = 0; i < diag.rows(); ++i) {
+      if (std::find(cluster->begin(), cluster->end(), diag(i)) != cluster->end()) {
+        ++m_clusterSize[clusterIndex];
+        m_eivalToCluster[i] = clusterIndex;
+      }
+    }
+    ++clusterIndex;
+  }
+}
+
+/** \brief Compute #m_blockStart using #m_clusterSize */
+template <typename MatrixType, typename AtomicType>
+void MatrixFunction<MatrixType,AtomicType,1>::computeBlockStart()
+{
+  m_blockStart.resize(m_clusterSize.rows());
+  m_blockStart(0) = 0;
+  for (Index i = 1; i < m_clusterSize.rows(); i++) {
+    m_blockStart(i) = m_blockStart(i-1) + m_clusterSize(i-1);
+  }
+}
+
+/** \brief Compute #m_permutation using #m_eivalToCluster and #m_blockStart */
+template <typename MatrixType, typename AtomicType>
+void MatrixFunction<MatrixType,AtomicType,1>::constructPermutation()
+{
+  DynamicIntVectorType indexNextEntry = m_blockStart;
+  m_permutation.resize(m_T.rows());
+  for (Index i = 0; i < m_T.rows(); i++) {
+    Index cluster = m_eivalToCluster[i];
+    m_permutation[i] = indexNextEntry[cluster];
+    ++indexNextEntry[cluster];
+  }
+}  
+
+/** \brief Permute Schur decomposition in #m_U and #m_T according to #m_permutation */
+template <typename MatrixType, typename AtomicType>
+void MatrixFunction<MatrixType,AtomicType,1>::permuteSchur()
+{
+  IntVectorType p = m_permutation;
+  for (Index i = 0; i < p.rows() - 1; i++) {
+    Index j;
+    for (j = i; j < p.rows(); j++) {
+      if (p(j) == i) break;
+    }
+    eigen_assert(p(j) == i);
+    for (Index k = j-1; k >= i; k--) {
+      swapEntriesInSchur(k);
+      std::swap(p.coeffRef(k), p.coeffRef(k+1));
+    }
+  }
+}
+
+/** \brief Swap rows \a index and \a index+1 in Schur decomposition in #m_U and #m_T */
+template <typename MatrixType, typename AtomicType>
+void MatrixFunction<MatrixType,AtomicType,1>::swapEntriesInSchur(Index index)
+{
+  JacobiRotation<Scalar> rotation;
+  rotation.makeGivens(m_T(index, index+1), m_T(index+1, index+1) - m_T(index, index));
+  m_T.applyOnTheLeft(index, index+1, rotation.adjoint());
+  m_T.applyOnTheRight(index, index+1, rotation);
+  m_U.applyOnTheRight(index, index+1, rotation);
+}  
+
+/** \brief Compute block diagonal part of #m_fT.
+  *
+  * This routine computes the matrix function applied to the block diagonal part of #m_T, with the blocking
+  * given by #m_blockStart. The matrix function of each diagonal block is computed by #m_atomic. The
+  * off-diagonal parts of #m_fT are set to zero.
+  */
+template <typename MatrixType, typename AtomicType>
+void MatrixFunction<MatrixType,AtomicType,1>::computeBlockAtomic()
+{ 
+  m_fT.resize(m_T.rows(), m_T.cols());
+  m_fT.setZero();
+  for (Index i = 0; i < m_clusterSize.rows(); ++i) {
+    block(m_fT, i, i) = m_atomic.compute(block(m_T, i, i));
+  }
+}
+
+/** \brief Return block of matrix according to blocking given by #m_blockStart */
+template <typename MatrixType, typename AtomicType>
+Block<MatrixType> MatrixFunction<MatrixType,AtomicType,1>::block(MatrixType& A, Index i, Index j)
+{
+  return A.block(m_blockStart(i), m_blockStart(j), m_clusterSize(i), m_clusterSize(j));
+}
+
+/** \brief Compute part of #m_fT above block diagonal.
+  *
+  * This routine assumes that the block diagonal part of #m_fT (which
+  * equals the matrix function applied to #m_T) has already been computed and computes
+  * the part above the block diagonal. The part below the diagonal is
+  * zero, because #m_T is upper triangular.
+  */
+template <typename MatrixType, typename AtomicType>
+void MatrixFunction<MatrixType,AtomicType,1>::computeOffDiagonal()
+{ 
+  for (Index diagIndex = 1; diagIndex < m_clusterSize.rows(); diagIndex++) {
+    for (Index blockIndex = 0; blockIndex < m_clusterSize.rows() - diagIndex; blockIndex++) {
+      // compute (blockIndex, blockIndex+diagIndex) block
+      DynMatrixType A = block(m_T, blockIndex, blockIndex);
+      DynMatrixType B = -block(m_T, blockIndex+diagIndex, blockIndex+diagIndex);
+      DynMatrixType C = block(m_fT, blockIndex, blockIndex) * block(m_T, blockIndex, blockIndex+diagIndex);
+      C -= block(m_T, blockIndex, blockIndex+diagIndex) * block(m_fT, blockIndex+diagIndex, blockIndex+diagIndex);
+      for (Index k = blockIndex + 1; k < blockIndex + diagIndex; k++) {
+	C += block(m_fT, blockIndex, k) * block(m_T, k, blockIndex+diagIndex);
+	C -= block(m_T, blockIndex, k) * block(m_fT, k, blockIndex+diagIndex);
+      }
+      block(m_fT, blockIndex, blockIndex+diagIndex) = solveTriangularSylvester(A, B, C);
+    }
+  }
+}
+
+/** \brief Solve a triangular Sylvester equation AX + XB = C 
+  *
+  * \param[in]  A  the matrix A; should be square and upper triangular
+  * \param[in]  B  the matrix B; should be square and upper triangular
+  * \param[in]  C  the matrix C; should have correct size.
+  *
+  * \returns the solution X.
+  *
+  * If A is m-by-m and B is n-by-n, then both C and X are m-by-n. 
+  * The (i,j)-th component of the Sylvester equation is
+  * \f[ 
+  *     \sum_{k=i}^m A_{ik} X_{kj} + \sum_{k=1}^j X_{ik} B_{kj} = C_{ij}. 
+  * \f]
+  * This can be re-arranged to yield:
+  * \f[ 
+  *     X_{ij} = \frac{1}{A_{ii} + B_{jj}} \Bigl( C_{ij}
+  *     - \sum_{k=i+1}^m A_{ik} X_{kj} - \sum_{k=1}^{j-1} X_{ik} B_{kj} \Bigr).
+  * \f]
+  * It is assumed that A and B are such that the numerator is never
+  * zero (otherwise the Sylvester equation does not have a unique
+  * solution). In that case, these equations can be evaluated in the
+  * order \f$ i=m,\ldots,1 \f$ and \f$ j=1,\ldots,n \f$.
+  */
+template <typename MatrixType, typename AtomicType>
+typename MatrixFunction<MatrixType,AtomicType,1>::DynMatrixType MatrixFunction<MatrixType,AtomicType,1>::solveTriangularSylvester(
+  const DynMatrixType& A, 
+  const DynMatrixType& B, 
+  const DynMatrixType& C)
+{
+  eigen_assert(A.rows() == A.cols());
+  eigen_assert(A.isUpperTriangular());
+  eigen_assert(B.rows() == B.cols());
+  eigen_assert(B.isUpperTriangular());
+  eigen_assert(C.rows() == A.rows());
+  eigen_assert(C.cols() == B.rows());
+
+  Index m = A.rows();
+  Index n = B.rows();
+  DynMatrixType X(m, n);
+
+  for (Index i = m - 1; i >= 0; --i) {
+    for (Index j = 0; j < n; ++j) {
+
+      // Compute AX = \sum_{k=i+1}^m A_{ik} X_{kj}
+      Scalar AX;
+      if (i == m - 1) {
+	AX = 0; 
+      } else {
+	Matrix<Scalar,1,1> AXmatrix = A.row(i).tail(m-1-i) * X.col(j).tail(m-1-i);
+	AX = AXmatrix(0,0);
+      }
+
+      // Compute XB = \sum_{k=1}^{j-1} X_{ik} B_{kj}
+      Scalar XB;
+      if (j == 0) {
+	XB = 0; 
+      } else {
+	Matrix<Scalar,1,1> XBmatrix = X.row(i).head(j) * B.col(j).head(j);
+	XB = XBmatrix(0,0);
+      }
+
+      X(i,j) = (C(i,j) - AX - XB) / (A(i,i) + B(j,j));
+    }
+  }
+  return X;
+}
+
+/** \ingroup MatrixFunctions_Module
+  *
+  * \brief Proxy for the matrix function of some matrix (expression).
+  *
+  * \tparam Derived  Type of the argument to the matrix function.
+  *
+  * This class holds the argument to the matrix function until it is
+  * assigned or evaluated for some other reason (so the argument
+  * should not be changed in the meantime). It is the return type of
+  * matrixBase::matrixFunction() and related functions and most of the
+  * time this is the only way it is used.
+  */
+template<typename Derived> class MatrixFunctionReturnValue
+: public ReturnByValue<MatrixFunctionReturnValue<Derived> >
+{
+  public:
+
+    typedef typename Derived::Scalar Scalar;
+    typedef typename Derived::Index Index;
+    typedef typename internal::stem_function<Scalar>::type StemFunction;
+
+   /** \brief Constructor.
+      *
+      * \param[in] A  %Matrix (expression) forming the argument of the
+      * matrix function.
+      * \param[in] f  Stem function for matrix function under consideration.
+      */
+    MatrixFunctionReturnValue(const Derived& A, StemFunction f) : m_A(A), m_f(f) { }
+
+    /** \brief Compute the matrix function.
+      *
+      * \param[out] result \p f applied to \p A, where \p f and \p A
+      * are as in the constructor.
+      */
+    template <typename ResultType>
+    inline void evalTo(ResultType& result) const
+    {
+      typedef typename Derived::PlainObject PlainObject;
+      typedef internal::traits<PlainObject> Traits;
+      static const int RowsAtCompileTime = Traits::RowsAtCompileTime;
+      static const int ColsAtCompileTime = Traits::ColsAtCompileTime;
+      static const int Options = PlainObject::Options;
+      typedef std::complex<typename NumTraits<Scalar>::Real> ComplexScalar;
+      typedef Matrix<ComplexScalar, Dynamic, Dynamic, Options, RowsAtCompileTime, ColsAtCompileTime> DynMatrixType;
+      typedef MatrixFunctionAtomic<DynMatrixType> AtomicType;
+      AtomicType atomic(m_f);
+
+      const PlainObject Aevaluated = m_A.eval();
+      MatrixFunction<PlainObject, AtomicType> mf(Aevaluated, atomic);
+      mf.compute(result);
+    }
+
+    Index rows() const { return m_A.rows(); }
+    Index cols() const { return m_A.cols(); }
+
+  private:
+    typename internal::nested<Derived>::type m_A;
+    StemFunction *m_f;
+
+    MatrixFunctionReturnValue& operator=(const MatrixFunctionReturnValue&);
+};
+
+namespace internal {
+template<typename Derived>
+struct traits<MatrixFunctionReturnValue<Derived> >
+{
+  typedef typename Derived::PlainObject ReturnType;
+};
+}
+
+
+/********** MatrixBase methods **********/
+
+
+template <typename Derived>
+const MatrixFunctionReturnValue<Derived> MatrixBase<Derived>::matrixFunction(typename internal::stem_function<typename internal::traits<Derived>::Scalar>::type f) const
+{
+  eigen_assert(rows() == cols());
+  return MatrixFunctionReturnValue<Derived>(derived(), f);
+}
+
+template <typename Derived>
+const MatrixFunctionReturnValue<Derived> MatrixBase<Derived>::sin() const
+{
+  eigen_assert(rows() == cols());
+  typedef typename internal::stem_function<Scalar>::ComplexScalar ComplexScalar;
+  return MatrixFunctionReturnValue<Derived>(derived(), StdStemFunctions<ComplexScalar>::sin);
+}
+
+template <typename Derived>
+const MatrixFunctionReturnValue<Derived> MatrixBase<Derived>::cos() const
+{
+  eigen_assert(rows() == cols());
+  typedef typename internal::stem_function<Scalar>::ComplexScalar ComplexScalar;
+  return MatrixFunctionReturnValue<Derived>(derived(), StdStemFunctions<ComplexScalar>::cos);
+}
+
+template <typename Derived>
+const MatrixFunctionReturnValue<Derived> MatrixBase<Derived>::sinh() const
+{
+  eigen_assert(rows() == cols());
+  typedef typename internal::stem_function<Scalar>::ComplexScalar ComplexScalar;
+  return MatrixFunctionReturnValue<Derived>(derived(), StdStemFunctions<ComplexScalar>::sinh);
+}
+
+template <typename Derived>
+const MatrixFunctionReturnValue<Derived> MatrixBase<Derived>::cosh() const
+{
+  eigen_assert(rows() == cols());
+  typedef typename internal::stem_function<Scalar>::ComplexScalar ComplexScalar;
+  return MatrixFunctionReturnValue<Derived>(derived(), StdStemFunctions<ComplexScalar>::cosh);
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_MATRIX_FUNCTION
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h	(revision 2476)
@@ -0,0 +1,220 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_AUTODIFF_VECTOR_H
+#define EIGEN_AUTODIFF_VECTOR_H
+
+namespace Eigen {
+
+/* \class AutoDiffScalar
+  * \brief A scalar type replacement with automatic differentation capability
+  *
+  * \param DerType the vector type used to store/represent the derivatives (e.g. Vector3f)
+  *
+  * This class represents a scalar value while tracking its respective derivatives.
+  *
+  * It supports the following list of global math function:
+  *  - std::abs, std::sqrt, std::pow, std::exp, std::log, std::sin, std::cos,
+  *  - internal::abs, internal::sqrt, numext::pow, internal::exp, internal::log, internal::sin, internal::cos,
+  *  - internal::conj, internal::real, internal::imag, numext::abs2.
+  *
+  * AutoDiffScalar can be used as the scalar type of an Eigen::Matrix object. However,
+  * in that case, the expression template mechanism only occurs at the top Matrix level,
+  * while derivatives are computed right away.
+  *
+  */
+template<typename ValueType, typename JacobianType>
+class AutoDiffVector
+{
+  public:
+    //typedef typename internal::traits<ValueType>::Scalar Scalar;
+    typedef typename internal::traits<ValueType>::Scalar BaseScalar;
+    typedef AutoDiffScalar<Matrix<BaseScalar,JacobianType::RowsAtCompileTime,1> > ActiveScalar;
+    typedef ActiveScalar Scalar;
+    typedef AutoDiffScalar<typename JacobianType::ColXpr> CoeffType;
+    typedef typename JacobianType::Index Index;
+
+    inline AutoDiffVector() {}
+
+    inline AutoDiffVector(const ValueType& values)
+      : m_values(values)
+    {
+      m_jacobian.setZero();
+    }
+
+
+    CoeffType operator[] (Index i) { return CoeffType(m_values[i], m_jacobian.col(i)); }
+    const CoeffType operator[] (Index i) const { return CoeffType(m_values[i], m_jacobian.col(i)); }
+
+    CoeffType operator() (Index i) { return CoeffType(m_values[i], m_jacobian.col(i)); }
+    const CoeffType operator() (Index i) const { return CoeffType(m_values[i], m_jacobian.col(i)); }
+
+    CoeffType coeffRef(Index i) { return CoeffType(m_values[i], m_jacobian.col(i)); }
+    const CoeffType coeffRef(Index i) const { return CoeffType(m_values[i], m_jacobian.col(i)); }
+
+    Index size() const { return m_values.size(); }
+
+    // FIXME here we could return an expression of the sum
+    Scalar sum() const { /*std::cerr << "sum \n\n";*/ /*std::cerr << m_jacobian.rowwise().sum() << "\n\n";*/ return Scalar(m_values.sum(), m_jacobian.rowwise().sum()); }
+
+
+    inline AutoDiffVector(const ValueType& values, const JacobianType& jac)
+      : m_values(values), m_jacobian(jac)
+    {}
+
+    template<typename OtherValueType, typename OtherJacobianType>
+    inline AutoDiffVector(const AutoDiffVector<OtherValueType, OtherJacobianType>& other)
+      : m_values(other.values()), m_jacobian(other.jacobian())
+    {}
+
+    inline AutoDiffVector(const AutoDiffVector& other)
+      : m_values(other.values()), m_jacobian(other.jacobian())
+    {}
+
+    template<typename OtherValueType, typename OtherJacobianType>
+    inline AutoDiffVector& operator=(const AutoDiffVector<OtherValueType, OtherJacobianType>& other)
+    {
+      m_values = other.values();
+      m_jacobian = other.jacobian();
+      return *this;
+    }
+
+    inline AutoDiffVector& operator=(const AutoDiffVector& other)
+    {
+      m_values = other.values();
+      m_jacobian = other.jacobian();
+      return *this;
+    }
+
+    inline const ValueType& values() const { return m_values; }
+    inline ValueType& values() { return m_values; }
+
+    inline const JacobianType& jacobian() const { return m_jacobian; }
+    inline JacobianType& jacobian() { return m_jacobian; }
+
+    template<typename OtherValueType,typename OtherJacobianType>
+    inline const AutoDiffVector<
+      typename MakeCwiseBinaryOp<internal::scalar_sum_op<BaseScalar>,ValueType,OtherValueType>::Type,
+      typename MakeCwiseBinaryOp<internal::scalar_sum_op<BaseScalar>,JacobianType,OtherJacobianType>::Type >
+    operator+(const AutoDiffVector<OtherValueType,OtherJacobianType>& other) const
+    {
+      return AutoDiffVector<
+      typename MakeCwiseBinaryOp<internal::scalar_sum_op<BaseScalar>,ValueType,OtherValueType>::Type,
+      typename MakeCwiseBinaryOp<internal::scalar_sum_op<BaseScalar>,JacobianType,OtherJacobianType>::Type >(
+        m_values + other.values(),
+        m_jacobian + other.jacobian());
+    }
+
+    template<typename OtherValueType, typename OtherJacobianType>
+    inline AutoDiffVector&
+    operator+=(const AutoDiffVector<OtherValueType,OtherJacobianType>& other)
+    {
+      m_values += other.values();
+      m_jacobian += other.jacobian();
+      return *this;
+    }
+
+    template<typename OtherValueType,typename OtherJacobianType>
+    inline const AutoDiffVector<
+      typename MakeCwiseBinaryOp<internal::scalar_difference_op<Scalar>,ValueType,OtherValueType>::Type,
+      typename MakeCwiseBinaryOp<internal::scalar_difference_op<Scalar>,JacobianType,OtherJacobianType>::Type >
+    operator-(const AutoDiffVector<OtherValueType,OtherJacobianType>& other) const
+    {
+      return AutoDiffVector<
+        typename MakeCwiseBinaryOp<internal::scalar_difference_op<Scalar>,ValueType,OtherValueType>::Type,
+        typename MakeCwiseBinaryOp<internal::scalar_difference_op<Scalar>,JacobianType,OtherJacobianType>::Type >(
+          m_values - other.values(),
+          m_jacobian - other.jacobian());
+    }
+
+    template<typename OtherValueType, typename OtherJacobianType>
+    inline AutoDiffVector&
+    operator-=(const AutoDiffVector<OtherValueType,OtherJacobianType>& other)
+    {
+      m_values -= other.values();
+      m_jacobian -= other.jacobian();
+      return *this;
+    }
+
+    inline const AutoDiffVector<
+      typename MakeCwiseUnaryOp<internal::scalar_opposite_op<Scalar>, ValueType>::Type,
+      typename MakeCwiseUnaryOp<internal::scalar_opposite_op<Scalar>, JacobianType>::Type >
+    operator-() const
+    {
+      return AutoDiffVector<
+        typename MakeCwiseUnaryOp<internal::scalar_opposite_op<Scalar>, ValueType>::Type,
+        typename MakeCwiseUnaryOp<internal::scalar_opposite_op<Scalar>, JacobianType>::Type >(
+          -m_values,
+          -m_jacobian);
+    }
+
+    inline const AutoDiffVector<
+      typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, ValueType>::Type,
+      typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>::Type>
+    operator*(const BaseScalar& other) const
+    {
+      return AutoDiffVector<
+        typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, ValueType>::Type,
+        typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>::Type >(
+          m_values * other,
+          m_jacobian * other);
+    }
+
+    friend inline const AutoDiffVector<
+      typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, ValueType>::Type,
+      typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>::Type >
+    operator*(const Scalar& other, const AutoDiffVector& v)
+    {
+      return AutoDiffVector<
+        typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, ValueType>::Type,
+        typename MakeCwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>::Type >(
+          v.values() * other,
+          v.jacobian() * other);
+    }
+
+//     template<typename OtherValueType,typename OtherJacobianType>
+//     inline const AutoDiffVector<
+//       CwiseBinaryOp<internal::scalar_multiple_op<Scalar>, ValueType, OtherValueType>
+//       CwiseBinaryOp<internal::scalar_sum_op<Scalar>,
+//         CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>,
+//         CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, OtherJacobianType> > >
+//     operator*(const AutoDiffVector<OtherValueType,OtherJacobianType>& other) const
+//     {
+//       return AutoDiffVector<
+//         CwiseBinaryOp<internal::scalar_multiple_op<Scalar>, ValueType, OtherValueType>
+//         CwiseBinaryOp<internal::scalar_sum_op<Scalar>,
+//           CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, JacobianType>,
+//           CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, OtherJacobianType> > >(
+//             m_values.cwise() * other.values(),
+//             (m_jacobian * other.values()) + (m_values * other.jacobian()));
+//     }
+
+    inline AutoDiffVector& operator*=(const Scalar& other)
+    {
+      m_values *= other;
+      m_jacobian *= other;
+      return *this;
+    }
+
+    template<typename OtherValueType,typename OtherJacobianType>
+    inline AutoDiffVector& operator*=(const AutoDiffVector<OtherValueType,OtherJacobianType>& other)
+    {
+      *this = *this * other;
+      return *this;
+    }
+
+  protected:
+    ValueType m_values;
+    JacobianType m_jacobian;
+
+};
+
+}
+
+#endif // EIGEN_AUTODIFF_VECTOR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h	(revision 2476)
@@ -0,0 +1,642 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_AUTODIFF_SCALAR_H
+#define EIGEN_AUTODIFF_SCALAR_H
+
+namespace Eigen {
+
+namespace internal {
+
+template<typename A, typename B>
+struct make_coherent_impl {
+  static void run(A&, B&) {}
+};
+
+// resize a to match b is a.size()==0, and conversely.
+template<typename A, typename B>
+void make_coherent(const A& a, const B&b)
+{
+  make_coherent_impl<A,B>::run(a.const_cast_derived(), b.const_cast_derived());
+}
+
+template<typename _DerType, bool Enable> struct auto_diff_special_op;
+
+} // end namespace internal
+
+/** \class AutoDiffScalar
+  * \brief A scalar type replacement with automatic differentation capability
+  *
+  * \param _DerType the vector type used to store/represent the derivatives. The base scalar type
+  *                 as well as the number of derivatives to compute are determined from this type.
+  *                 Typical choices include, e.g., \c Vector4f for 4 derivatives, or \c VectorXf
+  *                 if the number of derivatives is not known at compile time, and/or, the number
+  *                 of derivatives is large.
+  *                 Note that _DerType can also be a reference (e.g., \c VectorXf&) to wrap a
+  *                 existing vector into an AutoDiffScalar.
+  *                 Finally, _DerType can also be any Eigen compatible expression.
+  *
+  * This class represents a scalar value while tracking its respective derivatives using Eigen's expression
+  * template mechanism.
+  *
+  * It supports the following list of global math function:
+  *  - std::abs, std::sqrt, std::pow, std::exp, std::log, std::sin, std::cos,
+  *  - internal::abs, internal::sqrt, numext::pow, internal::exp, internal::log, internal::sin, internal::cos,
+  *  - internal::conj, internal::real, internal::imag, numext::abs2.
+  *
+  * AutoDiffScalar can be used as the scalar type of an Eigen::Matrix object. However,
+  * in that case, the expression template mechanism only occurs at the top Matrix level,
+  * while derivatives are computed right away.
+  *
+  */
+
+template<typename _DerType>
+class AutoDiffScalar
+  : public internal::auto_diff_special_op
+            <_DerType, !internal::is_same<typename internal::traits<typename internal::remove_all<_DerType>::type>::Scalar,
+                                        typename NumTraits<typename internal::traits<typename internal::remove_all<_DerType>::type>::Scalar>::Real>::value>
+{
+  public:
+    typedef internal::auto_diff_special_op
+            <_DerType, !internal::is_same<typename internal::traits<typename internal::remove_all<_DerType>::type>::Scalar,
+                       typename NumTraits<typename internal::traits<typename internal::remove_all<_DerType>::type>::Scalar>::Real>::value> Base;
+    typedef typename internal::remove_all<_DerType>::type DerType;
+    typedef typename internal::traits<DerType>::Scalar Scalar;
+    typedef typename NumTraits<Scalar>::Real Real;
+
+    using Base::operator+;
+    using Base::operator*;
+
+    /** Default constructor without any initialization. */
+    AutoDiffScalar() {}
+
+    /** Constructs an active scalar from its \a value,
+        and initializes the \a nbDer derivatives such that it corresponds to the \a derNumber -th variable */
+    AutoDiffScalar(const Scalar& value, int nbDer, int derNumber)
+      : m_value(value), m_derivatives(DerType::Zero(nbDer))
+    {
+      m_derivatives.coeffRef(derNumber) = Scalar(1);
+    }
+
+    /** Conversion from a scalar constant to an active scalar.
+      * The derivatives are set to zero. */
+    /*explicit*/ AutoDiffScalar(const Real& value)
+      : m_value(value)
+    {
+      if(m_derivatives.size()>0)
+        m_derivatives.setZero();
+    }
+
+    /** Constructs an active scalar from its \a value and derivatives \a der */
+    AutoDiffScalar(const Scalar& value, const DerType& der)
+      : m_value(value), m_derivatives(der)
+    {}
+
+    template<typename OtherDerType>
+    AutoDiffScalar(const AutoDiffScalar<OtherDerType>& other)
+      : m_value(other.value()), m_derivatives(other.derivatives())
+    {}
+
+    friend  std::ostream & operator << (std::ostream & s, const AutoDiffScalar& a)
+    {
+      return s << a.value();
+    }
+
+    AutoDiffScalar(const AutoDiffScalar& other)
+      : m_value(other.value()), m_derivatives(other.derivatives())
+    {}
+
+    template<typename OtherDerType>
+    inline AutoDiffScalar& operator=(const AutoDiffScalar<OtherDerType>& other)
+    {
+      m_value = other.value();
+      m_derivatives = other.derivatives();
+      return *this;
+    }
+
+    inline AutoDiffScalar& operator=(const AutoDiffScalar& other)
+    {
+      m_value = other.value();
+      m_derivatives = other.derivatives();
+      return *this;
+    }
+
+//     inline operator const Scalar& () const { return m_value; }
+//     inline operator Scalar& () { return m_value; }
+
+    inline const Scalar& value() const { return m_value; }
+    inline Scalar& value() { return m_value; }
+
+    inline const DerType& derivatives() const { return m_derivatives; }
+    inline DerType& derivatives() { return m_derivatives; }
+
+    inline bool operator< (const Scalar& other) const  { return m_value <  other; }
+    inline bool operator<=(const Scalar& other) const  { return m_value <= other; }
+    inline bool operator> (const Scalar& other) const  { return m_value >  other; }
+    inline bool operator>=(const Scalar& other) const  { return m_value >= other; }
+    inline bool operator==(const Scalar& other) const  { return m_value == other; }
+    inline bool operator!=(const Scalar& other) const  { return m_value != other; }
+
+    friend inline bool operator< (const Scalar& a, const AutoDiffScalar& b) { return a <  b.value(); }
+    friend inline bool operator<=(const Scalar& a, const AutoDiffScalar& b) { return a <= b.value(); }
+    friend inline bool operator> (const Scalar& a, const AutoDiffScalar& b) { return a >  b.value(); }
+    friend inline bool operator>=(const Scalar& a, const AutoDiffScalar& b) { return a >= b.value(); }
+    friend inline bool operator==(const Scalar& a, const AutoDiffScalar& b) { return a == b.value(); }
+    friend inline bool operator!=(const Scalar& a, const AutoDiffScalar& b) { return a != b.value(); }
+
+    template<typename OtherDerType> inline bool operator< (const AutoDiffScalar<OtherDerType>& b) const  { return m_value <  b.value(); }
+    template<typename OtherDerType> inline bool operator<=(const AutoDiffScalar<OtherDerType>& b) const  { return m_value <= b.value(); }
+    template<typename OtherDerType> inline bool operator> (const AutoDiffScalar<OtherDerType>& b) const  { return m_value >  b.value(); }
+    template<typename OtherDerType> inline bool operator>=(const AutoDiffScalar<OtherDerType>& b) const  { return m_value >= b.value(); }
+    template<typename OtherDerType> inline bool operator==(const AutoDiffScalar<OtherDerType>& b) const  { return m_value == b.value(); }
+    template<typename OtherDerType> inline bool operator!=(const AutoDiffScalar<OtherDerType>& b) const  { return m_value != b.value(); }
+
+    inline const AutoDiffScalar<DerType&> operator+(const Scalar& other) const
+    {
+      return AutoDiffScalar<DerType&>(m_value + other, m_derivatives);
+    }
+
+    friend inline const AutoDiffScalar<DerType&> operator+(const Scalar& a, const AutoDiffScalar& b)
+    {
+      return AutoDiffScalar<DerType&>(a + b.value(), b.derivatives());
+    }
+
+//     inline const AutoDiffScalar<DerType&> operator+(const Real& other) const
+//     {
+//       return AutoDiffScalar<DerType&>(m_value + other, m_derivatives);
+//     }
+
+//     friend inline const AutoDiffScalar<DerType&> operator+(const Real& a, const AutoDiffScalar& b)
+//     {
+//       return AutoDiffScalar<DerType&>(a + b.value(), b.derivatives());
+//     }
+
+    inline AutoDiffScalar& operator+=(const Scalar& other)
+    {
+      value() += other;
+      return *this;
+    }
+
+    template<typename OtherDerType>
+    inline const AutoDiffScalar<CwiseBinaryOp<internal::scalar_sum_op<Scalar>,const DerType,const typename internal::remove_all<OtherDerType>::type> >
+    operator+(const AutoDiffScalar<OtherDerType>& other) const
+    {
+      internal::make_coherent(m_derivatives, other.derivatives());
+      return AutoDiffScalar<CwiseBinaryOp<internal::scalar_sum_op<Scalar>,const DerType,const typename internal::remove_all<OtherDerType>::type> >(
+        m_value + other.value(),
+        m_derivatives + other.derivatives());
+    }
+
+    template<typename OtherDerType>
+    inline AutoDiffScalar&
+    operator+=(const AutoDiffScalar<OtherDerType>& other)
+    {
+      (*this) = (*this) + other;
+      return *this;
+    }
+
+    inline const AutoDiffScalar<DerType&> operator-(const Scalar& b) const
+    {
+      return AutoDiffScalar<DerType&>(m_value - b, m_derivatives);
+    }
+
+    friend inline const AutoDiffScalar<CwiseUnaryOp<internal::scalar_opposite_op<Scalar>, const DerType> >
+    operator-(const Scalar& a, const AutoDiffScalar& b)
+    {
+      return AutoDiffScalar<CwiseUnaryOp<internal::scalar_opposite_op<Scalar>, const DerType> >
+            (a - b.value(), -b.derivatives());
+    }
+
+    inline AutoDiffScalar& operator-=(const Scalar& other)
+    {
+      value() -= other;
+      return *this;
+    }
+
+    template<typename OtherDerType>
+    inline const AutoDiffScalar<CwiseBinaryOp<internal::scalar_difference_op<Scalar>, const DerType,const typename internal::remove_all<OtherDerType>::type> >
+    operator-(const AutoDiffScalar<OtherDerType>& other) const
+    {
+      internal::make_coherent(m_derivatives, other.derivatives());
+      return AutoDiffScalar<CwiseBinaryOp<internal::scalar_difference_op<Scalar>, const DerType,const typename internal::remove_all<OtherDerType>::type> >(
+        m_value - other.value(),
+        m_derivatives - other.derivatives());
+    }
+
+    template<typename OtherDerType>
+    inline AutoDiffScalar&
+    operator-=(const AutoDiffScalar<OtherDerType>& other)
+    {
+      *this = *this - other;
+      return *this;
+    }
+
+    inline const AutoDiffScalar<CwiseUnaryOp<internal::scalar_opposite_op<Scalar>, const DerType> >
+    operator-() const
+    {
+      return AutoDiffScalar<CwiseUnaryOp<internal::scalar_opposite_op<Scalar>, const DerType> >(
+        -m_value,
+        -m_derivatives);
+    }
+
+    inline const AutoDiffScalar<CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DerType> >
+    operator*(const Scalar& other) const
+    {
+      return AutoDiffScalar<CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DerType> >(
+        m_value * other,
+        (m_derivatives * other));
+    }
+
+    friend inline const AutoDiffScalar<CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DerType> >
+    operator*(const Scalar& other, const AutoDiffScalar& a)
+    {
+      return AutoDiffScalar<CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DerType> >(
+        a.value() * other,
+        a.derivatives() * other);
+    }
+
+//     inline const AutoDiffScalar<typename CwiseUnaryOp<internal::scalar_multiple_op<Real>, DerType>::Type >
+//     operator*(const Real& other) const
+//     {
+//       return AutoDiffScalar<typename CwiseUnaryOp<internal::scalar_multiple_op<Real>, DerType>::Type >(
+//         m_value * other,
+//         (m_derivatives * other));
+//     }
+//
+//     friend inline const AutoDiffScalar<typename CwiseUnaryOp<internal::scalar_multiple_op<Real>, DerType>::Type >
+//     operator*(const Real& other, const AutoDiffScalar& a)
+//     {
+//       return AutoDiffScalar<typename CwiseUnaryOp<internal::scalar_multiple_op<Real>, DerType>::Type >(
+//         a.value() * other,
+//         a.derivatives() * other);
+//     }
+
+    inline const AutoDiffScalar<CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DerType> >
+    operator/(const Scalar& other) const
+    {
+      return AutoDiffScalar<CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DerType> >(
+        m_value / other,
+        (m_derivatives * (Scalar(1)/other)));
+    }
+
+    friend inline const AutoDiffScalar<CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DerType> >
+    operator/(const Scalar& other, const AutoDiffScalar& a)
+    {
+      return AutoDiffScalar<CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DerType> >(
+        other / a.value(),
+        a.derivatives() * (Scalar(-other) / (a.value()*a.value())));
+    }
+
+//     inline const AutoDiffScalar<typename CwiseUnaryOp<internal::scalar_multiple_op<Real>, DerType>::Type >
+//     operator/(const Real& other) const
+//     {
+//       return AutoDiffScalar<typename CwiseUnaryOp<internal::scalar_multiple_op<Real>, DerType>::Type >(
+//         m_value / other,
+//         (m_derivatives * (Real(1)/other)));
+//     }
+//
+//     friend inline const AutoDiffScalar<typename CwiseUnaryOp<internal::scalar_multiple_op<Real>, DerType>::Type >
+//     operator/(const Real& other, const AutoDiffScalar& a)
+//     {
+//       return AutoDiffScalar<typename CwiseUnaryOp<internal::scalar_multiple_op<Real>, DerType>::Type >(
+//         other / a.value(),
+//         a.derivatives() * (-Real(1)/other));
+//     }
+
+    template<typename OtherDerType>
+    inline const AutoDiffScalar<CwiseUnaryOp<internal::scalar_multiple_op<Scalar>,
+        const CwiseBinaryOp<internal::scalar_difference_op<Scalar>,
+          const CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DerType>,
+          const CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const typename internal::remove_all<OtherDerType>::type > > > >
+    operator/(const AutoDiffScalar<OtherDerType>& other) const
+    {
+      internal::make_coherent(m_derivatives, other.derivatives());
+      return AutoDiffScalar<CwiseUnaryOp<internal::scalar_multiple_op<Scalar>,
+        const CwiseBinaryOp<internal::scalar_difference_op<Scalar>,
+          const CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DerType>,
+          const CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const typename internal::remove_all<OtherDerType>::type > > > >(
+        m_value / other.value(),
+          ((m_derivatives * other.value()) - (m_value * other.derivatives()))
+        * (Scalar(1)/(other.value()*other.value())));
+    }
+
+    template<typename OtherDerType>
+    inline const AutoDiffScalar<CwiseBinaryOp<internal::scalar_sum_op<Scalar>,
+        const CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DerType>,
+        const CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const typename internal::remove_all<OtherDerType>::type> > >
+    operator*(const AutoDiffScalar<OtherDerType>& other) const
+    {
+      internal::make_coherent(m_derivatives, other.derivatives());
+      return AutoDiffScalar<const CwiseBinaryOp<internal::scalar_sum_op<Scalar>,
+        const CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const DerType>,
+        const CwiseUnaryOp<internal::scalar_multiple_op<Scalar>, const typename internal::remove_all<OtherDerType>::type > > >(
+        m_value * other.value(),
+        (m_derivatives * other.value()) + (m_value * other.derivatives()));
+    }
+
+    inline AutoDiffScalar& operator*=(const Scalar& other)
+    {
+      *this = *this * other;
+      return *this;
+    }
+
+    template<typename OtherDerType>
+    inline AutoDiffScalar& operator*=(const AutoDiffScalar<OtherDerType>& other)
+    {
+      *this = *this * other;
+      return *this;
+    }
+
+    inline AutoDiffScalar& operator/=(const Scalar& other)
+    {
+      *this = *this / other;
+      return *this;
+    }
+
+    template<typename OtherDerType>
+    inline AutoDiffScalar& operator/=(const AutoDiffScalar<OtherDerType>& other)
+    {
+      *this = *this / other;
+      return *this;
+    }
+
+  protected:
+    Scalar m_value;
+    DerType m_derivatives;
+
+};
+
+namespace internal {
+
+template<typename _DerType>
+struct auto_diff_special_op<_DerType, true>
+//   : auto_diff_scalar_op<_DerType, typename NumTraits<Scalar>::Real,
+//                            is_same<Scalar,typename NumTraits<Scalar>::Real>::value>
+{
+  typedef typename remove_all<_DerType>::type DerType;
+  typedef typename traits<DerType>::Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real Real;
+
+//   typedef auto_diff_scalar_op<_DerType, typename NumTraits<Scalar>::Real,
+//                            is_same<Scalar,typename NumTraits<Scalar>::Real>::value> Base;
+
+//   using Base::operator+;
+//   using Base::operator+=;
+//   using Base::operator-;
+//   using Base::operator-=;
+//   using Base::operator*;
+//   using Base::operator*=;
+
+  const AutoDiffScalar<_DerType>& derived() const { return *static_cast<const AutoDiffScalar<_DerType>*>(this); }
+  AutoDiffScalar<_DerType>& derived() { return *static_cast<AutoDiffScalar<_DerType>*>(this); }
+
+
+  inline const AutoDiffScalar<DerType&> operator+(const Real& other) const
+  {
+    return AutoDiffScalar<DerType&>(derived().value() + other, derived().derivatives());
+  }
+
+  friend inline const AutoDiffScalar<DerType&> operator+(const Real& a, const AutoDiffScalar<_DerType>& b)
+  {
+    return AutoDiffScalar<DerType&>(a + b.value(), b.derivatives());
+  }
+
+  inline AutoDiffScalar<_DerType>& operator+=(const Real& other)
+  {
+    derived().value() += other;
+    return derived();
+  }
+
+
+  inline const AutoDiffScalar<typename CwiseUnaryOp<scalar_multiple2_op<Scalar,Real>, DerType>::Type >
+  operator*(const Real& other) const
+  {
+    return AutoDiffScalar<typename CwiseUnaryOp<scalar_multiple2_op<Scalar,Real>, DerType>::Type >(
+      derived().value() * other,
+      derived().derivatives() * other);
+  }
+
+  friend inline const AutoDiffScalar<typename CwiseUnaryOp<scalar_multiple2_op<Scalar,Real>, DerType>::Type >
+  operator*(const Real& other, const AutoDiffScalar<_DerType>& a)
+  {
+    return AutoDiffScalar<typename CwiseUnaryOp<scalar_multiple2_op<Scalar,Real>, DerType>::Type >(
+      a.value() * other,
+      a.derivatives() * other);
+  }
+
+  inline AutoDiffScalar<_DerType>& operator*=(const Scalar& other)
+  {
+    *this = *this * other;
+    return derived();
+  }
+};
+
+template<typename _DerType>
+struct auto_diff_special_op<_DerType, false>
+{
+  void operator*() const;
+  void operator-() const;
+  void operator+() const;
+};
+
+template<typename A_Scalar, int A_Rows, int A_Cols, int A_Options, int A_MaxRows, int A_MaxCols, typename B>
+struct make_coherent_impl<Matrix<A_Scalar, A_Rows, A_Cols, A_Options, A_MaxRows, A_MaxCols>, B> {
+  typedef Matrix<A_Scalar, A_Rows, A_Cols, A_Options, A_MaxRows, A_MaxCols> A;
+  static void run(A& a, B& b) {
+    if((A_Rows==Dynamic || A_Cols==Dynamic) && (a.size()==0))
+    {
+      a.resize(b.size());
+      a.setZero();
+    }
+  }
+};
+
+template<typename A, typename B_Scalar, int B_Rows, int B_Cols, int B_Options, int B_MaxRows, int B_MaxCols>
+struct make_coherent_impl<A, Matrix<B_Scalar, B_Rows, B_Cols, B_Options, B_MaxRows, B_MaxCols> > {
+  typedef Matrix<B_Scalar, B_Rows, B_Cols, B_Options, B_MaxRows, B_MaxCols> B;
+  static void run(A& a, B& b) {
+    if((B_Rows==Dynamic || B_Cols==Dynamic) && (b.size()==0))
+    {
+      b.resize(a.size());
+      b.setZero();
+    }
+  }
+};
+
+template<typename A_Scalar, int A_Rows, int A_Cols, int A_Options, int A_MaxRows, int A_MaxCols,
+         typename B_Scalar, int B_Rows, int B_Cols, int B_Options, int B_MaxRows, int B_MaxCols>
+struct make_coherent_impl<Matrix<A_Scalar, A_Rows, A_Cols, A_Options, A_MaxRows, A_MaxCols>,
+                             Matrix<B_Scalar, B_Rows, B_Cols, B_Options, B_MaxRows, B_MaxCols> > {
+  typedef Matrix<A_Scalar, A_Rows, A_Cols, A_Options, A_MaxRows, A_MaxCols> A;
+  typedef Matrix<B_Scalar, B_Rows, B_Cols, B_Options, B_MaxRows, B_MaxCols> B;
+  static void run(A& a, B& b) {
+    if((A_Rows==Dynamic || A_Cols==Dynamic) && (a.size()==0))
+    {
+      a.resize(b.size());
+      a.setZero();
+    }
+    else if((B_Rows==Dynamic || B_Cols==Dynamic) && (b.size()==0))
+    {
+      b.resize(a.size());
+      b.setZero();
+    }
+  }
+};
+
+template<typename A_Scalar, int A_Rows, int A_Cols, int A_Options, int A_MaxRows, int A_MaxCols>
+struct scalar_product_traits<Matrix<A_Scalar, A_Rows, A_Cols, A_Options, A_MaxRows, A_MaxCols>,A_Scalar>
+{
+  enum { Defined = 1 };
+  typedef Matrix<A_Scalar, A_Rows, A_Cols, A_Options, A_MaxRows, A_MaxCols> ReturnType;
+};
+
+template<typename A_Scalar, int A_Rows, int A_Cols, int A_Options, int A_MaxRows, int A_MaxCols>
+struct scalar_product_traits<A_Scalar, Matrix<A_Scalar, A_Rows, A_Cols, A_Options, A_MaxRows, A_MaxCols> >
+{
+  enum { Defined = 1 };
+  typedef Matrix<A_Scalar, A_Rows, A_Cols, A_Options, A_MaxRows, A_MaxCols> ReturnType;
+};
+
+template<typename DerType>
+struct scalar_product_traits<AutoDiffScalar<DerType>,typename DerType::Scalar>
+{
+  enum { Defined = 1 };
+  typedef AutoDiffScalar<DerType> ReturnType;
+};
+
+template<typename DerType>
+struct scalar_product_traits<typename DerType::Scalar,AutoDiffScalar<DerType> >
+{
+  enum { Defined = 1 };
+  typedef AutoDiffScalar<DerType> ReturnType;
+};
+
+} // end namespace internal
+
+#define EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(FUNC,CODE) \
+  template<typename DerType> \
+  inline const Eigen::AutoDiffScalar<Eigen::CwiseUnaryOp<Eigen::internal::scalar_multiple_op<typename Eigen::internal::traits<typename Eigen::internal::remove_all<DerType>::type>::Scalar>, const typename Eigen::internal::remove_all<DerType>::type> > \
+  FUNC(const Eigen::AutoDiffScalar<DerType>& x) { \
+    using namespace Eigen; \
+    typedef typename Eigen::internal::traits<typename Eigen::internal::remove_all<DerType>::type>::Scalar Scalar; \
+    typedef AutoDiffScalar<CwiseUnaryOp<Eigen::internal::scalar_multiple_op<Scalar>, const typename Eigen::internal::remove_all<DerType>::type> > ReturnType; \
+    CODE; \
+  }
+
+template<typename DerType>
+inline const AutoDiffScalar<DerType>& conj(const AutoDiffScalar<DerType>& x)  { return x; }
+template<typename DerType>
+inline const AutoDiffScalar<DerType>& real(const AutoDiffScalar<DerType>& x)  { return x; }
+template<typename DerType>
+inline typename DerType::Scalar imag(const AutoDiffScalar<DerType>&)    { return 0.; }
+template<typename DerType, typename T>
+inline AutoDiffScalar<DerType> (min)(const AutoDiffScalar<DerType>& x, const T& y)    { return (x <= y ? x : y); }
+template<typename DerType, typename T>
+inline AutoDiffScalar<DerType> (max)(const AutoDiffScalar<DerType>& x, const T& y)    { return (x >= y ? x : y); }
+template<typename DerType, typename T>
+inline AutoDiffScalar<DerType> (min)(const T& x, const AutoDiffScalar<DerType>& y)    { return (x < y ? x : y); }
+template<typename DerType, typename T>
+inline AutoDiffScalar<DerType> (max)(const T& x, const AutoDiffScalar<DerType>& y)    { return (x > y ? x : y); }
+
+EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(abs,
+  using std::abs;
+  return ReturnType(abs(x.value()), x.derivatives() * (x.value()<0 ? -1 : 1) );)
+
+EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(abs2,
+  using numext::abs2;
+  return ReturnType(abs2(x.value()), x.derivatives() * (Scalar(2)*x.value()));)
+
+EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(sqrt,
+  using std::sqrt;
+  Scalar sqrtx = sqrt(x.value());
+  return ReturnType(sqrtx,x.derivatives() * (Scalar(0.5) / sqrtx));)
+
+EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(cos,
+  using std::cos;
+  using std::sin;
+  return ReturnType(cos(x.value()), x.derivatives() * (-sin(x.value())));)
+
+EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(sin,
+  using std::sin;
+  using std::cos;
+  return ReturnType(sin(x.value()),x.derivatives() * cos(x.value()));)
+
+EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(exp,
+  using std::exp;
+  Scalar expx = exp(x.value());
+  return ReturnType(expx,x.derivatives() * expx);)
+
+EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(log,
+  using std::log;
+  return ReturnType(log(x.value()),x.derivatives() * (Scalar(1)/x.value()));)
+
+template<typename DerType>
+inline const Eigen::AutoDiffScalar<Eigen::CwiseUnaryOp<Eigen::internal::scalar_multiple_op<typename Eigen::internal::traits<DerType>::Scalar>, const DerType> >
+pow(const Eigen::AutoDiffScalar<DerType>& x, typename Eigen::internal::traits<DerType>::Scalar y)
+{
+  using namespace Eigen;
+  typedef typename Eigen::internal::traits<DerType>::Scalar Scalar;
+  return AutoDiffScalar<CwiseUnaryOp<Eigen::internal::scalar_multiple_op<Scalar>, const DerType> >(
+    std::pow(x.value(),y),
+    x.derivatives() * (y * std::pow(x.value(),y-1)));
+}
+
+
+template<typename DerTypeA,typename DerTypeB>
+inline const AutoDiffScalar<Matrix<typename internal::traits<DerTypeA>::Scalar,Dynamic,1> >
+atan2(const AutoDiffScalar<DerTypeA>& a, const AutoDiffScalar<DerTypeB>& b)
+{
+  using std::atan2;
+  using std::max;
+  typedef typename internal::traits<DerTypeA>::Scalar Scalar;
+  typedef AutoDiffScalar<Matrix<Scalar,Dynamic,1> > PlainADS;
+  PlainADS ret;
+  ret.value() = atan2(a.value(), b.value());
+  
+  Scalar tmp2 = a.value() * a.value();
+  Scalar tmp3 = b.value() * b.value();
+  Scalar tmp4 = tmp3/(tmp2+tmp3);
+  
+  if (tmp4!=0)
+    ret.derivatives() = (a.derivatives() * b.value() - a.value() * b.derivatives()) * (tmp2+tmp3);
+
+  return ret;
+}
+
+EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(tan,
+  using std::tan;
+  using std::cos;
+  return ReturnType(tan(x.value()),x.derivatives() * (Scalar(1)/numext::abs2(cos(x.value()))));)
+
+EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(asin,
+  using std::sqrt;
+  using std::asin;
+  return ReturnType(asin(x.value()),x.derivatives() * (Scalar(1)/sqrt(1-numext::abs2(x.value()))));)
+  
+EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY(acos,
+  using std::sqrt;
+  using std::acos;
+  return ReturnType(acos(x.value()),x.derivatives() * (Scalar(-1)/sqrt(1-numext::abs2(x.value()))));)
+
+#undef EIGEN_AUTODIFF_DECLARE_GLOBAL_UNARY
+
+template<typename DerType> struct NumTraits<AutoDiffScalar<DerType> >
+  : NumTraits< typename NumTraits<typename DerType::Scalar>::Real >
+{
+  typedef AutoDiffScalar<Matrix<typename NumTraits<typename DerType::Scalar>::Real,DerType::RowsAtCompileTime,DerType::ColsAtCompileTime> > Real;
+  typedef AutoDiffScalar<DerType> NonInteger;
+  typedef AutoDiffScalar<DerType> Nested;
+  enum{
+    RequireInitialization = 1
+  };
+};
+
+}
+
+#endif // EIGEN_AUTODIFF_SCALAR_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h	(revision 2476)
@@ -0,0 +1,83 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_AUTODIFF_JACOBIAN_H
+#define EIGEN_AUTODIFF_JACOBIAN_H
+
+namespace Eigen
+{
+
+template<typename Functor> class AutoDiffJacobian : public Functor
+{
+public:
+  AutoDiffJacobian() : Functor() {}
+  AutoDiffJacobian(const Functor& f) : Functor(f) {}
+
+  // forward constructors
+  template<typename T0>
+  AutoDiffJacobian(const T0& a0) : Functor(a0) {}
+  template<typename T0, typename T1>
+  AutoDiffJacobian(const T0& a0, const T1& a1) : Functor(a0, a1) {}
+  template<typename T0, typename T1, typename T2>
+  AutoDiffJacobian(const T0& a0, const T1& a1, const T2& a2) : Functor(a0, a1, a2) {}
+
+  enum {
+    InputsAtCompileTime = Functor::InputsAtCompileTime,
+    ValuesAtCompileTime = Functor::ValuesAtCompileTime
+  };
+
+  typedef typename Functor::InputType InputType;
+  typedef typename Functor::ValueType ValueType;
+  typedef typename Functor::JacobianType JacobianType;
+  typedef typename JacobianType::Scalar Scalar;
+  typedef typename JacobianType::Index Index;
+
+  typedef Matrix<Scalar,InputsAtCompileTime,1> DerivativeType;
+  typedef AutoDiffScalar<DerivativeType> ActiveScalar;
+
+
+  typedef Matrix<ActiveScalar, InputsAtCompileTime, 1> ActiveInput;
+  typedef Matrix<ActiveScalar, ValuesAtCompileTime, 1> ActiveValue;
+
+  void operator() (const InputType& x, ValueType* v, JacobianType* _jac=0) const
+  {
+    eigen_assert(v!=0);
+    if (!_jac)
+    {
+      Functor::operator()(x, v);
+      return;
+    }
+
+    JacobianType& jac = *_jac;
+
+    ActiveInput ax = x.template cast<ActiveScalar>();
+    ActiveValue av(jac.rows());
+
+    if(InputsAtCompileTime==Dynamic)
+      for (Index j=0; j<jac.rows(); j++)
+        av[j].derivatives().resize(this->inputs());
+
+    for (Index i=0; i<jac.cols(); i++)
+      ax[i].derivatives() = DerivativeType::Unit(this->inputs(),i);
+
+    Functor::operator()(ax, &av);
+
+    for (Index i=0; i<jac.rows(); i++)
+    {
+      (*v)[i] = av[i].value();
+      jac.row(i) = av[i].derivatives();
+    }
+  }
+protected:
+
+};
+
+}
+
+#endif // EIGEN_AUTODIFF_JACOBIAN_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h	(revision 2476)
@@ -0,0 +1,122 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_BLOCKFORDYNAMICMATRIX_H
+#define EIGEN_SPARSE_BLOCKFORDYNAMICMATRIX_H
+
+namespace Eigen { 
+
+#if 0
+
+// NOTE Have to be reimplemented as a specialization of BlockImpl< DynamicSparseMatrix<_Scalar, _Options, _Index>, ... >
+// See SparseBlock.h for an example
+
+
+/***************************************************************************
+* specialisation for DynamicSparseMatrix
+***************************************************************************/
+
+template<typename _Scalar, int _Options, typename _Index, int Size>
+class SparseInnerVectorSet<DynamicSparseMatrix<_Scalar, _Options, _Index>, Size>
+  : public SparseMatrixBase<SparseInnerVectorSet<DynamicSparseMatrix<_Scalar, _Options, _Index>, Size> >
+{
+    typedef DynamicSparseMatrix<_Scalar, _Options, _Index> MatrixType;
+  public:
+
+    enum { IsRowMajor = internal::traits<SparseInnerVectorSet>::IsRowMajor };
+
+    EIGEN_SPARSE_PUBLIC_INTERFACE(SparseInnerVectorSet)
+    class InnerIterator: public MatrixType::InnerIterator
+    {
+      public:
+        inline InnerIterator(const SparseInnerVectorSet& xpr, Index outer)
+          : MatrixType::InnerIterator(xpr.m_matrix, xpr.m_outerStart + outer), m_outer(outer)
+        {}
+        inline Index row() const { return IsRowMajor ? m_outer : this->index(); }
+        inline Index col() const { return IsRowMajor ? this->index() : m_outer; }
+      protected:
+        Index m_outer;
+    };
+
+    inline SparseInnerVectorSet(const MatrixType& matrix, Index outerStart, Index outerSize)
+      : m_matrix(matrix), m_outerStart(outerStart), m_outerSize(outerSize)
+    {
+      eigen_assert( (outerStart>=0) && ((outerStart+outerSize)<=matrix.outerSize()) );
+    }
+
+    inline SparseInnerVectorSet(const MatrixType& matrix, Index outer)
+      : m_matrix(matrix), m_outerStart(outer), m_outerSize(Size)
+    {
+      eigen_assert(Size!=Dynamic);
+      eigen_assert( (outer>=0) && (outer<matrix.outerSize()) );
+    }
+
+    template<typename OtherDerived>
+    inline SparseInnerVectorSet& operator=(const SparseMatrixBase<OtherDerived>& other)
+    {
+      if (IsRowMajor != ((OtherDerived::Flags&RowMajorBit)==RowMajorBit))
+      {
+        // need to transpose => perform a block evaluation followed by a big swap
+        DynamicSparseMatrix<Scalar,IsRowMajor?RowMajorBit:0> aux(other);
+        *this = aux.markAsRValue();
+      }
+      else
+      {
+        // evaluate/copy vector per vector
+        for (Index j=0; j<m_outerSize.value(); ++j)
+        {
+          SparseVector<Scalar,IsRowMajor ? RowMajorBit : 0> aux(other.innerVector(j));
+          m_matrix.const_cast_derived()._data()[m_outerStart+j].swap(aux._data());
+        }
+      }
+      return *this;
+    }
+
+    inline SparseInnerVectorSet& operator=(const SparseInnerVectorSet& other)
+    {
+      return operator=<SparseInnerVectorSet>(other);
+    }
+
+    Index nonZeros() const
+    {
+      Index count = 0;
+      for (Index j=0; j<m_outerSize.value(); ++j)
+        count += m_matrix._data()[m_outerStart+j].size();
+      return count;
+    }
+
+    const Scalar& lastCoeff() const
+    {
+      EIGEN_STATIC_ASSERT_VECTOR_ONLY(SparseInnerVectorSet);
+      eigen_assert(m_matrix.data()[m_outerStart].size()>0);
+      return m_matrix.data()[m_outerStart].vale(m_matrix.data()[m_outerStart].size()-1);
+    }
+
+//     template<typename Sparse>
+//     inline SparseInnerVectorSet& operator=(const SparseMatrixBase<OtherDerived>& other)
+//     {
+//       return *this;
+//     }
+
+    EIGEN_STRONG_INLINE Index rows() const { return IsRowMajor ? m_outerSize.value() : m_matrix.rows(); }
+    EIGEN_STRONG_INLINE Index cols() const { return IsRowMajor ? m_matrix.cols() : m_outerSize.value(); }
+
+  protected:
+
+    const typename MatrixType::Nested m_matrix;
+    Index m_outerStart;
+    const internal::variable_if_dynamic<Index, Size> m_outerSize;
+
+};
+
+#endif
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_BLOCKFORDYNAMICMATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h	(revision 2476)
@@ -0,0 +1,357 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DYNAMIC_SPARSEMATRIX_H
+#define EIGEN_DYNAMIC_SPARSEMATRIX_H
+
+namespace Eigen { 
+
+/** \deprecated use a SparseMatrix in an uncompressed mode
+  *
+  * \class DynamicSparseMatrix
+  *
+  * \brief A sparse matrix class designed for matrix assembly purpose
+  *
+  * \param _Scalar the scalar type, i.e. the type of the coefficients
+  *
+  * Unlike SparseMatrix, this class provides a much higher degree of flexibility. In particular, it allows
+  * random read/write accesses in log(rho*outer_size) where \c rho is the probability that a coefficient is
+  * nonzero and outer_size is the number of columns if the matrix is column-major and the number of rows
+  * otherwise.
+  *
+  * Internally, the data are stored as a std::vector of compressed vector. The performances of random writes might
+  * decrease as the number of nonzeros per inner-vector increase. In practice, we observed very good performance
+  * till about 100 nonzeros/vector, and the performance remains relatively good till 500 nonzeros/vectors.
+  *
+  * \see SparseMatrix
+  */
+
+namespace internal {
+template<typename _Scalar, int _Options, typename _Index>
+struct traits<DynamicSparseMatrix<_Scalar, _Options, _Index> >
+{
+  typedef _Scalar Scalar;
+  typedef _Index Index;
+  typedef Sparse StorageKind;
+  typedef MatrixXpr XprKind;
+  enum {
+    RowsAtCompileTime = Dynamic,
+    ColsAtCompileTime = Dynamic,
+    MaxRowsAtCompileTime = Dynamic,
+    MaxColsAtCompileTime = Dynamic,
+    Flags = _Options | NestByRefBit | LvalueBit,
+    CoeffReadCost = NumTraits<Scalar>::ReadCost,
+    SupportedAccessPatterns = OuterRandomAccessPattern
+  };
+};
+}
+
+template<typename _Scalar, int _Options, typename _Index>
+ class  DynamicSparseMatrix
+  : public SparseMatrixBase<DynamicSparseMatrix<_Scalar, _Options, _Index> >
+{
+  public:
+    EIGEN_SPARSE_PUBLIC_INTERFACE(DynamicSparseMatrix)
+    // FIXME: why are these operator already alvailable ???
+    // EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(DynamicSparseMatrix, +=)
+    // EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(DynamicSparseMatrix, -=)
+    typedef MappedSparseMatrix<Scalar,Flags> Map;
+    using Base::IsRowMajor;
+    using Base::operator=;
+    enum {
+      Options = _Options
+    };
+
+  protected:
+
+    typedef DynamicSparseMatrix<Scalar,(Flags&~RowMajorBit)|(IsRowMajor?RowMajorBit:0)> TransposedSparseMatrix;
+
+    Index m_innerSize;
+    std::vector<internal::CompressedStorage<Scalar,Index> > m_data;
+
+  public:
+
+    inline Index rows() const { return IsRowMajor ? outerSize() : m_innerSize; }
+    inline Index cols() const { return IsRowMajor ? m_innerSize : outerSize(); }
+    inline Index innerSize() const { return m_innerSize; }
+    inline Index outerSize() const { return static_cast<Index>(m_data.size()); }
+    inline Index innerNonZeros(Index j) const { return m_data[j].size(); }
+
+    std::vector<internal::CompressedStorage<Scalar,Index> >& _data() { return m_data; }
+    const std::vector<internal::CompressedStorage<Scalar,Index> >& _data() const { return m_data; }
+
+    /** \returns the coefficient value at given position \a row, \a col
+      * This operation involes a log(rho*outer_size) binary search.
+      */
+    inline Scalar coeff(Index row, Index col) const
+    {
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+      return m_data[outer].at(inner);
+    }
+
+    /** \returns a reference to the coefficient value at given position \a row, \a col
+      * This operation involes a log(rho*outer_size) binary search. If the coefficient does not
+      * exist yet, then a sorted insertion into a sequential buffer is performed.
+      */
+    inline Scalar& coeffRef(Index row, Index col)
+    {
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+      return m_data[outer].atWithInsertion(inner);
+    }
+
+    class InnerIterator;
+    class ReverseInnerIterator;
+
+    void setZero()
+    {
+      for (Index j=0; j<outerSize(); ++j)
+        m_data[j].clear();
+    }
+
+    /** \returns the number of non zero coefficients */
+    Index nonZeros() const
+    {
+      Index res = 0;
+      for (Index j=0; j<outerSize(); ++j)
+        res += static_cast<Index>(m_data[j].size());
+      return res;
+    }
+
+
+
+    void reserve(Index reserveSize = 1000)
+    {
+      if (outerSize()>0)
+      {
+        Index reserveSizePerVector = (std::max)(reserveSize/outerSize(),Index(4));
+        for (Index j=0; j<outerSize(); ++j)
+        {
+          m_data[j].reserve(reserveSizePerVector);
+        }
+      }
+    }
+
+    /** Does nothing: provided for compatibility with SparseMatrix */
+    inline void startVec(Index /*outer*/) {}
+
+    /** \returns a reference to the non zero coefficient at position \a row, \a col assuming that:
+      * - the nonzero does not already exist
+      * - the new coefficient is the last one of the given inner vector.
+      *
+      * \sa insert, insertBackByOuterInner */
+    inline Scalar& insertBack(Index row, Index col)
+    {
+      return insertBackByOuterInner(IsRowMajor?row:col, IsRowMajor?col:row);
+    }
+
+    /** \sa insertBack */
+    inline Scalar& insertBackByOuterInner(Index outer, Index inner)
+    {
+      eigen_assert(outer<Index(m_data.size()) && inner<m_innerSize && "out of range");
+      eigen_assert(((m_data[outer].size()==0) || (m_data[outer].index(m_data[outer].size()-1)<inner))
+                && "wrong sorted insertion");
+      m_data[outer].append(0, inner);
+      return m_data[outer].value(m_data[outer].size()-1);
+    }
+
+    inline Scalar& insert(Index row, Index col)
+    {
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+
+      Index startId = 0;
+      Index id = static_cast<Index>(m_data[outer].size()) - 1;
+      m_data[outer].resize(id+2,1);
+
+      while ( (id >= startId) && (m_data[outer].index(id) > inner) )
+      {
+        m_data[outer].index(id+1) = m_data[outer].index(id);
+        m_data[outer].value(id+1) = m_data[outer].value(id);
+        --id;
+      }
+      m_data[outer].index(id+1) = inner;
+      m_data[outer].value(id+1) = 0;
+      return m_data[outer].value(id+1);
+    }
+
+    /** Does nothing: provided for compatibility with SparseMatrix */
+    inline void finalize() {}
+
+    /** Suppress all nonzeros which are smaller than \a reference under the tolerence \a epsilon */
+    void prune(Scalar reference, RealScalar epsilon = NumTraits<RealScalar>::dummy_precision())
+    {
+      for (Index j=0; j<outerSize(); ++j)
+        m_data[j].prune(reference,epsilon);
+    }
+
+    /** Resize the matrix without preserving the data (the matrix is set to zero)
+      */
+    void resize(Index rows, Index cols)
+    {
+      const Index outerSize = IsRowMajor ? rows : cols;
+      m_innerSize = IsRowMajor ? cols : rows;
+      setZero();
+      if (Index(m_data.size()) != outerSize)
+      {
+        m_data.resize(outerSize);
+      }
+    }
+
+    void resizeAndKeepData(Index rows, Index cols)
+    {
+      const Index outerSize = IsRowMajor ? rows : cols;
+      const Index innerSize = IsRowMajor ? cols : rows;
+      if (m_innerSize>innerSize)
+      {
+        // remove all coefficients with innerCoord>=innerSize
+        // TODO
+        //std::cerr << "not implemented yet\n";
+        exit(2);
+      }
+      if (m_data.size() != outerSize)
+      {
+        m_data.resize(outerSize);
+      }
+    }
+
+    /** The class DynamicSparseMatrix is deprectaed */
+    EIGEN_DEPRECATED inline DynamicSparseMatrix()
+      : m_innerSize(0), m_data(0)
+    {
+      eigen_assert(innerSize()==0 && outerSize()==0);
+    }
+
+    /** The class DynamicSparseMatrix is deprectaed */
+    EIGEN_DEPRECATED inline DynamicSparseMatrix(Index rows, Index cols)
+      : m_innerSize(0)
+    {
+      resize(rows, cols);
+    }
+
+    /** The class DynamicSparseMatrix is deprectaed */
+    template<typename OtherDerived>
+    EIGEN_DEPRECATED explicit inline DynamicSparseMatrix(const SparseMatrixBase<OtherDerived>& other)
+      : m_innerSize(0)
+    {
+    Base::operator=(other.derived());
+    }
+
+    inline DynamicSparseMatrix(const DynamicSparseMatrix& other)
+      : Base(), m_innerSize(0)
+    {
+      *this = other.derived();
+    }
+
+    inline void swap(DynamicSparseMatrix& other)
+    {
+      //EIGEN_DBG_SPARSE(std::cout << "SparseMatrix:: swap\n");
+      std::swap(m_innerSize, other.m_innerSize);
+      //std::swap(m_outerSize, other.m_outerSize);
+      m_data.swap(other.m_data);
+    }
+
+    inline DynamicSparseMatrix& operator=(const DynamicSparseMatrix& other)
+    {
+      if (other.isRValue())
+      {
+        swap(other.const_cast_derived());
+      }
+      else
+      {
+        resize(other.rows(), other.cols());
+        m_data = other.m_data;
+      }
+      return *this;
+    }
+
+    /** Destructor */
+    inline ~DynamicSparseMatrix() {}
+
+  public:
+
+    /** \deprecated
+      * Set the matrix to zero and reserve the memory for \a reserveSize nonzero coefficients. */
+    EIGEN_DEPRECATED void startFill(Index reserveSize = 1000)
+    {
+      setZero();
+      reserve(reserveSize);
+    }
+
+    /** \deprecated use insert()
+      * inserts a nonzero coefficient at given coordinates \a row, \a col and returns its reference assuming that:
+      *  1 - the coefficient does not exist yet
+      *  2 - this the coefficient with greater inner coordinate for the given outer coordinate.
+      * In other words, assuming \c *this is column-major, then there must not exists any nonzero coefficient of coordinates
+      * \c i \c x \a col such that \c i >= \a row. Otherwise the matrix is invalid.
+      *
+      * \see fillrand(), coeffRef()
+      */
+    EIGEN_DEPRECATED Scalar& fill(Index row, Index col)
+    {
+      const Index outer = IsRowMajor ? row : col;
+      const Index inner = IsRowMajor ? col : row;
+      return insertBack(outer,inner);
+    }
+
+    /** \deprecated use insert()
+      * Like fill() but with random inner coordinates.
+      * Compared to the generic coeffRef(), the unique limitation is that we assume
+      * the coefficient does not exist yet.
+      */
+    EIGEN_DEPRECATED Scalar& fillrand(Index row, Index col)
+    {
+      return insert(row,col);
+    }
+
+    /** \deprecated use finalize()
+      * Does nothing. Provided for compatibility with SparseMatrix. */
+    EIGEN_DEPRECATED void endFill() {}
+    
+#   ifdef EIGEN_DYNAMICSPARSEMATRIX_PLUGIN
+#     include EIGEN_DYNAMICSPARSEMATRIX_PLUGIN
+#   endif
+ };
+
+template<typename Scalar, int _Options, typename _Index>
+class DynamicSparseMatrix<Scalar,_Options,_Index>::InnerIterator : public SparseVector<Scalar,_Options,_Index>::InnerIterator
+{
+    typedef typename SparseVector<Scalar,_Options,_Index>::InnerIterator Base;
+  public:
+    InnerIterator(const DynamicSparseMatrix& mat, Index outer)
+      : Base(mat.m_data[outer]), m_outer(outer)
+    {}
+
+    inline Index row() const { return IsRowMajor ? m_outer : Base::index(); }
+    inline Index col() const { return IsRowMajor ? Base::index() : m_outer; }
+
+  protected:
+    const Index m_outer;
+};
+
+template<typename Scalar, int _Options, typename _Index>
+class DynamicSparseMatrix<Scalar,_Options,_Index>::ReverseInnerIterator : public SparseVector<Scalar,_Options,_Index>::ReverseInnerIterator
+{
+    typedef typename SparseVector<Scalar,_Options,_Index>::ReverseInnerIterator Base;
+  public:
+    ReverseInnerIterator(const DynamicSparseMatrix& mat, Index outer)
+      : Base(mat.m_data[outer]), m_outer(outer)
+    {}
+
+    inline Index row() const { return IsRowMajor ? m_outer : Base::index(); }
+    inline Index col() const { return IsRowMajor ? Base::index() : m_outer; }
+
+  protected:
+    const Index m_outer;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_DYNAMIC_SPARSEMATRIX_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/RandomSetter.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/RandomSetter.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/RandomSetter.h	(revision 2476)
@@ -0,0 +1,327 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_RANDOMSETTER_H
+#define EIGEN_RANDOMSETTER_H
+
+namespace Eigen { 
+
+/** Represents a std::map
+  *
+  * \see RandomSetter
+  */
+template<typename Scalar> struct StdMapTraits
+{
+  typedef int KeyType;
+  typedef std::map<KeyType,Scalar> Type;
+  enum {
+    IsSorted = 1
+  };
+
+  static void setInvalidKey(Type&, const KeyType&) {}
+};
+
+#ifdef EIGEN_UNORDERED_MAP_SUPPORT
+/** Represents a std::unordered_map
+  *
+  * To use it you need to both define EIGEN_UNORDERED_MAP_SUPPORT and include the unordered_map header file
+  * yourself making sure that unordered_map is defined in the std namespace.
+  *
+  * For instance, with current version of gcc you can either enable C++0x standard (-std=c++0x) or do:
+  * \code
+  * #include <tr1/unordered_map>
+  * #define EIGEN_UNORDERED_MAP_SUPPORT
+  * namespace std {
+  *   using std::tr1::unordered_map;
+  * }
+  * \endcode
+  *
+  * \see RandomSetter
+  */
+template<typename Scalar> struct StdUnorderedMapTraits
+{
+  typedef int KeyType;
+  typedef std::unordered_map<KeyType,Scalar> Type;
+  enum {
+    IsSorted = 0
+  };
+
+  static void setInvalidKey(Type&, const KeyType&) {}
+};
+#endif // EIGEN_UNORDERED_MAP_SUPPORT
+
+#ifdef _DENSE_HASH_MAP_H_
+/** Represents a google::dense_hash_map
+  *
+  * \see RandomSetter
+  */
+template<typename Scalar> struct GoogleDenseHashMapTraits
+{
+  typedef int KeyType;
+  typedef google::dense_hash_map<KeyType,Scalar> Type;
+  enum {
+    IsSorted = 0
+  };
+
+  static void setInvalidKey(Type& map, const KeyType& k)
+  { map.set_empty_key(k); }
+};
+#endif
+
+#ifdef _SPARSE_HASH_MAP_H_
+/** Represents a google::sparse_hash_map
+  *
+  * \see RandomSetter
+  */
+template<typename Scalar> struct GoogleSparseHashMapTraits
+{
+  typedef int KeyType;
+  typedef google::sparse_hash_map<KeyType,Scalar> Type;
+  enum {
+    IsSorted = 0
+  };
+
+  static void setInvalidKey(Type&, const KeyType&) {}
+};
+#endif
+
+/** \class RandomSetter
+  *
+  * \brief The RandomSetter is a wrapper object allowing to set/update a sparse matrix with random access
+  *
+  * \param SparseMatrixType the type of the sparse matrix we are updating
+  * \param MapTraits a traits class representing the map implementation used for the temporary sparse storage.
+  *                  Its default value depends on the system.
+  * \param OuterPacketBits defines the number of rows (or columns) manage by a single map object
+  *                        as a power of two exponent.
+  *
+  * This class temporarily represents a sparse matrix object using a generic map implementation allowing for
+  * efficient random access. The conversion from the compressed representation to a hash_map object is performed
+  * in the RandomSetter constructor, while the sparse matrix is updated back at destruction time. This strategy
+  * suggest the use of nested blocks as in this example:
+  *
+  * \code
+  * SparseMatrix<double> m(rows,cols);
+  * {
+  *   RandomSetter<SparseMatrix<double> > w(m);
+  *   // don't use m but w instead with read/write random access to the coefficients:
+  *   for(;;)
+  *     w(rand(),rand()) = rand;
+  * }
+  * // when w is deleted, the data are copied back to m
+  * // and m is ready to use.
+  * \endcode
+  *
+  * Since hash_map objects are not fully sorted, representing a full matrix as a single hash_map would
+  * involve a big and costly sort to update the compressed matrix back. To overcome this issue, a RandomSetter
+  * use multiple hash_map, each representing 2^OuterPacketBits columns or rows according to the storage order.
+  * To reach optimal performance, this value should be adjusted according to the average number of nonzeros
+  * per rows/columns.
+  *
+  * The possible values for the template parameter MapTraits are:
+  *  - \b StdMapTraits: corresponds to std::map. (does not perform very well)
+  *  - \b GnuHashMapTraits: corresponds to __gnu_cxx::hash_map (available only with GCC)
+  *  - \b GoogleDenseHashMapTraits: corresponds to google::dense_hash_map (best efficiency, reasonable memory consumption)
+  *  - \b GoogleSparseHashMapTraits: corresponds to google::sparse_hash_map (best memory consumption, relatively good performance)
+  *
+  * The default map implementation depends on the availability, and the preferred order is:
+  * GoogleSparseHashMapTraits, GnuHashMapTraits, and finally StdMapTraits.
+  *
+  * For performance and memory consumption reasons it is highly recommended to use one of
+  * the Google's hash_map implementation. To enable the support for them, you have two options:
+  *  - \#include <google/dense_hash_map> yourself \b before Eigen/Sparse header
+  *  - define EIGEN_GOOGLEHASH_SUPPORT
+  * In the later case the inclusion of <google/dense_hash_map> is made for you.
+  *
+  * \see http://code.google.com/p/google-sparsehash/
+  */
+template<typename SparseMatrixType,
+         template <typename T> class MapTraits =
+#if defined _DENSE_HASH_MAP_H_
+          GoogleDenseHashMapTraits
+#elif defined _HASH_MAP
+          GnuHashMapTraits
+#else
+          StdMapTraits
+#endif
+         ,int OuterPacketBits = 6>
+class RandomSetter
+{
+    typedef typename SparseMatrixType::Scalar Scalar;
+    typedef typename SparseMatrixType::Index Index;
+
+    struct ScalarWrapper
+    {
+      ScalarWrapper() : value(0) {}
+      Scalar value;
+    };
+    typedef typename MapTraits<ScalarWrapper>::KeyType KeyType;
+    typedef typename MapTraits<ScalarWrapper>::Type HashMapType;
+    static const int OuterPacketMask = (1 << OuterPacketBits) - 1;
+    enum {
+      SwapStorage = 1 - MapTraits<ScalarWrapper>::IsSorted,
+      TargetRowMajor = (SparseMatrixType::Flags & RowMajorBit) ? 1 : 0,
+      SetterRowMajor = SwapStorage ? 1-TargetRowMajor : TargetRowMajor
+    };
+
+  public:
+
+    /** Constructs a random setter object from the sparse matrix \a target
+      *
+      * Note that the initial value of \a target are imported. If you want to re-set
+      * a sparse matrix from scratch, then you must set it to zero first using the
+      * setZero() function.
+      */
+    inline RandomSetter(SparseMatrixType& target)
+      : mp_target(&target)
+    {
+      const Index outerSize = SwapStorage ? target.innerSize() : target.outerSize();
+      const Index innerSize = SwapStorage ? target.outerSize() : target.innerSize();
+      m_outerPackets = outerSize >> OuterPacketBits;
+      if (outerSize&OuterPacketMask)
+        m_outerPackets += 1;
+      m_hashmaps = new HashMapType[m_outerPackets];
+      // compute number of bits needed to store inner indices
+      Index aux = innerSize - 1;
+      m_keyBitsOffset = 0;
+      while (aux)
+      {
+        ++m_keyBitsOffset;
+        aux = aux >> 1;
+      }
+      KeyType ik = (1<<(OuterPacketBits+m_keyBitsOffset));
+      for (Index k=0; k<m_outerPackets; ++k)
+        MapTraits<ScalarWrapper>::setInvalidKey(m_hashmaps[k],ik);
+
+      // insert current coeffs
+      for (Index j=0; j<mp_target->outerSize(); ++j)
+        for (typename SparseMatrixType::InnerIterator it(*mp_target,j); it; ++it)
+          (*this)(TargetRowMajor?j:it.index(), TargetRowMajor?it.index():j) = it.value();
+    }
+
+    /** Destructor updating back the sparse matrix target */
+    ~RandomSetter()
+    {
+      KeyType keyBitsMask = (1<<m_keyBitsOffset)-1;
+      if (!SwapStorage) // also means the map is sorted
+      {
+        mp_target->setZero();
+        mp_target->makeCompressed();
+        mp_target->reserve(nonZeros());
+        Index prevOuter = -1;
+        for (Index k=0; k<m_outerPackets; ++k)
+        {
+          const Index outerOffset = (1<<OuterPacketBits) * k;
+          typename HashMapType::iterator end = m_hashmaps[k].end();
+          for (typename HashMapType::iterator it = m_hashmaps[k].begin(); it!=end; ++it)
+          {
+            const Index outer = (it->first >> m_keyBitsOffset) + outerOffset;
+            const Index inner = it->first & keyBitsMask;
+            if (prevOuter!=outer)
+            {
+              for (Index j=prevOuter+1;j<=outer;++j)
+                mp_target->startVec(j);
+              prevOuter = outer;
+            }
+            mp_target->insertBackByOuterInner(outer, inner) = it->second.value;
+          }
+        }
+        mp_target->finalize();
+      }
+      else
+      {
+        VectorXi positions(mp_target->outerSize());
+        positions.setZero();
+        // pass 1
+        for (Index k=0; k<m_outerPackets; ++k)
+        {
+          typename HashMapType::iterator end = m_hashmaps[k].end();
+          for (typename HashMapType::iterator it = m_hashmaps[k].begin(); it!=end; ++it)
+          {
+            const Index outer = it->first & keyBitsMask;
+            ++positions[outer];
+          }
+        }
+        // prefix sum
+        Index count = 0;
+        for (Index j=0; j<mp_target->outerSize(); ++j)
+        {
+          Index tmp = positions[j];
+          mp_target->outerIndexPtr()[j] = count;
+          positions[j] = count;
+          count += tmp;
+        }
+        mp_target->makeCompressed();
+        mp_target->outerIndexPtr()[mp_target->outerSize()] = count;
+        mp_target->resizeNonZeros(count);
+        // pass 2
+        for (Index k=0; k<m_outerPackets; ++k)
+        {
+          const Index outerOffset = (1<<OuterPacketBits) * k;
+          typename HashMapType::iterator end = m_hashmaps[k].end();
+          for (typename HashMapType::iterator it = m_hashmaps[k].begin(); it!=end; ++it)
+          {
+            const Index inner = (it->first >> m_keyBitsOffset) + outerOffset;
+            const Index outer = it->first & keyBitsMask;
+            // sorted insertion
+            // Note that we have to deal with at most 2^OuterPacketBits unsorted coefficients,
+            // moreover those 2^OuterPacketBits coeffs are likely to be sparse, an so only a
+            // small fraction of them have to be sorted, whence the following simple procedure:
+            Index posStart = mp_target->outerIndexPtr()[outer];
+            Index i = (positions[outer]++) - 1;
+            while ( (i >= posStart) && (mp_target->innerIndexPtr()[i] > inner) )
+            {
+              mp_target->valuePtr()[i+1] = mp_target->valuePtr()[i];
+              mp_target->innerIndexPtr()[i+1] = mp_target->innerIndexPtr()[i];
+              --i;
+            }
+            mp_target->innerIndexPtr()[i+1] = inner;
+            mp_target->valuePtr()[i+1] = it->second.value;
+          }
+        }
+      }
+      delete[] m_hashmaps;
+    }
+
+    /** \returns a reference to the coefficient at given coordinates \a row, \a col */
+    Scalar& operator() (Index row, Index col)
+    {
+      const Index outer = SetterRowMajor ? row : col;
+      const Index inner = SetterRowMajor ? col : row;
+      const Index outerMajor = outer >> OuterPacketBits; // index of the packet/map
+      const Index outerMinor = outer & OuterPacketMask;  // index of the inner vector in the packet
+      const KeyType key = (KeyType(outerMinor)<<m_keyBitsOffset) | inner;
+      return m_hashmaps[outerMajor][key].value;
+    }
+
+    /** \returns the number of non zero coefficients
+      *
+      * \note According to the underlying map/hash_map implementation,
+      * this function might be quite expensive.
+      */
+    Index nonZeros() const
+    {
+      Index nz = 0;
+      for (Index k=0; k<m_outerPackets; ++k)
+        nz += static_cast<Index>(m_hashmaps[k].size());
+      return nz;
+    }
+
+
+  protected:
+
+    HashMapType* m_hashmaps;
+    SparseMatrixType* mp_target;
+    Index m_outerPackets;
+    unsigned char m_keyBitsOffset;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_RANDOMSETTER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/MarketIO.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/MarketIO.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/MarketIO.h	(revision 2476)
@@ -0,0 +1,273 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2012 Desire NUENTSA WAKAM <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPARSE_MARKET_IO_H
+#define EIGEN_SPARSE_MARKET_IO_H
+
+#include <iostream>
+
+namespace Eigen { 
+
+namespace internal 
+{
+  template <typename Scalar>
+  inline bool GetMarketLine (std::stringstream& line, int& M, int& N, int& i, int& j, Scalar& value)
+  {
+    line >> i >> j >> value;
+    i--;
+    j--;
+    if(i>=0 && j>=0 && i<M && j<N)
+    {
+      return true; 
+    }
+    else
+      return false;
+  }
+  template <typename Scalar>
+  inline bool GetMarketLine (std::stringstream& line, int& M, int& N, int& i, int& j, std::complex<Scalar>& value)
+  {
+    Scalar valR, valI;
+    line >> i >> j >> valR >> valI;
+    i--;
+    j--;
+    if(i>=0 && j>=0 && i<M && j<N)
+    {
+      value = std::complex<Scalar>(valR, valI);
+      return true; 
+    }
+    else
+      return false;
+  }
+
+  template <typename RealScalar>
+  inline void  GetVectorElt (const std::string& line, RealScalar& val)
+  {
+    std::istringstream newline(line);
+    newline >> val;  
+  }
+
+  template <typename RealScalar>
+  inline void GetVectorElt (const std::string& line, std::complex<RealScalar>& val)
+  {
+    RealScalar valR, valI; 
+    std::istringstream newline(line);
+    newline >> valR >> valI; 
+    val = std::complex<RealScalar>(valR, valI);
+  }
+  
+  template<typename Scalar>
+  inline void putMarketHeader(std::string& header,int sym)
+  {
+    header= "%%MatrixMarket matrix coordinate ";
+    if(internal::is_same<Scalar, std::complex<float> >::value || internal::is_same<Scalar, std::complex<double> >::value)
+    {
+      header += " complex"; 
+      if(sym == Symmetric) header += " symmetric";
+      else if (sym == SelfAdjoint) header += " Hermitian";
+      else header += " general";
+    }
+    else
+    {
+      header += " real"; 
+      if(sym == Symmetric) header += " symmetric";
+      else header += " general";
+    }
+  }
+
+  template<typename Scalar>
+  inline void PutMatrixElt(Scalar value, int row, int col, std::ofstream& out)
+  {
+    out << row << " "<< col << " " << value << "\n";
+  }
+  template<typename Scalar>
+  inline void PutMatrixElt(std::complex<Scalar> value, int row, int col, std::ofstream& out)
+  {
+    out << row << " " << col << " " << value.real() << " " << value.imag() << "\n";
+  }
+
+
+  template<typename Scalar>
+  inline void putVectorElt(Scalar value, std::ofstream& out)
+  {
+    out << value << "\n"; 
+  }
+  template<typename Scalar>
+  inline void putVectorElt(std::complex<Scalar> value, std::ofstream& out)
+  {
+    out << value.real << " " << value.imag()<< "\n"; 
+  }
+
+} // end namepsace internal
+
+inline bool getMarketHeader(const std::string& filename, int& sym, bool& iscomplex, bool& isvector)
+{
+  sym = 0; 
+  isvector = false;
+  std::ifstream in(filename.c_str(),std::ios::in);
+  if(!in)
+    return false;
+  
+  std::string line; 
+  // The matrix header is always the first line in the file 
+  std::getline(in, line); eigen_assert(in.good());
+  
+  std::stringstream fmtline(line); 
+  std::string substr[5];
+  fmtline>> substr[0] >> substr[1] >> substr[2] >> substr[3] >> substr[4];
+  if(substr[2].compare("array") == 0) isvector = true;
+  if(substr[3].compare("complex") == 0) iscomplex = true;
+  if(substr[4].compare("symmetric") == 0) sym = Symmetric;
+  else if (substr[4].compare("Hermitian") == 0) sym = SelfAdjoint;
+  
+  return true;
+}
+  
+template<typename SparseMatrixType>
+bool loadMarket(SparseMatrixType& mat, const std::string& filename)
+{
+  typedef typename SparseMatrixType::Scalar Scalar;
+  std::ifstream input(filename.c_str(),std::ios::in);
+  if(!input)
+    return false;
+  
+  const int maxBuffersize = 2048;
+  char buffer[maxBuffersize];
+  
+  bool readsizes = false;
+
+  typedef Triplet<Scalar,int> T;
+  std::vector<T> elements;
+  
+  int M(-1), N(-1), NNZ(-1);
+  int count = 0;
+  while(input.getline(buffer, maxBuffersize))
+  {
+    // skip comments   
+    //NOTE An appropriate test should be done on the header to get the  symmetry
+    if(buffer[0]=='%')
+      continue;
+    
+    std::stringstream line(buffer);
+    
+    if(!readsizes)
+    {
+      line >> M >> N >> NNZ;
+      if(M > 0 && N > 0 && NNZ > 0) 
+      {
+        readsizes = true;
+        std::cout << "sizes: " << M << "," << N << "," << NNZ << "\n";
+        mat.resize(M,N);
+        mat.reserve(NNZ);
+      }
+    }
+    else
+    { 
+      int i(-1), j(-1);
+      Scalar value; 
+      if( internal::GetMarketLine(line, M, N, i, j, value) ) 
+      {
+        ++ count;
+        elements.push_back(T(i,j,value));
+      }
+      else 
+        std::cerr << "Invalid read: " << i << "," << j << "\n";        
+    }
+  }
+  mat.setFromTriplets(elements.begin(), elements.end());
+  if(count!=NNZ)
+    std::cerr << count << "!=" << NNZ << "\n";
+  
+  input.close();
+  return true;
+}
+
+template<typename VectorType>
+bool loadMarketVector(VectorType& vec, const std::string& filename)
+{
+   typedef typename VectorType::Scalar Scalar;
+  std::ifstream in(filename.c_str(), std::ios::in);
+  if(!in)
+    return false;
+  
+  std::string line; 
+  int n(0), col(0); 
+  do 
+  { // Skip comments
+    std::getline(in, line); eigen_assert(in.good());
+  } while (line[0] == '%');
+  std::istringstream newline(line);
+  newline  >> n >> col; 
+  eigen_assert(n>0 && col>0);
+  vec.resize(n);
+  int i = 0; 
+  Scalar value; 
+  while ( std::getline(in, line) && (i < n) ){
+    internal::GetVectorElt(line, value); 
+    vec(i++) = value; 
+  }
+  in.close();
+  if (i!=n){
+    std::cerr<< "Unable to read all elements from file " << filename << "\n";
+    return false;
+  }
+  return true;
+}
+
+template<typename SparseMatrixType>
+bool saveMarket(const SparseMatrixType& mat, const std::string& filename, int sym = 0)
+{
+  typedef typename SparseMatrixType::Scalar Scalar;
+  std::ofstream out(filename.c_str(),std::ios::out);
+  if(!out)
+    return false;
+  
+  out.flags(std::ios_base::scientific);
+  out.precision(64);
+  std::string header; 
+  internal::putMarketHeader<Scalar>(header, sym); 
+  out << header << std::endl; 
+  out << mat.rows() << " " << mat.cols() << " " << mat.nonZeros() << "\n";
+  int count = 0;
+  for(int j=0; j<mat.outerSize(); ++j)
+    for(typename SparseMatrixType::InnerIterator it(mat,j); it; ++it)
+    {
+	++ count;
+	internal::PutMatrixElt(it.value(), it.row()+1, it.col()+1, out);
+	// out << it.row()+1 << " " << it.col()+1 << " " << it.value() << "\n";
+    }
+  out.close();
+  return true;
+}
+
+template<typename VectorType>
+bool saveMarketVector (const VectorType& vec, const std::string& filename)
+{
+ typedef typename VectorType::Scalar Scalar; 
+ std::ofstream out(filename.c_str(),std::ios::out);
+  if(!out)
+    return false;
+  
+  out.flags(std::ios_base::scientific);
+  out.precision(64);
+  if(internal::is_same<Scalar, std::complex<float> >::value || internal::is_same<Scalar, std::complex<double> >::value)
+      out << "%%MatrixMarket matrix array complex general\n"; 
+  else
+    out << "%%MatrixMarket matrix array real general\n"; 
+  out << vec.size() << " "<< 1 << "\n";
+  for (int i=0; i < vec.size(); i++){
+    internal::putVectorElt(vec(i), out); 
+  }
+  out.close();
+  return true; 
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_SPARSE_MARKET_IO_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h	(revision 2476)
@@ -0,0 +1,234 @@
+
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Desire NUENTSA WAKAM <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_BROWSE_MATRICES_H
+#define EIGEN_BROWSE_MATRICES_H
+
+namespace Eigen {
+
+enum {
+  SPD = 0x100,
+  NonSymmetric = 0x0
+}; 
+
+/** 
+ * @brief Iterator to browse matrices from a specified folder
+ * 
+ * This is used to load all the matrices from a folder. 
+ * The matrices should be in Matrix Market format
+ * It is assumed that the matrices are named as matname.mtx
+ * and matname_SPD.mtx if the matrix is Symmetric and positive definite (or Hermitian)
+ * The right hand side vectors are loaded as well, if they exist.
+ * They should be named as matname_b.mtx. 
+ * Note that the right hand side for a SPD matrix is named as matname_SPD_b.mtx
+ * 
+ * Sometimes a reference solution is available. In this case, it should be named as matname_x.mtx
+ * 
+ * Sample code
+ * \code
+ * 
+ * \endcode
+ * 
+ * \tparam Scalar The scalar type 
+ */
+template <typename Scalar>
+class MatrixMarketIterator 
+{
+  public:
+    typedef Matrix<Scalar,Dynamic,1> VectorType; 
+    typedef SparseMatrix<Scalar,ColMajor> MatrixType; 
+  
+  public:
+    MatrixMarketIterator(const std::string folder):m_sym(0),m_isvalid(false),m_matIsLoaded(false),m_hasRhs(false),m_hasrefX(false),m_folder(folder)
+    {
+      m_folder_id = opendir(folder.c_str());
+      if (!m_folder_id){
+        m_isvalid = false;
+        std::cerr << "The provided Matrix folder could not be opened \n\n";
+        abort();
+      }
+      Getnextvalidmatrix();
+    }
+    
+    ~MatrixMarketIterator()
+    {
+      if (m_folder_id) closedir(m_folder_id); 
+    }
+    
+    inline MatrixMarketIterator& operator++()
+    {
+      m_matIsLoaded = false;
+      m_hasrefX = false;
+      m_hasRhs = false;
+      Getnextvalidmatrix();
+      return *this;
+    }
+    inline operator bool() const { return m_isvalid;}
+    
+    /** Return the sparse matrix corresponding to the current file */
+    inline MatrixType& matrix() 
+    { 
+      // Read the matrix
+      if (m_matIsLoaded) return m_mat;
+      
+      std::string matrix_file = m_folder + "/" + m_matname + ".mtx";
+      if ( !loadMarket(m_mat, matrix_file)) 
+      {
+        m_matIsLoaded = false;
+        return m_mat;
+      }
+      m_matIsLoaded = true; 
+      
+      if (m_sym != NonSymmetric) 
+      { // Store the upper part of the matrix. It is needed by the solvers dealing with nonsymmetric matrices ??
+        MatrixType B; 
+        B = m_mat;
+        m_mat = B.template selfadjointView<Lower>();
+      }
+      return m_mat; 
+    }
+    
+    /** Return the right hand side corresponding to the current matrix. 
+     * If the rhs file is not provided, a random rhs is generated
+     */
+    inline VectorType& rhs() 
+    { 
+       // Get the right hand side
+      if (m_hasRhs) return m_rhs;
+      
+      std::string rhs_file;
+      rhs_file = m_folder + "/" + m_matname + "_b.mtx"; // The pattern is matname_b.mtx
+      m_hasRhs = Fileexists(rhs_file);
+      if (m_hasRhs)
+      {
+        m_rhs.resize(m_mat.cols());
+        m_hasRhs = loadMarketVector(m_rhs, rhs_file);
+      }
+      if (!m_hasRhs)
+      {
+        // Generate a random right hand side
+        if (!m_matIsLoaded) this->matrix(); 
+        m_refX.resize(m_mat.cols());
+        m_refX.setRandom();
+        m_rhs = m_mat * m_refX;
+        m_hasrefX = true;
+        m_hasRhs = true;
+      }
+      return m_rhs; 
+    }
+    
+    /** Return a reference solution
+     * If it is not provided and if the right hand side is not available
+     * then refX is randomly generated such that A*refX = b 
+     * where A and b are the matrix and the rhs. 
+     * Note that when a rhs is provided, refX is not available 
+     */
+    inline VectorType& refX() 
+    { 
+      // Check if a reference solution is provided
+      if (m_hasrefX) return m_refX;
+      
+      std::string lhs_file;
+      lhs_file = m_folder + "/" + m_matname + "_x.mtx"; 
+      m_hasrefX = Fileexists(lhs_file);
+      if (m_hasrefX)
+      {
+        m_refX.resize(m_mat.cols());
+        m_hasrefX = loadMarketVector(m_refX, lhs_file);
+      }
+      return m_refX; 
+    }
+    
+    inline std::string& matname() { return m_matname; }
+    
+    inline int sym() { return m_sym; }
+    
+    inline bool hasRhs() {return m_hasRhs; }
+    inline bool hasrefX() {return m_hasrefX; }
+    
+  protected:
+    
+    inline bool Fileexists(std::string file)
+    {
+      std::ifstream file_id(file.c_str());
+      if (!file_id.good() ) 
+      {
+        return false;
+      }
+      else 
+      {
+        file_id.close();
+        return true;
+      }
+    }
+    
+    void Getnextvalidmatrix( )
+    {
+      m_isvalid = false;
+      // Here, we return with the next valid matrix in the folder
+      while ( (m_curs_id = readdir(m_folder_id)) != NULL) {
+        m_isvalid = false;
+        std::string curfile;
+        curfile = m_folder + "/" + m_curs_id->d_name;
+        // Discard if it is a folder
+#if !(defined(__sun) || defined(_AIX) || defined(__hpux) || defined(__sgi))
+        if (m_curs_id->d_type == DT_DIR) continue; //FIXME This may not be available on non BSD systems
+#endif
+//         struct stat st_buf; 
+//         stat (curfile.c_str(), &st_buf);
+//         if (S_ISDIR(st_buf.st_mode)) continue;
+        
+        // Determine from the header if it is a matrix or a right hand side 
+        bool isvector,iscomplex=false;
+        if(!getMarketHeader(curfile,m_sym,iscomplex,isvector)) continue;
+        if(isvector) continue;
+        if (!iscomplex)
+        {
+          if(internal::is_same<Scalar, std::complex<float> >::value || internal::is_same<Scalar, std::complex<double> >::value)
+            continue; 
+        }
+        if (iscomplex)
+        {
+          if(internal::is_same<Scalar, float>::value || internal::is_same<Scalar, double>::value)
+            continue; 
+        }
+        
+        
+        // Get the matrix name
+        std::string filename = m_curs_id->d_name;
+        m_matname = filename.substr(0, filename.length()-4); 
+        
+        // Find if the matrix is SPD 
+        size_t found = m_matname.find("SPD");
+        if( (found!=std::string::npos) && (m_sym != NonSymmetric) )
+          m_sym = SPD;
+       
+        m_isvalid = true;
+        break; 
+      }
+    }
+    int m_sym; // Symmetry of the matrix
+    MatrixType m_mat; // Current matrix  
+    VectorType m_rhs;  // Current vector
+    VectorType m_refX; // The reference solution, if exists
+    std::string m_matname; // Matrix Name
+    bool m_isvalid; 
+    bool m_matIsLoaded; // Determine if the matrix has already been loaded from the file
+    bool m_hasRhs; // The right hand side exists
+    bool m_hasrefX; // A reference solution is provided
+    std::string m_folder;
+    DIR * m_folder_id;
+    struct dirent *m_curs_id; 
+    
+};
+
+} // end namespace Eigen
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Polynomials/PolynomialSolver.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Polynomials/PolynomialSolver.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Polynomials/PolynomialSolver.h	(revision 2476)
@@ -0,0 +1,389 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Manuel Yguel <manuel.yguel@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_POLYNOMIAL_SOLVER_H
+#define EIGEN_POLYNOMIAL_SOLVER_H
+
+namespace Eigen { 
+
+/** \ingroup Polynomials_Module
+ *  \class PolynomialSolverBase.
+ *
+ * \brief Defined to be inherited by polynomial solvers: it provides
+ * convenient methods such as
+ *  - real roots,
+ *  - greatest, smallest complex roots,
+ *  - real roots with greatest, smallest absolute real value,
+ *  - greatest, smallest real roots.
+ *
+ * It stores the set of roots as a vector of complexes.
+ *
+ */
+template< typename _Scalar, int _Deg >
+class PolynomialSolverBase
+{
+  public:
+    EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Deg==Dynamic ? Dynamic : _Deg)
+
+    typedef _Scalar                             Scalar;
+    typedef typename NumTraits<Scalar>::Real    RealScalar;
+    typedef std::complex<RealScalar>            RootType;
+    typedef Matrix<RootType,_Deg,1>             RootsType;
+
+    typedef DenseIndex Index;
+
+  protected:
+    template< typename OtherPolynomial >
+    inline void setPolynomial( const OtherPolynomial& poly ){
+      m_roots.resize(poly.size()); }
+
+  public:
+    template< typename OtherPolynomial >
+    inline PolynomialSolverBase( const OtherPolynomial& poly ){
+      setPolynomial( poly() ); }
+
+    inline PolynomialSolverBase(){}
+
+  public:
+    /** \returns the complex roots of the polynomial */
+    inline const RootsType& roots() const { return m_roots; }
+
+  public:
+    /** Clear and fills the back insertion sequence with the real roots of the polynomial
+     * i.e. the real part of the complex roots that have an imaginary part which
+     * absolute value is smaller than absImaginaryThreshold.
+     * absImaginaryThreshold takes the dummy_precision associated
+     * with the _Scalar template parameter of the PolynomialSolver class as the default value.
+     *
+     * \param[out] bi_seq : the back insertion sequence (stl concept)
+     * \param[in]  absImaginaryThreshold : the maximum bound of the imaginary part of a complex
+     *  number that is considered as real.
+     * */
+    template<typename Stl_back_insertion_sequence>
+    inline void realRoots( Stl_back_insertion_sequence& bi_seq,
+        const RealScalar& absImaginaryThreshold = NumTraits<Scalar>::dummy_precision() ) const
+    {
+      using std::abs;
+      bi_seq.clear();
+      for(Index i=0; i<m_roots.size(); ++i )
+      {
+        if( abs( m_roots[i].imag() ) < absImaginaryThreshold ){
+          bi_seq.push_back( m_roots[i].real() ); }
+      }
+    }
+
+  protected:
+    template<typename squaredNormBinaryPredicate>
+    inline const RootType& selectComplexRoot_withRespectToNorm( squaredNormBinaryPredicate& pred ) const
+    {
+      Index res=0;
+      RealScalar norm2 = numext::abs2( m_roots[0] );
+      for( Index i=1; i<m_roots.size(); ++i )
+      {
+        const RealScalar currNorm2 = numext::abs2( m_roots[i] );
+        if( pred( currNorm2, norm2 ) ){
+          res=i; norm2=currNorm2; }
+      }
+      return m_roots[res];
+    }
+
+  public:
+    /**
+     * \returns the complex root with greatest norm.
+     */
+    inline const RootType& greatestRoot() const
+    {
+      std::greater<Scalar> greater;
+      return selectComplexRoot_withRespectToNorm( greater );
+    }
+
+    /**
+     * \returns the complex root with smallest norm.
+     */
+    inline const RootType& smallestRoot() const
+    {
+      std::less<Scalar> less;
+      return selectComplexRoot_withRespectToNorm( less );
+    }
+
+  protected:
+    template<typename squaredRealPartBinaryPredicate>
+    inline const RealScalar& selectRealRoot_withRespectToAbsRealPart(
+        squaredRealPartBinaryPredicate& pred,
+        bool& hasArealRoot,
+        const RealScalar& absImaginaryThreshold = NumTraits<Scalar>::dummy_precision() ) const
+    {
+      using std::abs;
+      hasArealRoot = false;
+      Index res=0;
+      RealScalar abs2(0);
+
+      for( Index i=0; i<m_roots.size(); ++i )
+      {
+        if( abs( m_roots[i].imag() ) < absImaginaryThreshold )
+        {
+          if( !hasArealRoot )
+          {
+            hasArealRoot = true;
+            res = i;
+            abs2 = m_roots[i].real() * m_roots[i].real();
+          }
+          else
+          {
+            const RealScalar currAbs2 = m_roots[i].real() * m_roots[i].real();
+            if( pred( currAbs2, abs2 ) )
+            {
+              abs2 = currAbs2;
+              res = i;
+            }
+          }
+        }
+        else
+        {
+          if( abs( m_roots[i].imag() ) < abs( m_roots[res].imag() ) ){
+            res = i; }
+        }
+      }
+      return numext::real_ref(m_roots[res]);
+    }
+
+
+    template<typename RealPartBinaryPredicate>
+    inline const RealScalar& selectRealRoot_withRespectToRealPart(
+        RealPartBinaryPredicate& pred,
+        bool& hasArealRoot,
+        const RealScalar& absImaginaryThreshold = NumTraits<Scalar>::dummy_precision() ) const
+    {
+      using std::abs;
+      hasArealRoot = false;
+      Index res=0;
+      RealScalar val(0);
+
+      for( Index i=0; i<m_roots.size(); ++i )
+      {
+        if( abs( m_roots[i].imag() ) < absImaginaryThreshold )
+        {
+          if( !hasArealRoot )
+          {
+            hasArealRoot = true;
+            res = i;
+            val = m_roots[i].real();
+          }
+          else
+          {
+            const RealScalar curr = m_roots[i].real();
+            if( pred( curr, val ) )
+            {
+              val = curr;
+              res = i;
+            }
+          }
+        }
+        else
+        {
+          if( abs( m_roots[i].imag() ) < abs( m_roots[res].imag() ) ){
+            res = i; }
+        }
+      }
+      return numext::real_ref(m_roots[res]);
+    }
+
+  public:
+    /**
+     * \returns a real root with greatest absolute magnitude.
+     * A real root is defined as the real part of a complex root with absolute imaginary
+     * part smallest than absImaginaryThreshold.
+     * absImaginaryThreshold takes the dummy_precision associated
+     * with the _Scalar template parameter of the PolynomialSolver class as the default value.
+     * If no real root is found the boolean hasArealRoot is set to false and the real part of
+     * the root with smallest absolute imaginary part is returned instead.
+     *
+     * \param[out] hasArealRoot : boolean true if a real root is found according to the
+     *  absImaginaryThreshold criterion, false otherwise.
+     * \param[in] absImaginaryThreshold : threshold on the absolute imaginary part to decide
+     *  whether or not a root is real.
+     */
+    inline const RealScalar& absGreatestRealRoot(
+        bool& hasArealRoot,
+        const RealScalar& absImaginaryThreshold = NumTraits<Scalar>::dummy_precision() ) const
+    {
+      std::greater<Scalar> greater;
+      return selectRealRoot_withRespectToAbsRealPart( greater, hasArealRoot, absImaginaryThreshold );
+    }
+
+
+    /**
+     * \returns a real root with smallest absolute magnitude.
+     * A real root is defined as the real part of a complex root with absolute imaginary
+     * part smallest than absImaginaryThreshold.
+     * absImaginaryThreshold takes the dummy_precision associated
+     * with the _Scalar template parameter of the PolynomialSolver class as the default value.
+     * If no real root is found the boolean hasArealRoot is set to false and the real part of
+     * the root with smallest absolute imaginary part is returned instead.
+     *
+     * \param[out] hasArealRoot : boolean true if a real root is found according to the
+     *  absImaginaryThreshold criterion, false otherwise.
+     * \param[in] absImaginaryThreshold : threshold on the absolute imaginary part to decide
+     *  whether or not a root is real.
+     */
+    inline const RealScalar& absSmallestRealRoot(
+        bool& hasArealRoot,
+        const RealScalar& absImaginaryThreshold = NumTraits<Scalar>::dummy_precision() ) const
+    {
+      std::less<Scalar> less;
+      return selectRealRoot_withRespectToAbsRealPart( less, hasArealRoot, absImaginaryThreshold );
+    }
+
+
+    /**
+     * \returns the real root with greatest value.
+     * A real root is defined as the real part of a complex root with absolute imaginary
+     * part smallest than absImaginaryThreshold.
+     * absImaginaryThreshold takes the dummy_precision associated
+     * with the _Scalar template parameter of the PolynomialSolver class as the default value.
+     * If no real root is found the boolean hasArealRoot is set to false and the real part of
+     * the root with smallest absolute imaginary part is returned instead.
+     *
+     * \param[out] hasArealRoot : boolean true if a real root is found according to the
+     *  absImaginaryThreshold criterion, false otherwise.
+     * \param[in] absImaginaryThreshold : threshold on the absolute imaginary part to decide
+     *  whether or not a root is real.
+     */
+    inline const RealScalar& greatestRealRoot(
+        bool& hasArealRoot,
+        const RealScalar& absImaginaryThreshold = NumTraits<Scalar>::dummy_precision() ) const
+    {
+      std::greater<Scalar> greater;
+      return selectRealRoot_withRespectToRealPart( greater, hasArealRoot, absImaginaryThreshold );
+    }
+
+
+    /**
+     * \returns the real root with smallest value.
+     * A real root is defined as the real part of a complex root with absolute imaginary
+     * part smallest than absImaginaryThreshold.
+     * absImaginaryThreshold takes the dummy_precision associated
+     * with the _Scalar template parameter of the PolynomialSolver class as the default value.
+     * If no real root is found the boolean hasArealRoot is set to false and the real part of
+     * the root with smallest absolute imaginary part is returned instead.
+     *
+     * \param[out] hasArealRoot : boolean true if a real root is found according to the
+     *  absImaginaryThreshold criterion, false otherwise.
+     * \param[in] absImaginaryThreshold : threshold on the absolute imaginary part to decide
+     *  whether or not a root is real.
+     */
+    inline const RealScalar& smallestRealRoot(
+        bool& hasArealRoot,
+        const RealScalar& absImaginaryThreshold = NumTraits<Scalar>::dummy_precision() ) const
+    {
+      std::less<Scalar> less;
+      return selectRealRoot_withRespectToRealPart( less, hasArealRoot, absImaginaryThreshold );
+    }
+
+  protected:
+    RootsType               m_roots;
+};
+
+#define EIGEN_POLYNOMIAL_SOLVER_BASE_INHERITED_TYPES( BASE )  \
+  typedef typename BASE::Scalar                 Scalar;       \
+  typedef typename BASE::RealScalar             RealScalar;   \
+  typedef typename BASE::RootType               RootType;     \
+  typedef typename BASE::RootsType              RootsType;
+
+
+
+/** \ingroup Polynomials_Module
+  *
+  * \class PolynomialSolver
+  *
+  * \brief A polynomial solver
+  *
+  * Computes the complex roots of a real polynomial.
+  *
+  * \param _Scalar the scalar type, i.e., the type of the polynomial coefficients
+  * \param _Deg the degree of the polynomial, can be a compile time value or Dynamic.
+  *             Notice that the number of polynomial coefficients is _Deg+1.
+  *
+  * This class implements a polynomial solver and provides convenient methods such as
+  * - real roots,
+  * - greatest, smallest complex roots,
+  * - real roots with greatest, smallest absolute real value.
+  * - greatest, smallest real roots.
+  *
+  * WARNING: this polynomial solver is experimental, part of the unsuported Eigen modules.
+  *
+  *
+  * Currently a QR algorithm is used to compute the eigenvalues of the companion matrix of
+  * the polynomial to compute its roots.
+  * This supposes that the complex moduli of the roots are all distinct: e.g. there should
+  * be no multiple roots or conjugate roots for instance.
+  * With 32bit (float) floating types this problem shows up frequently.
+  * However, almost always, correct accuracy is reached even in these cases for 64bit
+  * (double) floating types and small polynomial degree (<20).
+  */
+template< typename _Scalar, int _Deg >
+class PolynomialSolver : public PolynomialSolverBase<_Scalar,_Deg>
+{
+  public:
+    EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Deg==Dynamic ? Dynamic : _Deg)
+
+    typedef PolynomialSolverBase<_Scalar,_Deg>    PS_Base;
+    EIGEN_POLYNOMIAL_SOLVER_BASE_INHERITED_TYPES( PS_Base )
+
+    typedef Matrix<Scalar,_Deg,_Deg>                 CompanionMatrixType;
+    typedef EigenSolver<CompanionMatrixType>         EigenSolverType;
+
+  public:
+    /** Computes the complex roots of a new polynomial. */
+    template< typename OtherPolynomial >
+    void compute( const OtherPolynomial& poly )
+    {
+      eigen_assert( Scalar(0) != poly[poly.size()-1] );
+      internal::companion<Scalar,_Deg> companion( poly );
+      companion.balance();
+      m_eigenSolver.compute( companion.denseMatrix() );
+      m_roots = m_eigenSolver.eigenvalues();
+    }
+
+  public:
+    template< typename OtherPolynomial >
+    inline PolynomialSolver( const OtherPolynomial& poly ){
+      compute( poly ); }
+
+    inline PolynomialSolver(){}
+
+  protected:
+    using                   PS_Base::m_roots;
+    EigenSolverType         m_eigenSolver;
+};
+
+
+template< typename _Scalar >
+class PolynomialSolver<_Scalar,1> : public PolynomialSolverBase<_Scalar,1>
+{
+  public:
+    typedef PolynomialSolverBase<_Scalar,1>    PS_Base;
+    EIGEN_POLYNOMIAL_SOLVER_BASE_INHERITED_TYPES( PS_Base )
+
+  public:
+    /** Computes the complex roots of a new polynomial. */
+    template< typename OtherPolynomial >
+    void compute( const OtherPolynomial& poly )
+    {
+      eigen_assert( Scalar(0) != poly[poly.size()-1] );
+      m_roots[0] = -poly[0]/poly[poly.size()-1];
+    }
+
+  protected:
+    using                   PS_Base::m_roots;
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_POLYNOMIAL_SOLVER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Polynomials/Companion.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Polynomials/Companion.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Polynomials/Companion.h	(revision 2476)
@@ -0,0 +1,276 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Manuel Yguel <manuel.yguel@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_COMPANION_H
+#define EIGEN_COMPANION_H
+
+// This file requires the user to include
+// * Eigen/Core
+// * Eigen/src/PolynomialSolver.h
+
+namespace Eigen { 
+
+namespace internal {
+
+#ifndef EIGEN_PARSED_BY_DOXYGEN
+
+template <typename T>
+T radix(){ return 2; }
+
+template <typename T>
+T radix2(){ return radix<T>()*radix<T>(); }
+
+template<int Size>
+struct decrement_if_fixed_size
+{
+  enum {
+    ret = (Size == Dynamic) ? Dynamic : Size-1 };
+};
+
+#endif
+
+template< typename _Scalar, int _Deg >
+class companion
+{
+  public:
+    EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Deg==Dynamic ? Dynamic : _Deg)
+
+    enum {
+      Deg = _Deg,
+      Deg_1=decrement_if_fixed_size<Deg>::ret
+    };
+
+    typedef _Scalar                                Scalar;
+    typedef typename NumTraits<Scalar>::Real       RealScalar;
+    typedef Matrix<Scalar, Deg, 1>                 RightColumn;
+    //typedef DiagonalMatrix< Scalar, Deg_1, Deg_1 > BottomLeftDiagonal;
+    typedef Matrix<Scalar, Deg_1, 1>               BottomLeftDiagonal;
+
+    typedef Matrix<Scalar, Deg, Deg>               DenseCompanionMatrixType;
+    typedef Matrix< Scalar, _Deg, Deg_1 >          LeftBlock;
+    typedef Matrix< Scalar, Deg_1, Deg_1 >         BottomLeftBlock;
+    typedef Matrix< Scalar, 1, Deg_1 >             LeftBlockFirstRow;
+
+    typedef DenseIndex Index;
+
+  public:
+    EIGEN_STRONG_INLINE const _Scalar operator()(Index row, Index col ) const
+    {
+      if( m_bl_diag.rows() > col )
+      {
+        if( 0 < row ){ return m_bl_diag[col]; }
+        else{ return 0; }
+      }
+      else{ return m_monic[row]; }
+    }
+
+  public:
+    template<typename VectorType>
+    void setPolynomial( const VectorType& poly )
+    {
+      const Index deg = poly.size()-1;
+      m_monic = -1/poly[deg] * poly.head(deg);
+      //m_bl_diag.setIdentity( deg-1 );
+      m_bl_diag.setOnes(deg-1);
+    }
+
+    template<typename VectorType>
+    companion( const VectorType& poly ){
+      setPolynomial( poly ); }
+
+  public:
+    DenseCompanionMatrixType denseMatrix() const
+    {
+      const Index deg   = m_monic.size();
+      const Index deg_1 = deg-1;
+      DenseCompanionMatrixType companion(deg,deg);
+      companion <<
+        ( LeftBlock(deg,deg_1)
+          << LeftBlockFirstRow::Zero(1,deg_1),
+          BottomLeftBlock::Identity(deg-1,deg-1)*m_bl_diag.asDiagonal() ).finished()
+        , m_monic;
+      return companion;
+    }
+
+
+
+  protected:
+    /** Helper function for the balancing algorithm.
+     * \returns true if the row and the column, having colNorm and rowNorm
+     * as norms, are balanced, false otherwise.
+     * colB and rowB are repectively the multipliers for
+     * the column and the row in order to balance them.
+     * */
+    bool balanced( Scalar colNorm, Scalar rowNorm,
+        bool& isBalanced, Scalar& colB, Scalar& rowB );
+
+    /** Helper function for the balancing algorithm.
+     * \returns true if the row and the column, having colNorm and rowNorm
+     * as norms, are balanced, false otherwise.
+     * colB and rowB are repectively the multipliers for
+     * the column and the row in order to balance them.
+     * */
+    bool balancedR( Scalar colNorm, Scalar rowNorm,
+        bool& isBalanced, Scalar& colB, Scalar& rowB );
+
+  public:
+    /**
+     * Balancing algorithm from B. N. PARLETT and C. REINSCH (1969)
+     * "Balancing a matrix for calculation of eigenvalues and eigenvectors"
+     * adapted to the case of companion matrices.
+     * A matrix with non zero row and non zero column is balanced
+     * for a certain norm if the i-th row and the i-th column
+     * have same norm for all i.
+     */
+    void balance();
+
+  protected:
+      RightColumn                m_monic;
+      BottomLeftDiagonal         m_bl_diag;
+};
+
+
+
+template< typename _Scalar, int _Deg >
+inline
+bool companion<_Scalar,_Deg>::balanced( Scalar colNorm, Scalar rowNorm,
+    bool& isBalanced, Scalar& colB, Scalar& rowB )
+{
+  if( Scalar(0) == colNorm || Scalar(0) == rowNorm ){ return true; }
+  else
+  {
+    //To find the balancing coefficients, if the radix is 2,
+    //one finds \f$ \sigma \f$ such that
+    // \f$ 2^{2\sigma-1} < rowNorm / colNorm \le 2^{2\sigma+1} \f$
+    // then the balancing coefficient for the row is \f$ 1/2^{\sigma} \f$
+    // and the balancing coefficient for the column is \f$ 2^{\sigma} \f$
+    rowB = rowNorm / radix<Scalar>();
+    colB = Scalar(1);
+    const Scalar s = colNorm + rowNorm;
+
+    while (colNorm < rowB)
+    {
+      colB *= radix<Scalar>();
+      colNorm *= radix2<Scalar>();
+    }
+
+    rowB = rowNorm * radix<Scalar>();
+
+    while (colNorm >= rowB)
+    {
+      colB /= radix<Scalar>();
+      colNorm /= radix2<Scalar>();
+    }
+
+    //This line is used to avoid insubstantial balancing
+    if ((rowNorm + colNorm) < Scalar(0.95) * s * colB)
+    {
+      isBalanced = false;
+      rowB = Scalar(1) / colB;
+      return false;
+    }
+    else{
+      return true; }
+  }
+}
+
+template< typename _Scalar, int _Deg >
+inline
+bool companion<_Scalar,_Deg>::balancedR( Scalar colNorm, Scalar rowNorm,
+    bool& isBalanced, Scalar& colB, Scalar& rowB )
+{
+  if( Scalar(0) == colNorm || Scalar(0) == rowNorm ){ return true; }
+  else
+  {
+    /**
+     * Set the norm of the column and the row to the geometric mean
+     * of the row and column norm
+     */
+    const _Scalar q = colNorm/rowNorm;
+    if( !isApprox( q, _Scalar(1) ) )
+    {
+      rowB = sqrt( colNorm/rowNorm );
+      colB = Scalar(1)/rowB;
+
+      isBalanced = false;
+      return false;
+    }
+    else{
+      return true; }
+  }
+}
+
+
+template< typename _Scalar, int _Deg >
+void companion<_Scalar,_Deg>::balance()
+{
+  using std::abs;
+  EIGEN_STATIC_ASSERT( Deg == Dynamic || 1 < Deg, YOU_MADE_A_PROGRAMMING_MISTAKE );
+  const Index deg   = m_monic.size();
+  const Index deg_1 = deg-1;
+
+  bool hasConverged=false;
+  while( !hasConverged )
+  {
+    hasConverged = true;
+    Scalar colNorm,rowNorm;
+    Scalar colB,rowB;
+
+    //First row, first column excluding the diagonal
+    //==============================================
+    colNorm = abs(m_bl_diag[0]);
+    rowNorm = abs(m_monic[0]);
+
+    //Compute balancing of the row and the column
+    if( !balanced( colNorm, rowNorm, hasConverged, colB, rowB ) )
+    {
+      m_bl_diag[0] *= colB;
+      m_monic[0] *= rowB;
+    }
+
+    //Middle rows and columns excluding the diagonal
+    //==============================================
+    for( Index i=1; i<deg_1; ++i )
+    {
+      // column norm, excluding the diagonal
+      colNorm = abs(m_bl_diag[i]);
+
+      // row norm, excluding the diagonal
+      rowNorm = abs(m_bl_diag[i-1]) + abs(m_monic[i]);
+
+      //Compute balancing of the row and the column
+      if( !balanced( colNorm, rowNorm, hasConverged, colB, rowB ) )
+      {
+        m_bl_diag[i]   *= colB;
+        m_bl_diag[i-1] *= rowB;
+        m_monic[i]     *= rowB;
+      }
+    }
+
+    //Last row, last column excluding the diagonal
+    //============================================
+    const Index ebl = m_bl_diag.size()-1;
+    VectorBlock<RightColumn,Deg_1> headMonic( m_monic, 0, deg_1 );
+    colNorm = headMonic.array().abs().sum();
+    rowNorm = abs( m_bl_diag[ebl] );
+
+    //Compute balancing of the row and the column
+    if( !balanced( colNorm, rowNorm, hasConverged, colB, rowB ) )
+    {
+      headMonic      *= colB;
+      m_bl_diag[ebl] *= rowB;
+    }
+  }
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_COMPANION_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Polynomials/PolynomialUtils.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Polynomials/PolynomialUtils.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Polynomials/PolynomialUtils.h	(revision 2476)
@@ -0,0 +1,143 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2010 Manuel Yguel <manuel.yguel@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_POLYNOMIAL_UTILS_H
+#define EIGEN_POLYNOMIAL_UTILS_H
+
+namespace Eigen { 
+
+/** \ingroup Polynomials_Module
+ * \returns the evaluation of the polynomial at x using Horner algorithm.
+ *
+ * \param[in] poly : the vector of coefficients of the polynomial ordered
+ *  by degrees i.e. poly[i] is the coefficient of degree i of the polynomial
+ *  e.g. \f$ 1 + 3x^2 \f$ is stored as a vector \f$ [ 1, 0, 3 ] \f$.
+ * \param[in] x : the value to evaluate the polynomial at.
+ *
+ * <i><b>Note for stability:</b></i>
+ *  <dd> \f$ |x| \le 1 \f$ </dd>
+ */
+template <typename Polynomials, typename T>
+inline
+T poly_eval_horner( const Polynomials& poly, const T& x )
+{
+  T val=poly[poly.size()-1];
+  for(DenseIndex i=poly.size()-2; i>=0; --i ){
+    val = val*x + poly[i]; }
+  return val;
+}
+
+/** \ingroup Polynomials_Module
+ * \returns the evaluation of the polynomial at x using stabilized Horner algorithm.
+ *
+ * \param[in] poly : the vector of coefficients of the polynomial ordered
+ *  by degrees i.e. poly[i] is the coefficient of degree i of the polynomial
+ *  e.g. \f$ 1 + 3x^2 \f$ is stored as a vector \f$ [ 1, 0, 3 ] \f$.
+ * \param[in] x : the value to evaluate the polynomial at.
+ */
+template <typename Polynomials, typename T>
+inline
+T poly_eval( const Polynomials& poly, const T& x )
+{
+  typedef typename NumTraits<T>::Real Real;
+
+  if( numext::abs2( x ) <= Real(1) ){
+    return poly_eval_horner( poly, x ); }
+  else
+  {
+    T val=poly[0];
+    T inv_x = T(1)/x;
+    for( DenseIndex i=1; i<poly.size(); ++i ){
+      val = val*inv_x + poly[i]; }
+
+    return std::pow(x,(T)(poly.size()-1)) * val;
+  }
+}
+
+/** \ingroup Polynomials_Module
+ * \returns a maximum bound for the absolute value of any root of the polynomial.
+ *
+ * \param[in] poly : the vector of coefficients of the polynomial ordered
+ *  by degrees i.e. poly[i] is the coefficient of degree i of the polynomial
+ *  e.g. \f$ 1 + 3x^2 \f$ is stored as a vector \f$ [ 1, 0, 3 ] \f$.
+ *
+ *  <i><b>Precondition:</b></i>
+ *  <dd> the leading coefficient of the input polynomial poly must be non zero </dd>
+ */
+template <typename Polynomial>
+inline
+typename NumTraits<typename Polynomial::Scalar>::Real cauchy_max_bound( const Polynomial& poly )
+{
+  using std::abs;
+  typedef typename Polynomial::Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real Real;
+
+  eigen_assert( Scalar(0) != poly[poly.size()-1] );
+  const Scalar inv_leading_coeff = Scalar(1)/poly[poly.size()-1];
+  Real cb(0);
+
+  for( DenseIndex i=0; i<poly.size()-1; ++i ){
+    cb += abs(poly[i]*inv_leading_coeff); }
+  return cb + Real(1);
+}
+
+/** \ingroup Polynomials_Module
+ * \returns a minimum bound for the absolute value of any non zero root of the polynomial.
+ * \param[in] poly : the vector of coefficients of the polynomial ordered
+ *  by degrees i.e. poly[i] is the coefficient of degree i of the polynomial
+ *  e.g. \f$ 1 + 3x^2 \f$ is stored as a vector \f$ [ 1, 0, 3 ] \f$.
+ */
+template <typename Polynomial>
+inline
+typename NumTraits<typename Polynomial::Scalar>::Real cauchy_min_bound( const Polynomial& poly )
+{
+  using std::abs;
+  typedef typename Polynomial::Scalar Scalar;
+  typedef typename NumTraits<Scalar>::Real Real;
+
+  DenseIndex i=0;
+  while( i<poly.size()-1 && Scalar(0) == poly(i) ){ ++i; }
+  if( poly.size()-1 == i ){
+    return Real(1); }
+
+  const Scalar inv_min_coeff = Scalar(1)/poly[i];
+  Real cb(1);
+  for( DenseIndex j=i+1; j<poly.size(); ++j ){
+    cb += abs(poly[j]*inv_min_coeff); }
+  return Real(1)/cb;
+}
+
+/** \ingroup Polynomials_Module
+ * Given the roots of a polynomial compute the coefficients in the
+ * monomial basis of the monic polynomial with same roots and minimal degree.
+ * If RootVector is a vector of complexes, Polynomial should also be a vector
+ * of complexes.
+ * \param[in] rv : a vector containing the roots of a polynomial.
+ * \param[out] poly : the vector of coefficients of the polynomial ordered
+ *  by degrees i.e. poly[i] is the coefficient of degree i of the polynomial
+ *  e.g. \f$ 3 + x^2 \f$ is stored as a vector \f$ [ 3, 0, 1 ] \f$.
+ */
+template <typename RootVector, typename Polynomial>
+void roots_to_monicPolynomial( const RootVector& rv, Polynomial& poly )
+{
+
+  typedef typename Polynomial::Scalar Scalar;
+
+  poly.setZero( rv.size()+1 );
+  poly[0] = -rv[0]; poly[1] = Scalar(1);
+  for( DenseIndex i=1; i< rv.size(); ++i )
+  {
+    for( DenseIndex j=i+1; j>0; --j ){ poly[j] = poly[j-1] - rv[i]*poly[j]; }
+    poly[0] = -rv[i]*poly[0];
+  }
+}
+
+} // end namespace Eigen
+
+#endif // EIGEN_POLYNOMIAL_UTILS_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h	(revision 2476)
@@ -0,0 +1,805 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 David Harmon <dharmon@gmail.com>
+//
+// Eigen is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or (at your option) any later version.
+//
+// Alternatively, you can redistribute it and/or
+// modify it under the terms of the GNU General Public License as
+// published by the Free Software Foundation; either version 2 of
+// the License, or (at your option) any later version.
+//
+// Eigen is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License or the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License and a copy of the GNU General Public License along with
+// Eigen. If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef EIGEN_ARPACKGENERALIZEDSELFADJOINTEIGENSOLVER_H
+#define EIGEN_ARPACKGENERALIZEDSELFADJOINTEIGENSOLVER_H
+
+#include <Eigen/Dense>
+
+namespace Eigen { 
+
+namespace internal {
+  template<typename Scalar, typename RealScalar> struct arpack_wrapper;
+  template<typename MatrixSolver, typename MatrixType, typename Scalar, bool BisSPD> struct OP;
+}
+
+
+
+template<typename MatrixType, typename MatrixSolver=SimplicialLLT<MatrixType>, bool BisSPD=false>
+class ArpackGeneralizedSelfAdjointEigenSolver
+{
+public:
+  //typedef typename MatrixSolver::MatrixType MatrixType;
+
+  /** \brief Scalar type for matrices of type \p MatrixType. */
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::Index Index;
+
+  /** \brief Real scalar type for \p MatrixType.
+   *
+   * This is just \c Scalar if #Scalar is real (e.g., \c float or
+   * \c Scalar), and the type of the real part of \c Scalar if #Scalar is
+   * complex.
+   */
+  typedef typename NumTraits<Scalar>::Real RealScalar;
+
+  /** \brief Type for vector of eigenvalues as returned by eigenvalues().
+   *
+   * This is a column vector with entries of type #RealScalar.
+   * The length of the vector is the size of \p nbrEigenvalues.
+   */
+  typedef typename internal::plain_col_type<MatrixType, RealScalar>::type RealVectorType;
+
+  /** \brief Default constructor.
+   *
+   * The default constructor is for cases in which the user intends to
+   * perform decompositions via compute().
+   *
+   */
+  ArpackGeneralizedSelfAdjointEigenSolver()
+   : m_eivec(),
+     m_eivalues(),
+     m_isInitialized(false),
+     m_eigenvectorsOk(false),
+     m_nbrConverged(0),
+     m_nbrIterations(0)
+  { }
+
+  /** \brief Constructor; computes generalized eigenvalues of given matrix with respect to another matrix.
+   *
+   * \param[in] A Self-adjoint matrix whose eigenvalues / eigenvectors will
+   *    computed. By default, the upper triangular part is used, but can be changed
+   *    through the template parameter.
+   * \param[in] B Self-adjoint matrix for the generalized eigenvalue problem.
+   * \param[in] nbrEigenvalues The number of eigenvalues / eigenvectors to compute.
+   *    Must be less than the size of the input matrix, or an error is returned.
+   * \param[in] eigs_sigma String containing either "LM", "SM", "LA", or "SA", with
+   *    respective meanings to find the largest magnitude , smallest magnitude,
+   *    largest algebraic, or smallest algebraic eigenvalues. Alternatively, this
+   *    value can contain floating point value in string form, in which case the
+   *    eigenvalues closest to this value will be found.
+   * \param[in]  options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
+   * \param[in] tol What tolerance to find the eigenvalues to. Default is 0, which
+   *    means machine precision.
+   *
+   * This constructor calls compute(const MatrixType&, const MatrixType&, Index, string, int, RealScalar)
+   * to compute the eigenvalues of the matrix \p A with respect to \p B. The eigenvectors are computed if
+   * \p options equals #ComputeEigenvectors.
+   *
+   */
+  ArpackGeneralizedSelfAdjointEigenSolver(const MatrixType& A, const MatrixType& B,
+                                          Index nbrEigenvalues, std::string eigs_sigma="LM",
+                               int options=ComputeEigenvectors, RealScalar tol=0.0)
+    : m_eivec(),
+      m_eivalues(),
+      m_isInitialized(false),
+      m_eigenvectorsOk(false),
+      m_nbrConverged(0),
+      m_nbrIterations(0)
+  {
+    compute(A, B, nbrEigenvalues, eigs_sigma, options, tol);
+  }
+
+  /** \brief Constructor; computes eigenvalues of given matrix.
+   *
+   * \param[in] A Self-adjoint matrix whose eigenvalues / eigenvectors will
+   *    computed. By default, the upper triangular part is used, but can be changed
+   *    through the template parameter.
+   * \param[in] nbrEigenvalues The number of eigenvalues / eigenvectors to compute.
+   *    Must be less than the size of the input matrix, or an error is returned.
+   * \param[in] eigs_sigma String containing either "LM", "SM", "LA", or "SA", with
+   *    respective meanings to find the largest magnitude , smallest magnitude,
+   *    largest algebraic, or smallest algebraic eigenvalues. Alternatively, this
+   *    value can contain floating point value in string form, in which case the
+   *    eigenvalues closest to this value will be found.
+   * \param[in]  options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
+   * \param[in] tol What tolerance to find the eigenvalues to. Default is 0, which
+   *    means machine precision.
+   *
+   * This constructor calls compute(const MatrixType&, Index, string, int, RealScalar)
+   * to compute the eigenvalues of the matrix \p A. The eigenvectors are computed if
+   * \p options equals #ComputeEigenvectors.
+   *
+   */
+
+  ArpackGeneralizedSelfAdjointEigenSolver(const MatrixType& A,
+                                          Index nbrEigenvalues, std::string eigs_sigma="LM",
+                               int options=ComputeEigenvectors, RealScalar tol=0.0)
+    : m_eivec(),
+      m_eivalues(),
+      m_isInitialized(false),
+      m_eigenvectorsOk(false),
+      m_nbrConverged(0),
+      m_nbrIterations(0)
+  {
+    compute(A, nbrEigenvalues, eigs_sigma, options, tol);
+  }
+
+
+  /** \brief Computes generalized eigenvalues / eigenvectors of given matrix using the external ARPACK library.
+   *
+   * \param[in]  A  Selfadjoint matrix whose eigendecomposition is to be computed.
+   * \param[in]  B  Selfadjoint matrix for generalized eigenvalues.
+   * \param[in] nbrEigenvalues The number of eigenvalues / eigenvectors to compute.
+   *    Must be less than the size of the input matrix, or an error is returned.
+   * \param[in] eigs_sigma String containing either "LM", "SM", "LA", or "SA", with
+   *    respective meanings to find the largest magnitude , smallest magnitude,
+   *    largest algebraic, or smallest algebraic eigenvalues. Alternatively, this
+   *    value can contain floating point value in string form, in which case the
+   *    eigenvalues closest to this value will be found.
+   * \param[in]  options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
+   * \param[in] tol What tolerance to find the eigenvalues to. Default is 0, which
+   *    means machine precision.
+   *
+   * \returns    Reference to \c *this
+   *
+   * This function computes the generalized eigenvalues of \p A with respect to \p B using ARPACK.  The eigenvalues()
+   * function can be used to retrieve them.  If \p options equals #ComputeEigenvectors,
+   * then the eigenvectors are also computed and can be retrieved by
+   * calling eigenvectors().
+   *
+   */
+  ArpackGeneralizedSelfAdjointEigenSolver& compute(const MatrixType& A, const MatrixType& B,
+                                                   Index nbrEigenvalues, std::string eigs_sigma="LM",
+                                        int options=ComputeEigenvectors, RealScalar tol=0.0);
+  
+  /** \brief Computes eigenvalues / eigenvectors of given matrix using the external ARPACK library.
+   *
+   * \param[in]  A  Selfadjoint matrix whose eigendecomposition is to be computed.
+   * \param[in] nbrEigenvalues The number of eigenvalues / eigenvectors to compute.
+   *    Must be less than the size of the input matrix, or an error is returned.
+   * \param[in] eigs_sigma String containing either "LM", "SM", "LA", or "SA", with
+   *    respective meanings to find the largest magnitude , smallest magnitude,
+   *    largest algebraic, or smallest algebraic eigenvalues. Alternatively, this
+   *    value can contain floating point value in string form, in which case the
+   *    eigenvalues closest to this value will be found.
+   * \param[in]  options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
+   * \param[in] tol What tolerance to find the eigenvalues to. Default is 0, which
+   *    means machine precision.
+   *
+   * \returns    Reference to \c *this
+   *
+   * This function computes the eigenvalues of \p A using ARPACK.  The eigenvalues()
+   * function can be used to retrieve them.  If \p options equals #ComputeEigenvectors,
+   * then the eigenvectors are also computed and can be retrieved by
+   * calling eigenvectors().
+   *
+   */
+  ArpackGeneralizedSelfAdjointEigenSolver& compute(const MatrixType& A,
+                                                   Index nbrEigenvalues, std::string eigs_sigma="LM",
+                                        int options=ComputeEigenvectors, RealScalar tol=0.0);
+
+
+  /** \brief Returns the eigenvectors of given matrix.
+   *
+   * \returns  A const reference to the matrix whose columns are the eigenvectors.
+   *
+   * \pre The eigenvectors have been computed before.
+   *
+   * Column \f$ k \f$ of the returned matrix is an eigenvector corresponding
+   * to eigenvalue number \f$ k \f$ as returned by eigenvalues().  The
+   * eigenvectors are normalized to have (Euclidean) norm equal to one. If
+   * this object was used to solve the eigenproblem for the selfadjoint
+   * matrix \f$ A \f$, then the matrix returned by this function is the
+   * matrix \f$ V \f$ in the eigendecomposition \f$ A V = D V \f$.
+   * For the generalized eigenproblem, the matrix returned is the solution \f$ A V = D B V \f$
+   *
+   * Example: \include SelfAdjointEigenSolver_eigenvectors.cpp
+   * Output: \verbinclude SelfAdjointEigenSolver_eigenvectors.out
+   *
+   * \sa eigenvalues()
+   */
+  const Matrix<Scalar, Dynamic, Dynamic>& eigenvectors() const
+  {
+    eigen_assert(m_isInitialized && "ArpackGeneralizedSelfAdjointEigenSolver is not initialized.");
+    eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+    return m_eivec;
+  }
+
+  /** \brief Returns the eigenvalues of given matrix.
+   *
+   * \returns A const reference to the column vector containing the eigenvalues.
+   *
+   * \pre The eigenvalues have been computed before.
+   *
+   * The eigenvalues are repeated according to their algebraic multiplicity,
+   * so there are as many eigenvalues as rows in the matrix. The eigenvalues
+   * are sorted in increasing order.
+   *
+   * Example: \include SelfAdjointEigenSolver_eigenvalues.cpp
+   * Output: \verbinclude SelfAdjointEigenSolver_eigenvalues.out
+   *
+   * \sa eigenvectors(), MatrixBase::eigenvalues()
+   */
+  const Matrix<Scalar, Dynamic, 1>& eigenvalues() const
+  {
+    eigen_assert(m_isInitialized && "ArpackGeneralizedSelfAdjointEigenSolver is not initialized.");
+    return m_eivalues;
+  }
+
+  /** \brief Computes the positive-definite square root of the matrix.
+   *
+   * \returns the positive-definite square root of the matrix
+   *
+   * \pre The eigenvalues and eigenvectors of a positive-definite matrix
+   * have been computed before.
+   *
+   * The square root of a positive-definite matrix \f$ A \f$ is the
+   * positive-definite matrix whose square equals \f$ A \f$. This function
+   * uses the eigendecomposition \f$ A = V D V^{-1} \f$ to compute the
+   * square root as \f$ A^{1/2} = V D^{1/2} V^{-1} \f$.
+   *
+   * Example: \include SelfAdjointEigenSolver_operatorSqrt.cpp
+   * Output: \verbinclude SelfAdjointEigenSolver_operatorSqrt.out
+   *
+   * \sa operatorInverseSqrt(),
+   *     \ref MatrixFunctions_Module "MatrixFunctions Module"
+   */
+  Matrix<Scalar, Dynamic, Dynamic> operatorSqrt() const
+  {
+    eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+    eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+    return m_eivec * m_eivalues.cwiseSqrt().asDiagonal() * m_eivec.adjoint();
+  }
+
+  /** \brief Computes the inverse square root of the matrix.
+   *
+   * \returns the inverse positive-definite square root of the matrix
+   *
+   * \pre The eigenvalues and eigenvectors of a positive-definite matrix
+   * have been computed before.
+   *
+   * This function uses the eigendecomposition \f$ A = V D V^{-1} \f$ to
+   * compute the inverse square root as \f$ V D^{-1/2} V^{-1} \f$. This is
+   * cheaper than first computing the square root with operatorSqrt() and
+   * then its inverse with MatrixBase::inverse().
+   *
+   * Example: \include SelfAdjointEigenSolver_operatorInverseSqrt.cpp
+   * Output: \verbinclude SelfAdjointEigenSolver_operatorInverseSqrt.out
+   *
+   * \sa operatorSqrt(), MatrixBase::inverse(),
+   *     \ref MatrixFunctions_Module "MatrixFunctions Module"
+   */
+  Matrix<Scalar, Dynamic, Dynamic> operatorInverseSqrt() const
+  {
+    eigen_assert(m_isInitialized && "SelfAdjointEigenSolver is not initialized.");
+    eigen_assert(m_eigenvectorsOk && "The eigenvectors have not been computed together with the eigenvalues.");
+    return m_eivec * m_eivalues.cwiseInverse().cwiseSqrt().asDiagonal() * m_eivec.adjoint();
+  }
+
+  /** \brief Reports whether previous computation was successful.
+   *
+   * \returns \c Success if computation was succesful, \c NoConvergence otherwise.
+   */
+  ComputationInfo info() const
+  {
+    eigen_assert(m_isInitialized && "ArpackGeneralizedSelfAdjointEigenSolver is not initialized.");
+    return m_info;
+  }
+
+  size_t getNbrConvergedEigenValues() const
+  { return m_nbrConverged; }
+
+  size_t getNbrIterations() const
+  { return m_nbrIterations; }
+
+protected:
+  Matrix<Scalar, Dynamic, Dynamic> m_eivec;
+  Matrix<Scalar, Dynamic, 1> m_eivalues;
+  ComputationInfo m_info;
+  bool m_isInitialized;
+  bool m_eigenvectorsOk;
+
+  size_t m_nbrConverged;
+  size_t m_nbrIterations;
+};
+
+
+
+
+
+template<typename MatrixType, typename MatrixSolver, bool BisSPD>
+ArpackGeneralizedSelfAdjointEigenSolver<MatrixType, MatrixSolver, BisSPD>&
+    ArpackGeneralizedSelfAdjointEigenSolver<MatrixType, MatrixSolver, BisSPD>
+::compute(const MatrixType& A, Index nbrEigenvalues,
+          std::string eigs_sigma, int options, RealScalar tol)
+{
+    MatrixType B(0,0);
+    compute(A, B, nbrEigenvalues, eigs_sigma, options, tol);
+    
+    return *this;
+}
+
+
+template<typename MatrixType, typename MatrixSolver, bool BisSPD>
+ArpackGeneralizedSelfAdjointEigenSolver<MatrixType, MatrixSolver, BisSPD>&
+    ArpackGeneralizedSelfAdjointEigenSolver<MatrixType, MatrixSolver, BisSPD>
+::compute(const MatrixType& A, const MatrixType& B, Index nbrEigenvalues,
+          std::string eigs_sigma, int options, RealScalar tol)
+{
+  eigen_assert(A.cols() == A.rows());
+  eigen_assert(B.cols() == B.rows());
+  eigen_assert(B.rows() == 0 || A.cols() == B.rows());
+  eigen_assert((options &~ (EigVecMask | GenEigMask)) == 0
+            && (options & EigVecMask) != EigVecMask
+            && "invalid option parameter");
+
+  bool isBempty = (B.rows() == 0) || (B.cols() == 0);
+
+  // For clarity, all parameters match their ARPACK name
+  //
+  // Always 0 on the first call
+  //
+  int ido = 0;
+
+  int n = (int)A.cols();
+
+  // User options: "LA", "SA", "SM", "LM", "BE"
+  //
+  char whch[3] = "LM";
+    
+  // Specifies the shift if iparam[6] = { 3, 4, 5 }, not used if iparam[6] = { 1, 2 }
+  //
+  RealScalar sigma = 0.0;
+
+  if (eigs_sigma.length() >= 2 && isalpha(eigs_sigma[0]) && isalpha(eigs_sigma[1]))
+  {
+      eigs_sigma[0] = toupper(eigs_sigma[0]);
+      eigs_sigma[1] = toupper(eigs_sigma[1]);
+
+      // In the following special case we're going to invert the problem, since solving
+      // for larger magnitude is much much faster
+      // i.e., if 'SM' is specified, we're going to really use 'LM', the default
+      //
+      if (eigs_sigma.substr(0,2) != "SM")
+      {
+          whch[0] = eigs_sigma[0];
+          whch[1] = eigs_sigma[1];
+      }
+  }
+  else
+  {
+      eigen_assert(false && "Specifying clustered eigenvalues is not yet supported!");
+
+      // If it's not scalar values, then the user may be explicitly
+      // specifying the sigma value to cluster the evs around
+      //
+      sigma = atof(eigs_sigma.c_str());
+
+      // If atof fails, it returns 0.0, which is a fine default
+      //
+  }
+
+  // "I" means normal eigenvalue problem, "G" means generalized
+  //
+  char bmat[2] = "I";
+  if (eigs_sigma.substr(0,2) == "SM" || !(isalpha(eigs_sigma[0]) && isalpha(eigs_sigma[1])) || (!isBempty && !BisSPD))
+      bmat[0] = 'G';
+
+  // Now we determine the mode to use
+  //
+  int mode = (bmat[0] == 'G') + 1;
+  if (eigs_sigma.substr(0,2) == "SM" || !(isalpha(eigs_sigma[0]) && isalpha(eigs_sigma[1])))
+  {
+      // We're going to use shift-and-invert mode, and basically find
+      // the largest eigenvalues of the inverse operator
+      //
+      mode = 3;
+  }
+
+  // The user-specified number of eigenvalues/vectors to compute
+  //
+  int nev = (int)nbrEigenvalues;
+
+  // Allocate space for ARPACK to store the residual
+  //
+  Scalar *resid = new Scalar[n];
+
+  // Number of Lanczos vectors, must satisfy nev < ncv <= n
+  // Note that this indicates that nev != n, and we cannot compute
+  // all eigenvalues of a mtrix
+  //
+  int ncv = std::min(std::max(2*nev, 20), n);
+
+  // The working n x ncv matrix, also store the final eigenvectors (if computed)
+  //
+  Scalar *v = new Scalar[n*ncv];
+  int ldv = n;
+
+  // Working space
+  //
+  Scalar *workd = new Scalar[3*n];
+  int lworkl = ncv*ncv+8*ncv; // Must be at least this length
+  Scalar *workl = new Scalar[lworkl];
+
+  int *iparam= new int[11];
+  iparam[0] = 1; // 1 means we let ARPACK perform the shifts, 0 means we'd have to do it
+  iparam[2] = std::max(300, (int)std::ceil(2*n/std::max(ncv,1)));
+  iparam[6] = mode; // The mode, 1 is standard ev problem, 2 for generalized ev, 3 for shift-and-invert
+
+  // Used during reverse communicate to notify where arrays start
+  //
+  int *ipntr = new int[11]; 
+
+  // Error codes are returned in here, initial value of 0 indicates a random initial
+  // residual vector is used, any other values means resid contains the initial residual
+  // vector, possibly from a previous run
+  //
+  int info = 0;
+
+  Scalar scale = 1.0;
+  //if (!isBempty)
+  //{
+  //Scalar scale = B.norm() / std::sqrt(n);
+  //scale = std::pow(2, std::floor(std::log(scale+1)));
+  ////M /= scale;
+  //for (size_t i=0; i<(size_t)B.outerSize(); i++)
+  //    for (typename MatrixType::InnerIterator it(B, i); it; ++it)
+  //        it.valueRef() /= scale;
+  //}
+
+  MatrixSolver OP;
+  if (mode == 1 || mode == 2)
+  {
+      if (!isBempty)
+          OP.compute(B);
+  }
+  else if (mode == 3)
+  {
+      if (sigma == 0.0)
+      {
+          OP.compute(A);
+      }
+      else
+      {
+          // Note: We will never enter here because sigma must be 0.0
+          //
+          if (isBempty)
+          {
+            MatrixType AminusSigmaB(A);
+            for (Index i=0; i<A.rows(); ++i)
+                AminusSigmaB.coeffRef(i,i) -= sigma;
+            
+            OP.compute(AminusSigmaB);
+          }
+          else
+          {
+              MatrixType AminusSigmaB = A - sigma * B;
+              OP.compute(AminusSigmaB);
+          }
+      }
+  }
+ 
+  if (!(mode == 1 && isBempty) && !(mode == 2 && isBempty) && OP.info() != Success)
+      std::cout << "Error factoring matrix" << std::endl;
+
+  do
+  {
+    internal::arpack_wrapper<Scalar, RealScalar>::saupd(&ido, bmat, &n, whch, &nev, &tol, resid, 
+                                                        &ncv, v, &ldv, iparam, ipntr, workd, workl,
+                                                        &lworkl, &info);
+
+    if (ido == -1 || ido == 1)
+    {
+      Scalar *in  = workd + ipntr[0] - 1;
+      Scalar *out = workd + ipntr[1] - 1;
+
+      if (ido == 1 && mode != 2)
+      {
+          Scalar *out2 = workd + ipntr[2] - 1;
+          if (isBempty || mode == 1)
+            Matrix<Scalar, Dynamic, 1>::Map(out2, n) = Matrix<Scalar, Dynamic, 1>::Map(in, n);
+          else
+            Matrix<Scalar, Dynamic, 1>::Map(out2, n) = B * Matrix<Scalar, Dynamic, 1>::Map(in, n);
+          
+          in = workd + ipntr[2] - 1;
+      }
+
+      if (mode == 1)
+      {
+        if (isBempty)
+        {
+          // OP = A
+          //
+          Matrix<Scalar, Dynamic, 1>::Map(out, n) = A * Matrix<Scalar, Dynamic, 1>::Map(in, n);
+        }
+        else
+        {
+          // OP = L^{-1}AL^{-T}
+          //
+          internal::OP<MatrixSolver, MatrixType, Scalar, BisSPD>::applyOP(OP, A, n, in, out);
+        }
+      }
+      else if (mode == 2)
+      {
+        if (ido == 1)
+          Matrix<Scalar, Dynamic, 1>::Map(in, n)  = A * Matrix<Scalar, Dynamic, 1>::Map(in, n);
+        
+        // OP = B^{-1} A
+        //
+        Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.solve(Matrix<Scalar, Dynamic, 1>::Map(in, n));
+      }
+      else if (mode == 3)
+      {
+        // OP = (A-\sigmaB)B (\sigma could be 0, and B could be I)
+        // The B * in is already computed and stored at in if ido == 1
+        //
+        if (ido == 1 || isBempty)
+          Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.solve(Matrix<Scalar, Dynamic, 1>::Map(in, n));
+        else
+          Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.solve(B * Matrix<Scalar, Dynamic, 1>::Map(in, n));
+      }
+    }
+    else if (ido == 2)
+    {
+      Scalar *in  = workd + ipntr[0] - 1;
+      Scalar *out = workd + ipntr[1] - 1;
+
+      if (isBempty || mode == 1)
+        Matrix<Scalar, Dynamic, 1>::Map(out, n) = Matrix<Scalar, Dynamic, 1>::Map(in, n);
+      else
+        Matrix<Scalar, Dynamic, 1>::Map(out, n) = B * Matrix<Scalar, Dynamic, 1>::Map(in, n);
+    }
+  } while (ido != 99);
+
+  if (info == 1)
+    m_info = NoConvergence;
+  else if (info == 3)
+    m_info = NumericalIssue;
+  else if (info < 0)
+    m_info = InvalidInput;
+  else if (info != 0)
+    eigen_assert(false && "Unknown ARPACK return value!");
+  else
+  {
+    // Do we compute eigenvectors or not?
+    //
+    int rvec = (options & ComputeEigenvectors) == ComputeEigenvectors;
+
+    // "A" means "All", use "S" to choose specific eigenvalues (not yet supported in ARPACK))
+    //
+    char howmny[2] = "A"; 
+
+    // if howmny == "S", specifies the eigenvalues to compute (not implemented in ARPACK)
+    //
+    int *select = new int[ncv];
+
+    // Final eigenvalues
+    //
+    m_eivalues.resize(nev, 1);
+
+    internal::arpack_wrapper<Scalar, RealScalar>::seupd(&rvec, howmny, select, m_eivalues.data(), v, &ldv,
+                                                        &sigma, bmat, &n, whch, &nev, &tol, resid, &ncv,
+                                                        v, &ldv, iparam, ipntr, workd, workl, &lworkl, &info);
+
+    if (info == -14)
+      m_info = NoConvergence;
+    else if (info != 0)
+      m_info = InvalidInput;
+    else
+    {
+      if (rvec)
+      {
+        m_eivec.resize(A.rows(), nev);
+        for (int i=0; i<nev; i++)
+          for (int j=0; j<n; j++)
+            m_eivec(j,i) = v[i*n+j] / scale;
+      
+        if (mode == 1 && !isBempty && BisSPD)
+          internal::OP<MatrixSolver, MatrixType, Scalar, BisSPD>::project(OP, n, nev, m_eivec.data());
+
+        m_eigenvectorsOk = true;
+      }
+
+      m_nbrIterations = iparam[2];
+      m_nbrConverged  = iparam[4];
+
+      m_info = Success;
+    }
+
+    delete select;
+  }
+
+  delete v;
+  delete iparam;
+  delete ipntr;
+  delete workd;
+  delete workl;
+  delete resid;
+
+  m_isInitialized = true;
+
+  return *this;
+}
+
+
+// Single precision
+//
+extern "C" void ssaupd_(int *ido, char *bmat, int *n, char *which,
+    int *nev, float *tol, float *resid, int *ncv,
+    float *v, int *ldv, int *iparam, int *ipntr,
+    float *workd, float *workl, int *lworkl,
+    int *info);
+
+extern "C" void sseupd_(int *rvec, char *All, int *select, float *d,
+    float *z, int *ldz, float *sigma, 
+    char *bmat, int *n, char *which, int *nev,
+    float *tol, float *resid, int *ncv, float *v,
+    int *ldv, int *iparam, int *ipntr, float *workd,
+    float *workl, int *lworkl, int *ierr);
+
+// Double precision
+//
+extern "C" void dsaupd_(int *ido, char *bmat, int *n, char *which,
+    int *nev, double *tol, double *resid, int *ncv,
+    double *v, int *ldv, int *iparam, int *ipntr,
+    double *workd, double *workl, int *lworkl,
+    int *info);
+
+extern "C" void dseupd_(int *rvec, char *All, int *select, double *d,
+    double *z, int *ldz, double *sigma, 
+    char *bmat, int *n, char *which, int *nev,
+    double *tol, double *resid, int *ncv, double *v,
+    int *ldv, int *iparam, int *ipntr, double *workd,
+    double *workl, int *lworkl, int *ierr);
+
+
+namespace internal {
+
+template<typename Scalar, typename RealScalar> struct arpack_wrapper
+{
+  static inline void saupd(int *ido, char *bmat, int *n, char *which,
+      int *nev, RealScalar *tol, Scalar *resid, int *ncv,
+      Scalar *v, int *ldv, int *iparam, int *ipntr,
+      Scalar *workd, Scalar *workl, int *lworkl, int *info)
+  { 
+    EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL)
+  }
+
+  static inline void seupd(int *rvec, char *All, int *select, Scalar *d,
+      Scalar *z, int *ldz, RealScalar *sigma,
+      char *bmat, int *n, char *which, int *nev,
+      RealScalar *tol, Scalar *resid, int *ncv, Scalar *v,
+      int *ldv, int *iparam, int *ipntr, Scalar *workd,
+      Scalar *workl, int *lworkl, int *ierr)
+  {
+    EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL)
+  }
+};
+
+template <> struct arpack_wrapper<float, float>
+{
+  static inline void saupd(int *ido, char *bmat, int *n, char *which,
+      int *nev, float *tol, float *resid, int *ncv,
+      float *v, int *ldv, int *iparam, int *ipntr,
+      float *workd, float *workl, int *lworkl, int *info)
+  {
+    ssaupd_(ido, bmat, n, which, nev, tol, resid, ncv, v, ldv, iparam, ipntr, workd, workl, lworkl, info);
+  }
+
+  static inline void seupd(int *rvec, char *All, int *select, float *d,
+      float *z, int *ldz, float *sigma,
+      char *bmat, int *n, char *which, int *nev,
+      float *tol, float *resid, int *ncv, float *v,
+      int *ldv, int *iparam, int *ipntr, float *workd,
+      float *workl, int *lworkl, int *ierr)
+  {
+    sseupd_(rvec, All, select, d, z, ldz, sigma, bmat, n, which, nev, tol, resid, ncv, v, ldv, iparam, ipntr,
+        workd, workl, lworkl, ierr);
+  }
+};
+
+template <> struct arpack_wrapper<double, double>
+{
+  static inline void saupd(int *ido, char *bmat, int *n, char *which,
+      int *nev, double *tol, double *resid, int *ncv,
+      double *v, int *ldv, int *iparam, int *ipntr,
+      double *workd, double *workl, int *lworkl, int *info)
+  {
+    dsaupd_(ido, bmat, n, which, nev, tol, resid, ncv, v, ldv, iparam, ipntr, workd, workl, lworkl, info);
+  }
+
+  static inline void seupd(int *rvec, char *All, int *select, double *d,
+      double *z, int *ldz, double *sigma,
+      char *bmat, int *n, char *which, int *nev,
+      double *tol, double *resid, int *ncv, double *v,
+      int *ldv, int *iparam, int *ipntr, double *workd,
+      double *workl, int *lworkl, int *ierr)
+  {
+    dseupd_(rvec, All, select, d, v, ldv, sigma, bmat, n, which, nev, tol, resid, ncv, v, ldv, iparam, ipntr,
+        workd, workl, lworkl, ierr);
+  }
+};
+
+
+template<typename MatrixSolver, typename MatrixType, typename Scalar, bool BisSPD>
+struct OP
+{
+    static inline void applyOP(MatrixSolver &OP, const MatrixType &A, int n, Scalar *in, Scalar *out);
+    static inline void project(MatrixSolver &OP, int n, int k, Scalar *vecs);
+};
+
+template<typename MatrixSolver, typename MatrixType, typename Scalar>
+struct OP<MatrixSolver, MatrixType, Scalar, true>
+{
+  static inline void applyOP(MatrixSolver &OP, const MatrixType &A, int n, Scalar *in, Scalar *out)
+{
+    // OP = L^{-1} A L^{-T}  (B = LL^T)
+    //
+    // First solve L^T out = in
+    //
+    Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.matrixU().solve(Matrix<Scalar, Dynamic, 1>::Map(in, n));
+    Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.permutationPinv() * Matrix<Scalar, Dynamic, 1>::Map(out, n);
+
+    // Then compute out = A out
+    //
+    Matrix<Scalar, Dynamic, 1>::Map(out, n) = A * Matrix<Scalar, Dynamic, 1>::Map(out, n);
+
+    // Then solve L out = out
+    //
+    Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.permutationP() * Matrix<Scalar, Dynamic, 1>::Map(out, n);
+    Matrix<Scalar, Dynamic, 1>::Map(out, n) = OP.matrixL().solve(Matrix<Scalar, Dynamic, 1>::Map(out, n));
+}
+
+  static inline void project(MatrixSolver &OP, int n, int k, Scalar *vecs)
+{
+    // Solve L^T out = in
+    //
+    Matrix<Scalar, Dynamic, Dynamic>::Map(vecs, n, k) = OP.matrixU().solve(Matrix<Scalar, Dynamic, Dynamic>::Map(vecs, n, k));
+    Matrix<Scalar, Dynamic, Dynamic>::Map(vecs, n, k) = OP.permutationPinv() * Matrix<Scalar, Dynamic, Dynamic>::Map(vecs, n, k);
+}
+
+};
+
+template<typename MatrixSolver, typename MatrixType, typename Scalar>
+struct OP<MatrixSolver, MatrixType, Scalar, false>
+{
+  static inline void applyOP(MatrixSolver &OP, const MatrixType &A, int n, Scalar *in, Scalar *out)
+{
+    eigen_assert(false && "Should never be in here...");
+}
+
+  static inline void project(MatrixSolver &OP, int n, int k, Scalar *vecs)
+{
+    eigen_assert(false && "Should never be in here...");
+}
+
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_ARPACKSELFADJOINTEIGENSOLVER_H
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h	(revision 2476)
@@ -0,0 +1,130 @@
+// -*- coding: utf-8
+// vim: set fileencoding=utf-8
+
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2009 Thomas Capricelli <orzel@freehackers.org>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_NUMERICAL_DIFF_H
+#define EIGEN_NUMERICAL_DIFF_H
+
+namespace Eigen { 
+
+enum NumericalDiffMode {
+    Forward,
+    Central
+};
+
+
+/**
+  * This class allows you to add a method df() to your functor, which will 
+  * use numerical differentiation to compute an approximate of the
+  * derivative for the functor. Of course, if you have an analytical form
+  * for the derivative, you should rather implement df() by yourself.
+  *
+  * More information on
+  * http://en.wikipedia.org/wiki/Numerical_differentiation
+  *
+  * Currently only "Forward" and "Central" scheme are implemented.
+  */
+template<typename _Functor, NumericalDiffMode mode=Forward>
+class NumericalDiff : public _Functor
+{
+public:
+    typedef _Functor Functor;
+    typedef typename Functor::Scalar Scalar;
+    typedef typename Functor::InputType InputType;
+    typedef typename Functor::ValueType ValueType;
+    typedef typename Functor::JacobianType JacobianType;
+
+    NumericalDiff(Scalar _epsfcn=0.) : Functor(), epsfcn(_epsfcn) {}
+    NumericalDiff(const Functor& f, Scalar _epsfcn=0.) : Functor(f), epsfcn(_epsfcn) {}
+
+    // forward constructors
+    template<typename T0>
+        NumericalDiff(const T0& a0) : Functor(a0), epsfcn(0) {}
+    template<typename T0, typename T1>
+        NumericalDiff(const T0& a0, const T1& a1) : Functor(a0, a1), epsfcn(0) {}
+    template<typename T0, typename T1, typename T2>
+        NumericalDiff(const T0& a0, const T1& a1, const T2& a2) : Functor(a0, a1, a2), epsfcn(0) {}
+
+    enum {
+        InputsAtCompileTime = Functor::InputsAtCompileTime,
+        ValuesAtCompileTime = Functor::ValuesAtCompileTime
+    };
+
+    /**
+      * return the number of evaluation of functor
+     */
+    int df(const InputType& _x, JacobianType &jac) const
+    {
+        using std::sqrt;
+        using std::abs;
+        /* Local variables */
+        Scalar h;
+        int nfev=0;
+        const typename InputType::Index n = _x.size();
+        const Scalar eps = sqrt(((std::max)(epsfcn,NumTraits<Scalar>::epsilon() )));
+        ValueType val1, val2;
+        InputType x = _x;
+        // TODO : we should do this only if the size is not already known
+        val1.resize(Functor::values());
+        val2.resize(Functor::values());
+
+        // initialization
+        switch(mode) {
+            case Forward:
+                // compute f(x)
+                Functor::operator()(x, val1); nfev++;
+                break;
+            case Central:
+                // do nothing
+                break;
+            default:
+                eigen_assert(false);
+        };
+
+        // Function Body
+        for (int j = 0; j < n; ++j) {
+            h = eps * abs(x[j]);
+            if (h == 0.) {
+                h = eps;
+            }
+            switch(mode) {
+                case Forward:
+                    x[j] += h;
+                    Functor::operator()(x, val2);
+                    nfev++;
+                    x[j] = _x[j];
+                    jac.col(j) = (val2-val1)/h;
+                    break;
+                case Central:
+                    x[j] += h;
+                    Functor::operator()(x, val2); nfev++;
+                    x[j] -= 2*h;
+                    Functor::operator()(x, val1); nfev++;
+                    x[j] = _x[j];
+                    jac.col(j) = (val2-val1)/(2*h);
+                    break;
+                default:
+                    eigen_assert(false);
+            };
+        }
+        return nfev;
+    }
+private:
+    Scalar epsfcn;
+
+    NumericalDiff& operator=(const NumericalDiff&);
+};
+
+} // end namespace Eigen
+
+//vim: ai ts=4 sts=4 et sw=4
+#endif // EIGEN_NUMERICAL_DIFF_H
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/GMRES.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/GMRES.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/GMRES.h	(revision 2476)
@@ -0,0 +1,371 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+// Copyright (C) 2012, 2014 Kolja Brix <brix@igpm.rwth-aaachen.de>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_GMRES_H
+#define EIGEN_GMRES_H
+
+namespace Eigen { 
+
+namespace internal {
+
+/**
+ * Generalized Minimal Residual Algorithm based on the
+ * Arnoldi algorithm implemented with Householder reflections.
+ *
+ * Parameters:
+ *  \param mat       matrix of linear system of equations
+ *  \param Rhs       right hand side vector of linear system of equations
+ *  \param x         on input: initial guess, on output: solution
+ *  \param precond   preconditioner used
+ *  \param iters     on input: maximum number of iterations to perform
+ *                   on output: number of iterations performed
+ *  \param restart   number of iterations for a restart
+ *  \param tol_error on input: residual tolerance
+ *                   on output: residuum achieved
+ *
+ * \sa IterativeMethods::bicgstab() 
+ *  
+ *
+ * For references, please see:
+ *
+ * Saad, Y. and Schultz, M. H.
+ * GMRES: A Generalized Minimal Residual Algorithm for Solving Nonsymmetric Linear Systems.
+ * SIAM J.Sci.Stat.Comp. 7, 1986, pp. 856 - 869.
+ *
+ * Saad, Y.
+ * Iterative Methods for Sparse Linear Systems.
+ * Society for Industrial and Applied Mathematics, Philadelphia, 2003.
+ *
+ * Walker, H. F.
+ * Implementations of the GMRES method.
+ * Comput.Phys.Comm. 53, 1989, pp. 311 - 320.
+ *
+ * Walker, H. F.
+ * Implementation of the GMRES Method using Householder Transformations.
+ * SIAM J.Sci.Stat.Comp. 9, 1988, pp. 152 - 163.
+ *
+ */
+template<typename MatrixType, typename Rhs, typename Dest, typename Preconditioner>
+bool gmres(const MatrixType & mat, const Rhs & rhs, Dest & x, const Preconditioner & precond,
+		int &iters, const int &restart, typename Dest::RealScalar & tol_error) {
+
+	using std::sqrt;
+	using std::abs;
+
+	typedef typename Dest::RealScalar RealScalar;
+	typedef typename Dest::Scalar Scalar;
+	typedef Matrix < Scalar, Dynamic, 1 > VectorType;
+	typedef Matrix < Scalar, Dynamic, Dynamic > FMatrixType;
+
+	RealScalar tol = tol_error;
+	const int maxIters = iters;
+	iters = 0;
+
+	const int m = mat.rows();
+
+	VectorType p0 = rhs - mat*x;
+	VectorType r0 = precond.solve(p0);
+ 
+	// is initial guess already good enough?
+	if(abs(r0.norm()) < tol) {
+		return true; 
+	}
+
+	VectorType w = VectorType::Zero(restart + 1);
+
+	FMatrixType H = FMatrixType::Zero(m, restart + 1); // Hessenberg matrix
+	VectorType tau = VectorType::Zero(restart + 1);
+	std::vector < JacobiRotation < Scalar > > G(restart);
+
+	// generate first Householder vector
+	VectorType e(m-1);
+	RealScalar beta;
+	r0.makeHouseholder(e, tau.coeffRef(0), beta);
+	w(0)=(Scalar) beta;
+	H.bottomLeftCorner(m - 1, 1) = e;
+
+	for (int k = 1; k <= restart; ++k) {
+
+		++iters;
+
+		VectorType v = VectorType::Unit(m, k - 1), workspace(m);
+
+		// apply Householder reflections H_{1} ... H_{k-1} to v
+		for (int i = k - 1; i >= 0; --i) {
+			v.tail(m - i).applyHouseholderOnTheLeft(H.col(i).tail(m - i - 1), tau.coeffRef(i), workspace.data());
+		}
+
+		// apply matrix M to v:  v = mat * v;
+		VectorType t=mat*v;
+		v=precond.solve(t);
+
+		// apply Householder reflections H_{k-1} ... H_{1} to v
+		for (int i = 0; i < k; ++i) {
+			v.tail(m - i).applyHouseholderOnTheLeft(H.col(i).tail(m - i - 1), tau.coeffRef(i), workspace.data());
+		}
+
+		if (v.tail(m - k).norm() != 0.0) {
+
+			if (k <= restart) {
+
+				// generate new Householder vector
+                                  VectorType e(m - k - 1);
+				RealScalar beta;
+				v.tail(m - k).makeHouseholder(e, tau.coeffRef(k), beta);
+				H.col(k).tail(m - k - 1) = e;
+
+				// apply Householder reflection H_{k} to v
+				v.tail(m - k).applyHouseholderOnTheLeft(H.col(k).tail(m - k - 1), tau.coeffRef(k), workspace.data());
+
+			}
+                }
+
+                if (k > 1) {
+                        for (int i = 0; i < k - 1; ++i) {
+                                // apply old Givens rotations to v
+                                v.applyOnTheLeft(i, i + 1, G[i].adjoint());
+                        }
+                }
+
+                if (k<m && v(k) != (Scalar) 0) {
+                        // determine next Givens rotation
+                        G[k - 1].makeGivens(v(k - 1), v(k));
+
+                        // apply Givens rotation to v and w
+                        v.applyOnTheLeft(k - 1, k, G[k - 1].adjoint());
+                        w.applyOnTheLeft(k - 1, k, G[k - 1].adjoint());
+
+                }
+
+                // insert coefficients into upper matrix triangle
+                H.col(k - 1).head(k) = v.head(k);
+
+                bool stop=(k==m || abs(w(k)) < tol || iters == maxIters);
+
+                if (stop || k == restart) {
+
+                        // solve upper triangular system
+                        VectorType y = w.head(k);
+                        H.topLeftCorner(k, k).template triangularView < Eigen::Upper > ().solveInPlace(y);
+
+                        // use Horner-like scheme to calculate solution vector
+                        VectorType x_new = y(k - 1) * VectorType::Unit(m, k - 1);
+
+                        // apply Householder reflection H_{k} to x_new
+                        x_new.tail(m - k + 1).applyHouseholderOnTheLeft(H.col(k - 1).tail(m - k), tau.coeffRef(k - 1), workspace.data());
+
+                        for (int i = k - 2; i >= 0; --i) {
+                                x_new += y(i) * VectorType::Unit(m, i);
+                                // apply Householder reflection H_{i} to x_new
+                                x_new.tail(m - i).applyHouseholderOnTheLeft(H.col(i).tail(m - i - 1), tau.coeffRef(i), workspace.data());
+                        }
+
+                        x += x_new;
+
+                        if (stop) {
+                                return true;
+                        } else {
+                                k=0;
+
+                                // reset data for a restart  r0 = rhs - mat * x;
+                                VectorType p0=mat*x;
+                                VectorType p1=precond.solve(p0);
+                                r0 = rhs - p1;
+//                                 r0_sqnorm = r0.squaredNorm();
+                                w = VectorType::Zero(restart + 1);
+                                H = FMatrixType::Zero(m, restart + 1);
+                                tau = VectorType::Zero(restart + 1);
+
+                                // generate first Householder vector
+                                RealScalar beta;
+                                r0.makeHouseholder(e, tau.coeffRef(0), beta);
+                                w(0)=(Scalar) beta;
+                                H.bottomLeftCorner(m - 1, 1) = e;
+
+                        }
+
+                }
+
+
+
+	}
+	
+	return false;
+
+}
+
+}
+
+template< typename _MatrixType,
+          typename _Preconditioner = DiagonalPreconditioner<typename _MatrixType::Scalar> >
+class GMRES;
+
+namespace internal {
+
+template< typename _MatrixType, typename _Preconditioner>
+struct traits<GMRES<_MatrixType,_Preconditioner> >
+{
+  typedef _MatrixType MatrixType;
+  typedef _Preconditioner Preconditioner;
+};
+
+}
+
+/** \ingroup IterativeLinearSolvers_Module
+  * \brief A GMRES solver for sparse square problems
+  *
+  * This class allows to solve for A.x = b sparse linear problems using a generalized minimal
+  * residual method. The vectors x and b can be either dense or sparse.
+  *
+  * \tparam _MatrixType the type of the sparse matrix A, can be a dense or a sparse matrix.
+  * \tparam _Preconditioner the type of the preconditioner. Default is DiagonalPreconditioner
+  *
+  * The maximal number of iterations and tolerance value can be controlled via the setMaxIterations()
+  * and setTolerance() methods. The defaults are the size of the problem for the maximal number of iterations
+  * and NumTraits<Scalar>::epsilon() for the tolerance.
+  * 
+  * This class can be used as the direct solver classes. Here is a typical usage example:
+  * \code
+  * int n = 10000;
+  * VectorXd x(n), b(n);
+  * SparseMatrix<double> A(n,n);
+  * // fill A and b
+  * GMRES<SparseMatrix<double> > solver(A);
+  * x = solver.solve(b);
+  * std::cout << "#iterations:     " << solver.iterations() << std::endl;
+  * std::cout << "estimated error: " << solver.error()      << std::endl;
+  * // update b, and solve again
+  * x = solver.solve(b);
+  * \endcode
+  * 
+  * By default the iterations start with x=0 as an initial guess of the solution.
+  * One can control the start using the solveWithGuess() method.
+  * 
+  * \sa class SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
+  */
+template< typename _MatrixType, typename _Preconditioner>
+class GMRES : public IterativeSolverBase<GMRES<_MatrixType,_Preconditioner> >
+{
+  typedef IterativeSolverBase<GMRES> Base;
+  using Base::mp_matrix;
+  using Base::m_error;
+  using Base::m_iterations;
+  using Base::m_info;
+  using Base::m_isInitialized;
+ 
+private:
+  int m_restart;
+  
+public:
+  typedef _MatrixType MatrixType;
+  typedef typename MatrixType::Scalar Scalar;
+  typedef typename MatrixType::Index Index;
+  typedef typename MatrixType::RealScalar RealScalar;
+  typedef _Preconditioner Preconditioner;
+
+public:
+
+  /** Default constructor. */
+  GMRES() : Base(), m_restart(30) {}
+
+  /** Initialize the solver with matrix \a A for further \c Ax=b solving.
+    * 
+    * This constructor is a shortcut for the default constructor followed
+    * by a call to compute().
+    * 
+    * \warning this class stores a reference to the matrix A as well as some
+    * precomputed values that depend on it. Therefore, if \a A is changed
+    * this class becomes invalid. Call compute() to update it with the new
+    * matrix A, or modify a copy of A.
+    */
+  template<typename MatrixDerived>
+  explicit GMRES(const EigenBase<MatrixDerived>& A) : Base(A.derived()), m_restart(30) {}
+
+  ~GMRES() {}
+  
+  /** Get the number of iterations after that a restart is performed.
+    */
+  int get_restart() { return m_restart; }
+  
+  /** Set the number of iterations after that a restart is performed.
+    *  \param restart   number of iterations for a restarti, default is 30.
+    */
+  void set_restart(const int restart) { m_restart=restart; }
+  
+  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A
+    * \a x0 as an initial solution.
+    *
+    * \sa compute()
+    */
+  template<typename Rhs,typename Guess>
+  inline const internal::solve_retval_with_guess<GMRES, Rhs, Guess>
+  solveWithGuess(const MatrixBase<Rhs>& b, const Guess& x0) const
+  {
+    eigen_assert(m_isInitialized && "GMRES is not initialized.");
+    eigen_assert(Base::rows()==b.rows()
+              && "GMRES::solve(): invalid number of rows of the right hand side matrix b");
+    return internal::solve_retval_with_guess
+            <GMRES, Rhs, Guess>(*this, b.derived(), x0);
+  }
+  
+  /** \internal */
+  template<typename Rhs,typename Dest>
+  void _solveWithGuess(const Rhs& b, Dest& x) const
+  {    
+    bool failed = false;
+    for(int j=0; j<b.cols(); ++j)
+    {
+      m_iterations = Base::maxIterations();
+      m_error = Base::m_tolerance;
+      
+      typename Dest::ColXpr xj(x,j);
+      if(!internal::gmres(*mp_matrix, b.col(j), xj, Base::m_preconditioner, m_iterations, m_restart, m_error))
+        failed = true;
+    }
+    m_info = failed ? NumericalIssue
+           : m_error <= Base::m_tolerance ? Success
+           : NoConvergence;
+    m_isInitialized = true;
+  }
+
+  /** \internal */
+  template<typename Rhs,typename Dest>
+  void _solve(const Rhs& b, Dest& x) const
+  {
+    x = b;
+    if(x.squaredNorm() == 0) return; // Check Zero right hand side
+    _solveWithGuess(b,x);
+  }
+
+protected:
+
+};
+
+
+namespace internal {
+
+  template<typename _MatrixType, typename _Preconditioner, typename Rhs>
+struct solve_retval<GMRES<_MatrixType, _Preconditioner>, Rhs>
+  : solve_retval_base<GMRES<_MatrixType, _Preconditioner>, Rhs>
+{
+  typedef GMRES<_MatrixType, _Preconditioner> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_GMRES_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/MINRES.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/MINRES.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/MINRES.h	(revision 2476)
@@ -0,0 +1,311 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Giacomo Po <gpo@ucla.edu>
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+#ifndef EIGEN_MINRES_H_
+#define EIGEN_MINRES_H_
+
+
+namespace Eigen {
+    
+    namespace internal {
+        
+        /** \internal Low-level MINRES algorithm
+         * \param mat The matrix A
+         * \param rhs The right hand side vector b
+         * \param x On input and initial solution, on output the computed solution.
+         * \param precond A right preconditioner being able to efficiently solve for an
+         *                approximation of Ax=b (regardless of b)
+         * \param iters On input the max number of iteration, on output the number of performed iterations.
+         * \param tol_error On input the tolerance error, on output an estimation of the relative error.
+         */
+        template<typename MatrixType, typename Rhs, typename Dest, typename Preconditioner>
+        EIGEN_DONT_INLINE
+        void minres(const MatrixType& mat, const Rhs& rhs, Dest& x,
+                    const Preconditioner& precond, int& iters,
+                    typename Dest::RealScalar& tol_error)
+        {
+            using std::sqrt;
+            typedef typename Dest::RealScalar RealScalar;
+            typedef typename Dest::Scalar Scalar;
+            typedef Matrix<Scalar,Dynamic,1> VectorType;
+
+            // Check for zero rhs
+            const RealScalar rhsNorm2(rhs.squaredNorm());
+            if(rhsNorm2 == 0)
+            {
+                x.setZero();
+                iters = 0;
+                tol_error = 0;
+                return;
+            }
+            
+            // initialize
+            const int maxIters(iters);  // initialize maxIters to iters
+            const int N(mat.cols());    // the size of the matrix
+            const RealScalar threshold2(tol_error*tol_error*rhsNorm2); // convergence threshold (compared to residualNorm2)
+            
+            // Initialize preconditioned Lanczos
+            VectorType v_old(N); // will be initialized inside loop
+            VectorType v( VectorType::Zero(N) ); //initialize v
+            VectorType v_new(rhs-mat*x); //initialize v_new
+            RealScalar residualNorm2(v_new.squaredNorm());
+            VectorType w(N); // will be initialized inside loop
+            VectorType w_new(precond.solve(v_new)); // initialize w_new
+//            RealScalar beta; // will be initialized inside loop
+            RealScalar beta_new2(v_new.dot(w_new));
+            eigen_assert(beta_new2 >= 0.0 && "PRECONDITIONER IS NOT POSITIVE DEFINITE");
+            RealScalar beta_new(sqrt(beta_new2));
+            const RealScalar beta_one(beta_new);
+            v_new /= beta_new;
+            w_new /= beta_new;
+            // Initialize other variables
+            RealScalar c(1.0); // the cosine of the Givens rotation
+            RealScalar c_old(1.0);
+            RealScalar s(0.0); // the sine of the Givens rotation
+            RealScalar s_old(0.0); // the sine of the Givens rotation
+            VectorType p_oold(N); // will be initialized in loop
+            VectorType p_old(VectorType::Zero(N)); // initialize p_old=0
+            VectorType p(p_old); // initialize p=0
+            RealScalar eta(1.0);
+                        
+            iters = 0; // reset iters
+            while ( iters < maxIters )
+            {
+                // Preconditioned Lanczos
+                /* Note that there are 4 variants on the Lanczos algorithm. These are
+                 * described in Paige, C. C. (1972). Computational variants of
+                 * the Lanczos method for the eigenproblem. IMA Journal of Applied
+                 * Mathematics, 10(3), 373–381. The current implementation corresponds 
+                 * to the case A(2,7) in the paper. It also corresponds to 
+                 * algorithm 6.14 in Y. Saad, Iterative Methods ￼￼￼for Sparse Linear
+                 * Systems, 2003 p.173. For the preconditioned version see 
+                 * A. Greenbaum, Iterative Methods for Solving Linear Systems, SIAM (1987).
+                 */
+                const RealScalar beta(beta_new);
+                v_old = v; // update: at first time step, this makes v_old = 0 so value of beta doesn't matter
+//                const VectorType v_old(v); // NOT SURE IF CREATING v_old EVERY ITERATION IS EFFICIENT
+                v = v_new; // update
+                w = w_new; // update
+//                const VectorType w(w_new); // NOT SURE IF CREATING w EVERY ITERATION IS EFFICIENT
+                v_new.noalias() = mat*w - beta*v_old; // compute v_new
+                const RealScalar alpha = v_new.dot(w);
+                v_new -= alpha*v; // overwrite v_new
+                w_new = precond.solve(v_new); // overwrite w_new
+                beta_new2 = v_new.dot(w_new); // compute beta_new
+                eigen_assert(beta_new2 >= 0.0 && "PRECONDITIONER IS NOT POSITIVE DEFINITE");
+                beta_new = sqrt(beta_new2); // compute beta_new
+                v_new /= beta_new; // overwrite v_new for next iteration
+                w_new /= beta_new; // overwrite w_new for next iteration
+                
+                // Givens rotation
+                const RealScalar r2 =s*alpha+c*c_old*beta; // s, s_old, c and c_old are still from previous iteration
+                const RealScalar r3 =s_old*beta; // s, s_old, c and c_old are still from previous iteration
+                const RealScalar r1_hat=c*alpha-c_old*s*beta;
+                const RealScalar r1 =sqrt( std::pow(r1_hat,2) + std::pow(beta_new,2) );
+                c_old = c; // store for next iteration
+                s_old = s; // store for next iteration
+                c=r1_hat/r1; // new cosine
+                s=beta_new/r1; // new sine
+                
+                // Update solution
+                p_oold = p_old;
+//                const VectorType p_oold(p_old); // NOT SURE IF CREATING p_oold EVERY ITERATION IS EFFICIENT
+                p_old = p;
+                p.noalias()=(w-r2*p_old-r3*p_oold) /r1; // IS NOALIAS REQUIRED?
+                x += beta_one*c*eta*p;
+                
+                /* Update the squared residual. Note that this is the estimated residual.
+                The real residual |Ax-b|^2 may be slightly larger */
+                residualNorm2 *= s*s;
+                
+                if ( residualNorm2 < threshold2)
+                {
+                    break;
+                }
+                
+                eta=-s*eta; // update eta
+                iters++; // increment iteration number (for output purposes)
+            }
+            
+            /* Compute error. Note that this is the estimated error. The real 
+             error |Ax-b|/|b| may be slightly larger */
+            tol_error = std::sqrt(residualNorm2 / rhsNorm2);
+        }
+        
+    }
+    
+    template< typename _MatrixType, int _UpLo=Lower,
+    typename _Preconditioner = IdentityPreconditioner>
+//    typename _Preconditioner = IdentityPreconditioner<typename _MatrixType::Scalar> > // preconditioner must be positive definite
+    class MINRES;
+    
+    namespace internal {
+        
+        template< typename _MatrixType, int _UpLo, typename _Preconditioner>
+        struct traits<MINRES<_MatrixType,_UpLo,_Preconditioner> >
+        {
+            typedef _MatrixType MatrixType;
+            typedef _Preconditioner Preconditioner;
+        };
+        
+    }
+    
+    /** \ingroup IterativeLinearSolvers_Module
+     * \brief A minimal residual solver for sparse symmetric problems
+     *
+     * This class allows to solve for A.x = b sparse linear problems using the MINRES algorithm
+     * of Paige and Saunders (1975). The sparse matrix A must be symmetric (possibly indefinite).
+     * The vectors x and b can be either dense or sparse.
+     *
+     * \tparam _MatrixType the type of the sparse matrix A, can be a dense or a sparse matrix.
+     * \tparam _UpLo the triangular part that will be used for the computations. It can be Lower
+     *               or Upper. Default is Lower.
+     * \tparam _Preconditioner the type of the preconditioner. Default is DiagonalPreconditioner
+     *
+     * The maximal number of iterations and tolerance value can be controlled via the setMaxIterations()
+     * and setTolerance() methods. The defaults are the size of the problem for the maximal number of iterations
+     * and NumTraits<Scalar>::epsilon() for the tolerance.
+     *
+     * This class can be used as the direct solver classes. Here is a typical usage example:
+     * \code
+     * int n = 10000;
+     * VectorXd x(n), b(n);
+     * SparseMatrix<double> A(n,n);
+     * // fill A and b
+     * MINRES<SparseMatrix<double> > mr;
+     * mr.compute(A);
+     * x = mr.solve(b);
+     * std::cout << "#iterations:     " << mr.iterations() << std::endl;
+     * std::cout << "estimated error: " << mr.error()      << std::endl;
+     * // update b, and solve again
+     * x = mr.solve(b);
+     * \endcode
+     *
+     * By default the iterations start with x=0 as an initial guess of the solution.
+     * One can control the start using the solveWithGuess() method.
+     *
+     * \sa class ConjugateGradient, BiCGSTAB, SimplicialCholesky, DiagonalPreconditioner, IdentityPreconditioner
+     */
+    template< typename _MatrixType, int _UpLo, typename _Preconditioner>
+    class MINRES : public IterativeSolverBase<MINRES<_MatrixType,_UpLo,_Preconditioner> >
+    {
+        
+        typedef IterativeSolverBase<MINRES> Base;
+        using Base::mp_matrix;
+        using Base::m_error;
+        using Base::m_iterations;
+        using Base::m_info;
+        using Base::m_isInitialized;
+    public:
+        typedef _MatrixType MatrixType;
+        typedef typename MatrixType::Scalar Scalar;
+        typedef typename MatrixType::Index Index;
+        typedef typename MatrixType::RealScalar RealScalar;
+        typedef _Preconditioner Preconditioner;
+        
+        enum {UpLo = _UpLo};
+        
+    public:
+        
+        /** Default constructor. */
+        MINRES() : Base() {}
+        
+        /** Initialize the solver with matrix \a A for further \c Ax=b solving.
+         *
+         * This constructor is a shortcut for the default constructor followed
+         * by a call to compute().
+         *
+         * \warning this class stores a reference to the matrix A as well as some
+         * precomputed values that depend on it. Therefore, if \a A is changed
+         * this class becomes invalid. Call compute() to update it with the new
+         * matrix A, or modify a copy of A.
+         */
+        template<typename MatrixDerived>
+        explicit MINRES(const EigenBase<MatrixDerived>& A) : Base(A.derived()) {}
+        
+        /** Destructor. */
+        ~MINRES(){}
+		
+        /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A
+         * \a x0 as an initial solution.
+         *
+         * \sa compute()
+         */
+        template<typename Rhs,typename Guess>
+        inline const internal::solve_retval_with_guess<MINRES, Rhs, Guess>
+        solveWithGuess(const MatrixBase<Rhs>& b, const Guess& x0) const
+        {
+            eigen_assert(m_isInitialized && "MINRES is not initialized.");
+            eigen_assert(Base::rows()==b.rows()
+                         && "MINRES::solve(): invalid number of rows of the right hand side matrix b");
+            return internal::solve_retval_with_guess
+            <MINRES, Rhs, Guess>(*this, b.derived(), x0);
+        }
+        
+        /** \internal */
+        template<typename Rhs,typename Dest>
+        void _solveWithGuess(const Rhs& b, Dest& x) const
+        {
+            typedef typename internal::conditional<UpLo==(Lower|Upper),
+                                                   const MatrixType&,
+                                                   SparseSelfAdjointView<const MatrixType, UpLo>
+                                                  >::type MatrixWrapperType;
+                                          
+            m_iterations = Base::maxIterations();
+            m_error = Base::m_tolerance;
+            
+            for(int j=0; j<b.cols(); ++j)
+            {
+                m_iterations = Base::maxIterations();
+                m_error = Base::m_tolerance;
+                
+                typename Dest::ColXpr xj(x,j);
+                internal::minres(MatrixWrapperType(*mp_matrix), b.col(j), xj,
+                                 Base::m_preconditioner, m_iterations, m_error);
+            }
+            
+            m_isInitialized = true;
+            m_info = m_error <= Base::m_tolerance ? Success : NoConvergence;
+        }
+        
+        /** \internal */
+        template<typename Rhs,typename Dest>
+        void _solve(const Rhs& b, Dest& x) const
+        {
+            x.setZero();
+            _solveWithGuess(b,x);
+        }
+        
+    protected:
+        
+    };
+    
+    namespace internal {
+        
+        template<typename _MatrixType, int _UpLo, typename _Preconditioner, typename Rhs>
+        struct solve_retval<MINRES<_MatrixType,_UpLo,_Preconditioner>, Rhs>
+        : solve_retval_base<MINRES<_MatrixType,_UpLo,_Preconditioner>, Rhs>
+        {
+            typedef MINRES<_MatrixType,_UpLo,_Preconditioner> Dec;
+            EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+            
+            template<typename Dest> void evalTo(Dest& dst) const
+            {
+                dec()._solve(rhs(),dst);
+            }
+        };
+        
+    } // end namespace internal
+    
+} // end namespace Eigen
+
+#endif // EIGEN_MINRES_H
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h	(revision 2476)
@@ -0,0 +1,113 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2011 Gael Guennebaud <gael.guennebaud@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_INCOMPLETE_LU_H
+#define EIGEN_INCOMPLETE_LU_H
+
+namespace Eigen { 
+
+template <typename _Scalar>
+class IncompleteLU
+{
+    typedef _Scalar Scalar;
+    typedef Matrix<Scalar,Dynamic,1> Vector;
+    typedef typename Vector::Index Index;
+    typedef SparseMatrix<Scalar,RowMajor> FactorType;
+
+  public:
+    typedef Matrix<Scalar,Dynamic,Dynamic> MatrixType;
+
+    IncompleteLU() : m_isInitialized(false) {}
+
+    template<typename MatrixType>
+    IncompleteLU(const MatrixType& mat) : m_isInitialized(false)
+    {
+      compute(mat);
+    }
+
+    Index rows() const { return m_lu.rows(); }
+    Index cols() const { return m_lu.cols(); }
+
+    template<typename MatrixType>
+    IncompleteLU& compute(const MatrixType& mat)
+    {
+      m_lu = mat;
+      int size = mat.cols();
+      Vector diag(size);
+      for(int i=0; i<size; ++i)
+      {
+        typename FactorType::InnerIterator k_it(m_lu,i);
+        for(; k_it && k_it.index()<i; ++k_it)
+        {
+          int k = k_it.index();
+          k_it.valueRef() /= diag(k);
+
+          typename FactorType::InnerIterator j_it(k_it);
+          typename FactorType::InnerIterator kj_it(m_lu, k);
+          while(kj_it && kj_it.index()<=k) ++kj_it;
+          for(++j_it; j_it; )
+          {
+            if(kj_it.index()==j_it.index())
+            {
+              j_it.valueRef() -= k_it.value() * kj_it.value();
+              ++j_it;
+              ++kj_it;
+            }
+            else if(kj_it.index()<j_it.index()) ++kj_it;
+            else                                ++j_it;
+          }
+        }
+        if(k_it && k_it.index()==i) diag(i) = k_it.value();
+        else                        diag(i) = 1;
+      }
+      m_isInitialized = true;
+      return *this;
+    }
+
+    template<typename Rhs, typename Dest>
+    void _solve(const Rhs& b, Dest& x) const
+    {
+      x = m_lu.template triangularView<UnitLower>().solve(b);
+      x = m_lu.template triangularView<Upper>().solve(x);
+    }
+
+    template<typename Rhs> inline const internal::solve_retval<IncompleteLU, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_isInitialized && "IncompleteLU is not initialized.");
+      eigen_assert(cols()==b.rows()
+                && "IncompleteLU::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<IncompleteLU, Rhs>(*this, b.derived());
+    }
+
+  protected:
+    FactorType m_lu;
+    bool m_isInitialized;
+};
+
+namespace internal {
+
+template<typename _MatrixType, typename Rhs>
+struct solve_retval<IncompleteLU<_MatrixType>, Rhs>
+  : solve_retval_base<IncompleteLU<_MatrixType>, Rhs>
+{
+  typedef IncompleteLU<_MatrixType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_INCOMPLETE_LU_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/Scaling.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/Scaling.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/Scaling.h	(revision 2476)
@@ -0,0 +1,185 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Desire NUENTSA WAKAM <desire.nuentsa_wakam@inria.fr
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_ITERSCALING_H
+#define EIGEN_ITERSCALING_H
+/**
+  * \ingroup IterativeSolvers_Module
+  * \brief iterative scaling algorithm to equilibrate rows and column norms in matrices
+  * 
+  * This class can be used as a preprocessing tool to accelerate the convergence of iterative methods 
+  * 
+  * This feature is  useful to limit the pivoting amount during LU/ILU factorization
+  * The  scaling strategy as presented here preserves the symmetry of the problem
+  * NOTE It is assumed that the matrix does not have empty row or column, 
+  * 
+  * Example with key steps 
+  * \code
+  * VectorXd x(n), b(n);
+  * SparseMatrix<double> A;
+  * // fill A and b;
+  * IterScaling<SparseMatrix<double> > scal; 
+  * // Compute the left and right scaling vectors. The matrix is equilibrated at output
+  * scal.computeRef(A); 
+  * // Scale the right hand side
+  * b = scal.LeftScaling().cwiseProduct(b); 
+  * // Now, solve the equilibrated linear system with any available solver
+  * 
+  * // Scale back the computed solution
+  * x = scal.RightScaling().cwiseProduct(x); 
+  * \endcode
+  * 
+  * \tparam _MatrixType the type of the matrix. It should be a real square sparsematrix
+  * 
+  * References : D. Ruiz and B. Ucar, A Symmetry Preserving Algorithm for Matrix Scaling, INRIA Research report RR-7552
+  * 
+  * \sa \ref IncompleteLUT 
+  */
+namespace Eigen {
+using std::abs; 
+template<typename _MatrixType>
+class IterScaling
+{
+  public:
+    typedef _MatrixType MatrixType; 
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+    
+  public:
+    IterScaling() { init(); }
+    
+    IterScaling(const MatrixType& matrix)
+    {
+      init();
+      compute(matrix);
+    }
+    
+    ~IterScaling() { }
+    
+    /** 
+     * Compute the left and right diagonal matrices to scale the input matrix @p mat
+     * 
+     * FIXME This algorithm will be modified such that the diagonal elements are permuted on the diagonal. 
+     * 
+     * \sa LeftScaling() RightScaling()
+     */
+    void compute (const MatrixType& mat)
+    {
+      int m = mat.rows(); 
+      int n = mat.cols();
+      eigen_assert((m>0 && m == n) && "Please give a non - empty matrix");
+      m_left.resize(m); 
+      m_right.resize(n);
+      m_left.setOnes();
+      m_right.setOnes();
+      m_matrix = mat;
+      VectorXd Dr, Dc, DrRes, DcRes; // Temporary Left and right scaling vectors
+      Dr.resize(m); Dc.resize(n);
+      DrRes.resize(m); DcRes.resize(n);
+      double EpsRow = 1.0, EpsCol = 1.0;
+      int its = 0; 
+      do
+      { // Iterate until the infinite norm of each row and column is approximately 1
+        // Get the maximum value in each row and column
+        Dr.setZero(); Dc.setZero();
+        for (int k=0; k<m_matrix.outerSize(); ++k)
+        {
+          for (typename MatrixType::InnerIterator it(m_matrix, k); it; ++it)
+          {
+            if ( Dr(it.row()) < abs(it.value()) )
+              Dr(it.row()) = abs(it.value());
+            
+            if ( Dc(it.col()) < abs(it.value()) )
+              Dc(it.col()) = abs(it.value());
+          }
+        }
+        for (int i = 0; i < m; ++i) 
+        {
+          Dr(i) = std::sqrt(Dr(i));
+          Dc(i) = std::sqrt(Dc(i));
+        }
+        // Save the scaling factors 
+        for (int i = 0; i < m; ++i) 
+        {
+          m_left(i) /= Dr(i);
+          m_right(i) /= Dc(i);
+        }
+        // Scale the rows and the columns of the matrix
+        DrRes.setZero(); DcRes.setZero(); 
+        for (int k=0; k<m_matrix.outerSize(); ++k)
+        {
+          for (typename MatrixType::InnerIterator it(m_matrix, k); it; ++it)
+          {
+            it.valueRef() = it.value()/( Dr(it.row()) * Dc(it.col()) );
+            // Accumulate the norms of the row and column vectors   
+            if ( DrRes(it.row()) < abs(it.value()) )
+              DrRes(it.row()) = abs(it.value());
+            
+            if ( DcRes(it.col()) < abs(it.value()) )
+              DcRes(it.col()) = abs(it.value());
+          }
+        }  
+        DrRes.array() = (1-DrRes.array()).abs();
+        EpsRow = DrRes.maxCoeff();
+        DcRes.array() = (1-DcRes.array()).abs();
+        EpsCol = DcRes.maxCoeff();
+        its++;
+      }while ( (EpsRow >m_tol || EpsCol > m_tol) && (its < m_maxits) );
+      m_isInitialized = true;
+    }
+    /** Compute the left and right vectors to scale the vectors
+     * the input matrix is scaled with the computed vectors at output
+     * 
+     * \sa compute()
+     */
+    void computeRef (MatrixType& mat)
+    {
+      compute (mat);
+      mat = m_matrix;
+    }
+    /** Get the vector to scale the rows of the matrix 
+     */
+    VectorXd& LeftScaling()
+    {
+      return m_left;
+    }
+    
+    /** Get the vector to scale the columns of the matrix 
+     */
+    VectorXd& RightScaling()
+    {
+      return m_right;
+    }
+    
+    /** Set the tolerance for the convergence of the iterative scaling algorithm
+     */
+    void setTolerance(double tol)
+    {
+      m_tol = tol; 
+    }
+      
+  protected:
+    
+    void init()
+    {
+      m_tol = 1e-10;
+      m_maxits = 5;
+      m_isInitialized = false;
+    }
+    
+    MatrixType m_matrix;
+    mutable ComputationInfo m_info; 
+    bool m_isInitialized; 
+    VectorXd m_left; // Left scaling vector
+    VectorXd m_right; // m_right scaling vector
+    double m_tol; 
+    int m_maxits; // Maximum number of iterations allowed
+};
+}
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h	(revision 2476)
@@ -0,0 +1,189 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
+
+/* NOTE The functions of this file have been adapted from the GMM++ library */
+
+//========================================================================
+//
+// Copyright (C) 2002-2007 Yves Renard
+//
+// This file is a part of GETFEM++
+//
+// Getfem++ is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as
+// published by the Free Software Foundation; version 2.1 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU Lesser General Public License for more details.
+// You should have received a copy of the GNU Lesser General Public
+// License along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301,
+// USA.
+//
+//========================================================================
+
+#include "../../../../Eigen/src/Core/util/NonMPL2.h"
+
+#ifndef EIGEN_CONSTRAINEDCG_H
+#define EIGEN_CONSTRAINEDCG_H
+
+#include <Eigen/Core>
+
+namespace Eigen { 
+
+namespace internal {
+
+/** \ingroup IterativeSolvers_Module
+  * Compute the pseudo inverse of the non-square matrix C such that
+  * \f$ CINV = (C * C^T)^{-1} * C \f$ based on a conjugate gradient method.
+  *
+  * This function is internally used by constrained_cg.
+  */
+template <typename CMatrix, typename CINVMatrix>
+void pseudo_inverse(const CMatrix &C, CINVMatrix &CINV)
+{
+  // optimisable : copie de la ligne, precalcul de C * trans(C).
+  typedef typename CMatrix::Scalar Scalar;
+  typedef typename CMatrix::Index Index;
+  // FIXME use sparse vectors ?
+  typedef Matrix<Scalar,Dynamic,1> TmpVec;
+
+  Index rows = C.rows(), cols = C.cols();
+
+  TmpVec d(rows), e(rows), l(cols), p(rows), q(rows), r(rows);
+  Scalar rho, rho_1, alpha;
+  d.setZero();
+
+  typedef Triplet<double> T;
+  std::vector<T> tripletList;
+    
+  for (Index i = 0; i < rows; ++i)
+  {
+    d[i] = 1.0;
+    rho = 1.0;
+    e.setZero();
+    r = d;
+    p = d;
+
+    while (rho >= 1e-38)
+    { /* conjugate gradient to compute e             */
+      /* which is the i-th row of inv(C * trans(C))  */
+      l = C.transpose() * p;
+      q = C * l;
+      alpha = rho / p.dot(q);
+      e +=  alpha * p;
+      r += -alpha * q;
+      rho_1 = rho;
+      rho = r.dot(r);
+      p = (rho/rho_1) * p + r;
+    }
+
+    l = C.transpose() * e; // l is the i-th row of CINV
+    // FIXME add a generic "prune/filter" expression for both dense and sparse object to sparse
+    for (Index j=0; j<l.size(); ++j)
+      if (l[j]<1e-15)
+	tripletList.push_back(T(i,j,l(j)));
+
+	
+    d[i] = 0.0;
+  }
+  CINV.setFromTriplets(tripletList.begin(), tripletList.end());
+}
+
+
+
+/** \ingroup IterativeSolvers_Module
+  * Constrained conjugate gradient
+  *
+  * Computes the minimum of \f$ 1/2((Ax).x) - bx \f$ under the contraint \f$ Cx \le f \f$
+  */
+template<typename TMatrix, typename CMatrix,
+         typename VectorX, typename VectorB, typename VectorF>
+void constrained_cg(const TMatrix& A, const CMatrix& C, VectorX& x,
+                       const VectorB& b, const VectorF& f, IterationController &iter)
+{
+  using std::sqrt;
+  typedef typename TMatrix::Scalar Scalar;
+  typedef typename TMatrix::Index Index;
+  typedef Matrix<Scalar,Dynamic,1>  TmpVec;
+
+  Scalar rho = 1.0, rho_1, lambda, gamma;
+  Index xSize = x.size();
+  TmpVec  p(xSize), q(xSize), q2(xSize),
+          r(xSize), old_z(xSize), z(xSize),
+          memox(xSize);
+  std::vector<bool> satured(C.rows());
+  p.setZero();
+  iter.setRhsNorm(sqrt(b.dot(b))); // gael vect_sp(PS, b, b)
+  if (iter.rhsNorm() == 0.0) iter.setRhsNorm(1.0);
+
+  SparseMatrix<Scalar,RowMajor> CINV(C.rows(), C.cols());
+  pseudo_inverse(C, CINV);
+
+  while(true)
+  {
+    // computation of residual
+    old_z = z;
+    memox = x;
+    r = b;
+    r += A * -x;
+    z = r;
+    bool transition = false;
+    for (Index i = 0; i < C.rows(); ++i)
+    {
+      Scalar al = C.row(i).dot(x) - f.coeff(i);
+      if (al >= -1.0E-15)
+      {
+        if (!satured[i])
+        {
+          satured[i] = true;
+          transition = true;
+        }
+        Scalar bb = CINV.row(i).dot(z);
+        if (bb > 0.0)
+          // FIXME: we should allow that: z += -bb * C.row(i);
+          for (typename CMatrix::InnerIterator it(C,i); it; ++it)
+            z.coeffRef(it.index()) -= bb*it.value();
+      }
+      else
+        satured[i] = false;
+    }
+
+    // descent direction
+    rho_1 = rho;
+    rho = r.dot(z);
+
+    if (iter.finished(rho)) break;
+
+    if (iter.noiseLevel() > 0 && transition) std::cerr << "CCG: transition\n";
+    if (transition || iter.first()) gamma = 0.0;
+    else gamma = (std::max)(0.0, (rho - old_z.dot(z)) / rho_1);
+    p = z + gamma*p;
+
+    ++iter;
+    // one dimensionnal optimization
+    q = A * p;
+    lambda = rho / q.dot(p);
+    for (Index i = 0; i < C.rows(); ++i)
+    {
+      if (!satured[i])
+      {
+        Scalar bb = C.row(i).dot(p) - f[i];
+        if (bb > 0.0)
+          lambda = (std::min)(lambda, (f.coeff(i)-C.row(i).dot(x)) / bb);
+      }
+    }
+    x += lambda * p;
+    memox -= x;
+  }
+}
+
+} // end namespace internal
+
+} // end namespace Eigen
+
+#endif // EIGEN_CONSTRAINEDCG_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/DGMRES.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/DGMRES.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/DGMRES.h	(revision 2476)
@@ -0,0 +1,542 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_DGMRES_H
+#define EIGEN_DGMRES_H
+
+#include <Eigen/Eigenvalues>
+
+namespace Eigen { 
+  
+template< typename _MatrixType,
+          typename _Preconditioner = DiagonalPreconditioner<typename _MatrixType::Scalar> >
+class DGMRES;
+
+namespace internal {
+
+template< typename _MatrixType, typename _Preconditioner>
+struct traits<DGMRES<_MatrixType,_Preconditioner> >
+{
+  typedef _MatrixType MatrixType;
+  typedef _Preconditioner Preconditioner;
+};
+
+/** \brief Computes a permutation vector to have a sorted sequence
+  * \param vec The vector to reorder.
+  * \param perm gives the sorted sequence on output. Must be initialized with 0..n-1
+  * \param ncut Put  the ncut smallest elements at the end of the vector
+  * WARNING This is an expensive sort, so should be used only 
+  * for small size vectors
+  * TODO Use modified QuickSplit or std::nth_element to get the smallest values 
+  */
+template <typename VectorType, typename IndexType>
+void sortWithPermutation (VectorType& vec, IndexType& perm, typename IndexType::Scalar& ncut)
+{
+  eigen_assert(vec.size() == perm.size());
+  typedef typename IndexType::Scalar Index; 
+  typedef typename VectorType::Scalar Scalar; 
+  bool flag; 
+  for (Index k  = 0; k < ncut; k++)
+  {
+    flag = false;
+    for (Index j = 0; j < vec.size()-1; j++)
+    {
+      if ( vec(perm(j)) < vec(perm(j+1)) )
+      {
+        std::swap(perm(j),perm(j+1)); 
+        flag = true;
+      }
+      if (!flag) break; // The vector is in sorted order
+    }
+  }
+}
+
+}
+/**
+ * \ingroup IterativeLInearSolvers_Module
+ * \brief A Restarted GMRES with deflation.
+ * This class implements a modification of the GMRES solver for
+ * sparse linear systems. The basis is built with modified 
+ * Gram-Schmidt. At each restart, a few approximated eigenvectors
+ * corresponding to the smallest eigenvalues are used to build a
+ * preconditioner for the next cycle. This preconditioner 
+ * for deflation can be combined with any other preconditioner, 
+ * the IncompleteLUT for instance. The preconditioner is applied 
+ * at right of the matrix and the combination is multiplicative.
+ * 
+ * \tparam _MatrixType the type of the sparse matrix A, can be a dense or a sparse matrix.
+ * \tparam _Preconditioner the type of the preconditioner. Default is DiagonalPreconditioner
+ * Typical usage :
+ * \code
+ * SparseMatrix<double> A;
+ * VectorXd x, b; 
+ * //Fill A and b ...
+ * DGMRES<SparseMatrix<double> > solver;
+ * solver.set_restart(30); // Set restarting value
+ * solver.setEigenv(1); // Set the number of eigenvalues to deflate
+ * solver.compute(A);
+ * x = solver.solve(b);
+ * \endcode
+ * 
+ * References :
+ * [1] D. NUENTSA WAKAM and F. PACULL, Memory Efficient Hybrid
+ *  Algebraic Solvers for Linear Systems Arising from Compressible
+ *  Flows, Computers and Fluids, In Press,
+ *  http://dx.doi.org/10.1016/j.compfluid.2012.03.023   
+ * [2] K. Burrage and J. Erhel, On the performance of various 
+ * adaptive preconditioned GMRES strategies, 5(1998), 101-121.
+ * [3] J. Erhel, K. Burrage and B. Pohl, Restarted GMRES 
+ *  preconditioned by deflation,J. Computational and Applied
+ *  Mathematics, 69(1996), 303-318. 
+
+ * 
+ */
+template< typename _MatrixType, typename _Preconditioner>
+class DGMRES : public IterativeSolverBase<DGMRES<_MatrixType,_Preconditioner> >
+{
+    typedef IterativeSolverBase<DGMRES> Base;
+    using Base::mp_matrix;
+    using Base::m_error;
+    using Base::m_iterations;
+    using Base::m_info;
+    using Base::m_isInitialized;
+    using Base::m_tolerance; 
+  public:
+    typedef _MatrixType MatrixType;
+    typedef typename MatrixType::Scalar Scalar;
+    typedef typename MatrixType::Index Index;
+    typedef typename MatrixType::RealScalar RealScalar;
+    typedef _Preconditioner Preconditioner;
+    typedef Matrix<Scalar,Dynamic,Dynamic> DenseMatrix; 
+    typedef Matrix<RealScalar,Dynamic,Dynamic> DenseRealMatrix; 
+    typedef Matrix<Scalar,Dynamic,1> DenseVector;
+    typedef Matrix<RealScalar,Dynamic,1> DenseRealVector; 
+    typedef Matrix<std::complex<RealScalar>, Dynamic, 1> ComplexVector;
+ 
+    
+  /** Default constructor. */
+  DGMRES() : Base(),m_restart(30),m_neig(0),m_r(0),m_maxNeig(5),m_isDeflAllocated(false),m_isDeflInitialized(false) {}
+
+  /** Initialize the solver with matrix \a A for further \c Ax=b solving.
+    * 
+    * This constructor is a shortcut for the default constructor followed
+    * by a call to compute().
+    * 
+    * \warning this class stores a reference to the matrix A as well as some
+    * precomputed values that depend on it. Therefore, if \a A is changed
+    * this class becomes invalid. Call compute() to update it with the new
+    * matrix A, or modify a copy of A.
+    */
+  template<typename MatrixDerived>
+  explicit DGMRES(const EigenBase<MatrixDerived>& A) : Base(A.derived()), m_restart(30),m_neig(0),m_r(0),m_maxNeig(5),m_isDeflAllocated(false),m_isDeflInitialized(false) {}
+
+  ~DGMRES() {}
+  
+  /** \returns the solution x of \f$ A x = b \f$ using the current decomposition of A
+    * \a x0 as an initial solution.
+    *
+    * \sa compute()
+    */
+  template<typename Rhs,typename Guess>
+  inline const internal::solve_retval_with_guess<DGMRES, Rhs, Guess>
+  solveWithGuess(const MatrixBase<Rhs>& b, const Guess& x0) const
+  {
+    eigen_assert(m_isInitialized && "DGMRES is not initialized.");
+    eigen_assert(Base::rows()==b.rows()
+              && "DGMRES::solve(): invalid number of rows of the right hand side matrix b");
+    return internal::solve_retval_with_guess
+            <DGMRES, Rhs, Guess>(*this, b.derived(), x0);
+  }
+  
+  /** \internal */
+  template<typename Rhs,typename Dest>
+  void _solveWithGuess(const Rhs& b, Dest& x) const
+  {    
+    bool failed = false;
+    for(int j=0; j<b.cols(); ++j)
+    {
+      m_iterations = Base::maxIterations();
+      m_error = Base::m_tolerance;
+      
+      typename Dest::ColXpr xj(x,j);
+      dgmres(*mp_matrix, b.col(j), xj, Base::m_preconditioner);
+    }
+    m_info = failed ? NumericalIssue
+           : m_error <= Base::m_tolerance ? Success
+           : NoConvergence;
+    m_isInitialized = true;
+  }
+
+  /** \internal */
+  template<typename Rhs,typename Dest>
+  void _solve(const Rhs& b, Dest& x) const
+  {
+    x = b;
+    _solveWithGuess(b,x);
+  }
+  /** 
+   * Get the restart value
+    */
+  int restart() { return m_restart; }
+  
+  /** 
+   * Set the restart value (default is 30)  
+   */
+  void set_restart(const int restart) { m_restart=restart; }
+  
+  /** 
+   * Set the number of eigenvalues to deflate at each restart 
+   */
+  void setEigenv(const int neig) 
+  {
+    m_neig = neig;
+    if (neig+1 > m_maxNeig) m_maxNeig = neig+1; // To allow for complex conjugates
+  }
+  
+  /** 
+   * Get the size of the deflation subspace size
+   */ 
+  int deflSize() {return m_r; }
+  
+  /**
+   * Set the maximum size of the deflation subspace
+   */
+  void setMaxEigenv(const int maxNeig) { m_maxNeig = maxNeig; }
+  
+  protected:
+    // DGMRES algorithm 
+    template<typename Rhs, typename Dest>
+    void dgmres(const MatrixType& mat,const Rhs& rhs, Dest& x, const Preconditioner& precond) const;
+    // Perform one cycle of GMRES
+    template<typename Dest>
+    int dgmresCycle(const MatrixType& mat, const Preconditioner& precond, Dest& x, DenseVector& r0, RealScalar& beta, const RealScalar& normRhs, int& nbIts) const; 
+    // Compute data to use for deflation 
+    int dgmresComputeDeflationData(const MatrixType& mat, const Preconditioner& precond, const Index& it, Index& neig) const;
+    // Apply deflation to a vector
+    template<typename RhsType, typename DestType>
+    int dgmresApplyDeflation(const RhsType& In, DestType& Out) const; 
+    ComplexVector schurValues(const ComplexSchur<DenseMatrix>& schurofH) const;
+    ComplexVector schurValues(const RealSchur<DenseMatrix>& schurofH) const;
+    // Init data for deflation
+    void dgmresInitDeflation(Index& rows) const; 
+    mutable DenseMatrix m_V; // Krylov basis vectors
+    mutable DenseMatrix m_H; // Hessenberg matrix 
+    mutable DenseMatrix m_Hes; // Initial hessenberg matrix wihout Givens rotations applied
+    mutable Index m_restart; // Maximum size of the Krylov subspace
+    mutable DenseMatrix m_U; // Vectors that form the basis of the invariant subspace 
+    mutable DenseMatrix m_MU; // matrix operator applied to m_U (for next cycles)
+    mutable DenseMatrix m_T; /* T=U^T*M^{-1}*A*U */
+    mutable PartialPivLU<DenseMatrix> m_luT; // LU factorization of m_T
+    mutable int m_neig; //Number of eigenvalues to extract at each restart
+    mutable int m_r; // Current number of deflated eigenvalues, size of m_U
+    mutable int m_maxNeig; // Maximum number of eigenvalues to deflate
+    mutable RealScalar m_lambdaN; //Modulus of the largest eigenvalue of A
+    mutable bool m_isDeflAllocated;
+    mutable bool m_isDeflInitialized;
+    
+    //Adaptive strategy 
+    mutable RealScalar m_smv; // Smaller multiple of the remaining number of steps allowed
+    mutable bool m_force; // Force the use of deflation at each restart
+    
+}; 
+/** 
+ * \brief Perform several cycles of restarted GMRES with modified Gram Schmidt, 
+ * 
+ * A right preconditioner is used combined with deflation.
+ * 
+ */
+template< typename _MatrixType, typename _Preconditioner>
+template<typename Rhs, typename Dest>
+void DGMRES<_MatrixType, _Preconditioner>::dgmres(const MatrixType& mat,const Rhs& rhs, Dest& x,
+              const Preconditioner& precond) const
+{
+  //Initialization
+  int n = mat.rows(); 
+  DenseVector r0(n); 
+  int nbIts = 0; 
+  m_H.resize(m_restart+1, m_restart);
+  m_Hes.resize(m_restart, m_restart);
+  m_V.resize(n,m_restart+1);
+  //Initial residual vector and intial norm
+  x = precond.solve(x);
+  r0 = rhs - mat * x; 
+  RealScalar beta = r0.norm(); 
+  RealScalar normRhs = rhs.norm();
+  m_error = beta/normRhs; 
+  if(m_error < m_tolerance)
+    m_info = Success; 
+  else
+    m_info = NoConvergence;
+  
+  // Iterative process
+  while (nbIts < m_iterations && m_info == NoConvergence)
+  {
+    dgmresCycle(mat, precond, x, r0, beta, normRhs, nbIts); 
+    
+    // Compute the new residual vector for the restart 
+    if (nbIts < m_iterations && m_info == NoConvergence)
+      r0 = rhs - mat * x; 
+  }
+} 
+
+/**
+ * \brief Perform one restart cycle of DGMRES
+ * \param mat The coefficient matrix
+ * \param precond The preconditioner
+ * \param x the new approximated solution
+ * \param r0 The initial residual vector
+ * \param beta The norm of the residual computed so far
+ * \param normRhs The norm of the right hand side vector
+ * \param nbIts The number of iterations
+ */
+template< typename _MatrixType, typename _Preconditioner>
+template<typename Dest>
+int DGMRES<_MatrixType, _Preconditioner>::dgmresCycle(const MatrixType& mat, const Preconditioner& precond, Dest& x, DenseVector& r0, RealScalar& beta, const RealScalar& normRhs, int& nbIts) const
+{
+  //Initialization 
+  DenseVector g(m_restart+1); // Right hand side of the least square problem
+  g.setZero();  
+  g(0) = Scalar(beta); 
+  m_V.col(0) = r0/beta; 
+  m_info = NoConvergence; 
+  std::vector<JacobiRotation<Scalar> >gr(m_restart); // Givens rotations
+  int it = 0; // Number of inner iterations 
+  int n = mat.rows();
+  DenseVector tv1(n), tv2(n);  //Temporary vectors
+  while (m_info == NoConvergence && it < m_restart && nbIts < m_iterations)
+  {    
+    // Apply preconditioner(s) at right
+    if (m_isDeflInitialized )
+    {
+      dgmresApplyDeflation(m_V.col(it), tv1); // Deflation
+      tv2 = precond.solve(tv1); 
+    }
+    else
+    {
+      tv2 = precond.solve(m_V.col(it)); // User's selected preconditioner
+    }
+    tv1 = mat * tv2; 
+   
+    // Orthogonalize it with the previous basis in the basis using modified Gram-Schmidt
+    Scalar coef; 
+    for (int i = 0; i <= it; ++i)
+    { 
+      coef = tv1.dot(m_V.col(i));
+      tv1 = tv1 - coef * m_V.col(i); 
+      m_H(i,it) = coef; 
+      m_Hes(i,it) = coef; 
+    }
+    // Normalize the vector 
+    coef = tv1.norm(); 
+    m_V.col(it+1) = tv1/coef;
+    m_H(it+1, it) = coef;
+//     m_Hes(it+1,it) = coef; 
+    
+    // FIXME Check for happy breakdown 
+    
+    // Update Hessenberg matrix with Givens rotations
+    for (int i = 1; i <= it; ++i) 
+    {
+      m_H.col(it).applyOnTheLeft(i-1,i,gr[i-1].adjoint());
+    }
+    // Compute the new plane rotation 
+    gr[it].makeGivens(m_H(it, it), m_H(it+1,it)); 
+    // Apply the new rotation
+    m_H.col(it).applyOnTheLeft(it,it+1,gr[it].adjoint());
+    g.applyOnTheLeft(it,it+1, gr[it].adjoint()); 
+    
+    beta = std::abs(g(it+1));
+    m_error = beta/normRhs; 
+    std::cerr << nbIts << " Relative Residual Norm " << m_error << std::endl;
+    it++; nbIts++; 
+    
+    if (m_error < m_tolerance)
+    {
+      // The method has converged
+      m_info = Success;
+      break;
+    }
+  }
+  
+  // Compute the new coefficients by solving the least square problem
+//   it++;
+  //FIXME  Check first if the matrix is singular ... zero diagonal
+  DenseVector nrs(m_restart); 
+  nrs = m_H.topLeftCorner(it,it).template triangularView<Upper>().solve(g.head(it)); 
+  
+  // Form the new solution
+  if (m_isDeflInitialized)
+  {
+    tv1 = m_V.leftCols(it) * nrs; 
+    dgmresApplyDeflation(tv1, tv2); 
+    x = x + precond.solve(tv2);
+  }
+  else
+    x = x + precond.solve(m_V.leftCols(it) * nrs); 
+  
+  // Go for a new cycle and compute data for deflation
+  if(nbIts < m_iterations && m_info == NoConvergence && m_neig > 0 && (m_r+m_neig) < m_maxNeig)
+    dgmresComputeDeflationData(mat, precond, it, m_neig); 
+  return 0; 
+  
+}
+
+
+template< typename _MatrixType, typename _Preconditioner>
+void DGMRES<_MatrixType, _Preconditioner>::dgmresInitDeflation(Index& rows) const
+{
+  m_U.resize(rows, m_maxNeig);
+  m_MU.resize(rows, m_maxNeig); 
+  m_T.resize(m_maxNeig, m_maxNeig);
+  m_lambdaN = 0.0; 
+  m_isDeflAllocated = true; 
+}
+
+template< typename _MatrixType, typename _Preconditioner>
+inline typename DGMRES<_MatrixType, _Preconditioner>::ComplexVector DGMRES<_MatrixType, _Preconditioner>::schurValues(const ComplexSchur<DenseMatrix>& schurofH) const
+{
+  return schurofH.matrixT().diagonal();
+}
+
+template< typename _MatrixType, typename _Preconditioner>
+inline typename DGMRES<_MatrixType, _Preconditioner>::ComplexVector DGMRES<_MatrixType, _Preconditioner>::schurValues(const RealSchur<DenseMatrix>& schurofH) const
+{
+  typedef typename MatrixType::Index Index;
+  const DenseMatrix& T = schurofH.matrixT();
+  Index it = T.rows();
+  ComplexVector eig(it);
+  Index j = 0;
+  while (j < it-1)
+  {
+    if (T(j+1,j) ==Scalar(0))
+    {
+      eig(j) = std::complex<RealScalar>(T(j,j),RealScalar(0)); 
+      j++; 
+    }
+    else
+    {
+      eig(j) = std::complex<RealScalar>(T(j,j),T(j+1,j)); 
+      eig(j+1) = std::complex<RealScalar>(T(j,j+1),T(j+1,j+1));
+      j++;
+    }
+  }
+  if (j < it-1) eig(j) = std::complex<RealScalar>(T(j,j),RealScalar(0));
+  return eig;
+}
+
+template< typename _MatrixType, typename _Preconditioner>
+int DGMRES<_MatrixType, _Preconditioner>::dgmresComputeDeflationData(const MatrixType& mat, const Preconditioner& precond, const Index& it, Index& neig) const
+{
+  // First, find the Schur form of the Hessenberg matrix H
+  typename internal::conditional<NumTraits<Scalar>::IsComplex, ComplexSchur<DenseMatrix>, RealSchur<DenseMatrix> >::type schurofH; 
+  bool computeU = true;
+  DenseMatrix matrixQ(it,it); 
+  matrixQ.setIdentity();
+  schurofH.computeFromHessenberg(m_Hes.topLeftCorner(it,it), matrixQ, computeU); 
+  
+  ComplexVector eig(it);
+  Matrix<Index,Dynamic,1>perm(it); 
+  eig = this->schurValues(schurofH);
+  
+  // Reorder the absolute values of Schur values
+  DenseRealVector modulEig(it); 
+  for (int j=0; j<it; ++j) modulEig(j) = std::abs(eig(j)); 
+  perm.setLinSpaced(it,0,it-1);
+  internal::sortWithPermutation(modulEig, perm, neig);
+  
+  if (!m_lambdaN)
+  {
+    m_lambdaN = (std::max)(modulEig.maxCoeff(), m_lambdaN);
+  }
+  //Count the real number of extracted eigenvalues (with complex conjugates)
+  int nbrEig = 0; 
+  while (nbrEig < neig)
+  {
+    if(eig(perm(it-nbrEig-1)).imag() == RealScalar(0)) nbrEig++; 
+    else nbrEig += 2; 
+  }
+  // Extract the  Schur vectors corresponding to the smallest Ritz values
+  DenseMatrix Sr(it, nbrEig); 
+  Sr.setZero();
+  for (int j = 0; j < nbrEig; j++)
+  {
+    Sr.col(j) = schurofH.matrixU().col(perm(it-j-1));
+  }
+  
+  // Form the Schur vectors of the initial matrix using the Krylov basis
+  DenseMatrix X; 
+  X = m_V.leftCols(it) * Sr;
+  if (m_r)
+  {
+   // Orthogonalize X against m_U using modified Gram-Schmidt
+   for (int j = 0; j < nbrEig; j++)
+     for (int k =0; k < m_r; k++)
+      X.col(j) = X.col(j) - (m_U.col(k).dot(X.col(j)))*m_U.col(k); 
+  }
+  
+  // Compute m_MX = A * M^-1 * X
+  Index m = m_V.rows();
+  if (!m_isDeflAllocated) 
+    dgmresInitDeflation(m); 
+  DenseMatrix MX(m, nbrEig);
+  DenseVector tv1(m);
+  for (int j = 0; j < nbrEig; j++)
+  {
+    tv1 = mat * X.col(j);
+    MX.col(j) = precond.solve(tv1);
+  }
+  
+  //Update m_T = [U'MU U'MX; X'MU X'MX]
+  m_T.block(m_r, m_r, nbrEig, nbrEig) = X.transpose() * MX; 
+  if(m_r)
+  {
+    m_T.block(0, m_r, m_r, nbrEig) = m_U.leftCols(m_r).transpose() * MX; 
+    m_T.block(m_r, 0, nbrEig, m_r) = X.transpose() * m_MU.leftCols(m_r);
+  }
+  
+  // Save X into m_U and m_MX in m_MU
+  for (int j = 0; j < nbrEig; j++) m_U.col(m_r+j) = X.col(j);
+  for (int j = 0; j < nbrEig; j++) m_MU.col(m_r+j) = MX.col(j);
+  // Increase the size of the invariant subspace
+  m_r += nbrEig; 
+  
+  // Factorize m_T into m_luT
+  m_luT.compute(m_T.topLeftCorner(m_r, m_r));
+  
+  //FIXME CHeck if the factorization was correctly done (nonsingular matrix)
+  m_isDeflInitialized = true;
+  return 0; 
+}
+template<typename _MatrixType, typename _Preconditioner>
+template<typename RhsType, typename DestType>
+int DGMRES<_MatrixType, _Preconditioner>::dgmresApplyDeflation(const RhsType &x, DestType &y) const
+{
+  DenseVector x1 = m_U.leftCols(m_r).transpose() * x; 
+  y = x + m_U.leftCols(m_r) * ( m_lambdaN * m_luT.solve(x1) - x1);
+  return 0; 
+}
+
+namespace internal {
+
+  template<typename _MatrixType, typename _Preconditioner, typename Rhs>
+struct solve_retval<DGMRES<_MatrixType, _Preconditioner>, Rhs>
+  : solve_retval_base<DGMRES<_MatrixType, _Preconditioner>, Rhs>
+{
+  typedef DGMRES<_MatrixType, _Preconditioner> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+} // end namespace internal
+
+} // end namespace Eigen
+#endif 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/IncompleteCholesky.h	(revision 2476)
@@ -0,0 +1,278 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_INCOMPLETE_CHOlESKY_H
+#define EIGEN_INCOMPLETE_CHOlESKY_H
+#include "Eigen/src/IterativeLinearSolvers/IncompleteLUT.h" 
+#include <Eigen/OrderingMethods>
+#include <list>
+
+namespace Eigen {  
+/** 
+ * \brief Modified Incomplete Cholesky with dual threshold
+ * 
+ * References : C-J. Lin and J. J. Moré, Incomplete Cholesky Factorizations with
+ *              Limited memory, SIAM J. Sci. Comput.  21(1), pp. 24-45, 1999
+ * 
+ * \tparam _MatrixType The type of the sparse matrix. It should be a symmetric 
+ *                     matrix. It is advised to give  a row-oriented sparse matrix 
+ * \tparam _UpLo The triangular part of the matrix to reference. 
+ * \tparam _OrderingType 
+ */
+
+template <typename Scalar, int _UpLo = Lower, typename _OrderingType = NaturalOrdering<int> >
+class IncompleteCholesky : internal::noncopyable
+{
+  public:
+    typedef SparseMatrix<Scalar,ColMajor> MatrixType;
+    typedef _OrderingType OrderingType;
+    typedef typename MatrixType::RealScalar RealScalar; 
+    typedef typename MatrixType::Index Index; 
+    typedef PermutationMatrix<Dynamic, Dynamic, Index> PermutationType;
+    typedef Matrix<Scalar,Dynamic,1> ScalarType; 
+    typedef Matrix<Index,Dynamic, 1> IndexType;
+    typedef std::vector<std::list<Index> > VectorList; 
+    enum { UpLo = _UpLo };
+  public:
+    IncompleteCholesky() : m_shift(1),m_factorizationIsOk(false) {}
+    IncompleteCholesky(const MatrixType& matrix) : m_shift(1),m_factorizationIsOk(false)
+    {
+      compute(matrix);
+    }
+    
+    Index rows() const { return m_L.rows(); }
+    
+    Index cols() const { return m_L.cols(); }
+    
+
+    /** \brief Reports whether previous computation was successful.
+      *
+      * \returns \c Success if computation was succesful,
+      *          \c NumericalIssue if the matrix appears to be negative.
+      */
+    ComputationInfo info() const
+    {
+      eigen_assert(m_isInitialized && "IncompleteLLT is not initialized.");
+      return m_info;
+    }
+    
+    /** 
+     * \brief Set the initial shift parameter
+     */
+    void setShift( Scalar shift) { m_shift = shift; }
+    
+    /**
+    * \brief Computes the fill reducing permutation vector. 
+    */
+    template<typename MatrixType>
+    void analyzePattern(const MatrixType& mat)
+    {
+      OrderingType ord; 
+      ord(mat.template selfadjointView<UpLo>(), m_perm); 
+      m_analysisIsOk = true; 
+    }
+    
+    template<typename MatrixType>
+    void factorize(const MatrixType& amat);
+    
+    template<typename MatrixType>
+    void compute (const MatrixType& matrix)
+    {
+      analyzePattern(matrix); 
+      factorize(matrix);
+    }
+    
+    template<typename Rhs, typename Dest>
+    void _solve(const Rhs& b, Dest& x) const
+    {
+      eigen_assert(m_factorizationIsOk && "factorize() should be called first");
+      if (m_perm.rows() == b.rows())
+        x = m_perm.inverse() * b; 
+      else 
+        x = b; 
+      x = m_scal.asDiagonal() * x;
+      x = m_L.template triangularView<UnitLower>().solve(x); 
+      x = m_L.adjoint().template triangularView<Upper>().solve(x); 
+      if (m_perm.rows() == b.rows())
+        x = m_perm * x;
+      x = m_scal.asDiagonal() * x;
+    }
+    template<typename Rhs> inline const internal::solve_retval<IncompleteCholesky, Rhs>
+    solve(const MatrixBase<Rhs>& b) const
+    {
+      eigen_assert(m_factorizationIsOk && "IncompleteLLT did not succeed");
+      eigen_assert(m_isInitialized && "IncompleteLLT is not initialized.");
+      eigen_assert(cols()==b.rows()
+                && "IncompleteLLT::solve(): invalid number of rows of the right hand side matrix b");
+      return internal::solve_retval<IncompleteCholesky, Rhs>(*this, b.derived());
+    }
+  protected:
+    SparseMatrix<Scalar,ColMajor> m_L;  // The lower part stored in CSC
+    ScalarType m_scal; // The vector for scaling the matrix 
+    Scalar m_shift; //The initial shift parameter
+    bool m_analysisIsOk; 
+    bool m_factorizationIsOk; 
+    bool m_isInitialized;
+    ComputationInfo m_info;
+    PermutationType m_perm; 
+    
+  private:
+    template <typename IdxType, typename SclType>
+    inline void updateList(const IdxType& colPtr, IdxType& rowIdx, SclType& vals, const Index& col, const Index& jk, IndexType& firstElt, VectorList& listCol); 
+}; 
+
+template<typename Scalar, int _UpLo, typename OrderingType>
+template<typename _MatrixType>
+void IncompleteCholesky<Scalar,_UpLo, OrderingType>::factorize(const _MatrixType& mat)
+{
+  using std::sqrt;
+  using std::min;
+  eigen_assert(m_analysisIsOk && "analyzePattern() should be called first"); 
+    
+  // Dropping strategies : Keep only the p largest elements per column, where p is the number of elements in the column of the original matrix. Other strategies will be added
+  
+  // Apply the fill-reducing permutation computed in analyzePattern()
+  if (m_perm.rows() == mat.rows() ) // To detect the null permutation
+    m_L.template selfadjointView<Lower>() = mat.template selfadjointView<_UpLo>().twistedBy(m_perm);
+  else
+    m_L.template selfadjointView<Lower>() = mat.template selfadjointView<_UpLo>();
+  
+  Index n = m_L.cols(); 
+  Index nnz = m_L.nonZeros();
+  Map<ScalarType> vals(m_L.valuePtr(), nnz); //values
+  Map<IndexType> rowIdx(m_L.innerIndexPtr(), nnz);  //Row indices
+  Map<IndexType> colPtr( m_L.outerIndexPtr(), n+1); // Pointer to the beginning of each row
+  IndexType firstElt(n-1); // for each j, points to the next entry in vals that will be used in the factorization
+  VectorList listCol(n); // listCol(j) is a linked list of columns to update column j
+  ScalarType curCol(n); // Store a  nonzero values in each column
+  IndexType irow(n); // Row indices of nonzero elements in each column
+  
+  
+  // Computes the scaling factors 
+  m_scal.resize(n);
+  for (int j = 0; j < n; j++)
+  {
+    m_scal(j) = m_L.col(j).norm();
+    m_scal(j) = sqrt(m_scal(j));
+  }
+  // Scale and compute the shift for the matrix 
+  Scalar mindiag = vals[0];
+  for (int j = 0; j < n; j++){
+    for (int k = colPtr[j]; k < colPtr[j+1]; k++)
+     vals[k] /= (m_scal(j) * m_scal(rowIdx[k]));
+    mindiag = (min)(vals[colPtr[j]], mindiag);
+  }
+  
+  if(mindiag < Scalar(0.)) m_shift = m_shift - mindiag;
+  // Apply the shift to the diagonal elements of the matrix
+  for (int j = 0; j < n; j++)
+    vals[colPtr[j]] += m_shift;
+  // jki version of the Cholesky factorization 
+  for (int j=0; j < n; ++j)
+  {  
+    //Left-looking factorize the column j 
+    // First, load the jth column into curCol 
+    Scalar diag = vals[colPtr[j]];  // It is assumed that only the lower part is stored
+    curCol.setZero();
+    irow.setLinSpaced(n,0,n-1); 
+    for (int i = colPtr[j] + 1; i < colPtr[j+1]; i++)
+    {
+      curCol(rowIdx[i]) = vals[i]; 
+      irow(rowIdx[i]) = rowIdx[i]; 
+    }
+    std::list<int>::iterator k; 
+    // Browse all previous columns that will update column j
+    for(k = listCol[j].begin(); k != listCol[j].end(); k++) 
+    {
+      int jk = firstElt(*k); // First element to use in the column 
+      jk += 1; 
+      for (int i = jk; i < colPtr[*k+1]; i++)
+      {
+        curCol(rowIdx[i]) -= vals[i] * vals[jk] ;
+      }
+      updateList(colPtr,rowIdx,vals, *k, jk, firstElt, listCol);
+    }
+    
+    // Scale the current column
+    if(RealScalar(diag) <= 0) 
+    {
+      std::cerr << "\nNegative diagonal during Incomplete factorization... "<< j << "\n";
+      m_info = NumericalIssue; 
+      return; 
+    }
+    RealScalar rdiag = sqrt(RealScalar(diag));
+    vals[colPtr[j]] = rdiag;
+    for (int i = j+1; i < n; i++)
+    {
+      //Scale 
+      curCol(i) /= rdiag;
+      //Update the remaining diagonals with curCol
+      vals[colPtr[i]] -= curCol(i) * curCol(i);
+    }
+    // Select the largest p elements
+    //  p is the original number of elements in the column (without the diagonal)
+    int p = colPtr[j+1] - colPtr[j] - 1 ; 
+    internal::QuickSplit(curCol, irow, p); 
+    // Insert the largest p elements in the matrix
+    int cpt = 0; 
+    for (int i = colPtr[j]+1; i < colPtr[j+1]; i++)
+    {
+      vals[i] = curCol(cpt); 
+      rowIdx[i] = irow(cpt); 
+      cpt ++; 
+    }
+    // Get the first smallest row index and put it after the diagonal element
+    Index jk = colPtr(j)+1;
+    updateList(colPtr,rowIdx,vals,j,jk,firstElt,listCol); 
+  }
+  m_factorizationIsOk = true; 
+  m_isInitialized = true;
+  m_info = Success; 
+}
+
+template<typename Scalar, int _UpLo, typename OrderingType>
+template <typename IdxType, typename SclType>
+inline void IncompleteCholesky<Scalar,_UpLo, OrderingType>::updateList(const IdxType& colPtr, IdxType& rowIdx, SclType& vals, const Index& col, const Index& jk, IndexType& firstElt, VectorList& listCol)
+{
+  if (jk < colPtr(col+1) )
+  {
+    Index p = colPtr(col+1) - jk;
+    Index minpos; 
+    rowIdx.segment(jk,p).minCoeff(&minpos);
+    minpos += jk;
+    if (rowIdx(minpos) != rowIdx(jk))
+    {
+      //Swap
+      std::swap(rowIdx(jk),rowIdx(minpos));
+      std::swap(vals(jk),vals(minpos));
+    }
+    firstElt(col) = jk;
+    listCol[rowIdx(jk)].push_back(col);
+  }
+}
+namespace internal {
+
+template<typename _Scalar, int _UpLo, typename OrderingType, typename Rhs>
+struct solve_retval<IncompleteCholesky<_Scalar,  _UpLo, OrderingType>, Rhs>
+  : solve_retval_base<IncompleteCholesky<_Scalar, _UpLo, OrderingType>, Rhs>
+{
+  typedef IncompleteCholesky<_Scalar, _UpLo, OrderingType> Dec;
+  EIGEN_MAKE_SOLVE_HELPERS(Dec,Rhs)
+
+  template<typename Dest> void evalTo(Dest& dst) const
+  {
+    dec()._solve(rhs(),dst);
+  }
+};
+
+} // end namespace internal
+
+} // end namespace Eigen 
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/IterationController.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/IterationController.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/IterativeSolvers/IterationController.h	(revision 2476)
@@ -0,0 +1,154 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
+
+/* NOTE The class IterationController has been adapted from the iteration
+ *      class of the GMM++ and ITL libraries.
+ */
+
+//=======================================================================
+// Copyright (C) 1997-2001
+// Authors: Andrew Lumsdaine <lums@osl.iu.edu> 
+//          Lie-Quan Lee     <llee@osl.iu.edu>
+//
+// This file is part of the Iterative Template Library
+//
+// You should have received a copy of the License Agreement for the
+// Iterative Template Library along with the software;  see the
+// file LICENSE.  
+//
+// Permission to modify the code and to distribute modified code is
+// granted, provided the text of this NOTICE is retained, a notice that
+// the code was modified is included with the above COPYRIGHT NOTICE and
+// with the COPYRIGHT NOTICE in the LICENSE file, and that the LICENSE
+// file is distributed with the modified code.
+//
+// LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
+// By way of example, but not limitation, Licensor MAKES NO
+// REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
+// PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS
+// OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS
+// OR OTHER RIGHTS.
+//=======================================================================
+
+//========================================================================
+//
+// Copyright (C) 2002-2007 Yves Renard
+//
+// This file is a part of GETFEM++
+//
+// Getfem++ is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as
+// published by the Free Software Foundation; version 2.1 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU Lesser General Public License for more details.
+// You should have received a copy of the GNU Lesser General Public
+// License along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301,
+// USA.
+//
+//========================================================================
+
+#include "../../../../Eigen/src/Core/util/NonMPL2.h"
+
+#ifndef EIGEN_ITERATION_CONTROLLER_H
+#define EIGEN_ITERATION_CONTROLLER_H
+
+namespace Eigen { 
+
+/** \ingroup IterativeSolvers_Module
+  * \class IterationController
+  *
+  * \brief Controls the iterations of the iterative solvers
+  *
+  * This class has been adapted from the iteration class of GMM++ and ITL libraries.
+  *
+  */
+class IterationController
+{
+  protected :
+    double m_rhsn;        ///< Right hand side norm
+    size_t m_maxiter;     ///< Max. number of iterations
+    int m_noise;          ///< if noise > 0 iterations are printed
+    double m_resmax;      ///< maximum residual
+    double m_resminreach, m_resadd;
+    size_t m_nit;         ///< iteration number
+    double m_res;         ///< last computed residual
+    bool m_written;
+    void (*m_callback)(const IterationController&);
+  public :
+
+    void init()
+    {
+      m_nit = 0; m_res = 0.0; m_written = false;
+      m_resminreach = 1E50; m_resadd = 0.0;
+      m_callback = 0;
+    }
+
+    IterationController(double r = 1.0E-8, int noi = 0, size_t mit = size_t(-1))
+      : m_rhsn(1.0), m_maxiter(mit), m_noise(noi), m_resmax(r) { init(); }
+
+    void operator ++(int) { m_nit++; m_written = false; m_resadd += m_res; }
+    void operator ++() { (*this)++; }
+
+    bool first() { return m_nit == 0; }
+
+    /* get/set the "noisyness" (verbosity) of the solvers */
+    int noiseLevel() const { return m_noise; }
+    void setNoiseLevel(int n) { m_noise = n; }
+    void reduceNoiseLevel() { if (m_noise > 0) m_noise--; }
+
+    double maxResidual() const { return m_resmax; }
+    void setMaxResidual(double r) { m_resmax = r; }
+
+    double residual() const { return m_res; }
+
+    /* change the user-definable callback, called after each iteration */
+    void setCallback(void (*t)(const IterationController&))
+    {
+      m_callback = t;
+    }
+
+    size_t iteration() const { return m_nit; }
+    void setIteration(size_t i) { m_nit = i; }
+
+    size_t maxIterarions() const { return m_maxiter; }
+    void setMaxIterations(size_t i) { m_maxiter = i; }
+
+    double rhsNorm() const { return m_rhsn; }
+    void setRhsNorm(double r) { m_rhsn = r; }
+
+    bool converged() const { return m_res <= m_rhsn * m_resmax; }
+    bool converged(double nr)
+    {
+      using std::abs;
+      m_res = abs(nr); 
+      m_resminreach = (std::min)(m_resminreach, m_res);
+      return converged();
+    }
+    template<typename VectorType> bool converged(const VectorType &v)
+    { return converged(v.squaredNorm()); }
+
+    bool finished(double nr)
+    {
+      if (m_callback) m_callback(*this);
+      if (m_noise > 0 && !m_written)
+      {
+        converged(nr);
+        m_written = true;
+      }
+      return (m_nit >= m_maxiter || converged(nr));
+    }
+    template <typename VectorType>
+    bool finished(const MatrixBase<VectorType> &v)
+    { return finished(double(v.squaredNorm())); }
+
+};
+
+} // end namespace Eigen
+
+#endif // EIGEN_ITERATION_CONTROLLER_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Splines/Spline.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Splines/Spline.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Splines/Spline.h	(revision 2476)
@@ -0,0 +1,474 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 20010-2011 Hauke Heibel <hauke.heibel@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPLINE_H
+#define EIGEN_SPLINE_H
+
+#include "SplineFwd.h"
+
+namespace Eigen
+{
+    /**
+     * \ingroup Splines_Module
+     * \class Spline
+     * \brief A class representing multi-dimensional spline curves.
+     *
+     * The class represents B-splines with non-uniform knot vectors. Each control
+     * point of the B-spline is associated with a basis function
+     * \f{align*}
+     *   C(u) & = \sum_{i=0}^{n}N_{i,p}(u)P_i
+     * \f}
+     *
+     * \tparam _Scalar The underlying data type (typically float or double)
+     * \tparam _Dim The curve dimension (e.g. 2 or 3)
+     * \tparam _Degree Per default set to Dynamic; could be set to the actual desired
+     *                degree for optimization purposes (would result in stack allocation
+     *                of several temporary variables).
+     **/
+  template <typename _Scalar, int _Dim, int _Degree>
+  class Spline
+  {
+  public:
+    typedef _Scalar Scalar; /*!< The spline curve's scalar type. */
+    enum { Dimension = _Dim /*!< The spline curve's dimension. */ };
+    enum { Degree = _Degree /*!< The spline curve's degree. */ };
+
+    /** \brief The point type the spline is representing. */
+    typedef typename SplineTraits<Spline>::PointType PointType;
+    
+    /** \brief The data type used to store knot vectors. */
+    typedef typename SplineTraits<Spline>::KnotVectorType KnotVectorType;
+    
+    /** \brief The data type used to store non-zero basis functions. */
+    typedef typename SplineTraits<Spline>::BasisVectorType BasisVectorType;
+    
+    /** \brief The data type representing the spline's control points. */
+    typedef typename SplineTraits<Spline>::ControlPointVectorType ControlPointVectorType;
+    
+    /**
+    * \brief Creates a (constant) zero spline.
+    * For Splines with dynamic degree, the resulting degree will be 0.
+    **/
+    Spline() 
+    : m_knots(1, (Degree==Dynamic ? 2 : 2*Degree+2))
+    , m_ctrls(ControlPointVectorType::Zero(2,(Degree==Dynamic ? 1 : Degree+1))) 
+    {
+      // in theory this code can go to the initializer list but it will get pretty
+      // much unreadable ...
+      enum { MinDegree = (Degree==Dynamic ? 0 : Degree) };
+      m_knots.template segment<MinDegree+1>(0) = Array<Scalar,1,MinDegree+1>::Zero();
+      m_knots.template segment<MinDegree+1>(MinDegree+1) = Array<Scalar,1,MinDegree+1>::Ones();
+    }
+
+    /**
+    * \brief Creates a spline from a knot vector and control points.
+    * \param knots The spline's knot vector.
+    * \param ctrls The spline's control point vector.
+    **/
+    template <typename OtherVectorType, typename OtherArrayType>
+    Spline(const OtherVectorType& knots, const OtherArrayType& ctrls) : m_knots(knots), m_ctrls(ctrls) {}
+
+    /**
+    * \brief Copy constructor for splines.
+    * \param spline The input spline.
+    **/
+    template <int OtherDegree>
+    Spline(const Spline<Scalar, Dimension, OtherDegree>& spline) : 
+    m_knots(spline.knots()), m_ctrls(spline.ctrls()) {}
+
+    /**
+     * \brief Returns the knots of the underlying spline.
+     **/
+    const KnotVectorType& knots() const { return m_knots; }
+    
+    /**
+     * \brief Returns the knots of the underlying spline.
+     **/    
+    const ControlPointVectorType& ctrls() const { return m_ctrls; }
+
+    /**
+     * \brief Returns the spline value at a given site \f$u\f$.
+     *
+     * The function returns
+     * \f{align*}
+     *   C(u) & = \sum_{i=0}^{n}N_{i,p}P_i
+     * \f}
+     *
+     * \param u Parameter \f$u \in [0;1]\f$ at which the spline is evaluated.
+     * \return The spline value at the given location \f$u\f$.
+     **/
+    PointType operator()(Scalar u) const;
+
+    /**
+     * \brief Evaluation of spline derivatives of up-to given order.
+     *
+     * The function returns
+     * \f{align*}
+     *   \frac{d^i}{du^i}C(u) & = \sum_{i=0}^{n} \frac{d^i}{du^i} N_{i,p}(u)P_i
+     * \f}
+     * for i ranging between 0 and order.
+     *
+     * \param u Parameter \f$u \in [0;1]\f$ at which the spline derivative is evaluated.
+     * \param order The order up to which the derivatives are computed.
+     **/
+    typename SplineTraits<Spline>::DerivativeType
+      derivatives(Scalar u, DenseIndex order) const;
+
+    /**
+     * \copydoc Spline::derivatives
+     * Using the template version of this function is more efficieent since
+     * temporary objects are allocated on the stack whenever this is possible.
+     **/    
+    template <int DerivativeOrder>
+    typename SplineTraits<Spline,DerivativeOrder>::DerivativeType
+      derivatives(Scalar u, DenseIndex order = DerivativeOrder) const;
+
+    /**
+     * \brief Computes the non-zero basis functions at the given site.
+     *
+     * Splines have local support and a point from their image is defined
+     * by exactly \f$p+1\f$ control points \f$P_i\f$ where \f$p\f$ is the
+     * spline degree.
+     *
+     * This function computes the \f$p+1\f$ non-zero basis function values
+     * for a given parameter value \f$u\f$. It returns
+     * \f{align*}{
+     *   N_{i,p}(u), \hdots, N_{i+p+1,p}(u)
+     * \f}
+     *
+     * \param u Parameter \f$u \in [0;1]\f$ at which the non-zero basis functions 
+     *          are computed.
+     **/
+    typename SplineTraits<Spline>::BasisVectorType
+      basisFunctions(Scalar u) const;
+
+    /**
+     * \brief Computes the non-zero spline basis function derivatives up to given order.
+     *
+     * The function computes
+     * \f{align*}{
+     *   \frac{d^i}{du^i} N_{i,p}(u), \hdots, \frac{d^i}{du^i} N_{i+p+1,p}(u)
+     * \f}
+     * with i ranging from 0 up to the specified order.
+     *
+     * \param u Parameter \f$u \in [0;1]\f$ at which the non-zero basis function
+     *          derivatives are computed.
+     * \param order The order up to which the basis function derivatives are computes.
+     **/
+    typename SplineTraits<Spline>::BasisDerivativeType
+      basisFunctionDerivatives(Scalar u, DenseIndex order) const;
+
+    /**
+     * \copydoc Spline::basisFunctionDerivatives
+     * Using the template version of this function is more efficieent since
+     * temporary objects are allocated on the stack whenever this is possible.
+     **/    
+    template <int DerivativeOrder>
+    typename SplineTraits<Spline,DerivativeOrder>::BasisDerivativeType
+      basisFunctionDerivatives(Scalar u, DenseIndex order = DerivativeOrder) const;
+
+    /**
+     * \brief Returns the spline degree.
+     **/ 
+    DenseIndex degree() const;
+
+    /** 
+     * \brief Returns the span within the knot vector in which u is falling.
+     * \param u The site for which the span is determined.
+     **/
+    DenseIndex span(Scalar u) const;
+
+    /**
+     * \brief Computes the spang within the provided knot vector in which u is falling.
+     **/
+    static DenseIndex Span(typename SplineTraits<Spline>::Scalar u, DenseIndex degree, const typename SplineTraits<Spline>::KnotVectorType& knots);
+    
+    /**
+     * \brief Returns the spline's non-zero basis functions.
+     *
+     * The function computes and returns
+     * \f{align*}{
+     *   N_{i,p}(u), \hdots, N_{i+p+1,p}(u)
+     * \f}
+     *
+     * \param u The site at which the basis functions are computed.
+     * \param degree The degree of the underlying spline.
+     * \param knots The underlying spline's knot vector.
+     **/
+    static BasisVectorType BasisFunctions(Scalar u, DenseIndex degree, const KnotVectorType& knots);
+
+
+  private:
+    KnotVectorType m_knots; /*!< Knot vector. */
+    ControlPointVectorType  m_ctrls; /*!< Control points. */
+  };
+
+  template <typename _Scalar, int _Dim, int _Degree>
+  DenseIndex Spline<_Scalar, _Dim, _Degree>::Span(
+    typename SplineTraits< Spline<_Scalar, _Dim, _Degree> >::Scalar u,
+    DenseIndex degree,
+    const typename SplineTraits< Spline<_Scalar, _Dim, _Degree> >::KnotVectorType& knots)
+  {
+    // Piegl & Tiller, "The NURBS Book", A2.1 (p. 68)
+    if (u <= knots(0)) return degree;
+    const Scalar* pos = std::upper_bound(knots.data()+degree-1, knots.data()+knots.size()-degree-1, u);
+    return static_cast<DenseIndex>( std::distance(knots.data(), pos) - 1 );
+  }
+
+  template <typename _Scalar, int _Dim, int _Degree>
+  typename Spline<_Scalar, _Dim, _Degree>::BasisVectorType
+    Spline<_Scalar, _Dim, _Degree>::BasisFunctions(
+    typename Spline<_Scalar, _Dim, _Degree>::Scalar u,
+    DenseIndex degree,
+    const typename Spline<_Scalar, _Dim, _Degree>::KnotVectorType& knots)
+  {
+    typedef typename Spline<_Scalar, _Dim, _Degree>::BasisVectorType BasisVectorType;
+
+    const DenseIndex p = degree;
+    const DenseIndex i = Spline::Span(u, degree, knots);
+
+    const KnotVectorType& U = knots;
+
+    BasisVectorType left(p+1); left(0) = Scalar(0);
+    BasisVectorType right(p+1); right(0) = Scalar(0);        
+
+    VectorBlock<BasisVectorType,Degree>(left,1,p) = u - VectorBlock<const KnotVectorType,Degree>(U,i+1-p,p).reverse();
+    VectorBlock<BasisVectorType,Degree>(right,1,p) = VectorBlock<const KnotVectorType,Degree>(U,i+1,p) - u;
+
+    BasisVectorType N(1,p+1);
+    N(0) = Scalar(1);
+    for (DenseIndex j=1; j<=p; ++j)
+    {
+      Scalar saved = Scalar(0);
+      for (DenseIndex r=0; r<j; r++)
+      {
+        const Scalar tmp = N(r)/(right(r+1)+left(j-r));
+        N[r] = saved + right(r+1)*tmp;
+        saved = left(j-r)*tmp;
+      }
+      N(j) = saved;
+    }
+    return N;
+  }
+
+  template <typename _Scalar, int _Dim, int _Degree>
+  DenseIndex Spline<_Scalar, _Dim, _Degree>::degree() const
+  {
+    if (_Degree == Dynamic)
+      return m_knots.size() - m_ctrls.cols() - 1;
+    else
+      return _Degree;
+  }
+
+  template <typename _Scalar, int _Dim, int _Degree>
+  DenseIndex Spline<_Scalar, _Dim, _Degree>::span(Scalar u) const
+  {
+    return Spline::Span(u, degree(), knots());
+  }
+
+  template <typename _Scalar, int _Dim, int _Degree>
+  typename Spline<_Scalar, _Dim, _Degree>::PointType Spline<_Scalar, _Dim, _Degree>::operator()(Scalar u) const
+  {
+    enum { Order = SplineTraits<Spline>::OrderAtCompileTime };
+
+    const DenseIndex span = this->span(u);
+    const DenseIndex p = degree();
+    const BasisVectorType basis_funcs = basisFunctions(u);
+
+    const Replicate<BasisVectorType,Dimension,1> ctrl_weights(basis_funcs);
+    const Block<const ControlPointVectorType,Dimension,Order> ctrl_pts(ctrls(),0,span-p,Dimension,p+1);
+    return (ctrl_weights * ctrl_pts).rowwise().sum();
+  }
+
+  /* --------------------------------------------------------------------------------------------- */
+
+  template <typename SplineType, typename DerivativeType>
+  void derivativesImpl(const SplineType& spline, typename SplineType::Scalar u, DenseIndex order, DerivativeType& der)
+  {    
+    enum { Dimension = SplineTraits<SplineType>::Dimension };
+    enum { Order = SplineTraits<SplineType>::OrderAtCompileTime };
+    enum { DerivativeOrder = DerivativeType::ColsAtCompileTime };
+
+    typedef typename SplineTraits<SplineType>::ControlPointVectorType ControlPointVectorType;
+    typedef typename SplineTraits<SplineType,DerivativeOrder>::BasisDerivativeType BasisDerivativeType;
+    typedef typename BasisDerivativeType::ConstRowXpr BasisDerivativeRowXpr;    
+
+    const DenseIndex p = spline.degree();
+    const DenseIndex span = spline.span(u);
+
+    const DenseIndex n = (std::min)(p, order);
+
+    der.resize(Dimension,n+1);
+
+    // Retrieve the basis function derivatives up to the desired order...    
+    const BasisDerivativeType basis_func_ders = spline.template basisFunctionDerivatives<DerivativeOrder>(u, n+1);
+
+    // ... and perform the linear combinations of the control points.
+    for (DenseIndex der_order=0; der_order<n+1; ++der_order)
+    {
+      const Replicate<BasisDerivativeRowXpr,Dimension,1> ctrl_weights( basis_func_ders.row(der_order) );
+      const Block<const ControlPointVectorType,Dimension,Order> ctrl_pts(spline.ctrls(),0,span-p,Dimension,p+1);
+      der.col(der_order) = (ctrl_weights * ctrl_pts).rowwise().sum();
+    }
+  }
+
+  template <typename _Scalar, int _Dim, int _Degree>
+  typename SplineTraits< Spline<_Scalar, _Dim, _Degree> >::DerivativeType
+    Spline<_Scalar, _Dim, _Degree>::derivatives(Scalar u, DenseIndex order) const
+  {
+    typename SplineTraits< Spline >::DerivativeType res;
+    derivativesImpl(*this, u, order, res);
+    return res;
+  }
+
+  template <typename _Scalar, int _Dim, int _Degree>
+  template <int DerivativeOrder>
+  typename SplineTraits< Spline<_Scalar, _Dim, _Degree>, DerivativeOrder >::DerivativeType
+    Spline<_Scalar, _Dim, _Degree>::derivatives(Scalar u, DenseIndex order) const
+  {
+    typename SplineTraits< Spline, DerivativeOrder >::DerivativeType res;
+    derivativesImpl(*this, u, order, res);
+    return res;
+  }
+
+  template <typename _Scalar, int _Dim, int _Degree>
+  typename SplineTraits< Spline<_Scalar, _Dim, _Degree> >::BasisVectorType
+    Spline<_Scalar, _Dim, _Degree>::basisFunctions(Scalar u) const
+  {
+    return Spline::BasisFunctions(u, degree(), knots());
+  }
+
+  /* --------------------------------------------------------------------------------------------- */
+
+  template <typename SplineType, typename DerivativeType>
+  void basisFunctionDerivativesImpl(const SplineType& spline, typename SplineType::Scalar u, DenseIndex order, DerivativeType& N_)
+  {
+    enum { Order = SplineTraits<SplineType>::OrderAtCompileTime };
+
+    typedef typename SplineTraits<SplineType>::Scalar Scalar;
+    typedef typename SplineTraits<SplineType>::BasisVectorType BasisVectorType;
+    typedef typename SplineTraits<SplineType>::KnotVectorType KnotVectorType;
+
+    const KnotVectorType& U = spline.knots();
+
+    const DenseIndex p = spline.degree();
+    const DenseIndex span = spline.span(u);
+
+    const DenseIndex n = (std::min)(p, order);
+
+    N_.resize(n+1, p+1);
+
+    BasisVectorType left = BasisVectorType::Zero(p+1);
+    BasisVectorType right = BasisVectorType::Zero(p+1);
+
+    Matrix<Scalar,Order,Order> ndu(p+1,p+1);
+
+    double saved, temp;
+
+    ndu(0,0) = 1.0;
+
+    DenseIndex j;
+    for (j=1; j<=p; ++j)
+    {
+      left[j] = u-U[span+1-j];
+      right[j] = U[span+j]-u;
+      saved = 0.0;
+
+      for (DenseIndex r=0; r<j; ++r)
+      {
+        /* Lower triangle */
+        ndu(j,r) = right[r+1]+left[j-r];
+        temp = ndu(r,j-1)/ndu(j,r);
+        /* Upper triangle */
+        ndu(r,j) = static_cast<Scalar>(saved+right[r+1] * temp);
+        saved = left[j-r] * temp;
+      }
+
+      ndu(j,j) = static_cast<Scalar>(saved);
+    }
+
+    for (j = p; j>=0; --j) 
+      N_(0,j) = ndu(j,p);
+
+    // Compute the derivatives
+    DerivativeType a(n+1,p+1);
+    DenseIndex r=0;
+    for (; r<=p; ++r)
+    {
+      DenseIndex s1,s2;
+      s1 = 0; s2 = 1; // alternate rows in array a
+      a(0,0) = 1.0;
+
+      // Compute the k-th derivative
+      for (DenseIndex k=1; k<=static_cast<DenseIndex>(n); ++k)
+      {
+        double d = 0.0;
+        DenseIndex rk,pk,j1,j2;
+        rk = r-k; pk = p-k;
+
+        if (r>=k)
+        {
+          a(s2,0) = a(s1,0)/ndu(pk+1,rk);
+          d = a(s2,0)*ndu(rk,pk);
+        }
+
+        if (rk>=-1) j1 = 1;
+        else        j1 = -rk;
+
+        if (r-1 <= pk) j2 = k-1;
+        else           j2 = p-r;
+
+        for (j=j1; j<=j2; ++j)
+        {
+          a(s2,j) = (a(s1,j)-a(s1,j-1))/ndu(pk+1,rk+j);
+          d += a(s2,j)*ndu(rk+j,pk);
+        }
+
+        if (r<=pk)
+        {
+          a(s2,k) = -a(s1,k-1)/ndu(pk+1,r);
+          d += a(s2,k)*ndu(r,pk);
+        }
+
+        N_(k,r) = static_cast<Scalar>(d);
+        j = s1; s1 = s2; s2 = j; // Switch rows
+      }
+    }
+
+    /* Multiply through by the correct factors */
+    /* (Eq. [2.9])                             */
+    r = p;
+    for (DenseIndex k=1; k<=static_cast<DenseIndex>(n); ++k)
+    {
+      for (DenseIndex j=p; j>=0; --j) N_(k,j) *= r;
+      r *= p-k;
+    }
+  }
+
+  template <typename _Scalar, int _Dim, int _Degree>
+  typename SplineTraits< Spline<_Scalar, _Dim, _Degree> >::BasisDerivativeType
+    Spline<_Scalar, _Dim, _Degree>::basisFunctionDerivatives(Scalar u, DenseIndex order) const
+  {
+    typename SplineTraits< Spline >::BasisDerivativeType der;
+    basisFunctionDerivativesImpl(*this, u, order, der);
+    return der;
+  }
+
+  template <typename _Scalar, int _Dim, int _Degree>
+  template <int DerivativeOrder>
+  typename SplineTraits< Spline<_Scalar, _Dim, _Degree>, DerivativeOrder >::BasisDerivativeType
+    Spline<_Scalar, _Dim, _Degree>::basisFunctionDerivatives(Scalar u, DenseIndex order) const
+  {
+    typename SplineTraits< Spline, DerivativeOrder >::BasisDerivativeType der;
+    basisFunctionDerivativesImpl(*this, u, order, der);
+    return der;
+  }
+}
+
+#endif // EIGEN_SPLINE_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Splines/SplineFwd.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Splines/SplineFwd.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Splines/SplineFwd.h	(revision 2476)
@@ -0,0 +1,90 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 20010-2011 Hauke Heibel <hauke.heibel@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPLINES_FWD_H
+#define EIGEN_SPLINES_FWD_H
+
+#include <Eigen/Core>
+
+namespace Eigen
+{
+    template <typename Scalar, int Dim, int Degree = Dynamic> class Spline;
+
+    template < typename SplineType, int DerivativeOrder = Dynamic > struct SplineTraits {};
+
+    /**
+     * \ingroup Splines_Module
+     * \brief Compile-time attributes of the Spline class for Dynamic degree.
+     **/
+    template <typename _Scalar, int _Dim, int _Degree>
+    struct SplineTraits< Spline<_Scalar, _Dim, _Degree>, Dynamic >
+    {
+      typedef _Scalar Scalar; /*!< The spline curve's scalar type. */
+      enum { Dimension = _Dim /*!< The spline curve's dimension. */ };
+      enum { Degree = _Degree /*!< The spline curve's degree. */ };
+
+      enum { OrderAtCompileTime = _Degree==Dynamic ? Dynamic : _Degree+1 /*!< The spline curve's order at compile-time. */ };
+      enum { NumOfDerivativesAtCompileTime = OrderAtCompileTime /*!< The number of derivatives defined for the current spline. */ };
+      
+      enum { DerivativeMemoryLayout = Dimension==1 ? RowMajor : ColMajor /*!< The derivative type's memory layout. */ };
+
+      /** \brief The data type used to store non-zero basis functions. */
+      typedef Array<Scalar,1,OrderAtCompileTime> BasisVectorType;
+
+      /** \brief The data type used to store the values of the basis function derivatives. */
+      typedef Array<Scalar,Dynamic,Dynamic,RowMajor,NumOfDerivativesAtCompileTime,OrderAtCompileTime> BasisDerivativeType;
+      
+      /** \brief The data type used to store the spline's derivative values. */
+      typedef Array<Scalar,Dimension,Dynamic,DerivativeMemoryLayout,Dimension,NumOfDerivativesAtCompileTime> DerivativeType;
+
+      /** \brief The point type the spline is representing. */
+      typedef Array<Scalar,Dimension,1> PointType;
+      
+      /** \brief The data type used to store knot vectors. */
+      typedef Array<Scalar,1,Dynamic> KnotVectorType;
+      
+      /** \brief The data type representing the spline's control points. */
+      typedef Array<Scalar,Dimension,Dynamic> ControlPointVectorType;
+    };
+
+    /**
+     * \ingroup Splines_Module
+     * \brief Compile-time attributes of the Spline class for fixed degree.
+     *
+     * The traits class inherits all attributes from the SplineTraits of Dynamic degree.
+     **/
+    template < typename _Scalar, int _Dim, int _Degree, int _DerivativeOrder >
+    struct SplineTraits< Spline<_Scalar, _Dim, _Degree>, _DerivativeOrder > : public SplineTraits< Spline<_Scalar, _Dim, _Degree> >
+    {
+      enum { OrderAtCompileTime = _Degree==Dynamic ? Dynamic : _Degree+1 /*!< The spline curve's order at compile-time. */ };
+      enum { NumOfDerivativesAtCompileTime = _DerivativeOrder==Dynamic ? Dynamic : _DerivativeOrder+1 /*!< The number of derivatives defined for the current spline. */ };
+      
+      enum { DerivativeMemoryLayout = _Dim==1 ? RowMajor : ColMajor /*!< The derivative type's memory layout. */ };
+
+      /** \brief The data type used to store the values of the basis function derivatives. */
+      typedef Array<_Scalar,Dynamic,Dynamic,RowMajor,NumOfDerivativesAtCompileTime,OrderAtCompileTime> BasisDerivativeType;
+      
+      /** \brief The data type used to store the spline's derivative values. */      
+      typedef Array<_Scalar,_Dim,Dynamic,DerivativeMemoryLayout,_Dim,NumOfDerivativesAtCompileTime> DerivativeType;
+    };
+
+    /** \brief 2D float B-spline with dynamic degree. */
+    typedef Spline<float,2> Spline2f;
+    
+    /** \brief 3D float B-spline with dynamic degree. */
+    typedef Spline<float,3> Spline3f;
+
+    /** \brief 2D double B-spline with dynamic degree. */
+    typedef Spline<double,2> Spline2d;
+    
+    /** \brief 3D double B-spline with dynamic degree. */
+    typedef Spline<double,3> Spline3d;
+}
+
+#endif // EIGEN_SPLINES_FWD_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Splines/SplineFitting.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Splines/SplineFitting.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/include/unsupported/Eigen/src/Splines/SplineFitting.h	(revision 2476)
@@ -0,0 +1,156 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 20010-2011 Hauke Heibel <hauke.heibel@gmail.com>
+//
+// This Source Code Form is subject to the terms of the Mozilla
+// Public License v. 2.0. If a copy of the MPL was not distributed
+// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#ifndef EIGEN_SPLINE_FITTING_H
+#define EIGEN_SPLINE_FITTING_H
+
+#include <numeric>
+
+#include "SplineFwd.h"
+
+#include <Eigen/QR>
+
+namespace Eigen
+{
+  /**
+   * \brief Computes knot averages.
+   * \ingroup Splines_Module
+   *
+   * The knots are computed as
+   * \f{align*}
+   *  u_0 & = \hdots = u_p = 0 \\
+   *  u_{m-p} & = \hdots = u_{m} = 1 \\
+   *  u_{j+p} & = \frac{1}{p}\sum_{i=j}^{j+p-1}\bar{u}_i \quad\quad j=1,\hdots,n-p
+   * \f}
+   * where \f$p\f$ is the degree and \f$m+1\f$ the number knots
+   * of the desired interpolating spline.
+   *
+   * \param[in] parameters The input parameters. During interpolation one for each data point.
+   * \param[in] degree The spline degree which is used during the interpolation.
+   * \param[out] knots The output knot vector.
+   *
+   * \sa Les Piegl and Wayne Tiller, The NURBS book (2nd ed.), 1997, 9.2.1 Global Curve Interpolation to Point Data
+   **/
+  template <typename KnotVectorType>
+  void KnotAveraging(const KnotVectorType& parameters, DenseIndex degree, KnotVectorType& knots)
+  {
+    knots.resize(parameters.size()+degree+1);      
+
+    for (DenseIndex j=1; j<parameters.size()-degree; ++j)
+      knots(j+degree) = parameters.segment(j,degree).mean();
+
+    knots.segment(0,degree+1) = KnotVectorType::Zero(degree+1);
+    knots.segment(knots.size()-degree-1,degree+1) = KnotVectorType::Ones(degree+1);
+  }
+
+  /**
+   * \brief Computes chord length parameters which are required for spline interpolation.
+   * \ingroup Splines_Module
+   *
+   * \param[in] pts The data points to which a spline should be fit.
+   * \param[out] chord_lengths The resulting chord lenggth vector.
+   *
+   * \sa Les Piegl and Wayne Tiller, The NURBS book (2nd ed.), 1997, 9.2.1 Global Curve Interpolation to Point Data
+   **/   
+  template <typename PointArrayType, typename KnotVectorType>
+  void ChordLengths(const PointArrayType& pts, KnotVectorType& chord_lengths)
+  {
+    typedef typename KnotVectorType::Scalar Scalar;
+
+    const DenseIndex n = pts.cols();
+
+    // 1. compute the column-wise norms
+    chord_lengths.resize(pts.cols());
+    chord_lengths[0] = 0;
+    chord_lengths.rightCols(n-1) = (pts.array().leftCols(n-1) - pts.array().rightCols(n-1)).matrix().colwise().norm();
+
+    // 2. compute the partial sums
+    std::partial_sum(chord_lengths.data(), chord_lengths.data()+n, chord_lengths.data());
+
+    // 3. normalize the data
+    chord_lengths /= chord_lengths(n-1);
+    chord_lengths(n-1) = Scalar(1);
+  }
+
+  /**
+   * \brief Spline fitting methods.
+   * \ingroup Splines_Module
+   **/     
+  template <typename SplineType>
+  struct SplineFitting
+  {
+    typedef typename SplineType::KnotVectorType KnotVectorType;
+
+    /**
+     * \brief Fits an interpolating Spline to the given data points.
+     *
+     * \param pts The points for which an interpolating spline will be computed.
+     * \param degree The degree of the interpolating spline.
+     *
+     * \returns A spline interpolating the initially provided points.
+     **/
+    template <typename PointArrayType>
+    static SplineType Interpolate(const PointArrayType& pts, DenseIndex degree);
+
+    /**
+     * \brief Fits an interpolating Spline to the given data points.
+     *
+     * \param pts The points for which an interpolating spline will be computed.
+     * \param degree The degree of the interpolating spline.
+     * \param knot_parameters The knot parameters for the interpolation.
+     *
+     * \returns A spline interpolating the initially provided points.
+     **/
+    template <typename PointArrayType>
+    static SplineType Interpolate(const PointArrayType& pts, DenseIndex degree, const KnotVectorType& knot_parameters);
+  };
+
+  template <typename SplineType>
+  template <typename PointArrayType>
+  SplineType SplineFitting<SplineType>::Interpolate(const PointArrayType& pts, DenseIndex degree, const KnotVectorType& knot_parameters)
+  {
+    typedef typename SplineType::KnotVectorType::Scalar Scalar;      
+    typedef typename SplineType::ControlPointVectorType ControlPointVectorType;      
+
+    typedef Matrix<Scalar,Dynamic,Dynamic> MatrixType;
+
+    KnotVectorType knots;
+    KnotAveraging(knot_parameters, degree, knots);
+
+    DenseIndex n = pts.cols();
+    MatrixType A = MatrixType::Zero(n,n);
+    for (DenseIndex i=1; i<n-1; ++i)
+    {
+      const DenseIndex span = SplineType::Span(knot_parameters[i], degree, knots);
+
+      // The segment call should somehow be told the spline order at compile time.
+      A.row(i).segment(span-degree, degree+1) = SplineType::BasisFunctions(knot_parameters[i], degree, knots);
+    }
+    A(0,0) = 1.0;
+    A(n-1,n-1) = 1.0;
+
+    HouseholderQR<MatrixType> qr(A);
+
+    // Here, we are creating a temporary due to an Eigen issue.
+    ControlPointVectorType ctrls = qr.solve(MatrixType(pts.transpose())).transpose();
+
+    return SplineType(knots, ctrls);
+  }
+
+  template <typename SplineType>
+  template <typename PointArrayType>
+  SplineType SplineFitting<SplineType>::Interpolate(const PointArrayType& pts, DenseIndex degree)
+  {
+    KnotVectorType chord_lengths; // knot parameters
+    ChordLengths(pts, chord_lengths);
+    return Interpolate(pts, degree, chord_lengths);
+  }
+}
+
+#endif // EIGEN_SPLINE_FITTING_H
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/skeleton/Makevars
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/skeleton/Makevars	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/skeleton/Makevars	(revision 2476)
@@ -0,0 +1,7 @@
+## With Rcpp 0.11.0 and later, we no longer need to set PKG_LIBS as there is
+## no user-facing library. The include path to headers is already set by R.
+#PKG_LIBS = 
+
+## With R 3.1.0 or later, you can uncomment the following line to tell R to 
+## enable compilation with C++11 (or even C++14) where available
+#CXX_STD = CXX11
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/skeleton/rcppeigen_hello_world.Rd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/skeleton/rcppeigen_hello_world.Rd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/skeleton/rcppeigen_hello_world.Rd	(revision 2476)
@@ -0,0 +1,50 @@
+\name{RcppEigen-Functions}
+\alias{rcppeigen_hello_world}
+\alias{rcppeigen_innerproduct}
+\alias{rcppeigen_outerproduct}
+\alias{rcppeigen_bothproducts}
+\title{Set of functions in example RcppEigen package}
+\description{
+  These four functions are created when
+  \code{RcppEigen.package.skeleton()} is invoked to create a
+  skeleton packages.
+}
+\usage{
+rcppeigen_hello_world()
+rcppeigen_outerproduct(x)
+rcppeigen_innerproduct(x)
+rcppeigen_bothproducts(x)
+}
+\arguments{
+  \item{x}{a numeric vector}
+}
+\value{
+  \code{rcppeigen_hello_world()} does not return a value, but displays a
+  message to the console.
+
+  \code{rcppeigen_outerproduct()} returns a numeric matrix computed as the
+  outer (vector) product of \code{x}.
+
+  \code{rcppeigen_innerproduct()} returns a double computer as the inner
+  (vector) product of \code{x}.
+
+  \code{rcppeigen_bothproducts()} returns a list with both the outer and
+  inner products.
+  
+}
+\details{
+  These are example functions which should be largely
+  self-explanatory. Their main benefit is to demonstrate how to write a
+  function using the Eigen C++ classes, and to have to such a
+  function accessible from R.
+}
+\references{
+  See the documentation for Eigen, and RcppEigen, for more details.
+}
+\examples{
+  x <- sqrt(1:4)
+  rcppeigen_innerproduct(x)
+  rcppeigen_outerproduct(x)
+}
+\author{Dirk Eddelbuettel}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/skeleton/Makevars.win
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/skeleton/Makevars.win	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/skeleton/Makevars.win	(revision 2476)
@@ -0,0 +1,7 @@
+## With Rcpp 0.11.0 and later, we no longer need to set PKG_LIBS as there is
+## no user-facing library. The include path to headers is already set by R.
+#PKG_LIBS = 
+
+## With R 3.1.0 or later, you can uncomment the following line to tell R to 
+## enable compilation with C++11 (or even C++14) where available
+#CXX_STD = CXX11
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/skeleton/rcppeigen_hello_world.cpp
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/skeleton/rcppeigen_hello_world.cpp	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/skeleton/rcppeigen_hello_world.cpp	(revision 2476)
@@ -0,0 +1,51 @@
+// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+
+// we only include RcppEigen.h which pulls Rcpp.h in for us
+#include <RcppEigen.h>
+
+// via the depends attribute we tell Rcpp to create hooks for
+// RcppEigen so that the build process will know what to do
+//
+// [[Rcpp::depends(RcppEigen)]]
+
+// simple example of creating two matrices and
+// returning the result of an operatioon on them
+//
+// via the exports attribute we tell Rcpp to make this function
+// available from R
+//
+// [[Rcpp::export]]
+Eigen::MatrixXd rcppeigen_hello_world() {
+    Eigen::MatrixXd m1 = Eigen::MatrixXd::Identity(3, 3);
+    Eigen::MatrixXd m2 = Eigen::MatrixXd::Random(3, 3);
+	                     
+    return m1 + 3 * (m1 + m2);
+}
+
+
+// another simple example: outer product of a vector, 
+// returning a matrix
+//
+// [[Rcpp::export]]
+Eigen::MatrixXd rcppeigen_outerproduct(const Eigen::VectorXd & x) {
+    Eigen::MatrixXd m = x * x.transpose();
+    return m;
+}
+
+// and the inner product returns a scalar
+//
+// [[Rcpp::export]]
+double rcppeigen_innerproduct(const Eigen::VectorXd & x) {
+    double v = x.transpose() * x;
+    return v;
+}
+
+// and we can use Rcpp::List to return both at the same time
+//
+// [[Rcpp::export]]
+Rcpp::List rcppeigen_bothproducts(const Eigen::VectorXd & x) {
+    Eigen::MatrixXd op = x * x.transpose();
+    double          ip = x.transpose() * x;
+    return Rcpp::List::create(Rcpp::Named("outer")=op,
+                              Rcpp::Named("inner")=ip);
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/help/RcppEigen.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/help/RcppEigen.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/help/AnIndex	(revision 2476)
@@ -0,0 +1,7 @@
+RcppEigen-package	RcppEigen-package
+fastLm	fastLm
+fastLm.default	fastLm
+fastLm.formula	fastLm
+fastLmPure	fastLm
+RcppEigen	RcppEigen-package
+RcppEigen.package.skeleton	RcppEigen.package.skeleton
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/help/RcppEigen.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/help/RcppEigen.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/libs/RcppEigen.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/libs/RcppEigen.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/libs/RcppEigen.so.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/libs/RcppEigen.so.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/libs/RcppEigen.so.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.RcppEigen.so</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/libs/RcppEigen.so.dSYM/Contents/Resources/DWARF/RcppEigen.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/libs/RcppEigen.so.dSYM/Contents/Resources/DWARF/RcppEigen.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/COPYRIGHTS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/COPYRIGHTS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/COPYRIGHTS	(revision 2476)
@@ -0,0 +1,522 @@
+Files: inst/include/Eigen/* inst/include/unsupported/Eigen/*
+Copyright: 2006 - 2012  Gael Guennebaud, Benoit Jacob
+License: MPL-2
+
+Files: unsupported/Eigen/FFT unsupported/Eigen/src/FFT/ei_fftw_impl.h unsupported/Eigen/src/FFT/ei_kissfft_impl.h
+Copyright: 2003 - 2009  Mark Borgerding
+License: MPL-2
+
+Files: inst/include/Eigen/src/SuperLUSupport/SuperLUSupport.h
+Copyright: 1994  Xerox Corporation
+License: 
+   THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
+   EXPRESSED OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+
+Files: inst/include/unsupported/Eigen/src/IterativeSolvers/IterationController.h
+Copyright: 1997 - 2001 Andrew Lumsdaine and Lie-Quan Lee
+License:
+   This file is part of the Iterative Template Library
+
+   You should have received a copy of the License Agreement for the
+   Iterative Template Library along with the software;  see the
+   file LICENSE.  
+
+   Permission to modify the code and to distribute modified code is
+   granted, provided the text of this NOTICE is retained, a notice that
+   the code was modified is included with the above COPYRIGHT NOTICE and
+   with the COPYRIGHT NOTICE in the LICENSE file, and that the LICENSE
+   file is distributed with the modified code.
+
+   LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
+   By way of example, but not limitation, Licensor MAKES NO
+   REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
+   PARTICULAR PURPOSE OR THAT THE USE OF THE LICENSED SOFTWARE COMPONENTS
+   OR DOCUMENTATION WILL NOT INFRINGE ANY PATENTS, COPYRIGHTS, TRADEMARKS
+   OR OTHER RIGHTS.
+
+Files: inst/include/unsupported/Eigen/Splines inst/include/unsupported/Eigen/src/Splines/SplineFitting.h inst/include/unsupported/Eigen/src/Splines/SplineFwd.h inst/include/unsupported/Eigen/src/Splines/Spline.h inst/include/Eigen/src/Geometry/Umeyama.h inst/include/Eigen/src/StlSupport/details.h inst/include/Eigen/src/StlSupport/StdDeque.h inst/include/Eigen/src/StlSupport/StdList.h inst/include/Eigen/src/StlSupport/StdVector.h inst/include/Eigen/StdDeque inst/include/Eigen/StdList inst/include/Eigen/StdVector inst/include/Eigen/src/Core/DenseStorage.h inst/include/Eigen/src/Core/util/Memory.h inst/include/Eigen/src/Geometry/Transform.h
+Copyright: 2009 - 2011 Hauke Heibel <hauke.heibel@gmail.com>
+License: MPL-2
+
+Files: inst/include/Eigen/src/LU/arch/Inverse_SSE.h inst/include/Eigen/src/Cholesky/LLT_MKL.h inst/include/Eigen/src/Core/Assign_MKL.h inst/include/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h inst/include/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h inst/include/Eigen/src/Core/products/GeneralMatrixVector_MKL.h inst/include/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h inst/include/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h inst/include/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h inst/include/Eigen/src/Core/products/TriangularMatrixVector_MKL.h inst/include/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h inst/include/Eigen/src/Core/util/MKL_support.h inst/include/Eigen/src/Eigenvalues/ComplexSchur_MKL.h inst/include/Eigen/src/Eigenvalues/RealSchur_MKL.h inst/include/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h inst/include/Eigen/src/LU/PartialPivLU_MKL.h inst/include/Eigen/src/PardisoSupport/PardisoSupport.h inst/include/Eigen/src/QR/ColPivHouseholderQR_MKL.h inst/include/Eigen/src/QR/HouseholderQR_MKL.h inst/include/Eigen/src/SVD/JacobiSVD_MKL.h
+Copyright: 2001 Intel Corporation
+License:
+   Permition is granted to use, copy, distribute and prepare derivative works
+   of this library for any purpose and without fee, provided, that the above
+   copyright notice and this statement appear in all copies.
+   Intel makes no representations about the suitability of this software for
+   any purpose, and specifically disclaims all warranties.
+
+Files: inst/include/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h
+Copyright: 2002 - 2007 Yves Renard
+License: LPGL-2.1
+
+Files: inst/include/Eigen/src/OrderingMethods/Amd.h
+Copyright: 2006 Timothy A. Davis
+License: LGPL-2.1
+
+Files: inst/include/Eigen/src/Core/arch/SSE/MathFunctions.h
+Copyright: 2007 Julien Pommier
+License: MPL-2
+
+Files: inst/include/Eigen/src/Core/Assign.h
+Copyright: 2007 Michael Olbrich
+License: MPL-2
+
+Files: inst/include/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h inst/include/unsupported/Eigen/src/Skyline/SkylineMatrix.h inst/include/unsupported/Eigen/src/Skyline/SkylineProduct.h inst/include/unsupported/Eigen/src/Skyline/SkylineStorage.h inst/include/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h inst/include/unsupported/Eigen/src/Skyline/SkylineUtil.h
+Copyright: 2008 - 2009 Guillaume Saupin <guillaume.saupin@cea.fr>;
+License: MPL-2
+
+Files: inst/include/Eigen/src/Core/arch/AltiVec/PacketMath.h inst/include/Eigen/src/Core/arch/NEON/PacketMath.h
+Copyright: 2008 Konstantinos Margaritis
+License: MPL-2
+
+Files: inst/include/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h inst/include/unsupported/Eigen/src/MatrixFunction.h inst/include/unsupported/Eigen/MatrixFunctions inst/include/unsupported/Eigen/src/MatrixFunctions/MatrixFunctionAtomic.h inst/include/Eigen/src/Eigenvalues/ComplexEigenSolver.h inst/include/Eigen/src/Eigenvalues/ComplexSchur.h inst/include/Eigen/src/Eigenvalues/EigenSolver.h inst/include/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h inst/include/Eigen/src/Eigenvalues/HessenbergDecomposition.h inst/include/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h inst/include/Eigen/src/Eigenvalues/RealSchur.h inst/include/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h inst/include/Eigen/src/Eigenvalues/Tridiagonalization.h inst/include/unsupported/Eigen/src/MatrixFunctions/StemFunction.h inst/include/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h inst/include/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h
+Copyright: 2009 - 2010 Jitse Niesen <jitse@maths.leeds.ac.uk>
+License: MPL-2
+
+Files: inst/include/Eigen/src/Eigenvalues/ComplexEigenSolver.h inst/include/Eigen/src/Eigenvalues/ComplexSchur.h
+Copyright: 2009 Claire Maurice
+License: MPL-2
+
+Files: inst/include/unsupported/Eigen/BVH inst/include/unsupported/Eigen/src/BVH/BVAlgorithms.h inst/include/unsupported/Eigen/src/BVH/KdBVH.h
+Copyright: 2009 Ilya Baran <ibaran@mit.edu>
+License: MPL-2
+
+Files: inst/include/Eigen/src/Cholesky/LDLT.h
+Copyright: 2009 Keir Mierle <mierle@gmail.com>
+License: MPL-2
+
+Files: inst/include/Eigen/src/Geometry/Quaternion.h
+Copyright: 2009 Mathieu Gautier <mathieu.gautier@cea.fr>
+License: MPL-2
+
+Files: inst/include/Eigen/src/Geometry/arch/Geometry_SSE.h inst/include/unsupported/Eigen/src/MoreVectorization/MathFunctions.h
+Copyright: 2009 Rohit Garg <rpg.314@gmail.com>
+License: MPL-2
+
+Files: inst/include/unsupported/Eigen/NonLinearOptimization inst/include/unsupported/Eigen/NumericalDiff inst/include/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h inst/include/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h inst/include/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h inst/include/Eigen/src/Core/util/Memory.h
+Copyright: 2009 - 2010 Thomas Capricelli <orzel@freehackers.org>
+License: MPL-2
+
+Files: inst/include/Eigen/src/SparseCore/SparseView.h inst/include/Eigen/src/Sparse/SparseView.h
+Copyright: 2010 Daniel Lowengrub <lowdanie@gmail.com>
+License: MPL-2
+
+Files: inst/include/unsupported/Eigen/src/Polynomials/Companion.h inst/include/unsupported/Eigen/src/Polynomials/PolynomialSolver.h inst/include/unsupported/Eigen/src/Polynomials/PolynomialUtils.h
+Copyright: 2010 Manuel Yguel <manuel.yguel@gmail.com>
+License: MPL-2
+
+Files: inst/include/Eigen/src/Householder/BlockHouseholder.h inst/include/Eigen/src/QR/HouseholderQR.h
+Copyright: 2010 Vincent Lejeune
+License: MPL-2
+
+Files: inst/include/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h
+Copyright: 2011 Andreas Platen <andiplaten@gmx.de>
+License: MPL-2
+
+Files: inst/include/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h inst/include/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h
+Copyright: 2011 Chen-Pang He <jdh8@ms63.hinet.net>
+License: MPL-2
+
+Files: inst/include/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h inst/include/unsupported/Eigen/src/IterativeSolvers/GMRES.h
+Copyright: 2012 Kolja Brix <brix@igpm.rwth-aachen.de>
+License: MPL-2
+
+Files: inst/include/Eigen/src/Cholesky/LDLT.h
+Copyright: 2011 Timothy E. Holy <tim.holy@gmail.com>
+License: MPL-2
+
+Files: inst/include/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h inst/include/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h inst/include/Eigen/src/PaStiXSupport/PaStiXSupport.h inst/include/unsupported/Eigen/src/IterativeSolvers/Scaling.h inst/include/unsupported/Eigen/src/SparseExtra/MarketIO.h inst/include/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h 
+Copyright: 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+License: MPL-2
+
+Files: *
+Copyright: 2011 - 2013  Douglas Bates, Romain Francois and Dirk Eddelbuettel
+License: GPL-2
+
+Files: debian/*
+Copyright: 2013  Dirk Eddelbuettel <edd@debian.org>
+License: GPL-2
+
+
+GNU R ships with various open source licenses including 
+ - the GPL license (version 2), use   RShowDoc("GPL-2")  to display it
+ - the LGPL license (version 2.1), use   RShowDoc("LGPL-2.1")  to display it
+
+The MPL-2 is included below.
+
+License: MPL-2
+    Mozilla Public License Version 2.0
+    ==================================
+    .
+    1. Definitions
+    --------------
+    .
+    1.1. "Contributor"
+    means each individual or legal entity that creates, contributes to
+    the creation of, or owns Covered Software.
+    .
+    1.2. "Contributor Version"
+    means the combination of the Contributions of others (if any) used
+    by a Contributor and that particular Contributor's Contribution.
+    .
+    1.3. "Contribution"
+    means Covered Software of a particular Contributor.
+    .
+    1.4. "Covered Software"
+    means Source Code Form to which the initial Contributor has attached
+    the notice in Exhibit A, the Executable Form of such Source Code
+    Form, and Modifications of such Source Code Form, in each case
+    including portions thereof.
+    .
+    1.5. "Incompatible With Secondary Licenses"
+    means
+    .
+    (a) that the initial Contributor has attached the notice described
+        in Exhibit B to the Covered Software; or
+    .
+    (b) that the Covered Software was made available under the terms of
+        version 1.1 or earlier of the License, but not also under the
+        terms of a Secondary License.
+    .
+    1.6. "Executable Form"
+    means any form of the work other than Source Code Form.
+    .
+    1.7. "Larger Work"
+    means a work that combines Covered Software with other material, in 
+    a separate file or files, that is not Covered Software.
+    .
+    1.8. "License"
+    means this document.
+    .
+    1.9. "Licensable"
+    means having the right to grant, to the maximum extent possible,
+    whether at the time of the initial grant or subsequently, any and
+    all of the rights conveyed by this License.
+    .
+    1.10. "Modifications"
+    means any of the following:
+    .
+    (a) any file in Source Code Form that results from an addition to,
+        deletion from, or modification of the contents of Covered
+        Software; or
+    .
+    (b) any new file in Source Code Form that contains any Covered
+        Software.
+    .
+    1.11. "Patent Claims" of a Contributor
+    means any patent claim(s), including without limitation, method,
+    process, and apparatus claims, in any patent Licensable by such
+    Contributor that would be infringed, but for the grant of the
+    License, by the making, using, selling, offering for sale, having
+    made, import, or transfer of either its Contributions or its
+    Contributor Version.
+    .
+    1.12. "Secondary License"
+    means either the GNU General Public License, Version 2.0, the GNU
+    Lesser General Public License, Version 2.1, the GNU Affero General
+    Public License, Version 3.0, or any later versions of those
+    licenses.
+    .
+    1.13. "Source Code Form"
+    means the form of the work preferred for making modifications.
+    .
+    1.14. "You" (or "Your")
+    means an individual or a legal entity exercising rights under this
+    License. For legal entities, "You" includes any entity that
+    controls, is controlled by, or is under common control with You. For
+    purposes of this definition, "control" means (a) the power, direct
+    or indirect, to cause the direction or management of such entity,
+    whether by contract or otherwise, or (b) ownership of more than
+    fifty percent (50%) of the outstanding shares or beneficial
+    ownership of such entity.
+    .
+    2. License Grants and Conditions
+    --------------------------------
+    .
+    2.1. Grants
+    .
+    Each Contributor hereby grants You a world-wide, royalty-free,
+    non-exclusive license:
+    .
+    (a) under intellectual property rights (other than patent or trademark)
+    Licensable by such Contributor to use, reproduce, make available,
+    modify, display, perform, distribute, and otherwise exploit its
+    Contributions, either on an unmodified basis, with Modifications, or
+    as part of a Larger Work; and
+    .
+    (b) under Patent Claims of such Contributor to make, use, sell, offer
+    for sale, have made, import, and otherwise transfer either its
+    Contributions or its Contributor Version.
+    .
+    2.2. Effective Date
+    .
+    The licenses granted in Section 2.1 with respect to any Contribution
+    become effective for each Contribution on the date the Contributor first
+    distributes such Contribution.
+    .
+    2.3. Limitations on Grant Scope
+    .
+    The licenses granted in this Section 2 are the only rights granted under
+    this License. No additional rights or licenses will be implied from the
+    distribution or licensing of Covered Software under this License.
+    Notwithstanding Section 2.1(b) above, no patent license is granted by a
+    Contributor:
+    .
+    (a) for any code that a Contributor has removed from Covered Software;
+    or
+    .
+    (b) for infringements caused by: (i) Your and any other third party's
+    modifications of Covered Software, or (ii) the combination of its
+    Contributions with other software (except as part of its Contributor
+    Version); or
+    .
+    (c) under Patent Claims infringed by Covered Software in the absence of
+    its Contributions.
+    .
+    This License does not grant any rights in the trademarks, service marks,
+    or logos of any Contributor (except as may be necessary to comply with
+    the notice requirements in Section 3.4).
+    .
+    2.4. Subsequent Licenses
+    .
+    No Contributor makes additional grants as a result of Your choice to
+    distribute the Covered Software under a subsequent version of this
+    License (see Section 10.2) or under the terms of a Secondary License (if
+    permitted under the terms of Section 3.3).
+    .
+    2.5. Representation
+    .
+    Each Contributor represents that the Contributor believes its
+    Contributions are its original creation(s) or it has sufficient rights
+    to grant the rights to its Contributions conveyed by this License.
+    .
+    2.6. Fair Use
+    .
+    This License is not intended to limit any rights You have under
+    applicable copyright doctrines of fair use, fair dealing, or other
+    equivalents.
+    .
+    2.7. Conditions
+    .
+    Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+    in Section 2.1.
+    .
+    3. Responsibilities
+    -------------------
+    .
+    3.1. Distribution of Source Form
+    .
+    All distribution of Covered Software in Source Code Form, including any
+    Modifications that You create or to which You contribute, must be under
+    the terms of this License. You must inform recipients that the Source
+    Code Form of the Covered Software is governed by the terms of this
+    License, and how they can obtain a copy of this License. You may not
+    attempt to alter or restrict the recipients' rights in the Source Code
+    Form.
+    .
+    3.2. Distribution of Executable Form
+    .
+    If You distribute Covered Software in Executable Form then:
+    .
+    (a) such Covered Software must also be made available in Source Code
+    Form, as described in Section 3.1, and You must inform recipients of
+    the Executable Form how they can obtain a copy of such Source Code
+    Form by reasonable means in a timely manner, at a charge no more
+    than the cost of distribution to the recipient; and
+    .
+    (b) You may distribute such Executable Form under the terms of this
+    License, or sublicense it under different terms, provided that the
+    license for the Executable Form does not attempt to limit or alter
+    the recipients' rights in the Source Code Form under this License.
+    .
+    3.3. Distribution of a Larger Work
+    .
+    You may create and distribute a Larger Work under terms of Your choice,
+    provided that You also comply with the requirements of this License for
+    the Covered Software. If the Larger Work is a combination of Covered
+    Software with a work governed by one or more Secondary Licenses, and the
+    Covered Software is not Incompatible With Secondary Licenses, this
+    License permits You to additionally distribute such Covered Software
+    under the terms of such Secondary License(s), so that the recipient of
+    the Larger Work may, at their option, further distribute the Covered
+    Software under the terms of either this License or such Secondary
+    License(s).
+    .
+    3.4. Notices
+    .
+    You may not remove or alter the substance of any license notices
+    (including copyright notices, patent notices, disclaimers of warranty,
+    or limitations of liability) contained within the Source Code Form of
+    the Covered Software, except that You may alter any license notices to
+    the extent required to remedy known factual inaccuracies.
+    .
+    3.5. Application of Additional Terms
+    .
+    You may choose to offer, and to charge a fee for, warranty, support,
+    indemnity or liability obligations to one or more recipients of Covered
+    Software. However, You may do so only on Your own behalf, and not on
+    behalf of any Contributor. You must make it absolutely clear that any
+    such warranty, support, indemnity, or liability obligation is offered by
+    You alone, and You hereby agree to indemnify every Contributor for any
+    liability incurred by such Contributor as a result of warranty, support,
+    indemnity or liability terms You offer. You may include additional
+    disclaimers of warranty and limitations of liability specific to any
+    jurisdiction.
+    .
+    4. Inability to Comply Due to Statute or Regulation
+    ---------------------------------------------------
+    .
+    If it is impossible for You to comply with any of the terms of this
+    License with respect to some or all of the Covered Software due to
+    statute, judicial order, or regulation then You must: (a) comply with
+    the terms of this License to the maximum extent possible; and (b)
+    describe the limitations and the code they affect. Such description must
+    be placed in a text file included with all distributions of the Covered
+    Software under this License. Except to the extent prohibited by statute
+    or regulation, such description must be sufficiently detailed for a
+    recipient of ordinary skill to be able to understand it.
+    .
+    5. Termination
+    --------------
+    .
+    5.1. The rights granted under this License will terminate automatically
+    if You fail to comply with any of its terms. However, if You become
+    compliant, then the rights granted under this License from a particular
+    Contributor are reinstated (a) provisionally, unless and until such
+    Contributor explicitly and finally terminates Your grants, and (b) on an
+    ongoing basis, if such Contributor fails to notify You of the
+    non-compliance by some reasonable means prior to 60 days after You have
+    come back into compliance. Moreover, Your grants from a particular
+    Contributor are reinstated on an ongoing basis if such Contributor
+    notifies You of the non-compliance by some reasonable means, this is the
+    first time You have received notice of non-compliance with this License
+    from such Contributor, and You become compliant prior to 30 days after
+    Your receipt of the notice.
+    .
+    5.2. If You initiate litigation against any entity by asserting a patent
+    infringement claim (excluding declaratory judgment actions,
+    counter-claims, and cross-claims) alleging that a Contributor Version
+    directly or indirectly infringes any patent, then the rights granted to
+    You by any and all Contributors for the Covered Software under Section
+    2.1 of this License shall terminate.
+    .
+    5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+    end user license agreements (excluding distributors and resellers) which
+    have been validly granted by You or Your distributors under this License
+    prior to termination shall survive termination.
+    .
+    ************************************************************************
+    *                                                                      *
+    *  6. Disclaimer of Warranty                                           *
+    *  -------------------------                                           *
+    *                                                                      *
+    *  Covered Software is provided under this License on an "as is"       *
+    *  basis, without warranty of any kind, either expressed, implied, or  *
+    *  statutory, including, without limitation, warranties that the       *
+    *  Covered Software is free of defects, merchantable, fit for a        *
+    *  particular purpose or non-infringing. The entire risk as to the     *
+    *  quality and performance of the Covered Software is with You.        *
+    *  Should any Covered Software prove defective in any respect, You     *
+    *  (not any Contributor) assume the cost of any necessary servicing,   *
+    *  repair, or correction. This disclaimer of warranty constitutes an   *
+    *  essential part of this License. No use of any Covered Software is   *
+    *  authorized under this License except under this disclaimer.         *
+    *                                                                      *
+    ************************************************************************
+    .
+    ************************************************************************
+    *                                                                      *
+    *  7. Limitation of Liability                                          *
+    *  --------------------------                                          *
+    *                                                                      *
+    *  Under no circumstances and under no legal theory, whether tort      *
+    *  (including negligence), contract, or otherwise, shall any           *
+    *  Contributor, or anyone who distributes Covered Software as          *
+    *  permitted above, be liable to You for any direct, indirect,         *
+    *  special, incidental, or consequential damages of any character      *
+    *  including, without limitation, damages for lost profits, loss of    *
+    *  goodwill, work stoppage, computer failure or malfunction, or any    *
+    *  and all other commercial damages or losses, even if such party      *
+    *  shall have been informed of the possibility of such damages. This   *
+    *  limitation of liability shall not apply to liability for death or   *
+    *  personal injury resulting from such party's negligence to the       *
+    *  extent applicable law prohibits such limitation. Some               *
+    *  jurisdictions do not allow the exclusion or limitation of           *
+    *  incidental or consequential damages, so this exclusion and          *
+    *  limitation may not apply to You.                                    *
+    *                                                                      *
+    ************************************************************************
+    .
+    8. Litigation
+    -------------
+    .
+    Any litigation relating to this License may be brought only in the
+    courts of a jurisdiction where the defendant maintains its principal
+    place of business and such litigation shall be governed by laws of that
+    jurisdiction, without reference to its conflict-of-law provisions.
+    Nothing in this Section shall prevent a party's ability to bring
+    cross-claims or counter-claims.
+    .
+    9. Miscellaneous
+    ----------------
+    .
+    This License represents the complete agreement concerning the subject
+    matter hereof. If any provision of this License is held to be
+    unenforceable, such provision shall be reformed only to the extent
+    necessary to make it enforceable. Any law or regulation which provides
+    that the language of a contract shall be construed against the drafter
+    shall not be used to construe this License against a Contributor.
+    .
+    10. Versions of the License
+    ---------------------------
+    .
+    10.1. New Versions
+    .
+    Mozilla Foundation is the license steward. Except as provided in Section
+    10.3, no one other than the license steward has the right to modify or
+    publish new versions of this License. Each version will be given a
+    distinguishing version number.
+    .
+    10.2. Effect of New Versions
+    .
+    You may distribute the Covered Software under the terms of the version
+    of the License under which You originally received the Covered Software,
+    or under the terms of any subsequent version published by the license
+    steward.
+    .
+    10.3. Modified Versions
+    .
+    If you create software not governed by this License, and you want to
+    create a new license for such software, you may create and use a
+    modified version of this License if you rename the license and remove
+    any references to the name of the license steward (except to note that
+    such modified license differs from this License).
+    .
+    10.4. Distributing Source Code Form that is Incompatible With Secondary
+    Licenses
+    .
+    If You choose to distribute Source Code Form that is Incompatible With
+    Secondary Licenses under the terms of this version of the License, the
+    notice described in Exhibit B of this License must be attached.
+    .
+    Exhibit A - Source Code Form License Notice
+    -------------------------------------------
+    .
+    This Source Code Form is subject to the terms of the Mozilla Public
+    License, v. 2.0. If a copy of the MPL was not distributed with this
+    file, You can obtain one at http://mozilla.org/MPL/2.0/.
+    .
+    If it is not possible or desirable to put the notice in a particular
+    file, then You may include the notice in a location (such as a LICENSE
+    file in a relevant directory) where a recipient would be likely to look
+    for such a notice.
+    .
+    You may add additional accurate notices of copyright ownership.
+    .
+    Exhibit B - "Incompatible With Secondary Licenses" Notice
+    ---------------------------------------------------------
+    .
+    This Source Code Form is "Incompatible With Secondary Licenses", as
+    defined by the Mozilla Public License, v. 2.0.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/NAMESPACE	(revision 2476)
@@ -0,0 +1,18 @@
+useDynLib(RcppEigen)
+
+importClassesFrom("Matrix", "dgCMatrix", "dgeMatrix", "dsCMatrix", "dtCMatrix")
+importFrom(Rcpp, "evalCpp")
+importFrom(utils, "packageDescription", "package.skeleton")
+importFrom(stats, "model.frame", "model.matrix", "model.response", "fitted", "coef", "printCoefmat", "pt")
+#exportPattern("^[[:alpha:]]+")
+export(fastLm,
+       fastLmPure,
+       RcppEigen.package.skeleton
+       )
+
+S3method(fastLm, default)
+S3method(fastLm, formula)
+S3method(predict, fastLm)
+S3method(print, fastLm)
+S3method(summary, fastLm)
+S3method(print, summary.fastLm)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/R/RcppEigen.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/R/RcppEigen.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/R/RcppEigen
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/R/RcppEigen	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/R/RcppEigen	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/R/RcppEigen.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/R/RcppEigen.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.wrap.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.wrap.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.wrap.R	(revision 2476)
@@ -0,0 +1,344 @@
+#
+# Copyright (C) 2012 - 2013  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of RcppEigen.
+#
+# RcppEigen is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# RcppEigen is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+incl <- '
+// double
+typedef Eigen::ArrayXd                   Ar1;
+typedef Eigen::Map<Ar1>                 MAr1;
+typedef Eigen::ArrayXXd                  Ar2;
+typedef Eigen::Map<Ar2>                 MAr2;
+typedef Eigen::MatrixXd                  Mat;
+typedef Eigen::Map<Mat>                 MMat;
+typedef Eigen::VectorXd                  Vec;
+typedef Eigen::Map<Vec>                 MVec;
+// integer
+typedef Eigen::ArrayXi                  iAr1;
+typedef Eigen::Map<iAr1>               MiAr1;
+typedef Eigen::ArrayXXi                 iAr2;
+typedef Eigen::Map<iAr2>               MiAr2;
+typedef Eigen::MatrixXi                 iMat;
+typedef Eigen::Map<iMat>               MiMat;
+typedef Eigen::VectorXi                 iVec;
+typedef Eigen::Map<iVec>               MiVec;
+// unsigned integer
+typedef Eigen::Array<unsigned int, Eigen::Dynamic, 1>                   uiAr1;
+typedef Eigen::Map<uiAr1>                                              MuiAr1;
+typedef Eigen::Array<unsigned int, Eigen::Dynamic, Eigen::Dynamic>      uiAr2;
+typedef Eigen::Map<uiAr2>                                              MuiAr2;
+typedef Eigen::Matrix<unsigned int, Eigen::Dynamic, Eigen::Dynamic>     uiMat;
+typedef Eigen::Map<uiMat>                                              MuiMat;
+typedef Eigen::Matrix<unsigned int, Eigen::Dynamic, 1>                  uiVec;
+typedef Eigen::Map<uiVec>                                              MuiVec;
+// float
+typedef Eigen::ArrayXf                  fAr1;
+typedef Eigen::Map<fAr1>               MfAr1;
+typedef Eigen::ArrayXXf                 fAr2;
+typedef Eigen::Map<fAr2>               MfAr2;
+typedef Eigen::MatrixXf                 fMat;
+typedef Eigen::Map<fMat>               MfMat;
+typedef Eigen::VectorXf                 fVec;
+typedef Eigen::Map<fVec>               MfVec;
+// complex double
+typedef Eigen::ArrayXcd                cdAr1;
+typedef Eigen::Map<cdAr1>             McdAr1;
+typedef Eigen::ArrayXXcd               cdAr2;
+typedef Eigen::Map<cdAr2>             McdAr2;
+typedef Eigen::MatrixXcd               cdMat;
+typedef Eigen::Map<cdMat>             McdMat;
+typedef Eigen::VectorXcd               cdVec;
+typedef Eigen::Map<cdVec>             McdVec;
+'
+
+definitions <- list(
+    "wrap_vectors" = list(signature(),
+    '
+    List vecs = List::create(
+        _["Vec<complex>"]       = cdVec::Zero(5),
+        _["Vec<double>"]        = Vec::Zero(5),
+        _["Vec<float>"]         = fVec::Zero(5),
+        _["Vec<int>"]           = iVec::Zero(5),
+        _["Vec<unsigned int>"]  = uiVec::Zero(5)
+    );
+
+    // A VectorX<T> behaves as a matrix with one column but is converted to
+    // a vector object in R, not a matrix of one column.  The distinction is
+    // that VectorX<T> objects are defined at compile time to have one column,
+    // whereas a MatrixX<T> has a dynamic number of columns that is set to 1
+    // during execution of the code.  A MatrixX<T> object can be resized to have
+    // a different number of columns.  A VectorX<T> object cannot.
+
+    List cols = List::create(
+        _["Col<complex>"]       = cdMat::Zero(5, 1),
+        _["Col<double>"]        = Mat::Zero(5, 1),
+        _["Col<float>"]         = fMat::Zero(5, 1),
+        _["Col<int>"]           = iMat::Zero(5, 1),
+        _["Col<unsigned int>"]  = uiMat::Zero(5, 1)
+    );
+
+    List rows = List::create(
+        _["Row<complex>"]       = Eigen::RowVectorXcd::Zero(5),
+        _["Row<double>"]        = Eigen::RowVectorXd::Zero(5),
+        _["Row<float>"]         = Eigen::RowVectorXf::Zero(5),
+        _["Row<int>"]           = Eigen::RowVectorXi::Zero(5),
+        _["Row<unsigned int>"]  = Eigen::Matrix<unsigned int, 1, Eigen::Dynamic>::Zero(5)
+    );
+
+    List matrices = List::create(
+        _["Mat<complex>"]       = cdMat::Identity(3, 3),
+        _["Mat<double>"]        = Mat::Identity(3, 3),
+        _["Mat<float>"]         = fMat::Identity(3, 3),
+        _["Mat<int>"]           = iMat::Identity(3, 3),
+        _["Mat<unsigned int>"]  = uiMat::Identity(3, 3)
+    );
+
+    // ArrayXX<t> objects have the same structure as matrices but allow
+    // componentwise arithmetic.  A * B is matrix multiplication for
+    // matrices and componentwise multiplication for arrays.
+    List arrays2 = List::create(
+        _["Arr2<complex>"]      = cdAr2::Zero(3, 3),
+        _["Arr2<double>"]       = Ar2::Zero(3, 3),
+        _["Arr2<float>"]        = fAr2::Zero(3, 3),
+        _["Arr2<int>"]          = iAr2::Zero(3, 3),
+        _["Arr2<unsigned int>"] = uiAr2::Zero(3, 3)
+    );
+
+    // ArrayX<t> objects have the same structure as VectorX<T> objects
+    // but allow componentwise arithmetic, including functions like exp, log,
+    // sqrt, ...
+    List arrays1 = List::create(
+        _["Arr1<complex>"]      = cdAr1::Zero(5),
+        _["Arr1<double>"]       = Ar1::Zero(5),
+        _["Arr1<float>"]        = fAr1::Zero(5),
+        _["Arr1<int>"]          = iAr1::Zero(5),
+        _["Arr1<unsigned int>"] = uiAr1::Zero(5)
+    );
+
+    List operations = List::create(
+        _["Op_seq"]  = Eigen::ArrayXd::LinSpaced(6, 1, 10),  // arguments are length.out, start, end
+        _["Op_log"]  = Eigen::ArrayXd::LinSpaced(6, 1, 10).log(),
+        _["Op_exp"]  = Eigen::ArrayXd::LinSpaced(6, 1, 10).exp(),
+        _["Op_sqrt"] = Eigen::ArrayXd::LinSpaced(6, 1, 10).sqrt(),
+        _["Op_cos"]  = Eigen::ArrayXd::LinSpaced(6, 1, 10).cos()
+    );
+
+    List output = List::create(
+        _["vectors : VectorX<T>"]   = vecs,
+        _["matrices : MatrixX<T>"]  = matrices,
+        _["rows : RowVectorX<T>"]   = rows,
+        _["columns : MatrixX<T>"]   = cols,
+        _["arrays2d : ArrayXX<T>"]  = arrays2,
+        _["arrays1d : ArrayX<T>"]   = arrays1,
+        _["operations : ArrayXd"]   = operations
+        );
+    return output;
+    '),
+
+
+    "as_Vec" = list(signature(input_ = "list"),
+    '
+    List input(input_) ;
+
+    // Column vector
+    iVec       m1 = input[0] ; /* implicit as */
+    Vec        m2 = input[1] ; /* implicit as */
+    uiVec      m3 = input[0] ; /* implicit as */
+    fVec       m4 = input[1] ; /* implicit as */
+
+    // Row vector
+    Eigen::Matrix<int, 1, Eigen::Dynamic>          m5 = input[0] ; /* implicit as */
+    Eigen::Matrix<double, 1, Eigen::Dynamic>       m6 = input[1] ; /* implicit as */
+    Eigen::Matrix<unsigned int, 1, Eigen::Dynamic> m7 = input[0] ; /* implicit as */
+    Eigen::Matrix<float, 1, Eigen::Dynamic>        m8 = input[1] ; /* implicit as */
+
+    // Mapped vector
+    MiVec      m9 = input[0] ; /* implicit as */
+    MVec      m10 = input[1] ; /* implicit as */
+
+    List res = List::create(m1.sum(), m2.sum(), m3.sum(), m4.sum(),
+                            m5.sum(), m6.sum(), m7.sum(), m8.sum(),
+                            m9.sum(), m10.sum());
+
+    return res ;
+
+    '),
+
+
+    "as_Array" = list(signature(input_ = "list"),
+    '
+    List input(input_) ;
+
+    // Column array
+    iAr1       m1 = input[0] ; /* implicit as */
+    Ar1        m2 = input[1] ; /* implicit as */
+    uiAr1      m3 = input[0] ; /* implicit as */
+    fAr1       m4 = input[1] ; /* implicit as */
+
+    // Row array
+    Eigen::Array<int, 1, Eigen::Dynamic>           m5 = input[0] ; /* implicit as */
+    Eigen::Array<double, 1, Eigen::Dynamic>        m6 = input[1] ; /* implicit as */
+    Eigen::Array<unsigned int, 1, Eigen::Dynamic>  m7 = input[0] ; /* implicit as */
+    Eigen::Array<float, 1, Eigen::Dynamic>         m8 = input[1] ; /* implicit as */
+
+    // Mapped array
+    MiAr1      m9 = input[0] ; /* implicit as */
+    MAr1      m10 = input[1] ; /* implicit as */
+
+    List res = List::create(m1.sum(), m2.sum(), m3.sum(), m4.sum(),
+                            m5.sum(), m6.sum(), m7.sum(), m8.sum(),
+                            m9.sum(), m10.sum());
+
+    return res ;
+
+    '),
+
+
+    "as_Mat" = list(signature(input_ = "list"),
+    '
+    List input(input_) ;
+
+    // Copy to matrix
+    iMat       m1 = input[0] ; /* implicit as */
+    Mat        m2 = input[1] ; /* implicit as */
+    uiMat      m3 = input[0] ; /* implicit as */
+    fMat       m4 = input[1] ; /* implicit as */
+
+    // Mapped matrix
+    MiMat      m5 = input[0] ; /* implicit as */
+    MMat       m6 = input[1] ; /* implicit as */
+
+    List res = List::create(m1.sum(), m2.sum(), m3.sum(), m4.sum(),
+                            m5.sum(), m6.sum());
+
+    return res ;
+
+    '),
+
+
+    "as_Array2D" = list(signature(input_ = "list"),
+    '
+    List input(input_) ;
+
+    // Copy to 2D array
+    iAr2       m1 = input[0] ; /* implicit as */
+    Ar2        m2 = input[1] ; /* implicit as */
+    uiAr2      m3 = input[0] ; /* implicit as */
+    fAr2       m4 = input[1] ; /* implicit as */
+
+    // Mapped 2D array
+    MiAr2      m5 = input[0] ; /* implicit as */
+    MAr2       m6 = input[1] ; /* implicit as */
+
+    List res = List::create(m1.sum(), m2.sum(), m3.sum(), m4.sum(),
+                            m5.sum(), m6.sum());
+
+    return res ;
+
+    ')
+    )
+
+.setUp <- function() {
+    suppressMessages(require(inline))
+    suppressMessages(require(RcppEigen))
+    cxxargs <- ifelse(Rcpp:::capabilities()[["initializer lists"]],
+                      "-std=c++0x","")
+    tests <- ".rcppeigen.wrap"
+    if( ! exists( tests, globalenv() )) {
+        fun <- RcppEigen:::compile_unit_tests(definitions,
+                                              includes=incl,
+                                              cxxargs = cxxargs)
+        names(fun) <- names(definitions)
+        assign(tests, fun, globalenv())
+    }
+}
+
+
+test.wrapVectors <- function() {
+    res <- .rcppeigen.wrap$wrap_vectors()
+
+    checkEquals(res[[1]][[1]], complex(5))
+    checkEquals(res[[1]][[2]], double(5))
+    checkEquals(res[[1]][[3]], double(5))
+    checkEquals(res[[1]][[4]], integer(5))
+    checkEquals(res[[1]][[5]], integer(5))
+
+    checkEquals(res[[2]][[1]], (1+0i) * diag(nr=3L))
+    checkEquals(res[[2]][[2]], diag(nr=3L))
+    checkEquals(res[[2]][[3]], diag(nr=3L))
+    checkEquals(res[[2]][[4]], matrix(as.integer((diag(nr=3L))),nr=3L))
+    checkEquals(res[[2]][[5]], matrix(as.integer((diag(nr=3L))),nr=3L))
+
+    checkEquals(res[[3]][[1]], matrix(complex(5), nr=1L))
+    checkEquals(res[[3]][[2]], matrix(numeric(5), nr=1L))
+    checkEquals(res[[3]][[3]], matrix(numeric(5), nr=1L))
+    checkEquals(res[[3]][[4]], matrix(integer(5), nr=1L))
+    checkEquals(res[[3]][[5]], matrix(integer(5), nr=1L))
+
+    checkEquals(res[[4]][[1]], as.matrix(complex(5)))
+    checkEquals(res[[4]][[2]], as.matrix(numeric(5)))
+    checkEquals(res[[4]][[3]], as.matrix(numeric(5)))
+    checkEquals(res[[4]][[4]], as.matrix(integer(5)))
+    checkEquals(res[[4]][[5]], as.matrix(integer(5)))
+
+    checkEquals(res[[5]][[1]], matrix(complex(9L), nc=3L))
+    checkEquals(res[[5]][[2]], matrix(numeric(9L), nc=3L))
+    checkEquals(res[[5]][[3]], matrix(numeric(9L), nc=3L))
+    checkEquals(res[[5]][[4]], matrix(integer(9L), nc=3L))
+    checkEquals(res[[5]][[5]], matrix(integer(9L), nc=3L))
+
+    checkEquals(res[[6]][[1]], complex(5))
+    checkEquals(res[[6]][[2]], double(5))
+    checkEquals(res[[6]][[3]], double(5))
+    checkEquals(res[[6]][[4]], integer(5))
+    checkEquals(res[[6]][[5]], integer(5))
+
+    oneTen <- seq(1, 10, length.out=6L)
+
+    checkEquals(res[[7]][[1]], oneTen)
+    checkEquals(res[[7]][[2]], log(oneTen))
+    checkEquals(res[[7]][[3]], exp(oneTen))
+    checkEquals(res[[7]][[4]], sqrt(oneTen))
+    checkEquals(res[[7]][[5]], cos(oneTen))
+}
+
+test.asVec <- function() {
+    res <- .rcppeigen.wrap$as_Vec(list(1:10, as.numeric(1:10)))
+
+    checkEquals(unlist(res), rep.int(55, 10L))
+}
+
+test.asArray <- function() {
+    res <- .rcppeigen.wrap$as_Array(list(1:10, as.numeric(1:10)))
+
+    checkEquals(unlist(res), rep.int(55, 10L))
+}
+
+test.asMat <- function() {
+    integer_mat <- matrix(as.integer(diag(nrow = 5L)))
+    numeric_mat <- diag(nrow = 5L)
+    res <- .rcppeigen.wrap$as_Mat(list(integer_mat, numeric_mat))
+
+    checkEquals(unlist(res), rep.int(5, 6L))
+}
+
+test.asArray2D <- function() {
+    integer_mat <- matrix(as.integer(diag(nrow = 5L)))
+    numeric_mat <- diag(nrow = 5L)
+    res <- .rcppeigen.wrap$as_Array2D(list(integer_mat, numeric_mat))
+
+    checkEquals(unlist(res), rep.int(5, 6L))
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.transform.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.transform.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.transform.R	(revision 2476)
@@ -0,0 +1,87 @@
+#
+# Copyright (C) 2012 - 2013  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of RcppEigen.
+#
+# RcppEigen is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# RcppEigen is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+incl <- '
+typedef Eigen::ArrayXd                   Ar1;
+typedef Eigen::Map<Ar1>                 MAr1;
+typedef Eigen::ArrayXXd                  Ar2;
+typedef Eigen::Map<Ar2>                 MAr2;
+typedef Eigen::MatrixXd                  Mat;
+typedef Eigen::Map<Mat>                 MMat;
+typedef Eigen::VectorXd                  Vec;
+typedef Eigen::Map<Vec>                 MVec;
+'
+
+definitions <- list(
+    "ar1_unbounded" = list(signature(x_="numeric"),
+    '
+    MAr1           x(as<MAr1>(x_));
+
+    return List::create(Named("abs",    x.abs()),
+                        Named("abs2",   x.abs2()),
+                        Named("exp",    x.exp()),
+                        Named("cos",    x.cos()));
+    '),
+    "ar2_unbounded" = list(signature(X_="matrix"),
+    '
+    MAr2           X(as<MAr2>(X_));
+
+    return List::create(Named("abs",    X.abs()),
+                        Named("abs2",   X.abs2()),
+                        Named("exp",    X.exp()),
+                        Named("cos",    X.cos()));
+    ')
+    )
+
+.setUp <- function() {
+    suppressMessages(require(inline))
+    suppressMessages(require(RcppEigen))
+    cxxargs <- ifelse(Rcpp:::capabilities()[["initializer lists"]],
+                      "-std=c++0x","")
+    tests <- ".rcppeigen.trans"
+    if( ! exists( tests, globalenv() )) {
+        fun <- RcppEigen:::compile_unit_tests(definitions,
+                                              includes=incl,
+                                              cxxargs = cxxargs)
+        names(fun) <- names(definitions)
+        assign(tests, fun, globalenv())
+    }
+}
+
+test.transformationAr1 <- function() {
+    set.seed(1234321)
+    x <- rnorm(10L)
+
+    res <- .rcppeigen.trans$ar1_unbounded(x)
+    checkEquals(res$abs,  abs(x))
+    checkEquals(res$abs2, x * x)
+    checkEquals(res$exp,  exp(x))
+    checkEquals(res$cos,  cos(x))
+}
+
+test.transformationAr2 <- function() {
+    set.seed(1234321)
+    X <- matrix(rnorm(100L), nrow = 10, ncol = 10)
+
+    res <- .rcppeigen.trans$ar2_unbounded(X)
+    checkEquals(res$abs,  abs(X))
+    checkEquals(res$abs2, X * X)
+    checkEquals(res$exp,  exp(X))
+    checkEquals(res$cos,  cos(X))
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.RcppEigen.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.RcppEigen.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.RcppEigen.R	(revision 2476)
@@ -0,0 +1,269 @@
+#!/usr/bin/r -t
+#
+# Copyright (C)      2011 Douglas Bates, Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of RcppEigen
+#
+# RcppEigen is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# RcppEigen is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with RcppEigen.  If not, see <http://www.gnu.org/licenses/>.
+
+.setUp <- function(){
+    suppressMessages(require(inline))
+}
+
+test.wrap.R <- function(){
+
+    fx <- cxxfunction( , '
+
+    List vecs = List::create(
+        _["Vec<complex>"] = Eigen::VectorXcd::Zero(5),
+        _["Vec<double>"]  = Eigen::VectorXd::Zero(5),
+        _["Vec<float>"]   = Eigen::VectorXf::Zero(5),
+        _["Vec<int>"]     = Eigen::VectorXi::Zero(5)
+    );
+
+    // A VectorX<T> behaves as a matrix with one column but is converted to
+    // a vector object in R, not a matrix of one column.  The distinction is
+    // that VectorX<T> objects are defined at compile time to have one column,
+    // whereas a MatrixX<T> has a dynamic number of columns that is set to 1
+    // during execution of the code.  A MatrixX<T> object can be resized to have
+    // a different number of columns.  A VectorX<T> object cannot.
+    List cols = List::create(
+        _["Col<complex>"] = Eigen::MatrixXcd::Zero(5, 1),
+        _["Col<double>"]  = Eigen::MatrixXd::Zero(5, 1),
+        _["Col<float>"]   = Eigen::MatrixXf::Zero(5, 1),
+        _["Col<int>"]     = Eigen::MatrixXi::Zero(5, 1)
+    );
+
+    List rows = List::create(
+        _["Row<complex>"] = Eigen::RowVectorXcd::Zero(5),
+        _["Row<double>"]  = Eigen::RowVectorXd::Zero(5),
+        _["Row<float>"]   = Eigen::RowVectorXf::Zero(5),
+        _["Row<int>"]     = Eigen::RowVectorXi::Zero(5)
+    );
+
+    List matrices = List::create(
+        _["Mat<complex>"] = Eigen::MatrixXcd::Identity(3, 3),
+        _["Mat<double>"]  = Eigen::MatrixXd::Identity(3, 3),
+        _["Mat<float>"]   = Eigen::MatrixXf::Identity(3, 3),
+        _["Mat<int>"]     = Eigen::MatrixXi::Identity(3, 3)
+    );
+
+    // ArrayXX<t> objects have the same structure as matrices but allow
+    // componentwise arithmetic.  A * B is matrix multiplication for
+    // matrices and componentwise multiplication for arrays.
+    List arrays2 = List::create(
+        _["Arr2<complex>"] = Eigen::ArrayXXcd::Zero(3, 3),
+        _["Arr2<double>"]  = Eigen::ArrayXXd::Zero(3, 3),
+        _["Arr2<float>"]   = Eigen::ArrayXXf::Zero(3, 3),
+        _["Arr2<int>"]     = Eigen::ArrayXXi::Zero(3, 3)
+    );
+
+    // ArrayX<t> objects have the same structure as VectorX<T> objects
+    // but allow componentwise arithmetic, including functions like exp, log,
+    // sqrt, ...
+    List arrays1 = List::create(
+        _["Arr1<complex>"] = Eigen::ArrayXcd::Zero(5),
+        _["Arr1<double>"]  = Eigen::ArrayXd::Zero(5),
+        _["Arr1<float>"]   = Eigen::ArrayXf::Zero(5),
+        _["Arr1<int>"]     = Eigen::ArrayXi::Zero(5)
+    );
+
+    List operations = List::create(
+        _["Op_seq"]  = Eigen::ArrayXd::LinSpaced(6, 1, 10),  // arguments are length.out, start, end
+        _["Op_log"]  = Eigen::ArrayXd::LinSpaced(6, 1, 10).log(),
+        _["Op_exp"]  = Eigen::ArrayXd::LinSpaced(6, 1, 10).exp(),
+        _["Op_sqrt"] = Eigen::ArrayXd::LinSpaced(6, 1, 10).sqrt(),
+        _["Op_cos"]  = Eigen::ArrayXd::LinSpaced(6, 1, 10).cos()
+    );
+
+    List output = List::create(
+    	_["vectors : VectorX<T>"]   = vecs,
+    	_["matrices : MatrixX<T>"]  = matrices,
+    	_["rows : RowVectorX<T>"]   = rows,
+    	_["columns : MatrixX<T>"]   = cols,
+        _["arrays2d : ArrayXX<T>"]  = arrays2,
+        _["arrays1d : ArrayX<T>"]   = arrays1,
+        _["operations : ArrayXd"]   = operations
+        );
+
+    return output ;
+	' , plugin = "RcppEigen" )
+
+    res <- fx()
+
+    checkEquals( res[["vectors : VectorX<T>"]][["Vec<complex>"]], complex(5), msg = "VectorXcd::Zero(5)")
+    checkEquals( res[["vectors : VectorX<T>"]][["Vec<double>"]], double(5), msg = "VectorXd::Zero(5)")
+    checkEquals( res[["vectors : VectorX<T>"]][["Vec<float>"]], double(5), msg = "VectorXf::Zero(5)")
+    checkEquals( res[["vectors : VectorX<T>"]][["Vec<int>"]], integer(5), msg = "VectorXi::Zero(5)")
+
+    checkEquals( res[["matrices : MatrixX<T>"]][["Mat<complex>"]], (1+0i) * diag(nr=3L), msg = "MatrixXcd::Identity(3,3)")
+    checkEquals( res[["matrices : MatrixX<T>"]][["Mat<double>"]], diag(nr=3L), msg = "MatrixXd::Identity(3,3)")
+    checkEquals( res[["matrices : MatrixX<T>"]][["Mat<float>"]], diag(nr=3L), msg = "MatrixXf::Identity(3,3)")
+    checkEquals( res[["matrices : MatrixX<T>"]][["Mat<int>"]], matrix(as.integer((diag(nr=3L))),nr=3L), msg = "MatrixXi::Identity(3,3)")
+
+    checkEquals( res[["rows : RowVectorX<T>"]][["Row<complex>"]], matrix(complex(5), nr=1L), msg = "RowVectorXcd::Zero(5)")
+    checkEquals( res[["rows : RowVectorX<T>"]][["Row<double>"]], matrix(numeric(5), nr=1L), msg = "RowVectorXd::Zero(5)")
+    checkEquals( res[["rows : RowVectorX<T>"]][["Row<float>"]], matrix(numeric(5), nr=1L), msg = "RowVectorXf::Zero(5)")
+    checkEquals( res[["rows : RowVectorX<T>"]][["Row<int>"]], matrix(integer(5), nr=1L), msg = "RowVectorXi::Zero(5)")
+
+    checkEquals( res[["columns : MatrixX<T>"]][["Col<complex>"]], as.matrix(complex(5)), msg = "MatrixXcd::Zero(5, 1)")
+    checkEquals( res[["columns : MatrixX<T>"]][["Col<double>"]], as.matrix(numeric(5)), msg = "MatrixXd::Zero(5, 1)")
+    checkEquals( res[["columns : MatrixX<T>"]][["Col<float>"]], as.matrix(numeric(5)), msg = "MatrixXf::Zero(5, 1)")
+    checkEquals( res[["columns : MatrixX<T>"]][["Col<int>"]], as.matrix(integer(5)), msg = "MatrixXi::Zero(5, 1)")
+
+    checkEquals( res[["arrays2d : ArrayXX<T>"]][["Arr2<complex>"]], matrix(complex(9L), nc=3L), msg = "ArrayXXcd::Zero(3,3)")
+    checkEquals( res[["arrays2d : ArrayXX<T>"]][["Arr2<double>"]], matrix(numeric(9L), nc=3L), msg = "ArrayXXd::Zero(3,3)")
+    checkEquals( res[["arrays2d : ArrayXX<T>"]][["Arr2<float>"]], matrix(numeric(9L), nc=3L), msg = "ArrayXXf::Zero(3,3)")
+    checkEquals( res[["arrays2d : ArrayXX<T>"]][["Arr2<int>"]], matrix(integer(9L), nc=3L), msg = "ArrayXXi::Zero(3,3)")
+
+    checkEquals( res[["arrays1d : ArrayX<T>"]][["Arr1<complex>"]], complex(5), msg = "ArrayXcd::Zero(5)")
+    checkEquals( res[["arrays1d : ArrayX<T>"]][["Arr1<double>"]], double(5), msg = "ArrayXd::Zero(5)")
+    checkEquals( res[["arrays1d : ArrayX<T>"]][["Arr1<float>"]], double(5), msg = "ArrayXf::Zero(5)")
+    checkEquals( res[["arrays1d : ArrayX<T>"]][["Arr1<int>"]], integer(5), msg = "ArrayXi::Zero(5)")
+
+    oneTen <- seq(1, 10, length.out=6L)
+
+    checkEquals( res[["operations : ArrayXd"]][["Op_seq"]],  oneTen,       msg = "Op_seq")
+    checkEquals( res[["operations : ArrayXd"]][["Op_log"]],  log(oneTen),  msg = "Op_log")
+    checkEquals( res[["operations : ArrayXd"]][["Op_exp"]],  exp(oneTen),  msg = "Op_exp")
+    checkEquals( res[["operations : ArrayXd"]][["Op_sqrt"]], sqrt(oneTen), msg = "Op_sqrt")
+    checkEquals( res[["operations : ArrayXd"]][["Op_cos"]],  cos(oneTen),  msg = "Op_cos")
+
+}
+
+test.as.Vec <- function(){
+    fx <- cxxfunction( signature(input_ = "list" ) , '
+
+    List input(input_) ;
+    Eigen::VectorXi                                m1 = input[0] ; /* implicit as */
+    Eigen::VectorXd                                m2 = input[1] ; /* implicit as */
+    Eigen::Matrix<unsigned int, Eigen::Dynamic, 1> m3 = input[0] ; /* implicit as */
+    Eigen::VectorXf                                m4 = input[1] ; /* implicit as */
+
+    List res = List::create(m1.sum(), m2.sum(), m3.sum(), m4.sum());
+
+    return res ;
+
+    ', plugin = "RcppEigen" )
+
+    res <- fx( list( 1:10, as.numeric(1:10) ) )
+    checkEquals( unlist( res ), rep(55.0, 4 ), msg = "as<Vec>" )
+}
+
+test.as.MVec <- function(){
+    fx <- cxxfunction( signature(input_ = "list" ) , '
+
+    List input(input_) ;
+    const Eigen::Map<Eigen::VectorXi>   m1 = input[0] ; // maps share storage and do not allow conversion
+    const Eigen::Map<Eigen::VectorXd>   m2 = input[1] ; 
+
+    List res = List::create(m1.sum(), m2.sum());
+
+    return res ;
+
+    ', plugin = "RcppEigen" )
+
+    res <- fx( list( 1:10, as.numeric(1:10) ) )
+    checkEquals( unlist( res ), rep(55.0, 2 ), msg = "as<MVec>" )
+}
+
+test.as.MRowVec <- function(){
+    fx <- cxxfunction( signature(input_ = "list" ) , '
+
+    List input(input_) ;
+    const Eigen::Map<Eigen::RowVectorXi>   m1 = input[0] ; // maps share storage and do not allow conversion
+    const Eigen::Map<Eigen::RowVectorXd>   m2 = input[1] ; 
+
+    List res = List::create(m1.sum(), m2.sum());
+
+    return res ;
+
+    ', plugin = "RcppEigen" )
+
+    res <- fx( list( 1:10, as.numeric(1:10) ) )
+    checkEquals( unlist( res ), rep(55.0, 2 ), msg = "as<MRowVec>" )
+}
+
+
+test.as.MMat <- function(){
+    fx <- cxxfunction( signature(input_ = "list" ) , '
+
+    List input(input_) ;
+    const Eigen::Map<Eigen::MatrixXi>   m1 = input[0]; // maps share storage and do not allow conversion
+    const Eigen::Map<Eigen::MatrixXd>   m2 = input[1] ;
+// FIXME: Write a version of as specifically for complex matrices.
+//    const Eigen::Map<Eigen::MatrixXcd>  m3 = input[2] ; 
+
+    List res = List::create(m1.sum(), m2.sum());//, m3.sum());
+
+    return res ;
+
+    ', plugin = "RcppEigen" )
+
+    integer_mat <- matrix(as.integer(diag(nr=4L)), nc=4L)
+    numeric_mat <- diag(nr=5L)
+    complex_mat <- (1+0i) * diag(nr=5L)
+    res <- fx(list(integer_mat, numeric_mat, complex_mat))
+    checkEquals(unlist(res), c(4L, 5)#, 5+0i)
+                , msg = "as<MMat>" )
+}
+
+test.as.MSpMat <- function() {
+    suppressMessages(require("Matrix"))
+    data("KNex", package = "Matrix")
+    fx <- cxxfunction( signature(input_ = "list"), '
+    List input(input_) ;
+    const Eigen::MappedSparseMatrix<double>  m1 = input[0]; // maps share storage and do not allow conversion
+
+    List res = List::create(_["nnz"]   = m1.nonZeros(),
+                            _["nr"]    = m1.rows(),
+                            _["nc"]    = m1.cols(),
+                            _["inSz"]  = m1.innerSize(),
+                            _["outSz"] = m1.outerSize(),
+                            _["sum"]   = m1.sum());
+
+    return res ;
+
+    ', plugin = "RcppEigen" )
+
+    KNX <- KNex[[1]]
+    res <- fx(KNex)
+    checkEquals(unname(unlist(res)),
+                c(nnzero(KNX), nrow(KNX), ncol(KNX),  nrow(KNX), ncol(KNX), sum(KNX@x)),
+                msg = "as<MSPMatrix>")
+}
+
+test.as.SpMat <- function() {
+    suppressMessages(require("Matrix"))
+    data("KNex", package = "Matrix")
+    fx <- cxxfunction( signature(input_ = "list"), '
+    List input(input_) ;
+    const Eigen::SparseMatrix<double>  m1 = input[0];
+
+    List res = List::create(_["nnz"]   = m1.nonZeros(),
+                            _["nr"]    = m1.rows(),
+                            _["nc"]    = m1.cols(),
+                            _["inSz"]  = m1.innerSize(),
+                            _["outSz"] = m1.outerSize(),
+                            _["sum"]   = m1.sum());
+
+    return res ;
+    ', plugin = "RcppEigen" )
+
+    KNX <- KNex[[1]]
+    res <- fx(KNex)
+    checkEquals(unname(unlist(res)),
+                c(nnzero(KNX), nrow(KNX), ncol(KNX),  nrow(KNX), ncol(KNX), sum(KNX@x)),
+                msg = "as<MSPMatrix>")
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.sparse.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.sparse.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.sparse.R	(revision 2476)
@@ -0,0 +1,221 @@
+#!/usr/bin/r -t
+#
+# Copyright (C)      2011 Douglas Bates, Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of RcppEigen
+#
+# RcppEigen is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# RcppEigen is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with RcppEigen.  If not, see <http://www.gnu.org/licenses/>.
+
+.setUp <- function(){
+    suppressMessages(require(inline))
+}
+
+test.wrapSparse.double.R <- function(){
+
+    fx <- cxxfunction( , '
+
+    Eigen::SparseMatrix<double>  mm(9,3);
+    mm.reserve(9);
+    for (int j = 0; j < 3; ++j) {
+        mm.startVec(j);
+        for (int i = 3 * j; i < 3 * (j + 1); ++i)
+            mm.insertBack(i, j) = 1.;
+    }
+    mm.finalize();
+    return wrap(mm);
+' , plugin = "RcppEigen" )
+
+    res <- fx()
+    rr <- Matrix::t(as(gl(3,3), "sparseMatrix"))
+    colnames(rr) <- NULL
+    checkEquals( res, rr, msg = "wrap<SparseMatrix<double> >")
+}
+
+test.wrapSparse.double.ColMajor.R <- function(){
+
+    fx <- cxxfunction( , '
+
+    Eigen::SparseMatrix<double, Eigen::ColMajor>  mm(9,3);
+    mm.reserve(9);
+    for (int j = 0; j < 3; ++j) {
+        mm.startVec(j);
+        for (int i = 3 * j; i < 3 * (j + 1); ++i)
+            mm.insertBack(i, j) = 1.;
+    }
+    mm.finalize();
+    return wrap(mm);
+' , plugin = "RcppEigen" )
+
+    res <- fx()
+    rr <- Matrix::t(as(gl(3,3), "sparseMatrix"))
+    colnames(rr) <- NULL
+    checkEquals( res, rr, msg = "wrap<SparseMatrix<double, Eigen::ColMajor> >")
+}
+
+## test.wrapSparse.int.ColMajor.R <- function(){  ## classes not yet exported from Matrix
+
+##     fx <- cxxfunction( , '
+
+##     Eigen::SparseMatrix<int, Eigen::ColMajor>  mm(9,3);
+##     mm.reserve(9);
+##     for (int j = 0; j < 3; ++j) {
+##         mm.startVec(j);
+##         for (int i = 3 * j; i < 3 * (j + 1); ++i)
+##             mm.insertBack(i, j) = 1;
+##     }
+##     mm.finalize();
+##     return wrap(mm);
+## ' , plugin = "RcppEigen" )
+
+##     #res <- fx()
+##     #rr <- Matrix::t(as(gl(3,3), "sparseMatrix"))
+##     #colnames(rr) <- NULL
+##     #checkEquals( res, rr, msg = "wrap<SparseMatrix<double, Eigen::ColMajor> >")
+##     checkException( fx(), msg = "wrap<SparseMatrix<int, Eigen::ColMajor> >" )
+## }
+
+test.wrapSparse.double.RowMajor.R <- function(){
+
+    fx <- cxxfunction( , '
+
+    Eigen::SparseMatrix<double, Eigen::RowMajor>  mm(9,3);
+    mm.reserve(9);
+    for (int irow = 0; irow < 9; ++irow) {
+        mm.startVec(irow);
+        mm.insertBack(irow, irow / 3) = static_cast<double>( 9 - irow );
+    }
+    mm.finalize();
+    return wrap(mm);
+' , plugin = "RcppEigen" )
+
+    res <- fx()
+    rr <- new( "dgRMatrix", j=rep(0L:2L, each=3), p=0L:9L, x=as.numeric(9:1), Dim=c(9L,3L) )
+    colnames(rr) <- NULL
+    checkEquals( res, rr, msg = "wrap<SparseMatrix<double, Eigen::RowMajor> >")
+}
+
+## test.wrapSparse.int.RowMajor.R <- function(){
+
+##     fx <- cxxfunction( , '
+
+##     Eigen::SparseMatrix<int, Eigen::RowMajor>  mm(9,3);
+##     mm.reserve(9);
+##     for (int irow = 0; irow < 9; ++irow) {
+##         mm.startVec(irow);
+##         mm.insertBack(irow, irow / 3) = 9 - irow;
+##     }
+##     mm.finalize();
+##     return wrap(mm);
+## ' , plugin = "RcppEigen" )
+
+##     #res <- fx()
+##     #rr <- new( "igRMatrix", j=rep(0L:2L, each=3), p=0L:9L, x=9L:1L, Dim=c(9L,3L) )
+##     #colnames(rr) <- NULL
+##     #checkEquals( res, rr, msg = "wrap<SparseMatrix<int, Eigen::RowMajor> >")
+##     checkException( fx(), msg = "wrap<SparseMatrix<int, Eigen::RowMajor> >" )
+## }
+
+test.asSparse.double.ColMajor.R <- function(){
+
+    fx <- cxxfunction( sig=signature(R_mm="dgCMatrix"), '
+
+    Eigen::SparseMatrix<double, Eigen::ColMajor> mm = Rcpp::as<Eigen::SparseMatrix<double, Eigen::ColMajor> >( R_mm );
+    return wrap(mm);
+' , plugin = "RcppEigen" )
+
+    rr <- Matrix::t(as(gl(3,3), "sparseMatrix"))
+    colnames(rr) <- NULL
+    res <- fx( R_mm = rr )
+    checkEquals( res, rr, msg = "as<SparseMatrix<double, Eigen::ColMajor> >")
+}
+
+test.asMappedSparse.double.ColMajor.R <- function(){
+
+    fx <- cxxfunction( sig=signature(R_mm="dgCMatrix"), '
+
+    typedef Eigen::MappedSparseMatrix<double, Eigen::ColMajor> MapMat;
+    MapMat mm = Rcpp::as<MapMat>( R_mm );
+    return wrap(mm);
+' , plugin = "RcppEigen" )
+
+    rr <- Matrix::t(as(gl(3,3), "sparseMatrix"))
+    colnames(rr) <- NULL
+    res <- fx( R_mm = rr )
+    checkEquals( res, rr, msg = "as<MappedSparseMatrix<double, Eigen::ColMajor> >")
+}
+
+test.asSparse.double.RowMajor.R <- function(){
+    fx <- cxxfunction( sig=signature(R_mm="dgRMatrix"), '
+
+    Eigen::SparseMatrix<double, Eigen::RowMajor> mm = Rcpp::as<Eigen::SparseMatrix<double, Eigen::RowMajor> >( R_mm );
+    return wrap(mm);
+' , plugin = "RcppEigen" )
+
+    rr <- new( "dgRMatrix", j=rep(0L:2L, each=3), p=0L:9L, x=as.numeric(9:1), Dim=c(9L,3L) )
+    colnames(rr) <- NULL
+    res <- fx( R_mm = rr )
+    checkEquals( res, rr, msg = "as<SparseMatrix<double, Eigen::RowMajor> >")
+}
+
+test.asMappedSparse.double.RowMajor.R <- function(){
+    fx <- cxxfunction( sig=signature(R_mm="dgRMatrix"), '
+
+    typedef Eigen::MappedSparseMatrix<double, Eigen::RowMajor> MapMat;
+    MapMat mm = Rcpp::as<MapMat>( R_mm );
+    return wrap(mm);
+' , plugin = "RcppEigen" )
+
+    rr <- new( "dgRMatrix", j=rep(0L:2L, each=3), p=0L:9L, x=as.numeric(9:1), Dim=c(9L,3L) )
+    colnames(rr) <- NULL
+    res <- fx( R_mm = rr )
+    checkEquals( res, rr, msg = "as<MappedSparseMatrix<double, Eigen::RowMajor> >")
+}
+
+
+test.sparseCholesky.R <- function() {
+    suppressMessages(require("Matrix", character.only=TRUE))
+    data("KNex", package = "Matrix")
+
+    fx <- cxxfunction( signature(input_ = "list"), '
+    using Eigen::VectorXd;
+    using Eigen::MatrixXd;
+    using Eigen::Lower;
+    using Eigen::Map;
+    using Eigen::MappedSparseMatrix;
+    using Eigen::SparseMatrix;
+    using Eigen::SimplicialLDLT;
+    using Eigen::Success;
+
+    List input(input_);
+    const MappedSparseMatrix<double> m1 = input[0];
+    const Map<VectorXd>              v1 = input[1];
+    SparseMatrix<double>             m2(m1.cols(), m1.cols());
+    m2.selfadjointView<Lower>().rankUpdate(m1.adjoint());
+
+    SimplicialLDLT<SparseMatrix<double> > ff(m2);
+    VectorXd                        res = ff.solve(m1.adjoint() * v1);
+    
+    return List::create(_["res"]   = res,
+                        _["rows"]  = ff.rows(),
+                        _["cols"]  = ff.cols());
+',
+                      plugin = "RcppEigen")
+
+    rr <- fx(KNex)
+    checkEquals(rr[[1]], as.vector(solve(crossprod(KNex[[1]]),
+                                         crossprod(KNex[[1]], KNex[[2]])),
+                                   mode="numeric"),
+                "Cholmod solution")
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.solutions.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.solutions.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.solutions.R	(revision 2476)
@@ -0,0 +1,103 @@
+#
+# Copyright (C) 2012 - 2013  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of RcppEigen.
+#
+# RcppEigen is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# RcppEigen is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Rcpp.  If not, see <http://www.gnu.org/licenses/>.
+
+incl <- '
+typedef Eigen::ArrayXd                   Ar1;
+typedef Eigen::Map<Ar1>                 MAr1;
+typedef Eigen::ArrayXXd                  Ar2;
+typedef Eigen::Map<Ar2>                 MAr2;
+typedef Eigen::MatrixXd                  Mat;
+typedef Eigen::Map<Mat>                 MMat;
+typedef Eigen::VectorXd                  Vec;
+typedef Eigen::Map<Vec>                 MVec;
+typedef Eigen::PartialPivLU<Mat>        PPLU;
+typedef Eigen::ColPivHouseholderQR<Mat> CPQR;
+'
+
+definitions <- list(
+    "dense_PPLU" = list(signature(A_="matrix", b_="numeric"),
+    '
+    MMat           A(as<MMat>(A_));
+    MVec           b(as<MVec>(b_));
+    PPLU           lu(A);
+    Mat            Ainv(lu.inverse());
+    Vec            x(lu.solve(b));
+
+    return List::create(Named("A",    A),
+                        Named("Ainv", Ainv),
+                        Named("b",    b),
+                        Named("x",    x));
+    '),
+    "dense_CPQR" = list(signature(A_="matrix", b_="numeric"),
+    '
+    MMat           A(as<MMat>(A_));
+    MVec           b(as<MVec>(b_));
+    CPQR           qr(A);
+    Mat            Ainv(qr.inverse());
+    Vec            x(qr.solve(b));
+    return List::create(Named("Ainv", Ainv),
+                        Named("x",    x));
+    ')
+    )
+
+
+.setUp <- function() {
+    suppressMessages(require(inline))
+    suppressMessages(require(RcppEigen))
+    cxxargs <- ifelse(Rcpp:::capabilities()[["initializer lists"]],
+                      "-std=c++0x","")
+    tests <- ".rcppeigen.solve"
+    if( ! exists( tests, globalenv() )) {
+        fun <- RcppEigen:::compile_unit_tests(definitions,
+                                              includes=incl,
+                                              cxxargs = cxxargs)
+        names(fun) <- names(definitions)
+        assign( tests, fun, globalenv() )
+    }
+}
+
+test.smallDense <- function() {
+    A <- matrix(c(1,2,3,4), nrow=2L)
+    B <- matrix(c(5,6,7,8), nrow=2L)
+    b <- c(1,1)
+
+    ## solutions to dense systems
+    res <- .rcppeigen.solve$dense_PPLU(A, b)
+    checkEquals(res$Ainv,  solve(A))
+    checkEquals(res$x,     solve(A, b))
+
+    res <- .rcppeigen.solve$dense_CPQR(A, b)
+    checkEquals(res$Ainv,  solve(A))
+    checkEquals(res$x,     solve(A, b))
+}
+
+test.largeDense <- function() {
+    set.seed(1234321)
+    N <- 100L
+    AA <- matrix(rnorm(N * N), nrow=N)
+    bb <- rnorm(N)
+
+    res <- .rcppeigen.solve$dense_PPLU(AA, bb)
+    checkEquals(res$Ainv,  solve(AA))
+    checkEquals(res$x,     solve(AA, bb))
+
+    res <- .rcppeigen.solve$dense_CPQR(AA, bb)
+    checkEquals(res$Ainv,  solve(AA))
+    checkEquals(res$x,     solve(AA, bb))
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.fastLm.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.fastLm.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runit.fastLm.R	(revision 2476)
@@ -0,0 +1,78 @@
+#!/usr/bin/r -t
+#
+# Copyright (C) 2011 - 2015  Douglas Bates, Dirk Eddelbuettel and Romain Francois
+#
+# This file is part of RcppEigen
+#
+# RcppEigen is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# RcppEigen is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with RcppEigen.  If not, see <http://www.gnu.org/licenses/>.
+
+.setUp <- function(){
+    suppressMessages(require(datasets))
+    suppressMessages(require(RcppEigen))
+}
+
+test.fastLm <- function() {
+    data(trees, package="datasets")
+    flm0 <- .Call("RcppEigen_fastLm_Impl",
+                  cbind(1, log(trees$Girth)),
+                  log(trees$Volume), 0L,
+                  PACKAGE="RcppEigen")
+    flm1 <- .Call("RcppEigen_fastLm_Impl",
+                  cbind(1, log(trees$Girth)),
+                  log(trees$Volume), 1L,
+                  PACKAGE="RcppEigen")
+    flm2 <- .Call("RcppEigen_fastLm_Impl",
+                  cbind(1, log(trees$Girth)),
+                  log(trees$Volume), 2L,
+                  PACKAGE="RcppEigen")
+    flm3 <- .Call("RcppEigen_fastLm_Impl",
+                  cbind(1, log(trees$Girth)),
+                  log(trees$Volume), 3L,
+                  PACKAGE="RcppEigen")
+    flm4 <- .Call("RcppEigen_fastLm_Impl",
+                  cbind(1, log(trees$Girth)),
+                  log(trees$Volume), 4L,
+                  PACKAGE="RcppEigen")
+    flm5 <- .Call("RcppEigen_fastLm_Impl",
+                  cbind(1, log(trees$Girth)),
+                  log(trees$Volume), 5L,
+                  PACKAGE="RcppEigen")
+    fit <- lm(log(Volume) ~ log(Girth), data=trees)
+    fitCoef <- unname(coef(fit))
+    fitStdErr <- unname(coef(summary(fit))[, "Std. Error", drop = TRUE])
+    checkEquals(flm0$coefficients, fitCoef, msg="fastLm0.coef")
+    checkEquals(flm0$se, fitStdErr, msg="fastLm0.stderr")
+    checkEquals(flm1$coefficients, fitCoef, msg="fastLm1.coef")
+    checkEquals(flm1$se, fitStdErr, msg="fastLm1.stderr")
+    checkEquals(flm2$coefficients, fitCoef, msg="fastLm2.coef")
+    checkEquals(flm2$se, fitStdErr, msg="fastLm2.stderr")
+    checkEquals(flm3$coefficients, fitCoef, msg="fastLm3.coef")
+    checkEquals(flm3$se, fitStdErr, msg="fastLm3.stderr")
+    checkEquals(flm4$coefficients, fitCoef, msg="fastLm0.coef")
+    checkEquals(flm4$se, fitStdErr, msg="fastLm0.stderr")
+    checkEquals(flm5$coefficients, fitCoef, msg="fastLm0.coef")
+    checkEquals(flm5$se, fitStdErr, msg="fastLm0.stderr")
+}
+
+
+test.fastLm.formula <- function() {
+    data(trees, package="datasets")
+    flm <- fastLm(log(Volume) ~ log(Girth), data=trees)
+    fit <- lm(log(Volume) ~ log(Girth), data=trees)
+
+    checkEquals(flm$coefficients, coef(fit), msg="fastLm.formula.coef")
+    checkEquals(as.numeric(flm$se), as.numeric(coef(summary(fit))[,2]),
+                msg="fastLm.formula.stderr")
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runTests.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runTests.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/unitTests/runTests.R	(revision 2476)
@@ -0,0 +1,100 @@
+
+pkg <- "RcppEigen"
+
+if ( ! require( "inline", character.only = TRUE, quietly = TRUE ) ){
+    stop( "The inline package is required to run RcppEigen unit tests" )
+}
+
+if ( compareVersion( packageDescription( "inline" )[["Version"]], "0.3.5" ) < 0 ){
+    stop( "RcppEigen unit tests need at least the version 0.3.5 of inline" )
+}
+
+if (require("RUnit", quietly = TRUE)) {
+
+    is_local <- function(){
+    	if ( exists( "argv", globalenv() ) && "--local" %in% argv ) return(TRUE)
+    	if ( "--local" %in% commandArgs(TRUE) ) return(TRUE)
+    	FALSE
+    }
+    if ( is_local() ) path <- getwd()
+
+    library(package=pkg, character.only = TRUE)
+    if (!(exists("path") && file.exists(path)))
+        path <- system.file("unitTests", package = pkg)
+
+    ## --- Testing ---
+
+    ## Define tests
+    testSuite <- defineTestSuite(name=paste(pkg, "unit testing"), dirs = path)
+
+    if (interactive()) {
+        cat("Now have RUnit Test Suite 'testSuite' for package '", pkg, "' :\n", sep='')
+        str(testSuite)
+        cat('', "Consider doing",
+            "\t  tests <- runTestSuite(testSuite)", "\nand later",
+            "\t  printTextProtocol(tests)", '', sep="\n")
+    } else { ## run from shell / Rscript / R CMD Batch / ...
+        ## Run
+        tests <- runTestSuite(testSuite)
+
+        output <- NULL
+
+        process_args <- function(argv){
+            if ( !is.null(argv) && length(argv) > 0 ){
+                rx <- "^--output=(.*)$"
+                g  <- grep( rx, argv, value = TRUE )
+                if ( length(g) ){
+                    sub( rx, "\\1", g[1L] )
+                }
+            }
+        }
+
+        # R CMD check uses this
+        if ( exists( "RcppEigen.unit.test.output.dir", globalenv() ) ){
+            output <- RcppEigen.unit.test.output.dir
+        } else {
+
+            ## give a chance to the user to customize where he/she wants
+            ## the unit tests results to be stored with the --output= command
+            ## line argument
+            if ( exists( "argv",  globalenv() ) ){
+                ## littler
+                output <- process_args(argv)
+            } else {
+                ## Rscript
+                output <- process_args(commandArgs(TRUE))
+            }
+        }
+
+        if( is.null(output) ) {         # if it did not work, use parent dir
+            output <- ".."              # as BDR does not want /tmp to be used
+        }
+
+        ## Print results
+        output.txt  <- file.path( output, sprintf("%s-unitTests.txt", pkg))
+        output.html <- file.path( output, sprintf("%s-unitTests.html", pkg))
+
+        printTextProtocol(tests, fileName=output.txt)
+        message( sprintf( "saving txt unit test report to '%s'", output.txt ) )
+
+        ## Print HTML version to a file
+        ## printHTMLProtocol has problems on Mac OS X
+        if (Sys.info()["sysname"] != "Darwin"){
+            message( sprintf( "saving html unit test report to '%s'", output.html ) )
+            printHTMLProtocol(tests, fileName=output.html)
+        }
+
+        ##  stop() if there are any failures i.e. FALSE to unit test.
+        ## This will cause R CMD check to return error and stop
+        err <- getErrors(tests)
+        if ( (err$nFail + err$nErr) > 0) {
+            stop( sprintf( "unit test problems: %d failures, %d errors", err$nFail, err$nErr) )
+        } else {
+            success <- err$nTestFunc - err$nFail - err$nErr - err$nDeactivated
+            cat( sprintf( "%d / %d\n", success, err$nTestFunc ) )
+        }
+    }
+} else {
+    cat("R package 'RUnit' cannot be loaded -- no unit tests run\n", "for package", pkg,"\n")
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/html/00Index.html	(revision 2476)
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: 'Rcpp' Integration for the 'Eigen' Templated Linear Algebra
+Library</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> 'Rcpp' Integration for the 'Eigen' Templated Linear Algebra
+Library
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;RcppEigen&rsquo; version 0.3.2.9.0</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+<li><a href="../NEWS">Package NEWS</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="RcppEigen-package.html">RcppEigen-package</a></td>
+<td>Rcpp/Eigen bridge</td></tr>
+<tr><td style="width: 25%;"><a href="fastLm.html">fastLm</a></td>
+<td>Bare-bones linear model fitting function</td></tr>
+<tr><td style="width: 25%;"><a href="fastLm.html">fastLm.default</a></td>
+<td>Bare-bones linear model fitting function</td></tr>
+<tr><td style="width: 25%;"><a href="fastLm.html">fastLm.formula</a></td>
+<td>Bare-bones linear model fitting function</td></tr>
+<tr><td style="width: 25%;"><a href="fastLm.html">fastLmPure</a></td>
+<td>Bare-bones linear model fitting function</td></tr>
+<tr><td style="width: 25%;"><a href="RcppEigen-package.html">RcppEigen</a></td>
+<td>Rcpp/Eigen bridge</td></tr>
+<tr><td style="width: 25%;"><a href="RcppEigen.package.skeleton.html">RcppEigen.package.skeleton</a></td>
+<td>Create a skeleton for a new package that intends to use RcppEigen</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/code.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/code.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/code.R	(revision 2476)
@@ -0,0 +1,237 @@
+library(inline)
+library(RcppEigen)
+
+incl <- '
+using   Eigen::LLT;
+using   Eigen::Lower;
+using   Eigen::Map;
+using   Eigen::MatrixXd;
+using   Eigen::MatrixXi;
+using   Eigen::Upper;
+using   Eigen::VectorXd;
+typedef Map<MatrixXd>  MapMatd;
+typedef Map<MatrixXi>  MapMati;
+typedef Map<VectorXd>  MapVecd;
+inline  MatrixXd AtA(const MatrixXd& A) {
+    int    n(A.cols());
+    return   MatrixXd(n,n).setZero().selfadjointView<Lower>()
+             .rankUpdate(A.adjoint());
+}
+inline  MatrixXd AAt(const MatrixXd& A) {
+    int    n(A.cols());
+    return   MatrixXd(n,n).setZero().selfadjointView<Lower>()
+             .rankUpdate(A);
+}
+'
+
+
+## section 3.1
+(A <- matrix(1:6, ncol=2))
+str(A)
+
+transCpp <-'
+using Eigen::Map;
+using Eigen::MatrixXi;
+                 // Map the integer matrix AA from R
+const Map<MatrixXi>  A(as<Map<MatrixXi> >(AA));
+                 // evaluate and return the transpose of A
+const MatrixXi      At(A.transpose());
+return wrap(At);
+'
+
+ftrans <- cxxfunction(signature(AA="matrix"), transCpp, plugin="RcppEigen")
+(At <- ftrans(A))
+stopifnot(all.equal(At, t(A)))
+
+
+
+## section 3.2
+prodCpp <- '
+typedef Eigen::Map<Eigen::MatrixXi>   MapMati;
+const MapMati    B(as<MapMati>(BB));
+const MapMati    C(as<MapMati>(CC));
+return List::create(Named("B %*% C")         = B * C,
+                    Named("crossprod(B, C)") = B.adjoint() * C);
+'
+
+fprod <- cxxfunction(signature(BB = "matrix", CC = "matrix"), prodCpp, "RcppEigen")
+B <- matrix(1:4, ncol=2)
+C <- matrix(6:1, nrow=2)
+str(fp <- fprod(B, C))
+stopifnot(all.equal(fp[[1]], B %*% C), all.equal(fp[[2]], crossprod(B, C)))
+
+
+
+## section 3.3
+
+crossprodCpp <- '
+using Eigen::Map;
+using Eigen::MatrixXi;
+using Eigen::Lower;
+
+const Map<MatrixXi> A(as<Map<MatrixXi> >(AA));
+const int           m(A.rows()), n(A.cols());
+MatrixXi          AtA(MatrixXi(n, n).setZero().
+                      selfadjointView<Lower>().rankUpdate(A.adjoint()));
+MatrixXi          AAt(MatrixXi(m, m).setZero().
+                      selfadjointView<Lower>().rankUpdate(A));
+
+return List::create(Named("crossprod(A)")  = AtA,
+                    Named("tcrossprod(A)") = AAt);
+'
+fcprd <- cxxfunction(signature(AA = "matrix"), crossprodCpp, "RcppEigen")
+str(crp <- fcprd(A))
+stopifnot(all.equal(crp[[1]], crossprod(A)),
+          all.equal(crp[[2]], tcrossprod(A)))
+
+
+
+## section 3.4
+
+storage.mode(A) <- "double"
+
+cholCpp <- '
+const  LLT<MatrixXd> llt(AtA(as<MapMatd>(AA)));
+return List::create(Named("L") = MatrixXd(llt.matrixL()),
+                    Named("R") = MatrixXd(llt.matrixU()));
+'
+
+fchol <- cxxfunction(signature(AA = "matrix"), cholCpp, "RcppEigen", incl)
+(ll <- fchol(A))
+stopifnot(all.equal(ll[[2]], chol(crossprod(A))))
+
+
+# section 3.5
+
+cholDetCpp <- '
+const MatrixXd      ata(AtA(as<MapMatd>(AA)));
+const double       detL(MatrixXd(ata.llt().matrixL()).diagonal().prod());
+const VectorXd     Dvec(ata.ldlt().vectorD());
+return List::create(Named("d1") = detL * detL,
+                    Named("d2") = Dvec.prod(),
+                    Named("ld") = Dvec.array().log().sum());
+'
+
+fdet <- cxxfunction(signature(AA = "matrix"), cholDetCpp, "RcppEigen", incl)
+unlist(ll <- fdet(A))
+
+
+## section 4.1
+lltLSCpp <- '
+const MapMatd         X(as<MapMatd>(XX));
+const MapVecd         y(as<MapVecd>(yy));
+const int             n(X.rows()), p(X.cols());
+const LLT<MatrixXd> llt(AtA(X));
+const VectorXd  betahat(llt.solve(X.adjoint() * y));
+const VectorXd   fitted(X * betahat);
+const VectorXd    resid(y - fitted);
+const int            df(n - p);
+const double        ssq(resid.squaredNorm() / double(df));
+const MatrixXd     vcov(ssq * llt.solve(MatrixXd::Identity(p, p)));
+return     List::create(Named("coefficients")   = betahat,
+                        Named("fitted.values")  = fitted,
+                        Named("residuals")      = resid,
+                        Named("s")              = sqrt(ssq),
+                        Named("df.residual")    = df,
+                        Named("rank")           = p,
+                        Named("vcov")           = vcov);
+'
+
+lltLS <- cxxfunction(signature(XX = "matrix", yy = "numeric"),
+                     lltLSCpp, "RcppEigen", incl)
+data(trees, package="datasets")
+str(lltFit <- with(trees, lltLS(cbind(1, log(Girth)), log(Volume))))
+str(lmFit <- with(trees, lm.fit(cbind(1, log(Girth)), log(Volume))))
+for (nm in c("coefficients", "residuals", "fitted.values", "rank"))
+    stopifnot(all.equal(lltFit[[nm]], unname(lmFit[[nm]])))
+stopifnot(all.equal(unname(vcov(lm(log(Volume) ~ log(Girth), trees))),
+                    lltFit$vcov))
+
+## section 4.3
+
+dd <- data.frame(f1 = gl(4, 6, labels = LETTERS[1:4]),
+                 f2 = gl(3, 2, labels = letters[1:3]))[-(7:8), ]
+xtabs(~ f2 + f1, dd)                    # one missing cell
+mm <- model.matrix(~ f1 * f2, dd)
+kappa(mm)         # large condition number, indicating rank deficiency
+rcond(mm)         # alternative evaluation, the reciprocal condition number
+(c(rank=qr(mm)$rank, p=ncol(mm))) # rank as computed in R's qr function
+set.seed(1)
+dd$y <- mm %*% seq_len(ncol(mm)) + rnorm(nrow(mm), sd = 0.1)
+                         # lm detects the rank deficiency
+fm1 <- lm(y ~ f1 * f2, dd)
+writeLines(capture.output(print(summary(fm1), signif.stars=FALSE))[9:22])
+
+
+## section 4.6
+print(summary(fmPQR <- fastLm(y ~ f1 * f2, dd)), signif.stars=FALSE)
+all.equal(coef(fm1), coef(fmPQR))
+all.equal(unname(fitted(fm1)), fitted(fmPQR))
+all.equal(unname(residuals(fm1)), residuals(fmPQR))
+
+
+print(summary(fmSVD <- fastLm(y ~ f1 * f2, dd, method=4L)), signif.stars=FALSE)
+all.equal(coef(fm1), coef(fmSVD))
+all.equal(unname(fitted(fm1)), fitted(fmSVD))
+all.equal(unname(residuals(fm1)), residuals(fmSVD))
+
+
+fmVLV <- fastLm(y ~ f1 * f2, dd, method=5L)
+all.equal(coef(fmSVD), coef(fmVLV))
+
+
+## section 5
+
+badtransCpp <- '
+const MapMati  A(as<MapMati>(AA));
+return wrap(A.transpose());
+'
+
+Ai <- matrix(1:6, ncol=2L)
+ftrans2 <- cxxfunction(signature(AA = "matrix"), badtransCpp, "RcppEigen", incl)
+(At <- ftrans2(Ai))
+all.equal(At, t(Ai))
+
+
+
+## section 6
+sparseProdCpp <- '
+using Eigen::MappedSparseMatrix;
+using Eigen::SparseMatrix;
+
+const MappedSparseMatrix<double>  A(as<MappedSparseMatrix<double> >(AA));
+const MapVecd                     y(as<MapVecd>(yy));
+const SparseMatrix<double>       At(A.adjoint());
+return List::create(Named("At")  = At,
+                    Named("Aty") = At * y);
+'
+
+sparse1 <- cxxfunction(signature(AA = "dgCMatrix", yy = "numeric"),
+                       sparseProdCpp, "RcppEigen", incl)
+data(KNex, package="Matrix")
+rr <- sparse1(KNex$mm, KNex$y)
+stopifnot(all.equal(rr$At, t(KNex$mm)),
+          all.equal(rr$Aty, as.vector(crossprod(KNex$mm, KNex$y))))
+
+
+sparseLSCpp <- '
+typedef Eigen::MappedSparseMatrix<double>  MSpMat;
+typedef Eigen::SparseMatrix<double>         SpMat;
+typedef Eigen::SimplicialLDLT<SpMat>       SpChol;
+
+const SpMat      At(as<MSpMat>(AA).adjoint());
+const VectorXd  Aty(At * as<MapVecd>(yy));
+const SpChol     Ch(At * At.adjoint());
+if (Ch.info() != Eigen::Success) return R_NilValue;
+return List::create(Named("betahat")  = Ch.solve(Aty),
+                    Named("perm")     = Ch.permutationP().indices());
+'
+
+sparse2 <- cxxfunction(signature(AA = "dgCMatrix", yy = "numeric"),
+                       sparseLSCpp, "RcppEigen", incl)
+str(rr <-  sparse2(KNex$mm, KNex$y))
+res <- as.vector(solve(Ch <- Cholesky(crossprod(KNex$mm)),
+                       crossprod(KNex$mm, KNex$y)))
+stopifnot(all.equal(rr$betahat, res))
+
+all(rr$perm == Ch@perm) # fill-reducing permutations are different
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/index.html	(revision 2476)
@@ -0,0 +1,36 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'RcppEigen'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/RcppEigen/doc/RcppEigen-Introduction.pdf">RcppEigen::RcppEigen-Introduction</a></td>
+<td></td><td valign="top">RcppEigen-intro</td>
+<td valign="top"><a href="../../../library/RcppEigen/doc/RcppEigen-Introduction.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/RcppEigen/doc/RcppEigen-Introduction.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/RcppEigen/doc/RcppEigen-Introduction.R">R code</a></td></tr>
+</table>
+<h2>Other files in the <span class="samp">doc</span> directory</h2>
+<table width="100%">
+<col style="width: 24%;" />
+<col style="width: 50%;" />
+<col style="width: 24%;" />
+<tr><td></td><td><span class="samp"><a href="code.R">code.R</a></span></td></tr>
+<tr><td></td><td><span class="samp"><a href="unitTests/">unitTests/</a></span></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/RcppEigen-Introduction.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/RcppEigen-Introduction.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/RcppEigen-Introduction.R	(revision 2476)
@@ -0,0 +1,12 @@
+### R code from vignette source 'RcppEigen-Introduction.Rnw'
+
+###################################################
+### code chunk number 1: RcppEigen-Introduction.Rnw:8-13
+###################################################
+pkgVersion <- packageDescription("RcppEigen")$Version
+pkgDate <- packageDescription("RcppEigen")$Date
+prettyDate <- format(Sys.Date(), "%B %e, %Y")
+#require("RcppEigen")
+#eigenVersion <- paste(unlist(.Call("eigen_version", FALSE)), collapse=".")
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/RcppEigen-Introduction.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/RcppEigen-Introduction.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/RcppEigen-Introduction.Rnw	(revision 2476)
@@ -0,0 +1,1548 @@
+\documentclass[shortnames,article,nojss]{jss}
+\usepackage{booktabs,bm,amsmath,thumbpdf}
+%\VignetteIndexEntry{RcppEigen-intro}
+%\VignetteKeywords{linear algebra, template programming, C++, R, Rcpp}
+%\VignettePackage{RcppEigen}
+
+%% VIGNETTE
+<<echo=FALSE,print=FALSE>>=
+pkgVersion <- packageDescription("RcppEigen")$Version
+pkgDate <- packageDescription("RcppEigen")$Date
+prettyDate <- format(Sys.Date(), "%B %e, %Y")
+#require("RcppEigen")
+#eigenVersion <- paste(unlist(.Call("eigen_version", FALSE)), collapse=".")
+@
+
+\author{Douglas Bates\\University of Wisconsin-Madison \And Dirk Eddelbuettel\\Debian Project}
+\Plainauthor{Douglas Bates, Dirk Eddelbuettel}
+
+\title{Fast and Elegant Numerical Linear Algebra Using the \pkg{RcppEigen} Package}
+\Plaintitle{Fast and Elegant Numerical Linear Algebra Using the RcppEigen Package}
+\Shorttitle{Fast and Elegant Numerical Linear Algebra with \pkg{RcppEigen}}
+
+\Abstract{
+  The \pkg{RcppEigen} package provides access from \proglang{R}
+  \citep{R:Main} to the \pkg{Eigen} \citep*{Eigen:Web} \proglang{C++}
+  template library for numerical linear algebra. \pkg{Rcpp}
+  \citep{CRAN:Rcpp,Eddelbuettel:2013:Rcpp} classes and specializations of the
+  \proglang{C++} templated functions \code{as} and \code{wrap} from
+  \pkg{Rcpp} provide the ``glue'' for passing objects from
+  \proglang{R} to \proglang{C++} and back.  Several introductory
+  examples are presented. This is followed by an in-depth discussion of various
+  available approaches for solving least-squares problems, including
+  rank-revealing methods, concluding with an empirical run-time
+  comparison. Last but not least, sparse matrix methods are discussed.
+}
+
+\Keywords{linear algebra, template programming, \proglang{R}, \proglang{C++}, \pkg{Rcpp}}
+\Plainkeywords{linear algebra, template programmig, R, C++, Rcpp}
+
+\Address{
+  Douglas Bates \\
+  Department of Statistics \\
+  University of Wisconsin-Madison \\
+  Madison, WI, United States of America \\
+  E-mail: \email{bates@stat.wisc.edu} \\
+  URL: \url{http://www.stat.wisc.edu/~bates/}\\
+
+  Dirk Eddelbuettel \\
+  Debian Project \\
+  River Forest, IL, United States of America\\
+  E-mail: \email{edd@debian.org}\\
+  URL: \url{http://dirk.eddelbuettel.com}\\
+}
+
+\usepackage{Sweave}
+
+\newcommand{\argmin}{\operatorname{argmin}\displaylimits}
+\newcommand{\rank}{\operatorname{rank}}
+
+%% highlights macros
+%% Style definition file generated by highlight 2.7, http://www.andre-simon.de/
+% Highlighting theme definition:
+\newcommand{\hlstd}[1]{\textcolor[rgb]{0,0,0}{#1}}
+\newcommand{\hlnum}[1]{\textcolor[rgb]{0,0,0}{#1}}
+\newcommand{\hlopt}[1]{\textcolor[rgb]{0,0,0}{#1}}
+\newcommand{\hlesc}[1]{\textcolor[rgb]{0.74,0.55,0.55}{#1}}
+\newcommand{\hlstr}[1]{\textcolor[rgb]{0.90,0.15,0.15}{#1}}
+\newcommand{\hldstr}[1]{\textcolor[rgb]{0.74,0.55,0.55}{#1}}
+\newcommand{\hlslc}[1]{\textcolor[rgb]{0.67,0.13,0.13}{\it{#1}}}
+\newcommand{\hlcom}[1]{\textcolor[rgb]{0.67,0.13,0.13}{\it{#1}}}
+\newcommand{\hldir}[1]{\textcolor[rgb]{0,0,0}{#1}}
+\newcommand{\hlsym}[1]{\textcolor[rgb]{0,0,0}{#1}}
+\newcommand{\hlline}[1]{\textcolor[rgb]{0.33,0.33,0.33}{#1}}
+\newcommand{\hlkwa}[1]{\textcolor[rgb]{0.61,0.13,0.93}{\bf{#1}}}
+\newcommand{\hlkwb}[1]{\textcolor[rgb]{0.13,0.54,0.13}{#1}}
+\newcommand{\hlkwc}[1]{\textcolor[rgb]{0,0,1}{#1}}
+\newcommand{\hlkwd}[1]{\textcolor[rgb]{0,0,0}{#1}}
+\definecolor{bgcolor}{rgb}{1,1,1}
+
+
+% ------------------------------------------------------------------------
+
+\begin{document}
+\SweaveOpts{engine=R,eps=FALSE}
+
+\begin{quote} \footnotesize
+  This vignette corresponds to a
+  \href{http://www.jstatsoft.org/v52/i05/}{paper published} in the
+  \textsl{Journal of Statistical Software}. Currently still identical
+  to the paper, this vignette version may over time receive minor updates.
+  For citations, please use \citet{JSS:RcppEigen} as provided by \code{citation("RcppEigen")}.
+
+  This version corresponds to \pkg{RcppEigen} version \Sexpr{pkgVersion} and was
+  typeset on \Sexpr{prettyDate}.
+\end{quote}
+
+\section{Introduction}
+\label{sec:intro}
+
+Linear algebra is an essential building block of statistical
+computing.  Operations such as matrix decompositions, linear program
+solvers, and eigenvalue/eigenvector computations are used in many
+estimation and analysis routines. As such, libraries supporting linear
+algebra have long been provided by statistical programmers for
+different programming languages and environments.  Because it is
+object-oriented, \proglang{C++}, one of the central modern languages
+for numerical and statistical computing, is particularly effective at
+representing matrices, vectors and decompositions, and numerous class
+libraries providing linear algebra routines have been written over the
+years.
+
+As both the \proglang{C++} language and standards have evolved
+\citep{Meyers:2005:EffectiveC++,Meyers:1995:MoreEffectiveC++,Cpp11},
+so have the compilers implementing the language.  Relatively modern
+language constructs such as template meta-programming are particularly
+useful because they provide overloading of operations (allowing
+expressive code in the compiled language similar to what can be done
+in scripting languages) and can shift some of the computational burden
+from the run-time to the compile-time. (A more detailed discussion of
+template meta-programming is, however, beyond the scope of this
+paper). \cite{Veldhuizen:1998:Blitz} provided an early and influential
+implementation of numerical linear algebra classes that already
+demonstrated key features of this approach.  Its usage was held back
+at the time by the limited availability of compilers implementing all the
+necessary features of the \proglang{C++} language.
+
+This situation has greatly improved over the last decade, and many more
+libraries have been made available. One such \proglang{C++} library is
+\pkg{Eigen} by \citet*{Eigen:Web} which started as a sub-project to
+KDE (a popular Linux desktop environment), initially focussing on fixed-size
+matrices to represent projections in a visualization application. \pkg{Eigen}
+grew from there and has over the course of about a decade produced three
+major releases with \pkg{Eigen}3 being the current major version. To
+check the minor and patch version numbers, load the \pkg{RcppEigen}
+package and call
+\begin{CodeInput}
+R> .Call("eigen_version", FALSE)
+\end{CodeInput}
+\begin{CodeOutput}
+major minor patch 
+    3     1     1 
+\end{CodeOutput}
+\pkg{Eigen} is of interest as the \proglang{R} system for statistical
+computation and graphics \citep{R:Main} is itself easily extensible. This is
+particular true via the \proglang{C} language that most of \proglang{R}'s
+compiled core parts are written in, but also for the \proglang{C++} language
+which can interface with \proglang{C}-based systems rather easily. The manual
+``Writing \proglang{R} Extensions'' \citep{R:Extensions} is the basic reference for
+extending \proglang{R} with either \proglang{C} or \proglang{C++}.
+
+The \pkg{Rcpp} package by \citet{JSS:Rcpp,CRAN:Rcpp} facilitates extending
+\proglang{R} with \proglang{C++} code by providing seamless object mapping
+between both languages.
+%
+As stated in the \pkg{Rcpp} \citep{CRAN:Rcpp} vignette, ``Extending
+\pkg{Rcpp}'' as well as in \citet{Eddelbuettel:2013:Rcpp}
+\begin{quote}
+  \pkg{Rcpp} facilitates data interchange between \proglang{R} and
+  \proglang{C++} through the templated functions \code{Rcpp::as} (for
+  conversion of objects from \proglang{R} to \proglang{C++}) and
+  \code{Rcpp::wrap} (for conversion from \proglang{C++} to \proglang{R}).
+\end{quote}
+The \pkg{RcppEigen} package provides the header files composing the
+\pkg{Eigen} \proglang{C++} template library, along with implementations of
+\code{Rcpp::as} and \code{Rcpp::wrap} for the \proglang{C++}
+classes defined in \pkg{Eigen}.
+
+The \pkg{Eigen} classes themselves provide high-performance,
+versatile and comprehensive representations of dense and sparse
+matrices and vectors, as well as decompositions and other functions
+to be applied to these objects.  The next section introduces some
+of these classes and shows how to interface to them from \proglang{R}.
+
+\section[Eigen classes]{\pkg{Eigen} classes}
+\label{sec:eclasses}
+
+\pkg{Eigen} is a \proglang{C++} template library providing classes for
+many forms of matrices, vectors, arrays and decompositions.  These
+classes are flexible and comprehensive allowing for both high
+performance and well structured code representing high-level
+operations. \proglang{C++} code based on \pkg{Eigen} is often more like
+\proglang{R} code, working on the ``whole object'', than like compiled
+code in other languages where operations often must be coded in loops.
+
+As in many \proglang{C++} template libraries using template meta-programming
+\citep{Abrahams+Gurtovoy:2004:TemplateMetaprogramming}, the templates
+themselves can be very complicated.  However, \pkg{Eigen} provides
+\code{typedef}s for common classes that correspond to \proglang{R} matrices and
+vectors, as shown in Table~\ref{tab:REigen}, and this paper will use these
+\code{typedef}s.
+
+\begin{table}[t!]
+  \centering
+  \begin{tabular}{l l}
+    \hline
+    \multicolumn{1}{c}{\proglang{R} object type} & \multicolumn{1}{c}{\pkg{Eigen} class typedef}\\
+    \hline
+    numeric matrix                          & \code{MatrixXd}\\
+    integer matrix                          & \code{MatrixXi}\\
+    complex matrix                          & \code{MatrixXcd}\\
+    numeric vector                          & \code{VectorXd}\\
+    integer vector                          & \code{VectorXi}\\
+    complex vector                          & \code{VectorXcd}\\
+    \code{Matrix::dgCMatrix} \phantom{XXX}  & \code{SparseMatrix<double>}\\
+    \hline
+  \end{tabular}
+  \caption{Correspondence between \proglang{R} matrix and vector types and classes in the \pkg{Eigen} namespace.
+  \label{tab:REigen}}
+\end{table}
+
+Here, \code{Vector} and \code{Matrix} describe the dimension of the
+object. The \code{X} signals that these are dynamically-sized objects (as opposed
+to fixed-size matrices such as $3 \times 3$ matrices also available in
+\pkg{Eigen}). Lastly, the trailing characters \code{i}, \code{d} and
+\code{cd} denote, respectively, storage types \code{integer}, \code{double} and
+\code{complex double}.
+
+The \proglang{C++} classes shown in Table~\ref{tab:REigen} are in the
+\pkg{Eigen} namespace, which means that they must be written as
+\code{Eigen::MatrixXd}.  However, if one prefaces the use of these class
+names with a declaration like
+\begin{quote}
+  \noindent
+  \ttfamily
+  \hlstd{}\hlkwa{using\ }\hlstd{Eigen}\hlopt{::}\hlstd{MatrixXd}\hlopt{;}\hlstd{}\hspace*{\fill}\\
+  \mbox{}
+  \normalfont
+  \normalsize
+\end{quote}
+
+\vspace*{-0.4cm}
+
+then one can use these names without the namespace qualifier.
+
+\subsection[Mapped matrices in Eigen]{Mapped matrices in \pkg{Eigen}}
+\label{sec:mapped}
+
+Storage for the contents of matrices from the classes shown in
+Table~\ref{tab:REigen} is allocated and controlled by the class
+constructors and destructors.  Creating an instance of such a class
+from an \proglang{R} object involves copying its contents.  An
+alternative is to have the contents of the \proglang{R} matrix or
+vector mapped to the contents of the object from the \pkg{Eigen} class.  For
+dense matrices one can use the \pkg{Eigen} templated class \code{Map}, and for
+sparse matrices one can deploy the \pkg{Eigen} templated class \code{MappedSparseMatrix}.
+
+One must, of course, be careful not to modify the contents of the
+\proglang{R} object in the \proglang{C++} code.  A recommended
+practice is always to declare mapped objects as {\ttfamily\hlkwb{const}\normalfont}.
+
+\subsection[Arrays in Eigen]{Arrays in \pkg{Eigen}}
+\label{sec:arrays}
+
+For matrix and vector classes \pkg{Eigen} overloads the \code{`*'}
+operator as matrix multiplication.  Occasionally component-wise
+operations instead of matrix operations are desired, for which the
+\code{Array} templated classes are used in \pkg{Eigen}.  Switching
+back and forth between matrices or vectors and arrays is usually done
+via the \code{array()} method for matrix or vector objects and the
+\code{matrix()} method for arrays.
+
+\subsection[Structured matrices in Eigen]{Structured matrices in \pkg{Eigen}}
+\label{sec:structured}
+
+\pkg{Eigen} provides classes for matrices with special structure such
+as symmetric matrices, triangular matrices and banded matrices.  For
+dense matrices, these special structures are described as ``views'',
+meaning that the full dense matrix is stored but only part of the
+matrix is used in operations.  For a symmetric matrix one must
+specify whether the lower triangle or the upper triangle is to be used as
+the contents, with the other triangle defined by the implicit symmetry.
+
+\section{Some simple examples}
+\label{sec:simple}
+
+\proglang{C++} functions to perform simple operations on matrices or
+vectors can follow a pattern of:
+\begin{enumerate}
+\item Map the \proglang{R} objects passed as arguments into \pkg{Eigen} objects.
+\item Create the result.
+\item Return \code{Rcpp::wrap} applied to the result.
+\end{enumerate}
+
+An idiom for the first step is
+% using Eigen::Map;
+% using Eigen::MatrixXd;
+% using Rcpp::as;
+%
+% const Map<MatrixXd>  A(as<Map<MatrixXd> >(AA));
+%\end{lstlisting}
+\begin{quote}
+  \noindent
+  \ttfamily
+  \hlstd{}\hlkwa{using\ }\hlstd{Eigen}\hlsym{::}\hlstd{Map}\hlsym{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{using\ }\hlstd{Eigen}\hlsym{::}\hlstd{MatrixXd}\hlsym{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{using\ }\hlstd{Rcpp}\hlsym{::}\hlstd{as}\hlsym{;}\hspace*{\fill}\\
+  \hlstd{}\hspace*{\fill}\\
+  \hlkwb{const\ }\hlstd{Map}\hlsym{$<$}\hlstd{MatrixXd}\hlsym{$>$}\hlstd{\ \ }\hlsym{}\hlstd{}\hlkwd{A}\hlstd{}\hlsym{(}\hlstd{as}\hlsym{$<$}\hlstd{Map}\hlsym{$<$}\hlstd{MatrixXd}\hlsym{$>$\ $>$(}\hlstd{AA}\hlsym{));}\hlstd{}\hspace*{\fill}\\
+  \mbox{}
+  \normalfont
+\end{quote}
+
+\vspace*{-0.4cm}
+
+where \code{AA} is the name of the \proglang{R} object (of type \code{SEXP} in
+\proglang{C} and \proglang{C++}) passed to the \proglang{C++} function.
+
+An alternative to the \code{using} declarations is to declare a \code{typedef} as in
+% typedef Eigen::Map<Eigen::MatrixXd>   MapMatd;
+% const MapMatd          A(Rcpp::as<MapMatd>(AA));
+\begin{quote}
+  \noindent
+  \ttfamily
+  \hlstd{}\hlkwc{typedef\ }\hlstd{Eigen}\hlopt{::}\hlstd{Map}\hlopt{$<$}\hlstd{Eigen}\hlopt{::}\hlstd{MatrixXd}\hlopt{$>$}\hlstd{\ \ \ }\hlopt{}\hlstd{MapMatd}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ }\hlstd{MapMatd}\hlstd{\ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlkwd{A}\hlstd{}\hlopt{(}\hlstd{Rcpp}\hlopt{::}\hlstd{as}\hlopt{$<$}\hlstd{MapMatd}\hlopt{$>$(}\hlstd{AA}\hlopt{));}\hlstd{}\hspace*{\fill}\\
+  \mbox{}
+  \normalfont
+  \normalsize
+\end{quote}
+
+\vspace*{-0.4cm}
+
+The \code{cxxfunction} function from the \pkg{inline} package \citep*{CRAN:inline} for
+\proglang{R} and its \pkg{RcppEigen} plugin provide a convenient method of
+developing and debugging the \proglang{C++} code.  For actual production code
+one generally incorporates the \proglang{C++} source code files in a package
+and includes the line \code{LinkingTo: Rcpp, RcppEigen} in the package's
+\code{DESCRIPTION} file.  The \code{RcppEigen.package.skeleton} function
+provides a quick way of generating the skeleton of a package that will use
+\pkg{RcppEigen}.
+
+The \code{cxxfunction} with the \code{"Rcpp"} or \code{"RcppEigen"}
+plugins has the \code{as} and \code{wrap} functions already defined as
+\code{Rcpp::as} and \code{Rcpp::wrap}.  In the examples below
+these declarations are omitted.  It is important to remember that they are
+needed in actual \proglang{C++} source code for a package.
+
+The first few examples are simply for illustration as the operations
+shown could be more effectively performed directly in \proglang{R}.
+Finally, the results from \pkg{Eigen} are compared to those from the direct
+\proglang{R} results.
+
+\subsection{Transpose of an integer matrix}
+\label{sec:transpose}
+
+The next \proglang{R} code snippet creates a simple matrix of integers
+\begin{CodeInput}
+R> (A <- matrix(1:6, ncol = 2))
+\end{CodeInput}
+\begin{CodeOutput}
+     [,1] [,2]
+[1,]    1    4
+[2,]    2    5
+[3,]    3    6
+\end{CodeOutput}
+\begin{CodeInput}
+R> str(A)
+\end{CodeInput}
+\begin{CodeOutput}
+ int [1:3, 1:2] 1 2 3 4 5 6
+\end{CodeOutput}
+and, in Figure~\ref{trans}, the \code{transpose()} method for the
+\code{Eigen::MatrixXi} class is used to return the transpose of the supplied matrix. The \proglang{R}
+matrix in the \code{SEXP} \code{AA} is first mapped to an
+\code{Eigen::MatrixXi} object, and then the matrix \code{At} is constructed
+from its transpose and returned to \proglang{R}.
+
+\begin{figure}[t!]
+  \hrule \smallskip
+    \noindent
+    \ttfamily
+    \hlstd{}\hlkwa{using\ }\hlstd{Eigen}\hlsym{::}\hlstd{Map}\hlsym{;}\hspace*{\fill}\\
+    \hlstd{}\hlkwa{using\ }\hlstd{Eigen}\hlsym{::}\hlstd{MatrixXi}\hlsym{;}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlslc{//\ Map\ the\ integer\ matrix\ AA\ from\ R}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{Map}\hlsym{$<$}\hlstd{MatrixXi}\hlsym{$>$}\hlstd{\ \ }\hlsym{}\hlstd{}\hlkwd{A}\hlstd{}\hlsym{(}\hlstd{as}\hlsym{$<$}\hlstd{Map}\hlsym{$<$}\hlstd{MatrixXi}\hlsym{$>$\ $>$(}\hlstd{AA}\hlsym{));}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlslc{//\ evaluate\ and\ return\ the\ transpose\ of\ A}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{MatrixXi}\hlstd{\ \ \ \ \ \ }\hlstd{}\hlkwd{At}\hlstd{}\hlsym{(}\hlstd{A}\hlsym{.}\hlstd{}\hlkwd{transpose}\hlstd{}\hlsym{());}\hspace*{\fill}\\
+    \hlstd{}\hlkwa{return\ }\hlstd{}\hlkwd{wrap}\hlstd{}\hlsym{(}\hlstd{At}\hlsym{);}\hlstd{}\hspace*{\fill}
+    \normalfont
+  \hrule
+  \caption{\code{transCpp}: Transpose a matrix of integers.
+  \label{trans}}
+\end{figure}
+
+The \proglang{R} snippet below compiles and links the \proglang{C++} code
+segment. The actual work is done by the function \code{cxxfunction} from the \pkg{inline}
+package which compiles, links and loads code written in \proglang{C++} and
+supplied as a character variable.  This frees the user from having to know about
+compiler and linker details and options, which makes ``exploratory
+programming'' much easier.  Here the program piece to be compiled is stored
+as a character variable named \code{transCpp}, and \code{cxxfunction} creates
+an executable function which is assigned to \code{ftrans}.  This new function
+is used on the matrix $\bm A$ shown above, and one can check that it works as intended
+by comparing the output to an explicit transpose of the matrix argument.
+\begin{CodeInput}
+R> ftrans <- cxxfunction(signature(AA = "matrix"), transCpp,
++    plugin = "RcppEigen")
+R> (At <- ftrans(A))
+\end{CodeInput}
+\begin{CodeOutput}
+     [,1] [,2] [,3]
+[1,]    1    2    3
+[2,]    4    5    6
+\end{CodeOutput}
+\begin{CodeInput}
+R> stopifnot(all.equal(At, t(A)))
+\end{CodeInput}
+For numeric or integer matrices the \code{adjoint()} method is
+equivalent to the \code{transpose()} method.  For complex matrices,
+the adjoint is the conjugate of the transpose.  In keeping with the
+conventions in the \pkg{Eigen} documentation the \code{adjoint()}
+method is used in what follows to create the transpose of numeric or
+integer matrices.
+
+\subsection{Products and cross-products}
+\label{sec:products}
+
+As mentioned in Section~\ref{sec:arrays}, the \code{`*'} operator is
+overloaded as matrix multiplication for the various matrix and vector
+classes in \pkg{Eigen}. The \proglang{C++} code in
+Figure~\ref{prod} produces a list containing both the product and
+cross-product (in the sense of the \proglang{R} function call
+\code{crossproduct(A, B)} evaluating $\bm A^\top\bm B$) of its two arguments
+%
+\begin{figure}[t!]
+  \hrule \smallskip
+  \noindent
+  \ttfamily
+  \hlstd{}\hlkwc{typedef\ }\hlstd{Eigen}\hlopt{::}\hlstd{Map}\hlopt{$<$}\hlstd{Eigen}\hlopt{::}\hlstd{MatrixXi}\hlopt{$>$}\hlstd{\ \ \ }\hlopt{}\hlstd{MapMati}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ }\hlstd{MapMati}\hlstd{\ \ \ \ }\hlstd{}\hlkwd{B}\hlstd{}\hlopt{(}\hlstd{as}\hlopt{$<$}\hlstd{MapMati}\hlopt{$>$(}\hlstd{BB}\hlopt{));}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ }\hlstd{MapMati}\hlstd{\ \ \ \ }\hlstd{}\hlkwd{C}\hlstd{}\hlopt{(}\hlstd{as}\hlopt{$<$}\hlstd{MapMati}\hlopt{$>$(}\hlstd{CC}\hlopt{));}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{return\ }\hlstd{List}\hlopt{::}\hlstd{}\hlkwd{create}\hlstd{}\hlopt{(}\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"B\ \%{*}\%\ C"}\hlstd{}\hlopt{{)}}\hlstd{\ \ \ \ \ \ \ \ \ }\hlopt{=\ }\hlstd{B\ }\hlopt{{*}\ }\hlstd{C}\hlopt{,}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"crossprod(B,\ C)"}\hlstd{}\hlopt{{)}\ =\ }\hlstd{B}\hlopt{.}\hlstd{}\hlkwd{adjoint}\hlstd{}\hlopt{()\ {*}\ }\hlstd{C}\hlopt{);}\hlstd{}\hspace*{\fill}\\
+  \mbox{}
+  \normalfont
+  \normalsize
+  \hrule
+  \caption{\code{prodCpp}: Product and cross-product of two matrices.
+  \label{prod}}
+\end{figure}
+%
+\begin{CodeInput}
+R> fprod <- cxxfunction(signature(BB = "matrix", CC = "matrix"),
++    prodCpp, "RcppEigen")
+R> B <- matrix(1:4, ncol = 2)
+R> C <- matrix(6:1, nrow = 2)
+R> str(fp <- fprod(B, C))
+\end{CodeInput}
+\begin{CodeOutput}
+List of 2
+ $ B %*% C        : int [1:2, 1:3] 21 32 13 20 5 8
+ $ crossprod(B, C): int [1:2, 1:3] 16 38 10 24 4 10
+\end{CodeOutput}
+\begin{CodeInput}
+R> stopifnot(all.equal(fp[[1]], B %*% C), all.equal(fp[[2]], crossprod(B, C)))
+\end{CodeInput}
+%
+Note that the \code{create} class method for \code{Rcpp::List}
+implicitly applies \code{Rcpp::wrap} to its arguments.
+
+\subsection{Crossproduct of a single matrix}
+\label{sec:crossproduct}
+
+As shown in the last example, the \proglang{R} function
+\code{crossprod} calculates the product of the transpose of its first
+argument with its second argument.  The single argument form,
+\code{crossprod(X)}, evaluates $\bm X^\top\bm X$.  One could, of
+course, calculate this product as
+\begin{verbatim}
+  t(X) %*% X
+\end{verbatim}
+but \code{crossprod(X)} is roughly twice as fast because the result is
+known to be symmetric and only one triangle needs to be calculated.
+The function \code{tcrossprod} evaluates \code{crossprod(t(X))}
+without actually forming the transpose.
+
+To express these calculations in \pkg{Eigen}, a
+\code{SelfAdjointView}---which is a dense matrix of which only one
+triangle is used, the other triangle being inferred from the
+symmetry---is created.  (The characterization ``self-adjoint'' is
+equivalent to symmetric for non-complex matrices.)
+
+The \pkg{Eigen} class name is \code{SelfAdjointView}.  The method for
+general matrices that produces such a view is called
+\code{selfadjointView}.  Both require specification of either the
+\code{Lower} or \code{Upper} triangle.
+
+For triangular matrices the class is \code{TriangularView} and the
+method is \code{triangularView}.  The triangle can be specified as
+\code{Lower}, \code{UnitLower}, \code{StrictlyLower}, \code{Upper},
+\code{UnitUpper} or \code{StrictlyUpper}.
+
+For self-adjoint views the \code{rankUpdate} method adds a scalar multiple
+of $\bm A\bm A^\top$ to the current symmetric matrix.  The scalar
+multiple defaults to 1.  The code in Figure~\ref{crossprod} produces
+both $\bm A^\top\bm A$ and $\bm A\bm A^\top$ from a matrix $\bm A$.
+
+\begin{figure}[t!]
+  \hrule \smallskip
+    \noindent
+    \ttfamily
+    \hlstd{}\hlkwa{using\ }\hlstd{Eigen}\hlopt{::}\hlstd{Map}\hlopt{;}\hspace*{\fill}\\
+    \hlstd{}\hlkwa{using\ }\hlstd{Eigen}\hlopt{::}\hlstd{MatrixXi}\hlopt{;}\hspace*{\fill}\\
+    \hlstd{}\hlkwa{using\ }\hlstd{Eigen}\hlopt{::}\hlstd{Lower}\hlopt{;}\hspace*{\fill}\\
+    \hlstd{}\hspace*{\fill}\\
+    \hlkwb{const\ }\hlstd{Map}\hlopt{$<$}\hlstd{MatrixXi}\hlopt{$>$\ }\hlstd{}\hlkwd{A}\hlstd{}\hlopt{(}\hlstd{as}\hlopt{$<$}\hlstd{Map}\hlopt{$<$}\hlstd{MatrixXi}\hlopt{$>$\ $>$(}\hlstd{AA}\hlopt{));}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ int}\hlstd{\ \ \ \ \ \ \ \ \ \ \ }\hlkwb{}\hlstd{}\hlkwd{m}\hlstd{}\hlopt{(}\hlstd{A}\hlopt{.}\hlstd{}\hlkwd{rows}\hlstd{}\hlopt{()),\ }\hlstd{}\hlkwd{n}\hlstd{}\hlopt{(}\hlstd{A}\hlopt{.}\hlstd{}\hlkwd{cols}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+    \hlstd{MatrixXi}\hlstd{\ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlkwd{AtA}\hlstd{}\hlopt{(}\hlstd{}\hlkwd{MatrixXi}\hlstd{}\hlopt{(}\hlstd{n}\hlopt{,\ }\hlstd{n}\hlopt{).}\hlstd{}\hlkwd{setZero}\hlstd{}\hlopt{().}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{selfadjointView}\hlopt{$<$}\hlstd{Lower}\hlopt{$>$().}\hlstd{}\hlkwd{rankUpdate}\hlstd{}\hlopt{(}\hlstd{A}\hlopt{.}\hlstd{}\hlkwd{adjoint}\hlstd{}\hlopt{()));}\hspace*{\fill}\\
+    \hlstd{MatrixXi}\hlstd{\ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlkwd{AAt}\hlstd{}\hlopt{(}\hlstd{}\hlkwd{MatrixXi}\hlstd{}\hlopt{(}\hlstd{m}\hlopt{,\ }\hlstd{m}\hlopt{).}\hlstd{}\hlkwd{setZero}\hlstd{}\hlopt{().}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{selfadjointView}\hlopt{$<$}\hlstd{Lower}\hlopt{$>$().}\hlstd{}\hlkwd{rankUpdate}\hlstd{}\hlopt{(}\hlstd{A}\hlopt{));}\hspace*{\fill}\\
+    \hlstd{}\hspace*{\fill}\\
+    \hlkwa{return\ }\hlstd{List}\hlopt{::}\hlstd{}\hlkwd{create}\hlstd{}\hlopt{(}\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"crossprod(A)"}\hlstd{}\hlopt{{)}}\hlstd{\ \ }\hlopt{=\ }\hlstd{AtA}\hlopt{,}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"tcrossprod(A)"}\hlstd{}\hlopt{{)}\ =\ }\hlstd{AAt}\hlopt{);}\hlstd{}\hspace*{\fill}
+    \normalfont
+    \normalsize
+  \hrule
+  \caption{\code{crossprodCpp}: Cross-product and transposed cross-product of a single matrix.
+  \label{crossprod}}
+\end{figure}
+\begin{CodeInput}
+R> fcprd <- cxxfunction(signature(AA = "matrix"), crossprodCpp, "RcppEigen")
+R> str(crp <- fcprd(A))
+\end{CodeInput}
+\begin{CodeOutput}
+List of 2
+ $ crossprod(A) : int [1:2, 1:2] 14 32 32 77
+ $ tcrossprod(A): int [1:3, 1:3] 17 22 27 22 29 36 27 36 45
+\end{CodeOutput}
+\begin{CodeInput}
+R> stopifnot(all.equal(crp[[1]], crossprod(A)),
++    all.equal(crp[[2]], tcrossprod(A)))
+\end{CodeInput}
+To some, the expressions in Figure~\ref{crossprod} to construct
+\code{AtA} and \code{AAt} are compact and elegant.  To others they are
+hopelessly confusing.  If you find yourself in the latter group, you
+just need to read the expression left to right.  So, for example, we
+construct \code{AAt} by creating a general integer matrix of size
+$m\times m$ (where $\bm A$ is $m\times n$), ensuring that all its
+elements are zero, regarding it as a self-adjoint (i.e., symmetric) matrix
+using the elements in the lower triangle, then adding $\bm A\bm A^\top$
+to it and converting back to a general matrix form (i.e., the strict lower
+triangle is copied into the strict upper triangle).
+
+In more detail:
+\begin{enumerate}
+\item \code{MatrixXi(n, n)} creates an $n\times n$ integer matrix with
+  arbitrary contents
+\item \code{.setZero()} zeros out the contents of the matrix
+\item \code{.selfAdjointView<Lower>()} causes what follows to treat
+  the matrix as a symmetric matrix in which only the lower triangle is
+  used, the strict upper triangle being inferred by symmetry
+\item \code{.rankUpdate(A)} forms the sum $\bm B+\bm A\bm A^\top$
+  where $\bm B$ is the symmetric matrix of zeros created in the
+  previous steps.
+\end{enumerate}
+The assignment of this symmetric matrix to the (general)
+\code{MatrixXi} object \code{AAt} causes the result to be symmetrized
+during the assignment.
+
+For these products one could define the symmetric matrix from either
+the lower triangle or the upper triangle as the result will be
+symmetrized before it is returned.
+
+To cut down on repetition of \code{using} statements we gather them in
+a character variable, \code{incl}, that will be given as the \code{includes} argument
+in the calls to \code{cxxfunction}.  We also define a utility
+function, \code{AtA}, that returns the crossproduct matrix as shown in Figure~\ref{fig:incl}
+
+\begin{figure}[t!]
+  \hrule \smallskip
+  \noindent
+  \ttfamily
+  \hlstd{}\hlkwa{using}\hlstd{\ \ \ }\hlkwa{}\hlstd{Eigen}\hlopt{::}\hlstd{LLT}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{using}\hlstd{\ \ \ }\hlkwa{}\hlstd{Eigen}\hlopt{::}\hlstd{Lower}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{using}\hlstd{\ \ \ }\hlkwa{}\hlstd{Eigen}\hlopt{::}\hlstd{Map}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{using}\hlstd{\ \ \ }\hlkwa{}\hlstd{Eigen}\hlopt{::}\hlstd{MatrixXd}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{using}\hlstd{\ \ \ }\hlkwa{}\hlstd{Eigen}\hlopt{::}\hlstd{MatrixXi}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{using}\hlstd{\ \ \ }\hlkwa{}\hlstd{Eigen}\hlopt{::}\hlstd{Upper}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{using}\hlstd{\ \ \ }\hlkwa{}\hlstd{Eigen}\hlopt{::}\hlstd{VectorXd}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwc{typedef\ }\hlstd{Map}\hlopt{$<$}\hlstd{MatrixXd}\hlopt{$>$}\hlstd{\ \ }\hlopt{}\hlstd{MapMatd}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwc{typedef\ }\hlstd{Map}\hlopt{$<$}\hlstd{MatrixXi}\hlopt{$>$}\hlstd{\ \ }\hlopt{}\hlstd{MapMati}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwc{typedef\ }\hlstd{Map}\hlopt{$<$}\hlstd{VectorXd}\hlopt{$>$}\hlstd{\ \ }\hlopt{}\hlstd{MapVecd}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwc{inline\ }\hlstd{MatrixXd\ }\hlkwd{AtA}\hlstd{}\hlopt{(}\hlstd{}\hlkwb{const\ }\hlstd{MapMatd}\hlopt{\&\ }\hlstd{A}\hlopt{)\ \{}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwb{int}\hlstd{\ \ \ \ }\hlkwb{}\hlstd{}\hlkwd{n}\hlstd{}\hlopt{(}\hlstd{A}\hlopt{.}\hlstd{}\hlkwd{cols}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwa{return}\hlstd{\ \ \ }\hlkwa{}\hlstd{}\hlkwd{MatrixXd}\hlstd{}\hlopt{(}\hlstd{n}\hlopt{,}\hlstd{n}\hlopt{).}\hlstd{}\hlkwd{setZero}\hlstd{}\hlopt{().}\hlstd{selfadjointView}\hlopt{$<$}\hlstd{Lower}\hlopt{$>$()}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlopt{.}\hlstd{}\hlkwd{rankUpdate}\hlstd{}\hlopt{(}\hlstd{A}\hlopt{.}\hlstd{}\hlkwd{adjoint}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+  \hlstd{}\hlopt{\}}\hlstd{}\hspace*{\fill}\\
+  \mbox{}
+  \normalfont
+  \normalsize
+  \hrule
+  \caption{The contents of the character vector, \code{incl}, that will preface \proglang{C++} code segments that follow.
+  \label{fig:incl}}
+\end{figure}
+
+\subsection{Cholesky decomposition of the crossprod}
+\label{sec:chol}
+
+The Cholesky decomposition of the positive-definite, symmetric matrix,
+$\bm A$, can be written in several forms.  Numerical analysts define
+the ``LLt'' form as the lower triangular matrix, $\bm L$, such that
+$\bm A=\bm L\bm L^\top$ and the ``LDLt'' form as a unit lower
+triangular matrix $\bm L$ and a diagonal matrix $\bm D$ with positive
+diagonal elements such that $\bm A=\bm L\bm D\bm L^\top$.
+Statisticians often write the decomposition as $\bm A=\bm R^\top\bm
+R$ where $\bm R$ is an upper triangular matrix.  Of course, this $\bm
+R$ is simply the transpose of $\bm L$ from the ``LLt'' form.
+
+The templated \pkg{Eigen} classes for the LLt and LDLt forms are
+called \code{LLT} and \code{LDLT} and the corresponding methods are
+\code{.llt()} and \code{.ldlt()}.
+Because the Cholesky decomposition involves taking square roots, we
+pass a numeric matrix, $\bm A$, not an integer matrix.
+%
+\begin{figure}[t!]
+  \hrule \smallskip
+  \noindent
+  \ttfamily
+  \hlstd{}\hlkwb{const}\hlstd{\ \ }\hlkwb{}\hlstd{LLT}\hlopt{$<$}\hlstd{MatrixXd}\hlopt{$>$\ }\hlstd{}\hlkwd{llt}\hlstd{}\hlopt{(}\hlstd{}\hlkwd{AtA}\hlstd{}\hlopt{(}\hlstd{as}\hlopt{$<$}\hlstd{MapMatd}\hlopt{$>$(}\hlstd{AA}\hlopt{)));}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{return\ }\hlstd{List}\hlopt{::}\hlstd{}\hlkwd{create}\hlstd{}\hlopt{(}\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"L"}\hlstd{}\hlopt{{)}\ =\ }\hlstd{}\hlkwd{MatrixXd}\hlstd{}\hlopt{(}\hlstd{llt}\hlopt{.}\hlstd{}\hlkwd{matrixL}\hlstd{}\hlopt{()),}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"R"}\hlstd{}\hlopt{{)}\ =\ }\hlstd{}\hlkwd{MatrixXd}\hlstd{}\hlopt{(}\hlstd{llt}\hlopt{.}\hlstd{}\hlkwd{matrixU}\hlstd{}\hlopt{()));}\hlstd{}\hspace*{\fill}\\
+  \mbox{}
+  \normalfont
+  \normalsize
+  \hrule
+  \caption{\code{cholCpp}: Cholesky decomposition of a cross-product.
+  \label{chol}}
+\end{figure}
+%
+\begin{CodeInput}
+R> storage.mode(A) <- "double"
+R> fchol <- cxxfunction(signature(AA = "matrix"), cholCpp, "RcppEigen", incl)
+R> (ll <- fchol(A))
+\end{CodeInput}
+\begin{CodeOutput}
+$L
+        [,1]    [,2]
+[1,] 3.74166 0.00000
+[2,] 8.55236 1.96396
+
+$R
+        [,1]    [,2]
+[1,] 3.74166 8.55236
+[2,] 0.00000 1.96396
+\end{CodeOutput}
+\begin{CodeInput}
+R> stopifnot(all.equal(ll[[2]], chol(crossprod(A))))
+\end{CodeInput}
+
+
+
+\subsection{Determinant of the cross-product matrix}
+\label{sec:determinant}
+
+The ``D-optimal'' criterion for experimental design chooses the design
+that maximizes the determinant, $|\bm X^\top\bm X|$, for the
+$n\times p$ model matrix (or Jacobian matrix), $\bm X$.  The
+determinant, $|\bm L|$, of the $p\times p$ lower Cholesky factor
+$\bm L$, defined so that $\bm L\bm L^\top=\bm X^\top\bm X$, is
+the product of its diagonal elements, as is the case for any
+triangular matrix.  By the properties of determinants,
+\begin{displaymath}
+  |\bm X^\top\bm X|=|\bm L\bm L^\top|=|\bm L|\,|\bm L^\top|=|\bm L|^2
+\end{displaymath}
+
+Alternatively, if using the ``LDLt'' decomposition, $\bm L\bm D\bm
+L^\top=\bm X^\top\bm X$ where $\bm L$ is unit lower triangular and
+$\bm D$ is diagonal then $|\bm X^\top\bm X|$ is the product of the
+diagonal elements of $\bm D$.  Because it is known that the diagonal
+elements of $\bm D$ must be non-negative, one often evaluates the
+logarithm of the determinant as the sum of the logarithms of the
+diagonal elements of $\bm D$.  Several options are shown in
+Figure~\ref{cholDet}.
+%
+\begin{figure}[t!]
+  \hrule \smallskip
+    \noindent
+    \ttfamily
+    \hlstd{}\hlkwb{const\ }\hlstd{MatrixXd}\hlstd{\ \ }\hlstd{}\hlkwd{ata}\hlstd{}\hlopt{(}\hlstd{}\hlkwd{AtA}\hlstd{}\hlopt{(}\hlstd{as}\hlopt{$<$}\hlstd{MapMatd}\hlopt{$>$(}\hlstd{AA}\hlopt{)));}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ double}\hlstd{\ \ \ }\hlkwb{}\hlstd{}\hlkwd{detL}\hlstd{}\hlopt{(}\hlstd{}\hlkwd{MatrixXd}\hlstd{}\hlopt{(}\hlstd{ata}\hlopt{.}\hlstd{}\hlkwd{llt}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{matrixL}\hlstd{}\hlopt{()).}\hlstd{}\hlkwd{diagonal}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{prod}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{VectorXd\ }\hlkwd{Dvec}\hlstd{}\hlopt{(}\hlstd{ata}\hlopt{.}\hlstd{}\hlkwd{ldlt}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{vectorD}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+    \hlstd{}\hlkwa{return\ }\hlstd{List}\hlopt{::}\hlstd{}\hlkwd{create}\hlstd{}\hlopt{(}\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"d1"}\hlstd{}\hlopt{{)}\ =\ }\hlstd{detL\ }\hlopt{{*}\ }\hlstd{detL}\hlopt{,}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"d2"}\hlstd{}\hlopt{{)}\ =\ }\hlstd{Dvec}\hlopt{.}\hlstd{}\hlkwd{prod}\hlstd{}\hlopt{(),}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"ld"}\hlstd{}\hlopt{{)}\ =\ }\hlstd{Dvec}\hlopt{.}\hlstd{}\hlkwd{array}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{log}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{sum}\hlstd{}\hlopt{());}\hlstd{}\hspace*{\fill}\\
+    \mbox{}
+    \normalfont
+    \normalsize
+  \hrule
+  \caption{\code{cholDetCpp}: Determinant of a cross-product using
+    the ``LLt'' and ``LDLt'' forms of the Cholesky decomposition.}
+  \label{cholDet}
+\end{figure}
+%
+\begin{CodeInput}
+R> fdet <- cxxfunction(signature(AA = "matrix"), cholDetCpp, "RcppEigen",
++    incl)
+R> unlist(ll <- fdet(A))
+\end{CodeInput}
+\begin{CodeOutput}
+      d1       d2       ld
+54.00000 54.00000  3.98898
+\end{CodeOutput}
+%
+Note the use of the \code{array()} method in the calculation of the
+log-determinant.  Because the \code{log()} method applies to arrays,
+not to vectors or matrices, an array must be created from \code{Dvec}
+before applying the \code{log()} method.
+
+\section{Least squares solutions}
+\label{sec:leastSquares}
+
+A common operation in statistical computing is calculating a least
+squares solution, $\widehat{\bm\beta}$, defined as
+\begin{displaymath}
+  \widehat{\bm\beta}=\argmin_{\bm \beta}\|\bm y-\bm X\bm\beta\|^2
+\end{displaymath}
+where the model matrix, $\bm X$, is $n\times p$ ($n\ge p$) and $\bm y$
+is an $n$-dimensional response vector.  There are several ways, based
+on matrix decompositions, to determine such a solution.  Earlier, two forms
+of the Cholesky decomposition were discussed: ``LLt'' and
+``LDLt'', which can both be used to solve for $\widehat{\bm\beta}$.  Other
+decompositions that can be used are the QR decomposition, with or
+without column pivoting, the singular value decomposition and the
+eigendecomposition of a symmetric matrix.
+
+Determining a least squares solution is relatively straightforward.
+However, statistical computing often requires additional information,
+such as the standard errors of the coefficient estimates.  Calculating
+these involves evaluating the diagonal elements of $\left(\bm
+  X^\top\bm X\right)^{-1}$ and the residual sum of squares, $\|\bm
+y-\bm X\widehat{\bm\beta}\|^2$.
+
+\subsection{Least squares using the ``LLt'' Cholesky}
+\label{sec:LLtLeastSquares}
+
+\begin{figure}[t!]
+  \hrule \smallskip
+  \noindent
+  \ttfamily
+  \hlstd{}\hlkwb{const\ }\hlstd{MapMatd}\hlstd{\ \ \ \ \ \ \ \ \ }\hlstd{}\hlkwd{X}\hlstd{}\hlopt{(}\hlstd{as}\hlopt{$<$}\hlstd{MapMatd}\hlopt{$>$(}\hlstd{XX}\hlopt{));}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ }\hlstd{MapVecd}\hlstd{\ \ \ \ \ \ \ \ \ }\hlstd{}\hlkwd{y}\hlstd{}\hlopt{(}\hlstd{as}\hlopt{$<$}\hlstd{MapVecd}\hlopt{$>$(}\hlstd{yy}\hlopt{));}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ int}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ }\hlkwb{}\hlstd{}\hlkwd{n}\hlstd{}\hlopt{(}\hlstd{X}\hlopt{.}\hlstd{}\hlkwd{rows}\hlstd{}\hlopt{()),\ }\hlstd{}\hlkwd{p}\hlstd{}\hlopt{(}\hlstd{X}\hlopt{.}\hlstd{}\hlkwd{cols}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ }\hlstd{LLT}\hlopt{$<$}\hlstd{MatrixXd}\hlopt{$>$\ }\hlstd{}\hlkwd{llt}\hlstd{}\hlopt{(}\hlstd{}\hlkwd{AtA}\hlstd{}\hlopt{(}\hlstd{X}\hlopt{));}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ }\hlstd{VectorXd}\hlstd{\ \ }\hlstd{}\hlkwd{betahat}\hlstd{}\hlopt{(}\hlstd{llt}\hlopt{.}\hlstd{}\hlkwd{solve}\hlstd{}\hlopt{(}\hlstd{X}\hlopt{.}\hlstd{}\hlkwd{adjoint}\hlstd{}\hlopt{()\ {*}\ }\hlstd{y}\hlopt{));}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ }\hlstd{VectorXd}\hlstd{\ \ \ }\hlstd{}\hlkwd{fitted}\hlstd{}\hlopt{(}\hlstd{X\ }\hlopt{{*}\ }\hlstd{betahat}\hlopt{);}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ }\hlstd{VectorXd}\hlstd{\ \ \ \ }\hlstd{}\hlkwd{resid}\hlstd{}\hlopt{(}\hlstd{y\ }\hlopt{{-}\ }\hlstd{fitted}\hlopt{);}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ int}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlkwb{}\hlstd{}\hlkwd{df}\hlstd{}\hlopt{(}\hlstd{n\ }\hlopt{{-}\ }\hlstd{p}\hlopt{);}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ double}\hlstd{\ \ \ \ \ \ \ \ \ \ }\hlkwb{}\hlstd{}\hlkwd{s}\hlstd{}\hlopt{(}\hlstd{resid}\hlopt{.}\hlstd{}\hlkwd{norm}\hlstd{}\hlopt{()\ /\ }\hlstd{std}\hlopt{::}\hlstd{}\hlkwd{sqrt}\hlstd{}\hlopt{(}\hlstd{}\hlkwb{double}\hlstd{}\hlopt{(}\hlstd{df}\hlopt{)));}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ }\hlstd{VectorXd}\hlstd{\ \ \ \ \ \ \ }\hlstd{}\hlkwd{se}\hlstd{}\hlopt{(}\hlstd{s\ }\hlopt{{*}\ }\hlstd{llt}\hlopt{.}\hlstd{}\hlkwd{matrixL}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{solve}\hlstd{}\hlopt{(}\hlstd{MatrixXd}\hlopt{::}\hlstd{}\hlkwd{Identity}\hlstd{}\hlopt{(}\hlstd{p}\hlopt{,\ }\hlstd{p}\hlopt{))}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlopt{.}\hlstd{}\hlkwd{colwise}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{norm}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{return}\hlstd{\ \ \ \ \ }\hlkwa{}\hlstd{List}\hlopt{::}\hlstd{}\hlkwd{create}\hlstd{}\hlopt{(}\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"coefficients"}\hlstd{}\hlopt{{)}}\hlstd{\ \ \ }\hlopt{=\ }\hlstd{betahat}\hlopt{,}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"fitted.values"}\hlstd{}\hlopt{{)}}\hlstd{\ \ }\hlopt{=\ }\hlstd{fitted}\hlopt{,}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"residuals"}\hlstd{}\hlopt{{)}}\hlstd{\ \ \ \ \ \ }\hlopt{=\ }\hlstd{resid}\hlopt{,}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"s"}\hlstd{}\hlopt{{)}}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlopt{=\ }\hlstd{s}\hlopt{,}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"df.residual"}\hlstd{}\hlopt{{)}}\hlstd{\ \ \ \ }\hlopt{=\ }\hlstd{df}\hlopt{,}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"rank"}\hlstd{}\hlopt{{)}}\hlstd{\ \ \ \ \ \ \ \ \ \ \ }\hlopt{=\ }\hlstd{p}\hlopt{,}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"Std.\ Error"}\hlstd{}\hlopt{{)}}\hlstd{\ \ \ \ \ }\hlopt{=\ }\hlstd{se}\hlopt{);}\hlstd{}\hspace*{\fill}\\
+  \mbox{}
+  \normalfont
+  \normalsize
+  \hrule
+  \caption{\code{lltLSCpp}: Least squares using the Cholesky decomposition.
+  \label{lltLS}}
+\end{figure}
+Figure~\ref{lltLS} shows a calculation of the least squares coefficient estimates
+(\code{betahat}) and the standard errors (\code{se}) through an
+``LLt'' Cholesky decomposition of the crossproduct of the model
+matrix, $\bm X$.  Next, the results from this calculation are compared
+to those from the \code{lm.fit} function in \proglang{R}
+(\code{lm.fit} is the workhorse function called by \code{lm} once the
+model matrix and response have been evaluated).
+\begin{CodeInput}
+R> lltLS <- cxxfunction(signature(XX = "matrix", yy = "numeric"), lltLSCpp,
++    "RcppEigen", incl)
+R> data("trees", package = "datasets")
+R> str(lltFit <- with(trees, lltLS(cbind(1, log(Girth)), log(Volume))))
+\end{CodeInput}
+\begin{CodeOutput}
+List of 7
+ $ coefficients : num [1:2] -2.35 2.2
+ $ fitted.values: num [1:31] 2.3 2.38 2.43 2.82 2.86 ...
+ $ residuals    : num [1:31] 0.0298 -0.0483 -0.1087 -0.0223 0.0727 ...
+ $ s            : num 0.115
+ $ df.residual  : int 29
+ $ rank         : int 2
+ $ Std. Error   : num [1:2] 0.2307 0.0898
+R> str(lmFit <- with(trees, lm.fit(cbind(1, log(Girth)), log(Volume))))
+List of 8
+ $ coefficients : Named num [1:2] -2.35 2.2
+  ..- attr(*, "names")= chr [1:2] "x1" "x2"
+ $ residuals    : num [1:31] 0.0298 -0.0483 -0.1087 -0.0223 0.0727 ...
+ $ effects      : Named num [1:31] -18.2218 2.8152 -0.1029 -0.0223 0.0721 ...
+  ..- attr(*, "names")= chr [1:31] "x1" "x2" "" "" ...
+ $ rank         : int 2
+ $ fitted.values: num [1:31] 2.3 2.38 2.43 2.82 2.86 ...
+ $ assign       : NULL
+ $ qr           :List of 5
+  ..$ qr   : num [1:31, 1:2] -5.57 0.18 0.18 0.18 0.18 ...
+  ..$ qraux: num [1:2] 1.18 1.26
+  ..$ pivot: int [1:2] 1 2
+  ..$ tol  : num 1e-07
+  ..$ rank : int 2
+  ..- attr(*, "class")= chr "qr"
+ $ df.residual  : int 29
+\end{CodeOutput}
+\begin{CodeInput}
+R> for(nm in c("coefficients", "residuals", "fitted.values", "rank"))
++    stopifnot(all.equal(lltFit[[nm]], unname(lmFit[[nm]])))
+R> stopifnot(all.equal(lltFit[["Std. Error"]],
++    unname(coef(summary(lm(log(Volume) ~ log(Girth), trees)))[,2])))
+\end{CodeInput}
+There are several aspects of the \proglang{C++} code in
+Figure~\ref{lltLS} worth mentioning.  The \code{solve} method for the
+\code{LLT} object evaluates, in this case, $\left(\bm X^\top\bm
+  X\right)^{-1}\bm X^\top\bm y$ but without actually evaluating the
+inverse.  The calculation of the residuals, $\bm y-\widehat{\bm y}$,
+can be written, as in \proglang{R}, as \code{y - fitted}. (But note
+that \pkg{Eigen} classes do not have a ``recycling rule'' as in
+\proglang{R}.  That is, the two vector operands must have the same
+length.)  The \code{norm()} method evaluates the square root of the
+sum of squares of the elements of a vector.  Although one does not
+explicitly evaluate $\left(\bm X^\top\bm X\right)^{-1}$ one does
+evaluate $\bm L^{-1}$ to obtain the standard errors.  Note also the
+use of the \code{colwise()} method in the evaluation of the standard
+errors.  It applies a method to the columns of a matrix, returning a
+vector.  The \pkg{Eigen} \code{colwise()} and \code{rowwise()} methods
+are similar in effect to the \code{apply} function in \proglang{R}.
+
+In the descriptions of other methods for solving least squares
+problems, much of the code parallels that shown in
+Figure~\ref{lltLS}.  The redundant parts are omitted, and only
+the evaluation of the coefficients, the rank and the standard errors is shown.
+Actually, the standard errors are calculated only up to the scalar
+multiple of $s$, the residual standard error, in these code fragments.
+The calculation of the residuals and $s$ and the scaling of the
+coefficient standard errors is the same for all methods.  (See the
+files \code{fastLm.h} and \code{fastLm.cpp} in the \pkg{RcppEigen}
+source package for details.)
+
+
+\subsection{Least squares using the unpivoted QR decomposition}
+\label{sec:QR}
+
+A QR decomposition has the form
+\begin{displaymath}
+  \bm X=\bm Q\bm R=\bm Q_1\bm R_1
+\end{displaymath}
+where $\bm Q$ is an $n\times n$ orthogonal matrix, which means that
+$\bm Q^\top\bm Q=\bm Q\bm Q^\top=\bm I_n$, and the $n\times p$
+matrix $\bm R$ is zero below the main diagonal.  The $n\times p$
+matrix $\bm Q_1$ is the first $p$ columns of $\bm Q$ and the $p\times
+p$ upper triangular matrix $\bm R_1$ is the top $p$ rows of $\bm R$.
+There are three \pkg{Eigen} classes for the QR decomposition:
+\code{HouseholderQR} provides the basic QR decomposition using
+Householder transformations, \code{ColPivHouseholderQR} incorporates
+column pivots and \code{FullPivHouseholderQR} incorporates both row
+and column pivots.
+
+Figure~\ref{QRLS} shows a least squares solution using the unpivoted
+QR decomposition.
+The calculations in Figure~\ref{QRLS} are quite similar to those in
+Figure~\ref{lltLS}.  In fact, if one had extracted the upper
+triangular factor (the \code{matrixU()} method) from the \code{LLT}
+object in Figure~\ref{lltLS}, the rest of the code would be nearly
+identical.
+
+\begin{figure}[t!]
+  \hrule \smallskip
+    \noindent
+    \ttfamily
+    \hlstd{}\hlkwa{using\ }\hlstd{Eigen}\hlopt{::}\hlstd{HouseholderQR}\hlopt{;}\hspace*{\fill}\\
+    \hlstd{}\hspace*{\fill}\\
+    \hlkwb{const\ }\hlstd{HouseholderQR}\hlopt{$<$}\hlstd{MatrixXd}\hlopt{$>$\ }\hlstd{}\hlkwd{QR}\hlstd{}\hlopt{(}\hlstd{X}\hlopt{);}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{VectorXd\ }\hlkwd{betahat}\hlstd{}\hlopt{(}\hlstd{QR}\hlopt{.}\hlstd{}\hlkwd{solve}\hlstd{}\hlopt{(}\hlstd{y}\hlopt{));}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{VectorXd}\hlstd{\ \ }\hlstd{}\hlkwd{fitted}\hlstd{}\hlopt{(}\hlstd{X\ }\hlopt{{*}\ }\hlstd{betahat}\hlopt{);}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ int}\hlstd{\ \ \ \ \ \ \ \ \ \ \ }\hlkwb{}\hlstd{}\hlkwd{df}\hlstd{}\hlopt{(}\hlstd{n\ }\hlopt{{-}\ }\hlstd{p}\hlopt{);}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{VectorXd}\hlstd{\ \ \ \ \ \ }\hlstd{}\hlkwd{se}\hlstd{}\hlopt{(}\hlstd{QR}\hlopt{.}\hlstd{}\hlkwd{matrixQR}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{topRows}\hlstd{}\hlopt{(}\hlstd{p}\hlopt{).}\hlstd{triangularView}\hlopt{$<$}\hlstd{Upper}\hlopt{$>$()}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlopt{.}\hlstd{}\hlkwd{solve}\hlstd{}\hlopt{(}\hlstd{MatrixXd}\hlopt{::}\hlstd{}\hlkwd{Identity}\hlstd{}\hlopt{(}\hlstd{p}\hlopt{,}\hlstd{p}\hlopt{)).}\hlstd{}\hlkwd{rowwise}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{norm}\hlstd{}\hlopt{());}\hlstd{}\hspace*{\fill}\\
+    \mbox{}
+    \normalfont
+    \normalsize
+    \hrule
+    \caption{\code{QRLSCpp}: Least squares using the unpivoted QR decomposition.
+    \label{QRLS}}
+\end{figure}
+
+\subsection{Handling the rank-deficient case}
+\label{sec:rankdeficient}
+
+One important consideration when determining least squares solutions
+is whether $\rank(\bm X)$ is $p$, a situation described by saying
+that $\bm X$ has ``full column rank''.   When $\bm X$ does not have
+full column rank it is said to be ``rank deficient''.
+
+Although the theoretical rank of a matrix is well-defined, its
+evaluation in practice is not.  At best one can compute an effective
+rank according to some tolerance.  Decompositions that allow to
+estimation of the rank of the matrix in this way are said to be
+``rank-revealing''.
+
+Because the \code{model.matrix} function in \proglang{R} does a
+considerable amount of symbolic analysis behind the scenes, one usually
+ends up with full-rank model matrices.  The common cases of
+rank-deficiency, such as incorporating both a constant term and a full
+set of indicators columns for the levels of a factor, are eliminated.
+Other, more subtle, situations will not be detected at this stage,
+however.  A simple example occurs when there is a ``missing cell'' in a
+two-way layout and the interaction of the two factors is included in
+the model.
+\begin{CodeInput}
+R> dd <- data.frame(f1 = gl(4, 6, labels = LETTERS[1:4]),
++    f2 = gl(3, 2, labels = letters[1:3]))[-(7:8), ]
+R> xtabs(~ f2 + f1, dd)
+\end{CodeInput}
+\begin{CodeOutput}
+   f1
+f2  A B C D
+  a 2 0 2 2
+  b 2 2 2 2
+  c 2 2 2 2
+\end{CodeOutput}
+\begin{CodeInput}
+R> mm <- model.matrix(~ f1 * f2, dd)
+R> kappa(mm)
+\end{CodeInput}
+\begin{CodeOutput}
+[1] 4.30923e+16
+\end{CodeOutput}
+This yields a large condition number, indicating rank deficiency. Alternatively,
+the reciprocal condition number can be evaluated.
+\begin{CodeInput}
+R> rcond(mm)
+\end{CodeInput}
+\begin{CodeOutput}
+[1] 2.3206e-17
+\end{CodeOutput}
+\begin{CodeInput}
+R> (c(rank = qr(mm)$rank, p = ncol(mm)))
+\end{CodeInput}
+\begin{CodeOutput}
+rank    p
+  11   12
+\end{CodeOutput}
+\begin{CodeInput}
+R> set.seed(1)
+R> dd$y <- mm %*% seq_len(ncol(mm)) + rnorm(nrow(mm), sd = 0.1)
+R> fm1 <- lm(y ~ f1 * f2, dd)
+R> writeLines(capture.output(print(summary(fm1),
++    signif.stars = FALSE))[9:22])
+\end{CodeInput}
+\begin{CodeOutput}
+Coefficients: (1 not defined because of singularities)
+            Estimate Std. Error t value Pr(>|t|)
+(Intercept)   0.9779     0.0582    16.8  3.4e-09
+f1B          12.0381     0.0823   146.3  < 2e-16
+f1C           3.1172     0.0823    37.9  5.2e-13
+f1D           4.0685     0.0823    49.5  2.8e-14
+f2b           5.0601     0.0823    61.5  2.6e-15
+f2c           5.9976     0.0823    72.9  4.0e-16
+f1B:f2b      -3.0148     0.1163   -25.9  3.3e-11
+f1C:f2b       7.7030     0.1163    66.2  1.2e-15
+f1D:f2b       8.9643     0.1163    77.1  < 2e-16
+f1B:f2c           NA         NA      NA       NA
+f1C:f2c      10.9613     0.1163    94.2  < 2e-16
+f1D:f2c      12.0411     0.1163   103.5  < 2e-16
+\end{CodeOutput}
+The \code{lm} function for fitting linear models in \proglang{R} uses
+a rank-revealing form of the QR decomposition.  When the model matrix
+is determined to be rank deficient, according to the threshold used in
+\proglang{R}'s \code{qr} function, the model matrix is reduced to
+$\rank{(\bm X)}$ columns by pivoting selected columns (those that are
+apparently linearly dependent on columns to their left) to the right
+hand side of the matrix.  A solution for this reduced model matrix is
+determined and the coefficients and standard errors for the redundant
+columns are flagged as missing.
+
+An alternative approach is to evaluate the ``pseudo-inverse'' of $\bm
+X$ from the singular value decomposition (SVD) of $\bm X$ or the
+eigendecomposition of $\bm X^\top\bm X$.  The SVD is of the form
+\begin{displaymath}
+  \bm X=\bm U\bm D\bm V^\top=\bm U_1\bm D_1\bm V^\top
+\end{displaymath}
+where $\bm U$ is an orthogonal $n\times n$ matrix and $\bm U_1$ is its
+leftmost $p$ columns, $\bm D$ is $n\times p$ and zero off the main
+diagonal so that $\bm D_1$ is a $p\times p$ diagonal matrix with
+non-increasing, non-negative diagonal elements, and $\bm V$ is a $p\times
+p$ orthogonal matrix.  The pseudo-inverse of $\bm D_1$, written $\bm
+D_1^+$ is a $p\times p$ diagonal matrix whose first $r=\rank(\bm X)$
+diagonal elements are the inverses of the corresponding diagonal
+elements of $\bm D_1$ and whose last $p-r$ diagonal elements are zero.
+The tolerance for determining if an element of the diagonal of $\bm D_1$
+is considered to be (effectively) zero is a multiple of the largest
+singular value (i.e., the $(1,1)$ element of $\bm D$).
+The pseudo-inverse, $\bm X^+$, of $\bm X$ is defined as
+\begin{displaymath}
+  \bm X^+=\bm V\bm D_1^+\bm U_1^\top .
+\end{displaymath}
+
+\begin{figure}[t!]
+  \hrule \smallskip
+  \noindent
+  \ttfamily
+  \hlstd{}\hlkwc{inline\ }\hlstd{ArrayXd\ }\hlkwd{Dplus}\hlstd{}\hlopt{(}\hlstd{}\hlkwb{const\ }\hlstd{ArrayXd}\hlopt{\&\ }\hlstd{d}\hlopt{)\ \{}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ }\hlstd{ArrayXd}\hlstd{\ \ \ }\hlstd{}\hlkwd{di}\hlstd{}\hlopt{(}\hlstd{d}\hlopt{.}\hlstd{}\hlkwd{size}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwb{double}\hlstd{\ \ }\hlkwb{}\hlstd{}\hlkwd{comp}\hlstd{}\hlopt{(}\hlstd{d}\hlopt{.}\hlstd{}\hlkwd{maxCoeff}\hlstd{}\hlopt{()\ {*}\ }\hlstd{}\hlkwd{threshold}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwa{for\ }\hlstd{}\hlopt{(}\hlstd{}\hlkwb{int\ }\hlstd{j\ }\hlopt{=\ }\hlstd{}\hlnum{0}\hlstd{}\hlopt{;\ }\hlstd{j\ }\hlopt{$<$\ }\hlstd{d}\hlopt{.}\hlstd{}\hlkwd{size}\hlstd{}\hlopt{();\ ++}\hlstd{j}\hlopt{)\ }\hlstd{di}\hlopt{{[}}\hlstd{j}\hlopt{{]}\ =\ (}\hlstd{d}\hlopt{{[}}\hlstd{j}\hlopt{{]}\ $<$\ }\hlstd{comp}\hlopt{)\ }\hlstd{?\ }\hlnum{0}\hlstd{}\hlopt{.\ :\ }\hlstd{}\hlnum{1}\hlstd{}\hlopt{./}\hlstd{d}\hlopt{{[}}\hlstd{j}\hlopt{{]};}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ }\hlstd{}\hlkwa{return\ }\hlstd{di}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlopt{\}}\hlstd{}\hspace*{\fill}\\
+  \mbox{}
+  \normalfont
+  \normalsize
+  \hrule
+  \caption{\code{DplusCpp}: Create the diagonal $\bm d^+$ of the pseudo-inverse, $\bm D_1^+$, from the array of singular values, $\bm d$.
+  \label{Dplus}}
+\end{figure}
+
+In Figure~\ref{Dplus} a utility function, \code{Dplus}, is defined to
+return the diagonal of the pseudo-inverse, $\bm D_1^+$, as an array,
+given the singular values (the diagonal of $\bm D_1$) as an array.
+Calculation of the maximum element of $\bm d$ (the method is called
+\code{.maxCoeff()}) and the use of a \code{threshold()} function
+provides greater generality for the function.  It can be used on the
+eigenvalues of $\bm X^\top\bm X$, as shown in
+Section~\ref{sec:eigendecomp}, even though these are returned in
+increasing order, as opposed to the decreasing order of the singular
+values.
+
+\subsection{Least squares using the SVD}
+\label{sec:SVDls}
+
+\begin{figure}[b!]
+  \hrule \smallskip
+    \noindent
+    \ttfamily
+    \hlkwb{const\ }\hlstd{Eigen}\hlopt{::}\hlstd{JacobiSVD}\hlopt{$<$}\hlstd{MatrixXd}\hlopt{$>$}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlkwd{UDV}\hlstd{}\hlopt{(}\hlstd{X}\hlopt{.}\hlstd{}\hlkwd{jacobiSvd}\hlstd{}\hlopt{(}\hlstd{Eigen}\hlopt{::}\hlstd{ComputeThinU}\hlopt{\textbar }\hlstd{Eigen}\hlopt{::}\hlstd{ComputeThinV}\hlopt{));}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{ArrayXd}\hlstd{\ \ \ \ \ \ \ }\hlstd{}\hlkwd{Dp}\hlstd{}\hlopt{(}\hlstd{}\hlkwd{Dplus}\hlstd{}\hlopt{(}\hlstd{UDV}\hlopt{.}\hlstd{}\hlkwd{singularValues}\hlstd{}\hlopt{()));}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ int}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlkwb{}\hlstd{}\hlkwd{r}\hlstd{}\hlopt{((}\hlstd{Dp\ }\hlopt{$>$\ }\hlstd{}\hlnum{0}\hlstd{}\hlopt{).}\hlstd{}\hlkwd{count}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{MatrixXd}\hlstd{\ \ \ \ \ }\hlstd{}\hlkwd{VDp}\hlstd{}\hlopt{(}\hlstd{UDV}\hlopt{.}\hlstd{}\hlkwd{matrixV}\hlstd{}\hlopt{()\ {*}\ }\hlstd{Dp}\hlopt{.}\hlstd{}\hlkwd{matrix}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{asDiagonal}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{VectorXd\ }\hlkwd{betahat}\hlstd{}\hlopt{(}\hlstd{VDp\ }\hlopt{{*}\ }\hlstd{UDV}\hlopt{.}\hlstd{}\hlkwd{matrixU}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{adjoint}\hlstd{}\hlopt{()\ {*}\ }\hlstd{y}\hlopt{);}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{VectorXd}\hlstd{\ \ \ \ \ \ }\hlstd{}\hlkwd{se}\hlstd{}\hlopt{(}\hlstd{s\ }\hlopt{{*}\ }\hlstd{VDp}\hlopt{.}\hlstd{}\hlkwd{rowwise}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{norm}\hlstd{}\hlopt{());}\hlstd{}\hspace*{\fill}\\
+    \mbox{}
+    \normalfont
+    \normalsize
+  \hrule
+  \caption{\code{SVDLSCpp}: Least squares using the SVD.
+  \label{SVDLS}}
+\end{figure}
+
+With these definitions the code for least squares using the singular
+value decomposition can be written as in Figure~\ref{SVDLS}.
+Even in the rank-deficient case this code will produce a complete set
+of coefficients and their standard errors.  The user must be careful
+to check if the computed rank is less than $p$, the number of columns
+in $\bm X$, in which case the estimated coefficients are just one of
+an infinite number of coefficient vectors that produce the same fitted
+values.  It happens that the solution from this pseudo-inverse is the
+minimum norm solution (in the sense that $\|\bm\beta\|^2$ is minimized
+among those $\bm\beta$ that minimize $\|\bm y-\bm X\bm\beta\|^2$).
+
+The standard errors of the coefficient estimates in the rank-deficient
+case must be interpreted carefully.  The solution with one or more missing
+coefficients, as returned by the \code{lm.fit} function in
+\proglang{R} and by the column-pivoted QR decomposition described in
+Section~\ref{sec:colPivQR}, does not provide standard errors for the
+missing coefficients.  That is, both the coefficient and its standard
+error are returned as \code{NA} because the least squares solution is
+performed on a reduced model matrix.  It is also true that the
+solution returned by the SVD method is with respect to a reduced model
+matrix but the $p$ coefficient estimates and their $p$ standard errors
+don't show this.  They are, in fact, linear combinations of a set of
+$r$ coefficient estimates and their standard errors.
+
+\pagebreak
+
+\subsection{Least squares using the eigendecomposition}
+\label{sec:eigendecomp}
+
+The eigendecomposition of $\bm X^\top\bm X$ is defined as
+\begin{displaymath}
+  \bm X^\top\bm X=\bm V\bm\Lambda\bm V^\top
+\end{displaymath}
+where $\bm V$, the matrix of eigenvectors, is a $p\times p$ orthogonal
+matrix and $\bm\Lambda$ is a $p\times p$ diagonal matrix with
+non-decreasing, non-negative diagonal elements, called the eigenvalues
+of $\bm X^\top\bm X$.  When the eigenvalues are distinct, this $\bm
+V$ is the same (up to reordering of the columns) as that in the SVD
+and the eigenvalues of $\bm X^\top\bm X$ are the (reordered) squares
+of the singular values of $\bm X$.
+
+With these definitions one can adapt much of the code from the SVD
+method for the eigendecomposition, as shown in Figure~\ref{SymmEigLS}.
+
+\begin{figure}[t!]
+  \hrule \smallskip
+    \noindent
+    \ttfamily
+    \hlkwb{const\ }\hlstd{Eigen}\hlopt{::}\hlstd{SelfAdjointEigenSolver}\hlopt{$<$}\hlstd{MatrixXd}\hlopt{$>$\ }\hlstd{}\hlkwd{VLV}\hlstd{}\hlopt{(}\hlstd{}\hlkwd{AtA}\hlstd{}\hlopt{(}\hlstd{X}\hlopt{));}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{ArrayXd}\hlstd{\ \ \ \ \ \ \ }\hlstd{}\hlkwd{Dp}\hlstd{}\hlopt{(}\hlstd{}\hlkwd{Dplus}\hlstd{}\hlopt{(}\hlstd{eig}\hlopt{.}\hlstd{}\hlkwd{eigenvalues}\hlstd{}\hlopt{()).}\hlstd{}\hlkwd{sqrt}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ int}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlkwb{}\hlstd{}\hlkwd{r}\hlstd{}\hlopt{((}\hlstd{Dp\ }\hlopt{$>$\ }\hlstd{}\hlnum{0}\hlstd{}\hlopt{).}\hlstd{}\hlkwd{count}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{MatrixXd}\hlstd{\ \ \ \ \ }\hlstd{}\hlkwd{VDp}\hlstd{}\hlopt{(}\hlstd{VLV}\hlopt{.}\hlstd{}\hlkwd{eigenvectors}\hlstd{}\hlopt{()\ {*}\ }\hlstd{Dp}\hlopt{.}\hlstd{}\hlkwd{matrix}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{asDiagonal}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{VectorXd\ }\hlkwd{betahat}\hlstd{}\hlopt{(}\hlstd{VDp\ }\hlopt{{*}\ }\hlstd{VDp}\hlopt{.}\hlstd{}\hlkwd{adjoint}\hlstd{}\hlopt{()\ {*}\ }\hlstd{X}\hlopt{.}\hlstd{}\hlkwd{adjoint}\hlstd{}\hlopt{()\ {*}\ }\hlstd{y}\hlopt{);}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{VectorXd}\hlstd{\ \ \ \ \ \ }\hlstd{}\hlkwd{se}\hlstd{}\hlopt{(}\hlstd{s\ }\hlopt{{*}\ }\hlstd{VDp}\hlopt{.}\hlstd{}\hlkwd{rowwise}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{norm}\hlstd{}\hlopt{());}\hlstd{}\hspace*{\fill}\\
+    \mbox{}
+    \normalfont
+    \normalsize
+  \hrule
+  \caption{\code{SymmEigLSCpp}: Least squares using the eigendecomposition.
+  \label{SymmEigLS}}
+\end{figure}
+
+\subsection{Least squares using the column-pivoted QR decomposition}
+\label{sec:colPivQR}
+
+The column-pivoted QR decomposition provides results similar to those
+from \proglang{R} in both the full-rank and the rank-deficient cases.
+The decomposition is of the form
+\begin{displaymath}
+  \bm X\bm P=\bm Q\bm R=\bm Q_1\bm R_1
+\end{displaymath}
+where, as before, $\bm Q$ is $n\times n$ and orthogonal and $\bm R$ is
+$n\times p$ and upper triangular.  The $p\times p$ matrix $\bm P$ is a
+permutation matrix.  That is, its columns are a permutation of the
+columns of $\bm I_p$.  It serves to reorder the columns of $\bm X$ so
+that the diagonal elements of $\bm R$ are non-increasing in magnitude.
+
+An instance of the class \code{Eigen::ColPivHouseholderQR} has a
+\code{rank()} method returning the computational rank of the matrix.
+When $\bm X$ is of full rank one can use essentially the same code as
+in the unpivoted decomposition except that one must reorder the
+standard errors.  When $\bm X$ is rank-deficient, the
+coefficients and standard errors are evaluated for the leading $r$ columns of $\bm
+X\bm P$ only.
+
+In the rank-deficient case the straightforward calculation of the
+fitted values, as $\bm X\widehat{\bm\beta}$, cannot be used because
+some of the estimated coefficients, $\widehat{\bm\beta}$, are \code{NA}
+so the product will be a vector of \code{NA}'s.  One could do some
+complicated rearrangement of the columns of X and the coefficient
+estimates but it is conceptually (and computationally) easier to
+employ the relationship
+\begin{displaymath}
+  \widehat{\bm y} = \bm Q_1\bm Q_1^\top\bm y=\bm Q
+  \begin{bmatrix}
+    \bm I_r & \bm 0\\
+    \bm 0   & \bm 0
+  \end{bmatrix}
+  \bm Q^\top\bm y
+\end{displaymath}
+The vector $\bm Q^\top\bm y$ is called the ``effects'' vector in \proglang{R}.
+
+\begin{figure}[t!]
+  \hrule \smallskip
+    \noindent
+    \ttfamily
+    \hlstd{}\hlkwc{typedef\ }\hlstd{Eigen}\hlopt{::}\hlstd{ColPivHouseholderQR}\hlopt{$<$}\hlstd{MatrixXd}\hlopt{$>$}\hlstd{\ \ }\hlopt{}\hlstd{CPivQR}\hlopt{;}\hspace*{\fill}\\
+    \hlstd{}\hlkwc{typedef\ }\hlstd{CPivQR}\hlopt{::}\hlstd{PermutationType}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Permutation}\hlopt{;}\hspace*{\fill}\\
+    \hlstd{}\hspace*{\fill}\\
+    \hlkwb{const\ }\hlstd{CPivQR}\hlstd{\ \ \ \ \ \ \ }\hlstd{}\hlkwd{PQR}\hlstd{}\hlopt{(}\hlstd{X}\hlopt{);}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ }\hlstd{Permutation\ }\hlkwd{Pmat}\hlstd{}\hlopt{(}\hlstd{PQR}\hlopt{.}\hlstd{}\hlkwd{colsPermutation}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+    \hlstd{}\hlkwb{const\ int}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ }\hlkwb{}\hlstd{}\hlkwd{r}\hlstd{}\hlopt{(}\hlstd{PQR}\hlopt{.}\hlstd{}\hlkwd{rank}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+    \hlstd{VectorXd}\hlstd{\ \ \ \ \ \ \ }\hlstd{betahat}\hlopt{,\ }\hlstd{fitted}\hlopt{,\ }\hlstd{se}\hlopt{;}\hspace*{\fill}\\
+    \hlstd{}\hlkwa{if\ }\hlstd{}\hlopt{(}\hlstd{r\ }\hlopt{==\ }\hlstd{X}\hlopt{.}\hlstd{}\hlkwd{cols}\hlstd{}\hlopt{())\ \{\ }\hlstd{}\hlslc{//\ full\ rank\ case}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ }\hlstd{betahat\ }\hlopt{=\ }\hlstd{PQR}\hlopt{.}\hlstd{}\hlkwd{solve}\hlstd{}\hlopt{(}\hlstd{y}\hlopt{);}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ }\hlstd{fitted}\hlstd{\ \ }\hlstd{}\hlopt{=\ }\hlstd{X\ }\hlopt{{*}\ }\hlstd{betahat}\hlopt{;}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ }\hlstd{se}\hlstd{\ \ \ \ \ \ }\hlstd{}\hlopt{=\ }\hlstd{Pmat\ }\hlopt{{*}\ }\hlstd{PQR}\hlopt{.}\hlstd{}\hlkwd{matrixQR}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{topRows}\hlstd{}\hlopt{(}\hlstd{p}\hlopt{).}\hlstd{triangularView}\hlopt{$<$}\hlstd{Upper}\hlopt{$>$()}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlopt{.}\hlstd{}\hlkwd{solve}\hlstd{}\hlopt{(}\hlstd{MatrixXd}\hlopt{::}\hlstd{}\hlkwd{Identity}\hlstd{}\hlopt{(}\hlstd{p}\hlopt{,\ }\hlstd{p}\hlopt{)).}\hlstd{}\hlkwd{rowwise}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{norm}\hlstd{}\hlopt{();}\hspace*{\fill}\\
+    \hlstd{}\hlopt{\}\ }\hlstd{}\hlkwa{else\ }\hlstd{}\hlopt{\{}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ }\hlstd{MatrixXd}\hlstd{\ \ \ \ }\hlstd{}\hlkwd{Rinv}\hlstd{}\hlopt{(}\hlstd{PQR}\hlopt{.}\hlstd{}\hlkwd{matrixQR}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{topLeftCorner}\hlstd{}\hlopt{(}\hlstd{r}\hlopt{,\ }\hlstd{r}\hlopt{)}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ }\hlstd{}\hlopt{.}\hlstd{triangularView}\hlopt{$<$}\hlstd{Upper}\hlopt{$>$().}\hlstd{}\hlkwd{solve}\hlstd{}\hlopt{(}\hlstd{MatrixXd}\hlopt{::}\hlstd{}\hlkwd{Identity}\hlstd{}\hlopt{(}\hlstd{r}\hlopt{,\ }\hlstd{r}\hlopt{)));}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ }\hlstd{VectorXd\ }\hlkwd{effects}\hlstd{}\hlopt{(}\hlstd{PQR}\hlopt{.}\hlstd{}\hlkwd{householderQ}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{adjoint}\hlstd{}\hlopt{()\ {*}\ }\hlstd{y}\hlopt{);}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ }\hlstd{betahat}\hlopt{.}\hlstd{}\hlkwd{fill}\hlstd{}\hlopt{(::}\hlstd{NA\textunderscore REAL}\hlopt{);}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ }\hlstd{betahat}\hlopt{.}\hlstd{}\hlkwd{head}\hlstd{}\hlopt{(}\hlstd{r}\hlopt{)}\hlstd{\ \ }\hlopt{=\ }\hlstd{Rinv\ }\hlopt{{*}\ }\hlstd{effects}\hlopt{.}\hlstd{}\hlkwd{head}\hlstd{}\hlopt{(}\hlstd{r}\hlopt{);}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ }\hlstd{betahat}\hlstd{\ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlopt{=\ }\hlstd{Pmat\ }\hlopt{{*}\ }\hlstd{betahat}\hlopt{;}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ }\hlstd{se}\hlopt{.}\hlstd{}\hlkwd{fill}\hlstd{}\hlopt{(::}\hlstd{NA\textunderscore REAL}\hlopt{);}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ }\hlstd{se}\hlopt{.}\hlstd{}\hlkwd{head}\hlstd{}\hlopt{(}\hlstd{r}\hlopt{)}\hlstd{\ \ \ \ \ \ \ }\hlopt{=\ }\hlstd{Rinv}\hlopt{.}\hlstd{}\hlkwd{rowwise}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{norm}\hlstd{}\hlopt{();}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ }\hlstd{se}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlopt{=\ }\hlstd{Pmat\ }\hlopt{{*}\ }\hlstd{se}\hlopt{;}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlslc{//\ create\ fitted\ values\ from\ effects}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ }\hlstd{effects}\hlopt{.}\hlstd{}\hlkwd{tail}\hlstd{}\hlopt{(}\hlstd{X}\hlopt{.}\hlstd{}\hlkwd{rows}\hlstd{}\hlopt{()\ {-}\ }\hlstd{r}\hlopt{).}\hlstd{}\hlkwd{setZero}\hlstd{}\hlopt{();}\hspace*{\fill}\\
+    \hlstd{}\hlstd{\ \ \ \ }\hlstd{fitted}\hlstd{\ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlopt{=\ }\hlstd{PQR}\hlopt{.}\hlstd{}\hlkwd{householderQ}\hlstd{}\hlopt{()\ {*}\ }\hlstd{effects}\hlopt{;}\hspace*{\fill}\\
+    \hlstd{}\hlopt{\}}\hlstd{}\hspace*{\fill}\\
+    \mbox{}
+    \normalfont
+    \normalsize
+  \hrule
+  \caption{\code{ColPivQRLSCpp}: Least squares using the pivoted QR decomposition.
+  \label{ColPivQRLS}}
+\end{figure}
+
+Just to check that the code in Figure~\ref{ColPivQRLS} does indeed provide the desired answer
+\begin{CodeInput}
+R> print(summary(fmPQR <- fastLm(y ~ f1 * f2, dd)), signif.st = FALSE)
+\end{CodeInput}
+\begin{CodeOutput}
+Call:
+fastLm.formula(formula = y ~ f1 * f2, data = dd)
+
+             Estimate Std. Error t value  Pr(>|t|)
+(Intercept)  0.977859   0.058165  16.812 3.413e-09
+f1B         12.038068   0.082258 146.346 < 2.2e-16
+f1C          3.117222   0.082258  37.896 5.221e-13
+f1D          4.068523   0.082258  49.461 2.833e-14
+f2b          5.060123   0.082258  61.516 2.593e-15
+f2c          5.997592   0.082258  72.912 4.015e-16
+f1B:f2b     -3.014763   0.116330 -25.916 3.266e-11
+f1C:f2b      7.702999   0.116330  66.217 1.156e-15
+f1D:f2b      8.964251   0.116330  77.059 < 2.2e-16
+f1B:f2c            NA         NA      NA        NA
+f1C:f2c     10.961326   0.116330  94.226 < 2.2e-16
+f1D:f2c     12.041081   0.116330 103.508 < 2.2e-16
+
+Residual standard error: 0.2868 on 11 degrees of freedom
+Multiple R-squared: 0.9999,	Adjusted R-squared: 0.9999
+\end{CodeOutput}
+\begin{CodeInput}
+R> all.equal(coef(fm1), coef(fmPQR))
+\end{CodeInput}
+\begin{CodeOutput}
+[1] TRUE
+\end{CodeOutput}
+\begin{CodeInput}
+R> all.equal(unname(fitted(fm1)), fitted(fmPQR))
+\end{CodeInput}
+\begin{CodeOutput}
+[1] TRUE
+\end{CodeOutput}
+\begin{CodeInput}
+R> all.equal(unname(residuals(fm1)), residuals(fmPQR))
+\end{CodeInput}
+\begin{CodeOutput}
+[1] TRUE
+\end{CodeOutput}
+The rank-revealing SVD method produces the same fitted
+values but not the same coefficients.
+\begin{CodeInput}
+R> print(summary(fmSVD <- fastLm(y ~ f1 * f2, dd, method = 4)),
++    signif.st = FALSE)
+\end{CodeInput}
+\begin{CodeOutput}
+Call:
+fastLm.formula(formula = y ~ f1 * f2, data = dd, method = 4)
+
+             Estimate Std. Error t value  Pr(>|t|)
+(Intercept)  0.977859   0.058165  16.812 3.413e-09
+f1B          7.020458   0.038777 181.049 < 2.2e-16
+f1C          3.117222   0.082258  37.896 5.221e-13
+f1D          4.068523   0.082258  49.461 2.833e-14
+f2b          5.060123   0.082258  61.516 2.593e-15
+f2c          5.997592   0.082258  72.912 4.015e-16
+f1B:f2b      2.002847   0.061311  32.667 2.638e-12
+f1C:f2b      7.702999   0.116330  66.217 1.156e-15
+f1D:f2b      8.964251   0.116330  77.059 < 2.2e-16
+f1B:f2c      5.017610   0.061311  81.838 < 2.2e-16
+f1C:f2c     10.961326   0.116330  94.226 < 2.2e-16
+f1D:f2c     12.041081   0.116330 103.508 < 2.2e-16
+
+Residual standard error: 0.2868 on 11 degrees of freedom
+Multiple R-squared: 0.9999,	Adjusted R-squared: 0.9999
+\end{CodeOutput}
+\begin{CodeInput}
+R> all.equal(coef(fm1), coef(fmSVD))
+\end{CodeInput}
+\begin{CodeOutput}
+[1] "'is.NA' value mismatch: 0 in current 1 in target"
+\end{CodeOutput}
+\begin{CodeInput}
+R> all.equal(unname(fitted(fm1)), fitted(fmSVD))
+\end{CodeInput}
+\begin{CodeOutput}
+[1] TRUE
+\end{CodeOutput}
+\begin{CodeInput}
+R> all.equal(unname(residuals(fm1)), residuals(fmSVD))
+\end{CodeInput}
+\begin{CodeOutput}
+[1] TRUE
+\end{CodeOutput}
+The coefficients from the symmetric eigendecomposition method are the
+same as those from the SVD, hence the fitted values and residuals must
+be the same for these two methods.
+\begin{CodeInput}
+R> summary(fmVLV <- fastLm(y ~ f1 * f2, dd, method = 5))
+R> all.equal(coef(fmSVD), coef(fmVLV))
+\end{CodeInput}
+\begin{CodeOutput}
+[1] TRUE
+\end{CodeOutput}
+
+\subsection{Comparative speed}
+
+In the \pkg{RcppEigen} package the \proglang{R} function to fit linear
+models using the methods described above is called \code{fastLm}. It follows
+an earlier example in the \pkg{Rcpp} package which was carried over to both
+\pkg{RcppArmadillo} and \pkg{RcppGSL}. The natural question to ask is, ``Is it indeed fast to use these methods
+based on \pkg{Eigen}?''.  To this end, the package provides benchmarking code for these
+methods, \proglang{R}'s \code{lm.fit} function and the \code{fastLm}
+implementations in the \pkg{RcppArmadillo} \citep{CRAN:RcppArmadillo}
+and \pkg{RcppGSL} \citep{CRAN:RcppGSL} packages, if they are
+installed.  The benchmark code, which uses the \pkg{rbenchmark}
+\citep{CRAN:rbenchmark} package, is in a file named
+\code{lmBenchmark.R} in the \code{examples} subdirectory of the
+installed \pkg{RcppEigen} package.
+
+
+It can be run as
+\begin{CodeInput}
+R> source(system.file("examples", "lmBenchmark.R", package = "RcppEigen"))
+\end{CodeInput}
+Results will vary according to the speed of the processor and the
+implementation of the BLAS (Basic Linear Algebra Subroutines) used.
+(\pkg{Eigen} methods do not use the BLAS but the other methods do.)
+The \pkg{Eigen}3 template library does not use multi-threaded code for
+these operations but does use the graphics pipeline instructions (SSE
+and SSE2, in this case) in some calculations.
+
+\begin{table}[t!]
+  \centering
+  \begin{tabular}{r r r r r}
+    \hline
+   Method & Relative& Elapsed &      User &     Sys  \\ \hline
+     LDLt &    1.00 &    1.18 &      1.17 &     0.00 \\
+      LLt &    1.01 &    1.19 &      1.17 &     0.00 \\
+  SymmEig &    2.76 &    3.25 &      2.70 &     0.52 \\
+       QR &    6.35 &    7.47 &      6.93 &     0.53 \\
+     arma &    6.60 &    7.76 &     25.69 &     4.47 \\
+    PivQR &    7.15 &    8.41 &      7.78 &     0.62 \\
+   lm.fit &   11.68 &   13.74 &     21.56 &    16.79 \\
+    GESDD &   12.58 &   14.79 &     44.01 &    10.96 \\
+      SVD &   44.48 &   52.30 &     51.38 &     0.80 \\
+      GSL &  150.46 &  176.95 &    210.52 &   149.86 \\
+     \hline
+  \end{tabular}
+  \caption{\code{lmBenchmark} results on a desktop computer for the
+    default size, $100,000\times 40$, full-rank model matrix running
+    20 repetitions for each method.  Times (Elapsed, User, and Sys) are
+    in seconds.  The BLAS in use is a locally-rebuilt version of the
+    OpenBLAS library included with Ubuntu 11.10.
+  \label{tab:lmRes}}
+\end{table}
+
+Results obtained on a desktop computer, circa 2010, are shown in
+Table~\ref{tab:lmRes}.
+The processor used for these timings is a 4-core processor but almost all the
+methods are single-threaded and not affected by the number of cores.  Only
+the \code{arma}, \code{lm.fit}, \code{GESDD} and \code{GSL} methods benefit from the
+multi-threaded BLAS implementation provided by OpenBLAS, and the relative
+speed increase is modest for this problem size and number of cores (at 7.76
+seconds relative to 10.29 seconds for \code{arma}, 13.74 seconds relative to
+16.91 seconds for \code{lm.fit}, and 176.95 seconds relative to 193.29
+seconds for the \code{GSL}). Parallel computing approaches will always have
+to trade-off increased communication and overhead costs against the potential
+gains from running multiple execution threads. % Nonetheless, with the ongoing
+%shift to multi-core architectures and an ever increasing number of cores in
+%modern processing units, it is conceivable that \pkg{Eigen} may also switch
+%to a multi-threaded approach to further improve its performance.
+
+These results indicate that methods based on forming and decomposing
+$\bm X^\top\bm X$ (LDLt, LLt and SymmEig) are considerably
+faster than the others.  The SymmEig method, using a rank-revealing
+decomposition, would be preferred, although the LDLt method could
+probably be modified to be rank-revealing.  However, the
+dimensions of the problem will influence the comparative results.
+Because there are 100,000 rows in $\bm X$, methods that decompose the
+whole $\bm X$ matrix (all the methods except those named above) will
+be at a disadvantage.
+
+The pivoted QR method is 1.6 times faster than \proglang{R}'s \code{lm.fit} on
+this test and provides nearly the same information as \code{lm.fit}.
+Methods based on the singular value decomposition (SVD and GSL) are
+much slower but, as mentioned above, this is caused in part by $\bm X$
+having many more rows than columns.  The GSL method from the GNU
+Scientific Library uses an older algorithm for the SVD and is clearly
+out of contention.
+
+The \code{GESDD} method provides an interesting hybrid: It uses the
+\pkg{Eigen} classes, but then deploys the LAPACK routine \code{dgesdd} for
+the actual SVD calculation. The resulting time is much faster than using the
+SVD implementation of \pkg{Eigen} which is not a particularly fast SVD
+method.
+
+
+\section{Delayed evaluation}
+\label{sec:delayed}
+
+A form of delayed evaluation is used in \pkg{Eigen}.  That is, many
+operators and methods do not evaluate the result but instead return an
+``expression object'' that is evaluated when needed.  As an example,
+even though one writes the $\bm X^\top\bm X$ evaluation as
+\code{.rankUpdate(X.adjoint())} the \code{X.adjoint()} part is not
+evaluated immediately.  The \code{rankUpdate} method detects that it
+has been passed a matrix that is to be used in its transposed form and
+evaluates the update by taking inner products of columns of $\bm X$
+instead of rows of $\bm X^\top$.
+
+As \pkg{Eigen} has developed some of these unevaluated expressions
+have been modified.  In \pkg{Eigen 3.1}, which is incorporated in
+version 0.3.1 of \pkg{RcppEigen}, the \code{.adjoint()} method applied
+to a real dense matrix copies the contents of the original matrix, flags
+it as row-major and interchanges the number of rows and columns.  This
+is indeed the adjoint of the original matrix but, at one time, the
+\code{wrap} method for the \pkg{Eigen} dense matrix classes would fail
+on row-major matrices.
+
+\begin{figure}[t!]
+  \hrule \smallskip
+  \noindent
+  \ttfamily
+  \hlstd{}\hlkwb{const\ }\hlstd{MapMati}\hlstd{\ \ }\hlstd{}\hlkwd{A}\hlstd{}\hlopt{(}\hlstd{as}\hlopt{$<$}\hlstd{MapMati}\hlopt{$>$(}\hlstd{AA}\hlopt{));}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{return\ }\hlstd{}\hlkwd{wrap}\hlstd{}\hlopt{(}\hlstd{A}\hlopt{.}\hlstd{}\hlkwd{transpose}\hlstd{}\hlopt{());}\hlstd{}\hspace*{\fill}\\
+  \mbox{}
+  \normalfont
+  \normalsize
+  \hrule
+  \caption{\code{badtransCpp}: Transpose producing a run-time error in
+    early versions of \pkg{RcppEigen}.
+  \label{badtrans}}
+\end{figure}
+
+In the code for the transpose of an integer matrix shown in
+Figure~\ref{trans} the transpose is assigned to a \code{MatrixXi}
+object before applying \code{wrap} to it.  The assignment forces the
+evaluation as a column-major matrix.  In early versions of the
+\pkg{RcppEigen} package if this step is skipped, as in
+Figure~\ref{badtrans}, the result would have been incorrect.
+\begin{CodeInput}
+R> Ai <- matrix(1:6, ncol = 2L)
+R> ftrans2 <- cxxfunction(signature(AA = "matrix"), badtransCpp,
++    "RcppEigen", incl)
+R> (At <- ftrans2(Ai))
+\end{CodeInput}
+\begin{CodeOutput}
+     [,1] [,2] [,3]
+[1,]    1    2    3
+[2,]    4    5    6
+\end{CodeOutput}
+Although the problem no longer persists for this particular example,
+the recommended practice is to first assign objects before wrapping
+them for return to \proglang{R}.
+
+\section{Sparse matrices}
+\label{sec:sparse}
+
+\begin{figure}[b!]
+  \hrule \smallskip
+  \noindent
+  \ttfamily
+  \hlstd{}\hlkwa{using\ }\hlstd{Eigen}\hlopt{::}\hlstd{MappedSparseMatrix}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{using\ }\hlstd{Eigen}\hlopt{::}\hlstd{SparseMatrix}\hlopt{;}\hspace*{\fill}\\
+  \hlstd{}\hspace*{\fill}\\
+  \hlkwb{const\ }\hlstd{MappedSparseMatrix}\hlopt{$<$}\hlstd{}\hlkwb{double}\hlstd{}\hlopt{$>$\ }\hlstd{}\hlkwd{A}\hlstd{}\hlopt{(}\hlstd{as}\hlopt{$<$}\hlstd{MappedSparseMatrix}\hlopt{$<$}\hlstd{}\hlkwb{double}\hlstd{}\hlopt{$>$\ $>$(}\hlstd{AA}\hlopt{));}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ }\hlstd{MapVecd}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlkwd{y}\hlstd{}\hlopt{(}\hlstd{as}\hlopt{$<$}\hlstd{MapVecd}\hlopt{$>$(}\hlstd{yy}\hlopt{));}\hspace*{\fill}\\
+  \hlstd{}\hlkwb{const\ }\hlstd{SparseMatrix}\hlopt{$<$}\hlstd{}\hlkwb{double}\hlstd{}\hlopt{$>$}\hlstd{\ \ \ \ \ \ }\hlopt{}\hlstd{}\hlkwd{At}\hlstd{}\hlopt{(}\hlstd{A}\hlopt{.}\hlstd{}\hlkwd{adjoint}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+  \hlstd{}\hlkwa{return\ }\hlstd{List}\hlopt{::}\hlstd{}\hlkwd{create}\hlstd{}\hlopt{(}\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"At"}\hlstd{}\hlopt{{)}}\hlstd{\ \ }\hlopt{=\ }\hlstd{At}\hlopt{,}\hspace*{\fill}\\
+  \hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{Named}\hlopt{{(}}\hlstd{}\hlstr{"Aty"}\hlstd{}\hlopt{{)}\ =\ }\hlstd{At\ }\hlopt{{*}\ }\hlstd{y}\hlopt{);}\hlstd{}\hspace*{\fill}\\
+  \mbox{}
+  \normalfont
+  \normalsize
+  \hrule
+  \caption{\code{sparseProdCpp}: Transpose and product with sparse matrices.
+  \label{sparseProd}}
+\end{figure}
+
+\pkg{Eigen} provides sparse matrix classes.  An \proglang{R} object of
+class \code{dgCMatrix} (from the \pkg{Matrix} package by
+\citet{CRAN:Matrix}) can be mapped as in Figure~\ref{sparseProd}.
+\begin{CodeInput}
+R> sparse1 <- cxxfunction(signature(AA = "dgCMatrix", yy = "numeric"),
++    sparseProdCpp, "RcppEigen", incl)
+R> data("KNex", package = "Matrix")
+R> rr <- sparse1(KNex$mm, KNex$y)
+R> stopifnot(all.equal(rr$At, t(KNex$mm)),
++    all.equal(rr$Aty, as.vector(crossprod(KNex$mm, KNex$y))))
+\end{CodeInput}
+%
+Sparse Cholesky decompositions are provided by the
+\code{SimplicialLLT} and \code{SimplicialLDLT} classes in the
+\pkg{RcppEigen} package for \proglang{R}.  These are
+subclasses of the \code{SimplicialCholesky} templated.  A sample usage
+is shown in Figure~\ref{fig:spLS}.
+%
+\begin{figure}[t!]
+  \hrule \smallskip
+\noindent
+\ttfamily
+\hlstd{}\hlkwc{typedef\ }\hlstd{Eigen}\hlopt{::}\hlstd{MappedSparseMatrix}\hlopt{$<$}\hlstd{}\hlkwb{double}\hlstd{}\hlopt{$>$}\hlstd{\ \ }\hlopt{}\hlstd{MSpMat}\hlopt{;}\hspace*{\fill}\\
+\hlstd{}\hlkwc{typedef\ }\hlstd{Eigen}\hlopt{::}\hlstd{SparseMatrix}\hlopt{$<$}\hlstd{}\hlkwb{double}\hlstd{}\hlopt{$>$}\hlstd{\ \ \ \ \ \ \ \ \ }\hlopt{}\hlstd{SpMat}\hlopt{;}\hspace*{\fill}\\
+\hlstd{}\hlkwc{typedef\ }\hlstd{Eigen}\hlopt{::}\hlstd{SimplicialLDLT}\hlopt{$<$}\hlstd{SpMat}\hlopt{$>$}\hlstd{\ \ \ \ \ \ \ }\hlopt{}\hlstd{SpChol}\hlopt{;}\hspace*{\fill}\\
+\hlstd{}\hspace*{\fill}\\
+\hlkwb{const\ }\hlstd{SpMat}\hlstd{\ \ \ \ \ \ }\hlstd{}\hlkwd{At}\hlstd{}\hlopt{(}\hlstd{as}\hlopt{$<$}\hlstd{MSpMat}\hlopt{$>$(}\hlstd{AA}\hlopt{).}\hlstd{}\hlkwd{adjoint}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+\hlstd{}\hlkwb{const\ }\hlstd{VectorXd}\hlstd{\ \ }\hlstd{}\hlkwd{Aty}\hlstd{}\hlopt{(}\hlstd{At\ }\hlopt{{*}\ }\hlstd{as}\hlopt{$<$}\hlstd{MapVecd}\hlopt{$>$(}\hlstd{yy}\hlopt{));}\hspace*{\fill}\\
+\hlstd{}\hlkwb{const\ }\hlstd{SpChol}\hlstd{\ \ \ \ \ }\hlstd{}\hlkwd{Ch}\hlstd{}\hlopt{(}\hlstd{At\ }\hlopt{{*}\ }\hlstd{At}\hlopt{.}\hlstd{}\hlkwd{adjoint}\hlstd{}\hlopt{());}\hspace*{\fill}\\
+\hlstd{}\hlkwa{if\ }\hlstd{}\hlopt{(}\hlstd{Ch}\hlopt{.}\hlstd{}\hlkwd{info}\hlstd{}\hlopt{()\ !=\ }\hlstd{Eigen}\hlopt{::}\hlstd{Success}\hlopt{)\ }\hlstd{}\hlkwa{return\ }\hlstd{R\textunderscore NilValue}\hlopt{;}\hspace*{\fill}\\
+\hlstd{}\hlkwa{return\ }\hlstd{List}\hlopt{::}\hlstd{}\hlkwd{create}\hlstd{}\hlopt{(}\hlstd{}\hlkwd{Named}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"betahat"}\hlstd{}\hlopt{)}\hlstd{\ \ }\hlopt{=\ }\hlstd{Ch}\hlopt{.}\hlstd{}\hlkwd{solve}\hlstd{}\hlopt{(}\hlstd{Aty}\hlopt{),}\hspace*{\fill}\\
+\hlstd{}\hlstd{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\hlstd{}\hlkwd{Named}\hlstd{}\hlopt{(}\hlstd{}\hlstr{"perm"}\hlstd{}\hlopt{)}\hlstd{\ \ \ \ \ }\hlopt{=\ }\hlstd{Ch}\hlopt{.}\hlstd{}\hlkwd{permutationP}\hlstd{}\hlopt{().}\hlstd{}\hlkwd{indices}\hlstd{}\hlopt{());}\hlstd{}\hspace*{\fill}\\
+\mbox{}
+\normalfont
+\normalsize
+  \hrule
+  \caption{\code{sparseLSCpp}: Solving a sparse least squares problem.
+  \label{fig:spLS}}
+\end{figure}
+%
+\begin{CodeInput}
+R> sparse2 <- cxxfunction(signature(AA = "dgCMatrix", yy = "numeric"),
++    sparseLSCpp, "RcppEigen", incl)
+R> str(rr <-  sparse2(KNex$mm, KNex$y))
+\end{CodeInput}
+\begin{CodeOutput}
+List of 2
+ $ betahat: num [1:712] 823 340 473 349 188 ...
+ $ perm   : int [1:712] 572 410 414 580 420 425 417 426 431 445 ...
+\end{CodeOutput}
+\begin{CodeInput}
+R> res <- as.vector(solve(Ch <- Cholesky(crossprod(KNex$mm)),
++    crossprod(KNex$mm, KNex$y)))
+R> stopifnot(all.equal(rr$betahat, res))
+R> all(rr$perm == Ch@perm)
+\end{CodeInput}
+\begin{CodeOutput}
+[1] FALSE
+\end{CodeOutput}
+The fill-reducing permutations are different.
+ 
+\section{Summary}
+
+This paper introduced the \pkg{RcppEigen} package which provides
+high-level linear algebra computations as an extension to the
+\proglang{R} system.  \pkg{RcppEigen} is based on the modern
+\proglang{C++} library \pkg{Eigen} which combines extended
+functionality with excellent performance, and utilizes \pkg{Rcpp} to
+interface \proglang{R} with \proglang{C++}.  Several illustrations
+covered common matrix operations and several approaches to solving a
+least squares problem---including an extended discussion of
+rank-revealing approaches. Sparse matrix computations were also
+discussed, and a short example provided an empirical demonstration of
+the excellent run-time performance of the \pkg{RcppEigen} package.
+
+\pagebreak
+
+\bibliography{\Sexpr{Rcpp:::bib()}}
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/unitTests/RcppEigen-unitTests.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/unitTests/RcppEigen-unitTests.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/unitTests/RcppEigen-unitTests.R	(revision 2476)
@@ -0,0 +1,20 @@
+pkg <- "RcppEigen"
+
+# load this package
+require( pkg, character.only = TRUE )
+
+#load RUnit
+runit <- "RUnit" ; require( runit, character.only = TRUE )
+if( file.exists( "unitTests-results" ) ){ unlink("unitTests-results", recursive = TRUE ) }
+dir.create( "unitTests-results" ) 
+
+path <- system.file("unitTests", package = pkg)
+testSuite <- defineTestSuite(name=paste(pkg, "unit testing"), dirs = path)
+tests <- runTestSuite(testSuite)
+printHTMLProtocol(tests, fileName= sprintf( "unitTests-results/%s-unitTests.html" , pkg ) )
+printTextProtocol(tests, fileName= sprintf( "unitTests-results/%s-unitTests.txt"  , pkg ) )
+if( file.exists( "/tmp" ) ){
+	file.copy( sprintf( "unitTests-results/%s-unitTests.txt" , pkg ) , "/tmp", overwrite = TRUE )
+	file.copy( sprintf( "unitTests-results/%s-unitTests.html", pkg ) , "/tmp", overwrite = TRUE )
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/unitTests/RcppEigen-unitTests.Rnw
===================================================================
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/RcppEigen-Introduction.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/doc/RcppEigen-Introduction.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/INDEX	(revision 2476)
@@ -0,0 +1,5 @@
+RcppEigen-package       Rcpp/Eigen bridge
+RcppEigen.package.skeleton
+                        Create a skeleton for a new package that
+                        intends to use RcppEigen
+fastLm                  Bare-bones linear model fitting function
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/CITATION	(revision 2476)
@@ -0,0 +1,19 @@
+citHeader("To cite RcppEigen in publications use:")
+
+citEntry(entry = "Article",
+  title        = "Fast and Elegant Numerical Linear Algebra Using the {RcppEigen} Package",
+  author       = personList(as.person("Douglas Bates"),
+                   as.person("Dirk Eddelbuettel")),
+  journal      = "Journal of Statistical Software",
+  year         = "2013",
+  volume       = "52",
+  number       = "5",
+  pages        = "1--24",
+  url          = "http://www.jstatsoft.org/v52/i05/",
+
+  textVersion  =
+  paste("Douglas Bates, Dirk Eddelbuettel (2013).",
+        "Fast and Elegant Numerical Linear Algebra Using the RcppEigen Package.",
+        "Journal of Statistical Software, 52(5), 1-24.",
+        "URL http://www.jstatsoft.org/v52/i05/.")
+)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/examples/lmBenchmark.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/examples/lmBenchmark.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/examples/lmBenchmark.R	(revision 2476)
@@ -0,0 +1,65 @@
+## lmBenchmark.R: Benchmark different implementations of linear model solutions
+##
+## Copyright (C)  2011 Douglas Bates, Dirk Eddelbuettel and Romain Francois
+##
+## This file is part of RcppEigen.
+
+require("stats", character=TRUE, quietly=TRUE)
+require("rbenchmark", character=TRUE, quietly=TRUE)
+require("RcppEigen", character=TRUE, quietly=TRUE)
+
+## define different versions of lm
+exprs <- list()
+
+## These versions use rank-revealing decompositions and thus can
+## handle rank-deficient cases.
+
+                                        # default version used in lm()
+exprs$lm.fit <- expression(stats::lm.fit(mm, y))
+                                        # versions from RcppEigen
+## column-pivoted QR decomposition - similar to lm.fit
+exprs$PivQR <- expression(.Call("fastLm", mm, y, 0L, PACKAGE="RcppEigen"))
+## LDLt Cholesky decomposition with rank detection
+exprs$LDLt <- expression(.Call("fastLm", mm, y, 2L, PACKAGE="RcppEigen"))
+## SVD using the Lapack subroutine dgesdd and Eigen support
+exprs$GESDD <- expression(.Call("fastLm", mm, y, 6L, PACKAGE="RcppEigen"))
+## SVD (the JacobiSVD class from Eigen)
+exprs$SVD <- expression(.Call("fastLm", mm, y, 4L, PACKAGE="RcppEigen"))
+## eigenvalues and eigenvectors of X'X
+exprs$SymmEig <- expression(.Call("fastLm", mm, y, 5L, PACKAGE="RcppEigen"))
+
+## Non-rank-revealing decompositions.  These work fine except when
+## they don't.
+
+## Unpivoted  QR decomposition
+exprs$QR <- expression(.Call("fastLm", mm, y, 1L, PACKAGE="RcppEigen"))
+## LLt Cholesky decomposition
+exprs$LLt <- expression(.Call("fastLm", mm, y, 3L, PACKAGE="RcppEigen"))
+
+if (suppressMessages(require("RcppArmadillo", character=TRUE, quietly=TRUE))) {
+    exprs$arma <- expression(.Call("RcppArmadillo_fastLm", mm, y, PACKAGE="RcppArmadillo"))
+}
+
+if (suppressMessages(require("RcppGSL", character=TRUE, quietly=TRUE))) {
+    exprs$GSL <- expression(.Call("fastLm", mm, y, PACKAGE="RcppGSL"))
+}
+
+do_bench <- function(n=100000L, p=40L, nrep=20L, suppressSVD=(n > 100000L)) {
+    mm <- cbind(1, matrix(rnorm(n * (p - 1L)), nc=p-1L))
+    y <- rnorm(n)
+    if (suppressSVD) exprs <- exprs[!names(exprs) %in% c("SVD", "GSL")]
+    cat("lm benchmark for n = ", n, " and p = ", p, ": nrep = ", nrep, "\n", sep='')
+    do.call(benchmark, c(exprs,
+                         list(order="relative",
+                              columns = c("test", "relative",
+                              "elapsed", "user.self", "sys.self"),
+                              replications = nrep)))
+}
+
+print(do_bench())
+
+sessionInfo()
+
+.Call("eigen_version", FALSE, PACKAGE="RcppEigen")
+
+.Call("Eigen_SSE", FALSE, PACKAGE="RcppEigen")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/NEWS.Rd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/NEWS.Rd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/RcppEigen/NEWS.Rd	(revision 2476)
@@ -0,0 +1,214 @@
+\name{NEWS}
+\title{News for Package \pkg{RcppEigen}}
+\newcommand{\ghpr}{\href{https://github.com/RcppCore/RcppEigen/pull/#1}{##1}}
+\newcommand{\ghit}{\href{https://github.com/RcppCore/RcppEigen/issues/#1}{##1}}
+
+\section{Changes in RcppEigen version 0.3.2.9.0 (2016-08-20)}{
+  \itemize{
+    \item Updated to version 3.2.9 of Eigen (PR \ghpr{37} by Yixuan
+    closing \ghit{36} from Bob Carpenter of the Stan team)
+    \item An exporter for RowVectorX was added (thanks to PR \ghpr{32}
+    by James Balamuta)
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.8.1 (2016-02-29)}{
+  \itemize{
+    \item Applied another upstream UBSAN fix (PR \ghpr{30} by Yixuan)
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.8.0 (2016-02-23)}{
+  \itemize{
+    \item Updated to version 3.2.8 of Eigen (PR \ghpr{29} by Yixuan)
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.7.0 (2016-01-18)}{
+  \itemize{
+    \item Updated to version 3.2.7 of Eigen
+    \item One unit test file tightened to please R-devel CMD check
+    \item The fastLm example will not include the Lapack header if MKL
+    is defined (thanks to PR \ghpr{25} by Alexey Stukalow)
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.5.1 (2015-09-23)}{
+  \itemize{
+    \item Corrected use of \code{kitten()} thanks to Grant Brown (#21)
+    \item Applied upstream change to protect against undefined behaviour
+    with null pointers
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.5.0 (2015-07-11)}{
+  \itemize{
+    \item Updated to version 3.2.5 of Eigen
+    \item Fixed some incorrect error messages stemming from Eigen code.
+    \item Updated package to current \code{R CMD check} standards.
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.4.0 (2015-02-23)}{
+  \itemize{
+    \item Updated to version 3.2.4 of Eigen
+    \item Update \code{RcppEigen.package.skeleton()} to use
+    \CRANpkg{pkgKitten} if available
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.3.0 (2014-12-22)}{
+  \itemize{
+    \item Updated to version 3.2.3 of Eigen
+    \item Added a number of additional unit tests for \code{wrap},
+      \code{transform} and \code{sparse}
+    \item Updated one of the examples
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.2.0 (2014-08-19)}{
+  \itemize{
+    \item Updated to version 3.2.2 of Eigen
+    \item \code{Rcpp::as()} now supports the conversion from R vector to
+    \dQuote{row array}, i.e., \code{Eigen::Array<T, 1, Eigen::Dynamic>}
+    \item \code{Rcpp::as()} now supports the conversion from
+    \code{dgRMatrix} (row oriented sparse matrices, defined in
+    \pkg{Matrix} package) to
+    \code{Eigen::MappedSparseMatrix<T, Eigen::RowMajor>}
+    \item Conversion from R matrix to \code{Eigen::MatrixXd} and
+    \code{Eigen::ArrayXXd} using \code{Rcpp::as()} no longer gives
+    compilation errors
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.1.2 (2014-05-05)}{
+  \itemize{
+    \item Applied upstream patch to not trigger g++ UBSAN warning on
+    the cpu id comparison, with thanks to Gael Guennebaud for the patch
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.1.1 (2014-03-06)}{
+  \itemize{
+    \item Better \code{ifdef} on one directory entry feature, with
+    thanks to Brian Ripley.
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.1.0 (2014-03-03)}{
+  \itemize{
+    \item Updated to version 3.2.1 of Eigen
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.0.3 (2014-03-01)}{
+  \itemize{
+    \item Updated and extended \code{RcppEigen.package.skeleton()} to
+    use several examples via \CRANpkg{Rcpp} Attributes; also removed the
+    deprecated \code{namespace} argument
+    \item Updated skeleton package example for \CRANpkg{Rcpp} 0.11.0 or
+    later by removing needed for linking with user library
+    \item Updated files \code{DESCRIPTION}, \code{NAMESPACE},
+    \code{src/Makevars} and \code{src/Makevars.win} similarly
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.0.2 (2014-01-26)}{
+  \itemize{
+    \item Converted three unused unit test files to \CRANpkg{RUnit} and
+    removed \code{Suggests:} of \CRANpkg{testthat}
+    \item Add declaration to import a symbol from \CRANpkg{Rcpp} to
+    \code{NAMESPACE} to ensure proper instantiation with the upcoming
+    \CRANpkg{Rcpp} version
+    \item Retire \code{SHLIB.maker} function
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.0.1 (2013-12-18)}{
+  \itemize{
+    \item New maintainer -- with a big thanks to Doug for all his work
+    \item Applied two small patches to deal with non-g++ compilrs
+    \item Clarifications concerning license and authorship of
+    Eigen (as opposed to RcppEigen) code added to \code{DESCRIPTION} at
+    the request of CRAN
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.2.0 (2013-11-13)}{
+  \itemize{
+    \item Update to version 3.2.0 of Eigen
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.1.2.3 (2013-10-25)}{
+  \itemize{
+    \item Fix to RcppEigenCholmod.h to incorporate changes in the
+    cholmod_factor struct. These changes are necessary if code
+    compiled against RcppEigen that uses CHOLMOD factors is to be run
+    with versions of the Matrix package >= 1.1-0
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.1.2 (2012-11-29)}{
+  \itemize{
+    \item Upgraded to Eigen 3.1.2
+    \item Fixes to RcppEigenWrap.h and adjustment of tests accordingly.
+    The changes allow RowMajor matrices to be wrapped (thanks to Gael
+    Guennebaud) but cannot handle RowVector types. There will need to be
+    more template metaprogramming done to redirect the case of RowVector,
+    which cannot be changed to a ColMajor form.
+    \item Because of changes in R, -DNDEBUG is automatic. One must
+    override it with -UNDEBUG in the local ~/.R/Makevars to activate the
+    debugging code.
+    \item New (unexported) functions CxxFlags() and RcppEigenCxxFlags()
+    for use in Makefiles
+    \item Fixes related to Rcpp 0.10.*
+  }
+}
+
+\section{Changes in RcppEigen version 0.3.1 (2012-08-07)}{
+  \itemize{
+    \item Upgraded to Eigen 3.1.0
+    \item Removed the "unsupported" Eigen module AutoDiff which defined a
+    macro "sign" that conflicted with a function in the R API (which
+    really should be visible as "Rf_sign", not sure why it shows up as
+    "sign" and don't have time to investigate)
+    \item Commented out several tests involving complex vectors and
+    matrices.  Again there are compilation problems related to
+    conflicting definitions in the std:: namespace and the R API and
+    Eigen, which I don't have time to investigate.
+  }
+}
+
+\section{Changes in RcppEigen version 0.2.0 (2012-03-12)}{
+  \itemize{
+    \item Upgraded the version of Eigen to 3.1.0-alpha2, in which the sparse
+    matrix modules are now in the "supported" tree.
+    \item Added several "unsupported" Eigen modules including
+    \itemize{
+      \item AutoDiff (a small automatic differentiation package adapted to
+      vectors and matrices)
+      \item IterativeSolvers (iterative linear and nonlinear solver algorithms)
+      \item KroneckerProduct (as the name implies)
+      \item MatrixFunctions (matrix cos, exp, log, sin, sinh, etc.)
+      \item NonlinearOptimization (based on minpack but uses reverse
+      communication - yay!)
+      \item NumericalDiff (numerical differentiation of vector-valued or
+      matrix-valued functions)
+      \item Polynomials (polynomial representation and solution using a QR
+      algorithm)
+      \item Skyline (sparse skyline matrices useful in finite-element codes)
+      \item SparseExtra (dynamic sparse matrices, now deprecated, and Matrix
+      Market I/O functions)
+      \item Splines (multidimensional spline representations and spline
+      interpolation)
+    }
+    \item At present all these modules, including the MatrixFunctions
+    module, are included with RcppEigen.h but that may change if too
+    many people get unexpected results from A.exp()
+    \item The ability to wrap RowMajor sparse matrices and to use
+    as<Eigen::ArrayXd> etc.
+    \item Migrated some tests to the testthat package.  Currently there is
+    some difficulty with combining testthat, inline and R CMD check.
+  }
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/R/nloptr.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/R/nloptr.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/R/nloptr.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/R/nloptr.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/R/nloptr
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/R/nloptr	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/R/nloptr	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/DESCRIPTION	(revision 2476)
@@ -0,0 +1,26 @@
+Package: nloptr
+Type: Package
+Title: R interface to NLopt
+Version: 1.0.4
+Date: 2014-08-02
+Author: Jelmer Ypma <uctpjyy@ucl.ac.uk>, with contributions by
+        Hans W. Borchers <hwborchers@googlemail.com> and 
+        Dirk Eddelbuettel <edd@debian.org>
+Maintainer: Jelmer Ypma <uctpjyy@ucl.ac.uk>
+Description: 
+    nloptr is an R interface to NLopt. NLopt is a free/open-source library for
+    nonlinear optimization, providing a common interface for a number of
+    different free optimization routines available online as well as original
+    implementations of various other algorithms.
+    See http://ab-initio.mit.edu/wiki/index.php/NLopt_Introduction for more
+    information on the available algorithms. During installation on Unix the
+    NLopt code is downloaded and compiled from the NLopt website.
+License: LGPL-3
+Suggests: testthat (>= 0.8.1)
+LazyLoad: yes
+Packaged: 2014-08-02 18:12:19 UTC; Jelmer
+NeedsCompilation: yes
+Repository: CRAN
+Date/Publication: 2014-08-04 15:35:43
+Built: R 3.3.0; x86_64-apple-darwin13.4.0; 2016-05-04 14:10:36 UTC; unix
+Archs: nloptr.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/html/00Index.html	(revision 2476)
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: R interface to NLopt</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> R interface to NLopt
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;nloptr&rsquo; version 1.0.4</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="nloptr-package.html">nloptr-package</a></td>
+<td>R interface to NLopt</td></tr>
+<tr><td style="width: 25%;"><a href="auglag.html">auglag</a></td>
+<td>Augmented Lagrangian Algorithm</td></tr>
+<tr><td style="width: 25%;"><a href="bobyqa.html">bobyqa</a></td>
+<td>Bound Optimization by Quadratic Approximation</td></tr>
+<tr><td style="width: 25%;"><a href="check.derivatives.html">check.derivatives</a></td>
+<td>Check analytic gradients of a function using finite difference approximations</td></tr>
+<tr><td style="width: 25%;"><a href="cobyla.html">cobyla</a></td>
+<td>Constrained Optimization by Linear Approximations</td></tr>
+<tr><td style="width: 25%;"><a href="crs2lm.html">crs2lm</a></td>
+<td>Controlled Random Search</td></tr>
+<tr><td style="width: 25%;"><a href="direct.html">direct</a></td>
+<td>DIviding RECTangles Algorithm for Global Optimization</td></tr>
+<tr><td style="width: 25%;"><a href="direct.html">directL</a></td>
+<td>DIviding RECTangles Algorithm for Global Optimization</td></tr>
+<tr><td style="width: 25%;"><a href="is.nloptr.html">is.nloptr</a></td>
+<td>R interface to NLopt</td></tr>
+<tr><td style="width: 25%;"><a href="isres.html">isres</a></td>
+<td>Improved Stochastic Ranking Evolution Strategy</td></tr>
+<tr><td style="width: 25%;"><a href="lbfgs.html">lbfgs</a></td>
+<td>Low-storage BFGS</td></tr>
+<tr><td style="width: 25%;"><a href="mlsl.html">mlsl</a></td>
+<td>Multi-level Single-linkage</td></tr>
+<tr><td style="width: 25%;"><a href="mma.html">mma</a></td>
+<td>Method of Moving Asymptotes</td></tr>
+<tr><td style="width: 25%;"><a href="neldermead.html">neldermead</a></td>
+<td>Nelder-Mead Simplex</td></tr>
+<tr><td style="width: 25%;"><a href="newuoa.html">newuoa</a></td>
+<td>New Unconstrained Optimization with quadratic Approximation</td></tr>
+<tr><td style="width: 25%;"><a href="gradients.html">nl.grad</a></td>
+<td>Numerical Gradients and Jacobians</td></tr>
+<tr><td style="width: 25%;"><a href="gradients.html">nl.jacobian</a></td>
+<td>Numerical Gradients and Jacobians</td></tr>
+<tr><td style="width: 25%;"><a href="nloptions.html">nl.opts</a></td>
+<td>Setting NL Options</td></tr>
+<tr><td style="width: 25%;"><a href="nloptr.html">nloptr</a></td>
+<td>R interface to NLopt</td></tr>
+<tr><td style="width: 25%;"><a href="nloptr.get.default.options.html">nloptr.get.default.options</a></td>
+<td>Return a data.frame with all the options that can be supplied to nloptr.</td></tr>
+<tr><td style="width: 25%;"><a href="nloptr.print.options.html">nloptr.print.options</a></td>
+<td>Print description of nloptr options</td></tr>
+<tr><td style="width: 25%;"><a href="print.nloptr.html">print.nloptr</a></td>
+<td>Print results after running nloptr</td></tr>
+<tr><td style="width: 25%;"><a href="sbplx.html">sbplx</a></td>
+<td>Subplex Algorithm</td></tr>
+<tr><td style="width: 25%;"><a href="slsqp.html">slsqp</a></td>
+<td>Sequential Quadratic Programming (SQP)</td></tr>
+<tr><td style="width: 25%;"><a href="stogo.html">stogo</a></td>
+<td>Stochastic Global Optimization</td></tr>
+<tr><td style="width: 25%;"><a href="tnewton.html">tnewton</a></td>
+<td>Preconditioned Truncated Newton</td></tr>
+<tr><td style="width: 25%;"><a href="varmetric.html">varmetric</a></td>
+<td>Shifted Limited-memory Variable-metric</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/doc/nloptr.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/doc/nloptr.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/doc/index.html	(revision 2476)
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'nloptr'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/nloptr/doc/nloptr.pdf">nloptr::nloptr</a></td>
+<td></td><td valign="top">Introduction to nloptr: an R interface to NLopt</td>
+<td valign="top"><a href="../../../library/nloptr/doc/nloptr.pdf">PDF</a></td>
+<td valign="top"><a href="../../../library/nloptr/doc/nloptr.Rnw">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/nloptr/doc/nloptr.R">R code</a></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/doc/nloptr.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/doc/nloptr.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/doc/nloptr.R	(revision 2476)
@@ -0,0 +1,238 @@
+### R code from vignette source 'nloptr.Rnw'
+
+###################################################
+### code chunk number 1: setSweaveOptions
+###################################################
+# have an (invisible) initialization noweb chunk
+# to remove the default continuation prompt '>'
+options(continue = " ")
+options(width = 60)
+
+# eliminate margin space above plots
+options(SweaveHooks=list(fig=function()
+    par(mar=c(5.1, 4.1, 1.1, 2.1))))
+
+
+###################################################
+### code chunk number 2: installNLopt (eval = FALSE)
+###################################################
+## install.packages("nloptr")
+
+
+###################################################
+### code chunk number 3: testNLoptInstallation (eval = FALSE)
+###################################################
+## library('nloptr')
+## ?nloptr
+
+
+###################################################
+### code chunk number 4: installNLoptRForge (eval = FALSE)
+###################################################
+## install.packages("nloptr",repos="http://R-Forge.R-project.org")
+
+
+###################################################
+### code chunk number 5: installNLoptRForgeSource (eval = FALSE)
+###################################################
+## install.packages("nloptr",type="source",repos="http://R-Forge.R-project.org")
+
+
+###################################################
+### code chunk number 6: loadLibrary
+###################################################
+library(nloptr)
+
+
+###################################################
+### code chunk number 7: defineRosenbrockBanana
+###################################################
+## Rosenbrock Banana function
+eval_f <- function(x) {   
+    return( 100 * (x[2] - x[1] * x[1])^2 + (1 - x[1])^2 )
+}
+
+## Gradient of Rosenbrock Banana function
+eval_grad_f <- function(x) { 
+    return( c( -400 * x[1] * (x[2] - x[1] * x[1]) - 2 * (1 - x[1]),
+                200 * (x[2] - x[1] * x[1]) ) )
+}
+
+
+###################################################
+### code chunk number 8: setRosenbrockBananaInitialValues
+###################################################
+# initial values
+x0 <- c( -1.2, 1 )
+
+
+###################################################
+### code chunk number 9: setRosenbrockBananaOptions
+###################################################
+opts <- list("algorithm"="NLOPT_LD_LBFGS",
+             "xtol_rel"=1.0e-8)
+
+
+###################################################
+### code chunk number 10: solveRosenbrockBanana
+###################################################
+# solve Rosenbrock Banana function
+res <- nloptr( x0=x0, 
+               eval_f=eval_f, 
+               eval_grad_f=eval_grad_f,
+               opts=opts)
+
+
+###################################################
+### code chunk number 11: printRosenbrockBanana
+###################################################
+print( res )
+
+
+###################################################
+### code chunk number 12: defineRosenbrockBananaList
+###################################################
+## Rosenbrock Banana function and gradient in one function
+eval_f_list <- function(x) {
+    common_term <- x[2] - x[1] * x[1]
+    return( list( "objective" = 100 * common_term^2 + (1 - x[1])^2,
+                  "gradient"  = c( -400 * x[1] * common_term - 2 * (1 - x[1]),
+                                    200 * common_term) ) )
+}
+
+
+###################################################
+### code chunk number 13: solveRosenbrockBananaList
+###################################################
+res <- nloptr( x0=x0, 
+               eval_f=eval_f_list,
+               opts=opts)
+print( res )
+
+
+###################################################
+### code chunk number 14: defineTutorialObjective
+###################################################
+# objective function
+eval_f0 <- function( x, a, b ){ 
+    return( sqrt(x[2]) )
+}
+
+# gradient of objective function
+eval_grad_f0 <- function( x, a, b ){ 
+    return( c( 0, .5/sqrt(x[2]) ) )
+}
+
+
+###################################################
+### code chunk number 15: defineTutorialConstraints
+###################################################
+# constraint function
+eval_g0 <- function( x, a, b ) {
+    return( (a*x[1] + b)^3 - x[2] )
+}
+
+# jacobian of constraint
+eval_jac_g0 <- function( x, a, b ) {
+    return( rbind( c( 3*a[1]*(a[1]*x[1] + b[1])^2, -1.0 ), 
+                   c( 3*a[2]*(a[2]*x[1] + b[2])^2, -1.0 ) ) )
+}
+
+
+###################################################
+### code chunk number 16: defineTutorialParameters
+###################################################
+# define parameters
+a <- c(2,-1)
+b <- c(0, 1)
+
+
+###################################################
+### code chunk number 17: solveTutorialWithGradient
+###################################################
+# Solve using NLOPT_LD_MMA with gradient information supplied in separate function
+res0 <- nloptr( x0=c(1.234,5.678), 
+                eval_f=eval_f0, 
+                eval_grad_f=eval_grad_f0,
+                lb = c(-Inf,0), 
+                ub = c(Inf,Inf), 
+                eval_g_ineq = eval_g0,
+                eval_jac_g_ineq = eval_jac_g0,                
+                opts = list("algorithm" = "NLOPT_LD_MMA",
+                            "xtol_rel"=1.0e-8,
+                            "print_level" = 2,
+                            "check_derivatives" = TRUE,
+                            "check_derivatives_print" = "all"),
+                a = a, 
+                b = b )
+print( res0 )
+
+
+###################################################
+### code chunk number 18: solveTutorialWithoutGradient
+###################################################
+# Solve using NLOPT_LN_COBYLA without gradient information
+res1 <- nloptr( x0=c(1.234,5.678), 
+                eval_f=eval_f0, 
+                lb = c(-Inf,0), 
+                ub = c(Inf,Inf), 
+                eval_g_ineq = eval_g0, 
+                opts = list("algorithm"="NLOPT_LN_COBYLA", 
+                            "xtol_rel"=1.0e-8),
+                a = a, 
+                b = b )
+print( res1 )
+
+
+###################################################
+### code chunk number 19: derivativeCheckerDefineFunctions
+###################################################
+g <- function( x, a ) {
+    return( 
+        c( x[1] - a[1], 
+           x[2] - a[2],
+          (x[1] - a[1])^2, 
+          (x[2] - a[2])^2, 
+          (x[1] - a[1])^3,
+          (x[2] - a[2])^3 
+        ) 
+    )
+}
+
+g_grad <- function( x, a ) {
+    return( 
+        rbind( 
+            c( 1, 0 ),
+            c( 0, 1 ),
+            c( 2*(x[1] - a[1]), 0 ),
+            c( 2*(x[1] - a[1]), 2*(x[2] - a[2]) ),
+            c( 3*(x[1] - a[2])^2, 0 ),
+            c( 0, 3*(x[2] - a[2])^2 )
+        )
+    )
+}
+
+
+###################################################
+### code chunk number 20: derivativeCheckerPrint
+###################################################
+res <- check.derivatives( 
+			.x=c(1,2), 
+			func=g, 
+			func_grad=g_grad, 
+			check_derivatives_print='all', 
+			a=c(.3, .8) )
+
+
+###################################################
+### code chunk number 21: derivativeCheckerResult
+###################################################
+res
+
+
+###################################################
+### code chunk number 22: printAllOptions
+###################################################
+nloptr.print.options()
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/doc/nloptr.Rnw
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/doc/nloptr.Rnw	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/doc/nloptr.Rnw	(revision 2476)
@@ -0,0 +1,292 @@
+\documentclass[a4paper]{article}
+\usepackage[round,authoryear,sort&compress]{natbib}
+\usepackage[english]{babel}
+\usepackage{graphicx}
+
+% \VignetteIndexEntry{Introduction to nloptr: an R interface to NLopt}
+% \VignetteKeyword{optimize}
+% \VignetteKeyword{interface}
+
+\SweaveOpts{keep.source=TRUE}
+\SweaveOpts{prefix.string = figs/plot, eps = FALSE, pdf = TRUE, tikz = FALSE}
+
+
+\title{Introduction to \texttt{nloptr}: an R interface to NLopt
+\thanks{This package should be considered in beta and comments about any aspect of the package are welcome. This document is an R vignette prepared with the aid of \texttt{Sweave} (Leisch, 2002). Financial support of the UK Economic and Social Research Council through a grant (RES-589-28-0001) to the ESRC Centre for Microdata Methods and Practice (CeMMAP) is gratefully acknowledged.}}
+\author{Jelmer Ypma}
+
+\begin{document}
+
+\maketitle
+\nocite{Leisch2002}
+
+\DefineVerbatimEnvironment{Sinput}{Verbatim}{xleftmargin=2em}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}{xleftmargin=2em}
+\DefineVerbatimEnvironment{Scode}{Verbatim}{xleftmargin=2em}
+\fvset{listparameters={\setlength{\topsep}{0pt}}}
+\renewenvironment{Schunk}{\vspace{\topsep}}{\vspace{\topsep}}
+
+
+<<setSweaveOptions,echo=FALSE>>=
+# have an (invisible) initialization noweb chunk
+# to remove the default continuation prompt '>'
+options(continue = " ")
+options(width = 60)
+
+# eliminate margin space above plots
+options(SweaveHooks=list(fig=function()
+    par(mar=c(5.1, 4.1, 1.1, 2.1))))
+@
+
+\begin{abstract}
+This document describes how to use \texttt{nloptr}, which is an R interface to NLopt. NLopt is a free/open-source library for nonlinear optimization started by Steven G. Johnson, providing a common interface for a number of different free optimization routines available online as well as original implementations of various other algorithms. The NLopt library is available under the GNU Lesser General Public License (LGPL), and the copyrights are owned by a variety of authors. 
+\end{abstract}
+
+\nocite{NLopt:website}
+
+\section{Introduction}
+NLopt addresses general nonlinear optimization problems of the form:
+\begin{eqnarray*}
+&&\min_{x \in R^n} f(x) \\
+&s.t.& g(x) \leq 0 \\
+&& h(x) = 0 \\
+&& x_L \leq x \leq x_U
+\end{eqnarray*}
+where $f(\cdot)$ is the objective function and $x$ represents the $n$ optimization parameters. This problem may optionally be subject to the bound constraints (also called box constraints), $x_L$ and $x_U$. For partially or totally unconstrained problems the bounds can take values $-\infty$ or $\infty$. One may also optionally have $m$ nonlinear inequality constraints (sometimes called a nonlinear programming problem), which can be specified in $g(\cdot)$, and equality constraints that can be specified in $h(\cdot)$. Note that not all of the algorithms in NLopt can handle constraints.
+
+This vignette describes how to formulate minimization problems to be solved with the R interface to NLopt. If you want to use the C interface directly or are interested in the Matlab interface, there are other sources of documentation avialable. Some of the information here has been taken from the NLopt website\footnote{\texttt{http://ab-initio.mit.edu/nlopt}}, where more details are available. All credit for implementing the C code for the different algorithms availalbe in NLopt should go to the respective authors. See the website\footnote{\texttt{http://ab-initio.mit.edu/wiki/index.php/Citing\_NLopt}} for information on how to cite NLopt and the algorithms you use.
+
+\section{Installation}
+This package is on CRAN and can be installed from within R using
+<<installNLopt, eval=FALSE>>=
+install.packages("nloptr")
+@
+You should now be able to load the R interface to NLopt and read the help.
+<<testNLoptInstallation, eval=FALSE>>=
+library('nloptr')
+?nloptr
+@
+The most recent experimental version of \texttt{nloptr} can be installed from R-Forge using
+<<installNLoptRForge, eval=FALSE>>=
+install.packages("nloptr",repos="http://R-Forge.R-project.org")
+@
+or from source using
+<<installNLoptRForgeSource, eval=FALSE>>=
+install.packages("nloptr",type="source",repos="http://R-Forge.R-project.org")
+@
+
+\section{Minimizing the Rosenbrock Banana function}
+As a first example we will solve an unconstrained minimization problem. The function we look at is the Rosenbrock Banana function
+\[
+f( x ) = 100 \left( x_2 - x_1^2 \right)^2 + \left(1 - x_1 \right)^2,
+\]
+which is also used as an example in the documentation for the standard R optimizer \texttt{optim}. The gradient of the objective function is given by
+\[
+\nabla f( x ) = 
+\left( \begin{array}[1]{c}
+-400 \cdot x_1 \cdot (x_2 - x_1^2) - 2 \cdot (1 - x_1) \\
+ 200 \cdot (x_2 - x_1^2)
+\end{array} \right).
+\]
+Not all of the algorithms in NLopt need gradients to be supplied by the user. We will show examples with and without supplying the gradient. After loading the library
+<<loadLibrary>>=
+library(nloptr)
+@
+we start by specifying the objective function and its gradient
+<<defineRosenbrockBanana>>=
+## Rosenbrock Banana function
+eval_f <- function(x) {   
+    return( 100 * (x[2] - x[1] * x[1])^2 + (1 - x[1])^2 )
+}
+
+## Gradient of Rosenbrock Banana function
+eval_grad_f <- function(x) { 
+    return( c( -400 * x[1] * (x[2] - x[1] * x[1]) - 2 * (1 - x[1]),
+                200 * (x[2] - x[1] * x[1]) ) )
+}
+@
+We define initial values
+<<setRosenbrockBananaInitialValues>>=
+# initial values
+x0 <- c( -1.2, 1 )
+@
+and then minimize the function using the \texttt{nloptr} command. This command runs some checks on the supplied inputs and returns an object with the exit code of the solver, the optimal value of the objective function and the solution. Before we can minimize the function we need to specify which algorithm we want to use
+<<setRosenbrockBananaOptions>>=
+opts <- list("algorithm"="NLOPT_LD_LBFGS",
+             "xtol_rel"=1.0e-8)
+@
+Here we use the L-BFGS algorithm \citep{Nocedal:1980, LiuNocedal:1989}. The characters \texttt{LD} in the algorithm show that this algorithm looks for local minima (\texttt{L}) using a derivative-based (\texttt{D}) algorithm. Other algorithms look for global (\texttt{G}) minima, or they don't need derivatives (\texttt{N}). We also specified the termination criterium in terms of the relative x-tolerance. Other termination criteria are available (see Appendix \ref{sec:descoptions} for a full list of options). We then solve the minimization problem using
+<<solveRosenbrockBanana>>= 
+# solve Rosenbrock Banana function
+res <- nloptr( x0=x0, 
+               eval_f=eval_f, 
+               eval_grad_f=eval_grad_f,
+               opts=opts)
+@
+We can see the results by printing the resulting object.
+<<printRosenbrockBanana>>=
+print( res )
+@
+Sometimes the objective function and its gradient contain common terms. To economize on calculations, we can return the objective and its gradient in a list. For the Rosenbrock Banana function we have for instance
+<<defineRosenbrockBananaList>>=
+## Rosenbrock Banana function and gradient in one function
+eval_f_list <- function(x) {
+    common_term <- x[2] - x[1] * x[1]
+    return( list( "objective" = 100 * common_term^2 + (1 - x[1])^2,
+                  "gradient"  = c( -400 * x[1] * common_term - 2 * (1 - x[1]),
+                                    200 * common_term) ) )
+}
+@
+which we minimize using
+<<solveRosenbrockBananaList>>= 
+res <- nloptr( x0=x0, 
+               eval_f=eval_f_list,
+               opts=opts)
+print( res )
+@
+This gives the same results as before.
+
+\section{Minimization with inequality constraints}
+This section shows how to minimize a function subject to inequality constraints. This example is the same as the one used in the tutorial on the NLopt website. The problem we want to solve is
+\begin{eqnarray*}
+&&\min_{x \in R^n} \sqrt{x_2} \\
+&s.t.& x_2 \geq 0 \\
+&& x_2 \geq ( a_1 x_1 + b_1 )^3 \\
+&& x_2 \geq ( a_2 x_1 + b_2 )^3, 
+\end{eqnarray*}
+where $a_1 = 2$, $b_1 = 0$, $a_2 = -1$, and $b_2 = 1$. In order to solve this problem, we first have to re-formulate the constraints to be of the form $g(x) \leq 0$. Note that the first constraint is a bound on $x_2$, which we will add later. The other two constraints can be re-written as
+\begin{eqnarray*}
+( a_1 x_1 + b_1 )^3 - x_2 &\leq& 0 \\
+( a_2 x_1 + b_2 )^3 - x_2 &\leq& 0.
+\end{eqnarray*}
+
+First we define R functions to calculate the objective function and its gradient
+<<defineTutorialObjective>>=
+# objective function
+eval_f0 <- function( x, a, b ){ 
+    return( sqrt(x[2]) )
+}
+
+# gradient of objective function
+eval_grad_f0 <- function( x, a, b ){ 
+    return( c( 0, .5/sqrt(x[2]) ) )
+}
+@
+If needed, these can of course be calculated in the same function as before. Then we define the two constraints and the jacobian of the constraints
+<<defineTutorialConstraints>>=
+# constraint function
+eval_g0 <- function( x, a, b ) {
+    return( (a*x[1] + b)^3 - x[2] )
+}
+
+# jacobian of constraint
+eval_jac_g0 <- function( x, a, b ) {
+    return( rbind( c( 3*a[1]*(a[1]*x[1] + b[1])^2, -1.0 ), 
+                   c( 3*a[2]*(a[2]*x[1] + b[2])^2, -1.0 ) ) )
+}
+@
+Note that all of the functions above depend on additional parameters, \texttt{a} and \texttt{b}. We have to supply specific values for these when we invoke the optimization command. The constraint function \texttt{eval\_g0} returns a vector with in this case the same length as the vectors \texttt{a} and \texttt{b}. The function calculating the jacobian of the constraint should return a matrix where the number of rows equal the number of constraints (in this case two). The number of columns should equal the number of control variables (two in this case as well).
+
+After defining values for the parameters
+<<defineTutorialParameters>>=
+# define parameters
+a <- c(2,-1)
+b <- c(0, 1)
+@
+we can minimize the function subject to the constraints with the following command
+<<solveTutorialWithGradient>>=
+# Solve using NLOPT_LD_MMA with gradient information supplied in separate function
+res0 <- nloptr( x0=c(1.234,5.678), 
+                eval_f=eval_f0, 
+                eval_grad_f=eval_grad_f0,
+                lb = c(-Inf,0), 
+                ub = c(Inf,Inf), 
+                eval_g_ineq = eval_g0,
+                eval_jac_g_ineq = eval_jac_g0,                
+                opts = list("algorithm" = "NLOPT_LD_MMA",
+                            "xtol_rel"=1.0e-8,
+                            "print_level" = 2,
+                            "check_derivatives" = TRUE,
+                            "check_derivatives_print" = "all"),
+                a = a, 
+                b = b )
+print( res0 )
+@
+Here we supplied lower bounds for $x_2$ in \texttt{lb}. There are no upper bounds for both control variables, so we supply \texttt{Inf} values. If we don't supply lower or upper bounds, plus or minus infinity is chosen by default. The inequality constraints and its jacobian are defined using \texttt{eval\_g\_ineq} and \texttt{eval\_jac\_g\_ineq}. Not all algorithms can handle inequality constraints, so we have to specifiy one that does, \texttt{NLOPT\_LD\_MMA} \citep{Svanberg:2002}. 
+
+We also specify the option \texttt{print\_level} to obtain output during the optimization process. For the available \texttt{print\_level} values, see \texttt{?nloptr}. Setting the \texttt{check\_derivatives} option to \texttt{TRUE}, compares the gradients supplied by the user with a finite difference approximation in the initial point (\texttt{x0}). When this check is run, the option \texttt{check\_derivatives\_print} can be used to print all values of the derivative checker (\texttt{all} (default)), only those values that result in an error (\texttt{errors}) or no output (\texttt{none}), in which case only the number of errors is shown. The tolerance that determines if a difference between the analytic gradient and the finite difference approximation results in an error can be set using the option \texttt{check\_derivatives\_tol} (default = 1e-04). The first column shows the value of the analytic gradient, the second column shows the value of the finite difference approximation, and the third column shows the relative error. Stars are added at the front of a line if the relative error is larger than the specified tolerance.
+
+Finally, we add all the parameters that have to be passed on to the objective and constraint functions, \texttt{a} and \texttt{b}.
+
+We can also use a different algorithm to solve the same minimization problem. The only thing we have to change is the algorithm that we want to use, in this case \texttt{NLOPT\_LN\_COBYLA}, which is an algorithm that doesn't need gradient information \citep{Powell:1994, Powell:1998}.
+<<solveTutorialWithoutGradient>>=
+# Solve using NLOPT_LN_COBYLA without gradient information
+res1 <- nloptr( x0=c(1.234,5.678), 
+                eval_f=eval_f0, 
+                lb = c(-Inf,0), 
+                ub = c(Inf,Inf), 
+                eval_g_ineq = eval_g0, 
+                opts = list("algorithm"="NLOPT_LN_COBYLA", 
+                            "xtol_rel"=1.0e-8),
+                a = a, 
+                b = b )
+print( res1 )
+@
+
+\section{Derivative checker}
+The derivative checker can be called when supplying a minimization problem to \texttt{nloptr}, using the options \texttt{check\_derivatives}, \texttt{check\_derivatives\_tol} and \texttt{check\_derivatives\_print}, but it can also be used separately. For example, define the function \texttt{g}, with vector outcome, and its gradient \texttt{g\_grad}
+<<derivativeCheckerDefineFunctions>>=
+g <- function( x, a ) {
+    return( 
+        c( x[1] - a[1], 
+           x[2] - a[2],
+          (x[1] - a[1])^2, 
+          (x[2] - a[2])^2, 
+          (x[1] - a[1])^3,
+          (x[2] - a[2])^3 
+        ) 
+    )
+}
+
+g_grad <- function( x, a ) {
+    return( 
+        rbind( 
+            c( 1, 0 ),
+            c( 0, 1 ),
+            c( 2*(x[1] - a[1]), 0 ),
+            c( 2*(x[1] - a[1]), 2*(x[2] - a[2]) ),
+            c( 3*(x[1] - a[2])^2, 0 ),
+            c( 0, 3*(x[2] - a[2])^2 )
+        )
+    )
+}
+@
+\texttt{a} is some vector containing data. The gradient contains some errors in this case. By calling the function \texttt{check.derivatives} we can check the user-supplied analytic gradients with a finite difference approximation at a point \texttt{.x}. 
+<<derivativeCheckerPrint>>=
+res <- check.derivatives( 
+			.x=c(1,2), 
+			func=g, 
+			func_grad=g_grad, 
+			check_derivatives_print='all', 
+			a=c(.3, .8) )
+@
+The errors are shown on screen, where the option \texttt{check\_derivatives\_print} determines the amount of output you see. The value of the analytic gradient and the value of the finite difference approximation at the supplied point is returned in a list.
+<<derivativeCheckerResult>>=
+res
+@
+Note that not all errors will be picked up by the derivative checker. For instance, if we run the check with \texttt{a = c(.5, .5)}, one of the errors is not flagged as an error.
+\section{Notes}
+The \texttt{.R} scripts in the \texttt{tests} directory contain more examples. For instance, \texttt{hs071.R} and \texttt{systemofeq.R} show how to solve problems with equality constraints. See also \texttt{http://ab-initio.mit.edu/wiki/index.php/NLopt\_Algorithms\#Augmented\_Lagrangian\_algorithm} for more details. Please let me know if you're missing any of the features that are implemented in NLopt.
+
+Sometimes the optimization procedure terminates with a message \texttt{maxtime was reached} without evaluating the objective function. Submitting the same problem again usually solves this problem.
+
+\bibliographystyle{plainnat}
+\bibliography{reflist}
+
+\appendix
+\section{Description of options}
+\label{sec:descoptions}
+<<printAllOptions>>=
+nloptr.print.options()
+@
+\end{document}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/INDEX	(revision 2476)
@@ -0,0 +1,31 @@
+auglag                  Augmented Lagrangian Algorithm
+bobyqa                  Bound Optimization by Quadratic Approximation
+check.derivatives       Check analytic gradients of a function using
+                        finite difference approximations
+cobyla                  Constrained Optimization by Linear
+                        Approximations
+crs2lm                  Controlled Random Search
+direct                  DIviding RECTangles Algorithm for Global
+                        Optimization
+is.nloptr               R interface to NLopt
+isres                   Improved Stochastic Ranking Evolution Strategy
+lbfgs                   Low-storage BFGS
+mlsl                    Multi-level Single-linkage
+mma                     Method of Moving Asymptotes
+neldermead              Nelder-Mead Simplex
+newuoa                  New Unconstrained Optimization with quadratic
+                        Approximation
+nl.grad                 Numerical Gradients and Jacobians
+nl.opts                 Setting NL Options
+nloptr                  R interface to NLopt
+nloptr-package          R interface to NLopt
+nloptr.get.default.options
+                        Return a data.frame with all the options that
+                        can be supplied to nloptr.
+nloptr.print.options    Print description of nloptr options
+print.nloptr            Print results after running nloptr
+sbplx                   Subplex Algorithm
+slsqp                   Sequential Quadratic Programming (SQP)
+stogo                   Stochastic Global Optimization
+tnewton                 Preconditioned Truncated Newton
+varmetric               Shifted Limited-memory Variable-metric
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/help/nloptr.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/help/nloptr.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/help/nloptr.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/help/nloptr.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/help/AnIndex	(revision 2476)
@@ -0,0 +1,27 @@
+nloptr-package	nloptr-package
+auglag	auglag
+bobyqa	bobyqa
+check.derivatives	check.derivatives
+cobyla	cobyla
+crs2lm	crs2lm
+direct	direct
+directL	direct
+is.nloptr	is.nloptr
+isres	isres
+lbfgs	lbfgs
+mlsl	mlsl
+mma	mma
+neldermead	neldermead
+newuoa	newuoa
+nl.grad	gradients
+nl.jacobian	gradients
+nl.opts	nloptions
+nloptr	nloptr
+nloptr.get.default.options	nloptr.get.default.options
+nloptr.print.options	nloptr.print.options
+print.nloptr	print.nloptr
+sbplx	sbplx
+slsqp	slsqp
+stogo	stogo
+tnewton	tnewton
+varmetric	varmetric
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/libs/nloptr.so.dSYM/Contents/Resources/DWARF/nloptr.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/libs/nloptr.so.dSYM/Contents/Resources/DWARF/nloptr.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/libs/nloptr.so.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/libs/nloptr.so.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/libs/nloptr.so.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.nloptr.so</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/libs/nloptr.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/libs/nloptr.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/CITATION	(revision 2476)
@@ -0,0 +1,21 @@
+citHeader("If you use NLopt in work that leads to a publication, we would appreciate it if 
+you would kindly cite NLopt in your manuscript. Please cite both the NLopt library and the 
+authors of the specific algorithm(s) that you employed in your work. Cite NLopt as:")
+
+citEntry(entry="Article",
+  title = 	 "The NLopt nonlinear-optimization package",
+  author = personList(as.person("Steven G. Johnson")),
+  year =     "?",
+  journal =  "?",
+  volume = "?",
+  number = "?",
+  pages = "?", 
+  textVersion = "Steven G. Johnson, The NLopt nonlinear-optimization package, http://ab-initio.mit.edu/nlopt" )  
+
+citFooter("The authors and appropriate citations for the specific optimization algorithms 
+in NLopt are listed in the NLopt Algorithms page.")
+
+    
+
+
+  
\ No newline at end of file
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/nloptr/NAMESPACE	(revision 2476)
@@ -0,0 +1,24 @@
+### NAMESPACE
+
+useDynLib(nloptr, NLoptR_Optimize)
+
+## Public routines
+export(nloptr, is.nloptr, nloptr.print.options, nloptr.get.default.options)
+export(check.derivatives)
+
+export(nl.grad, nl.jacobian)
+export(nl.opts)
+export(slsqp)
+export(cobyla, bobyqa, newuoa)
+export(direct, directL)
+export(neldermead, sbplx)
+export(lbfgs, tnewton)
+export(mma)
+export(varmetric)
+export(mlsl)
+export(crs2lm, isres)
+export(stogo)
+export(auglag)
+
+## S3 and S4 methods
+S3method(print, nloptr)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/GPL-2
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/GPL-2	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/GPL-2	(revision 2476)
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/R/digest.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/R/digest.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/R/digest.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/R/digest.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/R/digest
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/R/digest	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/R/digest	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/DESCRIPTION	(revision 2476)
@@ -0,0 +1,29 @@
+Package: digest
+Author: Dirk Eddelbuettel <edd@debian.org> with contributions 
+ by Antoine Lucas, Jarek Tuszynski, Henrik Bengtsson, Simon Urbanek,
+ Mario Frasca, Bryan Lewis, Murray Stokely, Hannes Muehleisen,
+ Duncan Murdoch, Jim Hester, Wush Wu, Qiang Kou, Thierry Onkelinx, 
+ Michel Lang and Viliam Simko.
+Version: 0.6.12
+Date: 2017-01-26
+Maintainer: Dirk Eddelbuettel <edd@debian.org>
+Title: Create Compact Hash Digests of R Objects
+Description: Implementation of a function 'digest()' for the creation 
+ of hash digests of arbitrary R objects (using the 'md5', 'sha-1', 'sha-256', 
+ 'crc32', 'xxhash' and 'murmurhash' algorithms) permitting easy comparison of R
+ language objects, as well as a function 'hmac()' to create hash-based
+ message authentication code. Please note that this package is not meant to
+ be deployed for cryptographic purposes for which more comprehensive (and
+ widely tested) libraries such as 'OpenSSL' should be used.
+URL: http://dirk.eddelbuettel.com/code/digest.html
+BugReports: https://github.com/eddelbuettel/digest/issues
+Depends: R (>= 2.4.1)
+License: GPL (>= 2)
+Suggests: knitr, rmarkdown
+VignetteBuilder: knitr
+NeedsCompilation: yes
+Packaged: 2017-01-26 13:52:49.564188 UTC; edd
+Repository: CRAN
+Date/Publication: 2017-01-27 10:18:01
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2017-01-28 11:28:09 UTC; unix
+Archs: digest.so.dSYM
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/include/pmurhashAPI.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/include/pmurhashAPI.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/include/pmurhashAPI.h	(revision 2476)
@@ -0,0 +1,106 @@
+/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+
+  pmurhashAPI.h -- interface file for external clients
+
+  Copyright (C) 2014 Wush Wu and Dirk Eddelbuettel 
+
+  This file is part of digest.
+
+  digest is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 2 of the License, or
+  (at your option) any later version.
+
+  digest is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with digest.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+   Purpose:  
+
+      Provide MurmurHash3A for use by C / C++ code of other R packages
+
+   Usage:
+
+      1) In your package, add 'LinkingTo: digest' to the DESCRIPTION file.
+         This ensure that R will know the path to this file.
+
+      2) In your source code, add '#include <pmurhashAPI.h>'
+         This ensures the compiler knows the declaration of the function 
+         interface.
+
+      3) In your package's source code, call 'res = PMurHash32(seed,
+         key, len);' where res and seed are of type MH_UINT32 (which
+         is defined appropriately below).
+
+      4) The local function here sets a static pointer to the actual
+         MurmurHash32 implementation in this package. R takes care of
+         the function registration, export and import --- meaning that
+         no build-time linking of your package is needed resulting in
+         simpler and more robust build steps.
+    
+*/
+
+
+#ifndef __PMURHASH_H__
+#define __PMURHASH_H__
+
+#include <stddef.h>
+#include <R_ext/Rdynload.h>
+
+#ifdef HAVE_VISIBILITY_ATTRIBUTE
+    # define attribute_hidden __attribute__ ((visibility ("hidden")))
+#else
+    # define attribute_hidden
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* First look for special cases */
+#if defined(_MSC_VER)
+   #define MH_UINT32 unsigned long
+#endif
+
+/* If the compiler says it's C99 then take its word for it */
+#if !defined(MH_UINT32) && ( \
+     defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L )
+    #include <stdint.h>
+    #define MH_UINT32 uint32_t
+#endif
+
+/* Otherwise try testing against max value macros from limit.h */
+#if !defined(MH_UINT32)
+    #include  <limits.h>
+    #if   (USHRT_MAX == 0xffffffffUL)
+        #define MH_UINT32 unsigned short
+    #elif (UINT_MAX == 0xffffffffUL)
+        #define MH_UINT32 unsigned int
+    #elif (ULONG_MAX == 0xffffffffUL)
+        #define MH_UINT32 unsigned long
+    #endif
+#endif
+
+#if !defined(MH_UINT32)
+    #error Unable to determine type name for unsigned 32-bit int
+#endif
+
+MH_UINT32 attribute_hidden PMurHash32(MH_UINT32 seed, const void *key, int len) {
+    static MH_UINT32(*f)(MH_UINT32, const void*, int) = NULL;
+    if (!f) {
+        f = (MH_UINT32(*)(MH_UINT32, const void*, int)) R_GetCCallable("digest", "PMurHash32");
+    }
+    return f(seed, key, len);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __PMURHASH_H__ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/html/00Index.html	(revision 2476)
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Create Compact Hash Digests of R Objects</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Create Compact Hash Digests of R Objects
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;digest&rsquo; version 0.6.12</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="AES.html">AES</a></td>
+<td>Create AES block cipher object</td></tr>
+<tr><td style="width: 25%;"><a href="digest.html">digest</a></td>
+<td>Create hash function digests for arbitrary R objects</td></tr>
+<tr><td style="width: 25%;"><a href="hmac.html">hmac</a></td>
+<td>compute a hash-based message authentication code</td></tr>
+<tr><td style="width: 25%;"><a href="makeRaw.html">makeRaw</a></td>
+<td>Create a raw object</td></tr>
+<tr><td style="width: 25%;"><a href="makeRaw.html">makeRaw.character</a></td>
+<td>Create a raw object</td></tr>
+<tr><td style="width: 25%;"><a href="makeRaw.html">makeRaw.default</a></td>
+<td>Create a raw object</td></tr>
+<tr><td style="width: 25%;"><a href="makeRaw.html">makeRaw.digest</a></td>
+<td>Create a raw object</td></tr>
+<tr><td style="width: 25%;"><a href="makeRaw.html">makeRaw.raw</a></td>
+<td>Create a raw object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.anova</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.array</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.call</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.character</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.complex</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.data.frame</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.Date</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.factor</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.function</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.integer</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.list</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.logical</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.matrix</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.name</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.NULL</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.numeric</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.pairlist</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.POSIXct</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+<tr><td style="width: 25%;"><a href="sha1.html">sha1.POSIXlt</a></td>
+<td>Calculate a SHA1 hash of an object</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/index.html	(revision 2476)
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Vignettes and other documentation</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="/doc/html/R.css" />
+</head><body>
+<h1> Vignettes and other documentation
+<img class="toplogo" src="/doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="/doc/html/index.html"><img class="arrow" src="/doc/html/up.jpg" alt="[Top]" /></a>
+</div>
+<h2>Vignettes from package 'digest'</h2>
+<table width="100%">
+<col style="width: 22%;" />
+<col style="width:  2%;" />
+<col style="width: 50%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<col style="width:  8%;" />
+<tr><td style="text-align: right; vertical-align: top;"><a href="../../../library/digest/doc/sha1.html">digest::sha1</a></td>
+<td></td><td valign="top">sha1() versus digest()</td>
+<td valign="top"><a href="../../../library/digest/doc/sha1.html">HTML</a></td>
+<td valign="top"><a href="../../../library/digest/doc/sha1.Rmd">source</a></td>
+<td valign="top" style="white-space: nowrap"><a href="../../../library/digest/doc/sha1.R">R code</a></td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/sha1.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/sha1.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/sha1.R	(revision 2476)
@@ -0,0 +1,90 @@
+## ----faq7_31-------------------------------------------------------------
+# FAQ 7.31
+a0 <- 2
+b <- sqrt(a0)
+a1 <- b ^ 2
+identical(a0, a1)
+a0 - a1
+a <- c(a0, a1)
+# hexadecimal representation
+sprintf("%a", a)
+
+## ----faq7_31digest-------------------------------------------------------
+library(digest)
+# different hashes with digest
+sapply(a, digest, algo = "sha1")
+# same hash with sha1 with default digits (14)
+sapply(a, sha1)
+# larger digits can lead to different hashes
+sapply(a, sha1, digits = 15)
+# decreasing the number of digits gives a stronger truncation
+# the hash will change when then truncation gives a different result
+# case where truncating gives same hexadecimal value
+sapply(a, sha1, digits = 13)
+sapply(a, sha1, digits = 10)
+# case where truncating gives different hexadecimal value
+c(sha1(pi), sha1(pi, digits = 13), sha1(pi, digits = 10))
+
+## ----sha1_lm_sum---------------------------------------------------------
+# taken from the help file of lm.influence
+lm_SR <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)
+lm_sum <- summary(lm_SR)
+class(lm_sum)
+# str() gives the structure of the lm object
+str(lm_sum)
+# extract the coefficients and their standard error
+coef_sum <- coef(lm_sum)[, c("Estimate", "Std. Error")]
+# extract sigma
+sigma <- lm_sum$sigma
+# check the class of each component
+class(coef_sum)
+class(sigma)
+# sha1() has methods for both matrix and numeric
+# because the values originate from floating point arithmetic it is better to use a low number of digits
+sha1(coef_sum, digits = 4)
+sha1(sigma, digits = 4)
+# we want a single hash
+# combining the components in a list is a solution that works
+sha1(list(coef_sum, sigma), digits = 4)
+# now turn everything into an S3 method
+#   - a function with name "sha1.classname"
+#   - must have the same arguments as sha1()
+sha1.summary.lm <- function(x, digits = 4, zapsmall = 7){
+    coef_sum <- coef(x)[, c("Estimate", "Std. Error")]
+    sigma <- x$sigma
+    combined <- list(coef_sum, sigma)
+    sha1(combined, digits = digits, zapsmall = zapsmall)
+}
+sha1(lm_sum)
+
+# try an altered dataset
+LCS2 <- LifeCycleSavings[rownames(LifeCycleSavings) != "Zambia", ]
+lm_SR2 <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LCS2)
+sha1(summary(lm_SR2))
+
+## ----sha1_lm-------------------------------------------------------------
+class(lm_SR)
+# str() gives the structure of the lm object
+str(lm_SR)
+# extract the model and the terms
+lm_model <- lm_SR$model
+lm_terms <- lm_SR$terms
+# check their class
+class(lm_model) # handled by sha1()
+class(lm_terms) # not handled by sha1()
+# define a method for formula
+sha1.formula <- function(x, digits = 14, zapsmall = 7){
+    sha1(as.character(x), digits = digits, zapsmall = zapsmall)
+}
+sha1(lm_terms)
+sha1(lm_model)
+# define a method for lm
+sha1.lm <- function(x, digits = 14, zapsmall = 7){
+    lm_model <- x$model
+    lm_terms <- x$terms
+    combined <- list(lm_model, lm_terms)
+    sha1(combined, digits = digits, zapsmall = zapsmall)
+}
+sha1(lm_SR)
+sha1(lm_SR2)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/sha1.Rmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/sha1.Rmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/sha1.Rmd	(revision 2476)
@@ -0,0 +1,192 @@
+---
+title: "Calculating SHA1 hashes with digest() and sha1()"
+author: "Thierry Onkelinx and Dirk Eddelbuettel"
+date: "`r Sys.Date()`"
+output: rmarkdown::html_vignette
+vignette: >
+  %\VignetteIndexEntry{sha1() versus digest()}
+  %\VignetteEngine{knitr::rmarkdown}
+  %\VignetteEncoding{UTF-8}
+---
+
+NB: This vignette is work-in-progress and not yet complete.
+
+## Short intro on hashes
+
+TBD
+
+## Difference between `digest()` and `sha1()`
+
+R [FAQ 7.31](https://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f) illustrates potential problems with floating point arithmetic. Mathematically the equality $x = \sqrt{x}^2$ should hold. But the precision of floating points numbers is finite. Hence some rounding is done, leading to numbers which are no longer identical.
+
+An illustration:
+
+```{r faq7_31}
+# FAQ 7.31
+a0 <- 2
+b <- sqrt(a0)
+a1 <- b ^ 2
+identical(a0, a1)
+a0 - a1
+a <- c(a0, a1)
+# hexadecimal representation
+sprintf("%a", a)
+```
+
+Although the difference is small, any difference will result in different hash when using the `digest()` function. 
+However, the`sha1()` function tackles this problem by using the hexadecimal representation of the numbers and truncates 
+that representation to a certain number of digits prior to calculating the hash function. 
+
+```{r faq7_31digest}
+library(digest)
+# different hashes with digest
+sapply(a, digest, algo = "sha1")
+# same hash with sha1 with default digits (14)
+sapply(a, sha1)
+# larger digits can lead to different hashes
+sapply(a, sha1, digits = 15)
+# decreasing the number of digits gives a stronger truncation
+# the hash will change when then truncation gives a different result
+# case where truncating gives same hexadecimal value
+sapply(a, sha1, digits = 13)
+sapply(a, sha1, digits = 10)
+# case where truncating gives different hexadecimal value
+c(sha1(pi), sha1(pi, digits = 13), sha1(pi, digits = 10))
+```
+
+The result of floating point arithematic on 32-bit and 64-bit can be slightly different. E.g. `print(pi ^ 11, 22)` returns `294204.01797389047` on 32-bit and `294204.01797389053` on 64-bit. Note that only the last 2 digits are different.  
+
+| command | 32-bit | 64-bit|
+| - | - | - |
+| `print(pi ^ 11, 22)` | `294204.01797389047` | `294204.01797389053` |
+| `sprintf("%a", pi ^ 11)`| `"0x1.1f4f01267bf5fp+18"` | `"0x1.1f4f01267bf6p+18"` |
+| `digest(pi ^ 11, algo = "sha1")` | `"c5efc7f167df1bb402b27cf9b405d7cebfba339a"` | `"b61f6fea5e2a7952692cefe8bba86a00af3de713"`|
+| `sha1(pi ^ 11, digits = 14)` | `"5c7740500b8f78ec2354ea6af58ea69634d9b7b1"` | `"4f3e296b9922a7ddece2183b1478d0685609a359"` |
+| `sha1(pi ^ 11, digits = 13)` | `"372289f87396b0877ccb4790cf40bcb5e658cad7"` | `"372289f87396b0877ccb4790cf40bcb5e658cad7"` |
+| `sha1(pi ^ 11, digits = 10)` | `"c05965af43f9566bfb5622f335817f674abfc9e4"` | `"c05965af43f9566bfb5622f335817f674abfc9e4"` |
+
+## Choosing `digest()` or `sha1()`
+
+TBD
+
+## Creating a sha1 method for other classes
+
+### How to
+
+1. Identify the relevant components for the hash.
+1. Determine the class of each relevant component and check if they are handled by `sha1()`.
+    - Write a method for each component class not yet handled by `sha1`.
+1. Extract the relevant components.
+1. Combine the relevant components into a list. Not required in case of a single component.
+1. Apply `sha1()` on the (list of) relevant component(s).
+1. Turn this into a function with name sha1._classname_.
+1. sha1._classname_ needs exactly the same arguments as `sha1()`
+1. Choose sensible defaults for the arguments
+    - `zapsmall = 7` is recommended.
+    - `digits = 14` is recommended in case all numerics are data.
+    - `digits = 4` is recommended in case some numerics stem from floating point arithmetic.
+
+###  summary.lm
+
+Let's illustrate this using the summary of a simple linear regression. Suppose that we want a hash that takes into account the coefficients, their standard error and sigma.
+
+```{r sha1_lm_sum}
+# taken from the help file of lm.influence
+lm_SR <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)
+lm_sum <- summary(lm_SR)
+class(lm_sum)
+# str() gives the structure of the lm object
+str(lm_sum)
+# extract the coefficients and their standard error
+coef_sum <- coef(lm_sum)[, c("Estimate", "Std. Error")]
+# extract sigma
+sigma <- lm_sum$sigma
+# check the class of each component
+class(coef_sum)
+class(sigma)
+# sha1() has methods for both matrix and numeric
+# because the values originate from floating point arithmetic it is better to use a low number of digits
+sha1(coef_sum, digits = 4)
+sha1(sigma, digits = 4)
+# we want a single hash
+# combining the components in a list is a solution that works
+sha1(list(coef_sum, sigma), digits = 4)
+# now turn everything into an S3 method
+#   - a function with name "sha1.classname"
+#   - must have the same arguments as sha1()
+sha1.summary.lm <- function(x, digits = 4, zapsmall = 7){
+    coef_sum <- coef(x)[, c("Estimate", "Std. Error")]
+    sigma <- x$sigma
+    combined <- list(coef_sum, sigma)
+    sha1(combined, digits = digits, zapsmall = zapsmall)
+}
+sha1(lm_sum)
+
+# try an altered dataset
+LCS2 <- LifeCycleSavings[rownames(LifeCycleSavings) != "Zambia", ]
+lm_SR2 <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LCS2)
+sha1(summary(lm_SR2))
+```
+
+###  lm
+
+Let's illustrate this using the summary of a simple linear regression. Suppose that we want a hash that takes into account the coefficients, their standard error and sigma.
+
+```{r sha1_lm}
+class(lm_SR)
+# str() gives the structure of the lm object
+str(lm_SR)
+# extract the model and the terms
+lm_model <- lm_SR$model
+lm_terms <- lm_SR$terms
+# check their class
+class(lm_model) # handled by sha1()
+class(lm_terms) # not handled by sha1()
+# define a method for formula
+sha1.formula <- function(x, digits = 14, zapsmall = 7){
+    sha1(as.character(x), digits = digits, zapsmall = zapsmall)
+}
+sha1(lm_terms)
+sha1(lm_model)
+# define a method for lm
+sha1.lm <- function(x, digits = 14, zapsmall = 7){
+    lm_model <- x$model
+    lm_terms <- x$terms
+    combined <- list(lm_model, lm_terms)
+    sha1(combined, digits = digits, zapsmall = zapsmall)
+}
+sha1(lm_SR)
+sha1(lm_SR2)
+```
+
+## Using hashes to track changes in analysis
+
+Use case
+
+- automated analysis
+- update frequency of the data might be lower than the frequency of automated analysis
+- similar analyses on many datasets (e.g. many species in ecology)
+- analyses that require a lot of computing time
+    - not rerunning an analysis because nothing has changed saves enough resources to compensate the overhead of tracking changes
+
+- Bundle all relevant information on an analysis in a class
+    - data
+    - method
+    - formula
+    - other metadata
+    - resulting model
+- calculate `sha1()`
+
+    file fingerprint
+      ~ `sha1()` on the stable parts
+    
+    status fingerprint
+      ~ `sha1()` on the parts that result for the model
+
+1. Prepare analysis objects
+1. Store each analysis object in a rda file which uses the file fingerprint as filename
+    - File will already exist when no change in analysis
+    - Don't overwrite existing files
+1. Loop over all rda files
+    - Do nothing if the analysis was run
+    - Otherwise run the analysis and update the status and status fingerprint
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/sha1.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/sha1.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/sha1.html	(revision 2476)
@@ -0,0 +1,435 @@
+<!DOCTYPE html>
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+<head>
+
+<meta charset="utf-8">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="pandoc" />
+
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+<meta name="author" content="Thierry Onkelinx and Dirk Eddelbuettel" />
+
+<meta name="date" content="2017-01-26" />
+
+<title>Calculating SHA1 hashes with digest() and sha1()</title>
+
+
+
+<style type="text/css">code{white-space: pre;}</style>
+<style type="text/css">
+div.sourceCode { overflow-x: auto; }
+table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
+  margin: 0; padding: 0; vertical-align: baseline; border: none; }
+table.sourceCode { width: 100%; line-height: 100%; }
+td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; }
+td.sourceCode { padding-left: 5px; }
+code > span.kw { color: #007020; font-weight: bold; } /* Keyword */
+code > span.dt { color: #902000; } /* DataType */
+code > span.dv { color: #40a070; } /* DecVal */
+code > span.bn { color: #40a070; } /* BaseN */
+code > span.fl { color: #40a070; } /* Float */
+code > span.ch { color: #4070a0; } /* Char */
+code > span.st { color: #4070a0; } /* String */
+code > span.co { color: #60a0b0; font-style: italic; } /* Comment */
+code > span.ot { color: #007020; } /* Other */
+code > span.al { color: #ff0000; font-weight: bold; } /* Alert */
+code > span.fu { color: #06287e; } /* Function */
+code > span.er { color: #ff0000; font-weight: bold; } /* Error */
+code > span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
+code > span.cn { color: #880000; } /* Constant */
+code > span.sc { color: #4070a0; } /* SpecialChar */
+code > span.vs { color: #4070a0; } /* VerbatimString */
+code > span.ss { color: #bb6688; } /* SpecialString */
+code > span.im { } /* Import */
+code > span.va { color: #19177c; } /* Variable */
+code > span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
+code > span.op { color: #666666; } /* Operator */
+code > span.bu { } /* BuiltIn */
+code > span.ex { } /* Extension */
+code > span.pp { color: #bc7a00; } /* Preprocessor */
+code > span.at { color: #7d9029; } /* Attribute */
+code > span.do { color: #ba2121; font-style: italic; } /* Documentation */
+code > span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
+code > span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
+code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
+</style>
+
+
+
+<link href="data:text/css;charset=utf-8,body%20%7B%0Abackground%2Dcolor%3A%20%23fff%3B%0Amargin%3A%201em%20auto%3B%0Amax%2Dwidth%3A%20700px%3B%0Aoverflow%3A%20visible%3B%0Apadding%2Dleft%3A%202em%3B%0Apadding%2Dright%3A%202em%3B%0Afont%2Dfamily%3A%20%22Open%20Sans%22%2C%20%22Helvetica%20Neue%22%2C%20Helvetica%2C%20Arial%2C%20sans%2Dserif%3B%0Afont%2Dsize%3A%2014px%3B%0Aline%2Dheight%3A%201%2E35%3B%0A%7D%0A%23header%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0A%23TOC%20%7B%0Aclear%3A%20both%3B%0Amargin%3A%200%200%2010px%2010px%3B%0Apadding%3A%204px%3B%0Awidth%3A%20400px%3B%0Aborder%3A%201px%20solid%20%23CCCCCC%3B%0Aborder%2Dradius%3A%205px%3B%0Abackground%2Dcolor%3A%20%23f6f6f6%3B%0Afont%2Dsize%3A%2013px%3B%0Aline%2Dheight%3A%201%2E3%3B%0A%7D%0A%23TOC%20%2Etoctitle%20%7B%0Afont%2Dweight%3A%20bold%3B%0Afont%2Dsize%3A%2015px%3B%0Amargin%2Dleft%3A%205px%3B%0A%7D%0A%23TOC%20ul%20%7B%0Apadding%2Dleft%3A%2040px%3B%0Amargin%2Dleft%3A%20%2D1%2E5em%3B%0Amargin%2Dtop%3A%205px%3B%0Amargin%2Dbottom%3A%205px%3B%0A%7D%0A%23TOC%20ul%20ul%20%7B%0Amargin%2Dleft%3A%20%2D2em%3B%0A%7D%0A%23TOC%20li%20%7B%0Aline%2Dheight%3A%2016px%3B%0A%7D%0Atable%20%7B%0Amargin%3A%201em%20auto%3B%0Aborder%2Dwidth%3A%201px%3B%0Aborder%2Dcolor%3A%20%23DDDDDD%3B%0Aborder%2Dstyle%3A%20outset%3B%0Aborder%2Dcollapse%3A%20collapse%3B%0A%7D%0Atable%20th%20%7B%0Aborder%2Dwidth%3A%202px%3B%0Apadding%3A%205px%3B%0Aborder%2Dstyle%3A%20inset%3B%0A%7D%0Atable%20td%20%7B%0Aborder%2Dwidth%3A%201px%3B%0Aborder%2Dstyle%3A%20inset%3B%0Aline%2Dheight%3A%2018px%3B%0Apadding%3A%205px%205px%3B%0A%7D%0Atable%2C%20table%20th%2C%20table%20td%20%7B%0Aborder%2Dleft%2Dstyle%3A%20none%3B%0Aborder%2Dright%2Dstyle%3A%20none%3B%0A%7D%0Atable%20thead%2C%20table%20tr%2Eeven%20%7B%0Abackground%2Dcolor%3A%20%23f7f7f7%3B%0A%7D%0Ap%20%7B%0Amargin%3A%200%2E5em%200%3B%0A%7D%0Ablockquote%20%7B%0Abackground%2Dcolor%3A%20%23f6f6f6%3B%0Apadding%3A%200%2E25em%200%2E75em%3B%0A%7D%0Ahr%20%7B%0Aborder%2Dstyle%3A%20solid%3B%0Aborder%3A%20none%3B%0Aborder%2Dtop%3A%201px%20solid%20%23777%3B%0Amargin%3A%2028px%200%3B%0A%7D%0Adl%20%7B%0Amargin%2Dleft%3A%200%3B%0A%7D%0Adl%20dd%20%7B%0Amargin%2Dbottom%3A%2013px%3B%0Amargin%2Dleft%3A%2013px%3B%0A%7D%0Adl%20dt%20%7B%0Afont%2Dweight%3A%20bold%3B%0A%7D%0Aul%20%7B%0Amargin%2Dtop%3A%200%3B%0A%7D%0Aul%20li%20%7B%0Alist%2Dstyle%3A%20circle%20outside%3B%0A%7D%0Aul%20ul%20%7B%0Amargin%2Dbottom%3A%200%3B%0A%7D%0Apre%2C%20code%20%7B%0Abackground%2Dcolor%3A%20%23f7f7f7%3B%0Aborder%2Dradius%3A%203px%3B%0Acolor%3A%20%23333%3B%0Awhite%2Dspace%3A%20pre%2Dwrap%3B%20%0A%7D%0Apre%20%7B%0Aborder%2Dradius%3A%203px%3B%0Amargin%3A%205px%200px%2010px%200px%3B%0Apadding%3A%2010px%3B%0A%7D%0Apre%3Anot%28%5Bclass%5D%29%20%7B%0Abackground%2Dcolor%3A%20%23f7f7f7%3B%0A%7D%0Acode%20%7B%0Afont%2Dfamily%3A%20Consolas%2C%20Monaco%2C%20%27Courier%20New%27%2C%20monospace%3B%0Afont%2Dsize%3A%2085%25%3B%0A%7D%0Ap%20%3E%20code%2C%20li%20%3E%20code%20%7B%0Apadding%3A%202px%200px%3B%0A%7D%0Adiv%2Efigure%20%7B%0Atext%2Dalign%3A%20center%3B%0A%7D%0Aimg%20%7B%0Abackground%2Dcolor%3A%20%23FFFFFF%3B%0Apadding%3A%202px%3B%0Aborder%3A%201px%20solid%20%23DDDDDD%3B%0Aborder%2Dradius%3A%203px%3B%0Aborder%3A%201px%20solid%20%23CCCCCC%3B%0Amargin%3A%200%205px%3B%0A%7D%0Ah1%20%7B%0Amargin%2Dtop%3A%200%3B%0Afont%2Dsize%3A%2035px%3B%0Aline%2Dheight%3A%2040px%3B%0A%7D%0Ah2%20%7B%0Aborder%2Dbottom%3A%204px%20solid%20%23f7f7f7%3B%0Apadding%2Dtop%3A%2010px%3B%0Apadding%2Dbottom%3A%202px%3B%0Afont%2Dsize%3A%20145%25%3B%0A%7D%0Ah3%20%7B%0Aborder%2Dbottom%3A%202px%20solid%20%23f7f7f7%3B%0Apadding%2Dtop%3A%2010px%3B%0Afont%2Dsize%3A%20120%25%3B%0A%7D%0Ah4%20%7B%0Aborder%2Dbottom%3A%201px%20solid%20%23f7f7f7%3B%0Amargin%2Dleft%3A%208px%3B%0Afont%2Dsize%3A%20105%25%3B%0A%7D%0Ah5%2C%20h6%20%7B%0Aborder%2Dbottom%3A%201px%20solid%20%23ccc%3B%0Afont%2Dsize%3A%20105%25%3B%0A%7D%0Aa%20%7B%0Acolor%3A%20%230033dd%3B%0Atext%2Ddecoration%3A%20none%3B%0A%7D%0Aa%3Ahover%20%7B%0Acolor%3A%20%236666ff%3B%20%7D%0Aa%3Avisited%20%7B%0Acolor%3A%20%23800080%3B%20%7D%0Aa%3Avisited%3Ahover%20%7B%0Acolor%3A%20%23BB00BB%3B%20%7D%0Aa%5Bhref%5E%3D%22http%3A%22%5D%20%7B%0Atext%2Ddecoration%3A%20underline%3B%20%7D%0Aa%5Bhref%5E%3D%22https%3A%22%5D%20%7B%0Atext%2Ddecoration%3A%20underline%3B%20%7D%0A%0Acode%20%3E%20span%2Ekw%20%7B%20color%3A%20%23555%3B%20font%2Dweight%3A%20bold%3B%20%7D%20%0Acode%20%3E%20span%2Edt%20%7B%20color%3A%20%23902000%3B%20%7D%20%0Acode%20%3E%20span%2Edv%20%7B%20color%3A%20%2340a070%3B%20%7D%20%0Acode%20%3E%20span%2Ebn%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Efl%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Ech%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Est%20%7B%20color%3A%20%23d14%3B%20%7D%20%0Acode%20%3E%20span%2Eco%20%7B%20color%3A%20%23888888%3B%20font%2Dstyle%3A%20italic%3B%20%7D%20%0Acode%20%3E%20span%2Eot%20%7B%20color%3A%20%23007020%3B%20%7D%20%0Acode%20%3E%20span%2Eal%20%7B%20color%3A%20%23ff0000%3B%20font%2Dweight%3A%20bold%3B%20%7D%20%0Acode%20%3E%20span%2Efu%20%7B%20color%3A%20%23900%3B%20font%2Dweight%3A%20bold%3B%20%7D%20%20code%20%3E%20span%2Eer%20%7B%20color%3A%20%23a61717%3B%20background%2Dcolor%3A%20%23e3d2d2%3B%20%7D%20%0A" rel="stylesheet" type="text/css" />
+
+</head>
+
+<body>
+
+
+
+
+<h1 class="title toc-ignore">Calculating SHA1 hashes with digest() and sha1()</h1>
+<h4 class="author"><em>Thierry Onkelinx and Dirk Eddelbuettel</em></h4>
+<h4 class="date"><em>2017-01-26</em></h4>
+
+
+
+<p>NB: This vignette is work-in-progress and not yet complete.</p>
+<div id="short-intro-on-hashes" class="section level2">
+<h2>Short intro on hashes</h2>
+<p>TBD</p>
+</div>
+<div id="difference-between-digest-and-sha1" class="section level2">
+<h2>Difference between <code>digest()</code> and <code>sha1()</code></h2>
+<p>R <a href="https://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f">FAQ 7.31</a> illustrates potential problems with floating point arithmetic. Mathematically the equality <span class="math inline">\(x = \sqrt{x}^2\)</span> should hold. But the precision of floating points numbers is finite. Hence some rounding is done, leading to numbers which are no longer identical.</p>
+<p>An illustration:</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># FAQ 7.31</span>
+a0 &lt;-<span class="st"> </span><span class="dv">2</span>
+b &lt;-<span class="st"> </span><span class="kw">sqrt</span>(a0)
+a1 &lt;-<span class="st"> </span>b ^<span class="st"> </span><span class="dv">2</span>
+<span class="kw">identical</span>(a0, a1)</code></pre></div>
+<pre><code>## [1] FALSE</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">a0 -<span class="st"> </span>a1</code></pre></div>
+<pre><code>## [1] -4.440892e-16</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r">a &lt;-<span class="st"> </span><span class="kw">c</span>(a0, a1)
+<span class="co"># hexadecimal representation</span>
+<span class="kw">sprintf</span>(<span class="st">&quot;%a&quot;</span>, a)</code></pre></div>
+<pre><code>## [1] &quot;0x1p+1&quot;               &quot;0x1.0000000000001p+1&quot;</code></pre>
+<p>Although the difference is small, any difference will result in different hash when using the <code>digest()</code> function. However, the<code>sha1()</code> function tackles this problem by using the hexadecimal representation of the numbers and truncates that representation to a certain number of digits prior to calculating the hash function.</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">library</span>(digest)
+<span class="co"># different hashes with digest</span>
+<span class="kw">sapply</span>(a, digest, <span class="dt">algo =</span> <span class="st">&quot;sha1&quot;</span>)</code></pre></div>
+<pre><code>## [1] &quot;315a5aa84aa6cfa4f3fb4b652a596770be0365e8&quot;
+## [2] &quot;5e3999bf79c230f7430e97d7f30070a7eff5ec92&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># same hash with sha1 with default digits (14)</span>
+<span class="kw">sapply</span>(a, sha1)</code></pre></div>
+<pre><code>## [1] &quot;8a938d8f5fb9b8ccb6893aa1068babcc517f32d4&quot;
+## [2] &quot;8a938d8f5fb9b8ccb6893aa1068babcc517f32d4&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># larger digits can lead to different hashes</span>
+<span class="kw">sapply</span>(a, sha1, <span class="dt">digits =</span> <span class="dv">15</span>)</code></pre></div>
+<pre><code>## [1] &quot;98eb1dc9fada00b945d3ef01c77049ee5a4b7b9c&quot;
+## [2] &quot;5a173e2445df1134908037f69ac005fbd8afee74&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># decreasing the number of digits gives a stronger truncation</span>
+<span class="co"># the hash will change when then truncation gives a different result</span>
+<span class="co"># case where truncating gives same hexadecimal value</span>
+<span class="kw">sapply</span>(a, sha1, <span class="dt">digits =</span> <span class="dv">13</span>)</code></pre></div>
+<pre><code>## [1] &quot;43b3b465c975af322c85473190a9214b79b79bf6&quot;
+## [2] &quot;43b3b465c975af322c85473190a9214b79b79bf6&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">sapply</span>(a, sha1, <span class="dt">digits =</span> <span class="dv">10</span>)</code></pre></div>
+<pre><code>## [1] &quot;6b537a9693c750ed535ca90527152f06e358aa3a&quot;
+## [2] &quot;6b537a9693c750ed535ca90527152f06e358aa3a&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># case where truncating gives different hexadecimal value</span>
+<span class="kw">c</span>(<span class="kw">sha1</span>(pi), <span class="kw">sha1</span>(pi, <span class="dt">digits =</span> <span class="dv">13</span>), <span class="kw">sha1</span>(pi, <span class="dt">digits =</span> <span class="dv">10</span>))</code></pre></div>
+<pre><code>## [1] &quot;169388cf1ce60dc4e9904a22bc934c5db33d975b&quot;
+## [2] &quot;20dc38536b6689d5f2d053f30efb09c44af78378&quot;
+## [3] &quot;3a727417bd1807af2f0148cf3de69abff32c23ec&quot;</code></pre>
+<p>The result of floating point arithematic on 32-bit and 64-bit can be slightly different. E.g. <code>print(pi ^ 11, 22)</code> returns <code>294204.01797389047</code> on 32-bit and <code>294204.01797389053</code> on 64-bit. Note that only the last 2 digits are different.</p>
+<table style="width:8%;">
+<colgroup>
+<col width="2%"></col>
+<col width="2%"></col>
+<col width="2%"></col>
+</colgroup>
+<thead>
+<tr class="header">
+<th align="left">command</th>
+<th align="left">32-bit</th>
+<th align="left">64-bit</th>
+</tr>
+</thead>
+<tbody>
+<tr class="odd">
+<td align="left"><code>print(pi ^ 11, 22)</code></td>
+<td align="left"><code>294204.01797389047</code></td>
+<td align="left"><code>294204.01797389053</code></td>
+</tr>
+<tr class="even">
+<td align="left"><code>sprintf(&quot;%a&quot;, pi ^ 11)</code></td>
+<td align="left"><code>&quot;0x1.1f4f01267bf5fp+18&quot;</code></td>
+<td align="left"><code>&quot;0x1.1f4f01267bf6p+18&quot;</code></td>
+</tr>
+<tr class="odd">
+<td align="left"><code>digest(pi ^ 11, algo = &quot;sha1&quot;)</code></td>
+<td align="left"><code>&quot;c5efc7f167df1bb402b27cf9b405d7cebfba339a&quot;</code></td>
+<td align="left"><code>&quot;b61f6fea5e2a7952692cefe8bba86a00af3de713&quot;</code></td>
+</tr>
+<tr class="even">
+<td align="left"><code>sha1(pi ^ 11, digits = 14)</code></td>
+<td align="left"><code>&quot;5c7740500b8f78ec2354ea6af58ea69634d9b7b1&quot;</code></td>
+<td align="left"><code>&quot;4f3e296b9922a7ddece2183b1478d0685609a359&quot;</code></td>
+</tr>
+<tr class="odd">
+<td align="left"><code>sha1(pi ^ 11, digits = 13)</code></td>
+<td align="left"><code>&quot;372289f87396b0877ccb4790cf40bcb5e658cad7&quot;</code></td>
+<td align="left"><code>&quot;372289f87396b0877ccb4790cf40bcb5e658cad7&quot;</code></td>
+</tr>
+<tr class="even">
+<td align="left"><code>sha1(pi ^ 11, digits = 10)</code></td>
+<td align="left"><code>&quot;c05965af43f9566bfb5622f335817f674abfc9e4&quot;</code></td>
+<td align="left"><code>&quot;c05965af43f9566bfb5622f335817f674abfc9e4&quot;</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+<div id="choosing-digest-or-sha1" class="section level2">
+<h2>Choosing <code>digest()</code> or <code>sha1()</code></h2>
+<p>TBD</p>
+</div>
+<div id="creating-a-sha1-method-for-other-classes" class="section level2">
+<h2>Creating a sha1 method for other classes</h2>
+<div id="how-to" class="section level3">
+<h3>How to</h3>
+<ol style="list-style-type: decimal">
+<li>Identify the relevant components for the hash.</li>
+<li>Determine the class of each relevant component and check if they are handled by <code>sha1()</code>.
+<ul>
+<li>Write a method for each component class not yet handled by <code>sha1</code>.</li>
+</ul></li>
+<li>Extract the relevant components.</li>
+<li>Combine the relevant components into a list. Not required in case of a single component.</li>
+<li>Apply <code>sha1()</code> on the (list of) relevant component(s).</li>
+<li>Turn this into a function with name sha1.<em>classname</em>.</li>
+<li>sha1.<em>classname</em> needs exactly the same arguments as <code>sha1()</code></li>
+<li>Choose sensible defaults for the arguments
+<ul>
+<li><code>zapsmall = 7</code> is recommended.</li>
+<li><code>digits = 14</code> is recommended in case all numerics are data.</li>
+<li><code>digits = 4</code> is recommended in case some numerics stem from floating point arithmetic.</li>
+</ul></li>
+</ol>
+</div>
+<div id="summary.lm" class="section level3">
+<h3>summary.lm</h3>
+<p>Let’s illustrate this using the summary of a simple linear regression. Suppose that we want a hash that takes into account the coefficients, their standard error and sigma.</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># taken from the help file of lm.influence</span>
+lm_SR &lt;-<span class="st"> </span><span class="kw">lm</span>(sr ~<span class="st"> </span>pop15 +<span class="st"> </span>pop75 +<span class="st"> </span>dpi +<span class="st"> </span>ddpi, <span class="dt">data =</span> LifeCycleSavings)
+lm_sum &lt;-<span class="st"> </span><span class="kw">summary</span>(lm_SR)
+<span class="kw">class</span>(lm_sum)</code></pre></div>
+<pre><code>## [1] &quot;summary.lm&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># str() gives the structure of the lm object</span>
+<span class="kw">str</span>(lm_sum)</code></pre></div>
+<pre><code>## List of 11
+##  $ call         : language lm(formula = sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)
+##  $ terms        :Classes 'terms', 'formula'  language sr ~ pop15 + pop75 + dpi + ddpi
+##   .. ..- attr(*, &quot;variables&quot;)= language list(sr, pop15, pop75, dpi, ddpi)
+##   .. ..- attr(*, &quot;factors&quot;)= int [1:5, 1:4] 0 1 0 0 0 0 0 1 0 0 ...
+##   .. .. ..- attr(*, &quot;dimnames&quot;)=List of 2
+##   .. .. .. ..$ : chr [1:5] &quot;sr&quot; &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; ...
+##   .. .. .. ..$ : chr [1:4] &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; &quot;ddpi&quot;
+##   .. ..- attr(*, &quot;term.labels&quot;)= chr [1:4] &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; &quot;ddpi&quot;
+##   .. ..- attr(*, &quot;order&quot;)= int [1:4] 1 1 1 1
+##   .. ..- attr(*, &quot;intercept&quot;)= int 1
+##   .. ..- attr(*, &quot;response&quot;)= int 1
+##   .. ..- attr(*, &quot;.Environment&quot;)=&lt;environment: R_GlobalEnv&gt; 
+##   .. ..- attr(*, &quot;predvars&quot;)= language list(sr, pop15, pop75, dpi, ddpi)
+##   .. ..- attr(*, &quot;dataClasses&quot;)= Named chr [1:5] &quot;numeric&quot; &quot;numeric&quot; &quot;numeric&quot; &quot;numeric&quot; ...
+##   .. .. ..- attr(*, &quot;names&quot;)= chr [1:5] &quot;sr&quot; &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; ...
+##  $ residuals    : Named num [1:50] 0.864 0.616 2.219 -0.698 3.553 ...
+##   ..- attr(*, &quot;names&quot;)= chr [1:50] &quot;Australia&quot; &quot;Austria&quot; &quot;Belgium&quot; &quot;Bolivia&quot; ...
+##  $ coefficients : num [1:5, 1:4] 28.566087 -0.461193 -1.691498 -0.000337 0.409695 ...
+##   ..- attr(*, &quot;dimnames&quot;)=List of 2
+##   .. ..$ : chr [1:5] &quot;(Intercept)&quot; &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; ...
+##   .. ..$ : chr [1:4] &quot;Estimate&quot; &quot;Std. Error&quot; &quot;t value&quot; &quot;Pr(&gt;|t|)&quot;
+##  $ aliased      : Named logi [1:5] FALSE FALSE FALSE FALSE FALSE
+##   ..- attr(*, &quot;names&quot;)= chr [1:5] &quot;(Intercept)&quot; &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; ...
+##  $ sigma        : num 3.8
+##  $ df           : int [1:3] 5 45 5
+##  $ r.squared    : num 0.338
+##  $ adj.r.squared: num 0.28
+##  $ fstatistic   : Named num [1:3] 5.76 4 45
+##   ..- attr(*, &quot;names&quot;)= chr [1:3] &quot;value&quot; &quot;numdf&quot; &quot;dendf&quot;
+##  $ cov.unscaled : num [1:5, 1:5] 3.74 -7.24e-02 -4.46e-01 -7.86e-05 -1.88e-02 ...
+##   ..- attr(*, &quot;dimnames&quot;)=List of 2
+##   .. ..$ : chr [1:5] &quot;(Intercept)&quot; &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; ...
+##   .. ..$ : chr [1:5] &quot;(Intercept)&quot; &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; ...
+##  - attr(*, &quot;class&quot;)= chr &quot;summary.lm&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># extract the coefficients and their standard error</span>
+coef_sum &lt;-<span class="st"> </span><span class="kw">coef</span>(lm_sum)[, <span class="kw">c</span>(<span class="st">&quot;Estimate&quot;</span>, <span class="st">&quot;Std. Error&quot;</span>)]
+<span class="co"># extract sigma</span>
+sigma &lt;-<span class="st"> </span>lm_sum$sigma
+<span class="co"># check the class of each component</span>
+<span class="kw">class</span>(coef_sum)</code></pre></div>
+<pre><code>## [1] &quot;matrix&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">class</span>(sigma)</code></pre></div>
+<pre><code>## [1] &quot;numeric&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># sha1() has methods for both matrix and numeric</span>
+<span class="co"># because the values originate from floating point arithmetic it is better to use a low number of digits</span>
+<span class="kw">sha1</span>(coef_sum, <span class="dt">digits =</span> <span class="dv">4</span>)</code></pre></div>
+<pre><code>## [1] &quot;19de60f22fbb5f31e2f39d043d78126b692f3838&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">sha1</span>(sigma, <span class="dt">digits =</span> <span class="dv">4</span>)</code></pre></div>
+<pre><code>## [1] &quot;cbc83d1791ef1eeadd824ea9a038891b5889056b&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># we want a single hash</span>
+<span class="co"># combining the components in a list is a solution that works</span>
+<span class="kw">sha1</span>(<span class="kw">list</span>(coef_sum, sigma), <span class="dt">digits =</span> <span class="dv">4</span>)</code></pre></div>
+<pre><code>## [1] &quot;fd6b6805780dcf88e11fe05ba4693170e2dfb170&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># now turn everything into an S3 method</span>
+<span class="co">#   - a function with name &quot;sha1.classname&quot;</span>
+<span class="co">#   - must have the same arguments as sha1()</span>
+sha1.summary.lm &lt;-<span class="st"> </span>function(x, <span class="dt">digits =</span> <span class="dv">4</span>, <span class="dt">zapsmall =</span> <span class="dv">7</span>){
+    coef_sum &lt;-<span class="st"> </span><span class="kw">coef</span>(x)[, <span class="kw">c</span>(<span class="st">&quot;Estimate&quot;</span>, <span class="st">&quot;Std. Error&quot;</span>)]
+    sigma &lt;-<span class="st"> </span>x$sigma
+    combined &lt;-<span class="st"> </span><span class="kw">list</span>(coef_sum, sigma)
+    <span class="kw">sha1</span>(combined, <span class="dt">digits =</span> digits, <span class="dt">zapsmall =</span> zapsmall)
+}
+<span class="kw">sha1</span>(lm_sum)</code></pre></div>
+<pre><code>## [1] &quot;fd6b6805780dcf88e11fe05ba4693170e2dfb170&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># try an altered dataset</span>
+LCS2 &lt;-<span class="st"> </span>LifeCycleSavings[<span class="kw">rownames</span>(LifeCycleSavings) !=<span class="st"> &quot;Zambia&quot;</span>, ]
+lm_SR2 &lt;-<span class="st"> </span><span class="kw">lm</span>(sr ~<span class="st"> </span>pop15 +<span class="st"> </span>pop75 +<span class="st"> </span>dpi +<span class="st"> </span>ddpi, <span class="dt">data =</span> LCS2)
+<span class="kw">sha1</span>(<span class="kw">summary</span>(lm_SR2))</code></pre></div>
+<pre><code>## [1] &quot;0643afd880f6f9c4b2aa935bec91724ba103198e&quot;</code></pre>
+</div>
+<div id="lm" class="section level3">
+<h3>lm</h3>
+<p>Let’s illustrate this using the summary of a simple linear regression. Suppose that we want a hash that takes into account the coefficients, their standard error and sigma.</p>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">class</span>(lm_SR)</code></pre></div>
+<pre><code>## [1] &quot;lm&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># str() gives the structure of the lm object</span>
+<span class="kw">str</span>(lm_SR)</code></pre></div>
+<pre><code>## List of 12
+##  $ coefficients : Named num [1:5] 28.566087 -0.461193 -1.691498 -0.000337 0.409695
+##   ..- attr(*, &quot;names&quot;)= chr [1:5] &quot;(Intercept)&quot; &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; ...
+##  $ residuals    : Named num [1:50] 0.864 0.616 2.219 -0.698 3.553 ...
+##   ..- attr(*, &quot;names&quot;)= chr [1:50] &quot;Australia&quot; &quot;Austria&quot; &quot;Belgium&quot; &quot;Bolivia&quot; ...
+##  $ effects      : Named num [1:50] -68.38 -14.29 7.3 -3.52 -7.94 ...
+##   ..- attr(*, &quot;names&quot;)= chr [1:50] &quot;(Intercept)&quot; &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; ...
+##  $ rank         : int 5
+##  $ fitted.values: Named num [1:50] 10.57 11.45 10.95 6.45 9.33 ...
+##   ..- attr(*, &quot;names&quot;)= chr [1:50] &quot;Australia&quot; &quot;Austria&quot; &quot;Belgium&quot; &quot;Bolivia&quot; ...
+##  $ assign       : int [1:5] 0 1 2 3 4
+##  $ qr           :List of 5
+##   ..$ qr   : num [1:50, 1:5] -7.071 0.141 0.141 0.141 0.141 ...
+##   .. ..- attr(*, &quot;dimnames&quot;)=List of 2
+##   .. .. ..$ : chr [1:50] &quot;Australia&quot; &quot;Austria&quot; &quot;Belgium&quot; &quot;Bolivia&quot; ...
+##   .. .. ..$ : chr [1:5] &quot;(Intercept)&quot; &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; ...
+##   .. ..- attr(*, &quot;assign&quot;)= int [1:5] 0 1 2 3 4
+##   ..$ qraux: num [1:5] 1.14 1.17 1.16 1.15 1.05
+##   ..$ pivot: int [1:5] 1 2 3 4 5
+##   ..$ tol  : num 1e-07
+##   ..$ rank : int 5
+##   ..- attr(*, &quot;class&quot;)= chr &quot;qr&quot;
+##  $ df.residual  : int 45
+##  $ xlevels      : Named list()
+##  $ call         : language lm(formula = sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)
+##  $ terms        :Classes 'terms', 'formula'  language sr ~ pop15 + pop75 + dpi + ddpi
+##   .. ..- attr(*, &quot;variables&quot;)= language list(sr, pop15, pop75, dpi, ddpi)
+##   .. ..- attr(*, &quot;factors&quot;)= int [1:5, 1:4] 0 1 0 0 0 0 0 1 0 0 ...
+##   .. .. ..- attr(*, &quot;dimnames&quot;)=List of 2
+##   .. .. .. ..$ : chr [1:5] &quot;sr&quot; &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; ...
+##   .. .. .. ..$ : chr [1:4] &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; &quot;ddpi&quot;
+##   .. ..- attr(*, &quot;term.labels&quot;)= chr [1:4] &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; &quot;ddpi&quot;
+##   .. ..- attr(*, &quot;order&quot;)= int [1:4] 1 1 1 1
+##   .. ..- attr(*, &quot;intercept&quot;)= int 1
+##   .. ..- attr(*, &quot;response&quot;)= int 1
+##   .. ..- attr(*, &quot;.Environment&quot;)=&lt;environment: R_GlobalEnv&gt; 
+##   .. ..- attr(*, &quot;predvars&quot;)= language list(sr, pop15, pop75, dpi, ddpi)
+##   .. ..- attr(*, &quot;dataClasses&quot;)= Named chr [1:5] &quot;numeric&quot; &quot;numeric&quot; &quot;numeric&quot; &quot;numeric&quot; ...
+##   .. .. ..- attr(*, &quot;names&quot;)= chr [1:5] &quot;sr&quot; &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; ...
+##  $ model        :'data.frame':   50 obs. of  5 variables:
+##   ..$ sr   : num [1:50] 11.43 12.07 13.17 5.75 12.88 ...
+##   ..$ pop15: num [1:50] 29.4 23.3 23.8 41.9 42.2 ...
+##   ..$ pop75: num [1:50] 2.87 4.41 4.43 1.67 0.83 2.85 1.34 0.67 1.06 1.14 ...
+##   ..$ dpi  : num [1:50] 2330 1508 2108 189 728 ...
+##   ..$ ddpi : num [1:50] 2.87 3.93 3.82 0.22 4.56 2.43 2.67 6.51 3.08 2.8 ...
+##   ..- attr(*, &quot;terms&quot;)=Classes 'terms', 'formula'  language sr ~ pop15 + pop75 + dpi + ddpi
+##   .. .. ..- attr(*, &quot;variables&quot;)= language list(sr, pop15, pop75, dpi, ddpi)
+##   .. .. ..- attr(*, &quot;factors&quot;)= int [1:5, 1:4] 0 1 0 0 0 0 0 1 0 0 ...
+##   .. .. .. ..- attr(*, &quot;dimnames&quot;)=List of 2
+##   .. .. .. .. ..$ : chr [1:5] &quot;sr&quot; &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; ...
+##   .. .. .. .. ..$ : chr [1:4] &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; &quot;ddpi&quot;
+##   .. .. ..- attr(*, &quot;term.labels&quot;)= chr [1:4] &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; &quot;ddpi&quot;
+##   .. .. ..- attr(*, &quot;order&quot;)= int [1:4] 1 1 1 1
+##   .. .. ..- attr(*, &quot;intercept&quot;)= int 1
+##   .. .. ..- attr(*, &quot;response&quot;)= int 1
+##   .. .. ..- attr(*, &quot;.Environment&quot;)=&lt;environment: R_GlobalEnv&gt; 
+##   .. .. ..- attr(*, &quot;predvars&quot;)= language list(sr, pop15, pop75, dpi, ddpi)
+##   .. .. ..- attr(*, &quot;dataClasses&quot;)= Named chr [1:5] &quot;numeric&quot; &quot;numeric&quot; &quot;numeric&quot; &quot;numeric&quot; ...
+##   .. .. .. ..- attr(*, &quot;names&quot;)= chr [1:5] &quot;sr&quot; &quot;pop15&quot; &quot;pop75&quot; &quot;dpi&quot; ...
+##  - attr(*, &quot;class&quot;)= chr &quot;lm&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># extract the model and the terms</span>
+lm_model &lt;-<span class="st"> </span>lm_SR$model
+lm_terms &lt;-<span class="st"> </span>lm_SR$terms
+<span class="co"># check their class</span>
+<span class="kw">class</span>(lm_model) <span class="co"># handled by sha1()</span></code></pre></div>
+<pre><code>## [1] &quot;data.frame&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">class</span>(lm_terms) <span class="co"># not handled by sha1()</span></code></pre></div>
+<pre><code>## [1] &quot;terms&quot;   &quot;formula&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># define a method for formula</span>
+sha1.formula &lt;-<span class="st"> </span>function(x, <span class="dt">digits =</span> <span class="dv">14</span>, <span class="dt">zapsmall =</span> <span class="dv">7</span>){
+    <span class="kw">sha1</span>(<span class="kw">as.character</span>(x), <span class="dt">digits =</span> digits, <span class="dt">zapsmall =</span> zapsmall)
+}
+<span class="kw">sha1</span>(lm_terms)</code></pre></div>
+<pre><code>## [1] &quot;2737d209720aa7d1c0555050ad06ebe89f3850cd&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">sha1</span>(lm_model)</code></pre></div>
+<pre><code>## [1] &quot;b1b32bb6d983e1c515706c33ffef6120d811fe52&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="co"># define a method for lm</span>
+sha1.lm &lt;-<span class="st"> </span>function(x, <span class="dt">digits =</span> <span class="dv">14</span>, <span class="dt">zapsmall =</span> <span class="dv">7</span>){
+    lm_model &lt;-<span class="st"> </span>x$model
+    lm_terms &lt;-<span class="st"> </span>x$terms
+    combined &lt;-<span class="st"> </span><span class="kw">list</span>(lm_model, lm_terms)
+    <span class="kw">sha1</span>(combined, <span class="dt">digits =</span> digits, <span class="dt">zapsmall =</span> zapsmall)
+}
+<span class="kw">sha1</span>(lm_SR)</code></pre></div>
+<pre><code>## [1] &quot;2b03ad0002dc6c3676555b60f3f59781e1f42eb0&quot;</code></pre>
+<div class="sourceCode"><pre class="sourceCode r"><code class="sourceCode r"><span class="kw">sha1</span>(lm_SR2)</code></pre></div>
+<pre><code>## [1] &quot;d2bbcc2bfc737e51666d4bf86841f6b25149e224&quot;</code></pre>
+</div>
+</div>
+<div id="using-hashes-to-track-changes-in-analysis" class="section level2">
+<h2>Using hashes to track changes in analysis</h2>
+<p>Use case</p>
+<ul>
+<li>automated analysis</li>
+<li>update frequency of the data might be lower than the frequency of automated analysis</li>
+<li>similar analyses on many datasets (e.g. many species in ecology)</li>
+<li>analyses that require a lot of computing time
+<ul>
+<li>not rerunning an analysis because nothing has changed saves enough resources to compensate the overhead of tracking changes</li>
+</ul></li>
+<li>Bundle all relevant information on an analysis in a class
+<ul>
+<li>data</li>
+<li>method</li>
+<li>formula</li>
+<li>other metadata</li>
+<li>resulting model</li>
+</ul></li>
+<li><p>calculate <code>sha1()</code></p>
+<dl>
+<dt>file fingerprint</dt>
+<dd><code>sha1()</code> on the stable parts
+</dd>
+<dt>status fingerprint</dt>
+<dd><code>sha1()</code> on the parts that result for the model
+</dd>
+</dl></li>
+</ul>
+<ol style="list-style-type: decimal">
+<li>Prepare analysis objects</li>
+<li>Store each analysis object in a rda file which uses the file fingerprint as filename
+<ul>
+<li>File will already exist when no change in analysis</li>
+<li>Don’t overwrite existing files</li>
+</ul></li>
+<li>Loop over all rda files
+<ul>
+<li>Do nothing if the analysis was run</li>
+<li>Otherwise run the analysis and update the status and status fingerprint</li>
+</ul></li>
+</ol>
+</div>
+
+
+
+<!-- dynamically load mathjax for compatibility with self-contained -->
+<script>
+  (function () {
+    var script = document.createElement("script");
+    script.type = "text/javascript";
+    script.src  = "https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
+    document.getElementsByTagName("head")[0].appendChild(script);
+  })();
+</script>
+
+</body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/doc/sha1.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/Meta/vignette.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/Meta/vignette.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/INDEX	(revision 2476)
@@ -0,0 +1,7 @@
+AES                     Create AES block cipher object
+digest                  Create hash function digests for arbitrary R
+                        objects
+hmac                    compute a hash-based message authentication
+                        code
+makeRaw                 Create a raw object
+sha1                    Calculate a SHA1 hash of an object
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/help/digest.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/help/digest.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/help/digest.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/help/digest.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/help/AnIndex	(revision 2476)
@@ -0,0 +1,28 @@
+AES	AES
+digest	digest
+hmac	hmac
+makeRaw	makeRaw
+makeRaw.character	makeRaw
+makeRaw.default	makeRaw
+makeRaw.digest	makeRaw
+makeRaw.raw	makeRaw
+sha1	sha1
+sha1.anova	sha1
+sha1.array	sha1
+sha1.call	sha1
+sha1.character	sha1
+sha1.complex	sha1
+sha1.data.frame	sha1
+sha1.Date	sha1
+sha1.factor	sha1
+sha1.function	sha1
+sha1.integer	sha1
+sha1.list	sha1
+sha1.logical	sha1
+sha1.matrix	sha1
+sha1.name	sha1
+sha1.NULL	sha1
+sha1.numeric	sha1
+sha1.pairlist	sha1
+sha1.POSIXct	sha1
+sha1.POSIXlt	sha1
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/libs/digest.so.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/libs/digest.so.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/libs/digest.so.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.digest.so</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleShortVersionString</key>
+		<string>1.0</string>
+		<key>CFBundleVersion</key>
+		<string>1</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/libs/digest.so.dSYM/Contents/Resources/DWARF/digest.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/libs/digest.so.dSYM/Contents/Resources/DWARF/digest.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/libs/digest.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/libs/digest.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/digest/NAMESPACE	(revision 2476)
@@ -0,0 +1,37 @@
+## package has a dynamic library
+useDynLib(digest, digest_impl=digest, AESinit, AESencryptECB, AESdecryptECB)
+
+## and exported functions
+export(AES,
+       digest,
+       sha1,
+       hmac,
+       makeRaw)
+
+S3method(print, AES)
+
+S3method(sha1, anova)
+S3method(sha1, array)
+S3method(sha1, call)
+S3method(sha1, character)
+S3method(sha1, complex)
+S3method(sha1, data.frame)
+S3method(sha1, Date)
+S3method(sha1, default)
+S3method(sha1, integer)
+S3method(sha1, factor)
+S3method(sha1, "function")
+S3method(sha1, logical)
+S3method(sha1, list)
+S3method(sha1, matrix)
+S3method(sha1, name)
+S3method(sha1, NULL)
+S3method(sha1, numeric)
+S3method(sha1, pairlist)
+S3method(sha1, POSIXct)
+S3method(sha1, POSIXlt)
+
+S3method(makeRaw, default)
+S3method(makeRaw, digest)
+S3method(makeRaw, character)
+S3method(makeRaw, raw)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/NAMESPACE	(revision 2476)
@@ -0,0 +1,17 @@
+export(mle) # exporting methods implicitly exports the generics
+
+importFrom("grDevices", dev.flush, dev.hold)
+importFrom("graphics", abline, lines, par, plot)
+importFrom("methods", new, show, slotNames)
+importFrom("stats", approx, optim, pchisq, predict, qchisq, qnorm, spline)
+## For these, we define methods or (AIC, BIC, nobs) an implicit generic:
+importFrom("stats",
+	   AIC, BIC, coef, confint, logLik,
+	   na.omit, nobs, profile, update, vcov)
+
+## S4
+exportClasses(mle, profile.mle, summary.mle)
+## All methods for imported generics:
+exportMethods(coef, confint, logLik, nobs, plot, profile, summary, show, update, vcov)
+## implicit generics do not have any methods here
+export(AIC, BIC)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/R/stats4.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/R/stats4.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/R/stats4.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/R/stats4.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/R/stats4
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/R/stats4	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/R/stats4	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/tests/confint.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/tests/confint.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/tests/confint.R	(revision 2476)
@@ -0,0 +1,23 @@
+## PR#14646
+
+library(stats4)
+minusLogL1 <- function(mu, logsigma2)
+    N*log(2*pi*exp(logsigma2))/2 + N*(var(x)+(mean(x)-mu)^2)/(2*exp(logsigma2))
+
+minusLogL2 <- function(mu) {
+    logsigma2 <- 0;
+    N*log(2*pi*exp(logsigma2))/2 + N*(var(x)+(mean(x)-mu)^2)/(2*exp(logsigma2))
+}
+
+N <- 100
+set.seed(123)
+x <- rnorm(N, 0, 1)
+
+fit <- mle(minusLogL1, start = list(mu=0, logsigma2=0))
+confint(fit)
+
+fit2 <- mle(minusLogL1, start = list(mu=0), fixed = list(logsigma2=0))
+confint(fit2) # failed
+
+fit3 <- mle(minusLogL2, start = list(mu=0))
+confint(fit3) # same
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/DESCRIPTION	(revision 2476)
@@ -0,0 +1,10 @@
+Package: stats4
+Title: Statistical Functions using S4 Classes
+Version: 3.3.2
+Priority: base
+Author: R Core Team and contributors worldwide
+Description: Statistical Functions using S4 classes.
+Maintainer: R Core Team <R-core@r-project.org>
+Imports: graphics, methods, stats
+License: Part of R 3.3.2
+Built: R 3.3.2; ; 2016-10-31 14:33:26 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/html/00Index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/html/00Index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/html/00Index.html	(revision 2476)
@@ -0,0 +1,74 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head><title>R: Statistical Functions using S4 Classes</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+<h1> Statistical Functions using S4 Classes
+<img class="toplogo" src="../../../doc/html/Rlogo.svg" alt="[R logo]" />
+</h1>
+<hr/>
+<div style="text-align: center;">
+<a href="../../../doc/html/packages.html"><img class="arrow" src="../../../doc/html/left.jpg" alt="[Up]" /></a>
+<a href="../../../doc/html/index.html"><img class="arrow" src="../../../doc/html/up.jpg" alt="[Top]" /></a>
+</div><h2>Documentation for package &lsquo;stats4&rsquo; version 3.3.2</h2>
+
+<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+</ul>
+
+<h2>Help Pages</h2>
+
+
+<table width="100%">
+<tr><td style="width: 25%;"><a href="stats4-package.html">stats4-package</a></td>
+<td>Statistical Functions using S4 Classes</td></tr>
+<tr><td style="width: 25%;"><a href="coef-methods.html">coef-method</a></td>
+<td>Methods for Function 'coef' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="coef-methods.html">coef-methods</a></td>
+<td>Methods for Function 'coef' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="confint-methods.html">confint-method</a></td>
+<td>Methods for Function 'confint' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="confint-methods.html">confint-methods</a></td>
+<td>Methods for Function 'confint' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="logLik-methods.html">logLik-method</a></td>
+<td>Methods for Function 'logLik' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="logLik-methods.html">logLik-methods</a></td>
+<td>Methods for Function 'logLik' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="mle.html">mle</a></td>
+<td>Maximum Likelihood Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="mle-class.html">mle-class</a></td>
+<td>Class '"mle"' for Results of Maximum Likelihood Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="mle-class.html">nobs-method</a></td>
+<td>Class '"mle"' for Results of Maximum Likelihood Estimation</td></tr>
+<tr><td style="width: 25%;"><a href="plot-methods.html">plot-method</a></td>
+<td>Methods for Function 'plot' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="plot-methods.html">plot-methods</a></td>
+<td>Methods for Function 'plot' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="profile-methods.html">profile-method</a></td>
+<td>Methods for Function 'profile' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="profile-methods.html">profile-methods</a></td>
+<td>Methods for Function 'profile' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="profile.mle-class.html">profile.mle-class</a></td>
+<td>Class '"profile.mle"'; Profiling information for '"mle"' object</td></tr>
+<tr><td style="width: 25%;"><a href="show-methods.html">show-method</a></td>
+<td>Methods for Function 'show' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="show-methods.html">show-methods</a></td>
+<td>Methods for Function 'show' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="stats4-package.html">stats4</a></td>
+<td>Statistical Functions using S4 Classes</td></tr>
+<tr><td style="width: 25%;"><a href="summary-methods.html">summary-method</a></td>
+<td>Methods for Function 'summary' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="summary-methods.html">summary-methods</a></td>
+<td>Methods for Function 'summary' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="summary.mle-class.html">summary.mle-class</a></td>
+<td>Class '"summary.mle"', Summary of '"mle"' Objects</td></tr>
+<tr><td style="width: 25%;"><a href="update-methods.html">update-method</a></td>
+<td>Methods for Function 'update' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="update-methods.html">update-methods</a></td>
+<td>Methods for Function 'update' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="vcov-methods.html">vcov-method</a></td>
+<td>Methods for Function 'vcov' in Package 'stats4'</td></tr>
+<tr><td style="width: 25%;"><a href="vcov-methods.html">vcov-methods</a></td>
+<td>Methods for Function 'vcov' in Package 'stats4'</td></tr>
+</table>
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/html/00Index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/INDEX	(revision 2476)
@@ -0,0 +1,22 @@
+coef-methods            Methods for Function 'coef' in Package 'stats4'
+confint-methods         Methods for Function 'confint' in Package
+                        'stats4'
+logLik-methods          Methods for Function 'logLik' in Package
+                        'stats4'
+mle                     Maximum Likelihood Estimation
+mle-class               Class '"mle"' for Results of Maximum Likelihood
+                        Estimation
+plot-methods            Methods for Function 'plot' in Package 'stats4'
+profile-methods         Methods for Function 'profile' in Package
+                        'stats4'
+profile.mle-class       Class '"profile.mle"'; Profiling information
+                        for '"mle"' object
+show-methods            Methods for Function 'show' in Package 'stats4'
+stats4-package          Statistical Functions using S4 Classes
+summary-methods         Methods for Function 'summary' in Package
+                        'stats4'
+summary.mle-class       Class '"summary.mle"', Summary of '"mle"'
+                        Objects
+update-methods          Methods for Function 'update' in Package
+                        'stats4'
+vcov-methods            Methods for Function 'vcov' in Package 'stats4'
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/help/stats4.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/help/stats4.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/help/AnIndex	(revision 2476)
@@ -0,0 +1,36 @@
+stats4-package	stats4-package
+coef,ANY-method	coef-methods
+coef,mle-method	coef-methods
+coef,summary.mle-method	coef-methods
+coef-methods	coef-methods
+confint,ANY-method	confint-methods
+confint,mle-method	confint-methods
+confint,profile.mle-method	confint-methods
+confint-methods	confint-methods
+logLik,ANY-method	logLik-methods
+logLik,mle-method	logLik-methods
+logLik-methods	logLik-methods
+mle	mle
+mle-class	mle-class
+nobs,mle-method	mle-class
+plot,ANY,ANY-method	plot-methods
+plot,profile.mle,missing-method	plot-methods
+plot-methods	plot-methods
+profile,ANY-method	profile-methods
+profile,mle-method	profile-methods
+profile-methods	profile-methods
+profile.mle-class	profile.mle-class
+show,mle-method	show-methods
+show,summary.mle-method	show-methods
+show-methods	show-methods
+stats4	stats4-package
+summary,ANY-method	summary-methods
+summary,mle-method	summary-methods
+summary-methods	summary-methods
+summary.mle-class	summary.mle-class
+update,ANY-method	update-methods
+update,mle-method	update-methods
+update-methods	update-methods
+vcov,ANY-method	vcov-methods
+vcov,mle-method	vcov-methods
+vcov-methods	vcov-methods
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/help/stats4.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/stats4/help/stats4.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/CITATION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/CITATION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/CITATION	(revision 2476)
@@ -0,0 +1,17 @@
+citHeader("To cite the lattice package in publications use:")
+
+citEntry(entry="Book",
+         title = "Lattice: Multivariate Data Visualization with R",
+         author = personList(as.person("Deepayan Sarkar")),
+         publisher = "Springer",
+	 ## edition = "First",
+         address      = "New York",
+         year         = 2008,
+         note         = "ISBN 978-0-387-75968-5",
+         url          = "http://lmdvr.r-forge.r-project.org",
+         
+         textVersion = 
+         paste("Sarkar, Deepayan (2008)", 
+               "Lattice: Multivariate Data Visualization with R.",
+               "Springer, New York. ISBN 978-0-387-75968-5"))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/NAMESPACE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/NAMESPACE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/NAMESPACE	(revision 2476)
@@ -0,0 +1,309 @@
+
+useDynLib(lattice, .registration = TRUE)
+
+import(grid)
+
+## importFrom(methods, hasArg) # replicated in hasGroupNumber()
+
+importFrom(grDevices,
+
+           dev.hold, dev.flush, dev.capabilities,
+           dev.list, cm.colors, gray, col2rgb, rgb, adjustcolor,
+           heat.colors, grey, hsv, xy.coords, axisTicks,
+           boxplot.stats, contourLines, colorRampPalette, as.raster)
+
+importFrom(graphics, par, plot, co.intervals, hist)
+
+importFrom(utils, head, tail, modifyList)
+
+
+importFrom(stats,
+
+           as.formula, density, fitted.values, loess.smooth, median,
+           ppoints, qnorm, residuals, update, var, coef, quantile, lm,
+           dnorm, qunif, uniroot, smooth.spline, predict)
+
+
+export(
+
+       ## high level generics:
+
+       histogram,
+       densityplot,
+       qqmath,
+       qq,
+       bwplot,
+       dotplot,
+       barchart,
+       stripplot,
+       xyplot, xyplot.ts, # needed by zoo
+       contourplot,
+       levelplot,
+       cloud,
+       wireframe,
+       splom,
+       parallel, # deprecated
+       parallelplot,
+       tmd,
+
+       rfs,
+       oneway,
+
+       ## default panel functions
+
+       panel.histogram,
+       panel.densityplot,
+       panel.qqmath,
+       panel.qq,
+       panel.bwplot, 
+       panel.dotplot,
+       panel.barchart,
+       panel.stripplot,
+       panel.xyplot,
+       panel.contourplot,
+       panel.levelplot,   panel.levelplot.raster,
+       panel.cloud,       panel.3dscatter, 
+       panel.wireframe,   panel.3dwire,
+       panel.pairs,
+       panel.splom,       diag.panel.splom,
+       panel.parallel,
+       panel.tmd.default, panel.tmd.qqmath,
+       
+       panel.error,
+
+       ## Components for use in custom panel functions:
+
+       ## superposition (usually unnecessary)
+
+       panel.superpose,
+       panel.superpose.2,
+       panel.superpose.plain,
+       
+       ## data-driven (usually summary of some sort)
+
+       panel.smoothScatter,
+       panel.violin,
+       panel.rug,
+       panel.average,
+       panel.linejoin,
+       panel.lmline,
+       panel.loess,
+       panel.spline,
+       panel.qqmathline,
+
+       ## decorative / adds reference
+
+       panel.abline,
+       panel.refline,
+       panel.curve,
+       panel.fill,
+       panel.grid,
+       panel.mathdensity,
+       panel.axis,
+
+       ## access relevant informations (works in strip/axis as well)
+
+       current.row,
+       current.column,
+       panel.number,
+       packet.number,
+       which.packet,
+       trellis.currentLayout,
+
+       ## replacements for low level standard graphics functions
+
+       lplot.xy,
+       llines,    panel.lines,
+       lpoints,   panel.points,
+       lsegments, panel.segments,
+       ltext,     panel.arrows,
+       lrect,     panel.text,
+       larrows,   panel.rect,
+       lpolygon,  panel.polygon,
+
+
+       ## useful prepanel functions
+
+       prepanel.tmd.default, prepanel.tmd.qqmath,
+       prepanel.lmline,
+       prepanel.loess,
+       prepanel.spline,
+       prepanel.qqmathline,
+
+
+       ## default prepanel functions
+
+       prepanel.default.bwplot,
+       prepanel.default.histogram,
+       prepanel.default.qq,
+       prepanel.default.xyplot,
+       prepanel.default.cloud,
+       prepanel.default.levelplot,
+       prepanel.default.qqmath,
+       prepanel.default.densityplot,
+       prepanel.default.parallel,
+       prepanel.default.splom,
+
+       ## shingles 
+
+       shingle,
+       is.shingle,
+       as.shingle, 
+       as.factorOrShingle,
+       equal.count,
+
+### construct.scales,
+
+
+       draw.colorkey,
+       draw.key,
+       simpleKey, 
+       latticeParseFormula,
+
+       ## 3D utilities
+
+       ltransform3dMatrix,
+       ltransform3dto3d,
+
+       ## miscellaneous utilities
+
+       strip.default,
+       strip.custom,
+       packet.panel.default,
+       axis.default,
+       xscale.components.default,
+       yscale.components.default,
+
+       do.breaks,
+       make.groups,
+       banking, 
+       Rows,
+       level.colors,
+
+       ## settings 
+
+       show.settings,
+       trellis.device,
+       trellis.par.get,
+       trellis.par.set,
+       lattice.getOption,
+       lattice.options,
+       canonical.theme,
+       standard.theme,
+       col.whitebg,
+       simpleTheme,
+       
+
+
+       ## interaction etc
+       
+       panel.identify,
+       panel.identify.qqmath,
+       panel.identify.cloud,
+       panel.link.splom,
+       panel.brush.splom,
+       trellis.focus,
+       trellis.unfocus,
+       trellis.switchFocus,
+       trellis.panelArgs,
+       trellis.vpname,
+       trellis.grobname,
+       current.panel.limits,
+
+       trellis.last.object
+
+
+       )
+
+
+## methods related to shingles
+
+S3method("[",           shingle)
+S3method(as.data.frame, shingle)
+S3method(plot,          shingle)
+S3method(print,         shingle)
+S3method(summary,       shingle)
+S3method(as.character,  shingleLevel)
+S3method(print,         shingleLevel)
+
+## methods for ``trellis'' objects (see also tmd below)
+
+S3method(print,    trellis)
+S3method(plot,     trellis)
+S3method(update,   trellis)
+S3method(dim,      trellis)
+S3method(dimnames, trellis)
+S3method("dimnames<-", trellis)
+S3method("[",      trellis)
+S3method(t,        trellis)
+S3method(summary,  trellis)
+S3method(print,    summary.trellis)
+
+
+## methods for high level functions
+
+S3method(barchart,      formula)
+S3method(barchart,      array)
+S3method(barchart,      default)
+S3method(barchart,      matrix)
+S3method(barchart,      numeric)
+S3method(barchart,      table)
+
+S3method(bwplot,        formula)
+S3method(bwplot,        numeric)
+S3method(densityplot,   formula)
+S3method(densityplot,   numeric)
+S3method(dotplot,       formula)
+S3method(dotplot,       array)
+S3method(dotplot,       default)
+S3method(dotplot,       matrix)
+S3method(dotplot,       numeric)
+S3method(dotplot,       table)
+S3method(histogram,     formula)
+S3method(histogram,     factor)
+S3method(histogram,     numeric)
+S3method(qqmath,        formula)
+S3method(qqmath,        numeric)
+S3method(stripplot,     formula)
+S3method(stripplot,     numeric)
+S3method(qq,            formula)
+S3method(xyplot,        formula)
+S3method(xyplot,        ts)
+S3method(levelplot,     formula)
+S3method(levelplot,     table)
+S3method(levelplot,     array)
+S3method(levelplot,     matrix)
+S3method(contourplot,   formula)
+S3method(contourplot,   table)
+S3method(contourplot,   array)
+S3method(contourplot,   matrix)
+S3method(cloud,         formula)
+S3method(cloud,         matrix)
+S3method(cloud,         table)
+S3method(wireframe,     formula)
+S3method(wireframe,     matrix)
+S3method(splom,         formula)
+S3method(splom,         matrix)
+S3method(splom,         data.frame)
+
+S3method(parallelplot,  formula)
+S3method(parallelplot,  matrix)
+S3method(parallelplot,  data.frame)
+
+# deprecated
+S3method(parallel,  formula)
+S3method(parallel,  matrix)
+S3method(parallel,  data.frame)
+
+S3method(tmd,           formula)
+S3method(tmd,           trellis)
+
+
+S3method(llines,        default)
+S3method(ltext,         default)
+S3method(lpoints,       default)
+
+
+### Local variables:
+### mode: R
+### End:
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/NEWS	(revision 2476)
@@ -0,0 +1,1105 @@
+
+
+Changes in lattice 0.20
+=======================
+
+ o The primary goal of the 0.20 series is to further improve
+   documentation, building up to an eventual 1.0 release.  Specific
+   major changes are given below.
+
+ o Use dev.hold()/dev.flush() introduced in R 2.14.0 for smoother
+   displays and transition.
+
+ o It is now easier to use raster images in levelplot() by specifying
+   top-level argument 'useRaster=TRUE'.
+
+ o 'pos' can now be a vector in ltext(), just as it can in text().
+
+ o Explicit components in 'colorkey' (for levelplot()) to specify
+   graphical parameters of boundary and tick marks/labels.
+
+ o "spline" added as a possibly 'type' in panel.xyplot(), following a
+   suggestion from Patrick Breheny.
+
+ o Support for traditional graphics-like log scale annotation, using
+   'scales=list(equispaced.log = FALSE)'.
+
+ o parallel() deprecated in favour of parallelplot(), to avoid
+   potential confusion with the parallel package.
+
+ o The internal lattice.status list is cleaned up whenever new page
+   starts.  This should fix lattice bug #1629.
+
+Changes in lattice 0.19
+=======================
+
+ o The primary goal of the 0.19 series is to improve documentation and
+   fix some obscure but long-standing bugs, building up to an eventual
+   1.0 release.  Specific major changes are given below.
+
+ o Added new arguments 'grid' and 'abline' in panel.xyplot().
+
+ o Added a "panel.background" setting.
+
+ o Restructured storage of plot-specific information, fixing bug
+   reported in
+   https://stat.ethz.ch/pipermail/r-help/2007-October/143567.html
+
+ o Added a CITATION file.
+
+ o Added a new "axis.text" setting. 
+
+ o Added the option to scale data inside panel.3dscatter() and
+   panel.3dwire() rather than assuming ther are already scaled.  This
+   may be helpful for use in user-written panel functions, with
+   (additional) data specified in the original scale.
+
+ o 'varnames' can now be expressions in splom()/parallel().
+ 
+ o Added support for 'xlab.top' and 'ylab.right' arguments.
+
+ o Improved axis labelling in splom(), including support for date-time
+   data.
+
+ o panel.pairs() now passes arguments i and j to (sub)panel and
+   diag.panel functions.
+
+ o Default prepanel functions are now user-settable through
+   lattice.options()
+
+ o par.[main|sub|xlab|ylab].text parameter settings are more powerful.
+
+ o Added support for 'just' component in draw.key() to allow
+   justification of legend placement.
+
+ o Graphical arguments in panel.superpose can now be lists.
+
+ o Added support for raster colorkeys.
+
+ o Added new 'height' component for keys.
+
+ o Improved vectorization of graphical parameters in panel.bwplot.
+
+ o Expanded trellis.grobname() and used it to provide a name for all grobs.
+
+ o New panel.spline() function.
+
+bug fixes
+---------
+
+ o More realistic check for equispaced grid in
+   panel.levelplot.raster().
+
+ o Improved partial matching of component names in 'key' and 'scales'.
+
+ o xyplot.ts() now allows graphical parameters to be given as vectors 
+   (inside a list) for each series. Passes lists to panel.superpose.
+
+ o panel.axis() now does NOT draw tick marks if 'ticks = FALSE'.
+
+
+Changes in lattice 0.18
+=======================
+
+ o Hosting of the upstream sources has moved to R-forge.  This allows,
+   among other things, the use of the R-forge issue tracker.
+
+ o New xyplot.ts method, merging versions previously available
+   in latticeExtra and zoo (thanks to the efforts of Felix Andrews)
+
+ o An argument 'group.value', containing the level of the group, is now
+   passed by panel.superpose to the 'panel.groups' function
+
+ o Specifying 'auto.key' as a list now produces a legend even in the
+   absence of 'groups', provided a 'text' component has been included
+
+ o The 'layout' argument now accepts NA for number of columns or rows.
+
+ o Scale limits 'xlim' & 'ylim' can have one NA to fix only one side.
+
+ o Date and POSIXt scales now use new methods to calculate axis ticks,
+   and now respond to the 'tick.number' component of 'scales'.
+
+ o 'panel.qqmath' gains an argument 'tails.n' for exact data on tails.
+
+
+Changes in lattice 0.17
+=======================
+
+new features
+------------
+
+ o New function simpleTheme() for creating nested lists without
+   specifying the nesting structure (which is guessed)
+
+ o Support for lattice.option(print.function) which is the function
+   actually used when print.trellis() is called
+
+ o New argument 'box.width' wherever 'box.ratio' is available (e.g.,
+   panel.bwplot, panel.barchart, etc.), to specify absolute thickness
+   (of boxes, bars, etc.)
+
+ o New panel.refline() function, same as panel.abline(), but with
+   default parameters from the "reference.line" settings.
+
+ o parallel() has a new 'horizontal.axis' argument; when FALSE, the
+   axes are vertical and are stacked side by side.
+
+ o densityplot() now supports weights.
+
+ o dotplot.table() etc. allow change of orientation (horizontal=FALSE).
+
+ o New function panel.identify.cloud() to interactively label
+   three-dimensional scatterplots.
+
+ o Added support for notches in panel.bwplot (based on patch from Mike
+   Kay)
+
+ o New panel function panel.smoothScatter (relocated from Bioconductor
+   package geneplotter)
+
+ o Added German translations (contributed by Chris Leick)
+
+ o reordered documentation to make PDF manual more readable
+
+bug fixes
+---------
+
+ o Make translations available (they were never actually installed before)
+
+
+Changes in lattice 0.16
+=======================
+
+changes in behaviour
+--------------------
+
+ o 'x' in dotplot(~x, data) etc now gets names(x) set to
+   rownames(data).  Update: this feature has now been removed, as the
+   resulting behaviour is undesirable for bwplot()
+
+ o the 'call' component of a "trellis" object is set to a better value
+   than before (at least for the methods in lattice).  One consequence
+   is that update.default() now works for cases in which
+   update.trellis() doesn't (i.e. those where data packets need to
+   change)
+
+ o barchart.table now has an 'horizontal' argument
+
+ o levelplot.matrix() now allows specification of column labels or
+   positions through arguments 'row.values' and 'column.values'
+
+ o width calculation for rectangles changed for levelplot() when 'x',
+   'y' are factors; they are set to 1, rather than trying to
+   accomodate unequally spaced 'x' and 'y' values.  This is important
+   when there are empty levels
+
+ o dimnames() of a "trellis" object is now settable (this allows
+   changing names and levels of conditioning variables)
+
+ o labels ('xlab', 'main', etc) can now be character vectors.  In
+   their list form, they support more graphical parameters as well as
+   finer positioning (justification, rotation, etc.)
+
+ o 'strip.left' gets called with 'horizontal = FALSE', so
+   'strip.left = strip.default' now works as expected
+
+
+Changes in lattice 0.15
+=======================
+
+(Some of these are also available in updated 0.14 versions)
+
+new features
+------------
+
+ o Default panel functions are now settable options
+
+ o Limits of a parallel coordinates plot can now be controlled via
+   functions
+
+ o New 'panel.aspect' argument for cloud and wireframe
+
+ o Better support for factors in cloud and wireframe
+
+ o More flexible placement of legends with x, y and corner.  In
+   particular, corner can have fractional values, and (x, y) can refer
+   to a position w.r.t. two potential bounding boxes depending on
+   lattice.getOption("legend.bbox") ('full', meaning full plot region,
+   or 'panel', meaning the subregion containing panels and strips.
+   The default is 'panel', which is a change in behaiour)
+
+ o trellis.focus() now allows choosing panels interactively.
+
+ o New interaction functions panel.identify.qqmath() and
+   panel.brush.splom()
+
+ o There is now an error handling mechanism for panel functions.  By
+   default, errors in panel functions no longer stop execution.  See
+   ?print.trellis for details.
+
+
+changes in behaviour
+--------------------
+
+ o non-numeric data no longer cause warnings in bwplot
+
+ o the default padding between components has been changed to
+   0.5 "chars"
+
+
+
+
+Changes in lattice 0.14
+=======================
+
+new features
+------------
+
+ o support for custom function that determines packet-panel
+   correspondence.  This could be used to fill panels vertically
+   rather than horizontally, or to split layout over two or more
+   pages, etc. (see ?packet.panel.default)
+
+ o support for customizable functions for axis drawing and tick/label
+   determination
+
+ o various accessor functions available to panel, strip, axis (etc)
+   functions, e.g. panel.number() and packet.number()
+
+ o arguments to lattice.options and print.trellis arguments can now be
+   attached to trellis objects (as parameter settings already could)
+   through high level arguments 'lattice.options' and 'plot.args'
+
+ o llines, lpoints and ltext are now generic functions
+
+ o The high level 'key' argument can now have an argument called
+   'reverse.rows' to reverse the order of rows.  This applies to
+   'draw.key', 'auto.key' and 'simpleKey' as well.
+
+ o extended interpretation of 'breaks' in histogram()
+
+ o matrix methods for 'splom' and 'parallel' (whose absence was an
+   oversight)
+
+ o support of 'alpha' argument in labels and legends, which were
+   previously missing for no good reason
+
+ o panel.grid() now allows 'h' and 'v' to have negative values other
+   than -1, in which case '-h' and '-v' will be used as the 'n'
+   argument to pretty() when determining line locations
+
+
+changes in behaviour
+--------------------
+
+ o panel function is no longer given arguments panel.number and
+   packet.number (see above for alternatives)
+
+ o panel.identify() now has a more useful return value (selected
+   subscripts)
+
+ o trellis.panelArgs() without any arguments should return meaningful
+   results while a "trellis" object is being printed, and thus should
+   be usable inside panel or axis functions.
+
+ o For formulae of the form y1 + y2 ~ x1 + x2 + x3, the order of
+   levels of the artificially created grouping variable is now more
+   'intuitive'
+
+
+
+Changes in lattice 0.13
+=======================
+
+
+new features
+------------
+
+ o high level generics like 'xyplot' now have both 'x' and 'data' as
+   arguments.  The only implication for S3 methods is that they will
+   have to include the 'data' argument even if they are unused (as
+   they should be when 'x' is not a formula).  The reason for doing
+   this is to encourage S4 methods using multiple dispatch where 'x'
+   is a formula and 'data' is some other data source.
+
+ o R messages are now translatable.
+
+ o French translations courtesy of Philippe Grosjean.
+
+ o instead of ignoring it as before, 'panel.xyplot' and
+   'panel.densityplot' now deal with a 'groups' argument appropriately
+   by calling 'panel.superpose'.  Consequently, the default of 'panel'
+   in 'xyplot' etc does not need to be conditional on 'groups'.
+
+ o added 'lineheight' as a graphical parameter where appropriate.
+
+ o added a 'grid.pars' setting for arbitrary grid parameters to be
+   set initially via gpar().
+
+ o For a shingle 'x', 'as.character(levels(x))' creates meaningful
+   labels.
+
+ o Shingle levels can now be printed by strip.default.
+
+ o The strip function, like the panel function, is now passed
+   arguments 'packet.number' and 'panel.number' (although the default
+   strip function makes no use of it).
+
+ o 'panel.superpose' has new argument to make it bahave like in S-PLUS
+   (interpretation of 'type').  This makes 'panel.superpose.2'
+   unnecessary, although it's still available.
+
+ o Added wrappers lrect, lpolygon (and panel.rect, panel.polygon)
+
+
+
+changes in behaviour
+--------------------
+
+ o evaluation scope: standard functions with a formula based interface
+   ('lm' etc) look for variables in the formula (that are not found in
+   'data') in the environment of the formula.  This was done
+   inconsistently for lattice functions, which has been fixed.
+
+ o 'summary.trellis' is now more informative
+
+ o calls with explicit 'formula=' no longer work (used to give a
+   warning before)
+
+ o The 'bar.fill' and 'superpose.fill' settings have been replaced
+   with 'plot.polygon' and 'superpose.polygon' respectively, which are
+   more consistent with other names.
+
+ o Default of 'data' changed from 'parent.frame()' to NULL.  This has
+   to do with reasonable non-standard evaluation rules, and probably
+   needs some more thought.
+
+ o Default Trellis settings (a.k.a. theme) changed.  See
+   ?trellis.device for details
+
+
+
+bug fixes
+---------
+
+ o NA-handling
+
+ o ltext now supports more 'adj' values
+
+ o scales$y$alternating now counts row numbers from top if as.table = TRUE
+
+ o miscellaneous improvements in strip.default
+
+
+
+
+Todo (planned)
+--------------
+
+ o change panel.qq so that most work gets done there
+
+
+
+
+
+
+
+Changes in lattice 0.12
+=======================
+
+improvements
+------------
+
+ o panel.bwplot has a new 'stats' argument, which is a function used to
+   calculate the statistics in the box and whisker plot.  Defaults
+   to boxplot.stats, which was the hard-coded value earlier.
+
+ o panel.bwplot has been re-implemented.  Faster, avoids direct grid
+   calls
+
+ o panel.densityplot now allows more flexible specifications of
+   'plot.points', specifically, points can be jittered (the new
+   default) or indicated by a `rug'.
+
+ o (more) changes in NA-handling.
+
+ o panel.superpose handles type='g' itself so that the grid doesn't
+   get repeated for every group.
+
+new features
+------------
+
+ o All high level functions are now generic.  This change should be
+   mostly transparent, but there may be some unforeseen side-effects.
+   S3 generics and methods are used (this may change at some point,
+   but not in the near future).  In particular, usage where the first
+   argument is not actually a formula has now been formalized and is
+   handled via method dispatch rather than the clumsy hacks in place
+   earlier.
+
+ o The first argument of high level lattice functions has been renamed
+   from 'formula' to 'x'.  This is related to the fact that these
+   functions are now generic, and is intended to avoid long-term
+   confusion.  The first argument is usually not named, so this should
+   not cause many problems.  If the name 'formula' is explicitly
+   supplied, it will be used with a warning (as long as there is no
+   argument named 'x') for now, but not in future versions of lattice.
+
+ o aspect='xy' is now allowed when relation='free'
+
+ o A new function make.groups (present in S-PLUS) has been added.
+
+ o there's now panel.rect and lrect (similar to the base function
+   rect)
+
+ o print.trellis has a 'draw.in' argument that can be used to specify
+   a grid viewport to draw the plot in.
+
+ o strips can now be drawn on the left (as well as top) of a panel.
+   This is useful for short wide panels, e.g. time series.
+
+ o 'Date' objects are recognized and axis labels formatted accordingly
+   (not heavily tested)
+
+changes in behaviour
+---------------------
+
+ o qqmath has been considerably revamped, primarily to allow grouped
+   displays (the older implementation would not have allowed that even
+   with a custom panel function).  In particular, the (pre)panel
+   function(s) now get the raw data as opposed to already computed
+   quantiles. Some old code may stop working.
+
+ o as a consequence of the above, panel.qqmath, panel.qqmathline etc
+   have been rewritten and have different argument lists
+
+ o tmd has been rewritten (mostly to deal with qqmath objects), but
+   this shouldn't be user-visible.
+
+ o densityplot defaults to showing points with random jitter.
+
+ o arguments panel.number and panel.counter, passed to panel functions
+   that have those (or the ...) argument(s) have been renamed to
+   'packet.number' and 'panel.number', which are more in line with
+   standard Trellis jargon.
+
+
+bug fixes
+---------
+
+ o identification of when 'type' should default to "density" was buggy
+   (inapprpriate rounding)
+
+
+
+
+
+
+Changes in lattice 0.11
+=======================
+
+improvements
+------------
+
+ o panel.superpose.2 (which replicates behaviour of panel.superpose in
+   S-PLUS) revamped, with new features to boot.
+
+ o panel.identify improved
+
+ o larrows improved, slightly different features.
+
+ o [xyz]lab in cloud / wireframe can now be grobs, and honors a 'rot'
+   component for rotation (e.g., zlab = list(rot = 90))
+
+new features
+------------
+
+ o some finer controls added to parallel (actually panel.parallel)
+
+ o trellis.last.object(...) now behaves like
+   update(trellis.last.object(), ...))
+
+ o "trellis" objects now have a plot method that's essentially an
+   alias to the print method
+
+ o new function 'current.panel.limits' to retrieve native scales of
+   current panel (only in later versions)
+
+
+changes in behaviour
+---------------------
+
+ o behaviour of auto.key = TRUE now function specific
+
+ o auto.key list now allows a 'text' component
+
+ o defaults of several standard arguments now taken from
+   lattice.options()
+
+ o type='g' now calls panel.grid(h = -1, v = -1) rather thanjust
+   panel.grid()
+
+ o NA-handling (may have undesirable effects)
+
+
+bug fixes
+---------
+
+ o several minor fixes
+
+
+
+Changes in lattice 0.10
+=======================
+
+improvements
+------------
+
+
+ o relation="free" and "sliced" now work for factors (at least, as
+   well as can be expected)
+
+ o the code that constructs the layout of a lattice plot (in the print
+   method for trellis objects) has been completely rewritten.  This is
+   mostly transparent to the user, but as a side effect, it is now
+   possible to control the details of the layout (things like the
+   amount of padding around the plot, the gap between tick marks and
+   labels) via the trellis settings "layout.heights" and
+   "layout.widths".
+
+ o col.regions and colorkey in levelplot and wireframe now honour
+   settings in effect when the object is printed, and not when the
+   object was created.
+
+ o xlab, ylab, main and sub can now be grobs
+
+ o datasets get separate documentation, contributed by Kevin Wright
+
+
+new features
+------------
+
+ o lattice.options(), similar to options(), to control various aspects
+   of lattice plots.  This is mostly for easier code maintainance, but
+   can be useful for the user too.
+
+ o API now supports alpha-transparency (actual support is device
+   dependent) where appropriate (some cases might have been missed,
+   and reports of omissions would be appreciated).
+
+ o API for interacting with and enhancing Trellis plots AFTER they are
+   drawn, based on grid functions seekViewport, grid.locator, etc.
+   See ?trellis.focus
+
+ o aspect="iso" for `isometric' x- and y-axes.
+
+ o new 'default.scales' argument to high level functions, useful when
+   writing wrappers
+
+ o convenience function 'strip.custom' to create strip functions from
+   strip.default just by overriding one or more arguments
+
+ o type="H" in lplot.xy (for horizontal line).  New argument
+   'horizontal' for panel.xyplot, which affects what happens for
+   various 'type'-s.
+
+ o type="g" in panel.xyplot, which draws a reference grid
+
+ o the print method now (optionally) saves the (last) object printed
+   in a non-visible environment.  This allows retrieval of the last
+   printed object for 'update'-ing, and more importantly, to retrieve
+   panel specific data for use while interacting with and enhancing
+   plots after they are printed
+
+ o a summary method for trellis objects (currently pretty basic)
+
+
+
+
+
+
+
+changes in behaviour
+---------------------
+
+ o lset has been deprecated, and trellis.par.set has been enhanced
+   with equivalent usage
+
+ o the strip function now gets the whole strip area to work with, and
+   is responsible for using it appropriately.  strip.default has been
+   updated accordingly
+
+ o choice of color for grouped barcharts now taken from a new setting
+   parameter 'superpose.fill' and not 'regions' as previously
+
+ o arguments to panel.levelplot has changed (this is related to how
+   default colors are obtained, as described above).
+
+
+
+
+bug fixes
+---------
+
+ o axes now drawn on last panel even if it doesn't fall on the border
+   of the layout
+
+ o many other miscellaneous fixes, see SvnLog for some details
+
+
+
+
+
+
+Changes in lattice 0.9
+======================
+
+
+
+improvements
+------------
+
+
+ o Axis labelling code has been rewritten to internally use S3 method
+   dispatch, with (unexported) methods for numeric (default),
+   character (for factors), POSIXct and date. More methods can be
+   considered on request.  reversed limits are now allowed.
+
+ o contourplot can now handle missing rows in the data frame
+   (equivalent to NA's in z). contourplot now uses contourLines().
+
+ o cloud and wireframe now use better 3-D projection calculations, and
+   are generally much better than before.  wireframe is much faster,
+   and has a better shading algorithm. It can also handle NA's and
+   missing rows.
+
+ o splom (specifically panel.pairs) has more functionality, including
+   the option of using different panel functions below and above the
+   diagonal, user defined diagonal panels, and a table-like layout
+   (similar to pairs)
+
+ o font specifications now allow for fontface and fontfamily
+
+ o much improved update method for trellis objects
+
+ o setting auto.key = TRUE now computes key at printing time,
+   honouring any changes in trellis settings
+
+
+
+new features
+------------
+
+ o arbitrary reordering of conditioning variables, as well as of
+   levels within a conditioning variable. This works in the update
+   method (as well as high-level plots), making it easy to examine
+   parts of a multipanel trellis display and view it in different
+   conditioning orders.
+
+ o extended key functionality (via the legend argument) that allows
+   multiple legends and the use of arbitrary grid objects as keys
+
+ o option to NOT drop unused factor levels when subsetting, by setting
+   drop.unused.levels = FALSE or
+   drop.unused.levels = list(cond = FALSE, data = FALSE)
+   in high-level functions like xyplot.
+
+ o Ability to attach settings to a trellis object (rather than
+   changing the global settings), via argument par.settings in high
+   level calls.
+
+ o Wireframe can now draw parametrized 3-D surfaces like spheres
+   (generally of the form f(u,v) = (x(u,v), y(u,v), z(u,v)), for
+   (u,v) in the square [0,1] x [0,1]).
+
+ o Functionality similar to locator() (possible due to recently added
+   features of grid). All panels should have predictable viewport
+   names, which can be used in seekViewport() to grab a particular
+   viewport. grid.locator() can subsequently be used to locate points
+   in the native coordinate system of that panel.
+
+
+changes in behaviour
+---------------------
+
+ o allow.multiple now defaults to TRUE (whenever it makes sense),
+   since '+' in a formula is interpreted differently than S-PLUS
+   anyway. As in model formulae, I(x+y) works as expected.
+
+
+ o default behaviour of qq and qqmath changed (from S-PLUS behaviour)
+   to match corresponding base functions qqplot and qqnorm
+
+
+bug fixes
+---------
+
+ o Fixed important bug concerning interaction of subscripts and
+   subsets
+
+
+ o lots of other fixes, mostly obscure
+
+
+
+
+
+
+
+
+Changes in lattice 0.8
+======================
+
+ o Major change is the addition of a NAMESPACE. grid is now not
+   'require()-d', but imported only. To use grid functions directly in
+   lattice calls (which is a very reasonable thing to do), one needs
+   to explicitly call library(grid).
+
+
+ o contourplot() has improved when data has NA's. Still doesn't work
+   when the NA rows are completely omitted (in other words, the full
+   "matrix" has to be specified, even the entries with NA).
+
+ o Clipping can now be turned off in panels and strips via the
+   trellis.par.get("clip") setting.
+
+See the Changelog for other minor changes.
+
+
+
+
+
+
+Changes in lattice 0.7
+======================
+
+
+grouping variables
+------------------
+
+ o The handling of Grouped displays has been made more consistent (and
+   different from S-Plus). Whenever a groups= argument is specified,
+   it is assumed that the user wants a grouped display and an attempt
+   is made to honour this whenever appropriate (this ultimately
+   depends on the panel function). A non-trivial addition to the list
+   of functions that support this is barchart.
+
+ o Specification of legend (key) has been made slightly easier in the
+   most common cases. The key is used most often in conjunction with
+   the groups argument, and using the global trellis settings. The
+   simpleKey function (and the auto.key argument to high level
+   functions) uses the global settings to create a key with a not very
+   flexible but simple interface.
+
+ o Handling of the formula argument has been extended to allow
+   multiple variables on either side of the formula (with
+   allow.multiple = TRUE), e.g. xyplot(y1 + y2 ~ x, data, allow.m =
+   TRUE). These are treated as grouped displays.
+
+
+
+
+scales
+------
+
+ o Some components of scales, namely tck, rot and cex, can now be
+   length 2 vectors, controlling left/bottom and right/top separately.
+
+ o Some more functions (not all) now handle factors in the formula
+   correctly (i.e., coerce them to numeric when factors are not
+   appropriate, but use levels of the factor for labelling).
+
+
+
+
+
+Changes in lattice 0.6
+======================
+
+API change:
+----------
+
+ o panel functions: In earlier versions, panel functions and prepanel
+   functions were guaranteed to be passed numeric vectors as x,y (and
+   z) arguments. This is no longer true. All panel functions are now
+   expected to handle other possibilities. This has been done in all
+   the predefined panel functions in lattice (but not in llines,
+   lpoints, etc.). In practice, the only changes required are (unless
+   I have overlooked something) to add calls like
+
+   x <- as.numeric(x)
+   y <- as.numeric(y)
+
+   at the beginning. prepanel functions can now return, as their xlim
+   or ylim components, either a numeric vector of length 2 (possibly a
+   DateTime object), or a character vector. The latter implies that
+   the elements of this vector should be the respective axis labels,
+   associated with tick marks at 1:length_of_this_vector.
+
+
+ o high-level functions: The default panel functions of high level
+   functions can now be different, depending on whether a groups
+   argument was passed. In practice, this now happens for xyplot,
+   splom and densityplot.  (densityplot has an additional high-level
+   argument specifically for this, called panel.groups, which is
+   passed to the panel function.)  This is a convenience feature, (and
+   is inconsistent with S-Plus) in that it presumes that if the user
+   has specified a groups argument, she wants it to be used, where
+   appropriate.
+
+ o scales: In anticipation of future use (in nlme, for example), the
+   at and labels components of scales can now be a list. Each element
+   corresponds to a panel. This is thoroughly untested and not
+   guaranteed to work.
+
+
+There are also some other API changes associated with cloud and
+wireframe, discussed below.
+
+
+New Features and Fixes:
+----------------------
+
+ o Mathematical Annotation; Following changes in grid 0.7, lattice now
+   supports latex-style labelling using expressions. These can be used
+   in almost all sensible places (an exception being in colorkey axis
+   labels in levelplot/contourplot, and this is not expected to
+   change).
+
+ o Date-Time Labelling: Axis labelling procedures did not recognize
+   DateTime objects in earlier versions. This has been fixed. The
+   routine currently used is a hack of axis.POSIXt (without the format
+   option), but will hopefully improve in future.
+
+ o 3-D functions:
+
+   The 3-D functions cloud and wireframe have been greatly improved in
+   terms of extensibility. The code is much cleaner, and writing new
+   panel functions are much simpler. Earlier versions had a problem
+   with the default placement of the labels (x/y/z-lab) and scales
+   (arrows/ticks), which has been fixed. [The only major problem that
+   still remains is when, in a perspective plot, the projection of the
+   distant face is fully contained inside the projection of the near
+   face.]
+
+   Earlier wireframe code used an unnecessarily large amount of
+   memory. This has been fixed, although speed is still not good
+   (fixes are in the planing stage, and would involve changes in
+   grid). drape=TRUE used to give wrong coloring, which is now fixed.
+
+   The 'group' argument now works with wireframe, resulting in
+   multiple surfaces. This is mostly satisfactory, but is not
+   sophisticated enough to render intersecting surfaces properly
+   (might be approximated by a fine enough grid).
+
+   There are also some rudimentary lighting options, which can render
+   the surface as being illuminated from a light source. No
+   shadows. (Try shade=TRUE in wireframe.)
+
+   Although these changes go a long way towards stabilizing
+   cloud/wireframe, some further changes, especially in how the panel
+   function handles the groups argument, are expected in the future.
+
+
+
+Known bugs:
+==========
+
+ o Handling of NA values are often inconsistent and buggy. Some of
+   these are not easily fixable (particularly one in contourplot), but
+   some are, so bug reports on this are still welcome.
+
+ o Fonts specified in the new R font specification may not work yet.
+
+
+
+
+
+Changes in lattice 0.5
+======================
+
+Not many.
+
+ o Biggest change in the way settings are handled. Settings are now
+   stored in a global list called lattice.theme, and is truly
+   device-specific (i.e., settings for more than one device can be
+   used concurrently). Improved theme management via lset and
+   show.settings. Changed defaults for color postscript/pdf.
+
+ o bwplot and friends which had to have the grouping factor/shingle on
+   the y-axis, can now have it on the x-axis as well. Far from
+   perfect, though, since long labels can overlap with default
+   settings.
+
+ o panel.superpose now accepts an additional argument called
+   panel.groups (by default panel.xyplot), which is the panel function
+   actually called for each subset of the data determined by
+   groups. Avoids having to write something as big as panel.superpose
+   for natural generalizations like interaction plots. (Related new
+   panel function: panel.linejoin)
+
+ o colorkey in levelplot on all sides. Rendering of large key's much
+   much faster (using grid.place suggested by Paul)
+
+ o Other minor changes (doc, more arguments etc)
+
+ o Following changes in grid, calls to base R graphics and lattice
+   functions can now be mixed.
+
+
+Changes in lattice 0.4
+======================
+
+Some of the implementation details have changed a lot. This might
+cause some old code to fail, though no such instances are known.
+
+No significant new features have been added, but there are several
+bugfixes (notably in levelplot). The important changes are:
+
+ o documentation restructured. There is no topic called `trellis.args'
+   any more. The detailed description of the arguments common to all
+   high level trellis functions can be found under help(xyplot)
+
+ o once trellis.device() is called, Lattice graphics and base R
+   graphics should mix more or less seamlessly. There is an optional
+   argument in trellis.device() that can deal with the first blank
+   page problem, with certain restrictions.
+
+ o a (as yet very small) demo, called by demo("lattice")
+
+ o Clipping: whatever is drawn by the panel function is now clipped to
+   inside the panel region. Strip texts are clipped to inside the
+   strips.
+
+ o Axis tick labels by default do not overlap, some tick marks are
+   left unlabelled if necessary.
+
+ o The argument list for strip.default changed to be like S
+
+ o levels() and nlevels() give sensible answers for shingles. new
+   print methods for shingles and levels of shingles
+
+ o colorkey (currently used only in levelplot) can now be placed to
+   the left, top or bottom as well
+
+ o new ``lines'' component in the par.strip.text argument that can be
+   used to change the height of strips
+
+ o xlab, main etc can be double height strings (containing "\n"-s),
+   the spaces allocated for these would be automatically adjusted
+
+ o strip.default now has style=5
+
+ o new panel.superpose.2 (suggested by Neil Klepeis)
+
+ o the default colour settings sometimes seem too light on a white
+   background. To deal with this, there is a new setting with some
+   darker colours that can be set by calling lset(theme =
+   "white.bg"). see ?lset for details. This is currently in a
+   proof-of-concept stage (the colors in "white.bg" were chosen just
+   because I liked their names), and suggestions for better color
+   schemes would be most welcome.
+
+ o show.settings() added
+
+
+
+
+
+
+
+
+Changes in lattice 0.3
+======================
+
+
+The overall internal structure of the lattice library has changed
+considerably in verion 0.3, in particular making it far more readable
+and debuggable. However, this also means that some code which had
+worked with the earlier version might now fail. (This is just a
+discalimer, there are no known instances.)
+
+New Features:
+============
+
+ o (Almost) full support for the `key' argument for drawing legends
+
+ o Support for log scales
+
+ o levelplot (but no contourplot. In particular, the contour = T option
+   in levelplot does not work)
+
+ o tmd now works on the output from qq
+
+ o panel function names can now be quoted strings
+
+ o scales and its x and y components can now be just a character
+   string like "free" or "sliced", i.e., the relation tag can be
+   omitted.
+
+ o extension to the `type' argument in panel.xyplot and
+   panel.superpose to allow stair-like and histogram-like plots
+   (type="s" and "h" in plot), as well as loess smooths (using the
+   loess.smooth function in the modreg package).  Also, more than one
+   of these options can now be used concurrently.  This allows, for
+   example, a grouped plot where a grouping variable can be used to
+   fit separate loess curves along with the scatter for each
+   group. See example(xyplot)
+
+ o wrappers around grid functions with API-s of traditional graphics
+   functions to help port existing S-Plus Trellis code. See below for
+   details.
+
+ o changes in print.trellis to allow mixing of Lattice and usual R
+   graphics. See below for details.
+
+
+Porting S-Plus Trellis code to Lattice
+======================================
+
+One of the basic problems in porting existing Trellis code to R is the
+unusability of the base R functions like lines and points inside panel
+functions. To help make the changes more transparently, lattice now
+includes several wrappers around grid functions that provide an API
+similar to the corresponding base R functions. The list currently
+includes lpoints, llines, ltext and lsegments [update: larrows].
+
+Using Lattice and base R graphics concurrently [OBSOLETE]
+==============================================
+
+Grid graphics normally do not mix with usual R graphics. However,
+end-users typically might want to use lattice functions concurrently
+with traditional R graphics. To allow this without intermittent calls
+to grid.stop() and grid.start(), print.trellis (which ultimately does
+all the plotting in lattice) now tries to preserve the state of the
+device on which it plots. By default, library(lattice) opens a device
+in grid enabled mode. It can be reverted to non grid mode by
+grid.stop(). Subsequently, both Lattice functions and traditional
+graphics functions can be used. Devices opened by trellis.device()
+start in non-grid mode, unless grid.start() is called.
+
+
+
+Still Missing [OBSOLETE, except for the parts about piechart and scale]
+=============
+
+ o contourplot, wireframe, cloud (partially implemented) and of course,
+   piechart
+
+ o Some components of scale (I haven't found a full list, so
+   can't say exactly which are missing)
+
+ o Fonts
+
+ o axis labels badly implemented, no checking for overlaps.
+
+
+
+
+
+
+Local variables:
+mode: indented-text
+End:
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/DESCRIPTION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/DESCRIPTION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/DESCRIPTION	(revision 2476)
@@ -0,0 +1,26 @@
+Package: lattice
+Version: 0.20-34
+Date: 2016-09-06
+Priority: recommended
+Title: Trellis Graphics for R
+Author: Deepayan Sarkar <deepayan.sarkar@r-project.org>
+Maintainer: Deepayan Sarkar <deepayan.sarkar@r-project.org>
+Description: A powerful and elegant high-level data visualization
+  system inspired by Trellis graphics, with an emphasis on
+  multivariate data. Lattice is sufficient for typical graphics needs,
+  and is also flexible enough to handle most nonstandard requirements.
+  See ?Lattice for an introduction.
+Depends: R (>= 3.0.0)
+Suggests: KernSmooth, MASS
+Imports: grid, grDevices, graphics, stats, utils
+Enhances: chron
+LazyLoad: yes
+LazyData: yes
+License: GPL (>= 2)
+URL: http://lattice.r-forge.r-project.org/
+BugReports: http://r-forge.r-project.org/projects/lattice/
+NeedsCompilation: yes
+Packaged: 2016-09-06 11:56:33 UTC; deepayan
+Repository: CRAN
+Date/Publication: 2016-09-06 20:09:12
+Built: R 3.3.2; x86_64-apple-darwin13.4.0; 2016-10-31 14:33:56 UTC; unix
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/demo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/demo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/Rd.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/Rd.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/data.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/data.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/package.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/package.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/nsInfo.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/nsInfo.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/hsearch.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/hsearch.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/links.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/Meta/links.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/INDEX
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/INDEX	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/INDEX	(revision 2476)
@@ -0,0 +1,70 @@
+Lattice                 Lattice Graphics
+Rows                    Extract rows from a list
+axis.default            Default axis annotation utilities
+banking                 Banking
+barchart.table          table methods for barchart and dotplot
+barley                  Yield data from a Minnesota barley trial
+cloud                   3d Scatter Plot and Wireframe Surface Plot
+current.row             Accessing Auxiliary Information During Plotting
+draw.colorkey           Produce a Colorkey for levelplot
+draw.key                Produce a Legend or Key
+environmental           Atmospheric environmental conditions in New
+                        York City
+equal.count             shingles
+ethanol                 Engine exhaust fumes from burning ethanol
+histogram               Histograms and Kernel Density Plots
+lattice.options         Low-level Options Controlling Behaviour of
+                        Lattice
+latticeParseFormula     Parse Trellis formula
+level.colors            A function to compute false colors representing
+                        a numeric or categorical variable
+levelplot               Level plots and contour plots
+llines                  Replacements of traditional graphics functions
+lset                    Interface to modify Trellis Settings - Defunct
+make.groups             Grouped data from multiple vectors
+melanoma                Melanoma skin cancer incidence
+oneway                  Fit One-way Model
+packet.panel.default    Associating Packets with Panels
+panel.axis              Panel Function for Drawing Axis Ticks and
+                        Labels
+panel.barchart          Default Panel Function for barchart
+panel.bwplot            Default Panel Function for bwplot
+panel.cloud             Default Panel Function for cloud
+panel.densityplot       Default Panel Function for densityplot
+panel.dotplot           Default Panel Function for dotplot
+panel.functions         Useful Panel Function Components
+panel.histogram         Default Panel Function for histogram
+panel.identify          Functions to Interact with Lattice Plots
+panel.levelplot         Panel Functions for levelplot and contourplot
+panel.loess             Panel Function to Add a LOESS Smooth
+panel.pairs             Default Superpanel Function for splom
+panel.parallel          Default Panel Function for parallel
+panel.qqmath            Default Panel Function for qqmath
+panel.qqmathline        Useful panel function with qqmath
+panel.smoothScatter     Lattice panel function analogous to
+                        smoothScatter
+panel.spline            Panel Function to Add a Spline Smooth
+panel.stripplot         Default Panel Function for stripplot
+panel.superpose         Panel Function for Display Marked by groups
+panel.violin            Panel Function to create Violin Plots
+panel.xyplot            Default Panel Function for xyplot
+prepanel.default.bwplot
+                        Default Prepanel Functions
+prepanel.lmline         Useful Prepanel Function for Lattice
+print.trellis           Plot and Summarize Trellis Objects
+qq                      Quantile-Quantile Plots of Two Samples
+qqmath                  Q-Q Plot with Theoretical Distribution
+rfs                     Residual and Fit Spread Plots
+simpleKey               Function to generate a simple key
+simpleTheme             Function to generate a simple theme
+singer                  Heights of New York Choral Society singers
+splom                   Scatter Plot Matrices
+strip.default           Default Trellis Strip Function
+tmd                     Tukey Mean-Difference Plot
+trellis.device          Initializing Trellis Displays
+trellis.object          A Trellis Plot Object
+trellis.par.get         Graphical Parameters for Trellis Displays
+update.trellis          Retrieve and Update Trellis Object
+utilities.3d            Utility functions for 3-D plots
+xyplot                  Common Bivariate Trellis Plots
+xyplot.ts               Time series plotting methods
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/help/lattice.rdx
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/help/lattice.rdx
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/help/AnIndex
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/help/AnIndex	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/help/AnIndex	(revision 2476)
@@ -0,0 +1,221 @@
+lattice-package	Lattice
+as.character.shingleLevel	shingles
+as.data.frame.shingle	shingles
+as.factorOrShingle	shingles
+as.shingle	shingles
+axis.default	axis.default
+banking	banking
+barchart	xyplot
+barchart.array	barchart.table
+barchart.default	xyplot
+barchart.formula	xyplot
+barchart.matrix	barchart.table
+barchart.numeric	xyplot
+barchart.table	barchart.table
+barley	barley
+bwplot	xyplot
+bwplot.formula	xyplot
+bwplot.numeric	xyplot
+canonical.theme	trellis.device
+cloud	cloud
+cloud.formula	cloud
+cloud.matrix	cloud
+cloud.table	cloud
+col.whitebg	trellis.device
+contourplot	levelplot
+contourplot.array	levelplot
+contourplot.formula	levelplot
+contourplot.matrix	levelplot
+contourplot.table	levelplot
+current.column	panel.number
+current.panel.limits	panel.axis
+current.row	panel.number
+densityplot	histogram
+densityplot.formula	histogram
+densityplot.numeric	histogram
+diag.panel.splom	panel.pairs
+dim.trellis	print.trellis
+dimnames.trellis	print.trellis
+do.breaks	histogram
+dotplot	xyplot
+dotplot.array	barchart.table
+dotplot.default	xyplot
+dotplot.formula	xyplot
+dotplot.matrix	barchart.table
+dotplot.numeric	xyplot
+dotplot.table	barchart.table
+draw.colorkey	draw.colorkey
+draw.key	draw.key
+environmental	environmental
+equal.count	shingles
+ethanol	ethanol
+histogram	histogram
+histogram.factor	histogram
+histogram.formula	histogram
+histogram.numeric	histogram
+is.shingle	shingles
+larrows	llines
+Lattice	Lattice
+lattice	Lattice
+lattice.getOption	lattice.options
+lattice.options	lattice.options
+latticeParseFormula	latticeParseFormula
+level.colors	level.colors
+levelplot	levelplot
+levelplot.array	levelplot
+levelplot.formula	levelplot
+levelplot.matrix	levelplot
+levelplot.table	levelplot
+llines	llines
+llines.default	llines
+lplot.xy	llines
+lpoints	llines
+lpoints.default	llines
+lpolygon	llines
+lrect	llines
+lsegments	llines
+lset	lset
+ltext	llines
+ltext.default	llines
+ltransform3dMatrix	utilities.3d
+ltransform3dto3d	utilities.3d
+make.groups	make.groups
+melanoma	melanoma
+oneway	oneway
+packet.number	panel.number
+packet.panel.default	packet.panel.default
+palette.shade	utilities.3d
+panel.3dscatter	panel.cloud
+panel.3dwire	panel.cloud
+panel.abline	panel.functions
+panel.arrows	llines
+panel.average	panel.functions
+panel.axis	panel.axis
+panel.barchart	panel.barchart
+panel.brush.splom	interaction
+panel.bwplot	panel.bwplot
+panel.cloud	panel.cloud
+panel.contourplot	panel.levelplot
+panel.curve	panel.functions
+panel.densityplot	panel.densityplot
+panel.dotplot	panel.dotplot
+panel.error	print.trellis
+panel.fill	panel.functions
+panel.functions	panel.functions
+panel.grid	panel.functions
+panel.histogram	panel.histogram
+panel.identify	interaction
+panel.identify.cloud	interaction
+panel.identify.qqmath	interaction
+panel.levelplot	panel.levelplot
+panel.levelplot.raster	panel.levelplot
+panel.linejoin	panel.functions
+panel.lines	llines
+panel.link.splom	interaction
+panel.lmline	panel.functions
+panel.loess	panel.loess
+panel.mathdensity	panel.functions
+panel.number	panel.number
+panel.pairs	panel.pairs
+panel.parallel	panel.parallel
+panel.points	llines
+panel.polygon	llines
+panel.qq	panel.xyplot
+panel.qqmath	panel.qqmath
+panel.qqmathline	panel.qqmathline
+panel.rect	llines
+panel.refline	panel.functions
+panel.rug	panel.functions
+panel.segments	llines
+panel.smoothScatter	panel.smoothScatter
+panel.spline	panel.spline
+panel.splom	panel.xyplot
+panel.stripplot	panel.stripplot
+panel.superpose	panel.superpose
+panel.superpose.2	panel.superpose
+panel.superpose.plain	panel.superpose
+panel.text	llines
+panel.tmd.default	tmd
+panel.tmd.qqmath	tmd
+panel.violin	panel.violin
+panel.wireframe	panel.cloud
+panel.xyplot	panel.xyplot
+parallel	splom
+parallelplot	splom
+parallelplot.data.frame	splom
+parallelplot.formula	splom
+parallelplot.matrix	splom
+plot.shingle	shingles
+plot.trellis	print.trellis
+prepanel.default.bwplot	prepanel.default
+prepanel.default.cloud	prepanel.default
+prepanel.default.densityplot	prepanel.default
+prepanel.default.histogram	prepanel.default
+prepanel.default.levelplot	prepanel.default
+prepanel.default.parallel	prepanel.default
+prepanel.default.qq	prepanel.default
+prepanel.default.qqmath	prepanel.default
+prepanel.default.splom	prepanel.default
+prepanel.default.xyplot	prepanel.default
+prepanel.lmline	prepanel.functions
+prepanel.loess	prepanel.functions
+prepanel.qqmathline	prepanel.functions
+prepanel.spline	prepanel.functions
+prepanel.tmd.default	tmd
+prepanel.tmd.qqmath	tmd
+print.shingle	shingles
+print.shingleLevel	shingles
+print.trellis	print.trellis
+qq	qq
+qq.formula	qq
+qqmath	qqmath
+qqmath.formula	qqmath
+qqmath.numeric	qqmath
+rfs	rfs
+Rows	Rows
+shingle	shingles
+show.settings	trellis.par.get
+simpleKey	simpleKey
+simpleTheme	simpleTheme
+singer	singer
+splom	splom
+splom.data.frame	splom
+splom.formula	splom
+splom.matrix	splom
+standard.theme	trellis.device
+strip.custom	strip.default
+strip.default	strip.default
+stripplot	xyplot
+stripplot.formula	xyplot
+stripplot.numeric	xyplot
+summary.shingle	shingles
+summary.trellis	print.trellis
+t.trellis	update.trellis
+tmd	tmd
+tmd.formula	tmd
+tmd.trellis	tmd
+trellis.currentLayout	panel.number
+trellis.device	trellis.device
+trellis.focus	interaction
+trellis.grobname	interaction
+trellis.last.object	update.trellis
+trellis.object	trellis.object
+trellis.panelArgs	interaction
+trellis.par.get	trellis.par.get
+trellis.par.set	trellis.par.get
+trellis.switchFocus	interaction
+trellis.unfocus	interaction
+trellis.vpname	interaction
+update.trellis	update.trellis
+utilities.3d	utilities.3d
+which.packet	panel.number
+wireframe	cloud
+wireframe.formula	cloud
+wireframe.matrix	cloud
+xscale.components.default	axis.default
+xyplot	xyplot
+xyplot.formula	xyplot
+xyplot.ts	xyplot.ts
+yscale.components.default	axis.default
+[.shingle	shingles
+[.trellis	update.trellis
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/help/paths.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/help/paths.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/help/aliases.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/help/aliases.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/help/lattice.rdb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/help/lattice.rdb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/libs/lattice.so
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/library/lattice/libs/lattice.so
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/Search.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/Search.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/Search.html	(revision 2476)
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>R: Search Engine</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" type="text/css" href="R.css">
+
+</head>
+
+<body>
+<h1>Search Engine <img class="toplogo" src="Rlogo.svg" alt="[R logo]"></h1>
+
+<div align="center">
+<a href="index.html"><img class="arrow" src="up.jpg" alt="[Top]"></a>
+</div>
+
+<hr width="100%">
+
+<h2>Search</h2>
+
+<p> Search requires the HTTP server to be running.  As an alternative,
+  use <code>help.search()</code> from the R prompt.
+</p>
+
+</body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/Search.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/left.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/left.jpg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/index.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/index.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/index.html	(revision 2476)
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>The R Language</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" type="text/css" href="R.css">
+</head>
+<body>
+
+<h1>Statistical Data Analysis
+<img class="toplogo" src="Rlogo.svg" alt="[R logo]"> 
+</h1>
+
+<hr width="100%">
+
+<h2>Manuals</h2>
+
+<table width="100%">
+  <tr>
+    <td align="center" width="50%">
+    <a href="../manual/R-intro.html">An Introduction to R</a>
+    </td>
+    <td align="center" width="50%">
+    <a href="../manual/R-lang.html">The R Language Definition</a>
+    </td>
+  </tr>
+  <tr>
+    <td align="center" width="50%">
+    <a href="../manual/R-exts.html">Writing R Extensions</a>
+    </td>
+    <td align="center" width="50%">
+    <a href="../manual/R-admin.html">R Installation and Administration</a>
+    </td>
+  </tr>  
+  <tr>
+    <td align="center" width="50%">
+    <a href="../manual/R-data.html">R Data Import/Export</a>
+    </td>
+    <td align="center" width="50%">
+    <a href="../manual/R-ints.html">R Internals</a>
+    </td>
+  </tr>
+</table>
+
+
+<h2>Reference</h2>
+
+<table width="100%">
+<tr>
+<td align="center" width="50%"><a href="packages.html">Packages</a></td>
+<td align="center" width="50%"><a href="Search.html">Search Engine &amp; Keywords</a></td>
+</tr>
+</table>
+
+<h2>Miscellaneous Material</h2>
+
+<table width="100%">
+<tr>
+<td align="center" width="33%"><a href="about.html">About R</a> </td>
+<td align="center" width="33%"><a href="../AUTHORS">Authors</a> </td>
+<td align="center" width="33%"><a href="resources.html">Resources</a></td>
+</tr>
+<tr>
+<td align="center" width="33%"><a href="../COPYING">License</a></td>
+<td align="center" width="33%"><a href="../manual/R-FAQ.html">Frequently Asked Questions</a> </td>
+<td align="center" width="33%"><a href="../THANKS">Thanks</a> </td>
+</tr>
+<tr>
+<td align="center" width="33%"><a href="NEWS.html">NEWS</a></td>
+<td align="center" width="33%"><a href="UserManuals.html">User Manuals</a></td>
+<td align="center" width="33%"><a href="http://developer.R-project.org/TechDocs">Technical papers</a></td>
+</tr>
+</table>
+
+</body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/index.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/about.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/about.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/about.html	(revision 2476)
@@ -0,0 +1,49 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>R: About R</title>
+<meta http-equiv="Content-Type" content= "text/html; charset=us-ascii">
+<link rel="STYLESHEET" type="text/css" href="R.css">
+</head>
+
+<body>
+
+<h1>About <img class="toplogo" src="Rlogo.svg" alt="[R logo]"></h1>
+
+<hr width="100%">
+
+<h2>Introduction</h2>
+
+<p><b>R</b> is a computer language not entirely unlike the S
+language developed at AT&amp;T Bell Laboratories by Rick Becker,
+John Chambers and Allan Wilks. The two languages are implemented
+quite differently, but bear enough superficial resemblance that
+users should be able to switch between the two with relative ease.
+Currently the software is undergoing active development. Discussion
+of the development process is carried out on the "r-devel" mailing
+list. See the <a href="resources.html">resources page</a> for
+details on how to subscribe to this list.</p>
+
+<p>We have implemented <b>R</b> in what we hope is a very portable
+fashion and in way which requires relatively little in the way of
+machine resources. Implementations exist for many for many members
+of the Unix family of operating systems, including <b>AIX</b>,
+<b>FreeBSD</b>, <b>GNU/Linux</b>, <b>HPUX</b>, <b>Irix</b>,
+<b>macOS</b>, <b>Solaris</b>, and <b>Tru64</b>. In addition there
+is a version for <b>Microsoft Windows</b> (9x, ME, NT4, 2000,
+XP).</p>
+
+<h2>Present Status</h2>
+
+The present version implements most of the functionality in the
+1988 S book (the "Blue Book") and many of the applications. In
+addition, we have implemented much of the functionality from the
+1992 S book (the "White Book"). In particular we have versions of
+"lm", "glm", "aov" and "loess", and versions of "gam" and "tree"
+are available in contributed packages. There are several manuals in
+the distribution, plus a comprehensive set of help pages in "output
+independent" form which can be used to create versions for HTML,
+LaTeX, text, PDF etc.
+
+</body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/about.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/resources.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/resources.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/resources.html	(revision 2476)
@@ -0,0 +1,220 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
+<head>
+<title>R Resources</title>
+
+<meta name="description" content="R Resources">
+<meta name="keywords" content="R Resources">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta name="Generator" content="texi2any">
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link href="#Top" rel="start" title="Top">
+<link href="dir.html#Top" rel="up" title="(dir)">
+<style type="text/css">
+<!--
+a.summary-letter {text-decoration: none}
+blockquote.smallquotation {font-size: smaller}
+div.display {margin-left: 3.2em}
+div.example {margin-left: 3.2em}
+div.indentedblock {margin-left: 3.2em}
+div.lisp {margin-left: 3.2em}
+div.smalldisplay {margin-left: 3.2em}
+div.smallexample {margin-left: 3.2em}
+div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
+div.smalllisp {margin-left: 3.2em}
+kbd {font-style:oblique}
+pre.display {font-family: inherit}
+pre.format {font-family: inherit}
+pre.menu-comment {font-family: serif}
+pre.menu-preformatted {font-family: serif}
+pre.smalldisplay {font-family: inherit; font-size: smaller}
+pre.smallexample {font-size: smaller}
+pre.smallformat {font-family: inherit; font-size: smaller}
+pre.smalllisp {font-size: smaller}
+span.nocodebreak {white-space:nowrap}
+span.nolinebreak {white-space:nowrap}
+span.roman {font-family:serif; font-weight:normal}
+span.sansserif {font-family:sans-serif; font-weight:normal}
+ul.no-bullet {list-style: none}
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}
+
+-->
+</style>
+
+
+</head>
+
+<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
+<h1 class="settitle" align="center">R Resources</h1>
+
+
+
+
+<h1>Other Resources
+<img class="toplogo" src="Rlogo.svg" alt="[R logo]">
+</h1>
+<hr width="100%">
+<a name="Top"></a>
+<h1 class="node-heading">Top</h1>
+
+
+<hr>
+<a name="FAQ"></a>
+<a name="FAQ-1"></a>
+<h3 class="section">1 FAQ</h3>
+
+<p>A collection of <a href="faq.html">Frequently Asked Questions</a> and their
+answers is maintained by <a href="mailto:Kurt.Hornik@R-project.org">Kurt Hornik</a>
+and can be found at the <acronym>URL</acronym>
+</p>
+<blockquote>
+<p><a href="https://CRAN.R-project.org/doc/FAQ/R-FAQ.html">https://CRAN.R-project.org/doc/FAQ/R-FAQ.html</a>
+</p></blockquote>
+
+
+<hr>
+<a name="Mailing-lists"></a>
+<a name="Mailing-lists-1"></a>
+<h3 class="section">2 Mailing lists</h3>
+
+<p>Thanks to <a href="mailto:Martin.Maechler@R-project.org">Martin Maechler</a> there
+are a number of mailing lists which are used by R users and developers.
+See
+</p>
+<blockquote>
+<p><a href="https://www.R-project.org/mail.html">https://www.R-project.org/mail.html</a>
+</p></blockquote>
+
+<p>for details.
+</p>
+<hr>
+<a name="Archives"></a>
+<a name="Archives-1"></a>
+<h3 class="section">3 Archives</h3>
+
+<p>The Comprehensive R Archive Network (<acronym>CRAN</acronym>) is a collection of
+sites which carry identical material, consisting of the R
+distribution(s), the contributed extensions, documentation for R, and
+binaries, with the master site at <a href="https://CRAN.R-project.org/">https://CRAN.R-project.org/</a> and
+information on daily mirrors available from
+</p>
+<blockquote>
+<p><a href="https://CRAN.R-project.org/mirrors.html">https://CRAN.R-project.org/mirrors.html</a>
+</p></blockquote>
+
+<hr>
+<a name="Bug_002dtracking-system"></a>
+<a name="Bug_002dtracking-system-1"></a>
+<h3 class="section">4 Bug-tracking system</h3>
+
+<p>R has a bug-tracking system (or perhaps a bug-filing system is a more
+precise description) available on the net at
+</p>
+<blockquote>
+<p><a href="https://bugs.R-project.org/">https://bugs.R-project.org/</a>
+</p></blockquote>
+
+<hr>
+
+
+
+</body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/resources.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/NEWS.2.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/NEWS.2.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/NEWS.2.html	(revision 2476)
@@ -0,0 +1,9003 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>R: R News</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+
+<table width="100%" summary="page for NEWS"><tr><td>NEWS</td><td style="text-align: right;">R Documentation</td></tr></table>
+
+<h2> R News</h2>
+
+<h3>LATER NEWS</h3>
+
+<p>News for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0 and later can be found in file &lsquo;<span class="file">NEWS.Rd</span>&rsquo; in the
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> sources and files &lsquo;<span class="file">NEWS</span>&rsquo; and &lsquo;<span class="file">doc/html/NEWS.html</span>&rsquo;
+in an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> build.
+</p>
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.15.3</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>lgamma(x)</code> for very small <code>x</code> (in the
+denormalized range) is no longer <code>Inf</code> with a warning.
+</p>
+</li>
+<li> <p><code>image()</code> now sorts an unsorted <code>breaks</code> vector,
+with a warning.
+</p>
+</li>
+<li><p> The internal methods for <code>tar()</code> and <code>untar()</code> do
+a slightly more general job for &lsquo;ustar&rsquo;-style handling of
+paths of more than 100 bytes.
+</p>
+</li>
+<li><p> Packages <span class="pkg">compiler</span> and <span class="pkg">parallel</span> have been added
+to the reference index (&lsquo;<span class="file">refman.pdf</span>&rsquo;).
+</p>
+</li>
+<li> <p><code>untar(tar = "internal")</code> has some support for
+<code>pax</code> headers as produced by e.g. <code>gnutar --posix</code>
+(which seems prevalent on OpenSUSE 12.2) or
+<code>bsdtar --format pax</code>, including long path and link names.
+</p>
+</li>
+<li> <p><code>sQuote()</code> and <code>dQuote()</code> now handle 0-length
+inputs.  (Suggestion of Ben Bolker.)
+</p>
+</li>
+<li> <p><code>summaryRprof()</code> returns zero-row data frames rather
+than throw an error if no events are recorded, for consistency.
+</p>
+</li>
+<li><p> The included version of PCRE has been updated to 8.32.
+</p>
+</li>
+<li><p> The <span class="pkg">tcltk</span> namespace can now be re-loaded after
+unloading.
+</p>
+<p>The Tcl/Tk event loop is inhibited in a forked child from package
+<span class="pkg">parallel</span> (as in e.g. <code>mclapply()</code>).
+</p>
+</li>
+<li> <p><code>parallel::makeCluster()</code> recognizes the value
+<span class="samp">random</span> for the environment variable <span class="env">R_PARALLEL_PORT</span>:
+this chooses a random value for the port and reduces the chance of
+conflicts when multiple users start a cluster at the same time.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li><p> The default for <span class="env">TAR</span> on Windows for <code>R CMD
+	build</code> has been changed to be <span class="samp">internal</span> if no
+<code>tar</code> command is on the path.
+</p>
+<p>This enables most packages to be built &lsquo;out of the box&rsquo;
+without <code>Rtools</code>: the main exceptions are those which need
+to be installed to re-build vignettes and need <code>Rtools</code>
+for installation (usually because they contain compiled code).
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li><p> On a 64-bit Windows platform with enough RAM, <code>R_alloc</code>
+can now allocate up to just under 32GB like other 64-bit
+platforms.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li><p> Use of <code>col2rgb(0)</code> is deprecated (see the help page
+for its limitations).
+</p>
+</li>
+<li><p> The deprecated <code>intensities</code> component returned by
+<code>hist()</code> is no longer recognized by the <code>plot()</code> method
+and will be removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0.
+</p>
+</li>
+<li> <p><code>real()</code>, <code>as.real()</code> and <code>is.real()</code> are now
+formally deprecated and give a warning.
+</p>
+</li>
+<li><p> This is formal notice that the non-API EISPACK entry points
+in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> will be removed shortly.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> The <code>configure</code> tests for Objective C and Objective
+C++ now work on Mac OS 10.8 with Xcode 4.5.2 (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15107">PR#15107</a>).
+</p>
+</li>
+<li><p> The cairo-based versions of <code>X11()</code> now work with
+current versions of cairographics (e.g., 1.12.10).  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15168">PR#15168</a>)
+</p>
+<p>A workaround for earlier versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is to use
+<code>X11.options(type = "nbcairo")</code>.
+</p>
+</li>
+<li><p> Configuration and <code>R CMD javareconf</code> now come up
+with a smaller set of library paths for Java on Oracle-format JDK
+(including OpenJDK).  This helps avoid conflicts between libraries
+(such as <code>libjpeg</code>) supplied in the JDK and system
+libraries.  This can always be overridden if needed: see the
+&lsquo;R Installation and Administration&rsquo; manual.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>beta(a, b)</code> could overflow to infinity in its
+calculations when one of <code>a</code> and <code>b</code> was less than one.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15075">PR#15075</a>)
+</p>
+</li>
+<li> <p><code>lbeta(a, b)</code> no longer gives <code>NaN</code> if <code>a</code> or
+<code>b</code> is very small (in the denormalized range).
+</p>
+</li>
+<li> <p><code>bquote()</code> is now able to substitute default arguments in
+single-argument functions.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15077">PR#15077</a>)
+</p>
+</li>
+<li> <p><code>browseEnv(html = FALSE)</code> would segfault if called from
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> (not <code>R.app</code>) on a CRAN-style Mac OS X build of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+</li>
+<li> <p><span class="samp">[[&lt;-</span> for lists (generic vectors) needed to increment
+<code>NAMED</code> count when RHS is used more than once. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15098">PR#15098</a>)
+</p>
+</li>
+<li><p> On Windows, warnings about opening a file or pipe with a
+non-ASCII description were sometimes output in UTF-8 rather than
+in the current locale's character set.
+</p>
+</li>
+<li><p> The <code>call()</code> function did not duplicate its arguments.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15115">PR#15115</a>)
+</p>
+</li>
+<li> <p><code>TukeyHSD()</code> could give <code>NA</code> results with some
+<span class="samp">na.action</span> methods such as <code>na.exclude()</code>.
+(Hinted at on R-help by John Fox.)
+</p>
+</li>
+<li><p> The deprecated <code>svd(X, LINPACK = TRUE)</code> could alter
+<code>X</code> in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.15.[12].  (Reported by Bill Dunlap.)
+</p>
+</li>
+<li><p> Under Windows, <code>file.link()</code> and <code>file.symlink()</code>
+used the link name twice, so would always fail. (Reported
+by Rui Barradas/Oliver Soong).
+</p>
+</li>
+<li> <p><code>summaryRprof(memory = "both")</code> mixed up the units of
+Vcells and Ncells: it now works in bytes.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15138">PR#15138</a>)
+</p>
+</li>
+<li> <p><code>tools::Rd2HTML()</code> would sometimes delete text. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15134">PR#15134</a>)
+</p>
+</li>
+<li> <p><code>plot()</code> failed for <code>"table"</code> objects containing
+just one entry.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15118">PR#15118</a>)
+</p>
+</li>
+<li> <p><code>embedFonts()</code> needed to quote some filepaths.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15149">PR#15149</a>)
+</p>
+</li>
+<li> <p><code>parallel::mccollect()</code> handled <code>NULL</code> returns
+incorrectly (removing the element rather than setting it to
+<code>NULL</code>).
+</p>
+</li>
+<li><p> The full reference index (&lsquo;<span class="file">fullrefman.pdf</span>&rsquo;) was missing
+packages <span class="pkg">compiler</span> and <span class="pkg">parallel</span>.
+</p>
+</li>
+<li><p> The report for
+<code>optim(method = "L-BFGS-B", control = list(trace = 1))</code>
+reported the last completed and not the current iteration, unlike
+other methods and trace levels.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15103">PR#15103</a>)
+</p>
+</li>
+<li> <p><code>qt(1e-12, 1.2)</code> no longer gives <code>NaN</code>.
+</p>
+</li>
+<li> <p><code>dt(1e160, 1.2, log=TRUE)</code> no longer gives <code>-Inf</code>.
+</p>
+</li>
+<li><p> On Windows the <code>untar()</code> function now quotes the
+directory name when using an external <code>tar</code> utility, so
+<code>R CMD check</code> will handle pathnames containing spaces.
+</p>
+</li>
+<li><p> The version for Windows 8 and Windows Server 2012 is now
+displayed by <code>win.version()</code>.  (Reported by Gabor
+Grothendieck.)
+</p>
+</li>
+<li><p> The custom Windows installer target <code>myR</code> in the
+installer &lsquo;<span class="file">Makefile</span>&rsquo; did not work in 2.15.2.  (Reported
+by Erich Neuwirth.)
+</p>
+</li>
+<li> <p><code>aperm(matrix(1:6, 2, dimnames=list(A={}, B={})), "A")</code>
+no longer segfaults.
+</p>
+</li>
+<li><p> Expressions involving user defined operators were not
+always deparsed faithfully. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15179">PR#15179</a>)
+</p>
+</li>
+<li><p> The <code>enc2utf8()</code> function converted <code>NA_character_</code>
+to <code>"NA"</code> in non-UTF-8 locales. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15201">PR#15201</a>)
+</p>
+</li>
+<li><p> The <code>exclude</code> argument to <code>xtabs()</code> was ignored
+for <code>"factor"</code> arguments.
+</p>
+</li>
+<li><p> On Windows, work around an event-timing problem when
+the RGui console was closed from the &lsquo;X&rsquo; control and the closure
+cancelled. (This would on some 64-bit systems crash <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, typically
+those with a slow GPU relative to the CPU.)
+</p>
+</li>
+<li><p> On unix <code>Rscript</code> will pass the <code>r_arch</code> setting
+it was compiled with on to the R process so that the architecture
+of <code>Rscript</code> and that of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> will match unless overridden.
+</p>
+</li>
+<li><p> On Windows, <code>basename()</code>, <code>dirname()</code> and
+<code>file.choose()</code> have more support for long non-ASCII file
+names with 260 or more bytes when expressed in UTF-8.
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.15.2</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> The <code>X11()</code> window gains an icon: the
+latter may be especially useful on Ubuntu's &lsquo;Unity&rsquo;
+interface.
+</p>
+<p>The <code>WM_CLASS</code> should be set in circumstances where the
+Window Manager failed to make use of X11 resource settings.
+</p>
+<p>(Contributed by Philip Johnson.)
+</p>
+</li>
+<li><p> The <code>"Date"</code> and <code>"POSIXt"</code> methods for
+<code>cut()</code> will accept an unsorted <code>breaks</code> argument (as
+the default method does, although this was undocumented).
+(Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14961">PR#14961</a>.)
+</p>
+</li>
+<li><p> Reference class methods (in the <span class="pkg">methods</span> package) that
+use other methods in an indirect way (e.g., by <code>sapply()</code>)
+must tell the code analysis to include that method.  They can now
+do so by invoking <code>$usingMethods()</code>. 
+</p>
+</li>
+<li><p> More Polish translations are available: for the
+<code>RGui</code> menus and for several recommended packages.
+</p>
+</li>
+<li><p> Multistratum MANOVA works. In fact, it seems to have done so
+for years in spite of the help page claiming it did not.
+</p>
+</li>
+<li> <p><code>qqline()</code> has new optional arguments
+<code>distribution</code>, <code>probs</code> and <code>qtype</code>, following the
+example of <a href="https://CRAN.R-project.org/package=lattice"><span class="pkg">lattice</span></a>'s <code>panel.qqmathline()</code>.
+</p>
+</li>
+<li><p> The handling of single quotes in the <code>en@quot</code>
+pseudo-language has been slightly improved.  Double quotes are no
+longer converted.
+</p>
+</li>
+<li><p> New functions <code>checkPoFiles()</code> and <code>checkPoFile()</code>
+have been added to the <span class="pkg">tools</span> package to check for
+consistency of format strings in translation files.
+</p>
+</li>
+<li> <p><code>model.matrix(~1, ...)</code> now also contains the same
+rownames that less trivial formulae produce.  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14992">PR#14992</a>,
+changes the output of several packages.)
+</p>
+</li>
+<li><p> Misuse of <code>rep()</code> on undocumented types of objects
+(e.g., calls) is now reported as an error.
+</p>
+</li>
+<li><p> The included LAPACK has been updated to 3.4.1, with some
+patches from the current SVN sources.  (<em>Inter alia</em>, this
+resolves <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14692">PR#14692</a>.)
+</p>
+</li>
+<li> <p><code>file.copy(recursive = TRUE)</code> has some additional
+checks on user error leading to attempted infinite recursion (and on
+some platforms to crashing <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>).
+</p>
+</li>
+<li><p> PCRE has been updated to version 8.31, a bug-fix release.
+</p>
+</li>
+<li><p> The included version of <code>liblzma</code> has been updated to
+version 5.0.4, a minor bug-fix release.
+</p>
+</li>
+<li><p> New function <code>.bincode()</code>, a &lsquo;bare-bones&rsquo;
+version of <code>cut.default(labels = FALSE)</code> for use in packages
+with <code>image()</code> methods.
+</p>
+</li>
+<li><p> The HTML manuals now use directional single quotes.
+</p>
+</li>
+<li> <p><code>maintainer()</code> now converts embedded new lines to
+spaces.  It no longer gives a non-obvious error for non-installed
+packages.
+</p>
+</li>
+<li><p> The <code>X11()</code> device has some protection against
+being used with forked processes <em>via</em> package <span class="pkg">parallel</span>.
+</p>
+</li>
+<li><p> Setting the environment variable <span class="env">R_OSX_VALGRIND</span> (to
+any value) allows <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> to be run under <code>valgrind</code> on Mac OS
+10.6 and 10.7 (<code>valgrind</code> currently has very limited
+support for 10.8), provided <code>system()</code> is not used (directly
+or indirectly).  This should not be needed for <code>valgrind</code>
+&gt;= 3.8.1.
+</p>
+</li>
+<li><p> The <code>model.frame()</code> method for <code>"lm"</code> uses
+<code>xlevels</code>: this is safer if <code>data</code> was supplied or
+<code>model = FALSE</code> was used and the levels of factors used in
+the fit had been re-ordered since fitting.
+</p>
+<p>Similarly, <code>model.frame(fm, data=&lt;data&gt;)</code> copies across
+the variables used for safe prediction from the fit.
+</p>
+</li>
+<li><p> Functions such as <code>parLapply()</code> in package
+<span class="pkg">parallel</span> can make use of a default cluster if one is set.
+(Reported by Martin Morgan.)
+</p>
+</li>
+<li> <p><code>chol(pivot = TRUE, LINPACK = FALSE)</code> is now available
+using LAPACK 3.2 subroutine <code>DPSTRF</code>.
+</p>
+</li>
+<li><p> The functions <code>.C()</code>, <code>.Call()</code>,
+<code>.External()</code> and <code>.Fortran()</code> now check that they are
+called with an unnamed first argument: the formal arguments were
+changed from <code>name=</code> to <code>.NAME=</code> in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0, but some
+packages were still using the old name.  This is currently a
+warning, but will be an error in future.
+</p>
+</li>
+<li> <p><code>step()</code> no longer tries to improve a model with
+AIC of <code>-Inf</code> (a perfect fit).
+</p>
+</li>
+<li> <p><code>spline()</code> and <code>splinefun()</code> gain a new method
+<code>"hyman"</code>, an implementation of Hyman's method of
+constructing monotonic interpolation splines.  (Based on
+contributions of Simon Wood and Rob Hyndman.)
+</p>
+</li>
+<li><p> On Windows, the C stack size has been increased to 64MB (it
+has been 10MB since the days of 32MB RAM systems).
+</p>
+</li></ul>
+
+
+
+
+<h4>PERFORMANCE IMPROVEMENTS</h4>
+
+
+<ul>
+<li> <p><code>array()</code> is now implemented in C code (for speed) when
+<code>data</code> is atomic or an unclassed list (so it is known that
+<code>as.vector(data)</code> will have no class to be used by <code>rep()</code>).
+</p>
+</li>
+<li> <p><code>rep()</code> is faster and uses less memory,
+substantially so in some common cases (e.g., if <code>times</code> is of
+length one or <code>length.out</code> is given, and <code>each = 1</code>).
+</p>
+</li>
+<li> <p><code>findInterval()</code>, <code>tabulate()</code>, <code>cut()</code>,
+<code>hist()</code> and <code>image.default()</code> all use <code>.Call()</code>
+and are more efficient.
+</p>
+</li>
+<li> <p><code>duplicated()</code>, <code>unique()</code> and similar now
+support vectors of lengths above <i>2^29</i> on 64-bit
+platforms.
+</p>
+</li>
+<li><p> Omitting <code>PACKAGE</code> in <code>.C()</code> etc calls was
+supposed to make use of the DLL from the namespace within which
+the enclosing function was defined.  It was less successful in
+doing so than it might be, and gave no indication it had failed.
+</p>
+<p>A new search strategy is very successful and gives a warning
+when it fails.  In most cases this is because the entry point is
+not actually provided by that package (and so <code>PACKAGE</code>
+should be used to indicate which package is intended) but in some
+the namespace does not have a DLL specified by a
+<code>useDynLib()</code> directive so <code>PACKAGE</code> is required.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD check</code> now checks if a package can be loaded
+by <code>library(pkgname, lib.loc = "somewhere")</code> without being on
+the library search path (unless it is already installed in
+<code>.Library</code>, when it always will be).
+</p>
+</li>
+<li> <p><code>R CMD check --as-cran</code> notes &lsquo;hidden&rsquo; files
+and directories (with names starting with a dot) that are not
+needed for the operation of <code>R CMD INSTALL</code> or <code>R CMD
+	build</code>: such files should be excluded from the published tarball.
+</p>
+</li>
+<li> <p><code>R CMD check</code> (if checking subdirectories) checks
+that the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code in any demos is ASCII and can be parsed, and
+warns if not.
+</p>
+</li>
+<li><p> When <code>R CMD Rd2pdf</code> is used with &lsquo;<span class="file">inputenx.sty</span>&rsquo;,
+it allows further characters (mainly for Eastern European
+languages) by including &lsquo;<span class="file">ix-utf8enc.dfu</span>&rsquo; (if available).
+(Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14989">PR#14989</a>.)
+</p>
+</li>
+<li> <p><code>R CMD build</code> now omits several types of hidden
+files/directories, including &lsquo;<span class="file">inst/doc/.Rinstignore</span>&rsquo;,
+&lsquo;<span class="file">vignettes/.Rinstignore</span>&rsquo;, (&lsquo;<span class="file">.Rinstignore</span>&rsquo; should be at
+top level), &lsquo;<span class="file">.deps</span>&rsquo; under &lsquo;<span class="file">src</span>&rsquo;, &lsquo;<span class="file">.Renviron</span>&rsquo;,
+&lsquo;<span class="file">.Rprofile</span>&rsquo;, &lsquo;<span class="file">.Rproj.user</span>&rsquo;, &lsquo;<span class="file">.backups</span>&rsquo;,
+&lsquo;<span class="file">.cvsignore</span>&rsquo;, &lsquo;<span class="file">.cproject</span>&rsquo;, &lsquo;<span class="file">.directory</span>&rsquo;,
+&lsquo;<span class="file">.dropbox</span>&rsquo;, &lsquo;<span class="file">.exrc</span>&rsquo;, &lsquo;<span class="file">.gdb.history</span>&rsquo;,
+&lsquo;<span class="file">.gitattributes</span>&rsquo;, &lsquo;<span class="file">.gitignore</span>&rsquo;, &lsquo;<span class="file">.gitmodules</span>&rsquo;,
+&lsquo;<span class="file">.hgignore</span>&rsquo;, &lsquo;<span class="file">.hgtags</span>&rsquo;, &lsquo;<span class="file">.htaccess</span>&rsquo;,
+&lsquo;<span class="file">.latex2html-init</span>&rsquo;, &lsquo;<span class="file">.project</span>&rsquo;, &lsquo;<span class="file">.seed</span>&rsquo;,
+&lsquo;<span class="file">.settings</span>&rsquo;, &lsquo;<span class="file">.tm_properties</span>&rsquo; and various leftovers.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now checks for <code>.C()</code>,
+<code>.Call()</code>, <code>.External()</code> and <code>.Fortran()</code> calls in
+other packages, and gives a warning on those found from <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself
+(which are not part of the API and change without notice: many
+will be changed for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0).
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li><p> The limit for <code>R_alloc</code> on 64-bit platforms has been
+raised to just under 32GB (from just under 16GB).
+</p>
+</li>
+<li><p> The misuse of <code>.C("name", ..., PACKAGE = foo)</code> where
+<code>foo</code> is an arbitrary <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> object is now an error.
+</p>
+<p>The misuse <code>.C("name",..., PACKAGE = "")</code> is now warned about
+in <code>R CMD check</code>, and will be an error in future.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li><p> Use of <code>array()</code> with a 0-length <code>dim</code> argument is
+deprecated with a warning (and was contrary to the documentation).
+</p>
+</li>
+<li><p> Use of <code>tapply()</code> with a 0-length <code>INDEX</code> list is
+deprecated with a warning.
+</p>
+</li>
+<li> <p><span class="samp">Translation</span> packages are deprecated.
+</p>
+</li>
+<li><p> Calling <code>rep()</code> or <code>rep.int()</code> on a pairlist is
+deprecated and will give a warning.  In any case, <code>rep()</code>
+converted a pairlist to a list so you may as well do that
+explicitly.
+</p>
+</li>
+<li><p> Entry point <code>rcont2</code> is no longer part of the API, and
+will move to package <span class="pkg">stats</span> in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0.
+</p>
+</li>
+<li><p> The &lsquo;internal&rsquo; graphics device invoked by
+<code>.Call("R_GD_nullDevice", package = "grDevices")</code> is about to
+be removed: use <code>pdf(file = NULL)</code> instead.
+</p>
+</li>
+<li> <p><code>eigen(EISPACK = TRUE)</code>,
+<code>chol(pivot = FALSE, LINPACK = TRUE)</code>,
+<code>chol2inv(LINPACK = TRUE)</code>, <code>solve(LINPACK = TRUE)</code> and
+<code>svd(LINPACK = TRUE)</code> are deprecated and give a warning.
+</p>
+<p>They were provided for compatibility with <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 1.7.0 (Mar 2003)!
+</p>
+</li>
+<li><p> The &lsquo;internal function&rsquo; <code>kappa.tri()</code> has been
+renamed to <code>.kappa_tri()</code> so it is not inadvertently called
+as a method for class <code>"tri"</code>.
+</p>
+</li>
+<li><p> Functions <code>sessionData()</code> and <code>browseAll()</code> in
+package <span class="pkg">methods</span> are on a help page describing them as
+&lsquo;deprecated&rsquo; and are now formally deprecated.
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li><p> For a Windows or Mac OS X binary package install,
+<code>install.packages()</code> will check if a source package is
+available on the same repositories, and report if it is a later
+version or there is a source package but no binary package
+available.
+</p>
+<p>This check can be suppressed: see the help page.
+</p>
+</li>
+<li> <p><code>install.packages(type = "both")</code> has been enhanced.
+In interactive use it will ask whether to choose the source
+version of a package if the binary version is older and contains
+compiled code, and also asks if source packages with no binary
+version should be installed).
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> There is a new <code>configure</code> option
+<span class="option">--with-libtiff</span> (mainly in case the system installation
+needs to be avoided).
+</p>
+</li>
+<li><p> LAPACK 3.4.1 does use some Fortran 90 features, so
+<code>g77</code> no longer suffices.
+</p>
+</li>
+<li><p> If an external LAPACK is used, it must be version 3.2 or later.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> On Windows, starting <code>Rterm</code> via <code>R.exe</code>
+caused Ctrl-C to misbehave.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14948">PR#14948</a>)
+</p>
+</li>
+<li><p> The <code>tools::latexToUtf8()</code> function missed conversions that
+were contained within braces.
+</p>
+</li>
+<li><p> Long timezone specifications (such as a file name preceded
+by <code>:</code>) could crash <code>as.POSIXlt</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14945">PR#14945</a>)
+</p>
+</li>
+<li> <p><code>R CMD build --resave-data</code> could fail if there was no
+&lsquo;<span class="file">data</span>&rsquo; directory but there was an &lsquo;<span class="file">R/sysdata.rda</span>&rsquo; file.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14947">PR#14947</a>)
+</p>
+</li>
+<li> <p><code>is.na()</code> misbehaved on a 0-column data frame.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14959">PR#14959</a>)
+</p>
+</li>
+<li> <p><code>anova.lmlist()</code> failed if <code>test</code> was
+supplied.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14960">PR#14960</a>)
+</p>
+<p>It was unable to compute Cp tests for object of class <code>"lm"</code>
+(it assumed class <code>"glm"</code>).
+</p>
+</li>
+<li><p> The <code>formula</code> method for <code>sunflowerplot()</code> now
+allows <code>xlab</code> and <code>ylab</code> to be set.  (Reported by Gerrit
+Eichner.)
+</p>
+</li>
+<li><p> The <code>"POSIXt"</code> and <code>"Date"</code> methods for <code>hist()</code>
+could fail on Windows where adjustments to the right-hand boundary
+crossed a DST transition time.
+</p>
+</li>
+<li><p> On Windows, the code in <code>as.POSIXct()</code> to handle
+incorrectly specified <code>isdst</code> fields might have resulted in
+<code>NA</code> being returned.
+</p>
+</li>
+<li> <p><code>aov()</code> and <code>manova()</code> gave spurious warning about
+singular error model in the multiresponse case.
+</p>
+</li>
+<li><p> In <code>ns()</code> and <code>bs()</code>, specifying <code>knots = NULL</code>
+is now equivalent to omitting it, also when <code>df</code> is
+specified.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14970">PR#14970</a>)
+</p>
+</li>
+<li> <p><code>sprintf()</code> did not accept numbered arguments ending
+in zero.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14975">PR#14975</a>)
+</p>
+</li>
+<li> <p><code>rWishart()</code> could overflow the C stack and maybe crash
+the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process for dimensions of several hundreds or more.
+(Reported by Michael Braun on R-sig-mac.)
+</p>
+</li>
+<li><p> Base package vignettes (e.g., <code>vignette("Sweave")</code>) were
+not fully installed in builds of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> from the tarball.
+</p>
+</li>
+<li> <p><code>lchoose()</code> and <code>choose()</code> could overflow the C
+stack and crash <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+</li>
+<li><p> When given a 0-byte file and asked to keep source
+references, <code>parse()</code> read input from <code>stdin()</code>
+instead.
+</p>
+</li>
+<li> <p><code>pdf(compress = TRUE)</code> did not delete temporary files
+it created until the end of the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14991">PR#14991</a>)
+</p>
+</li>
+<li> <p><code>logLik()</code> did not detect the error of applying it
+to a multiple-response linear model.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15000">PR#15000</a>)
+</p>
+</li>
+<li> <p><code>file.copy(recursive = TRUE)</code> did not always report
+<code>FALSE</code> for a failure two or more directories deep.
+</p>
+</li>
+<li> <p><code>qgeom()</code> could return <code>-1</code> for extremely small
+<code>q</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14967">PR#14967</a>)
+</p>
+</li>
+<li> <p><code>smooth.spline()</code> used <code>DUP = FALSE</code> which allowed
+its compiled C code to change the function: this was masked by the
+default byte-compilation. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14965">PR#14965</a>)
+</p>
+</li>
+<li><p> In Windows, the GUI preferences for foreground color were
+not always respected.  (Reported by Benjamin Wells.)
+</p>
+</li>
+<li><p> On OS X, the Quartz versions of the bitmap devices did not
+respect <code>antialias = "none"</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15006">PR#15006</a>)
+</p>
+</li>
+<li> <p><code>unique()</code> and similar would infinite-loop if called on
+a vector of length &gt; <i>2^29</i> (but reported that the
+vector was too long for <i>2^30</i> or more).
+</p>
+</li>
+<li> <p><code>parallel::stopCluster()</code> now works with MPI
+clusters without <a href="https://CRAN.R-project.org/package=snow"><span class="pkg">snow</span></a> being on the search path.
+</p>
+</li>
+<li> <p><code>terms.formula()</code> could exhaust the stack, and the
+stack check did not always catch this before the segfault.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15013">PR#15013</a>)
+</p>
+</li>
+<li> <p><code>sort.list(method = "radix")</code> could give incorrect
+results on certain compilers (seen with <code>clang</code> on Mac OS
+10.7 and <code>Xcode 4.4.1</code>).
+</p>
+</li>
+<li> <p><code>backsolve(T, b)</code> gave incorrect results when
+<code>nrows(b) &gt; ncols(T)</code> and <code>b</code> had more than one column.
+</p>
+<p>It could segfault or give nonsense if <code>k</code> was specified as
+more than <code>ncols(T)</code>.
+</p>
+</li>
+<li> <p><code>smooth.spline()</code> did not check that a specified
+numeric <code>spar</code> was of length 1, and gave corrupt results if
+it was of length 0.
+</p>
+</li>
+<li><p> Protection added to <code>do_system</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15025">PR#15025</a>)
+</p>
+</li>
+<li><p> Printing of vectors with names &gt; 1000 characters now works
+correctly rather than truncating. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15028">PR#15028</a>)
+</p>
+</li>
+<li> <p><code>qr()</code> for a complex matrix did not pivot the column names.
+</p>
+</li>
+<li> <p><code>--with-blas='-framework vecLib'</code> now also works on OS X 10.8.
+</p>
+</li>
+<li> <p><code>R CMD check</code> no longer fails with an error if
+a &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file incorrectly contains a blank line.
+(Reported by Bill Dunlap.)
+</p>
+</li>
+<li> <p><code>install.packages(type = "both")</code> could call
+<code>chooseCRANmirror()</code> twice.
+</p>
+</li>
+<li> <p><code>lm.wfit()</code> could segfault in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.15.1 if all the
+weights were zero. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15044">PR#15044</a>)
+</p>
+</li>
+<li><p> A malformed package name could cause <code>R CMD INSTALL</code>
+to write outside the target library.
+</p>
+</li>
+<li><p> Some of the quality control functions
+(e.g., <code>tools::checkFF()</code>) were wrongly identifying the source
+of S4 methods in a package and so not checking them.
+</p>
+</li>
+<li><p> The default type of display by <code>browseEnv()</code> when using
+<code>R.app</code> on Mac OS X has been incorrect for a long time.
+</p>
+</li>
+<li><p> The implementation of <code>importMethodsFrom</code> in a
+<code>NAMESPACE</code> file could be confused and fail to find generics
+when importing from multiple packages (reported and fixed by
+Michael Lawrence).
+</p>
+</li>
+<li><p> The detection of the C stack direction is better protected
+against compiler optimization. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15011">PR#15011</a>)
+</p>
+</li>
+<li><p> Long custom line types would sometimes segfault on the
+cairographics-based devices. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15055">PR#15055</a>)
+</p>
+</li>
+<li> <p><code>tools::checkPoFile()</code> unprotected too early in its C
+code and so segfaulted from time to time.
+</p>
+</li>
+<li><p> The Fortran code underlying <code>nlminb()</code> could
+infinite-loop if any of the input functions returned <code>NA</code> or
+<code>NaN</code>.  This is now an error for the gradient or Hessian, and
+a warning for the function (with the value replaced by
+<code>Inf</code>).  (In part, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15052">PR#15052</a>.)
+</p>
+</li>
+<li><p> The code for creating <code>coerce()</code> methods could
+generate false notes about ambiguous selection; the notes have
+been suppressed for this function.
+</p>
+</li>
+<li> <p><code>arima.sim()</code> could give too long an output in some
+corner cases (in part, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15068">PR#15068</a>).
+</p>
+</li>
+<li> <p><code>anova.glm()</code> with <code>test = "Rao"</code> didn't work when
+models included an offset. (Reported by Søren Feodor Nielsen.)
+</p>
+</li>
+<li> <p><code>as.data.frame.matrix()</code> could return invalid data
+frame with no <code>row.names</code> attribute for 0-row matrix. (Reported
+by Hervé Pagès.)
+</p>
+</li>
+<li><p> Compilation with the <code>vecLib</code> or <code>Accelerate</code>
+frameworks on OS X without using that also for LAPACK is more
+likely to be successful.
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.15.1</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>source()</code> now uses <code>withVisible()</code> rather than
+<code>.Internal(eval.with.vis)</code>.  This sometimes alters tracebacks
+slightly.
+</p>
+</li>
+<li> <p><code>install.packages("pkg_version.tgz")</code> on Mac OS X now
+has sanity checks that this is actually a binary package (as
+people have tried it with incorrectly named source packages).
+</p>
+</li>
+<li> <p><code>splineDesign()</code> and <code>spline.des()</code> in package
+<span class="pkg">splines</span> have a new option <code>sparse</code> which can be used
+for efficient construction of a sparse B-spline design matrix
+(<em>via</em> <a href="https://CRAN.R-project.org/package=Matrix"><span class="pkg">Matrix</span></a>).
+</p>
+</li>
+<li> <p><code>norm()</code> now allows <code>type = "2"</code> (the
+&lsquo;spectral&rsquo; or 2-norm) as well, mainly for didactical
+completeness.
+</p>
+</li>
+<li> <p><code>pmin()</code> and <code>pmax())</code> now also work when one of
+the inputs is of length zero and others are not, returning a
+zero-length vector, analogously to, say, <code>+</code>.
+</p>
+</li>
+<li> <p><code>colorRamp()</code> (and hence <code>colorRampPalette()</code>) now
+also works for the boundary case of just one color when the ramp is
+flat.
+</p>
+</li>
+<li> <p><code>.C()</code> gains some protection against the misuse of
+character vector arguments.  (An all too common error is to pass
+<code>character(N)</code>, which initializes the elements to <code>""</code>,
+and then attempt to edit the strings in-place, sometimes forgetting
+to terminate them.)
+</p>
+</li>
+<li><p> Calls to the new function <code>globalVariables()</code> in
+package <span class="pkg">utils</span> declare that functions and other objects in a
+package should be treated as globally defined, so that <code>CMD
+      check</code> will not note them.
+</p>
+</li>
+<li> <p><code>print(packageDescription(*))</code> trims the <code>Collate</code>
+field by default.
+</p>
+</li>
+<li><p> The included copy of <code>zlib</code> has been updated to version
+1.2.7.
+</p>
+</li>
+<li><p> A new option <code>"show.error.locations"</code> has been added.
+When set to <code>TRUE</code>, error messages will contain the
+location of the most recent call containing source reference
+information. (Other values are supported as well; see
+<code>?options</code>.)
+</p>
+</li>
+<li><p> The NA warning messages from e.g. <code>pchisq()</code> now report
+the call to the closure and not that of the <code>.Internal</code>.
+</p>
+</li>
+<li><p> Added Polish translations by Łukasz Daniel.
+</p>
+</li></ul>
+
+
+
+
+<h4>PERFORMANCE IMPROVEMENTS</h4>
+
+
+<ul>
+<li><p> In package <span class="pkg">parallel</span>, <code>makeForkCluster()</code> and the
+multicore-based functions use native byte-order for serialization
+(deferred from 2.15.0).
+</p>
+</li>
+<li> <p><code>lm.fit()</code>, <code>lm.wfit()</code>, <code>glm.fit()</code> and
+<code>lsfit()</code> do less copying of objects, mainly by using
+<code>.Call()</code> rather than <code>.Fortran()</code>.
+</p>
+</li>
+<li> <p><code>.C()</code> and <code>.Fortran()</code> do less copying: arguments
+which are raw, logical, integer, real or complex vectors and are
+unnamed are not copied before the call, and (named or not) are not
+copied after the call.  Lists are no longer copied (they are
+supposed to be used read-only in the C code).
+</p>
+</li>
+<li> <p><code>tabulate()</code> makes use of <code>.C(DUP = FALSE)</code> and
+hence does not copy <code>bin</code>.  (Suggested by Tim Hesterberg.)
+It also avoids making a copy of a factor argument <code>bin</code>.
+</p>
+</li>
+<li><p> Other functions (often or always) doing less copying include
+<code>cut()</code>, <code>dist()</code>, the complex case of <code>eigen()</code>,
+<code>hclust()</code>, <code>image()</code>, <code>kmeans()</code>, <code>loess()</code>,
+<code>stl()</code> and <code>svd(LINPACK = TRUE)</code>.
+</p>
+</li>
+<li><p> There is less copying when using primitive replacement
+functions such as <code>names()</code>, <code>attr()</code> and
+<code>attributes()</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li><p> The converters for use with <code>.C()</code> (see
+<code>?getCConverterDescriptions</code>) are deprecated: use the
+<code>.Call()</code> interface instead.  There are no known examples
+(they were never fully documented).
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li><p> For <code>R CMD check</code>, a few people have reported
+problems with junctions on Windows (although they were tested on
+Windows 7, XP and Server 2008 machines and it is unknown under
+what circumstances the problems occur).  Setting the environment
+variable <span class="env">R_WIN_NO_JUNCTIONS</span> to a non-empty value (e.g., in
+&lsquo;<span class="file">~/.R/check.Renviron</span>&rsquo;) will force copies to be used instead.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li> <p><code>R CMD INSTALL</code> with <span class="env">_R_CHECK_INSTALL_DEPENDS_</span>
+set to a true value (as done by <code>R CMD check --as-cran</code>)
+now restricts the packages available when lazy-loading as well
+as when test-loading (since packages such as <a href="https://CRAN.R-project.org/package=ETLUtils"><span class="pkg">ETLUtils</span></a>
+and <a href="https://CRAN.R-project.org/package=agsemisc"><span class="pkg">agsemisc</span></a> had top-level calls to <code>library()</code>
+for undeclared packages).
+</p>
+<p>This check is now also available on Windows.
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li><p> C entry points <code>mkChar</code> and <code>mkCharCE</code> now check
+that the length of the string they are passed does not exceed
+<i>2^31-1</i> bytes: they used to overflow with
+unpredictable consequences.
+</p>
+</li>
+<li><p> C entry points <code>R_GetCurrentSrcref</code> and
+<code>R_GetSrcFilename</code> have been added to the API to allow
+debuggers access to the source references on the stack.
+</p>
+</li></ul>
+
+
+
+
+<h4>WINDOWS-SPECIFIC CHANGES</h4>
+
+
+<ul>
+<li><p> Windows-specific changes will now be announced in this file
+(&lsquo;<span class="file">NEWS</span>&rsquo;).  Changes up and including <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.15.0 remain in the
+&lsquo;<span class="file">CHANGES</span>&rsquo; file.
+</p>
+</li>
+<li><p> There are two new environment variables which
+control the defaults for command-line options.
+</p>
+<p>If <span class="env">R_WIN_INTERNET2</span> is set to a non-empty value, it is as if
+<span class="option">--internet2</span> was used.
+</p>
+<p>If <span class="env">R_MAX_MEM_SIZE</span> is set, it gives the default memory limit
+if <span class="option">--max-mem-size</span> is not specified: invalid values being
+ignored.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>lsfit()</code> lost the names from the residuals.
+</p>
+</li>
+<li><p> More cases in which <code>merge()</code> could create a data frame
+with duplicate column names now give warnings.  Cases where
+names specified in <code>by</code> match multiple columns are errors.
+</p>
+</li>
+<li><p> Nonsense uses such as <code>seq(1:50, by = 5)</code> (from package
+<a href="https://CRAN.R-project.org/package=plotrix"><span class="pkg">plotrix</span></a>) and <code>seq.int(1:50, by = 5)</code> are now errors.
+</p>
+</li>
+<li><p> The residuals in the 5-number summary printed by
+<code>summary()</code> on an <code>"lm"</code> object are now explicitly
+labelled as weighted residuals when non-constant weights are
+present.  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14840">PR#14840</a>.)
+</p>
+</li>
+<li> <p><code>tracemem()</code> reported that all objects were copied
+by <code>.C()</code> or <code>.Fortran()</code> whereas only some object types
+were ever copied.
+</p>
+<p>It also reported and marked as copies <em>some</em> transformations
+such as <code>rexp(n, x)</code>: it no longer does so.
+</p>
+</li>
+<li><p> The <code>plot()</code> method for class <code>"stepfun"</code> only
+used the optional <code>xval</code> argument to compute <code>xlim</code> and
+not the points at which to plot (as documented).  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14864">PR#14864</a>)
+</p>
+</li>
+<li><p> Names containing characters which need to be escaped were
+not deparsed properly.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14846">PR#14846</a>)
+</p>
+</li>
+<li><p> Trying to update (recommended) packages in
+&lsquo;<span class="file">R_HOME/library</span>&rsquo; without write access is now dealt with more
+gracefully.  Further, such package updates may be skipped (with a
+warning), when a newer installed version is already going to be
+used from <code>.libPaths()</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14866">PR#14866</a>)
+</p>
+</li>
+<li> <p><code>hclust()</code> is now fast again (as up to end of 2003),
+with a different fix for the &quot;median&quot;/&quot;centroid&quot; problem.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=4195">PR#4195</a>).
+</p>
+</li>
+<li> <p><code>get_all_vars()</code> failed when the data came entirely
+from vectors in the global environment. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14847">PR#14847</a>)
+</p>
+</li>
+<li> <p><code>R CMD check</code> with <span class="env">_R_CHECK_NO_RECOMMENDED_</span>
+set to a true value (as done by the <code>--as-cran</code> option)
+could issue false errors if there was an indirect dependency
+on a recommended package.
+</p>
+</li>
+<li> <p><code>formatC()</code> uses the C entry point <code>str_signif</code>
+which could write beyond the length allocated for the output string.
+</p>
+</li>
+<li><p> Missing default argument added to implicit S4 generic for
+<code>backsolve()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14883">PR#14883</a>)
+</p>
+</li>
+<li><p> Some bugs have been fixed in handling load actions that
+could fail to export assigned items or generate spurious warnings
+in <code>CMD check</code> on loading.
+</p>
+</li>
+<li><p> For <code>tiff(type = "windows")</code>, the numbering of per-page
+files except the last was off by one.
+</p>
+</li>
+<li><p> On Windows, loading package <span class="pkg">stats</span> (which is done for
+a default session) would switch line endings on &lsquo;<span class="file">stdout</span>&rsquo;
+and &lsquo;<span class="file">stderr</span>&rsquo; from CRLF to LF.  This affected
+<code>Rterm</code> and <code>R CMD BATCH</code>.
+</p>
+</li>
+<li><p> On Windows, the compatibility function <code>x11()</code> had
+not kept up with changes to <code>windows()</code>, and issued
+warnings about bad parameters. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14880">PR#14880</a>)
+</p>
+</li>
+<li><p> On Windows, the <code>Sys.glob()</code> function did not handle
+UNC paths as it was designed to try to do. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14884">PR#14884</a>)
+</p>
+</li>
+<li><p> In package <span class="pkg">parallel</span>, <code>clusterApply()</code> and similar
+failed to handle a (pretty pointless) length-1 argument. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14898">PR#14898</a>)
+</p>
+</li>
+<li><p> Quartz Cocoa display reacted asynchronously to
+<code>dev.flush()</code> which means that the redraw could be performed
+after the plot has been already modified by subsequent code. The
+redraw is now done synchronously in <code>dev.flush()</code> to allow
+animations without sleep cycles.
+</p>
+</li>
+<li><p> Source locations reported in <code>traceback()</code> were
+incorrect when byte-compiled code was on the stack.
+</p>
+</li>
+<li> <p><code>plogis(x, lower = FALSE, log.p = TRUE)</code> no longer
+underflows early for large x (e.g., 800).
+</p>
+</li>
+<li> <p><code>?Arithmetic</code>'s &ldquo;<code>1 ^ y</code> and <code>y ^ 0</code>
+are <code>1</code>, <em>always</em>&rdquo; now also applies for <code>integer</code>
+vectors <code>y</code>.
+</p>
+</li>
+<li><p> X11-based pixmap devices like <code>png(type = "Xlib")</code> were
+trying to set the cursor style, which triggered some warnings and
+hangs.
+</p>
+</li>
+<li><p> Code executed by the built-in HTTP server no longer allows
+other HTTP clients to re-enter <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> until the current worker
+evaluation finishes, to prevent cascades.
+</p>
+</li>
+<li><p> The <code>plot()</code> and <code>Axis()</code> methods for class
+<code>"table"</code> now respect graphical parameters such as
+<code>cex.axis</code>.  (Reported by Martin Becker.)
+</p>
+</li>
+<li><p> Under some circumstances <code>package.skeleton()</code> would
+give out progress reports that could not be translated and so were
+displayed by question marks.  Now they are always in English.
+(This was seen for CJK locales on Windows, but may have occurred
+elsewhere.)
+</p>
+</li>
+<li><p> The evaluator now keeps track of source references outside
+of functions, e.g. when <code>source()</code> executes a script.
+</p>
+</li>
+<li><p> The replacement method for <code>window()</code> now works
+correctly for multiple time series of class <code>"mts"</code>.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14925">PR#14925</a>)
+</p>
+</li>
+<li> <p><code>is.unsorted()</code> gave incorrect results on non-atomic
+objects such as data frames.  (Reported by Matthew Dowle.)
+</p>
+</li>
+<li><p> The value returned by <code>tools::psnice()</code> for invalid
+<code>pid</code> values was not always <code>NA</code> as documented.
+</p>
+</li>
+<li><p> Closing an <code>X11()</code> window while <code>locator()</code> was
+active could abort the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process.
+</p>
+</li>
+<li> <p><code>getMethod(f, sig)</code> produced an incorrect error message
+in some cases when <code>f</code> was not a string).
+</p>
+</li>
+<li><p> Using a string as a &ldquo;call&rdquo; in an error condition
+with <code>options(showErrorCalls=TRUE)</code> could cause a segfault.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14931">PR#14931</a>)
+</p>
+</li>
+<li><p> The string <code>"infinity"</code> allowed by C99 was not accepted
+as a numerical string value by e.g. <code>scan()</code> and
+<code>as.numeric()</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14933">PR#14933</a>)
+</p>
+</li>
+<li><p> In <code>legend()</code>, setting some entries of <code>lwd</code> to
+<code>NA</code> was inconsistent (depending on the graphics device) in
+whether it would suppress those lines; now it consistently does
+so.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14926">PR#14926</a>)
+</p>
+</li>
+<li> <p><code>by()</code> failed for a zero-row data frame.  (Reported by
+Weiqiang Qian.)
+</p>
+</li>
+<li><p> The Yates' correction in <code>chisq.test()</code> could be bigger
+than the terms it corrected, previously leading to an infinite
+test statistic in some corner cases which are now reported as
+<code>NaN</code>.
+</p>
+</li>
+<li> <p><code>xgettext()</code> and related functions sometimes returned
+items that were not strings for translation. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14935">PR#14935</a>)
+</p>
+</li>
+<li> <p><code>plot(&lt;lm&gt;, which=5)</code> now correctly labels the factor
+level combinations for the special case where all
+<i>h[i,i]</i> are the same. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14837">PR#14837</a>)
+</p>
+</li>
+<li> <p><code>Sys.glob()</code> caused a segfault if the first element of
+<code>path</code> was <code>NA_character</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14990">PR#14990</a>)
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.15.0</h3>
+
+
+
+<h4>SIGNIFICANT USER-VISIBLE CHANGES</h4>
+
+
+<ul>
+<li><p> The behaviour of <code>unlink(recursive = TRUE)</code> for a
+symbolic link to a directory has changed: it now removes the link
+rather than the directory contents (just as <code>rm -r</code> does).
+</p>
+<p>On Windows it no longer follows reparse points (including
+junctions and symbolic links).
+</p>
+</li></ul>
+
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> Environment variable <span class="env">RD2DVI_INPUTENC</span> has been renamed
+to <span class="env">RD2PDF_INPUTENC</span>.
+</p>
+</li>
+<li> <p><code>.Deprecated()</code> becomes a bit more flexible, getting an
+<code>old</code> argument.
+</p>
+</li>
+<li><p> Even data-only packages without <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code need a namespace and
+so may need to be installed under <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0 or later.
+</p>
+</li>
+<li> <p><code>assignInNamespace()</code> has further restrictions on use
+apart from at top-level, as its help page has warned.
+Expect it to be disabled from programmatic use in the future.
+</p>
+</li>
+<li> <p><code>system()</code> and <code>system2()</code> when capturing output
+report a non-zero status in the new <code>"status"</code> attribute.
+</p>
+</li>
+<li> <p><code>kronecker()</code> now has an S4 generic in package
+<span class="pkg">methods</span> on which packages can set methods.  It will be
+invoked by <code>X %x% Y</code> if either <code>X</code> or <code>Y</code> is an S4
+object.
+</p>
+</li>
+<li> <p><code>pdf()</code> accepts forms like <code>file = "|lpr"</code> in the
+same way as <code>postscript()</code>.
+</p>
+</li>
+<li> <p><code>pdf()</code> accepts <code>file = NULL</code>.
+This means that the device does NOT create a PDF file
+(but it can still be queried, e.g., for font metric info).
+</p>
+</li>
+<li> <p><code>format()</code> (and hence <code>print()</code>) on
+<code>"bibentry"</code> objects now uses <code>options("width")</code> to
+set the output width.
+</p>
+</li>
+<li> <p><code>legend()</code> gains a <code>text.font</code> argument. (Suggested
+by Tim Paine, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14719">PR#14719</a>.)
+</p>
+</li>
+<li> <p><code>nchar()</code> and <code>nzchar()</code> no longer accept factors
+(as integer vectors).  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=6899">PR#6899</a>.)
+</p>
+</li>
+<li> <p><code>summary()</code> behaves slightly differently (or more
+precisely, its <code>print()</code> method does).  For numeric inputs, the
+number of NAs is printed as an integer and not a real.  For dates
+and datetimes, the number of NAs is included in the printed output
+(the latter being the wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14720">PR#14720</a>).
+</p>
+<p>The <code>"data.frame"</code> method is more consistent with the default
+method: in particular it now applies <code>zapsmall()</code> to
+numeric/complex summaries.
+</p>
+</li>
+<li><p> The number of items retained with <code>options(warn = 0)</code>
+can be set by <code>options(nwarnings=)</code>.
+</p>
+</li>
+<li><p> There is a new function <code>assignInMyNamespace()</code> which
+uses the namespace of the function it is called from.
+</p>
+</li>
+<li> <p><code>attach()</code> allows the default name for an attached file
+to be overridden.
+</p>
+</li>
+<li> <p><code>bxp()</code>, the work horse of <code>boxplot()</code>, now uses a
+more sensible default <code>xlim</code> in the case where <code>at</code> is
+specified differently from <code>1:n</code>, see the discussion on R-devel,
+<a href="https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html">https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html</a>.
+</p>
+</li>
+<li><p> New function <code>paste0()</code>, an efficient version of
+<code>paste(*, sep="")</code>, to be used in many places for more
+concise (and slightly more efficient) code.
+</p>
+</li>
+<li><p> Function <code>setClass()</code> in package <span class="pkg">methods</span> now
+returns, invisibly, a generator function for the new class,
+slightly preferred to calling <code>new()</code>, as explained on the
+<code>setClass</code> help page.
+</p>
+</li>
+<li><p> The <code>"dendrogram"</code> method of <code>str()</code> now takes
+its default for <code>last.str</code> from option <code>str.dendrogram.last</code>.
+</p>
+</li>
+<li><p> New simple <code>fitted()</code> method for <code>"kmeans"</code> objects.
+</p>
+</li>
+<li><p> The <code>traceback()</code> function can now be called with
+an integer argument, to display a current stack trace. (Wish of
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14770">PR#14770</a>.)
+</p>
+</li>
+<li> <p><code>setGeneric()</code> calls can be simplified when creating
+a new generic function by supplying the default method as the
+<code>def</code> argument.  See <code>?setGeneric</code>.
+</p>
+</li>
+<li> <p><code>serialize()</code> has a new option <code>xdr = FALSE</code> which
+will use the native byte-order for binary serializations.  In
+scenarios where only little-endian machines are involved (these
+days, close to universal) and (un)serialization takes an
+appreciable amount of time this may speed up noticeably
+transferring data between systems.
+</p>
+</li>
+<li><p> The internal (un)serialization code is faster for long
+vectors, particularly with XDR on some platforms.  (Based on a
+suggested patch by Michael Spiegel.)
+
+</p>
+</li>
+<li><p> For consistency, circles with zero radius are omitted by
+<code>points()</code> and <code>grid.circle()</code>.  Previously this was
+device-dependent, but they were usually invisible.
+</p>
+</li>
+<li> <p><code>NROW(x)</code> and <code>NCOL(x)</code> now work whenever
+<code>dim(x)</code> looks appropriate, e.g., also for more generalized
+matrices.
+</p>
+</li>
+<li><p> PCRE has been updated to version 8.30.
+</p>
+</li>
+<li><p> The internal <code>R_Srcref</code> variable is now updated
+before the browser stops on entering a function.  (Suggestion of
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14818">PR#14818</a>.)
+</p>
+</li>
+<li><p> There are &lsquo;bare-bones&rsquo; functions <code>.colSums()</code>,
+<code>.rowSums()</code>, <code>.colMeans()</code> and <code>.rowMeans()</code> for
+use in programming where ultimate speed is required.
+</p>
+</li>
+<li><p> The formerly internal function
+<code>.package_dependencies()</code> from package <span class="pkg">tools</span> for
+calculating (recursive) (reverse) dependencies on package databases
+has been renamed to <code>package_dependencies()</code> and is now
+exported.
+</p>
+</li>
+<li><p> There is a new function <code>optimHess()</code> to compute the
+(approximate) Hessian for an <code>optim()</code> solution if
+<code>hessian = TRUE</code> was forgotten.
+</p>
+</li>
+<li> <p><code>.filled.contour()</code> is a &lsquo;bare-bones&rsquo; function to
+add a filled-contour rectangular plot to an already prepared plot
+region.
+</p>
+</li>
+<li><p> The stepping in debugging and single-step browsing modes has
+changed slightly: now left braces at the start of the body are
+stepped over for <code>if</code> statements as well as for <code>for</code> and
+<code>while</code> statements.  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14814">PR#14814</a>.)
+</p>
+</li>
+<li> <p><code>library()</code> no longer warns about a conflict with a
+function from <code>package:base</code> if the function has the same
+code as the base one but with a different environment.  (An
+example is <code>Matrix::det()</code>.)
+</p>
+</li>
+<li><p> When deparsing very large language objects,
+<code>as.character()</code> now inserts newlines after each line of
+approximately 500 bytes, rather than truncating to the first
+line.
+</p>
+</li>
+<li><p> New function <code>rWishart()</code> generates Wishart-distributed
+random matrices.
+</p>
+</li>
+<li><p> Packages may now specify actions to be taken when the
+package is loaded (<code>setLoadActions()</code>).
+</p>
+</li>
+<li> <p><code>options(max.print = Inf)</code> and similar now give an
+error (instead of warnings later).
+</p>
+</li>
+<li><p> The <code>"difftime"</code> replacement method of <code>units</code>
+tries harder to preserve other attributes of the argument.  (Wish
+of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14839">PR#14839</a>.)
+</p>
+</li>
+<li> <p><code>poly(raw = TRUE)</code> no longer requires more unique
+points than the degree.  (Requested by John Fox.)
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE parallel</h4>
+
+
+<ul>
+<li><p> There is a new function <code>mcmapply()</code>, a parallel version
+of <code>mapply()</code>, and a wrapper <code>mcMap()</code>, a parallel
+version of <code>Map()</code>.
+</p>
+</li>
+<li><p> A default cluster can be registered by the new function
+<code>setDefaultCluster()</code>: this will be used by default in
+functions such as <code>parLapply()</code>.
+</p>
+</li>
+<li> <p><code>clusterMap()</code> has a new argument <code>.scheduling</code> to
+allow the use of load-balancing.
+</p>
+</li>
+<li><p> There are new load-balancing functions <code>parLapplyLB()</code>
+and <code>parSapplyLB()</code>.
+</p>
+</li>
+<li> <p><code>makePSOCKCluster()</code> has a new option <code>useXDR =
+	FALSE</code> which can be used to avoid byte-shuffling for
+serialization when all the nodes are known to be little-endian (or
+all big-endian).
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li><p> Non-ASCII vignettes without a declared encoding are no
+longer accepted.
+</p>
+</li>
+<li><p> C/C++ code in packages is now compiled with <code>-NDEBUG</code>
+to mitigate against the C/C++ function <code>assert</code> being called
+in production use.  Developers can turn this off during package
+development with <code>PKG_CPPFLAGS = -UNDEBUG</code>.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code> has a new option <span class="option">--dsym</span>
+which on Mac OS X (Darwin) dumps the symbols alongside the
+&lsquo;<span class="file">.so</span>&rsquo; file: this is helpful when debugging with
+<code>valgrind</code> (and especially when installing packages into
+&lsquo;<span class="file">R.framework</span>&rsquo;).  [This can also be enabled by setting the
+undocumented environment variable <span class="env">PKG_MAKE_DSYM</span>, since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+2.12.0.]
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code> will test loading under all installed
+sub-architectures even for packages without compiled code, unless
+the flag <span class="option">--no-multiarch</span> is used.  (Pure <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> packages can
+do things which are architecture-dependent: in the case which
+prompted this, looking for an icon in a Windows <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> executable.)
+</p>
+</li>
+<li><p> There is a new option <code>install.packages(type = "both")</code>
+which tries source packages if binary packages are not available,
+on those platforms where the latter is the default.
+</p>
+</li>
+<li><p> The meaning of <code>install.packages(dependencies = TRUE)</code>
+has changed: it now means to install the essential dependencies of
+the named packages plus the <span class="samp">Suggests</span>, but only the
+essential dependencies of dependencies.  To get the previous
+behaviour, specify <code>dependencies</code> as a character vector.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL --merge-multiarch</code> is now supported
+on OS X and other Unix-alikes using multiple sub-architectures.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL --libs-only</code> now by default does a
+test load on Unix-alikes as well as on Windows: suppress with
+<span class="option">--no-test-load</span>.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD check</code> now gives a warning rather than a
+note if it finds inefficiently compressed datasets.  With
+<code>bzip2</code> and <code>xz</code> compression having been
+available since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.10.0, it only exceptionally makes sense to
+not use them.
+</p>
+<p>The environment variable <span class="env">_R_CHECK_COMPACT_DATA2_</span> is
+no longer consulted: the check is always done if
+<span class="env">_R_CHECK_COMPACT_DATA_</span> has a true value (its default).
+</p>
+</li>
+<li><p> Where multiple sub-architectures are to be tested,
+<code>R CMD check</code> now runs the examples and tests for all the
+sub-architectures even if one fails.
+</p>
+</li>
+<li> <p><code>R CMD check</code> can optionally report timings on
+various parts of the check: this is controlled by environment
+variable <span class="env">_R_CHECK_TIMINGS_</span> documented in &lsquo;Writing R
+Extensions&rsquo;.  Timings (in the style of <code>R CMD BATCH</code>) are
+given at the foot of the output files from running each test and
+the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code in each vignette.
+</p>
+</li>
+<li><p> There are new options for more rigorous testing by
+<code>R CMD check</code> selected by environment variables &ndash; see
+the &lsquo;Writing R Extensions&rsquo; manual.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now warns (rather than notes) on
+undeclared use of other packages in examples and tests:
+increasingly people are using the metadata in the
+&lsquo;<span class="file">DESCRIPTION</span>&rsquo; file to compute information about packages,
+for example reverse dependencies.
+</p>
+</li>
+<li><p> The defaults for some of the options in <code>R CMD
+	 check</code> (described in the &lsquo;R Internals&rsquo; manual) have
+changed: checks for unsafe and <code>.Internal()</code> calls and
+for partial matching of arguments in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> function calls are now
+done by default.
+</p>
+</li>
+<li> <p><code>R CMD check</code> has more comprehensive facilities for
+checking compiled code and so gives fewer reports on entry points
+linked into &lsquo;<span class="file">.so</span>&rsquo;/&lsquo;<span class="file">.dll</span>&rsquo; files from libraries
+(including C++ and Fortran runtimes).
+</p>
+<p>Checking compiled code is now done on FreeBSD (as well as the
+existing supported platforms of Linux, Mac OS X, Solaris and
+Windows).
+</p>
+</li>
+<li> <p><code>R CMD build</code> has more options for
+<span class="option">--compact-vignettes</span>: see <code>R CMD build --help</code>.
+</p>
+</li>
+<li> <p><code>R CMD build</code> has a new option <span class="option">--md5</span> to
+add an &lsquo;<span class="file">MD5</span>&rsquo; file (as done by CRAN): this is used by <code>R
+	 CMD INSTALL</code> to check the integrity of the distribution.
+</p>
+<p>If this option is not specified, any existing (and probably
+stale) &lsquo;<span class="file">MD5</span>&rsquo; file is removed.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li> <p><code>R CMD Rd2dvi</code> is now defunct: use <code>R CMD Rd2pdf</code>.
+</p>
+</li>
+<li><p> Options such <span class="option">--max-nsize</span>, <span class="option">--max-vsize</span> and
+the function <code>mem.limits()</code> are now defunct.  (Options
+<span class="option">--min-nsize</span> and <span class="option">--min-vsize</span> remain available.)
+</p>
+</li>
+<li><p> Use of <code>library.dynam()</code> without specifying all the
+first three arguments is now disallowed.
+</p>
+<p>Use of an argument <code>chname</code> in <code>library.dynam()</code>
+including the extension &lsquo;<span class="file">.so</span>&rsquo; or &lsquo;<span class="file">.dll</span>&rsquo; (which was never
+allowed according to the help page) is defunct.  This also applies
+to <code>library.dynam.unload()</code> and to <code>useDynLib</code>
+directives in &lsquo;<span class="file">NAMESPACE</span>&rsquo; files.
+</p>
+</li>
+<li><p> The internal functions <code>.readRDS()</code> and
+<code>.saveRDS()</code> are now defunct.
+</p>
+</li>
+<li><p> The off-line <code>help()</code> types <span class="samp">"postscript"</span> and
+<span class="samp">"ps"</span> are defunct.
+</p>
+</li>
+<li> <p><code>Sys.putenv()</code>, replaced and deprecated in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.5.0, is
+finally removed.
+</p>
+</li>
+<li><p> Some functions/objects which have been defunct for five or
+more years have been removed completely.  These include
+<code>.Alias()</code>, <code>La.chol()</code>, <code>La.chol2inv()</code>,
+<code>La.eigen()</code>, <code>Machine()</code>, <code>Platform()</code>,
+<code>Version</code>, <code>codes()</code>, <code>delay()</code>,
+<code>format.char()</code>, <code>getenv()</code>, <code>httpclient()</code>,
+<code>loadURL()</code>, <code>machine()</code>, <code>parse.dcf()</code>,
+<code>printNoClass()</code>, <code>provide()</code>, <code>read.table.url()</code>,
+<code>restart()</code>, <code>scan.url()</code>, <code>symbol.C()</code>,
+<code>symbol.For()</code> and <code>unix()</code>.
+</p>
+</li>
+<li><p> The <code>ENCODING</code> argument to <code>.C()</code> is deprecated.
+It was intended to smooth the transition to multi-byte character
+strings, but can be replaced by the use of <code>iconv()</code> in the
+rare cases where it is still needed.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> Building with a positive value of
+<span class="option">--with-valgrind-instrumentation</span> now also instruments logical,
+complex and raw vectors.
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li><p> Passing <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> objects other than atomic vectors, functions,
+lists and environments to <code>.C()</code> is now deprecated and will
+give a warning.  Most cases (especially <code>NULL</code>) are actually
+coding errors.  <code>NULL</code> will be disallowed in future.
+</p>
+<p><code>.C()</code> now passes a pairlist as a <code>SEXP</code> to the compiled
+code.  This is as was documented, but pairlists were in reality
+handled differently as a legacy from the early days of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+</li>
+<li> <p><code>call_R</code> and <code>call_S</code> are deprecated.  They still
+exist in the headers and as entry points, but are no longer
+documented and should not be used for new code.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>str(x, width)</code> now obeys its <code>width</code>
+argument also for function headers and other objects <code>x</code>
+where <code>deparse()</code> is applied.
+</p>
+</li>
+<li><p> The convention for <code>x %/% 0L</code> for integer-mode <code>x</code>
+has been changed from <code>0L</code> to <code>NA_integer_</code>.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14754">PR#14754</a>)
+</p>
+</li>
+<li><p> The <code>exportMethods</code> directive in a &lsquo;<span class="file">NAMESPACE</span>&rsquo;
+file now exports S4 generics as necessary, as the extensions
+manual said it does.  The manual has also been updated to be a
+little more informative on this point.
+</p>
+<p>It is now required that there is an S4 generic (imported or
+created in the package) when methods are to be exported.
+</p>
+</li>
+<li><p> Reference methods cannot safely use non-exported entries
+in the namespace.  We now do not do so, and warn in the documentation.
+</p>
+</li>
+<li><p> The namespace import code was warning when identical
+S4 generic functions were imported more than once, but should
+not (reported by Brian Ripley, then Martin Morgan).
+</p>
+</li>
+<li> <p><code>merge()</code> is no longer allowed (in some ways) to create
+a data frame with duplicate column names (which confused
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14786">PR#14786</a>).
+</p>
+</li>
+<li><p> Fixes for rendering raster images on X11 and Windows devices
+when the x-axis or y-axis scale is reversed.
+</p>
+</li>
+<li> <p><code>getAnywhere()</code> found S3 methods as seen from the
+<span class="pkg">utils</span> namespace and not from the environment from which it
+was called.
+</p>
+</li>
+<li> <p><code>selectMethod(f, sig)</code> would not return inherited group
+methods when caching was off (as it is by default).
+</p>
+</li>
+<li> <p><code>dev.copy2pdf(out.type = "cairo")</code> gave an error.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14827">PR#14827</a>)
+</p>
+</li>
+<li><p> Virtual classes (e.g., class unions) had a <code>NULL</code>
+prototype even if that was not a legal subclass.  See
+<code>?setClassUnion</code>.
+</p>
+</li>
+<li><p> The C prototypes for <code>zdotc</code> and <code>zdotu</code> in
+&lsquo;<span class="file">R_ext/BLAS.h</span>&rsquo; have been changed to the more modern style
+rather than that used by <code>f2c</code>.  (Patch by Berwin Turlach.)
+</p>
+</li>
+<li> <p><code>isGeneric()</code> produced an error for primitives that
+can not have methods.
+</p>
+</li>
+<li> <p><code>.C()</code> or <code>.Fortran()</code> had a lack-of-protection
+error if the registration information resulted in an argument
+being coerced to another type.
+</p>
+</li>
+<li> <p><code>boxplot(x=x, at=at)</code> with non finite elements in <code>x</code>
+and non integer <code>at</code> could not generate a warning but failed.
+</p>
+</li>
+<li> <p><code>heatmap(x, symm=TRUE, RowSideColors=*)</code> no longer
+draws the colors in reversed order.
+</p>
+</li>
+<li> <p><code>predict(&lt;ar&gt;)</code> was incorrect in the multivariate case,
+for p &gt;= 2.
+</p>
+</li>
+<li> <p><code>print(x, max=m)</code> is now consistent when <code>x</code> is a
+<code>"Date"</code>; also the &ldquo;reached ... max.print ..&rdquo; messages
+are now consistently using single brackets.
+</p>
+</li>
+<li><p> Closed the <span class="samp">&lt;li&gt;</span> tag in pages generated by <code>
+      Rd2HTML()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14841">PR#14841</a>)
+</p>
+</li>
+<li><p> Axis tick marks could go out of range when a log scale was
+used.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14833">PR#14833</a>)
+</p>
+</li>
+<li><p> Signature objects in methods were not allocated as S4
+objects (caused a problem with <code>trace()</code> reported by Martin Morgan).
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.14.2</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> The internal <code>untar()</code> (as used by default by
+<code>R CMD INSTALL</code>) now knows about some <code>pax</code>
+headers which <code>bsdtar</code> (e.g., the default <code>tar</code> for
+Mac OS &gt;= 10.6) can incorrectly include in <code>tar</code> files,
+and will skip them with a warning.
+</p>
+</li>
+<li><p> PCRE has been upgraded to version 8.21: as well as bug fixes
+and greater Perl compatibility, this adds a JIT pattern compiler,
+about which PCRE's news says
+&lsquo;large performance benefits can be had in many situations&rsquo;.
+This is supported on most but not all <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> platforms.
+</p>
+</li>
+<li><p> Function <code>compactPDF()</code> in package <span class="pkg">tools</span> now
+takes the default for argument <code>gs_quality</code> from environment
+variable <span class="env">GS_QUALITY</span>: there is a new value <code>"none"</code>, the
+ultimate default, which prevents GhostScript being used in
+preference to <code>qpdf</code> just because environment variable
+<span class="env">R_GSCMD</span> is set.  If <span class="env">R_GSCMD</span> is unset or set to
+<code>""</code>, the function will try to find a suitable GhostScript
+executable.
+</p>
+</li>
+<li><p> The included version of zlib has been updated to 1.2.6.
+</p>
+</li>
+<li><p> For consistency with the <code>logLik()</code> method,
+<code>nobs()</code> for <code>"nls"</code> files now excludes observations
+with zero weight.  (Reported by Berwin Turlach.)
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD check</code> now reports by default on licenses not
+according to the description in &lsquo;Writing R Extensions&rsquo;.
+</p>
+</li>
+<li> <p><code>R CMD check</code> has a new option <span class="option">--as-cran</span> to
+turn on most of the customizations that CRAN uses for its incoming
+checks.
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li> <p><code>R CMD INSTALL</code> will now no longer install certain
+file types from &lsquo;<span class="file">inst/doc</span>&rsquo;: these are almost certainly
+mistakes and for some packages are wasting a lot of space.  These
+are &lsquo;<span class="file">Makefile</span>&rsquo;, files generated by running LaTeX, and unless
+the package uses a &lsquo;<span class="file">vignettes</span>&rsquo; directory, PostScript and
+image bitmap files.
+</p>
+<p>Note that only PDF vignettes have ever been supported: some of
+these files come from DVI/PS output from the Sweave defaults prior
+to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> R configured with <span class="option">--disable-openmp</span> would mistakenly
+set <code>HAVE_OPENMP</code> (internal) and <code>SUPPORT_OPENMP</code> (in
+&lsquo;<span class="file">Rconfig.h</span>&rsquo;) even though no OpenMP flags were populated.
+</p>
+</li>
+<li><p> The <code>getS3method()</code> implementation had an old
+computation to find an S4 default method.
+</p>
+</li>
+<li> <p><code>readLines()</code> could overflow a buffer if the last line
+of the file was not terminated.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14766">PR#14766</a>)
+</p>
+</li>
+<li> <p><code>R CMD check</code> could miss undocumented S4 objects in
+packages which used S4 classes but did not <span class="samp">Depends: methods</span>
+in their &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file.
+</p>
+</li>
+<li><p> The HTML Help Search page had malformed links.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14769">PR#14769</a>)
+</p>
+</li>
+<li><p> A couple of instances of lack of protection of <code>SEXP</code>s
+have been squashed. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14772">PR#14772</a>, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14773">PR#14773</a>)
+</p>
+</li>
+<li> <p><code>image(x, useRaster=TRUE)</code> misbehaved on single-column
+<code>x</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14774">PR#14774</a>)
+</p>
+</li>
+<li><p> Negative values for <code>options("max.print")</code> or the <code>max</code>
+argument to <code>print.default()</code> caused crashes.  Now the former
+are ignored and the latter trigger an error.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14779">PR#14779</a>)
+</p>
+</li>
+<li><p> The text of a function body containing more than 4096
+bytes was not properly saved by the parser when entered
+at the console.
+</p>
+</li>
+<li><p> Forgetting the <code>#endif</code> tag in an Rd file could cause
+the parser to go into a loop.  (Reported by Hans-Jorg Bibiko.)
+</p>
+</li>
+<li> <p><code>str(*, ....., strict.width="cut")</code> now also obeys
+<code>list.len = n</code>.  (Reported by Sören Vogel.)
+</p>
+</li>
+<li><p> Printing of arrays did not have enough protection (C level),
+e.g., in the context of <code>capture.output()</code>.  (Reported by
+Hervé Pagès and Martin Morgan.)
+</p>
+</li>
+<li> <p><code>pdf(file = NULL)</code> would produce a spurious file named
+&lsquo;<span class="file">NA</span>&rsquo;.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14808">PR#14808</a>)
+</p>
+</li>
+<li> <p><code>list2env()</code> did not check the type of its <code>envir</code>
+argument. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14807">PR#14807</a>)
+</p>
+</li>
+<li> <p><code>svg()</code> could segfault if called with a non-existent
+file path.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14790">PR#14790</a>)
+</p>
+</li>
+<li> <p><code>make install</code> can install to a path containing
+<span class="samp">+</span> characters. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14798">PR#14798</a>)
+</p>
+</li>
+<li><p> The <code>edit()</code> function did not respect the
+<code>options("keep.source")</code> setting. (Reported by Cleridy
+Lennert.)
+</p>
+</li>
+<li> <p><code>predict.lm(*, type="terms", terms=*, se.fit=TRUE)</code> did
+not work.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14817">PR#14817</a>)
+</p>
+</li>
+<li><p> There is a partial workaround for errors in the TRE
+regular-expressions engine with named classes and repeat counts of
+at least 2 in a MBCS locale (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14408">PR#14408</a>): these are avoided when
+TRE is in 8-bit mode (e.g., for <code>useBytes = TRUE</code> and when all
+the data are ASCII).
+</p>
+</li>
+<li><p> The C function <code>R_ReplDLLdo1()</code> did not call top-level
+handlers.
+</p>
+</li>
+<li><p> The Quartz device was unable to detect window sessions on
+Mac OS X 10.7 (Lion) and higher and thus it was not used as the
+default device on the console.  Since Lion any application can use
+window sessions, so Quartz will now be the default device if the
+user's window session is active and <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is not run via
+<code>ssh</code> which is at least close to the behavior in prior OS
+X versions.
+</p>
+</li>
+<li> <p><code>mclapply()</code> would fail in code assembling the translated
+error message if some (but not all) cores encountered an error.
+</p>
+</li>
+<li> <p><code>format.POSIXlt(x)</code> raised an arithmetic exception when
+<code>x</code> was an invalid object of class <code>"POSIXlt"</code> and parts
+were empty.
+</p>
+</li>
+<li> <p><code>installed.packages()</code> has some more protection against
+package installs going on in parallel.
+</p>
+</li>
+<li> <p><code>.Primitive()</code> could be mis-used to call
+<code>.Internal()</code> entry points.
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.14.1</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>parallel::detectCores()</code> is now able to find the
+number of physical cores (rather than CPUs) on Sparc Solaris.
+</p>
+<p>It can also do so on most versions of Windows; however the default
+remains <code>detectCores(logical = TRUE)</code> on that platform.
+</p>
+</li>
+<li><p> Reference classes now keep a record of which fields are
+locked.  <code>$lock()</code> with no arguments returns the names 
+of the locked fields.
+</p>
+</li>
+<li> <p><code>HoltWinters()</code> reports a warning rather than an error
+for some optimization failures (where the answer might be a
+reasonable one).
+</p>
+</li>
+<li> <p><code>tools::dependsOnPkg()</code> now accepts the shorthand
+<code>dependencies = "all"</code>.
+</p>
+</li>
+<li> <p><code>parallel::clusterExport()</code> now allows specification of
+an environment from which to export.
+</p>
+</li>
+<li><p> The <code>quartz()</code> device now does tilde expansion on its
+<code>file</code> argument.
+</p>
+</li>
+<li> <p><code>tempfile()</code> on a Unix-alike now takes the process ID
+into account.  This is needed with <a href="https://CRAN.R-project.org/package=multicore"><span class="pkg">multicore</span></a> (and as part of
+<span class="pkg">parallel</span>) because the parent and all the children share a
+session temporary directory, and they can share the C random
+number stream used to produce the unique part.  Further, two
+children can call <code>tempfile()</code> simultaneously.
+</p>
+</li>
+<li><p> Option <code>print</code> in Sweave's <code>RweaveLatex()</code> driver
+now emulates auto-printing rather than printing (which can differ
+for an S4 object by calling <code>show()</code> rather than
+<code>print()</code>).
+</p>
+</li>
+<li> <p><code>filled.contour()</code> now accepts infinite values:
+previously it might have generated invalid graphics files
+(e.g., containing NaN values).
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> On 64-bit Linux systems, <code>configure</code> now only sets
+<span class="samp">LIBnn</span> to <code>lib64</code> if &lsquo;<span class="file">/usr/lib64</span>&rsquo; exists.  This
+may obviate setting <span class="samp">LIBnn</span> explicitly on Debian-derived
+systems.
+</p>
+<p>It is still necessary to set <span class="samp">LIBnn = lib</span> (or
+<span class="samp">lib32</span>) for 32-bit builds of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> on a 64-bit OS on those Linux
+distributions capable for supporting that concept.
+</p>
+</li>
+<li> <p><code>configure</code> looks for &lsquo;<span class="file">inconsolata.sty</span>&rsquo;, and if
+not found adjusts the default <span class="env">R_RD4PDF</span> to not use it (with a
+warning, since it is needed for high-quality rendering of manuals).
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li> <p><code>R CMD INSTALL</code> will now do a test load for all
+sub-architectures for which code was compiled (rather than just
+the primary sub-architecture).
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li><p> When checking examples under more than one sub-architecture,
+<code>R CMD check</code> now uses a separate directory
+&lsquo;<span class="file">examples_arch</span>&rsquo; for each sub-architecture, and leaves the
+output in file &lsquo;<span class="file">pkgname-Ex_arch.Rout</span>&rsquo;.  Some packages
+expect their examples to be run in a clean directory ....
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>stack()</code> now gives an error if no vector column is
+selected, rather than returning a 1-column data frame (contrary to
+its documentation).
+</p>
+</li>
+<li> <p><code>summary.mlm()</code> did not handle objects where the
+formula had been specified by an expression.  (Reported by
+Helios de Rosario Martinez).
+</p>
+</li>
+<li> <p><code>tools::deparseLatex(dropBraces=TRUE)</code> could drop
+text as well as braces.
+</p>
+</li>
+<li> <p><code>colormodel = "grey"</code> (new in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0))
+did not always work in <code>postscript()</code> and <code>pdf()</code>.
+</p>
+</li>
+<li> <p><code>file.append()</code> could return <code>TRUE</code> for failures.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14727">PR#14727</a>)
+</p>
+</li>
+<li> <p><code>gzcon()</code> connections are no longer subject to garbage
+collection: it was possible for this to happen when unintended
+(e.g., when calling <code>load()</code>).
+</p>
+</li>
+<li> <p><code>nobs()</code> does not count zero-weight observations for
+<code>glm()</code> fits, for consistency with <code>lm()</code>.  This affects
+the <code>BIC()</code> values reported for such <code>glm()</code> fits.
+(Spotted by Bill Dunlap.)
+</p>
+</li>
+<li> <p><code>options(warn = 0)</code> failed to end a (C-level) context
+with more than 50 accumulated warnings.  (Spotted by Jeffrey
+Horner.)
+</p>
+</li>
+<li><p> The internal <code>plot.default()</code> code did not do sanity
+checks on a <code>cex</code> argument, so invalid input could cause
+problems.  (Reported by Ben Bolker.)
+</p>
+</li>
+<li> <p><code>anyDuplicated(&lt;array&gt;, MARGIN=0)</code> no longer fails.
+(Reported by Hervé Pagès.)
+</p>
+</li>
+<li> <p><code>read.dcf()</code> removes trailing blanks: unfortunately
+on some platforms this included <code>\xa0</code> (non-breaking space)
+which is the trailing byte of a UTF-8 character.  It now only
+considers ASCII space and tab to be &lsquo;blank&rsquo;.
+</p>
+</li>
+<li><p> There was a sign error in part of the calculations for the
+variance returned by <code>KalmanSmooth()</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14738">PR#14738</a>)
+</p>
+</li>
+<li> <p><code>pbinom(10, 1e6, 0.01, log.p = TRUE)</code> was <code>NaN</code>
+thanks to the buggy fix to <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14320">PR#14320</a> in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.11.0.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14739">PR#14739</a>)
+</p>
+</li>
+<li> <p><code>RweaveLatex()</code> now emulates auto-printing rather than
+printing, by calling <code>methods::show()</code> when auto-printing
+would.
+</p>
+</li>
+<li> <p><code>duplicated()</code> ignored <code>fromLast</code> for a
+one-column data frame.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14742">PR#14742</a>)
+</p>
+</li>
+<li> <p><code>source()</code> and related functions did not put the correct
+timestamp on the source references; <code>srcfilecopy()</code> has gained
+a new argument <code>timestamp</code> to support this fix. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14750">PR#14750</a>)
+</p>
+</li>
+<li> <p><code>srcfilecopy()</code> has gained a new argument <code>isFile</code>
+and now records the working directory, to allow debuggers to find
+the original source file.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14826">PR#14826</a>)
+</p>
+</li>
+<li><p> LaTeX conversion of Rd files did not correctly handle
+preformatted backslashes.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14751">PR#14751</a>)
+</p>
+</li>
+<li><p> HTML conversion of Rd files did not handle markup within
+tabular cells properly.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14708">PR#14708</a>)
+</p>
+</li>
+<li> <p><code>source()</code> on an empty file with <code>keep.source =
+	TRUE</code> tried to read from <code>stdin()</code>, in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0 only.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14753">PR#14753</a>)
+</p>
+</li>
+<li><p> The code to check Rd files in packages would abort if
+duplicate description sections were present.
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.14.0</h3>
+
+
+
+<h4>SIGNIFICANT USER-VISIBLE CHANGES</h4>
+
+
+<ul>
+<li><p> All packages must have a namespace, and one is created on
+installation if not supplied in the sources.  This means that any
+package without a namespace must be re-installed under this
+version of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> (but previously-installed data-only packages without
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code can still be used).
+</p>
+</li>
+<li><p> The <code>yLineBias</code> of the <code>X11()</code> and
+<code>windows()</code> families of devices has been changed from 0.1 to
+0.2: this changes slightly the vertical positioning of text in the
+margins (including axis annotations).  This is mainly for
+consistency with other devices such as <code>quartz()</code> and
+<code>pdf()</code>.  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14538">PR#14538</a>.)
+</p>
+<p>There is a new graphics parameter <code>"ylbias"</code> which
+allows the y-line bias of the graphics device to be tweaked,
+including to reproduce output from earlier versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+</li>
+<li><p> Labeling of the p-values in various anova tables has been
+rationalized to be either <code>"Pr(&gt;F)"</code> or <code>"Pr(&gt;Chi)"</code>
+(i.e., the <code>"Pr(F)"</code>, <code>"Pr(Chi)"</code> and <code>"P(&gt;|Chi|)"</code>
+variants have been eliminated).  Code which extracts the p value
+<em>via</em> indexing by name may need adjustment.
+</p>
+</li>
+<li> <p><code>::</code> can now be used for datasets made available for
+lazy-loading in packages with namespaces (which makes it consistent
+with its use for data-only packages without namespaces in earlier
+versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>).
+</p>
+</li>
+<li><p> There is a new package <span class="pkg">parallel</span>.
+</p>
+<p>It incorporates (slightly revised) copies of packages
+<a href="https://CRAN.R-project.org/package=multicore"><span class="pkg">multicore</span></a> and <a href="https://CRAN.R-project.org/package=snow"><span class="pkg">snow</span></a> (excluding MPI, PVM and NWS
+clusters).  Code written to use the higher-level API functions in
+those packages should work unchanged (apart from changing any
+references to their namespaces to a reference to <span class="pkg">parallel</span>,
+and links explicitly to <a href="https://CRAN.R-project.org/package=multicore"><span class="pkg">multicore</span></a> or <a href="https://CRAN.R-project.org/package=snow"><span class="pkg">snow</span></a> on help
+pages).
+</p>
+<p>It also contains support for multiple RNG streams following
+L'Ecuyer <em>et al</em> (2002), with support for both
+<code>mclapply</code> and <a href="https://CRAN.R-project.org/package=snow"><span class="pkg">snow</span></a> clusters.  This replaces functions
+like <code>clusterSetupRNG()</code> from <a href="https://CRAN.R-project.org/package=snow"><span class="pkg">snow</span></a> (which are not in
+<span class="pkg">parallel</span>).
+</p>
+<p>The version released for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0 contains base functionality:
+higher-level convenience functions are planned (and some are
+already available in the &lsquo;R-devel&rsquo; version of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>).
+</p>
+</li>
+<li><p> Building PDF manuals (for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself or packages,
+e.g. <em>via</em> <code>R CMD check</code>) by default requires the
+LaTeX package <span class="samp">inconsolata</span>: see the section on
+&lsquo;Making the manuals&rsquo; in the &lsquo;R Installation and
+Administration Manual&rsquo;.
+</p>
+</li>
+<li> <p><code>axTicks(*, log=TRUE)</code> has changed in some cases to
+satisfy the documented behavior and be consistent.
+</p>
+</li></ul>
+
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>txtProgressBar()</code> can write to an open connection
+instead of the console.
+</p>
+</li>
+<li><p> Non-portable package names ending in &lsquo;<span class="file">.</span>&rsquo; are no longer
+allowed.  Nor are single-character package names (<span class="pkg">R</span> was
+already disallowed).
+</p>
+</li>
+<li> <p><code>regexpr()</code> and <code>gregexpr()</code> with <code>perl =
+	TRUE</code> allows Python-style named captures.  (Wish and
+contribution of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14518">PR#14518</a>.)
+</p>
+</li>
+<li><p> The placement of &lsquo;plotmath&rsquo; text in the margins of
+plots done by base graphics now makes the same vertical adjustment
+as ordinary text, so using ordinary and plotmath text on the same
+margin line will seem better aligned (but not exactly aligned,
+since ordinary text has descenders below the baseline and plotmath
+places them on the baseline).  (Related to <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14537">PR#14537</a>.)
+</p>
+</li>
+<li> <p><code>sunflowerplot()</code> now has a formula interface.
+(Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14541">PR#14541</a>.)
+</p>
+</li>
+<li> <p><code>iconv()</code> has a new argument <code>toRaw</code> to handle
+encodings such as <code>UTF-16</code> with embedded nuls (as was
+possible before the <code>CHARSXP</code> cache was introduced).
+</p>
+<p>It will also accept as input the type of list generated with
+<code>toRaw = TRUE</code>.
+</p>
+</li>
+<li><p> Garbage-collecting an unused input text connection no longer
+gives a warning (since it &lsquo;connects&rsquo; to nothing outside
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>).
+</p>
+</li>
+<li> <p><code>read.table()</code> and <code>scan()</code> have gained a
+<code>text</code> argument, to allow reading data from a (possibly
+literal) character string.
+</p>
+</li>
+<li> <p><code>optim(*, method = .)</code> now allows <code>method = "Brent"</code>
+as an interface to <code>optimize()</code>, for use in cases such as
+<code>mle()</code> where <code>optim()</code> is used internally.
+</p>
+</li>
+<li> <p><code>mosaicplot()</code> gains a <code>border</code> argument.
+(Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14550">PR#14550</a>.)
+</p>
+</li>
+<li> <p><code>smooth.spline()</code> gains a <code>tol</code> argument which
+controls how different <code>x</code> values need to be to be treated as
+distinct.  The default has been changed to be more reliable for
+inputs whose range is small compared to their maximum absolute
+value.  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14452">PR#14452</a>.)
+</p>
+</li>
+<li> <p><code>gl()</code> runs faster by avoiding calling <code>factor()</code>.
+</p>
+</li>
+<li><p> The <code>print()</code> method for <code>object.size()</code> accepts
+<span class="samp">B</span> as well as <span class="samp">b</span> as an abbreviation for &lsquo;bytes&rsquo;.
+</p>
+</li>
+<li> <p><code>unlink()</code> gains a <code>force</code> argument to work like
+<code>rm -f</code> and if possible override restrictive permissions.
+</p>
+</li>
+<li> <p><code>pbirthday()</code> and <code>qbirthday()</code> now use exact
+calculations for <code>coincident = 2</code>.
+</p>
+</li>
+<li> <p><code>unzip()</code> and <code>unz()</code> connections have been
+updated with support for more recent Zip64 features (including
+large file sizes and <code>bzip2</code> compression, but not UTF-8
+file names).
+</p>
+<p><code>unzip()</code> has a new option to restore file times from those
+recorded (in an unknown timezone) in the zip file.
+</p>
+</li>
+<li> <p><code>update.packages()</code> now accepts a character vector of
+package names for the <code>oldPkgs</code> argument.  (Suggestion of
+Tal Galili.)
+</p>
+</li>
+<li><p> The special reference class fields <code>.self</code> and
+<code>.refClassDef</code> are now read-only to prevent corrupting
+the object.
+</p>
+</li>
+<li> <p><code>decompose()</code> now returns the original series as part
+of its value, so it can be used (rather than reconstructed) when
+plotting.  (Suggestion of Rob Hyndman.)
+</p>
+</li>
+<li><p> Rao's efficient score test has been implemented for
+<code>glm</code> objects.  Specifically, the <code>add1</code>, <code>drop1</code>,
+and <code>anova</code> methods now allow <code>test = "Rao"</code>.
+</p>
+</li>
+<li><p> If a saved workspace (e.g., &lsquo;<span class="file">.RData</span>&rsquo;) contains objects
+that cannot be loaded, <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> will now start with an warning message
+and an empty workspace, rather than failing to start.
+</p>
+</li>
+<li> <p><code>strptime()</code> now accepts times such as <span class="samp">24:00</span> for
+midnight at the end of the day, for although these are disallowed by
+POSIX 1003.1-2008, ISO 8601:2004 allows them.
+</p>
+</li>
+<li><p> Assignment of <code>names()</code> to S4 objects now checks for
+a corresponding <code>"names"</code> slot, and generates a warning or
+an error if that slot is not defined.  See the section on slots
+in <code>?Classes</code>.
+</p>
+</li>
+<li><p> The default methods for <code>is.finite()</code>, <code>is.infinite()</code>
+and <code>is.nan()</code> now signal an error if their argument is not
+an atomic vector.
+</p>
+</li>
+<li><p> The formula method for <code>plot()</code> no longer places
+package <span class="pkg">stats</span> on the search path (it loads the namespace
+instead).
+</p>
+</li>
+<li><p> There now is a genuine <code>"function"</code> method for
+<code>plot()</code> rather than the generic dispatching internally to
+<code>graphics::plot.function()</code>.  It is now exported, so can be
+called directly as <code>plot.function()</code>.
+</p>
+</li>
+<li><p> The one-sided <code>ks.test()</code> allows <code>exact = TRUE</code> to
+be specified in the presence of ties (but the approximate
+calculation remains the default: the &lsquo;exact&rsquo; computation
+makes assumptions known to be invalid in the presence of ties).
+</p>
+</li>
+<li><p> The behaviour of <code>curve(add = FALSE)</code> has changed: it
+now no longer takes the default x limits from the previous plot
+(if any): rather they default to <code>c(0, 1)</code> just as the
+<code>"function"</code> method for <code>plot()</code>.  To get the previous
+behaviour use <code>curve(add = NA)</code>, which also takes the default for
+log-scaling of the x-axis from the previous plot.
+</p>
+</li>
+<li><p> Both <code>curve()</code> and the <code>plot()</code> method for
+functions have a new argument <code>xname</code> to facilitate plots
+such as <code>sin(t)</code> <em>vs</em> <code>t</code>.
+</p>
+</li>
+<li><p> The <code>local</code> argument to <code>source()</code> can specify an
+environment as well as <code>TRUE</code> (<code>parent.env()</code>) and
+<code>FALSE</code> (<code>.GlobalEnv</code>).  It gives better error messages
+for other values, such as <code>NA</code>.
+</p>
+</li>
+<li> <p><code>vcov()</code> gains methods for classes <code>"summary.lm"</code> and
+<code>"summary.glm"</code>.
+</p>
+</li>
+<li><p> The <code>plot()</code> method for class <code>"profile.nls"</code>
+gains <code>ylab</code> and <code>lty</code> arguments, and passes
+<code>...</code> on to <code>plot.default</code>.
+</p>
+</li>
+<li><p> Character-string arguments such as the <code>mode</code> argument
+of <code>vector()</code>, <code>as.vector()</code> and <code>is.vector()</code> and
+the <code>description</code> argument of <code>file()</code> are required to
+be of length exactly one, rather than any further elements being
+silently discarded.  This helps catch incorrect usage in
+programming.
+</p>
+</li>
+<li><p> The <code>length</code> argument of <code>vector()</code> and its
+wrappers such as <code>numeric()</code> is required to be of length
+exactly one (other values are now an error rather than giving a
+warning as previously).
+</p>
+</li>
+<li> <p><code>vector(len)</code> and <code>length(x) &lt;- len</code> no longer
+accept <code>TRUE</code>/<code>FALSE</code> for <code>len</code> (not that they
+were ever documented to, but there was special-casing in the C
+code).
+</p>
+</li>
+<li><p> There is a new function <code>Sys.setFileTime()</code> to set the
+time of a file (including a directory).  See its help for exactly
+which times it sets on various OSes.
+</p>
+</li>
+<li><p> The file times reported by <code>file.info()</code> are reported
+to sub-second resolution on systems which support it.  (Currently
+the POSIX 2008 and FreeBSD/Darwin/NetBSD methods are detected.)
+</p>
+</li>
+<li><p> New function <code>getCall(m)</code> as an abstraction for
+<code>m$call</code>, enabling <code>update()</code>'s default method to apply 
+more universally.  (NB: this can be masked by existing functions
+in packages.)
+</p>
+</li>
+<li> <p><code>Sys.info()</code> gains a <code>euser</code> component to report
+the &lsquo;effective&rsquo; user on OSes which have that concept.
+</p>
+</li>
+<li><p> The result returned by <code>try()</code> now contains the
+original error condition object as the <code>"condition"</code>
+attribute.
+</p>
+</li>
+<li><p> All packages with <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code are lazy-loaded irrespective of
+the <span class="samp">LazyLoad</span> field in the &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file.  A
+warning is given if the <span class="samp">LazyLoad</span> field is overridden.
+</p>
+</li>
+<li> <p><code>Rd</code> markup has a new <span class="samp">\figure</span> tag so that
+figures can be included in help pages when converted to HTML or
+LaTeX.  There are examples on the help pages for <code>par()</code> and
+<code>points()</code>.
+</p>
+</li>
+<li><p> The built-in httpd server now allows access to files
+in the session temporary directory <code>tempdir()</code>,
+addressed as the &lsquo;<span class="file">/session</span>&rsquo; directory on the httpd
+server.
+</p>
+</li>
+<li><p> Development versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> are no longer referred to by the
+number under which they might be released, e.g., in the startup
+banner, <code>R --version</code> and <code>sessionUtils()</code>.  The
+correct way to refer to a development version of R is
+&lsquo;R-devel&rsquo;, preferably with the date and SVN version number.<br />
+E.g., <span class="samp">R-devel (2011-07-04 r56266)</span>
+</p>
+</li>
+<li><p> There is a new function <code>texi2pdf()</code> in package
+<span class="pkg">tools</span>, currently a convenience wrapper for
+<code>texi2dvi(pdf = TRUE)</code>.
+</p>
+</li>
+<li><p> There are two new options for typesetting PDF manuals from
+Rd files.  These are <span class="samp">beramono</span> and <span class="samp">inconsolata</span>, and
+used the named font for monospaced output. They are intended to
+be used in combination with <span class="samp">times</span>, and
+<span class="samp">times,inconsolata,hyper</span> is now the default for the
+reference manual and package manuals.  If you do not have that
+font installed, you can set <span class="env">R_RD4PF</span> to one of the other
+options: see the &lsquo;R Installation and Administration Manual&rsquo;.
+</p>
+</li>
+<li><p> Automatic printing for reference classes is now done by
+the <code>$show()</code> method.  A method is defined for class 
+<span class="samp">envRefClass</span> and may be overridden for user classes (see
+the <code>?ReferenceClasses</code> example).  S4 <code>show()</code> methods
+should no longer be needed for reference classes.
+</p>
+</li>
+<li> <p><code>tools::Rdiff</code> (by default) and <code>R CMD Rdiff</code>
+now ignore differences in pointer values when comparing printed
+environments, compiled byte code, etc.
+</p>
+</li>
+<li><p> The <code>"source"</code> attribute on functions created with
+<code>keep.source=TRUE</code> has been replaced with a <code>"srcref"</code>
+attribute.  The <code>"srcref"</code> attribute references an in-memory
+copy of the source file using the <code>"srcfilecopy"</code> class or
+the new <code>"srcfilealias"</code> class.
+</p>
+<p><strong>NB:</strong> This means that functions sourced with
+<code>keep.source = TRUE</code> and saved (e.g., by <code>save()</code> or
+<code>readRDS()</code>) in earlier versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> will no longer show
+the original sources (including comments).
+</p>
+</li>
+<li><p> New items <span class="samp">User Manuals</span> and
+<a href="http://developer.r-project.org/TechDocs">Technical Papers</a>
+have been added to the HTML help main page.  These link to
+vignettes in the base and recommended packages and to a
+collection of papers about R issues, respectively.
+</p>
+</li>
+<li><p> Documentation and messages have been standardized to
+use &ldquo;namespace&rdquo; rather than &ldquo;name space&rdquo;.
+</p>
+</li>
+<li> <p><code>setGeneric()</code> now looks in the default packages for
+a non-generic version of a function if called from a package with a
+namespace.  (It always did for packages without a namespace.)
+</p>
+</li>
+<li><p> Setting the environment variable
+<span class="env">_R_WARN_ON_LOCKED_BINDINGS_</span> will give a warning if an
+attempt is made to change a locked binding.
+</p>
+</li>
+<li> <p><code>\SweaveInput</code> is now supported when generating
+concordances in <code>Sweave()</code>.
+</p>
+</li>
+<li> <p><code>findLineNum()</code> and <code>setBreakpoint()</code> now allow
+the environment to be specified indirectly; the latter gains
+a <code>clear</code> argument to allow it to call <code>untrace()</code>.
+</p>
+</li>
+<li><p> The body of a closure can be one of further types of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+objects, including environments and external pointers.
+</p>
+</li>
+<li><p> The <code>Rd2HTML()</code> function in package <span class="pkg">tools</span> now has
+a <code>stylesheet</code> argument, allowing pages to be displayed in
+alternate formats.
+</p>
+</li>
+<li><p> New function <code>requireNamespace()</code> analogous to
+<code>require()</code>, returning a logical value after attempting to
+load a namespace.
+</p>
+</li>
+<li><p> There is a new type of RNG, <code>"L'Ecuyer-CMRG"</code>,
+implementing L'Ecuyer (1999)'s &lsquo;combined multiple-recursive
+generator&rsquo; <span class="samp">MRG32k3a</span>.  See the comments on <code>?RNG</code>.
+</p>
+</li>
+<li> <p><code>help.search()</code> and <code>??</code> can now display
+vignettes and demos as well as help pages.  The new option
+<code>"help.search.types"</code> controls the types of documentation
+and the order of their display.
+</p>
+<p>This also applies to HTML searches, which now give results in all
+of help pages, vignettes and demos.
+</p>
+</li>
+<li> <p><code>socketConnection()</code> now has a <code>timeout</code> argument.
+It is now documented that large values (package <a href="https://CRAN.R-project.org/package=snow"><span class="pkg">snow</span></a> used a
+year) do not work on some OSes.
+</p>
+</li>
+<li><p> The initialization of the random-number generator now uses
+the process ID as well as the current time, just in case two <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+processes are launched very rapidly on a machine with
+low-resolution wall clock (some have a resolution of a second;
+modern systems have microsecond-level resolution).
+</p>
+</li>
+<li><p> New function <code>pskill()</code> in the <span class="pkg">tools</span> package to
+send a terminate signal to one or more processes, plus constants
+such as <code>SIGTERM</code> to provide a portable way to refer to
+signals (since the numeric values are OS-dependent).
+</p>
+</li>
+<li><p> New function <code>psnice()</code> in the <span class="pkg">tools</span> package to
+return or change the &lsquo;niceness&rsquo; of a process.  (Refers to
+the &lsquo;priority class&rsquo; on Windows.)
+</p>
+</li>
+<li> <p><code>list.dirs()</code> gains a <code>recursive</code> argument.
+</p>
+</li>
+<li><p> An <span class="samp">Authors@R</span> field in a package &lsquo;<span class="file">DESCRIPTION</span>&rsquo;
+file can now be used to generate <span class="samp">Author</span> and
+<span class="samp">Maintainer</span> fields if needed, and to auto-generate package
+citations.
+</p>
+</li>
+<li><p> New utility <code>getElement()</code> for accessing either a list
+component or a slot in an S4 object.
+</p>
+</li>
+<li> <p><code>stars()</code> gains a <code>col.lines</code> argument, thanks to
+Dustin Sallings. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14657">PR#14657</a>.)
+</p>
+</li>
+<li><p> New function <code>regmatches()</code> for extracting or replacing
+matched or non-matched substrings from match data obtained by
+<code>regexpr()</code>, <code>gregexpr()</code> and <code>regexec()</code>.
+</p>
+</li>
+<li> <p><code>help(package = "pkg_name", help_type = "HTML")</code> now
+gives HTML help on the package rather than text help.  (This gives
+direct access to the HTML version of the package manual shown
+<em>via</em> <code>help.start()</code>'s &lsquo;Packages&rsquo; menu.)
+</p>
+</li>
+<li> <p><code>agrep()</code> gains a <code>fixed</code> argument to optionally
+allow approximate regular expression matching, and a <code>costs</code>
+argument to specify possibly different integer match costs for
+insertions, deletions and substitutions.
+</p>
+</li>
+<li> <p><code>read.dcf()</code> and <code>write.dcf()</code> gain a
+<code>keep.white</code> argument to indicate fields where whitespace
+should be kept as is.
+</p>
+</li>
+<li> <p><code>available.packages()</code> now works around servers that
+fail to return an error code when &lsquo;<span class="file">PACKAGES.gz</span>&rsquo; does not
+exist.  (Patch submitted by Seth Schommer.)
+</p>
+</li>
+<li> <p><code>readBin()</code> can now read more than
+<i>2^31 - 1</i> bytes in a single call (the previously
+documented limitation).
+</p>
+</li>
+<li><p> New function <code>regexec()</code> for finding the positions of
+matches as well as all substrings corresponding to parenthesized
+subexpressions of the given regular expression.
+</p>
+</li>
+<li><p> New function <code>adist()</code> in package <span class="pkg">utils</span> for
+computing &lsquo;edit&rsquo; (generalized Levenshtein) distances between
+strings.
+</p>
+</li>
+<li><p> Class <code>"raster"</code> gains an <code>is.na</code> method to avoid
+confusion from the misuse of the matrix method (such as <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14618">PR#14618</a>).
+</p>
+</li>
+<li><p> The <code>identical()</code> function gains an
+<code>ignore.bytecode</code> argument to control comparison of
+compiled functions.
+</p>
+</li>
+<li> <p><code>pmin</code> and <code>pmax</code> now warn if an argument is
+partially recycled (wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14638">PR#14638</a>).
+</p>
+</li>
+<li><p> The default for <code>image(useRaster=)</code> is now taken from
+option <code>"preferRaster"</code>: for the small print see <code>?image</code>.
+</p>
+</li>
+<li> <p><code>str()</code> now displays reference class objects and their
+fields, rather than treating them as classical S4 classes.
+</p>
+</li>
+<li><p> New function <code>aregexec()</code> in package <span class="pkg">utils</span> for
+finding the positions of approximate string matches as well as all
+substrings corresponding to parenthesized subexpressions of the
+given regular expression.
+</p>
+</li>
+<li> <p><code>download.file()</code> has an <code>extra</code> argument to pass
+additional command-line options to the non-default methods using
+command-line utilities.
+</p>
+<p><code>cacheOK = FALSE</code> is now supported for <code>method = "curl"</code>.
+</p>
+</li>
+<li> <p><code>interaction.plot(*, type = .)</code> now also allows type
+<code>"o"</code> or <code>"c"</code>.
+</p>
+</li>
+<li> <p><code>axTicks(*, log=TRUE)</code> did sometimes give more values
+than the ticks in the corresponding <code>graphics::axis()</code>.  By
+default, it now makes use of the new (<span class="pkg">graphics</span>-package
+independent) <code>axisTicks()</code> which can make use of a new
+utility <code>.axisPars()</code>.  Further, it now returns a decreasing
+sequence (as for <code>log=FALSE</code>) when <code>usr</code> is decreasing.
+</p>
+</li>
+<li><p> Using <code>fix()</code> or <code>edit()</code> on a <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> object (except
+perhaps a matrix or data frame) writes its temporary file with
+extension &lsquo;<span class="file">.R</span>&rsquo; so editors which select their mode based on
+the extension will select a suitable mode.
+</p>
+</li></ul>
+
+
+
+
+<h4>GRAPHICS DEVICES</h4>
+
+
+<ul>
+<li><p> The <code>pdf()</code> device makes use of Flate compression: this
+is controlled by the new logical argument <code>compress</code>, and is
+enabled by default.
+</p>
+</li>
+<li><p> Devices <code>svg()</code>, <code>cairo_pdf()</code> and
+<code>cairo_ps()</code> gain a <code>family</code> argument.
+</p>
+<p>On a Unix-alike <code>X11()</code> gains a <code>family</code> argument.  This
+is one of the <code>x11.options()</code> and so can be passed as an
+argument to the <code>bmp()</code>, <code>jpeg()</code>, <code>png()</code> and
+<code>tiff()</code> devices.
+</p>
+<p>Analogous changes have been made on Windows, so all built-in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+graphics devices now have a <code>family</code> argument except
+<code>pictex()</code> (which has no means to change fonts).
+</p>
+</li>
+<li><p> The <code>bmp()</code>, <code>jpeg()</code>, <code>png()</code> and <code>tiff()</code>
+devices now make use of the <code>antialias</code> argument for
+<code>type = "quartz"</code>.
+</p>
+</li>
+<li><p> There are several new built-in font mappings for
+<code>X11(type = "Xlib")</code>: see the help on <code>X11Fonts()</code>.
+</p>
+</li>
+<li><p> There is a new type <code>X11(type = "dbcairo")</code> which
+updates the screen less frequently: see its help page.
+</p>
+</li>
+<li><p> The <code>X11()</code> device now makes use of cursors to
+distinguish its states.  The normal cursor is an arrow (rather
+than a crosshair); the crosshair is used when the locator is in
+use, and a watch cursor is shown when plotting computations are
+being done.  (These are the standard names for X11 cursors: how
+they are actually displayed depends on the window manager.)
+</p>
+</li>
+<li><p> New functions <code>dev.hold()</code> and <code>dev.flush()</code> for
+use with graphics devices with buffering.  These are used for most
+of the high-level graphics functions such as <code>boxplot()</code>, so
+that the plot is only displayed when the page is complete.
+</p>
+<p>Currently implemented for <code>windows(buffered = TRUE)</code>,
+<code>quartz()</code> and the cairographics-based <code>X11()</code> types
+with buffering (which are the default on-screen devices).
+</p>
+</li>
+<li><p> New function <code>dev.capture()</code> for capture of bitmap
+snapshots of image-based devices (a superset of the functionality
+provided by <code>grid.cap()</code> in <code>grid</code>).
+</p>
+</li>
+<li><p> The default <code>colormodel</code> for <code>pdf()</code> and
+<code>postscript()</code> is now called <code>"srgb"</code> to more accurately
+describe it.  (Instead of <code>"rgb"</code>, and in the case of
+<code>postscript()</code> it no longer switches to and from the gray
+colorspace, by default.)
+</p>
+<p>The <code>colormodel</code> for <code>postscript()</code> which does use both
+gray and sRGB colorspaces is now called <code>"srgb+gray"</code>.
+</p>
+<p>Plots which are known to use only black/white/transparent can
+advantageously use <code>colormodel = "gray"</code> (just as before, but
+there is now slightly more advantage in doing so).
+</p>
+</li>
+<li> <p><code>postscript()</code> with values <code>colormodel = "rgb"</code> and
+<code>colormodel = "rgb-nogray"</code> give the behaviour prior to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+2.13.0 of uncalibrated RGB, which under some circumstances can be
+rendered much faster by a viewer.
+</p>
+<p><code>pdf(colormodel = "rgb")</code> gives the behaviour prior to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+2.13.0 of uncalibrated RGB, which under some circumstances can be
+rendered faster by a viewer, and the files will be smaller (by
+about 9KB if compression is not used).
+</p>
+</li>
+<li><p> The <code>postscript()</code> device only includes the definition
+of the sRGB colorspace in the output file for the colormodels
+which use it.
+</p>
+</li>
+<li><p> The <code>postscript()</code> and <code>pdf()</code> devices now output
+greyscale raster images (and not RGB) when <code>colormodel = "gray"</code>.
+</p>
+</li>
+<li> <p><code>postscript(colormodel = "gray")</code> now accepts non-grey
+colours and uses their luminance (as <code>pdf()</code> long has).
+</p>
+</li>
+<li> <p><code>colormodel = "grey"</code> is allowed as an alternative name
+for <code>postscript()</code> and <code>pdf()</code>.
+</p>
+</li>
+<li> <p><code>pdf()</code> in the default sRGB colorspace outputs many
+fewer changes of colorspace, which may speed up rendering in some
+viewing applications.
+</p>
+</li>
+<li><p> There is a new function <code>dev.capabilities()</code> to query
+the capabilities of the current device.  The initial set of
+capabilities are support for semi-transparent colours, rendering
+and capturing raster images, the locator and for interactive
+events.
+</p>
+</li>
+<li><p> For <code>pdf()</code>, <code>maxRasters</code> is increased as needed
+so the argument is no longer used.
+</p>
+</li></ul>
+
+
+
+
+<h4>SWEAVE &amp; VIGNETTES</h4>
+
+
+<ul>
+<li><p> Options <code>keep.source = TRUE, figs.only = FALSE</code>
+are now the default.
+</p>
+</li>
+<li><p> The way the type of user-defined options is determined has
+changed.  Previously they were all regarded as logical: now the
+type is determined by the value given at first use.
+</p>
+</li>
+<li><p> The allowed values of logical options are now precisely
+those allowed for character inputs to <code>as.logical()</code>: this
+means that <span class="samp">t</span> and <span class="samp">f</span> are no longer allowed (although
+<code>T</code> and <code>F</code> still are).
+</p>
+</li>
+<li><p> The preferred location for vignette sources is now the
+directory &lsquo;<span class="file">vignettes</span>&rsquo; and not &lsquo;<span class="file">inst/doc</span>&rsquo;: <code>R CMD
+      build</code> will now re-build vignettes in directory &lsquo;<span class="file">vignettes</span>&rsquo;
+and copy the &lsquo;<span class="file">.Rnw</span>&rsquo; (etc) files and the corresponding PDFs to
+&lsquo;<span class="file">inst/doc</span>&rsquo;.  Further files to be copied to &lsquo;<span class="file">inst/doc</span>&rsquo;
+can be specified <em>via</em> the file
+&lsquo;<span class="file">vignettes/.install_extras</span>&rsquo;.
+</p>
+</li>
+<li> <p><code>R CMD Sweave</code> now supports a <span class="option">--driver</span>
+option to select the Sweave driver: the default is equivalent to
+<span class="option">--driver=RweaveLatex</span>.
+</p>
+</li>
+<li> <p><code>R CMD Sweave</code> and <code>R CMD Stangle</code> support
+options <span class="option">--encoding</span> and <span class="option">--options</span>.
+</p>
+</li>
+<li><p> The <code>Rtangle()</code> driver allows <code>output = "stdout"</code>
+or <code>output = "stderr"</code> to select the output or message
+connection.  This is convenient for scripting using something like
+</p>
+<pre>    R CMD Stangle --options='output="stdout"' foo.Rnw &gt; foo2.R</pre>
+</li>
+<li><p> There is a new option <code>pdf.compress</code> controlling
+whether PDF figures are generated using Flate compression (they
+are by default).
+</p>
+</li>
+<li> <p><code>R CMD Sweave</code> now has a <span class="option">--pdf</span> option to
+produce a PDF version of the processed Sweave document.
+</p>
+</li>
+<li><p> It is no longer allowed to have two vignettes with the
+same vignette basename (e.g., &lsquo;<span class="file">vig.Rnw</span>&rsquo; and &lsquo;<span class="file">vig.Snw</span>&rsquo;).
+(Previously one vignette hid the other in the <code>vignette()</code>
+function.)
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li><p> Function <code>R_tmpnam2</code> has been added to the API to allow
+a temporary filename to include a specified extension.
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li><p> Package &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file field <span class="samp">KeepSource</span>
+forces the package to be installed with <code>keep.source =
+	TRUE</code> (or <code>FALSE</code>).  (Suggestion of Greg Snow.  Note that
+as all packages are lazy-loaded, this is now only relevant at
+installation.)
+</p>
+<p>There are corresponding options <span class="option">--with-keep.source</span> and
+<span class="option">--without-keep.source</span> for <code>R CMD INSTALL</code>.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code> has a new option
+<span class="option">--byte-compile</span> to byte-compile the packages during
+installation (since all packages are now lazy-loaded).  This can
+be controlled on a per-package basis by the optional field
+<span class="samp">ByteCompile</span> in the &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file.
+</p>
+</li>
+<li><p> A package <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code but without a &lsquo;<span class="file">NAMESPACE</span>&rsquo; file will
+have a default one created at <code>R CMD build</code> or <code>R
+      CMD INSTALL</code> time, so all packages will be installed with
+namespaces.  A consequence of this is that <code>.First.lib()</code>
+functions need to be copied to <code>.onLoad()</code> (usually) or
+<code>.onAttach()</code>.  For the time being, if there is an
+auto-generated &lsquo;<span class="file">NAMESPACE</span>&rsquo; file and no <code>.onLoad()</code> nor
+<code>.onAttach()</code> function is found but <code>.First.lib()</code> is,
+it will be run as the attach hook (unless the package is one of a
+list of known exceptions, when it will be run as the load hook).
+</p>
+</li>
+<li><p> A warning is given if test-loading a package changes a
+locked binding in a package other than itself.  It is likely that
+this will be disallowed in future releases.  (There are <em>pro
+tem</em> some exceptions to the warning.)
+</p>
+</li>
+<li><p> A dependency on SVN revision is allowed for <code>R</code>,
+e.g. <code>R (&gt;= r56550)</code>.  This should be used in conjunction with a
+version number, e.g. <code>R (&gt;= 2.14.0), R (&gt;= r56550)</code> to
+distinguish between R-patched and R-devel versions with the same
+SVN revision.
+</p>
+</li>
+<li> <p><code>installed.packages()</code> now hashes the names of its
+cache files to avoid very rare problems with excessively long path
+names.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14669">PR#14669</a>)
+</p>
+</li>
+<li><p> A top-level &lsquo;<span class="file">COPYING</span>&rsquo; file in a package is no longer
+installed (file names &lsquo;<span class="file">LICENSE</span>&rsquo; or &lsquo;<span class="file">LICENCE</span>&rsquo; having long
+been preferred).
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD check</code> now gives an error if the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code in a
+vignette fails to run, unless this is caused by a missing package.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now unpacks tarballs in the same way
+as <code>R CMD INSTALL</code>, including making use of the
+environment variable <span class="env">R_INSTALL_TAR</span> to override the default
+behaviour.
+</p>
+</li>
+<li> <p><code>R CMD check</code> performs additional code analysis of
+package startup functions, and notifies about incorrect argument
+lists and (incorrect) calls to functions which modify the search
+path or inappropriately generate messages.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now also checks compiled code for
+symbols corresponding to functions which might terminate <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> or
+write to &lsquo;<span class="file">stdout</span>&rsquo;/&lsquo;<span class="file">stderr</span>&rsquo; instead of the console.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now uses a <code>pdf()</code> device when
+checking examples (rather than <code>postscript()</code>).
+</p>
+</li>
+<li> <p><code>R CMD check</code> now checks line-endings of makefiles
+and C/C++/Fortran sources in subdirectories of &lsquo;<span class="file">src</span>&rsquo; as well
+as in &lsquo;<span class="file">src</span>&rsquo; itself.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now reports as a NOTE what look like
+methods documented with their full names even if there is a
+namespace and they are exported.  In almost all cases they are
+intended to be used only as methods and should use the
+<span class="samp">\method</span> markup.  In the other rare cases the recommended
+form is to use a function such as <code>coefHclust</code> which would
+not get confused with a method, document that and register it in
+the &lsquo;<span class="file">NAMESPACE</span>&rsquo; file by <code>s3method(coef, hclust,
+      coefHclust)</code>.
+</p>
+</li>
+<li><p> The default for the environment variable
+<span class="env">_R_CHECK_COMPACT_DATA2_</span> is now true: thus if using the newer
+forms of compression introduced in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.10.0 would be beneficial
+is now checked (by default).
+</p>
+</li>
+<li><p> Reference output for a vignette can be supplied when
+checking a package by <code>R CMD check</code>: see &lsquo;Writing R
+Extensions&rsquo;.
+</p>
+</li>
+<li> <p><code>R CMD Rd2dvi</code> allows the use of LaTeX package
+<span class="samp">inputenx</span> rather than <span class="samp">inputenc</span>: the value of the
+environment variable <span class="env">RD2DVI_INPUTENC</span> is used.  (LaTeX package
+<span class="samp">inputenx</span> is an optional install which provides greater
+coverage of the UTF-8 encoding.)
+</p>
+</li>
+<li> <p><code>Rscript</code> on a Unix-alike now accepts file names
+containing spaces (provided these are escaped or quoted in the
+shell).
+</p>
+</li>
+<li> <p><code>R CMD build</code> on a Unix-alike (only) now tries to
+preserve dates on files it copies from its input directory.  (This
+was the undocumented behaviour prior to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0.)
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li> <p><code>require()</code> no longer has a <code>save</code> argument.
+</p>
+</li>
+<li><p> The <code>gamma</code> argument to <code>hsv()</code>,
+<code>rainbow()</code>, and <code>rgb2hsv()</code> has been removed.
+</p>
+</li>
+<li><p> The <span class="option">--no-docs</span> option for
+<code>R CMD build --binary</code> is defunct: use
+<span class="option">--install-args</span> instead.
+</p>
+</li>
+<li><p> The option <span class="option">--unsafe</span> to <code>R CMD INSTALL</code> is
+defunct: use the identical option <span class="option">--no-lock</span> instead.
+</p>
+</li>
+<li><p> The entry point <code>pythag</code> formerly in &lsquo;<span class="file">Rmath.h</span>&rsquo; is
+defunct: use instead the C99 function <code>hypot</code>.
+</p>
+</li>
+<li> <p><code>R CMD build --binary</code> is formally defunct:
+<code>R CMD INSTALL --build</code> has long been the preferred
+alternative.
+</p>
+</li>
+<li> <p><code>zip.file.extract()</code> is now defunct: use
+<code>unzip()</code> or <code>unz()</code> instead.
+</p>
+</li>
+<li> <p><code>R CMD Rd2dvi</code> without the <span class="option">--pdf</span> option is
+now deprecated: only PDF output will be supported in future
+releases (since this allows the use of fonts only supported for
+PDF), and only <code>R CMD Rd2pdf</code> will be available.
+</p>
+</li>
+<li><p> Options such as <span class="option">--max-nsize</span> and the function
+<code>mem.limits()</code> are now deprecated: these limits are nowadays
+almost never used, and are reported by <code>gc()</code> when they are
+in use.
+</p>
+</li>
+<li><p> Forms like <code>binomial(link = "link")</code> for GLM families
+deprecated since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.4.0 are now defunct.
+</p>
+</li>
+<li><p> The <code>declarativeOnly</code> argument to
+<code>loadNamespace()</code> (not relevant since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0) has been
+removed.
+</p>
+</li>
+<li><p> Use of <code>library.dynam()</code> without specifying all the
+first three arguments is deprecated.  (It is often called from a
+namespace, and the defaults are only appropriate to a package.)
+</p>
+<p>Use of <code>chname</code> in <code>library.dynam()</code> with the extension
+&lsquo;<span class="file">.so</span>&rsquo; or <code>.dll</code> (which is clearly not allowed according
+to the help page) is deprecated.  This also applies to
+<code>library.dynam.unload()</code> and <code>useDynLib</code> directives in
+&lsquo;<span class="file">NAMESPACE</span>&rsquo; files.
+</p>
+</li>
+<li><p> It is deprecated to use <code>mean(x)</code> and <code>sd(x)</code>
+directly on data frames (or also matrices, for <code>sd</code>)
+<code>x</code>, instead of simply using <code>sapply</code>.
+</p>
+<p>In the same spirit, <code>median(x)</code> now gives an error for a data
+frame <code>x</code> (it often gave nonsensical results).
+</p>
+</li>
+<li><p> The <code>keep.source</code> argument to <code>library()</code> and
+<code>require()</code> is deprecated: it was only used for packages
+installed without lazy-loading, and now all packages are
+lazy-loaded.
+</p>
+</li>
+<li><p> Using a false value for the &lsquo;<span class="file">DESCRIPTION</span>&rsquo; field
+<span class="samp">LazyLoad</span> is deprecated.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> The base and recommended packages are now byte-compiled
+(equivalent to <code>make bytecode</code> in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.x).
+</p>
+</li>
+<li><p> Configure option <span class="option">--with-system-zlib</span> now only makes
+use of the basic interface of <code>zlib</code> and not the
+C function <span class="samp">gzseek</span> which has shown erroneous behaviour in
+<code>zlib</code> 1.2.4 and 1.2.5.
+</p>
+</li>
+<li><p> The <code>zlib</code> in the R sources is now version 1.2.5.
+(This is safe even on 32-bit Linux systems because only the basic
+interface is now used.)
+</p>
+</li>
+<li><p> The &lsquo;<span class="file">.afm</span>&rsquo; files in package <span class="pkg">grDevices</span> are now
+installed as compressed files (as long done on Windows), saving ca
+2MB on the installed size.
+</p>
+</li>
+<li><p> The non-screen cairo-based devices are no longer in the X11
+module and so can be installed without X11.  (We have never seen a
+Unix-alike system with cairographics installed but not X11, but a
+user might select <span class="option">--without-x</span>.)
+</p>
+</li>
+<li><p> Configure will try to use <span class="option">-fobjc-exceptions</span> for the
+Objective-C compiler (if present) to ensure that even compilers
+that do not enable exceptions by default (such as vanilla gcc) can
+be used.  (Objective-C is currently only used on Mac OS X.)
+</p>
+</li>
+<li><p> The system call <code>times</code> is required.
+</p>
+</li>
+<li><p> The C99 functions <code>acosh</code>, <code>asinh</code>, <code>atanh</code>,
+<code>snprintf</code> and <code>vsnprintf</code> are now required.
+</p>
+</li>
+<li><p> There is no longer support for making DVI manuals <em>via</em>
+<code>make dvi</code>, <code>make install-dvi</code> and similar.  Only
+PDF manuals are supported (to allow the use of fonts which are
+only available for PDF.)
+</p>
+</li>
+<li><p> The &lsquo;<span class="file">configure</span>&rsquo; arguments used during configuration of
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> are included as a comment in &lsquo;<span class="file">Makeconf</span>&rsquo; for informative
+purposes on Unix-alikes in a form suitable for shell execution.
+Note that those are merely command-line arguments, they do not
+include environment variables (one more reason to use configure
+variables instead) or site configuration settings.
+</p>
+</li>
+<li><p> Framework installation now supports <code>DESTDIR</code>
+(Mac OS X only).
+</p>
+</li>
+<li><p> Java detection (<code>R CMD javareconf</code>) works around bogus
+<code>java.library.path</code> property in recent Oracle Java binaries.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> The locale category <span class="samp">LC_MONETARY</span> was only being set on
+startup on Windows: that is now done on Unix-alikes where
+supported.
+</p>
+</li>
+<li><p> Reference class utilities will detect an attempt to modify
+methods or fields in a locked class definition (e.g., in a
+namespace) and generate an error.
+</p>
+</li>
+<li><p> The formula methods for <code>lines()</code>, <code>points()</code> and
+<code>text()</code> now work even if package <span class="pkg">stats</span> is not on the
+search path.
+</p>
+</li>
+<li><p> In principle, S4 classes from different packages could
+have the same name.  This has not previously worked.  Changes
+have now been installed that should allow such classes and
+permit methods to use them.  New functions <code>className()</code>
+and <code>multipleClasses()</code> are related tools for programming.
+</p>
+</li>
+<li><p> Work around an issue in Linux (a system <code>select</code> call
+resetting <code>tv</code>) which prevented internet operations from
+timing out properly.
+</p>
+</li>
+<li><p> Several stack trampling and overflow issues have been fixed
+in TRE, triggered by <code>agrep</code> and friends with long patterns.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14627">PR#14627</a>)
+</p>
+</li>
+<li><p> (&ldquo;design infelicity&rdquo;) Field assignments in reference
+classes are now consistent with slots in S4 classes:  the
+assigned value must come from the declared class (if any) for the field
+or from a subclass.
+</p>
+</li>
+<li><p> The methods objects constructed for <code>"coerce"</code> and
+<code>"coerce&lt;-"</code> were lacking some essential information in the
+<code>generic</code>, <code>defined</code> and <code>target</code> slots;
+<code>as()</code> did not handle duplicate class definitions correctly.
+</p>
+</li>
+<li><p> The parser no longer accepts the digit <code>8</code> in an octal
+character code in a string, nor does it accept unterminated
+strings in a file.  (Reported by Bill Dunlap.)
+</p>
+</li>
+<li><p> The <code>print()</code> method for class <code>"summary.aov"</code> did
+not pass on argument <code>digits</code> when <code>summary()</code> was
+called on a single object, and hence used more digits than
+documented.
+</p>
+</li>
+<li><p> The <code>X11()</code> device's cairo back-end produced incorrect
+capture snapshot images on big-endian machines.
+</p>
+</li>
+<li> <p><code>loglin()</code> gave a spurious error when argument
+<code>margin</code> consisted of a single element of length one.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14690">PR#14690</a>)
+</p>
+</li>
+<li> <p><code>loess()</code> is better protected against misuse,
+e.g. zero-length <code>span</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14691">PR#14691</a>)
+</p>
+</li>
+<li> <p><code>HoltWinters()</code> checks that the optimization
+succeeded. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14694">PR#14694</a>)
+</p>
+</li>
+<li><p> The (undocumented) inclusion of superclass objects in
+default initializing of reference classes overwrote explicit
+field arguments. The bug is fixed, the feature documented and a
+test added.
+</p>
+</li>
+<li> <p><code>round(x, -Inf)</code> now does something sensible (return
+zero rather than <code>NA</code>).
+</p>
+</li>
+<li> <p><code>signif(x, -Inf)</code> now behaves as documented
+(<code>signif(x, 1)</code>) rather than giving zero.
+</p>
+</li>
+<li><p> The <code>"table"</code> method for <code>Axis()</code> hardcoded
+<code>side = 1</code>, hence calls to <code>plot(&lt;vector&gt;, &lt;table&gt;)</code>
+labelled the wrong axis. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14699">PR#14699</a>)
+</p>
+</li>
+<li><p> Creating a connection might fail under <code>gctorture(TRUE)</code>.
+</p>
+</li>
+<li> <p><code>stack()</code> and <code>unstack()</code> converted character
+columns to factors.
+</p>
+<p><code>unstack()</code> sometimes produced incorrect results (a list or a
+vector) if the factor on which to un-split had only one level.
+</p>
+</li>
+<li><p> On some systems <code>help(".C", help_type = "pdf")</code> and
+similar generated file names that TeX was unable to handle.
+</p>
+</li>
+<li><p> Non-blocking listening socket connections continued to
+report <code>isIncomplete()</code> as true even when the peer had closed
+down and all available input had been read.
+</p>
+</li>
+<li><p> The revised HTML search system now generates better
+hyperlinks to help topics found: previously it gave problems with
+help pages with names containing e.g. spaces and slashes.
+</p>
+</li>
+<li><p> A late change in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.2 broke <span class="samp">\Sexpr</span> expressions
+in Rd files.
+</p>
+</li>
+<li><p> The creation of ticks on log axes (including by
+<code>axTicks()</code>) sometimes incorrectly omitted a tick at one end
+of the range by rounding error in a platform-dependent way.  This
+could be seen in the examples for <code>axTicks()</code>, where with
+axis limits <code>c(0.2, 88)</code> the tick for <code>0.2</code> was
+sometimes omitted.
+</p>
+</li>
+<li> <p><code>qgamma()</code> for small <code>shape</code> underflows to
+<code>0</code> rather than sometimes giving <code>NaN</code>.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=8528">PR#8528</a>, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14710">PR#14710</a>)
+</p>
+</li>
+<li> <p><code>mapply()</code> now gives an explicit error message (rather
+than an obscure one) if inputs of zero and positive length are
+mixed.
+</p>
+</li>
+<li><p> Setting a Hershey font family followed by string height
+query would crash R.
+</p>
+</li>
+<li> <p><code>R CMD javareconf -e</code> would fail for some shells due to
+a shift error. Also the resulting paths will no longer contain
+<code>$(JAVA_HOME)</code> as that can result in an unintended
+substitution based on &lsquo;<span class="file">Makeconf</span>&rsquo; instead of the shell
+setting.
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.13.2</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>mem.limits()</code> now reports values larger than the
+maximum integer (previously documented to be reported as
+<code>NA</code>), and allows larger values to be set, including
+<code>Inf</code> to remove the limit.
+</p>
+</li>
+<li><p> The <code>print()</code> methods for classes <code>"Date"</code>,
+<code>"POSIXct"</code> and <code>"POSIXlt"</code> respect the option
+<code>"max.print"</code> and so are much faster for very long datetime
+vectors.  (Suggestion of Yohan Chalabi.)
+</p>
+</li>
+<li> <p><code>untar2()</code> now works around errors generated with
+<code>tar</code> files that use more than the standard 6 digits for the
+checksum. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14654">PR#14654</a>)
+</p>
+</li>
+<li> <p><code>install.packages()</code> with <code>Ncpus &gt; 1</code> guards
+against simultaneous installation of indirect dependencies as well
+as direct ones.
+</p>
+</li>
+<li><p> Sweave now knows about a few more Windows' encodings
+(including <code>cp1250</code> and <code>cp1257</code>) and some
+<code>inputenx</code> encodings such as <code>koi8-r</code>.
+</p>
+</li>
+<li> <p><code>postscript(colormodel = "rgb-nogray")</code> no longer sets
+the sRGB colorspace for each colour and so some viewers may render
+its files much faster than the default <code>colormodel ="rgb"</code>.
+</p>
+</li>
+<li><p> The default for <code>pdf(maxRasters=)</code> has been increased
+from 64 to 1000.
+</p>
+</li>
+<li> <p><code>readBin()</code> now warns if <code>signed = FALSE</code> is used
+inappropriately (rather than being silently ignored).
+</p>
+<p>It enforces the documented limit of <i>2^31-1</i> bytes
+in a single call.
+</p>
+</li>
+<li><p> PCRE has been updated to version 8.13, a bug-fix release
+with updated Unicode tables (version 6.0.0).  An additional patch
+(r611 from PCRE 8.20-to-be) has been added to fix a collation
+symbol recognition issue.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> It is possible to build in &lsquo;<span class="file">src/extra/xdr</span>&rsquo; on more
+platforms.  (Needed since glibc 2.14 hides its RPC implementation.)
+</p>
+</li>
+<li> <p><code>configure</code> will find the Sun TI-RPC implementation
+of xdr (in &lsquo;<span class="file">libtirpc</span>&rsquo;) provided its header files are in the
+search path: see the &lsquo;R Installation and Administration
+Manual&rsquo;.
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li><p> Using a broad <code>exportPattern</code> directive in a
+&lsquo;<span class="file">NAMESPACE</span>&rsquo; file is no longer allowed to export internal
+objects such as <code>.onLoad</code> and <code>.__S3MethodsTable__.</code> .
+</p>
+<p>These are also excluded from imports, along with <code>.First.lib</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>fisher.test()</code> had a buglet: If arguments were factors
+with unused levels, levels were dropped and you would get an error
+saying that there should be at least two levels, inconsistently
+with pre-tabulated data.  (Reported by Michael Fay).
+</p>
+</li>
+<li> <p><code>package.skeleton()</code> will no longer dump S4 objects
+supplied directly rather than in a code file.  These cannot be
+restored correctly from the dumped version.
+</p>
+</li>
+<li><p> Build-time expressions in help files did not have access
+to functions in the package being built (with <code>R CMD build</code>).
+</p>
+</li>
+<li><p> Because <code>quote()</code> did not mark its result as being in
+use, modification of the result could in some circumstances
+modify the original call.
+</p>
+</li>
+<li><p> Plotting <code>pch = '.'</code> now guarantees at least a one-pixel
+dot if <code>cex &gt; 0</code>.
+</p>
+</li>
+<li><p> The very-rarely-used command-line option
+<span class="option">--max-vsize</span> was incorrectly interpreted as a number of
+Vcells and not in bytes as documented.  (Spotted by Christophe
+Rhodes.)
+</p>
+</li>
+<li><p> The HTML generated by <code>Rd2HTML()</code> comes closer to
+being standards compliant.
+</p>
+</li>
+<li> <p><code>filter(x, recursive = TRUE)</code> gave incorrect results on a
+series containing <code>NA</code>s.  (Spotted by Bill Dunlap.)
+</p>
+</li>
+<li><p> Profiling <code>stats::mle()</code> fits with a <code>fixed</code>
+parameter was not supported.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14646">PR#14646</a>)
+</p>
+</li>
+<li> <p><code>retracemem()</code> was still using positional matching.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14650">PR#14650</a>)
+</p>
+</li>
+<li><p> The <code>quantile</code> method for <code>"ecdf"</code> objects now
+works and is documented.
+</p>
+</li>
+<li> <p><code>xtabs(~ .., ..., sparse=TRUE)</code> now also works together
+with an <code>exclude = ..</code> specification.
+</p>
+</li>
+<li> <p><code>decompose()</code> computed an incorrect seasonal component for
+time series with odd frequencies.
+</p>
+</li>
+<li><p> The <code>pdf()</code> device only includes the definition of the
+sRGB colorspace in the output file for the <code>"rgb"</code> colormodel
+(and not for <code>"gray"</code> nor <code>"cmyk"</code>): this saves ca
+9KB in the output file.
+</p>
+</li>
+<li> <p><code>.hasSlot()</code> wrongly gave <code>FALSE</code> in some cases.
+</p>
+</li>
+<li> <p><code>Sweave()</code> with <code>keep.source=TRUE</code> could generate
+spurious <code>NA</code> lines when a chunk reference appeared last in
+a code chunk.
+</p>
+</li>
+<li> <p><span class="samp">\Sexpr[results=rd]</span> in an &lsquo;<span class="file">.Rd</span>&rsquo; file now first tries
+<code>parse_Rd(fragment=FALSE)</code> to allow Rd section-level macros
+to be inserted.
+</p>
+</li>
+<li><p> The <code>print()</code> method for class <code>"summary.aov"</code> did
+not pass on arguments such as <code>signif.stars</code> when
+<code>summary()</code> was called on a single object.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14684">PR#14684</a>)
+</p>
+</li>
+<li><p> In rare cases <code>ks.test()</code> could return a p-value
+very slightly less than 0 by rounding error.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14671">PR#14671</a>)
+</p>
+</li>
+<li><p> If <code>trunc()</code> was called on a <code>"POSIXlt"</code> vector
+and the result was subsetted, all but the first element was
+converted to <code>NA</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14679">PR#14679</a>)
+</p>
+</li>
+<li> <p><code>cbind()</code> and <code>rbind()</code> could cause memory
+corruption when used on a combination of raw and logical/integer
+vectors.
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.13.1</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>iconv()</code> no longer translates <code>NA</code> strings as
+<code>"NA"</code>.
+</p>
+</li>
+<li> <p><code>persp(box = TRUE)</code> now warns if the surface extends
+outside the box (since occlusion for the box and axes is computed
+assuming the box is a bounding box). (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=202">PR#202</a>)
+</p>
+</li>
+<li> <p><code>RShowDoc()</code> can now display the licences shipped with
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, e.g. <code>RShowDoc("GPL-3")</code>.
+</p>
+</li>
+<li><p> New wrapper function <code>showNonASCIIfile()</code> in package
+<span class="pkg">tools</span>.
+</p>
+</li>
+<li> <p><code>nobs()</code> now has a <code>"mle"</code> method in package
+<span class="pkg">stats4</span>.
+</p>
+</li>
+<li> <p><code>trace()</code> now deals correctly with S4 reference classes
+and corresponding reference methods (e.g., <code>$trace()</code>)
+have been added.
+</p>
+</li>
+<li> <p><code>xz</code> has been updated to 5.0.3 (very minor bugfix
+release).
+</p>
+</li>
+<li> <p><code>tools::compactPDF()</code> gets more compression (usually a
+little, sometimes a lot) by using the compressed object streams of
+PDF 1.5.
+</p>
+</li>
+<li> <p><code>cairo_ps(onefile = TRUE)</code> generates encapsulated EPS
+on platforms with cairo &gt;= 1.6.
+</p>
+</li>
+<li><p> Binary reads (e.g., by <code>readChar()</code> and <code>readBin()</code>)
+are now supported on clipboard connections.  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14593">PR#14593</a>.)
+</p>
+</li>
+<li> <p><code>as.POSIXlt.factor()</code> now passes <code>...</code> to the
+character method (suggestion of Joshua Ulrich).  [Intended for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+2.13.0 but accidentally removed before release.]
+</p>
+</li>
+<li> <p><code>vector()</code> and its wrappers such as <code>integer()</code>
+and <code>double()</code> now warn if called with a <code>length</code>
+argument of more than one element.  This helps track down user
+errors such as calling <code>double(x)</code> instead of
+<code>as.double(x)</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> Building the vignette PDFs in packages <span class="pkg">grid</span> and
+<span class="pkg">utils</span> is now part of running <code>make</code> from an SVN
+checkout on a Unix-alike: a separate <code>make vignettes</code> step
+is no longer required.
+</p>
+<p>These vignettes are now made with <code>keep.source = TRUE</code> and
+hence will be laid out differently.
+</p>
+</li>
+<li> <p><code>make install-strip</code> failed under some configuration
+options.
+</p>
+</li>
+<li><p> Packages can customize non-standard installation of compiled
+code via a <code>src/install.libs.R</code> script. This allows packages that
+have architecture-specific binaries (beyond the package's shared
+objects/DLLs) to be installed in a multi-architecture setting.
+</p>
+</li></ul>
+
+
+
+
+<h4>SWEAVE &amp; VIGNETTES</h4>
+
+
+<ul>
+<li> <p><code>Sweave()</code> and <code>Stangle()</code> gain an <code>encoding</code>
+argument to specify the encoding of the vignette sources if the
+latter do not contain a <span class="samp">\usepackage[]{inputenc}</span> statement
+specifying a single input encoding.
+</p>
+</li>
+<li><p> There is a new Sweave option <code>figs.only = TRUE</code> to run
+each figure chunk only for each selected graphics device, and not
+first using the default graphics device.   This will become the
+default in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0.
+</p>
+</li>
+<li><p> Sweave custom graphics devices can have a custom function
+<code>foo.off()</code> to shut them down.
+</p>
+</li>
+<li><p> Warnings are issued when non-portable filenames are found
+for graphics files (and chunks if <code>split = TRUE</code>).  Portable
+names are regarded as alphanumeric plus hyphen, underscore, plus
+and hash (periods cause problems with recognizing file
+extensions).
+</p>
+</li>
+<li><p> The <code>Rtangle()</code> driver has a new option
+<code>show.line.nos</code> which is by default false; if true it
+annotates code chunks with a comment giving the line number of the
+first line in the sources (the behaviour of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> &gt;= 2.12.0).
+</p>
+</li>
+<li><p> Package installation tangles the vignette sources: this step
+now converts the vignette sources from the vignette/package
+encoding to the current encoding, and records the encoding (if not
+ASCII) in a comment line at the top of the installed &lsquo;<span class="file">.R</span>&rsquo;
+file.
+</p>
+</li></ul>
+
+
+
+
+<h4>LICENCE</h4>
+
+
+<ul>
+<li><p> No parts of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> are now licensed solely under GPL-2.  The
+licences for packages <a href="https://CRAN.R-project.org/package=rpart"><span class="pkg">rpart</span></a> and <a href="https://CRAN.R-project.org/package=survival"><span class="pkg">survival</span></a> have been
+changed, which means that the licence terms for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> as distributed
+are GPL-2 | GPL-3.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li><p> The internal functions <code>.readRDS()</code> and
+<code>.saveRDS()</code> are now deprecated in favour of the public
+functions <code>readRDS()</code> and <code>saveRDS()</code> introduced in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+2.13.0.
+</p>
+</li>
+<li><p> Switching off lazy-loading of code <em>via</em> the
+<span class="samp">LazyLoad</span> field of the &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file is now
+deprecated.  In future all packages will be lazy-loaded.
+</p>
+</li>
+<li><p> The off-line <code>help()</code> types <span class="samp">"postscript"</span> and
+<span class="samp">"ps"</span> are deprecated.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD check</code> on a multi-architecture installation now
+skips the user's &lsquo;<span class="file">.Renviron</span>&rsquo; file for the
+architecture-specific tests (which do read the
+architecture-specific &lsquo;<span class="file">Renviron.site</span>&rsquo; files).  This is
+consistent with single-architecture checks, which use
+<span class="option">--no-environ</span>.
+</p>
+</li>
+<li> <p><code>R CMD build</code> now looks for &lsquo;<span class="file">DESCRIPTION</span>&rsquo;
+fields <span class="samp">BuildResaveData</span> and <span class="samp">BuildKeepEmpty</span> for
+per-package overrides.  See &lsquo;Writing R Extensions&rsquo;.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>plot.lm(which = 5)</code> was intended to order factor
+levels in increasing order of mean standardized residual.   It
+ordered the factor labels correctly, but could plot the wrong
+group of residuals against the label.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14545">PR#14545</a>)
+</p>
+</li>
+<li> <p><code>mosaicplot()</code> could clip the factor labels, and could
+overlap them with the cells if a non-default value of
+<code>cex.axis</code> was used.  (Related to <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14550">PR#14550</a>.)
+</p>
+</li>
+<li> <p><code>dataframe[[row,col]]</code> now dispatches on <code>[[</code>
+methods for the selected column.  (Spotted by Bill Dunlap).
+</p>
+</li>
+<li> <p><code>sort.int()</code> would strip the class of an object, but
+leave its object bit set.  (Reported by Bill Dunlap.)
+</p>
+</li>
+<li> <p><code>pbirthday()</code> and <code>qbirthday()</code> did not implement
+the algorithm exactly as given in their reference and so were
+unnecessarily inaccurate.
+</p>
+<p><code>pbirthday()</code> now solves the approximate formula analytically
+rather than using <code>uniroot()</code> on a discontinuous function.
+</p>
+<p>The description of the problem was inaccurate: the probability is
+a tail probability (&lsquo;2 <em>or more</em> people share a birthday&rsquo;)
+</p>
+</li>
+<li><p> Complex arithmetic sometimes warned incorrectly about
+producing NAs when there were NaNs in the input.
+</p>
+</li>
+<li> <p><code>seek(origin = "current")</code> incorrectly reported it was
+not implemented for a <code>gzfile()</code> connection.
+</p>
+</li>
+<li> <p><code>c()</code>, <code>unlist()</code>, <code>cbind()</code> and
+<code>rbind()</code> could silently overflow the maximum vector length
+and cause a segfault.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14571">PR#14571</a>)
+</p>
+</li>
+<li><p> The <code>fonts</code> argument to <code>X11(type = "Xlib")</code> was
+being ignored.
+</p>
+</li>
+<li><p> Reading (e.g., with <code>readBin()</code>) from a raw connection
+was not advancing the pointer, so successive reads would read the
+same value.  (Spotted by Bill Dunlap.)
+</p>
+</li>
+<li><p> Parsed text containing embedded newlines was printed
+incorrectly by <code>as.character.srcref()</code>.  (Reported by Hadley
+Wickham.)
+</p>
+</li>
+<li> <p><code>decompose()</code> used with a series of a non-integer
+number of periods returned a seasonal component shorter than the
+original series.  (Reported by Rob Hyndman.)
+</p>
+</li>
+<li> <p><code>fields = list()</code> failed for <code>setRefClass()</code>.
+(Reported by Michael Lawrence.)
+</p>
+</li>
+<li><p> Reference classes could not redefine an inherited field
+which had class <code>"ANY"</code>. (Reported by Janko Thyson.)
+</p>
+</li>
+<li><p> Methods that override previously loaded versions will now
+be installed and called.  (Reported by Iago Mosqueira.)
+</p>
+</li>
+<li> <p><code>addmargins()</code> called <code>numeric(apos)</code> rather than
+<code>numeric(length(apos))</code>.
+</p>
+</li>
+<li><p> The HTML help search sometimes produced bad links.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14608">PR#14608</a>)
+</p>
+</li>
+<li><p> Command completion will no longer be broken if
+<code>tail.default()</code> is redefined by the user. (Problem reported
+by Henrik Bengtsson.)
+</p>
+</li>
+<li><p> LaTeX rendering of markup in titles of help pages has been
+improved; in particular, <code>\eqn{}</code> may be used there.
+</p>
+</li>
+<li> <p><code>isClass()</code> used its own namespace as the default of
+the <code>where</code> argument inadvertently.
+</p>
+</li>
+<li><p> Rd conversion to latex mishandled multi-line titles
+(including cases where there was a blank line in the <span class="samp">\title</span>
+section).  (It seems this happened only in 2.13.0 patched.)
+</p>
+</li>
+<li> <p><code>postscript()</code> with an sRGB colormodel now uses sRGB
+for raster images (in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.[01] it used uncalibrated RGB).
+</p>
+<p>There is no longer an undocumented 21845-pixel limit on raster images.
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.13.0</h3>
+
+
+
+<h4>SIGNIFICANT USER-VISIBLE CHANGES</h4>
+
+
+<ul>
+<li> <p><code>replicate()</code> (by default) and <code>vapply()</code> (always)
+now return a higher-dimensional array instead of a matrix in the case
+where the inner function value is an array of dimension &gt;= 2.
+</p>
+</li>
+<li><p> Printing and formatting of floating point numbers is now
+using the correct number of digits, where it previously rarely
+differed by a few digits. (See &ldquo;scientific&rdquo; entry below.)
+This affects <em>many</em> &lsquo;<span class="file">*.Rout.save</span>&rsquo; checks in packages.
+</p>
+</li></ul>
+
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>normalizePath()</code> has been moved to the <span class="pkg">base</span>
+package (from <span class="pkg">utils</span>): this is so it can be used by
+<code>library()</code> and friends.
+</p>
+<p>It now does tilde expansion.
+</p>
+<p>It gains new arguments <code>winslash</code> (to select the separator on
+Windows) and <code>mustWork</code> to control the action if a canonical
+path cannot be found.
+</p>
+</li>
+<li><p> The previously barely documented limit of 256 bytes on a
+symbol name has been raised to 10,000 bytes (a sanity check).
+Long symbol names can sometimes occur when deparsing expressions
+(for example, in <code>model.frame</code>).
+</p>
+</li>
+<li> <p><code>reformulate()</code> gains a <code>intercept</code> argument.
+</p>
+</li>
+<li> <p><code>cmdscale(add = FALSE)</code> now uses the more common
+definition that there is a representation in <code>n-1</code> or less
+dimensions, and only dimensions corresponding to positive
+eigenvalues are used.  (Avoids confusion such as <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14397">PR#14397</a>.)
+</p>
+</li>
+<li><p> Names used by <code>c()</code>, <code>unlist()</code>, <code>cbind()</code>
+and <code>rbind()</code> are marked with an encoding when this can be
+ascertained.
+</p>
+</li>
+<li><p> R colours are now defined to refer to the sRGB color space.
+</p>
+<p>The PDF, PostScript, and Quartz graphics devices record this fact.
+X11 (and cairo) and Windows just assume that your screen conforms.
+</p>
+</li>
+<li> <p><code>system.file()</code> gains a <code>mustWork</code> argument
+(suggestion of Bill Dunlap).
+</p>
+</li>
+<li> <p><code>new.env(hash = TRUE)</code> is now the default.
+</p>
+</li>
+<li> <p><code>list2env(envir = NULL)</code> defaults to hashing (with a
+suitably sized environment) for lists of more than 100 elements.
+</p>
+</li>
+<li> <p><code>text()</code> gains a formula method.
+</p>
+</li>
+<li> <p><code>IQR()</code> now has a <code>type</code> argument which is passed
+to <code>quantile()</code>.
+</p>
+</li>
+<li> <p><code>as.vector()</code>, <code>as.double()</code> etc duplicate less
+when they leave the mode unchanged but remove attributes.
+</p>
+<p><code>as.vector(mode = "any")</code> no longer duplicates when it does
+not remove attributes.  This helps memory usage in <code>matrix()</code>
+and <code>array()</code>.
+</p>
+<p><code>matrix()</code> duplicates less if <code>data</code> is an atomic vector
+with attributes such as names (but no class).
+</p>
+<p><code>dim(x) &lt;- NULL</code> duplicates less if <code>x</code> has neither
+dimensions nor names (since this operation removes names and
+dimnames).
+</p>
+</li>
+<li> <p><code>setRepositories()</code> gains an <code>addURLs</code> argument.
+</p>
+</li>
+<li> <p><code>chisq.test()</code> now also returns a <code>stdres</code>
+component, for standardized residuals (which have unit variance,
+unlike the Pearson residuals).
+</p>
+</li>
+<li> <p><code>write.table()</code> and friends gain a <code>fileEncoding</code>
+argument, to simplify writing files for use on other OSes (e.g., a
+spreadsheet intended for Windows or Mac OS X Excel).
+</p>
+</li>
+<li><p> Assignment expressions of the form <code>foo::bar(x) &lt;- y</code>
+and <code>foo:::bar(x) &lt;- y</code> now work; the replacement functions
+used are <code>foo::`bar&lt;-`</code> and <code>foo:::`bar&lt;-`</code>.
+</p>
+</li>
+<li> <p><code>Sys.getenv()</code> gains a <code>names</code> argument so
+<code>Sys.getenv(x, names = FALSE)</code> can replace the common idiom
+of <code>as.vector(Sys.getenv())</code>.  The default has been changed
+to not name a length-one result.
+</p>
+</li>
+<li><p> Lazy loading of environments now preserves attributes and
+locked status. (The locked status of bindings and active bindings
+are still not preserved; this may be addressed in the future).
+</p>
+</li>
+<li> <p><code>options("install.lock")</code> may be set to <code>FALSE</code>
+so that <code>install.packages()</code> defaults to <span class="option">--no-lock</span>
+installs, or (on Windows) to <code>TRUE</code> so that binary installs
+implement locking.
+</p>
+</li>
+<li> <p><code>sort(partial = p)</code> for large <code>p</code> now tries
+Shellsort if quicksort is not appropriate and so works for
+non-numeric atomic vectors.
+</p>
+</li>
+<li> <p><code>sapply()</code> gets a new option <code>simplify = "array"</code>
+which returns a &ldquo;higher rank&rdquo; array instead of just a matrix
+when <code>FUN()</code> returns a <code>dim()</code> length of two or more.
+</p>
+<p><code>replicate()</code> has this option set by default, and
+<code>vapply()</code> now behaves that way internally.
+</p>
+</li>
+<li> <p><code>aperm()</code> becomes S3 generic and gets a <code>table</code>
+method which preserves the class.
+</p>
+</li>
+<li> <p><code>merge()</code> and <code>as.hclust()</code> methods for objects of
+class <code>"dendrogram"</code> are now provided.
+</p>
+</li>
+<li><p> The character method of <code>as.POSIXlt()</code> now tries to
+find a format that works for all non-<code>NA</code> inputs, not just
+the first one.
+</p>
+</li>
+<li> <p><code>str()</code> now has a method for class <code>"Date"</code>
+analogous to that for class <code>"POSIXt"</code>.
+</p>
+</li>
+<li><p> New function <code>file.link()</code> to create hard links on
+those file systems (POSIX, NTFS but not FAT) that support them.
+</p>
+</li>
+<li><p> New <code>Summary()</code> group method for class <code>"ordered"</code>
+implements <code>min()</code>, <code>max()</code> and <code>range()</code> for
+ordered factors.
+</p>
+</li>
+<li> <p><code>mostattributes&lt;-()</code> now consults the <code>"dim"</code>
+attribute and not the <code>dim()</code> function, making it more useful
+for objects (such as data frames) from classes with methods for
+<code>dim()</code>.  It also uses <code>attr&lt;-()</code> in preference to the
+generics <code>name&lt;-()</code>, <code>dim&lt;-()</code> and <code>dimnames&lt;-()</code>.
+(Related to <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14469">PR#14469</a>.)
+</p>
+</li>
+<li><p> There is a new option <code>"browserNLdisabled"</code> to disable
+the use of an empty (e.g., via the &lsquo;Return&rsquo; key) as a synonym
+for <code>c</code> in <code>browser()</code> or <code>n</code> under <code>debug()</code>.
+(Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14472">PR#14472</a>.)
+</p>
+</li>
+<li> <p><code>example()</code> gains optional new arguments
+<code>character.only</code> and <code>give.lines</code> enabling programmatic
+exploration.
+</p>
+</li>
+<li> <p><code>serialize()</code> and <code>unserialize()</code> are no longer
+described as &lsquo;experimental&rsquo;.  The interface is now regarded
+as stable, although the serialization format may well change in
+future releases.  (<code>serialize()</code> has a new argument
+<code>version</code> which would allow the current format to be written
+if that happens.)
+</p>
+<p>New functions <code>saveRDS()</code> and <code>readRDS()</code> are public
+versions of the &lsquo;internal&rsquo; functions <code>.saveRDS()</code> and
+<code>.readRDS()</code> made available for general use.  The dot-name
+versions remain available as several package authors have made use
+of them, despite the documentation.  <code>readRDS()</code> no longer
+wraps non-file connections in a call to <code>gzcon()</code>, for
+efficiency (see its documentation).
+</p>
+<p><code>saveRDS()</code> supports <code>compress = "xz"</code>.
+</p>
+</li>
+<li><p> Many functions when called with a not-open connection will
+now ensure that the connection is left not-open in the event of
+error.  These include <code>read.dcf()</code>, <code>dput()</code>,
+<code>dump()</code>, <code>load()</code>, <code>parse()</code>, <code>readBin()</code>,
+<code>readChar()</code>, <code>readLines()</code>, <code>save()</code>,
+<code>writeBin()</code>, <code>writeChar()</code>, <code>writeLines()</code>,
+<code>.readRDS()</code>, <code>.saveRDS()</code> and <code>tools::parse_Rd()</code>,
+as well as functions calling these.
+</p>
+</li>
+<li><p> Public functions <code>find.package()</code> and <code>path.package()</code>
+replace the internal dot-name versions.
+</p>
+</li>
+<li><p> The default method for <code>terms()</code> now looks for a
+<code>"terms"</code> attribute if it does not find a <code>"terms"</code>
+component, and so works for model frames.
+</p>
+</li>
+<li> <p><code>httpd()</code> handlers receive an additional argument
+containing the full request headers as a raw vector (this can be
+used to parse cookies, multi-part forms etc.). The recommended
+full signature for handlers is therefore <code>function(url,
+	query, body, headers, ...)</code>.
+</p>
+</li>
+<li> <p><code>file.edit()</code> gains a <code>fileEncoding</code> argument to
+specify the encoding of the file(s).
+</p>
+</li>
+<li><p> The format of the HTML package listings has changed.  If
+there is more than one library tree , a table of links to
+libraries is provided at the top and bottom of the page.  Where a
+library contains more than 100 packages, an alphabetic index is
+given at the top of the section for that library.  (As a
+consequence, package names are now sorted case-insensitively
+whatever the locale.)
+</p>
+</li>
+<li> <p><code>isSeekable()</code> now returns <code>FALSE</code> on connections
+which have non-default <code>encoding</code>.  Although documented to
+record if &lsquo;in principle&rsquo; the connection supports seeking,
+it seems safer to report <code>FALSE</code> when it may not work.
+</p>
+</li>
+<li> <p><code>R CMD REMOVE</code> and <code>remove.packages()</code> now
+remove file <code>R.css</code> when removing all remaining packages in a
+library tree.  (Related to the wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14475">PR#14475</a>: note that this
+file is no longer installed.)
+</p>
+</li>
+<li> <p><code>unzip()</code> now has a <code>unzip</code> argument like
+<code>zip.file.extract()</code>.  This allows an external
+<code>unzip</code> program to be used, which can be useful to access
+features supported by Info-ZIP's <code>unzip</code> version 6 which
+is now becoming more widely available.
+</p>
+</li>
+<li><p> There is a simple <code>zip()</code> function, as wrapper for an
+external <code>zip</code> command.
+</p>
+</li>
+<li> <p><code>bzfile()</code> connections can now read from concatenated
+<code>bzip2</code> files (including files written with
+<code>bzfile(open = "a")</code>) and files created by some other
+compressors (such as the example of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14479">PR#14479</a>).
+</p>
+</li>
+<li><p> The primitive function <code>c()</code> is now of type BUILTIN.
+</p>
+</li>
+<li> <p><code>plot(&lt;dendrogram&gt;, .., nodePar=*)</code> now obeys an optional
+<code>xpd</code> specification (allowing clipping to be turned off
+completely).
+</p>
+</li>
+<li> <p><code>nls(algorithm="port")</code> now shares more code with
+<code>nlminb()</code>, and is more consistent with the other
+<code>nls()</code> algorithms in its return value.
+</p>
+</li>
+<li> <p><code>xz</code> has been updated to 5.0.1 (very minor bugfix
+release).
+</p>
+</li>
+<li> <p><code>image()</code> has gained a logical <code>useRaster</code>
+argument allowing it to use a bitmap raster for plotting a
+regular grid instead of polygons. This can be more efficient, but
+may not be supported by all devices. The default is <code>FALSE</code>.
+</p>
+</li>
+<li> <p><code>list.files()</code>/<code>dir()</code> gains a new argument
+<code>include.dirs()</code> to include directories in the listing when
+<code>recursive = TRUE</code>.
+</p>
+</li>
+<li><p> New function <code>list.dirs()</code> lists all directories,
+(even empty ones).
+</p>
+</li>
+<li> <p><code>file.copy()</code> now (by default) copies
+read/write/execute permissions on files, moderated by the current
+setting of <code>Sys.umask()</code>.
+</p>
+</li>
+<li> <p><code>Sys.umask()</code> now accepts <code>mode = NA</code> and returns
+the current <code>umask</code> value (visibly) without changing it.
+</p>
+</li>
+<li><p> There is a <code>!</code> method for classes <code>"octmode"</code> and
+<code>"hexmode"</code>: this allows <code>xor(a, b)</code> to work if both
+<code>a</code> and <code>b</code> are from one of those classes.
+</p>
+</li>
+<li> <p><code>as.raster()</code> no longer fails for vectors or matrices
+containing <code>NA</code>s.
+</p>
+</li>
+<li><p> New hook <code>"before.new.plot"</code> allows functions to be run
+just before advancing the frame in <code>plot.new</code>, which is
+potentially useful for custom figure layout implementations.
+</p>
+</li>
+<li><p> Package <span class="pkg">tools</span> has a new function <code>compactPDF()</code>
+to try to reduce the size of PDF files <em>via</em> <code>qpdf</code>
+or <code>gs</code>.
+</p>
+</li>
+<li> <p><code>tar()</code> has a new argument <code>extra_flags</code>.
+</p>
+</li>
+<li> <p><code>dotchart()</code> accepts more general objects <code>x</code> such
+as 1D tables which can be coerced by <code>as.numeric()</code> to a
+numeric vector, with a warning since that might not be
+appropriate.
+</p>
+</li>
+<li><p> The previously internal function <code>create.post()</code> is now
+exported from <span class="pkg">utils</span>, and the documentation for
+<code>bug.report()</code> and <code>help.request()</code> now refer to that
+for <code>create.post()</code>.
+</p>
+<p>It has a new <code>method = "mailto"</code> on Unix-alikes similar to
+that on Windows: it invokes a default mailer via <code>open</code>
+(Mac OS X) or <code>xdg-open</code> or the default browser (elsewhere).
+</p>
+<p>The default for <code>ccaddress</code> is now
+<code>getOption("ccaddress")</code> which is by default unset: using the
+username as a mailing address nowadays rarely works as expected.
+</p>
+</li>
+<li><p> The default for <code>options("mailer")</code> is now
+<code>"mailto"</code> on all platforms.
+</p>
+</li>
+<li> <p><code>unlink()</code> now does tilde-expansion (like most other
+file functions).
+</p>
+</li>
+<li> <p><code>file.rename()</code> now allows vector arguments (of the
+same length).
+</p>
+</li>
+<li><p> The <code>"glm"</code> method for <code>logLik()</code> now returns an
+<code>"nobs"</code> attribute (which <code>stats4::BIC()</code> assumed it
+did).
+</p>
+<p>The <code>"nls"</code> method for <code>logLik()</code> gave incorrect results
+for zero weights.
+</p>
+</li>
+<li><p> There is a new generic function <code>nobs()</code> in package
+<span class="pkg">stats</span>, to extract from model objects a suitable value for
+use in BIC calculations.  An S4 generic derived from it is defined
+in package <span class="pkg">stats4</span>.
+</p>
+</li>
+<li><p> Code for S4 reference-class methods is now examined for
+possible errors in non-local assignments.
+</p>
+</li>
+<li> <p><code>findClasses</code>, <code>getGeneric</code>, <code>findMethods</code>
+and <code>hasMethods</code> are revised to deal consistently with
+the <code>package=</code> argument and be consistent with soft namespace
+policy for finding objects.
+</p>
+</li>
+<li> <p><code>tools::Rdiff()</code> now has the option to return not only
+the status but a character vector of observed differences (which
+are still by default sent to &lsquo;<span class="file">stdout</span>&rsquo;).
+</p>
+</li>
+<li><p> The startup environment variables <span class="env">R_ENVIRON_USER</span>,
+<span class="env">R_ENVIRON</span>, <span class="env">R_PROFILE_USER</span> and <span class="env">R_PROFILE</span> are now
+treated more consistently.  In all cases an empty value is
+considered to be set and will stop the default being used, and for
+the last two tilde expansion is performed on the file name.  (Note
+that setting an empty value is probably impossible on Windows.)
+</p>
+</li>
+<li><p> Using <code>R --no-environ CMD</code>, <code>R
+	--no-site-file CMD</code> or <code>R --no-init-file CMD</code> sets
+environment variables so these settings are passed on to child <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+processes, notably those run by <code>INSTALL</code>, <code>check</code> and
+<code>build</code>. <code>R --vanilla CMD</code> sets these three options
+(but not <span class="option">--no-restore</span>).
+</p>
+</li>
+<li> <p><code>smooth.spline()</code> is somewhat faster.  With
+<code>cv=NA</code> it allows some leverage computations to be skipped,
+</p>
+</li>
+<li><p> The internal (C) function <span class="samp">scientific()</span>, at the heart
+of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>'s <code>format.info(x)</code>, <code>format(x)</code>, <code>print(x)</code>,
+etc, for numeric <code>x</code>, has been re-written in order to provide
+slightly more correct results, fixing <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14491">PR#14491</a>, notably in
+border cases including when <code>digits &gt;= 16</code>, thanks to
+substantial contributions (code and experiments) from Petr
+Savicky.  This affects a noticeable amount of numeric output from
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+</li>
+<li><p> A new function <code>grepRaw()</code> has been introduced for
+finding subsets of raw vectors. It supports both literal searches
+and regular expressions.
+</p>
+</li>
+<li><p> Package <span class="pkg">compiler</span> is now provided as a standard
+package.  See <code>?compiler::compile</code> for information on how to
+use the compiler.  This package implements a byte code compiler
+for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>: by default the compiler is not used in this release.  See
+the &lsquo;R Installation and Administration Manual&rsquo; for how to
+compile the base and recommended packages.
+</p>
+</li>
+<li><p> Providing an <code>exportPattern</code> directive in a NAMESPACE
+file now causes classes to be exported according to the same
+pattern, for example the default from <code>package.skeleton()</code>
+to specify all names starting with a letter.  An explicit
+directive to <code>exportClassPattern</code> will still over-ride.
+</p>
+</li>
+<li><p> There is an additional marked encoding <code>"bytes"</code> for
+character strings.  This is intended to be used for non-ASCII
+strings which should be treated as a set of bytes, and never
+re-encoded as if they were in the encoding of the current locale:
+<code>useBytes = TRUE</code> is automatically selected in functions such
+as <code>writeBin()</code>, <code>writeLines()</code>, <code>grep()</code> and
+<code>strsplit()</code>.
+</p>
+<p>Only a few character operations are supported (such as <code>substr()</code>).
+</p>
+<p>Printing, <code>format()</code> and <code>cat()</code> will represent non-ASCII
+bytes in such strings by a <span class="samp">\xab</span> escape.
+</p>
+</li>
+<li><p> The new function <code>removeSource()</code> removes the internally
+stored source from a function.
+</p>
+</li>
+<li> <p><code>"srcref"</code> attributes now include two additional
+line number values, recording the line numbers in the order they
+were parsed.
+</p>
+</li>
+<li><p> New functions have been added for source reference access:
+<code>getSrcFilename()</code>, <code>getSrcDirectory()</code>,
+<code>getSrcLocation()</code> and <code>getSrcref()</code>.
+</p>
+</li>
+<li> <p><code>Sys.chmod()</code> has an extra argument <code>use_umask</code>
+which defaults to true and restricts the file mode by the current
+setting of <code>umask</code>.  This means that all the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> functions
+which manipulate file/directory permissions by default respect
+<code>umask</code>, notably <code>R CMD INSTALL</code>.
+</p>
+</li>
+<li> <p><code>tempfile()</code> has an extra argument <code>fileext</code> to
+create a temporary filename with a specified extension.
+(Suggestion and initial implementation by Dirk Eddelbuettel.)
+</p>
+<p>There are improvements in the way <code>Sweave()</code> and
+<code>Stangle()</code> handle non-ASCII vignette sources, especially in
+a UTF-8 locale: see &lsquo;Writing R Extensions&rsquo; which now has a
+subsection on this topic.
+</p>
+</li>
+<li> <p><code>factanal()</code> now returns the rotation matrix if a
+rotation such as <code>"promax"</code> is used, and hence factor
+correlations are displayed.  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=12754">PR#12754</a>.)
+</p>
+</li>
+<li><p> The <code>gctorture2()</code> function provides a more refined
+interface to the GC torture process.  Environment variables
+<span class="env">R_GCTORTURE</span>, <span class="env">R_GCTORTURE_WAIT</span>, and
+<span class="env">R_GCTORTURE_INHIBIT_RELEASE</span> can also be used to control the
+GC torture process.
+</p>
+</li>
+<li> <p><code>file.copy(from, to)</code> no longer regards it as an error
+to supply a zero-length <code>from</code>: it now simply does nothing.
+</p>
+</li>
+<li> <p><code>rstandard.glm()</code> gains a <code>type</code> argument which can
+be used to request standardized Pearson residuals.
+</p>
+</li>
+<li><p> A start on a Turkish translation, thanks to Murat Alkan.
+</p>
+</li>
+<li> <p><code>.libPaths()</code> calls <code>normalizePath(winslash = "/")</code>
+on the paths: this helps (usually) to present them in a
+user-friendly form and should detect duplicate paths accessed via
+different symbolic links.
+</p>
+</li>
+<li> <p><code>download.file()</code> can be now used with external methods
+even if there are spaces in the URL or the target filename.
+</p>
+</li>
+<li><p> The first formal argument of <code>.C()</code>, <code>.Fortran()</code>,
+<code>.Call()</code> and <code>.External()</code> is now referred to a
+<code>.NAME</code> rather than <code>name</code>: however actual calls should
+have an unnamed first argument.
+</p>
+</li></ul>
+
+
+
+
+<h4>SWEAVE CHANGES</h4>
+
+
+<ul>
+<li> <p><code>Sweave()</code> has options to produce PNG and JPEG figures,
+and to use a custom function to open a graphics device (see
+<code>?RweaveLatex</code>).<br />
+(Based in part on the contribution of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14418">PR#14418</a>.)
+</p>
+</li>
+<li><p> The default for <code>Sweave()</code> is to produce only PDF
+figures (rather than both EPS and PDF).
+</p>
+</li>
+<li><p> Environment variable <span class="env">SWEAVE_OPTIONS</span> can be used to
+supply defaults for existing or new options to be applied after
+the Sweave driver setup has been run.
+</p>
+</li>
+<li><p> The Sweave manual is now included as a vignette in the
+<span class="pkg">utils</span> package.
+</p>
+</li>
+<li> <p><code>Sweave()</code> handles <code>keep.source=TRUE</code> much better:
+it could duplicate some lines and omit comments. (Reported by John
+Maindonald and others.)
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li><p> Because they use a C99 interface which a C++ compiler is not
+required to support, <code>Rvprintf</code> and <code>REvprintf</code> are only
+defined by &lsquo;<span class="file">R_ext/Print.h</span>&rsquo; in C++ code if the macro
+<code>R_USE_C99_IN_CXX</code> is defined when it is included.
+</p>
+</li>
+<li> <p><code>pythag</code> duplicated the C99 function <code>hypot</code>.  It
+is no longer provided, but is used as a substitute for <code>hypot</code>
+in the very unlikely event that the latter is not available.
+</p>
+</li>
+<li> <p><code>R_inspect(obj)</code> and <code>R_inspect3(obj, deep, pvec)</code>
+are (hidden) C-level entry points to the internal <code>inspect</code>
+function and can be used for C-level debugging (e.g., in conjunction
+with the <code>p</code> command in <code>gdb</code>).
+</p>
+</li>
+<li><p> Compiling R with <span class="option">--enable-strict-barrier</span> now also
+enables additional checking for use of unprotected objects. In
+combination with <code>gctorture()</code> or <code>gctorture2()</code> and a
+C-level debugger this can be useful for tracking down memory
+protection issues.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD Rdiff</code> is now implemented in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> on
+Unix-alikes (as it has been on Windows since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.12.0).
+</p>
+</li>
+<li> <p><code>R CMD build</code> no longer does any cleaning in the
+supplied package directory: all the cleaning is done in the copy.
+</p>
+<p>It has a new option <span class="option">--install-args</span> to pass arguments to
+<code>R CMD INSTALL</code> for <span class="option">--build</span> (but not when
+installing to rebuild vignettes).
+</p>
+<p>There is new option, <span class="option">--resave-data</span>, to call
+<code>tools::resaveRdaFiles()</code> on the &lsquo;<span class="file">data</span>&rsquo; directory, to
+compress tabular files (&lsquo;<span class="file">.tab</span>&rsquo;, &lsquo;<span class="file">.csv</span>&rsquo; etc) and to
+convert &lsquo;<span class="file">.R</span>&rsquo; files to &lsquo;<span class="file">.rda</span>&rsquo; files.  The default,
+<span class="option">--resave-data=gzip</span>, is to do so in a way compatible even
+with years-old versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, but better compression is given by
+<span class="option">--resave-data=best</span>, requiring <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> &gt;= 2.10.0.
+</p>
+<p>It now adds a &lsquo;<span class="file">datalist</span>&rsquo; file for &lsquo;<span class="file">data</span>&rsquo; directories of
+more than 1Mb.
+</p>
+<p>Patterns in &lsquo;<span class="file">.Rbuildignore</span>&rsquo; are now also matched against all
+directory names (including those of empty directories).
+</p>
+<p>There is a new option, <span class="option">--compact-vignettes</span>, to try
+reducing the size of PDF files in the &lsquo;<span class="file">inst/doc</span>&rsquo; directory.
+Currently this tries <code>qpdf</code>: other options may be used in
+future.
+</p>
+<p>When re-building vignettes and a &lsquo;<span class="file">inst/doc/Makefile</span>&rsquo; file is
+found, <code>make clean</code> is run if the makefile has a
+<code>clean:</code> target.
+</p>
+<p>After re-building vignettes the default clean-up operation will
+remove any directories (and not just files) created during the
+process: e.g., one package created a &lsquo;<span class="file">.R_cache</span>&rsquo; directory.
+</p>
+<p>Empty directories are now removed unless the option
+<span class="option">--keep-empty-dirs</span> is given (and a few packages do
+deliberately include empty directories).
+</p>
+<p>If there is a field <code>BuildVignettes</code> in the package
+&lsquo;<span class="file">DESCRIPTION</span>&rsquo; file with a false value, re-building the
+vignettes is skipped.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now also checks for filenames that are
+case-insensitive matches to Windows' reserved file names with
+extensions, such as &lsquo;<span class="file">nul.Rd</span>&rsquo;, as these have caused problems
+on some Windows systems.
+</p>
+<p>It checks for inefficiently saved &lsquo;<span class="file">data/*.rda</span>&rsquo; and
+&lsquo;<span class="file">data/*.RData</span>&rsquo; files, and reports on those large than 100Kb.
+A more complete check (including of the type of compression, but
+potentially much slower) can be switched on by setting environment
+variable <span class="env">_R_CHECK_COMPACT_DATA2_</span> to <span class="samp">TRUE</span>.
+</p>
+<p>The types of files in the &lsquo;<span class="file">data</span>&rsquo; directory are now checked,
+as packages are <em>still</em> misusing it for non-<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> data files.
+</p>
+<p>It now extracts and runs the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code for each vignette in a
+separate directory and <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process: this is done in the package's
+declared encoding.  Rather than call
+<code>tools::checkVignettes()</code>, it calls
+<code>tools::buildVignettes()</code> to see if the vignettes can be
+re-built as they would be by <code>R CMD build</code>.  Option
+<span class="option">--use-valgrind</span> now applies only to these runs, and not
+when running code to rebuild the vignettes.  This version does a
+much better job of suppressing output from successful vignette
+tests.
+</p>
+<p>The &lsquo;<span class="file">00check.log</span>&rsquo; file is a more complete record of what is
+output to &lsquo;<span class="file">stdout</span>&rsquo;: in particular contains more details of
+the tests.
+</p>
+<p>It now checks all syntactically valid Rd usage entries, and warns
+about assignments (unless these give the usage of replacement
+functions).
+</p>
+<p>&lsquo;<span class="file">.tar.xz</span>&rsquo; compressed tarballs are now allowed, if
+<code>tar</code> supports them (and setting environment variable
+<span class="env">TAR</span> to <span class="samp">internal</span> ensures so on all platforms).
+</p>
+</li>
+<li> <p><code>R CMD check</code> now warns if it finds
+&lsquo;<span class="file">inst/doc/makefile</span>&rsquo;, and <code>R CMD build</code> renames such a
+file to &lsquo;<span class="file">inst/doc/Makefile</span>&rsquo;.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> Installing <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> no longer tries to find <code>perl</code>, and
+<code>R CMD</code> no longer tries to substitute a full path for
+<code>awk</code> nor <code>perl</code> &ndash; this was a legacy from the
+days when they were used by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself.  Because a couple of
+packages do use <code>awk</code>, it is set as the <code>make</code>
+(rather than environment) variable <span class="env">AWK</span>.
+</p>
+</li>
+<li> <p><code>make check</code> will now fail if there are differences
+from the reference output when testing package examples and if
+environment variable <span class="env">R_STRICT_PACKAGE_CHECK</span> is set to a true
+value.
+</p>
+</li>
+<li><p> The C99 double complex type is now required.
+</p>
+<p>The C99 complex trigonometric functions (such as <span class="samp">csin</span>) are
+not currently required (FreeBSD lacks most of them): substitutes
+are used if they are missing.
+</p>
+</li>
+<li><p> The C99 system call <span class="samp">va_copy</span> is now required.
+</p>
+</li>
+<li><p> If environment variable <span class="env">R_LD_LIBRARY_PATH</span> is set
+during configuration (for example in &lsquo;<span class="file">config.site</span>&rsquo;) it is
+used unchanged in file &lsquo;<span class="file">etc/ldpaths</span>&rsquo; rather than being
+appended to.
+</p>
+</li>
+<li> <p><code>configure</code> looks for support for OpenMP and if
+found compiles <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> with appropriate flags and also makes them
+available for use in packages: see &lsquo;Writing R Extensions&rsquo;.
+</p>
+<p>This is currently experimental, and is only used in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> with a
+single thread for <code>colSums()</code> and <code>colMeans()</code>.  Expect
+it to be more widely used in later versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+<p>This can be disabled by the <span class="option">--disable-openmp</span> flag.
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li> <p><code>R CMD INSTALL --clean</code> now removes copies of a
+&lsquo;<span class="file">src</span>&rsquo; directory which are created when multiple
+sub-architectures are in use.  (Following a comment from
+Berwin Turlach.)
+</p>
+</li>
+<li><p> File &lsquo;<span class="file">R.css</span>&rsquo; is now installed on a per-package basis
+(in the package's &lsquo;<span class="file">html</span>&rsquo; directory) rather than in each
+library tree, and this is used for all the HTML pages in the
+package.  This helps when installing packages with static HTML
+pages for use on a webserver.  It will also allow future versions
+of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> to use different stylesheets for the packages they install.
+</p>
+</li>
+<li><p> A top-level file &lsquo;<span class="file">.Rinstignore</span>&rsquo; in the package sources
+can list (in the same way as &lsquo;<span class="file">.Rbuildignore</span>&rsquo;) files under
+<code>inst</code> that should not be installed.  (Why should there be any
+such files?  Because all the files needed to re-build vignettes
+need to be under <code>inst/doc</code>, but they may not need to be
+installed.)
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code> has a new option
+<span class="option">--compact-docs</span> to compact any PDFs under the
+&lsquo;<span class="file">inst/doc</span>&rsquo; directory.  Currently this uses <code>qpdf</code>,
+which must be installed (see &lsquo;Writing R Extensions&rsquo;).
+</p>
+</li>
+<li><p> There is a new option <span class="option">--lock</span> which can be used to
+cancel the effect of <span class="option">--no-lock</span> or <span class="option">--pkglock</span> earlier
+on the command line.
+</p>
+</li>
+<li><p> Option <span class="option">--pkglock</span> can now be used with more than one
+package, and is now the default if only one package is specified.
+</p>
+</li>
+<li><p> Argument <code>lock</code> of <code>install.packages()</code> can now be
+use for Mac binary installs as well as for Windows ones.  The
+value <code>"pkglock"</code> is now accepted, as well as <code>TRUE</code> and
+<code>FALSE</code> (the default).
+</p>
+</li>
+<li><p> There is a new option <span class="option">--no-clean-on-error</span> for
+<code>R CMD INSTALL</code> to retain a partially installed package for
+forensic analysis.
+</p>
+</li>
+<li><p> Packages with names ending in &lsquo;<span class="file">.</span>&rsquo; are not portable
+since Windows does not work correctly with such directory names.
+This is now warned about in <code>R CMD check</code>, and will not be
+allowed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.x.
+</p>
+</li>
+<li><p> The vignette indices are more comprehensive (in the style of
+<code>browseVignetttes()</code>).
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED &amp; DEFUNCT</h4>
+
+
+<ul>
+<li> <p><code>require(save = TRUE)</code> is defunct, and use of the
+<code>save</code> argument is deprecated.
+</p>
+</li>
+<li> <p><code>R CMD check --no-latex</code> is defunct: use
+<span class="option">--no-manual</span> instead.
+</p>
+</li>
+<li> <p><code>R CMD Sd2Rd</code> is defunct.
+</p>
+</li>
+<li><p> The <code>gamma</code> argument to <code>hsv()</code>,
+<code>rainbow()</code>, and <code>rgb2hsv()</code> is deprecated
+and no longer has any effect.
+</p>
+</li>
+<li><p> The previous options for <code>R CMD build --binary</code>
+(<span class="option">--auto-zip</span>, <span class="option">--use-zip-data</span> and
+<span class="option">--no-docs</span>) are deprecated (or defunct):
+use the new option <span class="option">--install-args</span> instead.
+</p>
+</li>
+<li><p> When a character value is used for the <code>EXPR</code>
+argument in <code>switch()</code>, only a single unnamed alternative
+value is now allowed.
+</p>
+</li>
+<li><p> The wrapper <code>utils::link.html.help()</code> is no longer
+available.
+</p>
+</li>
+<li><p> Zip-ing data sets in packages (and hence <code>R CMD
+	INSTALL</code> options <span class="option">--use-zip-data</span> and <span class="option">--auto-zip</span>, as
+well as the <span class="samp">ZipData: yes</span> field in a <code>DESCRIPTION</code> file)
+is defunct.
+</p>
+<p>Installed packages with zip-ed data sets can still be used, but a
+warning that they should be re-installed will be given.
+</p>
+</li>
+<li><p> The &lsquo;experimental&rsquo; alternative specification of a
+namespace via <code>.Export()</code> etc is now defunct.
+</p>
+</li>
+<li><p> The option <span class="option">--unsafe</span> to <code>R CMD INSTALL</code> is
+deprecated: use the identical option <span class="option">--no-lock</span> instead.
+</p>
+</li>
+<li><p> The entry point <code>pythag</code> in &lsquo;<span class="file">Rmath.h</span>&rsquo; is deprecated
+in favour of the C99 function <code>hypot</code>.  A wrapper for
+<code>hypot</code> is provided for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.x only.
+</p>
+</li>
+<li><p> Direct access to the <code>"source"</code> attribute of functions
+is deprecated; use <code>deparse(fn, control="useSource")</code> to access
+it, and <code>removeSource(fn)</code> to remove it.
+</p>
+</li>
+<li> <p><code>R CMD build --binary</code> is now formally deprecated:
+<code>R CMD INSTALL --build</code> has long been the preferred
+alternative.
+</p>
+</li>
+<li><p> Single-character package names are deprecated (and <span class="pkg">R</span>
+is already disallowed to avoid confusion in <span class="samp">Depends:</span>
+fields).
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>drop.terms</code> and the <code>[</code> method for class
+<code>"terms"</code> no longer add back an intercept.  (Reported by
+Niels Hansen.)
+</p>
+</li>
+<li> <p><code>aggregate</code> preserves the class of a column (e.g., a
+date) under some circumstances where it discarded the class
+previously.
+</p>
+</li>
+<li> <p><code>p.adjust()</code> now always returns a vector result, as
+documented.  In previous versions it copied attributes (such as
+dimensions) from the <code>p</code> argument: now it only copies names.
+</p>
+</li>
+<li><p> On PDF and PostScript devices, a line width of zero was
+recorded verbatim and this caused problems for some viewers
+(a very thin line combined with a non-solid line dash pattern
+could also cause a problem).  On these devices, the line width is
+now limited at 0.01 and for very thin lines with complex dash
+patterns the device may force the line dash pattern to be solid.
+(Reported by Jari Oksanen.)
+</p>
+</li>
+<li><p> The <code>str()</code> method for class <code>"POSIXt"</code> now gives
+sensible output for 0-length input.
+</p>
+</li>
+<li><p> The one- and two-argument complex maths functions failed to
+warn if NAs were generated (as their numeric analogues do).
+</p>
+</li>
+<li><p> Added <code>.requireCachedGenerics</code> to the <code>dont.mind</code>
+list for <code>library()</code> to avoid warnings about duplicates.
+</p>
+</li>
+<li> <p><code>$&lt;-.data.frame</code> messed with the class attribute,
+breaking any S4 subclass.  The S4 <code>data.frame</code> class now has its own
+<code>$&lt;-</code> method, and turns dispatch on for this primitive.
+</p>
+</li>
+<li> <p><code>Map()</code> did not look up a character argument <code>f</code>
+in the correct frame, thanks to lazy evaluation.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14495">PR#14495</a>)
+</p>
+</li>
+<li> <p><code>file.copy()</code> did not tilde-expand <code>from</code> and <code>to</code>
+when <code>to</code> was a directory.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14507">PR#14507</a>)
+</p>
+</li>
+<li><p> It was possible (but very rare) for the loading test in
+<code>R CMD INSTALL</code> to crash a child <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process and so leave
+around a lock directory and a partially installed package.  That
+test is now done in a separate process.
+</p>
+</li>
+<li> <p><code>plot(&lt;formula&gt;, data=&lt;matrix&gt;,..)</code> now works in more
+cases; similarly for <code>points()</code>, <code>lines()</code> and
+<code>text()</code>.
+</p>
+</li>
+<li> <p><code>edit.default()</code> contained a manual dispatch for matrices
+(the <code>"matrix"</code> class didn't really exist when it was written).
+This caused an infinite recursion in the no-GUI case and has now
+been removed.
+</p>
+</li>
+<li> <p><code>data.frame(check.rows = TRUE)</code> sometimes worked when
+it should have detected an error.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14530">PR#14530</a>)
+</p>
+</li>
+<li> <p><code>scan(sep= , strip.white=TRUE)</code> sometimes stripped
+trailing spaces from within quoted strings.  (The real bug in
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14522">PR#14522</a>.)
+</p>
+</li>
+<li><p> The rank-correlation methods for <code>cor()</code> and
+<code>cov()</code> with <code>use = "complete.obs"</code> computed the ranks
+before removing missing values, whereas the documentation implied
+incomplete cases were removed first.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14488">PR#14488</a>)
+</p>
+<p>They also failed for 1-row matrices.
+</p>
+</li>
+<li><p> The perpendicular adjustment used in placing text and
+expressions in the margins of plots was not scaled by
+<code>par("mex")</code>. (Part of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14532">PR#14532</a>.)
+</p>
+</li>
+<li><p> Quartz Cocoa device now catches any Cocoa exceptions that
+occur during the creation of the device window to prevent crashes.
+It also imposes a limit of 144 ft^2 on the area used by a window
+to catch user errors (unit misinterpretation) early.
+</p>
+</li>
+<li><p> The browser (invoked by <code>debug()</code>, <code>browser()</code>
+or otherwise) would display attributes such as <code>"wholeSrcref"</code>
+that were intended for internal use only.
+</p>
+</li>
+<li><p> R's internal filename completion now properly handles
+filenames with spaces in them even when the readline library is
+used.  This resolves <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14452">PR#14452</a> provided the internal filename
+completion is used (e.g., by setting <code>rc.settings(files =
+	TRUE)</code>).
+</p>
+</li>
+<li><p> Inside <code>uniroot(f, ...)</code>, <code>-Inf</code> function values
+are now replaced by a maximally <b>negative</b> value.
+</p>
+</li>
+<li> <p><code>rowsum()</code> could silently over/underflow on integer
+inputs (reported by Bill Dunlap).
+</p>
+</li>
+<li> <p><code>as.matrix()</code> did not handle <code>"dist"</code> objects with
+zero rows.
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.12.2 patched</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>max()</code> and <code>min()</code> work harder to ensure that
+<code>NA</code> has precedence over <code>NaN</code>,
+so e.g. <code>min(NaN, NA)</code> is <code>NA</code>.
+(This was not previously documented except
+for within a single numeric vector, where compiler optimizations
+often defeated the code.)
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> A change to the C function <span class="samp">R_tryEval</span> had broken error
+messages in S4 method selection; the error message is now printed.
+</p>
+</li>
+<li><p> PDF output with a non-RGB color model used RGB for the line
+stroke color.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14511">PR#14511</a>)
+</p>
+</li>
+<li> <p><code>stats4::BIC()</code> assumed without checking that an object
+of class <code>"logLik"</code> has an <code>"nobs"</code> attribute:
+<code>glm()</code> fits did not and so <code>BIC()</code> failed for them.
+</p>
+</li>
+<li><p> In some circumstances a one-sided <code>mantelhaen.test()</code>
+reported the p-value for the wrong tail.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14514">PR#14514</a>)
+</p>
+</li>
+<li><p> Passing the invalid value <code>lty = NULL</code> to <code>axis()</code>
+sent an invalid value to the graphics device, and might cause the
+device to segfault.
+</p>
+</li>
+<li> <p><code>Sweave()</code> with <code>concordance=TRUE</code> could lead to
+invalid PDF files; &lsquo;<span class="file">Sweave.sty</span>&rsquo; has been updated to avoid
+this.
+</p>
+</li>
+<li><p> Non-ASCII characters in the titles of help pages were
+not rendered properly in some locales, and could cause errors
+or warnings.
+</p>
+</li>
+<li> <p><code>checkRd()</code> gave a spurious error if the <code>\href</code>
+macro was used.
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.12.2</h3>
+
+
+
+<h4>SIGNIFICANT USER-VISIBLE CHANGES</h4>
+
+
+<ul>
+<li><p> Complex arithmetic (notably <code>z^n</code> for complex <code>z</code>
+and integer <code>n</code>) gave incorrect results since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.10.0 on
+platforms without C99 complex support.  This and some
+lesser issues in trigonometric functions have been corrected.
+</p>
+<p>Such platforms were rare (we know of Cygwin and FreeBSD).
+However, because of new compiler optimizations in the way complex
+arguments are handled, the same code was selected on x86_64 Linux
+with <code>gcc 4.5.x</code> at the default <code>-O2</code> optimization
+(but not at <code>-O</code>).
+</p>
+</li>
+<li><p> There is a workaround for crashes seen with several packages
+on systems using <span class="samp">zlib 1.2.5</span>: see the INSTALLATION section.
+</p>
+</li></ul>
+
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> PCRE has been updated to 8.12 (two bug-fix releases since 8.10).
+</p>
+</li>
+<li> <p><code>rep()</code>, <code>seq()</code>, <code>seq.int()</code> and
+<code>seq_len()</code> report more often when the first element is taken
+of an argument of incorrect length.
+</p>
+</li>
+<li><p> The Cocoa back-end for the <code>quartz()</code> graphics device
+on Mac OS X provides a way to disable event loop processing
+temporarily (useful, e.g., for forked instances of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>).
+</p>
+</li>
+<li> <p><code>kernel()</code>'s default for <code>m</code> was not appropriate
+if <code>coef</code> was a set of coefficients.  (Reported by Pierre
+Chausse.)
+</p>
+</li>
+<li> <p><code>bug.report()</code> has been updated for the current <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> bug
+tracker, which does not accept emailed submissions.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now checks for the correct use of
+<span class="samp">$(LAPACK_LIBS)</span> (as well as <span class="samp">$(BLAS_LIBS)</span>), since
+several CRAN recent submissions have ignored &lsquo;Writing R
+Extensions&rsquo;.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> The <span class="samp">zlib</span> sources in the distribution are now built
+with all symbols remapped: this is intended to avoid problems seen
+with packages such as <a href="https://CRAN.R-project.org/package=XML"><span class="pkg">XML</span></a> and <a href="https://CRAN.R-project.org/package=rggobi"><span class="pkg">rggobi</span></a> which link to
+&lsquo;<span class="file">zlib.so.1</span>&rsquo; on systems using <span class="samp">zlib 1.2.5</span>.
+</p>
+</li>
+<li><p> The default for <span class="env">FFLAGS</span> and <span class="env">FCFLAGS</span> with
+<code>gfortran</code> on x86_64 Linux has been changed back to <span class="samp">-g
+	-O2</span>:  however, setting <span class="samp">-g -O</span> may still be needed for
+<code>gfortran 4.3.x</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li><p> A <span class="samp">LazyDataCompression</span> field in the &lsquo;<span class="file">DESCRIPTION</span>&rsquo;
+file will be used to set the value for the
+<span class="option">--data-compress</span> option of <code>R CMD INSTALL</code>.
+</p>
+</li>
+<li><p> Files &lsquo;<span class="file">R/sysdata.rda</span>&rsquo; of more than 1Mb are now stored
+in the lazyload database using <code>xz</code> compression: this for
+example halves the installed size of package <a href="https://CRAN.R-project.org/package=Imap"><span class="pkg">Imap</span></a>.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code> now ensures that directories
+installed from &lsquo;<span class="file">inst</span>&rsquo; have search permission for everyone.
+</p>
+<p>It no longer installs files &lsquo;<span class="file">inst/doc/Rplots.ps</span>&rsquo; and
+&lsquo;<span class="file">inst/doc/Rplots.pdf</span>&rsquo;.  These are almost certainly left-overs
+from <code>Sweave</code> runs, and are often large.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED &amp; DEFUNCT</h4>
+
+
+<ul>
+<li><p> The &lsquo;experimental&rsquo; alternative specification of a
+namespace via <code>.Export()</code> etc is now deprecated.
+</p>
+</li>
+<li> <p><code>zip.file.extract()</code> is now deprecated.
+</p>
+</li>
+<li><p> Zip-ing data sets in packages (and hence <code>R CMD
+	INSTALL --use-zip-data</code> and the <span class="samp">ZipData: yes</span> field in a
+<code>DESCRIPTION</code> file) is deprecated: using efficiently
+compressed &lsquo;<span class="file">.rda</span>&rsquo; images and lazy-loading of data has
+superseded it.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>identical()</code> could in rare cases generate a warning
+about non-pairlist attributes on CHARSXPs.  As these are used for
+internal purposes, the attribute check should be skipped.
+(Reported by Niels Richard Hansen).
+</p>
+</li>
+<li><p> If the filename extension (usually &lsquo;<span class="file">.Rnw</span>&rsquo;) was not
+included in a call to <code>Sweave()</code>, source references would not
+work properly and the <code>keep.source</code> option failed.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14459">PR#14459</a>)
+</p>
+</li>
+<li> <p><code>format.data.frame()</code> now keeps zero character column names.
+</p>
+</li>
+<li> <p><code>pretty(x)</code> no longer raises an error when <code>x</code>
+contains solely non-finite values. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14468">PR#14468</a>)
+</p>
+</li>
+<li><p> The <code>plot.TukeyHSD()</code> function now uses a line width of
+0.5 for its reference lines rather than <span class="samp">lwd = 0</span> (which
+caused problems for some PDF and PostScript viewers).
+</p>
+</li>
+<li><p> The <code>big.mark</code> argument to <code>prettyNum()</code>,
+<code>format()</code>, etc. was inserted reversed if it was more than
+one character long.
+</p>
+</li>
+<li> <p><code>R CMD check</code> failed to check the filenames under
+&lsquo;<span class="file">man</span>&rsquo; for Windows' reserved names.
+</p>
+</li>
+<li><p> The <code>"Date"</code> and <code>"POSIXt"</code> methods for
+<code>seq()</code> could overshoot when <code>to</code> was supplied and
+<code>by</code> was specified in months or years.
+</p>
+</li>
+<li><p> The internal method of <code>untar()</code> now restores hard
+links as file copies rather than symbolic links (which did not
+work for cross-directory links).
+</p>
+</li>
+<li> <p><code>unzip()</code> did not handle zip files which contained
+filepaths with two or more leading directories which were not in
+the zipfile and did not already exist.  (It is unclear if such
+zipfiles are valid and the third-party C code used did not support
+them, but <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14462">PR#14462</a> created one.)
+</p>
+</li>
+<li> <p><code>combn(n, m)</code> now behaves more regularly for the border
+case <i>m = 0</i>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14473">PR#14473</a>)
+</p>
+</li>
+<li><p> The rendering of numbers in plotmath expressions (e.g.,
+<code>expression(10^2)</code>) used the current settings for conversion
+to strings rather than setting the defaults, and so could be
+affected by what has been done before.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14477">PR#14477</a>)
+</p>
+</li>
+<li><p> The methods of <code>napredict()</code> and <code>naresid()</code> for
+<code>na.action = na.exclude</code> fits did not work correctly in the
+very rare event that every case had been omitted in the fit.
+(Reported by Simon Wood.)
+</p>
+</li>
+<li> <p><code>weighted.residuals(drop0=TRUE)</code> returned a vector when
+the residuals were a matrix (e.g., those of class <code>"mlm"</code>).
+(Reported by Bill Dunlap.)
+</p>
+</li>
+<li><p> Package HTML index files &lsquo;<span class="file">&lt;pkg&gt;/html/00Index.html</span>&rsquo; were
+generated with a stylesheet reference that was not correct for
+static browsing in libraries.
+</p>
+</li>
+<li> <p><code>ccf(na.action = na.pass)</code> was not implemented.
+</p>
+</li>
+<li><p> The parser accepted some incorrect numeric constants,
+e.g. <code>20x2</code>.  (Reported by Olaf Mersmann.)
+</p>
+</li>
+<li> <p><code>format(*, zero.print)</code> did not always replace the full
+zero parts.
+</p>
+</li>
+<li><p> Fixes for subsetting or subassignment of <code>"raster"</code>
+objects when not both <code>i</code> and <code>j</code> are specified.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code> was not always respecting the
+<span class="samp">ZipData: yes</span> field of a &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file (although
+this is frequently incorrectly specified for packages with no data
+or which specify lazy-loading of data).
+</p>
+<p><code>R CMD INSTALL --use-zip-data</code> was incorrectly implemented
+as <span class="option">--use-zipdata</span> since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.9.0.
+</p>
+</li>
+<li> <p><code>source(file, echo=TRUE)</code> could fail if the file
+contained <span class="samp">#line</span> directives.  It now recovers more gracefully, but
+may still display the wrong line if the directive gives incorrect
+information.
+</p>
+</li>
+<li> <p><code>atan(1i)</code> returned <code>NaN+Infi</code> (rather than
+<code>0+Infi</code>) on platforms without C99 complex support.
+</p>
+</li>
+<li> <p><code>library()</code> failed to cache S4 metadata (unlike
+<code>loadNamespace()</code>) causing failures in S4-using packages
+without a namespace (e.g., those using reference classes).
+</p>
+</li>
+<li><p> The function <code>qlogis(lp, log.p=TRUE)</code> no longer
+prematurely overflows to <code>Inf</code> when exp(lp) is close to 1.
+</p>
+</li>
+<li><p> Updating S4 methods for a group generic function requires
+resetting the methods tables for the members of the group (patch
+contributed by Martin Morgan).
+</p>
+</li>
+<li><p> In some circumstances (including for package <a href="https://CRAN.R-project.org/package=XML"><span class="pkg">XML</span></a>),
+<code>R CMD INSTALL</code> installed version-control directories from
+source packages.
+</p>
+</li>
+<li><p> Added <code>PROTECT</code> calls to some constructed expressions
+used in C level <code>eval</code> calls.
+</p>
+</li>
+<li> <p><code>utils:::create.post()</code> (used by <code>bug.report()</code>
+and <code>help.request()</code>) failed to quote arguments to the
+mailer, and so often failed.
+</p>
+</li>
+<li> <p><code>bug.report()</code> was naive about how to extract
+maintainer email addresses from package descriptions, so would
+often try mailing to incorrect addresses.
+</p>
+</li>
+<li> <p><code>debugger()</code> could fail to read the environment of a
+call to a function with a <code>...</code> argument.  (Reported by
+Charlie Roosen.)
+</p>
+</li>
+<li> <p><code>prettyNum(c(1i, NA), drop0=TRUE)</code> or
+<code>str(NA_complex_)</code> now work correctly.
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.12.1</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> The DVI/PDF reference manual now includes the help pages for
+all the standard packages: <span class="pkg">splines</span>, <span class="pkg">stats4</span> and
+<span class="pkg">tcltk</span> were previously omitted (intentionally).
+</p>
+</li>
+<li> <p><a href="http://www.rforge.net">http://www.rforge.net</a> has been added to the default
+set of repositories known to <code>setRepositories()</code>.
+</p>
+</li>
+<li><p> xz-utils has been updated to version 5.0.0.
+</p>
+</li>
+<li> <p><code>reshape()</code> now makes use of <code>sep</code> when forming
+names during reshaping to wide format.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14435">PR#14435</a>)
+</p>
+</li>
+<li> <p><code>legend()</code> allows the length of lines to be set by the
+end user <em>via</em> the new argument <code>seg.len</code>.
+</p>
+</li>
+<li><p> New S4 reference class utility methods <code>copy()</code>,
+<code>field()</code>, <code>getRefClass()</code> and <code>getClass()</code> have
+been added to package <span class="pkg">methods</span>.
+</p>
+</li>
+<li><p> When a character value is used for the <code>EXPR</code>
+argument in <code>switch()</code>, a warning is given if more than
+one unnamed alternative value is given.  This will become an
+error in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0.
+</p>
+</li>
+<li> <p><code>StructTS(type = "BSM")</code> now allows series with just
+two seasons.  (Reported by Birgit Erni.)
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> The PDF reference manual is now built as PDF version 1.5
+with object compression, which on platforms for which this is not
+the default (notably MiKTeX) halves its size.
+</p>
+</li>
+<li><p> Variable <span class="env">FCLIBS</span> can be set during configuration, for
+any additional library flags needed when linking a shared object
+with the Fortran 9x compiler.  (Needed with Solaris Studio 12.2.)
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>seq.int()</code> no longer sometimes evaluates arguments
+twice.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14388">PR#14388</a>)
+</p>
+</li>
+<li><p> The <code>data.frame</code> method of <code>format()</code> failed if a
+column name was longer than 256 bytes (the maximum length allowed
+for an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> name).
+</p>
+</li>
+<li> <p><code>predict(&lt;lm object&gt;, type ="terms", ...)</code> failed if
+both <code>terms</code> and <code>interval</code> were specified.  (Reported
+by Bill Dunlap.)
+</p>
+<p>Also, if <code>se.fit = TRUE</code> the standard errors were reported
+for all terms, not just those selected by a non-null <code>terms</code>.
+</p>
+</li>
+<li><p> The TRE regular expressions engine could terminate <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> rather
+than give an error when given certain invalid regular expressions.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14398">PR#14398</a>)
+</p>
+</li>
+<li> <p><code>cmdscale(eig = TRUE)</code> was documented to return <i>n-1</i>
+eigenvalues but in fact only returned <code>k</code>.  It now returns
+all <i>n</i> eigenvalues.
+</p>
+<p><code>cmdscale(add = TRUE)</code> failed to centre the return
+configuration and sometimes lost the labels on the points.  Its
+return value was described wrongly (it is always a list and
+contains component <code>ac</code>).
+</p>
+</li>
+<li> <p><code>promptClass()</code> in package <span class="pkg">methods</span> now works for
+reference classes and gives a suitably specialized skeleton of
+documentation.
+</p>
+<p>Also, <code>callSuper()</code> now works via the <code>methods()</code>
+invocation as well as for initially specified methods.
+</p>
+</li>
+<li> <p><code>download.file()</code> could leave the destination file open
+if the URL was not able to be opened.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14414">PR#14414</a>)
+</p>
+</li>
+<li><p> Assignment of an environment to functions or as an attribute
+to other objects now works for S4 subclasses of <code>"environment"</code>.
+</p>
+</li>
+<li><p> Use of <span class="samp">[[&lt;-</span> for S4 subclasses of
+<code>"environment"</code> generated an infinite recursion from the
+method.  The method has been replaced by internal code.
+</p>
+</li>
+<li><p> In a reference class S4 method, <code>callSuper()</code> now works in
+<code>initialize()</code> methods when there is no explicit superclass
+method.
+</p>
+</li>
+<li> <p><span class="samp">!</span> dropped attributes such as names and dimensions from a
+length-zero argument.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14424">PR#14424</a>)
+</p>
+</li>
+<li><p> When <code>list2env()</code> created an environment it was missing
+a <code>PROTECT</code> call and so was vulnerable to garbage collection.
+</p>
+</li>
+<li> <p><code>Sweave()</code> with <code>keep.source=TRUE</code> dropped
+comments at the start and end of code chunks.  It could also
+fail when <span class="samp">\SweaveInput</span> was combined with named chunks.
+</p>
+</li>
+<li><p> The Fortran code used by <code>nls(algorithm = "port")</code>
+could infinite-loop when compiled with high optimization on a
+modern version of <code>gcc</code>, and <code>SAFE_FFLAGS</code> is now used
+to make this less likely.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14427">PR#14427</a>, seen with 32-bit Windows
+using <code>gcc 4.5.0</code> used from <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.12.0.)
+</p>
+</li>
+<li> <p><code>sapply()</code> with default <code>simplify = TRUE</code> and
+<code>mapply()</code> with default <code>SIMPLIFY = TRUE</code> wrongly
+simplified language-like results, as, e.g., in
+<code>mapply(1:2, c(3,7), FUN = function(i,j) call(':',i,j))</code>.
+</p>
+</li>
+<li><p> Backreferences to undefined patterns in
+<code>[g]sub(pcre = TRUE)</code> could cause a segfault.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14431">PR#14431</a>)
+</p>
+</li>
+<li><p> The <code>format()</code> (and hence the <code>print()</code>) method
+for class <code>"Date"</code> rounded fractional dates towards zero: it
+now always rounds them down.
+</p>
+</li>
+<li><p> Reference S4 class creation could generate ambiguous
+inheritance patterns under very special circumstances.
+</p>
+</li>
+<li> <p><span class="samp">[[&lt;-</span> turned S4 subclasses of <code>"environment"</code> into
+plain environments.
+</p>
+</li>
+<li><p> Long titles for help pages were truncated in package indices
+and a few other places.
+</p>
+</li>
+<li><p> Additional utilities now work correctly with S4 subclasses of
+<code>"environment"</code> (<code>rm</code>, locking tools and active
+bindings).
+</p>
+</li>
+<li> <p><code>spec.ar()</code> now also work for the <code>"ols"</code> method.
+(Reported by Hans-Ruedi Kuensch.)
+</p>
+</li>
+<li><p> The initialization of objects from S4 subclasses of
+<code>"environment"</code> now allocates a new environment object.
+</p>
+</li>
+<li> <p><code>R CMD check</code> has more protection against (probably
+erroneous) example or test output which is invalid in the current
+locale.
+</p>
+</li>
+<li> <p><code>qr.X()</code> with column names and pivoting now also pivots
+the column names.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14438">PR#14438</a>)
+</p>
+</li>
+<li> <p><code>unit.pmax()</code> and <code>unit.pmin()</code> in package
+<span class="pkg">grid</span> gave incorrect results when all inputs were of length 1.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14443">PR#14443</a>)
+</p>
+</li>
+<li><p> The parser for &lsquo;<span class="file">NAMESPACE</span>&rsquo; files ignored misspelled
+directives, rather than signalling an error.  For 2.12.x a warning
+will be issued, but this will be correctly reported as an error
+in later releases. (Reported by Charles Berry.)
+</p>
+</li>
+<li><p> Fix for subsetting of <code>"raster"</code> objects when only one
+of <code>i</code> or <code>j</code> is specified.
+</p>
+</li>
+<li> <p><code>grid.raster()</code> in package <span class="pkg">grid</span> did not accept
+<code>"nativeRaster"</code> objects (like <code>rasterImage()</code> does).
+</p>
+</li>
+<li><p> Rendering raster images in PDF output was resetting the
+clipping region.
+</p>
+</li>
+<li><p> Rendering of raster images on cairo X11 device was wrong,
+particularly when a small image was being scaled up using
+interpolation.
+</p>
+<p>With cairo &lt; 1.6, will be better than before, though still a
+little clunky.  With cairo &gt;= 1.6, should be sweet as.
+</p>
+</li>
+<li><p> Several bugs fixed in <code>read.DIF()</code>:  single column
+inputs caused errors, cells marked as <code>"character"</code> could
+be converted to other types, and (in Windows) copying from the
+clipboard failed.
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.12.0</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> Reading a package's &lsquo;<span class="file">CITATION</span>&rsquo; file now defaults to
+ASCII rather than Latin-1: a package with a non-ASCII
+&lsquo;<span class="file">CITATION</span>&rsquo; file should declare an encoding in its
+&lsquo;<span class="file">DESCRIPTION</span>&rsquo; file and use that encoding for the
+&lsquo;<span class="file">CITATION</span>&rsquo; file.
+</p>
+</li>
+<li> <p><code>difftime()</code> now defaults to the <code>"tzone"</code>
+attribute of <code>"POSIXlt"</code> objects rather than to the current
+timezone as set by the default for the <code>tz</code> argument.  (Wish
+of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14182">PR#14182</a>.)
+</p>
+</li>
+<li> <p><code>pretty()</code> is now generic, with new methods for
+<code>"Date"</code> and <code>"POSIXt"</code> classes (based on code
+contributed by Felix Andrews).
+</p>
+</li>
+<li> <p><code>unique()</code> and <code>match()</code> are now faster on
+character vectors where all elements are in the global <code>CHARSXP</code>
+cache and have unmarked encoding (ASCII).  Thanks to Matthew
+Dowle for suggesting improvements to the way the hash code is
+generated in &lsquo;<span class="file">unique.c</span>&rsquo;.
+</p>
+</li>
+<li><p> The <code>enquote()</code> utility, in use internally, is exported now.
+</p>
+</li>
+<li> <p><code>.C()</code> and <code>.Fortran()</code> now map non-zero return
+values (other than <code>NA_LOGICAL</code>) for logical vectors to
+<code>TRUE</code>: it has been an implicit assumption that they are
+treated as true.
+</p>
+</li>
+<li><p> The <code>print()</code> methods for <code>"glm"</code> and <code>"lm"</code>
+objects now insert linebreaks in long calls in the same way that
+the <code>print()</code> methods for <code>"summary.[g]lm"</code> objects
+have long done.  This does change the layout of the examples for
+a number of packages, e.g. <a href="https://CRAN.R-project.org/package=MASS"><span class="pkg">MASS</span></a>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14250">PR#14250</a>)
+</p>
+</li>
+<li> <p><code>constrOptim()</code> can now be used with method
+<code>"SANN"</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14245">PR#14245</a>)
+</p>
+<p>It gains an argument <code>hessian</code> to be passed to
+<code>optim()</code>, which allows all the <code>...</code> arguments to be
+intended for <code>f()</code> and <code>grad()</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14071">PR#14071</a>)
+</p>
+</li>
+<li> <p><code>curve()</code> now allows <code>expr</code> to be an object of
+mode <code>"expression"</code> as well as <code>"call"</code> and
+<code>"function"</code>.
+</p>
+</li>
+<li><p> The <code>"POSIX[cl]t"</code> methods for <code>Axis()</code> have been
+replaced by a single method for <code>"POSIXt"</code>.
+</p>
+<p>There are no longer separate <code>plot()</code> methods for
+<code>"POSIX[cl]t"</code> and <code>"Date"</code>: the default method has
+been able to handle those classes for a long time.  This
+<em>inter alia</em> allows a single date-time object to be
+supplied, the wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14016">PR#14016</a>.
+</p>
+<p>The methods had a different default (<code>""</code>) for <code>xlab</code>.
+</p>
+</li>
+<li><p> Classes <code>"POSIXct"</code>, <code>"POSIXlt"</code> and
+<code>"difftime"</code> have generators <code>.POSIXct()</code>,
+<code>.POSIXlt()</code> and <code>.difftime()</code>.  Package authors are
+advised to make use of them (they are available from <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.11.0) to
+proof against planned future changes to the classes.
+</p>
+<p>The ordering of the classes has been changed, so <code>"POSIXt"</code>
+is now the second class.  See the document &lsquo;Updating
+packages for changes in R 2.12.x&rsquo; on
+<a href="http://developer.r-project.org">http://developer.r-project.org</a> for the consequences for a
+handful of CRAN packages.
+</p>
+</li>
+<li><p> The <code>"POSIXct"</code> method of <code>as.Date()</code> allows a
+timezone to be specified (but still defaults to UTC).
+</p>
+</li>
+<li><p> New <code>list2env()</code> utility function as an inverse of
+<code>as.list(&lt;environment&gt;)</code> and for fast multi-<code>assign()</code>
+to existing environment.  <code>as.environment()</code> is now generic
+and uses <code>list2env()</code> as list method.
+</p>
+</li>
+<li><p> There are several small changes to output which &lsquo;zap&rsquo;
+small numbers, e.g. in printing quantiles of residuals in
+summaries from <code>"lm"</code> and <code>"glm"</code> fits, and in test
+statistics in <code>print.anova()</code>.
+</p>
+</li>
+<li><p> Special names such as <code>"dim"</code>, <code>"names"</code>, etc, are
+now allowed as slot names of S4 classes, with <code>"class"</code> the
+only remaining exception.
+</p>
+</li>
+<li><p> File &lsquo;<span class="file">.Renviron</span>&rsquo; can have architecture-specific versions
+such as &lsquo;<span class="file">.Renviron.i386</span>&rsquo; on systems with sub-architectures.
+</p>
+</li>
+<li> <p><code>installed.packages()</code> has a new argument
+<code>subarch</code> to filter on sub-architecture.
+</p>
+</li>
+<li><p> The <code>summary()</code> method for <code>packageStatus()</code> now
+has a separate <code>print()</code> method.
+</p>
+</li>
+<li><p> The default <code>summary()</code> method returns an object
+inheriting from class <code>"summaryDefault"</code> which has a
+separate <code>print()</code> method that calls <code>zapsmall()</code> for
+numeric/complex values.
+</p>
+</li>
+<li><p> The startup message now includes the platform and if used,
+sub-architecture: this is useful where different
+(sub-)architectures run on the same OS.
+</p>
+</li>
+<li><p> The <code>getGraphicsEvent()</code> mechanism now allows multiple windows
+to return graphics events, through the new functions
+<code>setGraphicsEventHandlers()</code>, <code>setGraphicsEventEnv()</code>, and
+<code>getGraphicsEventEnv()</code>.  (Currently implemented in the
+<code>windows()</code> and <code>X11()</code> devices.)
+</p>
+</li>
+<li> <p><code>tools::texi2dvi()</code> gains an <code>index</code> argument,
+mainly for use by <code>R CMD Rd2pdf</code>.
+</p>
+<p>It avoids the use of <code>texindy</code> by <code>texinfo</code>'s
+<code>texi2dvi &gt;= 1.157</code>, since that does not emulate
+'makeindex' well enough to avoid problems with special characters
+(such as <span class="samp">(</span>, <span class="samp">{</span>, <span class="samp">!</span>) in indices.
+</p>
+</li>
+<li><p> The ability of <code>readLines()</code> and <code>scan()</code> to
+re-encode inputs to marked UTF-8 strings on Windows since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.7.0
+is extended to non-UTF-8 locales on other OSes.
+</p>
+</li>
+<li> <p><code>scan()</code> gains a <code>fileEncoding</code> argument to
+match <code>read.table()</code>.
+</p>
+</li>
+<li> <p><code>points()</code> and <code>lines()</code> gain <code>"table"</code>
+methods to match <code>plot()</code>.  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=10472">PR#10472</a>.)
+</p>
+</li>
+<li> <p><code>Sys.chmod()</code> allows argument <code>mode</code> to be a
+vector, recycled along <code>paths</code>.
+</p>
+</li>
+<li><p> There are <code>|</code>, <code>&amp;</code> and <code>xor()</code> methods for
+classes <code>"octmode"</code> and <code>"hexmode"</code>, which work
+bitwise.
+</p>
+</li>
+<li><p> Environment variables <span class="env">R_DVIPSCMD</span>, <span class="env">R_LATEXCMD</span>,
+<span class="env">R_MAKEINDEXCMD</span>, <span class="env">R_PDFLATEXCMD</span> are no longer used
+nor set in an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session.  (With the move to
+<code>tools::texi2dvi()</code>, the conventional environment variables
+<span class="env">LATEX</span>, <span class="env">MAKEINDEX</span> and <span class="env">PDFLATEX</span> will be used.
+<code>options("dvipscmd")</code> defaults to the value of <span class="env">DVIPS</span>,
+then to <code>"dvips"</code>.)
+</p>
+</li>
+<li><p> New function <code>isatty()</code> to see if terminal connections are
+redirected.
+</p>
+</li>
+<li> <p><code>summaryRprof()</code> returns the sampling interval in
+component <code>sample.interval</code> and only returns in
+<code>by.self</code> data for functions with non-zero self times.
+</p>
+</li>
+<li> <p><code>print(x)</code> and <code>str(x)</code> now indicate if an empty
+list <code>x</code> is named.
+</p>
+</li>
+<li> <p><code>install.packages()</code> and <code>remove.packages()</code> with
+<code>lib</code> unspecified and multiple libraries in
+<code>.libPaths()</code> inform the user of the library location used
+with a message rather than a warning.
+</p>
+</li>
+<li><p> There is limited support for multiple compressed streams on a
+file: all of <code>[bgx]zfile()</code> allow streams to be appended to an
+existing file, but <code>bzfile()</code> reads only the first stream.
+</p>
+</li>
+<li><p> Function <code>person()</code> in package <span class="pkg">utils</span> now uses
+a given/family scheme in preference to first/middle/last, is
+vectorized to handle an arbitrary number of persons, and gains a
+<code>role</code> argument to specify person roles using a controlled
+vocabulary (the MARC relator terms).
+</p>
+</li>
+<li><p> Package <span class="pkg">utils</span> adds a new <code>"bibentry"</code> class
+for representing and manipulating bibliographic information in
+enhanced BibTeX style, unifying and enhancing the previously
+existing mechanisms.
+</p>
+</li>
+<li><p> A <code>bibstyle()</code> function has been added to the
+<span class="pkg">tools</span> package with default JSS style for rendering
+<code>"bibentry"</code> objects, and a mechanism for registering other
+rendering styles.
+</p>
+</li>
+<li><p> Several aspects of the display of text help are now
+customizable using the new <code>Rd2txt_options()</code> function.
+options(<code>"help_text_width"</code>) is no longer used.
+</p>
+</li>
+<li><p> Added <span class="samp">\href</span> tag to the Rd format, to allow
+hyperlinks to URLs without displaying the full URL.
+</p>
+</li>
+<li><p> Added <span class="samp">\newcommand</span> and <span class="samp">\renewcommand</span> tags
+to the Rd format, to allow user-defined macros.
+</p>
+</li>
+<li><p> New <code>toRd()</code> generic in the <span class="pkg">tools</span> package to
+convert objects to fragments of Rd code, and added
+<code>"fragment"</code> argument to <code>Rd2txt()</code>, <code>Rd2HTML()</code>,
+and <code>Rd2latex()</code> to support it.
+</p>
+</li>
+<li><p> Directory &lsquo;<span class="file">R_HOME/share/texmf</span>&rsquo; now follows the TDS
+conventions, so can be set as a <code>texmf</code> tree (&lsquo;root
+directory&rsquo; in MiKTeX parlance).
+</p>
+</li>
+<li><p> S3 generic functions now use correct S4 inheritance when
+dispatching on an S4 object.  See <code>?Methods</code>, section on
+&ldquo;Methods for S3 Generic Functions&rdquo; for recommendations
+and details.
+</p>
+</li>
+<li> <p><code>format.pval()</code> gains a <code>...</code> argument to pass
+arguments such as <code>nsmall</code> to <code>format()</code>.  (Wish of
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=9574">PR#9574</a>)
+</p>
+</li>
+<li> <p><code>legend()</code> supports <code>title.adj</code>.  (Wish of
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13415">PR#13415</a>)
+</p>
+</li>
+<li><p> Added support for subsetting <code>"raster"</code> objects, plus
+assigning to a subset, conversion to a matrix (of colour
+strings), and comparisons (<span class="samp">==</span> and <span class="samp">!=</span>).
+</p>
+</li>
+<li><p> Added a new <code>parseLatex()</code> function (and related
+functions <code>deparseLatex()</code> and <code>latexToUtf8()</code>) to
+support conversion of bibliographic entries for display in R.
+</p>
+</li>
+<li><p> Text rendering of <span class="samp">\itemize</span> in help uses a Unicode
+bullet in UTF-8 and most single-byte Windows locales.
+</p>
+</li>
+<li><p> Added support for polygons with holes to the graphics
+engine.  This is implemented for the <code>pdf()</code>,
+<code>postscript()</code>, <code>x11(type="cairo")</code>, <code>windows()</code>,
+and <code>quartz()</code> devices (and associated raster formats),
+but not for <code>x11(type="Xlib")</code> or <code>xfig()</code> or
+<code>pictex()</code>.  The user-level interface is the
+<code>polypath()</code> function in <span class="pkg">graphics</span> and
+<code>grid.path()</code> in <span class="pkg">grid</span>.
+</p>
+</li>
+<li><p> File &lsquo;<span class="file">NEWS</span>&rsquo; is now generated at installation with a
+slightly different format: it will be in UTF-8 on platforms using
+UTF-8, and otherwise in ASCII.  There is also a PDF version,
+&lsquo;<span class="file">NEWS.pdf</span>&rsquo;, installed at the top-level of the R distribution.
+</p>
+</li>
+<li> <p><code>kmeans(x, 1)</code> now works.  Further, <code>kmeans</code> now
+returns between and total sum of squares.
+</p>
+</li>
+<li> <p><code>arrayInd()</code> and <code>which()</code> gain an argument
+<code>useNames</code>.  For <code>arrayInd</code>, the default is now false,
+for speed reasons.
+</p>
+</li>
+<li><p> As is done for closures, the default <code>print</code> method for
+the formula class now displays the associated environment if it is
+not the global environment.
+</p>
+</li>
+<li><p> A new facility has been added for inserting code into a
+package without re-installing it, to facilitate testing
+changes which can be selectively added and backed out.  See
+<code>?insertSource</code>.
+</p>
+</li>
+<li><p> New function <code>readRenviron</code> to (re-)read files in the
+format of &lsquo;<span class="file">~/.Renviron</span>&rsquo; and &lsquo;<span class="file">Renviron.site</span>&rsquo;.
+</p>
+</li>
+<li> <p><code>require()</code> will now return <code>FALSE</code> (and not fail)
+if loading the package or one of its dependencies fails.
+</p>
+</li>
+<li> <p><code>aperm()</code> now allows argument <code>perm</code> to be a
+character vector when the array has named dimnames (as the results
+of <code>table()</code> calls do).  Similarly, <code>array()</code> allows
+<code>MARGIN</code> to be a character vector.  (Based on suggestions of
+Michael Lachmann.)
+</p>
+</li>
+<li><p> Package <span class="pkg">utils</span> now exports and documents functions
+<code>aspell_package_Rd_files()</code> and
+<code>aspell_package_vignettes()</code> for spell checking package Rd
+files and vignettes using Aspell, Ispell or Hunspell.
+</p>
+</li>
+<li><p> Package news can now be given in Rd format, and
+<code>news()</code> prefers these &lsquo;<span class="file">inst/NEWS.Rd</span>&rsquo; files to old-style
+plain text &lsquo;<span class="file">NEWS</span>&rsquo; or &lsquo;<span class="file">inst/NEWS</span>&rsquo; files.
+</p>
+</li>
+<li><p> New simple function <code>packageVersion()</code>.
+</p>
+</li>
+<li><p> The PCRE library has been updated to version 8.10.
+</p>
+</li>
+<li><p> The standard Unix-alike terminal interface declares its name
+to readline as 'R', so that can be used for conditional sections
+in &lsquo;<span class="file">~/.inputrc</span>&rsquo; files.
+</p>
+</li>
+<li> <p>&lsquo;Writing R Extensions&rsquo; now stresses that the standard
+sections in &lsquo;<span class="file">.Rd</span>&rsquo; files (other than <span class="samp">\alias</span>,
+<span class="samp">\keyword</span> and <span class="samp">\note</span>) are intended to be unique, and
+the conversion tools now drop duplicates with a warning.
+</p>
+<p>The &lsquo;<span class="file">.Rd</span>&rsquo; conversion tools also warn about an unrecognized type
+in a <span class="samp">\docType</span> section.
+</p>
+</li>
+<li> <p><code>ecdf()</code> objects now have a <code>quantile()</code> method.
+</p>
+</li>
+<li> <p><code>format()</code> methods for date-time objects now attempt to make
+use of a <code>"tzone"</code> attribute with <code>"%Z"</code> and
+<code>"%z"</code> formats, but it is not always possible.  (Wish of
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14358">PR#14358</a>.)
+</p>
+</li>
+<li> <p><code>tools::texi2dvi(file, clean = TRUE)</code> now works in more
+cases (e.g., where emulation is used and when &lsquo;<span class="file">file</span>&rsquo; is not in
+the current directory).
+</p>
+</li>
+<li><p> New function <code>droplevels()</code> to remove unused factor levels.
+</p>
+</li>
+<li> <p><code>system(command, intern = TRUE)</code> now gives an error on
+a Unix-alike (as well as on Windows) if <code>command</code> cannot be
+run.  It reports a non-success exit status from running
+<code>command</code> as a warning.
+</p>
+<p>On a Unix-alike an attempt is made to return the actual exit
+status of the command in <code>system(intern = FALSE)</code>: previously
+this had been system-dependent but on POSIX-compliant systems the
+value return was 256 times the status.
+</p>
+</li>
+<li> <p><code>system()</code> has a new argument <code>ignore.stdout</code>
+which can be used to (portably) ignore standard output.
+</p>
+</li>
+<li> <p><code>system(intern = TRUE)</code> and <code>pipe()</code> connections
+are guaranteed to be available on all builds of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+</li>
+<li> <p><code>Sys.which()</code> has been altered to return <code>""</code> if
+the command is not found (even on Solaris).
+</p>
+</li>
+<li><p> A facility for defining reference-based S4 classes (in the
+OOP style of Java, C++, etc.) has been added experimentally to
+package <span class="pkg">methods</span>; see <code>?ReferenceClasses</code>.
+</p>
+</li>
+<li><p> The <code>predict</code> method for <code>"loess"</code> fits gains an
+<code>na.action</code> argument which defaults to <code>na.pass</code> rather
+than the previous default of <code>na.omit</code>.
+</p>
+<p>Predictions from <code>"loess"</code> fits are now named from the row
+names of <code>newdata</code>.
+</p>
+</li>
+<li><p> Parsing errors detected during <code>Sweave()</code> processing
+will now be reported referencing their original location in the
+source file.
+</p>
+</li>
+<li><p> New <code>adjustcolor()</code> utility, e.g., for simple
+translucent color schemes.
+</p>
+</li>
+<li> <p><code>qr()</code> now has a trivial <code>lm</code> method with a
+simple (fast) validity check.
+</p>
+</li>
+<li><p> An experimental new programming model has been added to
+package <span class="pkg">methods</span> for reference (OOP-style) classes and
+methods.  See <code>?ReferenceClasses</code>.
+</p>
+</li>
+<li><p> bzip2 has been updated to version 1.0.6 (bug-fix release).
+<span class="option">--with-system-bzlib</span> now requires at least version 1.0.6.
+</p>
+</li>
+<li><p> R now provides &lsquo;<span class="file">jss.cls</span>&rsquo; and &lsquo;<span class="file">jss.bst</span>&rsquo; (the class
+and bib style file for the Journal of Statistical Software) as
+well as &lsquo;<span class="file">RJournal.bib</span>&rsquo; and &lsquo;<span class="file">Rnews.bib</span>&rsquo;, and
+<code>R CMD</code> ensures that the &lsquo;<span class="file">.bst</span>&rsquo; and &lsquo;<span class="file">.bib</span>&rsquo; files
+are found by BibTeX.
+</p>
+</li>
+<li><p> Functions using the <span class="env">TAR</span> environment variable no longer
+quote the value when making <code>system</code> calls.  This allows
+values such as <span class="samp">tar --force-local</span>, but does require
+additional quotes in, e.g., <code>TAR = "'/path with spaces/mytar'"</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED &amp; DEFUNCT</h4>
+
+
+<ul>
+<li><p> Supplying the parser with a character string containing both
+octal/hex and Unicode escapes is now an error.
+</p>
+</li>
+<li><p> File extension &lsquo;<span class="file">.C</span>&rsquo; for C++ code files in packages is
+now defunct.
+</p>
+</li>
+<li> <p><code>R CMD check</code> no longer supports configuration
+files containing Perl configuration variables: use the environment
+variables documented in &lsquo;R Internals&rsquo; instead.
+</p>
+</li>
+<li><p> The <code>save</code> argument of <code>require()</code> now defaults to
+<code>FALSE</code> and <code>save = TRUE</code> is now deprecated.  (This
+facility is very rarely actually used, and was superseded by the
+<span class="samp">Depends</span> field of the &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file long ago.)
+</p>
+</li>
+<li> <p><code>R CMD check --no-latex</code> is deprecated in favour of
+<span class="option">--no-manual</span>.
+</p>
+</li>
+<li> <p><code>R CMD Sd2Rd</code> is formally deprecated and will be
+removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0.
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li> <p><code>install.packages()</code> has a new argument
+<code>libs_only</code> to optionally pass <span class="option">--libs-only</span> to
+<code>R CMD INSTALL</code> and works analogously for Windows binary
+installs (to add support for 64- or 32-bit Windows).
+</p>
+</li>
+<li><p> When sub-architectures are in use, the installed
+architectures are recorded in the <code>Archs</code> field of the
+&lsquo;<span class="file">DESCRIPTION</span>&rsquo; file.  There is a new default filter,
+<code>"subarch"</code>, in <code>available.packages()</code> to make use of
+this.
+</p>
+<p>Code is compiled in a copy of the &lsquo;<span class="file">src</span>&rsquo; directory when a
+package is installed for more than one sub-architecture: this
+avoid problems with cleaning the sources between building
+sub-architectures.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL --libs-only</code> no longer overrides the
+setting of locking, so a previous version of the package will be
+restored unless <span class="option">--no-lock</span> is specified.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD Rprof|build|check</code> are now based on <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> rather
+than Perl scripts.  The only remaining Perl scripts are the
+deprecated <code>R CMD Sd2Rd</code> and <code>install-info.pl</code> (used
+only if <code>install-info</code> is not found) as well as some
+maintainer-mode-only scripts.
+</p>
+<p><strong>NB:</strong> because these have been completely rewritten, users
+should not expect undocumented details of previous
+implementations to have been duplicated.
+</p>
+<p><code>R CMD</code> no longer manipulates the environment variables
+<span class="env">PERL5LIB</span> and <span class="env">PERLLIB</span>.
+</p>
+</li>
+<li> <p><code>R CMD check</code> has a new argument <span class="option">--extra-arch</span>
+to confine tests to those needed to check an additional
+sub-architecture.
+</p>
+<p>Its check for &ldquo;Subdirectory 'inst' contains no files&rdquo; is
+more thorough: it looks for files, and warns if there are only
+empty directories.
+</p>
+<p>Environment variables such as <span class="env">R_LIBS</span> and those used for
+customization can be set for the duration of checking <em>via</em> a file
+&lsquo;<span class="file">~/.R/check.Renviron</span>&rsquo; (in the format used by
+&lsquo;<span class="file">.Renviron</span>&rsquo;, and with sub-architecture specific versions
+such as &lsquo;<span class="file">~/.R/check.Renviron.i386</span>&rsquo; taking precedence).
+</p>
+<p>There are new options <span class="option">--multiarch</span> to check the package
+under all of the installed sub-architectures and
+<span class="option">--no-multiarch</span> to confine checking to the
+sub-architecture under which <code>check</code> is invoked.  If
+neither option is supplied, a test is done of installed
+sub-architectures and all those which can be run on the current
+OS are used.
+</p>
+<p>Unless multiple sub-architectures are selected, the install done
+by <code>check</code> for testing purposes is only of the current
+sub-architecture (<em>via</em> <code>R CMD INSTALL --no-multiarch</code>).
+</p>
+<p>It will skip the check for non-ascii characters in code or data
+if the environment variables <span class="env">_R_CHECK_ASCII_CODE_</span> or
+<span class="env">_R_CHECK_ASCII_DATA_</span> are respectively set to <span class="env">FALSE</span>.
+(Suggestion of Vince Carey.)
+</p>
+</li>
+<li> <p><code>R CMD build</code> no longer creates an &lsquo;<span class="file">INDEX</span>&rsquo; file
+(<code>R CMD INSTALL</code> does so), and <span class="option">--force</span> removes
+(rather than overwrites) an existing &lsquo;<span class="file">INDEX</span>&rsquo; file.
+</p>
+<p>It supports a file &lsquo;<span class="file">~/.R/build.Renviron</span>&rsquo; analogously to
+<code>check</code>.
+</p>
+<p>It now runs build-time <span class="samp">\Sexpr</span> expressions in help files.
+</p>
+</li>
+<li> <p><code>R CMD Rd2dvi</code> makes use of <code>tools::texi2dvi()</code>
+to process the package manual.  It is now implemented entirely in
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> (rather than partially as a shell script).
+</p>
+</li>
+<li> <p><code>R CMD Rprof</code> now uses <code>utils::summaryRprof()</code>
+rather than Perl.  It has new arguments to select one of the
+tables and to limit the number of entries printed.
+</p>
+</li>
+<li> <p><code>R CMD Sweave</code> now runs <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> with <span class="option">--vanilla</span> so
+the environment setting of <span class="env">R_LIBS</span> will always be used.
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li> <p><code>lang5()</code> and <code>lang6()</code> (in addition to
+pre-existing <code>lang[1-4]()</code>) convenience functions for easier
+construction of <code>eval()</code> calls.  If you have your own
+definition, do wrap it inside <code>#ifndef lang5 .... #endif</code>
+to keep it working with old and new <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+</li>
+<li><p> Header &lsquo;<span class="file">R.h</span>&rsquo; now includes only the C headers it itself needs,
+hence no longer includes <code>errno.h</code>.  (This helps avoid problems
+when it is included from C++ source files.)
+</p>
+</li>
+<li><p> Headers &lsquo;<span class="file">Rinternals.h</span>&rsquo; and &lsquo;<span class="file">R_ext/Print.h</span>&rsquo; include
+the C++ versions of &lsquo;<span class="file">stdio.h</span>&rsquo; and &lsquo;<span class="file">stdarg.h</span>&rsquo;
+respectively if included from a C++ source file.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> A C99 compiler is now required, and more C99 language features
+will be used in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> sources.
+</p>
+</li>
+<li><p> Tcl/Tk &gt;= 8.4 is now required (increased from 8.3).
+</p>
+</li>
+<li><p> System functions <code>access</code>, <code>chdir</code> and
+<code>getcwd</code> are now essential to configure <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.  (In practice
+they have been required for some time.)
+</p>
+</li>
+<li> <p><code>make check</code> compares the output of the examples
+from several of the base packages to reference output rather than
+the previous output (if any).  Expect some differences due to
+differences in floating-point computations between platforms.
+</p>
+</li>
+<li><p> File &lsquo;<span class="file">NEWS</span>&rsquo; is no longer in the sources, but generated as
+part of the installation.  The primary source for changes is now
+&lsquo;<span class="file">doc/NEWS.Rd</span>&rsquo;.
+</p>
+</li>
+<li><p> The <code>popen</code> system call is now required to build <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+This ensures the availability of <code>system(intern = TRUE)</code>,
+<code>pipe()</code> connections and printing from <code>postscript()</code>.
+</p>
+</li>
+<li><p> The <code>pkg-config</code> file &lsquo;<span class="file">libR.pc</span>&rsquo; now also works
+when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is installed using a sub-architecture.
+</p>
+</li>
+<li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> has always required a BLAS that conforms to IE60559
+arithmetic, but after discovery of more real-world problems caused
+by a BLAS that did not, this is tested more thoroughly in this
+version.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> Calls to <code>selectMethod()</code> by default no longer cache
+inherited methods.  This could previously corrupt methods used by
+<code>as()</code>.
+</p>
+</li>
+<li><p> The densities of non-central chi-squared are now more accurate
+in some cases in the extreme tails,
+e.g. <code>dchisq(2000, 2, 1000)</code>,
+as a series expansion was truncated too early.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14105">PR#14105</a>)
+</p>
+</li>
+<li> <p><code>pt()</code> is more accurate in the left tail for <code>ncp</code>
+large, e.g. <code>pt(-1000, 3, 200)</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14069">PR#14069</a>)
+</p>
+</li>
+<li><p> The default C function (<code>R_binary</code>) for binary ops now
+sets the S4 bit in the result if either argument is an S4 object.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13209">PR#13209</a>)
+</p>
+</li>
+<li> <p><code>source(echo=TRUE)</code> failed to echo comments that
+followed the last statement in a file.
+</p>
+</li>
+<li><p> S4 classes that contained one of <code>"matrix"</code>,
+<code>"array"</code> or <code>"ts"</code> and also another class now accept
+superclass objects in <code>new()</code>.  Also fixes failure to call
+<code>validObject()</code> for these classes.
+</p>
+</li>
+<li><p> Conditional inheritance defined by argument <code>test</code> in
+<code>methods::setIs()</code> will no longer be used in S4 method
+selection (caching these methods could give incorrect results).
+See <code>?setIs</code>.
+</p>
+</li>
+<li><p> The signature of an implicit generic is now used by
+<code>setGeneric()</code> when that does not use a definition nor
+explicitly set a signature.
+</p>
+</li>
+<li><p> A bug in <code>callNextMethod()</code> for some examples with
+<code>"..."</code> in the arguments has been fixed.  See file
+&lsquo;<span class="file">src/library/methods/tests/nextWithDots.R</span>&rsquo; in the sources.
+</p>
+</li>
+<li> <p><code>match(x, table)</code> (and hence <code>%in%</code>) now treat
+<code>"POSIXlt"</code> consistently with, e.g., <code>"POSIXct"</code>.
+</p>
+</li>
+<li><p> Built-in code dealing with environments (<code>get()</code>,
+<code>assign()</code>, <code>parent.env()</code>, <code>is.environment()</code> and
+others) now behave consistently to recognize S4 subclasses;
+<code>is.name()</code> also recognizes subclasses.
+</p>
+</li>
+<li><p> The <code>abs.tol</code> control parameter to <code>nlminb()</code>
+now defaults to <code>0.0</code> to avoid false declarations of
+convergence in objective functions that may go negative.
+</p>
+</li>
+<li><p> The standard Unix-alike termination dialog to ask whether to
+save the workspace takes a EOF response as <code>n</code> to avoid
+problems with a damaged terminal connection.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14332">PR#14332</a>)
+</p>
+</li>
+<li><p> Added <code>warn.unused</code> argument to <code>hist.default()</code>
+to allow suppression of spurious warnings about graphical
+parameters used with <code>plot=FALSE</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14341">PR#14341</a>)
+</p>
+</li>
+<li> <p><code>predict.lm()</code>, <code>summary.lm()</code>, and indeed
+<code>lm()</code> itself had issues with residual DF in zero-weighted
+cases (the latter two only in connection with empty
+models). (Thanks to Bill Dunlap for spotting the
+<code>predict()</code> case.)
+</p>
+</li>
+<li> <p><code>aperm()</code> treated <code>resize = NA</code> as <code>resize =
+      TRUE</code>.
+</p>
+</li>
+<li> <p><code>constrOptim()</code> now has an improved convergence
+criterion, notably for cases where the minimum was (very close to)
+zero; further, other tweaks inspired from code proposals by Ravi
+Varadhan.
+</p>
+</li>
+<li><p> Rendering of S3 and S4 methods in man pages has been
+corrected and made consistent across output formats.
+</p>
+</li>
+<li><p> Simple markup is now allowed in <span class="samp">\title</span> sections
+in &lsquo;<span class="file">.Rd</span>&rsquo; files.
+</p>
+</li>
+<li><p> The behaviour of <code>as.logical()</code> on factors (to use the
+levels) was lost in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.6.0 and has been restored.
+</p>
+</li>
+<li> <p><code>prompt()</code> did not backquote some default arguments in
+the <span class="samp">\usage</span> section.  (Reported by Claudia Beleites.)
+</p>
+</li>
+<li> <p><code>writeBin()</code> disallows attempts to write 2GB or
+more in a single call. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14362">PR#14362</a>)
+</p>
+</li>
+<li> <p><code>new()</code> and <code>getClass()</code> will now work if Class
+is a subclass of <code>"classRepresentation"</code> and should also be
+faster in typical calls.
+</p>
+</li>
+<li><p> The <code>summary()</code> method for data frames makes a better
+job of names containing characters invalid in the current locale.
+</p>
+</li>
+<li> <p><code>[[</code> sub-assignment for factors could create an invalid
+factor (reported by Bill Dunlap).
+</p>
+</li>
+<li> <p><code>Negate(f)</code> would not evaluate argument <code>f</code>
+until first use of returned function (reported by Olaf Mersmann).
+</p>
+</li>
+<li> <p><code>quietly=FALSE</code> is now also an optional argument of
+<code>library()</code>, and consequently, <code>quietly</code> is now
+propagated also for loading dependent packages, e.g., in
+<code>require(*, quietly=TRUE)</code>.
+</p>
+</li>
+<li><p> If the loop variable in a <code>for</code> loop was deleted, it
+would be recreated as a global variable.  (Reported by Radford
+Neal; the fix includes his optimizations as well.)
+</p>
+</li>
+<li><p> Task callbacks could report the wrong expression when
+the task involved parsing new code. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14368">PR#14368</a>)
+</p>
+</li>
+<li> <p><code>getNamespaceVersion()</code> failed; this was an
+accidental change in 2.11.0. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14374">PR#14374</a>)
+</p>
+</li>
+<li> <p><code>identical()</code> returned <code>FALSE</code> for external
+pointer objects even when the pointer addresses were the same.
+</p>
+</li>
+<li> <p><code>L$a@x[] &lt;- val</code> did not duplicate in a case it should have.
+</p>
+</li>
+<li> <p><code>tempfile()</code> now always gives a random file name (even
+if the directory is specified) when called directly after
+startup and before the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> RNG had been used.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14381">PR#14381</a>)
+</p>
+</li>
+<li> <p><code>quantile(type=6)</code> behaved inconsistently.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14383">PR#14383</a>)
+</p>
+</li>
+<li> <p><code>backSpline(.)</code> behaved incorrectly when the knot
+sequence was decreasing.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14386">PR#14386</a>)
+</p>
+</li>
+<li><p> The reference BLAS included in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> was assuming that
+<code>0*x</code> and <code>x*0</code> were always zero (whereas they could be
+<code>NA</code> or <code>NaN</code> in IEC 60559 arithmetic).  This was seen
+in results from <code>tcrossprod</code>, and for example that
+<code>log(0) %*% 0</code> gave <code>0</code>.
+</p>
+</li>
+<li><p> The calculation of whether text was completely outside
+the device region (in which case, you draw nothing)
+was wrong for screen devices (which have [0, 0] at top-left).
+The symptom was (long) text disappearing when
+resizing a screen window (to make it smaller).  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14391">PR#14391</a>)
+</p>
+</li>
+<li> <p><code>model.frame(drop.unused.levels = TRUE)</code> did not
+take into account <code>NA</code> values of factors when deciding to
+drop levels. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14393">PR#14393</a>)
+</p>
+</li>
+<li> <p><code>library.dynam.unload</code> required an absolute path for
+<code>libpath</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14385">PR#14385</a>)
+</p>
+<p>Both <code>library()</code> and <code>loadNamespace()</code> now record
+absolute paths for use by <code>searchpaths()</code> and
+<code>getNamespaceInfo(ns, "path")</code>.
+</p>
+</li>
+<li><p> The self-starting model <code>NLSstClosestX</code> failed if some
+deviation was exactly zero.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14384">PR#14384</a>)
+</p>
+</li>
+<li> <p><code>X11(type = "cairo")</code> (and other devices such as
+<code>png</code> using cairographics) and which use Pango font selection
+now work around a bug in Pango when very small fonts (those with
+sizes between 0 and 1 in Pango's internal units) are requested.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14369">PR#14369</a>)
+</p>
+</li>
+<li><p> Added workaround for the font problem with <code>X11(type =
+      "cairo")</code> and similar on Mac OS X whereby italic and bold styles
+were interchanged.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13463">PR#13463</a> amongst many other reports.)
+</p>
+</li>
+<li> <p><code>source(chdir = TRUE)</code> failed to reset the working
+directory if it could not be determined &ndash; that is now an error.
+</p>
+</li>
+<li><p> Fix for crash of <code>example(rasterImage)</code> on
+<code>x11(type="Xlib")</code>.
+</p>
+</li>
+<li><p> Force Quartz to bring the on-screen display up-to-date
+immediately before the snapshot is taken by <code>grid.cap()</code>
+in the Cocoa implementation. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14260">PR#14260</a>)
+</p>
+</li>
+<li> <p><code>model.frame</code> had an unstated 500 byte limit on
+variable names.  (Example reported by Terry Therneau.)
+</p>
+</li>
+<li><p> The 256-byte limit on names is now documented.
+</p>
+</li>
+<li><p> Subassignment by <code>[</code>, <code>[[</code> or <code>$</code> on an
+expression object with value <code>NULL</code> coerced the object to a
+list.
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.11.1 patched</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>install.packages()</code> has a new optional argument
+<code>INSTALL_opts</code> which can be used to pass options to
+<code>R CMD INSTALL</code> for source-package installs.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now runs the package-specific tests
+with <span class="env">LANGUAGE=en</span> to facilitate comparison to
+&lsquo;<span class="file">.Rout.save</span>&rsquo; files.
+</p>
+</li>
+<li> <p><code>sessionInfo()</code> gives more detailed platform
+information, including 32/64-bit and the sub-architecture if one
+is used.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED &amp; DEFUNCT</h4>
+
+
+<ul>
+<li><p> The use of Perl configuration variables for <code>R CMD
+	check</code> (as previously documented in &lsquo;Writing R
+Extensions&rsquo;) is deprecated and will be removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.12.0.  Use
+the environment variables documented in &lsquo;R Internals&rsquo;
+instead.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>R CMD Rd2dvi</code> failed if run from a path containing
+space(s).  This also affected <code>R CMD check</code>, which calls
+<code>Rd2dvi</code>.
+</p>
+</li>
+<li> <p><code>stripchart()</code> could fail with an empty factor
+level.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14317">PR#14317</a>)
+</p>
+</li>
+<li><p> Text help rendering of <span class="samp">\tabular{}</span> has been
+improved: under some circumstances leading blank columns were
+not rendered.
+</p>
+</li>
+<li> <p><code>strsplit(x, fixed=TRUE)</code> marked UTF-8 strings with the
+local encoding when no splits were found.
+</p>
+</li>
+<li> <p><code>weighted.mean(NA, na.rm=TRUE)</code> and similar now returns
+<code>NaN</code> again, as it did prior to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.10.0.
+</p>
+</li>
+<li> <p><code>R CMD</code> had a typo in its detection of whether the
+environment variable <span class="env">TEXINPUTS</span> was set (reported by Martin
+Morgan).
+</p>
+</li>
+<li><p> The command-line parser could mistake
+<span class="option">--file=size...</span> for one of the options for setting limits
+for Ncells or Vcells.
+</p>
+</li>
+<li><p> The internal <code>strptime()</code> could corrupt its copy of the
+timezone which would then lead to spurious warnings. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14338">PR#14338</a>)
+</p>
+</li>
+<li> <p><code>dir.create(recursive = TRUE)</code> could fail if one of the
+components existed but was a directory on a read-only file system.
+(Seen on Solaris, where the error code returned is not even listed
+as possible on the man page.)
+</p>
+</li>
+<li><p> The <code>postscript()</code> and <code>pdf()</code> devices will now
+allow <code>lwd</code> values less than 1 (they used to force such
+values to be 1).
+</p>
+</li>
+<li><p> Fixed font face for CID fonts in <code>pdf()</code> graphics output.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14326">PR#14326</a>)
+</p>
+</li>
+<li> <p><code>GERaster()</code> now checks for width or height of zero and
+does nothing in those cases; previously the behaviour was
+undefined, probably device-specific, and possibly dangerous.
+</p>
+</li>
+<li> <p><code>wilcox.test(x, y, conf.int = TRUE)</code> failed with an unhelpful
+message if <code>x</code> and <code>y</code> were constant vectors, and
+similarly in the one-sample case.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14329">PR#14329</a>)
+</p>
+</li>
+<li><p> Improperly calling <code>Recall()</code> from outside a function
+could cause a segfault.  (Reported by Robert McGehee.)
+</p>
+</li>
+<li> <p><span class="samp">\Sexpr[result=rd]</span> in an Rd file added a
+spurious newline, which was displayed as extra whitespace when
+rendered.
+</p>
+</li>
+<li> <p><code>require(save = TRUE)</code> recorded the names of packages
+it failed to load.
+</p>
+</li>
+<li> <p><code>packageStatus()</code> could return a data frame with
+duplicate row names which could then not be printed.
+</p>
+</li>
+<li> <p><code>txtProgressBar(style = 2)</code> did not work correctly.
+</p>
+<p><code>txtProgressBar(style = 3)</code> did not display until a
+non-minimum value was set.
+</p>
+</li>
+<li> <p><code>contour()</code> did not display dashed line types
+properly when contour lines were labelled. (Reported by
+David B. Thompson.)
+</p>
+</li>
+<li> <p><code>tools::undoc()</code> again detects undocumented data
+objects.  Of course, this also affects <code>R CMD check</code>.
+</p>
+</li>
+<li> <p><code>ksmooth(x,NULL)</code> no longer segfaults.
+</p>
+</li>
+<li> <p><code>approxfun()</code>, <code>approx()</code>, <code>splinefun()</code>
+and <code>spline()</code> could be confused by <code>x</code> values that
+were different but so close as to print identically.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14377">PR#14377</a>)
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.11.1</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>R CMD INSTALL</code> checks if dependent packages are
+available early on in the installation of source packages,
+thereby giving clearer error messages.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL --build</code> now names the file in the
+format used for Mac OS X binary files on that platform.
+</p>
+</li>
+<li> <p><code>BIC()</code> in package <span class="pkg">stats4</span> now also works with
+multiple fitted models, analogously to <code>AIC()</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED &amp; DEFUNCT</h4>
+
+
+<ul>
+<li><p> Use of file extension &lsquo;<span class="file">.C</span>&rsquo; for C++ code in packages is now
+deprecated: it has caused problems for some <code>make</code>s on
+case-insensitive file systems (although it currently works
+with the recommended toolkits).
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> Command <code>gnutar</code> is preferred to <code>tar</code>
+when configure sets <span class="env">TAR</span>.  This is needed on Mac OS 10.6,
+where the default <code>tar</code>, <code>bsdtar 2.6.2</code>, has been
+reported to produce archives with illegal extensions to tar
+(according to the POSIX standard).
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> The C function <code>mkCharLenCE</code> now no longer reads past
+<code>len</code> bytes (unlikely to be a problem except in user
+code).  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14246">PR#14246</a>)
+</p>
+</li>
+<li><p> On systems without any default <span class="env">LD_LIBRARY_PATH</span> (not
+even &lsquo;<span class="file">/usr/local/lib</span>&rsquo;), <span class="env">[DY]LIB_LIBRARY_PATH</span> is now
+set without a trailing colon.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13637">PR#13637</a>)
+</p>
+</li>
+<li><p> More efficient implementation of <code>utf8ToInt()</code> on long
+multi-byte strings with many multi-byte characters.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14262">PR#14262</a>)
+</p>
+</li>
+<li> <p><code>aggregate.ts()</code> gave platform-dependent results due to
+rounding error for <code>ndeltat != 1</code>.
+</p>
+</li>
+<li> <p><code>package.skeleton()</code> sometimes failed to fix filenames
+for &lsquo;<span class="file">.R</span>&rsquo; or &lsquo;<span class="file">.Rd</span>&rsquo; files to start with an alphanumeric.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14253">PR#14253</a>)
+</p>
+<p>It also failed when only an S4 class without any methods was
+defined.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14280">PR#14280</a>)
+</p>
+</li>
+<li> <p><code>splinefun(method = "monoH.FC")</code> was not
+quite monotone in rare cases.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14215">PR#14215</a>)
+</p>
+</li>
+<li> <p><code>Rhttpd</code> no longer crashes due to <code>SIGPIPE</code> when
+the client closes the connection prematurely.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14266">PR#14266</a>)
+</p>
+</li>
+<li> <p><code>format.POSIXlt()</code> could cause a stack overflow and
+crash when used on very long vectors.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14267">PR#14267</a>)
+</p>
+</li>
+<li> <p><code>Rd2latex()</code> incorrectly escaped special characters in
+<span class="samp">\usage</span> sections.
+</p>
+</li>
+<li> <p><code>mcnemar.test()</code> could alter the levels (dropping
+unused levels) if passed <code>x</code> and <code>y</code> as factors
+(reported by Greg Snow).
+</p>
+</li>
+<li> <p><code>Rd2pdf</code> sometimes needed a further
+<code>pdflatex</code> pass to get hyperlinked pages correct.
+</p>
+</li>
+<li> <p><code>interaction()</code> produced malformed results when levels were
+duplicated, causing segfaults in <code>split()</code>.
+</p>
+</li>
+<li> <p><code>cut(d, breaks = &lt;n&gt;)</code> now also works for <code>"Date"</code>
+or <code>"POSIXt"</code> argument <code>d</code>.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14288">PR#14288</a>)
+</p>
+</li>
+<li> <p><code>memDecompress()</code> could decompress incompletely rare
+<code>xz</code>-compressed input due to incorrect documentation of
+<code>xz utils</code>.  (Report and patch from Olaf Mersmann.)
+</p>
+</li>
+<li><p> The S4 <code>initialize()</code> methods for <code>"matrix"</code>,
+<code>"array"</code>, and <code>"ts"</code> have been fixed to call
+<code>validObject()</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14284">PR#14284</a>)
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code> now behaves the same way with or
+without <span class="option">--no-multiarch</span> on platforms with only one
+installed architecture.  (It used to clean the &lsquo;<span class="file">src</span>&rsquo;
+directory without <span class="option">--no-multiarch</span>.)
+</p>
+</li>
+<li> <p><code>[&lt;-.data.frame</code> was not quite careful enough in
+assigning (and potentially deleting) columns
+right-to-left.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14263">PR#14263</a>)
+</p>
+</li>
+<li> <p><code>rbeta(n, a, b)</code> no longer occasionally returns
+<code>NaN</code> for <code>a &gt;&gt; 1 &gt; b</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14291">PR#14291</a>)
+</p>
+</li>
+<li> <p><code>pnorm(x, log.p = TRUE)</code> could return <code>NaN</code> not
+<code>-Inf</code> for <code>x</code> near (minus for <code>lower.tail=TRUE</code>)
+the largest representable number.
+</p>
+</li>
+<li><p> Compressed data files &lsquo;<span class="file">*.(txt|tab|csv).(gz|bz2|xz)</span>&rsquo;
+were not recognized for the list of data topics and hence for
+packages using <code>LazyData</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14273">PR#14273</a>)
+</p>
+</li>
+<li> <p><code>textConnection()</code> did an unnecessary translation on
+strings in a foreign encoding (e.g., UTF-8 strings on Windows) and
+so was slower than it could have been on very long input strings.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14286">PR#14286</a>)
+</p>
+</li>
+<li> <p><code>tools::Rd2txt()</code> did not render poorly written Rd
+files consistently with other renderers.
+</p>
+<p>It computed widths of strings that would be <code>print()</code>ed with
+escapes incorrectly, for example in the computation of column
+width for <span class="samp">\tabular</span>.
+</p>
+</li>
+<li> <p><code>na.action()</code> did not extract the <code>na.action</code>
+component as documented.
+</p>
+</li>
+<li> <p><code>do.call()</code>ing <code>NextMethod</code> in erroneous ways no
+longer segfaults. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13487">PR#13487</a>)
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.11.0</h3>
+
+
+
+<h4>SIGNIFICANT USER-VISIBLE CHANGES</h4>
+
+
+<ul>
+<li><p> Packages must have been installed under <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> &gt;= 2.10.0, as the
+current help system is the only one now supported.
+</p>
+</li>
+<li><p> A port to 64-bit Windows is now available as well as binary
+package repositories: see the &lsquo;R Administration and
+Installation Manual&rsquo;.
+</p>
+</li>
+<li><p> Argument matching for primitive functions is now done in the
+same way as for interpreted functions except for the deliberate
+exceptions
+</p>
+<pre>
+	 call switch .C .Fortran .Call .External
+       </pre>
+<p>all of which use positional matching for their first argument,
+and also some internal-use-only primitives.
+</p>
+</li>
+<li><p> The default device for command-line <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> at the console on Mac OS X
+is now <code>quartz()</code> and not <code>X11()</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> The <code>open</code> modes for connections are now interpreted
+more consistently.  <code>open = "r"</code> is now equivalent to
+<code>open = "rt"</code> for all connections.  The default <code>open =
+       ""</code> now means <code>"rt"</code> for all connections except the
+compressed-file connections <code>gzfile()</code>, <code>bzfile()</code> and
+<code>xzfile()</code> for which it means <code>"rb"</code>.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code> now uses the internal <code>untar()</code>
+function in package <span class="pkg">utils</span>: this ensures that all platforms
+can install <code>bzip2</code>- and <code>xz</code>-compressed
+tarballs.  In case this causes problems (as it has on some
+Windows file systems when run from Cygwin tools) it can be
+overridden by the environment variable <span class="env">R_INSTALL_TAR</span>:
+setting this to a modern external tar program will speed up
+unpacking of large (tens of Mb or more) tarballs.
+</p>
+</li>
+<li> <p><code>help(try.all.packages = TRUE)</code> is much faster
+(although the time taken by the OS to find all the packages the
+first time it is used can dominate the time).
+</p>
+</li>
+<li> <p><code>R CMD check</code> has a new option <span class="option">--timings</span>
+to record per-example timings in file
+&lsquo;<span class="file">&lt;pkg&gt;.Rcheck/&lt;pkg&gt;-Ex.timings</span>&rsquo;.
+</p>
+</li>
+<li><p> The TRE library has been updated to version 0.8.0 (minor bugfixes).
+</p>
+</li>
+<li> <p><code>grep[l]</code>, <code>[g]sub</code> and <code>[g]regexpr</code> now work
+in bytes in an 8-bit locales if there is no marked UTF-8 input
+string: this will be somewhat faster, and for <code>[g]sub()</code>
+give the result in the native encoding rather than in UTF-8
+(which returns to the behaviour prior to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.10.0).
+</p>
+</li>
+<li><p> A new argument <code>skipCalls</code> has been added to
+<code>browser()</code> so that it can report the original context when
+called by other debugging functions.
+</p>
+</li>
+<li><p> More validity checking of UTF-8 and MBCS strings is done by
+<code>agrep()</code> and the regular-expression matching functions.
+</p>
+</li>
+<li><p> The undocumented restriction on <code>gregexpr()</code> to
+<code>length(text) &gt; 0</code> has been removed.
+</p>
+</li>
+<li><p> Package <span class="pkg">tcltk</span> now sends strings to Tcl in UTF-8: this
+means that strings with a marked UTF-8 encoding are supported in
+non-UTF-8 locales.
+</p>
+</li>
+<li><p> The graphics engine now supports rendering of raster (bitmap)
+images, though not all graphics devices can provide (full)
+support.  Packages providing graphics devices (e.g., <code>Cairo</code>,
+<code>RSvgDevice</code>, <code>cairoDevice</code>) will need to be reinstalled.
+</p>
+<p>There is also support in the graphics engine for capturing
+raster images from graphics devices (again not supported
+on all graphics devices).
+</p>
+</li>
+<li> <p><code>R CMD check</code> now also checks if the package and
+namespace can be unloaded: this provides a check of the
+<code>.Last.lib()</code> and <code>.onUnload()</code> hook functions (unless
+<span class="option">--install=fake</span>).
+</p>
+</li>
+<li> <p><code>prop.table(x)</code> now accepts a one-dimensional table for
+<code>x</code>.
+</p>
+</li>
+<li><p> A new function <code>vapply()</code> has been added, based on a
+suggestion from Bill Dunlap.  It requires that a template for the
+function value be specified, and uses it to determine the output
+type and to check for consistency in the function values.
+</p>
+</li>
+<li><p> The main HTML help page now links to a reformatted copy of
+this &lsquo;<span class="file">NEWS</span>&rsquo; file.  (Suggested by Henrik Bengtsson.)  Package
+index files link to the package &lsquo;<span class="file">DESCRIPTION</span>&rsquo; and
+&lsquo;<span class="file">NEWS</span>&rsquo; files and a list of demos when using dynamic help.
+</p>
+</li>
+<li><p> The <code>[</code> method for class <code>"AsIs"</code> allows the next
+method to change the underlying class.  (Wish of Jens
+Oehlschlägel.)
+</p>
+</li>
+<li> <p><code>write.csv[2]</code> no longer allow argument <code>append</code>
+to be changed: as ever, direct calls to <code>write.table()</code> give
+more flexibility as well as more room for error.
+</p>
+</li>
+<li><p> The index page for HTML help for a package now collapses
+multiple signatures for S4 methods into a single entry.
+</p>
+</li>
+<li><p> The use of <code>.required</code> by <code>require()</code> and
+<code>detach()</code> has been replaced by <code>.Depends</code> which is set
+from the <code>Depends</code> field of a package (even in packages with
+namespaces).  By default <code>detach()</code> prevents such
+dependencies from being detached: this can be overridden by the
+argument <code>force</code>.
+</p>
+</li>
+<li> <p><code>bquote()</code> has been extended to work on function
+definitions.  (Wish of
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14031">PR#14031</a>).
+</p>
+</li>
+<li> <p><code>detach()</code> when applied to an object other than a
+package returns the environment that has been detached, to
+parallel <code>attach()</code>.
+</p>
+</li>
+<li> <p><code>readline()</code> in non-interactive use returns <code>""</code>
+and does not attempt to read from the &lsquo;terminal&rsquo;.
+</p>
+</li>
+<li><p> New function <code>file_ext()</code> in package <span class="pkg">tools</span>.
+</p>
+</li>
+<li> <p><code>xtfrm()</code> is now primitive and internally generic, as
+this allows S4 methods to be set on it without name-space scoping
+issues.
+</p>
+<p>There are now <code>"AsIs"</code> and <code>"difftime"</code> methods, and
+the default method uses <code>unclass(x)</code> if <code>is.numeric(x)</code>
+is true (which will be faster but relies on <code>is.numeric()</code>
+having been set correctly for the class).
+</p>
+</li>
+<li> <p><code>is.numeric(x)</code> is now false for a <code>"difftime"</code>
+object (multiplication and division make no sense for such
+objects).
+</p>
+</li>
+<li><p> The default method of <code>weighted.mean(x, w)</code> coerces
+<code>w</code> to be numeric (aka double); previously only integer
+weights were coerced.  Zero weights are handled specially so an
+infinite value with zero weight does not force an <code>NaN</code>
+result.
+</p>
+<p>There is now a <code>"difftime"</code> method.
+</p>
+</li>
+<li> <p><code>bug.report()</code> now has arguments <code>package</code> and
+<code>lib.loc</code> to generate bug reports about packages.  When
+this is used, it looks for a <code>BugReports</code> field in the
+package &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file, which will be assumed to be a
+URL at which to submit the report, and otherwise generates an
+email to the package maintainer.  (Suggested by Barry
+Rowlingson.)
+</p>
+</li>
+<li> <p><code>quantile()</code> now has a method for the date-time class
+<code>"POSIXt"</code>, and types 1 and 3 (which never interpolate) work
+for Dates and ordered factors.
+</p>
+</li>
+<li> <p><code>length(&lt;POSIXlt&gt;)</code> now returns the length of the
+corresponding abstract timedate-vector rather than always 9 (the
+length of the underlying list structure).  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14073">PR#14073</a>
+and <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=10507">PR#10507</a>.)
+</p>
+</li>
+<li><p> The <code>readline</code> completion backend no longer sorts
+possible completions alphabetically (e.g., function argument
+names) if <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> was built with <code>readline &gt;= 6</code>.
+</p>
+</li>
+<li> <p><code>select.list()</code> gains a <code>graphics</code> argument to
+allow Windows/Mac users to choose the text interface.  This
+changes the behaviour of <code>new.packages(ask=TRUE)</code> to be like
+<code>update.packages(ask=TRUE)</code> on those platforms in using a
+text menu: use ask=<code>"graphics"</code> for a graphical menu.
+</p>
+</li>
+<li><p> New function <code>chooseBioCmirror()</code> to set the
+<code>"BioC_mirror"</code> option.
+</p>
+</li>
+<li><p> The <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> grammar now prevents using the argument <code>name</code>
+in signatures of S4 methods for <code>$</code> and <code>$&lt;-</code>, since
+they will always be called with a character string value for
+<code>name</code>.  The implicit S4 generic functions have been
+changed to reflect this: packages which included <code>name</code> in
+the signature of their methods need to be updated and
+re-installed.
+</p>
+</li>
+<li><p> The handling of the <code>method</code> argument of <code>glm()</code>
+has been refined following suggestions by Ioannis Kosmidis and
+Heather Turner.
+</p>
+</li>
+<li> <p><code>str()</code> gains a new argument <code>list.len</code> with
+default 99, limiting the number of <code>list()</code> items (per
+level), thanks to suggestions from David Winsenius.
+</p>
+</li>
+<li><p> Having formal arguments of an S4 method in a different order
+from the generic is now an error (the warning having been
+ignored by some package maintainers for a long time).
+</p>
+</li>
+<li><p> New functions <code>enc2native()</code> and <code>enc2utf8()</code>
+convert character vectors with possibly marked encodings to the
+current locale and UTF-8 respectively.
+</p>
+</li>
+<li><p> Unrecognized escapes and embedded nuls in character strings are
+now an error, not just a warning.  Thus option <code>"warnEscapes"</code>
+is no longer needed.  <code>rawToChar()</code> now removes trailing nuls
+silently, but other embedded nuls become errors.
+</p>
+</li>
+<li><p> Informational messages about masked objects displayed when a
+package is attached are now more compact, using <code>strwrap()</code>
+instead of one object per line.
+</p>
+</li>
+<li> <p><code>print.rle()</code> gains argument <code>prefix</code>.
+</p>
+</li>
+<li> <p><code>download.file()</code> gains a <code>"curl"</code> method, mainly
+for use on platforms which have <code>curl</code> but not
+<code>wget</code>, but also for some hard-to-access URLs.
+</p>
+</li>
+<li><p> In <code>Rd</code>, <span class="samp">\eqn</span> and <span class="samp">\deqn</span> will render in
+HTML (and convert to text) upper- and lower-case Greek letters
+(entered as <span class="samp">\alpha</span> ...), <span class="samp">\ldots</span>, <span class="samp">\dots</span>,
+<span class="samp">\ge</span> and <span class="samp">\le</span>.
+</p>
+</li>
+<li> <p><code>utf8ToInt()</code> and <code>intToUtf8()</code> now map <code>NA</code> inputs
+to <code>NA</code> outputs.
+</p>
+</li>
+<li> <p><code>file()</code> has a new argument <code>raw</code> which may help
+if it is used with something other than a regular file, e.g. a
+character device.
+</p>
+</li>
+<li><p> New function <code>strtoi()</code>, a wrapper for the C function
+<code>strtol</code>.
+</p>
+</li>
+<li> <p><code>as.octmode()</code> and <code>as.hexmode()</code> now allow inputs
+of length other than one.
+</p>
+<p>The <code>format()</code> and <code>print()</code> methods for
+<code>"octmode"</code> now preserve names and dimensions (as those for
+<code>"hexmode"</code> did).
+</p>
+<p>The <code>format()</code> methods for classes <code>"octmode"</code> and
+<code>"hexmode"</code> gain a <code>width</code> argument.
+</p>
+</li>
+<li> <p><code>seq.int()</code> returns an integer result in some further cases
+where <code>seq()</code> does, e.g. <code>seq.int(1L, 9L, by = 2L)</code>.
+</p>
+</li>
+<li><p> Added <span class="samp">\subsection{}{}</span> macro to Rd syntax, for
+subsections within sections.
+</p>
+</li>
+<li><p> n-dimensional arrays with dimension names can now be indexed
+by an n-column character matrix.  The indices are matched against
+the dimension names.  <code>NA</code> indices are propagated to the
+result.  Unmatched values and <code>""</code> are not allowed and
+result in an error.
+</p>
+</li>
+<li> <p><code>interaction(drop=TRUE)</code> uses less memory (related to
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14121">PR#14121</a>).
+</p>
+</li>
+<li> <p><code>summary()</code> methods have been added to the
+<code>"srcref"</code> and <code>"srcfile"</code> classes, and various
+encoding issues have been cleaned up.
+</p>
+</li>
+<li><p> If option <code>"checkPackageLicense"</code> is set to <code>TRUE</code> (not
+currently the default), users will be asked to agree to
+non-known-to-be-FOSS package licences at first use.
+</p>
+</li>
+<li><p> Checking <code>setAs(a, b)</code> methods only gives a message
+instead of a warning, when one of <code>a</code> or <code>b</code> is
+unknown.
+</p>
+</li>
+<li><p> New function <code>norm()</code> to compute a matrix norm.
+<code>norm()</code> and also <code>backsolve()</code> and <code>sample()</code>
+have implicit S4 generics.
+</p>
+</li>
+<li><p> Files &lsquo;<span class="file">Renviron.site</span>&rsquo; and &lsquo;<span class="file">Rprofile.site</span>&rsquo; can have
+architecture-specific versions on systems with sub-architectures.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now (by default) also checks Rd files
+for auto-generated content in need of editing, and missing
+argument descriptions.
+</p>
+</li>
+<li> <p><code>aggregate()</code> gains a formula method thanks to a
+contribution by Arni Magnusson.  The data frame method now allows
+summary functions to return arbitrarily many values.
+</p>
+</li>
+<li> <p><code>path.expand()</code> now propagates <code>NA</code> values rather
+than converting them to <code>"NA"</code>.
+</p>
+</li>
+<li> <p><code>file.show()</code> now disallows <code>NA</code> values for file names,
+headers, and pager.
+</p>
+</li>
+<li><p> The &lsquo;fuzz&rsquo; used by <code>seq()</code> and <code>seq.int()</code> has
+been reduced from <code>1e-7</code> to <code>1e-10</code>, which should be
+ample for the double-precision calculations used in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.  It
+ensures that the fuzz never comes into play with sequences of
+integers (wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14169">PR#14169</a>).
+</p>
+</li>
+<li><p> The default value of <code>RSiteSearch(restrict=)</code> has been
+changed to include vignettes but to exclude R-help.  The R-help
+archives available have been split, with a new option of
+<code>"Rhelp10"</code> for those from 2010.
+</p>
+</li>
+<li><p> New function <code>rasterImage()</code> in the <code>graphics</code>
+package for drawing raster images.
+</p>
+</li>
+<li> <p><code>stats:::extractAIC.coxph()</code> now omits aliased terms
+when computing the degrees of freedom (suggestion of Terry
+Therneau).
+</p>
+</li>
+<li> <p><code>cor()</code> and <code>cov()</code> now test for misuse with
+non-numeric arguments, such as the non-bug report <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14207">PR#14207</a>.
+</p>
+</li>
+<li> <p><code>pchisq(ncp =, log.p = TRUE)</code> is more accurate for
+probabilities near one.  E.g., <code>pchisq(80, 4, ncp=1,
+       log.p=TRUE)</code>.  (Maybe what was meant in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14216">PR#14216</a>.)
+</p>
+</li>
+<li> <p><code>maintainer()</code> has been added, to give convenient
+access to the name of the maintainer of a package (contributed by
+David Scott).
+</p>
+</li>
+<li> <p><code>sample()</code> and <code>sample.int()</code> allow zero items to
+be sampled from a zero-length input.  <code>sample.int()</code> gains a
+default value <code>size=n</code> to be more similar to
+<code>sample()</code>.
+</p>
+</li>
+<li> <p><code>switch()</code> returned <code>NULL</code> on error (not
+previously documented on the help page): it now does so
+invisibly, analogously to if-without-else.
+</p>
+<p>It is now primitive: this means that argument <code>EXPR</code> is
+always matched to the first argument and there is no danger of
+partial matching to later named arguments.
+</p>
+</li>
+<li><p> Primitive functions <code>UseMethod()</code>, <code>attr()</code>,
+<code>attr&lt;-()</code>, <code>on.exit()</code>, <code>retracemem()</code> and
+<code>substitute()</code> now use standard argument matching (rather
+than positional matching).  This means that all multi-argument
+primitives which are not internal now use standard argument
+matching except where positional matching is desirable (as for
+<code>switch()</code>, <code>call()</code>, <code>.C()</code> ...).
+</p>
+</li>
+<li><p> All the one-argument primitives now check that any name
+supplied for their first argument is a partial match to the
+argument name as documented on the help page: this also
+applies to replacement functions of two arguments.
+</p>
+</li>
+<li> <p><code>base::which()</code> uses a new <code>.Internal</code> function
+when <code>arr.ind</code> is <code>FALSE</code> resulting in a 10x speedup.
+Thanks to Patrick Aboyoun for implementation suggestions.
+</p>
+</li>
+<li><p> Help conversion to text now uses the first part of
+<span class="samp">\enc{}{}</span> markup if it is representable in the current
+output encoding.  On the other hand, conversion to LaTeX with the
+default <code>outputEncoding = "ASCII"</code> uses the second part.
+</p>
+</li>
+<li><p> A new class <code>"listOfMethods"</code> has been introduced to
+represent the methods in a methods table, to replace the
+deprecated class <code>"MethodsList"</code>.
+</p>
+</li>
+<li> <p><code>any()</code> and <code>all()</code> return early if possible.
+This may speed up operations on long vectors.
+</p>
+</li>
+<li> <p><code>strptime()</code> now accepts <code>"%z"</code> (for the offset
+from UTC in the RFC822 format of <code>+/-hhmm</code>).
+</p>
+</li>
+<li><p> The PCRE library has been updated to version 8.02, a bug-fix
+release which also updates tables to Unicode 5.02.
+</p>
+</li>
+<li><p> Functions which may use a graphical <code>select.list()</code>
+(including <code>menu()</code> and <code>install.packages()</code>) now check
+on a Unix-alike that Tk can be started (and not just
+<code>capabilities("tcltk") &amp;&amp; capabilities("X11")</code>).
+</p>
+</li>
+<li><p> The parser no longer marks strings containing octal or hex
+escapes as being in UTF-8 when entered in a UTF-8 locale.
+</p>
+</li>
+<li><p> On platforms with cairo but not Pango (notably Mac OS X) the
+initial default <code>X11()</code> type is set to <code>"Xlib"</code>: this avoids
+several problems with font selection when done by cairo rather
+than Pango (at least on Mac OS X).
+</p>
+</li>
+<li><p> New function <code>arrayInd()</code> such that <code>which(x,
+       arr.ind = TRUE)</code> for an array 'x' is now equivalent to
+<code>arrayInd(which(x), dim(x), dimnames(x))</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED &amp; DEFUNCT</h4>
+
+
+<ul>
+<li><p> Bundles of packages are defunct.
+</p>
+</li>
+<li> <p><code>stats::clearNames()</code> is defunct: use <code>unname()</code>.
+</p>
+</li>
+<li><p> Basic regular expressions are defunct, and
+<code>strsplit()</code>, <code>grep()</code>, <code>grepl()</code>, <code>sub()</code>,
+<code>gsub()</code>, <code>regexpr()</code> and <code>gregexpr()</code> no longer
+have an <code>extended</code> argument.
+</p>
+</li>
+<li> <p><code>methods::trySilent()</code> is defunct.
+</p>
+</li>
+<li> <p><code>index.search()</code> (which was deprecated in 2.10.0) is no
+longer exported and has a different argument list.
+</p>
+</li>
+<li><p> Use of multiple arguments to <code>return()</code> is now defunct.
+</p>
+</li>
+<li><p> The use of <code>UseMethod()</code> with more than two arguments
+is now defunct.
+</p>
+</li>
+<li><p> In the <span class="pkg">methods</span> package, the <code>"MethodsList"</code>
+metadata objects which had been superseded by hash tables
+(environments) since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.8.0 are being phased out.  Objects of
+this class are no longer assigned or used as metadata by the
+package.
+</p>
+<p><code>getMethods()</code> is now deprecated, with its internal use replaced
+by <code>findMethods()</code> and other changes.  Creating objects from the
+<code>"MethodsList"</code> class is also deprecated.
+</p>
+</li>
+<li><p> Parsing strings containing both octal/hex and Unicode escapes
+now gives a warning and will become an error in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.12.0.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> UTF-8 is now used for the reference manual and package
+manuals.  This requires LaTeX &lsquo;2005/12/01&rsquo; or later.
+</p>
+</li>
+<li> <p><code>configure</code> looks for a POSIX compliant
+<code>tr</code>, Solaris's <code>/usr/ucb/tr</code> having been found
+to cause <code>Rdiff</code> to malfunction.
+</p>
+</li>
+<li> <p><code>configure</code> is now generated with <code>autoconf
+       2.65</code>, which works better on recent systems and on Mac OS X.
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li><p> Characters in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> source which are not translatable to the
+current locale are now handled more tolerantly:  these will be
+converted to hex codes with a warning.  Such characters are
+only really portable if they appear in comments.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code> now tests that the installed package
+can be loaded (and backs out the installation if it cannot): this
+can be suppressed by <span class="option">--no-test-load</span>.  This avoids
+installing/updating a package that cannot be used: common causes
+of failures to load are missing/incompatible external software
+and missing/broken dependent packages.
+</p>
+</li>
+<li><p> Package installation on Windows for a package with a
+&lsquo;<span class="file">src</span>&rsquo; directory now checks if a DLL is created unless there
+is a &lsquo;<span class="file">src/Makefile.win</span>&rsquo; file: this helps catch broken
+installations where the toolchain has not reported problems in
+building the DLL.  (Note: this can be any DLL, not just one named
+&lsquo;<span class="file">&lt;pkg-name&gt;.dll</span>&rsquo;.)
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> Using <code>with()</code>, <code>eval()</code> etc with a list with some
+unnamed elements now works.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14035">PR#14035</a>)
+</p>
+</li>
+<li><p> The <code>"quick"</code> dispatch of S4 methods for primitive
+functions was not happening, forcing a search each time.
+(Dispatch for closures was not affected.)  A side effect is that
+default values for arguments in a method that do not have
+defaults in the generic will now be ignored.
+</p>
+</li>
+<li><p> Trying to dispatch S4 methods for primitives during the search
+for inherited methods slows that search down and potentially
+could cause an infinite recursion.  An internal switch was
+added to turn off all such methods from
+<code>findInheritedMethods()</code>.
+</p>
+</li>
+<li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> framework installation (on Mac OS X) would not work
+properly if a rogue <code>Resources</code> directory was present at the
+top level.  Such a non-symlink will now be renamed to
+<code>Resources.old</code> (and anything previously named
+<code>Resources.old</code> removed) as part of the framework
+installation process.
+</p>
+</li>
+<li><p> The checks for conforming S4 method arguments could fail
+when the signature of the generic function omitted some of the
+formal arguments (in addition to <code>...</code>).  Arguments omitted
+from the method definition but conforming (per the documentation)
+should now be ignored (treated as <code>"ANY"</code>) in dispatching.
+</p>
+</li>
+<li><p> The computations for S4 method evaluation when <code>...</code>
+was in the signature could fail, treating <code>...</code> as an
+ordinary symbol.  This has been fixed, for the known cases.
+</p>
+</li>
+<li><p> Various <code>ar()</code> fitting methods have more protection for
+singular fits.
+</p>
+</li>
+<li> <p><code>callNextMethod</code> now works again with the <code>drop=</code>
+argument in <span class="samp">[</span>
+</p>
+</li>
+<li> <p><code>parse()</code> and <code>parse_Rd()</code> miscounted columns when
+multibyte UTF-8 characters were present.
+</p>
+</li>
+<li><p> Formatting of help pages has had minor improvements: extra
+blank lines have been removed from the text format, and empty
+package labels removed from HTML.
+</p>
+</li>
+<li> <p><code>cor(A, B)</code> where <code>A</code> is <i>n x 1</i>
+and <code>B</code> a 1-dimensional array segfaulted or gave an internal
+error.  (The case <code>cor(B, A)</code> was
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=7116">PR#7116</a>.)
+</p>
+</li>
+<li> <p><code>cut.POSIXt()</code> applied to a start value after the DST
+transition on a DST-change day could give the wrong time for
+argument <code>breaks</code> in units of days or longer.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14208">PR#14208</a>)
+</p>
+</li>
+<li> <p><code>do_par()</code> <code>UNPROTECT</code>ed too early  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14214">PR#14214</a>)
+</p>
+</li>
+<li><p> Subassignment <code>x[[....]] &lt;- y</code> didn't check for a
+zero-length right hand side, and inserted a rubbish
+value.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14217">PR#14217</a>)
+</p>
+</li>
+<li> <p><code>fisher.test()</code> no longer gives a P-value <strong>very</strong>
+slightly &gt; 1, in some borderline cases.
+</p>
+</li>
+<li><p> Internal function <code>matchArgs()</code> no longer modifies the
+general purpose bits of the <code>SEXP</code>s that make up the formals
+list of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> functions.  This fixes an invalid error message that
+would occur when a garbage collection triggered a second call to
+<code>matchArgs</code> for the same function <em>via</em> a finalizer.
+</p>
+</li>
+<li> <p><code>gsub()</code> in 2.10.x could fail from stack overflow for
+extremely long strings due to temporary data being allocated on
+the stack.  Also, <code>gsub()</code> with <code>fixed=TRUE</code> is in some
+circumstances considerably faster.
+</p>
+</li>
+<li><p> Several primitives, including <code>attributes()</code>,
+<code>attr&lt;-()</code> <code>interactive()</code>, <code>nargs()</code> and
+<code>proc.time()</code>, did not check that they were called with the
+correct number of arguments.
+</p>
+</li>
+<li><p> A potential race condition in <code>list.files()</code> when other
+processes are operating on the directory has been fixed; the code
+now dynamically allocates memory for file listings in a single
+pass instead of making an initial count pass.
+</p>
+</li>
+<li> <p><code>mean(x, trim=, na.rm = FALSE)</code> failed to return <code>NA</code> if
+<code>x</code> contained missing values.  (Reported by Bill Dunlap.)
+</p>
+</li>
+<li><p> Extreme tail behavior of, <code>pbeta()</code> {and hence
+<code>pf()</code>}, e.g., <code>pbeta(x, 3, 2200, lower.tail=FALSE,
+       log.p=TRUE)</code> now returns finite values instead of jumping to
+<code>-Inf</code> too early.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14230">PR#14230</a>).
+</p>
+</li>
+<li> <p><code>parse(text=x)</code> misbehaved for objects <code>x</code> that
+were not coerced internally to character, notably symbols.
+(Reported to R-devel by Bill Dunlap.)
+</p>
+</li>
+<li><p> The internal C function <code>coerceSymbol</code> now handles
+coercion to character, and warns if coercion fails (rather than
+silently returning <code>NULL</code>).  This allows a name to be given
+where a character vector is required in functions which coerce
+internally.
+</p>
+</li>
+<li><p> The interpretation by <code>strptime()</code> of <code>"%c"</code> was
+non-standard (not that it is ever advisable to use locale- and
+system-specific input formats).
+</p>
+</li>
+<li><p> capabilities(<code>"X11"</code>) now works the same way on Mac OS X as on
+other platforms (and as documented: it was always true for R
+built with <span class="option">--with-aqua</span>, as the CRAN builds are).
+</p>
+</li>
+<li><p> The <code>X11()</code> device with cairo but not Pango (notably Mac OS X)
+now checks validity of text strings in UTF-8 locales (since
+Pango does but cairo it seems does not).
+</p>
+</li>
+<li> <p><code>read.fwf()</code> misread multi-line records when n was specified.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14241">PR#14241</a>)
+</p>
+</li>
+<li> <p><code>all.equal(tolerance = e)</code> passes the numeric
+tolerance also to the comparison of the attributes.
+</p>
+</li>
+<li> <p><code>pgamma(0, 0)</code>, a boundary case, now returns 0, its
+limit from the left, rather than the limit from the right.
+</p>
+</li>
+<li><p> Issuing <code>POST</code> requests to the internal web server could stall
+the request under certain circumstances.
+</p>
+</li>
+<li> <p><code>gzcon( &lt;textConnection&gt; )</code>, an error, no longer
+damages the connection (in a way to have it
+segfault).  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14237">PR#14237</a>)
+</p>
+</li>
+<li><p> All the results from <code>hist()</code> now use the nominal
+<code>breaks</code> not those adjusted by the numeric &lsquo;fuzz&rsquo;:
+in recent versions the nominal <code>breaks</code> were reported but
+the 'density' referred to the intervals used in the calculation
+&ndash; which mattered very slightly for one of the extreme bins.
+(Based on a report by Martin Becker.)
+</p>
+</li>
+<li><p> If <code>xy[z].coords</code> (used internally by many graphics
+functions) are given a list as <code>x</code>, they now check that
+the list has suitable names and give a more informative error
+message.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13936">PR#13936</a>)
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.10.1 patched</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> The handling of line textures in the <code>postscript()</code> and
+<code>pdf()</code> devices was set up for round end caps (the only type
+which existed at the time): it has now been adjusted for butt
+endcaps.
+</p>
+</li>
+<li> <p><code>lchoose(a, k)</code> is now defined as
+<code>log(abs(choose(a,k)))</code>, analogously to <code>lfactorial()</code>.
+</p>
+</li>
+<li><p> Although <code>\eqn{}</code> in Rd files is defined as a
+&lsquo;verbatim&rsquo; macro, many packages expected <code>\dots</code> and
+<code>\ldots</code> to be interpreted there (as was the case in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> &lt;
+2.10.0), so this is now done (using an ellipsis in HTML
+rendering).
+</p>
+</li>
+<li><p> Escaping of braces in quoted strings in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>-code sections of
+Rd files is allowed again.  This had been changed for the new Rd
+format in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.10.0 but was only documented on the developer site
+and was handled inconsistently by the converters: text and
+example conversion removed the escapes but HTML conversion did
+not.
+</p>
+</li>
+<li><p> The PCRE library has been updated to version 8.01, a bug-fix
+release.
+</p>
+</li>
+<li> <p><code>tools::readNEWS()</code> now accepts a digit as the first
+character of a news section.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> Using <code>read.table(header=TRUE)</code> on a header with an
+embedded new line would copy part of the header into the data.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14103">PR#14103</a>)
+</p>
+</li>
+<li> <p><code>qpois(p = 1, lambda = 0)</code> now gives 0 as for all other
+<code>p</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14135">PR#14135</a>)
+</p>
+</li>
+<li><p> Functions related to string comparison
+(e.g., <code>unique()</code>, <code>match()</code>) could cause crashes when
+used with strings not in the native encoding, e.g., UTF-8 strings
+on Windows.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14114">PR#14114</a> and <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14125">PR#14125</a>)
+</p>
+</li>
+<li> <p><code>x[ , drop=TRUE]</code> dropped an <code>NA</code> level even if it
+was in use.
+</p>
+</li>
+<li><p> The dynamic HTML help system reported the wrong MIME type
+for the style sheet.
+</p>
+</li>
+<li> <p><code>tools::codoc()</code> (used by <code>R CMD check</code>) was
+missing cases where the function had no arguments but was
+documented to have some.
+</p>
+</li>
+<li><p> Help links containing special characters (e.g., <code>"?"</code>)
+were not generated correctly when rendered in
+HTML.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14155">PR#14155</a>)
+</p>
+</li>
+<li> <p><code>lchoose(a, k)</code> no longer wrongly gives <code>NaN</code> for
+negative <code>a</code>.
+</p>
+</li>
+<li> <p><code>ks.test()</code> could give a p-value that was off by one
+observation due to rounding error.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14145">PR#14145</a>)
+</p>
+</li>
+<li> <p><code>readBin()</code>/<code>readChar()</code> when reading millions of
+character strings in a single call used excessive amounts of
+memory (which also slowed them down).
+</p>
+</li>
+<li> <p><code>R CMD SHLIB</code> could fail if used with paths that
+were not alphanumeric, e.g. contained <code>+</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14168">PR#14168</a>)
+</p>
+</li>
+<li> <p><code>sprintf()</code> was not re-entrant, which potentially
+caused problems if an <code>as.character()</code> method called it.
+</p>
+</li>
+<li><p> The <code>quartz()</code> device did not restore the clipping
+region when filling the background for a new page.  This could be
+observed in multi-page bitmap output as stale outer regions of
+the plot.
+</p>
+</li>
+<li> <p><code>p.adjust(method, n)</code> now works correctly for the
+rare case <code>n &gt; length(p)</code>, also when method differs from
+<code>"bonferroni"</code> or <code>"none"</code>, thanks to a patch from
+Gordon Smyth.
+</p>
+</li>
+<li> <p><code>tools::showNonASCII()</code> failed to detect non-ASCII characters
+if <code>iconv()</code> (incorrectly) converted them to different ASCII
+characters.  (Seen on Windows only.)
+</p>
+</li>
+<li> <p><code>tcrossprod()</code> wrongly failed in some cases when one of the
+arguments was a vector and the other a matrix.
+</p>
+</li>
+<li> <p><code>[cr]bind(..., deparse.level=2)</code> was not always giving
+names when documented to do so.  (Discovered whilst investigating
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14189">PR#14189</a>.)
+</p>
+</li>
+<li> <p><code>match(incomparables=&lt;non-NULL&gt;)</code> could in rare cases
+infinite-loop.
+</p>
+</li>
+<li> <p><code>poisson.test()</code> needed to pass argument
+<code>conf.level</code> to <code>binom.test()</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14195">PR#14195</a>)
+</p>
+</li>
+<li><p> The <code>"nls"</code> method for <code>df.residual()</code> gave
+incorrect results for models fitted with <code>na.action =
+       na.exclude</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14194">PR#14194</a>)
+</p>
+</li>
+<li><p> A change to <code>options(scipen=)</code> was only implemented
+when printing next occurred, even though it should have affected
+intervening calls to <code>axis()</code>, <code>contour()</code> and
+<code>filledcontour()</code>.
+</p>
+</li>
+<li> <p><code>prettyNum(drop0trailing=TRUE)</code> did not handle signs of
+imaginary parts of complex numbers correctly (and this was used
+by <code>str()</code>: <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14201">PR#14201</a>).
+</p>
+</li>
+<li> <p><code>system.time()</code> had the <code>sys.child</code> component
+wrong (copied <code>user.child</code> instead) on systems with
+<code>HAVE_GETRUSAGE</code>.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14210">PR#14210</a>)
+</p>
+</li>
+<li><p> Changing both line texture and line cap (end) resulted in the
+latter to be omitted form the PDF code.  In addition, line cap
+(end) and join are now set explicitly in PDF output to ensure
+correct defaults.
+</p>
+</li>
+<li><p> The suppression of auto-rotation in <code>bitmap()</code> and
+<code>dev2bitmap()</code> with the <code>"pdfwrite"</code> device was not
+working correctly.
+</p>
+</li>
+<li> <p><code>plot(ecdf(), log="x")</code> no longer gives an incorrect
+warning.
+</p>
+</li>
+<li> <p><code>read.fwf()</code> works again when argument <code>file</code> is
+a connection.
+</p>
+</li>
+<li><p> Startup files will now be found if their paths exceed 255
+bytes.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14228">PR#14228</a>)
+</p>
+</li>
+<li> <p><code>contrasts&lt;-</code> (in the <span class="pkg">stats</span> package) no longer has an
+undeclared dependence on <span class="pkg">methods</span> (introduced in 2.10.0).
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.10.1</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> The PCRE library has been updated to version 8.00.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code> has new options <span class="option">--no-R</span>,
+<span class="option">--no-libs</span>, <span class="option">--no-data</span>, <span class="option">--no-help</span>,
+<span class="option">--no-demo</span>, <span class="option">--no-exec</span>, and <span class="option">--no-inst</span> to
+suppress installation of the specified part of the package.
+These are intended for special purposes (e.g., building a database
+of help pages without fully installing all packages).
+</p>
+</li>
+<li><p> The documented line-length limit of 4095 bytes when reading
+from the console now also applies also to <code>parse(file="")</code>
+(which previously had a limit of around 1024 bytes).
+</p>
+</li>
+<li><p> A Bioconductor mirror can be set for use by
+<code>setRepositories()</code> <em>via</em> the option <code>"BioC_mirror"</code>,
+e.g. the European mirror can be selected by
+<code>options(BioC_mirror="http://bioconductor.statistik.tu-dortmund.de")</code>.
+</p>
+</li>
+<li><p> Double-clicking in a <code>tk_select.list()</code> list box now
+selects the item and closes the list box (as happens on the
+Windows <code>select.list()</code> widget).
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li> <p><code>configure</code> will be able to find a usable
+<code>libtiff</code> in some rare circumstances where it did not
+previously (where <code>libtiff</code> needed to be linked explicitly against
+<code>-ljpeg</code>).
+</p>
+</li>
+<li><p> Making <code>refman.pdf</code> works around a problem with the indexing
+with <code>hyperref 6.79d</code> and later.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED &amp; DEFUNCT</h4>
+
+
+<ul>
+<li><p> The <code>extended</code> argument is deprecated in
+<code>strsplit()</code>, <code>grep()</code>, <code>grepl()</code>, <code>sub()</code>,
+<code>gsub()</code>, <code>regexpr()</code> and <code>gregexpr()</code> (not just
+the value <code>extended = FALSE</code>) and will be removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+2.11.0.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>trigamma(x)</code> and other <code>psigamma(x, n)</code> calls
+are now accurate for very large <code>abs(x)</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14020">PR#14020</a>)
+</p>
+</li>
+<li> <p><code>[g]sub(perl=FALSE, fixed=FALSE)</code> could use excessive
+stack space when used with a very long vector containing some
+non-ASCII strings.
+</p>
+</li>
+<li><p> The default method of <code>weighted.mean(na.rm = TRUE)</code>
+did not omit weights for <code>NA</code> observations in 2.10.0.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14032">PR#14032</a>)
+</p>
+</li>
+<li> <p><code>[g]regexpr(pattern, fixed = TRUE)</code> returned match
+positions in bytes (not characters) in an MBCS locale if
+<code>pattern</code> was a single byte.
+</p>
+<p><code>[g]sub(fixed = TRUE)</code> with a single-byte pattern could
+conceivably have matched part of a multibyte character in a
+non-UTF-8 MBCS.
+</p>
+</li>
+<li> <p><code>findLineNum()</code> and <code>setBreakpoint()</code> would
+sometimes fail if the specified file was not in the current
+directory.
+</p>
+</li>
+<li><p> Package <span class="pkg">tcltk</span>'s <code>demo(tkdensity)</code> was broken in
+2.9.0 when <code>demo()</code> was changed to set <code>par(ask = TRUE)</code>.
+</p>
+</li>
+<li> <p><code>gsub()</code> with backrefs could fail on extremely long strings
+(hundreds of thousands of characters) due to integer overflow
+in a length calculation.
+</p>
+</li>
+<li> <p><code>abline(untf=TRUE)</code> now uses a better x-grid in
+log-scale, e.g., for <code>plot(c(1,300), c(1,300), log="xy");
+	abline(4,1, untf=TRUE)</code>.
+</p>
+</li>
+<li> <p><code>detach()</code>/<code>unloadNamespace()</code> arrange to flush
+the package's lazyload cache of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> objects once the
+package/namespace is no longer needed.
+</p>
+</li>
+<li><p> There have been small fixes to the rendering of help,
+e.g. <code>\command</code> is now rendered verbatim
+(so e.g. <code>--</code> is not interpreted, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14045">PR#14045</a>).
+</p>
+<p>Also, there are many small changes to help files where the new
+converters were not rendering them in the same way as before.
+</p>
+</li>
+<li> <p><code>available.packages()</code> would fail when run on a
+repository with no packages meeting the filtering conditions.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14042">PR#14042</a>)
+</p>
+</li>
+<li> <p><code>rep(x, times, each = 2)</code> gave invalid results when the
+<code>times</code> argument was a vector longer than <code>x</code>.
+Reported by Bill Dunlap.
+</p>
+</li>
+<li><p> An error when <code>unloadNamespace()</code> attempted to run the
+<code>.onUnload()</code> function gave an error in the reporting
+function and so was not reported properly.
+</p>
+</li>
+<li><p> Text help rendering did not handle very long input lines
+properly.
+</p>
+</li>
+<li> <p><code>promptMethods()</code> generated signature documentation
+improperly.
+</p>
+</li>
+<li> <p><code>pgamma(x, a, lower.tail=FALSE)</code> and
+<code>qgamma(...)</code> are now considerably more accurate in some
+regions for very small <code>a</code>.  <code>qgamma()</code> now correctly
+returns <code>0</code> instead of <code>NaN</code> in similar extreme cases,
+and <code>qgamma()</code> no longer warns in the case of small
+<code>a</code>, see (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=12324">PR#12324</a>).
+</p>
+</li>
+<li> <p><code>unname()</code> now also removes names from a zero length vector.
+</p>
+</li>
+<li><p> Printing results from <code>ls.str()</code> no longer evaluates
+unevaluated calls.
+</p>
+</li>
+<li> <p><code>complete.cases()</code> failed on a 0-column data frame
+argument.  (Underlies <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14066">PR#14066</a>.)
+</p>
+<p>It could return nonsensical results if no input determined the
+number of cases (seen in the no-segfault tests).
+</p>
+</li>
+<li><p> An error in <code>nls()</code> with a long formula could cause a
+segfault.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14059">PR#14059</a>)
+</p>
+</li>
+<li> <p><code>qchisq(p, df, ncp, lower.tail = FALSE)</code> with
+<code>ncp &gt;= 80</code> was inaccurate for small <code>p</code> (as the help page
+said): it is now less inaccurate.  (In part,
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13999">PR#13999</a>.)
+</p>
+<p>For <code>ncp</code> less than but close to 80, <code>pchisq()</code> and
+<code>qchisq()</code> are more accurate for probabilities very close
+to 1 (a series expansion was truncated slightly too early).
+</p>
+<p><code>pchisq(x, df, ncp)</code> can no longer return values just larger
+than one for large values of <code>ncp</code>.
+</p>
+</li>
+<li> <p><code>intToUtf8()</code> could fail when asked to produce 10Mb or more
+strings, something it was never intended to do: unfortunately
+Windows crashed <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> (other OSes reported a lack of resources).
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14068">PR#14068</a>)
+</p>
+</li>
+<li> <p><code>chisq.test()</code> could fail when given argument
+<code>x</code> or <code>y</code> which deparsed to more than one line.
+(Reported by Laurent Gauthier.)
+</p>
+</li>
+<li><p> S4 methods are uncached whenever the namespace containing
+them is unloaded (by <code>unloadNamespace()</code> as well as by
+<code>detach(unload = TRUE))</code>.
+</p>
+</li>
+<li><p> The internal record-keeping by
+<code>dyn.load</code>/<code>dyn.unload</code> was incomplete, which could
+crash <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> if a DLL that registered <code>.External</code> routines had
+earlier been unloaded.
+</p>
+</li>
+<li> <p><code>bessel[JY](x, nu)</code> with <code>nu</code> a negative integer (a
+singular case) is now correct, analogously to <code>besselI()</code>,
+see <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13556">PR#13556</a>.
+</p>
+</li>
+<li> <p><code>tools::file_path_as_absolute()</code> doubled the file
+separator when applied to a file such as &lsquo;<span class="file">&quot;/vmunix&quot;</span>&rsquo; or (on
+Windows) &lsquo;<span class="file">&quot;d:/afile&quot;</span>&rsquo; in a directory for which
+<code>getwd()</code> would return a path with a trailing separator
+(largely cosmetic, as reasonable file systems handle such a path
+correctly).  (Perhaps what was meant by <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14078">PR#14078</a>.)
+</p>
+</li>
+<li> <p><code>unsplit(drop = TRUE)</code> applied to a data frame failed
+to pass <code>drop</code> to the computation of row names.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14084">PR#14084</a>)
+</p>
+</li>
+<li><p> The <code>"difftime"</code> method of <code>mean()</code> ignored its
+<code>na.rm</code> argument.
+</p>
+</li>
+<li> <p><code>tcltk::tk_select.list()</code> is now more likely to remove the
+widget immediately after selection is complete.
+</p>
+</li>
+<li><p> Adding/subtracting a <code>"difftime"</code> object to/from a
+<code>"POSIXt"</code> or <code>"Date"</code> object works again (it was
+broken by the addition of <code>Ops.difftime</code>).
+</p>
+</li>
+<li><p> Conversion to latex of an Rd file with no aliases failed.
+</p>
+</li>
+<li> <p><code>wilcox.test(conf.int=TRUE)</code> has achieved.level
+corrected and, for <code>exact=FALSE</code>, now returns a
+<code>estimate</code> component which does not depend on the
+alternative used.
+</p>
+</li>
+<li> <p><code>help.search()</code> failed when the package argument was
+specified.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14113">PR#14113</a>)
+</p>
+</li>
+<li> <p><code>switch(EXPR = "A")</code> now returns <code>NULL</code>, as does
+<code>switch(1)</code> (which used to signal an error).
+</p>
+</li></ul>
+
+
+
+
+<h3><img class="toplogo" src="../help/figures/../../html/Rlogo.svg" alt="[R logo]" /> CHANGES IN R VERSION 2.10.0</h3>
+
+
+
+<h4>SIGNIFICANT USER-VISIBLE CHANGES</h4>
+
+
+<ul>
+<li><p> Package help is now converted from <code>Rd</code> by the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>-based
+converters that were first introduced in 2.9.0.  This means
+</p>
+
+<ul>
+<li><p> Packages that were installed by R-devel after 2009-08-09
+should not be used with earlier versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, and most
+aspects of package help (including the runnable examples)
+will be missing if they are so used.
+</p>
+</li>
+<li><p> Text, HTML and latex help and examples for packages
+installed under the new system are converted on-demand from
+stored parsed Rd files.  (Conversions stored in packages
+installed under <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> &lt; 2.10.0 are used if no parsed Rd files
+are found.  It is recommended that such packages be
+re-installed.)
+</p>
+</li></ul>
+
+</li>
+<li><p> HTML help is now generated dynamically using an HTTP server
+running in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process and listening on the loopback
+interface.
+</p>
+
+<ul>
+<li><p> Those worried about security implications of such
+a server can disable it by setting the environment variable
+<span class="env">R_DISABLE_HTTPD</span> to a non-empty value.  This disables
+<code>help.start()</code> and HTML help (so text help is shown
+instead).
+</p>
+</li>
+<li><p> The Java/Javascript search engine has been replaced by an
+HTML interface to <code>help.search()</code>.  <code>help.start()</code> no
+longer has an argument <code>searchEngine</code> as it is no longer
+needed.
+</p>
+</li>
+<li><p> The HTML help can now locate cross-references of the form
+<code>\link[pkg]{foo}</code> and <code>\link[pkg:foo]{bar}</code>
+where <code>foo</code> is an alias in the package, rather than the
+documented (basename of a) filename (since the documentation
+has been much ignored).
+</p>
+</li></ul>
+
+</li></ul>
+
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>polygon()</code>, <code>pdf()</code> and <code>postscript()</code> now
+have an argument <code>fillOddEven</code> (default <code>FALSE</code>),
+which controls the mode used for polygon fills of
+self-intersecting shapes.
+</p>
+</li>
+<li><p> New <code>debugonce()</code> function; further,
+<code>getOption("deparse.max.lines")</code> is now observed when
+debugging, from a code suggestion by John Brzustowski.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13647">PR#13647</a>/8)
+</p>
+</li>
+<li> <p><code>plot()</code> methods for <code>"stepfun"</code> and hence
+<code>"ecdf"</code> no longer plot points by default for <code>n &gt;= 1000</code>.
+</p>
+</li>
+<li> <p><code>[g]sub(perl=TRUE)</code> now also supports <code>"\E"</code>
+in order to <strong>end</strong> <code>"\U"</code> and <code>"\L"</code> case changes,
+thanks to a patch from Bill Dunlap.
+</p>
+</li>
+<li> <p><code>factor()</code>, <code>levels()&lt;-</code>, etc, now ensure that
+the resulting factor levels are unique (as was always the implied
+intention).  Factors with duplicated levels are still
+constructible by low-level means, but are now declared illegal.
+</p>
+</li>
+<li><p> New <code>print()</code> (S3) method for class <code>"function"</code>,
+also used for auto-printing.  Further, <code>.Primitive</code>
+functions now print and auto-print identically.  The new method
+is based on code suggestions by Romain François.
+</p>
+</li>
+<li><p> The <code>print()</code> and <code>toLatex()</code> methods for class
+<code>"sessionInfo"</code> now show the locale in a nicer format and
+have arguments to suppress locale information.
+</p>
+</li>
+<li><p> In addition to previously only <code>round()</code>, there are
+other <code>Math</code> group (S3) methods for <code>"difftime"</code>,
+such as <code>floor()</code>, <code>signif()</code>, <code>abs()</code>, etc.
+</p>
+</li>
+<li><p> For completeness, <code>old.packages()</code> and
+<code>available.packages()</code> allow arguments <code>type</code> to be
+specified (you could always specify arguments <code>available</code>
+or <code>contriburl</code>).
+</p>
+</li>
+<li> <p><code>available.packages()</code> by default only returns
+information on the latest versions of packages whose version
+requirements are satisfied by the currently running <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+</li>
+<li> <p><code>tools::write_PACKAGES()</code> has a new argument
+<code>latestOnly</code>, which defaults to <code>TRUE</code> when only the
+latest versions in the repository will be listed in the index.
+</p>
+</li>
+<li> <p><code>getOption()</code> has a new argument <code>default</code> that
+is returned if the specified option is not set.  This simplifies
+querying a value and checking whether it is <code>NULL</code> or not.
+</p>
+</li>
+<li> <p><code>parse()</code> now warns if the requested encoding is not supported.
+</p>
+</li>
+<li><p> The <code>"table"</code> method of <code>as.data.frame()</code> gains a
+<code>stringsAsFactors</code> argument to allow the classifying
+factors to be returned as character vectors rather than the
+default factor type.
+</p>
+</li>
+<li><p> If <code>model.frame.default()</code> encounters a character
+variable where <code>xlev</code> indicates a factor, it now converts
+the variable to a factor (with a warning).
+</p>
+</li>
+<li> <p><code>curve()</code> now returns a list containing the points that
+w§ere drawn.
+</p>
+</li>
+<li> <p><code>spineplot()</code> now accepts <code>axes = FALSE</code>, for
+consistency with other functions called by <code>plot.factor()</code>.
+</p>
+</li>
+<li><p> The Kendall and Spearman methods of <code>cor.test()</code> can
+optionally use continuity correction when not computing exact
+p-values.  (The Kendall case is the wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13691">PR#13691</a>.)
+</p>
+</li>
+<li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> now keeps track of line numbers during execution for code
+sourced with <code>options(keep.source = TRUE)</code>.  The source
+reference is displayed by debugging functions such as
+<code>traceback()</code>, <code>browser()</code>, <code>recover()</code>, and
+<code>dump.frames()</code>, and is stored as an attribute on each
+element returned by <code>sys.calls()</code>.
+</p>
+</li>
+<li><p> More functions now have an implicit (S4) generic definition.
+</p>
+</li>
+<li> <p><code>quantile.default()</code> now disallows factors (wish of
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13631">PR#13631</a>) and its help
+documents what numeric-like properties its input need to have to
+work correctly.
+</p>
+</li>
+<li> <p><code>weighted.mean()</code> is now generic and has <code>"Date"</code>,
+<code>"POSIXct"</code> and <code>"POSIXlt"</code> methods.
+</p>
+</li>
+<li><p> Naming subscripts (e.g., <code>x[i=1, j=2]</code>) in
+<code>data.frame</code> methods for <code>[</code> and <code>[[</code> now gives a
+warning.  (Names are ignored in the default method, but could
+have odd semantics for other methods, and do for the data.frame
+ones.)
+</p>
+</li>
+<li> <p><code>as.data.frame()</code> has an <code>"aovproj"</code> method.
+(Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13505">PR#13505</a>)
+</p>
+</li>
+<li> <p><code>as.character(x)</code> for numeric <code>x</code> no longer
+produces strings such as <code>"0.30"</code>, i.e., with trailing
+zeros.  This change also renders levels construction in
+<code>factor()</code> more consistent.
+</p>
+</li>
+<li> <p><code>codocClasses()</code>, which checks consistency of the
+documentation of S4 class slots, now does so in considerably more
+cases.  The documentation of inherited slots (from superclasses)
+is now optional.  This affects <code>R CMD check &lt;pkg&gt;</code> when
+the package defines S4 classes.
+</p>
+</li>
+<li> <p><code>codoc()</code> now also checks S4 methods for code/documentation
+mismatches.
+</p>
+</li>
+<li> <p><code>for()</code>, <code>while()</code>, and <code>repeat()</code> loops now
+always return NULL as their (invisible) value.  This change was
+needed to address a reference counting bug without creating
+performance penalties for some common use cases.
+</p>
+</li>
+<li><p> The <code>print()</code> method for <code>ls.str()</code> results now
+obeys an optional <code>digits</code> argument.
+</p>
+</li>
+<li><p> The <code>method</code> argument of <code>glm()</code> now allows
+user-contributed methods.
+</p>
+</li>
+<li><p> More general <code>reorder.default()</code> replaces functionality of
+<code>reorder.factor()</code> and <code>reorder.character()</code>.
+</p>
+</li>
+<li><p> The function <code>aspell()</code> has been added to provide an
+interface to the <code>Aspell</code> spell-checker.
+</p>
+</li>
+<li><p> Filters <code>RdTextFilter()</code> and <code>SweaveTeXFilter()</code>
+have been added to the tools package to provide support for
+<code>aspell()</code> or other spell checkers.
+</p>
+</li>
+<li> <p><code>xtabs()</code> with the new argument <code>sparse = TRUE</code>
+now returns a sparse Matrix, using package <a href="https://CRAN.R-project.org/package=Matrix"><span class="pkg">Matrix</span></a>.
+</p>
+</li>
+<li> <p><code>contr.sum()</code> etc gain an argument <code>sparse</code>
+which allows sparse matrices to be returned.
+</p>
+<p><code>contrasts()</code> also gains a <code>sparse</code> argument which it
+passes to the actual contrast function if that has a formal
+argument <code>sparse</code>.
+</p>
+<p><code>contrasts(f, .) &lt;- val</code> now also works when <code>val</code>
+is a sparse Matrix.  It is planned that <code>model.matrix()</code>
+will work with such factors <code>f</code> in the future.
+</p>
+</li>
+<li> <p><code>readNEWS()</code> will recognize a UTF-8 byte-order mark
+(BOM) in the &lsquo;<span class="file">NEWS</span>&rsquo; file.  However, it is safer to use only
+ASCII code there because not all editors recognize BOMs.
+</p>
+</li>
+<li><p> New utility function <code>inheritedSlotNames()</code> for S4
+class programming.
+</p>
+</li>
+<li> <p><code>tabulate()</code> now allows NAs to pass through (and be ignored).
+</p>
+</li>
+<li><p> If <code>debug()</code> is called on an S3 generic function then
+all methods are debugged as well.
+</p>
+</li>
+<li><p> Outlier symbols drawn by <code>boxplot()</code> now obey the
+<code>outlwd</code> argument.  Reported by Jurgen Kluge.
+</p>
+</li>
+<li> <p><code>svd(x)</code> and <code>eigen(x)</code> now behave analogously to
+<code>qr(x)</code> in accepting logical matrices <code>x</code>.
+</p>
+</li>
+<li><p> File &lsquo;<span class="file">NEWS</span>&rsquo; is now in UTF-8, and has a BOM (often
+invisible) on the first line, and <code>Emacs</code> local variables
+set for UTF-8 at the end.  <code>RShowDoc("NEWS")</code> should display
+this correctly, given suitable fonts.
+</p>
+</li>
+<li> <p><code>terms.formula(simplify = TRUE)</code> now does not deparse
+the LHS and so preserves non-standard responses such as <code>`a:
+       b`</code> (requested by Sundar Dorai-Raj).
+</p>
+</li>
+<li><p> New function <code>news()</code> for building and querying <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> or
+package news information.
+</p>
+</li>
+<li> <p><code>z^n</code> for integer <code>n</code> and complex <code>z</code> is more
+accurate now if <code>|n| &lt;= 65536</code>.
+</p>
+</li>
+<li> <p><code>factor(NULL)</code> now returns the same as
+<code>factor(character(0))</code> instead of an error, and
+<code>table(NULL)</code> consequently does analogously.
+</p>
+</li>
+<li> <p><code>as.data.frame.vector()</code> (and its copies) is slightly faster
+by avoiding a copy if there are no names (following a
+suggestion of Tim Hesterberg).
+</p>
+</li>
+<li> <p><code>writeLines()</code>, <code>writeBin()</code> and
+<code>writeChar()</code> have a new argument <code>useBytes</code>.  If
+false, character strings with marked encodings are translated to
+the current locale (as before) but if true they are written
+byte-by-byte.
+</p>
+</li>
+<li> <p><code>iconv()</code> has a new argument <code>mark</code> which can be
+used (by experts) to suppress the declaration of encodings.
+</p>
+</li>
+<li> <p>&lsquo;<span class="file">DESCRIPTION</span>&rsquo; file's <code>LinkingTo</code> specs are now
+recognized as installation dependencies, and included in package
+management computations.
+</p>
+</li>
+<li><p> Standardized &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file <code>License</code> specs
+are now available for package management computations.
+</p>
+</li>
+<li> <p><code>"\uxxxx"</code> and <code>"\Uxxxxxxxx"</code> escapes can now be
+parsed to a UTF-8 encoded string even in non-UTF-8 locales (this
+has been implemented on Windows since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.7.0).  The semantics
+have been changed slightly: a string containing such escapes is
+always stored in UTF-8 (and hence is suitable for portably
+including Unicode text in packages).
+</p>
+</li>
+<li><p> New <code>as.raw()</code> method for <code>"tclObj"</code> objects (wish
+of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13758">PR#13758</a>).
+</p>
+</li>
+<li> <p><code>Rd.sty</code> now makes a better job of setting email addresses,
+including using a monospaced font.
+</p>
+</li>
+<li> <p><code>textConnection()</code> gains an <code>encoding</code> argument
+to determine how input strings with marked encodings will be
+handled.
+</p>
+</li>
+<li> <p><code>R CMD Rd2pdf</code> is available as a shortcut for
+<code>R CMD Rd2dvi --pdf</code>.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now checks links where a package is
+specified (<code>\link[pkg]{file}</code> or
+<code>\link[pkg:file]{topic}</code>), if the package is available.
+It notes if the package is not available, as in many cases this
+is an error in the link.
+</p>
+</li>
+<li> <p><code>identical()</code> gains three logical arguments, which
+allow for even more differentiation, notably <code>-0</code> and
+<code>0</code>.
+</p>
+</li>
+<li> <p><code>legend()</code> now can specify the <code>border</code> color of
+filled boxes, thanks to a patch from Frederic Schutz.
+</p>
+</li>
+<li><p> Indexing with a vector index to <code>[[ ]]</code> has now been
+extended to all recursive types.
+</p>
+</li>
+<li><p> Pairlists may now be assigned as elements of lists.  (Lists
+could always be created with pairlist elements, but <code>[[&lt;-</code>
+didn't support assigning them.)
+</p>
+</li>
+<li><p> The parser now supports C-preprocessor-like <code>#line</code>
+directives, so error messages and source references may refer to
+the original file rather than an intermediate one.
+</p>
+</li>
+<li><p> New functions <code>findLineNum()</code> and
+<code>setBreakpoint()</code> work with the source references to find
+the location of source lines and set breakpoints (using
+<code>trace()</code>) at those lines.
+</p>
+</li>
+<li><p> Namespace importing is more careful about warning on masked
+generics, thanks to a patch by Yohan Chalabi.
+</p>
+</li>
+<li> <p><code>detach()</code> now has an argument <code>character.only</code>
+with the same meaning as for <code>library()</code> or
+<code>require()</code>.
+</p>
+</li>
+<li> <p><code>available.packages()</code> gains a <code>filters</code>
+argument for specifying the filtering operations performed on the
+packages found in the repositories.  A new built-in
+<code>"license/FOSS"</code> filter only retains packages for which
+installation can proceed solely based on packages which can be
+verified as Free or Open Source Software (FOSS) employing the
+available license specifications.
+</p>
+</li>
+<li><p> In registering an S3 class by a call to
+<code>setOldClass()</code>, the data part (e.g., the object type)
+required for the class can be included as one of the superclasses
+in the Classes argument.
+</p>
+</li>
+<li><p> The argument <code>f</code> to <code>showMethods()</code> can be an
+expression evaluating to a generic function, allowing methods to
+be shown for non-exported generics and other nonstandard cases.
+</p>
+</li>
+<li> <p><code>sprintf()</code> now supports <code>%o</code> for octal
+conversions.
+</p>
+</li>
+<li><p> New function <code>Sys.readlink()</code> for information about symbolic
+links, including if a file is a symbolic link.
+</p>
+</li>
+<li><p> Package <span class="pkg">tools</span> has new functions
+<code>checkRdaFiles()</code> and <code>resaveRdaFiles()</code> to report on
+the format of &lsquo;<span class="file">.rda</span>&rsquo;/&lsquo;<span class="file">.RData</span>&rsquo; data files, and to
+re-save them in a different compressed format, including choosing
+the most compact format available.
+</p>
+<p>A new <code>INSTALL</code> option, <span class="option">--resave-data</span>, makes use
+of this.
+</p>
+</li>
+<li><p> File &lsquo;<span class="file">~/.R/config</span>&rsquo; is used in preference to
+&lsquo;<span class="file">~/.Rconfig</span>&rsquo;, and these are now documented in &lsquo;R
+Installation and Administration&rsquo;.
+</p>
+</li>
+<li><p> Logic operations with complex numbers now work, as they were always
+documented to, and as in S.
+</p>
+</li>
+<li> <p><code>arrows()</code> and <code>segments()</code> allow one of <code>x1</code>
+or <code>y1</code> to be omitted to simplify the specification of
+vertical or horizontal lines (suggestion of Tim Hesterberg).
+</p>
+</li>
+<li> <p><code>approxfun()</code> is faster by avoiding repeated <code>NA</code>
+checks (diagnosis and patch by Karline Soetaert &amp; Thomas
+Petzoldt).
+</p>
+</li>
+<li><p> There are the beginnings of a Nynorsk translation by Karl Ove
+Hufthammer.
+</p>
+</li>
+<li> <p><code>stripchart()</code> allows <code>par</code> <code>bg</code> to be
+passed in for the background colour for <code>pch = 21</code> (wish of
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13984">PR#13984</a>).
+</p>
+</li>
+<li><p> New generic function <code>.DollarNames()</code> to enable class authors
+to customize completion after the <code>$</code> extractor.
+</p>
+</li>
+<li> <p><code>load()</code>, <code>save()</code>, <code>dput()</code> and
+<code>dump()</code> now open a not-yet-open connection in the
+appropriate mode (as other functions using connections directly
+already did).
+</p>
+</li></ul>
+
+
+
+
+<h4>REGULAR EXPRESSIONS</h4>
+
+
+<ul>
+<li><p> A different regular expression engine is used for basic and
+extended regexps and is also for approximate matching.  This is
+based on the TRE library of Ville Laurikari, a modified copy of
+which is included in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> sources.
+</p>
+<p>This is often faster, especially in a MBCS locale.
+</p>
+<p>Some known differences are that it is less tolerant of invalid
+inputs in MBCS locales, and in its interpretation of undefined
+(extended) regexps such as <code>"^*"</code>.  Also, the interpretation of
+ranges such as <code>[W-z]</code> in caseless matching is no longer to map
+the range to lower case.
+</p>
+<p>This engine may in future be used in &lsquo;literal&rsquo; mode for
+<code>fixed = TRUE</code>, and there is a compile-time option in
+<code>src/main/grep.c</code> to do so.
+</p>
+</li>
+<li><p> The use of repeated boundary regexps in <code>gsub()</code> and
+<code>gregexpr()</code> as warned about in the help page does not work
+in this engine (it did in the previous one since 2005).
+</p>
+</li>
+<li><p> Extended (and basic) regexps now support same set of options
+as for <code>fixed = TRUE</code> and <code>perl = TRUE</code>, including
+<code>useBytes</code> and support for UTF-8-encoded strings in
+non-UTF-8 locales.
+</p>
+</li>
+<li> <p><code>agrep()</code> now has full support for MBCS locales with a modest
+speed penalty.  This enables <code>help.search()</code> to use approximate
+matching character-wise rather than byte-wise.
+</p>
+</li>
+<li> <p><code>[g]sub</code> use a single-pass algorithm instead of
+matching twice and so is usually faster.
+</p>
+</li>
+<li><p> The <code>perl = TRUE</code> versions now work correctly in a
+non-UTF-8 MBCS locale, by translating the inputs to UTF-8.
+</p>
+</li>
+<li> <p><code>useBytes = TRUE</code> now inhibits the translation of inputs with
+marked encodings.
+</p>
+</li>
+<li> <p><code>strsplit()</code> gains a <code>useBytes</code> argument.
+</p>
+</li>
+<li><p> The algorithm used by <code>strsplit()</code> has been reordered
+to batch by elements of <code>split</code>: this can be much faster for
+<code>fixed = FALSE</code> (as multiple compilation of regexps is avoided).
+</p>
+</li>
+<li><p> The help pages, including <code>?regexp</code>, have been updated
+and should be consulted for details of the new implementations.
+</p>
+</li></ul>
+
+
+
+
+<h4>HELP &amp; Rd FILE CHANGES</h4>
+
+
+<ul>
+<li><p> A new dynamic HTML help system is used by default, and may be
+controlled using <code>tools::startDynamicHelp()</code>.  With this enabled,
+HTML help pages will be generated on request, resolving links
+by searching through the current <code>.libPaths()</code>.  The user
+may set options(<code>"help.ports"</code>) to control which IP port is used
+by the server.
+</p>
+</li>
+<li> <p><code>help.start()</code> no longer sets <code>options(htmlhelp =
+       TRUE)</code> (it used to on Unix but not on Windows).  Nor does it on
+Unix reset the <code>"browser"</code> option if given an argument of
+that name.
+</p>
+<p>Arguments <code>update</code> and <code>remote</code> are now available
+on all platforms: the default is <code>update = FALSE</code> since the
+http server will update the package index at first use.
+</p>
+</li>
+<li> <p><code>help()</code> has a new argument <code>help_type</code> (with
+default set by the option of that name) to supersede arguments
+<code>offline</code>, <code>htmlhelp</code> and <code>chmhelp</code>
+(although for now they still work if <code>help_type</code> is
+unset).  There is a new type, <code>"PDF"</code> to allow offline PDF
+(rather than PostScript).
+</p>
+<p>A function <code>offline_help_helper()</code> will be used if this exists
+in the workspace or further down the search path, otherwise
+the function of that name in the <span class="pkg">utils</span> namespace is used.
+</p>
+</li>
+<li><p> Plain text help is now used as the fallback for HTML help (as
+it always was for Compiled HTML help on Windows).
+</p>
+</li>
+<li><p> It is possible to ask for static HTML pages to be prebuilt
+<em>via</em> the configure option <span class="option">--enable-prebuilt-html</span>.  This
+may be useful for those who wish to make HTML help available
+outside R, e.g. on a local web site.
+</p>
+</li>
+<li><p> An experimental tag <code>\Sexpr</code> has been added to Rd
+files, to evaluate expressions at build, install, or render time.
+Currently install time and render time evaluation are supported.
+</p>
+</li>
+<li><p> Tags <code>\if</code>, <code>\ifelse</code> and <code>\out</code> have been
+added to allow format-specific (or more general, using
+<code>\Sexpr</code>) conditional text in man pages.
+</p>
+</li>
+<li><p> The <code>parse_Rd()</code> parser has been made more tolerant of coding
+errors in Rd files:  now all syntax errors are reported as
+warnings, and an attempt is made to continue parsing.
+</p>
+</li>
+<li> <p><code>parse_Rd()</code> now has an argument <code>fragment</code>
+(default <code>FALSE</code>) to accept small fragments of Rd files (so
+that <code>\Sexpr</code> can output Rd code which is then parsed).
+</p>
+</li>
+<li> <p><code>parse_Rd()</code> now always converts its input to UTF-8.
+The <code>Rd2*</code> rendering functions have a new argument,
+<code>outputEncoding</code>, which controls how their output is
+encoded.
+</p>
+</li>
+<li> <p><code>parse_Rd()</code> no longer includes the newline as part of
+a <code>"%"</code>-style comment.
+</p>
+</li>
+<li><p> There have been various bug fixes and code reorganization in
+the Rd renderers <code>Rd2HTML</code>, <code>Rd2latex</code>, <code>Rd2txt</code>,
+and <code>Rd2ex</code>.
+</p>
+<p>All example files are now created with either ASCII or UTF-8
+encoding, and the encoding is only marked in the file if there
+is any non-UTF-8 code (previously it was marked if the help
+file had non-ASCII contents, possibly in other sections).
+</p>
+</li>
+<li> <p><code>print.Rd()</code> now adds necessary escape characters so that
+printing and re-parsing an Rd object should produce an
+equivalent object.
+</p>
+</li>
+<li> <p><code>parse_Rd()</code> was incorrectly handling multiple backslashes in
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code strings, converting 4n+3 backslashes to 2n+1 instead
+of 2n+2.
+</p>
+</li>
+<li> <p><code>parse_Rd()</code> now recognizes the <code>\var</code> tag within
+a quoted string in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>-like text.
+</p>
+</li>
+<li> <p><code>parse_Rd()</code> now treats the argument of
+<code>\command</code> as LaTeX-like, rather than verbatim.
+</p>
+</li></ul>
+
+
+
+
+<h4>COMPRESSION</h4>
+
+
+<ul>
+<li><p> New function <code>untar()</code> to list or unpack tar archives,
+possibly compressed.  This uses either an external <code>tar</code>
+command or an internal implementation.
+</p>
+</li>
+<li><p> New function <code>tar()</code> to create (possibly compressed)
+tar archives.
+</p>
+</li>
+<li><p> New functions <code>memCompress()</code> and
+<code>memDecompress()</code> for in-memory compression and
+decompression.
+</p>
+</li>
+<li> <p><code>bzfile()</code> has a <code>compress</code> argument to select
+the amount of effort put into compression when writing.
+</p>
+</li>
+<li><p> New function <code>xzfile()</code> for use with
+<code>xz</code>-compressed files.  (This can also read files
+compressed by some versions of <code>lzma</code>.)
+</p>
+</li>
+<li> <p><code>gzfile()</code> looks at the file header and so can now also
+read <code>bzip2</code>-ed files and <code>xz</code>-compressed files.
+</p>
+</li>
+<li><p> There are the new options of <code>save(compress = "bzip2")</code>
+and <code>"xz"</code> to use <code>bzip2</code> or <code>xz</code>
+compression (which will be slower, but can give substantially
+smaller files).  Argument <code>compression_level</code> gives finer
+control over the space/time tradeoffs.
+</p>
+<p><code>load()</code> can read such saves (but only as from this version of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>).
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code>/<code>check</code> and
+<code>tools::writePACKAGES</code> accept a wider range of compressed
+tar archives.  Precisely how wide depends on the capabilities of
+the host system's <code>tar</code> command: they almost always
+include <code>.tar.bz2</code> archives, and with modern versions of
+<code>tar</code> other forms of compression such as <code>lzma</code>
+and <code>xz</code>, and arbitrary extensions.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code> has a new option
+<span class="option">--data-compress</span> to control the compression used when
+lazy-loading data.  New possibilities are
+<span class="option">--data-compress=bzip2</span> which will give ca 15% better
+compression at the expense of slower installation times, and
+<span class="option">--data-compress=xz</span>, often giving even better compression
+on large datasets at the expense of much longer installation
+times.  (The latter is used for the recommended packages: it is
+particularly effective for <a href="https://CRAN.R-project.org/package=survival"><span class="pkg">survival</span></a>.)
+</p>
+</li>
+<li> <p><code>file()</code> for open = <code>""</code>, <code>"r"</code> or
+<code>"rt"</code> will automagically detect compressed files (from
+<code>gzip</code>, <code>bzip2</code> or <code>xz</code>).  This means
+that compressed files can be specified by file name (rather than
+<em>via</em> a <code>gzfile()</code> connection) to <code>read.table()</code>,
+<code>readlines()</code>, <code>scan()</code> and so on.
+</p>
+</li>
+<li> <p><code>data()</code> can handle compressed text files with extensions
+&lsquo;<span class="file">.{txt,tab,csv}.{gz,bz2,xz}</span>&rsquo; .
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED &amp; DEFUNCT</h4>
+
+
+<ul>
+<li> <p><code>png(type="cairo1")</code> is defunct: the value is no longer
+recognized.
+</p>
+</li>
+<li> <p><code>tools::Rd_parse()</code> is defunct (as this version of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+uses only Rd version 2).
+</p>
+</li>
+<li><p> Use of file &lsquo;<span class="file">~/.Rconf</span>&rsquo; (which was deprecated in favour
+of &lsquo;<span class="file">~/.Rconfig</span>&rsquo; in 2004) has finally been removed.
+</p>
+</li>
+<li><p> Bundles of packages are deprecated.  See &lsquo;Writing R
+Extensions&rsquo; for the steps needed to unbundle a bundle.
+</p>
+</li>
+<li> <p><code>help()</code> arguments <code>offline</code>, <code>htmlhelp</code> and
+<code>chmhelp</code> are deprecated in favour of <code>help_type</code>.
+</p>
+</li>
+<li> <p><code>clearNames()</code> (in package <span class="pkg">stats</span>) is deprecated
+for <code>unname()</code>.
+</p>
+</li>
+<li><p> Basic regular expressions (<code>extended = FALSE</code>) are
+deprecated in <code>strsplit</code>, <code>grep</code> and friends.  There is
+a precise POSIX standard for them, but it is not what recent RE
+engines implement, and it seems that in almost all cases package
+authors intended <code>fixed = TRUE</code> when using <code>extended =
+       FALSE</code>.
+</p>
+</li>
+<li> <p><code>methods::trySilent()</code> is deprecated in favour of
+<code>try(silent=TRUE)</code> or &ndash; more efficiently and flexibly &ndash;
+something like <code>tryCatch(error = function(e) e)</code>.
+</p>
+</li>
+<li> <p><code>index.search()</code> is deprecated: there are no longer
+directories of types other than <code>help</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> cairo &gt;= 1.2 is now required (1.2.0 was released in July 2006)
+for cairo-based graphics devices (which remain optional).
+</p>
+</li>
+<li><p> A suitable <code>iconv()</code> is now required: support for
+configure option <span class="option">--without-iconv</span> has been withdrawn (it
+was deprecated in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.5.0).
+</p>
+</li>
+<li><p> Perl is no longer &lsquo;essential&rsquo;.  <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> can be built
+without it, but scripts <code>R CMD build</code>, <code>check</code>,
+<code>Rprof</code> and <code>Sd2d</code> currently require it.
+</p>
+</li>
+<li><p> A system <code>glob</code> function is now essential (a working
+<code>Sys.glob()</code> has been assumed since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.9.0 at least).
+</p>
+</li>
+<li><p> C99 support for MBCS is now required, and configure option
+<span class="option">--disable-mbcs</span> has been withdrawn.
+</p>
+</li>
+<li><p> Having a version of <code>tar</code> capable of automagically
+detecting compressed archives is useful for
+<code>utils::untar()</code>, and so <code>gtar</code> (a common name for
+GNU <code>tar</code>) is preferred to <code>tar</code>: set environment
+variable <span class="env">TAR</span> to specify a particular <code>tar</code> command.
+</p>
+</li></ul>
+
+
+
+
+<h4>INTERNATIONALIZATION</h4>
+
+
+<ul>
+<li><p> There is some makefile support for adding/updating translations
+in packages: see <code>po/README</code> and &lsquo;Writing R Extensions&rsquo;.
+</p>
+<p>There is support for the use of <code>dngettext</code> for C-level
+translations in packages: see &lsquo;Writing R Extensions&rsquo;.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> Assigning an extra 0-length column to a data frame by
+<code>DF[, "foo"] &lt;- value</code> now works in most cases (by filling
+with <code>NA</code>s) or fails.  (It used to give a corrupt data
+frame.)
+</p>
+</li>
+<li> <p><code>validObject()</code> avoids an error during evaluation in the case
+of various incorrect slot definitions.
+</p>
+</li>
+<li> <p><code>n:m</code> now returns a result of type <code>"integer"</code> in
+a few more boundary cases.
+</p>
+</li>
+<li><p> The <code>zap.ind</code> argument to <code>printCoefmat()</code> did
+not usually work as other code attempted to ensure that non-zero
+values had a non-zero representation.
+</p>
+</li>
+<li> <p><code>printCoefmat()</code> formatted groups of columns together,
+not just the <code>cs.ind</code> group but also the <code>zap.ind</code>
+group and a residual group.  It now formats all columns except
+the <code>cs.ind</code> group separately (and zaps the <code>zap.ind</code>
+group column-by-column).  The main effect will be see in the
+output from <code>print.anova()</code>, as this grouped SS-like columns
+in the <code>zap.ind</code> group.
+</p>
+</li>
+<li> <p><code>R_ReplDLLinit()</code> initializes the top-level jump so
+that some embedded applications on Windows no longer crash on
+error.
+</p>
+</li>
+<li> <p><code>identical()</code> failed to take the encoding of character
+strings into account, so identical byte patterns are not
+necessarily identical strings, and similarly Latin-1 and UTF-8
+versions of the same string differ in byte pattern.
+</p>
+</li>
+<li> <p><code>methods(f)</code> used to warn unnecessarily for an S4
+generic <code>f</code> which had been created based on an existing S3
+generic.
+</p>
+</li>
+<li><p> The check for consistent ordering of superclasses was not
+ignoring all conditional relations (the symptom was usually
+spurious warnings for classes extending <code>"array"</code>).
+</p>
+</li>
+<li><p> Trying to assign into a raw vector with an index vector
+containing <code>NA</code>s could cause a segfault.  Reported by Hervé
+Pagès.
+</p>
+</li>
+<li> <p><code>Rscript</code> could segfault if (by user error) its
+filename argument was missing.  Reported by Martin Morgan.
+</p>
+</li>
+<li> <p><code>getAnywhere()</code> (and functions that use it, including argument
+completion in the console) did not handle special built-in
+functions.  Reported by Romain Francois.
+</p>
+</li>
+<li> <p><code>order()</code> was missing a <code>PROTECT()</code> call and so
+could segfault when called on character data under certain (rare)
+circumstances involving marked non-native encodings.
+</p>
+</li>
+<li> <p><code>prettyNum(z, drop0trailing=TRUE)</code> did not work
+correctly when <code>z</code> was a complex vector.  Consequently,
+<code>str(z, ...)</code> also did not.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=13985">PR#13985</a>)
+</p>
+</li>
+<li> <p><code>make distclean</code> removed too many files in
+<code>etc/</code> if builddir = srcdir.
+</p>
+</li>
+<li> <p><code>R CMD</code> replaced <code>TEXINPUTS</code> rather than
+appending to it (as documented and intended).
+</p>
+</li>
+<li> <p><code>help.start()</code> no longer fails on unix when
+<code>"browser"</code> is a function.
+</p>
+</li>
+<li> <p><code>pbeta(x, ..., log.p = TRUE)</code> is sometimes more accurate,
+e.g., for very small <code>x</code>.
+</p>
+</li>
+<li><p> Unserializing a pre-2.8 workspace containing pure ASCII
+character objects with a Latin-1 or UTF-8 encoding would corrupt
+the <code>CHARSXP</code> cache.
+</p>
+</li></ul>
+
+
+
+
+<h3>OLDER NEWS</h3>
+
+<p>News for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.9.2 patched and earlier can be found in files
+such as &lsquo;<span class="file">NEWS.2</span>&rsquo; in the &lsquo;<span class="file">doc</span>&rsquo; directory.
+</p>
+
+
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/NEWS.2.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/NEWS.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/NEWS.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/NEWS.html	(revision 2476)
@@ -0,0 +1,6994 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>R: R News</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<link rel="stylesheet" type="text/css" href="R.css" />
+</head><body>
+
+<table width="100%" summary="page for NEWS"><tr><td>NEWS</td><td style="text-align: right;">R Documentation</td></tr></table>
+
+<h2>R News</h2>
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.3.2</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>extSoftVersion()</code> now reports the version (if any) of
+the <code>readline</code> library in use.
+</p>
+</li>
+<li><p> The version of LAPACK included in the sources has been
+updated to 3.6.1, a bug-fix release including a speedup for the
+non-symmetric case of <code>eigen()</code>.
+</p>
+</li>
+<li><p> Use <code>options(deparse.max.lines=)</code> to limit the number
+of lines recorded in <code>.Traceback</code> and other deparsing
+activities.
+</p>
+</li>
+<li> <p><code>format(&lt;AsIs&gt;)</code> looks more regular, also for
+non-character atomic matrices.
+</p>
+</li>
+<li> <p><code>abbreviate()</code> gains an option <code>named = TRUE</code>.
+</p>
+</li>
+<li><p> The online documentation for package <span class="pkg">methods</span> is
+extensively rewritten.  The goals are to simplify
+documentation for basic use, to note old features not
+recommended and to correct out-of-date information.
+</p>
+</li>
+<li><p> Calls to <code>setMethod()</code> no longer print a message when
+creating a generic function in those cases where that is
+natural: S3 generics and primitives.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION and INCLUDED SOFTWARE</h4>
+
+
+<ul>
+<li><p> Versions of the <code>readline</code> library &gt;= 6.3 had been
+changed so that terminal window resizes were not signalled to
+<code>readline</code>: code has been added using a explicit signal
+handler to work around that (when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is compiled against readline
+&gt;= 6.3).  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16604">PR#16604</a>)
+</p>
+</li>
+<li> <p><code>configure</code> works better with Oracle Developer
+Studio 12.5.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD check</code> reports more dubious flags in files
+&lsquo;<span class="file">src/Makevars[.in]</span>&rsquo;, including <span class="option">-w</span> and <span class="option">-g</span>.
+</p>
+</li>
+<li> <p><code>R CMD check</code> has been set up to filter important
+warnings from recent versions of <code>gfortran</code> with
+<span class="option">-Wall -pedantic</span>: this now reports non-portable GNU
+extensions such as out-of-order declarations.
+</p>
+</li>
+<li> <p><code>R CMD config</code> works better with paths containing
+spaces, even those of home directories (as reported by Ken Beath).
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li><p> Use of the C/C++ macro <span class="samp">NO_C_HEADERS</span> is deprecated
+(no C headers are included by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> headers from C++ as from <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+3.3.0, so it should no longer be needed).
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> The check for non-portable flags in <code>R CMD check</code>
+could be stymied by &lsquo;<span class="file">src/Makevars</span>&rsquo; files which contained
+targets.
+</p>
+</li>
+<li><p> (Windows only) When using certain desktop themes in Windows
+7 or higher, <kbd>Alt-Tab</kbd> could cause <code>Rterm</code> to stop
+accepting input.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14406">PR#14406</a>; patch submitted by Jan Gleixner.)
+</p>
+</li>
+<li> <p><code>pretty(d, ..)</code> behaves better for date-time <code>d</code>
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16923">PR#16923</a>).
+</p>
+</li>
+<li><p> When an S4 class name matches multiple classes in the S4
+cache, perform a dynamic search in order to obey namespace
+imports.  This should eliminate annoying messages about multiple
+hits in the class cache.  Also, pass along the package from the
+<code>ClassExtends</code> object when looking up superclasses in the
+cache.
+</p>
+</li>
+<li> <p><code>sample(NA_real_)</code> now works.
+</p>
+</li>
+<li><p> Packages using non-ASCII encodings in their code did not
+install data properly on systems using different encodings.
+</p>
+</li>
+<li> <p><code>merge(df1, df2)</code> now also works for data frames with
+column names <code>"na.last"</code>, <code>"decreasing"</code>, or
+<code>"method"</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17119">PR#17119</a>)
+</p>
+</li>
+<li> <p><code>contour()</code> caused a segfault if the <code>labels</code>
+argument had length zero.  (Reported by Bill Dunlap.)
+</p>
+</li>
+<li> <p><code>unique(warnings())</code> works more correctly, thanks to a
+new <code>duplicated.warnings()</code> method.
+</p>
+</li>
+<li> <p><code>findInterval(x, vec = numeric(), all.inside = TRUE)</code>
+now returns <code>0</code>s as documented.  (Reported by Bill Dunlap.)
+</p>
+</li>
+<li><p> (Windows only) <code>R CMD SHLIB</code> failed when a symbol
+in the resulting library had the same name as a keyword in
+the &lsquo;<span class="file">.def</span>&rsquo; file.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17130">PR#17130</a>)
+</p>
+</li>
+<li> <p><code>pmax()</code> and <code>pmin()</code> now work with (more ?)
+classed objects, such as <code>"Matrix"</code> from the <a href="https://CRAN.R-project.org/package=Matrix"><span class="pkg">Matrix</span></a>
+package, as documented for a long time.
+</p>
+</li>
+<li> <p><code>axis(side, x = D)</code> and hence <code>Axis()</code> and
+<code>plot()</code> now work correctly for <code>"Date"</code> and time
+objects <code>D</code>, even when &ldquo;time goes backward&rdquo;, e.g.,
+with decreasing <code>xlim</code>.  (Reported by William May.)
+</p>
+</li>
+<li> <p><code>str(I(matrix(..)))</code> now looks as always intended.
+</p>
+</li>
+<li> <p><code>plot.ts()</code>, the <code>plot()</code> method for time series,
+now respects <code>cex</code>, <code>lwd</code> and <code>lty</code>.  (Reported by
+Greg Werbin.)
+</p>
+</li>
+<li> <p><code>parallel::mccollect()</code> now returns a named list (as
+documented) when called with <code>wait = FALSE</code>.  (Reported by
+Michel Lang.)
+</p>
+</li>
+<li><p> If a package added a class to a class union in another
+package, loading the first package gave erroneous warnings
+about &ldquo;undefined subclass&rdquo;.
+</p>
+</li>
+<li> <p><code>c()</code>'s argument <code>use.names</code> is documented now, as
+belonging to the (C internal) default method.   In
+&ldquo;parallel&rdquo;, argument <code>recursive</code> is also moved from
+the generic to the default method, such that the formal argument list
+of <span class="pkg">base</span> generic <code>c()</code> is just <code>(...)</code>.
+</p>
+</li>
+<li> <p><code>rbeta(4, NA)</code> and similarly <code>rgamma()</code> and
+<code>rnbinom()</code> now return <code>NaN</code>'s with a warning, as other
+r&lt;dist&gt;(), and as documented.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17155">PR#17155</a>)
+</p>
+</li>
+<li><p> Using <code>options(checkPackageLicense = TRUE)</code> no longer
+requires acceptance of the licence for non-default standard
+packages such as <span class="pkg">compiler</span>.  (Reported by Mikko Korpela.)
+</p>
+</li>
+<li> <p><code>split(&lt;very_long&gt;, *)</code> now works even when the split
+off parts are long. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17139">PR#17139</a>)
+</p>
+</li>
+<li> <p><code>min()</code> and <code>max()</code> now also work correctly when
+the argument list starts with <code>character(0)</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17160">PR#17160</a>)
+</p>
+</li>
+<li><p> Subsetting very large matrices (<code>prod(dim(.)) &gt;= 2^31</code>)
+now works thanks to Michael Schubmehl's <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17158">PR#17158</a>.
+</p>
+</li>
+<li> <p><code>bartlett.test()</code> used residual sums of squares
+instead of variances, when the argument was a list of <code>lm</code> objects.
+(Reported by Jens Ledet Jensen).
+</p>
+</li>
+<li> <p><code>plot(&lt;lm&gt;, which = *)</code> now correctly labels the
+contour lines for the standardized residuals for <code>which = 6</code>.
+It also takes the correct <i>p</i> in case of singularities (also
+for <code>which = 5</code>).  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17161">PR#17161</a>)
+</p>
+</li>
+<li> <p><code>xtabs(~ exclude)</code> no longer fails from wrong scope,
+thanks to Suharto Anggono's <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=17147">PR#17147</a>.
+</p>
+</li>
+<li><p> Reference class calls to <code>methods()</code> did not
+re-analyse previously defined methods, meaning that calls to
+methods defined later would fail. (Reported by Charles Tilford).
+</p>
+</li>
+<li> <p><code>findInterval(x, vec, left.open = TRUE)</code> misbehaved in some
+cases. (Reported by Dmitriy Chernykh.)
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.3.1</h3>
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>R CMD INSTALL</code> and hence <code>install.packages()</code>
+gave an internal error installing a package called
+<span class="pkg">description</span> from a tarball on a case-insensitive file system.
+</p>
+</li>
+<li> <p><code>match(x, t)</code> (and hence <code>x %in% t</code>) failed
+when <code>x</code> was of length one, and either <code>character</code> and <code>x</code>
+and <code>t</code> only differed in their <code>Encoding</code> or when
+<code>x</code> and <code>t</code> where <code>complex</code> with <code>NA</code>s or <code>NaN</code>s.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16885">PR#16885</a>.)
+</p>
+</li>
+<li> <p><code>unloadNamespace(ns)</code> also works again when <code>ns</code> is a
+&lsquo;namespace&rsquo;, as from <code>getNamespace()</code>.
+</p>
+</li>
+<li> <p><code>rgamma(1, Inf)</code> or <code>rgamma(1, 0, 0)</code> no longer give
+<code>NaN</code> but the correct limit.
+</p>
+</li>
+<li> <p><code>length(baseenv())</code> is correct now.
+</p>
+</li>
+<li> <p><code>pretty(d, ..)</code> for date-time <code>d</code> rarely failed
+when <code>"halfmonth"</code> time steps were tried (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16923">PR#16923</a>) and
+on &lsquo;inaccurate&rsquo; platforms such as 32-bit Windows or
+a configuration with <code>--disable-long-double</code>; see comment
+#15 of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16761">PR#16761</a>.
+</p>
+</li>
+<li><p> In <code>text.default(x, y, labels)</code>, the rarely(?) used
+default for <code>labels</code> is now correct also for the case of a
+2-column matrix <code>x</code> and missing <code>y</code>.
+</p>
+</li>
+<li> <p><code>as.factor(c(a = 1L))</code> preserves <code>names()</code> again
+as in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> &lt; 3.1.0.
+</p>
+</li>
+<li> <p><code>strtrim(""[0], 0[0])</code> now works.
+</p>
+</li>
+<li><p> Use of <code>Ctrl-C</code> to terminate a reverse incremental
+search started by <code>Ctrl-R</code> in the <code>readline</code>-based Unix
+terminal interface is now supported when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> was compiled against
+<code>readline</code> &gt;= 6.0 (<code>Ctrl-G</code> always worked).
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16603">PR#16603</a>)
+</p>
+</li>
+<li> <p><code>diff(&lt;difftime&gt;)</code> now keeps the <code>"units"</code>
+attribute, as subtraction already did, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16940">PR#16940</a>.
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.3.0</h3>
+
+
+
+<h4>SIGNIFICANT USER-VISIBLE CHANGES</h4>
+
+
+<ul>
+<li> <p><code>nchar(x, *)</code>'s argument <code>keepNA</code> governing how
+the result for <code>NA</code>s in <code>x</code> is determined, gets a new
+default <code>keepNA = NA</code> which returns <code>NA</code> where
+<code>x</code> is <code>NA</code>, except for <code>type = "width"</code> which still
+returns <code>2</code>, the formatting / printing width of <code>NA</code>.
+</p>
+</li>
+<li><p> All builds have support for <span class="samp">https:</span> URLs in the
+default methods for <code>download.file()</code>, <code>url()</code> and code
+making use of them.
+</p>
+<p>Unfortunately that cannot guarantee that any particular
+<span class="samp">https:</span> URL can be accessed.  For example, server and client
+have to successfully negotiate a cryptographic protocol (TLS/SSL,
+...) and the server's identity has to be verifiable <em>via</em>
+the available certificates.  Different access methods may allow
+different protocols or use private certificate bundles: we
+encountered a <span class="samp">https:</span> CRAN mirror which could be accessed by
+one browser but not by another nor by <code>download.file()</code> on
+the same Linux machine.
+</p>
+</li></ul>
+
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> The <code>print</code> method for <code>methods()</code> gains a
+<code>byclass</code> argument.
+</p>
+</li>
+<li><p> New functions <code>validEnc()</code> and <code>validUTF8()</code> to
+give access to the validity checks for inputs used by
+<code>grep()</code> and friends.
+</p>
+</li>
+<li><p> Experimental new functionality for S3 method checking, notably
+<code>isS3method()</code>.
+</p>
+<p>Also, the names of the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> &lsquo;language elements&rsquo; are exported
+as character vector <code>tools::langElts</code>.
+</p>
+</li>
+<li> <p><code>str(x)</code> now displays <code>"Time-Series"</code> also for
+matrix (multivariate) time-series, i.e. when <code>is.ts(x)</code> is true.
+</p>
+</li>
+<li><p> (Windows only)  The GUI menu item to install local packages
+now accepts &lsquo;<span class="file">*.tar.gz</span>&rsquo; files as well as &lsquo;<span class="file">*.zip</span>&rsquo; files
+(but defaults to the latter).
+</p>
+</li>
+<li><p> New programmeR's utility function <code>chkDots()</code>.
+</p>
+</li>
+<li> <p><code>D()</code> now signals an error when given invalid input,
+rather than silently returning <code>NA</code>.  (Request of John Nash.)
+</p>
+</li>
+<li> <p><code>formula</code> objects are slightly more &ldquo;first class&rdquo;:
+e.g., <code>formula()</code> or <code>new("formula", y ~ x)</code> are now
+valid.  Similarly, for <code>"table"</code>, <code>"ordered"</code> and
+<code>"summary.table"</code>.  Packages defining S4 classes with the above
+S3/S4 classes as slots should be reinstalled.
+
+
+</p>
+</li>
+<li><p> New function <code>strrep()</code> for repeating the elements of a
+character vector.
+</p>
+</li>
+<li> <p><code>rapply()</code> preserves attributes on the list when
+<code>how = "replace"</code>.
+</p>
+</li>
+<li><p> New S3 generic function <code>sigma()</code> with methods for
+extracting the estimated standard deviation aka &ldquo;residual
+standard deviation&rdquo; from a fitted model.
+</p>
+</li>
+<li> <p><code>news()</code> now displays <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> and package news files within
+the HTML help system if it is available.  If no news file is found,
+a visible <code>NULL</code> is returned to the console.
+</p>
+</li>
+<li> <p><code>as.raster(x)</code> now also accepts <code>raw</code> arrays
+<code>x</code> assuming values in <code>0:255</code>.
+</p>
+</li>
+<li><p> Subscripting of matrix/array objects of type
+<code>"expression"</code> is now supported.
+</p>
+</li>
+<li> <p><code>type.convert("i")</code> now returns a factor instead of a
+complex value with zero real part and missing imaginary part.
+</p>
+</li>
+<li><p> Graphics devices <code>cairo_pdf()</code> and <code>cairo_ps()</code>
+now allow non-default values of the cairographics &lsquo;fallback
+resolution&rsquo; to be set.
+</p>
+<p>This now defaults to 300 on all platforms: that is the default
+documented by cairographics, but apparently was not used by all
+system installations.
+</p>
+</li>
+<li> <p><code>file()</code> gains an explicit <code>method</code> argument
+rather than implicitly using
+<code>getOption("url.method", "default")</code>.
+</p>
+</li>
+<li><p> Thanks to a patch from Tomas Kalibera, <code>x[x != 0]</code> is
+now typically faster than <code>x[which(x != 0)]</code> (in the case
+where <code>x</code> has no NAs, the two are equivalent).
+</p>
+</li>
+<li> <p><code>read.table()</code> now always uses the names for a named
+<code>colClasses</code> argument (previously names were only used when
+<code>colClasses</code> was too short). (In part, wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16478">PR#16478</a>.)
+</p>
+</li>
+<li><p> (Windows only) <code>download.file()</code> with default
+<code>method = "auto"</code> and a <span class="samp">ftps://</span> URL chooses
+<code>"libcurl"</code> if that is available.
+</p>
+</li>
+<li><p> The out-of-the box Bioconductor mirror has been changed to
+one using <span class="samp">https://</span>: use <code>chooseBioCmirror()</code> to choose
+a <span class="samp">http://</span> mirror if required.
+</p>
+</li>
+<li><p> The data frame and formula methods for <code>aggregate()</code>
+gain a <code>drop</code> argument.
+</p>
+</li>
+<li> <p><code>available.packages()</code> gains a <code>repos</code> argument.
+</p>
+</li>
+<li><p> The undocumented switching of methods for <code>url()</code> on
+<span class="samp">https:</span> and <span class="samp">ftps:</span> URLs is confined to
+<code>method = "default"</code> (and documented).
+</p>
+</li>
+<li> <p><code>smoothScatter()</code> gains a <code>ret.selection</code> argument.
+</p>
+</li>
+<li> <p><code>qr()</code> no longer has a <code>...</code> argument to pass
+additional arguments to methods.
+</p>
+</li>
+<li> <p><code>[</code> has a method for class <code>"table"</code>.
+</p>
+</li>
+<li><p> It is now possible (again) to <code>replayPlot()</code> a
+display list snapshot that was created by <code>recordPlot()</code>
+in a different <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session.
+</p>
+<p>It is still not a good idea to use snapshots as a persistent
+storage format for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> plots, but it is now not completely silly to
+use a snapshot as a format for transferring an R plot between two
+R sessions.
+</p>
+<p>The underlying changes mean that packages providing graphics
+devices (e.g., <a href="https://CRAN.R-project.org/package=Cairo"><span class="pkg">Cairo</span></a>, <a href="https://CRAN.R-project.org/package=RSvgDevice"><span class="pkg">RSvgDevice</span></a>,
+<a href="https://CRAN.R-project.org/package=cairoDevice"><span class="pkg">cairoDevice</span></a>, <a href="https://CRAN.R-project.org/package=tikzDevice"><span class="pkg">tikzDevice</span></a>) will need to be
+reinstalled.
+</p>
+<p>Code for restoring snapshots was contributed by Jeroen Ooms
+and JJ Allaire.
+</p>
+<p>Some testing code is available at
+<a href="https://github.com/pmur002/R-display-list">https://github.com/pmur002/R-display-list</a>.
+</p>
+</li>
+<li> <p><code>tools::undoc(dir = D)</code> and <code>codoc(dir = D)</code> now
+also work when <code>D</code> is a directory whose <code>normalizePath()</code>ed
+version does not end in the package name, e.g. from a symlink.
+</p>
+</li>
+<li> <p><code>abbreviate()</code> has more support for multi-byte
+character sets &ndash; it no longer removes bytes within characters and
+knows about Latin vowels with accents.  It is still only
+really suitable for (most) European languages, and still warns on
+non-ASCII input.
+</p>
+<p><code>abbreviate(use.classes = FALSE)</code> is now implemented, and
+that is more suitable for non-European languages.
+</p>
+</li>
+<li> <p><code>match(x, table)</code> is faster (sometimes by an order of
+magnitude) when <code>x</code> is of length one and <code>incomparables</code>
+is unchanged, thanks to Peter Haverty (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16491">PR#16491</a>).
+</p>
+</li>
+<li><p> More consistent, partly not back-compatible behavior of
+<code>NA</code> and <code>NaN</code> coercion to complex numbers, operations
+less often resulting in complex <code>NA</code> (<code>NA_complex_</code>).
+</p>
+</li>
+<li> <p><code>lengths()</code> considers methods for <code>length</code> and
+<code>[[</code> on <code>x</code>, so it should work automatically on any
+objects for which appropriate methods on those generics are
+defined.
+</p>
+</li>
+<li><p> The logic for selecting the default screen device on OS X
+has been simplified: it is now <code>quartz()</code> if that is
+available even if environment variable <span class="env">DISPLAY</span> has been set
+by the user.
+</p>
+<p>The choice can easily be overridden <em>via</em> environment
+variable <span class="env">R_INTERACTIVE_DEVICE</span>.
+</p>
+</li>
+<li><p> On Unix-like platforms which support the <code>getline</code> C
+library function, <code>system(*,intern = TRUE)</code> no longer
+truncates (output) lines longer than 8192 characters, thanks to
+Karl Millar. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16544">PR#16544</a>)
+</p>
+</li>
+<li> <p><code>rank()</code> gains a <code>ties.method = "last"</code> option,
+for convenience (and symmetry).
+</p>
+
+
+</li>
+<li> <p><code>regmatches(invert = NA)</code> can now be used to extract
+both non-matched and matched substrings.
+</p>
+</li>
+<li> <p><code>data.frame()</code> gains argument <code>fix.empty.names</code>;
+<code>as.data.frame.list()</code> gets new <code>cut.names</code>,
+<code>col.names</code> and <code>fix.empty.names</code>.
+</p>
+</li>
+<li> <p><code>plot(x ~ x, *)</code> now warns that it is the same as
+<code>plot(x ~ 1, *)</code>.
+</p>
+</li>
+<li> <p><code>recordPlot()</code> has new arguments <code>load</code> and
+<code>attach</code> to allow package names to be stored as part of a
+recorded plot.  <code>replayPlot()</code> has new argument
+<code>reloadPkgs</code> to load/attach any package names that were
+stored as part of a recorded plot.
+</p>
+</li>
+<li><p> S4 dispatch works within calls to <code>.Internal()</code>. This
+means explicit S4 generics are no longer needed for
+<code>unlist()</code> and <code>as.vector()</code>.
+</p>
+</li>
+<li><p> Only font family names starting with <span class="samp">"Hershey"</span> (and
+not <span class="samp">"Her"</span> as before) are given special treatment by the
+graphics engine.
+</p>
+</li>
+<li><p> S4 values are automatically coerced to vector (via
+<code>as.vector</code>) when subassigned into atomic vectors.
+</p>
+</li>
+<li> <p><code>findInterval()</code> gets a <code>left.open</code> option.
+</p>
+</li>
+<li><p> The version of LAPACK included in the sources has been
+updated to 3.6.0, including those &lsquo;deprecated&rsquo; routines
+which were previously included.  <em>Ca</em> 40 double-complex
+routines have been added at the request of a package maintainer.
+</p>
+<p>As before, the details of what is included are in
+&lsquo;<span class="file">src/modules/lapack/README</span>&rsquo; and this now gives information on
+earlier additions.
+</p>
+</li>
+<li> <p><code>tapply()</code> has been made considerably more efficient
+without changing functionality, thanks to proposals from Peter
+Haverty and Suharto Anggono.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16640">PR#16640</a>)
+</p>
+</li>
+<li> <p><code>match.arg(arg)</code> (the one-argument case) is faster; so
+is <code>sort.int()</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16640">PR#16640</a>)
+</p>
+</li>
+<li><p> The <code>format</code> method for <code>object_size</code> objects now
+also accepts &ldquo;binary&rdquo; units such as <code>"KiB"</code> and e.g.,
+<code>"Tb"</code>.  (Partly from <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16649">PR#16649</a>.)
+</p>
+</li>
+<li><p> Profiling now records calls of the form <code>foo::bar</code> and
+some similar cases directly rather than as calls to
+<code>&lt;Anonymous&gt;</code>.  Contributed by Winston Chang.
+</p>
+</li>
+<li><p> New string utilities <code>startsWith(x, prefix)</code> and
+<code>endsWith(x, suffix)</code>.  Also provide speedups for some
+<code>grepl("^...",*)</code> uses (related to proposals in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16490">PR#16490</a>).
+</p>
+</li>
+<li><p> Reference class finalizers run at exit, as well as on
+garbage collection.
+</p>
+</li>
+<li><p> Avoid <span class="pkg">parallel</span> dependency on <span class="pkg">stats</span> for port
+choice and random number seeds.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16668">PR#16668</a>)
+</p>
+</li>
+<li><p> The radix sort algorithm and implementation from
+<a href="https://CRAN.R-project.org/package=data.table"><span class="pkg">data.table</span></a> (<code>forder</code>) replaces the previous radix
+(counting) sort and adds a new method for <code>order()</code>.
+Contributed by Matt Dowle and Arun Srinivasan, the new algorithm
+supports logical, integer (even with large values), real, and
+character vectors.  It outperforms all other methods, but there
+are some caveats (see <code>?sort</code>).
+</p>
+</li>
+<li><p> The <code>order()</code> function gains a <code>method</code> argument
+for choosing between <code>"shell"</code> and <code>"radix"</code>.
+</p>
+</li>
+<li><p> New function <code>grouping()</code> returns a permutation that
+stably rearranges data so that identical values are adjacent.  The
+return value includes extra partitioning information on the
+groups.  The implementation came included with the new radix sort.
+</p>
+</li>
+<li> <p><code>rhyper(nn, m, n, k)</code> no longer returns <code>NA</code> when
+one of the three parameters exceeds the maximal integer.
+</p>
+</li>
+<li> <p><code>switch()</code> now warns when no alternatives are provided.
+</p>
+</li>
+<li> <p><code>parallel::detectCores()</code> now has default <code>logical
+	= TRUE</code> on all platforms &ndash; as this was the default on Windows,
+this change only affects Sparc Solaris.
+</p>
+<p>Option <code>logical = FALSE</code> is now supported on Linux and recent
+versions of OS X (for the latter, thanks to a suggestion of Kyaw
+Sint).
+</p>
+</li>
+<li> <p><code>hist()</code> for <code>"Date"</code> or <code>"POSIXt"</code> objects
+would sometimes give misleading labels on the breaks, as they
+were set to the day before the start of the period being
+displayed.  The display format has been changed, and the shift of the
+start day has been made conditional on <code>right = TRUE</code> (the
+default).  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16679">PR#16679</a>)
+</p>
+</li>
+<li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> now uses a new version of the logo (donated to the R
+Foundation by RStudio).  It is defined in &lsquo;<span class="file">.svg</span>&rsquo; format, so
+will resize without unnecessary degradation when displayed on
+HTML pages&mdash;there is also a vector PDF version.  Thanks to
+Dirk Eddelbuettel for producing the corresponding X11 icon.
+</p>
+</li>
+<li><p> New function <code>.traceback()</code> returns the stack trace
+which <code>traceback()</code> prints.
+</p>
+</li>
+<li> <p><code>lengths()</code> dispatches internally.
+</p>
+</li>
+<li> <p><code>dotchart()</code> gains a <code>pt.cex</code> argument to control
+the size of points separately from the size of plot labels.
+Thanks to Michael Friendly and Milan Bouchet-Valat for ideas
+and patches.
+</p>
+</li>
+<li> <p><code>as.roman(ch)</code> now correctly deals with more diverse
+character vectors <code>ch</code>; also arithmetic with the resulting
+roman numbers works in more cases.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16779">PR#16779</a>)
+</p>
+</li>
+<li> <p><code>prcomp()</code> gains a new option <code>rank.</code> allowing to
+directly aim for less than <code>min(n,p)</code> PC's.  The
+<code>summary()</code> and its <code>print()</code> method have been amended,
+notably for this case.
+</p>
+</li>
+<li> <p><code>gzcon()</code> gains a new option <code>text</code>, which marks
+the connection as text-oriented (so e.g. <code>pushBack()</code>
+works).  It is still always opened in binary mode.
+</p>
+</li>
+<li><p> The <code>import()</code> namespace directive now accepts an
+argument <code>except</code> which names symbols to exclude from the
+imports. The <code>except</code> expression should evaluate to a
+character vector (after substituting symbols for strings). See
+Writing R Extensions.
+</p>
+</li>
+<li><p> New convenience function <code>Rcmd()</code> in package
+<span class="pkg">tools</span> for invoking <code>R CMD</code> tools from within <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+</li>
+<li><p> New functions <code>makevars_user()</code> and
+<code>makevars_site()</code> in package <span class="pkg">tools</span> to determine the
+location of the user and site specific &lsquo;<span class="file">Makevars</span>&rsquo; files for
+customizing package compilation.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD check</code> has a new option
+<span class="option">--ignore-vignettes</span> for use with non-Sweave vignettes
+whose <span class="samp">VignetteBuilder</span> package is not available.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now by default checks code usage
+(<em>via</em> <a href="https://CRAN.R-project.org/package=codetools"><span class="pkg">codetools</span></a>) with only the base package
+attached.  Functions from default packages other than <span class="pkg">base</span>
+which are used in the package code but not imported are reported
+as undefined globals, with a suggested addition to the
+<code>NAMESPACE</code> file.
+</p>
+</li>
+<li> <p><code>R CMD check --as-cran</code> now also checks DOIs in
+package &lsquo;<span class="file">CITATION</span>&rsquo; and Rd files.
+</p>
+</li>
+<li> <p><code>R CMD Rdconv</code> and <code>R CMD Rd2pdf</code> each have
+a new option <span class="option">--RdMacros=pkglist</span> which allows Rd macros
+to be specified before processing.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li><p> The previously included versions of <code>zlib</code>,
+<code>bzip2</code>, <code>xz</code> and PCRE have been removed, so suitable
+external (usually system) versions are required (see the
+&lsquo;R Installation and Administration&rsquo; manual).
+</p>
+</li>
+<li><p> The unexported and undocumented Windows-only devices
+<code>cairo_bmp()</code>, <code>cairo_png()</code> and <code>cairo_tiff()</code>
+have been removed.  (These devices should be used as
+e.g. <code>bmp(type = "cairo")</code>.)
+</p>
+</li>
+<li><p> (Windows only)  Function <code>setInternet2()</code> has no effect
+and will be removed in due course.  The choice between methods
+<code>"internal"</code> and <code>"wininet"</code> is now made by the
+<code>method</code> arguments of <code>url()</code> and <code>download.file()</code>
+and their defaults can be set <em>via</em> options.  The
+out-of-the-box default remains <code>"wininet"</code> (as it has been
+since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.2).
+</p>
+</li>
+<li> <p><code>[&lt;-</code> with an S4 value into a list currently embeds the
+S4 object into its own list such that the end result is roughly
+equivalent to using <code>[[&lt;-</code>.  That behavior is deprecated.  In
+the future, the S4 value will be coerced to a list with
+<code>as.list()</code>.
+</p>
+</li>
+<li><p> Package <span class="pkg">tools</span>' functions
+<code>package.dependencies()</code>, <code>pkgDepends()</code>, etc are
+deprecated now, mostly in favor of <code>package_dependencies()</code>
+which is both more flexible and efficient.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION and INCLUDED SOFTWARE</h4>
+
+
+<ul>
+<li><p> Support for very old versions of <code>valgrind</code>
+(e.g., 3.3.0) has been removed.
+</p>
+</li>
+<li><p> The included <code>libtool</code> script (generated by
+<code>configure</code>) has been updated to version 2.4.6 (from 2.2.6a).
+</p>
+</li>
+<li> <p><code>libcurl</code> version 7.28.0 or later with support for the
+<code>https</code> protocol is required for installation (except on
+Windows).
+</p>
+</li>
+<li><p> BSD networking is now required (except on Windows) and so
+<code>capabilities("http/ftp")</code> is always true.
+</p>
+</li>
+<li> <p><code>configure</code> uses <code>pkg-config</code> for PNG, TIFF
+and JPEG where this is available.  This should work better with
+multiple installs and with those using static libraries.
+</p>
+</li>
+<li><p> The minimum supported version of OS X is 10.6 (&lsquo;Snow
+Leopard&rsquo;): even that has been unsupported by Apple since 2012.
+</p>
+</li>
+<li><p> The <code>configure</code> default on OS X is
+<span class="option">--disable-R-framework</span>: enable this if you intend to
+install under &lsquo;<span class="file">/Library/Frameworks</span>&rsquo; and use with <code>R.app</code>.
+</p>
+</li>
+<li><p> The minimum preferred version of PCRE has since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0
+been 8.32 (released in Nov 2012).  Versions 8.10 to 8.31 are now
+deprecated (with warnings from <code>configure</code>), but will
+still be accepted until <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.4.0.
+</p>
+</li>
+<li> <p><code>configure</code> looks for C functions <code>__cospi</code>,
+<code>__sinpi</code> and <code>__tanpi</code> and uses these if <code>cospi</code>
+<em>etc</em> are not found.  (OS X is the main instance.)
+</p>
+</li>
+<li><p> (Windows) R is now built using <code>gcc</code>
+4.9.3.  This build will require recompilation of at least those packages
+that include C++ code, and possibly others.  A build of R-devel using
+the older toolchain will be temporarily available for comparison
+purposes.
+</p>
+<p>During the transition, the environment variable
+<span class="env">R_COMPILED_BY</span> has been defined to indicate which toolchain
+was used to compile R (and hence, which should be used to compile
+code in packages).  The <code>COMPILED_BY</code> variable described below
+will be a permanent replacement for this.
+</p>
+</li>
+<li><p> (Windows) A <code>make</code> and <code>R CMD config</code> variable
+named <code>COMPILED_BY</code> has been added.  This indicates
+which toolchain was used to compile R (and hence, which should be
+used to compile code in packages).
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li><p> The <code>make</code> macro <code>AWK</code> which used to be made
+available to files such as &lsquo;<span class="file">src/Makefile</span>&rsquo; is no longer set.
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li><p> The API call <code>logspace_sum</code> introduced in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.0 is
+now remapped as an entry point to <code>Rf_logspace_sum</code>, and its
+first argument has gained a <code>const</code> qualifier.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16470">PR#16470</a>)
+</p>
+<p>Code using it will need to be reinstalled.
+</p>
+<p>Similarly, entry point <code>log1pexp</code> also defined in
+&lsquo;<span class="file">Rmath.h</span>&rsquo; is remapped there to <code>Rf_log1pexp</code>
+</p>
+</li>
+<li> <p><code>R_GE_version</code> has been increased to <code>11</code>.
+</p>
+</li>
+<li><p> New API call <code>R_orderVector1</code>, a faster
+one-argument version of <code>R_orderVector</code>.
+</p>
+</li>
+<li><p> When <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> headers such as &lsquo;<span class="file">R.h</span>&rsquo; and &lsquo;<span class="file">Rmath.h</span>&rsquo; are
+called from C++ code in packages they include the C++ versions of
+system headers such as &lsquo;<span class="file">&lt;cmath&gt;</span>&rsquo; rather than the legacy
+headers such as &lsquo;<span class="file">&lt;math.h&gt;</span>&rsquo;.  (Headers &lsquo;<span class="file">Rinternals.h</span>&rsquo; and
+&lsquo;<span class="file">Rinterface.h</span>&rsquo; already did, and inclusion of system headers
+can still be circumvented by defining <code>NO_C_HEADERS</code>,
+including as from this version for those two headers.)
+</p>
+<p>The manual has long said that <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> headers should <b>not</b> be
+included within an <code>extern "C"</code> block, and almost all the
+packages affected by this change were doing so.
+</p>
+</li>
+<li><p> Including header &lsquo;<span class="file">S.h</span>&rsquo; from C++ code would fail on some
+platforms, and so gives a compilation error on all.
+</p>
+</li>
+<li><p> The deprecated header &lsquo;<span class="file">Rdefines.h</span>&rsquo; is now compatible
+with defining <code>R_NO_REMAP</code>.
+</p>
+</li>
+<li><p> The connections API now includes a function
+<code>R_GetConnection()</code> which allows packages implementing
+connections to convert R <code>connection</code> objects to
+<code>Rconnection</code> handles used in the API. Code which previously
+used the low-level R-internal <code>getConnection()</code> entry point
+should switch to the official API.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> C-level <code>asChar(x)</code> is fixed for when <code>x</code> is not a
+vector, and it returns <code>"TRUE"</code>/<code>"FALSE"</code> instead of
+<code>"T"</code>/<code>"F"</code> for logical vectors.
+</p>
+</li>
+<li><p> The first arguments of <code>.colSums()</code> etc (with an
+initial dot) are now named <code>x</code> rather than <code>X</code> (matching
+<code>colSums()</code>): thus error messages are corrected.
+</p>
+</li>
+<li><p> A <code>coef()</code> method for class <code>"maov"</code> has been
+added to allow <code>vcov()</code> to work with multivariate
+results. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16380">PR#16380</a>)
+</p>
+</li>
+<li> <p><code>method = "libcurl"</code> connections signal errors rather
+than retrieving HTTP error pages (where the ISP reports the
+error).
+</p>
+</li>
+<li> <p><code>xpdrows.data.frame()</code> was not checking for unique
+row names; in particular, this affected assignment to non-existing
+rows via numerical indexing. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16570">PR#16570</a>)
+</p>
+</li>
+<li> <p><code>tail.matrix()</code> did not work for zero rows matrices,
+and could produce row &ldquo;labels&rdquo; such as <code>"[1e+05,]"</code>.
+</p>
+</li>
+<li><p> Data frames with a column named <code>"stringsAsFactors"</code>
+now format and print correctly.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16580">PR#16580</a>)
+</p>
+</li>
+<li> <p><code>cor()</code> is now guaranteed to return a value with
+absolute value less than or equal to 1. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16638">PR#16638</a>)
+</p>
+</li>
+<li><p> Array subsetting now keeps <code>names(dim(.))</code>.
+</p>
+</li>
+<li><p> Blocking socket connection selection recovers more
+gracefully on signal interrupts.
+</p>
+</li>
+<li><p> The <code>data.frame</code> method of <code>rbind()</code> construction
+<code>row.names</code> works better in borderline integer cases, but
+may change the names assigned.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16666">PR#16666</a>)
+</p>
+</li>
+<li><p> (X11 only)  <code>getGraphicsEvent()</code> miscoded buttons and
+missed mouse motion events.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16700">PR#16700</a>)
+</p>
+</li>
+<li> <p><code>methods(round)</code> now also lists <code>round.POSIXt</code>.
+</p>
+</li>
+<li> <p><code>tar()</code> now works with the default <code>files = NULL</code>.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16716">PR#16716</a>)
+</p>
+</li>
+<li><p> Jumps to outer contexts, for example in error recovery, now
+make intermediate jumps to contexts where <code>on.exit()</code> actions
+are established instead of trying to run all <code>on.exit()</code>
+actions before jumping to the final target. This unwinds the stack
+gradually, releases resources held on the stack, and significantly
+reduces the chance of a segfault when running out of C stack
+space. Error handlers established using
+<code>withCallingHandlers()</code> and <code>options("error")</code>
+specifications are ignored when handling a C stack overflow error
+as attempting one of these would trigger a cascade of C stack
+overflow errors.  (These changes resolve <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16753">PR#16753</a>.)
+</p>
+</li>
+<li><p> The spacing could be wrong when printing a complex array.
+(Report and patch by Lukas Stadler.)
+</p>
+</li>
+<li> <p><code>pretty(d, n, min.n, *)</code> for date-time objects <code>d</code>
+works again in border cases with large <code>min.n</code>, returns a
+<code>labels</code> attribute also for small-range dates and in such cases
+its returned length is closer to the desired <code>n</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16761">PR#16761</a>)
+Additionally, it finally does cover the range of <code>d</code>, as it
+always claimed.
+</p>
+</li>
+<li> <p><code>tsp(x) &lt;- NULL</code> did not handle correctly objects
+inheriting from both <code>"ts"</code> and <code>"mts"</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16769">PR#16769</a>)
+</p>
+</li>
+<li> <p><code>install.packages()</code> could give false errors when
+<code>options("pkgType")</code> was <code>"binary"</code>.  (Reported by
+Jose Claudio Faria.)
+</p>
+</li>
+<li><p> A bug fix in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.2 fixed problems with <code>locator()</code>
+in X11, but introduced problems in Windows.  Now both should be
+fixed.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15700">PR#15700</a>)
+</p>
+</li>
+<li> <p><code>download.file()</code> with <code>method = "wininet"</code>
+incorrectly warned of download file length difference when
+reported length was unknown. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16805">PR#16805</a>)
+</p>
+</li>
+<li> <p><code>diag(NULL, 1)</code> crashed because of missed type
+checking.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16853">PR#16853</a>)
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.2.5</h3>
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>format.POSIXlt()</code> behaved incorrectly in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.4.
+E.g. the output of
+<code>format(as.POSIXlt(paste0(1940:2000,"-01-01"), tz = "CET"),
+	usetz = TRUE)</code> ended in two <code>"CEST"</code> time formats.
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.2.4</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>install.packages()</code> and related functions now give a
+more informative warning when an attempt is made to install a base
+package.
+</p>
+</li>
+<li> <p><code>summary(x)</code> now prints with less rounding when
+<code>x</code> contains infinite values. (Request of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16620">PR#16620</a>.)
+</p>
+</li>
+<li> <p><code>provideDimnames()</code> gets an optional <code>unique</code> argument.
+</p>
+</li>
+<li> <p><code>shQuote()</code> gains <code>type = "cmd2"</code> for quoting
+in <code>cmd.exe</code> in Windows.  (Response to <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16636">PR#16636</a>.)
+</p>
+</li>
+<li><p> The <code>data.frame</code> method of <code>rbind()</code> gains an
+optional argument <code>stringsAsFactors</code> (instead of only
+depending on <code>getOption("stringsAsFactors")</code>).
+</p>
+</li>
+<li> <p><code>smooth(x, *)</code> now also works for long vectors.
+</p>
+</li>
+<li> <p><code>tools::texi2dvi()</code> has a workaround for problems with
+the <code>texi2dvi</code> script supplied by <span class="pkg">texinfo 6.1</span>.
+</p>
+<p>It extracts more error messages from the LaTeX logs when in
+emulation mode.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD check</code> will leave a log file
+&lsquo;<span class="file">build_vignettes.log</span>&rsquo; from the re-building of vignettes in
+the &lsquo;<span class="file">.Rcheck</span>&rsquo; directory if there is a problem, and always if
+environment variable <span class="env">_R_CHECK_ALWAYS_LOG_VIGNETTE_OUTPUT_</span> is
+set to a true value.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li><p> Use of <span class="samp">SUPPORT_OPENMP</span> from header &lsquo;<span class="file">Rconfig.h</span>&rsquo; is
+deprecated in favour of the standard OpenMP define <span class="samp">_OPENMP</span>.
+</p>
+<p>(This has been the recommendation in the manual for a while now.)
+</p>
+</li>
+<li><p> The <code>make</code> macro <code>AWK</code> which is long unused by
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself but recorded in file &lsquo;<span class="file">etc/Makeconf</span>&rsquo; is deprecated
+and will be removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.3.0.
+</p>
+</li>
+<li><p> The C header file &lsquo;<span class="file">S.h</span>&rsquo; is no longer documented: its
+use should be replaced by &lsquo;<span class="file">R.h</span>&rsquo;.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>kmeans(x, centers = &lt;1-row&gt;)</code> now works. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16623">PR#16623</a>)
+</p>
+</li>
+<li> <p><code>Vectorize()</code> now checks for clashes in argument names.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16577">PR#16577</a>)
+</p>
+</li>
+<li> <p><code>file.copy(overwrite = FALSE)</code> would signal a successful
+copy when none had taken place.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16576">PR#16576</a>)
+</p>
+</li>
+<li> <p><code>ngettext()</code> now uses the same default domain as
+<code>gettext()</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14605">PR#14605</a>)
+</p>
+</li>
+<li> <p><code>array(.., dimnames = *)</code> now warns about
+non-<code>list</code> dimnames and, from <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.3.0, will signal the same
+error for invalid dimnames as <code>matrix()</code> has always done.
+</p>
+</li>
+<li> <p><code>addmargins()</code> now adds dimnames for the extended
+margins in all cases, as always documented.
+</p>
+</li>
+<li> <p><code>heatmap()</code> evaluated its <code>add.expr</code> argument
+in the wrong environment.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16583">PR#16583</a>)
+</p>
+</li>
+<li> <p><code>require()</code> etc now give the correct entry of
+<code>lib.loc</code> in the warning about an old version of a package
+masking a newer required one.
+</p>
+</li>
+<li><p> The internal deparser did not add parentheses when
+necessary,  e.g. before <code>[]</code> or <code>[[]]</code>.  (Reported by
+Lukas Stadler; additional fixes included as well).
+</p>
+</li>
+<li> <p><code>as.data.frame.vector(*, row.names=*)</code> no longer
+produces &lsquo;corrupted&rsquo; data frames from row names of incorrect
+length, but rather warns about them.  This will become an error.
+</p>
+</li>
+<li> <p><code>url</code> connections with <code>method = "libcurl"</code> are
+destroyed properly. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16681">PR#16681</a>)
+</p>
+</li>
+<li> <p><code>withCallingHandler()</code> now (again) handles warnings
+even during S4 generic's argument evaluation.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16111">PR#16111</a>)
+</p>
+</li>
+<li> <p><code>deparse(..., control = "quoteExpressions")</code>
+incorrectly quoted empty expressions.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16686">PR#16686</a>)
+</p>
+</li>
+<li> <p><code>format()</code>ting datetime objects (<code>"POSIX[cl]?t"</code>)
+could segfault or recycle wrongly.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16685">PR#16685</a>)
+</p>
+</li>
+<li> <p><code>plot.ts(&lt;matrix&gt;, las = 1)</code> now does use <code>las</code>.
+</p>
+</li>
+<li> <p><code>saveRDS(*, compress = "gzip")</code> now works as
+documented.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16653">PR#16653</a>)
+</p>
+</li>
+<li><p> (Windows only) The <code>Rgui</code> front end did not
+always initialize the console properly, and could cause
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> to crash.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16698">PR#16698</a>)
+</p>
+</li>
+<li> <p><code>dummy.coef.lm()</code> now works in more cases, thanks to a
+proposal by Werner Stahel (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16665">PR#16665</a>).  In addition, it now works
+for multivariate linear models (<code>"mlm"</code>, <code>manova</code>)
+thanks to a proposal by Daniel Wollschlaeger.
+</p>
+</li>
+<li><p> The <code>as.hclust()</code> method for <code>"dendrogram"</code>s
+failed often when there were ties in the heights.
+</p>
+</li>
+<li> <p><code>reorder()</code> and <code>midcache.dendrogram()</code> now are
+non-recursive and hence applicable to somewhat deeply nested
+dendrograms, thanks to a proposal by Suharto Anggono in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16424">PR#16424</a>.
+</p>
+</li>
+<li> <p><code>cor.test()</code> now calculates very small p values
+more accurately (affecting the result only in extreme not
+statistically relevant cases).  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16704">PR#16704</a>)
+</p>
+</li>
+<li> <p><code>smooth(*, do.ends=TRUE)</code> did not always work correctly
+in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> versions between 3.0.0 and 3.2.3.
+</p>
+</li>
+<li> <p><code>pretty(D)</code> for date-time objects <code>D</code> now also
+works well if <code>range(D)</code> is (much) smaller than a second.  In
+the case of only one unique value in <code>D</code>, the pretty range
+now is more symmetric around that value than previously.
+<br />
+Similarly, <code>pretty(dt)</code> no longer returns a length 5 vector
+with duplicated entries for <code>Date</code> objects <code>dt</code> which
+span only a few days.
+</p>
+</li>
+<li><p> The figures in help pages such as <code>?points</code> were
+accidentally damaged, and did not appear in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.3.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16708">PR#16708</a>)
+</p>
+</li>
+<li> <p><code>available.packages()</code> sometimes deleted the wrong
+file when cleaning up temporary files.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16712">PR#16712</a>)
+</p>
+</li>
+<li><p> The <code>X11()</code> device sometimes froze on Red Hat
+Enterprise Linux 6. It now waits for <code>MapNotify</code> events
+instead of <code>Expose</code> events, thanks to Siteshwar
+Vashisht. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16497">PR#16497</a>)
+</p>
+</li>
+<li> <p><code>[dpqr]nbinom(*, size=Inf, mu=.)</code> now works as limit
+case, for &lsquo;dpq&rsquo; as the Poisson.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16727">PR#16727</a>)<br />
+<code>pnbinom()</code> no longer loops infinitely in border cases.
+</p>
+</li>
+<li> <p><code>approxfun(*, method="constant")</code> and hence <code>ecdf()</code>
+which calls the former now correctly &ldquo;predict&rdquo; <code>NaN</code>
+values as <code>NaN</code>.
+</p>
+</li>
+<li> <p><code>summary.data.frame()</code> now displays <code>NA</code>s in
+<code>Date</code> columns in all cases.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16709">PR#16709</a>)
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.2.3</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> Some recently-added Windows time zone names have been added
+to the conversion table used to convert these to Olson names.
+(Including those relating to changes for Russia in Oct 2014, as in
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16503">PR#16503</a>.)
+</p>
+</li>
+<li><p> (Windows) Compatibility information has been added to the
+manifests for &lsquo;<span class="file">Rgui.exe</span>&rsquo;, &lsquo;<span class="file">Rterm.exe</span>&rsquo; and
+&lsquo;<span class="file">Rscript.exe</span>&rsquo;.  This should allow <code>win.version()</code> and
+<code>Sys.info()</code> to report the actual Windows version up to
+Windows 10.
+</p>
+</li>
+<li><p> Windows <code>"wininet"</code> FTP first tries EPSV / PASV mode
+rather than only using active mode (reported by Dan Tenenbaum).
+
+</p>
+</li>
+<li> <p><code>which.min(x)</code> and <code>which.max(x)</code> may be much
+faster for logical and integer <code>x</code> and now also work for long
+vectors.
+</p>
+</li>
+<li><p> The &lsquo;emulation&rsquo; part of <code>tools::texi2dvi()</code> has
+been somewhat enhanced, including supporting <code>quiet = TRUE</code>.
+It can be selected by <code>texi2dvi = "emulation"</code>.
+</p>
+<p>(Windows) MiKTeX removed its <code>texi2dvi.exe</code> command in Sept
+2015: <code>tools::texi2dvi()</code> tries <code>texify.exe</code> if it is
+not found.
+</p>
+</li>
+<li><p> (Windows only) Shortcuts for printing and saving have
+been added to menus in <code>Rgui.exe</code>.  (Request of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16572">PR#16572</a>.)
+</p>
+</li>
+<li> <p><code>loess(..., iterTrace=TRUE)</code> now provides diagnostics
+for robustness iterations, and the <code>print()</code> method for
+<code>summary(&lt;loess&gt;)</code> shows slightly more.
+</p>
+</li>
+<li><p> The included version of PCRE has been updated to 8.38, a
+bug-fix release.
+</p>
+</li>
+<li> <p><code>View()</code> now displays nested data frames in a more
+friendly way.  (Request with patch in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15915">PR#15915</a>.)
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION and INCLUDED SOFTWARE</h4>
+
+
+<ul>
+<li><p> The included configuration code for <code>libintl</code> has been
+updated to that from <code>gettext</code> version 0.19.5.1 &mdash; this
+should only affect how an external library is detected (and the
+only known instance is under OpenBSD).  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16464">PR#16464</a>.)
+</p>
+</li>
+<li> <p><code>configure</code> has a new argument
+<span class="option">--disable-java</span> to disable the checks for Java.
+</p>
+</li>
+<li><p> The <code>configure</code> default for <code>MAIN_LDFLAGS</code> has
+been changed for the FreeBSD, NetBSD and Hurd OSes to one more
+likely to work with compilers other than <code>gcc</code> (FreeBSD 10
+defaults to <code>clang</code>).
+</p>
+</li>
+<li> <p><code>configure</code> now supports the OpenMP flags
+<span class="option">-fopenmp=libomp</span> (clang) and <span class="option">-qopenmp</span> (Intel C).
+</p>
+</li>
+<li><p> Various macros can be set to override the default
+behaviour of <code>configure</code> when detecting OpenMP: see file
+&lsquo;<span class="file">config.site</span>&rsquo;.
+</p>
+</li>
+<li><p> Source installation on Windows has been modified to allow
+for MiKTeX installations without <code>texi2dvi.exe</code>.  See file
+&lsquo;<span class="file">MkRules.dist</span>&rsquo;.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>regexpr(pat, x, perl = TRUE)</code> with Python-style named
+capture did not work correctly when <code>x</code> contained <code>NA</code>
+strings.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16484">PR#16484</a>)
+</p>
+</li>
+<li><p> The description of dataset <code>ToothGrowth</code> has been
+improved/corrected.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15953">PR#15953</a>)
+</p>
+</li>
+<li> <p><code>model.tables(type = "means")</code> and hence
+<code>TukeyHSD()</code> now support <code>"aov"</code> fits without an
+intercept term.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16437">PR#16437</a>)
+</p>
+</li>
+<li> <p><code>close()</code> now reports the status of a <code>pipe()</code>
+connection opened with an explicit <code>open</code> argument.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16481">PR#16481</a>)
+</p>
+</li>
+<li><p> Coercing a list without names to a data frame is faster if
+the elements are very long. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16467">PR#16467</a>)
+</p>
+</li>
+<li><p> (Unix-only) Under some rare circumstances piping the output
+from <code>Rscript</code> or <code>R -f</code> could result in
+attempting to close the input file twice, possibly crashing the
+process.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16500">PR#16500</a>)
+</p>
+</li>
+<li><p> (Windows) <code>Sys.info()</code> was out of step with
+<code>win.version()</code> and did not report Windows 8.
+</p>
+</li>
+<li> <p><code>topenv(baseenv())</code> returns <code>baseenv()</code> again as
+in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1.0 and earlier.  This also fixes <code>compilerJIT(3)</code>
+when used in &lsquo;<span class="file">.Rprofile</span>&rsquo;.
+</p>
+</li>
+<li> <p><code>detach()</code>ing the <span class="pkg">methods</span> package keeps
+<code>.isMethodsDispatchOn()</code> true, as long as the methods
+namespace is not unloaded.
+</p>
+</li>
+<li><p> Removed some spurious warnings from <code>configure</code> about the
+preprocessor not finding header files.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15989">PR#15989</a>)
+</p>
+</li>
+<li> <p><code>rchisq(*, df=0, ncp=0)</code> now returns <code>0</code> instead
+of <code>NaN</code>, and <code>dchisq(*, df=0, ncp=*)</code> also no longer
+returns <code>NaN</code> in limit cases (where the limit is unique).
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16521">PR#16521</a>)
+</p>
+</li>
+<li> <p><code>pchisq(*, df=0, ncp &gt; 0, log.p=TRUE)</code> no longer
+underflows (for ncp &gt; ~60).
+</p>
+</li>
+<li> <p><code>nchar(x, "w")</code> returned -1 for characters it did not
+know about (e.g. zero-width spaces): it now assumes 1.
+It now knows about most zero-width characters and a few more
+double-width characters.
+</p>
+</li>
+<li><p> Help for <code>which.min()</code> is now more precise about
+behavior with logical arguments.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16532">PR#16532</a>)
+</p>
+</li>
+<li><p> The print width of character strings marked as
+<code>"latin1"</code> or <code>"bytes"</code> was in some cases computed
+incorrectly.
+</p>
+</li>
+<li> <p><code>abbreviate()</code> did not give names to the return value
+if <code>minlength</code> was zero, unlike when it was positive.
+</p>
+</li>
+<li><p> (Windows only) <code>dir.create()</code> did not always warn
+when it failed to create a directory.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16537">PR#16537</a>)
+</p>
+</li>
+<li><p> When operating in a non-UTF-8 multibyte locale
+(e.g. an East Asian locale on Windows), <code>grep()</code> and
+related functions did not handle UTF-8 strings properly.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16264">PR#16264</a>)
+</p>
+</li>
+<li> <p><code>read.dcf()</code> sometimes misread lines longer than 8191
+characters.  (Reported by Hervé Pagès with a patch.)
+</p>
+</li>
+<li> <p><code>within(df, ..)</code> no longer drops columns whose name
+start with a <code>"."</code>.
+</p>
+</li>
+<li><p> The built-in <code>HTTP</code> server converted entire
+<code>Content-Type</code> to lowercase including parameters which
+can cause issues for multi-part form boundaries (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16541">PR#16541</a>).
+</p>
+</li>
+<li><p> Modifying slots of S4 objects could fail when the
+<span class="pkg">methods</span> package was not attached. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16545">PR#16545</a>)
+</p>
+</li>
+<li> <p><code>splineDesign(*, outer.ok=TRUE)</code> (<span class="pkg">splines</span>) is better now
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16549">PR#16549</a>), and <code>interpSpline()</code> now allows <code>sparse=TRUE</code>
+for speedup with non-small sizes.
+</p>
+</li>
+<li><p> If the expression in the traceback was too long,
+<code>traceback()</code> did not report the source line number.  (Patch
+by Kirill Müller.)
+</p>
+</li>
+<li><p> The browser did not truncate the display of the function when
+exiting with <code>options("deparse.max.lines")</code> set.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16581">PR#16581</a>)
+</p>
+</li>
+<li><p> When <code>bs(*, Boundary.knots=)</code> had boundary knots inside
+the data range, extrapolation was somewhat off.  (Patch by Trevor
+Hastie.)
+</p>
+</li>
+<li> <p><code>var()</code> and hence <code>sd()</code> warn about
+<code>factor</code> arguments which are deprecated now. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16564">PR#16564</a>)
+</p>
+</li>
+<li> <p><code>loess(*, weights = *)</code> stored wrong weights and hence
+gave slightly wrong predictions for <code>newdata</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16587">PR#16587</a>)
+</p>
+</li>
+<li> <p><code>aperm(a, *)</code> now preserves <code>names(dim(a))</code>.
+</p>
+</li>
+<li> <p><code>poly(x, ..)</code> now works when either <code>raw=TRUE</code> or
+<code>coef</code> is specified.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16597">PR#16597</a>)
+</p>
+</li>
+<li> <p><code>data(package=*)</code> is more careful in determining the path.
+</p>
+</li>
+<li> <p><code>prettyNum(*, decimal.mark, big.mark)</code>: fixed bug
+introduced when fixing <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16411">PR#16411</a>.
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.2.2</h3>
+
+
+
+<h4>SIGNIFICANT USER-VISIBLE CHANGES</h4>
+
+
+<ul>
+<li><p> It is now easier to use secure downloads from
+<span class="samp">https://</span> URLs on builds which support them: no longer do
+non-default options need to be selected to do so.  In particular,
+packages can be installed from repositories which offer
+<span class="samp">https://</span> URLs, and those listed by <code>setRepositories()</code>
+now do so (for some of their mirrors).
+</p>
+<p>Support for <span class="samp">https://</span> URLs is available on Windows, and on
+other platforms if support for <code>libcurl</code> was compiled in and
+if that supports the <code>https</code> protocol (system installations
+can be expected to do).  So <span class="samp">https://</span> support can be
+expected except on rather old OSes (an example being OS X
+&lsquo;Snow Leopard&rsquo;, where a non-system version of
+<code>libcurl</code> can be used).
+</p>
+<p>(Windows only) The default method for accessing URLs <em>via</em>
+<code>download.file()</code> and <code>url()</code> has been changed to be
+<code>"wininet"</code> using Windows API calls.  This changes the way
+proxies need to be set and security settings made: there have been
+some reports of <span class="samp">ftp:</span> sites being inaccessible under the new default
+method (but the previous methods remain available).
+</p>
+</li></ul>
+
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>cmdscale()</code> gets new option <code>list.</code> for increased
+flexibility when a list should be returned.
+</p>
+</li>
+<li> <p><code>configure</code> now supports <code>texinfo</code> version 6.0,
+which (unlike the change from 4.x to 5.0) is a minor update.
+(Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16456">PR#16456</a>.)
+</p>
+</li>
+<li><p> (Non-Windows only) <code>download.file()</code> with default
+<code>method = "auto"</code> now chooses <code>"libcurl"</code> if that is
+available and a <span class="samp">https://</span> or <span class="samp">ftps://</span> URL is used.
+</p>
+</li>
+<li><p> (Windows only) <code>setInternet2(TRUE)</code> is now the default.
+The command-line option <code>--internet2</code> and environment
+variable <span class="env">R_WIN_INTERNET2</span> are now ignored.
+</p>
+<p>Thus by default the <code>"internal"</code> method for
+<code>download.file()</code> and <code>url()</code> uses the <code>"wininet"</code>
+method: to revert to the previous default use
+<code>setInternet2(FALSE)</code>.
+</p>
+<p>This means that <span class="samp">https://</span> URLs can be read by default by
+<code>download.file()</code> (they have been readable by <code>file()</code>
+and <code>url()</code> since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.0).
+</p>
+<p>There are implications for how proxies need to be set (see
+<code>?download.file</code>).
+</p>
+</li>
+<li> <p><code>chooseCRANmirror()</code> and <code>chooseBioCmirror()</code> now
+offer HTTPS mirrors in preference to HTTP mirrors.  This changes
+the interpretation of their <code>ind</code> arguments: see their help
+pages.
+</p>
+</li>
+<li> <p><code>capture.output()</code> gets optional arguments <code>type</code>
+and <code>split</code> to pass to <code>sink()</code>, and hence can be used to
+capture messages.
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li><p> Header &lsquo;<span class="file">Rconfig.h</span>&rsquo; now defines <code>HAVE_ALLOCA_H</code> if
+the platform has the &lsquo;<span class="file">alloca.h</span>&rsquo; header (it is needed to
+define <code>alloca</code> on Solaris and AIX, at least: see
+&lsquo;Writing R Extensions&rsquo; for how to use it).
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION and INCLUDED SOFTWARE</h4>
+
+
+<ul>
+<li><p> The <code>libtool</code> script generated by
+<code>configure</code> has been modified to support FreeBSD &gt;= 10
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16410">PR#16410</a>).
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> The HTML help page links to demo code failed due to a change
+in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.0.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16432">PR#16432</a>)
+</p>
+</li>
+<li><p> If the <code>na.action</code> argument was used in
+<code>model.frame()</code>, the original data could be
+modified. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16436">PR#16436</a>)
+</p>
+</li>
+<li> <p><code>getGraphicsEvent()</code> could cause a crash if a graphics
+window was closed while it was in use. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16438">PR#16438</a>)
+</p>
+</li>
+<li> <p><code>matrix(x, nr, nc, byrow = TRUE)</code> failed if <code>x</code>
+was an object of type <code>"expression"</code>.
+</p>
+</li>
+<li> <p><code>strptime()</code> could overflow the allocated storage on
+the C stack when the timezone had a non-standard format much
+longer than the standard formats. (Part of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16328">PR#16328</a>.)
+</p>
+</li>
+<li> <p><code>options(OutDec = s)</code> now signals a warning (which will
+become an error in the future) when <code>s</code> is not a string with
+exactly one character, as that has been a documented requirement.
+</p>
+</li>
+<li> <p><code>prettyNum()</code> gains a new option <code>input.d.mark</code>
+which together with other changes, e.g., the default for
+<code>decimal.mark</code>, fixes some <code>format()</code>ting variants with
+non-default <code>getOption("OutDec")</code> such as in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16411">PR#16411</a>.
+</p>
+</li>
+<li> <p><code>download.packages()</code> failed for <code>type</code> equal to
+either <code>"both"</code> or <code>"binary"</code>.  (Reported by Dan
+Tenenbaum.)
+</p>
+</li>
+<li><p> The <code>dendrogram</code> method of <code>labels()</code> is much more
+efficient for large dendrograms, now using <code>rapply()</code>.
+(Comment #15 of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15215">PR#15215</a>)
+</p>
+</li>
+<li><p> The <code>"port"</code> algorithm of <code>nls()</code> could give
+spurious errors.  (Reported by Radford Neal.)
+</p>
+</li>
+<li><p> Reference classes that inherited from reference classes in
+another package could invalidate methods of the inherited
+class. Fixing this requires adding the ability for methods to be
+&ldquo;external&rdquo;, with the object supplied explicitly as the first
+argument, named <code>.self</code>. See &quot;Inter-Package Superclasses&quot;
+in the documentation.
+</p>
+</li>
+<li> <p><code>readBin()</code> could fail on the SPARC architecture
+due to alignment issues.  (Reported by Radford Neal.)
+</p>
+</li>
+<li> <p><code>qt(*, df=Inf, ncp=.)</code> now uses the natural
+<code>qnorm()</code> limit instead of returning <code>NaN</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16475">PR#16475</a>)
+</p>
+</li>
+<li><p> Auto-printing of S3 and S4 values now searches for
+<code>print()</code> in the base namespace and <code>show()</code> in the
+<span class="pkg">methods</span> namespace instead of searching the global
+environment.
+</p>
+</li>
+<li> <p><code>polym()</code> gains a <code>coefs = NULL</code> argument and
+returns class <code>"poly"</code> just like <code>poly()</code> which gets a
+new <code>simple=FALSE</code> option.  They now lead to correct
+<code>predict()</code>ions, e.g., on subsets of the original data.
+
+</p>
+</li>
+<li> <p><code>rhyper(nn, &lt;large&gt;)</code> now works correctly. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16489">PR#16489</a>)
+</p>
+</li>
+<li> <p><code>ttkimage()</code> did not (and could not) work so was
+removed. Ditto for <code>tkimage.cget()</code> and
+<code>tkimage.configure()</code>. Added two Ttk widgets and missing
+subcommands for Tk's <code>image</code> command:
+<code>ttkscale()</code>,
+<code>ttkspinbox()</code>,
+<code>tkimage.delete()</code>,
+<code>tkimage.height()</code>,
+<code>tkimage.inuse()</code>,
+<code>tkimage.type()</code>,
+<code>tkimage.types()</code>,
+<code>tkimage.width()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15372">PR#15372</a>, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16450">PR#16450</a>)
+</p>
+</li>
+<li> <p><code>getClass("foo")</code> now also returns a class definition when it is
+found in the cache more than once.
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.2.1</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>utf8ToInt()</code> now checks that its input is valid UTF-8
+and returns <code>NA</code> if it is not.
+</p>
+</li>
+<li> <p><code>install.packages()</code> now allows <code>type = "both"</code>
+with <code>repos = NULL</code> if it can infer the type of file.
+</p>
+</li>
+<li> <p><code>nchar(x, *)</code> and <code>nzchar(x)</code> gain a new argument
+<code>keepNA</code> which governs how the result for <code>NA</code>s in
+<code>x</code> is determined.  For <code>nzchar()</code> in general and
+<code>nchar()</code> in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.x series, the default
+remains <code>FALSE</code> which is fully back compatible.
+From <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.3.0, <code>nchar()</code>'s default will change to
+<code>keepNA = NA</code> and you are advised to consider this for code
+portability.
+</p>
+</li>
+<li> <p><code>news()</code> more flexibly extracts dates from package
+&lsquo;<span class="file">NEWS.Rd</span>&rsquo; files.
+</p>
+</li>
+<li> <p><code>lengths(x)</code> now also works (trivially) for atomic
+<code>x</code> and hence can be used more generally as an efficient
+replacement of <code>sapply(x, length)</code> and similar.
+</p>
+</li>
+<li><p> The included version of PCRE has been updated to 8.37, a
+bug-fix release.
+</p>
+</li>
+<li> <p><code>diag()</code> no longer duplicates a matrix when extracting
+its diagonal.
+</p>
+</li>
+<li> <p><code>as.character.srcref()</code> gains an argument to allow
+characters corresponding to a range of source references to be
+extracted.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>acf()</code> and <code>ccf()</code> now guarantee values strictly
+in <i>[-1,1]</i> (instead of sometimes very slightly outside). <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15832">PR#15832</a>.
+</p>
+</li>
+<li> <p><code>as.integer("111111111111")</code> now gives NA (with a warning) as
+it does for the corresponding numeric or negative number
+coercions.  Further, <code>as.integer(M + 0.1)</code> now gives <code>M</code>
+(instead of NA) when M is the maximal representable integer.
+</p>
+</li>
+<li><p> On some platforms <code>nchar(x, "c")</code> and <code>nchar(x, "w")</code>
+would return values (possibly <code>NA</code>) for inputs which were
+declared to be UTF-8 but were not, or for invalid strings without a
+marked encoding in a multi-byte locale, rather than give an
+error.  Additional checks have been added to mitigate this.
+</p>
+</li>
+<li> <p><code>apply(a, M, function(u) c(X = ., Y = .))</code> again
+has dimnames containing &quot;X&quot; and &quot;Y&quot; (as in R &lt; 3.2.0).
+</p>
+</li>
+<li><p> (Windows only) In some cases, the <code>--clean</code> option
+to <code>R CMD INSTALL</code> could fail.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16178">PR#16178</a>)
+</p>
+</li>
+<li><p> (Windows only) <code>choose.files()</code> would occasionally
+include characters from the result of an earlier call in
+the result of a later one.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16270">PR#16270</a>)
+</p>
+</li>
+<li><p> A change in <code>RSiteSearch()</code> in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.0 caused it to
+submit invalid URLs.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16329">PR#16329</a>)
+</p>
+</li>
+<li> <p><code>Rscript</code> and command line <code>R</code> silently
+ignored incomplete statements at the end of a script; now they
+are reported as parse errors.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16350">PR#16350</a>)
+</p>
+</li>
+<li><p> Parse data for very long strings was not stored.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16354">PR#16354</a>)
+</p>
+</li>
+<li> <p><code>plotNode()</code>, the workhorse of the <code>plot</code> method
+for <code>"dendrogram"</code>s is no longer recursive, thanks to Suharto
+Anggono, and hence also works for deeply nested dendrograms.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15215">PR#15215</a>)
+</p>
+</li>
+<li><p> The parser could overflow internally when given numbers
+in scientific format with extremely large exponents.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16358">PR#16358</a>)
+</p>
+</li>
+<li><p> If the CRAN mirror was not set, <code>install.packages(type = "both")</code>
+and related functions could repeatedly query the user for it.
+(Part of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16362">PR#16362</a>)
+</p>
+</li>
+<li><p> The low-level functions <code>.rowSums()</code> etc. did not
+check the length of their argument, so could segfault. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16367">PR#16367</a>)
+</p>
+</li>
+<li><p> The <code>quietly</code> argument of <code>library()</code> is now
+correctly propagated from <code>.getRequiredPackages2()</code>.
+</p>
+</li>
+<li><p> Under some circumstances using the internal PCRE when
+building <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> from source would cause external libs such as
+<code>-llzma</code> to be omitted from the main link.
+</p>
+</li>
+<li><p> The .Primitive default methods of the logic operators, i.e.,
+<code>!</code>, <code>&amp;</code> and <code>|</code>, now give correct error messages
+when appropriate, e.g., for <code>`&amp;`(TRUE)</code> or <code>`!`()</code>.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16385">PR#16385</a>)
+</p>
+</li>
+<li> <p><code>cummax(x)</code> now correctly propagates <code>NA</code>s also
+when <code>x</code> is of type <code>integer</code> and begins with an <code>NA</code>.
+</p>
+</li>
+<li> <p><code>summaryRprof()</code> could fail when the profile contained
+only two records.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16395">PR#16395</a>)
+</p>
+</li>
+<li><p> HTML vignettes opened using <code>vignette()</code> did not support
+links into the rest of the HTML help system.  (Links worked properly
+when the vignette was opened using <code>browseVignettes()</code> or from
+within the help system.)
+</p>
+</li>
+<li> <p><code>arima(*, xreg = .)</code> (for <i>d &gt;= 1</i>)
+computes estimated variances based on a the number of effective
+observations as in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> version 3.0.1 and earlier.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16278">PR#16278</a>)
+</p>
+</li>
+<li> <p><code>slotNames(.)</code> is now correct for <code>"signature"</code>
+objects (mostly used internally in <span class="pkg">methods</span>).
+</p>
+</li>
+<li><p> On some systems, the first string comparison after
+a locale change would result in <code>NA</code>.
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.2.0</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>anyNA()</code> gains a <code>recursive</code> argument.
+</p>
+</li>
+<li><p> When <code>x</code> is missing and <code>names</code> is not false
+(including the default value), <code>Sys.getenv(x, names)</code> returns
+an object of class <code>"Dlist"</code> and hence prints tidily.
+</p>
+</li>
+<li><p> (Windows.)  <code>shell()</code> no longer consults the
+environment variable <span class="env">SHELL</span>: too many systems have been
+encountered where it was set incorrectly (usually to a path where
+software was compiled, not where it was installed).
+<span class="env">R_SHELL</span>, the preferred way to select a non-default shell,
+can be used instead.
+</p>
+</li>
+<li><p> Some unusual arguments to <code>embedFonts()</code> can now be
+specified as character vectors, and the defaults have been changed
+accordingly.
+</p>
+</li>
+<li><p> Functions in the <code>Summary</code> group duplicate less.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15798">PR#15798</a>)
+</p>
+</li>
+<li><p> (Unix-alikes.) <code>system(cmd, input = )</code> now uses
+&lsquo;shell-execution-environment&rsquo; redirection, which will be
+more natural if <code>cmd</code> is not a single command (but requires a
+POSIX-compliant shell). (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15508">PR#15508</a>)
+</p>
+</li>
+<li> <p><code>read.fwf()</code> and <code>read.DIF()</code> gain a
+<code>fileEncoding</code> argument, for convenience.
+</p>
+</li>
+<li><p> Graphics devices can add attributes to their description in
+<code>.Device</code> and <code>.Devices</code>.  Several of those included with
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> use a <code>"filepath"</code> attribute.
+</p>
+</li>
+<li> <p><code>pmatch()</code> uses hashing in more cases and so is faster
+at the expense of using more memory. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15697">PR#15697</a>)
+</p>
+</li>
+<li> <p><code>pairs()</code> gains new arguments to select sets of
+variables to be plotted against each other.
+</p>
+</li>
+<li> <p><code>file.info(, extra_cols = FALSE)</code> allows a minimal set
+of columns to be computed on Unix-alikes: on some systems without
+properly-configured caching this can be significantly faster with
+large file lists.
+</p>
+</li>
+<li><p> New function <code>dir.exists()</code> in package <span class="pkg">base</span> to
+test efficiently whether one or more paths exist and are
+directories.
+</p>
+</li>
+<li> <p><code>dput()</code> and friends gain new controls
+<span class="samp">hexNumeric</span> and <span class="samp">digits17</span> which output double and
+complex quantities as, respectively, binary fractions (exactly,
+see <code>sprintf("%a")</code>) and as decimals with up to 17
+significant digits.
+</p>
+</li>
+<li> <p><code>save()</code>, <code>saveRDS()</code> and <code>serialize()</code> now
+support <code>ascii = NA</code> which writes ASCII files using
+<code>sprintf("%a")</code> for double/complex quantities.  This is
+read-compatible with <code>ascii = TRUE</code> but avoids
+binary-&gt;decimal-&gt;binary conversions with potential loss of
+precision.  Unfortunately the Windows C runtime's lack of C99
+compliance means that the format cannot be read correctly there in
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> before 3.1.2.
+</p>
+</li>
+<li><p> The default for <code>formatC(decimal.mark =)</code> has been
+changed to be <code>getOption("OutDec")</code>; this makes it more
+consistent with <code>format()</code> and suitable for use in print
+methods, e.g. those for classes <code>"density"</code>, <code>"ecdf"</code>,
+<code>"stepfun"</code> and <code>"summary.lm"</code>.
+</p>
+<p><code>getOption("OutDec")</code> is now consulted by the print method
+for class <code>"kmeans"</code>, by <code>cut()</code>, <code>dendrogram()</code>,
+<code>plot.ts()</code> and <code>quantile()</code> when constructing labels
+and for the report from <code>legend(trace = TRUE)</code>.
+</p>
+<p>(In part, wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15819">PR#15819</a>.)
+</p>
+</li>
+<li> <p><code>printNum()</code> and hence <code>format()</code> and
+<code>formatC()</code> give a warning if <code>big.mark</code> and
+<code>decimal.mark</code> are set to the same value (period and comma
+are not uncommonly used for each, and this is a check that
+conventions have not got mixed).
+</p>
+</li>
+<li> <p><code>merge()</code> can create a result which uses long vectors
+on 64-bit platforms.
+</p>
+</li>
+<li> <p><code>dget()</code> gains a new argument <code>keep.source</code> which
+defaults to <code>FALSE</code> for speed (<code>dput()</code> and
+<code>dget()</code> are most often used for data objects where this can
+make <code>dget()</code> many times faster).
+</p>
+</li>
+<li><p> Packages may now use a file of common macro definitions in
+their help files, and may import definitions from other packages.
+</p>
+</li>
+<li><p> A number of macros have been added in the new
+&lsquo;<span class="file">share/Rd</span>&rsquo; directory for use in package overview help pages,
+and <code>promptPackage()</code> now makes use of them.
+</p>
+</li>
+<li> <p><code>tools::parse_Rd()</code> gains a new <code>permissive</code>
+argument which converts unrecognized macros into text.  This is
+used by <code>utils:::format.bibentry</code> to allow LaTeX markup to be
+ignored.
+</p>
+</li>
+<li> <p><code>options(OutDec =)</code> can now specify a multi-byte
+character, e.g., <code>options(OutDec = "\u00b7")</code> in a UTF-8
+locale.
+</p>
+</li>
+<li> <p><code>is.recursive(x)</code> is no longer true when <code>x</code> is an
+external pointer, a weak reference or byte code; the first enables
+<code>all.equal(x, x)</code> when <code>x &lt;- getClass(.)</code>.
+</p>
+</li>
+<li> <p><code>ls()</code> (aka <code>objects()</code>) and
+<code>as.list.environment()</code> gain a new argument <code>sorted</code>.
+</p>
+</li>
+<li><p> The <code>"source"</code> attribute (which has not been added to
+functions by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> since before <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> version 2.14.0) is no longer
+treated as special.
+</p>
+</li>
+<li><p> Function <code>returnValue()</code> has been added to give
+<code>on.exit()</code> code access to a function's return value for
+debugging purposes.
+</p>
+</li>
+<li> <p><code>crossprod(x, y)</code> allows more matrix coercions when
+<code>x</code> or <code>y</code> are vectors, now equalling
+<code>t(x) %*% y</code> in these cases (also reported by Radford Neal).
+Similarly, <code>tcrossprod(x,y)</code> and <code>%*%</code> work in more
+cases with vector arguments.
+</p>
+</li>
+<li><p> Utility function <code>dynGet()</code> useful for detecting
+cycles, aka infinite recursions.
+</p>
+</li>
+<li><p> The byte-code compiler and interpreter include new
+instructions that allow many scalar subsetting and assignment and
+scalar arithmetic operations to be handled more efficiently. This
+can result in significant performance improvements in scalar
+numerical code.
+</p>
+</li>
+<li> <p><code>apply(m, 2, identity)</code> is now the same as the matrix
+<code>m</code> when it has <em>named</em> row names.
+</p>
+</li>
+<li><p> A new function <code>debuggingState()</code> has been added,
+allowing to temporarily turn off debugging.
+</p>
+</li>
+<li> <p><code>example()</code> gets a new optional argument
+<code>run.donttest</code> and <code>tools::Rd2ex()</code> a corresponding
+<code>commentDonttest</code>, with a default such that
+<code>example(..)</code> in help examples will run <code>\donttest</code>
+code only if used interactively (a change in behaviour).
+</p>
+</li>
+<li> <p><code>rbind.data.frame()</code> gains an optional argument
+<code>make.row.names</code>, for potential speedup.
+</p>
+</li>
+<li><p> New function <code>extSoftVersion()</code> to report on the
+versions of third-party software in use in this session.
+Currently reports versions of <code>zlib</code>, <code>bzlib</code>, the
+<code>liblzma</code> from <code>xz</code>, PCRE, ICU, TRE and the <code>iconv</code>
+implementation.
+</p>
+<p>A similar function <code>grSoftVersion()</code> in package <span class="pkg">grDevices</span>
+reports on third-party graphics software.
+</p>
+<p>Function <code>tcltk::tclVersion()</code> reports the Tcl/Tk version.
+</p>
+</li>
+<li><p> Calling <code>callGeneric()</code> without arguments now works
+with primitive generics to some extent.
+</p>
+</li>
+<li> <p><code>vapply(x, FUN, FUN.VALUE)</code> is more efficient notably
+for large <code>length(FUN.VALUE)</code>; as extension of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16061">PR#16061</a>.
+</p>
+</li>
+<li> <p><code>as.table()</code> now allows tables with one or more
+dimensions of length 0 (such as <code>as.table(integer())</code>).
+</p>
+</li>
+<li> <p><code>names(x) &lt;- NULL</code> now clears the names of call
+and <code>...</code> objects.
+</p>
+</li>
+<li> <p><code>library()</code> will report a warning when an insufficient
+dependency version is masking a sufficient one later on the
+library search path.
+</p>
+</li>
+<li><p> A new <code>plot()</code> method for class <code>"raster"</code> has
+been added.
+</p>
+</li>
+<li><p> New <code>check_packages_in_dir_changes()</code> function in
+package <span class="pkg">tools</span> for conveniently analyzing how changing
+sources impacts the check results of their reverse dependencies.
+</p>
+</li>
+<li><p> Speed-up from Peter Haverty for <code>ls()</code> and
+<code>methods:::.requirePackage()</code> speeding up package loading.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16133">PR#16133</a>)
+</p>
+</li>
+<li><p> New <code>get0()</code> function, combining <code>exists()</code> and
+<code>get()</code> in one call, for efficiency.
+</p>
+</li>
+<li> <p><code>match.call()</code> gains an <code>envir</code> argument for
+specifying the environment from which to retrieve
+the <code>...</code> in the call, if any; this environment was wrong
+(or at least undesirable) when the <code>definition</code> argument was
+a function.
+</p>
+</li>
+<li> <p><code>topenv()</code> has been made <code>.Internal()</code> for
+speedup, based on Peter Haverty's proposal in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16140">PR#16140</a>.
+</p>
+</li>
+<li> <p><code>getOption()</code> no longer calls <code>options()</code> in the main
+case.
+</p>
+</li>
+<li><p> Optional use of <code>libcurl</code> (version 7.28.0 from Oct 2012
+or later) for Internet access:
+</p>
+
+<ul>
+<li> <p><code>capabilities("libcurl")</code> reports if this is
+available.
+</p>
+</li>
+<li> <p><code>libcurlVersion()</code> reports the version in use, and
+other details of the <code>"libcurl"</code> build including which URL
+schemes it supports.
+</p>
+</li>
+<li> <p><code>curlGetHeaders()</code> retrieves the headers for
+<span class="samp">http://</span>, <span class="samp">https://</span>, <span class="samp">ftp://</span> and
+<span class="samp">ftps://</span> URLs: analysis of these headers can provide
+insights into the &lsquo;existence&rsquo; of a URL (it might for example be
+permanently redirected) and is so used in <code>R CMD
+	  check --as-cran</code>.
+</p>
+</li>
+<li> <p><code>download.file()</code> has a new optional method
+<code>"libcurl"</code> which will handle more URL schemes, follow
+redirections, and allows simultaneous downloads of multiple
+URLs.
+</p>
+</li>
+<li> <p><code>url()</code> has a new method <code>"libcurl"</code> which
+handles more URL schemes and follows redirections.  The default
+method is controlled by a new option <code>url.method</code>, which
+applies also to the opening of URLs <em>via</em> <code>file()</code>
+(which happens implicitly in functions such as
+<code>read.table</code>.)
+</p>
+</li>
+<li><p> When <code>file()</code> or <code>url()</code> is invoked with a
+<code>https://</code> or <code>ftps://</code> URL which the current method
+cannot handle, it switches to a suitable method if one is
+available.
+</p>
+</li></ul>
+
+</li>
+<li><p> (Windows.) The DLLs &lsquo;<span class="file">internet.dll</span>&rsquo; and
+&lsquo;<span class="file">internet2.dll</span>&rsquo; have been merged.  In this version it is safe
+to switch (repeatedly) between the internal and Windows internet
+functions within an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session.
+</p>
+<p>The Windows internet functions are still selected by flag
+<span class="option">--internet2</span> or <code>setInternet2()</code>.  This can be
+overridden for an <code>url()</code> connection <em>via</em> its new
+<code>method</code> argument.
+</p>
+<p><code>download.file()</code> has new method <code>"wininet"</code>, selected
+as the default by <span class="option">--internet2</span> or <code>setInternet2()</code>.
+</p>
+</li>
+<li> <p><code>parent.env&lt;-</code> can no longer modify the parent of a
+locked namespace or namespace imports environment.  Contributed by
+Karl Millar.
+</p>
+</li>
+<li><p> New function <code>isNamespaceLoaded()</code> for readability and speed.
+</p>
+</li>
+<li> <p><code>names(env)</code> now returns all the object names of an
+<code>environment</code> <code>env</code>, equivalently to
+<code>ls(env, all.names = TRUE, sorted = FALSE)</code> and also to
+the names of the corresponding list,
+<code>names(as.list(env, all.names = TRUE))</code>.
+Note that although <code>names()</code> returns a character vector, the
+names have no particular ordering.
+</p>
+</li>
+<li><p> The memory manager now grows the heap more aggressively. This
+reduces the number of garbage collections, in particular while
+data or code are loaded, at the expense of slightly increasing the
+memory footprint.
+</p>
+</li>
+<li><p> New function <code>trimws()</code> for removing leading/trailing
+whitespace.
+</p>
+</li>
+<li> <p><code>cbind()</code> and <code>rbind()</code> now consider S4 inheritance
+during S3 dispatch and also obey <code>deparse.level</code>.
+</p>
+</li>
+<li> <p><code>cbind()</code> and <code>rbind()</code> will delegate recursively
+to <code>methods::cbind2</code> (<code>methods::rbind2</code>) when at least
+one argument is an S4 object and S3 dispatch fails (due to
+ambiguity).
+</p>
+</li>
+<li><p> (Windows.)  <code>download.file(quiet = FALSE)</code> now uses
+text rather than Windows progress bars in non-interactive use.
+</p>
+</li>
+<li><p> New function <code>hsearch_db()</code> in package <span class="pkg">utils</span> for
+building and retrieving the help search database used by
+<code>help.search()</code>, along with functions for inspecting the
+concepts and keywords in the help search database.
+</p>
+</li>
+<li><p> New function <code>.getNamespaceInfo()</code>, a no-check version
+of <code>getNamespaceInfo()</code> mostly for internal speedups.
+</p>
+</li>
+<li><p> The help search system now takes <span class="samp">\keyword</span> entries in
+Rd files which are not standard keywords (as given in
+&lsquo;<span class="file">KEYWORDS</span>&rsquo; in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> documentation directory) as concepts.
+For standard keyword entries the corresponding descriptions are
+additionally taken as concepts.
+</p>
+</li>
+<li><p> New <code>lengths()</code> function for getting the lengths of all
+elements in a list.
+</p>
+</li>
+<li><p> New function <code>toTitleCase()</code> in package <span class="pkg">tools</span>,
+tailored to package titles.
+</p>
+</li>
+<li><p> The matrix methods of <code>cbind()</code> and <code>rbind()</code>
+allow matrices as inputs which have <i>2^31</i> or more
+elements.  (For <code>cbind()</code>, wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16198">PR#16198</a>.)
+</p>
+</li>
+<li><p> The default method of <code>image()</code> has an explicit check
+for a numeric or logical matrix (which was always required).
+</p>
+</li>
+<li> <p><code>URLencode()</code> will not by default encode further URLs
+which appear to be already encoded.
+</p>
+</li>
+<li> <p><code>BIC(mod)</code> and <code>BIC(mod, mod2)</code> now give non-NA
+numbers for <code>arima()</code> fitted models, as <code>nobs(mod)</code> now
+gives the number of &ldquo;used&rdquo; observations for such models.
+This fixes <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16198">PR#16198</a>, quite differently than proposed there.
+</p>
+</li>
+<li><p> The <code>print()</code> methods for <code>"htest"</code>,
+<code>"pairwise.htest"</code> and <code>"power.htest"</code> objects now have
+a <code>digits</code> argument defaulting to (a function of)
+<code>getOption("digits")</code>, and influencing all printed numbers
+coherently.  Unavoidably, this changes the display of such test
+results in some cases.
+</p>
+</li>
+<li><p> Code completion for namespaces now recognizes all loaded
+namespaces, rather than only the ones that are also attached.
+</p>
+</li>
+<li><p> The code completion mechanism can now be replaced by a
+user-specified completer function, for (temporary) situations
+where the usual code completion is inappropriate.
+</p>
+</li>
+<li> <p><code>unzip()</code> will now warn if it is able to detect truncation
+when unpacking a file of 4GB or more (related to <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16243">PR#16243</a>).
+</p>
+</li>
+<li> <p><code>methods()</code> reports S4 in addition to S3 methods;
+output is simplified when the <code>class</code> argument is
+used.  <code>.S3methods()</code> and <code>methods::.S4methods()</code> report
+S3 and S4 methods separately.
+</p>
+</li>
+<li><p> Higher order functions such as the <code>apply</code> functions
+and <code>Reduce()</code> now force arguments to the functions they apply
+in order to eliminate undesirable interactions between lazy
+evaluation and variable capture in closures.  This resolves
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16093">PR#16093</a>.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION and INCLUDED SOFTWARE</h4>
+
+
+<ul>
+<li><p> The <code>\donttest</code> sections of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>'s help files can be
+tested by<br />
+<code>make check TEST_DONTTEST=TRUE</code> .
+</p>
+</li>
+<li><p> It is possible to request the use of system
+<code>valgrind</code> headers <em>via</em> <code>configure</code> option
+<span class="option">--with-system-valgrind-headers</span>: note the possible future
+incompatibility of such headers discussed in the 'R Installation
+and Administration' manual. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16068">PR#16068</a>.)
+</p>
+</li>
+<li><p> The included version of <code>liblzma</code> has been updated to
+<code>xz-utils</code> 5.0.7 (minor bug fixes from 5.0.5).
+</p>
+</li>
+<li> <p><code>configure</code> options <span class="option">--with-system-zlib</span>,
+<span class="option">--with-system-bzlib</span> and <span class="option">--with-system-pcre</span> are
+now the default.  For the time being there is fallback to the
+versions included in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> sources if no system versions are
+found or (unlikely) if they are too old.
+</p>
+<p>Linux users should check that the <code>-devel</code> or <code>-dev</code>
+versions of packages <span class="pkg">zlib</span>, <span class="pkg">bzip2</span>/<span class="pkg">libbz2</span> and
+<span class="pkg">pcre</span> as well as <span class="pkg">xz-devel</span>/<span class="pkg">liblzma-dev</span> (or
+similar names) are installed.
+</p>
+</li>
+<li> <p><code>configure</code> by default looks for the
+<code>texi2any</code> script from <span class="pkg">texinfo</span> 5.1 or later, rather
+than the <code>makeinfo</code> program.  (<code>makeinfo</code> is a
+link to the Perl script <code>texi2any</code> in <span class="pkg">texinfo</span> 5.x.)
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code> gains an  option
+<span class="option">--built-timestamp=STAMP</span> allowing 100% reproducible
+package building, thanks to Dirk Eddelbuettel.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li><p> There is support for testing the <code>\dontrun</code> and
+<code>\donttest</code> parts of examples in packages.
+</p>
+<p><code>tools::testInstalledPackage()</code> accepts new arguments
+<code>commentDontrun = FALSE</code> and <code>commentDonttest = FALSE</code>.
+</p>
+<p><code>R CMD check</code> gains options <span class="option">--run-dontrun</span> and
+<span class="option">--run-donttest</span>.
+</p>
+</li>
+<li><p> The <acronym><span class="acronym">HTML</span></acronym> generated by <code>tools::Rd2HTML()</code> and
+<code>tools::toHTML()</code> methods is now
+&lsquo;<acronym><span class="acronym">XHTML</span></acronym> 1.0 Strict&rsquo;.
+</p>
+</li>
+<li><p> The <span class="pkg">compiler</span> package's utility function
+<code>setCompilerOptions()</code> now returns the old values
+invisibly. The initial optimization level can also be set with the
+environment variable <span class="env">R_COMPILER_OPTIMIZE</span>.
+</p>
+</li>
+<li> <p><code>R CMD build</code> adds a <span class="samp">NeedsCompilation</span> field
+if one is not already present in the &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file.
+</p>
+</li>
+<li> <p><code>R CMD check</code> gains option <span class="option">--test-dir</span> to
+specify an alternative set of tests to run.
+</p>
+</li>
+<li> <p><code>R CMD check</code> will now by default continue with
+testing after many types of errors, and will output a summary
+count of errors at the end if any have occurred.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now checks that the <span class="samp">Title</span> and
+<span class="samp">Description</span> fields are correctly terminated.
+</p>
+</li>
+<li> <p><code>R CMD check --as-cran</code> now:
+</p>
+
+<ul>
+<li><p> checks a &lsquo;<span class="file">README.md</span>&rsquo; file can be processed: this
+needs <code>pandoc</code> installed.
+</p>
+</li>
+<li><p> checks the existence and accessibility of URLs in the
+&lsquo;<span class="file">DESCRIPTION</span>&rsquo;, &lsquo;<span class="file">CITATION</span>&rsquo;, &lsquo;<span class="file">NEWS.Rd</span>&rsquo; and
+&lsquo;<span class="file">README.md</span>&rsquo; files and in the help files (provided the build
+has <code>libcurl</code> support).
+</p>
+</li>
+<li><p> reports non-ASCII characters in R source files when there
+is no package encoding declared in the &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file.
+</p>
+</li>
+<li><p> reports (apparent) S3 methods exported but not registered.
+</p>
+</li>
+<li><p> reports overwriting registered S3 methods from
+base/recommended packages.  (Such methods are replaced in the
+affected package for the rest of the session, even if the
+replacing namespace is unloaded.)
+</p>
+</li>
+<li><p> reports if the <code>Title</code> field does not appear to be in
+title case (see &lsquo;Writing R Extensions&rsquo;: there may be
+false positives, but note that technical words should be
+single-quoted and will then be accepted).
+</p>
+</li></ul>
+
+<p>Most of these checks can also be selected by environment
+variables: see the &lsquo;R Internals&rsquo; manual.
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li><p> New C API utility <code>logspace_sum(logx[], n)</code>.
+</p>
+</li>
+<li><p> Entry points <code>rbinom_mu</code>, <code>rnbinom_mu</code> and
+<code>rmultinom</code> are remapped (by default) to <code>Rf_rbinom_mu</code>
+etc.  This requires packages using them to be re-installed.
+</p>
+</li>
+<li> <p><code>.C(DUP = FALSE)</code> and <code>.Fortran(DUP = FALSE)</code> are
+now ignored, so arguments are duplicated if <code>DUP = TRUE</code>
+would do so.  As their help has long said, <code>.Call()</code> is much
+preferred.
+</p>
+</li>
+<li><p> New entry point <code>R_allocLD</code>, like <code>R_alloc</code> but
+guaranteed to have sufficient alignment for <code>long double</code>
+pointers.
+</p>
+</li>
+<li> <p><code>isPairList()</code> now returns <code>TRUE</code> for DOTSXP.
+</p>
+</li></ul>
+
+
+
+
+<h4>WINDOWS BUILD CHANGES</h4>
+
+<p>A number of changes to the Windows build system are in development.
+The following are currently in place.
+</p>
+
+<ul>
+<li><p> Installation using external binary distributions
+of <span class="pkg">zlib</span>, <span class="pkg">bzip2</span>, <span class="pkg">liblzma</span>, <span class="pkg">pcre</span>,
+<span class="pkg">libpng</span>, <span class="pkg">jpeglib</span> and <span class="pkg">libtiff</span> is now required,
+and the build instructions have been revised.
+</p>
+</li>
+<li><p> A new <code>make</code> target <code>rsync-extsoft</code> has been
+added to obtain copies of the external libraries from
+<acronym><span class="acronym">CRAN</span></acronym>.
+</p>
+</li>
+<li><p> Building the manuals now requires <code>texi2any</code> from
+<span class="pkg">texinfo</span> 5.1 or later.  <acronym><span class="acronym">CRAN</span></acronym> binary builds include
+the manuals, but by default builds from source will not, and they
+will be accessed from <acronym><span class="acronym">CRAN</span></acronym>.  See the comments in
+&lsquo;<span class="file">src/gnuwin32/MkRules.dist</span>&rsquo; for how to specify the location
+of <code>texi2any</code>.
+</p>
+</li>
+<li><p> (Windows) Changes have been made to support an experimental
+Windows toolchain based on GCC 4.9.2.  The default toolchain
+continues to be based on GCC 4.6.3, as the new toolchain is not
+yet stable enough.  A change to a new toolchain is expected during
+the R 3.2.x lifetime.
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li><p>  (Windows) The use of macro <code>ZLIB_LIBS</code> in file
+&lsquo;<span class="file">src/Makevars.win</span>&rsquo; (which has not been documented for a long
+time) now requires an external &lsquo;<span class="file">libz.a</span>&rsquo; to be available (it is
+part of the &lsquo;goodies&rsquo; used to compile Windows binary
+packages).  It would be simpler to use <code>-lz</code> instead.
+</p>
+</li>
+<li><p> The default for option <code>pkgType</code> on platforms using
+binary packages is now <code>"both"</code>, so source packages will be
+tried if binary versions are not available or not up to date.
+</p>
+<p>There are options for what <code>install.packages(type = "both")</code>
+(possibly called <em>via</em> <code>update.packages()</code>) will do if
+compilation of a source package is desirable: see <code>?options</code>
+(under <span class="pkg">utils</span>).
+</p>
+<p>If you intend not to accept updates as source packages, you should
+use <code>update.packages(type = "binary")</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li> <p><code>download.file(method = "lynx")</code> is defunct.
+</p>
+</li>
+<li><p> Building <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> using the included versions of <code>zlib</code>,
+<code>bzip2</code>, <code>xz</code> and PCRE is deprecated: these are frozen
+(bar essential bug-fixes) and will be removed for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.3.0.
+</p>
+</li>
+<li><p> The <code>configure</code> option
+<span class="option">--with-valgrind-instrumentation=3</span> has been withdrawn, as
+it did not work with recent <code>valgrind</code> headers: it is now
+treated as level <code>2</code>.
+</p>
+</li>
+<li><p> The <code>MethodsList</code> class in package <span class="pkg">methods</span> had
+been deprecated in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.11.0 and is defunct now.  Functions using
+it are defunct if they had been deprecated in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.11.0, and are
+deprecated now, otherwise.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> Fixed two obscure bugs in pairlist subassignment, reported by
+Radford Neal as part of pqR issue 16.
+</p>
+</li>
+<li><p> Fixes for bugs in handling empty arguments and argument
+matching by name in <code>log()</code>.
+</p>
+</li>
+<li> <p><code>all.equal()</code> gains methods for <code>environment</code>s and
+<code>refClass</code>es.
+</p>
+</li>
+<li> <p><code>[&lt;-</code> and <code>[[&lt;-</code> gain S4 <code>data.frame</code> methods
+to avoid corruption of S4 class information by the S3 methods.
+</p>
+</li>
+<li> <p><code>callNextMethod()</code> should now work within a <code>.local</code>
+call when <code>...</code> is absent from <code>formals(.local)</code>.
+</p>
+</li>
+<li> <p><code>dput(pairlist(x))</code> generates a call to the
+<code>pairlist</code> constructor instead of the <code>list</code>
+constructor.
+</p>
+</li>
+<li><p> Fix <code>missing()</code> when arguments are propagated through
+<code>...</code> . (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15707">PR#15707</a>)
+</p>
+</li>
+<li> <p><code>eigen(m)</code> now defaults to <code>symmetric = TRUE</code> even
+when the dimnames are asymmetric if the matrix is otherwise
+symmetric.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16151">PR#16151</a>)
+</p>
+</li>
+<li><p> Fix issues with forwarding <code>...</code> through
+<code>callGeneric()</code> and <code>callNextMethod()</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16141">PR#16141</a>)
+</p>
+</li>
+<li> <p><code>callGeneric()</code> now works after a <code>callNextMethod()</code>.
+</p>
+</li>
+<li><p> Subclass information is kept consistent when replacing an
+ordinary S4 class with an &ldquo;old class&rdquo; <em>via</em> the
+<code>S4Class</code> argument to <code>setOldClass()</code>. Thus, for
+example, a <code>data.frame</code> is valid for a <code>list</code> argument
+in the signature, and a <code>factor</code> is valid for <code>vector</code>
+arguments.
+</p>
+</li>
+<li><p> In <code>qbeta()</code> the inversion of <code>pbeta()</code> is much
+more sophisticated.  This works better in corner cases some of
+which failed completely previously (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15755">PR#15755</a>), or were using
+too many iterations.
+</p>
+</li>
+<li><p> Auto-printing no longer duplicates objects when printing is
+dispatched to a method.
+</p>
+</li>
+<li> <p><code>kmeans(x, k)</code> would fail when <code>nrow(x) &gt;= 42949673</code>.
+(Comment 6 of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15364">PR#15364</a>)
+</p>
+</li>
+<li> <p>&lsquo;Abbreviated&rsquo; locale-specific day and month names
+could have been truncated in those rare locales where there are
+the same as the full names.
+</p>
+</li>
+<li><p> An irrelevant warning message from updating subclass
+information was silenced (the namespace would not be writable
+in this case).
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.1.3</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> The internal method of <code>download.file()</code> can now handle
+files larger than 2GB on 32-bit builds which support such files
+(tested on 32-bit <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> running on 64-bit Windows).
+</p>
+</li>
+<li> <p><code>kruskal.test()</code> warns on more types of suspicious input.
+</p>
+</li>
+<li><p> The <code>as.dendrogram()</code> method for <code>"hclust"</code>
+objects gains a <code>check</code> argument protecting against memory
+explosion for invalid inputs.
+</p>
+</li>
+<li> <p><code>capabilities()</code> has a new item <code>long.double</code>
+which indicates if the build uses a <code>long double</code> type which
+is longer than <code>double</code>.
+</p>
+</li>
+<li> <p><code>nlm()</code> no longer modifies the callback argument in
+place (a new vector is allocated for each invocation, which mimics
+the implicit duplication that occurred in R &lt; 3.1.0); note that
+this is a change from the previously documented
+behavior. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15958">PR#15958</a>)
+</p>
+</li>
+<li> <p><code>icuSetCollate()</code> now accepts <code>locale = "ASCII"</code>
+which uses the basic C function <code>strcmp</code> and so collates
+strings byte-by-byte in numerical order.
+</p>
+</li>
+<li> <p><code>sessionInfo()</code> tries to report the OS version in use
+(not just that compiled under, and including details of Linux
+distributions).
+</p>
+</li>
+<li> <p><code>model.frame()</code> (used by <code>lm()</code> and many other
+modelling functions) now warns when it drops contrasts
+from factors.  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16119">PR#16119</a>)
+</p>
+</li>
+<li> <p><code>install.packages()</code> and friends now accept the value
+<code>type = "binary"</code> as a synonym for the native binary type on
+the platform (if it has one).
+</p>
+</li>
+<li><p> Single source or binary files can be supplied for
+<code>install.packages(type = "both")</code> and the appropriate type
+and <code>repos = NULL</code> will be inferred.
+</p>
+</li>
+<li><p> New function <code>pcre_config()</code> to report on some of the
+configuration options of the version of PCRE in use.  In
+particular, this reports if regular expressions using
+<span class="samp">\p{xx}</span> are supported.
+</p>
+</li>
+<li><p> (Windows.) <code>download.file(cacheOK = FALSE)</code> is now
+supported when &lsquo;<span class="file">internet2.dll</span>&rsquo; is used.
+</p>
+</li>
+<li> <p><code>browseURL()</code> has been updated to work with Firefox
+36.0 which has dropped support for the <span class="option">-remote</span> interface.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION and INCLUDED SOFTWARE</h4>
+
+
+<ul>
+<li><p> The included version of PCRE has been updated to 8.36.
+</p>
+</li>
+<li> <p><code>configure</code> accepts <span class="samp">MAKEINFO=texi2any</span> as
+another way to ensure <span class="pkg">texinfo</span> 5.x is used when both 5.x and
+4.x are installed.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD check</code> now checks the packages used in
+<code>\donttest</code> sections of the examples are specified in the
+&lsquo;<span class="file">DESCRIPTION</span>&rsquo; file.
+(These are needed to run the examples interactively.)
+</p>
+</li>
+<li> <p><code>R CMD check</code> checks for the undeclared use of GNU
+extensions in Makefiles, and for Makefiles with a missing final
+linefeed.
+</p>
+<p><code>R CMD build</code> will correct line endings in all Makefiles,
+not just those in the &lsquo;<span class="file">src</span>&rsquo; directory.
+</p>
+</li>
+<li> <p><code>R CMD check</code> notes uses of <code>library()</code> and
+<code>require()</code> in package code: see the section
+&lsquo;Suggested packages&rsquo; of &lsquo;Writing R Extensions&rsquo; for
+good practice.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li><p> The <code>configure</code> option
+<span class="option">--with-valgrind-instrumentation=3</span> is deprecated and will
+be removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.2.0.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> (Windows.) <code>Rscript.exe</code> was missing a
+manifest specifying the modern style for common controls (e.g.,
+the download progress bar).
+</p>
+</li>
+<li><p> If a package had extra documentation files but no vignette,
+the HTML help system produced an empty index page.
+</p>
+</li>
+<li><p> The parser now gives an error if a null character is included
+in a string using Unicode escapes. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16046">PR#16046</a>)
+</p>
+</li>
+<li> <p><code>qr.Q()</code> failed on complex arguments due to
+pre-3.0(!) typo. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16054">PR#16054</a>)
+</p>
+</li>
+<li> <p><code>abs()</code> failed with named arguments when the argument
+was complex.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16047">PR#16047</a>)
+</p>
+</li>
+<li> <p><code>"noquote"</code> objects may now be used as columns in
+data frames.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15997">PR#15997</a>)
+</p>
+</li>
+<li><p> Some values with extremely long names were printed
+incorrectly.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15999">PR#15999</a>)
+</p>
+</li>
+<li><p> Extremely large exponents on zero expressed in scientific
+notation (e.g. <code>0.0e50000</code>) could give <code>NaN</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15976">PR#15976</a>)
+</p>
+</li>
+<li> <p><code>download.file()</code> reported downloaded sizes as 0KB if
+less than 1MB, only for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1.2 and only on big-endian platforms.
+</p>
+</li>
+<li> <p><code>prompt()</code> did not escape percent signs in the
+automatically generated usage section of help files.
+</p>
+</li>
+<li> <p><code>drop.terms()</code> dropped some of the attributes of the
+object it was working with.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16029">PR#16029</a>)
+</p>
+</li>
+<li><p> (Windows.) The command completion in <code>Rgui.exe</code>
+messed up the console.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15791">PR#15791</a>)
+</p>
+</li>
+<li><p> (Windows.) The <code>choose.files()</code> command returned a
+blank string when the user asked for a single file but cancelled
+the request.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16074">PR#16074</a>)
+</p>
+</li>
+<li> <p><code>Math2</code> S4 group generics failed to correctly dispatch
+<code>"structure"</code>- and <code>"nonStructure"</code>-derived classes.
+</p>
+</li>
+<li> <p><code>loadNamespace()</code> imposed undocumented restrictions
+on the <code>versionCheck</code> parameter.  (Reported by Geoff Lee.)
+</p>
+</li>
+<li><p> Rare over-runs detected by AddressSanitizer in
+<code>substr()</code> and its replacement version have been avoided.
+</p>
+<p><em>Inter alia</em> that fix gives the documented behaviour for
+<code>substr(x, 1, 2) &lt;- ""</code> (subsequently reported as
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16214">PR#16214</a>).
+</p>
+</li>
+<li><p> Loading packages incorrectly defining an S4 generic followed
+by a function of the same name caused an erroneous cyclic
+namespace dependency error.
+</p>
+</li>
+<li><p> Declared vignette encodings are now always passed to the
+vignette engine.
+</p>
+</li>
+<li><p> Port Tomas Kalibera's fix from R-devel that restores the
+<code>loadMethod()</code> fast path, effectively doubling the speed of
+S4 dispatch.
+</p>
+</li>
+<li> <p><code>power.t.test()</code> and <code>power.prop.test()</code> now make
+use of the <code>extendInt</code> option of <code>uniroot()</code> and hence
+work in more extreme cases.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15792">PR#15792</a>)
+</p>
+</li>
+<li><p> If a package was updated and attached when its namespace was
+already loaded, it could end up with parts from one version and
+parts from the other.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16120">PR#16120</a>)
+</p>
+</li>
+<li> <p><code>tools:::.Rdconv()</code> didn't accept <code>--encoding=</code> due
+to a typo.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16121">PR#16121</a>)
+</p>
+</li>
+<li><p> Unix-alike builds without a suitable <code>makeinfo</code> were
+documented to link the missing HTML manuals to CRAN, but did not.
+</p>
+</li>
+<li> <p><code>save(*, ascii=TRUE)</code> and <code>load()</code> now correctly
+deal with <code>NaN</code>'s.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16137">PR#16137</a>)
+</p>
+</li>
+<li> <p><code>split.Date()</code> retains fractional representations while
+avoiding incomplete class propagation.
+</p>
+</li>
+<li> <p>&lsquo;<span class="file">R_ext/Lapack.h</span>&rsquo; had not been updated for changes made
+by LAPACK to the argument lists of its (largely internal)
+functions <code>dlaed2</code> and <code>dlaed3</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16157">PR#16157</a>)
+</p>
+</li>
+<li> <p><code>RShowDoc("NEWS", "txt")</code> had not been updated for the
+layout changes of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1.0.
+</p>
+</li>
+<li><p> The <code>xtfrm()</code> method for class <code>"Surv"</code> has been
+corrected and its description expanded.
+</p>
+</li>
+<li> <p><code>mode(x) &lt;- y</code> would incorrectly evaluate <code>x</code> before
+changing its mode. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16215">PR#16215</a>)
+</p>
+</li>
+<li> <p><code>besselJ(1, 2^64)</code> and <code>besselY(..)</code> now signal a
+warning, returning <code>NaN</code> instead of typically
+segfaulting. (Issue 3 of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15554">PR#15554</a>)
+</p>
+</li>
+<li><p> HTML conversion of <span class="samp">\href</span> markup in &lsquo;<span class="file">.Rd</span>&rsquo; files
+did not remove the backslash from <span class="samp">\%</span> and so gave an
+invalid URL.  In a related change, the <span class="samp">\</span> escape is now
+required in such URLs.
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.1.2</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>embedFonts()</code> now defaults to
+<code>format = "ps2write"</code> for &lsquo;<span class="file">.ps</span>&rsquo; and &lsquo;<span class="file">.eps</span>&rsquo; files.
+This is available in Ghostscript 9.x (since 2010) whereas the
+previous default, <code>format = "pswrite"</code>, was removed in
+Ghostscript 9.10.
+</p>
+</li>
+<li><p> For consistency with <code>[dpqr]norm()</code>,
+<code>[dp]lnorm(sdlog = 0)</code> model a point mass at
+<code>exp(mulog)</code> rather than return <code>NaN</code> (for an error).
+</p>
+</li>
+<li> <p><code>capabilities()</code> now reports if ICU is compiled in for
+use for collation (it is only actually used if a suitable locale
+is set for collation, and never for a <code>C</code> locale).
+</p>
+</li>
+<li><p> (OS X only.) Package <span class="pkg">tcltk</span> checks when loaded if it is
+linked against the CRAN X11-based Tcl/Tk and if so that the Tcl/Tk
+component and the X11 libraries are installed.  This allows more
+informative error messages to be given advising the installation
+of the missing component or of XQuartz.
+</p>
+<p>The <code>X11()</code> device and X11-based versions of the data editor
+and viewer (invoked by <code>edit()</code> and <code>View()</code> for data
+frames and matrices from command-line <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>) check that the X11
+libraries are installed and if not advises installing XQuartz.
+</p>
+</li>
+<li> <p><code>icuSetCollate()</code> allows <code>locale = "default"</code>, and
+<code>locale = "none"</code> to use OS services rather than ICU for
+collation.
+</p>
+<p>Environment variable <span class="env">R_ICU_LOCALE</span> can be used to set the
+default ICU locale, in case the one derived from the OS locale is
+inappropriate (this is currently necessary on Windows).
+</p>
+</li>
+<li><p> New function <code>icuGetCollate()</code> to report on the ICU
+collation locale in use (if any).
+</p>
+</li>
+<li> <p><code>utils::URLencode()</code> was updated to use unreserved and
+reserved characters from RFC 3986
+(<a href="http://tools.ietf.org/html/rfc3986">http://tools.ietf.org/html/rfc3986</a>) instead of RFC 1738.
+</p>
+</li>
+<li> <p><code>unique(warnings())</code> and <code>c(warnings())</code> are now
+supported.
+</p>
+</li>
+<li><p> The Bioconductor &lsquo;version&rsquo; used by
+<code>setRepositories()</code> now defaults to <code>3.0</code>. (It can be
+set at runtime <em>via</em> environment variable
+<span class="env">R_BIOC_VERSION</span>.)
+</p>
+</li>
+<li><p> Omegahat is no longer listed as providing Windows binary
+packages, e.g. by <code>setRepositories()</code>.  It has no binary
+packages available for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1.x and those for earlier versions
+were 32-bit only.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION and INCLUDED SOFTWARE</h4>
+
+
+<ul>
+<li><p> The <code>configure</code> script reports on the more important
+capabilities/options which will not be compiled in.
+</p>
+<p>More types of external BLAS are recognized by name in that report.
+</p>
+</li>
+<li><p> When building <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> as a shared library, the
+<span class="option">-L${R_HOME}/lib${R_ARCH}</span> flag is placed earlier in the
+link commands used during installation and when packages are
+installed: this helps ensure that the current build has priority
+if an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> shared library has already been installed by
+e.g. <code>install-libR</code> in a library mentioned in
+<span class="env">LDFLAGS</span> (and not in &lsquo;your system's library directory&rsquo;
+as documented). (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15790">PR#15790</a>.)
+</p>
+</li>
+<li><p> LaTeX package <span class="pkg">upquote</span> is no longer required for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>'s
+use of <span class="pkg">inconsolata</span>.
+</p>
+</li>
+<li><p> (Windows only) If both 32- and 64-bit versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> are
+installed, the &lsquo;<span class="file">bin/R.exe</span>&rsquo; and &lsquo;<span class="file">bin/Rscript.exe</span>&rsquo; executables
+now run 64-bit <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.  (To run 32-bit <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, overwrite these files
+with copies of &lsquo;<span class="file">bin/i386/Rfe.exe</span>&rsquo;.)
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li><p> Running <code>R CMD check</code> with
+<span class="env">_R_CHECK_DEPENDS_ONLY_</span> true now makes the
+<span class="samp">VignetteBuilder</span> packages available even if they are
+listed in <span class="samp">Suggests</span>, since they are needed to recognise and
+process non-Sweave vignettes.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now reports empty <code>importFrom</code>
+declarations in a &lsquo;<span class="file">NAMESPACE</span>&rsquo; file, as these are common
+errors (writing <code>importFrom(<var>Pkg</var>)</code> where
+<code>import(<var>Pkg</var>)</code> was intended).
+</p>
+</li>
+<li> <p><code>R CMD check</code> now by default checks code usage
+directly on the package namespace without loading and attaching
+the package and its suggests and enhances.  For good practice with
+packages in the <span class="samp">Suggests</span> field, see §1.1.3.1 of
+&lsquo;Writing R Extensions&rsquo;.  For use of lazy-data objects in
+the package's own code, see <code>?data</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>dmultinom()</code> did not handle non-finite probabilities
+correctly.
+</p>
+</li>
+<li> <p><code>prettyNum(x, zero.print=*)</code> now also works when
+<code>x</code> contains <code>NA</code>s.
+</p>
+</li>
+<li><p> A longstanding bug exhibited by <code>nlminb()</code> on Windows
+was traced to a compiler bug in gcc 4.6.3; a workaround has been
+put in place.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15244">PR#15244</a> and <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15914">PR#15914</a>).
+</p>
+</li>
+<li><p> Rendering of <code>\command</code> in HTML versions of help pages
+has been improved: this is particularly evident on the help page
+for <code>INSTALL</code>.
+</p>
+</li>
+<li> <p><code>as.hexmode(x)</code> and <code>as.octmode(x)</code> now behave
+correctly for some numeric <code>x</code>, e.g., <code>c(NA, 1)</code> or
+<code>c(1, pi)</code>.
+</p>
+</li>
+<li> <p><code>drop1()</code> failed if the <code>scope</code> argument had
+no variables to drop.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15935">PR#15935</a>)
+</p>
+</li>
+<li> <p><code>edit()</code> (and hence <code>fix()</code>) failed if
+an object had a non-character attribute named <code>"source"</code>
+(an attribute that had been used in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> prior to version 2.14.0).
+</p>
+</li>
+<li> <p><code>callGeneric()</code> could fail if the generic had
+<code>...</code> as a formal argument. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15937">PR#15937</a>).
+</p>
+</li>
+<li><p> Forking in package <span class="pkg">parallel</span> called C entry point
+<code>exit</code> in the child.  This was unsafe (<code>_exit</code> should
+have been called), and could flush <code>stdin</code> of the main <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+process (seen most often on Solaris).
+</p>
+<p>As good practice, <code>stdout</code> is now flushed before forking a child.
+</p>
+</li>
+<li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> objects such as <code>list(`a\b` = 1)</code> now print correctly.
+</p>
+</li>
+<li> <p><code>getAnywhere("C_pbinom")</code> now returns correctly a
+single object (rather than unlisting it).
+</p>
+</li>
+<li><p> The <code>confint()</code> method for <code>nls()</code> fits failed it
+these has specified parameter limits despite using an algorithm
+other than <code>"port"</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15960">PR#15960</a>)
+</p>
+</li>
+<li><p> Subclassing an S4 class failed if the class required
+arguments to the generator, through its <code>initialize()</code> method.
+</p>
+</li>
+<li> <p><code>removeSource()</code> did not properly handle expressions
+containing arguments that were supplied as missing, e.g.
+<code>x[i,]</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15957">PR#15957</a>)
+</p>
+</li>
+<li> <p><code>as.environment(list())</code> now works, and
+<code>as.list()</code> of such an environment is now the same as
+<code>list()</code>.
+</p>
+</li>
+<li><p> Several <span class="pkg">tcltk</span> functions failed when run in unusual
+environments. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15970">PR#15970</a>)
+</p>
+</li>
+<li> <p><code>options(list())</code> now works (trivially). (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15979">PR#15979</a>)
+</p>
+</li>
+<li> <p><code>merge(&lt;dendrogram&gt;, ..)</code> now works correctly for two
+&lsquo;independent&rsquo; dendrograms (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15648">PR#15648</a>), and still compatibly via
+<code>adjust = "auto"</code> e.g. for two branches of an existing
+dendrogram.
+</p>
+</li>
+<li><p> The <code>plot</code> method for <code>"hclust"</code> objects gets an
+optional argument <code>check</code>; when that is true (the default) it
+checks more carefully for valid input.
+</p>
+</li>
+<li><p> (Windows only) If a user chose to install 64 bit <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> but not
+32 bit <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, the &lsquo;<span class="file">bin/R</span>&rsquo; and &lsquo;<span class="file">bin/Rscript</span>&rsquo; executables
+failed to run.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15981">PR#15981</a>)
+</p>
+</li>
+<li><p> Various possible buffer overruns have been prevented,
+and missed memory protection added. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15990">PR#15990</a>)
+</p>
+</li>
+<li> <p><code>Rscript</code> no longer passes <code>--args</code> to
+<code>R</code> when there are no extra (&ldquo;user&rdquo;) arguments.
+</p>
+</li>
+<li><p> objects like <code>getClass("refClass")@prototype</code> now
+<code>print()</code> and <code>str()</code> without error.
+</p>
+</li>
+<li> <p><code>identical()</code> now also looks at the S4 bit.
+</p>
+</li>
+<li> <p><code>hist(x, breaks)</code> is more robust in adding a small fuzz
+to few breaks when some are very large. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15988">PR#15988</a>)
+</p>
+</li>
+<li> <p><code>sub()</code> and <code>gsub()</code> did not handle regular
+expressions like <code>"\s{2,}"</code> properly if the text
+contained <code>NA</code> or non-ASCII elements in a UTF-8
+locale.  Part of this was due to a bug in the TRE library.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16009">PR#16009</a>)
+</p>
+</li>
+<li> <p><code>RShowDoc("NEWS")</code> now displays the PDF version.
+</p>
+</li>
+<li><p> Matrices and arrays with last dimension zero did not print
+at all or incompletely.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16012">PR#16012</a>)
+</p>
+</li>
+<li> <p><code>plot.histogram()</code> and hence <code>hist()</code> now respect
+the <code>xaxs</code>, <code>yaxs</code> and <code>lab</code> graphics parameters.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16021">PR#16021</a>)
+</p>
+</li>
+<li> <p><code>bw.SJ(x)</code> and other bw.*() no longer segfault when
+<code>x</code> contains non-finite values. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16024">PR#16024</a>)
+</p>
+</li>
+<li> <p><code>R CMD Rd2pdf</code> unintentionally ignored its
+<span class="option">--os</span> option.
+</p>
+</li>
+<li><p> The internal method of <code>download.file()</code> was not
+reporting file sizes and progress correctly on files larger than
+2GB (inherited from <code>libxml2</code>).  This is corrected for 64-bit
+builds (32-bit platforms may not support such files, but where
+possible will be supported in future versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>).
+</p>
+</li>
+<li><p> Work around a bug in OS X Yosemite where key environment
+variables may be duplicated causing issues in subprocesses. The
+duplicates are now removed on R startup (via Rprofile). (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=16042">PR#16042</a>)
+</p>
+</li>
+<li><p> Adjust X11 auto-launch detection in DISPLAY on OS X to
+recognize latest XQuartz.
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.1.1</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> When <code>attach()</code> reports conflicts, it does so
+compatibly with <code>library()</code> by using <code>message()</code>.
+</p>
+</li>
+<li> <p><code>R CMD Sweave</code> no longer cleans any files by
+default, compatibly with versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> prior to 3.1.0.  There are
+new options <span class="option">--clean</span>, <span class="option">--clean=default</span> and
+<span class="option">--clean=keepOuts</span>.
+</p>
+</li>
+<li> <p><code>tools::buildVignette()</code> and <code>tools::buildVignettes()</code>
+with <code>clean = FALSE</code> no longer remove any created files.
+<code>buildvignette()</code> gains a <code>keep</code> argument for more
+cleaning customization.
+</p>
+</li>
+<li><p> The Bioconductor &lsquo;version&rsquo; used by
+<code>setRepositories()</code> can now be set by environment variable
+<span class="env">R_BIOC_VERSION</span> at runtime, not just when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is installed.
+(It has been stated that Bioconductor will switch from
+&lsquo;version&rsquo; 2.14 to &lsquo;version&rsquo; 3.0 during the lifetime
+of the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1 series.)
+</p>
+</li>
+<li><p> Error messages from bugs in embedded <span class="samp">Sexpr</span> code
+in Sweave documents now report the source location.
+</p>
+</li>
+<li> <p><code>type.convert()</code>, <code>read.table()</code> and similar
+<code>read.*()</code> functions get a new <code>numerals</code> argument,
+specifying how numeric input is converted when its conversion to
+double precision loses accuracy.  The default value,
+<code>"allow.loss"</code> allows accuracy loss, as in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> versions before
+3.1.0.
+</p>
+</li>
+<li><p> For some compilers, integer addition could overflow without
+a warning.  <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>'s internal code for both integer addition and
+subtraction is more robust now.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15774">PR#15774</a>)
+</p>
+</li>
+<li><p> The function determining the default number of knots for
+<code>smooth.spline()</code> is now exported, as <code>.nknots.smspl()</code>.
+</p>
+</li>
+<li> <p><code>dbeta(, a,b)</code>, <code>pbeta()</code>, <code>qbeta()</code> and
+<code>rbeta()</code> are now defined also for <i>a = 0</i>, <i>b = 0</i>,
+or infinite <i>a</i> and <i>b</i> (where they typically returned
+<code>NaN</code> before).
+</p>
+</li>
+<li><p> Many package authors report that the RStudio graphics device
+does not work correctly with their package's use of
+<code>dev.new()</code>.  The new option <code>dev.new(noRStudioGD =
+      TRUE)</code> replaces the RStudio override by the default device as
+selected by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself, still respecting environment variables
+<span class="env">R_INTERACTIVE_DEVICE</span> and <span class="env">R_DEFAULT_DEVICE</span>.
+</p>
+</li>
+<li> <p><code>readRDS()</code> now returns visibly.
+</p>
+</li>
+<li><p> Modifying internal logical scalar constants now results in
+an error instead of a warning.
+</p>
+</li>
+<li> <p><code>install.packages(repos = NULL)</code> now accepts
+<span class="samp">http://</span> or <span class="samp">ftp://</span> URLs of package archives as well
+as file paths, and will download as required.  In most cases
+<code>repos = NULL</code> can be deduced from the extension of the URL.
+</p>
+</li>
+<li><p> The warning when using partial matching with the <code>$</code>
+operator on data frames is now only given when
+<code>options("warnPartialMatchDollar")</code> is <code>TRUE</code>.
+</p>
+</li>
+<li><p> Package help requests like <code>package?foo</code> now
+try the package <code>foo</code> whether loaded or not.
+</p>
+</li>
+<li><p> General help requests now default to trying all loaded
+packages, not just those on the search path.
+</p>
+</li>
+<li><p> Added a new function <code>promptImport()</code>, to generate a
+help page for a function that was imported from another package
+(and presumably re-exported, or help would not be needed).
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION and INCLUDED SOFTWARE</h4>
+
+
+<ul>
+<li> <p><code>configure</code> option <span class="option">--with-internal-tzcode</span>
+can now be used with variable <code>rsharedir</code>.
+</p>
+</li>
+<li><p> The included version of PCRE has been updated to 8.35.
+</p>
+</li>
+<li><p> There is a new target <code>make uninstall-libR</code> to
+remove an installed shared/static &lsquo;<span class="file">libR</span>&rsquo;.
+</p>
+<p><code>make install-libR</code> now works if a sub-architecture is
+used, although the user will need to specify <code>libdir</code>
+differently for different sub-architectures.
+</p>
+</li>
+<li><p> There is more extensive advice on which LaTeX packages are
+required to install <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> or to make package manuals (as done by
+<code>R CMD check</code>) in the &lsquo;Writing R Extensions&rsquo;
+manual.
+</p>
+</li>
+<li><p> Compilers/linkers were handling the visibility control in
+&lsquo;<span class="file">src/extra/xz</span>&rsquo; inconsistently (and apparently in some cases
+incorrectly), so it has been simplified.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15327">PR#15327</a>)
+</p>
+</li>
+<li><p> (Windows)  There is updated support for the use of ICU for
+collation: see the &lsquo;R Installation and Administration Manual&rsquo;.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>dbinom(x, n)</code>, <code>pbinom()</code>, <code>dpois()</code>, etc,
+are slightly less restrictive in checking if <code>n</code> is
+integer-valued.  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15734">PR#15734</a>.)
+</p>
+</li>
+<li> <p><code>pchisq(x, df, ncp, log.p = TRUE)</code> is more accurate and
+no longer underflows for small <code>x</code> and <code>ncp &lt; 80</code>, e.g,
+for <code>pchisq(1e-5, df = 100, ncp = 1, log = TRUE)</code>.
+(Based on <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15635">PR#15635</a> and a suggestion by Roby Joehanes.)
+</p>
+</li>
+<li><p> The <code>s</code> (&ldquo;step into&rdquo;) command in the debugger
+would cause <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> to step into expressions evaluated there,
+not just into functions being debugged.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15770">PR#15770</a>)
+</p>
+</li>
+<li><p> The C code used by <code>strptime()</code> rejected time-zone
+offsets of more than <code>+1200</code> (<code>+1245</code>, <code>+1300</code> and
+<code>+1400</code> can occur).  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15768">PR#15768</a>)
+</p>
+</li>
+<li><p> (Windows only.)
+<code>png(type = "cairo", antialias = "gray")</code>
+was not accepted.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15760">PR#15760</a>)
+</p>
+</li>
+<li><p> Use of <code>save(..., envir=)</code> with named objects could
+fail.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15758">PR#15758</a>)
+</p>
+</li>
+<li> <p><code>Sweave()</code> mis-parsed <span class="samp">Sexpr</span> expressions that
+contained backslashes.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15779">PR#15779</a>)
+</p>
+</li>
+<li><p> The return value from <code>options(foo = NULL)</code> was not
+the previous value of the option.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15781">PR#15781</a>)
+</p>
+</li>
+<li> <p><code>enc2utf8()</code> and <code>enc2native()</code> did not always
+mark the encoding of the return values when it was known.
+</p>
+</li>
+<li> <p><code>dnbinom(x, size = &lt;large&gt;, mu, log = TRUE)</code> no longer
+underflows to -Inf for large <code>mu</code>, thanks to a suggestion
+from Alessandro Mammana (MPI MolGen, Berlin).
+</p>
+</li>
+<li> <p><code>pbeta(x, a, b, log = TRUE)</code> no longer behaves
+discontinuously (in a small x-region) because of denormalized
+numbers.  Also, <code>pbeta(1-1e-12, 1e30, 1.001, log=TRUE)</code> now
+terminates &ldquo;in real time&rdquo;.
+</p>
+</li>
+<li><p> The <code>"CRAN"</code> filter (see <code>available.packages()</code>)
+no longer removes duplicates other than of packages on CRAN, and
+does not fail if there is no CRAN repository in
+<code>getOption("repos")</code>.
+</p>
+</li>
+<li><p> The device listing from <code>dev2bitmap()</code> and
+<code>bitmap()</code> was truncated to 1000 characters: modern versions
+of GhostScript on most platforms have many more devices.
+</p>
+</li>
+<li><p> (Windows.)  Commands such as <code>Sys.which()</code> and
+<code>pipe()</code> which needed to find the full path to a command
+could segfault if the &lsquo;long&rsquo; path name was much longer than
+the &lsquo;short&rsquo; path name (which <code>Sys.which()</code> returns),
+as the behaviour of the Windows API call had changed.
+</p>
+</li>
+<li> <p><code>R CMD build</code> will fail with an error if one of the
+packages specified in the <span class="samp">VignetteBuilder</span> field is not
+installed.  (Without loading those packages it cannot be
+ascertained which files are intended to be vignettes. This means
+that the <span class="samp">VignetteBuilder</span> packages have to be installed for
+package checking too.)
+(Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15775">PR#15775</a>.)
+</p>
+</li>
+<li><p> Misguided attempts to use <code>chull()</code> with non-finite
+points now give an error (related to <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15777">PR#15777</a>).
+</p>
+</li>
+<li><p> For a formula with exactly 32 variables the 32nd variable
+was aliased to the intercept in some C-level computations of
+terms, so that for example attempting to remove it would remove
+the intercept instead (and leave a corrupt internal structure).
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15735">PR#15735</a>)
+</p>
+</li>
+<li> <p><code>anyDuplicated()</code> silently returned wrong values when
+the first duplicate was at an index which was too large to be
+stored in an integer vector (although a lot of RAM and patience
+would have been needed to encounter this).
+</p>
+</li>
+<li> <p><code>tools::Rd2ex(commentDontrun = FALSE)</code> failed if the
+block had only one line.
+</p>
+</li>
+<li><p> Hexadecimal constants such as <code>0x110p-5L</code> which were
+incorrectly qualified by <code>L</code> were parsed incorrectly since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+3.0.0, with a slightly garbled warning. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15753">PR#15753</a>)
+</p>
+</li>
+<li> <p><code>system()</code> returned success on some platforms even if
+the system was unable to launch a process. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15796">PR#15796</a>)
+</p>
+</li>
+<li><p> (Windows <code>Rgui</code> console.)  Unbuffered output was
+sometimes not output immediately if the prompt was not on the last
+line of the console.
+</p>
+</li>
+<li><p> The built-in help server did not declare the encoding for
+the &lsquo;<span class="file">DESCRIPTION</span>&rsquo; or other text files to be the package
+encoding, so non-ASCII characters could be displayed incorrectly.
+</p>
+</li>
+<li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is now trying harder to not cleanup child processes
+that were not spawned by <code>mcparallel()</code> on platforms that
+provide information about the source process of the <code>SIGCHLD</code>
+signal. This allows 3rd party libraries to manage the exit status
+of children that they spawn without <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> interfering.
+</p>
+</li>
+<li> <p><code>mcmapply()</code> was only parallelizing if the number of
+jobs was bigger than the number of cores. It now parallelizes if
+the number of jobs is more than one.
+</p>
+</li>
+<li><p> Auto-printing would re-evaluate its argument when trying to
+dispatch to a print method.  This is now avoided when possible.
+</p>
+</li>
+<li><p> Unserializing (including <code>load()</code> and <code>readRDS()</code>)
+could silently return incorrect numeric values from ASCII saves if
+there was a read error.
+</p>
+</li>
+<li> <p><code>getParseData()</code> could return incorrect values for
+the parents of some elements. (Reported by Andrew Redd.)
+</p>
+</li>
+<li><p> Attempting to use data frames of 2^31 or more rows with
+<code>merge()</code> or to create a merged data frame of that size now
+gives a clearer error message.
+</p>
+</li>
+<li> <p><code>parse()</code> did not check its <code>file</code> argument was a
+connection if it was not a character string, so
+e.g. <code>parse(FALSE)</code> attempted to read from <code>stdin</code>.
+</p>
+<p>Nor did <code>dump()</code> and <code>dput()</code>.
+</p>
+</li>
+<li><p> The <code>"help.try.all.packages"</code> option was ignored when
+the shortcut syntax for help was used, e.g. <code>?foo</code>.
+</p>
+</li>
+<li><p> A potential segfault in string allocation has been fixed.
+(Found by Radford Neal.)
+</p>
+</li>
+<li><p> Potential memory protection errors in <code>sort()</code> and
+<code>D()</code> have been fixed. (Found by Radford Neal.)
+</p>
+</li>
+<li><p> Fixed a lack of error checking in graphics event functions.
+(Found by Radford Neal; a different patch used here than the
+one in pqR.)
+</p>
+</li>
+<li> <p><code>numericDeriv()</code> sometimes miscalculated the gradient.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15849">PR#15849</a>, reported originally by Radford Neal)
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.1.0</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>type.convert()</code> (and hence by default
+<code>read.table()</code>) returns a character vector or factor when
+representing a numeric input as a double would lose accuracy.
+Similarly for complex inputs.
+</p>
+<p>If a file contains numeric data with unrepresentable numbers of
+decimal places that are intended to be read as numeric, specify
+<code>colClasses</code> in <code>read.table()</code> to be <code>"numeric"</code>.
+</p>
+</li>
+<li> <p><code>tools::Rdiff(useDiff = FALSE)</code> is closer to the POSIX
+definition of <code>diff -b</code> (as distinct from the description
+in the <code>man</code> pages of most systems).
+</p>
+</li>
+<li><p> New function <code>anyNA()</code>, a version of
+<code>any(is.na(.))</code> which is fast for atomic vectors, based on a
+proposal by Tim Hesterberg. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15239">PR#15239</a>.)
+</p>
+</li>
+<li> <p><code>arrayInd(*, useNames = TRUE)</code> and, analogously,
+<code>which(*, arr.ind = TRUE)</code> now make use of
+<code>names(.dimnames)</code> when available.
+</p>
+</li>
+<li> <p><code>is.unsorted()</code> now also works for <code>raw</code> vectors.
+</p>
+</li>
+<li><p> The <code>"table"</code> method for <code>as.data.frame()</code> (also
+useful as <code>as.data.frame.table()</code>) now passes <code>sep</code> and
+<code>base</code> arguments to <code>provideDimnames()</code>.
+</p>
+</li>
+<li> <p><code>uniroot()</code> gets new optional arguments, notably
+<code>extendInt</code>, allowing to auto-extend the search interval when
+needed.  The return value has an extra component, <code>init.it</code>.
+</p>
+
+
+
+
+</li>
+<li> <p><code>switch(f, ...)</code> now warns when <code>f</code> is a factor,
+as this typically happens accidentally where the useR meant to
+pass a character string, but <code>f</code> is treated as integer (as
+always documented).
+</p>
+</li>
+<li><p> The parser has been modified to use less memory.
+</p>
+</li>
+<li><p> The way the unary operators (<code>+ - !</code>) handle attributes
+is now more consistent.  If there is no coercion, all attributes
+(including class) are copied from the input to the result:
+otherwise only names, dims and dimnames are.
+</p>
+</li>
+<li> <p><code>colorRamp()</code> and <code>colorRampPalette()</code> now allow
+non-opaque colours and a ramp in opacity via the new argument
+<code>alpha = TRUE</code>.  (Suggested by Alberto Krone-Martins, but
+optionally as there are existing uses which expect only RGB values.)
+
+</p>
+</li>
+<li> <p><code>grid.show.layout()</code> and <code>grid.show.viewport()</code>
+get an optional <code>vp.ex</code> argument.
+</p>
+</li>
+<li><p> There is a new function <code>find_gs_cmd()</code> in the
+<span class="pkg">tools</span> package to locate a GhostScript executable.  (This is
+an enhanced version of a previously internal function there.)
+</p>
+</li>
+<li> <p><code>object.size()</code> gains a <code>format()</code> method.
+</p>
+</li>
+<li><p> There is a new family, <code>"ArialMT"</code>, for the
+<code>pdf()</code> and <code>postscript()</code> devices.  This will only be
+rendered correctly on viewers which have access to Monotype
+TrueType fonts (which are sometimes requested by journals).
+</p>
+</li>
+<li><p> The text and PDF news files, including &lsquo;<span class="file">NEWS</span>&rsquo; and
+&lsquo;<span class="file">NEWS.2</span>&rsquo;, have been moved to the &lsquo;<span class="file">doc</span>&rsquo; directory.
+</p>
+</li>
+<li> <p><code>combn(x, simplify = TRUE)</code> now gives a factor result
+for factor input <code>x</code> (previously user error).
+(Related to <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15442">PR#15442</a>.)
+</p>
+</li>
+<li><p> Added <code>utils::fileSnapshot()</code> and
+<code>utils::changedFiles()</code> functions to allow snapshots and
+comparison of directories of files.
+</p>
+</li>
+<li> <p><code>make.names(names, unique=TRUE)</code> now tries to preserve
+existing names. (Suggestion of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15452">PR#15452</a>.)
+</p>
+</li>
+<li><p> New functions <code>cospi(x)</code>, <code>sinpi(x)</code>, and
+<code>tanpi(x)</code>, for more accurate computation of
+<code>cos(pi*x)</code>, etc, both in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> and the C API.  Using these
+gains accuracy in some cases, e.g., inside <code>lgamma()</code> or
+<code>besselI()</code>.  (Suggested by Morten Welinder in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15529">PR#15529</a>.)
+</p>
+</li>
+<li> <p><code>print.table(x, zero.print = ".")</code> now also has an
+effect when <code>x</code> is not integer-valued.
+</p>
+</li>
+<li><p> There is more support to explore the system's idea of
+time-zone names.  <code>Sys.timezone()</code> tries to give the current
+system setting by name (and succeeds at least on Linux, OS X,
+Solaris and Windows), and <code>OlsonNames()</code> lists the names in
+the system's Olson database. <code>Sys.timezone(location = FALSE)</code>
+gives the previous behaviour.
+</p>
+</li>
+<li><p> Platforms with a 64-bit <code>time_t</code> type are allowed to
+handle conversions between the <code>"POSIXct"</code> and
+<code>"POSIXlt"</code> classes for date-times outside the 32-bit range
+(before 1902 or after 2037): the existing workarounds are used on
+other platforms.  (Note that time-zone information for post-2037
+is speculative at best, and the OS services are tested for known
+errors and so not used on OS X.)
+</p>
+<p>Currently <code>time_t</code> is usually <code>long</code> and hence 64-bit on
+Unix-alike 64-bit platforms: however in several cases the
+time-zone database is 32-bit.  For <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> for Windows it is 64-bit
+(for both architectures as from this version).
+</p>
+</li>
+<li><p> The <code>"save.defaults"</code> option can include a value for
+<code>compression_level</code>.  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15579">PR#15579</a>.)
+</p>
+</li>
+<li> <p><code>colSums()</code> and friends now have support for arrays and
+data-frame columns with <i>2^31</i> or more elements.
+</p>
+</li>
+<li> <p><code>as.factor()</code> is faster when <code>f</code> is an unclassed
+integer vector (for example, when called from <code>tapply()</code>).
+</p>
+</li>
+<li> <p><code>fft()</code> now works with longer inputs, from the 12
+million previously supported up to 2 billion.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15593">PR#15593</a>)
+</p>
+</li>
+<li><p> Complex <code>svd()</code> now uses LAPACK subroutine
+<code>ZGESDD</code>, the complex analogue of the routine used for the
+real case.
+</p>
+</li>
+<li><p> Sweave now outputs &lsquo;<span class="file">.tex</span>&rsquo; files in UTF-8 if the
+input encoding is declared to be UTF-8, regardless of the
+local encoding.  The UTF-8 encoding may now be declared using
+a LaTeX comment containing the string <code>%\SweaveUTF8</code>
+on a line by itself.
+</p>
+</li>
+<li> <p><code>file.copy()</code> gains a <code>copy.date</code> argument.
+</p>
+</li>
+<li><p> Printing of date-times will make use of the time-zone
+abbreviation in use at the time, if known.  For example, for Paris
+pre-1940 this could be <span class="samp">LMT</span>, <span class="samp">PMT</span>, <span class="samp">WET</span> or
+<span class="samp">WEST</span>.  To enable this, the <code>"POSIXlt"</code> class has an
+optional component <code>"zone"</code> recording the abbreviation for
+each element.
+</p>
+<p>For platforms which support it, there is also a component
+<code>"gmtoff"</code> recording the offset from GMT where known.
+</p>
+</li>
+<li><p> (On Windows, by default on OS X and optionally elsewhere.)
+The system C function <code>strftime</code> has been replaced by a more
+comprehensive version with closer conformance to the POSIX 2008
+standard.
+</p>
+</li>
+<li> <p><code>dnorm(x, log = FALSE)</code> is more accurate (but somewhat
+slower) for |x| &gt; 5; as suggested in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15620">PR#15620</a>.
+</p>
+</li>
+<li><p> Some versions of the <code>tiff()</code> device have further
+compression options.
+</p>
+</li>
+<li> <p><code>read.table()</code>, <code>readLines()</code> and <code>scan()</code>
+have a new argument to influence the treatment of embedded nuls.
+</p>
+</li>
+<li><p> Avoid duplicating the right hand side values in complex
+assignments when possible.  This reduces copying of replacement
+values in expressions such as <code>Z$a &lt;- a0</code> and
+<code>ans[[i]] &lt;- tmp</code>: some package code has relied on there
+being copies.
+</p>
+<p>Also, a number of other changes to reduce copying of objects; all
+contributed by or based on suggestions by Michael Lawrence.
+</p>
+</li>
+<li><p> The <code>fast</code> argument of <code>KalmanLike()</code>,
+<code>KalmanRun()</code> and <code>KalmanForecast()</code> has been replaced
+by <code>update</code>, which instead of updating <code>mod</code> in place,
+optionally returns the updated model in an attribute <code>"mod"</code>
+of the return value.
+</p>
+</li>
+<li> <p><code>arima()</code> and <code>makeARIMA()</code> get a new optional
+argument <code>SSinit</code>, allowing the choice of a different
+<b>s</b>tate <b>s</b>pace initialization which has been observed
+to be more reliable close to non-stationarity: see <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14682">PR#14682</a>.
+</p>
+</li>
+<li> <p><code>warning()</code> has a new argument <code>noBreaks.</code>, to
+simplify post-processing of output with <code>options(warn = 1)</code>.
+</p>
+</li>
+<li> <p><code>pushBack()</code> gains an argument <code>encoding</code>, to
+support reading of UTF-8 characters using <code>scan()</code>,
+<code>read.table()</code> and related functions in a non-UTF-8 locale.
+</p>
+</li>
+<li> <p><code>all.equal.list()</code> gets a new argument <code>use.names</code>
+which by default labels differing components by names (if they
+match) rather than by integer index.  Saved <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> output in packages may
+need to be updated.
+</p>
+</li>
+<li><p> The methods for <code>all.equal()</code> and
+<code>attr.all.equal()</code> now have argument <code>check.attributes</code>
+after <code>...</code> so it cannot be partially nor positionally
+matched (as it has been, unintentionally).
+</p>
+<p>A side effect is that some previously undetected errors of passing
+empty arguments (no object between commas) to <code>all.equal()</code>
+are detected and reported.
+</p>
+<p>There are explicit checks that <code>check.attributes</code> is logical,
+<code>tolerance</code> is numeric and <code>scale</code> is <code>NULL</code> or
+numeric.  This catches some unintended positional matching.
+</p>
+<p>The message for <code>all.equal.numeric()</code> reports a
+<code>"scaled difference"</code> only for <code>scale != 1</code>.
+</p>
+</li>
+<li> <p><code>all.equal()</code> now has a <code>"POSIXt"</code> method
+replacing the <code>"POSIXct"</code> method.
+</p>
+</li>
+<li><p> The <code>"Date"</code> and <code>"POSIXt"</code> methods of
+<code>seq()</code> allows <code>by = "quarter"</code> for completeness
+(<code>by = "3 months"</code> always worked).
+</p>
+</li>
+<li> <p><code>file.path()</code> removes any trailing separator on
+Windows, where they are invalid (although sometimes accepted).
+This is intended to enhance the portability of code written by
+those using POSIX file systems (where a trailing <code>/</code> can be
+used to confine path matching to directories).
+</p>
+</li>
+<li><p> New function <code>agrepl()</code> which like <code>grepl()</code>
+returns a logical vector.
+</p>
+</li>
+<li> <p><code>fifo()</code> is now supported on Windows. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15600">PR#15600</a>)
+</p>
+</li>
+<li> <p><code>sort.list(method = "radix")</code> now allows negative
+integers (wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15644">PR#15644</a>).
+</p>
+</li>
+<li><p> Some functionality of <code>print.ts()</code> is now available in
+<code>.preformat.ts()</code> for more modularity.
+</p>
+</li>
+<li> <p><code>mcparallel()</code> gains an option <code>detach = TRUE</code>
+which allows execution of code independently of the current
+session.  It is based on a new <code>estranged = TRUE</code> argument to
+<code>mcfork()</code> which forks child processes such that they become
+independent of the parent process.
+</p>
+</li>
+<li><p> The <code>pdf()</code> device omits circles and text at extremely
+small sizes, since some viewers were failing on such files.
+</p>
+</li>
+<li><p> The rightmost break for the <code>"months"</code>,
+<code>"quarters"</code> and <code>"years"</code> cases of
+<code>hist.POSIXlt()</code> has been increased by a day.  (Inter alia,
+fixes <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15717">PR#15717</a>.)
+</p>
+</li>
+<li><p> The handling of <code>DF[i,] &lt;- a</code> where <code>i</code> is of
+length 0 is improved.  (Inter alia, fixes <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15718">PR#15718</a>.)
+</p>
+</li>
+<li> <p><code>hclust()</code> gains a new method <code>"ward.D2"</code> which
+implements Ward's method correctly.  The previous <code>"ward"</code>
+method is <code>"ward.D"</code> now, with the old name still working.
+Thanks to research and proposals by Pierre Legendre.
+</p>
+</li>
+<li><p> The <code>sunspot.month</code> dataset has been amended and
+updated from the official source, whereas the <code>sunspots</code> and
+<code>sunspot.year</code> datasets will remain immutable. The
+documentation and source links have been updated correspondingly.
+</p>
+</li>
+<li><p> The <code>summary()</code> method for <code>"lm"</code> fits warns if
+the fit is essentially perfect, as most of the summary may be
+computed inaccurately (and with platform-dependent values).
+</p>
+<p>Programmers who use <code>summary()</code> in order to extract just
+a component which will be reliable (e.g., <code>$cov.unscaled</code>)
+should wrap their calls in <code>suppressWarnings()</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION and INCLUDED SOFTWARE</h4>
+
+
+<ul>
+<li><p> The included version of LAPACK has been updated to 3.5.0.
+</p>
+</li>
+<li><p> There is some support for parallel testing of an
+installation, by setting <span class="env">TEST_MC_CORES</span> to an integer
+greater than one to indicate the maximum number of cores to be
+used in parallel. (It is worth specifying at least 8 cores if
+available.)  Most of these require a <code>make</code> program (such
+as GNU <code>make</code> and <code>dmake</code>) which supports the
+<code>$MAKE -j nproc</code> syntax.
+</p>
+<p>Except on Windows: the tests of standard package examples in
+<code>make check</code> are done in parallel.  This also applies to
+running <code>tools::testInstalledPackages()</code>.
+</p>
+<p>The more time-consuming regression tests are done in parallel.
+</p>
+<p>The package checks in <code>make check-devel</code> and <code>make
+	check-recommended</code> are done in parallel.
+</p>
+</li>
+<li><p> More of <code>make check</code> will work if recommended packages
+are not installed: but recommended packages remain needed for
+thorough checking of an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> build.
+</p>
+</li>
+<li><p> The version of <span class="samp">tzcode</span> included in
+&lsquo;<span class="file">src/extra/tzone</span>&rsquo; has been updated.  (Formerly used only on
+Windows.)
+</p>
+</li>
+<li><p> The included (64-bit) time-zone conversion code and Olson
+time-zone database can be used instead of the system version: use
+<code>configure</code> option <span class="option">--with-internal-tzcode</span>.  This
+is the default on Windows and OS X.  (Note that this does not
+currently work if a non-default <code>rsharedir</code>
+<code>configure</code> variable is used.)
+</p>
+<p>(It might be necessary to set environment variable <span class="env">TZ</span> on
+OSes where this is not already set, although the system timezone is
+deduced correctly on at least Linux, OS X and Windows.)
+</p>
+<p>This option also switches to the version of <code>strftime</code>
+included in directory &lsquo;<span class="file">src/extra/tzone</span>&rsquo;.
+</p>
+</li>
+<li> <p><code>configure</code> now tests for a C++11-compliant compiler
+by testing some basic features.  This by default tries flags for
+the compiler specified by <span class="samp">CXX</span>, but an alternative compiler,
+options and standard can be specified by variables <span class="samp">CXX1X</span>,
+<span class="samp">CXX1XFLAGS</span> and <span class="samp">CXX1XSTD</span> (e.g., <span class="samp">-std=gnu++11</span>).
+</p>
+</li>
+<li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> can now optionally be compiled to use reference
+counting instead of the <code>NAMED</code> mechanism by defining
+<code>SWITCH_TO_REFCNT</code> in &lsquo;<span class="file">Rinternals.h</span>&rsquo;. This may become
+the default in the future.
+</p>
+</li>
+<li><p> There is a new option <span class="option">--use-system-tre</span> to use a
+suitable system <span class="pkg">tre</span> library: at present this means a version
+from their <code>git</code> repository, after corrections.
+(Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15660">PR#15660</a>.)
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li><p> The <code>CRANextra</code> repository is no longer a default
+repository on Windows: all the binary versions of packages from
+CRAN are now on CRAN, although <code>CRANextra</code> contains packages
+from Omegahat and elsewhere used by CRAN packages.
+</p>
+</li>
+<li><p> Only vignettes sources in directory &lsquo;<span class="file">vignettes</span>&rsquo; are
+considered to be vignettes and hence indexed as such.
+</p>
+</li>
+<li><p> In the &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file, </p>
+<pre>    License: X11</pre>
+<p>is no longer recognized as valid.  Use <span class="samp">MIT</span> or
+<span class="samp">BSD_2_clause</span> instead, both of which need <span class="samp">+ file LICENSE</span>.
+</p>
+</li>
+<li><p> For consistency, entries in &lsquo;<span class="file">.Rinstignore</span>&rsquo; are now matched
+case-insensitively on all platforms.
+</p>
+</li>
+<li><p> Help for S4 methods with very long signatures now tries
+harder to split the description in the <span class="samp">Usage</span> field to no
+more than 80 characters per line (some packages had over 120
+characters).
+</p>
+</li>
+<li> <p><code>R CMD INSTALL --build</code> (not Windows) now defaults to
+the internal <code>tar()</code> unless <span class="env">R_INSTALL_TAR</span> is set.
+</p>
+</li>
+<li><p> There is support for compiling C++11 code in packages on
+suitable platforms: see &lsquo;Writing R Extensions&rsquo;.
+</p>
+</li>
+<li><p> Fake installs now install the contents of directory
+&lsquo;<span class="file">inst</span>&rsquo;: some packages use this to install e.g. C++ headers
+for use by other packages that are independent of the package
+itself.  Option <span class="option">--no-inst</span> can be used to get the previous
+behaviour.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEBUGGING</h4>
+
+
+<ul>
+<li><p> The behaviour of the code browser has been made more
+consistent, in part following the suggestions in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14985">PR#14985</a>.
+</p>
+</li>
+<li><p> Calls to <code>browser()</code> are now consistent with calls
+to the browser triggered by <code>debug()</code>, in that <kbd>Enter</kbd>
+will default to <code>n</code> rather than <code>c</code>.
+</p>
+</li>
+<li><p> A new browser command <code>s</code> has been added, to
+&ldquo;step into&rdquo; function calls.
+</p>
+</li>
+<li><p> A new browser command <code>f</code> has been added, to
+&ldquo;finish&rdquo; the current loop or function.
+</p>
+</li>
+<li><p> Within the browser, the command <code>help</code> will
+display a short list of available commands.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li><p> Only vignettes sources in directory &lsquo;<span class="file">vignettes</span>&rsquo; are
+considered to be vignettes by <code>R CMD check</code>.  That has
+been the preferred location since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0 and is now obligatory.
+</p>
+</li>
+<li><p> For consistency, <code>R CMD build</code> now matches entries
+in &lsquo;<span class="file">.Rbuildignore</span>&rsquo;  and &lsquo;<span class="file">vignettes/.install_extras</span>&rsquo;
+case-insensitively on all platforms (not just on Windows).
+</p>
+</li>
+<li> <p><code>checkFF()</code> (called by <code>R CMD check</code> by
+default) can optionally check foreign function calls for
+consistency with the registered type and argument count.  This is
+the default for <code>R CMD check --as-cran</code> or can be enabled
+by setting environment variable <span class="env">_R_CHECK_FF_CALLS_</span> to
+<span class="samp">registration</span> (but is in any case suppressed by
+<span class="option">--install=no</span>).   Because this checks calls in which
+<code>.NAME</code> is an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> object and not just a literal character
+string, some other problems are detected for such calls.
+</p>
+<p>Functions <code>suppressForeignCheck()</code> and <code>dontCheck()</code>
+have been added to allow package authors to suppress false
+positive reports.
+</p>
+</li>
+<li> <p><code>R CMD check --as-cran</code> warns about a false value of
+the &lsquo;<span class="file">DESCRIPTION</span>&rsquo; field <span class="samp">BuildVignettes</span> for Open Source
+packages, and ignores it.  (An Open Source package needs to have
+complete sources for its vignettes which should be usable on a
+suitably well-equipped system).
+</p>
+</li>
+<li> <p><code>R CMD check --no-rebuild-vignettes</code> is defunct:<br />
+<code>R CMD check --no-build-vignettes</code> has been preferred since
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0.
+</p>
+</li>
+<li> <p><code>R CMD build --no-vignettes</code> is defunct:<br />
+<code>R CMD build --no-build-vignettes</code> has been preferred since
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0.
+</p>
+</li>
+<li> <p><code>R CMD Sweave</code> and <code>R CMD Stangle</code> now
+process both Sweave and non-Sweave vignettes.  The
+<code>tools::buildVignette()</code> function has been added to do the
+same tasks from within <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+</li>
+<li><p> The flags returned by <code>R CMD config --ldflags</code> and
+(where installed) <code>pkg-config --libs libR</code> are now those
+needed to link a front-end against the (shared or static) <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+library.
+</p>
+</li>
+<li> <p>&lsquo;<span class="file">Sweave.sty</span>&rsquo; has a new option <span class="samp">[inconsolata]</span>.
+</p>
+</li>
+<li> <p><code>R CMD check</code> customizations such as
+<span class="env">_R_CHECK_DEPENDS_ONLY_</span> make available packages only in
+<span class="samp">LinkingTo</span> only for installation, and not for
+loading/runtime tests.
+</p>
+</li>
+<li> <p><code>tools::checkFF()</code> reports on <code>.C</code> and
+<code>.Fortran</code> calls with <code>DUP = FALSE</code> if argument
+<code>check_DUP</code> is true.  This is selected by
+<code>R CMD check</code> by default.
+</p>
+</li>
+<li> <p><code>R CMD check --use-gct</code> can be tuned to
+garbage-collect less frequently using <code>gctorture2()</code>
+<em>via</em> the setting of environment variable
+<span class="env">_R_CHECK_GCT_N_</span>.
+</p>
+</li>
+<li><p> Where supported, <code>tools::texi2dvi()</code> limits the number
+of passes tried to 20.
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li><p> (Windows only) A function <code>R_WaitEvent()</code> has been
+added (with declaration in header&lsquo;<span class="file">R.h</span>&rsquo;) to block execution
+until the next event is received by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+</li>
+<li><p> Remapping in the &lsquo;<span class="file">Rmath.h</span>&rsquo; header can be suppressed by
+defining <span class="samp">R_NO_REMAP_RMATH</span>.
+</p>
+</li>
+<li><p> The remapping of <code>rround()</code> in header &lsquo;<span class="file">Rmath.h</span>&rsquo;
+has been removed: use <code>fround()</code> instead.
+</p>
+</li>
+<li> <p><code>ftrunc()</code> in header &lsquo;<span class="file">Rmath.h</span>&rsquo; is now a wrapper
+for the C99 function <code>trunc()</code>, which might as well be used
+in C code: <code>ftrunc()</code> is still needed for portable C++ code.
+</p>
+</li>
+<li><p> The never-documented remapping of <code>prec()</code> to
+<code>fprec()</code> in header &lsquo;<span class="file">Rmath.h</span>&rsquo; has been removed.
+</p>
+</li>
+<li><p> The included LAPACK subset now contains <code>ZGESDD</code> and
+<code>ZGELSD</code>.
+</p>
+</li>
+<li><p> The function <code>LENGTH()</code> now checks that it is only
+applied to vector arguments.  However, in packages <code>length()</code>
+should be used. (In <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself <code>LENGTH()</code> is a macro without
+the function overhead of <code>length()</code>.)
+</p>
+</li>
+<li><p> Calls to <code>SET_VECTOR_ELT()</code> and <code>SET_STRING_ELT()</code>
+are now checked for indices which are in-range: several packages
+were writing one element beyond the allocated length.
+</p>
+</li>
+<li> <p><code>allocVector3</code> has been added which allows custom
+allocators to be used for individual vector allocations.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li> <p><code>chol(pivot = TRUE, LINPACK = TRUE)</code> is defunct.
+</p>
+<p>Arguments <code>EISPACK</code> for <code>eigen()</code> and <code>LINPACK</code> for
+<code>chol()</code>, <code>chol2inv()</code>, <code>solve()</code> and <code>svd()</code>
+are ignored: LAPACK is always used.
+</p>
+</li>
+<li> <p><code>.find.package()</code> and <code>.path.package()</code> are
+defunct: only the versions without the initial dot introduced in
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.13.0 have ever been in the API.
+</p>
+</li>
+<li><p> Partial matching when using the <code>$</code> operator <em>on
+data frames</em> now throws a warning and may become defunct in the
+future. If partial matching is intended, replace <code>foo$bar</code>
+by <code>foo[["bar", exact = FALSE]]</code>.
+</p>
+</li>
+<li><p> The long-deprecated use of <code>\synopsis</code> in the
+<span class="samp">Usage</span> section of &lsquo;<span class="file">.Rd</span>&rsquo; files has been removed: such
+sections are now ignored (with a warning).
+</p>
+</li>
+<li> <p><code>package.skeleton()</code>'s deprecated argument
+<code>namespace</code> has been removed.
+</p>
+</li>
+<li><p> Many methods are no longer exported by package <span class="pkg">stats</span>.
+They are all registered on their generic, which should be called
+rather than calling a method directly.
+</p>
+</li>
+<li><p> Functions <code>readNEWS()</code> and <code>checkNEWS()</code> in
+package <span class="pkg">tools</span> are defunct.
+</p>
+</li>
+<li> <p><code>download.file(method = "lynx")</code> is deprecated.
+</p>
+</li>
+<li> <p><code>.C(DUP = FALSE)</code> and <code>.Fortran(DUP = FALSE)</code> are
+now deprecated, and may be disabled in future versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.  As
+their help has long said, <code>.Call()</code> is much preferred.
+</p>
+<p><code>R CMD check</code> notes such usages (by default).
+</p>
+</li>
+<li><p> The workaround of setting <span class="env">R_OSX_VALGRIND</span> has been
+removed: it is not needed in current valgrind.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> Calling <code>lm.wfit()</code> with no non-zero weights gave an
+array-overrun in the Fortran code and a not very sensible answer.
+It is now special-cased with a simpler answer (no <code>qr</code>
+component).
+</p>
+</li>
+<li><p> Error messages involving non-syntactic names (e.g., as produced
+by <code>`\r`</code> when that object does not exist) now encode
+the control characters.  (Reported by Hadley Wickham.)
+</p>
+</li>
+<li> <p><code>getGraphicsEvent()</code> caused 100% usage of one CPU in
+Windows. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15500">PR#15500</a>)
+</p>
+</li>
+<li> <p><code>nls()</code> with no <code>start</code> argument may now work
+inside another function (scoping issue).
+</p>
+</li>
+<li> <p><code>pbeta()</code> and similar work better for very large
+(billions) <code>ncp</code>.
+</p>
+</li>
+<li><p> Where time zones have changed abbreviations over the years,
+the software tries to more consistently use the abbreviation
+appropriate to the time or if that is unknown, the current
+abbreviation.  On some platforms where the C function
+<code>localtime</code> changed the <code>tzname</code> variables the reported
+abbreviation could have been that of the last time converted.
+</p>
+</li>
+<li> <p><code>all.equal(list(1), identity)</code> now works.
+</p>
+</li>
+<li><p> Bug fix for pushing viewports in <span class="pkg">grid</span> (reported by
+JJ Allaire and Kevin Ushey).
+</p>
+<p>NOTE for anyone poking around within the graphics engine display
+list (despite the warnings not to) that this changes what
+is recorded by <span class="pkg">grid</span> on the graphics engine display list.
+</p>
+</li>
+<li><p> Extra checks have been added for unit resolution and
+conversion in <span class="pkg">grid</span>, to catch instances of division-by-zero.
+This may introduce error messages in existing code and/or produce
+a different result in existing code (but only where a non-finite
+location or dimension may now become zero).
+</p>
+</li>
+<li><p> Some bugs in TRE have been corrected by updating from the
+<code>git</code> repository.  This allows <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> to be installed on some
+platforms for which this was a blocker (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15087">PR#15087</a> suggests Linux
+on ARM and HP-UX).
+</p>
+</li>
+<li> <p><code>?</code> applied to a call to an S4 generic failed in
+several cases. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15680">PR#15680</a>)
+</p>
+</li>
+<li><p> The implicit S4 generics for primitives with <code>...</code> in
+their argument list were incorrect. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15690">PR#15690</a>)
+</p>
+</li>
+<li><p> Bug fixes to <code>methods::callGeneric()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15691">PR#15691</a>)
+</p>
+</li>
+<li><p> The bug fix to <code>aggregrate()</code> in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15004">PR#15004</a> introduced
+a new bug in the case of no grouping variables. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15699">PR#15699</a>)
+</p>
+</li>
+<li><p> In rare cases printing deeply nested lists overran a buffer
+by one byte and on a few platforms segfaulted. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15679">PR#15679</a>)
+</p>
+</li>
+<li><p> The dendrogram method of <code>as.dendrogram()</code> was hidden
+accidentally, (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15703">PR#15703</a>), and <code>order.dendrogram(d)</code> gave
+too much for a leaf <code>d</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15702">PR#15702</a>)
+</p>
+</li>
+<li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> would try to kill processes on exit that have pids ever
+used by a child process spawned by <code>mcparallel</code> even though
+the current process with that pid was not actually its child.
+</p>
+</li>
+<li> <p><code>cophenetic()</code> applied to a <code>"dendrogram"</code> object
+sometimes incorrectly returned a <code>"Labels"</code> attribute with
+dimensions.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15706">PR#15706</a>)
+</p>
+</li>
+<li> <p><code>printCoefmat()</code> called from quite a few <code>print()</code>
+methods now obeys small <code>getOption("width")</code> settings,
+line wrapping the <span class="samp">"signif. codes"</span> legend appropriately.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15708">PR#15708</a>)
+</p>
+</li>
+<li> <p><code>model.matrix()</code> assumed that the stored dimnames for a
+matrix was <code>NULL</code> or length 2, but length 1 occurred.
+</p>
+</li>
+<li><p> The clipping region for a device was sometimes used in base
+graphics before it was set.
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.0.3</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> On Windows there is support for making &lsquo;<span class="file">.texi</span>&rsquo; manuals
+using <code>texinfo</code> 5.0 or later: the setting is in file
+&lsquo;<span class="file">src/gnuwin32/MkRules.dist</span>&rsquo;.
+</p>
+<p>A packaging of the Perl script and modules for <code>texinfo</code>
+5.2 has been made available at
+<a href="http://www.stats.ox.ac.uk/pub/Rtools/">http://www.stats.ox.ac.uk/pub/Rtools/</a>.
+</p>
+</li>
+<li> <p><code>write.table()</code> now handles matrices of
+<i>2^31</i> or more elements, for those with large amounts
+of patience and disc space.
+</p>
+</li>
+<li><p> There is a new function, <code>La_version()</code>, to report the
+version of LAPACK in use.
+</p>
+</li>
+<li><p> The HTML version of &lsquo;An Introduction to R&rsquo; now has
+links to PNG versions of the figures.
+</p>
+</li>
+<li><p> There is some support to produce manuals in ebook
+formats. (See &lsquo;<span class="file">doc/manual/Makefile</span>&rsquo;.  Suggested by Mauro
+Cavalcanti.)
+</p>
+</li>
+<li><p> On a Unix-alike <code>Sys.timezone()</code> returns <code>NA</code> if
+the environment variable <span class="env">TZ</span> is unset, to distinguish it from
+an empty string which on some OSes means the <span class="samp">UTC</span> time zone.
+</p>
+</li>
+<li><p> The backtick may now be escaped in strings, to allow names
+containing them to be constructed, e.g. <code>`\``</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15621">PR#15621</a>)
+</p>
+</li>
+<li> <p><code>read.table()</code>, <code>readLines()</code> and <code>scan()</code>
+now warn when an embedded nul is found in the input.  (Related to
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15625">PR#15625</a> which was puzzled by the behaviour in this unsupported
+case.)
+</p>
+</li>
+<li><p> (Windows only.)  <code>file.symlink()</code> works around the
+undocumented restriction of the Windows system call to
+backslashes.  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15631">PR#15631</a>.)
+</p>
+</li>
+<li> <p><code>KalmanForecast(fast = FALSE)</code> is now the default, and
+the help contains an example of how <code>fast = TRUE</code> can be used
+in this version.  (The usage will change in 3.1.0.)
+</p>
+</li>
+<li> <p><code>strptime()</code> now checks the locale only when
+locale-specific formats are used and caches the locale in use:
+this can halve the time taken on OSes with slow system
+functions (e.g., OS X).
+</p>
+</li>
+<li> <p><code>strptime()</code> and the <code>format()</code> methods for
+classes <code>"POSIXct"</code>, <code>"POSIXlt"</code> and <code>"Date"</code>
+recognize strings with marked encodings: this allows, for example,
+UTF-8 French month names to be read on (French) Windows.
+</p>
+</li>
+<li> <p><code>iconv(to = "utf8")</code> is now accepted on all platforms
+(some implementations did already, but GNU <span class="pkg">libiconv</span> did not:
+however converted strings were not marked as being in UTF-8).  The
+official name, <code>"UTF-8"</code> is still preferred.
+</p>
+</li>
+<li> <p><code>available.packages()</code> is better protected against
+corrupt metadata files.  (A recurring problem with Debian package
+<span class="pkg">shogun-r</span>: <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14713">PR#14713</a>.)
+</p>
+</li>
+<li><p> Finalizers are marked to be run at garbage collection, but
+run only at a somewhat safer later time (when interrupts are
+checked).  This circumvents some problems with finalizers running
+arbitrary code during garbage collection (the known instances being
+running <code>options()</code> and (C-level) <code>path.expand()</code>
+re-entrantly).
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION and INCLUDED SOFTWARE</h4>
+
+
+<ul>
+<li><p> The included version of PCRE has been updated to 8.34.  This
+fixes bugs and makes the behaviour closer to Perl 5.18.  In
+particular, the concept of &lsquo;space&rsquo; includes <span class="samp">VT</span> and
+hence agrees with POSIX's.
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li><p> The new field <span class="samp">SysDataCompression</span> in the
+&lsquo;<span class="file">DESCRIPTION</span>&rsquo; file allows user control over the compression
+used for &lsquo;<span class="file">sysdata.rda</span>&rsquo; objects in the lazy-load database.
+</p>
+</li>
+<li> <p><code>install.packages(dependencies = value)</code> for <code>value =
+	NA</code> (the default) or <code>value = TRUE</code> omits packages only in
+<code>LinkingTo</code> for binary package installs.
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li><p> The long undocumented remapping of <code>rround()</code> to
+<code>Rf_fround()</code> in header &lsquo;<span class="file">Rmath.h</span>&rsquo; is now formally
+deprecated: use <code>fround()</code> directly.
+</p>
+</li>
+<li><p> Remapping of <code>prec()</code> and <code>trunc()</code> in the
+&lsquo;<span class="file">Rmath.h</span>&rsquo; header has been disabled in C++ code (it has caused
+breakage with <code>libc++</code> headers).
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>getParseData()</code> truncated the imaginary part of
+complex number constants.  (Reported by Yihui Xie.)
+</p>
+</li>
+<li> <p><code>dbeta(x, a, b)</code> with <code>a</code> or <code>b</code> within a
+factor of 2 of the largest representable number could
+infinite-loop.  (Reported by Ioannis Kosmidis.)
+</p>
+</li>
+<li> <p><code>provideDimnames()</code> failed for arrays with a 0
+dimension. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15465">PR#15465</a>)
+</p>
+</li>
+<li> <p><code>rbind()</code> and <code>cbind()</code> did not handle
+list objects correctly. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15468">PR#15468</a>)
+</p>
+</li>
+<li> <p><code>replayPlot()</code> now checks if it is replaying a plot
+from the same session.
+</p>
+</li>
+<li> <p><code>rasterImage()</code> and <code>grid.raster()</code> now give
+error on an empty (zero-length) raster.  (Reported by Ben North.)
+</p>
+</li>
+<li> <p><code>plot.lm()</code> would sometimes scramble the labels
+in plot type 5.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15458">PR#15458</a> and <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14837">PR#14837</a>)
+</p>
+</li>
+<li> <p><code>min()</code> did not handle <code>NA_character_</code> values
+properly.  (Reported by Magnus Thor Torfason.)
+</p>
+</li>
+<li><p> (Windows only.)  <code>readRegistry()</code> would duplicate
+default values for keys.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15455">PR#15455</a>)
+</p>
+</li>
+<li> <p><code>str(..., strict.width = "cut")</code> did not handle
+it properly when more than one line needed to be cut.  (Reported
+by Gerrit Eichner.)
+</p>
+</li>
+<li><p> Removing subclass back-references when S4 classes were
+removed or their namespace unloaded had several bugs (e.g., <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15481">PR#15481</a>).
+</p>
+</li>
+<li> <p><code>aggregate()</code> could fail when there were too many
+levels present in the <code>by</code> argument.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15004">PR#15004</a>)
+</p>
+</li>
+<li> <p><code>namespaceImportFrom()</code> needed to detect primitive
+functions when checking for duplicated imports (reported by
+Karl Forner).
+</p>
+</li>
+<li> <p><code>getGraphicsEvent()</code> did not exit when a user closed
+the graphics window.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15208">PR#15208</a>)
+</p>
+</li>
+<li><p> Errors in vignettes were not always captured and displayed
+properly.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15495">PR#15495</a>)
+</p>
+</li>
+<li> <p><code>contour()</code> could fail when dealing with extremely
+small z values.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15454">PR#15454</a>)
+</p>
+</li>
+<li><p> Several functions did not handle zero-length vectors properly,
+including <code>browseEnv()</code>, <code>format()</code>, <code>gl()</code>,
+<code>relist()</code> and <code>summary.data.frame()</code>.  (E.g., <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15499">PR#15499</a>)
+</p>
+</li>
+<li> <p><code>Sweave()</code> did not restore the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> output to the
+console if it was interrupted by a user in the middle of evaluating
+a code chunk.  (Reported by Michael Sumner.)
+</p>
+</li>
+<li><p> Fake installs of packages with vignettes work again.
+</p>
+</li>
+<li><p> Illegal characters in the input caused <code>parse()</code>
+(and thus <code>source()</code>) to segfault.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15518">PR#15518</a>)
+</p>
+</li>
+<li><p> The nonsensical use of <code>nmax = 1</code> in
+<code>duplicated()</code> or <code>unique()</code> is now silently ignored.
+</p>
+</li>
+<li> <p><code>qcauchy(p, *)</code> is now fully accurate even when p is
+very close to 1. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15521">PR#15521</a>)
+</p>
+</li>
+<li><p> The <code>validmu()</code> and <code>valideta()</code> functions in the
+standard <code>glm()</code> families now also report non-finite values,
+rather than failing.
+</p>
+</li>
+<li><p> Saved vignette results (in a &lsquo;<span class="file">.Rout.save</span>&rsquo; file) were
+not being compared to the new ones during <code>R CMD check</code>.
+</p>
+</li>
+<li><p> Double-clicking outside of the list box (e.g., on the scrollbar)
+of a Tk listbox widget generated by <code>tk_select.list()</code> no
+longer causes the window to close. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15407">PR#15407</a>)
+</p>
+</li>
+<li><p> Improved handling of edge cases in
+<code>parallel::splitindices()</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15552">PR#15552</a>)
+</p>
+</li>
+<li><p> HTML display of results from <code>help.search()</code> and
+<code>??</code> sometimes contained badly constructed links.
+</p>
+</li>
+<li> <p><code>c()</code> and related functions such as <code>unlist()</code>
+converted raw vectors to invalid logical vectors. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15535">PR#15535</a>)
+</p>
+</li>
+<li><p> (Windows only) When a call to <code>system2()</code> specified
+one of <code>stdin</code>, <code>stdout</code> or <code>stderr</code> to be a file,
+but the command was not found (e.g., it contained its arguments,
+or the program was not on the <span class="env">PATH</span>), it left the file open
+and unusable until <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> terminated.  (Reported by Mathew McLean.)
+</p>
+</li>
+<li><p> The <code>bmp()</code> device was not recording <code>res = NA</code>
+correctly: it is now recorded as 72 ppi.
+</p>
+</li>
+<li><p> Several potential problems with compiler-specific behaviour
+have been identified using the &lsquo;Undefined Behaviour
+Sanitizer&rsquo; in conjunction with the <code>clang</code> compiler.
+</p>
+</li>
+<li> <p><code>hcl()</code> now honours <code>NA</code> inputs (previously they
+were mapped to black).
+</p>
+</li>
+<li><p> Some translations in base packages were being looked up in
+the main catalog rather than that for the package.
+</p>
+</li>
+<li><p> As a result of the 3.0.2 change about &lsquo;the last
+second before the epoch&rsquo;, most conversions which should have given
+<code>NA</code> returned that time.  (The platforms affected include
+Linux and OS X, but not Windows nor Solaris.)
+</p>
+</li>
+<li> <p><code>rowsum()</code> has more support for matrices and data frames
+with <i>2^31</i> or more elements. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15587">PR#15587</a>)
+</p>
+</li>
+<li> <p><code>predict(&lt;lm object&gt;, interval = "confidence", scale =
+	&lt;something&gt;)</code> now works.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15564">PR#15564</a>)
+</p>
+</li>
+<li><p> The bug fix in 3.0.2 for <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15411">PR#15411</a> was too aggressive,
+and sometimes removed spaces that should not have been removed.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15583">PR#15583</a>)
+</p>
+</li>
+<li><p> Running <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code in a <span class="pkg">tcltk</span> callback failed to set the
+busy flag, which will be needed to tell OS X not to &lsquo;App Nap&rsquo;.
+</p>
+</li>
+<li><p> The code for date-times before 1902 assumed that the offset
+from GMT in 1902 was a whole number of minutes: that was not true
+of Paris (as recorded on some platforms).
+</p>
+</li>
+<li><p> Using <code>Sys.setlocale</code> to set <code>LC_NUMERIC</code> to
+<code>"C"</code> (to restore the sane behavior) no longer gives a
+warning.
+</p>
+</li>
+<li> <p><code>deparse()</code> now deparses complex vectors in a way that
+re-parses to the original values.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15534">PR#15534</a>, patch based on code
+submitted by Alex Bertram.)
+</p>
+</li>
+<li><p> In some extreme cases (more than <i>10^15</i>)
+integer inputs to <code>dpqrxxx()</code> functions might have been
+rounded up by one (with a warning about being non-integer).
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15624">PR#15624</a>)
+</p>
+</li>
+<li><p> Plotting symbol <code>pch = 14</code> had the triangle upside down
+on some devices (typically screen devices). The triangle is
+supposed to be point up.  (Reported by Bill Venables.)
+</p>
+</li>
+<li> <p><code>getSrcref()</code> did not work on method definitions if
+<code>rematchDefinition()</code> had been used.
+</p>
+</li>
+<li> <p><code>KalmanForecast(fast = FALSE)</code> reported a (harmless)
+stack imbalance.
+</p>
+</li>
+<li><p> The count of observations used by <code>KalmanRun()</code> did not
+take missing values into account.
+</p>
+</li>
+<li><p> In locales where the abbreviated name of one month is a
+partial match for the full name of a later one, the <code>%B</code>
+format in <code>strptime()</code> could fail.  An example was French on
+OS X, where <span class="samp">juin</span> is abbreviated to <span class="samp">jui</span> and partially
+matches <code>juillet</code>.  Similarly for weekday names.
+</p>
+</li>
+<li> <p><code>pbeta(x, a, b, log.p = TRUE)</code> sometimes underflowed to
+zero for very small and very differently sized <code>a</code>, <code>b</code>.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15641">PR#15641</a>)
+</p>
+</li>
+<li> <p><code>approx()</code> and <code>approxfun()</code> now handle infinite
+values with the <code>"constant"</code> method. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15655">PR#15655</a>)
+</p>
+</li>
+<li> <p><code>stripchart()</code> again respects reversed limits in
+<code>xlim</code> and <code>ylim</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15664">PR#15664</a>)
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.0.2</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li><p> The &lsquo;<span class="file">NEWS</span>&rsquo; files have been re-organized.
+</p>
+<p>This file contains news for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> &gt;= 3.0.0: news for the 0.x.y, 1.x.y
+and 2.x.y releases is in files &lsquo;<span class="file">NEWS.0</span>&rsquo;, &lsquo;<span class="file">NEWS.1</span>&rsquo; and
+&lsquo;<span class="file">NEWS.2</span>&rsquo;.  The latter files are now installed when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is
+installed.  An HTML version of news from 2.10.0 to 2.15.3 is
+available as &lsquo;<span class="file">doc/html/NEWS.2.html</span>&rsquo;.
+</p>
+</li>
+<li> <p><code>sum()</code> for integer arguments now uses an integer
+accumulator of at least 64 bits and so will be more accurate in
+the very rare case that a cumulative sum exceeds
+<i>2^53</i> (necessarily summing more than 4 million
+elements).
+</p>
+</li>
+<li><p> The <code>example()</code> and <code>tools::Rd2ex()</code> functions now
+have parameters to allow them to ignore <code>\dontrun</code> markup in
+examples.  (Suggested by Peter Solymos.)
+</p>
+</li>
+<li> <p><code>str(x)</code> is considerably faster for very large lists,
+or factors with 100,000 levels, the latter as in <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15337">PR#15337</a>.
+</p>
+</li>
+<li> <p><code>col2rgb()</code> now converts factors to character strings
+not integer codes (suggested by Bryan Hanson).
+</p>
+</li>
+<li> <p><code>tail(warnings())</code> now works, via the new <code>`[`</code>
+method.
+</p>
+</li>
+<li><p> There is now support for the LaTeX style file &lsquo;<span class="file">zi4.sty</span>&rsquo;
+which has in some distributions replaced &lsquo;<span class="file">inconsolata.sty</span>&rsquo;.
+</p>
+</li>
+<li> <p><code>unlist(x)</code> now typically returns all non-list
+<code>x</code>s unchanged, not just the &ldquo;vector&rdquo; ones.
+Consequently, <code>format(lst)</code> now also works when the list
+<code>lst</code> has non-vector elements.
+</p>
+</li>
+<li><p> The <code>tools::getVignetteInfo()</code> function has been added
+to give information about installed vignettes.
+</p>
+</li>
+<li><p> New <code>assertCondition()</code>, etc. utilities in <span class="pkg">tools</span>, useful
+for testing.
+</p>
+</li>
+<li><p> Profiling now records non-inlined calls from byte-compiled
+code to <code>BUILTIN</code> functions.
+</p>
+</li>
+<li><p> Various functions in <span class="pkg">stats</span> and elsewhere that use
+non-standard evaluation are now more careful to follow the
+namespace scoping rules.  E.g., <code>stats::lm()</code> can now find
+<code>stats::model.frame()</code> even if <span class="pkg">stats</span> is not on the
+search path or if some package defines a function of that name.
+</p>
+</li>
+<li><p> If an invalid/corrupt <code>.Random.seed</code> object is
+encountered in the workspace it is ignored with a warning rather
+than giving an error.  (This allows <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> itself to rely on a working
+RNG, e.g. to choose a random port.)
+</p>
+</li>
+<li> <p><code>seq()</code> and <code>seq.int()</code> give more explicit error
+messages if called with invalid (e.g., <code>NaN</code>) inputs.
+</p>
+</li>
+<li><p> When <code>parse()</code> finds a syntax error, it now makes
+partial parse information available up to the location of the
+error.  (Request of Reijo Sund.)
+</p>
+</li>
+<li><p> Methods invoked by <code>NextMethod()</code> had a different
+dynamic parent to the generic. This was causing trouble where S3
+methods invoked via lazy evaluation could lose track of their
+generic.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15267">PR#15267</a>)
+</p>
+</li>
+<li><p> Code for the negative binomial distribution now treats the case
+<code>size == 0</code> as a one-point distribution at zero.
+</p>
+</li>
+<li> <p><code>abbreviate()</code> handles without warning non-ASCII input
+strings which require no abbreviation.
+</p>
+</li>
+<li> <p><code>read.dcf()</code> no longer has a limit of 8191 bytes per
+line. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15250">PR#15250</a>.)
+</p>
+</li>
+<li> <p><code>formatC(x)</code> no longer copies the class of <code>x</code> to
+the result, to avoid misuse creating invalid objects as in
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15303">PR#15303</a>.  A warning is given if a class is discarded.
+</p>
+</li>
+<li><p> Dataset <code>npk</code> has been copied from <a href="https://CRAN.R-project.org/package=MASS"><span class="pkg">MASS</span></a> to
+allow more tests to be run without recommended packages being
+installed.
+</p>
+</li>
+<li><p> The initialization of the regression coefficients for
+non-degenerate differenced models in <code>arima()</code> has been
+changed and in some examples avoids a local maximum.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15396">PR#15396</a>)
+</p>
+</li>
+<li> <p><code>termplot()</code> now has an argument <code>transform.x</code>
+to control the display of individual terms in the plot.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15329">PR#15329</a>)
+</p>
+</li>
+<li> <p><code>format()</code> now supports <code>digits = 0</code>, to
+display <code>nsmall</code> decimal places.
+</p>
+</li>
+<li><p> There is a new read-only <code>par()</code> parameter called
+<code>"page"</code>, which returns a logical value indicating whether
+the next <code>plot.new()</code> call will start a new page.
+</p>
+</li>
+<li><p> Processing Sweave and Rd documents to PDF now renders
+backticks and single quotes better in several instances, including
+in <span class="samp">\code</span> and <span class="samp">\samp</span> expressions.
+</p>
+</li>
+<li> <p><code>utils::modifyList()</code> gets a new argument <code>keep.null</code>
+allowing <code>NULL</code> components in the replacement to be retained,
+instead of causing corresponding components to be deleted.
+</p>
+</li>
+<li> <p><code>tools::pkgVignettes()</code> gains argument <code>check</code>;
+if set to <code>TRUE</code>, it will warn when it appears a vignette requests
+a non-existent vignette engine.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD check --as-cran</code> checks the line widths in
+usage and examples sections of the package Rd files.
+</p>
+</li>
+<li> <p><code>R CMD check --as-cran</code> now implies <span class="option">--timings</span>.
+</p>
+</li>
+<li> <p><code>R CMD check</code> looks for command <code>gfile</code> if a
+suitable <code>file</code> is not found.  (Although <code>file</code> is
+not from GNU, OpenCSW on Solaris installs it as <code>gfile</code>.)
+</p>
+</li>
+<li> <p><code>R CMD build</code> (with the internal <code>tar</code>) checks
+the permissions of &lsquo;<span class="file">configure</span>&rsquo; and &lsquo;<span class="file">cleanup</span>&rsquo; files and
+adds execute permission to the recorded permissions for these
+files if needed, with a warning.  This is useful on OSes and file
+systems which do not support execute permissions (notably, on
+Windows).
+</p>
+</li>
+<li> <p><code>R CMD build</code> now weaves and tangles all vignettes,
+so suggested packages are not required during package installation
+if the source tarball was prepared with current
+<code>R CMD build</code>.
+</p>
+</li>
+<li> <p><code>checkFF()</code> (used by <code>R CMD check</code>) does a
+better job of detecting calls from other packages, including not
+reporting those where a function has been copied from another
+namespace (e.g., as a default method).  It now reports calls where
+<code>.NAME</code> is a symbol registered in another package.
+</p>
+</li>
+<li><p> On Unix-alike systems, <code>R CMD INSTALL</code> now installs packages
+group writably whenever the library (<code>lib.loc</code>) is group
+writable.  Hence, <code>update.packages()</code> works for other group
+members (suggested originally and from a patch by Dirk Eddelbuettel).
+</p>
+</li>
+<li> <p><code>R CMD javareconf</code> now supports the use of symbolic
+links for <span class="env">JAVA_HOME</span> on platforms which have
+<code>realpath</code>.  So it is now possible to
+use </p>
+<pre>R CMD javareconf JAVA_HOME=/usr/lib/jvm/java-1.7.0</pre>
+<p>on a Linux system and record that value rather than the
+frequently-changing full path such as
+&lsquo;<span class="file">/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64</span>&rsquo;.
+</p>
+</li>
+<li><p> (Windows only.) <code>Rscript -e</code> requires a non-empty
+argument for consistency with Unix versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.  (Also
+<code>Rterm -e</code> and <code>R -e</code>.)
+</p>
+</li>
+<li> <p><code>R CMD check</code> does more thorough checking of
+declared packages and namespaces.  It reports
+</p>
+
+<ul>
+<li><p> packages declared in more than one of the
+<span class="samp">Depends</span>, <span class="samp">Imports</span>, <span class="samp">Suggests</span> and
+<span class="samp">Enhances</span> fields of the &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file.
+</p>
+</li>
+<li><p> namespaces declared in <span class="samp">Imports</span> but not
+imported from, neither in the &lsquo;<span class="file">NAMESPACE</span>&rsquo; file nor using
+the <code>::</code> nor <code>:::</code> operators.
+</p>
+</li>
+<li><p> packages which are used in <code>library()</code> or
+<code>requires()</code> calls in the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code but were already put on
+the search path <em>via</em> <span class="samp">Depends</span>.
+</p>
+</li>
+<li><p> packages declared in <span class="samp">Depends</span> not imported
+<em>via</em> the &lsquo;<span class="file">NAMESPACE</span>&rsquo; file (except the standard
+packages).  Objects used from <span class="samp">Depends</span> packages should be
+imported to avoid conflicts and to allow correct operation when
+the namespace is loaded but not attached.
+</p>
+</li>
+<li><p> objects imported <em>via</em> <code>:::</code> calls where
+<code>::</code> would do.
+</p>
+</li>
+<li><p> objects imported by <code>::</code> which are not exported.
+</p>
+</li>
+<li><p> objects imported by <code>:::</code> calls which do not exist.
+</p>
+</li></ul>
+
+<p>See &lsquo;Writing R Extensions&rsquo; for good practice.
+</p>
+</li>
+<li> <p><code>R CMD check</code> optionally checks for non-standard
+top-level files and directories (which are often mistakes): this
+is enabled for <span class="option">--as-cran</span>.
+</p>
+</li>
+<li><p> LaTeX style file <code>upquote.sty</code> is no longer included
+(the version was several years old): it is no longer used in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+A much later version is commonly included in LaTeX distributions
+but does not play well with the <code>ae</code> fonts which are the
+default for Sweave vignettes.
+</p>
+</li>
+<li> <p><code>R CMD build</code> makes more use of the &lsquo;<span class="file">build</span>&rsquo;
+sub-directory of package sources, for example to record
+information about the vignettes.
+</p>
+</li>
+<li> <p><code>R CMD check</code> analyses <code>:::</code> calls.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION and INCLUDED SOFTWARE</h4>
+
+
+<ul>
+<li><p> The macros used for the texinfo manuals have been changed to
+work better with the incompatible changes made in <code>texinfo
+      5.x</code>.
+</p>
+</li>
+<li><p> The minimum version for a system <code>xz</code> library is now
+5.0.3 (was 4.999).  This is in part to avoid 5.0.2, which can
+compress in ways other versions cannot decompress.
+</p>
+</li>
+<li><p> The included version of PCRE has been updated to 8.33.
+</p>
+</li>
+<li><p> The included version of <code>zlib</code> has been updated to
+1.2.8, a bug-fix release.
+</p>
+</li>
+<li><p> The included version of xz utils's <code>liblzma</code> has been
+updated to 5.0.5.
+</p>
+</li>
+<li><p> Since <code>javareconf</code> (see above) is used when <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is
+installed, a stable link for <span class="env">JAVA_HOME</span> can be supplied then.
+</p>
+</li>
+<li><p> Configuring with <span class="option">--disable-byte-compilation</span> will
+override the &lsquo;<span class="file">DESCRIPTION</span>&rsquo; files of recommended packages,
+which typically require byte-compilation.
+</p>
+</li>
+<li><p> More of the installation and checking process will work even
+when <span class="env">TMPDIR</span> is set to a path containing spaces, but this is
+not recommended and external software (such as
+<code>texi2dvi</code>) may fail.
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li><p> Installation is aborted immediately if a <code>LinkingTo</code>
+package is not installed.
+</p>
+</li>
+<li> <p><code>R CMD INSTALL</code> has a new option
+<code>--no-byte-compile</code> which will override a <span class="samp">ByteCompile</span>
+field in the package's &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file.
+</p>
+</li>
+<li><p> License <span class="samp">BSD</span> is deprecated: use <span class="samp">BSD_3_clause</span>
+or <span class="samp">BSD_2_clause</span> instead.
+</p>
+<p>License <span class="samp">X11</span> is deprecated: use <span class="samp">MIT</span> or
+<span class="samp">BSD_2_clause</span> instead.
+</p>
+</li>
+<li><p> Version requirements for <code>LinkingTo</code> packages are now
+recognized: they are checked at installation.  (Fields with
+version requirements were previously silently ignored.)
+</p>
+</li>
+<li><p> The limit of 500 <code>S3method</code> entries in a
+<code>NAMESPACE</code> file has been removed.
+</p>
+</li>
+<li><p> The default &lsquo;version&rsquo; of Bioconductor for its
+packages has been changed to the upcoming <span class="samp">2.13</span>, but this
+can be set by the environment variable <span class="env">R_BIOC_VERSION</span> when
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is installed.
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li> <p>&lsquo;<span class="file">Rdefines.h</span>&rsquo; has been tweaked so it can be included in
+C++ code after &lsquo;<span class="file">R_ext/Boolean.h</span>&rsquo; (which is included by
+&lsquo;<span class="file">R.h</span>&rsquo;).
+</p>
+<p>Note that &lsquo;<span class="file">Rdefines.h</span>&rsquo; is not kept up-to-date, and
+&lsquo;<span class="file">Rinternals.h</span>&rsquo; is preferred for new code.
+</p>
+</li>
+<li> <p><code>eval</code> and <code>applyClosure</code> are now protected
+against package code supplying an invalid <code>rho</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li><p> The unused <code>namespace</code> argument to
+<code>package.skeleton()</code> is now formally deprecated and will be
+removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.1.0.
+</p>
+</li>
+<li> <p><code>plclust()</code> is deprecated: use the <code>plot()</code> method
+for class <code>"hclust"</code> instead.
+</p>
+</li>
+<li><p> Functions <code>readNEWS()</code> and <code>checkNEWS()</code> in
+package <span class="pkg">tools</span> are deprecated (and they have not worked with
+current &lsquo;<span class="file">NEWS</span>&rsquo; files for a long time).
+</p>
+</li></ul>
+
+
+
+
+<h4>DOCUMENTATION</h4>
+
+
+<ul>
+<li> <p>&lsquo;An Introduction to R&rsquo; has a new chapter on using <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+as a scripting language including interacting with the OS.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>help.request()</code> could not determine the current version
+of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> on CRAN.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15241">PR#15241</a>)
+</p>
+</li>
+<li><p> On Windows, <code>file.info()</code> failed on root directories unless
+the path was terminated with an explicit <code>"."</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15302">PR#15302</a>)
+</p>
+</li>
+<li><p> The <code>regmatches&lt;-()</code> replacement function mishandled
+results coming from <code>regexpr()</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15311">PR#15311</a>)
+</p>
+</li>
+<li><p> The help for <code>setClass()</code> and
+<code>representation()</code> still suggested the deprecated argument
+<code>representation=</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15312">PR#15312</a>)
+</p>
+</li>
+<li> <p><code>R CMD config</code> failed in an installed build of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+3.0.1 (only) when a sub-architecture was used.  (Reported by
+Berwin Turlach.)
+</p>
+</li>
+<li><p> On Windows, the installer modified the &lsquo;<span class="file">etc/Rconsole</span>&rsquo;
+and &lsquo;<span class="file">etc/Rprofile.site</span>&rsquo; files even when default options were
+chosen, so the MD5 sums did not refer to the installed versions.
+(Reported by Tal Galili.)
+</p>
+</li>
+<li> <p><code>plot(hclust(), cex =)</code> respects <code>cex</code> again
+(and possibly others similarly).  (Reported by Peter Langfelder.)
+</p>
+</li>
+<li><p> If multiple packages were checked by <code>R CMD check</code>,
+and one was written for a different OS, it would set
+<code>--no-install</code> for all following packages as well as
+itself.
+</p>
+</li>
+<li> <p><code>qr.coef()</code> and related functions did not properly coerce
+real vectors to complex when necessary.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15332">PR#15332</a>)
+</p>
+</li>
+<li> <p><code>ftable(a)</code> now fixes up empty <code>dimnames</code> such
+that the result is printable.
+</p>
+</li>
+<li> <p><code>package.skeleton()</code> was not starting its search for
+function objects in the correct place if <code>environment</code> was
+supplied.  (Reported by Karl Forner.)
+</p>
+</li>
+<li><p> Parsing code was changing the length field of vectors and
+confusing the memory manager.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15345">PR#15345</a>)
+</p>
+</li>
+<li><p> The Fortran routine <code>ZHER2K</code> in the reference BLAS
+had a comment-out bug in two places.
+This caused trouble with <code>eigen()</code> for Hermitian matrices.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15345">PR#15345</a> and report from Robin Hankin)
+</p>
+</li>
+<li> <p><code>vignette()</code> and <code>browseVignettes()</code> did not
+display non-Sweave vignettes properly.
+</p>
+</li>
+<li><p> Two warning/error messages have been corrected:
+the (optional) warning produced by a partial name match
+with a pairlist, the error message from a zero-length argument to
+the <code>:</code> operator.  (Found by Radford Neal; <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15358">PR#15358</a>,
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15356">PR#15356</a>)
+</p>
+</li>
+<li> <p><code>svd()</code> returned <code>NULL</code> rather than omitting
+components as documented.  (Found by Radford Neal; <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15360">PR#15360</a>)
+</p>
+</li>
+<li> <p><code>mclapply()</code> and <code>mcparallel()</code> with
+<code>silent = TRUE</code> could break a process that uses
+<code>stdout</code> output
+unguarded against broken pipes (e.g., <code>zip</code> will fail
+silently). To work around such issues, they now replace
+<code>stdout</code> with a descriptor pointed to &lsquo;<span class="file">/dev/null</span>&rsquo;
+instead. For this purpose, internal <code>closeStdout</code> and
+<code>closeStderr</code> functions have gained the <code>to.null</code> flag.
+</p>
+</li>
+<li> <p><code>log()</code>, <code>signif()</code> and <code>round()</code> now raise an
+error if a single named argument is not named <code>x</code>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15361">PR#15361</a>)
+</p>
+</li>
+<li> <p><code>deparse()</code> now deparses raw vectors in a form that
+is syntactically correct. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15369">PR#15369</a>)
+</p>
+</li>
+<li><p> The <code>jpeg</code> driver in Sweave created a JPEG file, but gave
+it a &lsquo;<span class="file">.png</span>&rsquo; extension. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15370">PR#15370</a>)
+</p>
+</li>
+<li><p> Deparsing of infix operators with named arguments is
+improved. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15350">PR#15350</a>)
+</p>
+</li>
+<li> <p><code>mget()</code>, <code>seq.int()</code> and <code>numericDeriv()</code>
+did not duplicate arguments properly. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15352">PR#15352</a>, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15353">PR#15353</a>,
+<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15354">PR#15354</a>)
+</p>
+</li>
+<li> <p><code>kmeans(algorithm = "Hartigan-Wong")</code> now always stops
+iterating in the QTran stage. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15364">PR#15364</a>).
+</p>
+</li>
+<li> <p><code>read.dcf()</code> re-allocated incorrectly and so could
+segfault when called on a file with lines of more than 100 bytes.
+</p>
+</li>
+<li><p> On systems where <code>mktime()</code> does not set <code>errno</code>,
+the last second before the epoch could not be converted from
+<code>POSIXlt</code> to <code>POSIXct</code>. (Reported by Bill Dunlap.)
+</p>
+</li>
+<li> <p><code>add1.glm()</code> miscalculated F-statistics when df &gt; 1. (Bill
+Dunlap, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15386">PR#15386</a>).
+</p>
+</li>
+<li> <p><code>stem()</code> now discards infinite inputs rather than
+hanging.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15376">PR#15376</a>)
+</p>
+</li>
+<li><p> The parser now enforces C99 syntax for floating point
+hexadecimal constants (e.g., <code>0x1.1p0</code>), rather than returning
+unintended values for malformed constants. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15234">PR#15234</a>)
+</p>
+</li>
+<li> <p><code>model.matrix()</code> now works with very long LHS
+names (more than 500 bytes).  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15377">PR#15377</a>)
+</p>
+</li>
+<li> <p><code>integrate()</code> reverts to the pre-2.12.0 behaviour: from
+2.12.0 to 3.0.1 it sometimes failed to achieve the requested
+tolerance and reported error estimates that were exceeded.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15219">PR#15219</a>)
+</p>
+</li>
+<li> <p><code>strptime()</code> now handles <span class="samp">%W</span> fields with value
+0. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15915">PR#15915</a>)
+</p>
+</li>
+<li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> is now better protected against people trying to interact
+with the console in startup code.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15325">PR#15325</a>)
+</p>
+</li>
+<li><p> Subsetting 1D arrays often lost dimnames (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15301">PR#15301</a>).
+</p>
+</li>
+<li><p> Unary <code>+</code> on a logical vector did not coerce to
+integer, although unary <code>-</code> did.
+</p>
+</li>
+<li> <p><code>na.omit()</code> and <code>na.exclude()</code> added a row
+to a zero-row data frame.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15399">PR#15399</a>)
+</p>
+</li>
+<li><p> All the (where necessary cut-down) vignettes are installed
+if <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> was configured with <span class="option">--without-recommended-packages</span>.
+</p>
+</li>
+<li> <p><code>source()</code> did not display filenames when reporting
+syntax errors.
+</p>
+</li>
+<li><p> Syntax error reports misplaced the caret pointing out the bad
+token.
+</p>
+</li>
+<li><p> (Windows only) Starting <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> with <code>R</code> (instead of
+<code>Rterm</code> or <code>Rgui</code>) would lose any
+zero-length strings from the command line arguments. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15406">PR#15406</a>)
+</p>
+</li>
+<li><p> Errors in the encoding specified on the command line via
+<code>--encoding=foo</code> were not handled properly.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15405">PR#15405</a>)
+</p>
+</li>
+<li><p> If <code>x</code> is a symbol, <code>is.vector(x, "name")</code> now
+returns <code>TRUE</code>, since <code>"name"</code> and <code>"symbol"</code>
+should be synonyms.  (Reported by Hervé Pagès.)
+</p>
+</li>
+<li> <p><code>R CMD rtags</code> works on platforms (such as OS X)
+with a XSI-conformant shell command <code>echo</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15231">PR#15231</a>)
+</p>
+</li>
+<li> <p><code>is.unsorted(NA)</code> returns false as documented (rather than
+<code>NA</code>).
+</p>
+</li>
+<li> <p><code>R CMD LINK</code> did not know about sub-architectures.
+</p>
+</li>
+<li> <p><code>system()</code> and <code>system2()</code> are better protected
+against users who misguidedly have spaces in the temporary
+directory path.
+</p>
+</li>
+<li> <p><code>file.show()</code> and <code>edit()</code> are now more likely to
+work on file paths containing spaces.  (Where external utilities
+are used, not the norm on Windows nor in <code>R.app</code> which
+should previously have worked.)
+</p>
+</li>
+<li><p> Packages using the <span class="pkg">methods</span> package are more likely to
+work when they import it but it is not attached.  (Several parts
+of its C code were looking for its <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> functions on the search path
+rather than in its namespace.)
+</p>
+</li>
+<li> <p><code>lgamma(-x)</code> is no longer <code>NaN</code> for very small x.
+</p>
+</li>
+<li><p> (Windows) <code>system2()</code> now respects specifying
+<code>stdout</code> and <code>stderr</code> as files if called from
+<code>Rgui</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15393">PR#15393</a>)
+</p>
+</li>
+<li><p> Closing an <code>x11()</code> device whilst <code>locator()</code> or
+<code>identify()</code> is in progress no longer hangs <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15253">PR#15253</a>)
+</p>
+</li>
+<li> <p><code>list.dirs(full.names = FALSE)</code> was not implemented.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15170">PR#15170</a>)
+</p>
+</li>
+<li> <p><code>format()</code> sometimes added unnecessary spaces.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15411">PR#15411</a>)
+</p>
+</li>
+<li> <p><code>all.equal(check.names = FALSE)</code> would ignore the request
+to ignore the names and would check them as attributes.
+</p>
+</li>
+<li><p> The symbol set by <code>tools::Rd2txt_options(itemBullet=)</code>
+was not respected in some locales. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15435">PR#15435</a>)
+</p>
+</li>
+<li> <p><code>mcMap()</code> was not exported by package
+<span class="pkg">parallel</span>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15439">PR#15439</a>)
+</p>
+</li>
+<li> <p><code>plot()</code> for <code>TukeyHSD</code> objects did not balance
+<code>dev.hold()</code> and <code>dev.flush()</code> calls on multi-page plots.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15449">PR#15449</a>)
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.0.1</h3>
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>chooseCRANmirror()</code> and <code>chooseBioCmirror()</code> gain
+an <code>ind</code> argument (like <code>setRepositories()</code>).
+</p>
+</li>
+<li> <p><code>mcparallel</code> has a new argument <code>mc.interactive</code>
+which can modify the interactive flag in the child process. The
+new default is <code>FALSE</code> which makes child processes
+non-interactive by default (this prevents lock-ups due to children
+waiting for interactive input).
+</p>
+</li>
+<li> <p><code>scan()</code> now warns when end-of-file occurs within
+a quoted string.
+</p>
+</li>
+<li> <p><code>count.fields()</code> is now consistent with <code>scan()</code>
+in its handling of newlines in quoted strings.  Instead of
+triggering an error, this results in the current line receiving
+<code>NA</code> as the field count, with the next line getting the total
+count of the two lines.
+</p>
+</li>
+<li><p> The default method of <code>image()</code> will plot axes of the
+class of <code>xlim</code> and <code>ylim</code> (and hence of <code>x</code> and
+<code>y</code> if there is a suitable <code>range()</code> method).  Based on
+a suggestion of Michael Sumner.
+</p>
+</li>
+<li> <p><code>load()</code> now has a <code>verbose</code> argument for
+debugging support, to print the names of objects just before
+loading them.
+</p>
+</li>
+<li><p> When loading a serialized object encounters a reference to a
+namespace which cannot be loaded, this is replaced by a reference
+to the global environment, with a warning.
+</p>
+</li>
+<li> <p><code>pairs()</code> gains a <code>line.main</code> option for title placement.
+</p>
+</li>
+<li><p> The remaining instances in which serialization to a raw
+vector was limited to 2GB have been unlimited on a 64-bit
+platform, and in most cases serialization to a vector of more than
+1GB will be substantially faster.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD config</code> now make use of personal
+&lsquo;<span class="file">Makevars</span>&rsquo; files under &lsquo;<span class="file">~/.R</span>&rsquo; and a site file
+&lsquo;<span class="file">Makevars.site</span>&rsquo;, in the same way as <code>R CMD SHLIB</code> and
+<code>R CMD INSTALL</code>.  This makes the utility more useful in
+package <code>configure</code> scripts.
+</p>
+<p>On Windows finding the personal files may require the environment
+variable <span class="env">HOME</span> set.
+</p>
+<p>The old behaviour can be obtained with the new options
+<span class="option">--no-user-files</span> and <span class="option">--no-site-files</span>.
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li><p> Alternatives to the site and user customization files
+&lsquo;<span class="file">Makevars.site</span>&rsquo; and &lsquo;<span class="file">~/.R/Makevars</span>&rsquo; can be specified
+<em>via</em> the environment variables <span class="env">R_MAKEVARS_SITE</span> and
+<span class="env">R_MAKEVARS_USER</span> respectively.  These can be used to suppress
+the use of the default files by setting an empty value (where
+possible) or a non-existent path.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li> <p><code>sys.source()</code> did not report error locations when
+<code>keep.source = TRUE</code>.
+</p>
+</li>
+<li> <p><code>as.POSIXct.numeric</code> was coercing <code>origin</code> using
+the <code>tz</code> argument and not <code>"GMT"</code> as documented
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14973">PR#14973</a>).
+</p>
+</li>
+<li><p> The active binding to assign fields in reference classes
+has been cleaned up to reduce dependence on the class' package
+environment, also fixing bug in initializing read-only fields
+(inspired by a report from Hadley Wickham).
+</p>
+</li>
+<li> <p><code>str(d)</code> no longer gives an error when <code>names(d)</code>
+contain illegal multibyte strings (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15247">PR#15247</a>).
+</p>
+</li>
+<li><p> Profiling of built-in functions with <code>line.profiling=
+      TRUE</code> did not record the line from which they were called.
+</p>
+</li>
+<li> <p><code>citation(pkg)</code> dropped the header and footer specified
+in the &lsquo;<span class="file">CITATION</span>&rsquo; file (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15257">PR#15257</a>).
+</p>
+</li>
+<li><p> Quotes were handled differently when reading the first line
+and reading the rest, so <code>read.table()</code> misread some files
+that contained quote characters (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15245">PR#15245</a>).
+</p>
+</li>
+<li> <p><code>cat()</code> with <code>sep</code> a character vector of length
+greater than one and more than one argument was using separators
+inconsistently (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15261">PR#15261</a>).
+</p>
+</li>
+<li><p> On Windows in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0, <code>savePlot()</code> failed because of
+an incorrect check on the argument count.
+</p>
+</li>
+<li> <p><code>unzip(list = TRUE)</code> returned <code>Names</code> as a factor
+and not a character vector (as documented) for the internal method.
+(Noticed by Sean O'Riordain.)
+</p>
+</li>
+<li> <p><code>contourLines()</code> now checks more comprehensively for
+conformance of its <code>x</code>, <code>y</code> and <code>z</code> arguments (it
+was used incorrectly in package <a href="https://CRAN.R-project.org/package=R2G2"><span class="pkg">R2G2</span></a>).
+</p>
+</li>
+<li><p> Saved graphics display lists are <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> version-specific.
+Attempting to load workspaces containing them (or some other
+version-specific objects) aborted the load in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0 and
+earlier; now it does a partial load and generates a warning
+instead.
+</p>
+</li>
+<li><p> In <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0, <code>identify()</code> and <code>locator()</code> did
+not record information correctly, so replaying a graph (e.g., by
+copying it to another device) would fail. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15271">PR#15271</a>)
+</p>
+</li>
+<li><p> Calling <code>file.copy()</code> or <code>dirname()</code> with the
+invalid input <code>""</code> (which was being used in packages, despite
+not being a file path) could have caused a segfault.
+</p>
+<p><code>dirname("")</code> is now <code>""</code> rather than <code>"."</code> (unless
+it segfaulted).
+</p>
+</li>
+<li> <p><code>supsmu()</code> could read/write outside its input vectors
+for very short inputs (seen in package <a href="https://CRAN.R-project.org/package=rms"><span class="pkg">rms</span></a> for <code>n = 4</code>).
+</p>
+</li>
+<li> <p><code>as.dendrogram()</code>'s <code>hclust</code> method uses less
+memory and hence gets considerably faster for large (n ~ 1000)
+clusterings, thanks to Daniel Müllner. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15174">PR#15174</a>)
+</p>
+</li>
+<li><p> The return value when all workers failed from
+<code>parallel::mclapply(mc.preschedule = TRUE)</code> was a list of
+strings and not of error objects.  (Spotted by Karl Forner and
+Bernd Bischl.)
+</p>
+</li>
+<li><p> In <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0, when <code>help()</code> found multiple pages with
+the same alias, the HTML display of all the selections was not
+produced.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15282">PR#15282</a>)
+</p>
+</li>
+<li> <p><code>splinefun(method="monoH.FC")</code> now produces a
+function with first argument named <code>x</code> and allows
+<code>deriv=3</code>, as documented. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15273">PR#15273</a>)
+</p>
+</li>
+<li> <p><code>summaryRprof()</code> would only read the first
+<code>chunksize</code> lines of an <code>Rprof</code> file produced with
+<code>line.profiling=TRUE</code>. By default, this is the first 100
+seconds.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15288">PR#15288</a>)
+</p>
+</li>
+<li> <p><code>lsfit()</code> produced an incorrect error message when
+argument <code>x</code> had more columns than rows or <code>x</code> had a
+different number of rows than <code>y</code>. (Spotted by Renaud Gaujoux.)
+</p>
+</li>
+<li><p> Binary operations on equal length vectors copied the
+class name from the second operand when the first had no
+class name, but did not set the object bit. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15299">PR#15299</a>)
+</p>
+</li>
+<li><p> The <code>trace()</code> method for reference generator objects
+failed after those objects became function definitions.
+</p>
+</li>
+<li> <p><code>write.table()</code> did not check that factors were
+constructed correctly, and so caused a segment fault when
+writing bad ones. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15300">PR#15300</a>)
+</p>
+</li>
+<li><p> The internal HTTP server no longer chokes on POST requests
+without body. It will also pass-through other request types for
+custom handlers (with the method stored in Request-Method header)
+instead of failing.
+</p>
+</li></ul>
+
+
+
+
+<h3><img src="../help/figures/../../html/Rlogo.svg" class="toplogo" alt="[R logo]" /> CHANGES IN R 3.0.0</h3>
+
+
+
+<h4>SIGNIFICANT USER-VISIBLE CHANGES</h4>
+
+
+<ul>
+<li><p> Packages need to be (re-)installed under this version
+(3.0.0) of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>.
+</p>
+</li>
+<li><p> There is a subtle change in behaviour for numeric index
+values <i>2^31</i> and larger.  These never used to be
+legitimate and so were treated as <code>NA</code>, sometimes with a
+warning.  They are now legal for long vectors so there is no
+longer a warning, and <code>x[2^31] &lt;- y</code> will now extend the
+vector on a 64-bit platform and give an error on a 32-bit one.
+</p>
+</li>
+<li><p> It is now possible for 64-bit builds to allocate amounts of
+memory limited only by the OS.  It may be wise to use OS
+facilities (e.g., <code>ulimit</code> in a <code>bash</code> shell,
+<code>limit</code> in <code>csh</code>), to set limits on overall memory
+consumption of an <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process, particularly in a multi-user
+environment.  A number of packages need a limit of at least 4GB of
+virtual memory to load.
+</p>
+<p>64-bit Windows builds of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> are by default limited in memory usage
+to the amount of RAM installed: this limit can be changed by
+command-line option <span class="option">--max-mem-size</span> or setting environment
+variable <span class="env">R_MAX_MEM_SIZE</span>.
+</p>
+</li>
+<li><p> Negative numbers for colours are consistently an error:
+previously they were sometimes taken as transparent, sometimes
+mapped into the current palette and sometimes an error.
+</p>
+</li></ul>
+
+
+
+
+<h4>NEW FEATURES</h4>
+
+
+<ul>
+<li> <p><code>identical()</code> has a new argument,
+<code>ignore.environment</code>, used when comparing functions (with
+default <code>FALSE</code> as before).
+</p>
+</li>
+<li><p> There is a new option, <code>options(CBoundsCheck=)</code>, which
+controls how <code>.C()</code> and <code>.Fortran()</code> pass arguments to
+compiled code.  If true (which can be enabled by setting the
+environment variable <span class="env">R_C_BOUNDS_CHECK</span> to <span class="samp">yes</span>), raw,
+integer, double and complex arguments are always copied, and
+checked for writing off either end of the array on return from the
+compiled code (when a second copy is made).  This also checks
+individual elements of character vectors passed to <code>.C()</code>.
+</p>
+<p>This is not intended for routine use, but can be very helpful in
+finding segfaults in package code.
+</p>
+</li>
+<li><p> In <code>layout()</code>, the limits on the grid size have been
+raised (again).
+</p>
+</li>
+<li><p> New simple <code>provideDimnames()</code> utility function.
+</p>
+</li>
+<li><p> Where methods for <code>length()</code> return a double value
+which is representable as an integer (as often happens for package
+<a href="https://CRAN.R-project.org/package=Matrix"><span class="pkg">Matrix</span></a>), this is converted to an integer.
+</p>
+</li>
+<li><p> Matrix indexing of data frames by two-column numeric indices
+is now supported for replacement as well as extraction.
+</p>
+</li>
+<li> <p><code>setNames()</code> now has a default for its <code>object</code>
+argument, useful for a character result.
+</p>
+</li>
+<li> <p><code>StructTS()</code> has a revised additive constant in the
+<code>loglik</code> component of the result: the previous definition is
+returned as the <code>loglik0</code> component.  However, the help page has
+always warned of a lack of comparability of log-likelihoods for
+non-stationary models.  (Suggested by Jouni Helske.)
+</p>
+</li>
+<li><p> The logic in <code>aggregate.formula()</code> has been revised.
+It is now possible to use a formula stored in a variable;
+previously, it had to be given explicitly in the function call.
+</p>
+</li>
+<li> <p><code>install.packages()</code> has a new argument <code>quiet</code> to
+reduce the amount of output shown.
+</p>
+</li>
+<li><p> Setting an element of the graphics argument <code>lwd</code> to a
+negative or infinite value is now an error.  Lines corresponding
+to elements with values <code>NA</code> or <code>NaN</code> are silently
+omitted.
+</p>
+<p>Previously the behaviour was device-dependent.
+</p>
+</li>
+<li><p> Setting graphical parameters <code>cex</code>, <code>col</code>,
+<code>lty</code>, <code>lwd</code> and <code>pch</code> in <code>par()</code> now requires a
+length-one argument.   Previously some silently took the first
+element of a longer vector, but not always when documented to do so.
+</p>
+</li>
+<li> <p><code>Sys.which()</code> when used with inputs which would be
+unsafe in a shell (e.g., absolute paths containing spaces) now uses
+appropriate quoting.
+</p>
+</li>
+<li> <p><code>as.tclObj()</code> has been extended to handle raw vectors.
+Previously, it only worked in the other direction.
+(Contributed by Charlie Friedemann, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14939">PR#14939</a>.)
+</p>
+</li>
+<li><p> New functions <code>cite()</code> and <code>citeNatbib()</code> have
+been added, to allow generation of in-text citations from
+<code>"bibentry"</code> objects.  A <code>cite()</code> function may be added
+to <code>bibstyle()</code> environments.
+</p>
+</li>
+<li><p> A <code>sort()</code> method has been added for <code>"bibentry"</code>
+objects.
+</p>
+</li>
+<li><p> The <code>bibstyle()</code> function now defaults to setting the
+default bibliography style. The <code>getBibstyle()</code> function
+has been added to report the name of the current default style.
+</p>
+</li>
+<li> <p><code>scatter.smooth()</code> now has an argument <code>lpars</code> to
+pass arguments to <code>lines()</code>.
+</p>
+</li>
+<li> <p><code>pairs()</code> has a new <code>log</code> argument, to allow some
+or all variables to be plotted on logarithmic scale.
+(In part, wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14919">PR#14919</a>.)
+</p>
+</li>
+<li> <p><code>split()</code> gains a <code>sep</code> argument.
+</p>
+</li>
+<li> <p><code>termplot()</code> does a better job when given a model with
+interactions (and no longer attempts to plot interaction terms).
+</p>
+</li>
+<li><p> The parser now incorporates code from Romain Francois'
+<a href="https://CRAN.R-project.org/package=parser"><span class="pkg">parser</span></a> package, to support more detailed computation on
+the code, such as syntax highlighting, comment-based
+documentation, etc.  Functions <code>getParseData()</code> and
+<code>getParseText()</code> access the data.
+</p>
+</li>
+<li><p> There is a new function <code>rep_len()</code> analogous to
+<code>rep.int()</code> for when speed is required (and names are not).
+</p>
+</li>
+<li><p> The undocumented use <code>rep(NULL, length.out = n)</code> for
+<code>n &gt; 0</code> (which returns <code>NULL</code>) now gives a warning.
+</p>
+</li>
+<li> <p><code>demo()</code> gains an <code>encoding</code> argument for those
+packages with non-ASCII demos: it defaults to the package encoding
+where there is one.
+</p>
+</li>
+<li> <p><code>strwrap()</code> converts inputs with a marked encoding to
+the current locale: previously it made some attempt to pass
+through as bytes inputs invalid in the current locale.
+</p>
+</li>
+<li><p> Specifying both <code>rate</code> and <code>scale</code> to
+<code>[dpqr]gamma</code> is a warning (if they are essentially the same
+value) or an error.
+</p>
+</li>
+<li> <p><code>merge()</code> works in more cases where the data frames
+include matrices.  (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14974">PR#14974</a>.)
+</p>
+</li>
+<li> <p><code>optimize()</code> and <code>uniroot()</code> no longer use a
+shared parameter object across calls.  (<code>nlm()</code>,
+<code>nlminb()</code> and <code>optim()</code> with numerical derivatives
+still do, as documented.)
+</p>
+</li>
+<li><p> The <code>all.equal()</code> method for date-times is now
+documented: times are regarded as equal (by default) if they
+differ by up to 1 msec.
+</p>
+</li>
+<li> <p><code>duplicated()</code> and <code>unique()</code> gain a <code>nmax</code>
+argument which can be used to make them much more efficient when
+it is known that there are only a small number of unique entries.
+This is done automatically for factors.
+</p>
+</li>
+<li><p> Functions <code>rbinom()</code>, <code>rgeom()</code>, <code>rhyper()</code>,
+<code>rpois()</code>, <code>rnbinom(),</code> <code>rsignrank()</code> and
+<code>rwilcox()</code> now return integer (not double) vectors.  This
+halves the storage requirements for large simulations.
+</p>
+</li>
+<li> <p><code>sort()</code>, <code>sort.int()</code> and <code>sort.list()</code> now
+use radix sorting for factors of less than 100,000 levels when
+<code>method</code> is not supplied.  So does <code>order()</code> if called
+with a single factor, unless <code>na.last = NA</code>.
+</p>
+</li>
+<li> <p><code>diag()</code> as used to generate a diagonal matrix has been
+re-written in C for speed and less memory usage.  It now forces
+the result to be numeric in the case <code>diag(x)</code> since it is
+said to have &lsquo;zero off-diagonal entries&rsquo;.
+</p>
+</li>
+<li> <p><code>backsolve()</code> (and <code>forwardsolve()</code>) are now
+internal functions, for speed and support for large matrices.
+</p>
+</li>
+<li><p> More matrix algebra functions (e.g., <code>chol()</code> and
+<code>solve()</code>) accept logical matrices (and coerce to numeric).
+</p>
+</li>
+<li> <p><code>sample.int()</code> has some support for  <i>n &gt;= 2^31</i>: see its help for the limitations.
+</p>
+<p>A different algorithm is used for <code>(n, size, replace = FALSE,
+	prob = NULL)</code> for <code>n &gt; 1e7</code> and <code>size &lt;= n/2</code>.  This
+is much faster and uses less memory, but does give different results.
+</p>
+</li>
+<li> <p><code>approxfun()</code> and <code>splinefun()</code> now return a
+wrapper to an internal function in the <span class="pkg">stats</span> namespace
+rather than a <code>.C()</code> or <code>.Call()</code> call.  This is more
+likely to work if the function is saved and used in a different
+session.
+</p>
+</li>
+<li><p> The functions <code>.C()</code>, <code>.Call()</code>,
+<code>.External()</code> and <code>.Fortran()</code> now give an error (rather
+than a warning) if called with a named first argument.
+</p>
+</li>
+<li> <p><code>Sweave()</code> by default now reports the locations in
+the source file(s) of each chunk.
+</p>
+</li>
+<li> <p><code>clearPushBack()</code> is now a documented interface to a
+long-existing internal call.
+</p>
+</li>
+<li> <p><code>aspell()</code> gains filters for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> code, Debian Control
+Format and message catalog files, and support for <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> level
+dictionaries.  In addition, package <span class="pkg">utils</span> now provides
+functions <code>aspell_package_R_files()</code> and
+<code>aspell_package_C_files()</code> for spell checking <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> and C level
+message strings in packages.
+</p>
+</li>
+<li> <p><code>bibentry()</code> gains some support for &ldquo;incomplete&rdquo;
+entries with a <span class="samp">crossref</span> field.
+</p>
+</li>
+<li> <p><code>gray()</code> and <code>gray.colors()</code> finally allow
+<code>alpha</code> to be specified.
+</p>
+</li>
+<li> <p><code>monthplot()</code> gains parameters to control the look of
+the reference lines.  (Suggestion of Ian McLeod.)
+</p>
+</li>
+<li><p> Added support for new <code>%~%</code> relation
+(&ldquo;is distributed as&rdquo;) in plotmath.
+</p>
+</li>
+<li> <p><code>domain = NA</code> is accepted by <code>gettext()</code> and
+<code>ngettext()</code>, analogously to <code>stop()</code> etc.
+</p>
+</li>
+<li> <p><code>termplot()</code> gains a new argument <code>plot = FALSE</code>
+which returns information to allow the plots to be modified for
+use as part of other plots, but does not plot them.
+(Contributed by Terry Therneau, <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15076">PR#15076</a>.)
+</p>
+</li>
+<li> <p><code>quartz.save()</code>, formerly an undocumented part of
+<code>R.app</code>, is now available to copy a device to a
+<code>quartz()</code> device.  <code>dev.copy2pdf()</code> optionally does
+this for PDF output: <code>quartz.save()</code> defaults to PNG.
+</p>
+</li>
+<li><p> The default method of <code>pairs()</code> now allows
+<code>text.panel = NULL</code> and the use of <code>&lt;foo&gt;.panel = NULL</code>
+is now documented.
+</p>
+</li>
+<li> <p><code>setRefClass()</code> and <code>getRefClass()</code> now return
+class generator functions, similar to <code>setClass()</code>, but
+still with the reference fields and methods as before
+(suggestion of Romain Francois).
+</p>
+</li>
+<li><p> New functions <code>bitwNot()</code>, <code>bitwAnd()</code>,
+<code>bitwOr()</code> and <code>bitwXor()</code>, using the internal
+interfaces previously used for classes <code>"octmode"</code> and
+<code>"hexmode"</code>.
+</p>
+<p>Also <code>bitwShiftL()</code> and <code>bitwShiftR()</code> for shifting bits
+in elements of integer vectors.
+</p>
+</li>
+<li><p> New option <code>"deparse.cutoff"</code> to control the deparsing
+of language objects such as calls and formulae when printing.
+(Suggested by a comment of Sarah Goslee.)
+</p>
+</li>
+<li> <p><code>colors()</code> gains an argument <code>distinct</code>.
+</p>
+</li>
+<li><p> New <code>demo(colors)</code> and <code>demo(hclColors)</code>, with
+utility functions.
+</p>
+</li>
+<li> <p><code>list.files()</code> (aka <code>dir()</code>) gains a new optional
+argument <code>no..</code> which allows to exclude <code>"."</code> and
+<code>".."</code> from listings.
+</p>
+</li>
+<li><p> Multiple time series are also of class <code>"matrix"</code>;
+consequently, <code>head()</code>, e.g., is more useful.
+</p>
+</li>
+<li> <p><code>encodeString()</code> preserves UTF-8 marked encodings.
+Thus if factor levels are marked as UTF-8 an attempt is made to
+print them in UTF-8 in <code>RGui</code> on Windows.
+</p>
+</li>
+<li> <p><code>readLines()</code> and <code>scan()</code> (and hence
+<code>read.table()</code>) in a UTF-8 locale now discard a UTF-8
+byte-order-mark (BOM).  Such BOMs are allowed but not recommended
+by the Unicode Standard: however Microsoft applications can
+produce them and so they are sometimes found on websites.
+</p>
+<p>The encoding name <code>"UTF-8-BOM"</code> for a connection will
+ensure that a UTF-8 BOM is discarded.
+</p>
+</li>
+<li> <p><code>mapply(FUN, a1, ..)</code> now also works when <code>a1</code> (or
+a further such argument) needs a <code>length()</code> method (which the
+documented arguments never do).  (Requested by Hervé Pagès; with a
+patch.)
+</p>
+</li>
+<li> <p><code>.onDetach()</code> is supported as an alternative to
+<code>.Last.lib</code>.  Unlike <code>.Last.lib</code>, this does not need to
+be exported from the package's namespace.
+</p>
+</li>
+<li><p> The <code>srcfile</code> argument to <code>parse()</code> may now be a
+character string, to be used in error messages.
+</p>
+</li>
+<li><p> The <code>format()</code> method for <code>ftable</code> objects gains
+a <code>method</code> argument, propagated to <code>write.ftable()</code> and
+<code>print()</code>, allowing more compact output, notably for LaTeX
+formatting, thanks to Marius Hofert.
+</p>
+</li>
+<li><p> The <code>utils::process.events()</code> function has been added
+to trigger immediate event handling.
+</p>
+</li>
+<li> <p><code>Sys.which()</code> now returns <code>NA</code> (not <code>""</code>) for
+<code>NA</code> inputs (related to <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15147">PR#15147</a>).
+</p>
+</li>
+<li><p> The <code>print()</code> method for class <code>"htest"</code> gives
+fewer trailing spaces (wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15124">PR#15124</a>).
+</p>
+<p>Also print output from <code>HoltWinters()</code>, <code>nls()</code> and others.
+</p>
+</li>
+<li> <p><code>loadNamespace()</code> allows a version specification to be
+given, and this is used to check version specifications given in
+the <span class="samp">Imports</span> field when a namespace is loaded.
+</p>
+</li>
+<li> <p><code>setClass()</code> has a new argument, <code>slots</code>, clearer
+and less ambiguous than <code>representation</code>.  It is recommended
+for future code, but should be back-compatible.  At the same time,
+the allowed slot specification is slightly more general.  See the
+documentation for details.
+</p>
+</li>
+<li> <p><code>mget()</code> now has a default for <code>envir</code> (the frame
+from which it is called), for consistency with <code>get()</code> and
+<code>assign()</code>.
+</p>
+</li>
+<li> <p><code>close()</code> now returns an integer status where available,
+invisibly. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15088">PR#15088</a>.)
+</p>
+</li>
+<li><p> The internal method of <code>tar()</code> can now store paths too
+long for the <span class="samp">ustar</span> format, using the (widely supported) GNU
+extension.  It can also store long link names, but these are much
+less widely supported.  There is support for larger files, up to
+the <span class="samp">ustar</span> limit of 8GB.
+</p>
+</li>
+<li><p> Local reference classes have been added to package
+<span class="pkg">methods</span>.  These are a technique for avoiding unneeded
+copying of large components of objects while retaining standard <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+functional behavior.  See <code>?LocalReferenceClasses</code>.
+</p>
+</li>
+<li> <p><code>untar()</code> has a new argument <code>restore_times</code> which
+if false (not the default) discards the times in the tarball.
+This is useful if they are incorrect (some tarballs submitted to
+<acronym><span class="acronym">CRAN</span></acronym> have times in a local time zone or many years in the
+past even though the standard required them to be in UTC).
+</p>
+</li>
+<li> <p><code>replayplot()</code> cannot (and will not attempt to) replay
+plots recorded under <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> &lt; 3.0.0.  It may crash the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session if
+an attempt is made to replay plots created in a different build of
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> &gt;= 3.0.0.
+</p>
+</li>
+<li><p> Palette changes get recorded on the display list, so
+replaying plots (including when resizing screen devices and using
+<code>dev.copy()</code>) will work better when the palette is changed
+during a plot.
+</p>
+</li>
+<li> <p><code>chol(pivot = TRUE)</code> now defaults to LAPACK, not LINPACK.
+</p>
+</li>
+<li><p> The <code>parse()</code> function has a new parameter
+<code>keep.source</code>, which defaults to <code>options("keep.source")</code>.
+</p>
+</li>
+<li><p> Profiling via <code>Rprof()</code> now optionally records information
+at the statement level, not just the function level.
+</p>
+</li>
+<li><p> The <code>Rprof()</code> function now quotes function names in
+in its output file on Windows, to be consistent with the quoting
+in Unix.
+</p>
+</li>
+<li><p> Profiling via <code>Rprof()</code> now optionally records
+information about time spent in GC.
+</p>
+</li>
+<li><p> The HTML help page for a package now displays non-vignette
+documentation files in a more accessible format.
+</p>
+</li>
+<li><p> To support <code>options(stringsAsFactors = FALSE)</code>,
+<code>model.frame()</code>, <code>model.matrix()</code> and
+<code>replications()</code> now automatically convert character
+vectors to factors without a warning.
+</p>
+</li>
+<li><p> The <code>print</code> method for objects of class <code>"table"</code>
+now detects tables with 0-extents and prints the results as, e.g.,
+<span class="samp">&lt; table of extent 0 x 1 x 2 &gt;</span>. (Wish of <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15198">PR#15198</a>.)
+</p>
+</li>
+<li><p> Deparsing involving calls to anonymous functions has been
+made closer to reversible by the addition of extra parentheses.
+</p>
+</li>
+<li><p> The function <code>utils::packageName()</code> has been added as
+a lightweight version of <code>methods::getPackageName()</code>.
+</p>
+</li>
+<li> <p><code>find.package(lib.loc = NULL)</code> now treats loaded
+namespaces preferentially in the same way as attached packages
+have been for a long time.
+</p>
+</li>
+<li><p> In Windows, the Change Directory dialog now defaults to
+the current working directory, rather than to the last directory
+chosen in that dialog.
+</p>
+</li>
+<li> <p><code>available.packages()</code> gains a
+<code>"license/restricts_use"</code> filter which retains only packages
+for which installation can proceed solely based on packages which
+are guaranteed not to restrict use.
+</p>
+</li>
+<li><p> New <code>check_packages_in_dir()</code> function in package
+<span class="pkg">tools</span> for conveniently checking source packages along with
+their reverse dependencies.
+</p>
+</li>
+<li><p> R's completion mechanism has been improved to handle help
+requests (starting with a question mark).  In particular, help
+prefixes are now supported, as well as quoted help topics.  To
+support this, completion inside quotes are now handled by R by
+default on all platforms.
+</p>
+</li>
+<li><p> The memory manager now allows the strategy used to balance
+garbage collection and memory growth to be controlled by setting
+the environment variable <span class="env">R_GC_MEM_GROW</span>. See <code>?Memory</code>
+for more details.
+</p>
+</li>
+<li><p> (&lsquo;For experts only&rsquo;, as the introductory manual
+says.)  The use of environment variables <span class="env">R_NSIZE</span> and
+<span class="env">R_VSIZE</span> to control the initial (= minimum) garbage
+collection trigger for number of cons cels and size of heap has
+been restored: they can be overridden by the command-line options
+<code>--min-nsize</code> and <code>--min-vsize</code>; see <code>?Memory</code>.
+</p>
+</li>
+<li><p> On Windows, the device name for bitmap devices as reported
+by <code>.Device</code> and <code>.Devices</code> no longer includes the file
+name.   This is for consistency with other platforms and was
+requested by the <a href="https://CRAN.R-project.org/package=lattice"><span class="pkg">lattice</span></a> maintainer.
+</p>
+<p><code>win.metafile()</code> still uses the file name: the exact form is
+used by package <a href="https://CRAN.R-project.org/package=tkrplot"><span class="pkg">tkrplot</span></a>.
+</p>
+</li>
+<li> <p><code>set.seed(NULL)</code> re-initializes <code>.Random.seed</code> as
+done at the beginning of the session if not already set.
+(Suggestion of Bill Dunlap.)
+</p>
+</li>
+<li><p> The <code>breaks</code> argument in <code>hist.default()</code> can now be
+a function that returns the breakpoints to be used (previously it
+could only return the suggested number of breakpoints).
+</p>
+</li>
+<li><p> File &lsquo;<span class="file">share/licenses/licenses.db</span>&rsquo; has some
+clarifications, especially as to which variants of &lsquo;BSD&rsquo;
+and &lsquo;MIT&rsquo; is intended and how to apply them to packages.
+The problematic licence &lsquo;Artistic-1.0&rsquo; has been removed.
+</p>
+</li></ul>
+
+
+
+
+<h4>LONG VECTORS</h4>
+
+<p>This section applies only to 64-bit platforms.
+</p>
+
+<ul>
+<li><p> There is support for vectors longer than <i>2^31
+      - 1</i> elements.  This applies to raw, logical, integer, double,
+complex and character vectors, as well as lists.  (Elements of
+character vectors remain limited to <i>2^31 - 1</i>
+bytes.)
+</p>
+</li>
+<li><p> Most operations which can sensibly be done with long vectors
+work: others may return the error &lsquo;long vectors not
+supported yet&rsquo;.  Most of these are because they explicitly work
+with integer indices (e.g., <code>anyDuplicated()</code> and
+<code>match()</code>) or because other limits (e.g., of character strings
+or matrix dimensions) would be exceeded or the operations would be
+extremely slow.
+</p>
+</li>
+<li> <p><code>length()</code> returns a double for long vectors, and
+lengths can be set to <i>2^31</i> or more by the
+replacement function with a double value.
+</p>
+</li>
+<li><p> Most aspects of indexing are available.  Generally
+double-valued indices can be used to access elements beyond
+<i>2^31 - 1</i>.
+</p>
+</li>
+<li><p> There is some support for matrices and arrays with each
+dimension less than <i>2^31</i> but total number of
+elements more than that.  Only some aspects of matrix algebra work
+for such matrices, often taking a very long time.  In other cases
+the underlying Fortran code has an unstated restriction (as was
+found for complex <code>svd()</code>).
+</p>
+</li>
+<li> <p><code>dist()</code> can produce dissimilarity objects for more
+than 65536 rows (but for example <code>hclust()</code> cannot process
+such objects).
+</p>
+</li>
+<li> <p><code>serialize()</code> to a raw vector is unlimited in size
+(except by resources).
+</p>
+</li>
+<li><p> The C-level function <code>R_alloc</code> can now allocate
+<i>2^35</i> or more bytes.
+</p>
+</li>
+<li> <p><code>agrep()</code> and <code>grep()</code> will return double vectors
+of indices for long vector inputs.
+</p>
+</li>
+<li><p> Many calls to <code>.C()</code> have been replaced by
+<code>.Call()</code> to allow long vectors to be supported (now or in
+the future).  Regrettably several packages had copied the non-API
+<code>.C()</code> calls and so failed.
+</p>
+</li>
+<li> <p><code>.C()</code> and <code>.Fortran()</code> do not accept long vector
+inputs.  This is a precaution as it is very unlikely that existing
+code will have been written to handle long vectors (and the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+wrappers often assume that <code>length(x)</code> is an integer).
+</p>
+</li>
+<li><p> Most of the methods for <code>sort()</code> work for long vectors.
+</p>
+<p><code>rank()</code>, <code>sort.list()</code> and <code>order()</code> support
+long vectors (slowly except for radix sorting).
+</p>
+</li>
+<li> <p><code>sample()</code> can do uniform sampling from a long vector.
+</p>
+</li></ul>
+
+
+
+
+<h4>PERFORMANCE IMPROVEMENTS</h4>
+
+
+<ul>
+<li><p> More use has been made of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> objects representing registered
+entry points, which is more efficient as the address is provided
+by the loader once only when the package is loaded.
+</p>
+<p>This has been done for packages <code>base</code>, <code>methods</code>,
+<code>splines</code> and <code>tcltk</code>: it was already in place for the
+other standard packages.
+</p>
+<p>Since these entry points are always accessed by the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> entry
+points they do not need to be in the load table which can be
+substantially smaller and hence searched faster.  This does mean
+that <code>.C</code> / <code>.Fortran</code> / <code>.Call</code> calls copied from
+earlier versions of <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> may no longer work &ndash; but they were never
+part of the API.
+</p>
+</li>
+<li><p> Many <code>.Call()</code> calls in package <span class="pkg">base</span> have been
+migrated to <code>.Internal()</code> calls.
+</p>
+</li>
+<li> <p><code>solve()</code> makes fewer copies, especially when <code>b</code>
+is a vector rather than a matrix.
+</p>
+</li>
+<li> <p><code>eigen()</code> makes fewer copies if the input has dimnames.
+</p>
+</li>
+<li><p> Most of the linear algebra functions make fewer copies when
+the input(s) are not double (e.g., integer or logical).
+</p>
+</li>
+<li><p> A foreign function call (<code>.C()</code> etc) in a package
+without a <code>PACKAGE</code> argument will only look in the first DLL
+specified in the &lsquo;<span class="file">NAMESPACE</span>&rsquo; file of the package rather than
+searching all loaded DLLs.  A few packages needed <code>PACKAGE</code>
+arguments added.
+</p>
+</li>
+<li><p> The <code>@&lt;-</code> operator is now implemented as a primitive,
+which should reduce some copying of objects when used.  Note that
+the operator object must now be in package <span class="pkg">base</span>: do not try
+to import it explicitly from package <span class="pkg">methods</span>.
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE INSTALLATION</h4>
+
+
+<ul>
+<li><p> The transitional support for installing packages without
+namespaces (required since <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0) has been removed.
+<code>R CMD build</code> will still add a namespace, but a
+<code>.First.lib()</code> function will need to be converted.
+</p>
+<p><code>R CMD INSTALL</code> no longer adds a namespace (so
+installation will fail), and a <code>.First.lib()</code> function in a
+package will be ignored (with an installation warning for now).
+</p>
+<p>As an exception, packages without a &lsquo;<span class="file">R</span>&rsquo; directory and no
+&lsquo;<span class="file">NAMESPACE</span>&rsquo; file can still be installed.
+</p>
+</li>
+<li><p> Packages can specify in their &lsquo;<span class="file">DESCRIPTION file</span>&rsquo; a line
+like </p>
+<pre>     Biarch: yes
+</pre>
+<p>to be installed on Windows with <span class="option">--force-biarch</span>.
+</p>
+</li>
+<li><p> Package vignettes can now be processed by other engines
+besides <code>Sweave</code>; see &lsquo;Writing R Extensions&rsquo; and the
+<code>tools::vignetteEngine</code> help topic for details.
+</p>
+</li>
+<li><p> The &lsquo;<span class="file">*.R</span>&rsquo; tangled source code for vignettes is now
+included in tarballs when <code>R CMD build</code> is used to produce
+them.  In <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 3.0.0, &lsquo;<span class="file">*.R</span>&rsquo; files not in the sources will be
+produced at install time, but eventually this will be dropped.
+</p>
+</li>
+<li><p> The package type <code>"mac.binary"</code> now looks in a path in
+the repository without any Mac subtype (which used to be
+<span class="samp">universal</span> or <span class="samp">leopard</span>): it looks in
+&lsquo;<span class="file">bin/macosx/contrib/3.0</span>&rsquo; rather than
+&lsquo;<span class="file">bin/macosx/leopard/contrib/2.15</span>&rsquo;).  This is the type used
+for the <acronym><span class="acronym">CRAN</span></acronym> binary distribution for OS X as from <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+3.0.0.
+</p>
+</li>
+<li><p> File &lsquo;<span class="file">etc/Makeconf</span>&rsquo; makes more use of the macros
+<code>$(CC)</code>, <code>$(CXX)</code>, <code>$(F77)</code> and <code>$(FC)</code>, so
+the compiler in use can be changed by setting just these (and if
+necessary the corresponding flags and <code>FLIBS</code>) in file
+&lsquo;<span class="file">~/.R/Makevars</span>&rsquo;.
+</p>
+<p>This is convenient for those working with binary distributions of
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>, e.g. on OS X.
+</p>
+</li></ul>
+
+
+
+
+<h4>UTILITIES</h4>
+
+
+<ul>
+<li> <p><code>R CMD check</code> now gives a warning rather than a
+note if it finds calls to <code>abort</code>, <code>assert</code> or
+<code>exit</code> in compiled code, and has been able to find the
+&lsquo;<span class="file">.o</span>&rsquo; file in which the calls occur.
+</p>
+<p>Such calls can terminate the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process which loads the package.
+</p>
+</li>
+<li><p> The location of the build and check environment files can
+now be specified by the environment variables
+<span class="env">R_BUILD_ENVIRON</span> and <span class="env">R_CHECK_ENVIRON</span>, respectively.
+</p>
+</li>
+<li> <p><code>R CMD Sweave</code> gains a <span class="option">--compact</span> option
+to control possibly reducing the size of the PDF file it creates
+when <span class="option">--pdf</span> is given.
+</p>
+</li>
+<li> <p><code>R CMD build</code> now omits Eclipse's &lsquo;<span class="file">.metadata</span>&rsquo;
+directories, and <code>R CMD check</code> warns if it finds them.
+</p>
+</li>
+<li> <p><code>R CMD check</code> now does some checks on functions
+defined within reference classes, including of <code>.Call()</code> etc
+calls.
+</p>
+</li>
+<li> <p><code>R CMD check --as-cran</code> notes assignments to the
+global environment, calls to <code>data()</code> which load into the
+global environment, and calls to <code>attach()</code>.
+</p>
+</li>
+<li> <p><code>R CMD build</code> by default uses the internal method of
+<code>tar()</code> to prepare the tarball.  This is more likely to
+produce a tarball compatible with <code>R CMD INSTALL</code> and
+<code>R CMD check</code>: an external <code>tar</code> program,
+including options, can be specified <em>via</em> the environment
+variable <span class="env">R_BUILD_TAR</span>.
+</p>
+</li>
+<li> <p><code>tools::massageExamples()</code> is better protected against
+packages which re-define base functions such as <code>cat()</code> and
+<code>get()</code> and so can cause <code>R CMD check</code> to fail when
+checking examples.
+</p>
+</li>
+<li> <p><code>R CMD javareconf</code> has been enhanced to be more
+similar to the code used by <code>configure</code>.
+</p>
+<p>There is now a test that a JNI program can be compiled (like
+<code>configure</code> did) and only working settings are used.
+</p>
+<p>It makes use of custom settings from configuration recorded in
+&lsquo;<span class="file">etc/javaconf</span>&rsquo;.
+</p>
+</li>
+<li><p> The <span class="option">--no-vignettes</span> argument of <code>R CMD
+	build</code> has been renamed to the more accurate
+<span class="option">--no-build-vignettes</span>: its action has always been to
+(re)build vignettes and never omitted them.
+</p>
+<p><code>R CMD check</code> accepts <span class="option">--no-build-vignettes</span> as a
+preferred synonym for <span class="option">--no-rebuild-vignettes</span>.
+</p>
+</li></ul>
+
+
+
+
+<h4>DEPRECATED AND DEFUNCT</h4>
+
+
+<ul>
+<li><p> The <code>ENCODING</code> argument to <code>.C()</code> is defunct.
+Use <code>iconv()</code> instead.
+</p>
+</li>
+<li><p> The <code>.Internal(eval.with.vis)</code> non-API function has
+been removed.
+</p>
+</li>
+<li><p> Support for the converters for use with <code>.C()</code> has been
+removed, including the oft misused non-API header
+&lsquo;<span class="file">R_ext/RConverters.h</span>&rsquo;.
+</p>
+</li>
+<li><p> The previously deprecated uses of <code>array()</code> with a
+0-length <code>dim</code> argument and <code>tapply()</code> with a 0-length
+<code>INDEX</code> list are now errors.
+</p>
+</li>
+<li> <p><span class="samp">Translation</span> packages are defunct.
+</p>
+</li>
+<li><p> Calling <code>rep()</code> or <code>rep.int()</code> on a pairlist or
+other non-vector object is now an error.
+</p>
+</li>
+<li><p> Several non-API entry points have been transferred to
+packages (e.g., <code>R_zeroin2</code>) or replaced by different non-API
+entry points (e.g., <code>R_tabulate</code>).
+</p>
+</li>
+<li><p> The &lsquo;internal&rsquo; graphics device invoked by
+<code>.Call("R_GD_nullDevice", package = "grDevices")</code> has
+been removed: use <code>pdf(file = NULL)</code> instead.
+</p>
+</li>
+<li><p> The <code>.Fortran()</code> entry point <code>"dqrls"</code> which has
+not been used by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> since version 2.15.1 is no longer available.
+</p>
+</li>
+<li><p> Functions <code>traceOn()</code> and <code>traceOff()</code> in package
+<span class="pkg">methods</span> are now defunct.
+</p>
+</li>
+<li><p> Function <code>CRAN.packages()</code> is finally defunct.
+</p>
+</li>
+<li><p> Use of <code>col2rgb(0)</code> is defunct: use <code>par("bg")</code> or
+<code>NA</code> instead.
+</p>
+</li>
+<li><p> The long-defunct functions <code>Rd_parse()</code>,
+<code>anovalist.lm()</code>, <code>categpry()</code>, <code>clearNames()</code>,
+<code>gammaCody()</code>, <code>glm.fit.null()</code>, <code>lm.fit.null()</code>,
+<code>lm.wfit.null()</code>, <code>manglePackageNames()</code>,
+<code>mauchley.test()</code>, <code>package.contents()</code>,
+<code>print.coefmat()</code>, <code>reshapeLong()</code>,
+<code>reshapeWide()</code>, <code>tkclose()</code>, <code>tkcmd()</code>,
+<code>tkfile.dir()</code>, <code>tkfile.tail()</code>, <code>tkopen()</code>,
+<code>tkputs()</code>, <code>tkread()</code>, <code>trySilent()</code> and
+<code>zip.file.extract()</code> have been removed entirely (but are
+still documented in the help system).
+</p>
+</li>
+<li><p> The unused <code>dataPath</code> argument to
+<code>attachNamespace()</code> has been removed.
+</p>
+</li>
+<li> <p><code>grid.prompt()</code> has been removed: use
+<code>devAskNewPage()</code> instead.
+</p>
+</li>
+<li><p> The long-deprecated <code>intensities</code> component is no
+longer returned by <code>hist()</code>.
+</p>
+</li>
+<li> <p><code>mean()</code> for data frames and <code>sd()</code> for data
+frames and matrices are defunct.
+</p>
+</li>
+<li> <p><code>chol(pivot = FALSE, LINPACK = TRUE)</code>,
+<code>ch2inv(LINPACK = TRUE)</code>, <code>eigen(EISPACK = TRUE)</code>,
+<code>solve(LINPACK = TRUE)</code> and <code>svd(LINPACK = TRUE)</code> are
+defunct: LAPACK will be used, with a warning.
+</p>
+</li>
+<li><p> The <code>keep.source</code> argument to <code>library()</code> and
+<code>require()</code> is defunct.  This option needs to be set
+at install time.
+</p>
+</li>
+<li><p> Documentation for <code>real()</code>, <code>as.real()</code> and
+<code>is.real()</code> has been moved to &lsquo;defunct&rsquo; and the
+functions removed.
+</p>
+</li>
+<li><p> The <code>maxRasters</code> argument of <code>pdf()</code> (unused since
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> 2.14.0) has been removed.
+</p>
+</li>
+<li><p> The unused <code>fontsmooth</code> argument has been removed from
+the <code>quartz()</code> device.
+</p>
+</li>
+<li><p> All the (non-API) EISPACK entry points in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> have been removed.
+</p>
+</li>
+<li> <p><code>chol(pivot = TRUE, LINPACK = TRUE)</code> is deprecated.
+</p>
+</li>
+<li><p> The long-deprecated use of <code>\synopsis</code> in the
+<span class="samp">Usage</span> section of &lsquo;<span class="file">.Rd</span>&rsquo; files will be removed in <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+3.1.0.
+</p>
+</li>
+<li> <p><code>.find.package()</code> and <code>.path.package()</code> are
+deprecated: only the public versions without the dot have ever
+been in the API.
+</p>
+</li>
+<li><p> In a package's &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file, </p>
+<pre>    License: X11</pre>
+<p>is deprecated, since it includes
+&lsquo;Copyright (C) 1996 X Consortium&rsquo; which cannot be
+appropriate for a current <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> package.  Use &lsquo;MIT&rsquo; or
+&lsquo;BSD_2_clause&rsquo; instead.
+</p>
+</li></ul>
+
+
+
+
+<h4>CODE MIGRATION</h4>
+
+
+<ul>
+<li><p> The C code underlying base graphics has been migrated to the
+<span class="pkg">graphics</span> package (and hence no longer uses
+<code>.Internal()</code> calls).
+</p>
+</li>
+<li><p> Most of the <code>.Internal()</code> calls used in the <span class="pkg">stats</span>
+package have been migrated to C code in that package.
+</p>
+<p>This means that a number of <code>.Internal()</code> calls which have
+been used by packages no longer exist, including
+<code>.Internal(cor)</code> <code>.Internal(cov)</code>,
+<code>.Internal(optimhess)</code> and <code>.Internal(update.formula)</code>.
+</p>
+</li>
+<li><p> Some <code>.External()</code> calls to the <code>base</code> package
+(really to the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> executable or shared library) have been moved to
+more appropriate packages.  Packages should not have been using
+such calls, but some did (mainly those used by <code>integrate()</code>).
+</p>
+</li></ul>
+
+
+
+
+<h4>PACKAGE parallel</h4>
+
+
+<ul>
+<li><p> There is a new function <code>mcaffinity()</code> which allows
+getting or setting the CPU affinity mask for the current <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> process on
+systems that supports this (currently only Linux has been tested
+successfully).  It has no effect on systems which do not support
+process affinity.  Users are not expected to use this function
+directly (with the exception of fixing libraries that break
+affinity settings like OpenBLAS) &ndash; the function is rather
+intended to support affinity control in high-level parallel
+functions.  In the future, <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> may supplement lack of affinity
+control in the OS by its own bookkeeping via <code>mcaffinity()</code>
+related to processes and threads it spawns.
+</p>
+</li>
+<li> <p><code>mcparallel()</code> has a new argument <code>mc.affinity</code>
+which attempts to set the affinity of the child process according
+to the specification contained therein.
+</p>
+</li>
+<li><p> The port used by socket clusters is chosen randomly: this
+should help to avoid clashes observed when two users of a
+multi-user machine try to create a cluster at the same time.  To
+reproduce the previous behaviour set environment variable
+<span class="env">R_PARALLEL_PORT</span> to <code>10187</code>.
+</p>
+</li></ul>
+
+
+
+
+<h4>C-LEVEL FACILITIES</h4>
+
+
+<ul>
+<li><p> There has been some minor re-organization of the non-API
+header files.  In particular, &lsquo;<span class="file">Rinternals.h</span>&rsquo; no longer
+includes the non-API header &lsquo;<span class="file">R_exts/PrtUtil.h</span>&rsquo;, and that no
+longer includes &lsquo;<span class="file">R_exts/Print.h</span>&rsquo;.
+</p>
+</li>
+<li><p> Passing <code>NULL</code> to <code>.C()</code> is now an error.
+</p>
+</li>
+<li> <p><code>.C()</code> and <code>.Fortran()</code> now warn if
+<code>"single"</code> arguments are used with <code>DUP = FALSE</code>, as
+changes to such arguments are not returned to the caller.
+</p>
+</li>
+<li><p> C entry points <code>R_qsort</code> and <code>R_qsort_I</code> now have
+<code>start</code> and <code>end</code> as <code>size_t</code> to allow them to work
+with longer vectors on 64-bit platforms.  Code using them should
+be recompiled.
+</p>
+</li>
+<li><p> A few recently added C entry points were missing the
+remapping to <code>Rf_</code>, notably <code>[dpq]nbinom_mu</code>.
+</p>
+</li>
+<li><p> Some of the interface pointers formerly available only to
+<code>R.app</code> are now available to front-ends on all
+Unix-alikes: one has been added for the interface to
+<code>View()</code>.
+</p>
+</li>
+<li> <p><code>PACKAGE = ""</code> is now an error in <code>.C()</code> etc calls:
+it was always contrary to the documentation.
+</p>
+</li>
+<li><p> Entry point <code>rcont2</code> has been migrated to package
+<span class="pkg">stats</span> and so is no longer available.
+</p>
+</li>
+<li> <p><code>R_SVN_REVISION</code> in &lsquo;<span class="file">Rversion.h</span>&rsquo; is now an integer
+(rather than a string) and hence usable as e.g.
+<code>#if R_SVN_REVISION &lt; 70000</code>.
+</p>
+</li>
+<li><p> The entry points <code>rgb2hsv</code> and <code>hsv2rgb</code> have been
+migrated to package <span class="pkg">grDevices</span> and so are no longer available.
+</p>
+</li>
+<li> <p><code>R_GE_version</code> has been increased to <code>10</code> and
+<code>name2col</code> removed (use <code>R_GE_str2col</code> instead).  <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+internal colour codes are now defined using the typedef
+<code>rcolor</code>.
+</p>
+</li>
+<li><p> The <code>REPROTECT</code> macro now checks that the protect index
+is valid.
+</p>
+</li>
+<li><p> Several non-API entry points no longer used by <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> have been
+removed, including the Fortran entry points <code>chol</code>,
+<code>chol2inv</code>, <code>cg</code>, <code>ch</code> and <code>rg</code>, and the C
+entry points <code>Brent_fmin</code>, <code>fft_factor</code> and <code>fft_work</code>.
+</p>
+</li>
+<li><p> If a <code>.External</code> call is registered with a number of
+arguments (other than <code>-1</code>), the number of arguments passed
+is checked for each call (as for other foreign function calls).
+</p>
+</li>
+<li><p> It is now possible to write custom connection
+implementations outside core R using &lsquo;<span class="file">R_ext/Connections.h</span>&rsquo;.
+Please note that the implementation of connections is still
+considered internal and may change in the future (see the above
+file for details).
+</p>
+</li></ul>
+
+
+
+
+<h4>INTERNATIONALIZATION</h4>
+
+
+<ul>
+<li><p> The management of translations has been converted to <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span>
+code: see <code>?tools::update_pkg_po</code>.
+</p>
+</li>
+<li><p> The translations for the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> interpreter and
+<code>RGui.exe</code> are now part of the <span class="pkg">base</span> package (rather than
+having sources in directory &lsquo;<span class="file">po</span>&rsquo; and being installed to
+&lsquo;<span class="file">share/locale</span>&rsquo;).  Thus the <span class="pkg">base</span> package supports three
+translation domains, <code>R-base</code>, <code>R</code> and <code>RGui</code>.
+</p>
+</li>
+<li><p> The compiled translations which ship with <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> are all
+installed to the new package <span class="pkg">translations</span> for easier
+updating.  The first package of that name found on
+<code>.libPaths()</code> at the start of the <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> session will be used.
+(It is possible messages will be used before <code>.libPaths()</code> is
+set up in which case the default translations will be used: set
+environment variable <span class="env">R_TRANSLATIONS</span> to point to the location
+of the intended <span class="pkg">translations</span> package to use this right from
+the start.)
+</p>
+</li>
+<li><p> The translations form a separate group in the Windows
+installer, so can be omitted if desired.
+</p>
+</li>
+<li><p> The markup for many messages has been changed to make them
+easier to translate, incorporating suggestions from Łukasz Daniel.
+</p>
+</li></ul>
+
+
+
+
+<h4>INSTALLATION</h4>
+
+
+<ul>
+<li><p> There is again support for building without using the C
+&lsquo;long double&rsquo; type.  This is required by C99, but system
+implementations can be slow or flawed.  Use <code>configure</code>
+option <span class="option">--disable-long-double</span>.
+</p>
+</li>
+<li> <p><code>make pdf</code> and <code>make install-pdf</code> now make
+and install the full reference index (including all base and
+recommended packages).
+</p>
+</li>
+<li><p> The 'reference manual' on the Windows GUI menu and included
+in the installer is now the full reference index, including all
+base and recommended packages.
+</p>
+</li>
+<li> <p><span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> help pages and manuals have no ISBNs because ISBN
+rules no longer allow constantly changing content to be assigned
+an ISBN.
+</p>
+</li>
+<li><p> The Windows installer no longer installs a Start Menu
+link to the static help pages; as most pages are generated
+dynamically, this led to a lot of broken links.
+</p>
+</li>
+<li><p> Any custom settings for Java configuration are recorded in
+file &lsquo;<span class="file">etc/javaconf</span>&rsquo; for subsequent use by <code>R CMD
+	javareconf</code>.
+</p>
+</li>
+<li><p> There is now support for <code>makeinfo</code> version 5.0
+(which requires a slightly different &lsquo;<span class="file">.texi</span>&rsquo; syntax).
+</p>
+</li>
+<li><p> The minimum versions for <span class="option">--use-system-zlib</span> and
+<code>--use-system-pcre</code> are now tested as 1.2.5 and 8.10
+respectively.
+</p>
+</li>
+<li><p> On Windows, the stack size is reduced to 16MB on 32-bit
+systems: misguided users were launching many threads without
+controlling the stack size.
+</p>
+</li>
+<li> <p><code>configure</code> no longer looks for file
+&lsquo;<span class="file">~/.Rconfig</span>&rsquo;: &lsquo;<span class="file">~/.R/config</span>&rsquo; has long been preferred.
+</p>
+</li></ul>
+
+
+
+
+<h4>BUG FIXES</h4>
+
+
+<ul>
+<li><p> When <code>R CMD build</code> is run in an encoding other than
+the one specified in the package's &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file it
+tries harder to expand the <code>authors@R</code> field in the specified
+encoding.  (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=14958">PR#14958</a>)
+</p>
+</li>
+<li><p> If <code>R CMD INSTALL</code> is required to expand the
+<code>authors@R</code> field of the &lsquo;<span class="file">DESCRIPTION</span>&rsquo; file, it tries
+harder to do so in the encoding specified for the package (rather
+than using ASCII escapes).
+</p>
+</li>
+<li><p> Fix in package <span class="pkg">grid</span> for pushing a viewport into a
+layout cell, where the layout is within a viewport that has zero
+physical width OR where the layout has zero total relative width
+(likewise for height).  The layout column widths (or row heights)
+in this case were being calculated with non-finite values.
+(Reported by Winston Chang.)
+</p>
+</li>
+<li> <p><code>solve(A, b)</code> for a vector <code>b</code> gave the answer
+names from <code>colnames(A)</code> for <code>LINPACK = TRUE</code> but not in
+the default case.
+</p>
+</li>
+<li> <p><code>La.svd()</code> accepts logical matrices (as documented, and
+as <code>svd()</code> did).
+</p>
+</li>
+<li> <p><code>legend()</code> now accepts negative <code>pch</code> values, in
+the same way <code>points()</code> long has.
+</p>
+</li>
+<li><p> Parse errors when installing files now correctly display
+the name of the file containing the bad code.
+</p>
+</li>
+<li><p> In Windows, tcltk windows were not always properly constructed.
+(<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15150">PR#15150</a>)
+</p>
+</li>
+<li><p> The internal functions implementing <code>parse()</code>,
+<code>tools::parseLatex()</code> and <code>tools::parse_Rd()</code> were not
+reentrant, leading to errors in rare circumstances such as a
+garbage collection triggering a recursive call.
+</p>
+</li>
+<li><p> Field assignments in reference class objects via
+<code>$&lt;-</code> were not being checked
+because the magic incantation to turn methods on for that
+primitive operator had been inadvertently omitted. 
+</p>
+</li>
+<li> <p><code>setHook(hookname, value, action="replace")</code> set the
+hook to be the value, rather than a list containing the value as
+documented. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15167">PR#15167</a>)
+</p>
+</li>
+<li><p>  If a package used a &lsquo;<span class="file">NEWS.Rd</span>&rsquo; file, the main HTML
+package index page did not link to it.  (Reported by Dirk
+Eddelbuettel.)
+</p>
+</li>
+<li><p> The primitive implementation of <code>@&lt;-</code> was not
+checking the class of the replacement.  It now does a check,
+quicker but less general than <code>slot&lt;-</code>. See the help.
+</p>
+</li>
+<li> <p><code>split(x, f)</code> now recycles classed objects <code>x</code> in
+the same way as vectors.  (Reported by Martin Morgan.)
+</p>
+</li>
+<li> <p><code>pbeta(.28, 1/2, 2200, lower.tail=FALSE, log.p=TRUE)</code>
+is no longer <code>-Inf</code>; ditto for corresponding <code>pt()</code> and
+<code>pf()</code> calls, such as <code>pt(45, df=5000, lower.tail=FALSE,
+	log.p=TRUE)</code>. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15162">PR#15162</a>)
+</p>
+</li>
+<li><p> The Windows graphics device would crash <span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> if a user
+attempted to load the graphics history from a variable that was
+not a saved history. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15230">PR#15230</a>)
+</p>
+</li>
+<li><p> The workspace size for the <code>predict()</code>
+method for <code>loess()</code> could exceed the maximum integer size.
+(Reported by Hiroyuki Kawakatsu.)
+</p>
+</li>
+<li> <p><code>ftable(x, row.vars, col.vars)</code> now also works when the
+<code>*.vars</code> arguments are (integer or character vectors) of
+length zero.
+</p>
+</li>
+<li><p> Calling <code>cat()</code> on a malformed UTF-8 string could cause
+the Windows GUI to lock up. (<a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=15227">PR#15227</a>)
+</p>
+</li>
+<li> <p><code>removeClass(cc)</code> gave &quot;node stack overflow&quot; for some
+class definitions containing <code>"array"</code> or <code>"matrix"</code>.
+</p>
+</li></ul>
+
+
+
+
+<h3>CHANGES in previous versions</h3>
+
+
+<ul>
+<li><p> Older news can be found in text format in files
+<a href="../NEWS.0">NEWS.0</a>, <a href="../NEWS.1">NEWS.1</a>
+and <a href="../NEWS.2">NEWS.2</a>
+in the &lsquo;<span class="file">doc</span>&rsquo; directory.  News in HTML format for
+<span style="font-family: Courier New, Courier; color: #666666;"><b>R</b></span> versions from 2.10.0 to 2.15.3 is in
+<a href="NEWS.2.html">NEWS.2.html</a>.
+</p>
+</li></ul>
+
+
+
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/NEWS.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/logo.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/logo.jpg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/Rlogo.svg
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/Rlogo.svg	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/Rlogo.svg	(revision 2476)
@@ -0,0 +1,33 @@
+<!--
+Copyright (C) 2015-2016 The R Foundation
+
+You can distribute this logo under the terms of the Creative
+Commons Attribution-ShareAlike 4.0 International license (CC-BY-SA
+4.0) or (at your option) the GNU General Public License version 2
+(GPL-2).
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, a copy is available at
+https://www.R-project.org/Licenses/
+
+The text of the CC BY-SA 4.0 license is available at
+https://creativecommons.org/licenses/by-sa/4.0/
+-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid" width="724" height="561" viewBox="0 0 724 561">
+  <defs>
+    <linearGradient id="gradientFill-1" x1="0" x2="1" y1="0" y2="1" gradientUnits="objectBoundingBox" spreadMethod="pad">
+      <stop offset="0" stop-color="rgb(203,206,208)" stop-opacity="1"/>
+      <stop offset="1" stop-color="rgb(132,131,139)" stop-opacity="1"/>
+    </linearGradient>
+    <linearGradient id="gradientFill-2" x1="0" x2="1" y1="0" y2="1" gradientUnits="objectBoundingBox" spreadMethod="pad">
+      <stop offset="0" stop-color="rgb(39,109,195)" stop-opacity="1"/>
+      <stop offset="1" stop-color="rgb(22,92,170)" stop-opacity="1"/>
+    </linearGradient>
+  </defs>
+  <path d="M361.453,485.937 C162.329,485.937 0.906,377.828 0.906,244.469 C0.906,111.109 162.329,3.000 361.453,3.000 C560.578,3.000 722.000,111.109 722.000,244.469 C722.000,377.828 560.578,485.937 361.453,485.937 ZM416.641,97.406 C265.289,97.406 142.594,171.314 142.594,262.484 C142.594,353.654 265.289,427.562 416.641,427.562 C567.992,427.562 679.687,377.033 679.687,262.484 C679.687,147.971 567.992,97.406 416.641,97.406 Z" fill="url(#gradientFill-1)" fill-rule="evenodd"/>
+  <path d="M550.000,377.000 C550.000,377.000 571.822,383.585 584.500,390.000 C588.899,392.226 596.510,396.668 602.000,402.500 C607.378,408.212 610.000,414.000 610.000,414.000 L696.000,559.000 L557.000,559.062 L492.000,437.000 C492.000,437.000 478.690,414.131 470.500,407.500 C463.668,401.969 460.755,400.000 454.000,400.000 C449.298,400.000 420.974,400.000 420.974,400.000 L421.000,558.974 L298.000,559.026 L298.000,152.938 L545.000,152.938 C545.000,152.938 657.500,154.967 657.500,262.000 C657.500,369.033 550.000,377.000 550.000,377.000 ZM496.500,241.024 L422.037,240.976 L422.000,310.026 L496.500,310.002 C496.500,310.002 531.000,309.895 531.000,274.877 C531.000,239.155 496.500,241.024 496.500,241.024 Z" fill="url(#gradientFill-2)" fill-rule="evenodd"/>
+</svg>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/packages.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/packages.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/packages.html	(revision 2476)
@@ -0,0 +1,79 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><title>R: Package Index</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="R.css">
+</head><body>
+<h1>Package Index <img class="toplogo" src="Rlogo.svg" alt="[R logo]"></h1>
+
+<hr>
+
+<div align="center">
+<a href="index.html"><img class="arrow" src="up.jpg" alt="[Top]"></a>
+</div>
+
+<p><h3 id="lib-1">Packages in the standard library</h3>
+<p><table width="100%" summary="R Package list">
+<tr align="left" valign="top" id="lib-base">
+<td width="25%"><a href="../../library/base/html/00Index.html">base</a></td><td>The R Base Package</td></tr>
+<tr align="left" valign="top" id="lib-boot">
+<td width="25%"><a href="../../library/boot/html/00Index.html">boot</a></td><td>Bootstrap Functions (Originally by Angelo Canty for S)</td></tr>
+<tr align="left" valign="top" id="lib-class">
+<td width="25%"><a href="../../library/class/html/00Index.html">class</a></td><td>Functions for Classification</td></tr>
+<tr align="left" valign="top" id="lib-cluster">
+<td width="25%"><a href="../../library/cluster/html/00Index.html">cluster</a></td><td>"Finding Groups in Data": Cluster Analysis Extended Rousseeuw et
+al.</td></tr>
+<tr align="left" valign="top" id="lib-codetools">
+<td width="25%"><a href="../../library/codetools/html/00Index.html">codetools</a></td><td>Code Analysis Tools for R</td></tr>
+<tr align="left" valign="top" id="lib-compiler">
+<td width="25%"><a href="../../library/compiler/html/00Index.html">compiler</a></td><td>The R Compiler Package</td></tr>
+<tr align="left" valign="top" id="lib-datasets">
+<td width="25%"><a href="../../library/datasets/html/00Index.html">datasets</a></td><td>The R Datasets Package</td></tr>
+<tr align="left" valign="top" id="lib-foreign">
+<td width="25%"><a href="../../library/foreign/html/00Index.html">foreign</a></td><td>Read Data Stored by Minitab, S, SAS, SPSS, Stata, Systat, Weka,
+dBase, ...</td></tr>
+<tr align="left" valign="top" id="lib-graphics">
+<td width="25%"><a href="../../library/graphics/html/00Index.html">graphics</a></td><td>The R Graphics Package</td></tr>
+<tr align="left" valign="top" id="lib-grDevices">
+<td width="25%"><a href="../../library/grDevices/html/00Index.html">grDevices</a></td><td>The R Graphics Devices and Support for Colours and Fonts</td></tr>
+<tr align="left" valign="top" id="lib-grid">
+<td width="25%"><a href="../../library/grid/html/00Index.html">grid</a></td><td>The Grid Graphics Package</td></tr>
+<tr align="left" valign="top" id="lib-KernSmooth">
+<td width="25%"><a href="../../library/KernSmooth/html/00Index.html">KernSmooth</a></td><td>Functions for Kernel Smoothing Supporting Wand & Jones (1995)</td></tr>
+<tr align="left" valign="top" id="lib-lattice">
+<td width="25%"><a href="../../library/lattice/html/00Index.html">lattice</a></td><td>Trellis Graphics for R</td></tr>
+<tr align="left" valign="top" id="lib-MASS">
+<td width="25%"><a href="../../library/MASS/html/00Index.html">MASS</a></td><td>Support Functions and Datasets for Venables and Ripley's MASS</td></tr>
+<tr align="left" valign="top" id="lib-Matrix">
+<td width="25%"><a href="../../library/Matrix/html/00Index.html">Matrix</a></td><td>Sparse and Dense Matrix Classes and Methods</td></tr>
+<tr align="left" valign="top" id="lib-methods">
+<td width="25%"><a href="../../library/methods/html/00Index.html">methods</a></td><td>Formal Methods and Classes</td></tr>
+<tr align="left" valign="top" id="lib-mgcv">
+<td width="25%"><a href="../../library/mgcv/html/00Index.html">mgcv</a></td><td>Mixed GAM Computation Vehicle with GCV/AIC/REML Smoothness
+Estimation</td></tr>
+<tr align="left" valign="top" id="lib-nlme">
+<td width="25%"><a href="../../library/nlme/html/00Index.html">nlme</a></td><td>Linear and Nonlinear Mixed Effects Models</td></tr>
+<tr align="left" valign="top" id="lib-nnet">
+<td width="25%"><a href="../../library/nnet/html/00Index.html">nnet</a></td><td>Feed-Forward Neural Networks and Multinomial Log-Linear Models</td></tr>
+<tr align="left" valign="top" id="lib-parallel">
+<td width="25%"><a href="../../library/parallel/html/00Index.html">parallel</a></td><td>Support for Parallel computation in R</td></tr>
+<tr align="left" valign="top" id="lib-rpart">
+<td width="25%"><a href="../../library/rpart/html/00Index.html">rpart</a></td><td>Recursive Partitioning and Regression Trees</td></tr>
+<tr align="left" valign="top" id="lib-spatial">
+<td width="25%"><a href="../../library/spatial/html/00Index.html">spatial</a></td><td>Functions for Kriging and Point Pattern Analysis</td></tr>
+<tr align="left" valign="top" id="lib-splines">
+<td width="25%"><a href="../../library/splines/html/00Index.html">splines</a></td><td>Regression Spline Functions and Classes</td></tr>
+<tr align="left" valign="top" id="lib-stats">
+<td width="25%"><a href="../../library/stats/html/00Index.html">stats</a></td><td>The R Stats Package</td></tr>
+<tr align="left" valign="top" id="lib-stats4">
+<td width="25%"><a href="../../library/stats4/html/00Index.html">stats4</a></td><td>Statistical Functions using S4 Classes</td></tr>
+<tr align="left" valign="top" id="lib-survival">
+<td width="25%"><a href="../../library/survival/html/00Index.html">survival</a></td><td>Survival Analysis</td></tr>
+<tr align="left" valign="top" id="lib-tcltk">
+<td width="25%"><a href="../../library/tcltk/html/00Index.html">tcltk</a></td><td>Tcl/Tk Interface</td></tr>
+<tr align="left" valign="top" id="lib-tools">
+<td width="25%"><a href="../../library/tools/html/00Index.html">tools</a></td><td>Tools for Package Development</td></tr>
+<tr align="left" valign="top" id="lib-utils">
+<td width="25%"><a href="../../library/utils/html/00Index.html">utils</a></td><td>The R Utils Package</td></tr>
+</table>
+
+</body></html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/packages.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/R.css
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/R.css	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/R.css	(revision 2476)
@@ -0,0 +1,97 @@
+body {
+    background: white;
+    color: black;
+}
+
+a:link {
+    background: white;
+    color: blue;
+}
+
+a:visited {
+    background: white;
+    color: rgb(50%, 0%, 50%);
+}
+
+h1 {
+    background: white;
+    color: rgb(55%, 55%, 55%);
+    font-family: monospace;
+    font-size: x-large;
+    text-align: center;
+}
+
+h2 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+    text-align: center;
+}
+
+h3 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-size: large;
+}
+
+h4 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+    font-size: large;
+}
+
+h5 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+}
+
+h6 {
+    background: white;
+    color: rgb(40%, 40%, 40%);
+    font-family: monospace;
+    font-style: italic;
+}
+		
+img.toplogo {
+    width: 4em;
+    vertical-align: middle;
+}
+
+img.arrow {
+    width: 30px;
+    height: 30px;
+    border: 0;
+}
+
+span.acronym {
+    font-size: small;
+}
+
+span.env {
+    font-family: monospace;
+}
+
+span.file {
+    font-family: monospace;
+}
+
+span.option{
+    font-family: monospace;
+}
+
+span.pkg {
+    font-weight: bold;
+}
+
+span.samp{
+    font-family: monospace;
+}
+
+div.vignettes a:hover {
+    background: rgb(85%, 85%, 85%);
+}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/R.css
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/Rlogo.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/Rlogo.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/right.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/right.jpg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/favicon.ico
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/favicon.ico
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/up.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/up.jpg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/packages-head-utf8.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/packages-head-utf8.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/packages-head-utf8.html	(revision 2476)
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><title>R: Package Index</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<link rel="stylesheet" type="text/css" href="R.css">
+</head><body>
+<h1>Package Index <img class="toplogo" src="Rlogo.svg" alt="[R logo]"></h1>
+
+<hr>
+
+<div align="center">
+<a href="index.html"><img class="arrow" src="up.jpg" alt="[Top]"></a>
+</div>
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/packages-head-utf8.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/SearchOn.html
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/SearchOn.html	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/SearchOn.html	(revision 2476)
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<head>
+<title>R: Search Engine</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<link rel="stylesheet" type="text/css" href="R.css">
+</head>
+
+<body>
+<h1>Search Engine <img class="toplogo" src="Rlogo.svg" alt="[R logo]"></h1>
+
+<div align="center">
+<a href="index.html"><img class="arrow" src="up.jpg" alt="[Top]"></a>
+</div>
+
+<hr width="100%">
+
+<h2>Search</h2>
+
+<p>
+You can search for keywords, function and data names, concepts and
+within help page titles.  The first search of a session will be slower.
+</p>
+
+<p>
+<b>Usage:</b> Enter a string in the text field below and click the
+Search button or hit
+<code>RETURN</code>.  
+</p>
+
+<form name="f" action="Search" method = "get">
+<input type="text" name="pattern" size="20" maxlength="256" value="">
+<p>
+Fields:
+<input name="fields.alias" type="checkbox" checked value="1">Topics
+<input name="fields.title" type="checkbox" checked value="1">Titles
+<input name="fields.concept" type="checkbox" checked value="1">Concepts
+<input name="fields.keyword" type="checkbox" value="1">Keywords
+</p>
+<p>
+Options:
+<input name="ignore.case" type="checkbox" checked value="1">Ignore case
+<input name="agrep" type="checkbox" value="1"> Fuzzy match
+</p>
+<p>
+Types:
+<input name="types.help" type="checkbox" checked value="1">Help pages
+<input name="types.vignette" type="checkbox" checked value="1">Vignettes
+<input name="types.demo" type="checkbox" checked value="1">Demos
+</p>
+<br>
+<input value="Search" type="submit">
+<input value="Reset" type="reset">
+</form>
+
+<hr width="100%">
+
+<h2>Concepts</h2>
+
+<a href="/doc/html/hsearch_db_concepts.html">
+Browse concepts available for searching the help system</a>
+
+<h2>Keywords</h2>
+
+<a href="/doc/html/hsearch_db_keywords.html">
+Browse keywords available for searching the help system</a>
+
+<h3>Keywords by Topic</h3>
+
+<dl>
+<dt>Basics</dt>
+<dd>
+  <ul>
+    <li><a href="Search?category=attribute">attribute</a>:  Data Attributes</li>
+    <li><a href="Search?category=chron">chron</a>:  Dates and Times</li>
+    <li><a href="Search?category=classes">classes</a>:  Data Types (not OO)
+      <ul>
+	<li><a href="Search?category=NA">NA</a>:  Missing Values </li>
+	<li><a href="Search?category=category">category</a>:  Categorical Data</li>
+	<li><a href="Search?category=character">character</a>:  Character Data ("String") Operations</li>
+	<li><a href="Search?category=complex">complex</a>:  Complex Numbers</li>
+      </ul>
+    </li>
+    <li><a href="Search?category=data">data</a>:  Environments, Scoping, Packages</li>
+    <li><a href="Search?category=datasets">datasets</a>:  Datasets available by data()</li>
+    <li><a href="Search?category=list">list</a>:  Lists</li>
+    <li><a href="Search?category=manip">manip</a>:  Data Manipulation</li>
+    <li><a href="Search?category=package">package</a>:  Package Summaries</li>
+    <li><a href="Search?category=sysdata">sysdata</a>:  Basic System Variables</li>
+  </ul>
+</dd>
+
+<dt>Graphics</dt>
+<dd>
+  <ul>
+    <li><a href="Search?category=aplot">aplot</a>:  Add to Existing Plot / internal plot</li>
+    <li><a href="Search?category=color">color</a>:  Color, Palettes etc</li>
+    <li><a href="Search?category=device">device</a>:  Graphical Devices</li>
+    <li><a href="Search?category=dplot">dplot</a>:  Computations Related to Plotting</li>
+    <li><a href="Search?category=dynamic">dynamic</a>:  Dynamic Graphics</li>
+    <li><a href="Search?category=hplot">hplot</a>:  High-Level Plots</li>
+    <li><a href="Search?category=iplot">iplot</a>:  Interacting with Plots</li>
+  </ul>
+</dd>
+
+<dt>MASS (the book) uses</dt>
+<dd>
+  <ul>
+    <li><a href="Search?category=classif">classif</a>:  Classification </li>
+    <li><a href="Search?category=neural">neural</a>:  Neural Networks </li>
+    <li><a href="Search?category=spatial">spatial</a>:  Spatial Statistics </li>
+  </ul>
+</dd>
+
+<dt>Mathematics</dt>
+<dd>
+  <ul>
+    <li><a href="Search?category=arith">arith</a>:  Basic Arithmetic and Sorting</li>
+    <li><a href="Search?category=array">array</a>:  Matrices and Arrays
+      <ul>
+	<li><a href="Search?category=algebra">algebra</a>:  Linear Algebra</li>
+      </ul>
+    </li>
+    <li><a href="Search?category=graphs">graphs</a>:  Graphs (not
+      graphics), i.e nodes &amp; edges, e.g. dendrograms</li>
+    <li><a href="Search?category=logic">logic</a>:  Logical Operators</li>
+    <li><a href="Search?category=math">math</a>:  Mathematical Calculus etc </li>
+    <li><a href="Search?category=optimize">optimize</a>:  Optimization</li>
+    <li><a href="Search?category=symbolmath">symbolmath</a>:  "Symbolic
+      Math", as polynomials, fractions</li> 
+  </ul>
+</dd>
+
+<dt>Programming, Input/Ouput, and Miscellaneous</dt>
+<dd>
+  <ul>
+    <li><a href="Search?category=IO">IO</a>:   Input/output
+      <ul>
+	<li><a href="Search?category=connection">connection</a>:  Input/Output Connections</li>
+	<li><a href="Search?category=database">database</a>:  Interfaces to databases</li>
+	<li><a href="Search?category=file">file</a>:  Input/Output Files</li>
+      </ul>
+    </li>
+    <li><a href="Search?category=debugging">debugging</a>:  Debugging Tools</li>
+    <li><a href="Search?category=documentation">documentation</a>:  Documentation</li>
+    <li><a href="Search?category=environment">environment</a>:  Session Environment</li>
+    <li><a href="Search?category=error">error</a>:  Error Handling</li>
+    <li><a href="Search?category=internal">internal</a>:  Internal Objects (not part of API)</li>
+    <li><a href="Search?category=iteration">iteration</a>:  Looping and Iteration</li>
+    <li><a href="Search?category=methods">methods</a>:  Methods and Generic Functions</li>
+    <li><a href="Search?category=misc">misc</a>:  Miscellaneous</li>
+    <li><a href="Search?category=print">print</a>:  Printing</li>
+    <li><a href="Search?category=programming">programming</a>:  Programming
+      <ul>
+	<li><a href="Search?category=interface">interface</a>:  Interfaces to Other Languages</li>
+      </ul>
+    </li>
+    <li><a href="Search?category=utilities">utilities</a>:  Utilities</li>
+  </ul>
+</dd>
+
+<dt>Statistics</dt>
+<dd>
+  <ul>
+    <li><a href="Search?category=cluster">cluster</a>:  Clustering</li>
+    <li><a href="Search?category=datagen">datagen</a>:  Functions for generating data sets</li>
+    <li><a href="Search?category=design">design</a>:  Designed Experiments</li>
+    <li><a href="Search?category=distribution">distribution</a>:  Probability Distributions and Random Numbers</li>
+    <li><a href="Search?category=htest">htest</a>:  Statistical Inference</li>
+    <li><a href="Search?category=models">models</a>:  Statistical Models
+      <ul>
+	<li><a href="Search?category=regression">regression</a>:  Regression
+	  <ul>
+	    <li><a href="Search?category=nonlinear">nonlinear</a>:
+	      Non-linear Regression </li> 
+	  </ul>
+	</li>
+      </ul>
+    </li>
+    <li><a href="Search?category=multivariate">multivariate</a>:  Multivariate Techniques</li>
+    <li><a href="Search?category=nonparametric">nonparametric</a>:  Nonparametric Statistics </li>
+    <li><a href="Search?category=robust">robust</a>:  Robust/Resistant Techniques</li>
+    <li><a href="Search?category=smooth">smooth</a>:  Curve (and Surface) Smoothing
+      <ul>
+	<li><a href="Search?category=loess">loess</a>:  Loess Objects</li>
+      </ul>
+    </li>
+    <li><a href="Search?category=survey">survey</a>:  Complex survey samples</li>
+    <li><a href="Search?category=survival">survival</a>:  Survival Analysis</li>
+    <li><a href="Search?category=tree">tree</a>:  Regression and Classification Trees</li>
+    <li><a href="Search?category=ts">ts</a>:  Time Series</li>
+    <li><a href="Search?category=univar">univar</a>:  simple univariate statistics  </li>
+  </ul>
+</dd>
+</dl>
+
+</body>
+</html>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/html/SearchOn.html
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/FAQ
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/FAQ	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/FAQ	(revision 2476)
@@ -0,0 +1,2895 @@
+R FAQ
+Frequently Asked Questions on R
+Version 2016-06-06
+Kurt Hornik
+
+
+
+R FAQ
+1 Introduction
+  1.1 Legalese
+  1.2 Obtaining this document
+  1.3 Citing this document
+  1.4 Notation
+  1.5 Feedback
+2 R Basics
+  2.1 What is R?
+  2.2 What machines does R run on?
+  2.3 What is the current version of R?
+  2.4 How can R be obtained?
+  2.5 How can R be installed?
+    2.5.1 How can R be installed (Unix-like)
+    2.5.2 How can R be installed (Windows)
+    2.5.3 How can R be installed (Mac)
+  2.6 Are there Unix-like binaries for R?
+  2.7 What documentation exists for R?
+  2.8 Citing R
+  2.9 What mailing lists exist for R?
+  2.10 What is CRAN?
+  2.11 Can I use R for commercial purposes?
+  2.12 Why is R named R?
+  2.13 What is the R Foundation?
+  2.14 What is R-Forge?
+3 R and S
+  3.1 What is S?
+  3.2 What is S-PLUS?
+  3.3 What are the differences between R and S?
+    3.3.1 Lexical scoping
+    3.3.2 Models
+    3.3.3 Others
+  3.4 Is there anything R can do that S-PLUS cannot?
+  3.5 What is R-plus?
+4 R Web Interfaces
+5 R Add-On Packages
+  5.1 Which add-on packages exist for R?
+    5.1.1 Add-on packages in R
+    5.1.2 Add-on packages from CRAN
+    5.1.3 Add-on packages from Omegahat
+    5.1.4 Add-on packages from Bioconductor
+    5.1.5 Other add-on packages
+  5.2 How can add-on packages be installed?
+  5.3 How can add-on packages be used?
+  5.4 How can add-on packages be removed?
+  5.5 How can I create an R package?
+  5.6 How can I contribute to R?
+6 R and Emacs
+  6.1 Is there Emacs support for R?
+  6.2 Should I run R from within Emacs?
+  6.3 Debugging R from within Emacs
+7 R Miscellanea
+  7.1 How can I set components of a list to NULL?
+  7.2 How can I save my workspace?
+  7.3 How can I clean up my workspace?
+  7.4 How can I get eval() and D() to work?
+  7.5 Why do my matrices lose dimensions?
+  7.6 How does autoloading work?
+  7.7 How should I set options?
+  7.8 How do file names work in Windows?
+  7.9 Why does plotting give a color allocation error?
+  7.10 How do I convert factors to numeric?
+  7.11 Are Trellis displays implemented in R?
+  7.12 What are the enclosing and parent environments?
+  7.13 How can I substitute into a plot label?
+  7.14 What are valid names?
+  7.15 Are GAMs implemented in R?
+  7.16 Why is the output not printed when I source() a file?
+  7.17 Why does outer() behave strangely with my function?
+  7.18 Why does the output from anova() depend on the order of factors in the model?
+  7.19 How do I produce PNG graphics in batch mode?
+  7.20 How can I get command line editing to work?
+  7.21 How can I turn a string into a variable?
+  7.22 Why do lattice/trellis graphics not work?
+  7.23 How can I sort the rows of a data frame?
+  7.24 Why does the help.start() search engine not work?
+  7.25 Why did my .Rprofile stop working when I updated R?
+  7.26 Where have all the methods gone?
+  7.27 How can I create rotated axis labels?
+  7.28 Why is read.table() so inefficient?
+  7.29 What is the difference between package and library?
+  7.30 I installed a package but the functions are not there
+  7.31 Why doesn't R think these numbers are equal?
+  7.32 How can I capture or ignore errors in a long simulation?
+  7.33 Why are powers of negative numbers wrong?
+  7.34 How can I save the result of each iteration in a loop into a separate file?
+  7.35 Why are p-values not displayed when using lmer()?
+  7.36 Why are there unwanted borders, lines or grid-like artifacts when viewing a plot saved to a PS or PDF file?
+  7.37 Why does backslash behave strangely inside strings?
+  7.38 How can I put error bars or confidence bands on my plot?
+  7.39 How do I create a plot with two y-axes?
+  7.40 How do I access the source code for a function?
+  7.41 Why does summary() report strange results for the R^2 estimate when I fit a linear model with no intercept?
+  7.42 Why is R apparently not releasing memory?
+  7.43 How can I enable secure https downloads in R?
+  7.44 How can I get CRAN package binaries for outdated versions of R?
+8 R Programming
+  8.1 How should I write summary methods?
+  8.2 How can I debug dynamically loaded code?
+  8.3 How can I inspect R objects when debugging?
+  8.4 How can I change compilation flags?
+  8.5 How can I debug S4 methods?
+9 R Bugs
+  9.1 What is a bug?
+  9.2 How to report a bug
+10 Acknowledgments
+R FAQ
+*****
+
+1 Introduction
+**************
+
+This document contains answers to some of the most frequently asked
+questions about R.
+
+1.1 Legalese
+============
+
+This document is copyright � 1998-2016 by Kurt Hornik.
+
+   This document is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+   This document is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+Public License for more details.
+
+   Copies of the GNU General Public License versions are available at
+
+     <https://www.R-project.org/Licenses/>
+
+1.2 Obtaining this document
+===========================
+
+The latest version of this document is always available from
+
+     <https://CRAN.R-project.org/doc/FAQ/>
+
+   From there, you can obtain versions converted to plain ASCII text,
+GNU info, HTML, PDF, as well as the Texinfo source used for creating all
+these formats using the GNU Texinfo system.
+
+   You can also obtain the R FAQ from the 'doc/FAQ' subdirectory of a
+CRAN site (*note What is CRAN?::).
+
+1.3 Citing this document
+========================
+
+In publications, please refer to this FAQ as Hornik (2016), "The R FAQ",
+and give the above, _official_ URL:
+
+     @Misc{,
+       author        = {Kurt Hornik},
+       title         = {{R} {FAQ}},
+       year          = {2016},
+       url           = {https://CRAN.R-project.org/doc/FAQ/R-FAQ.html}
+     }
+
+1.4 Notation
+============
+
+Everything should be pretty standard.  'R>' is used for the R prompt,
+and a '$' for the shell prompt (where applicable).
+
+1.5 Feedback
+============
+
+Feedback via email to <Kurt.Hornik@R-project.org> is of course most
+welcome.
+
+   In particular, note that I do not have access to Windows or Mac
+systems.  Features specific to the Windows and macOS ports of R are
+described in the "R for Windows FAQ"
+(https://CRAN.R-project.org/bin/windows/base/rw-FAQ.html) and the "R for
+Mac OS X FAQ" (https://CRAN.R-project.org/bin/macosx/RMacOSX-FAQ.html).
+If you have information on Mac or Windows systems that you think should
+be added to this document, please let me know.
+
+2 R Basics
+**********
+
+2.1 What is R?
+==============
+
+R is a system for statistical computation and graphics.  It consists of
+a language plus a run-time environment with graphics, a debugger, access
+to certain system functions, and the ability to run programs stored in
+script files.
+
+   The design of R has been heavily influenced by two existing
+languages: Becker, Chambers & Wilks' S (*note What is S?::) and
+Sussman's Scheme
+(https://www.cs.indiana.edu/scheme-repository/home.html).  Whereas the
+resulting language is very similar in appearance to S, the underlying
+implementation and semantics are derived from Scheme.  *Note What are
+the differences between R and S?::, for further details.
+
+   The core of R is an interpreted computer language which allows
+branching and looping as well as modular programming using functions.
+Most of the user-visible functions in R are written in R. It is possible
+for the user to interface to procedures written in the C, C++, or
+FORTRAN languages for efficiency.  The R distribution contains
+functionality for a large number of statistical procedures.  Among these
+are: linear and generalized linear models, nonlinear regression models,
+time series analysis, classical parametric and nonparametric tests,
+clustering and smoothing.  There is also a large set of functions which
+provide a flexible graphical environment for creating various kinds of
+data presentations.  Additional modules ("add-on packages") are
+available for a variety of specific purposes (*note R Add-On
+Packages::).
+
+   R was initially written by Ross Ihaka <Ross.Ihaka@R-project.org> and
+Robert Gentleman <Robert.Gentleman@R-project.org> at the Department of
+Statistics of the University of Auckland in Auckland, New Zealand.  In
+addition, a large group of individuals has contributed to R by sending
+code and bug reports.
+
+   Since mid-1997 there has been a core group (the "R Core Team") who
+can modify the R source code archive.  The group currently consists of
+Doug Bates, John Chambers, Peter Dalgaard, Seth Falcon, Robert
+Gentleman, Kurt Hornik, Stefano Iacus, Ross Ihaka, Friedrich Leisch, Uwe
+Ligges, Thomas Lumley, Martin Maechler, Duncan Murdoch, Paul Murrell,
+Martyn Plummer, Brian Ripley, Deepayan Sarkar, Duncan Temple Lang, Luke
+Tierney, and Simon Urbanek.
+
+   R has a home page at <https://www.R-project.org/>.  It is free
+software (https://www.gnu.org/philosophy/free-sw.html) distributed under
+a GNU-style copyleft (https://www.gnu.org/copyleft/copyleft.html), and
+an official part of the GNU (https://www.gnu.org/) project ("GNU S").
+
+2.2 What machines does R run on?
+================================
+
+R is being developed for the Unix-like, Windows and Mac families of
+operating systems.  Support for Mac OS Classic ended with R 1.7.1.
+
+   The current version of R will configure and build under a number of
+common Unix-like (e.g., <https://en.wikipedia.org/wiki/Unix-like>)
+platforms including CPU-linux-gnu for the i386, amd64/x86_64, alpha,
+arm, arm64, hppa, mips/mipsel, powerpc, s390x and sparc CPUs (e.g.,
+<https://buildd.debian.org/build.php?&pkg=r-base>), i386-hurd-gnu,
+CPU-kfreebsd-gnu for i386 and amd64, i386-pc-solaris, rs6000-ibm-aix,
+sparc-sun-solaris, x86_64-apple-darwin, x86_64-unknown-freebsd and
+x86_64-unknown-openbsd.
+
+   If you know about other platforms, please drop us a note.
+
+2.3 What is the current version of R?
+=====================================
+
+R uses a 'major.minor.patchlevel' numbering scheme.  Based on this,
+there are the current release version of R ('r-release') as well as two
+development versions of R, a patched version of the current release
+('r-patched') and one working towards the next minor or eventually major
+('r-devel') releases of R, respectively.  New features are typically
+introduced in r-devel, while r-patched is for bug fixes mostly.
+
+   See <https://CRAN.R-project.org/sources.html> for the current
+versions of r-release, r-patched and r-devel.
+
+2.4 How can R be obtained?
+==========================
+
+Sources, binaries and documentation for R can be obtained via CRAN, the
+"Comprehensive R Archive Network" (see *note What is CRAN?::).
+
+   Sources are also available via <https://svn.R-project.org/R/>, the R
+Subversion repository, but currently not via anonymous rsync (nor CVS).
+
+   Tarballs with daily snapshots of the r-devel and r-patched
+development versions of R can be found at
+<https://stat.ethz.ch/R/daily>.
+
+2.5 How can R be installed?
+===========================
+
+2.5.1 How can R be installed (Unix-like)
+----------------------------------------
+
+If R is already installed, it can be started by typing 'R' at the shell
+prompt (of course, provided that the executable is in your path).
+
+   If binaries are available for your platform (see *note Are there
+Unix-like binaries for R?::), you can use these, following the
+instructions that come with them.
+
+   Otherwise, you can compile and install R yourself, which can be done
+very easily under a number of common Unix-like platforms (see *note What
+machines does R run on?::).  The file 'INSTALL' that comes with the R
+distribution contains a brief introduction, and the "R Installation and
+Administration" guide (*note What documentation exists for R?::) has
+full details.
+
+   Note that you need a FORTRAN compiler or perhaps 'f2c' in addition to
+a C compiler to build R.
+
+   In the simplest case, untar the R source code, change to the
+directory thus created, and issue the following commands (at the shell
+prompt):
+
+     $ ./configure
+     $ make
+
+   If these commands execute successfully, the R binary and a shell
+script front-end called 'R' are created and copied to the 'bin'
+directory.  You can copy the script to a place where users can invoke
+it, for example to '/usr/local/bin'.  In addition, plain text help pages
+as well as HTML and LaTeX versions of the documentation are built.
+
+   Use 'make dvi' to create DVI versions of the R manuals, such as
+'refman.dvi' (an R object reference index) and 'R-exts.dvi', the "R
+Extension Writers Guide", in the 'doc/manual' subdirectory.  These files
+can be previewed and printed using standard programs such as 'xdvi' and
+'dvips'.  You can also use 'make pdf' to build PDF (Portable Document
+Format) version of the manuals, and view these using e.g. Acrobat.
+Manuals written in the GNU Texinfo system can also be converted to info
+files suitable for reading online with Emacs or stand-alone GNU Info;
+use 'make info' to create these versions (note that this requires
+Makeinfo version 4.5).
+
+   Finally, use 'make check' to find out whether your R system works
+correctly.
+
+   You can also perform a "system-wide" installation using 'make
+install'.  By default, this will install to the following directories:
+
+'${prefix}/bin'
+     the front-end shell script
+'${prefix}/man/man1'
+     the man page
+'${prefix}/lib/R'
+     all the rest (libraries, on-line help system, ...).  This is the "R
+     Home Directory" ('R_HOME') of the installed system.
+
+In the above, 'prefix' is determined during configuration (typically
+'/usr/local') and can be set by running 'configure' with the option
+
+     $ ./configure --prefix=/where/you/want/R/to/go
+
+(E.g., the R executable will then be installed into
+'/where/you/want/R/to/go/bin'.)
+
+   To install DVI, info and PDF versions of the manuals, use 'make
+install-dvi', 'make install-info' and 'make install-pdf', respectively.
+
+2.5.2 How can R be installed (Windows)
+--------------------------------------
+
+The 'bin/windows' directory of a CRAN site contains binaries for a base
+distribution and add-on packages from CRAN to run on Windows XP and
+later (including 64-bit versions of Windows) on ix86 and x86_64 chips.
+The Windows version of R was created by Robert Gentleman and Guido
+Masarotto, and is now being developed and maintained by Duncan Murdoch
+<murdoch@stats.uwo.ca> and Brian D. Ripley <Brian.Ripley@R-project.org>.
+
+   The same directory has links to snapshots of the r-patched and
+r-devel versions of R.
+
+   See the "R for Windows FAQ"
+(https://CRAN.R-project.org/bin/windows/base/rw-FAQ.html) for more
+details.
+
+2.5.3 How can R be installed (Mac)
+----------------------------------
+
+The 'bin/macosx' directory of a CRAN site contains a standard Apple
+installer package to run on macOS 10.9 ('Mavericks') and later.  Once
+downloaded and executed, the installer will install the current release
+of R and R.app, the macOS GUI.  This port of R for macOS is maintained
+by Simon Urbanek <Simon.Urbanek@R-project.org> (and previously by
+Stefano Iacus).  The "R for Mac macOS FAQ
+(https://CRAN.R-project.org/bin/macosx/RMacOSX-FAQ.html) has more
+details.
+
+   Snapshots of the r-patched and r-devel versions of R are available as
+Apple installer packages at <https://r.research.att.com>.
+
+2.6 Are there Unix-like binaries for R?
+=======================================
+
+The 'bin/linux' directory of a CRAN site contains the following
+packages.
+
+               CPU           Versions               Provider
+     ----------------------------------------------------------------
+     Debian    i386/amd64    squeeze/wheezy         Johannes Ranke
+               armel         wheezy                 Johannes Ranke
+     Ubuntu    i386/amd64    lucid/precise/trusty   Michael Rutter
+
+   Debian packages, maintained by Dirk Eddelbuettel, have long been part
+of the Debian distribution, and can be accessed through APT, the Debian
+package maintenance tool.  Use e.g. 'apt-get install r-base
+r-recommended' to install the R environment and recommended packages.
+If you also want to build R packages from source, also run 'apt-get
+install r-base-dev' to obtain the additional tools required for this.
+So-called "backports" of the current R packages for at least the
+"stable" distribution of Debian are provided by Johannes Ranke, and
+available from CRAN.  See
+<https://CRAN.R-project.org/bin/linux/debian/index.html> for details on
+R Debian packages and installing the backports, which should also be
+suitable for other Debian derivatives.  Native backports for Ubuntu are
+provided by Michael Rutter.
+
+   R binaries for Fedora, maintained by Tom "Spot" Callaway, are
+provided as part of the Fedora distribution and can be accessed through
+'yum', the RPM installer/updater.  Note that the "Software" application
+(gnome-software), which is the default GUI for software installation in
+Fedora 20, cannot be used to install R. It is therefore recommended to
+use the yum command line tool.  The Fedora R RPM is a "meta-package"
+which installs all the user and developer components of R (available
+separately as 'R-core' and 'R-devel'), as well as 'R-java', which
+ensures that R is configured for use with Java.  The R RPM also installs
+the standalone R math library ('libRmath' and 'libRmath-devel'),
+although this is not necessary to use R. When a new version of R is
+released, there may be a delay of up to 2 weeks until the Fedora RPM
+becomes publicly available, as it must pass through the statutory Fedora
+review process.  RPMs for a selection of R packages are also provided by
+Fedora.  The Extra Packages for Enterprise Linux (EPEL) project
+(<https://fedoraproject.org/wiki/EPEL>) provides ports of the Fedora
+RPMs for RedHat Enterprise Linux and compatible distributions (e.g.,
+Centos, Scientific Linux, Oracle Linux).
+
+   See <https://CRAN.R-project.org/bin/linux/suse/README.html> for
+information about RPMs for openSUSE.
+
+   No other binary distributions are currently publically available via
+CRAN.
+
+2.7 What documentation exists for R?
+====================================
+
+Online documentation for most of the functions and variables in R
+exists, and can be printed on-screen by typing 'help(NAME)' (or '?NAME')
+at the R prompt, where NAME is the name of the topic help is sought for.
+(In the case of unary and binary operators and control-flow special
+forms, the name may need to be be quoted.)
+
+   This documentation can also be made available as one reference manual
+for on-line reading in HTML and PDF formats, and as hardcopy via LaTeX,
+see *note How can R be installed?::.  An up-to-date HTML version is
+always available for web browsing at <https://stat.ethz.ch/R-manual/>.
+
+   Printed copies of the R reference manual for some version(s) are
+available from Network Theory Ltd, at
+<http://www.network-theory.co.uk/R/base/>.  For each set of manuals
+sold, the publisher donates USD 10 to the R Foundation (*note What is
+the R Foundation?::).
+
+   The R distribution also comes with the following manuals.
+
+   * "An Introduction to R" ('R-intro') includes information on data
+     types, programming elements, statistical modeling and graphics.
+     This document is based on the "Notes on S-PLUS" by Bill Venables
+     and David Smith.
+   * "Writing R Extensions" ('R-exts') currently describes the process
+     of creating R add-on packages, writing R documentation, R's system
+     and foreign language interfaces, and the R API.
+   * "R Data Import/Export" ('R-data') is a guide to importing and
+     exporting data to and from R.
+   * "The R Language Definition" ('R-lang'), a first version of the
+     "Kernighan & Ritchie of R", explains evaluation, parsing, object
+     oriented programming, computing on the language, and so forth.
+   * "R Installation and Administration" ('R-admin').
+   * "R Internals" ('R-ints') is a guide to R's internal structures.
+     (Added in R 2.4.0.)
+
+   An annotated bibliography (BibTeX format) of R-related publications
+can be found at
+
+     <https://www.R-project.org/doc/bib/R.bib>
+
+   Books on R by R Core Team members include
+
+     John M. Chambers (2008), "Software for Data Analysis: Programming
+     with R". Springer, New York, ISBN 978-0-387-75935-7,
+     <http://statweb.stanford.edu/~jmc4/Rbook/>.
+
+     Peter Dalgaard (2008), "Introductory Statistics with R", 2nd
+     edition.  Springer, ISBN 978-0-387-79053-4,
+     <http://publicifsv.sund.ku.dk/~pd/ISwR.html>.
+
+     Robert Gentleman (2008), "R Programming for Bioinformatics".
+     Chapman & Hall/CRC, Boca Raton, FL, ISBN 978-1-420-06367-7,
+     <https://www.bioconductor.org/pub/RBioinf/>.
+
+     Stefano M. Iacus (2008), "Simulation and Inference for Stochastic
+     Differential Equations: With R Examples".  Springer, New York, ISBN
+     978-0-387-75838-1.
+
+     Deepayan Sarkar (2007), "Lattice: Multivariate Data Visualization
+     with R". Springer, New York, ISBN 978-0-387-75968-5.
+
+     W. John Braun and Duncan J. Murdoch (2007), "A First Course in
+     Statistical Programming with R". Cambridge University Press,
+     Cambridge, ISBN 978-0521872652.
+
+     P. Murrell (2005), "R Graphics", Chapman & Hall/CRC, ISBN:
+     1-584-88486-X,
+     <https://www.stat.auckland.ac.nz/~paul/RGraphics/rgraphics.html>.
+
+     William N. Venables and Brian D. Ripley (2002), "Modern Applied
+     Statistics with S" (4th edition).  Springer, ISBN 0-387-95457-0,
+     <https://www.stats.ox.ac.uk/pub/MASS4/>.
+
+     Jose C. Pinheiro and Douglas M. Bates (2000), "Mixed-Effects Models
+     in S and S-Plus".  Springer, ISBN 0-387-98957-0.
+
+   Last, but not least, Ross' and Robert's experience in designing and
+implementing R is described in Ihaka & Gentleman (1996), "R: A Language
+for Data Analysis and Graphics", _Journal of Computational and Graphical
+Statistics_, *5*, 299-314.
+
+2.8 Citing R
+============
+
+To cite R in publications, use
+
+     @Manual{,
+       title        = {R: A Language and Environment for Statistical
+                       Computing},
+       author       = {{R Core Team}},
+       organization = {R Foundation for Statistical Computing},
+       address      = {Vienna, Austria},
+       year         = YEAR,
+       url          = {https://www.R-project.org}
+     }
+where YEAR is the release year of the version of R used and can
+determined as 'R.version$year'.
+
+   Citation strings (or BibTeX entries) for R and R packages can also be
+obtained by 'citation()'.
+
+2.9 What mailing lists exist for R?
+===================================
+
+Thanks to Martin Maechler <Martin.Maechler@R-project.org>, there are
+several mailing lists devoted to R, including the following:
+
+'R-announce'
+     A moderated list for major announcements about the development of R
+     and the availability of new code.
+'R-packages'
+     A moderated list for announcements on the availability of new or
+     enhanced contributed packages.
+'R-help'
+     The 'main' R mailing list, for discussion about problems and
+     solutions using R, announcements (not covered by 'R-announce' and
+     'R-packages') about the development of R and the availability of
+     new code.
+'R-devel'
+     This list is for questions and discussion about code development in
+     R.
+'R-package-devel'
+     A list which which provides a forum for learning about the R
+     package development process.
+
+Please read the posting guide
+(https://www.R-project.org/posting-guide.html) _before_ sending anything
+to any mailing list.
+
+   Note in particular that R-help is intended to be comprehensible to
+people who want to use R to solve problems but who are not necessarily
+interested in or knowledgeable about programming.  Questions likely to
+prompt discussion unintelligible to non-programmers (e.g., questions
+involving C or C++) should go to R-devel.
+
+   Convenient access to information on these lists, subscription, and
+archives is provided by the web interface at
+<https://stat.ethz.ch/mailman/listinfo/>.  One can also subscribe (or
+unsubscribe) via email, e.g. to R-help by sending 'subscribe' (or
+'unsubscribe') in the _body_ of the message (not in the subject!)  to
+<R-help-request@lists.R-project.org>.
+
+   Send email to <R-help@lists.R-project.org> to send a message to
+everyone on the R-help mailing list.  Subscription and posting to the
+other lists is done analogously, with 'R-help' replaced by 'R-announce',
+'R-packages', and 'R-devel', respectively.  Note that the R-announce and
+R-packages lists are gatewayed into R-help.  Hence, you should subscribe
+to either of them only in case you are not subscribed to R-help.
+
+   It is recommended that you send mail to R-help rather than only to
+the R Core developers (who are also subscribed to the list, of course).
+This may save them precious time they can use for constantly improving
+R, and will typically also result in much quicker feedback for yourself.
+
+   Of course, in the case of bug reports it would be very helpful to
+have code which reliably reproduces the problem.  Also, make sure that
+you include information on the system and version of R being used.  See
+*note R Bugs:: for more details.
+
+   See <https://www.R-project.org/mail.html> for more information on the
+R mailing lists.
+
+   The R Core Team can be reached at <R-core@lists.R-project.org> for
+comments and reports.
+
+   Many of the R project's mailing lists are also available via Gmane
+(http://gmane.org), from which they can be read with a web browser,
+using an NNTP news reader, or via RSS feeds.  See
+<http://dir.gmane.org/index.php?prefix=gmane.comp.lang.r.> for the
+available mailing lists, and <http://www.gmane.org/rss.php> for details
+on RSS feeds.
+
+2.10 What is CRAN?
+==================
+
+The "Comprehensive R Archive Network" (CRAN) is a collection of sites
+which carry identical material, consisting of the R distribution(s), the
+contributed extensions, documentation for R, and binaries.
+
+   The CRAN master site at WU (Wirtschaftsuniversit�t Wien) in Austria
+can be found at the URL
+
+     <https://CRAN.R-project.org/>
+
+and is mirrored daily to many sites around the world.  See
+<https://CRAN.R-project.org/mirrors.html> for a complete list of
+mirrors.  Please use the CRAN site closest to you to reduce network
+load.
+
+   From CRAN, you can obtain the latest official release of R, daily
+snapshots of R (copies of the current source trees), as gzipped and
+bzipped tar files, a wealth of additional contributed code, as well as
+prebuilt binaries for various operating systems (Linux, Mac OS Classic,
+macOS, and MS Windows).  CRAN also provides access to documentation on
+R, existing mailing lists and the R Bug Tracking system.
+
+   Since March 2016, "old" material is made available from a central
+CRAN archive server (<https://CRAN-archive.R-project.org/>).
+
+   Please always use the URL of the master site when referring to CRAN.
+
+2.11 Can I use R for commercial purposes?
+=========================================
+
+R is released under the GNU General Public License (GPL), version 2.  If
+you have any questions regarding the legality of using R in any
+particular situation you should bring it up with your legal counsel.  We
+are in no position to offer legal advice.
+
+   It is the opinion of the R Core Team that one can use R for
+commercial purposes (e.g., in business or in consulting).  The GPL, like
+all Open Source licenses, permits all and any use of the package.  It
+only restricts distribution of R or of other programs containing code
+from R. This is made clear in clause 6 ("No Discrimination Against
+Fields of Endeavor") of the Open Source Definition
+(https://opensource.org/docs/definition.html):
+
+     The license must not restrict anyone from making use of the program
+     in a specific field of endeavor.  For example, it may not restrict
+     the program from being used in a business, or from being used for
+     genetic research.
+
+It is also explicitly stated in clause 0 of the GPL, which says in part
+
+     Activities other than copying, distribution and modification are
+     not covered by this License; they are outside its scope.  The act
+     of running the Program is not restricted, and the output from the
+     Program is covered only if its contents constitute a work based on
+     the Program.
+
+   Most add-on packages, including all recommended ones, also explicitly
+allow commercial use in this way.  A few packages are restricted to
+"non-commercial use"; you should contact the author to clarify whether
+these may be used or seek the advice of your legal counsel.
+
+   None of the discussion in this section constitutes legal advice.  The
+R Core Team does not provide legal advice under any circumstances.
+
+2.12 Why is R named R?
+======================
+
+The name is partly based on the (first) names of the first two R authors
+(Robert Gentleman and Ross Ihaka), and partly a play on the name of the
+Bell Labs language 'S' (*note What is S?::).
+
+2.13 What is the R Foundation?
+==============================
+
+The R Foundation is a not for profit organization working in the public
+interest.  It was founded by the members of the R Core Team in order to
+provide support for the R project and other innovations in statistical
+computing, provide a reference point for individuals, institutions or
+commercial enterprises that want to support or interact with the R
+development community, and to hold and administer the copyright of R
+software and documentation.  See <https://www.R-project.org/foundation/>
+for more information.
+
+2.14 What is R-Forge?
+=====================
+
+R-Forge (<https://R-Forge.R-project.org/>) offers a central platform for
+the development of R packages, R-related software and further projects.
+It is based on GForge (https://en.wikipedia.org/wiki/GForge) offering
+easy access to the best in SVN, daily built and checked packages,
+mailing lists, bug tracking, message boards/forums, site hosting,
+permanent file archival, full backups, and total web-based
+administration.  For more information, see the R-Forge web page and
+Stefan Theu�l and Achim Zeileis (2009), "Collaborative software
+development using R-Forge", _The R Journal_, *1*(1):9-14.
+
+3 R and S
+*********
+
+3.1 What is S?
+==============
+
+S is a very high level language and an environment for data analysis and
+graphics.  In 1998, the Association for Computing Machinery (ACM)
+presented its Software System Award to John M. Chambers, the principal
+designer of S, for
+
+     the S system, which has forever altered the way people analyze,
+     visualize, and manipulate data ...
+
+     S is an elegant, widely accepted, and enduring software system,
+     with conceptual integrity, thanks to the insight, taste, and effort
+     of John Chambers.
+
+   The evolution of the S language is characterized by four books by
+John Chambers and coauthors, which are also the primary references for
+S.
+
+   * Richard A. Becker and John M. Chambers (1984), "S. An Interactive
+     Environment for Data Analysis and Graphics," Monterey: Wadsworth
+     and Brooks/Cole.
+
+     This is also referred to as the "_Brown Book_", and of historical
+     interest only.
+
+   * Richard A. Becker, John M. Chambers and Allan R. Wilks (1988), "The
+     New S Language," London: Chapman & Hall.
+
+     This book is often called the "_Blue Book_", and introduced what is
+     now known as S version 2.
+
+   * John M. Chambers and Trevor J. Hastie (1992), "Statistical Models
+     in S," London: Chapman & Hall.
+
+     This is also called the "_White Book_", and introduced S version 3,
+     which added structures to facilitate statistical modeling in S.
+
+   * John M. Chambers (1998), "Programming with Data," New York:
+     Springer, ISBN 0-387-98503-4
+     (<http://statweb.stanford.edu/~jmc4/Sbook/>).
+
+     This "_Green Book_" describes version 4 of S, a major revision of S
+     designed by John Chambers to improve its usefulness at every stage
+     of the programming process.
+
+   See <http://statweb.stanford.edu/~jmc4/papers/96.7.ps> for further
+information on the "Evolution of the S Language".
+
+3.2 What is S-PLUS?
+===================
+
+S-PLUS is a value-added version of S currently sold by TIBCO Software
+Inc (http://www.tibco.com/) as 'TIBCO Spotfire S+'.  See
+<https://en.wikipedia.org/wiki/S-PLUS> for more information.
+
+3.3 What are the differences between R and S?
+=============================================
+
+We can regard S as a language with three current implementations or
+"engines", the "old S engine" (S version 3; S-PLUS 3.x and 4.x), the
+"new S engine" (S version 4; S-PLUS 5.x and above), and R. Given this
+understanding, asking for "the differences between R and S" really
+amounts to asking for the specifics of the R implementation of the S
+language, i.e., the difference between the R and S _engines_.
+
+   For the remainder of this section, "S" refers to the S engines and
+not the S language.
+
+3.3.1 Lexical scoping
+---------------------
+
+Contrary to other implementations of the S language, R has adopted an
+evaluation model in which nested function definitions are lexically
+scoped.  This is analogous to the evaluation model in Scheme.
+
+   This difference becomes manifest when _free_ variables occur in a
+function.  Free variables are those which are neither formal parameters
+(occurring in the argument list of the function) nor local variables
+(created by assigning to them in the body of the function).  In S, the
+values of free variables are determined by a set of global variables
+(similar to C, there is only local and global scope).  In R, they are
+determined by the environment in which the function was created.
+
+   Consider the following function:
+
+     cube <- function(n) {
+       sq <- function() n * n
+       n * sq()
+     }
+
+   Under S, 'sq()' does not "know" about the variable 'n' unless it is
+defined globally:
+
+     S> cube(2)
+     Error in sq():  Object "n" not found
+     Dumped
+     S> n <- 3
+     S> cube(2)
+     [1] 18
+
+   In R, the "environment" created when 'cube()' was invoked is also
+looked in:
+
+     R> cube(2)
+     [1] 8
+
+   As a more "interesting" real-world problem, suppose you want to write
+a function which returns the density function of the r-th order
+statistic from a sample of size n from a (continuous) distribution.  For
+simplicity, we shall use both the cdf and pdf of the distribution as
+explicit arguments.  (Example compiled from various postings by Luke
+Tierney.)
+
+   The S-PLUS documentation for 'call()' basically suggests the
+following:
+
+     dorder <- function(n, r, pfun, dfun) {
+       f <- function(x) NULL
+       con <- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n - r + 1)))
+       PF <- call(substitute(pfun), as.name("x"))
+       DF <- call(substitute(dfun), as.name("x"))
+       f[[length(f)]] <-
+         call("*", con,
+              call("*", call("^", PF, r - 1),
+                   call("*", call("^", call("-", 1, PF), n - r),
+                        DF)))
+       f
+     }
+
+Rather tricky, isn't it?  The code uses the fact that in S, functions
+are just lists of special mode with the function body as the last
+argument, and hence does not work in R (one could make the idea work,
+though).
+
+   A version which makes heavy use of 'substitute()' and seems to work
+under both S and R is
+
+     dorder <- function(n, r, pfun, dfun) {
+       con <- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n - r + 1)))
+       eval(substitute(function(x) K * PF(x)^a * (1 - PF(x))^b * DF(x),
+                       list(PF = substitute(pfun), DF = substitute(dfun),
+                            a = r - 1, b = n - r, K = con)))
+     }
+
+(the 'eval()' is not needed in S).
+
+   However, in R there is a much easier solution:
+
+     dorder <- function(n, r, pfun, dfun) {
+       con <- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n - r + 1)))
+       function(x) {
+         con * pfun(x)^(r - 1) * (1 - pfun(x))^(n - r) * dfun(x)
+       }
+     }
+
+This seems to be the "natural" implementation, and it works because the
+free variables in the returned function can be looked up in the defining
+environment (this is lexical scope).
+
+   Note that what you really need is the function _closure_, i.e., the
+body along with all variable bindings needed for evaluating it.  Since
+in the above version, the free variables in the value function are not
+modified, you can actually use it in S as well if you abstract out the
+closure operation into a function 'MC()' (for "make closure"):
+
+     dorder <- function(n, r, pfun, dfun) {
+       con <- round(exp(lgamma(n + 1) - lgamma(r) - lgamma(n - r + 1)))
+       MC(function(x) {
+            con * pfun(x)^(r - 1) * (1 - pfun(x))^(n - r) * dfun(x)
+          },
+          list(con = con, pfun = pfun, dfun = dfun, r = r, n = n))
+     }
+
+   Given the appropriate definitions of the closure operator, this works
+in both R and S, and is much "cleaner" than a substitute/eval solution
+(or one which overrules the default scoping rules by using explicit
+access to evaluation frames, as is of course possible in both R and S).
+
+   For R, 'MC()' simply is
+
+     MC <- function(f, env) f
+
+(lexical scope!), a version for S is
+
+     MC <- function(f, env = NULL) {
+       env <- as.list(env)
+       if (mode(f) != "function")
+         stop(paste("not a function:", f))
+       if (length(env) > 0 && any(names(env) == ""))
+         stop(paste("not all arguments are named:", env))
+       fargs <- if(length(f) > 1) f[1:(length(f) - 1)] else NULL
+       fargs <- c(fargs, env)
+       if (any(duplicated(names(fargs))))
+         stop(paste("duplicated arguments:", paste(names(fargs)),
+              collapse = ", "))
+       fbody <- f[length(f)]
+       cf <- c(fargs, fbody)
+       mode(cf) <- "function"
+       return(cf)
+     }
+
+   Similarly, most optimization (or zero-finding) routines need some
+arguments to be optimized over and have other parameters that depend on
+the data but are fixed with respect to optimization.  With R scoping
+rules, this is a trivial problem; simply make up the function with the
+required definitions in the same environment and scoping takes care of
+it.  With S, one solution is to add an extra parameter to the function
+and to the optimizer to pass in these extras, which however can only
+work if the optimizer supports this.
+
+   Nested lexically scoped functions allow using function closures and
+maintaining local state.  A simple example (taken from Abelson and
+Sussman) is obtained by typing 'demo("scoping")' at the R prompt.
+Further information is provided in the standard R reference "R: A
+Language for Data Analysis and Graphics" (*note What documentation
+exists for R?::) and in Robert Gentleman and Ross Ihaka (2000), "Lexical
+Scope and Statistical Computing", _Journal of Computational and
+Graphical Statistics_, *9*, 491-508.
+
+   Nested lexically scoped functions also imply a further major
+difference.  Whereas S stores all objects as separate files in a
+directory somewhere (usually '.Data' under the current directory), R
+does not.  All objects in R are stored internally.  When R is started up
+it grabs a piece of memory and uses it to store the objects.  R performs
+its own memory management of this piece of memory, growing and shrinking
+its size as needed.  Having everything in memory is necessary because it
+is not really possible to externally maintain all relevant
+"environments" of symbol/value pairs.  This difference also seems to
+make R _faster_ than S.
+
+   The down side is that if R crashes you will lose all the work for the
+current session.  Saving and restoring the memory "images" (the
+functions and data stored in R's internal memory at any time) can be a
+bit slow, especially if they are big.  In S this does not happen,
+because everything is saved in disk files and if you crash nothing is
+likely to happen to them.  (In fact, one might conjecture that the S
+developers felt that the price of changing their approach to persistent
+storage just to accommodate lexical scope was far too expensive.)
+Hence, when doing important work, you might consider saving often (see
+*note How can I save my workspace?::) to safeguard against possible
+crashes.  Other possibilities are logging your sessions, or have your R
+commands stored in text files which can be read in using 'source()'.
+
+     Note: If you run R from within Emacs (see *note R and Emacs::), you
+     can save the contents of the interaction buffer to a file and
+     conveniently manipulate it using 'ess-transcript-mode', as well as
+     save source copies of all functions and data used.
+
+3.3.2 Models
+------------
+
+There are some differences in the modeling code, such as
+
+   * Whereas in S, you would use 'lm(y ~ x^3)' to regress 'y' on 'x^3',
+     in R, you have to insulate powers of numeric vectors (using 'I()'),
+     i.e., you have to use 'lm(y ~ I(x^3))'.
+   * The glm family objects are implemented differently in R and S. The
+     same functionality is available but the components have different
+     names.
+   * Option 'na.action' is set to '"na.omit"' by default in R, but not
+     set in S.
+   * Terms objects are stored differently.  In S a terms object is an
+     expression with attributes, in R it is a formula with attributes.
+     The attributes have the same names but are mostly stored
+     differently.
+   * Finally, in R 'y ~ x + 0' is an alternative to 'y ~ x - 1' for
+     specifying a model with no intercept.  Models with no parameters at
+     all can be specified by 'y ~ 0'.
+
+3.3.3 Others
+------------
+
+Apart from lexical scoping and its implications, R follows the S
+language definition in the Blue and White Books as much as possible, and
+hence really is an "implementation" of S. There are some intentional
+differences where the behavior of S is considered "not clean".  In
+general, the rationale is that R should help you detect programming
+errors, while at the same time being as compatible as possible with S.
+
+   Some known differences are the following.
+
+   * In R, if 'x' is a list, then 'x[i] <- NULL' and 'x[[i]] <- NULL'
+     remove the specified elements from 'x'.  The first of these is
+     incompatible with S, where it is a no-op.  (Note that you can set
+     elements to 'NULL' using 'x[i] <- list(NULL)'.)
+
+   * In S, the functions named '.First' and '.Last' in the '.Data'
+     directory can be used for customizing, as they are executed at the
+     very beginning and end of a session, respectively.
+
+     In R, the startup mechanism is as follows.  Unless '--no-environ'
+     was given on the command line, R searches for site and user files
+     to process for setting environment variables.  Then, R searches for
+     a site-wide startup profile unless the command line option
+     '--no-site-file' was given.  This code is loaded in package *base*.
+     Then, unless '--no-init-file' was given, R searches for a user
+     profile file, and sources it into the user workspace.  It then
+     loads a saved image of the user workspace from '.RData' in case
+     there is one (unless '--no-restore-data' or '--no-restore' were
+     specified).  Next, a function '.First()' is run if found on the
+     search path.  Finally, function '.First.sys' in the *base* package
+     is run.  When terminating an R session, by default a function
+     '.Last' is run if found on the search path, followed by
+     '.Last.sys'.  If needed, the functions '.First()' and '.Last()'
+     should be defined in the appropriate startup profiles.  See the
+     help pages for '.First' and '.Last' for more details.
+
+   * In R, 'T' and 'F' are just variables being set to 'TRUE' and
+     'FALSE', respectively, but are not reserved words as in S and hence
+     can be overwritten by the user.  (This helps e.g. when you have
+     factors with levels '"T"' or '"F"'.)  Hence, when writing code you
+     should always use 'TRUE' and 'FALSE'.
+
+   * In R, 'dyn.load()' can only load _shared objects_, as created for
+     example by 'R CMD SHLIB'.
+
+   * In R, 'attach()' currently only works for lists and data frames,
+     but not for directories.  (In fact, 'attach()' also works for R
+     data files created with 'save()', which is analogous to attaching
+     directories in S.) Also, you cannot attach at position 1.
+
+   * Categories do not exist in R, and never will as they are deprecated
+     now in S. Use factors instead.
+
+   * In R, 'For()' loops are not necessary and hence not supported.
+
+   * In R, 'assign()' uses the argument 'envir=' rather than 'where=' as
+     in S.
+
+   * The random number generators are different, and the seeds have
+     different length.
+
+   * R passes integer objects to C as 'int *' rather than 'long *' as in
+     S.
+
+   * R has no single precision storage mode.  However, as of version
+     0.65.1, there is a single precision interface to C/FORTRAN
+     subroutines.
+
+   * By default, 'ls()' returns the names of the objects in the current
+     (under R) and global (under S) environment, respectively.  For
+     example, given
+
+          x <- 1; fun <- function() {y <- 1; ls()}
+
+     then 'fun()' returns '"y"' in R and '"x"' (together with the rest
+     of the global environment) in S.
+
+   * R allows for zero-extent matrices (and arrays, i.e., some elements
+     of the 'dim' attribute vector can be 0).  This has been determined
+     a useful feature as it helps reducing the need for special-case
+     tests for empty subsets.  For example, if 'x' is a matrix, 'x[,
+     FALSE]' is not 'NULL' but a "matrix" with 0 columns.  Hence, such
+     objects need to be tested for by checking whether their 'length()'
+     is zero (which works in both R and S), and not using 'is.null()'.
+
+   * Named vectors are considered vectors in R but not in S (e.g.,
+     'is.vector(c(a = 1:3))' returns 'FALSE' in S and 'TRUE' in R).
+
+   * Data frames are not considered as matrices in R (i.e., if 'DF' is a
+     data frame, then 'is.matrix(DF)' returns 'FALSE' in R and 'TRUE' in
+     S).
+
+   * R by default uses treatment contrasts in the unordered case,
+     whereas S uses the Helmert ones.  This is a deliberate difference
+     reflecting the opinion that treatment contrasts are more natural.
+
+   * In R, the argument of a replacement function which corresponds to
+     the right hand side must be named 'value'.  E.g., 'f(a) <- b' is
+     evaluated as 'a <- "f<-"(a, value = b)'.  S always takes the last
+     argument, irrespective of its name.
+
+   * In S, 'substitute()' searches for names for substitution in the
+     given expression in three places: the actual and the default
+     arguments of the matching call, and the local frame (in that
+     order).  R looks in the local frame only, with the special rule to
+     use a "promise" if a variable is not evaluated.  Since the local
+     frame is initialized with the actual arguments or the default
+     expressions, this is usually equivalent to S, until assignment
+     takes place.
+
+   * In S, the index variable in a 'for()' loop is local to the inside
+     of the loop.  In R it is local to the environment where the 'for()'
+     statement is executed.
+
+   * In S, 'tapply(simplify=TRUE)' returns a vector where R returns a
+     one-dimensional array (which can have named dimnames).
+
+   * In S(-PLUS) the C locale is used, whereas in R the current
+     operating system locale is used for determining which characters
+     are alphanumeric and how they are sorted.  This affects the set of
+     valid names for R objects (for example accented chars may be
+     allowed in R) and ordering in sorts and comparisons (such as
+     whether '"aA" < "Bb"' is true or false).  From version 1.2.0 the
+     locale can be (re-)set in R by the 'Sys.setlocale()' function.
+
+   * In S, 'missing(ARG)' remains 'TRUE' if ARG is subsequently
+     modified; in R it doesn't.
+
+   * From R version 1.3.0, 'data.frame' strips 'I()' when creating
+     (column) names.
+
+   * In R, the string '"NA"' is not treated as a missing value in a
+     character variable.  Use 'as.character(NA)' to create a missing
+     character value.
+
+   * R disallows repeated formal arguments in function calls.
+
+   * In S, 'dump()', 'dput()' and 'deparse()' are essentially different
+     interfaces to the same code.  In R from version 2.0.0, this is only
+     true if the same 'control' argument is used, but by default it is
+     not.  By default 'dump()' tries to write code that will evaluate to
+     reproduce the object, whereas 'dput()' and 'deparse()' default to
+     options for producing deparsed code that is readable.
+
+   * In R, indexing a vector, matrix, array or data frame with '[' using
+     a character vector index looks only for exact matches (whereas '[['
+     and '$' allow partial matches).  In S, '[' allows partial matches.
+
+   * S has a two-argument version of 'atan' and no 'atan2'.  A call in S
+     such as 'atan(x1, x2)' is equivalent to R's 'atan2(x1, x2)'.
+     However, beware of named arguments since S's 'atan(x = a, y = b)'
+     is equivalent to R's 'atan2(y = a, x = b)' with the meanings of 'x'
+     and 'y' interchanged.  (R used to have undocumented support for a
+     two-argument 'atan' with positional arguments, but this has been
+     withdrawn to avoid further confusion.)
+
+   * Numeric constants with no fractional and exponent (i.e., only
+     integer) part are taken as integer in S-PLUS 6.x or later, but as
+     double in R.
+
+   There are also differences which are not intentional, and result from
+missing or incorrect code in R. The developers would appreciate hearing
+about any deficiencies you may find (in a written report fully
+documenting the difference as you see it).  Of course, it would be
+useful if you were to implement the change yourself and make sure it
+works.
+
+3.4 Is there anything R can do that S-PLUS cannot?
+==================================================
+
+Since almost anything you can do in R has source code that you could
+port to S-PLUS with little effort there will never be much you can do in
+R that you couldn't do in S-PLUS if you wanted to.  (Note that using
+lexical scoping may simplify matters considerably, though.)
+
+   R offers several graphics features that S-PLUS does not, such as
+finer handling of line types, more convenient color handling (via
+palettes), gamma correction for color, and, most importantly,
+mathematical annotation in plot texts, via input expressions reminiscent
+of TeX constructs.  See the help page for 'plotmath', which features an
+impressive on-line example.  More details can be found in Paul Murrell
+and Ross Ihaka (2000), "An Approach to Providing Mathematical Annotation
+in Plots", _Journal of Computational and Graphical Statistics_, *9*,
+582-599.
+
+3.5 What is R-plus?
+===================
+
+For a very long time, there was no such thing.
+
+   XLSolutions Corporation (http://www.xlsolutions-corp.com/) is
+currently beta testing a commercially supported version of R named R+
+(read R plus).
+
+   Revolution Analytics (http://www.revolution-computing.com/) has
+released REvolution R
+(http://www.revolution-computing.com/products/revolution-r.php), an
+enterprise-class statistical analysis system based on R, suitable for
+deployment in professional, commercial and regulated environments.
+
+   See also
+<https://en.wikipedia.org/wiki/R_programming_language#Commercialized_versions_of_R>
+for pointers to commercialized versions of R.
+
+4 R Web Interfaces
+******************
+
+*Rweb* is developed and maintained by Jeff Banfield
+<jeff@math.montana.edu>.  The Rweb Home Page
+(http://www.math.montana.edu/Rweb/) provides access to all three
+versions of Rweb--a simple text entry form that returns output and
+graphs, a more sophisticated JavaScript version that provides a multiple
+window environment, and a set of point and click modules that are useful
+for introductory statistics courses and require no knowledge of the R
+language.  All of the Rweb versions can analyze Web accessible datasets
+if a URL is provided.
+
+   The paper "Rweb: Web-based Statistical Analysis", providing a
+detailed explanation of the different versions of Rweb and an overview
+of how Rweb works, was published in the Journal of Statistical Software
+(<http://www.jstatsoft.org/v04/i01/>).
+
+   Ulf Bartel <ulfi@cs.tu-berlin.de> has developed *R-Online*, a simple
+on-line programming environment for R which intends to make the first
+steps in statistical programming with R (especially with time series) as
+easy as possible.  There is no need for a local installation since the
+only requirement for the user is a JavaScript capable browser.  See
+<http://www.osvisions.com/r_online/> for more information.
+
+   *Rcgi* is a CGI WWW interface to R by MJ Ray <mjr@dsl.pipex.com>.  It
+had the ability to use "embedded code": you could mix user input and
+code, allowing the HTML author to do anything from load in data sets to
+enter most of the commands for users without writing CGI scripts.
+Graphical output was possible in PostScript or GIF formats and the
+executed code was presented to the user for revision.  However, it is
+not clear if the project is still active.
+
+   There are many additional examples of web interfaces to R which
+basically allow to submit R code to a remote server, see for example the
+collection of links available from
+<http://biostat.mc.vanderbilt.edu/twiki/bin/view/Main/StatCompCourse>.
+
+   David Firth (http://www.warwick.ac.uk/go/dfirth) has written
+*CGIwithR* (https://CRAN.R-project.org/package=CGIwithR), an R add-on
+package available from CRAN.  It provides some simple extensions to R to
+facilitate running R scripts through the CGI interface to a web server,
+and allows submission of data using both GET and POST methods.  It is
+easily installed using Apache under Linux and in principle should run on
+any platform that supports R and a web server provided that the
+installer has the necessary security permissions.  David's paper
+"CGIwithR: Facilities for Processing Web Forms Using R" was published in
+the Journal of Statistical Software
+(<http://www.jstatsoft.org/v08/i10/>).  The package is now maintained by
+Duncan Temple Lang <duncan@wald.ucdavis.edu>.  and has a web page at
+<http://www.omegahat.net/CGIwithR/>.
+
+   Jeff Horner is working on the R/Apache Integration Project which
+embeds the R interpreter inside Apache 2 (and beyond).  A tutorial and
+presentation are available from the project web page at
+<http://biostat.mc.vanderbilt.edu/twiki/bin/view/Main/RApacheProject>.
+
+   Rserve (https://www.rforge.net/Rserve/) is a project actively
+developed by Simon Urbanek.  It implements a TCP/IP server which allows
+other programs to use facilities of R. Clients are available from the
+web site for Java and C++ (and could be written for other languages that
+support TCP/IP sockets).
+
+   Two projects use PHP to provide a web interface to R. R_PHP_Online
+(http://steve-chen.net/R_PHP/) by Steve Chen (though it is unclear if
+this project is still active) is somewhat similar to the above Rcgi and
+Rweb.  R-php (http://dssm.unipa.it/R-php/?cmd=home) is actively
+developed by Alfredo Pontillo and Angelo Mineo and provides both a web
+interface to R and a set of pre-specified analyses that need no R code
+input.
+
+   webbioc (https://www.bioconductor.org/) is "an integrated web
+interface for doing microarray analysis using several of the
+Bioconductor packages" and is designed to be installed at local sites as
+a shared computing resource.
+
+   Rwui (http://sysbio.mrc-bsu.cam.ac.uk/Rwui) is a web application to
+create user-friendly web interfaces for R scripts.  All code for the web
+interface is created automatically.  There is no need for the user to do
+any extra scripting or learn any new scripting techniques.
+
+   The *R.rsp* (https://CRAN.R-project.org/package=R.rsp) package by
+Henrik Bengtsson introduces "R Server Pages".  Analogous to Java Server
+Pages, an R server page is typically HTML with embedded R code that gets
+evaluated when the page is requested.  The package includes an internal
+cross-platform HTTP server implemented in Tcl, so provides a good
+framework for including web-based user interfaces in packages.  The
+approach is similar to the use of the *brew*
+(https://CRAN.R-project.org/package=brew) package with Rapache
+(http://rapache.net/) with the advantage of cross-platform support and
+easy installation.
+
+   The *Rook* (https://CRAN.R-project.org/package=Rook) package by
+Jeffrey Horner provides a web server interface borrowing heavily from
+Ruby's Rack project.
+
+   Finally, Concerto (http://code.google.com/p/concerto-platform/) is a
+user friendly open-source Web Interface to R developed at the
+Psychometrics Centre of Cambridge University.  It was designed as an
+online platform to design and run Computerized Adaptive Tests, but can
+be also used as a general-purpose R Web Interface.  It allows R users
+with no programming or web designing background to quickly develop
+flexible and powerful online applications, websites, and psychometrics
+tests.  To maximize its reliability, security, and performance, Concerto
+relies on the popular and reliable open-source elements such as MySQL
+server (exchange and storage of the data), Rstudio
+(https://rstudio.org/) (R code designing and testing, file management),
+CKEditor (HTML Layer design), and PHP.
+
+5 R Add-On Packages
+*******************
+
+5.1 Which add-on packages exist for R?
+======================================
+
+5.1.1 Add-on packages in R
+--------------------------
+
+The R distribution comes with the following packages:
+
+*base*
+     Base R functions (and datasets before R 2.0.0).
+*compiler*
+     R byte code compiler (added in R 2.13.0).
+*datasets*
+     Base R datasets (added in R 2.0.0).
+*grDevices*
+     Graphics devices for base and grid graphics (added in R 2.0.0).
+*graphics*
+     R functions for base graphics.
+*grid*
+     A rewrite of the graphics layout capabilities, plus some support
+     for interaction.
+*methods*
+     Formally defined methods and classes for R objects, plus other
+     programming tools, as described in the Green Book.
+*parallel*
+     Support for parallel computation, including by forking and by
+     sockets, and random-number generation (added in R 2.14.0).
+*splines*
+     Regression spline functions and classes.
+*stats*
+     R statistical functions.
+*stats4*
+     Statistical functions using S4 classes.
+*tcltk*
+     Interface and language bindings to Tcl/Tk GUI elements.
+*tools*
+     Tools for package development and administration.
+*utils*
+     R utility functions.
+   These "base packages" were substantially reorganized in R 1.9.0.  The
+former *base* was split into the four packages *base*, *graphics*,
+*stats*, and *utils*.  Packages *ctest*, *eda*, *modreg*, *mva*, *nls*,
+*stepfun* and *ts* were merged into *stats*, package *lqs* returned to
+the recommended package *MASS*
+(https://CRAN.R-project.org/package=MASS), and package *mle* moved to
+*stats4*.
+
+5.1.2 Add-on packages from CRAN
+-------------------------------
+
+The CRAN 'src/contrib' area contains a wealth of add-on packages,
+including the following _recommended_ packages which are to be included
+in all binary distributions of R.
+
+*KernSmooth*
+     Functions for kernel smoothing (and density estimation)
+     corresponding to the book "Kernel Smoothing" by M. P. Wand and M.
+     C. Jones, 1995.
+*MASS*
+     Functions and datasets from the main package of Venables and
+     Ripley, "Modern Applied Statistics with S". (Contained in the 'VR'
+     bundle for R versions prior to 2.10.0.)
+*Matrix*
+     A Matrix package.  (Recommended for R 2.9.0 or later.)
+*boot*
+     Functions and datasets for bootstrapping from the book "Bootstrap
+     Methods and Their Applications" by A. C. Davison and D. V. Hinkley,
+     1997, Cambridge University Press.
+*class*
+     Functions for classification (k-nearest neighbor and LVQ).
+     (Contained in the 'VR' bundle for R versions prior to 2.10.0.)
+*cluster*
+     Functions for cluster analysis.
+*codetools*
+     Code analysis tools.  (Recommended for R 2.5.0 or later.)
+*foreign*
+     Functions for reading and writing data stored by statistical
+     software like Minitab, S, SAS, SPSS, Stata, Systat, etc.
+*lattice*
+     Lattice graphics, an implementation of Trellis Graphics functions.
+*mgcv*
+     Routines for GAMs and other generalized ridge regression problems
+     with multiple smoothing parameter selection by GCV or UBRE.
+*nlme*
+     Fit and compare Gaussian linear and nonlinear mixed-effects models.
+*nnet*
+     Software for single hidden layer perceptrons ("feed-forward neural
+     networks"), and for multinomial log-linear models.  (Contained in
+     the 'VR' bundle for R versions prior to 2.10.0.)
+*rpart*
+     Recursive PARTitioning and regression trees.
+*spatial*
+     Functions for kriging and point pattern analysis from "Modern
+     Applied Statistics with S" by W. Venables and B. Ripley.
+     (Contained in the 'VR' bundle for R versions prior to 2.10.0.)
+*survival*
+     Functions for survival analysis, including penalized likelihood.
+   See the CRAN contributed packages page for more information.
+
+   Many of these packages are categorized into CRAN Task Views
+(https://CRAN.R-project.org/web/views/), allowing to browse packages by
+topic and providing tools to automatically install all packages for
+special areas of interest.
+
+   Some CRAN packages that do not build out of the box on Windows,
+require additional software, or are shipping third party libraries for
+Windows cannot be made available on CRAN in form of a Windows binary
+packages.  Nevertheless, some of these packages are available at the
+"CRAN extras" repository at <https://www.stats.ox.ac.uk/pub/RWin/>
+kindly provided by Brian D. Ripley.  Note that this repository is a
+default repository for recent versions of R for Windows.
+
+5.1.3 Add-on packages from Omegahat
+-----------------------------------
+
+The Omega Project for Statistical Computing (http://www.omegahat.net/)
+provides a variety of open-source software for statistical applications,
+with special emphasis on web-based software, Java, the Java virtual
+machine, and distributed computing.  A CRAN style R package repository
+is available via <http://www.omegahat.net/R/>.  See
+<http://www.omegahat.net/> for information on most R packages available
+from the Omega project.
+
+5.1.4 Add-on packages from Bioconductor
+---------------------------------------
+
+Bioconductor (https://www.bioconductor.org/) is an open source and open
+development software project for the analysis and comprehension of
+genomic data.  Most Bioconductor components are distributed as R add-on
+packages.  Initially most of the Bioconductor software packages
+(https://bioconductor.org/packages/release/BiocViews.html#___Software)
+focused primarily on DNA microarray data analysis.  As the project has
+matured, the functional scope of the software packages broadened to
+include the analysis of all types of genomic data, such as SAGE,
+sequence, or SNP data.  In addition, there are metadata (annotation, CDF
+and probe) and experiment data packages.  See
+<https://www.bioconductor.org/download/> for available packages and a
+complete taxonomy via BioC Views.
+
+5.1.5 Other add-on packages
+---------------------------
+
+Many more packages are available from places other than the three
+default repositories discussed above (CRAN, Bioconductor and Omegahat).
+In particular, R-Forge provides a CRAN style repository at
+<https://R-Forge.R-project.org/>.
+
+   More code has been posted to the R-help mailing list, and can be
+obtained from the mailing list archive.
+
+5.2 How can add-on packages be installed?
+=========================================
+
+(Unix-like only.)  The add-on packages on CRAN come as gzipped tar files
+named 'PKG_VERSION.tar.gz', which may in fact be "bundles" containing
+more than one package.  Let PATH be the path to such a package file.
+Provided that 'tar' and 'gzip' are available on your system, type
+
+     $ R CMD INSTALL PATH/PKG_VERSION.tar.gz
+
+at the shell prompt to install to the library tree rooted at the first
+directory in your library search path (see the help page for
+'.libPaths()' for details on how the search path is determined).
+
+   To install to another tree (e.g., your private one), use
+
+     $ R CMD INSTALL -l LIB PATH/PKG_VERSION.tar.gz
+
+where LIB gives the path to the library tree to install to.
+
+   Even more conveniently, you can install and automatically update
+packages from within R if you have access to repositories such as CRAN.
+See the help page for 'available.packages()' for more information.
+
+5.3 How can add-on packages be used?
+====================================
+
+To find out which additional packages are available on your system, type
+
+     library()
+
+at the R prompt.
+
+   This produces something like
+
+          Packages in `/home/me/lib/R':
+
+          mystuff       My own R functions, nicely packaged but not documented
+
+          Packages in `/usr/local/lib/R/library':
+
+          KernSmooth    Functions for kernel smoothing for Wand & Jones (1995)
+          MASS          Main Package of Venables and Ripley's MASS
+          Matrix        Sparse and Dense Matrix Classes and Methods
+          base          The R Base package
+          boot          Bootstrap R (S-Plus) Functions (Canty)
+          class         Functions for Classification
+          cluster       Functions for clustering (by Rousseeuw et al.)
+          codetools     Code Analysis Tools for R
+          datasets      The R Datasets Package
+          foreign       Read Data Stored by Minitab, S, SAS, SPSS, Stata, Systat,
+                        dBase, ...
+          grDevices     The R Graphics Devices and Support for Colours and Fonts
+          graphics      The R Graphics Package
+          grid          The Grid Graphics Package
+          lattice       Lattice Graphics
+          methods       Formal Methods and Classes
+          mgcv          GAMs with GCV/AIC/REML smoothness estimation and GAMMs
+                        by PQL
+          nlme          Linear and Nonlinear Mixed Effects Models
+          nnet          Feed-forward Neural Networks and Multinomial Log-Linear
+                        Models
+          rpart         Recursive Partitioning
+          spatial       Functions for Kriging and Point Pattern Analysis
+          splines       Regression Spline Functions and Classes
+          stats         The R Stats Package
+          stats4        Statistical functions using S4 Classes
+          survival      Survival analysis, including penalised likelihood
+          tcltk         Tcl/Tk Interface
+          tools         Tools for Package Development
+          utils         The R Utils Package
+
+   You can "load" the installed package PKG by
+
+     library(PKG)
+
+   You can then find out which functions it provides by typing one of
+
+     library(help = PKG)
+     help(package = PKG)
+
+   You can unload the loaded package PKG by
+
+     detach("package:PKG", unload = TRUE)
+
+(where 'unload = TRUE' is needed only for packages with a namespace, see
+'?unload').
+
+5.4 How can add-on packages be removed?
+=======================================
+
+Use
+
+     $ R CMD REMOVE PKG_1 ... PKG_N
+
+to remove the packages PKG_1, ..., PKG_N from the library tree rooted at
+the first directory given in 'R_LIBS' if this is set and non-null, and
+from the default library otherwise.  (Versions of R prior to 1.3.0
+removed from the default library by default.)
+
+   To remove from library LIB, do
+
+     $ R CMD REMOVE -l LIB PKG_1 ... PKG_N
+
+5.5 How can I create an R package?
+==================================
+
+A package consists of a subdirectory containing a file 'DESCRIPTION' and
+the subdirectories 'R', 'data', 'demo', 'exec', 'inst', 'man', 'po',
+'src', and 'tests' (some of which can be missing).  The package
+subdirectory may also contain files 'INDEX', 'NAMESPACE', 'configure',
+'cleanup', 'LICENSE', 'LICENCE', 'COPYING' and 'NEWS'.
+
+   See section "Creating R packages" in 'Writing R Extensions', for
+details.  This manual is included in the R distribution, *note What
+documentation exists for R?::, and gives information on package
+structure, the configure and cleanup mechanisms, and on automated
+package checking and building.
+
+   R version 1.3.0 has added the function 'package.skeleton()' which
+will set up directories, save data and code, and create skeleton help
+files for a set of R functions and datasets.
+
+   *Note What is CRAN?::, for information on uploading a package to
+CRAN.
+
+5.6 How can I contribute to R?
+==============================
+
+R is in active development and there is always a risk of bugs creeping
+in.  Also, the developers do not have access to all possible machines
+capable of running R. So, simply using it and communicating problems is
+certainly of great value.
+
+   The R Developer Page (https://developer.R-project.org/) acts as an
+intermediate repository for more or less finalized ideas and plans for
+the R statistical system.  It contains (pointers to) TODO lists, RFCs,
+various other writeups, ideas lists, and SVN miscellanea.
+
+6 R and Emacs
+*************
+
+6.1 Is there Emacs support for R?
+=================================
+
+There is an Emacs package called ESS ("Emacs Speaks Statistics") which
+provides a standard interface between statistical programs and
+statistical processes.  It is intended to provide assistance for
+interactive statistical programming and data analysis.  Languages
+supported include: S dialects (R, S 3/4, and S-PLUS
+3.x/4.x/5.x/6.x/7.x), LispStat dialects (XLispStat, ViSta), SAS, Stata,
+and BUGS.
+
+   ESS grew out of the need for bug fixes and extensions to S-mode 4.8
+(which was a GNU Emacs interface to S/S-PLUS version 3 only).  The
+current set of developers desired support for XEmacs, R, S4, and MS
+Windows.  In addition, with new modes being developed for R, Stata, and
+SAS, it was felt that a unifying interface and framework for the user
+interface would benefit both the user and the developer, by helping both
+groups conform to standard Emacs usage.  The end result is an increase
+in efficiency for statistical programming and data analysis, over the
+usual tools.
+
+   R support contains code for editing R source code (syntactic
+indentation and highlighting of source code, partial evaluations of
+code, loading and error-checking of code, and source code revision
+maintenance) and documentation (syntactic indentation and highlighting
+of source code, sending examples to running ESS process, and
+previewing), interacting with an inferior R process from within Emacs
+(command-line editing, searchable command history, command-line
+completion of R object and file names, quick access to object and search
+lists, transcript recording, and an interface to the help system), and
+transcript manipulation (recording and saving transcript files,
+manipulating and editing saved transcripts, and re-evaluating commands
+from transcript files).
+
+   The latest stable version of ESS is available via CRAN or the ESS web
+page (https://ESS.R-project.org/).
+
+   ESS comes with detailed installation instructions.
+
+   For help with ESS, send email to <ESS-help@r-project.org>.
+
+   Please send bug reports and suggestions on ESS to
+<ESS-bugs@r-project.org>.  The easiest way to do this from is within
+Emacs by typing 'M-x ess-submit-bug-report' or using the [ESS] or [iESS]
+pulldown menus.
+
+6.2 Should I run R from within Emacs?
+=====================================
+
+Yes, _definitely_.  Inferior R mode provides a readline/history
+mechanism, object name completion, and syntax-based highlighting of the
+interaction buffer using Font Lock mode, as well as a very convenient
+interface to the R help system.
+
+   Of course, it also integrates nicely with the mechanisms for editing
+R source using Emacs.  One can write code in one Emacs buffer and send
+whole or parts of it for execution to R; this is helpful for both data
+analysis and programming.  One can also seamlessly integrate with a
+revision control system, in order to maintain a log of changes in your
+programs and data, as well as to allow for the retrieval of past
+versions of the code.
+
+   In addition, it allows you to keep a record of your session, which
+can also be used for error recovery through the use of the transcript
+mode.
+
+   To specify command line arguments for the inferior R process, use
+'C-u M-x R' for starting R.
+
+6.3 Debugging R from within Emacs
+=================================
+
+To debug R "from within Emacs", there are several possibilities.  To use
+the Emacs GUD (Grand Unified Debugger) library with the recommended
+debugger GDB, type 'M-x gdb' and give the path to the R _binary_ as
+argument.  At the 'gdb' prompt, set 'R_HOME' and other environment
+variables as needed (using e.g. 'set env R_HOME /path/to/R/', but see
+also below), and start the binary with the desired arguments (e.g., 'run
+--quiet').
+
+   If you have ESS, you can do 'C-u M-x R <RET> - d <SPC> g d b <RET>'
+to start an inferior R process with arguments '-d gdb'.
+
+   A third option is to start an inferior R process via ESS ('M-x R')
+and then start GUD ('M-x gdb') giving the R binary (using its full path
+name) as the program to debug.  Use the program 'ps' to find the process
+number of the currently running R process then use the 'attach' command
+in gdb to attach it to that process.  One advantage of this method is
+that you have separate '*R*' and '*gud-gdb*' windows.  Within the '*R*'
+window you have all the ESS facilities, such as object-name completion,
+that we know and love.
+
+   When using GUD mode for debugging from within Emacs, you may find it
+most convenient to use the directory with your code in it as the current
+working directory and then make a symbolic link from that directory to
+the R binary.  That way '.gdbinit' can stay in the directory with the
+code and be used to set up the environment and the search paths for the
+source, e.g. as follows:
+
+     set env R_HOME /opt/R
+     set env R_PAPERSIZE letter
+     set env R_PRINTCMD lpr
+     dir /opt/R/src/appl
+     dir /opt/R/src/main
+     dir /opt/R/src/nmath
+     dir /opt/R/src/unix
+
+7 R Miscellanea
+***************
+
+7.1 How can I set components of a list to NULL?
+===============================================
+
+You can use
+
+     x[i] <- list(NULL)
+
+to set component 'i' of the list 'x' to 'NULL', similarly for named
+components.  Do not set 'x[i]' or 'x[[i]]' to 'NULL', because this will
+remove the corresponding component from the list.
+
+   For dropping the row names of a matrix 'x', it may be easier to use
+'rownames(x) <- NULL', similarly for column names.
+
+7.2 How can I save my workspace?
+================================
+
+'save.image()' saves the objects in the user's '.GlobalEnv' to the file
+'.RData' in the R startup directory.  (This is also what happens after
+'q("yes")'.)  Using 'save.image(FILE)' one can save the image under a
+different name.
+
+7.3 How can I clean up my workspace?
+====================================
+
+To remove all objects in the currently active environment (typically
+'.GlobalEnv'), you can do
+
+     rm(list = ls(all = TRUE))
+
+(Without 'all = TRUE', only the objects with names not starting with a
+'.' are removed.)
+
+7.4 How can I get eval() and D() to work?
+=========================================
+
+Strange things will happen if you use 'eval(print(x), envir = e)' or
+'D(x^2, "x")'.  The first one will either tell you that "'x'" is not
+found, or print the value of the wrong 'x'.  The other one will likely
+return zero if 'x' exists, and an error otherwise.
+
+   This is because in both cases, the first argument is evaluated in the
+calling environment first.  The result (which should be an object of
+mode '"expression"' or '"call"') is then evaluated or differentiated.
+What you (most likely) really want is obtained by "quoting" the first
+argument upon surrounding it with 'expression()'.  For example,
+
+     R> D(expression(x^2), "x")
+     2 * x
+
+   Although this behavior may initially seem to be rather strange, it is
+perfectly logical.  The "intuitive" behavior could easily be
+implemented, but problems would arise whenever the expression is
+contained in a variable, passed as a parameter, or is the result of a
+function call.  Consider for instance the semantics in cases like
+
+     D2 <- function(e, n) D(D(e, n), n)
+
+or
+
+     g <- function(y) eval(substitute(y), sys.frame(sys.parent(n = 2)))
+     g(a * b)
+
+   See the help page for 'deriv()' for more examples.
+
+7.5 Why do my matrices lose dimensions?
+=======================================
+
+When a matrix with a single row or column is created by a subscripting
+operation, e.g., 'row <- mat[2, ]', it is by default turned into a
+vector.  In a similar way if an array with dimension, say, 2 x 3 x 1 x 4
+is created by subscripting it will be coerced into a 2 x 3 x 4 array,
+losing the unnecessary dimension.  After much discussion this has been
+determined to be a _feature_.
+
+   To prevent this happening, add the option 'drop = FALSE' to the
+subscripting.  For example,
+
+     rowmatrix <- mat[2, , drop = FALSE]  # creates a row matrix
+     colmatrix <- mat[, 2, drop = FALSE]  # creates a column matrix
+     a <- b[1, 1, 1, drop = FALSE]        # creates a 1 x 1 x 1 array
+
+   The 'drop = FALSE' option should be used defensively when
+programming.  For example, the statement
+
+     somerows <- mat[index, ]
+
+will return a vector rather than a matrix if 'index' happens to have
+length 1, causing errors later in the code.  It should probably be
+rewritten as
+
+     somerows <- mat[index, , drop = FALSE]
+
+7.6 How does autoloading work?
+==============================
+
+R has a special environment called '.AutoloadEnv'.  Using
+'autoload(NAME, PKG)', where NAME and PKG are strings giving the names
+of an object and the package containing it, stores some information in
+this environment.  When R tries to evaluate NAME, it loads the
+corresponding package PKG and reevaluates NAME in the new package's
+environment.
+
+   Using this mechanism makes R behave as if the package was loaded, but
+does not occupy memory (yet).
+
+   See the help page for 'autoload()' for a very nice example.
+
+7.7 How should I set options?
+=============================
+
+The function 'options()' allows setting and examining a variety of
+global "options" which affect the way in which R computes and displays
+its results.  The variable '.Options' holds the current values of these
+options, but should never directly be assigned to unless you want to
+drive yourself crazy--simply pretend that it is a "read-only" variable.
+
+   For example, given
+
+     test1 <- function(x = pi, dig = 3) {
+       oo <- options(digits = dig); on.exit(options(oo));
+       cat(.Options$digits, x, "\n")
+     }
+     test2 <- function(x = pi, dig = 3) {
+       .Options$digits <- dig
+       cat(.Options$digits, x, "\n")
+     }
+
+we obtain:
+
+     R> test1()
+     3 3.14
+     R> test2()
+     3 3.141593
+
+   What is really used is the _global_ value of '.Options', and using
+'options(OPT = VAL)' correctly updates it.  Local copies of '.Options',
+either in '.GlobalEnv' or in a function environment (frame), are just
+silently disregarded.
+
+7.8 How do file names work in Windows?
+======================================
+
+As R uses C-style string handling, '\' is treated as an escape
+character, so that for example one can enter a newline as '\n'.  When
+you really need a '\', you have to escape it with another '\'.
+
+   Thus, in filenames use something like '"c:\\data\\money.dat"'.  You
+can also replace '\' by '/' ('"c:/data/money.dat"').
+
+7.9 Why does plotting give a color allocation error?
+====================================================
+
+On an X11 device, plotting sometimes, e.g., when running
+'demo("image")', results in "Error: color allocation error".  This is an
+X problem, and only indirectly related to R. It occurs when applications
+started prior to R have used all the available colors.  (How many colors
+are available depends on the X configuration; sometimes only 256 colors
+can be used.)
+
+   One application which is notorious for "eating" colors is Netscape.
+If the problem occurs when Netscape is running, try (re)starting it with
+either the '-no-install' (to use the default colormap) or the '-install'
+(to install a private colormap) option.
+
+   You could also set the 'colortype' of 'X11()' to '"pseudo.cube"'
+rather than the default '"pseudo"'.  See the help page for 'X11()' for
+more information.
+
+7.10 How do I convert factors to numeric?
+=========================================
+
+It may happen that when reading numeric data into R (usually, when
+reading in a file), they come in as factors.  If 'f' is such a factor
+object, you can use
+
+     as.numeric(as.character(f))
+
+to get the numbers back.  More efficient, but harder to remember, is
+
+     as.numeric(levels(f))[as.integer(f)]
+
+   In any case, do not call 'as.numeric()' or their likes directly for
+the task at hand (as 'as.numeric()' or 'unclass()' give the internal
+codes).
+
+7.11 Are Trellis displays implemented in R?
+===========================================
+
+The recommended package *lattice*
+(https://CRAN.R-project.org/package=lattice) (which is based on base
+package *grid*) provides graphical functionality that is compatible with
+most Trellis commands.
+
+   You could also look at 'coplot()' and 'dotchart()' which might do at
+least some of what you want.  Note also that the R version of 'pairs()'
+is fairly general and provides most of the functionality of 'splom()',
+and that R's default plot method has an argument 'asp' allowing to
+specify (and fix against device resizing) the aspect ratio of the plot.
+
+   (Because the word "Trellis" has been claimed as a trademark we do not
+use it in R. The name "lattice" has been chosen for the R equivalent.)
+
+7.12 What are the enclosing and parent environments?
+====================================================
+
+Inside a function you may want to access variables in two additional
+environments: the one that the function was defined in ("enclosing"),
+and the one it was invoked in ("parent").
+
+   If you create a function at the command line or load it in a package
+its enclosing environment is the global workspace.  If you define a
+function 'f()' inside another function 'g()' its enclosing environment
+is the environment inside 'g()'.  The enclosing environment for a
+function is fixed when the function is created.  You can find out the
+enclosing environment for a function 'f()' using 'environment(f)'.
+
+   The "parent" environment, on the other hand, is defined when you
+invoke a function.  If you invoke 'lm()' at the command line its parent
+environment is the global workspace, if you invoke it inside a function
+'f()' then its parent environment is the environment inside 'f()'.  You
+can find out the parent environment for an invocation of a function by
+using 'parent.frame()' or 'sys.frame(sys.parent())'.
+
+   So for most user-visible functions the enclosing environment will be
+the global workspace, since that is where most functions are defined.
+The parent environment will be wherever the function happens to be
+called from.  If a function 'f()' is defined inside another function
+'g()' it will probably be used inside 'g()' as well, so its parent
+environment and enclosing environment will probably be the same.
+
+   Parent environments are important because things like model formulas
+need to be evaluated in the environment the function was called from,
+since that's where all the variables will be available.  This relies on
+the parent environment being potentially different with each invocation.
+
+   Enclosing environments are important because a function can use
+variables in the enclosing environment to share information with other
+functions or with other invocations of itself (see the section on
+lexical scoping).  This relies on the enclosing environment being the
+same each time the function is invoked.  (In C this would be done with
+static variables.)
+
+   Scoping _is_ hard.  Looking at examples helps.  It is particularly
+instructive to look at examples that work differently in R and S and try
+to see why they differ.  One way to describe the scoping differences
+between R and S is to say that in S the enclosing environment is
+_always_ the global workspace, but in R the enclosing environment is
+wherever the function was created.
+
+7.13 How can I substitute into a plot label?
+============================================
+
+Often, it is desired to use the value of an R object in a plot label,
+e.g., a title.  This is easily accomplished using 'paste()' if the label
+is a simple character string, but not always obvious in case the label
+is an expression (for refined mathematical annotation).  In such a case,
+either use 'parse()' on your pasted character string or use
+'substitute()' on an expression.  For example, if 'ahat' is an estimator
+of your parameter a of interest, use
+
+     title(substitute(hat(a) == ahat, list(ahat = ahat)))
+
+(note that it is '==' and not '=').  Sometimes 'bquote()' gives a more
+compact form, e.g.,
+
+     title(bquote(hat(a) = .(ahat)))
+
+where subexpressions enclosed in '.()' are replaced by their values.
+
+   There are more examples in the mailing list archives.
+
+7.14 What are valid names?
+==========================
+
+When creating data frames using 'data.frame()' or 'read.table()', R by
+default ensures that the variable names are syntactically valid.  (The
+argument 'check.names' to these functions controls whether variable
+names are checked and adjusted by 'make.names()' if needed.)
+
+   To understand what names are "valid", one needs to take into account
+that the term "name" is used in several different (but related) ways in
+the language:
+
+  1. A _syntactic name_ is a string the parser interprets as this type
+     of expression.  It consists of letters, numbers, and the dot and
+     (for versions of R at least 1.9.0) underscore characters, and
+     starts with either a letter or a dot not followed by a number.
+     Reserved words are not syntactic names.
+  2. An _object name_ is a string associated with an object that is
+     assigned in an expression either by having the object name on the
+     left of an assignment operation or as an argument to the 'assign()'
+     function.  It is usually a syntactic name as well, but can be any
+     non-empty string if it is quoted (and it is always quoted in the
+     call to 'assign()').
+
+  3. An _argument name_ is what appears to the left of the equals sign
+     when supplying an argument in a function call (for example,
+     'f(trim=.5)').  Argument names are also usually syntactic names,
+     but again can be anything if they are quoted.
+
+  4. An _element name_ is a string that identifies a piece of an object
+     (a component of a list, for example.)  When it is used on the right
+     of the '$' operator, it must be a syntactic name, or quoted.
+     Otherwise, element names can be any strings.  (When an object is
+     used as a database, as in a call to 'eval()' or 'attach()', the
+     element names become object names.)
+
+  5. Finally, a _file name_ is a string identifying a file in the
+     operating system for reading, writing, etc.  It really has nothing
+     much to do with names in the language, but it is traditional to
+     call these strings file "names".
+
+7.15 Are GAMs implemented in R?
+===============================
+
+Package *gam* (https://CRAN.R-project.org/package=gam) from CRAN
+implements all the Generalized Additive Models (GAM) functionality as
+described in the GAM chapter of the White Book.  In particular, it
+implements backfitting with both local regression and smoothing splines,
+and is extendable.  There is a 'gam()' function for GAMs in package
+*mgcv* (https://CRAN.R-project.org/package=mgcv), but it is not an exact
+clone of what is described in the White Book (no 'lo()' for example).
+Package *gss* (https://CRAN.R-project.org/package=gss) can fit
+spline-based GAMs too.  And if you can accept regression splines you can
+use 'glm()'.  For Gaussian GAMs you can use 'bruto()' from package *mda*
+(https://CRAN.R-project.org/package=mda).
+
+7.16 Why is the output not printed when I source() a file?
+==========================================================
+
+Most R commands do not generate any output.  The command
+
+     1+1
+
+computes the value 2 and returns it; the command
+
+     summary(glm(y~x+z, family=binomial))
+
+fits a logistic regression model, computes some summary information and
+returns an object of class '"summary.glm"' (*note How should I write
+summary methods?::).
+
+   If you type '1+1' or 'summary(glm(y~x+z, family=binomial))' at the
+command line the returned value is automatically printed (unless it is
+'invisible()'), but in other circumstances, such as in a 'source()'d
+file or inside a function it isn't printed unless you specifically print
+it.
+
+   To print the value use
+
+     print(1+1)
+
+or
+
+     print(summary(glm(y~x+z, family=binomial)))
+
+instead, or use 'source(FILE, echo=TRUE)'.
+
+7.17 Why does outer() behave strangely with my function?
+========================================================
+
+As the help for 'outer()' indicates, it does not work on arbitrary
+functions the way the 'apply()' family does.  It requires functions that
+are vectorized to work elementwise on arrays.  As you can see by looking
+at the code, 'outer(x, y, FUN)' creates two large vectors containing
+every possible combination of elements of 'x' and 'y' and then passes
+this to 'FUN' all at once.  Your function probably cannot handle two
+large vectors as parameters.
+
+   If you have a function that cannot handle two vectors but can handle
+two scalars, then you can still use 'outer()' but you will need to wrap
+your function up first, to simulate vectorized behavior.  Suppose your
+function is
+
+     foo <- function(x, y, happy) {
+       stopifnot(length(x) == 1, length(y) == 1) # scalars only!
+       (x + y) * happy
+     }
+
+If you define the general function
+
+     wrapper <- function(x, y, my.fun, ...) {
+       sapply(seq_along(x), FUN = function(i) my.fun(x[i], y[i], ...))
+     }
+
+then you can use 'outer()' by writing, e.g.,
+
+     outer(1:4, 1:2, FUN = wrapper, my.fun = foo, happy = 10)
+
+   Scalar functions can also be vectorized using 'Vectorize()'.
+
+7.18 Why does the output from anova() depend on the order of factors in the model?
+==================================================================================
+
+In a model such as '~A+B+A:B', R will report the difference in sums of
+squares between the models '~1', '~A', '~A+B' and '~A+B+A:B'.  If the
+model were '~B+A+A:B', R would report differences between '~1', '~B',
+'~A+B', and '~A+B+A:B' .  In the first case the sum of squares for 'A'
+is comparing '~1' and '~A', in the second case it is comparing '~B' and
+'~B+A'.  In a non-orthogonal design (i.e., most unbalanced designs)
+these comparisons are (conceptually and numerically) different.
+
+   Some packages report instead the sums of squares based on comparing
+the full model to the models with each factor removed one at a time (the
+famous 'Type III sums of squares' from SAS, for example).  These do not
+depend on the order of factors in the model.  The question of which set
+of sums of squares is the Right Thing provokes low-level holy wars on
+R-help from time to time.
+
+   There is no need to be agitated about the particular sums of squares
+that R reports.  You can compute your favorite sums of squares quite
+easily.  Any two models can be compared with 'anova(MODEL1, MODEL2)',
+and 'drop1(MODEL1)' will show the sums of squares resulting from
+dropping single terms.
+
+7.19 How do I produce PNG graphics in batch mode?
+=================================================
+
+Under a Unix-like, if your installation supports the 'type="cairo"'
+option to the 'png()' device there should be no problems, and the
+default settings should just work.  This option is not available for
+versions of R prior to 2.7.0, or without support for cairo.  From R
+2.7.0 'png()' by default uses the Quartz device on macOS, and that too
+works in batch mode.
+
+   Earlier versions of the 'png()' device used the X11 driver, which is
+a problem in batch mode or for remote operation.  If you have
+Ghostscript you can use 'bitmap()', which produces a PostScript or PDF
+file then converts it to any bitmap format supported by Ghostscript.  On
+some installations this produces ugly output, on others it is perfectly
+satisfactory.  Many systems now come with Xvfb from X.Org
+(http://www.x.org/) (possibly as an optional install), which is an X11
+server that does not require a screen; and there is the *GDD*
+(https://CRAN.R-project.org/package=GDD) package from CRAN, which
+produces PNG, JPEG and GIF bitmaps without X11.
+
+7.20 How can I get command line editing to work?
+================================================
+
+The Unix-like command-line interface to R can only provide the inbuilt
+command line editor which allows recall, editing and re-submission of
+prior commands provided that the GNU readline library is available at
+the time R is configured for compilation.  Note that the 'development'
+version of readline including the appropriate headers is needed: users
+of Linux binary distributions will need to install packages such as
+'libreadline-dev' (Debian) or 'readline-devel' (Red Hat).
+
+7.21 How can I turn a string into a variable?
+=============================================
+
+If you have
+
+     varname <- c("a", "b", "d")
+
+you can do
+
+     get(varname[1]) + 2
+
+for
+
+     a + 2
+
+or
+
+     assign(varname[1], 2 + 2)
+
+for
+
+     a <- 2 + 2
+
+or
+
+     eval(substitute(lm(y ~ x + variable),
+                     list(variable = as.name(varname[1]))))
+
+for
+
+     lm(y ~ x + a)
+
+   At least in the first two cases it is often easier to just use a
+list, and then you can easily index it by name
+
+     vars <- list(a = 1:10, b = rnorm(100), d = LETTERS)
+     vars[["a"]]
+
+without any of this messing about.
+
+7.22 Why do lattice/trellis graphics not work?
+==============================================
+
+The most likely reason is that you forgot to tell R to display the
+graph.  Lattice functions such as 'xyplot()' create a graph object, but
+do not display it (the same is true of *ggplot2*
+(https://CRAN.R-project.org/package=ggplot2) graphics, and Trellis
+graphics in S-PLUS).  The 'print()' method for the graph object produces
+the actual display.  When you use these functions interactively at the
+command line, the result is automatically printed, but in 'source()' or
+inside your own functions you will need an explicit 'print()' statement.
+
+7.23 How can I sort the rows of a data frame?
+=============================================
+
+To sort the rows within a data frame, with respect to the values in one
+or more of the columns, simply use 'order()' (e.g., 'DF[order(DF$a,
+DF[["b"]]), ]' to sort the data frame 'DF' on columns named 'a' and
+'b').
+
+7.24 Why does the help.start() search engine not work?
+======================================================
+
+The browser-based search engine in 'help.start()' utilizes a Java
+applet.  In order for this to function properly, a compatible version of
+Java must installed on your system and linked to your browser, and both
+Java _and_ JavaScript need to be enabled in your browser.
+
+   There have been a number of compatibility issues with versions of
+Java and of browsers.  For further details please consult section
+"Enabling search in HTML help" in 'R Installation and Administration'.
+This manual is included in the R distribution, *note What documentation
+exists for R?::, and its HTML version is linked from the HTML search
+page.
+
+7.25 Why did my .Rprofile stop working when I updated R?
+========================================================
+
+Did you read the 'NEWS' file?  For functions that are not in the *base*
+package you need to specify the correct package namespace, since the
+code will be run _before_ the packages are loaded.  E.g.,
+
+     ps.options(horizontal = FALSE)
+     help.start()
+
+needs to be
+
+     grDevices::ps.options(horizontal = FALSE)
+     utils::help.start()
+
+('graphics::ps.options(horizontal = FALSE)' in R 1.9.x).
+
+7.26 Where have all the methods gone?
+=====================================
+
+Many functions, particularly S3 methods, are now hidden in namespaces.
+This has the advantage that they cannot be called inadvertently with
+arguments of the wrong class, but it makes them harder to view.
+
+   To see the code for an S3 method (e.g., '[.terms') use
+
+     getS3method("[", "terms")
+
+To see the code for an unexported function 'foo()' in the namespace of
+package '"bar"' use 'bar:::foo'.  Don't use these constructions to call
+unexported functions in your own code--they are probably unexported for
+a reason and may change without warning.
+
+7.27 How can I create rotated axis labels?
+==========================================
+
+To rotate axis labels (using base graphics), you need to use 'text()',
+rather than 'mtext()', as the latter does not support 'par("srt")'.
+
+     ## Increase bottom margin to make room for rotated labels
+     par(mar = c(7, 4, 4, 2) + 0.1)
+     ## Create plot with no x axis and no x axis label
+     plot(1 : 8, xaxt = "n",  xlab = "")
+     ## Set up x axis with tick marks alone
+     axis(1, labels = FALSE)
+     ## Create some text labels
+     labels <- paste("Label", 1:8, sep = " ")
+     ## Plot x axis labels at default tick marks
+     text(1:8, par("usr")[3] - 0.25, srt = 45, adj = 1,
+          labels = labels, xpd = TRUE)
+     ## Plot x axis label at line 6 (of 7)
+     mtext(1, text = "X Axis Label", line = 6)
+
+When plotting the x axis labels, we use 'srt = 45' for text rotation
+angle, 'adj = 1' to place the right end of text at the tick marks, and
+'xpd = TRUE' to allow for text outside the plot region.  You can adjust
+the value of the '0.25' offset as required to move the axis labels up or
+down relative to the x axis.  See '?par' for more information.
+
+   Also see Figure 1 and associated code in Paul Murrell (2003),
+"Integrating grid Graphics Output with Base Graphics Output", _R News_,
+*3/2*, 7-12.
+
+7.28 Why is read.table() so inefficient?
+========================================
+
+By default, 'read.table()' needs to read in everything as character
+data, and then try to figure out which variables to convert to numerics
+or factors.  For a large data set, this takes considerable amounts of
+time and memory.  Performance can substantially be improved by using the
+'colClasses' argument to specify the classes to be assumed for the
+columns of the table.
+
+7.29 What is the difference between package and library?
+========================================================
+
+A "package" is a standardized collection of material extending R, e.g.
+providing code, data, or documentation.  A "library" is a place
+(directory) where R knows to find packages it can use (i.e., which were
+"installed").  R is told to use a package (to "load" it and add it to
+the search path) via calls to the function 'library'.  I.e., 'library()'
+is employed to load a package from libraries containing packages.
+
+   *Note R Add-On Packages::, for more details.  See also Uwe Ligges
+(2003), "R Help Desk: Package Management", _R News_, *3/3*, 37-39.
+
+7.30 I installed a package but the functions are not there
+==========================================================
+
+To actually _use_ the package, it needs to be _loaded_ using
+'library()'.
+
+   See *note R Add-On Packages:: and *note What is the difference
+between package and library?:: for more information.
+
+7.31 Why doesn't R think these numbers are equal?
+=================================================
+
+The only numbers that can be represented exactly in R's numeric type are
+integers and fractions whose denominator is a power of 2.  All other
+numbers are internally rounded to (typically) 53 binary digits accuracy.
+As a result, two floating point numbers will not reliably be equal
+unless they have been computed by the same algorithm, and not always
+even then.  For example
+
+     R> a <- sqrt(2)
+     R> a * a == 2
+     [1] FALSE
+     R> a * a - 2
+     [1] 4.440892e-16
+     R> print(a * a, digits = 18)
+     [1] 2.00000000000000044
+
+   The function 'all.equal()' compares two objects using a numeric
+tolerance of '.Machine$double.eps ^ 0.5'.  If you want much greater
+accuracy than this you will need to consider error propagation
+carefully.
+
+   A discussion with many easily followed examples is in Appendix G
+"Computational Precision and Floating Point Arithmetic", pages 753-771
+of _Statistical Analysis and Data Display: An Intermediate Course with
+Examples in R_, Richard M. Heiberger and Burt Holland (Springer 2015,
+second edition).  This appendix is a free download from
+<http://link.springer.com/content/pdf/bbm%3A978-1-4939-2122-5%2F1.pdf>.
+
+   For more information, see e.g. David Goldberg (1991), "What Every
+Computer Scientist Should Know About Floating-Point Arithmetic", _ACM
+Computing Surveys_, *23/1*, 5-48, also available via
+<http://www.validlab.com/goldberg/paper.pdf>.
+
+   Here is another example, this time using addition:
+
+     R> .3 + .6 == .9
+     [1] FALSE
+     R> .3 + .6 - .9
+     [1] -1.110223e-16
+     R> print(matrix(c(.3,  .6,  .9, .3 + .6)), digits = 18)
+                          [,1]
+     [1,] 0.299999999999999989
+     [2,] 0.599999999999999978
+     [3,] 0.900000000000000022
+     [4,] 0.899999999999999911
+
+7.32 How can I capture or ignore errors in a long simulation?
+=============================================================
+
+Use 'try()', which returns an object of class '"try-error"' instead of
+an error, or preferably 'tryCatch()', where the return value can be
+configured more flexibly.  For example
+
+     beta[i,] <- tryCatch(coef(lm(formula, data)),
+                          error = function(e) rep(NaN, 4))
+
+would return the coefficients if the 'lm()' call succeeded and would
+return 'c(NaN, NaN, NaN, NaN)' if it failed (presumably there are
+supposed to be 4 coefficients in this example).
+
+7.33 Why are powers of negative numbers wrong?
+==============================================
+
+You are probably seeing something like
+
+     R> -2^2
+     [1] -4
+
+and misunderstanding the precedence rules for expressions in R. Write
+
+     R> (-2)^2
+     [1] 4
+
+to get the square of -2.
+
+   The precedence rules are documented in '?Syntax', and to see how R
+interprets an expression you can look at the parse tree
+
+     R> as.list(quote(-2^2))
+     [[1]]
+     `-`
+
+     [[2]]
+     2^2
+
+7.34 How can I save the result of each iteration in a loop into a separate file?
+================================================================================
+
+One way is to use 'paste()' (or 'sprintf()') to concatenate a stem
+filename and the iteration number while 'file.path()' constructs the
+path.  For example, to save results into files 'result1.rda', ...,
+'result100.rda' in the subdirectory 'Results' of the current working
+directory, one can use
+
+     for(i in 1:100) {
+       ## Calculations constructing "some_object" ...
+       fp <- file.path("Results", paste("result", i, ".rda", sep = ""))
+       save(list = "some_object", file = fp)
+     }
+
+7.35 Why are p-values not displayed when using lmer()?
+======================================================
+
+Doug Bates has kindly provided an extensive response in a post to the
+r-help list, which can be reviewed at
+<https://stat.ethz.ch/pipermail/r-help/2006-May/094765.html>.
+
+7.36 Why are there unwanted borders, lines or grid-like artifacts when viewing a plot saved to a PS or PDF file?
+================================================================================================================
+
+This can occur when using functions such as 'polygon()',
+'filled.contour()', 'image()' or other functions which may call these
+internally.  In the case of 'polygon()', you may observe unwanted
+borders between the polygons even when setting the 'border' argument to
+'NA' or '"transparent"'.
+
+   The source of the problem is the PS/PDF viewer when the plot is
+anti-aliased.  The details for the solution will be different depending
+upon the viewer used, the operating system and may change over time.
+For some common viewers, consider the following:
+
+Acrobat Reader (cross platform)
+     There are options in Preferences to enable/disable text smoothing,
+     image smoothing and line art smoothing.  Disable line art
+     smoothing.
+Preview (macOS)
+     There is an option in Preferences to enable/disable anti-aliasing
+     of text and line art.  Disable this option.
+GSview (cross platform)
+     There are settings for Text Alpha and Graphics Alpha.  Change
+     Graphics Alpha from 4 bits to 1 bit to disable graphic
+     anti-aliasing.
+gv (Unix-like X)
+     There is an option to enable/disable anti-aliasing.  Disable this
+     option.
+Evince (Linux/GNOME)
+     There is not an option to disable anti-aliasing in this viewer.
+Okular (Linux/KDE)
+     There is not an option in the GUI to enable/disable anti-aliasing.
+     From a console command line, use:
+          $ kwriteconfig --file okularpartrc --group 'Dlg Performance' \
+                         --key GraphicsAntialias Disabled
+     Then restart Okular.  Change the final word to 'Enabled' to restore
+     the original setting.
+
+7.37 Why does backslash behave strangely inside strings?
+========================================================
+
+This question most often comes up in relation to file names (see *note
+How do file names work in Windows?::) but it also happens that people
+complain that they cannot seem to put a single '\' character into a text
+string unless it happens to be followed by certain other characters.
+
+   To understand this, you have to distinguish between character strings
+and _representations_ of character strings.  Mostly, the representation
+in R is just the string with a single or double quote at either end, but
+there are strings that cannot be represented that way, e.g., strings
+that themselves contain the quote character.  So
+
+     > str <- "This \"text\" is quoted"
+     > str
+     [1] "This \"text\" is quoted"
+     > cat(str, "\n")
+     This "text" is quoted
+
+The _escape sequences_ '\"' and '\n' represent a double quote and the
+newline character respectively.  Printing text strings, using 'print()'
+or by typing the name at the prompt will use the escape sequences too,
+but the 'cat()' function will display the string as-is.  Notice that
+'"\n"' is a one-character string, not two; the backslash is not actually
+in the string, it is just generated in the printed representation.
+
+     > nchar("\n")
+     [1] 1
+     > substring("\n", 1, 1)
+     [1] "\n"
+
+   So how do you put a backslash in a string?  For this, you have to
+escape the escape character.  I.e., you have to double the backslash.
+as in
+
+     > cat("\\n", "\n")
+     \n
+
+   Some functions, particularly those involving regular expression
+matching, themselves use metacharacters, which may need to be escaped by
+the backslash mechanism.  In those cases you may need a _quadruple_
+backslash to represent a single literal one.
+
+   In versions of R up to 2.4.1 an unknown escape sequence like '\p' was
+quietly interpreted as just 'p'.  Current versions of R emit a warning.
+
+7.38 How can I put error bars or confidence bands on my plot?
+=============================================================
+
+Some functions will display a particular kind of plot with error bars,
+such as the 'bar.err()' function in the *agricolae*
+(https://CRAN.R-project.org/package=agricolae) package, the 'plotCI()'
+function in the *gplots* (https://CRAN.R-project.org/package=gplots)
+package, the 'plotCI()' and 'brkdn.plot()' functions in the *plotrix*
+(https://CRAN.R-project.org/package=plotrix) package and the
+'error.bars()', 'error.crosses()' and 'error.bars.by()' functions in the
+*psych* (https://CRAN.R-project.org/package=psych) package.  Within
+these types of functions, some will accept the measures of dispersion
+(e.g., 'plotCI'), some will calculate the dispersion measures from the
+raw values ('bar.err', 'brkdn.plot'), and some will do both
+('error.bars').  Still other functions will just display error bars,
+like the dispersion function in the *plotrix*
+(https://CRAN.R-project.org/package=plotrix) package.  Most of the above
+functions use the 'arrows()' function in the base *graphics* package to
+draw the error bars.
+
+   The above functions all use the base graphics system.  The grid and
+lattice graphics systems also have specific functions for displaying
+error bars, e.g., the 'grid.arrow()' function in the *grid* package, and
+the 'geom_errorbar()', 'geom_errorbarh()', 'geom_pointrange()',
+'geom_linerange()', 'geom_crossbar()' and 'geom_ribbon()' functions in
+the *ggplot2* (https://CRAN.R-project.org/package=ggplot2) package.  In
+the lattice system, error bars can be displayed with 'Dotplot()' or
+'xYplot()' in the *Hmisc* (https://CRAN.R-project.org/package=Hmisc)
+package and 'segplot()' in the *latticeExtra*
+(https://CRAN.R-project.org/package=latticeExtra) package.
+
+7.39 How do I create a plot with two y-axes?
+============================================
+
+Creating a graph with two y-axes, i.e., with two sorts of data that are
+scaled to the same vertical size and showing separate vertical axes on
+the left and right sides of the plot that reflect the original scales of
+the data, is possible in R but is not recommended.  The basic approach
+for constructing such graphs is to use 'par(new=TRUE)' (see '?par');
+functions 'twoord.plot()' (in the *plotrix*
+(https://CRAN.R-project.org/package=plotrix) package) and
+'doubleYScale()' (in the *latticeExtra*
+(https://CRAN.R-project.org/package=latticeExtra) package) automate the
+process somewhat.
+
+7.40 How do I access the source code for a function?
+====================================================
+
+In most cases, typing the name of the function will print its source
+code.  However, code is sometimes hidden in a namespace, or compiled.
+For a complete overview on how to access source code, see Uwe Ligges
+(2006), "Help Desk: Accessing the sources", _R News_, *6/4*, 43-45
+(<https://CRAN.R-project.org/doc/Rnews/Rnews_2006-4.pdf>).
+
+7.41 Why does summary() report strange results for the R^2 estimate when I fit a linear model with no intercept?
+================================================================================================================
+
+As described in '?summary.lm', when the intercept is zero (e.g., from 'y
+~ x - 1' or 'y ~ x + 0'), 'summary.lm()' uses the formula R^2 = 1 -
+Sum(R[i]^2) / Sum((y[i])^2) which is different from the usual R^2 = 1 -
+Sum(R[i]^2) / Sum((y[i] - mean(y))^2).  There are several reasons for
+this:
+   * Otherwise the R^2 could be negative (because the model with zero
+     intercept can fit _worse_ than the constant-mean model it is
+     implicitly compared to).
+   * If you set the slope to zero in the model with a line through the
+     origin you get fitted values y*=0
+   * The model with constant, non-zero mean is not nested in the model
+     with a line through the origin.
+
+   All these come down to saying that if you know _a priori_ that E[Y]=0
+when x=0 then the 'null' model that you should compare to the fitted
+line, the model where x doesn't explain any of the variance, is the
+model where E[Y]=0 everywhere.  (If you don't know a priori that E[Y]=0
+when x=0, then you probably shouldn't be fitting a line through the
+origin.)
+
+7.42 Why is R apparently not releasing memory?
+==============================================
+
+This question is often asked in different flavors along the lines of "I
+have removed objects in R and run 'gc()' and yet 'ps'/'top' still shows
+the R process using a lot of memory", often on Linux machines.
+
+   This is an artifact of the way the operating system (OS) allocates
+memory.  In general it is common that the OS is not capable of releasing
+all unused memory.  In extreme cases it is possible that even if R frees
+almost all its memory, the OS can not release any of it due to its
+design and thus tools such as 'ps' or 'top' will report substantial
+amount of resident RAM used by the R process even though R has released
+all that memory.  In general such tools do _not_ report the actual
+memory usage of the process but rather what the OS is reserving for that
+process.
+
+   The short answer is that this is a limitation of the memory allocator
+in the operating system and there is nothing R can do about it.  That
+space is simply kept by the OS in the hope that R will ask for it later.
+The following paragraph gives more in-depth answer with technical
+details on how this happens.
+
+   Most systems use two separate ways to allocate memory.  For
+allocation of large chunks they will use 'mmap' to map memory into the
+process address space.  Such chunks can be released immediately when
+they are completely free, because they can reside anywhere in the
+virtual memory.  However, this is a relatively expensive operation and
+many OSes have a limit on the number of such allocated chunks, so this
+is only used for allocating large memory regions.  For smaller
+allocations the system can expand the data segment of the process
+(historically using the 'brk' system call), but this whole area is
+always contiguous.  The OS can only move the end of this space, it
+cannot create any "holes".  Since this operation is fairly cheap, it is
+used for allocations of small pieces of memory.  However, the
+side-effect is that even if there is just one byte that is in use at the
+end of the data segment, the OS cannot release any memory at all,
+because it cannot change the address of that byte.  This is actually
+more common than it may seem, because allocating a lot of intermediate
+objects, then allocating a result object and removing all intermediate
+objects is a very common practice.  Since the result is allocated at the
+end it will prevent the OS from releasing any memory used by the
+intermediate objects.  In practice, this is not necessarily a problem,
+because modern operating systems can page out unused portions of the
+virtual memory so it does not necessarily reduce the amount of real
+memory available for other applications.  Typically, small objects such
+as strings or pairlists will be affected by this behavior, whereas large
+objects such as long vectors will be allocated using 'mmap' and thus not
+affected.  On Linux (and possibly other Unix-like systems) it is
+possible to use the 'mallinfo' system call (also see the mallinfo
+(https://rforge.net/mallinfo) package) to query the allocator about the
+layout of the allocations, including the actually used memory as well as
+unused memory that cannot be released.
+
+7.43 How can I enable secure https downloads in R?
+==================================================
+
+When R transfers files over HTTP (e.g., using the 'install.packages()'
+or 'download.file()' function), a download method is chosen based on the
+'download.file.method' option.  There are several methods available and
+the default behavior if no option is explicitly specified is to use R's
+internal HTTP implementation.  In most circumstances this internal
+method will not support HTTPS URLs so you will need to override the
+default: this is done automatically for such URLs as from R 3.2.2.
+
+   R versions 3.2.0 and greater include two download methods
+('"libcurl"' and '"wininet"') that both support HTTPS connections: we
+recommend that you use these methods.  The requisite code to add to
+'.Rprofile' or 'Rprofile.site' is:
+
+     options(download.file.method = "wininet", url.method = "wininet")
+     (Windows)
+     options(download.file.method = "libcurl", url.method = "libcurl")
+     (Linux and macOS)
+
+(Method '"wininet"' is the default on Windows as from R 3.2.2.)
+
+   Note that the '"libcurl"' method may or may not have been compiled
+in.  In the case that it was not, i.e..  'capabilities("libcurl") ==
+FALSE', we recommend method '"wget"' on Linux and '"curl"' on macOS. It
+is possible that system versions of '"libcurl"', 'wget' or 'curl' may
+have been compiled without HTTPS support, but this is unlikely.  As from
+R 3.3.0 '"libcurl"' with HTTPS support is required except on Windows.
+
+7.44 How can I get CRAN package binaries for outdated versions of R?
+====================================================================
+
+Since March 2016, Windows and macOS binaries of CRAN packages for old
+versions of R (released more than 5 years ago) are made available from a
+central CRAN archive server instead of the CRAN mirrors.  To get these,
+one should set the CRAN "mirror" element of the 'repos' option
+accordingly, by something like
+     local({r <- getOption("repos")
+            r["CRAN"] <- "http://CRAN-archive.R-project.org"
+            options(repos = r)
+           })
+(see '?options' for more information).
+
+8 R Programming
+***************
+
+8.1 How should I write summary methods?
+=======================================
+
+Suppose you want to provide a summary method for class '"foo"'.  Then
+'summary.foo()' should not print anything, but return an object of class
+'"summary.foo"', _and_ you should write a method 'print.summary.foo()'
+which nicely prints the summary information and invisibly returns its
+object.  This approach is preferred over having 'summary.foo()' print
+summary information and return something useful, as sometimes you need
+to grab something computed by 'summary()' inside a function or similar.
+In such cases you don't want anything printed.
+
+8.2 How can I debug dynamically loaded code?
+============================================
+
+Roughly speaking, you need to start R inside the debugger, load the
+code, send an interrupt, and then set the required breakpoints.
+
+   See section "Finding entry points in dynamically loaded code" in
+'Writing R Extensions'.  This manual is included in the R distribution,
+*note What documentation exists for R?::.
+
+8.3 How can I inspect R objects when debugging?
+===============================================
+
+The most convenient way is to call 'R_PV' from the symbolic debugger.
+
+   See section "Inspecting R objects when debugging" in 'Writing R
+Extensions'.
+
+8.4 How can I change compilation flags?
+=======================================
+
+Suppose you have C code file for dynloading into R, but you want to use
+'R CMD SHLIB' with compilation flags other than the default ones (which
+were determined when R was built).
+
+   Starting with R 2.1.0, users can provide personal Makevars
+configuration files in '$HOME/.R' to override the default flags.  See
+section "Add-on packages" in 'R Installation and Administration'.
+
+   For earlier versions of R, you could change the file
+'R_HOME/etc/Makeconf' to reflect your preferences, or (at least for
+systems using GNU Make) override them by the environment variable
+'MAKEFLAGS'.  See section "Creating shared objects" in 'Writing R
+Extensions'.
+
+8.5 How can I debug S4 methods?
+===============================
+
+Use the 'trace()' function with argument 'signature=' to add calls to
+the browser or any other code to the method that will be dispatched for
+the corresponding signature.  See '?trace' for details.
+
+9 R Bugs
+********
+
+9.1 What is a bug?
+==================
+
+If R executes an illegal instruction, or dies with an operating system
+error message that indicates a problem in the program (as opposed to
+something like "disk full"), then it is certainly a bug.  If you call
+'.C()', '.Fortran()', '.External()' or '.Call()' (or '.Internal()')
+yourself (or in a function you wrote), you can always crash R by using
+wrong argument types (modes).  This is not a bug.
+
+   Taking forever to complete a command can be a bug, but you must make
+certain that it was really R's fault.  Some commands simply take a long
+time.  If the input was such that you _know_ it should have been
+processed quickly, report a bug.  If you don't know whether the command
+should take a long time, find out by looking in the manual or by asking
+for assistance.
+
+   If a command you are familiar with causes an R error message in a
+case where its usual definition ought to be reasonable, it is probably a
+bug.  If a command does the wrong thing, that is a bug.  But be sure you
+know for certain what it ought to have done.  If you aren't familiar
+with the command, or don't know for certain how the command is supposed
+to work, then it might actually be working right.  For example, people
+sometimes think there is a bug in R's mathematics because they don't
+understand how finite-precision arithmetic works.  Rather than jumping
+to conclusions, show the problem to someone who knows for certain.
+Unexpected results of comparison of decimal numbers, for example '0.28 *
+100 != 28' or '0.1 + 0.2 != 0.3', are not a bug.  *Note Why doesn't R
+think these numbers are equal?::, for more details.
+
+   Finally, a command's intended definition may not be best for
+statistical analysis.  This is a very important sort of problem, but it
+is also a matter of judgment.  Also, it is easy to come to such a
+conclusion out of ignorance of some of the existing features.  It is
+probably best not to complain about such a problem until you have
+checked the documentation in the usual ways, feel confident that you
+understand it, and know for certain that what you want is not available.
+If you are not sure what the command is supposed to do after a careful
+reading of the manual this indicates a bug in the manual.  The manual's
+job is to make everything clear.  It is just as important to report
+documentation bugs as program bugs.  However, we know that the
+introductory documentation is seriously inadequate, so you don't need to
+report this.
+
+   If the online argument list of a function disagrees with the manual,
+one of them must be wrong, so report the bug.
+
+9.2 How to report a bug
+=======================
+
+When you decide that there is a bug, it is important to report it and to
+report it in a way which is useful.  What is most useful is an exact
+description of what commands you type, starting with the shell command
+to run R, until the problem happens.  Always include the version of R,
+machine, and operating system that you are using; type 'version' in R to
+print this.
+
+   The most important principle in reporting a bug is to report _facts_,
+not hypotheses or categorizations.  It is always easier to report the
+facts, but people seem to prefer to strain to posit explanations and
+report them instead.  If the explanations are based on guesses about how
+R is implemented, they will be useless; others will have to try to
+figure out what the facts must have been to lead to such speculations.
+Sometimes this is impossible.  But in any case, it is unnecessary work
+for the ones trying to fix the problem.
+
+   For example, suppose that on a data set which you know to be quite
+large the command
+
+     R> data.frame(x, y, z, monday, tuesday)
+
+never returns.  Do not report that 'data.frame()' fails for large data
+sets.  Perhaps it fails when a variable name is a day of the week.  If
+this is so then when others got your report they would try out the
+'data.frame()' command on a large data set, probably with no day of the
+week variable name, and not see any problem.  There is no way in the
+world that others could guess that they should try a day of the week
+variable name.
+
+   Or perhaps the command fails because the last command you used was a
+method for '"["()' that had a bug causing R's internal data structures
+to be corrupted and making the 'data.frame()' command fail from then on.
+This is why others need to know what other commands you have typed (or
+read from your startup file).
+
+   It is very useful to try and find simple examples that produce
+apparently the same bug, and somewhat useful to find simple examples
+that might be expected to produce the bug but actually do not.  If you
+want to debug the problem and find exactly what caused it, that is
+wonderful.  You should still report the facts as well as any
+explanations or solutions.  Please include an example that reproduces
+(e.g., <https://en.wikipedia.org/wiki/Reproducibility>) the problem,
+preferably the simplest one you have found.
+
+   Invoking R with the '--vanilla' option may help in isolating a bug.
+This ensures that the site profile and saved data files are not read.
+
+   Before you actually submit a bug report, you should check whether the
+bug has already been reported and/or fixed.  First, try the "Show open
+bugs new-to-old" or the search facility on
+<https://bugs.R-project.org/>.  Second, consult
+<https://svn.R-project.org/R/trunk/doc/NEWS.Rd>, which records changes
+that will appear in the _next_ release of R, including bug fixes that do
+not appear on the Bug Tracker.  Third, if possible try the current
+r-patched or r-devel version of R. If a bug has already been reported or
+fixed, please do not submit further bug reports on it.  Finally, check
+carefully whether the bug is with R, or a contributed package.  Bug
+reports on contributed packages should be sent first to the package
+maintainer, and only submitted to the R-bugs repository by package
+maintainers, mentioning the package in the subject line.
+
+   A bug report can be generated using the function 'bug.report()'.  For
+reports on R this will open the Web page at
+<https://bugs.R-project.org/>: for a contributed package it will open
+the package's bug tracker Web page or help you compose an email to the
+maintainer.
+
+   There is a section of the bug repository for suggestions for
+enhancements for R labelled 'wishlist'.  Suggestions can be submitted in
+the same ways as bugs, but please ensure that the subject line makes
+clear that this is for the wishlist and not a bug report, for example by
+starting with 'Wishlist:'.
+
+   Comments on and suggestions for the Windows port of R should be sent
+to <R-windows@R-project.org>.
+
+   Corrections to and comments on message translations should be sent to
+the last translator (listed at the top of the appropriate '.po' file) or
+to the translation team as listed at
+<https://developer.R-project.org/TranslationTeams.html>.
+
+10 Acknowledgments
+******************
+
+Of course, many many thanks to Robert and Ross for the R system, and to
+the package writers and porters for adding to it.
+
+   Special thanks go to Doug Bates, Peter Dalgaard, Paul Gilbert,
+Stefano Iacus, Fritz Leisch, Jim Lindsey, Thomas Lumley, Martin
+Maechler, Brian D. Ripley, Anthony Rossini, and Andreas Weingessel for
+their comments which helped me improve this FAQ.
+
+   More to come soon ...
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/KEYWORDS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/KEYWORDS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/KEYWORDS	(revision 2476)
@@ -0,0 +1,87 @@
+GROUPED Keywords
+----------------
+
+Graphics
+	aplot		&	Add to Existing Plot / internal plot
+	dplot		&	Computations Related to Plotting
+	hplot		&	High-Level Plots
+	iplot		&	Interacting with Plots
+	color		&	Color, Palettes etc
+	dynamic		&	Dynamic Graphics
+	device		&	Graphical Devices
+
+Basics
+	sysdata		&	Basic System Variables		[!= S]
+	datasets	&	Datasets available by data(.)	[!= S]
+	data		&	Environments, Scoping, Packages [~= S]
+	manip		&	Data Manipulation
+	attribute	&	Data Attributes
+	classes		&	Data Types (not OO)
+	    & character	&	Character Data ("String") Operations
+	    & complex	&	Complex Numbers
+	    & category	&	Categorical Data
+	    & NA	&	Missing Values			[!= S]
+	list		&	Lists
+	chron		&	Dates and Times
+	package		&	Package Summaries
+
+Mathematics
+	array		&	Matrices and Arrays
+	      & algebra &	Linear Algebra
+	arith		&	Basic Arithmetic and Sorting	[!= S]
+	math		&	Mathematical Calculus etc.	[!= S]
+	logic		&	Logical Operators
+	optimize	&	Optimization
+	symbolmath	&	"Symbolic Math", as polynomials, fractions
+	graphs		&	Graphs, (not graphics), e.g. dendrograms
+
+Programming, Input/Ouput, and Miscellaneous
+
+	programming	&	Programming
+	     & interface&	Interfaces to Other Languages
+	IO		&	Input/output
+	     & file	&	Files
+	     & connection&	Connections
+	     & database	&	Interfaces to databases
+	iteration	&	Looping and Iteration
+	methods		&	Methods and Generic Functions
+	print		&	Printing
+	error		&	Error Handling
+
+	environment	&	Session Environment
+	internal	&	Internal Objects (not part of API)
+	utilities	&	Utilities
+	misc		&	Miscellaneous
+	documentation	&	Documentation
+	debugging	&	Debugging Tools
+
+Statistics
+
+	datagen		&	Functions for generating data sets
+	distribution	&	Probability Distributions and Random Numbers
+	univar		&	simple univariate statistics  [!= S]
+	htest		&	Statistical Inference
+	models		&	Statistical Models
+	    & regression&	Regression
+	    & &nonlinear&	Non-linear Regression (only?)
+	robust		&	Robust/Resistant Techniques
+	design		&	Designed Experiments
+	multivariate	&	Multivariate Techniques
+	ts		&	Time Series
+	survival	&	Survival Analysis
+	nonparametric	&	Nonparametric Statistics [w/o 'smooth']
+	smooth		&	Curve (and Surface) Smoothing
+	     & loess	&	Loess Objects
+	cluster		&	Clustering
+	tree		&	Regression and Classification Trees
+	survey		&	Complex survey samples
+
+
+MASS (2, 1997)
+--------------
+
+add the following keywords :
+
+	classif		&	Classification	['class' package]
+	spatial		&	Spatial Statistics ['spatial' package]
+	neural		&	Neural Networks ['nnet'	 package]
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/COPYING
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/COPYING	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/COPYING	(revision 2476)
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS.0
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS.0	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS.0	(revision 2476)
@@ -0,0 +1,2825 @@
+				Dear Emacs, please make this -*-Text-*- mode!
+
+	This file covers NEWS up to the release of R-1.0.0.
+	See 'NEWS.1' for subsequent changes.
+
+
+	**************************************************
+	*						 *
+	*	       0.99 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 0.99.0
+
+
+NEW FEATURES
+
+    o	The ``Introduction to R'' manual, in doc/manual.
+	The ``Writing R Extensions'' manual is much enhanced for
+	this release.
+
+    o	The format for save/load has been changed. Workspaces and
+	objects saved in earlier versions can be loaded into this
+	version, but not conversely. Use save() or save.image() with
+	argument oldstyle=TRUE to save in the old format if you need to.
+
+    o	The header files for C code have been reorganised. The
+	preferred header file for user code is now "R.h", and
+	ancillary files such as Arith.h now need to be referred to
+	as "R_ext/Arith.h". The `Writing R Extensions' manual now
+	contains the beginnings of a description of the public API and
+	how to use it.
+
+    o	Many of the exported symbols have been remapped or hidden. This
+	means that code using Rdefines.h or Rinternals.h or Mathlib.h
+	will need to be re-compiled, and code using Applic.h may do
+	so.
+
+	Many packages will need to be re-installed for use with this
+	release.
+
+    o	The random number generation interface has changed, although
+	saved .Random.seed's will work unchanged. The default
+	generator is now Marsaglia's multicarry, and the Mersenne
+	Twister GFSR and Knuth's Fibonacci subtraction are also
+	available.  The type of normal generation can be selected by
+	RNGkind() (and is encoded in .Random.seed).
+
+	The new function set.seed() which uses a single integer to set
+	the random number seeds is now the recommended way to do so.
+
+	It is now possible for a user to plug-in a new RNG written
+	in C: consult ?Random and ?Random-user for the details.
+
+    o	All the DPQ {probability density quantile} functions have new
+	arguments, "lower_tail = TRUE" and "log{_p} = FALSE".  This allows
+	more precise results when values would be close to 0 or 1.
+
+    o	R CMD Rd2dvi has new options --pdf, --title and --output.
+
+    o	New fields Date, URL and Title in the DESCRIPTION file of
+	packages. The Title field replaces the separate TITLE file of
+	packages, which is no longer necessary.
+
+    o	residuals.lm() has a "type" argument, as S does.
+
+    o	The underlying code for nlm has been translated from Fortran
+	to C and made re-entrant (changes contributed by Saikat DebRoy).
+
+    o	optimize() can now be used recursively.
+
+    o	New suite of optimization methods optim(), covering
+	Nelder-Mead, BFGS quasi-Newton and conjugate-gradients methods
+	for unconstrained minimization and maximization with and
+	without derivatives.
+
+	optim() also allows box constraints (interval bounds on
+	individual variables) in its limited-memory BFGS option.
+
+    o	R now compiles in the GNU version of regex, so regular
+	expressions (grep, sub, gsub, regexpr, "pattern" in ls) are
+	always available. The class of regular expressions supported
+	is now slightly wider on some Unix platforms.
+
+    o	package ctest (for classical tests) is now part of the base
+	distribution, and also contains chisq.test, prop.test and
+	t.test which previously were in package base. These three
+	functions are auto-loaded from ctest.
+
+    o	New utility `R CMD build' for building add-on packages along
+	with some useful testing and cleaning up.
+
+    o	Conversion of .Rd help files to text format is done in Perl,
+	and no longer requires nroff.  This makes the conversion 8-bit
+	clean and more accurate.
+
+    o	Building help for a package now removes help files that no
+	longer exist in the source.
+
+    o	strsplit() now uses split regexps, and no longer insists on
+	splitting into non-empty tokens.
+
+    o	Long-named options with arguments such as `--vsize' now use the
+	`--name=VALUE' form; the old `--name VALUE' is deprecated.
+	The old-style command line options `-v' and `-n' are now defunct.
+
+    o	par("cxy") { == par("cin")/par("pin") in user coordinates}
+	for S compatibility.
+
+    o	If R_PAPERSIZE is not specified otherwise, configure now tries
+	to compute it by calling paperconf.
+
+    o	The deprecated alternative RPROFILE is no longer accepted: use
+	R_PROFILE instead.
+
+    o	Added setequal() for set equality.
+
+    o	First argument renamed to "package" for library(), require(),
+	provide().
+
+    o	model.frame() now accepts data= arguments that can be coerced to
+	data frames.
+
+    o	Help files can now contain \describe groups.
+
+    o	Hyperlinks in help files can now use LaTeX special characters.
+
+    o	rstandard() now also works for glm objects.
+
+    o	glm drops 0-weight observations when fitting so that the
+	output is compatible with lm.influence() and plot.lm().
+
+    o	New function ftable() for creating and manipulating flat
+	contingency tables.
+
+    o	New function cutree() for cutting hclust trees in package
+	mva.  New functions rect.hclust() and identify.hclust().
+
+    o	Under Unix, the default editor is obtained from the environment
+	variables EDITOR or VISUAL if either is set.
+
+    o	New command line option `--gui' to specify the graphical user
+	interface under Unix.  Currently, possible values are `X11' (the
+	(default) and `GNOME', provided that GNOME support is available.
+	Command line options `-g' and `--gnome' are defunct.
+
+    o	power.t.test() and power.prop.test() functions added for power and
+	sample size calculations.
+
+    o	edit() is now generic and a new edit.data.frame() function
+	calls up the spreadsheet data editor. This is still rather
+	rudimentary, since the data editor really only knows about
+	numeric and character vectors.
+
+    o	Modifications to the data editor so that one can use ESC to
+	quit a partial cell entry and entering an empty cell causes
+	the element to be set to NA.
+
+    o	prop.table() and margin.table() functions (these are *really* trivial).
+
+    o	R INSTALL checks the Depends field of DESCRIPTION if the
+	currently running version of R meets an R
+	dependency. old.packages() reports only packages conforming
+	to the current version of R. New function
+	package.dependencies() for parsing and checking dependencies.
+
+    o	options("expressions") now does something, and the evaluation
+	depth is checked on all platforms (not just Macintosh). This
+	will catch infinite recursions gracefully.
+
+    o	The default number of cons cells (`nsize') is now 350k (it
+	was 250k).  This reflects the added base code and packages,
+	and increases memory usage by about 2Mb (on a 32-bit machine).
+
+    o	Some simple multiple comparison procedures: p.adjust() for
+	generic adjustment of a set of p values by variants of the
+	Bonferroni method; pairwise.t.test, pairwise.wilcox.test,
+	pairwise.prop.test for pairwise comparisons of grouped data
+	and proportions.
+
+    o	Error / warning calls with a long description of the call are
+	split into two lines. (This helps avoid scrolling in the
+	Windows GUI.)
+
+    o	lapply() is now internal and substantially faster (7% overall
+	speed-up on the tests for the base package).
+
+    o	apply() no longer names the output dimensions unless FUN returns
+	a result with names, and the same names for every result.
+
+    o	contour() can (at last) label contours by level.
+
+    o	persp() labels its axes.
+
+    o	scan() and read.table() now have a dec= argument to set the
+	decimal point character. If sep= is set, quoting of strings is
+	now possible and follows the conventions for comma-separated
+	files. This should make it easier to read the "continental
+	CSV" format (fields separated by semicolon and using comma as
+	decimal point).	 The set of quoting characters has also been
+	made optional. Variants of read.table(), read.csv() and
+	read.csv2() have been defined
+
+    o	HDF5 support is gone from the R distribution, and provided by an
+	add-on package available from CRAN.
+
+    o	New function getOption() for retrieving the value of a single
+	option.
+
+    o	read.table.url() and related functions now use download.file,
+	which has an extra "socket" method for direct HTTP socket
+	connection. download.file has new option ``quiet''.
+
+    o	pairs.default() has an oma argument to allow users to override
+	the internal setting of that graphics parameter.
+
+    o	princomp() in package mva allows the user to specify the
+	covariance matrix (and hence use, e.g. cov.mve).
+
+
+BUG FIXES
+
+    o	svd(matrix(2,1,0)),
+	arma0f(NULL), cancor(F,F) and prcomp(F[F]) no longer segfault.
+
+    o	loess.smooth(F[F],F[F]) and supsmu(F[F],F[F]) no longer segfault.
+
+    o	save(1, file = ""[F])  no longer segfaults.
+
+    o	stop(list()) and warning(list()) no longer segfault.
+
+    o	system(""[F]) and save(1, file = ""[F])	 no longer segfault.
+
+    o	Overflow of the pointer protection stack is handled correctly
+
+    o	predict.glm(, type="link", se.fit=T) works
+
+    o	str() now works with Surv(.) objects from library(survival5).
+
+    o	all.equal(-Inf, -1e5) now gives "Mean absolute difference: Inf"
+	instead of "Mean relative  difference: NaN".
+
+    o	strsplit fix broke copy.url.
+
+    o	0 ^ -1 == Inf  and  min(NA, NaN) is now always NA
+
+    o	R CMD xxx sets $R_HOME/bin to be first in PATH
+
+    o	Added more warnings to update.packages & friends. New function
+	old.packages for better control of update.packages.
+
+    o	Adding matrices to data frames now happens column by column as
+	documented, so character or logical matrices generate factor
+	columns.
+
+    o	Formulae containing interactions with the response were
+	handled incorrectly by model.matrix, giving wrong answers or crashes.
+
+    o	anova(lm(.)) with 0 weights now works.
+
+    o	plot.lm(), dffits(), covratio() now do the right thing for weighted
+	lm regression.
+
+    o	formatC(as.integer(c(1,0,NA))) now works. PR#394, thanks to Jens O.-A.
+
+    o	format.char(.) is much faster for long vector argument [Jens O.-A.]
+
+    o	\enumerate now enumerates in text conversion of .Rd files.
+
+    o	glm() no longer fails with names<- errors in cases where
+	observations with fits on the mu.eta boundary have been dropped.
+
+    o	Deviance residuals could be NaN instead of 0 by rounding error.
+
+    o	shapiro.test(x) now gives better error messages (eg. x=rep(1,5))
+	and doesn't print ANYTHING anymore (in some cases).
+
+    o	mode(as.formula(paste("~", paste(1:50, collapse="+")))[2]) now works.
+
+    o	glm() now handles cases with numerically 0 or 1 fitted values in
+	binomial and numerically 0 in poisson correctly. (Previously
+	these observations were dropped even though the variances were
+	also numerically 0.)
+
+    o	(-4 + 0i) ^ (1/2)  now gives 2i.
+
+    o	system.time() now does sensible things in the non-HAVE_TIMES
+	case, and that and proc.time() have better documentation.
+
+    o	A couple of bugs in the data editor spreadsheet have been
+	eliminated.
+
+    o	Elapsed time in proc.time() is no longer rounded to whole
+	seconds under Unix.
+
+    o	Assigning character vectors to subsets of data frames now
+	works correctly (it used to assign the numeric codes of factors).
+
+    o	Extensive enhancements and corrections to the help pages.
+
+    o	The possibility of buffer overruns during printing has been
+	much reduced, and eliminated on systems with vsnprintf.
+
+
+	**************************************************
+	*						 *
+	*	       0.90 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 0.90.1
+
+
+NEW FEATURES
+
+    o	rect(.) has `lwd' argument.
+
+    o	legend() has a `adj' argument and has been streamlined (and fixed up).
+
+    o	`unname' convenience function [experimental data.frame behavior].
+
+    o	`examples' sections have been added to the documentation
+	for most of the data sets in the base library.
+
+    o	update.packages & friends have new argument contriburl for
+	incomplete CRAN mirrors. Package bundles such as VR can be
+	directly installed both from the shell and from inside R.
+
+    o	RLIBS is no longer accepted as well as R_LIBS (which has been
+	the documented form since 0.65.0).
+
+    o	demo(nlm) has examples of using analytical gradients and
+	Hessians.
+
+    o	.Platform$OS.type is standardized to be `unix', `mac' or `windows'
+
+    o	setting cex in matplot(matrix(1:25,5), cex=1:5) now works
+
+    o	ar.ols() has separate demean and intercept arguments, uses
+	internal scaling for greater accuracy.
+
+    o	xxxPR functions allow NCHAR=-1 for S compatibility.
+
+    o	`Rcomplex' is preferred to `complex' (a future reserved word
+	in C) for R complex objects passed to C.
+
+    o	new function dir.create() for platform-independence.
+
+    o	help.search() creates a database for faster searching later in
+	the R session.
+
+    o	density() allows for more kernels and has a new argument
+	`give.Rkern' to access the relevant kernel property.
+
+    o	multivariate methods for ar: "yule-walker" (now in C) and
+	"burg" (new) contributed by Martyn Plummer.
+
+    o	New data sets `HairEyeColor' (hair and eye color of statistics
+	students), `Titanic' (survival of passengers on the Titanic),
+	and `UCBAdmissions' (student admissions at UC Berkeley).
+
+
+BUG FIXES
+
+    o	Many help pages have been revised and enhanced.
+
+    o	predict.glm() works again with type="link".
+
+    o	subscripting arrays and matrices no longer loses the names of
+	the dimnames vector.  Transpose also preserves the names.
+
+    o	examples in help files containing \testonly are no longer
+	(partially) duplicated.
+
+    o	is.numeric() of a factor is now FALSE
+
+    o	prevent a segfault in plotmath
+
+    o	f <- get("function"); f(,); f(F,F)  now "ok" (PR#361).
+
+    o	blank-line reject code in parse.dcf was wrong (Martyn Plummer)
+
+    o	made filled.contour independent of pointsize. Make plot key
+	wider so there's room for a title. Touchup example.
+
+    o	font size fixups for the X11 driver (mainly)
+
+    o	some.list[[NA]] is NULL, following S, rather than giving spurious
+	error messages
+
+    o	segfault when running out of heap
+
+    o	segfault in rbind of a vector without names fixed. cbind, too.
+
+    o	fixed symbol size problems with PostScript driver
+
+    o	unique() & duplicated() only work for atomic vectors;
+	unique(data.frame(""[F])) doesn't segfault anymore.
+
+    o	get("attr<-")(""[0],""[0]) doesn't segfault anymore.
+
+    o	blunder in do_memoryprofile, causing segfault on Alpha machines
+
+    o	erroneous error message in coerceToSymbol
+
+    o	partial workaround for workspace restore problems. This can
+	happen if an environment on the search path is assigned to a
+	variable which gets saved. The error "unresolved node during
+	restore" is turned into a warning, allowing the rest of the
+	workspace to be restored, but the variable contains an empty
+	environment on reload.
+
+    o	density(x) now works also when IQR(x) == 0.
+	density(x, window=...) now works [S compatibility].
+
+    o	prevent points from being plotted if pch, cex, or col are NA.
+	Does not apply to bg on pch 21--25 (where NA means
+	"transparent") because it would require fixes at the driver
+	level.
+
+
+		CHANGES IN R VERSION 0.90.0
+
+NEW FEATURES
+
+    o	packages splines (for regression smoothing splines or
+	interpolating splines) and nls (nonlinear least squares) are
+	part of the base distribution.
+
+    o	New error handling using
+	options ( error = expression(..) ,  warning.expr = ... ).
+	REPLACING version 0.65.1's  options(error.halt = T/F)
+
+    o	collected warnings before an error are no longer lost but
+	are printed after the error message (unless the error makes
+	this impossible).
+
+    o	A couple of substantial graphics changes, esp. in the X11
+	driver. The scaling of symbols is now linear in cex=, rather
+	than being tied to the available font's size. The fonts on an
+	X11 device also scale linearly with cex= insofar as your X
+	server can do it. On systems with the scalable type 1
+	PostScript fonts installed, this looks particularly nice. Note
+	that the scaling is linear in the *diameter*, but quadratic in
+	area. The distance between lines of margin text in the X11
+	device is now proportional to the size given to
+	x11(pointsize).
+
+
+    o	abline(a,b) now (again) refers to transformed coordinates on
+	plots with log-axes, so that abline(lm(log10(y)~log10(x)))
+	(say) draws a best-fitting line on a log-log plot. The earlier
+	convention (to draw a curve representing a line in original
+	coordinates) is available using a new untf= argument.
+
+    o	barplot.default() has new `axisnames' (and `sub') arguments, easily
+	allowing suppression of bar labeling.
+
+    o	cbind() and rbind() now actually do what deparse.level=1 implies:
+	add column/row names based on the deparsed argument, provided it
+	is a simple symbol. The behaviour is still hardcoded, though.
+
+    o	gc() now reports the total sizes in Mb as well as numbers.
+
+    o	New function help.search() for searching the names, titles,
+	aliases, or keywords in the help system.
+
+    o	image() allows x and y to specify either the boundaries or the
+	midpoints of the cells. If the latter, the whole cells are
+	drawn, rather than the outer cells being half-sized as previously.
+
+    o	NULL extra arguments to model.frame() are now treated as missing
+	(instead of an error).
+
+    o	optimization with nlm() can use analytic gradients and Hessians
+	if they are supplied.
+
+    o	on.exit() allows add=TRUE.
+
+    o	function parse.dcf() for parsing files in debian control file format
+	(DESCRIPTION, CONTENTS, ...)
+
+    o	predict.{g}lm has a type="terms" option, and residual.glm has
+	type="partial" as a step towards plot.gam().
+
+    o	New arguments to q() and quit() allow the exit status to be set
+	and the execution of .Last() to be skipped.
+
+    o	New function regexpr(), similar to grep but returns the position
+	of the match in each string. (For S-PLUS compatibility.)
+
+    o	scan() now supports complex numbers.
+
+    o	New function sort.list, for S compatibility. (This has argument
+	partial, but always sorts completely.)
+
+    o	storage.mode<- can be used to set "single", and if setting
+	anything other than "single" it removes the "Csingle" attribute.
+
+    o	new function sunflowerplot().
+
+    o	New function undoc() for listing undocumented objects.
+
+
+    o	User's .Rprofile now executes in global environment
+
+    o	All HTML pages now use the new style sheet doc/html/R.css
+
+    o	html and text files have now a header line giving the name of
+	the help file and the package. The description section now
+	comes first.
+
+    o	All the standard packages have DESCRIPTION files with
+	"Priority: base", so installed.packages and
+	package.description will work with them.
+
+    o	The R-external manual which describes programming for the
+	.Call and .External interfaces is in the doc/manual directory.
+
+    o	New target `make pdf' in doc/manuals makes hyperlinked PDF
+	documentation. (This is experimental for this release. See
+	doc/manual/README for further details.)
+
+
+    o	S.h now contains (via Rdefines.h) a MESSAGE macro, and
+	Free NULLs the pointer, for compatibility with S3 (but not S4).
+
+    o	New subroutine REALPR callable from Fortran (like DBLEPR but
+	for real arguments): useful if as.single is in use.
+
+    o	The cex= argument to plot() etc. can be a vector, like pch=.
+
+    o	lty=0 now (again) makes lines invisible. Looks better for
+	barplot label axis.
+
+    o	zero.R tries to find the zero DLL in a system-independent way.
+
+
+BUG FIXES
+
+    o	apply should now work for all un-dimnamed arrays (PR#318).
+
+    o	ar(..., demean=F) works more consistently across methods.
+
+    o	barplot() had lower limits set at -0.01, causing trouble with
+	small heights. Switch to relative scale. (Thanks to Matt Wiener)
+
+    o	density() should work better with NAs and infinite values. See
+	?density for the current definitions of how these are handled.
+
+    o	diag(x) now works (as pre 0.65.1) for 1-d arrays.
+
+    o	Stored-source was dropped by dump().
+
+    o	expand.grid returns a data frame even for one arg.
+
+    o	expand.grid(x) now also works for vector arguments x.
+
+    o	factor(list()) or factor(character(0)) *is* now a factor
+	with valid levels(.);
+	ordered does NOT allow an `ordered' argument anymore
+	and is now defined as trivial call to factor.
+
+    o	help page for gc gives correct size of cons cells (20 bytes
+	for 32-bit systems, 36 or more for 64-bit systems).
+
+    o	gcinfo reports correct percentages of heap even for vsize > 200M.
+
+    o	gl(6,3,12) and gl(6,3,2) now both work.
+
+    o	Empty lists now deparse correctly.
+
+    o	na.omit.ts and na.contiguous preserve classes.
+
+    o	plot.factor {plot(<factor>)} now obeys axes=FALSE and xaxt="n".
+
+    o	read.table(as.is = TRUE) would leave everything as character.
+	Now it correctly tries to convert to numeric.
+
+    o	require() now has the warn.conflicts argument of library().
+
+    o	Fix problems in scan(flush = TRUE).
+
+    o	scan() got confused by trailing whitespace.
+
+    o	split(x,f) now works even when f is a factor with unused levels
+	(PR#294).
+
+    o	mosaicplot() has a formula interface and
+	NULL instead of NA default args.
+
+    o	stars() has "NULL" instead of "NA" defaults.
+
+    o	str() is quite a bit nicer with factors.
+
+    o	ts.union, cbind.ts, arithmetic on ts objects now allow
+	non-integer frequencies.
+
+
+    o	Switch to <tt> in HTML pages since Linux Netscape mangles
+	Courier.
+
+    o	When documentation is "compiled" (build-help), you now get warnings
+	for multiple (conflicting) \alias{.} or \name{.}s.
+
+    o	making the reference manual with `make dvi' copes better with
+	isolatin1 characters (but not perfectly as these are not in
+	standard TeX fonts).
+
+    o	Rd.sty now uses standard LaTeX constructs like \bm for bold
+	math and \url for URLs.
+
+
+    o	Protect R_fopen against NULL filename in Unix.
+
+    o	Math text in outer margins didn't work.
+
+    o	Text clipping now works in the X11 device.
+
+    o	Pixel rows sometimes got doubled in rotated text on the X11 device.
+
+    o	par("yaxt") is now ok.
+
+    o	Problems with realloc on some systems in AllocBuffer.
+
+    o	Problem with formatReal on non-IEEE systems.
+
+    o	demos/dynload/Makefile used macros that gave incorrect build
+	on some non-GNU makes.
+
+    o	Windows version copes better with paths with spaces in.
+
+    o	R CMD check had a typo which made the final message fail.
+
+    o	R_EOF redefined as -1, was causing trouble with isxxxx contructions.
+
+
+
+	**************************************************
+	*						 *
+	*	       0.65 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 0.65.1
+
+
+NEW FEATURES
+
+    o	.C, .Fortran. .Call and .External now have an argument PACKAGE
+	to specify the shared library to be used for the symbol. See
+	?Foreign. Package writers are encouraged to use this.
+
+    o	On startup (unless --no-environ), first .Renviron is looked for in
+	the current directory, and then in $HOME/ (= ~/ ).
+
+    o	New options(error.halt = FALSE) (default is TRUE) allows
+	continuation after an error in batch processing.
+
+    o	In graphics, lty has now 6 instead of 4 predefined line types.
+
+    o	as.hclust.twins() in package mva to convert (and plot)
+	objects from agnes() and daisy() of package cluster.
+
+    o	R INSTALL now can directly install pkg_version.tar.gz files
+	as obtained from CRAN. New function update.packages()
+	& friends for automatically downloading packages from CRAN and
+	install them on the fly (on Unix and Windows).
+
+    o	New function commandArgs() to record the command-line used.
+
+    o	New arguments `local' and `now' to dyn.load.
+
+    o	diag(x) now keeps names when appropriate and barfs when x is an array.
+
+    o	functions source.url, url.show, read.table.url, scan.url to read
+	from an http server instead of a file.
+
+    o	grid() gets useful defaults: grid lines drawn at tick marks.
+
+    o	set operations union(), intersect(), setdiff() and is.element().
+
+    o	New function stars() for star plots and segment diagrams of
+	multivariate data.
+
+    o	Version info now in the top-level file `VERSION'.
+
+    o	barplot has a "plot = TRUE" argument and now returns locations of
+	all bars even when "beside = TRUE".
+
+    o	hist has an "nclass" argument purely for S compatibility.
+
+    o	Character strings can now, with most compilers, be passed
+	on and from Fortran. See ?Foreign for details.
+
+    o	Functions as.single and single now have the effect with
+	.C and .Fortran of passing a numeric argument as float/REAL
+	rather than as double/DOUBLE PRECISION, by setting the
+	attribute "Csingle". See ?Foreign for details.
+
+    o	Comparison of strings uses the current locale on systems where
+	this is available, and so is always consistent with the ordering
+	used by sort().
+
+    o	sapply	has a new argument USE.NAMES=TRUE  and now returns a named
+	result when its input was a character.
+
+    o	plot.stepfun  has new arguments	 lty and lwd.
+
+    o	x labels in boxplot now handled differently, so that math
+	expressions are allowed.
+
+    o	postscript() argument `onefile' now does something, and there
+	is a new paper type `special' and new argument `pagecentre'.
+	See ?postscript for details.
+
+    o	Experimental function dev2bitmap() to copy to a bitmap graphics format.
+
+
+BUG FIXES
+
+    o	centering in text() will be more accurate, particularly on devices
+	with full font metric information (postscript, x11, not windows).
+
+    o	arguments after --no-readline in the Unix version were ignored.
+
+    o	couldn't set attributes in hashed environments.
+
+    o	[<-.data.frame mishandled dfr[1] <- 1 (forgotten drop=FALSE)
+
+    o	sys.on.exit didn't work
+
+    o	sys.parent didn't quite work either for n >= 2.
+
+    o	par("mfg") was wrong, par(mfg=) switched to down columns. Now
+	par(mfrow/mfcol = c(nr, nc)) followed by par(mfg=c(i,j)) is
+	the preferred style.
+
+    o	plot( <aov.object> ) failed after 2nd plot, PR#279
+
+    o	Several patches for systems with long != int.
+
+    o	approx failed if inputs contained NAs.
+
+    o	weighted lm fits with 1 diml x failed if any weight was zero.
+
+    o	lm.influence failed when there were undetermined coefficients, PR#280.
+
+    o	problem with function()... inside saved functions because arg count
+	increased to accommodate stored source. (Incorrect number of
+	arguments to "lambda")
+
+    o	improvements to generation of HTML help files: should work
+	better on viewers other than Netscape.
+
+    o	stl in package ts could conflict with package leaps: the Fortran
+	symbols have been changed.
+
+    o	help page for factor is improved and corrected.
+
+    o	na.omit.ts and na.contiguous now preserve time-series attributes.
+
+    o	more automatic testing ("make check") using options(error.halt=FALSE)
+	led to the elimination of dozens (!) of seg.fault possibilities.
+
+    o	family quasi handles zero observations with var=mu^2 more correctly.
+
+    o	dynamically-loaded libraries are searched last-loaded first, as
+	documented (under Unix it used to be first-loaded first).
+
+    o	rowsum failed with a matrix and a single group (drop=FALSE needed).
+
+    o	deriv(y ~ <expr>(x)) now works as well as  deriv(~ <expr>(x)).
+
+    o	qr over-estimated ranks in some degenerate cases.
+	qr did not work correctly if n < p and the first n cols were
+	rank-deficient.
+
+    o	str() wouldn't work quite right for named characters;  doesn't quote
+	symbols anymore.
+
+    o	Colour conversion (rgb, gray, hsv) truncated doubles and so
+	gave machine-dependent results on the examples. It now rounds.
+
+    o	cat() now admits again that it can't handle lists instead of
+	"random" segfaulting.
+
+    o	More accurate rounding (including rounding to even) on platforms
+	without rint (e.g. Windows).
+
+    o	qgeom() is now left-continuous with a tolerance, and so the
+	example on the help page will be platform-independent.
+
+    o	pretty() has been changed to use tolerance around integers and
+	so will be more platform-independent. The exact output has
+	probably changed on all platforms for some input.
+
+    o	image() & filled.contour() now work for 1x1 matrices
+	and with constant z values.
+
+
+		CHANGES IN R VERSION 0.65.0
+
+NEW FEATURES
+
+    o	A first step in improving performance has been made.
+	Attached objects, libraries etc are now hashed; performance
+	gains will be particularly apparent if large packages are in use.
+
+    o	First version of package ts for time-series analysis.
+	This has fairly complete S-PLUS compatibility, but more features
+	are planned. See library(help=ts) for details.
+
+    o	warnings can be collected (options(warn=0), the default), printed
+	immediately (options(warn=1)) or turned into errors (options(warn=2)).
+	As a consequence, all warnings and errors now are printed followed
+	by a newline, if one is not supplied. (This should improve the
+	S compatibility of the use of PROBLEM ... in compiled code.)
+
+
+
+    o	All R environment variables are now of the form `R_xxx'.  In
+	particular, `RHOME', `RLIBS' and `RPROFILE' are now called
+	`R_HOME', `R_LIBS', and `R_PROFILE'.
+
+    o	The handling of q()/quit()/EOF has been changed, with a new option
+	"default".  In interactive use this asks unless --save or --no-save
+	has been specified: if these are specified they set the default.
+
+    o	Limited capability for tilde expansion of file names even without
+	readline (on Unix, and on Windows).
+
+    o	New environment variables `R_HISTFILE' and `R_HISTSIZE' for the
+	name and size of the history file.
+
+    o	Attempting to restore (at startup) too large a .RData is now
+	a fatal error.
+
+    o	The loading of shared library on Unix now uses RTLD_NOW not
+	RTLD_LAZY.  This means that all symbols must be resolvable
+	when the library is loaded, and R will not terminate later
+	when a missing symbol is called.  Code which had missing symbols
+	(including some packages) will need to be re-compiled.
+
+
+
+    o	New generic function all.equal();
+	most useful for numerical comparisons `up to rounding errors'.
+
+    o	New function boxplot.formula() as a formula interface to boxplots.
+
+    o	New functions getwd() and setwd() for getting and setting the R
+	working directory, basename() and dirname() for manipulating paths.
+
+    o	Function locator(, type=) is implemented to plot points or
+	draw lines interactively.
+
+    o	Functions new.env() to create empty environment and local() to
+	allow local evaluation of expressions, with various useful
+	idiomatic uses.
+
+    o	Convenience functions parent.frame() and eval.parent().
+
+
+
+    o	A new scheme for keeping source code with user-defined
+	functions has been implemented. In particular, comments
+	will no longer move about or disappear. The flip side of the
+	coin is that you can no longer rely on R to indent your
+	code for you. The stored-source facility can be turned
+	off with options(keep.source=FALSE), and for an individual
+	function by deleting the "source" attribute.
+
+	If the source attribute is absent, the function will be
+	deparsed for editing or printing, but any comments will be
+	lost.
+
+    o	expressions have gained semantics that are closer to
+	those of S. They don't get evaluated except when explicitly
+	specified. Example:
+
+	e <- expression(x); e[[1]] <- expression(123); eval(e)
+
+	now gives expression(123), not 123. This fixes some problems
+	with expressions in the list argument to do.call().
+
+
+
+    o	contrast() no longer drops colnames for 1DF contrasts.
+	Consequentially, the labels of regression coefficients for binary
+	factors contain level names (again ...).
+
+    o	na.omit() and na.fail() are now generic.
+
+    o	plot.lm() has more options and now does 4 plots by default, should
+	also be okay for "glm" object; all thanks to John Maindonald.
+
+    o	If the dimnames of a table are themselves named, then their names
+	are used to label the respective dimensions in tabular output.
+
+    o	chisq.test() now optionally computes the p-value by Monte Carlo
+	simulation (in the standard case of a 2-d contigency table).
+
+    o	source() has a new argument `chdir' for changing the working
+	directory to that of the file being sourced when evaluating.
+
+    o	If data() loads an R source file, it now changes the working
+	directory (to that containing the file) when evaluating.
+
+    o	Interpret strings NaN and Inf in character to numeric conversions
+	(and thereby in read.table)
+
+    o	The presence of an object `.conflicts.OK' in a package suppresses
+	conflict checking in library() for that package.
+
+    o	uniroot() can now be used recursively.
+
+    o	hdf5{read|write} now allow more kinds of attributes and add support
+	for HDF5 version 1.2 (or newer)	thanks to Marcus G. Daniels.
+	Configure checks for HDF5 1.2 availability, older versions will
+	no longer work.
+
+
+
+BUG FIXES
+
+    o	x ^ y  gives proper results when x or y are infinite.
+
+    o	The semantics of <<- have been corrected.  The search for
+	a variable binding to modify now begins one level "up" from
+	the current one.   Thus S and R semantics in "non-closure"
+	functions will be identical.
+
+    o	.Last() is called when terminating with q() (not just with EOF).
+
+    o	abline() now understands the "lwd" graphics parameter if it
+	is supplied as an inline argument.
+
+    o	axis() now sorts `labels' when it sorts `at'.
+
+    o	Some small changes have made in the axis drawing code to
+	ensure that tick-mark label alignment is correct for
+	non-default values of the "las" parameter.
+
+    o	Improved error message from check.options().
+
+    o	cm.colors(n) now doesn't append silly "v=1"; works for n=0, n=1.
+
+    o	cooks.distance() now also works for "glm" objects;
+	deviance.lm() now ok for the case of weights.
+
+    o	date() doesn't return a final "\n" (again ...).
+
+    o	diag() and diag<- now handle correctly matrices with zero rows or cols.
+
+    o	help([<-.factor) (etc) work again.
+
+    o	is.recursive(list(.)) is now TRUE [PR#221].
+
+    o	log(0) gives -Inf on all architectures.
+
+    o	When persp() was the first graphics command given to R it gave
+	the error "plot.new() has not been called yet".	 This no
+	longer happens.
+
+    o	pgamma() gave 0 or 1 for extreme arguments too soon.
+
+    o	plot(<function>, log="x") doesn't give a silly warning any more.
+
+    o	The internals of postscript() have been changed so that line
+	textures (dotted dashed etc) look better.  The use of the
+	PostScript "initclip" operator has been removed so that we
+	can(?) really claim eps compliance.
+
+    o	revsort() misbehaved if n<=1, causing sample(1,1,,1) to
+	segfault
+
+    o	seq(along = v) { and seq(v) when length(v) > 1 } now returns
+	a result of mode "integer".
+
+    o	split.default() now uses subscripting for x with a non-null
+	class, this preserves, e.g., the class of factors
+
+    o	substr/substring(), deparse(), dput(), dump(), print()
+	will work for arbitrarily long strings.
+
+    o	which(x) failed when x had names and contained NAs.
+
+    o	Default editor files (e.g. from fix()) are now removed at termination.
+
+    o	Typos in NegBinomial.Rd (Negative Binomial distrib), thanks to Ch. Gu.
+
+    o	a clipping problem for plots when there non-zero outer margins
+	has been fixed.	 This problem used to affect coplot() and pairs().
+
+    o	get("zzz", mode="xxx") missed promise objects.
+
+    o	match.fun failed when a data frame was attached containing a
+	"length" variable (e.g.)
+
+
+	**************************************************
+	*						 *
+	*	       0.64 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 0.64.2
+
+
+NEW FEATURES
+
+    o	new target for R installation testing :	 make strict-tests.
+
+    o	symnum(x) now nicely codes logical x.
+
+    o	convolve() has a new type = c("circular", "open", "filter")
+	argument allowing more than the only circular convolution.
+
+    o	par(xpd) now has three settings:  FALSE (clip to plot region),
+	TRUE (clip to figure region), or NA (clip to device region).
+
+    o	zapsmall(x) works for complex x.
+
+    o	new global variable R.version.string (for plots & reports).
+	Deprecated version & Version for new  R.version & R.Version.
+
+    o	R CMD Rd2dvi has builtin "Usage" help and works for multiple files.
+	Useful for automatic reference manual of a package.
+
+
+BUG FIXES
+
+    o	power() is now fully implemented and documented.
+
+    o	A couple of problems with group generic operations.
+
+    o	A bug which meant that it was not possible to add elements
+	to zero length lists in the obvious way has been fixed.
+		x <- list(); x[[1]] <- 10
+		x <- list(); x[["a"]] <- 11
+	both now work.
+
+    o	save.image() ignored dot-names. (esp. .First())
+
+    o	lab= argument to plot() misinterpreted by axis() via ... passing
+
+    o	NULL labels in text() caused segfault
+
+    o	matrix(f,...) with f a factor now coerces to character
+
+    o	documentation errors for substitute and is.vector, minor fixups for
+	trig and nlm
+
+    o	Background colours are set properly on X11 devices with
+	colortype="pseudo": sometimes they were not allocated separately.
+
+    o	C() works (again?) for a single argument.
+
+    o	is.na() didn't work properly for "list" arguments.
+
+    o	symnum() sometimes failed with arrays of rank >= 3.
+
+    o	in some cases one could get nonblack color instead of
+	black on 2nd x11() window.
+
+    o	influence.measures(.) $ is.influential was wrong on the
+	cooks.distance.
+
+    o	printing of complex NaN/Inf was wrong as well.
+
+    o	printing of complex named vectors had a wrong initial space.
+
+    o	allow trailing space in character->numeric coercion
+
+    o	library() gave wrong "masked" warnings in some cases.
+
+    o	par(xpd) semantics were not compatible with S.
+
+    o	rect() output was not clipped in PostScript.
+
+    o	par(pin=c(width, height)) was behaving as par(pin=c(width, width)).
+
+    o	Non-blank separated data files didn't have their 1st field
+	handled properly.
+
+    o	"aux" directory moved to "tools" to avoid difficulties on
+	Windows.
+
+    o	structure() clobbered factors with missing levels.
+
+    o	pmatch() misbehaved on duplicate matches.
+
+    o	R CMD Rd2dvi <file.Rd> works again.
+
+    o	logical binops tried to set time series parameters before dimensions.
+
+    o	upped the BUFSIZE in model.c (NOT proper long-term solution).
+
+    o	dput(), dump() and deparse()  now always use DBL_DIG (=15) digits
+	for numeric formatting.
+
+    o	chull() now works for vertical borders, such as in chull(c(1,1,2),3:1).
+
+
+		CHANGES IN R VERSION 0.64.1
+
+NEW FEATURES
+
+    o	barplot() and boxplot() are now generic
+
+    o	relevel function to reorder levels in factors.
+
+    o	contr.treatment now has a base= argument for selecting the
+	baseline group.
+
+    o	New command line option `--no-environ' (under Unix) to prevent
+	sourcing the `~/.Renviron' file.  Implied by `--vanilla'.
+
+    o	Packages can now have a configure script.  If a file `configure'
+	is found it is executed before anything else is done by R
+	INSTALL.
+
+    o	If HTML help files are asked for but not available, text help
+	is used.
+
+    o	HTML help file conversion reports unsatisified \link{..}s.
+
+    o	`vsize' and `nsize' can be set by the environment variables
+	R_VSIZE and R_NSIZE respectively, perhaps most conveniently from
+	`~/.Renviron' under Unix or Windows.  Command-line settings will
+	take precedence.
+
+	The defaults have been increased to 6M and 250k.
+
+    o	zip files can be used for storing help and example files. See
+	the help files for "help" and "example" for details.
+
+    o	New submission method "none" (for not sending email) in
+	bug.report().
+
+    o	`R CMD check' can now also be used for installed packages without
+	the corresponding sources.
+
+    o	The sources for the Windows port are included in src/gnuwin32.
+	See src/gnuwin32/readme.
+
+BUG FIXES
+
+    o	deparser left off empty parentheses on e.g. (function(x) x)()
+
+    o	cat() now works on "name" objects
+
+    o	forgot to set jump buffer in return context in one case
+
+    o	parser dropped off tagged missing args on function calls ( f(a=) )
+
+    o	relops tried to set time series parameters before dimensions
+
+    o	arithmetic tried to set time series parameters before dimensions
+
+    o	mvfft fixes (from Martyn Plummer) - not working with vectors and
+	segfault problem.
+
+    o	Rephrased error message on invalid assignment target.
+
+    o	ifelse() now evaluates yes/no only if needed
+
+    o	PROTECT'ed some memory in NewExtractNames that was getting overwritten
+	during garbage collection.
+
+    o	Crossing factors (`:') works again.
+
+    o	terms.formula used to choke on terms more than 60 characters long
+
+    o	is.nan() should now work correctly on new/old-style lists.
+
+    o	x[[i]] did not work correctly for negative subscripts i.
+
+    o	as.list() didn't work for expressions
+
+    o	x[[i]] <- quote(a) (x generic vector) didn't work
+
+    o	for method functions: many argument name changes, add ... where
+	needed, for consistency with the generic function.
+
+    o	example() will allow (again) aliased topic names.
+
+    o	HTML help file conversions will find hyperlinks in the main
+	library as well as the current library. Links containing `<'
+	or `>' now work properly.
+
+    o	Rdconv conversion of \section{}{}s to Sd corrected.
+
+    o	ppois rounded non-integer `q', should truncate.
+
+    o	pnbinom was wrong for non-integer `q'.
+
+    o	dbinom, dgeom, dnbinom, dpois give 0 with a warning for
+	non-integer arguments.
+
+    o	load / save / data allow unlimited string sizes.
+
+    o	strsplit() allows unlimited string size.
+
+    o	eigen() now should work (again) in all cases.
+
+    o	is.nan() fixed to work (again) in architectures with
+	"unspecified" internal isnan().
+
+
+		CHANGES IN R VERSION 0.64.0
+
+NEW FEATURES
+
+    o	Files BUGS and FAQ are now included with distribution and
+	various "front matter" files have been cleaned up.
+
+    o	readline has now an argument  prompt = ""
+
+    o	coplot() now labels levels when conditioning variable is factor
+	(John Maindonald).
+
+    o	A new function filled.contour() has been added.	 It produces
+	a variant of contour plots where the area between contours
+	is filled with a solid colour.	The function (currently)
+	uses the layout() function and so is restricted to a full
+	page display.
+
+    o	The function terrain.colors() has been modified to remove a
+	visual discontinuity (at yellow).  In addition, a function
+	cm.colors() which implements a Cleveland-style cyan-magenta
+	palette has been added.
+
+    o	Primitive function .External() to call dynamically loaded
+	`internal'-style functions (code from Jean Meloche).
+
+    o	Function page() to view an R object in a pager.
+
+    o	Support for handling embedded '\n's in text strings
+	handed to low-level graphics functions has been added.
+	Some changes to the PostScript graphics driver were
+	needed to support this, so there may some minor change
+	in the appearance of plots produced in PostScript.
+
+    o	The LaTeX documentation is now split into 2 parts: the (currently
+	almost non-existent) manual and a reference index.
+	Manual: new section on loading C++ code.
+
+    o	[EXPERIMENTAL] Gnome support added. Use ./configure --with-gnome
+	to try it, but don't expect too much yet.
+
+    o	HDF5 support improved. Still not perfect, though.
+
+    o	The X11 graphics driver can now use a variety of strategies
+	for handing color.  This means that it is now possible to
+	use black and white or grayscale graphics on color displays.
+	There are two strategies for handing color on pseudocolor
+	displays.  The original "allocate-colors-until-they-run-out"
+	strategy has been supplemented by one which allocates a
+	color cube at startup and approximates requested colors
+	by those in the cube.  On truecolor displays, there is no
+	limit on the number of colors which can be displayed and
+	you get exactly the color you request.	(Note that
+	Directcolor and staticcolor displays are not supported yet).
+
+    o	The persp() function now allows shading of the rendered	surface
+	using a simple lighting model.
+
+    o	Many functions providing an interface to the operating system
+	have been made "platform independent".	See the manual entries
+	for "file", "list.files" and "file.show" for details of the new
+	interface.  The system.file() interface has been changed.
+
+    o	There is a new function "eval.with.vis" which behaves exactly
+	like "eval", but which returns both the result of the evaluation
+	an a logical value indicating whether the value is ``visible''.
+	This has been used to replace some ad-hoc tests for whether
+	value should be printed or not in "source".  As a consequence,
+	the "example" and "demo" functions no longer print invisible
+	values when the example script is run.
+
+    o	Index files in data directories in packages should be `00Index'
+	not `index.doc'.
+
+    o	Function interaction() to compute factor interactions.
+
+    o	load() can load to specific environments.
+
+    o	Sockets interface: make/read/write/close.socket()
+
+    o	Function chull() for planar convex hulls
+
+    o	pairs.formula() allows formula notations for scatter plot matrix.
+
+    o	new dataset co2.
+
+    o	documentation for datasets mtcars, plants, pressure, randu and
+	sleep.
+
+    o	the sunspots dataset is now monthly rather than annual.
+
+BUG FIXES
+
+    o	strsplit(), scan() and friends use a much larger char buffer
+	 (still fixed size; this will change again)
+
+    o	ts() allows a data-frame argument `data'.
+
+    o	anova.lm handles singular models better, and deparses responses.
+
+    o	dump() now uses digits=12 rather than the current setting.
+
+    o	tabulate ignores entries beyond nbins rather than core dumps.
+
+    o	?.C documents what C/Fortran types R objects correspond to
+	in foreign function calls, which is not what everyone thought.
+
+    o	changed long to int in several .C calls to follow the above rules.
+
+    o	rbind(x1,x2) now does not lose dimnames when xi are
+	character or complex.
+
+    o	readline() accidentally inherited menu()'s prompt.
+
+    o	.C() and .Fortran() now correctly report that there might be
+	NaN/Infs, not just NAs, unless NAOK=TRUE.
+
+    o	Resizing an inactive graphics window to an invalid size left
+	that window active and produced a spurious prompt and newline
+	in the console window.	This no longer happens.
+
+    o	poly() rescales x to increase accuracy
+
+    o	apply() preserves names in yet another case [-> new example].
+
+    o	phyper() now works for larger arguments than before.
+
+    o	Missing values didn't work in log plot
+
+    o	outer() doesn't produce all-empty dimnames any more
+
+    o	quantile.default() works when `probs' has zero length
+
+    o	example() now works again in all cases [AnIndex spaces].
+
+    o	typos fixed in nlm() message, glm help
+
+    o	pt() now works better for extreme `df' arguments and gives
+	at least an approximate answer for ncp > 37.6. __more to change__
+
+    o	fixed some glitches with formatC() and its docs.
+
+    o	several fixes in *.c code to make -Wall happy
+
+    o	curve() [and plot.function()] now use proper `x' values with log="x";
+	`type = "."' now works with curve() and plot.function()
+
+    o	zapped old windows files since they didn't build any more.
+	The sources for the later gnuwin32 version are expected to
+	appear here for 0.64.1. The #ifdef Win32's here are for that
+	version.
+
+
+	**************************************************
+	*						 *
+	*	       0.63 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 0.63.3
+
+NEW FEATURES
+
+    o	get() and assign() allow position in search list to be a
+	character string. (e.g. get("delete.response","package:base")
+
+    o	HTML search now works for all packages (after new installation).
+
+    o	R INSTALL now also copies DESCRIPTION file to target dir.
+
+    o	offsets should work with lm as well as with glm now
+
+    o	range() is now in the Summary group, trunc() back in the Math
+	group.
+
+    o	Under Unix, R-specific environment variables can now be kept/set
+	in `~/.Renviron'.
+
+    o	New options `latexcmd' and `dvipscmd' for specifying the locations
+	of LaTeX and dvips; corresponding environment variables renamed to
+	`R_LATEXCMD' and `R_DVIPSCMD'.
+
+    o	--vsize & --nsize now both give size in "single units"
+	(bytes/cons cells) with possible
+	suffixes "M" (Mega), "K"ilo (1024) and "k"ilo(1000).
+
+    o	[pdqr]negbin() now also work with non-integer 'size' [by Ben Bolker].
+
+    o	New standard package `lqs' for resistant regression and
+	covariance estimation, contributed by Brian Ripley.
+
+    o	new functions match.fun() and kronecker() [by Jonathan Rougier]
+
+    o	par(las = 3) is a new option.
+
+    o	new function jitter()  [slightly more useful than S's].
+
+BUG FIXES
+
+    o	system(command, intern=FALSE, ignore.errors=FALSE)
+	changed 1st & 3rd argument names and is better documented.
+
+    o	"/Font5 /Symbol findfont definefont" confused some printers
+
+    o	Bounding box rotated 90 deg for landscape (shouldn't be)
+
+    o	Legend skipped symbol for pch=0
+
+    o	compilation on non-Intel Linux systems no longer looks for __setfpucw
+
+    o	a %% b -- is now periodic instead of symmetric; more S compatible.
+
+    o	locator(n=512) -- default: MANY points, not just one.
+
+    o	qqnorm() uses ppoints() and returns list with x sorted along y.
+
+    o	plot.formula now allows ylab to be set
+
+    o	plotmath had trouble with paste()'ing expressions
+
+    o	plotting math expressions now also works for objects of mode
+	"call" (in particular on the result of substitute())
+
+    o	locator() on log axes: value antilogged twice
+
+    o	(a real oldie - and trival too) is.recursive now TRUE for
+	expressions
+
+    o	sanitised delete.response
+
+    o	x[["a",]] could crash R
+
+    o	strwidth() crashed R if no device open
+
+    o	predict inconsistencies with offsets straightened out
+
+    o	tapply goofed when FUN returned named scalar
+
+    o	[.factor now retains contrasts attrib.
+
+    o	hist() had trouble with plotting math
+
+    o	HTML indices get only built when installing a package to RHOME
+
+    o	subscripting with a length zero logical no longer bombs.
+
+    o	as.ordered(NULL) now returns an "ordered" object.
+
+    o	--debugger .. now gives a warning if other command line args are used
+
+    o	pt(t, df, ncp) now also works for bigger ncp's
+
+    o	apply(a,d, fun) now passes vectors (rank 1 arrays) to fun.
+
+    o	model.frame() with subset and only one column fixed
+
+    o	boxplot(<data.frame>) now works again.
+
+    o	dyn.load(..) failing gives more informative error message.
+
+    o	Ops.factor:  not error, but a warning + NAs
+
+    o	bug.report() keeps report file if can't be e-mailed
+
+    o	Ops.data.frame :  things like  d.fr < a	  now return a matrix
+
+    o	data.frame():  duplicated row.names now give a warning when dropped.
+
+    o	boxplot(.., ylim=..) or (.., axes=..)  gave erronous warning
+
+    o	glm had wrong init code for models with offsets. Also fixed
+	so that linear predictor includes offset, also when predicting.
+
+    o	predict.glm didn't work with se=T
+
+    o	backsolve(), qr.solve... now return a vector when x (or y) is a vector.
+
+    o	string tags now converted to symbols and strange symbolic
+	tags print as strings, cf. e<-quote(c(F=2, "tail area" = .5)), etc.
+
+    o	row.names(.) <- val  doesn't allow duplicated values anymore.
+
+    o	library(mva)'s dist() now works with both "euclidean" & "euclidian"
+
+    o	revised curve function to avoid using grep patterns that caused
+	problems under Solaris 2.6
+
+    o	coplot() now has 'number' and 'overlap' arguments, and should work
+	in more situations. [by John Maindonald and MM].
+
+    o	save(..ascii=TRUE) now uses "full precision" for numerics.
+
+    o	as.array() preserves names()
+
+    o	outer() works for general array args and preserves (dim)names.
+
+    o	print.factor and print.ordered now return their args invisibly.
+
+
+		CHANGES IN R VERSION 0.63.2
+
+NEW FEATURES
+
+    o	sink() has new `append' argument.
+
+    o	new function rle().
+
+    o	plot(.) and  curve(.) also accept a function as first argument.
+	new `plot.function'.
+
+    o	new function loglin().
+
+    o	pretty() has new arguments and now better "obeys" its `n' arg.
+	Internal GPretty() [implicitly used by	axis(.., at = NULL,..)
+	now uses pretty.
+
+    o	new generic function aggregate() with methods for data frames
+	and time series.
+
+    o	data set `euro' with Euro conversion rates.
+
+BUG FIXES
+
+    o	model.frame(,subset=) no longer loses contrasts
+
+    o	`make install' copied the R shell script a second time without
+	getting RHOME right (thus also breaking R CMD check).  Fixed.
+
+    o	help() after help.start() did not work if topic was not equal
+	to filename (e.g. rnorm is found in Normal.html)
+
+    o	fix the 0.63.1 fix for abbreviate(.);  improved doc.
+
+    o	predict.mlm(.) couldn't have worked with `newdata'.
+
+    o	model.frame/na.omit bug for matrices and Surv objects.
+
+    o	mean( <data.frame> ) now doesn't return sum(.) anymore.
+
+    o	str(.) doesn't give extraneous "..." in rare cases anymore.
+
+    o	Added documentation for group methods ("Math", "Ops","Summary").
+
+    o	R_PAPERSIZE is used for Rd2dvi and at configure time for the
+	`make dvi' parts.
+
+    o	hist(i) now also works for e.g., i = -1, 0, or 1.
+
+    o	range() now works on dataframes (uses c(..., recursive=T))
+
+    o	pretty(.) does not loop infinitely anymore in very extreme cases.
+
+    o	math functions should work better on dataframes now
+
+    o	plot(.., type = 'h', log = 'y')	 now works ...
+
+    o	plot.factor(x, y, ...) of two factors now makes
+	barplot(table(y,x), ...)
+
+    o	use object$prior.weights in add1.glm, drop1.glm (Brian Ripley)
+
+    o	rnorm(1,mean=m,sd=0) returns m, not NaN (Ben Bolker)
+
+    o	runif(n, a,a) now returns  rep(a,n) instead of NaNs.
+
+
+		CHANGES IN R VERSION 0.63.1
+
+NEW FEATURES
+
+    o	new function mosaicplot().
+
+    o	xy.coords(.) has a  "recycle = FALSE" argument,	 used in text().
+
+    o	RNGtype() allows to choose different Random Number Generators.
+		__EXPERIMENTAL__
+
+    o	print.default(.) now also works with a `right = TRUE' argument.
+	{{ print.matrix(.) is bound to become deprecated... }}
+
+    o	new help page `Memory' on the usage of command line options
+	--vsize and --nsize. Error message if R runs out of memory
+	points to help(Memory).
+
+    o	rowsum() and improved na.omit() added from survival4
+
+    o	backsolve(.) has new arguments "upper.tri = TRUE, transpose = FALSE"
+
+    o	hist() has new "right = TRUE" argument;
+	"right = FALSE" gives  [a,b) intervals
+
+    o	help() has "htmlhelp" argument, allowing to suppress htmlhelp after
+	help.start().  This is desired for ESS.
+
+    o	quantile(.) has an "names = TRUE" argument for speed.
+	It is much better documented now.
+
+
+BUG FIXES
+
+    o	build-help --dosnames should now also work for text help,
+	latex and examples.
+
+    o	seq() should work better now (fuzz-factor 1e-7 inserted)
+
+    o	multiple arguments to return caused value to be a pairlist
+
+    o	data.frame choked on long names from deparse()
+
+    o	data.edit now works (dataedit doesn't need pairlist()s anymore)
+
+    o	as.pairlist(NULL) is ok
+
+    o	ts(1:5, start=2, end=4) now work.  Further plot(ts(..), ts(..))
+
+    o	eigen() returns $vectors in any case [S compat].
+
+    o	apply(cbind(1,1:9, 2, quantile) doesn't drop quantile names anymore
+
+    o	array(1, dim=(1:3)[c(F,F,F)]) is now valid == array(1,NULL) == c(1);
+	the same for array(a,d, list())
+
+    o	fix problem with step() and offsets
+
+    o	drop attributes on matrix subsetting
+
+    o	kappa(.) now works [dtrco now in load table (ROUTINES)].
+
+    o	pmin() and pmax() now preserve attributes.
+
+    o	handle null models arising in drop1(), step, etc.
+
+    o	partial matching problem with $ indexing
+
+    o	matplot(.) works with lwd (vectors)
+
+    o	par("cex.axis") now has the desired effect...
+
+    o	which(.) now omits NAs in its argument.
+
+    o	rbind.data.frame caused character-to-factor coercion a bit too often
+
+    o	couple of messups in dotplot
+
+    o	z[[1]] <- ~x probl fixed as suggested by J.Lindsey
+
+    o	do_modelframe could lose contrast attributes
+
+    o	"make check" needed standardisation of locale
+
+    o	unlist(...,recursive=F) got names wrong
+
+    o	abbreviate(.) does not anymore return random garbage in some
+	cases [by Guido M.]
+
+
+		CHANGES IN R VERSION 0.63
+
+NEW FEATURES
+
+    o	library(... , warn.conflicts = TRUE)
+	now prints all conflicts arising from attaching the given package.
+
+    o	new  .Platform	variable  for better modularizing
+	platform dependence. __This_is_"beta"_and_bound_to_be_changed___
+
+    o	new arguments to colnames(..) and
+	rownames(x, do.NULL = TRUE, prefix = "row").
+			   _
+    o	par(bty = "]") for _| box(.) in plots.
+
+    o	New standard package `modreg' (smoothing and local MODern
+	REGression methods) contributed by B.D. Ripley.
+
+    o	par() has a `no.readonly = FALSE' argument which allows more
+	sensible  op <- par(no.readonly = TRUE);  on.exit(par(op)).
+
+    o	Real Bessel functions of 1st to 3rd kind, of arbitrary order:
+	besselI(), besselK(), besselJ(), besselY() are the I(), K(),
+	J(), and Y() Bessel functions.
+
+    o	New conflicts() function from B.D. Ripley
+
+    o	uniroot has a new `maxiter' argument and returns #{iter} and
+	precision.
+
+    o	New option `show.coef.Pvalue' (default: TRUE).	If FALSE,
+	print.summary.[g]lm does not print P values.
+
+    o	New `R --vanilla' is equivalent to
+	  R --no-save --no-restore --no-site-file --no-init-file
+
+    o	gc() has now a `verbose' argument and returns a matrix with free
+	and total n- and v-cells(heap).
+
+    o	New example(<foo>) function runs the \emph{Examples} R code of
+	<foo>.	example() calls source() which now has a `verbose'
+	instead of `debug' argument.
+
+    o	experimental functions [as.|is.|]pairlist() for the few old-style
+	dotted pair lists [undocumented].
+
+    o	options(check.bounds = TRUE) makes sub-assignments which
+	"stretch" a vector give a warning [dropped undocumented
+	check.bounds() function].
+
+    o	Makefiles should now conform (mostly) with the GNU Coding
+	Standards.  In particular, `make install', `make uninstall'
+	and `make install-strip' now work.
+	Also, it is now possible to build R in a non-source directory.
+
+    o	which() preserves names and has a new `arr.ind' argument
+	allowing for array indices.
+
+    o	New functions {d,p,q,r}signrank for the Wilcoxon signed rank
+	distribution, and {d,p,q,r}wilcox for the Wilcoxon (rank sum)
+	distribution.
+
+    o	Command line options GNUified a bit further.
+	New command line option `--verbose' for printing more
+	information about progress.
+	Command line options `--vsize' and `--hsize' as replacements
+	for `-v' and `-n' which are now deprecated.
+	Added `--silent' as synonym for `--quiet'.
+	Short-style option `-V' obsolete.
+
+    o	Added bug.report() to generate & send bug reports from
+	within R.
+
+    o	The PostScript device driver now uses the ISO Latin1 font
+	encoding.  This should allow Western Europeans to render
+	their languages correctly.  It is likely that additional
+	encodings will be added (e.g. Latin2) when we figure out
+	how to set the correct font encoding in printers.
+
+    o	The mathematical annotation code has been reworked.  Italic
+	correction works better.  Additional functionality will be
+	added.
+
+    o	"sample" now has an optional "prob" argument which gives the
+	probabilities of sampling each element in the vector being
+	sampled.  The present implementation is based on some code
+	from E. S. Venkatraman <venkat@biosta.mskcc.org>.
+
+    o	The internal data structure used to represent lists has
+	changed from being based on dotted pairs to generic vectors.
+	Users should see no changes as a result (with the exception
+	of some efficiency gains in list operations).
+
+    o	Subscripting matches that of S more closely.  It is now
+	possible to use subscripting beyond that the end of vectors
+	and lists.
+
+    o	Element labelling in "c" and "unlist" should match that of
+	of S.
+
+    o	Added split.screen etc functions for manipulating multiple
+	screens on a single device
+
+    o	After help.start() the HTML help system is used for all help()
+	requests. The name of the browser is now controlled by
+	options("browser").
+
+    o	Added kmeans to package mva (donated by B. Ripley)
+
+    o	New persp function added.  It is NOT compatible with S (yet)
+	and is subject to internal and interface changes.
+
+    o	gctorture() for torturing the garbage collector to reveal
+	memory protection bugs. (Call GC on every memory allocation).
+
+    o	B. Ripley's aov code (and more) has been added. This includes:
+
+	- aov() now handles models with Error terms, multiple
+	  responses.
+
+	- proj(), model.tables(), se.contrast(), replications(),
+	  eff.aovlist() are implemented for aov fits, and where
+	  appropriate for lm fits.
+
+	- dummy.coef(), with methods for lm and aovlist fits.
+
+	- add1(), drop1(), step() for stepwise fitting of statistical
+	  models, with default, lm and glm methods.
+
+	- summary() and deviance() -- mlm methods.
+
+	- kappa()  (for estimating condition numbers)
+
+	- labels() to find a suitable set of labels from an object
+
+	- C() for setting the contrasts of a factor
+
+	- anova(), plot(), summary() and deviance() methods for mlm fits
+
+    o	eval() semantics changed when envir= is a list. A 3rd argument is
+	now allowed, specifying the enclosure (i.e. where R looks for
+	variables *not* found in envir=) it defaults to the calling
+	environment (was .GlobalEnv). Note that when used inside a function,
+	it is often desirable to set the enclosure to the parent
+	environment instead. [ eval(e, data, sys.frame(sys.parent())) ]
+
+
+BUG FIXES
+
+    o	min(NULL); max(double())  now give warnings.  range() gives NA.
+
+    o	substring("", NULL) no longer segfaults.
+
+    o	formatC(.) now takes default "width = 1" when both width and digits
+	are unspecified.
+
+    o	several fixes in internal axis and tickmarks setup for
+	"extreme" ranges and values, especially for "log" scaling.
+
+    o	seq(a,a, by=b) now works properly.
+
+    o	print.data.frame(.) now calls print.matrix instead of print(.)
+	which finally enables the 'right = TRUE' argument.
+
+    o	R --help  gives more
+
+    o	postscript() now uses 'hyphen' instead of 'plusminus' for a minus.
+
+    o	source(..., echo=TRUE) now puts a `"' if necessary after truncation.
+
+    o	Changes to the PostScript device driver mean that the volume
+	of output has been reduced to about a third of what it was.
+
+    o	Fixes and restructuring to name generation in connection with
+	unlist() and c().
+
+    o	Many bugs found and fixed in the memory allocation / garbage
+	collection area. In particular, the parser was sometimes
+	UNPROTECT()ing the wrong pointers.
+
+    o	lm(y[g=="1"]~x[g=="1"]) caused memory corruption
+
+
+		CHANGES IN R VERSION 0.62.4
+BUG FIXES
+
+    o	plot.default(.) has now 'sub' argument which eliminates
+	"Warning: parameter "sub" couldn't be set in high-level plot() function"
+
+    o	formatC(numeric(0)) now works.
+
+    o	menu(.) works for empty imput
+
+    o	0i ^ 2	now gives  0+0i as it should.
+
+    o	ppoints() now behaves like S, and has additional argument 'a'
+
+    o	seq(1,6,by=3) and similar "by" calls now work okay
+
+    o	mahalanobis(.) now fixed; does *NOT* have default arguments for
+	center and cov anymore.
+
+    o	diag(.) doesn't return non-sensical dimnames anymore.
+
+
+		CHANGES IN R VERSION 0.62.3
+
+NEW FEATURES
+
+    o	preserve factor levels and contrast settings in model objects
+
+    o	factor[...,drop=T] reduces level set
+
+    o	added dblepr, intpr
+
+    o	do_modelmatrix(model.c): Set rownames from data argument.
+
+    o	New generic function preplot().
+
+    o	A new R BATCH interface for non-interactive execution.
+
+    o	Added `offline' argument to help() for producing hardcopy via
+	latex and dvips.
+
+    o	glm.fit.null now calculates AIC and print.glm.null prints it
+
+    o	effects.lm implemented
+
+    o	new class "mlm" for multivariate "lm", predict.mlm to go with it
+
+    o	"Details" section added to .Rd format
+
+    o	R_PRINTCMD and R_PAPERSIZE can now be set via users' environment,
+	overriding setting in startup script.
+
+    o	enhanced identify()
+
+    o	new function print.coefmat()
+
+    o	added unix() as .Deprecated("system")
+
+    o	date() replacing system.date()
+
+
+BUG FIXES
+
+    o	substitute would re-substitute after expanding ...
+
+    o	indexing modified object in some cases
+
+    o	sweep should work again on dataframes
+
+    o	minor changes in aov()
+
+    o	builds should now actually work on systems that do not add
+	underscores to Fortran symbols
+
+    o	biplot[.default]() was redundant in "base" package; now only in "mva".
+
+    o	unix(..) now helps the user to find  system(..) instead.
+
+    o	apropos("[") and methods("[") now both work (even though "[" is not
+	a valid regular expression).
+
+    o	row.names<-.default now exists. Converts object to data
+	frame and then adds row names
+
+    o	codes() now distinguishes between ordered and unordered factors
+
+    o	codes() had *opposite* semantics of Splus. Now it's the same.
+
+    o	replicating factors now yields factors (again)
+
+    o	print.summary.xxx  functions more consistent, using new function
+	print.coefmat().
+
+    o	Changed many `T' to `TRUE'  and	 `F' to `FALSE' in the base package.
+
+    o	binary operation on 1x1 matrix lost dimension
+
+    o	fix anova.glm for null model
+
+    o	glm.fit.null: ensure df.residual == df.null for a null model
+
+    o	summary.glm: correlations in saturated cases
+
+    o	stat.anova: use match.arg and labeled switch statement
+
+    o	Major cleanup of glm iteration code
+
+    o	Correct reordering of glm coefficients if pivoting
+
+    o	Rownames on contrast matrices
+
+    o	factor() and [.factor preserves class "ordered"
+
+    o	Code rearrangement in predict.lm (avoid unnecessary computation)
+	+ let rownames through on predictions
+
+    o	model.matrix.default: Initial code to define model frame
+	simplified considerably after defaulting data argument to
+	sys.frame(sys.parent()).  This also removes the problem where
+	data.frame mangles I(x^2) and similar names, so that the
+	"reorder" sanity check at the end fails.
+
+    o	The handling of extra FORTRAN libraries (f2c-related and BLAS)
+	should now be correct.	Via SHLIBLDFLAGS, add-ons will also be
+	linked against these libraries.
+
+    o	Modified makefiles so configure followed by "make distclean"
+	should restore the source tree to its original form.
+
+    o	a leftover "colours <- colors" caused trouble when collating
+	sequence changes caused files to go into the "base" file in a
+	different order
+
+		CHANGES IN R VERSION 0.62.2
+
+(The new functions predict.glm, poly, aov, alias, biplot.default and
+biplot.princop, update.default and rug all come from Brian D. Ripley,
+who is also responsible for finding and/or fixing a lot of the bugs)
+
+NEW FEATURES
+
+    o	predict.glm() added.
+
+    o	text() is generic.
+
+    o	update.default() (replaces update.glm() and update.lm()).
+	(This will only work if you comment out update.lm and
+	update.glm in the sources, or disable them with
+	update.lm<-function(object,...)NextMethod(), etc.)
+
+    o	predict.lm() changed towards S-plus compatibility. Intervals are
+	still available via interval= argument.
+
+    o	zapsmall() function.
+
+    o	polygon() now handles NAs
+
+    o	options(show.signif.stars = TRUE).  If FALSE,
+	summary.lm and similar functions do *not* print significance stars
+	anymore.
+
+    o	poly() for [g]lm modelling.
+
+    o	aov()	for Analysis Of Variance [anova].
+
+    o	alias() for displaying ``aliased'' factor levels in (>=2)way anova.
+
+    o	mva: Now has  biplot and biplot.princomp
+
+    o	rug() plot.
+
+    o	new  src/library/profile/Common.R   for	 OS-independent intialization.
+
+    o	new date stamp mechanism (ensures that prerelease versions carry
+	correct date)
+
+BUG FIXES
+
+    o	abbreviate() now always retains the first letter.
+
+    o	attr() partial matches for attribute name.
+
+    o	axis() accepts graphical parameters.
+
+    o	binomial() accepts factor responses.
+
+    o	cbind() works with data frames.
+
+    o	contrasts() gives simpler labels (like S) for factors with
+	two levels.
+
+    o	contrasts<-() now has a how.many= argument.
+
+    o	contour() and image() can accept a list to specify the matrix.
+
+    o	contr.poly() uses orthogonal polynomials (like S) not raw
+	polynomials.
+
+    o	data() could fail with a partial match to the dataset name.
+
+    o	density() works correctly if from= or to= are used.
+	    n= can now take any value, not just a large power of 2.
+
+    o	expand.grid() now accepts more than two arguments,
+	or a list of factors.
+
+    o	factor() and ordered() handle their levels argument better.
+
+    o	family.glm() now returns the correct family (including link etc).
+
+    o	legend() now knows about lwd.
+
+    o	match.args() works correctly for default arguments.
+
+    o	model.frame.lm() did not invoke `lm'.
+
+    o	model.matrix() calls model.frame() if needed.
+
+    o	model.response() now returns names, so glm() gives names to
+	residuals, fitted values, etc.
+
+    o	quasi() works in glm() (was missing aic component).
+
+    o	seq() sometimes omitted the final value due to rounding error.
+
+    o	terms.formula() and update.formula() now resolve `.' in formulae
+	and tidy up `(a + b) - b' etc.
+
+    o	... is now passed down correctly to functions inside functions.
+
+    o	save.image didn't work (Martyn Plummer)
+
+    o	abs() instead of fabs() in seq.c crashed R on Digital Unix
+
+    o	model.matrix() gagged on variables with complicated names
+
+    o	saturated models acting up in glm
+
+    o	various improvement of build procedures
+
+    o	rbind(NULL, matrix) core dump
+
+    o	density() default 'bw' now 0.9*(...) instead of 1.06*(...)
+				[=Silverman's rule of thumb].
+
+    o	detach(2) now works.
+
+    o	format() doesn't drop names anymore.
+
+    o	format.pval() works with NAs.
+
+    o	print.[summary.][g]lm() functions print numbers better formatted.
+
+    o	legend() now also works properly in  log coordinates.
+
+    o	backsolve() now working;  bakslv.c not depending on
+	Fortran_underscores.
+
+    o	Tick marks acting up on log axes in postscript (fix from Martyn
+	Plummer)
+
+    o	The Rd format has a new section \details{} (needed for proper
+	Sd2Rd translation). \R was not understood for nroff
+	conversions, longer dashes (-- and --- in latex syntax) are
+	now converted properly.
+
+    o	prompt.default() now carries "\details{}".
+
+    o	R [ SHLIB | COMPILE ] were broken on some Solaris systems
+	due to use of bash syntax. R [ INSTALL | COMPILE | SHLIB ]
+	now use a MAKE environment variable if present.
+	R INSTALL only rebuilds man pages if they are not already
+	up to date.
+
+
+		CHANGES IN R VERSION 0.62.1
+
+BUG FIXES
+
+    o	Accidentally shipped R-0.62 without the tests and  etc/Rdoc
+	directories.
+
+
+		CHANGES IN R VERSION 0.62
+
+NEW FEATURES
+
+    o	Many more help(.) pages.
+
+    o	The top level Makefile now supports the usual
+	   ./configure; make; make install
+	procedure (new make targets `all' and `install').
+
+    o	The HTML help pages can now be searched for keywords.
+
+    o	Conversion of functions to and from lists. formals<- and body<-.
+	The alist() function makes it easier to construct argument lists,
+	etc. Added expression-->list coercion.
+
+    o	complex(.) now has optional 'argument' and 'modulus' arguments,
+	allowing ``polar coordinate'' specifications.
+
+    o	layout() documented and improved: starts default device if needed, and
+	returns number of figures.
+
+    o	New find() function [relying on apropos(..)].
+
+    o	objects(<integer>) now works, being equivalent to
+	objects(pos=<int.>).
+
+    o	storage.mode() and related functions now return
+	"double" instead of "real", for compatibility.
+	"real" is still allowed as synomym for "double".
+
+    o	A `tests' directory has been added (in the source), and "make
+	tests" has been modified to run more than all the examples from
+	the base package.  The exact `make tests' behavior is still
+	bound to change.
+
+    o	An experimental directory `etc/Rdoc' has been added with a perl5
+	module to parse R documentation files.	Sample perl programs
+	to use this module are also included.
+
+    o	All internal mechanisms to support factors and data.frames have
+	been removed.  These are now entirely supported by interpreted
+	code!  `is.unordered' has been eliminated.  Thanks to John
+	Chambers for allowing the distribution of his StatLib code.
+
+    o	"pmatch" is now completely S compatible and is not just another
+	name for "charmatch".
+
+    o	There is now a function called ".Alias" which can be used to
+	provide multiple names for the same object.  Example:
+		lm2 <- .Alias(lm)
+	This is dangerous because it can be used to defeat the
+	call-by-value illusion.
+
+    o	Many functions changed from <primitive> to .Internal(..).
+	Currently, new .Internal(.)s in ..library/base/R/New-Internal.R
+	Primitive functions are now printed as ``.Primitive(..)''.
+
+    o	[dpqr]hyper(.) now also work with some 0 arguments.
+
+    o	C-code: Many "-Wall" fixes (MM & DB).
+
+    o	mva's dist() now takes arguments diag and upper which control
+	how the distance matrix is printed. plot.hclust() now takes a
+	labels argument.
+
+    o	Attributes are now propagated correctly in binary operations.
+	Changes from:
+	  Steve Oncley and Gordon Maclean
+	  National Center for Atmospheric Research
+	  Boulder, Colorado USA
+
+    o	configure now also checks for fort77.
+
+    o	Usage of R INSTALL now is
+	  R INSTALL [options] [-l lib] pkg_1 ... pkg_n
+	The +/- options were replaced by GNU-style `--no-docs' and
+	`--no-text', `--no-html', and `--no-latex'.
+
+    o	Usage of R REMOVE now is
+	  R REMOVE [options] [-l lib] pkg_1 ... pkg_n
+
+    o	Usage of R COMPILE now is R COMPILE [options] srcfiles, where
+	through options one can set e.g. CFLAGS or FFLAGS.
+
+    o	Usage of R SHLIB now is R SHLIB [-o libname] files, where the
+	file names can be that of source or object files.
+
+    o	A new R CMD interface allows invokation of executables in
+	$RHOME/{etc,cmd} without installing them or setting paths.
+
+    o	Data files are now also documented using the Rd format, all
+	data documentation in the base package has been converted
+	accordingly. Rd files for data have a \keyword{datasets} as
+	identifier.
+
+    o	new function mahalanobis() for Mahalanobis distance
+
+    o	quantile.default() now handles Inf's correctly.
+
+    o	New command line options `--enable-blas' and `--enable-readline'
+	to configure.
+
+    o	pretty(x) is more reasonable when max(x)-min(x) < 1e-10 max(|x|),
+	and has a new argument "shrink.sml" for that case.
+
+    o	formatC(.) supports a new "fg" format for flexible
+	non-exponential formatting.
+
+    o	etc/build-htmlpkglist has been integrated into etc/build-help
+	(option --htmllists)
+
+    o	family	gaussian(.) and inverse.gaussian(.) both accept several
+	link arguments [J.Lindsey].
+
+    o	The graphics function "tck" now produces effects just
+	like those in S (e.g. par(tck=1) now produces grid lines).
+	Since using "tck" produces nasty results in some circumstances
+	there is also an alternative parameter "tcl" which defines
+	the tick length in terms of lines of text.  The default
+	setting is par(tcl=-0.5).
+
+    o	menu() now takes additional arguments `graphics' (currently
+	unused) and `title'.
+
+    o	New function plot.formula().
+	plot.factor() now produces boxplots when given 2 arguments.
+
+    o	New function write.table().
+
+    o	signif() now has a `digits' default of 6.
+
+    o	Old-style long command line options (`-save' etc) changed to
+	GNU-style (`--save' etc).
+	Debugging options (`-ddd', `-gdb', `-xxgdb') unified into the
+	new `--debugger' (`-d').
+	New command line options `--version' (`-V') and `--help' (`-h')
+	which print useful information and exit.
+
+    o	The loading of profiles at startup now works as follows.
+	Unless the new `--no-site-file' was given, a site profile is
+	sought (as specified via the environment variable `RPROFILE',
+	or if this is unset defaulting to `${RHOME}/etc/Rprofile'.
+	Then, unless the new `--no-init-file' was given, the user
+	profiles (`.Rprofile' and `~/.Rprofile') are sought.
+
+    o	New functions subset() and transform() intended primarily to
+	make life with dataframes easier.
+
+    o	debian directory has been added so Debian GNU/Linux packages can be
+	created from raw source.
+
+    o	The graphics system has been through a major overhaul.
+	It is now possible to have multiple active device drivers
+	and to control them with full suite of dev.xxx() functions
+	available in S.	 Display lists are now kept for interactive
+	devices.  When an on-screen graphics window is resized,
+	the content of that window is redrawn at the new size.
+	At present only X11 and PostScript graphics device drivers
+	are available, but more are on the way.
+
+    o	On systems using IEEE arithmetic, the builtin Inf and NaN
+	values are now recognised and used.  NA and NaN should
+	propagate correctly in computations, with NA dominating
+	in computations involving both quantities.
+	E.g. NA+NaN is NA.
+
+    o	Some of the t, F, and chisq distribution/probability functions
+	now allow a noncentrality parameter `ncp'.
+
+    o	Functions ptukey() and qtukey() provide the distribution and
+	quantile functions for the maximum of several studentized
+	ranges.
+
+    o	system.file()  [now documented] returns all files matched by
+	wildcards.
+
+    o	data() now supports more file formats: .RData for binary
+	files, .txt or .tab for data to be read by
+	`read.table(file, header=TRUE)' and .csv for data to be read
+	by `read.table(file, header=TRUE, sep=";")'
+
+    o	Rdconv: new tabular environment, new sections `\format' and
+	`\source', new output format `-type Sd' for S documentation
+
+    o	.First.lib() now implemented; called by library() after loading
+	a package.
+
+    o	print.summary.[g]lm() now give `significance stars' and a symbolic
+	correlation matrix.
+
+    o	new is.R() function.
+
+    o	glm() now also returns an AIC value [from JL].
+	print..glm methods indicate the options()$contrasts in some cases.
+	In summary.glm(..., correlation=..), the default has been changed to
+	corr. = FALSE  which is consistent with	 summary.lm().
+	predict() now works again for glm objects.
+
+    o	the `flag' argument in formatC(.) can now have more than one
+	character.
+
+    o	nlm() returns the number of iterations used [from J.Lindsey].
+
+    o	cut, diff, hist, mean, quantile, seq, trunc()  are now all generic.
+	cut() has an `include.lowest' argument as S.
+
+    o	save.image() as short-cut to save the current session in .RData.
+
+    o	new design of HTML help pages, including an index of all
+	functions from all installed packages.
+
+    o	new editor function pico()
+
+    o	matrices and arrays can have zero extents
+
+BUG FIXES (many of which resulted from the added features...)
+
+    o	atanh(.) now works
+
+    o	summary(glm) and summary(lm) now use compatible names.
+
+    o	[pq]tukey(.) now working.
+
+    o	title() now handles main=, sub=, xlab=, ylab= with embedded
+	newlines correctly.  This is partly a change in title and
+	partly a change in the underlying graphics code.
+
+    o	min(.), max(.), sum(.)	now return integer for integer arguments.
+
+    o	which(.) now returns integer.
+
+    o	Rd files: leading whitespace of lines in user-defined sections
+	was not correctly removed by Rdconv
+
+    o	sign(.) works again.
+
+    o	[.data.frame segfaulted if arg. wasn't a data frame
+
+    o	"R --no-readline" now again gives proper prompts.
+
+    o	demos/zero.R  dyn.load(.) now should be working more easily.
+
+    o	mode(.) now returns "(" for a "parentheses 'call'".
+
+    o	Bug fix in mva dist.c for method binary (gave "invalid
+	distance"). plot.hclust failed for data without row names.
+
+    o	R INSTALL should work (again) now when `pkg' is a relative file
+	name.
+
+    o	.not.yet.implemented() now takes an arbitrary number of args.
+
+    o	Plotting of dendrograms is working again.
+
+    o	data.frame(.) now uses "1:n" as default row.names.
+
+    o	image(.) and contour(.) now also work called as, e.g., ``image(z)''.
+
+    o	the first argument of axis(.) is now called `side' as in S.
+
+    o	format(NULL) now works.
+
+    o	minor fix in symnum.
+
+    o	hist() now is more compatible to S, has a new `labels' argument,
+	and should work ok for non-equidistant breaks.
+
+    o	plot(-1) now labels properly.
+
+    o	Many small code changes (eliminating extraneous variables, nested
+	comm.) in C code in order to satisfy `gcc -Wall' [Doug Bates].
+
+    o	model.extract() will now extract arbitrary model frame arguments.
+
+
+    o	list of currently loaded libraries (.Dyn.libs) not saved
+	from session to session (really, this time)
+
+    o	rhyper works with vectorisation, degenerate cases.
+
+    o	printing of objects in lists now dispatches methods correctly
+
+		CHANGES IN R VERSION 0.61.2
+
+BUG FIXES
+
+    o	pretty(999) resulted in an infinite loop due to integer overflow.
+	pretty(.) now sometimes returns different results than before.
+
+    o	pi:6  returned integer, instead of real.
+
+    o	[.data.frame caused segfault if called with non-dataframe argument
+
+    o	hist() now is more compatible to S, has a new `labels' argument,
+	and should work ok for non-equidistant breaks.
+
+    o	lgamma(-1e7) segfaulted.
+	gamma(.) and lgamma(.) now give proper results for negative integers.
+
+    o	formatC(pi,dig=20,wid=2) segfaulted.
+
+    o	quantile(..., pr = c(1,2,5)/1000)  gave all names as "0%".
+
+    o	In 0.61.1, model.matrix was fixed to pay attention to the names of
+	the names of its data arg, but the data arg was defaulting to an
+	unnamed list, so  model.matrix(~x)  failed...
+
+    o	Indexing with [[]] and a zero-length vector segfaulted.
+
+    o	Coercion of factors as in S-plus
+
+    o	dyn.load statement in demos/dynload/zero.R fixed
+
+    o	Factors could get allocated without the OBJECT bit, which
+	nearly drove Kurt mad trying to write plot.factor...
+
+    o	Fixed confidence limit problem in t.test
+
+		CHANGES IN R VERSION 0.61.1
+
+NEW FEATURES
+
+    o	None (by definition, x.y.z releases are bugfix releases now)
+
+BUG FIXES
+
+    o	Return statements of the form return(x,y) will now return
+	a list with named components.
+
+    o	Parsing of nested "if" statments was broken.  This is fixed now.
+	(Reported by Paul Gilbert).
+
+    o	Wrong declaration of ConsoleBufCnt in src/main/scan.c caused crash
+	in Irix (George White <gwhite@bodnext.bio.dfo.ca>)
+
+    o	if(nmatch = 0) bug in src/main/character.c fixed (Doug Bates)
+
+    o	R_alloc/S_alloc fixes. The former allocated 4 times more than
+	needed, the latter zeroed half of what it got, sizeof() mistakes
+	in both cases.
+
+    o	c(ordered factor) caused segfault (uninitalised pointer), now
+	fixed.
+
+    o	behaviour of as.numeric() on factors changed recently; now
+	documented.
+
+    o	model.matrix() now pays attention to the names on its dataframe
+	argument.
+
+    o	Fixes to group methods.
+
+    o	autoload() caused infinite loop if function  wasn't found in
+	library on loading
+
+    o	The pager ate the rest of stdin in batch mode, now fixed. Also,
+	stdout was not flushed before call to system(). "make tests"
+	should work now.
+
+    o	Empty directories now created by configure (so that it doesn't
+	matter that "CVS export" doesn't do it)
+
+    o	as.name() made idempotent (i.e. if is.name(x) then as.name(x)==x)
+
+    o	3 problems with glm, 2 in glm.fit and a one in print.glm fixed
+	[Jim Lindsey]
+
+    o	binomial (family) now works when 'n=0'. [J.Lindsey]
+
+    o	split() now also works in split(1:10,1:2)
+
+    o	strsplit() now also works for strsplit(c,NULL)
+
+    o	A LANG='..' environment variable no longer affects  scan()ing of
+	numbers.
+
+    o	seq(.) doesn't segfault anymore in  gl(2,3):gl(1,6)
+
+    o	contour(.) now also works with integer arguments
+
+
+		CHANGES IN R VERSION 0.61
+
+We try to make development more flexible by creating a "CVS branch". This
+should make it easier to produce patches for obvious bugs in the releases,
+without having to wait for changes in other areas to stabilize.
+
+NEW FEATURES
+
+    o	New functions "all.vars" and "all.names" added.
+
+    o	There has been a small change in the include file structure.
+	All include files now live in RHOME/src/include and are
+	copied to RHOME/include when needed.
+
+    o	The "noquote" functions are now documented.
+
+    o	A new `language' demo, "is.things", is provided.
+
+    o	symnum(.) function
+
+    o	The files in R/library/base/data have had a .R suffix added.
+
+BUG_FIXES
+
+    o	A nasty bug which showed when attempt was made to create
+	a zero length call has been fixed.
+
+    o	model.matrix(.) now allows a  contrasts argument.
+
+    o	barplot(.) now also works for barplot(table(rpois(100,3))).
+
+    o	make clean ; make    now should work;  ./Makefile.in eliminated
+
+    o	format(.) is now generic;  the default method has a `digits' argument.
+
+
+		CHANGES IN R VERSION 0.60.1
+
+NEW FEATURES
+
+    o	"split" is now a generic function, with a method for data frames.
+	(contributed by Doug Bates).
+
+    o	S compatible functions "all.names" and "all.vars" added.
+
+
+
+BUG FIXES
+
+    o	A file was closed multiple times if an error message occurred
+	after sourcing a file.	In some versions of Linux this caused
+	a core dump.
+
+    o	The inclusion <readline/history.h> was causing problems with
+	some versions of readline because the file did not exist.
+	This is now detected by configure.
+
+
+
+		CHANGES IN R VERSION 0.60
+
+R is about to become an official part of the GNU project.
+To quote RMS (Richard Stallman)
+
+		``I hereby dub R GNU software!''
+
+
+NEW FEATURES
+
+    o	There has been a major change in directory structure
+	masterminded by Kurt Hornik.
+	library(.) now attaches ``package''s which are better
+	integrated, see "?library".  Packages may be available from outside
+	the RHOME path via the .lib.loc variable.
+
+    o	The documentation format (of files in src/library/<package>/man/ )
+	has changed to a more easily parsable LaTeX like format.
+	The doc files now all end in `.Rd'.
+	etc/Rman2Rd  can be used to translate old-style documentation to
+	the new one.
+	The translation to *roff, LaTeX and HTML is now done using
+	etc/Rdconv, written in Perl by Fritz Leisch.
+
+	The HTML online help produced has now links which work.
+	The manual (in doc/manual/) now includes a section on the
+	documentation format and on mathematical text in graphs.
+
+	etc/ further contains `Sd2Rd' for (partial) translation of S `.d'
+	documentation to Rd, and
+	`Rd2txt' and `Rd2dvi' for easy previewing of single Rd files.
+
+    o	The use of "names" on one dimensional arrays will now produce
+	sensible results.  This means that for most purposes,
+	one dimensional arrays can be treated like vectors.
+
+    o	We have a applied a patch from mward@wolf.hip.berkeley.edu
+	which should substantially improve the speed of (vector)
+	arithmetic.
+
+    o	The modeling formula handler has been expanded so that it
+	accepts y ~ 0 + x as a "through the origin" specification.
+	models with no parameters are now acceptable.
+
+    o	"cov", "cor" and "var" now produce a matrix result if either
+	of their x or y arguments is a matrix.	Dimnames are propagated
+	in a sensible fashion.
+
+    o	New chisq.test(.) and prop.test() from Kurt Hornik.
+
+    o	New read.fwf(.) for reading fixed width format (KH).
+
+    o	New str(.) [alternative to summary(.) for programmers] (MM).
+
+    o	New example data sets "esoph", "infert" and "anscombe" (TL),
+	"iris3" (KH) and "stackloss" (MM).
+
+    o	source(.) has several new arguments, notably ``echo = FALSE''.
+	This is applied in the new function  demo(.) which runs all the
+	code in demos/ (but dynload).
+
+    o	strheight(.) is new, accompanying strwidth(.).
+	Both now work for mathematical expressions (Paul Murrell).
+
+    o	The LaTeX version of the manual (-> doc/manual/) now has an index.
+
+    o	EVERY *.Rd file in src/library/base/man/ has now at least one \keyword
+
+    o	New package (`library(.)') "stepfun" for step functions, incl.
+	empirical distributions.
+
+
+BUG FIXES
+
+    o	Regular expression matching is now done with system versions
+	of the regexp library.	This should fix compilation problems
+	on some platforms.
+
+    o	"approx" and "approxfun", have had some minor adjustments.
+	which fix the interpretation of the rule= argument.  The
+	code for piecewise constant case is now internal C code
+	that than interpreted.	This should boost performance in
+	this case.
+
+    o	There has been a minor fixup of "model.frame" to ensure that
+	subsets, weights, etc are handled properly.
+
+    o	Model fitting of the form
+
+		 lm(y~., data=df)
+		glm(y~., data=df)
+
+	will now work.	The RHS of the model will consist of an
+	additive model containing all (non-response) variables in the
+	given data frame.
+
+    o	The following type of assignment to data frame subsets
+
+		z <- data.frame(x=rnorm(10),y=rnorm(10),z=rnorm(10))
+		z[,1:2] <- matrix(1:20,nc=2)
+
+	was producing incorrect results.  The solution was to wrap
+	an implicit "as.data.frame" around the RHS.
+
+    o	"[.data.frame" no longer has a default drop=TRUE argument.
+	This means that subsetting a data frame with "[" will always
+	yield a data frame.
+
+    o	There was a swap of coordinates internally in "mtext" which
+	meant that labels were coming out in the wrong place.  Fixed.
+
+    o	Syntax errors in parse(text="...") would cause R to terminate
+	with a segmentation violation.	This no longer happens, although
+	the result is still not perfect (the parse() returns).
+	This will be fixed by a future parse rewrite.
+
+    o	rainbow, topo.colors, etc., now also work with n in {1,2};
+	don't return duplicate neighbor colors anymore.
+
+    o	legend has new `text.width' argument and now also works with
+	mathematical expressions as text.
+
+    o	hist() now works better, has a `plot = TRUE' argument, and returns
+	something useful.
+
+    o	barplot() improved for `names', now returns vector of midpoints.
+
+    o	lm(), lm.fit, lm.wfit (was `lm.w.fit'):	 Made more compatible.
+	Dealing with (close to) collinear situations is still not flexible
+	enough.
+
+    o	internal postscript() improved (missing lines in boxplot(.)).
+
+    o	Improvement to many (even most ?) documentation (.Rd) files.
+
+    o	Numerous other fixes of minor things ...
+
+
+
+		  CHANGES IN R VERSION 0.50
+
+WARNING!!!
+
+ o  A change in the way that "expressions" are implemented means that
+    saved data images which contain expressions will probably not
+    restore properly.
+
+NEW FEATURES
+
+ o  The installation of documentation has now been streamlined.
+    Many manual entries have been revised.
+
+ o  "expressions" are now implemented as a basic type rather than as
+    a class of object.	This change was made as move toward compatibility
+    with S and also to implement mathematical annotation in graphs.
+    For some examples of the latter, see ?text and ?title.
+
+ o  "eigen" can now handle complex and non-symmetric matrices.
+
+ o  Libraries are now attached by loading their code into newly created
+    environment frames on the search path rather than in with the general
+    system code.  This means that libraries can be unloaded as well as
+    loaded.  They can also have .First.lib and .Last.lib functions.
+    The variable .Libraries has been replaced by .library() but should not
+    be needed much anymore.
+
+ o  There is now an experimental function called "delay" which creates
+    a promise to evaluate an expression.  This provides direct access
+    to the lazy evaluation mechanism used by R.
+
+ o  >>>>  'make tests'	 allows to test--run all the help() examples.
+
+ o  New functions   matplot / matpoints / matlines.
+
+ o  cut has 2 new arguments. 'right = TRUE' gives intervals closed on the
+	right, open to the left (as S); 'right = FALSE' allows to reverse
+	this. The code for default label construction has been enhanced,
+	and can be controlled by the new argument 'dig.lab'.
+
+ o  legend(.) has 2 new arguments 'cex' (obvious) and 'merge = FALSE'.
+	-> ?legend.
+ o  deparse  has a 2nd argument allowing for a kind of line width.
+ o  There is now print.density (method).
+
+ o  many help(.) pages have been updated with working examples,
+	and several new ones have been created.
+
+ o  influence.measures() and lm.influence now allow to get at the usual
+    regression diagnostics.
+
+BUG FIXES
+
+ o  The "is.object" function has been with drawn.
+
+ o  A bug which prevented the "pictex" graphics driver from working
+    has been fixed.
+
+ o  Regression diagnostics obtained with "lm.influence" now work when
+    there are weights.	This means they should work for glms.
+
+ o  There was a problem in parsing files from statements which were
+    separated from following statements by ";" (e.g. data(iris); iris).
+    This is fixed.
+
+ o  Comments are handled better in functions.  The rule is that they
+    are shifted to just before their statements.  Comments after the
+    last statement of a function are lost.
+
+ o  It is now possible to perform complicated mutations of expressions.
+    For example
+	e <- quote(f(x=1,y=2))
+	names(e)[[2]] <- "a"
+    will change the x= argument tag into a=.  In the past this produced
+    odd error messages.
+
+ o  The length function now tries to return a "sensible" value for all
+    the built-in types.	 For example, symbols now have length 1.
+
+ o  "update" should now work in both "lm" and "glm" models.
+
+ o  The functions Re, Im, Mod, Arg and Conj will now accept real-valued
+    arguments and return the obvious results.
+
+ o  Minor graphics cleanup.
+
+ o  A fix for convergence problems in glm from Thomas Lumley included.
+
+ o  A new version of qt() should not take infinitely long to get an
+    answer in the large degrees if freedom case.  The underlying code
+    (Hill 1970, CACM) appears to be much faster and more accurate than
+    Splus.
+
+ o  A final Newton step has been added to give a final "polish" to
+    the quantiles produced by pnorm().	These should be close to full
+    accuracy now.
+
+ o  A bug in qbeta found by Martin Maechler has been fixed.  This should
+    speed up quantile computation for the F and Beta distributions.
+    Further improvements in qbeta(.) by MM.  No infinite loops anymore.
+
+ o  rainbow(.) now allows "start > end" indexing the "color circle".
+    topo.colors(n), terrain.colors(n), heat.colors(n) now also work for n=1,2.
+
+ o  ?"+" now works.
+
+ o  tapply has been fixed as indicated by T. Lumley.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/RESOURCES
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/RESOURCES	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/RESOURCES	(revision 2476)
@@ -0,0 +1,45 @@
+
+                            AVAILABLE R RESOURCES
+
+1 FAQ
+*****
+
+A collection of Frequently Asked Questions and their answers is
+maintained by Kurt Hornik <Kurt.Hornik@R-project.org> and can be found
+at the URL
+
+     <https://CRAN.R-project.org/doc/FAQ/R-FAQ.html>
+
+A text version is in file 'FAQ' in this directory, and an HTML version
+is available as file 'doc/html/faq.html' and via the on-line help (on
+the index page given by 'help.start()').
+
+2 Mailing lists
+***************
+
+Thanks to Martin Maechler <Martin.Maechler@R-project.org> there are a
+number of mailing lists which are used by R users and developers.  See
+
+     <https://www.R-project.org/mail.html>
+
+for details.
+
+3 Archives
+**********
+
+The Comprehensive R Archive Network (CRAN) is a collection of sites
+which carry identical material, consisting of the R distribution(s), the
+contributed extensions, documentation for R, and binaries, with the
+master site at <https://CRAN.R-project.org/> and information on daily
+mirrors available from
+
+     <https://CRAN.R-project.org/mirrors.html>
+
+4 Bug-tracking system
+*********************
+
+R has a bug-tracking system (or perhaps a bug-filing system is a more
+precise description) available on the net at
+
+     <https://bugs.R-project.org/>
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS.1
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS.1	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS.1	(revision 2476)
@@ -0,0 +1,8108 @@
+				Dear Emacs, please make this -*-Text-*- mode!
+
+	This file covers NEWS for the 1.x series
+	See 'NEWS.2' for subsequent changes.
+
+	**************************************************
+	*						 *
+	*	       1.9 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 1.9.1 Patched
+
+
+INSTALLATION ISSUES
+
+    o	Installation will now work even in Norwegian and Danish locales
+	which sort AA at the end (for package stats4 which has AAA.R).
+
+
+BUG FIXES
+
+    o	Various memory leaks have been plugged and uses of strcpy()
+	with overlapping src and dest corrected.
+
+    o	R CMD INSTALL now also works for /bin/sh's such as the one from
+	Solaris 8 which fail when a function has the same name as a variable.
+
+    o	The Date method for trunc() failed.
+
+    o	window() failed if both start and end were outside the time
+	range of the original series (possible if extend = TRUE).
+
+    o	coplot(..) doesn't give an extraneous warning anymore when called
+	on a fresh device.
+
+    o	hasArg() used wrong logic to get the parent function. (sys.function()
+	behaves differently from what is documented.)
+
+    o	prompt(f) now gives proper \usage{..} for
+	f <- function(x, g = function(u) { v <- u^2 ; sin(v)/v }) { g(x) }
+
+    o	package.skeleton() now uses the supplied name in the DESCRIPTION
+	file.
+
+    o	options(list('digits', 'scipen')) no longer seg.faults, the
+	problem being the misuse of a list (PR#7078).
+
+    o	summary.Date() now has a more sensible default for 'digits'.
+
+    o	list.files(all.files = TRUE, recursive = TRUE) died on infinite
+	recursion. (PR#7100)
+
+    o	cor(as.array(c(a=1,b=2)), cbind(1:2)) no longer seg.faults (PR#7116).
+	cor(), cov() and var() no longer accidentally work with list()
+	arguments as if they were unlist()ed.
+
+    o	as.matrix(data.frame(d=as.POSIXct("2004-07-20"))) doesn't give a
+	wrong warning anymore.
+
+    o	gsub(perl=TRUE) code got the R length of return strings wrong
+	in some circumstances (when the string was shortened).
+	(Fixed also PR#7108)
+
+    o	summaryRprof() was ignoring functions whose name begins with dot,
+	e.g. .C, .Call, .Fortran. (PR#7137)
+
+    o	loglin() could segfault if 'start' was of the wrong length.  (PR#7123)
+
+    o	model.tables(type="means") could fail in a design where a
+	projection gave all zeros. (PR#7132)
+
+    o	Applying attributes() to a pairlist, e.g. .Options, could segfault.
+
+    o	The checking of R versions incorrectly assumed 1.9.1 >= 1.50.
+
+    o	str(Surv(..)) failed for  type = "counting"  Surv objects and for
+	promises.
+
+    o	approx(c(1,2),c(NA,NA),1.5,rule=2) does not segfault anymore
+	(PR#7177), but gives an error.
+
+    o	nls(model = TRUE) was broken.
+
+    o	Subsetted assignments of the form A[i1, i2, i3] <- B stopped as
+	soon as an NA was encountered in an index so subsequent non-NA
+	indices were ignored.  (PR#7210)
+
+    o	Fixed bug in handling of lwd=NA in contour().
+    
+    o	is.na() was returning undefined results on nested lists.
+
+
+
+
+		CHANGES IN R VERSION 1.9.1
+
+
+NEW FEATURES
+
+    o	as.Date() now has a method for "POSIXlt" objects.
+
+    o	mean() has a method for "difftime" objects and so summary()
+	works for such objects.
+
+    o	legend() has a new argument 'pt.cex'.
+
+    o	plot.ts() has more arguments, particularly 'yax.flip'.
+
+    o	heatmap() has a new 'keep.dendro' argument.
+
+    o	The default barplot method now handles vectors and 1-d arrays
+	(e.g., obtained by table()) the same, and uses grey instead of
+	heat color palettes in these cases.  (Also fixes PR#6776.)
+
+    o	nls() now looks for variables and functions in its formula in
+	the environment of the formula before the search path, in the
+	same way lm() etc look for variables in their formulae.
+
+
+INSTALLATION ISSUES
+
+    o	src/modules/X11/dataentry.c would not build on some XFree
+	4.4.0 systems.	(This is a bug in their header files but we have
+	added a workaround.)
+
+    o	Building with gcc/g77 3.4.0 on ix86 platforms failed to produce
+	a working build: the critical LAPACK routines are now compiled
+	with -ffloat-store.
+
+    o	Added patches to enable 64-bit builds on AIX 5.1: see the R-admin
+	manual for details.
+
+    o	Added some patches to allow non-IEEE-754 installations to work
+	reasonably well.  (Infs and NAs are still not handled properly
+	in complex arithmetic and functions such as sin().  See also
+	Deprecated, as support for non-IEEE-754 installations is about
+	to be removed.)
+
+    o	Installation will now work in Estonian (et_EE*) locales, which
+	sort z before u.  (PR#6958)
+
+
+DEPRECATED & DEFUNCT
+
+    o	Support for non-IEEE-754 arithmetic (which has been untested
+	for some time) will be removed in the next full release.
+
+    o	Direct use of R INSTALL|REMOVE|BATCH|COMPILE|SHLIB is
+	deprecated: use R CMD instead.
+
+    o	The gnome/GNOME graphics device is deprecated and will be
+	removed in the next full release.
+
+
+BUG FIXES
+
+    o	pbinom(q, N, prob) is now more accurate when prob is close to 0.
+	(PR#6757)
+
+    o	pcauchy(x, .., log.p) is now more accurate for large x,
+	particularly when log.p = TRUE.	(PR#6756)
+
+    o	pgeom(q, prob, lower.tail, log.p) is now (sometimes much) more
+	accurate when prob is very small. (PR#6792)
+
+	The code for pgeom(prob=1) assumed IEEE 754 arithmetic, and
+	gave NaNs under gcc 3.4.0 -fPIC, for example.
+
+    o	makeARIMA() was not handling an ARMA(0, 0) model correctly.
+
+    o	as.Date() was failing on factors.  (PR#6779)
+
+    o	min(), max() and range() were failing on "difftime" objects.
+
+    o	as.data.frame.list() could fail on some unusual list names.
+	(PR#6782)
+
+    o	type.convert() ignored na.strings when no conversion was done.
+	(PR#6781, not needed for its primary use in read.table.)
+
+    o	Fixed a clipping problem in the quartz() device.
+
+    o	Subsetting a factor swapped the order of the attributes, which
+	identical() cares about.  (PR#6799)
+
+    o	The L-BFGS-B option of optim() apparently needs part of its
+	workspace zeroed.  (PR#6720)
+
+    o	extractAIC.survreg() needed updating.
+
+    o	When using the header Rmath.h in standalone mode, the case where
+	TRUE, FALSE are already defined is now handled correctly.
+
+    o	Package utils now exports several functions that are needed for
+	writing Sweave drivers.
+
+    o	Comparison of two lists/expressions was giving nonsensical
+	(and often random) answers, and is now an error.
+
+    o	The C-level function ncols was returning a random answer
+	(often 0) for a 1D array.  This caused model.matrix to
+	misbehave (perhaps segfault) if a term was a 1D array.	(PR#6838)
+
+    o	The configure script now finds the pdf viewers ggv and gpdf.
+
+    o	Workaround for the problems strptime on MacOS X has with dates
+	before 1900.
+
+    o	'R CMD build' works in a directory whose path contains spaces.
+	(PR#6830 under Unix/Linux: it already worked under Windows.)
+	Also 'R CMD check'.
+
+    o	mosaicplot() stops cleanly if given a table containing missing values.
+
+    o	install.packages() from a local CRAN was broken.
+
+    o	bxp() fixed for e.g.,  boxplot(..., border=2:4)
+
+    o	approx(list(x=rep(NaN,9), y=1:9), xout=NaN) does not seg.fault
+	anymore (PR#6809).
+
+    o	plot(1, pch=NA) does not give an error anymore and
+	plot(1:2, pch=c("o",NA)) only prints one symbol	 (PR#6876).
+
+    o	diffinv(matrix(3, 7,0)) now works.
+
+    o	plot.ts(z) for multivariate 'z' now properly draws all 'nc' xlab`s
+	when nc > 1 and obeys 'ann=FALSE' or 'axes=FALSE'.
+
+    o	aggregate(.data.frame) failed if the answer would have had one
+	row.
+
+    o	recordPlot() and replayPlot() failed to duplicate the display
+	list, so further plotting altered the saved or replayed object.
+
+    o	Assignments of the form adf[i,j] <- value now accept a
+	data-frame value as well as a list value.
+
+    o	dir.create() sometimes erroneously continued to report a directory
+	already existed after the first instance.  (PR#6892)
+
+    o	arima.sim() allows a null model.
+
+    o	which.min() & which.max()'s C code now PROTECT()'s its result.
+
+    o	Building standalone nmath did not support some of the DEBUG options.
+
+    o	mle() got confused if start value list was not in same order as
+	arguments of likelihood function (reported by Ben Bolker)
+
+    o	backsolve(r, x, k) now allows k < nrow(x) - as its documentation
+	always claimed.
+
+    o	update.packages("mgcv") and old.packages(*) now give a better error
+	message; and installed.packages("mgcv") properly returns <empty>.
+
+    o	stats:::as.dendrogram.hclust() is documented and no longer re-sorts
+	the two children at each node.	This fixes as.dendrogram(hh) for
+	the case where hh is a "reordered" hclust object.
+
+	plot.dendrogram(x) now draws leaves 'x' more sensibly.
+
+	reorder.dendrogram() now results in a dendrogram with correct
+	"midpoint"s, and hence reordered dendrograms are plotted correctly.
+
+	stats:::midcache.dendrogram() and hence the reorder() and rev()
+	dendrogram methods do not return bloated dendrograms.
+
+    o	heatmap(*, labRow=., labCol=.) now also reorders the labels when
+	specified---not only when using default labels.
+
+    o	Copying lattice (grid) output to another device now works again
+	(There were intermittent problems in 1.9.0 - PR#6915, #6947/8.)
+
+    o	hist() uses a more robust choice of its 'diddle' factor, used
+	to detect if an observation is on a bin boundary.  (PR#6931)
+
+    o	jitter(x) now returns x when length(x) == 0.
+
+    o	Under some rare circumstances the locale-specific tables used by
+	the perl=TRUE option to grep() etc were being corrupted and so
+	matches were missed.
+
+    o	qbinom(*, prob = 0, lower.tail = FALSE) now properly gives 0.
+	(PR#6972)
+
+    o	Class "octmode" needed a "[" method to preserve the class: see
+	example(file.info) for an example.
+
+
+
+		CHANGES IN R VERSION 1.9.0
+
+
+USER-VISIBLE CHANGES
+
+    o	Underscore '_' is now allowed in syntactically valid names, and
+	make.names() no longer changes underscores.  Very old code
+	that makes use of underscore for assignment may now give
+	confusing error messages.
+
+    o	Package 'base' has been split into packages 'base', 'graphics',
+	'stats' and 'utils'.  All four are loaded in a default
+	installation, but the separation allows a 'lean and mean'
+	version of R to be used for tasks such as building indices.
+
+	Packages ctest, eda, modreg, mva, nls, stepfun and ts have been
+	merged into stats, and lqs has been returned to MASS.  In all
+	cases a stub has been left that will issue a warning and ensure
+	that the appropriate new home is loaded.  All the time series
+	datasets have been moved to package stats.  Sweave has been
+	moved to utils.
+
+	Package mle has been moved to stats4 which will become the
+	central place for statistical S4 classes and methods
+	distributed with base R.  Package mle remains as a stub.
+
+	Users may notice that code in .Rprofile is run with only the
+	new base loaded and so functions may now not be found.	For
+	example, ps.options(horizontal = TRUE) should be preceded by
+	library(graphics) or called as graphics::ps.options or,
+	better, set as a hook -- see ?setHook.
+
+    o	There has been a concerted effort to speed up the startup of
+	an R session: it now takes about 2/3rds of the time of 1.8.1.
+
+    o	A warning is issued at startup in a UTF-8 locale, as currently R
+	only supports single-byte encodings.
+
+
+NEW FEATURES
+
+    o	$, $<-, [[, [[<- can be applied to environments. Only character
+	arguments are allowed and no partial matching is done.	The
+	semantics are basically that of get/assign to the environment with
+	inherits=FALSE.
+
+    o	There are now print() and [ methods for "acf" objects.
+
+    o	aov() will now handle singular Error() models, with a warning.
+
+    o	arima() allows models with no free parameters to be fitted (to
+	find log-likelihood and AIC values, thanks to Rob Hyndman).
+
+    o	array() and matrix() now allow 0-length `data' arguments for
+	compatibility with S.
+
+    o	as.data.frame() now has a method for arrays.
+
+    o	as.matrix.data.frame() now coerces an all-logical data frame
+	to a logical matrix.
+
+    o	New function assignInNamespace() parallelling fixInNamespace.
+
+    o	There is a new function contourLines() to produce contour
+	lines (but not draw anything).	This makes the CRAN package
+	clines (with its clines() function) redundant.
+
+    o	D(), deriv(), etc now also differentiate asin(), acos(), atan(),
+	(thanks to a contribution of Kasper Kristensen).
+
+    o	The `package' argument to data() is no longer allowed to be a
+	(unquoted) name and so can be a variable name or a quoted
+	character string.
+
+    o	There is a new class "Date" to represent dates (without times)
+	plus many utility functions similar to those for date-times.
+	See ?Date.
+
+    o	Deparsing (including using dump() and dput()) an integer
+	vector now wraps it in as.integer() so it will be source()d
+	correctly.  (Related to PR#4361.)
+
+    o	.Deprecated() has a new argument `package' which is used in
+	the warning message for non-base packages.
+
+    o	The print() method for "difftime" objects now handles arrays.
+
+    o	dir.create() is now an internal function (rather than a call to
+	mkdir) on Unix as well as on Windows.  There is now an option
+	to suppress warnings from mkdir, which may or may not have
+	been wanted.
+
+    o	dist() has a new method to calculate Minkowski distances.
+
+    o	expand.grid() returns appropriate array dimensions and dimnames
+	in the attribute "out.attrs", and this is used by the
+	predict() method for loess to return a suitable array.
+
+    o	factanal(), loess() and princomp() now explicitly check for
+	numerical inputs; they might have silently coded factor
+	variables in formulae.
+
+    o	New functions factorial(x) defined as gamma(x+1) and for
+	S-PLUS compatibility, lfactorial(x) defined as lgamma(x+1).
+
+    o	findInterval(x, v) now allows +/-Inf values, and NAs in x.
+
+    o	formula.default() now looks for a "terms" component before a
+	'formula' argument in the saved call: the component will have
+	`.' expanded and probably will have the original environment
+	set as its environment.	 And what it does is now documented.
+
+    o	glm() arguments `etastart' and `mustart' are now evaluated via
+	the model frame in the same way as `subset' and `weights'.
+
+    o	Functions grep(), regexpr(), sub() and gsub() now coerce their
+	arguments to character, rather than give an error.
+
+	The perl=TRUE argument now uses character tables prepared for
+	the locale currently in use each time it is used, rather than
+	those of the C locale.
+
+    o	New functions head() and tail() in package `utils'.
+	(Based on a contribution by Patrick Burns.)
+
+    o	legend() has a new argument 'text.col'.
+
+    o	methods(class=) now checks for a matching generic, and so no
+	longer returns methods for non-visible generics (and
+	eliminates various mismatches).
+
+    o	A new function mget() will retrieve multiple values from an
+	environment.
+
+    o	model.frame() methods, for example those for "lm" and "glm",
+	pass relevant parts of ... onto the default method.  (This has
+	long been documented but not done.)  The default method is now
+	able to cope with model classes such as "lqs" and "ppr".
+
+    o	nls() and ppr() have a `model' argument to allow the model frame
+	to be returned as part of the fitted object.
+
+    o	"POSIXct" objects can now have a "tzone" attribute that
+	determines how they will be converted and printed.  This means
+	that date-time objects which have a timezone specified will
+	generally be regarded as in their original time zone.
+
+    o	postscript() device output has been modified to work around
+	rounding errors in low-precision calculations in gs >= 8.11.
+	(PR#5285, which is not a bug in R.)
+
+	It is now documented how to use other Computer Modern fonts,
+	for example italic rather than slanted.
+
+    o	ppr() now fully supports categorical explanatory variables,
+
+	ppr() is now interruptible at suitable places in the
+	underlying FORTRAN code.
+
+    o	princomp() now warns if both `x' and `covmat' are supplied,
+	and returns scores only if the centring used is known.
+
+    o	psigamma(x, deriv=0), a new function generalizes, digamma() etc.
+	All these (psigamma, digamma, trigamma,...) now also work for  x < 0.
+
+    o	pchisq(*, ncp > 0) and hence qchisq() now work with much higher
+	values of ncp; it has become much more accurate in the left tail.
+
+    o	read.table() now allows embedded newlines in quoted fields. (PR#4555)
+
+    o	rep.default(0-length-vector, length.out=n) now gives a vector
+	of length n and not length 0, for compatibility with S.
+
+	If both `each' and `length.out' have been specified, it now
+	recycles rather than fills with NAs for S compatibility.
+
+	If both `times' and `length.out' have been specified, `times'
+	is now ignored for S compatibility.  (Previously padding with
+	NAs was used.)
+
+	The "POSIXct" and "POSIXlt" methods for rep() now pass ... on
+	to the default method (as expected by PR#5818).
+
+    o	rgb2hsv() is new, an R interface the C API function with the same name.
+
+    o	User hooks can be set for onLoad, library, detach and
+	onUnload of packages/namespaces: see ?setHook.
+
+    o	save() default arguments can now be set using option
+	"save.defaults", which is also used by save.image() if option
+	"save.image.defaults" is not present.
+
+    o	New function shQuote() to quote strings to be passed to OS shells.
+
+    o	sink() now has a split= argument to direct output to both the
+	sink and the current output connection.
+
+    o	split.screen() now works for multiple devices at once.
+
+    o	On some OSes (including Windows and those using glibc)
+	strptime() did not validate dates correctly, so we have added
+	extra code to do so.  However, this cannot correct scanning
+	errors in the OS's strptime (although we have been able to
+	work around these on Windows).	Some examples are now tested for
+	during configuration.
+
+    o	strsplit() now has `fixed' and `perl' arguments and
+	split="" is optimized.
+
+    o	subset() now allows a `drop' argument which is passed on to
+	the indexing method for data frames.
+
+    o	termplot() has an option to smooth the partial residuals.
+
+    o	varimax() and promax() add class "loadings" to their loadings
+	component.
+
+
+    o	Model fits now add a "dataClasses" attribute to the terms, which
+	can be used to check that the variables supplied for
+	prediction are of the same type as those used for fitting.
+	(It is currently used by predict() methods for classes "lm",
+	"mlm", "glm" and "ppr", as well as methods in packages MASS,
+	rpart and tree.)
+
+    o	New command-line argument --max-ppsize allows the size of the
+	pointer protection stack to be set higher than the previous
+	limit of 10000.
+
+    o	The fonts on an X11() device (also jpeg() and png() on Unix)
+	can be specified by a new argument `fonts' defaulting to the
+	value of a new option "X11fonts".
+
+    o	New functions in the tools package: pkgDepends, getDepList and
+	installFoundDepends.  These provide functionality for assessing
+	dependencies and the availability of them (either locally or
+	from on-line repositories).
+
+    o	The parsed contents of a NAMESPACE file are now stored at
+	installation and if available used to speed loading the
+	package, so packages with namespaces should be reinstalled.
+
+    o	Argument `asp' although not a graphics parameter is accepted
+	in the ... of graphics functions without a warning.  It now
+	works as expected in contour().
+
+    o	Package stats4 exports S4 generics for AIC() and BIC().
+
+    o	The Mac OS X version now produces an R framework for easier linking
+	of R into other programs.  As a result, R.app is now relocatable.
+
+    o	Added experimental support for conditionals in NAMESPACE files.
+
+    o	Added as.list.environment to coerce environments to lists
+	(efficiently).
+
+    o	New function addmargins() in the stats package to add marginal
+	summaries to tables, e.g. row and column totals.  (Based on a
+	contribution by Bendix Carstensen.)
+
+    o	dendrogam edge and node labels can now be expressions (to be
+	plotted via stats:::plotNode called from plot.dendrogram).
+	The diamond frames around edge labels are more nicely scaled
+	horizontally.
+
+    o	Methods defined in the methods package can now include
+	default expressions for arguments.  If these arguments are
+	missing in the call, the defaults in the selected method will
+	override a default in the generic.  See ?setMethod.
+
+    o	Changes to package 'grid':
+
+	- Renamed push/pop.viewport() to push/popViewport().
+
+	- Added upViewport(), downViewport(), and seekViewport() to
+	  allow creation and navigation of viewport tree
+	  (rather than just viewport stack).
+
+	- Added id and id.lengths arguments to grid.polygon() to allow
+	  multiple polygons within single grid.polygon() call.
+
+	- Added vpList(), vpStack(), vpTree(), and current.vpTree()
+	  to allow creation of viewport "bundles" that may be pushed
+	  at once (lists are pushed in parallel, stacks in series).
+
+	  current.vpTree() returns the current viewport tree.
+
+	- Added vpPath() to allow specification of viewport path
+	  in downViewport() and seekViewport().
+
+	  See ?viewports for an example of its use.
+
+	  NOTE: it is also possible to specify a path directly,
+	  e.g., something like "vp1::vp2", but this is only
+	  advised for interactive use (in case I decide to change the
+	  separator :: in later versions).
+
+	- Added "just" argument to grid.layout() to allow justification
+	  of layout relative to parent viewport *IF* the layout is not
+	  the same size as the viewport.  There's an example in
+	  help(grid.layout).
+
+	- Allowed the "vp" slot in a grob to be a viewport name or a
+	  vpPath.  The interpretation of these new alternatives is to
+	  call downViewport() with the name or vpPath before drawing the
+	  grob and upViewport() the appropriate amount after drawing the
+	  grob.	 Here's an example of the possible usage:
+
+	      pushViewport(viewport(w=.5, h=.5, name="A"))
+	      grid.rect()
+	      pushViewport(viewport(w=.5, h=.5, name="B"))
+	      grid.rect(gp=gpar(col="grey"))
+	      upViewport(2)
+	      grid.rect(vp="A", gp=gpar(fill="red"))
+	      grid.rect(vp=vpPath("A", "B"), gp=gpar(fill="blue"))
+
+	- Added engine.display.list() function.	 This allows the user to
+	  tell grid NOT to use the graphics engine display list and to handle
+	  ALL redraws using its own display list (including redraws after
+	  device resizes and copies).
+
+	  This provides a way to avoid some of the problems with resizing
+	  a device when you have used grid.convert(), or the gridBase package,
+	  or even base functions such as legend().
+
+	  There is a document discussing the use of display lists in grid
+	  on the grid web site
+	  (http://www.stat.auckland.ac.nz/~paul/grid/grid.html)
+
+	- Changed the implementation of grob objects.  They are no longer
+	  implemented as external references.  They are now regular R objects
+	  which copy-by-value.	This means that they can be saved/loaded
+	  like normal R objects.  In order to retain some existing grob
+	  behaviour, the following changes were necessary:
+
+	  + grobs all now have a "name" slot.  The grob name is used to
+	    uniquely identify a "drawn" grob (i.e., a grob on the display
+	    list).
+	  + grid.edit() and grid.pack() now take a grob name as the first
+	    argument instead of a grob.	 (Actually, they take a gPath -
+	    see below)
+	  + the "grobwidth" and "grobheight" units take either a grob
+	    OR a grob name (actually a gPath - see below).  Only in the
+	    latter case will the unit be updated if the grob "pointed to"
+	    is modified.
+
+	  In addition, the following features are now possible with grobs:
+
+	  + grobs now save()/load() like any normal R object.
+	  + many grid.*() functions now have a *Grob() counterpart.  The
+	    grid.*() version is used for its side-effect of drawing
+	    something or modifying something which has been drawn;  the
+	    *Grob() version is used for its return value, which is a grob.
+	    This makes it more convenient to just work with grob
+	    objects without producing any graphical output
+	    (by using the *Grob() functions).
+	  + there is a gTree object (derived from grob), which is a grob
+	    that can have children.  A gTree also has a "childrenvp" slot
+	    which is a viewport which is pushed and then "up"ed before the
+	    children are drawn;	 this allows the children of a gTree to
+	    place themselves somewhere in the viewports specified in the
+	    childrenvp by having a vpPath in their vp slot.
+	  + there is a gPath object, which is essentially a concatenation
+	    of grob names.  This is used to specify the child of
+	    (a child of ...) a gTree.
+	  + there is a new API for creating/accessing/modifying grob objects:
+	    grid.add(), grid.remove(), grid.edit(), grid.get() (and their
+	    *Grob() counterparts can be used to add, remove, edit, or extract
+	    a grob or the child of a gTree.  NOTE: the new grid.edit() API
+	    is incompatible with the previous version.
+
+	- Added stringWidth(), stringHeight(), grobWidth(), and grobHeight()
+	  convenience functions (they produce "strwidth", "strheight",
+	  "grobwidth", and "grobheight" unit objects, respectively).
+
+	- Allowed viewports to turn off clipping altogether.
+	  Possible settings for viewport clip arg are now:
+
+	    "on"      = clip to the viewport (was TRUE)
+	    "inherit" = clip to whatever parent says (was FALSE)
+	    "off"     = turn off clipping
+
+	  Still accept logical values (and NA maps to "off")
+
+
+UTILITIES
+
+    o	R CMD check  now runs the (Rd) examples with default RNGkind
+	(uniform & normal) and set.seed(1).
+	example(*, setRNG = TRUE) does the same.
+
+    o	undoc() in package `tools' has a new default of `use.values =
+	NULL' which produces a warning whenever the default values of
+	function arguments differ between documentation and code.
+	Note that this affects "R CMD check" as well.
+
+    o	Testing examples via massage-examples.pl (as used by R CMD
+	check) now restores the search path after every help file.
+
+    o	checkS3methods() in package 'tools' now also looks for generics
+	in the loaded namespaces/packages listed in the Depends fields
+	of the package's DESCRIPTION file when testing an installed
+	package.
+
+    o	The DESCRIPTION file of packages may contain a 'Suggests:'
+	field for packages that are only used in examples or
+	vignettes.
+
+    o	Added an option to package.dependencies() to handle the
+	'Suggests' levels of dependencies.
+
+    o	Vignette dependencies can now be checked and obtained via
+	vignetteDepends.
+
+    o	Option 'repositories' to list URLs for package repositories
+	added.
+
+    o	package.description() has been replaced by packageDescription().
+
+    o	R CMD INSTALL/build now skip Subversion's .svn directories as
+	well as CVS directories.
+
+
+C-LEVEL FACILITIES
+
+    o	arraySubscript and vectorSubscript take a new argument which
+	is a function pointer that provides access to character
+	strings (such as the names vector) rather than assuming these
+	are passed in.
+
+    o	R_CheckUserInterrupt is now described in `Writing R Extensions'
+	and there is a new equivalent subroutine rchkusr for calling
+	from FORTRAN code.
+
+    o	hsv2rgb and rgb2hsv are newly in the C API.
+
+    o	Salloc and Srealloc are provided in S.h as wrappers for S_alloc
+	and S_realloc, since current S versions use these forms.
+
+    o	The type used for vector lengths is now R_len_t rather than
+	int, to allow for a future change.
+
+    o	The internal header nmath/dpq.h has slightly improved macros
+	R_DT_val() and R_DT_Cval(), a new R_D_LExp() and improved
+	R_DT_log() and R_DT_Clog();  this improves accuracy in several
+	[dpq]-functions {for "extreme" arguments}.
+
+
+DEPRECATED & DEFUNCT
+
+    o	print.coefmat() is defunct, replaced by printCoefmat().
+
+    o	codes() and codes<-() are defunct.
+
+    o	anovalist.lm (replaced in 1.2.0) is now defunct.
+
+    o	glm.fit.null(), lm.fit.null() and lm.wfit.null() are defunct.
+
+    o	print.atomic() is defunct.
+
+    o	The command-line arguments --nsize and --vsize are no longer
+	recognized as synonyms for --min-nsize and --min-vsize (which
+	replaced them in 1.2.0).
+
+    o	Unnecessary methods coef.{g}lm and fitted.{g}lm have been
+	removed: they were each identical to the default method.
+
+    o	La.eigen() is deprecated now eigen() uses LAPACK by default.
+
+    o	tetragamma() and pentagamma() are deprecated, since they are
+	equivalent to psigamma(, deriv=2) and psigamma(, deriv=3).
+
+    o	LTRUE/LFALSE in Rmath.h have been removed: they were
+	deprecated in 1.2.0.
+
+    o	package.contents() and package.description() have been deprecated.
+
+
+INSTALLATION CHANGES
+
+    o	The defaults for configure are now --without-zlib
+	--without-bzlib --without-pcre.
+
+	The included PCRE sources have been updated to version 4.5 and
+	PCRE >= 4.0 is now required if --with-pcre is used.
+
+	The included zlib sources have been updated to 1.2.1, and this
+	is now required if --with-zlib is used.
+
+    o	configure no longer lists bzip2 and PCRE as `additional
+	capabilities' as all builds of R have had them since 1.7.0.
+
+    o	--with-blas=goto to use K. Goto's optimized BLAS will now work.
+
+
+BUG FIXES
+
+    o	When lm.{w}fit() disregarded arguments in ... they reported
+	the values and not the names.
+
+    o	lm(singular.ok = FALSE) was looking for 0 rank, not rank < p.
+
+    o	The substitution code for strptime in the sources no longer
+	follows glibc in silently `correcting' invalid inputs.
+
+    o	The cor() function did not remove missing values in the
+	non-Pearson case.
+
+    o	[l]choose() use a more accurate formula which also slightly
+	improves p- and qhyper(); choose(n, k) now returns 0 instead
+	of NaN for k < 0 or > n.
+
+    o	find(simple.words=TRUE) (the default) was still using regular
+	expressions for e.g. "+" and "*".  Also, it checked the mode
+	only of the first object matching a regular expression found
+	in a package.
+
+    o	Memory leaks in [dpq]wilcox and [dqr]signrank have been plugged.
+	These only occurred when multiple values of m or n > 50 were
+	used in a single call. (PR#5314, plus another potential leak.)
+
+    o	Non-finite input values to eigen(), La.eigen(), svd() and
+	La.svd() are now errors: they often caused infinite
+	looping.  (PR#5406, PR#4366, PR#3723: the fix for 3723/4366
+	returned a vector of NAs, not a matrix, for the eigenvectors.)
+
+    o	stepfun(x,y) now gives an error when `x' has length 0 instead
+	of an invalid result (that could lead to a segmentation
+	fault).
+
+    o	buildVignettes() uses file.remove() instead of unlink() to
+	remove temporary files.
+
+    o	methods(class = "lqs") does not produce extraneous entries anymore.
+
+    o	Directly calling a method that uses NextMethod() no longer
+	produces the erroneous error message 'function is not a
+	closure'.
+
+    o	chisq.test(x, simulate.p.value = TRUE) could hang in an infinite
+	loop or segfault, as r2dtable() did, when the entries in x where
+	large. (PR#5701)
+
+    o	fisher.test(x) could give a P-value of 'Inf' in similar cases which
+	now result in an error (PR#4688).  It silently truncated
+	non-integer 'x' instead of rounding.
+
+    o	cutree(a, h=h) silently gave wrong results when 'a' was an
+	agnes object; now gives an error and reminds of as.hclust().
+
+    o	postscript() could crash if given a font value outside the
+	valid range 1...5.
+
+    o	qchisq(1-e, .., ncp=.) did not terminate for small e.
+	(PR#6421 (PR#875))
+
+    o	contrasts() turns a logical variable into a factor.  This now
+	always has levels c("FALSE", "TRUE") even if only one (or
+	none) of these occur in the variable.
+
+    o	model.frame()'s lm and glm methods had 'data' and 'na.action'
+	arguments which they ignored and have been removed.
+
+    o	The defaults data=list() in lm() and glm() could never be
+	used and have been removed.  glm had na.action=na.fail, again
+	never used.
+
+    o	The internal tools function for listing all internal S3 generics
+	was omitting all the members of the S3 group generics, which
+	also accept methods for members.
+
+    o	Some BLASes were returning NA %*% 0 as 0 and some as NA.  Now
+	slower but more careful code is used if NAs are present. (PR#4582)
+
+    o	package.skeleton() no longer generates invalid filenames for
+	code and help files.  Also, care is taken not to generate
+	filenames that differ only by case.
+
+    o	pairs() now respects axis graphical parameters such as
+	cex.main, font.main and las.
+
+    o	Saving images of packages with namespaces (such as mle) was
+	not compressing the image.
+
+    o	When formula.default() returned a terms object, it returned a
+	result of class c("terms", "formula") with different
+	subsetting rules from an object of class "formula".
+
+    o	The standalone Rmath library did not build correctly on systems
+	with inaccurate log1p.
+
+    o	Specifying asp is now respected in calls like plot(1, 10, asp=1)
+	with zero range on both axes.
+
+    o	outer() called rep() with an argument the generic does not
+	have, and discarded the class of the answer.
+
+    o	object.size() now returns a real (not integer) answer and so
+	can cope with objects occupying more than 2Gb.
+
+    o	Lookups base:: and ::: were not confining their search to the
+	named package/namespace.
+
+    o	qbinom() was returning NaN for prob = 0 or 1 or size = 0 even
+	though the result is well-defined.  (In part, PR#5900.)
+
+    o	par(mgp)[2] was being interpreted as relative to par(mgp)[3].
+	(PR#6045)
+
+    o	Versioned install was broken both with and without namespaces:
+	no R code was loaded.
+
+    o	methods(), getS3method() and the registration of S3 methods in
+	namespaces were broken if the S3 generic was converted into an
+	S4 generic by setting an S4 method.
+
+    o	Title and copyright holder of the reference manual are now in
+	sync with the citation() command.
+
+    o	The validation code for POSIXlt dates and hence
+	seq(, by="DSTdays") now works for large mday values (not
+	just those in -1000...1000).  (PR#6212)
+
+    o	The print() method for data frames now copes with data frames
+	containing arrays (other than matrices).
+
+    o	texi2dvi() and buildVignettes() use clean=FALSE as default
+	because the option is not supported on some Solaris
+	machines. For buildVignettes() this makes no difference as it
+	uses an internal cleanup mechanism.
+
+    o	The biplot() method for "prcomp" was not registered nor exported.
+	(PR#6425)
+
+    o	Latex conversion of .Rd files was missing newline before
+	\end{Section} etc which occasionally gave problems, as fixed for
+	some other \end{Foo} in 1.8.1.	(PR#5645)
+
+    o	Work around a glibc bug to make the %Z format usable in strftime().
+
+    o	The glm method for rstandard() was wrongly scaled for cases where
+	summary(model)$dispersion != 1.
+
+    o	Calling princomp() with a covariance matrix (rather than a
+	list) failed to predict scores rather than predict NA as
+	intended.  (PR#6452)
+
+    o	termplot() is more tolerant of variables not in the data= argument.
+	(PR#6327)
+
+    o	isoreg() could segfault on monotone input sequences.  (PR#6494)
+
+    o	Rdconv detected \link{\url{}} only very slowly.	 (PR#6496)
+
+    o	aov() with Error() term and no intercept incorrectly assigned
+	terms to strata. (PR#6510)
+
+    o	ftable() incorrectly handled arguments named "x".  (PR#6541)
+
+    o	vector(), matrix(), array() and their internal equivalents
+	report correctly that the number of elements specified was too
+	large (rather than reporting it as negative).
+
+    o	Minor copy-paste error in example(names).  (PR#6594)
+
+    o	length<-() now works correctly on factors (and is now generic
+	with a method for factors).
+
+    o	x <- 2^32; x:(x+3) no longer generates an error (but gives a
+	result of type "double").
+
+    o	pgamma(30, 100, lower=FALSE, log=TRUE) is not quite 0, now.
+	pgamma(x, alph) now only uses a normal approximation for
+	alph > 1e5 instead of alph > 1000.  This also improves the accuracy
+	of ppois().
+
+    o	qgamma() now does one or more final Newton steps, increasing
+	accuracy from around 2e-8 to 3e-16 in some cases.  (PR#2214).
+	It allows values p close to 1 not returning Inf, with accuracy for
+	'lower=FALSE', and values close to 0 not returning 0 for
+	'log=TRUE'.  These also apply to qchisq(), e.g.,
+	qchisq(1e-13, 4, lower=FALSE) is now finite and
+	qchisq(1e-101, 1) is positive.
+
+    o	gamma(-n) now gives NaN for all negative integers -n.
+
+    o	The Unix version of browseURL() now protects the URL from the
+	shell, for example allowing & and $ to occur in the URL.
+
+	It was incorrectly attempting to use -remote "openURL()" for
+	unknown browsers.
+
+    o	extractAIC.coxph() works around an inconsistency in the
+	$loglik output from coxph.  (PR#6646)
+
+    o	stem() was running into integer overflows with nearly-constant
+	inputs, and scaling badly for constant ones.  (Partly PR#6645)
+
+    o	system() under Unix was losing the 8095th char if the output
+	was split.  (PR#6624)
+
+    o	plot.lm() gave incorrect results if there were zero weights.
+	(PR#6640)
+
+    o	Binary operators warned for inconsistent lengths on vector op
+	vector operations, but not on vector op matrix ones.  (PR#6633
+	and more.)
+
+	Comparison operators did not warn about inconsistent lengths
+	for real vectors, but did for integer, logical and character
+	vectors.
+
+    o	spec.pgram(x, ..., pad, fast, ...) computed the periodogram with
+	a bias (downward) whenever 'pad > 0' (non-default) or 'fast = TRUE'
+	(default) and nextn(n) > n where n = length(x); similarly for
+	'df' (approximate degrees of freedom for chisq).
+
+    o	dgamma(0, a) now gives Inf for a < 1 (instead of NaN), and
+	so does dchisq(0, 2*a, ncp).
+
+    o	pcauchy() is now correct in the extreme tails.
+
+    o	file.copy() did not check that any existing `from' file had
+	been truncated before appending the new contents.
+
+    o	The QC files now check that their file operations succeeded.
+
+    o	replicate() worked by making the supplied expression the
+	body of an anonymous function(x), leading to a variable
+	capture issue. Now, function(...) is used instead.
+
+    o	chisq.test(simulate.p.value = TRUE) was returning slightly
+	incorrect p values, notably p = 0 when the data gave the most
+	extreme value.
+
+    o	terms.formula(simplify = TRUE) was losing offset terms.
+	Multiple offset terms were not being removed correctly if two
+	of them appeared first or last in the formula.	(PR#6656)
+
+    o	Rd conversion to latex did not add a new line before
+	\end{Section} in more cases than were corrected in 1.8.1.
+
+    o	split.default() dropped NA levels in its internal code but
+	returned them as NA in all components in the interpreted code
+	for factors.  (PR#6672)
+
+    o	points.formula() had problems if there was a subset argument
+	and no data argument.  (PR#6652)
+
+    o	as.dist() does a bit more checking of its first argument and now
+	warns when applied to non-square matrices.
+
+    o	mle() gives a more understandable error message when its 'start'
+	argument is not ok.
+
+    o	All uses of dir.create() check the return value.
+	download.packages() checks that destdir exists and is a directory.
+
+    o	Methods dispatch corrects an error that failed to find
+	methods for classes that extend sealed classes (class unions
+	that contain basic classes, e.g.).
+
+    o	Sweave no longer wraps the output of code chunks with
+	echo=false and results=tex in Schunk environments.
+
+    o	termplot() handles models with missing data better, especially
+	with na.action=na.exclude.
+
+    o	1:2 * 1e-100  now prints with correct number of spaces.
+
+    o	Negative subscripts that were out of range or NA were not handled
+	correctly.  Mixing negative and NA subscripts is now caught as
+	an error: it was not caught on some platforms and segfaulted
+	on others.
+
+    o	gzfile() connections had trouble at EOF when used on uncompressed
+	file.
+
+    o	The Unix version of dataentry segfaulted if the `Copy' button
+	was used.  (PR#6605)
+
+    o	unlist on lists containing expressions now works (PR#5628)
+
+    o	D(), deriv() and deriv3() now also can deal with gamma and lgamma.
+
+    o	The X11 module can now be built against XFree86 4.4.0 headers (still
+	with some warnings).
+
+    o	seq.POSIXt(from, to, by="DSTdays") was shorter than expected
+	for rare times in the UK time zone.  (PR#4558)
+
+    o	c/rbind() did not support vectors/matrices of mode "list".  (PR#6702)
+
+    o	summary() methods for POSIX[cl]t and Date classes coerced the
+	number of NAs to a date on printing.
+
+    o	KalmanSmooth would sometimes return NA values with NA inputs.
+	(PR#6738)
+
+    o	fligner.test() worked correctly only if data were already sorted
+	by group levels. (PR#6739)
+
+
+
+	**************************************************
+	*						 *
+	*	       1.8 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 1.8.1
+
+
+NEW FEATURES
+
+    o	There is now a "Complex" S3 group generic (a side-effect of
+	fixing up the corresponding S4 group generic).
+
+    o	help("regex") now gives a description of the regular expressions
+	used in R.
+
+    o	The startup message now shows the R Foundation as copyright
+	holder, and includes the R ISBN number and a pointer to the new
+	citation() function.
+
+    o	The solve() function now uses the `tol' argument for all
+	non-complex cases.  The default tolerance for LINPACK is 1e-7,
+	as before.  For LAPACK it currently is .Machine$double.eps but
+	may be changed in later versions of R.
+
+    o	help.search() now defaults to agrep = FALSE when keyword= is
+	specified, since no one wants fuzzy matching of categories.
+
+    o	Function texi2dvi() in package tools can be used to compile
+	latex files from within R, provided the OS has a command
+	texi2dvi or texify.
+
+    o	Objects with formal S4 classes saved in pre-1.8 versions and
+	loaded into the current version have incompatible class
+	attributes (no package information).  A new function,
+	fixPre1.8() in package methods, will fix the class attributes.
+	See the help for this function.
+
+    o	heatmap() allows Rowv/Colv = NA, suppressing the corresponding
+	dendrogram.
+
+    o	An "antifeature": Tcl 8.0 is now officially unsupported. In 1.8.0
+	it just didn't work. This very old version lacks several features
+	that are needed for the new version of the tcltk package. R will
+	still build the tcltk package against Tcl 8.0 but the resulting
+	package will not load.
+
+
+BUG FIXES
+
+    o	symnum(x) now behaves as documented when length(x) == 0 and uses
+	lower.triangular = FALSE for logical arrays.
+
+    o	c() now has a method for "noquote" objects and hence works as
+	expected.
+
+    o	split(1:10, c(1,2)) no longer gives a spurious warning.
+
+    o	The "Complex" S4 group generic now works.
+
+    o	abbreviate() doesn't get into infinite loops on input that differs
+	only by leading/trailing space
+
+    o	Added check for user interrupt in Rvprintf to allow printing to be
+	interrupted.
+
+    o	Fixed bug that would cause segfault on protect stack overflow.
+
+    o	crossprod() on matrices with zero extents would return an
+	uninitialized matrix (rather than one filled with zeros).
+
+    o	DF[[i,j]] for a data frame used row j and col i, not as intended
+	row i and col j.
+
+    o	Even more user errors in recursive indexing of lists are now
+	caught.	 (PR#4486)
+
+    o	cor(<matrix>, use = "pairwise") gave wrong result in 1.8.0 (only).
+	(PR#4646)
+
+    o	merge.data.frame() could give incorrect names when one of the
+	arguments had only one column.	(PR#4299)
+
+    o	Subsetting a one-dimensional array dropped dimensions even when
+	they were not of length one.  (Related to PR#4110)
+
+    o	The plot() method for `ecdf' objects, plot.ecdf(), now allows to
+	set a `ylab' argument (different from the default).
+
+    o	cor.test(*, method="spearman") gave wrong results `randomly'
+	(because of a wrong type passed to C; PR#4718).
+
+    o	dist() objects with NA's didn't print these, now do. (PR#4866).
+
+    o	regexpr(fixed = TRUE) returned 0-based indices.
+
+    o	df[, length_1_index] <- value did not recycle short rhs. (PR#4820)
+
+    o	median() no longer `works' for odd-length factor variables.
+
+    o	packageStatus() is more robust to failing to contact a
+	repository, and contacts the correct paths in the repositories
+	under Windows.
+
+    o	.setOldIs (methods) contained a typo stopping POSIXct objects (etc)
+	being included in formal classes.
+
+    o	terms() sometimes removed offset() terms incorrectly, since it
+	counted by variables and not terms.  Its "offset" attribute
+	was incorrectly documented as referring to terms not
+	variables. (Related to PR#4941)
+
+    o	buildVignettes() and pkgVignettes() in package tools are now
+	documented.  The call to texi2dvi is wrapped in the new
+	function texi2dvi() which also works on Windows.
+
+    o	hclust() was sometimes not finding the correct inter-cluster
+	distances with non-monotone methods.  (PR#4195)
+
+    o	plot.hclust() now tolerates mode changes on dumped objects. (PR#4361)
+
+    o	prompt() no longer insists files are in the current directory.
+	(PR#4978)
+
+    o	filter() did not use init in reverse order as documented. (PR#5017)
+
+    o	contrasts<-() and model.matrix() now have sanity checks that
+	factors having at least 2 levels (or one level and a contrast
+	matrix): model.matrix() gave nonsensical results for 0-level
+	factors.
+
+    o	writeChar() could segfault if more characters were requested
+	than exist. (PR#5090)
+
+    o	round() and signif() dropped attributes with 0-length inputs,
+	only. (PR#4710)
+
+    o	The default graphics device in the GNOME interface was gtk,
+	which is no longer in the base package. It is now X11.
+
+    o	The print button on the toolbar of the GNOME graphics device
+	did not work.
+
+    o	The example code on the man page for TkWidgetcmds had not been
+	updated after the change that made tkget (et al.) return
+	tclObj objects, so the "Submit" button didn't work.
+
+    o	Rd conversion to latex did not add a new line before
+	\end{Section} for the section environments, which caused
+	problems if the last thing in a section was \preformatted{}
+	(and potentially elsewhere).
+
+    o	Under some circumstances mosaicplot() failed if main was
+	supplied as it was passed on to model.frame.default().
+
+    o	Conversion to POSIXlt (including printing) of POSIXct dates
+	before 1902 and after 2038 computed which were leap years from
+	(year-1900) so got some xx00 years wrong.
+
+
+		CHANGES IN R VERSION 1.8.0
+
+
+MACOS CHANGES
+
+    o	As from this release there is only one R port for the
+	Macintosh, which runs only on Mac OS X.	(The `Carbon' port has
+	been discontinued, and the `Darwin' port is part of the new
+	version.)   The current version can be run either as a
+	command-line application or as an `Aqua' console.  There is a
+	`Quartz' device quartz(), and the download and installation of
+	both source and binary packages is supported from the Aqua
+	console.  Those CRAN and BioC packages which build under Mac OS X
+	have binary versions updated daily.
+
+
+USER-VISIBLE CHANGES
+
+    o	The defaults for glm.control(epsilon=1e-8, maxit=25) have been
+	tightened: this will produce more accurate results, slightly
+	slower.
+
+    o	sub, gsub, grep, regexpr, chartr, tolower, toupper, substr,
+	substring, abbreviate and strsplit now handle missing values
+	differently from "NA".
+
+    o	Saving data containing name space references no longer warns
+	about name spaces possibly being unavailable on load.
+
+    o	On Unix-like systems interrupt signals now set a flag that is
+	checked periodically rather than calling longjmp from the
+	signal handler.	 This is analogous to the behavior on Windows.
+	This reduces responsiveness to interrupts but prevents bugs
+	caused by interrupting computations in a way that leaves the
+	system in an inconsistent state.  It also reduces the number
+	of system calls, which can speed up computations on some
+	platforms and make R more usable with systems like Mosix.
+
+
+CHANGES TO THE LANGUAGE
+
+    o	Error and warning handling has been modified to incorporate a
+	flexible condition handling mechanism.	See the online
+	documentation of 'tryCatch' and 'signalCondition'.  Code that
+	does not use these new facilities should remain unaffected.
+
+    o	A triple colon operator can be used to access values of internal
+	variables in a name space (i.e. a:::b is the value of the internal
+	variable b in name space a).
+
+    o	Non-syntactic variable names can now be specified by inclusion
+	between backticks `Like This`.	The deparse() code has been
+	changed to output non-syntactical names with this convention,
+	when they occur as operands in expressions.  This is controlled
+	by a `backtick' argument, which is by default TRUE for
+	composite expressions and FALSE for single symbols.  This
+	should give minimal interference with existing code.
+
+    o	Variables in formulae can be quoted by backticks, and such
+	formulae can be used in the common model-fitting functions.
+	terms.formula() will quote (by backticks) non-syntactic names
+	in its "term.labels" attribute.	 [Note that other code using
+	terms objects may expect syntactic names and/or not accept
+	quoted names: such code will still work if the new feature is
+	not used.]
+
+
+NEW FEATURES
+
+    o	New function bquote() does partial substitution like LISP backquote.
+
+    o	capture.output() takes arbitrary connections for `file' argument.
+
+    o	contr.poly() has a new `scores' argument to use as the base set
+	for the polynomials.
+
+    o	cor() has a new argument `method = c("pearson","spearman","kendall")'
+	as cor.test() did forever. The two rank based measures do work with
+	all three missing value strategies.
+
+    o	New utility function cov2cor() {Cov -> Corr matrix}.
+
+    o	cut.POSIXt() now allows `breaks' to be more general intervals
+	as allowed for the `by' argument to seq.POSIXt().
+
+    o	data() now has an 'envir' argument.
+
+    o	det() uses an LU decomposition and LAPACK.  The `method'
+	argument to det() no longer has any effect.
+
+    o	dev.control() now accepts "enable" as well as "inhibit".
+	(Wishlist PR#3424)
+
+    o	*, - and / work more generally on "difftime" objects, which now
+	have a diff() method.
+
+    o	dt(*, ncp = V)	is now implemented, thanks to Claus Ekstrom.
+
+    o	dump() only quotes object names in the file where necessary.
+
+    o	eval() of a promise forces the promise
+
+    o	file.path() now returns an empty character vector if given at
+	least one zero-length argument.
+
+    o	format() and hence print() make an effort to handle corrupt
+	data frames, with a warning.
+
+    o	format.info() now also works with `nsmall' in analogy with
+	format.default().
+
+    o	gamma(n) is very slightly more precise for integer n in 11:50.
+
+    o	? and help() will accept more un-quoted arguments, e.g. NULL.
+
+    o	The "?" operator has new forms for querying documentation on
+	S4 methods.  See the online documentation.
+
+    o	New argument frame.plot = axes (== TRUE)  for filled.contour().
+
+    o	New argument fixed = TRUE for grep() and regexpr() to avoid the
+	need to escape strings to match.
+
+    o	grep(x, ..., value = TRUE) preserves names of x.
+
+    o	hist.POSIXt() can now pass arguments to hist.default()
+
+    o	legend() and symbols() now make use of xy.coords() and accept
+	a wider range of coordinate specifications.
+
+    o	Added function library.dynam.unload() to call dyn.unload() on
+	a loaded DLL and tidy up.  This is called for all the standard
+	packages in namespaces with DLLs if their namespaces are unloaded.
+
+    o	lm(singular.ok = FALSE) is now implemented.
+
+    o	Empty lm() and glm() fits are now handled by the normal
+	code: there are no methods for classes "lm.null" and
+	"glm.null".  Zero-rank fits are handled consistently.
+
+    o	make.names() has improvements, and there is a new auxiliary
+	function make.unique().	 (Based on code contributed by Tom
+	Minka, since converted to a .Internal function.)  In
+	particular make.names() now recognises that names beginning
+	with a dot are valid and that reserved words are not.
+
+    o	methods() has a print method which asterisks functions which
+	are not user-visible.  methods(class = "foo") now lists
+	non-visible functions, and checks that there is a matching generic.
+
+    o	model.matrix() now warns when it removes the response from the
+	rhs of the formula: that this happens is now documented on its
+	help page.
+
+    o	New option `locatorBell' to control the confirmation beep
+	during the use of locator() and identify().
+
+    o	New option("scipen") provides some user control over the
+	printing of numbers in fixed-point or exponential notation.
+	(Contributed by David Brahm.)
+
+    o	plot.formula() now accepts horizontal=TRUE and works correctly
+	when boxplots are produced.  (Wishlist PR#1207)	 The code has
+	been much simplified and corrected.
+
+    o	polygon() and rect() now interpret density < 0 or NA to mean
+	filling (by colour) is desired: this allows filling and
+	shading to be mixed in one call, e.g. from legend().
+
+    o	The predict() methods for classes lm, glm, mlm and lqs take a
+	`na.action' argument that controls how missing values in
+	`newdata' are handled (and defaults to predicting NA).
+	[Previously the value of getOption("na.action") was used and
+	this by default omitted cases with missing values, even if set
+	to `na.exclude'.]
+
+    o	print.summary.glm() now reports omitted coefficients in the
+	same way as print.summary.lm(), and both show them as NAs in
+	the table of coefficients.
+
+    o	print.table() has a new argument `zero.print' and is now
+	documented.
+
+    o	rank(x, na.last = "keep") now preserves NAs in `x', and the
+	argument `ties.method' allows to use non-averaging ranks in the
+	presence of ties.
+
+    o	read.table()'s 'as.is' argument can be character, naming columns
+	not to be converted.
+
+    o	rep() is now a generic function, with default, POSIXct and
+	POSIXlt methods.  For efficiency, the base code uses rep.int()
+	rather than rep() where possible.
+
+    o	New function replicate() for repeated evaluation of expression
+	and collection of results, wrapping a common use of sapply()
+	for simulation purposes.
+
+    o	rev() is now a generic function, with default and dendrogram
+	methods.
+
+    o	serialize() and unserialize() functions are available for
+	low-level serialization to connections.
+
+    o	socketSelect() allows waiting on multiple sockets.
+
+    o	sort(method = "quick", decreasing = TRUE) is now implemented.
+
+    o	sort.list() has methods "quick" (a wrapper for sort(method =
+	"quick", index.return = TRUE) and "radix" (a very fast method
+	for small integers).  The default "shell" method works faster
+	on long vectors with many ties.
+
+    o	stripchart() now has `log', `add' and `at' arguments.
+
+    o	strsplit(x, *) now preserves names() but won't work for
+	non-character `x' anymore {formerly used as.character(x),
+	destroying names(x)}.
+
+    o	textConnection() now has a local argument for use with output
+	connections.  local = TRUE means the variable containing the
+	output is assigned in the frame of the caller.
+
+    o	Using UseMethod() with more than two arguments now gives a
+	warning (as R-lang.texi has long claimed it did).
+
+    o	New function vignette() for viewing or listing vignettes.
+
+    o	which.min(x) and which.max(x) now preserve names.
+
+    o	xy.coords() coerces "POSIXt" objects to "POSIXct", allowing
+	lines etc to added to plot.POSIXlt() plots.
+
+    o	.Machine has a new entry, sizeof.pointer.
+
+    o	.Random.seed is only looked for and stored in the user's
+	workspace.  Previously the first place a variable of that name
+	was found on the search path was used.
+
+    o	Subscripting for data.frames has been rationalized:
+
+	- Using a single argument now ignores any `drop' argument
+	  (with a warning).  Previously using `drop' inhibited list-like
+	  subscripting.
+
+	- adf$name <- value now checks for the correct length of
+	  `value', replicating a whole number of times if needed.
+
+	- adf[j] <- value and adf[[j]] <- value did not convert
+	  character vectors to factors, but adf[,j] <- value did.
+	  Now none do.	Nor is a list `value' coerced to a data frame
+	  (thereby coercing character elements to factors).
+
+	- Where replicating the replacement value a whole number of
+	  times will produce the right number of values, this is
+	  always done (rather than some times but not others).
+
+	- Replacement list values can include NULL elements.
+
+	- Subsetting a data frame can no longer produce duplicate
+	  column names.
+
+	- Subsetting with drop=TRUE no longer sometimes drops
+	  dimensions on matrix or data frame columns of the data frame.
+
+	- Attributes are no longer stripped when replacing part of a column.
+
+	- Columns added in replacement operations will always be
+	  named, using the names of a list value if appropriate.
+
+	- as.data.frame.list() did not cope with list names such as
+	  `check.rows',	 and formatting/printing data frames with such
+	  column names now works.
+
+	- Row names in extraction are still made unique, but without
+	  forcing them to be syntactic names.
+
+	- adf[x] <- list() failed if x was of length zero.
+
+
+    o	Setting dimnames to a factor now coerces to character, as S
+	does.  (Earlier versions of R used the internal codes.)
+
+    o	When coercion of a list fails, a meaningful error message is given.
+
+    o	Adding to NULL with [[ ]] generates a list if more than one
+	element is added (as S does).
+
+    o	There is a new command-line flag --args that causes the rest of
+	the command line to be skipped (but recorded in commandArgs()
+	for further processing).
+
+    o	S4 generic functions and method dispatch have been modified to
+	make the generic functions more self-contained (e.g., usable
+	in apply-type operations) and potentially to speed dispatch.
+
+    o	The data editor is no longer limited to 65535 rows, and will
+	be substantially faster for large numbers of columns.
+
+    o	Standalone Rmath now has a get_seed function as requested (PR#3160).
+
+    o	GC timing is not enabled until the first call to gc.time(); it
+	can be disabled by calling gc.time(FALSE).  This can speed up
+	the garbage collector and reduce system calls on some
+	platforms.
+
+
+STANDARD PACKAGES
+
+    o	New package 'mle'. This is a simple package to find maximum
+	likelihood estimates, and perform likelihood profiling and
+	approximate confidence limits based upon it.  A well-behaved
+	likelihood function is assumed, and it is the responsibility
+	of the user to gauge the applicability of the asymptotic
+	theory.	 This package is based on S4 methods and classes.
+
+    o	Changes in package 'mva':
+
+	- factanal() now returns the test statistic and P-value formerly
+	  computed in the print method.
+
+	- heatmap() has many more arguments, partly thanks to Wolfgang
+	  Huber and Andy Liaw.
+
+	- Arguments `unit' and `hmin' of plclust() are now implemented.
+
+	- prcomp() now accepts complex matrices, and there is biplot()
+	  method for its output (in the real case).
+
+	- dendrograms are slightly better documented, methods working with
+	  "label", not "text" attribute.  New rev() method for dendrograms.
+
+	- plot.dendrogram() has an explicit `frame.plot' argument
+	  defaulting to FALSE (instead of an implicit one defaulting to TRUE).
+
+    o	Changes in package 'tcltk':
+
+	- The package is now in a namespace.  To remove it you will
+	  now need to use unloadNamespace("tcltk").
+
+	- The interface to Tcl has been made much more efficient by
+	  evaluating Tcl commands via a vector of Tcl objects rather
+	  than by constructing the string representation.
+
+	- An interface to Tcl arrays has been introduced.
+
+	- as.tclObj() has gained a `drop' argument to resolve an
+	  ambiguity for vectors of length one.
+
+    o	Changes in package 'tools':
+
+	- Utilities for testing and listing files, manipulating file
+	  paths, and delimited pattern matching are now exported.
+
+	- Functions checkAssignFuns(), checkDocArgs() and checkMethods()
+	  have been renamed to checkReplaceFuns(), checkDocFiles(), and
+	  checkS3methods, to given better descriptions of what they do.
+
+	- R itself is now used for analyzing the markup in the \usage
+	  sections.  Hence in particular, replacement functions or S3
+	  replacement methods are no longer ignored.
+
+	- checkDocFiles() now also determines 'over-documented' arguments
+	  which are given in the \arguments section but not in \usage.
+
+	- checkDocStyle() and checkS3Methods() now know about internal S3
+	  generics and S3 group generics.
+
+	- S4 classes and methods are included in the QC tests.
+	  Warnings will be issued from undoc() for classes  and
+	  methods defined but not documented.  Default methods
+	  automatically generated from nongeneric functions do not
+	  need to be documented.
+
+	- New (experimental) functions codocClasses() and codocData()
+	  for code/documentation consistency checking for S4 classes and
+	  data sets.
+
+    o	Changes in package 'ts':
+
+	- arima.sim() now checks for inconsistent order specification
+	  (as requested in PR#3495: it was previously documented not to).
+
+	- decompose() has a new argument `filter'.
+
+	- HoltWinters() has new arguments `optim.start' and
+	  `optim.control', and returns more components in the fitted
+	  values.  The plot method allows `ylim' to be set.
+
+	- plot.ts() has a new argument `nc' controlling the number of
+	  columns (with default the old behaviour for plot.mts).
+
+	- StructTS() now allows the first value of the series to be
+	  missing (although it is better to omit leading NAs). (PR#3990)
+
+
+USING PACKAGES
+
+    o	library() has a pos argument, controlling where the package is
+	attached (defaulting to pos=2 as before).
+
+    o	require() now maintains a list of required packages in the
+	toplevel environment (typically, .GlobalEnv).  Two features
+	use this:  detach() now warns if a package is detached that is
+	required by an attached package, and packages that install
+	with saved images no longer need to use require() in the
+	.First as well as in the main source.
+
+    o	Packages with name spaces can now be installed using --save.
+
+    o	Packages that use S4 classes and methods should now work with
+	or without saved images (saved images are still recommended
+	for efficiency), writing setMethod(), etc. calls with the
+	default for argument `where'.  The topenv() function and
+	sys.source() have been changed correspondingly.	 See the
+	online help.
+
+    o	Users can specify in the DESCRIPTION file the collation order
+	for files in the R source directory of a package.
+
+
+DOCUMENTATION CHANGES
+
+    o	Changes in R documentation format:
+
+	- New logical markup commands for emphasizing (\strong) and
+	  quoting (\sQuote and \dQuote) text, for indicating the usage
+	  of an S4 method (\S4method), and for indicating specific kinds
+	  of text (\acronym, \cite, \command, \dfn, \env, \kbd, \option,
+	  \pkg, \samp, \var).
+
+	- New markup \preformatted for pre-formatted blocks of text
+	  (like \example but within another section).  (Based on a
+	  contribution by Greg Warnes.)
+
+	- New markup \concept for concept index entries for use by
+	  help.search().
+
+    o	Rdconv now produces more informative output from the special
+	\method{GENERIC}{CLASS} markup for indicating the usage of S3
+	methods, providing the CLASS info in a comment.
+
+    o	\dontrun sections are now marked within comments in the
+	user-readable versions of the converted help pages.
+
+    o	\dontshow is now the preferred name for \testonly.
+
+
+INSTALLATION CHANGES
+
+    o	The zlib code in the sources is used unless the external
+	version found is at least version 1.1.4 (up from 1.1.3).
+
+    o	The regression checks now have to be passed exactly, except
+	those depending on recommended packages (which cannot be
+	assumed to be present).
+
+    o	The target make check-all now runs R CMD check on all the
+	recommended packages (and not just runs their examples).
+
+    o	There are new macros DYLIB_* for building dynamic libraries,
+	and these are used for the dynamic Rmath library (which was
+	previously built as a shared object).
+
+    o	If a system function log1p is found, it is tested for accuracy
+	and if inadequate the substitute function in src/nmath is
+	used, with name remapped to Rlog1p.  (Apparently needed on
+	OpenBSD/NetBSD.)
+
+
+C-LEVEL FACILITIES
+
+    o	There is a new installed header file R_ext/Parse.h which
+	allows R_ParseVector to be called by those writing extensions.
+	(Note that the interface is changed from that used in the
+	unexported header Parse.h in earlier versions, and is not
+	guaranteed to remain unchanged.)
+
+    o	The header R_ext/Mathlib.h has been removed.  It was replaced by
+	Rmath.h in R 1.2.0.
+
+    o	PREXPR has been replaced by two macros, PREXPR for obtaining the
+	expression and PRCODE for obtaining the code for use in eval.
+	The macro BODY_EXPR has been added for use with closures.
+	For a closure with a byte compiled body, the macro BODY_EXPR
+	returns the expression that was compiled; if the body is not
+	compiled then the body is returned.  This is to support byte
+	compilation.
+
+    o	Internal support for executing byte compiled code has been added.
+	A compiler for producing byte compiled code will be made available
+	separately and should become part of a future R release.
+
+    o	On Unix-like systems calls to the popen() and system() C library
+	functions now go through R_popen and R_system.	On Mac OS X these
+	suspend SIGALRM interrupts around the library call.  (Related to
+	PR#1140.)
+
+
+UTILITIES
+
+    o	R CMD check accepts "ORPHANED" as package maintainer. Package
+	maintainers can now officially orphan a package, i.e., resign
+	from maintaining a package.
+
+    o	R CMD INSTALL (Unix only) is now 'safe': if the attempt to
+	install a package fails, leftovers are removed.	 If the package
+	was already installed, the old version is restored.
+
+    o	R CMD build excludes possible (obsolete) data and vignette
+	indices in DCF format (and hence also no longer rebuilds them).
+
+    o	R CMD check now tests whether file names are valid across file
+	systems and supported operating system platforms.  There is some
+	support for code/documentation consistency checking for data
+	sets and S4 classes.  Replacement functions and S3 methods in
+	\usage sections are no longer ignored.
+
+    o	R CMD Rdindex has been removed.
+
+
+DEPRECATED & DEFUNCT
+
+    o	The assignment operator `_' has been removed.
+
+    o	printNoClass() is defunct.
+
+    o	The classic Mac OS port is no longer supported, and its files
+	have been removed from the sources.
+
+    o	The deprecated argument 'white' of parse() has been removed.
+
+    o	Methods pacf/plot.mts() have been removed and their functionality
+	incorporated into pacf.default/plot.ts().
+
+    o	print.coefmat() is deprecated in favour of printCoefmat()
+	(which is identical apart from the default for na.print which
+	is changed from "" to "NA", and better handling of the 0-rank
+	case where all coefficients are missing).
+
+    o	codes() and codes<-() are deprecated, as almost all uses
+	misunderstood what they actually do.
+
+    o	The use of multi-argument return() calls is deprecated: use a
+	(named) list instead.
+
+    o	anovalist.lm (replaced in 1.2.0) is now deprecated.
+
+    o	- and Ops methods for POSIX[cl]t objects are removed: the
+	POSIXt methods have been used since 1.3.0.
+
+    o	glm.fit.null(), lm.fit.null() and lm.wfit.null() are deprecated.
+
+    o	Classes "lm.null" and "glm.null" are deprecated and all of their
+	methods have been removed.
+
+    o	Method weights.lm(), a copy of weights.default(), has been removed.
+
+    o	print.atomic() is now deprecated.
+
+    o	The back-compatibility entry point Rf_log1p in standalone
+	Rmath has been removed.
+
+
+BUG FIXES
+
+    o	ARMAacf() sometimes gave too many results or failed if `lag.max'
+	was used.
+
+    o	termplot() with a subset of terms now gives correct partial residuals
+
+    o	Functions anova.glm(), contrasts(), getS3method(), glm() and
+	make.tables() were applying get() without asking for a
+	function and/or not starting the search in the environment of
+	the caller.
+
+    o	as.data.frame.matrix() ignored the `row.names' argument.
+
+    o	as.data.frame.list(optional = TRUE) was converting names, and
+	hence data.frame(list(...), check.names = FALSE) was.  (PR#3280)
+
+    o	as.dist(m) {mva} now obeys `diag=TRUE' or `upper=TRUE' in all cases.
+
+    o	as.double(list()) etc was regarded as an error, because of a
+	bug in isVectorizable.
+
+    o	On some platforms the wday component of the result of
+	as.POSIXlt() was corrupted when trying to guess the DST offset
+	at dates the OS was unable to handle.
+
+    o	ave(x, g) didn't work when `g' had unused levels.
+
+    o	biplot.default() allows xlim and ylim to be set.  (PR#3168)
+
+    o	bgroup with a null (.) delimiter was setting font to Greek.  (PR#3099)
+
+    o	body() and formals() were looking for named functions in
+	different places: they now both look starting at the
+	environment in which they are called.  Several documentation
+	errors for these functions have been corrected.
+
+    o	boxplot() was ignoring cex.axis.  (PR#2628)
+
+    o	cut.POSIXt() now passes on ... to cut.default(), as documented.
+
+    o	crossprod() now works for 1d arrays with unnamed dimnames (PR#4092).
+
+    o	data() sometimes failed with multiple files, as the paths
+	variable got corrupted.
+
+    o	data.frame() failed with a nonsensical error message if it
+	grabbed row names from an argument that was subsequently
+	recycled.  Now they are discarded, with a warning.
+
+    o	data.matrix() was documented to replace factors by their
+	codes, but in fact re-coded into the alphabetical ordering of
+	the levels.
+
+    o	decompose() with even frequency used an asymmetric moving
+	average window.
+
+    o	demo() was using `topic' as a regexp rather than an exact match.
+
+    o	dotchart() now does recycle the `color' argument and better
+	documents the `bg' one (PR#4343).
+
+    o	getAnywhere() didn't not correctly check for S3 methods, when
+	the generic or the class name contains a "." (PR#4275).
+
+    o	file.copy() ignored the overwrite argument.  (PR#3529)
+
+    o	filter(method="recursive") was unnecessarily requiring the
+	time series to be longer than the filter.
+
+    o	format(*, nsmall = m) with m > 0 now returns exponential format
+	less often.
+
+    o	get() and exists() were ignoring the `mode' argument for
+	variables in base.  The error message for get() now mentions
+	the mode requested if not "any".  A bug in setting the NAMED
+	field in do_get was fixed.
+
+    o	getS3method(f, cl, optional=TRUE) now returns NULL if `f' does
+	not exist.
+
+    o	HoltWinters() would segfault if only gamma was optimized, and
+	not converge if gamma=0 and seasonal="mult".
+
+    o	hyperref.cfg now contains definitions for colors it uses.
+
+    o	identify.default() detects zero-length arguments.  (PR#4057)
+
+    o	legend() allows shading without filling again.
+
+    o	legend(x, y, leg) doesn't triple `leg' anymore when it is a call.
+
+    o	Corrected many problems with 0-rank (but not necessarily empty
+	model) lm() and glm() fits.
+
+    o	lm.influence() now handles 0-rank models, and names its output
+	appropriately.	It also ensures that hat values are not greater
+	than one, and rounds values within rounding error of one.
+
+    o	The `method' argument to loess() did not work.	(PR#3332)
+
+    o	lsfit() was returning incorrect residuals for 0-rank fits.
+
+    o	methods("$") and methods("$<-") were failing to find methods.
+
+    o	methods() and getS3method() find methods if the generic
+	dispatches on a name other than its own.  (The cases of
+	coefficients() and fitted.values() were fixed in 1.7.1.)
+
+    o	model.matrix.default() was throwing an error on 0-term models,
+	but now handles them correctly.
+
+    o	Printing `nls' objects misbehaved when `data' was a composite
+	expression.
+
+    o	.NotYetImplemented() gave "Error in .NotYet...(): .."
+
+    o	numericDeriv() was failing if the first argument was a name
+	rather than a call.  (PR#3746)
+
+    o	pacf() was failing if called on a one-column matrix.
+
+    o	paste() applied to 0-length vectors gave "" not a 0-length vector.
+
+    o	The length of a string specification of par(lty=) is now checked: it
+	should be 2, 4, 6 or 8.
+
+    o	Using lty=as.integer(NA) and as.double(NA) were being accepted
+	but giving nonsensical results.	 Those are not documented
+	valid values for lty.  (PR#3217)
+
+    o	Erroneously calling par(new=TRUE) with no plot was not caught
+	and so could result in invalid graphics files.	(PR#4037)
+
+    o	par(tck=) was being interpreted incorrectly.  It is now
+	documented in the same way as S, and now behaves as
+	documented.  (PR#3504)
+
+    o	plclust() [and hence plot.hclust()] sometimes now uses correct `ylim's
+	also in unusual cases.	(PR#4197)
+
+    o	plot.POSIX[cl]t no longer passes col, lty, lwd to axis.POSIXt.
+
+    o	The png(), jpeg(), png() and win.metafile() devices now
+	enforce the length limit on the filename.  (PR#3466)
+
+    o	pnorm(x, 1, 0) does not give NaN anymore;
+	also, pnorm(x, m, s=Inf) == lim{s -> Inf} pnorm(x,m,s).
+	Similar changes for dnorm(), cf PR#1218.
+
+    o	On some machines the internal rounding used in postscript() was
+	imperfect, causing unnecessarily verbose output (-0.00 instead of
+	0) and problems with make check.
+
+    o	qqnorm()'s result now keeps NAs from its input. (PR#3750)
+
+    o	rank() sometimes preserved and sometimes dropped names.
+
+    o	readBin(what = "foo") didn't convert `what' to its type.  (PR#4043)
+
+    o	reorder.dendrogram() now properly resets the "midpoint" attributes
+	such that reorder()ed dendrograms now plot properly.
+
+    o	rmultinom(1,100, c(3, 4, 2, 0,0))[3] was NA. (PR#4431)
+
+    o	sapply() for matrix result does not return list(NULL,NULL) dimnames
+	anymore.
+
+    o	scan() now interprets quoting in fields to be skipped.	(PR#4128)
+
+    o	seq.POSIXt(from, to, by="DSTday") was failing or calculating
+	the length incorrectly.
+
+    o	sort() and unique.default() were failing on 0-level factors.
+
+    o	step() adds a fuzz for reduction in AIC for 0-df terms.	 (PR#3491)
+
+    o	str(x) gives better output when x is of mode "(".  Its "dendrogram"
+	method obeys the `give.attr' argument which now defaults to FALSE.
+
+    o	strwidth(f) and strheight(f) could seg.fault when `f' was a
+	function.  The fix [to C-level coerceVector()] now gives an error
+	instead of passing through.  This may catch other potential
+	problems.
+
+    o	Sweave() reports the chunk number rather than the driver call when
+	a try error gets caught.
+
+    o	trunc.POSIXt(x) for 0-length x does not return invalid structures
+	anymore.  (PR#3763).
+
+    o	warnings() now returns NULL instead of an error when no warnings
+	have occured yet.  (PR#4389)
+
+    o	Using write.table() setting the `dec' argument and with no
+	numeric columns failed.	 (PR#3532)
+
+    o	$<- did not duplicate when it needed to.
+
+    o	Recursive indexing of lists had too little error-checking.
+	(related to PR#3324)
+
+    o	Removed warning about names in persistent strings when a
+	namespace is saved.
+
+    o	Fixed some malformed error messages in the methods package.
+
+    o	pipes were not opening properly when profiling on a Mac OS.
+	(PR#1140)
+
+    o	Lapack error messages (PR#3494) and call to DGEQP3 (PR#2867) are
+	corrected.
+
+    o	Rd conversion was limiting a file to 1000 pairs of braces,
+	without any warning.  Now the limit is 10000, with a warning.
+	(PR#3400)
+
+    o	In the tcltk package, the tkimage.*() commands were defined
+	nonsensically as widget commands. They have been redefined to be
+	more useful now.
+
+    o	Registered group generics were not being used. (PR#3536)
+
+    o	Subsetting data frames did not always correctly detect that
+	non-existent columns were specified.
+
+    o	There are many more checks for over-running internal buffers,
+	almost always reporting errors.
+
+    o	Added some buffer overflow checking in gram.y.
+
+    o	Internals for complex assignment did not check that function name
+	was a symbol, which could cause a segfault.
+
+    o	Fixed bug in S4 methods dispatch that made local variables in the
+	generic visible when executing the body of a method, thus violating
+	lexical scope.
+
+
+
+
+	**************************************************
+	*						 *
+	*	       1.7 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 1.7.1
+
+
+NEW FEATURES
+
+    o	The help pages give appropriate references to the Blue,
+	White or Green books for functions based on the descriptions
+	of S functions given there. (E&OE)
+
+    o	Function getAnywhere() can find non-exported objects, for
+	namespaces or registered methods.
+
+
+DEPRECATED & DEFUNCT
+
+    o	The (unimplemented) argument 'white' of parse() is deprecated.
+
+    o	The tkfilefind demo in the tcltk library is deprecated, since
+	it never worked well, and apparently not at all with Tcl/Tk 8.4.
+
+
+BUG FIXES
+
+    o	print.table() used too much white space in some cases in 1.7.0.
+
+    o	selectMethod() failed if `f' was a non-generic and
+	optional=TRUE, and gave a confusing error message if
+	optional=FALSE.
+
+    o	pchisq(*, ncp) and qchisq(*, ncp) work in more cases for large ncp
+	or quantile and give warning or error messages otherwise.
+
+    o	str(x) now also works when x is an "externalptr" (or "weakref").
+
+    o	rbeta(), rf(), and rt() now support infinite parameter values;
+	other distributions return NaN instead of NA for such.
+
+    o	Redefining a class is now safer if the new definition
+	generates an error (previously some invalid metadata could be
+	left behind).
+
+    o	A number of errors are now caught in setClass() that
+	previously either went unchecked or waited until new() to
+	appear:
+	- classes may not contain themselves, directly or indirectly;
+	- classes appearing either as slots or as superclasses must
+	  themselves be defined;
+	- slot names (direct or inherited) must be unique.
+	In related changes, prototype() now works as documented, and is the
+	recommended way to provide prototype objects.
+
+    o	Sorting an ordered factor would return an unordered one.
+	This caused some trouble with panel.superpose (PR#974).
+
+    o	methods() could return duplicates if a method in a namespace
+	was both exported and registered.
+
+    o	The internal zip.unpack() could crash if more than 500 files
+	were to be extracted. (PR#2818)
+
+    o	The "r+" and "r+b" modes of opening file connections disallowed
+	writing.
+
+    o	library() now warns the user if the chosen package name
+	doesn't match the internal package name, and corrects the
+	error. (PR#2816)
+
+    o	qr(LAPACK=TRUE) (and qr for complex arguments) might have failed
+	to pivot for rank-deficient inputs. (PR#2867)
+
+    o	Only re-mapped symbols are exported by regex.o, to avoid
+	problems with embedded R on RedHat 9.
+
+    o	arima() did not set transform.pars to FALSE if AR parameters
+	were fixed, although it claimed to.
+
+    o	pnorm() was slower than necessary in the outer tails in some
+	cases due to a typo in the improvements from PR#699.  (PR#2883)
+
+    o	setGeneric() and setMethod() now catch some examples where the
+	generic and the method have different argument lists; the
+	evaluator checks for internal consistency of these argument lists.
+
+    o	expand.grid(x) {the rare case of one argument} now treats factor
+	levels as in the typical case of two or more arguments.
+
+    o	Some implicit coercions to lists could cause segfaults, e.g.
+	  x <- matrix(nrow=20000, ncol=20); x$any <- numeric(0)
+	due to a PROTECT bug. (PR#2923)
+
+    o	The replacement functions for colnames() and rownames() did not
+	work for arrays with more than two dimensions.	They could
+	create dimnames of the form list(NULL, NULL) rather than
+	remove the dimnames attribute.
+
+    o	termplot() gave incorrect answers with rug=TRUE or
+	partial=TRUE for factors whose levels were not in
+	lexicographical order.
+
+    o	A serious performance flaw in as() computations was fixed (the
+	methods were not being cached properly.)
+
+    o	model.frame(~1, data) always returned 1 row. (PR#2958)
+
+    o	The data editor was truncating objects to 65535 rows.  Pro
+	tem, editing objects with more than 65535 rows is an error,
+	and objects cannot be extended beyond that row. This restriction
+	will be removed in 1.8.0.  (PR#2962)
+
+    o	A bug could produce apparent loops in formal method selection
+	when inheritance was restricted (used for the as() function).
+	A related problem sometimes broke attaching a package that had
+	methods for basic functions, such as names(), used in method
+	selection.
+
+    o	Empty expressions as in return(x,) could generate subsequent
+	segfaults: they are now errors.	 (PR#2880)
+
+    o	The Kinderman-Ramage Normal Random Generator had several
+	problems leading to not-quite normally distributed variates
+	(PR#2846).  One problem was traced to an error in the original
+	1976 JASA paper!  Thanks to Josef Leydold and his team for
+	investigating this. The old generator has been retained for
+	reproducibility of older results, under the name
+	"Buggy Kinderman-Ramage".  A warning is issued if you select it
+	(also indirectly via RNGversion()).
+
+    o	promptMethods() now puts the \alias lines for methods in the
+	normal place, near the top of the file, and quotes class
+	 names in signatures.
+
+    o	getS3method() and methods() were not finding methods for
+	coefficients() and fitted.values() (which dispatch on "coef"
+	and "fitted" respectively).
+
+    o	scan() (and hence read.table) was not finding matches for
+	separator chars with the upper bit set.	 (PR#3035)
+
+    o	lm.(w)fit failed if the fit had rank 0.
+
+    o	lqs() did not report explicitly that it had failed if all
+	samples gave singular fits.
+
+    o	predict.lm(*, se=TRUE) {w/ weights, w/o newdata} now gives correct
+	SE's.  (PR#3043)
+
+    o	cor.test(x, y, method="spearman") now also works for
+	length(x) > 1290.
+
+    o	Matrices were printed mis-aligned if right=TRUE and na.print
+	was specified.	(PR#3058)
+
+    o	R CMD check gives now a clearer message when latex produces
+	errors on the package manual.  (PR#3070)
+
+    o	isSeekable() was incorrectly returning FALSE on all file connections.
+
+    o	tkpager() wasn't quite using its title and header arguments in
+	the way prescribed by file.show()
+
+    o	legend(*, pch=p, lty=l) now works better when `p' or `l' have
+	NAs.
+
+    o	All braces in regular expressions used by Sweave() are now
+	escaped by a backslash.
+
+    o	unloadNamespace() failed because getNamespaceImports() now coerces a
+	string argument to a name space.
+
+    o	deriv3 gave incorrect Hessians for some very simple
+	expressions such as expression(x*y) (since the comments in the
+	C code were incorrect).	 (PR#2577)
+
+    o	power.t.test(..., delta=NULL,alternative='two.sided') failed. (PR#2993)
+
+    o	Lines on postscript() plots with thousands of segments might
+	have been plotted inaccurately in 1.7.0. (PR#3132)
+
+	Solid lines in postscript() output are split into groups of 1000
+	segments to help some PostScript interpreters (typically old
+	level-1 interpreters).
+
+    o	cut.POSIXt failed when the breaks were date/time objects. (PR#3181)
+
+    o	Usage of methods in dist.Rd is now correctly documented
+	(as.matrix.dist() is not an exported symbol).
+
+    o	The predict() method for ar fits was not retrieving the series
+	from the parent environment.
+
+    o	eigen() and La.eigen() were not returning a matrix of
+	eigenvectors for a 1x1 input.
+
+    o	hsv() and rgb() now return character(0) when one of their args has
+	length 0.  This also fixes terrain.color(1). (PR#3233)
+
+    o	[[<-.data.frame checked if a replacment was too short, but not
+	if it was too long.  (related to PR#3229)
+
+    o	qt(x, df) was quite inaccurate for df=1+epsilon; it is now much more
+	accurate for df in (1,2) and more precise for other df. (PR#2991)
+
+    o	qbeta() now has slightly improved C code in two places, as suggested
+	in the 2nd followup to PR#2894.
+
+
+
+		CHANGES IN R VERSION 1.7.0
+
+
+USER-VISIBLE CHANGES
+
+    o	solve(), chol(), eigen() and svd() now use LAPACK routines
+	unless a new back-compatibility option is turned on.  The
+	signs and normalization of eigen/singular vectors may change
+	from earlier versions.
+
+    o	The `methods', `modreg', `mva', `nls' and `ts' packages
+	are now attached by default at startup (in addition to `ctest').
+	The option "defaultPackages" has been added which contains the
+	initial list of packages.  See ?Startup and ?options for details.
+	Note that .First() is no longer used by R itself.
+
+	class() now always (not just when `methods' is attached) gives
+	a non-null class, and UseMethod() always dispatches on the
+	class that class() returns.  This means that methods like
+	foo.matrix and foo.integer will be used.  Functions oldClass()
+	and oldClass<-() get and set the "class" attribute as R
+	without `methods' used to.
+
+    o	The default random number generators have been changed to
+	`Mersenne-Twister' and `Inversion'.  A new RNGversion()
+	function allows you to restore the generators of an earlier R
+	version if reproducibility is required.
+
+    o	Namespaces can now be defined for packages other than `base':
+	see `Writing R Extensions'.  This hides some internal objects
+	and changes the search path from objects in a namespace.  All
+	the base packages (except methods and tcltk) have namespaces,
+	as well as the recommended packages `KernSmooth', `MASS',
+	`boot', `class', `nnet', `rpart' and `spatial'.
+
+    o	Formulae are not longer automatically simplified when terms()
+	is called, so the formulae in results may still be in the
+	original form rather than the equivalent simplified form
+	(which may have reordered the terms): the results are now
+	much closer to those of S.
+
+    o	The tables for plotmath, Hershey and Japanese have been moved
+	from the help pages (example(plotmath) etc) to demo(plotmath) etc.
+
+    o	Errors and warnings are sent to stderr not stdout on
+	command-line versions of R (Unix and Windows).
+
+    o	The R_X11 module is no longer loaded until it is needed, so
+	do test that x11() works in a new Unix-alike R installation.
+
+
+NEW FEATURES
+
+    o	if() and while() give a warning if called with a vector condition.
+
+    o	Installed packages under Unix without compiled code are no
+	longer stamped with the platform and can be copied to other
+	Unix-alike platforms (but not to other OSes because of
+	potential problems with line endings and OS-specific help files).
+
+    o	The internal random number generators will now never return
+	values of 0 or 1 for runif.  This might affect simulation
+	output in extremely rare cases.	 Note that this is not
+	guaranteed for user-supplied random-number generators, nor
+	when the standalone Rmath library is used.
+
+    o	When assigning names to a vector, a value that is too short is
+	padded by character NAs. (Wishlist part of PR#2358)
+
+    o	It is now recommended to use the 'SystemRequirements:' field in
+	the DESCRIPTION file for specifying dependencies external to the
+	R system.
+
+    o	Output text connections no longer have a line-length limit.
+
+    o	On platforms where vsnprintf does not return the needed buffer
+	size the output line-length limit for fifo(), gzfile() and
+	bzfile() has been raised from 10k to 100k chars.
+
+    o	The Math group generic does not check the number of arguments
+	supplied before dispatch: it used to if the default method had
+	one argument but not if it had two.  This allows trunc.POSIXt()
+	to be called via the group generic trunc().
+
+    o	Logical matrix replacement indexing of data frames is now
+	implemented (interpreted as if the lhs was a matrix).
+
+    o	Recursive indexing of lists is allowed, so x[[c(4,2)]] is
+	shorthand for x[[4]][[2]] etc.	(Wishlist PR#1588)
+
+    o	Most of the time series functions now check explicitly for a
+	numeric time series, rather than fail at a later stage.
+
+    o	The postscript output makes use of relative moves, and so is
+	somewhat more compact.
+
+    o	%*% and crossprod() for complex arguments make use of BLAS
+	routines and so may be much faster on some platforms.
+
+    o	arima() has coef(), logLik() (and hence AIC) and vcov() methods.
+
+    o	New function as.difftime() for time-interval data.
+
+    o	basename() and dirname() are now vectorized.
+
+    o	biplot.default() {mva} allows `xlab' and `ylab' parameters to
+	be set (without partially matching to `xlabs' and `ylabs').
+	(Thanks to Uwe Ligges.)
+
+    o	New function capture.output() to send printed output from an expression
+	to a connection or a text string.
+
+    o	ccf() (pckage ts) now coerces its x and y arguments to class "ts".
+
+    o	chol() and chol2inv() now use LAPACK routines by default.
+
+    o	as.dist(.) is now idempotent, i.e., works for "dist" objects.
+
+    o	Generic function confint() and `lm' method (formerly in
+	package MASS, which has `glm' and `nls' methods).
+
+    o	New function constrOptim() for optimisation under linear inequality
+	constraints.
+
+    o	Add `difftime' subscript method and methods for the group
+	generics. (Thereby fixing PR#2345)
+
+    o	download.file() can now use HTTP proxies which require `basic'
+	username/password authentication.
+
+    o	dump() has a new argument `envir'.  The search for named
+	objects now starts by default in the environment from which
+	dump() is called.
+
+    o	The edit.matrix() and edit.data.frame() editors can now handle
+	logical data.
+
+    o	New argument `local' for example() (suggested by Andy Liaw).
+
+    o	New function file.symlink() to create symbolic file links
+	where supported by the OS.
+
+    o	New generic function flush() with a method to flush connections.
+
+    o	New function force() to force evaluation of a formal argument.
+
+    o	New functions getFromNamespace(), fixInNamespace() and
+	getS3method() to facilitate developing code in packages with
+	namespaces.
+
+    o	glm() now accepts `etastart' and `mustart' as alternative ways
+	to express starting values.
+
+    o	New function gzcon() which wraps a connection and provides
+	(de)compression compatible with gzip.
+
+	load() now uses gzcon(), so can read compressed saves from
+	suitable connections.
+
+    o	help.search() can now reliably match individual aliases and
+	keywords, provided that all packages searched were installed
+	using R 1.7.0 or newer.
+
+    o	hist.default() now returns the nominal break points, not those
+	adjusted for numerical tolerances.
+
+	To guard against unthinking use, `include.lowest' in
+	hist.default() is now ignored, with a warning, unless `breaks'
+	is a vector.  (It either generated an error or had no effect,
+	depending how prettification of the range operated.)
+
+    o	New generic functions influence(), hatvalues() and dfbeta()
+	with lm and glm methods; the previously normal functions rstudent(),
+	rstandard(), cooks.distance() and dfbetas() became generic.
+	These have changed behavior for glm objects -- all originating from
+	John Fox' car package.
+
+    o	interaction.plot() has several new arguments, and the legend
+	is not clipped anymore by default.  It internally uses axis(1,*)
+	instead of mtext().
+	This also addresses "bugs" PR#820, PR#1305, PR#1899.
+
+    o	New isoreg() function and class for isotonic regression
+	(`modreg' package).
+
+    o	La.chol() and La.chol2inv() now give interpretable error
+	messages rather than LAPACK error codes.
+
+    o	legend() has a new `plot' argument.  Setting it `FALSE' gives
+	size information without plotting (suggested by U.Ligges).
+
+    o	library() was changed so that when the methods package is
+	attached it no longer complains about formal generic functions
+	not specific to the library.
+
+    o	list.files()/dir() have a new argument `recursive'.
+
+    o	lm.influence() has a new `do.coef' argument allowing *not* to
+	compute casewise changed coefficients.	This makes plot.lm() much
+	quicker for large data sets.
+
+    o	load() now returns invisibly a character vector of the names
+	of the objects which were restored.
+
+    o	New convenience function loadURL() to allow loading data files
+	from URLs (requested by Frank Harrell).
+
+    o	New function mapply(), a multivariate lapply().
+
+    o	New function md5sum() in package tools to calculate MD5
+	checksums on files (e.g. on parts of the R installation).
+
+    o	medpolish() {package eda} now has an `na.rm' argument (PR#2298).
+
+    o	methods() now looks for registered methods in namespaces, and
+	knows about many objects that look like methods but are not.
+
+    o	mosaicplot() has a new default for `main', and supports the
+	`las' argument (contributed by Uwe Ligges and Wolfram Fischer).
+
+    o	An attempt to open() an already open connection will be detected
+	and ignored with a warning.  This avoids improperly closing
+	some types of connections if they are opened repeatedly.
+
+    o	optim(method = "SANN") can now cover combinatorial optimization
+	by supplying a move function as the `gr' argument (contributed
+	by Adrian Trapletti).
+
+    o	PDF files produced by pdf() have more extensive information
+	fields, including the version of R that produced them.
+
+    o	On Unix(-alike) systems the default PDF viewer is now determined
+	during configuration, and available as the 'pdfviewer' option.
+
+    o	pie(...) has always accepted graphical pars but only passed
+	them on to title().  Now pie(, cex=1.5) works.
+
+    o	plot.dendrogram (`mva' package) now draws leaf labels if present
+	by default.
+
+    o	New plot.design() function as in S.
+
+    o	The postscript() and PDF() drivers now allow the title to be set.
+
+    o	New function power.anova.test(), contributed by Claus Ekstrom.
+
+    o	power.t.test() now behaves correctly for negative delta in the
+	two-tailed case.
+
+    o	power.t.test() and power.prop.test() now have a `strict'
+	argument that includes rejections in the "wrong tail" in the
+	power calculation. (Based in part on code suggested by Ulrich
+	Halekoh.)
+
+    o	prcomp() is now fast for n x m inputs with m >> n.
+
+    o	princomp() no longer allows the use of more variables than
+	units: use prcomp() instead.
+
+    o	princomp.formula() now has principal argument `formula', so
+	update() can be used.
+
+    o	Printing an object with attributes now dispatches on the
+	class(es) of the attributes. See ?print.default for the fine
+	print. (PR#2506)
+
+    o	print.matrix() and prmatrix() are now separate functions.
+	prmatrix() is the old S-compatible function, and
+	print.matrix() is a proper print method, currently identical
+	to print.default().  prmatrix() and the old print.matrix()
+	did not print attributes of a matrix, but the new print.matrix()
+	does.
+
+    o	print.summary.{lm,glm} now default to symbolic.cor = FALSE, but
+	symbolic.cor can be passed to the print methods from the
+	summary methods.  print.summary.{lm,glm} print correlations to
+	2 decimal places, and the symbolic printout avoids abbreviating
+	labels.
+
+    o	If a prompt() method is called with 'filename' as 'NA', a
+	list-style representation of the documentation shell generated
+	is returned.  New function promptData() for documenting objects
+	as data sets.
+
+    o	qqnorm() and qqline() have an optional logical argument
+	`datax' to transpose the plot (S-PLUS compatibility).
+
+    o	qr() now has the option to use LAPACK routines, and the
+	results can be used by the helper routines qr.coef(), qr.qy()
+	and qr.qty().  The LAPACK-using versions may be much faster
+	for large matrices (using an optimized BLAS) but are less
+	flexible.
+
+    o	QR objects now have class "qr", and solve.qr() is now just the
+	method for solve() for the class.
+
+    o	New function r2dtable() for generating random samples of two-way
+	tables with given marginals using Patefield's algorithm.
+
+    o	rchisq() now has a non-centrality parameter `ncp', and there's a
+	C API for rnchisq().
+
+    o	New generic function reorder() with a dendrogram method;
+	new order.dendrogram() and heatmap().
+
+    o	require() has a new argument, character.only,
+	  -- to make it align with library.
+
+    o	New functions rmultinom() and dmultinom(), the first one with
+	a C API.
+
+    o	New function runmed() for fast runnning medians (`modreg' package).
+
+    o	New function slice.index() for identifying indexes with respect
+	to slices of an array.
+
+    o	solve.default(a) now gives the dimnames one would expect.
+
+    o	stepfun() has a new `right' argument for right-continuous step
+	function construction.
+
+    o	str() now shows ordered factors different from unordered ones.
+	It also differentiates "NA" and as.character(NA), also for factor
+	levels.
+
+    o	symnum() has a new logical argument `abbr.colnames'.
+
+    o	summary(<logical>) now mentions NA's as suggested by
+	Goran Brostrom.
+
+    o	summaryRprof() now prints times with a precision appropriate
+	to the sampling interval, rather than always to 2dp.
+
+    o	New function Sys.getpid() to get the process ID of the R session.
+
+    o	table() now allows exclude= with factor arguments (requested by
+	Michael Friendly).
+
+    o	The tempfile() function now takes an optional second argument
+	giving the directory name.
+
+    o	The ordering of terms for terms.formula(keep.order=FALSE) is
+	now defined on the help page and used consistently, so that
+	repeated calls will not alter the ordering (which is why
+	delete.response() was failing: see the bug fixes).  The
+	formula is not simplified unless the new argument `simplify'
+	is true.
+
+    o	added "[" method for terms objects.
+
+    o	New argument `silent' to try().
+
+    o	ts() now allows arbitrary values for y in start/end = c(x, y):
+	it always allowed y < 1 but objected to y > frequency.
+
+    o	unique.default() now works for POSIXct objects, and hence so
+	does factor().
+
+
+    o	Package tcltk now allows return values from the R side to the
+	Tcl side in callbacks and the R_eval command. If the return
+	value from the R function or expression is of class "tclObj"
+	then it will be returned to Tcl.
+
+    o	A new HIGHLY EXPERIMENTAL graphical user interface using the tcltk
+	package is provided. Currently, little more than a proof of concept.
+	It can be started by calling "R -g Tk" (this may change in later
+	versions) or by evaluating tkStartGUI(). Only Unix-like systems
+	for now. It is not too stable at this point; in particular, signal
+	handling is not working properly.
+
+
+    o	Changes to support name spaces:
+
+	- Placing base in a name space can no longer be disabled by
+	  defining the environment variable R_NO_BASE_NAMESPACE.
+
+	- New function topenv() to determine the nearest top level
+	  environment (usually .GlobalEnv or a name space environment).
+
+	- Added name space support for packages that do not use methods.
+
+    o	Formal classes and methods can be `sealed', by using the
+	corresponding argument to setClass or setMethod.  New
+	functions isSealedClass() and isSealedMethod() test sealing.
+
+    o	packages can now be loaded with version numbers. This allows
+	for multiple versions of files to be installed (and potentially
+	loaded). Some serious testing will be going on, but it should
+	have no effect unless specifically asked for.
+
+
+INSTALLATION CHANGES
+
+    o	TITLE files in packages are no longer used, the Title field
+	in the DESCRIPTION file being preferred.  TITLE files will be
+	ignored in both installed packages and source packages.
+
+    o	When searching for a Fortran 77 compiler, configure by default
+	now also looks for Fujitsu's frt and Compaq's fort, but no
+	longer for cf77 and cft77.
+
+    o	Configure checks that mixed C/Fortran code can be run before
+	checking compatibility on ints and doubles: the latter test
+	was sometimes failing because the Fortran libraries were not
+	found.
+
+    o	PCRE and bzip2 are built from versions in the R sources if the
+	appropriate library is not found.
+
+    o	New configure option --with-lapack to allow high-performance
+	LAPACK libraries to be used: a generic LAPACK library will be
+	used if found.	This option is not the default.
+
+    o	New configure options --with-libpng, --with-jpeglib, --with-zlib,
+	--with-bzlib and --with-pcre, principally to allow these
+	libraries to be avoided if they are unsuitable.
+
+    o	If the precious variable R_BROWSER is set at configure time
+	it overrides the automatic selection of the default browser.
+	It should be set to the full path unless the browser appears
+	at different locations on different client machines.
+
+    o	Perl requirements are down again to 5.004 or newer.
+
+    o	Autoconf 2.57 or later is required to build the configure
+	script.
+
+    o	Configure provides a more comprehensive summary of its results.
+
+    o	Index generation now happens when installing source packages
+	using R code in package tools.	An existing 'INDEX' file is used
+	as is; otherwise, it is automatically generated from the \name
+	and \title entries in the Rd files.  Data, demo and vignette
+	indices are computed from all available files of the respective
+	kind, and the corresponding index information (in the Rd files,
+	the 'demo/00Index' file, and the \VignetteIndexEntry{} entries,
+	respectively).	These index files, as well as the package Rd
+	contents data base, are serialized as R objects in the 'Meta'
+	subdirectory of the top-level package directory, allowing for
+	faster and more reliable index-based computations (e.g., in
+	help.search()). For vignettes an HTML index is generated
+	and linked into the HTML help system.
+
+    o	The Rd contents data base is now computed when installing source
+	packages using R code in package tools.	 The information is
+	represented as a data frame without collapsing the aliases and
+	keywords, and serialized as an R object.  (The 'CONTENTS' file
+	in Debian Control Format is still written, as it is used by the
+	HTML search engine.)
+
+    o	A NAMESPACE file in root directory of a source package is copied
+	to the root of the package installation directory.  Attempting to
+	install a package with a NAMESPACE file using --save signals an
+	error; this is a temporary measure.
+
+    o	The defaults for configure for Darwin systems is
+	--with-blas='-framework vecLib' --with-lapack --with-aqua
+	that by default builds R as a framework and installs it in
+	/Library/Frameworks as R.framework. Then, make install just
+	installs the R.framework in /Library/Frameworks unless specified
+	at configure time using the -enable-R-framework=[DIR] or using
+	the --prefix flag at installation time.
+
+DEPRECATED & DEFUNCT
+
+    o	The assignment operator `_' will be removed in the next
+	release and users are now warned on every usage: you may even see
+	multiple warnings for each usage.
+
+	If environment variable R_NO_UNDERLINE is set to anything of
+	positive length then use of `_' becomes a syntax error.
+
+    o	machine(), Machine() and Platform() are defunct.
+
+    o	restart() is defunct.  Use try(), as has long been recommended.
+
+    o	The deprecated arguments `pkg' and `lib' of system.file() have
+	been removed.
+
+    o	printNoClass() {methods} is deprecated (and moved to base,
+	since it was a copy of a base function).
+
+    o	Primitives dataClass() and objWithClass() have been replaced
+	by class() and class<-(); they were internal support functions
+	for use by package methods.
+
+    o	The use of SIGUSR2 to quit a running R process under Unix is
+	deprecated, the signal may need to be reclaimed for other
+	purposes.
+
+
+UTILITIES
+
+    o	R CMD check more compactly displays the tests of DESCRIPTION
+	meta-information.  It now reports demos and vignettes without
+	available index information.  Unless installation tests are
+	skipped, checking is aborted if the package dependencies cannot
+	be resolved at run time.  Rd files are now also explicitly
+	checked for empty \name and \title entries.  The examples are
+	always run with T and F redefined to give an error if used
+	instead of TRUE and FALSE.
+
+    o	The Perl code to build help now removes an existing example
+	file if there are no examples in the current help file.
+
+    o	R CMD Rdindex is now deprecated in favor of function Rdindex()
+	in package tools.
+
+    o	Sweave() now encloses the Sinput and Soutput environments of
+	each chunk in an Schunk environment. This allows to fix some
+	vertical spacing problems when using the latex class slides.
+
+
+C-LEVEL FACILITIES
+
+    o	A full double-precision LAPACK shared library is made
+	available as -lRlapack.	 To use this include
+	$(LAPACK_LIBS) $(BLAS_LIBS) in PKG_LIBS.
+
+    o	Header file R_ext/Lapack.h added.  C declarations of BLAS
+	routines moved to R_ext/BLAS.h and included in R_ext/Applic.h
+	and R_ext/Linpack.h for backward compatibility.
+
+    o	R will automatically call initialization and unload routines, if
+	present, in shared libraries/DLLs during dyn.load() and
+	dyn.unload() calls. The routines are named R_init_<dll name>
+	and R_unload_<dll name>, respectively.	See the Writing R
+	Extensions Manual for more information.
+
+    o	Routines exported directly from the R executable for use with
+	.C(), .Call(), .Fortran() and .External() are now accessed via
+	the registration mechanism (optionally) used by packages.  The
+	ROUTINES file (in src/appl/) and associated scripts to
+	generate FFTab.h and FFDecl.h are no longer used.
+
+    o	Entry point Rf_append is no longer in the installed headers
+	(but is still available).  It is apparently unused.
+
+    o	Many conflicts between other headers and R's can be avoided by
+	defining STRICT_R_HEADERS and/or R_NO_REMAP -- see `Writing R
+	Extensions' for details.
+
+    o	New entry point R_GetX11Image and formerly undocumented
+	ptr_R_GetX11Image are in new header R_ext/GetX11Image.	These
+	are used by package tkrplot.
+
+
+BUG FIXES
+
+    o	The redefinition of the internal do_dataentry by both the aqua and X11
+	modules, casued a bus error when launching R without the --gui=aqua option
+	under X11 using a version of R built to use the aqua module. This has
+	now been fixed. (PR#6438)
+
+    o	Sys.sleep() on Unix was having trouble with waits of less than 0.5s
+
+    o	The fix to PR#2396 broke read.table() on files with CR line
+	endings. (PR#2469)   Separate problem with this on Carbon Mac OS
+	build fixed as well.
+
+    o	Converting Sweave files to noweb syntax using SweaveSyntConv()
+	was broken.
+
+    o	Printing numbers near the minimum could get the number of
+	significant figures wrong due to underflow: for example 4e-308
+	might print as 4.00000e-308.  (Seen on some Windows builds,
+	and also on numbers around 1e-317 on Linux.)
+
+    o	wilcox.test() could give integer overflow warnings on very long
+	vectors.  Also added tests for numeric inputs, as per the help
+	page.  (PR#2453)
+
+    o	Printing unquoted character vectors containing escape
+	characters was computing the wrong length and hence
+	misaligning names.  This was due to a bug in Rstrlen which
+	might have had other effects.
+
+    o	if(logical(0)) and while(logical(0)) now report zero length,
+	not `missing value where logical is needed'.
+
+    o	The gaussian() and inverse.gaussian() families were documented
+	to allow only one link, which has not been true in R for at
+	least four years.
+
+    o	prmatrix() forced conversion to character if `na.print' was
+	used, and that conversion neither respected `digits' nor
+	`quote'.
+
+    o	Rprof() might give misleading results for too small values of
+	`interval' and in practice the default 20ms was about as small
+	as is advisable on Linux.  Now the interval is forced to be at
+	least one clock tick.
+
+    o	summary.data.frame() was not giving interpretable results when
+	the data frame contained a data frame as a column. (PR#1891)
+
+    o	delete.response() might re-order the rhs terms so prediction
+	might fail or even give incorrect results. (PR#2206)
+
+    o	StructTS() now accepts numeric time series of integer storage mode.
+
+    o	all(), any() now handle NAs as documented.
+
+    o	Subsetting arrays to a result with 0 dimension(s) failed if
+	the array had dimnames. (PR#2507)
+
+    o	If the call to data.frame() included 0-row arguments, it tried
+	to replicate them to the maximum number of rows, and failed if
+	this was 1 or more.
+
+    o	replicate() now understands data frames to which na.omit() has
+	been applied.
+
+    o	is.ts() was too liberal: a time series must have at least one point.
+
+    o	methods() was sorting by package, not by name.
+
+    o	symbols(thermometers=) was often giving a spurious warning about
+	the range.
+
+    o	tcltk was using deprecated internals of the Tcl library when
+	accessing error messages.  Not likely to be a user-visible
+	change.
+
+    o	The automatic search for BLAS libs now tries Sun's libsunperf
+	the way the latest versions require. (PR#2530)
+
+    o	str(array(1)) now does show the array.
+	str(Surv(...)) now works again.
+
+    o	step(), add1.default() and drop1.default() now work somewhat
+	better if called from a function.
+
+    o	page() was searching from the wrong environment, and so
+	searching base before the workspace.
+
+    o	crossprod(Z) for complex Z was returning nonsense.
+
+    o	La.chol2inv() gave incorrect results unless the matrix was square.
+
+    o	When the POSIXt date functions were required to guess DST,
+	they sometimes guessed correctly that DST was in force but
+	converted a POSIXlt time as if standard time was given.
+
+    o	c/rbind were not handling zero col/row matrices correctly.
+	(PR#2541 was one symptom.)
+
+    o	approx() and approxfun() now work with 1 knot if
+	method = "constant".  stepfun(), ecdf() and plot.stepfun() do so
+	as well.
+
+    o	AIC.lm/default was failing if multiple objects and k were
+	specified.  (PR#2518)
+
+    o	removeMethods{methods} was broken. (PR#2519)
+
+    o	summary.glm() had two `aic' components in the returned object.
+
+    o	autoload() was returning the value of its last command, a
+	promise, even though it was documented to have no value.
+	As a result some packages (e.g. nlme) were loading packages
+	they meant to autoload.
+
+    o	Fixes to methods and classes:
+	   - show() is consistent with using setOldClass for S3 classes.
+	   - several problems with the coerce and replace methods
+	     generated by setIs have been fixed.
+	   - more thorough tests & informative messages for invalid
+	     `def' arguments to setGeneric
+	   - setGeneric will now create the generic function even when
+	     a generic of the same name already exists (it does issue
+	     a warning).
+
+    o	unz() connections could no longer be opened. (PR#2579)
+
+    o	unique(ordered factor) returned an unordered factor. (PR#2591)
+
+    o	x[] <- value coerced x to the mode of value if and only if x
+	had length 0!  (Should only happen if x is null: PR#2590)
+
+    o	lm() mislabelled the cols of the qr decomposition. (cause of PR#2586)
+
+    o	data() looks for file extensions in an order prescribed in the
+	help file: previously whether foo.R or foo.csv was used was
+	locale-dependent.
+
+    o	sys.function() now returns the actual function being evaluated in
+	the specified frame rather than one inferred from the call.
+
+    o	match.call() now uses the definition of the actual function being
+	evaluated rather than one inferred from the call.
+
+    o	abbreviate(*, dot = TRUE) now only adds a "." where abbreviations
+	did happen.
+
+    o	Changing timezones in the POSIXt functions was not working on
+	some Linux systems, and this has been corrected.
+
+    o	ks.test() in package ctest had numerical problems in the lower
+	tail of the asymptotic distribution (PR#2571).
+
+    o	Sweave() now handles empty chunks at the end of files correctly.
+
+    o	[<-() lost the object bit if coercion was involved.
+
+    o	package::object wasn't being deparsed properly.
+
+    o	seq.POSIXt() with `by' an object of class "difftime" ignored
+	the units.
+
+    o	rank(c("B", NA)) no longer returns character.
+
+    o	reference to by() added in ?tapply
+
+    o	?lm describes what happens with matrix response
+
+    o	The X11 device has improved event handling. In particular it
+	used to often miss the last of a series of resize events.
+
+    o	lm.influence() and related functions now work again for the
+	multivariate case and when there are zero weights.
+
+    o	format( <character> ) now always keeps names and dimnames.
+
+    o	table(factor(c(2,NA), exclude=NULL)) prints better now.
+
+    o	predict(foo, type = "terms") and hence
+	residuals(foo, type = "partial") now work for lm and glm objects
+	with weights zero.  Further, model.matrix() is now only called once.
+
+    o	R CMD config now works correctly when called from a Makefile
+	using GNU make.
+
+    o	The data.frame method for rbind() was
+	- converting character columns to factors,
+	- converting ordered factor columns to unordered factors,
+	- failing to append correctly a factor to a character column
+	  and vice versa.
+
+    o	as.hclust.twins() now does provide proper `labels', `method' and
+	`call' components.
+
+    o	cycle() sometimes failed on a time series which started at a cycle
+	other than 1.
+
+    o	read.dcf() read incorrectly files which did not end in a new line.
+
+    o	read.socket() dropped certain non-alphanumeric characters. (PR#2639)
+
+    o	termplot() handles missing data better (PR#2687,
+	 <Mark.Bravington@csiro.au>)
+
+    o	Corrected MacRoman encoding for Icircumflex etc.
+
+
+
+	**************************************************
+	*						 *
+	*	       1.6 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 1.6.2
+
+
+BUG FIXES
+
+    o	plot.stepfun() now obeys a `ylim=.' specification.
+
+    o	removeClass() does a better job of removing inheritance
+	information.
+
+    o	setIs() will not allow mismatched representations between two
+	classes (without an explicit coerce method).
+
+    o	The code underlying polygon drawing contained a memory leak.
+	This showed up in persp, but did not affect other graphics
+	functions.  It is now possible to draw big DEMs.
+
+    o	logLik.nls() gave wrong df. (PR#2295)
+
+    o	rbind() with a mixture of data frames and matrices treated the
+	matrices as vectors. (PR#2266)
+
+    o	stripchart(method="stack") was not handling missing values. (PR#2018)
+
+    o	Arithmetic functions such as log() lost the object bit from
+	classed objects if coercion was needed. (PR#2315)
+
+    o	exp_rand would go into an infinite loop if unif_rand returned 0.
+
+    o	formatC(x, format="fg") could return exponential format if
+	rounding pushed x over a positive power of 10. (PR#2299)
+
+    o	attr(x, foo) used partial matching for `foo' (even though not
+	documented to do so), and failed to find `foo' if there were
+	two or more partial matches before the exact match in the list
+	of attributes.
+
+    o	Rdconv now creates direct HTML hyperlinks when linking to
+	documentation in the same package.  The code now ensures that
+	links which can be resolved within the package are so resolved,
+	even when there are possible resolutions in other packages.
+
+    o	If readBin(what=character()) is used incorrectly on a file which
+	does not contain C-style character strings, warnings (usually
+	many) are now given.
+
+    o	Building libR.so with the zlib in the R sources was not
+	finding the local zlib headers.
+
+    o	system(intern=TRUE) has an undocumented line length limit of
+	119 chars both on Unix and Windows.  The limit is now 8096 and
+	documented.  On Unix (only) every 120th character used to be
+	discarded.
+
+    o	plot.POSIX[cl]t were not passing graphics parameters on to
+	axis.POSIXct.
+
+    o	On some HP-UX systems, installed scripts were not executable
+	when using the BSD-compatible install system program found by
+	configure.  We now always use install-sh on HP-UX. (PR#2091)
+
+    o	c() was converting NA names to "NA": now proper NA strings are
+	used wherever possible. (PR#2358)
+
+    o	Checks in the C code prevent possible memory faults when
+	standardGeneric is called invalidly.
+
+    o	Macros NEW_OBJECT (aka NEW) and MAKE_CLASS added; required by
+	the .Call interface to generate arbitrary objects.
+
+    o	A typo was causing segfaults when using data.entry under SuSE.
+
+    o	mostattributes<-() was failing to copy across dimnames when
+	one component was NULL, affecting pmax() and pmin() when the
+	first argument was a matrix.  (root cause of PR#2357)
+
+    o	The pdf() device now initialises graphical parameters
+	properly.  (PR#2281)
+
+    o	Checks in the C code prevent possible memory faults when
+	standardGeneric is called invalidly.
+
+    o	Macros NEW_OBJECT (aka NEW) and MAKE_CLASS added; required by
+	the .Call interface to generate arbitrary objects.
+
+    o	Problem that prevented package tcltk from working with Tcl/Tk
+	8.4 (crash on initialization) resolved.	 (Notice that binaries
+	may still require an older Tcl/Tk, for example on Windows).
+
+    o	type.convert() was not getting the levels right if passed a
+	character vector containing <NA>s, and `na.strings' did not
+	contain "NA".  This affected read.table().
+
+    o	Internal match function did not check for nor handle 0-length
+	vectors.  (The R function match() did.)	 This could cause
+	type.convert() to segfault.
+
+    o	The line length limit in output text connections has been
+	raised to 8095 chars.
+
+    o	Sweave now uses anonymous file rather than text connections
+	to avoid the limits of the latter (see previous item).
+
+    o	parsing did not work on connections when pushback was used (as
+	it had never been implemented).	 (PR#2396)
+
+    o	max.col() only found NAs in the first column (typo).
+
+    o	Added a workaround for recent versions of glibc (e.g. RedHat 8.0)
+	with inconsistent mktime/localtime functions which caused
+	conversion to/from POSIXct times prior to 1970-01-01 to be
+	inconsistent.  On such platforms this is a run-time test to
+	allow e.g. R compiled on RH7.2 to run on RH8.0.
+
+    o	Clipping was not being reset properly between plots on the gtk()
+	device (the default under the GNOME interface). (PR#2366)
+
+    o	axis(*, fg= cc) now works (again) the same as axis(*, col = cc).
+
+
+
+		CHANGES IN R VERSION 1.6.1
+
+
+NEW FEATURES
+
+    o	Added a few "trivial and obviously missing" functions to tcltk:
+	tkchooseDirectory, tkpopup, tkdialog, tkread
+
+    o	barplot() has a new argument `axis.lty', which if set to 1
+	allows the pre-1.6.0 behaviour of plotting the axis and tick
+	marks for the categorical axis.	 (This was apparently not
+	intentional, but axis() used to ignore lty=0.)
+	The argument `border' is no longer ".NotYetUsed".
+
+
+BUG FIXES
+
+    o	hist(<datetime>, cex.axis = f)	now works for x-axis too.
+
+    o	prompt() gave wrong \usage{.} for long argument default expressions.
+
+    o	summary(x) gives more information when `x' is a logical
+	(or a data frame with a logical column which is now quite customary).
+
+    o	seq.POSIXt(from, to, length.out= . ) could give too long results
+
+    o	summaryRprof() was counting nested calls to the same function
+	twice.
+
+    o	Printing of objects of mode "expression" did strange things if
+	there were "%" characters in the deparsed expression (PR#2120).
+
+    o	as.matrix.data.frame converted missings to "NA" not character NA.
+	(PR#2130)
+
+    o	spec.pgram() was only interpolating zero freq for one series. (PR#2123)
+
+    o	help(randu) had % unescaped in the example. (PR#2141)
+
+    o	Making html links would fail if packages-head.html was not
+	writable. (PR#2133)
+
+    o	Sweave.sty was not installed to $R_HOME/share/texmf when
+	builddir != srcdir. On Windows backslashes in latex paths have
+	to be replaced by slashes.
+
+    o	A memory leak in deparsing was introduced when eliminating
+	static variables (thanks to Achim Zeileis for spotting this).
+	A similar problem in loading workspaces has been corrected.
+
+    o	TclInterface.Rd incorrectly used \synopsis for \usage so that
+	the usage section wasn't output.
+
+    o	Readline stack off-by-one error. (PR#2165)
+
+    o	R_ExpandFileName had a memory leak in the case libreadline was
+	used under Unix-alikes.
+
+    o	sys.save.image() now closes all connections so it will work even
+	if the connection list has become full.
+
+    o	loess() had an unstated limit of four predictors: this is now
+	documented and enforced.
+
+    o	${R_HOME}/etc/Renviron.site is now not read if R_ENVIRON is
+	set, as documented.  Previously it was read unless R_ENVIRON
+	pointed to an actual file.
+
+    o	Startup.Rd described the processing under Unix-alikes but
+	incorrectly implied it happened that way on the Windows and
+	Mac OS ports.  Neither use Renviron.site, for example.
+
+    o	besselK(x,*) now returns 0 instead of Inf for large x. (PR#2179)
+
+    o	The Tcl console code didn't work with Tcl/TK 8.0, and has been
+	#ifdef'd out.  (PR#2090)
+
+    o	format.AsIs() was not handling matrices.
+
+    o	sd() was not passing na.rm to var() for matrices and data frames.
+
+    o	dist() {mva} silently treated +/-Inf as NA.
+
+    o	setwd() now returns NULL invisibly.
+
+    o	basename() and dirname() did not check the length of their
+	input and ignored elements after the first.  This affected
+	undoc {tools}.
+
+    o	If A had dimnames, eigen(A) had inappropriate dimnames. (PR#2116)
+
+    o	as.POSIXct.dates had a sign error for the origin (PR#2222)
+
+    o	The claim that pie charts should be avoided (in pie.Rd) is now
+	supported by a quote from Cleveland (1985).
+
+    o	The vsnprintf() functions supplied for systems that don't
+	supply their own had a bug in the output of fractional parts,
+	corrupting data if using save() with ascii=TRUE. (PR#2144)
+
+    o	pretty() values close to 0 in some cases which are now 0 (PR#1032
+	and D.Brahm's mails).
+
+    o	factor.scope() was giving an error rather than a reasonable
+	default in some cases when it was called incorrectly (e.g. via
+	incorrect formula in add1()).
+
+
+BUILD ISSUES
+
+    o	Toplevel Makefile was missing dependency of "docs" on "R" (causing
+	parallel makes to go wrong)
+
+    o	When building with recommended packages those were installed
+	into the first path in R_LIBS, if the environment variable was
+	present.
+
+
+
+		CHANGES IN R VERSION 1.6.0
+
+
+USER-VISIBLE CHANGES
+
+    o	The default colour palette now has "grey" instead of "white"
+	in location 8.	See palette().
+
+    o	grid(nx) behaves differently (but the same as in R versions <= 0.64).
+
+
+NEW FEATURES
+
+    o	New operator :: in the grammar, for name spaces.
+
+    o	New faster rowsum(), also works on data frames.
+
+    o	grep(), (g)sub() and regexpr() have a new argument `perl'
+	which if TRUE uses Perl-style regexps from PCRE (if installed).
+	New capabilities option "PCRE" to say if PCRE is available.
+
+    o	Preparations for name space support:
+
+	- Functions in the base package are now defined in a name space.
+	  As a temporary measure, you can disable this by defining the
+	  environment variable R_NO_BASE_NAMESPACE.
+
+	- UseMethod dispatching now searches for methods in the
+	  environment of the caller of the generic function rather
+	  than the environment where the generic is defined.
+
+    o	The objects created in the methods package to represent
+	classes, generic functions, method definitions, and
+	inheritance relations now themselves belong to true classes.  In
+	particular, the "classRepresentation" objects follow the description
+	in "Programming with Data" (section 7.6).
+
+    o	Other additions and changes to the methods package:
+
+	- The function setOldClass() has been added, following the
+	  description on page 450 of "Programming with Data".  Use it
+	  if old-style classes are to be supplied in signatures for
+	  setMethod, particularly if the old-style classes have
+	  inheritance.	Many of the old-style classes in the base
+	  package should be pre-specified; try getClass("mlm"), e.g.
+
+	- The setGeneric() function applies some heuristics to warn
+	  about possibly erroneous generic function definitions.
+	  (Before, obscure bugs could result.)
+
+	- The function promptMethods() has been revised to work better
+	  and to provide aliases for individual methods.
+
+	- The behavior of the as() function has been generalized, in
+	  particular with a strict= argument, the general goal being
+	  to let simple extensions of classes pass through in method
+	  dispatch and related computations without altering the
+	  objects. More to make method behavior more "natural" than
+	  for direct use.
+
+	- Some inconsistencies following detach("package:methods")
+	  have been removed, so it _should_ be possible to
+	  detach/re-attach the methods package.
+
+    o	New methods ([[, print, str) and extended plot() method
+	(incl. logical `horiz') for "dendrogram" class.
+
+    o	sprintf() now checks the agreement between formats and object
+	types, and handles special values (NA, Inf, ...) correctly.
+
+    o	chol() now uses a tolerance for non-positive-definiteness and
+	so should give more consistent results across platforms.
+
+    o	New function agrep() for approximate (fuzzy) string matching.
+
+    o	help.search() can now use both approximate (fuzzy) and regular
+	expression matching.  By default, if the pattern to be matched
+	consists of only alphanumeric characters, whitespace or a dash,
+	approximate matching is used.
+
+    o	axis() has three new optional arguments `col', `lty', and `lwd'
+	all for drawing the axis line and tick marks.
+
+    o	Function vcov() (formerly in MASS), a generic function to
+	return the variance-covariance matrix of the parameter
+	estimates of a fitted model.
+
+    o	duplicated() and unique() have methods for matrices and arrays
+	(based on ideas from Jens Oehlschlaegel).
+
+    o	Internally memory sizes and counts of cons cells are now stored
+	in unsigned longs.  This allows memory limits to be set and
+	objects created in the range 2-4Gb on 32-bit platforms, and
+	allows 64-bit platforms to use much larger amounts of memory.
+
+    o	Command-line flags to set memory can now use the suffix `G'
+	for gigabytes.	The setting of maximum vsize is now only
+	limited by the platform's address space.
+
+    o	All warning and error messages are truncated to a length set
+	by options(warning.length=), defaulting to 1000.  (Previously
+	most (but not quite all) were truncated at 8192 characters.)
+
+    o	[dpqr]gamma() check for shape parameter > 0.
+
+    o	as.POSIX[cl]t can now convert logical NAs.
+
+    o	All installed packages (even those shipped with R) are
+	given a `Built' field in the DESCRIPTION file.
+
+    o	as.data.frame() now coerces logical matrices into logical
+	columns (rather than factors).
+
+    o	[[<-.data.frame no longer coerces character replacement values
+	to factor.  This is consistent with using $ to replace and
+	with S4.
+
+    o	library() attempts to detect improperly installed packages, so
+	as from this version an installed package must have a
+	DESCRIPTION file and that file must have been stamped with a
+	`Built:' line (which was introduced in 1.2.0).	Under
+	Unix-alikes, the platform is checked against that used for
+	installation.
+
+    o	print.factor() has new arguments `max.levels' (with a smart default)
+	and `width'.  print.ordered() is no longer needed.
+
+    o	RNGkind() has an additional option for normal random generators:
+	"Inversion".
+
+    o	data.frame() recycles factors and "AsIs" objects as well as
+	atomic vectors.
+
+    o	predict.lm() warns if `newdata' is supplied and the fit was
+	rank-deficient, as this can be misleading.
+
+    o	rect() accepts additional graphics parameters through a ...
+	argument (in the same way as polygon).
+
+    o	strwidth/strheight() now coerce their first argument in exactly
+	the same way text() does, so a wider range of inputs is allowed.
+
+    o	prompt()'s default and data.frame methods have a new 3rd argument
+	`name' allowing them to used more easily in scripts and loops.
+
+    o	rgb() has a new `maxColorValue' argument, allowing r,g,b in [0,M],
+	particularly in {0:255}, efficiently and non-error-prone.
+
+    o	summaryRprof() provides the functionality of R CMD Rprof in R
+	code, though more slowly.
+
+    o	stop() accepts multiple arguments (which are concatenated)
+	just as warning() does.
+
+    o	scan() now throws an error with incorrect logical input (which
+	was previously taken as FALSE).
+
+    o	pdf() now uses PDF not R code for clipping, which ensures that
+	partially visible text strings are (partially) shown.
+
+    o	Each R session uses a per-session temporary directory which
+	is removed at normal termination.  The directory name is given
+	by the tempdir() function, and filenames returned by
+	tempfile() will be within that directory.
+
+    o	help.start() on Unix now uses a .R subdirectory of the
+	per-session temporary directory and not ~/.R.  A side effect
+	is that ~/.R is now never deleted by R.
+
+	This now uses the remote control mechanism only if the X
+	display is local to the R process (as otherwise it might use a
+	browser running on an arbitrary machine).
+
+    o	*Very* experimental browseEnv() for browsing objects in an
+	environment.
+
+    o	cbind/rbind() used to ignore all zero-length vectors, an
+	undocumented quirk for S-compatibility.	 This caused problems
+	when combining zero-extent matrices and zero-length vectors, and
+	now zero-length vectors are ignored unless the result would
+	have zero rows/columns.
+
+    o	read.table(stdin()) will now work.
+
+    o	plot.spec(x) now also works for other x than AR and Pgram results.
+
+    o	New functions La.chol() and La.chol2inv() for Cholesky
+	decomposition and inverse of positive definite matrices using
+	Lapack.
+
+    o	Changes to the tcltk package
+
+	- on Unix systems, the Tcl event loop has been integrated with
+	  R's own (so that tkwait.variable() no longer halts updates of
+	  plot windows).
+
+	- also on Unix, stubs have been created to divert R's input
+	  and output routines to go via Tcl commands. (Nothing
+	  uses this at present, but packages might be developed to
+	  take advantage of it.)
+
+	- return value from Tcl commands is no longer invisible. A new
+	  print method, print.tclObj(), has been introduced.
+
+	- Tcl variables created by tclVar() are now explicitly put into
+	  Tcl's global namespace, removing potential scoping problems.
+
+	- The tcltk dynamic library now loads with local=FALSE since
+	  the default had trouble when loading Tcl extensions
+	  (e.g. Tix)
+
+	- The tkpager() function had not been updated for the return
+	  value change from 1.5.0
+
+    o	The bmp(), jpeg() and png() devices can produce multiple
+	bitmap files, one for each page.  The default filenames have been
+	changed to include a sequence number.
+
+    o	New function axTicks() returning tick mark locations like axis().
+
+    o	grid() has a more sensible default behavior.  Tick axis alignment
+	only happens when no numbers of grid cells are specified.  New
+	arguments lwd and equilogs; nx/ny = NA for not drawing, see ?grid.
+
+    o	installed.packages() has a new argument `priority'.
+
+    o	termplot() uses factor levels rather than 1,2,3... for x-axis.
+
+    o	Workaround for optimization bugs on gcc 3.1/2 on 32-bit Solaris.
+
+    o	The trace() function has been robustified and a new function
+	tracingState() added to turn tracing temporarily on and off.
+
+    o	New cophenetic() in "mva" as utility for hierarchical clustering.
+
+    o	p.adjust() has two new methods, 'Hommel' and 'FDR', contributed
+	by Gordon Smyth <smyth@wehi.edu.au>.
+
+    o	stars() now has add and plot arguments.
+
+
+DEPRECATED & DEFUNCT
+
+    o	The assignment operator `_' is deprecated: a warning is	given
+	once per R session.
+
+    o	machine() is deprecated in favour of .Platform$OS.type.
+	Machine() and Platform() are deprecated in favour of .Machine
+	and .Platform.
+
+    o	arima0.diag() (package ts) is defunct.
+
+    o	piechart() is defunct.
+
+    o	print.ordered() has been removed, so print.factor() is used.
+
+    o	The global internal variables .Dyn.libs and .lib.loc are
+	removed in favor of the internal functions .dynLibs() and
+	.libPaths().
+
+    o	restart() is deprecated in preparation for proper exception
+	handling.  Use try(), as has long been recommended.
+
+
+DOCUMENTATION CHANGES
+
+    o	New demo(persp) containing some of the former example(persp) ones
+	and more.
+
+
+C-LEVEL FACILITIES
+
+    o	Rversion.h is no longer automatically included by R.h.
+	Include it explicitly if you need it.
+
+    o	New entry point R_tmpnam in Utils.h.
+
+    o	The Unix event loop interface has been changed to facilitate
+	integration with other loops. R_checkActivity and
+	R_runHandlers should eventually replace getSelectedHandler.
+
+
+INSTALLATION CHANGES
+
+    o	Perl 5.005 or newer is now required.
+
+    o	R CMD INSTALL is now guaranteed to sort the R source files in
+	ASCII order.
+
+
+UTILITIES
+
+    o	R CMD check now tests for mis-use on an installed or binary
+	package, and sets 'T' and 'F' to 'NULL' when running the
+	examples.
+
+    o	New function SweaveSyntConv() converts between Sweave file
+	syntaxes. RweaveLatex() now gets its prompt from options() and
+	uses the text width as linebreak cutoff for deparsing input
+	statements.
+
+
+BUG FIXES
+
+    o	axis() was not respecting par("mgp")[3] by default.
+	(PR#916)
+
+    o	tcltk back-compatibility fix for tcl8.0
+
+    o	hist.POSIXct(*, breaks) now works for `breaks = #{breaks}' and
+	when `x' has NAs; the latter applies to cut.POSIXct() as well.
+
+    o	The internal download.file() methods were setting the proxy
+	port to 0 unless it was specified.
+
+    o	poly() did not work for >=3 column matrices.
+
+    o	cut.default() was not handling infinite values with infinite
+	breaks.	 (PR#1694)
+
+    o	ks.test() could fail due to integer overflow if n.x and n.y
+	were both large.
+
+    o	all.equal(3., 3:3) wasn't TRUE when the methods package was
+	present.
+
+    o	read.table() could remap non-syntactic names to duplicates,
+	and did not check for duplicated names.
+
+    o	ls.str(envir = environment(F)) now works (when F is a function).
+
+    o	pie() now has a `border' (and 'lty') argument which allows empty
+	slice borders and makes pie() useable for hundreds of slices.
+
+    o	all.equal.character() now works correctly also when NAs don't
+	match (PR#1767).
+
+    o	all.equal.numeric() now gives character {instead of list} when
+	lengths don't match.
+
+    o	read.dcf() had a memory leak.
+
+    o	Setting "tcl = a" in a highlevel graphic function worked almost
+	as if par(tcl = a) was called (i.e. was persistent).  Further,
+	after par(tcl= <.>), highlevel graphic setting of tcl didn't work
+	anymore.  "tck" has now S's default of -0.01 (when tcl=NA).
+
+    o	data() was not checking if ./data was a directory before
+	warning.
+
+    o	Assignment beyond the end of character strings was filling
+	with "", whereas changing the length extended with NA_STRING.
+	Now NA_STRING is used for both.
+
+    o	boxplot()s with logarithmic scale in "width-direction" now have
+	proper widths, i.e. typically constant.
+
+    o	Using GNU readline in asynchronous event callbacks (e.g. TclTk
+	or Gtk) works correctly, i.e. doesn't cause readline to abort
+	the process.
+
+    o	Using Q to exit a browser invoked at the top-level could lead to
+	the browser being invoked on all future top-level loops (PR#1721)
+
+    o	step(fit, direction="both") now uses both directions even if
+	no scope is supplied.
+
+    o	strwidth(), strheight() now give 0 on NA strings (as they
+	are no longer plotted). (PR#1739)
+
+    o	mtext(), persp(), plot.hclust() and title() no longer plot NA
+	character strings.
+
+    o	pdf() has been protected against the user who specified
+	non-existent fonts. (PR#1748)
+
+    o	dlnorm() returns zero for negative x argument. (PR#1781)
+
+    o	Printing 0 in octmode gave "" not "0". (PR#1759)
+
+    o	anova.glm() was ignoring a `dispersion' argument if given
+	multiple objects. (PR#1807)
+
+    o	model.matrix() with a `rhs ~ .' formula included columns with
+	duplicated names in the data frame, which caused subsequent
+	confusion (e.g. in prediction from the object).
+
+	model.matrix() was sometimes incorrectly determining the first
+	factor in a formula without an intercept.
+
+    o	termplot() now needs data= argument more rarely. (PR#828)
+
+    o	abline() on log scale doesn't draw -ve points. (PR#1243)
+
+    o	The Java search engine now works within Mozilla 1.0 and
+	Netscape 6.2.x / 7.0pr1.
+
+    o	unsplit() failed if f was a list of factors. (PR#1843)
+
+    o	The methods package generic version of primitives is now "sealed"
+	and cannot be redefined (it was always a bad idea to do so).
+
+    o	quantile() gave -Inf not NaN in some examples. (Related to PR#1852)
+
+    o	read.table() read too far in checking the file structure if
+	0 < nrows < 5 and more rows existed on the file. (PR1809)
+
+    o	loess() was not checking for too small a span (so no points
+	were included in the smoothing window).
+
+    o	match() was assuming that there was only one possible bit
+	pattern for a numeric NA, so some matches failed on Solaris
+	under some compiler options.
+
+    o	identical() no longer thinks NaN and as.double(NA) are identical.
+
+    o	pipe() can open in a binary mode even on Linux (where popen
+	cannot).
+
+    o	zero-column matrices were not being printed at all, not even
+	the row names.
+
+    o	polygon()'s `border' argument was incorrectly documented: in
+	particular `border = 0' plots in background colour.
+
+    o	delete.response() was losing the attribute set for safe
+	prediction. (PR#1840)
+
+    o	poly() was checking the degree against the number of points
+	even when predicting.
+
+    o	Comparison of a data frame and list failed due to typo. (PR#1889)
+
+    o	dput() and dump() attempt to check if writing succeeded. (PR#1884)
+
+    o	rep(1:2, 0) and hence array(1:2, 0) fail no longer.
+
+    o	apply(matrix("", 3, 0), 2, length) now works.
+
+    o	order(na.last = NA, decreasing = TRUE) now sorts in decreasing
+	order.	(PR#1906)
+
+    o	order(na.last=NA) failed if all args were of length 1 or all
+	were NA. (PR#1913, 1981)
+
+    o	source() would crash if the `keep.source = TRUE' and the input
+	contained a function with a line longer than 1024 chars. (PR#1900)
+
+	The limits on nesting of functions and on total function size
+	when the source is kept are now enforced.  As (incorrectly)
+	the source was always kept, this meant functions longer than
+	128Kb could crash R, even in packages.
+
+    o	lqs() and cov.rob() check that the quantile argument does not
+	exceed n-1.
+
+    o	grid() now also works with log coordinates active.
+
+    o	plot.table(tab, xlab="X", ylab="Y") now works as expected.
+
+    o	plot.formula(ask=FALSE) now works. (PR#1923)
+
+    o	as.list(<logical>) now works properly. (PR#1926).
+
+    o	The residual SSq printed from an aov() fit with weights is
+	now the weighted SSq.  (PR#1930)
+
+    o	aov() could still fail on multistrata models with very long
+	Error formulae.
+
+    o	try() could fail in BATCH use due to use of fflush(stdin).
+	Only seen on Solaris. (PR#1934)
+
+    o	title(main=list("main")) printed garbage, as did similar calls
+	using quote() instead of expression() for plotmath. (PR#1939)
+
+    o	deparse() dropped parentheses in some case where they were
+	needed. (PR#1119, 1737, 1928, at least)
+
+    o	pdf(onefile = FALSE) never incremented the file number beyond
+	two.
+
+    o	On Unix, protect against broken pipes where popen calls succeed
+	even though the command does not exist (and the glibc manual
+	says it should return NULL).  (PR#1959)
+
+    o	data.frame() was allowing explicit row.names with missing
+	values, but row names are required to be unique.
+
+    o	as.character(expression) was silently truncating to 60
+	characters: the help page claimed 500 which is now true.
+
+    o	as.hclust(x) now also works (as identity) for "hclust" objects.
+
+    o	NextMethod didn't work right in Ops.
+
+    o	dotchart() now obeys `xlim ='.
+
+    o	t(x) behaves when x is a (multivariate) time series. (PR#1998)
+
+    o	parse(text=x) no longer parses from stdin if length(x) is zero
+
+    o	binom.test() miscalculated p-value in some extreme cases
+
+    o	get("print.ts")(1) would segfault. It's now just an error.
+
+    o	cbind(NULL) {and similar} gave an error instead of NULL.
+
+    o	the complex version of solve(a,b) now also works if b is a
+	vector
+
+
+		CHANGES IN R VERSION 1.5.1
+
+
+NEW FEATURES
+
+    o	Enhancements to mathematical annotation of plots:
+
+	- expressions involving dot(<something>) now produce a dot accent
+	  above the <something> (initial patch from Ben Bolker).
+
+	- within an expression, the symbol partialdiff is now converted
+	  to a partial differential symbol (greek delta).
+
+    o	smooth.spline() has a new argument `nknots' allowing to set the
+	default number of knots (when `all.knots = FALSE' as per default).
+
+
+BUG FIXES
+
+    o	Rdconv now skips CRs in input files, even on Unix.
+
+    o	readBin() had a (very slow) memory leak if changing size or reading
+	character strings.  writeChar() had a memory leak.
+
+    o	polygon() and rect() with lty = "blank" were omitting the fill
+	colour (if present).  symbols(circles=, lty="blank") was
+	drawing the border of the disks.
+
+    o	Subsetting non-existent rows in a data frame would produce
+	missing row names, which are not allowed.
+
+    o	On Unix, R_PAPERSIZE was set to '' instead of 'a4' as default on
+	systems without paperconf.
+
+    o	Under GNOME, capabilities() now reports correctly that X11, png
+	and jpeg are available (if they are under X11).
+
+    o	The names of some results of unlist() had the wrong internal
+	length, which confused paste().	 Both have been corrected. (PR#1524)
+
+    o	RweaveLatex.Rd had unbalanced braces in section "Supported
+	Options".
+
+    o	merge() with multiple and differently-named match columns
+	failed. (PR#1510)
+
+    o	NAs in right-justified unquoted character matrices were being
+	mis-aligned.  This mainly affected printing data frames.
+
+    o	predict.*bSpline() bugs extrapolating for deriv >= 1 (PR#1473),
+	and predict.[bn]s bug e.g. for bs(x), reported by Ch.Sangiorgio.
+
+    o	qr.X was failing if n < p.  Fixed, but only in the case when
+	pivoting does not occur. (PR#1519)
+
+    o	xx[, 1:3] was returning a list if xx had only one row, even
+	though xx[1, 1:3] was a data frame. (PR#1530)
+
+    o	nls() was reporting incorrectly the number of iterations if the
+	maximum was reached.
+
+    o	rbind.data.frame() was coercing logical columns to factors.
+	(PR#1536)
+
+    o	Rprof(NULL) or Rprof("") called when not profiling caused a
+	segfault: now silently ignored.	 (PR#1471)
+
+    o	On systems (e.g. Windows) using R's own code for expm1, the
+	values were wrong for large negative x, and this affected
+	pweibull(), for example.
+
+    o	prettyNum(*, bigmark=*) added extra marks in some cases. (PR#1548)
+
+    o	cut.dendrogram() failed in some cases. (PR#1552)
+
+    o	The links in refman.pdf were broken by a single invalid
+	\alias{}. Now Rdconv checks more comprehensively. (PR#1550)
+
+    o	predict(smooth.spline(x,*), deriv =1) did not predict at all `x'
+	values, and
+	smooth.spline(x,*, all.knots = TRUE) used much too much memory
+	when length(x) was largish.
+	smooth.spline(*, .... trace = TRUE ..) is a bit more self-explaining.
+
+    o	pexp(x, log=TRUE) and pweibull(*) were losing precision for large x.
+
+    o	Workaround for NetBSD bug in compiling dounzip.c. (PR#1565/6)
+
+    o	Conversions to numeric in type.convert were always treating "NA" as
+	missing whatever the setting of na.strings. (PR#1568)
+
+    o	R CMD check now deals correctly with package names containing a
+	'.' in the Depends field of a DESCRIPTION file. (PR#1591)
+
+    o	pbinom() and pbinom() were misssing the "fuzz" that other discrete
+	distributions have in order to guard against truncation.
+
+    o	The "=" assignment operator behaved as "<<-" in some constructions
+	with composite left-hand sides.
+
+    o	Added print.AsIs() method to ensure "AsIs" objects are printed
+	by the method for their real class. (PR#1587)
+
+    o	mosaicplot(*, color = v) now recycles v[] if needed.
+
+    o	Calling dev.control("inhibit") with no graphics device open
+	crashed R. (PR#1605)
+
+    o	read.dcf() was not checking that memory allocation succeeded.
+
+    o	The C function fprec might overflow for > 16 digits, showing
+	up in example(str) on some platforms.
+
+    o	Changes to the methods package:
+
+	- Nonstandard generic function definitions given to
+	  setGeneric now work; these were previously ignored.
+
+	- Classes that extend matrix, etc. as the data part previously lost
+	  their attributes.
+
+	- There were bugs in distinguishing methods for "missing" from
+	  methods for "ANY".
+
+	- Some coerce methods were not selected correctly when the two classes
+	  were related by an "is" relation.
+
+	- extends() now works correctly if given a class definition rather
+	  than a name.
+
+	- class()<- was leaving in an explicit class attribute for basic data
+	  types.
+
+	- Method signatures including arguments following "..." in the
+	  argument list of the generic didn't work.
+
+    o	par(mgp = v) now allows negative `v' (S-compatibly and sensibly).
+
+    o	identify.hclust() masked its `x' argument and so failed.
+
+    o	System rint was never being used in fround.c.
+
+    o	round/trunc.POSIXt were erroneously retaining information on
+	DST. (PR#1543)
+
+    o	tcltk package didn't work with tcl8.0.x.  Compatibility code
+	inserted (PR#1640, thanks to Rene' Bertin for helping out with
+	this).
+
+    o	selfStart() {pkg "nls"} now works again when parameter names are
+	not specified (but implicit).
+
+    o	legend() now treats lty="0" properly (as solid).
+
+    o	ARMAacf was failing if 0 < p < q+1: it failed to say that ar needed
+	to be padded with zeroes, and now the code does that.
+
+    o	old.packages() was assuming a bundle was installed in only one
+	library, and so update.packages() would only update a bundle
+	in the first location in lib.loc.
+
+    o	fisher.test() could miscalculate odds ratio and confidence
+	interval for tables with large entries, due to numerical
+	overflow.
+
+    o	Using lty = "1" (or "10") does no longer produce invalid
+	postscript or pdf.  Using "0" in a character lty is currently not
+	implemented device-independently and needs more fixing.
+
+    o	ccf(plot = FALSE) was returning a spurious extra 0 at lag 0.
+
+    o	On console-based versions of R (Windows, GNOME, probably
+	Mac OS) warning/error messages longer than 8192 chars could
+	crash R. (PR#1651)
+
+    o	Comparisons between objects of mode "call" using "==" now return
+	TRUE if both sides deparse to the same string (as always intended).
+
+    o	HoltWinters() now initializes correctly in the exponential
+	smoothing case, and plot.HoltWinters() allows lty to be set.
+
+    o	fisher.test() crashed due to corruption on some large
+	problems.  It also crashed on tables with total one. (PR#1662)
+
+    o	The substitution code for strptime (used e.g. on Windows)
+	cached the month names and so did not recognise locale changes
+	during an R session, as used by get.hist.quote{tseries}.
+	Caching has been supressed.  (PR#1116)
+
+    o	Some functions used the non-existing error() function instead
+	of stop().
+
+    o	vector("complex",n)  doesn't return random garbage anymore.
+
+
+		CHANGES IN R VERSION 1.5.0
+
+
+USER-VISIBLE CHANGES
+
+    o	XDR support is now guaranteed to be available, so the default
+	save format will always be XDR binary files, and it is safe to
+	distribute data in that format.	 (We are unaware of any
+	platform that did not support XDR in recent versions of R.)
+
+	gzfile() is guaranteed to be available, so the preferred
+	method to distribute sizeable data objects is now via
+	save(compress = TRUE).
+
+    o	pie() replaces piechart() and defaults to using pastel colours.
+
+    o	formatC has new arguments (see below) and formatC(*, d = <dig>)
+	is no longer valid and must be written as formatC(*, digits = <dig>).
+
+    o	Missingness of character strings is treated much more
+	consistently, and the character string "NA" can be used as a
+	non-missing value.
+
+    o	summary.factor() now uses a stable sort, so the output will
+	change where there are ties in the frequencies.
+
+
+NEW FEATURES
+
+    o	Changes in handling missing character strings:
+
+	-  "NA" is no longer automatically coerced to a missing value
+	   for a character string.  Use as.character(NA) where a missing
+	   value is required, and test via is.na(x) not x == "NA".
+	   String "NA" is still converted to missing by scan() and
+	   read.table() unless `na.strings' is changed from the default.
+
+	-  A missing character string is now printed as `NA' (no quotes)
+	   amongst quoted character strings, and `<NA>' if amongst
+	   unquoted character strings.
+
+	-  axis() and text.default() omit missing values of their
+	   `labels' argument (rather than plotting "NA").
+
+	-  Missing character strings are treated as missing much more
+	   consistently, e.g. in logical comparisons and in sorts.
+	   identical() now differentiates "NA" from the missing string.
+
+
+    o	Changes in package methods:
+
+	-  New function validSlotNames().
+
+	-  Classes can explicitly have a "data part", formally
+	   represented as a .Data slot in the class definition, but
+	   implemented consistently with informal structures.  While the
+	   implementation is different, the user-level behavior largely
+	   follows the discussion in "Programming with Data".
+
+       -   A "next method" facility has been provided, via the function
+	   callNextMethod().  This calls the method that would have been
+	   selected if the currently active method didn't exist.  See
+	   ?callNextMethod().  This is an extension to the API.
+
+       -   Classes can have initialize methods, which will be called
+	   when the function new() is used to create an object from the
+	   class.  See ?initialize.  This is an extension to the API.
+
+       -   The logic of setGeneric() has been clarified, simplifying
+	   nonstandard generic functions and default methods.
+
+
+    o	Changes in package tcltk:
+
+	-  Now works with the GNOME user interface.
+
+	-  Several new functions allow access to C level Tcl objects.
+	   These are implemented using a new `tclObj' class, and this
+	   is now the class of the return value from .Tcl() and tkcmd().
+
+
+    o	Changes in package ts:
+
+	-  More emphasis on handling time series with missing values
+	   where possible, for example in acf() and in the
+	   ARIMA-fitting functions.
+
+	-  New function arima() which will replace arima0() in due
+	   course.  Meanwhile, arima0() has been enhanced in several
+	   ways.  Missing values are accepted.	Parameter values can
+	   be initialized and can held fixed during fitting.  There is
+	   a new argument `method' giving the option to use
+	   conditional-sum-of-squares estimation.
+
+	-  New function arima.sim().
+
+	-  New datasets AirPassengers, Nile, UKgas and WWWusage,
+	   and a expanded version of UKDriverDeaths (as a multiple
+	   time series Seatbelts).
+
+	-  New generic function tsdiag() and methods for arima and arima0,
+	   to produce diagnostic plots.	 Supersedes arima0.diag().
+
+	-  New functions ARMAacf() and ARMAtoMA() to compute
+	   theoretical quantities for an ARMA process.
+
+	-  New function acf2AR() to compute the AR process with a given
+	   autocorrelation function.
+
+	-  New function StructTS() to fit structural time series, and
+	   new generic function tsSmooth() for fixed-interval
+	   state-space smoothing of such models.
+
+	-  New function monthplot() (contributed by Duncan Murdoch).
+
+	-  New functions decompose() and HoltWinters() (contributed by
+	   David Meyer) for classical seasonal decomposition and
+	   exponentially-weighted forecasting.
+
+
+    o	An extensible approach to safe prediction for models with e.g.
+	poly(), bs() or ns() terms, using the new generic function
+	makepredictcall().  Used by most model-fitting functions
+	including lm() and glm().  See ?poly, ?cars and ?ns for
+	examples.
+
+    o	acosh(), asinh(), atanh() are guaranteed to be available.
+
+    o	axis() now omits labels which are NA (but still draws the
+	tick mark.
+
+    o	Connections to bzip2-ed files via bzfile().
+
+    o	chol() allows pivoting via new argument `pivot'.
+
+    o	cmdscale() now takes rownames from a dist object `d' as well
+	as from a matrix; it has new arguments `add' (as S) and `x.ret'.
+
+    o	crossprod() handles the case of real matrices with y = x
+	separately (by accepting y = NULL).  This gives a small
+	performance gain (suggestion of Jonathan Rougier).
+
+    o	deriv/deriv3() can now handle expressions involving pnorm and
+	dnorm (with a single argument), as in S-PLUS.
+
+    o	New function expm1() both in R and in C API, for accurate exp(x)-1;
+	precision improvement in pexp() and pweibull() in some cases.
+	(PR#1334-5)
+
+    o	New function findInterval() {using new C entry point
+	findInterval, see below}.
+
+    o	formatDL() now also works if both items and descriptions are
+	given in a suitable list or matrix.
+
+    o	gzfile() is guaranteed to be available, and hence the
+	`compress' option to save() and save.image().
+
+    o	hist() now has a method for date-time objects.
+
+    o	library() now checks the dependence on R version (if any) and
+	warns if the package was built under a later version of R.
+
+    o	library(help = PKG) now also returns the information about the
+	package PKG.
+
+    o	Added function logb(), same as log() but for S-PLUS
+	compatibility (where log now has only one argument).
+
+    o	New na.action function na.pass() passes through NAs unaltered.
+
+    o	piechart() has been renamed to pie(), as piechart is a Trellis
+	function for arrays of pie charts.  The default fill colours
+	are now a set of pastel shades, rather than par("bg").
+
+    o	plclust() in package mva, for more S-PLUS compatibility.
+
+    o	poly() now works with more than one vector or a matrix as input,
+	and has a predict method for objects created from a single
+	vector.
+
+    o	polyroot() now handles coefficient vectors with terminal
+	zeroes (as in S).
+
+    o	New prettyNum() function used in formatC() and format.default()
+	which have new optional arguments `big.mark', `big.interval',
+	`small.mark', `small.interval', and `decimal.mark'.
+
+    o	print.coefmat() has a new argument 'eps.Pvalue' for determining
+	when small P-values should be printed as  "< {...}".
+
+    o	The recover() function has been moved to the base package.
+	This is an interactive debugging function, usually a good
+	choice for options(error=).  See ?recover.
+
+    o	rep() has a new argument `each' for S-PLUS compatibility.
+	The internal call is made available as rep.int(), again for
+	help in porting code.
+
+    o	New functions rowSums(), colSums(), rowMeans() and colMeans():
+	versions of apply() optimized for these cases.
+
+    o	rug() now has a "..." argument allowing its location to be specified.
+
+    o	scan() can have NULL elements in `what', useful to save space
+	when columns need to be discarded.
+
+    o	New option by = "DSTday" for seq.POSIXt().
+
+    o	Changes to sorting:
+
+	-  sort(), sort.list() and order() have a new argument
+	   `decreasing' to allow the order to be reversed whilst
+	   still preserving ties.
+
+	-  sort() has an option to use quicksort in some cases
+	   (currently numeric vectors and increasing order).
+
+	-  The default Shell sort is Sedgewick's variant, around 20%
+	   faster, and pre-screening for NAs speeds cases without any
+	   NAs several-fold.
+
+	-  sort.list() (and order with just one vector) is several
+	   times faster for numeric, integer and logical vectors, and
+	   faster for character vectors.
+
+    o	New assignment forms of split(); new function unsplit().
+
+    o	New sprintf() function for general C like formatting, from
+	Jonathan Rougier.
+
+    o	Argument `split' of summary.{aov,aovlist} is now implemented.
+
+    o	summary.princomp() now has a separate print() method, and
+	`digits' is now an argument to the print method and not to
+	summary.princomp itself.
+
+    o	An extended version of the trace() function is available,
+	compatible with the function in S-PLUS.	 Calls to R functions
+	can be inserted on entry, on exit, and before any
+	subexpressions. Calls to browser() and recover() are useful.
+	See ?trace.
+
+    o	New function TukeyHSD() for multiple comparisons in the results
+	of aov().  (Formerly function Tukey in package Devore5 by
+	Douglas Bates.)
+
+    o	New read-only connections to files in zip files via unz().
+
+    o	warning() has new argument `call.', like stop()'s.
+
+    o	zip.file.extract() is no longer provisional and has an
+	"internal" method available on all platforms.
+
+    o	Methods for [, [<- and as.data.frame() for class "POSIXlt".
+
+    o	Much improved printing of matrices and arrays of type "list".
+
+    o	The "Knuth-TAOCP" option for random-number generation has been
+	given an option of using the 2002 revision.  See ?RNG for the
+	details: the R usage already protected against the
+	reported `weakness'.
+
+    o	min/max of integer(0) (or NULL) is now Inf/-Inf, not an
+	extreme integer.
+
+
+DEPRECATED & DEFUNCT
+
+    o	.Alias, reshapeLong(), reshapeWide() are defunct.
+
+    o	arima0.diag() (package ts) is deprecated: use tsdiag() instead.
+
+    o	piechart() is deprecated; renamed to pie().
+
+
+DOCUMENTATION CHANGES
+
+    o	`Writing R Extensions' now has an example of calling R's
+	random numbers from FORTRAN via C.
+
+    o	R itself and all R manuals now have ISBN numbers, please use
+	them when citing R or one of the manuals.
+
+
+INSTALLATION CHANGES
+
+    o	The configure script used when building R from source under Unix
+	is now generated using Autoconf 2.50 or later, which has the
+	following 'visible' consequences:
+
+	- By default, configure no longer uses a cache file.  Use the
+	  command line option '--config-cache' (or '-C') to enable
+	  caching.
+
+	- Key configuration variables such as 'CC' are now *precious*,
+	  implying that the variables
+
+	  * no longer need to be exported to the environment and can and
+	    should be set as command line arguments;
+
+	  * are kept in the cache even if not specified on the command
+	    line, and checked for consistency between two configure runs
+	    (provided that caching is used, see above);
+
+	  * are kept during automatic reconfiguration as if having been
+	    passed as command line arguments, even if no cache is used.
+
+	  See the variable output section of 'configure --help' for a
+	  list of all these variables.
+
+    o	Configure variable 'FC' is deprecated, and options '--with-g77',
+	'--with-f77' and '--with-f2c' are defunct.  Use configure
+	variable 'F77' to specify the FORTRAN 77 compiler, and 'F2C' to
+	specify the FORTRAN-to-C compiler and/or that it should be used
+	even if a FORTRAN 77 compiler is available.
+
+    o	Non-standard directories containing libraries are specified
+	using configure variable 'LDFLAGS' (not 'LIBS').
+
+
+UTILITIES
+
+    o	Sweave(), Stangle() and friends in package tools.  Sweave allows
+	mixing LaTeX documentation and R code in a single source file:
+	the R code can be replaced by its output (text, figures) to
+	allow automatic report generation.  Sweave files found in
+	package subdir 'inst/doc' are automatically tested by R CMD
+	check and converted to PDF by R CMD build, see the section on
+	package vignettes in the 'Writing R Extensions' manual.
+
+    o	Rdconv can convert to the S4 '.sgml' format.
+
+    o	R::Utils.pm masks some platform dependencies in perl code by
+	providing global variables like R_OSTYPE or wrapper functions
+	like R_runR().
+
+    o	If a directory 'inst/doc' is present in the sources of a
+	package, the HTML index of the installed package has a link to
+	the respective subdirectory.
+
+    o	R CMD check is more stringent: it now also fails on malformed
+	'Depends' and 'Maintainer' fields in 'DESCRIPTION' files, and on
+	unbalanced braces in Rd files.	It now also provides pointers to
+	documentation for problems it reports.
+
+    o	R CMD check, build and INSTALL produce outline-type output.
+
+    o	QC functions in package 'tools' now return the results of their
+	computations as objects with suitable print() methods.	By
+	default, output	is only produced if a problem was found.
+
+    o	New utility R CMD config to get the values of basic R configure
+	variables, or the header and library flags necessary for linking
+	against R.
+
+    o	Rdindex and maketitle.pl require perl 5.005, as Text::Wrap::fill
+	was only introduced at 5.004_05.
+
+
+C-LEVEL FACILITIES
+
+    o	All the double-precision BLAS routines are now available,
+	and package writers are encouraged not to include their own
+	(so enhanced ones will be used if requested at configuration).
+
+    o	findInterval(xt[],n,x,...) gives the index (or interval number)
+	of x in the sorted sequence xt[].  There's an
+	F77_SUB(interv)(.) to be called from Fortran; this used to be
+	part of predict.smooth.spline's underlying Fortran code.
+
+    o	Substitutes for (v)snprintf will be used if the OS does not
+	supply one, so tests for HAVE_(V)SNPRINTF are no longer needed.
+
+    o	The DUP and NAOK arguments in a .C() call are not passed on
+	to the native routine being invoked.  Any code that relied on
+	the old behaviour will need to be modified.
+
+    o	log1p is only provided in Rmath.h if it is not provided by the
+	platform, in which case its name is not remapped, but a
+	back-compatibility entry point Rf_log1p is provided.
+	Applications using libRmath may need to be re-compiled.
+
+    o	The methods used by optim() and integrate() have entry points in
+	R_ext/Applic.h and have a more general interface documented in
+	`Writing R Extensions'.
+
+    o	The bessel_? entry points are now suitable to be called
+	repeatedly from code loaded by .C().  (They did not free
+	memory until .C() returned in earlier versions of R.)
+
+    o	Server sockets on non-Windows platforms now set the SO_REUSEADDR
+	socket option.	This allows a server to create simultanous
+	connections to several clients.
+
+    o	New quicksort sorting (for numeric no-NA data), accessible from
+	C as R_qsort() etc and from Fortran as qsort4() and qsort3().
+
+    o	Rinternals.h no longer includes fcntl.h, as this is not an
+	ISO C header and cannot be guaranteed to exist.
+
+    o	Fortran subroutines are more correctly declared as `extern void'
+	in R_exts/Applic.h and R_exts/Linpack.h.
+
+
+BUG FIXES
+
+    o	The calculation of which axes to label on a persp() plot was
+	incorrect in some cases.
+
+    o	Insufficient information was being recorded in the display list
+	for the identify() function.  In particular, the "plot="
+	argument was ignored when replaying the display list. (PR#1157)
+
+    o	The vertical alignment of mathematical annotations was wrong.
+	When a vertical adjustment was not given, it was bottom-adjusting
+	i.e,. it was treating adj=0 as adj=c(0, 0).  It now treats
+	adj=0 as adj=c(0, 0.5) as for "normal" text. (PR#1302)
+
+    o	the man page (doc/R.1) wasn't updated with the proper VERSION.
+
+    o	smooth.spline() had a "df = 5" default which was never used and
+	hence extraneous and misleading.
+
+    o	read.fwf() was interpreting comment chars in its call to scan:
+	replaced by a call to readlines(). (PR#1297/8)
+
+    o	The default has been changed to scan(comment.char="") for
+	consistency with earlier code (as in the previous item).
+
+    o	bxp(*, notch.frac = f) now draws the median line correctly.
+
+    o	Current versions of gs were rotating the output of
+	bitmap(type = "pdfwrite") and when converting the output
+	of postscript() to PDF; this has been circumvented by
+	suppressing the %%Orientation comment for non-standard
+	paper sizes.
+
+    o	plot.ts(x, log = "y") works again when x has 0s, also for matrix x.
+
+    o	add1(), drop1(), step() work again on glm objects with
+	formulae with rhs's containing `.'.  (Broken by a `bug fix'
+	(in reality an API change) in 1.2.1.)
+
+    o	optim(method="BFGS") was not reporting reaching `maxit'
+	iterations in the convergence component of the return value.
+
+    o	aov() and model.tables() were failing on multistrata models with
+	excessively long Error formula. (PR#1315)
+
+    o	Transparent backgrounds on png() devices on Unix-alikes had
+	been broken during the driver changes just prior to 1.4.0.
+	(They worked correctly on Windows.)
+
+    o	demo(is.things) didn't work properly when the methods package was
+	attached.
+
+    o	match(), unique() and duplicated() were not declaring all NaNs to be
+	equal, yet not always distinguishing NA and NaN.  This was
+	very rare except for data imported as binary numbers.
+
+    o	The error handler recover() protects itself against errors in
+	dump.frames and uses a new utility, limitedLabels, to generate
+	names for the dump that don't inadvertently blow the limit on
+	symbol length.	(TODO:	either fix dump.frames accordingly or
+	remove the limit--say by truncating very long symbols?)
+
+    o	se.contrasts() works more reliably with multistratum models,
+	and its help page has an example.
+
+    o	summary.lm() was not returning r.squared nor adj.r.squared for
+	intercept-only models, but summary.lm.null() was returning
+	r.squared but not adj.r.squared.  Now both are always
+	returned.  Neither returned f.statistic, and that is now
+	documented.
+
+    o	Subsetting of matrices of mode list (or other non-atomic
+	modes) was not implemented and gave incorrect results without
+	warning. (PR#1329)
+	Under some circumstances subsetting of a character matrix
+	inserted NA in the wrong place.
+
+    o	abs() was not being treated as member of the Math group
+	generic function, so e.g. its method for data frames was not
+	being used.
+
+    o	set.seed(seed, "default") was not using the `seed' value (only
+	for kind = "default").
+
+    o	logLik.lm() now uses  "df = p + 1" again (`+ sigma'!).
+
+    o	logLik.glm() was incorrect for families with estimated dispersion.
+
+    o	Added strptime() workaround for those platforms (such as
+	Solaris) that returned missing components as 0.	 Missing
+	days are now detected, but missing years will still
+	be interpreted as 1900 on such platforms.
+
+    o	Inheritance in formal classes (the methods package) works
+	breadth-first as intuition would expect.
+
+    o	The new() function in package `methods' works better (maybe even
+	correctly?) for the various combinations of super-classes and
+	prototypes that can be supplied as unnamed arguments.
+
+    o	Internal code allowed one more connection to be allocated than
+	the table size, leading to segfaults. (PR#1333)
+
+    o	If a user asks to open a connection when it is created and
+	it cannot be opened, the connection is destroyed before returning
+	from the creation call.	 (related to PR#1333)
+
+    o	Sys.putenv() was not using permanent storage. (PR#1371)
+
+    o	La.svd() was not coercing integer matrices. (PR#1363)
+
+    o	deriv(3) now reports correctly the function it cannot find
+	the derivatives table.
+
+    o	The GNOME user interface was over-enthusiastic about setting
+	locale information.  Now only LC_CTYPE, LC_COLLATE and LC_TIME
+	are determined by the user's environment variables (PR#1321)
+
+    o	In X11, locator() would sound the bell even if "xset b off"
+	had been set.
+
+    o	merge() could be confused by inconsistent use of as.character()
+	giving leading spaces.
+
+    o	[pqr]binom() no longer silently round the `size' argument,
+	but return NaN (as dbinom() does). (PR#1377)
+
+    o	Fixed socket writing code to block until all data is written.
+	Fixed socket reading code to properly handle long reads and reads
+	with part of the data in the connection buffer.
+
+    o	Allow sockets to be opened in binary mode with both open="ab" and
+	open="a+b".
+
+    o	levels<-.factor() was using incorrectly list values longer than
+	the number of levels (PR#1394), and incorrectly documented
+	that a character value could not be longer than the existing
+	levels.
+
+    o	The pdf() device was running out of objects before the
+	documented 500 page limit.  Now there is no limit.
+
+    o	legend() did not deal correctly with `angle' arguments. (PR#1404)
+
+    o	sum() tried to give an integer result for integer arguments,
+	but (PR#1408)
+	- this was not documented
+	- it sometimes warned on overflow, sometimes not
+	- it was order-dependent for a mixture of integer and numeric args.
+
+    o	mean() gave (numeric) NA if integer overflow occurred in sum(),
+	but now always works internally with numeric (or complex) numbers.
+
+    o	sort.list() and order() were treating NA_STRING as "NA".
+
+    o	sort.list(na.last = NA) was not implemented.
+
+    o	seq.default() was returning only one element for a relative
+	range of less than about 1e-8, which was excessively conservative.
+	(PR#1416)
+
+    o	tsp(x) <- NULL	now also works after library(methods).
+
+    o	persp(shade=) was not working correctly with the default
+	col=NULL if this was transparent. (PR#1419)
+
+    o	min/max(complex(0)) was returning a random value.
+
+    o	range() gave c(1, 1).
+
+    o	range(numeric(0)) is now c(Inf, -Inf), as it was documented to be.
+
+    o	print.ts() was occasionally making rounding errors in the labels
+	for multiple calendar time series.
+
+    o	Rdconv was not handling nested \describe{} constructs when
+	converting to HTML (PR#1257) and not fixing up mal-formed
+	\item fields in \describe{} when converting to text (PR#1330).
+
+    o	filled.contour() was not checking consistency of x, y, z.
+	(PR#1432)
+
+    o	persp.default() no longer crashes with non-character labels.
+	(PR#1431)
+
+    o	fft() gave incorrect answers for input sizes 392, 588, 968, 980 ....
+	(PR#1429)
+
+    o	det(method = "qr") gave incorrect results for numerically
+	singular matrices. (PR#1244)
+
+    o	barplot() now allows the user to control `xpd'. (PR#1088, 1398)
+
+    o	library() (with no arguments) no longer fails on empty TITLE files.
+
+    o	glm() was failing if both offset() and start were specified. (PR#1421)
+
+    o	glm() might have gotten confused if both step-shortening and
+	pivoting had occurred (PR#1331).  Step-halving to avoid the
+	boundary of feasible values was not working.
+
+    o	Internal representation of logical values was not being
+	treated consistently. (Related to PR#1439)
+
+    o	The c() function sometimes inserted garbage in the name vector
+	for some types of objects, e.g.	 names(c(ls, a=1)).
+
+    o	Fixed bug in `$' that could cause mutations on assignment (PR#1450).
+
+    o	Some X servers displayed random bytes in the window title of
+	graphics windows (PR#1451)
+
+    o	The X11 data editor would segfault if closed with window manager
+	controls (PR#1453)
+
+    o	Interrupt of Sys.sleep() on UNIX no longer causes subsequent
+	Sys.sleep() calls to segfault due to infinite recusion.
+
+    o	Eliminated a race condition that could cause segfaults when a SIGINT
+	was received while handling an earlier SIGINT.
+
+    o	rect(lty = "blank") was incorrectly drawing with a dashed line.
+
+    o	type.convert() was not reporting incorrectly formatted complex
+	inputs. (PR#1477)
+
+    o	readChar() was not resetting vmax, so causing memory build-up.
+	(PR#1483)
+
+
+
+	**************************************************
+	*						 *
+	*	       1.4 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 1.4.1
+
+
+BUG FIXES
+
+    o	scan(multi.line = FALSE) now always gives an immediate error
+	message if a line is incomplete. (As requested in PR#1210)
+
+    o	read.table() is no longer very slow in processing comments:
+	moved to C code and fewer lines checked.
+
+    o	type.convert() could give stack imbalance warnings if used
+	with as.is = TRUE.
+
+    o	predict.mlm ignored newdata (PR#1226) and also offsets.
+
+    o	demo(tkttest) was inadvertently changed in 1.4.0 so that it would
+	evaluate the requested test, but not display the result.
+
+    o	stars(scale = TRUE) (the default) now works as documented (and
+	as S does).  Previously it only scaled the maximum to 1. (PR#1230)
+
+    o	d0 <- data.frame(a = 0); data.matrix(d0[0, 0]) and
+	data.matrix(d0[, 0]) now work.
+
+    o	plot(multiple time series, plot.type = "single") was computing
+	`ylim' from the first series only.
+
+    o	plot.acf() has a new `xpd = par("xpd")' argument which by default
+	*does* clipping (of the horizontal lines) as desired (xpd = NA was
+	used before, erronously in most cases).
+
+    o	predict(smooth.spline(.), deriv = 1) now works.
+
+    o	identify() failed when x is a structure/matrix. (PR#1238)
+
+    o	getMethod() returns NULL when optional=TRUE as promised in the
+	documentation.
+
+    o	setMethod() allows "..." to be one of the arguments omitted in
+	the method definition (but so far no check for ... being missing)
+
+    o	Allow round() to work again on very large numbers (introduced
+	in fixing PR#1138). (PR#1254)
+
+    o	Rinternals.h is now accepted by a C++ compiler.
+
+    o	type.convert() was failing to detect integer overflow.
+
+    o	piechart() was defaulting to foreground colour (black) fills
+	rather than background (as used in 1.3.1 and earlier).	Now
+	background is used, but be aware that as from 1.4.0 this may
+	be transparent.
+
+    o	La.eigen(*, only.values=TRUE) does not segfault anymore in one
+	branch (PR#1262).
+
+    o	cut() now produces correct default labels even when
+	include.lowest = TRUE (PR#1263).
+
+    o	reformulate() works properly with a response.
+
+    o	cmdscale(*, k = 1) now works properly.
+
+    o	Options by = "month" and "year" to seq.POSIXt() will always
+	take account of changes to/from daylight savings time: this
+	was not working on some platforms.
+
+    o	glm.fit.null() now accepts all the arguments of glm.fit() (it
+	could be called from glm.fit with arguments it did not
+	accept), and is now documented.
+
+    o	cov.wt(cbind(1), cor = TRUE) now works.
+
+    o	predict(glm.object, se.fit = TRUE) was failing if the fit
+	involved an offset.
+
+    o	detach() on package:base would crash R. (PR#1271)
+
+    o	print or summary on a manova() object with no terms, no names on
+	the response and intercept = FALSE (which is not sensible)
+	would give an error.
+
+    o	seek() on file connections was ignoring the `origin' argument.
+
+    o	Fixed new environment handling in library() to avoid forcing
+	promises created by delay()
+
+    o	arima0() could leak memory: now released via on.exit().
+
+    o	qr.coef(qr,*) now keeps the names of qr$qr.
+
+    o	read.00Index() no longer fails on data indexes not generated by
+	Rdindex (PR#1274).
+
+
+		CHANGES IN R VERSION 1.4.0
+
+
+USER-VISIBLE CHANGES
+
+    [This is a new section to highlight changes in behaviour, which
+    may be given in more detail in the following sections.
+    Many bug fixes are also user-visible changes.]
+
+    o	The default save format has been changed, so saved workspaces
+	and objects cannot (by default) be read in earlier versions of R.
+
+    o	The number of bins selected by default in a histogram uses
+	the correct version of Sturges' formula and will usually be
+	one larger.
+
+    o	data.frame() no longer converts logical arguments to factors
+	(following S4 rather than S3).
+
+    o	read.table() has new arguments `nrows' and `colClasses'.  If the
+	latter is NA (the default), conversion is attempted to
+	logical, integer, numeric or complex, not just to numeric.
+
+    o	model.matrix() treats logical variables as a factors with
+	levels c(FALSE, TRUE) (rather than 0-1 valued numerical
+	variables).  This makes R compatible with all S versions.
+
+    o	Transparency is now supported on most graphics devices.
+	This means that using par("bg"), for example in legend(), will
+	by default give a transparent rather than opaque background.
+
+    o	[dpqr]gamma now has third argument `rate' for S-compatibility
+	(and for compatibility with exponentials).  Calls which use
+	positional matching may need to be altered.
+
+    o	The meaning of spar = 0 in smooth.spline() has changed.
+
+    o	substring() and substring()<- do nothing silently on a
+	character vector of length 0, rather than generating an
+	error.	This is consistent with other functions and with S.
+
+    o	For compatibility with S4, any arithmetic operation using a
+	zero-length vector has a zero-length result.  (This was
+	already true for logical operations, which were compatible
+	with S4 rather than S3.)
+
+    o	undoc() and codoc() have been moved to the new package `tools'.
+
+    o	The name of the site profile now defaults to
+	`R_HOME/etc/Rprofile.site'.
+
+    o	The startup process for setting environment variables now first
+	searches for a site environment file (given by the environment
+	variable `R_ENVIRON' if set or `R_HOME/etc/Renviron.site' if
+	not), *and* then for a user `.Renviron' file in the current or
+	the user's home directory.
+
+    o	Former stars(*, colors = v) must now be stars(*, col.segments = v).
+
+    o	The default methods for La.svd and La.eigen have changed and
+	so there may be sign changes in singular/eigen vectors,
+	including in cancor, cmdscale, factanal, princomp and varimax.
+
+
+NEW FEATURES
+
+    o	Transparency is now supported on most graphics devices.
+	Internally colors include an alpha channel for opacity, but at
+	present there is only visible support for transparent/opaque.
+	The new color "transparent" (or NA or "NA") is transparent,
+	and is the default background color for most devices.  Those
+	devices (postscript, XFig, PDF, Windows metafile and printer)
+	that previously treated bg = "white" as transparent now have
+	"transparent" as the default and will actually print "white".
+	(NB: you may have bg = "white" saved in .Postscript.options in
+	your workspace.)
+
+    o	A package `methods' has been added, containing formal classes
+	and methods ("S4" methods), implementing the description in
+	the book "Programming with Data".  See "?Methods" and the
+	references there for more information.
+
+	- In support of this, the "@" operator has been added to the
+	  grammar.
+
+	- Method dispatch for formal methods (the standardGeneric
+	  function), is now a primitive. Aside from efficiency issues,
+	  this allows S3-style generics to also have formal methods
+	  (not really recommended in the long run, but it should at
+	  least work).	The C-level dispatch is now implemented for
+	  primitives that use either DispatchGroup or DispatchOrEval
+	  internally.
+
+	- A version of the function "plot" in the methods package has
+	  arguments "x" and "y", to allow methods for either or both.
+	  See "?setMethod" for examples of such methods.
+
+	- The methods package now uses C-level code (from within
+	  DispatchOrEval) to dispatch any methods defined for
+	  primitive functions.	As with S3-style methods, methods can
+	  only be defined if the first argument satisfies is.object(x)
+	  (not strictly required for formal methods, but imposed for
+	  now for simplicity and efficiency).
+
+    o	Changes to the tcltk package:
+
+	- New interface for accessing Tcl variables, effectively
+	  making the R representations lexically scoped. The old form
+	  is being deprecated.
+
+	- Callbacks can now be expressions, with slightly unorthodox
+	  semantics. In particular this allows bindings to contain
+	  "break" expressions (this is necessary to bind code to
+	  e.g. Alt-x without having the key combination also insert an
+	  "x" in a text widget.)
+
+	- A bunch of file handling and dialog functions (previously
+	  only available via tkcmd) have been added
+
+    o	The "?" operator is now an actual function.  It can be used
+	(as always) as a unary operator (?plot) and the grammar now
+	allows it as a binary operator, planned to allow
+	differentiating documentation on the same name but different
+	type (class?matrix, for example).  So far, no such
+	documentation exists.
+
+    o	New methods AIC.default() and logLik.glm(), also fixing
+	AIC(<glm obj>).
+
+    o	axis.POSIXct() allows the label date/times to be specified
+	via the new `at' argument.
+
+    o	arrows() now allows length = 0 (and draws no arrowheads).
+
+    o	Modifications to the access functions for more consistency with S:
+	arguments `name', `pos' and `where' are more flexible in
+	assign(), exists(), get(), ls(), objects(), remove() and rm().
+
+    o	Three new primitive functions have been added to base:
+	dataClass(), objWithClass(), and as.environment().  The first two
+	are support routines for class() and class<-() in package
+	methods.  The third replaces pos.to.env() in the functions get(),
+	exists(), and friends.
+
+    o	barplot() now respects an inline `cex.axis' argument and has a
+	separate `cex.names' argument so names and the numeric axis
+	labels can be scaled separately.  Also, graphics parameters
+	intended for axis() such as `las' can now be used.
+
+    o	Shading by lines added to functions barplot(), hist(),
+	legend(), piechart(), polygon() and rect().
+
+    o	bxp() has a show.names argument allowing labels on a single
+	boxplot; it and hence boxplot() now makes use of pch, cex, and bg
+	for outlier points().
+
+	bxp() and boxplot() also have an argument `outline' to suppress
+	outlier drawing {S-PLUS compatibly}.
+
+    o	New capabilities() options "GNOME" and "IEEE754".
+
+    o	New function casefold(), a wrapper for tolower/toupper
+	provided for compatibility with S-PLUS.
+
+    o	contour() is now generic.
+
+    o	cor.test() in package ctest now also gives an asymptotic
+	confidence interval for the Pearson product moment correlation
+	coefficient.
+
+    o	data(), demo() and library() now also return the information
+	about available data sets, demos or packages.  Similarly,
+	help.search() returns its results.
+
+    o	density() allows `bw' or `width' to specify a rule to choose the
+	bandwidth, and rules "nrd0" (the previous default), "nrd",
+	"ucv", "bcv", "SJ-ste" and "SJ-dpi" are supplied (based on
+	functions in package MASS).
+
+    o	df.residual() now has a default method, used for classes
+	"lm" and "glm".
+
+    o	New argument `cacheOK' to download.file() to request cache
+	flushing.
+
+	All methods for download.file() do tilde-expansion on the path
+	name.
+
+	The internal download.file() etc now allow URLs of the form
+	ftp://user@foo.bar/ and ftp://user:pass@foo.bar/
+
+    o	duplicated() and unique() are now generic functions with
+	methods for data frames (as well as atomic vectors).
+
+    o	factanal() and princomp() use napredict() on their scores, so
+	na.action = na.exclude is supported.
+
+    o	Function getNativeSymbolInfo() returns details about a native
+	routine, potentially including its address, the library in
+	which it is located, the interface by which it can be called
+	and the number of parameters.
+
+    o	Functions such as help() which perform library or package index
+	searches now use NULL as default for their `lib.loc' argument so
+	that missingness can be propagated more easily.	 The default
+	corresponds to all currently known libraries as before.
+
+    o	Added function file.rename().
+
+    o	hist.default() allows `breaks' to specify a rule to choose the
+	number of classes, and rules "Sturges" (the previous default),
+	"Scott" and "FD" (Freedman-Diaconis) are supplied (based on
+	package MASS).
+
+    o	Function identical(), a fast and reliable way to test for exact
+	equality of two objects.
+
+    o	New generic function is.na<-(), from S4.  This is by default
+	equivalent to x[value] <- NA but may differ, e.g. for factors
+	where "NA" is a level.
+
+    o	is.xxx reached through do_is are now generic.
+
+    o	La.eigen() and La.svd() have new default methods to use later
+	(and often much faster) LAPACK routines.  The difference
+	is most noticeable on systems with optimized BLAS libraries.
+
+    o	length() is now generic.
+
+    o	New function .libPaths() for getting or setting the paths to the
+	library trees R knows about.  This is still stored in .lib.loc,
+	which however should no longer be accessed directly.
+
+    o	Using lm/glm/... with `data' a matrix rather than a data frame
+	now gives a specific error message.
+
+    o	loess(), lqs(), nls() and ppr() use the standard NA-handling
+	and so support na.action = na.exclude.
+
+    o	mahalanobis() now has a `tol' argument to be passed to solve().
+
+    o	mean() has `data frame' method applying mean column-by-column.
+	When applied to non-numeric data mean() now returns NA rather
+	than a confusing error message (for compatibility with S4).
+	Logicals are still coerced to numeric.
+
+    o	The formula interface to mosaicplot() now allows a contingency
+	table as data argument.
+
+    o	new.env() is now internal and allows you to set hashing. Also,
+	parent.env() and parent.env<-() are included to provide direct
+	access to setting and retrieving environments.
+
+    o	Function nsl() to look up IP addresses of hosts: intended as
+	a way to test for internet connectivity.
+
+    o	Ops(), cbind(), diff() and na.omit() methods for time series
+	objects moved from package ts to package base.
+
+    o	New option `download.file.method' can be used to set the
+	default method for download.file() and functions which use it
+	such as update.packages().
+
+    o	order() and sort.list() now implement na.last = FALSE, NA.
+
+    o	Started work on new package management system: packageStatus()
+	and friends.
+
+    o	page() has a new `method' argument allowing `method = print'.
+
+    o	png(), jpeg() and bmp() devices now have a `bg' argument to
+	set the background color: useful to set "transparent" on png().
+
+    o	Changes to the postscript() device:
+
+	- The symbol font can now be set on a postscript() device, and
+	  support has been added for using Computer Modern type-1
+	  fonts (including for symbols). (Contributed by Brian D'Urso.)
+
+	- There is now support for URW font families: this will give
+	  access to more characters and more appropriate metrics on
+	  PostScript devices using URW fonts (such as ghostscript).
+
+	- %%IncludeResource comments have been added to the output.
+	  (Contributed by Brian D'Urso.)
+
+    o	predict.ppr() now predicts on `newdata' containing NAs.
+
+    o	princomp() now has a formula interface.
+
+    o	readChar() now returns what is available if fewer characters
+	than requested are on the file.
+
+    o	readline() allows up to 256 chars for the prompt.
+
+    o	read.table(), scan() and count.fields() have a new argument
+	`comment.char', default `#', that can be used to start
+	comments on a line.
+
+    o	New function reg.finalizer() to provide R interface to
+	finalization.
+
+    o	reshape() extends reshapeLong, reshapeWide, which are deprecated.
+
+    o	rle() now returns a classed object, has a print method and
+	an inverse.
+
+    o	Changes to save() and friends:
+
+	- save() now takes an envir argument for specifying where
+	  items to be saved are to be found.
+
+	- A new default format for saved workspaces has been
+	  introduced.  This format provides support for some new
+	  internal data types, produces smaller save files when saving
+	  code, and provides a basis for a more flexible serialization
+	  mechanism.
+
+	- Modified `save' internals to improve performance when saving
+	  large collections of code.
+
+	- save() and save.image() now take a `version' argument to
+	  specify the workspace file-format version to use.  The
+	  version used from R 0.99.0 to 1.3.1 is version 1.  The new
+	  default format is version 2.	load() can read a version 2
+	  saved workspace if it is compressed.
+
+	- save() and save.image() now take a `compress' argument to
+	  specify that the saved image should be written using the zlib
+	  compression facilities.
+
+	- save.image() now takes an argument `ascii'.
+
+	- save.image() now takes an argument `safe'.  If TRUE, the
+	  default, a temporary file is used for creating the saved
+	  workspace.  The temporary file is renamed if the save
+	  succeeds.  This preserves an existing workspace if the save
+	  fails, but at the cost of using extra disk space during the
+	  save.
+
+	- save.image() default arguments can be specified in the
+	  `save.image.defaults' option.	 These specifications are used
+	  when save.image() is called from q() or GUI analogs.
+
+
+    o	scan() allows unlimited (by R) lengths of input lines, instead
+	of a limit of 8190 chars.
+
+    o	smooth.spline() has a new `control.spar' argument and returns
+	`lambda' besides `spar'.  spar <= 0 is now valid and allows
+	to go more closely towards interpolation (lambda -> 0) than before.
+	This also fixes smooth.spline() behavior for "df ~= n - 2". Better
+	error messages in several situations.
+
+	Note that spar = 0 is no longer the default and no longer entails
+	cross-validation.
+
+    o	stars() has been enhanced; new `mar' argument uses smaller
+	mar(gins) by default; further `nrow and `ncol' as S-PLUS,
+	`frame.plot', `flip.labels', `lty' and explicit `main', `sub',
+	`xlab' and `ylab'.  Note that `colors' has been replaced by
+	`col.segments' and there's a new `col.stars'.
+
+	stars() now returns the locations invisibly.
+
+    o	step() is now closer to stepAIC() and so handles a wider range
+	of objects (but stepAIC [in MASS] is still more powerful).
+
+    o	symbols() now has automatic xlab and ylab and a main argument
+	which eliminates an incorrect warning.	It better checks wrongly
+	scaled arguments.
+
+    o	Sys.setlocale() now issues a warning if it fails.
+
+    o	An enhanced function type.convert() is now a documented
+	function, rather than just internal to read.table().
+
+    o	warning() allows multiple arguments, following S4's style.
+
+    o	New function with() for evaluating expressions in environments
+	constructed from data.
+
+    o	Unix x11() devices can now have a canvas color set, which can
+	help to distinguish plotting "white" from plotting
+	"transparent".
+
+    o	On Unix, X11(), png() and jpeg() now give informative warnings
+	if they fail to open the device.
+
+
+    o	The startup processing now interprets escapes in the values of
+	environment variables set in R_HOME/etc/Renviron in a similar
+	way to most shells.
+
+    o	The operator "=" is now allowed as an assignment
+	operator in the grammar, for consistency with other languages,
+	including recent versions of S-PLUS.  Assignments with "=" are
+	basically allowed only at top-level and in braced or
+	parenthesized expressions, to make famous errors such as
+	"if(x=0) 1 else 2" illegal in the grammar.
+	(There is a plan to gradually eliminate the underscore as an
+	assignment in future versions of R.)
+
+    o	Finalizers can be registered to be run on system exit for both
+	reachable and unreachable objects.
+
+    o	integer addition, subtraction, and multiplication now return NA's
+	on overflow and issue a warning.
+
+    o	Printing factors with both level "NA" and missing values
+	uses `<NA>' for the missing values to distinguish them.
+
+    o	Added an experimental interface for locking environments and
+	individual bindings.  Also added support for "active bindings"
+	that link a variable to a function (useful for example for linking
+	an R variable to an internal C global).
+
+    o	GNOME interface now has separate colours for input and output
+	text (like the windows GUI). These can be modified via the
+	properties dialogue.
+
+    o	Output from the GNOME console is block buffered for increased
+	speed
+
+    o	The GNOME console inherits standard emacs-style keyboard
+	shortcuts from the GtkText widget for cursor motion, editing
+	and selection.	These have been modified to allow for the prompt
+	at the beginning of the command line.
+
+    o	One can register R functions and C routines to be called at the
+	end of the successful evaluation of each top-level expression,
+	for example to perform auto-saves, update displays, etc. See
+	addTaskCallback() and taskCallbackManager(). See
+	http://developer.r-project.org/TaskHandlers.pdf.
+
+
+DEPRECATED & DEFUNCT
+
+    o	.Alias has been removed from all R sources and deprecated.
+
+    o	reshapeLong(), reshapeWide() are deprecated in favour of reshape().
+
+    o	Previously deprecated functions read.table.url(), scan.url(),
+	source.url(), httpclient() and parse.dcf() are defunct.
+	Method "socket" for download.file() no longer exists.
+
+
+DOCUMENTATION CHANGES
+
+    o	`Writing R Extensions' has a new chapter on generic/method
+	functions.
+
+
+UTILITIES
+
+    o	New package `tools' for package development and administration
+	tools, containing the QC tools checkFF(), codoc() and undoc()
+	previously in package base, as well as the following new ones:
+
+	-  checkAssignFuns() for checking whether the final argument of
+	   replacement functions in a package is named `value'.
+
+	-  checkDocArgs() for checking whether all arguments shown in
+	   \usage of Rd files are documented in the corresponding
+	   \arguments.
+
+	-  checkMethods() for checking whether all methods defined in a
+	   package have all arguments of their generic.
+
+	-  checkTnF() for finding expressions containing the symbols `T'
+	   and `F'.
+
+    o	R CMD Rd2dvi has more convenient defaults for its output file.
+
+    o	R CMD check now also fully checks the Depends field in the
+	package DESCRIPTION file.  It also tests for syntax errors in
+	the R code, whether all methods in the code have all arguments
+	of the corresponding generic, for arguments shown in \usage but
+	not documented in \arguments, and whether replacement functions
+	have their final argument named `value'.
+
+
+C-LEVEL FACILITIES
+
+    o	arraySubscript and vectorSubscript are now available to package
+	users.	All "array-like" packages can use a standard method for
+	calculating subscripts.
+
+    o	The C routine type2symbol, similar to type2str, returns a symbol
+	corresponding to the type supplied as an argument.
+
+    o	The macro SHLIB_EXT now includes `.', e.g. ".so" or ".dll",
+	since the Mac uses "Lib" without a `.'.
+
+    o	New Fortran entry points rwarn() and rexit() for warnings and
+	error exits from compiled Fortran code.
+
+    o	A new serialization mechanism is available that can be used to
+	serialize R objects to connections or to strings.  This
+	mechanism is used for the version 2 save format.  For now,
+	only an internal C interface is available.
+
+    o	R_tryEval() added for evaluating expressions from C code with
+	errors handled but guaranteed to return to the calling C
+	routine. This is used in embedding R in other applications and
+	languages.
+
+    o	Support for attach()'ing user-defined tables of variables
+	is available and accessed via the RObjectTables package
+	currently at http://www.omegahat.org/RObjectTables.
+
+
+BUG FIXES
+
+    o	Fixed share/perl/massage-examples.pl to detect instances of
+	par() at the very start of a line.
+
+    o	Fixed Pearson residuals for glms with non-canonical
+	link.(PR#1123). Fixed them again for weights (PR#1175).
+
+    o	Fixed an inconsistency in the evaluation context for on.exit
+	expressions between explicit calls to `return' and falling off
+	the end returns.
+
+    o	The code in model.matrix.default() handling contrasts was
+	assuming a response was present, and so without a response was
+	failing to record the contrasts for the first variable if it
+	was a factor.
+
+    o	diffinv() could get the time base wrong in some cases.
+
+    o	file.append() was opening all files in text mode: mattered
+	on Windows and classic Macintosh. (PR#1085)
+
+    o	f[] <- g  now works for factor f.
+
+    o	substr<-() was misbehaving if the replacement was too short.
+
+    o	The version of `packages.html' generated when building R or
+	installing packages had an incorrect link to the style sheet.
+	The version used by help.start() was correct. (PR#1090)
+
+    o	rowsum() now gives character (not factor codes) as rownames.
+	(PR#1092)
+
+    o	plot.POSIX[cl]t now respect the `xaxt' parameter.
+
+    o	It is now possible to predict from an intercept-only model:
+	previously model.matrix.default() objected to a 0-column
+	model frame.
+
+    o	c.POSIXct was not setting the right classes in 1.3.x.
+
+    o	cor(*, use = "all.obs") <= 1 is now guaranteed which ensures
+	that sqrt(1 - r^2) is always ok in cor.test(). (PR#1099)
+
+    o	anova.glm() had a missing drop=FALSE and so failed for some
+	intercept-less models.
+
+    o	predict.arima0() now accepts vector as well as matrix
+	`newxreg' arguments.
+
+    o	cbind(d,f) now works for 0-column dataframes. This fixes PR#1102.
+
+    o	plot(ts(0:99), log = "y") now works
+
+    o	method "gnudoit" of bug.report() was incorrectly documented as
+	"gnuclient" (PR#1108)
+
+    o	saving with ascii=TRUE mangled backslashes. (PR#1115)
+
+    o	frac(,) {and others} now adds a gap appropriately. (PR#1101)
+
+    o	logLik.lm() now uses the correct "df" (nlme legacy code).
+
+    o	closeAllConnections() works again, and closes all sink() diversions.
+
+    o	sink(type="message") works again.
+
+    o	sink.number was (accidentally) returning the result invisibly.
+
+    o	as.POSIXct("NA") (or ..lt) now work; hence, merge(*, all=TRUE) now
+	works with dataframes containing POSIXt date columns.
+
+    o	integer(2^30+1) and similar ones do not segfault anymore but duly
+	report allocation errors.
+
+    o	seq(0, 0, 1) now works (PR#1133).
+
+    o	reshapeWide() got it wrong if the "i" factor was not sorted (the
+	function is now deprecated since reshape() is there, but the bug
+	still needed fixing...)
+
+    o	PR#757 was fixed incorrectly, causing improper subsetting of
+	pch etc. in plot.formula().
+
+    o	library() no longer removes environments of functions that are
+	not defined in the top-level package scope.  Also, packages
+	loaded by require() when sourcing package code are now visible
+	in the remaining source evaluations.
+
+    o	names(d) <- v  now works (again) for "dist" objects d. (PR#1129)
+
+    o	Workarounds for problems with incompletely specified date-times
+	in strptime() which were seen only on glibc-based systems
+	(PR#1155).
+
+    o	promax() was returning the wrong rotation matrix. (PR#1146)
+
+    o	The [pqr]signrank and [pqr]wilcox functions failed to check that
+	memory has been allocated (PR#1149), and had (often large)
+	memory leaks if interrupted.  They now can be interrupted on
+	Windows and Mac OS and don't leak memory.
+
+    o	range(numeric(0)) is now c(NA, NA) not NA.
+
+    o	round(x, digits) for digits <= 0 always gives an integral
+	answer.	 Previously it might not due to rounding errors in
+	fround. (PR#1138/9)
+
+    o	Several memory leaks on interrupting functions have been
+	circumvented.  Functions lqs() and mve() can now be
+	interrupted on Windows and Mac OS.
+
+    o	image() was finding incorrect breakpoints from
+	irregularly-spaced midpoints. (PR#1160)
+
+    o	Use fuzz in the 2-sample Kolmogorov-Smirnov test in package
+	ctest to avoid rounding errors (PR#1004, follow-up).
+
+    o	Use exact Hodges-Lehmann estimators for the Wilcoxon tests in
+	package ctest (PR#1150).
+
+    o	Arithmetic which coerced types could lose the class
+	information, for example `table - real' had a class attribute
+	but was not treated as a classed object.
+
+    o	Internal ftp client could crash R under error conditions such
+	as failing to parse the URL.
+
+    o	Internal clipping code for circles could attempt to allocate
+	a vector of length -1 (related to PR#1174)
+
+    o	The hash function used internally in match(), unique() and
+	duplicated() was very inefficient for integers stored as
+	numeric, on little-endian chips.  It was failing to hash the
+	imaginary part of complex numbers.
+
+    o	fifo() no longer tries to truncate on opening in modes
+	including "w". (Caused the fifo example to fail on HP-UX.)
+
+    o	Output over 1024 characters was discarded from the GNOME
+	console.
+
+    o	rug() now correctly warns about clipped values also for logarithmic
+	axes and has a `quiet' argument for suppressing these (PR#1188).
+
+    o	model.matrix.default was not handling correctly contrasts.arg
+	which did not supply a full set of contrasts (PR#1187).
+
+    o	The `width' argument of density() was only compatible with S
+	for a Gaussian kernel: now it is compatible in all cases.
+
+    o	The rbinom() C code had a transcription error from the original
+	Fortran which led to a small deviation from the intended
+	distribution. (PR#1190)
+
+    o	pt(t, , ncp=0) was wrong if t was +/-Inf.
+
+    o	Subsetting grouping factors gave incorrect degrees of freedom
+	for some tests in package ctests. (PR#1124)
+
+    o	writeBin() had a memory leak.
+
+    o	qbeta(0.25, 0.143891, 0.05) was (incorrectly) 3e-308. (PR#1201)
+
+    o	Fixed alignment problem in ppr.f on Irix. (PR#1002, 1026)
+
+    o	glm() failed on null binomial models. (PR#1216)
+
+    o	La.svd() with nu = 0 or nv = 0 could fail as the matrix passed
+	to DGESVD was not of dimension at least one (it was a vector).
+
+    o	Rownames in xcoef and ycoef of cancor() were wrong if x or y
+	was rank-deficient.
+
+    o	lqs() could give warnings if there was an exact fit. (PR#1184)
+
+    o	aov() didn't find free-floating variables for Error() terms when
+	called from inside another function
+
+    o	write.table() failed if asked to quote a numerical matrix with
+	no row names. (PR#1219)
+
+    o	rlnorm( *, *, sd=0) now returns the mean,
+	rnbinom(*, *, prob=1) gives 0, (PR#1218).
+
+
+	**************************************************
+	*						 *
+	*	       1.3 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 1.3.1
+
+
+NEW FEATURES
+
+    o	massage-examples is now a Perl script and about 50x faster.
+
+    o	On Unix(-alike) systems the default pager is now determined
+	during configuration, and is `less' if available, otherwise
+	`more' (and not `more -s' as previously).
+
+    o	configure now tests for strptime functions that fail on inputs
+	before 1970 (found on Irix).  It no longer checks for the SCSL
+	and SGIMATH libraries on Irix.
+
+    o	New formula interface to cor.test() in package ctest.
+
+    o	"NA" is now a valid color name (as NA has been a valid integer
+	color).
+
+    o	pairs() function has a new `gap' argument for adjusting the
+	spacing between panels.
+
+    o	R CMD check has a new test for unbalanced braces in Rd files.
+
+    o	readBin() has a new argument `signed' to simplify reading
+	unsigned 8- and 16-bit integers.
+
+    o	New capabilities() option "cledit".
+
+    o	Modified restore code to give clearer error messages in some cases.
+
+
+
+BUG FIXES
+
+    o	Fixed placement of mtext() output (including tick labels)
+	when text is perpendicular to axis AND axis is logged
+	(PR#997 and PR#865).
+
+    o	rect() and arrows() now respond to setting of par(xpd)
+
+    o	abline() now responds to the setting of par(xpd), including
+	via the "..." argument (PR#750).
+
+    o	Using cat() to a gzfile() connection no longer compresses poorly
+	(at the expense of some latency).
+
+    o	The `exact' p-values for the two-sided two-sample
+	Kolmogorov-Smirnov test in 1.3.0 were for the wrong tail.
+
+    o	In the HTML conversion of .Rd files, \link[foo]{bar} was
+	ignoring [foo] outside \code{} statements.
+
+    o	lm.influence(), plot.lm(), influence.measures() and the
+	related diagnostic measures now handle lm() fits with
+	na.action=na.exclude.
+
+    o	Eliminated segmentation fault in while loops without braces
+	in their bodies.
+
+    o	barplot did not accept NA heights unless ylim was specified.
+
+    o	predict.lm() failed with single-column model matrix (PR#1018).
+
+    o	legend() now also works with 100s of entries (thanks to
+	M. Schlather).
+
+    o	A long-standing bug leading to inaccuracy in polyroot() has been
+	fixed (PR#751)
+
+    o	A very old bug with eval() not handling a numeric `envir' argument
+	according to specifications has been fixed. [This in particular
+	broke ported S-PLUS code that used eval(..., sys.parent())]. Also,
+	eval() now checks that a numeric `envir' has length one to prevent
+	accidental passing of matrices instead of data frames.
+
+    o	The C code underlying nlm(f, *) now also works correctly when f(x)
+	returns +Inf {nlm() itself *did* work!}.
+
+    o	pdfcolor.tex is now included in doc/manual, as pdftex seems no
+	longer to include it.
+
+    o	Fixed protect bug in save() code that might have been responsible
+	for occasionally saving corrupted workspaces.
+
+    o	capabilities("X11") now reports if X11 is available in this
+	session, thereby giving the correct answer if --gui=none was
+	specified.
+
+    o	Rd files with ,, inside \code{} were treating this as a
+	ligature in LaTeX: now corrected in Rdconv.
+
+    o	dlopen on Compaq Tru64 was finding the wrong entry points:
+	worked-around by using different names in the modules.
+
+    o	plot.mts() allows a type argument again (broken in 1.3.0: PR#1010).
+
+    o	scan() has a limit of 8190 on the length of char strings, and
+	now warns if it is exceeded (when the string has always been
+	truncated).
+
+    o	par adj now accepts values of integer mode (such as text(adj=0:1)).
+
+    o	horizontal adj values outside the range [0, 1] are now
+	supported on devices with canHAdj==1 (Windows devices, xfig).
+
+    o	xtabs() without a response was ignoring drop.unused.levels=TRUE.
+
+    o	readLines(ok=FALSE) was not generating an error when it should.
+
+    o	princomp(covmat=) has been broken.
+
+    o	Many documentation clean-ups: formerly undocumented arguments,
+	use of T/F rather than TRUE/FALSE.
+
+    o	df[] <- foo now works for data frames (PR#1047).
+
+    o	nargs() was documented incorrectly.
+
+    o	Using seq.POSIXt(by="2 weeks") was stepping by single weeks
+	(PR#1046).
+
+    o	dummy.coef.lm was not handling complex terms like z:I(x).
+	It now either does or warns and gives NAs (PR#1048).
+
+    o	predict.mlm() was broken (PR#1049).
+
+    o	ksmooth (in package modreg) was using points to the left
+	of the kernel under some circumstances (PR#1050).
+
+    o	attr(x, "class") <- character(0) was segfaulting.  Similar problem
+	with "comment" attribute also fixed.
+
+    o	loadings() results from PCA (as well as from factor analysis)
+	are now printed by print.loadings.
+
+    o	Using chol() on an non-positive-definite matrix gave an
+	misleading error message (PR#1061).
+
+    o	as.character() on a language object was truncating to about 70
+	characters: the internal limit (from the deparse code) is now the
+	maximum possible 500.
+
+    o	X11() device was failing to re-initialize correctly after all
+	devices were shut down, so the colortype could not be changed
+	and some systems showed protocol errors. (PR#1065)
+
+    o	Converting Inf and NaN values by as.character() and reading by
+	scan() was supported by strtod on some platforms and not
+	others: these are now handled by R itself. (PR#1072)
+
+    o	hclust(dist(1)) doesn't loop infinitely but signal an error.
+
+    o	cutree() can now cut outside heights and does not return
+	garbage	for h >= max(tree$heights) anymore. (PR#1067)
+
+    o	interaction(...,drop=F) returned an object looking like a
+	factor, but with storage mode "double", confusing
+	model.matrix.default (PR#1003)
+
+    o	splineDesign(*, ord=) and others give better error messages for
+	wrong `ord' (and have slightly improved documentation).
+
+
+		CHANGES IN R VERSION 1.3.0
+
+
+NEW FEATURES
+
+    o	Changes to connections:
+
+	-  New function url() to read from URLs.  file() will also
+	   accept URL specifications, as will all the functions which
+	   use it.
+
+	-  file connections can now be opened for both reading and writing.
+
+	-  Anonymous file connections (via file()) are now supported.
+
+	-  New function gzfile() to read from / write to compressed files.
+
+	-  New function fifo() for connections to / from fifos (on Unix).
+
+	-  Text input from file, pipe, fifo, gzfile and url connections
+	   can be read with a user-specified encoding.
+
+	-  New functions readChar() and writeChar() to read character
+	   strings with known lengths and no terminators, and to write
+	   user-specified lengths from strings.
+
+	-  sink() now has a stack of output connections, following S4.
+
+	-  sink() can also be applied to the message stream, to capture
+	   error messages to a connection.  Use carefully!
+
+	-  seek() has a new `origin' argument.
+
+	-  New function truncate() to truncate a connection open for
+	   writing at the current position.
+
+	-  Socket connections via function socketConnection().
+
+	-  The `blocking' argument for file, fifo  and socket connections
+	   is now operational.
+
+    o	Changes to date/time classes and functions:
+
+	-  Date/time objects now all inherit from class "POSIXt".
+
+	-  New function difftime() and corresponding class for date/time
+	   differences, and a round() method.
+
+	-  Subtraction and logical comparison of objects from different
+	   date/time classes is now supported.	NB: the format for the
+	   difference of two objects of the same date/time class has
+	   changed, but only for objects generated by this version, not
+	   those generated by earlier ones.
+
+	-  Methods for cut(), seq(), round() and trunc() for date/time
+	   classes.
+
+	-  Convenience generic functions weekdays(), months(), quarters()
+	   and julian() with methods for "POSIXt" objects.
+
+    o	Coercion from real to integer now gives NA for out-of-range
+	values, rather than the most extreme integer of the same sign.
+
+    o	The Ansari-Bradley, Bartlett, Fligner-Killeen, Friedman,
+	Kruskal-Wallis, Mood, Quade, t, and Wilcoxon tests as well as
+	var.test() in package ctest now have formula interfaces.
+
+    o	Matrix multiplication functions %*% and crossprod() now use a
+	level-3 BLAS routine dgemm.  When R is linked with the ATLAS
+	or other enhanced BLAS libraries this can be substantially
+	faster than the previous code.
+
+    o	New functions La.eigen() and La.svd() for eigenvector and
+	singular value decompositions, based on LAPACK.	 These are
+	preferred to eigen() and svd() for new projects and can make
+	use of enhanced BLAS routines such as ATLAS.  They are
+	used in cancor(), cmdscale(), factanal() and princomp()
+	and this may lead to sign reversals in some of the output of
+	those functions.
+
+    o	Provided the Fortran compiler can handle COMPLEX*16, the
+	following routines now handle complex arguments, based on
+	LAPACK code.
+
+	qr, qr.coef, qr.solve, qr.qy, qr.qty, solve.default, svd, La.svd.
+
+
+
+    o	aperm() uses strides in the internal C code and so is
+	substantially faster (by Jonathan Rougier).
+
+    o	The four bessel[IJKY](x,nu) functions are now defined for nu < 0.
+
+    o	[dpqr]nbinom also accept an alternative parametrization via the
+	mean and the dispersion parameter (thanks to Ben Bolker).
+
+    o	Generalised "birthday paradox" functions [pq]birthday.
+
+    o	boxplot() and bxp() have a new argument `at'
+
+    o	New function capabilities() to report optional capabilities
+	such as jpeg, png, tcltk, gzfile and url support.
+
+    o	New function checkFF() for checking foreign function calls.
+
+    o	New function col2rgb() for color conversion of names, hex, or
+	integer.
+
+    o	coplot() has a new argument `bar.bg' (color of conditioning bars),
+	gives nicer plots when the conditioners are factors, and allows
+	factors for x and y (treated almost as if unclass()ed) using new
+	argument `axlabels'.  [original ideas by Thomas Baummann]
+
+    o	`hessian' argument added to deriv() and its methods.  A new function
+	deriv3() provides identical capabilities to deriv() except that
+	`hessian' is TRUE by default.
+	deriv(*, *, func = TRUE) for convenience.
+
+    o	New dev.interactive() function, useful for setting defaults for
+	par(ask=*) in multifigure plots.
+
+    o	dist() in package mva can now handle missing values, and
+	zeroes in the Canberra distance.
+
+    o	The default method for download.file() (and functions which use
+	it such as update.packages()) is now "internal", and uses code
+	compiled into R.
+
+    o	eigen() tests for symmetry with a numerical tolerance.
+
+    o	New function formatDL() for formatting description lists.
+
+    o	New argument `nsmall' to format.default(), for S-PLUS
+	compatibility (and used in various packages).
+
+    o	?/help() now advertises help.search() if it fails to find a topic.
+
+    o	image() is now a generic function.
+
+    o	New function integrate() with S-compatible call.
+
+    o	New function is.unsorted() the C version of which also speeds up
+	.Internal(sort()) for sorted input.
+
+    o	is.loaded() accepts an argument PACKAGE to search within
+	a specific DLL/shared library.
+
+    o	Exact p-values are available for the two-sided two-sample
+	Kolmogorov-Smirnov test.
+
+    o	lm() now passes `...' to the low level functions for regression
+	fitting.
+
+    o	Generic functions logLik() and AIC() moved from packages nls
+	and nlme to base, as well as their *.lm methods.
+
+    o	New components in .Machine give the sizes of long, long long and
+	long double C types (or 0 if they do not exist).
+
+    o	merge.data.frame() has new arguments, `all[.xy]' and `suffixes',
+	for S compatibility.
+
+    o	model.frame() now calls na.action with the terms attribute set
+	on the data frame (needed to distiguish the response, for
+	example).
+
+    o	New generic functions naresid(), napredict() and naprint()
+	(formerly in packages survival5 and MASS, also used in rpart).
+	Also na.exclude(), a variant on na.omit() that is handled
+	differently by naresid() and napredict().
+
+	The default, lm and glm methods for fitted, residuals, predict
+	and weights make use of these.
+
+    o	New function oneway.test() in package ctest for testing for
+	equal means in a one-way layout, assuming normality but not
+	necessarily equal variances.
+
+    o	options(error) accepts a function, as an alternative to
+	an expression.	(The Blue Book only allows a function; current
+	S-PLUS a function or an expression.)
+
+    o	outer() has a speed-up in the default case of a matrix outer
+	product (by Jonathan Rougier).
+
+    o	package.skeleton() helps with creating new packages.
+
+    o	New pdf() graphics driver.
+
+    o	persp() is now a generic function.
+
+    o	plot.acf() makes better use of white space for `nser > 2', has
+	new optional arguments and uses a much better layout when more
+	than one page of plots is produced.
+
+    o	plot.mts() has a new argument `panel' providing the same
+	functionality as in coplot().
+
+    o	postscript() allows user-specified encoding, with encoding files
+	supplied for Windows, Mac, Unicode and various others, and with
+	an appropriate platform-specific default.
+
+    o	print.htest() can now handle test names that are longer than
+	one line.
+
+    o	prompt() improved for data sets, particularly non-dataframes.
+
+    o	qqnorm() is now a generic function.
+
+    o	read.fwf() has a new argument `n' for specifying the number of
+	records (lines) read in.
+
+    o	read.table() now uses a single pass through the dataset.
+
+    o	rep() now handles lists (as generic vectors).
+
+    o	scan() has a new argument `multi.line' for S compatibility,
+	but the default remains the opposite of S (records can cross
+	line boundaries by default).
+
+    o	sort(x) now produces an error when x is not atomic instead of
+	just returning x.
+
+    o	split() now allows splitting on a list of factors in which case
+	their interaction defines the grouping.
+
+    o	stl() has more optional arguments for fine tuning, a summary()
+	and an improved plot() method.
+
+    o	New function strwrap() for formatting character strings into
+	paragraphs.
+
+    o	New replacement functions substr<-() and substring<-().
+
+    o	Dataset swiss now has row names.
+
+    o	Arguments `pkg' and `lib' of system.file() have been renamed to
+	`package' and `lib.loc', respectively, to be consistent with
+	related functions.  The old names are deprecated.  Argument
+	`package' must now specify a single package.
+
+    o	The Wilcoxon and Ansari-Bradley tests now return point
+	estimators of the location or scale parameter of interest along
+	with confidence intervals for these.
+
+    o	New function write.dcf() for writing data in Debian Control File
+	format.	 parse.dcf() has been replaced by (much faster)	internal
+	read.dcf().
+
+    o	Contingency tables created by xtabs() or table() now have a
+	summary() method.
+
+    o	Functions httpclient(), read.table.url(), scan.url() and
+	source.url() are now deprecated, and hence method="socket' in
+	download.file() is.  Use url connections instead: in
+	particular URLs can be specified for read.table(), scan() and
+	source().
+
+    o	Formerly deprecated function getenv() is now defunct.
+
+    o	Support for package-specific demo scripts (R code).  demo() now
+	has new arguments to specify the location of demos and to allow
+	for running base demos as part of `make check'.
+
+    o	If not explicitly given a library tree to install to or remove
+	from, respectively, R CMD INSTALL and R CMD REMOVE now operate
+	on the first directory given in `R_LIBS' if this is set and
+	non-null, and the default library otherwise.
+
+    o	R CMD INSTALL and package.description() fix some common problems
+	of DESCRIPTION files (blank lines, ...)
+
+    o	The INSTALL command for package installation allows a `--save'
+	option.	 Using it causes a binary image of the package contents
+	to be created at install time and loaded when the package is
+	attached.  This saves time, but also uses a more standard way
+	of source-ing the package.  Packages that do more than just
+	assign object definitions may need to install with `--save'.
+	Putting a file `install.R' in the package directory makes
+	`--save' the default behavior.	If that file is not empty, its
+	contents should be R commands executed at the end of loading
+	the image.
+
+	There is also a new command line option `--configure-vals' for
+	passing variables to the configure script of a package.
+
+    o	R CMD check now also checks the keyword entries against the list
+	of standard keywords, for code/documentation mismatches (this
+	can be turned off by the command line option `--no-codoc'), and
+	for sufficient file permissions (Unix only).  There is a new check
+	for the correct usage of library.dynam.
+
+	It also has a new command line option `--use-gct' to use
+	`gctorture(TRUE)' when running R code.
+
+    o	R CMD Rd2dvi has better support for producing reference manuals
+	for packages and package bundles.
+
+    o	configure now tests for the versions of jpeg (>= 6b), libpng (>=
+	1.0.5) and zlib (>= 1.1.3).  It no longer checks for the
+	CXML/DXML BLAS libraries on Alphas.
+
+    o	Perl scripts now use Cwd::cwd() in place of Cwd::getcwd(), as
+	cwd() can be much faster.
+
+    o	R::Dcf.pm can now also handle files with more than one record
+	and checks (a little bit) for continuation lines without leading
+	whitespace.
+
+    o	New manual `R Installation and Administration' with fuller
+	details on the installation process: file `INSTALL' is now a
+	brief introduction referencing that manual.
+
+    o	New keyword `internal' which can be used to hide objects that
+	are not part of the API from indices like the alphabetical lists
+	in the HTML help system.
+
+    o	Under Unix, shlib modules for add-on packages are now linked
+	against R as a shared library (`libR') if this exists.	(This
+	allows for improved embedding of R into other applications.)
+
+    o	New mechanism for explicitly registering native routines in a
+	DLL/shared library accessible via .C(), .Call(), .Fortran() and
+	.External().  This is potentially more robust than the existing
+	dynamic lookup, since it checks the number of arguments, type of
+	the routine.
+
+    o	New mechanism allowing registration of C routines for converting
+	R objects to C pointers in .C() calls.	Useful for references to
+	data in other languages and libraries (e.g. C and hdf5).
+
+    o	The internal ftp/http access code maintains the event loop, so
+	you can download whilst running tcltk or Rggobi, say.  It can
+	be hooked into package XML too.
+
+
+
+BUG FIXES
+
+    o	boxplot.stats() now returns the correct `n' component in the case of
+	NAs. This also affects `conf', the notch length (PR#967).
+
+    o	the "coef = 0" fix (PR#917) to boxplot.stats() broke
+	boxplot.stats(do.out = FALSE).
+
+    o	curve(* , add = FALSE) now works correctly again if used when
+	par("xlog") is true.
+
+    o	Printing a dataframe with a column called "row.names" or
+	"check.names" omitted the column.
+
+    o	data.frame(a=1, b=2)[1, -(1:2)]	 now works, giving an empty
+	data frame.  as.matrix(df), deparse(), dput() and str() now work
+	for empty data frames.
+
+    o	dbeta() could return zero erroneously on some platforms where
+	roundoff makes e.g. 1.3 - 1 > (1.3 + 1) - 2 (Solaris and HP-UX
+	were affected). (PR#970)
+
+    o	pointer protection in deriv() (PR#953)
+
+    o	expand.data.frame() didn't interpret its subset= argument in
+	the data frame. (PR#979 et al., fix from Greg Warnes)
+
+    o	format() on character arrays was losing the dimensions.
+
+    o	hist.default() was ignoring its `probability' argument for
+	equi-spaced breaks.
+
+    o	Occasionally insane results of is.nan(NULL), is.na(NULL) (PR#952)
+
+    o	ks.test() in package ctest now had the one-sided alternatives in
+	the one-sample case reversed (PR#934).
+
+    o	ls.str() and lsf.str() now work better with pos > 1, and are
+	correctly documented (PR#899).
+
+    o	plot(1:2, xaxs = "i") now gives both "1.0" and "2.0" x-axis labels.
+
+    o	promax() was not using its `m' argument (m=4 was always used).
+
+    o	qr.X() was ignoring pivoting (which happens only in
+	rank-deficient cases).
+
+    o	sign of Pearson residuals was wrong for reciprocal link (PR#862)
+
+    o	The algorithm for determining starting estimates in the SSfpl
+	self-starting model in the nls package was changed following a
+	suggestion by Phillipe Grosjean <phgrosje@ulb.ac.be>
+
+    o	svd(x)$v was not a matrix when x had only 1 row (PR#963).
+
+    o	symnum(x) behaves more reasonably for zero length or non-numeric x.
+
+    o	The implementation of sys.function() did not work when the
+	current function was already a function (e.g., a closure).
+
+    o	tapply() had "..." argument after simplify=, which made it
+	incompatible with S when passing additional unnamed arguments to FUN.
+
+    o	use formula environments in xy.coords() (PR#932)
+
+
+    o	Unused entry points in `src/appl/fortran.c' and `Fortran.h'
+	have been removed.
+
+    o	Unused directory `src/f2clib' and header `src/include/R_ext/f2c.h'
+	have been removed.
+
+    o	The documentation and parts of the parse/deparse mechanism
+	indicated that there was an operator `%'. Corrected (PR#925).
+
+    o	Fixed some cases where the deparser gave code that threw a
+	syntax error when parsed.
+
+    o	Using a pushback with more than two lines at a time could crash.
+
+    o	Eliminate or warn on use of .Last.value in help examples, since
+	.Last.value is only set from top-level expressions (and was
+	incorrectly documented).
+
+    o	asInteger was ignoring integer overflow (PR#929 and others).
+
+    o	approxfun(*, ties = <fun>) could return garbage when there were ties;
+	ties = "ordered" was incorrect--also for approx()-- when there was
+	a tie at the very right.
+
+
+	**************************************************
+	*						 *
+	*	       1.2 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 1.2.3
+
+NEW FEATURES
+
+    o	Support for configuration and building the Unix version of R
+	under Mac OS X.	 (The `classic' Macintosh port is `Carbonized'
+	and also runs under that OS.)
+
+    o	dotchart() and stripchart() become the preferred names for
+	dotplot() and stripplot(), respectively.  The old names are now
+	deprecated.
+
+    o	Functions in package ctest now consistently use +/-Inf rather
+	than NA for one-sided confidence intervals.
+
+
+
+BUG FIXES
+
+    o	`Writing R Extensions' incorrectly described an entry point
+	`fmod' which was not included in the R binary on most systems.
+	The entry point has been removed, to avoid any confusion with
+	the standard C entry point of the same name.
+
+    o	Printing of kernels in package ts was unreliable: the internal
+	representation was correct.
+
+    o	A problem with "..." in substitutions has been fixed (PR#860).
+
+    o	Various strangeness with match.call() and "..." has been fixed
+	(PR#813).
+
+    o	sys.function() could return an unevaluated promise, messing up
+	formals() and match.arg() (PR#872)
+
+    o	Deparsing or dumping attributes with non-standard names was
+	not quoting the name (PR#871).
+
+    o	We now use match.fun() in tapply() so that it won't get trapped
+	by non-functions masking FUN.
+
+    o	The `nmax' argument in scan(what=list(...), nmax=300) was
+	counting blank lines, although they were said to be ignored.
+	This affected using read.table on files with blank lines in
+	1.2.2, and using `n' with `what' a list.
+
+    o	as.numeric(), as.integer(), as.complex() returned zero on
+	completely blank strings. Now they return NA. (PR#870)
+
+    o	Overflow in deparse() in terms(formula) with very long left-hand
+	side fixed.  (PR#873)
+
+    o	lowess(c(1:3, 7:5)) now should give the same on different platforms,
+	since now in the C code (int)(f*n + 1e-7) is used.
+
+    o	curve(*, add = TRUE) now works properly with active log scales.
+
+    o	rt() could give different results on different platforms as
+	the order of evaluation of calls to random numbers was not
+	fully defined.	This affected the Mac port.
+
+    o	ppr() inside nested calls sometimes failed to find objects
+	due to a typo in the eval call in ppr.formula.
+
+    o	qchisq(0.025, 31, ncp=1, lower.tail=FALSE) now works.  (PR#875)
+
+    o	dchisq with integer x, df and ncp sometimes gave incorrect
+	results on i686 Linux.
+
+    o	Cancelling a quit caused quit() not to ask next time it was called.
+
+    o	Some complicated operations with "..." didn't work.
+
+    o	Missingness was not correctly propagated in some cases.
+
+    o	eigen() segfaulted on 0-dimensional matrices.
+
+    o	nls( ~ rhs, ..)	 now works (formula with empty left hand side).
+
+    o	The fuzz added in hist() for 1.2.2 broke the logic testing for
+	equidistant breakpoints.
+
+    o	Calls to replacement functions ("f<-") lost argument names
+	(PR#888).
+
+    o	is.na() and is.nan() gave random results on lists containing
+	zero-length objects.
+
+    o	cor(), cov() and var() gave a result on a zero-length argument
+	(now an error).	 cov(x, NULL) and cor(x, NULL) are now errors
+	if x is a vector.  (PR#883).
+
+    o	?smooth.spline now properly describes `spar' which is *not*
+	lambda.	 smooth.spline(1:20, spar = 50) gives an error instead
+	of silent nonsense.  print.smooth.spline() now makes use of a
+	digits argument.
+
+    o	Confidence intervals for wilcox.test() had the samples reversed
+	in the two-sided case (PR#895), and sometimes got continuity
+	correction wrong (PR#896).
+
+    o	Using out-of-range font values in text() on a postscript()
+	device on Windows could crash.	.ps.prolog was incorrectly
+	named in some of the documentation.  (PR#914)
+
+    o	Warning messages of > 8191 chars could crash R (PR#902), as
+	could errors.  Now they are truncated to 8191 chars on
+	machines which have vsnprintf (almost all).
+
+    o	range() now works properly for date-time objects.
+
+    o	contour() could loop infinitely (PR#897).
+
+    o	R-lang manual had precedence of %% wrong (PR#879).
+
+    o	try() constructs lost protection of R_alloc'ed memory (PR#877).
+
+    o	Documented that as.numeric() dispatches to as.double.foo methods
+	(PR#918.1).
+
+    o	httpclient() (and the "socket" method of download.file) skipped ^V
+	rather than ^Z in input (if drop.ctrl.z = TRUE, the default).
+
+    o	boxplot(*, range = 0) and boxplot.stats(*, coef = 0) now
+	don't return outliers anymore (PR#917).
+
+    o	segmentation fault with tmp[[1,]] (PR#904)
+
+    o	incorrect "..." handling in plot.factor (PR#830)
+
+
+
+		CHANGES IN R VERSION 1.2.2
+
+
+NEW FEATURES
+
+    o	The Macintosh port becomes a full member of the R family and its
+	sources are incorporated as from this release.
+	See `src/macintosh/INSTALL' for how that port is built.
+
+    o	The API header files and export files `R.exp' are released under
+	LGPL rather than GPL to allow dynamically loaded code to be
+	distributed under licences other than GPL.
+
+    o	postscript() and xfig() devices now make use of genuine Adobe
+	afm files, and warn if characters are used in string width or
+	height calculations that are not in the afm files.
+
+    o	Configure now uses a much expanded search list for finding a
+	FORTRAN 77 compiler, and no longer disallows wrapper scripts for
+	this compiler.
+
+    o	New Rd markup \method{GENERIC}{CLASS} for indicating the usage
+	of methods.
+
+    o	print.ftable() and write.ftable() now have a `digits' argument.
+
+    o	undoc() has a new `lib.loc' argument, and its first argument is
+	now called `package'.
+
+
+BUG FIXES
+
+    o	The behaviour of polygon() with NA coordinate values is now
+	documented.
+
+    o	polygon() now correctly recycles the values of border and lty.
+	Thanks to Denis White.
+
+    o	readBin() and writeBin() were not always making good use of
+	long types (such as long double) when available.
+
+    o	The C function fprec was not handling very small denormalized
+	numbers correctly.  This affected the way they were printed on
+	Windows, for example.
+
+    o	legend() now draws points after lines allowing "empty dots on
+	lines" thanks to Ben Bolker.
+
+    o	Setting row/column names preserves the names of the dimnames
+	(PR#809).
+
+    o	Using help() after help.start() on Unix was failing to find
+	the linked help files if more than one package was loaded (as
+	now happens by default).
+
+    o	scan now sets the maximal sizes internally when `what' is a list
+	from `nmax' and failing that `nlines'.	This uses memory much
+	more efficiently if `nmax' is specified.  read.table() makes use
+	of this.
+
+    o	The FORTRAN code used is now much closer to ANSI compliance.
+
+    o	cov.rob() gives a useful error message on nearly-degenerate
+	matrices.
+
+    o	summary() on a data frame was computing results to a precision
+	based on options("digits") (default 4), not its `digits'
+	argument.  Now results are computed to full precision but
+	formatted using `digits'.
+
+    o	summary(m, digits=*) also properly works for matrices.
+
+    o	When returning parameters from .C/.Fortran, the OBJECT field was
+	not copied even though class attributes were (PR#834).
+
+    o	There was a spurious warning from the X11 driver on 100 dpi
+	displays (PR#840, fix from Tom Vogels).
+
+    o	scan() was reading all-blank numeric fields as zero.
+	Should be read as NA, and are now.
+
+    o	dnbinom(*, size, *) now works again for size < 1 (PR#842).
+
+    o	dgeom(*, p = 0) and pgeom(*, p = 0) don't give NaN anymore.
+
+    o	smooth.spline() allows zero weights again.
+
+    o	aperm() fix for list arg; aperm(*, resize=FALSE) now works with
+	dimnames (by dropping them).
+
+    o	The xfig() driver was not closing unclosed polygons as the R
+	driver expected (but did not document).
+
+    o	spec.ar() now handles order 1 correctly.
+
+    o	Add fuzz to prevent anomalies with hist().
+
+    o	print.matrix() checks length of rowlab, collab (PR#850)
+
+    o	add1.glm() was using the wrong weights for binomial glms in
+	cbind(successes, failures) ~ lhs  form, since 1.2.0.
+
+    o	Eliminate packing of the `structRstart' structure, which was
+	probably non-ISO C and caused some compilers problems (PR#852).
+
+    o	all.vars() no longer returns empty `names' (PR#829).
+
+    o	dotplot() passes `cex' down to the mtext() calls used for the
+	labels (PR#816).
+
+    o	The pictex() driver was drawing polylines incorrectly (PR#845).
+
+    o	In the event of a fatal X11 error (this can be generated under FVWM
+	by selecting Destroy), the input handler would loop, leaving the
+	"please save work and shut down R" advice useless. There should now
+	be an opportunity for a relatively graceful exit.
+
+    o	polyroot() misbehaved if all coefficients except that of the highest
+	degree term were zero (partial fix for PR#751)
+
+    o	spline(method="natural") was extrapolating incorrectly (both
+	to the left and to the right, for different reasons).  (PR#653)
+
+    o	Line clipping was incorrect for log-plots. (PR#839)
+
+    o	Add explicit test for rank-deficient residuals to summary.manova().
+
+    o	The help search data bases did not contain the data from the
+	platform-specific help files.
+
+    o	parse.dcf() and hence package.contents() now work with a warning
+	for empty contents' files.
+
+    o	which.min() and which.max() now properly work for 0-length and
+	NA-only arguments.
+
+
+
+		CHANGES IN R VERSION 1.2.1
+
+
+NEW FEATURES
+
+    o	New functions factanal(), varimax(), promax() and examples in
+	package mva.
+
+    o	New functions readBin() and writeBin() to transfer binary data
+	to and from connections.
+
+    o	merge() is partially moved to C to reduce its memory usage.
+
+    o	library(help = PKG) now displays the contents of the package's
+	DESCRIPTION file in addition to its INDEX.
+
+    o	Sd2Rd can handle S4-style documentation too: see `Writing R
+	Extensions'.
+
+    o	prompt() now also works with a character argument (useful for
+	producing many *.Rd files in a loop).
+
+    o	The Unix front-end shell script now ignores a value for R_HOME
+	found in the environment.
+
+    o	Connections functions such as file() now accept a description of
+	length > 1, with a warning.
+
+    o	All text-mode connections now accept input with LF, CR or CRLF
+	line endings.  This means that readLines() can be used on DOS
+	files and source() on Mac files, for example.
+
+	Also, CRLF-terminated files can be used as stdin on Unix, and
+	files with last lines without an EOL mark can be used as stdin
+	and source()-ed on Unix and Windows.
+
+    o	DESCRIPTION file has a new recommended `Maintainer:' field.
+
+    o	stars() now uses a larger "cex" for the labels, and cex and lwd
+	are now arguments. Further, the argument names (xlim, ylim,
+	axes) are now consistent with other plot functions.  The key symbol
+	is not clipped anymore into the plot region by default.
+
+    o	Date-time quantities are now printed with the timezone, if known.
+
+    o	R CMD build now ignores all files specified (via Perl regexps)
+	in file `.Rbuildignore' in the top-level source	directory of a
+	package.
+
+    o	Horizontal boxplots are possible with  horizontal = TRUE.
+
+    o	all.equal() on lists now compares them as generic vectors, that
+	is they are equal if have identical names attributes and
+	all components are equal.
+
+    o	Invalid lines in .Renviron now give warnings when R is started.
+
+    o	Argument `na.last' implemented for rank().
+
+
+BUG FIXES
+
+    o	There have been many small improvements/corrections in the
+	documentation. In particular:
+
+	The help pages for lm and glm now describe the fitted objects.
+
+	is.vector() is now correctly documented: complex vectors and
+	lists return TRUE.
+
+    o	The default sortedXyData constructor in the nls package now
+	handles missing values in the response.
+
+    o	On startup, file .RData is now restored *after* the site and
+	user profiles are loaded (if at all).  This is as previously
+	documented.
+
+    o	as.POSIXlt (and *ct) operating on a character string
+	only extracted the date (and not the time) in some cases.
+
+    o	as.POSIXct() on character objects was ignoring `tz'.
+
+    o	codoc(ignore.generic.functions = TRUE) works again.
+
+    o	Explicitly close files opened by sink() for OSes (such as
+	Windows) that benefit from it.
+
+    o	Prevent closing the sink connection (which would be a silly
+	thing to do).
+
+    o	showConnections(all = TRUE) was sometimes counting connections
+	incorrectly, and so not showing some closed ones.
+
+    o	ts(1:10, start= c(1999,6), end = c(2000,3), frequency = 12)
+	now prints both years (as it should).
+
+    o	Monthly multivariate time series now print proper month names
+	in all cases.
+
+    o	print.stl(), print.princomp() and print.prcomp() now pass on
+	`digits =' etc.
+
+    o	prompt() now produces a \usage{} line for data frames and
+	other datasets, as documented in `Writing R Extensions'.
+
+    o	glm() now returns correct linear predictor and fitted values
+	for zero-weight cases.
+
+    o	scan(strip.white=TRUE) and readline() could give incorrect
+	answers when an input field was empty or blank.
+
+    o	dchisq() now behaves better for large values of its ncp parameter.
+
+    o	besselJ(*, nu) is now ok for nu < 1; fix improves accuracy of
+	other values by a few bits as well.
+
+    o	The convergence criterion in the Fortran SVD code has been
+	changed to circumvent spurious convergence errors when
+	comparing extended-precision quantities on ix86 Linux (and
+	some compilers and options).
+
+    o	Rdindex now handles multi-line \title{}'s correctly.
+
+    o	Add weights.glm() so that plot.lm() gets the correct weights from
+	glm objects (the ones that go with deviance residuals not the
+	working residuals).
+
+    o	Printing a language object (e.g. a formula) in a list was
+	clobbering the buffer holding the tag labels which then were
+	lost in subsequent lines of printout (PR#746).
+
+    o	aic in family() objects is now computed more precisely using
+	dxxxx(log=TRUE).  For binomial fits the value was wrong for
+	models specified via proportions and weights (PR#796).
+
+	Avoid NaN values in aic where n = 0 occurs.
+
+    o	Using non-integer numbers of successes in a binomial glm (as
+	formerly in demo(lm.glm)) now gives a warning, as the theory and
+	in particular the AIC value is not applicable.
+
+    o	demo(is.things) works again {is.ALL() doesn't call methods
+	anymore}.
+
+    o	persp(*, nticks = nn) now works (better) for too small nn.
+	persp(*, main = t1, sub= t2) now work (as always documented).
+
+    o	Printing of attributes of a list element no longer precedes
+	`attr' by the tag (PR#715).
+
+    o	It is no longer possible to use df[foo] to select non-existent
+	columns in df and so create an invalid object of class
+	"data.frame" (PR#698).
+
+    o	edit.data.frame() was trying to set row.names on a list, which
+	is no longer allowed.
+
+    o	In the \link[pkg]{topic}, `pkg' was not being used if `topic'
+	was found in a package in .lib.loc.  Now `pkg' is always used.
+
+    o	plot() with small relative ranges gave an error, which e.g. broke
+	library(ts); plot(stl(ts(rep(1:7, 15), freq = 7), s.win = "per"))
+
+    o	Using scan() with a 0-length `what' argument now gives an error
+	message rather than a segfault.
+
+    o	Loading .Random.seed could extremely rarely and with some
+	generators reject a value as NA_INTEGER when it was valid.
+
+    o	save(..., ascii=TRUE) created broken files when saving strings
+	containing special characters (ASCII code > 127).
+
+    o	mean(c(1,NA,NA,NA)[-1], trim = .1, na.rm = TRUE) doesn't give an
+	error anymore.
+
+    o	As the supplied afm files are not properly in the ISOLatin1
+	encoding, the font metric for "-" was wrong since 0.63 on a
+	postscript/xfig device, and randomly wrong in 1.2.0.  It will
+	now be correct (but the files remain incorrect: C45 is "minus"
+	not "hyphen" and there are missing slots).
+
+	Metrics for the duplicated characters (acute, dieresis,
+	macron, space) in ISOLatin1 encoding are now correct for both
+	occurrences: previously only one was present.
+
+    o	The data-time functions try harder to guess the DST setting
+	when the OS does not know, as some OSes were printing times
+	in DST if this was marked as unknown.
+
+    o	Setting par(pty=) after par(pin=) or par(plt=) was having no
+	effect until the margins were set.
+
+    o	Nested \describe sections in .Rd files have (again) nested
+	indentation when converted to text.
+
+    o	Concatenation of C strings by ## is no longer used, to avoid
+	spurious warnings from some recent versions of gcc.
+
+    o	dev.copy2eps() allows a `paper' argument to be passed to
+	postscript().
+
+    o	file.show() handles the case of zero files better.
+
+    o	formula.lm uses object$formula if it exists, in preference
+	to object$terms.
+
+    o	strsplit() is corrected for an empty split pattern.
+
+    o	kronecker() now does a better job when creating dimnames.
+
+    o	Better handling of input dimnames in fourfoldplot().
+
+
+
+		CHANGES IN R VERSION 1.2.0
+
+
+NEW FEATURES
+
+    o	There is a new memory management system using a generational
+	garbage collector.  This improves performance, sometimes
+	marginally but sometimes by double or more.  The workspace is
+	no longer statically sized and both the vector heap and the
+	number of nodes can grow as needed.  (They can shrink again,
+	but never below the initially allocated sizes.)	 See ?Memory
+	for a longer description, including the new command-line
+	options to manage the settings.
+
+    o	values of `--min-nsize' up to 50M (2Gb on 64-bit Solaris) are
+	allowed.
+
+    o	A (preliminary) version of S4-like connections has been added,
+	and most functions which take a "file" argument can now work
+	with a connection as well as a file name.  For more details,
+	see the chapter on Connections in the R Data Import/Export
+	manual.
+
+    o	New command-line option `--no-restore-history' implied by
+	`--vanilla'.
+
+    o	Command-line option `--no-restore' is now `--no-restore-data'
+	and `--no-restore' implies `--no-restore-*' (currently `data'
+	and `history').
+
+    o	The more recent GNU regex from grep-2.4.2 is used.  This uses
+	locale-based ordering for ranges on platforms with strcoll.
+
+    o	The print routines now escape " (as \") in a character string
+	only when it is printed as a quoted string.  This makes
+	print(, quote=FALSE) and cat() consistent.
+
+
+    o	The standard methods for add1() and drop1() now attempt to cope
+	with missing values by using a subset of the data that is
+	`cleaned' by na.action for the maximal model under consideration.
+
+    o	anova() for 3 or more lm objects now behaves compatibly	with S
+	and anova.glmlist().  The old behaviour is still available by
+	calling anovalist.lm() directly.
+
+    o	anova() for multiple lm and glm objects no longer truncates the
+	formula printed. There is much more extensive documentation
+	for anova() methods.
+
+    o	New method as.data.frame.table() for converting the array-based
+	representation of a contingency table to a data frame containing
+	the classifying factors and the corresponding counts.
+
+    o	New function assocplot() for producing Cohen-Friendly
+	association plots.
+
+    o	autoload() accepts lib.loc and other arguments to library()
+
+    o	bxp() has new argument `frame.plot', as plot.default().
+
+    o	contour() now has `axes' and `frame.plot' args.
+
+    o	contrasts(, FALSE) now always returns an identity matrix,
+	to make model.matrix compatible with S. This affects models
+	such as lm(y ~ o - 1) where o is an ordered factor.
+
+    o	`where' command added to debug().
+
+    o	demo(dynload) (which used the superseded call_R interface)
+	has been removed.
+
+    o	Class "dendrogram" in package mva providing general support
+	for tree-like structures (plotting, cutting, ...).
+
+    o	dev.copy2eps() and dev2bitmap() preserve the aspect ratio of the
+	copied device if just one of `width' and `height' is specified.
+
+    o	dump() has new argument append, argument `fileout' has been
+	renamed to `file' (for consistency with all other functions).
+
+    o	edit.default() now checks for an unset `editor' argument, and
+	terminates with an error if the editor cannot be run.
+
+    o	The `mode' argument of exists() and get() is interpreted
+	as mode(x) rather than typeof(x), following S.
+
+    o	New functions file.access() and file.info() for information on
+	files on the user's file systems.
+
+    o	New convenience function file.copy().
+
+    o	file.show() allows `pager' argument to be an R function, and
+	consequently, the `pager' option can be an R function.
+
+    o	Formatting (and printing) of data.frames with complex objects is
+	improved.  toString was added as a new function.
+
+    o	format() has a new argument `justify' controlling the
+	justification of character strings (and factors).
+
+    o	Formula objects now have an environment and code manipulating
+	them needs to take care to preserve it or set an appropriate
+	environment.
+
+    o	New function fourfoldplot() for producing fourfold displays of
+	2 by 2 by k contingency tables.
+
+    o	gc() now reports the space allocated, not the space free,
+	since the total space is now variable.
+
+    o	New primitive gc.time() to report on time spent in garbage
+	collection.
+
+    o	hclust() takes new argument `members' allowing dissimilarity
+	matrices both for singletons (as until now) and clusters.
+
+    o	help() has an additional `pager' argument which may be passed to
+	file.show()  {useful for ESS fans}.
+
+    o	There is now an R `Hershey' list object for Hershey vector font
+	computations and documentation.
+
+    o	hist() now returns a "histogram" object and calls the new
+	function plot.histogram() for plotting.
+	It now also allows character labels.
+
+    o	if(*) now gives a more intelligible error message
+	when "*" cannot be coerced to logical.
+
+    o	inherits() is now an internal function and compatible with S.
+
+    o	New function lag.plot() in package ts.
+
+    o	legend() has a new argument pt.bg.
+
+    o	The commands history can be loaded with loadhistory(), saved
+	with savehistory() and displayed with history(), under Windows
+	and under Unix using the readline or GNOME interfaces.
+
+    o	mad() has new (logical) arguments "low" and "high" (the first
+	giving S compatibility).
+
+    o	New function manova() and summary method.
+
+    o	Function mantelhaen.test() in package ctest now can deal with
+	general I x J x K tables.  In addition, in the 2 x 2 x K case,
+	it can also perform an exact conditional test of independence,
+	and gives confidence intervals for the common odds ratio.
+
+    o	model.frame() now uses the environment of its formula argument,
+	rather than the parent environment, to evaluate variables not
+	found in the data argument. See help(formula).
+
+    o	mosaicplot() can now also create extended mosaic plots, which
+	visualize the residuals from a log-linear model using color and
+	outline.
+
+    o	New utility function n2mfrow().
+
+    o	nlm(check.analyticals = TRUE) now warns if the supplied
+	gradient and/or hessian are of the wrong length.
+
+    o	New function object.size() to give approximate memory allocation.
+
+    o	optim() now checks the length of an analytical gradient at
+	each evaluation.
+
+    o	The L-BFGS-B method of optim() now support tracing, at several
+	levels of detail.
+
+    o	options(check.bounds = TRUE)  makes each vector extension
+	by sub-assignment ("x[.] <- .") produce a warning.
+
+    o	options(width) now admits to a limit (previously 200, now
+	10000) and gives a more informative message if out of range
+	(as it does now for digits and expressions).
+
+    o	Function path.expand() to do tilde-expansion on file paths.
+	This provides an interface to R_ExpandFileName, which is now
+	a documented entry point.
+
+    o	.Platform has new component "endian", useful for binary file
+	manipulations.
+
+    o	plot.function() and curve() now take xlim as default for (from,to)
+	if the former is specified.
+
+    o	plot.hclust() allows arguments main, sub, etc, and has non-empty
+	defaults for these.
+
+    o	plot.ts(x,y) now allows to suppress labels and lines;
+	it is better documented.
+
+    o	The postscript() driver now allows a user-specified family so,
+	for example, one can use the same fonts in diagrams as in
+	running text.
+
+    o	The postscript() driver allows its prolog to be changed (by an
+	expert) via object .ps.prolog.
+
+    o	prop.table() and margin.table() now work with an empty `margin'.
+
+    o	Formerly deprecated function provide() is now defunct.
+
+    o	New functions read.delim() and read.delim2() to make it
+	easier to read delimited files as Windows programs tend to
+	create (usually TAB separated).
+
+    o	New readLines() function to read a file line-by-line.
+
+    o	New functions reshapeLong() and reshapeWide() emulating Stata's
+	reshape command. These are still labeled experimental and
+	might be improved (or removed) in later versions.
+
+    o	row.names() and row.names<-() are now generic functions which
+	call rownames() as their default method and have methods for
+	class "data.frame".
+
+    o	New function Rprof() for profiling R expressions under Unix.
+	Configure with `--enable-R-profiling' (on by default) to make
+	this operational.
+
+    o	save(, oldstyle=TRUE) has been withdrawn.
+
+    o	scan() and read.table() have a new argument `fill' which can
+	be set TRUE to allow reading files with unequal number of
+	fields per line. (Programs like Excel have a habit of creating
+	such files when exporting.)
+
+    o	scan() and read.table() have a new argument `blank.lines.skip'
+	to allow blank lines to be read.
+
+    o	scan() now reads empty character fields as "" not "NA" unless
+	"" is included in na.strings.
+
+    o	smooth() in package eda has a better default (3RS3R instead of
+	3RSR) and more arguments, e.g. `twiceit' for some S
+	compatibility and `kind = "3R"' for running medians of 3.
+
+    o	strsplit() has a new argument `extended' controlling whether to
+	use extended (the default) or basic regular expressions for
+	splitting.
+
+    o	Sys.getenv() becomes the preferred name for getenv(), which is
+	now deprecated.
+
+    o	New functions Sys.getlocale() and Sys.setlocale() to query and
+	set aspects of the locale of the R process, and
+	Sys.localeconv() to find the default decimal point, etc.
+
+    o	New function Sys.info() for platform, host and user information.
+
+    o	New function Sys.putenv() to set environment variables.
+
+    o	New function Sys.sleep() to suspend execution for a while.
+
+    o	Date-time support functions with classes "POSIXct" and
+	"POSIXlt" to represent dates/times (resolution 1 second) in
+	the POSIX formats.  Functions include Sys.time(), as.POSIXct(),
+	strftime(), strptime(),	 and methods for format, plot, c, ....
+	There are conversion functions for objects from packages
+	`date' and `chron'; unlike those packages these support
+	functions know about time zones (if the OS does).
+
+    o	tcltk package now has tkpager() which is designed to be used
+	by file.show() and shows help pages etc. in separate text
+	widgets.
+
+    o	tcltk is now more careful about removing the objects
+	representing widgets in the R workspace when the windows are
+	destroyed (e.g. using window manager controls)
+
+    o	tcltk package has had several canvas functions implemented.
+
+    o	tcltk now wraps callbacks to R in a try() construct - the
+	nonlocal return from R's error handling could bring the Tk
+	system into a strange state.
+
+    o	New demos for tcltk: tkfaq, tkfilefind, tkcanvas.
+
+    o	termplot() now has an `ask' argument.
+
+    o	terms() creates objects which now inherit from class "formula",
+	so for example as.formula(terms.object) needs to be replaced by
+	formula(terms.object).
+
+    o	traceback() is now printed un-quoted and labelled by the
+	frame number.
+
+    o	New argument `recursive' to unlink(). The default behaviour on
+	Unix is now that of rm -f, not rm -rf.	unlink() is now
+	compatible across platforms.
+
+    o	New functions write.ftable() and read.ftable() for writing out
+	and reading in flat contingency tables.
+
+    o	write.table() now quotes factor columns if quote=TRUE, and has
+	a new argument `qmethod' to control the escaping of
+	embedded quotes in character or factor columns.
+
+    o	New function xtabs() providing a formula interface to cross
+	tabulation.
+
+
+    o	The R Data Import/Export Manual (`R-data.texi') has been added.
+
+    o	The set of valid R names is now described (at last) in R-intro.
+
+    o	The R Language Manual (`R-lang.texi') is now included and built
+	in the same way as the other manuals.
+
+    o	The R manuals (R-intro, R-exts, ...) are converted to HTML
+	format (if the necessary texinfo tools are available) and
+	linked into the top HTML help page.
+
+    o	The header file `R.h' and those included from it are now usable
+	with C++ code.
+
+    o	New header file `R_ext/Boolean.h': Rboolean type with TRUE and
+	FALSE enum constants.
+
+    o	New header file `Rgraphics.h' to allow addons to use graphics
+	structures.
+
+    o	Recommended include file `Rmath.h' replaces `R_ext/Mathlib.h'.
+
+    o	Bessel, beta and gamma functions are now documented as part of
+	the API.  Undocumented entry points are no longer in the
+	header files, and some are no longer visible.
+
+    o	Calloc & Realloc failures now give size information.
+
+    o	DESCRIPTION file in installed packages has a new `Built:' field
+	giving build information (R version, platform, date).
+
+    o	Much improved support for C++ code in add-on packages under Unix.
+	New configure/build variables SHLIB_CXXLD and SHLIB_CXXLDFLAGS
+	for specifying the command and flags needed for building shared
+	libraries containing objects from a C++ compiler.
+	Configure tries to get these right in typical cases (GNU tools
+	and/or common platforms).
+	C++ source suffixes `.cpp' and `.C' are now recognized in
+	addition to `.cc'.
+
+    o	Configure/build variables MAINLD and MAINLDFLAGS are renamed to
+	MAIN_LD and MAIN_LDFLAGS for consistency with other MAIN_* vars,
+	similarly for SHLIBLD and SHLIBLDFLAGS.
+
+    o	Configure/build variable FLIBS now only contains the Fortran 77
+	intrinsic and run-time libraries needed for linking a Fortran 77
+	program or shared library (as determined by configure).	 BLAS
+	library detection was extended, with results saved to the Make
+	variable BLAS_LIBS which is also available to add-on packages.
+
+    o	R CMD build and check have been completely re-written in Perl.
+	In addition to running examples, check now also checks the
+	directory structure and control files, makes a temporary
+	installation and runs LaTeX on the help pages.	Build has been
+	reduced to cleaning, rewriting indices and creating tar files.
+
+	The same files of Perl code are now also used under Windows.
+
+    o	Add-ons for utilities like Perl or LaTeX have now a central
+	place in $R_HOME/share. Migration of existing files might take
+	a while, though.
+
+    o	Preliminary support for building R as a shared library (`libR')
+	under Unix.  Use configure with option `--enable-R-shlib' or do
+	`make libR' in directory `src/main' to create the shared
+	library.
+
+	There is also a linker front-end `R CMD LINK' which is useful
+	for creating executable programs linked against the R shared
+	library.
+
+
+BUG FIXES
+
+    o	New "[.AsIs" function fixing PR#665.
+
+    o	Effectively zero-length arrows() are omitted (rather than getting
+	a system- and device-dependent arbitrary angle).
+
+    o	barplot() passes "..." down to plot.window as documented.
+
+    o	bxp(*) now obeys axes, xaxt, yaxt & ylim arguments (again?).
+
+    o	contour(.., labcex = 0.6, .. , vfont = c("sans serif", "plain"), ..)
+	now behaves as it has been documented, PR#740.
+
+    o	D(.) is now more correctly documented, has second argument
+	"name" instead of "namevec" (S compatibility), and gives a warning
+	when name has not length 1.
+
+    o	dbinom() and dpois() now use a the accurate algorithm of C.Loader;
+	e.g., 1 - 2*sum(dbinom(0:999, 1999, 1/2)) is now zero instead of 1e-12.
+
+    o	dbeta(), df(), dt(), dnbinom(), dgeom(), dgamma(),
+	now all use the more accurate algorithms of dbinom() and dpois();
+	More limits are computed correctly, e.g. dgeom(Inf,*), or
+	dnbinom(*,*,p=0), and integer argument coercion is more consistent.
+
+    o	dbeta(x, a,b) was giving NaN and Inf for large a and b.
+
+    o	The math functions now (again!) return NaN (not NA)
+	when the warning message says so (e.g. gamma(-1)).
+
+    o	Paper sizes for "a4" and "legal" were interchanged in dev.print().
+
+    o	Improved logic in the re-scaling of plots in dev.print().
+
+    o	dev.print() and dev.copy2eps() now evaluate arguments as
+	needed, so e.g. dev.print(file="junk.ps", horizontal=F) will
+	work (previously =FALSE was needed).
+
+    o	Now dweibull(0,1) == dexp(0) == 1 for consistency.
+
+    o	Changing column modes from factor/character to numeric in
+	edit.data.frame() (and fix() on data frames) is now allowed.
+
+    o	gctorture() did return a value although documented not to, that of
+	gcinfo.	 It now returns the previous setting of gctorture.
+
+    o	glm() now follows lm() in dropping unused factor levels when fitting.
+
+    o	hist() now labels y-axis Density rather than Relative Frequency
+	if freq=FALSE. The `intensities' component of the result is
+	now deprecated and `density' should be used instead.
+
+    o	hsv() truncation bug fixed (hopefully correctly this time...)
+
+    o	library.dynam() no longer fails if the library appears more than
+	once in lib.loc.
+
+    o	lm.fit & lm.wfit (and hence lm) now give understandable error
+	messages when there are 0 non-NA cases.
+
+    o	match() does not always use "as.character()" anymore, fixes PR#741.
+
+    o	Trimmed mean() and median() are no longer attempted for complex
+	data.
+
+    o	median() of empty vector is now NA.
+
+    o	model.matrix() can now handle NAs in factors.
+
+    o	model.matrix() now uses ":" not "." in labelling interaction
+	terms, as terms() and the prototype do (PR#701).
+
+    o	old.packages() now sorts version strings correctly by
+	splitting at "." and "-".
+
+    o	optim() has several new precautions against bugs, one of which was
+	an infinite loop in the L-BFGS-B method if the derivatives
+	were inaccurate (or if numerical derivatives were used and the
+	problem was badly scaled).
+
+    o	pairs() now obeys an "cex = " argument, and so does panel.smooth().
+
+    o	pf() had a bug in the code handling large noncentrality
+	parameters, going all the way back to the original Appl.Stat.
+	algorithm (PR#752). This affected pbeta() as well.
+
+    o	phantom(expr) in plotmath was used to calculate the bounding
+	boxes, but the space was not actually used in typesetting the
+	expression (PR#622).
+
+    o	Problem with subsetting and "..." arguments in plot.formula()
+	(PR#757)
+
+    o	plot.lm() has a better default for its `ask' argument.
+
+    o	plot.new() does *NOT* allow an argument (`ask') anymore.
+	This has not been working (since ~ R 0.49), is low-level and
+	hence should not break anything.
+
+    o	plot.stl() now uses correct time labels for tickmarks of x-axes.
+
+    o	pnorm() is somewhat more accurate (SIXTEN=16; PR#699) and
+	`infinitesimally faster' in some cases, thanks to James M. Rath.
+
+    o	Failure to open a postscript() device now gives diagnostic warnings.
+
+    o	Zero the widths of undefined chars in postscript().
+
+    o	Make font metrics local to the device in postscript(), so
+	that simultaneous instances of postscript/xfig/bitmap can use
+	different values for `family'.
+
+    o	postscript() no longer uses the initclip operator, which
+	was against the EPSF specifications and broke inclusion of
+	graphics in some documents.
+
+    o	In postscript(), cleaned up the internals to fix some
+	cases where it was unclear whether a variable was meant to set
+	or track device status.
+
+    o	In some cases, emitted postscript violated the PS Document
+	Structuring Conventions since some settings were carried over from
+	one page to the next. (Caused breakage when turning
+	antialiasing on/off in "gv" for instance.)
+
+    o	The DocumentMedia comment in postscript() output was wrong,
+	and the font DSC comments have been changed to the preferred
+	style for DSC 3.0.
+
+    o	pretty(x <- c(2.8,3))[1] - x[1] is now 0; in general,
+	p <- pretty(x) now again fulfills  p[1] <= x[] <= p[length(p)].
+
+    o	print.dist() {mva} now passes "..." to print.default.
+
+    o	print.noquote("ABC") now works.
+
+    o	prompt(fn) uses fn's "source" attribute if it has one.
+
+    o	In prop.test(), the conf.int. now contains the estimate,
+	even when that is 0 or 1 (PR#714).
+
+    o	qnorm(0) and qnorm(1) now give -/+ Inf (again!).
+
+    o	qt(*, log = TRUE) has a somewhat extended working range.
+
+    o	Specifying col.names in read.table() now overrides any header
+	line in the data file.
+
+    o	Bug caused rpois() to generate biased variables in some cases.
+
+    o	scale(scale=TRUE) gave all NAs in any columns containing NAs.
+
+    o	eda's smooth() now computes Tukey's endrule properly.
+
+    o	smooth.spline()'s GCV method now uses a more accurate formula
+	when there are repeated x points.
+
+    o	stars() fix (for 0/NA columns) PR#739.
+
+    o	data(state)'s  state.abb  has been corrected to use official
+	2-letter abbrevations.
+
+    o	strsplit() had two memory leaks.
+
+    o	tcltk interface now has better string quoting and no longer breaks on
+	strings with unbalanced braces
+
+    o	tcltk callbacks used to include a "%..." argument on the call if the
+	callback function had a "..." argument. This is no longer the case.
+
+    o	t.test() allows an input vector of length 2.
+
+    o	Method dispatch in primitive functions such as `c' only
+	occurred if they were called by that name, and in particular
+	not if used in lapply or called as .Primitive("c").  It now
+	always occurs.
+
+    o	Method dispatching now forces evaluation of promises, so
+	autoloading works with methods.
+
+    o	c(0.099999994, 0.2) prints as 0.1 0.2 not 0.10 0.20 after
+	correcting the precision calculations.
+
+    o	Internal function fprec was overflowing for numbers around
+	1e-305.
+
+    o	[internal] .C("strsignif",*) doesn't use fixed size strings anymore
+	(possible overflow).
+
+    o	ff[i] <- r  now works for formula (and potentially other
+	non-standard) objects ff.
+
+    o	Errors in argument matching could cause crashes if error
+	handler was used.
+
+    o	NULL == ... now gives logical(0) instead of an error.
+	This fixes a bug with e.g. apply(X,2,median, na.rm = TRUE) and
+	all(NULL == NULL) is now TRUE.
+
+    o	polylines with more than 64K pieces will now work on more X
+	servers with the x11 device.
+
+    o	R CMD Rd2dvi now again works with file names containing "_" or "$".
+
+    o	R CMD Rdconv now handles .rd as input file extension correctly
+	in all cases.
+
+    o	make install could fail if there were no shared libraries to
+	install (e.g. on vanilla Solaris).
+
+    o	Rd's \describe{} constructs are converted better to text
+	output, and \items of >=22 chars now work.
+
+    o	Help aliases "(" and "{" now work, apart from as PDF hyperlinks.
+
+    o	NA || x , NA && y (etc) do not give errors anymore, but work as
+	the "|" and "&" operators and as documented (PR#749).
+
+    o	Coercing lists to functions failed if argument list was empty.
+	(PR#743). Also coercing functions to lists was wrong when the
+	body was a single constant.
+
+
+	**************************************************
+	*						 *
+	*	       1.1 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 1.1.1
+
+
+NEW FEATURES
+
+    o	data(), example() and help() now search the loaded packages, then
+	in their .lib.loc argument, the latter as pre-0.99.0.  See
+	their help pages for the precise details.
+
+    o	help() has a new argument `try.all.packages' set by the option
+	"help.try.all.packages". If help is not found in the normal
+	path and this is TRUE then a search is made of all packages
+	for possible matches.
+
+    o	Improved detection of Tcl/Tk at configure time.	 One can either
+	set configure variables TCLTK_CPPFLAGS and TCLTK_LIBS, or give
+	the locations of the tclConfig.sh and tkConfig.sh scripts via
+	the `--with-tcl-config' and `--with-tk-config' arguments.
+
+    o	prop.trend.test() - test for trend in proportions.
+
+    o	write.table() has new argument `dec' for setting the decimal
+	separator (SPSS/Windows and probably others want commas in
+	continental European locales).
+
+    o	Advance warning: save(, oldstyle=TRUE) will no longer be
+	available after this release.
+
+    o	Symbols can now be coerced to expressions, making
+	as.expression(quote(a)) work
+
+
+BUG FIXES
+
+    o	data() now works correctly with data-only packages.
+
+    o	Standalone Mathlib can now be made if builddir = srcdir
+	(working around an undocumented autoconf `feature').
+
+    o	Check for pre-1.1.0 saved object .Postscript.options in postscript().
+
+    o	More stringent checks on the arguments to dataentry().
+
+    o	Specifying xlab as an expression now works again.
+
+    o	dev2bitmap() works again.
+
+    o	Numerous uses of `F' and `T' replaced by `FALSE' and `TRUE'.
+
+    o	bxp() now extends `ylim' properly when notch=TRUE (and a
+	notch is more extreme than other stats).
+	Also, varwidth is okay again, see example(split).
+
+    o	Making manuals without making R first now works.
+
+    o	princomp() now works when some eigenvalues are tiny negative
+	values (which are treated as zero).
+
+    o	SearchEngine.html was not installed when builddir != srcdir.
+
+    o	lm.{w}fit(x,y,..) now work when x has no column names.
+	These functions no longer add and subtract n zeros when there's no
+	offset.	 They are now documented somewhat.
+
+    o	Some HTML files used src="R.css" instead of href="R.css" causing
+	some browsers to ignore the style sheet.  `R.css' now passes the
+	w3c CSS validator and gives the intended results with Internet
+	Explorer.  `R.css' is copied to all library directories.
+
+    o	The data editor no longer crashes when entries contain more than
+	45 characters, and works correctly if the field width is
+	larger than the window width.
+
+    o	Recording plots used to ignore graphics events before the last
+	replay.
+
+    o	plot(), points(), etc now give warnings and error for invalid
+	`type' arguments.
+
+    o	matplot() now allows the same `type's as plot().
+
+    o	dev.print() and dev.copy2eps() now work when called from a
+	function, such as dev2bitmap().
+
+    o	anova.glmlist works correctly with decreasing models and
+	test="F" now gets the correct residual df.
+
+    o	Functions created (not just edited) with fix() now get
+	environment .GlobalEnv not the body of fix.
+
+    o	Rdconv was ignoring OS-specific parts of the files with some
+	Perl versions. (This did not affect installing packages.)
+
+    o	R CMD check  did not run more than one specific test.
+
+    o	keyword2html omitted items when changing up a level, so
+	the HTML search engine keyword list was missing `data' and
+	`utilities', for example.
+
+    o	aov() with multiple strata was setting some spurious options.
+
+    o	Under UNIX, help(, htmlhelp=TRUE) uses the linked copy of the
+	HTML file in ~/.R if help.start() has been run recently in the
+	session, so the style sheet and hyperlinks should now be found.
+
+    o	dotplot's arguments `color' and `lcolor' are now interpreted
+	correctly if they are vectors of length > 1.  (It is not clear
+	from the help that this was ever intended.)
+
+    o	Error messages of e.g. do.call() are now spaced properly.
+
+    o	summary(.matrix | .data.frame) now respects a `digits' argument.
+
+    o	scan() recognises quoted strings by default again. The default
+	for the quote= argument got set wrongly when it was
+	introduced. They are, however, turned off when using sep="\n",
+	since you probably want unprocessed lines of text in that
+	case.
+
+    o	fixed buglet where scan() would double a character following a
+	terminating quote symbol.
+
+    o	kmeans was failing on vector inputs (although not documented
+	to accept such).
+
+    o	fixes in predict.lm (John Maindonald)
+
+    o	NCOL got confused by 1D arrays, which it now reports have 1
+	column rather than NA.
+
+    o	rep(1:2,c(1,-1)) segfaulted (PR 619)
+
+    o	x[["a"]] <- y rejected some object types for y (e.g.
+	expressions) which were accepted in x$a <- y (PR
+
+    o	data editor froze on empty data frame, and more generally on
+	zero-length cols.
+
+    o	data editor did not handle factors properly in numeric-edit
+	mode.
+
+    o	table() misbehaved on empty (or all-NA) data
+
+    o	data editor now handles empty data frames, allowing data entry
+	to begin with  dd<-edit(data.frame())  or
+	dd<-data.frame() ; fix(dd)
+
+    o	plotting math expressions when specified as a LANGSXP or
+	SYMSXP didn't work in several cases: plot(1,main=quote(a))
+	would segfault and there were problems with title(), text(),
+	and mtext() as well.
+
+    o	optim(): no more segfault for REPORT=0; corrected error msg; ..
+	maxit default is now okay also when "L-*-B" is chosen automatically.
+	Using (abs|rel)tol with that method now gives a warning.
+
+    o	text() did not respect its `xpd' argument, the default of which
+	is still to use par("xpd"); gave a wrong error message in one case.
+
+    o	polygon() had an incorrect documentation and silently disregarded
+	"..." arguments.
+
+    o	predict.loess was giving incorrect results (those for the
+	non-robust fit) in the case of a fit with family = "symmetric"
+	and surface = "direct" and prediction with se = FALSE.	The
+	fitted values were missing for such fits.
+
+    o	Better rendering of ^ and ~ in latex in \code{} (and they should
+	not appear outside code and verbatim sections).
+
+    o	Fixed unterminated string problem with lty (PR 584)
+
+    o	Fixed scoping problem with quasi() family (PR 614)
+
+
+		CHANGES IN R VERSION 1.1.0
+
+
+NEW FEATURES
+
+
+    o	There are several changes to the compile and link flags, and
+	an attempt is made to use /usr/local/include and
+	/usr/local/lib on all platforms.  Please read config.site and
+	INSTALL if you have set flags for previous versions.
+
+    o	New package tcltk, providing interface and language bindings for
+	the Tcl/Tk graphical interface toolkit. This makes it possible
+	to do some rather nifty things with buttons and entry fields
+	and so forth in very few lines of code.	 It is still somewhat
+	experimental so don't go churning out thousands of lines of
+	GUI code and then blame us for changing the API later on. It does
+	not currently work with GNOME because of event loop differences.
+	See demo(tkttest) and demo(tkdensity).
+
+    o	Internally using global R_Expressions [getOption("expressions")]
+	dramatically speeds up eval.c.
+
+    o	The X11 support code is now in a separate shared library, and
+	option `--gui=none' will run R without X11 support (and so x11()
+	and data.entry() will not be available).  R BATCH sets --gui=none.
+
+    o	Configuring without X (e.g., `--without-x') does work (at last).
+	configure will report if X11 support has been included.
+	If R has been built without X11 the default GUI is "none".
+
+    o	GNOME support files have moved from src/gnome to src/unix/gnome
+	and the code is now in a separate shared library.  Both
+	`--gui=GNOME' and `--gui=gnome' are allowed.
+
+	The main graphics device for use with GNOME is now called
+	gtk(); the x11() device from the X11 support can also be used.
+	(The gnome() device remains unreliable, and is by default
+	unavailable.)
+
+	All GNOME support now installs in R_HOME/gnome to make it
+	easier to package separately.
+
+    o	Command line option `-g' can now be used as short version of
+	`--gui'.
+
+    o	The "keep.source" option now defaults to interactive()
+	instead of TRUE.
+
+    o	Many interface enhancements to the data editor, which now uses
+	(by default) variable-width columns and much less redrawing.
+	See ?dataentry for a description of the current user interface.
+
+    o	R under Unix can be sent SIGUSR1 to quit and save or SIGUSR2
+	to quit and save without running .Last and on.exit
+	expressions.
+
+    o	Added ability to use the graphics device driver to perform
+	horizontal justification of strings.  This is used in the
+	x11(), windows(), postscript() and xfig() drivers and will
+	lead to more accurate placing of centred or right-justified
+	strings.
+
+    o	Formulas created with the tilde operator now contain the
+	environment in which they were created.	 The environment of a
+	formula can be accessed with the environment() function.  This
+	facility is still experimental; it is intended to help
+	simplify writing modeling functions.
+
+
+    o	$ and $<- are now generic functions.
+
+    o	add1.glm() and drop1.glm() now allow test="F", which is
+	appropriate for models with estimated dispersion.
+
+    o	approx() and approxfun() have an extra argument ties= to control
+	handling of tied x values
+
+    o	New function as.symbol(), identical to as.name().
+	is.symbol and is.name() are now identical by definition;
+	before, they were equivalent by implementation.
+
+    o	attach() now works for R data files.
+
+    o	axis() now has additional arguments.  The argument "tick" turns
+	tick drawing on and off (on by default).  Additional arguments
+	line, pos, and outer; allow more flexible placement of axes.
+
+    o	New device bitmap(), like dev2bitmap() but a stand-alone device.
+
+    o	boxplot() returns (and bxp() accepts) a list containing the summary
+	statistics for the boxes (changed from a list of elements one for
+	each box).
+
+    o	file="|cmd" is allowed (to pipe output to `cmd'), under cat()
+	and postscript() and functions that use them (for example, write()).
+
+    o	New functions chartr() for general-purpose character translation
+	in character vectors, and tolower() and toupper() for converting
+	alphabetic characters to lower-case and upper-case, respectively.
+
+    o	coplot() has new option subscripts=TRUE to pass the indices
+	to the panel function.
+
+    o	cor.test(method="spearman") might give slightly better P values,
+	since it now relies on pnorm() (with proper tail) instead of alnorm.
+
+    o	dbinom() works for size=0 (where appropriate).
+
+    o	New trivial function det() for determinant computation
+	(the example in ?qr did not seem to be sufficient).
+
+    o	If present in the package, a function .Last.lib will be called
+	when a package is detached.
+
+    o	New function dev.copy2eps() copies the current device to an eps
+	file, taking the size from that of the device.
+
+    o	dev.print() now prints if possible, and takes the size from
+	the device being copied.
+
+    o	edit() or fix() applied to a numeric or character matrix now
+	uses the data editor, if available.
+
+    o	edit.data.frame() edits factors in character mode by default,
+	and will allow the row names to be edited, by default if they
+	are not 1:nrow(name).
+
+    o	expand.model.frame() for adding variables to a model frame.
+
+    o	The handling of estimating the dispersion in glm() fits has been
+	changed for consistency across methods.	 For `binomial' and
+	`poisson' families the dispersion is always taken as one.
+	For `quasibinomial' and `quasipoisson' families it is always
+	estimated (by residual chisq/residual df).
+
+    o	Using "~" when specifying lib.loc (for example to help() or
+	library()) is now supported.
+
+    o	image() has a new argument "breaks" and divides the zlim range
+	into equal-length intervals.
+
+    o	install.packages() and update.packages() have a new `destdir'
+	argument for the directory to which to download the packages.
+
+    o	New function interaction.plot().
+
+    o	Internal cleanup of lapply()'s C code.
+
+    o	library(), require(), and sys.source() have a new argument
+	` keep.source = getOption("keep.source.pkgs") '.
+	This defaults to false, but can be set (also for base) to true
+	by setting the environment variable R_KEEP_PKG_SOURCE to "yes"
+
+    o	Par `lty' in lines() now defaults to par("lty") not "solid",
+	for consistency with plot().
+
+    o	list.files() [aka dir()]: path argument has now default = "."
+
+    o	locator() allows inline graphics parameters (for the plotting
+	it does with type !="n").
+
+    o	New function max.col() from MASS, thanks to V&R.
+
+    o	nlm() can now take additional arguments in ... to be passed to f.
+
+    o	par() returns elements in alphabetical order, and "ann" as a
+	logical (not integer).
+
+    o	.Platform has a new component GUI specifying the GUI in use
+	(which might be "unknown").
+
+    o	plot.formula() searches for a plot method for the left-side of the
+	formula before searching for a plot method for the right-side of
+	the formula.
+
+    o	New bitmap devices png() and jpeg() on Unix/X11. (They were
+	already available on Windows.)
+
+    o	postscript(print.it=TRUE) now does print the plot file.
+	postscript(onefile=FALSE) now produces multiple separate files.
+
+    o	provide() is now deprecated.
+
+    o	New function quade.test() in package ctest for the Quade test
+	for unreplicated blocked data.
+
+    o	quantile(x, probs) now propagates NA/NaN in probs.
+
+    o	Option for user-supplied normal random generator in RNGkind().
+
+    o	read.fwf() is no longer dependent on Perl.
+
+    o	New arguments check.names and strip.white to read.table() and
+	friends.
+
+    o	Functions recordPlot() and replayPlot() save a plot to an R
+	variable and replay it.
+
+    o	residuals.lm() also allows types "partial" and "response"
+	as residuals.glm().
+
+    o	Added col option to rug().
+
+    o	scale() is now generic with scale.default method.
+
+    o	New "call. = TRUE" argument for stop(), and
+	new function  stopifnot(.) -- to be used in "make check".
+
+    o	str(.) has a new optional argument "nchar.max = 128" and truncates
+	strings longer than that.  Also eliminated a few minor glitches.
+
+    o	The symbols() function is now implemented.
+
+    o	New function termplot() with similar functionality to
+	plot.gam() in S.
+
+    o	The parameters to title() which specify the labels may now
+	be specified as a list containing the parameter together
+	with additional modifying par values (cex, col, font) which
+	affect just that label.
+
+	title() also has new line and outer arguments which provide
+	functionality which matches that in axis().
+
+    o	New functions which.min() amd which.max().
+
+    o	The Wilcoxon and Ansari-Bradley tests now optionally return
+	confidence intervals for the location or scale parameter of
+	interest.
+
+    o	New argument `extend' to window() (and updated documentation).
+
+    o	write.table() can now write CSV files in the format Excel expects.
+
+    o	New device xfig() to produce XFig files.
+
+    o	New xyz.coords() utility function to be used for 3D highlevel plots.
+
+
+    o	R CMD build now also works for package bundles.
+
+    o	Rdconv allows an output file to be specified.
+
+    o	Initial support for C++ source code in add-on packages under Unix.
+
+    o	Mathlib can be built as a standalone library: see directory
+	src/nmath/standalone.
+
+    o	The trace() function has two new features.  Giving where= as a
+	function name allows tracing of functions called from a
+	namespace.  A new argument edit= allows inserting arbitrary
+	tracing code in the function.  See the online help for
+	details.
+
+    o	Namespaces and S4 classes/methods should work better
+	together.  Generic function and class definition objects are
+	used in many places where the name of the function or class
+	was used before, which caused problems for non-exported objects.
+
+
+BUG FIXES
+
+    o	The Mathlib functions now use exactly the same values for
+	+/-Inf, NaN and NA as the rest of R in all cases.
+
+    o	Improved automatic remaking.
+
+
+    o	option keep.source was not set correctly before the base
+	package was loaded: some functions in the base package had
+	the source kept.  The memory usage should now be reduced by ca 1Mb.
+
+    o	The base file is no longer closed twice in case of a syntax
+	error (caused segfault on Linux).
+
+    o	The X11 data editor scrolls cells and so allows more than ca 10
+	characters to be entered.  Several interface/redraw errors
+	have been corrected.
+
+    o	Using `destroy' or `close' on the X11 data editor window killed R.
+
+    o	Multiple `destroy' events or X11 errors killed R (PR#400).
+
+    o	Warnings from .Last or closing devices are printed where
+	sensible (e.g. not on GNOME nor Windows console).
+
+    o	add1.glm() and drop1.glm() gave incorrect results in the "Chisq"
+	test option when the scale was estimated.
+
+    o	aggregate() applied to multiple time series lost the series names.
+
+    o	as.hclust.twins() in package mva sets method=NA (PR#538)
+
+    o	ave(1:3) now works (as when is.null(list()) was TRUE years ago).
+
+    o	barplot(c(0.1, 0.5, 1), ylim = c(0, 1)) now works: [xy]axs="i"
+	and exact limits now labels the limits.
+
+    o	by() works when embedded in a function.
+
+    o	The xlab and ylab in coplot() now set the x and y axis labels,
+	as in S.  Supply a second component to label the conditioning
+	variables.
+
+    o	count.fields() and read.table() now have the same default
+	quote = "\"'".
+
+    o	guard against segfault in dataentry(x<-1, Modes = plot), and the like.
+
+    o	dev.print() now checks if the current device is replayable
+	(and not all devices were, despite the documentation).
+
+    o	The gtk() device (formerly x11() under GNOME) was incorrectly
+	returning character information, so in particular `*' was
+	wrongly centred as a plotting symbol.
+
+    o	is.qr() checks not only for $qr, but also for $rank & $qraux, PR#482.
+
+    o	library() will not leave the package on the search path if
+	loading fails (including if .First.lib fails).
+
+    o	lqs(, method="S") rounded k0 on passing to C.
+
+    o	na.omit() now handles vectors and matrices as well as data
+	frames.
+
+    o	plot.lm(*, which=4) now works thanks to Marcel Wolbers.
+
+    o	postscript() now uses the options "papersize" and "printcmd"
+	rather than the values of R_PAPERSIZE in the environment
+	and R_PRINTCMD found at build time.
+
+    o	postscript() now makes use of kerning information in computing
+	string widths.
+
+    o	M <- 2 ; print(ppr(.., nterms = M))  now works.
+
+    o	ppr(, sm.method="spline") had an internal limit of 250 rows:
+	this is now 2500 and is now checked.
+
+    o	predict.lm(,type="terms",se.fit=T) gives correct standard errors
+	(thanks to John Maindonald)
+
+    o	print.ftable() now returns its argument.
+
+    o	proj.aovlist() now gives a non-zero result for strata with
+	no fitted effects.
+
+    o	qnorm() is now based on AS 241 instead of AS 111, and should
+	give precise results up to 16 digits precision.
+
+    o	rgeom(, prob=1) gives 0 rather than NA
+
+    o	rpois(*, lambda) now works when lambda > .Machine$integer.max
+
+    o	strheight("X") with no active device would segfault.
+
+    o	system() is now (partially) functional on systems without popen.
+
+    o	Fixed bug in undoc() - requiring new `chdir' argument
+	for sys.source()
+
+    o	Fixed problem in usemethod() where CAR(call) could be non-symbol.
+
+    o	The x11() device no longer crashes R if a font is not found,
+	and will warn if there is a size mismatch of more than 10%.
+
+
+    o	R CMD Rd2dvi now sorts files alphabetically.
+
+    o	Rdconv now reports if an invalid type is specified (rather
+	than using latex).
+
+    o	Support for Rd conversion to Sd has been reinstated (it was
+	unintentionally removed along with nroff-based conversion to text).
+
+    o	\deqn{} fix in R-exts.texi, PR#523.
+
+
+    o	Linpack.h now makes clear which routines are actually in R.
+
+    o	Entry-point "pythag" is now loaded even though it is not
+	necessarily used in R.	Where "hypot" is available pythag
+	just calls hypot after checking for special values.
+
+    o	call_R will now correctly handle character vector arguments.
+
+    o	The alphabet links on top of HTML function indices with more than
+	100 entries now contain only the letters which are really
+	first letters of at least one entry.
+
+
+
+		CHANGES IN R VERSION 1.0.1
+
+
+BUG FIXES
+
+    o	pgamma(Inf, 1, Inf) gives NaN instead of an infinite loop, PR#462.
+
+    o	Inline xaxt and yaxt parameters were ignored.
+
+    o	Setting the normal RNG was not always recorded in .Random.seed.
+
+    o	\link[pkg]{foo} links were wrongly translated to HTML.
+
+    o	Direct use of show.data() with no args was incorrect.
+
+    o	print.coefmat does sensible things if options
+	show.signif.stars and show.coef.Pvalues are not set correctly.
+
+    o	x <- list(a=1, b=2) ; x["c"] <- 3 now (again) stretches the list
+	rather than give a "subscript out of bounds" error.
+
+    o	Models with response appearing on rhs could cause segfault.
+
+    o	as.data.frame.matrix will now ensure the columns added have
+	non-empty names.
+
+    o	Some (strange?) model formulas could cause memory corruption
+	(thanks to John Fox for digging this up).
+
+    o	Matrix multiplication in cases such as 1:3 %*% t(1:2) is accepted.
+
+    o	Options --nsize and --vsize to R CMD check gave warning
+	messages and only one was accepted.
+
+    o	The autoload()s during startup are "wrapped" such
+	that conflicting objects don't break startup.
+
+    o	cor.test(*, meth="spear") {pkg ctest} now works (again) for n <= 6
+
+    o	scale = 0 in biplot.princomp() now works.
+
+    o	The scores given by princomp(, cor = TRUE) and the rotated
+	values given by prcomp(, scale = TRUE) are now computed from the
+	scaled data.
+
+    o	barplot now works okay when length(col) < length(legend.txt),
+	thanks to Ben Bolker, PR#494.
+
+    o	legend has new args `ncol' and `horiz' thanks to Ben Bolker.
+
+    o	kernel("dirichlet", m=10, r=1) in package ts now works.
+
+    o	save/restore of	 environments containing "..." object should
+	work now.
+
+    o	qhyper should work better for large N.
+
+    o	qbinom(1-1e-16, n, p) , qpois() and qnbinom(*) looped for ever.
+
+    o	as.matrix.data.frame no longer escapes quotes in character
+	vectors.
+
+    o	R would try to save the readline history at the end of
+	non-interactive sessions, causing crashes on some systems.
+
+    o	Subtle roundoff problems caused arrays to be allocated short in
+	loess.c in some cases, leading to segfaults.
+
+    o	Document that postscript(file="") sends the output directly to
+	the default printer.
+
+    o	ts.union(, dframe=TRUE) had a long-standing typo, now works.
+
+    o	save(, ascii=TRUE) had problem with octal escapes in strings
+	when there was a digit following, should work now.
+
+    o	matpoints() and matlines() now also have a "type =" argument
+	with defaults "p" and "l", respectively; PR#506.
+
+    o	The new Perl 5.6 broke our version-detection mechanism. A
+	better one has been inserted.
+
+    o	X11(colortype="gray") failed to work on 8-bit screens, and
+	more generally when colour allocation failed X11() did not
+	revert to monochrome correctly (and did not say it was doing so).
+
+	It was not documented in the help that to change the X11
+	colortype one needs to close all open X11 devices.
+
+    o	loessf.f in modreg defined DSIGN unecessarily and this caused
+	a conflict on AIX.
+
+    o	plot.lm will now work with rlm objects.
+
+    o	start and end behave better when the frequency is not an integer.
+
+    o	aggregate.ts is closer to S-PLUS's aggregate.rts.
+
+    o	quantile(x) now works when x contains several +/- Inf's.
+
+    o	guard against segfault in dataentry(0,0) (or, more
+	realistically, when mistyping data.entry(x,y) as
+	dataentry(x,y))
+
+    o	fixed special cases that caused bad behavior for methods,
+	particularly with nested use of primitive operators when
+	setMethod had been called.  Also fixed some situations that
+	prevented caching methods (and therfore slowed down dispatch
+	seriously) in similar cases.
+
+    o	Packages can now have non-exported classes.  Previously this
+	failed because computations could not find methods for objects
+	from private classes.  Adding a "package" attribute to an
+	object's class attribute (along with a large number of changes
+	to use the package information) fixes this for most cases.
+	(Methods for primitive functions still use global information
+	about classes because of imposed efficiency constraints on
+	primitives.)
+
+    o	untrace() now works with package::function-style references.
+
+
+	**************************************************
+	*						 *
+	*	       1.0 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 1.0.0
+
+
+NEW FEATURES
+
+    o	The entry points [dpq]norm no longer exist: the header file
+	R_ext/Mathlib.h must be used and such code re-compiled.
+
+    o	Header files in R_ext must be given explicitly as e.g.
+	"R_ext/Mathlib.h".
+
+    o	New function  log1p(x) := log(1 + x) , accurate for |x| << 1.
+
+    o	HTML searches can now select between any combination of
+	titles, keywords and object names. The keyword list of
+	SearchEngine.html is automatically built from KEYWORDS.db.
+	Missing links are now resolved using the search engine.
+
+    o	A data subdirectory of the working directory will be
+	searched for data, by default after all the loaded packages
+	(including base).
+
+    o	Data directories can now be zipped as Rdata.zip, provided a
+	list of contents is provided in file `filelist'.
+
+    o	New function try(expr) which provides a user-friendly wrapper
+	to restart().
+
+    o	New function geterrmessage() to retrieve the last error
+	message, for use in try() and user's error handlers, and new
+	option "show.error.messages" to control the printing of error
+	messages.
+
+    o	persp() now labels its axes.
+
+    o	?plotmath documents the plotting expressions facility much
+	more comprehensively, with tables in the examples.
+
+    o	New functions dump.frames() and debugger() allow post-mortem
+	debugging.  See the help on debugger.
+
+    o	New functions by() and merge() to split and join data frames.
+
+    o	Generic methods now do "match before dispatch", so
+	plot(pch=2, y ~ x) invokes plot.formula.  Notice that this will
+	break user code if it has renamed the dispatch argument and
+	uses the original name for a different argument.
+
+    o	Long-named command-line options also allow `--name VALUE'.
+
+    o	arima0() now uses optim() rather than nlm(), and is thereby
+	normally faster and gives more accurate solutions.  Perhaps
+	more importantly, it fails to converge much less often.
+
+    o	Enhanced pairs() function allowing separate upper, lower and
+	diagonal panel functions and control of diagonal labels.
+	(Much of this was contributed by Jens Oehlschlaegel-Akiyoshi.)
+
+    o	Links to R objects in other packages in help files can now be
+	specified explicitly as \link[pkg]{topic} or
+	\link[pkg:maintopic]{topic}
+
+    o	optim() has a new simulated annealing method contributed by
+	Adrian Trapletti.
+
+    o	Hershey vector fonts are available in text() and contour().
+	Documentation for Hershey vector fonts is in help(Hershey).
+
+    o	The HTML function indices (for packages and for all installed
+	functions) and the index to the reference manual now omit
+	methods for generic functions if they would immediately follow
+	the generic and refer to the same file. This reduces the
+	clutter considerably.
+
+    o	New functions points.formula() and lines.formula() to supplement
+	plot.formula(). The latter has been enhanced so that all
+	arguments are now evaluated in the supplied data frame and all
+	subsettable arguments are subsetted. Notice that the data=
+	argument can no longer be given as a positional argument but
+	must be given in keyword form.
+
+    o	The behaviour of pmatch() has been changed to be S-compatible:
+	in particular the meaning of duplicates.ok=TRUE has changed.
+	The help for pmatch and charmatch now gives more precise
+	descriptions, including of their differences.
+
+    o	print.hclust(), hclust() and dist() now store the method
+	that has been used.
+
+    o	If there are unmatched function argument(s), the first found
+	is named in the message, for example
+	`unused argument(s) (xlabel ...)'.
+
+    o	Conversion from Rd to raw nroff is no longer available.
+
+    o	text() now accepts vector "col", "cex" and "font" arguments.
+
+    o	"default" is now a valid argument to RNGkind().
+
+    o	nlm() and optim() will now give up immediately they try to
+	step to a non-finite value: nlm at least would go into an
+	infinite loop.
+
+    o	"mostattributes(obj) <- value" utility useful for careful
+	attributes' inheritance; e.g. for fixing pmax/pmin (see below).
+
+
+BUG FIXES
+
+    o	(0.99.0a) The internal code for strsplit no longer destroys
+	other internal structures, e.g. postscript file output on
+	Linux.
+
+    o	(0.99.0a) nlm() no longer segfaults with Hessian specified.
+
+    o	(0.99.0a) Gnome version plotmath works, kind of
+
+    o	(0.99.0a) edit.data.frame() now handles character vectors
+	better, provided they were generated with I().
+
+    o	(0.99.0a) Attempt to special-case print-buffer allocation
+	with just a format argument was abandoned, since there is
+	no portable way of doing it and it caused compile problem
+	on Alpha.
+
+    o	tempfile("") now works on all Unix platforms, and
+	tempfile("a b c") returns a single name (with spaces in).
+	The file names are now unique across processes (Unix), are
+	guaranteed not to exist and very likely to be unique within
+	an R session.
+
+    o	The search semantics of data(), example() and help() have changed
+	(see their help pages). In particular, they will normally
+	look in the package which was loaded, even if it is not in
+	one of the libraries given in .lib.loc.	 Autoloads are no
+	longer included in the search (as they searched whole packages,
+	not just the autoloaded objects).
+
+    o	The documentation for .Rd files said & must be entered as \&
+	but only the unescaped form was processed correctly. Now both
+	are accepted but & is preferred.
+
+    o	list.files now skips non-existent/unreadable directories with
+	a warning, rather that failing with an error.
+
+    o	Lots of help examples now tidy up the files they created, and
+	detach data frames and libraries they attach.
+
+    o	library(help=foo) lists only contents of first version if
+	multiple matches are found on lib.loc.
+
+    o	round(2.345e-99, 100) now works (not giving 0).
+	C functions fprec() and fround() [= R's signif() and round()],
+	now use R_pow_di(10.0, n) which is clean and more efficient.
+	This changes some results in the least significant bits.
+
+    o	rpois sometimes had problems with mu=0, now special-cased
+
+    o	Rare memory overrun in rpois fixed.
+
+    o	--nsize and --vsize arguments to R CMD check now work.
+
+    o	plot.stepfun had renamed the dispatch argument and used the
+	original name "x" for a different argument which broke on the
+	new `match & dispatch' code. Changed to "xval".
+
+    o	The return value for par() was incorrectly documented, and in
+	consequence cpgram() was not re-setting "pty".
+
+    o	package.dependencies() printed unnecessary debugging messages
+	(version comparison): these have been removed.
+
+    o	backslashes in examples in help files are now converted
+	correctly to latex.
+
+    o	qchisq with non-centrality parameter now does something.
+
+    o	Greek symbols are now converted correctly in HTML help (but
+	only rendered correctly on a few browsers).
+
+    o	rbind(x, y) works when x has no columns.
+
+    o	\tabular in Rd files is rendered better in latex, and long
+	tabular material is now acceptable (and split over pages).
+
+    o	evaluation depth wasn't properly reset by  "next"
+
+    o	Old (pre-0.63.1) .Random.seed would cause problems if used.
+
+    o	Row indexing of data.frames by characters (e.g. y["ab", ])
+	was wrong, as pmatch was not S-compatible.
+
+    o	Contour labels used to be rounded to integers.
+
+    o	Calling rbinom() repeatedly with the same p but different n
+	gave incorrect results.
+
+    o	Rd2contents assumed the \name field was the file name, so
+	searches could lead to non-existent links.
+
+    o	Assigning functions to list elements is not longer disallowed.
+
+    o	Unified usage statement to R CMD xxx for all commands
+
+    o	Using duplicated new string indices in [<- caused a crash on
+	some platforms, e.g. x <- 1:2; x[c("3", "3")] <- 3; x.
+
+    o	rle() can now handle character vectors, as documented.
+
+    o	print.default failed to reset its settings, so, e.g. na.print
+	could persist when printing a list.
+
+    o	[cr]bind could sometimes return an invisible value.
+
+    o	axis() and rug() sometimes extended the axis line too far.
+	rug() always clipped x values to the plot region, but now
+	admits to doing so with a warning.
+
+    o	plot() and axis() got into trouble with very small relative
+	ranges: these are now required to be at least 100x the machine
+	precision.
+
+    o	split.screen(, erase=TRUE) failed to create a new plot, so
+	failed if it was used on a postscript device before other plots.
+
+    o	plotting with lwd = 0 also set the dash length to 0: now
+	dash lengths are scaled up for lwd > 1 but not reduced for
+	0 <= lwd < 1.
+
+    o	plotting a " " vertically caused an X11 error with some fonts,
+	(notably URW fonts on RedHat) causing plot.lm to crash R
+
+    o	F distributions with huge DF now behave more sensibly
+
+    o	Crashes could occur if there was an error in inline
+	parameters, because the call was not being recorded. It is
+	now.
+
+    o	Title field of DESCRIPTION now overrides TITLE file.
+
+    o	R now reports `50 or more warnings', not just 50, as it only
+	displays the first 50.
+
+    o	Resetting the RNG state resets the state of the Box-Muller
+	generator too.
+
+    o	Pointer protection bug in load() code.
+
+    o	Assignment with unknown string index caused memory corruption
+	when used on matrices.
+
+    o	It is now possible to call Fortran routines d1mach and 11mach
+	on platforms which do not append underscores.
+
+    o	Additions to plots by identify() and locator() were not being
+	recorded, and so did not appear when a plot was copied or
+	printed.
+
+    o	The defaults for `na.action' arguments were inconsistently
+	documented. In R the default is taken from the
+	options(na.action) setting, and that defaults to `na.omit'.
+	If there is no `na.action' setting, the default is `na.fail'.
+	For consistency, the default for replications() has been
+	changed.
+
+    o	Fix cases with lambda==0 in Poisson distribution
+
+    o	demo(is.things) had been broken by the introduction of is.element.
+
+    o	palette() didn't check for overflow and was limited to 256
+	colors, so palette(colors()) would segfault. Limit increased
+	to 1024 and check inserted.
+
+    o	C functions fprec() and fround() [= R's signif() and round()],
+	now use R_pow_di(10., n) which is clean and more efficient.
+	This changes some results in the least significant bits.
+
+    o	pmin(c(a=1), 2:3) now works {and pmax(.) too}.
+
+
+	*********************************************************
+	*							*
+	*	News of 0.99.0 and earlier is in file 'NEWS.0'	*
+	*							*
+	*********************************************************
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS.2
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS.2	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS.2	(revision 2476)
@@ -0,0 +1,16534 @@
+				Dear Emacs, please make this -*-Text-*- mode!
+
+
+	This file covers NEWS for R 2.x.y.
+	See 'NEWS' (or doc/html/NEWS.html or doc/NEWS.Rd) for
+	subsequent changes and NEWS.0 and NEWS.1 for earlier ones.
+
+	There is a change in format at 2.10.0: entries from
+	then on are generated from doc/NEWS.2.Rd.
+
+
+CHANGES IN R VERSION 2.15.3:
+
+  NEW FEATURES:
+
+    • lgamma(x) for very small x (in the denormalized range) is no
+      longer Inf with a warning.
+
+    • image() now sorts an unsorted breaks vector, with a warning.
+
+    • The internal methods for tar() and untar() do a slightly more
+      general job for ‘ustar’-style handling of paths of more than 100
+      bytes.
+
+    • Packages compiler and parallel have been added to the reference
+      index (refman.pdf).
+
+    • untar(tar = "internal") has some support for pax headers as
+      produced by e.g. gnutar --posix (which seems prevalent on
+      OpenSUSE 12.2) or bsdtar --format pax, including long path and
+      link names.
+
+    • sQuote() and dQuote() now handle 0-length inputs.  (Suggestion of
+      Ben Bolker.)
+
+    • summaryRprof() returns zero-row data frames rather than throw an
+      error if no events are recorded, for consistency.
+
+    • The included version of PCRE has been updated to 8.32.
+
+    • The tcltk namespace can now be re-loaded after unloading.
+
+      The Tcl/Tk event loop is inhibited in a forked child from package
+      parallel (as in e.g. mclapply()).
+
+    • parallel::makeCluster() recognizes the value random for the
+      environment variable R_PARALLEL_PORT: this chooses a random value
+      for the port and reduces the chance of conflicts when multiple
+      users start a cluster at the same time.
+
+  UTILITIES:
+
+    • The default for TAR on Windows for R CMD build has been changed
+      to be internal if no tar command is on the path.
+
+      This enables most packages to be built ‘out of the box’ without
+      Rtools: the main exceptions are those which need to be installed
+      to re-build vignettes and need Rtools for installation (usually
+      because they contain compiled code).
+
+  C-LEVEL FACILITIES:
+
+    • On a 64-bit Windows platform with enough RAM, R_alloc can now
+      allocate up to just under 32GB like other 64-bit platforms.
+
+  DEPRECATED AND DEFUNCT:
+
+    • Use of col2rgb(0) is deprecated (see the help page for its
+      limitations).
+
+    • The deprecated intensities component returned by hist() is no
+      longer recognized by the plot() method and will be removed in R
+      3.0.0.
+
+    • real(), as.real() and is.real() are now formally deprecated and
+      give a warning.
+
+    • This is formal notice that the non-API EISPACK entry points in R
+      will be removed shortly.
+
+  INSTALLATION:
+
+    • The configure tests for Objective C and Objective C++ now work on
+      Mac OS 10.8 with Xcode 4.5.2 (PR#15107).
+
+    • The cairo-based versions of X11() now work with current versions
+      of cairographics (e.g. 1.12.10).  (PR#15168)
+
+      A workaround for earlier versions of R is to use X11.options(type
+      = "nbcairo").
+
+    • Configuration and R CMD javareconf now come up with a smaller set
+      of library paths for Java on Oracle-format JDK (including
+      OpenJDK).  This helps avoid conflicts between libraries (such as
+      libjpeg) supplied in the JDK and system libraries.  This can
+      always be overridden if needed: see the ‘R Installation and
+      Administration’ manual.
+
+  BUG FIXES:
+
+    • beta(a, b) could overflow to infinity in its calculations when
+      one of a and b was less than one.  (PR#15075)
+
+    • lbeta(a, b) no longer gives NaN if a or b is very small (in the
+      denormalized range).
+
+    • bquote() is now able to substitute default arguments in
+      single-argument functions.  (PR#15077)
+
+    • browseEnv(html = FALSE) would segfault if called from R (not
+      R.app) on a CRAN-style Mac OS X build of R.
+
+    • [[<- for lists (generic vectors) needed to increment NAMED count
+      when RHS is used more than once. (PR#15098)
+
+    • On Windows, warnings about opening a file or pipe with a
+      non-ASCII description were sometimes output in UTF-8 rather than
+      in the current locale's character set.
+
+    • The call() function did not duplicate its arguments.  (PR#15115)
+
+    • TukeyHSD() could give NA results with some na.action methods such
+      as na.exclude().  (Hinted at on R-help by John Fox.)
+
+    • The deprecated svd(X, LINPACK = TRUE) could alter X in R
+      2.15.[12].  (Reported by Bill Dunlap.)
+
+    • Under Windows, file.link() and file.symlink() used the link name
+      twice, so would always fail. (Reported by Rui Barradas/Oliver
+      Soong).
+
+    • summaryRprof(memory = "both") mixed up the units of Vcells and
+      Ncells: it now works in bytes.  (PR#15138)
+
+    • tools::Rd2HTML() would sometimes delete text. (PR#15134)
+
+    • plot() failed for "table" objects containing just one entry.
+      (PR#15118)
+
+    • embedFonts() needed to quote some filepaths.  (PR#15149)
+
+    • parallel::mccollect() handled NULL returns incorrectly (removing
+      the element rather than setting it to NULL).
+
+    • The full reference index (fullrefman.pdf) was missing packages
+      compiler and parallel.
+
+    • The report for optim(method = "L-BFGS-B", control = list(trace =
+      1)) reported the last completed and not the current iteration,
+      unlike other methods and trace levels.  (PR#15103)
+
+    • qt(1e-12, 1.2) no longer gives NaN.
+
+    • dt(1e160, 1.2, log=TRUE) no longer gives -Inf.
+
+    • On Windows the untar() function now quotes the directory name
+      when using an external tar utility, so R CMD check will handle
+      pathnames containing spaces.
+
+    • The version for Windows 8 and Windows Server 2012 is now
+      displayed by win.version().  (Reported by Gabor Grothendieck.)
+
+    • The custom Windows installer target myR in the installer Makefile
+      did not work in 2.15.2.  (Reported by Erich Neuwirth.)
+
+    • aperm(matrix(1:6, 2, dimnames=list(A={}, B={})), "A") no longer
+      segfaults.
+
+    • Expressions involving user defined operators were not always
+      deparsed faithfully. (PR#15179)
+
+    • The enc2utf8() function converted NA_character_ to "NA" in
+      non-UTF-8 locales. (PR#15201)
+
+    • The exclude argument to xtabs() was ignored for "factor"
+      arguments.
+
+    • On Windows, work around an event-timing problem when the RGui
+      console was closed from the ‘X’ control and the closure
+      cancelled. (This would on some 64-bit systems crash R, typically
+      those with a slow GPU relative to the CPU.)
+
+    • On unix Rscript will pass the r_arch setting it was compiled with
+      on to the R process so that the architecture of Rscript and that
+      of R will match unless overridden.
+
+    • On Windows, basename(), dirname() and file.choose() have more
+      support for long non-ASCII file names with 260 or more bytes when
+      expressed in UTF-8.
+
+CHANGES IN R VERSION 2.15.2:
+
+  NEW FEATURES:
+
+    • The X11() window gains an icon: the latter may be especially
+      useful on Ubuntu's ‘Unity’ interface.
+
+      The WM_CLASS should be set in circumstances where the Window
+      Manager failed to make use of X11 resource settings.
+
+      (Contributed by Philip Johnson.)
+
+    • The "Date" and "POSIXt" methods for cut() will accept an unsorted
+      breaks argument (as the default method does, although this was
+      undocumented).  (Wish of PR#14961.)
+
+    • Reference class methods (in the methods package) that use other
+      methods in an indirect way (e.g., by sapply()) must tell the code
+      analysis to include that method.  They can now do so by invoking
+      $usingMethods().
+
+    • More Polish translations are available: for the RGui menus and
+      for several recommended packages.
+
+    • Multistratum MANOVA works. In fact, it seems to have done so for
+      years in spite of the help page claiming it did not.
+
+    • qqline() has new optional arguments distribution, probs and
+      qtype, following the example of lattice's panel.qqmathline().
+
+    • The handling of single quotes in the en@quot pseudo-language has
+      been slightly improved.  Double quotes are no longer converted.
+
+    • New functions checkPoFiles() and checkPoFile() have been added to
+      the tools package to check for consistency of format strings in
+      translation files.
+
+    • model.matrix(~1, ...) now also contains the same rownames that
+      less trivial formulae produce.  (Wish of PR#14992, changes the
+      output of several packages.)
+
+    • Misuse of rep() on undocumented types of objects (e.g. calls) is
+      now reported as an error.
+
+    • The included LAPACK has been updated to 3.4.1, with some patches
+      from the current SVN sources.  (_Inter alia_, this resolves
+      PR#14692.)
+
+    • file.copy(recursive = TRUE) has some additional checks on user
+      error leading to attempted infinite recursion (and on some
+      platforms to crashing R).
+
+    • PCRE has been updated to version 8.31, a bug-fix release.
+
+    • The included version of liblzma has been updated to version
+      5.0.4, a minor bug-fix release.
+
+    • New function .bincode(), a ‘bare-bones’ version of
+      cut.default(labels = FALSE) for use in packages with image()
+      methods.
+
+    • The HTML manuals now use directional single quotes.
+
+    • maintainer() now converts embedded new lines to spaces.  It no
+      longer gives a non-obvious error for non-installed packages.
+
+    • The X11() device has some protection against being used with
+      forked processes _via_ package parallel.
+
+    • Setting the environment variable R_OSX_VALGRIND (to any value)
+      allows R to be run under valgrind on Mac OS 10.6 and 10.7
+      (valgrind currently has very limited support for 10.8), provided
+      system() is not used (directly or indirectly).  This should not
+      be needed for valgrind >= 3.8.1.
+
+    • The model.frame() method for "lm" uses xlevels: this is safer if
+      data was supplied or model = FALSE was used and the levels of
+      factors used in the fit had been re-ordered since fitting.
+
+      Similarly, model.frame(fm, data=<data>) copies across the
+      variables used for safe prediction from the fit.
+
+    • Functions such as parLapply() in package parallel can make use of
+      a default cluster if one is set.  (Reported by Martin Morgan.)
+
+    • chol(pivot = TRUE, LINPACK = FALSE) is now available using LAPACK
+      3.2 subroutine DPSTRF.
+
+    • The functions .C(), .Call(), .External() and .Fortran() now check
+      that they are called with an unnamed first argument: the formal
+      arguments were changed from name= to .NAME= in R 2.13.0, but some
+      packages were still using the old name.  This is currently a
+      warning, but will be an error in future.
+
+    • step() no longer tries to improve a model with AIC of -Inf (a
+      perfect fit).
+
+    • spline() and splinefun() gain a new method "hyman", an
+      implementation of Hyman's method of constructing monotonic
+      interpolation splines.  (Based on contributions of Simon Wood and
+      Rob Hyndman.)
+
+    • On Windows, the C stack size has been increased to 64MB (it has
+      been 10MB since the days of 32MB RAM systems).
+
+  PERFORMANCE IMPROVEMENTS:
+
+    • array() is now implemented in C code (for speed) when data is
+      atomic or an unclassed list (so it is known that as.vector(data)
+      will have no class to be used by rep()).
+
+    • rep() is faster and uses less memory, substantially so in some
+      common cases (e.g. if times is of length one or length.out is
+      given, and each = 1).
+
+    • findInterval(), tabulate(), cut(), hist() and image.default() all
+      use .Call() and are more efficient.
+
+    • duplicated(), unique() and similar now support vectors of lengths
+      above 2^29 on 64-bit platforms.
+
+    • Omitting PACKAGE in .C() etc calls was supposed to make use of
+      the DLL from the namespace within which the enclosing function
+      was defined.  It was less successful in doing so than it might
+      be, and gave no indication it had failed.
+
+      A new search strategy is very successful and gives a warning when
+      it fails.  In most cases this is because the entry point is not
+      actually provided by that package (and so PACKAGE should be used
+      to indicate which package is intended) but in some the namespace
+      does not have a DLL specified by a useDynLib() directive so
+      PACKAGE is required.
+
+  UTILITIES:
+
+    • R CMD check now checks if a package can be loaded by
+      library(pkgname, lib.loc = "somewhere") without being on the
+      library search path (unless it is already installed in .Library,
+      when it always will be).
+
+    • R CMD check --as-cran notes ‘hidden’ files and directories (with
+      names starting with a dot) that are not needed for the operation
+      of R CMD INSTALL or R CMD build: such files should be excluded
+      from the published tarball.
+
+    • R CMD check (if checking subdirectories) checks that the R code
+      in any demos is ASCII and can be parsed, and warns if not.
+
+    • When R CMD Rd2pdf is used with inputenx.sty, it allows further
+      characters (mainly for Eastern European languages) by including
+      ix-utf8enc.dfu (if available).  (Wish of PR#14989.)
+
+    • R CMD build now omits several types of hidden files/directories,
+      including inst/doc/.Rinstignore, vignettes/.Rinstignore,
+      (.Rinstignore should be at top level), .deps under src,
+      .Renviron, .Rprofile, .Rproj.user, .backups, .cvsignore,
+      .cproject, .directory, .dropbox, .exrc, .gdb.history,
+      .gitattributes, .gitignore, .gitmodules, .hgignore, .hgtags,
+      .htaccess, .latex2html-init, .project, .seed, .settings,
+      .tm_properties and various leftovers.
+
+    • R CMD check now checks for .C(), .Call(), .External() and
+      .Fortran() calls in other packages, and gives a warning on those
+      found from R itself (which are not part of the API and change
+      without notice: many will be changed for R 3.0.0).
+
+  C-LEVEL FACILITIES:
+
+    • The limit for R_alloc on 64-bit platforms has been raised to just
+      under 32GB (from just under 16GB).
+
+    • The misuse of .C("name", ..., PACKAGE = foo) where foo is an
+      arbitrary R object is now an error.
+
+      The misuse .C("name",..., PACKAGE = "") is now warned about in R
+      CMD check, and will be an error in future.
+
+  DEPRECATED AND DEFUNCT:
+
+    • Use of array() with a 0-length dim argument is deprecated with a
+      warning (and was contrary to the documentation).
+
+    • Use of tapply() with a 0-length INDEX list is deprecated with a
+      warning.
+
+    • Translation packages are deprecated.
+
+    • Calling rep() or rep.int() on a pairlist is deprecated and will
+      give a warning.  In any case, rep() converted a pairlist to a
+      list so you may as well do that explicitly.
+
+    • Entry point rcont2 is no longer part of the API, and will move to
+      package stats in R 3.0.0.
+
+    • The ‘internal’ graphics device invoked by
+      .Call("R_GD_nullDevice", package = "grDevices") is about to be
+      removed: use pdf(file = NULL) instead.
+
+    • eigen(EISPACK = TRUE), chol(pivot = FALSE, LINPACK = TRUE),
+      chol2inv(LINPACK = TRUE), solve(LINPACK = TRUE) and svd(LINPACK =
+      TRUE) are deprecated and give a warning.
+
+      They were provided for compatibility with R 1.7.0 (Mar 2003)!
+
+    • The ‘internal function’ kappa.tri() has been renamed to
+      .kappa_tri() so it is not inadvertently called as a method for
+      class "tri".
+
+    • Functions sessionData() and browseAll() in package methods are on
+      a help page describing them as ‘deprecated’ and are now formally
+      deprecated.
+
+  PACKAGE INSTALLATION:
+
+    • For a Windows or Mac OS X binary package install,
+      install.packages() will check if a source package is available on
+      the same repositories, and report if it is a later version or
+      there is a source package but no binary package available.
+
+      This check can be suppressed: see the help page.
+
+    • install.packages(type = "both") has been enhanced.  In
+      interactive use it will ask whether to choose the source version
+      of a package if the binary version is older and contains compiled
+      code, and also asks if source packages with no binary version
+      should be installed).
+
+  INSTALLATION:
+
+    • There is a new configure option --with-libtiff (mainly in case
+      the system installation needs to be avoided).
+
+    • LAPACK 3.4.1 does use some Fortran 90 features, so g77 no longer
+      suffices.
+
+    • If an external LAPACK is used, it must be version 3.2 or later.
+
+  BUG FIXES:
+
+    • On Windows, starting Rterm via R.exe caused Ctrl-C to misbehave.
+      (PR#14948)
+
+    • The tools::latexToUtf8() function missed conversions that were
+      contained within braces.
+
+    • Long timezone specifications (such as a file name preceded by :)
+      could crash as.POSIXlt.  (PR#14945)
+
+    • R CMD build --resave-data could fail if there was no data
+      directory but there was an R/sysdata.rda file.  (PR#14947)
+
+    • is.na() misbehaved on a 0-column data frame.  (PR#14959)
+
+    • anova.lmlist() failed if test was supplied.  (PR#14960)
+
+      It was unable to compute Cp tests for object of class "lm" (it
+      assumed class "glm").
+
+    • The formula method for sunflowerplot() now allows xlab and ylab
+      to be set.  (Reported by Gerrit Eichner.)
+
+    • The "POSIXt" and "Date" methods for hist() could fail on Windows
+      where adjustments to the right-hand boundary crossed a DST
+      transition time.
+
+    • On Windows, the code in as.POSIXct() to handle incorrectly
+      specified isdst fields might have resulted in NA being returned.
+
+    • aov() and manova() gave spurious warning about singular error
+      model in the multiresponse case.
+
+    • In ns() and bs(), specifying knots = NULL is now equivalent to
+      omitting it, also when df is specified.  (PR#14970)
+
+    • sprintf() did not accept numbered arguments ending in zero.
+      (PR#14975)
+
+    • rWishart() could overflow the C stack and maybe crash the R
+      process for dimensions of several hundreds or more.  (Reported by
+      Michael Braun on R-sig-mac.)
+
+    • Base package vignettes (e.g. vignette("Sweave")) were not fully
+      installed in builds of R from the tarball.
+
+    • lchoose() and choose() could overflow the C stack and crash R.
+
+    • When given a 0-byte file and asked to keep source references,
+      parse() read input from stdin() instead.
+
+    • pdf(compress = TRUE) did not delete temporary files it created
+      until the end of the R session.  (PR#14991)
+
+    • logLik() did not detect the error of applying it to a
+      multiple-response linear model.  (PR#15000)
+
+    • file.copy(recursive = TRUE) did not always report FALSE for a
+      failure two or more directories deep.
+
+    • qgeom() could return -1 for extremely small q. (PR#14967)
+
+    • smooth.spline() used DUP = FALSE which allowed its compiled C
+      code to change the function: this was masked by the default
+      byte-compilation. (PR#14965)
+
+    • In Windows, the GUI preferences for foreground color were not
+      always respected.  (Reported by Benjamin Wells.)
+
+    • On OS X, the Quartz versions of the bitmap devices did not
+      respect antialias = "none".  (PR#15006)
+
+    • unique() and similar would infinite-loop if called on a vector of
+      length > 2^29 (but reported that the vector was too long for 2^30
+      or more).
+
+    • parallel::stopCluster() now works with MPI clusters without snow
+      being on the search path.
+
+    • terms.formula() could exhaust the stack, and the stack check did
+      not always catch this before the segfault.  (PR#15013)
+
+    • sort.list(method = "radix") could give incorrect results on
+      certain compilers (seen with clang on Mac OS 10.7 and Xcode
+      4.4.1).
+
+    • backsolve(T, b) gave incorrect results when nrows(b) > ncols(T)
+      and b had more than one column.
+
+      It could segfault or give nonsense if k was specified as more
+      than ncols(T).
+
+    • smooth.spline() did not check that a specified numeric spar was
+      of length 1, and gave corrupt results if it was of length 0.
+
+    • Protection added to do_system. (PR#15025)
+
+    • Printing of vectors with names > 1000 characters now works
+      correctly rather than truncating. (PR#15028)
+
+    • qr() for a complex matrix did not pivot the column names.
+
+    • --with-blas='-framework vecLib' now also works on OS X 10.8.
+
+    • R CMD check no longer fails with an error if a DESCRIPTION file
+      incorrectly contains a blank line.  (Reported by Bill Dunlap.)
+
+    • install.packages(type = "both") could call chooseCRANmirror()
+      twice.
+
+    • lm.wfit() could segfault in R 2.15.1 if all the weights were
+      zero. (PR#15044)
+
+    • A malformed package name could cause R CMD INSTALL to write
+      outside the target library.
+
+    • Some of the quality control functions (e.g. tools::checkFF())
+      were wrongly identifying the source of S4 methods in a package
+      and so not checking them.
+
+    • The default type of display by browseEnv() when using R.app on
+      Mac OS X has been incorrect for a long time.
+
+    • The implementation of importMethodsFrom in a NAMESPACE file could
+      be confused and fail to find generics when importing from
+      multiple packages (reported and fixed by Michael Lawrence).
+
+    • The detection of the C stack direction is better protected
+      against compiler optimization. (PR#15011)
+
+    • Long custom line types would sometimes segfault on the
+      cairographics-based devices. (PR#15055)
+
+    • tools::checkPoFile() unprotected too early in its C code and so
+      segfaulted from time to time.
+
+    • The Fortran code underlying nlminb() could infinite-loop if any
+      of the input functions returned NA or NaN.  This is now an error
+      for the gradient or Hessian, and a warning for the function (with
+      the value replaced by Inf).  (In part, PR#15052.)
+
+    • The code for creating coerce() methods could generate false notes
+      about ambiguous selection; the notes have been suppressed for
+      this function.
+
+    • arima.sim() could give too long an output in some corner cases
+      (in part, PR#15068).
+
+    • anova.glm() with test = "Rao" didn't work when models included an
+      offset. (Reported by Søren Feodor Nielsen.)
+
+    • as.data.frame.matrix() could return invalid data frame with no
+      row.names attribute for 0-row matrix. (Reported by Hervé Pagès.)
+
+    • Compilation with the vecLib or Accelerate frameworks on OS X
+      without using that also for LAPACK is more likely to be
+      successful.
+
+CHANGES IN R VERSION 2.15.1:
+
+  NEW FEATURES:
+
+    • source() now uses withVisible() rather than
+      .Internal(eval.with.vis).  This sometimes alters tracebacks
+      slightly.
+
+    • install.packages("pkg_version.tgz") on Mac OS X now has sanity
+      checks that this is actually a binary package (as people have
+      tried it with incorrectly named source packages).
+
+    • splineDesign() and spline.des() in package splines have a new
+      option sparse which can be used for efficient construction of a
+      sparse B-spline design matrix (_via_ Matrix).
+
+    • norm() now allows type = "2" (the ‘spectral’ or 2-norm) as well,
+      mainly for didactical completeness.
+
+    • pmin() and pmax()) now also work when one of the inputs is of
+      length zero and others are not, returning a zero-length vector,
+      analogously to, say, +.
+
+    • colorRamp() (and hence colorRampPalette()) now also works for the
+      boundary case of just one color when the ramp is flat.
+
+    • .C() gains some protection against the misuse of character vector
+      arguments.  (An all too common error is to pass character(N),
+      which initializes the elements to "", and then attempt to edit
+      the strings in-place, sometimes forgetting to terminate them.)
+
+    • Calls to the new function globalVariables() in package utils
+      declare that functions and other objects in a package should be
+      treated as globally defined, so that CMD check will not note
+      them.
+
+    • print(packageDescription(*)) trims the Collate field by default.
+
+    • The included copy of zlib has been updated to version 1.2.7.
+
+    • A new option "show.error.locations" has been added.  When set to
+      TRUE, error messages will contain the location of the most recent
+      call containing source reference information. (Other values are
+      supported as well; see ?options.)
+
+    • The NA warning messages from e.g. pchisq() now report the call to
+      the closure and not that of the .Internal.
+
+    • Added Polish translations by Łukasz Daniel.
+
+  PERFORMANCE IMPROVEMENTS:
+
+    • In package parallel, makeForkCluster() and the multicore-based
+      functions use native byte-order for serialization (deferred from
+      2.15.0).
+
+    • lm.fit(), lm.wfit(), glm.fit() and lsfit() do less copying of
+      objects, mainly by using .Call() rather than .Fortran().
+
+    • .C() and .Fortran() do less copying: arguments which are raw,
+      logical, integer, real or complex vectors and are unnamed are not
+      copied before the call, and (named or not) are not copied after
+      the call.  Lists are no longer copied (they are supposed to be
+      used read-only in the C code).
+
+    • tabulate() makes use of .C(DUP = FALSE) and hence does not copy
+      bin.  (Suggested by Tim Hesterberg.)  It also avoids making a
+      copy of a factor argument bin.
+
+    • Other functions (often or always) doing less copying include
+      cut(), dist(), the complex case of eigen(), hclust(), image(),
+      kmeans(), loess(), stl() and svd(LINPACK = TRUE).
+
+    • There is less copying when using primitive replacement functions
+      such as names(), attr() and attributes().
+
+  DEPRECATED AND DEFUNCT:
+
+    • The converters for use with .C() (see ?getCConverterDescriptions)
+      are deprecated: use the .Call() interface instead.  There are no
+      known examples (they were never fully documented).
+
+  UTILITIES:
+
+    • For R CMD check, a few people have reported problems with
+      junctions on Windows (although they were tested on Windows 7, XP
+      and Server 2008 machines and it is unknown under what
+      circumstances the problems occur).  Setting the environment
+      variable R_WIN_NO_JUNCTIONS to a non-empty value (e.g. in
+      ~/.R/check.Renviron) will force copies to be used instead.
+
+  INSTALLATION:
+
+    • R CMD INSTALL with _R_CHECK_INSTALL_DEPENDS_ set to a true value
+      (as done by R CMD check --as-cran) now restricts the packages
+      available when lazy-loading as well as when test-loading (since
+      packages such as ETLUtils and agsemisc had top-level calls to
+      library() for undeclared packages).
+
+      This check is now also available on Windows.
+
+  C-LEVEL FACILITIES:
+
+    • C entry points mkChar and mkCharCE now check that the length of
+      the string they are passed does not exceed 2^31-1 bytes: they
+      used to overflow with unpredictable consequences.
+
+    • C entry points R_GetCurrentSrcref and R_GetSrcFilename have been
+      added to the API to allow debuggers access to the source
+      references on the stack.
+
+  WINDOWS-SPECIFIC CHANGES:
+
+    • Windows-specific changes will now be announced in this file
+      (NEWS).  Changes up and including R 2.15.0 remain in the CHANGES
+      file.
+
+    • There are two new environment variables which control the
+      defaults for command-line options.
+
+      If R_WIN_INTERNET2 is set to a non-empty value, it is as if
+      --internet2 was used.
+
+      If R_MAX_MEM_SIZE is set, it gives the default memory limit if
+      --max-mem-size is not specified: invalid values being ignored.
+
+  BUG FIXES:
+
+    • lsfit() lost the names from the residuals.
+
+    • More cases in which merge() could create a data frame with
+      duplicate column names now give warnings.  Cases where names
+      specified in by match multiple columns are errors.
+
+    • Nonsense uses such as seq(1:50, by = 5) (from package plotrix)
+      and seq.int(1:50, by = 5) are now errors.
+
+    • The residuals in the 5-number summary printed by summary() on an
+      "lm" object are now explicitly labelled as weighted residuals
+      when non-constant weights are present.  (Wish of PR#14840.)
+
+    • tracemem() reported that all objects were copied by .C() or
+      .Fortran() whereas only some object types were ever copied.
+
+      It also reported and marked as copies _some_ transformations such
+      as rexp(n, x): it no longer does so.
+
+    • The plot() method for class "stepfun" only used the optional xval
+      argument to compute xlim and not the points at which to plot (as
+      documented).  (PR#14864)
+
+    • Names containing characters which need to be escaped were not
+      deparsed properly.  (PR#14846)
+
+    • Trying to update (recommended) packages in R_HOME/library without
+      write access is now dealt with more gracefully.  Further, such
+      package updates may be skipped (with a warning), when a newer
+      installed version is already going to be used from .libPaths().
+      (PR#14866)
+
+    • hclust() is now fast again (as up to end of 2003), with a
+      different fix for the "median"/"centroid" problem.  (PR#4195).
+
+    • get_all_vars() failed when the data came entirely from vectors in
+      the global environment. (PR#14847)
+
+    • R CMD check with _R_CHECK_NO_RECOMMENDED_ set to a true value (as
+      done by the --as-cran option) could issue false errors if there
+      was an indirect dependency on a recommended package.
+
+    • formatC() uses the C entry point str_signif which could write
+      beyond the length allocated for the output string.
+
+    • Missing default argument added to implicit S4 generic for
+      backsolve(). (PR#14883)
+
+    • Some bugs have been fixed in handling load actions that could
+      fail to export assigned items or generate spurious warnings in
+      CMD check on loading.
+
+    • For tiff(type = "windows"), the numbering of per-page files
+      except the last was off by one.
+
+    • On Windows, loading package stats (which is done for a default
+      session) would switch line endings on stdout and stderr from CRLF
+      to LF.  This affected Rterm and R CMD BATCH.
+
+    • On Windows, the compatibility function x11() had not kept up with
+      changes to windows(), and issued warnings about bad parameters.
+      (PR#14880)
+
+    • On Windows, the Sys.glob() function did not handle UNC paths as
+      it was designed to try to do. (PR#14884)
+
+    • In package parallel, clusterApply() and similar failed to handle
+      a (pretty pointless) length-1 argument. (PR#14898)
+
+    • Quartz Cocoa display reacted asynchronously to dev.flush() which
+      means that the redraw could be performed after the plot has been
+      already modified by subsequent code. The redraw is now done
+      synchronously in dev.flush() to allow animations without sleep
+      cycles.
+
+    • Source locations reported in traceback() were incorrect when
+      byte-compiled code was on the stack.
+
+    • plogis(x, lower = FALSE, log.p = TRUE) no longer underflows early
+      for large x (e.g. 800).
+
+    • ?Arithmetic's “1 ^ y and y ^ 0 are 1, _always_” now also applies
+      for integer vectors y.
+
+    • X11-based pixmap devices like png(type = "Xlib") were trying to
+      set the cursor style, which triggered some warnings and hangs.
+
+    • Code executed by the built-in HTTP server no longer allows other
+      HTTP clients to re-enter R until the current worker evaluation
+      finishes, to prevent cascades.
+
+    • The plot() and Axis() methods for class "table" now respect
+      graphical parameters such as cex.axis.  (Reported by Martin
+      Becker.)
+
+    • Under some circumstances package.skeleton() would give out
+      progress reports that could not be translated and so were
+      displayed by question marks.  Now they are always in English.
+      (This was seen for CJK locales on Windows, but may have occurred
+      elsewhere.)
+
+    • The evaluator now keeps track of source references outside of
+      functions, e.g. when source() executes a script.
+
+    • The replacement method for window() now works correctly for
+      multiple time series of class "mts".  (PR#14925)
+
+    • is.unsorted() gave incorrect results on non-atomic objects such
+      as data frames.  (Reported by Matthew Dowle.)
+
+    • The value returned by tools::psnice() for invalid pid values was
+      not always NA as documented.
+
+    • Closing an X11() window while locator() was active could abort
+      the R process.
+
+    • getMethod(f, sig) produced an incorrect error message in some
+      cases when f was not a string).
+
+    • Using a string as a “call” in an error condition with
+      options(showErrorCalls=TRUE) could cause a segfault.  (PR#14931)
+
+    • The string "infinity" allowed by C99 was not accepted as a
+      numerical string value by e.g. scan() and as.numeric().
+      (PR#14933)
+
+    • In legend(), setting some entries of lwd to NA was inconsistent
+      (depending on the graphics device) in whether it would suppress
+      those lines; now it consistently does so.  (PR#14926)
+
+    • by() failed for a zero-row data frame.  (Reported by Weiqiang
+      Qian.)
+
+    • The Yates' correction in chisq.test() could be bigger than the
+      terms it corrected, previously leading to an infinite test
+      statistic in some corner cases which are now reported as NaN.
+
+    • xgettext() and related functions sometimes returned items that
+      were not strings for translation. (PR#14935)
+
+    • plot(<lm>, which=5) now correctly labels the factor level
+      combinations for the special case where all h[i,i] are the same.
+      (PR#14837)
+
+    • Sys.glob() caused a segfault if the first element of path was
+      NA_character. (PR#14990)
+
+CHANGES IN R VERSION 2.15.0:
+
+  SIGNIFICANT USER-VISIBLE CHANGES:
+
+    • The behaviour of unlink(recursive = TRUE) for a symbolic link to
+      a directory has changed: it now removes the link rather than the
+      directory contents (just as rm -r does).
+
+      On Windows it no longer follows reparse points (including
+      junctions and symbolic links).
+
+  NEW FEATURES:
+
+    • Environment variable RD2DVI_INPUTENC has been renamed to
+      RD2PDF_INPUTENC.
+
+    • .Deprecated() becomes a bit more flexible, getting an old
+      argument.
+
+    • Even data-only packages without R code need a namespace and so
+      may need to be installed under R 2.14.0 or later.
+
+    • assignInNamespace() has further restrictions on use apart from at
+      top-level, as its help page has warned.  Expect it to be disabled
+      from programmatic use in the future.
+
+    • system() and system2() when capturing output report a non-zero
+      status in the new "status" attribute.
+
+    • kronecker() now has an S4 generic in package methods on which
+      packages can set methods.  It will be invoked by X %x% Y if
+      either X or Y is an S4 object.
+
+    • pdf() accepts forms like file = "|lpr" in the same way as
+      postscript().
+
+    • pdf() accepts file = NULL.  This means that the device does NOT
+      create a PDF file (but it can still be queried, e.g., for font
+      metric info).
+
+    • format() (and hence print()) on "bibentry" objects now uses
+      options("width") to set the output width.
+
+    • legend() gains a text.font argument. (Suggested by Tim Paine,
+      PR#14719.)
+
+    • nchar() and nzchar() no longer accept factors (as integer
+      vectors).  (Wish of PR#6899.)
+
+    • summary() behaves slightly differently (or more precisely, its
+      print() method does).  For numeric inputs, the number of NAs is
+      printed as an integer and not a real.  For dates and datetimes,
+      the number of NAs is included in the printed output (the latter
+      being the wish of PR#14720).
+
+      The "data.frame" method is more consistent with the default
+      method: in particular it now applies zapsmall() to
+      numeric/complex summaries.
+
+    • The number of items retained with options(warn = 0) can be set by
+      options(nwarnings=).
+
+    • There is a new function assignInMyNamespace() which uses the
+      namespace of the function it is called from.
+
+    • attach() allows the default name for an attached file to be
+      overridden.
+
+    • bxp(), the work horse of boxplot(), now uses a more sensible
+      default xlim in the case where at is specified differently from
+      1:n, see the discussion on R-devel, <URL:
+      https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html>.
+
+    • New function paste0(), an efficient version of paste(*, sep=""),
+      to be used in many places for more concise (and slightly more
+      efficient) code.
+
+    • Function setClass() in package methods now returns, invisibly, a
+      generator function for the new class, slightly preferred to
+      calling new(), as explained on the setClass help page.
+
+    • The "dendrogram" method of str() now takes its default for
+      last.str from option str.dendrogram.last.
+
+    • New simple fitted() method for "kmeans" objects.
+
+    • The traceback() function can now be called with an integer
+      argument, to display a current stack trace. (Wish of PR#14770.)
+
+    • setGeneric() calls can be simplified when creating a new generic
+      function by supplying the default method as the def argument.
+      See ?setGeneric.
+
+    • serialize() has a new option xdr = FALSE which will use the
+      native byte-order for binary serializations.  In scenarios where
+      only little-endian machines are involved (these days, close to
+      universal) and (un)serialization takes an appreciable amount of
+      time this may speed up noticeably transferring data between
+      systems.
+
+    • The internal (un)serialization code is faster for long vectors,
+      particularly with XDR on some platforms.  (Based on a suggested
+      patch by Michael Spiegel.)
+
+    • For consistency, circles with zero radius are omitted by points()
+      and grid.circle().  Previously this was device-dependent, but
+      they were usually invisible.
+
+    • NROW(x) and NCOL(x) now work whenever dim(x) looks appropriate,
+      e.g., also for more generalized matrices.
+
+    • PCRE has been updated to version 8.30.
+
+    • The internal R_Srcref variable is now updated before the browser
+      stops on entering a function.  (Suggestion of PR#14818.)
+
+    • There are ‘bare-bones’ functions .colSums(), .rowSums(),
+      .colMeans() and .rowMeans() for use in programming where ultimate
+      speed is required.
+
+    • The formerly internal function .package_dependencies() from
+      package tools for calculating (recursive) (reverse) dependencies
+      on package databases has been renamed to package_dependencies()
+      and is now exported.
+
+    • There is a new function optimHess() to compute the (approximate)
+      Hessian for an optim() solution if hessian = TRUE was forgotten.
+
+    • .filled.contour() is a ‘bare-bones’ function to add a
+      filled-contour rectangular plot to an already prepared plot
+      region.
+
+    • The stepping in debugging and single-step browsing modes has
+      changed slightly: now left braces at the start of the body are
+      stepped over for if statements as well as for for and while
+      statements.  (Wish of PR#14814.)
+
+    • library() no longer warns about a conflict with a function from
+      package:base if the function has the same code as the base one
+      but with a different environment.  (An example is Matrix::det().)
+
+    • When deparsing very large language objects, as.character() now
+      inserts newlines after each line of approximately 500 bytes,
+      rather than truncating to the first line.
+
+    • New function rWishart() generates Wishart-distributed random
+      matrices.
+
+    • Packages may now specify actions to be taken when the package is
+      loaded (setLoadActions()).
+
+    • options(max.print = Inf) and similar now give an error (instead
+      of warnings later).
+
+    • The "difftime" replacement method of units tries harder to
+      preserve other attributes of the argument.  (Wish of PR#14839.)
+
+    • poly(raw = TRUE) no longer requires more unique points than the
+      degree.  (Requested by John Fox.)
+
+  PACKAGE parallel:
+
+    • There is a new function mcmapply(), a parallel version of
+      mapply(), and a wrapper mcMap(), a parallel version of Map().
+
+    • A default cluster can be registered by the new function
+      setDefaultCluster(): this will be used by default in functions
+      such as parLapply().
+
+    • clusterMap() has a new argument .scheduling to allow the use of
+      load-balancing.
+
+    • There are new load-balancing functions parLapplyLB() and
+      parSapplyLB().
+
+    • makePSOCKCluster() has a new option useXDR = FALSE which can be
+      used to avoid byte-shuffling for serialization when all the nodes
+      are known to be little-endian (or all big-endian).
+
+  PACKAGE INSTALLATION:
+
+    • Non-ASCII vignettes without a declared encoding are no longer
+      accepted.
+
+    • C/C++ code in packages is now compiled with -NDEBUG to mitigate
+      against the C/C++ function assert being called in production use.
+      Developers can turn this off during package development with
+      PKG_CPPFLAGS = -UNDEBUG.
+
+    • R CMD INSTALL has a new option --dsym which on Mac OS X (Darwin)
+      dumps the symbols alongside the .so file: this is helpful when
+      debugging with valgrind (and especially when installing packages
+      into R.framework).  [This can also be enabled by setting the
+      undocumented environment variable PKG_MAKE_DSYM, since R 2.12.0.]
+
+    • R CMD INSTALL will test loading under all installed
+      sub-architectures even for packages without compiled code, unless
+      the flag --no-multiarch is used.  (Pure R packages can do things
+      which are architecture-dependent: in the case which prompted
+      this, looking for an icon in a Windows R executable.)
+
+    • There is a new option install.packages(type = "both") which tries
+      source packages if binary packages are not available, on those
+      platforms where the latter is the default.
+
+    • The meaning of install.packages(dependencies = TRUE) has changed:
+      it now means to install the essential dependencies of the named
+      packages plus the Suggests, but only the essential dependencies
+      of dependencies.  To get the previous behaviour, specify
+      dependencies as a character vector.
+
+    • R CMD INSTALL --merge-multiarch is now supported on OS X and
+      other Unix-alikes using multiple sub-architectures.
+
+    • R CMD INSTALL --libs-only now by default does a test load on
+      Unix-alikes as well as on Windows: suppress with --no-test-load.
+
+  UTILITIES:
+
+    • R CMD check now gives a warning rather than a note if it finds
+      inefficiently compressed datasets.  With bzip2 and xz compression
+      having been available since R 2.10.0, it only exceptionally makes
+      sense to not use them.
+
+      The environment variable _R_CHECK_COMPACT_DATA2_ is no longer
+      consulted: the check is always done if _R_CHECK_COMPACT_DATA_ has
+      a true value (its default).
+
+    • Where multiple sub-architectures are to be tested, R CMD check
+      now runs the examples and tests for all the sub-architectures
+      even if one fails.
+
+    • R CMD check can optionally report timings on various parts of the
+      check: this is controlled by environment variable
+      _R_CHECK_TIMINGS_ documented in ‘Writing R Extensions’.  Timings
+      (in the style of R CMD BATCH) are given at the foot of the output
+      files from running each test and the R code in each vignette.
+
+    • There are new options for more rigorous testing by R CMD check
+      selected by environment variables - see the ‘Writing R
+      Extensions’ manual.
+
+    • R CMD check now warns (rather than notes) on undeclared use of
+      other packages in examples and tests: increasingly people are
+      using the metadata in the DESCRIPTION file to compute information
+      about packages, for example reverse dependencies.
+
+    • The defaults for some of the options in R CMD check (described in
+      the ‘R Internals’ manual) have changed: checks for unsafe and
+      .Internal() calls and for partial matching of arguments in R
+      function calls are now done by default.
+
+    • R CMD check has more comprehensive facilities for checking
+      compiled code and so gives fewer reports on entry points linked
+      into .so/.dll files from libraries (including C++ and Fortran
+      runtimes).
+
+      Checking compiled code is now done on FreeBSD (as well as the
+      existing supported platforms of Linux, Mac OS X, Solaris and
+      Windows).
+
+    • R CMD build has more options for --compact-vignettes: see R CMD
+      build --help.
+
+    • R CMD build has a new option --md5 to add an MD5 file (as done by
+      CRAN): this is used by R CMD INSTALL to check the integrity of
+      the distribution.
+
+      If this option is not specified, any existing (and probably
+      stale) MD5 file is removed.
+
+  DEPRECATED AND DEFUNCT:
+
+    • R CMD Rd2dvi is now defunct: use R CMD Rd2pdf.
+
+    • Options such --max-nsize, --max-vsize and the function
+      mem.limits() are now defunct.  (Options --min-nsize and
+      --min-vsize remain available.)
+
+    • Use of library.dynam() without specifying all the first three
+      arguments is now disallowed.
+
+      Use of an argument chname in library.dynam() including the
+      extension .so or .dll (which was never allowed according to the
+      help page) is defunct.  This also applies to
+      library.dynam.unload() and to useDynLib directives in NAMESPACE
+      files.
+
+    • The internal functions .readRDS() and .saveRDS() are now defunct.
+
+    • The off-line help() types "postscript" and "ps" are defunct.
+
+    • Sys.putenv(), replaced and deprecated in R 2.5.0, is finally
+      removed.
+
+    • Some functions/objects which have been defunct for five or more
+      years have been removed completely.  These include .Alias(),
+      La.chol(), La.chol2inv(), La.eigen(), Machine(), Platform(),
+      Version, codes(), delay(), format.char(), getenv(), httpclient(),
+      loadURL(), machine(), parse.dcf(), printNoClass(), provide(),
+      read.table.url(), restart(), scan.url(), symbol.C(), symbol.For()
+      and unix().
+
+    • The ENCODING argument to .C() is deprecated.  It was intended to
+      smooth the transition to multi-byte character strings, but can be
+      replaced by the use of iconv() in the rare cases where it is
+      still needed.
+
+  INSTALLATION:
+
+    • Building with a positive value of --with-valgrind-instrumentation
+      now also instruments logical, complex and raw vectors.
+
+  C-LEVEL FACILITIES:
+
+    • Passing R objects other than atomic vectors, functions, lists and
+      environments to .C() is now deprecated and will give a warning.
+      Most cases (especially NULL) are actually coding errors.  NULL
+      will be disallowed in future.
+
+      .C() now passes a pairlist as a SEXP to the compiled code.  This
+      is as was documented, but pairlists were in reality handled
+      differently as a legacy from the early days of R.
+
+    • call_R and call_S are deprecated.  They still exist in the
+      headers and as entry points, but are no longer documented and
+      should not be used for new code.
+
+  BUG FIXES:
+
+    • str(x, width) now obeys its width argument also for function
+      headers and other objects x where deparse() is applied.
+
+    • The convention for x %/% 0L for integer-mode x has been changed
+      from 0L to NA_integer_.  (PR#14754)
+
+    • The exportMethods directive in a NAMESPACE file now exports S4
+      generics as necessary, as the extensions manual said it does.
+      The manual has also been updated to be a little more informative
+      on this point.
+
+      It is now required that there is an S4 generic (imported or
+      created in the package) when methods are to be exported.
+
+    • Reference methods cannot safely use non-exported entries in the
+      namespace.  We now do not do so, and warn in the documentation.
+
+    • The namespace import code was warning when identical S4 generic
+      functions were imported more than once, but should not (reported
+      by Brian Ripley, then Martin Morgan).
+
+    • merge() is no longer allowed (in some ways) to create a data
+      frame with duplicate column names (which confused PR#14786).
+
+    • Fixes for rendering raster images on X11 and Windows devices when
+      the x-axis or y-axis scale is reversed.
+
+    • getAnywhere() found S3 methods as seen from the utils namespace
+      and not from the environment from which it was called.
+
+    • selectMethod(f, sig) would not return inherited group methods
+      when caching was off (as it is by default).
+
+    • dev.copy2pdf(out.type = "cairo") gave an error.  (PR#14827)
+
+    • Virtual classes (e.g., class unions) had a NULL prototype even if
+      that was not a legal subclass.  See ?setClassUnion.
+
+    • The C prototypes for zdotc and zdotu in R_ext/BLAS.h have been
+      changed to the more modern style rather than that used by f2c.
+      (Patch by Berwin Turlach.)
+
+    • isGeneric() produced an error for primitives that can not have
+      methods.
+
+    • .C() or .Fortran() had a lack-of-protection error if the
+      registration information resulted in an argument being coerced to
+      another type.
+
+    • boxplot(x=x, at=at) with non finite elements in x and non integer
+      at could not generate a warning but failed.
+
+    • heatmap(x, symm=TRUE, RowSideColors=*) no longer draws the colors
+      in reversed order.
+
+    • predict(<ar>) was incorrect in the multivariate case, for p >= 2.
+
+    • print(x, max=m) is now consistent when x is a "Date"; also the
+      “reached ... max.print ..” messages are now consistently using
+      single brackets.
+
+    • Closed the <li> tag in pages generated by Rd2HTML(). (PR#14841)
+
+    • Axis tick marks could go out of range when a log scale was used.
+      (PR#14833)
+
+    • Signature objects in methods were not allocated as S4 objects
+      (caused a problem with trace() reported by Martin Morgan).
+
+CHANGES IN R VERSION 2.14.2:
+
+  NEW FEATURES:
+
+    • The internal untar() (as used by default by R CMD INSTALL) now
+      knows about some pax headers which bsdtar (e.g., the default tar
+      for Mac OS >= 10.6) can incorrectly include in tar files, and
+      will skip them with a warning.
+
+    • PCRE has been upgraded to version 8.21: as well as bug fixes and
+      greater Perl compatibility, this adds a JIT pattern compiler,
+      about which PCRE's news says ‘large performance benefits can be
+      had in many situations’.  This is supported on most but not all R
+      platforms.
+
+    • Function compactPDF() in package tools now takes the default for
+      argument gs_quality from environment variable GS_QUALITY: there
+      is a new value "none", the ultimate default, which prevents
+      GhostScript being used in preference to qpdf just because
+      environment variable R_GSCMD is set.  If R_GSCMD is unset or set
+      to "", the function will try to find a suitable GhostScript
+      executable.
+
+    • The included version of zlib has been updated to 1.2.6.
+
+    • For consistency with the logLik() method, nobs() for "nls" files
+      now excludes observations with zero weight.  (Reported by Berwin
+      Turlach.)
+
+  UTILITIES:
+
+    • R CMD check now reports by default on licenses not according to
+      the description in ‘Writing R Extensions’.
+
+    • R CMD check has a new option --as-cran to turn on most of the
+      customizations that CRAN uses for its incoming checks.
+
+  PACKAGE INSTALLATION:
+
+    • R CMD INSTALL will now no longer install certain file types from
+      inst/doc: these are almost certainly mistakes and for some
+      packages are wasting a lot of space.  These are Makefile, files
+      generated by running LaTeX, and unless the package uses a
+      vignettes directory, PostScript and image bitmap files.
+
+      Note that only PDF vignettes have ever been supported: some of
+      these files come from DVI/PS output from the Sweave defaults
+      prior to R 2.13.0.
+
+  BUG FIXES:
+
+    • R configured with --disable-openmp would mistakenly set
+      HAVE_OPENMP (internal) and SUPPORT_OPENMP (in Rconfig.h) even
+      though no OpenMP flags were populated.
+
+    • The getS3method() implementation had an old computation to find
+      an S4 default method.
+
+    • readLines() could overflow a buffer if the last line of the file
+      was not terminated.  (PR#14766)
+
+    • R CMD check could miss undocumented S4 objects in packages which
+      used S4 classes but did not Depends: methods in their DESCRIPTION
+      file.
+
+    • The HTML Help Search page had malformed links.  (PR#14769)
+
+    • A couple of instances of lack of protection of SEXPs have been
+      squashed. (PR#14772, PR#14773)
+
+    • image(x, useRaster=TRUE) misbehaved on single-column x.
+      (PR#14774)
+
+    • Negative values for options("max.print") or the max argument to
+      print.default() caused crashes.  Now the former are ignored and
+      the latter trigger an error.  (PR#14779)
+
+    • The text of a function body containing more than 4096 bytes was
+      not properly saved by the parser when entered at the console.
+
+    • Forgetting the #endif tag in an Rd file could cause the parser to
+      go into a loop.  (Reported by Hans-Jorg Bibiko.)
+
+    • str(*, ....., strict.width="cut") now also obeys list.len = n.
+      (Reported by Sören Vogel.)
+
+    • Printing of arrays did not have enough protection (C level),
+      e.g., in the context of capture.output().  (Reported by Hervé
+      Pagès and Martin Morgan.)
+
+    • pdf(file = NULL) would produce a spurious file named NA.
+      (PR#14808)
+
+    • list2env() did not check the type of its envir argument.
+      (PR#14807)
+
+    • svg() could segfault if called with a non-existent file path.
+      (PR#14790)
+
+    • make install can install to a path containing + characters.
+      (PR#14798)
+
+    • The edit() function did not respect the options("keep.source")
+      setting. (Reported by Cleridy Lennert.)
+
+    • predict.lm(*, type="terms", terms=*, se.fit=TRUE) did not work.
+      (PR#14817)
+
+    • There is a partial workaround for errors in the TRE
+      regular-expressions engine with named classes and repeat counts
+      of at least 2 in a MBCS locale (PR#14408): these are avoided when
+      TRE is in 8-bit mode (e.g. for useBytes = TRUE and when all the
+      data are ASCII).
+
+    • The C function R_ReplDLLdo1() did not call top-level handlers.
+
+    • The Quartz device was unable to detect window sessions on Mac OS
+      X 10.7 (Lion) and higher and thus it was not used as the default
+      device on the console.  Since Lion any application can use window
+      sessions, so Quartz will now be the default device if the user's
+      window session is active and R is not run via ssh which is at
+      least close to the behavior in prior OS X versions.
+
+    • mclapply() would fail in code assembling the translated error
+      message if some (but not all) cores encountered an error.
+
+    • format.POSIXlt(x) raised an arithmetic exception when x was an
+      invalid object of class "POSIXlt" and parts were empty.
+
+    • installed.packages() has some more protection against package
+      installs going on in parallel.
+
+    • .Primitive() could be mis-used to call .Internal() entry points.
+
+CHANGES IN R VERSION 2.14.1:
+
+  NEW FEATURES:
+
+    • parallel::detectCores() is now able to find the number of
+      physical cores (rather than CPUs) on Sparc Solaris.
+
+      It can also do so on most versions of Windows; however the
+      default remains detectCores(logical = TRUE) on that platform.
+
+    • Reference classes now keep a record of which fields are locked.
+      $lock() with no arguments returns the names of the locked fields.
+
+    • HoltWinters() reports a warning rather than an error for some
+      optimization failures (where the answer might be a reasonable
+      one).
+
+    • tools::dependsOnPkg() now accepts the shorthand dependencies =
+      "all".
+
+    • parallel::clusterExport() now allows specification of an
+      environment from which to export.
+
+    • The quartz() device now does tilde expansion on its file
+      argument.
+
+    • tempfile() on a Unix-alike now takes the process ID into account.
+      This is needed with multicore (and as part of parallel) because
+      the parent and all the children share a session temporary
+      directory, and they can share the C random number stream used to
+      produce the unique part.  Further, two children can call
+      tempfile() simultaneously.
+
+    • Option print in Sweave's RweaveLatex() driver now emulates
+      auto-printing rather than printing (which can differ for an S4
+      object by calling show() rather than print()).
+
+    • filled.contour() now accepts infinite values: previously it might
+      have generated invalid graphics files (e.g. containing NaN
+      values).
+
+  INSTALLATION:
+
+    • On 64-bit Linux systems, configure now only sets LIBnn to lib64
+      if /usr/lib64 exists.  This may obviate setting LIBnn explicitly
+      on Debian-derived systems.
+
+      It is still necessary to set LIBnn = lib (or lib32) for 32-bit
+      builds of R on a 64-bit OS on those Linux distributions capable
+      for supporting that concept.
+
+    • configure looks for inconsolata.sty, and if not found adjusts the
+      default R_RD4PDF to not use it (with a warning, since it is
+      needed for high-quality rendering of manuals).
+
+  PACKAGE INSTALLATION:
+
+    • R CMD INSTALL will now do a test load for all sub-architectures
+      for which code was compiled (rather than just the primary
+      sub-architecture).
+
+  UTILITIES:
+
+    • When checking examples under more than one sub-architecture, R
+      CMD check now uses a separate directory examples_arch for each
+      sub-architecture, and leaves the output in file
+      pkgname-Ex_arch.Rout.  Some packages expect their examples to be
+      run in a clean directory ....
+
+  BUG FIXES:
+
+    • stack() now gives an error if no vector column is selected,
+      rather than returning a 1-column data frame (contrary to its
+      documentation).
+
+    • summary.mlm() did not handle objects where the formula had been
+      specified by an expression.  (Reported by Helios de Rosario
+      Martinez).
+
+    • tools::deparseLatex(dropBraces=TRUE) could drop text as well as
+      braces.
+
+    • colormodel = "grey" (new in R 2.14.0)) did not always work in
+      postscript() and pdf().
+
+    • file.append() could return TRUE for failures.  (PR#14727)
+
+    • gzcon() connections are no longer subject to garbage collection:
+      it was possible for this to happen when unintended (e.g. when
+      calling load()).
+
+    • nobs() does not count zero-weight observations for glm() fits,
+      for consistency with lm().  This affects the BIC() values
+      reported for such glm() fits.  (Spotted by Bill Dunlap.)
+
+    • options(warn = 0) failed to end a (C-level) context with more
+      than 50 accumulated warnings.  (Spotted by Jeffrey Horner.)
+
+    • The internal plot.default() code did not do sanity checks on a
+      cex argument, so invalid input could cause problems.  (Reported
+      by Ben Bolker.)
+
+    • anyDuplicated(<array>, MARGIN=0) no longer fails.  (Reported by
+      Hervé Pagès.)
+
+    • read.dcf() removes trailing blanks: unfortunately on some
+      platforms this included \xa0 (non-breaking space) which is the
+      trailing byte of a UTF-8 character.  It now only considers ASCII
+      space and tab to be ‘blank’.
+
+    • There was a sign error in part of the calculations for the
+      variance returned by KalmanSmooth().  (PR#14738)
+
+    • pbinom(10, 1e6, 0.01, log.p = TRUE) was NaN thanks to the buggy
+      fix to PR#14320 in R 2.11.0.  (PR#14739)
+
+    • RweaveLatex() now emulates auto-printing rather than printing, by
+      calling methods::show() when auto-printing would.
+
+    • duplicated() ignored fromLast for a one-column data frame.
+      (PR#14742)
+
+    • source() and related functions did not put the correct timestamp
+      on the source references; srcfilecopy() has gained a new argument
+      timestamp to support this fix. (PR#14750)
+
+    • srcfilecopy() has gained a new argument isFile and now records
+      the working directory, to allow debuggers to find the original
+      source file.  (PR#14826)
+
+    • LaTeX conversion of Rd files did not correctly handle
+      preformatted backslashes.  (PR#14751)
+
+    • HTML conversion of Rd files did not handle markup within tabular
+      cells properly.  (PR#14708)
+
+    • source() on an empty file with keep.source = TRUE tried to read
+      from stdin(), in R 2.14.0 only.  (PR#14753)
+
+    • The code to check Rd files in packages would abort if duplicate
+      description sections were present.
+
+CHANGES IN R VERSION 2.14.0:
+
+  SIGNIFICANT USER-VISIBLE CHANGES:
+
+    • All packages must have a namespace, and one is created on
+      installation if not supplied in the sources.  This means that any
+      package without a namespace must be re-installed under this
+      version of R (but previously-installed data-only packages without
+      R code can still be used).
+
+    • The yLineBias of the X11() and windows() families of devices has
+      been changed from 0.1 to 0.2: this changes slightly the vertical
+      positioning of text in the margins (including axis annotations).
+      This is mainly for consistency with other devices such as
+      quartz() and pdf().  (Wish of PR#14538.)
+
+      There is a new graphics parameter "ylbias" which allows the
+      y-line bias of the graphics device to be tweaked, including to
+      reproduce output from earlier versions of R.
+
+    • Labeling of the p-values in various anova tables has been
+      rationalized to be either "Pr(>F)" or "Pr(>Chi)" (i.e. the
+      "Pr(F)", "Pr(Chi)" and "P(>|Chi|)" variants have been
+      eliminated).  Code which extracts the p value _via_ indexing by
+      name may need adjustment.
+
+    • :: can now be used for datasets made available for lazy-loading
+      in packages with namespaces (which makes it consistent with its
+      use for data-only packages without namespaces in earlier versions
+      of R).
+
+    • There is a new package parallel.
+
+      It incorporates (slightly revised) copies of packages multicore
+      and snow (excluding MPI, PVM and NWS clusters).  Code written to
+      use the higher-level API functions in those packages should work
+      unchanged (apart from changing any references to their namespaces
+      to a reference to parallel, and links explicitly to multicore or
+      snow on help pages).
+
+      It also contains support for multiple RNG streams following
+      L'Ecuyer _et al_ (2002), with support for both mclapply and snow
+      clusters.  This replaces functions like clusterSetupRNG() from
+      snow (which are not in parallel).
+
+      The version released for R 2.14.0 contains base functionality:
+      higher-level convenience functions are planned (and some are
+      already available in the ‘R-devel’ version of R).
+
+    • Building PDF manuals (for R itself or packages, e.g. _via_ R CMD
+      check) by default requires the LaTeX package inconsolata: see the
+      section on ‘Making the manuals’ in the ‘R Installation and
+      Administration Manual’.
+
+    • axTicks(*, log=TRUE) has changed in some cases to satisfy the
+      documented behavior and be consistent.
+
+  NEW FEATURES:
+
+    • txtProgressBar() can write to an open connection instead of the
+      console.
+
+    • Non-portable package names ending in . are no longer allowed.
+      Nor are single-character package names (R was already
+      disallowed).
+
+    • regexpr() and gregexpr() with perl = TRUE allows Python-style
+      named captures.  (Wish and contribution of PR#14518.)
+
+    • The placement of ‘plotmath’ text in the margins of plots done by
+      base graphics now makes the same vertical adjustment as ordinary
+      text, so using ordinary and plotmath text on the same margin line
+      will seem better aligned (but not exactly aligned, since ordinary
+      text has descenders below the baseline and plotmath places them
+      on the baseline).  (Related to PR#14537.)
+
+    • sunflowerplot() now has a formula interface.  (Wish of PR#14541.)
+
+    • iconv() has a new argument toRaw to handle encodings such as
+      UTF-16 with embedded nuls (as was possible before the CHARSXP
+      cache was introduced).
+
+      It will also accept as input the type of list generated with
+      toRaw = TRUE.
+
+    • Garbage-collecting an unused input text connection no longer
+      gives a warning (since it ‘connects’ to nothing outside R).
+
+    • read.table() and scan() have gained a text argument, to allow
+      reading data from a (possibly literal) character string.
+
+    • optim(*, method = .) now allows method = "Brent" as an interface
+      to optimize(), for use in cases such as mle() where optim() is
+      used internally.
+
+    • mosaicplot() gains a border argument.  (Wish of PR#14550.)
+
+    • smooth.spline() gains a tol argument which controls how different
+      x values need to be to be treated as distinct.  The default has
+      been changed to be more reliable for inputs whose range is small
+      compared to their maximum absolute value.  (Wish of PR#14452.)
+
+    • gl() runs faster by avoiding calling factor().
+
+    • The print() method for object.size() accepts B as well as b as an
+      abbreviation for ‘bytes’.
+
+    • unlink() gains a force argument to work like rm -f and if
+      possible override restrictive permissions.
+
+    • pbirthday() and qbirthday() now use exact calculations for
+      coincident = 2.
+
+    • unzip() and unz() connections have been updated with support for
+      more recent Zip64 features (including large file sizes and bzip2
+      compression, but not UTF-8 file names).
+
+      unzip() has a new option to restore file times from those
+      recorded (in an unknown timezone) in the zip file.
+
+    • update.packages() now accepts a character vector of package names
+      for the oldPkgs argument.  (Suggestion of Tal Galili.)
+
+    • The special reference class fields .self and .refClassDef are now
+      read-only to prevent corrupting the object.
+
+    • decompose() now returns the original series as part of its value,
+      so it can be used (rather than reconstructed) when plotting.
+      (Suggestion of Rob Hyndman.)
+
+    • Rao's efficient score test has been implemented for glm objects.
+      Specifically, the add1, drop1, and anova methods now allow test =
+      "Rao".
+
+    • If a saved workspace (e.g. .RData) contains objects that cannot
+      be loaded, R will now start with an warning message and an empty
+      workspace, rather than failing to start.
+
+    • strptime() now accepts times such as 24:00 for midnight at the
+      end of the day, for although these are disallowed by POSIX
+      1003.1-2008, ISO 8601:2004 allows them.
+
+    • Assignment of names() to S4 objects now checks for a
+      corresponding "names" slot, and generates a warning or an error
+      if that slot is not defined.  See the section on slots in
+      ?Classes.
+
+    • The default methods for is.finite(), is.infinite() and is.nan()
+      now signal an error if their argument is not an atomic vector.
+
+    • The formula method for plot() no longer places package stats on
+      the search path (it loads the namespace instead).
+
+    • There now is a genuine "function" method for plot() rather than
+      the generic dispatching internally to graphics::plot.function().
+      It is now exported, so can be called directly as plot.function().
+
+    • The one-sided ks.test() allows exact = TRUE to be specified in
+      the presence of ties (but the approximate calculation remains the
+      default: the ‘exact’ computation makes assumptions known to be
+      invalid in the presence of ties).
+
+    • The behaviour of curve(add = FALSE) has changed: it now no longer
+      takes the default x limits from the previous plot (if any):
+      rather they default to c(0, 1) just as the "function" method for
+      plot().  To get the previous behaviour use curve(add = NA), which
+      also takes the default for log-scaling of the x-axis from the
+      previous plot.
+
+    • Both curve() and the plot() method for functions have a new
+      argument xname to facilitate plots such as sin(t) _vs_ t.
+
+    • The local argument to source() can specify an environment as well
+      as TRUE (parent.env()) and FALSE (.GlobalEnv).  It gives better
+      error messages for other values, such as NA.
+
+    • vcov() gains methods for classes "summary.lm" and "summary.glm".
+
+    • The plot() method for class "profile.nls" gains ylab and lty
+      arguments, and passes ... on to plot.default.
+
+    • Character-string arguments such as the mode argument of vector(),
+      as.vector() and is.vector() and the description argument of
+      file() are required to be of length exactly one, rather than any
+      further elements being silently discarded.  This helps catch
+      incorrect usage in programming.
+
+    • The length argument of vector() and its wrappers such as
+      numeric() is required to be of length exactly one (other values
+      are now an error rather than giving a warning as previously).
+
+    • vector(len) and length(x) <- len no longer accept TRUE/FALSE for
+      len (not that they were ever documented to, but there was
+      special-casing in the C code).
+
+    • There is a new function Sys.setFileTime() to set the time of a
+      file (including a directory).  See its help for exactly which
+      times it sets on various OSes.
+
+    • The file times reported by file.info() are reported to sub-second
+      resolution on systems which support it.  (Currently the POSIX
+      2008 and FreeBSD/Darwin/NetBSD methods are detected.)
+
+    • New function getCall(m) as an abstraction for m$call, enabling
+      update()'s default method to apply more universally.  (NB: this
+      can be masked by existing functions in packages.)
+
+    • Sys.info() gains a euser component to report the ‘effective’ user
+      on OSes which have that concept.
+
+    • The result returned by try() now contains the original error
+      condition object as the "condition" attribute.
+
+    • All packages with R code are lazy-loaded irrespective of the
+      LazyLoad field in the DESCRIPTION file.  A warning is given if
+      the LazyLoad field is overridden.
+
+    • Rd markup has a new \figure tag so that figures can be included
+      in help pages when converted to HTML or LaTeX.  There are
+      examples on the help pages for par() and points().
+
+    • The built-in httpd server now allows access to files in the
+      session temporary directory tempdir(), addressed as the /session
+      directory on the httpd server.
+
+    • Development versions of R are no longer referred to by the number
+      under which they might be released, e.g. in the startup banner, R
+      --version and sessionUtils().  The correct way to refer to a
+      development version of R is ‘R-devel’, preferably with the date
+      and SVN version number.
+      E.g. R-devel (2011-07-04 r56266)
+
+    • There is a new function texi2pdf() in package tools, currently a
+      convenience wrapper for texi2dvi(pdf = TRUE).
+
+    • There are two new options for typesetting PDF manuals from Rd
+      files.  These are beramono and inconsolata, and used the named
+      font for monospaced output. They are intended to be used in
+      combination with times, and times,inconsolata,hyper is now the
+      default for the reference manual and package manuals.  If you do
+      not have that font installed, you can set R_RD4PF to one of the
+      other options: see the ‘R Installation and Administration
+      Manual’.
+
+    • Automatic printing for reference classes is now done by the
+      $show() method.  A method is defined for class envRefClass and
+      may be overridden for user classes (see the ?ReferenceClasses
+      example).  S4 show() methods should no longer be needed for
+      reference classes.
+
+    • tools::Rdiff (by default) and R CMD Rdiff now ignore differences
+      in pointer values when comparing printed environments, compiled
+      byte code, etc.
+
+    • The "source" attribute on functions created with keep.source=TRUE
+      has been replaced with a "srcref" attribute.  The "srcref"
+      attribute references an in-memory copy of the source file using
+      the "srcfilecopy" class or the new "srcfilealias" class.
+
+      *NB:* This means that functions sourced with keep.source = TRUE
+      and saved (e.g., by save() or readRDS()) in earlier versions of R
+      will no longer show the original sources (including comments).
+
+    • New items User Manuals and Technical Papers have been added to
+      the HTML help main page.  These link to vignettes in the base and
+      recommended packages and to a collection of papers about R
+      issues, respectively.
+
+    • Documentation and messages have been standardized to use
+      “namespace” rather than “name space”.
+
+    • setGeneric() now looks in the default packages for a non-generic
+      version of a function if called from a package with a namespace.
+      (It always did for packages without a namespace.)
+
+    • Setting the environment variable _R_WARN_ON_LOCKED_BINDINGS_ will
+      give a warning if an attempt is made to change a locked binding.
+
+    • \SweaveInput is now supported when generating concordances in
+      Sweave().
+
+    • findLineNum() and setBreakpoint() now allow the environment to be
+      specified indirectly; the latter gains a clear argument to allow
+      it to call untrace().
+
+    • The body of a closure can be one of further types of R objects,
+      including environments and external pointers.
+
+    • The Rd2HTML() function in package tools now has a stylesheet
+      argument, allowing pages to be displayed in alternate formats.
+
+    • New function requireNamespace() analogous to require(), returning
+      a logical value after attempting to load a namespace.
+
+    • There is a new type of RNG, "L'Ecuyer-CMRG", implementing
+      L'Ecuyer (1999)'s ‘combined multiple-recursive generator’
+      MRG32k3a.  See the comments on ?RNG.
+
+    • help.search() and ?? can now display vignettes and demos as well
+      as help pages.  The new option "help.search.types" controls the
+      types of documentation and the order of their display.
+
+      This also applies to HTML searches, which now give results in all
+      of help pages, vignettes and demos.
+
+    • socketConnection() now has a timeout argument.  It is now
+      documented that large values (package snow used a year) do not
+      work on some OSes.
+
+    • The initialization of the random-number generator now uses the
+      process ID as well as the current time, just in case two R
+      processes are launched very rapidly on a machine with
+      low-resolution wall clock (some have a resolution of a second;
+      modern systems have microsecond-level resolution).
+
+    • New function pskill() in the tools package to send a terminate
+      signal to one or more processes, plus constants such as SIGTERM
+      to provide a portable way to refer to signals (since the numeric
+      values are OS-dependent).
+
+    • New function psnice() in the tools package to return or change
+      the ‘niceness’ of a process.  (Refers to the ‘priority class’ on
+      Windows.)
+
+    • list.dirs() gains a recursive argument.
+
+    • An Authors@R field in a package DESCRIPTION file can now be used
+      to generate Author and Maintainer fields if needed, and to
+      auto-generate package citations.
+
+    • New utility getElement() for accessing either a list component or
+      a slot in an S4 object.
+
+    • stars() gains a col.lines argument, thanks to Dustin Sallings.
+      (Wish of PR#14657.)
+
+    • New function regmatches() for extracting or replacing matched or
+      non-matched substrings from match data obtained by regexpr(),
+      gregexpr() and regexec().
+
+    • help(package = "pkg_name", help_type = "HTML") now gives HTML
+      help on the package rather than text help.  (This gives direct
+      access to the HTML version of the package manual shown _via_
+      help.start()'s ‘Packages’ menu.)
+
+    • agrep() gains a fixed argument to optionally allow approximate
+      regular expression matching, and a costs argument to specify
+      possibly different integer match costs for insertions, deletions
+      and substitutions.
+
+    • read.dcf() and write.dcf() gain a keep.white argument to indicate
+      fields where whitespace should be kept as is.
+
+    • available.packages() now works around servers that fail to return
+      an error code when PACKAGES.gz does not exist.  (Patch submitted
+      by Seth Schommer.)
+
+    • readBin() can now read more than 2^31 - 1 bytes in a single call
+      (the previously documented limitation).
+
+    • New function regexec() for finding the positions of matches as
+      well as all substrings corresponding to parenthesized
+      subexpressions of the given regular expression.
+
+    • New function adist() in package utils for computing ‘edit’
+      (generalized Levenshtein) distances between strings.
+
+    • Class "raster" gains an is.na method to avoid confusion from the
+      misuse of the matrix method (such as PR#14618).
+
+    • The identical() function gains an ignore.bytecode argument to
+      control comparison of compiled functions.
+
+    • pmin and pmax now warn if an argument is partially recycled (wish
+      of PR#14638).
+
+    • The default for image(useRaster=) is now taken from option
+      "preferRaster": for the small print see ?image.
+
+    • str() now displays reference class objects and their fields,
+      rather than treating them as classical S4 classes.
+
+    • New function aregexec() in package utils for finding the
+      positions of approximate string matches as well as all substrings
+      corresponding to parenthesized subexpressions of the given
+      regular expression.
+
+    • download.file() has an extra argument to pass additional
+      command-line options to the non-default methods using
+      command-line utilities.
+
+      cacheOK = FALSE is now supported for method = "curl".
+
+    • interaction.plot(*, type = .) now also allows type "o" or "c".
+
+    • axTicks(*, log=TRUE) did sometimes give more values than the
+      ticks in the corresponding graphics::axis().  By default, it now
+      makes use of the new (graphics-package independent) axisTicks()
+      which can make use of a new utility .axisPars().  Further, it now
+      returns a decreasing sequence (as for log=FALSE) when usr is
+      decreasing.
+
+    • Using fix() or edit() on a R object (except perhaps a matrix or
+      data frame) writes its temporary file with extension .R so
+      editors which select their mode based on the extension will
+      select a suitable mode.
+
+  GRAPHICS DEVICES:
+
+    • The pdf() device makes use of Flate compression: this is
+      controlled by the new logical argument compress, and is enabled
+      by default.
+
+    • Devices svg(), cairo_pdf() and cairo_ps() gain a family argument.
+
+      On a Unix-alike X11() gains a family argument.  This is one of
+      the x11.options() and so can be passed as an argument to the
+      bmp(), jpeg(), png() and tiff() devices.
+
+      Analogous changes have been made on Windows, so all built-in R
+      graphics devices now have a family argument except pictex()
+      (which has no means to change fonts).
+
+    • The bmp(), jpeg(), png() and tiff() devices now make use of the
+      antialias argument for type = "quartz".
+
+    • There are several new built-in font mappings for X11(type =
+      "Xlib"): see the help on X11Fonts().
+
+    • There is a new type X11(type = "dbcairo") which updates the
+      screen less frequently: see its help page.
+
+    • The X11() device now makes use of cursors to distinguish its
+      states.  The normal cursor is an arrow (rather than a crosshair);
+      the crosshair is used when the locator is in use, and a watch
+      cursor is shown when plotting computations are being done.
+      (These are the standard names for X11 cursors: how they are
+      actually displayed depends on the window manager.)
+
+    • New functions dev.hold() and dev.flush() for use with graphics
+      devices with buffering.  These are used for most of the
+      high-level graphics functions such as boxplot(), so that the plot
+      is only displayed when the page is complete.
+
+      Currently implemented for windows(buffered = TRUE), quartz() and
+      the cairographics-based X11() types with buffering (which are the
+      default on-screen devices).
+
+    • New function dev.capture() for capture of bitmap snapshots of
+      image-based devices (a superset of the functionality provided by
+      grid.cap() in grid).
+
+    • The default colormodel for pdf() and postscript() is now called
+      "srgb" to more accurately describe it.  (Instead of "rgb", and in
+      the case of postscript() it no longer switches to and from the
+      gray colorspace, by default.)
+
+      The colormodel for postscript() which does use both gray and sRGB
+      colorspaces is now called "srgb+gray".
+
+      Plots which are known to use only black/white/transparent can
+      advantageously use colormodel = "gray" (just as before, but there
+      is now slightly more advantage in doing so).
+
+    • postscript() with values colormodel = "rgb" and colormodel =
+      "rgb-nogray" give the behaviour prior to R 2.13.0 of uncalibrated
+      RGB, which under some circumstances can be rendered much faster
+      by a viewer.
+
+      pdf(colormodel = "rgb") gives the behaviour prior to R 2.13.0 of
+      uncalibrated RGB, which under some circumstances can be rendered
+      faster by a viewer, and the files will be smaller (by about 9KB
+      if compression is not used).
+
+    • The postscript() device only includes the definition of the sRGB
+      colorspace in the output file for the colormodels which use it.
+
+    • The postscript() and pdf() devices now output greyscale raster
+      images (and not RGB) when colormodel = "gray".
+
+    • postscript(colormodel = "gray") now accepts non-grey colours and
+      uses their luminance (as pdf() long has).
+
+    • colormodel = "grey" is allowed as an alternative name for
+      postscript() and pdf().
+
+    • pdf() in the default sRGB colorspace outputs many fewer changes
+      of colorspace, which may speed up rendering in some viewing
+      applications.
+
+    • There is a new function dev.capabilities() to query the
+      capabilities of the current device.  The initial set of
+      capabilities are support for semi-transparent colours, rendering
+      and capturing raster images, the locator and for interactive
+      events.
+
+    • For pdf(), maxRasters is increased as needed so the argument is
+      no longer used.
+
+  SWEAVE & VIGNETTES:
+
+    • Options keep.source = TRUE, figs.only = FALSE are now the
+      default.
+
+    • The way the type of user-defined options is determined has
+      changed.  Previously they were all regarded as logical: now the
+      type is determined by the value given at first use.
+
+    • The allowed values of logical options are now precisely those
+      allowed for character inputs to as.logical(): this means that t
+      and f are no longer allowed (although T and F still are).
+
+    • The preferred location for vignette sources is now the directory
+      vignettes and not inst/doc: R CMD build will now re-build
+      vignettes in directory vignettes and copy the .Rnw (etc) files
+      and the corresponding PDFs to inst/doc.  Further files to be
+      copied to inst/doc can be specified _via_ the file
+      vignettes/.install_extras.
+
+    • R CMD Sweave now supports a --driver option to select the Sweave
+      driver: the default is equivalent to --driver=RweaveLatex.
+
+    • R CMD Sweave and R CMD Stangle support options --encoding and
+      --options.
+
+    • The Rtangle() driver allows output = "stdout" or output =
+      "stderr" to select the output or message connection.  This is
+      convenient for scripting using something like
+      
+          R CMD Stangle --options='output="stdout"' foo.Rnw > foo2.R
+
+    • There is a new option pdf.compress controlling whether PDF
+      figures are generated using Flate compression (they are by
+      default).
+
+    • R CMD Sweave now has a --pdf option to produce a PDF version of
+      the processed Sweave document.
+
+    • It is no longer allowed to have two vignettes with the same
+      vignette basename (e.g. vig.Rnw and vig.Snw).  (Previously one
+      vignette hid the other in the vignette() function.)
+
+  C-LEVEL FACILITIES:
+
+    • Function R_tmpnam2 has been added to the API to allow a temporary
+      filename to include a specified extension.
+
+  PACKAGE INSTALLATION:
+
+    • Package DESCRIPTION file field KeepSource forces the package to
+      be installed with keep.source = TRUE (or FALSE).  (Suggestion of
+      Greg Snow.  Note that as all packages are lazy-loaded, this is
+      now only relevant at installation.)
+
+      There are corresponding options --with-keep.source and
+      --without-keep.source for R CMD INSTALL.
+
+    • R CMD INSTALL has a new option --byte-compile to byte-compile the
+      packages during installation (since all packages are now
+      lazy-loaded).  This can be controlled on a per-package basis by
+      the optional field ByteCompile in the DESCRIPTION file.
+
+    • A package R code but without a NAMESPACE file will have a default
+      one created at R CMD build or R CMD INSTALL time, so all packages
+      will be installed with namespaces.  A consequence of this is that
+      .First.lib() functions need to be copied to .onLoad() (usually)
+      or .onAttach().  For the time being, if there is an
+      auto-generated NAMESPACE file and no .onLoad() nor .onAttach()
+      function is found but .First.lib() is, it will be run as the
+      attach hook (unless the package is one of a list of known
+      exceptions, when it will be run as the load hook).
+
+    • A warning is given if test-loading a package changes a locked
+      binding in a package other than itself.  It is likely that this
+      will be disallowed in future releases.  (There are _pro tem_ some
+      exceptions to the warning.)
+
+    • A dependency on SVN revision is allowed for R, e.g. R (>=
+      r56550).  This should be used in conjunction with a version
+      number, e.g. R (>= 2.14.0), R (>= r56550) to distinguish between
+      R-patched and R-devel versions with the same SVN revision.
+
+    • installed.packages() now hashes the names of its cache files to
+      avoid very rare problems with excessively long path names.
+      (PR#14669)
+
+    • A top-level COPYING file in a package is no longer installed
+      (file names LICENSE or LICENCE having long been preferred).
+
+  UTILITIES:
+
+    • R CMD check now gives an error if the R code in a vignette fails
+      to run, unless this is caused by a missing package.
+
+    • R CMD check now unpacks tarballs in the same way as R CMD
+      INSTALL, including making use of the environment variable
+      R_INSTALL_TAR to override the default behaviour.
+
+    • R CMD check performs additional code analysis of package startup
+      functions, and notifies about incorrect argument lists and
+      (incorrect) calls to functions which modify the search path or
+      inappropriately generate messages.
+
+    • R CMD check now also checks compiled code for symbols
+      corresponding to functions which might terminate R or write to
+      stdout/stderr instead of the console.
+
+    • R CMD check now uses a pdf() device when checking examples
+      (rather than postscript()).
+
+    • R CMD check now checks line-endings of makefiles and
+      C/C++/Fortran sources in subdirectories of src as well as in src
+      itself.
+
+    • R CMD check now reports as a NOTE what look like methods
+      documented with their full names even if there is a namespace and
+      they are exported.  In almost all cases they are intended to be
+      used only as methods and should use the \method markup.  In the
+      other rare cases the recommended form is to use a function such
+      as coefHclust which would not get confused with a method,
+      document that and register it in the NAMESPACE file by
+      s3method(coef, hclust, coefHclust).
+
+    • The default for the environment variable _R_CHECK_COMPACT_DATA2_
+      is now true: thus if using the newer forms of compression
+      introduced in R 2.10.0 would be beneficial is now checked (by
+      default).
+
+    • Reference output for a vignette can be supplied when checking a
+      package by R CMD check: see ‘Writing R Extensions’.
+
+    • R CMD Rd2dvi allows the use of LaTeX package inputenx rather than
+      inputenc: the value of the environment variable RD2DVI_INPUTENC
+      is used.  (LaTeX package inputenx is an optional install which
+      provides greater coverage of the UTF-8 encoding.)
+
+    • Rscript on a Unix-alike now accepts file names containing spaces
+      (provided these are escaped or quoted in the shell).
+
+    • R CMD build on a Unix-alike (only) now tries to preserve dates on
+      files it copies from its input directory.  (This was the
+      undocumented behaviour prior to R 2.13.0.)
+
+  DEPRECATED AND DEFUNCT:
+
+    • require() no longer has a save argument.
+
+    • The gamma argument to hsv(), rainbow(), and rgb2hsv() has been
+      removed.
+
+    • The --no-docs option for R CMD build --binary is defunct: use
+      --install-args instead.
+
+    • The option --unsafe to R CMD INSTALL is defunct: use the
+      identical option --no-lock instead.
+
+    • The entry point pythag formerly in Rmath.h is defunct: use
+      instead the C99 function hypot.
+
+    • R CMD build --binary is formally defunct: R CMD INSTALL --build
+      has long been the preferred alternative.
+
+    • zip.file.extract() is now defunct: use unzip() or unz() instead.
+
+    • R CMD Rd2dvi without the --pdf option is now deprecated: only PDF
+      output will be supported in future releases (since this allows
+      the use of fonts only supported for PDF), and only R CMD Rd2pdf
+      will be available.
+
+    • Options such as --max-nsize and the function mem.limits() are now
+      deprecated: these limits are nowadays almost never used, and are
+      reported by gc() when they are in use.
+
+    • Forms like binomial(link = "link") for GLM families deprecated
+      since R 2.4.0 are now defunct.
+
+    • The declarativeOnly argument to loadNamespace() (not relevant
+      since R 2.13.0) has been removed.
+
+    • Use of library.dynam() without specifying all the first three
+      arguments is deprecated.  (It is often called from a namespace,
+      and the defaults are only appropriate to a package.)
+
+      Use of chname in library.dynam() with the extension .so or .dll
+      (which is clearly not allowed according to the help page) is
+      deprecated.  This also applies to library.dynam.unload() and
+      useDynLib directives in NAMESPACE files.
+
+    • It is deprecated to use mean(x) and sd(x) directly on data frames
+      (or also matrices, for sd) x, instead of simply using sapply.
+
+      In the same spirit, median(x) now gives an error for a data frame
+      x (it often gave nonsensical results).
+
+    • The keep.source argument to library() and require() is
+      deprecated: it was only used for packages installed without
+      lazy-loading, and now all packages are lazy-loaded.
+
+    • Using a false value for the DESCRIPTION field LazyLoad is
+      deprecated.
+
+  INSTALLATION:
+
+    • The base and recommended packages are now byte-compiled
+      (equivalent to make bytecode in R 2.13.x).
+
+    • Configure option --with-system-zlib now only makes use of the
+      basic interface of zlib and not the C function gzseek which has
+      shown erroneous behaviour in zlib 1.2.4 and 1.2.5.
+
+    • The zlib in the R sources is now version 1.2.5.  (This is safe
+      even on 32-bit Linux systems because only the basic interface is
+      now used.)
+
+    • The .afm files in package grDevices are now installed as
+      compressed files (as long done on Windows), saving ca 2MB on the
+      installed size.
+
+    • The non-screen cairo-based devices are no longer in the X11
+      module and so can be installed without X11.  (We have never seen
+      a Unix-alike system with cairographics installed but not X11, but
+      a user might select --without-x.)
+
+    • Configure will try to use -fobjc-exceptions for the Objective-C
+      compiler (if present) to ensure that even compilers that do not
+      enable exceptions by default (such as vanilla gcc) can be used.
+      (Objective-C is currently only used on Mac OS X.)
+
+    • The system call times is required.
+
+    • The C99 functions acosh, asinh, atanh, snprintf and vsnprintf are
+      now required.
+
+    • There is no longer support for making DVI manuals _via_ make dvi,
+      make install-dvi and similar.  Only PDF manuals are supported (to
+      allow the use of fonts which are only available for PDF.)
+
+    • The configure arguments used during configuration of R are
+      included as a comment in Makeconf for informative purposes on
+      Unix-alikes in a form suitable for shell execution.  Note that
+      those are merely command-line arguments, they do not include
+      environment variables (one more reason to use configure variables
+      instead) or site configuration settings.
+
+    • Framework installation now supports DESTDIR (Mac OS X only).
+
+    • Java detection (R CMD javareconf) works around bogus
+      java.library.path property in recent Oracle Java binaries.
+
+  BUG FIXES:
+
+    • The locale category LC_MONETARY was only being set on startup on
+      Windows: that is now done on Unix-alikes where supported.
+
+    • Reference class utilities will detect an attempt to modify
+      methods or fields in a locked class definition (e.g., in a
+      namespace) and generate an error.
+
+    • The formula methods for lines(), points() and text() now work
+      even if package stats is not on the search path.
+
+    • In principle, S4 classes from different packages could have the
+      same name.  This has not previously worked.  Changes have now
+      been installed that should allow such classes and permit methods
+      to use them.  New functions className() and multipleClasses() are
+      related tools for programming.
+
+    • Work around an issue in Linux (a system select call resetting tv)
+      which prevented internet operations from timing out properly.
+
+    • Several stack trampling and overflow issues have been fixed in
+      TRE, triggered by agrep and friends with long patterns.
+      (PR#14627)
+
+    • (“design infelicity”) Field assignments in reference classes are
+      now consistent with slots in S4 classes: the assigned value must
+      come from the declared class (if any) for the field or from a
+      subclass.
+
+    • The methods objects constructed for "coerce" and "coerce<-" were
+      lacking some essential information in the generic, defined and
+      target slots; as() did not handle duplicate class definitions
+      correctly.
+
+    • The parser no longer accepts the digit 8 in an octal character
+      code in a string, nor does it accept unterminated strings in a
+      file.  (Reported by Bill Dunlap.)
+
+    • The print() method for class "summary.aov" did not pass on
+      argument digits when summary() was called on a single object, and
+      hence used more digits than documented.
+
+    • The X11() device's cairo back-end produced incorrect capture
+      snapshot images on big-endian machines.
+
+    • loglin() gave a spurious error when argument margin consisted of
+      a single element of length one.  (PR#14690)
+
+    • loess() is better protected against misuse, e.g. zero-length
+      span.  (PR#14691)
+
+    • HoltWinters() checks that the optimization succeeded. (PR#14694)
+
+    • The (undocumented) inclusion of superclass objects in default
+      initializing of reference classes overwrote explicit field
+      arguments. The bug is fixed, the feature documented and a test
+      added.
+
+    • round(x, -Inf) now does something sensible (return zero rather
+      than NA).
+
+    • signif(x, -Inf) now behaves as documented (signif(x, 1)) rather
+      than giving zero.
+
+    • The "table" method for Axis() hardcoded side = 1, hence calls to
+      plot(<vector>, <table>) labelled the wrong axis. (PR#14699)
+
+    • Creating a connection might fail under gctorture(TRUE).
+
+    • stack() and unstack() converted character columns to factors.
+
+      unstack() sometimes produced incorrect results (a list or a
+      vector) if the factor on which to un-split had only one level.
+
+    • On some systems help(".C", help_type = "pdf") and similar
+      generated file names that TeX was unable to handle.
+
+    • Non-blocking listening socket connections continued to report
+      isIncomplete() as true even when the peer had closed down and all
+      available input had been read.
+
+    • The revised HTML search system now generates better hyperlinks to
+      help topics found: previously it gave problems with help pages
+      with names containing e.g. spaces and slashes.
+
+    • A late change in R 2.13.2 broke \Sexpr expressions in Rd files.
+
+    • The creation of ticks on log axes (including by axTicks())
+      sometimes incorrectly omitted a tick at one end of the range by
+      rounding error in a platform-dependent way.  This could be seen
+      in the examples for axTicks(), where with axis limits c(0.2, 88)
+      the tick for 0.2 was sometimes omitted.
+
+    • qgamma() for small shape underflows to 0 rather than sometimes
+      giving NaN.  (PR#8528, PR#14710)
+
+    • mapply() now gives an explicit error message (rather than an
+      obscure one) if inputs of zero and positive length are mixed.
+
+    • Setting a Hershey font family followed by string height query
+      would crash R.
+
+    • R CMD javareconf -e would fail for some shells due to a shift
+      error. Also the resulting paths will no longer contain
+      $(JAVA_HOME) as that can result in an unintended substitution
+      based on Makeconf instead of the shell setting.
+
+CHANGES IN R VERSION 2.13.2:
+
+  NEW FEATURES:
+
+    • mem.limits() now reports values larger than the maximum integer
+      (previously documented to be reported as NA), and allows larger
+      values to be set, including Inf to remove the limit.
+
+    • The print() methods for classes "Date", "POSIXct" and "POSIXlt"
+      respect the option "max.print" and so are much faster for very
+      long datetime vectors.  (Suggestion of Yohan Chalabi.)
+
+    • untar2() now works around errors generated with tar files that
+      use more than the standard 6 digits for the checksum. (PR#14654)
+
+    • install.packages() with Ncpus > 1 guards against simultaneous
+      installation of indirect dependencies as well as direct ones.
+
+    • Sweave now knows about a few more Windows' encodings (including
+      cp1250 and cp1257) and some inputenx encodings such as koi8-r.
+
+    • postscript(colormodel = "rgb-nogray") no longer sets the sRGB
+      colorspace for each colour and so some viewers may render its
+      files much faster than the default colormodel ="rgb".
+
+    • The default for pdf(maxRasters=) has been increased from 64 to
+      1000.
+
+    • readBin() now warns if signed = FALSE is used inappropriately
+      (rather than being silently ignored).
+
+      It enforces the documented limit of 2^31-1 bytes in a single
+      call.
+
+    • PCRE has been updated to version 8.13, a bug-fix release with
+      updated Unicode tables (version 6.0.0).  An additional patch
+      (r611 from PCRE 8.20-to-be) has been added to fix a collation
+      symbol recognition issue.
+
+  INSTALLATION:
+
+    • It is possible to build in src/extra/xdr on more platforms.
+      (Needed since glibc 2.14 hides its RPC implementation.)
+
+    • configure will find the Sun TI-RPC implementation of xdr (in
+      libtirpc) provided its header files are in the search path: see
+      the ‘R Installation and Administration Manual’.
+
+  PACKAGE INSTALLATION:
+
+    • Using a broad exportPattern directive in a NAMESPACE file is no
+      longer allowed to export internal objects such as .onLoad and
+      .__S3MethodsTable__. .
+
+      These are also excluded from imports, along with .First.lib.
+
+  BUG FIXES:
+
+    • fisher.test() had a buglet: If arguments were factors with unused
+      levels, levels were dropped and you would get an error saying
+      that there should be at least two levels, inconsistently with
+      pre-tabulated data.  (Reported by Michael Fay).
+
+    • package.skeleton() will no longer dump S4 objects supplied
+      directly rather than in a code file.  These cannot be restored
+      correctly from the dumped version.
+
+    • Build-time expressions in help files did not have access to
+      functions in the package being built (with R CMD build).
+
+    • Because quote() did not mark its result as being in use,
+      modification of the result could in some circumstances modify the
+      original call.
+
+    • Plotting pch = '.' now guarantees at least a one-pixel dot if cex
+      > 0.
+
+    • The very-rarely-used command-line option --max-vsize was
+      incorrectly interpreted as a number of Vcells and not in bytes as
+      documented.  (Spotted by Christophe Rhodes.)
+
+    • The HTML generated by Rd2HTML() comes closer to being standards
+      compliant.
+
+    • filter(x, recursive = TRUE) gave incorrect results on a series
+      containing NAs.  (Spotted by Bill Dunlap.)
+
+    • Profiling stats::mle() fits with a fixed parameter was not
+      supported.  (PR#14646)
+
+    • retracemem() was still using positional matching.  (PR#14650)
+
+    • The quantile method for "ecdf" objects now works and is
+      documented.
+
+    • xtabs(~ .., ..., sparse=TRUE) now also works together with an
+      exclude = .. specification.
+
+    • decompose() computed an incorrect seasonal component for time
+      series with odd frequencies.
+
+    • The pdf() device only includes the definition of the sRGB
+      colorspace in the output file for the "rgb" colormodel (and not
+      for "gray" nor "cmyk"): this saves ca 9KB in the output file.
+
+    • .hasSlot() wrongly gave FALSE in some cases.
+
+    • Sweave() with keep.source=TRUE could generate spurious NA lines
+      when a chunk reference appeared last in a code chunk.
+
+    • \Sexpr[results=rd] in an .Rd file now first tries
+      parse_Rd(fragment=FALSE) to allow Rd section-level macros to be
+      inserted.
+
+    • The print() method for class "summary.aov" did not pass on
+      arguments such as signif.stars when summary() was called on a
+      single object.  (PR#14684)
+
+    • In rare cases ks.test() could return a p-value very slightly less
+      than 0 by rounding error.  (PR#14671)
+
+    • If trunc() was called on a "POSIXlt" vector and the result was
+      subsetted, all but the first element was converted to NA.
+      (PR#14679)
+
+    • cbind() and rbind() could cause memory corruption when used on a
+      combination of raw and logical/integer vectors.
+
+CHANGES IN R VERSION 2.13.1:
+
+  NEW FEATURES:
+
+    • iconv() no longer translates NA strings as "NA".
+
+    • persp(box = TRUE) now warns if the surface extends outside the
+      box (since occlusion for the box and axes is computed assuming
+      the box is a bounding box). (PR#202)
+
+    • RShowDoc() can now display the licences shipped with R, e.g.
+      RShowDoc("GPL-3").
+
+    • New wrapper function showNonASCIIfile() in package tools.
+
+    • nobs() now has a "mle" method in package stats4.
+
+    • trace() now deals correctly with S4 reference classes and
+      corresponding reference methods (e.g., $trace()) have been added.
+
+    • xz has been updated to 5.0.3 (very minor bugfix release).
+
+    • tools::compactPDF() gets more compression (usually a little,
+      sometimes a lot) by using the compressed object streams of PDF
+      1.5.
+
+    • cairo_ps(onefile = TRUE) generates encapsulated EPS on platforms
+      with cairo >= 1.6.
+
+    • Binary reads (e.g. by readChar() and readBin()) are now supported
+      on clipboard connections.  (Wish of PR#14593.)
+
+    • as.POSIXlt.factor() now passes ... to the character method
+      (suggestion of Joshua Ulrich).  [Intended for R 2.13.0 but
+      accidentally removed before release.]
+
+    • vector() and its wrappers such as integer() and double() now warn
+      if called with a length argument of more than one element.  This
+      helps track down user errors such as calling double(x) instead of
+      as.double(x).
+
+  INSTALLATION:
+
+    • Building the vignette PDFs in packages grid and utils is now part
+      of running make from an SVN checkout on a Unix-alike: a separate
+      make vignettes step is no longer required.
+
+      These vignettes are now made with keep.source = TRUE and hence
+      will be laid out differently.
+
+    • make install-strip failed under some configuration options.
+
+    • Packages can customize non-standard installation of compiled code
+      via a src/install.libs.R script. This allows packages that have
+      architecture-specific binaries (beyond the package's shared
+      objects/DLLs) to be installed in a multi-architecture setting.
+
+  SWEAVE & VIGNETTES:
+
+    • Sweave() and Stangle() gain an encoding argument to specify the
+      encoding of the vignette sources if the latter do not contain a
+      \usepackage[]{inputenc} statement specifying a single input
+      encoding.
+
+    • There is a new Sweave option figs.only = TRUE to run each figure
+      chunk only for each selected graphics device, and not first using
+      the default graphics device.  This will become the default in R
+      2.14.0.
+
+    • Sweave custom graphics devices can have a custom function
+      foo.off() to shut them down.
+
+    • Warnings are issued when non-portable filenames are found for
+      graphics files (and chunks if split = TRUE).  Portable names are
+      regarded as alphanumeric plus hyphen, underscore, plus and hash
+      (periods cause problems with recognizing file extensions).
+
+    • The Rtangle() driver has a new option show.line.nos which is by
+      default false; if true it annotates code chunks with a comment
+      giving the line number of the first line in the sources (the
+      behaviour of R >= 2.12.0).
+
+    • Package installation tangles the vignette sources: this step now
+      converts the vignette sources from the vignette/package encoding
+      to the current encoding, and records the encoding (if not ASCII)
+      in a comment line at the top of the installed .R file.
+
+  LICENCE:
+
+    • No parts of R are now licensed solely under GPL-2.  The licences
+      for packages rpart and survival have been changed, which means
+      that the licence terms for R as distributed are GPL-2 | GPL-3.
+
+  DEPRECATED AND DEFUNCT:
+
+    • The internal functions .readRDS() and .saveRDS() are now
+      deprecated in favour of the public functions readRDS() and
+      saveRDS() introduced in R 2.13.0.
+
+    • Switching off lazy-loading of code _via_ the LazyLoad field of
+      the DESCRIPTION file is now deprecated.  In future all packages
+      will be lazy-loaded.
+
+    • The off-line help() types "postscript" and "ps" are deprecated.
+
+  UTILITIES:
+
+    • R CMD check on a multi-architecture installation now skips the
+      user's .Renviron file for the architecture-specific tests (which
+      do read the architecture-specific Renviron.site files).  This is
+      consistent with single-architecture checks, which use
+      --no-environ.
+
+    • R CMD build now looks for DESCRIPTION fields BuildResaveData and
+      BuildKeepEmpty for per-package overrides.  See ‘Writing R
+      Extensions’.
+
+  BUG FIXES:
+
+    • plot.lm(which = 5) was intended to order factor levels in
+      increasing order of mean standardized residual.  It ordered the
+      factor labels correctly, but could plot the wrong group of
+      residuals against the label.  (PR#14545)
+
+    • mosaicplot() could clip the factor labels, and could overlap them
+      with the cells if a non-default value of cex.axis was used.
+      (Related to PR#14550.)
+
+    • dataframe[[row,col]] now dispatches on [[ methods for the
+      selected column.  (Spotted by Bill Dunlap).
+
+    • sort.int() would strip the class of an object, but leave its
+      object bit set.  (Reported by Bill Dunlap.)
+
+    • pbirthday() and qbirthday() did not implement the algorithm
+      exactly as given in their reference and so were unnecessarily
+      inaccurate.
+
+      pbirthday() now solves the approximate formula analytically
+      rather than using uniroot() on a discontinuous function.
+
+      The description of the problem was inaccurate: the probability is
+      a tail probability (‘2 _or more_ people share a birthday’)
+
+    • Complex arithmetic sometimes warned incorrectly about producing
+      NAs when there were NaNs in the input.
+
+    • seek(origin = "current") incorrectly reported it was not
+      implemented for a gzfile() connection.
+
+    • c(), unlist(), cbind() and rbind() could silently overflow the
+      maximum vector length and cause a segfault.  (PR#14571)
+
+    • The fonts argument to X11(type = "Xlib") was being ignored.
+
+    • Reading (e.g. with readBin()) from a raw connection was not
+      advancing the pointer, so successive reads would read the same
+      value.  (Spotted by Bill Dunlap.)
+
+    • Parsed text containing embedded newlines was printed incorrectly
+      by as.character.srcref().  (Reported by Hadley Wickham.)
+
+    • decompose() used with a series of a non-integer number of periods
+      returned a seasonal component shorter than the original series.
+      (Reported by Rob Hyndman.)
+
+    • fields = list() failed for setRefClass().  (Reported by Michael
+      Lawrence.)
+
+    • Reference classes could not redefine an inherited field which had
+      class "ANY". (Reported by Janko Thyson.)
+
+    • Methods that override previously loaded versions will now be
+      installed and called.  (Reported by Iago Mosqueira.)
+
+    • addmargins() called numeric(apos) rather than
+      numeric(length(apos)).
+
+    • The HTML help search sometimes produced bad links.  (PR#14608)
+
+    • Command completion will no longer be broken if tail.default() is
+      redefined by the user. (Problem reported by Henrik Bengtsson.)
+
+    • LaTeX rendering of markup in titles of help pages has been
+      improved; in particular, \eqn{} may be used there.
+
+    • isClass() used its own namespace as the default of the where
+      argument inadvertently.
+
+    • Rd conversion to latex mishandled multi-line titles (including
+      cases where there was a blank line in the \title section).  (It
+      seems this happened only in 2.13.0 patched.)
+
+    • postscript() with an sRGB colormodel now uses sRGB for raster
+      images (in R 2.13.[01] it used uncalibrated RGB).
+
+      There is no longer an undocumented 21845-pixel limit on raster
+      images.
+
+CHANGES IN R VERSION 2.13.0:
+
+  SIGNIFICANT USER-VISIBLE CHANGES:
+
+    • replicate() (by default) and vapply() (always) now return a
+      higher-dimensional array instead of a matrix in the case where
+      the inner function value is an array of dimension >= 2.
+
+    • Printing and formatting of floating point numbers is now using
+      the correct number of digits, where it previously rarely differed
+      by a few digits. (See “scientific” entry below.)  This affects
+      _many_ *.Rout.save checks in packages.
+
+  NEW FEATURES:
+
+    • normalizePath() has been moved to the base package (from utils):
+      this is so it can be used by library() and friends.
+
+      It now does tilde expansion.
+
+      It gains new arguments winslash (to select the separator on
+      Windows) and mustWork to control the action if a canonical path
+      cannot be found.
+
+    • The previously barely documented limit of 256 bytes on a symbol
+      name has been raised to 10,000 bytes (a sanity check).  Long
+      symbol names can sometimes occur when deparsing expressions (for
+      example, in model.frame).
+
+    • reformulate() gains a intercept argument.
+
+    • cmdscale(add = FALSE) now uses the more common definition that
+      there is a representation in n-1 or less dimensions, and only
+      dimensions corresponding to positive eigenvalues are used.
+      (Avoids confusion such as PR#14397.)
+
+    • Names used by c(), unlist(), cbind() and rbind() are marked with
+      an encoding when this can be ascertained.
+
+    • R colours are now defined to refer to the sRGB color space.
+
+      The PDF, PostScript, and Quartz graphics devices record this
+      fact.  X11 (and cairo) and Windows just assume that your screen
+      conforms.
+
+    • system.file() gains a mustWork argument (suggestion of Bill
+      Dunlap).
+
+    • new.env(hash = TRUE) is now the default.
+
+    • list2env(envir = NULL) defaults to hashing (with a suitably sized
+      environment) for lists of more than 100 elements.
+
+    • text() gains a formula method.
+
+    • IQR() now has a type argument which is passed to quantile().
+
+    • as.vector(), as.double() etc duplicate less when they leave the
+      mode unchanged but remove attributes.
+
+      as.vector(mode = "any") no longer duplicates when it does not
+      remove attributes.  This helps memory usage in matrix() and
+      array().
+
+      matrix() duplicates less if data is an atomic vector with
+      attributes such as names (but no class).
+
+      dim(x) <- NULL duplicates less if x has neither dimensions nor
+      names (since this operation removes names and dimnames).
+
+    • setRepositories() gains an addURLs argument.
+
+    • chisq.test() now also returns a stdres component, for
+      standardized residuals (which have unit variance, unlike the
+      Pearson residuals).
+
+    • write.table() and friends gain a fileEncoding argument, to
+      simplify writing files for use on other OSes (e.g. a spreadsheet
+      intended for Windows or Mac OS X Excel).
+
+    • Assignment expressions of the form foo::bar(x) <- y and
+      foo:::bar(x) <- y now work; the replacement functions used are
+      foo::`bar<-` and foo:::`bar<-`.
+
+    • Sys.getenv() gains a names argument so Sys.getenv(x, names =
+      FALSE) can replace the common idiom of as.vector(Sys.getenv()).
+      The default has been changed to not name a length-one result.
+
+    • Lazy loading of environments now preserves attributes and locked
+      status. (The locked status of bindings and active bindings are
+      still not preserved; this may be addressed in the future).
+
+    • options("install.lock") may be set to FALSE so that
+      install.packages() defaults to --no-lock installs, or (on
+      Windows) to TRUE so that binary installs implement locking.
+
+    • sort(partial = p) for large p now tries Shellsort if quicksort is
+      not appropriate and so works for non-numeric atomic vectors.
+
+    • sapply() gets a new option simplify = "array" which returns a
+      “higher rank” array instead of just a matrix when FUN() returns a
+      dim() length of two or more.
+
+      replicate() has this option set by default, and vapply() now
+      behaves that way internally.
+
+    • aperm() becomes S3 generic and gets a table method which
+      preserves the class.
+
+    • merge() and as.hclust() methods for objects of class "dendrogram"
+      are now provided.
+
+    • The character method of as.POSIXlt() now tries to find a format
+      that works for all non-NA inputs, not just the first one.
+
+    • str() now has a method for class "Date" analogous to that for
+      class "POSIXt".
+
+    • New function file.link() to create hard links on those file
+      systems (POSIX, NTFS but not FAT) that support them.
+
+    • New Summary() group method for class "ordered" implements min(),
+      max() and range() for ordered factors.
+
+    • mostattributes<-() now consults the "dim" attribute and not the
+      dim() function, making it more useful for objects (such as data
+      frames) from classes with methods for dim().  It also uses
+      attr<-() in preference to the generics name<-(), dim<-() and
+      dimnames<-().  (Related to PR#14469.)
+
+    • There is a new option "browserNLdisabled" to disable the use of
+      an empty (e.g. via the ‘Return’ key) as a synonym for c in
+      browser() or n under debug().  (Wish of PR#14472.)
+
+    • example() gains optional new arguments character.only and
+      give.lines enabling programmatic exploration.
+
+    • serialize() and unserialize() are no longer described as
+      ‘experimental’.  The interface is now regarded as stable,
+      although the serialization format may well change in future
+      releases.  (serialize() has a new argument version which would
+      allow the current format to be written if that happens.)
+
+      New functions saveRDS() and readRDS() are public versions of the
+      ‘internal’ functions .saveRDS() and .readRDS() made available for
+      general use.  The dot-name versions remain available as several
+      package authors have made use of them, despite the documentation.
+      readRDS() no longer wraps non-file connections in a call to
+      gzcon(), for efficiency (see its documentation).
+
+      saveRDS() supports compress = "xz".
+
+    • Many functions when called with a not-open connection will now
+      ensure that the connection is left not-open in the event of
+      error.  These include read.dcf(), dput(), dump(), load(),
+      parse(), readBin(), readChar(), readLines(), save(), writeBin(),
+      writeChar(), writeLines(), .readRDS(), .saveRDS() and
+      tools::parse_Rd(), as well as functions calling these.
+
+    • Public functions find.package() and path.package() replace the
+      internal dot-name versions.
+
+    • The default method for terms() now looks for a "terms" attribute
+      if it does not find a "terms" component, and so works for model
+      frames.
+
+    • httpd() handlers receive an additional argument containing the
+      full request headers as a raw vector (this can be used to parse
+      cookies, multi-part forms etc.). The recommended full signature
+      for handlers is therefore function(url, query, body, headers,
+      ...).
+
+    • file.edit() gains a fileEncoding argument to specify the encoding
+      of the file(s).
+
+    • The format of the HTML package listings has changed.  If there is
+      more than one library tree , a table of links to libraries is
+      provided at the top and bottom of the page.  Where a library
+      contains more than 100 packages, an alphabetic index is given at
+      the top of the section for that library.  (As a consequence,
+      package names are now sorted case-insensitively whatever the
+      locale.)
+
+    • isSeekable() now returns FALSE on connections which have
+      non-default encoding.  Although documented to record if ‘in
+      principle’ the connection supports seeking, it seems safer to
+      report FALSE when it may not work.
+
+    • R CMD REMOVE and remove.packages() now remove file R.css when
+      removing all remaining packages in a library tree.  (Related to
+      the wish of PR#14475: note that this file is no longer
+      installed.)
+
+    • unzip() now has a unzip argument like zip.file.extract().  This
+      allows an external unzip program to be used, which can be useful
+      to access features supported by Info-ZIP's unzip version 6 which
+      is now becoming more widely available.
+
+    • There is a simple zip() function, as wrapper for an external zip
+      command.
+
+    • bzfile() connections can now read from concatenated bzip2 files
+      (including files written with bzfile(open = "a")) and files
+      created by some other compressors (such as the example of
+      PR#14479).
+
+    • The primitive function c() is now of type BUILTIN.
+
+    • plot(<dendrogram>, .., nodePar=*) now obeys an optional xpd
+      specification (allowing clipping to be turned off completely).
+
+    • nls(algorithm="port") now shares more code with nlminb(), and is
+      more consistent with the other nls() algorithms in its return
+      value.
+
+    • xz has been updated to 5.0.1 (very minor bugfix release).
+
+    • image() has gained a logical useRaster argument allowing it to
+      use a bitmap raster for plotting a regular grid instead of
+      polygons. This can be more efficient, but may not be supported by
+      all devices. The default is FALSE.
+
+    • list.files()/dir() gains a new argument include.dirs() to include
+      directories in the listing when recursive = TRUE.
+
+    • New function list.dirs() lists all directories, (even empty
+      ones).
+
+    • file.copy() now (by default) copies read/write/execute
+      permissions on files, moderated by the current setting of
+      Sys.umask().
+
+    • Sys.umask() now accepts mode = NA and returns the current umask
+      value (visibly) without changing it.
+
+    • There is a ! method for classes "octmode" and "hexmode": this
+      allows xor(a, b) to work if both a and b are from one of those
+      classes.
+
+    • as.raster() no longer fails for vectors or matrices containing
+      NAs.
+
+    • New hook "before.new.plot" allows functions to be run just before
+      advancing the frame in plot.new, which is potentially useful for
+      custom figure layout implementations.
+
+    • Package tools has a new function compactPDF() to try to reduce
+      the size of PDF files _via_ qpdf or gs.
+
+    • tar() has a new argument extra_flags.
+
+    • dotchart() accepts more general objects x such as 1D tables which
+      can be coerced by as.numeric() to a numeric vector, with a
+      warning since that might not be appropriate.
+
+    • The previously internal function create.post() is now exported
+      from utils, and the documentation for bug.report() and
+      help.request() now refer to that for create.post().
+
+      It has a new method = "mailto" on Unix-alikes similar to that on
+      Windows: it invokes a default mailer via open (Mac OS X) or
+      xdg-open or the default browser (elsewhere).
+
+      The default for ccaddress is now getOption("ccaddress") which is
+      by default unset: using the username as a mailing address
+      nowadays rarely works as expected.
+
+    • The default for options("mailer") is now "mailto" on all
+      platforms.
+
+    • unlink() now does tilde-expansion (like most other file
+      functions).
+
+    • file.rename() now allows vector arguments (of the same length).
+
+    • The "glm" method for logLik() now returns an "nobs" attribute
+      (which stats4::BIC() assumed it did).
+
+      The "nls" method for logLik() gave incorrect results for zero
+      weights.
+
+    • There is a new generic function nobs() in package stats, to
+      extract from model objects a suitable value for use in BIC
+      calculations.  An S4 generic derived from it is defined in
+      package stats4.
+
+    • Code for S4 reference-class methods is now examined for possible
+      errors in non-local assignments.
+
+    • findClasses, getGeneric, findMethods and hasMethods are revised
+      to deal consistently with the package= argument and be consistent
+      with soft namespace policy for finding objects.
+
+    • tools::Rdiff() now has the option to return not only the status
+      but a character vector of observed differences (which are still
+      by default sent to stdout).
+
+    • The startup environment variables R_ENVIRON_USER, R_ENVIRON,
+      R_PROFILE_USER and R_PROFILE are now treated more consistently.
+      In all cases an empty value is considered to be set and will stop
+      the default being used, and for the last two tilde expansion is
+      performed on the file name.  (Note that setting an empty value is
+      probably impossible on Windows.)
+
+    • Using R --no-environ CMD, R --no-site-file CMD or R
+      --no-init-file CMD sets environment variables so these settings
+      are passed on to child R processes, notably those run by INSTALL,
+      check and build. R --vanilla CMD sets these three options (but
+      not --no-restore).
+
+    • smooth.spline() is somewhat faster.  With cv=NA it allows some
+      leverage computations to be skipped,
+
+    • The internal (C) function scientific(), at the heart of R's
+      format.info(x), format(x), print(x), etc, for numeric x, has been
+      re-written in order to provide slightly more correct results,
+      fixing PR#14491, notably in border cases including when digits >=
+      16, thanks to substantial contributions (code and experiments)
+      from Petr Savicky.  This affects a noticeable amount of numeric
+      output from R.
+
+    • A new function grepRaw() has been introduced for finding subsets
+      of raw vectors. It supports both literal searches and regular
+      expressions.
+
+    • Package compiler is now provided as a standard package.  See
+      ?compiler::compile for information on how to use the compiler.
+      This package implements a byte code compiler for R: by default
+      the compiler is not used in this release.  See the ‘R
+      Installation and Administration Manual’ for how to compile the
+      base and recommended packages.
+
+    • Providing an exportPattern directive in a NAMESPACE file now
+      causes classes to be exported according to the same pattern, for
+      example the default from package.skeleton() to specify all names
+      starting with a letter.  An explicit directive to
+      exportClassPattern will still over-ride.
+
+    • There is an additional marked encoding "bytes" for character
+      strings.  This is intended to be used for non-ASCII strings which
+      should be treated as a set of bytes, and never re-encoded as if
+      they were in the encoding of the current locale: useBytes = TRUE
+      is automatically selected in functions such as writeBin(),
+      writeLines(), grep() and strsplit().
+
+      Only a few character operations are supported (such as substr()).
+
+      Printing, format() and cat() will represent non-ASCII bytes in
+      such strings by a \xab escape.
+
+    • The new function removeSource() removes the internally stored
+      source from a function.
+
+    • "srcref" attributes now include two additional line number
+      values, recording the line numbers in the order they were parsed.
+
+    • New functions have been added for source reference access:
+      getSrcFilename(), getSrcDirectory(), getSrcLocation() and
+      getSrcref().
+
+    • Sys.chmod() has an extra argument use_umask which defaults to
+      true and restricts the file mode by the current setting of umask.
+      This means that all the R functions which manipulate
+      file/directory permissions by default respect umask, notably R
+      CMD INSTALL.
+
+    • tempfile() has an extra argument fileext to create a temporary
+      filename with a specified extension.  (Suggestion and initial
+      implementation by Dirk Eddelbuettel.)
+
+      There are improvements in the way Sweave() and Stangle() handle
+      non-ASCII vignette sources, especially in a UTF-8 locale: see
+      ‘Writing R Extensions’ which now has a subsection on this topic.
+
+    • factanal() now returns the rotation matrix if a rotation such as
+      "promax" is used, and hence factor correlations are displayed.
+      (Wish of PR#12754.)
+
+    • The gctorture2() function provides a more refined interface to
+      the GC torture process.  Environment variables R_GCTORTURE,
+      R_GCTORTURE_WAIT, and R_GCTORTURE_INHIBIT_RELEASE can also be
+      used to control the GC torture process.
+
+    • file.copy(from, to) no longer regards it as an error to supply a
+      zero-length from: it now simply does nothing.
+
+    • rstandard.glm() gains a type argument which can be used to
+      request standardized Pearson residuals.
+
+    • A start on a Turkish translation, thanks to Murat Alkan.
+
+    • .libPaths() calls normalizePath(winslash = "/") on the paths:
+      this helps (usually) to present them in a user-friendly form and
+      should detect duplicate paths accessed via different symbolic
+      links.
+
+    • download.file() can be now used with external methods even if
+      there are spaces in the URL or the target filename.
+
+    • The first formal argument of .C(), .Fortran(), .Call() and
+      .External() is now referred to a .NAME rather than name: however
+      actual calls should have an unnamed first argument.
+
+  SWEAVE CHANGES:
+
+    • Sweave() has options to produce PNG and JPEG figures, and to use
+      a custom function to open a graphics device (see ?RweaveLatex).
+      (Based in part on the contribution of PR#14418.)
+
+    • The default for Sweave() is to produce only PDF figures (rather
+      than both EPS and PDF).
+
+    • Environment variable SWEAVE_OPTIONS can be used to supply
+      defaults for existing or new options to be applied after the
+      Sweave driver setup has been run.
+
+    • The Sweave manual is now included as a vignette in the utils
+      package.
+
+    • Sweave() handles keep.source=TRUE much better: it could duplicate
+      some lines and omit comments. (Reported by John Maindonald and
+      others.)
+
+  C-LEVEL FACILITIES:
+
+    • Because they use a C99 interface which a C++ compiler is not
+      required to support, Rvprintf and REvprintf are only defined by
+      R_ext/Print.h in C++ code if the macro R_USE_C99_IN_CXX is
+      defined when it is included.
+
+    • pythag duplicated the C99 function hypot.  It is no longer
+      provided, but is used as a substitute for hypot in the very
+      unlikely event that the latter is not available.
+
+    • R_inspect(obj) and R_inspect3(obj, deep, pvec) are (hidden)
+      C-level entry points to the internal inspect function and can be
+      used for C-level debugging (e.g., in conjunction with the p
+      command in gdb).
+
+    • Compiling R with --enable-strict-barrier now also enables
+      additional checking for use of unprotected objects. In
+      combination with gctorture() or gctorture2() and a C-level
+      debugger this can be useful for tracking down memory protection
+      issues.
+
+  UTILITIES:
+
+    • R CMD Rdiff is now implemented in R on Unix-alikes (as it has
+      been on Windows since R 2.12.0).
+
+    • R CMD build no longer does any cleaning in the supplied package
+      directory: all the cleaning is done in the copy.
+
+      It has a new option --install-args to pass arguments to R CMD
+      INSTALL for --build (but not when installing to rebuild
+      vignettes).
+
+      There is new option, --resave-data, to call
+      tools::resaveRdaFiles() on the data directory, to compress
+      tabular files (.tab, .csv etc) and to convert .R files to .rda
+      files.  The default, --resave-data=gzip, is to do so in a way
+      compatible even with years-old versions of R, but better
+      compression is given by --resave-data=best, requiring R >=
+      2.10.0.
+
+      It now adds a datalist file for data directories of more than
+      1Mb.
+
+      Patterns in .Rbuildignore are now also matched against all
+      directory names (including those of empty directories).
+
+      There is a new option, --compact-vignettes, to try reducing the
+      size of PDF files in the inst/doc directory.  Currently this
+      tries qpdf: other options may be used in future.
+
+      When re-building vignettes and a inst/doc/Makefile file is found,
+      make clean is run if the makefile has a clean: target.
+
+      After re-building vignettes the default clean-up operation will
+      remove any directories (and not just files) created during the
+      process: e.g. one package created a .R_cache directory.
+
+      Empty directories are now removed unless the option
+      --keep-empty-dirs is given (and a few packages do deliberately
+      include empty directories).
+
+      If there is a field BuildVignettes in the package DESCRIPTION
+      file with a false value, re-building the vignettes is skipped.
+
+    • R CMD check now also checks for filenames that are
+      case-insensitive matches to Windows' reserved file names with
+      extensions, such as nul.Rd, as these have caused problems on some
+      Windows systems.
+
+      It checks for inefficiently saved data/*.rda and data/*.RData
+      files, and reports on those large than 100Kb.  A more complete
+      check (including of the type of compression, but potentially much
+      slower) can be switched on by setting environment variable
+      _R_CHECK_COMPACT_DATA2_ to TRUE.
+
+      The types of files in the data directory are now checked, as
+      packages are _still_ misusing it for non-R data files.
+
+      It now extracts and runs the R code for each vignette in a
+      separate directory and R process: this is done in the package's
+      declared encoding.  Rather than call tools::checkVignettes(), it
+      calls tools::buildVignettes() to see if the vignettes can be
+      re-built as they would be by R CMD build.  Option --use-valgrind
+      now applies only to these runs, and not when running code to
+      rebuild the vignettes.  This version does a much better job of
+      suppressing output from successful vignette tests.
+
+      The 00check.log file is a more complete record of what is output
+      to stdout: in particular contains more details of the tests.
+
+      It now checks all syntactically valid Rd usage entries, and warns
+      about assignments (unless these give the usage of replacement
+      functions).
+
+      .tar.xz compressed tarballs are now allowed, if tar supports them
+      (and setting environment variable TAR to internal ensures so on
+      all platforms).
+
+    • R CMD check now warns if it finds inst/doc/makefile, and R CMD
+      build renames such a file to inst/doc/Makefile.
+
+  INSTALLATION:
+
+    • Installing R no longer tries to find perl, and R CMD no longer
+      tries to substitute a full path for awk nor perl - this was a
+      legacy from the days when they were used by R itself.  Because a
+      couple of packages do use awk, it is set as the make (rather than
+      environment) variable AWK.
+
+    • make check will now fail if there are differences from the
+      reference output when testing package examples and if environment
+      variable R_STRICT_PACKAGE_CHECK is set to a true value.
+
+    • The C99 double complex type is now required.
+
+      The C99 complex trigonometric functions (such as csin) are not
+      currently required (FreeBSD lacks most of them): substitutes are
+      used if they are missing.
+
+    • The C99 system call va_copy is now required.
+
+    • If environment variable R_LD_LIBRARY_PATH is set during
+      configuration (for example in config.site) it is used unchanged
+      in file etc/ldpaths rather than being appended to.
+
+    • configure looks for support for OpenMP and if found compiles R
+      with appropriate flags and also makes them available for use in
+      packages: see ‘Writing R Extensions’.
+
+      This is currently experimental, and is only used in R with a
+      single thread for colSums() and colMeans().  Expect it to be more
+      widely used in later versions of R.
+
+      This can be disabled by the --disable-openmp flag.
+
+  PACKAGE INSTALLATION:
+
+    • R CMD INSTALL --clean now removes copies of a src directory which
+      are created when multiple sub-architectures are in use.
+      (Following a comment from Berwin Turlach.)
+
+    • File R.css is now installed on a per-package basis (in the
+      package's html directory) rather than in each library tree, and
+      this is used for all the HTML pages in the package.  This helps
+      when installing packages with static HTML pages for use on a
+      webserver.  It will also allow future versions of R to use
+      different stylesheets for the packages they install.
+
+    • A top-level file .Rinstignore in the package sources can list (in
+      the same way as .Rbuildignore) files under inst that should not
+      be installed.  (Why should there be any such files?  Because all
+      the files needed to re-build vignettes need to be under inst/doc,
+      but they may not need to be installed.)
+
+    • R CMD INSTALL has a new option --compact-docs to compact any PDFs
+      under the inst/doc directory.  Currently this uses qpdf, which
+      must be installed (see ‘Writing R Extensions’).
+
+    • There is a new option --lock which can be used to cancel the
+      effect of --no-lock or --pkglock earlier on the command line.
+
+    • Option --pkglock can now be used with more than one package, and
+      is now the default if only one package is specified.
+
+    • Argument lock of install.packages() can now be use for Mac binary
+      installs as well as for Windows ones.  The value "pkglock" is now
+      accepted, as well as TRUE and FALSE (the default).
+
+    • There is a new option --no-clean-on-error for R CMD INSTALL to
+      retain a partially installed package for forensic analysis.
+
+    • Packages with names ending in . are not portable since Windows
+      does not work correctly with such directory names.  This is now
+      warned about in R CMD check, and will not be allowed in R 2.14.x.
+
+    • The vignette indices are more comprehensive (in the style of
+      browseVignetttes()).
+
+  DEPRECATED & DEFUNCT:
+
+    • require(save = TRUE) is defunct, and use of the save argument is
+      deprecated.
+
+    • R CMD check --no-latex is defunct: use --no-manual instead.
+
+    • R CMD Sd2Rd is defunct.
+
+    • The gamma argument to hsv(), rainbow(), and rgb2hsv() is
+      deprecated and no longer has any effect.
+
+    • The previous options for R CMD build --binary (--auto-zip,
+      --use-zip-data and --no-docs) are deprecated (or defunct): use
+      the new option --install-args instead.
+
+    • When a character value is used for the EXPR argument in switch(),
+      only a single unnamed alternative value is now allowed.
+
+    • The wrapper utils::link.html.help() is no longer available.
+
+    • Zip-ing data sets in packages (and hence R CMD INSTALL options
+      --use-zip-data and --auto-zip, as well as the ZipData: yes field
+      in a DESCRIPTION file) is defunct.
+
+      Installed packages with zip-ed data sets can still be used, but a
+      warning that they should be re-installed will be given.
+
+    • The ‘experimental’ alternative specification of a namespace via
+      .Export() etc is now defunct.
+
+    • The option --unsafe to R CMD INSTALL is deprecated: use the
+      identical option --no-lock instead.
+
+    • The entry point pythag in Rmath.h is deprecated in favour of the
+      C99 function hypot.  A wrapper for hypot is provided for R 2.13.x
+      only.
+
+    • Direct access to the "source" attribute of functions is
+      deprecated; use deparse(fn, control="useSource") to access it,
+      and removeSource(fn) to remove it.
+
+    • R CMD build --binary is now formally deprecated: R CMD INSTALL
+      --build has long been the preferred alternative.
+
+    • Single-character package names are deprecated (and R is already
+      disallowed to avoid confusion in Depends: fields).
+
+  BUG FIXES:
+
+    • drop.terms and the [ method for class "terms" no longer add back
+      an intercept.  (Reported by Niels Hansen.)
+
+    • aggregate preserves the class of a column (e.g. a date) under
+      some circumstances where it discarded the class previously.
+
+    • p.adjust() now always returns a vector result, as documented.  In
+      previous versions it copied attributes (such as dimensions) from
+      the p argument: now it only copies names.
+
+    • On PDF and PostScript devices, a line width of zero was recorded
+      verbatim and this caused problems for some viewers (a very thin
+      line combined with a non-solid line dash pattern could also cause
+      a problem).  On these devices, the line width is now limited at
+      0.01 and for very thin lines with complex dash patterns the
+      device may force the line dash pattern to be solid.  (Reported by
+      Jari Oksanen.)
+
+    • The str() method for class "POSIXt" now gives sensible output for
+      0-length input.
+
+    • The one- and two-argument complex maths functions failed to warn
+      if NAs were generated (as their numeric analogues do).
+
+    • Added .requireCachedGenerics to the dont.mind list for library()
+      to avoid warnings about duplicates.
+
+    • $<-.data.frame messed with the class attribute, breaking any S4
+      subclass.  The S4 data.frame class now has its own $<- method,
+      and turns dispatch on for this primitive.
+
+    • Map() did not look up a character argument f in the correct
+      frame, thanks to lazy evaluation.  (PR#14495)
+
+    • file.copy() did not tilde-expand from and to when to was a
+      directory.  (PR#14507)
+
+    • It was possible (but very rare) for the loading test in R CMD
+      INSTALL to crash a child R process and so leave around a lock
+      directory and a partially installed package.  That test is now
+      done in a separate process.
+
+    • plot(<formula>, data=<matrix>,..) now works in more cases;
+      similarly for points(), lines() and text().
+
+    • edit.default() contained a manual dispatch for matrices (the
+      "matrix" class didn't really exist when it was written).  This
+      caused an infinite recursion in the no-GUI case and has now been
+      removed.
+
+    • data.frame(check.rows = TRUE) sometimes worked when it should
+      have detected an error.  (PR#14530)
+
+    • scan(sep= , strip.white=TRUE) sometimes stripped trailing spaces
+      from within quoted strings.  (The real bug in PR#14522.)
+
+    • The rank-correlation methods for cor() and cov() with use =
+      "complete.obs" computed the ranks before removing missing values,
+      whereas the documentation implied incomplete cases were removed
+      first.  (PR#14488)
+
+      They also failed for 1-row matrices.
+
+    • The perpendicular adjustment used in placing text and expressions
+      in the margins of plots was not scaled by par("mex"). (Part of
+      PR#14532.)
+
+    • Quartz Cocoa device now catches any Cocoa exceptions that occur
+      during the creation of the device window to prevent crashes.  It
+      also imposes a limit of 144 ft^2 on the area used by a window to
+      catch user errors (unit misinterpretation) early.
+
+    • The browser (invoked by debug(), browser() or otherwise) would
+      display attributes such as "wholeSrcref" that were intended for
+      internal use only.
+
+    • R's internal filename completion now properly handles filenames
+      with spaces in them even when the readline library is used.  This
+      resolves PR#14452 provided the internal filename completion is
+      used (e.g., by setting rc.settings(files = TRUE)).
+
+    • Inside uniroot(f, ...), -Inf function values are now replaced by
+      a maximally *negative* value.
+
+    • rowsum() could silently over/underflow on integer inputs
+      (reported by Bill Dunlap).
+
+    • as.matrix() did not handle "dist" objects with zero rows.
+
+CHANGES IN R VERSION 2.12.2 patched:
+
+  NEW FEATURES:
+
+    • max() and min() work harder to ensure that NA has precedence over
+      NaN, so e.g. min(NaN, NA) is NA.  (This was not previously
+      documented except for within a single numeric vector, where
+      compiler optimizations often defeated the code.)
+
+  BUG FIXES:
+
+    • A change to the C function R_tryEval had broken error messages in
+      S4 method selection; the error message is now printed.
+
+    • PDF output with a non-RGB color model used RGB for the line
+      stroke color.  (PR#14511)
+
+    • stats4::BIC() assumed without checking that an object of class
+      "logLik" has an "nobs" attribute: glm() fits did not and so BIC()
+      failed for them.
+
+    • In some circumstances a one-sided mantelhaen.test() reported the
+      p-value for the wrong tail.  (PR#14514)
+
+    • Passing the invalid value lty = NULL to axis() sent an invalid
+      value to the graphics device, and might cause the device to
+      segfault.
+
+    • Sweave() with concordance=TRUE could lead to invalid PDF files;
+      Sweave.sty has been updated to avoid this.
+
+    • Non-ASCII characters in the titles of help pages were not
+      rendered properly in some locales, and could cause errors or
+      warnings.
+
+    • checkRd() gave a spurious error if the \href macro was used.
+
+CHANGES IN R VERSION 2.12.2:
+
+  SIGNIFICANT USER-VISIBLE CHANGES:
+
+    • Complex arithmetic (notably z^n for complex z and integer n) gave
+      incorrect results since R 2.10.0 on platforms without C99 complex
+      support.  This and some lesser issues in trigonometric functions
+      have been corrected.
+
+      Such platforms were rare (we know of Cygwin and FreeBSD).
+      However, because of new compiler optimizations in the way complex
+      arguments are handled, the same code was selected on x86_64 Linux
+      with gcc 4.5.x at the default -O2 optimization (but not at -O).
+
+    • There is a workaround for crashes seen with several packages on
+      systems using zlib 1.2.5: see the INSTALLATION section.
+
+  NEW FEATURES:
+
+    • PCRE has been updated to 8.12 (two bug-fix releases since 8.10).
+
+    • rep(), seq(), seq.int() and seq_len() report more often when the
+      first element is taken of an argument of incorrect length.
+
+    • The Cocoa back-end for the quartz() graphics device on Mac OS X
+      provides a way to disable event loop processing temporarily
+      (useful, e.g., for forked instances of R).
+
+    • kernel()'s default for m was not appropriate if coef was a set of
+      coefficients.  (Reported by Pierre Chausse.)
+
+    • bug.report() has been updated for the current R bug tracker,
+      which does not accept emailed submissions.
+
+    • R CMD check now checks for the correct use of $(LAPACK_LIBS) (as
+      well as $(BLAS_LIBS)), since several CRAN recent submissions have
+      ignored ‘Writing R Extensions’.
+
+  INSTALLATION:
+
+    • The zlib sources in the distribution are now built with all
+      symbols remapped: this is intended to avoid problems seen with
+      packages such as XML and rggobi which link to zlib.so.1 on
+      systems using zlib 1.2.5.
+
+    • The default for FFLAGS and FCFLAGS with gfortran on x86_64 Linux
+      has been changed back to -g -O2: however, setting -g -O may still
+      be needed for gfortran 4.3.x.
+
+  PACKAGE INSTALLATION:
+
+    • A LazyDataCompression field in the DESCRIPTION file will be used
+      to set the value for the --data-compress option of R CMD INSTALL.
+
+    • Files R/sysdata.rda of more than 1Mb are now stored in the
+      lazyload database using xz compression: this for example halves
+      the installed size of package Imap.
+
+    • R CMD INSTALL now ensures that directories installed from inst
+      have search permission for everyone.
+
+      It no longer installs files inst/doc/Rplots.ps and
+      inst/doc/Rplots.pdf.  These are almost certainly left-overs from
+      Sweave runs, and are often large.
+
+  DEPRECATED & DEFUNCT:
+
+    • The ‘experimental’ alternative specification of a namespace via
+      .Export() etc is now deprecated.
+
+    • zip.file.extract() is now deprecated.
+
+    • Zip-ing data sets in packages (and hence R CMD INSTALL
+      --use-zip-data and the ZipData: yes field in a DESCRIPTION file)
+      is deprecated: using efficiently compressed .rda images and
+      lazy-loading of data has superseded it.
+
+  BUG FIXES:
+
+    • identical() could in rare cases generate a warning about
+      non-pairlist attributes on CHARSXPs.  As these are used for
+      internal purposes, the attribute check should be skipped.
+      (Reported by Niels Richard Hansen).
+
+    • If the filename extension (usually .Rnw) was not included in a
+      call to Sweave(), source references would not work properly and
+      the keep.source option failed.  (PR#14459)
+
+    • format.data.frame() now keeps zero character column names.
+
+    • pretty(x) no longer raises an error when x contains solely
+      non-finite values. (PR#14468)
+
+    • The plot.TukeyHSD() function now uses a line width of 0.5 for its
+      reference lines rather than lwd = 0 (which caused problems for
+      some PDF and PostScript viewers).
+
+    • The big.mark argument to prettyNum(), format(), etc. was inserted
+      reversed if it was more than one character long.
+
+    • R CMD check failed to check the filenames under man for Windows'
+      reserved names.
+
+    • The "Date" and "POSIXt" methods for seq() could overshoot when to
+      was supplied and by was specified in months or years.
+
+    • The internal method of untar() now restores hard links as file
+      copies rather than symbolic links (which did not work for
+      cross-directory links).
+
+    • unzip() did not handle zip files which contained filepaths with
+      two or more leading directories which were not in the zipfile and
+      did not already exist.  (It is unclear if such zipfiles are valid
+      and the third-party C code used did not support them, but
+      PR#14462 created one.)
+
+    • combn(n, m) now behaves more regularly for the border case m = 0.
+      (PR#14473)
+
+    • The rendering of numbers in plotmath expressions (e.g.
+      expression(10^2)) used the current settings for conversion to
+      strings rather than setting the defaults, and so could be
+      affected by what has been done before.  (PR#14477)
+
+    • The methods of napredict() and naresid() for na.action =
+      na.exclude fits did not work correctly in the very rare event
+      that every case had been omitted in the fit.  (Reported by Simon
+      Wood.)
+
+    • weighted.residuals(drop0=TRUE) returned a vector when the
+      residuals were a matrix (e.g. those of class "mlm").  (Reported
+      by Bill Dunlap.)
+
+    • Package HTML index files <pkg>/html/00Index.html were generated
+      with a stylesheet reference that was not correct for static
+      browsing in libraries.
+
+    • ccf(na.action = na.pass) was not implemented.
+
+    • The parser accepted some incorrect numeric constants, e.g. 20x2.
+      (Reported by Olaf Mersmann.)
+
+    • format(*, zero.print) did not always replace the full zero parts.
+
+    • Fixes for subsetting or subassignment of "raster" objects when
+      not both i and j are specified.
+
+    • R CMD INSTALL was not always respecting the ZipData: yes field of
+      a DESCRIPTION file (although this is frequently incorrectly
+      specified for packages with no data or which specify lazy-loading
+      of data).
+
+      R CMD INSTALL --use-zip-data was incorrectly implemented as
+      --use-zipdata since R 2.9.0.
+
+    • source(file, echo=TRUE) could fail if the file contained #line
+      directives.  It now recovers more gracefully, but may still
+      display the wrong line if the directive gives incorrect
+      information.
+
+    • atan(1i) returned NaN+Infi (rather than 0+Infi) on platforms
+      without C99 complex support.
+
+    • library() failed to cache S4 metadata (unlike loadNamespace())
+      causing failures in S4-using packages without a namespace (e.g.
+      those using reference classes).
+
+    • The function qlogis(lp, log.p=TRUE) no longer prematurely
+      overflows to Inf when exp(lp) is close to 1.
+
+    • Updating S4 methods for a group generic function requires
+      resetting the methods tables for the members of the group (patch
+      contributed by Martin Morgan).
+
+    • In some circumstances (including for package XML), R CMD INSTALL
+      installed version-control directories from source packages.
+
+    • Added PROTECT calls to some constructed expressions used in C
+      level eval calls.
+
+    • utils:::create.post() (used by bug.report() and help.request())
+      failed to quote arguments to the mailer, and so often failed.
+
+    • bug.report() was naive about how to extract maintainer email
+      addresses from package descriptions, so would often try mailing
+      to incorrect addresses.
+
+    • debugger() could fail to read the environment of a call to a
+      function with a ... argument.  (Reported by Charlie Roosen.)
+
+    • prettyNum(c(1i, NA), drop0=TRUE) or str(NA_complex_) now work
+      correctly.
+
+CHANGES IN R VERSION 2.12.1:
+
+  NEW FEATURES:
+
+    • The DVI/PDF reference manual now includes the help pages for all
+      the standard packages: splines, stats4 and tcltk were previously
+      omitted (intentionally).
+
+    • <URL: http://www.rforge.net> has been added to the default set of
+      repositories known to setRepositories().
+
+    • xz-utils has been updated to version 5.0.0.
+
+    • reshape() now makes use of sep when forming names during
+      reshaping to wide format.  (PR#14435)
+
+    • legend() allows the length of lines to be set by the end user
+      _via_ the new argument seg.len.
+
+    • New S4 reference class utility methods copy(), field(),
+      getRefClass() and getClass() have been added to package methods.
+
+    • When a character value is used for the EXPR argument in switch(),
+      a warning is given if more than one unnamed alternative value is
+      given.  This will become an error in R 2.13.0.
+
+    • StructTS(type = "BSM") now allows series with just two seasons.
+      (Reported by Birgit Erni.)
+
+  INSTALLATION:
+
+    • The PDF reference manual is now built as PDF version 1.5 with
+      object compression, which on platforms for which this is not the
+      default (notably MiKTeX) halves its size.
+
+    • Variable FCLIBS can be set during configuration, for any
+      additional library flags needed when linking a shared object with
+      the Fortran 9x compiler.  (Needed with Solaris Studio 12.2.)
+
+  BUG FIXES:
+
+    • seq.int() no longer sometimes evaluates arguments twice.
+      (PR#14388)
+
+    • The data.frame method of format() failed if a column name was
+      longer than 256 bytes (the maximum length allowed for an R name).
+
+    • predict(<lm object>, type ="terms", ...) failed if both terms and
+      interval were specified.  (Reported by Bill Dunlap.)
+
+      Also, if se.fit = TRUE the standard errors were reported for all
+      terms, not just those selected by a non-null terms.
+
+    • The TRE regular expressions engine could terminate R rather than
+      give an error when given certain invalid regular expressions.
+      (PR#14398)
+
+    • cmdscale(eig = TRUE) was documented to return n-1 eigenvalues but
+      in fact only returned k.  It now returns all n eigenvalues.
+
+      cmdscale(add = TRUE) failed to centre the return configuration
+      and sometimes lost the labels on the points.  Its return value
+      was described wrongly (it is always a list and contains component
+      ac).
+
+    • promptClass() in package methods now works for reference classes
+      and gives a suitably specialized skeleton of documentation.
+
+      Also, callSuper() now works via the methods() invocation as well
+      as for initially specified methods.
+
+    • download.file() could leave the destination file open if the URL
+      was not able to be opened.  (PR#14414)
+
+    • Assignment of an environment to functions or as an attribute to
+      other objects now works for S4 subclasses of "environment".
+
+    • Use of [[<- for S4 subclasses of "environment" generated an
+      infinite recursion from the method.  The method has been replaced
+      by internal code.
+
+    • In a reference class S4 method, callSuper() now works in
+      initialize() methods when there is no explicit superclass method.
+
+    • ! dropped attributes such as names and dimensions from a
+      length-zero argument.  (PR#14424)
+
+    • When list2env() created an environment it was missing a PROTECT
+      call and so was vulnerable to garbage collection.
+
+    • Sweave() with keep.source=TRUE dropped comments at the start and
+      end of code chunks.  It could also fail when \SweaveInput was
+      combined with named chunks.
+
+    • The Fortran code used by nls(algorithm = "port") could
+      infinite-loop when compiled with high optimization on a modern
+      version of gcc, and SAFE_FFLAGS is now used to make this less
+      likely.  (PR#14427, seen with 32-bit Windows using gcc 4.5.0 used
+      from R 2.12.0.)
+
+    • sapply() with default simplify = TRUE and mapply() with default
+      SIMPLIFY = TRUE wrongly simplified language-like results, as,
+      e.g., in mapply(1:2, c(3,7), FUN = function(i,j) call(':',i,j)).
+
+    • Backreferences to undefined patterns in [g]sub(pcre = TRUE) could
+      cause a segfault.  (PR#14431)
+
+    • The format() (and hence the print()) method for class "Date"
+      rounded fractional dates towards zero: it now always rounds them
+      down.
+
+    • Reference S4 class creation could generate ambiguous inheritance
+      patterns under very special circumstances.
+
+    • [[<- turned S4 subclasses of "environment" into plain
+      environments.
+
+    • Long titles for help pages were truncated in package indices and
+      a few other places.
+
+    • Additional utilities now work correctly with S4 subclasses of
+      "environment" (rm, locking tools and active bindings).
+
+    • spec.ar() now also work for the "ols" method.  (Reported by
+      Hans-Ruedi Kuensch.)
+
+    • The initialization of objects from S4 subclasses of "environment"
+      now allocates a new environment object.
+
+    • R CMD check has more protection against (probably erroneous)
+      example or test output which is invalid in the current locale.
+
+    • qr.X() with column names and pivoting now also pivots the column
+      names.  (PR#14438)
+
+    • unit.pmax() and unit.pmin() in package grid gave incorrect
+      results when all inputs were of length 1.  (PR#14443)
+
+    • The parser for NAMESPACE files ignored misspelled directives,
+      rather than signalling an error.  For 2.12.x a warning will be
+      issued, but this will be correctly reported as an error in later
+      releases. (Reported by Charles Berry.)
+
+    • Fix for subsetting of "raster" objects when only one of i or j is
+      specified.
+
+    • grid.raster() in package grid did not accept "nativeRaster"
+      objects (like rasterImage() does).
+
+    • Rendering raster images in PDF output was resetting the clipping
+      region.
+
+    • Rendering of raster images on cairo X11 device was wrong,
+      particularly when a small image was being scaled up using
+      interpolation.
+
+      With cairo < 1.6, will be better than before, though still a
+      little clunky.  With cairo >= 1.6, should be sweet as.
+
+    • Several bugs fixed in read.DIF(): single column inputs caused
+      errors, cells marked as "character" could be converted to other
+      types, and (in Windows) copying from the clipboard failed.
+
+CHANGES IN R VERSION 2.12.0:
+
+  NEW FEATURES:
+
+    • Reading a package's CITATION file now defaults to ASCII rather
+      than Latin-1: a package with a non-ASCII CITATION file should
+      declare an encoding in its DESCRIPTION file and use that encoding
+      for the CITATION file.
+
+    • difftime() now defaults to the "tzone" attribute of "POSIXlt"
+      objects rather than to the current timezone as set by the default
+      for the tz argument.  (Wish of PR#14182.)
+
+    • pretty() is now generic, with new methods for "Date" and "POSIXt"
+      classes (based on code contributed by Felix Andrews).
+
+    • unique() and match() are now faster on character vectors where
+      all elements are in the global CHARSXP cache and have unmarked
+      encoding (ASCII).  Thanks to Matthew Dowle for suggesting
+      improvements to the way the hash code is generated in unique.c.
+
+    • The enquote() utility, in use internally, is exported now.
+
+    • .C() and .Fortran() now map non-zero return values (other than
+      NA_LOGICAL) for logical vectors to TRUE: it has been an implicit
+      assumption that they are treated as true.
+
+    • The print() methods for "glm" and "lm" objects now insert
+      linebreaks in long calls in the same way that the print() methods
+      for "summary.[g]lm" objects have long done.  This does change the
+      layout of the examples for a number of packages, e.g. MASS.
+      (PR#14250)
+
+    • constrOptim() can now be used with method "SANN".  (PR#14245)
+
+      It gains an argument hessian to be passed to optim(), which
+      allows all the ... arguments to be intended for f() and grad().
+      (PR#14071)
+
+    • curve() now allows expr to be an object of mode "expression" as
+      well as "call" and "function".
+
+    • The "POSIX[cl]t" methods for Axis() have been replaced by a
+      single method for "POSIXt".
+
+      There are no longer separate plot() methods for "POSIX[cl]t" and
+      "Date": the default method has been able to handle those classes
+      for a long time.  This _inter alia_ allows a single date-time
+      object to be supplied, the wish of PR#14016.
+
+      The methods had a different default ("") for xlab.
+
+    • Classes "POSIXct", "POSIXlt" and "difftime" have generators
+      .POSIXct(), .POSIXlt() and .difftime().  Package authors are
+      advised to make use of them (they are available from R 2.11.0) to
+      proof against planned future changes to the classes.
+
+      The ordering of the classes has been changed, so "POSIXt" is now
+      the second class.  See the document ‘Updating packages for
+      changes in R 2.12.x’ on <URL: http://developer.r-project.org> for
+      the consequences for a handful of CRAN packages.
+
+    • The "POSIXct" method of as.Date() allows a timezone to be
+      specified (but still defaults to UTC).
+
+    • New list2env() utility function as an inverse of
+      as.list(<environment>) and for fast multi-assign() to existing
+      environment.  as.environment() is now generic and uses list2env()
+      as list method.
+
+    • There are several small changes to output which ‘zap’ small
+      numbers, e.g. in printing quantiles of residuals in summaries
+      from "lm" and "glm" fits, and in test statistics in
+      print.anova().
+
+    • Special names such as "dim", "names", etc, are now allowed as
+      slot names of S4 classes, with "class" the only remaining
+      exception.
+
+    • File .Renviron can have architecture-specific versions such as
+      .Renviron.i386 on systems with sub-architectures.
+
+    • installed.packages() has a new argument subarch to filter on
+      sub-architecture.
+
+    • The summary() method for packageStatus() now has a separate
+      print() method.
+
+    • The default summary() method returns an object inheriting from
+      class "summaryDefault" which has a separate print() method that
+      calls zapsmall() for numeric/complex values.
+
+    • The startup message now includes the platform and if used,
+      sub-architecture: this is useful where different
+      (sub-)architectures run on the same OS.
+
+    • The getGraphicsEvent() mechanism now allows multiple windows to
+      return graphics events, through the new functions
+      setGraphicsEventHandlers(), setGraphicsEventEnv(), and
+      getGraphicsEventEnv().  (Currently implemented in the windows()
+      and X11() devices.)
+
+    • tools::texi2dvi() gains an index argument, mainly for use by R
+      CMD Rd2pdf.
+
+      It avoids the use of texindy by texinfo's texi2dvi >= 1.157,
+      since that does not emulate 'makeindex' well enough to avoid
+      problems with special characters (such as (, {, !) in indices.
+
+    • The ability of readLines() and scan() to re-encode inputs to
+      marked UTF-8 strings on Windows since R 2.7.0 is extended to
+      non-UTF-8 locales on other OSes.
+
+    • scan() gains a fileEncoding argument to match read.table().
+
+    • points() and lines() gain "table" methods to match plot().  (Wish
+      of PR#10472.)
+
+    • Sys.chmod() allows argument mode to be a vector, recycled along
+      paths.
+
+    • There are |, & and xor() methods for classes "octmode" and
+      "hexmode", which work bitwise.
+
+    • Environment variables R_DVIPSCMD, R_LATEXCMD, R_MAKEINDEXCMD,
+      R_PDFLATEXCMD are no longer used nor set in an R session.  (With
+      the move to tools::texi2dvi(), the conventional environment
+      variables LATEX, MAKEINDEX and PDFLATEX will be used.
+      options("dvipscmd") defaults to the value of DVIPS, then to
+      "dvips".)
+
+    • New function isatty() to see if terminal connections are
+      redirected.
+
+    • summaryRprof() returns the sampling interval in component
+      sample.interval and only returns in by.self data for functions
+      with non-zero self times.
+
+    • print(x) and str(x) now indicate if an empty list x is named.
+
+    • install.packages() and remove.packages() with lib unspecified and
+      multiple libraries in .libPaths() inform the user of the library
+      location used with a message rather than a warning.
+
+    • There is limited support for multiple compressed streams on a
+      file: all of [bgx]zfile() allow streams to be appended to an
+      existing file, but bzfile() reads only the first stream.
+
+    • Function person() in package utils now uses a given/family scheme
+      in preference to first/middle/last, is vectorized to handle an
+      arbitrary number of persons, and gains a role argument to specify
+      person roles using a controlled vocabulary (the MARC relator
+      terms).
+
+    • Package utils adds a new "bibentry" class for representing and
+      manipulating bibliographic information in enhanced BibTeX style,
+      unifying and enhancing the previously existing mechanisms.
+
+    • A bibstyle() function has been added to the tools package with
+      default JSS style for rendering "bibentry" objects, and a
+      mechanism for registering other rendering styles.
+
+    • Several aspects of the display of text help are now customizable
+      using the new Rd2txt_options() function.
+      options("help_text_width") is no longer used.
+
+    • Added \href tag to the Rd format, to allow hyperlinks to URLs
+      without displaying the full URL.
+
+    • Added \newcommand and \renewcommand tags to the Rd format, to
+      allow user-defined macros.
+
+    • New toRd() generic in the tools package to convert objects to
+      fragments of Rd code, and added "fragment" argument to Rd2txt(),
+      Rd2HTML(), and Rd2latex() to support it.
+
+    • Directory R_HOME/share/texmf now follows the TDS conventions, so
+      can be set as a texmf tree (‘root directory’ in MiKTeX parlance).
+
+    • S3 generic functions now use correct S4 inheritance when
+      dispatching on an S4 object.  See ?Methods, section on “Methods
+      for S3 Generic Functions” for recommendations and details.
+
+    • format.pval() gains a ... argument to pass arguments such as
+      nsmall to format().  (Wish of PR#9574)
+
+    • legend() supports title.adj.  (Wish of PR#13415)
+
+    • Added support for subsetting "raster" objects, plus assigning to
+      a subset, conversion to a matrix (of colour strings), and
+      comparisons (== and !=).
+
+    • Added a new parseLatex() function (and related functions
+      deparseLatex() and latexToUtf8()) to support conversion of
+      bibliographic entries for display in R.
+
+    • Text rendering of \itemize in help uses a Unicode bullet in UTF-8
+      and most single-byte Windows locales.
+
+    • Added support for polygons with holes to the graphics engine.
+      This is implemented for the pdf(), postscript(),
+      x11(type="cairo"), windows(), and quartz() devices (and
+      associated raster formats), but not for x11(type="Xlib") or
+      xfig() or pictex().  The user-level interface is the polypath()
+      function in graphics and grid.path() in grid.
+
+    • File NEWS is now generated at installation with a slightly
+      different format: it will be in UTF-8 on platforms using UTF-8,
+      and otherwise in ASCII.  There is also a PDF version, NEWS.pdf,
+      installed at the top-level of the R distribution.
+
+    • kmeans(x, 1) now works.  Further, kmeans now returns between and
+      total sum of squares.
+
+    • arrayInd() and which() gain an argument useNames.  For arrayInd,
+      the default is now false, for speed reasons.
+
+    • As is done for closures, the default print method for the formula
+      class now displays the associated environment if it is not the
+      global environment.
+
+    • A new facility has been added for inserting code into a package
+      without re-installing it, to facilitate testing changes which can
+      be selectively added and backed out.  See ?insertSource.
+
+    • New function readRenviron to (re-)read files in the format of
+      ~/.Renviron and Renviron.site.
+
+    • require() will now return FALSE (and not fail) if loading the
+      package or one of its dependencies fails.
+
+    • aperm() now allows argument perm to be a character vector when
+      the array has named dimnames (as the results of table() calls
+      do).  Similarly, array() allows MARGIN to be a character vector.
+      (Based on suggestions of Michael Lachmann.)
+
+    • Package utils now exports and documents functions
+      aspell_package_Rd_files() and aspell_package_vignettes() for
+      spell checking package Rd files and vignettes using Aspell,
+      Ispell or Hunspell.
+
+    • Package news can now be given in Rd format, and news() prefers
+      these inst/NEWS.Rd files to old-style plain text NEWS or
+      inst/NEWS files.
+
+    • New simple function packageVersion().
+
+    • The PCRE library has been updated to version 8.10.
+
+    • The standard Unix-alike terminal interface declares its name to
+      readline as 'R', so that can be used for conditional sections in
+      ~/.inputrc files.
+
+    • ‘Writing R Extensions’ now stresses that the standard sections in
+      .Rd files (other than \alias, \keyword and \note) are intended to
+      be unique, and the conversion tools now drop duplicates with a
+      warning.
+
+      The .Rd conversion tools also warn about an unrecognized type in
+      a \docType section.
+
+    • ecdf() objects now have a quantile() method.
+
+    • format() methods for date-time objects now attempt to make use of
+      a "tzone" attribute with "%Z" and "%z" formats, but it is not
+      always possible.  (Wish of PR#14358.)
+
+    • tools::texi2dvi(file, clean = TRUE) now works in more cases (e.g.
+      where emulation is used and when file is not in the current
+      directory).
+
+    • New function droplevels() to remove unused factor levels.
+
+    • system(command, intern = TRUE) now gives an error on a Unix-alike
+      (as well as on Windows) if command cannot be run.  It reports a
+      non-success exit status from running command as a warning.
+
+      On a Unix-alike an attempt is made to return the actual exit
+      status of the command in system(intern = FALSE): previously this
+      had been system-dependent but on POSIX-compliant systems the
+      value return was 256 times the status.
+
+    • system() has a new argument ignore.stdout which can be used to
+      (portably) ignore standard output.
+
+    • system(intern = TRUE) and pipe() connections are guaranteed to be
+      available on all builds of R.
+
+    • Sys.which() has been altered to return "" if the command is not
+      found (even on Solaris).
+
+    • A facility for defining reference-based S4 classes (in the OOP
+      style of Java, C++, etc.) has been added experimentally to
+      package methods; see ?ReferenceClasses.
+
+    • The predict method for "loess" fits gains an na.action argument
+      which defaults to na.pass rather than the previous default of
+      na.omit.
+
+      Predictions from "loess" fits are now named from the row names of
+      newdata.
+
+    • Parsing errors detected during Sweave() processing will now be
+      reported referencing their original location in the source file.
+
+    • New adjustcolor() utility, e.g., for simple translucent color
+      schemes.
+
+    • qr() now has a trivial lm method with a simple (fast) validity
+      check.
+
+    • An experimental new programming model has been added to package
+      methods for reference (OOP-style) classes and methods.  See
+      ?ReferenceClasses.
+
+    • bzip2 has been updated to version 1.0.6 (bug-fix release).
+      --with-system-bzlib now requires at least version 1.0.6.
+
+    • R now provides jss.cls and jss.bst (the class and bib style file
+      for the Journal of Statistical Software) as well as RJournal.bib
+      and Rnews.bib, and R CMD ensures that the .bst and .bib files are
+      found by BibTeX.
+
+    • Functions using the TAR environment variable no longer quote the
+      value when making system calls.  This allows values such as tar
+      --force-local, but does require additional quotes in, e.g., TAR =
+      "'/path with spaces/mytar'".
+
+  DEPRECATED & DEFUNCT:
+
+    • Supplying the parser with a character string containing both
+      octal/hex and Unicode escapes is now an error.
+
+    • File extension .C for C++ code files in packages is now defunct.
+
+    • R CMD check no longer supports configuration files containing
+      Perl configuration variables: use the environment variables
+      documented in ‘R Internals’ instead.
+
+    • The save argument of require() now defaults to FALSE and save =
+      TRUE is now deprecated.  (This facility is very rarely actually
+      used, and was superseded by the Depends field of the DESCRIPTION
+      file long ago.)
+
+    • R CMD check --no-latex is deprecated in favour of --no-manual.
+
+    • R CMD Sd2Rd is formally deprecated and will be removed in R
+      2.13.0.
+
+  PACKAGE INSTALLATION:
+
+    • install.packages() has a new argument libs_only to optionally
+      pass --libs-only to R CMD INSTALL and works analogously for
+      Windows binary installs (to add support for 64- or 32-bit
+      Windows).
+
+    • When sub-architectures are in use, the installed architectures
+      are recorded in the Archs field of the DESCRIPTION file.  There
+      is a new default filter, "subarch", in available.packages() to
+      make use of this.
+
+      Code is compiled in a copy of the src directory when a package is
+      installed for more than one sub-architecture: this avoid problems
+      with cleaning the sources between building sub-architectures.
+
+    • R CMD INSTALL --libs-only no longer overrides the setting of
+      locking, so a previous version of the package will be restored
+      unless --no-lock is specified.
+
+  UTILITIES:
+
+    • R CMD Rprof|build|check are now based on R rather than Perl
+      scripts.  The only remaining Perl scripts are the deprecated R
+      CMD Sd2Rd and install-info.pl (used only if install-info is not
+      found) as well as some maintainer-mode-only scripts.
+
+      *NB:* because these have been completely rewritten, users should
+      not expect undocumented details of previous implementations to
+      have been duplicated.
+
+      R CMD no longer manipulates the environment variables PERL5LIB
+      and PERLLIB.
+
+    • R CMD check has a new argument --extra-arch to confine tests to
+      those needed to check an additional sub-architecture.
+
+      Its check for “Subdirectory 'inst' contains no files” is more
+      thorough: it looks for files, and warns if there are only empty
+      directories.
+
+      Environment variables such as R_LIBS and those used for
+      customization can be set for the duration of checking _via_ a
+      file ~/.R/check.Renviron (in the format used by .Renviron, and
+      with sub-architecture specific versions such as
+      ~/.R/check.Renviron.i386 taking precedence).
+
+      There are new options --multiarch to check the package under all
+      of the installed sub-architectures and --no-multiarch to confine
+      checking to the sub-architecture under which check is invoked.
+      If neither option is supplied, a test is done of installed
+      sub-architectures and all those which can be run on the current
+      OS are used.
+
+      Unless multiple sub-architectures are selected, the install done
+      by check for testing purposes is only of the current
+      sub-architecture (_via_ R CMD INSTALL --no-multiarch).
+
+      It will skip the check for non-ascii characters in code or data
+      if the environment variables _R_CHECK_ASCII_CODE_ or
+      _R_CHECK_ASCII_DATA_ are respectively set to FALSE.  (Suggestion
+      of Vince Carey.)
+
+    • R CMD build no longer creates an INDEX file (R CMD INSTALL does
+      so), and --force removes (rather than overwrites) an existing
+      INDEX file.
+
+      It supports a file ~/.R/build.Renviron analogously to check.
+
+      It now runs build-time \Sexpr expressions in help files.
+
+    • R CMD Rd2dvi makes use of tools::texi2dvi() to process the
+      package manual.  It is now implemented entirely in R (rather than
+      partially as a shell script).
+
+    • R CMD Rprof now uses utils::summaryRprof() rather than Perl.  It
+      has new arguments to select one of the tables and to limit the
+      number of entries printed.
+
+    • R CMD Sweave now runs R with --vanilla so the environment setting
+      of R_LIBS will always be used.
+
+  C-LEVEL FACILITIES:
+
+    • lang5() and lang6() (in addition to pre-existing lang[1-4]())
+      convenience functions for easier construction of eval() calls.
+      If you have your own definition, do wrap it inside #ifndef lang5
+      .... #endif to keep it working with old and new R.
+
+    • Header R.h now includes only the C headers it itself needs, hence
+      no longer includes errno.h.  (This helps avoid problems when it
+      is included from C++ source files.)
+
+    • Headers Rinternals.h and R_ext/Print.h include the C++ versions
+      of stdio.h and stdarg.h respectively if included from a C++
+      source file.
+
+  INSTALLATION:
+
+    • A C99 compiler is now required, and more C99 language features
+      will be used in the R sources.
+
+    • Tcl/Tk >= 8.4 is now required (increased from 8.3).
+
+    • System functions access, chdir and getcwd are now essential to
+      configure R.  (In practice they have been required for some
+      time.)
+
+    • make check compares the output of the examples from several of
+      the base packages to reference output rather than the previous
+      output (if any).  Expect some differences due to differences in
+      floating-point computations between platforms.
+
+    • File NEWS is no longer in the sources, but generated as part of
+      the installation.  The primary source for changes is now
+      doc/NEWS.Rd.
+
+    • The popen system call is now required to build R.  This ensures
+      the availability of system(intern = TRUE), pipe() connections and
+      printing from postscript().
+
+    • The pkg-config file libR.pc now also works when R is installed
+      using a sub-architecture.
+
+    • R has always required a BLAS that conforms to IE60559 arithmetic,
+      but after discovery of more real-world problems caused by a BLAS
+      that did not, this is tested more thoroughly in this version.
+
+  BUG FIXES:
+
+    • Calls to selectMethod() by default no longer cache inherited
+      methods.  This could previously corrupt methods used by as().
+
+    • The densities of non-central chi-squared are now more accurate in
+      some cases in the extreme tails, e.g. dchisq(2000, 2, 1000), as a
+      series expansion was truncated too early.  (PR#14105)
+
+    • pt() is more accurate in the left tail for ncp large, e.g.
+      pt(-1000, 3, 200).  (PR#14069)
+
+    • The default C function (R_binary) for binary ops now sets the S4
+      bit in the result if either argument is an S4 object.  (PR#13209)
+
+    • source(echo=TRUE) failed to echo comments that followed the last
+      statement in a file.
+
+    • S4 classes that contained one of "matrix", "array" or "ts" and
+      also another class now accept superclass objects in new().  Also
+      fixes failure to call validObject() for these classes.
+
+    • Conditional inheritance defined by argument test in
+      methods::setIs() will no longer be used in S4 method selection
+      (caching these methods could give incorrect results).  See
+      ?setIs.
+
+    • The signature of an implicit generic is now used by setGeneric()
+      when that does not use a definition nor explicitly set a
+      signature.
+
+    • A bug in callNextMethod() for some examples with "..." in the
+      arguments has been fixed.  See file
+      src/library/methods/tests/nextWithDots.R in the sources.
+
+    • match(x, table) (and hence %in%) now treat "POSIXlt" consistently
+      with, e.g., "POSIXct".
+
+    • Built-in code dealing with environments (get(), assign(),
+      parent.env(), is.environment() and others) now behave
+      consistently to recognize S4 subclasses; is.name() also
+      recognizes subclasses.
+
+    • The abs.tol control parameter to nlminb() now defaults to 0.0 to
+      avoid false declarations of convergence in objective functions
+      that may go negative.
+
+    • The standard Unix-alike termination dialog to ask whether to save
+      the workspace takes a EOF response as n to avoid problems with a
+      damaged terminal connection.  (PR#14332)
+
+    • Added warn.unused argument to hist.default() to allow suppression
+      of spurious warnings about graphical parameters used with
+      plot=FALSE.  (PR#14341)
+
+    • predict.lm(), summary.lm(), and indeed lm() itself had issues
+      with residual DF in zero-weighted cases (the latter two only in
+      connection with empty models). (Thanks to Bill Dunlap for
+      spotting the predict() case.)
+
+    • aperm() treated resize = NA as resize = TRUE.
+
+    • constrOptim() now has an improved convergence criterion, notably
+      for cases where the minimum was (very close to) zero; further,
+      other tweaks inspired from code proposals by Ravi Varadhan.
+
+    • Rendering of S3 and S4 methods in man pages has been corrected
+      and made consistent across output formats.
+
+    • Simple markup is now allowed in \title sections in .Rd files.
+
+    • The behaviour of as.logical() on factors (to use the levels) was
+      lost in R 2.6.0 and has been restored.
+
+    • prompt() did not backquote some default arguments in the \usage
+      section.  (Reported by Claudia Beleites.)
+
+    • writeBin() disallows attempts to write 2GB or more in a single
+      call. (PR#14362)
+
+    • new() and getClass() will now work if Class is a subclass of
+      "classRepresentation" and should also be faster in typical calls.
+
+    • The summary() method for data frames makes a better job of names
+      containing characters invalid in the current locale.
+
+    • [[ sub-assignment for factors could create an invalid factor
+      (reported by Bill Dunlap).
+
+    • Negate(f) would not evaluate argument f until first use of
+      returned function (reported by Olaf Mersmann).
+
+    • quietly=FALSE is now also an optional argument of library(), and
+      consequently, quietly is now propagated also for loading
+      dependent packages, e.g., in require(*, quietly=TRUE).
+
+    • If the loop variable in a for loop was deleted, it would be
+      recreated as a global variable.  (Reported by Radford Neal; the
+      fix includes his optimizations as well.)
+
+    • Task callbacks could report the wrong expression when the task
+      involved parsing new code. (PR#14368)
+
+    • getNamespaceVersion() failed; this was an accidental change in
+      2.11.0. (PR#14374)
+
+    • identical() returned FALSE for external pointer objects even when
+      the pointer addresses were the same.
+
+    • L$a@x[] <- val did not duplicate in a case it should have.
+
+    • tempfile() now always gives a random file name (even if the
+      directory is specified) when called directly after startup and
+      before the R RNG had been used.  (PR#14381)
+
+    • quantile(type=6) behaved inconsistently.  (PR#14383)
+
+    • backSpline(.) behaved incorrectly when the knot sequence was
+      decreasing.  (PR#14386)
+
+    • The reference BLAS included in R was assuming that 0*x and x*0
+      were always zero (whereas they could be NA or NaN in IEC 60559
+      arithmetic).  This was seen in results from tcrossprod, and for
+      example that log(0) %*% 0 gave 0.
+
+    • The calculation of whether text was completely outside the device
+      region (in which case, you draw nothing) was wrong for screen
+      devices (which have [0, 0] at top-left).  The symptom was (long)
+      text disappearing when resizing a screen window (to make it
+      smaller).  (PR#14391)
+
+    • model.frame(drop.unused.levels = TRUE) did not take into account
+      NA values of factors when deciding to drop levels. (PR#14393)
+
+    • library.dynam.unload required an absolute path for libpath.
+      (PR#14385)
+
+      Both library() and loadNamespace() now record absolute paths for
+      use by searchpaths() and getNamespaceInfo(ns, "path").
+
+    • The self-starting model NLSstClosestX failed if some deviation
+      was exactly zero.  (PR#14384)
+
+    • X11(type = "cairo") (and other devices such as png using
+      cairographics) and which use Pango font selection now work around
+      a bug in Pango when very small fonts (those with sizes between 0
+      and 1 in Pango's internal units) are requested.  (PR#14369)
+
+    • Added workaround for the font problem with X11(type = "cairo")
+      and similar on Mac OS X whereby italic and bold styles were
+      interchanged.  (PR#13463 amongst many other reports.)
+
+    • source(chdir = TRUE) failed to reset the working directory if it
+      could not be determined - that is now an error.
+
+    • Fix for crash of example(rasterImage) on x11(type="Xlib").
+
+    • Force Quartz to bring the on-screen display up-to-date
+      immediately before the snapshot is taken by grid.cap() in the
+      Cocoa implementation. (PR#14260)
+
+    • model.frame had an unstated 500 byte limit on variable names.
+      (Example reported by Terry Therneau.)
+
+    • The 256-byte limit on names is now documented.
+
+    • Subassignment by [, [[ or $ on an expression object with value
+      NULL coerced the object to a list.
+
+CHANGES IN R VERSION 2.11.1 patched:
+
+  NEW FEATURES:
+
+    • install.packages() has a new optional argument INSTALL_opts which
+      can be used to pass options to R CMD INSTALL for source-package
+      installs.
+
+    • R CMD check now runs the package-specific tests with LANGUAGE=en
+      to facilitate comparison to .Rout.save files.
+
+    • sessionInfo() gives more detailed platform information, including
+      32/64-bit and the sub-architecture if one is used.
+
+  DEPRECATED & DEFUNCT:
+
+    • The use of Perl configuration variables for R CMD check (as
+      previously documented in ‘Writing R Extensions’) is deprecated
+      and will be removed in R 2.12.0.  Use the environment variables
+      documented in ‘R Internals’ instead.
+
+  BUG FIXES:
+
+    • R CMD Rd2dvi failed if run from a path containing space(s).  This
+      also affected R CMD check, which calls Rd2dvi.
+
+    • stripchart() could fail with an empty factor level.  (PR#14317)
+
+    • Text help rendering of \tabular{} has been improved: under some
+      circumstances leading blank columns were not rendered.
+
+    • strsplit(x, fixed=TRUE) marked UTF-8 strings with the local
+      encoding when no splits were found.
+
+    • weighted.mean(NA, na.rm=TRUE) and similar now returns NaN again,
+      as it did prior to R 2.10.0.
+
+    • R CMD had a typo in its detection of whether the environment
+      variable TEXINPUTS was set (reported by Martin Morgan).
+
+    • The command-line parser could mistake --file=size... for one of
+      the options for setting limits for Ncells or Vcells.
+
+    • The internal strptime() could corrupt its copy of the timezone
+      which would then lead to spurious warnings. (PR#14338)
+
+    • dir.create(recursive = TRUE) could fail if one of the components
+      existed but was a directory on a read-only file system.  (Seen on
+      Solaris, where the error code returned is not even listed as
+      possible on the man page.)
+
+    • The postscript() and pdf() devices will now allow lwd values less
+      than 1 (they used to force such values to be 1).
+
+    • Fixed font face for CID fonts in pdf() graphics output.
+      (PR#14326)
+
+    • GERaster() now checks for width or height of zero and does
+      nothing in those cases; previously the behaviour was undefined,
+      probably device-specific, and possibly dangerous.
+
+    • wilcox.test(x, y, conf.int = TRUE) failed with an unhelpful
+      message if x and y were constant vectors, and similarly in the
+      one-sample case.  (PR#14329)
+
+    • Improperly calling Recall() from outside a function could cause a
+      segfault.  (Reported by Robert McGehee.)
+
+    • \Sexpr[result=rd] in an Rd file added a spurious newline, which
+      was displayed as extra whitespace when rendered.
+
+    • require(save = TRUE) recorded the names of packages it failed to
+      load.
+
+    • packageStatus() could return a data frame with duplicate row
+      names which could then not be printed.
+
+    • txtProgressBar(style = 2) did not work correctly.
+
+      txtProgressBar(style = 3) did not display until a non-minimum
+      value was set.
+
+    • contour() did not display dashed line types properly when contour
+      lines were labelled. (Reported by David B. Thompson.)
+
+    • tools::undoc() again detects undocumented data objects.  Of
+      course, this also affects R CMD check.
+
+    • ksmooth(x,NULL) no longer segfaults.
+
+    • approxfun(), approx(), splinefun() and spline() could be confused
+      by x values that were different but so close as to print
+      identically.  (PR#14377)
+
+CHANGES IN R VERSION 2.11.1:
+
+  NEW FEATURES:
+
+    • R CMD INSTALL checks if dependent packages are available early on
+      in the installation of source packages, thereby giving clearer
+      error messages.
+
+    • R CMD INSTALL --build now names the file in the format used for
+      Mac OS X binary files on that platform.
+
+    • BIC() in package stats4 now also works with multiple fitted
+      models, analogously to AIC().
+
+  DEPRECATED & DEFUNCT:
+
+    • Use of file extension .C for C++ code in packages is now
+      deprecated: it has caused problems for some makes on
+      case-insensitive file systems (although it currently works with
+      the recommended toolkits).
+
+  INSTALLATION:
+
+    • Command gnutar is preferred to tar when configure sets TAR.  This
+      is needed on Mac OS 10.6, where the default tar, bsdtar 2.6.2,
+      has been reported to produce archives with illegal extensions to
+      tar (according to the POSIX standard).
+
+  BUG FIXES:
+
+    • The C function mkCharLenCE now no longer reads past len bytes
+      (unlikely to be a problem except in user code).  (PR#14246)
+
+    • On systems without any default LD_LIBRARY_PATH (not even
+      /usr/local/lib), [DY]LIB_LIBRARY_PATH is now set without a
+      trailing colon.  (PR#13637)
+
+    • More efficient implementation of utf8ToInt() on long multi-byte
+      strings with many multi-byte characters.  (PR#14262)
+
+    • aggregate.ts() gave platform-dependent results due to rounding
+      error for ndeltat != 1.
+
+    • package.skeleton() sometimes failed to fix filenames for .R or
+      .Rd files to start with an alphanumeric.  (PR#14253)
+
+      It also failed when only an S4 class without any methods was
+      defined.  (PR#14280)
+
+    • splinefun(method = "monoH.FC") was not quite monotone in rare
+      cases.  (PR#14215)
+
+    • Rhttpd no longer crashes due to SIGPIPE when the client closes
+      the connection prematurely.  (PR#14266)
+
+    • format.POSIXlt() could cause a stack overflow and crash when used
+      on very long vectors.  (PR#14267)
+
+    • Rd2latex() incorrectly escaped special characters in \usage
+      sections.
+
+    • mcnemar.test() could alter the levels (dropping unused levels) if
+      passed x and y as factors (reported by Greg Snow).
+
+    • Rd2pdf sometimes needed a further pdflatex pass to get
+      hyperlinked pages correct.
+
+    • interaction() produced malformed results when levels were
+      duplicated, causing segfaults in split().
+
+    • cut(d, breaks = <n>) now also works for "Date" or "POSIXt"
+      argument d.  (PR#14288)
+
+    • memDecompress() could decompress incompletely rare xz-compressed
+      input due to incorrect documentation of xz utils.  (Report and
+      patch from Olaf Mersmann.)
+
+    • The S4 initialize() methods for "matrix", "array", and "ts" have
+      been fixed to call validObject().  (PR#14284)
+
+    • R CMD INSTALL now behaves the same way with or without
+      --no-multiarch on platforms with only one installed architecture.
+      (It used to clean the src directory without --no-multiarch.)
+
+    • [<-.data.frame was not quite careful enough in assigning (and
+      potentially deleting) columns right-to-left.  (PR#14263)
+
+    • rbeta(n, a, b) no longer occasionally returns NaN for a >> 1 > b.
+      (PR#14291)
+
+    • pnorm(x, log.p = TRUE) could return NaN not -Inf for x near
+      (minus for lower.tail=TRUE) the largest representable number.
+
+    • Compressed data files *.(txt|tab|csv).(gz|bz2|xz) were not
+      recognized for the list of data topics and hence for packages
+      using LazyData.  (PR#14273)
+
+    • textConnection() did an unnecessary translation on strings in a
+      foreign encoding (e.g. UTF-8 strings on Windows) and so was
+      slower than it could have been on very long input strings.
+      (PR#14286)
+
+    • tools::Rd2txt() did not render poorly written Rd files
+      consistently with other renderers.
+
+      It computed widths of strings that would be print()ed with
+      escapes incorrectly, for example in the computation of column
+      width for \tabular.
+
+    • na.action() did not extract the na.action component as
+      documented.
+
+    • do.call()ing NextMethod in erroneous ways no longer segfaults.
+      (PR#13487)
+
+CHANGES IN R VERSION 2.11.0:
+
+  SIGNIFICANT USER-VISIBLE CHANGES:
+
+    • Packages must have been installed under R >= 2.10.0, as the
+      current help system is the only one now supported.
+
+    • A port to 64-bit Windows is now available as well as binary
+      package repositories: see the ‘R Administration and Installation
+      Manual’.
+
+    • Argument matching for primitive functions is now done in the same
+      way as for interpreted functions except for the deliberate
+      exceptions
+
+      
+      
+               call switch .C .Fortran .Call .External
+             
+
+      all of which use positional matching for their first argument,
+      and also some internal-use-only primitives.
+
+    • The default device for command-line R at the console on Mac OS X
+      is now quartz() and not X11().
+
+  NEW FEATURES:
+
+    • The open modes for connections are now interpreted more
+      consistently.  open = "r" is now equivalent to open = "rt" for
+      all connections.  The default open = "" now means "rt" for all
+      connections except the compressed-file connections gzfile(),
+      bzfile() and xzfile() for which it means "rb".
+
+    • R CMD INSTALL now uses the internal untar() function in package
+      utils: this ensures that all platforms can install bzip2- and
+      xz-compressed tarballs.  In case this causes problems (as it has
+      on some Windows file systems when run from Cygwin tools) it can
+      be overridden by the environment variable R_INSTALL_TAR: setting
+      this to a modern external tar program will speed up unpacking of
+      large (tens of Mb or more) tarballs.
+
+    • help(try.all.packages = TRUE) is much faster (although the time
+      taken by the OS to find all the packages the first time it is
+      used can dominate the time).
+
+    • R CMD check has a new option --timings to record per-example
+      timings in file <pkg>.Rcheck/<pkg>-Ex.timings.
+
+    • The TRE library has been updated to version 0.8.0 (minor
+      bugfixes).
+
+    • grep[l], [g]sub and [g]regexpr now work in bytes in an 8-bit
+      locales if there is no marked UTF-8 input string: this will be
+      somewhat faster, and for [g]sub() give the result in the native
+      encoding rather than in UTF-8 (which returns to the behaviour
+      prior to R 2.10.0).
+
+    • A new argument skipCalls has been added to browser() so that it
+      can report the original context when called by other debugging
+      functions.
+
+    • More validity checking of UTF-8 and MBCS strings is done by
+      agrep() and the regular-expression matching functions.
+
+    • The undocumented restriction on gregexpr() to length(text) > 0
+      has been removed.
+
+    • Package tcltk now sends strings to Tcl in UTF-8: this means that
+      strings with a marked UTF-8 encoding are supported in non-UTF-8
+      locales.
+
+    • The graphics engine now supports rendering of raster (bitmap)
+      images, though not all graphics devices can provide (full)
+      support.  Packages providing graphics devices (e.g., Cairo,
+      RSvgDevice, cairoDevice) will need to be reinstalled.
+
+      There is also support in the graphics engine for capturing raster
+      images from graphics devices (again not supported on all graphics
+      devices).
+
+    • R CMD check now also checks if the package and namespace can be
+      unloaded: this provides a check of the .Last.lib() and
+      .onUnload() hook functions (unless --install=fake).
+
+    • prop.table(x) now accepts a one-dimensional table for x.
+
+    • A new function vapply() has been added, based on a suggestion
+      from Bill Dunlap.  It requires that a template for the function
+      value be specified, and uses it to determine the output type and
+      to check for consistency in the function values.
+
+    • The main HTML help page now links to a reformatted copy of this
+      NEWS file.  (Suggested by Henrik Bengtsson.)  Package index files
+      link to the package DESCRIPTION and NEWS files and a list of
+      demos when using dynamic help.
+
+    • The [ method for class "AsIs" allows the next method to change
+      the underlying class.  (Wish of Jens Oehlschlägel.)
+
+    • write.csv[2] no longer allow argument append to be changed: as
+      ever, direct calls to write.table() give more flexibility as well
+      as more room for error.
+
+    • The index page for HTML help for a package now collapses multiple
+      signatures for S4 methods into a single entry.
+
+    • The use of .required by require() and detach() has been replaced
+      by .Depends which is set from the Depends field of a package
+      (even in packages with namespaces).  By default detach() prevents
+      such dependencies from being detached: this can be overridden by
+      the argument force.
+
+    • bquote() has been extended to work on function definitions.
+      (Wish of PR#14031).
+
+    • detach() when applied to an object other than a package returns
+      the environment that has been detached, to parallel attach().
+
+    • readline() in non-interactive use returns "" and does not attempt
+      to read from the ‘terminal’.
+
+    • New function file_ext() in package tools.
+
+    • xtfrm() is now primitive and internally generic, as this allows
+      S4 methods to be set on it without name-space scoping issues.
+
+      There are now "AsIs" and "difftime" methods, and the default
+      method uses unclass(x) if is.numeric(x) is true (which will be
+      faster but relies on is.numeric() having been set correctly for
+      the class).
+
+    • is.numeric(x) is now false for a "difftime" object
+      (multiplication and division make no sense for such objects).
+
+    • The default method of weighted.mean(x, w) coerces w to be numeric
+      (aka double); previously only integer weights were coerced.  Zero
+      weights are handled specially so an infinite value with zero
+      weight does not force an NaN result.
+
+      There is now a "difftime" method.
+
+    • bug.report() now has arguments package and lib.loc to generate
+      bug reports about packages.  When this is used, it looks for a
+      BugReports field in the package DESCRIPTION file, which will be
+      assumed to be a URL at which to submit the report, and otherwise
+      generates an email to the package maintainer.  (Suggested by
+      Barry Rowlingson.)
+
+    • quantile() now has a method for the date-time class "POSIXt", and
+      types 1 and 3 (which never interpolate) work for Dates and
+      ordered factors.
+
+    • length(<POSIXlt>) now returns the length of the corresponding
+      abstract timedate-vector rather than always 9 (the length of the
+      underlying list structure).  (Wish of PR#14073 and PR#10507.)
+
+    • The readline completion backend no longer sorts possible
+      completions alphabetically (e.g., function argument names) if R
+      was built with readline >= 6.
+
+    • select.list() gains a graphics argument to allow Windows/Mac
+      users to choose the text interface.  This changes the behaviour
+      of new.packages(ask=TRUE) to be like update.packages(ask=TRUE) on
+      those platforms in using a text menu: use ask="graphics" for a
+      graphical menu.
+
+    • New function chooseBioCmirror() to set the "BioC_mirror" option.
+
+    • The R grammar now prevents using the argument name in signatures
+      of S4 methods for $ and $<-, since they will always be called
+      with a character string value for name.  The implicit S4 generic
+      functions have been changed to reflect this: packages which
+      included name in the signature of their methods need to be
+      updated and re-installed.
+
+    • The handling of the method argument of glm() has been refined
+      following suggestions by Ioannis Kosmidis and Heather Turner.
+
+    • str() gains a new argument list.len with default 99, limiting the
+      number of list() items (per level), thanks to suggestions from
+      David Winsenius.
+
+    • Having formal arguments of an S4 method in a different order from
+      the generic is now an error (the warning having been ignored by
+      some package maintainers for a long time).
+
+    • New functions enc2native() and enc2utf8() convert character
+      vectors with possibly marked encodings to the current locale and
+      UTF-8 respectively.
+
+    • Unrecognized escapes and embedded nuls in character strings are
+      now an error, not just a warning.  Thus option "warnEscapes" is
+      no longer needed.  rawToChar() now removes trailing nuls
+      silently, but other embedded nuls become errors.
+
+    • Informational messages about masked objects displayed when a
+      package is attached are now more compact, using strwrap() instead
+      of one object per line.
+
+    • print.rle() gains argument prefix.
+
+    • download.file() gains a "curl" method, mainly for use on
+      platforms which have curl but not wget, but also for some
+      hard-to-access URLs.
+
+    • In Rd, \eqn and \deqn will render in HTML (and convert to text)
+      upper- and lower-case Greek letters (entered as \alpha ...),
+      \ldots, ..., \ge and \le.
+
+    • utf8ToInt() and intToUtf8() now map NA inputs to NA outputs.
+
+    • file() has a new argument raw which may help if it is used with
+      something other than a regular file, e.g. a character device.
+
+    • New function strtoi(), a wrapper for the C function strtol.
+
+    • as.octmode() and as.hexmode() now allow inputs of length other
+      than one.
+
+      The format() and print() methods for "octmode" now preserve names
+      and dimensions (as those for "hexmode" did).
+
+      The format() methods for classes "octmode" and "hexmode" gain a
+      width argument.
+
+    • seq.int() returns an integer result in some further cases where
+      seq() does, e.g. seq.int(1L, 9L, by = 2L).
+
+    • Added \subsection{}{} macro to Rd syntax, for subsections within
+      sections.
+
+    • n-dimensional arrays with dimension names can now be indexed by
+      an n-column character matrix.  The indices are matched against
+      the dimension names.  NA indices are propagated to the result.
+      Unmatched values and "" are not allowed and result in an error.
+
+    • interaction(drop=TRUE) uses less memory (related to PR#14121).
+
+    • summary() methods have been added to the "srcref" and "srcfile"
+      classes, and various encoding issues have been cleaned up.
+
+    • If option "checkPackageLicense" is set to TRUE (not currently the
+      default), users will be asked to agree to non-known-to-be-FOSS
+      package licences at first use.
+
+    • Checking setAs(a, b) methods only gives a message instead of a
+      warning, when one of a or b is unknown.
+
+    • New function norm() to compute a matrix norm.  norm() and also
+      backsolve() and sample() have implicit S4 generics.
+
+    • Files Renviron.site and Rprofile.site can have
+      architecture-specific versions on systems with sub-architectures.
+
+    • R CMD check now (by default) also checks Rd files for
+      auto-generated content in need of editing, and missing argument
+      descriptions.
+
+    • aggregate() gains a formula method thanks to a contribution by
+      Arni Magnusson.  The data frame method now allows summary
+      functions to return arbitrarily many values.
+
+    • path.expand() now propagates NA values rather than converting
+      them to "NA".
+
+    • file.show() now disallows NA values for file names, headers, and
+      pager.
+
+    • The ‘fuzz’ used by seq() and seq.int() has been reduced from 1e-7
+      to 1e-10, which should be ample for the double-precision
+      calculations used in R.  It ensures that the fuzz never comes
+      into play with sequences of integers (wish of PR#14169).
+
+    • The default value of RSiteSearch(restrict=) has been changed to
+      include vignettes but to exclude R-help.  The R-help archives
+      available have been split, with a new option of "Rhelp10" for
+      those from 2010.
+
+    • New function rasterImage() in the graphics package for drawing
+      raster images.
+
+    • stats:::extractAIC.coxph() now omits aliased terms when computing
+      the degrees of freedom (suggestion of Terry Therneau).
+
+    • cor() and cov() now test for misuse with non-numeric arguments,
+      such as the non-bug report PR#14207.
+
+    • pchisq(ncp =, log.p = TRUE) is more accurate for probabilities
+      near one.  E.g. pchisq(80, 4, ncp=1, log.p=TRUE).  (Maybe what
+      was meant in PR#14216.)
+
+    • maintainer() has been added, to give convenient access to the
+      name of the maintainer of a package (contributed by David Scott).
+
+    • sample() and sample.int() allow zero items to be sampled from a
+      zero-length input.  sample.int() gains a default value size=n to
+      be more similar to sample().
+
+    • switch() returned NULL on error (not previously documented on the
+      help page): it now does so invisibly, analogously to
+      if-without-else.
+
+      It is now primitive: this means that argument EXPR is always
+      matched to the first argument and there is no danger of partial
+      matching to later named arguments.
+
+    • Primitive functions UseMethod(), attr(), attr<-(), on.exit(),
+      retracemem() and substitute() now use standard argument matching
+      (rather than positional matching).  This means that all
+      multi-argument primitives which are not internal now use standard
+      argument matching except where positional matching is desirable
+      (as for switch(), call(), .C() ...).
+
+    • All the one-argument primitives now check that any name supplied
+      for their first argument is a partial match to the argument name
+      as documented on the help page: this also applies to replacement
+      functions of two arguments.
+
+    • base::which() uses a new .Internal function when arr.ind is FALSE
+      resulting in a 10x speedup.  Thanks to Patrick Aboyoun for
+      implementation suggestions.
+
+    • Help conversion to text now uses the first part of \enc{}{}
+      markup if it is representable in the current output encoding.  On
+      the other hand, conversion to LaTeX with the default
+      outputEncoding = "ASCII" uses the second part.
+
+    • A new class "listOfMethods" has been introduced to represent the
+      methods in a methods table, to replace the deprecated class
+      "MethodsList".
+
+    • any() and all() return early if possible.  This may speed up
+      operations on long vectors.
+
+    • strptime() now accepts "%z" (for the offset from UTC in the
+      RFC822 format of +/-hhmm).
+
+    • The PCRE library has been updated to version 8.02, a bug-fix
+      release which also updates tables to Unicode 5.02.
+
+    • Functions which may use a graphical select.list() (including
+      menu() and install.packages()) now check on a Unix-alike that Tk
+      can be started (and not just capabilities("tcltk") &&
+      capabilities("X11")).
+
+    • The parser no longer marks strings containing octal or hex
+      escapes as being in UTF-8 when entered in a UTF-8 locale.
+
+    • On platforms with cairo but not Pango (notably Mac OS X) the
+      initial default X11() type is set to "Xlib": this avoids several
+      problems with font selection when done by cairo rather than Pango
+      (at least on Mac OS X).
+
+    • New function arrayInd() such that which(x, arr.ind = TRUE) for an
+      array 'x' is now equivalent to arrayInd(which(x), dim(x),
+      dimnames(x)).
+
+  DEPRECATED & DEFUNCT:
+
+    • Bundles of packages are defunct.
+
+    • stats::clearNames() is defunct: use unname().
+
+    • Basic regular expressions are defunct, and strsplit(), grep(),
+      grepl(), sub(), gsub(), regexpr() and gregexpr() no longer have
+      an extended argument.
+
+    • methods::trySilent() is defunct.
+
+    • index.search() (which was deprecated in 2.10.0) is no longer
+      exported and has a different argument list.
+
+    • Use of multiple arguments to return() is now defunct.
+
+    • The use of UseMethod() with more than two arguments is now
+      defunct.
+
+    • In the methods package, the "MethodsList" metadata objects which
+      had been superseded by hash tables (environments) since R 2.8.0
+      are being phased out.  Objects of this class are no longer
+      assigned or used as metadata by the package.
+
+      getMethods() is now deprecated, with its internal use replaced by
+      findMethods() and other changes.  Creating objects from the
+      "MethodsList" class is also deprecated.
+
+    • Parsing strings containing both octal/hex and Unicode escapes now
+      gives a warning and will become an error in R 2.12.0.
+
+  INSTALLATION:
+
+    • UTF-8 is now used for the reference manual and package manuals.
+      This requires LaTeX ‘2005/12/01’ or later.
+
+    • configure looks for a POSIX compliant tr, Solaris's /usr/ucb/tr
+      having been found to cause Rdiff to malfunction.
+
+    • configure is now generated with autoconf 2.65, which works better
+      on recent systems and on Mac OS X.
+
+  PACKAGE INSTALLATION:
+
+    • Characters in R source which are not translatable to the current
+      locale are now handled more tolerantly: these will be converted
+      to hex codes with a warning.  Such characters are only really
+      portable if they appear in comments.
+
+    • R CMD INSTALL now tests that the installed package can be loaded
+      (and backs out the installation if it cannot): this can be
+      suppressed by --no-test-load.  This avoids installing/updating a
+      package that cannot be used: common causes of failures to load
+      are missing/incompatible external software and missing/broken
+      dependent packages.
+
+    • Package installation on Windows for a package with a src
+      directory now checks if a DLL is created unless there is a
+      src/Makefile.win file: this helps catch broken installations
+      where the toolchain has not reported problems in building the
+      DLL.  (Note: this can be any DLL, not just one named
+      <pkg-name>.dll.)
+
+  BUG FIXES:
+
+    • Using with(), eval() etc with a list with some unnamed elements
+      now works.  (PR#14035)
+
+    • The "quick" dispatch of S4 methods for primitive functions was
+      not happening, forcing a search each time.  (Dispatch for
+      closures was not affected.)  A side effect is that default values
+      for arguments in a method that do not have defaults in the
+      generic will now be ignored.
+
+    • Trying to dispatch S4 methods for primitives during the search
+      for inherited methods slows that search down and potentially
+      could cause an infinite recursion.  An internal switch was added
+      to turn off all such methods from findInheritedMethods().
+
+    • R framework installation (on Mac OS X) would not work properly if
+      a rogue Resources directory was present at the top level.  Such a
+      non-symlink will now be renamed to Resources.old (and anything
+      previously named Resources.old removed) as part of the framework
+      installation process.
+
+    • The checks for conforming S4 method arguments could fail when the
+      signature of the generic function omitted some of the formal
+      arguments (in addition to ...).  Arguments omitted from the
+      method definition but conforming (per the documentation) should
+      now be ignored (treated as "ANY") in dispatching.
+
+    • The computations for S4 method evaluation when ...  was in the
+      signature could fail, treating ... as an ordinary symbol.  This
+      has been fixed, for the known cases.
+
+    • Various ar() fitting methods have more protection for singular
+      fits.
+
+    • callNextMethod now works again with the drop= argument in [
+
+    • parse() and parse_Rd() miscounted columns when multibyte UTF-8
+      characters were present.
+
+    • Formatting of help pages has had minor improvements: extra blank
+      lines have been removed from the text format, and empty package
+      labels removed from HTML.
+
+    • cor(A, B) where A is n x 1 and B a 1-dimensional array segfaulted
+      or gave an internal error.  (The case cor(B, A) was PR#7116.)
+
+    • cut.POSIXt() applied to a start value after the DST transition on
+      a DST-change day could give the wrong time for argument breaks in
+      units of days or longer.  (PR#14208)
+
+    • do_par() UNPROTECTed too early (PR#14214)
+
+    • Subassignment x[[....]] <- y didn't check for a zero-length right
+      hand side, and inserted a rubbish value.  (PR#14217)
+
+    • fisher.test() no longer gives a P-value *very* slightly > 1, in
+      some borderline cases.
+
+    • Internal function matchArgs() no longer modifies the general
+      purpose bits of the SEXPs that make up the formals list of R
+      functions.  This fixes an invalid error message that would occur
+      when a garbage collection triggered a second call to matchArgs
+      for the same function _via_ a finalizer.
+
+    • gsub() in 2.10.x could fail from stack overflow for extremely
+      long strings due to temporary data being allocated on the stack.
+      Also, gsub() with fixed=TRUE is in some circumstances
+      considerably faster.
+
+    • Several primitives, including attributes(), attr<-()
+      interactive(), nargs() and proc.time(), did not check that they
+      were called with the correct number of arguments.
+
+    • A potential race condition in list.files() when other processes
+      are operating on the directory has been fixed; the code now
+      dynamically allocates memory for file listings in a single pass
+      instead of making an initial count pass.
+
+    • mean(x, trim=, na.rm = FALSE) failed to return NA if x contained
+      missing values.  (Reported by Bill Dunlap.)
+
+    • Extreme tail behavior of, pbeta() {and hence pf()}, e.g.,
+      pbeta(x, 3, 2200, lower.tail=FALSE, log.p=TRUE) now returns
+      finite values instead of jumping to -Inf too early.  (PR#14230).
+
+    • parse(text=x) misbehaved for objects x that were not coerced
+      internally to character, notably symbols.  (Reported to R-devel
+      by Bill Dunlap.)
+
+    • The internal C function coerceSymbol now handles coercion to
+      character, and warns if coercion fails (rather than silently
+      returning NULL).  This allows a name to be given where a
+      character vector is required in functions which coerce
+      internally.
+
+    • The interpretation by strptime() of "%c" was non-standard (not
+      that it is ever advisable to use locale- and system-specific
+      input formats).
+
+    • capabilities("X11") now works the same way on Mac OS X as on
+      other platforms (and as documented: it was always true for R
+      built with --with-aqua, as the CRAN builds are).
+
+    • The X11() device with cairo but not Pango (notably Mac OS X) now
+      checks validity of text strings in UTF-8 locales (since Pango
+      does but cairo it seems does not).
+
+    • read.fwf() misread multi-line records when n was specified.
+      (PR#14241)
+
+    • all.equal(tolerance = e) passes the numeric tolerance also to the
+      comparison of the attributes.
+
+    • pgamma(0, 0), a boundary case, now returns 0, its limit from the
+      left, rather than the limit from the right.
+
+    • Issuing POST requests to the internal web server could stall the
+      request under certain circumstances.
+
+    • gzcon( <textConnection> ), an error, no longer damages the
+      connection (in a way to have it segfault).  (PR#14237)
+
+    • All the results from hist() now use the nominal breaks not those
+      adjusted by the numeric ‘fuzz’: in recent versions the nominal
+      breaks were reported but the 'density' referred to the intervals
+      used in the calculation - which mattered very slightly for one of
+      the extreme bins.  (Based on a report by Martin Becker.)
+
+    • If xy[z].coords (used internally by many graphics functions) are
+      given a list as x, they now check that the list has suitable
+      names and give a more informative error message.  (PR#13936)
+
+CHANGES IN R VERSION 2.10.1 patched:
+
+  NEW FEATURES:
+
+    • The handling of line textures in the postscript() and pdf()
+      devices was set up for round end caps (the only type which
+      existed at the time): it has now been adjusted for butt endcaps.
+
+    • lchoose(a, k) is now defined as log(abs(choose(a,k))),
+      analogously to lfactorial().
+
+    • Although \eqn{} in Rd files is defined as a ‘verbatim’ macro,
+      many packages expected ... and \ldots to be interpreted there (as
+      was the case in R < 2.10.0), so this is now done (using an
+      ellipsis in HTML rendering).
+
+    • Escaping of braces in quoted strings in R-code sections of Rd
+      files is allowed again.  This had been changed for the new Rd
+      format in R 2.10.0 but was only documented on the developer site
+      and was handled inconsistently by the converters: text and
+      example conversion removed the escapes but HTML conversion did
+      not.
+
+    • The PCRE library has been updated to version 8.01, a bug-fix
+      release.
+
+    • tools::readNEWS() now accepts a digit as the first character of a
+      news section.
+
+  BUG FIXES:
+
+    • Using read.table(header=TRUE) on a header with an embedded new
+      line would copy part of the header into the data.  (PR#14103)
+
+    • qpois(p = 1, lambda = 0) now gives 0 as for all other p.
+      (PR#14135)
+
+    • Functions related to string comparison (e.g. unique(), match())
+      could cause crashes when used with strings not in the native
+      encoding, e.g. UTF-8 strings on Windows.  (PR#14114 and PR#14125)
+
+    • x[ , drop=TRUE] dropped an NA level even if it was in use.
+
+    • The dynamic HTML help system reported the wrong MIME type for the
+      style sheet.
+
+    • tools::codoc() (used by R CMD check) was missing cases where the
+      function had no arguments but was documented to have some.
+
+    • Help links containing special characters (e.g. "?") were not
+      generated correctly when rendered in HTML.  (PR#14155)
+
+    • lchoose(a, k) no longer wrongly gives NaN for negative a.
+
+    • ks.test() could give a p-value that was off by one observation
+      due to rounding error.  (PR#14145)
+
+    • readBin()/readChar() when reading millions of character strings
+      in a single call used excessive amounts of memory (which also
+      slowed them down).
+
+    • R CMD SHLIB could fail if used with paths that were not
+      alphanumeric, e.g. contained +.  (PR#14168)
+
+    • sprintf() was not re-entrant, which potentially caused problems
+      if an as.character() method called it.
+
+    • The quartz() device did not restore the clipping region when
+      filling the background for a new page.  This could be observed in
+      multi-page bitmap output as stale outer regions of the plot.
+
+    • p.adjust(method, n) now works correctly for the rare case n >
+      length(p), also when method differs from "bonferroni" or "none",
+      thanks to a patch from Gordon Smyth.
+
+    • tools::showNonASCII() failed to detect non-ASCII characters if
+      iconv() (incorrectly) converted them to different ASCII
+      characters.  (Seen on Windows only.)
+
+    • tcrossprod() wrongly failed in some cases when one of the
+      arguments was a vector and the other a matrix.
+
+    • [cr]bind(..., deparse.level=2) was not always giving names when
+      documented to do so.  (Discovered whilst investigating PR#14189.)
+
+    • match(incomparables=<non-NULL>) could in rare cases
+      infinite-loop.
+
+    • poisson.test() needed to pass argument conf.level to
+      binom.test().  (PR#14195)
+
+    • The "nls" method for df.residual() gave incorrect results for
+      models fitted with na.action = na.exclude.  (PR#14194)
+
+    • A change to options(scipen=) was only implemented when printing
+      next occurred, even though it should have affected intervening
+      calls to axis(), contour() and filledcontour().
+
+    • prettyNum(drop0trailing=TRUE) did not handle signs of imaginary
+      parts of complex numbers correctly (and this was used by str():
+      PR#14201).
+
+    • system.time() had the sys.child component wrong (copied
+      user.child instead) on systems with HAVE_GETRUSAGE.  (PR#14210)
+
+    • Changing both line texture and line cap (end) resulted in the
+      latter to be omitted form the PDF code.  In addition, line cap
+      (end) and join are now set explicitly in PDF output to ensure
+      correct defaults.
+
+    • The suppression of auto-rotation in bitmap() and dev2bitmap()
+      with the "pdfwrite" device was not working correctly.
+
+    • plot(ecdf(), log="x") no longer gives an incorrect warning.
+
+    • read.fwf() works again when argument file is a connection.
+
+    • Startup files will now be found if their paths exceed 255 bytes.
+      (PR#14228)
+
+    • contrasts<- (in the stats package) no longer has an undeclared
+      dependence on methods (introduced in 2.10.0).
+
+CHANGES IN R VERSION 2.10.1:
+
+  NEW FEATURES:
+
+    • The PCRE library has been updated to version 8.00.
+
+    • R CMD INSTALL has new options --no-R, --no-libs, --no-data,
+      --no-help, --no-demo, --no-exec, and --no-inst to suppress
+      installation of the specified part of the package.  These are
+      intended for special purposes (e.g. building a database of help
+      pages without fully installing all packages).
+
+    • The documented line-length limit of 4095 bytes when reading from
+      the console now also applies also to parse(file="") (which
+      previously had a limit of around 1024 bytes).
+
+    • A Bioconductor mirror can be set for use by setRepositories()
+      _via_ the option "BioC_mirror", e.g. the European mirror can be
+      selected by
+      options(BioC_mirror="http://bioconductor.statistik.tu-dortmund.de").
+
+    • Double-clicking in a tk_select.list() list box now selects the
+      item and closes the list box (as happens on the Windows
+      select.list() widget).
+
+  INSTALLATION:
+
+    • configure will be able to find a usable libtiff in some rare
+      circumstances where it did not previously (where libtiff needed
+      to be linked explicitly against -ljpeg).
+
+    • Making refman.pdf works around a problem with the indexing with
+      hyperref 6.79d and later.
+
+  DEPRECATED & DEFUNCT:
+
+    • The extended argument is deprecated in strsplit(), grep(),
+      grepl(), sub(), gsub(), regexpr() and gregexpr() (not just the
+      value extended = FALSE) and will be removed in R 2.11.0.
+
+  BUG FIXES:
+
+    • trigamma(x) and other psigamma(x, n) calls are now accurate for
+      very large abs(x).  (PR#14020)
+
+    • [g]sub(perl=FALSE, fixed=FALSE) could use excessive stack space
+      when used with a very long vector containing some non-ASCII
+      strings.
+
+    • The default method of weighted.mean(na.rm = TRUE) did not omit
+      weights for NA observations in 2.10.0.  (PR#14032)
+
+    • [g]regexpr(pattern, fixed = TRUE) returned match positions in
+      bytes (not characters) in an MBCS locale if pattern was a single
+      byte.
+
+      [g]sub(fixed = TRUE) with a single-byte pattern could conceivably
+      have matched part of a multibyte character in a non-UTF-8 MBCS.
+
+    • findLineNum() and setBreakpoint() would sometimes fail if the
+      specified file was not in the current directory.
+
+    • Package tcltk's demo(tkdensity) was broken in 2.9.0 when demo()
+      was changed to set par(ask = TRUE).
+
+    • gsub() with backrefs could fail on extremely long strings
+      (hundreds of thousands of characters) due to integer overflow in
+      a length calculation.
+
+    • abline(untf=TRUE) now uses a better x-grid in log-scale, e.g.,
+      for plot(c(1,300), c(1,300), log="xy"); abline(4,1, untf=TRUE).
+
+    • detach()/unloadNamespace() arrange to flush the package's
+      lazyload cache of R objects once the package/namespace is no
+      longer needed.
+
+    • There have been small fixes to the rendering of help, e.g.
+      \command is now rendered verbatim (so e.g. -- is not interpreted,
+      PR#14045).
+
+      Also, there are many small changes to help files where the new
+      converters were not rendering them in the same way as before.
+
+    • available.packages() would fail when run on a repository with no
+      packages meeting the filtering conditions.  (PR#14042)
+
+    • rep(x, times, each = 2) gave invalid results when the times
+      argument was a vector longer than x.  Reported by Bill Dunlap.
+
+    • An error when unloadNamespace() attempted to run the .onUnload()
+      function gave an error in the reporting function and so was not
+      reported properly.
+
+    • Text help rendering did not handle very long input lines
+      properly.
+
+    • promptMethods() generated signature documentation improperly.
+
+    • pgamma(x, a, lower.tail=FALSE) and qgamma(...) are now
+      considerably more accurate in some regions for very small a.
+      qgamma() now correctly returns 0 instead of NaN in similar
+      extreme cases, and qgamma() no longer warns in the case of small
+      a, see (PR#12324).
+
+    • unname() now also removes names from a zero length vector.
+
+    • Printing results from ls.str() no longer evaluates unevaluated
+      calls.
+
+    • complete.cases() failed on a 0-column data frame argument.
+      (Underlies PR#14066.)
+
+      It could return nonsensical results if no input determined the
+      number of cases (seen in the no-segfault tests).
+
+    • An error in nls() with a long formula could cause a segfault.
+      (PR#14059)
+
+    • qchisq(p, df, ncp, lower.tail = FALSE) with ncp >= 80 was
+      inaccurate for small p (as the help page said): it is now less
+      inaccurate.  (In part, PR#13999.)
+
+      For ncp less than but close to 80, pchisq() and qchisq() are more
+      accurate for probabilities very close to 1 (a series expansion
+      was truncated slightly too early).
+
+      pchisq(x, df, ncp) can no longer return values just larger than
+      one for large values of ncp.
+
+    • intToUtf8() could fail when asked to produce 10Mb or more
+      strings, something it was never intended to do: unfortunately
+      Windows crashed R (other OSes reported a lack of resources).
+      (PR#14068)
+
+    • chisq.test() could fail when given argument x or y which deparsed
+      to more than one line.  (Reported by Laurent Gauthier.)
+
+    • S4 methods are uncached whenever the namespace containing them is
+      unloaded (by unloadNamespace() as well as by detach(unload =
+      TRUE)).
+
+    • The internal record-keeping by dyn.load/dyn.unload was
+      incomplete, which could crash R if a DLL that registered
+      .External routines had earlier been unloaded.
+
+    • bessel[JY](x, nu) with nu a negative integer (a singular case) is
+      now correct, analogously to besselI(), see PR#13556.
+
+    • tools::file_path_as_absolute() doubled the file separator when
+      applied to a file such as "/vmunix" or (on Windows) "d:/afile" in
+      a directory for which getwd() would return a path with a trailing
+      separator (largely cosmetic, as reasonable file systems handle
+      such a path correctly).  (Perhaps what was meant by PR#14078.)
+
+    • unsplit(drop = TRUE) applied to a data frame failed to pass drop
+      to the computation of row names.  (PR#14084)
+
+    • The "difftime" method of mean() ignored its na.rm argument.
+
+    • tcltk::tk_select.list() is now more likely to remove the widget
+      immediately after selection is complete.
+
+    • Adding/subtracting a "difftime" object to/from a "POSIXt" or
+      "Date" object works again (it was broken by the addition of
+      Ops.difftime).
+
+    • Conversion to latex of an Rd file with no aliases failed.
+
+    • wilcox.test(conf.int=TRUE) has achieved.level corrected and, for
+      exact=FALSE, now returns a estimate component which does not
+      depend on the alternative used.
+
+    • help.search() failed when the package argument was specified.
+      (PR#14113)
+
+    • switch(EXPR = "A") now returns NULL, as does switch(1) (which
+      used to signal an error).
+
+CHANGES IN R VERSION 2.10.0:
+
+  SIGNIFICANT USER-VISIBLE CHANGES:
+
+    • Package help is now converted from Rd by the R-based converters
+      that were first introduced in 2.9.0.  This means
+
+        • Packages that were installed by R-devel after 2009-08-09
+          should not be used with earlier versions of R, and most
+          aspects of package help (including the runnable examples)
+          will be missing if they are so used.
+
+        • Text, HTML and latex help and examples for packages installed
+          under the new system are converted on-demand from stored
+          parsed Rd files.  (Conversions stored in packages installed
+          under R < 2.10.0 are used if no parsed Rd files are found.
+          It is recommended that such packages be re-installed.)
+
+    • HTML help is now generated dynamically using an HTTP server
+      running in the R process and listening on the loopback interface.
+
+        • Those worried about security implications of such a server
+          can disable it by setting the environment variable
+          R_DISABLE_HTTPD to a non-empty value.  This disables
+          help.start() and HTML help (so text help is shown instead).
+
+        • The Java/Javascript search engine has been replaced by an
+          HTML interface to help.search().  help.start() no longer has
+          an argument searchEngine as it is no longer needed.
+
+        • The HTML help can now locate cross-references of the form
+          \link[pkg]{foo} and \link[pkg:foo]{bar} where foo is an alias
+          in the package, rather than the documented (basename of a)
+          filename (since the documentation has been much ignored).
+
+  NEW FEATURES:
+
+    • polygon(), pdf() and postscript() now have an argument
+      fillOddEven (default FALSE), which controls the mode used for
+      polygon fills of self-intersecting shapes.
+
+    • New debugonce() function; further, getOption("deparse.max.lines")
+      is now observed when debugging, from a code suggestion by John
+      Brzustowski.  (PR#13647/8)
+
+    • plot() methods for "stepfun" and hence "ecdf" no longer plot
+      points by default for n >= 1000.
+
+    • [g]sub(perl=TRUE) now also supports "\E" in order to *end* "\U"
+      and "\L" case changes, thanks to a patch from Bill Dunlap.
+
+    • factor(), levels()<-, etc, now ensure that the resulting factor
+      levels are unique (as was always the implied intention).  Factors
+      with duplicated levels are still constructible by low-level
+      means, but are now declared illegal.
+
+    • New print() (S3) method for class "function", also used for
+      auto-printing.  Further, .Primitive functions now print and
+      auto-print identically.  The new method is based on code
+      suggestions by Romain François.
+
+    • The print() and toLatex() methods for class "sessionInfo" now
+      show the locale in a nicer format and have arguments to suppress
+      locale information.
+
+    • In addition to previously only round(), there are other Math
+      group (S3) methods for "difftime", such as floor(), signif(),
+      abs(), etc.
+
+    • For completeness, old.packages() and available.packages() allow
+      arguments type to be specified (you could always specify
+      arguments available or contriburl).
+
+    • available.packages() by default only returns information on the
+      latest versions of packages whose version requirements are
+      satisfied by the currently running R.
+
+    • tools::write_PACKAGES() has a new argument latestOnly, which
+      defaults to TRUE when only the latest versions in the repository
+      will be listed in the index.
+
+    • getOption() has a new argument default that is returned if the
+      specified option is not set.  This simplifies querying a value
+      and checking whether it is NULL or not.
+
+    • parse() now warns if the requested encoding is not supported.
+
+    • The "table" method of as.data.frame() gains a stringsAsFactors
+      argument to allow the classifying factors to be returned as
+      character vectors rather than the default factor type.
+
+    • If model.frame.default() encounters a character variable where
+      xlev indicates a factor, it now converts the variable to a factor
+      (with a warning).
+
+    • curve() now returns a list containing the points that w§ere
+      drawn.
+
+    • spineplot() now accepts axes = FALSE, for consistency with other
+      functions called by plot.factor().
+
+    • The Kendall and Spearman methods of cor.test() can optionally use
+      continuity correction when not computing exact p-values.  (The
+      Kendall case is the wish of PR#13691.)
+
+    • R now keeps track of line numbers during execution for code
+      sourced with options(keep.source = TRUE).  The source reference
+      is displayed by debugging functions such as traceback(),
+      browser(), recover(), and dump.frames(), and is stored as an
+      attribute on each element returned by sys.calls().
+
+    • More functions now have an implicit (S4) generic definition.
+
+    • quantile.default() now disallows factors (wish of PR#13631) and
+      its help documents what numeric-like properties its input need to
+      have to work correctly.
+
+    • weighted.mean() is now generic and has "Date", "POSIXct" and
+      "POSIXlt" methods.
+
+    • Naming subscripts (e.g. x[i=1, j=2]) in data.frame methods for [
+      and [[ now gives a warning.  (Names are ignored in the default
+      method, but could have odd semantics for other methods, and do
+      for the data.frame ones.)
+
+    • as.data.frame() has an "aovproj" method.  (Wish of PR#13505)
+
+    • as.character(x) for numeric x no longer produces strings such as
+      "0.30", i.e., with trailing zeros.  This change also renders
+      levels construction in factor() more consistent.
+
+    • codocClasses(), which checks consistency of the documentation of
+      S4 class slots, now does so in considerably more cases.  The
+      documentation of inherited slots (from superclasses) is now
+      optional.  This affects R CMD check <pkg> when the package
+      defines S4 classes.
+
+    • codoc() now also checks S4 methods for code/documentation
+      mismatches.
+
+    • for(), while(), and repeat() loops now always return NULL as
+      their (invisible) value.  This change was needed to address a
+      reference counting bug without creating performance penalties for
+      some common use cases.
+
+    • The print() method for ls.str() results now obeys an optional
+      digits argument.
+
+    • The method argument of glm() now allows user-contributed methods.
+
+    • More general reorder.default() replaces functionality of
+      reorder.factor() and reorder.character().
+
+    • The function aspell() has been added to provide an interface to
+      the Aspell spell-checker.
+
+    • Filters RdTextFilter() and SweaveTeXFilter() have been added to
+      the tools package to provide support for aspell() or other spell
+      checkers.
+
+    • xtabs() with the new argument sparse = TRUE now returns a sparse
+      Matrix, using package Matrix.
+
+    • contr.sum() etc gain an argument sparse which allows sparse
+      matrices to be returned.
+
+      contrasts() also gains a sparse argument which it passes to the
+      actual contrast function if that has a formal argument sparse.
+
+      contrasts(f, .) <- val now also works when val is a sparse
+      Matrix.  It is planned that model.matrix() will work with such
+      factors f in the future.
+
+    • readNEWS() will recognize a UTF-8 byte-order mark (BOM) in the
+      NEWS file.  However, it is safer to use only ASCII code there
+      because not all editors recognize BOMs.
+
+    • New utility function inheritedSlotNames() for S4 class
+      programming.
+
+    • tabulate() now allows NAs to pass through (and be ignored).
+
+    • If debug() is called on an S3 generic function then all methods
+      are debugged as well.
+
+    • Outlier symbols drawn by boxplot() now obey the outlwd argument.
+      Reported by Jurgen Kluge.
+
+    • svd(x) and eigen(x) now behave analogously to qr(x) in accepting
+      logical matrices x.
+
+    • File NEWS is now in UTF-8, and has a BOM (often invisible) on the
+      first line, and Emacs local variables set for UTF-8 at the end.
+      RShowDoc("NEWS") should display this correctly, given suitable
+      fonts.
+
+    • terms.formula(simplify = TRUE) now does not deparse the LHS and
+      so preserves non-standard responses such as `a: b` (requested by
+      Sundar Dorai-Raj).
+
+    • New function news() for building and querying R or package news
+      information.
+
+    • z^n for integer n and complex z is more accurate now if |n| <=
+      65536.
+
+    • factor(NULL) now returns the same as factor(character(0)) instead
+      of an error, and table(NULL) consequently does analogously.
+
+    • as.data.frame.vector() (and its copies) is slightly faster by
+      avoiding a copy if there are no names (following a suggestion of
+      Tim Hesterberg).
+
+    • writeLines(), writeBin() and writeChar() have a new argument
+      useBytes.  If false, character strings with marked encodings are
+      translated to the current locale (as before) but if true they are
+      written byte-by-byte.
+
+    • iconv() has a new argument mark which can be used (by experts) to
+      suppress the declaration of encodings.
+
+    • DESCRIPTION file's LinkingTo specs are now recognized as
+      installation dependencies, and included in package management
+      computations.
+
+    • Standardized DESCRIPTION file License specs are now available for
+      package management computations.
+
+    • "\uxxxx" and "\Uxxxxxxxx" escapes can now be parsed to a UTF-8
+      encoded string even in non-UTF-8 locales (this has been
+      implemented on Windows since R 2.7.0).  The semantics have been
+      changed slightly: a string containing such escapes is always
+      stored in UTF-8 (and hence is suitable for portably including
+      Unicode text in packages).
+
+    • New as.raw() method for "tclObj" objects (wish of PR#13758).
+
+    • Rd.sty now makes a better job of setting email addresses,
+      including using a monospaced font.
+
+    • textConnection() gains an encoding argument to determine how
+      input strings with marked encodings will be handled.
+
+    • R CMD Rd2pdf is available as a shortcut for R CMD Rd2dvi --pdf.
+
+    • R CMD check now checks links where a package is specified
+      (\link[pkg]{file} or \link[pkg:file]{topic}), if the package is
+      available.  It notes if the package is not available, as in many
+      cases this is an error in the link.
+
+    • identical() gains three logical arguments, which allow for even
+      more differentiation, notably -0 and 0.
+
+    • legend() now can specify the border color of filled boxes, thanks
+      to a patch from Frederic Schutz.
+
+    • Indexing with a vector index to [[ ]] has now been extended to
+      all recursive types.
+
+    • Pairlists may now be assigned as elements of lists.  (Lists could
+      always be created with pairlist elements, but [[<- didn't support
+      assigning them.)
+
+    • The parser now supports C-preprocessor-like #line directives, so
+      error messages and source references may refer to the original
+      file rather than an intermediate one.
+
+    • New functions findLineNum() and setBreakpoint() work with the
+      source references to find the location of source lines and set
+      breakpoints (using trace()) at those lines.
+
+    • Namespace importing is more careful about warning on masked
+      generics, thanks to a patch by Yohan Chalabi.
+
+    • detach() now has an argument character.only with the same meaning
+      as for library() or require().
+
+    • available.packages() gains a filters argument for specifying the
+      filtering operations performed on the packages found in the
+      repositories.  A new built-in "license/FOSS" filter only retains
+      packages for which installation can proceed solely based on
+      packages which can be verified as Free or Open Source Software
+      (FOSS) employing the available license specifications.
+
+    • In registering an S3 class by a call to setOldClass(), the data
+      part (e.g., the object type) required for the class can be
+      included as one of the superclasses in the Classes argument.
+
+    • The argument f to showMethods() can be an expression evaluating
+      to a generic function, allowing methods to be shown for
+      non-exported generics and other nonstandard cases.
+
+    • sprintf() now supports %o for octal conversions.
+
+    • New function Sys.readlink() for information about symbolic links,
+      including if a file is a symbolic link.
+
+    • Package tools has new functions checkRdaFiles() and
+      resaveRdaFiles() to report on the format of .rda/.RData data
+      files, and to re-save them in a different compressed format,
+      including choosing the most compact format available.
+
+      A new INSTALL option, --resave-data, makes use of this.
+
+    • File ~/.R/config is used in preference to ~/.Rconfig, and these
+      are now documented in ‘R Installation and Administration’.
+
+    • Logic operations with complex numbers now work, as they were
+      always documented to, and as in S.
+
+    • arrows() and segments() allow one of x1 or y1 to be omitted to
+      simplify the specification of vertical or horizontal lines
+      (suggestion of Tim Hesterberg).
+
+    • approxfun() is faster by avoiding repeated NA checks (diagnosis
+      and patch by Karline Soetaert & Thomas Petzoldt).
+
+    • There are the beginnings of a Nynorsk translation by Karl Ove
+      Hufthammer.
+
+    • stripchart() allows par bg to be passed in for the background
+      colour for pch = 21 (wish of PR#13984).
+
+    • New generic function .DollarNames() to enable class authors to
+      customize completion after the $ extractor.
+
+    • load(), save(), dput() and dump() now open a not-yet-open
+      connection in the appropriate mode (as other functions using
+      connections directly already did).
+
+  REGULAR EXPRESSIONS:
+
+    • A different regular expression engine is used for basic and
+      extended regexps and is also for approximate matching.  This is
+      based on the TRE library of Ville Laurikari, a modified copy of
+      which is included in the R sources.
+
+      This is often faster, especially in a MBCS locale.
+
+      Some known differences are that it is less tolerant of invalid
+      inputs in MBCS locales, and in its interpretation of undefined
+      (extended) regexps such as "^*".  Also, the interpretation of
+      ranges such as [W-z] in caseless matching is no longer to map the
+      range to lower case.
+
+      This engine may in future be used in ‘literal’ mode for fixed =
+      TRUE, and there is a compile-time option in src/main/grep.c to do
+      so.
+
+    • The use of repeated boundary regexps in gsub() and gregexpr() as
+      warned about in the help page does not work in this engine (it
+      did in the previous one since 2005).
+
+    • Extended (and basic) regexps now support same set of options as
+      for fixed = TRUE and perl = TRUE, including useBytes and support
+      for UTF-8-encoded strings in non-UTF-8 locales.
+
+    • agrep() now has full support for MBCS locales with a modest speed
+      penalty.  This enables help.search() to use approximate matching
+      character-wise rather than byte-wise.
+
+    • [g]sub use a single-pass algorithm instead of matching twice and
+      so is usually faster.
+
+    • The perl = TRUE versions now work correctly in a non-UTF-8 MBCS
+      locale, by translating the inputs to UTF-8.
+
+    • useBytes = TRUE now inhibits the translation of inputs with
+      marked encodings.
+
+    • strsplit() gains a useBytes argument.
+
+    • The algorithm used by strsplit() has been reordered to batch by
+      elements of split: this can be much faster for fixed = FALSE (as
+      multiple compilation of regexps is avoided).
+
+    • The help pages, including ?regexp, have been updated and should
+      be consulted for details of the new implementations.
+
+  HELP & Rd FILE CHANGES:
+
+    • A new dynamic HTML help system is used by default, and may be
+      controlled using tools::startDynamicHelp().  With this enabled,
+      HTML help pages will be generated on request, resolving links by
+      searching through the current .libPaths().  The user may set
+      options("help.ports") to control which IP port is used by the
+      server.
+
+    • help.start() no longer sets options(htmlhelp = TRUE) (it used to
+      on Unix but not on Windows).  Nor does it on Unix reset the
+      "browser" option if given an argument of that name.
+
+      Arguments update and remote are now available on all platforms:
+      the default is update = FALSE since the http server will update
+      the package index at first use.
+
+    • help() has a new argument help_type (with default set by the
+      option of that name) to supersede arguments offline, htmlhelp and
+      chmhelp (although for now they still work if help_type is unset).
+      There is a new type, "PDF" to allow offline PDF (rather than
+      PostScript).
+
+      A function offline_help_helper() will be used if this exists in
+      the workspace or further down the search path, otherwise the
+      function of that name in the utils namespace is used.
+
+    • Plain text help is now used as the fallback for HTML help (as it
+      always was for Compiled HTML help on Windows).
+
+    • It is possible to ask for static HTML pages to be prebuilt _via_
+      the configure option --enable-prebuilt-html.  This may be useful
+      for those who wish to make HTML help available outside R, e.g. on
+      a local web site.
+
+    • An experimental tag \Sexpr has been added to Rd files, to
+      evaluate expressions at build, install, or render time.
+      Currently install time and render time evaluation are supported.
+
+    • Tags \if, \ifelse and \out have been added to allow
+      format-specific (or more general, using \Sexpr) conditional text
+      in man pages.
+
+    • The parse_Rd() parser has been made more tolerant of coding
+      errors in Rd files: now all syntax errors are reported as
+      warnings, and an attempt is made to continue parsing.
+
+    • parse_Rd() now has an argument fragment (default FALSE) to accept
+      small fragments of Rd files (so that \Sexpr can output Rd code
+      which is then parsed).
+
+    • parse_Rd() now always converts its input to UTF-8.  The Rd2*
+      rendering functions have a new argument, outputEncoding, which
+      controls how their output is encoded.
+
+    • parse_Rd() no longer includes the newline as part of a "%"-style
+      comment.
+
+    • There have been various bug fixes and code reorganization in the
+      Rd renderers Rd2HTML, Rd2latex, Rd2txt, and Rd2ex.
+
+      All example files are now created with either ASCII or UTF-8
+      encoding, and the encoding is only marked in the file if there is
+      any non-UTF-8 code (previously it was marked if the help file had
+      non-ASCII contents, possibly in other sections).
+
+    • print.Rd() now adds necessary escape characters so that printing
+      and re-parsing an Rd object should produce an equivalent object.
+
+    • parse_Rd() was incorrectly handling multiple backslashes in R
+      code strings, converting 4n+3 backslashes to 2n+1 instead of
+      2n+2.
+
+    • parse_Rd() now recognizes the \var tag within a quoted string in
+      R-like text.
+
+    • parse_Rd() now treats the argument of \command as LaTeX-like,
+      rather than verbatim.
+
+  COMPRESSION:
+
+    • New function untar() to list or unpack tar archives, possibly
+      compressed.  This uses either an external tar command or an
+      internal implementation.
+
+    • New function tar() to create (possibly compressed) tar archives.
+
+    • New functions memCompress() and memDecompress() for in-memory
+      compression and decompression.
+
+    • bzfile() has a compress argument to select the amount of effort
+      put into compression when writing.
+
+    • New function xzfile() for use with xz-compressed files.  (This
+      can also read files compressed by some versions of lzma.)
+
+    • gzfile() looks at the file header and so can now also read
+      bzip2-ed files and xz-compressed files.
+
+    • There are the new options of save(compress = "bzip2") and "xz" to
+      use bzip2 or xz compression (which will be slower, but can give
+      substantially smaller files).  Argument compression_level gives
+      finer control over the space/time tradeoffs.
+
+      load() can read such saves (but only as from this version of R).
+
+    • R CMD INSTALL/check and tools::writePACKAGES accept a wider range
+      of compressed tar archives.  Precisely how wide depends on the
+      capabilities of the host system's tar command: they almost always
+      include .tar.bz2 archives, and with modern versions of tar other
+      forms of compression such as lzma and xz, and arbitrary
+      extensions.
+
+    • R CMD INSTALL has a new option --data-compress to control the
+      compression used when lazy-loading data.  New possibilities are
+      --data-compress=bzip2 which will give ca 15% better compression
+      at the expense of slower installation times, and
+      --data-compress=xz, often giving even better compression on large
+      datasets at the expense of much longer installation times.  (The
+      latter is used for the recommended packages: it is particularly
+      effective for survival.)
+
+    • file() for open = "", "r" or "rt" will automagically detect
+      compressed files (from gzip, bzip2 or xz).  This means that
+      compressed files can be specified by file name (rather than _via_
+      a gzfile() connection) to read.table(), readlines(), scan() and
+      so on.
+
+    • data() can handle compressed text files with extensions
+      .{txt,tab,csv}.{gz,bz2,xz} .
+
+  DEPRECATED & DEFUNCT:
+
+    • png(type="cairo1") is defunct: the value is no longer recognized.
+
+    • tools::Rd_parse() is defunct (as this version of R uses only Rd
+      version 2).
+
+    • Use of file ~/.Rconf (which was deprecated in favour of
+      ~/.Rconfig in 2004) has finally been removed.
+
+    • Bundles of packages are deprecated.  See ‘Writing R Extensions’
+      for the steps needed to unbundle a bundle.
+
+    • help() arguments offline, htmlhelp and chmhelp are deprecated in
+      favour of help_type.
+
+    • clearNames() (in package stats) is deprecated for unname().
+
+    • Basic regular expressions (extended = FALSE) are deprecated in
+      strsplit, grep and friends.  There is a precise POSIX standard
+      for them, but it is not what recent RE engines implement, and it
+      seems that in almost all cases package authors intended fixed =
+      TRUE when using extended = FALSE.
+
+    • methods::trySilent() is deprecated in favour of try(silent=TRUE)
+      or - more efficiently and flexibly - something like
+      tryCatch(error = function(e) e).
+
+    • index.search() is deprecated: there are no longer directories of
+      types other than help.
+
+  INSTALLATION:
+
+    • cairo >= 1.2 is now required (1.2.0 was released in July 2006)
+      for cairo-based graphics devices (which remain optional).
+
+    • A suitable iconv() is now required: support for configure option
+      --without-iconv has been withdrawn (it was deprecated in R
+      2.5.0).
+
+    • Perl is no longer ‘essential’.  R can be built without it, but
+      scripts R CMD build, check, Rprof and Sd2d currently require it.
+
+    • A system glob function is now essential (a working Sys.glob() has
+      been assumed since R 2.9.0 at least).
+
+    • C99 support for MBCS is now required, and configure option
+      --disable-mbcs has been withdrawn.
+
+    • Having a version of tar capable of automagically detecting
+      compressed archives is useful for utils::untar(), and so gtar (a
+      common name for GNU tar) is preferred to tar: set environment
+      variable TAR to specify a particular tar command.
+
+  INTERNATIONALIZATION:
+
+    • There is some makefile support for adding/updating translations
+      in packages: see po/README and ‘Writing R Extensions’.
+
+      There is support for the use of dngettext for C-level
+      translations in packages: see ‘Writing R Extensions’.
+
+  BUG FIXES:
+
+    • Assigning an extra 0-length column to a data frame by DF[, "foo"]
+      <- value now works in most cases (by filling with NAs) or fails.
+      (It used to give a corrupt data frame.)
+
+    • validObject() avoids an error during evaluation in the case of
+      various incorrect slot definitions.
+
+    • n:m now returns a result of type "integer" in a few more boundary
+      cases.
+
+    • The zap.ind argument to printCoefmat() did not usually work as
+      other code attempted to ensure that non-zero values had a
+      non-zero representation.
+
+    • printCoefmat() formatted groups of columns together, not just the
+      cs.ind group but also the zap.ind group and a residual group.  It
+      now formats all columns except the cs.ind group separately (and
+      zaps the zap.ind group column-by-column).  The main effect will
+      be see in the output from print.anova(), as this grouped SS-like
+      columns in the zap.ind group.
+
+    • R_ReplDLLinit() initializes the top-level jump so that some
+      embedded applications on Windows no longer crash on error.
+
+    • identical() failed to take the encoding of character strings into
+      account, so identical byte patterns are not necessarily identical
+      strings, and similarly Latin-1 and UTF-8 versions of the same
+      string differ in byte pattern.
+
+    • methods(f) used to warn unnecessarily for an S4 generic f which
+      had been created based on an existing S3 generic.
+
+    • The check for consistent ordering of superclasses was not
+      ignoring all conditional relations (the symptom was usually
+      spurious warnings for classes extending "array").
+
+    • Trying to assign into a raw vector with an index vector
+      containing NAs could cause a segfault.  Reported by Hervé Pagès.
+
+    • Rscript could segfault if (by user error) its filename argument
+      was missing.  Reported by Martin Morgan.
+
+    • getAnywhere() (and functions that use it, including argument
+      completion in the console) did not handle special built-in
+      functions.  Reported by Romain Francois.
+
+    • order() was missing a PROTECT() call and so could segfault when
+      called on character data under certain (rare) circumstances
+      involving marked non-native encodings.
+
+    • prettyNum(z, drop0trailing=TRUE) did not work correctly when z
+      was a complex vector.  Consequently, str(z, ...) also did not.
+      (PR#13985)
+
+    • make distclean removed too many files in etc/ if builddir =
+      srcdir.
+
+    • R CMD replaced TEXINPUTS rather than appending to it (as
+      documented and intended).
+
+    • help.start() no longer fails on unix when "browser" is a
+      function.
+
+    • pbeta(x, ..., log.p = TRUE) is sometimes more accurate, e.g., for
+      very small x.
+
+    • Unserializing a pre-2.8 workspace containing pure ASCII character
+      objects with a Latin-1 or UTF-8 encoding would corrupt the
+      CHARSXP cache.
+
+
+	**************************************************
+	*						 *
+	*	       2.9 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 2.9.2 patched
+
+
+NEW FEATURES
+
+    o	On systems using ICU for collation (including Mac OS X), using
+	Sys.setlocale() to change the LC_COLLATE setting is more
+	likely to change the collation provided by ICU.
+
+
+BUG FIXES
+
+    o	On systems using zipped data and help (Windows) the names of
+	datasets could clash with temporary filenames used when
+	running examples, causing errors.
+
+    o	as.complex() sometimes warned about NAs on coercions and
+	sometimes not (when the C function asComplex was used, e.g. on
+	list elements).	 (PR#13942)
+
+    o	cat() on an unopened connection could close it twice, and
+	with file() connections segfaulted on some systems.
+
+    o	Printing a list could segfault if the elements are nested too
+	deeply.
+
+
+
+		CHANGES IN R VERSION 2.9.2
+
+
+NEW FEATURES
+
+    o	install.packages(NULL) now lists packages only once even if they
+	occur in more than one repository (as the latest compatible
+	version of those available will always be downloaded).
+
+    o	approxfun() and approx() now accept a 'rule' of length two, for
+	easy specification of different interpolation rules on left and
+	right.
+
+	They no longer segfault for invalid zero-length specification
+	of 'yleft, 'yright', or 'f'.
+
+    o	seq_along(x) is now equivalent to seq_len(length(x)) even where
+	length() has an S3/S4 method; previously it (intentionally)
+	always used the default method for length().
+
+    o	PCRE has been updated to version 7.9 (for bug fixes).
+
+    o	agrep() uses 64-bit ints where available on 32-bit platforms
+	and so may do a better job with complex matches.
+	(E.g. PR#13789, which failed only on 32-bit systems.)
+
+
+DEPRECATED & DEFUNCT
+
+    o	R CMD Rd2txt is deprecated.  (It is just a wrapper for
+	R CMD Rdconv -t txt.)
+
+    o	tools::Rd_parse() is deprecated and will be removed in 2.10.0
+	(which will use only Rd version 2).
+
+
+BUG FIXES
+
+    o	parse_Rd() still did not handle source reference encodings
+	properly.
+
+    o	The C utility function PrintValue no longer attempts to print
+	attributes for CHARSXPs as those attributes are used
+	internally for the CHARSXP cache.  This fixes a segfault when
+	calling it on a CHARSXP from C code.
+
+    o	PDF graphics output was producing two instances of anything
+	drawn with the symbol font face. (Report from Baptiste Auguie.)
+
+    o	length(x) <- newval and grep() could cause memory corruption.
+	(PR#13837)
+
+    o	If model.matrix() was given too large a model, it could crash
+	R. (PR#13838, fix found by Olaf Mersmann.)
+
+    o	gzcon() (used by load()) would re-open an open connection,
+	leaking a file descriptor each time. (PR#13841)
+
+    o	The checks for inconsistent inheritance reported by setClass()
+	now detect inconsistent superclasses and give better warning
+	messages.
+
+    o	print.anova() failed to recognize the column labelled
+	P(>|Chi|) from a Poisson/binomial GLM anova as a p-value
+	column in order to format it appropriately (and as a
+	consequence it gave no significance stars).
+
+    o	A missing PROTECT caused rare segfaults during calls to
+	load().	 (PR#13880, fix found by Bill Dunlap.)
+
+    o	gsub() in a non-UTF-8 locale with a marked UTF-8 input
+	could in rare circumstances overrun a buffer and so segfault.
+
+    o	R CMD Rdconv --version was not working correctly.
+
+    o	Missing PROTECTs in nlm() caused "random" errors. (PR#13381 by
+	Adam D.I. Kramer, analysis and suggested fix by Bill Dunlap.)
+
+    o	Some extreme cases of pbeta(log.p = TRUE) are more accurate
+	(finite values < -700 rather than -Inf).  (PR#13786)
+
+	pbeta() now reports on more cases where the asymptotic
+	expansions lose accuracy (the underlying TOMS708 C code was
+	ignoring some of these, including the PR#13786 example).
+
+    o	new.env(hash = TRUE, size = NA)	now works the way it has been
+	documented to for a long time.
+
+    o	tcltk::tk_choose.files(multi = TRUE) produces better-formatted
+	output with filenames containing spaces.  (PR#13875)
+
+    o	R CMD check --use-valgrind did not run valgrind on the package tests.
+
+    o	The tclvalue() and the print() and as.xxx methods for class
+	"tclObj" crashed R with an invalid object -- seen with an
+	object saved from an earlier session.
+
+    o	R CMD BATCH garbled options -d <debugger> (useful for
+	valgrind, although --debugger=valgrind always worked)
+
+    o	INSTALL with LazyData and Encoding declared in DESCRIPTION
+	might have left options("encoding") set for the rest of the
+	package installation.
+
+
+
+		CHANGES IN R VERSION 2.9.1
+
+
+NEW FEATURES
+
+    o	New function anyDuplicated(x) returns 0 (= FALSE) or the index
+	of the first duplicated entry of x.
+
+    o	matplot(), matlines() and matpoints() now also obey a 'lend'
+	argument, determining line end styles. (Wish of PR#13619).
+
+    o	bw.SJ(), bw.bcv() and bw.ucv() now gain an optional 'tol'
+	argument allowing more accurate estimates.
+
+    o	new.packages() no longer regards packages with the same name
+	as a member of an installed bundle as 'new' (this is now
+	consistent with the dependency checks in install.packages()).
+
+	It no longer reports on partially installed bundles (since
+	members can be updated individually if a bundle is unbundled).
+
+    o	old.packages() and hence updates.packages() will look for
+	updates to members of package bundles before updates to the
+	whole bundle: this allow bundles to be split and installations
+	updated.
+
+    o	nlminb() gives better non-convergence messages in some cases.
+
+    o	S3 method dispatch will support S4 class inheritance for S3
+	methods, for primitives and via UseMethod(), if the argument
+	S3methods=TRUE is given to setClass().	S4 method dispatch
+	will use S3 per-object inheritance if S3Class() is set on the
+	object.	 See ?Methods and the paper referenced there.
+
+    o	R CMD INSTALL is more tolerant of (malformed) packages with a
+	'man' directory but no validly named .Rd files.
+
+    o	R CMD check now reports where options are used that cause some
+	of the checks to be skipped.
+
+    o	RSiteSearch has been updated to be consistent with the new
+	layout of the search site itself, which now includes separate
+	options for vignettes, views, and r-sig-mixed-models, as well
+	as changed names for r-help. (Contributed by Jonathan Baron.)
+
+    o	That R CMD check makes use of a
+	<pkg>/tests/Examples/<pkg>-Ex.Rout.save file as a reference
+	result is now documented in 'Writing R Extensions'.
+
+
+DEPRECATED & DEFUNCT
+
+    o	print.atomic() (defunct since 1.9.0) has been removed since it
+	caused confusion for an S4 class union "atomic".
+
+    o	png(type="cairo1") is deprecated -- it was only needed for
+	platforms with 1.0 <= cairo < 1.2.
+
+
+BUG FIXES
+
+    o	The ... argument was not handled properly when ... was found
+	in the enclosure of the current function, rather than in the
+	function header itself.	 (This caused integrate() to fail in
+	certain cases.)
+
+    o	col2rgb("#00000080", TRUE) would return the background colour.
+	(Reported by Hadley Wickham.)
+
+    o	interaction() now ensures that the levels of the result are unique.
+
+    o	packageDescription() and hence sessionInfo() now report the correct
+	package version also for a non-attached loaded namespace of
+	a version different from the default lib.loc.
+
+    o	smoothScatter() now also works when e.g. xlim[2] < xlim[1].
+
+    o	Invalid use of sprintf() such as sprintf("%S%") now give an error
+	instead of a segmentation fault, as do very unusual cases such as
+	sprintf("%s", tryCatch(stop(), error=identity)).  (It was
+	always documented that misuse could crash R in
+	platform-dependent ways.)
+
+    o	parse_Rd() would mishandle braces when they occurred at
+	the start of a line within an R string in an Rd file (reported
+	by Alex Couture-Beil) or when they occurred in an R comment
+	(reported by Mark Bravington).
+
+    o	readNEWS() missed version numbers with more than one digit.
+
+    o	building R --without-x no longer fails (PR#13665)
+
+    o	printCoefmat(cbind(0,1)) now works too (PR#13677)
+
+    o	bw.SJ(c(1:99, 1e6)) now works too.
+
+    o	Rd2txt() could not handle empty descriptions of items in an Rd
+	file (reported by Mark Bravington), and did not wrap long lists
+	of arguments if they were given in a single item.
+
+    o	stars() would do a partial plot when called with plot = FALSE;
+	it now consistently returns the locations of the stars.
+
+    o	Rd2latex() could not handle empty sections.
+
+    o	old.packages() and hence update.packages() would fail on a
+	repository which contained only one package but with multiple
+	versions of that package.
+
+    o	as.character.Rd() added extra braces when displaying two-argument
+	macros.	 (Report and fix by Manuel Eugster.)
+
+    o	unsplit() was misbehaving in the case of single-column data
+	frames. (Reported by Will Gray.)
+
+    o	as(I(1), "vector") and similar coercions from objects of
+	"unregistered" S3 classes now work.
+
+    o	srcref records produced by parse() and parse_Rd() did not record
+	the encoding of the source file.  (Reported by Romain Francois.)
+
+    o	The X11 version of View() was misbehaving in MBCS locales, and
+	PgUp/PgDn now behave better, thanks to a patch from Ei-ji Nakama.
+
+    o	R CMD check looked at the environment variable PDFLATEX, but
+	as from R 2.8.1 R CMD Rd2dvi used R_PDFLATEXCMD in
+	preference, and that was set by R CMD (and not PDFLATEX).  Now
+	R CMD check looks at R_PDFLATEXCMD.
+
+    o	sprintf() now signals an error when the result of single format
+	specification would be longer than the limit (8192 bytes); it would
+	return "somewhat random" results or segfault previously. (PR#13667)
+	Further, arguments of type "language" or "symbol" are no longer
+	allowed, as these, e.g., sprintf("%s", quote(list())), typically
+	lead to unexpected results or hard to understand error messages.
+
+    o	The new (in 2.9.0) 'stringsAsFactors' argument to expand.grid()
+	was not working: it now does work but has default TRUE for
+	backwards compatibility.
+
+    o	tcrossprod(<1d-array>, <matrix>) now does work when the arguments
+	are of compatible dimensions.
+
+    o	qbinom() now is accurate also in (large size, small prob)
+	cases.	(PR#13711)
+
+    o	The calculation of the Spearman p-value in cor.test() is
+	slightly more accurate in some cases.  (PR#13574)
+
+    o	The digamma(), trigamma() and psigamma() functions could be
+	inaccurate for values of x around 1e-15 due to cancellation.
+	(PR#13714).
+
+    o	median.default() was altered in 2.8.1 to use sum() rather
+	than mean(), although it was still documented to use mean().
+	This caused problems for POSIXt objects, for which mean() but
+	not sum() makes sense, so the change has been reverted.
+
+    o	Assigning an extra 0-length column to a data frame by
+	DF$foo <- value gave a corrupt data frame rather than failing.
+	(PR#13724)  This also happened for DF[["foo"]] <- value.
+
+    o	R CMD INSTALL no longer gives a spurious warning about old R
+	versions ignoring multiple dependencies, if the conditions are
+	known to be satisfied.
+
+    o	The test for setting dim() allowed a value with two or more
+	NAs to be set on a 0-length object.  (PR#13729)	 Also, it
+	allowed an even number of negative values.
+
+    o	xtfrm(), rank(), sort() and order() did not always make use of
+	custom comparison methods specific to the class of elements
+	being sorted.
+
+    o	Increase NAMED value on 'seq' value in for() loop so loop code
+	cannot modify 'seq' value.
+
+    o	Prevent rectangles of size < 0.5 pixel from disappearing in
+	Quartz when using rastered backend.  (PR#13744)
+
+    o	Printing _NA_complex_ had a low-level thinko; patch thanks to
+	Bill Dunlap.
+
+    o	CP1257 encoding for postscript/PDF has been corrected.	(PR#13736)
+
+    o	aov() with an error term was evaluating the ... arguments in
+	2.9.0 whilst checking their names, so could fail by evaluating
+	them in the wrong place.  (PR#13733)
+
+    o	The print() method for arima() failed if all coefs were fixed.
+
+    o	R CMD INSTALL --no-latex was not implemented in 2.9.0 (only).
+
+    o	Added a needed PROTECT call in RunFinalizers to handle cases where
+	the routine is called recursively from a GC in a finalizer.
+
+    o	Constructing error messages about unused arguments in calls to
+	closures no longer evaluates the arguments.
+
+    o	qr(x, LAPACK=TRUE) did not coerce integer x to numeric.
+
+    o	qr.coef() misbehaved in the LAPACK case with a matrix RHS, so
+	that solve(qr(x, LAPACK=TRUE)) gave wrong results. (Found by
+	Avraham Adler, PR#13762 by Ravi Varadhan.)
+
+
+
+		CHANGES IN R VERSION 2.9.0
+
+
+NEW FEATURES
+
+    o	Package 'Matrix' is now a recommended package contained in the
+	basic R distribution.  It provides S4 classes and methods for
+	dense and sparse matrices, often by using the numerical
+	libraries Lapack and from the SuiteSparse collection CHOLMOD,
+	CSparse, and SPQR among others.
+
+    o	pdf() and postscript() gain a 'useKerning' argument to place
+	strings using kerning (which had previously been ignored in
+	display but not in strwidth), based in part on an idea and
+	code from Ei-ji Nakama. The default is TRUE.
+
+	Kerning involving spaces is now ignored (it was previously
+	only used in the computation of string widths).
+
+    o	seq.default() and seq.int() ensure that the result is within the
+	interval [from, to] even when the last value would previously
+	have been slightly out of range because of the allowance for
+	rounding error in computing the number of elements.
+
+    o	boxplot() gains a simple 'matrix' method, enabling boxplot(mat)
+	instead of boxplot(data.frame(mat)).
+
+    o	zip.file.extract() gains an optional 'dir' argument (but use
+	unzip() instead).
+
+    o	source() with 'encoding' specified (and not as "unknown") marks
+	the encoding of character strings in Latin-1 and UTF-8
+	locales.
+
+    o	parse(text=z) now marks the encoding of character strings in
+	Latin-1 and UTF-8 locales if 'z' is of known encoding (that is
+	all elements are either ASCII or marked as Latin-1 or UTF-8).
+
+    o	sprintf() does stricter error checking on input formats to
+	avoid passing invalid formats to the OS (which have a tendency
+	to crash under such inputs).
+
+    o	expand.grid() gains a 'stringsAsFactors' argument to ask for
+	automatic conversion of character vectors to factors (which
+	happened for many years but was not previously documented).
+	[This did not actually work prior to R 2.9.1.]
+
+    o	bxp() now computes the 'ylim' including the outliers only if
+	'outline = TRUE'.  (Wish of PR#13196)
+
+    o	barplot() gains a 'args.legend' argument.  (Wish of PR#13265).
+
+    o	RweaveLatexSetup() now accepts all (and not just some) options
+	passed through from Sweave()
+
+    o	cumsum(x) and cumprod(x) for double precision x now use a long
+	double accumulator where available and so more closely match
+	sum() and prod() in potentially being more accurate.
+
+    o	plot() methods for "stepfun" (and hence "ecdf") gain an 'col'
+	argument, allowing to set all three colors simultaneously.
+
+    o	Iterating over a factor in a for loop now coerces to a character
+	vector (rather than using the integer codes).
+
+    o	data.frame() now recycles columns of list arguments, not just
+	vectors and factors.
+
+    o	plot.ts(plot.type="multiple") now makes use of *.lab and
+	*.axis graphical parameters (wish of PR#13134 and 13135).
+
+    o	Classes can be exported from a name space using the NAMESPACE
+	file directive 'exportClassPattern' which has the same syntax
+	as 'exportPattern'.
+
+    o	strftime() now converts its first argument with as.POSIXlt()
+	and so is no longer an alias for format.POSIXLt.
+
+    o	body<-() now treats list values consistently with other
+	types: they no longer need to be wrapped in a list() call.
+
+    o	option("pdfbrowser") is now set on Windows as well as on Unix-alikes.
+
+    o	object.size() now returns an object of class "object_size" and
+	has a print() method.
+
+    o	[col/row]Sums(), *Means() now have an additional '...' argument,
+	so that they can more easily be turned into generic functions.
+
+    o	Package 'tools' contains dependsOnPkgs() to compute reverse
+	dependencies.
+
+    o	Strict type checking is now turned on: this catches more
+	internal corruptions, and some badly written contributed code.
+
+    o	There are new functions in package 'tcltk', tk_choose.files(),
+	tk_choose.dir() and tk_messageBox(), analogues of functions
+	available on Windows (the last is an analogue of winDialog).
+
+    o	Sys.glob() now does tilde expansion on all platforms.
+
+    o	read.table() and friends gain a 'fileEncoding' argument to
+	make re-encoding of input just a little bit simpler.
+
+    o	grep() gains an 'invert' argument mimicking 'grep -v/--invert'.
+
+    o	strwrap() now allows a separate prefix for the first line.
+
+    o	grep() has a more efficient sibling grepl() that returns a
+	logical vector.
+
+    o	xfig() has new arguments 'defaultFont' and 'textSpecial'
+	contributed by Sebastian Fischmeister.
+
+    o	parse() and parse_Rd() now point to syntax errors in the
+	reported error context, and include the filename and line and
+	column numbers so smart text editors can jump to the error
+	location.
+
+    o	str(<1d-array>) now writes "[1:n(1d)]" instead of the previous
+	less clear "[, 1:n]".
+
+    o	New function testInstalledPackage() in package 'tools' allows
+	the examples (and if they were installed) any package-specific
+	tests to be run on an installed package.
+
+	testInstalledPackages() can run all the examples and tests in
+	the standard and/or recommended packages.  Also
+	testInstalledBasic() can run the basic tests (if installed).
+
+    o	file.copy() now has a 'recursive' argument.
+
+    o	Errors in setOldClass() will cause a previous definition to be restored.
+
+    o	Ambiguities in class inheritance and method selection resulting
+	from duplicates in superclasses are now resolved by requiring
+	(if possible) consistency with all the superclass inheritance. The
+	rules for method selection have been revised to take advantage of
+	the improved ordering.
+	See ?Methods and the reference there related to inheritance.
+
+    o	New function unzip() in package 'utils' to expand or list zip
+	archives.
+
+    o	Replacement functions for class() and oldClass()  will unset
+	the S4 bit when the replacement can't be an S4 object;
+	oldClass() will return the S3 class for S4 objects with slot
+	.S3Class.
+
+    o	clip() takes extra steps to avoid the next graphics call
+	resetting the clip region.
+
+    o	New function sample.int() to provide documented access to the
+	internal part of sample() (sampling from seq_len(n)).
+
+    o	New version of withVisible() for better handling of cases like
+	withVisible(eval.parent(....)). Moved to package 'base' with a
+	view to replace .Internal(eval.with.vis) in source() later.
+
+    o	showClass() which is also used to auto-print class definitions, now
+	mentions the package where the class comes from, if there is one.
+
+    o	simulate(obj) now also works for "glm" objects and for weighted
+	fits, thanks in part to contributions from Ben Bolker and
+	Heather Turner.	 There is now a means to extend the methods
+	available for "glm" objects, as glm families can have an
+	optional 'simulate' component.
+
+    o	S4 classes that inherit from any of the "structure" classes or
+	from "vector" will turn on methods for all the "Ops" group of
+	functions when the package containing the classes is
+	loaded. See class?structure.
+
+    o	A mechanism now allows S4 classes to inherit from object types
+	"environment", "externalptr" and symbol ("name").  See ?setClass.
+
+    o	demo() gains 'echo' and 'ask' arguments, with defaults similar
+	to example().
+
+    o	library() no longer checks for the packages merged during the
+	re-organization of 1.9.0.
+
+    o	New function poisson.test() in package 'stats' for exact test
+	of rates and rate ratios.
+
+    o	New function isdebugged() indicates whether its argument has the
+	debug flag set or not.
+
+    o	ls.str() [via print method] now also works when some objects in
+	the environment are missing().
+
+    o	Subsetting S4-objects (without an explicit "[" method) no longer
+	preserves the class in cases like setClass("C",
+	contains="list"); This reverts a "bug fix" activated in	 R 2.8.0.
+
+    o	.packages() and .find.packages() no longer check the package
+	info for installed packages with dumped metadata, since this
+	was checked when the package was installed.  .packages() only
+	considers such packages to be validly installed (any others
+	were installed in a long-obsolete version of R).  Both changes
+	speed up searches in libraries of thousands of packages.
+
+    o	boxplot() uses butt line endings for its median line
+	(suggestion of Uwe Ligges, PR#13553).
+
+    o	S4 objects passed to a non-default S3 method will be converted
+	to a valid S3 object with the S3 class.	 See the section on
+	inheriting from non-S4 classes in ?Classes.
+
+    o	A new class "nonStructure" has been defined; classes that extend
+	a vector class but that should lose their slots under Math or
+	Ops functions should extend this class.	 See class?nonStructure.
+
+    o	axis.POSIXct() now plots in the timezone marked for its inputs
+	(if any) rather than in the local time.	 The latter was a
+	deliberate choice, but is easy to select by removing the
+	'tzone' attribute.  (Suggestion of Dan Kelley.)
+
+    o	A new function classesToAM() returns an adjacency matrix
+	representing the inheritance of the classes specified.	Allows
+	better human examination of the patterns, e.g. by using the
+	matrix as input to one of the graph packages (see the
+	documentation).
+
+    o	X11options(antialias = "none") now works, for consistency with
+	X11().
+
+    o	sprintf() now allows zero-length arguments (with a zero-length
+	result).  (Suggestion of Bill Dunlap.)
+
+    o	unlink() is now able to remove broken symbolic links on
+	Unix-alikes.
+
+    o	New selectSuperClasses() utility in package 'methods'.
+
+    o	HoltWinters() now allows parameters alpha and beta to be fixed
+	at 0 and hence beta = FALSE and gamma = FALSE are used to
+	specify restricted models.
+
+    o	A new function smoothScatter() has been added to package
+	'graphics'.  It is appropriate for very dense scatter plots
+	and uses density estimation and color to reflect density of
+	plotting.
+
+
+DEPRECATED & DEFUNCT
+
+    o	allGenerics() is defunct.
+
+    o	Use of allocVector(CHARSXP ...) is defunct and gives an error.
+
+    o	The compatibility define for graphics structure NewDevDesc in
+	GraphicsDevice.h has been removed.
+
+    o	Support for versioned installs (R CMD INSTALL --with-package-versions
+	and install.packages(installWithVers = TRUE)) has been removed.
+	Packages installed with versioned names will be ignored.
+
+    o	The numeric and power(0.5) forms of argument to make.link()
+	which were deprecated in 2.4.0 are now defunct: use power()
+	directly.
+
+    o	Conversion to Sd and Ssgm by R CMD Rdconv is now defunct.
+
+    o	Support for R --gui=gnome is now defunct (and package
+	gnomeGUI has been withdrwan as it used a long-obsolete version
+	of GNOME).
+
+    o	R CMD SHLIB on Windows will call the first target (not 'all') in
+	Makevars[.win] in future versions: so make 'all' the first
+	target if you have any.
+
+
+UTILITIES
+
+    o	R CMD build now also uses a Makevars[.win] file for cleaning
+	up src/.
+
+    o	R CMD Rd2dvi and R CMD check are now able to cope with Cyrillic
+	characters in UTF-8 if environment variable _R_CYRILLIC_TEX_
+	is set to a non-empty value and the latex system has suitable
+	fonts (thanks to a hint from Alexey Shipunov).
+
+    o	New function rtags() in package 'utils' that provides etags-like
+	indexing capabilities for R code files.
+
+	New front-end script R CMD rtags provides an interface to the
+	rtags() function (see R CMD rtags --help for details).
+
+    o	New environment variable R_TEXI2DVICMD to hold the path (if any)
+	to 'texi2dvi' found at configure time: this now provides the
+	default to option("texi2dvi").
+
+    o	massage-Examples.pl has been replaced by the R function
+	tools:::massageExamples().
+
+    o	R CMD REMOVE now uses remove.packages() and hence removes all
+	members of a bundle.
+
+    o	R CMD SHLIB is now an R script and has a new option -n aka
+	--dry-run to show what commands would be run.  The same code
+	is used on Unix and Windows.
+
+    o	R CMD Rdconv has new options --package and --version to set the
+	corresponding fields in HTML conversion.
+
+    o	R CMD check runs the package tests with a custom startup file,
+	currently containing 'options(useFancyQuotes = FALSE)'.
+
+	Those tests are run by an R script: using a tests/Makefile
+	(undocumented) no longer works.
+
+    o	R CMD config now knows about DYLIB_EXT and SHLIB_EXT, for use
+	in configure files.
+
+    o	R CMD BATCH has a new option --no-timing to suppress printing
+	out the session timing.
+
+    o	R CMD Rd2dvi can now work on an installed package.
+
+    o	R CMD check no longer loads package 'tcltk' when checking for
+	code problems, so more problems may be reported.
+
+    o	For R CMD SHLIB on Windows the default 'all' target only makes
+	the DLL, and no longer call targets 'before' and 'after'.
+
+
+Rd CONVERSION
+
+    o	Rd files have an optional \Rdversion{} section, which if
+	missing defaults to 1.0.  There is support for version 1.1, a
+	slightly modified version with the following changes:
+
+	- The warnings for \code{} inside example are suppressed.
+
+	- Whitespace between arguments in \item and \section is
+	  accepted without a warning (see below).
+
+	- $ is treated literally in text, even for latex conversions.
+
+	- \ is only an escape before % { } \ .
+
+	- \R, \dots and \ldots can be followed by {}, and it is
+	  recommended that they when not followed by whitespace.
+
+	- The obsolete interpretation of \Alpha etc is no longer done.
+
+    o	Rd conversion now handles ^ ~ < > | correctly in non-code
+	environments (such as \samp), and # and _ even in latex
+	conversion (but $ still needs to be escaped in version 1.0).
+
+    o	Whitespace between first and second arguments is now accepted
+	for \item and \section, e.g.  \item{foo} {some value}.
+	Previously arguments after whitespace were silently ignored,
+	and a warning is given for version 1.0 files.
+
+    o	The Rd files created by prompt() and friends are declared to be
+	version 1.1.
+
+    o	\alias now supports the escaping of { as well as of %, and this
+	is recommended.
+
+    o	parse_Rd(), an experimental parser for Rd files, and Rd2txt(),
+	Rd2HTML(), Rd2latex() and Rd2ex(), even more experimental
+	converters, have been added to package 'tools'.
+
+    o	R CMD check runs the package's Rd files through parse_Rd() for a
+	stricter syntax check.	This can be suppressed by setting
+	_R_CHECK_RD_PARSE_ to FALSE.
+
+    o	Added markup \verb, which displays like \code, but parses as
+	verbatim text.	Currently only supported by parse_Rd() and
+	Rd2HTML().
+
+
+INSTALLATION
+
+    o	The shell used by the 'R' script and other shell scripts
+	intended to be run directly can be specified at installation
+	time by setting the (precious) configure variable R_SHELL.
+
+    o	libtool has been updated to 2.2.6a.
+
+    o	--with-ICU is now the default: this means that ICU will be
+	used for collation on Mac OS >= 10.4.
+
+    o	make install-tests can be used to install the test files,
+	to allowed an installed version of R to be tested -- see the
+	R-admin manual.	 This is also supported by the function
+	testInstalledPackages() in package 'tools'.
+
+    o	'make install' using a parallel make should now work.
+
+    o	'make check' now always re-makes and re-runs the package
+	examples, which are now collated in the locale's order (and
+	not ASCII order).
+
+    o	configure will now set the default optimization level for
+	gfortran on x86_64 Linux to -O as -O2 has caused problems with
+	gfortran 4.3.x.
+
+
+PACKAGE INSTALLATION
+
+    o	install.packages() is able to infer that repos=NULL was
+	intended from the extension on the file name specified as 'pkgs'.
+
+	On Mac OS X it now supports local binary packages with .tar.gz
+	extension. Nonetheless .tgz remains the preferred extension
+	and is expected in repositories.
+
+	It now checks >= version dependencies for dependent packages,
+	and so will install a newer version of a dependency if needed
+	and available on the repositories.
+
+	The library being installed into is considered when looking
+	for installed packages if it is not already part of
+	.libPaths() (as INSTALL already does).
+
+	It has a new argument 'Ncpus' to support parallel installs of
+	source packages.
+
+    o	HTML links will be resolved first to the standard packages: this
+	avoids other installed packages diverting help on e.g. qr()
+	and plot() to themselves. The HTML files are only "touched" if
+	they have changed.
+
+    o	A check is done that the R files can be parsed: this both
+	prevents a broken package without lazy-loading from being
+	installed and gives better diagnostics.
+
+    o	install.packages() gains a 'configure.vars' argument, and both
+	this and 'configure.args' get their defaults from options().
+
+    o	There is a unified R script for INSTALL on both Unix-alike and
+	Windows that takes option names used by either in the past.
+
+	It adds --no-multiarch to disable building other than the main
+	sub-architecture, and allows multiple instances of
+	--configure-args and --configure-vars (which will be
+	concatenated).
+
+	New option --install-tests will install any package-specific
+	tests.
+
+    o	Times in the Packaged: and Built: fields are now recorded in
+	UTC, and in most cases in ISO 8601 format.
+
+
+C-LEVEL FACILITIES
+
+    o	A helper function, asCharacterFactor, converts from factors to
+	character vectors.
+
+
+BUG FIXES
+
+    o	The postscript() output for setting text is faster and smaller.
+
+    o	Subsetting a data frame with duplicate column names without
+	selecting columns (e.g. z[i,]) no longer makes the column
+	names unique.  This was never documented, but some packages
+	have assumed it.
+
+    o	data.frame() no longer ignores row names on objects if the
+	first name is empty.  (PR#13230: this has been the behaviour
+	for a long time, but apparently undocumented.)
+
+    o	deparse(control="S_compatible") now never uses backticks.
+
+    o	X-spline drawing is improved for cases where the control
+	points are located well off the edges of the device.
+
+	The symptom of this problem is the error "reached MAXNUMPTS".
+
+    o	exists() with mode= "any" will no longer run an active binding's
+	function.
+
+    o	format(c(1 + 2i, NA)) no longer has extraneous space in "  NA".
+
+    o	mood.test() could fail in 2.8.x on large samples because of
+	integer overflow.
+
+    o	heatmap() without a dendrogram could fail. (PR#13512)
+
+    o	Checks for missing values will no longer occasionally result in
+	an infinite loop or stack overflow error, depending on the
+	compiler.  Active bindings are now always considered to be
+	non-missing.
+
+    o	Rd conversion was not accepting \p (as in \pkg} or (when using
+	Perl 5.10.x) \k (as in \kbd) in any preamble text in a
+	\value{} section, since those are nowadays interpreted by
+	Perl.  (PR#13575)
+
+    o	if(as.raw(1)) TRUE  now works as expected. (PR#13630)
+	Also,  c(as.raw(12), TRUE) or c(raw(3), pi) do.
+
+    o	duplicated(<data frame>, incomparables = NA) now gives the
+	intended error message. (PR#13632)
+
+    o	name handling of as.data.frame() has been sanitized somewhat
+
+    o	Evaluating an assignment expression with a string on the left
+	hand side no longer destructively changes the string to a symbol
+	in the expression.
+
+
+
+	**************************************************
+	*						 *
+	*	       2.8 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 2.8.1 patched
+
+
+NEW FEATURES
+
+    o	R CMD check has a new argument '--install-args' to pass
+	command-line arguments to INSTALL.
+	E.g. --install-args="--docs=normal" on Windows if the HTML
+	Help Workshop is not installed.
+
+    o	R-Forge has been added to R_HOME/etc/repositories, so it will
+	be available interactively in setRepositories().
+
+    o	The compiled loess() code has been updated to the current
+	version of dloess from Netlib.	This includes patches from Ben
+	Tyner which correct some errors when degree = 0 and hence
+	solve PR#13570.
+
+
+INSTALLATION
+
+    o	--with-ICU is now supported (and recommended) on Mac OS X using
+	Apple's supplied port.	Note however that the locale category
+	LC_COLLATE cannot be changed whilst R is running on Apple's
+	version of ICU.
+
+	Configure supports a wider range of ICU versions on other
+	OSes: version 3.0 should suffice, and 3.2, 3.8 and 4.0 have
+	been tested.
+
+
+BUG FIXES
+
+    o	grid-based plots no longer reset the base text size to the
+	default 96dpi in cairo-based bitmap devices.
+
+    o	Rd conversion was incorrectly parsing \\\* and \\\{ (and other
+	cases with an odd number of backslashes greater than one).
+
+	Text conversion of \code{\ etc} was incorrect (a single
+	backslash stands for itself inside \code).
+
+	\code{} inside \examples{} is now fixed up (but the warning
+	remains, since it will be handled incorrectly in earlier
+	versions of R).
+
+    o	as.matrix.data.frame() could fail if coercion changed the
+	dimension of one of the columns (as e.g. the coercion of a "Surv"
+	object to a character vector does).
+
+    o	When extracting part of a complex list structure using [[]]
+	with a vector index, the extracted part was not marked for
+	duplication on change. (PR#13411)
+
+    o	Assigning an additional element to a pairlist/language element
+	by x[["foo"]] <- value did not name the additional element.
+
+    o	.Call() and .External() were not accepting "NativeSymbolInfo"
+	and "NativeSymbol" objects as claimed.	(Patch from Olaf
+	Mersmann.)
+
+    o	codoc() was missing some default value mismatches with
+	unescaped backslashes, e.g. final="\\" needs to be written as
+	final="\\\\" in the Rd file.
+
+	The reports on values now give strings in the original quoted
+	format (with \ and " escaped).
+
+    o	The $<- method for pairlists (including language objects)
+	failed to duplicate if NAMED was 2.
+
+    o	read.table(blank.lines.skip = FALSE) gave a final empty row on
+	files with less than 5 lines (PR#13433).
+
+    o	Workaround for a bug in some versions of iconv that was seen
+	with output lines of more than 10,000 bytes and with
+	re-encoding requested on an output connection.
+
+    o	The fullrefman.{dvi,pdf} duplicated part I in part II (at
+	least on some systems).
+
+    o	cbind() could crash with a zero-length input and a list result.
+
+    o	pdf(colormodel = "gray") was setting the stroke colour for fills.
+
+    o	file.show() with multiple files would only show multiple
+	copies of the first one. (PR#13469)
+
+    o	formatC(mode = "character") was documented to work, but
+	did not. (PR#13474)
+
+    o	besselI(x,.., expon.scaled=TRUE) now gives accurate results for
+	x < 1e5 whereas it previously underflowed for x >~= 1500.
+	Further, besselJ(x,..) also computes up to 1e5 (instead of 1e4).
+
+    o	str() was incorrectly warning about its option component
+	'formatNum' set by strOptions().
+
+    o	nls(algorithm = "port") did not accept the [factor] notation.
+	(PR#13650)
+
+    o	The relational (aka "comparison") operators are now binary, also in
+	a lower level sense, and an expression as  "<"(1)  is now erronous.
+
+    o	The 'offset' argument for lm() and glm() is not longer
+	documented to be allowed to be of length 1: this has not been
+	true for a long time.
+
+    o	format.info(x) is now also correct when x has no finite content.
+
+    o	predict.lm() now works correctly when the fit had more than
+	one offset (possibly specified both in the formula and as an
+	argument).  This function is called by predict.glm(), so the
+	same isses are corrected there.
+
+    o	besselI(x, nu) with nu a negative integer (a singular case) is now
+	correct. (PR#13556)
+
+
+
+		CHANGES IN R VERSION 2.8.1
+
+
+NEW FEATURES
+
+    o	sum() now has a method for "difftime" objects (via the Summary
+	group).
+
+	max(), min() and range() applied to "difftime" object(s) now
+	return a result in the common units of the objects, if there
+	is one.
+
+    o	installed.packages() is now tolerant of malformed DESCRIPTION
+	files in installed packages (it ignores them, with a warning).
+
+    o	qt() now works for 0 < df < 1.
+
+    o	For consistency with matrix() and array(), dimnames(x) <-
+	list() removes the dimnames (as assigning NULL would do).
+	It was previously an error.
+
+    o	nlminb() copies names from 'start' to the parameter vector
+	used (for consistency with optim()).
+
+    o	legend() gains a 'title.col' argument: the title colour was
+	previously set from the first element of 'text.col' (which
+	remains the default).
+
+    o	In an Rd file, use of top-level \itemize{} inside a \value{}
+	block is unnecessary and almost always gave a faulty
+	conversion.  Most cases are now detected and corrected, but
+	give a warning as such code will not work correctly in earlier
+	versins of R.
+
+	Also, use of \code{} inside a code block such as \examples{}
+	will give a erroneous conversion that is now detected and
+	warned against.
+
+    o	Autoflushing of stdout is turned on when Rd processing, so
+	warnings/error are likely to appear in the right place in
+	redirected output (such as that from R CMD check).
+
+
+UTILITIES
+
+    o	R_PDFLATEXCMD is added to the environment variables set by
+	'R CMD' and is used by R CMD Rd2dvi.
+
+	R_LATEXCMD, R_PDFLATEXCMD, R_MAKEINDEXCMD and R_DVIPSCMD
+	default to 'latex', 'pdflatex', 'makeindex' and 'dvips'
+	respectively if no suitable executable was found at configure
+	time (since they might well be available at run time,
+	particularly for binary installations of R).  This affects
+	R CMD Rd2dvi and help(offline=TRUE).
+
+	R CMD Rd2dvi now gives an explicit error message if latex (or
+	pdflatex) fails.
+
+	R CMD Rd2dvi gains a --no-index argument: processing some
+	special characters on PDF indices gave errors which used to be
+	ignored.
+
+
+DEPRECATED & DEFUNCT
+
+    o	R CMD INSTALL --with-package-versions is deprecated (and
+	support has always been incomplete on Windows).
+
+	So is install.packages(installWithVers = TRUE).
+
+    o	Rd conversion to Sd and Ssgm is now deprecated as we no longer
+	have any means to check the results (and Sd is long obsolete).
+
+
+BUG FIXES
+
+    o	add1.glm() no longer warns if applied to a binomial glm with a
+	factor response.
+
+    o	aggregate.data.frame() now does something sensible with a
+	zero-column 'x' rather than failing with an obscure error
+	message.  It gives an explicit error message if called with a
+	zero-row 'x'.
+
+    o	integrate() now accepts integer results from f(): as documented,
+	but only double was accepted.
+
+    o	contrib.url() produced an incorrect URL for the type
+	"mac.binary".
+
+    o	pairwise.wilcox.test() did not pass on the 'paired' argument
+	(caught by Matthias Kohl)
+
+    o	bmp(), jpeg(), and png() on unix with type="cairo" would segfault
+	on closure if the output file could not be opened.
+
+    o	tiff() on unix would not write the output file for the first page
+	when multiple pages were plotted.
+
+    o	str(1 + structure(1, class = "test")) no longer recurses indefinitely.
+
+    o	pf(x, .., ncp, lower.tail=FALSE, log=TRUE) is much more accurate
+	for large x now.
+
+    o	dev2bitmap() failed in 2.8.0 if 'taa' and 'gaa' were both NA.
+
+    o	Under rare circumstances equality tests for character strings
+	could fail to report equality in 2.8.0 in the same way as
+	2.7.2.	(This needed a current encoding of Latin-1 or UTF-8,
+	one string whose encoding was marked as that encoding and one
+	that was marked as "unknown".  In that circumstance the two
+	strings are not actually known to be equal, but earlier
+	versions of R assumed that "unknown" meant the current
+	encoding, and this is done once again.)
+
+    o	R CMD config could echo messages from GNU make if called from
+	within a Makefile (as e.g. package Rcpp did), especially from
+	within a parallel make run.
+
+    o	Rounding error could affect window(extend=TRUE) when applied
+	to monthly series.  (PR#13272)
+
+    o	Offline help on a Unix-alike now works even if options
+	"latexcmd" and "dvipscmd" contain spaces
+	(e.g. "dvips -Pmy_printer").
+
+	Informative error messages are given if running latex or dvips
+	fail.
+
+    o	Using plot.lm() on a "glm" object since 2.7.1 with which=5
+	caused the Pearson rather than deviance residuals to be used
+	in which=2 or 3 (including in the default case).  (Thanks to
+	Effie Greathouse and Greg Snow.)
+
+	plot.lm() did not report on omitting observations with
+	leverage one if they also had residual exactly zero.  This was
+	seen in example(occupationalStatus).
+
+    o	deparse(nlines=) no longer pads short results with blank
+	lines. (PR#13299)
+
+    o	legend(xpd=) now restores 'xpd' correctly.  (PR#12756)
+
+    o	The "formula" method for lines() now works if 'subset' is
+	supplied and no 'data' argument (as that for points() did).
+
+    o	Sweave() now takes the defaults for the options 'pdf.version'
+	and 'pdf.encoding' of its RweaveLatex driver from pdf.options().
+
+    o	prettyNum(x, drop0trailing=TRUE) treated "1.1e20" as "1.1e2"
+	and hence str() did as well, in 2.8.0 only.
+
+    o	dchisq(x, df, ncp) no longer hangs for large x and ncp > 0,
+	and is more accurate in some cases (PR#13309).
+
+    o	installed.packages(lib.loc = D, priority="NA") now also works when
+	D contains a single package.  (PR#13332)
+
+    o	legend(...., merge=TRUE) now warns and has no effect in the
+	case where no line segments are drawn.	(PR#13340)
+
+    o	transform.data.frame() works better when two or more columns are
+	added.
+
+    o	Deparsing argument lists with non-syntactic names (e.g. that for
+	transform()) now uses backticks rather than double quotes to
+	produce syntactically valid output.
+
+    o	matrix() failed to check for 0-length 'dimnames': it now
+	treats them as NULL (as array did).  (PR#13361)
+
+    o	0^NA is now NA, not Inf, consistent with x^NA, x != 1.
+
+    o	anova.mlm() did not work if T had only one row (including
+	e.g. the case M = ~1).
+
+    o	axis.POSIXct() mislabelled for some time ranges of a few hours
+	(reported by Martin Becker).
+
+    o	mantelhaen.test() with 'exact=FALSE' was not respecting
+	'alternative'. It now does one-sided tests similarly to
+	prop.test().
+
+    o	anova.mlm() had trouble with some designs where near-zero rows of
+	the tranformation matrix were not removed (caught by Nils Skutara).
+
+    o	Rd conversion was handling expressions like
+	'\item{foo}{see \eqn{x}}' (with one argument to \eqn
+	immediately followed by a right brace) incorrectly, sometimes
+	giving a spurious warning about 'missing text'.
+
+    o	R CMD INSTALL used the C locale to install the DESCRIPTION
+	file, and so escaped non-ASCII characters in packages with a
+	declared encoding of "latin1" or "UTF-8".  (However, the
+	installed DESCRIPTION file was rarely used since the dumped
+	metadata are available.)
+
+    o	xspline() now respects inline par settings.
+
+	It and grid.xspline() now handle the special case of only two
+	control points, and splines with control points that are
+	located well outside the device (e.g., a zoomed view of a
+	larger curve).	(Both cases were giving the error "reached
+	MAXNUMPTS").
+
+    o	In setClass("C", contains="list"); x <- new("C", 1:3), x[2:3] now
+	remains of class "C".  So does rep(x, 2) or rep.int(x, 3).
+	[NOTE: This "feature" has been reverted for R 2.9.0, see above]
+
+    o	median.default() now also works for "numeric"-like vectors.
+
+    o	The pdf() device can now handle the case where an image uses a
+	very large number of colours with different levels of
+	semi-transparency (alpha-values).  It used to segfault.
+	(Also PR#13264.)
+
+    o	window() failed to apply a fuzz to 'start' or 'end' and so
+	sometimes warned incorrectly for time series with 'freq' not a
+	power of two (e.g. 12 or 24).
+
+    o	unique.default() now preserves the "tzone" attribute on
+	"POSIXct" objects.
+
+    o	If all the packages had dependency lists of equal lengths,
+	occasionally install.packages() would compute an incorrect
+	sort order.
+
+    o	col(x, as.factor=TRUE) and row(x, as.factor=TRUE) would fail
+	if x had no column (row) names.	 It was documented
+	incorrectly, and now returns a matrix factor.
+
+    o	setRepositories() failed if "pkgType" was set to
+	"mac.binary.leopard".
+
+    o	formals<-() changed the body of the function if this was a
+	length-one list.
+
+    o	body<-() failed if the function had no arguments.  It now
+	warns if discarding elements from a 'value' of type "expression".
+
+    o	qr.coef() failed in the complex case for non-square systems.
+	(PR#13305)
+
+    o	plot.dendrogram(horizontal=TRUE) did not not plot 'edgetext'
+	at the correct locations.  (PR#13313)
+
+    o	The starting point for plot.acf(ci.type="ma") was lag 0 when it
+	should have been lag 1.	 (PR#13071)
+
+    o	There was an obscure bug with srcrefs, which could put the
+	parser into a condition giving "Error: bad value" on any input
+
+
+
+		CHANGES IN R VERSION 2.8.0
+
+
+SIGNIFICANT USER-VISIBLE CHANGES
+
+    o	var(), cov(), cor(), sd() etc now by default (when 'use' is not
+	specified) return NA in many cases where they signalled an
+	error before.
+
+
+NEW FEATURES
+
+    o	abbreviate() gains an optional argument 'strict' allowing cheap
+	and fast strict abbrevation.
+
+    o	The "lm" methods of add1(), anova() and drop1() warn if they are
+	mis-used on an essentially exact fit.
+
+    o	as.array() is now generic, gains a '...' argument.
+
+    o	New function as.hexmode() for converting integers in hex format.
+	format.hexmode() and as.character.hexmode() gain an 'upper.case'
+	argument.
+
+    o	bitmap() and dev2bitmap() gain support for anti-aliasing.
+	The default type has been changed to 'png16m', which supports
+	anti-aliasing.
+
+    o	Box.test() gains a 'fitdf' argument to adjust the degrees of
+	freedom if applied to residuals.
+
+    o	browseURL() has a new argument 'encodeIfNeeded' to use
+	URLencode() in cases where it seems likely that would be
+	helpful.  (Unfortunately, those are hard to guess.)
+
+    o	by() gains a 'simplify' argument, passed to tapply().
+
+    o	capabilities() gains a new argument "tiff" to report if tiff()
+	is operational.
+
+    o	chol2inv() now treats <numeric(1)> as a [1 x 1]-matrix.
+
+    o	cov() and cor() have the option 'use = "everything"' as default,
+	and so does var() with its default 'na.rm = FALSE'.  This
+	returns NA instead of signalling an error for NA observations.
+	Another new option is 'use = "na.or.complete"' which is the default
+	for var(*, na.rm=FALSE).
+	var(double(0), na.rm= L) now returns NA instead of signalling an error,
+	for both L = TRUE or FALSE, as one consequence of these changes.
+
+    o	data.matrix() now tries harder to convert non-numeric columns,
+	via as.numeric() or as(, "numeric").
+
+    o	dev.interactive() is able to recognize the standard screen
+	devices if getOption("device") is a function (as well as by name).
+
+    o	dev.new() gains a '...' argument which can be used to pass
+	named arguments which will be used if appropriate to the
+	device selected.
+
+    o	dimnames(x) <- value extends 'value' if it a list and too
+	short, and 'x' is an array.  This allows constructions such as
+	dimnames(x)[[1]] <- 1:3 to work whether or not 'x' already has
+	dimnames.
+
+    o	format(), formatC() and prettyNum() gain a new argument
+	'drop0trailing' which can be used to suppress trailing "0"s.
+
+    o	format() now works for environments; also print(env) and str(env)
+	share the same code for environments.
+
+    o	It is now possible to create and open a text-mode gzfile()
+	connection by explicitly using e.g. open="rt".
+
+    o	New help.request() function for compiling an e-mail to R-help
+	according to "the rules". It is built on the new utility,
+	create.post() on which also bug.report() is based now; both
+	thanks to a contribution by Heather Turner.
+
+    o	help.search() now assumes that non-ASCII items are in latin1
+	if that makes sense (all known examples on CRAN are).
+
+    o	HoltWinters() and decompose() use a (statistically) more
+	efficient computation for seasonal fits (they used to waste
+	one period).
+
+    o	intToUtf8() and intToBits() now accept numeric vectors,
+	truncating them to integers.
+
+    o	is.unsorted() gains an argument 'strictly'.  It now works for
+	classed objects with a >= or > method (as incorrectly
+	documented earlier).
+
+    o	library() no longer warns about the masking objects that are
+	identical(.,.) to those they mask.
+
+    o	lockBinding(), unlockBinding(), lockEnvironment() and
+	makeActiveBinding() now all return invisibly (they always
+	return NULL).
+
+    o	mood.test() now behaves better in the presence of ties.
+
+    o	na.action() now works on fits of classes "lm", "glm", ....
+
+    o	optim(.., method="SANN", .., trace=TRUE) is now customizable via
+	the 'REPORT' control argument, thanks to code proposals by
+	Thomas Petzoldt.
+
+    o	The 'factory-fresh' defaults for options("device") have been
+	changed to refer to the devices as functions in the grDevices
+	namespace and not as names.  This makes it more likely that
+	the incorrect (since R 2.5.0) assumption in packages that
+	get(getOption("device"))() will work will catch users of those
+	packages.
+
+    o	pch=16 now has no border (for consistency with 15, 17, 18) and
+	hence is now different from pch=19.
+
+    o	pdf() has new arguments 'useDingbats' (set this to FALSE for use
+	with broken viewers) and 'colormodel'.	It now only references
+	the ZapfDingbats font if it is used (for small opaque circles).
+
+	The default PDF version is now 1.4, since viewers that do not
+	accept that are now rare.
+
+	Different viewers were rendering consecutive text() calls on a
+	pdf() device in different ways where translucency was
+	involved.  The PDF generated has been changed to force each
+	call to be rendered separately (which is the way xpdf or
+	ghostscript was rendering, but Acrobat was forming a
+	transparency group), which is consistent with other graphics
+	devices supporting semi-transparency.
+
+    o	plot.dendrogram() has new arguments (xlim, ylim) which allows
+	zooming into a hiearchical clustering dendrogram.
+
+    o	plot.ecdf() now defaults to pch=19 so as to better convey the
+	left-closed line segments.
+
+    o	plot.histogram() gains an 'ann' argument. (Wish from Ben Bolker.)
+
+    o	plot(<lm_obj>) now warns when it omits points with leverage one
+	from a plot.
+
+    o	Plotmath now recognizes 'aleph' and 'nabla' (the Adobe Symbol
+	'gradient' glyph) as symbol names.
+
+    o	polyroot() no longer has a maximum degree.
+
+    o	The alpha/alphamax argument of the 'nls' and 'mle' profile()
+	methods is used to compute confidence limits for univariate
+	t-statistics rather than a confidence region for all the
+	parameters (and not just those being profiled).
+
+    o	quantile.default() allows 'probs' to stray just beyond [0, 1],
+	to allow for computed values.
+
+    o	New functions rawConnection() and rawConnectionValue() allow
+	raw vectors to be treated as connections.
+
+    o	read.dcf() now consistently gives an error for malformed DCF.
+
+    o	read.fwf() no longer passes its default for 'as.is' to
+	read.table(): this allows the latter's default to be used.
+
+    o	readBin(), writeBin(), readChar() and writeChar() now open a
+	connection which was not already open in an appropriate binary
+	mode rather than the default mode.
+
+	readLines(), cat() and sink() now open a connection which was
+	not already open in an appropriate text mode rather than the
+	default mode.
+
+    o	readCitationFile() (and hence citation) now reads a package's
+	CITATION file in the package's declared encoding (if there is one).
+
+    o	The behaviour of readLines() for incomplete final lines on
+	binary-mode connections has been changed to be like blocking
+	rather than non-blocking text-mode connections.
+
+    o	A new reorder.character() method has been added.  This allows
+	use of 'reorder(x, ...)' as a shorthand for
+	'reorder(factor(x), ...)' when 'x' is a character vector.
+
+    o	round() now computes in long doubles where possible so the
+	results are more likely to be correct to representation error.
+
+    o	rug() now uses axis()'s new arguments from 2.7.2, hence no
+	longer draws an axis line.
+
+    o	save() (optionally, but by default) checks for the existence
+	of objects before opening the file/connection (wish of
+	PR#12543).
+
+    o	segments(), arrows() and rect() allow zero-length
+	coordinates.  (Wish of PR#11192)
+
+    o	set.seed(kind=NULL) now takes 'kind' from a saved seed if the
+	workspace has been restored or .Random.seed has been set in
+	some other way.	 Previously it took the 'currently used' value,
+	which was "default" unless random numbers had been used in
+	the current session.  Similarly for the values reported by
+	RNGkind().  (Related to PR#12567.)
+
+	set.seed() gains a 'normal.kind' argument.
+
+    o	setEPS() and setPS() gain '...' to allow other arguments to be
+	passed to ps.options(), including overriding 'width' and 'height'.
+
+    o	setTimeLimit() function to set limits on the CPU
+	and/or elapsed time for each top-level computation, and
+	setSessionLimit() to set limits for the rest of the session.
+
+    o	splinefun() has a new method = "monoH.FC" for monotone Hermite
+	spline interpolation.
+
+    o	sprintf() optionally supports the %a/%A notation of C99 (if the
+	platform does, including under Windows).
+
+    o	str()'s default method gains a 'formatNum' function argument which
+	is used for formatting numeric vectors.	 Note that this is very
+	slightly not backward compatible.
+
+    o	The summary() method for class "ecdf" now uses a print()
+	method rather than printing directly.
+
+    o	summary.manova() uses a stabler computation of the test
+	statistics, and gains a 'tol' argument to allow highly
+	correlated responses to be explored (with probable loss of
+	accuracy).  Similar changes have been made to anova.mlm() and
+	anova.mlmlist().
+
+    o	Sweave() now writes concordance information inside a
+	\Sconcordance LaTeX macro, which allows it to be inserted into
+	PDF output.
+
+    o	system.time() now uses lazy evaluation rather than
+	eval/substitute, which results in more natural scoping. (PR#11169)
+
+    o	In table(), 'exclude=NULL' now does something also for factor
+	arguments. A new 'useNA' argument allows you to control
+	whether to add NA levels unconditionally or only when present
+	in data. A new convenience function addNA() gives similar
+	functionality by adding NA levels to individual factors.
+
+    o	unlink() tries the literal pattern if it does not match with
+	wildcards interpreted -- this helps with e.g. unlink("a[b")
+	which previously needed to be unlink("a\\[b").
+
+    o	update.packages() gains an argument 'oldPkgs', where
+	new.packages() and old.packages() get 'instPkgs'.  These allow
+	consideration of only subsets of packages instead of all
+	installed ones.
+
+    o	which(b) is somewhat faster now, notably for named vectors, thanks
+	to a suggestion by Henrik Bengtsson.
+
+    o	New generic function xtfrm() as an auxiliary helper for
+	sort(), order() and rank().  This should return a numeric
+	vector that sorts in the same way as its input.	 The default
+	method supports any class with ==, > and is.na() methods but
+	specific methods can be much faster.
+
+	As a side-effect, rank() will now work better on classed
+	objects, although possibly rather slowly.
+
+    o	X11() and capabilities("X11") now catch some X11 I/O errors that
+	previously terminated R.  These were rare and have only be
+	seen with a misconfigured X11 setup on some versions of X11.
+
+
+    o	The handling of nuls in character strings has been changed --
+	they are no longer allowed, and attempting to create such a
+	string now gives a truncation warning (unless
+	options("warnEscapes") is false).
+
+    o	The user environment and profile files can now be specified via
+	environment variables 'R_ENVIRON_USER' and 'R_PROFILE_USER',
+	respectively.
+
+    o	?pkg::topic and ?pkg:::topic now find help on 'topic' from
+	package 'pkg' (and not help on :: or :::).
+
+    o	??topic now does help.search("topic"); variations such as
+	??pkg::topic or field??topic are also supported.
+
+    o	There is support for using ICU (International Components for
+	Unicode) for collation, enabled by configure option --with-ICU
+	on a Unix-alike and by a setting in MkRules on Windows.
+	Function icuSetCollate() allows the collation rules (including
+	the locale) to be tuned.
+
+    o	If S4 method dispatch is on and S4 objects are found as
+	attributes, show() rather than print() is used to print the
+	S4 attributes.
+
+    o	Starting package tcltk without access to Tk (e.g. no available
+	display) is now a warning rather than an error, as Tcl
+	will still be usable.  (On most platforms it was possible to
+	inhibit Tk by not having DISPLAY set, but not on Windows nor
+	Mac OS X builds with --with-aqua.)
+
+    o	Using $ on a non-subsettable object (such as a function) is
+	now an error (rather than returning NULL).
+
+    o	Hexadecimal numerical constants (such as 0xab.cdp+12) may now
+	contain a decimal point.
+
+    o	PCRE has been updated to version 7.8 (mainly bug fixes).
+
+
+NEW FEATURES IN PACKAGE 'methods'
+
+    o	S3 classes that are registered by a call to setOldClass() now
+	have the S3 class as a special slot, and therefore so do
+	any S4 classes that contain them.  This mechanism is used to
+	support S4 classes that extend S3 classes, to the extent
+	possible.  See ?Classes, ?setOldClass, and ?S3Class.
+
+	The treatment of special pseudo-classes "matrix", "array", and
+	"ts" as S4 classes has also been modified to be more
+	consistent and, within limitations imposed by special
+	treatment of these objects in the base code, to allow other
+	classes to contain them.  See class?ts.
+
+	A general feature added to implement "ts" and also
+	"data.frame" as S4 classes is that an S4 class definition can
+	be supplied to setOldClass() when the S3 class has known
+	attributes of known class.
+
+	setOldClass() now saves all the S3 inheritance, allowing the
+	calls to be built up in stages, rather than including all the
+	S3 classes in each call.  Also allows as(x,"S3") to generate
+	valid S3 inheritance from the stored definition.  See ?S3.
+
+    o	S4 methods may now be defined corresponding to "...", by
+	creating a generic function that has "..." as its signature.
+	A method will be selected and called if all the arguments
+	matching "..." are from this class or a subclass.  See ?dotsMethods.
+
+    o	New functions S3Part() and S3Class() provide access to the
+	corresponding S3 object and class for S4 classes that extend
+	either an S3 class or a basic R object type.
+
+    o	show(<class definition>) now also shows the class name.
+
+
+INSTALLATION
+
+    o	If sub-architectures are used, a copy of Rscript is installed
+	in ${R_HOME}/bin/exec${R_ARCH} (since that in ${R_HOME}/bin
+	and /usr/bin might be overwritten in a subsequent installation).
+
+
+PACKAGE INSTALLATION
+
+    o	LazyLoad: yes is now the default, so packages wanting to avoid
+	lazy loading must set 'LazyLoad: no' (or an equivalent value) in
+	the DESCRIPTION file.
+
+    o	R CMD INSTALL will now fail if it finds a non-executable
+	'configure' script in the package -- this usually indicates a
+	file system with insufficient permissions.  If a
+	non-executable 'cleanup' script is found and either
+	--clean or --preclean is used, a warning is given.
+
+
+DEPRECATED & DEFUNCT
+
+    o	Use in packages of the graphics headers Rdevices.h and
+	Rgraphics.h is defunct: they are no longer installed.
+
+    o	options("par.ask.default") is defunct in favour of
+	"device.ask.default".
+
+    o	The 'device-independent' family "symbol" is defunct: use
+	font=5 (base) or fontface=5 (grid) instead.
+
+    o	gammaCody() is defunct.
+
+    o	par("gamma") is defunct.
+
+    o	'methods' package functions getAccess(), getAllMethods(),
+	getClassName(), getClassPackage(), getExtends(),
+	getProperties(), getPrototype(), getSubclasses, getVirtual(),
+	mlistMetaName(), removeMethodsObject() and seemsS4Object() are
+	defunct.
+
+    o	Use of a non-integer .Random.seed is now an error.  (R itself
+	has never generated such values, but user code has, and
+	R >= 2.6.0 has given a warning.)
+
+    o	methods::allGenerics() is deprecated.
+
+    o	In package installation, SaveImage: yes is now ignored, and
+	any use of the field will give a warning.
+
+    o	unserialize() no longer accepts character strings as input.
+
+    o	The C macro 'allocString' has been removed -- use 'mkChar' and
+	variants.
+
+    o	Use of allocVector(CHARSXP ...) is deprecated and gives a warning.
+
+
+UTILITIES
+
+    o	The default for 'stylepath' in Sweave's (default) RweaveLatex
+	driver is now FALSE rather than TRUE if
+	SWEAVE_STYLEPATH_DEFAULT is unset : see ?RweaveLatex.
+	To support this, tools::texi2dvi adds the R 'texmf' directory
+	to the input search path.
+
+    o	R CMD Rd2dvi now previews PDF output (as was documented) if
+	R_PDFVIEWER is set (as it will normally be on a Unix-alike but
+	not on Windows, where the file association is used by default).
+
+    o	R CMD check checks for binary executable files (which should not
+	appear in a source package), using a suitable 'file' if
+	available, else by name.
+
+    o	R CMD check now also uses codetools' checks on the body of S4
+	methods.
+
+
+C-LEVEL FACILITIES
+
+    o	R_ReadConsole will now be called with a buffer size of 4096
+	bytes (rather than 1024): maintainers of alternative
+	front-ends should check that they do not have a smaller limit.
+
+    o	Graphics structure NewDevDesc has been renamed to DevDesc.
+	For now there is a compatibility define in GraphicsDevice.h,
+	but it will be removed in R 2.9.0.
+
+    o	PROTECT and UNPROTECT macros now work even with R_NO_REMAP.
+
+
+BUG FIXES
+
+    o	@ now gives an error (and not just a warning) if it is being
+	applied to a non-S4 object.
+
+    o	R CMD appends (not prepends) R's texmf path to TEXINPUTS.
+
+    o	Objects generated by new() from S4 classes should now all
+	satisfy isS4(object).  Previously, prototypes not of object
+	type S4 would not be S4 objects.  new() applied to basic,
+	non-S4 classes still will (and should) return non-S4 objects.
+
+    o	Functions writing to connections such as writeLines(),
+	writeBin(), writeChar(), save(), dput() and dump() now check
+	more carefully that the connections are opened for writing,
+	including connections that they open themselves.
+
+	Similarly functions which read such as readLines(), scan(),
+	dcf() and parse() check connections for being open for reading.
+
+    o	Equality comparison of factors with <NA> levels now works
+	correctly again.
+
+    o	Repainting of open X11 View() windows is now done whilst an
+	X11 dataentry window is in use.
+
+    o	Indexing of data frames with NA column names and a numeric or
+	logical column index works again even if columns with NA names
+	are selected.
+
+    o	on.exit() has been fixed to use lexical scope in determining
+	where to evaluate the exit action when the on.exit expression
+	appears in a function argument.
+
+    o	rank() now consistently returns a double result for
+	ties.method = "average" and an integer result otherwise.
+	Previously the storage mode depended on 'na.last' and if any
+	NAs were present.
+
+    o	The "lm" methods of add1(), and drop1() now also work on a model
+	fit with  na.action = na.exclude.
+
+    o	median(c(x = NA_real_)) no longer has spurious names().
+
+    o	isoreg(x, y) now returns the correct result also when x has ties,
+	in all cases.
+
+    o	What na.action() does is now correctly documented.
+
+    o	source() with echo=TRUE now behaves like ordinary automatic
+	printing, by using methods::show() for S4 objects.
+
+    o	Several bugs fixed in `?` with topics: it previously died trying
+	to construct some error messages; for S4 methods, class "ANY"
+	should be used for omitted arguments and default methods.
+
+    o	trace() should create missing traceable classes in the global
+	environment, not in baseenv() where other classes will not be
+	found.
+
+    o	Class inheritance using explicit coerce= methods via setIs()
+	failed	to coerce the argument in method dispatch.  With this
+	fixed, a mechanism was needed to prohibit such inheritance
+	when it would break the generic function (e.g.,
+	initialize). See ?setIs and ?setGeneric.
+
+    o	RSiteSearch() encodes its query (it seems this is occasionally
+	needed on some platforms, but encoding other fields is harmful).
+
+    o	'incomparables' in match() was looking up indices in the wrong
+	table.
+
+    o	write.dcf() did not escape "." according to Debian policy
+	(PR#12816).
+
+    o	col2rgb() sometimes opened a graphics device unnecessarily, and
+	col2rgb(NA) did not return a transparent color, as documented.
+
+    o	pdf(family="Japan") [and other CIDfonts] no longer seg.faults
+	when writing "western" text strings.
+
+    o	as.list() applied to an environment now forces promises and
+	returns values.
+
+    o	Promises capturing calls to sys.parent() and friends did not
+	work properly when evaluated via method dispatch for internal
+	S3 generics.
+
+    o	The default "pkgType" option for non-CRAN builds of R on Mac OS X
+	is now correctly "source" as documented.
+
+    o	The default R_LIBS_USER path in AQUA builds now matches the
+	Mac-specifc path used by the Mac GUI: ~/Library/R/x.y/library
+
+    o	splinefun() with natural splines incorrectly evaluated derivatives
+	to the left of the first knot. (PR#13132, fix thanks to
+	Berwin Turlach)
+
+    o	anova(glm(..., y=FALSE)) now works.  (PR#13098)
+
+    o	cut.Date(x, "weeks") could fail if x has only one unique value
+	which fell on a week boundary.	(PR#13159)
+
+
+
+
+	**************************************************
+	*						 *
+	*	       2.7 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 2.7.2 patched
+
+
+BUG FIXES
+
+    o	within(<dataframe>, { ... }) now also works when '...' removes
+	more than one column.
+
+    o	Attempting to open an X11() device on a non-existent display
+	when one is already open on another display now gives a
+	warning rather than terminating R via a fatal X11 error.
+	(PR#12628)
+
+    o	source() did not respect the setting of options("keep.source")
+	when setting source references.
+
+    o	seek() now clears the pushback on a text-mode connection if
+	used to set a new position.  (PR#12640)
+
+    o	quartz() would segfault if asked to create a file for bitmap
+	output which could not be created.  This applied also to the
+	type="quartz" versions of bmp(), jpeg(), png() and tiff().
+
+    o	dnbinom(0, size, mu = <large>) suffered from cancellation in 2.7.2
+	only.
+
+
+
+		CHANGES IN R VERSION 2.7.2
+
+
+NEW FEATURES
+
+    o	sprintf() returns elements of the result in UTF-8 when the
+	format or any character input has a corresponding element
+	declared as UTF-8.  Similarly for paste(), elements of the
+	result are in UTF-8 when any input to that element is declared
+	as UTF-8.
+
+    o	axis() has new arguments 'col.ticks' and 'lwd.ticks' to allow
+	the colour and line width of ticks to be set separately from
+	that of the line (e.g. to set one or the other to transparent
+	or zero width).
+
+    o	legend() has a new argument 'box.col' to set the colour of the
+	enclosing box.
+
+    o	legend() gains a 'xpd' argument to make it easier to place a
+	legend in the margins or outer margins.
+
+    o	stripchart() now passes '...' to title() (as well as to
+	plot.default() and axis()). (Wish of PR#12202)
+
+    o	help.search() has new argument 'searchEngine' to go directly
+	to the search form: this is needed by users of Firefox 3.0.x,
+	for x <= 6, to workaround a bug in interpreting the search
+	results pages.
+
+
+BUG FIXES
+
+    o	Plotmath computed the glyph metrics for the wrong character (and
+	perhaps for a non-existent one) if this was a single-byte
+	character with the top bit set.	 An example was	symbol("\300").
+
+    o	sink() and cat() could divert output to a non-writable connection.
+
+    o	phyper(x, 0,0,0) no longer hangs for huge x and gives 1 for x >= 0.
+	(PR#11813)
+
+    o	plnorm(x, ..., log.p=TRUE) is now correct for x <= 0. (PR#11867)
+
+    o	<data.frame>[, ch] gives an error (again!) when ch is a string not
+	exactly matching the column names, thanks to an oral bug report by
+	Matthew Dowle.
+
+    o	data.frame(x=1:2, y=3:4, row.names=c("a","NA"))[c(2,NA),] has
+	correct row names c("NA","NA.1") again.
+
+    o	The GUI data editor for dataframes did not handle escape
+	characters in entries properly. (PR#11897)
+
+    o	PCRE has been updated to 7.7 (bugfix release).
+
+    o	package.skeleton() wrongly warned about invalid code_files names
+	when these were not in the current directory.
+
+    o	shapiro.test(c(0,0,1)) now has P value >= 0 (instead of barely
+	negative).
+
+    o	assign() now warns if given a character vector of length > 1,
+	rather than silently taking the first element.
+
+    o	rcond(<exactly singular matrix>) now gives 0 instead of an error.
+
+    o	There was a memory leak in C function ucstoutf8 used by some
+	graphics devices.
+
+    o	Plots of profile.mle() objects (package 'stats4') were
+	misbehaving when the 'which' argument had been used in their
+	calculation.
+
+    o	dnbinom(x, size, mu=*, ..) is now more accurate for very large
+	'size'.	 The same applies to pnbinom() and rnbinom().
+
+    o	axis() was ignoring par() mgp[3] if mgp was set in-line.
+
+    o	Closing an X11 View() or dataentry window via its frame's
+	close control now works better on some window managers.
+
+    o	Calling lapply() was not handling method dispatch correctly for
+	is.numeric(), is.matrix(), is.array(), log() and the Math2
+	group.	This affected data.matrix() which incorrectly regarded
+	"Date" and "POSIXct" objects as numeric, and has been adjusted
+	to do so as exceptions.
+
+    o	package.skeleton() was not looking for non-function objects in
+	its 'environment' argument.
+
+    o	nls() was only finding its 'weights' argument in the case when
+	all the variables in the formula were of the same length and
+	hence that model.frame() could be used.
+
+	It was silently ignoring 'subset' and 'na.action' except in
+	that case.  Now they are ignored only if 'data' is a list and
+	variables taken from 'data' are not all of the same length,
+	in which case a warning is given.
+
+    o	The 'mle' confint() method now takes 'level' into account when
+	setting 'alpha' for the profile.
+
+    o	within() was not handling correctly expressions that produced
+	NULL columns.  (PR#11131)
+
+    o	dev.print() and dev.copy2{eps,pdf}() now ensure that the current
+	device is restored as the active device even if an error
+	occurs. (PR#9801)
+
+    o	as.Date() could fail to convert character strings representing
+	days on which midnight did not exist in the current timezone
+	(as happened in parts of Africa on 1960-01-01).
+
+    o	The automatic placement of legend() with 'title' and a
+	reversed 'x' axis was incorrect. (PR#12019)
+
+    o	The use of multiple packages in 'LinkingTo' works again, and
+	now works when the dependent packages are in the library to be
+	installed to (but not in the library path seen by R --vanilla).
+
+    o	bxp() (and hence boxplot) now respects in-line graphical
+	parameters 'xaxp'/'yaxp' as appropriate.  (PR#11463)
+
+    o	barplot(log = "y") failed if there were NAs in the 'height'
+	argument.  (PR#11585)
+
+    o	pbeta() is more accurate in some cases with extreme values of
+	'ncp'.	(PR#11277).
+
+    o	edit.data.frame() no longer fails if called on a 0-column
+	data frame and no column is created.
+
+    o	pchisq(x, df=0) was always one even for x < 0; similarly for
+	pgamma(x, alpha=0).
+
+    o	add1() and drop1() now return a P-value of NaN in cases with
+	df=0 for test="Chisq" (they gave NaN until pchisq was altered
+	in R 2.6.2).
+
+    o	The default methods of drop1() and add1() now re-evaluate in the
+	object's formula environment, rather than simply in the parent
+	(informal bug report by Werner Stahel).
+
+    o	The undocumented limit of 8191 bytes on comments (from # to
+	the end of the line) in R code has been removed.
+
+    o	qgamma() warns if used with shape < 1e-10, when it may be
+	unreliable.  (PR#12324)
+
+    o	Installing a source package was not using the package's declared
+	encoding (if any) as a default encoding for the help.search()
+	database in Meta/hsearch.rds.  This could cause packages with
+	a default encoding to have some of their entries rejected by
+	help.search() in a multi-byte locale (such as a UTF-8 locale).
+
+    o	duplicated() and unique() now handle 'incomparables' better,
+	and avoid occasional segfaults (PR#12551).
+
+    o	plot(isoreg(x, y)) now plots the points correctly when 'x'
+	is unssorted.
+
+    o	data.frame(row.names=NULL) once again behaves differently from
+	the default (as documented).
+
+
+
+		CHANGES IN R VERSION 2.7.1
+
+
+NEW FEATURES
+
+    o	tools::texi2dvi() has a new argument 'texinputs' to allow the
+	TeX and bibtex input paths to be specified (even on MiKTeX).
+
+    o	dev.copy2pdf() gains an 'out.type' argument to allow it to be
+	used with cairo_pdf() or quartz(type = "pdf").
+
+    o	poly() has additional checks against user error (as in PR#11243).
+
+    o	The Mac OS quartz() device draws contiguous lines much faster.
+
+    o	A field containing just a sign is no longer regarded as numeric
+	(it was on all platforms in 2.7.0, but not on most in earlier
+	versions of R).	 Similarly, '.' is now always non-numeric.
+
+    o	CITATION files are now read in Latin-1: quite a few were
+	failing if used in a multibyte locale such as UTF-8.
+
+    o	The DESCRIPTION file of a package can specify an 'OS_type' field
+	as either 'unix' or 'windows' to confine installation to that
+	OS type.
+
+    o	HoltWinters() now uses optimize() rather than optim for
+	one-parameter problems which should be more reliable (PR#11469).
+
+    o	axis() now respects the setting of par("xpd") when clipping.
+
+    o	The 'factor' method of format() now preserves names, dims and
+	dimnames in the same way as for character and numeric inputs.
+	(PR#11512)
+
+    o	read.DIF(*, transpose=TRUE) now allows to correctly read DIF files
+	produced by some versions of Excel.
+
+
+DEPRECATED & DEFUNCT
+
+    o	The use of unserialize() on character strings is deprecated:
+	that was a format used in R < 2.4.0.
+
+    o	The use of embedded nuls in character strings is deprecated:
+	They will no longer be allowed in R 2.8.0.
+
+
+UTILITIES
+
+    o	R CMD check checks for possible check directories in the
+	sources -- in mid-2008 there were about 20 examples on CRAN.
+
+    o	R CMD build tries harder to clean up the inst/doc directory
+	from the remnants of earlier builds.
+
+	It also removes any directories with extension .Rcheck, and
+	files .DS_Store and ._* (created by tar on Mac OS X under some
+	circumstances: it now sets environment variables to ask for
+	such files not to be created by that tar.)
+
+
+BUG FIXES
+
+    o	Encoding<- on NA_character_ converted it to "NA".
+
+    o	Adobe Symbol was missing from the encodings in
+	tools::charset_to_Unicode.
+
+    o	diag(matrix(x, 0, 0)) now returns a 0-length vector of the
+	correct mode, instead of always numeric.
+
+    o	The parser sometimes accepted invalid quoted strings in a UTF-8
+	locale.
+
+    o	plot.default(x, y) now dispatches to Axis() methods whether
+	y is NULL or not.
+
+    o	On Mac OS X, the Cocoa Quartz window could close without warning
+	under certain circumstances (specific autorelease pool flush).
+
+    o	Plotting symbols with separate border and fill colours (e.g.,
+	plot(pch = 21)) now works with transparent 'col', but opaque
+	or semi-transparent 'bg'.  Previously, if 'col' was
+	transparent then 'bg' was ignored and nothing was drawn.
+
+    o	file.path() did not work correctly in 2.7.0 if the components
+	had different encodings.
+
+    o	merge() failed if there were no common columns and one of the
+	inputs had zero rows.
+
+    o	expand.grid() failed if an input had length 0.
+
+    o	match() does again truncate strings at embedded nuls (as newly
+	documented in 2.7.0).
+
+    o	Because of a typo, 'pointsize' in png(type="cairo") (and jpeg,
+	bmp, tiff) devices was being interpreted in pixels not bigpoints.
+
+    o	is() was wrong for some S3 class objects with class of length
+	greater than one.
+
+    o	undoc() / codoc() were not checking all S4 methods in some cases.
+
+    o	Use of textConnection(NULL, mode="w") could segfault.
+
+    o	Use of strwidth/height(units="user") (the default) is again an
+	error before a user coordinate system has been set on the
+	device, rather than giving nonsensical values (the effect of
+	r31367).
+
+    o	Rare string width calculations in package grid were not
+	interpreting the string encoding correctly.
+
+    o	hasMethods(f, env) {without specified 'package'} now works better.
+
+    o	A missing PROTECT could cause segfaults on string
+	comparisons.  (PR#11421)
+
+    o	str(structure(1, classID = "Pooh")) now works fine.
+
+    o	A missing PROTECT could cause segfaults in if() if coercion of
+	the condition was required or a warning was to be given.
+
+    o	plot(<table>) now uses a sensible default main title.
+
+    o	validObject() called with complete=TRUE did not use inherited
+	validity methods for slot classes.
+
+    o	Several bugs fixed in as(): the initial method lookup was not
+	using the table with inherited methods (so inheritance had to
+	be recomputed each time); coerce() should not be called
+	directly--it can insert invalid inherited methods; the
+	constructed as() methods were not retaining the function's
+	environment.
+
+    o	influence.measures(<glm-object>) now computes the same
+	Cook's distance approximations as cooks.distance().
+
+    o	plot(<glm>, which=5) uses more correct Cook's distance contours;
+	(fix to fix to PR#9316).
+
+    o	pdf() and postscript() were not working correctly in 2.7.0 with
+	UTF-8 encoded data in a non-UTF-8 MBCS (e.g. EUC-JP on Unix,
+	CJK locales on Windows).
+
+    o	conformMethod(), called by setMethod(), now checks better about
+	argument names in wrong order.	Whereas it only warns currently,
+	it is planned to become an error in the future.
+
+    o	The predict() method for prcomp() had an incorrect check for
+	the number of columns of 'newdata' if the columns were not named.
+
+    o	The axis() function now distinguishes between setting "at" to
+	NULL or a zero-length vector, treating the latter as a request
+	for no ticks.  This corrects the handling of the "x" parameter
+	to rug().
+
+    o	glob2rx("*[*") now produces a correct regular expression.
+
+    o	The canvas is no longer painted on copy or save in Cocoa Quartz.
+
+    o	identify() in Quartz can now be terminated by either using popup
+	menu equivalent (Ctrl-click or second mouse button) or by pressing
+	the <Esc> key. The latter was documented but did not work.
+
+    o	tools:::.check_package_depends() {called from 'R CMD check'} now
+	also works correctly when directory-name != package-name.
+
+    o	Source references were sometimes off by a line.
+
+    o	The quartz() parameter 'antialias' is no longer ignored.
+
+    o	The Quartz device is now trying hard to remove anti-aliasing
+	effects for rasterized backends in plots that use adjacent,
+	borderless rectangles such as image().
+
+    o	The srcfilecopy() function now adds a timestamp to the object it
+	creates.
+
+    o	parse() would lose a token when run on stdin().
+
+    o	socketConnection() was using internally the class "socket"
+	and not "sockconn", which caused a conflict with make.socket().
+	(PR#11515)
+
+    o	Quartz is now trying harder to find the proper font for a given
+	family which resolves font issues on Mac OS X 10.4. Full font
+	names and PostScript names can be used interchangeably. (Note,
+	however that italic/oblique font faces of Helvetica are not
+	included in the Mac OS X 10.4 system).
+
+    o	qf() no longer gives NaN when one of df1 and df2 is large and
+	the other is infinite (including if both are infinite); it is more
+	accurate e.g. for qf(1e-18, 2,4).
+
+    o	qbeta(-1e10, 50, 40, log.p=TRUE) no longer hangs.
+
+    o	Cocoa Quartz backend autodetection of display DPI was not
+	correct for screens rotated by 90 or 270 degrees.
+
+    o	selectMethod("coerce", .) now uses a correct default for
+	'useInherited', and hence no longer may mess up the method cache.
+
+    o	show() now also works on "unregistered" S3 class objects.
+
+    o	formatC(*, format="fg", flag="#") is no longer dropping trailing
+	zeros.
+
+    o	read.table(file = stdin()) with invalid input could leave the
+	connection in an invalid state and hence cause a later
+	segfault.  (PR#11627)
+
+    o	read.DIF() did not obey the default 'stringsAsFactors = TRUE'.
+
+    o	The 'noquote' method for c() now works correctly with three or
+	more arguments.
+
+    o	symbol() in plotmath expressions works again with non-ASCII
+	input on devices that use UTF-8 for the symbol font.
+
+
+
+		CHANGES IN R VERSION 2.7.0
+
+
+SIGNIFICANT USER-VISIBLE CHANGES
+
+    o	The default graphics device in non-interactive use is now
+	pdf() rather than postscript().	 [PDF viewers are now
+	more widely available than PostScript viewers.]
+
+	The default width and height for pdf() and bitmap() have been
+	changed to 7 (inches) to match the screen devices.
+
+    o	Most users of the X11() device will see a new device that has
+	different fonts, anti-aliasing of lines and fonts and
+	supports semi-transparent colours.
+
+    o	Considerable efforts have been made to make the default output
+	from graphics devices as similar as possible (and in
+	particular close to that from postscript/pdf).	Many devices
+	were misinterpreting 'pointsize' in some way, for example as
+	being in device units (pixels) rather than in points.
+
+    o	Packages which include graphics devices need to be re-installed
+	for this version of R, with recently updated versions.
+
+
+NEW FEATURES
+
+    o	The apse code used by agrep() has been updated to version
+	0.16, with various bug fixes.
+
+	agrep() now supports multibyte character sets.
+
+    o	any() and all() avoid coercing zero-length arguments (which
+	used a surprising amount of memory) since they cannot affect
+	the answer.
+
+	Coercion of other than integer arguments now gives a warning
+	as this is often a mistake (e.g. writing all(pr) > 0 instead
+	of all(pr > 0) ).
+
+    o	as.Date(), as.POSIXct() and as.POSIXlt() now convert numeric
+	arguments (days or seconds since some epoch) provided the
+	'origin' argument is specified.
+
+    o	New function as.octmode() to create objects such as file
+	permissions.
+
+    o	as.POSIXlt() is now generic, and it and as.POSIXct() gain a
+	'...' argument.	 The character/factor methods now accept a
+	'format' argument (analogous to that for as.Date).
+
+    o	New function browseVignettes() lists available vignettes in an
+	HTML browser with links to PDF, Rnw, and R files.
+
+    o	There are new capabilities "aqua" (for the AQUA GUI and quartz()
+	device on Mac OS X) and "cairo" (for cairo-based graphics
+	devices).
+
+    o	New function checkNEWS() in package 'tools' that detects common
+	errors in NEWS file formatting.
+
+    o	deparse() gains a new argument 'nlines' to limit the number of
+	lines of output, and this is used internally to make several
+	functions more efficient.
+
+    o	deriv() now knows the derivatives of digamma(x), trigamma(x)
+	and psigamma(x, deriv) (wrt to x).
+
+    o	dir.create() has a new argument 'mode', used on Unix-alikes
+	(only) to set the permissions on the created directory.
+
+    o	Where an array is dropped to a length-one vector by drop() or
+	[, drop = TRUE], the result now has names if exactly one of
+	the dimensions was named.  (This is compatible with S.)
+	Previously there were no names.
+
+    o	The 'incomparables' argument to duplicated(), unique() and
+	match() is now implemented, and passed to match() from merge().
+
+    o	dyn.load() gains a 'DLLpath' argument to specify the path for
+	dependent DLLs: currently only used on Windows.
+
+    o	The spreadsheet edit() methods (and used by fix()) for data
+	frames and matrices now warn when classes are discarded.
+
+	When editing a data frame, columns of unknown type (that is
+	not numeric, logical, character or factor) are now converted
+	to character (instead of numeric).
+
+    o	file.create() has a new argument 'showWarnings' (default TRUE)
+	to show an informative warning when creation fails, and
+	dir.create() warns under more error conditions.
+
+    o	New higher-order functions Find(), Negate() and Position().
+
+    o	[dpqr]gamma(*, shape = 0) now work as limits of 'shape -> 0',
+	corresponding to the point distribution with all mass at 0.
+
+    o	An informative warning (in addition to the error message) will
+	be given when the basic, extended or perl mode of grep(),
+	strsplit() and friends fails to compile the pattern.
+
+    o	More study is done of perl=TRUE patterns in grep() and friends
+	when length(x) > 10: this should improve performance on long
+	vectors.
+
+    o	grep(), strsplit() and friends with fixed=TRUE or perl=TRUE
+	work in UTF-8 and preserve the UTF-8 encoding for UTF-8 inputs
+	where supported.
+
+    o	help.search() now builds the database about 3x times faster.
+
+    o	iconv() now accepts "UTF8" on all platforms (many did, but not
+	e.g. libiconv as used on Windows).
+
+    o	identity() convenience function to be used for programming.
+
+    o	In addition to warning when 'pkgs' is not found,
+	install.packages() now reports if it finds a valid package
+	with only a case mismatch in the name.
+
+    o	intToUtf8() now marks the Encoding of its output.
+
+    o	The function is() now works with S3 inheritance; that is, with
+	objects having multiple strings in the class attribute.
+
+    o	Extensions to condition number computation for matrices, notably
+	complex ones are provided, both in kappa() and the new rcond().
+
+    o	list.files() gains a 'ignore.case' argument, to allow
+	case-insensitive matching on some Windows/MacOS file systems.
+
+    o	ls.str() and lsf.str() have slightly changed arguments and
+	defaults such that ls.str() {no arguments} works when debugging.
+
+    o	Under Unix, utils::make.packages.html() can now be used directly
+	to set up linked HTML help pages, optionally without creating
+	the package listing and search database (which can be much
+	faster).
+
+    o	new.packages() now knows about the front-end package gnomeGUI
+	(which does not install into a library).
+
+    o	optim(*, control = list(...)) now warns when '...' contains
+	unexpected names, instead of silently ignoring them.
+
+    o	The options "browser" and "editor" may now be set to functions,
+	just as "pager" already could.
+
+    o	packageDescription() makes use of installed metadata where
+	available (for speed, e.g. in make.packages.html()).
+
+    o	pairwise.t.test() and pairwise.wilcox.test() now more explicitly
+	allow paired tests. In the former case it is now flagged as an
+	error if both 'paired' and 'pool.SD' are set TRUE (formerly,
+	'paired' was silently ignored), and one-sided tests are generated
+	according to 'alternative' also if 'pool.SD' is TRUE.
+
+    o	paste() and file.path() are now completely internal, for speed.
+	(This speeds up make.packages.html(packages=FALSE)
+	severalfold, for example.)
+
+    o	paste() now sets the encoding on the result under some
+	circumstances (see ?paste).
+
+    o	predict.loess() now works when loess() was fitted with
+	transformed explanatory variables, e.g, loess(y ~ log(x) + log(z)).
+
+    o	print(<data.frame>)'s new argument 'row.names' allows to suppress
+	printing rownames.
+
+    o	print() and str() now also "work" for 'logLik' vectors longer than
+	one.
+
+    o	Progress-bar functions txtProgressBar(), tkProgressBar() in
+	package tcltk and winProgressBar() (Windows only).
+
+    o	readChar() gains an argument 'useBytes' to allow it to read a
+	fixed number of bytes in an MBCS locale.
+
+    o	readNEWS() has been moved to the tools package.
+
+    o	round() and signif() now do internal argument matching if
+	supplied with two arguments and at least one is named.
+
+    o	New function showNonASCII() in package tools to aid detection
+	of non-ASCII characters in .R and .Rd files.
+
+    o	The [dpq]signrank() functions now typically use considerably
+	less memory than previously, thanks to a patch from Ivo
+	Ugrina.
+
+    o	spec.ar() now uses frequency(x) when calculating the
+	frequencies of the estimated spectrum, so that for monthly
+	series the frequencies are now per year (as for spec.pgram)
+	rather than per month as before.
+
+    o	spline() gets an 'xout' argument, analogously to approx().
+
+    o	sprintf() now does all the conversions needed in a first pass if
+	length(fmt) == 1, and so can be many times faster if called
+	with long vector arguments.
+
+    o	[g]sub(useBytes = FALSE) now sets the encoding on changed
+	elements of the result when working on an element of known
+	encoding.  (This was previously done only for perl = TRUE.)
+
+    o	New function Sys.chmod(), a wrapper for 'chmod' on platforms
+	which support it.  (On Windows it handles only the read-only
+	bit.)
+
+    o	New function Sys.umask(), a wrapper for 'umask' on platforms
+	which support it.
+
+    o	New bindings ttk*() in package tcltk for the 'themed widgets'
+	of Tk 8.5.  The tcltk demos make use of these widgets where
+	available.
+
+    o	write.table(d, row.names=FALSE) is faster when 'd' has millions of
+	rows; in particular for a data frame with automatic row names.
+	(Suggestion from Martin Morgan.)
+
+
+    o	The parser limit on string size has been removed.
+
+    o	If a NEWS file is present in the root of a source package, it
+	is installed (analogously to LICENSE, LICENCE and COPYING).
+
+    o	Rd conversion to 'example' now quotes aliases which contain
+	spaces.
+
+    o	The handling of DST on dates outside the range 1902-2037 has
+	been improved.	Dates after 2037 are assumed to have the same
+	DST rules as currently predicted for the 2030's (rather than
+	the 1970s), and dates prior to 1902 are assumed to have no DST
+	and the same offset as in 1902 (if known, otherwise as in the
+	1970s).
+
+    o	On platforms where we can detect that mktime sets errno
+	(e.g. Solaris and the code used on Windows but not Linux nor
+	Mac OS X), 1969-12-31 23:59:59 GMT is converted from POSIXlt
+	to POSIXct as -1 and not NA.
+
+    o	The definition of 'whitespace' used by the parser is slightly
+	wider: it includes Unicode space characters on Windows and in
+	UTF-8 locales on machines which use Unicode wide characters.
+
+    o	The src/extra/intl sources have been updated to those from
+	gettext 0.17.
+
+    o	New flag --interactive on Unix-alikes forces the session to be
+	interactive (as --ess does on Windows).
+
+    o	x[<zero-length>] <- NULL is always a no-op: previously
+	type-checking was done on the replacement value and so this
+	failed, whereas we now assume NULL can be promoted to any
+	zero-length vector-like object.
+
+	Other cases of a zero-length index are done more efficiently.
+
+    o	There is a new option in Rd markup of \donttest{} to mark
+	example code that should be run by example() but not tested
+	(e.g. because it might fail in some locales).
+
+    o	The error handler in the parser now reports line numbers for
+	more syntax errors (MBCS and Unicode encoding errors, line
+	length and context stack overflows, and mis-specified argument
+	lists to functions).
+
+    o	The "MethodsList" objects originally used for method selection
+	are being phased out.  New utilities provide simpler
+	alternatives (see ?findMethods), and direct use of the mangled
+	names for the objects is now deprecated.
+
+    o	Creating new S4 class and method definitions in an environment
+	that could not be identified (as package, namespace or global)
+	previously generated an error.	It now results in creating and
+	using an artificial package name from the current date/time,
+	with a warning.	 See ?getPackageName.
+
+    o	Unix-alikes now give a warning on startup if locale settings
+	fail.  (The Windows port has long done so.)
+
+    o	Parsing and scanning of numerical constants is now done by R's
+	own C code.  This ensures cross-platform consistency, and
+	mitigates the effects of setting LC_NUMERIC (within base R it
+	only applies to output -- packages may differ).
+
+	The format accepted is more general than before and includes
+	binary exponents in hexadecimal constants: see
+	?NumericConstants for details.
+
+    o	Dependence specifications for R or packages in the Depends
+	field in a DESCRIPTION file can now make use of operators
+	< > == and != (in addition to <= and >=): such packages will
+	not be installable nor loadable in R < 2.7.0.
+
+	There can be multiple mentions of R or a package in the Depends
+	field in a DESCRIPTION file: only the first mention will be
+	used in R < 2.7.0.
+
+
+GRAPHICS CHANGES
+
+    o	The default graphics devices in interactive and
+	non-interactive sessions are now configurable via environment
+	variables R_INTERACTIVE_DEVICE and R_DEFAULT_DEVICE
+	respectively.
+
+    o	New function dev.new() to launch a new copy of the default
+	graphics device (and taking care if it is "pdf" or
+	"postscript" not to trample on the file of an already running
+	copy).
+
+    o	dev.copy2eps() uses dev.displaylist() to detect screen
+	devices, rather than list them in the function.
+
+    o	New function dev.copy2pdf(), the analogue of dev.copy2eps().
+
+    o	dev.interactive() no longer treats a graphics device as
+	interactive if it has a display list (but devices can still
+	register themselves on the list of interactive devices).
+
+    o	The X11() and windows() graphics devices have a new argument
+	'title' to set the window title.
+
+    o	X11() now has the defaults for all of its arguments set by the
+	new function X11.options(), inter alia replacing options
+	"gamma", "colortype" and "X11fonts".
+
+    o	ps.options() now warns on unused option 'append'.
+
+	xfig() no longer takes default arguments from ps.options().
+	(This was not documented prior to 2.6.1 patched.)
+
+	pdf() now takes defaults from the new function pdf.options()
+	rather that from ps.options() (and the latter was not
+	documented prior to 2.6.1 patched).
+
+	The defaults for all arguments other than 'file' in
+	postscript() and pdf() can now be set by ps.options() or
+	pdf.options()
+
+    o	New functions setEPS() and setPS() as wrappers to ps.options()
+	to set appropriate defaults for figures for inclusion in other
+	documents and for spooling to a printer respectively.
+
+    o	The meaning of numeric 'pch' has been extended where MBCSes are
+	supported.  Now negative integer values indicate Unicode
+	points, integer values in 32-127 represent ASCII characters,
+	and 128-255 are valid only in single-byte locales.
+	(Previously what happened with negative pch values was
+	undocumented: they were replaced by the current setting of
+	par("pch").)
+
+    o	Graphics devices can say if they can rotate text well
+	(e.g. postscript() and pdf() can) and if so the device's
+	native text becomes the default for contour labels rather than
+	using Hershey fonts.
+
+    o	The setting of the line spacing (par("cra")[2]) on the X11() and
+	windows() devices is now comparable with postscript() etc, and
+	roughly 20% smaller than before (it used to depend on the
+	locale for X11).  (So is the pictex() device, now 20% larger.)
+	This affects the margin size in plots, and should result in
+	better-looking plots.
+
+    o	There is a per-device setting for whether new frames need
+	confirmation.  This is controlled by either par("ask") or
+	grid.prompt() and affects all subsequent plots on the device
+	using base or grid graphics.
+
+    o	There is a new version of the X11() device based on cairo
+	graphics which is selected by type "cairo" or "nbcairo", and
+	is available on machines with cairo installed and preferably
+	pango (which most machines with gtk+ >= 2.8 will have).	 This
+	version supports translucent colours and normally does a
+	better job of font selection so it has been possible to
+	display (e.g.)	English, Polish, Russian and Japanese text on
+	a single X11() window.	It is the default where available.
+
+	There is a companion function, savePlot(), to save the current
+	plot to a PNG file.
+
+	On Unix-alikes, devices jpeg() and png() also accept
+	type = "cairo", and with that option do not need a running
+	X server.  The meaning of capabilities("jpeg") and
+	capabilities("png") has changed to reflect this.  On MacOS X,
+	there is a further type = "quartz".  The default type is
+	selected by the new option "bitmapType", and is "quartz" or
+	"cairo" where available.
+
+	Where cairo 1.2 or later is supported, there is a svg() device
+	to write SVG files, and cairo_pdf() and cairo_ps() devices to
+	write (possibly bitmap) PDF and postscript files via cairo.
+
+	Some features require cairo >= 1.2, and some which are
+	nominally supported under 1.2 seem to need 1.4 to work well.
+
+    o	There are new bmp() and tiff() devices.
+
+    o	New function devSize() to report the size of the current
+	graphics device surface (in inches or device units).  This
+	gives the same information as par("din"), but independent of
+	the graphics subsystem.
+
+    o	New base graphics function clip() to set the clipping region (in
+	user coordinates).
+
+    o	New functions grconvertX() and grconvertY() to convert between
+	coordinate systems in base graphics.
+
+    o	identify() recycles its 'labels' argument if necessary.
+
+    o	stripchart() is now a generic function, with default and
+	formula methods defined.  Additional graphics parameters may
+	be included in the call.  Formula handling is now
+	similar to boxplot().
+
+    o	strwidth() and strheight() gain 'font' and 'vfont' arguments and
+	accept in-line pars such as 'family' in the same way as text()
+	does.  (Longstanding wish of PR#776)
+
+    o	example(ask=TRUE) now applies to grid graphics (e.g. from
+	lattice) as well as to base graphics.
+
+    o	Option "device.ask.default" replaces "par.ask.default" now it
+	applies also to grid.prompt().
+
+    o	plot.formula() only prompts between plots for interactive
+	devices (it used to prompt for all devices).
+
+    o	When plot.default() is called with y=NULL it now calls Axis()
+	with the 'y' it constructs rather than use the default axis.
+
+
+DEPRECATED & DEFUNCT
+
+    o	In package installation, SaveImage: yes is defunct and
+	lazyloading is attempted instead.
+
+    o	$ on an atomic vector or S4 object is now defunct.
+
+    o	Partial matching in [[ is now only performed if explicitly
+	requested (by exact=FALSE or exact=NA).
+
+    o	Command-line completion has been moved from package 'rcompgen'
+	to package 'utils': the former no longer exists as a separate
+	package in the R distribution.
+
+    o	The S4 pseudo-classes "single" and double have been removed.
+	(The S4 class for a REALSXP is "numeric": for back-compatibility
+	as(x, "double") coerces to "numeric".)
+
+    o	gpar(gamma=) in the grid package is now defunct.
+
+    o	Several S4 class definition utilities, get*(), have been said
+	to be deprecated since R 1.8.0; these are now formally deprecated.
+	Ditto for removeMethodsObject().
+
+    o	Use of the graphics headers Rgraphics.h and Rdevices.h is
+	deprecated, and these will be unavailable in R 2.8.0.
+	(They are hardly used except in graphics devices, for which
+	there is an updated API in this version of R.)
+
+    o	options("par.ask.default") is deprecated in favour of
+	"device.ask.default".
+
+    o	The 'device-independent' family "symbol" is deprecated as it was
+	highly locale- and device-dependent (it only did something
+	useful in single-byte locales on most devices) and font=5
+	(base) or fontface=5 (grid) did the job it was intended to do
+	more reliably.
+
+    o	gammaCody() is now formally deprecated.
+
+    o	Two low-level functions using MethodsList metadata objects
+	(mlistMetaName() and getAllMethods()) are deprecated.
+
+    o	Setting par(gamma=) is now deprecated, and the windows()
+	device (the only known example) no longer allows it.
+
+    o	The C macro 'allocString' will be removed in 2.8.0 -- use
+	'mkChar', or 'allocVector' directly if really necessary.
+
+
+INSTALLATION
+
+    o	Tcl/Tk >= 8.3 (released in 2000) is now required to build
+	package tcltk.
+
+    o	configure first tries TCL_INCLUDE_SPEC and TK_INCLUDE_SPEC
+	when looking for Tcl/Tk headers.  (The existing scheme did
+	not work for the ActiveTcl package on Mac OS X.)
+
+    o	The Windows build only supports Windows 2000 or later (XP,
+	Vista, Server 2003 and Server 2008).
+
+    o	New option --enable-R-static-lib installs libR.a which can
+	be linked to a front-end via 'R CMD config --ldflags'.
+	The tests/Embedding examples now work with a static R
+	library.
+
+    o	Netscape (which was discontinued in Feb 2008) is no longer
+	considered when selecting a browser.
+
+    o	xdg-open (the freedesktop.org interface to
+	kfmclient/gnome-open/...) is considered as a possible browser,
+	after real browsers such as firefox, mozilla and opera.
+
+    o	The search for tclConfig.sh and tkConfig.sh now only looks in
+	directories with names containing $(LIBnn) in the hope of
+	finding the version for the appropriate architecture
+	(e.g. x86_64 or i386).
+
+    o	libtool has been updated to version 2.2.
+
+    o	Use of --with-system-zlib, --with-system-bzlib or
+	--with-system-pcre now requires version >= 1.2.3, 1.0.5, 7.6
+	respectively, for security.
+
+
+UTILITIES
+
+    o	Rdconv now removes empty sections including alias and keyword
+	entries, with a note.
+
+    o	Keyword entries are no longer mandatory in Rd files.
+
+    o	R CMD INSTALL now also installs tangled versions of all vignettes.
+
+    o	R CMD check now warns if spaces or non-ASCII characters are
+	used in file paths, since these are not in general portable.
+
+    o	R CMD check (via massage-Examples.pl) now checks all examples
+	with a 7 inch square device region on A4 paper, for
+	locale-independence and to be similar to viewing examples on
+	an on-screen device.
+
+	If a package declares an encoding in the DESCRIPTION file,
+	the examples are assumed to be in that encoding when running
+	the tests. (This avoids errors in running latin1 examples in a
+	UTF-8 locale.)
+
+    o	R CMD check uses pdflatex (if available) to check the typeset
+	version of the manual, producing PDF rather than DVI.  (This
+	is a better check since the package reference manuals on CRAN
+	are in PDF.)
+
+    o	R CMD Rd2dvi gains a --encoding argument to be passed to
+	R CMD Rdconv, to set the default encoding for conversions.
+	If this is not supplied and the files are package sources and
+	the DESCRIPTION file contains an Encoding field, that is used
+	for the default encoding.
+
+    o	available.packages() (and hence install.packages() etc) now
+	supports subdirectories in a repository, and
+	tools::write_PACKAGES() can now produce PACKAGES files
+	including subdirectories.
+
+    o	The default for 'stylepath' in Sweave's (default) RweaveLatex
+	driver can be set by the environment variable
+	SWEAVE_STYLEPATH_DEFAULT: see ?RweaveLatex.
+
+
+C-LEVEL FACILITIES
+
+    o	Both the Unix and Windows interfaces for embedding now make
+	use of 'const char *' declarations where appropriate.
+
+    o	Rprintf() and REprintf() now use 'const char *' for their format
+	argument -- this should reduce warnings when called from C++.
+
+    o	There is a new description of the interface for graphics
+	devices in the 'R Internals' manual, and several new entry
+	points.	 The API has been updated to version R_GE_version = 5,
+	and graphics devices will need to be updated accordingly.
+
+    o	Graphics devices can now select to be sent text in UTF-8, even
+	if the current locale is not UTF-8 (and so enable text entered
+	in UTF-8 to be plotted).  This is used by postscript(), pdf()
+	and the windows() family of devices, as well as the new
+	cairo-based devices.
+
+    o	More Lapack routines are available (and declared in R_Ext/Lapack.h),
+	notably for (reciprocal) condition number estimation of complex
+	matrices.
+
+    o	Experimental utility R_has_slot supplementing R_do_slot.
+
+    o	There is a new public interface to the encoding info stored on
+	CHARSXPs, getCharCE and mkCharCE using the enumeration type
+	cetype_t.
+
+    o	A new header 'R_ext/Visibility.h' contains some definitions for
+	controlling the visibility of entry points, and how to control
+	visibility is now documented in 'Writing R Extensions'.
+
+
+BUG FIXES
+
+    o	pt(x, df) is now even more accurate in some cases (e.g. 12 instead
+	of 8 significant digits), when x^2 << df, thanks to a remark from
+	Ian Smith, related to PR#9945.
+
+    o	co[rv](use = "complete.obs") now always gives an error if there
+	are no complete cases: they used to give NA if
+	method = "pearson" but an error for the other two methods.
+	(Note that this is pretty arbitrary, but zero-length vectors
+	always give an error so it is at least consistent.)
+
+	Since sd(na.rm=TRUE) and var(na.rm=TRUE) both call cov(use =
+	"complete.obs"), this applies also to them.
+
+	cor(use="pair") used to give diagonal 1 even if the variable
+	was completely missing for the rank methods but NA for the
+	Pearson method: it now gives NA in all cases.
+
+	cor(use="pair") for the rank methods gave a matrix result with
+	dimensions > 0 even if one of the inputs had 0 columns.
+
+    o	Supplying edit.row.names = TRUE when editing a matrix without
+	row names is now an error and not a segfault. (PR#10500)
+
+    o	The error handler in the parser reported unexpected
+	& as && and | as ||.
+
+    o	ps.options(reset = TRUE) had not reset for a long time.
+
+    o	paste() and file.path() no longer allow NA_character_ for
+	their 'sep' and 'collapse' arguments.
+
+    o	by() failed for 1-column matrices and dataframes.  (PR#10506)
+	However, to preserve the old behaviour, the default method
+	when operating on a vector still passes subsets of the vector
+	to FUN, and this is now documented.
+
+    o	Better behaviour of str.default() for non-default
+	'strict.width' (it was calling str() rather than str.default()
+	internally); also, more useful handling of options("str").
+
+    o	wilcox.test(exact=FALSE, conf.int=TRUE) could fail in some
+	extreme two-sample problems.  (Reported by Wolfgang Huber.)
+
+    o	par(pch=) would accept a multi-byte string but only use the
+	first byte.  This would lead to incorrect results in an MBCS
+	locale if a non-ASCII character was supplied.
+
+    o	There are some checks for valid C-style formats in, e.g.
+	png(filename=).	 (PR#10571)
+
+    o	vector() was misinterpreting some double 'length' values, e.g,
+	NaN and NA_real_ were interpreted as zero.  Also, invalid
+	types of 'length' were interpreted as -1 and hence reported as
+	negative.  (length<- shared the code and hence the same
+	misinterpretations.)
+
+    o	A basic class "S4" was added to correspond to the "S4" object
+	type, so that objects with this type will print, etc.  The
+	class is VIRTUAL, since all actual S4 objects must have a real
+	class.
+
+    o	Classes with no slots that contain only VIRTUAL classes are now
+	VIRTUAL, as was intended but confused by having an empty S4
+	object as prototype. ## backed out temporarily ##
+
+    o	format.AsIs() discarded dimnames, causing dataframes with matrix
+	variables to be printed without using the column names, unlike
+	what happens in S-PLUS (Tim Hesterberg, PR#10730).
+
+    o	xspline() and grid::grid.xspline() work in device coordinates
+	and now correct for anisotropy in the device coordinate
+	system.
+
+    o	grid.locator() now indicates to the graphics device that it is
+	is in 'graphics input' mode (as locator() and identify()
+	always have).  This means that devices can now indicate the
+	'graphics input' mode by e.g. a change of cursor.
+
+    o	Locales without encoding specification and non-UTF-8 locales
+	now work properly on Mac OS X.	Note that locales without
+	encoding specification always use UTF-8 encoding in Mac OS X
+	(except for specials "POSIX" and "C") - this is different from
+	other operating systems.
+
+    o	iconv() now correctly handles to="" and from="" on Mac OS X.
+
+    o	In diag()'s argument list, drop the explicit default (' = n')
+	for 'ncol' which is ugly when making diag() generic.
+
+    o	S4 classes with the same name from different packages were not
+	recognized because of a bug in caching the new definition.
+
+    o	jpeg() and png() no longer maintain a display list, as they
+	are not interactive devices.
+
+    o	Using attr(x, "names") <- value (instead of the correct
+	names<-) with 'value' a pairlist (instead of the correct
+	character vector) worked incorrectly.  (PR#10807)
+
+    o	Using [<- to add a column to a data frame dropped other
+	attributes whereas [[<- and $<- did not: now all preserve
+	attributes.  (PR#10873)
+
+    o	File access functions such as file.exists(), file.info(),
+	dirname() and unlink() now treat an NA filename as a
+	non-existent file and not the file "NA".
+
+    o	r<foo>(), the random number generators, are now more consistent
+	in warning when NA's (specifically NaN's) are generated.
+
+    o	rnorm(n, mu = Inf) now returns rep(Inf, n) instead of NaN;
+	similar changes are applied to rlnorm(), rexp(), etc.
+
+    o	[l]choose() now warns when rounding non-integer 'k' instead of
+	doing so silently.  (May help confused users such as PR#10766.)
+
+    o	gamma() was warning incorrectly for most negative values as being
+	too near a negative integer.  This also affected other
+	functions making use of its C-level implementation.
+
+    o	dumpMethod() and dumpMethods() now work again.
+
+    o	package.skeleton() now also works for code_files with only
+	metadata (e.g. S4 setClass) definitions; it handles S4 classes and
+	methods, producing documentation and NAMESPACE exports if requested.
+
+    o	Some methods package utilities (implicitGeneric(), makeGeneric())
+	will be more robust in dealing with primitive functions (not a
+	useful idea to call them with primitives, though)
+
+    o	Making a MethodsList from a function with no methods table will
+	return an empty list, rather than cause an error (questionably
+	a bug, but caused some obscure failures).
+
+    o	setAs() now catches 2 arguments in the method definition, if
+	they do not match the arguments of coerce().
+
+    o	S4 methods with missing arguments in the definition are handled
+	correctly  when non-signature arguments exist, and check for
+	conflicting local names in the method definition.
+
+    o	qgamma() and qchisq() could be inaccurate for small p,
+	e.g. qgamma(1.2e-10, shape = 19) was 2.52 rather than 2.73.
+
+    o	dbeta(.., ncp) is now more accurate for large ncp, and typically no
+	longer underflows for give.log = TRUE.
+
+    o	coerce() is now a proper S4 object and so prints correctly.
+
+    o	@ now checks it is being applied to an S4 object, and if not
+	gives a warning (which will become an error in 2.8.0).
+
+    o	dump() and friends now warn that all S4 objects (even those
+	based on vectors) are not source()able, with a stronger wording.
+
+    o	read.dcf(all = TRUE) was leaking connections.
+
+    o	scan() with a non-default separator could skip nul bytes,
+	including those entered as \0 with allowEscapes=TRUE.  This
+	was different from the default separator.
+
+    o	determinant(matrix(,0,0)) now returns a correct "det" result;
+	also value 1 or 0 depending on 'logarithm', rather than numeric(0).
+
+    o	Name space 'grDevices' was not unloading its DLL when the
+	name space was unloaded.
+
+    o	getNativeSymbolInfo() was unaware of non-registered Fortran
+	names, because one of the C support routines ignored them.
+
+    o	load() again reads correctly character strings with embedded nuls.
+	(This was broken in 2.6.x, but worked in earlier versions.)
+
+
+
+
+	**************************************************
+	*						 *
+	*	       2.6 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 2.6.2 patched
+
+
+BUG FIXES
+
+    o	src/extra/pcre has been updated to PCRE 7.6 (bugfix release).
+
+    o	unlink(..., recursive=TRUE) no longer crashes on some platforms
+	if a directory cannot be opened.
+
+    o	Loading in 2.6.2 a saved workspace could give an unimportant
+	warning in a non-UTF-8 multibyte locale (in particular a CJK
+	locale on Windows) which is now suppressed.
+
+    o	print() methods are more consistent in returning the original
+	argument invisibly.
+
+    o	Using the X11 data editor (e.g. via edit(), fix() or View())
+	could crash if the 'End' key was used and all the columns
+	would have fitted into the window.
+
+    o	Creating a new page on an X11() device (by plot.new() or
+	grid.newpage()) did not flush out the XClearWindow call, so
+	the X11 window might not be refreshed immediately.
+
+    o	libtool has been updated to version 1.5.26, which avoids
+	many spurious configure warnings on Darwin/Mac OS X.
+
+    o	l10n_info() now recognizes how Darwin/Mac OS X reports
+	Latin-1 locales (as charset ISO8859-1 rather than ISO-8859-1).
+
+    o	Checking examples which used grid (e.g. via lattice) without
+	attaching grid no longer give errors from grid_plot_hook().
+
+    o	kappa(m, exact=TRUE) no longer wrongly uses 'exact=FALSE' when m
+	is an 'lm' or 'qr' object because the kappa.tri(x, exact=TRUE)
+	now works correctly.
+
+    o	help(topic, offline=TRUE) misbehaved when there were multiple
+	matches to 'topic'.  (PR#10859)
+
+    o	The 'multilib' changes on Linux broke the use of
+	sub-architectures without a main architecture.
+
+    o	source(echo=TRUE) would skip lines consisting entirely of the
+	letter t. (PR#10923)
+
+    o	bzip2 has been updated to 1.0.5 (security fix).
+
+
+
+		CHANGES IN R VERSION 2.6.2
+
+
+NEW FEATURES
+
+    o	colnames(DF) is now also fast for large dataframes DF with
+	automatic row.names.  Note that the correct usage is
+	names(DF).  (PR#10470)
+
+    o	tools::texi2dvi() works around the failure of 'texi2dvi --quiet'
+	to be quiet in texinfo 4.11.
+
+    o	On Linux, parallel 32/64-bit installations are supported using
+	multilib.
+
+BUG FIXES
+
+    o	A compilation problem on one system where glob was not found
+	has been corrected.  (PR#10468)
+
+    o	The "profile.nls" method of plot() was losing the x axis labels.
+
+    o	array() computed the total number of entries in the array before
+	coercing the dimensions to integer.  (Reported by Allen McIntosh.)
+
+    o	persp() misreported errors in the y parameter.	(Reported by Allen
+	McIntosh.)
+
+    o	source("clipboard", echo=TRUE) and file("clipboard", open="rt")
+	gave spurious errors.  (Reported by Fernando Saldanha.)
+
+    o	attributes<-() stripped any existing attributes before checking
+	that all elements of the right-hand side had names.
+
+    o	rbinom(n, size, *) gave NaN when 'size > .Machine$integer.max'.
+
+    o	print.summary.lm() is now consistent in the capitalization of
+	"R-squared".
+
+    o	confint() misreported on some rank-deficient lm() models.
+	(PR#10496)  This could also occur in the default method.
+
+    o	\code{\var{<name>}} was not rendered correctly to latex in Rd
+	files for non-alphabetic arguments <name>.
+
+    o	In 2.6.1, curve(*, add=TRUE) used a wrong default 'xlim' when x
+	coordinates were logged.
+
+    o	The Java-based search in help.start() now only requires a
+	JVM >= 1.4 (2.6.1 accidentally required >= 1.5).
+
+    o	The default method for range() was omitting 'na.rm' for
+	non-numeric objects such as those of class "Date".  (PR#10508)
+
+    o	cut(x, breaks=<n>) misbehaved on a constant vector of negative
+	values.
+
+    o	bxp(), the plotting engine of boxplot(), no longer plots staple
+	ticks multiple times.  (PR#10499)
+
+    o	The automatic detection of the domain for message translation
+	was not working correctly for messages in message(), warning()
+	and stop() in packages other than 'base'.
+
+    o	The profile.nls() function misbehaved when encountering
+	non-convergence of the "port" algorithm.
+
+    o	Under certain rare circumstances in R 2.6.x, log(), round()
+	and trunc() could alter their arguments in the caller.	This
+	involved passing of empty '...' arguments, and was spotted
+	when using apply(x, 2, log).
+
+    o	par() no longer warns unnecessarily when asked to set new=FALSE
+	on an unused graphics device.
+
+    o	plot.formula() was not passing on '...' when used with a
+	one-sided formula.
+
+	plot.formula() was not accepting expressions for annotations
+	passed to title().  (PR#10525)
+
+    o	pchisq(x, df=0, ncp=L) now returns the correct limit exp(-L/2) for
+	x=0 and is no longer returning NaN for x > 0, L < 80.  (PR#10551)
+
+    o	Non-ASCII characters were only working correctly in Hershey
+	fonts if these were specified by the 'vfont' argument to
+	text() and not if specified as a font family.
+
+    o	There were several errors in Hershey$allowed, but the help
+	page listed the allowed combinations correctly.
+
+    o	text() no longer attempts to use 'vfont' with an expression
+	for 'labels' (it was documented not to work).
+
+    o	fisher.test(simulate.p.value = TRUE) gave incorrect answers
+	in some extremely degenerate problems.	(PR#10558)
+
+    o	src/extra/pcre has been updated to PCRE 7.5 (bugfix release).
+
+    o	capture.output() completes an incomplete final line of
+	output when file = NULL.  (PR#10534)
+
+    o	capture.output() now returns invisibly if output is written to
+	a file/connection.
+
+    o	format.AsIs() did not remove the "AsIs" class and so could go
+	into an infinite loop.
+
+    o	summary.mlm() lost the names of the coefficients when there
+	was only one.
+
+    o	Rdconv was not marking examples files with an encoding if
+	this was known from the package's DESCRIPTION file.
+
+    o	readChar() from a raw vector was reading a number of bytes,
+	not characters.
+
+    o	slotNames() was erroneously treating classes that extend
+	"character" as strings.
+
+    o	R no longer ignores SIGPIPE signals even in processes launched
+	by system().  Instead PR#1959 is handled by a simple error
+	handler which will give an error message in circumstances
+	where none was given before.
+
+    o	The AIC() S4 generic in package stats4 no longer disables
+	dispatch of S3 methods for AIC().
+
+    o	The conflicts check in library() excluded all S4 generics, even
+	where they were unrelated to the function masked.  It is now
+	more selective (although still too generous to S4 generics).
+
+    o	proc.time() was missing a protect and could misbehave if
+	provoked by gctorture().  (PR#10600)
+
+    o	The cut() and hist() methods for dates and datetimes are now
+	more accurate for intervals of "months" and "years", thanks to
+	Marc Schwarz.
+
+    o	url()/download.file() could segfault if the HTTP interaction
+	involved a redirect to an address starting with '/' on the
+	same server.
+
+    o	Memory allocations used in format() and in an internal utility
+	function could be off by one byte. (PR#10635)
+
+    o	isoreg(x, y) no longer segfaults when y has NAs.
+
+    o	split(x, g) always returns a list as documented.  (It used to
+	return NULL for a zero-length 'x'.)
+
+    o	tapply(x, g, ...) misbehaved if the args were of zero length.
+	(PR#10644)
+
+    o	hist.POSIXt(*, xaxt = "n") no longer suppresses the y-axis.
+
+    o	strptime() crashed under certain locales on Mac OS X.
+
+    o	gregexpr() no longer segfaults when "" is given as the search
+	pattern.  Thanks to Hervé Pagès for the bug report.
+
+    o	matplot(x, *) with default 'pch' did not plot columns from column
+	number 37 on (because the default pch was NA for those). (PR#10676)
+
+    o	print.htest() lost output when used within sink(file, split=TRUE).
+
+    o	Setting par(col.main=) also set par("col") to the same colour.
+
+    o	Anonymous fifos were broken (again).
+
+
+
+		CHANGES IN R VERSION 2.6.1
+
+
+NEW FEATURES
+
+    o	The "data.frame" and "factor" methods for [[ now support
+	the 'exact' argument introduced in 2.6.0.
+
+    o	plot.lm() gains a new argument 'cex.caption' to allow the
+	size of the captions to be controlled.
+
+    o	A series of changes make the CHARSXP cache introduced in 2.6.0
+	faster (and in some cases many times faster) in sessions with
+	a large number (e.g. a million) of unique character strings,
+	and also if there are many empty strings.
+
+    o	embedFonts(), bitmap() and dev2bitmap() explicitly turn off
+	auto-rotation in Ghostscript when generating PDF.
+
+    o	The canonical architecture is no longer checked when loading
+	packages using a non-empty sub-architecture, since it is
+	possible to (e.g.) build packages for i386-pc-linux-gnu on both
+	that architecture and on x86_64-unknown-linux-gnu.
+
+    o	Deparsing will (if option warnIncomplete is set) warn on
+	strings longer than the parser limit (8192 bytes).
+
+    o	url() now uses the UserAgent header in http transactions in
+	the same way as download.file() (making use of option
+	"HTTPUserAgent").
+
+
+BUG FIXES
+
+    o	iconv() is again able to translate character strings with
+	embedded nuls (such as those in UCS-2).
+
+    o	new.packages() and update.packages() failed when called on an
+	empty library, since old.packages() threw an error.
+	old.packages() now returns NULL (as documented) in that case.
+
+    o	Builds on Mac OS X 10.4 or higher now allocate enough space
+	in the binary headers to relocate dependent libraries into the
+	framework.
+
+    o	R CMD build now computes the exclusion list on the copy it
+	makes: this avoids problems if the original sources contain
+	symbolic links (which are resolved in the copy).  Thanks to
+	Michael Lawrence for diagnosis and patch.
+
+    o	object.size() had slightly too low a size for objects of type "S4".
+
+    o	symbol() in plotmath expressions was only accepting valid
+	character strings, which made it impossible to specify symbols
+	such as aleph (obtained by symbol("\300")) in a UTF-8 locale.
+
+    o	An event handling issue caused autorepeat functions to
+	misbehave with tcltk (notably scrollbars).
+
+    o	plot(sin, -5, 5) gives ylab 'sin(x)' again, where it resulted
+	in 'x(x)' in 2.6.0.  Further,  plot(sin)  again plots from
+	[0,1] also in cases where a previously used coordinate system
+	differs.
+
+    o	curve() with unspecified 'from', 'to' and 'xlim' now reuses the
+	previous x limits, and not slightly larger ones.
+
+    o	It was intended that R code filenames in packages should start
+	with an ASCII letter or digits (and R CMD INSTALL uses that),
+	but the test used in R CMD build ([A-Za-z0-9]) was
+	locale-specific (and excluded t to y in Estonian, for
+	example).  (PR#10351)
+
+    o	'R CMD build' could misbehave when faced with files with CRLF
+	line endings *and* no line ending on the final line of the
+	file, removing the last byte of the file.
+
+    o	DF[i, j] failed in 2.6.0 if j was a logical vector selecting a
+	single column.
+
+    o	Unix x11() would fail if a valid 'display' was specified but
+	DISPLAY was unset. (PR#10379)
+
+    o	postscript() was not always ignoring .Postscript.Options in
+	the workspace (where it should not have occurred).
+
+    o	help.search() would give an error if it found a badly
+	installed package, even if 'package' was not specified.
+
+    o	tclServiceMode() (package tcltk) now works under Unix-alikes.
+	(Although documented, it used only to work under Windows.)
+
+    o	As Mac OS X 10.5.x comes with incompatible /bin/sh shell, we
+	force SHELL=/bin/bash (which is ok) in that case. [Only for
+	2.6.x: another solution is used in 2.7.0.]
+
+    o	Deliberately using malformed source attributes no longer
+	causes deparsing/printing of functions to crash R. (PR#10437)
+
+    o	R CMD check and R CMD INSTALL now work with (some) directory
+	names containing spaces.
+
+    o	choose(n, k) gave incorrect values for negative n and small k.
+
+    o	plot.ts(x,y) could use wrong default labels; fixed thanks to
+	Antonio, Fabio di Narzo.
+
+    o	reshape() got column names out of sync with contents in some
+	cases; found by Antonio Fabio Di Narzo.
+
+    o	ar(x) for short 'x' (i.e. length <= 10) could fail because the
+	default 'order.max' was >= length(x) which is non-sensical.
+
+    o	Keyboard events in getGraphicsEvent() could cause stack
+	imbalance errors. (PR#10453)
+
+
+
+		CHANGES IN R VERSION 2.6.0
+
+
+SIGNIFICANT USER-VISIBLE CHANGES
+
+    o	integrate(), nlm(), nlminb(), optim(), optimize() and uniroot()
+	now have '...' much earlier in their argument list.  This
+	reduces the chances of unintentional partial matching but
+	means that the later arguments must be named in full.
+
+    o	The default type for nchar() is now "chars".  This is almost
+	always what was intended, and differs from the previous default
+	only for non-ASCII strings in a MBCS locale.  There is a new
+	argument 'allowNA', and the default behaviour is now to throw
+	an error on an invalid multibyte string if type="chars" or
+	type="width".
+
+    o	Connections will be closed if there is no R object referring to
+	them.  A warning is issued if this is done, either at garbage
+	collection or if all the connection slots are in use.
+
+
+NEW FEATURES
+
+    o	abs(), sign(), sqrt(), floor(), ceiling(), exp() and the gamma,
+	trig and hyperbolic trig functions now only accept one
+	argument even when dispatching to a Math group method (which
+	may accept more than one argument for other group members).
+
+    o	abbreviate() gains a 'method' argument with a new option
+	"both.sides" which can make shorter abbreviations.
+
+    o	aggregate.data.frame() no longer changes the group variables
+	into factors, and leaves alone the levels of those which are
+	factors.  (Inter alia grants the wish of PR#9666.)
+
+    o	The default 'max.names' in all.names() and all.vars() is now
+	-1 which means unlimited.  This fixes PR#9873.
+
+    o	as.vector() and the default methods of as.character(),
+	as.complex(), as.double(), as.expression(), as.integer(),
+	as.logical() and as.raw() no longer duplicate in most cases
+	where the object is unchanged.	(Beware: some code has been
+	written that invalidly assumes that they do duplicate, often
+	when using .C/.Fortran(DUP=FALSE).)
+
+    o	as.complex(), as.double(), as.integer(), as.logical() and
+	as.raw() are now primitive and internally generic for
+	efficiency. They no longer dispatch on S3 methods for
+	as.vector() (which was never documented).  as.real() and
+	as.numeric() remain as alternative names for as.double().
+
+	expm1(), log(), log1p(), log2(), log10(), gamma(), lgamma(),
+	digamma() and trigamma() are now primitive.  (Note that logb()
+	is not.)
+
+	The Math2 and Summary groups (round, signif, all, any, max, min,
+	sum, prod, range) are now primitive.
+
+	See under METHODS PACKAGE below for some consequences for S4 methods.
+
+    o	apropos() now sorts by name and not by position on the search
+	path.
+
+    o	attr() gains an 'exact = TRUE' argument to disable partial
+	matching.
+
+    o	bxp() now allows 'xlim' to be specified. (PR#9754)
+
+    o	C(f, SAS) now works in the same way as C(f, treatment), etc.
+
+    o	chol() is now generic.
+
+    o	dev2bitmap() has a new option to go via PDF and so allow
+	semi-transparent colours to be used.
+
+    o	dev.interactive() regards devices with the displaylist enabled
+	as interactive, and packages can register the names of their
+	devices as interactive via deviceIsInteractive().
+
+    o	download.packages() and available.packages() (and functions
+	which use them) now support in 'repos' or 'contriburl' either
+	file: plus a general path (including drives on a UNC path on
+	Windows) or a file:/// URL in the same way as url().
+
+    o	dQuote() and sQuote() are more flexible, with rendering
+	controlled by the new option 'useFancyQuotes'.	This includes
+	the ability to have TeX-style rendering and directional quotes
+	(the so-called 'smart quotes') on Windows.  The default is to
+	use directional quotes in UTF-8 locales (as before) and in the
+	Rgui console on Windows (new).
+
+    o	duplicated() and unique() and their methods in base gain an
+	additional argument 'fromLast'.
+
+    o	fifo() no longer has a default 'description' argument.
+
+	fifo("") is now implemented, and works in the same way as file("").
+
+    o	file.edit() and file.show() now tilde-expand file paths on all
+	interfaces (they used to on some and not others).
+
+    o	The find() argument is now named 'numeric' and not 'numeric.':
+	the latter was needed to avoid warnings about name clashes
+	many years ago, but partial matching was used.
+
+    o	stats:::.getXlevels() confines attention to factors since some
+	users expected R to treat unclass(<a factor>) as a numeric
+	vector.
+
+    o	grep(), strsplit() and friends now warn if incompatible sets
+	of options are used, instead of silently using the documented
+	priority.
+
+    o	gsub()/sub() with perl = TRUE now preserves attributes from the
+	argument x on the result.
+
+    o	is.finite() and is.infinite() are now S3 and S4 generic.
+
+    o	jpeg(), png(), bmp() (Windows), dev2bitmap() and bitmap() have
+	a new argument 'units' to specify the units of 'width' and
+	'height'.
+
+    o	levels() is now generic (levels<- has been for a long time).
+
+    o	Loading serialized raw objects with load() is now considerably
+	faster.
+
+    o	New primitive nzchar() as a faster alternative to
+	nchar(x) > 0 (and avoids having to convert to wide chars in
+	a MBCS locale and hence consider validity).
+
+    o	The way old.packages() and hence update.packages() handle
+	packages with different versions in multiple package
+	repositories has been changed.	The first package encountered
+	was selected, now the one with highest version number.
+
+    o	optim(method = "L-BFGS-B") now accepts zero-length parameters,
+	like the other methods.	 Also, method = "SANN" no longer
+	attempts to optimize in this case.
+
+    o	New options 'showWarnCalls' and 'showErrorCalls' to give a
+	concise traceback on warnings and errors.  showErrorCalls=TRUE
+	is the default for non-interactive sessions.  Option
+	'showNCalls' controls how abbreviated the call sequence is.
+
+    o	New options 'warnPartialMatchDollar', 'warnPartialMatchArgs'
+	and 'warnPartialMatchAttr' to help detect the unintended use
+	of partial matching in $, argument matching and attr()
+	respectively.
+
+    o	A device named as a character string in options(device =) is now
+	looked for in the grDevices name space if it is not visible
+	from the global environment.
+
+    o	pmatch(x, y, duplicates.ok = TRUE) now uses hashing and so is
+	much faster for large x and y when most matches are exact.
+
+    o	qr() is now generic.
+
+    o	It is now a warning to have an non-integer object for
+	.Random.seed: this indicates a user had been playing with it,
+	and it has always been documented that users should only save
+	and restore it.
+
+    o	New higher-order functions Reduce(), Filter() and Map().
+
+    o	[g]regexpr() gain an 'ignore.case' argument for consistency with
+	grep().	 (This does change the positional matching
+	of arguments, but no instances of positional matching beyond
+	the second were found.)
+
+    o	relist() utility, an S3 generic with several methods, providing
+	an 'inverse' for unlist(); thanks to a code proposal from
+	Andrew Clausen.
+
+    o	require() now returns invisibly.
+
+    o	The interface to reshape() has been revised, allowing some
+	simplified forms that did not work before, and somewhat
+	improved error handling. A new argument 'sep' has been
+	introduced to replace simple usages of 'split' (the old
+	features are retained).
+
+    o	rmultinom() uses a high-precision accumulator where available,
+	and so is more likely to give the same result on different
+	platforms (although it is still possible to get different
+	results, and the result may differ from previous versions of R).
+
+    o	row() and col() now work on matrix-like objects such as data
+	frames, not just matrices.
+
+    o	Rprof() allows smaller values of 'interval' on machines that
+	support it: for example modern Linux systems support
+	interval = 0.001.
+
+    o	sample() now requires its first argument 'x' to be numeric
+	(in the sense of is.numeric()) as well as of length 1 and >= 1
+	before it is regarded as shorthand for 1:x.
+
+    o	sessionInfo() now provides details about package name spaces
+	that are loaded but not attached.  The output of sessionInfo
+	has been improved to make it easier to read when it is
+	inadvertently wrapped after being pasted into an email
+	message.
+
+    o	setRepositories() has a new argument 'ind' to allow selections
+	to be made programmatically.
+
+    o	sprintf() no longer has a output string length limit.
+
+    o	storage.mode<- is now primitive, and hence makes fewer copies
+	of an object (none if the mode is unchanged).  It is a little
+	less general than mode<-, which remains available.  (See also
+	the entry under DEFUNCT below.)
+
+    o	sweep() gains an argument 'check.margin = TRUE' which warns
+	about mismatched dimensions.
+
+    o	The mathematical annotation facility (plotmath) now recognises
+	a symbol() function which forces the font to be a symbol font.
+	This allows access to all characters in the Adobe Symbol
+	encoding within plotmath expressions.
+
+    o	For OSes that cannot unset environment variables, Sys.unsetenv()
+	sets the value to "", with a warning.
+
+    o	New function Sys.which(), an interface to 'which' on
+	Unix-alikes and an emulation on Windows.
+
+    o	On Unix-alikes, system(, intern = TRUE) reports on very long
+	lines that may be truncated, giving the line number of the
+	content being read.
+
+    o	termplot() has a default for 'ask' that uses dev.interactive().
+
+	It allows 'ylim' to be set, or computed to cover all the
+	plots to be made (the new default) or computed for each plot
+	(the previous default).
+
+    o	uniroot(f, *) is slightly faster for non-trivial f() because it
+	computes f(lower) and f(upper) only once, and it has new optional
+	arguments 'f.lower' and 'f.upper' by which the caller can pass these.
+
+    o	unlink() is now internal, using common POSIX code on all platforms.
+
+    o	unsplit() now works with lists of dataframes.
+
+    o	The vcov() methods for classes "gls" and "nlme" have migrated to
+	package 'nlme'.
+
+    o	vignette() has a new argument 'all' to choose between showing
+	vignettes in attached packages or in all installed packages.
+
+    o	New function within(), which is like with(), except that it
+	returns modified versions back of lists and data frames.
+
+    o	X11(), postscript() (and hence bitmap()), xfig(), jpeg(), png()
+	and the Windows devices win.print(), win.metafile() and bmp()
+	now warn (once at first use) if semi-transparent colours are
+	used (rather than silently treating them as fully
+	transparent).
+
+    o	New function xspline() to provide base graphics support of
+	X-splines (cf grid.xspline).
+
+    o	New function xyTable() does the 2D gridding "computations" used by
+	sunflowerplot().
+
+
+    o	Rd conversion to HTML and CHM now makes use of classes, which
+	are set in the stylesheets.  Editing R.css will change the
+	styles used for \env, \option, \pkg etc.  (CHM styles are set
+	at compilation time.)
+
+    o	The documented arguments of '%*%' have been changed to be x
+	and y, to match S and the implicit S4 generic.
+
+    o	If members of the Ops group (the arithmetic, logical and
+	comparison operators) and '%*%' are called as functions,
+	e.g. '>'(x, y), positional matching is always used.  (It used
+	to be the case that positional matching was used for the
+	default methods, but names would be matched for S3 and S4
+	methods and in the case of '!' the argument name differed
+	between S3 and S4 methods.)
+
+    o	Imports environments of name spaces are named (as
+	"imports:foo"), and so are known e.g. to environmentName().
+
+    o	Package 'stats4' uses lazy-loading not SaveImage (which is now
+	deprecated).
+
+    o	Installing help for a package now parses the .Rd file only
+	once, rather than once for each type.
+
+    o	PCRE has been updated to version 7.2.
+
+    o	bzip2 has been updated to version 1.0.4.
+
+    o	gettext has been updated to version 0.16.1.
+
+    o	There is now a global CHARSXP cache, R_StringHash.  CHARSXPs
+	are no longer duplicated and must not be modified in place.
+	Developers should strive to only use mkChar (and mkString) for
+	creating new CHARSXPs and avoid use of allocString.  A new
+	macro, CallocCharBuf, can be used to obtain a temporary char
+	buffer for manipulating character data.	 This patch was
+	written by Seth Falcon.
+
+    o	The internal equivalents of as.complex, as.double, as.integer
+	and as.logical used to handle length=1 arguments now accept
+	character strings (rather than report that this is
+	'unimplemented').
+
+    o	Lazy-loading a package is now substantially more efficient (in
+	memory saved and load time).
+
+    o	Various performance improvements lead to a 45% reduction
+	in the startup time without 'methods' (and one-sixth with -
+	'methods' now takes 75% of the startup time of a default session).
+
+    o	The [[ subsetting operator now has an argument 'exact' that
+	allows programmers to disable partial matching (which will in
+	due course become the default).	 The default value is exact=NA
+	which causes a warning to be issued when partial matching
+	occurs.	 When exact = TRUE, no partial matching will be
+	performed.  When exact = FALSE, partial matching can occur and
+	no warning will be issued.  This patch was written by Seth
+	Falcon.
+
+    o	Many of the C-level warning / error messages (e.g. from
+	subscripting) have been re-worked to give more detailed
+	information on either the location or the cause of the
+	problem.
+
+    o	The S3 and S4 Math groups have been harmonized.	 Functions
+	log1p(), expm1(), log10() and log2() are members of the S3
+	group, and sign(), log1p(), expm1(), log2(), cummax(),
+	cummin(), digamma(), trigamma() and trunk() are members of the
+	S4 group.  gammaCody() is no longer in the S3 Math group.
+	They are now all primitive.
+
+    o	The initialization of the random-number stream makes use of the
+	sub-second part of the current time where available.
+
+	Initialization of the 1997 Knuth TAOCP generator is now done
+	in R code, avoiding some C code whose licence status has been
+	questioned.
+
+    o	The reporting of syntax errors has been made more user-
+	friendly.
+
+
+METHODS PACKAGE
+
+    o	Packages using 'methods' have to have been installed in R 2.4.0
+	or later (when various internal representations were changed).
+
+    o	Internally generic primitives no longer dispatch S4 methods on
+	S3 objects.
+
+    o	load() and restoring a workspace attempt to detect and warn on
+	the loading of pre-2.4.0 S4 objects.
+
+    o	Making functions primitive changes the semantics of S4
+	dispatch: these no longer dispatch on classes based on types
+	but do dispatch whenever the function in the base name space is
+	called.
+
+	This applies to as.complex(), as.integer(), as.logical(),
+	as.numeric(), as.raw(), expm1(), log(), log1p(), log2(),
+	log10(), gamma(), lgamma(), digamma() and trigamma(), as
+	well as the Math2 and Summary groups.
+
+	Because all members of the group generics are now primitive,
+	they are all S4 generic and setting an S4 group generic does
+	at last apply to all members and not just those already made
+	S4 generic.
+
+	as.double() and as.real() are identical to as.numeric(), and
+	now remain so even if S4 methods are set on any of them.
+	Since 'as.numeric' is the traditional name used in S4,
+	currently methods must be exported from a NAMESPACE for
+	'as.numeric' only.
+
+    o	The S4 generic for '!' has been changed to have signature (x)
+	(was (e1)) to match the documentation and the S3 generic.
+	setMethod() will fix up methods defined for (e1), with a
+	warning.
+
+    o	The "structure" S4 class now has methods that implement the
+	concept of structures as described in the Blue Book--that
+	element-by-element functions and operators leave structure
+	intact unless they change the length.  The informal behavior
+	of R for vectors with attributes was inconsistent.
+
+    o	The implicitGeneric() function and relatives have been added to
+	specify how a function in a package should look when methods are
+	defined for it.	 This will be used to ensure that generic versions
+	of functions in R core are consistent.	See ?implicitGeneric.
+
+    o	Error messages generated by some of the functions in the methods
+	package provide the name of the generic to provide more
+	contextual information.
+
+    o	It is now possible to use setGeneric(useAsDefault = FALSE) to
+	define a new generic with the name of a primitive function
+	(but having no connection with the primitive).
+
+    o	showMethods() has a "smart" default for 'inherited' such that
+	showMethods(<genfun>, incl = TRUE)  becomes a useful short cut.
+
+
+DEPRECATED & DEFUNCT
+
+    o	$ on an atomic vector now gives a warning that it is 'invalid'.
+	It remains deprecated, but may be removed in R >= 2.7.0.
+
+    o	storage.mode(x) <- "real" and storage.mode(x) <- "single" are
+	defunct: use instead storage.mode(x) <- "double" and
+	mode(x) <- "single".
+
+    o	In package installation, SaveImage: yes is deprecated in
+	favour of LazyLoad: yes.
+
+    o	seemsS4Object (methods package) is deprecated in favour of isS4().
+
+    o	It is planned that [[exact=TRUE]] will become the default in
+	R 2.7.0.
+
+
+UTILITIES
+
+    o	checkS3methods() (invoked by R CMD check) now checks the
+	arguments of methods for primitive members of the S3 group
+	generics.
+
+    o	R CMD check now does a recursive copy on the 'tests' directory.
+
+    o	R CMD check now warns on non-ASCII .Rd files without an
+	\encoding field, rather than just on ones that are definitely
+	not from an ISO-8859 encoding.	This agrees with the
+	long-standing stipulation in 'Writing R Extensions', and
+	catches some packages with UTF-8 man pages.
+
+    o	R CMD check now warns on DESCRIPTION files with a non-portable
+	Encoding field, or with non-ASCII data and no Encoding field.
+
+    o	R CMD check now loads all the 'Suggests' and 'Enhances'
+	dependencies to reduce warnings about non-visible objects, and
+	also emulates standard functions (such as shell()) on
+	alternative R platforms.
+
+    o	R CMD check now (by default) attempts to latex the vignettes
+	rather than just weave and tangle them: this will give a NOTE
+	if there are latex errors.
+
+    o	R CMD check computations no longer ignore Rd \usage entries for
+	functions for extracting or replacing parts of an object, so S3
+	methods should use the appropriate \method{} markup.
+
+    o	R CMD check now checks for CR (as well as CRLF) line endings in
+	C/C++/Fortran source files, and for non-LF line endings in
+	Makefile[.in] and Makevars[.in] in the package 'src'
+	directory.  R CMD build will correct non-LF line endings in
+	source files and in the make files mentioned.
+
+    o	Rdconv now warns about unmatched braces rather than silently
+	omitting sections containing them.  (Suggestion by Bill
+	Dunlap, PR#9649)
+
+	Rdconv now renders (rather than ignores) \var{} inside \code{}
+	markup in latex conversion.
+
+	R CMD  Rdconv gains a --encoding argument to set the default
+	encoding for conversions.
+
+    o	The list of CRAN mirrors now has a new (manually maintained)
+	column "OK" which flags mirrors that seem to be OK, only those
+	are used by chooseCRANmirror(). The now exported function
+	getCRANmirrors() can be used to get all known mirrors or only
+	the ones that are OK.
+
+    o	R CMD SHLIB gains arguments --clean and --preclean to clean up
+	intermediate files after and before building.
+
+    o	R CMD config now knows about FC and FCFLAGS (used for F9x
+	compilation).
+
+    o	R CMD Rdconv now does a better job of rendering quotes in
+	titles in HTML, and \sQuote and \dQuote into text on Windows.
+
+
+C-LEVEL FACILITIES
+
+    o	New utility function alloc3DArray similar to allocMatrix.
+
+    o	The entry point R_seemsS4Object in Rinternals.h has not been
+	needed since R 2.4.0 and has been removed.  Use IS_S4_OBJECT
+	instead.
+
+    o	Applications embedding R can use R_getEmbeddingDllInfo() to
+	obtain DllInfo for registering symbols present in the
+	application itself.
+
+    o	The instructions for making and using standalone libRmath have
+	been moved to the R Installation and Administration manual.
+
+    o	CHAR() now returns (const char *) since CHARSXPs should no
+	longer be modified in place.  This change allows compilers to
+	warn or error about improper modification.  Thanks to Hervé
+	Pagès for the suggestion.
+
+    o	acopy_string is a (provisional) new helper function that
+	copies character data and returns a pointer to memory
+	allocated using R_alloc.  This can be used to create a copy of
+	a string stored in a CHARSXP before passing the data on to a
+	function that modifies its arguments.
+
+    o	asLogical, asInteger, asReal and asComplex now accept STRSXP
+	and CHARSXP arguments, and asChar accepts CHARSXP.
+
+    o	New entry point R_GE_str2col listed in R_ext/GraphicsEngine.h
+	for external graphics device developers.
+
+    o	doKeybd and doMouseevent are now exported in GraphicsDevice.h.
+
+    o	R_alloc now has first argument of type 'size_t' to support
+	64-bit platforms (e.g. Win64) with a 32-bit 'long' type.
+
+    o	The type of the last two arguments of getMatrixDimnames (non-API
+	but mentioned in R-exts.texi and in Rinternals.h) has been
+	changed to 'const char **' (from char **).
+
+    o	R_FINITE now always resolves to the function call R_finite in
+	packages (rather than sometimes substituting isfinite).	 This
+	avoids some issues where R headers are called from C++ code
+	using features tested on the C compiler.
+
+    o	The advice to include R headers from C++ inside extern "C" {}
+	has been changed.  It is nowadays better *not* to wrap the
+	headers, as they include other headers which on some OSes
+	should not be wrapped.
+
+    o	Rinternals.h no longer includes a substantial set of C headers.
+	All but ctype.h and errno.h are included by R.h which is supposed
+	to be used before Rinternals.h.
+
+    o	Including C system headers can be avoided by defining NO_C_HEADERS
+	before including R headers.  This is intended to be used from
+	C++ code, and you will need to include C++ equivalents such as
+	<cmath> before the R headers.
+
+
+INSTALLATION
+
+    o	The 'test-Lapack' test is now part of 'make check'.
+
+    o	The 'stat' system call is now required, along with 'opendir'
+	(which had long been used but not tested for).	('make check'
+	would have failed in earlier versions without these calls.)
+
+    o	'evince' is now considered as a possible PDF viewer.
+
+    o	'make install-strip' now also strips the DLLs in the standard
+	packages.
+
+    o	Perl 5.8.0 (released in July 2002) or later is now required.
+	(R 2.4.0 and later have in fact required 5.6.1 or later.)
+
+    o	The C function 'finite' is no longer used: we expect a C99
+	compiler which will have 'isfinite'.  (If that is missing, we
+	test separately for NaN, Inf and -Inf.)
+
+    o	A script/executable 'texi2dvi' is now required on Unix-alikes:
+	it is part of the texinfo distribution.
+
+    o	Files texinfo.tex and txi-en.tex are no longer supplied in
+	doc/manual (as the latest versions have an incompatible
+	licence).  You will need to ensure that your texinfo and/or
+	TeX installations supply them.
+
+    o	wcstod is now required for MBCS support.
+
+    o	There are some experimental provisions for building on Cygwin.
+
+
+PACKAGE INSTALLATION
+
+    o	The encoding declared in the DESCRIPTION file is now used as
+	the default encoding for .Rd files.
+
+    o	A standard for specifying package license information in the
+	DESCRIPTION License field was introduced, see 'Writing R
+	Extensions'.  In addition, files LICENSE or LICENCE in a package
+	top-level source directory are now installed (so putting copies
+	into the 'inst' subdirectory is no longer necessary).
+
+    o	install.packages() on a Unix-alike now updates
+	doc/html/packages.html only if packages are installed to
+	.Library (by that exact name).
+
+    o	R CMD INSTALL --clean now runs SHLIB --clean to do the clean
+	up (unless there is a src/Makefile), and this will remove
+	$(OBJECTS) (which might have been redefined in Makevars).
+
+	R CMD INSTALL --preclean cleans up the sources after a
+	previous installation (as if that had used --clean) before
+	attempting to install.
+
+	R CMD INSTALL will now run R CMD SHLIB in the 'src' directory
+	if src/Makevars is present, even if there are no source files
+	with known extensions.
+
+    o	If there is a file src/Makefile, src/Makevars is now ignored
+	(it could be included by src/Makefile if desired), and it is
+	preceded by etc/Makeconf rather than share/make/shlib.mk.
+	Thus the makefiles read are R_HOME/etc/Makeconf, src/Makefile
+	in the package and then any personal Makevars files.
+
+    o	R CMD SHLIB used to support the use of 'OBJS' in Makevars, but
+	this was changed to 'OBJECTS' in 2001.	The undocumented
+	alternative of 'OBJS' has finally been removed.
+
+    o	R CMD check no longer issues a warning about no data sets
+	being present if a lazyload db is found (as determined by the
+	presence of Rdata.rdb, Rdata.rds, and Rdata.rdx in the 'data'
+	subdirectory.
+
+
+BUG FIXES
+
+    o	charmatch() and pmatch() used to accept non-integer values for
+	'nomatch' even though the return value was documented to be
+	integer.  Now 'nomatch' is coerced to integer (rather than the
+	result being coerced to the type of 'nomatch').
+
+    o	match.call() no longer 'works' outside a function unless
+	'definition' is supplied.  (Under some circumstances it used
+	to 'work', matching itself.)
+
+    o	The formula methods of boxplot, cdplot, pairs and spineplot
+	now attach 'stats' so that model.frame() is visible where
+	they evaluate it.
+
+    o	Date-time objects are no longer regarded as numeric by
+	is.numeric().
+
+    o	methods("Math") did not work if 'methods' was not attached.
+
+    o	readChar() read an extra empty item (or more than one) beyond
+	the end of the source; in some conditions it would terminate
+	early when reading an item of length 0.
+
+    o	Added a promise evaluation stack so interrupted promise
+	evaluations can be restarted.
+
+    o	R.version[1:10] now nicely prints.
+
+    o	In the methods package, prototypes are now inherited for the
+	.Data "slot"; i.e., for classes that contain one of the basic
+	data types.
+
+    o	<data frame>[[i, j]] now works if 'i' is character.
+
+    o	write.dcf() no longer writes NA fields (PR#9796), and works
+	correctly on empty descriptions.
+
+    o	pbeta(x, log.p = TRUE) now has improved accuracy in many cases,
+	and so have functions depending on it such as pt(), pf() and
+	pbinom().
+
+    o	mle() had problems with the L-BFGS-B in the no-parameter case
+	and consequentially also when profiling 1-parameter models
+	(fix thanks to Ben Bolker).
+
+    o	Two bugs fixed in methods that in involve the "..." argument in
+	the generic function: previously failed to catch methods that
+	just dropped the "..."; and use of callGeneric() with no arguments
+	failed in some circumstances when "..." was a formal argument.
+
+    o	sequence() now behaves more reasonably, although not
+	back-compatibly for zero or negative input.
+
+    o	nls() now allows more peculiar but reasonable ways of being called,
+	e.g., with data=list(<uneven lengths>) or a model without variables.
+
+    o	match.arg() was not behaving as documented when
+	several.ok=TRUE (PR#9859), gave spurious warnings when 'arg'
+	had the wrong length and was incorrectly documented (exact
+	matches are returned even when there is more than one partial
+	match).
+
+    o	The data.frame method for split<-() was broken.
+
+    o	The test for -D__NO_MATH_INLINES was badly broken and returned
+	true on all non-glibc platforms and false on all glibc ones
+	(whether they were broken or not).
+
+    o	LF was missing after the last prompt when --quiet was used without
+	--slave. Use --slave when no final LF is desired.
+
+    o	Fixed bug in initialisation code in 'grid' package for
+	determining the boundaries of shapes.  Problem reported
+	by Hadley Wickham;  symptom was error message:
+	"Polygon edge not found".
+
+    o	str() is no longer slow for large POSIXct objects.  Its output
+	is also slightly more compact for such objects; implementation
+	via new optional argument 'give.head'.
+
+    o	strsplit(*, fixed=TRUE), potentially iconv() and internal string
+	formatting is now faster for large strings, thanks to report
+	PR#9902 by John Brzustowski.
+
+    o	de.restore() gave a spurious warning for matrices (Ben Bolker)
+
+    o	plot(fn, xlim=c(a,b)) would not set "from" and "to" properly
+	when plotting a function.  The argument lists to curve() and
+	plot.function() have been modified slightly as part of the
+	fix.
+
+    o	julian() was documented to work with POSIXt origins, but did
+	not work with POSIXlt ones.  (PR#9908)
+
+    o	Dataset HairEyeColor has been corrected to agree with
+	Friendly (2000): the change involves the breakdown of the
+	Brown hair / Brown eye cell by Sex, and only totals over Sex
+	are given in the original source.
+
+    o	Trailing spaces are now consistently stripped from \alias{}
+	entries in .Rd files, and this is now documented.  (PR#9915)
+
+    o	.find.packages(), packageDescription() and sessionInfo()
+	assumed that attached environments named "package:foo" were
+	package environments, although misguided users could use such
+	a name in attach().
+
+    o	spline() and splinefun() with method = "periodic" could return
+	incorrect results when length(x) was 2 or 3.
+
+    o	getS3method() could fail if the method name contained a regexp
+	metacharacter such as "+".
+
+    o	help(<a character vector>) now uses the name and not the
+	value of the vector unless it has length exactly one, so
+	e.g. help(letters) now gives help on 'letters'.
+	(Related to PR#9927)
+
+    o	Ranges in chartr() now work better in CJK locales, thanks to
+	Ei-ji Nakama.
+
+
+
+
+	**************************************************
+	*						 *
+	*	       2.5 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 2.5.1 patched
+
+INSTALLATION
+
+    o	doc/manual now includes the texinfo support file epsf.tex which
+	basic TeX installations often omit.
+
+
+BUG FIXES
+
+    o	Attempting to do in-memory serialization of an object requiring
+	more than 1Gb might have failed.
+
+    o	Using formals<- on a function whose body was NULL worked
+	incorrectly.  (PR#9758)
+
+    o	logb() is now strictly a wrapper for log(), so if S4 methods
+	are set on log(), logb() will also dispatch on them.
+
+    o	conflicts(where=) did not work correctly. (PR#9760)
+
+    o	log(x, base) was intended to handle complex 'base' even for
+	real 'x', but there was a typo in the code to do so.
+
+    o	Syntax errors would sometimes misreport the error context.
+
+    o	qt(p, df=1) is now also correct for very small p. (PR#9804)
+	qt(p, df=2) ditto; also is more accurate for  0 < |p - 0.5| << 1.
+	qt(*, log.p=TRUE) now is finite and monotone (again!) where possible.
+
+    o	Several functions including those making use of printCoefmat(),
+	layout() and sortedXyData() now work correctly with
+	non-default settings of options("OutDec").
+
+    o	S4 method dispatch for group generics (and %*%) failed to pass
+	arguments to methods as promises and so in some circumstances
+	methods could change their arguments.  (Seen for the 'Math'
+	group with package Matrix.)
+
+    o	The print() method for "ts" now handles quarterly and monthly
+	series which do not start at the beginning of a quarter or
+	month respectively.
+
+    o	Deserializing raw objects saved using save(..., ascii=TRUE)
+	now works correctly.
+
+    o	ISOLatin7 encoding for postscript/PDF has been corrected.
+	(PR#9845)
+
+    o	rbind(x,y) and cbind(x,y) did not dispatch properly when x and
+	y had multiple S3-style classes.
+
+    o	The workaround for seeking on > 2Gb files did not work correctly
+	on Unix-alike 32-bit systems.  (PR#9883)
+
+    o	We had identical(NaN, NA_real_) != identical(NA_real_, NaN),
+	spotted by Petr Savicky.
+
+
+
+		CHANGES IN R VERSION 2.5.1
+
+
+NEW FEATURES
+
+    o	density(1:20, bw = "SJ") now works as bw.SJ() now tries a larger
+	search interval than the default (lower, upper) if it does not
+	find a solution within the latter.
+
+    o	The output of library() (no arguments) is now sorted by library
+	trees in the order of .libPaths() and not alphabetically.
+
+    o	R_LIBS_USER and R_LIBS_SITE feature possible expansion of
+	specifiers for R version specific information as part of the
+	startup process.
+
+    o	C-level warning calls now print a more informative context,
+	as C-level errors have for a while.
+
+    o	There is a new option "rl_word_breaks" to control the way the
+	input line is tokenized in the readline-based terminal
+	interface for object- and file-name completion.
+	This allows it to be tuned for people who use their space bar
+	vs those who do not.  The default now allows filename-completion
+	with +-* in the filenames.
+
+    o	If the srcfile argument to parse() is not NULL, it will be added
+	to the result as a "srcfile" attribute.
+
+    o	It is no longer possible to interrupt lazy-loading (which was
+	only at all likely when lazy-loading environments), which
+	would leave the object being loaded in an unusable state.
+	This is a temporary measure: error-recovery when evaluating
+	promises will be tackled more comprehensively in 2.6.0.
+
+
+INSTALLATION
+
+    o	'make check' will work with --without-iconv, to accommodate
+	building on AIX where the system iconv conflicts with
+	libiconv and is not compatible with R's requirements.
+
+    o	There is support for 'DESTDIR': see the R-admin manual.
+
+    o	The texinfo manuals are now converted to HTML with a style
+	sheet: in recent versions of makeinfo the markup such as @file
+	was being lost in the HTML rendering.
+
+    o	The use of inlining has been tweaked to avoid warnings from
+	gcc >= 4.2.0 when compiling in C99 mode (which is the default
+	from configure).
+
+
+BUG FIXES
+
+    o	as.dendrogram() failed on objects of class "dendrogram".
+
+    o	plot(type ="s") (or "S") with many (hundreds of thousands)
+	of points could overflow the stack.  (PR#9629)
+
+    o	Coercing an S4 classed object to "matrix" (or other basic class)
+	failed to unset the S4 bit.
+
+    o	The 'useS4' argument of print.default() had been broken by an
+	unrelated change prior to 2.4.1.  This allowed print() and
+	show() to bounce badly constructed S4 objects between
+	themselves indefinitely.
+
+    o	Prediction of the seasonal component in HoltWinters() was one
+	step out at one point in the calculations.
+
+	decompose() incorrectly computed the 'random' component for a
+	multiplicative fit.
+
+    o	Wildcards work again in unlink() on Unix-alikes (they did not
+	in 2.5.0).
+
+    o	When qr() used pivoting, the coefficient names in qr.coef() were
+	not pivoted to match.  (PR#9623)
+
+    o	UseMethod() could crash R if the first argument was not a
+	character string.
+
+    o	R and Rscript on Unix-alikes were not accepting spaces in -e
+	arguments (even if quoted).
+
+    o	Hexadecimal integer constants (e.g. 0x10L) were not being parsed
+	correctly on platforms where the C function atof did not
+	accept hexadecimal prefixes (as required by C99, but not
+	implemented in MinGW as used by R on Windows).	(PR#9648)
+
+    o	libRlapack.dylib on Mac OS X had no version information and
+	sometimes an invalid identification name.
+
+    o	Rd conversion of \usage treated '\\' as a single backslash in
+	all but latex: it now acts consistently with the other
+	verbatim-like environments (it was never 'verbatim' despite
+	the documentation).
+
+	\code{\.} is now rendered as '\.' in all formats, as
+	documented (it was not the case for latex conversion).
+
+	codoc() (and checkDocStyle() and checkDocUsage()) now apply
+	the same transformations to \usage as Rd conversion does,
+	so {, % and \\ in strings in usages will now be related
+	correctly to the help files.
+
+    o	rbind() failed if the only data frame had 0 rows. (PR#9657)
+
+    o	<a data.frame>[i, j] could sometimes select the wrong column
+	when j is numeric if there are duplicate column names.
+
+    o	sample(x, size, replace=TRUE, prob) had a memory leak if
+	10000 < size <= 100000.
+
+    o	x <- cbind(1:2); rownames(x) <- factor(c("A",NA))  now longer
+	segfaults.
+
+    o	R CMD BATCH no longer assumes Sys.unsetenv() is supported (it
+	is not on older Solaris systems).
+
+    o	median() returned a logical result when it was 'NA': it now
+	returns an NA of appropriate type (e.g. integer or double).
+
+    o	grep(fixed = TRUE, perl = TRUE) ignored 'fixed', although it
+	was documented to ignore 'perl'
+	Same for [g]regexpr and [g]sub.
+
+    o	getNamespaceExports("base") works again.
+
+    o	runmed(c(), 1) no longer segfaults.
+
+    o	qr.coef(QR, b) failed for an LAPACK-produced QR if b was
+	integer or for an over-determined system.
+
+	qr.solve() for an under-determined system produces a
+	solution with 0 and not NA for columns which are unused.
+
+    o	segments() was not handling full transparency correctly in PDF.
+	(PR#9694)
+
+	Nor was arrows().
+
+    o	callGeneric() inside a method with extra arguments {and hence
+	currently defined via .local()} now works.
+
+    o	[g]sub(fixed=TRUE, useBytes=FALSE) could substitute in the
+	wrong place in an MBCS locale.
+
+	gregexpr() could give incorrect answers in MBCS locales for
+	perl = TRUE or fixed = TRUE (unless useBytes = TRUE).
+
+    o	The legacy quartz() device no longer crashes in locator()
+	if the user attempts to close the window.
+
+    o	"CGGStackRestore: gstack underflow" warning is no longer shown
+	in legacy quartz() device.
+
+    o	formatC() now limits 'digits' to 50 to avoid problems in
+	C-level sprintf in some OSes.
+
+    o	seq.int(x, y, by=z) gave 'x' (and not an error) if
+	0 > (y-x)/z > -1.
+
+    o	promptClass() now lists methods, including those for generics in
+	other attached packages.
+
+    o	Connection-related functions such as readBin() no longer crash
+	when supplied with a non-connection object.
+
+    o	as.character.srcref() didn't handle bad srcref objects cleanly.
+
+    o	predict.nls() no longer requires 'newdata' to contain exactly
+	the variable names needed to fit the model: variables used on
+	the LHS only are no longer required and further variables are
+	allowed.
+
+    o	plot.hclust() had a 'out by one' error, and ignored the last
+	object when computing the window region (and could overrun
+	arrays).
+
+    o	deriv() was creating results with double (and not integer) dims.
+
+    o	The unserialize code (e.g. as called by load()) looked for a
+	function findPackageEnv() to set a saved package environment.
+	This was missing, but is now supplied.
+
+    o	[cr]bind could segfault when creating a list matrix result.
+	(Reported by Martin Morgan.)
+
+    o	besselI(x, nu, exp=TRUE) and besselY(x, nu) could give wrong
+	answers for nu < 0. (Reported by Hiroyuki Kawakatsu.)
+
+    o	[g]sub could confuse a trailing byte '\' for a backreference
+	in MBCSs where '\' can occur as a trailing byte (not UTF-8 nor
+	EUC-JP, but SJIS and the CJK character sets used on Windows).
+	(PR#9751)
+
+
+
+		CHANGES IN R VERSION 2.5.0
+
+
+USER-VISIBLE CHANGES
+
+    o	apropos(x) and find(x) now both only work for character 'x',
+	and hence drop all non-standard evaluation behaviour.
+
+    o	Data frames can have 'automatic' row names which are not
+	converted to dimnames by as.matrix().  (Consequently, e.g.,
+	t(.)  for such data frames has NULL column names.)  This
+	change leads to memory reductions in several places, but can
+	break code which assumes character dimnames for data frames
+	derived from matrices.
+
+	No existing R object is regarded as having 'automatic' row
+	names, and it may be beneficial to recreate such objects via
+	read.table() or data.frame().
+
+    o	Using $ on an atomic vector now raises a warning, as does use
+	on an S4 class for which a method has not been defined.
+
+    o	The Unix-alike readline terminal interface now does
+	command-completion for R objects, incorporating the
+	functionality formerly in package 'rcompletion' by Deepayan
+	Sarkar.	 This can be disabled by setting the environment
+	variable R_COMPLETION=FALSE when starting R (e.g. in
+	~/.Renviron).  (Note that when this is enabled, filename
+	completion no longer works for file paths containing R
+	operators such as '+' and '-'.)
+
+
+NEW FEATURES
+
+    o	abbreviate() no longer has an 8191 byte limit on the size of
+	strings it can handle.
+
+    o	abs(x) now returns integer for integer or logical arguments.
+
+    o	apropos() has a new argument 'ignore.case' which defaults to
+	TRUE, potentially matching more than previously, thanks to a
+	suggestion by Seth Falcon.
+
+    o	args(), str() and print() now give the argument lists of primitive
+	functions.
+
+    o	as.matrix() gains the '...' argument that several packages have
+	assumed it always had (and S-PLUS has).
+
+    o	Manipulation of integers as roman numerals via as.roman() in
+	package utils.
+
+    o	attr() no longer treats name = NA_character_ as meaning
+	name = "NA".
+
+    o	binom.test() now allows a 'fuzz' for calculated integer values
+	in its x and n arguments.
+
+    o	boxplot(*, notch = TRUE) now warns when notches are outside
+	hinges; related to PR#7690.
+
+    o	New function callCC() providing a downward-only version of
+	Scheme's call with current continuation.
+
+    o	capabilities() now has a "profmem" entry indicating whether
+	R has been compiled with memory profiling.
+
+    o	colnames<-() and rownames<-() now handle data frames explicitly,
+	so calling colnames<- on a data frame no longer alters the
+	representation of the row names.
+
+    o	commandArgs() has a new 'trailingOnly' argument to be used in
+	conjunction with --args.
+
+    o	contour() now passes graphical parameters in '...' to axis()
+	and box().
+
+    o	New data set 'crimtab' on Student(1908)'s 3000 criminals.
+
+    o	cut.default() has a new argument 'ordered_result'.
+
+    o	.deparseOpts() has two new options: "keepNA" to ensure that
+	different types (logical, integer, double, character and
+	complex) of NAs are distinguished, and "S_compatible" to
+	suppress the use of R-specific features such as 123L and to
+	deparse integer values of a double vector with a trailing
+	decimal point.
+
+	The 'keepInteger' option now uses the suffix 'L' rather than
+	as.integer() where possible (unless all entries are NA or
+	"S_compatible" is also set).
+
+	Other deparse options can now be added to "all" (which has not
+	for some time actually switched on all options).
+
+	Integer sequences m:n are now deparsed in that form.
+
+    o	deparse() and dput() now include "keepInteger" and "keepNA" in
+	their defaults for the 'control' argument.
+
+    o	detach() now takes another argument, unload, which indicates
+	whether or not to unload the package and then only cleans
+	up the S4 methods if the package successfully unloads.
+
+    o	There are new constants NA_integer_, NA_real_, NA_complex_ and
+	NA_character_ to denote NAs of those types, and they will be
+	used in deparsing in place of as.integer(NA) etc unless
+	.deparseOpts() includes "S_compatible".
+
+    o	dev.print() now recognizes 'screen devices' as all those with
+	an enabled display list, rather than a hard-coded set.
+
+    o	Objects of class "difftime" are now handled more flexibly. The
+	units of such objects can now be accessed via a units()
+	function, which also has a replacement form, and there are
+	conversion methods to and from numeric, which also allow the
+	specification of units.	 Objects of this class can also be
+	stored in data frames now.  A format() method has been added,
+	and the print method was revised.
+
+    o	New function environmentName() to give the print name of
+	environments such as "namespace:base".
+	This is now used by str().
+
+    o	New function env.profile() provides R level access to summary
+	statistics on environments.  In a related patch, new.env()
+	now allows the user to specify an initial size for a hashed
+	environment.
+
+    o	file() can read the X11 clipboard selection as "X11_clipboard"
+	on suitable X11-using systems.
+
+    o	file("stdin") is now recognized, and refers to the process's
+	'stdin' file stream whereas stdin() refers to the console.
+	These may differ, for example for a GUI console, an embedded
+	application of R or if --file= has been used.
+
+    o	file_test() is now also available in package utils.
+	(It is now private in package tools.)
+
+    o	file.show() gains an 'encoding' argument.
+
+    o	New functions formatUL() and formatOL() in package utils for
+	formatting unordered (itemize) and ordered (enumerate) lists.
+
+    o	The statistics reported when gcinfo(TRUE) are now of the amounts
+	used (in Mb) and not of the amounts free (which are not really
+	relevant when there are no hard limits, only gc trigger points).
+
+    o	New function get_all_vars() to retrieve all the
+	(untransformed) variables that the default method of
+	model.frame() would use to create the model frame.
+
+    o	interaction() has a new argument 'lex.order'.
+
+    o	initialize() (in methods) now tries to be smarter about
+	updating the new instance in place, thereby reducing
+	copying.
+
+    o	install.packages(dependencies = NA) is a new default, which is
+	to install essential dependencies when installing from
+	repositories to a single library.  As a result of this change,
+	update.packages() will install any new dependencies of the
+	packages it is updating (alongside the package in the same
+	library tree).
+
+	If 'lib' is not specified or is specified of length one and
+	the chosen location is not a writable directory,
+	install.packages() offers to create a personal library
+	directory for you if one does not already exist, and to
+	install there.
+
+    o	is.atomic, is.call, is.character, is.complex, is.double (== is.real),
+	is.environment, is.expression, is.function, is.integer,
+	is.list, is.logical, is.null, is.object, is.pairlist,
+	is.recursive, is.single and is.symbol (== is.name) are no
+	longer internally S3 generic, nor can S4 methods be written
+	for them.
+
+	The "factor" methods of is.integer and is.numeric have been
+	replaced by internal code.
+
+    o	Added is.raw() for completeness.
+
+    o	l10n_info() also reports if the current locale is Latin-1.
+
+    o	levels<-(), names() and names<-() now dispatch internally for
+	efficiency and so no longer have S3 default methods.
+
+    o	.libPaths() now does both tilde and glob expansion.
+
+    o	Functions lm(), glm() loess(), xtabs() and the default method
+	of model.frame() coerce their 'formula'	argument (if supplied)
+	to a formula.
+
+    o	max(), min() and range() now work with character vectors.
+
+    o	message() has a new argument 'appendLF' to handle messages
+	with and without newlines.  There is a new message class
+	packageStartupMessage() that can be suppressed separately.
+
+    o	A new function, method.skeleton() writes a skeleton version of
+	a call to setMethod() to a file, with correct arguments and
+	format, given the name of the function and the method signature.
+
+    o	mode<- and storage.mode<- do slightly less copying.
+
+    o	nls.control(* , printEval = FALSE, warnOnly = FALSE) are two new
+	options to help better analyze (non-)convergence of nls(),
+	thanks to Kate Mullen.
+
+	nls() and summary(nls()) now contain more information and also
+	print information about convergence.
+
+    o	options(device = ) now accepts a function object as well as
+	the name of a function.
+
+    o	pdf() supports new values for 'paper' of "US" (same as
+	"letter"), "a4r" and "USr" (the latter two meaning rotated to
+	landscape).  postscript() also accepts paper = "US".
+
+    o	persp() now respects the graphical pars 'cex.axis', 'cex.lab',
+	'font.axis' and 'font.lab'.
+
+    o	New faster internal functions pmax.int() and pmin.int() for
+	inputs which are atomic vectors without classes (called by
+	pmax/pmin where applicable).
+
+	pmin/pmax are now more likely to work with classed objects:
+	they work with POSIXlt datetimes, for example.
+
+    o	postscript() now by default writes grey colors (including black
+	and white) via 'setgray', which gives more widely acceptable
+	output.	 There are options to write pure RGB, CMYK or gray via
+	the new argument 'colormodel'.
+
+    o	rbind.data.frame() now ignores all zero-row inputs, as well as
+	zero-column inputs (which it used to do, undocumented).	 This
+	is because read.table() can create zero-row data frames with
+	NULL columns, and those cannot be extended.
+
+    o	readChar() and writeChar() can now work with a raw vector.
+
+    o	read.table(), write.table() and allies have been moved to package
+	utils.
+
+    o	rgb() now accepts the red, green and blue components in a
+	single matrix or data frame.
+
+    o	New utility function RShowDoc() in package 'utils' to find and
+	display manuals and other documentation files.
+
+    o	New .row_names_info() utility function finds the number of rows
+	efficiently for data frames; consequently, dim.data.frame()
+	has become very fast for large data frames with 'automatic'
+	row names.
+
+    o	RSiteSearch() now also allows to search postings of the 'R-devel'
+	mailing list.
+
+    o	screeplot() is now (S3) generic with a default method, thanks
+	to a patch from Gavin Simpson.
+
+    o	Experimental 'verbose' argument for selectMethod().  Might be
+	replaced later by a better interface for method selection
+	inspection.
+
+    o	Added links to source files to the parsing routines, so that
+	source() can now echo the original source and comments (rather
+	than deparsing).  This affects example() and Sweave() as well.
+
+    o	stack() and unstack() have been moved to package utils.
+
+    o	strptime() now sets the "tzone" attribute on the result if
+	tz != "".
+
+    o	str.default() typically prints fewer entries of logical vectors.
+
+    o	The RweaveLatex driver for Sweave() now supports two new
+	options: expand=FALSE, to show chunk references in the output,
+	and concordance=TRUE, to output the concordance between input
+	and output lines.
+
+    o	system() now takes the same set of arguments on all platforms,
+	with those which are not applicable being ignored with a
+	warning.  Unix-alikes gain 'input' and 'wait', and Windows
+	gains 'ignore.stderr'.
+
+    o	system.time() and proc.time() now return an object of class
+	"proc_time" with a print() method that returns a POSIX-like
+	format with names.
+
+    o	Sys.getenv() has a new argument 'unset' to allow unset and set
+	to "" to be distinguished (if the OS does).  The results of
+	Sys.getenv() are now sorted (by name).
+
+    o	New function Sys.glob(), a wrapper for the POSIX.2 function
+	glob(3) to do wildcard expansion (on systems which have it,
+	plus an emulation on Windows).
+
+    o	Sys.setenv() is a new (and preferred) synonym for Sys.putenv().
+	The internal C code uses the POSIX-preferred 'setenv' rather
+	than 'putenv' where the former is available.
+
+    o	New function Sys.unsetenv() to remove environment variables
+	(on systems where unsetenv is implemented or putenv can remove
+	variables, such as on Windows).
+
+    o	text(), mtext(), strheight(), strwidth(), legend(), axis(),
+	title(), pie(), grid.text() and textGrob() all attempt to
+	coerce non-language annotation objects (in the sense of is.object)
+	to character vectors.  This is principally intended to cover
+	factors and POSIXt and Date objects, and is done via the
+	new utility function as.graphicsAnnot() in package grDevices.
+
+    o	tcltk:tk_select.list() now chooses the width to fit the widest item.
+
+    o	{re,un}tracemem() are now primitives for efficiency and so
+	migrate from 'utils' to 'base'.
+
+    o	union(), interect(), setdiff() and setequal() now coerce their
+	arguments to be vectors (and they were documented only to
+	apply to vectors).
+
+    o	uniroot() now works if the zero occurs at one of the ends of
+	the interval (suggestion of Tamas Papp).
+
+    o	There is a new function View() for viewing matrix-like
+	objects in a spreadsheet, which can be left up whilst R is
+	running.
+
+    o	New function withVisible() allows R level access to the
+	visibility flag.
+
+    o	zip.file.extract() has been moved to package utils.
+
+
+    o	A few more cases of subassignment work, e.g. <raw>[] <- <list>
+	and <vector>[] <- <expression>, with suitable coercion of the LHS.
+
+    o	There is a warning if \ is used unnecessarily in a string when
+	being parsed, e.g. "\." where probably "\\." was intended.
+	("\." is valid, but the same as ".".)  Thanks to Bill Dunlap
+	for the suggestion.
+
+    o	Introduced the suffix L for integer literals to create
+	integer rather than numeric values, e.g. 100L, 0x10L, 1e2L.
+
+    o	Set the parser to give verbose error messages in case of
+	syntax errors.
+
+    o	The class "LinearMethodsList" has been extended and will be
+	used to create list versions of methods, derived from the
+	methods tables (environments).	The older recursive
+	"MethodsList" class will be deprecated (by the release of
+	2.5.0 if possible).
+
+    o	There are more flexible ways to specify the default library
+	search path.  In addition to R_LIBS and .Library, there are
+	.Library.site (defaults to R_HOME/site-library) and
+	R_LIBS_USER (defaults to a platform- and version-specific
+	directory in ~/R).  See ?.libPaths for details.
+
+    o	LAPACK has been updated to version 3.1.0.  This should cause
+	only small changes to the output, but do remember that the sign
+	of eigenvectors (and principal components) is indeterminate.
+
+    o	PCRE has been updated to version 7.0.
+
+    o	Several functions handle row names more efficiently:
+
+	- read.table() and read.DIF() make use of integer row names
+	  where appropriate, and avoid at least one copy in assigning
+	  them.
+
+	- data.frame() and the standard as.data.frame() methods avoid
+	  generating long dummy row names and then discarding them.
+
+	- expand.grid() and merge() generate compact 'automatic' row
+	  names.
+
+	- data.matrix() and as.matrix.data.frame() have a new argument
+	  'rownames.force' that by default drops 'automatic' row names.
+
+    o	<data frame>[i, j] is substantially more memory-efficient when
+	only a small part of the data frame is selected, especially
+	when (part of) a single column is selected.
+
+    o	Command-line R (and Rterm.exe under Windows) accepts the options
+	'-f filename', '--file=filename' and '-e expression' to follow
+	other script interpreters.  These imply --no-save unless
+	--save is specified.
+
+    o	Invalid bytes in character strings in an MBCS now deparse/print
+	in the form "\xc1" rather than "<c1>", which means they can be
+	parsed/scanned.
+
+    o	Printing functions (without source attributes) and expressions
+	now preserves integers (using the L suffix) and NAs (using
+	NA_real_ etc where necessary).
+
+    o	The 'internal' objects .helpForCall, .tryHelp and topicName are
+	no longer exported from 'utils'.
+
+    o	The internal regex code has been upgraded to glibc 2.5 (from 2.3.6).
+
+    o	Text help now attempts to display files which have an \encoding
+	section in the specified encoding via file.show().
+
+    o	R now attempts to keep track of character strings which are
+	known to be in Latin-1 or UTF-8 and print or plot them
+	appropriately in other locales.	 This is primarily intended
+	to make it possible to use data in Western European languages
+	in both Latin-1 and UTF-8 locales.  Currently scan(),
+	read.table(), readLines(), parse() and source() allow
+	encodings to be declared, and console input in suitable
+	locales is also recognized.
+
+	New function Encoding() can read or set the declared encodings
+	for a character vector.
+
+    o	There have been numerous performance improvements to the data
+	editor on both Windows and X11.	 In particular, resizing the
+	window works much better on X11.
+
+    o	Packages graphics and grid no longer require grDevices, as
+	they might be used only with third-party devices.
+
+
+DEPRECATED & DEFUNCT
+
+    o	symbol.C() and symbol.For() are defunct, and have been replaced
+	by wrappers that give a warning.
+
+    o	Calling a builtin function with an empty argument is now always
+	an error.
+
+    o	The autoloading of ts() is defunct.
+
+    o	The undocumented reserved word GLOBAL.ENV has been removed.
+	(It was yet another way to get the value of the symbol
+	.GlobalEnv.)
+
+    o	The deprecated behaviour of structure() in adding a class when
+	specifying with "tsp" or "levels" attributes is now defunct.
+
+    o	unix() is now finally defunct, having been deprecated for
+	at least seven years.
+
+    o	Sys.putenv() is now deprecated in favour of Sys.setenv(),
+	following the POSIX recommendation.
+
+    o	Building R with --without-iconv is deprecated.
+
+    o	Using $ on an atomic vector is deprecated (it was previously
+	valid and documented to return NULL).
+
+    o	The use of storage.mode<- for other than standard types (and
+	in particular for value "single") is deprecated: use mode<-
+	instead.
+
+
+INSTALLATION
+
+    o	A suitable iconv (e.g. from glibc or GNU libiconv) is
+	required.  For 2.5.x only you can build R without it by
+	configuring using --without-iconv.
+
+    o	There is support again for building on AIX (tested on 5.2 and 5.3)
+	thanks to Ei-ji Nakama.
+
+    o	Autoconf 2.60 or later is used to create 'configure'.  This
+	makes a number of small changes, and incorporates the changes
+	to the detection of a C99-compliant C compiler backported for
+	2.4.1.
+
+    o	Detection of a Java development environment was added such that
+	packages don't need to provide their own Java detection. Newly
+	added make variables are JAVAC, JAVAH, JAR and JAVA_CPPFLAGS.
+
+	R CMD javareconf was updated to look for the corresponding
+	Java tools as well.
+
+	In addition, Java detection honors user-supplied environment
+	variables JAVA_CPPFLAGS, JAVA_LIBS and JAVA_LD_LIBRARY_PATH.
+
+    o	Added workaround for reported non-POSIX sh on OSF1.  (PR#9375)
+
+    o	'make install-strip' now works, stripping the executables and
+	also the shared libraries and modules on platforms where
+	'libtool' knows how to do so.
+
+    o	Building R as a shared library and standalone nmath now
+	installs pkg-config files 'libR.pc' and 'libRmath.pc' respectively.
+
+    o	Added test for insufficiently complete implementation of sigaction.
+
+
+C-LEVEL FACILITIES
+
+    o	Functions str2type, type2char and type2str are now available in
+	Rinternals.h.
+
+    o	Added support for Objective C in R and packages (if available).
+
+    o	R_ParseVector() has a new 4th argument 'SEXP srcfile' allowing
+	source references to be attached to the returned expression list.
+
+    o	Added ptr_R_WriteConsoleEx callback which allows consoles to
+	distinguish between regular output and errors/warnings.
+	To ensure backward compatibility it is only used if
+	ptr_R_WriteConsole is set to NULL.
+
+
+UTILITIES
+
+    o	Additional Sweave() internal functions are exported to help
+	writing new drivers, and RweaveLatexRuncode() is now created
+	using a helper function (all from a patch submitted by Seth
+	Falcon).
+
+    o	The following additional flags are accessible from R CMD config:
+	OBJC, OBJCFLAGS, JAR, JAVA, JAVAC, JAVAH, JAVA_HOME, JAVA_LIBS
+	and JAVA_CPPFLAGS.
+
+    o	R CMD build now takes the package name from the DESCRIPTION
+	file and not from the directory.  (PR#9266)
+
+    o	checkS3methods() (and hence R CMD check) now checks agreement
+	with primitive internal generics, and checks for additional
+	arguments in methods where the generic does not have a '...'
+	argument.
+
+	codoc() now knows the argument lists of primitive functions.
+
+    o	R CMD INSTALL and R CMD REMOVE now use as the default library
+	(if -l is not specified) the first library that would be used
+	if R were run in the current environment (and they run R to
+	find it).
+
+    o	There is a new front-end Rscript which can be used for #!
+	scripts and similar tasks.  See help("Rscript") and 'An
+	Introduction to R' for further details.
+
+    o	R CMD BATCH (not Windows) no longer prepends
+	'invisible(options(echo = TRUE))' to the input script.	This
+	was the default unless --slave is specified and the latter is
+	no longer overridden.
+
+	On all OSes it makes use of the -f argument to R, so
+	file("stdin") can be used from BATCH scripts.
+
+	On all OSes it reports proc.time() at the end of the script
+	unless q() is called with options to inhibit this.
+
+    o	R CMD INSTALL now prepends the installation directory (if
+	specified) to the library search path.
+
+    o	Package installation now re-encodes R files and the NAMESPACE
+	file if the DESCRIPTION file specifies an encoding, and sets
+	the encoding used for reading files in preparing for
+	LazyData.  This will help if a package needs to be used in
+	(say) both latin1 and UTF-8 locales on different systems.
+
+    o	R CMD check now reports on non-ASCII strings in datasets.
+	(These are a portability issue, which can be alleviated by
+	marking their encoding: see 'Writing R Extensions'.)
+
+    o	Rdiff now converts CRLF endings in the target file, and
+	converts UTF-8 single quotes in either to ASCII quotes.
+
+    o	New recommended package 'codetools' by Luke Tierney provides
+	code-analysis tools.  This can optionally be used by 'R CMD
+	check' to detect problems, especially symbols which are not
+	visible.
+
+    o	R CMD config now knows about LIBnn .
+
+    o	New recommended package 'rcompgen' by Deepayan Sarkar
+	provides support for command-line completion under the Unix
+	terminal interface (provided readline is enabled) and the
+	Windows Rgui and Rterm front ends.
+
+
+BUG FIXES
+
+    o	gc() can now report quantities of 'Vcells' in excess of 16Gb on
+	64-bit systems (rather than reporting NA).
+
+    o	Assigning class "factor" to an object now requires it has
+	integer (and not say double) codes.
+
+    o	structure() ensures that objects with added class "factor" have
+	integer codes.
+
+    o	The "formula" and "outer" attributes of datasets 'ChickWeight',
+	'CO2', 'DNase', 'Indometh', 'Loblolly', 'Orange' and 'Theoph'
+	now have an empty environment and not the environment used to
+	dump the datasets in the package.
+
+    o	Dataset 'Seatbelts' now correctly has class c("mts", "ts").
+
+    o	str() now labels classes on data frames more coherently.
+
+    o	Several 'special' primitives and .Internals could return
+	invisibly if the evaluation of an argument led to the
+	visibility flag being turned off.  These included
+	as.character(), as.vector(), call(), dim(), dimnames(),
+	lapply(), rep(), seq() and seq_along().	 Others (e.g. dput()
+	and print.default()) could return visibly when this was not
+	intended.
+
+    o	Several primitives such as dim() were not checking the number
+	of arguments supplied before method dispatch.
+
+    o	Tracing of primitive functions has been corrected.  It should
+	now be the case that tracing either works or is not allowed
+	for all primitive functions. (Problems remain if you make a
+	primitive into a generic when it is being traced.  To be fixed
+	later.)
+
+    o	max.col() now omits infinite values in determining the
+	relative tolerance.
+
+    o	R CMD Sweave and R CMD Stangle now respond to --help and --version
+	like other utilities.
+
+    o	.libPaths() adds only existing directories (as it was
+	documented to, but could add non-directories).
+
+    o	setIs() and setClassUnion() failed to find some existing
+	subclasses and produced spurious warnings, now fixed.
+
+    o	data.frame() ignored 'row.names' for 0-column data frames, and
+	no longer treats an explicit row.names=NULL differently from
+	the default value.
+
+    o	identical() looked at the internal structure of the
+	'row.names' attribute, and not the value visible at R level.
+
+    o	abline(reg) now also correctly works with intercept-only lm
+	models, and abline() warns more when it's called illogically.
+
+    o	warning() was truncating messages at
+	getOption("warning.length") - 1 (not as documented), with no
+	indication.  It now appends '[... truncated]'.
+
+    o	Stangle/Sweave were throwing spurious warnings if options
+	'result' or 'strip.white' were unset.
+
+    o	all.equal() was ignoring 'check.attributes' for list and
+	expression targets, and checking only attributes on raw vectors.
+	Logical vectors were being compared as if they were numeric,
+	(with a mean difference being quoted).
+
+    o	Calculating the number of significant digits in a number was
+	itself subject to rounding errors for digits >= 16.  The
+	calculation has been changed to err on the side of slightly
+	too few significant digits (but still at least 15) rather than
+	far too many.  (An example is print(1.001, digits=16).)
+
+    o	unlink() on Unix-alikes failed for paths containing spaces.
+
+    o	substr() and friends treated NA 'start' or 'stop' incorrectly.
+
+    o	merge(x, y, all.y = TRUE) would sometimes incorrectly return
+	logical columns for columns only in y when there were no
+	common rows.
+
+    o	read.table(fn, col.names=) on an empty file returned NULL
+	columns, rather than logical(0) columns (which is what results
+	from reading a file with just a header).
+
+    o	grid.[xy]axis(label=logical(0)) failed.
+
+    o	expression() was unnecessarily duplicating arguments.
+
+    o	as.expression(<list>) returned a single-element expression
+	vector, which was not compatible with S: it now copies lists
+	element-by-element.
+
+    o	supsmu(periodic = TRUE) could segfault.	 (PR#9502, detection
+	and patch by Bill Dunlap.)
+
+    o	pmax/pmin called with only logical arguments did not coerce to
+	numeric, although they were documented to do so (as max/min
+	do).
+
+    o	methods() did not know that cbind() and rbind() are internally
+	generic.
+
+    o	dim(x) <- NULL removed the names of x, but this was always
+	undocumented.  It is not clear that it is desirable but it is
+	S-compatible and relied on, so is now documented.
+
+    o	which(x, arr.ind = TRUE) did not return a matrix (as
+	documented) if 'x' was an array of length 0.
+
+    o	C-level duplicate() truncated CHARSXPs with embedded nuls.
+
+    o	Partial matching of attributes was not working as documented
+	in some cases if there were more than two partial matches or
+	if "names" was involved.
+
+    o	data(package=character(0)) was not looking in ./data as
+	documented.
+
+    o	summary.mlm() failed if some response names were "" (as can
+	easily happen if cbind() is used).
+
+    o	The postscript() and pdf() drivers shared an encoding list
+	but used slightly different formats.  This caused problems if
+	both were used with the same non-default encoding in the same
+	session.  (PR#9517)
+
+    o	The data editor was not allowing Inf, NA and NaN to be entered
+	in numerical columns.  It was intended to differentiate
+	between empty cells and NAs, but did not do so: it now does
+	so for strings.
+
+    o	supsmu() could segfault if all cases had non-finite values.
+	(PR#9519)
+
+    o	plnorm(x, lower.tail=FALSE) was returning the wrong tail for
+	x <= 0.	 (PR#9520)
+
+    o	which.min() would not report a minimum of +Inf, and
+	analogously for which.max().  (PR#9522)
+
+    o	'R CMD check' could fail with an unhelpful error when checking
+	Rd files for errors if there was only one file and that had a
+	serious error.	(PR#9459)
+
+    o	try() has been reimplemented using tryCatch() to solve two
+	problems with the original implementation: (i) try() would run
+	non-NULL options("error") expressions for errors within a try, and
+	(ii) try() would catch user interrupts.
+
+    o	str(obj) could fail when obj contained a dendrogram.
+
+    o	Using <data frame>[, <last column>] <- NULL failed (PR#9565)
+
+    o	choose(n, k) could return non-integer values for integer n and
+	small k on some platforms.
+
+    o	nclass.scott(x) and nclass.FD(x) no longer return NaN when var(x)
+	or IQR(x) (respectively) is zero.
+
+	hist() now allows breaks = 1 (which the above patch will
+	return), but not breaks = Inf (which gave an obscure error).
+
+    o	strptime("%j") now also works for the first days of Feb-Dec.
+	(PR#9577)
+
+    o	write.table() now recovers better if 'file' is an unopened
+	connection.  (It used to open it for both the column names and
+	the data.)
+
+    o	Fixed bug in mosaicplot(sort=) introduced by undocumented
+	change in R 2.4.1 (changeset r39655).
+
+    o	contr.treatment(n=0) failed with a spurious error message.
+	(It remains an error.)
+
+    o	as.numeric() was incorrectly documented: it is identical to
+	as.double.
+
+    o	jitter(rep(-1, 3)) gave NaNs. (PR#9580)
+
+    o	max.col() was not random for a row of zeroes. (PR#9542)
+
+    o	ansari.test(conf.int=TRUE, exact=FALSE) failed.
+
+    o	trace() now works on S3 registered methods, by modifying the
+	version in the S3 methods table.
+
+    o	rep(length=1, each=0) segfaulted.
+
+    o	postscript() could overflow a buffer if used with a long
+	'command' argument.
+
+    o	The internal computations to copy complete attribute lists did
+	not copy the flag marking S4 objects, so the copies no longer
+	behaved like S4 objects.
+
+    o	The C code of nlminb() was altering a variable without
+	duplicating it.	 (This did not affect nlminb() but would have
+	if the code was called from a different wrapper.)
+
+    o	smooth(kind = "3RS3R") (the current default) used .C(DUP =
+	FALSE) but altered its input argument.	(This was masked by
+	duplication in as.double.)
+
+    o	The signature for the predefined S4 method for as.character()
+	was missing '...' .
+
+    o	readBin(<raw vector>) could read beyond the end of the vector
+	when size-changing was involved.
+
+    o	The C entry point PrintValue (designed to emulate auto-printing)
+	would not find show() for use on S4 objects, and did not have
+	the same search path (for show(), print() and print() methods)
+	as auto-printing.  Also, auto-printing and print() of S4
+	objects would fail to find 'show' if the methods name space was
+	loaded but the package was not attached (or otherwise not in
+	the search path).
+
+    o	print() (and auto-printing) now recognize S4 objects even when
+	'methods' is not loaded, and print a short summary rather than
+	dump the internal structure.
+
+    o	Sweave and Stangle had problems due to partial matching of code
+	chunk names when run with split=TRUE.
+
+    o	install.packages() on a source package now ensures that
+	R CMD INSTALL sees the same library search path as
+	install.packages() did when computing dependencies.
+
+    o	density() now ensures its 'y' values are non-negative. (PR#8876)
+
+    o	is.finite() and is.infinite() (and many other primitives)
+	are not internally generic and so do not support S4 methods,
+	which can no longer be set. (PR#7951)
+
+    o	nls(algorithm = "port") now accepts a list 'start' argument,
+	as for the other methods (and as documented).
+
+    o	Standard errors from the "ar" method of predict() could be
+	wrong for the last p predictions for models near
+	non-stationarity. (PR#9614)
+
+
+
+
+	**************************************************
+	*						 *
+	*	       2.4 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 2.4.1 patched
+
+NEW FEATURES
+
+    o	The Simplified Chinese translations have been completed.
+
+
+BUG FIXES
+
+    o	co.intervals() sometimes failed to cover the largest value.
+
+    o	tempfile() is now random across sessions as well as within a
+	session.  (On some systems it would give the same hex suffix
+	at the start of each session.)
+
+    o	Added infinite recursion test to internal function isMissing.
+	(PR#9426)
+
+    o	The "Date" and "POSIXt" methods for cut() were not choosing
+	the first day of the year for breaks = "years".
+	(In part, PR#9433.)
+
+    o	R is now able to deparse/print invalid multibyte strings in
+	MBCS locales (such as UTF-8) using hex escapes.	 This means
+	that e.g. demo(Hershey) works in all such locales.
+
+    o	optimize() could give incorrect answers in some rare problems
+	with exact symmetry about the midpoint of the interval
+	supplied.  (PR#9438)
+
+    o	The residuals from an lm() fit with no coefficients but an
+	offset were incorrect.
+
+    o	oneway.test() was expecting a literal formula and did not
+	accept a variable containing a formula.
+
+    o	The legacy Quartz device (used by console R) displayed its
+	window outside the screen estate in some dual-head setups.
+	Now it will be always displayed in the center of the main
+	screen.
+
+    o	read.ftable() was not functional on non-seekable connections
+	such as URLs.
+
+    o	Some large memory allocations could cause segfaults or
+	crashes (e.g. followup to PR#9557).
+
+    o	Sweave() would drop characters from the end of chunk names
+	ending in "R".	(PR#9567)
+
+    o	library(), i.e. its internal checkConflicts(), now (again) prints
+	"The following object(s) are masked .." only once per masked package.
+
+    o	methods:::cbind(x) {one argument} now works, calling cbind2(x)
+	when 'x' is an S4 object.
+
+
+
+		CHANGES IN R VERSION 2.4.1
+
+
+INSTALLATION
+
+    o	The extraction of info from Subversion for an SVN checkout now
+	also works for svn >= 1.4.0.  However, on Windows the 'Last
+	Changed Date' will be in the local timezone, and not in GMT as
+	previously.
+
+    o	configure uses code borrowed from autoconf 2.60 to try harder to
+	ensure that a C99-compliant compiler is used.  (It does so by
+	appending to CC.)  This avoids problems with systems such as FC5
+	which override CFLAGS and thereby lose flags such as -std=gnu99.
+
+
+NEW FEATURES
+
+    o	rainbow(), heat.colors(), terrain.colors(), topo.colors() and
+	cm.colors() all gain an 'alpha' argument to be passed to hsv().
+
+    o	dput() will give an incorrect representation of the row names
+	of a data frame with integer row names.	 This is now corrected
+	when the object is recreated.
+
+
+C-LEVEL FACILITIES
+
+    o	Using STRICT_R_HEADERS applies to more reported clashes with
+	Windows headers, including Calloc and Realloc.	These and
+	Free need to be prefixed by R_ when STRICT_R_HEADERS is defined.
+
+
+DEPRECATED & DEFUNCT
+
+    o	The previously undocumented behaviour of structure() in adding a
+	class when specifying "tsp" or "levels" attributes is now
+	deprecated (with a warning).
+
+
+BUG FIXES
+
+    o	Fixed warning() to use .dfltWarn intead of .dfltStop for default
+	handling (PR#9274).
+
+    o	R would slow down when the product of the length of a vector and
+	the length of a character vector used to subset it exceeded 2^31.
+	(PR#9280)
+
+    o	merge() now allows zero-row data frames.
+
+    o	add1.lm() had been broken by other changes for weighted fits.
+
+    o	axis.POSIXct() would sometimes give the wrong labels.
+
+    o	Help for a method call would fail. (PR#9291)
+
+    o	gzfile() returned an object of class "file" not "gzfile". (PR#9271)
+
+    o	load()ing from a connection had a logic bug in when it closed
+	the connection. (PR#9271)
+
+    o	The lowess() algorithm is unstable if the MAD of the residuals
+	becomes (effectively) zero: R now terminates the iterations at
+	that point.  (This may result in quite different answers.)
+
+	The 'delta' argument was incorrectly documented.  (PR#9264)
+
+    o	abbreviate() would only work for strings of up to 8191 bytes,
+	but this was not checked.  Now longer strings are errors.
+
+    o	Drawing X11 rotated text was buggy for VERY small (negative)
+	angle of rotation.  Reported by Ben Bolker. (PR#9301)
+
+    o	The X11 data editor would crash in an MBCS locale if R was
+	compiled with FC's CFLAGS that add buffer overflow and
+	stack-smashing detection.
+
+    o	rect() was not accepting border=NA in some cases involving
+	cross-hatching.
+
+    o	Fixes to S4 group generics to ensure that the correct number of
+	active arguments are in the signature of the group and all
+	members.  Also a fix to keep the 'groupMembers' slot up to date.
+
+    o	S4 group generic "Logic" (with '&', '|', but not '!') has been
+	created, following the green book (apart from '!').
+
+    o	removeClass() now takes care to remove any subclass references
+	to the deleted class.
+
+    o	mle() (in stats4) might not have worked as intended when the
+	order of parameters in 'start' differed from that in the
+	log-likelihood.	 (PR#9313)
+
+    o	dotchart() now properly restores par() settings after itself.
+
+    o	system() on Mac OS X was blocking arbitrary signals during the
+	call although only SIGPROF was meant to be blocked.
+
+    o	methods cached via callNextMethod() and (sometimes) as() were
+	being cached as directly specified although in fact they were
+	inherited.  Caused problems in later search for inherited methods.
+
+    o	str() works properly for method definitions and other S4-classed
+	function objects.
+
+    o	JAVA_LIBS are now set correctly on MacOS X.
+
+    o	Fix null-termination issue suspected of causing crash with Fedora
+	Extra RPMS (PR#9339, Justin Harrington, analysis and fix from Bill
+	Dunlap).
+
+    o	Name spaces restored via a saved session silently failed to cache
+	their methods because the methods package was not yet
+	attached.  Fixed by attaching methods before restoring data.
+
+    o	rbind()ing a list to a data frame generated invalid row names,
+	which were an error in 2.4.0. (PR#9346)
+
+    o	boxplot.stats(x) now returns the correct minimum instead of an
+	error for x <- c(1,Inf,Inf,Inf), and hence boxplot(x) "works".
+
+    o	promptClass() now uses \linkS4class{<ClassName>} instead of
+	of \link{<ClassName>-class}.
+
+    o	gc() no longer reports nonsense values for the number of used
+	Vcells if the true value exceeds 2^31 (and hence over 16Gb of
+	heap is in use): it now reports NA. (PR#9345)
+
+    o	rapply() now detects more user errors in supplying arguments. (PR#9349)
+
+    o	boxplot() was ignoring argument 'boxfill'. (PR#9352)
+
+    o	plot.lm(which = 6, id.n = 0) did not work. (PR#9333)
+
+    o	.deparseOpts("delayPromises") was not matching the C code,
+	returning 64 rather than 32.
+
+    o	bxp() could use partial matching on 'pars' when finding
+	defaults for some of its parameters, e.g. a setting of 'cex.axis'
+	in 'pars' or inline was used to set a default for 'outcex'.
+
+    o	acf() now allows lag.max = 0 except when type="partial", and
+	forces the lag 0 autocorrelation to 1. (PR#9360)
+
+    o	hist(*, include.lowest=., right=., plot=FALSE) does not warn
+	anymore, (PR#9356) and more.
+
+    o	Some bugs in caching superclass/subclass relations and in
+	removing those relations on detach and on removeClass() have
+	been fixed.
+
+    o	readBin() could return one too many strings if 'n' was an
+	over-estimate. (PR#9361)
+
+    o	A request for an opaque colour in the pdf() device after a
+	translucent one did not set the transparency back to opaque in
+	2.4.0.
+
+	Semi-transparent background colours were not being plotted on
+	the pdf() device.
+
+    o	plot.lm(which=5) in the case of constant leverage re-ordered
+	the factor levels but not the residuals, so the labelling by
+	factor level was often incorrect.
+
+    o	packBits() was not accepting a logical argument. (PR#9374)
+
+    o	make install was omitting doc/FAQ and doc/RESOURCES.
+
+    o	A two-sample t.test(x, y, var.equal=TRUE) did not allow one of the
+	groups to be of size one.
+
+    o	The "ts" method for print() failed on some corrupted objects
+	of class "ts", e.g. those without a "tsp" attribute.
+
+    o	structure() reordered the "class" value given if there was a
+	"tsp" value specified.
+
+    o	pairs() now does pass appropriate parts of '...' to the
+	'diag.panel' argument. (PR#9384)
+
+    o	plot.lm() was using an incorrect estimate of dispersion for
+	some GLMs (including family=binomial and family=poisson).
+	(PR#9316)
+
+    o	Subsetting operators were setting R_Visible too early, so
+	assignments in arguments could make the result invisible.
+	(PR#9263)
+
+    o	The tk-GUI was displaying a warning due to an extra comma in
+	the list of manuals (PR#9396)
+
+    o	packageDescription() now gives an explicit error on a corrupt
+	DESCRIPTION file.
+
+    o	There was a scoping issue with tcltk callbacks given as
+	unevaluated expressions. This has only been partially fixed, a
+	complete fix probably requires redesign.
+
+    o	trace() had its return value documented incorrectly and was
+	sometimes visible when it should not have been.
+
+    o	pchisq() would sometimes use the wrong tail when calculating
+	non-central probabilities with lower.tail = FALSE. (PR#9406)
+
+    o	rm() could remove the wrong objects when passed an expression.
+	(PR#9399)  Now only names are allowed in the '...' argument,
+	and the incorrect documentation of what happened with
+	character objects is corrected.
+
+    o	url() was not supporting 'encoding' except on file:// URLs.
+
+
+
+		CHANGES IN R VERSION 2.4.0
+
+
+USER-VISIBLE CHANGES
+
+    o	The startup message now prints first the version string and
+	then the copyright notice (to be more similar to R --version).
+
+    o	save() by default evaluates promise objects.  The old behaviour
+	(to save the promise and its evaluation environment) can be
+	obtained by setting the new argument 'eval.promises' to FALSE.
+	(Note that this does not apply to promises embedded in
+	objects, only to top-level objects.)
+
+    o	The functions read.csv(), read.csv2(), read.delim(),
+	read.delim2() now default their 'comment.char' argument to "".
+	(These functions are designed to read files produced by other
+	software, which might use the # character inside fields, but
+	are unlikely to use it for comments.)
+
+    o	The bindings in the base environment/name space (currently the
+	same thing) are now locked.  This means that the values of
+	base functions cannot be changed except via
+	assignInNamespace() and similar tricks.
+
+    o	[[ on a factor now returns a one-element factor (and not an
+	integer), as.list() on a factor returns a list of one-element
+	factors (and not of character vectors), and unlist() on a list
+	of factors returns a factor (and not an integer vector).
+	These changes may affect the results of sapply() and lapply()
+	applied to factors.
+
+    o	mauchly.test() now returns the W statistic (for comparability
+	with SAS and SPSS), rather than the z (which was accidentally
+	not named in the output)
+
+    o	sort(x, decreasing = FALSE, ...) is now a generic function.
+	This means that 'partial' is no longer the second argument,
+	and calls which used positional matching may be incorrect: we
+	try to detect them.
+
+    o	See the section on 'Changes to S4 methods': all packages
+	depending on 'methods' need to be re-installed.
+
+
+NEW FEATURES
+
+    o	agrep(), grep(), strwrap(), strtrim(), substr() and
+	related functions now coerce arguments which should be
+	character via as.character() rather than internally (so method
+	dispatch takes place, e.g. for factors).
+
+	chartr(), charfold(), tolower() and toupper() now coerce their
+	main argument if necessary to a character vector via
+	as.character().
+
+	Functions which work element-by-element on character vectors
+	to give a character result now preserve attributes including
+	names, dims and dimnames (as suggested by the Blue Book
+	p. 144).  Such functions include charfold(), chartr(), gsub(),
+	strtrim(), sub(), substr(), tolower() and toupper().  (Note
+	that coercion of a non-character argument may lose the
+	attributes.)
+
+	agrep(value = TRUE) preserves names for compatibility with
+	grep().
+
+	nchar() has always preserved dims/dimnames (undocumented
+	before) and now also preserves names.
+
+
+    o	.Deprecated and .Defunct take a new parameter, msg, that allows
+	for the specification of the message printed and facilitates
+	deprecation of calling sequences etc.
+
+    o	.Fortran() will map 'name' to lower case, and will work with
+	'name' containing underscores.
+
+    o	The default is now .saveRDS(compress = TRUE)
+
+    o	The :: operator now also works for packages without name spaces
+	that are on the search path.
+
+    o	[[ on a list does not duplicate the extracted element unless
+	necessary.  (It did not duplicate in other cases, e.g. a
+	pairlist.)
+
+    o	argsAnywhere() works like args() on non-exported functions.
+
+    o	as.data.frame() gains a '...' argument.
+
+    o	Added an as.data.frame() method for class "ftable".
+
+    o	as.list(<an expression>) is now handled by internal code and
+	no longer loses attributes such as names.
+
+	as.list(<a list>) no longer duplicates (unnecessarily).
+
+    o	as.POSIX[cl]t can now convert character strings containing
+	fractional seconds.
+
+    o	attach() can now attach a copy of an environment.
+
+    o	available.packages() and installed.packages() gain a 'fields'
+	argument thanks to Seth Falcon.
+
+    o	axis.POSIXct() uses a different algorithm for ranges of 2 to 50
+	days that will mark days at midnight in the current timezone
+	(even if the graph crosses a DST change).
+
+    o	body<-() and formals<-() default to envir = environment(fun),
+	that is they do not by default change the environment.
+	(Previously they changed it to parent.frame().)
+
+    o	New function combn(x, m, ..) for computing on all combinations of
+	size 'm' (for small 'm' !).
+
+    o	The cumxxx() functions now handle logical/integer arguments
+	separately from numeric ones, and so return an integer result
+	where appropriate.
+
+    o	data.frame() has a new argument 'stringsAsFactor'.  This and
+	the default for read.table(as.is=) are set from the new global
+	option 'stringsAsFactors' via the utility function
+	default.stringsAsFactors().
+
+    o	dev.interactive() now has an optional argument 'orNone'.
+
+    o	df() now has a noncentrality argument 'ncp', based on a
+	contribution by Peter Ruckdeschel.
+
+    o	example() gains an argument 'ask' which defaults to "TRUE when
+	sensible", but the default can be overridden by setting option
+	'example.ask'.
+
+    o	expand.grid() now has an argument 'KEEP.OUT.ATTRS' which can
+	suppress (the potentially expensive) "out.attrs" attribute. It no
+	longer returns an extraneous 'colnames' attribute.
+
+    o	The subset and subassign methods for factors now handle factor
+	matrices, and dim() can be set on a factor.
+
+    o	There is now a format() method for class "ftable".
+
+    o	head(x, n) and tail(x, n) now also work for negative arguments,
+	thanks to Vincent Goulet.
+
+    o	head.matrix() and tail.matrix() are no longer hidden, to be used
+	for building head() and tail() methods for other classes.
+
+    o	If help() finds multiple help files for a given topic, a menu
+	of titles is used to allow interactive choice.
+
+    o	help.search() now rebuilds the database if 'package' specifies a
+	package not in the saved database.
+
+    o	hist(*, plot = FALSE) now warns about unused arguments.
+
+    o	history() gains a 'pattern' argument as suggested by Romain
+	Francois.
+
+    o	integer(0) now prints as that rather than "numeric(0)" (it
+	always deparsed as "integer(0)").
+
+    o	interaction(..., drop=TRUE) now gives the same result as
+	interaction(...)[,drop=TRUE] (it used to sometimes give a
+	different order for the levels).
+
+    o	lag.plot() produces a conventional plot (not setting mfrow) if
+	only one plot is to be produced.
+
+    o	lapply() does much less copying.  Vector X are handled without
+	duplication, and other types are coerced via as.list().	 (As a
+	result, package 'boot' runs its examples 4% faster.)
+
+	lapply(<a pairlist>) now coerces to a list (rather than traverse
+	the pairlist from the beginning for each item).
+
+    o	legend() has new parameters 'box.lwd' and 'box.lty'.
+
+    o	lines() gains a simple method for isoreg() results.
+
+    o	load() no longer coerces pairlists to lists (which was
+	undocumented, but has been happening since 1998).
+
+    o	make.link() now returns an object of class "link-glm".
+	The GLM families accept an object of this class for their
+	'link' argument, which allows user-specified link functions.
+	Also, quasi() allows user-specified variance functions.
+
+    o	mapply() uses names more analogously to lapply(), e.g..
+
+    o	matplot() now accepts a 'bg' argument similarly to plot.default() etc.
+
+    o	median() is now generic, and its default method uses mean()
+	rather than sum() and so is more widely applicable (e.g. to dates).
+
+    o	Dummy functions memory.size() and memory.limit() are available
+	on Unix-alikes, for people who have not noticed that documentation
+	is Windows-specific.
+
+    o	merge() works more efficiently when there are relatively few
+	matches between the data frames (for example, for 1-1
+	matching).  The order of the result is changed for 'sort = FALSE'.
+
+    o	merge() now inserts row names as a character column and not a
+	factor: this makes the default sort order more comprehensible.
+
+    o	Raw, complex and character vectors are now allowed in model
+	frames (there was a previously undocumented restriction to
+	logical, integer and numeric types.).  Character vectors in a
+	formula passed to model.matrix() are converted to factors and
+	coded accordingly.
+
+    o	modifyList() utility, typically for housekeeping nested lists.
+
+    o	x <- 1:20; y <- rnorm(x); nls(y ~ A*exp(-x^2/sig)) no longer
+	returns an unhelpful error message.  In this and similar cases, it
+	now tries a wild guess for starting values.
+
+    o	Ops.difftime() now handles unary minus and plus.
+
+    o	Ops.Date() and Ops.POSIXt() now allow character arguments
+	(which are coerced to the appropriate class before comparison,
+	for Ops.POSIXt() using the current time zone).
+
+    o	There is a new option(max.contour.segments = 25000) which can be
+	raised to allow extremely complex contour lines in contour()
+	and contourLines().  (PR#9205)
+
+    o	options(max.print = N) where N defaults to 99999 now cuts printing
+	of large objects after about N entries.	 print(x, ..., max = N)
+	does the same for the default method and those building on
+	print.default().
+
+	options("menu.graphics") controls if graphical menus should be
+	used when available.
+
+	options("par.ask.default") allows the default for par("ask")
+	to be set for a newly-opened device.  (Defaults to FALSE, the
+	previous behaviour.)
+
+	The way option("papersize") is set has been changed.  On
+	platforms which support the LC_PAPER locale category, the
+	setting is taken first from the R_PAPERSIZE environment
+	variable at run time, then from the LC_PAPER category
+	("letter" for _US and _CA locales and "a4" otherwise).	On
+	other platforms (including Windows and older Unixen), the
+	choice is unchanged.
+
+    o	package.skeleton() gains arguments 'namespace' and
+	'code_files'.
+
+    o	par(ask=TRUE) now only applies to interactive R sessions.
+
+    o	parse() now returns up to 'n' expressions, rather than fill
+	the expressions vector with NULL.  (This is now compatible
+	with S.)
+
+    o	The 'version' argument for pdf() is now increased
+	automatically (with a warning) if features which need a higher
+	level are used.
+
+    o	pie() now allows expressions for 'labels', and empty slices.
+
+    o	There is a new '%.%' operator for mathematical annotations
+	(plotmath) which draws a centred multiplication dot
+	(a \cdot in LaTeX), thanks to Uwe Ligges.
+
+    o	predict.lm() gains a 'pred.var' argument.  (Wishlist PR#8877.)
+
+    o	print.summary.{aov,glm,lm,nls} and print.{aov,glm} make use of
+	naprint() to report when na.action altered the model frame.
+
+    o	print.table(T, zero.print=ch) now also replaces 0 by ch when T is
+	non-integer with integer entries.
+
+    o	Recursive rapply() which is similar to lapply but used
+	recursively and can restrict the classes of elements to which
+	it is applied.
+
+    o	r2dtable() has been moved to package 'stats'.
+
+    o	New function read.DIF() to read Data Interchange Format files,
+	and (on Windows) this format from the clipboard.
+
+    o	New experimental function readNEWS() to read R's own "NEWS" file
+	and similarly formatted ones.
+
+    o	readLines() has a new argument 'warn' to suppress warnings:
+	the default behaviour is still to warn.
+
+    o	reg.finalizer() has a new argument 'onexit' to parallel the
+	C-level equivalent R_RegisterFinalizerEx.
+
+    o	rep() is now a primitive function and under some conditions
+	very much faster: rep.int() is still a little faster (but does
+	less). (Because it is primitive there are minor changes to the
+	call semantics: see the help page.)
+
+    o	The 'row.names' of a data frame may be stored internally as an
+	integer or character vector.  This can result in considerably
+	more compact storage (and more logical row names from rbind)
+	when the row.names are 1:nrow(x).  However, such data frames
+	are not compatible with earlier versions of R: this can be
+	ensured by supplying a character vector as 'row.names'.
+
+	row.names() will always return a character vector, but direct
+	access to the attribute may not.
+
+	The internal storage of row.names = 1:n just records 'n', for
+	efficiency with very long vectors.
+
+	The "row.names" attribute must be a character or integer
+	vector, and this is now enforced by the C code.
+
+    o	The "data.frame" and "matrix" methods for rowsum() gain an 'na.rm'
+	argument.
+
+    o	Experimental support for memory-use profiling via Rprof(),
+	summaryRprof(), Rprofmem() and tracemem().
+
+    o	save.image() [also called by sys.save.image() and hence from q()]
+	now defaults to saving compressed binary images.  To revert to
+	the previous behaviour set option "save.image.defaults": see
+	?save.image.
+
+    o	There is a new primitive seq.int() which is slightly more
+	restricted than seq() but often very much faster, and new
+	primitives seq_along() and seq_len() which are faster still.
+
+    o	serialize(connection = NULL) now returns a raw vector (and not
+	a character string).  unserialize() accepts both old and new
+	formats (and has since 2.3.0).
+
+    o	setwd() now returns the previously current directory (invisibly).
+
+    o	The function sort() is now sort.int(), with a new generic
+	function sort() which behaves in the same way (except for the
+	order of its argument list) for objects without a class, and
+	relies on the '[' method for objects with a class (unless a
+	specific method has been written, as it has for class "POSIXlt").
+
+    o	sort.list() now implements complex vectors (PR#9039), and how
+	complex numbers are sorted is now documented.
+
+    o	spline() and splinefun() now follow approx[fun] to have an argument
+	'ties = mean' which makes them applicable also when 'x' has
+	duplicated values.
+
+    o	str(x) does not print the S3 "class" attribute when it is the
+	same as 'mode' (which is printed anyway, possibly abbreviated)
+	and it puts it beside mode for atomic objects such as S3 class
+	"table".
+
+    o	str(<data.frame>) now outputs 'data.frame' instead of
+	`data.frame'; this may affect some strict (Package) tests.
+
+    o	str() now takes also its defaults for 'vec.len' and 'digits.d'
+	from options('str') which can be set by the new strOptions().
+
+    o	symnum() has a new argument 'numeric.x' particularly useful for
+	handling 0/1 data.
+
+    o	Sys.getlocale() and Sys.setlocale() support LC_MESSAGES,
+	LC_PAPER and LC_MEASUREMENT if the platform does.
+
+    o	Sweave has a new options 'pdf.encoding' and 'pdf.version' for
+	its Rweave driver.
+
+    o	The character vector used by an output textConnection() has
+	a locked binding whilst the connection is open.
+
+	There is a new function textConnectionValue() to retrieve the
+	value of an output textConnection().
+
+    o	traceback() gains a 'max.lines' argument.
+	.Traceback is no longer stored in the workspace.
+
+    o	warning(immediate. = TRUE) now applies to
+	getOption("warn") < 0 and not just == 0.
+
+    o	warnings() is now an accessor function for 'last.warning' (which
+	is no longer stored in the workspace) with a print() method.
+
+
+    o	The internal internet download functions have some new
+	features from libxml 2.6.26.
+
+    o	There is an option "HTTPUserAgent" to set the User Agent in R
+	download requests etc.	Patch from S. Falcon.
+
+    o	PCRE has been updated to version 6.7.
+
+    o	The C function substituteList now has tail recursion expanded
+	out, so C stack overflow is less likely.  (PR#8141, fix by
+	Kevin Hendricks)
+
+    o	The (somewhat soft) 1023/4 byte limit on command lines is now
+	documented in 'An Introduction to R'.
+
+    o	The maximum number of open connections has been increased from
+	50 to 128.
+
+    o	There is a new manual 'R Internals' on R internal stuctures
+	plus the former appendices of 'Writing R Extensions'.
+
+    o	The autoloads introduced at the package re-organization have been
+	almost completely removed: the one that remains is for ts().
+
+    o	The setting of the various Java configuration variables has been
+	improved to refer to JAVA_HOME, and they are now documented in
+	the R-admin manual.
+
+    o	It is (again) possible to calculate prediction intervals from
+	"lm" objects for the original data frame, now with a warning
+	that the intervals refer to future observations.  Weighted
+	intervals have also been implemented, with user-specifiable
+	weights. Warnings are given in cases where the default
+	behaviour might differ from user expectations.	See the
+	?predict.lm for details.
+
+
+CHANGES TO S4 METHODS
+
+    o	The default prototype object for S4 classes will have its own
+	internal type in 2.4.0, as opposed to being an empty list (the
+	cause of several errors in the code up to 2.3.1).  Note that old
+	binary objects, including class definitions, will be
+	inconsistent with the type, and should be recreated.
+
+    o	S4 method dispatch has been completely revised to use cached
+	generic functions and to search for the best match among
+	inherited methods.  See ?Methods and
+	http://developer.r-project.org/howMethodsWork.pdf
+
+    o	Objects created from an S4 class are now marked by an internal flag,
+	tested by isS4() in R and by macro IS_S4_OBJECT() in C.	 This
+	is an efficient and reliable test, and should replace all
+	earlier heuristic tests.
+
+    o	Some changes have been made to automatic printing of S4
+	objects, to make this correspond to a call to show(), as per
+	'Programming with Data'.
+
+    o	S4 generic and class definitions are now cached when the related
+	package is loaded.  This should improve efficiency and also
+	avoid anomalous situations in which a class or generic cannot
+	be found.
+
+    o	trace() now creates a new S4 class for the traced object if
+	required.  This allows tracing of user-defined subclasses of
+	"function".
+
+
+DEPRECATED & DEFUNCT
+
+    o	The re-named tcltk functions tkcmd, tkfile.tail, tkfile.dir,
+	tkopen, tkclose, tkputs, tkread are now defunct.
+
+    o	Argument 'col' of bxp() has been removed: use 'boxfill'.
+
+    o	Use of NULL as an environment is now an error.
+
+    o	postscriptFont() is defunct: use Type1Font().
+
+    o	La.chol() and La.chol2inv() are defunct (they were the same as
+	the default options of chol() and chol2inv).
+
+    o	La.svd(method = "dgesvd") is defunct.
+
+    o	Files install.R and R_PROFILE.R in packages are now ignored
+	(with a warning).
+
+    o	The following deprecated command-line options to INSTALL have
+	been removed (use the fields in the DESCRIPTION file instead):
+	-s --save --no-save --lazy --no-lazy --lazy-data --no-lazy-data
+
+    o	Graphical parameter 'tmag' is obsolete.
+
+    o	mauchley.test() (package 'stats') is now defunct.
+
+    o	symbol.C() and symbol.For() are deprecated.  They are required in
+	S for use with is.loaded(), but are not so required in R.
+
+    o	load()ing an object saved in one of the formats used prior to
+	R 1.4.0 is deprecated.	Such objects should be re-saved in the
+	current format.
+
+    o	save(version = 1) is now deprecated.
+
+
+C-LEVEL FACILITIES
+
+    o	The convenience function ScalarLogical now coerces all
+	non-zero non-NA values to TRUE.
+
+    o	The vector accessor functions such as INTEGER, REAL and
+	SET_VECTOR_ELT now check that they are called on the
+	correct SEXPTYPE (or at least on a compatible one).  See
+	`Writing R Extensions' for the details and for a stricter
+	test regime.
+
+    o	It is no longer possible to pass list variables to
+	.C(DUP = FALSE): it would have given rise to obscure garbage
+	collection errors.
+
+    o	allocString is now a macro, so packages using it will need to
+	be reinstalled.
+
+    o	R_ParseVector was returning with object(s) protected in the
+	parser if the status was PARSE_INCOMPLETE or PARSE_ERROR.
+
+    o	There is a new function Rf_endEmbeddedR to properly terminate
+	a session started by Rf_initEmbeddedR, and both are now
+	available on Windows as well as on Unix-alikes.	 These and
+	related functions are declared in a new header <Rembedded.h>.
+
+	If R_TempDir is set when embedded R is initialized it is
+	assumed to point to a valid session temporary directory: see
+	`Writing R Extensions'.
+
+    o	There is a new interface allowing one package to make C routines
+	available to C code in other packages.	The interface consists
+	of the routines R_RegisterCCallable and R_GetCCallable.	 These
+	functions are declared in <R_ext/Rdynload.h>. This interface
+	is experimental and subject to change.
+
+	In addition, a package can arrange to make use of header
+	files in another (already installed) package via the
+	'LinkingTo' field in the DESCRIPTION file: see 'Writing R
+	Extensions'.
+
+
+UTILITIES
+
+    o	R CMD SHLIB now handles (as linker commands) -L*, -l* and *.a.
+
+    o	R CMD check now:
+
+	- warns if there are non-ASCII characters in the R code (as
+	  these will likely be syntax errors in some locale).
+
+	- tests Rd cross-references by default, and tests for
+	  (syntactically) valid CITATION metadata.
+
+	- tests that the package can be loaded, and that the package
+	  and name space (if there is one) can each be loaded in
+	  startup code (before the standard packages are loaded).
+
+	- tests for empty 'exec' or 'inst' directories.
+
+	- checks if $(FLIBS) is used when $(BLAS_LIBS) is.
+
+	- checks that all packages (except non-S4-using standard
+	  packages) used in ::, :::, library() and require() calls are
+	  declared in the DESCRIPTION file, and 'methods' is declared if
+	  S4 classes or methods are set.
+
+	- throws an error if the standard packages 'methods' and
+	  'stats4' are imported from in the NAMESPACE file and not
+	  declared in the DESCRIPTION file.
+
+    o	The test script produced by massage-Examples.pl no longer
+	creates objects in the base environment.
+
+    o	New utilties R CMD Stangle and R CMD Sweave for extracting S/R
+	code from and processing Sweave documentation, respectively.
+
+    o	The DESCRIPTION file of packages may contain an 'Enhances:'
+	field.
+
+    o	An R CMD javareconf script has been added to allow Java
+	configuration to be updated even after R has been installed.
+
+
+INSTALLATION
+
+    o	The C function realpath (used by normalizePath()) is hidden on
+	some systems and we try harder to find it.
+
+    o	There is a new option --enable-BLAS-shlib, which compiles the
+	BLAS into a dynamic library -lRblas and links against that.
+	For the pros and cons see the R-admin manual.
+
+	The defaults are now --without-blas (so you have explicitly to
+	ask for an external BLAS), and --enable-BLAS-shlib unless
+	a usable external BLAS is found or on AIX or on MacOS X 10.2
+	and earlier.
+
+    o	MacOS X did not like having LSAME in both BLAS and LAPACK
+	libraries, so it is no longer part of the R-internal LAPACK.
+	We now require an external BLAS to provide LSAME: it seems
+	that nowadays all do.
+
+    o	The configure test for 'whether mixed C/Fortran code can be
+	run' has been improved as on one system that test passed but
+	the Fortran run-time library was broken.
+
+    o	A precious configure variable DEFS can be set to pass defines
+	(e.g. -DUSE_TYPE_CHECKING_STRICT) to C code when compiling R.
+
+    o	There is now a test for visible __libc_stack_end on Linux
+	systems (since it is not visible on some recent glibc's
+	built from the sources).
+
+    o	MacOS X 10.4 and higher now use two-level namespaces, single
+	module in a shared library and allow undefined symbols to be
+	resolved at run-time. This implies that common symbols are now
+	allowed in package libraries. --enable-BLAS-shlib is supported
+	for internal BLAS, external BLAS framework and external static
+	BLAS.  An external dynamic library BLAS is NOT supported. (But
+	it can be easily used by replacing internal BLAS library file
+	later.)	 MacOS X < 10.4 does not support --enable-BLAS-shlib.
+
+    o	Dynamic libraries and modules use a flat namespace on MacOS X
+	10.4 and higher if either Xcode tools don't support dynamic
+	lookup (Xcode < 2.3) or the FORCE_FLAT_NAMESPACE environment
+	variable is set.  (The latter was introduced temporarily for
+	testing purposes and may go away anytime.)
+
+    o	configure now defaults to 'run-time linking' on AIX
+	(and AIX < 4.2 is no longer allowed), using -bexpall rather
+	than export/import files.  If this works, it allows R to be
+	built in the same way as other Unix-alikes, including with R
+	as a shared library and with a shared BLAS.
+
+    o	The "mac.binary" package type now defaults to universal
+	binary.	 If a repository supports architecture-specific Mac
+	binaries, they can be requested by using "mac.binary.xxx" in
+	contrib.url(), where xxx is the desired architecture.
+
+    o	There is a new configure option --enable-memory-profiling to
+	enable memory profiling with tracemem, Rprof, Rprofmem.
+
+
+BUG FIXES
+
+    o	The name of a Fortran symbol reported to be missing by
+	.Fortran() is now the actual name.  (What was reported to be
+	an 'entry point' was missing the common leading underscore.)
+
+    o	print() on a MBCS character string now works properly a
+	character at a time rather than a byte at time.	 (This does
+	not affect MBCSs like UTF-8 and the Windows DBCSes which have
+	non-ASCII lead bytes and always worked correctly.)
+
+    o	glm() now recalculates the null deviance whenever there is an
+	offset (even if it is exactly zero to avoid a discontinuity in
+	that case, since the calculations with and without offset are
+	done by different algorithms).
+
+    o	Amongst families, quasi() accepted an expression for link and
+	no other did.  Now all accept an expression which evaluates to
+	a one-element character vector (although e.g. 'logit' is taken
+	as a name and not an expression).
+
+    o	trace() now accepts arguments where= and signature= for the
+	old-style trace (no tracer or exit, edit==FALSE) and just
+	prints a message on entry.  Also the undocumented feature of
+	where=function now works for generic functions as well.
+
+    o	callNextMethod() failed for recursive use when the methods had
+	nonstandard argument lists.  Now enforces the semantic rule
+	that the inheritance is fixed when the method containing the
+	callNextMethod() is installed.	See Details in the documentation.
+
+    o	UseMethod() looked for the defining environment of 'generic' as
+	if it were the current function, although some functions are
+	generic for methods of a different generic.
+
+	Lookup for S3 methods is confined to functions: previously a
+	non-function 'fun.class' could have masked a function of the
+	same name.
+
+    o	Line types (lty) specified as hex strings were documented not to
+	allow zero, but some devices accepted zero and handled it in a
+	device-dependent way.  Now it is an error on all devices.
+	(PR#8914)
+
+    o	Subassignment for a time series can no longer extend the series:
+	it used to attempt to but failed to adjust the tsp attributes.
+	Now window() must be used.
+
+    o	Function AIC() in package 'stats4' was not dispatching correctly
+	on S4 classes via logLik() because of name space issues.
+
+    o	Subsetting LANGSXPs could break the call-by-value illusion.
+	(PR#7924) (patch from Kevin Hendricks).
+
+    o	parse() with n > 1 gave a syntax error if fewer than n statements
+	were available.
+
+    o	parse() with n > 1 gave strange results on some syntax errors.
+	(PR#8815)
+
+    o	lag.plot() now respects graphical parameters for the axes.
+
+    o	Using a wrong link in family() now gives more consistent error
+	messages.
+
+    o	sort.list(method="radix") works on factors again.
+
+    o	object.size() is more accurate for vector objects (it takes into
+	account the smaller header and also the fixed sizes used in
+	the node classes for small vector objects).
+
+    o	addmargins(T, ...) now returns a "table" when 'T' is a "table", as
+	its help page has always suggested.
+
+    o	remove() now explicitly precludes removing variables from
+	baseenv() and throws an error (this was previously ignored).
+
+    o	Saving the workspace at the end of a session now works as has
+	long been intended, that is it is saved only if something has
+	been added/deleted/changed during the current session.
+
+    o	The search for bindings in <<-, ->> and assign(inherits=TRUE)
+	was omitting the base package, although this was not
+	documented.  Now the base package is included (but most
+	bindings there are locked).
+
+    o	dweibull(0, shape) was NaN not Inf for shape < 1.  Also, the
+	help for dgamma and dweibull gave support as x > 0, but
+	returned non-zero values for x = 0.  (PR#9080)
+
+    o	Subsetting arrays no longer preserves attributes (it was
+	removed for matrices in 1998).
+
+    o	The "factor" method of as.character() no longer maps level
+	"NA" to "<NA>" (a legacy of before there were NA character
+	strings).
+
+    o	terms(keep.order=TRUE) was not returning a valid "order"
+	attribute.
+
+    o	The DLL registration code was not freeing .External symbols.
+
+    o	The internet download routines expected URLs of less than 4096
+	bytes, but did not check.  Now this is checked, and http:// URLs
+	are allowed to be up to 40960 bytes.
+
+    o	parse(n=-1) threw a stack-imbalance error, and parse(n=3) did
+	not cope correctly with EOF during input.
+
+    o	Zero-column data frames had no names (rather than character(0)).
+
+    o	by() and acf() could get confused when they used very long
+	expressions as names.
+
+    o	residuals(<glm object>, type="working") was NA for cases with
+	zero weight (whereas they are well-defined even though the
+	case was not used during the fitting) and the actual value is
+	now returned.  This allows residuals to be computed from fits
+	with 'y = FALSE'.
+
+	The residuals in a fitted "glm" object are computed more
+	accurately: the previous formula was subject to cancellation.
+
+    o	loess() now checks the validity of its 'control' argument.
+
+    o	rownames(<0-row matrix>, do.NULL=FALSE) was wrong.  (PR#9136)
+
+    o	apply() now works as documented when applied over 2 or more
+	margins with one of zero extent.  (It used to drop dimensions.)
+
+    o	head() and tail() now also work row-wise for "table" and "ftable"
+	objects.
+
+    o	NextMethod() could throw an error/crash if called from a method
+	that was called directly rather than from a generic (so
+	.Method was unset).
+
+    o	order(x, na.last = NA) failed for a zero-length x.
+
+    o	grep(pat, x, value = TRUE, perl = L) preserved names for
+	L == TRUE && !is.na(pat) but not otherwise.  Now it always does.
+
+    o	[rc]bind() now find registered methods and not just visible ones.
+
+    o	Printing a factor no longer ignores attributes such as names and
+	dim/dimnames.
+
+    o	Command-line arguments after --encoding were ignored.
+
+    o	The check for impossible confidence levels was off by one in
+	wilcox.test (PR#8557)
+
+    o	[[ on an environment could create aliases. (PR#8457)
+
+    o	pt() with a very small (or zero) non-centrality parameter could
+	give an unduly stringent warning about 'full precision was not
+	achieved'.  (PR#9171)
+
+    o	writeChar() could segfault if 'nchars' was given silly values.
+
+    o	qt() and rt() did not work for vector 'ncp', and qt() did not
+	work for negative 'ncp'.
+
+    o	ns() failed to work correctly when 'x' was of length one.
+
+    o	identical() ignored tags on pairlists (including names of
+	attributes) and required an identical ordering for
+	attribute values in their pairlists.  Now names are compared
+	on pairlists, and attribute sets are treated as unordered.
+
+    o	If they were unused arguments supplied to a closure, only
+	the first non-empty one was reported, despite the message.
+
+	Unmatched empty arguments (such as f(1,,) for a function of
+	one argument) were ignored.  They are now an error.
+
+    o	Calling a builtin with empty arguments used to silently remove
+	them (and this was undocumented).  Now this is an error unless
+	builtin is c() or list() or there are only trailing empty
+	arguments, when it is a warning (for the time being: this will
+	be made an error in R 2.5.0).
+
+    o	install.packages() ignored 'configure.args' if the vector was
+	unnamed.
+
+    o	biplot() now works if there are missing values in the data.
+
+    o	biplot() now passes par() values to all four axes (not
+	just those on sides 1 and 2).
+
+    o	[.acf now handles an empty first index.
+
+    o	Deparsing uses backticks more consistently to quote
+	non-syntactic names.
+
+    o	Assigning to the symbol in a for() loop with a
+	list/expression/pairlist index could alter the index.  Now the
+	loop variable is explicitly read-only.	(PR#9216)
+
+    o	Using old.packages() (and hence update.packages()) on an empty
+	(or non-existent) library failed with an obscure message.
+
+    o	plot.xy() could segfault if supplied with an invalid 'col'
+	argument.  (PR#9221)
+
+    o	menu() with graphics=TRUE attempted to use Tcl/Tk on unix even
+	if DISPLAY was not set (in which case Tk is not available and
+	so the attempt is bound to fail).
+
+    o	The print() method for 'dist' objects prints a matrix even for
+	n = 2.
+
+    o	The cumxxx functions were missing some PROTECTs and so could
+	segfault on long vectors (especially with names or where
+	coercion to numeric occurred).
+
+    o	The X11() device no longer produces (apparently spurious)
+	'BadWindow (invalid Window parameter)' warnings when run from
+	Rcmdr.
+
+    o	legend() assumed that widths and heights of strings were positive,
+	which they need not be in user coordinates with reversed axes.
+	(In part, PR#9236)
+
+    o	The plot() methods for "profile.nls" objects could get
+	confused if 'which' had been used in the profile() call. (PR#9231)
+
+    o	boxplot() did not passed named arguments (except graphics
+	parameters) to bxp() as documented.  (PR#9183)
+
+    o	Only genuinely empty statements act as 'return' in the
+	browser, not say those starting with a comment char.  (PR#9063)
+
+    o	summary.mlm() incorrectly used accessor functions to fake an
+	"lm" object.  (PR#9191)
+
+    o	prettyNum() was not preserving attributes, despite being
+	explicitly documented to. (PR#8695)
+
+    o	It was previously undocumented what happened if a graphical
+	parameter was passed in both '...' and 'pars' to boxplot()
+	and bxp(), and they behaved differently.  Now those passed in
+	'...' have precedence in both cases.
+
+    o	A failed subassignment could leave behind an object '*tmp*'.
+	The fix also sometimes gives better error messages.
+
+    o	Using SIGUSR1 on Unix now always terminates a session, and no
+	longer is caught by browser contexts and restarts (such as try()).
+
+    o	In the 'graphics' package, in-line 'font=5' was being ignored
+	(report by Tom Cook).
+
+    o	nls() looked for non-parameter arguments in a function call in
+	the wrong scope (from the body of nls).
+
+    o	Printing of complex numbers could misbehave when one of the
+	parts was large (so scientific notation was used) and the
+	other was so much smaller that it had no significant digits
+	and should have been printed as zero (e.g. 1e80+3e44i).
+
+    o	Using install.packages with type="mac.binary" and target path
+	starting with ~ failed with a cryptic message while unpacking.
+
+    o	getwd() now works correctly when the working directory is
+	unavailable (e.g. unreadable).
+
+    o	The alternative hypothesis in wilcox.test() was labelled by an
+	unexplained quantity 'mu' which is now spelled out.
+
+	The alternative hypothesis in ks.test() is clearer both in the
+	documentation and in the result. (PR#5360)
+
+
+
+	**************************************************
+	*						 *
+	*	       2.3 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 2.3.1 patched
+
+
+BUG FIXES
+
+    o	help.search() incorrectly documented where the data base was
+	saved and what was in it.
+
+    o	str(<data.frame>, strict.width=.) produced an extraneous first line.
+
+    o	Improve bessel[IJKY]() out-of-range checks; for instance,
+	besselI(0, nu) no longer warns.
+
+    o	cbind() on some non-vector objects (e.g. names) segfaulted.
+
+    o	xy.coords(numeric(0)) gave a misleading error message.
+
+    o	INSTALL has been changed to avoid a few problems with the
+	base (not XPG4) Solaris sed.
+
+    o	There were problems in src/main/printutils.c on some platforms
+	that did not have va_copy.
+
+    o	[pq]unif allowed infinite ranges but handled them
+	inconsistently.	 (PR#8958)
+
+	[pq]unif claimed to allow min == max but did not do so.
+
+    o	Subassignment within raw arrays of 3 or more dimensions was not
+	implemented.
+
+    o	environment<-() did not even check if duplication was required.
+
+    o	rt() was wrong for non-central t-distributions. qt() was wrong
+	for non-central distributions far enough in the left tail
+	(reported by Long Qu).	(PR#9050)
+
+    o	R CMD Rdconv --type=Ssgm no longer drops a \keyword{} if it is the
+	only one (one letter typo patch by Bill Dunlap).  (PR#9051)
+
+    o	poly(x, y, .., raw = TRUE) now does follow 'raw'.
+
+    o	plot(0/ -1:1, type = "s") now works.  (PR#9046)
+
+    o	write.table(row.names=FALSE) does now quote column names. (PR#9044)
+
+    o	rf() was wrong for non-central F (PR#9055). qf() was wrong for
+	non-central F with denominator df > 1e8.
+
+    o	The C function dummy_vfprint had a potential memory leak.  This
+	showed up with some connections when used with output of more
+	than 100,000 bytes in a single call.
+
+    o	vignette() did not work if more than one vignette with the
+	same name was installed	 (PR#9069).
+
+    o	mget() did not check that 'ifnotfound' was a list, and worked
+	incorrectly if it was a list of length > 1.  Now 'ifnotfound'
+	is (if possible) coerced to a list.
+
+    o	The internal check for conformance of time series assumed that the
+	'tsp' attribute was integer, whereas it was enforced to be
+	numeric by the attribute-setting code.
+
+    o	Sweave() did not treat \begin{document} in comments correctly
+	(PR#9073).
+
+    o	diff(x) gave wrong result when x was "POSIXlt" object.
+
+    o	title() could crash R when passed a long non-character vector.
+	(PR#9115)
+
+    o	Functions rgb(), hsv() and hcl() lost names unless 'alpha' was
+	specified.  (In part, PR#9118)
+
+    o	The residuals() method for "glm" failed unless 'y = TRUE' for
+	the fit: it now works for "working" and "partial" residuals
+	and gives a useful error message for other types. (PR#9124)
+
+    o	R CMD Rdconv did not close the .Rd file, which matters on Windows.
+	(PR#9126)
+
+    o	anova.mlm() could fail if applied to a single model.
+
+    o	stopifnot(<FALSE-expr>) now gives a better message for a *long*
+	expression.
+
+
+
+
+		CHANGES IN R VERSION 2.3.1
+
+
+NEW FEATURES
+
+    o	In lm() and glm(), offsets are allowed to be length 1 (and
+	if so are replicated to the number of cases).
+
+    o	The \uxxxx notation for Unicode characters in input strings
+	can now be used on any platform which supports MBCS, even if
+	the current locale is not MBCS (provided that the Unicode
+	character is valid in the current character set).
+
+    o	The quasibinomial() family now allows the "cauchit" link. (PR#8851)
+
+    o	edit.data.frame() no longer (silently) coerces character columns
+	to factor.
+
+
+C-LEVEL FACILITIES
+
+    o	The variables controlling stack checking are made available via
+	Rinterface.h to front-ends embedding R: see 'Writing R Extensions'
+
+    o	R_SignalHandlers (defined in Rinterface.h) can be set to 0 to
+	suppress the R signal handlers in front-ends embedding R.
+
+
+INSTALLATION CHANGES
+
+    o	There have been a number of changes to help installation on
+	platforms that no one had beta-tested.
+
+	- Changes related to older header files, e.g. on Redhat 8.0/9.
+
+	- Problems with 'make install' on older (<3) versions of bash
+	  on Solaris and elsewhere.
+
+	- AIX 5.2/gcc issues with needing -lm when making modules X11
+	  and vfonts.
+
+	- Some versions of Solaris and AIX had an fcntl.h that
+	  redefined 'open' to be 'open64' and thereby broke
+	  compilation of src/main/connections.c and elsewhere.
+
+    o	'make uninstall' works better on a build using a named
+	subarchitecture.
+
+
+BUG FIXES
+
+    o	min(), max(), sum() and prod() gave nonsensical answers with
+	an empty list or raw argument.
+
+    o	sum() on a data frame did not allow multiple arguments.	 (PR#8385)
+
+    o	charmatch() and pmatch() did not specify they applied only to
+	character vectors.  Now they do, and attempt to coerce 'x' and
+	'target' to character before attempting matching.
+
+    o	The Summary() methods for data.frame, Date, POSIXct, POSIXlt
+	and difftime all required an argument which can match 'x',
+	although the generics did not.
+
+    o	regexpr() now accepts 0-length 'text' inputs.
+
+    o	help.search() no longer errors out on a wrongly installed package
+	(with no "hsearch.rds" file).
+
+    o	The LaTeX version of the package reference manual was omitting
+	some topics, and was not sorting the foo-package topic first.
+
+    o	Serializing (e.g. via save()) is better protected against C
+	stack overflow, which will now abort the conversion but no
+	longer crashes the R process on some platforms.
+
+    o	rbind()ing dataframes with a single row could lead to a
+	corrupt data frame (a problem with the fix to PR#8506).
+
+    o	plot(lm(y ~ 1)) now works also for 'which = 5'.
+
+    o	dbeta(0, 1, a, 0) now correctly gives 'a' (limit) instead of 0,
+	and dbeta(0, a, b, ncp) now returns Inf instead of NaN.
+
+    o	demo(Hershey) was failing on the Cyrillic octal codes in locales
+	(e.g. UTF-8) in which these are invalid.
+
+    o	mean() on an integer (or logical) vector was treating NAs as
+	actual values (unless na.rm = TRUE).
+
+    o	mean() on a complex vector was calculated incorrectly in
+	code to improve precision (PR#8842, John Peters).
+
+    o	Graphical parameters bg, cex, col, lty, and lwd were being
+	checked as being of length one even by functions such as
+	title() that ignored them.  (Functions such as lines() and
+	points() allow them to be of length > 1, so they might be
+	passed through ... to other high-level graphical functions
+	which then used to reject them.)
+
+    o	str() now is fast again for large character vectors.
+
+    o	edit() would default the environment of a function to .BaseEnv,
+	instead of to .GlobalEnv.
+
+    o	lm() and glm() coerce their 'weights' and 'offset' values to
+	vector to avoid problems with specifying them as 1D or n x 1
+	arrays.
+
+    o	image() with one or both axes on log scales would give a
+	spurious warning; contour() would give an error.
+
+    o	legend() with log axes would place the title in the wrong place.
+
+    o	edit.data.frame() was not returning factors edited with
+	factor.mode="numeric" to factors.
+
+    o	edit.matrix() tried to set rownames and colnames from the
+	original matrix even if the sizes had been altered, and
+	ignored changes made to the column names.  'edit.row.names' has
+	a more sensible default (if the rownames are non-NULL).
+
+    o	bindingIsLocked() was returning invalid values of a logical
+	vector on some platforms.
+
+    o	merge.data.frame() did not make the column names unique (by
+	appending elements of 'suffixes') when performing a Cartesian
+	product.  (PR#8676)
+
+    o	rbind.data.frame() matches up the names of columns (which was
+	undocumented), but failed to do so when checking if it was
+	dealing with a factor column.  (PR#8868)
+
+	If rbind() was used on data frames with duplicated names it
+	produced a corrupt data frame.
+
+    o	dt(x, df, ncp= not.0) no longer gives erratic values for
+	|x| < ~1e-12.  (PR#8874)
+
+    o	\code{\linkS4class{.}} now works.
+
+    o	ccf() aligns time series by ts.intersect() rather than
+	ts.union() and so is less likely to need a non-default
+	na.action.  (PR#8893)
+
+    o	optim(method="CG") could return a value that did not
+	correspond to $par for very badly behaved functions on which
+	the second phase of the line search failed.  (PR#8786)
+
+    o	print.ts() could fail on a corrupt time series: it now warns and
+	does the best it can.
+
+
+
+
+		CHANGES IN R VERSION 2.3.0
+
+
+USER-VISIBLE CHANGES
+
+    o	In the grid package there are new 'arrow' arguments to
+	grid.line.to(), grid.lines(), and grid.segments()
+	(grid.arrows() has been deprecated).
+
+	The new 'arrow' arguments have been added BEFORE
+	the 'name', 'gp' and 'vp' arguments so existing code that
+	specifies any of these arguments *by position* (not by name)
+	will fail.
+
+    o	all.equal() is more stringent, see the PR#8191 bug fix below.
+
+    o	The data frame argument to transform() is no longer called 'x',
+	but '_data'.  Since this is an invalid name, it is less likely
+	to clash with names given to transformed variables. (People
+	were getting into trouble with transform(data, x=y+z).)
+
+
+NEW FEATURES
+
+    o	arima.sim() has a new argument 'start.innov' for compatibility
+	with S-PLUS.  (If not supplied, the output is unchanged from
+	previous versions in R.)
+
+    o	arrows() has been changed to be more similar to segments():
+	for example col=NA omits the arrow rather than as previously
+	(undocumented) using par("col").
+
+    o	as.list() now accepts symbols (as given by as.symbol() aka
+	as.name()).
+
+    o	atan2() now allows one complex and one numeric argument.
+
+    o	The 'masked' warnings given by attach() and library() now only
+	warn for functions masking functions or non-functions masking
+	non-functions.
+
+    o	New function Axis(), a generic version of axis(), with Date and
+	POSIX[cl]t methods.  This is used by most of the standard
+	plotting functions (boxplot, contour, coplot, filled.contour,
+	pairs, plot.default, rug, stripchart) which will thus label x
+	or y axes appropriately.
+
+    o	pbeta() now uses TOMS708 in all cases and so is more accurate
+	in some (e.g. when lower.tail = FALSE and when one of the
+	shape parameters is very small).
+
+    o	[qr]beta(), [qr]f() and [qr]t() now have a non-centrality parameter.
+
+    o	[rc]bind and some more cases of subassignment are implemented
+	for raw matrices.  (PR#8529 and PR#8530)
+
+    o	The number of lines of deparsed calls printed by browser() and
+	traceback() can be limited by the option "deparse.max.lines".
+	(Wish of PR#8638.)
+
+    o	New canCoerce() utility function in "methods" package.
+
+    o	[pq]chisq() are considerably more accurate for moderate (up to
+	80) values of ncp, and lower.tail = FALSE is fully supported
+	in that region.	 (They are somewhat slower than before.)
+
+    o	chol(pivot = TRUE) now gives a warning if used on a (numerically)
+	non-positive-definite matrix.
+
+    o	chooseCRANmirror() consults the CRAN master (if accessible) to
+	find an up-to-date list of mirrors.
+
+    o	cov.wt() is more efficient for 'cor = TRUE' and has a new 'method'
+	argument which allows 'Maximum Likelihood'.
+
+    o	do.call() gains an 'envir' argument.
+
+    o	eigen() applied to an asymmetric real matrix now uses a
+	tolerance to decide if the result is complex (rather than
+	expecting the imaginary parts of the eigenvalues to be exactly
+	zero).
+
+    o	New function embedFonts() for embedding fonts in PDF or
+	PostScript graphics files.
+
+    o	fisher.test() now uses p-values computed via hypergeometric
+	distributions for all 2 by 2 tables.  This might be slightly
+	slower for a few cases, but works much better for tables with
+	some large counts.
+
+	There is a new option to simulate the p-value for larger than
+	2 x 2 tables.
+
+    o	for() now supports raw vectors as the set of indices.
+
+    o	getNativeSymbolInfo() is vectorized for the 'name' argument.  It
+	returns a named list of NativeSymbolInfo objects, but is
+	backward compatible by default when called with a character
+	vector of length 1, returning the NativeSymbolInfo object.
+
+    o	help.search() no longer attempts to handle packages installed
+	prior to R 2.0.0, and reports the current path to the
+	package (rather than where it was originally installed: this
+	information is not shown by the print() method).
+
+    o	Added "hexmode" to parallel "octmode".
+
+    o	install.packages() now does tilde expansion on file paths
+	supplied as 'pkgs'.
+
+    o	install.packages() has additional arguments 'configure.args' and
+	'clean' which allow the caller to provide additional arguments
+	to the underlying R CMD INSTALL shell command when installing
+	source packages on a Unix-alike.
+
+    o	is.loaded() has a new argument 'type' to confine the search to
+	symbols for .C, .Fortran, .Call or .External: by default it
+	looks for a symbol which will match any of them.  It is now
+	internal and not primitive, so argument matching works in the
+	usual way.
+
+    o	The symmetry test for matrices used in eigen() has been ``exported''
+	as the 'matrix' method of a new S3-generic 'isSymmetric().
+
+    o	.leap.seconds and the internal adjustment code now know about
+	the 23rd leap second on 2005-12-31: the internal code uses a
+	run-time test to see if the OS does.
+
+    o	The 'col' argument of legend() now defaults to par("col")
+	(which defaults to "black", the previous default), so that
+	the lines/symbols are shown in the legend in the colour that
+	is used on the plot.
+
+    o	log2() and log10() call C functions of the same name if
+	available, and will then be more likely to be precise to
+	machine accuracy.
+
+    o	new.packages() gains a ... argument to pass e.g. 'destdir' to
+	install.packages().  (Wish of PR#8239.)
+
+    o	nls() now supports 'weights'.
+
+    o	The vector passed as the first argument of the 'fn' and 'gr'
+	arguments of optim() has the names (if any) given to argument
+	'par'.
+
+    o	options(expressions) is temporarily increased by 500 during
+	error-handling.	  This enables e.g. traceback() to work when
+	the error is reaching the limit on the nesting of expressions.
+
+    o	page() accepts general R objects, not just names (and
+	previously undocumented) character strings.  This allows the
+	object to be specified as a call, for example.	More options
+	are allowed in its '...' argument.
+
+    o	pairs() allows a wider class of inputs, including data frames
+	with date and date-time columns.
+
+    o	par() and the in-line use of graphical parameters produce more
+	informative error messages, distinguishing between
+	non-existent pars and inappropriate use of valid pars.
+
+	Graphical parameters 'family', 'lend', 'ljoin' and 'lmitre'
+	can now be set in-line.
+
+	There is no longer a warning if non-settable pars are used
+	in-line, but there is an appropriate warning if unknown pars
+	are passed.
+
+	The length limit for the 'family' parameter has been increased
+	to 200 bytes, to allow for the names of some CID-keyed fonts
+	in multi-byte locales.
+
+    o	The pdf() device now allows 'family' to be specified in the same
+	generality as postscript().
+
+    o	The pdf() device writes /FontDescriptor entries for all fonts
+	except the base 14, and does not write font entries for unused
+	fonts.
+
+    o	Plotmath allows 'vartheta', 'varphi' and 'varsigma' (or 'stigma')
+	as synonyms for 'theta1', 'phi1' and 'sigma1', and the help
+	page has a note for TeX users.
+
+    o	plot.xy() now takes its default arguments from the
+	corresponding par() settings, so points(type="l") and
+	lines(type="p") behave in the same way (and more obviously,
+	also for type="b").
+
+    o	poly() has a new argument 'raw', mainly for pedagogical purposes.
+
+    o	The class "POSIXlt" now supports fractional seconds (as
+	"POSIXct" has always done).  The printing of fractional seconds
+	is controlled by the new option "digits.secs", and by default is off.
+
+    o	postscript() supports family = "ComputerModernItalic" for
+	Computer Modern with italic (rather than slanted) faces.
+
+    o	The postscript()/pdf() font metrics for the 14 standard fonts
+	(only, not the rest of the common 35) have been updated to
+	versions from late 1999 which cover more glyphs.  There are
+	also a few differences in the metrics and hence the output
+	might be slightly different in some cases.
+
+    o	The way families can be specified for postscript() and pdf()
+	has been expanded to include CID-keyed fonts, with new
+	functions Type1Font() and CIDFont() to set up such fonts
+	families.
+
+    o	prettyNum() has new arguments 'preserve.width' and 'zero.print'.
+	When the former is not "none", as in calls from format() and
+	formatC(), the resulting strings are kept at the desired width
+	when possible even after adding of 'big.mark' or 'small.mark'.
+
+    o	proc.time() and system.time() now record times to 1ms accuracy
+	where available (most Unix-like systems).
+
+    o	The initialization methods for the quasi() family have been
+	changed to depend on the variance function, and in particular
+	to work better for the "mu(1-mu)" variance function.  (PR#8486)
+
+    o	read.table() gains a 'flush' argument passed to scan().
+
+    o	require() now takes a 'lib.loc' argument.
+
+    o	The second argument 'size' to sample() is required to have
+	length 1, so that errors when supplying arguments are more
+	easily detected.
+
+    o	The default is now compress = !ascii in save() (but not save.image).
+
+    o	scan() and write.table() now have some interruptibility, which
+	may be useful when processing very large files.
+
+    o	A new heuristic test, seemsS4Object() is supplied, along with a
+	similar C-level test, R_seemsS4Object(object). The test
+	detects probable S4 objects by their class's attribute. See
+	the help page.
+
+    o	S3 classes can now be made non-virtual S4 classes by supplying a
+	prototype object in the arguments to setOldClass().
+
+    o	splinefun() returns a function that now also has a 'deriv' argument
+	and can provide up to the 3rd derivative of the interpolating
+	spline, thanks to Berwin Turlach.
+
+    o	stopifnot(A) now gives a better error message when A has NAs, and
+	uses "not all TRUE" when A has length >= 2.
+
+    o	str()'s default method has a new argument 'strict.width' which can
+	be used to produce strict 'width' conforming output.  A new
+	options(str = list(strict.width = *)) setting allows to control
+	this for a whole session.
+
+    o	summary.nls() has a new argument 'correlation' that defaults
+	to FALSE (like summary.lm).
+
+    o	Sys.sleep() has sub-millisecond resolution on Unix-alikes
+	with gettimeofday().
+
+    o	Sys.time() now has sub-millisecond accuracy on systems
+	supporting the POSIX call gettimeofday, and clock-tick
+	accuracy on Windows.
+
+    o	The new function timestamp() adds a time stamp to the saved
+	command history on consoles which support it.
+
+    o	New function tcrossprod() for efficiently computing x %*% t(x)
+	and x %*% t(y).
+
+    o	The suffix used by tempfile() is now in hex on all platforms
+	and guaranteed to be at least 6 hex digits (usually 8).
+
+    o	trace() now works more consistently and more like its
+	documentation, in particular the assertions about old tracing
+	being removed for new.	For debugging purposes (of R) a
+	mechanism for debugging the trace computations themselves was
+	added.	See trace.R.
+
+    o	The implementation of trace() has beem made more general by
+	calling a function to do the trace interaction, and recover()
+	now detects trace calls to trim the irrelevant code underneath.
+
+    o	unserialize() can now also read a byte stream from a raw vector.
+
+    o	The useDynLib() directive in the NAMESPACE file now accepts the
+	names of the native/foreign symbols that are to be resolved in
+	the DLL for use in .C/.Call/.Fortran/.External calls.  These
+	can be used as regular R variables instead of the (routine
+	name, PACKAGE) pairs currently recommended.  Alternative names
+	can be given for the R variables mapping to these symbols.
+	The native routine registration information can also be used
+	directly via useDynLib(name, .registration = TRUE).  See the
+	'Writing R Extensions' manual for more details.
+
+	checkFF() (package 'tools') has been updated accordingly.
+
+    o	validObject() has an option complete=TRUE that recursively
+	checks the objects in the slots.  Not used when new(...)
+	checks validity.
+
+    o	New Vectorize() function, a wrapper for mapply().
+
+    o	write.ftable() has gained an argument 'append = FALSE' (thanks to
+	Stephen Weigand).
+
+    o	On Unix-alikes, X11() now has arguments to request the initial
+	position of the window, and 'gamma' defaults to the value of
+	getOptions("gamma").  These changes are consistent with the
+	windows() device.
+
+    o	X11() and the Unix-alike data entry window can have properties
+	(including geometry) set by X resources: see their help files.
+
+    o	xy.coords() & xyz.coords() now have NULL defaults for their 'y' or
+	'y' and 'z' arguments.	This is more consistent with their earlier
+	documentation, and may be convenient for using them.
+
+
+    o	Non-syntactic names of list elements are now printed quoted by
+	backticks rather than double quotes.
+
+    o	There is some basic checking for imminent C stack overflow (when
+	the evaluation depth and the user interrupts are checked).
+	On systems with suitable OS support (not Windows), segfaults
+	from C stack overflow are caught and treated as an R error.
+
+	New function Cstack_info() reports on stack size and usage.
+
+	options(expressions) reverts to the default of 5000 now
+	stack checking is in place.
+
+    o	Package tcltk does not try to initialize Tk on Unix-alikes
+	unless a DISPLAY variable is present.  This allows packages
+	dependent on tcltk to be installed without access to an X server.
+
+    o	The code used to guess timezone offsets where not supplied by
+	the OS uses a different algorithm that is more likely to guess
+	the summer-time transitions correctly.
+
+    o	Package tools contains translation tables 'Adobe_glyphs' and
+	'charset_to_Unicode'.
+
+    o	Changed the environment tree to be rooted in an empty
+	environment, available as emptyenv().  baseenv() has been
+	modified to return an environment with emptyenv() as parent,
+	rather than NULL.
+
+    o	gettext has been updated to 0.14.5.
+
+    o	PCRE has been updated to version 6.4.
+
+    o	The method $.DLLInfo resolves the specified symbol in the DLL,
+	returning a NativeSymbolInfo object.  Use [[ to access the actual
+	values in the DLLInfo object.
+
+    o	On systems with either vasprintf or both va_copy and a vsnprintf
+	which reports the size of buffer required, connections such as
+	gzfile() and bzfile() can now write arbitrarily long lines,
+	not just 100000 chars.
+
+    o	The R session temporary directory is now set in C code using
+	the same algorithm whether or not the shell front-end is used
+	and on all platforms.  This looks at environment variables
+	TMPDIR, TMP and TEMP in turn, and checks if they point to a
+	writable directory.
+
+    o	Some of the classical tests put unnecessary restrictions on the
+	LHS in the formula interface (e.g., t.test(x+y ~ g) was not
+	allowed).
+
+    o	On suitably equipped Unix-alike systems, segfaults, illegal
+	operations and bus errors are caught and there is a simple
+	error-handler which gives the user some choice as to what to
+	do in interactive use.
+
+	On Windows access violations and illegal instructions are
+	caught with a simple error handler.
+
+    o	Tracebacks now include calls such as .C/.Fortran/.Call, which
+	will help if errors occur in R code evaluated by compiled code
+	and in tracebacks presented by the segfault etc handlers.
+
+    o	Treatment of signature objects and method definition objects has
+	been modified to give cleaner printing and more consistency in
+	the treatment of signatures.  A sometimes useful utility,
+	methodSignatureMatrix(), is now exported.
+
+    o	Printing the results of codoc() from package tools now helpfully
+	summarizes the found code/documentation mismatches.
+
+    o	R refrains from printing a final EOL upon exiting the main loop
+	if the quiet flag is on and if the save action is known (e.g. this
+	is true for --slave).
+
+
+DEPRECATED & DEFUNCT
+
+    o	The deprecated and undocumented use of atan() with two arguments
+	has been removed: instead use atan2().
+
+    o	write.table0() is defunct in favour of write.table().
+
+    o	format.char() is defunct in favour of format.default().
+
+    o	Support for the long-deprecated (and no longer documented)
+	arguments --min-vsize --min-nsize --max-vsize --max-nsize
+	--vsize --nsize of R CMD BATCH has been removed.
+
+    o	The 'debian' subdirectory has been removed from the sources.
+
+    o	The 'vfont' argument of axis() and mtext() has been removed:
+	use par(family=) instead.
+
+    o	The unused graphical parameter "type" has been removed: it
+	invited confusion with the 'type' argument to default methods
+	of plot(), points() and lines().
+
+    o	nlsMethod() and profiler() are no longer exported from the stats
+	name space (and nlsMethod.plinear() is no longer registered as
+	a method, as nlsMethod() was not generic).
+
+    o	The re-named tcltk functions tkcmd, tkfile.tail, tkfile.dir,
+	tkopen, tkclose, tkputs, tkread are now formally deprecated.
+
+    o	Argument 'col' of bxp() is now formally deprecated.
+
+    o	Use of NULL as an environment is deprecated and gives a warning.
+
+    o	postscriptFont() is deprecated in favour of Type1Font() (which
+	is just a change of name).
+
+    o	La.chol() and La.chol2inv() are deprecated (they have since R
+	1.7.0 been the same as the default options of chol() and chol2inv).
+
+    o	La.svd(method = "dgesvd") is deprecated.
+
+    o	The use of install.R and R_PROFILE.R files in packages is
+	deprecated: use the DESCRIPTION file instead to arrange to
+	save an image or to load dependent packages.
+
+	The following command-line options to INSTALL are deprecated
+	(use the fields in the DESCRIPTION file instead):
+	-s --save --no-save --lazy --no-lazy --lazy-data --no-lazy-data
+
+    o	Graphical parameter 'tmag' (which is long unused) is deprecated.
+
+
+INTERNATIONALIZATION
+
+	A set of patches supplied by Ei-ji Nakama has been incorporated.
+
+    o	New postscript encodings for CP1253, CP1257 and Greek (ISO 8859-7).
+
+    o	Support for East Asian CID-keyed fonts in pdf() and postscript().
+	Although these usually contain Latin characters no accurate
+	AFMs are available and so CID-keyed fonts are intended only
+	for use with CJK characters.
+
+    o	Wide-character width functions wc[s]width are provided that
+	overcome problems found with OS-supplied ones (and those
+	previously used by R on Windows).  This means that
+	double-width CJK characters are now supported on all
+	platforms.  It seems that the width of some characters (and
+	not just CJK characters) depends on which CJK locale's fonts
+	are in use and also on the OS.
+
+	Revised wide-character classification functions are
+	provided for use on Windows, AIX and MacOS X to replace
+	deficient OS-supplied ones.
+
+    o	There is support for MBCS charsets in the pictex() graphics
+	device, and rotated (by 90 degrees) text may work better.
+
+    o	The \u (and \U except on Windows) notation for characters which
+	is supported by the parser in all MBCS charsets is now always
+	interpreted as a Unicode point, even on platforms which do not
+	encode wchar_t in Unicode.  These are now a syntax error in
+	single-byte locales.
+
+    o	The default encoding for postscript() and pdf() is chosen to
+	be suitable for the current locale, if that is a single-byte
+	locale which is supported.  This covers European (including
+	Greek) and Cyrillic languages.
+
+	In UTF-8 locales, a suitable single-byte encoding is chosen
+	for postscript() and pdf(), and text translated to it.
+
+    o	xfig() gains an 'encoding' argument.
+
+    o	There are some message translations into Spanish.
+
+
+INSTALLATION CHANGES
+
+    o	The encoding files for pdf()/postscript() have been moved to
+	directory 'enc' in package 'grDevices'.
+
+    o	Support for MBCS is only enabled if iconv is found and it
+	supports enough conversions.  (libiconv does.)
+
+    o	In an MBCS locale, make check now translates the graphics
+	examples from Latin-1.	This ensures that they will work
+	correctly in UTF-8: it is possible that in other MBCS locales
+	they will now fail (rather than work completely incorrectly).
+
+    o	There is a new test, 'test-Docs', which as part of 'make
+	check-devel' tests the code in the documentation.  Currently
+	it runs doc/manual/R-{exts,intro}.R and the compiled code in
+	R-exts.c.
+
+    o	The workaround to allow an external LAPACK-containing BLAS
+	such as libsunperf to be used with the internal LAPACK has
+	been removed.  If you have such a library you may now need
+	to use --with-lapack.  It is no longer possible to use some
+	older versions of libsunperf, e.g. Forte 7 on 64-bit builds.
+
+    o	A substitute for mkdtemp is provided, so it is now always
+	used for R_TempDir.
+
+    o	Most of the functions checked for by 'configure' also have
+	declarations checked for in the appropriate header.
+
+    o	The top-level documentation files AUTHORS COPYING.LIB COPYRIGHTS
+	FAQ RESOURCES THANKS have been moved to doc, and COPYING and NEWS
+	are installed there.  The file Y2K has been removed from the
+	distribution.
+
+    o	The extension .lo is no longer used in building R (only in
+	the optional build of libRmath.so): this allows a considerable
+	simplification of the Makefiles.
+
+    o	Direct support for f2c has been removed: it can still be used
+	via a script which makes it look like a Fortran compiler.
+	(src/scripts/f77_f2c is an example of such a script.)
+
+    o	There is a new flag SAFE_FFLAGS which is used for the
+	compilation of dlamc.f.	 It is set by configure for known
+	problem cases (recent g77 and gfortran), but can be overridden
+	by the user.
+
+    o	The standard autoconf macros for large-file support are now used,
+	and these are enabled unless --disable-largefile is specified.
+	This replaces --enable-linux-lfs (and is now selected by default).
+
+    o	Visibility attributes are used where supported (gcc4/gfortran on
+	some platforms, also gcc3/g77 on FC3 and partially elsewhere).
+	The main benefit should be faster loading (and perhaps better
+	optimized code) in some of the dynamic shared objects (e.g.
+	libR.so and stats.so).
+
+    o	The *PICFLAGS are taken to be -fpic rather than -fPIC where
+	possible.   This will make no difference on most platforms:
+	-fPIC is needed on Sparc (and still used there), but -fpic
+	should give slightly better performance on PowerPC (although
+	-fPIC is used on PPC64 as it is needed to build libR.so there).
+
+    o	More use is made of inlining for small utility functions such
+	as isReal.  Because this can only be done portably with C99
+	constructs (and we know of no actual implementation), this is
+	only done for the GNU C compiler.
+
+    o	There is an experimental feature to allow shared installations
+	of sub-architectures.  See the R-admin manual.
+
+    o	All platforms now use R's internal implementation of strptime,
+	which allows fractional seconds.  (The major platforms were
+	already using it.)
+
+    o	The dlcompat work-around for old Mac OS X systems (<= 10.2)
+	has been removed.  External dlcompat must be installed if needed.
+
+
+UTILITIES
+
+    o	R CMD check now uses an install log by default.
+
+    o	R CMD check works for packages whose package name is different
+	from the directory name in which it is located.
+
+    o	R CMD INSTALL now uses more randomness in the temporary
+	directory name even on systems without mktemp -d.
+
+    o	R CMD f77 has been removed now f2c is no longer supported.
+
+    o	The version string shown in the startup message and by
+	"R --version", and that stored in variable R.version.string
+	are now in exactly the same format.
+
+    o	The base name of a help file needs to be valid as part of a file://
+	URL, so R CMD check now checks the names are ASCII and do not
+	contain % .
+
+    o	R CMD check now warns about unknown sections in Rd files, and
+	invalid names for help, demo and R files, as well as unlikely
+	file names in the 'src' directory.  The latter is controlled
+	by option --check-subdirs and by default is done if checking a
+	tarball without a configure script.
+
+	R CMD build excludes invalid files in the 'man', 'R' and 'demo'
+	subdirectories.
+
+    o	\usepackage[noae]{Sweave} in the header of an Sweave file
+	supresses auto-usage of the ae package ("almost European"
+	fonts) and T1 input encoding.
+
+
+DOCUMENTATION
+
+    o	Rd format now allows \var{} markup inside \code{} and \examples{}.
+
+    o	Markup such as --, ---, < and > is handled better when
+	converting .Rd files to [C]HTML.
+
+    o	There is new markup \link[=dest]{name} to generate a link to topic
+	'dest' which is shown as 'name', and \linkS4class{abc} which
+	expands to \link[=abc-class]{abc}, for cross-referencing the
+	recommended form of documentation for S4 classes.
+
+
+PACKAGE INSTALLATION
+
+    o	There is now some support for Fortran 90/95 code in packages:
+	see `Writing R Extensions'.
+
+    o	Installation of man sources and demos is now done by R code.
+	The restrictions on the names of help files, R files and
+	of demos are now enforced (see `Writing R Extensions').
+
+    o	Packages which contain compiled code can now have more than
+	one dot in their name even on Windows.
+
+    o	The Meta/hsearch.rds database saved now contains LibPath="".
+	This information is now always recreated when help.search() is
+	run, but the field is retained for back-compatibility.
+
+    o	update.packages() now has a '...' argument to be passed to
+	install.packages(), including the formerly separate arguments
+	'destdir' and 'installWithVers'.
+
+    o	Make macros AR and RANLIB are now declared in etc/Makeconf for
+	use by packages which wish to make static libraries.
+
+
+C-LEVEL FACILITIES
+
+    o	qgamma and rgamma in Rmath.h now check for non-positive arguments.
+
+    o	The BLAS which ships with R now contains the complete set of
+	double-complex BLAS routines, rather than just those used in R.
+
+	<R_ext/BLAS.h> has been corrected to add the missing
+	double-precision BLAS functions drotmg and drotm, and to
+	exclude lsame (which is a Lapack auxiliary function and is now
+	declared in <R_ext/Lapack.h>).	It also includes the double
+	complex routines added for this release of R provided Fortran
+	doublecomplex is usable on the platform.
+
+    o	<R_ext/BLAS.h> and <R_ext/Lapack.h> now declare all the entry
+	points as 'extern'.
+
+    o	The flag SAFE_FFLAGS is made available to packages via
+	etc/Makeconf and R CMD config.	It can be used where
+	optimization needs to be defeated, e.g. in LAPACK setup.
+
+    o	getNativeSymbolInfo has a withRegistrationInfo argument which
+	causes the address field to be a reference to the registration
+	information if it is available for that symbol.	 If the
+	registration information is not available, the address is a
+	reference to the native symbol. The default is FALSE which is
+	backward compatible, returning just the address of the symbol
+	and ignoring registration information.
+
+    o	errorcall and warningcall are now declared in <Rinternals.h>
+	(they might be needed in front-ends).
+
+    o	R_FlushConsole and R_ProcessEvents are now declared in <R.h>.
+
+    o	The R_Sock* functions supporting socket connections are no
+	longer declared in R-ftp-http.h as they are not loaded into R
+	itself, and are now hidden in the module's DLL on suitable systems.
+
+
+BUG FIXES
+
+    o	Quoted arguments to the R script after --args are now
+	passed quoted to the R executable and so will be shown as
+	expected by commandArgs().  (They were previously split at
+	whitespace even inside quotes on Unix-alikes but not on
+	Windows.)
+
+    o	axis() now supports pars 'xaxp'/'yaxp' as inline arguments.
+
+    o	sort() now does not return inappropriate attributes such as
+	"dim" and "tsp": it only returns names.
+
+	sort(x, partial=) no longer returns unsorted names, and drops
+	names (since it is supplied for efficiency).
+
+    o	Use of non-central F in pf() gives accurate values for larger ncp.
+
+    o	R CMD build --binary does a better job of cleaning up after
+	failure to re-make vignettes.
+
+    o	reg-test-1.R tested system(intern=TRUE) which depends on popen
+	and so is not supported on all platforms.
+
+    o	Changed apparent mis-spelling of "Gibraltar" in dataset 'eurodist'.
+
+    o	sysconf() is now used to find the number of clock ticks/second:
+	under some circumstances glibc reported CLK_TCK = 60 when the
+	true value was 100.
+
+    o	identical() was not allowing for embedded nuls in character
+	strings. (NB: the comparison operators including == do not,
+	and never will.)
+
+    o	The profile() and profiler() methods for "nls" objects now
+	support algorithm = "plinear" and algorithm = "port".
+
+    o	The signal handlers for signals USR1 and USR2 where not
+	restored if the signal arrived when interrupts were suspended.
+
+    o	Certain combinations of S4 inheritance could cause inherited
+	methods to override some directly specified methods.
+
+    o	Some cases of named signatures in calls to setMethod() caused errors.
+
+    o	all.equal() is now more consistent and "picky" about mismatching
+	attributes, in particular names(); this is a part of the
+	propositions by Andy Piskorkski (PR#8191).
+
+    o	load() when applied to a connection leaves it open/not as it
+	found it, and checks explicitly for having a binary readable
+	connection.
+
+    o	The p-values given by stat.anova() (called from several
+	anova() methods) are now NA (rather than spurious) if
+	non-nested models give rise to changes in deviance with a
+	different sign from changes in degrees of freedom.
+
+    o	Built-ins were reported as the relevant call in C-level error()s
+	iff R profiling was in progress.  Now they are never reported.
+
+    o	Too-long signatures (with no names) were not being caught
+	in setMethod().
+
+    o	Slot names in prototype() are being more thoroughly checked.
+
+    o	signif() is more likely to follow the 'round to even' rule for
+	exactly representable numbers, e.g. signif(0.25, 1).  (Related
+	to PR#8452.)
+
+    o	nls() now works correctly with some low-dimensional fits,
+	e.g. with one or zero non-linear parameters.
+
+    o	glm() could give an inappropriate error message if all
+	possible coefficients were invalid (e.g. a log-linear binomial
+	model with no intercept and a not all positive predictor).
+
+    o	solve() gives clearer error messages for some incorrect usages.
+	(PR#8494 and similar)
+
+    o	The gaussian() family was missing the 'valideta' component
+	(which could be needed for the "inverse" link function).
+
+	The starting values supplied by the gaussian family could be
+	invalid for the "log" and "inverse" link functions.  This is
+	now reported.
+
+    o	data.matrix() did not work correctly on zero-row data frames.
+	(PR#8496 and other problems.)
+
+    o	The DSC comments in the files from postscript(onefile=FALSE) now
+	label all files as having page 1 of 1, as some other software
+	seems to expect that.
+
+    o	The axis labels chosen for logarithmic axis are now less
+	likely to be linear and inappropriate (when the range is more
+	than 10 and less than 100).  (PR#1235)
+
+    o	Staircase lines (types "s" and "S") are now drawn
+	continuously rather than a point at a time and so line types,
+	mitring and so on work. (PR#2630)
+
+    o	Calling par(mfg) before doing any plotting resulted in NewPage
+	never being called on the device, which in turn resulted in
+	incorrect output for postcript() and pdf() devices.  (Reported
+	by Marc Schwartz in discussion of the non-bug PR#7820.)
+
+    o	terms.formula needed to add parentheses to formulae with
+	terms containing '|'.  (PR#8462)
+
+    o	pbirthday() and qbirthday() now also work for very improbable
+	events {those you are typically *not* interested in}.
+
+    o	Only source help files starting with an upper- or lower-case
+	letter or digit and extension .Rd or .rd are documented to be
+	processed.  This is more liberal in that starting with a digit
+	is now also allowed, but rule is now enforced.
+
+    o	nls(algorthm="port") was always taking positive numeric
+	differences and so could exceed the upper bounds.
+
+    o	methods:::.asEnvironmentPackage() was not allowing for
+	versioned installs.
+
+    o	.find.package() now reports which package(s) it cannot find in
+	the case it stops with an error.
+
+    o	The standard Unix-alike version of file.show() gives an
+	informative message if it cannot open a file rather than the
+	(possibly incorrect) 'NO FILE'.
+
+    o	window() did not allow non-overlapping ranges with
+	extend = TRUE.	(PR#8545)
+
+    o	pbinom(size = 0) now returns correct values (not NaN).	(PR#8560)
+
+    o	[dp]binom(x, *) for x < 0 now always returns 0. (PR#8700)
+	analogous change in pgeom(), pnbinom() and ppois().
+
+    o	[dqpr]geom and [dpqr]nbinom() now all consistently accept prob = 1
+	but not prob = 0.  qgeom(prob=1) now gives the correct values
+	(not -1).
+
+    o	INSTALL on Unix-alikes was not loading dependent packages when
+	preparing for lazy-loading.
+
+    o	qcauchy(1) now gives +Inf instead of just a very large number.
+
+    o	df(0, f1, *) now properly returns Inf, 1, or 0 for f1 < , = , or > 2.
+
+    o	qbinom(), qnbinom() and qpois() now use a better search and
+	normally reach the answer very quickly when it is large
+	(instead of being slow or infinite-looping).
+
+    o	pt(x, df) lost accuracy in the far tails (when |x| > 1e154) for
+	small df (like df = 0.001 for which such extremes are not unlikely).
+
+    o	dbeta(x, a, b) underflowed internally and incorrectly gave 0
+	for very small x and a.
+
+    o	None of the warnings about convergence failures or loss of
+	precision in nmath (distribution and special functions) were
+	being reported to the R user.
+
+    o	dnt was missing from standalone nmath (under Unix-alikes).
+
+    o	split() now accepts factors with numeric (but not storage mode
+	integer) codes.
+
+    o	The utilities such as 'check' now report active version numbers
+	again, as SVN 'last changed revision' numbers.
+
+    o	addmargins() did not accept a name for 'FUN', only an expression.
+
+    o	'+' for POSIXt objects now takes the tzone from whichever
+	object has it, so date+x is the same as x+date if x is numeric.
+
+    o	mean.default() and var() compute means with an additional pass
+	and so are often more accurate, e.g. the variance of a
+	constant vector is (almost) always zero and the mean of such a
+	vector will be equal to the constant value to machine
+	precision.  (PR#1228)
+
+	sum(), prod(), mean(), rowSums() and friends use a long double
+	accumulator where available and so may be more accurate.  (This
+	is particularly helpful on systems such as Sparc and AMD64
+	where long double gives considerably greater exponent range
+	and precision than double.)
+
+    o	read.dcf() now gives a warning on malformed lines.
+
+    o	add1.[g]lm now try harder to use the environment of the
+	formula in the orginal fit to look for objects such as the
+	'data' and 'subset' arguments.
+
+    o	gaussian()$aic was inconsistent with e.g. the lm results from
+	AIC() and extractAIC() for weighted fits: it treated the weights
+	as case weights and not variance factors.
+
+    o	system() on Unix-alikes ignored non-logical values of 'intern' and
+	treated 'intern = NA' as true.
+
+    o	as.table() now produces non-NA rownames when converting a
+	matrix of more than 26 rows.  (PR#8652)
+
+    o	Partial sorting used an algorithm that was intended only for a
+	few values of 'partial' and so could be far slower than a full
+	sort.  It now switches to a barebones full sort for more than
+	10 values of 'partial' and uses a more efficient recursive
+	implementation for 2...10.
+
+    o	summary.glm() returned an estimate of dispersion of Inf for a
+	gaussian glm with zero residual degrees of freedom and then
+	treated that as a known value.	It now uses the estimate NaN,
+	which is consistent with summary.lm().
+
+    o	Sys.sleep() on Unix-alikes was restricted to about 2147 seconds
+	and otherwise might never have returned.  (PR#8678)
+
+    o	is(obj, Cl) could wrongly report TRUE when Cl was a classUnion and
+	multiple inheritance was involved.
+
+    o	confint[.lm / .default] used label "100 %" for level = 0.999
+
+    o	Empty entries (i.e., extraneous ",") in NAMESPACE files now give
+	a better error message early at parsing time instead of a less
+	comprehensible one later at load time.
+
+    o	all.equal(n1, n2) could erroneously return NA when n1, n2
+	contained large integers.
+
+    o	anova.mlm() didn't handle multi-df effects properly in the
+	single-model case (PR#8679)
+
+    o	anova.mlm() had its colnames mangled by data.frame() (needed
+	check.names=FALSE).
+
+    o	summary.glm() gave an NA estimate of dispersion for fits with
+	zero weights.  (PR#8720)
+
+    o	qhyper() had too small a tolerance for right-continuity on
+	some platforms so was not always an inverse to phyper().
+
+    o	rownames<-.data.frame() and dimnames<-.data.frame() tested the
+	length(s) of the replacement value(s) before coercion, which
+	can change the length (e.g. for class "POSIXlt").
+
+    o	max() and min() ignored the largest/smallest representable
+	integer, as well as Inf/-Inf.  (PR#8731)
+
+    o	write.table() assumed factors had integer codes: it now allows
+	malformed factors with numeric codes (and otherwise throws an
+	error).
+
+    o	Worked around a Solaris restriction which meant that
+	Sys.sleep() was only effective for times of up to one second.
+
+    o	sink(, split=TRUE) now works correctly, but is allowed only on
+	platforms that support va_copy or __va_copy.  (PR#8716)
+
+    o	factanal(), prcomp() and princomp() now only check that columns
+	in the model frame that will be used are numeric (they
+	previously also checked columns which were part of negative terms
+	in the formula).
+
+    o	Misuse of $ in apply could corrupt memory.  (PR#8718)
+
+    o	apply() could fail if the function returned NULL (e.g. if
+	there was a single row).
+
+    o	registerS3method() failed due to a typo. (It was almost never
+	used.)
+
+    o	Registering an S3 method for an S3 generic in another package
+	that was converted to an S4 generic in the same package as the
+	S3 method, registered the method in the wrong place.
+
+    o	Recall() used lookup for the function in use and so could fail
+	if that was an S3 method not on the search path.
+
+    o	Rdconv -t Ssgm failed if it encountered \link[opt]{arg}.
+
+    o	uniroot() did not give a warning (as documented) if it failed
+	to converge in 'maxiter' steps.	 (PR#8751)
+
+    o	eapply() (and as.list.environment()) did not work for the base
+	environment/name space.	 (PR#8761)
+
+    o	Added protection in configure against systems for which using
+	xmkmf fails to report a C or C++ compiler.
+
+    o	expand.grid() was constructing a data frame 'by hand' and so
+	setting integer row.names (which are documented to be
+	character).  It now sets character row names, and
+	row.names.data.frame() coerces to character.
+
+    o	qbeta() used == on volatile doubles for its convergence test,
+	which failed with gcc 3.3.x on ix86 Linux.  We now use a less
+	fragile test (and lose a negligible amount of accuracy).
+
+    o	ls.str() was missing inherits=FALSE, and so could have
+	reported on an object of the same name but a different mode in
+	the enclosure of the given environment.
+
+    o	logLik.nls assumed that sigma^2 had been estimated, but did
+	not count this in the 'df' attribute.
+
+
+
+
+	**************************************************
+	*						 *
+	*	       2.2 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 2.2.1 patched
+
+
+INSTALLATION CHANGES
+
+
+    o	The macro SOCKLEN_T has been replaced by R_SOCKLEN_T to work
+	around a problem with the headers of AIX 5.3.
+
+
+BUG FIXES
+
+    o	sub(fixed = TRUE) could get wrong the length of the character
+	string for elements of the result after the first.
+
+    o	legend() worked out which elements of 'lty' were valid before
+	resizing 'lty', and so could fail if 'lty' was a different
+	length from 'legend'.
+
+    o	str(<dendrogram>) sometimes used much too many spaces (in 2.2.x).
+
+    o	eigen(eispack=TRUE) accessed areas off the matrix in some
+	circumstances (some asymmetric matrices with both complex
+	conjugate pair and real eigenvalues).
+
+    o	strptime() in 2.2.1 sometimes did not set $isdst when it was
+	previously set.
+
+    o	Another case of infinite influence has been worked around.
+	(An addendum to PR#8367.)
+
+    o	qr.coef() worked incorrectly with multiple rhs in the
+	LAPACK-using cases. (PR#8476/8)
+
+    o	rbind.data.frame() gave a corrupt data frame if one of the
+	named arguments was a zero-row data frame. (PR#8506)
+
+    o	Checks for NULL in the rho argument of the C-level findVar
+	function have been added.
+
+    o	The C-level substitute function was handling NULL in its 'rho'
+	argument incorrectly.
+
+    o	The code for pgamma() introduced in 2.1.0 failed for large
+	values of 'shape' where the previous code was perfectly
+	acceptable, despite the claim to be uniformly better.  For
+	example, pgamma(0.9e100, 1e100) was NaN.  (PR#8528)
+
+    o	There was no command 'ls' in browser() nor 'next' in debug(),
+	despite the documentation (which has been corrected).
+	Command 'where' in the browser() no longer changes to
+	step-though mode.
+
+    o	factor.scope() could report incorrectly that interaction terms
+	were not in the upper scope when such terms in the model and
+	the upper scope had different orders for the main effects.
+	(Another manifestation of PR#7842.)
+
+    o	The "lm" method of drop1() was giving incorrect results for
+	weighted fits (since deviance.lm() was called on a non-"lm" object).
+
+    o	dotchart() was miscalculating the space for the labels in the
+	left margin.  (PR#8681)
+
+    o	r <- glm(.....); all.equal(r,r) # now gives TRUE instead of an error
+
+    o	plot.acf() with a multiple time series was sometimes
+	miscalculating the 'ylim' value for the plot after the first.
+	(PR#8705)
+
+
+
+		CHANGES IN R VERSION 2.2.1
+
+
+USER-VISIBLE CHANGES
+
+    o	options("expressions") has been reduced to 1000: the limit
+	of 5000 introduced in 2.1.0 was liable to give crashes from C
+	stack overflow.
+
+
+NEW FEATURES
+
+    o	Use of 'pch' (e.g. in points) in the symbol font 5 is now
+	interpreted in the single-byte encoding used by that font.
+	Similarly, strwidth now recognizes that font 5 has a different
+	encoding from that of the locale.  (These are likely to affect
+	the answer only in MBCS locales such as UTF-8.)
+
+    o	The URW font metrics have been updated to versions from late
+	2002 which cover more glyphs, including Cyrillic.
+
+    o	New postscript encodings for CP1250 (Windows East European),
+	ISO Latin-7 (8859-13, Latvian, Lithuanian and Maori), Cyrillic
+	(8859-5), KOI8-R, KOI8-U and CP1251.
+
+    o	configure has more support for the Intel and Portland Group
+	compilers on ix86 and x86_64 Linux.
+
+    o	R CMD INSTALL will clean up if interrupted (e.g. by ctrl-C from
+	the keyboard).
+
+    o	There is now a comprehensive French translation of the messages,
+	thanks to Philippe Grosjean, Frederic Lehobey, Jean Thioulouse
+	and Emmanuel Paradis.
+
+
+DEPRECATED & DEFUNCT
+
+    o	The undocumented use of atan() with two arguments is deprecated:
+	instead use atan2() (as documented).
+
+    o	The 'vfont' argument of axis() and mtext() is deprecated
+	(it currently warns and does nothing).
+
+    o	The function mauchley.test() is deprecated (was a misspelling)
+	and replaced by mauchly.test()
+
+
+BUG FIXES
+
+    o	The malloc's of AIX and OSF/1 which return NULL for size 0
+	are now catered for in src/main/regex.c.
+
+    o	Names of list elements which are missing are now printed as
+	$<NA> and not $"NA" (which is how the non-missing name "NA" is
+	printed).  (Brought up in discussion of PR#8161.)
+
+    o	help.start() was not linking R.css for use by its front page and
+	immediate links (2.2.0 only).
+
+    o	Indexing by character NA matched the name "NA".
+
+    o	The arith-true test used random inputs and did not set the seed, so
+	it could fail very occasionally.
+
+    o	arima() with 'fixed' supplied and p=0 for the non-seasonal
+	part could give spurious warnings about 'some AR parameters
+	were fixed'.
+
+    o	summary.matrix() could give an infinite recursion on some
+	classed objects (e.g. those of class "Surv").
+
+    o	The 255th character in an 8-bit character set was not handled
+	correctly as a letter on some platforms where C char is
+	signed: for example it was printed as \377 and not allowed in
+	variable names.	 (Spotted by Alexey Shipunov in Russian
+	encodings.)
+
+    o	Conversion from POSIXct to POSIXlt is done more accurately
+	around the change of DST in years not supported by the OS
+	(pre-1970 on Windows and some others, and in the far past or
+	future).
+
+    o	chisq.test(cbind(1:0, c(7,16)), simulate.p = TRUE) gave wrong
+	P-values on some platforms. (PR#8224)
+
+    o	pdf() was not writing details of the encoding to the file
+	correctly.  (Spotted by Alexey Shipunov in Russian encodings.)
+
+    o	image() was failing with an error when plotting a matrix
+	of all NA values.  (PR#8228)
+
+	image() could fail if called with add=FALSE (the default) and
+	length(x)=1 for either x or y, as it uses the plot coordinates of
+	the previous plot (if any).
+
+    o	tools::checkMD5sums was not accepting file names with spaces in.
+
+    o	The plot() method for TukeyHSD() needed updating after adding
+	adjusted p-values.  (PR#8229)
+
+    o	read.fwf() did not work for header = TRUE.  (PR#8226)
+
+    o	diag() failed when its argument had NA values in its dimnames.
+
+    o	[g]sub(pcre=TRUE) did not work correctly with \U and \L in a
+	UTF-8 locale, even on the example on the help page.
+
+    o	promptMethods() was failing if the "methods" argument was supplied.
+
+    o	is.loaded() now finds Fortran symbols whether or not the
+	registration mechanism has been used.
+
+    o	ISODateTime() mistakenly corrected non-existent times (when
+	DST was being started) in the current time zone.
+
+    o	Some replacement operations on data frames gave incorrect
+	answers, e.g. DF[3:4, "y"] if column "y" did not exist or was
+	a matrix.
+
+    o	getGraphicsEvent() would cause memory corruption if passed an
+	empty prompt.
+
+    o	qr() and chol() now pivot the colnames of the result when
+	pivoting is used.  (PR#8258)
+
+    o	example(points) omitted pch=0, although it was valid and
+	said in the text to be illustrated.
+
+    o	plot.default() had an unused 'lab' argument, thereby preventing
+	the 'lab' graphics parameter being passed through '...' .
+
+    o	Although polygon(col = NA) was the stated default, specifying
+	NA was not equivalent to omitting the argument (but col=NULL
+	was equivalent).
+
+    o	Im(-1) was pi. (PR#8272, a side effect from all previous
+	versions of R returning the same value for Im and Arg of
+	non-complex numbers.)
+
+    o	symbols(fg) defaulted to colour 1, not par("col") as documented.
+	It does now defaults to par("col").
+
+    o	par("family") did not check the length of the value (up to 49
+	bytes) and so could segfault.
+
+    o	aggregate.ts() did not allow for rounding in frequencies such
+	as 1/5.
+
+    o	prcomp(tol=) was not dropping the sdev's corresponding to
+	dropped columns.
+
+    o	Subassignment of a vector which increased the length of the
+	vector _and_ had the wrong length of replacement could
+	occasionally segfault.	(This has been there since at least
+	mid 1997.)
+
+    o	The registration of .Fortran symbols was broken: these could
+	only be looked up if there were also .Call symbols registered!
+
+    o	R CMD build was incorrectly rejecting the recommended form of
+	name for a translation package, 'Translation-ll'.  (PR#8314)
+
+    o	numericDeriv() gave nonsense results unless the variables were
+	real, which was not checked.
+
+    o	predict.prcomp() would sometimes give an error when predicting
+	a single observation.  (PR#8324)
+
+    o	mapply() could segfault if MoreArgs was not a list.  (PR#8332)
+
+    o	The arith-true test used identical() on floating-point results,
+	and this allowed a failure when the relative difference was
+	less than .Machine$double.eps but non-zero.
+
+    o	qbinom() was not accepting p = -Inf when log.p = TRUE, although
+	it is a legitimate value.
+
+    o	write.csv[2] only accepted logical constants for 'row.names', and
+	now accepts variables.
+
+    o	Conversion of .Rd files did not correctly match braces
+	enclosing a whole argument, e.g. \eqn{{\bf a}}{a}.
+
+    o	The C function pythag (used if hypot was not available) would
+	infinite-loop on systems with effective optimizing compilers.
+
+    o	Writing long formats (more than 1000 bytes) with connections
+	that use dummy_vfprintf could fail on some systems.  The limit
+	has been changed to 100000 bytes pending a more complete fix in R
+	2.3.0.
+
+    o	Making in src/nmath/standalone without making R was not
+	making Rmath.h.
+
+    o	Both the R front-end and INSTALL could find the attempted
+	temporary directory name already in use on platforms without
+	mktemp (and a genuine Bourne shell /bin/sh, not bash).	Now
+	both the process ID and a timestamp are used to create the
+	directory name.
+
+    o	[dpqr]gamma now return NaN for an invalid 'shape' parameter
+	(rather than throw an error), for consistency with other
+	distribution functions.
+
+    o	t() now longer drops dimnames 'list(NULL,NULL)' or 'list(NULL)'.
+
+    o	Influence measures such as rstandard() and cooks.distance()
+	could return infinite values rather than NaN for a case which
+	was fitted exactly.  Similarly, plot.lm() could fail on such
+	examples.  plot.lm(which = 5)  had to be modified to only plot
+	cases with hat < 1.  (PR#8367)
+
+	lm.influence() was incorrectly reporting 'coefficients' and
+	'sigma' as NaN for cases with hat = 1, and on some platforms
+	not detecting hat = 1 correctly.
+
+    o	Rmath.h for standalone Rmath was not recording HAVE_WORKING_LOG,
+	so R_log was not available on platforms defining it.
+
+    o	HoltWinters() was using a slightly incorrect formula in the C code.
+
+    o	dir.create() could be confused by a trailing slash on the
+	path, and by paths containing drives on Windows.
+
+    o	The search for tcl/tkConfig.sh looked in 'lib' before 'lib64'
+	directories (and not at all in /usr/local/lib64) and so might
+	prefer 32- to 64-bit versions if both are available.
+
+    o	nlminb() used an uninitialized variable unless bounds were supplied,
+	and so failed on 64-bit Solaris.
+
+
+
+		CHANGES IN R VERSION 2.2.0
+
+
+USER-VISIBLE CHANGES
+
+    o	plot(<lm object>) uses a new default 'which = 5'
+	for the fourth panel when 'which' is not specified.
+
+    o	The SVN revision number will appear after the date in the
+	welcome message.  The date shown is now the date of the last
+	change to the sources rather than the date the sources were
+	prepared.
+
+    o	is.null(expression()) now returns FALSE.  Only NULL gives TRUE
+	in is.null().
+
+    o	graphics::xy.coords, xyz.coords and n2mfrow have been moved to
+	the grDevices name space (to be available for grid as well).
+
+	graphics::boxplot.stats, contourLines, nclass.*, and chull
+	have been moved to the grDevices name space.  The C code
+	underlying chull() has been moved to package grDevices.
+
+    o	split(x, f), split<-() and unsplit() now by default split by all
+	levels of a factor f, even when some are empty.
+	Use split(x, f, drop = TRUE) if you want the old behavior of
+	dropping empty levels.	split() and split<-() are S3 generic
+	functions with new arguments 'drop' and '...' and all methods now
+	should have 'drop' and '...' arguments as well.
+
+    o	The default for 'allowEscapes' in both read.table() and scan()
+	has been changed to FALSE.
+
+    o	The default for 'gcFirst' in system.time() is now TRUE.
+
+
+NEW FEATURES
+
+    o	.Platform has a new component 'path.sep', the separator used
+	between paths in environment variables such as PATH and TEXINPUTS.
+
+    o	anova.mlm() now handles the single-model case.
+
+    o	Hexadecimal values are now allowed for as.numeric() and
+	as.integer() on all platforms, and as integer constants in R code.
+
+    o	attach() now prints an information message when objects are
+	masked on the search path by or from a newly attached database.
+
+    o	axis() now returns 'at' positions.
+
+    o	axis() has a new argument 'hadj' to control horizontal
+	adjustment of labels.
+
+    o	axis.Date() and axis.POSIXct() now accept a 'labels' argument
+	(contributed by Gavin Simpson).
+
+    o	barplot() now has arguments 'log = ""' and 'add = FALSE'
+	(as in barplot2() from package 'gplots').
+
+    o	baseenv() has been added, to return the base environment.  This
+	is currently still NULL, but will change in a future release.
+
+    o	boxplot() now responds to supplying 'yaxs' (via bxp()).
+	(Wish of PR#8072.)
+
+    o	capabilities() has a new component 'NLS'.
+
+    o	cbind() and rbind() now react to 'deparse.level' = {0,1,2}
+	(as in another system not unlike R).
+
+    o	Experimental versions of cbind() and rbind() in methods package,
+	based on new generic function cbind2(x,y) and rbind2().	 This will
+	allow the equivalent of S4 methods for cbind() and rbind() ---
+	currently only after an explicit activation call, see ?cbind2.
+
+    o	New functions cdplot() and spineplot() for conditional density
+	plots and spine plots or spinograms.  Spine plots are now used
+	instead of bar plots for x-y scatterplots where y is a factor.
+
+    o	checkDocFiles() in package 'tools' now checks for bad \usage
+	lines (syntactically invalid R code).
+
+    o	The nonparametric variants of cor.test() now behave better in
+	the presence of ties. The "spearman" method uses the asymptotic
+	approximation in that case, and the "kendall" method likewise,
+	but adds a correction for ties (this is not necessary in the
+	Spearman case).
+
+    o	The X11 dataentry() now has support for X Input Methods
+	(contributed by Ei-ji Nakama).
+
+    o	density() is now an S3 generic where density.default() {former
+	density()} has new argument 'weights' for specifying observation
+	masses different than the default 1/N -- based on a suggestion and
+	code from Adrian Baddeley.
+
+    o	download.packages() now carries on if it encounters a download
+	error (e.g. a repository with a corrupt index).
+
+    o	dump() now skips missing objects with a warning rather than
+	throw an error.
+
+    o	Added "POSIXlt" methods for duplicated() and unique().
+
+    o	Function encoded_text_to_latex() in package tools translates
+	Latin 1,2,9 and UTF-8 encoded character vectors to LaTeX
+	escape sequences where appropriate.
+
+    o	encodeString() allows justify = "none" for consistency with
+	format.default().  Some argument names have been lengthened
+	for clarity.
+
+    o	file(), fifo() and pipe() now (if possible) report a reason
+	if they fail to open a connection.
+
+    o	format.default() now has a 'width' argument, and 'justify' can
+	now centre character strings.
+
+	format.default() has new arguments 'na.encode' to control
+	whether NA character strings are encoded (true by default),
+	and 'scientific' to control the use of fixed/scientific
+	notation for real/complex numbers.
+
+	How format() works on a list is now documented, and uses
+	arguments consistently with their usage on an atomic vector.
+
+    o	format.info() now has a 'digits' argument, and is documented
+	to work for all atomic vectors (it used to work for all but
+	raw vectors.).
+
+    o	New function glob2rx() for translating `wildcard' aka `globbing'
+	to regular expressions.
+
+    o	There is a new function gregexpr() which generalizes regexpr()
+	to search for all matches in each of the input strings (not
+	just the first match).
+
+    o	[g]sub() now have a 'useBytes' argument like grep() and regexpr().
+
+    o	[g]sub(perl = TRUE) support \L and \U in the replacement.
+
+    o	iconv() has been moved from 'utils' to 'base'.
+
+    o	identify()'s default method has additional arguments 'atpen'
+	and 'tolerance' (following S).
+
+    o	KalmanForecast() and KalmanLike() now have an optional argument
+	fast=FALSE to prevent their arguments being modified.
+
+    o	Exact p-values are available in ks.test() for the one-sided and
+	two-sided one-sample Kolmogorov-Smirnov tests.
+
+    o	labels() now has a method for "dist" objects (replacing that
+	for names() which was withdrawn in 2.1.0).
+
+    o	library() now explicitly checks for the existence of
+	directories in 'lib.loc': this avoids some warning messages.
+
+    o	loadNamespace(keep.source=) now applies only to that name space
+	and not others it might load to satisfy imports: this is now
+	consistent with library().
+
+    o	match.arg() has a new argument 'several.ok = FALSE'.
+
+    o	max.col() has a new argument for non-random behavior in the
+	case of ties.
+
+    o	memory.profile() now uses the type names returned by typeof()
+	and no longer has two unlabelled entries.
+
+    o	methods() now warns if it appears to have been called on a
+	non-generic function.
+
+    o	The default mosaicplot() method by default draws grey boxes.
+
+    o	nlminb(), similar to that in S-PLUS, added to package 'stats'.
+
+    o	New algorithm "port" (the nl2sol algorithm available in the
+	Port library on netlib) added to the nls() function in the
+	'stats' package.
+
+    o	object.size() now supports more types, including external
+	pointers and weak references.
+
+    o	options() now returns its result in alphabetical order, and is
+	documented more comprehensively and accurately.	 (Now all
+	options used in base R are documented, including
+	platform-specific ones.)
+
+	Some options are now set in the package which makes use of
+	them (grDevices, stats or utils) if not already set when the
+	package is loaded.
+
+    o	New option("OutDec") to set the decimal point for output conversions.
+
+    o	New option("add.smooth") to add smoothers to a plot, currently
+	only used by plot.lm().
+
+    o	pie() has new optional arguments 'clockwise' and 'init.angle'.
+
+    o	plot.lm() has two new plots (for 'which' = 5 or 6), plotting
+	residuals or cook distances versus (transformed) leverages - unless
+	these are constant.  Further, the new argument 'add.smooth' adds a
+	loess smoother to the point plots by default, and 'qqline = TRUE'
+	adds a qqline() to the normal plot.
+	The default for 'sub.caption' has been improved for long calls.
+
+    o	R.home() has been expanded to return the paths to components
+	(which can as from this version be installed elsewhere).
+
+    o	readbin() and writeBin() now support raw vectors as well as
+	filenames and connections.
+
+    o	read.dcf() can now read gzipped files.
+
+    o	read.table() now passes 'allowEscapes' to scan().
+
+    o	sample(x, size, prob, replace = TRUE) now uses a faster
+	algorithm if there are many reasonably probable values.	 (This
+	does mean the results will be different from earlier versions
+	of R.)	The speedup is modest unless 'x' is very large _and_
+	'prob' is very diffuse so that thousands of distinct values
+	will be generated with an appreciable frequency.
+
+    o	scatter.smooth() now works a bit more like other plotting
+	functions (e.g., accepts a data frame for argument 'x').
+	Improvements suggested by Kevin Wright.
+
+    o	signif() on complex numbers now rounds jointly to give the
+	requested number of digits in the larger component, not
+	independently for each component.
+
+    o	New generic function simulate() in the 'stats' package with
+	methods for some classes of fitted models.
+
+    o	smooth.spline() has a new argument 'keep.data' which allows to
+	provide residuals() and fitted() methods for smoothing splines.
+
+    o	Attempting source(file, chdir=TRUE) with a URL or connection
+	for 'file' now gives a warning and ignores 'chdir'.
+
+    o	source() closes its input file after parsing it rather than
+	after executing the commands, as used to happen prior to
+	2.1.0.	(This is probably only significant on Windows where
+	the file is locked for a much shorter time.)
+
+    o	split(), split<-(), unsplit() now have a new argument 'drop = FALSE',
+	by default not dropping empty levels; this is *not* back compatible.
+
+    o	sprintf() now supports asterisk `*' width or precision
+	specification (but not both) as well as `*1$' to `*99$'.  Also the
+	handling of `%' as conversion specification terminator is now
+	left to the system and doesn't affect following specifications.
+
+    o	The plot method for stl() now allows the colour of the range
+	bars to be set (default unchanged at "light gray").
+
+    o	Added tclServiceMode() function to the tcltk package to allow
+	updating to be suspended.
+
+    o	terms.formula() no longer allows '.' in a formula unless there
+	is a (non-empty) 'data' argument or 'allowDotAsName = TRUE' is
+	supplied.  We have found several cases where 'data' had not
+	been passed down to terms() and so '.' was interpreted as a
+	single variable leading to incorrect results.
+
+    o	New functions trans3d(), the 3D -> 2D utility from persp()'s
+	example, and extendrange(), both in package 'grDevices'.
+
+    o	TukeyHSD() now returns p-values adjusted for multiple comparisons
+	(based on a patch contributed by Fernando Henrique Ferraz P. da Rosa).
+
+    o	New functions URLencode() and URLdecode(), particularly for use
+	with file:// URLs.  These are used by e.g. browse.env(),
+	download.file(), download.packages() and various help() print
+	methods.
+
+    o	Functions utf8ToInt() and intToUtf8() to work with UTF-8
+	encoded character strings (irrespective of locale or OS-level
+	UTF-8 support).
+
+    o	[dqp]wilcox and wilcox.test work better with one very large sample
+	size and an extreme first argument.
+
+    o	write() has a new argument 'sep'.
+
+    o	write.csv[2] now also support row.names = FALSE.
+
+
+
+    o	The specification of the substitutions done when processing
+	Renviron files is more liberal: see ?Startup.  It now
+	accepts forms like R_LIBS=${HOME}/Rlibrary:${WORKGRP}/R/lib .
+
+    o	Added recommendation that packages have an overview man page
+	<pkg>-package.Rd, and the promptPackage() function to create a
+	skeleton version.
+
+    o	Replacement indexing of a data frame by a logical matrix index
+	containing NAs is allowed in a few more cases, in particular
+	always when the replacement value has length one.
+
+    o	Conversion of .Rd files to latex now handles encoding more
+	comprehensively, including some support for UTF-8.
+
+    o	The internal regex code has been upgraded to glibc-2.3.5.
+	Apart from a number of bug fixes, this should be somewhat
+	faster, especially in UTF-8 locales.
+
+    o	PCRE has been updated to version 6.2.
+
+    o	zlib has been updated to version 1.2.3.
+
+    o	bzip2 has been updated to version 1.0.3.
+
+    o	Complex arithmetic is now done by C99 complex types where
+	supported.  This is likely to boost performance, but is
+	subject to the accuracy with which it has been implemented.
+
+    o	The printing of complex numbers has changed, handling numbers
+	as a whole rather than in two parts.  So both real and
+	imaginary parts are shown to the same accuracy, with the
+	'digits' parameter referring to the accuracy of the larger
+	component, and both components are shown in fixed or
+	scientific notation (unless one is entirely zero when it is
+	always shown in fixed notation).
+
+    o	Error messages from .C() and .Fortran(), and from parsing errors,
+	are now more informative.
+
+    o	The date and date-time functions work better with dates more
+	than 5000 years away from 1970-01-01 (by making dubious
+	assumptions about the calendar in use).
+
+    o	There is now a traditional Chinese translation, and a much more
+	extensive Russian translation.
+
+
+DEPRECATED & DEFUNCT
+
+    o	Capability "IEEE754" is defunct.
+
+    o	loadURL() is defunct: use load(url()).
+
+    o	delay() is defunct: use delayedAssign() instead.
+
+    o	The 'CRAN' argument to update.packages(), old.packages(),
+	new.packages(), download.packages() and install.packages() is
+	defunct in favour of 'repos'.
+
+    o	write.table0() is deprecated in favour of the much faster
+	write.table().
+
+    o	format.char() is deprecated in favour of format.default().
+
+    o	R_HOME/etc/Rprofile is no longer looked for if
+	R_HOME/etc/Rprofile.site does not exist.  (This has been
+	undocumented since R 1.4.0.)
+
+    o	CRAN.packages() is deprecated in favour of available.packages().
+
+    o	Rd.sty no longer processes pre-2.0.0 conversions containing \Link.
+
+    o	The stubs for the defunct device GNOME/gnome have been removed.
+
+    o	print.matrix() (which has been identical to print.default since
+	R 1.7.0) has been removed.
+
+
+INSTALLATION
+
+    o	LDFLAGS now defaults to -L/usr/local/lib64 on most Linux
+	64-bit OSes (but not ia64).  The use of lib/lib64 can be
+	overridden by the new variable LIBnn.
+
+    o	The default installation directory is now ${prefix}/${LIBnn}/R,
+	/usr/local/lib64/R on most 64-bit Linux OSes and /usr/local/lib/R
+	elsewhere.
+
+    o	The places where the doc, include and share directory trees are
+	installed can be specified independently: see the R-admin manual.
+
+    o	We now test for wctrans_t, as apparently some broken OSes have
+	wctrans but not wctrans_t (which is required by the relevant
+	standards) .
+
+    o	Any external BLAS found is now tested to see if the complex
+	routine zdotu works correctly: this provides a compatibility
+	test of compiler return conventions.
+
+    o	Installation without NLS is now cleaner, and does not install
+	any message catalogues.
+
+    o	src/modules/lapack/dlamc.f is now compiled with -ffloat-store
+	if f2c/gcc are used, as well as if g77 is used.
+
+    o	All the Fortran code has been checked to be fully F77
+	compliant so there are no longer any warnings from F95
+	compilers such as gfortran.
+
+    o	The (not-recommended) options --with-system-zlib,
+	--with-system-bzlib and -with-system-pcre now have 'system' in
+	the name.
+
+    o	If a Java runtime environment is detected at configure time
+	its library path is appended to LD_LIBRARY_PATH or equivalent.
+	New Java-related variables JAVA_HOME (path to JRE/JDK), JAVA_PROG
+	(path to Java interpreter), JAVA_LD_PATH (Java library path)
+	and JAVA_LIBS (flags to link against JNI) are made available
+	in Makeconf.
+
+    o	Ei-ji Nakama was contributed a patch for FPU control with the
+	Intel compilers on ix86 Linux.
+
+
+MAC OS X INSTALLATION
+
+    o	--with-blas="-framework vecLib" --with-lapack and
+	--with-aqua are now the default configure options.
+
+    o	The default framework version name was changed to not contain
+	the patch level (i.e. it is now 2.2 instead of 2.2.0).	Also
+	it can be overridden at configure time by setting FW_VERSION
+	to the desired name.
+
+    o	The Rmath stand-alone library is now correctly installed inside
+	the R.framework if R was configured as a framework.  In
+	addition, make install-Rmath-framework will install a
+	stand-alone Rmath framework in /Library/Frameworks (unless
+	overridden by RMATH_FRAMEWORK_DIR specifying full framework
+	path and name including the .framework extension).
+
+
+PACKAGE INSTALLATION
+
+    o	The encoding for a packages' 00Index.html is chosen from the
+	Encoding: field (if any) of the DESCRIPTION file and from the
+	\encoding{} fields of any Rd files with non-ASCII titles.
+	If there are conflicts, first-found wins with a warning.
+
+    o	R_HOME/doc/html/packages.html is now remade by R not Perl code.
+	This may result in small changes in layout and a change in
+	encoding (to UTF-8 where supported).
+
+    o	The return value of new.packages() is now updated for any
+	packages which may be installed.
+
+    o	available.packages() will read a compressed PACKAGES.gz file in
+	preference to PACKAGES if available on the repository: this
+	will reduce considerably the download time on a dialup connection.
+
+	The downloaded information about a repository is cached for the
+	current R session.
+
+    o	The information about library trees found by
+	installed.packages() is cached for the current session, and
+	updated only if the modification date of the top-level
+	directory has been changed.
+
+    o	A data index is now installed for a package with a 'data' dir
+	but no 'man' dir (even though it will have undocumented data objects).
+
+    o	contrib.url path for type="mac.binary" has changed from
+	bin/macosx/<version> to	bin/macosx/<arch>/contrib/<version>
+	where <arch> corresponds to R.version$arch
+
+
+UTILITIES
+
+    o	checkFF() used by R CMD check has since R 2.0.0 not reported
+	missing PACKAGE arguments when testing installed packages with
+	name spaces.  It now
+
+	- treats installed and source packages in the same way.
+
+	- reports missing arguments unless they are in a function in
+	  the name space with a useDynLib declaration (as the
+	  appropriate DLL for such calls can be searched for).
+
+    o	Rd2dvi sets the encoding(s) used appropriately.	 If UTF-8
+	encoding is used, latex >= 2003/12/01 is required.
+
+    o	codoc() allows help files named pkg_name-defunct.Rd to have
+	undocumented arguments (and not just base-defunct.Rd).
+
+
+C-LEVEL FACILITIES
+
+    o	C function massdist() {called from density()} has new argument
+	'xmass' (= weights).
+
+    o	Raw vectors passed to .C() are now passed as unsigned char *
+	rather than as SEXPs.  (Wish of Keith Frost, PR#7853)
+
+    o	The search for symbols in a .C/.Call/... call without a
+	package argument now searches for an enclosing name space and
+	so finds functions defined within functions in a name space.
+
+    o	R_max_col() has new (5th) argument '*ties_meth' allowing
+	non-random behavior in the case of ties.
+
+    o	The header files have been rationalized: the BLAS routine
+	LSAME is now declared in BLAS.h not Linpack.h, Applic.h no
+	longer duplicates routines from Linpack.h, and Applic.h is
+	divided into API and non-API sections.
+
+    o	memory.c has been instrumented so that Valgrind can track R's
+	internal memory management.  To use this, configure using
+	       --with-valgrind-instrumentation=level
+	where level is 1 or 2.	Both levels will find more bugs with
+	gctorture(TRUE).  Level 2 makes Valgrind run extremely slowly.
+
+    o	Some support for raw vectors has been added to Rdefines.h.
+
+    o	R_BaseEnv has been added, to refer to the base environment.
+	This is currently equal to R_NilValue, but it will change in
+	a future release.
+
+
+BUG FIXES
+
+    o	%/% has been adjusted to make x == (x %% y) + y * ( x %/% y )
+	more likely in cases when extended-precision registers were
+	interfering.
+
+    o	Operations on POSIXct objects (such as seq(), max() and
+	subsetting) try harder to preserve time zones and warn if
+	inconsistent time zones are used.
+
+    o	as.function.default() no longer asks for a bug report when
+	given an invalid body. (PR#1880, PR#7535, PR#7702)
+
+    o	Hershey fonts and grid output (and therefore lattice output)
+	now rescale correctly in fit-to-window resizing on a Windows
+	graphics device.  Line widths also scale now.
+
+    o	Plotmath has more support for multibyte characters (contributed
+	by Ei-ji Nakama).
+
+    o	The X11() device now hints the window manager so that decorations
+	appear reliably under e.g. the GNOME WM	 (contributed
+	by Ei-ji Nakama).
+
+    o	Subsetting a matrix or an array as a vector used to attempt to
+	use the row names to name the result, even though the
+	array might be longer than the row names.  Now this is only
+	done for 1D arrays when it is done in all cases, even matrix
+	indexing.  (Tidies up after the fix to PR#937.)
+
+    o	Constants in mathlib are declared 'const static double' to
+	avoid performance issues with the Intel Itanium compiler.
+
+    o	The parser checks the format of numeric constants more
+	thoroughly so for example '123E-' is no longer valid.
+
+    o	contourLines() no longer requires an open device (used to
+	start a device unnecessarily).	Fix suggested by Barry Rowlingson.
+
+    o	capabilities() used partial matching but was not documented
+	to: it no longer does so.
+
+    o	kernel(1,0) printed wrongly;  kernel(<name-string>, *) now returns
+	a named kernel in all cases; plot(kernel(.),..) is more flexible.
+
+    o	qgamma(1,s) didn't give +Inf for some s.
+
+    o	installed.packages() and download.packages() now always
+	return a matrix as documented, possibly with 0 rows (rather than
+	a 0-length character vector or NULL).
+
+    o	Arithmetic operations on data frames no longer coerce the
+	names to syntatically valid names.
+
+    o	Units are now properly recycled in grid layouts
+	when 'widths' or 'heights' are shorter than the number of
+	columns or rows (PR#8014).
+
+    o	DF <- data.frame(A=1:2, B=3:4); DF[1, 1:3] <- NULL gave a wrong
+	error message.
+
+    o	spline()/spinefun()'s C code had a memory access buglet which
+	never lead to incorrect results.  (PR#8030)
+
+    o	sum() was promoting logical arguments to double not integer
+	(as min() and other members of its group do).
+
+    o	loess() had a bug causing it to occasionally miscalculate
+	standard errors (PR#7956).  Reported by Benjamin Tyner, fixed
+	by Berwin Turlach.
+
+    o	library(keep.source=) was ignored if the package had a
+	name space (the setting of options("keep.source.pkgs") was
+	always used).
+
+    o	hist.POSIXct() and hist.Date() now respect par("xaxt").
+
+    o	The 'vfont' argument was not supported correctly in title(),
+	mtext(), and axis().  The 'vfont' argument is superseded by
+	the par(family=) approach introduced in 2.0.0.	This bug-fix
+	just updates the warning messages and documentation to
+	properly reflect the new order of things.
+
+    o	The C-level function PrintGenericVector could overflow if
+	asked to print a length-1 character vector of several thousand
+	characters.  This could happen when printing a list matrix,
+	and was fatal up to 2.1.1 and silently truncated in 2.1.1 patched.
+
+    o	What happened for proc.time() and system.time() on
+	(Unix-alike) systems which do not support timing was
+	incorrectly documented.	 (They both exist but throw an error.)
+	Further, systen.time() would give an error in its on.exit
+	expression.
+
+    o	weighted.residuals() now does sensible things for glm() fits:
+	in particular it now agrees with an lm() fit for a Gaussian glm()
+	fit.  (PR#7961).
+
+    o	The 'lm' and 'glm' methods for add1() took the weights and
+	offset from the original fit, and so gave errors in the
+	(dubious) usage where the upper scope resulted in a smaller
+	number of cases to fit (e.g. by omitting missing values in new
+	variables).  (PR#8049)
+
+    o	demo() had a 'device' argument that did nothing (although it
+	was documented to): it has been removed.
+
+    o	Setting new levels on a factor dropped all existing
+	attributes, including class "ordered".
+
+    o	format.default(justify="none") now by default converts NA
+	character strings, as the other values always did.
+
+    o	format.info() often gave a different field width from format()
+	for character vectors (e.g. including missing values or
+	non-printable characters).
+
+    o	axis() now ensures that if 'labels' are supplied as character
+	strings or expressions then 'at' is also supplied (since the
+	calculated value for 'at' can change under resizing).
+
+    o	Defining S4 methods for "[" had resulted in changed behavior of S3
+	dispatch in a very rare case which no longer happens.
+
+    o	Fixed segfault when PostScript font loading fails, e.g., when
+	R is unable to find afm files (reported by Ivo Welch).
+
+    o	R CMD BATCH <file> now also works when <file> does not end in a
+	newline on Unix-alike platforms.
+
+    o	terms.formula() got confused if the 'data' argument was a list with
+	non-syntactic names.
+
+    o	prompt() and hence package.skeleton() now produce *.Rd files that
+	give no errors (but warnings) when not edited, much more often.
+
+    o	promptClass() and promptMethods() now also escape "%" e.g. in '%*%'
+	and the latter gives a message about the file written.
+
+    o	wilcox.test() now warns when conf.level is set higher than
+	achievable, preventing errors (PR#3666) and incorrect answers
+	with extremely small sample sizes.
+
+    o	The default (protection pointer) stack size (the default for
+	'--max-ppsize') has been increased from 10000 to 50000 in order to
+	match the increased default options("expressions") (in R 2.1.0).
+
+    o	The R front-end was expecting --gui=tk not Tk as documented,
+	and rejecting --gui=X11.
+
+    o	Rdconv -t latex protected only the first << and >> in a chunk
+	against conversion to guillemets.
+
+    o	callNextMethod() and callGeneric() have fixes related to
+	handling arguments.
+
+    o	ls.diag() now works for fits with missing data. (PR#8139)
+
+    o	window.default() had an incorrect tolerance and so sometimes
+	created too short a series if 'start' or 'end' were zero.
+
+    o	Some (fairly pointless) cases of reshape left a
+	temporary id variable in the result (PR#8152)
+
+    o	R CMD build used 'tar xhf' which is invalid on FreeBSD systems
+	(and followed tar chf, so there could be no symbolic links in
+	the tarball).
+
+    o	Subassignment of length zero vectors to NULL gave garbage
+	answers. (PR#8157)
+
+    o	Automatic coercion of raw vectors to lists was missing, so for a
+	list (or data frame) z, z[["a"]] <- raw_vector did not work
+	and now does.  This also affected DF$a <- raw_vector for a
+	data frame DF.
+
+    o	The internal code for commandArgs() was missing PROTECTs.
+
+    o	The width for strwrap() was used as one less than specified.
+
+    o	R CMD INSTALL was not cleaning up after an unsuccessful
+	install of a non-bundle which was not already installed.
+
+
+
+
+	**************************************************
+	*						 *
+	*	       2.1 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 2.1.1 patched
+
+
+BUG FIXES
+
+    o	runmed(x, k = -1) now gives an error instead of a seg.fault.
+
+    o	File creation errors in pdf(), postscript(), xfig() resulted
+	in a pointer being freed twice.	 (Reported by Matt McCall)
+
+    o	model.matrix(~ .^2, data=foo) now works as most people would
+	expect (it used to expand '.' after using the a^2 = a rule).
+
+    o	ftable() and xtabs() had a check for interactions that would
+	not work correctly with '.' in the formula.
+
+    o	The formula method for pairs() was ignoring the na.action argument.
+
+    o	scan() with the default separator (only) was stripping backslashes
+	inside quoted string inputs even if allowEscapes = FALSE.
+
+    o	The "col" parameter to pairs() is now treated consistently with
+	plot():	 it affects the data, not the axes.  (Patch submitted
+	by Olaf Mersmann)
+
+    o	Sweave failed for \Sexpr{character(0)}.	 Sweave-test-1.Rnw
+	contained a print() statement that is no longer needed.
+
+    o	Typo meant that R_alloc was limited to 2^31 not 2^34 on 64-bit
+	builds of R.
+
+    o	pgamma(Inf, shape) did not terminate for shape = 1.1 and some
+	other values (but not all) (PR#8001).  This affected
+	pchisq(Inf, df1) and pf(Inf, df1, Inf) for some values of df1.
+
+    o	regexpr("[a-z]", ...) could cause a buffer overrun with multi-byte
+	character sets, leading to random errors later.
+
+    o	Installing a package with a 'data' directory which contains
+	files but those files generate no objects (e.g. the BioC
+	package	makecdfenv) created an incorrectly formatted data
+	index that data(package="pkg") could not read.
+
+    o	density(1/(0:2)) now works again (PR#8033).
+
+    o	make.names() was not respecting the allow_=FALSE argument.
+
+    o	Arg(-1) now gives pi, not 0; Arg(0i + -1) always worked.
+
+    o	--enable-linux-lfs had been broken at 2.1.0.
+
+    o	Printing was not allowing for double-width characters in its
+	layout.
+
+    o	axTicks() is now also correct for reverse axis.	 (PR#7973)
+
+    o	signif() rounded some numnbers near 1e-308 to the wrong
+	number of places (this showed up in the print-tests.R), and made
+	unnecessary rounding errors on some platforms on e.g. signif(18000, 3).
+
+    o	window() was sometimes failing incorrectly due to representation
+	errors when the new and old deltat were not both integers
+	(e.g. multiples of 0.1).
+
+    o	The 'lm' methods for add1() and drop1() ignored offsets (which
+	were added for lm() after they written).  (PR#8049)
+
+    o	atan2(0+1i, 0+0i) was incorrectly NA (from a typo in complex.c).
+
+    o	The POSIXct method for as.Date() was rounding part days
+	before 1970-01-01 upwards rather than discarding them.
+
+    o	qpois() was using an incorrect starting point and so could be
+	unnecessarily slow for large lambda.  (PR#8058)
+
+    o	Formatting of complex numbers with nsmall > 0 could be
+	incorrect (and was in print-tests.Rout) because of a typo.
+
+    o	The test for new levels when predicting using model.frame()
+	sometimes reported levels that were not actually used.
+
+    o	order(c("5","6",NA,"4",NA), na.last=FALSE) was incorrect.
+
+    o	Coercion to raw could give spurious messages about discarding
+	imaginary parts.
+
+	Coercion of a list to raw was behaving inconsistently for
+	out-of-range values (and not warning).
+
+    o	cor.test(method = "spearman") gave NA p-values for _very_ long
+	vectors. (PR#8087)
+
+    o	Switching to the Mersenne-Twister RNG could cause a segfault on
+	first use.
+
+	A user-supplied RNG without user_unif_{nseed,seedloc} was
+	being re-initialized at each call.
+
+    o	Reading very short tables from stdin() with read.table would
+	fail because of a typo.
+
+
+
+
+		CHANGES IN R VERSION 2.1.1
+
+
+NEW FEATURES
+
+    o	bug.report() now reports the locale in use.
+
+    o	upgrade.packageStatus() allows user input "c" to cancel the
+	upgrade, just as update.packages() does.
+
+    o	glm() now accepts 1D arrays (e.g. tables) as a response,
+	dropping them to a vector whilst preserving names.
+
+    o	df() with one infinite df now works (to match pf()).
+
+    o	Added tclServiceMode() function to the tcltk package to allow
+	updating to be suspended.
+
+    o	The Encoding: field of a DESCRIPTION file is now documented,
+	and used by packageDescription() and library(help=).
+
+    o	There has been progress on translations: existing translations
+	have been revised and expanded, and French and Korean have
+	been added.
+
+	The Windows installer supports a wide range of languages for
+	installation.
+
+
+BUG FIXES
+
+    o	lm(qr=FALSE) now works.
+
+    o	predict.glm() not longer loses names for "response" predictions.
+	(PR#7792)
+
+    o	Typo in menu(graphics=TRUE) meant it failed on Unix if tcltk
+	was not available.
+
+    o	When names.dist() was removed, the result of cmdscale() lost
+	its rownames.  The example also lost the labels.
+
+    o	R CMD check assumed 'tar' was GNU tar and so supported -z.
+
+    o	read.table() was not handing escaped quotes inside quoted fields
+	in the first five lines of the file.  (PR#7789)
+
+	It was also not handling correctly EOF in the first five lines
+	when reading from stdin().  (PR#7772)
+
+    o	'make uninstall' was incomplete.
+
+    o	make.packages.html() called by help.start() was failing if
+	there were installed packages with help titles invalid in the
+	current locale.
+
+    o	printCoefmat(signif.legend = FALSE) was non-functional. (PR#7802)
+
+    o	Some as.date.frame() methods failed because the expression
+	deparsed into multiple lines. (PR#7808)
+
+    o	setRepositories() had a typo. (PR#7810)
+
+    o	Printing arrays/data frames with multibyte characters in the
+	column labels was sometimes misaligned or using excessive space.
+	(PR#7803)
+
+    o	The Tcl/Tk console did not support multibyte characters.
+
+    o	as.POSIXlt() could give infinite recursion if passed a corrupt
+	"POSIXct" object (generated by an incorrect call to c.POSIXct,
+	PR#7826).
+
+    o	update.packages() was not passing 'type' correctly to
+	install.packages().
+
+    o	Printing the result of an unbalanced model.tables() call
+	sometimes got confused if terms() had rearranged interaction
+	terms.	(PR#7829)
+
+    o	.Platform$pkgType was wrong on the CRAN MacOS X build, and
+	.install.macbinary() was missing.
+
+    o	as.personList() as used by citation() got confused by names
+	containing "and".  (PR#7797)
+
+    o	Subscripting an array by a matrix containing zero or negative
+	values or the wrong number of columns was not handled
+	consistently. (PR#7824)
+
+    o	select.list(multiple=TRUE) now detects and tries again for invalid
+	text input.
+
+    o	add1.[g]lm could give strange results with interaction terms
+	when the model and the upper scope had different orders for
+	the main effects.  (PR#7842)
+
+    o	A bug had sneaked into the anova.mlmlist() code, affecting the
+	Greenhouse-Geisser epsilon. Code wrongly assumed a matrix to
+	be symmetric. (Thanks to Bela Bauer.)
+
+    o	anova.mlmlist() and mauchley.test() are now more tolerant to rank
+	deficiency in the M and X matrices (also when they are implicitly
+	generated via model.matrix()).
+
+    o	anova.mlm had a scoping issue (PR#7898)
+
+    o	pf() with infinite df is allowed again.	 It is now more accurate
+	for extreme ratios of dfs, especially when there is a
+	non-centrality parameter.
+
+    o	df() was inaccurate for large df (1e16 or greater).
+
+    o	dt() was inaccurate for large df (1e9 or greater) with a
+	non-centrality parameter.
+
+    o	runmed(*, algorithm="Turlach") seg.faulted in rare cases.
+
+    o	strwrap() now makes a reasonable job of text that is invalid in the
+	current locale.
+
+    o	Reading with encoding "UCS-2LE" will remove any Byte Order
+	Mark, as most implementations of iconv fail to handle BOMs
+	(which are present in 'Windows Unicode' files).
+
+    o	unique() for a list was incorrectly reporting `unimplemented'.
+
+    o	The parser's contextstack was not protected against overflow,
+	e.g. more than 50 unmatched '('.  (PR#7859)
+
+    o	source(file, chdir = TRUE) was not checking that 'file' was a
+	filepath (rather than a URL).  For 2.1.0 only, it did not work
+	even if 'file' was a filepath.
+
+    o	Hershey fonts were being sized based on pixels not points so came
+	out too small on devices where pixels were noticeably different
+	from points (e.g., win.printer() and high-resolution screens).
+
+	Fix means that default size of Hershey fonts may be slightly
+	different, for example, smaller by default on PostScript and PDF.
+
+    o	The branch cuts in the complex versions of the inverse
+	trigonometric and hyperbolic functions were non-standard.
+	(PR#7871)
+
+    o	truncate() on file() connections was limited to files < 2Gb.  It
+	now works for larger files at least on 64-bit OSes and others
+	where ftruncate supports such files.  (Related to PR#7879)
+
+    o	proj.aovlist() did not work correctly on objects fitted from a
+	data frame with row names.
+
+    o	The coding standards recommendations had
+	nuke-trailing-whitespace where newer versions of ESS need
+	ess-nuke-trailing-whitespace.  (PR#7888)
+
+    o	package.skeleton() missed the first newline in the DESCRIPTION file.
+
+    o	pbirthday() reported p = 1 too often when coincident > 2.
+
+    o	plot(1:3, exp(1:3), log = "y", ylim = c(30,1)) {reversed
+	log-scale axis} now works, based on Uwe Ligges' suggestions.
+	(PR#7894)
+
+    o	install.packages() was aborting when a package in a bundle was
+	chosen from a menu.  It failed if more than one package in a
+	bundle was chosen from the command line.
+
+    o	qcauchy() suffered from underflow in the extreme tails.	 (PR#7902)
+
+    o	Printing of raw matrices/arrays was not implemented. (PR#7912)
+
+    o	getCallingDLL()'s default first argument did not correspond to
+	its description and has been changed.  The mismatch caused
+	symbols in .C/.Call/.Fortran calls without a PACKAGE= argument
+	to be potentially looked up in the wrong name space.
+
+    o	Binary save() of raw vectors was not working correctly on
+	big-endian platforms.  (PR#7812)
+
+    o	as.Date.factor() now accepts a format argument.
+
+    o	Workaround added for FreeBSD which does not have alloca.h _and_
+	does not allow alloca() to be declared.
+
+    o	identify() now respects 'cex'.	(PR#660)
+
+	Warnings from identify() are now printed immediately even on
+	consoles with delayed printing.
+
+
+
+		CHANGES IN R VERSION 2.1.0
+
+
+USER-VISIBLE CHANGES
+
+    o	box plots {by boxplot() or bxp()} now have the median line three
+	times the normal line width in order to distinguish it from the
+	quartile ones.
+
+    o	Unix-alike versions of R can now be used in UTF-8 locales on
+	suitably equipped OSes.	 See the internationalization section
+	below.
+
+    o	The meaning of 'encoding' for a connection has changed: See the
+	internationalization section below.
+
+    o	There has been some rationalization of the format of
+	warning/error messages, to make them easier to translate.
+	Generally names of functions and arguments are single-quoted,
+	and classes double-quoted.
+
+    o	Reading text files with embedded "\" (as in Windows file names)
+	may now need to use scan(* , allowEscapes = FALSE), see also below.
+
+
+NEW FEATURES
+
+    o	%% now warns if its accuracy is likely to be affected by lack
+	of precision (as in 1e18 %% 11, the unrealistic expectation of
+	PR#7409), and tries harder to return a value in range when it is.
+
+    o	abbreviate() now warns if used with non-ASCII chars, as the
+	algorithm is designed for English words.
+
+    o	The default methods for add1() and drop1() check for changes
+	in the number of cases in use.
+
+	The "lm" and "glm" methods for add1() quoted the <none> model
+	on the original fitted values when using (with a warning) a
+	smaller set of cases for the expanded models.
+
+    o	Added alarm() function to generate a bell or beep or visual alert.
+
+    o	all/any() now attempt to coerce their arguments to logical, as
+	documented in the Blue Book.  This means e.g. any(list()) works.
+
+    o	New functions for multivariate linear models: anova.mlm(),
+	SSD(), estVar(), mauchley.test() (for sphericity).
+
+	vcov() now does something more sensible for "mlm" class objects.
+
+    o	as.data.frame.table() has a new argument 'responseName'
+	(contributed by Bill Venables).
+
+    o	as.dist() and cophenetic() are now generic, and the latter has a
+	new method for objects of class "dendrogram".
+
+    o	as.ts() is now generic.
+
+    o	binomial() has a new "cauchit" link (suggested by Roger Koenker).
+
+    o	chisq.test() has a new argument 'rescale.p'.  It is now possible
+	to simulate (slowly) the P value also in the 1D case
+	(contributed by Rolf Turner).
+
+    o	choose(n,k) and lchoose(.) now also work for arbitrary (real) n
+	in accordance with the general binomial theorem.  choose(*,k)
+	is more accurate (and faster) for small k.
+
+    o	Added colorRamp() and colorRampPalette() functions for color
+	interpolation.
+
+    o	colSums()/rowSums() now allow arrays with a zero-length extent
+	(requested by PR#7775).
+
+    o	confint() has stub methods for classes "glm" and "nls" that
+	invoke those in package MASS.  This avoids using the "lm"
+	method for "glm" objects if MASS is not attached.
+
+	confint() has a default method using asymptotic normality.
+
+    o	contr.SAS() has been moved from the 'nlme' package to the
+	'stats' package.
+
+    o	New function convertColors() maps between color spaces.
+	colorRamp() uses it.
+
+    o	The cov() function in the non-Pearson cases now ranks data after
+	removal of missing values, not before.	The pairwise-complete
+	method should now be consistent with cor.test.	(Code
+	contributed by Shigenobu Aoki.)
+
+    o	Added delayedAssign() function to replace delay(), which is now
+	deprecated.
+
+    o	dir.create() has a new argument 'recursive' serving the same
+	purpose as Unix's mkdir -p.
+
+    o	do.call() now takes either a function or a character string as
+	its first argument.  The supplied arguments can optionally be
+	quoted.
+
+    o	duplicated() and unique() now accept "list" objects, but are
+	fast only for simple list objects.
+
+    o	ecdf() now has jumps of the correct size (a multiple of 1/n)
+	if there are ties.  (Wished by PR#7292).
+
+    o	eff.aovlist() assumed orthogonal contrasts for any term
+	with more than one degree of freedom: this is now documented
+	and checked for.  Where each term only occurs in only one
+	stratum the efficiencies are all one: this is detected and
+	orthogonal contrasts are not required.
+
+    o	New function encodeString() to encode character strings in the
+	same way that printing does.
+
+    o	file("clipboard") now work for reading the primary selection on
+	Unix-alikes with an active X11 display.	 (It has long worked
+	for reading and writing under Windows.)	 The secondary
+	selection can also be read: see ?file.
+
+	file() now allows mode "w+b" as well as "w+".
+
+    o	file.append() has been tuned, including for the case of
+	appending many files to a single file.
+
+    o	Functions flush.console() and select.list() are now available
+	on all platforms.  There is a Tcl/Tk-based version of
+	select.list() called tk_select.list() in package tcltk.
+
+    o	gc() now reports maximum as well as current memory use.
+
+    o	A new function getGraphicsEvent() has been added which will allow
+	mouse or keyboard input from a graphics device. (NB: currently
+	only the Windows screen device supports this function.	This
+	should improve before the 2.1.0 release.)
+
+    o	New functions gray.colors()/grey.colors() for gray color
+	palettes.
+
+    o	grep(), gsub(), sub() and regexpr() now always attempt to
+	coerce their 'pattern', 'x', 'replacement' and 'text'
+	arguments to character.	 Previously this was undocumented but
+	done by [g]sub() and regexpr() for some values of their
+	other arguments.  (Wish of PR#7742.)
+
+    o	gsub/sub() have a new 'fixed' method.
+
+    o	New function hcl() for creating colors for a given hue,
+	chroma and luminance (i.e. perceptual hsv).
+
+    o	isTRUE() convenience function to be used for programming.
+
+    o	kmeans() now returns an object of class "kmeans" which has a
+	print() method.
+
+	Two alternative algorithms have been implemented.
+
+	If the number of centres is supplied, it has a new option of
+	multiple random starts.
+
+    o	The limits on the grid size in layout() are now documented, and
+	have been raised somewhat by using more efficient internal
+	structures.
+
+    o	legend() now accepts positioning by keyword, e.g. "topleft",
+	and can put a title within the legend.	(Suggested by Elizabeth
+	Purdom in PR#7400.)
+
+    o	mahalanobis() now has a '...' argument which is passed to solve()
+	for computing the inverse of the covariance matrix, this replaces
+	the former 'tol.inv' argument.
+
+    o	menu() uses a multi-column layout if possible for more than
+	10 choices.
+
+	menu(graphics = TRUE) is implemented on most platforms via
+	select.list() or tk_select.list().
+
+    o	New function message() in 'base' for generating "simple"
+	diagnostic messages, replacing such a function in the
+	'methods' package.
+
+    o	na.contiguous() is now (S3) generic with first argument
+	renamed to 'object'.
+
+    o	New function normalizePath() to find canonical paths (and on
+	Windows, canonical names of components).
+
+    o	The default in options("expressions") has been increased to 5000,
+	and the maximal settable value to 500000.
+
+    o	p.adjust() has a new method "BY".
+
+    o	pbeta() now uses a different algorithm for large values of at
+	least one of the shape parameters, which is much faster and is
+	accurate and reliable for very large values.  (This affects
+	pbinom(), pf(), qbeta() and other functions using pbeta at C
+	level.)
+
+    o	pch="." now by default produces a rectangle at least 0.01" per
+	side on high-resolution devices.  (It used to be one-pixel
+	square even on high-resolution screens and Windows printers,
+	but 1/72" on postscript() and pdf() devices.)  Additionally,
+	the size is now scalable by 'cex'; see ?points and note that
+	the details are subject to change.
+
+    o	pdf() now responds to the 'paper' and 'pagecentre'
+	arguments.  The default value of 'paper' is "special"
+	for backward-compatibility (this is different from the
+	default for postscript()).
+
+    o	plot.data.frame() tries harder to produce sensible plots for
+	non-numeric data frames with one or two columns.
+
+    o	The predict() methods for "prcomp" and "princomp" now match
+	the columns of 'newdata' to the original fit using column
+	names if these are available.
+
+    o	New function recordGraphics() to encapsulate calculations
+	and graphics output together on graphics engine display list.
+	To be used with care.
+
+    o	New function RSiteSearch() to query R-related resources
+	on-line (contributed by Jonathan Baron and Andy Liaw).
+
+    o	scan() arranges to share storage of duplicated character
+	strings read in: this can dramatically reduce the memory
+	requirements for large character vectors which will
+	subsequently be turned into factors with relatively few
+	levels.	 For a million items this halved the time and reduced
+	storage by a factor of 20.
+
+	scan() has a new argument 'allowEscapes' (default TRUE) that
+	controls when C-style escapes in the input are interpreted.
+	Previously only \n and \r were interpreted, and then only
+	within quoted strings when no separator was supplied.
+
+	scan() used on an open connection now pushes back on the
+	connection its private `ungetc' and so is safer to use to
+	read partial lines.
+
+    o	scatter.smooth() and loess.smooth() now handle missing values
+	in their inputs.
+
+    o	seq.Date() and seq.POSIXt() now allow 'to' to be before 'from'
+	if 'by' is negative.
+
+    o	sprintf() has been enhanced to allow the POSIX/XSI specifiers
+	like "%2$6d", and also accepts "%x" and "%X".
+
+	sprintf() does limited coercion of its arguments.
+
+	sprintf() accepts vector arguments and operates on them in
+	parallel (after re-cycling if needed).
+
+    o	New function strtrim() to trim character vectors to a display
+	width, allowing for double-width characters in multi-byte
+	character sets.
+
+    o	subset() now has a method for matrices, similar to that for
+	data frames.
+
+    o	Faster algorithm in summaryRprof().
+
+    o	sunflowerplot() has new arguments 'col' and 'bg'.
+
+    o	sys.function() now has argument 'which' (as has long been
+	presaged on its help page).
+
+    o	Sys.setlocale("LC_ALL", ) now only sets the locale categories
+	which R uses, and Sys.setlocale("LC_NUMERIC", ) now gives a
+	warning (as it can cause R to malfunction).
+
+    o	unclass() is no longer allowed for environments and external
+	pointers (since these cannot be copied and so unclass() was
+	destructive of its argument).  You can still change the
+	"class" attribute.
+
+    o	File-name matching is no longer case-insensitive with unz()
+	connections, even on Windows.
+
+    o	New argument 'immediate.' to warning() to send an immediate
+	warning.
+
+    o	New convenience wrappers write.csv() and write.csv2().
+
+    o	There is a new version for write.table() which is implemented in C.
+	For simple matrices and data frames this is several times
+	faster than before, and uses negligible memory compared to the
+	object size.
+
+	The old version (which no longer coerces a matrix to a data
+	frame and then back to a matrix) is available for now as
+	write.table0().
+
+    o	The functions xinch(), yinch(), and xyinch() have been moved
+	from package 'grDevices' into package 'graphics'.
+
+
+    o	Plotmath now allows underline in expressions.  (PR#7286,
+	contributed by Uwe Ligges.)
+
+    o	BATCH on Unix no longer sets --gui="none" as the X11 module
+	is only loaded if needed.
+
+    o	The X11 module (and the hence X11(), jpeg() and png() devices
+	and the X-based dataentry editor) is now in principle
+	available under all Unix GUIs except --gui="none", and this is
+	reflected in capabilities().
+
+	capabilities("X11") determines if an X server can be accessed,
+	and so is more likely to be accurate.
+
+    o	Printing of arrays now honours the 'right' argument if there
+	are more than two dimensions.
+
+    o	Tabular printing of numbers now has headers right-justified, as
+	they were prior to version 1.7.0 (spotted by Rob Baer).
+
+    o	Lazy-loading databases are now cached in memory at first use:
+	this enables R to run much faster from slow file systems such
+	as USB flash drives.  There is a small (less than 2Mb)
+	increase in default memory usage.
+
+    o	The implicit class structure for numeric vectors has been
+	changed, so that integer/real vectors try first methods for
+	class "integer"/"double" and then those for class "numeric".
+
+	The implicit classes for matrices and arrays have been changed
+	to be "matrix"/"array" followed by the class(es) of the
+	underlying vector.
+
+    o	splines::splineDesign() now allows the evaluation of a B-spline
+	basis everywhere instead of just inside the "inner" knots, by
+	setting the new argument `outer.ok = TRUE'.
+
+    o	Hashing has been tweaked to use half as much memory as before.
+
+    o	Readline is not used for tilde expansion when R is run with
+	--no-readline, nor from embedded applications.	Then "~name"
+	is no longer expanded, but "~" still is.
+
+    o	The regular expression code is now based on that in glibc 2.3.3.
+	It has stricter conformance to POSIX, so metachars such as
+	{ } + * may need to be escaped where before they did not
+	(but could have been).
+
+    o	New encoding 'TeXtext.enc' improves the way postscript() works
+	with Computer Modern fonts.
+
+    o	Replacement in a non-existent column of a data frame tries
+	harder to create a column of the correct length and so avoid a
+	corrupt data frame.
+
+    o	For Windows and readline-based history, the saved file size is
+	re-read from R_HISTSIZE immediately before saving.
+
+    o	Collected warnings during start-up are now printed before the
+	initial prompt rather than after the first command.
+
+    o	Changes to package 'grid':
+
+	- preDrawDetails(), drawDetails(), and postDrawDetails()
+	  methods are now recorded on the graphics engine
+	  display list.	  This means that calculations within these
+	  methods are now run when a device is resized or
+	  when output is copied from one device to another.
+
+	- Fixed bug in grid.text() when 'rot' argument has length 0.
+	  (privately reported by Emmanuel Paradis)
+
+	- New getNames() function to return just the names of all top-level
+	  grobs on the display list.
+
+	- Recording on the grid display list is turned off within
+	  preDrawDetails(), drawDetails(), and postDrawDetails() methods.
+
+	- Grid should recover better from errors or user-interrupts
+	  during drawing (i.e., not leave you in a strange viewport
+	  or with strange graphical parameter settings).
+
+	- New function grid.refresh() to redraw the grid display list.
+
+	- New function grid.record() to capture calculations
+	  with grid graphics output.
+
+	- grobWidth and grobHeight ("grobwidth" and "grobheight" units)
+	  for primitives (text, rects, etc, ...) are now
+	  calculated based on a bounding box for the relevant grob.
+
+	  NOTE: this has changed the calculation of the size of a scalar
+	  rect (or circle or lines).
+
+	- New arguments 'warn' and 'wrap' for function grid.grab()
+
+	- New function grid.grabExpr() which captures the output from
+	  an expression (i.e., not from the current scene) without
+	  doing any drawing (i.e., no impact on the current scene).
+
+	- upViewport() now (invisibly) returns the path that it goes up
+	  (suggested by Ross Ihaka).
+
+	- The 'gamma' gpar has been deprecated (this is a device property
+	  not a property of graphical objects;	suggested by Ross Ihaka).
+
+	- New 'lex' gpar;  a line width multiplier.
+
+	- grid.text() now handles any language object as mathematical
+	  annotation (instead of just expressions).
+
+	- plotViewport() has default value for 'margins' argument (that match
+	  the default value for par(mar)).
+
+	- The 'extension' argument to dataViewport() can now be vector,
+	  in which case the first value is used to extend the xscale and
+	  the second value is used to extend the y scale.
+	  (suggested by Ross Ihaka).
+
+	- All 'just' arguments (for viewports, layouts, rectangles, text)
+	  can now be numeric values (typically between 0 [left] and 1 [right])
+	  as well as character values ("left", "right", ...).
+
+	  For rectangles and text, there are additional 'hjust' and 'vjust'
+	  arguments which allow numeric vectors of justification in
+	  each direction (e.g., so that several pieces of text can have
+	  different justifications).
+	  (suggested by Ross Ihaka)
+
+	- New 'edits' argument for grid.xaxis() and grid.yaxis() to
+	  allow specification of on-the-fly edits to axis children.
+
+	- applyEdit(x, edit) returns x if target of edit (i.e., child
+	  specified by a gPath) cannot be found.
+
+	- Fix for calculation of length of max/min/sum unit.  Length is
+	  now (correctly) reported as 1 (was reported as length of first arg).
+
+	- Viewport names can now be any string (they used to have to be a
+	  valid R symbol).
+
+	- The 'label' argument for grid.xaxis() and grid.yaxis() can now
+	  also be a language object or string vector, in which case it
+	  specifies custom labels for the tick marks.
+
+
+INTERNATIONALIZATION
+
+    o	Unix-alike versions of R can now be used in UTF-8 and other
+	multi-byte locales on suitably equipped OSes if configured
+	with option --enable-mbcs (which is the default).  [The
+	changes to font handling in the X11 module are based on the
+	Japanization patches of Ei-ji Nakama.]
+
+	Windows versions of R can be used in `East Asian' locales on
+	suitable versions of Windows.
+
+	See the 'Internationalization' chapter in the 'Installation
+	and Administration' manual.
+
+    o	New command-line flag --encoding to specify the encoding to
+	be assumed for stdin (but not for a console).
+
+    o	New function iconv() to convert character vectors between
+	encodings, on those OSes which support this.  See the new
+	capabilities("iconv").
+
+    o	The meaning of 'encoding' for a connection has changed: it now
+	allows any charset encoding supported by iconv on the
+	platform, and can re-encode output as well as input.
+
+	As the new specification is a character string and the old was
+	numeric, this should not cause incorrect operation.
+
+    o	New function localeToCharset() to find/guess encoding(s) from
+	the locale name.
+
+    o	nchar() returns the true number of bytes stored (including any
+	embedded nuls), this being 2 for missing values.  It has an
+	optional argument 'type' with possible non-default values
+	"chars" and "width" to give the number of characters or the
+	display width in columns.
+
+    o	Characters can be entered in hexadecimal as e.g. \x9c, and in
+	UTF-8 and other multibyte locales as \uxxxx, \u{xxxx},
+	\Uxxxxxxxx or \U{xxxxxxxx}.  Non-printable Unicode characters
+	are displayed C-style as \uxxxx or \Uxxxxxxxx.
+
+    o	LC_MONETARY is set to the locale, which affects the result of
+	Sys.localeconv(), but nothing else in R itself.	 (It could
+	affect add-on packages.)
+
+    o	source() now has an 'encoding' argument which can be used to
+	make it try out various possible encodings.  This is made use
+	of by example() which will convert (non-UTF-8) Latin-1 example
+	files in a UTF-8 locale.
+
+    o	read/writeChar() work in units of characters, not bytes.
+
+    o	.C() now accepts an ENCODING= argument where re-encoding is
+	supported by the OS.  See `Writing R Extensions'.
+
+    o	delimMatch (tools) now reports match positions and lengths in
+	units of characters, not bytes.	 The delimiters can be
+	strings, not just single ASCII characters.
+
+    o	.Rd files can indicate via a \encoding{} argument the encoding
+	that should be assumed for non-ASCII characters they contain.
+
+    o	Phrases in .Rd files can be marked by \enc{}{} to show a
+	transliteration to ASCII for use in e.g. text help.
+
+    o	The use of 'pch' in points() now allows for multi-byte character
+	sets: in such a locale a glyph can either be specified as a
+	multi-byte single character or as a number, the Unicode point.
+
+    o	New function l10n_info() reports on aspects of the
+	locale/charset currently in use.
+
+    o	scan() is now aware of double-byte locales such as Shift-JIS
+	in which ASCII characters can occur as the second ('trail')
+	byte.
+
+    o	Functions sQuote() and dQuote() use the Unicode directional
+	quotes if in a UTF-8 locale.
+
+    o	The infrastructure is now in place for C-level error and warning
+	messages to be translated and used on systems with Native
+	Language Support.  This has been used for the startup message
+	in English and to translate Americanisms such as 'color' into
+	English: translations to several other languages are under
+	way, and some are included in this release.
+
+	See 'Writing R Extensions' for how to make use of this in a
+	package: all the standard packages have been set up to do
+	translation, and the 'language' 'en@quot' is implemented to
+	allow Unicode directional quotes in a UTF-8 locale.
+
+    o	R-level stop(), warning() and message() messages can be
+	translated, as can other messages via the new function
+	gettext(). Tools xgettext() and xgettext2pot() are provided in
+	package tools to help manage error messages.
+
+	gettextf() is a new wrapper to call sprintf() using
+	gettext() on the format string.
+
+    o	Function ngettext() allows the management of singular and
+	plural forms of messages.
+
+
+UTILITIES
+
+    o	New functions mirror2html() and checkCRAN().
+
+    o	R CMD check has a new option '--use-valgrind'.
+
+    o	R CMD check now checks that Fortran and C++ files have LF
+	line endings, as well as C files.  It also checks Makevars[.in]
+	files for portable compilation flags.
+
+    o	R CMD check will now work on a source tarball and prints out
+	information about the version of R and the package.
+
+    o	tools:::.install_package_code_files() (used to collate R files
+	when installing packages) ensures files are separated by a
+	line feed.
+
+    o	vignette() now returns an object of class "vignette" whose
+	print() method opens the corresponding PDF file.  The edit()
+	method can be used to open the code of the vignette in an
+	editor.
+
+    o	R CMD INSTALL on Unix has a new option '--build' matching
+	that on Windows, to package as tarball the installed package.
+
+    o	R CMD INSTALL on Unix can now install binary bundles.
+
+    o	R CMD build now changes src files to LF line endings if necessary.
+
+    o	R CMD build now behaves consistently between source and binary
+	builds: in each case it prepares a source directory and then
+	either packages that directory as a tarball or calls R CMD
+	INSTALL --build on the prepared sources.
+
+	This means that R CMD build --binary now respects
+	.Rbuildignore and will rebuild vignettes (unless the option
+	--no-vignettes is used).  For the latter, it now installs the
+	current sources into a temporary library and uses that version
+	of the package/bundle to rebuild the vignettes.
+
+    o	R CMD build now reports empty directories in the source tree.
+
+    o	New function write_PACKAGES() in package 'tools' to help with
+	preparing local package repositories.  (Based on a contribution
+	by Uwe Ligges.)	 How to prepare such repositories is
+	documented in the 'R Installation and Administration' manual.
+
+    o	package.skeleton() adds a bit more to DESCRIPTION.
+
+    o	Sweave changes:
+
+	- \usepackage[nogin]{Sweave} in the header of an Sweave file
+	  supresses auto-setting of the graphical parameter like width
+	  of graphics.
+
+	- The new \SweaveInput{} command works similar to LaTeX's
+	  \input{} command.
+
+	- Option value strip.white=all strips all blank lines from the
+	  output of a code chunk.
+
+	- Code chunks with eval=false are commented out by Stangle() and
+	  hence no longer tested by R CMD check.
+
+
+DOCUMENTATION
+
+    o	File doc/html/faq.html no longer exists, and doc/manual/R-FAQ.html
+	(which has active links to other manuals) is used instead.
+	(If makeinfo >= 4.7 is not available, the version on CRAN is
+	linked to.)
+
+    o	Manual 'Writing R Extensions' has further details on writing
+	new front-ends for R using the new public header files.
+
+    o	There are no longer any restrictions on characters in the
+	\name{} field of a .Rd file: in particular _ is supported.
+
+
+C-LEVEL FACILITIES
+
+    o	There are new public C/C++ header files Rinterface.h and
+	R_ext/RStartup.h for use with external GUIs.
+
+    o	Added an onExit() function to graphics devices, to be executed
+	upon user break if non-NULL.
+
+    o	ISNAN now works even in C++ code that undefines the 'isnan' macro.
+
+    o	R_alloc's limit on 64-bit systems has been raised from just
+	under 2^31 bytes (2Gb) to just under 2^34 (16Gb), and is now checked.
+
+    o	New math utility functions  log1pmx(x), lgamma1p(x),
+	logspace_add(logx, logy), and logspace_sub(logx, logy).
+
+
+DEPRECATED & DEFUNCT
+
+    o	The aqua module for MacOS X has been removed: --with-aqua now
+	refers to the unbundled Cocoa GUI.
+
+    o	Capabilities "bzip2", "GNOME", "libz" and "PCRE" are defunct.
+
+    o	The undocumented use of UseMethod() with no argument was
+	deprecated in 2.0.1 and is now regarded as an error.
+
+    o	Capability "IEEE754" is deprecated.
+
+    o	The 'CRAN' argument to update.packages(), old.packages(),
+	new.packages(), download.packages() and install.packages() is
+	deprecated in favour of 'repos', which replaces it as a
+	positional argument (so this is only relevant for calls with
+	named args).
+
+    o	The S3 methods for getting and setting names of "dist" objects
+	have been removed (as they provided names with a different
+	length from the "dist" object itself).
+
+    o	Option "repositories" is no longer used and so not set.
+
+    o	loadURL() is deprecated in favour of load(url()).
+
+    o	delay() is deprecated.	Use delayedAssign() instead.
+
+
+INSTALLATION CHANGES
+
+    o	New configure option --enable-mbcs to enable support for
+	UTF-8 locales, on by default.
+
+    o	R_XTRA_[CF]FLAGS are now used during the configuration tests,
+	and [CF]PICFLAGS if --enable-R-shlib was specified.  This
+	ensures that features such as inlining are only used if the
+	compilation flags specified support them.  (PR#7257)
+
+    o	Files FAQ, RESOURCES, doc/html/resources.html are no longer in
+	the SVN sources but are made by 'make dist'.
+
+    o	The GNOME GUI is unbundled, now provided as a package on CRAN.
+
+    o	Configuring without having the recommended packages is now an
+	error unless --with-recommended-packages=no (or equivalent) is used.
+
+    o	Configuring without having the X11 headers and libraries is now
+	an error unless --with-x=no (or equivalent) is used.
+
+    o	Configure tries harder to find a minimal set of FLIBS.	Under
+	some circumstances this may remove from R_LD_LIBRARY_PATH
+	path elements that ought to have specified in LDFLAGS (but
+	were not).
+
+    o	The C code for most of the graphics device drivers and their
+	afm files are now in package grDevices.
+
+    o	R is now linked against ncurses/termlib/termcap only if
+	readline is specified (now the default) and that requires it.
+
+    o	Makeinfo 4.7 or later is now required for building the HTML and
+	Info versions of the manuals.
+
+
+PACKAGE INSTALLATION CHANGES
+
+    o	There are new types of packages, identified by the Type field
+	in the DESCRIPTION file.  For example the GNOME console is now
+	a separate package (on CRAN), and translations can be
+	distributed as packages.
+
+    o	There is now support of installing from within R both source and
+	binary packages on MacOS X and Windows.	 Most of the R
+	functions now have a 'type' argument defaulting to
+	getOption("pkgType") and with possible values "source",
+	"win.binary" and "mac.binary".	The default is "source" except
+	under Windows and the CRAN GUI build for MacOS X.
+
+    o	install.packages() and friends now accept a vector of URLs for
+	'repos' or 'contriburl' and get the newest available version of
+	a package from the first repository on the list in which it is
+	found.	The argument 'CRAN' is still accepted, but deprecated.
+
+	install.packages() on Unix can now install from local .tar.gz
+	files via repos = NULL (as has long been done on Windows).
+
+	install.packages() no longer asks if downloaded packages
+	should be deleted: they will be deleted at the end of the
+	session anyway (and can be deleted by the user at any time).
+
+	If the repository provides the information, install.packages()
+	will now accept the name of a package in a bundle.
+
+	If 'pkgs' is omitted install.packages() will use a listbox to
+	display the available packages, on suitable systems.
+
+	'dependencies' can be a character vector to allow only some
+	levels of dependencies (e.g. not "Suggests") to be requested.
+
+    o	There is a new possible value update.packages(ask="graphics")
+	that uses a widget to (de)select packages, on suitable systems.
+
+    o	The option used is now getOption("repos") not getOption("CRAN")
+	and it is initially set to a dummy value.  Its value can be a
+	character vector (preferably named) giving one or several
+	repositories.
+
+	A new function chooseCRANmirror() will select a CRAN mirror.
+	This is called automatically if the contrib.url() encounters
+	the initial dummy value of getOption("repos")
+
+	A new function setRepositories() can be used to create
+	getOption("repos") from a (platform-specific) list of known
+	repositories.
+
+    o	New function new.packages() to report uninstalled packages
+	available at the requested repositories.  This also reports
+	incomplete bundles.  It will optionally install new packages.
+
+    o	New function available.packages(), similar to CRAN.packages()
+	but for use with multiple repositories.	 Both now only report
+	packages whose R version requirements are met.
+
+    o	update.packages() and old.packages() have a new option
+	'checkBuilt' to allow packages installed under earlier
+	versions of R to be updated.
+
+    o	remove.packages() can now remove bundles.
+
+    o	The Contains: field of the DESCRIPTION file of package bundles
+	is now installed, so later checks can find out if the bundle
+	is complete.
+
+    o	packageStatus() is now built on top of *.packages, and gains a
+	'method' argument.  It defaults to the same repositories as
+	the other tools, those specified by getOption("repos").
+
+
+BUG FIXES
+
+    o	Configuring for Tcl/Tk makes use of ${TK_LIB_SPEC} ${TK_LIBS}
+	not ${TK_LIB_SPEC} ${TK_XLIBSW}, which is correct for
+	recent versions of Tk, but conceivably not for old
+	tkConfig.sh files.
+
+    o	detach() was not recomputing the S4 methods for primitives
+	correctly.
+
+    o	Methods package now has class "expression" partly fixed in basic
+	classes, so S4 classes can extend these (but "expression" is
+	pretty broken as a vector class in R).
+
+    o	Collected warnings had messages with unneeded trailing space.
+
+    o	S4 methods for primitive functions must be exported from
+	name spaces; this is now done automatically.
+	Note that is.primitive() is now in "base", not "methods".
+
+    o	Package grid:
+
+	- Fixed bug in grid.text() when "rot" argument has length 0.
+	  (reported by Emmanuel Paradis)
+
+    o	.install_package_vignette_index() created an index even in an
+	empty 'doc' directory.
+
+    o	The print() method for factors now escapes characters in the
+	levels in the same way as they are printed.
+
+    o	str() removed any class from environment objects.
+
+	str() no longer interprets control characters in character
+	strings and factor levels; also no longer truncates factor
+	levels unless they are longer than 'nchar.max'.
+	Truncation of such long strings is now indicated ''outside''
+	the string.
+
+	str(<S4.object>) was misleading for the case of a single slot.
+
+	str() now also properly displays S4 class definitions (such as
+	returned by getClass().
+
+    o	print.factor(quote=TRUE) was not quoting levels, causing
+	ambiguity when the levels contained spaces or quotes.
+
+    o	R CMD check was confused by a trailing / on a package name.
+
+    o	write.table() was writing incorrect column names if the data
+	frame contained any matrix-like columns.
+
+    o	write.table() was not quoting row names for a 0-column x.
+
+    o	t(x)'s default method now also preserves names(dimnames(x)) for
+	1D arrays 'x'.
+
+    o	r <- a %*% b no longer produces names(dimnames(r)) == c("", "")
+	unless one of a or b has named dimnames.
+
+    o	Some .Internal functions that were supposed to return invisibly
+	did not. This was behind PR#7397 and PR#7466.
+
+    o	eval(expr, NULL, encl) now looks up variables in encl, as
+	eval(expr, list(), encl) always did
+
+    o	Coercing as.data.frame(NULL) to a pairlist caused an error.
+
+    o	p.adjust(p, ..) now correctly works when `p' contains NAs (or when
+	it is of length 0 or length 2 for method = "hommel").
+
+    o	'methods' initialization was calling a function intended for
+	.Call() with .C().
+
+    o	optim() needed a check that the objective function returns a
+	value of length 1 (spotted by Ben Bolker).
+
+    o	X11() was only scaling its fonts to pointsize if the dpi
+	was within 0.5 of 100dpi.
+
+    o	X11() font selection was looking for any symbol font, and
+	sometimes got e.g. bold italic if the server has such a font.
+
+    o	dpois(*, lambda=Inf) now returns 0 (or -Inf for log).
+
+    o	Using pch="" gave a square (pch=0)!  Now it is regarded as the
+	same as NA, which was also undocumented but omits the point.
+
+    o	Base graphics now notices (ab)lines which have a zero
+	coordinate on log scale, and omits them.  (PR#7559)
+
+    o	stop() and warning() now accept NULL as they are documented
+	to do (although this seems of little use and is equivalent to "").
+
+    o	weighted.mean() now checks the length of the weight vector w.
+
+    o	getAnywhere() was confused by names with leading or trailing dots
+	(spotted by Robert McGehee)
+
+    o	eval() was not handling values from return() correctly.
+
+    o	par(omd) is now of the form c(x1, x2, y1, y2) to match the
+	documentation and for S-PLUS compatibility.
+
+	[Previously, par(omd) was of the form c(bottom, left, top, right)
+	 like par(oma) and par(omi)]
+
+    o	formatC() did not check its 'flag' argument, and could
+	segfault if it was incorrect. (PR#7686)
+
+    o	Contrasts needed to be coerced to numeric (e.g. from integer)
+	inside model.matrix.  (PR#7695)
+
+    o	socketSelect() did not check for buffered input.
+
+    o	Reads on a non-blocking socket with no available data were
+	not handled properly and could result in a segfault.
+
+    o	The "aovlist" method for se.contrast() failed in some very
+	simple cases that were effectively not multistratum designs,
+	e.g. only one treatment occurring in only one stratum.
+
+    o	pgamma() uses completely re-written algorithms, and should work
+	for all (even very extreme) arguments; this is based on Morten
+	Welinder's contribution related to PR#7307.
+
+    o	dpois(10, 2e-308, log=TRUE) and similar cases gave -Inf.
+
+    o	x <- 2^(0:1000);    plot(x, x^.9, type="l", log="xy")# and
+	x <- 2^-(1070:170); plot(x, x^.9, type="l", log="xy")# now both work
+
+    o	summary.lm() asked for a report on a reasonable occurrence, but
+	the check failed to take account of NAs.
+
+    o	lm() was miscalculating 'df.residual' for empty models with a
+	matrix response.
+
+    o	summary.lm() now behaves more sensibly for empty models.
+
+    o	plot.window() was using the wrong sign when adjusting
+	xlim/ylim for positive 'asp' and a reversed axis.
+
+    o	If malloc() fails when allocating a large object the allocator now
+	does a gc and tries the malloc() again.
+
+    o	packageSlot() and getGroupMembers() are now exported from the
+	'methods' package as they should from documentation and the
+	Green Book.
+
+    o	rhyper() was giving numbers slightly too small, due to a bug in the
+	original algorithm.  (PR#7314)
+
+    o	gsub() was sometimes incorrectly matching ^ inside a string,
+	e.g.  gsub("^12", "x", "1212") was "xx".
+
+    o	[g]sub(perl = TRUE) was giving random results for a 0-length
+	initial match.	(PR#7742)
+
+    o	[g]sub was ignoring most 0-length matches, including all initial
+	ones.  Note that substitutions such as gsub("[[:space:]]*", "
+	", ...) now work as they do in 'sed' (whereas the effect was
+	previously the same as gsub("[[:space:]]+", " ", ...)).
+	(In part PR#7742)
+
+    o	Promises are now evaluated when extracted from an environment
+	using '$' or '[[ ]]'.
+
+    o	reshape(direction="wide") had some sorting problems when
+	guessing time points (PR#7669)
+
+    o	par() set 'xaxp' before 'xlog' and 'yaxp' before 'ylog',
+	causing PR#831.
+
+    o	The logic in tclRequire() to check the availability of a Tcl
+	package turned out to be fallible.  It now uses a try()-and-see
+	mechanism instead.
+
+    o	Opening a unz() connection on a non-existent file left a file
+	handle in use.
+
+    o	"dist" objects of length 0 failed to print.
+
+    o	INSTALL and the libR try harder to find a temporary directory
+	(since there might be one left over with the same PID).
+
+    o	acf() could cause a segfault with some datasets.  (PR#7771)
+
+    o	tan(1+LARGEi) now gives 0+1i rather than 0+NaNi (PR#7781)
+
+    o	summary(data.frame(mat = I(matrix(1:8, 4)))) does not go into
+	infinite recursion anymore.
+
+    o	writeBin() performed byte-swapping incorrectly on complex
+	vectors, also swapping real and imaginary parts. (PR#7778)
+
+    o	read.table() sometimes discarded as blank lines containing
+	only white space, even if sep=",".
+
+
+
+	**************************************************
+	*						 *
+	*	       2.0 SERIES NEWS			 *
+	*						 *
+	**************************************************
+
+
+		CHANGES IN R VERSION 2.0.1 patched
+
+
+
+NEW FEATURES
+
+    o	warnings() now looks only in the workspace for `last.warning'
+	(suggested by PR#7363).
+
+    o	The search for browsers now starts with firefox, and has mozilla
+	ahead of netscape.
+
+
+PACKAGE INSTALLATION CHANGES
+
+    o	A package DESCRIPTION file which contains a Built field (it
+	should not!) is now worked around, with loud warnings.
+
+
+BUG FIXES
+
+    o	split() was accepting raw and list vectors as input, but
+	not populating the output correctly.
+
+	split() now handles vectors with names internally and so is
+	almost as fast as on vectors without names (and maybe 100x
+	faster than before).
+
+    o	subset() now throws an error if its 'subset' argument is not
+	logical whereas it could appear to work and give wrong answers
+	with e.g. a numeric 'subset' argument.
+
+    o	sum(), max(), min(), prod(), any() and all() were incorrectly
+	using partial matching for their na.rm argument.
+
+    o	kmeans() now ensures that the initial cluster centers it chooses
+	are distinct.
+
+    o	text()'s default method could segfault if passed 0-length coordinates.
+
+    o	R CMD INSTALL (Unix) was sometimes leaving a temporary dir
+	behind.	 (PR#7230)
+
+    o	read.table() could fail when the row.names were looking like numbers.
+
+    o	seq(length= <n>) now always returns "integer" storage.
+
+    o	labels.lm was broken. (PR#7417)
+
+    o	The hashing used for character vectors in object.size() was
+	inefficient for vectors with thousands of identical values not
+	sharing the same storage (an unusual case).
+
+    o	data.matrix() now warns if applied to a data frame with
+	classed columns.
+
+    o	Plotting histograms where the expression used to deparse to
+	multiple lines now gives a sensible default title.  (PR#7421)
+
+    o	The print method for getDLLRegisteredRoutines() was badly
+	designed, and failed for all the standard packages' DLLs.
+
+    o	getDLLRegisteredRoutines.character() was broken.
+
+    o	write.table(x, row.names=FALSE) was incorrect for a 0-column x.
+
+    o	write.table() assumed dec = "," if it was not ".".
+
+    o	morley.tab used by R-intro was not installed on Unix since 2.0.0
+	(it was on Windows).
+
+    o	gsub(perl=TRUE) returned a string which printed with trailing
+	garbage if there was a match at the beginning whose
+	replacement was shorter.  (PR#7479)
+
+	Similarly, the result was truncated if a replacement at the
+	beginning was longer.
+
+    o	Some PDF readers do not define PDFDocEncoding, so pdf()'s
+	ISOLatin1 encoding is now derived from WinAnsi rather than
+	PDFDocEncoding.
+
+    o	xfig() had not been updated for the 2.0.0 alpha changes.
+	Using more than one plot with a non-white background and with
+	onefile=FALSE could segfault.
+
+    o	sprintf() did not check for buffer overflow on character
+	strings.  (PR#7554)
+
+    o	The error message when evaluation depth was exceeded itself
+	caused an error in deparsing and so was not shown.
+
+    o	The 'datalist' file was not being used during installation
+	(2.0.1 only).
+
+    o	replications() was wrongly reporting lack of balance in
+	designs with interactions (and had since unique() gained a
+	matrix method).
+
+
+
+		CHANGES IN R VERSION 2.0.1
+
+
+NEW FEATURES
+
+    o	Platform equivalence in library() is tested by a new function
+	testPlatformEquivalence() which ignores the 'vendor' field and
+	can be customized by cognescenti.
+
+    o	The assignment form of split() allows recycling of vectors
+	within the value list. In particular, things like
+	    split(x, g) <- lapply(split(x, g), mean)
+	now work
+
+
+DOCUMENTATION
+
+    o	Manual `Writing R Extensions' has new sections on writing
+	portable packages and on writing new front-ends for R -- the
+	latter will be more comprehensive in R 2.1.0 which has new
+	public header files.
+
+
+DEPRECATED & DEFUNCT
+
+    o	The aqua module in MacOS X is deprecated.
+
+    o	Capabilities "bzip2", "GNOME", "libz" and "PCRE" are deprecated.
+
+    o	The GNOME GUI on Unix-alikes is deprecated as part of R;
+	it will be available in another form as from R 2.1.0.
+
+    o	The undocumented use of UseMethod() with no argument is now
+	formally deprecated.
+
+
+INSTALLATION CHANGES
+
+    o	Building on Alpha OSF/1 no longer forces the C flag -std1,
+	which appears to be no longer needed.  (PR#7257)
+
+    o	The compiler flag -mieee-fp is no longer used on i386 Linux
+	(these days it is only passed to the linker and was only
+	invoked for compilation steps).
+
+    o	-D__NO_MATH_INLINES is only used on older ix86 glibc-based
+	systems which need it (tested at configure time).  This leads to
+	small improvements in speed and accuracy on modern systems.
+
+    o	If makeinfo >= 4.5 is not available, warnings are given that
+	some of the HTML manuals will be missing, and the index page
+	given by help.start() will link to CRAN versions of those manuals.
+
+    o	Files aclocal.m4 and acinclude.m4 used in maintainer builds
+	are not longer included in the distribution.
+
+
+C-LEVEL FACILITIES
+
+    o	It was not clear in 'Writing R Extensions' that some of the
+	entry points in the 'Utilities' section were not declared in
+	<R.h> (they were in <R_ext/Applic.h>).	Now all the entry
+	points in that section are declared in <R_ext/Utils.h>,
+	included by <R.h>.
+
+
+BUG FIXES
+
+    o	The grid.grab() function in package grid would throw an error
+	if there were no viewports pushed (now returns NULL).
+
+    o	model.frame.default() takes row names from the response
+	variable if that has suitable names and there is no 'data'
+	argument.  (This follows S but was not previously implemented
+	in R.)
+
+    o	write.table() was not respecting the 'dec' argument for complex
+	numbers.
+
+    o	write.table() printed a mixture of numeric and complex numbers
+	as all complex.	 (PR#7260)
+
+    o	R CMD INSTALL failed with versioned installs on packages which
+	save images (only).
+
+    o	dlogis() gave NaN not 0 for large negative arguments.
+
+    o	Importing from another name space was broken for versioned
+	installs, incorrectly reporting something like
+	"package 'imported_from' does not have a name space".
+
+    o	The GNOME interface under Linux/Unix was broken. (PR#7276)
+
+    o	For the jpeg/png devices under Linux/Unix, under certain rare
+	circumstances clipping needed to be cleared before starting a
+	new page.  (PR#7270, which has been the case since the devices
+	were introduced in 1.1.0.)
+
+    o	First lattice plot (first grid.newpage() call) did not start
+	a new page IF there had been a previous traditional graphics
+	plot (on the same device).
+
+    o	Using install.packages() to install the same package to more
+	than one library gave an incorrect warning message.  (If there
+	were two or more such packages it might give an error.)
+
+    o	.packages(all.available=TRUE) returned packages with an invalid
+	version field in their DESCRIPTION whereas .find.packages() and
+	packageDescription() did not.  Now all do not.
+
+    o	packageDescription() now correctly reports that a package does
+	not exist, rather than that its DESCRIPTION file is 'missing
+	or broken'.
+
+    o	'make dist' from builddir != sourcedir was copying not linking
+	recommended packages to *.tgz.
+
+    o	Slots in prototype objects can inherit from locally defined
+	classes (which were not being found correctly before).
+
+    o	Several fixes to the behavior of as() when there are either
+	coerce= or replace= methods supplied in a call to
+	setIs(). Related fixes to setIs() to handle correctly previous
+	methods, if there were any.
+
+    o	splinefun(1[0], 1[0])(1) doesn't segfault anymore (PR#7290).
+	spline() and splinefun() now also work with missing values by
+	omiting them.
+
+    o	ecdf() was failing on inputs containing NAs. (Part of PR#7292)
+
+    o	tools:::.install_package_description was splitting the Built:
+	field across lines on platforms with very long names.
+
+    o	capabilities() was wrong for the Aqua GUI on MacOS X.
+
+    o	Using Rprof() with a non-writable 'file' argument is now a
+	non-fatal error and does not abort R.
+
+    o	binom.test() did not deparse its arguments early enough such
+	that the reported data were ugly if x was a table.
+
+    o	Systems based on glibc, including those using R's substitute for
+	strptime, were handling strptime("2001", "%Y") incorrectly, in
+	some cases crashing.  R's substitute code has been corrected
+	(but problems may remain if glibc is used).  See the ?strptime
+	for what should happen (which is system-specific).
+
+    o	untrace() after trace() failed if package 'methods' was attached.
+	(PR#7301)
+
+    o	summary.stepfun() was reporting for n > 6 summaries of the
+	knots and levels as the actual values.	Both print() and
+	summary() methods called the constant values "step heights",
+	although they were not the heights of the steps.
+
+    o	is.na/is.nan() were giving spurious warnings if applied to a
+	raw vector.
+
+    o	is.atomic() gave incorrect result (false) for a raw vector.
+
+    o	rank() and order() accepted raw and list inputs, but did not
+	give a sensible answer (always 1:n).  Similarly, partial sorts
+	of a raw vector were accepted but did nothing.
+
+    o	require() without a version argument tried for an unversioned
+	load of a package even though a versioned install was already
+	loaded.	 This often led to a message that a required package
+	was being loaded when it was not actually being loaded.
+
+    o	str(<S4.object>) made use of attributes() instead of slot(),
+	and hence didn't properly print NULL slots.
+
+    o	contrib.url() now handles URLs ending in '/' correctly.
+
+    o	str() removed any class from externalptr objects.
+
+    o	logLik() and hence AIC() failed or gave incorrect answers
+	on "lm" fits with na.action = na.exclude (and perhaps other
+	na.actions's except na.omit and na.fail).
+
+    o	pmax() and pmin() sometimes used NAs in internal subassignments,
+	and sometimes these failed.
+
+    o	Subassigning an expression, e.g. expr[2] <- 1, could leave an
+	invalid object and so cause a segfault. (PR#7326)
+
+    o	download/install.packages() would misbehave if there was more
+	than one version of a package in a repository.
+
+    o	sort(partial=) silently ignored some other arguments: using
+	'decreasing' or 'index.return' or supplying a factor are now
+	errors.
+
+    o	The ave() function had trouble if the grouping contained
+	unused levels.
+
+    o	read.fwf() got confused by skip > 0 and could infinite loop
+	under some circumstances.  (PR#7350)
+
+    o	upgrade(x, ask = FALSE) was broken for a "packageStatus" object.
+
+    o	Class "raw" had been omitted from the list of basic classes in
+	the "methods" package and so could not be used in S4 classes.
+
+    o	Function getGroupMembers(), part of the definition of S4
+	classes, had been promised for release 2.0, but slipped through.
+
+    o	toLatex(sessionInfo()) produced incorrect LaTeX on some
+	platforms due to special characters in the platform
+	identifier.
+
+
+
+		CHANGES IN R VERSION 2.0.0
+
+
+USER-VISIBLE CHANGES
+
+    o	The stub packages from 1.9.x have been removed: the library()
+	function selects the new home for their code.
+
+    o	`Lazy loading' of R code has been implemented, and is used for
+	the standard and recommended packages by default.  Rather than
+	keep R objects in memory, they are kept in a database on disc
+	and only loaded on first use.  This accelerates startup (down
+	to 40% of the time for 1.9.x) and reduces memory usage -- the
+	latter is probably unimportant of itself, but reduces
+	commensurately the time spent in garbage collection.
+
+	Packages are by default installed using lazy loading if they
+	have more than 25Kb of R code and did not use a saved image.
+	This can be overridden by INSTALL --[no-]lazy or via a field
+	in the DESCRIPTION file.  Note that as with --save, any other
+	packages which are required must be already installed.
+
+	As the lazy-loading databases will be consulted often, R
+	will be slower if run from a slow network-mounted disc.
+
+    o	All the datasets formerly in packages 'base' and 'stats' have
+	been moved to a new package 'datasets'.	 data() does the
+	appropriate substitution, with a warning.  However, calls to
+	data() are not normally needed as the data objects are visible
+	in the 'datasets' package.
+
+	Packages can be installed to make their data objects visible
+	via R CMD INSTALL --lazy-data or via a field in the
+	DESCRIPTION file.
+
+    o	Package 'graphics' has been split into 'grDevices' (the graphics
+	devices shared between base and grid graphics) and 'graphics'
+	(base graphics).  Each of the 'graphics' and 'grid' packages
+	load 'grDevices' when they are attached.  Note that
+	ps.options() has been moved to grDevices and user hooks may
+	need to be updated.
+
+    o	The semantics of data() have changed (and were incorrectly
+	documented in recent releases) and the function has been moved
+	to package 'utils'.  Please read the help page carefully if
+	you use the 'package' or 'lib.loc' arguments.
+
+	data() now lists datasets, and not just names which data() accepts.
+
+    o	Dataset 'phones' has been renamed to 'WorldPhones'.
+
+    o	Datasets 'sunspot.month' and 'sunspot.year' are available
+
+
+	*********************************************************
+	*							*
+	*	News of 1.x.y is in file 'NEWS.1'		*
+	*							*
+	*********************************************************
+
+
+%%% Local Variables:
+%%% mode: text
+%%% coding: utf-8
+%%% End:
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS	(revision 2476)
@@ -0,0 +1,4865 @@
+R News
+
+CHANGES IN R 3.3.2:
+
+  NEW FEATURES:
+
+    * extSoftVersion() now reports the version (if any) of the readline
+      library in use.
+
+    * The version of LAPACK included in the sources has been updated to
+      3.6.1, a bug-fix release including a speedup for the
+      non-symmetric case of eigen().
+
+    * Use options(deparse.max.lines=) to limit the number of lines
+      recorded in .Traceback and other deparsing activities.
+
+    * format(<AsIs>) looks more regular, also for non-character atomic
+      matrices.
+
+    * abbreviate() gains an option named = TRUE.
+
+    * The online documentation for package methods is extensively
+      rewritten.  The goals are to simplify documentation for basic
+      use, to note old features not recommended and to correct
+      out-of-date information.
+
+    * Calls to setMethod() no longer print a message when creating a
+      generic function in those cases where that is natural: S3
+      generics and primitives.
+
+  INSTALLATION and INCLUDED SOFTWARE:
+
+    * Versions of the readline library >= 6.3 had been changed so that
+      terminal window resizes were not signalled to readline: code has
+      been added using a explicit signal handler to work around that
+      (when R is compiled against readline >= 6.3).  (PR#16604)
+
+    * configure works better with Oracle Developer Studio 12.5.
+
+  UTILITIES:
+
+    * R CMD check reports more dubious flags in files
+      src/Makevars[.in], including -w and -g.
+
+    * R CMD check has been set up to filter important warnings from
+      recent versions of gfortran with -Wall -pedantic: this now
+      reports non-portable GNU extensions such as out-of-order
+      declarations.
+
+    * R CMD config works better with paths containing spaces, even
+      those of home directories (as reported by Ken Beath).
+
+  DEPRECATED AND DEFUNCT:
+
+    * Use of the C/C++ macro NO_C_HEADERS is deprecated (no C headers
+      are included by R headers from C++ as from R 3.3.0, so it should
+      no longer be needed).
+
+  BUG FIXES:
+
+    * The check for non-portable flags in R CMD check could be stymied
+      by src/Makevars files which contained targets.
+
+    * (Windows only) When using certain desktop themes in Windows 7 or
+      higher, Alt-Tab could cause Rterm to stop accepting input.
+      (PR#14406; patch submitted by Jan Gleixner.)
+
+    * pretty(d, ..) behaves better for date-time d (PR#16923).
+
+    * When an S4 class name matches multiple classes in the S4 cache,
+      perform a dynamic search in order to obey namespace imports.
+      This should eliminate annoying messages about multiple hits in
+      the class cache.  Also, pass along the package from the
+      ClassExtends object when looking up superclasses in the cache.
+
+    * sample(NA_real_) now works.
+
+    * Packages using non-ASCII encodings in their code did not install
+      data properly on systems using different encodings.
+
+    * merge(df1, df2) now also works for data frames with column names
+      "na.last", "decreasing", or "method".  (PR#17119)
+
+    * contour() caused a segfault if the labels argument had length
+      zero.  (Reported by Bill Dunlap.)
+
+    * unique(warnings()) works more correctly, thanks to a new
+      duplicated.warnings() method.
+
+    * findInterval(x, vec = numeric(), all.inside = TRUE) now returns
+      0s as documented.  (Reported by Bill Dunlap.)
+
+    * (Windows only) R CMD SHLIB failed when a symbol in the resulting
+      library had the same name as a keyword in the .def file.
+      (PR#17130)
+
+    * pmax() and pmin() now work with (more ?)  classed objects, such
+      as "Matrix" from the Matrix package, as documented for a long
+      time.
+
+    * axis(side, x = D) and hence Axis() and plot() now work correctly
+      for "Date" and time objects D, even when "time goes backward",
+      e.g., with decreasing xlim.  (Reported by William May.)
+
+    * str(I(matrix(..))) now looks as always intended.
+
+    * plot.ts(), the plot() method for time series, now respects cex,
+      lwd and lty.  (Reported by Greg Werbin.)
+
+    * parallel::mccollect() now returns a named list (as documented)
+      when called with wait = FALSE.  (Reported by Michel Lang.)
+
+    * If a package added a class to a class union in another package,
+      loading the first package gave erroneous warnings about
+      "undefined subclass".
+
+    * c()'s argument use.names is documented now, as belonging to the
+      (C internal) default method.  In "parallel", argument recursive
+      is also moved from the generic to the default method, such that
+      the formal argument list of base generic c() is just (...).
+
+    * rbeta(4, NA) and similarly rgamma() and rnbinom() now return
+      NaN's with a warning, as other r<dist>(), and as documented.
+      (PR#17155)
+
+    * Using options(checkPackageLicense = TRUE) no longer requires
+      acceptance of the licence for non-default standard packages such
+      as compiler.  (Reported by Mikko Korpela.)
+
+    * split(<very_long>, *) now works even when the split off parts are
+      long. (PR#17139)
+
+    * min() and max() now also work correctly when the argument list
+      starts with character(0).  (PR#17160)
+
+    * Subsetting very large matrices (prod(dim(.)) >= 2^31) now works
+      thanks to Michael Schubmehl's PR#17158.
+
+    * bartlett.test() used residual sums of squares instead of
+      variances, when the argument was a list of lm objects.  (Reported
+      by Jens Ledet Jensen).
+
+    * plot(<lm>, which = *) now correctly labels the contour lines for
+      the standardized residuals for which = 6.  It also takes the
+      correct p in case of singularities (also for which = 5).
+      (PR#17161)
+
+    * xtabs(~ exclude) no longer fails from wrong scope, thanks to
+      Suharto Anggono's PR#17147.
+
+    * Reference class calls to methods() did not re-analyse previously
+      defined methods, meaning that calls to methods defined later
+      would fail. (Reported by Charles Tilford).
+
+    * findInterval(x, vec, left.open = TRUE) misbehaved in some cases.
+      (Reported by Dmitriy Chernykh.)
+
+CHANGES IN R 3.3.1:
+
+  BUG FIXES:
+
+    * R CMD INSTALL and hence install.packages() gave an internal error
+      installing a package called description from a tarball on a
+      case-insensitive file system.
+
+    * match(x, t) (and hence x %in% t) failed when x was of length one,
+      and either character and x and t only differed in their Encoding
+      or when x and t where complex with NAs or NaNs.  (PR#16885.)
+
+    * unloadNamespace(ns) also works again when ns is a 'namespace', as
+      from getNamespace().
+
+    * rgamma(1, Inf) or rgamma(1, 0, 0) no longer give NaN but the
+      correct limit.
+
+    * length(baseenv()) is correct now.
+
+    * pretty(d, ..) for date-time d rarely failed when "halfmonth" time
+      steps were tried (PR#16923) and on 'inaccurate' platforms such as
+      32-bit Windows or a configuration with --disable-long-double; see
+      comment #15 of PR#16761.
+
+    * In text.default(x, y, labels), the rarely(?) used default for
+      labels is now correct also for the case of a 2-column matrix x
+      and missing y.
+
+    * as.factor(c(a = 1L)) preserves names() again as in R < 3.1.0.
+
+    * strtrim(""[0], 0[0]) now works.
+
+    * Use of Ctrl-C to terminate a reverse incremental search started
+      by Ctrl-R in the readline-based Unix terminal interface is now
+      supported when R was compiled against readline >= 6.0 (Ctrl-G
+      always worked).  (PR#16603)
+
+    * diff(<difftime>) now keeps the "units" attribute, as subtraction
+      already did, PR#16940.
+
+CHANGES IN R 3.3.0:
+
+  SIGNIFICANT USER-VISIBLE CHANGES:
+
+    * nchar(x, *)'s argument keepNA governing how the result for NAs in
+      x is determined, gets a new default keepNA = NA which returns NA
+      where x is NA, except for type = "width" which still returns 2,
+      the formatting / printing width of NA.
+
+    * All builds have support for https: URLs in the default methods
+      for download.file(), url() and code making use of them.
+
+      Unfortunately that cannot guarantee that any particular https:
+      URL can be accessed.  For example, server and client have to
+      successfully negotiate a cryptographic protocol (TLS/SSL, ...)
+      and the server's identity has to be verifiable _via_ the
+      available certificates.  Different access methods may allow
+      different protocols or use private certificate bundles: we
+      encountered a https: CRAN mirror which could be accessed by one
+      browser but not by another nor by download.file() on the same
+      Linux machine.
+
+  NEW FEATURES:
+
+    * The print method for methods() gains a byclass argument.
+
+    * New functions validEnc() and validUTF8() to give access to the
+      validity checks for inputs used by grep() and friends.
+
+    * Experimental new functionality for S3 method checking, notably
+      isS3method().
+
+      Also, the names of the R 'language elements' are exported as
+      character vector tools::langElts.
+
+    * str(x) now displays "Time-Series" also for matrix (multivariate)
+      time-series, i.e. when is.ts(x) is true.
+
+    * (Windows only) The GUI menu item to install local packages now
+      accepts *.tar.gz files as well as *.zip files (but defaults to
+      the latter).
+
+    * New programmeR's utility function chkDots().
+
+    * D() now signals an error when given invalid input, rather than
+      silently returning NA.  (Request of John Nash.)
+
+    * formula objects are slightly more "first class": e.g., formula()
+      or new("formula", y ~ x) are now valid.  Similarly, for "table",
+      "ordered" and "summary.table".  Packages defining S4 classes with
+      the above S3/S4 classes as slots should be reinstalled.
+
+    * New function strrep() for repeating the elements of a character
+      vector.
+
+    * rapply() preserves attributes on the list when how = "replace".
+
+    * New S3 generic function sigma() with methods for extracting the
+      estimated standard deviation aka "residual standard deviation"
+      from a fitted model.
+
+    * news() now displays R and package news files within the HTML help
+      system if it is available.  If no news file is found, a visible
+      NULL is returned to the console.
+
+    * as.raster(x) now also accepts raw arrays x assuming values in
+      0:255.
+
+    * Subscripting of matrix/array objects of type "expression" is now
+      supported.
+
+    * type.convert("i") now returns a factor instead of a complex value
+      with zero real part and missing imaginary part.
+
+    * Graphics devices cairo_pdf() and cairo_ps() now allow non-default
+      values of the cairographics 'fallback resolution' to be set.
+
+      This now defaults to 300 on all platforms: that is the default
+      documented by cairographics, but apparently was not used by all
+      system installations.
+
+    * file() gains an explicit method argument rather than implicitly
+      using getOption("url.method", "default").
+
+    * Thanks to a patch from Tomas Kalibera, x[x != 0] is now typically
+      faster than x[which(x != 0)] (in the case where x has no NAs, the
+      two are equivalent).
+
+    * read.table() now always uses the names for a named colClasses
+      argument (previously names were only used when colClasses was too
+      short). (In part, wish of PR#16478.)
+
+    * (Windows only) download.file() with default method = "auto" and a
+      ftps:// URL chooses "libcurl" if that is available.
+
+    * The out-of-the box Bioconductor mirror has been changed to one
+      using https://: use chooseBioCmirror() to choose a http:// mirror
+      if required.
+
+    * The data frame and formula methods for aggregate() gain a drop
+      argument.
+
+    * available.packages() gains a repos argument.
+
+    * The undocumented switching of methods for url() on https: and
+      ftps: URLs is confined to method = "default" (and documented).
+
+    * smoothScatter() gains a ret.selection argument.
+
+    * qr() no longer has a ... argument to pass additional arguments to
+      methods.
+
+    * [ has a method for class "table".
+
+    * It is now possible (again) to replayPlot() a display list
+      snapshot that was created by recordPlot() in a different R
+      session.
+
+      It is still not a good idea to use snapshots as a persistent
+      storage format for R plots, but it is now not completely silly to
+      use a snapshot as a format for transferring an R plot between two
+      R sessions.
+
+      The underlying changes mean that packages providing graphics
+      devices (e.g., Cairo, RSvgDevice, cairoDevice, tikzDevice) will
+      need to be reinstalled.
+
+      Code for restoring snapshots was contributed by Jeroen Ooms and
+      JJ Allaire.
+
+      Some testing code is available at <URL:
+      https://github.com/pmur002/R-display-list>.
+
+    * tools::undoc(dir = D) and codoc(dir = D) now also work when D is
+      a directory whose normalizePath()ed version does not end in the
+      package name, e.g. from a symlink.
+
+    * abbreviate() has more support for multi-byte character sets - it
+      no longer removes bytes within characters and knows about Latin
+      vowels with accents.  It is still only really suitable for (most)
+      European languages, and still warns on non-ASCII input.
+
+      abbreviate(use.classes = FALSE) is now implemented, and that is
+      more suitable for non-European languages.
+
+    * match(x, table) is faster (sometimes by an order of magnitude)
+      when x is of length one and incomparables is unchanged, thanks to
+      Peter Haverty (PR#16491).
+
+    * More consistent, partly not back-compatible behavior of NA and
+      NaN coercion to complex numbers, operations less often resulting
+      in complex NA (NA_complex_).
+
+    * lengths() considers methods for length and [[ on x, so it should
+      work automatically on any objects for which appropriate methods
+      on those generics are defined.
+
+    * The logic for selecting the default screen device on OS X has
+      been simplified: it is now quartz() if that is available even if
+      environment variable DISPLAY has been set by the user.
+
+      The choice can easily be overridden _via_ environment variable
+      R_INTERACTIVE_DEVICE.
+
+    * On Unix-like platforms which support the getline C library
+      function, system(*,intern = TRUE) no longer truncates (output)
+      lines longer than 8192 characters, thanks to Karl Millar.
+      (PR#16544)
+
+    * rank() gains a ties.method = "last" option, for convenience (and
+      symmetry).
+
+    * regmatches(invert = NA) can now be used to extract both
+      non-matched and matched substrings.
+
+    * data.frame() gains argument fix.empty.names; as.data.frame.list()
+      gets new cut.names, col.names and fix.empty.names.
+
+    * plot(x ~ x, *) now warns that it is the same as plot(x ~ 1, *).
+
+    * recordPlot() has new arguments load and attach to allow package
+      names to be stored as part of a recorded plot.  replayPlot() has
+      new argument reloadPkgs to load/attach any package names that
+      were stored as part of a recorded plot.
+
+    * S4 dispatch works within calls to .Internal(). This means
+      explicit S4 generics are no longer needed for unlist() and
+      as.vector().
+
+    * Only font family names starting with "Hershey" (and not "Her" as
+      before) are given special treatment by the graphics engine.
+
+    * S4 values are automatically coerced to vector (via as.vector)
+      when subassigned into atomic vectors.
+
+    * findInterval() gets a left.open option.
+
+    * The version of LAPACK included in the sources has been updated to
+      3.6.0, including those 'deprecated' routines which were
+      previously included.  _Ca_ 40 double-complex routines have been
+      added at the request of a package maintainer.
+
+      As before, the details of what is included are in
+      src/modules/lapack/README and this now gives information on
+      earlier additions.
+
+    * tapply() has been made considerably more efficient without
+      changing functionality, thanks to proposals from Peter Haverty
+      and Suharto Anggono.  (PR#16640)
+
+    * match.arg(arg) (the one-argument case) is faster; so is
+      sort.int().  (PR#16640)
+
+    * The format method for object_size objects now also accepts
+      "binary" units such as "KiB" and e.g., "Tb".  (Partly from
+      PR#16649.)
+
+    * Profiling now records calls of the form foo::bar and some similar
+      cases directly rather than as calls to <Anonymous>.  Contributed
+      by Winston Chang.
+
+    * New string utilities startsWith(x, prefix) and endsWith(x,
+      suffix).  Also provide speedups for some grepl("^...",*) uses
+      (related to proposals in PR#16490).
+
+    * Reference class finalizers run at exit, as well as on garbage
+      collection.
+
+    * Avoid parallel dependency on stats for port choice and random
+      number seeds.  (PR#16668)
+
+    * The radix sort algorithm and implementation from data.table
+      (forder) replaces the previous radix (counting) sort and adds a
+      new method for order().  Contributed by Matt Dowle and Arun
+      Srinivasan, the new algorithm supports logical, integer (even
+      with large values), real, and character vectors.  It outperforms
+      all other methods, but there are some caveats (see ?sort).
+
+    * The order() function gains a method argument for choosing between
+      "shell" and "radix".
+
+    * New function grouping() returns a permutation that stably
+      rearranges data so that identical values are adjacent.  The
+      return value includes extra partitioning information on the
+      groups.  The implementation came included with the new radix
+      sort.
+
+    * rhyper(nn, m, n, k) no longer returns NA when one of the three
+      parameters exceeds the maximal integer.
+
+    * switch() now warns when no alternatives are provided.
+
+    * parallel::detectCores() now has default logical = TRUE on all
+      platforms - as this was the default on Windows, this change only
+      affects Sparc Solaris.
+
+      Option logical = FALSE is now supported on Linux and recent
+      versions of OS X (for the latter, thanks to a suggestion of Kyaw
+      Sint).
+
+    * hist() for "Date" or "POSIXt" objects would sometimes give
+      misleading labels on the breaks, as they were set to the day
+      before the start of the period being displayed.  The display
+      format has been changed, and the shift of the start day has been
+      made conditional on right = TRUE (the default).  (PR#16679)
+
+    * R now uses a new version of the logo (donated to the R Foundation
+      by RStudio).  It is defined in .svg format, so will resize
+      without unnecessary degradation when displayed on HTML
+      pages-there is also a vector PDF version.  Thanks to Dirk
+      Eddelbuettel for producing the corresponding X11 icon.
+
+    * New function .traceback() returns the stack trace which
+      traceback() prints.
+
+    * lengths() dispatches internally.
+
+    * dotchart() gains a pt.cex argument to control the size of points
+      separately from the size of plot labels.  Thanks to Michael
+      Friendly and Milan Bouchet-Valat for ideas and patches.
+
+    * as.roman(ch) now correctly deals with more diverse character
+      vectors ch; also arithmetic with the resulting roman numbers
+      works in more cases.  (PR#16779)
+
+    * prcomp() gains a new option rank. allowing to directly aim for
+      less than min(n,p) PC's.  The summary() and its print() method
+      have been amended, notably for this case.
+
+    * gzcon() gains a new option text, which marks the connection as
+      text-oriented (so e.g. pushBack() works).  It is still always
+      opened in binary mode.
+
+    * The import() namespace directive now accepts an argument except
+      which names symbols to exclude from the imports. The except
+      expression should evaluate to a character vector (after
+      substituting symbols for strings). See Writing R Extensions.
+
+    * New convenience function Rcmd() in package tools for invoking R
+      CMD tools from within R.
+
+    * New functions makevars_user() and makevars_site() in package
+      tools to determine the location of the user and site specific
+      Makevars files for customizing package compilation.
+
+  UTILITIES:
+
+    * R CMD check has a new option --ignore-vignettes for use with
+      non-Sweave vignettes whose VignetteBuilder package is not
+      available.
+
+    * R CMD check now by default checks code usage (_via_ codetools)
+      with only the base package attached.  Functions from default
+      packages other than base which are used in the package code but
+      not imported are reported as undefined globals, with a suggested
+      addition to the NAMESPACE file.
+
+    * R CMD check --as-cran now also checks DOIs in package CITATION
+      and Rd files.
+
+    * R CMD Rdconv and R CMD Rd2pdf each have a new option
+      --RdMacros=pkglist which allows Rd macros to be specified before
+      processing.
+
+  DEPRECATED AND DEFUNCT:
+
+    * The previously included versions of zlib, bzip2, xz and PCRE have
+      been removed, so suitable external (usually system) versions are
+      required (see the 'R Installation and Administration' manual).
+
+    * The unexported and undocumented Windows-only devices cairo_bmp(),
+      cairo_png() and cairo_tiff() have been removed.  (These devices
+      should be used as e.g. bmp(type = "cairo").)
+
+    * (Windows only) Function setInternet2() has no effect and will be
+      removed in due course.  The choice between methods "internal" and
+      "wininet" is now made by the method arguments of url() and
+      download.file() and their defaults can be set _via_ options.  The
+      out-of-the-box default remains "wininet" (as it has been since R
+      3.2.2).
+
+    * [<- with an S4 value into a list currently embeds the S4 object
+      into its own list such that the end result is roughly equivalent
+      to using [[<-.  That behavior is deprecated.  In the future, the
+      S4 value will be coerced to a list with as.list().
+
+    * Package tools' functions package.dependencies(), pkgDepends(),
+      etc are deprecated now, mostly in favor of package_dependencies()
+      which is both more flexible and efficient.
+
+  INSTALLATION and INCLUDED SOFTWARE:
+
+    * Support for very old versions of valgrind (e.g., 3.3.0) has been
+      removed.
+
+    * The included libtool script (generated by configure) has been
+      updated to version 2.4.6 (from 2.2.6a).
+
+    * libcurl version 7.28.0 or later with support for the https
+      protocol is required for installation (except on Windows).
+
+    * BSD networking is now required (except on Windows) and so
+      capabilities("http/ftp") is always true.
+
+    * configure uses pkg-config for PNG, TIFF and JPEG where this is
+      available.  This should work better with multiple installs and
+      with those using static libraries.
+
+    * The minimum supported version of OS X is 10.6 ('Snow Leopard'):
+      even that has been unsupported by Apple since 2012.
+
+    * The configure default on OS X is --disable-R-framework: enable
+      this if you intend to install under /Library/Frameworks and use
+      with R.app.
+
+    * The minimum preferred version of PCRE has since R 3.0.0 been 8.32
+      (released in Nov 2012).  Versions 8.10 to 8.31 are now deprecated
+      (with warnings from configure), but will still be accepted until
+      R 3.4.0.
+
+    * configure looks for C functions __cospi, __sinpi and __tanpi and
+      uses these if cospi _etc_ are not found.  (OS X is the main
+      instance.)
+
+    * (Windows) R is now built using gcc 4.9.3.  This build will
+      require recompilation of at least those packages that include C++
+      code, and possibly others.  A build of R-devel using the older
+      toolchain will be temporarily available for comparison purposes.
+
+      During the transition, the environment variable R_COMPILED_BY has
+      been defined to indicate which toolchain was used to compile R
+      (and hence, which should be used to compile code in packages).
+      The COMPILED_BY variable described below will be a permanent
+      replacement for this.
+
+    * (Windows) A make and R CMD config variable named COMPILED_BY has
+      been added.  This indicates which toolchain was used to compile R
+      (and hence, which should be used to compile code in packages).
+
+  PACKAGE INSTALLATION:
+
+    * The make macro AWK which used to be made available to files such
+      as src/Makefile is no longer set.
+
+  C-LEVEL FACILITIES:
+
+    * The API call logspace_sum introduced in R 3.2.0 is now remapped
+      as an entry point to Rf_logspace_sum, and its first argument has
+      gained a const qualifier.  (PR#16470)
+
+      Code using it will need to be reinstalled.
+
+      Similarly, entry point log1pexp also defined in Rmath.h is
+      remapped there to Rf_log1pexp
+
+    * R_GE_version has been increased to 11.
+
+    * New API call R_orderVector1, a faster one-argument version of
+      R_orderVector.
+
+    * When R headers such as R.h and Rmath.h are called from C++ code
+      in packages they include the C++ versions of system headers such
+      as <cmath> rather than the legacy headers such as <math.h>.
+      (Headers Rinternals.h and Rinterface.h already did, and inclusion
+      of system headers can still be circumvented by defining
+      NO_C_HEADERS, including as from this version for those two
+      headers.)
+
+      The manual has long said that R headers should *not* be included
+      within an extern "C" block, and almost all the packages affected
+      by this change were doing so.
+
+    * Including header S.h from C++ code would fail on some platforms,
+      and so gives a compilation error on all.
+
+    * The deprecated header Rdefines.h is now compatible with defining
+      R_NO_REMAP.
+
+    * The connections API now includes a function R_GetConnection()
+      which allows packages implementing connections to convert R
+      connection objects to Rconnection handles used in the API. Code
+      which previously used the low-level R-internal getConnection()
+      entry point should switch to the official API.
+
+  BUG FIXES:
+
+    * C-level asChar(x) is fixed for when x is not a vector, and it
+      returns "TRUE"/"FALSE" instead of "T"/"F" for logical vectors.
+
+    * The first arguments of .colSums() etc (with an initial dot) are
+      now named x rather than X (matching colSums()): thus error
+      messages are corrected.
+
+    * A coef() method for class "maov" has been added to allow vcov()
+      to work with multivariate results. (PR#16380)
+
+    * method = "libcurl" connections signal errors rather than
+      retrieving HTTP error pages (where the ISP reports the error).
+
+    * xpdrows.data.frame() was not checking for unique row names; in
+      particular, this affected assignment to non-existing rows via
+      numerical indexing. (PR#16570)
+
+    * tail.matrix() did not work for zero rows matrices, and could
+      produce row "labels" such as "[1e+05,]".
+
+    * Data frames with a column named "stringsAsFactors" now format and
+      print correctly.  (PR#16580)
+
+    * cor() is now guaranteed to return a value with absolute value
+      less than or equal to 1. (PR#16638)
+
+    * Array subsetting now keeps names(dim(.)).
+
+    * Blocking socket connection selection recovers more gracefully on
+      signal interrupts.
+
+    * The data.frame method of rbind() construction row.names works
+      better in borderline integer cases, but may change the names
+      assigned.  (PR#16666)
+
+    * (X11 only) getGraphicsEvent() miscoded buttons and missed mouse
+      motion events.  (PR#16700)
+
+    * methods(round) now also lists round.POSIXt.
+
+    * tar() now works with the default files = NULL.  (PR#16716)
+
+    * Jumps to outer contexts, for example in error recovery, now make
+      intermediate jumps to contexts where on.exit() actions are
+      established instead of trying to run all on.exit() actions before
+      jumping to the final target. This unwinds the stack gradually,
+      releases resources held on the stack, and significantly reduces
+      the chance of a segfault when running out of C stack space. Error
+      handlers established using withCallingHandlers() and
+      options("error") specifications are ignored when handling a C
+      stack overflow error as attempting one of these would trigger a
+      cascade of C stack overflow errors.  (These changes resolve
+      PR#16753.)
+
+    * The spacing could be wrong when printing a complex array.
+      (Report and patch by Lukas Stadler.)
+
+    * pretty(d, n, min.n, *) for date-time objects d works again in
+      border cases with large min.n, returns a labels attribute also
+      for small-range dates and in such cases its returned length is
+      closer to the desired n.  (PR#16761) Additionally, it finally
+      does cover the range of d, as it always claimed.
+
+    * tsp(x) <- NULL did not handle correctly objects inheriting from
+      both "ts" and "mts".  (PR#16769)
+
+    * install.packages() could give false errors when
+      options("pkgType") was "binary".  (Reported by Jose Claudio
+      Faria.)
+
+    * A bug fix in R 3.0.2 fixed problems with locator() in X11, but
+      introduced problems in Windows.  Now both should be fixed.
+      (PR#15700)
+
+    * download.file() with method = "wininet" incorrectly warned of
+      download file length difference when reported length was unknown.
+      (PR#16805)
+
+    * diag(NULL, 1) crashed because of missed type checking.
+      (PR#16853)
+
+CHANGES IN R 3.2.5:
+
+  BUG FIXES:
+
+    * format.POSIXlt() behaved incorrectly in R 3.2.4.  E.g. the output
+      of format(as.POSIXlt(paste0(1940:2000,"-01-01"), tz = "CET"),
+      usetz = TRUE) ended in two "CEST" time formats.
+
+CHANGES IN R 3.2.4:
+
+  NEW FEATURES:
+
+    * install.packages() and related functions now give a more
+      informative warning when an attempt is made to install a base
+      package.
+
+    * summary(x) now prints with less rounding when x contains infinite
+      values. (Request of PR#16620.)
+
+    * provideDimnames() gets an optional unique argument.
+
+    * shQuote() gains type = "cmd2" for quoting in cmd.exe in Windows.
+      (Response to PR#16636.)
+
+    * The data.frame method of rbind() gains an optional argument
+      stringsAsFactors (instead of only depending on
+      getOption("stringsAsFactors")).
+
+    * smooth(x, *) now also works for long vectors.
+
+    * tools::texi2dvi() has a workaround for problems with the texi2dvi
+      script supplied by texinfo 6.1.
+
+      It extracts more error messages from the LaTeX logs when in
+      emulation mode.
+
+  UTILITIES:
+
+    * R CMD check will leave a log file build_vignettes.log from the
+      re-building of vignettes in the .Rcheck directory if there is a
+      problem, and always if environment variable
+      _R_CHECK_ALWAYS_LOG_VIGNETTE_OUTPUT_ is set to a true value.
+
+  DEPRECATED AND DEFUNCT:
+
+    * Use of SUPPORT_OPENMP from header Rconfig.h is deprecated in
+      favour of the standard OpenMP define _OPENMP.
+
+      (This has been the recommendation in the manual for a while now.)
+
+    * The make macro AWK which is long unused by R itself but recorded
+      in file etc/Makeconf is deprecated and will be removed in R
+      3.3.0.
+
+    * The C header file S.h is no longer documented: its use should be
+      replaced by R.h.
+
+  BUG FIXES:
+
+    * kmeans(x, centers = <1-row>) now works. (PR#16623)
+
+    * Vectorize() now checks for clashes in argument names.  (PR#16577)
+
+    * file.copy(overwrite = FALSE) would signal a successful copy when
+      none had taken place.  (PR#16576)
+
+    * ngettext() now uses the same default domain as gettext().
+      (PR#14605)
+
+    * array(.., dimnames = *) now warns about non-list dimnames and,
+      from R 3.3.0, will signal the same error for invalid dimnames as
+      matrix() has always done.
+
+    * addmargins() now adds dimnames for the extended margins in all
+      cases, as always documented.
+
+    * heatmap() evaluated its add.expr argument in the wrong
+      environment.  (PR#16583)
+
+    * require() etc now give the correct entry of lib.loc in the
+      warning about an old version of a package masking a newer
+      required one.
+
+    * The internal deparser did not add parentheses when necessary,
+      e.g. before [] or [[]].  (Reported by Lukas Stadler; additional
+      fixes included as well).
+
+    * as.data.frame.vector(*, row.names=*) no longer produces
+      'corrupted' data frames from row names of incorrect length, but
+      rather warns about them.  This will become an error.
+
+    * url connections with method = "libcurl" are destroyed properly.
+      (PR#16681)
+
+    * withCallingHandler() now (again) handles warnings even during S4
+      generic's argument evaluation.  (PR#16111)
+
+    * deparse(..., control = "quoteExpressions") incorrectly quoted
+      empty expressions.  (PR#16686)
+
+    * format()ting datetime objects ("POSIX[cl]?t") could segfault or
+      recycle wrongly.  (PR#16685)
+
+    * plot.ts(<matrix>, las = 1) now does use las.
+
+    * saveRDS(*, compress = "gzip") now works as documented.
+      (PR#16653)
+
+    * (Windows only) The Rgui front end did not always initialize the
+      console properly, and could cause R to crash.  (PR#16698)
+
+    * dummy.coef.lm() now works in more cases, thanks to a proposal by
+      Werner Stahel (PR#16665).  In addition, it now works for
+      multivariate linear models ("mlm", manova) thanks to a proposal
+      by Daniel Wollschlaeger.
+
+    * The as.hclust() method for "dendrogram"s failed often when there
+      were ties in the heights.
+
+    * reorder() and midcache.dendrogram() now are non-recursive and
+      hence applicable to somewhat deeply nested dendrograms, thanks to
+      a proposal by Suharto Anggono in PR#16424.
+
+    * cor.test() now calculates very small p values more accurately
+      (affecting the result only in extreme not statistically relevant
+      cases).  (PR#16704)
+
+    * smooth(*, do.ends=TRUE) did not always work correctly in R
+      versions between 3.0.0 and 3.2.3.
+
+    * pretty(D) for date-time objects D now also works well if range(D)
+      is (much) smaller than a second.  In the case of only one unique
+      value in D, the pretty range now is more symmetric around that
+      value than previously.
+
+      Similarly, pretty(dt) no longer returns a length 5 vector with
+      duplicated entries for Date objects dt which span only a few
+      days.
+
+    * The figures in help pages such as ?points were accidentally
+      damaged, and did not appear in R 3.2.3.  (PR#16708)
+
+    * available.packages() sometimes deleted the wrong file when
+      cleaning up temporary files.  (PR#16712)
+
+    * The X11() device sometimes froze on Red Hat Enterprise Linux 6.
+      It now waits for MapNotify events instead of Expose events,
+      thanks to Siteshwar Vashisht. (PR#16497)
+
+    * [dpqr]nbinom(*, size=Inf, mu=.) now works as limit case, for
+      'dpq' as the Poisson.  (PR#16727)
+      pnbinom() no longer loops infinitely in border cases.
+
+    * approxfun(*, method="constant") and hence ecdf() which calls the
+      former now correctly "predict" NaN values as NaN.
+
+    * summary.data.frame() now displays NAs in Date columns in all
+      cases.  (PR#16709)
+
+CHANGES IN R 3.2.3:
+
+  NEW FEATURES:
+
+    * Some recently-added Windows time zone names have been added to
+      the conversion table used to convert these to Olson names.
+      (Including those relating to changes for Russia in Oct 2014, as
+      in PR#16503.)
+
+    * (Windows) Compatibility information has been added to the
+      manifests for Rgui.exe, Rterm.exe and Rscript.exe.  This should
+      allow win.version() and Sys.info() to report the actual Windows
+      version up to Windows 10.
+
+    * Windows "wininet" FTP first tries EPSV / PASV mode rather than
+      only using active mode (reported by Dan Tenenbaum).
+
+    * which.min(x) and which.max(x) may be much faster for logical and
+      integer x and now also work for long vectors.
+
+    * The 'emulation' part of tools::texi2dvi() has been somewhat
+      enhanced, including supporting quiet = TRUE.  It can be selected
+      by texi2dvi = "emulation".
+
+      (Windows) MiKTeX removed its texi2dvi.exe command in Sept 2015:
+      tools::texi2dvi() tries texify.exe if it is not found.
+
+    * (Windows only) Shortcuts for printing and saving have been added
+      to menus in Rgui.exe.  (Request of PR#16572.)
+
+    * loess(..., iterTrace=TRUE) now provides diagnostics for
+      robustness iterations, and the print() method for
+      summary(<loess>) shows slightly more.
+
+    * The included version of PCRE has been updated to 8.38, a bug-fix
+      release.
+
+    * View() now displays nested data frames in a more friendly way.
+      (Request with patch in PR#15915.)
+
+  INSTALLATION and INCLUDED SOFTWARE:
+
+    * The included configuration code for libintl has been updated to
+      that from gettext version 0.19.5.1 - this should only affect how
+      an external library is detected (and the only known instance is
+      under OpenBSD).  (Wish of PR#16464.)
+
+    * configure has a new argument --disable-java to disable the checks
+      for Java.
+
+    * The configure default for MAIN_LDFLAGS has been changed for the
+      FreeBSD, NetBSD and Hurd OSes to one more likely to work with
+      compilers other than gcc (FreeBSD 10 defaults to clang).
+
+    * configure now supports the OpenMP flags -fopenmp=libomp (clang)
+      and -qopenmp (Intel C).
+
+    * Various macros can be set to override the default behaviour of
+      configure when detecting OpenMP: see file config.site.
+
+    * Source installation on Windows has been modified to allow for
+      MiKTeX installations without texi2dvi.exe.  See file
+      MkRules.dist.
+
+  BUG FIXES:
+
+    * regexpr(pat, x, perl = TRUE) with Python-style named capture did
+      not work correctly when x contained NA strings.  (PR#16484)
+
+    * The description of dataset ToothGrowth has been
+      improved/corrected.  (PR#15953)
+
+    * model.tables(type = "means") and hence TukeyHSD() now support
+      "aov" fits without an intercept term.  (PR#16437)
+
+    * close() now reports the status of a pipe() connection opened with
+      an explicit open argument.  (PR#16481)
+
+    * Coercing a list without names to a data frame is faster if the
+      elements are very long. (PR#16467)
+
+    * (Unix-only) Under some rare circumstances piping the output from
+      Rscript or R -f could result in attempting to close the input
+      file twice, possibly crashing the process.  (PR#16500)
+
+    * (Windows) Sys.info() was out of step with win.version() and did
+      not report Windows 8.
+
+    * topenv(baseenv()) returns baseenv() again as in R 3.1.0 and
+      earlier.  This also fixes compilerJIT(3) when used in .Rprofile.
+
+    * detach()ing the methods package keeps .isMethodsDispatchOn()
+      true, as long as the methods namespace is not unloaded.
+
+    * Removed some spurious warnings from configure about the
+      preprocessor not finding header files.  (PR#15989)
+
+    * rchisq(*, df=0, ncp=0) now returns 0 instead of NaN, and
+      dchisq(*, df=0, ncp=*) also no longer returns NaN in limit cases
+      (where the limit is unique).  (PR#16521)
+
+    * pchisq(*, df=0, ncp > 0, log.p=TRUE) no longer underflows (for
+      ncp > ~60).
+
+    * nchar(x, "w") returned -1 for characters it did not know about
+      (e.g. zero-width spaces): it now assumes 1.  It now knows about
+      most zero-width characters and a few more double-width
+      characters.
+
+    * Help for which.min() is now more precise about behavior with
+      logical arguments.  (PR#16532)
+
+    * The print width of character strings marked as "latin1" or
+      "bytes" was in some cases computed incorrectly.
+
+    * abbreviate() did not give names to the return value if minlength
+      was zero, unlike when it was positive.
+
+    * (Windows only) dir.create() did not always warn when it failed to
+      create a directory.  (PR#16537)
+
+    * When operating in a non-UTF-8 multibyte locale (e.g. an East
+      Asian locale on Windows), grep() and related functions did not
+      handle UTF-8 strings properly.  (PR#16264)
+
+    * read.dcf() sometimes misread lines longer than 8191 characters.
+      (Reported by Herv'e Pag`es with a patch.)
+
+    * within(df, ..) no longer drops columns whose name start with a
+      ".".
+
+    * The built-in HTTP server converted entire Content-Type to
+      lowercase including parameters which can cause issues for
+      multi-part form boundaries (PR#16541).
+
+    * Modifying slots of S4 objects could fail when the methods package
+      was not attached. (PR#16545)
+
+    * splineDesign(*, outer.ok=TRUE) (splines) is better now
+      (PR#16549), and interpSpline() now allows sparse=TRUE for speedup
+      with non-small sizes.
+
+    * If the expression in the traceback was too long, traceback() did
+      not report the source line number.  (Patch by Kirill M"uller.)
+
+    * The browser did not truncate the display of the function when
+      exiting with options("deparse.max.lines") set.  (PR#16581)
+
+    * When bs(*, Boundary.knots=) had boundary knots inside the data
+      range, extrapolation was somewhat off.  (Patch by Trevor Hastie.)
+
+    * var() and hence sd() warn about factor arguments which are
+      deprecated now. (PR#16564)
+
+    * loess(*, weights = *) stored wrong weights and hence gave
+      slightly wrong predictions for newdata.  (PR#16587)
+
+    * aperm(a, *) now preserves names(dim(a)).
+
+    * poly(x, ..) now works when either raw=TRUE or coef is specified.
+      (PR#16597)
+
+    * data(package=*) is more careful in determining the path.
+
+    * prettyNum(*, decimal.mark, big.mark): fixed bug introduced when
+      fixing PR#16411.
+
+CHANGES IN R 3.2.2:
+
+  SIGNIFICANT USER-VISIBLE CHANGES:
+
+    * It is now easier to use secure downloads from https:// URLs on
+      builds which support them: no longer do non-default options need
+      to be selected to do so.  In particular, packages can be
+      installed from repositories which offer https:// URLs, and those
+      listed by setRepositories() now do so (for some of their
+      mirrors).
+
+      Support for https:// URLs is available on Windows, and on other
+      platforms if support for libcurl was compiled in and if that
+      supports the https protocol (system installations can be expected
+      to do).  So https:// support can be expected except on rather old
+      OSes (an example being OS X 'Snow Leopard', where a non-system
+      version of libcurl can be used).
+
+      (Windows only) The default method for accessing URLs _via_
+      download.file() and url() has been changed to be "wininet" using
+      Windows API calls.  This changes the way proxies need to be set
+      and security settings made: there have been some reports of ftp:
+      sites being inaccessible under the new default method (but the
+      previous methods remain available).
+
+  NEW FEATURES:
+
+    * cmdscale() gets new option list. for increased flexibility when a
+      list should be returned.
+
+    * configure now supports texinfo version 6.0, which (unlike the
+      change from 4.x to 5.0) is a minor update.  (Wish of PR#16456.)
+
+    * (Non-Windows only) download.file() with default method = "auto"
+      now chooses "libcurl" if that is available and a https:// or
+      ftps:// URL is used.
+
+    * (Windows only) setInternet2(TRUE) is now the default.  The
+      command-line option --internet2 and environment variable
+      R_WIN_INTERNET2 are now ignored.
+
+      Thus by default the "internal" method for download.file() and
+      url() uses the "wininet" method: to revert to the previous
+      default use setInternet2(FALSE).
+
+      This means that https:// URLs can be read by default by
+      download.file() (they have been readable by file() and url()
+      since R 3.2.0).
+
+      There are implications for how proxies need to be set (see
+      ?download.file).
+
+    * chooseCRANmirror() and chooseBioCmirror() now offer HTTPS mirrors
+      in preference to HTTP mirrors.  This changes the interpretation
+      of their ind arguments: see their help pages.
+
+    * capture.output() gets optional arguments type and split to pass
+      to sink(), and hence can be used to capture messages.
+
+  C-LEVEL FACILITIES:
+
+    * Header Rconfig.h now defines HAVE_ALLOCA_H if the platform has
+      the alloca.h header (it is needed to define alloca on Solaris and
+      AIX, at least: see 'Writing R Extensions' for how to use it).
+
+  INSTALLATION and INCLUDED SOFTWARE:
+
+    * The libtool script generated by configure has been modified to
+      support FreeBSD >= 10 (PR#16410).
+
+  BUG FIXES:
+
+    * The HTML help page links to demo code failed due to a change in R
+      3.2.0.  (PR#16432)
+
+    * If the na.action argument was used in model.frame(), the original
+      data could be modified. (PR#16436)
+
+    * getGraphicsEvent() could cause a crash if a graphics window was
+      closed while it was in use. (PR#16438)
+
+    * matrix(x, nr, nc, byrow = TRUE) failed if x was an object of type
+      "expression".
+
+    * strptime() could overflow the allocated storage on the C stack
+      when the timezone had a non-standard format much longer than the
+      standard formats. (Part of PR#16328.)
+
+    * options(OutDec = s) now signals a warning (which will become an
+      error in the future) when s is not a string with exactly one
+      character, as that has been a documented requirement.
+
+    * prettyNum() gains a new option input.d.mark which together with
+      other changes, e.g., the default for decimal.mark, fixes some
+      format()ting variants with non-default getOption("OutDec") such
+      as in PR#16411.
+
+    * download.packages() failed for type equal to either "both" or
+      "binary".  (Reported by Dan Tenenbaum.)
+
+    * The dendrogram method of labels() is much more efficient for
+      large dendrograms, now using rapply().  (Comment #15 of PR#15215)
+
+    * The "port" algorithm of nls() could give spurious errors.
+      (Reported by Radford Neal.)
+
+    * Reference classes that inherited from reference classes in
+      another package could invalidate methods of the inherited class.
+      Fixing this requires adding the ability for methods to be
+      "external", with the object supplied explicitly as the first
+      argument, named .self. See "Inter-Package Superclasses" in the
+      documentation.
+
+    * readBin() could fail on the SPARC architecture due to alignment
+      issues.  (Reported by Radford Neal.)
+
+    * qt(*, df=Inf, ncp=.) now uses the natural qnorm() limit instead
+      of returning NaN. (PR#16475)
+
+    * Auto-printing of S3 and S4 values now searches for print() in the
+      base namespace and show() in the methods namespace instead of
+      searching the global environment.
+
+    * polym() gains a coefs = NULL argument and returns class "poly"
+      just like poly() which gets a new simple=FALSE option.  They now
+      lead to correct predict()ions, e.g., on subsets of the original
+      data.
+
+    * rhyper(nn, <large>) now works correctly. (PR#16489)
+
+    * ttkimage() did not (and could not) work so was removed. Ditto for
+      tkimage.cget() and tkimage.configure(). Added two Ttk widgets and
+      missing subcommands for Tk's image command: ttkscale(),
+      ttkspinbox(), tkimage.delete(), tkimage.height(),
+      tkimage.inuse(), tkimage.type(), tkimage.types(),
+      tkimage.width(). (PR#15372, PR#16450)
+
+    * getClass("foo") now also returns a class definition when it is
+      found in the cache more than once.
+
+CHANGES IN R 3.2.1:
+
+  NEW FEATURES:
+
+    * utf8ToInt() now checks that its input is valid UTF-8 and returns
+      NA if it is not.
+
+    * install.packages() now allows type = "both" with repos = NULL if
+      it can infer the type of file.
+
+    * nchar(x, *) and nzchar(x) gain a new argument keepNA which
+      governs how the result for NAs in x is determined.  For nzchar()
+      in general and nchar() in the R 3.2.x series, the default remains
+      FALSE which is fully back compatible.  From R 3.3.0, nchar()'s
+      default will change to keepNA = NA and you are advised to
+      consider this for code portability.
+
+    * news() more flexibly extracts dates from package NEWS.Rd files.
+
+    * lengths(x) now also works (trivially) for atomic x and hence can
+      be used more generally as an efficient replacement of sapply(x,
+      length) and similar.
+
+    * The included version of PCRE has been updated to 8.37, a bug-fix
+      release.
+
+    * diag() no longer duplicates a matrix when extracting its
+      diagonal.
+
+    * as.character.srcref() gains an argument to allow characters
+      corresponding to a range of source references to be extracted.
+
+  BUG FIXES:
+
+    * acf() and ccf() now guarantee values strictly in [-1,1] (instead
+      of sometimes very slightly outside). PR#15832.
+
+    * as.integer("111111111111") now gives NA (with a warning) as it
+      does for the corresponding numeric or negative number coercions.
+      Further, as.integer(M + 0.1) now gives M (instead of NA) when M
+      is the maximal representable integer.
+
+    * On some platforms nchar(x, "c") and nchar(x, "w") would return
+      values (possibly NA) for inputs which were declared to be UTF-8
+      but were not, or for invalid strings without a marked encoding in
+      a multi-byte locale, rather than give an error.  Additional
+      checks have been added to mitigate this.
+
+    * apply(a, M, function(u) c(X = ., Y = .)) again has dimnames
+      containing "X" and "Y" (as in R < 3.2.0).
+
+    * (Windows only) In some cases, the --clean option to R CMD INSTALL
+      could fail.  (PR#16178)
+
+    * (Windows only) choose.files() would occasionally include
+      characters from the result of an earlier call in the result of a
+      later one.  (PR#16270)
+
+    * A change in RSiteSearch() in R 3.2.0 caused it to submit invalid
+      URLs.  (PR#16329)
+
+    * Rscript and command line R silently ignored incomplete statements
+      at the end of a script; now they are reported as parse errors.
+      (PR#16350)
+
+    * Parse data for very long strings was not stored.  (PR#16354)
+
+    * plotNode(), the workhorse of the plot method for "dendrogram"s is
+      no longer recursive, thanks to Suharto Anggono, and hence also
+      works for deeply nested dendrograms.  (PR#15215)
+
+    * The parser could overflow internally when given numbers in
+      scientific format with extremely large exponents.  (PR#16358)
+
+    * If the CRAN mirror was not set, install.packages(type = "both")
+      and related functions could repeatedly query the user for it.
+      (Part of PR#16362)
+
+    * The low-level functions .rowSums() etc. did not check the length
+      of their argument, so could segfault. (PR#16367)
+
+    * The quietly argument of library() is now correctly propagated
+      from .getRequiredPackages2().
+
+    * Under some circumstances using the internal PCRE when building R
+      from source would cause external libs such as -llzma to be
+      omitted from the main link.
+
+    * The .Primitive default methods of the logic operators, i.e., !, &
+      and |, now give correct error messages when appropriate, e.g.,
+      for `&`(TRUE) or `!`().  (PR#16385)
+
+    * cummax(x) now correctly propagates NAs also when x is of type
+      integer and begins with an NA.
+
+    * summaryRprof() could fail when the profile contained only two
+      records.  (PR#16395)
+
+    * HTML vignettes opened using vignette() did not support links into
+      the rest of the HTML help system.  (Links worked properly when
+      the vignette was opened using browseVignettes() or from within
+      the help system.)
+
+    * arima(*, xreg = .) (for d >= 1) computes estimated variances
+      based on a the number of effective observations as in R version
+      3.0.1 and earlier.  (PR#16278)
+
+    * slotNames(.) is now correct for "signature" objects (mostly used
+      internally in methods).
+
+    * On some systems, the first string comparison after a locale
+      change would result in NA.
+
+CHANGES IN R 3.2.0:
+
+  NEW FEATURES:
+
+    * anyNA() gains a recursive argument.
+
+    * When x is missing and names is not false (including the default
+      value), Sys.getenv(x, names) returns an object of class "Dlist"
+      and hence prints tidily.
+
+    * (Windows.)  shell() no longer consults the environment variable
+      SHELL: too many systems have been encountered where it was set
+      incorrectly (usually to a path where software was compiled, not
+      where it was installed).  R_SHELL, the preferred way to select a
+      non-default shell, can be used instead.
+
+    * Some unusual arguments to embedFonts() can now be specified as
+      character vectors, and the defaults have been changed
+      accordingly.
+
+    * Functions in the Summary group duplicate less.  (PR#15798)
+
+    * (Unix-alikes.) system(cmd, input = ) now uses
+      'shell-execution-environment' redirection, which will be more
+      natural if cmd is not a single command (but requires a
+      POSIX-compliant shell). (Wish of PR#15508)
+
+    * read.fwf() and read.DIF() gain a fileEncoding argument, for
+      convenience.
+
+    * Graphics devices can add attributes to their description in
+      .Device and .Devices.  Several of those included with R use a
+      "filepath" attribute.
+
+    * pmatch() uses hashing in more cases and so is faster at the
+      expense of using more memory. (PR#15697)
+
+    * pairs() gains new arguments to select sets of variables to be
+      plotted against each other.
+
+    * file.info(, extra_cols = FALSE) allows a minimal set of columns
+      to be computed on Unix-alikes: on some systems without
+      properly-configured caching this can be significantly faster with
+      large file lists.
+
+    * New function dir.exists() in package base to test efficiently
+      whether one or more paths exist and are directories.
+
+    * dput() and friends gain new controls hexNumeric and digits17
+      which output double and complex quantities as, respectively,
+      binary fractions (exactly, see sprintf("%a")) and as decimals
+      with up to 17 significant digits.
+
+    * save(), saveRDS() and serialize() now support ascii = NA which
+      writes ASCII files using sprintf("%a") for double/complex
+      quantities.  This is read-compatible with ascii = TRUE but avoids
+      binary->decimal->binary conversions with potential loss of
+      precision.  Unfortunately the Windows C runtime's lack of C99
+      compliance means that the format cannot be read correctly there
+      in R before 3.1.2.
+
+    * The default for formatC(decimal.mark =) has been changed to be
+      getOption("OutDec"); this makes it more consistent with format()
+      and suitable for use in print methods, e.g. those for classes
+      "density", "ecdf", "stepfun" and "summary.lm".
+
+      getOption("OutDec") is now consulted by the print method for
+      class "kmeans", by cut(), dendrogram(), plot.ts() and quantile()
+      when constructing labels and for the report from legend(trace =
+      TRUE).
+
+      (In part, wish of PR#15819.)
+
+    * printNum() and hence format() and formatC() give a warning if
+      big.mark and decimal.mark are set to the same value (period and
+      comma are not uncommonly used for each, and this is a check that
+      conventions have not got mixed).
+
+    * merge() can create a result which uses long vectors on 64-bit
+      platforms.
+
+    * dget() gains a new argument keep.source which defaults to FALSE
+      for speed (dput() and dget() are most often used for data objects
+      where this can make dget() many times faster).
+
+    * Packages may now use a file of common macro definitions in their
+      help files, and may import definitions from other packages.
+
+    * A number of macros have been added in the new share/Rd directory
+      for use in package overview help pages, and promptPackage() now
+      makes use of them.
+
+    * tools::parse_Rd() gains a new permissive argument which converts
+      unrecognized macros into text.  This is used by
+      utils:::format.bibentry to allow LaTeX markup to be ignored.
+
+    * options(OutDec =) can now specify a multi-byte character, e.g.,
+      options(OutDec = "\u00b7") in a UTF-8 locale.
+
+    * is.recursive(x) is no longer true when x is an external pointer,
+      a weak reference or byte code; the first enables all.equal(x, x)
+      when x <- getClass(.).
+
+    * ls() (aka objects()) and as.list.environment() gain a new
+      argument sorted.
+
+    * The "source" attribute (which has not been added to functions by
+      R since before R version 2.14.0) is no longer treated as special.
+
+    * Function returnValue() has been added to give on.exit() code
+      access to a function's return value for debugging purposes.
+
+    * crossprod(x, y) allows more matrix coercions when x or y are
+      vectors, now equalling t(x) %*% y in these cases (also reported
+      by Radford Neal).  Similarly, tcrossprod(x,y) and %*% work in
+      more cases with vector arguments.
+
+    * Utility function dynGet() useful for detecting cycles, aka
+      infinite recursions.
+
+    * The byte-code compiler and interpreter include new instructions
+      that allow many scalar subsetting and assignment and scalar
+      arithmetic operations to be handled more efficiently. This can
+      result in significant performance improvements in scalar
+      numerical code.
+
+    * apply(m, 2, identity) is now the same as the matrix m when it has
+      _named_ row names.
+
+    * A new function debuggingState() has been added, allowing to
+      temporarily turn off debugging.
+
+    * example() gets a new optional argument run.donttest and
+      tools::Rd2ex() a corresponding commentDonttest, with a default
+      such that example(..) in help examples will run \donttest code
+      only if used interactively (a change in behaviour).
+
+    * rbind.data.frame() gains an optional argument make.row.names, for
+      potential speedup.
+
+    * New function extSoftVersion() to report on the versions of
+      third-party software in use in this session.  Currently reports
+      versions of zlib, bzlib, the liblzma from xz, PCRE, ICU, TRE and
+      the iconv implementation.
+
+      A similar function grSoftVersion() in package grDevices reports
+      on third-party graphics software.
+
+      Function tcltk::tclVersion() reports the Tcl/Tk version.
+
+    * Calling callGeneric() without arguments now works with primitive
+      generics to some extent.
+
+    * vapply(x, FUN, FUN.VALUE) is more efficient notably for large
+      length(FUN.VALUE); as extension of PR#16061.
+
+    * as.table() now allows tables with one or more dimensions of
+      length 0 (such as as.table(integer())).
+
+    * names(x) <- NULL now clears the names of call and ... objects.
+
+    * library() will report a warning when an insufficient dependency
+      version is masking a sufficient one later on the library search
+      path.
+
+    * A new plot() method for class "raster" has been added.
+
+    * New check_packages_in_dir_changes() function in package tools for
+      conveniently analyzing how changing sources impacts the check
+      results of their reverse dependencies.
+
+    * Speed-up from Peter Haverty for ls() and
+      methods:::.requirePackage() speeding up package loading.
+      (PR#16133)
+
+    * New get0() function, combining exists() and get() in one call,
+      for efficiency.
+
+    * match.call() gains an envir argument for specifying the
+      environment from which to retrieve the ... in the call, if any;
+      this environment was wrong (or at least undesirable) when the
+      definition argument was a function.
+
+    * topenv() has been made .Internal() for speedup, based on Peter
+      Haverty's proposal in PR#16140.
+
+    * getOption() no longer calls options() in the main case.
+
+    * Optional use of libcurl (version 7.28.0 from Oct 2012 or later)
+      for Internet access:
+
+        * capabilities("libcurl") reports if this is available.
+
+        * libcurlVersion() reports the version in use, and other
+          details of the "libcurl" build including which URL schemes it
+          supports.
+
+        * curlGetHeaders() retrieves the headers for http://, https://,
+          ftp:// and ftps:// URLs: analysis of these headers can
+          provide insights into the `existence' of a URL (it might for
+          example be permanently redirected) and is so used in R CMD
+          check --as-cran.
+
+        * download.file() has a new optional method "libcurl" which
+          will handle more URL schemes, follow redirections, and allows
+          simultaneous downloads of multiple URLs.
+
+        * url() has a new method "libcurl" which handles more URL
+          schemes and follows redirections.  The default method is
+          controlled by a new option url.method, which applies also to
+          the opening of URLs _via_ file() (which happens implicitly in
+          functions such as read.table.)
+
+        * When file() or url() is invoked with a https:// or ftps://
+          URL which the current method cannot handle, it switches to a
+          suitable method if one is available.
+
+    * (Windows.) The DLLs internet.dll and internet2.dll have been
+      merged.  In this version it is safe to switch (repeatedly)
+      between the internal and Windows internet functions within an R
+      session.
+
+      The Windows internet functions are still selected by flag
+      --internet2 or setInternet2().  This can be overridden for an
+      url() connection _via_ its new method argument.
+
+      download.file() has new method "wininet", selected as the default
+      by --internet2 or setInternet2().
+
+    * parent.env<- can no longer modify the parent of a locked
+      namespace or namespace imports environment.  Contributed by Karl
+      Millar.
+
+    * New function isNamespaceLoaded() for readability and speed.
+
+    * names(env) now returns all the object names of an environment
+      env, equivalently to ls(env, all.names = TRUE, sorted = FALSE)
+      and also to the names of the corresponding list,
+      names(as.list(env, all.names = TRUE)).  Note that although
+      names() returns a character vector, the names have no particular
+      ordering.
+
+    * The memory manager now grows the heap more aggressively. This
+      reduces the number of garbage collections, in particular while
+      data or code are loaded, at the expense of slightly increasing
+      the memory footprint.
+
+    * New function trimws() for removing leading/trailing whitespace.
+
+    * cbind() and rbind() now consider S4 inheritance during S3
+      dispatch and also obey deparse.level.
+
+    * cbind() and rbind() will delegate recursively to methods::cbind2
+      (methods::rbind2) when at least one argument is an S4 object and
+      S3 dispatch fails (due to ambiguity).
+
+    * (Windows.)  download.file(quiet = FALSE) now uses text rather
+      than Windows progress bars in non-interactive use.
+
+    * New function hsearch_db() in package utils for building and
+      retrieving the help search database used by help.search(), along
+      with functions for inspecting the concepts and keywords in the
+      help search database.
+
+    * New function .getNamespaceInfo(), a no-check version of
+      getNamespaceInfo() mostly for internal speedups.
+
+    * The help search system now takes \keyword entries in Rd files
+      which are not standard keywords (as given in KEYWORDS in the R
+      documentation directory) as concepts.  For standard keyword
+      entries the corresponding descriptions are additionally taken as
+      concepts.
+
+    * New lengths() function for getting the lengths of all elements in
+      a list.
+
+    * New function toTitleCase() in package tools, tailored to package
+      titles.
+
+    * The matrix methods of cbind() and rbind() allow matrices as
+      inputs which have 2^31 or more elements.  (For cbind(), wish of
+      PR#16198.)
+
+    * The default method of image() has an explicit check for a numeric
+      or logical matrix (which was always required).
+
+    * URLencode() will not by default encode further URLs which appear
+      to be already encoded.
+
+    * BIC(mod) and BIC(mod, mod2) now give non-NA numbers for arima()
+      fitted models, as nobs(mod) now gives the number of "used"
+      observations for such models.  This fixes PR#16198, quite
+      differently than proposed there.
+
+    * The print() methods for "htest", "pairwise.htest" and
+      "power.htest" objects now have a digits argument defaulting to (a
+      function of) getOption("digits"), and influencing all printed
+      numbers coherently.  Unavoidably, this changes the display of
+      such test results in some cases.
+
+    * Code completion for namespaces now recognizes all loaded
+      namespaces, rather than only the ones that are also attached.
+
+    * The code completion mechanism can now be replaced by a
+      user-specified completer function, for (temporary) situations
+      where the usual code completion is inappropriate.
+
+    * unzip() will now warn if it is able to detect truncation when
+      unpacking a file of 4GB or more (related to PR#16243).
+
+    * methods() reports S4 in addition to S3 methods; output is
+      simplified when the class argument is used.  .S3methods() and
+      methods::.S4methods() report S3 and S4 methods separately.
+
+    * Higher order functions such as the apply functions and Reduce()
+      now force arguments to the functions they apply in order to
+      eliminate undesirable interactions between lazy evaluation and
+      variable capture in closures.  This resolves PR#16093.
+
+  INSTALLATION and INCLUDED SOFTWARE:
+
+    * The \donttest sections of R's help files can be tested by
+      make check TEST_DONTTEST=TRUE .
+
+    * It is possible to request the use of system valgrind headers
+      _via_ configure option --with-system-valgrind-headers: note the
+      possible future incompatibility of such headers discussed in the
+      'R Installation and Administration' manual. (Wish of PR#16068.)
+
+    * The included version of liblzma has been updated to xz-utils
+      5.0.7 (minor bug fixes from 5.0.5).
+
+    * configure options --with-system-zlib, --with-system-bzlib and
+      --with-system-pcre are now the default.  For the time being there
+      is fallback to the versions included in the R sources if no
+      system versions are found or (unlikely) if they are too old.
+
+      Linux users should check that the -devel or -dev versions of
+      packages zlib, bzip2/libbz2 and pcre as well as
+      xz-devel/liblzma-dev (or similar names) are installed.
+
+    * configure by default looks for the texi2any script from texinfo
+      5.1 or later, rather than the makeinfo program.  (makeinfo is a
+      link to the Perl script texi2any in texinfo 5.x.)
+
+    * R CMD INSTALL gains an option --built-timestamp=STAMP allowing
+      100% reproducible package building, thanks to Dirk Eddelbuettel.
+
+  UTILITIES:
+
+    * There is support for testing the \dontrun and \donttest parts of
+      examples in packages.
+
+      tools::testInstalledPackage() accepts new arguments
+      commentDontrun = FALSE and commentDonttest = FALSE.
+
+      R CMD check gains options --run-dontrun and --run-donttest.
+
+    * The HTML generated by tools::Rd2HTML() and tools::toHTML()
+      methods is now 'XHTML 1.0 Strict'.
+
+    * The compiler package's utility function setCompilerOptions() now
+      returns the old values invisibly. The initial optimization level
+      can also be set with the environment variable
+      R_COMPILER_OPTIMIZE.
+
+    * R CMD build adds a NeedsCompilation field if one is not already
+      present in the DESCRIPTION file.
+
+    * R CMD check gains option --test-dir to specify an alternative set
+      of tests to run.
+
+    * R CMD check will now by default continue with testing after many
+      types of errors, and will output a summary count of errors at the
+      end if any have occurred.
+
+    * R CMD check now checks that the Title and Description fields are
+      correctly terminated.
+
+    * R CMD check --as-cran now:
+
+        * checks a README.md file can be processed: this needs pandoc
+          installed.
+
+        * checks the existence and accessibility of URLs in the
+          DESCRIPTION, CITATION, NEWS.Rd and README.md files and in the
+          help files (provided the build has libcurl support).
+
+        * reports non-ASCII characters in R source files when there is
+          no package encoding declared in the DESCRIPTION file.
+
+        * reports (apparent) S3 methods exported but not registered.
+
+        * reports overwriting registered S3 methods from
+          base/recommended packages.  (Such methods are replaced in the
+          affected package for the rest of the session, even if the
+          replacing namespace is unloaded.)
+
+        * reports if the Title field does not appear to be in title
+          case (see 'Writing R Extensions': there may be false
+          positives, but note that technical words should be
+          single-quoted and will then be accepted).
+
+      Most of these checks can also be selected by environment
+      variables: see the 'R Internals' manual.
+
+  C-LEVEL FACILITIES:
+
+    * New C API utility logspace_sum(logx[], n).
+
+    * Entry points rbinom_mu, rnbinom_mu and rmultinom are remapped (by
+      default) to Rf_rbinom_mu etc.  This requires packages using them
+      to be re-installed.
+
+    * .C(DUP = FALSE) and .Fortran(DUP = FALSE) are now ignored, so
+      arguments are duplicated if DUP = TRUE would do so.  As their
+      help has long said, .Call() is much preferred.
+
+    * New entry point R_allocLD, like R_alloc but guaranteed to have
+      sufficient alignment for long double pointers.
+
+    * isPairList() now returns TRUE for DOTSXP.
+
+  WINDOWS BUILD CHANGES:
+
+  A number of changes to the Windows build system are in development.
+  The following are currently in place.
+
+    * Installation using external binary distributions of zlib, bzip2,
+      liblzma, pcre, libpng, jpeglib and libtiff is now required, and
+      the build instructions have been revised.
+
+    * A new make target rsync-extsoft has been added to obtain copies
+      of the external libraries from CRAN.
+
+    * Building the manuals now requires texi2any from texinfo 5.1 or
+      later.  CRAN binary builds include the manuals, but by default
+      builds from source will not, and they will be accessed from CRAN.
+      See the comments in src/gnuwin32/MkRules.dist for how to specify
+      the location of texi2any.
+
+    * (Windows) Changes have been made to support an experimental
+      Windows toolchain based on GCC 4.9.2.  The default toolchain
+      continues to be based on GCC 4.6.3, as the new toolchain is not
+      yet stable enough.  A change to a new toolchain is expected
+      during the R 3.2.x lifetime.
+
+  PACKAGE INSTALLATION:
+
+    * (Windows) The use of macro ZLIB_LIBS in file src/Makevars.win
+      (which has not been documented for a long time) now requires an
+      external libz.a to be available (it is part of the 'goodies' used
+      to compile Windows binary packages).  It would be simpler to use
+      -lz instead.
+
+    * The default for option pkgType on platforms using binary packages
+      is now "both", so source packages will be tried if binary
+      versions are not available or not up to date.
+
+      There are options for what install.packages(type = "both")
+      (possibly called _via_ update.packages()) will do if compilation
+      of a source package is desirable: see ?options (under utils).
+
+      If you intend not to accept updates as source packages, you
+      should use update.packages(type = "binary").
+
+  DEPRECATED AND DEFUNCT:
+
+    * download.file(method = "lynx") is defunct.
+
+    * Building R using the included versions of zlib, bzip2, xz and
+      PCRE is deprecated: these are frozen (bar essential bug-fixes)
+      and will be removed for R 3.3.0.
+
+    * The configure option --with-valgrind-instrumentation=3 has been
+      withdrawn, as it did not work with recent valgrind headers: it is
+      now treated as level 2.
+
+    * The MethodsList class in package methods had been deprecated in R
+      2.11.0 and is defunct now.  Functions using it are defunct if
+      they had been deprecated in R 2.11.0, and are deprecated now,
+      otherwise.
+
+  BUG FIXES:
+
+    * Fixed two obscure bugs in pairlist subassignment, reported by
+      Radford Neal as part of pqR issue 16.
+
+    * Fixes for bugs in handling empty arguments and argument matching
+      by name in log().
+
+    * all.equal() gains methods for environments and refClasses.
+
+    * [<- and [[<- gain S4 data.frame methods to avoid corruption of S4
+      class information by the S3 methods.
+
+    * callNextMethod() should now work within a .local call when ... is
+      absent from formals(.local).
+
+    * dput(pairlist(x)) generates a call to the pairlist constructor
+      instead of the list constructor.
+
+    * Fix missing() when arguments are propagated through ... .
+      (PR#15707)
+
+    * eigen(m) now defaults to symmetric = TRUE even when the dimnames
+      are asymmetric if the matrix is otherwise symmetric.  (PR#16151)
+
+    * Fix issues with forwarding ... through callGeneric() and
+      callNextMethod().  (PR#16141)
+
+    * callGeneric() now works after a callNextMethod().
+
+    * Subclass information is kept consistent when replacing an
+      ordinary S4 class with an "old class" _via_ the S4Class argument
+      to setOldClass(). Thus, for example, a data.frame is valid for a
+      list argument in the signature, and a factor is valid for vector
+      arguments.
+
+    * In qbeta() the inversion of pbeta() is much more sophisticated.
+      This works better in corner cases some of which failed completely
+      previously (PR#15755), or were using too many iterations.
+
+    * Auto-printing no longer duplicates objects when printing is
+      dispatched to a method.
+
+    * kmeans(x, k) would fail when nrow(x) >= 42949673.  (Comment 6 of
+      PR#15364)
+
+    * 'Abbreviated' locale-specific day and month names could have been
+      truncated in those rare locales where there are the same as the
+      full names.
+
+    * An irrelevant warning message from updating subclass information
+      was silenced (the namespace would not be writable in this case).
+
+CHANGES IN R 3.1.3:
+
+  NEW FEATURES:
+
+    * The internal method of download.file() can now handle files
+      larger than 2GB on 32-bit builds which support such files (tested
+      on 32-bit R running on 64-bit Windows).
+
+    * kruskal.test() warns on more types of suspicious input.
+
+    * The as.dendrogram() method for "hclust" objects gains a check
+      argument protecting against memory explosion for invalid inputs.
+
+    * capabilities() has a new item long.double which indicates if the
+      build uses a long double type which is longer than double.
+
+    * nlm() no longer modifies the callback argument in place (a new
+      vector is allocated for each invocation, which mimics the
+      implicit duplication that occurred in R < 3.1.0); note that this
+      is a change from the previously documented behavior. (PR#15958)
+
+    * icuSetCollate() now accepts locale = "ASCII" which uses the basic
+      C function strcmp and so collates strings byte-by-byte in
+      numerical order.
+
+    * sessionInfo() tries to report the OS version in use (not just
+      that compiled under, and including details of Linux
+      distributions).
+
+    * model.frame() (used by lm() and many other modelling functions)
+      now warns when it drops contrasts from factors.  (Wish of
+      PR#16119)
+
+    * install.packages() and friends now accept the value type =
+      "binary" as a synonym for the native binary type on the platform
+      (if it has one).
+
+    * Single source or binary files can be supplied for
+      install.packages(type = "both") and the appropriate type and
+      repos = NULL will be inferred.
+
+    * New function pcre_config() to report on some of the configuration
+      options of the version of PCRE in use.  In particular, this
+      reports if regular expressions using \p{xx} are supported.
+
+    * (Windows.) download.file(cacheOK = FALSE) is now supported when
+      internet2.dll is used.
+
+    * browseURL() has been updated to work with Firefox 36.0 which has
+      dropped support for the -remote interface.
+
+  INSTALLATION and INCLUDED SOFTWARE:
+
+    * The included version of PCRE has been updated to 8.36.
+
+    * configure accepts MAKEINFO=texi2any as another way to ensure
+      texinfo 5.x is used when both 5.x and 4.x are installed.
+
+  UTILITIES:
+
+    * R CMD check now checks the packages used in \donttest sections of
+      the examples are specified in the DESCRIPTION file.  (These are
+      needed to run the examples interactively.)
+
+    * R CMD check checks for the undeclared use of GNU extensions in
+      Makefiles, and for Makefiles with a missing final linefeed.
+
+      R CMD build will correct line endings in all Makefiles, not just
+      those in the src directory.
+
+    * R CMD check notes uses of library() and require() in package
+      code: see the section 'Suggested packages' of 'Writing R
+      Extensions' for good practice.
+
+  DEPRECATED AND DEFUNCT:
+
+    * The configure option --with-valgrind-instrumentation=3 is
+      deprecated and will be removed in R 3.2.0.
+
+  BUG FIXES:
+
+    * (Windows.) Rscript.exe was missing a manifest specifying the
+      modern style for common controls (e.g., the download progress
+      bar).
+
+    * If a package had extra documentation files but no vignette, the
+      HTML help system produced an empty index page.
+
+    * The parser now gives an error if a null character is included in
+      a string using Unicode escapes. (PR#16046)
+
+    * qr.Q() failed on complex arguments due to pre-3.0(!) typo.
+      (PR#16054)
+
+    * abs() failed with named arguments when the argument was complex.
+      (PR#16047)
+
+    * "noquote" objects may now be used as columns in data frames.
+      (PR#15997)
+
+    * Some values with extremely long names were printed incorrectly.
+      (PR#15999)
+
+    * Extremely large exponents on zero expressed in scientific
+      notation (e.g. 0.0e50000) could give NaN.  (PR#15976)
+
+    * download.file() reported downloaded sizes as 0KB if less than
+      1MB, only for R 3.1.2 and only on big-endian platforms.
+
+    * prompt() did not escape percent signs in the automatically
+      generated usage section of help files.
+
+    * drop.terms() dropped some of the attributes of the object it was
+      working with.  (PR#16029)
+
+    * (Windows.) The command completion in Rgui.exe messed up the
+      console.  (PR#15791)
+
+    * (Windows.) The choose.files() command returned a blank string
+      when the user asked for a single file but cancelled the request.
+      (PR#16074)
+
+    * Math2 S4 group generics failed to correctly dispatch "structure"-
+      and "nonStructure"-derived classes.
+
+    * loadNamespace() imposed undocumented restrictions on the
+      versionCheck parameter.  (Reported by Geoff Lee.)
+
+    * Rare over-runs detected by AddressSanitizer in substr() and its
+      replacement version have been avoided.
+
+      _Inter alia_ that fix gives the documented behaviour for
+      substr(x, 1, 2) <- "" (subsequently reported as PR#16214).
+
+    * Loading packages incorrectly defining an S4 generic followed by a
+      function of the same name caused an erroneous cyclic namespace
+      dependency error.
+
+    * Declared vignette encodings are now always passed to the vignette
+      engine.
+
+    * Port Tomas Kalibera's fix from R-devel that restores the
+      loadMethod() fast path, effectively doubling the speed of S4
+      dispatch.
+
+    * power.t.test() and power.prop.test() now make use of the
+      extendInt option of uniroot() and hence work in more extreme
+      cases.  (PR#15792)
+
+    * If a package was updated and attached when its namespace was
+      already loaded, it could end up with parts from one version and
+      parts from the other.  (PR#16120)
+
+    * tools:::.Rdconv() didn't accept --encoding= due to a typo.
+      (PR#16121)
+
+    * Unix-alike builds without a suitable makeinfo were documented to
+      link the missing HTML manuals to CRAN, but did not.
+
+    * save(*, ascii=TRUE) and load() now correctly deal with NaN's.
+      (PR#16137)
+
+    * split.Date() retains fractional representations while avoiding
+      incomplete class propagation.
+
+    * R_ext/Lapack.h had not been updated for changes made by LAPACK to
+      the argument lists of its (largely internal) functions dlaed2 and
+      dlaed3.  (PR#16157)
+
+    * RShowDoc("NEWS", "txt") had not been updated for the layout
+      changes of R 3.1.0.
+
+    * The xtfrm() method for class "Surv" has been corrected and its
+      description expanded.
+
+    * mode(x) <- y would incorrectly evaluate x before changing its
+      mode. (PR#16215)
+
+    * besselJ(1, 2^64) and besselY(..) now signal a warning, returning
+      NaN instead of typically segfaulting. (Issue 3 of PR#15554)
+
+    * HTML conversion of \href markup in .Rd files did not remove the
+      backslash from \% and so gave an invalid URL.  In a related
+      change, the \ escape is now required in such URLs.
+
+CHANGES IN R 3.1.2:
+
+  NEW FEATURES:
+
+    * embedFonts() now defaults to format = "ps2write" for .ps and .eps
+      files.  This is available in Ghostscript 9.x (since 2010) whereas
+      the previous default, format = "pswrite", was removed in
+      Ghostscript 9.10.
+
+    * For consistency with [dpqr]norm(), [dp]lnorm(sdlog = 0) model a
+      point mass at exp(mulog) rather than return NaN (for an error).
+
+    * capabilities() now reports if ICU is compiled in for use for
+      collation (it is only actually used if a suitable locale is set
+      for collation, and never for a C locale).
+
+    * (OS X only.) Package tcltk checks when loaded if it is linked
+      against the CRAN X11-based Tcl/Tk and if so that the Tcl/Tk
+      component and the X11 libraries are installed.  This allows more
+      informative error messages to be given advising the installation
+      of the missing component or of XQuartz.
+
+      The X11() device and X11-based versions of the data editor and
+      viewer (invoked by edit() and View() for data frames and matrices
+      from command-line R) check that the X11 libraries are installed
+      and if not advises installing XQuartz.
+
+    * icuSetCollate() allows locale = "default", and locale = "none" to
+      use OS services rather than ICU for collation.
+
+      Environment variable R_ICU_LOCALE can be used to set the default
+      ICU locale, in case the one derived from the OS locale is
+      inappropriate (this is currently necessary on Windows).
+
+    * New function icuGetCollate() to report on the ICU collation
+      locale in use (if any).
+
+    * utils::URLencode() was updated to use unreserved and reserved
+      characters from RFC 3986 (<URL:
+      http://tools.ietf.org/html/rfc3986>) instead of RFC 1738.
+
+    * unique(warnings()) and c(warnings()) are now supported.
+
+    * The Bioconductor 'version' used by setRepositories() now defaults
+      to 3.0. (It can be set at runtime _via_ environment variable
+      R_BIOC_VERSION.)
+
+    * Omegahat is no longer listed as providing Windows binary
+      packages, e.g. by setRepositories().  It has no binary packages
+      available for R 3.1.x and those for earlier versions were 32-bit
+      only.
+
+  INSTALLATION and INCLUDED SOFTWARE:
+
+    * The configure script reports on the more important
+      capabilities/options which will not be compiled in.
+
+      More types of external BLAS are recognized by name in that
+      report.
+
+    * When building R as a shared library, the -L${R_HOME}/lib${R_ARCH}
+      flag is placed earlier in the link commands used during
+      installation and when packages are installed: this helps ensure
+      that the current build has priority if an R shared library has
+      already been installed by e.g. install-libR in a library
+      mentioned in LDFLAGS (and not in 'your system's library
+      directory' as documented). (Wish of PR#15790.)
+
+    * LaTeX package upquote is no longer required for R's use of
+      inconsolata.
+
+    * (Windows only) If both 32- and 64-bit versions of R are
+      installed, the bin/R.exe and bin/Rscript.exe executables now run
+      64-bit R.  (To run 32-bit R, overwrite these files with copies of
+      bin/i386/Rfe.exe.)
+
+  UTILITIES:
+
+    * Running R CMD check with _R_CHECK_DEPENDS_ONLY_ true now makes
+      the VignetteBuilder packages available even if they are listed in
+      Suggests, since they are needed to recognise and process
+      non-Sweave vignettes.
+
+    * R CMD check now reports empty importFrom declarations in a
+      NAMESPACE file, as these are common errors (writing
+      importFrom(Pkg) where import(Pkg) was intended).
+
+    * R CMD check now by default checks code usage directly on the
+      package namespace without loading and attaching the package and
+      its suggests and enhances.  For good practice with packages in
+      the Suggests field, see SS1.1.3.1 of 'Writing R Extensions'.  For
+      use of lazy-data objects in the package's own code, see ?data.
+
+  BUG FIXES:
+
+    * dmultinom() did not handle non-finite probabilities correctly.
+
+    * prettyNum(x, zero.print=*) now also works when x contains NAs.
+
+    * A longstanding bug exhibited by nlminb() on Windows was traced to
+      a compiler bug in gcc 4.6.3; a workaround has been put in place.
+      (PR#15244 and PR#15914).
+
+    * Rendering of \command in HTML versions of help pages has been
+      improved: this is particularly evident on the help page for
+      INSTALL.
+
+    * as.hexmode(x) and as.octmode(x) now behave correctly for some
+      numeric x, e.g., c(NA, 1) or c(1, pi).
+
+    * drop1() failed if the scope argument had no variables to drop.
+      (PR#15935)
+
+    * edit() (and hence fix()) failed if an object had a non-character
+      attribute named "source" (an attribute that had been used in R
+      prior to version 2.14.0).
+
+    * callGeneric() could fail if the generic had ... as a formal
+      argument. (PR#15937).
+
+    * Forking in package parallel called C entry point exit in the
+      child.  This was unsafe (_exit should have been called), and
+      could flush stdin of the main R process (seen most often on
+      Solaris).
+
+      As good practice, stdout is now flushed before forking a child.
+
+    * R objects such as list(`a\b` = 1) now print correctly.
+
+    * getAnywhere("C_pbinom") now returns correctly a single object
+      (rather than unlisting it).
+
+    * The confint() method for nls() fits failed it these has specified
+      parameter limits despite using an algorithm other than "port".
+      (PR#15960)
+
+    * Subclassing an S4 class failed if the class required arguments to
+      the generator, through its initialize() method.
+
+    * removeSource() did not properly handle expressions containing
+      arguments that were supplied as missing, e.g.  x[i,]. (PR#15957)
+
+    * as.environment(list()) now works, and as.list() of such an
+      environment is now the same as list().
+
+    * Several tcltk functions failed when run in unusual environments.
+      (PR#15970)
+
+    * options(list()) now works (trivially). (PR#15979)
+
+    * merge(<dendrogram>, ..) now works correctly for two `independent'
+      dendrograms (PR#15648), and still compatibly via adjust = "auto"
+      e.g. for two branches of an existing dendrogram.
+
+    * The plot method for "hclust" objects gets an optional argument
+      check; when that is true (the default) it checks more carefully
+      for valid input.
+
+    * (Windows only) If a user chose to install 64 bit R but not 32 bit
+      R, the bin/R and bin/Rscript executables failed to run.
+      (PR#15981)
+
+    * Various possible buffer overruns have been prevented, and missed
+      memory protection added. (PR#15990)
+
+    * Rscript no longer passes --args to R when there are no extra
+      ("user") arguments.
+
+    * objects like getClass("refClass")@prototype now print() and str()
+      without error.
+
+    * identical() now also looks at the S4 bit.
+
+    * hist(x, breaks) is more robust in adding a small fuzz to few
+      breaks when some are very large. (PR#15988)
+
+    * sub() and gsub() did not handle regular expressions like "\s{2,}"
+      properly if the text contained NA or non-ASCII elements in a
+      UTF-8 locale.  Part of this was due to a bug in the TRE library.
+      (PR#16009)
+
+    * RShowDoc("NEWS") now displays the PDF version.
+
+    * Matrices and arrays with last dimension zero did not print at all
+      or incompletely.  (PR#16012)
+
+    * plot.histogram() and hence hist() now respect the xaxs, yaxs and
+      lab graphics parameters.  (PR#16021)
+
+    * bw.SJ(x) and other bw.*() no longer segfault when x contains
+      non-finite values. (PR#16024)
+
+    * R CMD Rd2pdf unintentionally ignored its --os option.
+
+    * The internal method of download.file() was not reporting file
+      sizes and progress correctly on files larger than 2GB (inherited
+      from libxml2).  This is corrected for 64-bit builds (32-bit
+      platforms may not support such files, but where possible will be
+      supported in future versions of R).
+
+    * Work around a bug in OS X Yosemite where key environment
+      variables may be duplicated causing issues in subprocesses. The
+      duplicates are now removed on R startup (via Rprofile).
+      (PR#16042)
+
+    * Adjust X11 auto-launch detection in DISPLAY on OS X to recognize
+      latest XQuartz.
+
+CHANGES IN R 3.1.1:
+
+  NEW FEATURES:
+
+    * When attach() reports conflicts, it does so compatibly with
+      library() by using message().
+
+    * R CMD Sweave no longer cleans any files by default, compatibly
+      with versions of R prior to 3.1.0.  There are new options
+      --clean, --clean=default and --clean=keepOuts.
+
+    * tools::buildVignette() and tools::buildVignettes() with clean =
+      FALSE no longer remove any created files.  buildvignette() gains
+      a keep argument for more cleaning customization.
+
+    * The Bioconductor 'version' used by setRepositories() can now be
+      set by environment variable R_BIOC_VERSION at runtime, not just
+      when R is installed.  (It has been stated that Bioconductor will
+      switch from 'version' 2.14 to 'version' 3.0 during the lifetime
+      of the R 3.1 series.)
+
+    * Error messages from bugs in embedded Sexpr code in Sweave
+      documents now report the source location.
+
+    * type.convert(), read.table() and similar read.*() functions get a
+      new numerals argument, specifying how numeric input is converted
+      when its conversion to double precision loses accuracy.  The
+      default value, "allow.loss" allows accuracy loss, as in R
+      versions before 3.1.0.
+
+    * For some compilers, integer addition could overflow without a
+      warning.  R's internal code for both integer addition and
+      subtraction is more robust now.  (PR#15774)
+
+    * The function determining the default number of knots for
+      smooth.spline() is now exported, as .nknots.smspl().
+
+    * dbeta(, a,b), pbeta(), qbeta() and rbeta() are now defined also
+      for a = 0, b = 0, or infinite a and b (where they typically
+      returned NaN before).
+
+    * Many package authors report that the RStudio graphics device does
+      not work correctly with their package's use of dev.new().  The
+      new option dev.new(noRStudioGD = TRUE) replaces the RStudio
+      override by the default device as selected by R itself, still
+      respecting environment variables R_INTERACTIVE_DEVICE and
+      R_DEFAULT_DEVICE.
+
+    * readRDS() now returns visibly.
+
+    * Modifying internal logical scalar constants now results in an
+      error instead of a warning.
+
+    * install.packages(repos = NULL) now accepts http:// or ftp:// URLs
+      of package archives as well as file paths, and will download as
+      required.  In most cases repos = NULL can be deduced from the
+      extension of the URL.
+
+    * The warning when using partial matching with the $ operator on
+      data frames is now only given when
+      options("warnPartialMatchDollar") is TRUE.
+
+    * Package help requests like package?foo now try the package foo
+      whether loaded or not.
+
+    * General help requests now default to trying all loaded packages,
+      not just those on the search path.
+
+    * Added a new function promptImport(), to generate a help page for
+      a function that was imported from another package (and presumably
+      re-exported, or help would not be needed).
+
+  INSTALLATION and INCLUDED SOFTWARE:
+
+    * configure option --with-internal-tzcode can now be used with
+      variable rsharedir.
+
+    * The included version of PCRE has been updated to 8.35.
+
+    * There is a new target make uninstall-libR to remove an installed
+      shared/static libR.
+
+      make install-libR now works if a sub-architecture is used,
+      although the user will need to specify libdir differently for
+      different sub-architectures.
+
+    * There is more extensive advice on which LaTeX packages are
+      required to install R or to make package manuals (as done by R
+      CMD check) in the 'Writing R Extensions' manual.
+
+    * Compilers/linkers were handling the visibility control in
+      src/extra/xz inconsistently (and apparently in some cases
+      incorrectly), so it has been simplified.  (PR#15327)
+
+    * (Windows) There is updated support for the use of ICU for
+      collation: see the 'R Installation and Administration Manual'.
+
+  BUG FIXES:
+
+    * dbinom(x, n), pbinom(), dpois(), etc, are slightly less
+      restrictive in checking if n is integer-valued.  (Wish of
+      PR#15734.)
+
+    * pchisq(x, df, ncp, log.p = TRUE) is more accurate and no longer
+      underflows for small x and ncp < 80, e.g, for pchisq(1e-5, df =
+      100, ncp = 1, log = TRUE).  (Based on PR#15635 and a suggestion
+      by Roby Joehanes.)
+
+    * The s ("step into") command in the debugger would cause R to step
+      into expressions evaluated there, not just into functions being
+      debugged.  (PR#15770)
+
+    * The C code used by strptime() rejected time-zone offsets of more
+      than +1200 (+1245, +1300 and +1400 can occur).  (PR#15768)
+
+    * (Windows only.)  png(type = "cairo", antialias = "gray") was not
+      accepted.  (PR#15760)
+
+    * Use of save(..., envir=) with named objects could fail.
+      (PR#15758)
+
+    * Sweave() mis-parsed Sexpr expressions that contained backslashes.
+      (PR#15779)
+
+    * The return value from options(foo = NULL) was not the previous
+      value of the option.  (PR#15781)
+
+    * enc2utf8() and enc2native() did not always mark the encoding of
+      the return values when it was known.
+
+    * dnbinom(x, size = <large>, mu, log = TRUE) no longer underflows
+      to -Inf for large mu, thanks to a suggestion from Alessandro
+      Mammana (MPI MolGen, Berlin).
+
+    * pbeta(x, a, b, log = TRUE) no longer behaves discontinuously (in
+      a small x-region) because of denormalized numbers.  Also,
+      pbeta(1-1e-12, 1e30, 1.001, log=TRUE) now terminates "in real
+      time".
+
+    * The "CRAN" filter (see available.packages()) no longer removes
+      duplicates other than of packages on CRAN, and does not fail if
+      there is no CRAN repository in getOption("repos").
+
+    * The device listing from dev2bitmap() and bitmap() was truncated
+      to 1000 characters: modern versions of GhostScript on most
+      platforms have many more devices.
+
+    * (Windows.)  Commands such as Sys.which() and pipe() which needed
+      to find the full path to a command could segfault if the 'long'
+      path name was much longer than the 'short' path name (which
+      Sys.which() returns), as the behaviour of the Windows API call
+      had changed.
+
+    * R CMD build will fail with an error if one of the packages
+      specified in the VignetteBuilder field is not installed.
+      (Without loading those packages it cannot be ascertained which
+      files are intended to be vignettes. This means that the
+      VignetteBuilder packages have to be installed for package
+      checking too.)  (Wish of PR#15775.)
+
+    * Misguided attempts to use chull() with non-finite points now give
+      an error (related to PR#15777).
+
+    * For a formula with exactly 32 variables the 32nd variable was
+      aliased to the intercept in some C-level computations of terms,
+      so that for example attempting to remove it would remove the
+      intercept instead (and leave a corrupt internal structure).
+      (PR#15735)
+
+    * anyDuplicated() silently returned wrong values when the first
+      duplicate was at an index which was too large to be stored in an
+      integer vector (although a lot of RAM and patience would have
+      been needed to encounter this).
+
+    * tools::Rd2ex(commentDontrun = FALSE) failed if the block had only
+      one line.
+
+    * Hexadecimal constants such as 0x110p-5L which were incorrectly
+      qualified by L were parsed incorrectly since R 3.0.0, with a
+      slightly garbled warning. (PR#15753)
+
+    * system() returned success on some platforms even if the system
+      was unable to launch a process. (PR#15796)
+
+    * (Windows Rgui console.)  Unbuffered output was sometimes not
+      output immediately if the prompt was not on the last line of the
+      console.
+
+    * The built-in help server did not declare the encoding for the
+      DESCRIPTION or other text files to be the package encoding, so
+      non-ASCII characters could be displayed incorrectly.
+
+    * R is now trying harder to not cleanup child processes that were
+      not spawned by mcparallel() on platforms that provide information
+      about the source process of the SIGCHLD signal. This allows 3rd
+      party libraries to manage the exit status of children that they
+      spawn without R interfering.
+
+    * mcmapply() was only parallelizing if the number of jobs was
+      bigger than the number of cores. It now parallelizes if the
+      number of jobs is more than one.
+
+    * Auto-printing would re-evaluate its argument when trying to
+      dispatch to a print method.  This is now avoided when possible.
+
+    * Unserializing (including load() and readRDS()) could silently
+      return incorrect numeric values from ASCII saves if there was a
+      read error.
+
+    * getParseData() could return incorrect values for the parents of
+      some elements. (Reported by Andrew Redd.)
+
+    * Attempting to use data frames of 2^31 or more rows with merge()
+      or to create a merged data frame of that size now gives a clearer
+      error message.
+
+    * parse() did not check its file argument was a connection if it
+      was not a character string, so e.g. parse(FALSE) attempted to
+      read from stdin.
+
+      Nor did dump() and dput().
+
+    * The "help.try.all.packages" option was ignored when the shortcut
+      syntax for help was used, e.g. ?foo.
+
+    * A potential segfault in string allocation has been fixed.  (Found
+      by Radford Neal.)
+
+    * Potential memory protection errors in sort() and D() have been
+      fixed. (Found by Radford Neal.)
+
+    * Fixed a lack of error checking in graphics event functions.
+      (Found by Radford Neal; a different patch used here than the one
+      in pqR.)
+
+    * numericDeriv() sometimes miscalculated the gradient.  (PR#15849,
+      reported originally by Radford Neal)
+
+CHANGES IN R 3.1.0:
+
+  NEW FEATURES:
+
+    * type.convert() (and hence by default read.table()) returns a
+      character vector or factor when representing a numeric input as a
+      double would lose accuracy.  Similarly for complex inputs.
+
+      If a file contains numeric data with unrepresentable numbers of
+      decimal places that are intended to be read as numeric, specify
+      colClasses in read.table() to be "numeric".
+
+    * tools::Rdiff(useDiff = FALSE) is closer to the POSIX definition
+      of diff -b (as distinct from the description in the man pages of
+      most systems).
+
+    * New function anyNA(), a version of any(is.na(.)) which is fast
+      for atomic vectors, based on a proposal by Tim Hesterberg. (Wish
+      of PR#15239.)
+
+    * arrayInd(*, useNames = TRUE) and, analogously, which(*, arr.ind =
+      TRUE) now make use of names(.dimnames) when available.
+
+    * is.unsorted() now also works for raw vectors.
+
+    * The "table" method for as.data.frame() (also useful as
+      as.data.frame.table()) now passes sep and base arguments to
+      provideDimnames().
+
+    * uniroot() gets new optional arguments, notably extendInt,
+      allowing to auto-extend the search interval when needed.  The
+      return value has an extra component, init.it.
+
+    * switch(f, ...) now warns when f is a factor, as this typically
+      happens accidentally where the useR meant to pass a character
+      string, but f is treated as integer (as always documented).
+
+    * The parser has been modified to use less memory.
+
+    * The way the unary operators (+ - !) handle attributes is now more
+      consistent.  If there is no coercion, all attributes (including
+      class) are copied from the input to the result: otherwise only
+      names, dims and dimnames are.
+
+    * colorRamp() and colorRampPalette() now allow non-opaque colours
+      and a ramp in opacity via the new argument alpha = TRUE.
+      (Suggested by Alberto Krone-Martins, but optionally as there are
+      existing uses which expect only RGB values.)
+
+    * grid.show.layout() and grid.show.viewport() get an optional vp.ex
+      argument.
+
+    * There is a new function find_gs_cmd() in the tools package to
+      locate a GhostScript executable.  (This is an enhanced version of
+      a previously internal function there.)
+
+    * object.size() gains a format() method.
+
+    * There is a new family, "ArialMT", for the pdf() and postscript()
+      devices.  This will only be rendered correctly on viewers which
+      have access to Monotype TrueType fonts (which are sometimes
+      requested by journals).
+
+    * The text and PDF news files, including NEWS and NEWS.2, have been
+      moved to the doc directory.
+
+    * combn(x, simplify = TRUE) now gives a factor result for factor
+      input x (previously user error).  (Related to PR#15442.)
+
+    * Added utils::fileSnapshot() and utils::changedFiles() functions
+      to allow snapshots and comparison of directories of files.
+
+    * make.names(names, unique=TRUE) now tries to preserve existing
+      names. (Suggestion of PR#15452.)
+
+    * New functions cospi(x), sinpi(x), and tanpi(x), for more accurate
+      computation of cos(pi*x), etc, both in R and the C API.  Using
+      these gains accuracy in some cases, e.g., inside lgamma() or
+      besselI().  (Suggested by Morten Welinder in PR#15529.)
+
+    * print.table(x, zero.print = ".") now also has an effect when x is
+      not integer-valued.
+
+    * There is more support to explore the system's idea of time-zone
+      names.  Sys.timezone() tries to give the current system setting
+      by name (and succeeds at least on Linux, OS X, Solaris and
+      Windows), and OlsonNames() lists the names in the system's Olson
+      database. Sys.timezone(location = FALSE) gives the previous
+      behaviour.
+
+    * Platforms with a 64-bit time_t type are allowed to handle
+      conversions between the "POSIXct" and "POSIXlt" classes for
+      date-times outside the 32-bit range (before 1902 or after 2037):
+      the existing workarounds are used on other platforms.  (Note that
+      time-zone information for post-2037 is speculative at best, and
+      the OS services are tested for known errors and so not used on OS
+      X.)
+
+      Currently time_t is usually long and hence 64-bit on Unix-alike
+      64-bit platforms: however in several cases the time-zone database
+      is 32-bit.  For R for Windows it is 64-bit (for both
+      architectures as from this version).
+
+    * The "save.defaults" option can include a value for
+      compression_level.  (Wish of PR#15579.)
+
+    * colSums() and friends now have support for arrays and data-frame
+      columns with 2^31 or more elements.
+
+    * as.factor() is faster when f is an unclassed integer vector (for
+      example, when called from tapply()).
+
+    * fft() now works with longer inputs, from the 12 million
+      previously supported up to 2 billion.  (PR#15593)
+
+    * Complex svd() now uses LAPACK subroutine ZGESDD, the complex
+      analogue of the routine used for the real case.
+
+    * Sweave now outputs .tex files in UTF-8 if the input encoding is
+      declared to be UTF-8, regardless of the local encoding.  The
+      UTF-8 encoding may now be declared using a LaTeX comment
+      containing the string %\SweaveUTF8 on a line by itself.
+
+    * file.copy() gains a copy.date argument.
+
+    * Printing of date-times will make use of the time-zone
+      abbreviation in use at the time, if known.  For example, for
+      Paris pre-1940 this could be LMT, PMT, WET or WEST.  To enable
+      this, the "POSIXlt" class has an optional component "zone"
+      recording the abbreviation for each element.
+
+      For platforms which support it, there is also a component
+      "gmtoff" recording the offset from GMT where known.
+
+    * (On Windows, by default on OS X and optionally elsewhere.)  The
+      system C function strftime has been replaced by a more
+      comprehensive version with closer conformance to the POSIX 2008
+      standard.
+
+    * dnorm(x, log = FALSE) is more accurate (but somewhat slower) for
+      |x| > 5; as suggested in PR#15620.
+
+    * Some versions of the tiff() device have further compression
+      options.
+
+    * read.table(), readLines() and scan() have a new argument to
+      influence the treatment of embedded nuls.
+
+    * Avoid duplicating the right hand side values in complex
+      assignments when possible.  This reduces copying of replacement
+      values in expressions such as Z$a <- a0 and ans[[i]] <- tmp: some
+      package code has relied on there being copies.
+
+      Also, a number of other changes to reduce copying of objects; all
+      contributed by or based on suggestions by Michael Lawrence.
+
+    * The fast argument of KalmanLike(), KalmanRun() and
+      KalmanForecast() has been replaced by update, which instead of
+      updating mod in place, optionally returns the updated model in an
+      attribute "mod" of the return value.
+
+    * arima() and makeARIMA() get a new optional argument SSinit,
+      allowing the choice of a different *s*tate *s*pace initialization
+      which has been observed to be more reliable close to
+      non-stationarity: see PR#14682.
+
+    * warning() has a new argument noBreaks., to simplify
+      post-processing of output with options(warn = 1).
+
+    * pushBack() gains an argument encoding, to support reading of
+      UTF-8 characters using scan(), read.table() and related functions
+      in a non-UTF-8 locale.
+
+    * all.equal.list() gets a new argument use.names which by default
+      labels differing components by names (if they match) rather than
+      by integer index.  Saved R output in packages may need to be
+      updated.
+
+    * The methods for all.equal() and attr.all.equal() now have
+      argument check.attributes after ... so it cannot be partially nor
+      positionally matched (as it has been, unintentionally).
+
+      A side effect is that some previously undetected errors of
+      passing empty arguments (no object between commas) to all.equal()
+      are detected and reported.
+
+      There are explicit checks that check.attributes is logical,
+      tolerance is numeric and scale is NULL or numeric.  This catches
+      some unintended positional matching.
+
+      The message for all.equal.numeric() reports a "scaled difference"
+      only for scale != 1.
+
+    * all.equal() now has a "POSIXt" method replacing the "POSIXct"
+      method.
+
+    * The "Date" and "POSIXt" methods of seq() allows by = "quarter"
+      for completeness (by = "3 months" always worked).
+
+    * file.path() removes any trailing separator on Windows, where they
+      are invalid (although sometimes accepted).  This is intended to
+      enhance the portability of code written by those using POSIX file
+      systems (where a trailing / can be used to confine path matching
+      to directories).
+
+    * New function agrepl() which like grepl() returns a logical
+      vector.
+
+    * fifo() is now supported on Windows. (PR#15600)
+
+    * sort.list(method = "radix") now allows negative integers (wish of
+      PR#15644).
+
+    * Some functionality of print.ts() is now available in
+      .preformat.ts() for more modularity.
+
+    * mcparallel() gains an option detach = TRUE which allows execution
+      of code independently of the current session.  It is based on a
+      new estranged = TRUE argument to mcfork() which forks child
+      processes such that they become independent of the parent
+      process.
+
+    * The pdf() device omits circles and text at extremely small sizes,
+      since some viewers were failing on such files.
+
+    * The rightmost break for the "months", "quarters" and "years"
+      cases of hist.POSIXlt() has been increased by a day.  (Inter
+      alia, fixes PR#15717.)
+
+    * The handling of DF[i,] <- a where i is of length 0 is improved.
+      (Inter alia, fixes PR#15718.)
+
+    * hclust() gains a new method "ward.D2" which implements Ward's
+      method correctly.  The previous "ward" method is "ward.D" now,
+      with the old name still working.  Thanks to research and
+      proposals by Pierre Legendre.
+
+    * The sunspot.month dataset has been amended and updated from the
+      official source, whereas the sunspots and sunspot.year datasets
+      will remain immutable. The documentation and source links have
+      been updated correspondingly.
+
+    * The summary() method for "lm" fits warns if the fit is
+      essentially perfect, as most of the summary may be computed
+      inaccurately (and with platform-dependent values).
+
+      Programmers who use summary() in order to extract just a
+      component which will be reliable (e.g., $cov.unscaled) should
+      wrap their calls in suppressWarnings().
+
+  INSTALLATION and INCLUDED SOFTWARE:
+
+    * The included version of LAPACK has been updated to 3.5.0.
+
+    * There is some support for parallel testing of an installation, by
+      setting TEST_MC_CORES to an integer greater than one to indicate
+      the maximum number of cores to be used in parallel. (It is worth
+      specifying at least 8 cores if available.)  Most of these require
+      a make program (such as GNU make and dmake) which supports the
+      $MAKE -j nproc syntax.
+
+      Except on Windows: the tests of standard package examples in make
+      check are done in parallel.  This also applies to running
+      tools::testInstalledPackages().
+
+      The more time-consuming regression tests are done in parallel.
+
+      The package checks in make check-devel and make check-recommended
+      are done in parallel.
+
+    * More of make check will work if recommended packages are not
+      installed: but recommended packages remain needed for thorough
+      checking of an R build.
+
+    * The version of tzcode included in src/extra/tzone has been
+      updated.  (Formerly used only on Windows.)
+
+    * The included (64-bit) time-zone conversion code and Olson
+      time-zone database can be used instead of the system version: use
+      configure option --with-internal-tzcode.  This is the default on
+      Windows and OS X.  (Note that this does not currently work if a
+      non-default rsharedir configure variable is used.)
+
+      (It might be necessary to set environment variable TZ on OSes
+      where this is not already set, although the system timezone is
+      deduced correctly on at least Linux, OS X and Windows.)
+
+      This option also switches to the version of strftime included in
+      directory src/extra/tzone.
+
+    * configure now tests for a C++11-compliant compiler by testing
+      some basic features.  This by default tries flags for the
+      compiler specified by CXX, but an alternative compiler, options
+      and standard can be specified by variables CXX1X, CXX1XFLAGS and
+      CXX1XSTD (e.g., -std=gnu++11).
+
+    * R can now optionally be compiled to use reference counting
+      instead of the NAMED mechanism by defining SWITCH_TO_REFCNT in
+      Rinternals.h. This may become the default in the future.
+
+    * There is a new option --use-system-tre to use a suitable system
+      tre library: at present this means a version from their git
+      repository, after corrections.  (Wish of PR#15660.)
+
+  PACKAGE INSTALLATION:
+
+    * The CRANextra repository is no longer a default repository on
+      Windows: all the binary versions of packages from CRAN are now on
+      CRAN, although CRANextra contains packages from Omegahat and
+      elsewhere used by CRAN packages.
+
+    * Only vignettes sources in directory vignettes are considered to
+      be vignettes and hence indexed as such.
+
+    * In the DESCRIPTION file,
+      
+          License: X11
+
+      is no longer recognized as valid.  Use MIT or BSD_2_clause
+      instead, both of which need + file LICENSE.
+
+    * For consistency, entries in .Rinstignore are now matched
+      case-insensitively on all platforms.
+
+    * Help for S4 methods with very long signatures now tries harder to
+      split the description in the Usage field to no more than 80
+      characters per line (some packages had over 120 characters).
+
+    * R CMD INSTALL --build (not Windows) now defaults to the internal
+      tar() unless R_INSTALL_TAR is set.
+
+    * There is support for compiling C++11 code in packages on suitable
+      platforms: see 'Writing R Extensions'.
+
+    * Fake installs now install the contents of directory inst: some
+      packages use this to install e.g. C++ headers for use by other
+      packages that are independent of the package itself.  Option
+      --no-inst can be used to get the previous behaviour.
+
+  DEBUGGING:
+
+    * The behaviour of the code browser has been made more consistent,
+      in part following the suggestions in PR#14985.
+
+    * Calls to browser() are now consistent with calls to the browser
+      triggered by debug(), in that Enter will default to n rather than
+      c.
+
+    * A new browser command s has been added, to "step into" function
+      calls.
+
+    * A new browser command f has been added, to "finish" the current
+      loop or function.
+
+    * Within the browser, the command help will display a short list of
+      available commands.
+
+  UTILITIES:
+
+    * Only vignettes sources in directory vignettes are considered to
+      be vignettes by R CMD check.  That has been the preferred
+      location since R 2.14.0 and is now obligatory.
+
+    * For consistency, R CMD build now matches entries in .Rbuildignore
+      and vignettes/.install_extras case-insensitively on all platforms
+      (not just on Windows).
+
+    * checkFF() (called by R CMD check by default) can optionally check
+      foreign function calls for consistency with the registered type
+      and argument count.  This is the default for R CMD check
+      --as-cran or can be enabled by setting environment variable
+      _R_CHECK_FF_CALLS_ to registration (but is in any case suppressed
+      by --install=no).  Because this checks calls in which .NAME is an
+      R object and not just a literal character string, some other
+      problems are detected for such calls.
+
+      Functions suppressForeignCheck() and dontCheck() have been added
+      to allow package authors to suppress false positive reports.
+
+    * R CMD check --as-cran warns about a false value of the
+      DESCRIPTION field BuildVignettes for Open Source packages, and
+      ignores it.  (An Open Source package needs to have complete
+      sources for its vignettes which should be usable on a suitably
+      well-equipped system).
+
+    * R CMD check --no-rebuild-vignettes is defunct:
+      R CMD check --no-build-vignettes has been preferred since R
+      3.0.0.
+
+    * R CMD build --no-vignettes is defunct:
+      R CMD build --no-build-vignettes has been preferred since R
+      3.0.0.
+
+    * R CMD Sweave and R CMD Stangle now process both Sweave and
+      non-Sweave vignettes.  The tools::buildVignette() function has
+      been added to do the same tasks from within R.
+
+    * The flags returned by R CMD config --ldflags and (where
+      installed) pkg-config --libs libR are now those needed to link a
+      front-end against the (shared or static) R library.
+
+    * Sweave.sty has a new option [inconsolata].
+
+    * R CMD check customizations such as _R_CHECK_DEPENDS_ONLY_ make
+      available packages only in LinkingTo only for installation, and
+      not for loading/runtime tests.
+
+    * tools::checkFF() reports on .C and .Fortran calls with DUP =
+      FALSE if argument check_DUP is true.  This is selected by R CMD
+      check by default.
+
+    * R CMD check --use-gct can be tuned to garbage-collect less
+      frequently using gctorture2() _via_ the setting of environment
+      variable _R_CHECK_GCT_N_.
+
+    * Where supported, tools::texi2dvi() limits the number of passes
+      tried to 20.
+
+  C-LEVEL FACILITIES:
+
+    * (Windows only) A function R_WaitEvent() has been added (with
+      declaration in headerR.h) to block execution until the next event
+      is received by R.
+
+    * Remapping in the Rmath.h header can be suppressed by defining
+      R_NO_REMAP_RMATH.
+
+    * The remapping of rround() in header Rmath.h has been removed: use
+      fround() instead.
+
+    * ftrunc() in header Rmath.h is now a wrapper for the C99 function
+      trunc(), which might as well be used in C code: ftrunc() is still
+      needed for portable C++ code.
+
+    * The never-documented remapping of prec() to fprec() in header
+      Rmath.h has been removed.
+
+    * The included LAPACK subset now contains ZGESDD and ZGELSD.
+
+    * The function LENGTH() now checks that it is only applied to
+      vector arguments.  However, in packages length() should be used.
+      (In R itself LENGTH() is a macro without the function overhead of
+      length().)
+
+    * Calls to SET_VECTOR_ELT() and SET_STRING_ELT() are now checked
+      for indices which are in-range: several packages were writing one
+      element beyond the allocated length.
+
+    * allocVector3 has been added which allows custom allocators to be
+      used for individual vector allocations.
+
+  DEPRECATED AND DEFUNCT:
+
+    * chol(pivot = TRUE, LINPACK = TRUE) is defunct.
+
+      Arguments EISPACK for eigen() and LINPACK for chol(), chol2inv(),
+      solve() and svd() are ignored: LAPACK is always used.
+
+    * .find.package() and .path.package() are defunct: only the
+      versions without the initial dot introduced in R 2.13.0 have ever
+      been in the API.
+
+    * Partial matching when using the $ operator _on data frames_ now
+      throws a warning and may become defunct in the future. If partial
+      matching is intended, replace foo$bar by foo[["bar", exact =
+      FALSE]].
+
+    * The long-deprecated use of \synopsis in the Usage section of .Rd
+      files has been removed: such sections are now ignored (with a
+      warning).
+
+    * package.skeleton()'s deprecated argument namespace has been
+      removed.
+
+    * Many methods are no longer exported by package stats.  They are
+      all registered on their generic, which should be called rather
+      than calling a method directly.
+
+    * Functions readNEWS() and checkNEWS() in package tools are
+      defunct.
+
+    * download.file(method = "lynx") is deprecated.
+
+    * .C(DUP = FALSE) and .Fortran(DUP = FALSE) are now deprecated, and
+      may be disabled in future versions of R.  As their help has long
+      said, .Call() is much preferred.
+
+      R CMD check notes such usages (by default).
+
+    * The workaround of setting R_OSX_VALGRIND has been removed: it is
+      not needed in current valgrind.
+
+  BUG FIXES:
+
+    * Calling lm.wfit() with no non-zero weights gave an array-overrun
+      in the Fortran code and a not very sensible answer.  It is now
+      special-cased with a simpler answer (no qr component).
+
+    * Error messages involving non-syntactic names (e.g., as produced
+      by `\r` when that object does not exist) now encode the control
+      characters.  (Reported by Hadley Wickham.)
+
+    * getGraphicsEvent() caused 100% usage of one CPU in Windows.
+      (PR#15500)
+
+    * nls() with no start argument may now work inside another function
+      (scoping issue).
+
+    * pbeta() and similar work better for very large (billions) ncp.
+
+    * Where time zones have changed abbreviations over the years, the
+      software tries to more consistently use the abbreviation
+      appropriate to the time or if that is unknown, the current
+      abbreviation.  On some platforms where the C function localtime
+      changed the tzname variables the reported abbreviation could have
+      been that of the last time converted.
+
+    * all.equal(list(1), identity) now works.
+
+    * Bug fix for pushing viewports in grid (reported by JJ Allaire and
+      Kevin Ushey).
+
+      NOTE for anyone poking around within the graphics engine display
+      list (despite the warnings not to) that this changes what is
+      recorded by grid on the graphics engine display list.
+
+    * Extra checks have been added for unit resolution and conversion
+      in grid, to catch instances of division-by-zero.  This may
+      introduce error messages in existing code and/or produce a
+      different result in existing code (but only where a non-finite
+      location or dimension may now become zero).
+
+    * Some bugs in TRE have been corrected by updating from the git
+      repository.  This allows R to be installed on some platforms for
+      which this was a blocker (PR#15087 suggests Linux on ARM and
+      HP-UX).
+
+    * ? applied to a call to an S4 generic failed in several cases.
+      (PR#15680)
+
+    * The implicit S4 generics for primitives with ... in their
+      argument list were incorrect. (PR#15690)
+
+    * Bug fixes to methods::callGeneric(). (PR#15691)
+
+    * The bug fix to aggregrate() in PR#15004 introduced a new bug in
+      the case of no grouping variables. (PR#15699)
+
+    * In rare cases printing deeply nested lists overran a buffer by
+      one byte and on a few platforms segfaulted. (PR#15679)
+
+    * The dendrogram method of as.dendrogram() was hidden accidentally,
+      (PR#15703), and order.dendrogram(d) gave too much for a leaf d.
+      (PR#15702)
+
+    * R would try to kill processes on exit that have pids ever used by
+      a child process spawned by mcparallel even though the current
+      process with that pid was not actually its child.
+
+    * cophenetic() applied to a "dendrogram" object sometimes
+      incorrectly returned a "Labels" attribute with dimensions.
+      (PR#15706)
+
+    * printCoefmat() called from quite a few print() methods now obeys
+      small getOption("width") settings, line wrapping the "signif.
+      codes" legend appropriately.  (PR#15708)
+
+    * model.matrix() assumed that the stored dimnames for a matrix was
+      NULL or length 2, but length 1 occurred.
+
+    * The clipping region for a device was sometimes used in base
+      graphics before it was set.
+
+CHANGES IN R 3.0.3:
+
+  NEW FEATURES:
+
+    * On Windows there is support for making .texi manuals using
+      texinfo 5.0 or later: the setting is in file
+      src/gnuwin32/MkRules.dist.
+
+      A packaging of the Perl script and modules for texinfo 5.2 has
+      been made available at <URL:
+      http://www.stats.ox.ac.uk/pub/Rtools/>.
+
+    * write.table() now handles matrices of 2^31 or more elements, for
+      those with large amounts of patience and disc space.
+
+    * There is a new function, La_version(), to report the version of
+      LAPACK in use.
+
+    * The HTML version of 'An Introduction to R' now has links to PNG
+      versions of the figures.
+
+    * There is some support to produce manuals in ebook formats. (See
+      doc/manual/Makefile.  Suggested by Mauro Cavalcanti.)
+
+    * On a Unix-alike Sys.timezone() returns NA if the environment
+      variable TZ is unset, to distinguish it from an empty string
+      which on some OSes means the UTC time zone.
+
+    * The backtick may now be escaped in strings, to allow names
+      containing them to be constructed, e.g. `\``.  (PR#15621)
+
+    * read.table(), readLines() and scan() now warn when an embedded
+      nul is found in the input.  (Related to PR#15625 which was
+      puzzled by the behaviour in this unsupported case.)
+
+    * (Windows only.)  file.symlink() works around the undocumented
+      restriction of the Windows system call to backslashes.  (Wish of
+      PR#15631.)
+
+    * KalmanForecast(fast = FALSE) is now the default, and the help
+      contains an example of how fast = TRUE can be used in this
+      version.  (The usage will change in 3.1.0.)
+
+    * strptime() now checks the locale only when locale-specific
+      formats are used and caches the locale in use: this can halve the
+      time taken on OSes with slow system functions (e.g., OS X).
+
+    * strptime() and the format() methods for classes "POSIXct",
+      "POSIXlt" and "Date" recognize strings with marked encodings:
+      this allows, for example, UTF-8 French month names to be read on
+      (French) Windows.
+
+    * iconv(to = "utf8") is now accepted on all platforms (some
+      implementations did already, but GNU libiconv did not: however
+      converted strings were not marked as being in UTF-8).  The
+      official name, "UTF-8" is still preferred.
+
+    * available.packages() is better protected against corrupt metadata
+      files.  (A recurring problem with Debian package shogun-r:
+      PR#14713.)
+
+    * Finalizers are marked to be run at garbage collection, but run
+      only at a somewhat safer later time (when interrupts are
+      checked).  This circumvents some problems with finalizers running
+      arbitrary code during garbage collection (the known instances
+      being running options() and (C-level) path.expand()
+      re-entrantly).
+
+  INSTALLATION and INCLUDED SOFTWARE:
+
+    * The included version of PCRE has been updated to 8.34.  This
+      fixes bugs and makes the behaviour closer to Perl 5.18.  In
+      particular, the concept of 'space' includes VT and hence agrees
+      with POSIX's.
+
+  PACKAGE INSTALLATION:
+
+    * The new field SysDataCompression in the DESCRIPTION file allows
+      user control over the compression used for sysdata.rda objects in
+      the lazy-load database.
+
+    * install.packages(dependencies = value) for value = NA (the
+      default) or value = TRUE omits packages only in LinkingTo for
+      binary package installs.
+
+  C-LEVEL FACILITIES:
+
+    * The long undocumented remapping of rround() to Rf_fround() in
+      header Rmath.h is now formally deprecated: use fround() directly.
+
+    * Remapping of prec() and trunc() in the Rmath.h header has been
+      disabled in C++ code (it has caused breakage with libc++
+      headers).
+
+  BUG FIXES:
+
+    * getParseData() truncated the imaginary part of complex number
+      constants.  (Reported by Yihui Xie.)
+
+    * dbeta(x, a, b) with a or b within a factor of 2 of the largest
+      representable number could infinite-loop.  (Reported by Ioannis
+      Kosmidis.)
+
+    * provideDimnames() failed for arrays with a 0 dimension.
+      (PR#15465)
+
+    * rbind() and cbind() did not handle list objects correctly.
+      (PR#15468)
+
+    * replayPlot() now checks if it is replaying a plot from the same
+      session.
+
+    * rasterImage() and grid.raster() now give error on an empty
+      (zero-length) raster.  (Reported by Ben North.)
+
+    * plot.lm() would sometimes scramble the labels in plot type 5.
+      (PR#15458 and PR#14837)
+
+    * min() did not handle NA_character_ values properly.  (Reported by
+      Magnus Thor Torfason.)
+
+    * (Windows only.)  readRegistry() would duplicate default values
+      for keys.  (PR#15455)
+
+    * str(..., strict.width = "cut") did not handle it properly when
+      more than one line needed to be cut.  (Reported by Gerrit
+      Eichner.)
+
+    * Removing subclass back-references when S4 classes were removed or
+      their namespace unloaded had several bugs (e.g., PR#15481).
+
+    * aggregate() could fail when there were too many levels present in
+      the by argument.  (PR#15004)
+
+    * namespaceImportFrom() needed to detect primitive functions when
+      checking for duplicated imports (reported by Karl Forner).
+
+    * getGraphicsEvent() did not exit when a user closed the graphics
+      window.  (PR#15208)
+
+    * Errors in vignettes were not always captured and displayed
+      properly.  (PR#15495)
+
+    * contour() could fail when dealing with extremely small z values.
+      (PR#15454)
+
+    * Several functions did not handle zero-length vectors properly,
+      including browseEnv(), format(), gl(), relist() and
+      summary.data.frame().  (E.g., PR#15499)
+
+    * Sweave() did not restore the R output to the console if it was
+      interrupted by a user in the middle of evaluating a code chunk.
+      (Reported by Michael Sumner.)
+
+    * Fake installs of packages with vignettes work again.
+
+    * Illegal characters in the input caused parse() (and thus
+      source()) to segfault.  (PR#15518)
+
+    * The nonsensical use of nmax = 1 in duplicated() or unique() is
+      now silently ignored.
+
+    * qcauchy(p, *) is now fully accurate even when p is very close to
+      1. (PR#15521)
+
+    * The validmu() and valideta() functions in the standard glm()
+      families now also report non-finite values, rather than failing.
+
+    * Saved vignette results (in a .Rout.save file) were not being
+      compared to the new ones during R CMD check.
+
+    * Double-clicking outside of the list box (e.g., on the scrollbar)
+      of a Tk listbox widget generated by tk_select.list() no longer
+      causes the window to close. (PR#15407)
+
+    * Improved handling of edge cases in parallel::splitindices().
+      (PR#15552)
+
+    * HTML display of results from help.search() and ?? sometimes
+      contained badly constructed links.
+
+    * c() and related functions such as unlist() converted raw vectors
+      to invalid logical vectors. (PR#15535)
+
+    * (Windows only) When a call to system2() specified one of stdin,
+      stdout or stderr to be a file, but the command was not found
+      (e.g., it contained its arguments, or the program was not on the
+      PATH), it left the file open and unusable until R terminated.
+      (Reported by Mathew McLean.)
+
+    * The bmp() device was not recording res = NA correctly: it is now
+      recorded as 72 ppi.
+
+    * Several potential problems with compiler-specific behaviour have
+      been identified using the 'Undefined Behaviour Sanitizer' in
+      conjunction with the clang compiler.
+
+    * hcl() now honours NA inputs (previously they were mapped to
+      black).
+
+    * Some translations in base packages were being looked up in the
+      main catalog rather than that for the package.
+
+    * As a result of the 3.0.2 change about 'the last second before the
+      epoch', most conversions which should have given NA returned that
+      time.  (The platforms affected include Linux and OS X, but not
+      Windows nor Solaris.)
+
+    * rowsum() has more support for matrices and data frames with 2^31
+      or more elements. (PR#15587)
+
+    * predict(<lm object>, interval = "confidence", scale =
+      <something>) now works.  (PR#15564)
+
+    * The bug fix in 3.0.2 for PR#15411 was too aggressive, and
+      sometimes removed spaces that should not have been removed.
+      (PR#15583)
+
+    * Running R code in a tcltk callback failed to set the busy flag,
+      which will be needed to tell OS X not to 'App Nap'.
+
+    * The code for date-times before 1902 assumed that the offset from
+      GMT in 1902 was a whole number of minutes: that was not true of
+      Paris (as recorded on some platforms).
+
+    * Using Sys.setlocale to set LC_NUMERIC to "C" (to restore the sane
+      behavior) no longer gives a warning.
+
+    * deparse() now deparses complex vectors in a way that re-parses to
+      the original values.  (PR#15534, patch based on code submitted by
+      Alex Bertram.)
+
+    * In some extreme cases (more than 10^15) integer inputs to
+      dpqrxxx() functions might have been rounded up by one (with a
+      warning about being non-integer).  (PR#15624)
+
+    * Plotting symbol pch = 14 had the triangle upside down on some
+      devices (typically screen devices). The triangle is supposed to
+      be point up.  (Reported by Bill Venables.)
+
+    * getSrcref() did not work on method definitions if
+      rematchDefinition() had been used.
+
+    * KalmanForecast(fast = FALSE) reported a (harmless) stack
+      imbalance.
+
+    * The count of observations used by KalmanRun() did not take
+      missing values into account.
+
+    * In locales where the abbreviated name of one month is a partial
+      match for the full name of a later one, the %B format in
+      strptime() could fail.  An example was French on OS X, where juin
+      is abbreviated to jui and partially matches juillet.  Similarly
+      for weekday names.
+
+    * pbeta(x, a, b, log.p = TRUE) sometimes underflowed to zero for
+      very small and very differently sized a, b.  (PR#15641)
+
+    * approx() and approxfun() now handle infinite values with the
+      "constant" method. (PR#15655)
+
+    * stripchart() again respects reversed limits in xlim and ylim.
+      (PR#15664)
+
+CHANGES IN R 3.0.2:
+
+  NEW FEATURES:
+
+    * The NEWS files have been re-organized.
+
+      This file contains news for R >= 3.0.0: news for the 0.x.y, 1.x.y
+      and 2.x.y releases is in files NEWS.0, NEWS.1 and NEWS.2.  The
+      latter files are now installed when R is installed.  An HTML
+      version of news from 2.10.0 to 2.15.3 is available as
+      doc/html/NEWS.2.html.
+
+    * sum() for integer arguments now uses an integer accumulator of at
+      least 64 bits and so will be more accurate in the very rare case
+      that a cumulative sum exceeds 2^53 (necessarily summing more than
+      4 million elements).
+
+    * The example() and tools::Rd2ex() functions now have parameters to
+      allow them to ignore \dontrun markup in examples.  (Suggested by
+      Peter Solymos.)
+
+    * str(x) is considerably faster for very large lists, or factors
+      with 100,000 levels, the latter as in PR#15337.
+
+    * col2rgb() now converts factors to character strings not integer
+      codes (suggested by Bryan Hanson).
+
+    * tail(warnings()) now works, via the new `[` method.
+
+    * There is now support for the LaTeX style file zi4.sty which has
+      in some distributions replaced inconsolata.sty.
+
+    * unlist(x) now typically returns all non-list xs unchanged, not
+      just the "vector" ones.  Consequently, format(lst) now also works
+      when the list lst has non-vector elements.
+
+    * The tools::getVignetteInfo() function has been added to give
+      information about installed vignettes.
+
+    * New assertCondition(), etc. utilities in tools, useful for
+      testing.
+
+    * Profiling now records non-inlined calls from byte-compiled code
+      to BUILTIN functions.
+
+    * Various functions in stats and elsewhere that use non-standard
+      evaluation are now more careful to follow the namespace scoping
+      rules.  E.g., stats::lm() can now find stats::model.frame() even
+      if stats is not on the search path or if some package defines a
+      function of that name.
+
+    * If an invalid/corrupt .Random.seed object is encountered in the
+      workspace it is ignored with a warning rather than giving an
+      error.  (This allows R itself to rely on a working RNG, e.g. to
+      choose a random port.)
+
+    * seq() and seq.int() give more explicit error messages if called
+      with invalid (e.g., NaN) inputs.
+
+    * When parse() finds a syntax error, it now makes partial parse
+      information available up to the location of the error.  (Request
+      of Reijo Sund.)
+
+    * Methods invoked by NextMethod() had a different dynamic parent to
+      the generic. This was causing trouble where S3 methods invoked
+      via lazy evaluation could lose track of their generic.
+      (PR#15267)
+
+    * Code for the negative binomial distribution now treats the case
+      size == 0 as a one-point distribution at zero.
+
+    * abbreviate() handles without warning non-ASCII input strings
+      which require no abbreviation.
+
+    * read.dcf() no longer has a limit of 8191 bytes per line. (Wish of
+      PR#15250.)
+
+    * formatC(x) no longer copies the class of x to the result, to
+      avoid misuse creating invalid objects as in PR#15303.  A warning
+      is given if a class is discarded.
+
+    * Dataset npk has been copied from MASS to allow more tests to be
+      run without recommended packages being installed.
+
+    * The initialization of the regression coefficients for
+      non-degenerate differenced models in arima() has been changed and
+      in some examples avoids a local maximum.  (PR#15396)
+
+    * termplot() now has an argument transform.x to control the display
+      of individual terms in the plot.  (PR#15329)
+
+    * format() now supports digits = 0, to display nsmall decimal
+      places.
+
+    * There is a new read-only par() parameter called "page", which
+      returns a logical value indicating whether the next plot.new()
+      call will start a new page.
+
+    * Processing Sweave and Rd documents to PDF now renders backticks
+      and single quotes better in several instances, including in \code
+      and \samp expressions.
+
+    * utils::modifyList() gets a new argument keep.null allowing NULL
+      components in the replacement to be retained, instead of causing
+      corresponding components to be deleted.
+
+    * tools::pkgVignettes() gains argument check; if set to TRUE, it
+      will warn when it appears a vignette requests a non-existent
+      vignette engine.
+
+  UTILITIES:
+
+    * R CMD check --as-cran checks the line widths in usage and
+      examples sections of the package Rd files.
+
+    * R CMD check --as-cran now implies --timings.
+
+    * R CMD check looks for command gfile if a suitable file is not
+      found.  (Although file is not from GNU, OpenCSW on Solaris
+      installs it as gfile.)
+
+    * R CMD build (with the internal tar) checks the permissions of
+      configure and cleanup files and adds execute permission to the
+      recorded permissions for these files if needed, with a warning.
+      This is useful on OSes and file systems which do not support
+      execute permissions (notably, on Windows).
+
+    * R CMD build now weaves and tangles all vignettes, so suggested
+      packages are not required during package installation if the
+      source tarball was prepared with current R CMD build.
+
+    * checkFF() (used by R CMD check) does a better job of detecting
+      calls from other packages, including not reporting those where a
+      function has been copied from another namespace (e.g., as a
+      default method).  It now reports calls where .NAME is a symbol
+      registered in another package.
+
+    * On Unix-alike systems, R CMD INSTALL now installs packages group
+      writably whenever the library (lib.loc) is group writable.
+      Hence, update.packages() works for other group members (suggested
+      originally and from a patch by Dirk Eddelbuettel).
+
+    * R CMD javareconf now supports the use of symbolic links for
+      JAVA_HOME on platforms which have realpath.  So it is now
+      possible to use
+      
+      R CMD javareconf JAVA_HOME=/usr/lib/jvm/java-1.7.0
+
+      on a Linux system and record that value rather than the
+      frequently-changing full path such as
+      /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.25.x86_64.
+
+    * (Windows only.) Rscript -e requires a non-empty argument for
+      consistency with Unix versions of R.  (Also Rterm -e and R -e.)
+
+    * R CMD check does more thorough checking of declared packages and
+      namespaces.  It reports
+
+        * packages declared in more than one of the Depends, Imports,
+          Suggests and Enhances fields of the DESCRIPTION file.
+
+        * namespaces declared in Imports but not imported from, neither
+          in the NAMESPACE file nor using the :: nor ::: operators.
+
+        * packages which are used in library() or requires() calls in
+          the R code but were already put on the search path _via_
+          Depends.
+
+        * packages declared in Depends not imported _via_ the NAMESPACE
+          file (except the standard packages).  Objects used from
+          Depends packages should be imported to avoid conflicts and to
+          allow correct operation when the namespace is loaded but not
+          attached.
+
+        * objects imported _via_ ::: calls where :: would do.
+
+        * objects imported by :: which are not exported.
+
+        * objects imported by ::: calls which do not exist.
+
+      See 'Writing R Extensions' for good practice.
+
+    * R CMD check optionally checks for non-standard top-level files
+      and directories (which are often mistakes): this is enabled for
+      --as-cran.
+
+    * LaTeX style file upquote.sty is no longer included (the version
+      was several years old): it is no longer used in R.  A much later
+      version is commonly included in LaTeX distributions but does not
+      play well with the ae fonts which are the default for Sweave
+      vignettes.
+
+    * R CMD build makes more use of the build sub-directory of package
+      sources, for example to record information about the vignettes.
+
+    * R CMD check analyses ::: calls.
+
+  INSTALLATION and INCLUDED SOFTWARE:
+
+    * The macros used for the texinfo manuals have been changed to work
+      better with the incompatible changes made in texinfo 5.x.
+
+    * The minimum version for a system xz library is now 5.0.3 (was
+      4.999).  This is in part to avoid 5.0.2, which can compress in
+      ways other versions cannot decompress.
+
+    * The included version of PCRE has been updated to 8.33.
+
+    * The included version of zlib has been updated to 1.2.8, a bug-fix
+      release.
+
+    * The included version of xz utils's liblzma has been updated to
+      5.0.5.
+
+    * Since javareconf (see above) is used when R is installed, a
+      stable link for JAVA_HOME can be supplied then.
+
+    * Configuring with --disable-byte-compilation will override the
+      DESCRIPTION files of recommended packages, which typically
+      require byte-compilation.
+
+    * More of the installation and checking process will work even when
+      TMPDIR is set to a path containing spaces, but this is not
+      recommended and external software (such as texi2dvi) may fail.
+
+  PACKAGE INSTALLATION:
+
+    * Installation is aborted immediately if a LinkingTo package is not
+      installed.
+
+    * R CMD INSTALL has a new option --no-byte-compile which will
+      override a ByteCompile field in the package's DESCRIPTION file.
+
+    * License BSD is deprecated: use BSD_3_clause or BSD_2_clause
+      instead.
+
+      License X11 is deprecated: use MIT or BSD_2_clause instead.
+
+    * Version requirements for LinkingTo packages are now recognized:
+      they are checked at installation.  (Fields with version
+      requirements were previously silently ignored.)
+
+    * The limit of 500 S3method entries in a NAMESPACE file has been
+      removed.
+
+    * The default 'version' of Bioconductor for its packages has been
+      changed to the upcoming 2.13, but this can be set by the
+      environment variable R_BIOC_VERSION when R is installed.
+
+  C-LEVEL FACILITIES:
+
+    * Rdefines.h has been tweaked so it can be included in C++ code
+      after R_ext/Boolean.h (which is included by R.h).
+
+      Note that Rdefines.h is not kept up-to-date, and Rinternals.h is
+      preferred for new code.
+
+    * eval and applyClosure are now protected against package code
+      supplying an invalid rho.
+
+  DEPRECATED AND DEFUNCT:
+
+    * The unused namespace argument to package.skeleton() is now
+      formally deprecated and will be removed in R 3.1.0.
+
+    * plclust() is deprecated: use the plot() method for class "hclust"
+      instead.
+
+    * Functions readNEWS() and checkNEWS() in package tools are
+      deprecated (and they have not worked with current NEWS files for
+      a long time).
+
+  DOCUMENTATION:
+
+    * 'An Introduction to R' has a new chapter on using R as a
+      scripting language including interacting with the OS.
+
+  BUG FIXES:
+
+    * help.request() could not determine the current version of R on
+      CRAN.  (PR#15241)
+
+    * On Windows, file.info() failed on root directories unless the
+      path was terminated with an explicit ".".  (PR#15302)
+
+    * The regmatches<-() replacement function mishandled results coming
+      from regexpr().  (PR#15311)
+
+    * The help for setClass() and representation() still suggested the
+      deprecated argument representation=. (PR#15312)
+
+    * R CMD config failed in an installed build of R 3.0.1 (only) when
+      a sub-architecture was used.  (Reported by Berwin Turlach.)
+
+    * On Windows, the installer modified the etc/Rconsole and
+      etc/Rprofile.site files even when default options were chosen, so
+      the MD5 sums did not refer to the installed versions.  (Reported
+      by Tal Galili.)
+
+    * plot(hclust(), cex =) respects cex again (and possibly others
+      similarly).  (Reported by Peter Langfelder.)
+
+    * If multiple packages were checked by R CMD check, and one was
+      written for a different OS, it would set --no-install for all
+      following packages as well as itself.
+
+    * qr.coef() and related functions did not properly coerce real
+      vectors to complex when necessary.  (PR#15332)
+
+    * ftable(a) now fixes up empty dimnames such that the result is
+      printable.
+
+    * package.skeleton() was not starting its search for function
+      objects in the correct place if environment was supplied.
+      (Reported by Karl Forner.)
+
+    * Parsing code was changing the length field of vectors and
+      confusing the memory manager.  (PR#15345)
+
+    * The Fortran routine ZHER2K in the reference BLAS had a
+      comment-out bug in two places.  This caused trouble with eigen()
+      for Hermitian matrices.  (PR#15345 and report from Robin Hankin)
+
+    * vignette() and browseVignettes() did not display non-Sweave
+      vignettes properly.
+
+    * Two warning/error messages have been corrected: the (optional)
+      warning produced by a partial name match with a pairlist, the
+      error message from a zero-length argument to the : operator.
+      (Found by Radford Neal; PR#15358, PR#15356)
+
+    * svd() returned NULL rather than omitting components as
+      documented.  (Found by Radford Neal; PR#15360)
+
+    * mclapply() and mcparallel() with silent = TRUE could break a
+      process that uses stdout output unguarded against broken pipes
+      (e.g., zip will fail silently). To work around such issues, they
+      now replace stdout with a descriptor pointed to /dev/null
+      instead. For this purpose, internal closeStdout and closeStderr
+      functions have gained the to.null flag.
+
+    * log(), signif() and round() now raise an error if a single named
+      argument is not named x.  (PR#15361)
+
+    * deparse() now deparses raw vectors in a form that is
+      syntactically correct. (PR#15369)
+
+    * The jpeg driver in Sweave created a JPEG file, but gave it a .png
+      extension. (PR#15370)
+
+    * Deparsing of infix operators with named arguments is improved.
+      (PR#15350)
+
+    * mget(), seq.int() and numericDeriv() did not duplicate arguments
+      properly. (PR#15352, PR#15353, PR#15354)
+
+    * kmeans(algorithm = "Hartigan-Wong") now always stops iterating in
+      the QTran stage. (PR#15364).
+
+    * read.dcf() re-allocated incorrectly and so could segfault when
+      called on a file with lines of more than 100 bytes.
+
+    * On systems where mktime() does not set errno, the last second
+      before the epoch could not be converted from POSIXlt to POSIXct.
+      (Reported by Bill Dunlap.)
+
+    * add1.glm() miscalculated F-statistics when df > 1. (Bill Dunlap,
+      PR#15386).
+
+    * stem() now discards infinite inputs rather than hanging.
+      (PR#15376)
+
+    * The parser now enforces C99 syntax for floating point hexadecimal
+      constants (e.g., 0x1.1p0), rather than returning unintended
+      values for malformed constants. (PR#15234)
+
+    * model.matrix() now works with very long LHS names (more than 500
+      bytes).  (PR#15377)
+
+    * integrate() reverts to the pre-2.12.0 behaviour: from 2.12.0 to
+      3.0.1 it sometimes failed to achieve the requested tolerance and
+      reported error estimates that were exceeded.  (PR#15219)
+
+    * strptime() now handles %W fields with value 0. (PR#15915)
+
+    * R is now better protected against people trying to interact with
+      the console in startup code.  (PR#15325)
+
+    * Subsetting 1D arrays often lost dimnames (PR#15301).
+
+    * Unary + on a logical vector did not coerce to integer, although
+      unary - did.
+
+    * na.omit() and na.exclude() added a row to a zero-row data frame.
+      (PR#15399)
+
+    * All the (where necessary cut-down) vignettes are installed if R
+      was configured with --without-recommended-packages.
+
+    * source() did not display filenames when reporting syntax errors.
+
+    * Syntax error reports misplaced the caret pointing out the bad
+      token.
+
+    * (Windows only) Starting R with R (instead of Rterm or Rgui) would
+      lose any zero-length strings from the command line arguments.
+      (PR#15406)
+
+    * Errors in the encoding specified on the command line via
+      --encoding=foo were not handled properly.  (PR#15405)
+
+    * If x is a symbol, is.vector(x, "name") now returns TRUE, since
+      "name" and "symbol" should be synonyms.  (Reported by Herv'e
+      Pag`es.)
+
+    * R CMD rtags works on platforms (such as OS X) with a
+      XSI-conformant shell command echo. (PR#15231)
+
+    * is.unsorted(NA) returns false as documented (rather than NA).
+
+    * R CMD LINK did not know about sub-architectures.
+
+    * system() and system2() are better protected against users who
+      misguidedly have spaces in the temporary directory path.
+
+    * file.show() and edit() are now more likely to work on file paths
+      containing spaces.  (Where external utilities are used, not the
+      norm on Windows nor in R.app which should previously have
+      worked.)
+
+    * Packages using the methods package are more likely to work when
+      they import it but it is not attached.  (Several parts of its C
+      code were looking for its R functions on the search path rather
+      than in its namespace.)
+
+    * lgamma(-x) is no longer NaN for very small x.
+
+    * (Windows) system2() now respects specifying stdout and stderr as
+      files if called from Rgui. (PR#15393)
+
+    * Closing an x11() device whilst locator() or identify() is in
+      progress no longer hangs R.  (PR#15253)
+
+    * list.dirs(full.names = FALSE) was not implemented.  (PR#15170)
+
+    * format() sometimes added unnecessary spaces.  (PR#15411)
+
+    * all.equal(check.names = FALSE) would ignore the request to ignore
+      the names and would check them as attributes.
+
+    * The symbol set by tools::Rd2txt_options(itemBullet=) was not
+      respected in some locales. (PR#15435)
+
+    * mcMap() was not exported by package parallel. (PR#15439)
+
+    * plot() for TukeyHSD objects did not balance dev.hold() and
+      dev.flush() calls on multi-page plots.  (PR#15449)
+
+CHANGES IN R 3.0.1:
+
+  NEW FEATURES:
+
+    * chooseCRANmirror() and chooseBioCmirror() gain an ind argument
+      (like setRepositories()).
+
+    * mcparallel has a new argument mc.interactive which can modify the
+      interactive flag in the child process. The new default is FALSE
+      which makes child processes non-interactive by default (this
+      prevents lock-ups due to children waiting for interactive input).
+
+    * scan() now warns when end-of-file occurs within a quoted string.
+
+    * count.fields() is now consistent with scan() in its handling of
+      newlines in quoted strings.  Instead of triggering an error, this
+      results in the current line receiving NA as the field count, with
+      the next line getting the total count of the two lines.
+
+    * The default method of image() will plot axes of the class of xlim
+      and ylim (and hence of x and y if there is a suitable range()
+      method).  Based on a suggestion of Michael Sumner.
+
+    * load() now has a verbose argument for debugging support, to print
+      the names of objects just before loading them.
+
+    * When loading a serialized object encounters a reference to a
+      namespace which cannot be loaded, this is replaced by a reference
+      to the global environment, with a warning.
+
+    * pairs() gains a line.main option for title placement.
+
+    * The remaining instances in which serialization to a raw vector
+      was limited to 2GB have been unlimited on a 64-bit platform, and
+      in most cases serialization to a vector of more than 1GB will be
+      substantially faster.
+
+  UTILITIES:
+
+    * R CMD config now make use of personal Makevars files under ~/.R
+      and a site file Makevars.site, in the same way as R CMD SHLIB and
+      R CMD INSTALL.  This makes the utility more useful in package
+      configure scripts.
+
+      On Windows finding the personal files may require the environment
+      variable HOME set.
+
+      The old behaviour can be obtained with the new options
+      --no-user-files and --no-site-files.
+
+  PACKAGE INSTALLATION:
+
+    * Alternatives to the site and user customization files
+      Makevars.site and ~/.R/Makevars can be specified _via_ the
+      environment variables R_MAKEVARS_SITE and R_MAKEVARS_USER
+      respectively.  These can be used to suppress the use of the
+      default files by setting an empty value (where possible) or a
+      non-existent path.
+
+  BUG FIXES:
+
+    * sys.source() did not report error locations when keep.source =
+      TRUE.
+
+    * as.POSIXct.numeric was coercing origin using the tz argument and
+      not "GMT" as documented (PR#14973).
+
+    * The active binding to assign fields in reference classes has been
+      cleaned up to reduce dependence on the class' package
+      environment, also fixing bug in initializing read-only fields
+      (inspired by a report from Hadley Wickham).
+
+    * str(d) no longer gives an error when names(d) contain illegal
+      multibyte strings (PR#15247).
+
+    * Profiling of built-in functions with line.profiling= TRUE did not
+      record the line from which they were called.
+
+    * citation(pkg) dropped the header and footer specified in the
+      CITATION file (PR#15257).
+
+    * Quotes were handled differently when reading the first line and
+      reading the rest, so read.table() misread some files that
+      contained quote characters (PR#15245).
+
+    * cat() with sep a character vector of length greater than one and
+      more than one argument was using separators inconsistently
+      (PR#15261).
+
+    * On Windows in R 3.0.0, savePlot() failed because of an incorrect
+      check on the argument count.
+
+    * unzip(list = TRUE) returned Names as a factor and not a character
+      vector (as documented) for the internal method.  (Noticed by Sean
+      O'Riordain.)
+
+    * contourLines() now checks more comprehensively for conformance of
+      its x, y and z arguments (it was used incorrectly in package
+      R2G2).
+
+    * Saved graphics display lists are R version-specific.  Attempting
+      to load workspaces containing them (or some other
+      version-specific objects) aborted the load in R 3.0.0 and
+      earlier; now it does a partial load and generates a warning
+      instead.
+
+    * In R 3.0.0, identify() and locator() did not record information
+      correctly, so replaying a graph (e.g., by copying it to another
+      device) would fail. (PR#15271)
+
+    * Calling file.copy() or dirname() with the invalid input "" (which
+      was being used in packages, despite not being a file path) could
+      have caused a segfault.
+
+      dirname("") is now "" rather than "." (unless it segfaulted).
+
+    * supsmu() could read/write outside its input vectors for very
+      short inputs (seen in package rms for n = 4).
+
+    * as.dendrogram()'s hclust method uses less memory and hence gets
+      considerably faster for large (n ~ 1000) clusterings, thanks to
+      Daniel M"ullner. (PR#15174)
+
+    * The return value when all workers failed from
+      parallel::mclapply(mc.preschedule = TRUE) was a list of strings
+      and not of error objects.  (Spotted by Karl Forner and Bernd
+      Bischl.)
+
+    * In R 3.0.0, when help() found multiple pages with the same alias,
+      the HTML display of all the selections was not produced.
+      (PR#15282)
+
+    * splinefun(method="monoH.FC") now produces a function with first
+      argument named x and allows deriv=3, as documented. (PR#15273)
+
+    * summaryRprof() would only read the first chunksize lines of an
+      Rprof file produced with line.profiling=TRUE. By default, this is
+      the first 100 seconds.  (PR#15288)
+
+    * lsfit() produced an incorrect error message when argument x had
+      more columns than rows or x had a different number of rows than
+      y. (Spotted by Renaud Gaujoux.)
+
+    * Binary operations on equal length vectors copied the class name
+      from the second operand when the first had no class name, but did
+      not set the object bit. (PR#15299)
+
+    * The trace() method for reference generator objects failed after
+      those objects became function definitions.
+
+    * write.table() did not check that factors were constructed
+      correctly, and so caused a segment fault when writing bad ones.
+      (PR#15300)
+
+    * The internal HTTP server no longer chokes on POST requests
+      without body. It will also pass-through other request types for
+      custom handlers (with the method stored in Request-Method header)
+      instead of failing.
+
+CHANGES IN R 3.0.0:
+
+  SIGNIFICANT USER-VISIBLE CHANGES:
+
+    * Packages need to be (re-)installed under this version (3.0.0) of
+      R.
+
+    * There is a subtle change in behaviour for numeric index values
+      2^31 and larger.  These never used to be legitimate and so were
+      treated as NA, sometimes with a warning.  They are now legal for
+      long vectors so there is no longer a warning, and x[2^31] <- y
+      will now extend the vector on a 64-bit platform and give an error
+      on a 32-bit one.
+
+    * It is now possible for 64-bit builds to allocate amounts of
+      memory limited only by the OS.  It may be wise to use OS
+      facilities (e.g., ulimit in a bash shell, limit in csh), to set
+      limits on overall memory consumption of an R process,
+      particularly in a multi-user environment.  A number of packages
+      need a limit of at least 4GB of virtual memory to load.
+
+      64-bit Windows builds of R are by default limited in memory usage
+      to the amount of RAM installed: this limit can be changed by
+      command-line option --max-mem-size or setting environment
+      variable R_MAX_MEM_SIZE.
+
+    * Negative numbers for colours are consistently an error:
+      previously they were sometimes taken as transparent, sometimes
+      mapped into the current palette and sometimes an error.
+
+  NEW FEATURES:
+
+    * identical() has a new argument, ignore.environment, used when
+      comparing functions (with default FALSE as before).
+
+    * There is a new option, options(CBoundsCheck=), which controls how
+      .C() and .Fortran() pass arguments to compiled code.  If true
+      (which can be enabled by setting the environment variable
+      R_C_BOUNDS_CHECK to yes), raw, integer, double and complex
+      arguments are always copied, and checked for writing off either
+      end of the array on return from the compiled code (when a second
+      copy is made).  This also checks individual elements of character
+      vectors passed to .C().
+
+      This is not intended for routine use, but can be very helpful in
+      finding segfaults in package code.
+
+    * In layout(), the limits on the grid size have been raised
+      (again).
+
+    * New simple provideDimnames() utility function.
+
+    * Where methods for length() return a double value which is
+      representable as an integer (as often happens for package
+      Matrix), this is converted to an integer.
+
+    * Matrix indexing of data frames by two-column numeric indices is
+      now supported for replacement as well as extraction.
+
+    * setNames() now has a default for its object argument, useful for
+      a character result.
+
+    * StructTS() has a revised additive constant in the loglik
+      component of the result: the previous definition is returned as
+      the loglik0 component.  However, the help page has always warned
+      of a lack of comparability of log-likelihoods for non-stationary
+      models.  (Suggested by Jouni Helske.)
+
+    * The logic in aggregate.formula() has been revised.  It is now
+      possible to use a formula stored in a variable; previously, it
+      had to be given explicitly in the function call.
+
+    * install.packages() has a new argument quiet to reduce the amount
+      of output shown.
+
+    * Setting an element of the graphics argument lwd to a negative or
+      infinite value is now an error.  Lines corresponding to elements
+      with values NA or NaN are silently omitted.
+
+      Previously the behaviour was device-dependent.
+
+    * Setting graphical parameters cex, col, lty, lwd and pch in par()
+      now requires a length-one argument.  Previously some silently
+      took the first element of a longer vector, but not always when
+      documented to do so.
+
+    * Sys.which() when used with inputs which would be unsafe in a
+      shell (e.g., absolute paths containing spaces) now uses
+      appropriate quoting.
+
+    * as.tclObj() has been extended to handle raw vectors.  Previously,
+      it only worked in the other direction.  (Contributed by Charlie
+      Friedemann, PR#14939.)
+
+    * New functions cite() and citeNatbib() have been added, to allow
+      generation of in-text citations from "bibentry" objects.  A
+      cite() function may be added to bibstyle() environments.
+
+    * A sort() method has been added for "bibentry" objects.
+
+    * The bibstyle() function now defaults to setting the default
+      bibliography style. The getBibstyle() function has been added to
+      report the name of the current default style.
+
+    * scatter.smooth() now has an argument lpars to pass arguments to
+      lines().
+
+    * pairs() has a new log argument, to allow some or all variables to
+      be plotted on logarithmic scale.  (In part, wish of PR#14919.)
+
+    * split() gains a sep argument.
+
+    * termplot() does a better job when given a model with interactions
+      (and no longer attempts to plot interaction terms).
+
+    * The parser now incorporates code from Romain Francois' parser
+      package, to support more detailed computation on the code, such
+      as syntax highlighting, comment-based documentation, etc.
+      Functions getParseData() and getParseText() access the data.
+
+    * There is a new function rep_len() analogous to rep.int() for when
+      speed is required (and names are not).
+
+    * The undocumented use rep(NULL, length.out = n) for n > 0 (which
+      returns NULL) now gives a warning.
+
+    * demo() gains an encoding argument for those packages with
+      non-ASCII demos: it defaults to the package encoding where there
+      is one.
+
+    * strwrap() converts inputs with a marked encoding to the current
+      locale: previously it made some attempt to pass through as bytes
+      inputs invalid in the current locale.
+
+    * Specifying both rate and scale to [dpqr]gamma is a warning (if
+      they are essentially the same value) or an error.
+
+    * merge() works in more cases where the data frames include
+      matrices.  (Wish of PR#14974.)
+
+    * optimize() and uniroot() no longer use a shared parameter object
+      across calls.  (nlm(), nlminb() and optim() with numerical
+      derivatives still do, as documented.)
+
+    * The all.equal() method for date-times is now documented: times
+      are regarded as equal (by default) if they differ by up to 1
+      msec.
+
+    * duplicated() and unique() gain a nmax argument which can be used
+      to make them much more efficient when it is known that there are
+      only a small number of unique entries.  This is done
+      automatically for factors.
+
+    * Functions rbinom(), rgeom(), rhyper(), rpois(), rnbinom(),
+      rsignrank() and rwilcox() now return integer (not double)
+      vectors.  This halves the storage requirements for large
+      simulations.
+
+    * sort(), sort.int() and sort.list() now use radix sorting for
+      factors of less than 100,000 levels when method is not supplied.
+      So does order() if called with a single factor, unless na.last =
+      NA.
+
+    * diag() as used to generate a diagonal matrix has been re-written
+      in C for speed and less memory usage.  It now forces the result
+      to be numeric in the case diag(x) since it is said to have 'zero
+      off-diagonal entries'.
+
+    * backsolve() (and forwardsolve()) are now internal functions, for
+      speed and support for large matrices.
+
+    * More matrix algebra functions (e.g., chol() and solve()) accept
+      logical matrices (and coerce to numeric).
+
+    * sample.int() has some support for n >= 2^31: see its help for the
+      limitations.
+
+      A different algorithm is used for (n, size, replace = FALSE, prob
+      = NULL) for n > 1e7 and size <= n/2.  This is much faster and
+      uses less memory, but does give different results.
+
+    * approxfun() and splinefun() now return a wrapper to an internal
+      function in the stats namespace rather than a .C() or .Call()
+      call.  This is more likely to work if the function is saved and
+      used in a different session.
+
+    * The functions .C(), .Call(), .External() and .Fortran() now give
+      an error (rather than a warning) if called with a named first
+      argument.
+
+    * Sweave() by default now reports the locations in the source
+      file(s) of each chunk.
+
+    * clearPushBack() is now a documented interface to a long-existing
+      internal call.
+
+    * aspell() gains filters for R code, Debian Control Format and
+      message catalog files, and support for R level dictionaries.  In
+      addition, package utils now provides functions
+      aspell_package_R_files() and aspell_package_C_files() for spell
+      checking R and C level message strings in packages.
+
+    * bibentry() gains some support for "incomplete" entries with a
+      crossref field.
+
+    * gray() and gray.colors() finally allow alpha to be specified.
+
+    * monthplot() gains parameters to control the look of the reference
+      lines.  (Suggestion of Ian McLeod.)
+
+    * Added support for new %~% relation ("is distributed as") in
+      plotmath.
+
+    * domain = NA is accepted by gettext() and ngettext(), analogously
+      to stop() etc.
+
+    * termplot() gains a new argument plot = FALSE which returns
+      information to allow the plots to be modified for use as part of
+      other plots, but does not plot them.  (Contributed by Terry
+      Therneau, PR#15076.)
+
+    * quartz.save(), formerly an undocumented part of R.app, is now
+      available to copy a device to a quartz() device.  dev.copy2pdf()
+      optionally does this for PDF output: quartz.save() defaults to
+      PNG.
+
+    * The default method of pairs() now allows text.panel = NULL and
+      the use of <foo>.panel = NULL is now documented.
+
+    * setRefClass() and getRefClass() now return class generator
+      functions, similar to setClass(), but still with the reference
+      fields and methods as before (suggestion of Romain Francois).
+
+    * New functions bitwNot(), bitwAnd(), bitwOr() and bitwXor(), using
+      the internal interfaces previously used for classes "octmode" and
+      "hexmode".
+
+      Also bitwShiftL() and bitwShiftR() for shifting bits in elements
+      of integer vectors.
+
+    * New option "deparse.cutoff" to control the deparsing of language
+      objects such as calls and formulae when printing.  (Suggested by
+      a comment of Sarah Goslee.)
+
+    * colors() gains an argument distinct.
+
+    * New demo(colors) and demo(hclColors), with utility functions.
+
+    * list.files() (aka dir()) gains a new optional argument no.. which
+      allows to exclude "." and ".." from listings.
+
+    * Multiple time series are also of class "matrix"; consequently,
+      head(), e.g., is more useful.
+
+    * encodeString() preserves UTF-8 marked encodings.  Thus if factor
+      levels are marked as UTF-8 an attempt is made to print them in
+      UTF-8 in RGui on Windows.
+
+    * readLines() and scan() (and hence read.table()) in a UTF-8 locale
+      now discard a UTF-8 byte-order-mark (BOM).  Such BOMs are allowed
+      but not recommended by the Unicode Standard: however Microsoft
+      applications can produce them and so they are sometimes found on
+      websites.
+
+      The encoding name "UTF-8-BOM" for a connection will ensure that a
+      UTF-8 BOM is discarded.
+
+    * mapply(FUN, a1, ..) now also works when a1 (or a further such
+      argument) needs a length() method (which the documented arguments
+      never do).  (Requested by Herv'e Pag`es; with a patch.)
+
+    * .onDetach() is supported as an alternative to .Last.lib.  Unlike
+      .Last.lib, this does not need to be exported from the package's
+      namespace.
+
+    * The srcfile argument to parse() may now be a character string, to
+      be used in error messages.
+
+    * The format() method for ftable objects gains a method argument,
+      propagated to write.ftable() and print(), allowing more compact
+      output, notably for LaTeX formatting, thanks to Marius Hofert.
+
+    * The utils::process.events() function has been added to trigger
+      immediate event handling.
+
+    * Sys.which() now returns NA (not "") for NA inputs (related to
+      PR#15147).
+
+    * The print() method for class "htest" gives fewer trailing spaces
+      (wish of PR#15124).
+
+      Also print output from HoltWinters(), nls() and others.
+
+    * loadNamespace() allows a version specification to be given, and
+      this is used to check version specifications given in the Imports
+      field when a namespace is loaded.
+
+    * setClass() has a new argument, slots, clearer and less ambiguous
+      than representation.  It is recommended for future code, but
+      should be back-compatible.  At the same time, the allowed slot
+      specification is slightly more general.  See the documentation
+      for details.
+
+    * mget() now has a default for envir (the frame from which it is
+      called), for consistency with get() and assign().
+
+    * close() now returns an integer status where available, invisibly.
+      (Wish of PR#15088.)
+
+    * The internal method of tar() can now store paths too long for the
+      ustar format, using the (widely supported) GNU extension.  It can
+      also store long link names, but these are much less widely
+      supported.  There is support for larger files, up to the ustar
+      limit of 8GB.
+
+    * Local reference classes have been added to package methods.
+      These are a technique for avoiding unneeded copying of large
+      components of objects while retaining standard R functional
+      behavior.  See ?LocalReferenceClasses.
+
+    * untar() has a new argument restore_times which if false (not the
+      default) discards the times in the tarball.  This is useful if
+      they are incorrect (some tarballs submitted to CRAN have times in
+      a local time zone or many years in the past even though the
+      standard required them to be in UTC).
+
+    * replayplot() cannot (and will not attempt to) replay plots
+      recorded under R < 3.0.0.  It may crash the R session if an
+      attempt is made to replay plots created in a different build of R
+      >= 3.0.0.
+
+    * Palette changes get recorded on the display list, so replaying
+      plots (including when resizing screen devices and using
+      dev.copy()) will work better when the palette is changed during a
+      plot.
+
+    * chol(pivot = TRUE) now defaults to LAPACK, not LINPACK.
+
+    * The parse() function has a new parameter keep.source, which
+      defaults to options("keep.source").
+
+    * Profiling via Rprof() now optionally records information at the
+      statement level, not just the function level.
+
+    * The Rprof() function now quotes function names in in its output
+      file on Windows, to be consistent with the quoting in Unix.
+
+    * Profiling via Rprof() now optionally records information about
+      time spent in GC.
+
+    * The HTML help page for a package now displays non-vignette
+      documentation files in a more accessible format.
+
+    * To support options(stringsAsFactors = FALSE), model.frame(),
+      model.matrix() and replications() now automatically convert
+      character vectors to factors without a warning.
+
+    * The print method for objects of class "table" now detects tables
+      with 0-extents and prints the results as, e.g., < table of extent
+      0 x 1 x 2 >. (Wish of PR#15198.)
+
+    * Deparsing involving calls to anonymous functions has been made
+      closer to reversible by the addition of extra parentheses.
+
+    * The function utils::packageName() has been added as a lightweight
+      version of methods::getPackageName().
+
+    * find.package(lib.loc = NULL) now treats loaded namespaces
+      preferentially in the same way as attached packages have been for
+      a long time.
+
+    * In Windows, the Change Directory dialog now defaults to the
+      current working directory, rather than to the last directory
+      chosen in that dialog.
+
+    * available.packages() gains a "license/restricts_use" filter which
+      retains only packages for which installation can proceed solely
+      based on packages which are guaranteed not to restrict use.
+
+    * New check_packages_in_dir() function in package tools for
+      conveniently checking source packages along with their reverse
+      dependencies.
+
+    * R's completion mechanism has been improved to handle help
+      requests (starting with a question mark).  In particular, help
+      prefixes are now supported, as well as quoted help topics.  To
+      support this, completion inside quotes are now handled by R by
+      default on all platforms.
+
+    * The memory manager now allows the strategy used to balance
+      garbage collection and memory growth to be controlled by setting
+      the environment variable R_GC_MEM_GROW. See ?Memory for more
+      details.
+
+    * ('For experts only', as the introductory manual says.)  The use
+      of environment variables R_NSIZE and R_VSIZE to control the
+      initial (= minimum) garbage collection trigger for number of cons
+      cels and size of heap has been restored: they can be overridden
+      by the command-line options --min-nsize and --min-vsize; see
+      ?Memory.
+
+    * On Windows, the device name for bitmap devices as reported by
+      .Device and .Devices no longer includes the file name.  This is
+      for consistency with other platforms and was requested by the
+      lattice maintainer.
+
+      win.metafile() still uses the file name: the exact form is used
+      by package tkrplot.
+
+    * set.seed(NULL) re-initializes .Random.seed as done at the
+      beginning of the session if not already set.  (Suggestion of Bill
+      Dunlap.)
+
+    * The breaks argument in hist.default() can now be a function that
+      returns the breakpoints to be used (previously it could only
+      return the suggested number of breakpoints).
+
+    * File share/licenses/licenses.db has some clarifications,
+      especially as to which variants of 'BSD' and 'MIT' is intended
+      and how to apply them to packages.  The problematic licence
+      'Artistic-1.0' has been removed.
+
+  LONG VECTORS:
+
+  This section applies only to 64-bit platforms.
+
+    * There is support for vectors longer than 2^31 - 1 elements.  This
+      applies to raw, logical, integer, double, complex and character
+      vectors, as well as lists.  (Elements of character vectors remain
+      limited to 2^31 - 1 bytes.)
+
+    * Most operations which can sensibly be done with long vectors
+      work: others may return the error 'long vectors not supported
+      yet'.  Most of these are because they explicitly work with
+      integer indices (e.g., anyDuplicated() and match()) or because
+      other limits (e.g., of character strings or matrix dimensions)
+      would be exceeded or the operations would be extremely slow.
+
+    * length() returns a double for long vectors, and lengths can be
+      set to 2^31 or more by the replacement function with a double
+      value.
+
+    * Most aspects of indexing are available.  Generally double-valued
+      indices can be used to access elements beyond 2^31 - 1.
+
+    * There is some support for matrices and arrays with each dimension
+      less than 2^31 but total number of elements more than that.  Only
+      some aspects of matrix algebra work for such matrices, often
+      taking a very long time.  In other cases the underlying Fortran
+      code has an unstated restriction (as was found for complex
+      svd()).
+
+    * dist() can produce dissimilarity objects for more than 65536 rows
+      (but for example hclust() cannot process such objects).
+
+    * serialize() to a raw vector is unlimited in size (except by
+      resources).
+
+    * The C-level function R_alloc can now allocate 2^35 or more bytes.
+
+    * agrep() and grep() will return double vectors of indices for long
+      vector inputs.
+
+    * Many calls to .C() have been replaced by .Call() to allow long
+      vectors to be supported (now or in the future).  Regrettably
+      several packages had copied the non-API .C() calls and so failed.
+
+    * .C() and .Fortran() do not accept long vector inputs.  This is a
+      precaution as it is very unlikely that existing code will have
+      been written to handle long vectors (and the R wrappers often
+      assume that length(x) is an integer).
+
+    * Most of the methods for sort() work for long vectors.
+
+      rank(), sort.list() and order() support long vectors (slowly
+      except for radix sorting).
+
+    * sample() can do uniform sampling from a long vector.
+
+  PERFORMANCE IMPROVEMENTS:
+
+    * More use has been made of R objects representing registered entry
+      points, which is more efficient as the address is provided by the
+      loader once only when the package is loaded.
+
+      This has been done for packages base, methods, splines and tcltk:
+      it was already in place for the other standard packages.
+
+      Since these entry points are always accessed by the R entry
+      points they do not need to be in the load table which can be
+      substantially smaller and hence searched faster.  This does mean
+      that .C / .Fortran / .Call calls copied from earlier versions of
+      R may no longer work - but they were never part of the API.
+
+    * Many .Call() calls in package base have been migrated to
+      .Internal() calls.
+
+    * solve() makes fewer copies, especially when b is a vector rather
+      than a matrix.
+
+    * eigen() makes fewer copies if the input has dimnames.
+
+    * Most of the linear algebra functions make fewer copies when the
+      input(s) are not double (e.g., integer or logical).
+
+    * A foreign function call (.C() etc) in a package without a PACKAGE
+      argument will only look in the first DLL specified in the
+      NAMESPACE file of the package rather than searching all loaded
+      DLLs.  A few packages needed PACKAGE arguments added.
+
+    * The @<- operator is now implemented as a primitive, which should
+      reduce some copying of objects when used.  Note that the operator
+      object must now be in package base: do not try to import it
+      explicitly from package methods.
+
+  PACKAGE INSTALLATION:
+
+    * The transitional support for installing packages without
+      namespaces (required since R 2.14.0) has been removed.  R CMD
+      build will still add a namespace, but a .First.lib() function
+      will need to be converted.
+
+      R CMD INSTALL no longer adds a namespace (so installation will
+      fail), and a .First.lib() function in a package will be ignored
+      (with an installation warning for now).
+
+      As an exception, packages without a R directory and no NAMESPACE
+      file can still be installed.
+
+    * Packages can specify in their DESCRIPTION file a line like
+      
+           Biarch: yes
+
+      to be installed on Windows with --force-biarch.
+
+    * Package vignettes can now be processed by other engines besides
+      Sweave; see 'Writing R Extensions' and the tools::vignetteEngine
+      help topic for details.
+
+    * The *.R tangled source code for vignettes is now included in
+      tarballs when R CMD build is used to produce them.  In R 3.0.0,
+      *.R files not in the sources will be produced at install time,
+      but eventually this will be dropped.
+
+    * The package type "mac.binary" now looks in a path in the
+      repository without any Mac subtype (which used to be universal or
+      leopard): it looks in bin/macosx/contrib/3.0 rather than
+      bin/macosx/leopard/contrib/2.15).  This is the type used for the
+      CRAN binary distribution for OS X as from R 3.0.0.
+
+    * File etc/Makeconf makes more use of the macros $(CC), $(CXX),
+      $(F77) and $(FC), so the compiler in use can be changed by
+      setting just these (and if necessary the corresponding flags and
+      FLIBS) in file ~/.R/Makevars.
+
+      This is convenient for those working with binary distributions of
+      R, e.g. on OS X.
+
+  UTILITIES:
+
+    * R CMD check now gives a warning rather than a note if it finds
+      calls to abort, assert or exit in compiled code, and has been
+      able to find the .o file in which the calls occur.
+
+      Such calls can terminate the R process which loads the package.
+
+    * The location of the build and check environment files can now be
+      specified by the environment variables R_BUILD_ENVIRON and
+      R_CHECK_ENVIRON, respectively.
+
+    * R CMD Sweave gains a --compact option to control possibly
+      reducing the size of the PDF file it creates when --pdf is given.
+
+    * R CMD build now omits Eclipse's .metadata directories, and R CMD
+      check warns if it finds them.
+
+    * R CMD check now does some checks on functions defined within
+      reference classes, including of .Call() etc calls.
+
+    * R CMD check --as-cran notes assignments to the global
+      environment, calls to data() which load into the global
+      environment, and calls to attach().
+
+    * R CMD build by default uses the internal method of tar() to
+      prepare the tarball.  This is more likely to produce a tarball
+      compatible with R CMD INSTALL and R CMD check: an external tar
+      program, including options, can be specified _via_ the
+      environment variable R_BUILD_TAR.
+
+    * tools::massageExamples() is better protected against packages
+      which re-define base functions such as cat() and get() and so can
+      cause R CMD check to fail when checking examples.
+
+    * R CMD javareconf has been enhanced to be more similar to the code
+      used by configure.
+
+      There is now a test that a JNI program can be compiled (like
+      configure did) and only working settings are used.
+
+      It makes use of custom settings from configuration recorded in
+      etc/javaconf.
+
+    * The --no-vignettes argument of R CMD build has been renamed to
+      the more accurate --no-build-vignettes: its action has always
+      been to (re)build vignettes and never omitted them.
+
+      R CMD check accepts --no-build-vignettes as a preferred synonym
+      for --no-rebuild-vignettes.
+
+  DEPRECATED AND DEFUNCT:
+
+    * The ENCODING argument to .C() is defunct.  Use iconv() instead.
+
+    * The .Internal(eval.with.vis) non-API function has been removed.
+
+    * Support for the converters for use with .C() has been removed,
+      including the oft misused non-API header R_ext/RConverters.h.
+
+    * The previously deprecated uses of array() with a 0-length dim
+      argument and tapply() with a 0-length INDEX list are now errors.
+
+    * Translation packages are defunct.
+
+    * Calling rep() or rep.int() on a pairlist or other non-vector
+      object is now an error.
+
+    * Several non-API entry points have been transferred to packages
+      (e.g., R_zeroin2) or replaced by different non-API entry points
+      (e.g., R_tabulate).
+
+    * The 'internal' graphics device invoked by
+      .Call("R_GD_nullDevice", package = "grDevices") has been removed:
+      use pdf(file = NULL) instead.
+
+    * The .Fortran() entry point "dqrls" which has not been used by R
+      since version 2.15.1 is no longer available.
+
+    * Functions traceOn() and traceOff() in package methods are now
+      defunct.
+
+    * Function CRAN.packages() is finally defunct.
+
+    * Use of col2rgb(0) is defunct: use par("bg") or NA instead.
+
+    * The long-defunct functions Rd_parse(), anovalist.lm(),
+      categpry(), clearNames(), gammaCody(), glm.fit.null(),
+      lm.fit.null(), lm.wfit.null(), manglePackageNames(),
+      mauchley.test(), package.contents(), print.coefmat(),
+      reshapeLong(), reshapeWide(), tkclose(), tkcmd(), tkfile.dir(),
+      tkfile.tail(), tkopen(), tkputs(), tkread(), trySilent() and
+      zip.file.extract() have been removed entirely (but are still
+      documented in the help system).
+
+    * The unused dataPath argument to attachNamespace() has been
+      removed.
+
+    * grid.prompt() has been removed: use devAskNewPage() instead.
+
+    * The long-deprecated intensities component is no longer returned
+      by hist().
+
+    * mean() for data frames and sd() for data frames and matrices are
+      defunct.
+
+    * chol(pivot = FALSE, LINPACK = TRUE), ch2inv(LINPACK = TRUE),
+      eigen(EISPACK = TRUE), solve(LINPACK = TRUE) and svd(LINPACK =
+      TRUE) are defunct: LAPACK will be used, with a warning.
+
+    * The keep.source argument to library() and require() is defunct.
+      This option needs to be set at install time.
+
+    * Documentation for real(), as.real() and is.real() has been moved
+      to 'defunct' and the functions removed.
+
+    * The maxRasters argument of pdf() (unused since R 2.14.0) has been
+      removed.
+
+    * The unused fontsmooth argument has been removed from the quartz()
+      device.
+
+    * All the (non-API) EISPACK entry points in R have been removed.
+
+    * chol(pivot = TRUE, LINPACK = TRUE) is deprecated.
+
+    * The long-deprecated use of \synopsis in the Usage section of .Rd
+      files will be removed in R 3.1.0.
+
+    * .find.package() and .path.package() are deprecated: only the
+      public versions without the dot have ever been in the API.
+
+    * In a package's DESCRIPTION file,
+      
+          License: X11
+
+      is deprecated, since it includes 'Copyright (C) 1996 X
+      Consortium' which cannot be appropriate for a current R package.
+      Use 'MIT' or 'BSD_2_clause' instead.
+
+  CODE MIGRATION:
+
+    * The C code underlying base graphics has been migrated to the
+      graphics package (and hence no longer uses .Internal() calls).
+
+    * Most of the .Internal() calls used in the stats package have been
+      migrated to C code in that package.
+
+      This means that a number of .Internal() calls which have been
+      used by packages no longer exist, including .Internal(cor)
+      .Internal(cov), .Internal(optimhess) and
+      .Internal(update.formula).
+
+    * Some .External() calls to the base package (really to the R
+      executable or shared library) have been moved to more appropriate
+      packages.  Packages should not have been using such calls, but
+      some did (mainly those used by integrate()).
+
+  PACKAGE parallel:
+
+    * There is a new function mcaffinity() which allows getting or
+      setting the CPU affinity mask for the current R process on
+      systems that supports this (currently only Linux has been tested
+      successfully).  It has no effect on systems which do not support
+      process affinity.  Users are not expected to use this function
+      directly (with the exception of fixing libraries that break
+      affinity settings like OpenBLAS) - the function is rather
+      intended to support affinity control in high-level parallel
+      functions.  In the future, R may supplement lack of affinity
+      control in the OS by its own bookkeeping via mcaffinity() related
+      to processes and threads it spawns.
+
+    * mcparallel() has a new argument mc.affinity which attempts to set
+      the affinity of the child process according to the specification
+      contained therein.
+
+    * The port used by socket clusters is chosen randomly: this should
+      help to avoid clashes observed when two users of a multi-user
+      machine try to create a cluster at the same time.  To reproduce
+      the previous behaviour set environment variable R_PARALLEL_PORT
+      to 10187.
+
+  C-LEVEL FACILITIES:
+
+    * There has been some minor re-organization of the non-API header
+      files.  In particular, Rinternals.h no longer includes the
+      non-API header R_exts/PrtUtil.h, and that no longer includes
+      R_exts/Print.h.
+
+    * Passing NULL to .C() is now an error.
+
+    * .C() and .Fortran() now warn if "single" arguments are used with
+      DUP = FALSE, as changes to such arguments are not returned to the
+      caller.
+
+    * C entry points R_qsort and R_qsort_I now have start and end as
+      size_t to allow them to work with longer vectors on 64-bit
+      platforms.  Code using them should be recompiled.
+
+    * A few recently added C entry points were missing the remapping to
+      Rf_, notably [dpq]nbinom_mu.
+
+    * Some of the interface pointers formerly available only to R.app
+      are now available to front-ends on all Unix-alikes: one has been
+      added for the interface to View().
+
+    * PACKAGE = "" is now an error in .C() etc calls: it was always
+      contrary to the documentation.
+
+    * Entry point rcont2 has been migrated to package stats and so is
+      no longer available.
+
+    * R_SVN_REVISION in Rversion.h is now an integer (rather than a
+      string) and hence usable as e.g.  #if R_SVN_REVISION < 70000.
+
+    * The entry points rgb2hsv and hsv2rgb have been migrated to
+      package grDevices and so are no longer available.
+
+    * R_GE_version has been increased to 10 and name2col removed (use
+      R_GE_str2col instead).  R internal colour codes are now defined
+      using the typedef rcolor.
+
+    * The REPROTECT macro now checks that the protect index is valid.
+
+    * Several non-API entry points no longer used by R have been
+      removed, including the Fortran entry points chol, chol2inv, cg,
+      ch and rg, and the C entry points Brent_fmin, fft_factor and
+      fft_work.
+
+    * If a .External call is registered with a number of arguments
+      (other than -1), the number of arguments passed is checked for
+      each call (as for other foreign function calls).
+
+    * It is now possible to write custom connection implementations
+      outside core R using R_ext/Connections.h.  Please note that the
+      implementation of connections is still considered internal and
+      may change in the future (see the above file for details).
+
+  INTERNATIONALIZATION:
+
+    * The management of translations has been converted to R code: see
+      ?tools::update_pkg_po.
+
+    * The translations for the R interpreter and RGui.exe are now part
+      of the base package (rather than having sources in directory po
+      and being installed to share/locale).  Thus the base package
+      supports three translation domains, R-base, R and RGui.
+
+    * The compiled translations which ship with R are all installed to
+      the new package translations for easier updating.  The first
+      package of that name found on .libPaths() at the start of the R
+      session will be used.  (It is possible messages will be used
+      before .libPaths() is set up in which case the default
+      translations will be used: set environment variable
+      R_TRANSLATIONS to point to the location of the intended
+      translations package to use this right from the start.)
+
+    * The translations form a separate group in the Windows installer,
+      so can be omitted if desired.
+
+    * The markup for many messages has been changed to make them easier
+      to translate, incorporating suggestions from Lukasz Daniel.
+
+  INSTALLATION:
+
+    * There is again support for building without using the C 'long
+      double' type.  This is required by C99, but system
+      implementations can be slow or flawed.  Use configure option
+      --disable-long-double.
+
+    * make pdf and make install-pdf now make and install the full
+      reference index (including all base and recommended packages).
+
+    * The 'reference manual' on the Windows GUI menu and included in
+      the installer is now the full reference index, including all base
+      and recommended packages.
+
+    * R help pages and manuals have no ISBNs because ISBN rules no
+      longer allow constantly changing content to be assigned an ISBN.
+
+    * The Windows installer no longer installs a Start Menu link to the
+      static help pages; as most pages are generated dynamically, this
+      led to a lot of broken links.
+
+    * Any custom settings for Java configuration are recorded in file
+      etc/javaconf for subsequent use by R CMD javareconf.
+
+    * There is now support for makeinfo version 5.0 (which requires a
+      slightly different .texi syntax).
+
+    * The minimum versions for --use-system-zlib and --use-system-pcre
+      are now tested as 1.2.5 and 8.10 respectively.
+
+    * On Windows, the stack size is reduced to 16MB on 32-bit systems:
+      misguided users were launching many threads without controlling
+      the stack size.
+
+    * configure no longer looks for file ~/.Rconfig: ~/.R/config has
+      long been preferred.
+
+  BUG FIXES:
+
+    * When R CMD build is run in an encoding other than the one
+      specified in the package's DESCRIPTION file it tries harder to
+      expand the authors@R field in the specified encoding.  (PR#14958)
+
+    * If R CMD INSTALL is required to expand the authors@R field of the
+      DESCRIPTION file, it tries harder to do so in the encoding
+      specified for the package (rather than using ASCII escapes).
+
+    * Fix in package grid for pushing a viewport into a layout cell,
+      where the layout is within a viewport that has zero physical
+      width OR where the layout has zero total relative width (likewise
+      for height).  The layout column widths (or row heights) in this
+      case were being calculated with non-finite values.  (Reported by
+      Winston Chang.)
+
+    * solve(A, b) for a vector b gave the answer names from colnames(A)
+      for LINPACK = TRUE but not in the default case.
+
+    * La.svd() accepts logical matrices (as documented, and as svd()
+      did).
+
+    * legend() now accepts negative pch values, in the same way
+      points() long has.
+
+    * Parse errors when installing files now correctly display the name
+      of the file containing the bad code.
+
+    * In Windows, tcltk windows were not always properly constructed.
+      (PR#15150)
+
+    * The internal functions implementing parse(), tools::parseLatex()
+      and tools::parse_Rd() were not reentrant, leading to errors in
+      rare circumstances such as a garbage collection triggering a
+      recursive call.
+
+    * Field assignments in reference class objects via $<- were not
+      being checked because the magic incantation to turn methods on
+      for that primitive operator had been inadvertently omitted.
+
+    * setHook(hookname, value, action="replace") set the hook to be the
+      value, rather than a list containing the value as documented.
+      (PR#15167)
+
+    * If a package used a NEWS.Rd file, the main HTML package index
+      page did not link to it.  (Reported by Dirk Eddelbuettel.)
+
+    * The primitive implementation of @<- was not checking the class of
+      the replacement.  It now does a check, quicker but less general
+      than slot<-. See the help.
+
+    * split(x, f) now recycles classed objects x in the same way as
+      vectors.  (Reported by Martin Morgan.)
+
+    * pbeta(.28, 1/2, 2200, lower.tail=FALSE, log.p=TRUE) is no longer
+      -Inf; ditto for corresponding pt() and pf() calls, such as pt(45,
+      df=5000, lower.tail=FALSE, log.p=TRUE). (PR#15162)
+
+    * The Windows graphics device would crash R if a user attempted to
+      load the graphics history from a variable that was not a saved
+      history. (PR#15230)
+
+    * The workspace size for the predict() method for loess() could
+      exceed the maximum integer size.  (Reported by Hiroyuki
+      Kawakatsu.)
+
+    * ftable(x, row.vars, col.vars) now also works when the *.vars
+      arguments are (integer or character vectors) of length zero.
+
+    * Calling cat() on a malformed UTF-8 string could cause the Windows
+      GUI to lock up. (PR#15227)
+
+    * removeClass(cc) gave "node stack overflow" for some class
+      definitions containing "array" or "matrix".
+
+CHANGES in previous versions:
+
+  * Older news can be found in text format in files NEWS.0, NEWS.1 and
+    NEWS.2 in the doc directory.  News in HTML format for R versions
+    from 2.10.0 to 2.15.3 is in doc/html/NEWS.2.html.
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/BioC_mirrors.csv
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/BioC_mirrors.csv	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/BioC_mirrors.csv	(revision 2476)
@@ -0,0 +1,16 @@
+Name,Country,City,URL,Host,Maintainer,OK,CountryCode
+0-Bioconductor (World-wide),0-Bioconductor,World-wide,http://bioconductor.org/,"Bioconductor, automatic redirection to servers worldwide",Bioconductor Maintainer <maintainer # bioconductor.org>,1,us
+0-Bioconductor (World-wide) [https],0-Bioconductor,World-wide,https://bioconductor.org/,"Bioconductor, automatic redirection to servers worldwide",Bioconductor Maintainer <maintainer # bioconductor.org>,1,us
+United States (Rockville),United States,Rockville,http://watson.nci.nih.gov/bioc_mirror/,"National Cancer Institute, National Institutes of Health",Sean Davis <sdavis2 # mail.nih.gov>,1,us
+Brazil/Latin America (Ribeirão Preto),Brazil/Latin America,Ribeirão Preto,http://bioconductor.fmrp.usp.br/,"Department of Genetics, Medical School of Ribeirão Preto, University of São Paulo",Houtan Noushmehr <houtan # usp.br>,1,br
+Germany (Dortmund),Germany,Dortmund,http://bioconductor.statistik.tu-dortmund.de/,"Department of Statistics, TU Dortmund",Uwe Ligges <ligges # statistik.tu-dortmund.de>,1,de
+Germany (Dortmund) [https],Germany,Dortmund,https://bioconductor.statistik.tu-dortmund.de/,"Department of Statistics, TU Dortmund",Uwe Ligges <ligges # statistik.tu-dortmund.de>,1,de
+Belgium (Antwerp),Belgium,Antwerp,http://bioc.openanalytics.eu/,OpenAnalytics,Willem Ligtenberg <willem.ligtenberg # openanalytics.eu>,0,be
+United Kingdom (Hinxton),United Kingdom,Hinxton,http://mirrors.ebi.ac.uk/bioconductor/,European Bioinformatics Institute,Andrew Tikhonov <andrew # ebi.ac.uk>,1,uk
+United Kingdom (Hinxton) [https],United Kingdom,Hinxton,https://mirrors.ebi.ac.uk/bioconductor/,European Bioinformatics Institute,Andrew Tikhonov <andrew # ebi.ac.uk>,1,uk
+Japan (Tachikawa),Japan,Tachikawa,http://bioc.ism.ac.jp/,The Institute of Statistical Mathematics,Keisuke Honda <khonda # ism.ac.jp>,1,jp
+Japan (Wako),Japan,Wako,http://bioconductor.riken.jp/,RIKEN Advanced Center for Computing and Communication,"Itoshi NIKAIDO, Ph.D. <dritoshi # gmail.com>",1,jp
+Japan (Wako) [https],Japan,Wako,https://bioconductor.riken.jp/,RIKEN Advanced Center for Computing and Communication,"Itoshi NIKAIDO, Ph.D. <dritoshi # gmail.com>",1,jp
+China (Anhui),China,Anhui,http://mirrors.ustc.edu.cn/bioc/,University of Science and Technology of China,Mirror Maintainer <mirrors # ustc.edu.cn>,1,cn
+China (Anhui) [https],China,Anhui,https://mirrors.ustc.edu.cn/bioc/,University of Science and Technology of China,Mirror Maintainer <mirrors # ustc.edu.cn>,1,cn
+Australia (Sydney),Australia,Sydney,http://mirror.aarnet.edu.au/pub/bioconductor/,Australia's Academic and Research Network,Alex Dodson <alex.dodson # aarnet.edu.au>,1,au
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS.pdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/NEWS.pdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/AUTHORS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/AUTHORS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/AUTHORS	(revision 2476)
@@ -0,0 +1,38 @@
+Authors of R.
+
+R was initially written by Robert Gentleman and Ross Ihaka—also known as "R & R"
+of the Statistics Department of the University of Auckland.
+
+Since mid-1997 there has been a core group with write access to the R
+source, currently consisting of
+
+Douglas Bates
+John Chambers
+Peter Dalgaard
+Seth Falcon
+Robert Gentleman
+Kurt Hornik
+Ross Ihaka
+Michael Lawrence
+Friedrich Leisch
+Uwe Ligges
+Thomas Lumley
+Martin Maechler
+Martin Morgan
+Duncan Murdoch
+Paul Murrell
+Martyn Plummer
+Brian Ripley
+Deepayan Sarkar
+Duncan Temple Lang
+Luke Tierney
+Simon Urbanek
+
+plus Heiner Schwarte up to October 1999, Guido Masarotto up to June 2003 and
+Stefano Iacus up to July 2014.
+
+Current R-core members can be contacted via email to R-project.org
+with name made up by replacing spaces by dots in the name listed above.
+
+(The authors of code from other projects included in the R distribution
+are listed in the COPYRIGHTS file.)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/THANKS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/THANKS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/THANKS	(revision 2476)
@@ -0,0 +1,67 @@
+R would not be what it is today without the invaluable help of these
+people, who contributed by donating code, bug fixes and documentation:
+
+Valerio Aimale, Thomas Baier, Henrik Bengtsson, Roger Bivand,
+Ben Bolker, David Brahm, G"oran Brostr"om, Patrick Burns, Vince Carey,
+Saikat DebRoy, Matt Dowle, Brian D'Urso, Lyndon Drake, Dirk Eddelbuettel,
+Claus Ekstrom, Sebastian Fischmeister, John Fox, Paul Gilbert,
+Yu Gong, Gabor Grothendieck, Frank E Harrell Jr, Torsten Hothorn,
+Robert King, Kjetil Kjernsmo, Roger Koenker, Philippe Lambert,
+Jan de Leeuw, Jim Lindsey, Patrick Lindsey, Catherine Loader,
+Gordon Maclean, John Maindonald, David Meyer, Ei-ji Nakama,
+Jens Oehlschaegel, Steve Oncley, Richard O'Keefe, Hubert Palme,
+Roger D. Peng, Jose' C. Pinheiro, Tony Plate, Anthony Rossini,
+Jonathan Rougier, Petr Savicky, Guenther Sawitzki, Marc Schwartz,
+Arun Srinivasan, Detlef Steuer, Bill Simpson, Gordon Smyth, Adrian Trapletti,
+Terry Therneau, Rolf Turner, Bill Venables, Gregory R. Warnes,
+Andreas Weingessel, Morten Welinder, James Wettenhall, Simon Wood, and
+Achim Zeileis.
+
+Others have written code that has been adopted by R and is
+acknowledged in the code files, including
+
+J. D. Beasley, David J. Best, Richard Brent, Kevin Buhr, Michael
+A. Covington, Bill Cleveland, Robert Cleveland,, G. W. Cran,
+C. G. Ding, Ulrich Drepper, Paul Eggert, J. O. Evans, David M. Gay,
+H. Frick, G. W. Hill, Richard H. Jones, Eric Grosse, Shelby Haberman,
+Bruno Haible, John Hartigan, Andrew Harvey, Trevor Hastie, Min Long
+Lam, George Marsaglia, K. J. Martin, Gordon Matzigkeit,
+C. R. Mckenzie, Jean McRae, Cyrus Mehta, Fionn Murtagh, John C. Nash,
+Finbarr O'Sullivan, R. E. Odeh, William Patefield, Nitin Patel, Alan
+Richardson, D. E. Roberts, Patrick Royston, Russell Lenth, Ming-Jen
+Shyu, Richard C. Singleton, S. G. Springer, Supoj Sutanthavibul, Irma
+Terpenning, G. E. Thomas, Rob Tibshirani, Wai Wan Tsang, Berwin
+Turlach, Gary V. Vaughan, Michael Wichura, Jingbo Wang, M. A. Wong,
+and the Free Software Foundation (for autoconf code and utilities).
+See also files under src/extras.
+
+Many more, too numerous to mention here, have contributed by sending bug
+reports and suggesting various improvements.
+
+Simon Davies whilst at the University of Auckland wrote the original
+version of glm().
+
+Julian Harris and Wing Kwong (Tiki) Wan whilst at the University of
+Auckland assisted Ross Ihaka with the original Macintosh port.
+
+R was inspired by the S environment which has been principally
+developed by John Chambers, with substantial input from Douglas Bates,
+Rick Becker, Bill Cleveland, Trevor Hastie, Daryl Pregibon and
+Allan Wilks.
+
+A special debt is owed to John Chambers who has graciously contributed
+advice and encouragement in the early days of R and later became a
+member of the core team.
+
+
+
+The R Foundation may decide to give out <first.lastname>@R-project.org
+email addresses to contributors to the R Project (even without making them
+members of the R Foundation) when in the view of the R Foundation this
+would help advance the R project.
+
+The R Core Group, Roger Bivand, Dirk Eddelbuettel, John Fox, Torsten
+Hothorn, Stefano Iacus, Marc Schwartz, Bill Venables, Hadley Wickham
+and Achim Zeileis are the ordinary members of the R Foundation.  In
+addition, David Meyer and Simon Wood are also e-addressable by
+<Firstname>.<Lastname>@R-project.org.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/CRAN_mirrors.csv
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/CRAN_mirrors.csv	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/CRAN_mirrors.csv	(revision 2476)
@@ -0,0 +1,148 @@
+Name,Country,City,URL,Host,Maintainer,OK,CountryCode,Comment
+"0-Cloud [https]",0-Cloud,0-Cloud,https://cloud.r-project.org/,"Automatic redirection to servers worldwide, currently sponsored by Rstudio","winston # stdout.org",1,us,"secure_mirror_from_master"
+0-Cloud,0-Cloud,0-Cloud,http://cloud.r-project.org/,"Automatic redirection to servers worldwide, currently sponsored by Rstudio","winston # stdout.org",1,us,"secure_mirror_from_master"
+"Algeria [https]",Algeria,Algiers,https://cran.usthb.dz/,"University of Science and Technology Houari Boumediene","Boukala m c <mboukala # usthb.dz>",1,dz
+Algeria,Algeria,Algiers,http://cran.usthb.dz/,"University of Science and Technology Houari Boumediene","Boukala m c <mboukala # usthb.dz>",1,dz
+"Argentina (La Plata)",Argentina,"La Plata",http://mirror.fcaglp.unlp.edu.ar/CRAN/,"Universidad Nacional de La Plata","esuarez # Fcaglp.unlp.edu.ar",1,ar
+"Australia (Canberra)",Australia,Canberra,http://cran.csiro.au/,CSIRO,"Bill.Venables # CSIRO.au, ServiceDesk2 # CSIRO.au",1,au
+"Australia (Melbourne) [https]",Australia,Melbourne,https://cran.ms.unimelb.edu.au/,"University of Melbourne","cran # ms.unimelb.edu.au",1,au,"secure_mirror_from_master"
+"Australia (Melbourne)",Australia,Melbourne,http://cran.ms.unimelb.edu.au/,"University of Melbourne","cran # ms.unimelb.edu.au",1,au,"secure_mirror_from_master"
+"Australia (Perth) [https]",Australia,Perth,https://cran.curtin.edu.au/,"Curtin University of Technology","unix # curtin.edu.au",1,au,"secure_mirror_from_master"
+"Austria [https]",Austria,Wien,https://cran.wu.ac.at/,"Wirtschaftsuniversität Wien","CRAN # R-project.org",1,at
+Austria,Austria,Wien,http://cran.wu.ac.at/,"Wirtschaftsuniversität Wien","CRAN # R-project.org",1,at
+"Belgium (Antwerp)",Belgium,Antwerp,http://www.freestatistics.org/cran/,"K.U.Leuven Association","patrick # wessa.net",1,be
+"Belgium (Ghent) [https]",Belgium,Ghent,https://lib.ugent.be/CRAN/,"Ghent University Library","Patrick Hochstenbach <Patrick.Hochstenbach # UGent.be>",1,be,"secure_mirror_from_master"
+"Belgium (Ghent)",Belgium,Ghent,http://lib.ugent.be/CRAN/,"Ghent University Library","Patrick Hochstenbach <Patrick.Hochstenbach # UGent.be>",1,be,"secure_mirror_from_master"
+"Brazil (BA)",Brazil,Ilheus,http://nbcgib.uesc.br/mirrors/cran/,"Center for Comp. Biol. at Universidade Estadual de Santa Cruz","eduardo # nbcgib.uesc.br",1,br
+"Brazil (PR)",Brazil,Curitiba,http://cran-r.c3sl.ufpr.br/,"Universidade Federal do Parana","Paulo Justiniano Ribeiro Junior <paulojus # ufpr.br>",1,br
+"Brazil (RJ) [https]",Brazil,"Rio de Janeiro",https://cran.fiocruz.br/,"Oswaldo Cruz Foundation, Rio de Janeiro","oswaldo.cruz # fiocruz.br",1,br,"secure_mirror_from_master"
+"Brazil (RJ)",Brazil,"Rio de Janeiro",http://cran.fiocruz.br/,"Oswaldo Cruz Foundation, Rio de Janeiro","oswaldo.cruz # fiocruz.br",1,br,"secure_mirror_from_master"
+"Brazil (SP 1) [https]",Brazil,"Sao Paulo",https://vps.fmvz.usp.br/CRAN/,"University of Sao Paulo, Sao Paulo","Fernando Ferreira <fernando # vps.fmvz.usp.br>",1,br,"secure_mirror_from_master"
+"Brazil (SP 1)",Brazil,"Sao Paulo",http://vps.fmvz.usp.br/CRAN/,"University of Sao Paulo, Sao Paulo","Fernando Ferreira <fernando # vps.fmvz.usp.br>",1,br,"secure_mirror_from_master"
+"Brazil (SP 2)",Brazil,Piracicaba,http://brieger.esalq.usp.br/CRAN/,"University of Sao Paulo, Piracicaba","A Augusto F Garcia <aafgarci # gmail.com>, augusto.garcia # usp.br",1,br,
+"Bulgaria [https]",Bulgaria,Sofia,https://ftp.uni-sofia.bg/CRAN/,"Sofia University","Alexander Velin <velin # fccf.net>",1,bg,"secure_mirror_from_master"
+Bulgaria,Bulgaria,Sofia,http://ftp.uni-sofia.bg/CRAN/,"Sofia University","Alexander Velin <velin # fccf.net>",1,bg,"secure_mirror_from_master"
+"Canada (BC)",Canada,Burnaby,http://cran.stat.sfu.ca/,"Simon Fraser University, Burnaby","gripe # sfu.ca",1,ca,"maintainer_address_bounces"
+"Canada (MB) [https]",Canada,Winnipeg,https://muug.ca/mirror/cran/,"Manitoba Unix User Group","mirror # muug.ca",1,ca
+"Canada (MB)",Canada,Winnipeg,http://muug.ca/mirror/cran/,"Manitoba Unix User Group","mirror # muug.ca",1,ca
+"Canada (NS)",Canada,Halifax,http://mirror.its.dal.ca/cran/,"Dalhousie University, Halifax","mirror # lists.dal.ca",1,ca
+"Canada (ON)",Canada,Toronto,http://cran.utstat.utoronto.ca/,"University of Toronto","Dermot Whelan <wheland # utstat.utoronto.ca>",1,ca
+"Chile [https]",Chile,Santiago,https://dirichlet.mat.puc.cl/,"Pontificia Universidad Catolica de Chile, Santiago","Fernando Quintana <quintana # mat.puc.cl>",1,cl,"secure_mirror_from_master"
+Chile,Chile,Santiago,http://dirichlet.mat.puc.cl/,"Pontificia Universidad Catolica de Chile, Santiago","Fernando Quintana <quintana # mat.puc.cl>",1,cl,"secure_mirror_from_master"
+"China (Beijing) [https]",China,Beijing,https://mirrors.tuna.tsinghua.edu.cn/CRAN/,"TUNA Team, Tsinghua University","Justin Wong <justin.w.xd # gmail.com>",1,cn
+"China (Beijing)",China,Beijing,http://mirrors.tuna.tsinghua.edu.cn/CRAN/,"TUNA Team, Tsinghua University","Justin Wong <justin.w.xd # gmail.com>",1,cn
+"China (Hefei) [https]",China,Hefei,https://mirrors.ustc.edu.cn/CRAN/,"University of Science and Technology of China","mirrors # Ustc.edu.cn",1,cn
+"China (Hefei)",China,Hefei,http://mirrors.ustc.edu.cn/CRAN/,"University of Science and Technology of China","mirrors # Ustc.edu.cn",1,cn
+"China (Xiamen)",China,Xiamen,http://mirrors.xmu.edu.cn/CRAN/,"Xiamen University","admin # Xdmc.org",1,cn,"maintainer_address_bounces"
+"Colombia (Cali) [https]",Colombia,Cali,https://www.icesi.edu.co/CRAN/,"Icesi University","adminred # Icesi.edu.co",1,co,"secure_mirror_from_master"
+"Colombia (Cali)",Colombia,Cali,http://www.icesi.edu.co/CRAN/,"Icesi University","adminred # Icesi.edu.co",1,co,"secure_mirror_from_master"
+"Czech Republic [https]","Czech Republic","Prague",https://mirrors.nic.cz/R/,"CZ.NIC, Prague","mirrors # nic.cz",1,cz,"secure_mirror_from_master"
+"Czech Republic","Czech Republic","Prague",http://mirrors.nic.cz/R/,"CZ.NIC, Prague","mirrors # nic.cz",1,cz,"secure_mirror_from_master"
+"Denmark [https]",Denmark,Aalborg,https://mirrors.dotsrc.org/cran/,"Aalborg University","staff # dotsrc.org",1,dk,"secure_mirror_from_master"
+Denmark,Denmark,Aalborg,http://mirrors.dotsrc.org/cran/,"Aalborg University","staff # dotsrc.org",1,dk,"secure_mirror_from_master"
+Ecuador,Ecuador,Guayaquil,http://cran.espol.edu.ec/,"Escuela Superior Politecnica del Litoral","jrodrig # espol.edu.ec",1,ec,"secure_mirror_from_master"
+"El Salvador","El Salvador","San Salvador",http://cran.salud.gob.sv/,"Ministry of Health (Ministerio de Salud)","mirror # salud.gob.sv",1,sv
+"Estonia",Estonia,Tartu,http://ftp.eenet.ee/pub/cran/,"EENet","eenet # eenet.ee",1,ee,"secure_mirror_from_master"
+"France (Lyon 1) [https]",France,Lyon,https://pbil.univ-lyon1.fr/CRAN/,"Dept. of Biometry & Evol. Biology, University of Lyon","Jean Thioulouse <Jean.Thioulouse # univ-lyon1.fr>",1,fr,"secure_mirror_from_master"
+"France (Lyon 2) [https]",France,Lyon,https://mirror.ibcp.fr/pub/CRAN/,"CNRS IBCP, Lyon","alexis.michon # ibcp.fr",1,fr,"secure_mirror_from_master"
+"France (Lyon 2)",France,Lyon,http://mirror.ibcp.fr/pub/CRAN/,"CNRS IBCP, Lyon","alexis.michon # ibcp.fr",1,fr,"secure_mirror_from_master"
+"France (Marseille) [https]",France,Marseille,"https://cran.biotools.fr/","IBDM, Marseille","andrew.saurin # univ-amu.fr",1,fr,"secure_mirror_from_master"
+"France (Marseille)",France,Marseille,"http://cran.biotools.fr/","IBDM, Marseille","andrew.saurin # univ-amu.fr",1,fr,"secure_mirror_from_master"
+"France (Montpellier) [https]",France,Montpellier,https://ftp.igh.cnrs.fr/pub/CRAN/,"Institut de Genetique Humaine, Montpellier","guillaume.gielly # igh.cnrs.fr",1,fr,"secure_mirror_from_master"
+"France (Montpellier)",France,Montpellier,http://ftp.igh.cnrs.fr/pub/CRAN/,"Institut de Genetique Humaine, Montpellier","guillaume.gielly # igh.cnrs.fr",1,fr,"secure_mirror_from_master"
+"France (Paris 1)",France,Paris,http://cran.irsn.fr/,"French Nuclear Safety Institute, Paris","yann.richet # irsn.fr",1,fr
+"France (Paris 2) [https]",France,Paris,https://cran.univ-paris1.fr/,"SAMM, Université Paris 1 Panthéon-Sorbonne","pierre.latouche # univ-paris1.fr",1,fr,"secure_mirror_from_master"
+"France (Paris 2)",France,Paris,http://cran.univ-paris1.fr/,"SAMM, Université Paris 1 Panthéon-Sorbonne","pierre.latouche # univ-paris1.fr",1,fr,"secure_mirror_from_master"
+"Germany (Falkenstein) [https]",Germany,Falkenstein,https://mirrors.cicku.me/CRAN/,CICKU,"mirrors # cicku.me",1,de,
+"Germany (Falkenstein)",Germany,Falkenstein,http://mirrors.cicku.me/CRAN/,CICKU,"mirrors # cicku.me",1,de,
+"Germany (Göttingen)",Germany,Göttingen,http://ftp5.gwdg.de/pub/misc/cran/,"GWDG Göttingen","Eberhard Moenkeberg <emoenke # gwdg.de>",1,de
+"Germany (Münster) [https]",Germany,Münster,https://cran.uni-muenster.de/,"University of Münster, Germany","Edzer Pebesma <edzer.pebesma # uni-muenster.de>",1,de,"secure_mirror_from_master"
+"Germany (Münster)",Germany,Münster,http://cran.uni-muenster.de/,"University of Münster, Germany","Edzer Pebesma <edzer.pebesma # uni-muenster.de>",1,de,"secure_mirror_from_master"
+Greece,Greece,Crete,http://cran.cc.uoc.gr/mirrors/CRAN/,"University of Crete","mirrors # Cc.uoc.gr",1,gr,"secure_mirror_from_master"
+Hungary,Hungary,Budapest,http://cran.rapporter.net/,"Rapporter.net, Budapest","Daróczi Gergely <gergely # snowl.net>",1,hu
+"Iceland [https]",Iceland,Reykjavik,https://cran.hafro.is/,"Marine Research Institute","cran # hafro.is",1,is,"secure_mirror_from_master"
+Iceland,Iceland,Reykjavik,http://cran.hafro.is/,"Marine Research Institute","cran # hafro.is",1,is,"secure_mirror_from_master"
+"India [https]",India,Chennai,https://ftp.iitm.ac.in/cran/,"Indian Institute of Technology Madras","sriram # iitm.ac.in",1,in
+India,India,Chennai,http://ftp.iitm.ac.in/cran/,"Indian Institute of Technology Madras","sriram # iitm.ac.in",1,in
+Iran,Iran,Mashhad,http://cran.um.ac.ir/,"Ferdowsi University of Mashhad","Majid Sarmad <sarmad # um.ac.ir>",1,ir
+"Ireland [https]",Ireland,Dublin,https://ftp.heanet.ie/mirrors/cran.r-project.org/,"HEAnet,Dublin","mirrors # heanet.ie",1,ie,"secure_mirror_from_master"
+Ireland,Ireland,Dublin,http://ftp.heanet.ie/mirrors/cran.r-project.org/,"HEAnet,Dublin","mirrors # heanet.ie",1,ie,"secure_mirror_from_master"
+"Italy (Milano)",Italy,Milano,http://cran.mirror.garr.it/mirrors/CRAN/,"Garr Mirror, Milano","mirror-service # garr.it",1,it
+"Italy (Padua) [https]",Italy,Padua,https://cran.stat.unipd.it/,"University of Padua","cran # stat.unipd.it",1,it,"secure_mirror_from_master"
+"Italy (Padua)",Italy,Padua,http://cran.stat.unipd.it/,"University of Padua","cran # stat.unipd.it",1,it,"secure_mirror_from_master"
+"Italy (Palermo)",Italy,Palermo,http://dssm.unipa.it/CRAN/,"Universita degli Studi di Palermo","angelo.mineo # unipa.it, apontillo # gmail.com",1,it
+"Japan (Tokyo) [https]",Japan,Tokyo,https://cran.ism.ac.jp/,"The Institute of Statistical Mathematics, Tokyo","Junji Nakano <nakanoj # ism.ac.jp>",1,jp,"secure_mirror_from_master"
+"Japan (Tokyo)",Japan,Tokyo,http://cran.ism.ac.jp/,"The Institute of Statistical Mathematics, Tokyo","Junji Nakano <nakanoj # ism.ac.jp>",1,jp,"secure_mirror_from_master"
+"Korea (Seoul 1)",Korea,Seoul,http://cran.nexr.com/,"NexR Corporation, Seoul","mining # nexr.com",1,kr
+"Korea (Seoul 2)",Korea,Seoul,http://healthstat.snu.ac.kr/CRAN/,"Graduate School of Public Health, Seoul National University, Seoul","Sunghow # gmail.com",1,kr,"secure_mirror_from_master"
+"Korea (Ulsan)",Korea,Ulsan,http://cran.biodisk.org/,"The Genome Institute of UNIST (Ulsan National Institute of Science and Technology)","dr.kyusang.lee # gmail.com",1,kr,"secure_mirror_from_master"
+Lebanon,Lebanon,Byblos,http://rmirror.lau.edu.lb/,"Lebanese American University, Byblos","gGeorges Khazen <khazen # lau.edu.lb>",1,lb,"maintainer_address_bounces"
+"Malaysia [https]",Malaysia,Serdang,https://wbc.upm.edu.my/cran/,"Univerisiti Putra Malaysia","Ng Keng Yap <kengyap # upm.edu.my>",1,my,"secure_mirror_from_master"
+Malaysia,Malaysia,Serdang,http://wbc.upm.edu.my/cran/,"Univerisiti Putra Malaysia","Ng Keng Yap <kengyap # upm.edu.my>",1,my,"secure_mirror_from_master"
+"Mexico (Mexico City) [https]",Mexico,"Mexico City",https://cran.itam.mx/,"Instituto Tecnologico Autonomo de Mexico","Ernesto Barrios <ebarrios # Itam.mx>",1,mx,"secure_mirror_from_master"
+"Mexico (Mexico City)",Mexico,"Mexico City",http://cran.itam.mx/,"Instituto Tecnologico Autonomo de Mexico","Ernesto Barrios <ebarrios # Itam.mx>",1,mx,"secure_mirror_from_master"
+"Mexico (Texcoco)",Mexico,Texcoco,http://www.est.colpos.mx/R-mirror/,"Colegio de Postgraduados, Texcoco","perpdgo # gmail.com",1,mx
+"Netherlands (Amsterdam)",Netherlands,Amsterdam,http://cran.xl-mirror.nl/,"XL-Data, Amsterdam","werner # xl-mirror.nl",1,nl
+"Netherlands (Utrecht)",Netherlands,Utrecht,http://cran-mirror.cs.uu.nl/,"Utrecht University","webmaster # cs.uu.nl",1,nl
+"New Zealand [https]","New Zealand",Auckland,https://cran.stat.auckland.ac.nz/,"University of Auckland","w.schmidt # auckland.ac.nz",1,nz
+"New Zealand","New Zealand",Auckland,http://cran.stat.auckland.ac.nz/,"University of Auckland","w.schmidt # auckland.ac.nz",1,nz
+"Norway [https]",Norway,Bergen,https://cran.uib.no/,"University of Bergen","sundrift # It.uib.no",1,no,"secure_mirror_from_master"
+Norway,Norway,Bergen,http://cran.uib.no/,"University of Bergen","sundrift # It.uib.no",1,no,"secure_mirror_from_master"
+"Philippines [https]",Philippines,"Quezon City",https://cran.stat.upd.edu.ph/,"University of the Philippines and PREGINET","Bert Mendoza <bert # asti.dost.gov.ph>, ops # pregi.net",1,ph,"secure_mirror_from_master"
+Philippines,Philippines,"Quezon City",http://cran.stat.upd.edu.ph/,"University of the Philippines and PREGINET","Bert Mendoza <bert # asti.dost.gov.ph>, ops # pregi.net",1,ph,"secure_mirror_from_master"
+"Portugal (Lisbon)",Portugal,Lisbon,http://cran.radicaldevelop.com/,"RadicalDevelop, Lda","geral # radicaldevelop.com",1,pt
+"Portugal (Porto)",Portugal,Porto,http://cran.dcc.fc.up.pt/,"University of Porto","labcc # labcc.dcc.fc.up.pt",1,pt
+"Russia (Moscow) [https]",Russia,Moscow,https://cran.gis-lab.info/,GIS-Lab.info,"sim # gis-lab.info",1,ru,"secure_mirror_from_master"
+"Russia (Moscow)",Russia,Moscow,http://cran.gis-lab.info/,GIS-Lab.info,"sim # gis-lab.info",1,ru,"secure_mirror_from_master"
+"Serbia [https]",Serbia,Belgrade,https://fourdots.com/mirror/CRAN/,"Four Dots","Goran Tepsic <goran.tepsic # fourdots.com>",1,rs
+Singapore,Singapore,Singapore,http://cran.stat.nus.edu.sg/,"National University of Singapore, Singapore","ccezr # nus.edu.sg",1,sg
+"South Africa (Cape Town)","South Africa","Cape Town",http://r.adu.org.za/,"University of Cape Town","michael.brooks # uct.ac.za",1,za
+"South Africa (Johannesburg)","South Africa",Johannesburg,http://cran.mirror.ac.za/,"TENET, Johannesburg","Patrick Holahan <patrickh # tenet.ac.za>",1,za
+"Spain (A Coruña) [https]","Spain","A Coruña",https://ftp.cixug.es/CRAN/,"Oficina de software libre (CIXUG)","<osl # cixug.es>",1,es,"secure_mirror_from_master"
+"Spain (A Coruña)","Spain","A Coruña",http://ftp.cixug.es/CRAN/,"Oficina de software libre (CIXUG)","<osl # cixug.es>",1,es,"secure_mirror_from_master"
+"Spain (Madrid) [https]",Spain,Madrid,https://cran.rediris.es/,"Spanish National Research Network, Madrid","Jose Manuel Macias <jmanuel.macias # rediris.es>",1,es,"secure_mirror_from_master"
+"Spain (Madrid)",Spain,Madrid,http://cran.rediris.es/,"Spanish National Research Network, Madrid","Jose Manuel Macias <jmanuel.macias # rediris.es>",1,es,"secure_mirror_from_master"
+Sweden,Sweden,Umeå,http://ftp.acc.umu.se/mirror/CRAN/,"Academic Computer Club, Umeå University","<ftp-adm # acc.umu.se>",1,se,"secure_mirror_from_master"
+"Switzerland [https]",Switzerland,Zürich,https://stat.ethz.ch/CRAN/,"ETH Zürich","Martin.Maechler # R-project.org",1,ch,"secure_mirror_from_master"
+Switzerland,Switzerland,Zürich,http://stat.ethz.ch/CRAN/,"ETH Zürich","Martin.Maechler # R-project.org",1,ch,"secure_mirror_from_master"
+"Taiwan (Chungli) [https]",Taiwan,Chungli,https://ftp.yzu.edu.tw/CRAN/,"Department of Computer Science and Engineering, Yuan Ze University","Peter Dave Hello <hsu # peterdavehello.org>",1,tw
+"Taiwan (Chungli)",Taiwan,Chungli,http://ftp.yzu.edu.tw/CRAN/,"Department of Computer Science and Engineering, Yuan Ze University","Peter Dave Hello <hsu # peterdavehello.org>",1,tw
+"Taiwan (Taipei)",Taiwan,Taipei,http://cran.csie.ntu.edu.tw/,"National Taiwan University, Taipei","Rong-En Fan  <rafan # infor.org>",1,tw,"maintainer_address_bounces"
+Thailand,Thailand,Hatyai,http://mirrors.psu.ac.th/pub/cran/,"Prince of Songkla University, Hatyai","wipat.s # psu.ac.th",1,th
+"Turkey (Denizli) [https]",Turkey,Denizli,https://cran.pau.edu.tr/,"Pamukkale University, Denizli","Ugur Zeybek <uzeybek # pau.edu.tr>",1,tr
+"Turkey (Denizli)",Turkey,Denizli,http://cran.pau.edu.tr/,"Pamukkale University, Denizli","Ugur Zeybek <uzeybek # pau.edu.tr>",1,tr
+"Turkey (Mersin)",Turkey,Mersin,http://cran.ncc.metu.edu.tr/,"Middle East Technical University Northern Cyprus Campus, Mersin","atasiran # metu.edu.tr, ncc-cc # metu.edu.tr",1,tr
+"UK (Bristol) [https]",UK,Bristol,https://www.stats.bris.ac.uk/R/,"University of Bristol","Guy Nason <G.P.Nason # bristol.ac.uk>, it-zone-d # bristol.ac.uk",1,uk,"secure_mirror_from_master"
+"UK (Bristol)",UK,Bristol,http://www.stats.bris.ac.uk/R/,"University of Bristol","Guy Nason <G.P.Nason # bristol.ac.uk>, it-zone-d # bristol.ac.uk",1,uk,"secure_mirror_from_master"
+"UK (Cambridge) [https]",UK,"Cambridge",https://mirrors.ebi.ac.uk/CRAN/,"EMBL-EBI (European Bioinformatics Institute)","Andrew Tikhonov <andrew # ebi.ac.uk>",1,uk,"secure_mirror_from_master"
+"UK (Cambridge)",UK,"Cambridge",http://mirrors.ebi.ac.uk/CRAN/,"EMBL-EBI (European Bioinformatics Institute)","Andrew Tikhonov <andrew # ebi.ac.uk>",1,uk,"secure_mirror_from_master"
+"UK (London 1) [https]",UK,London,https://cran.ma.imperial.ac.uk/,"Imperial College London","andy.thomas # imperial.ac.uk",1,uk,"secure_mirror_from_master"
+"UK (London 1)",UK,London,http://cran.ma.imperial.ac.uk/,"Imperial College London","andy.thomas # imperial.ac.uk",1,uk,"secure_mirror_from_master"
+"UK (London 2)",UK,"London",http://mirror.mdx.ac.uk/R/,"Middlesex University London","Louis Slabbert <l.slabbert # mdx.ac.uk>",1,uk
+"UK (St Andrews)",UK,"St Andrews",http://star-www.st-andrews.ac.uk/cran/,"St Andrews University","Lee Kelvin <lsk9 # St-andrews.ac.uk>",1,uk,"maintainer_address_bounces"
+"USA (CA 1) [https]",USA,Berkeley,https://cran.cnr.berkeley.edu/,"University of California, Berkeley, CA","casterln # nature.berkeley.edu",1,us,"secure_mirror_from_master"
+"USA (CA 1)",USA,Berkeley,http://cran.cnr.berkeley.edu/,"University of California, Berkeley, CA","casterln # nature.berkeley.edu",1,us,"secure_mirror_from_master"
+"USA (CA 2)",USA,"Los Angeles",http://cran.stat.ucla.edu/,"University of California, Los Angeles, CA","Jose Hales-Garcia <jose # stat.ucla.edu>",1,us
+"USA (IA) [https]",USA,Ames,https://mirror.las.iastate.edu/CRAN/,"Iowa State University, Ames, IA","statit # iastate.edu",1,us
+"USA (IA)",USA,Ames,http://mirror.las.iastate.edu/CRAN/,"Iowa State University, Ames, IA","statit # iastate.edu",1,us
+"USA (IN)",USA,Bloomington,http://ftp.ussg.iu.edu/CRAN/,"Indiana University","rtadmin # indiana.edu",1,us
+"USA (KS) [https]",USA,Lawrence,https://rweb.crmda.ku.edu/cran/,"University of Kansas, Lawrence, KS","Paul Johnson <pauljohn # ku.edu>",1,us,"secure_mirror_from_master"
+"USA (KS)",USA,Lawrence,http://rweb.crmda.ku.edu/cran/,"University of Kansas, Lawrence, KS","Paul Johnson <pauljohn # ku.edu>",1,us,"secure_mirror_from_master"
+"USA (MD) [https]",USA,Bethesda,https://watson.nci.nih.gov/cran_mirror/,"National Cancer Institute, Bethesda, MD","Sean Davis <sdavis2 # mail.nih.gov>",1,us
+"USA (MD)",USA,Bethesda,http://watson.nci.nih.gov/cran_mirror/,"National Cancer Institute, Bethesda, MD","Sean Davis <sdavis2 # mail.nih.gov>",1,us
+"USA (MI 1) [https]",USA,Houghton,https://cran.mtu.edu/,"Michigan Technological University, Houghton, MI","Robert Froese <froese # mtu.edu>",1,us,"secure_mirror_from_master"
+"USA (MI 1)",USA,Houghton,http://cran.mtu.edu/,"Michigan Technological University, Houghton, MI","Robert Froese <froese # mtu.edu>",1,us,"secure_mirror_from_master"
+"USA (MO)",USA,"St. Louis",http://cran.wustl.edu/,"Washington University, St. Louis, MO","admartin # wustl.edu",1,us,"maintainer_address_bounces"
+"USA (NC)",USA,Durham,http://archive.linux.duke.edu/cran/,"Duke University, Durham, NC","csi-linux-admins # duke.edu",1,us
+"USA (OH 1)",USA,Cleveland,http://cran.case.edu/,"Case Western Reserve University, Cleveland, OH","""Alberto H. Santana"" <ahs4 # case.edu>",1,us
+"USA (OH 2)",USA,Dayton,http://iis.stat.wright.edu/CRAN/,"Wright State University, Dayton, OH","Long Qu <long.qu # wright.edu>",1,us
+"USA (OR)",USA,Corvallis,http://ftp.osuosl.org/pub/cran/,"Oregon State University","support # Osuosl.org",1,us
+"USA (PA 1)",USA,Pittsburgh,http://lib.stat.cmu.edu/R/CRAN/,"Statlib, Carnegie Mellon University, Pittsburgh, PA","Carl Skipper <remarks # stat.cmu.edu>",1,us
+"USA (PA 2)",USA,Pittsburgh,http://cran.mirrors.hoobly.com/,"Hoobly Classifieds, Pittsburgh, PA","Peter Grigor <pgrigor # hoobly.com>",1,us
+"USA (TN) [https]",USA,"Oak Ridge",https://mirrors.nics.utk.edu/cran/,"National Institute for Computational Sciences, Oak Ridge, TN","help # nics.utk.edu",1,us
+"USA (TN)",USA,"Oak Ridge",http://mirrors.nics.utk.edu/cran/,"National Institute for Computational Sciences, Oak Ridge, TN","help # nics.utk.edu",1,us
+"USA (TX) [https]",USA,Dallas,https://cran.revolutionanalytics.com/,"Revolution Analytics, Dallas, TX","David Smith <david # revolutionanalytics.com>",1,us,"secure_mirror_from_master"
+"USA (TX)",USA,Dallas,http://cran.revolutionanalytics.com/,"Revolution Analytics, Dallas, TX","David Smith <david # revolutionanalytics.com>",1,us,"secure_mirror_from_master"
+"USA (WA) [https]",USA,Seattle,https://cran.fhcrc.org/,"Fred Hutchinson Cancer Research Center, Seattle, WA","Dan Tenenbaum <dtenenba # fredhutch.org>",1,us,"secure_mirror_from_master"
+"USA (WA)",USA,Seattle,http://cran.fhcrc.org/,"Fred Hutchinson Cancer Research Center, Seattle, WA","Dan Tenenbaum <dtenenba # fredhutch.org>",1,us,"secure_mirror_from_master"
+Venezuela,Venezuela,Valencia,http://camoruco.ing.uc.edu.ve/cran/,"Universidad de Carabobo Venezuela","dir-imyca # uc.edu.ve",1,ve
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/COPYRIGHTS
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/COPYRIGHTS	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/COPYRIGHTS	(revision 2476)
@@ -0,0 +1,672 @@
+
+COPYRIGHT STATUS
+
+The bulk of this code is copyright by members of or all of the R Core
+Team.  ('The R Core Team' in copyright statements in individual files
+refers to some or all of the team.)
+
+See the file COPYING for the exact conditions under which you may
+redistribute it.  R as a whole is distributed under GPL version 2 or
+3: most source files contain a copyright statement allowing use of
+that file under GPL version 2 or later: the main exceptions are the
+included versions of packages 'MASS', 'class', 'nnet', 'rpart' and
+'spatial' (GPL-2 or GPL-3).  (The auxiliary file m4/openmp.m4 is under
+GPL-3, but its incorporation into 'configure' is not.)
+
+The status of files used only in the Windows port is in file
+src/gnuwin32/COPYRIGHTS.win, which is appended to this file in binary
+Windows distributions.
+
+Note that almost all the code *is* copyright and may only be
+reproduced if the copyright notice (that in the file or this notice)
+is preserved.  The status of the included LINPACK routines is unclear:
+they are said to be in the public domain in the USA.
+
+	---------------------------------------------------
+
+Some (but not all) of the public header files are distributed under
+the more permissive terms of version 2.1 or later of the LGPL: see
+files R_HOME/share/licenses/LGPL-2.1 and R_HOME/share/licenses/LGPL-3.
+This applies only to the header files
+
+src/include/R.h
+4src/include/Rdefines.h
+src/include/Rgraphics.h
+src/include/Rinternals.h
+src/include/Rmath.h
+src/include/S.h
+src/include/R_ext/*.h
+
+Note that it does not apply to the header files such as Rembedded.h
+and Rinterface.h used for third-party front ends.
+
+From the announcement of the change (2001-Feb-05)
+
+    It came to our attention that some projects are interpreting GPL to
+    mean that compiling against the header files or linking against a
+    Windows import library brings the compiled code under the scope of
+    GPL.  This would mean it would be impossible to distribute binary
+    versions of non-GPL packages with compiled code which called entry
+    points in the R executable or DLL, of which there are many on CRAN.
+
+    We encourage packages to be distributed under Open Source conditions,
+    but accept that this is not possible for some contributions.  Our
+    intention is that export files and import libraries be 'accessors'
+    under clause 5 of the LGPL, so that in most cases no (additional)
+    restrictions are imposed by compiling a package using the LGPL-ed
+    components of R.
+
+    To avoid any anomalies, the versions of the same files in R versions
+    1.0.0 to 1.2.1 may also be used under LGPL or GPL.
+
+Import libraries are no longer used under Windows.
+
+Some contributed files are also covered by the Library General Public License.
+These include (see also below)
+
+src/library/stats/R/embed.R
+src/library/stats/src/PPsum.c
+
+	---------------------------------------------------
+
+
+
+
+Some of the code contains different copyright statements.  It is used
+here in accordance with the copyright conditions in that code.  A
+not-necessarily-complete list of such files is:
+
+src/library/grDevices/inst/afm/*___.afm
+
+	Copyright (c) 1984 to 1992 Adobe Systems Incorporated.
+
+src/library/grDevices/inst/afm/MustRead.html
+src/library/grDevices/inst/afm/Courier*.afm
+src/library/grDevices/inst/afm/Helvetica*.afm
+src/library/grDevices/inst/afm/Times*.afm
+src/library/grDevices/inst/afm/Symbol.afm
+src/library/grDevices/inst/afm/ZapfDingbats.afm
+
+	Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems
+	Incorporated.  All Rights Reserved.
+
+src/library/grDevices/inst/afm/*l.afm
+
+	Copyright 1999 by (URW)++ Design & Development
+
+src/library/grDevices/inst/afm/CM_*.afm
+src/library/grDevices/inst/afm/cm*.afm
+
+	are derived from afms which are copyright by the American
+	Mathematical Society, but 'the AMS does require that the
+	AMS copyright notice be removed from any derivative versions
+	of the fonts which have been altered in any way'.
+
+doc/manual/R-intro.texi
+
+in part
+
+	Copyright (C) 1990 W. N. Venables
+	Copyright (C) 1992 W. N. Venables & D. M. Smith
+	Copyright (C) 1997 R. Gentleman & R. Ihaka
+	Copyright (C) 1997, 1998 M. Maechler
+
+share/licenses/*
+
+	See the individual files.
+
+share/texmf/bibtex/bst/jss.bst
+
+	Copyright 1994-2007 Patrick W Daly
+
+share/texmf/tex/latex/jss.cls
+
+	Copyright: (C) Achim Zeileis
+
+src/library/graphics/R/mosaicplot.R
+
+	Original code copyright (C) 1998 John W. Emerson
+
+src/library/graphics/R/pairs.R
+
+	In part, Copyright 1999 Dr. Jens Oehlschlaegel-Akiyoshi
+
+src/library/graphics/R/polygon.R
+
+	Copyright (C) 2001 by Kevin Buhr <buhr@stat.wisc.edu>
+
+src/library/splines/R/splineClasses.R
+
+	Copyright (C) 1998 Douglas M. Bates and William N. Venables.
+
+src/library/datasets/man/austres.Rd
+src/library/datasets/man/beavers.Rd
+src/library/datasets/man/lh.Rd
+src/library/datasets/man/npk.Rd
+src/library/datasets/man/rock.Rd
+src/library/datasets/man/UKLungDeaths.Rd
+src/library/datasets/man/USAccDeaths.Rd
+src/library/stats/R/add.R
+src/library/stats/R/bandwidths.R
+src/library/stats/R/confint.R
+src/library/stats/R/cpgram.R
+src/library/stats/R/spectrum.R
+src/library/stats/R/vcov.R
+src/library/stats/src//bandwidths.c
+src/appl/maxcol.c
+
+	Copyright (C) various dates W. N. Venables and B. D. Ripley
+
+
+src/appl/interv.c : moved to API from code originally in
+		    src/library/stats/src/bvalue.f, see
+		    src/library/stats/COPYRIGHTS.modreg
+
+src/library/stats:
+
+	See the files src/library/stats/COPYRIGHTS.modreg and
+	src/library/stats/COPYRIGHTS.portsrc for further details
+
+
+src/library/stats/R/diffinv.R
+src/library/stats/R/embed.R
+src/library/stats/R/kernel.R
+src/library/stats/src/PPsum.c
+
+	Copyright (C) 1997-1999	 Adrian Trapletti
+
+
+src/library/stats/R/nls.R
+
+	In part, Copyright 1999-1999 Saikat DebRoy
+
+
+src/library/stats/R/nlsFunc.R
+src/library/stats/R/selfStart.R
+src/library/stats/R/zzModels.R
+
+	Copyright 1997,1999 Jose C. Pinheiro, Douglas M. Bates
+
+src/library/stats/R/runmed.R
+src/library/stats/src/Trunmed.c
+
+	In part Copyright (C) 1995 Berwin A. Turlach
+
+src/library/stats/src/loessc.c
+src/library/stats/src/loessf.f
+
+	In part Copyright (c) 1989, 1992 by AT&T
+
+src/library/stats/R/spline.R
+
+	In part, Copyright (C) 2002 Simon N. Wood
+
+src/library/tcltk/exec/{hierarchy,util*,widget}.tcl
+
+	Copyright (c) various dates Jeffrey Hobbs
+
+
+src/modules/X11/rotated.[ch]
+
+	Copyright (c) 1993 Alan Richardson
+
+
+src/appl/loglin.c
+src/library/stats/src/chisqsim.c
+src/library/stats/src/nscor.c
+src/library/stats/src/prho.c
+src/library/stats/src/swilk.c
+src/library/stats/src/kmns.f
+src/library/stats/src/starma.c
+src/nmath/pnbeta.c
+src/nmath/pnchisq.c
+src/nmath/pnt.c
+src/nmath/qbeta.c
+src/nmath/qgamma.c
+src/nmath/qnorm.c
+src/nmath/qtukey.c
+  are based in whole or in part on Applied Statistics algorithms
+  (C) Royal Statistical Society
+
+src/nmath/stirlerr.c
+src/nmath/dbinom.c
+src/nmath/dpois.c
+  are partly based on Catherine/Clive Loader's (1999) work,
+  (C) 1999-2000 Lucent Technologies, Bell Laboratories.
+
+
+src/main/RNG.c
+
+  The Mersenne-Twister part is
+  Copyright (C) 1997, 1999 Makoto Matsumoto and Takuji Nishimura.
+
+
+src/main/xspline.c
+
+ * Copyright (c) 1985-1988 by Supoj Sutanthavibul
+ * Parts Copyright (c) 1989-2002 by Brian V. Smith
+ * Parts Copyright (c) 1991 by Paul King
+ * Parts Copyright (c) 1992 by James Tough
+ * Parts Copyright (c) 1998 by Georg Stemmer
+ * Parts Copyright (c) 1995 by C. Blanc and C. Schlick
+  
+ * Any party obtaining a copy of these files is granted, free of charge, a
+ * full and unrestricted irrevocable, world-wide, paid up, royalty-free,
+ * nonexclusive right and license to deal in this software and
+ * documentation files (the "Software"), including without limitation the
+ * rights to use, copy, modify, merge, publish and/or distribute copies of
+ * the Software, and to permit persons who receive copies from any such 
+ * party to do so, with the only requirement being that this copyright 
+ * notice remain intact.
+
+
+src/modules/nano{ftp,http}.c
+
+ Copyright (C) 1998-2001 Daniel Veillard.  All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is fur-
+nished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+src/modules/lapack/dlapack.f, cmplx.f, dlamc.f
+
+  Extracted from
+  *  -- LAPACK computational routine (version 3.6.0) --
+  *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
+  *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
+  *     Novemeber 2015
+
+  where the version number, providers and date vary by subroutine.
+
+  LAPACK 3.6.0 contains a LICENSE file, copied to src/modules/lapack
+  (but many of these routines were originally copied from earlier
+  versions of LAPACK).  For binary distributions it is reproduced here:
+
+  Copyright (c) 1992-2015 The University of Tennessee and The University
+                          of Tennessee Research Foundation.  All rights
+                          reserved.
+  Copyright (c) 2000-2015 The University of California Berkeley. All
+                          rights reserved.
+  Copyright (c) 2006-2015 The University of Colorado Denver.  All rights
+                          reserved.
+
+  $COPYRIGHT$
+
+  Additional copyrights may follow
+
+  $HEADER$
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are
+  met:
+
+  - Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+  - Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer listed
+    in this license in the documentation and/or other materials
+    provided with the distribution.
+
+  - Neither the name of the copyright holders nor the names of its
+    contributors may be used to endorse or promote products derived from
+    this software without specific prior written permission.
+
+  The copyright holders provide no reassurances that the source code
+  provided does not infringe any patent, copyright, or any other
+  intellectual property rights of third parties.  The copyright holders
+  disclaim any liability to any recipient for claims brought against
+  recipient by any third party for infringement of that parties
+  intellectual property rights.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+src/extra/xdr/*
+
+	Copyright (undated) Sun Microsystems, Inc.
+
+	See the file src/extra/xdr/copyrght.txt
+
+src/main/connections.c, src/main/gzio.h
+
+  Contain code derived from the zlib 1.2.3 distribution
+  (C) 1995-2005 Jean-loup Gailly and Mark Adler
+
+src/main/dounzip.c, unzip.h
+
+  Contain code Copyright (C) 1998-2010 Gilles Vollant from contrib/minizip
+  in the zlib 1.2.3 distribution with updates taken from 1.2.5.
+
+
+src/main/valid_utf8.h
+
+   Copyright (c) 1997-2012 University of Cambridge
+
+For binary builds of R that requires us to include
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+      * Redistributions of source code must retain the above copyright
+	notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+	copyright notice, this list of conditions and the following
+	disclaimer in the documentation and/or other materials
+	provided with the distribution.
+
+      * Neither the name of the University of Cambridge nor the name
+	of Google Inc. nor the names of their contributors may be used
+	to endorse or promote products derived from this software
+	without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+
+src/extra/tre/LICENSE
+src/extra/tre/*.[ch]
+
+Copyright (c) 2001-2009 Ville Laurikari <vl@iki.fi>
+All rights reserved.
+
+From tre-0.8.0 (http://laurikari.net/tre/).  See file
+src/extra/tre/LICENSE.  For binary builds of R that requires us to
+include
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    * Redistributions of source code must retain the above copyright notice,
+      this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above copyright
+      notice, this list of conditions and the following disclaimer in the
+      documentation and/or other materials provided with the distribution.
+
+    * Neither the name of the University of Cambridge nor the name of Google
+      Inc. nor the names of their contributors may be used to endorse or
+      promote products derived from this software without specific prior
+      written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+src/extra/tzone/strftime.c
+/*
+  Based on code from tzcode, which is turn said to be
+  'Based on the UCB version with the copyright notice appearing below.'
+
+** Copyright (c) 1989 The Regents of the University of California.
+** All rights reserved.
+**
+** Redistribution and use in source and binary forms are permitted
+** provided that the above copyright notice and this paragraph are
+** duplicated in all such forms and that any documentation,
+** advertising materials, and other materials related to such
+** distribution and use acknowledge that the software was developed
+** by the University of California, Berkeley. The name of the
+** University may not be used to endorse or promote products derived
+** from this software without specific prior written permission.
+** THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+** IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+*/
+
+
+src/library/tools/src/md5.[ch]
+
+    Copyright (C) 1995, 1996, 2001 Free Software Foundation, Inc.
+
+
+src/extra/intl/*
+
+Based on gettextize from gettext 0.17
+   Copyright (C) various dates Free Software Foundation, Inc.
+   Distributed under the GNU Library General Public License
+   version 2 or later.
+
+src/include/vg/memcheck.h
+src/include/vg/valgrind.h
+
+From valgrind 3.10.1,
+
+   Copyright (C) 2000-2013 Julian Seward.  All rights reserved.
+
+
+src/main/mkdtemp.c
+
+From glibc via
+http://lists.gnu.org/archive/html/bug-gnulib/2003-02/msg00019.html
+
+   Copyright (C) 1999, 2001-2003 Free Software Foundation, Inc.
+   Distributed under the GNU Library General Public License
+   version 2 or later.
+
+src/main/Rstrptime.h
+
+   Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Distributed under the GNU Library General Public License
+   version 2 or later.
+
+src/library/*/po/*.po
+
+   Some of the translations are (C) the translator as marked in the files.
+
+COPYING
+doc/COPYING
+doc/COPYING.LIB
+m4/codeset.m4
+m4/gettext.m4
+m4/gettext-lib.m4
+share/licenses/GPL-2
+share/licenses/GPL-3
+share/licenses/LGPL-2
+share/licenses/LGPL-2.1
+share/licenses/LGPL-3
+src/main/strdup.c
+tools/config.rpath
+tools/help2man.pl
+tools/ltmain.sh
+tools/mdate-sh
+tools/missing
+
+   Copyright various dates Free Software Foundation
+
+m4/openmp.m4
+  Copyright (C) 2001-2012 Free Software Foundation, Inc.
+  Copyright (C) 2015-2016 R Core Team
+
+  Under GPL-3 with the Autoconf Configure Script Exception, version 3.0.
+
+tools/config.quess
+tools/config.sub
+
+   Copyright 1992-2013 Free Software Foundation.  
+   The Exception to GPL-3 applies.
+
+tools/install-sh
+
+   Copyright (C) 1994 X Consortium
+
+m4/cxx_11.m4
+#   Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
+#   Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
+#   Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
+
+m4/stat-time.m4
+
+From GNU coreutils 8.12
+# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2011 Free Software
+# Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+src/main/gram.y
+src/main/gram.c
+
+Portions of these files are based on the parser package,
+
+   Copyright (C) 2009--2011  Romain Francois
+   
+
+Some of the files in src/appl were originally taken from the Netlib
+archive now at www.netlib.org and do not clearly state their
+copyright status.
+
+src/appl/{dchdc,dpfa,dpbsl,dpoco,dpodi,dpofa,dposl,dqrdc,
+          dqrsl,dsvdc,dtrco,dtrsl}.f 
+
+are part of LINPACK, with authors J.J. Dongarra, Cleve Moler and
+G.W. Stewart
+
+src/appl/dqrdc2.f is based on dqrdc.f by G.W. Stewart.
+
+src/appl/lbfgsb.c is based on the work of Zhu, Byrd, Lu-Chen and
+Nocedal, which does not state any copyright.
+
+src/main/radixsort.c is largely based on code from the data.table package,
+
+   Copyright (C) 2006--2015  Matt Dowle and Arun Srinivasan
+
+doc/html/Rlogo.svg
+doc/html/Rlogo.pdf
+doc/html/logo.jpg
+doc/html/favicon.ico
+src/modules/X11/rlogo_icon.h
+src/gnuwin32/front-ends/R.ico
+src/gnuwin32/installer/R.bmp
+
+   Copyright (C) 2015-2016 The R Foundation
+   
+   You can distribute the logo under the terms of the Creative
+   Commons Attribution-ShareAlike 4.0 International license (CC-BY-SA
+   4.0) or (at your option) the GNU General Public License version 2
+   (GPL-2).
+
+   The design of the current logo is based on the previous logo that
+   was included in the R source from 1998 to 2016.
+
+	---------------------------------------------------
+
+Binary distributions of R may include compiled code from the PCRE
+library whose licence is:
+
+  THE BASIC LIBRARY FUNCTIONS
+  ---------------------------
+  Written by:       Philip Hazel
+  Email local part: ph10
+  Email domain:     cam.ac.uk
+
+  University of Cambridge Computing Service, Cambridge, England.
+
+  Copyright (c) 1997-2015 University of Cambridge
+  All rights reserved.
+
+  PCRE JUST-IN-TIME COMPILATION SUPPORT
+  -------------------------------------
+  Written by:       Zoltan Herczeg
+  Email local part: hzmester
+  Emain domain:     freemail.hu
+
+  Copyright(c) 2010-2015 Zoltan Herczeg
+  All rights reserved.
+
+  STACK-LESS JUST-IN-TIME COMPILER
+  --------------------------------
+  Written by:       Zoltan Herczeg
+  Email local part: hzmester
+  Emain domain:     freemail.hu
+
+  Copyright(c) 2009-2015 Zoltan Herczeg
+  All rights reserved.
+
+  THE C++ WRAPPER FUNCTIONS
+  -------------------------
+  Contributed by:   Google Inc.
+
+  Copyright (c) 2007-2012, Google Inc.
+  All rights reserved.
+
+
+  THE "BSD" LICENCE
+  -----------------
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions
+  are met:
+
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+
+      * Redistributions in binary form must reproduce the above
+        copyright notice, this list of conditions and the following
+        disclaimer in the documentation and/or other materials
+        provided with the distribution.
+
+      * Neither the name of the University of Cambridge nor the name
+        of Google Inc. nor the names of their contributors may be used
+        to endorse or promote products derived from this software
+        without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+  POSSIBILITY OF SUCH DAMAGE.
+
+	---------------------------------------------------
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/KEYWORDS.db
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/KEYWORDS.db	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/doc/KEYWORDS.db	(revision 2476)
@@ -0,0 +1,71 @@
+Basics: Basics
+Basics|sysdata: Basic System Variables # != S
+Basics|datasets: Datasets available by data() # != S
+Basics|data: Environments, Scoping, Packages # ~= S
+Basics|manip: Data Manipulation
+Basics|attribute: Data Attributes
+Basics|classes: Data Types (not OO)
+Basics|classes|character: Character Data ("String") Operations
+Basics|classes|complex: Complex Numbers
+Basics|classes|category: Categorical Data
+Basics|classes|NA: Missing Values # != S
+Basics|list: Lists
+Basics|chron: Dates and Times
+Basics|package: Package Summaries
+Graphics: Graphics
+Graphics|aplot: Add to Existing Plot / internal plot
+Graphics|dplot: Computations Related to Plotting
+Graphics|hplot: High-Level Plots
+Graphics|iplot: Interacting with Plots
+Graphics|color: Color, Palettes etc
+Graphics|dynamic: Dynamic Graphics
+Graphics|device: Graphical Devices
+Mathematics: Mathematics
+Mathematics|array: Matrices and Arrays
+Mathematics|array|algebra: Linear Algebra
+Mathematics|arith: Basic Arithmetic and Sorting	# != S
+Mathematics|math: Mathematical Calculus etc # != S
+Mathematics|logic: Logical Operators
+Mathematics|optimize: Optimization
+Mathematics|symbolmath: "Symbolic Math", as polynomials, fractions
+Mathematics|graphs: Graphs (not graphics), i.e nodes&edges, e.g. dendrograms
+Programming: Programming, Input/Ouput, and Miscellaneous
+Programming|programming: Programming
+Programming|programming|interface: Interfaces to Other Languages
+Programming|IO:  Input/output
+Programming|IO|file: Input/Output Files
+Programming|IO|connection: Input/Output Connections
+Programming|IO|database: Interfaces to databases
+Programming|iteration: Looping and Iteration
+Programming|methods: Methods and Generic Functions
+Programming|print: Printing
+Programming|error: Error Handling
+Programming|environment: Session Environment
+Programming|internal: Internal Objects (not part of API)
+Programming|utilities: Utilities
+Programming|misc: Miscellaneous
+Programming|documentation: Documentation
+Programming|debugging: Debugging Tools
+Statistics: Statistics
+Statistics|datagen: Functions for generating data sets
+Statistics|distribution: Probability Distributions and Random Numbers
+Statistics|univar: simple univariate statistics  # != S
+Statistics|htest: Statistical Inference
+Statistics|models: Statistical Models
+Statistics|models|regression: Regression
+Statistics|models|regression|nonlinear: Non-linear Regression # only?
+Statistics|robust: Robust/Resistant Techniques
+Statistics|design: Designed Experiments
+Statistics|multivariate: Multivariate Techniques
+Statistics|ts: Time Series
+Statistics|survival: Survival Analysis
+Statistics|nonparametric: Nonparametric Statistics # w/o 'smooth'
+Statistics|smooth: Curve (and Surface) Smoothing
+Statistics|smooth|loess: Loess Objects
+Statistics|cluster: Clustering
+Statistics|survey: Complex survey samples
+Statistics|tree: Regression and Classification Trees
+MASS: MASS (the book) uses
+MASS|classif: Classification # package 'class'
+MASS|neural: Neural Networks # package 'nnet'
+MASS|spatial: Spatial Statistics # package 'spatial'
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRlapack.dylib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRlapack.dylib
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libgcc_s.1.dylib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libgcc_s.1.dylib
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRblas.dylib.dSYM/Contents/Resources/DWARF/libRblas.dylib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRblas.dylib.dSYM/Contents/Resources/DWARF/libRblas.dylib
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRblas.dylib.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRblas.dylib.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRblas.dylib.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.org.r-project.R-framework</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleVersion</key>
+		<string>3.3.2</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libR.dylib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libR.dylib
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRblas.0.dylib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRblas.0.dylib
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libquadmath.0.dylib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libquadmath.0.dylib
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRblas.dylib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRblas.dylib
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libgfortran.3.dylib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libgfortran.3.dylib
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libreadline.dylib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libreadline.dylib
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libreadline.5.2.dylib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libreadline.5.2.dylib
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRlapack.dylib.dSYM/Contents/Resources/DWARF/libRlapack.dylib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRlapack.dylib.dSYM/Contents/Resources/DWARF/libRlapack.dylib
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRlapack.dylib.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRlapack.dylib.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libRlapack.dylib.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.org.r-project.R-framework</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleVersion</key>
+		<string>3.3.2</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libgcc_s_x86_64.1.dylib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libgcc_s_x86_64.1.dylib
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libR.dylib.dSYM/Contents/Resources/DWARF/libR.dylib
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libR.dylib.dSYM/Contents/Resources/DWARF/libR.dylib
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libR.dylib.dSYM/Contents/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libR.dylib.dSYM/Contents/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/lib/libR.dylib.dSYM/Contents/Info.plist	(revision 2476)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+	<dict>
+		<key>CFBundleDevelopmentRegion</key>
+		<string>English</string>
+		<key>CFBundleIdentifier</key>
+		<string>com.apple.xcode.dsym.org.r-project.R-framework</string>
+		<key>CFBundleInfoDictionaryVersion</key>
+		<string>6.0</string>
+		<key>CFBundlePackageType</key>
+		<string>dSYM</string>
+		<key>CFBundleSignature</key>
+		<string>????</string>
+		<key>CFBundleVersion</key>
+		<string>3.3.2</string>
+	</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/COPYING
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/COPYING	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/COPYING	(revision 2476)
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/rtags
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/rtags	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/rtags	(revision 2476)
@@ -0,0 +1,177 @@
+## rtags -- tag source files recursively in a directory tree
+##
+## Examples:
+##  R CMD rtags -o TAGS /path/to/Rsrc/
+
+revision='$Rev: 47214 $'
+version=`set - ${revision}; echo ${2}`
+version="rtags/etags front-end: ${R_VERSION} (r${version})
+
+Copyright (C) 2008 The R Core Team.
+This is free software; see the GNU General Public License version 2
+or later for copying conditions.  There is NO warranty."
+
+usage="Usage: R CMD rtags [options] [path]
+
+Tag C, R, and Rd files under the directory 'path' (pwd by default).
+
+Options:
+  -h, --help		print short help message and exit
+  -v, --version		print version info and exit
+  -o, --output=FILE	write output to FILE (default TAGS)
+      --no-c		do not tag C (.c, .h) files
+      --no-R		do not tag R (.R, .r, .S, .s) files
+      --no-Rd		do not tag Rd (.Rd) files
+  -a  --append          append to output file (overwrites by default) 
+  -V, --verbose		echo the name of files processed
+
+Report bugs to <deepayan.sarkar@r-project.org>."
+
+
+
+## FIXME: Rd and C files may be simpler to deal with on Windows if we
+## use R to locate the files, and then call system("etags ...") to tag
+## them.
+
+
+cfiles=true
+rfiles=true
+rdfiles=true
+verbose=false
+append=false
+ofile="TAGS"
+
+while test -n "${1}"; do
+  case ${1} in
+    -h|--help)
+      echo "${usage}"; exit 0 ;;
+    -v|--version)
+      echo "${version}"; exit 0 ;;
+    -V|--verbose)
+      verbose=true ;;
+    -a|--append)
+      append=true ;;
+    --no-c)
+      cfiles=false ;;
+    --no-R)
+      rfiles=false ;;
+    --no-Rd)
+      rdfiles=false ;;
+    --output=*)
+      ofile=`echo "${1}" | ${SED} -e 's/[^=]*=//'` ;;
+    -o)
+      if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then      
+	ofile="${2}"; shift
+      else
+	echo "ERROR: option '${1}' requires an argument"
+	exit 1
+      fi
+      ;;
+    --|*)
+      break ;;
+  esac
+  shift
+done
+
+
+NDIR=${#}
+case ${NDIR} in
+    0)
+      SRCDIR=`pwd` ;;
+    1)
+      SRCDIR=${1} ;;
+    *)
+      SRCDIR=${1}; echo "WARNING: multiple paths specified; using the first one";;
+esac
+
+RPROG=${R_HOME}/bin/R
+
+type=""
+first=true
+if ${rfiles}; then type="R"; first=false; fi
+if ${cfiles}; then 
+    if ${first}; then
+	type="C"
+	first=false
+    else 
+	type="${type}/C"
+    fi
+fi
+if ${rdfiles}; then 
+    if ${first}; then
+	type="Rd"
+	first=false
+    else 
+	type="${type}/Rd"
+    fi
+fi
+
+if test -z ${type}; then
+    echo "ERROR: nothing to tag"
+    exit 1
+fi
+
+echo  "
+Tagging ${type} files under ${SRCDIR}; writing to ${ofile}"\c
+if ! ${append}; then 
+    echo  " (overwriting)"\c
+    echo  "" > ${ofile}\c
+else 
+    echo  " (appending)"\c
+    touch ${ofile}
+fi
+echo "...
+"
+
+## echo RPROG=${RPROG}
+
+if ${verbose}; then VERBOSE=TRUE; else VERBOSE=FALSE; fi
+if ${append}; then APPEND=TRUE; else APPEND=FALSE; fi
+
+if ${rfiles}; then
+    SCRIPT_DIR=$(dirname $0)
+    echo "
+
+require(utils)
+
+rtags(path.expand('${SRCDIR}'), pattern = '[.]*\\\\\.[RrSs]$', 
+      keep.re = '/R/[^/]*\\\\\.[RrSs]', 
+      verbose = ${VERBOSE}, 
+      ofile = '${ofile}', 
+      append = ${APPEND}, 
+      recursive = TRUE)" | "${RPROG}" --slave
+
+fi
+
+if ${rdfiles}; then
+    if ${verbose}; then 
+	find -L ${SRCDIR} -type f -name "*.Rd" -print 
+    fi
+    find -L ${SRCDIR} -type f -name "*.Rd" -print0 | xargs -0 etags -o ${ofile} -a -l none --regex='/\\alias[{]\([^{}]*\)[}]/\1/'
+fi
+
+if ${cfiles}; then
+    if ${verbose}; then 
+	find -L ${SRCDIR} -type f -name "*.[ch]" -print
+	find -L ${SRCDIR} -type f -name "*.cpp" -print
+	find -L ${SRCDIR} -type f -name "*.hpp" -print
+	find -L ${SRCDIR} -type f -name "*.cc" -print
+	find -L ${SRCDIR} -type f -name "*.hh" -print
+    fi
+    find -L ${SRCDIR} -type f -name "*.[ch]" -print0 | xargs -0 etags -o ${ofile} -a -l c
+    find -L ${SRCDIR} -type f -name "*.cpp" -print0 | xargs -0 etags -o ${ofile} -a -l c
+    find -L ${SRCDIR} -type f -name "*.hpp" -print0 | xargs -0 etags -o ${ofile} -a -l c
+    find -L ${SRCDIR} -type f -name "*.cc" -print0 | xargs -0 etags -o ${ofile} -a -l c
+    find -L ${SRCDIR} -type f -name "*.hh" -print0 | xargs -0 etags -o ${ofile} -a -l c
+fi
+
+echo "Done"
+
+exit 0
+
+
+
+### Local Variables: ***
+### mode: sh ***
+### sh-indentation: 2 ***
+### End: ***

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/rtags
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/mkinstalldirs
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/mkinstalldirs	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/mkinstalldirs	(revision 2476)
@@ -0,0 +1,161 @@
+#!/bin/sh
+# mkinstalldirs --- make directory hierarchy
+
+scriptversion=2008-11-05.08
+
+# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain.
+#
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+IFS=" ""	$nl"
+errstatus=0
+dirmode=
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
+
+Create each directory DIR (with mode MODE, if specified), including all
+leading file name components.
+
+Report bugs to <bug-automake@gnu.org>."
+
+# process command line arguments
+while test $# -gt 0 ; do
+  case $1 in
+    -h | --help | --h*)         # -h for help
+      echo "$usage"
+      exit $?
+      ;;
+    -m)                         # -m PERM arg
+      shift
+      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+      dirmode=$1
+      shift
+      ;;
+    --version)
+      echo "$0 $scriptversion"
+      exit $?
+      ;;
+    --)                         # stop option processing
+      shift
+      break
+      ;;
+    -*)                         # unknown option
+      echo "$usage" 1>&2
+      exit 1
+      ;;
+    *)                          # first non-opt arg
+      break
+      ;;
+  esac
+done
+
+for file
+do
+  if test -d "$file"; then
+    shift
+  else
+    break
+  fi
+done
+
+case $# in
+  0) exit 0 ;;
+esac
+
+# Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
+# mkdir -p a/c at the same time, both will detect that a is missing,
+# one will create a, then the other will try to create a and die with
+# a "File exists" error.  This is a problem when calling mkinstalldirs
+# from a parallel make.  We use --version in the probe to restrict
+# ourselves to GNU mkdir, which is thread-safe.
+case $dirmode in
+  '')
+    if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+      echo "mkdir -p -- $*"
+      exec mkdir -p -- "$@"
+    else
+      # On NextStep and OpenStep, the `mkdir' command does not
+      # recognize any option.  It will interpret all options as
+      # directories to create, and then abort because `.' already
+      # exists.
+      test -d ./-p && rmdir ./-p
+      test -d ./--version && rmdir ./--version
+    fi
+    ;;
+  *)
+    if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
+       test ! -d ./--version; then
+      echo "mkdir -m $dirmode -p -- $*"
+      exec mkdir -m "$dirmode" -p -- "$@"
+    else
+      # Clean up after NextStep and OpenStep mkdir.
+      for d in ./-m ./-p ./--version "./$dirmode";
+      do
+        test -d $d && rmdir $d
+      done
+    fi
+    ;;
+esac
+
+for file
+do
+  case $file in
+    /*) pathcomp=/ ;;
+    *)  pathcomp= ;;
+  esac
+  oIFS=$IFS
+  IFS=/
+  set fnord $file
+  shift
+  IFS=$oIFS
+
+  for d
+  do
+    test "x$d" = x && continue
+
+    pathcomp=$pathcomp$d
+    case $pathcomp in
+      -*) pathcomp=./$pathcomp ;;
+    esac
+
+    if test ! -d "$pathcomp"; then
+      echo "mkdir $pathcomp"
+
+      mkdir "$pathcomp" || lasterr=$?
+
+      if test ! -d "$pathcomp"; then
+	errstatus=$lasterr
+      else
+	if test ! -z "$dirmode"; then
+	  echo "chmod $dirmode $pathcomp"
+	  lasterr=
+	  chmod "$dirmode" "$pathcomp" || lasterr=$?
+
+	  if test ! -z "$lasterr"; then
+	    errstatus=$lasterr
+	  fi
+	fi
+      fi
+    fi
+
+    pathcomp=$pathcomp/
+  done
+done
+
+exit $errstatus
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/mkinstalldirs
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/BATCH
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/BATCH	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/BATCH	(revision 2476)
@@ -0,0 +1,65 @@
+#
+# ${R_HOME}/bin/BATCH
+
+revision='$Rev: 59036 $'
+version=`set - ${revision}; echo ${2}`
+version="R batch front end: ${R_VERSION} (r${version})
+
+Copyright (C) 2000--2006 The R Core Team.
+This is free software; see the GNU General Public License version 2
+or later for copying conditions.  There is NO warranty."
+
+opts="--restore --save --no-readline"
+
+usage="Usage: R CMD BATCH [options] infile [outfile]
+
+Run R non-interactively with input from infile and place output (stdout
+and stderr) to another file.  If not given, the name of the output file
+is the one of the input file, with a possible '.R' extension stripped,
+and '.Rout' appended.
+
+Options:
+  -h, --help		print short help message and exit
+  -v, --version		print version info and exit
+  --no-timing           do not report the timings
+  --			end processing of options
+
+Further arguments starting with a '-' are considered as options as long
+as '--' was not encountered, and are passed on to the R process, which
+by default is started with '$opts'.
+See also help('BATCH') inside R.
+
+Report bugs at bugs.r-project.org ."
+
+while test -n "${1}"; do
+  case ${1} in
+    -h|--help)
+      echo "${usage}"; exit 0 ;;
+    -v|--version)
+      echo "${version}"; exit 0 ;;
+    --no-timing)
+      timing=no; shift ;;
+    --) shift; break ;;
+    -d|-g) opts="${opts} ${1} ${2}"; shift; shift ;;
+    -*) opts="${opts} ${1}"; shift ;;
+    *)  break ;;
+  esac
+done
+
+in=${1}
+out=${2-`basename ${1} .R`.Rout}
+
+if test -z "${timing}"; then
+  R_BATCH=${$}
+  export R_BATCH
+fi
+## this used to set options(echo=TRUE), but that is the default
+## except for --slave, and why inhibit the latter?
+
+## need to put -f first in case user does --args
+${R_HOME}/bin/R -f ${in} ${opts} ${R_BATCH_OPTIONS} >${out} 2>&1
+
+### Local Variables: ***
+### mode: sh ***
+### sh-indentation: 2 ***
+### End: ***

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/BATCH
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rd2pdf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rd2pdf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rd2pdf	(revision 2476)
@@ -0,0 +1,12 @@
+## Rd2pdf -*- sh -*-  Convert man pages (*.Rd help files) via LaTeX to PDF.
+
+args=
+while test -n "${1}"; do
+  ## quote each argument here, unquote in R code.
+  args="${args}nextArg${1}"
+  shift
+done
+
+echo 'tools:::..Rd2pdf()' \
+| R_DEFAULT_PACKAGES= LC_ALL=C "${R_HOME}/bin/R" \
+--vanilla --slave --args ${args}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rd2pdf
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/exec/R
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/exec/R
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rcmd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rcmd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rcmd	(revision 2476)
@@ -0,0 +1,67 @@
+#!/bin/sh
+#
+# ${R_HOME}/bin/Rcmd
+
+## Shell script wrapper for all R CMD commands.
+## For internal use only.
+
+R_CMD="${R_HOME}/bin/Rcmd"
+export R_CMD
+
+R_VERSION=3.3.2
+export R_VERSION
+
+R_OSTYPE="unix"
+export R_OSTYPE
+
+## Append 'share/texmf/...' to TeX's input search path.
+if test -z "${TEXINPUTS}"; then
+  TEXINPUTS=".:${R_SHARE_DIR}/texmf/tex/latex:"
+else
+  TEXINPUTS=".:${TEXINPUTS}:${R_SHARE_DIR}/texmf/tex/latex:"
+fi
+export TEXINPUTS
+if test -z "${BIBINPUTS}"; then
+  BIBINPUTS=".:${R_SHARE_DIR}/texmf/bibtex/bib:"
+else
+  BIBINPUTS=".:${BIBINPUTS}:${R_SHARE_DIR}/texmf/bibtex/bib:"
+fi
+export BIBINPUTS
+if test -z "${BSTINPUTS}"; then
+  BSTINPUTS=".:${R_SHARE_DIR}/texmf/bibtex/bst:"
+else
+  BSTINPUTS=".:${BSTINPUTS}:${R_SHARE_DIR}/texmf/bibtex/bst:"
+fi
+export BSTINPUTS
+
+. "${R_HOME}/etc${R_ARCH}/Renviron"
+export `sed 's/^ *#.*//; s/^\(.*\)=.*/\1/' "${R_HOME}/etc${R_ARCH}/Renviron"`
+
+extra=
+case "${1}" in
+## this was a separate command prior to 2.10.0
+  Rd2txt)
+    cmd="${R_HOME}/bin/Rdconv"
+    extra="-t txt"
+    ;;
+## removed in 2.15.0
+  Rd2dvi)
+    echo "R CMD Rd2dvi is defunct: use Rd2pdf instead"
+    exit 1
+    ;;
+  *)
+    if test -x "${R_HOME}/bin/${1}"; then
+      cmd="${R_HOME}/bin/${1}"
+    else
+      cmd="${1}"
+    fi
+    ;;
+esac
+shift
+
+exec "${cmd}" ${extra} "${@}"
+
+### Local Variables: ***
+### mode: sh ***
+### sh-indentation: 2 ***
+### End: ***

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rcmd
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rscript
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rscript
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/COMPILE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/COMPILE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/COMPILE	(revision 2476)
@@ -0,0 +1,73 @@
+#
+# ${R_HOME}/bin/COMPILE
+
+# @configure_input@
+
+revision='$Rev: 63539 $'
+version=`set - ${revision}; echo ${2}`
+version="R compilation front end: ${R_VERSION} (r${version})
+
+Copyright (C) 2000-2013 The R Core Team.
+This is free software; see the GNU General Public License version 2 or
+later for copying conditions.  There is NO warranty."
+
+usage="Usage: R CMD COMPILE [options] files
+
+Compile the specified files for subsequent collection into a shared
+library using 'R CMD SHLIB' or an executable program using 'R CMD
+LINK'.  Currently, the following languages with associated source file
+extensions are supported (provided that the respective compilers are
+available and R was configured to use these): C ('.c'), C++ ('.cc' or
+'.cpp'), FORTRAN 77 ('.f'), FORTRAN 90 ('.f90'), FORTRAN 95 ('.f95'),
+Objective C ('.m'), and Objective C++ ('.M' or '.mm').
+
+Options:
+  -h, --help		print short help message and exit
+  -v, --version		print version info and exit
+
+Other options of the form '-DMACRO' or 'VAR=VALUE' are passed on to the
+compilation.
+
+Report bugs at bugs.r-project.org ."
+
+makefiles="-f \"${R_HOME}/etc${R_ARCH}/Makeconf\""
+if test -r "${HOME}/.R/Makevars-${R_PLATFORM}"; then
+  makefiles="${makefiles} -f \"${HOME}/.R/Makevars-${R_PLATFORM}\""
+elif test -r "${HOME}/.R/Makevars"; then
+  makefiles="${makefiles} -f \"${HOME}/.R/Makevars\""
+fi
+if test -r Makevars; then
+  makefiles="-f Makevars ${makefiles}"
+fi
+
+objs=
+while test -n "${1}"; do
+  case ${1} in
+    -h|--help)
+      echo "${usage}"; exit 0 ;;
+    -v|--version)
+      echo "${version}"; exit 0 ;;
+    *.[cfmM]|*.cc|*.cpp|*.f90|*.f95|*.mm)
+      objs="${objs} `echo ${1} | sed 's/\.[^\.][^\.]*$/.o/'`" ;;
+    -D*)
+      MAKEFLAGS="${MAKEFLAGS} ${1}" ;;
+    *=*)
+      argn=`echo "${1}" | sed -e 's/=.*//'`
+      argv=`echo "${1}" | \
+	sed -e 's/[^=]*=//; s/^\\"//; s/\\"$//; s/\\"/\\\\"/g'`
+      MAKEFLAGS="${MAKEFLAGS} ${argn}=\"${argv}\""
+      ;;
+    *)
+      echo "ERROR: don't know how to compile '${1}'"
+      exit 1
+      ;;
+  esac
+  shift
+done
+
+eval "${MAKE} ${makefiles} ${MAKEFLAGS} ${objs}"
+
+### Local Variables: ***
+### mode: sh ***
+### sh-indentation: 2 ***
+### End: ***

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/COMPILE
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rprof
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rprof	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rprof	(revision 2476)
@@ -0,0 +1,10 @@
+# ${R_HOME}/bin/Rprof -*- sh -*- for processing Rprof() files
+
+args=
+while test -n "${1}"; do
+  args="${args}nextArg${1}"
+  shift
+done
+
+## NB: Apple's ICU needs LC_COLLATE set when R is started.
+echo 'tools:::.Rprof()' | R_DEFAULT_PACKAGES=utils LC_COLLATE=C "${R_HOME}/bin/R" --vanilla --slave --args ${args}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rprof
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/fc-cache
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/fc-cache
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/qpdf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/qpdf
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rdiff
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rdiff	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rdiff	(revision 2476)
@@ -0,0 +1,10 @@
+## Rdiff -- diff 'without R version'
+
+args=
+while test -n "${1}"; do
+  ## quote each argument here, unquote in R code.
+  args="${args}nextArg${1}"
+  shift
+done
+
+R_DEFAULT_PACKAGES=NULL "${R_HOME}/bin/R" -e 'tools:::.Rdiff()' --vanilla --slave --args ${args}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rdiff
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Sweave
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Sweave	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Sweave	(revision 2476)
@@ -0,0 +1,14 @@
+# ${R_HOME}/bin/Sweave -*- sh -*-
+
+R_EXE="${R_HOME}/bin/R"
+
+R_SWEAVE_OPTIONS=${R_SWEAVE_OPTIONS:='--no-restore --slave'}
+
+args=
+while test -n "${1}"; do
+  ## quote each argument here, unquote in R code.
+  args="${args}nextArg${1}"
+  shift
+done
+
+echo "utils:::.Sweave()" | "${R_EXE}" $R_SWEAVE_OPTIONS --args ${args}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Sweave
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rdconv
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rdconv	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rdconv	(revision 2476)
@@ -0,0 +1,11 @@
+# ${R_HOME}/bin/Rdconv -*- sh -*- for installing add-on packages
+
+args=
+while test -n "${1}"; do
+  ## quote each argument here, unquote in R code.
+  args="${args}nextArg${1}"
+  shift
+done
+
+## NB: Apple's ICU needs LC_COLLATE set when R is started.
+echo 'tools:::.Rdconv()' | R_DEFAULT_PACKAGES= LC_COLLATE=C "${R_HOME}/bin/R" --vanilla --slave --args ${args}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Rdconv
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/REMOVE
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/REMOVE	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/REMOVE	(revision 2476)
@@ -0,0 +1,4 @@
+# ${R_HOME}/bin/REMOVE for removing add-on packages
+
+R_DEFAULT_PACKAGES=NULL "${R_HOME}/bin/R" -f "${R_SHARE_DIR}/R/REMOVE.R" --no-restore --slave --args $@
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/REMOVE
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Stangle
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Stangle	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Stangle	(revision 2476)
@@ -0,0 +1,14 @@
+# ${R_HOME}/bin/Stangle -*- sh -*-
+
+R_EXE="${R_HOME}/bin/R"
+
+R_STANGLE_OPTIONS=${R_STANGLE_OPTIONS:='--vanilla --slave'}
+
+args=
+while test -n "${1}"; do
+  ## quote each argument here, unquote in R code.
+  args="${args}nextArg${1}"
+  shift
+done
+
+echo "utils:::.Stangle()" | "${R_EXE}" $R_STANGLE_OPTIONS --args ${args}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/Stangle
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/LINK
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/LINK	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/LINK	(revision 2476)
@@ -0,0 +1,54 @@
+##
+## ${R_HOME}/bin/LINK
+
+revision='$Rev: 63539 $'
+version=`set - ${revision}; echo ${2}`
+version="R linker front end: ${R_VERSION} (r${version})
+
+Copyright (C) 2000-2013 The R Core Team.
+This is free software; see the GNU General Public License version 2
+or later for copying conditions.  There is NO warranty."
+
+usage="Usage: R CMD LINK [options] linkcmd
+
+Perform the specified linkcmd by passing it through GNU libtool and
+setting a few useful R-related options.  Use in particular when creating
+executables linked against the R shared library.
+
+Options:
+  -h, --help            print short help message and exit
+  -v, --version         print version info and exit
+
+Currently only is useful when creating executables, using the C or C++
+compiler for linking.  If FORTRAN code is to be linked, it needs to be
+manually ensured that the linker flags for the FORTRAN are included.
+
+Report bugs at bugs.r-project.org ."
+
+args=
+while test -n "${1}"; do
+  case ${1} in
+    -h|--help)
+      echo "${usage}"; exit 0 ;;
+    -v|--version)
+      echo "${version}"; exit 0 ;;
+    *)
+      args="${args} ${1}" ;;
+  esac
+  shift
+done
+
+if test -z "${R_HOME}"; then
+  echo "Fatal error: R_HOME was not set"
+  exit 1
+fi
+
+Rexeclibdir="${R_HOME}/lib${R_ARCH}"
+linkopts="-avoid-version -rpath ${Rexeclibdir}"
+
+exec ${R_HOME}/bin/libtool --mode=link ${args} ${linkopts}
+
+### Local Variables: ***
+### mode: sh ***
+### sh-indentation: 2 ***
+### End: ***

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/LINK
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/f77_f2c
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/f77_f2c	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/f77_f2c	(revision 2476)
@@ -0,0 +1,148 @@
+#!/bin/sh
+
+## f77 -- Simple shell script wrapper to compile/link FORTRAN 77 code
+## using the FORTRAN-to-C converter.
+##
+## Usage:
+##   R CMD f77 [options] files [objs]
+
+## Copyright (C) 2002-2005 The R Core Team
+##
+## This document is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## A copy of the GNU General Public License is available at
+## https://www.R-project.org/Licenses/
+
+revision='$Rev: 68951 $'
+version=`set - ${revision}; echo ${2}`
+version="R front-end script to f2c: ${R_VERSION} (r${version})
+
+Copyright (C) 2002-2005 The R Core Team.
+This is free software; see the GNU General Public License version 2
+or later for copying conditions.  There is NO warranty."
+
+usage="Usage: R CMD f77 [options] files [objs]
+
+The specified files should be FORTRAN 77 source files ending in '.f'.
+
+Options:
+  -h, --help            print short help message and exit
+      --version         print version info and exit
+  -c                    compile and assemble, but do not link
+  -o FILE               place the output into FILE
+  --verbose             display the programs invoked
+
+Report bugs at bugs.r-project.org ."
+
+## Possible user overrides
+: ${F2C='f2c'}
+: ${F2CLIBS='-lf2c'}
+: ${CC='cc'}
+: ${CPP='cpp'}
+CFLAGS=
+
+##
+rc=0
+tmp_stderr_file=${TMPDIR-/tmp}/f77_stderr.${$}
+trap "rm -f ${tmp_stderr_file}; exit \$rc" 0
+
+opt_c=no
+opt_o=no
+echo=echo
+outfile=a.out
+verbose=false
+srcs=
+objs=
+
+## Argument loop.
+while test -n "${1}"; do
+  case "${1}" in
+    -h|--help)
+      ${echo} "${usage}"; exit 0 ;;
+    --version)
+      ${echo} "${version}"; exit 0 ;;
+    --verbose)
+      verbose=${echo} ;;
+    -c)
+      opt_c=yes ;;
+    -o)
+      opt_o=yes
+      outfile="${2}"
+      shift
+      ;;
+    -v)
+      ${echo} "-lg2c -lm"; exit 0 ;;
+    *.f)
+      srcs="${srcs} ${1}" ;;
+    *.F)
+      srcs="${srcs} ${1}" ;;
+    */*|*.a|*.o|*.s[lo]|*.s[lo].*)
+      objs="${objs} ${1}" ;;
+    *)  # assume all the rest are C flags, -fPIC, -I etc.
+      CFLAGS="${CFLAGS} $1" ;;
+  esac
+  shift
+done
+
+set - "${srcs}"
+if test ${#} -gt 1 \
+     && test "${opt_c}" = yes \
+     && test "${opt_o}" = yes; then
+  echo "cannot specify -o with -c and multiple compilations"
+  exit
+fi
+
+for f in ${*}; do
+    case ${f} in
+	*.f)
+	    b=`basename ${f} .f`
+	    ${verbose} ${F2C} ${F2CFLAGS} ${f}
+	    ${F2C} ${F2CFLAGS} ${f}
+	    rc=${?}
+	    test ${rc} = 0 || exit
+	    ;;
+	*.F)
+	    b=`basename ${f} .F`
+	    ${CPP} $1 >$b.i
+	    rc=$?
+	    case $rc in
+		0)
+		    ${verbose} ${F2C} ${F2CFLAGS} <$b.i >$b.c
+		    ${F2C} ${F2CFLAGS} <$b.i >$b.c
+		    rc=$?
+		    ;;
+	    esac
+	    rm $b.i
+	    test ${rc} = 0 || exit
+	    ;;
+    esac
+  if test "${opt_c}" = yes && test "${opt_o}" = yes; then
+    CFLAGS="${CFLAGS} -o ${outfile}"
+  fi
+  ${verbose} ${CC} -c ${CFLAGS} ${b}.c 2>${tmp_stderr_file}
+  ${CC} -c ${CFLAGS} ${b}.c 2>${tmp_stderr_file}
+  rc=${?}
+  test ${rc} = 0 || exit
+  objs="${objs} ${b}.o"
+  rm -f ${b}.c
+done
+
+if test "${opt_c}" = no && test -n "${objs}"; then
+  ${verbose} "${CC} ${CFLAGS} -o ${outfile} -u MAIN__ ${objs} ${F2CLIBS}"
+  ${CC} ${CFLAGS} -o ${outfile} -u MAIN__ ${objs} ${F2CLIBS}
+fi
+rc=${?}
+exit ${rc}
+
+### Local Variables: ***
+### mode: sh ***
+### sh-indentation: 2 ***
+### End: ***

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/f77_f2c
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/pager
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/pager	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/pager	(revision 2476)
@@ -0,0 +1,17 @@
+#!/bin/sh
+## For the curious: "pager $1" doesn't work in batch, because "more" will
+## eat the rest of stdin.  The no-argument version is intended for use at
+## the end of a pipeline.
+##
+## PAGER is determined at configure time and recorded in `etc/Renviron'.
+## This is documented to be a 'command line' so we do not quote it.
+if test -n "${1}"; then
+  exec ${PAGER} < ${1}
+else
+  exec ${PAGER}
+fi
+
+### Local Variables: ***
+### mode: sh ***
+### sh-indentation: 2 ***
+### End: ***

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/pager
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/build
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/build	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/build	(revision 2476)
@@ -0,0 +1,10 @@
+# ${R_HOME}/bin/build -*- sh -*- for building add-on packages
+
+args=
+while test -n "${1}"; do
+  args="${args}nextArg${1}"
+  shift
+done
+
+## NB: Apple's ICU needs LC_COLLATE set when R is started.
+echo 'tools:::.build_packages()' | R_DEFAULT_PACKAGES= LC_COLLATE=C "${R_HOME}/bin/R" --no-restore --slave --args ${args}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/build
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/SHLIB
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/SHLIB	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/SHLIB	(revision 2476)
@@ -0,0 +1,5 @@
+#
+# ${R_HOME}/bin/SHLIB
+
+echo 'tools:::.SHLIB()' | R_DEFAULT_PACKAGES=NULL "${R_HOME}/bin/R" --no-restore --slave --no-site-file --no-init-file --args $@
+

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/SHLIB
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/R	(revision 2476)
@@ -0,0 +1,308 @@
+#!/bin/sh
+# Shell wrapper for R executable.
+
+readlink_f() {
+  local target="$1"
+  [ -f "$target" ] || return 1 #no nofile
+
+  while [ -L "$target" ]; do
+    target="$(readlink "$target")" 
+  done
+  echo "$(cd "$(dirname "$target")"; pwd -P)/$target"
+}
+
+MY_PATH="`dirname \"$0\"`" 
+MY_PATH="`( cd \"$MY_PATH\" && pwd )`"
+
+R_HOME_DIR="$MY_PATH/../"
+if test "${R_HOME_DIR}" = "/Library/Frameworks/lib/R"; then
+   case "darwin13.4.0" in
+   linux*)
+     run_arch=`uname -m`
+     case "$run_arch" in
+        x86_64|mips64|ppc64|powerpc64|sparc64|s390x)
+          libnn=lib64
+          libnn_fallback=lib
+        ;;
+        *)
+          libnn=lib
+          libnn_fallback=lib64
+        ;;
+     esac
+     if [ -x "/Library/Frameworks/${libnn}/R/bin/exec/R" ]; then
+        R_HOME_DIR="/Library/Frameworks/${libnn}/R"
+     elif [ -x "/Library/Frameworks/${libnn_fallback}/R/bin/exec/R" ]; then
+        R_HOME_DIR="/Library/Frameworks/${libnn_fallback}/R"
+     ## else -- leave alone (might be a sub-arch)
+     fi
+     ;;
+  esac
+fi
+
+if test -n "${R_HOME}" && \
+   test "${R_HOME}" != "${R_HOME_DIR}"; then
+  echo "WARNING: ignoring environment value of R_HOME"
+fi
+R_HOME=$R_HOME_DIR
+export R_HOME
+R_SHARE_DIR=$R_HOME/share
+export R_SHARE_DIR
+R_INCLUDE_DIR=$R_HOME/include
+export R_INCLUDE_DIR
+R_DOC_DIR=$R_HOME/doc
+export R_DOC_DIR
+
+# Since this script can be called recursively, we allow R_ARCH to
+# be overridden from the environment.
+# This script is shared by parallel installs, so nothing in it should
+# depend on the sub-architecture except the default here.
+: ${R_ARCH=}
+
+usage="
+Usage: R [options] [< infile] [> outfile]
+   or: R CMD command [arguments]
+
+Start R, a system for statistical computation and graphics, with the
+specified options, or invoke an R tool via the 'R CMD' interface.
+
+Options:
+  -h, --help            Print short help message and exit
+  --version             Print version info and exit
+  --encoding=ENC        Specify encoding to be used for stdin
+  --encoding ENC
+  RHOME			Print path to R home directory and exit
+  --save                Do save workspace at the end of the session
+  --no-save             Don't save it
+  --no-environ          Don't read the site and user environment files
+  --no-site-file        Don't read the site-wide Rprofile
+  --no-init-file        Don't read the user R profile
+  --restore             Do restore previously saved objects at startup
+  --no-restore-data     Don't restore previously saved objects
+  --no-restore-history  Don't restore the R history file
+  --no-restore          Don't restore anything
+  --vanilla		Combine --no-save, --no-restore, --no-site-file,
+			--no-init-file and --no-environ
+  --no-readline         Don't use readline for command-line editing
+  --max-ppsize=N        Set max size of protect stack to N
+  --min-nsize=N         Set min number of fixed size obj's (\"cons cells\") to N
+  --min-vsize=N         Set vector heap minimum to N bytes; '4M' = 4 MegaB
+  -q, --quiet           Don't print startup message
+  --silent              Same as --quiet
+  --slave               Make R run as quietly as possible
+  --interactive         Force an interactive session
+  --verbose             Print more information about progress
+  -d, --debugger=NAME   Run R through debugger NAME
+  --debugger-args=ARGS  Pass ARGS as arguments to the debugger
+  -g TYPE, --gui=TYPE	Use TYPE as GUI; possible values are 'X11' (default)
+			and 'Tk'.
+  --arch=NAME		Specify a sub-architecture
+  --args                Skip the rest of the command line
+  -f FILE, --file=FILE  Take input from 'FILE'
+  -e EXPR               Execute 'EXPR' and exit
+
+FILE may contain spaces but not shell metacharacters.
+
+Commands:
+  BATCH			Run R in batch mode
+  COMPILE		Compile files for use with R
+  SHLIB			Build shared library for dynamic loading
+  INSTALL		Install add-on packages
+  REMOVE		Remove add-on packages
+  build			Build add-on packages
+  check			Check add-on packages
+  LINK			Front-end for creating executable programs
+  Rprof			Post-process R profiling files
+  Rdconv		Convert Rd format to various other formats
+  Rd2pdf		Convert Rd format to PDF
+  Rd2txt		Convert Rd format to pretty text
+  Stangle		Extract S/R code from Sweave documentation
+  Sweave		Process Sweave documentation
+  Rdiff			Diff R output ignoring headers etc
+  config		Obtain configuration information about R
+  javareconf		Update the Java configuration variables
+  rtags                 Create Emacs-style tag files from C, R, and Rd files
+
+Please use 'R CMD command --help' to obtain further information about
+the usage of 'command'.
+
+Options --arch, --no-environ, --no-init-file, --no-site-file and --vanilla
+can be placed between R and CMD, to apply to R processes run by 'command'
+
+Report bugs at bugs.r-project.org "
+
+## some systems have a more portable sed, e.g. /usr/xpg4/bin/sed on Solaris,
+## so make sure that is used.
+SED=/usr/bin/sed
+export SED
+
+error () {
+  echo "ERROR: $*" >&2
+  exit 1
+}
+
+### Argument loop
+args=
+debugger=
+debugger_args=
+gui=
+while test -n "${1}"; do
+  case ${1} in
+    RHOME|--print-home)
+      echo "${R_HOME}"; exit 0 ;;
+    CMD)
+      shift;
+      export R_ARCH
+      . "${R_HOME}/etc${R_ARCH}/ldpaths"
+      exec sh "${R_HOME}/bin/Rcmd" "${@}" ;;
+    -g|--gui)
+      if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
+	gui="${2}"
+        args="${args} ${1} ${2}"
+	shift
+      else
+	error "option '${1}' requires an argument"
+      fi
+      ;;
+    --gui=*)
+      gui=`echo "${1}" | ${SED} -e 's/[^=]*=//'`
+      args="${args} ${1}"
+      ;;
+    -d|--debugger)
+      if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
+	debugger="${2}"; shift
+      else
+	error "option '${1}' requires an argument"
+      fi
+      ;;
+    --debugger=*)
+      debugger=`echo "${1}" | ${SED} -e 's/[^=]*=//'` ;;
+    --debugger-args=*)
+      debugger_args=`echo "${1}" | ${SED} -e 's/[^=]*=//'` ;;
+    -h|--help)
+      echo "${usage}"; exit 0 ;;
+    --args)
+      break ;;
+    --arch)
+      if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
+	R_ARCH="/${2}"
+        shift
+      else
+        error "option '${1}' requires an argument"
+      fi
+      ## check sub-architecture here for a better error message
+      if ! test -d ${R_HOME}/etc${R_ARCH}; then
+        error "sub-architecture '${1}' is not installed"
+      fi
+      ;;
+    --arch=*)
+      r_arch=`echo "${1}" | ${SED} -e 's/[^=]*=//'`
+      R_ARCH="/${r_arch}"
+      ## check sub-architecture here for a better error message
+      if ! test -d ${R_HOME}/etc${R_ARCH}; then
+        error "sub-architecture '${r_arch}' is not installed"
+      fi
+      ;;
+    -e)
+      if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
+	a=`echo "${2}" | ${SED} -e 's/ /~+~/g'`; shift
+      else
+	error "option '${1}' requires a non-empty argument"
+      fi
+      args="${args} -e $a"
+      ;;
+    -f)
+      if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
+	a=`echo "${2}" | ${SED} -e 's/ /~+~/g'`; shift
+      else
+	error "option '${1}' requires a filename argument"
+      fi
+      args="${args} -f $a"
+      ;;
+    --file=*)
+      a=`echo "${1}" | ${SED} -e 's/[^=]*=//' | ${SED} -e 's/ /~+~/g'`
+      args="${args} --file=$a"
+      ;;
+    --no-environ)
+      export R_ENVIRON=''
+      export R_ENVIRON_USER=''
+      args="${args} ${1}"
+      ;;
+    --no-site-file)
+      export R_PROFILE=''
+      args="${args} ${1}"
+      ;;
+    --no-init-file)
+      export R_PROFILE_USER=''
+      args="${args} ${1}"
+      ;;
+    --vanilla)
+      export R_ENVIRON=''
+      export R_ENVIRON_USER=''
+      export R_PROFILE=''
+      export R_PROFILE_USER=''
+      args="${args} ${1}"
+      ;;
+    *)
+      args="${args} ${1}" ;;
+  esac
+  shift
+done
+
+. "${R_HOME}/etc${R_ARCH}/ldpaths"
+
+R_binary="${R_HOME}/bin/exec${R_ARCH}/R"
+export R_ARCH
+
+case "${gui}" in
+Tk|tk|X11|x11)
+  ;;
+"")
+  ;;
+*)
+  error "unknown GUI ${gui}"
+esac
+
+## R_HOME may have moved, so check
+if test -x "${R_HOME}"; then
+  :
+else
+  error "R_HOME ('${R_HOME}') not found"
+fi
+
+## Startup
+if test -z "${debugger}"; then
+  exec "${R_binary}"  ${args} "${@}"
+else
+  ## Ideally, we would like the debugger to start R with additional
+  ## ('inferior') arguments, but not all debuggers can do this.  We know
+  ## about valgrind and some versions of GDB , and deal with these.
+  ## Otherwise, to be on the safe side, we disregard non-debugger
+  ## command line args.
+  args_ok=no
+  case "`${debugger} --version 2>/dev/null`" in
+    "GNU gdb"*)
+      if ${debugger} --help 2>/dev/null | \
+          grep ' *--args' >/dev/null; then
+	args_ok=yes
+	debugger_args="${debugger_args} --args"
+      fi
+      ;;
+    valgrind*)
+      args_ok=yes
+      ;;
+  esac
+  if test -n "${args}${*}" && test "${args_ok}" = no; then
+    args=`expr "${args} ${*}" : " *\(.*\)"`
+    echo "*** Further command line arguments ('${args}') disregarded"
+    echo "*** (maybe use 'run ${args}' from *inside* ${debugger})"
+    echo ""
+    exec ${debugger} ${debugger_args} "${R_binary}"
+  else
+    exec ${debugger} ${debugger_args} "${R_binary}" ${args} "${@}"
+  fi
+fi
+
+### Local Variables: ***
+### mode: sh ***
+### sh-indentation: 2 ***
+### End: ***

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/R
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/libtool
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/libtool	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/libtool	(revision 2476)
@@ -0,0 +1,12103 @@
+#! /bin/sh
+# Generated automatically by config.status (R) 3.3.2
+# Libtool was configured on host eureka.research.att.com:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the  same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags='CXX F77 FC '
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: ${LT_SYS_LIBRARY_PATH=""}
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Whether or not to build static libraries.
+build_old_libs=no
+
+# Which release of libtool.m4 was used?
+macro_version=2.4.6
+macro_revision=2.4.6
+
+# Whether or not to build shared libraries.
+build_libtool_libs=yes
+
+# What type of objects to build.
+pic_mode=default
+
+# Whether or not to optimize for fast installation.
+fast_install=needless
+
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=
+
+# Shell to use when invoking shell scripts.
+SHELL="/bin/sh"
+
+# An echo program that protects backslashes.
+ECHO="printf %s\\n"
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=":"
+
+# The host system.
+host_alias=
+host=x86_64-apple-darwin13.4.0
+host_os=darwin13.4.0
+
+# The build system.
+build_alias=
+build=x86_64-apple-darwin13.4.0
+build_os=darwin13.4.0
+
+# A sed program that does not truncate output.
+SED="/usr/bin/sed"
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP="/usr/bin/grep"
+
+# An ERE matcher.
+EGREP="/usr/bin/grep -E"
+
+# A literal string matcher.
+FGREP="/usr/bin/grep -F"
+
+# A BSD- or MS-compatible name lister.
+NM="/usr/bin/nm"
+
+# Whether we need soft or hard links.
+LN_S="ln -s"
+
+# What is the maximum length of a command?
+max_cmd_len=196608
+
+# Object file suffix (normally "o").
+objext=o
+
+# Executable file suffix (normally "").
+exeext=
+
+# whether the shell understands "unset".
+lt_unset=unset
+
+# turn spaces into newlines.
+SP2NL="tr \\040 \\012"
+
+# turn newlines into spaces.
+NL2SP="tr \\015\\012 \\040\\040"
+
+# convert $build file names to $host format.
+to_host_file_cmd=func_convert_file_noop
+
+# convert $build files to toolchain format.
+to_tool_file_cmd=func_convert_file_noop
+
+# An object symbol dumper.
+OBJDUMP="false"
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method="pass_all"
+
+# Command to use when deplibs_check_method = "file_magic".
+file_magic_cmd="\$MAGIC_CMD"
+
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=""
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob="no"
+
+# DLL creation program.
+DLLTOOL="false"
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd="printf %s\\n"
+
+# The archiver.
+AR="ar"
+
+# Flags to create an archive.
+AR_FLAGS="cru"
+
+# How to feed a file listing to the archiver.
+archiver_list_spec=""
+
+# A symbol stripping program.
+STRIP="strip"
+
+# Commands used to install an old-style archive.
+RANLIB="ranlib"
+old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$tool_oldlib"
+old_postuninstall_cmds=""
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=yes
+
+# A C compiler.
+LTCC="clang"
+
+# LTCC compiler flags.
+LTCFLAGS="-Wall -mtune=core2 -g -O2"
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe="sed -n -e 's/^.*[	 ]\\([BCDEGRST][BCDEGRST]*\\)[	 ][	 ]*_\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 _\\2 \\2/p' | sed '/ __gnu_lto/d'"
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 's/^[BCDEGRST][BCDEGRST]* .* \\(.*\\)\$/extern char \\1;/p'"
+
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=""
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address="sed -n -e 's/^: \\(.*\\) .*\$/  {\"\\1\", (void *) 0},/p' -e 's/^[BCDEGRST][BCDEGRST]* .* \\(.*\\)\$/  {\"\\1\", (void *) \\&\\1},/p'"
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\(.*\\) .*\$/  {\"\\1\", (void *) 0},/p' -e 's/^[BCDEGRST][BCDEGRST]* .* \\(lib.*\\)\$/  {\"\\1\", (void *) \\&\\1},/p' -e 's/^[BCDEGRST][BCDEGRST]* .* \\(.*\\)\$/  {\"lib\\1\", (void *) \\&\\1},/p'"
+
+# The name lister interface.
+nm_interface="BSD nm"
+
+# Specify filename containing input files for $NM.
+nm_file_list_spec=""
+
+# The root where to search for dependent libraries,and where our libraries should be installed.
+lt_sysroot=
+
+# Command to truncate a binary pipe.
+lt_truncate_bin="/bin/dd bs=4096 count=1"
+
+# The name of the directory that contains temporary libtool files.
+objdir=.libs
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=file
+
+# Must we lock files when doing compilation?
+need_locks="no"
+
+# Manifest tool.
+MANIFEST_TOOL=":"
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL="dsymutil"
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT="nmedit"
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO="lipo"
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL="otool"
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=":"
+
+# Old archive suffix (normally "a").
+libext=a
+
+# Shared library suffix (normally ".so").
+shrext_cmds="\`test .\$module = .yes && echo .so || echo .dylib\`"
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=""
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink="PATH DYLD_LIBRARY_PATH  GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=no
+
+# Do we need a version for libraries?
+need_version=no
+
+# Library versioning type.
+version_type=darwin
+
+# Shared library runtime path variable.
+runpath_var=
+
+# Shared library path variable.
+shlibpath_var=DYLD_LIBRARY_PATH
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=yes
+
+# Format of library name prefix.
+libname_spec="lib\$name"
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec="\$libname\$release\$major\$shared_ext \$libname\$shared_ext"
+
+# The coded name of the library, if different from the real name.
+soname_spec="\$libname\$release\$major\$shared_ext"
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=""
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=""
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=""
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=""
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=""
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=no
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/6.0  /usr/local/lib"
+
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec="/usr/local/lib /lib /usr/lib"
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=""
+
+# Whether dlopen is supported.
+dlopen_support=unknown
+
+# Whether dlopen of programs is supported.
+dlopen_self=unknown
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=unknown
+
+# Commands to strip libraries.
+old_striplib="strip -S"
+striplib="strip -x"
+
+
+# The linker used to build libraries.
+LD="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld"
+
+# How to create reloadable object files.
+reload_flag=" -r"
+reload_cmds="\$LTCC \$LTCFLAGS -nostdlib \$wl-r -o \$output\$reload_objs"
+
+# Commands used to build an old-style archive.
+old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
+
+# A language specific compiler.
+CC="clang"
+
+# Is the compiler the GNU compiler?
+with_gcc=yes
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=" -fno-builtin -fno-rtti -fno-exceptions"
+
+# Additional compiler flags for building library objects.
+pic_flag=" -fno-common -DPIC"
+
+# How to pass a linker flag through the compiler.
+wl="-Wl,"
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=""
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o="yes"
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=no
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=no
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=""
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec="\`for conv in \$convenience\\\"\\\"; do test  -n \\\"\$conv\\\" && new_convenience=\\\"\$new_convenience \$wl-force_load,\$conv\\\"; done; func_echo_all \\\"\$new_convenience\\\"\`"
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object="no"
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=""
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=""
+
+# Commands used to build a shared archive.
+archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module"
+archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym"
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags"
+module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym"
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld="no"
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag="\$wl-undefined \${wl}dynamic_lookup"
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=""
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec=""
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=""
+
+# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=no
+
+# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting $shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=no
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=no
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=unsupported
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=yes
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=no
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=yes
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=no
+
+# The commands to list exported symbols.
+export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
+
+# Symbols that must always be exported.
+include_expsyms=""
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=""
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=""
+
+# Specify filename containing input files.
+file_list_spec=""
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=immediate
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=""
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=""
+postdep_objects=""
+predeps=""
+postdeps=""
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=""
+
+# ### END LIBTOOL CONFIG
+
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+#       string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+#       string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+#       string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+#       "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+#       VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+    case x$2 in
+    x)
+        ;;
+    *:)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+        ;;
+    x:*)
+        eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    *::*)
+        eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+        eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+        ;;
+    *)
+        eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+        ;;
+    esac
+}
+
+
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+    for cc_temp in $*""; do
+      case $cc_temp in
+        compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+        distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+        \-*) ;;
+        *) break;;
+      esac
+    done
+    func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+#! /bin/sh
+## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
+##               by inline-source v2014-01-03.01
+
+# libtool (GNU libtool) 2.4.6
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+
+# Copyright (C) 1996-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+PROGRAM=libtool
+PACKAGE=libtool
+VERSION=2.4.6
+package_revision=2.4.6
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Run './libtool --help' for help with using this script from the
+# command line.
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# After configure completes, it has a better idea of some of the
+# shell tools we need than the defaults used by the functions shared
+# with bootstrap, so set those here where they can still be over-
+# ridden by the user, but otherwise take precedence.
+
+: ${AUTOCONF="autoconf"}
+: ${AUTOMAKE="automake"}
+
+
+## -------------------------- ##
+## Source external libraries. ##
+## -------------------------- ##
+
+# Much of our low-level functionality needs to be sourced from external
+# libraries, which are installed to $pkgauxdir.
+
+# Set a version string for this script.
+scriptversion=2015-01-20.17; # UTC
+
+# General shell script boiler plate, and helper functions.
+# Written by Gary V. Vaughan, 2004
+
+# Copyright (C) 2004-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# As a special exception to the GNU General Public License, if you distribute
+# this file as part of a program or library that is built using GNU Libtool,
+# you may include this file under the same distribution terms that you use
+# for the rest of that program.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Please report bugs or propose patches to gary@gnu.org.
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Evaluate this file near the top of your script to gain access to
+# the functions and variables defined here:
+#
+#   . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh
+#
+# If you need to override any of the default environment variable
+# settings, do that before evaluating this file.
+
+
+## -------------------- ##
+## Shell normalisation. ##
+## -------------------- ##
+
+# Some shells need a little help to be as Bourne compatible as possible.
+# Before doing anything else, make sure all that help has been provided!
+
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
+fi
+
+# NLS nuisances: We save the old values in case they are required later.
+_G_user_locale=
+_G_safe_locale=
+for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+  eval "if test set = \"\${$_G_var+set}\"; then
+          save_$_G_var=\$$_G_var
+          $_G_var=C
+	  export $_G_var
+	  _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\"
+	  _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
+	fi"
+done
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Make sure IFS has a sensible default
+sp=' '
+nl='
+'
+IFS="$sp	$nl"
+
+# There are apparently some retarded systems that use ';' as a PATH separator!
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+
+## ------------------------- ##
+## Locate command utilities. ##
+## ------------------------- ##
+
+
+# func_executable_p FILE
+# ----------------------
+# Check that FILE is an executable regular file.
+func_executable_p ()
+{
+    test -f "$1" && test -x "$1"
+}
+
+
+# func_path_progs PROGS_LIST CHECK_FUNC [PATH]
+# --------------------------------------------
+# Search for either a program that responds to --version with output
+# containing "GNU", or else returned by CHECK_FUNC otherwise, by
+# trying all the directories in PATH with each of the elements of
+# PROGS_LIST.
+#
+# CHECK_FUNC should accept the path to a candidate program, and
+# set $func_check_prog_result if it truncates its output less than
+# $_G_path_prog_max characters.
+func_path_progs ()
+{
+    _G_progs_list=$1
+    _G_check_func=$2
+    _G_PATH=${3-"$PATH"}
+
+    _G_path_prog_max=0
+    _G_path_prog_found=false
+    _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:}
+    for _G_dir in $_G_PATH; do
+      IFS=$_G_save_IFS
+      test -z "$_G_dir" && _G_dir=.
+      for _G_prog_name in $_G_progs_list; do
+        for _exeext in '' .EXE; do
+          _G_path_prog=$_G_dir/$_G_prog_name$_exeext
+          func_executable_p "$_G_path_prog" || continue
+          case `"$_G_path_prog" --version 2>&1` in
+            *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;;
+            *)     $_G_check_func $_G_path_prog
+		   func_path_progs_result=$func_check_prog_result
+		   ;;
+          esac
+          $_G_path_prog_found && break 3
+        done
+      done
+    done
+    IFS=$_G_save_IFS
+    test -z "$func_path_progs_result" && {
+      echo "no acceptable sed could be found in \$PATH" >&2
+      exit 1
+    }
+}
+
+
+# We want to be able to use the functions in this file before configure
+# has figured out where the best binaries are kept, which means we have
+# to search for them ourselves - except when the results are already set
+# where we skip the searches.
+
+# Unless the user overrides by setting SED, search the path for either GNU
+# sed, or the sed that truncates its output the least.
+test -z "$SED" && {
+  _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+  for _G_i in 1 2 3 4 5 6 7; do
+    _G_sed_script=$_G_sed_script$nl$_G_sed_script
+  done
+  echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed
+  _G_sed_script=
+
+  func_check_prog_sed ()
+  {
+    _G_path_prog=$1
+
+    _G_count=0
+    printf 0123456789 >conftest.in
+    while :
+    do
+      cat conftest.in conftest.in >conftest.tmp
+      mv conftest.tmp conftest.in
+      cp conftest.in conftest.nl
+      echo '' >> conftest.nl
+      "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
+      diff conftest.out conftest.nl >/dev/null 2>&1 || break
+      _G_count=`expr $_G_count + 1`
+      if test "$_G_count" -gt "$_G_path_prog_max"; then
+        # Best one so far, save it but keep looking for a better one
+        func_check_prog_result=$_G_path_prog
+        _G_path_prog_max=$_G_count
+      fi
+      # 10*(2^10) chars as input seems more than enough
+      test 10 -lt "$_G_count" && break
+    done
+    rm -f conftest.in conftest.tmp conftest.nl conftest.out
+  }
+
+  func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin
+  rm -f conftest.sed
+  SED=$func_path_progs_result
+}
+
+
+# Unless the user overrides by setting GREP, search the path for either GNU
+# grep, or the grep that truncates its output the least.
+test -z "$GREP" && {
+  func_check_prog_grep ()
+  {
+    _G_path_prog=$1
+
+    _G_count=0
+    _G_path_prog_max=0
+    printf 0123456789 >conftest.in
+    while :
+    do
+      cat conftest.in conftest.in >conftest.tmp
+      mv conftest.tmp conftest.in
+      cp conftest.in conftest.nl
+      echo 'GREP' >> conftest.nl
+      "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
+      diff conftest.out conftest.nl >/dev/null 2>&1 || break
+      _G_count=`expr $_G_count + 1`
+      if test "$_G_count" -gt "$_G_path_prog_max"; then
+        # Best one so far, save it but keep looking for a better one
+        func_check_prog_result=$_G_path_prog
+        _G_path_prog_max=$_G_count
+      fi
+      # 10*(2^10) chars as input seems more than enough
+      test 10 -lt "$_G_count" && break
+    done
+    rm -f conftest.in conftest.tmp conftest.nl conftest.out
+  }
+
+  func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin
+  GREP=$func_path_progs_result
+}
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# All uppercase variable names are used for environment variables.  These
+# variables can be overridden by the user before calling a script that
+# uses them if a suitable command of that name is not already available
+# in the command search PATH.
+
+: ${CP="cp -f"}
+: ${ECHO="printf %s\n"}
+: ${EGREP="$GREP -E"}
+: ${FGREP="$GREP -F"}
+: ${LN_S="ln -s"}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+
+
+## -------------------- ##
+## Useful sed snippets. ##
+## -------------------- ##
+
+sed_dirname='s|/[^/]*$||'
+sed_basename='s|^.*/||'
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
+
+# Same as above, but do not quote variable references.
+sed_double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g'
+
+# Sed substitution that converts a w32 file name or path
+# that contains forward slashes, into one that contains
+# (escaped) backslashes.  A very naive implementation.
+sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
+# Re-'\' parameter expansions in output of sed_double_quote_subst that
+# were '\'-ed in input to the same.  If an odd number of '\' preceded a
+# '$' in input to sed_double_quote_subst, that '$' was protected from
+# expansion.  Since each input '\' is now two '\'s, look for any number
+# of runs of four '\'s followed by two '\'s and then a '$'.  '\' that '$'.
+_G_bs='\\'
+_G_bs2='\\\\'
+_G_bs4='\\\\\\\\'
+_G_dollar='\$'
+sed_double_backslash="\
+  s/$_G_bs4/&\\
+/g
+  s/^$_G_bs2$_G_dollar/$_G_bs&/
+  s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
+  s/\n//g"
+
+
+## ----------------- ##
+## Global variables. ##
+## ----------------- ##
+
+# Except for the global variables explicitly listed below, the following
+# functions in the '^func_' namespace, and the '^require_' namespace
+# variables initialised in the 'Resource management' section, sourcing
+# this file will not pollute your global namespace with anything
+# else. There's no portable way to scope variables in Bourne shell
+# though, so actually running these functions will sometimes place
+# results into a variable named after the function, and often use
+# temporary variables in the '^_G_' namespace. If you are careful to
+# avoid using those namespaces casually in your sourcing script, things
+# should continue to work as you expect. And, of course, you can freely
+# overwrite any of the functions or variables defined here before
+# calling anything to customize them.
+
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
+
+# Allow overriding, eg assuming that you follow the convention of
+# putting '$debug_cmd' at the start of all your functions, you can get
+# bash to show function call trace with:
+#
+#    debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
+debug_cmd=${debug_cmd-":"}
+exit_cmd=:
+
+# By convention, finish your script with:
+#
+#    exit $exit_status
+#
+# so that you can set exit_status to non-zero if you want to indicate
+# something went wrong during execution without actually bailing out at
+# the point of failure.
+exit_status=$EXIT_SUCCESS
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath=$0
+
+# The name of this program.
+progname=`$ECHO "$progpath" |$SED "$sed_basename"`
+
+# Make sure we have an absolute progpath for reexecution:
+case $progpath in
+  [\\/]*|[A-Za-z]:\\*) ;;
+  *[\\/]*)
+     progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
+     progdir=`cd "$progdir" && pwd`
+     progpath=$progdir/$progname
+     ;;
+  *)
+     _G_IFS=$IFS
+     IFS=${PATH_SEPARATOR-:}
+     for progdir in $PATH; do
+       IFS=$_G_IFS
+       test -x "$progdir/$progname" && break
+     done
+     IFS=$_G_IFS
+     test -n "$progdir" || progdir=`pwd`
+     progpath=$progdir/$progname
+     ;;
+esac
+
+
+## ----------------- ##
+## Standard options. ##
+## ----------------- ##
+
+# The following options affect the operation of the functions defined
+# below, and should be set appropriately depending on run-time para-
+# meters passed on the command line.
+
+opt_dry_run=false
+opt_quiet=false
+opt_verbose=false
+
+# Categories 'all' and 'none' are always available.  Append any others
+# you will pass as the first argument to func_warning from your own
+# code.
+warning_categories=
+
+# By default, display warnings according to 'opt_warning_types'.  Set
+# 'warning_func'  to ':' to elide all warnings, or func_fatal_error to
+# treat the next displayed warning as a fatal error.
+warning_func=func_warn_and_continue
+
+# Set to 'all' to display all warnings, 'none' to suppress all
+# warnings, or a space delimited list of some subset of
+# 'warning_categories' to display only the listed warnings.
+opt_warning_types=all
+
+
+## -------------------- ##
+## Resource management. ##
+## -------------------- ##
+
+# This section contains definitions for functions that each ensure a
+# particular resource (a file, or a non-empty configuration variable for
+# example) is available, and if appropriate to extract default values
+# from pertinent package files. Call them using their associated
+# 'require_*' variable to ensure that they are executed, at most, once.
+#
+# It's entirely deliberate that calling these functions can set
+# variables that don't obey the namespace limitations obeyed by the rest
+# of this file, in order that that they be as useful as possible to
+# callers.
+
+
+# require_term_colors
+# -------------------
+# Allow display of bold text on terminals that support it.
+require_term_colors=func_require_term_colors
+func_require_term_colors ()
+{
+    $debug_cmd
+
+    test -t 1 && {
+      # COLORTERM and USE_ANSI_COLORS environment variables take
+      # precedence, because most terminfo databases neglect to describe
+      # whether color sequences are supported.
+      test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"}
+
+      if test 1 = "$USE_ANSI_COLORS"; then
+        # Standard ANSI escape sequences
+        tc_reset='[0m'
+        tc_bold='[1m';   tc_standout='[7m'
+        tc_red='[31m';   tc_green='[32m'
+        tc_blue='[34m';  tc_cyan='[36m'
+      else
+        # Otherwise trust the terminfo database after all.
+        test -n "`tput sgr0 2>/dev/null`" && {
+          tc_reset=`tput sgr0`
+          test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold`
+          tc_standout=$tc_bold
+          test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso`
+          test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1`
+          test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2`
+          test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4`
+          test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5`
+        }
+      fi
+    }
+
+    require_term_colors=:
+}
+
+
+## ----------------- ##
+## Function library. ##
+## ----------------- ##
+
+# This section contains a variety of useful functions to call in your
+# scripts. Take note of the portable wrappers for features provided by
+# some modern shells, which will fall back to slower equivalents on
+# less featureful shells.
+
+
+# func_append VAR VALUE
+# ---------------------
+# Append VALUE onto the existing contents of VAR.
+
+  # We should try to minimise forks, especially on Windows where they are
+  # unreasonably slow, so skip the feature probes when bash or zsh are
+  # being used:
+  if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
+    : ${_G_HAVE_ARITH_OP="yes"}
+    : ${_G_HAVE_XSI_OPS="yes"}
+    # The += operator was introduced in bash 3.1
+    case $BASH_VERSION in
+      [12].* | 3.0 | 3.0*) ;;
+      *)
+        : ${_G_HAVE_PLUSEQ_OP="yes"}
+        ;;
+    esac
+  fi
+
+  # _G_HAVE_PLUSEQ_OP
+  # Can be empty, in which case the shell is probed, "yes" if += is
+  # useable or anything else if it does not work.
+  test -z "$_G_HAVE_PLUSEQ_OP" \
+    && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
+    && _G_HAVE_PLUSEQ_OP=yes
+
+if test yes = "$_G_HAVE_PLUSEQ_OP"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_append ()
+  {
+    $debug_cmd
+
+    eval "$1+=\$2"
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_append ()
+  {
+    $debug_cmd
+
+    eval "$1=\$$1\$2"
+  }
+fi
+
+
+# func_append_quoted VAR VALUE
+# ----------------------------
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+if test yes = "$_G_HAVE_PLUSEQ_OP"; then
+  eval 'func_append_quoted ()
+  {
+    $debug_cmd
+
+    func_quote_for_eval "$2"
+    eval "$1+=\\ \$func_quote_for_eval_result"
+  }'
+else
+  func_append_quoted ()
+  {
+    $debug_cmd
+
+    func_quote_for_eval "$2"
+    eval "$1=\$$1\\ \$func_quote_for_eval_result"
+  }
+fi
+
+
+# func_append_uniq VAR VALUE
+# --------------------------
+# Append unique VALUE onto the existing contents of VAR, assuming
+# entries are delimited by the first character of VALUE.  For example:
+#
+#   func_append_uniq options " --another-option option-argument"
+#
+# will only append to $options if " --another-option option-argument "
+# is not already present somewhere in $options already (note spaces at
+# each end implied by leading space in second argument).
+func_append_uniq ()
+{
+    $debug_cmd
+
+    eval _G_current_value='`$ECHO $'$1'`'
+    _G_delim=`expr "$2" : '\(.\)'`
+
+    case $_G_delim$_G_current_value$_G_delim in
+      *"$2$_G_delim"*) ;;
+      *) func_append "$@" ;;
+    esac
+}
+
+
+# func_arith TERM...
+# ------------------
+# Set func_arith_result to the result of evaluating TERMs.
+  test -z "$_G_HAVE_ARITH_OP" \
+    && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \
+    && _G_HAVE_ARITH_OP=yes
+
+if test yes = "$_G_HAVE_ARITH_OP"; then
+  eval 'func_arith ()
+  {
+    $debug_cmd
+
+    func_arith_result=$(( $* ))
+  }'
+else
+  func_arith ()
+  {
+    $debug_cmd
+
+    func_arith_result=`expr "$@"`
+  }
+fi
+
+
+# func_basename FILE
+# ------------------
+# Set func_basename_result to FILE with everything up to and including
+# the last / stripped.
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  # If this shell supports suffix pattern removal, then use it to avoid
+  # forking. Hide the definitions single quotes in case the shell chokes
+  # on unsupported syntax...
+  _b='func_basename_result=${1##*/}'
+  _d='case $1 in
+        */*) func_dirname_result=${1%/*}$2 ;;
+        *  ) func_dirname_result=$3        ;;
+      esac'
+
+else
+  # ...otherwise fall back to using sed.
+  _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'
+  _d='func_dirname_result=`$ECHO "$1"  |$SED "$sed_dirname"`
+      if test "X$func_dirname_result" = "X$1"; then
+        func_dirname_result=$3
+      else
+        func_append func_dirname_result "$2"
+      fi'
+fi
+
+eval 'func_basename ()
+{
+    $debug_cmd
+
+    '"$_b"'
+}'
+
+
+# func_dirname FILE APPEND NONDIR_REPLACEMENT
+# -------------------------------------------
+# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+eval 'func_dirname ()
+{
+    $debug_cmd
+
+    '"$_d"'
+}'
+
+
+# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT
+# --------------------------------------------------------
+# Perform func_basename and func_dirname in a single function
+# call:
+#   dirname:  Compute the dirname of FILE.  If nonempty,
+#             add APPEND to the result, otherwise set result
+#             to NONDIR_REPLACEMENT.
+#             value returned in "$func_dirname_result"
+#   basename: Compute filename of FILE.
+#             value retuned in "$func_basename_result"
+# For efficiency, we do not delegate to the functions above but instead
+# duplicate the functionality here.
+eval 'func_dirname_and_basename ()
+{
+    $debug_cmd
+
+    '"$_b"'
+    '"$_d"'
+}'
+
+
+# func_echo ARG...
+# ----------------
+# Echo program name prefixed message.
+func_echo ()
+{
+    $debug_cmd
+
+    _G_message=$*
+
+    func_echo_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_IFS
+      $ECHO "$progname: $_G_line"
+    done
+    IFS=$func_echo_IFS
+}
+
+
+# func_echo_all ARG...
+# --------------------
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*"
+}
+
+
+# func_echo_infix_1 INFIX ARG...
+# ------------------------------
+# Echo program name, followed by INFIX on the first line, with any
+# additional lines not showing INFIX.
+func_echo_infix_1 ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    _G_infix=$1; shift
+    _G_indent=$_G_infix
+    _G_prefix="$progname: $_G_infix: "
+    _G_message=$*
+
+    # Strip color escape sequences before counting printable length
+    for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
+    do
+      test -n "$_G_tc" && {
+        _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
+        _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
+      }
+    done
+    _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`"  " ## exclude from sc_prohibit_nested_quotes
+
+    func_echo_infix_1_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_infix_1_IFS
+      $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
+      _G_prefix=$_G_indent
+    done
+    IFS=$func_echo_infix_1_IFS
+}
+
+
+# func_error ARG...
+# -----------------
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    func_echo_infix_1 "  $tc_standout${tc_red}error$tc_reset" "$*" >&2
+}
+
+
+# func_fatal_error ARG...
+# -----------------------
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+    $debug_cmd
+
+    func_error "$*"
+    exit $EXIT_FAILURE
+}
+
+
+# func_grep EXPRESSION FILENAME
+# -----------------------------
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+    $debug_cmd
+
+    $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_len STRING
+# ---------------
+# Set func_len_result to the length of STRING. STRING may not
+# start with a hyphen.
+  test -z "$_G_HAVE_XSI_OPS" \
+    && (eval 'x=a/b/c;
+      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+    && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_len ()
+  {
+    $debug_cmd
+
+    func_len_result=${#1}
+  }'
+else
+  func_len ()
+  {
+    $debug_cmd
+
+    func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+  }
+fi
+
+
+# func_mkdir_p DIRECTORY-PATH
+# ---------------------------
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+    $debug_cmd
+
+    _G_directory_path=$1
+    _G_dir_list=
+
+    if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then
+
+      # Protect directory names starting with '-'
+      case $_G_directory_path in
+        -*) _G_directory_path=./$_G_directory_path ;;
+      esac
+
+      # While some portion of DIR does not yet exist...
+      while test ! -d "$_G_directory_path"; do
+        # ...make a list in topmost first order.  Use a colon delimited
+	# list incase some portion of path contains whitespace.
+        _G_dir_list=$_G_directory_path:$_G_dir_list
+
+        # If the last portion added has no slash in it, the list is done
+        case $_G_directory_path in */*) ;; *) break ;; esac
+
+        # ...otherwise throw away the child directory and loop
+        _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
+      done
+      _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`
+
+      func_mkdir_p_IFS=$IFS; IFS=:
+      for _G_dir in $_G_dir_list; do
+	IFS=$func_mkdir_p_IFS
+        # mkdir can fail with a 'File exist' error if two processes
+        # try to create one of the directories concurrently.  Don't
+        # stop in that case!
+        $MKDIR "$_G_dir" 2>/dev/null || :
+      done
+      IFS=$func_mkdir_p_IFS
+
+      # Bail out if we (or some other process) failed to create a directory.
+      test -d "$_G_directory_path" || \
+        func_fatal_error "Failed to create '$1'"
+    fi
+}
+
+
+# func_mktempdir [BASENAME]
+# -------------------------
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible.  If
+# given, BASENAME is the basename for that directory.
+func_mktempdir ()
+{
+    $debug_cmd
+
+    _G_template=${TMPDIR-/tmp}/${1-$progname}
+
+    if test : = "$opt_dry_run"; then
+      # Return a directory name, but don't create it in dry-run mode
+      _G_tmpdir=$_G_template-$$
+    else
+
+      # If mktemp works, use that first and foremost
+      _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null`
+
+      if test ! -d "$_G_tmpdir"; then
+        # Failing that, at least try and use $RANDOM to avoid a race
+        _G_tmpdir=$_G_template-${RANDOM-0}$$
+
+        func_mktempdir_umask=`umask`
+        umask 0077
+        $MKDIR "$_G_tmpdir"
+        umask $func_mktempdir_umask
+      fi
+
+      # If we're not in dry-run mode, bomb out on failure
+      test -d "$_G_tmpdir" || \
+        func_fatal_error "cannot create temporary directory '$_G_tmpdir'"
+    fi
+
+    $ECHO "$_G_tmpdir"
+}
+
+
+# func_normal_abspath PATH
+# ------------------------
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+func_normal_abspath ()
+{
+    $debug_cmd
+
+    # These SED scripts presuppose an absolute path with a trailing slash.
+    _G_pathcar='s|^/\([^/]*\).*$|\1|'
+    _G_pathcdr='s|^/[^/]*||'
+    _G_removedotparts=':dotsl
+		s|/\./|/|g
+		t dotsl
+		s|/\.$|/|'
+    _G_collapseslashes='s|/\{1,\}|/|g'
+    _G_finalslash='s|/*$|/|'
+
+    # Start from root dir and reassemble the path.
+    func_normal_abspath_result=
+    func_normal_abspath_tpath=$1
+    func_normal_abspath_altnamespace=
+    case $func_normal_abspath_tpath in
+      "")
+        # Empty path, that just means $cwd.
+        func_stripname '' '/' "`pwd`"
+        func_normal_abspath_result=$func_stripname_result
+        return
+        ;;
+      # The next three entries are used to spot a run of precisely
+      # two leading slashes without using negated character classes;
+      # we take advantage of case's first-match behaviour.
+      ///*)
+        # Unusual form of absolute path, do nothing.
+        ;;
+      //*)
+        # Not necessarily an ordinary path; POSIX reserves leading '//'
+        # and for example Cygwin uses it to access remote file shares
+        # over CIFS/SMB, so we conserve a leading double slash if found.
+        func_normal_abspath_altnamespace=/
+        ;;
+      /*)
+        # Absolute path, do nothing.
+        ;;
+      *)
+        # Relative path, prepend $cwd.
+        func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+        ;;
+    esac
+
+    # Cancel out all the simple stuff to save iterations.  We also want
+    # the path to end with a slash for ease of parsing, so make sure
+    # there is one (and only one) here.
+    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"`
+    while :; do
+      # Processed it all yet?
+      if test / = "$func_normal_abspath_tpath"; then
+        # If we ascended to the root using ".." the result may be empty now.
+        if test -z "$func_normal_abspath_result"; then
+          func_normal_abspath_result=/
+        fi
+        break
+      fi
+      func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_pathcar"`
+      func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+          -e "$_G_pathcdr"`
+      # Figure out what to do with it
+      case $func_normal_abspath_tcomponent in
+        "")
+          # Trailing empty path component, ignore it.
+          ;;
+        ..)
+          # Parent dir; strip last assembled component from result.
+          func_dirname "$func_normal_abspath_result"
+          func_normal_abspath_result=$func_dirname_result
+          ;;
+        *)
+          # Actual path component, append it.
+          func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent"
+          ;;
+      esac
+    done
+    # Restore leading double-slash if one was found on entry.
+    func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
+}
+
+
+# func_notquiet ARG...
+# --------------------
+# Echo program name prefixed message only when not in quiet mode.
+func_notquiet ()
+{
+    $debug_cmd
+
+    $opt_quiet || func_echo ${1+"$@"}
+
+    # A bug in bash halts the script if the last line of a function
+    # fails when set -e is in force, so we need another command to
+    # work around that:
+    :
+}
+
+
+# func_relative_path SRCDIR DSTDIR
+# --------------------------------
+# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR.
+func_relative_path ()
+{
+    $debug_cmd
+
+    func_relative_path_result=
+    func_normal_abspath "$1"
+    func_relative_path_tlibdir=$func_normal_abspath_result
+    func_normal_abspath "$2"
+    func_relative_path_tbindir=$func_normal_abspath_result
+
+    # Ascend the tree starting from libdir
+    while :; do
+      # check if we have found a prefix of bindir
+      case $func_relative_path_tbindir in
+        $func_relative_path_tlibdir)
+          # found an exact match
+          func_relative_path_tcancelled=
+          break
+          ;;
+        $func_relative_path_tlibdir*)
+          # found a matching prefix
+          func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+          func_relative_path_tcancelled=$func_stripname_result
+          if test -z "$func_relative_path_result"; then
+            func_relative_path_result=.
+          fi
+          break
+          ;;
+        *)
+          func_dirname $func_relative_path_tlibdir
+          func_relative_path_tlibdir=$func_dirname_result
+          if test -z "$func_relative_path_tlibdir"; then
+            # Have to descend all the way to the root!
+            func_relative_path_result=../$func_relative_path_result
+            func_relative_path_tcancelled=$func_relative_path_tbindir
+            break
+          fi
+          func_relative_path_result=../$func_relative_path_result
+          ;;
+      esac
+    done
+
+    # Now calculate path; take care to avoid doubling-up slashes.
+    func_stripname '' '/' "$func_relative_path_result"
+    func_relative_path_result=$func_stripname_result
+    func_stripname '/' '/' "$func_relative_path_tcancelled"
+    if test -n "$func_stripname_result"; then
+      func_append func_relative_path_result "/$func_stripname_result"
+    fi
+
+    # Normalisation. If bindir is libdir, return '.' else relative path.
+    if test -n "$func_relative_path_result"; then
+      func_stripname './' '' "$func_relative_path_result"
+      func_relative_path_result=$func_stripname_result
+    fi
+
+    test -n "$func_relative_path_result" || func_relative_path_result=.
+
+    :
+}
+
+
+# func_quote_for_eval ARG...
+# --------------------------
+# Aesthetically quote ARGs to be evaled later.
+# This function returns two values:
+#   i) func_quote_for_eval_result
+#      double-quoted, suitable for a subsequent eval
+#  ii) func_quote_for_eval_unquoted_result
+#      has all characters that are still active within double
+#      quotes backslashified.
+func_quote_for_eval ()
+{
+    $debug_cmd
+
+    func_quote_for_eval_unquoted_result=
+    func_quote_for_eval_result=
+    while test 0 -lt $#; do
+      case $1 in
+        *[\\\`\"\$]*)
+	  _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;;
+        *)
+          _G_unquoted_arg=$1 ;;
+      esac
+      if test -n "$func_quote_for_eval_unquoted_result"; then
+	func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg"
+      else
+        func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg"
+      fi
+
+      case $_G_unquoted_arg in
+        # Double-quote args containing shell metacharacters to delay
+        # word splitting, command substitution and variable expansion
+        # for a subsequent eval.
+        # Many Bourne shells cannot handle close brackets correctly
+        # in scan sets, so we specify it separately.
+        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+          _G_quoted_arg=\"$_G_unquoted_arg\"
+          ;;
+        *)
+          _G_quoted_arg=$_G_unquoted_arg
+	  ;;
+      esac
+
+      if test -n "$func_quote_for_eval_result"; then
+	func_append func_quote_for_eval_result " $_G_quoted_arg"
+      else
+        func_append func_quote_for_eval_result "$_G_quoted_arg"
+      fi
+      shift
+    done
+}
+
+
+# func_quote_for_expand ARG
+# -------------------------
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+    $debug_cmd
+
+    case $1 in
+      *[\\\`\"]*)
+	_G_arg=`$ECHO "$1" | $SED \
+	    -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
+      *)
+        _G_arg=$1 ;;
+    esac
+
+    case $_G_arg in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting and command substitution for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+        _G_arg=\"$_G_arg\"
+        ;;
+    esac
+
+    func_quote_for_expand_result=$_G_arg
+}
+
+
+# func_stripname PREFIX SUFFIX NAME
+# ---------------------------------
+# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_stripname ()
+  {
+    $debug_cmd
+
+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+    # positional parameters, so assign one to ordinary variable first.
+    func_stripname_result=$3
+    func_stripname_result=${func_stripname_result#"$1"}
+    func_stripname_result=${func_stripname_result%"$2"}
+  }'
+else
+  func_stripname ()
+  {
+    $debug_cmd
+
+    case $2 in
+      .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;;
+      *)  func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;;
+    esac
+  }
+fi
+
+
+# func_show_eval CMD [FAIL_EXP]
+# -----------------------------
+# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+    $debug_cmd
+
+    _G_cmd=$1
+    _G_fail_exp=${2-':'}
+
+    func_quote_for_expand "$_G_cmd"
+    eval "func_notquiet $func_quote_for_expand_result"
+
+    $opt_dry_run || {
+      eval "$_G_cmd"
+      _G_status=$?
+      if test 0 -ne "$_G_status"; then
+	eval "(exit $_G_status); $_G_fail_exp"
+      fi
+    }
+}
+
+
+# func_show_eval_locale CMD [FAIL_EXP]
+# ------------------------------------
+# Unless opt_quiet is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.  Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+    $debug_cmd
+
+    _G_cmd=$1
+    _G_fail_exp=${2-':'}
+
+    $opt_quiet || {
+      func_quote_for_expand "$_G_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    $opt_dry_run || {
+      eval "$_G_user_locale
+	    $_G_cmd"
+      _G_status=$?
+      eval "$_G_safe_locale"
+      if test 0 -ne "$_G_status"; then
+	eval "(exit $_G_status); $_G_fail_exp"
+      fi
+    }
+}
+
+
+# func_tr_sh
+# ----------
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result.  All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+    $debug_cmd
+
+    case $1 in
+    [0-9]* | *[!a-zA-Z0-9_]*)
+      func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'`
+      ;;
+    * )
+      func_tr_sh_result=$1
+      ;;
+    esac
+}
+
+
+# func_verbose ARG...
+# -------------------
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+    $debug_cmd
+
+    $opt_verbose && func_echo "$*"
+
+    :
+}
+
+
+# func_warn_and_continue ARG...
+# -----------------------------
+# Echo program name prefixed warning message to standard error.
+func_warn_and_continue ()
+{
+    $debug_cmd
+
+    $require_term_colors
+
+    func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2
+}
+
+
+# func_warning CATEGORY ARG...
+# ----------------------------
+# Echo program name prefixed warning message to standard error. Warning
+# messages can be filtered according to CATEGORY, where this function
+# elides messages where CATEGORY is not listed in the global variable
+# 'opt_warning_types'.
+func_warning ()
+{
+    $debug_cmd
+
+    # CATEGORY must be in the warning_categories list!
+    case " $warning_categories " in
+      *" $1 "*) ;;
+      *) func_internal_error "invalid warning category '$1'" ;;
+    esac
+
+    _G_category=$1
+    shift
+
+    case " $opt_warning_types " in
+      *" $_G_category "*) $warning_func ${1+"$@"} ;;
+    esac
+}
+
+
+# func_sort_ver VER1 VER2
+# -----------------------
+# 'sort -V' is not generally available.
+# Note this deviates from the version comparison in automake
+# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
+# but this should suffice as we won't be specifying old
+# version formats or redundant trailing .0 in bootstrap.conf.
+# If we did want full compatibility then we should probably
+# use m4_version_compare from autoconf.
+func_sort_ver ()
+{
+    $debug_cmd
+
+    printf '%s\n%s\n' "$1" "$2" \
+      | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n
+}
+
+# func_lt_ver PREV CURR
+# ---------------------
+# Return true if PREV and CURR are in the correct order according to
+# func_sort_ver, otherwise false.  Use it like this:
+#
+#  func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
+func_lt_ver ()
+{
+    $debug_cmd
+
+    test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q`
+}
+
+
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
+#! /bin/sh
+
+# Set a version string for this script.
+scriptversion=2014-01-07.03; # UTC
+
+# A portable, pluggable option parser for Bourne shell.
+# Written by Gary V. Vaughan, 2010
+
+# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Please report bugs or propose patches to gary@gnu.org.
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# This file is a library for parsing options in your shell scripts along
+# with assorted other useful supporting features that you can make use
+# of too.
+#
+# For the simplest scripts you might need only:
+#
+#   #!/bin/sh
+#   . relative/path/to/funclib.sh
+#   . relative/path/to/options-parser
+#   scriptversion=1.0
+#   func_options ${1+"$@"}
+#   eval set dummy "$func_options_result"; shift
+#   ...rest of your script...
+#
+# In order for the '--version' option to work, you will need to have a
+# suitably formatted comment like the one at the top of this file
+# starting with '# Written by ' and ending with '# warranty; '.
+#
+# For '-h' and '--help' to work, you will also need a one line
+# description of your script's purpose in a comment directly above the
+# '# Written by ' line, like the one at the top of this file.
+#
+# The default options also support '--debug', which will turn on shell
+# execution tracing (see the comment above debug_cmd below for another
+# use), and '--verbose' and the func_verbose function to allow your script
+# to display verbose messages only when your user has specified
+# '--verbose'.
+#
+# After sourcing this file, you can plug processing for additional
+# options by amending the variables from the 'Configuration' section
+# below, and following the instructions in the 'Option parsing'
+# section further down.
+
+## -------------- ##
+## Configuration. ##
+## -------------- ##
+
+# You should override these variables in your script after sourcing this
+# file so that they reflect the customisations you have added to the
+# option parser.
+
+# The usage line for option parsing errors and the start of '-h' and
+# '--help' output messages. You can embed shell variables for delayed
+# expansion at the time the message is displayed, but you will need to
+# quote other shell meta-characters carefully to prevent them being
+# expanded when the contents are evaled.
+usage='$progpath [OPTION]...'
+
+# Short help message in response to '-h' and '--help'.  Add to this or
+# override it after sourcing this library to reflect the full set of
+# options your script accepts.
+usage_message="\
+       --debug        enable verbose shell tracing
+   -W, --warnings=CATEGORY
+                      report the warnings falling in CATEGORY [all]
+   -v, --verbose      verbosely report processing
+       --version      print version information and exit
+   -h, --help         print short or long help message and exit
+"
+
+# Additional text appended to 'usage_message' in response to '--help'.
+long_help_message="
+Warning categories include:
+       'all'          show all warnings
+       'none'         turn off all the warnings
+       'error'        warnings are treated as fatal errors"
+
+# Help message printed before fatal option parsing errors.
+fatal_help="Try '\$progname --help' for more information."
+
+
+
+## ------------------------- ##
+## Hook function management. ##
+## ------------------------- ##
+
+# This section contains functions for adding, removing, and running hooks
+# to the main code.  A hook is just a named list of of function, that can
+# be run in order later on.
+
+# func_hookable FUNC_NAME
+# -----------------------
+# Declare that FUNC_NAME will run hooks added with
+# 'func_add_hook FUNC_NAME ...'.
+func_hookable ()
+{
+    $debug_cmd
+
+    func_append hookable_fns " $1"
+}
+
+
+# func_add_hook FUNC_NAME HOOK_FUNC
+# ---------------------------------
+# Request that FUNC_NAME call HOOK_FUNC before it returns.  FUNC_NAME must
+# first have been declared "hookable" by a call to 'func_hookable'.
+func_add_hook ()
+{
+    $debug_cmd
+
+    case " $hookable_fns " in
+      *" $1 "*) ;;
+      *) func_fatal_error "'$1' does not accept hook functions." ;;
+    esac
+
+    eval func_append ${1}_hooks '" $2"'
+}
+
+
+# func_remove_hook FUNC_NAME HOOK_FUNC
+# ------------------------------------
+# Remove HOOK_FUNC from the list of functions called by FUNC_NAME.
+func_remove_hook ()
+{
+    $debug_cmd
+
+    eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
+}
+
+
+# func_run_hooks FUNC_NAME [ARG]...
+# ---------------------------------
+# Run all hook functions registered to FUNC_NAME.
+# It is assumed that the list of hook functions contains nothing more
+# than a whitespace-delimited list of legal shell function names, and
+# no effort is wasted trying to catch shell meta-characters or preserve
+# whitespace.
+func_run_hooks ()
+{
+    $debug_cmd
+
+    case " $hookable_fns " in
+      *" $1 "*) ;;
+      *) func_fatal_error "'$1' does not support hook funcions.n" ;;
+    esac
+
+    eval _G_hook_fns=\$$1_hooks; shift
+
+    for _G_hook in $_G_hook_fns; do
+      eval $_G_hook '"$@"'
+
+      # store returned options list back into positional
+      # parameters for next 'cmd' execution.
+      eval _G_hook_result=\$${_G_hook}_result
+      eval set dummy "$_G_hook_result"; shift
+    done
+
+    func_quote_for_eval ${1+"$@"}
+    func_run_hooks_result=$func_quote_for_eval_result
+}
+
+
+
+## --------------- ##
+## Option parsing. ##
+## --------------- ##
+
+# In order to add your own option parsing hooks, you must accept the
+# full positional parameter list in your hook function, remove any
+# options that you action, and then pass back the remaining unprocessed
+# options in '<hooked_function_name>_result', escaped suitably for
+# 'eval'.  Like this:
+#
+#    my_options_prep ()
+#    {
+#        $debug_cmd
+#
+#        # Extend the existing usage message.
+#        usage_message=$usage_message'
+#      -s, --silent       don'\''t print informational messages
+#    '
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_options_prep_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_options_prep my_options_prep
+#
+#
+#    my_silent_option ()
+#    {
+#        $debug_cmd
+#
+#        # Note that for efficiency, we parse as many options as we can
+#        # recognise in a loop before passing the remainder back to the
+#        # caller on the first unrecognised argument we encounter.
+#        while test $# -gt 0; do
+#          opt=$1; shift
+#          case $opt in
+#            --silent|-s) opt_silent=: ;;
+#            # Separate non-argument short options:
+#            -s*)         func_split_short_opt "$_G_opt"
+#                         set dummy "$func_split_short_opt_name" \
+#                             "-$func_split_short_opt_arg" ${1+"$@"}
+#                         shift
+#                         ;;
+#            *)            set dummy "$_G_opt" "$*"; shift; break ;;
+#          esac
+#        done
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_silent_option_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_parse_options my_silent_option
+#
+#
+#    my_option_validation ()
+#    {
+#        $debug_cmd
+#
+#        $opt_silent && $opt_verbose && func_fatal_help "\
+#    '--silent' and '--verbose' options are mutually exclusive."
+#
+#        func_quote_for_eval ${1+"$@"}
+#        my_option_validation_result=$func_quote_for_eval_result
+#    }
+#    func_add_hook func_validate_options my_option_validation
+#
+# You'll alse need to manually amend $usage_message to reflect the extra
+# options you parse.  It's preferable to append if you can, so that
+# multiple option parsing hooks can be added safely.
+
+
+# func_options [ARG]...
+# ---------------------
+# All the functions called inside func_options are hookable. See the
+# individual implementations for details.
+func_hookable func_options
+func_options ()
+{
+    $debug_cmd
+
+    func_options_prep ${1+"$@"}
+    eval func_parse_options \
+        ${func_options_prep_result+"$func_options_prep_result"}
+    eval func_validate_options \
+        ${func_parse_options_result+"$func_parse_options_result"}
+
+    eval func_run_hooks func_options \
+        ${func_validate_options_result+"$func_validate_options_result"}
+
+    # save modified positional parameters for caller
+    func_options_result=$func_run_hooks_result
+}
+
+
+# func_options_prep [ARG]...
+# --------------------------
+# All initialisations required before starting the option parse loop.
+# Note that when calling hook functions, we pass through the list of
+# positional parameters.  If a hook function modifies that list, and
+# needs to propogate that back to rest of this script, then the complete
+# modified list must be put in 'func_run_hooks_result' before
+# returning.
+func_hookable func_options_prep
+func_options_prep ()
+{
+    $debug_cmd
+
+    # Option defaults:
+    opt_verbose=false
+    opt_warning_types=
+
+    func_run_hooks func_options_prep ${1+"$@"}
+
+    # save modified positional parameters for caller
+    func_options_prep_result=$func_run_hooks_result
+}
+
+
+# func_parse_options [ARG]...
+# ---------------------------
+# The main option parsing loop.
+func_hookable func_parse_options
+func_parse_options ()
+{
+    $debug_cmd
+
+    func_parse_options_result=
+
+    # this just eases exit handling
+    while test $# -gt 0; do
+      # Defer to hook functions for initial option parsing, so they
+      # get priority in the event of reusing an option name.
+      func_run_hooks func_parse_options ${1+"$@"}
+
+      # Adjust func_parse_options positional parameters to match
+      eval set dummy "$func_run_hooks_result"; shift
+
+      # Break out of the loop if we already parsed every option.
+      test $# -gt 0 || break
+
+      _G_opt=$1
+      shift
+      case $_G_opt in
+        --debug|-x)   debug_cmd='set -x'
+                      func_echo "enabling shell trace mode"
+                      $debug_cmd
+                      ;;
+
+        --no-warnings|--no-warning|--no-warn)
+                      set dummy --warnings none ${1+"$@"}
+                      shift
+		      ;;
+
+        --warnings|--warning|-W)
+                      test $# = 0 && func_missing_arg $_G_opt && break
+                      case " $warning_categories $1" in
+                        *" $1 "*)
+                          # trailing space prevents matching last $1 above
+                          func_append_uniq opt_warning_types " $1"
+                          ;;
+                        *all)
+                          opt_warning_types=$warning_categories
+                          ;;
+                        *none)
+                          opt_warning_types=none
+                          warning_func=:
+                          ;;
+                        *error)
+                          opt_warning_types=$warning_categories
+                          warning_func=func_fatal_error
+                          ;;
+                        *)
+                          func_fatal_error \
+                             "unsupported warning category: '$1'"
+                          ;;
+                      esac
+                      shift
+                      ;;
+
+        --verbose|-v) opt_verbose=: ;;
+        --version)    func_version ;;
+        -\?|-h)       func_usage ;;
+        --help)       func_help ;;
+
+	# Separate optargs to long options (plugins may need this):
+	--*=*)        func_split_equals "$_G_opt"
+	              set dummy "$func_split_equals_lhs" \
+                          "$func_split_equals_rhs" ${1+"$@"}
+                      shift
+                      ;;
+
+       # Separate optargs to short options:
+        -W*)
+                      func_split_short_opt "$_G_opt"
+                      set dummy "$func_split_short_opt_name" \
+                          "$func_split_short_opt_arg" ${1+"$@"}
+                      shift
+                      ;;
+
+        # Separate non-argument short options:
+        -\?*|-h*|-v*|-x*)
+                      func_split_short_opt "$_G_opt"
+                      set dummy "$func_split_short_opt_name" \
+                          "-$func_split_short_opt_arg" ${1+"$@"}
+                      shift
+                      ;;
+
+        --)           break ;;
+        -*)           func_fatal_help "unrecognised option: '$_G_opt'" ;;
+        *)            set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+      esac
+    done
+
+    # save modified positional parameters for caller
+    func_quote_for_eval ${1+"$@"}
+    func_parse_options_result=$func_quote_for_eval_result
+}
+
+
+# func_validate_options [ARG]...
+# ------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+func_hookable func_validate_options
+func_validate_options ()
+{
+    $debug_cmd
+
+    # Display all warnings if -W was not given.
+    test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
+
+    func_run_hooks func_validate_options ${1+"$@"}
+
+    # Bail if the options were screwed!
+    $exit_cmd $EXIT_FAILURE
+
+    # save modified positional parameters for caller
+    func_validate_options_result=$func_run_hooks_result
+}
+
+
+
+## ----------------- ##
+## Helper functions. ##
+## ----------------- ##
+
+# This section contains the helper functions used by the rest of the
+# hookable option parser framework in ascii-betical order.
+
+
+# func_fatal_help ARG...
+# ----------------------
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+    $debug_cmd
+
+    eval \$ECHO \""Usage: $usage"\"
+    eval \$ECHO \""$fatal_help"\"
+    func_error ${1+"$@"}
+    exit $EXIT_FAILURE
+}
+
+
+# func_help
+# ---------
+# Echo long help message to standard output and exit.
+func_help ()
+{
+    $debug_cmd
+
+    func_usage_message
+    $ECHO "$long_help_message"
+    exit 0
+}
+
+
+# func_missing_arg ARGNAME
+# ------------------------
+# Echo program name prefixed message to standard error and set global
+# exit_cmd.
+func_missing_arg ()
+{
+    $debug_cmd
+
+    func_error "Missing argument for '$1'."
+    exit_cmd=exit
+}
+
+
+# func_split_equals STRING
+# ------------------------
+# Set func_split_equals_lhs and func_split_equals_rhs shell variables after
+# splitting STRING at the '=' sign.
+test -z "$_G_HAVE_XSI_OPS" \
+    && (eval 'x=a/b/c;
+      test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+    && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_split_equals ()
+  {
+      $debug_cmd
+
+      func_split_equals_lhs=${1%%=*}
+      func_split_equals_rhs=${1#*=}
+      test "x$func_split_equals_lhs" = "x$1" \
+        && func_split_equals_rhs=
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_split_equals ()
+  {
+      $debug_cmd
+
+      func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
+      func_split_equals_rhs=
+      test "x$func_split_equals_lhs" = "x$1" \
+        || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
+  }
+fi #func_split_equals
+
+
+# func_split_short_opt SHORTOPT
+# -----------------------------
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+  # This is an XSI compatible shell, allowing a faster implementation...
+  eval 'func_split_short_opt ()
+  {
+      $debug_cmd
+
+      func_split_short_opt_arg=${1#??}
+      func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
+  }'
+else
+  # ...otherwise fall back to using expr, which is often a shell builtin.
+  func_split_short_opt ()
+  {
+      $debug_cmd
+
+      func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'`
+      func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
+  }
+fi #func_split_short_opt
+
+
+# func_usage
+# ----------
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+    $debug_cmd
+
+    func_usage_message
+    $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
+    exit 0
+}
+
+
+# func_usage_message
+# ------------------
+# Echo short help message to standard output.
+func_usage_message ()
+{
+    $debug_cmd
+
+    eval \$ECHO \""Usage: $usage"\"
+    echo
+    $SED -n 's|^# ||
+        /^Written by/{
+          x;p;x
+        }
+	h
+	/^Written by/q' < "$progpath"
+    echo
+    eval \$ECHO \""$usage_message"\"
+}
+
+
+# func_version
+# ------------
+# Echo version message to standard output and exit.
+func_version ()
+{
+    $debug_cmd
+
+    printf '%s\n' "$progname $scriptversion"
+    $SED -n '
+        /(C)/!b go
+        :more
+        /\./!{
+          N
+          s|\n# | |
+          b more
+        }
+        :go
+        /^# Written by /,/# warranty; / {
+          s|^# ||
+          s|^# *$||
+          s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
+          p
+        }
+        /^# Written by / {
+          s|^# ||
+          p
+        }
+        /^warranty; /q' < "$progpath"
+
+    exit $?
+}
+
+
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
+
+# Set a version string.
+scriptversion='(GNU libtool) 2.4.6'
+
+
+# func_echo ARG...
+# ----------------
+# Libtool also displays the current mode in messages, so override
+# funclib.sh func_echo with this custom definition.
+func_echo ()
+{
+    $debug_cmd
+
+    _G_message=$*
+
+    func_echo_IFS=$IFS
+    IFS=$nl
+    for _G_line in $_G_message; do
+      IFS=$func_echo_IFS
+      $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
+    done
+    IFS=$func_echo_IFS
+}
+
+
+# func_warning ARG...
+# -------------------
+# Libtool warnings are not categorized, so override funclib.sh
+# func_warning with this simpler definition.
+func_warning ()
+{
+    $debug_cmd
+
+    $warning_func ${1+"$@"}
+}
+
+
+## ---------------- ##
+## Options parsing. ##
+## ---------------- ##
+
+# Hook in the functions to make sure our own options are parsed during
+# the option parsing loop.
+
+usage='$progpath [OPTION]... [MODE-ARG]...'
+
+# Short help message in response to '-h'.
+usage_message="Options:
+       --config             show all configuration variables
+       --debug              enable verbose shell tracing
+   -n, --dry-run            display commands without modifying any files
+       --features           display basic configuration information and exit
+       --mode=MODE          use operation mode MODE
+       --no-warnings        equivalent to '-Wnone'
+       --preserve-dup-deps  don't remove duplicate dependency libraries
+       --quiet, --silent    don't print informational messages
+       --tag=TAG            use configuration variables from tag TAG
+   -v, --verbose            print more informational messages than default
+       --version            print version information
+   -W, --warnings=CATEGORY  report the warnings falling in CATEGORY [all]
+   -h, --help, --help-all   print short, long, or detailed help message
+"
+
+# Additional text appended to 'usage_message' in response to '--help'.
+func_help ()
+{
+    $debug_cmd
+
+    func_usage_message
+    $ECHO "$long_help_message
+
+MODE must be one of the following:
+
+       clean           remove files from the build directory
+       compile         compile a source file into a libtool object
+       execute         automatically set library path, then run a program
+       finish          complete the installation of libtool libraries
+       install         install libraries or executables
+       link            create a library or an executable
+       uninstall       remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE.  When passed as first option,
+'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
+Try '$progname --help --mode=MODE' for a more detailed description of MODE.
+
+When reporting a bug, please describe a test case to reproduce it and
+include the following information:
+
+       host-triplet:   $host
+       shell:          $SHELL
+       compiler:       $LTCC
+       compiler flags: $LTCFLAGS
+       linker:         $LD (gnu? $with_gnu_ld)
+       version:        $progname (GNU libtool) 2.4.6
+       automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
+       autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
+
+Report bugs to <bug-libtool@gnu.org>.
+GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
+    exit 0
+}
+
+
+# func_lo2o OBJECT-NAME
+# ---------------------
+# Transform OBJECT-NAME from a '.lo' suffix to the platform specific
+# object suffix.
+
+lo2o=s/\\.lo\$/.$objext/
+o2lo=s/\\.$objext\$/.lo/
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+  eval 'func_lo2o ()
+  {
+    case $1 in
+      *.lo) func_lo2o_result=${1%.lo}.$objext ;;
+      *   ) func_lo2o_result=$1               ;;
+    esac
+  }'
+
+  # func_xform LIBOBJ-OR-SOURCE
+  # ---------------------------
+  # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise)
+  # suffix to a '.lo' libtool-object suffix.
+  eval 'func_xform ()
+  {
+    func_xform_result=${1%.*}.lo
+  }'
+else
+  # ...otherwise fall back to using sed.
+  func_lo2o ()
+  {
+    func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"`
+  }
+
+  func_xform ()
+  {
+    func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'`
+  }
+fi
+
+
+# func_fatal_configuration ARG...
+# -------------------------------
+# Echo program name prefixed message to standard error, followed by
+# a configuration failure hint, and exit.
+func_fatal_configuration ()
+{
+    func__fatal_error ${1+"$@"} \
+      "See the $PACKAGE documentation for more information." \
+      "Fatal configuration error."
+}
+
+
+# func_config
+# -----------
+# Display the configuration for all the tags in this script.
+func_config ()
+{
+    re_begincf='^# ### BEGIN LIBTOOL'
+    re_endcf='^# ### END LIBTOOL'
+
+    # Default configuration.
+    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
+
+    # Now print the configurations for the tags.
+    for tagname in $taglist; do
+      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
+    done
+
+    exit $?
+}
+
+
+# func_features
+# -------------
+# Display the features supported by this script.
+func_features ()
+{
+    echo "host: $host"
+    if test yes = "$build_libtool_libs"; then
+      echo "enable shared libraries"
+    else
+      echo "disable shared libraries"
+    fi
+    if test yes = "$build_old_libs"; then
+      echo "enable static libraries"
+    else
+      echo "disable static libraries"
+    fi
+
+    exit $?
+}
+
+
+# func_enable_tag TAGNAME
+# -----------------------
+# Verify that TAGNAME is valid, and either flag an error and exit, or
+# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
+# variable here.
+func_enable_tag ()
+{
+    # Global variable:
+    tagname=$1
+
+    re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+    re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+    sed_extractcf=/$re_begincf/,/$re_endcf/p
+
+    # Validate tagname.
+    case $tagname in
+      *[!-_A-Za-z0-9,/]*)
+        func_fatal_error "invalid tag name: $tagname"
+        ;;
+    esac
+
+    # Don't test for the "default" C tag, as we know it's
+    # there but not specially marked.
+    case $tagname in
+        CC) ;;
+    *)
+        if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+	  taglist="$taglist $tagname"
+
+	  # Evaluate the configuration.  Be careful to quote the path
+	  # and the sed script, to avoid splitting on whitespace, but
+	  # also don't use non-portable quotes within backquotes within
+	  # quotes we have to do it in 2 steps:
+	  extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+	  eval "$extractedcf"
+        else
+	  func_error "ignoring unknown tag $tagname"
+        fi
+        ;;
+    esac
+}
+
+
+# func_check_version_match
+# ------------------------
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
+{
+    if test "$package_revision" != "$macro_revision"; then
+      if test "$VERSION" != "$macro_version"; then
+        if test -z "$macro_version"; then
+          cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+        else
+          cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+        fi
+      else
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+      fi
+
+      exit $EXIT_MISMATCH
+    fi
+}
+
+
+# libtool_options_prep [ARG]...
+# -----------------------------
+# Preparation for options parsed by libtool.
+libtool_options_prep ()
+{
+    $debug_mode
+
+    # Option defaults:
+    opt_config=false
+    opt_dlopen=
+    opt_dry_run=false
+    opt_help=false
+    opt_mode=
+    opt_preserve_dup_deps=false
+    opt_quiet=false
+
+    nonopt=
+    preserve_args=
+
+    # Shorthand for --mode=foo, only valid as the first argument
+    case $1 in
+    clean|clea|cle|cl)
+      shift; set dummy --mode clean ${1+"$@"}; shift
+      ;;
+    compile|compil|compi|comp|com|co|c)
+      shift; set dummy --mode compile ${1+"$@"}; shift
+      ;;
+    execute|execut|execu|exec|exe|ex|e)
+      shift; set dummy --mode execute ${1+"$@"}; shift
+      ;;
+    finish|finis|fini|fin|fi|f)
+      shift; set dummy --mode finish ${1+"$@"}; shift
+      ;;
+    install|instal|insta|inst|ins|in|i)
+      shift; set dummy --mode install ${1+"$@"}; shift
+      ;;
+    link|lin|li|l)
+      shift; set dummy --mode link ${1+"$@"}; shift
+      ;;
+    uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+      shift; set dummy --mode uninstall ${1+"$@"}; shift
+      ;;
+    esac
+
+    # Pass back the list of options.
+    func_quote_for_eval ${1+"$@"}
+    libtool_options_prep_result=$func_quote_for_eval_result
+}
+func_add_hook func_options_prep libtool_options_prep
+
+
+# libtool_parse_options [ARG]...
+# ---------------------------------
+# Provide handling for libtool specific options.
+libtool_parse_options ()
+{
+    $debug_cmd
+
+    # Perform our own loop to consume as many options as possible in
+    # each iteration.
+    while test $# -gt 0; do
+      _G_opt=$1
+      shift
+      case $_G_opt in
+        --dry-run|--dryrun|-n)
+                        opt_dry_run=:
+                        ;;
+
+        --config)       func_config ;;
+
+        --dlopen|-dlopen)
+                        opt_dlopen="${opt_dlopen+$opt_dlopen
+}$1"
+                        shift
+                        ;;
+
+        --preserve-dup-deps)
+                        opt_preserve_dup_deps=: ;;
+
+        --features)     func_features ;;
+
+        --finish)       set dummy --mode finish ${1+"$@"}; shift ;;
+
+        --help)         opt_help=: ;;
+
+        --help-all)     opt_help=': help-all' ;;
+
+        --mode)         test $# = 0 && func_missing_arg $_G_opt && break
+                        opt_mode=$1
+                        case $1 in
+                          # Valid mode arguments:
+                          clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+                          # Catch anything else as an error
+                          *) func_error "invalid argument for $_G_opt"
+                             exit_cmd=exit
+                             break
+                             ;;
+                        esac
+                        shift
+                        ;;
+
+        --no-silent|--no-quiet)
+                        opt_quiet=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --no-warnings|--no-warning|--no-warn)
+                        opt_warning=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --no-verbose)
+                        opt_verbose=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --silent|--quiet)
+                        opt_quiet=:
+                        opt_verbose=false
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+        --tag)          test $# = 0 && func_missing_arg $_G_opt && break
+                        opt_tag=$1
+                        func_append preserve_args " $_G_opt $1"
+                        func_enable_tag "$1"
+                        shift
+                        ;;
+
+        --verbose|-v)   opt_quiet=false
+                        opt_verbose=:
+                        func_append preserve_args " $_G_opt"
+                        ;;
+
+	# An option not handled by this hook function:
+        *)		set dummy "$_G_opt" ${1+"$@"};	shift; break  ;;
+      esac
+    done
+
+
+    # save modified positional parameters for caller
+    func_quote_for_eval ${1+"$@"}
+    libtool_parse_options_result=$func_quote_for_eval_result
+}
+func_add_hook func_parse_options libtool_parse_options
+
+
+
+# libtool_validate_options [ARG]...
+# ---------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+libtool_validate_options ()
+{
+    # save first non-option argument
+    if test 0 -lt $#; then
+      nonopt=$1
+      shift
+    fi
+
+    # preserve --debug
+    test : = "$debug_cmd" || func_append preserve_args " --debug"
+
+    case $host in
+      # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
+      # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
+      *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
+        # don't eliminate duplications in $postdeps and $predeps
+        opt_duplicate_compiler_generated_deps=:
+        ;;
+      *)
+        opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
+        ;;
+    esac
+
+    $opt_help || {
+      # Sanity checks first:
+      func_check_version_match
+
+      test yes != "$build_libtool_libs" \
+        && test yes != "$build_old_libs" \
+        && func_fatal_configuration "not configured to build any kind of library"
+
+      # Darwin sucks
+      eval std_shrext=\"$shrext_cmds\"
+
+      # Only execute mode is allowed to have -dlopen flags.
+      if test -n "$opt_dlopen" && test execute != "$opt_mode"; then
+        func_error "unrecognized option '-dlopen'"
+        $ECHO "$help" 1>&2
+        exit $EXIT_FAILURE
+      fi
+
+      # Change the help message to a mode-specific one.
+      generic_help=$help
+      help="Try '$progname --help --mode=$opt_mode' for more information."
+    }
+
+    # Pass back the unparsed argument list
+    func_quote_for_eval ${1+"$@"}
+    libtool_validate_options_result=$func_quote_for_eval_result
+}
+func_add_hook func_validate_options libtool_validate_options
+
+
+# Process options as early as possible so that --help and --version
+# can return quickly.
+func_options ${1+"$@"}
+eval set dummy "$func_options_result"; shift
+
+
+
+## ----------- ##
+##    Main.    ##
+## ----------- ##
+
+magic='%%%MAGIC variable%%%'
+magic_exe='%%%MAGIC EXE variable%%%'
+
+# Global variables.
+extracted_archives=
+extracted_serial=0
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
+# func_generated_by_libtool
+# True iff stdin has been generated by Libtool. This function is only
+# a basic sanity check; it will hardly flush out determined imposters.
+func_generated_by_libtool_p ()
+{
+  $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
+# func_lalib_p file
+# True iff FILE is a libtool '.la' library or '.lo' object file.
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_lalib_p ()
+{
+    test -f "$1" &&
+      $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p
+}
+
+# func_lalib_unsafe_p file
+# True iff FILE is a libtool '.la' library or '.lo' object file.
+# This function implements the same check as func_lalib_p without
+# resorting to external programs.  To this end, it redirects stdin and
+# closes it afterwards, without saving the original file descriptor.
+# As a safety measure, use it only where a negative result would be
+# fatal anyway.  Works if 'file' does not exist.
+func_lalib_unsafe_p ()
+{
+    lalib_p=no
+    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
+	for lalib_p_l in 1 2 3 4
+	do
+	    read lalib_p_line
+	    case $lalib_p_line in
+		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
+	    esac
+	done
+	exec 0<&5 5<&-
+    fi
+    test yes = "$lalib_p"
+}
+
+# func_ltwrapper_script_p file
+# True iff FILE is a libtool wrapper script
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_script_p ()
+{
+    test -f "$1" &&
+      $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p
+}
+
+# func_ltwrapper_executable_p file
+# True iff FILE is a libtool wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_executable_p ()
+{
+    func_ltwrapper_exec_suffix=
+    case $1 in
+    *.exe) ;;
+    *) func_ltwrapper_exec_suffix=.exe ;;
+    esac
+    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
+}
+
+# func_ltwrapper_scriptname file
+# Assumes file is an ltwrapper_executable
+# uses $file to determine the appropriate filename for a
+# temporary ltwrapper_script.
+func_ltwrapper_scriptname ()
+{
+    func_dirname_and_basename "$1" "" "."
+    func_stripname '' '.exe' "$func_basename_result"
+    func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper
+}
+
+# func_ltwrapper_p file
+# True iff FILE is a libtool wrapper script or wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_p ()
+{
+    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
+}
+
+
+# func_execute_cmds commands fail_cmd
+# Execute tilde-delimited COMMANDS.
+# If FAIL_CMD is given, eval that upon failure.
+# FAIL_CMD may read-access the current command in variable CMD!
+func_execute_cmds ()
+{
+    $debug_cmd
+
+    save_ifs=$IFS; IFS='~'
+    for cmd in $1; do
+      IFS=$sp$nl
+      eval cmd=\"$cmd\"
+      IFS=$save_ifs
+      func_show_eval "$cmd" "${2-:}"
+    done
+    IFS=$save_ifs
+}
+
+
+# func_source file
+# Source FILE, adding directory component if necessary.
+# Note that it is not necessary on cygwin/mingw to append a dot to
+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
+# behavior happens only for exec(3), not for open(2)!  Also, sourcing
+# 'FILE.' does not work on cygwin managed mounts.
+func_source ()
+{
+    $debug_cmd
+
+    case $1 in
+    */* | *\\*)	. "$1" ;;
+    *)		. "./$1" ;;
+    esac
+}
+
+
+# func_resolve_sysroot PATH
+# Replace a leading = in PATH with a sysroot.  Store the result into
+# func_resolve_sysroot_result
+func_resolve_sysroot ()
+{
+  func_resolve_sysroot_result=$1
+  case $func_resolve_sysroot_result in
+  =*)
+    func_stripname '=' '' "$func_resolve_sysroot_result"
+    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
+    ;;
+  esac
+}
+
+# func_replace_sysroot PATH
+# If PATH begins with the sysroot, replace it with = and
+# store the result into func_replace_sysroot_result.
+func_replace_sysroot ()
+{
+  case $lt_sysroot:$1 in
+  ?*:"$lt_sysroot"*)
+    func_stripname "$lt_sysroot" '' "$1"
+    func_replace_sysroot_result='='$func_stripname_result
+    ;;
+  *)
+    # Including no sysroot.
+    func_replace_sysroot_result=$1
+    ;;
+  esac
+}
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+    $debug_cmd
+
+    if test -n "$available_tags" && test -z "$tagname"; then
+      CC_quoted=
+      for arg in $CC; do
+	func_append_quoted CC_quoted "$arg"
+      done
+      CC_expanded=`func_echo_all $CC`
+      CC_quoted_expanded=`func_echo_all $CC_quoted`
+      case $@ in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+	    CC_quoted=
+	    for arg in $CC; do
+	      # Double-quote args containing other shell metacharacters.
+	      func_append_quoted CC_quoted "$arg"
+	    done
+	    CC_expanded=`func_echo_all $CC`
+	    CC_quoted_expanded=`func_echo_all $CC_quoted`
+	    case "$@ " in
+	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
+	      # The compiler in the base compile command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  func_echo "unable to infer tagged configuration"
+	  func_fatal_error "specify a tag with '--tag'"
+#	else
+#	  func_verbose "using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
+}
+
+
+
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
+{
+    write_libobj=$1
+    if test yes = "$build_libtool_libs"; then
+      write_lobj=\'$2\'
+    else
+      write_lobj=none
+    fi
+
+    if test yes = "$build_old_libs"; then
+      write_oldobj=\'$3\'
+    else
+      write_oldobj=none
+    fi
+
+    $opt_dry_run || {
+      cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+      $MV "${write_libobj}T" "$write_libobj"
+    }
+}
+
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name conversion functions when $build is *nix,
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
+# correctly configured wine environment available, with the winepath program
+# in $build's $PATH.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+  $debug_cmd
+
+  func_convert_core_file_wine_to_w32_result=$1
+  if test -n "$1"; then
+    # Unfortunately, winepath does not exit with a non-zero error code, so we
+    # are forced to check the contents of stdout. On the other hand, if the
+    # command is not found, the shell will set an exit code of 127 and print
+    # *an error message* to stdout. So we must check for both error code of
+    # zero AND non-empty stdout, which explains the odd construction:
+    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
+    if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then
+      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
+        $SED -e "$sed_naive_backslashify"`
+    else
+      func_convert_core_file_wine_to_w32_result=
+    fi
+  fi
+}
+# end: func_convert_core_file_wine_to_w32
+
+
+# func_convert_core_path_wine_to_w32 ARG
+# Helper function used by path conversion functions when $build is *nix, and
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
+#
+# ARG is path to be converted from $build format to win32.
+# Result is available in $func_convert_core_path_wine_to_w32_result.
+# Unconvertible file (directory) names in ARG are skipped; if no directory names
+# are convertible, then the result may be empty.
+func_convert_core_path_wine_to_w32 ()
+{
+  $debug_cmd
+
+  # unfortunately, winepath doesn't convert paths, only file names
+  func_convert_core_path_wine_to_w32_result=
+  if test -n "$1"; then
+    oldIFS=$IFS
+    IFS=:
+    for func_convert_core_path_wine_to_w32_f in $1; do
+      IFS=$oldIFS
+      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
+      if test -n "$func_convert_core_file_wine_to_w32_result"; then
+        if test -z "$func_convert_core_path_wine_to_w32_result"; then
+          func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result
+        else
+          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
+        fi
+      fi
+    done
+    IFS=$oldIFS
+  fi
+}
+# end: func_convert_core_path_wine_to_w32
+
+
+# func_cygpath ARGS...
+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
+# (2), returns the Cygwin file name or path in func_cygpath_result (input
+# file name or path is assumed to be in w32 format, as previously converted
+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
+# or path in func_cygpath_result (input file name or path is assumed to be in
+# Cygwin format). Returns an empty string on error.
+#
+# ARGS are passed to cygpath, with the last one being the file name or path to
+# be converted.
+#
+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
+# environment variable; do not put it in $PATH.
+func_cygpath ()
+{
+  $debug_cmd
+
+  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
+    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
+    if test "$?" -ne 0; then
+      # on failure, ensure result is empty
+      func_cygpath_result=
+    fi
+  else
+    func_cygpath_result=
+    func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'"
+  fi
+}
+#end: func_cygpath
+
+
+# func_convert_core_msys_to_w32 ARG
+# Convert file name or path ARG from MSYS format to w32 format.  Return
+# result in func_convert_core_msys_to_w32_result.
+func_convert_core_msys_to_w32 ()
+{
+  $debug_cmd
+
+  # awkward: cmd appends spaces to result
+  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
+    $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
+}
+#end: func_convert_core_msys_to_w32
+
+
+# func_convert_file_check ARG1 ARG2
+# Verify that ARG1 (a file name in $build format) was converted to $host
+# format in ARG2. Otherwise, emit an error message, but continue (resetting
+# func_to_host_file_result to ARG1).
+func_convert_file_check ()
+{
+  $debug_cmd
+
+  if test -z "$2" && test -n "$1"; then
+    func_error "Could not determine host file name corresponding to"
+    func_error "  '$1'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback:
+    func_to_host_file_result=$1
+  fi
+}
+# end func_convert_file_check
+
+
+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
+# Verify that FROM_PATH (a path in $build format) was converted to $host
+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
+# func_to_host_file_result to a simplistic fallback value (see below).
+func_convert_path_check ()
+{
+  $debug_cmd
+
+  if test -z "$4" && test -n "$3"; then
+    func_error "Could not determine the host path corresponding to"
+    func_error "  '$3'"
+    func_error "Continuing, but uninstalled executables may not work."
+    # Fallback.  This is a deliberately simplistic "conversion" and
+    # should not be "improved".  See libtool.info.
+    if test "x$1" != "x$2"; then
+      lt_replace_pathsep_chars="s|$1|$2|g"
+      func_to_host_path_result=`echo "$3" |
+        $SED -e "$lt_replace_pathsep_chars"`
+    else
+      func_to_host_path_result=$3
+    fi
+  fi
+}
+# end func_convert_path_check
+
+
+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
+# and appending REPL if ORIG matches BACKPAT.
+func_convert_path_front_back_pathsep ()
+{
+  $debug_cmd
+
+  case $4 in
+  $1 ) func_to_host_path_result=$3$func_to_host_path_result
+    ;;
+  esac
+  case $4 in
+  $2 ) func_append func_to_host_path_result "$3"
+    ;;
+  esac
+}
+# end func_convert_path_front_back_pathsep
+
+
+##################################################
+# $build to $host FILE NAME CONVERSION FUNCTIONS #
+##################################################
+# invoked via '$to_host_file_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# Result will be available in $func_to_host_file_result.
+
+
+# func_to_host_file ARG
+# Converts the file name ARG from $build format to $host format. Return result
+# in func_to_host_file_result.
+func_to_host_file ()
+{
+  $debug_cmd
+
+  $to_host_file_cmd "$1"
+}
+# end func_to_host_file
+
+
+# func_to_tool_file ARG LAZY
+# converts the file name ARG from $build format to toolchain format. Return
+# result in func_to_tool_file_result.  If the conversion in use is listed
+# in (the comma separated) LAZY, no conversion takes place.
+func_to_tool_file ()
+{
+  $debug_cmd
+
+  case ,$2, in
+    *,"$to_tool_file_cmd",*)
+      func_to_tool_file_result=$1
+      ;;
+    *)
+      $to_tool_file_cmd "$1"
+      func_to_tool_file_result=$func_to_host_file_result
+      ;;
+  esac
+}
+# end func_to_tool_file
+
+
+# func_convert_file_noop ARG
+# Copy ARG to func_to_host_file_result.
+func_convert_file_noop ()
+{
+  func_to_host_file_result=$1
+}
+# end func_convert_file_noop
+
+
+# func_convert_file_msys_to_w32 ARG
+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_file_result.
+func_convert_file_msys_to_w32 ()
+{
+  $debug_cmd
+
+  func_to_host_file_result=$1
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_to_host_file_result=$func_convert_core_msys_to_w32_result
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_w32
+
+
+# func_convert_file_cygwin_to_w32 ARG
+# Convert file name ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_file_cygwin_to_w32 ()
+{
+  $debug_cmd
+
+  func_to_host_file_result=$1
+  if test -n "$1"; then
+    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
+    # LT_CYGPATH in this case.
+    func_to_host_file_result=`cygpath -m "$1"`
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_cygwin_to_w32
+
+
+# func_convert_file_nix_to_w32 ARG
+# Convert file name ARG from *nix to w32 format.  Requires a wine environment
+# and a working winepath. Returns result in func_to_host_file_result.
+func_convert_file_nix_to_w32 ()
+{
+  $debug_cmd
+
+  func_to_host_file_result=$1
+  if test -n "$1"; then
+    func_convert_core_file_wine_to_w32 "$1"
+    func_to_host_file_result=$func_convert_core_file_wine_to_w32_result
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_w32
+
+
+# func_convert_file_msys_to_cygwin ARG
+# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_file_msys_to_cygwin ()
+{
+  $debug_cmd
+
+  func_to_host_file_result=$1
+  if test -n "$1"; then
+    func_convert_core_msys_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_msys_to_w32_result"
+    func_to_host_file_result=$func_cygpath_result
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_cygwin
+
+
+# func_convert_file_nix_to_cygwin ARG
+# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
+# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
+# in func_to_host_file_result.
+func_convert_file_nix_to_cygwin ()
+{
+  $debug_cmd
+
+  func_to_host_file_result=$1
+  if test -n "$1"; then
+    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
+    func_convert_core_file_wine_to_w32 "$1"
+    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
+    func_to_host_file_result=$func_cygpath_result
+  fi
+  func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_cygwin
+
+
+#############################################
+# $build to $host PATH CONVERSION FUNCTIONS #
+#############################################
+# invoked via '$to_host_path_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# The result will be available in $func_to_host_path_result.
+#
+# Path separators are also converted from $build format to $host format.  If
+# ARG begins or ends with a path separator character, it is preserved (but
+# converted to $host format) on output.
+#
+# All path conversion functions are named using the following convention:
+#   file name conversion function    : func_convert_file_X_to_Y ()
+#   path conversion function         : func_convert_path_X_to_Y ()
+# where, for any given $build/$host combination the 'X_to_Y' value is the
+# same.  If conversion functions are added for new $build/$host combinations,
+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
+# will break.
+
+
+# func_init_to_host_path_cmd
+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
+# appropriate value, based on the value of $to_host_file_cmd.
+to_host_path_cmd=
+func_init_to_host_path_cmd ()
+{
+  $debug_cmd
+
+  if test -z "$to_host_path_cmd"; then
+    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
+    to_host_path_cmd=func_convert_path_$func_stripname_result
+  fi
+}
+
+
+# func_to_host_path ARG
+# Converts the path ARG from $build format to $host format. Return result
+# in func_to_host_path_result.
+func_to_host_path ()
+{
+  $debug_cmd
+
+  func_init_to_host_path_cmd
+  $to_host_path_cmd "$1"
+}
+# end func_to_host_path
+
+
+# func_convert_path_noop ARG
+# Copy ARG to func_to_host_path_result.
+func_convert_path_noop ()
+{
+  func_to_host_path_result=$1
+}
+# end func_convert_path_noop
+
+
+# func_convert_path_msys_to_w32 ARG
+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper.  Returns result in
+# func_to_host_path_result.
+func_convert_path_msys_to_w32 ()
+{
+  $debug_cmd
+
+  func_to_host_path_result=$1
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from ARG.  MSYS
+    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
+    # and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result=$func_convert_core_msys_to_w32_result
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_msys_to_w32
+
+
+# func_convert_path_cygwin_to_w32 ARG
+# Convert path ARG from Cygwin to w32 format.  Returns result in
+# func_to_host_file_result.
+func_convert_path_cygwin_to_w32 ()
+{
+  $debug_cmd
+
+  func_to_host_path_result=$1
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_cygwin_to_w32
+
+
+# func_convert_path_nix_to_w32 ARG
+# Convert path ARG from *nix to w32 format.  Requires a wine environment and
+# a working winepath.  Returns result in func_to_host_file_result.
+func_convert_path_nix_to_w32 ()
+{
+  $debug_cmd
+
+  func_to_host_path_result=$1
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_to_host_path_result=$func_convert_core_path_wine_to_w32_result
+    func_convert_path_check : ";" \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+  fi
+}
+# end func_convert_path_nix_to_w32
+
+
+# func_convert_path_msys_to_cygwin ARG
+# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_path_msys_to_cygwin ()
+{
+  $debug_cmd
+
+  func_to_host_path_result=$1
+  if test -n "$1"; then
+    # See func_convert_path_msys_to_w32:
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+    func_to_host_path_result=$func_cygpath_result
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_msys_to_cygwin
+
+
+# func_convert_path_nix_to_cygwin ARG
+# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
+# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
+# func_to_host_file_result.
+func_convert_path_nix_to_cygwin ()
+{
+  $debug_cmd
+
+  func_to_host_path_result=$1
+  if test -n "$1"; then
+    # Remove leading and trailing path separator characters from
+    # ARG. msys behavior is inconsistent here, cygpath turns them
+    # into '.;' and ';.', and winepath ignores them completely.
+    func_stripname : : "$1"
+    func_to_host_path_tmp1=$func_stripname_result
+    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
+    func_to_host_path_result=$func_cygpath_result
+    func_convert_path_check : : \
+      "$func_to_host_path_tmp1" "$func_to_host_path_result"
+    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+  fi
+}
+# end func_convert_path_nix_to_cygwin
+
+
+# func_dll_def_p FILE
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with _LT_DLL_DEF_P in libtool.m4
+func_dll_def_p ()
+{
+  $debug_cmd
+
+  func_dll_def_p_tmp=`$SED -n \
+    -e 's/^[	 ]*//' \
+    -e '/^\(;.*\)*$/d' \
+    -e 's/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p' \
+    -e q \
+    "$1"`
+  test DEF = "$func_dll_def_p_tmp"
+}
+
+
+# func_mode_compile arg...
+func_mode_compile ()
+{
+    $debug_cmd
+
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile=$nonopt  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
+    suppress_output=
+    arg_mode=normal
+    libobj=
+    later=
+    pie_flag=
+
+    for arg
+    do
+      case $arg_mode in
+      arg  )
+	# do not "continue".  Instead, add this to base_compile
+	lastarg=$arg
+	arg_mode=normal
+	;;
+
+      target )
+	libobj=$arg
+	arg_mode=normal
+	continue
+	;;
+
+      normal )
+	# Accept any command-line options.
+	case $arg in
+	-o)
+	  test -n "$libobj" && \
+	    func_fatal_error "you cannot specify '-o' more than once"
+	  arg_mode=target
+	  continue
+	  ;;
+
+	-pie | -fpie | -fPIE)
+          func_append pie_flag " $arg"
+	  continue
+	  ;;
+
+	-shared | -static | -prefer-pic | -prefer-non-pic)
+	  func_append later " $arg"
+	  continue
+	  ;;
+
+	-no-suppress)
+	  suppress_opt=no
+	  continue
+	  ;;
+
+	-Xcompiler)
+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
+	  continue      #  The current "srcfile" will either be retained or
+	  ;;            #  replaced later.  I would guess that would be a bug.
+
+	-Wc,*)
+	  func_stripname '-Wc,' '' "$arg"
+	  args=$func_stripname_result
+	  lastarg=
+	  save_ifs=$IFS; IFS=,
+	  for arg in $args; do
+	    IFS=$save_ifs
+	    func_append_quoted lastarg "$arg"
+	  done
+	  IFS=$save_ifs
+	  func_stripname ' ' '' "$lastarg"
+	  lastarg=$func_stripname_result
+
+	  # Add the arguments to base_compile.
+	  func_append base_compile " $lastarg"
+	  continue
+	  ;;
+
+	*)
+	  # Accept the current argument as the source file.
+	  # The previous "srcfile" becomes the current argument.
+	  #
+	  lastarg=$srcfile
+	  srcfile=$arg
+	  ;;
+	esac  #  case $arg
+	;;
+      esac    #  case $arg_mode
+
+      # Aesthetically quote the previous argument.
+      func_append_quoted base_compile "$lastarg"
+    done # for arg
+
+    case $arg_mode in
+    arg)
+      func_fatal_error "you must specify an argument for -Xcompile"
+      ;;
+    target)
+      func_fatal_error "you must specify a target with '-o'"
+      ;;
+    *)
+      # Get the name of the library object.
+      test -z "$libobj" && {
+	func_basename "$srcfile"
+	libobj=$func_basename_result
+      }
+      ;;
+    esac
+
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    case $libobj in
+    *.[cCFSifmso] | \
+    *.ada | *.adb | *.ads | *.asm | \
+    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
+    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
+      func_xform "$libobj"
+      libobj=$func_xform_result
+      ;;
+    esac
+
+    case $libobj in
+    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
+    *)
+      func_fatal_error "cannot determine name of library object from '$libobj'"
+      ;;
+    esac
+
+    func_infer_tag $base_compile
+
+    for arg in $later; do
+      case $arg in
+      -shared)
+	test yes = "$build_libtool_libs" \
+	  || func_fatal_configuration "cannot build a shared library"
+	build_old_libs=no
+	continue
+	;;
+
+      -static)
+	build_libtool_libs=no
+	build_old_libs=yes
+	continue
+	;;
+
+      -prefer-pic)
+	pic_mode=yes
+	continue
+	;;
+
+      -prefer-non-pic)
+	pic_mode=no
+	continue
+	;;
+      esac
+    done
+
+    func_quote_for_eval "$libobj"
+    test "X$libobj" != "X$func_quote_for_eval_result" \
+      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
+      && func_warning "libobj name '$libobj' may not contain shell special characters."
+    func_dirname_and_basename "$obj" "/" ""
+    objname=$func_basename_result
+    xdir=$func_dirname_result
+    lobj=$xdir$objdir/$objname
+
+    test -z "$base_compile" && \
+      func_fatal_help "you must specify a compilation command"
+
+    # Delete any leftover library objects.
+    if test yes = "$build_old_libs"; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
+
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2* | cegcc*)
+      pic_mode=default
+      ;;
+    esac
+    if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
+    fi
+
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test no = "$compiler_c_o"; then
+      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext
+      lockfile=$output_obj.lock
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
+
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test yes = "$need_locks"; then
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+	func_echo "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    elif test warn = "$need_locks"; then
+      if test -f "$lockfile"; then
+	$ECHO "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support '-c' and '-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+      func_append removelist " $output_obj"
+      $ECHO "$srcfile" > "$lockfile"
+    fi
+
+    $opt_dry_run || $RM $removelist
+    func_append removelist " $lockfile"
+    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
+    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
+    srcfile=$func_to_tool_file_result
+    func_quote_for_eval "$srcfile"
+    qsrcfile=$func_quote_for_eval_result
+
+    # Only build a PIC object if we are building libtool libraries.
+    if test yes = "$build_libtool_libs"; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
+
+      if test no != "$pic_mode"; then
+	command="$base_compile $qsrcfile $pic_flag"
+      else
+	# Don't build PIC code
+	command="$base_compile $qsrcfile"
+      fi
+
+      func_mkdir_p "$xdir$objdir"
+
+      if test -z "$output_obj"; then
+	# Place PIC objects in $objdir
+	func_append command " -o $lobj"
+      fi
+
+      func_show_eval_locale "$command"	\
+          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+
+      if test warn = "$need_locks" &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support '-c' and '-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+	func_show_eval '$MV "$output_obj" "$lobj"' \
+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+
+      # Allow error messages only from the first compilation.
+      if test yes = "$suppress_opt"; then
+	suppress_output=' >/dev/null 2>&1'
+      fi
+    fi
+
+    # Only build a position-dependent object if we build old libraries.
+    if test yes = "$build_old_libs"; then
+      if test yes != "$pic_mode"; then
+	# Don't build PIC code
+	command="$base_compile $qsrcfile$pie_flag"
+      else
+	command="$base_compile $qsrcfile $pic_flag"
+      fi
+      if test yes = "$compiler_c_o"; then
+	func_append command " -o $obj"
+      fi
+
+      # Suppress compiler output if we already did a PIC compilation.
+      func_append command "$suppress_output"
+      func_show_eval_locale "$command" \
+        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
+
+      if test warn = "$need_locks" &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support '-c' and '-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$opt_dry_run || $RM $removelist
+	exit $EXIT_FAILURE
+      fi
+
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+	func_show_eval '$MV "$output_obj" "$obj"' \
+	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+    fi
+
+    $opt_dry_run || {
+      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+
+      # Unlock the critical section if it was locked
+      if test no != "$need_locks"; then
+	removelist=$lockfile
+        $RM "$lockfile"
+      fi
+    }
+
+    exit $EXIT_SUCCESS
+}
+
+$opt_help || {
+  test compile = "$opt_mode" && func_mode_compile ${1+"$@"}
+}
+
+func_mode_help ()
+{
+    # We need to display help for each of the modes.
+    case $opt_mode in
+      "")
+        # Generic help is extracted from the usage comments
+        # at the start of this file.
+        func_help
+        ;;
+
+      clean)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      compile)
+      $ECHO \
+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -no-suppress      do not suppress compiler output for multiple passes
+  -prefer-pic       try to build PIC objects only
+  -prefer-non-pic   try to build non-PIC objects only
+  -shared           do not build a '.o' file suitable for static linking
+  -static           only build a '.o' file suitable for static linking
+  -Wc,FLAG          pass FLAG directly to the compiler
+
+COMPILE-COMMAND is a command to be used in creating a 'standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix '.c' with the
+library object suffix, '.lo'."
+        ;;
+
+      execute)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+  -dlopen FILE      add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to '-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+        ;;
+
+      finish)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges.  Use
+the '--dry-run' option if you just want to see what would be executed."
+        ;;
+
+      install)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command.  The first component should be
+either the 'install' or 'cp' program.
+
+The following components of INSTALL-COMMAND are treated specially:
+
+  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+        ;;
+
+      link)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -bindir BINDIR    specify path to binaries directory (for systems where
+                    libraries must be found in the PATH setting at runtime)
+  -dlopen FILE      '-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+                    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+                    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  use a list of object files found in FILE to specify objects
+  -os2dllname NAME  force a short DLL name on OS/2 (no effect on other OSes)
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -shared           only do dynamic linking of libtool libraries
+  -shrext SUFFIX    override the standard shared library file extension
+  -static           do not do any dynamic linking of uninstalled libtool libraries
+  -static-libtool-libs
+                    do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+                    specify library version info [each variable defaults to 0]
+  -weak LIBNAME     declare that the target provides the LIBNAME interface
+  -Wc,FLAG
+  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
+  -Wl,FLAG
+  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
+  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
+
+All other options (arguments beginning with '-') are ignored.
+
+Every other argument is treated as a filename.  Files ending in '.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in '.la', then a libtool library is created,
+only library objects ('.lo' files) may be specified, and '-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created
+using 'ar' and 'ranlib', or on Windows using 'lib'.
+
+If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file
+is created, otherwise an executable program is created."
+        ;;
+
+      uninstall)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically '/bin/rm').  RM-OPTIONS are options (such as '-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+        ;;
+
+      *)
+        func_fatal_help "invalid operation mode '$opt_mode'"
+        ;;
+    esac
+
+    echo
+    $ECHO "Try '$progname --help' for more information about other modes."
+}
+
+# Now that we've collected a possible --mode arg, show help if necessary
+if $opt_help; then
+  if test : = "$opt_help"; then
+    func_mode_help
+  else
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+	func_mode_help
+      done
+    } | $SED -n '1p; 2,$s/^Usage:/  or: /p'
+    {
+      func_help noexit
+      for opt_mode in compile link execute install finish uninstall clean; do
+	echo
+	func_mode_help
+      done
+    } |
+    $SED '1d
+      /^When reporting/,/^Report/{
+	H
+	d
+      }
+      $x
+      /information about other modes/d
+      /more detailed .*MODE/d
+      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
+  fi
+  exit $?
+fi
+
+
+# func_mode_execute arg...
+func_mode_execute ()
+{
+    $debug_cmd
+
+    # The first argument is the command name.
+    cmd=$nonopt
+    test -z "$cmd" && \
+      func_fatal_help "you must specify a COMMAND"
+
+    # Handle -dlopen flags immediately.
+    for file in $opt_dlopen; do
+      test -f "$file" \
+	|| func_fatal_help "'$file' is not a file"
+
+      dir=
+      case $file in
+      *.la)
+	func_resolve_sysroot "$file"
+	file=$func_resolve_sysroot_result
+
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$file" \
+	  || func_fatal_help "'$lib' is not a valid libtool archive"
+
+	# Read the libtool library.
+	dlname=
+	library_names=
+	func_source "$file"
+
+	# Skip this library if it cannot be dlopened.
+	if test -z "$dlname"; then
+	  # Warn if it was a shared library.
+	  test -n "$library_names" && \
+	    func_warning "'$file' was not linked with '-export-dynamic'"
+	  continue
+	fi
+
+	func_dirname "$file" "" "."
+	dir=$func_dirname_result
+
+	if test -f "$dir/$objdir/$dlname"; then
+	  func_append dir "/$objdir"
+	else
+	  if test ! -f "$dir/$dlname"; then
+	    func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'"
+	  fi
+	fi
+	;;
+
+      *.lo)
+	# Just add the directory containing the .lo file.
+	func_dirname "$file" "" "."
+	dir=$func_dirname_result
+	;;
+
+      *)
+	func_warning "'-dlopen' is ignored for non-libtool libraries and objects"
+	continue
+	;;
+      esac
+
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir=$absdir
+
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+	eval "$shlibpath_var=\"\$dir\""
+      else
+	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+      fi
+    done
+
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic=$magic
+
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -* | *.la | *.lo ) ;;
+      *)
+	# Do a test to see if this is really a libtool program.
+	if func_ltwrapper_script_p "$file"; then
+	  func_source "$file"
+	  # Transform arg to wrapped name.
+	  file=$progdir/$program
+	elif func_ltwrapper_executable_p "$file"; then
+	  func_ltwrapper_scriptname "$file"
+	  func_source "$func_ltwrapper_scriptname_result"
+	  # Transform arg to wrapped name.
+	  file=$progdir/$program
+	fi
+	;;
+      esac
+      # Quote arguments (to preserve shell metacharacters).
+      func_append_quoted args "$file"
+    done
+
+    if $opt_dry_run; then
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+	echo "export $shlibpath_var"
+      fi
+      $ECHO "$cmd$args"
+      exit $EXIT_SUCCESS
+    else
+      if test -n "$shlibpath_var"; then
+	# Export the shlibpath_var.
+	eval "export $shlibpath_var"
+      fi
+
+      # Restore saved environment variables
+      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      do
+	eval "if test \"\${save_$lt_var+set}\" = set; then
+                $lt_var=\$save_$lt_var; export $lt_var
+	      else
+		$lt_unset $lt_var
+	      fi"
+      done
+
+      # Now prepare to actually exec the command.
+      exec_cmd=\$cmd$args
+    fi
+}
+
+test execute = "$opt_mode" && func_mode_execute ${1+"$@"}
+
+
+# func_mode_finish arg...
+func_mode_finish ()
+{
+    $debug_cmd
+
+    libs=
+    libdirs=
+    admincmds=
+
+    for opt in "$nonopt" ${1+"$@"}
+    do
+      if test -d "$opt"; then
+	func_append libdirs " $opt"
+
+      elif test -f "$opt"; then
+	if func_lalib_unsafe_p "$opt"; then
+	  func_append libs " $opt"
+	else
+	  func_warning "'$opt' is not a valid libtool archive"
+	fi
+
+      else
+	func_fatal_error "invalid argument '$opt'"
+      fi
+    done
+
+    if test -n "$libs"; then
+      if test -n "$lt_sysroot"; then
+        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
+        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
+      else
+        sysroot_cmd=
+      fi
+
+      # Remove sysroot references
+      if $opt_dry_run; then
+        for lib in $libs; do
+          echo "removing references to $lt_sysroot and '=' prefixes from $lib"
+        done
+      else
+        tmpdir=`func_mktempdir`
+        for lib in $libs; do
+	  $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+	    > $tmpdir/tmp-la
+	  mv -f $tmpdir/tmp-la $lib
+	done
+        ${RM}r "$tmpdir"
+      fi
+    fi
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for libdir in $libdirs; do
+	if test -n "$finish_cmds"; then
+	  # Do each command in the finish commands.
+	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
+'"$cmd"'"'
+	fi
+	if test -n "$finish_eval"; then
+	  # Do the single finish_eval.
+	  eval cmds=\"$finish_eval\"
+	  $opt_dry_run || eval "$cmds" || func_append admincmds "
+       $cmds"
+	fi
+      done
+    fi
+
+    # Exit here if they wanted silent mode.
+    $opt_quiet && exit $EXIT_SUCCESS
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      echo "----------------------------------------------------------------------"
+      echo "Libraries have been installed in:"
+      for libdir in $libdirs; do
+	$ECHO "   $libdir"
+      done
+      echo
+      echo "If you ever happen to want to link against installed libraries"
+      echo "in a given directory, LIBDIR, you must either use libtool, and"
+      echo "specify the full pathname of the library, or use the '-LLIBDIR'"
+      echo "flag during linking and do at least one of the following:"
+      if test -n "$shlibpath_var"; then
+	echo "   - add LIBDIR to the '$shlibpath_var' environment variable"
+	echo "     during execution"
+      fi
+      if test -n "$runpath_var"; then
+	echo "   - add LIBDIR to the '$runpath_var' environment variable"
+	echo "     during linking"
+      fi
+      if test -n "$hardcode_libdir_flag_spec"; then
+	libdir=LIBDIR
+	eval flag=\"$hardcode_libdir_flag_spec\"
+
+	$ECHO "   - use the '$flag' linker flag"
+      fi
+      if test -n "$admincmds"; then
+	$ECHO "   - have your system administrator run these commands:$admincmds"
+      fi
+      if test -f /etc/ld.so.conf; then
+	echo "   - have your system administrator add LIBDIR to '/etc/ld.so.conf'"
+      fi
+      echo
+
+      echo "See any operating system documentation about shared libraries for"
+      case $host in
+	solaris2.[6789]|solaris2.1[0-9])
+	  echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+	  echo "pages."
+	  ;;
+	*)
+	  echo "more information, such as the ld(1) and ld.so(8) manual pages."
+	  ;;
+      esac
+      echo "----------------------------------------------------------------------"
+    fi
+    exit $EXIT_SUCCESS
+}
+
+test finish = "$opt_mode" && func_mode_finish ${1+"$@"}
+
+
+# func_mode_install arg...
+func_mode_install ()
+{
+    $debug_cmd
+
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" ||
+       # Allow the use of GNU shtool's install command.
+       case $nonopt in *shtool*) :;; *) false;; esac
+    then
+      # Aesthetically quote it.
+      func_quote_for_eval "$nonopt"
+      install_prog="$func_quote_for_eval_result "
+      arg=$1
+      shift
+    else
+      install_prog=
+      arg=$nonopt
+    fi
+
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    func_quote_for_eval "$arg"
+    func_append install_prog "$func_quote_for_eval_result"
+    install_shared_prog=$install_prog
+    case " $install_prog " in
+      *[\\\ /]cp\ *) install_cp=: ;;
+      *) install_cp=false ;;
+    esac
+
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=false
+    stripme=
+    no_mode=:
+    for arg
+    do
+      arg2=
+      if test -n "$dest"; then
+	func_append files " $dest"
+	dest=$arg
+	continue
+      fi
+
+      case $arg in
+      -d) isdir=: ;;
+      -f)
+	if $install_cp; then :; else
+	  prev=$arg
+	fi
+	;;
+      -g | -m | -o)
+	prev=$arg
+	;;
+      -s)
+	stripme=" -s"
+	continue
+	;;
+      -*)
+	;;
+      *)
+	# If the previous option needed an argument, then skip it.
+	if test -n "$prev"; then
+	  if test X-m = "X$prev" && test -n "$install_override_mode"; then
+	    arg2=$install_override_mode
+	    no_mode=false
+	  fi
+	  prev=
+	else
+	  dest=$arg
+	  continue
+	fi
+	;;
+      esac
+
+      # Aesthetically quote the argument.
+      func_quote_for_eval "$arg"
+      func_append install_prog " $func_quote_for_eval_result"
+      if test -n "$arg2"; then
+	func_quote_for_eval "$arg2"
+      fi
+      func_append install_shared_prog " $func_quote_for_eval_result"
+    done
+
+    test -z "$install_prog" && \
+      func_fatal_help "you must specify an install program"
+
+    test -n "$prev" && \
+      func_fatal_help "the '$prev' option requires an argument"
+
+    if test -n "$install_override_mode" && $no_mode; then
+      if $install_cp; then :; else
+	func_quote_for_eval "$install_override_mode"
+	func_append install_shared_prog " -m $func_quote_for_eval_result"
+      fi
+    fi
+
+    if test -z "$files"; then
+      if test -z "$dest"; then
+	func_fatal_help "no file or destination specified"
+      else
+	func_fatal_help "you must specify a destination"
+      fi
+    fi
+
+    # Strip any trailing slash from the destination.
+    func_stripname '' '/' "$dest"
+    dest=$func_stripname_result
+
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=:
+    if $isdir; then
+      destdir=$dest
+      destname=
+    else
+      func_dirname_and_basename "$dest" "" "."
+      destdir=$func_dirname_result
+      destname=$func_basename_result
+
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files; shift
+      test "$#" -gt 1 && \
+	func_fatal_help "'$dest' is not a directory"
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+	case $file in
+	*.lo) ;;
+	*)
+	  func_fatal_help "'$destdir' must be an absolute directory name"
+	  ;;
+	esac
+      done
+      ;;
+    esac
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic=$magic
+
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
+
+      # Do each installation.
+      case $file in
+      *.$libext)
+	# Do the static libraries later.
+	func_append staticlibs " $file"
+	;;
+
+      *.la)
+	func_resolve_sysroot "$file"
+	file=$func_resolve_sysroot_result
+
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$file" \
+	  || func_fatal_help "'$file' is not a valid libtool archive"
+
+	library_names=
+	old_library=
+	relink_command=
+	func_source "$file"
+
+	# Add the libdir to current_libdirs if it is the destination.
+	if test "X$destdir" = "X$libdir"; then
+	  case "$current_libdirs " in
+	  *" $libdir "*) ;;
+	  *) func_append current_libdirs " $libdir" ;;
+	  esac
+	else
+	  # Note the libdir as a future libdir.
+	  case "$future_libdirs " in
+	  *" $libdir "*) ;;
+	  *) func_append future_libdirs " $libdir" ;;
+	  esac
+	fi
+
+	func_dirname "$file" "/" ""
+	dir=$func_dirname_result
+	func_append dir "$objdir"
+
+	if test -n "$relink_command"; then
+	  # Determine the prefix the user has applied to our future dir.
+	  inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
+
+	  # Don't allow the user to place us outside of our expected
+	  # location b/c this prevents finding dependent libraries that
+	  # are installed to the same prefix.
+	  # At present, this check doesn't affect windows .dll's that
+	  # are installed into $libdir/../bin (currently, that works fine)
+	  # but it's something to keep an eye on.
+	  test "$inst_prefix_dir" = "$destdir" && \
+	    func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir"
+
+	  if test -n "$inst_prefix_dir"; then
+	    # Stick the inst_prefix_dir data into the link command.
+	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+	  else
+	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+	  fi
+
+	  func_warning "relinking '$file'"
+	  func_show_eval "$relink_command" \
+	    'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"'
+	fi
+
+	# See the names of the shared library.
+	set dummy $library_names; shift
+	if test -n "$1"; then
+	  realname=$1
+	  shift
+
+	  srcname=$realname
+	  test -n "$relink_command" && srcname=${realname}T
+
+	  # Install the shared library and build the symlinks.
+	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
+	      'exit $?'
+	  tstripme=$stripme
+	  case $host_os in
+	  cygwin* | mingw* | pw32* | cegcc*)
+	    case $realname in
+	    *.dll.a)
+	      tstripme=
+	      ;;
+	    esac
+	    ;;
+	  os2*)
+	    case $realname in
+	    *_dll.a)
+	      tstripme=
+	      ;;
+	    esac
+	    ;;
+	  esac
+	  if test -n "$tstripme" && test -n "$striplib"; then
+	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
+	  fi
+
+	  if test "$#" -gt 0; then
+	    # Delete the old symlinks, and create new ones.
+	    # Try 'ln -sf' first, because the 'ln' binary might depend on
+	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
+	    # so we also need to try rm && ln -s.
+	    for linkname
+	    do
+	      test "$linkname" != "$realname" \
+		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
+	    done
+	  fi
+
+	  # Do each command in the postinstall commands.
+	  lib=$destdir/$realname
+	  func_execute_cmds "$postinstall_cmds" 'exit $?'
+	fi
+
+	# Install the pseudo-library for information purposes.
+	func_basename "$file"
+	name=$func_basename_result
+	instname=$dir/${name}i
+	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
+
+	# Maybe install the static library, too.
+	test -n "$old_library" && func_append staticlibs " $dir/$old_library"
+	;;
+
+      *.lo)
+	# Install (i.e. copy) a libtool object.
+
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile=$destdir/$destname
+	else
+	  func_basename "$file"
+	  destfile=$func_basename_result
+	  destfile=$destdir/$destfile
+	fi
+
+	# Deduce the name of the destination old-style object file.
+	case $destfile in
+	*.lo)
+	  func_lo2o "$destfile"
+	  staticdest=$func_lo2o_result
+	  ;;
+	*.$objext)
+	  staticdest=$destfile
+	  destfile=
+	  ;;
+	*)
+	  func_fatal_help "cannot copy a libtool object to '$destfile'"
+	  ;;
+	esac
+
+	# Install the libtool object if requested.
+	test -n "$destfile" && \
+	  func_show_eval "$install_prog $file $destfile" 'exit $?'
+
+	# Install the old object if enabled.
+	if test yes = "$build_old_libs"; then
+	  # Deduce the name of the old-style object file.
+	  func_lo2o "$file"
+	  staticobj=$func_lo2o_result
+	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
+	fi
+	exit $EXIT_SUCCESS
+	;;
+
+      *)
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile=$destdir/$destname
+	else
+	  func_basename "$file"
+	  destfile=$func_basename_result
+	  destfile=$destdir/$destfile
+	fi
+
+	# If the file is missing, and there is a .exe on the end, strip it
+	# because it is most likely a libtool script we actually want to
+	# install
+	stripped_ext=
+	case $file in
+	  *.exe)
+	    if test ! -f "$file"; then
+	      func_stripname '' '.exe' "$file"
+	      file=$func_stripname_result
+	      stripped_ext=.exe
+	    fi
+	    ;;
+	esac
+
+	# Do a test to see if this is really a libtool program.
+	case $host in
+	*cygwin* | *mingw*)
+	    if func_ltwrapper_executable_p "$file"; then
+	      func_ltwrapper_scriptname "$file"
+	      wrapper=$func_ltwrapper_scriptname_result
+	    else
+	      func_stripname '' '.exe' "$file"
+	      wrapper=$func_stripname_result
+	    fi
+	    ;;
+	*)
+	    wrapper=$file
+	    ;;
+	esac
+	if func_ltwrapper_script_p "$wrapper"; then
+	  notinst_deplibs=
+	  relink_command=
+
+	  func_source "$wrapper"
+
+	  # Check the variables that should have been set.
+	  test -z "$generated_by_libtool_version" && \
+	    func_fatal_error "invalid libtool wrapper script '$wrapper'"
+
+	  finalize=:
+	  for lib in $notinst_deplibs; do
+	    # Check to see that each library is installed.
+	    libdir=
+	    if test -f "$lib"; then
+	      func_source "$lib"
+	    fi
+	    libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'`
+	    if test -n "$libdir" && test ! -f "$libfile"; then
+	      func_warning "'$lib' has not been installed in '$libdir'"
+	      finalize=false
+	    fi
+	  done
+
+	  relink_command=
+	  func_source "$wrapper"
+
+	  outputname=
+	  if test no = "$fast_install" && test -n "$relink_command"; then
+	    $opt_dry_run || {
+	      if $finalize; then
+	        tmpdir=`func_mktempdir`
+		func_basename "$file$stripped_ext"
+		file=$func_basename_result
+	        outputname=$tmpdir/$file
+	        # Replace the output file specification.
+	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
+
+	        $opt_quiet || {
+	          func_quote_for_expand "$relink_command"
+		  eval "func_echo $func_quote_for_expand_result"
+	        }
+	        if eval "$relink_command"; then :
+	          else
+		  func_error "error: relink '$file' with the above command before installing it"
+		  $opt_dry_run || ${RM}r "$tmpdir"
+		  continue
+	        fi
+	        file=$outputname
+	      else
+	        func_warning "cannot relink '$file'"
+	      fi
+	    }
+	  else
+	    # Install the binary that we compiled earlier.
+	    file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
+	  fi
+	fi
+
+	# remove .exe since cygwin /usr/bin/install will append another
+	# one anyway
+	case $install_prog,$host in
+	*/usr/bin/install*,*cygwin*)
+	  case $file:$destfile in
+	  *.exe:*.exe)
+	    # this is ok
+	    ;;
+	  *.exe:*)
+	    destfile=$destfile.exe
+	    ;;
+	  *:*.exe)
+	    func_stripname '' '.exe' "$destfile"
+	    destfile=$func_stripname_result
+	    ;;
+	  esac
+	  ;;
+	esac
+	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
+	$opt_dry_run || if test -n "$outputname"; then
+	  ${RM}r "$tmpdir"
+	fi
+	;;
+      esac
+    done
+
+    for file in $staticlibs; do
+      func_basename "$file"
+      name=$func_basename_result
+
+      # Set up the ranlib parameters.
+      oldlib=$destdir/$name
+      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+      tool_oldlib=$func_to_tool_file_result
+
+      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
+
+      if test -n "$stripme" && test -n "$old_striplib"; then
+	func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
+      fi
+
+      # Do each command in the postinstall commands.
+      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
+    done
+
+    test -n "$future_libdirs" && \
+      func_warning "remember to run '$progname --finish$future_libdirs'"
+
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      $opt_dry_run && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs'
+    else
+      exit $EXIT_SUCCESS
+    fi
+}
+
+test install = "$opt_mode" && func_mode_install ${1+"$@"}
+
+
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
+{
+    $debug_cmd
+
+    my_outputname=$1
+    my_originator=$2
+    my_pic_p=${3-false}
+    my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'`
+    my_dlsyms=
+
+    if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+      if test -n "$NM" && test -n "$global_symbol_pipe"; then
+	my_dlsyms=${my_outputname}S.c
+      else
+	func_error "not configured to extract global symbols from dlpreopened files"
+      fi
+    fi
+
+    if test -n "$my_dlsyms"; then
+      case $my_dlsyms in
+      "") ;;
+      *.c)
+	# Discover the nlist of each of the dlfiles.
+	nlist=$output_objdir/$my_outputname.nm
+
+	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
+
+	# Parse the name list into a source file.
+	func_verbose "creating $output_objdir/$my_dlsyms"
+
+	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
+#endif
+
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data.  */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
+/* External symbol declarations for the compiler. */\
+"
+
+	if test yes = "$dlself"; then
+	  func_verbose "generating symbol list for '$output'"
+
+	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
+
+	  # Add our own program objects to the symbol list.
+	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+	  for progfile in $progfiles; do
+	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
+	    func_verbose "extracting global C symbols from '$func_to_tool_file_result'"
+	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
+	  done
+
+	  if test -n "$exclude_expsyms"; then
+	    $opt_dry_run || {
+	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	    }
+	  fi
+
+	  if test -n "$export_symbols_regex"; then
+	    $opt_dry_run || {
+	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	    }
+	  fi
+
+	  # Prepare the list of exported symbols
+	  if test -z "$export_symbols"; then
+	    export_symbols=$output_objdir/$outputname.exp
+	    $opt_dry_run || {
+	      $RM $export_symbols
+	      eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+	      case $host in
+	      *cygwin* | *mingw* | *cegcc* )
+                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+	        ;;
+	      esac
+	    }
+	  else
+	    $opt_dry_run || {
+	      eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+	      eval '$MV "$nlist"T "$nlist"'
+	      case $host in
+	        *cygwin* | *mingw* | *cegcc* )
+	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+	          ;;
+	      esac
+	    }
+	  fi
+	fi
+
+	for dlprefile in $dlprefiles; do
+	  func_verbose "extracting global C symbols from '$dlprefile'"
+	  func_basename "$dlprefile"
+	  name=$func_basename_result
+          case $host in
+	    *cygwin* | *mingw* | *cegcc* )
+	      # if an import library, we need to obtain dlname
+	      if func_win32_import_lib_p "$dlprefile"; then
+	        func_tr_sh "$dlprefile"
+	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
+	        dlprefile_dlbasename=
+	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
+	          # Use subshell, to avoid clobbering current variable values
+	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
+	          if test -n "$dlprefile_dlname"; then
+	            func_basename "$dlprefile_dlname"
+	            dlprefile_dlbasename=$func_basename_result
+	          else
+	            # no lafile. user explicitly requested -dlpreopen <import library>.
+	            $sharedlib_from_linklib_cmd "$dlprefile"
+	            dlprefile_dlbasename=$sharedlib_from_linklib_result
+	          fi
+	        fi
+	        $opt_dry_run || {
+	          if test -n "$dlprefile_dlbasename"; then
+	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
+	          else
+	            func_warning "Could not compute DLL name from $name"
+	            eval '$ECHO ": $name " >> "$nlist"'
+	          fi
+	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+	            $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
+	        }
+	      else # not an import lib
+	        $opt_dry_run || {
+	          eval '$ECHO ": $name " >> "$nlist"'
+	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+	        }
+	      fi
+	    ;;
+	    *)
+	      $opt_dry_run || {
+	        eval '$ECHO ": $name " >> "$nlist"'
+	        func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+	        eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+	      }
+	    ;;
+          esac
+	done
+
+	$opt_dry_run || {
+	  # Make sure we have at least an empty file.
+	  test -f "$nlist" || : > "$nlist"
+
+	  if test -n "$exclude_expsyms"; then
+	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+	    $MV "$nlist"T "$nlist"
+	  fi
+
+	  # Try sorting and uniquifying the output.
+	  if $GREP -v "^: " < "$nlist" |
+	      if sort -k 3 </dev/null >/dev/null 2>&1; then
+		sort -k 3
+	      else
+		sort +2
+	      fi |
+	      uniq > "$nlist"S; then
+	    :
+	  else
+	    $GREP -v "^: " < "$nlist" > "$nlist"S
+	  fi
+
+	  if test -f "$nlist"S; then
+	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
+	  else
+	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
+	  fi
+
+	  func_show_eval '$RM "${nlist}I"'
+	  if test -n "$global_symbol_to_import"; then
+	    eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I'
+	  fi
+
+	  echo >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols.  */
+typedef struct {
+  const char *name;
+  void *address;
+} lt_dlsymlist;
+extern LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];\
+"
+
+	  if test -s "$nlist"I; then
+	    echo >> "$output_objdir/$my_dlsyms" "\
+static void lt_syminit(void)
+{
+  LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols;
+  for (; symbol->name; ++symbol)
+    {"
+	    $SED 's/.*/      if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms"
+	    echo >> "$output_objdir/$my_dlsyms" "\
+    }
+}"
+	  fi
+	  echo >> "$output_objdir/$my_dlsyms" "\
+LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{ {\"$my_originator\", (void *) 0},"
+
+	  if test -s "$nlist"I; then
+	    echo >> "$output_objdir/$my_dlsyms" "\
+  {\"@INIT@\", (void *) &lt_syminit},"
+	  fi
+
+	  case $need_lib_prefix in
+	  no)
+	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+	    ;;
+	  *)
+	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
+	    ;;
+	  esac
+	  echo >> "$output_objdir/$my_dlsyms" "\
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+	} # !$opt_dry_run
+
+	pic_flag_for_symtable=
+	case "$compile_command " in
+	*" -static "*) ;;
+	*)
+	  case $host in
+	  # compiling the symbol table file with pic_flag works around
+	  # a FreeBSD bug that causes programs to crash when -lm is
+	  # linked before any other PIC object.  But we must not use
+	  # pic_flag when linking with -static.  The problem exists in
+	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+	  *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+	  *-*-hpux*)
+	    pic_flag_for_symtable=" $pic_flag"  ;;
+	  *)
+	    $my_pic_p && pic_flag_for_symtable=" $pic_flag"
+	    ;;
+	  esac
+	  ;;
+	esac
+	symtab_cflags=
+	for arg in $LTCFLAGS; do
+	  case $arg in
+	  -pie | -fpie | -fPIE) ;;
+	  *) func_append symtab_cflags " $arg" ;;
+	  esac
+	done
+
+	# Now compile the dynamic symbol file.
+	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+	# Clean up the generated files.
+	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"'
+
+	# Transform the symbol file into the correct name.
+	symfileobj=$output_objdir/${my_outputname}S.$objext
+	case $host in
+	*cygwin* | *mingw* | *cegcc* )
+	  if test -f "$output_objdir/$my_outputname.def"; then
+	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+	  else
+	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+	  fi
+	  ;;
+	*)
+	  compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+	  finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+	  ;;
+	esac
+	;;
+      *)
+	func_fatal_error "unknown suffix for '$my_dlsyms'"
+	;;
+      esac
+    else
+      # We keep going just in case the user didn't refer to
+      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+      # really was required.
+
+      # Nullify the symbol file.
+      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
+    fi
+}
+
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+  $debug_cmd
+
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+  test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+  $debug_cmd
+
+  func_to_tool_file "$1" func_convert_file_msys_to_w32
+  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+  test -n "$func_cygming_ms_implib_tmp"
+}
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+# Despite the name, also deal with 64 bit binaries.
+func_win32_libid ()
+{
+  $debug_cmd
+
+  win32_libid_type=unknown
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
+       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+      case $nm_interface in
+      "MS dumpbin")
+	if func_cygming_ms_implib_p "$1" ||
+	   func_cygming_gnu_implib_p "$1"
+	then
+	  win32_nmres=import
+	else
+	  win32_nmres=
+	fi
+	;;
+      *)
+	func_to_tool_file "$1" func_convert_file_msys_to_w32
+	win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
+	  $SED -n -e '
+	    1,100{
+		/ I /{
+		    s|.*|import|
+		    p
+		    q
+		}
+	    }'`
+	;;
+      esac
+      case $win32_nmres in
+      import*)  win32_libid_type="x86 archive import";;
+      *)        win32_libid_type="x86 archive static";;
+      esac
+    fi
+    ;;
+  *DLL*)
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $ECHO "$win32_libid_type"
+}
+
+# func_cygming_dll_for_implib ARG
+#
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib ()
+{
+  $debug_cmd
+
+  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
+}
+
+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
+#
+# The is the core of a fallback implementation of a
+# platform-specific function to extract the name of the
+# DLL associated with the specified import library LIBNAME.
+#
+# SECTION_NAME is either .idata$6 or .idata$7, depending
+# on the platform and compiler that created the implib.
+#
+# Echos the name of the DLL associated with the
+# specified import library.
+func_cygming_dll_for_implib_fallback_core ()
+{
+  $debug_cmd
+
+  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
+  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
+    $SED '/^Contents of section '"$match_literal"':/{
+      # Place marker at beginning of archive member dllname section
+      s/.*/====MARK====/
+      p
+      d
+    }
+    # These lines can sometimes be longer than 43 characters, but
+    # are always uninteresting
+    /:[	 ]*file format pe[i]\{,1\}-/d
+    /^In archive [^:]*:/d
+    # Ensure marker is printed
+    /^====MARK====/p
+    # Remove all lines with less than 43 characters
+    /^.\{43\}/!d
+    # From remaining lines, remove first 43 characters
+    s/^.\{43\}//' |
+    $SED -n '
+      # Join marker and all lines until next marker into a single line
+      /^====MARK====/ b para
+      H
+      $ b para
+      b
+      :para
+      x
+      s/\n//g
+      # Remove the marker
+      s/^====MARK====//
+      # Remove trailing dots and whitespace
+      s/[\. \t]*$//
+      # Print
+      /./p' |
+    # we now have a list, one entry per line, of the stringified
+    # contents of the appropriate section of all members of the
+    # archive that possess that section. Heuristic: eliminate
+    # all those that have a first or second character that is
+    # a '.' (that is, objdump's representation of an unprintable
+    # character.) This should work for all archives with less than
+    # 0x302f exports -- but will fail for DLLs whose name actually
+    # begins with a literal '.' or a single character followed by
+    # a '.'.
+    #
+    # Of those that remain, print the first one.
+    $SED -e '/^\./d;/^.\./d;q'
+}
+
+# func_cygming_dll_for_implib_fallback ARG
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+#
+# This fallback implementation is for use when $DLLTOOL
+# does not support the --identify-strict option.
+# Invoked by eval'ing the libtool variable
+#    $sharedlib_from_linklib_cmd
+# Result is available in the variable
+#    $sharedlib_from_linklib_result
+func_cygming_dll_for_implib_fallback ()
+{
+  $debug_cmd
+
+  if func_cygming_gnu_implib_p "$1"; then
+    # binutils import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
+  elif func_cygming_ms_implib_p "$1"; then
+    # ms-generated import library
+    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
+  else
+    # unknown
+    sharedlib_from_linklib_result=
+  fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+    $debug_cmd
+
+    f_ex_an_ar_dir=$1; shift
+    f_ex_an_ar_oldlib=$1
+    if test yes = "$lock_old_archive_extraction"; then
+      lockfile=$f_ex_an_ar_oldlib.lock
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+	func_echo "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    fi
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
+		   'stat=$?; rm -f "$lockfile"; exit $stat'
+    if test yes = "$lock_old_archive_extraction"; then
+      $opt_dry_run || rm -f "$lockfile"
+    fi
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+     :
+    else
+      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+    fi
+}
+
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+    $debug_cmd
+
+    my_gentop=$1; shift
+    my_oldlibs=${1+"$@"}
+    my_oldobjs=
+    my_xlib=
+    my_xabs=
+    my_xdir=
+
+    for my_xlib in $my_oldlibs; do
+      # Extract the objects.
+      case $my_xlib in
+	[\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;;
+	*) my_xabs=`pwd`"/$my_xlib" ;;
+      esac
+      func_basename "$my_xlib"
+      my_xlib=$func_basename_result
+      my_xlib_u=$my_xlib
+      while :; do
+        case " $extracted_archives " in
+	*" $my_xlib_u "*)
+	  func_arith $extracted_serial + 1
+	  extracted_serial=$func_arith_result
+	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
+	*) break ;;
+	esac
+      done
+      extracted_archives="$extracted_archives $my_xlib_u"
+      my_xdir=$my_gentop/$my_xlib_u
+
+      func_mkdir_p "$my_xdir"
+
+      case $host in
+      *-darwin*)
+	func_verbose "Extracting $my_xabs"
+	# Do not bother doing anything if just a dry run
+	$opt_dry_run || {
+	  darwin_orig_dir=`pwd`
+	  cd $my_xdir || exit $?
+	  darwin_archive=$my_xabs
+	  darwin_curdir=`pwd`
+	  func_basename "$darwin_archive"
+	  darwin_base_archive=$func_basename_result
+	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+	  if test -n "$darwin_arches"; then
+	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+	    darwin_arch=
+	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
+	    for darwin_arch in  $darwin_arches; do
+	      func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch"
+	      $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive"
+	      cd "unfat-$$/$darwin_base_archive-$darwin_arch"
+	      func_extract_an_archive "`pwd`" "$darwin_base_archive"
+	      cd "$darwin_curdir"
+	      $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive"
+	    done # $darwin_arches
+            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
+	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u`
+	    darwin_file=
+	    darwin_files=
+	    for darwin_file in $darwin_filelist; do
+	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
+	      $LIPO -create -output "$darwin_file" $darwin_files
+	    done # $darwin_filelist
+	    $RM -rf unfat-$$
+	    cd "$darwin_orig_dir"
+	  else
+	    cd $darwin_orig_dir
+	    func_extract_an_archive "$my_xdir" "$my_xabs"
+	  fi # $darwin_arches
+	} # !$opt_dry_run
+	;;
+      *)
+        func_extract_an_archive "$my_xdir" "$my_xabs"
+	;;
+      esac
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
+    done
+
+    func_extract_archives_result=$my_oldobjs
+}
+
+
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable.  Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take.  If 'yes', then the emitted script
+# will assume that the directory where it is stored is
+# the $objdir directory.  This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+	func_emit_wrapper_arg1=${1-no}
+
+	$ECHO "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='$sed_quote_subst'
+
+# Be Bourne compatible
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='$macro_version'
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$ECHO are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    file=\"\$0\""
+
+    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
+    $ECHO "\
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+    ECHO=\"$qECHO\"
+  fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ that is used only on
+# windows platforms, and (c) all begin with the string "--lt-"
+# (application programs are unlikely to have options that match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's $0 value, followed by "$@".
+lt_option_debug=
+func_parse_lt_options ()
+{
+  lt_script_arg0=\$0
+  shift
+  for lt_opt
+  do
+    case \"\$lt_opt\" in
+    --lt-debug) lt_option_debug=1 ;;
+    --lt-dump-script)
+        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
+        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
+        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
+        cat \"\$lt_dump_D/\$lt_dump_F\"
+        exit 0
+      ;;
+    --lt-*)
+        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
+        exit 1
+      ;;
+    esac
+  done
+
+  # Print the debug banner immediately:
+  if test -n \"\$lt_option_debug\"; then
+    echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2
+  fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+  lt_dump_args_N=1;
+  for lt_arg
+  do
+    \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\"
+    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
+  done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+"
+  case $host in
+  # Backslashes separate directories on plain windows
+  *-*-mingw | *-*-os2* | *-cegcc*)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+    ;;
+
+  *)
+    $ECHO "\
+      if test -n \"\$lt_option_debug\"; then
+        \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2
+        func_lt_dump_args \${1+\"\$@\"} 1>&2
+      fi
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+    ;;
+  esac
+  $ECHO "\
+      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+      exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from \$@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+  case \" \$* \" in
+  *\\ --lt-*)
+    for lt_wr_arg
+    do
+      case \$lt_wr_arg in
+      --lt-*) ;;
+      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+      esac
+      shift
+    done ;;
+  esac
+  func_exec_program_core \${1+\"\$@\"}
+}
+
+  # Parse options
+  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
+
+  # Find the directory that this script lives in.
+  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
+
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
+
+    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
+  done
+
+  # Usually 'no', except on cygwin/mingw when embedded into
+  # the cwrapper.
+  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
+  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
+    # special case for '.'
+    if test \"\$thisdir\" = \".\"; then
+      thisdir=\`pwd\`
+    fi
+    # remove .libs from thisdir
+    case \"\$thisdir\" in
+    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
+    $objdir )   thisdir=. ;;
+    esac
+  fi
+
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+	if test yes = "$fast_install"; then
+	  $ECHO "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
+
+  if test ! -f \"\$progdir/\$program\" ||
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+    file=\"\$\$-\$program\"
+
+    if test ! -d \"\$progdir\"; then
+      $MKDIR \"\$progdir\"
+    else
+      $RM \"\$progdir/\$file\"
+    fi"
+
+	  $ECHO "\
+
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+	\$ECHO \"\$relink_command_output\" >&2
+	$RM \"\$progdir/\$file\"
+	exit 1
+      fi
+    fi
+
+    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $RM \"\$progdir/\$program\";
+      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $RM \"\$progdir/\$file\"
+  fi"
+	else
+	  $ECHO "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+	fi
+
+	$ECHO "\
+
+  if test -f \"\$progdir/\$program\"; then"
+
+	# fixup the dll searchpath if we need to.
+	#
+	# Fix the DLL searchpath if we need to.  Do this before prepending
+	# to shlibpath, because on Windows, both are PATH and uninstalled
+	# libraries must come first.
+	if test -n "$dllsearchpath"; then
+	  $ECHO "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
+	# Export our shlibpath_var if we have one.
+	if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	  $ECHO "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
+
+    export $shlibpath_var
+"
+	fi
+
+	$ECHO "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+      func_exec_program \${1+\"\$@\"}
+    fi
+  else
+    # The program doesn't exist.
+    \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2
+    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit 1
+  fi
+fi\
+"
+}
+
+
+# func_emit_cwrapperexe_src
+# emit the source code for a wrapper executable on stdout
+# Must ONLY be called from within func_mode_link because
+# it depends on a number of variable set therein.
+func_emit_cwrapperexe_src ()
+{
+	cat <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
+
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
+*/
+EOF
+	    cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+#  include <io.h>
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
+/* declarations of non-ANSI functions */
+#if defined __MINGW32__
+# ifdef __STRICT_ANSI__
+int _putenv (const char *);
+# endif
+#elif defined __CYGWIN__
+# ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+# endif
+/* #elif defined other_platform || defined ... */
+#endif
+
+/* portability defines, excluding path handling macros */
+#if defined _MSC_VER
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+# define S_IXUSR _S_IEXEC
+#elif defined __MINGW32__
+# define setmode _setmode
+# define stat    _stat
+# define chmod   _chmod
+# define getcwd  _getcwd
+# define putenv  _putenv
+#elif defined __CYGWIN__
+# define HAVE_SETENV
+# define FOPEN_WB "wb"
+/* #elif defined other platforms ... */
+#endif
+
+#if defined PATH_MAX
+# define LT_PATHMAX PATH_MAX
+#elif defined MAXPATHLEN
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
+
+/* path handling portability macros */
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \
+  defined __OS2__
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# define FOPEN_WB "wb"
+# ifndef DIR_SEPARATOR_2
+#  define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+#  define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#ifndef FOPEN_WB
+# define FOPEN_WB "w"
+#endif
+#ifndef _O_BINARY
+# define _O_BINARY 0
+#endif
+
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free (stale); stale = 0; } \
+} while (0)
+
+#if defined LT_DEBUGWRAPPER
+static int lt_debug = 1;
+#else
+static int lt_debug = 0;
+#endif
+
+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
+
+void *xmalloc (size_t num);
+char *xstrdup (const char *string);
+const char *base_name (const char *name);
+char *find_executable (const char *wrapper);
+char *chase_symlinks (const char *pathspec);
+int make_executable (const char *path);
+int check_executable (const char *path);
+char *strendzap (char *str, const char *pat);
+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
+void lt_fatal (const char *file, int line, const char *message, ...);
+static const char *nonnull (const char *s);
+static const char *nonempty (const char *s);
+void lt_setenv (const char *name, const char *value);
+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+void lt_update_exe_path (const char *name, const char *value);
+void lt_update_lib_path (const char *name, const char *value);
+char **prepare_spawn (char **argv);
+void lt_dump_script (FILE *f);
+EOF
+
+	    cat <<EOF
+#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
+# define externally_visible volatile
+#else
+# define externally_visible __attribute__((externally_visible)) volatile
+#endif
+externally_visible const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
+
+	    if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+              func_to_host_path "$temp_rpath"
+	      cat <<EOF
+const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
+EOF
+	    else
+	      cat <<"EOF"
+const char * LIB_PATH_VALUE   = "";
+EOF
+	    fi
+
+	    if test -n "$dllsearchpath"; then
+              func_to_host_path "$dllsearchpath:"
+	      cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
+EOF
+	    else
+	      cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE   = "";
+EOF
+	    fi
+
+	    if test yes = "$fast_install"; then
+	      cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
+	    else
+	      cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
+	    fi
+
+
+	    cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX         "--lt-"
+
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
+static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int  newargc;
+  char *tmp_pathspec;
+  char *actual_cwrapper_path;
+  char *actual_cwrapper_name;
+  char *target_name;
+  char *lt_argv_zero;
+  int rval = 127;
+
+  int i;
+
+  program_name = (char *) xstrdup (base_name (argv[0]));
+  newargz = XMALLOC (char *, (size_t) argc + 1);
+
+  /* very simple arg parsing; don't want to rely on getopt
+   * also, copy all non cwrapper options to newargz, except
+   * argz[0], which is handled differently
+   */
+  newargc=0;
+  for (i = 1; i < argc; i++)
+    {
+      if (STREQ (argv[i], dumpscript_opt))
+	{
+EOF
+	    case $host in
+	      *mingw* | *cygwin* )
+		# make stdout use "unix" line endings
+		echo "          setmode(1,_O_BINARY);"
+		;;
+	      esac
+
+	    cat <<"EOF"
+	  lt_dump_script (stdout);
+	  return 0;
+	}
+      if (STREQ (argv[i], debug_opt))
+	{
+          lt_debug = 1;
+          continue;
+	}
+      if (STREQ (argv[i], ltwrapper_option_prefix))
+        {
+          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+             namespace, but it is not one of the ones we know about and
+             have already dealt with, above (inluding dump-script), then
+             report an error. Otherwise, targets might begin to believe
+             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+             namespace. The first time any user complains about this, we'll
+             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+             or a configure.ac-settable value.
+           */
+          lt_fatal (__FILE__, __LINE__,
+		    "unrecognized %s option: '%s'",
+                    ltwrapper_option_prefix, argv[i]);
+        }
+      /* otherwise ... */
+      newargz[++newargc] = xstrdup (argv[i]);
+    }
+  newargz[++newargc] = NULL;
+
+EOF
+	    cat <<EOF
+  /* The GNU banner must be the first non-error debug message */
+  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n");
+EOF
+	    cat <<"EOF"
+  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
+
+  tmp_pathspec = find_executable (argv[0]);
+  if (tmp_pathspec == NULL)
+    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (before symlink chase) at: %s\n",
+		  tmp_pathspec);
+
+  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+  lt_debugprintf (__FILE__, __LINE__,
+                  "(main) found exe (after symlink chase) at: %s\n",
+		  actual_cwrapper_path);
+  XFREE (tmp_pathspec);
+
+  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
+  strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+  /* wrapper name transforms */
+  strendzap (actual_cwrapper_name, ".exe");
+  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+  XFREE (actual_cwrapper_name);
+  actual_cwrapper_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  /* target_name transforms -- use actual target program name; might have lt- prefix */
+  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+  strendzap (target_name, ".exe");
+  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+  XFREE (target_name);
+  target_name = tmp_pathspec;
+  tmp_pathspec = 0;
+
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(main) libtool target name: %s\n",
+		  target_name);
+EOF
+
+	    cat <<EOF
+  newargz[0] =
+    XMALLOC (char, (strlen (actual_cwrapper_path) +
+		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+  strcpy (newargz[0], actual_cwrapper_path);
+  strcat (newargz[0], "$objdir");
+  strcat (newargz[0], "/");
+EOF
+
+	    cat <<"EOF"
+  /* stop here, and copy so we don't have to do this twice */
+  tmp_pathspec = xstrdup (newargz[0]);
+
+  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+  strcat (newargz[0], actual_cwrapper_name);
+
+  /* DO want the lt- prefix here if it exists, so use target_name */
+  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+  XFREE (tmp_pathspec);
+  tmp_pathspec = NULL;
+EOF
+
+	    case $host_os in
+	      mingw*)
+	    cat <<"EOF"
+  {
+    char* p;
+    while ((p = strchr (newargz[0], '\\')) != NULL)
+      {
+	*p = '/';
+      }
+    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+      {
+	*p = '/';
+      }
+  }
+EOF
+	    ;;
+	    esac
+
+	    cat <<"EOF"
+  XFREE (target_name);
+  XFREE (actual_cwrapper_path);
+  XFREE (actual_cwrapper_name);
+
+  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
+  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
+     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+     because on Windows, both *_VARNAMEs are PATH but uninstalled
+     libraries must come first. */
+  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+
+  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
+		  nonnull (lt_argv_zero));
+  for (i = 0; i < newargc; i++)
+    {
+      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+		      i, nonnull (newargz[i]));
+    }
+
+EOF
+
+	    case $host_os in
+	      mingw*)
+		cat <<"EOF"
+  /* execv doesn't actually work on mingw as expected on unix */
+  newargz = prepare_spawn (newargz);
+  rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+  if (rval == -1)
+    {
+      /* failed to start process */
+      lt_debugprintf (__FILE__, __LINE__,
+		      "(main) failed to launch target \"%s\": %s\n",
+		      lt_argv_zero, nonnull (strerror (errno)));
+      return 127;
+    }
+  return rval;
+EOF
+		;;
+	      *)
+		cat <<"EOF"
+  execv (lt_argv_zero, newargz);
+  return rval; /* =127, but avoids unused variable warning */
+EOF
+		;;
+	    esac
+
+	    cat <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+  void *p = (void *) malloc (num);
+  if (!p)
+    lt_fatal (__FILE__, __LINE__, "memory exhausted");
+
+  return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
+			  string) : NULL;
+}
+
+const char *
+base_name (const char *name)
+{
+  const char *base;
+
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
+    name += 2;
+#endif
+
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return base;
+}
+
+int
+check_executable (const char *path)
+{
+  struct stat st;
+
+  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
+                  nonempty (path));
+  if ((!path) || (!*path))
+    return 0;
+
+  if ((stat (path, &st) >= 0)
+      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+    return 1;
+  else
+    return 0;
+}
+
+int
+make_executable (const char *path)
+{
+  int rval = 0;
+  struct stat st;
+
+  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
+                  nonempty (path));
+  if ((!path) || (!*path))
+    return 0;
+
+  if (stat (path, &st) >= 0)
+    {
+      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
+    }
+  return rval;
+}
+
+/* Searches for the full path of the wrapper.  Returns
+   newly allocated full path name if found, NULL otherwise
+   Does not chase symlinks, even on platforms that support them.
+*/
+char *
+find_executable (const char *wrapper)
+{
+  int has_slash = 0;
+  const char *p;
+  const char *p_next;
+  /* static buffer for getcwd */
+  char tmp[LT_PATHMAX + 1];
+  size_t tmp_len;
+  char *concat_name;
+
+  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
+                  nonempty (wrapper));
+
+  if ((wrapper == NULL) || (*wrapper == '\0'))
+    return NULL;
+
+  /* Absolute path? */
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
+  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
+    {
+      concat_name = xstrdup (wrapper);
+      if (check_executable (concat_name))
+	return concat_name;
+      XFREE (concat_name);
+    }
+  else
+    {
+#endif
+      if (IS_DIR_SEPARATOR (wrapper[0]))
+	{
+	  concat_name = xstrdup (wrapper);
+	  if (check_executable (concat_name))
+	    return concat_name;
+	  XFREE (concat_name);
+	}
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
+    }
+#endif
+
+  for (p = wrapper; *p; p++)
+    if (*p == '/')
+      {
+	has_slash = 1;
+	break;
+      }
+  if (!has_slash)
+    {
+      /* no slashes; search PATH */
+      const char *path = getenv ("PATH");
+      if (path != NULL)
+	{
+	  for (p = path; *p; p = p_next)
+	    {
+	      const char *q;
+	      size_t p_len;
+	      for (q = p; *q; q++)
+		if (IS_PATH_SEPARATOR (*q))
+		  break;
+	      p_len = (size_t) (q - p);
+	      p_next = (*q == '\0' ? q : q + 1);
+	      if (p_len == 0)
+		{
+		  /* empty path: current directory */
+		  if (getcwd (tmp, LT_PATHMAX) == NULL)
+		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+                              nonnull (strerror (errno)));
+		  tmp_len = strlen (tmp);
+		  concat_name =
+		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+		  memcpy (concat_name, tmp, tmp_len);
+		  concat_name[tmp_len] = '/';
+		  strcpy (concat_name + tmp_len + 1, wrapper);
+		}
+	      else
+		{
+		  concat_name =
+		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
+		  memcpy (concat_name, p, p_len);
+		  concat_name[p_len] = '/';
+		  strcpy (concat_name + p_len + 1, wrapper);
+		}
+	      if (check_executable (concat_name))
+		return concat_name;
+	      XFREE (concat_name);
+	    }
+	}
+      /* not found in PATH; assume curdir */
+    }
+  /* Relative path | not found in path: prepend cwd */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+              nonnull (strerror (errno)));
+  tmp_len = strlen (tmp);
+  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+  memcpy (concat_name, tmp, tmp_len);
+  concat_name[tmp_len] = '/';
+  strcpy (concat_name + tmp_len + 1, wrapper);
+
+  if (check_executable (concat_name))
+    return concat_name;
+  XFREE (concat_name);
+  return NULL;
+}
+
+char *
+chase_symlinks (const char *pathspec)
+{
+#ifndef S_ISLNK
+  return xstrdup (pathspec);
+#else
+  char buf[LT_PATHMAX];
+  struct stat s;
+  char *tmp_pathspec = xstrdup (pathspec);
+  char *p;
+  int has_symlinks = 0;
+  while (strlen (tmp_pathspec) && !has_symlinks)
+    {
+      lt_debugprintf (__FILE__, __LINE__,
+		      "checking path component for symlinks: %s\n",
+		      tmp_pathspec);
+      if (lstat (tmp_pathspec, &s) == 0)
+	{
+	  if (S_ISLNK (s.st_mode) != 0)
+	    {
+	      has_symlinks = 1;
+	      break;
+	    }
+
+	  /* search backwards for last DIR_SEPARATOR */
+	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
+	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+	    p--;
+	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+	    {
+	      /* no more DIR_SEPARATORS left */
+	      break;
+	    }
+	  *p = '\0';
+	}
+      else
+	{
+	  lt_fatal (__FILE__, __LINE__,
+		    "error accessing file \"%s\": %s",
+		    tmp_pathspec, nonnull (strerror (errno)));
+	}
+    }
+  XFREE (tmp_pathspec);
+
+  if (!has_symlinks)
+    {
+      return xstrdup (pathspec);
+    }
+
+  tmp_pathspec = realpath (pathspec, buf);
+  if (tmp_pathspec == 0)
+    {
+      lt_fatal (__FILE__, __LINE__,
+		"could not follow symlinks for %s", pathspec);
+    }
+  return xstrdup (tmp_pathspec);
+#endif
+}
+
+char *
+strendzap (char *str, const char *pat)
+{
+  size_t len, patlen;
+
+  assert (str != NULL);
+  assert (pat != NULL);
+
+  len = strlen (str);
+  patlen = strlen (pat);
+
+  if (patlen <= len)
+    {
+      str += len - patlen;
+      if (STREQ (str, pat))
+	*str = '\0';
+    }
+  return str;
+}
+
+void
+lt_debugprintf (const char *file, int line, const char *fmt, ...)
+{
+  va_list args;
+  if (lt_debug)
+    {
+      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
+      va_start (args, fmt);
+      (void) vfprintf (stderr, fmt, args);
+      va_end (args);
+    }
+}
+
+static void
+lt_error_core (int exit_status, const char *file,
+	       int line, const char *mode,
+	       const char *message, va_list ap)
+{
+  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
+
+  if (exit_status >= 0)
+    exit (exit_status);
+}
+
+void
+lt_fatal (const char *file, int line, const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
+  va_end (ap);
+}
+
+static const char *
+nonnull (const char *s)
+{
+  return s ? s : "(null)";
+}
+
+static const char *
+nonempty (const char *s)
+{
+  return (s && !*s) ? "(empty)" : nonnull (s);
+}
+
+void
+lt_setenv (const char *name, const char *value)
+{
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(lt_setenv) setting '%s' to '%s'\n",
+                  nonnull (name), nonnull (value));
+  {
+#ifdef HAVE_SETENV
+    /* always make a copy, for consistency with !HAVE_SETENV */
+    char *str = xstrdup (value);
+    setenv (name, str, 1);
+#else
+    size_t len = strlen (name) + 1 + strlen (value) + 1;
+    char *str = XMALLOC (char, len);
+    sprintf (str, "%s=%s", name, value);
+    if (putenv (str) != EXIT_SUCCESS)
+      {
+        XFREE (str);
+      }
+#endif
+  }
+}
+
+char *
+lt_extend_str (const char *orig_value, const char *add, int to_end)
+{
+  char *new_value;
+  if (orig_value && *orig_value)
+    {
+      size_t orig_value_len = strlen (orig_value);
+      size_t add_len = strlen (add);
+      new_value = XMALLOC (char, add_len + orig_value_len + 1);
+      if (to_end)
+        {
+          strcpy (new_value, orig_value);
+          strcpy (new_value + orig_value_len, add);
+        }
+      else
+        {
+          strcpy (new_value, add);
+          strcpy (new_value + add_len, orig_value);
+        }
+    }
+  else
+    {
+      new_value = xstrdup (add);
+    }
+  return new_value;
+}
+
+void
+lt_update_exe_path (const char *name, const char *value)
+{
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      /* some systems can't cope with a ':'-terminated path #' */
+      size_t len = strlen (new_value);
+      while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+        {
+          new_value[--len] = '\0';
+        }
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+void
+lt_update_lib_path (const char *name, const char *value)
+{
+  lt_debugprintf (__FILE__, __LINE__,
+		  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+                  nonnull (name), nonnull (value));
+
+  if (name && *name && value && *value)
+    {
+      char *new_value = lt_extend_str (getenv (name), value, 0);
+      lt_setenv (name, new_value);
+      XFREE (new_value);
+    }
+}
+
+EOF
+	    case $host_os in
+	      mingw*)
+		cat <<"EOF"
+
+/* Prepares an argument vector before calling spawn().
+   Note that spawn() does not by itself call the command interpreter
+     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
+      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+         GetVersionEx(&v);
+         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
+      }) ? "cmd.exe" : "command.com").
+   Instead it simply concatenates the arguments, separated by ' ', and calls
+   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
+   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
+   special way:
+   - Space and tab are interpreted as delimiters. They are not treated as
+     delimiters if they are surrounded by double quotes: "...".
+   - Unescaped double quotes are removed from the input. Their only effect is
+     that within double quotes, space and tab are treated like normal
+     characters.
+   - Backslashes not followed by double quotes are not special.
+   - But 2*n+1 backslashes followed by a double quote become
+     n backslashes followed by a double quote (n >= 0):
+       \" -> "
+       \\\" -> \"
+       \\\\\" -> \\"
+ */
+#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+char **
+prepare_spawn (char **argv)
+{
+  size_t argc;
+  char **new_argv;
+  size_t i;
+
+  /* Count number of arguments.  */
+  for (argc = 0; argv[argc] != NULL; argc++)
+    ;
+
+  /* Allocate new argument vector.  */
+  new_argv = XMALLOC (char *, argc + 1);
+
+  /* Put quoted arguments into the new argument vector.  */
+  for (i = 0; i < argc; i++)
+    {
+      const char *string = argv[i];
+
+      if (string[0] == '\0')
+	new_argv[i] = xstrdup ("\"\"");
+      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
+	{
+	  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
+	  size_t length;
+	  unsigned int backslashes;
+	  const char *s;
+	  char *quoted_string;
+	  char *p;
+
+	  length = 0;
+	  backslashes = 0;
+	  if (quote_around)
+	    length++;
+	  for (s = string; *s != '\0'; s++)
+	    {
+	      char c = *s;
+	      if (c == '"')
+		length += backslashes + 1;
+	      length++;
+	      if (c == '\\')
+		backslashes++;
+	      else
+		backslashes = 0;
+	    }
+	  if (quote_around)
+	    length += backslashes + 1;
+
+	  quoted_string = XMALLOC (char, length + 1);
+
+	  p = quoted_string;
+	  backslashes = 0;
+	  if (quote_around)
+	    *p++ = '"';
+	  for (s = string; *s != '\0'; s++)
+	    {
+	      char c = *s;
+	      if (c == '"')
+		{
+		  unsigned int j;
+		  for (j = backslashes + 1; j > 0; j--)
+		    *p++ = '\\';
+		}
+	      *p++ = c;
+	      if (c == '\\')
+		backslashes++;
+	      else
+		backslashes = 0;
+	    }
+	  if (quote_around)
+	    {
+	      unsigned int j;
+	      for (j = backslashes; j > 0; j--)
+		*p++ = '\\';
+	      *p++ = '"';
+	    }
+	  *p = '\0';
+
+	  new_argv[i] = quoted_string;
+	}
+      else
+	new_argv[i] = (char *) string;
+    }
+  new_argv[argc] = NULL;
+
+  return new_argv;
+}
+EOF
+		;;
+	    esac
+
+            cat <<"EOF"
+void lt_dump_script (FILE* f)
+{
+EOF
+	    func_emit_wrapper yes |
+	      $SED -n -e '
+s/^\(.\{79\}\)\(..*\)/\1\
+\2/
+h
+s/\([\\"]\)/\\\1/g
+s/$/\\n/
+s/\([^\n]*\).*/  fputs ("\1", f);/p
+g
+D'
+            cat <<"EOF"
+}
+EOF
+}
+# end: func_emit_cwrapperexe_src
+
+# func_win32_import_lib_p ARG
+# True if ARG is an import lib, as indicated by $file_magic_cmd
+func_win32_import_lib_p ()
+{
+    $debug_cmd
+
+    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
+    *import*) : ;;
+    *) false ;;
+    esac
+}
+
+# func_suncc_cstd_abi
+# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!!
+# Several compiler flags select an ABI that is incompatible with the
+# Cstd library. Avoid specifying it if any are in CXXFLAGS.
+func_suncc_cstd_abi ()
+{
+    $debug_cmd
+
+    case " $compile_command " in
+    *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*)
+      suncc_use_cstd_abi=no
+      ;;
+    *)
+      suncc_use_cstd_abi=yes
+      ;;
+    esac
+}
+
+# func_mode_link arg...
+func_mode_link ()
+{
+    $debug_cmd
+
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # what system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
+
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll that has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args=$nonopt
+    base_compile="$nonopt $@"
+    compile_command=$nonopt
+    finalize_command=$nonopt
+
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+    new_inherited_linker_flags=
+
+    avoid_version=no
+    bindir=
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    os2dllname=
+    non_pic_objects=
+    precious_files_regex=
+    prefer_static_libs=no
+    preload=false
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+    weak_libs=
+    single_module=$wl-single_module
+    func_infer_tag $base_compile
+
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -shared)
+	test yes != "$build_libtool_libs" \
+	  && func_fatal_configuration "cannot build a shared library"
+	build_old_libs=no
+	break
+	;;
+      -all-static | -static | -static-libtool-libs)
+	case $arg in
+	-all-static)
+	  if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then
+	    func_warning "complete static linking is impossible in this configuration"
+	  fi
+	  if test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	-static)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=built
+	  ;;
+	-static-libtool-libs)
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	  prefer_static_libs=yes
+	  ;;
+	esac
+	build_libtool_libs=no
+	build_old_libs=yes
+	break
+	;;
+      esac
+    done
+
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg=$1
+      shift
+      func_quote_for_eval "$arg"
+      qarg=$func_quote_for_eval_unquoted_result
+      func_append libtool_args " $func_quote_for_eval_result"
+
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+	case $prev in
+	output)
+	  func_append compile_command " @OUTPUT@"
+	  func_append finalize_command " @OUTPUT@"
+	  ;;
+	esac
+
+	case $prev in
+	bindir)
+	  bindir=$arg
+	  prev=
+	  continue
+	  ;;
+	dlfiles|dlprefiles)
+	  $preload || {
+	    # Add the symbol object into the linking commands.
+	    func_append compile_command " @SYMFILE@"
+	    func_append finalize_command " @SYMFILE@"
+	    preload=:
+	  }
+	  case $arg in
+	  *.la | *.lo) ;;  # We handle these cases below.
+	  force)
+	    if test no = "$dlself"; then
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  self)
+	    if test dlprefiles = "$prev"; then
+	      dlself=yes
+	    elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then
+	      dlself=yes
+	    else
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  *)
+	    if test dlfiles = "$prev"; then
+	      func_append dlfiles " $arg"
+	    else
+	      func_append dlprefiles " $arg"
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  esac
+	  ;;
+	expsyms)
+	  export_symbols=$arg
+	  test -f "$arg" \
+	    || func_fatal_error "symbol file '$arg' does not exist"
+	  prev=
+	  continue
+	  ;;
+	expsyms_regex)
+	  export_symbols_regex=$arg
+	  prev=
+	  continue
+	  ;;
+	framework)
+	  case $host in
+	    *-*-darwin*)
+	      case "$deplibs " in
+		*" $qarg.ltframework "*) ;;
+		*) func_append deplibs " $qarg.ltframework" # this is fixed later
+		   ;;
+	      esac
+	      ;;
+	  esac
+	  prev=
+	  continue
+	  ;;
+	inst_prefix)
+	  inst_prefix_dir=$arg
+	  prev=
+	  continue
+	  ;;
+	mllvm)
+	  # Clang does not use LLVM to link, so we can simply discard any
+	  # '-mllvm $arg' options when doing the link step.
+	  prev=
+	  continue
+	  ;;
+	objectlist)
+	  if test -f "$arg"; then
+	    save_arg=$arg
+	    moreargs=
+	    for fil in `cat "$save_arg"`
+	    do
+#	      func_append moreargs " $fil"
+	      arg=$fil
+	      # A libtool-controlled object.
+
+	      # Check to see that this really is a libtool object.
+	      if func_lalib_unsafe_p "$arg"; then
+		pic_object=
+		non_pic_object=
+
+		# Read the .lo file
+		func_source "$arg"
+
+		if test -z "$pic_object" ||
+		   test -z "$non_pic_object" ||
+		   test none = "$pic_object" &&
+		   test none = "$non_pic_object"; then
+		  func_fatal_error "cannot find name of object for '$arg'"
+		fi
+
+		# Extract subdirectory from the argument.
+		func_dirname "$arg" "/" ""
+		xdir=$func_dirname_result
+
+		if test none != "$pic_object"; then
+		  # Prepend the subdirectory the object is found in.
+		  pic_object=$xdir$pic_object
+
+		  if test dlfiles = "$prev"; then
+		    if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
+		      func_append dlfiles " $pic_object"
+		      prev=
+		      continue
+		    else
+		      # If libtool objects are unsupported, then we need to preload.
+		      prev=dlprefiles
+		    fi
+		  fi
+
+		  # CHECK ME:  I think I busted this.  -Ossama
+		  if test dlprefiles = "$prev"; then
+		    # Preload the old-style object.
+		    func_append dlprefiles " $pic_object"
+		    prev=
+		  fi
+
+		  # A PIC object.
+		  func_append libobjs " $pic_object"
+		  arg=$pic_object
+		fi
+
+		# Non-PIC object.
+		if test none != "$non_pic_object"; then
+		  # Prepend the subdirectory the object is found in.
+		  non_pic_object=$xdir$non_pic_object
+
+		  # A standard non-PIC object
+		  func_append non_pic_objects " $non_pic_object"
+		  if test -z "$pic_object" || test none = "$pic_object"; then
+		    arg=$non_pic_object
+		  fi
+		else
+		  # If the PIC object exists, use it instead.
+		  # $xdir was prepended to $pic_object above.
+		  non_pic_object=$pic_object
+		  func_append non_pic_objects " $non_pic_object"
+		fi
+	      else
+		# Only an error if not doing a dry-run.
+		if $opt_dry_run; then
+		  # Extract subdirectory from the argument.
+		  func_dirname "$arg" "/" ""
+		  xdir=$func_dirname_result
+
+		  func_lo2o "$arg"
+		  pic_object=$xdir$objdir/$func_lo2o_result
+		  non_pic_object=$xdir$func_lo2o_result
+		  func_append libobjs " $pic_object"
+		  func_append non_pic_objects " $non_pic_object"
+	        else
+		  func_fatal_error "'$arg' is not a valid libtool object"
+		fi
+	      fi
+	    done
+	  else
+	    func_fatal_error "link input file '$arg' does not exist"
+	  fi
+	  arg=$save_arg
+	  prev=
+	  continue
+	  ;;
+	os2dllname)
+	  os2dllname=$arg
+	  prev=
+	  continue
+	  ;;
+	precious_regex)
+	  precious_files_regex=$arg
+	  prev=
+	  continue
+	  ;;
+	release)
+	  release=-$arg
+	  prev=
+	  continue
+	  ;;
+	rpath | xrpath)
+	  # We need an absolute path.
+	  case $arg in
+	  [\\/]* | [A-Za-z]:[\\/]*) ;;
+	  *)
+	    func_fatal_error "only absolute run-paths are allowed"
+	    ;;
+	  esac
+	  if test rpath = "$prev"; then
+	    case "$rpath " in
+	    *" $arg "*) ;;
+	    *) func_append rpath " $arg" ;;
+	    esac
+	  else
+	    case "$xrpath " in
+	    *" $arg "*) ;;
+	    *) func_append xrpath " $arg" ;;
+	    esac
+	  fi
+	  prev=
+	  continue
+	  ;;
+	shrext)
+	  shrext_cmds=$arg
+	  prev=
+	  continue
+	  ;;
+	weak)
+	  func_append weak_libs " $arg"
+	  prev=
+	  continue
+	  ;;
+	xcclinker)
+	  func_append linker_flags " $qarg"
+	  func_append compiler_flags " $qarg"
+	  prev=
+	  func_append compile_command " $qarg"
+	  func_append finalize_command " $qarg"
+	  continue
+	  ;;
+	xcompiler)
+	  func_append compiler_flags " $qarg"
+	  prev=
+	  func_append compile_command " $qarg"
+	  func_append finalize_command " $qarg"
+	  continue
+	  ;;
+	xlinker)
+	  func_append linker_flags " $qarg"
+	  func_append compiler_flags " $wl$qarg"
+	  prev=
+	  func_append compile_command " $wl$qarg"
+	  func_append finalize_command " $wl$qarg"
+	  continue
+	  ;;
+	*)
+	  eval "$prev=\"\$arg\""
+	  prev=
+	  continue
+	  ;;
+	esac
+      fi # test -n "$prev"
+
+      prevarg=$arg
+
+      case $arg in
+      -all-static)
+	if test -n "$link_static_flag"; then
+	  # See comment for -static flag below, for more details.
+	  func_append compile_command " $link_static_flag"
+	  func_append finalize_command " $link_static_flag"
+	fi
+	continue
+	;;
+
+      -allow-undefined)
+	# FIXME: remove this flag sometime in the future.
+	func_fatal_error "'-allow-undefined' must not be used because it is the default"
+	;;
+
+      -avoid-version)
+	avoid_version=yes
+	continue
+	;;
+
+      -bindir)
+	prev=bindir
+	continue
+	;;
+
+      -dlopen)
+	prev=dlfiles
+	continue
+	;;
+
+      -dlpreopen)
+	prev=dlprefiles
+	continue
+	;;
+
+      -export-dynamic)
+	export_dynamic=yes
+	continue
+	;;
+
+      -export-symbols | -export-symbols-regex)
+	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	  func_fatal_error "more than one -exported-symbols argument is not allowed"
+	fi
+	if test X-export-symbols = "X$arg"; then
+	  prev=expsyms
+	else
+	  prev=expsyms_regex
+	fi
+	continue
+	;;
+
+      -framework)
+	prev=framework
+	continue
+	;;
+
+      -inst-prefix-dir)
+	prev=inst_prefix
+	continue
+	;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+	case $with_gcc/$host in
+	no/*-*-irix* | /*-*-irix*)
+	  func_append compile_command " $arg"
+	  func_append finalize_command " $arg"
+	  ;;
+	esac
+	continue
+	;;
+
+      -L*)
+	func_stripname "-L" '' "$arg"
+	if test -z "$func_stripname_result"; then
+	  if test "$#" -gt 0; then
+	    func_fatal_error "require no space between '-L' and '$1'"
+	  else
+	    func_fatal_error "need path for '-L' option"
+	  fi
+	fi
+	func_resolve_sysroot "$func_stripname_result"
+	dir=$func_resolve_sysroot_result
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  absdir=`cd "$dir" && pwd`
+	  test -z "$absdir" && \
+	    func_fatal_error "cannot determine absolute directory name of '$dir'"
+	  dir=$absdir
+	  ;;
+	esac
+	case "$deplibs " in
+	*" -L$dir "* | *" $arg "*)
+	  # Will only happen for absolute or sysroot arguments
+	  ;;
+	*)
+	  # Preserve sysroot, but never include relative directories
+	  case $dir in
+	    [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
+	    *) func_append deplibs " -L$dir" ;;
+	  esac
+	  func_append lib_search_path " $dir"
+	  ;;
+	esac
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+	  testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$dir:"*) ;;
+	  ::) dllsearchpath=$dir;;
+	  *) func_append dllsearchpath ":$dir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  ::) dllsearchpath=$testbindir;;
+	  *) func_append dllsearchpath ":$testbindir";;
+	  esac
+	  ;;
+	esac
+	continue
+	;;
+
+      -l*)
+	if test X-lc = "X$arg" || test X-lm = "X$arg"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
+	    # These systems don't actually have a C or math library (as such)
+	    continue
+	    ;;
+	  *-*-os2*)
+	    # These systems don't actually have a C library (as such)
+	    test X-lc = "X$arg" && continue
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test X-lc = "X$arg" && continue
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C and math libraries are in the System framework
+	    func_append deplibs " System.ltframework"
+	    continue
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    test X-lc = "X$arg" && continue
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    test X-lc = "X$arg" && continue
+	    ;;
+	  esac
+	elif test X-lc_r = "X$arg"; then
+	 case $host in
+	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*)
+	   # Do not include libc_r directly, use -pthread flag.
+	   continue
+	   ;;
+	 esac
+	fi
+	func_append deplibs " $arg"
+	continue
+	;;
+
+      -mllvm)
+	prev=mllvm
+	continue
+	;;
+
+      -module)
+	module=yes
+	continue
+	;;
+
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
+      # classes, name mangling, and exception handling.
+      # Darwin uses the -arch flag to determine output architecture.
+      -model|-arch|-isysroot|--sysroot)
+	func_append compiler_flags " $arg"
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+	prev=xcompiler
+	continue
+	;;
+
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+	func_append compiler_flags " $arg"
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+	case "$new_inherited_linker_flags " in
+	    *" $arg "*) ;;
+	    * ) func_append new_inherited_linker_flags " $arg" ;;
+	esac
+	continue
+	;;
+
+      -multi_module)
+	single_module=$wl-multi_module
+	continue
+	;;
+
+      -no-fast-install)
+	fast_install=no
+	continue
+	;;
+
+      -no-install)
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
+	  # The PATH hackery in wrapper scripts is required on Windows
+	  # and Darwin in order for the loader to find any dlls it needs.
+	  func_warning "'-no-install' is ignored for $host"
+	  func_warning "assuming '-no-fast-install' instead"
+	  fast_install=no
+	  ;;
+	*) no_install=yes ;;
+	esac
+	continue
+	;;
+
+      -no-undefined)
+	allow_undefined=no
+	continue
+	;;
+
+      -objectlist)
+	prev=objectlist
+	continue
+	;;
+
+      -os2dllname)
+	prev=os2dllname
+	continue
+	;;
+
+      -o) prev=output ;;
+
+      -precious-files-regex)
+	prev=precious_regex
+	continue
+	;;
+
+      -release)
+	prev=release
+	continue
+	;;
+
+      -rpath)
+	prev=rpath
+	continue
+	;;
+
+      -R)
+	prev=xrpath
+	continue
+	;;
+
+      -R*)
+	func_stripname '-R' '' "$arg"
+	dir=$func_stripname_result
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	=*)
+	  func_stripname '=' '' "$dir"
+	  dir=$lt_sysroot$func_stripname_result
+	  ;;
+	*)
+	  func_fatal_error "only absolute run-paths are allowed"
+	  ;;
+	esac
+	case "$xrpath " in
+	*" $dir "*) ;;
+	*) func_append xrpath " $dir" ;;
+	esac
+	continue
+	;;
+
+      -shared)
+	# The effects of -shared are defined in a previous loop.
+	continue
+	;;
+
+      -shrext)
+	prev=shrext
+	continue
+	;;
+
+      -static | -static-libtool-libs)
+	# The effects of -static are defined in a previous loop.
+	# We used to do the same as -all-static on platforms that
+	# didn't have a PIC flag, but the assumption that the effects
+	# would be equivalent was wrong.  It would break on at least
+	# Digital Unix and AIX.
+	continue
+	;;
+
+      -thread-safe)
+	thread_safe=yes
+	continue
+	;;
+
+      -version-info)
+	prev=vinfo
+	continue
+	;;
+
+      -version-number)
+	prev=vinfo
+	vinfo_number=yes
+	continue
+	;;
+
+      -weak)
+        prev=weak
+	continue
+	;;
+
+      -Wc,*)
+	func_stripname '-Wc,' '' "$arg"
+	args=$func_stripname_result
+	arg=
+	save_ifs=$IFS; IFS=,
+	for flag in $args; do
+	  IFS=$save_ifs
+          func_quote_for_eval "$flag"
+	  func_append arg " $func_quote_for_eval_result"
+	  func_append compiler_flags " $func_quote_for_eval_result"
+	done
+	IFS=$save_ifs
+	func_stripname ' ' '' "$arg"
+	arg=$func_stripname_result
+	;;
+
+      -Wl,*)
+	func_stripname '-Wl,' '' "$arg"
+	args=$func_stripname_result
+	arg=
+	save_ifs=$IFS; IFS=,
+	for flag in $args; do
+	  IFS=$save_ifs
+          func_quote_for_eval "$flag"
+	  func_append arg " $wl$func_quote_for_eval_result"
+	  func_append compiler_flags " $wl$func_quote_for_eval_result"
+	  func_append linker_flags " $func_quote_for_eval_result"
+	done
+	IFS=$save_ifs
+	func_stripname ' ' '' "$arg"
+	arg=$func_stripname_result
+	;;
+
+      -Xcompiler)
+	prev=xcompiler
+	continue
+	;;
+
+      -Xlinker)
+	prev=xlinker
+	continue
+	;;
+
+      -XCClinker)
+	prev=xcclinker
+	continue
+	;;
+
+      # -msg_* for osf cc
+      -msg_*)
+	func_quote_for_eval "$arg"
+	arg=$func_quote_for_eval_result
+	;;
+
+      # Flags to be passed through unchanged, with rationale:
+      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
+      # -r[0-9][0-9]*        specify processor for the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
+      # +DA*, +DD*           enable 64-bit mode for the HP compiler
+      # -q*                  compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
+      # -F/path              path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
+      # -fstack-protector*   stack protector flags for GCC
+      # @file                GCC response files
+      # -tp=*                Portland pgcc target processor selection
+      # --sysroot=*          for sysroot support
+      # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+      # -stdlib=*            select c++ std lib with clang
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+      -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
+        func_quote_for_eval "$arg"
+	arg=$func_quote_for_eval_result
+        func_append compile_command " $arg"
+        func_append finalize_command " $arg"
+        func_append compiler_flags " $arg"
+        continue
+        ;;
+
+      -Z*)
+        if test os2 = "`expr $host : '.*\(os2\)'`"; then
+          # OS/2 uses -Zxxx to specify OS/2-specific options
+	  compiler_flags="$compiler_flags $arg"
+	  func_append compile_command " $arg"
+	  func_append finalize_command " $arg"
+	  case $arg in
+	  -Zlinker | -Zstack)
+	    prev=xcompiler
+	    ;;
+	  esac
+	  continue
+        else
+	  # Otherwise treat like 'Some other compiler flag' below
+	  func_quote_for_eval "$arg"
+	  arg=$func_quote_for_eval_result
+        fi
+	;;
+
+      # Some other compiler flag.
+      -* | +*)
+        func_quote_for_eval "$arg"
+	arg=$func_quote_for_eval_result
+	;;
+
+      *.$objext)
+	# A standard object.
+	func_append objs " $arg"
+	;;
+
+      *.lo)
+	# A libtool-controlled object.
+
+	# Check to see that this really is a libtool object.
+	if func_lalib_unsafe_p "$arg"; then
+	  pic_object=
+	  non_pic_object=
+
+	  # Read the .lo file
+	  func_source "$arg"
+
+	  if test -z "$pic_object" ||
+	     test -z "$non_pic_object" ||
+	     test none = "$pic_object" &&
+	     test none = "$non_pic_object"; then
+	    func_fatal_error "cannot find name of object for '$arg'"
+	  fi
+
+	  # Extract subdirectory from the argument.
+	  func_dirname "$arg" "/" ""
+	  xdir=$func_dirname_result
+
+	  test none = "$pic_object" || {
+	    # Prepend the subdirectory the object is found in.
+	    pic_object=$xdir$pic_object
+
+	    if test dlfiles = "$prev"; then
+	      if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
+		func_append dlfiles " $pic_object"
+		prev=
+		continue
+	      else
+		# If libtool objects are unsupported, then we need to preload.
+		prev=dlprefiles
+	      fi
+	    fi
+
+	    # CHECK ME:  I think I busted this.  -Ossama
+	    if test dlprefiles = "$prev"; then
+	      # Preload the old-style object.
+	      func_append dlprefiles " $pic_object"
+	      prev=
+	    fi
+
+	    # A PIC object.
+	    func_append libobjs " $pic_object"
+	    arg=$pic_object
+	  }
+
+	  # Non-PIC object.
+	  if test none != "$non_pic_object"; then
+	    # Prepend the subdirectory the object is found in.
+	    non_pic_object=$xdir$non_pic_object
+
+	    # A standard non-PIC object
+	    func_append non_pic_objects " $non_pic_object"
+	    if test -z "$pic_object" || test none = "$pic_object"; then
+	      arg=$non_pic_object
+	    fi
+	  else
+	    # If the PIC object exists, use it instead.
+	    # $xdir was prepended to $pic_object above.
+	    non_pic_object=$pic_object
+	    func_append non_pic_objects " $non_pic_object"
+	  fi
+	else
+	  # Only an error if not doing a dry-run.
+	  if $opt_dry_run; then
+	    # Extract subdirectory from the argument.
+	    func_dirname "$arg" "/" ""
+	    xdir=$func_dirname_result
+
+	    func_lo2o "$arg"
+	    pic_object=$xdir$objdir/$func_lo2o_result
+	    non_pic_object=$xdir$func_lo2o_result
+	    func_append libobjs " $pic_object"
+	    func_append non_pic_objects " $non_pic_object"
+	  else
+	    func_fatal_error "'$arg' is not a valid libtool object"
+	  fi
+	fi
+	;;
+
+      *.$libext)
+	# An archive.
+	func_append deplibs " $arg"
+	func_append old_deplibs " $arg"
+	continue
+	;;
+
+      *.la)
+	# A libtool-controlled library.
+
+	func_resolve_sysroot "$arg"
+	if test dlfiles = "$prev"; then
+	  # This library was specified with -dlopen.
+	  func_append dlfiles " $func_resolve_sysroot_result"
+	  prev=
+	elif test dlprefiles = "$prev"; then
+	  # The library was specified with -dlpreopen.
+	  func_append dlprefiles " $func_resolve_sysroot_result"
+	  prev=
+	else
+	  func_append deplibs " $func_resolve_sysroot_result"
+	fi
+	continue
+	;;
+
+      # Some other compiler argument.
+      *)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	func_quote_for_eval "$arg"
+	arg=$func_quote_for_eval_result
+	;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+	func_append compile_command " $arg"
+	func_append finalize_command " $arg"
+      fi
+    done # argument parsing loop
+
+    test -n "$prev" && \
+      func_fatal_help "the '$prevarg' option requires an argument"
+
+    if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      func_append compile_command " $arg"
+      func_append finalize_command " $arg"
+    fi
+
+    oldlibs=
+    # calculate the name of the file, without its directory
+    func_basename "$output"
+    outputname=$func_basename_result
+    libobjs_save=$libobjs
+
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+    # Definition is injected by LT_CONFIG during libtool generation.
+    func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH"
+
+    func_dirname "$output" "/" ""
+    output_objdir=$func_dirname_result$objdir
+    func_to_tool_file "$output_objdir/"
+    tool_output_objdir=$func_to_tool_file_result
+    # Create the object directory.
+    func_mkdir_p "$output_objdir"
+
+    # Determine the type of output
+    case $output in
+    "")
+      func_fatal_help "you must specify an output file"
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    specialdeplibs=
+
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if $opt_preserve_dup_deps; then
+	case "$libs " in
+	*" $deplib "*) func_append specialdeplibs " $deplib" ;;
+	esac
+      fi
+      func_append libs " $deplib"
+    done
+
+    if test lib = "$linkmode"; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if $opt_duplicate_compiler_generated_deps; then
+	for pre_post_dep in $predeps $postdeps; do
+	  case "$pre_post_deps " in
+	  *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
+	  esac
+	  func_append pre_post_deps " $pre_post_dep"
+	done
+      fi
+      pre_post_deps=
+    fi
+
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    notinst_path= # paths that contain not-installed libtool libraries
+
+    case $linkmode in
+    lib)
+	passes="conv dlpreopen link"
+	for file in $dlfiles $dlprefiles; do
+	  case $file in
+	  *.la) ;;
+	  *)
+	    func_fatal_help "libraries can '-dlopen' only libtool libraries: $file"
+	    ;;
+	  esac
+	done
+	;;
+    prog)
+	compile_deplibs=
+	finalize_deplibs=
+	alldeplibs=false
+	newdlfiles=
+	newdlprefiles=
+	passes="conv scan dlopen dlpreopen link"
+	;;
+    *)  passes="conv"
+	;;
+    esac
+
+    for pass in $passes; do
+      # The preopen pass in lib mode reverses $deplibs; put it back here
+      # so that -L comes before libs that need it for instance...
+      if test lib,link = "$linkmode,$pass"; then
+	## FIXME: Find the place where the list is rebuilt in the wrong
+	##        order, and fix it there properly
+        tmp_deplibs=
+	for deplib in $deplibs; do
+	  tmp_deplibs="$deplib $tmp_deplibs"
+	done
+	deplibs=$tmp_deplibs
+      fi
+
+      if test lib,link = "$linkmode,$pass" ||
+	 test prog,scan = "$linkmode,$pass"; then
+	libs=$deplibs
+	deplibs=
+      fi
+      if test prog = "$linkmode"; then
+	case $pass in
+	dlopen) libs=$dlfiles ;;
+	dlpreopen) libs=$dlprefiles ;;
+	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+	esac
+      fi
+      if test lib,dlpreopen = "$linkmode,$pass"; then
+	# Collect and forward deplibs of preopened libtool libs
+	for lib in $dlprefiles; do
+	  # Ignore non-libtool-libs
+	  dependency_libs=
+	  func_resolve_sysroot "$lib"
+	  case $lib in
+	  *.la)	func_source "$func_resolve_sysroot_result" ;;
+	  esac
+
+	  # Collect preopened libtool deplibs, except any this library
+	  # has declared as weak libs
+	  for deplib in $dependency_libs; do
+	    func_basename "$deplib"
+            deplib_base=$func_basename_result
+	    case " $weak_libs " in
+	    *" $deplib_base "*) ;;
+	    *) func_append deplibs " $deplib" ;;
+	    esac
+	  done
+	done
+	libs=$dlprefiles
+      fi
+      if test dlopen = "$pass"; then
+	# Collect dlpreopened libraries
+	save_deplibs=$deplibs
+	deplibs=
+      fi
+
+      for deplib in $libs; do
+	lib=
+	found=false
+	case $deplib in
+	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+	  if test prog,link = "$linkmode,$pass"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    func_append compiler_flags " $deplib"
+	    if test lib = "$linkmode"; then
+		case "$new_inherited_linker_flags " in
+		    *" $deplib "*) ;;
+		    * ) func_append new_inherited_linker_flags " $deplib" ;;
+		esac
+	    fi
+	  fi
+	  continue
+	  ;;
+	-l*)
+	  if test lib != "$linkmode" && test prog != "$linkmode"; then
+	    func_warning "'-l' is ignored for archives/objects"
+	    continue
+	  fi
+	  func_stripname '-l' '' "$deplib"
+	  name=$func_stripname_result
+	  if test lib = "$linkmode"; then
+	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+	  else
+	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+	  fi
+	  for searchdir in $searchdirs; do
+	    for search_ext in .la $std_shrext .so .a; do
+	      # Search the libtool library
+	      lib=$searchdir/lib$name$search_ext
+	      if test -f "$lib"; then
+		if test .la = "$search_ext"; then
+		  found=:
+		else
+		  found=false
+		fi
+		break 2
+	      fi
+	    done
+	  done
+	  if $found; then
+	    # deplib is a libtool library
+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+	    # We need to do some special things here, and not later.
+	    if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+	      case " $predeps $postdeps " in
+	      *" $deplib "*)
+		if func_lalib_p "$lib"; then
+		  library_names=
+		  old_library=
+		  func_source "$lib"
+		  for l in $old_library $library_names; do
+		    ll=$l
+		  done
+		  if test "X$ll" = "X$old_library"; then # only static version available
+		    found=false
+		    func_dirname "$lib" "" "."
+		    ladir=$func_dirname_result
+		    lib=$ladir/$old_library
+		    if test prog,link = "$linkmode,$pass"; then
+		      compile_deplibs="$deplib $compile_deplibs"
+		      finalize_deplibs="$deplib $finalize_deplibs"
+		    else
+		      deplibs="$deplib $deplibs"
+		      test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
+		    fi
+		    continue
+		  fi
+		fi
+		;;
+	      *) ;;
+	      esac
+	    fi
+	  else
+	    # deplib doesn't seem to be a libtool library
+	    if test prog,link = "$linkmode,$pass"; then
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      deplibs="$deplib $deplibs"
+	      test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    continue
+	  fi
+	  ;; # -l
+	*.ltframework)
+	  if test prog,link = "$linkmode,$pass"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    deplibs="$deplib $deplibs"
+	    if test lib = "$linkmode"; then
+		case "$new_inherited_linker_flags " in
+		    *" $deplib "*) ;;
+		    * ) func_append new_inherited_linker_flags " $deplib" ;;
+		esac
+	    fi
+	  fi
+	  continue
+	  ;;
+	-L*)
+	  case $linkmode in
+	  lib)
+	    deplibs="$deplib $deplibs"
+	    test conv = "$pass" && continue
+	    newdependency_libs="$deplib $newdependency_libs"
+	    func_stripname '-L' '' "$deplib"
+	    func_resolve_sysroot "$func_stripname_result"
+	    func_append newlib_search_path " $func_resolve_sysroot_result"
+	    ;;
+	  prog)
+	    if test conv = "$pass"; then
+	      deplibs="$deplib $deplibs"
+	      continue
+	    fi
+	    if test scan = "$pass"; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    func_stripname '-L' '' "$deplib"
+	    func_resolve_sysroot "$func_stripname_result"
+	    func_append newlib_search_path " $func_resolve_sysroot_result"
+	    ;;
+	  *)
+	    func_warning "'-L' is ignored for archives/objects"
+	    ;;
+	  esac # linkmode
+	  continue
+	  ;; # -L
+	-R*)
+	  if test link = "$pass"; then
+	    func_stripname '-R' '' "$deplib"
+	    func_resolve_sysroot "$func_stripname_result"
+	    dir=$func_resolve_sysroot_result
+	    # Make sure the xrpath contains only unique directories.
+	    case "$xrpath " in
+	    *" $dir "*) ;;
+	    *) func_append xrpath " $dir" ;;
+	    esac
+	  fi
+	  deplibs="$deplib $deplibs"
+	  continue
+	  ;;
+	*.la)
+	  func_resolve_sysroot "$deplib"
+	  lib=$func_resolve_sysroot_result
+	  ;;
+	*.$libext)
+	  if test conv = "$pass"; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  case $linkmode in
+	  lib)
+	    # Linking convenience modules into shared libraries is allowed,
+	    # but linking other static libraries is non-portable.
+	    case " $dlpreconveniencelibs " in
+	    *" $deplib "*) ;;
+	    *)
+	      valid_a_lib=false
+	      case $deplibs_check_method in
+		match_pattern*)
+		  set dummy $deplibs_check_method; shift
+		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
+		    | $EGREP "$match_pattern_regex" > /dev/null; then
+		    valid_a_lib=:
+		  fi
+		;;
+		pass_all)
+		  valid_a_lib=:
+		;;
+	      esac
+	      if $valid_a_lib; then
+		echo
+		$ECHO "*** Warning: Linking the shared library $output against the"
+		$ECHO "*** static library $deplib is not portable!"
+		deplibs="$deplib $deplibs"
+	      else
+		echo
+		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
+		echo "*** I have the capability to make that library automatically link in when"
+		echo "*** you link to this library.  But I can only do this if you have a"
+		echo "*** shared version of the library, which you do not appear to have"
+		echo "*** because the file extensions .$libext of this argument makes me believe"
+		echo "*** that it is just a static archive that I should not use here."
+	      fi
+	      ;;
+	    esac
+	    continue
+	    ;;
+	  prog)
+	    if test link != "$pass"; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    continue
+	    ;;
+	  esac # linkmode
+	  ;; # *.$libext
+	*.lo | *.$objext)
+	  if test conv = "$pass"; then
+	    deplibs="$deplib $deplibs"
+	  elif test prog = "$linkmode"; then
+	    if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then
+	      # If there is no dlopen support or we're linking statically,
+	      # we need to preload.
+	      func_append newdlprefiles " $deplib"
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      func_append newdlfiles " $deplib"
+	    fi
+	  fi
+	  continue
+	  ;;
+	%DEPLIBS%)
+	  alldeplibs=:
+	  continue
+	  ;;
+	esac # case $deplib
+
+	$found || test -f "$lib" \
+	  || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'"
+
+	# Check to see that this really is a libtool archive.
+	func_lalib_unsafe_p "$lib" \
+	  || func_fatal_error "'$lib' is not a valid libtool archive"
+
+	func_dirname "$lib" "" "."
+	ladir=$func_dirname_result
+
+	dlname=
+	dlopen=
+	dlpreopen=
+	libdir=
+	library_names=
+	old_library=
+	inherited_linker_flags=
+	# If the library was installed with an old release of libtool,
+	# it will not redefine variables installed, or shouldnotlink
+	installed=yes
+	shouldnotlink=no
+	avoidtemprpath=
+
+
+	# Read the .la file
+	func_source "$lib"
+
+	# Convert "-framework foo" to "foo.ltframework"
+	if test -n "$inherited_linker_flags"; then
+	  tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
+	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+	    case " $new_inherited_linker_flags " in
+	      *" $tmp_inherited_linker_flag "*) ;;
+	      *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
+	    esac
+	  done
+	fi
+	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	if test lib,link = "$linkmode,$pass" ||
+	   test prog,scan = "$linkmode,$pass" ||
+	   { test prog != "$linkmode" && test lib != "$linkmode"; }; then
+	  test -n "$dlopen" && func_append dlfiles " $dlopen"
+	  test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
+	fi
+
+	if test conv = "$pass"; then
+	  # Only check for convenience libraries
+	  deplibs="$lib $deplibs"
+	  if test -z "$libdir"; then
+	    if test -z "$old_library"; then
+	      func_fatal_error "cannot find name of link library for '$lib'"
+	    fi
+	    # It is a libtool convenience library, so add in its objects.
+	    func_append convenience " $ladir/$objdir/$old_library"
+	    func_append old_convenience " $ladir/$objdir/$old_library"
+	  elif test prog != "$linkmode" && test lib != "$linkmode"; then
+	    func_fatal_error "'$lib' is not a convenience library"
+	  fi
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    deplibs="$deplib $deplibs"
+	    if $opt_preserve_dup_deps; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+	      esac
+	    fi
+	    func_append tmp_libs " $deplib"
+	  done
+	  continue
+	fi # $pass = conv
+
+
+	# Get the name of the library we link against.
+	linklib=
+	if test -n "$old_library" &&
+	   { test yes = "$prefer_static_libs" ||
+	     test built,no = "$prefer_static_libs,$installed"; }; then
+	  linklib=$old_library
+	else
+	  for l in $old_library $library_names; do
+	    linklib=$l
+	  done
+	fi
+	if test -z "$linklib"; then
+	  func_fatal_error "cannot find name of link library for '$lib'"
+	fi
+
+	# This library was specified with -dlopen.
+	if test dlopen = "$pass"; then
+	  test -z "$libdir" \
+	    && func_fatal_error "cannot -dlopen a convenience library: '$lib'"
+	  if test -z "$dlname" ||
+	     test yes != "$dlopen_support" ||
+	     test no = "$build_libtool_libs"
+	  then
+	    # If there is no dlname, no dlopen support or we're linking
+	    # statically, we need to preload.  We also need to preload any
+	    # dependent libraries so libltdl's deplib preloader doesn't
+	    # bomb out in the load deplibs phase.
+	    func_append dlprefiles " $lib $dependency_libs"
+	  else
+	    func_append newdlfiles " $lib"
+	  fi
+	  continue
+	fi # $pass = dlopen
+
+	# We need an absolute path.
+	case $ladir in
+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;;
+	*)
+	  abs_ladir=`cd "$ladir" && pwd`
+	  if test -z "$abs_ladir"; then
+	    func_warning "cannot determine absolute directory name of '$ladir'"
+	    func_warning "passing it literally to the linker, although it might fail"
+	    abs_ladir=$ladir
+	  fi
+	  ;;
+	esac
+	func_basename "$lib"
+	laname=$func_basename_result
+
+	# Find the relevant object directory and library name.
+	if test yes = "$installed"; then
+	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    func_warning "library '$lib' was moved."
+	    dir=$ladir
+	    absdir=$abs_ladir
+	    libdir=$abs_ladir
+	  else
+	    dir=$lt_sysroot$libdir
+	    absdir=$lt_sysroot$libdir
+	  fi
+	  test yes = "$hardcode_automatic" && avoidtemprpath=yes
+	else
+	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    dir=$ladir
+	    absdir=$abs_ladir
+	    # Remove this search path later
+	    func_append notinst_path " $abs_ladir"
+	  else
+	    dir=$ladir/$objdir
+	    absdir=$abs_ladir/$objdir
+	    # Remove this search path later
+	    func_append notinst_path " $abs_ladir"
+	  fi
+	fi # $installed = yes
+	func_stripname 'lib' '.la' "$laname"
+	name=$func_stripname_result
+
+	# This library was specified with -dlpreopen.
+	if test dlpreopen = "$pass"; then
+	  if test -z "$libdir" && test prog = "$linkmode"; then
+	    func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'"
+	  fi
+	  case $host in
+	    # special handling for platforms with PE-DLLs.
+	    *cygwin* | *mingw* | *cegcc* )
+	      # Linker will automatically link against shared library if both
+	      # static and shared are present.  Therefore, ensure we extract
+	      # symbols from the import library if a shared library is present
+	      # (otherwise, the dlopen module name will be incorrect).  We do
+	      # this by putting the import library name into $newdlprefiles.
+	      # We recover the dlopen module name by 'saving' the la file
+	      # name in a special purpose variable, and (later) extracting the
+	      # dlname from the la file.
+	      if test -n "$dlname"; then
+	        func_tr_sh "$dir/$linklib"
+	        eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
+	        func_append newdlprefiles " $dir/$linklib"
+	      else
+	        func_append newdlprefiles " $dir/$old_library"
+	        # Keep a list of preopened convenience libraries to check
+	        # that they are being used correctly in the link pass.
+	        test -z "$libdir" && \
+	          func_append dlpreconveniencelibs " $dir/$old_library"
+	      fi
+	    ;;
+	    * )
+	      # Prefer using a static library (so that no silly _DYNAMIC symbols
+	      # are required to link).
+	      if test -n "$old_library"; then
+	        func_append newdlprefiles " $dir/$old_library"
+	        # Keep a list of preopened convenience libraries to check
+	        # that they are being used correctly in the link pass.
+	        test -z "$libdir" && \
+	          func_append dlpreconveniencelibs " $dir/$old_library"
+	      # Otherwise, use the dlname, so that lt_dlopen finds it.
+	      elif test -n "$dlname"; then
+	        func_append newdlprefiles " $dir/$dlname"
+	      else
+	        func_append newdlprefiles " $dir/$linklib"
+	      fi
+	    ;;
+	  esac
+	fi # $pass = dlpreopen
+
+	if test -z "$libdir"; then
+	  # Link the convenience library
+	  if test lib = "$linkmode"; then
+	    deplibs="$dir/$old_library $deplibs"
+	  elif test prog,link = "$linkmode,$pass"; then
+	    compile_deplibs="$dir/$old_library $compile_deplibs"
+	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
+	  else
+	    deplibs="$lib $deplibs" # used for prog,scan pass
+	  fi
+	  continue
+	fi
+
+
+	if test prog = "$linkmode" && test link != "$pass"; then
+	  func_append newlib_search_path " $ladir"
+	  deplibs="$lib $deplibs"
+
+	  linkalldeplibs=false
+	  if test no != "$link_all_deplibs" || test -z "$library_names" ||
+	     test no = "$build_libtool_libs"; then
+	    linkalldeplibs=:
+	  fi
+
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    case $deplib in
+	    -L*) func_stripname '-L' '' "$deplib"
+	         func_resolve_sysroot "$func_stripname_result"
+	         func_append newlib_search_path " $func_resolve_sysroot_result"
+		 ;;
+	    esac
+	    # Need to link against all dependency_libs?
+	    if $linkalldeplibs; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      # Need to hardcode shared library paths
+	      # or/and link against static libraries
+	      newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    if $opt_preserve_dup_deps; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+	      esac
+	    fi
+	    func_append tmp_libs " $deplib"
+	  done # for deplib
+	  continue
+	fi # $linkmode = prog...
+
+	if test prog,link = "$linkmode,$pass"; then
+	  if test -n "$library_names" &&
+	     { { test no = "$prefer_static_libs" ||
+	         test built,yes = "$prefer_static_libs,$installed"; } ||
+	       test -z "$old_library"; }; then
+	    # We need to hardcode the library path
+	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then
+	      # Make sure the rpath contains only unique directories.
+	      case $temp_rpath: in
+	      *"$absdir:"*) ;;
+	      *) func_append temp_rpath "$absdir:" ;;
+	      esac
+	    fi
+
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) func_append compile_rpath " $absdir" ;;
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) func_append finalize_rpath " $libdir" ;;
+	      esac
+	      ;;
+	    esac
+	  fi # $linkmode,$pass = prog,link...
+
+	  if $alldeplibs &&
+	     { test pass_all = "$deplibs_check_method" ||
+	       { test yes = "$build_libtool_libs" &&
+		 test -n "$library_names"; }; }; then
+	    # We only need to search for static libraries
+	    continue
+	  fi
+	fi
+
+	link_static=no # Whether the deplib will be linked statically
+	use_static_libs=$prefer_static_libs
+	if test built = "$use_static_libs" && test yes = "$installed"; then
+	  use_static_libs=no
+	fi
+	if test -n "$library_names" &&
+	   { test no = "$use_static_libs" || test -z "$old_library"; }; then
+	  case $host in
+	  *cygwin* | *mingw* | *cegcc* | *os2*)
+	      # No point in relinking DLLs because paths are not encoded
+	      func_append notinst_deplibs " $lib"
+	      need_relink=no
+	    ;;
+	  *)
+	    if test no = "$installed"; then
+	      func_append notinst_deplibs " $lib"
+	      need_relink=yes
+	    fi
+	    ;;
+	  esac
+	  # This is a shared library
+
+	  # Warn about portability, can't link against -module's on some
+	  # systems (darwin).  Don't bleat about dlopened modules though!
+	  dlopenmodule=
+	  for dlpremoduletest in $dlprefiles; do
+	    if test "X$dlpremoduletest" = "X$lib"; then
+	      dlopenmodule=$dlpremoduletest
+	      break
+	    fi
+	  done
+	  if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then
+	    echo
+	    if test prog = "$linkmode"; then
+	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
+	    else
+	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
+	    fi
+	    $ECHO "*** $linklib is not portable!"
+	  fi
+	  if test lib = "$linkmode" &&
+	     test yes = "$hardcode_into_libs"; then
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) func_append compile_rpath " $absdir" ;;
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) func_append finalize_rpath " $libdir" ;;
+	      esac
+	      ;;
+	    esac
+	  fi
+
+	  if test -n "$old_archive_from_expsyms_cmds"; then
+	    # figure out the soname
+	    set dummy $library_names
+	    shift
+	    realname=$1
+	    shift
+	    libname=`eval "\\$ECHO \"$libname_spec\""`
+	    # use dlname if we got it. it's perfectly good, no?
+	    if test -n "$dlname"; then
+	      soname=$dlname
+	    elif test -n "$soname_spec"; then
+	      # bleh windows
+	      case $host in
+	      *cygwin* | mingw* | *cegcc* | *os2*)
+	        func_arith $current - $age
+		major=$func_arith_result
+		versuffix=-$major
+		;;
+	      esac
+	      eval soname=\"$soname_spec\"
+	    else
+	      soname=$realname
+	    fi
+
+	    # Make a new name for the extract_expsyms_cmds to use
+	    soroot=$soname
+	    func_basename "$soroot"
+	    soname=$func_basename_result
+	    func_stripname 'lib' '.dll' "$soname"
+	    newlib=libimp-$func_stripname_result.a
+
+	    # If the library has no export list, then create one now
+	    if test -f "$output_objdir/$soname-def"; then :
+	    else
+	      func_verbose "extracting exported symbol list from '$soname'"
+	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
+	    fi
+
+	    # Create $newlib
+	    if test -f "$output_objdir/$newlib"; then :; else
+	      func_verbose "generating import library for '$soname'"
+	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
+	    fi
+	    # make sure the library variables are pointing to the new library
+	    dir=$output_objdir
+	    linklib=$newlib
+	  fi # test -n "$old_archive_from_expsyms_cmds"
+
+	  if test prog = "$linkmode" || test relink != "$opt_mode"; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    lib_linked=yes
+	    case $hardcode_action in
+	    immediate | unsupported)
+	      if test no = "$hardcode_direct"; then
+		add=$dir/$linklib
+		case $host in
+		  *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
+		  *-*-sysv4*uw2*) add_dir=-L$dir ;;
+		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+		    *-*-unixware7*) add_dir=-L$dir ;;
+		  *-*-darwin* )
+		    # if the lib is a (non-dlopened) module then we cannot
+		    # link against it, someone is ignoring the earlier warnings
+		    if /usr/bin/file -L $add 2> /dev/null |
+			 $GREP ": [^:]* bundle" >/dev/null; then
+		      if test "X$dlopenmodule" != "X$lib"; then
+			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
+			if test -z "$old_library"; then
+			  echo
+			  echo "*** And there doesn't seem to be a static archive available"
+			  echo "*** The link will probably fail, sorry"
+			else
+			  add=$dir/$old_library
+			fi
+		      elif test -n "$old_library"; then
+			add=$dir/$old_library
+		      fi
+		    fi
+		esac
+	      elif test no = "$hardcode_minus_L"; then
+		case $host in
+		*-*-sunos*) add_shlibpath=$dir ;;
+		esac
+		add_dir=-L$dir
+		add=-l$name
+	      elif test no = "$hardcode_shlibpath_var"; then
+		add_shlibpath=$dir
+		add=-l$name
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    relink)
+	      if test yes = "$hardcode_direct" &&
+	         test no = "$hardcode_direct_absolute"; then
+		add=$dir/$linklib
+	      elif test yes = "$hardcode_minus_L"; then
+		add_dir=-L$absdir
+		# Try looking first in the location we're being installed to.
+		if test -n "$inst_prefix_dir"; then
+		  case $libdir in
+		    [\\/]*)
+		      func_append add_dir " -L$inst_prefix_dir$libdir"
+		      ;;
+		  esac
+		fi
+		add=-l$name
+	      elif test yes = "$hardcode_shlibpath_var"; then
+		add_shlibpath=$dir
+		add=-l$name
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    *) lib_linked=no ;;
+	    esac
+
+	    if test yes != "$lib_linked"; then
+	      func_fatal_configuration "unsupported hardcode properties"
+	    fi
+
+	    if test -n "$add_shlibpath"; then
+	      case :$compile_shlibpath: in
+	      *":$add_shlibpath:"*) ;;
+	      *) func_append compile_shlibpath "$add_shlibpath:" ;;
+	      esac
+	    fi
+	    if test prog = "$linkmode"; then
+	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	      if test yes != "$hardcode_direct" &&
+		 test yes != "$hardcode_minus_L" &&
+		 test yes = "$hardcode_shlibpath_var"; then
+		case :$finalize_shlibpath: in
+		*":$libdir:"*) ;;
+		*) func_append finalize_shlibpath "$libdir:" ;;
+		esac
+	      fi
+	    fi
+	  fi
+
+	  if test prog = "$linkmode" || test relink = "$opt_mode"; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    # Finalize command for both is simple: just hardcode it.
+	    if test yes = "$hardcode_direct" &&
+	       test no = "$hardcode_direct_absolute"; then
+	      add=$libdir/$linklib
+	    elif test yes = "$hardcode_minus_L"; then
+	      add_dir=-L$libdir
+	      add=-l$name
+	    elif test yes = "$hardcode_shlibpath_var"; then
+	      case :$finalize_shlibpath: in
+	      *":$libdir:"*) ;;
+	      *) func_append finalize_shlibpath "$libdir:" ;;
+	      esac
+	      add=-l$name
+	    elif test yes = "$hardcode_automatic"; then
+	      if test -n "$inst_prefix_dir" &&
+		 test -f "$inst_prefix_dir$libdir/$linklib"; then
+		add=$inst_prefix_dir$libdir/$linklib
+	      else
+		add=$libdir/$linklib
+	      fi
+	    else
+	      # We cannot seem to hardcode it, guess we'll fake it.
+	      add_dir=-L$libdir
+	      # Try looking first in the location we're being installed to.
+	      if test -n "$inst_prefix_dir"; then
+		case $libdir in
+		  [\\/]*)
+		    func_append add_dir " -L$inst_prefix_dir$libdir"
+		    ;;
+		esac
+	      fi
+	      add=-l$name
+	    fi
+
+	    if test prog = "$linkmode"; then
+	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	    fi
+	  fi
+	elif test prog = "$linkmode"; then
+	  # Here we assume that one of hardcode_direct or hardcode_minus_L
+	  # is not unsupported.  This is valid on all known static and
+	  # shared platforms.
+	  if test unsupported != "$hardcode_direct"; then
+	    test -n "$old_library" && linklib=$old_library
+	    compile_deplibs="$dir/$linklib $compile_deplibs"
+	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
+	  else
+	    compile_deplibs="-l$name -L$dir $compile_deplibs"
+	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+	  fi
+	elif test yes = "$build_libtool_libs"; then
+	  # Not a shared library
+	  if test pass_all != "$deplibs_check_method"; then
+	    # We're trying link a shared library against a static one
+	    # but the system doesn't support it.
+
+	    # Just print a warning and add the library to dependency_libs so
+	    # that the program can be linked against the static library.
+	    echo
+	    $ECHO "*** Warning: This system cannot link to static lib archive $lib."
+	    echo "*** I have the capability to make that library automatically link in when"
+	    echo "*** you link to this library.  But I can only do this if you have a"
+	    echo "*** shared version of the library, which you do not appear to have."
+	    if test yes = "$module"; then
+	      echo "*** But as you try to build a module library, libtool will still create "
+	      echo "*** a static module, that should work as long as the dlopening application"
+	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      if test -z "$global_symbol_pipe"; then
+		echo
+		echo "*** However, this would only work if libtool was able to extract symbol"
+		echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
+		echo "*** not find such a program.  So, this module is probably useless."
+		echo "*** 'nm' from GNU binutils and a full rebuild may help."
+	      fi
+	      if test no = "$build_old_libs"; then
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  else
+	    deplibs="$dir/$old_library $deplibs"
+	    link_static=yes
+	  fi
+	fi # link shared/static library?
+
+	if test lib = "$linkmode"; then
+	  if test -n "$dependency_libs" &&
+	     { test yes != "$hardcode_into_libs" ||
+	       test yes = "$build_old_libs" ||
+	       test yes = "$link_static"; }; then
+	    # Extract -R from dependency_libs
+	    temp_deplibs=
+	    for libdir in $dependency_libs; do
+	      case $libdir in
+	      -R*) func_stripname '-R' '' "$libdir"
+	           temp_xrpath=$func_stripname_result
+		   case " $xrpath " in
+		   *" $temp_xrpath "*) ;;
+		   *) func_append xrpath " $temp_xrpath";;
+		   esac;;
+	      *) func_append temp_deplibs " $libdir";;
+	      esac
+	    done
+	    dependency_libs=$temp_deplibs
+	  fi
+
+	  func_append newlib_search_path " $absdir"
+	  # Link against this library
+	  test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+	  # ... and its dependency_libs
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    newdependency_libs="$deplib $newdependency_libs"
+	    case $deplib in
+              -L*) func_stripname '-L' '' "$deplib"
+                   func_resolve_sysroot "$func_stripname_result";;
+              *) func_resolve_sysroot "$deplib" ;;
+            esac
+	    if $opt_preserve_dup_deps; then
+	      case "$tmp_libs " in
+	      *" $func_resolve_sysroot_result "*)
+                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
+	      esac
+	    fi
+	    func_append tmp_libs " $func_resolve_sysroot_result"
+	  done
+
+	  if test no != "$link_all_deplibs"; then
+	    # Add the search paths of all dependency libraries
+	    for deplib in $dependency_libs; do
+	      path=
+	      case $deplib in
+	      -L*) path=$deplib ;;
+	      *.la)
+	        func_resolve_sysroot "$deplib"
+	        deplib=$func_resolve_sysroot_result
+	        func_dirname "$deplib" "" "."
+		dir=$func_dirname_result
+		# We need an absolute path.
+		case $dir in
+		[\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;;
+		*)
+		  absdir=`cd "$dir" && pwd`
+		  if test -z "$absdir"; then
+		    func_warning "cannot determine absolute directory name of '$dir'"
+		    absdir=$dir
+		  fi
+		  ;;
+		esac
+		if $GREP "^installed=no" $deplib > /dev/null; then
+		case $host in
+		*-*-darwin*)
+		  depdepl=
+		  eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  if test -n "$deplibrary_names"; then
+		    for tmp in $deplibrary_names; do
+		      depdepl=$tmp
+		    done
+		    if test -f "$absdir/$objdir/$depdepl"; then
+		      depdepl=$absdir/$objdir/$depdepl
+		      darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+                      if test -z "$darwin_install_name"; then
+                          darwin_install_name=`$OTOOL64 -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
+                      fi
+		      func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl"
+		      func_append linker_flags " -dylib_file $darwin_install_name:$depdepl"
+		      path=
+		    fi
+		  fi
+		  ;;
+		*)
+		  path=-L$absdir/$objdir
+		  ;;
+		esac
+		else
+		  eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  test -z "$libdir" && \
+		    func_fatal_error "'$deplib' is not a valid libtool archive"
+		  test "$absdir" != "$libdir" && \
+		    func_warning "'$deplib' seems to be moved"
+
+		  path=-L$absdir
+		fi
+		;;
+	      esac
+	      case " $deplibs " in
+	      *" $path "*) ;;
+	      *) deplibs="$path $deplibs" ;;
+	      esac
+	    done
+	  fi # link_all_deplibs != no
+	fi # linkmode = lib
+      done # for deplib in $libs
+      if test link = "$pass"; then
+	if test prog = "$linkmode"; then
+	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
+	else
+	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	fi
+      fi
+      dependency_libs=$newdependency_libs
+      if test dlpreopen = "$pass"; then
+	# Link the dlpreopened libraries before other libraries
+	for deplib in $save_deplibs; do
+	  deplibs="$deplib $deplibs"
+	done
+      fi
+      if test dlopen != "$pass"; then
+	test conv = "$pass" || {
+	  # Make sure lib_search_path contains only unique directories.
+	  lib_search_path=
+	  for dir in $newlib_search_path; do
+	    case "$lib_search_path " in
+	    *" $dir "*) ;;
+	    *) func_append lib_search_path " $dir" ;;
+	    esac
+	  done
+	  newlib_search_path=
+	}
+
+	if test prog,link = "$linkmode,$pass"; then
+	  vars="compile_deplibs finalize_deplibs"
+	else
+	  vars=deplibs
+	fi
+	for var in $vars dependency_libs; do
+	  # Add libraries to $var in reverse order
+	  eval tmp_libs=\"\$$var\"
+	  new_libs=
+	  for deplib in $tmp_libs; do
+	    # FIXME: Pedantically, this is the right thing to do, so
+	    #        that some nasty dependency loop isn't accidentally
+	    #        broken:
+	    #new_libs="$deplib $new_libs"
+	    # Pragmatically, this seems to cause very few problems in
+	    # practice:
+	    case $deplib in
+	    -L*) new_libs="$deplib $new_libs" ;;
+	    -R*) ;;
+	    *)
+	      # And here is the reason: when a library appears more
+	      # than once as an explicit dependence of a library, or
+	      # is implicitly linked in more than once by the
+	      # compiler, it is considered special, and multiple
+	      # occurrences thereof are not removed.  Compare this
+	      # with having the same library being listed as a
+	      # dependency of multiple other libraries: in this case,
+	      # we know (pedantically, we assume) the library does not
+	      # need to be listed more than once, so we keep only the
+	      # last copy.  This is not always right, but it is rare
+	      # enough that we require users that really mean to play
+	      # such unportable linking tricks to link the library
+	      # using -Wl,-lname, so that libtool does not consider it
+	      # for duplicate removal.
+	      case " $specialdeplibs " in
+	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
+	      *)
+		case " $new_libs " in
+		*" $deplib "*) ;;
+		*) new_libs="$deplib $new_libs" ;;
+		esac
+		;;
+	      esac
+	      ;;
+	    esac
+	  done
+	  tmp_libs=
+	  for deplib in $new_libs; do
+	    case $deplib in
+	    -L*)
+	      case " $tmp_libs " in
+	      *" $deplib "*) ;;
+	      *) func_append tmp_libs " $deplib" ;;
+	      esac
+	      ;;
+	    *) func_append tmp_libs " $deplib" ;;
+	    esac
+	  done
+	  eval $var=\"$tmp_libs\"
+	done # for var
+      fi
+
+      # Add Sun CC postdeps if required:
+      test CXX = "$tagname" && {
+        case $host_os in
+        linux*)
+          case `$CC -V 2>&1 | sed 5q` in
+          *Sun\ C*) # Sun C++ 5.9
+            func_suncc_cstd_abi
+
+            if test no != "$suncc_use_cstd_abi"; then
+              func_append postdeps ' -library=Cstd -library=Crun'
+            fi
+            ;;
+          esac
+          ;;
+
+        solaris*)
+          func_cc_basename "$CC"
+          case $func_cc_basename_result in
+          CC* | sunCC*)
+            func_suncc_cstd_abi
+
+            if test no != "$suncc_use_cstd_abi"; then
+              func_append postdeps ' -library=Cstd -library=Crun'
+            fi
+            ;;
+          esac
+          ;;
+        esac
+      }
+
+      # Last step: remove runtime libs from dependency_libs
+      # (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs; do
+	case " $predeps $postdeps $compiler_lib_search_path " in
+	*" $i "*)
+	  i=
+	  ;;
+	esac
+	if test -n "$i"; then
+	  func_append tmp_libs " $i"
+	fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test prog = "$linkmode"; then
+      dlfiles=$newdlfiles
+    fi
+    if test prog = "$linkmode" || test lib = "$linkmode"; then
+      dlprefiles=$newdlprefiles
+    fi
+
+    case $linkmode in
+    oldlib)
+      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+	func_warning "'-dlopen' is ignored for archives"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	func_warning "'-l' and '-L' are ignored for archives" ;;
+      esac
+
+      test -n "$rpath" && \
+	func_warning "'-rpath' is ignored for archives"
+
+      test -n "$xrpath" && \
+	func_warning "'-R' is ignored for archives"
+
+      test -n "$vinfo" && \
+	func_warning "'-version-info/-version-number' is ignored for archives"
+
+      test -n "$release" && \
+	func_warning "'-release' is ignored for archives"
+
+      test -n "$export_symbols$export_symbols_regex" && \
+	func_warning "'-export-symbols' is ignored for archives"
+
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs=$output
+      func_append objs "$old_deplibs"
+      ;;
+
+    lib)
+      # Make sure we only generate libraries of the form 'libNAME.la'.
+      case $outputname in
+      lib*)
+	func_stripname 'lib' '.la' "$outputname"
+	name=$func_stripname_result
+	eval shared_ext=\"$shrext_cmds\"
+	eval libname=\"$libname_spec\"
+	;;
+      *)
+	test no = "$module" \
+	  && func_fatal_help "libtool library '$output' must begin with 'lib'"
+
+	if test no != "$need_lib_prefix"; then
+	  # Add the "lib" prefix for modules if required
+	  func_stripname '' '.la' "$outputname"
+	  name=$func_stripname_result
+	  eval shared_ext=\"$shrext_cmds\"
+	  eval libname=\"$libname_spec\"
+	else
+	  func_stripname '' '.la' "$outputname"
+	  libname=$func_stripname_result
+	fi
+	;;
+      esac
+
+      if test -n "$objs"; then
+	if test pass_all != "$deplibs_check_method"; then
+	  func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs"
+	else
+	  echo
+	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+	  $ECHO "*** objects $objs is not portable!"
+	  func_append libobjs " $objs"
+	fi
+      fi
+
+      test no = "$dlself" \
+	|| func_warning "'-dlopen self' is ignored for libtool libraries"
+
+      set dummy $rpath
+      shift
+      test 1 -lt "$#" \
+	&& func_warning "ignoring multiple '-rpath's for a libtool library"
+
+      install_libdir=$1
+
+      oldlibs=
+      if test -z "$rpath"; then
+	if test yes = "$build_libtool_libs"; then
+	  # Building a libtool convenience library.
+	  # Some compilers have problems with a '.al' extension so
+	  # convenience libraries should have the same extension an
+	  # archive normally would.
+	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
+	  build_libtool_libs=convenience
+	  build_old_libs=yes
+	fi
+
+	test -n "$vinfo" && \
+	  func_warning "'-version-info/-version-number' is ignored for convenience libraries"
+
+	test -n "$release" && \
+	  func_warning "'-release' is ignored for convenience libraries"
+      else
+
+	# Parse the version information argument.
+	save_ifs=$IFS; IFS=:
+	set dummy $vinfo 0 0 0
+	shift
+	IFS=$save_ifs
+
+	test -n "$7" && \
+	  func_fatal_help "too many parameters to '-version-info'"
+
+	# convert absolute version numbers to libtool ages
+	# this retains compatibility with .la files and attempts
+	# to make the code below a bit more comprehensible
+
+	case $vinfo_number in
+	yes)
+	  number_major=$1
+	  number_minor=$2
+	  number_revision=$3
+	  #
+	  # There are really only two kinds -- those that
+	  # use the current revision as the major version
+	  # and those that subtract age and use age as
+	  # a minor version.  But, then there is irix
+	  # that has an extra 1 added just for fun
+	  #
+	  case $version_type in
+	  # correct linux to gnu/linux during the next big refactor
+	  darwin|freebsd-elf|linux|osf|windows|none)
+	    func_arith $number_major + $number_minor
+	    current=$func_arith_result
+	    age=$number_minor
+	    revision=$number_revision
+	    ;;
+	  freebsd-aout|qnx|sunos)
+	    current=$number_major
+	    revision=$number_minor
+	    age=0
+	    ;;
+	  irix|nonstopux)
+	    func_arith $number_major + $number_minor
+	    current=$func_arith_result
+	    age=$number_minor
+	    revision=$number_minor
+	    lt_irix_increment=no
+	    ;;
+	  esac
+	  ;;
+	no)
+	  current=$1
+	  revision=$2
+	  age=$3
+	  ;;
+	esac
+
+	# Check that each of the things are valid numbers.
+	case $current in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "CURRENT '$current' must be a nonnegative integer"
+	  func_fatal_error "'$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	case $revision in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "REVISION '$revision' must be a nonnegative integer"
+	  func_fatal_error "'$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	case $age in
+	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+	*)
+	  func_error "AGE '$age' must be a nonnegative integer"
+	  func_fatal_error "'$vinfo' is not valid version information"
+	  ;;
+	esac
+
+	if test "$age" -gt "$current"; then
+	  func_error "AGE '$age' is greater than the current interface number '$current'"
+	  func_fatal_error "'$vinfo' is not valid version information"
+	fi
+
+	# Calculate the version variables.
+	major=
+	versuffix=
+	verstring=
+	case $version_type in
+	none) ;;
+
+	darwin)
+	  # Like Linux, but with the current version available in
+	  # verstring for coding it into the library header
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix=$major.$age.$revision
+	  # Darwin ld doesn't like 0 for these options...
+	  func_arith $current + 1
+	  minor_current=$func_arith_result
+	  xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+          # On Darwin other compilers
+          case $CC in
+              nagfor*)
+                  verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+                  ;;
+              *)
+                  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+                  ;;
+          esac
+	  ;;
+
+	freebsd-aout)
+	  major=.$current
+	  versuffix=.$current.$revision
+	  ;;
+
+	freebsd-elf)
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix=$major.$age.$revision
+	  ;;
+
+	irix | nonstopux)
+	  if test no = "$lt_irix_increment"; then
+	    func_arith $current - $age
+	  else
+	    func_arith $current - $age + 1
+	  fi
+	  major=$func_arith_result
+
+	  case $version_type in
+	    nonstopux) verstring_prefix=nonstopux ;;
+	    *)         verstring_prefix=sgi ;;
+	  esac
+	  verstring=$verstring_prefix$major.$revision
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$revision
+	  while test 0 -ne "$loop"; do
+	    func_arith $revision - $loop
+	    iface=$func_arith_result
+	    func_arith $loop - 1
+	    loop=$func_arith_result
+	    verstring=$verstring_prefix$major.$iface:$verstring
+	  done
+
+	  # Before this point, $major must not contain '.'.
+	  major=.$major
+	  versuffix=$major.$revision
+	  ;;
+
+	linux) # correct to gnu/linux during the next big refactor
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix=$major.$age.$revision
+	  ;;
+
+	osf)
+	  func_arith $current - $age
+	  major=.$func_arith_result
+	  versuffix=.$current.$age.$revision
+	  verstring=$current.$age.$revision
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$age
+	  while test 0 -ne "$loop"; do
+	    func_arith $current - $loop
+	    iface=$func_arith_result
+	    func_arith $loop - 1
+	    loop=$func_arith_result
+	    verstring=$verstring:$iface.0
+	  done
+
+	  # Make executables depend on our current version.
+	  func_append verstring ":$current.0"
+	  ;;
+
+	qnx)
+	  major=.$current
+	  versuffix=.$current
+	  ;;
+
+	sco)
+	  major=.$current
+	  versuffix=.$current
+	  ;;
+
+	sunos)
+	  major=.$current
+	  versuffix=.$current.$revision
+	  ;;
+
+	windows)
+	  # Use '-' rather than '.', since we only want one
+	  # extension on DOS 8.3 file systems.
+	  func_arith $current - $age
+	  major=$func_arith_result
+	  versuffix=-$major
+	  ;;
+
+	*)
+	  func_fatal_configuration "unknown library version type '$version_type'"
+	  ;;
+	esac
+
+	# Clear the version info if we defaulted, and they specified a release.
+	if test -z "$vinfo" && test -n "$release"; then
+	  major=
+	  case $version_type in
+	  darwin)
+	    # we can't check for "0.0" in archive_cmds due to quoting
+	    # problems, so we reset it completely
+	    verstring=
+	    ;;
+	  *)
+	    verstring=0.0
+	    ;;
+	  esac
+	  if test no = "$need_version"; then
+	    versuffix=
+	  else
+	    versuffix=.0.0
+	  fi
+	fi
+
+	# Remove version info from name if versioning should be avoided
+	if test yes,no = "$avoid_version,$need_version"; then
+	  major=
+	  versuffix=
+	  verstring=
+	fi
+
+	# Check to see if the archive will have undefined symbols.
+	if test yes = "$allow_undefined"; then
+	  if test unsupported = "$allow_undefined_flag"; then
+	    if test yes = "$build_old_libs"; then
+	      func_warning "undefined symbols not allowed in $host shared libraries; building static only"
+	      build_libtool_libs=no
+	    else
+	      func_fatal_error "can't build $host shared library unless -no-undefined is specified"
+	    fi
+	  fi
+	else
+	  # Don't allow undefined symbols.
+	  allow_undefined_flag=$no_undefined_flag
+	fi
+
+      fi
+
+      func_generate_dlsyms "$libname" "$libname" :
+      func_append libobjs " $symfileobj"
+      test " " = "$libobjs" && libobjs=
+
+      if test relink != "$opt_mode"; then
+	# Remove our outputs, but don't remove object files since they
+	# may have been created when compiling PIC objects.
+	removelist=
+	tempremovelist=`$ECHO "$output_objdir/*"`
+	for p in $tempremovelist; do
+	  case $p in
+	    *.$objext | *.gcno)
+	       ;;
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*)
+	       if test -n "$precious_files_regex"; then
+		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+		 then
+		   continue
+		 fi
+	       fi
+	       func_append removelist " $p"
+	       ;;
+	    *) ;;
+	  esac
+	done
+	test -n "$removelist" && \
+	  func_show_eval "${RM}r \$removelist"
+      fi
+
+      # Now set the variables for building old libraries.
+      if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then
+	func_append oldlibs " $output_objdir/$libname.$libext"
+
+	# Transform .lo files to .o files.
+	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP`
+      fi
+
+      # Eliminate all temporary directories.
+      #for path in $notinst_path; do
+      #	lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
+      #	deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
+      #	dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
+      #done
+
+      if test -n "$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	temp_xrpath=
+	for libdir in $xrpath; do
+	  func_replace_sysroot "$libdir"
+	  func_append temp_xrpath " -R$func_replace_sysroot_result"
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) func_append finalize_rpath " $libdir" ;;
+	  esac
+	done
+	if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
+	  dependency_libs="$temp_xrpath $dependency_libs"
+	fi
+      fi
+
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles=$dlfiles
+      dlfiles=
+      for lib in $old_dlfiles; do
+	case " $dlprefiles $dlfiles " in
+	*" $lib "*) ;;
+	*) func_append dlfiles " $lib" ;;
+	esac
+      done
+
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles=$dlprefiles
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+	case "$dlprefiles " in
+	*" $lib "*) ;;
+	*) func_append dlprefiles " $lib" ;;
+	esac
+      done
+
+      if test yes = "$build_libtool_libs"; then
+	if test -n "$rpath"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
+	    # these systems don't actually have a c library (as such)!
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C library is in the System framework
+	    func_append deplibs " System.ltframework"
+	    ;;
+	  *-*-netbsd*)
+	    # Don't link with libc until the a.out ld.so is fixed.
+	    ;;
+	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+	    # Do not include libc due to us having libc/libc_r.
+	    ;;
+	  *-*-sco3.2v5* | *-*-sco5v6*)
+	    # Causes problems with __ctype
+	    ;;
+	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+	    # Compiler inserts libc in the correct place for threads to work
+	    ;;
+	  *)
+	    # Add libc to deplibs on all other systems if necessary.
+	    if test yes = "$build_libtool_need_lc"; then
+	      func_append deplibs " -lc"
+	    fi
+	    ;;
+	  esac
+	fi
+
+	# Transform deplibs into only deplibs that can be linked in shared.
+	name_save=$name
+	libname_save=$libname
+	release_save=$release
+	versuffix_save=$versuffix
+	major_save=$major
+	# I'm not sure if I'm treating the release correctly.  I think
+	# release should show up in the -l (ie -lgmp5) so we don't want to
+	# add it in twice.  Is that correct?
+	release=
+	versuffix=
+	major=
+	newdeplibs=
+	droppeddeps=no
+	case $deplibs_check_method in
+	pass_all)
+	  # Don't check for shared/static.  Everything works.
+	  # This might be a little naive.  We might want to check
+	  # whether the library exists or not.  But this is on
+	  # osf3 & osf4 and I'm not really sure... Just
+	  # implementing what was already the behavior.
+	  newdeplibs=$deplibs
+	  ;;
+	test_compile)
+	  # This code stresses the "libraries are programs" paradigm to its
+	  # limits. Maybe even breaks it.  We compile a program, linking it
+	  # against the deplibs as a proxy for the library.  Then we can check
+	  # whether they linked in statically or dynamically with ldd.
+	  $opt_dry_run || $RM conftest.c
+	  cat > conftest.c <<EOF
+	  int main() { return 0; }
+EOF
+	  $opt_dry_run || $RM conftest
+	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+	    ldd_output=`ldd conftest`
+	    for i in $deplibs; do
+	      case $i in
+	      -l*)
+		func_stripname -l '' "$i"
+		name=$func_stripname_result
+		if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+		  case " $predeps $postdeps " in
+		  *" $i "*)
+		    func_append newdeplibs " $i"
+		    i=
+		    ;;
+		  esac
+		fi
+		if test -n "$i"; then
+		  libname=`eval "\\$ECHO \"$libname_spec\""`
+		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+		  set dummy $deplib_matches; shift
+		  deplib_match=$1
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
+		    func_append newdeplibs " $i"
+		  else
+		    droppeddeps=yes
+		    echo
+		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+		    echo "*** I have the capability to make that library automatically link in when"
+		    echo "*** you link to this library.  But I can only do this if you have a"
+		    echo "*** shared version of the library, which I believe you do not have"
+		    echo "*** because a test_compile did reveal that the linker did not use it for"
+		    echo "*** its dynamic dependency list that programs get resolved with at runtime."
+		  fi
+		fi
+		;;
+	      *)
+		func_append newdeplibs " $i"
+		;;
+	      esac
+	    done
+	  else
+	    # Error occurred in the first compile.  Let's try to salvage
+	    # the situation: Compile a separate program for each library.
+	    for i in $deplibs; do
+	      case $i in
+	      -l*)
+		func_stripname -l '' "$i"
+		name=$func_stripname_result
+		$opt_dry_run || $RM conftest
+		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+		  ldd_output=`ldd conftest`
+		  if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+		    case " $predeps $postdeps " in
+		    *" $i "*)
+		      func_append newdeplibs " $i"
+		      i=
+		      ;;
+		    esac
+		  fi
+		  if test -n "$i"; then
+		    libname=`eval "\\$ECHO \"$libname_spec\""`
+		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+		    set dummy $deplib_matches; shift
+		    deplib_match=$1
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
+		      func_append newdeplibs " $i"
+		    else
+		      droppeddeps=yes
+		      echo
+		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+		      echo "*** I have the capability to make that library automatically link in when"
+		      echo "*** you link to this library.  But I can only do this if you have a"
+		      echo "*** shared version of the library, which you do not appear to have"
+		      echo "*** because a test_compile did reveal that the linker did not use this one"
+		      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+		    fi
+		  fi
+		else
+		  droppeddeps=yes
+		  echo
+		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
+		  echo "*** make it link in!  You will probably need to install it or some"
+		  echo "*** library that it depends on before this library will be fully"
+		  echo "*** functional.  Installing it before continuing would be even better."
+		fi
+		;;
+	      *)
+		func_append newdeplibs " $i"
+		;;
+	      esac
+	    done
+	  fi
+	  ;;
+	file_magic*)
+	  set dummy $deplibs_check_method; shift
+	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    case $a_deplib in
+	    -l*)
+	      func_stripname -l '' "$a_deplib"
+	      name=$func_stripname_result
+	      if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  func_append newdeplibs " $a_deplib"
+		  a_deplib=
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib"; then
+		libname=`eval "\\$ECHO \"$libname_spec\""`
+		if test -n "$file_magic_glob"; then
+		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+		else
+		  libnameglob=$libname
+		fi
+		test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  if test yes = "$want_nocaseglob"; then
+		    shopt -s nocaseglob
+		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+		    $nocaseglob
+		  else
+		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+		  fi
+		  for potent_lib in $potential_libs; do
+		      # Follow soft links.
+		      if ls -lLd "$potent_lib" 2>/dev/null |
+			 $GREP " -> " >/dev/null; then
+			continue
+		      fi
+		      # The statement above tries to avoid entering an
+		      # endless loop below, in case of cyclic links.
+		      # We might still enter an endless loop, since a link
+		      # loop can be closed while we follow links,
+		      # but so what?
+		      potlib=$potent_lib
+		      while test -h "$potlib" 2>/dev/null; do
+			potliblink=`ls -ld $potlib | $SED 's/.* -> //'`
+			case $potliblink in
+			[\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;;
+			*) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";;
+			esac
+		      done
+		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+			 $SED -e 10q |
+			 $EGREP "$file_magic_regex" > /dev/null; then
+			func_append newdeplibs " $a_deplib"
+			a_deplib=
+			break 2
+		      fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib"; then
+		droppeddeps=yes
+		echo
+		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+		echo "*** I have the capability to make that library automatically link in when"
+		echo "*** you link to this library.  But I can only do this if you have a"
+		echo "*** shared version of the library, which you do not appear to have"
+		echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib"; then
+		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
+		else
+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
+		  $ECHO "*** using a file magic. Last file checked: $potlib"
+		fi
+	      fi
+	      ;;
+	    *)
+	      # Add a -L argument.
+	      func_append newdeplibs " $a_deplib"
+	      ;;
+	    esac
+	  done # Gone through all deplibs.
+	  ;;
+	match_pattern*)
+	  set dummy $deplibs_check_method; shift
+	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    case $a_deplib in
+	    -l*)
+	      func_stripname -l '' "$a_deplib"
+	      name=$func_stripname_result
+	      if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  func_append newdeplibs " $a_deplib"
+		  a_deplib=
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib"; then
+		libname=`eval "\\$ECHO \"$libname_spec\""`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		    potlib=$potent_lib # see symlink-check above in file_magic test
+		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
+		       $EGREP "$match_pattern_regex" > /dev/null; then
+		      func_append newdeplibs " $a_deplib"
+		      a_deplib=
+		      break 2
+		    fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib"; then
+		droppeddeps=yes
+		echo
+		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+		echo "*** I have the capability to make that library automatically link in when"
+		echo "*** you link to this library.  But I can only do this if you have a"
+		echo "*** shared version of the library, which you do not appear to have"
+		echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib"; then
+		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
+		else
+		  $ECHO "*** with $libname and none of the candidates passed a file format test"
+		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
+		fi
+	      fi
+	      ;;
+	    *)
+	      # Add a -L argument.
+	      func_append newdeplibs " $a_deplib"
+	      ;;
+	    esac
+	  done # Gone through all deplibs.
+	  ;;
+	none | unknown | *)
+	  newdeplibs=
+	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
+	  if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+	    for i in $predeps $postdeps; do
+	      # can't use Xsed below, because $i might contain '/'
+	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"`
+	    done
+	  fi
+	  case $tmp_deplibs in
+	  *[!\	\ ]*)
+	    echo
+	    if test none = "$deplibs_check_method"; then
+	      echo "*** Warning: inter-library dependencies are not supported in this platform."
+	    else
+	      echo "*** Warning: inter-library dependencies are not known to be supported."
+	    fi
+	    echo "*** All declared inter-library dependencies are being dropped."
+	    droppeddeps=yes
+	    ;;
+	  esac
+	  ;;
+	esac
+	versuffix=$versuffix_save
+	major=$major_save
+	release=$release_save
+	libname=$libname_save
+	name=$name_save
+
+	case $host in
+	*-*-rhapsody* | *-*-darwin1.[012])
+	  # On Rhapsody replace the C library with the System framework
+	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
+	  ;;
+	esac
+
+	if test yes = "$droppeddeps"; then
+	  if test yes = "$module"; then
+	    echo
+	    echo "*** Warning: libtool could not satisfy all declared inter-library"
+	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
+	    echo "*** a static module, that should work as long as the dlopening"
+	    echo "*** application is linked with the -dlopen flag."
+	    if test -z "$global_symbol_pipe"; then
+	      echo
+	      echo "*** However, this would only work if libtool was able to extract symbol"
+	      echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
+	      echo "*** not find such a program.  So, this module is probably useless."
+	      echo "*** 'nm' from GNU binutils and a full rebuild may help."
+	    fi
+	    if test no = "$build_old_libs"; then
+	      oldlibs=$output_objdir/$libname.$libext
+	      build_libtool_libs=module
+	      build_old_libs=yes
+	    else
+	      build_libtool_libs=no
+	    fi
+	  else
+	    echo "*** The inter-library dependencies that have been dropped here will be"
+	    echo "*** automatically added whenever a program is linked with this library"
+	    echo "*** or is declared to -dlopen it."
+
+	    if test no = "$allow_undefined"; then
+	      echo
+	      echo "*** Since this library must not contain undefined symbols,"
+	      echo "*** because either the platform does not support them or"
+	      echo "*** it was explicitly requested with -no-undefined,"
+	      echo "*** libtool will only create a static version of it."
+	      if test no = "$build_old_libs"; then
+		oldlibs=$output_objdir/$libname.$libext
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  fi
+	fi
+	# Done checking deplibs!
+	deplibs=$newdeplibs
+      fi
+      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+      case $host in
+	*-*-darwin*)
+	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	  ;;
+      esac
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $deplibs " in
+	  *" -L$path/$objdir "*)
+	    func_append new_libs " -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) func_append new_libs " $deplib" ;;
+	  esac
+	  ;;
+	*) func_append new_libs " $deplib" ;;
+	esac
+      done
+      deplibs=$new_libs
+
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
+
+      # Test again, we may have decided not to build it any more
+      if test yes = "$build_libtool_libs"; then
+	# Remove $wl instances when linking with ld.
+	# FIXME: should test the right _cmds variable.
+	case $archive_cmds in
+	  *\$LD\ *) wl= ;;
+        esac
+	if test yes = "$hardcode_into_libs"; then
+	  # Hardcode the library paths
+	  hardcode_libdirs=
+	  dep_rpath=
+	  rpath=$finalize_rpath
+	  test relink = "$opt_mode" || rpath=$compile_rpath$rpath
+	  for libdir in $rpath; do
+	    if test -n "$hardcode_libdir_flag_spec"; then
+	      if test -n "$hardcode_libdir_separator"; then
+		func_replace_sysroot "$libdir"
+		libdir=$func_replace_sysroot_result
+		if test -z "$hardcode_libdirs"; then
+		  hardcode_libdirs=$libdir
+		else
+		  # Just accumulate the unique libdirs.
+		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		    ;;
+		  *)
+		    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+		    ;;
+		  esac
+		fi
+	      else
+		eval flag=\"$hardcode_libdir_flag_spec\"
+		func_append dep_rpath " $flag"
+	      fi
+	    elif test -n "$runpath_var"; then
+	      case "$perm_rpath " in
+	      *" $libdir "*) ;;
+	      *) func_append perm_rpath " $libdir" ;;
+	      esac
+	    fi
+	  done
+	  # Substitute the hardcoded libdirs into the rpath.
+	  if test -n "$hardcode_libdir_separator" &&
+	     test -n "$hardcode_libdirs"; then
+	    libdir=$hardcode_libdirs
+	    eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
+	  fi
+	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
+	    # We should set the runpath_var.
+	    rpath=
+	    for dir in $perm_rpath; do
+	      func_append rpath "$dir:"
+	    done
+	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+	  fi
+	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+	fi
+
+	shlibpath=$finalize_shlibpath
+	test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath
+	if test -n "$shlibpath"; then
+	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+	fi
+
+	# Get the real and link names of the library.
+	eval shared_ext=\"$shrext_cmds\"
+	eval library_names=\"$library_names_spec\"
+	set dummy $library_names
+	shift
+	realname=$1
+	shift
+
+	if test -n "$soname_spec"; then
+	  eval soname=\"$soname_spec\"
+	else
+	  soname=$realname
+	fi
+	if test -z "$dlname"; then
+	  dlname=$soname
+	fi
+
+	lib=$output_objdir/$realname
+	linknames=
+	for link
+	do
+	  func_append linknames " $link"
+	done
+
+	# Use standard objects if they are pic
+	test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+	test "X$libobjs" = "X " && libobjs=
+
+	delfiles=
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+	  export_symbols=$output_objdir/$libname.uexp
+	  func_append delfiles " $export_symbols"
+	fi
+
+	orig_export_symbols=
+	case $host_os in
+	cygwin* | mingw* | cegcc*)
+	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
+	    # exporting using user supplied symfile
+	    func_dll_def_p "$export_symbols" || {
+	      # and it's NOT already a .def file. Must figure out
+	      # which of the given symbols are data symbols and tag
+	      # them as such. So, trigger use of export_symbols_cmds.
+	      # export_symbols gets reassigned inside the "prepare
+	      # the list of exported symbols" if statement, so the
+	      # include_expsyms logic still works.
+	      orig_export_symbols=$export_symbols
+	      export_symbols=
+	      always_export_symbols=yes
+	    }
+	  fi
+	  ;;
+	esac
+
+	# Prepare the list of exported symbols
+	if test -z "$export_symbols"; then
+	  if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then
+	    func_verbose "generating symbol list for '$libname.la'"
+	    export_symbols=$output_objdir/$libname.exp
+	    $opt_dry_run || $RM $export_symbols
+	    cmds=$export_symbols_cmds
+	    save_ifs=$IFS; IFS='~'
+	    for cmd1 in $cmds; do
+	      IFS=$save_ifs
+	      # Take the normal branch if the nm_file_list_spec branch
+	      # doesn't work or if tool conversion is not needed.
+	      case $nm_file_list_spec~$to_tool_file_cmd in
+		*~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
+		  try_normal_branch=yes
+		  eval cmd=\"$cmd1\"
+		  func_len " $cmd"
+		  len=$func_len_result
+		  ;;
+		*)
+		  try_normal_branch=no
+		  ;;
+	      esac
+	      if test yes = "$try_normal_branch" \
+		 && { test "$len" -lt "$max_cmd_len" \
+		      || test "$max_cmd_len" -le -1; }
+	      then
+		func_show_eval "$cmd" 'exit $?'
+		skipped_export=false
+	      elif test -n "$nm_file_list_spec"; then
+		func_basename "$output"
+		output_la=$func_basename_result
+		save_libobjs=$libobjs
+		save_output=$output
+		output=$output_objdir/$output_la.nm
+		func_to_tool_file "$output"
+		libobjs=$nm_file_list_spec$func_to_tool_file_result
+		func_append delfiles " $output"
+		func_verbose "creating $NM input file list: $output"
+		for obj in $save_libobjs; do
+		  func_to_tool_file "$obj"
+		  $ECHO "$func_to_tool_file_result"
+		done > "$output"
+		eval cmd=\"$cmd1\"
+		func_show_eval "$cmd" 'exit $?'
+		output=$save_output
+		libobjs=$save_libobjs
+		skipped_export=false
+	      else
+		# The command line is too long to execute in one step.
+		func_verbose "using reloadable object file for export list..."
+		skipped_export=:
+		# Break out early, otherwise skipped_export may be
+		# set to false by a later but shorter cmd.
+		break
+	      fi
+	    done
+	    IFS=$save_ifs
+	    if test -n "$export_symbols_regex" && test : != "$skipped_export"; then
+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+	fi
+
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  tmp_export_symbols=$export_symbols
+	  test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
+	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+	fi
+
+	if test : != "$skipped_export" && test -n "$orig_export_symbols"; then
+	  # The given exports_symbols file has to be filtered, so filter it.
+	  func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
+	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
+	  # 's' commands, which not all seds can handle. GNU sed should be fine
+	  # though. Also, the filter scales superlinearly with the number of
+	  # global variables. join(1) would be nice here, but unfortunately
+	  # isn't a blessed tool.
+	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+	  func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+	  export_symbols=$output_objdir/$libname.def
+	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+	fi
+
+	tmp_deplibs=
+	for test_deplib in $deplibs; do
+	  case " $convenience " in
+	  *" $test_deplib "*) ;;
+	  *)
+	    func_append tmp_deplibs " $test_deplib"
+	    ;;
+	  esac
+	done
+	deplibs=$tmp_deplibs
+
+	if test -n "$convenience"; then
+	  if test -n "$whole_archive_flag_spec" &&
+	    test yes = "$compiler_needs_object" &&
+	    test -z "$libobjs"; then
+	    # extract the archives, so we have objects to list.
+	    # TODO: could optimize this to just extract one archive.
+	    whole_archive_flag_spec=
+	  fi
+	  if test -n "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	    test "X$libobjs" = "X " && libobjs=
+	  else
+	    gentop=$output_objdir/${outputname}x
+	    func_append generated " $gentop"
+
+	    func_extract_archives $gentop $convenience
+	    func_append libobjs " $func_extract_archives_result"
+	    test "X$libobjs" = "X " && libobjs=
+	  fi
+	fi
+
+	if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then
+	  eval flag=\"$thread_safe_flag_spec\"
+	  func_append linker_flags " $flag"
+	fi
+
+	# Make a backup of the uninstalled library when relinking
+	if test relink = "$opt_mode"; then
+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+	fi
+
+	# Do each of the archive commands.
+	if test yes = "$module" && test -n "$module_cmds"; then
+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	    eval test_cmds=\"$module_expsym_cmds\"
+	    cmds=$module_expsym_cmds
+	  else
+	    eval test_cmds=\"$module_cmds\"
+	    cmds=$module_cmds
+	  fi
+	else
+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	    eval test_cmds=\"$archive_expsym_cmds\"
+	    cmds=$archive_expsym_cmds
+	  else
+	    eval test_cmds=\"$archive_cmds\"
+	    cmds=$archive_cmds
+	  fi
+	fi
+
+	if test : != "$skipped_export" &&
+	   func_len " $test_cmds" &&
+	   len=$func_len_result &&
+	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # The command line is too long to link in one step, link piecewise
+	  # or, if using GNU ld and skipped_export is not :, use a linker
+	  # script.
+
+	  # Save the value of $output and $libobjs because we want to
+	  # use them later.  If we have whole_archive_flag_spec, we
+	  # want to use save_libobjs as it was before
+	  # whole_archive_flag_spec was expanded, because we can't
+	  # assume the linker understands whole_archive_flag_spec.
+	  # This may have to be revisited, in case too many
+	  # convenience libraries get linked in and end up exceeding
+	  # the spec.
+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	  fi
+	  save_output=$output
+	  func_basename "$output"
+	  output_la=$func_basename_result
+
+	  # Clear the reloadable object creation command queue and
+	  # initialize k to one.
+	  test_cmds=
+	  concat_cmds=
+	  objlist=
+	  last_robj=
+	  k=1
+
+	  if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
+	    output=$output_objdir/$output_la.lnkscript
+	    func_verbose "creating GNU ld script: $output"
+	    echo 'INPUT (' > $output
+	    for obj in $save_libobjs
+	    do
+	      func_to_tool_file "$obj"
+	      $ECHO "$func_to_tool_file_result" >> $output
+	    done
+	    echo ')' >> $output
+	    func_append delfiles " $output"
+	    func_to_tool_file "$output"
+	    output=$func_to_tool_file_result
+	  elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
+	    output=$output_objdir/$output_la.lnk
+	    func_verbose "creating linker input file list: $output"
+	    : > $output
+	    set x $save_libobjs
+	    shift
+	    firstobj=
+	    if test yes = "$compiler_needs_object"; then
+	      firstobj="$1 "
+	      shift
+	    fi
+	    for obj
+	    do
+	      func_to_tool_file "$obj"
+	      $ECHO "$func_to_tool_file_result" >> $output
+	    done
+	    func_append delfiles " $output"
+	    func_to_tool_file "$output"
+	    output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
+	  else
+	    if test -n "$save_libobjs"; then
+	      func_verbose "creating reloadable object files..."
+	      output=$output_objdir/$output_la-$k.$objext
+	      eval test_cmds=\"$reload_cmds\"
+	      func_len " $test_cmds"
+	      len0=$func_len_result
+	      len=$len0
+
+	      # Loop over the list of objects to be linked.
+	      for obj in $save_libobjs
+	      do
+		func_len " $obj"
+		func_arith $len + $func_len_result
+		len=$func_arith_result
+		if test -z "$objlist" ||
+		   test "$len" -lt "$max_cmd_len"; then
+		  func_append objlist " $obj"
+		else
+		  # The command $test_cmds is almost too long, add a
+		  # command to the queue.
+		  if test 1 -eq "$k"; then
+		    # The first file doesn't have a previous command to add.
+		    reload_objs=$objlist
+		    eval concat_cmds=\"$reload_cmds\"
+		  else
+		    # All subsequent reloadable object files will link in
+		    # the last one created.
+		    reload_objs="$objlist $last_robj"
+		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
+		  fi
+		  last_robj=$output_objdir/$output_la-$k.$objext
+		  func_arith $k + 1
+		  k=$func_arith_result
+		  output=$output_objdir/$output_la-$k.$objext
+		  objlist=" $obj"
+		  func_len " $last_robj"
+		  func_arith $len0 + $func_len_result
+		  len=$func_arith_result
+		fi
+	      done
+	      # Handle the remaining objects by creating one last
+	      # reloadable object file.  All subsequent reloadable object
+	      # files will link in the last one created.
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      reload_objs="$objlist $last_robj"
+	      eval concat_cmds=\"\$concat_cmds$reload_cmds\"
+	      if test -n "$last_robj"; then
+	        eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+	      fi
+	      func_append delfiles " $output"
+
+	    else
+	      output=
+	    fi
+
+	    ${skipped_export-false} && {
+	      func_verbose "generating symbol list for '$libname.la'"
+	      export_symbols=$output_objdir/$libname.exp
+	      $opt_dry_run || $RM $export_symbols
+	      libobjs=$output
+	      # Append the command to create the export file.
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+	      if test -n "$last_robj"; then
+		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+	      fi
+	    }
+
+	    test -n "$save_libobjs" &&
+	      func_verbose "creating a temporary reloadable object file: $output"
+
+	    # Loop through the commands generated above and execute them.
+	    save_ifs=$IFS; IFS='~'
+	    for cmd in $concat_cmds; do
+	      IFS=$save_ifs
+	      $opt_quiet || {
+		  func_quote_for_expand "$cmd"
+		  eval "func_echo $func_quote_for_expand_result"
+	      }
+	      $opt_dry_run || eval "$cmd" || {
+		lt_exit=$?
+
+		# Restore the uninstalled library and exit
+		if test relink = "$opt_mode"; then
+		  ( cd "$output_objdir" && \
+		    $RM "${realname}T" && \
+		    $MV "${realname}U" "$realname" )
+		fi
+
+		exit $lt_exit
+	      }
+	    done
+	    IFS=$save_ifs
+
+	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
+	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+
+          ${skipped_export-false} && {
+	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	      tmp_export_symbols=$export_symbols
+	      test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
+	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+	    fi
+
+	    if test -n "$orig_export_symbols"; then
+	      # The given exports_symbols file has to be filtered, so filter it.
+	      func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
+	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
+	      # 's' commands, which not all seds can handle. GNU sed should be fine
+	      # though. Also, the filter scales superlinearly with the number of
+	      # global variables. join(1) would be nice here, but unfortunately
+	      # isn't a blessed tool.
+	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+	      func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+	      export_symbols=$output_objdir/$libname.def
+	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+	    fi
+	  }
+
+	  libobjs=$output
+	  # Restore the value of output.
+	  output=$save_output
+
+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	    test "X$libobjs" = "X " && libobjs=
+	  fi
+	  # Expand the library linking commands again to reset the
+	  # value of $libobjs for piecewise linking.
+
+	  # Do each of the archive commands.
+	  if test yes = "$module" && test -n "$module_cmds"; then
+	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	      cmds=$module_expsym_cmds
+	    else
+	      cmds=$module_cmds
+	    fi
+	  else
+	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	      cmds=$archive_expsym_cmds
+	    else
+	      cmds=$archive_cmds
+	    fi
+	  fi
+	fi
+
+	if test -n "$delfiles"; then
+	  # Append the command to remove temporary files to $cmds.
+	  eval cmds=\"\$cmds~\$RM $delfiles\"
+	fi
+
+	# Add any objects from preloaded convenience libraries
+	if test -n "$dlprefiles"; then
+	  gentop=$output_objdir/${outputname}x
+	  func_append generated " $gentop"
+
+	  func_extract_archives $gentop $dlprefiles
+	  func_append libobjs " $func_extract_archives_result"
+	  test "X$libobjs" = "X " && libobjs=
+	fi
+
+	save_ifs=$IFS; IFS='~'
+	for cmd in $cmds; do
+	  IFS=$sp$nl
+	  eval cmd=\"$cmd\"
+	  IFS=$save_ifs
+	  $opt_quiet || {
+	    func_quote_for_expand "$cmd"
+	    eval "func_echo $func_quote_for_expand_result"
+	  }
+	  $opt_dry_run || eval "$cmd" || {
+	    lt_exit=$?
+
+	    # Restore the uninstalled library and exit
+	    if test relink = "$opt_mode"; then
+	      ( cd "$output_objdir" && \
+	        $RM "${realname}T" && \
+		$MV "${realname}U" "$realname" )
+	    fi
+
+	    exit $lt_exit
+	  }
+	done
+	IFS=$save_ifs
+
+	# Restore the uninstalled library and exit
+	if test relink = "$opt_mode"; then
+	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
+
+	  if test -n "$convenience"; then
+	    if test -z "$whole_archive_flag_spec"; then
+	      func_show_eval '${RM}r "$gentop"'
+	    fi
+	  fi
+
+	  exit $EXIT_SUCCESS
+	fi
+
+	# Create links to the real library.
+	for linkname in $linknames; do
+	  if test "$realname" != "$linkname"; then
+	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+	  fi
+	done
+
+	# If -module or -export-dynamic was specified, set the dlname.
+	if test yes = "$module" || test yes = "$export_dynamic"; then
+	  # On all known operating systems, these are identical.
+	  dlname=$soname
+	fi
+      fi
+      ;;
+
+    obj)
+      if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+	func_warning "'-dlopen' is ignored for objects"
+      fi
+
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	func_warning "'-l' and '-L' are ignored for objects" ;;
+      esac
+
+      test -n "$rpath" && \
+	func_warning "'-rpath' is ignored for objects"
+
+      test -n "$xrpath" && \
+	func_warning "'-R' is ignored for objects"
+
+      test -n "$vinfo" && \
+	func_warning "'-version-info' is ignored for objects"
+
+      test -n "$release" && \
+	func_warning "'-release' is ignored for objects"
+
+      case $output in
+      *.lo)
+	test -n "$objs$old_deplibs" && \
+	  func_fatal_error "cannot build library object '$output' from non-libtool objects"
+
+	libobj=$output
+	func_lo2o "$libobj"
+	obj=$func_lo2o_result
+	;;
+      *)
+	libobj=
+	obj=$output
+	;;
+      esac
+
+      # Delete the old objects.
+      $opt_dry_run || $RM $obj $libobj
+
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # if reload_cmds runs $LD directly, get rid of -Wl from
+      # whole_archive_flag_spec and hope we can get by with turning comma
+      # into space.
+      case $reload_cmds in
+        *\$LD[\ \$]*) wl= ;;
+      esac
+      if test -n "$convenience"; then
+	if test -n "$whole_archive_flag_spec"; then
+	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+	  test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+	  reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags
+	else
+	  gentop=$output_objdir/${obj}x
+	  func_append generated " $gentop"
+
+	  func_extract_archives $gentop $convenience
+	  reload_conv_objs="$reload_objs $func_extract_archives_result"
+	fi
+      fi
+
+      # If we're not building shared, we need to use non_pic_objs
+      test yes = "$build_libtool_libs" || libobjs=$non_pic_objects
+
+      # Create the old-style object.
+      reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs
+
+      output=$obj
+      func_execute_cmds "$reload_cmds" 'exit $?'
+
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+	if test -n "$gentop"; then
+	  func_show_eval '${RM}r "$gentop"'
+	fi
+
+	exit $EXIT_SUCCESS
+      fi
+
+      test yes = "$build_libtool_libs" || {
+	if test -n "$gentop"; then
+	  func_show_eval '${RM}r "$gentop"'
+	fi
+
+	# Create an invalid libtool object if no PIC, so that we don't
+	# accidentally link it into a program.
+	# $show "echo timestamp > $libobj"
+	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+	exit $EXIT_SUCCESS
+      }
+
+      if test -n "$pic_flag" || test default != "$pic_mode"; then
+	# Only do commands if we really have different PIC objects.
+	reload_objs="$libobjs $reload_conv_objs"
+	output=$libobj
+	func_execute_cmds "$reload_cmds" 'exit $?'
+      fi
+
+      if test -n "$gentop"; then
+	func_show_eval '${RM}r "$gentop"'
+      fi
+
+      exit $EXIT_SUCCESS
+      ;;
+
+    prog)
+      case $host in
+	*cygwin*) func_stripname '' '.exe' "$output"
+	          output=$func_stripname_result.exe;;
+      esac
+      test -n "$vinfo" && \
+	func_warning "'-version-info' is ignored for programs"
+
+      test -n "$release" && \
+	func_warning "'-release' is ignored for programs"
+
+      $preload \
+	&& test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \
+	&& func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support."
+
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+	# On Rhapsody replace the C library is the System framework
+	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
+	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
+	;;
+      esac
+
+      case $host in
+      *-*-darwin*)
+	# Don't allow lazy linking, it breaks C++ global constructors
+	# But is supposedly fixed on 10.4 or later (yay!).
+	if test CXX = "$tagname"; then
+	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+	    10.[0123])
+	      func_append compile_command " $wl-bind_at_load"
+	      func_append finalize_command " $wl-bind_at_load"
+	    ;;
+	  esac
+	fi
+	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
+	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+	;;
+      esac
+
+
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+	case " $new_libs " in
+	*" -L$path/$objdir "*) ;;
+	*)
+	  case " $compile_deplibs " in
+	  *" -L$path/$objdir "*)
+	    func_append new_libs " -L$path/$objdir" ;;
+	  esac
+	  ;;
+	esac
+      done
+      for deplib in $compile_deplibs; do
+	case $deplib in
+	-L*)
+	  case " $new_libs " in
+	  *" $deplib "*) ;;
+	  *) func_append new_libs " $deplib" ;;
+	  esac
+	  ;;
+	*) func_append new_libs " $deplib" ;;
+	esac
+      done
+      compile_deplibs=$new_libs
+
+
+      func_append compile_command " $compile_deplibs"
+      func_append finalize_command " $finalize_deplibs"
+
+      if test -n "$rpath$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	for libdir in $rpath $xrpath; do
+	  # This is the magic to use -rpath.
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) func_append finalize_rpath " $libdir" ;;
+	  esac
+	done
+      fi
+
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs=$libdir
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    func_append rpath " $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) func_append perm_rpath " $libdir" ;;
+	  esac
+	fi
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+	  testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
+	  case :$dllsearchpath: in
+	  *":$libdir:"*) ;;
+	  ::) dllsearchpath=$libdir;;
+	  *) func_append dllsearchpath ":$libdir";;
+	  esac
+	  case :$dllsearchpath: in
+	  *":$testbindir:"*) ;;
+	  ::) dllsearchpath=$testbindir;;
+	  *) func_append dllsearchpath ":$testbindir";;
+	  esac
+	  ;;
+	esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir=$hardcode_libdirs
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath=$rpath
+
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs=$libdir
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    func_append rpath " $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$finalize_perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) func_append finalize_perm_rpath " $libdir" ;;
+	  esac
+	fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir=$hardcode_libdirs
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath=$rpath
+
+      if test -n "$libobjs" && test yes = "$build_old_libs"; then
+	# Transform all the library objects into standard objects.
+	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+      fi
+
+      func_generate_dlsyms "$outputname" "@PROGRAM@" false
+
+      # template prelinking step
+      if test -n "$prelink_cmds"; then
+	func_execute_cmds "$prelink_cmds" 'exit $?'
+      fi
+
+      wrappers_required=:
+      case $host in
+      *cegcc* | *mingw32ce*)
+        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
+        wrappers_required=false
+        ;;
+      *cygwin* | *mingw* )
+        test yes = "$build_libtool_libs" || wrappers_required=false
+        ;;
+      *)
+        if test no = "$need_relink" || test yes != "$build_libtool_libs"; then
+          wrappers_required=false
+        fi
+        ;;
+      esac
+      $wrappers_required || {
+	# Replace the output file specification.
+	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+	link_command=$compile_command$compile_rpath
+
+	# We have no uninstalled library dependencies, so finalize right now.
+	exit_status=0
+	func_show_eval "$link_command" 'exit_status=$?'
+
+	if test -n "$postlink_cmds"; then
+	  func_to_tool_file "$output"
+	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+	  func_execute_cmds "$postlink_cmds" 'exit $?'
+	fi
+
+	# Delete the generated files.
+	if test -f "$output_objdir/${outputname}S.$objext"; then
+	  func_show_eval '$RM "$output_objdir/${outputname}S.$objext"'
+	fi
+
+	exit $exit_status
+      }
+
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
+
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+	if test -n "$perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $perm_rpath; do
+	    func_append rpath "$dir:"
+	  done
+	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+	if test -n "$finalize_perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $finalize_perm_rpath; do
+	    func_append rpath "$dir:"
+	  done
+	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+      fi
+
+      if test yes = "$no_install"; then
+	# We don't need to create a wrapper script.
+	link_command=$compile_var$compile_command$compile_rpath
+	# Replace the output file specification.
+	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+	# Delete the old output file.
+	$opt_dry_run || $RM $output
+	# Link the executable and exit
+	func_show_eval "$link_command" 'exit $?'
+
+	if test -n "$postlink_cmds"; then
+	  func_to_tool_file "$output"
+	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+	  func_execute_cmds "$postlink_cmds" 'exit $?'
+	fi
+
+	exit $EXIT_SUCCESS
+      fi
+
+      case $hardcode_action,$fast_install in
+        relink,*)
+	  # Fast installation is not supported
+	  link_command=$compile_var$compile_command$compile_rpath
+	  relink_command=$finalize_var$finalize_command$finalize_rpath
+
+	  func_warning "this platform does not like uninstalled shared libraries"
+	  func_warning "'$output' will be relinked during installation"
+	  ;;
+        *,yes)
+	  link_command=$finalize_var$compile_command$finalize_rpath
+	  relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
+          ;;
+	*,no)
+	  link_command=$compile_var$compile_command$compile_rpath
+	  relink_command=$finalize_var$finalize_command$finalize_rpath
+          ;;
+	*,needless)
+	  link_command=$finalize_var$compile_command$finalize_rpath
+	  relink_command=
+          ;;
+      esac
+
+      # Replace the output file specification.
+      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+      # Delete the old output files.
+      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+      func_show_eval "$link_command" 'exit $?'
+
+      if test -n "$postlink_cmds"; then
+	func_to_tool_file "$output_objdir/$outputname"
+	postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+	func_execute_cmds "$postlink_cmds" 'exit $?'
+      fi
+
+      # Now create the wrapper script.
+      func_verbose "creating $output"
+
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+	# Preserve any variables that may affect compiler behavior
+	for var in $variables_saved_for_relink; do
+	  if eval test -z \"\${$var+set}\"; then
+	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+	  elif eval var_value=\$$var; test -z "$var_value"; then
+	    relink_command="$var=; export $var; $relink_command"
+	  else
+	    func_quote_for_eval "$var_value"
+	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+	  fi
+	done
+	relink_command="(cd `pwd`; $relink_command)"
+	relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+      fi
+
+      # Only actually do things if not in dry run mode.
+      $opt_dry_run || {
+	# win32 will think the script is a binary if it has
+	# a .exe suffix, so we strip it off here.
+	case $output in
+	  *.exe) func_stripname '' '.exe' "$output"
+	         output=$func_stripname_result ;;
+	esac
+	# test for cygwin because mv fails w/o .exe extensions
+	case $host in
+	  *cygwin*)
+	    exeext=.exe
+	    func_stripname '' '.exe' "$outputname"
+	    outputname=$func_stripname_result ;;
+	  *) exeext= ;;
+	esac
+	case $host in
+	  *cygwin* | *mingw* )
+	    func_dirname_and_basename "$output" "" "."
+	    output_name=$func_basename_result
+	    output_path=$func_dirname_result
+	    cwrappersource=$output_path/$objdir/lt-$output_name.c
+	    cwrapper=$output_path/$output_name.exe
+	    $RM $cwrappersource $cwrapper
+	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+	    func_emit_cwrapperexe_src > $cwrappersource
+
+	    # The wrapper executable is built using the $host compiler,
+	    # because it contains $host paths and files. If cross-
+	    # compiling, it, like the target executable, must be
+	    # executed on the $host or under an emulation environment.
+	    $opt_dry_run || {
+	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
+	      $STRIP $cwrapper
+	    }
+
+	    # Now, create the wrapper script for func_source use:
+	    func_ltwrapper_scriptname $cwrapper
+	    $RM $func_ltwrapper_scriptname_result
+	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
+	    $opt_dry_run || {
+	      # note: this script will not be executed, so do not chmod.
+	      if test "x$build" = "x$host"; then
+		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+	      else
+		func_emit_wrapper no > $func_ltwrapper_scriptname_result
+	      fi
+	    }
+	  ;;
+	  * )
+	    $RM $output
+	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
+
+	    func_emit_wrapper no > $output
+	    chmod +x $output
+	  ;;
+	esac
+      }
+      exit $EXIT_SUCCESS
+      ;;
+    esac
+
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
+
+      case $build_libtool_libs in
+        convenience)
+	  oldobjs="$libobjs_save $symfileobj"
+	  addlibs=$convenience
+	  build_libtool_libs=no
+	  ;;
+	module)
+	  oldobjs=$libobjs_save
+	  addlibs=$old_convenience
+	  build_libtool_libs=no
+          ;;
+	*)
+	  oldobjs="$old_deplibs $non_pic_objects"
+	  $preload && test -f "$symfileobj" \
+	    && func_append oldobjs " $symfileobj"
+	  addlibs=$old_convenience
+	  ;;
+      esac
+
+      if test -n "$addlibs"; then
+	gentop=$output_objdir/${outputname}x
+	func_append generated " $gentop"
+
+	func_extract_archives $gentop $addlibs
+	func_append oldobjs " $func_extract_archives_result"
+      fi
+
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then
+	cmds=$old_archive_from_new_cmds
+      else
+
+	# Add any objects from preloaded convenience libraries
+	if test -n "$dlprefiles"; then
+	  gentop=$output_objdir/${outputname}x
+	  func_append generated " $gentop"
+
+	  func_extract_archives $gentop $dlprefiles
+	  func_append oldobjs " $func_extract_archives_result"
+	fi
+
+	# POSIX demands no paths to be encoded in archives.  We have
+	# to avoid creating archives with duplicate basenames if we
+	# might have to extract them afterwards, e.g., when creating a
+	# static archive out of a convenience library, or when linking
+	# the entirety of a libtool archive into another (currently
+	# not supported by libtool).
+	if (for obj in $oldobjs
+	    do
+	      func_basename "$obj"
+	      $ECHO "$func_basename_result"
+	    done | sort | sort -uc >/dev/null 2>&1); then
+	  :
+	else
+	  echo "copying selected object files to avoid basename conflicts..."
+	  gentop=$output_objdir/${outputname}x
+	  func_append generated " $gentop"
+	  func_mkdir_p "$gentop"
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  counter=1
+	  for obj in $save_oldobjs
+	  do
+	    func_basename "$obj"
+	    objbase=$func_basename_result
+	    case " $oldobjs " in
+	    " ") oldobjs=$obj ;;
+	    *[\ /]"$objbase "*)
+	      while :; do
+		# Make sure we don't pick an alternate name that also
+		# overlaps.
+		newobj=lt$counter-$objbase
+		func_arith $counter + 1
+		counter=$func_arith_result
+		case " $oldobjs " in
+		*[\ /]"$newobj "*) ;;
+		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
+		esac
+	      done
+	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+	      func_append oldobjs " $gentop/$newobj"
+	      ;;
+	    *) func_append oldobjs " $obj" ;;
+	    esac
+	  done
+	fi
+	func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+	tool_oldlib=$func_to_tool_file_result
+	eval cmds=\"$old_archive_cmds\"
+
+	func_len " $cmds"
+	len=$func_len_result
+	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  cmds=$old_archive_cmds
+	elif test -n "$archiver_list_spec"; then
+	  func_verbose "using command file archive linking..."
+	  for obj in $oldobjs
+	  do
+	    func_to_tool_file "$obj"
+	    $ECHO "$func_to_tool_file_result"
+	  done > $output_objdir/$libname.libcmd
+	  func_to_tool_file "$output_objdir/$libname.libcmd"
+	  oldobjs=" $archiver_list_spec$func_to_tool_file_result"
+	  cmds=$old_archive_cmds
+	else
+	  # the command line is too long to link in one step, link in parts
+	  func_verbose "using piecewise archive linking..."
+	  save_RANLIB=$RANLIB
+	  RANLIB=:
+	  objlist=
+	  concat_cmds=
+	  save_oldobjs=$oldobjs
+	  oldobjs=
+	  # Is there a better way of finding the last object in the list?
+	  for obj in $save_oldobjs
+	  do
+	    last_oldobj=$obj
+	  done
+	  eval test_cmds=\"$old_archive_cmds\"
+	  func_len " $test_cmds"
+	  len0=$func_len_result
+	  len=$len0
+	  for obj in $save_oldobjs
+	  do
+	    func_len " $obj"
+	    func_arith $len + $func_len_result
+	    len=$func_arith_result
+	    func_append objlist " $obj"
+	    if test "$len" -lt "$max_cmd_len"; then
+	      :
+	    else
+	      # the above command should be used before it gets too long
+	      oldobjs=$objlist
+	      if test "$obj" = "$last_oldobj"; then
+		RANLIB=$save_RANLIB
+	      fi
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\$concat_cmds$old_archive_cmds\"
+	      objlist=
+	      len=$len0
+	    fi
+	  done
+	  RANLIB=$save_RANLIB
+	  oldobjs=$objlist
+	  if test -z "$oldobjs"; then
+	    eval cmds=\"\$concat_cmds\"
+	  else
+	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+	  fi
+	fi
+      fi
+      func_execute_cmds "$cmds" 'exit $?'
+    done
+
+    test -n "$generated" && \
+      func_show_eval "${RM}r$generated"
+
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test yes = "$build_old_libs" && old_library=$libname.$libext
+      func_verbose "creating $output"
+
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+	if eval test -z \"\${$var+set}\"; then
+	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+	elif eval var_value=\$$var; test -z "$var_value"; then
+	  relink_command="$var=; export $var; $relink_command"
+	else
+	  func_quote_for_eval "$var_value"
+	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+	fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
+      if test yes = "$hardcode_automatic"; then
+	relink_command=
+      fi
+
+      # Only create the output if not a dry run.
+      $opt_dry_run || {
+	for installed in no yes; do
+	  if test yes = "$installed"; then
+	    if test -z "$install_libdir"; then
+	      break
+	    fi
+	    output=$output_objdir/${outputname}i
+	    # Replace all uninstalled libtool libraries with the installed ones
+	    newdependency_libs=
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      *.la)
+		func_basename "$deplib"
+		name=$func_basename_result
+		func_resolve_sysroot "$deplib"
+		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
+		test -z "$libdir" && \
+		  func_fatal_error "'$deplib' is not a valid libtool archive"
+		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
+		;;
+	      -L*)
+		func_stripname -L '' "$deplib"
+		func_replace_sysroot "$func_stripname_result"
+		func_append newdependency_libs " -L$func_replace_sysroot_result"
+		;;
+	      -R*)
+		func_stripname -R '' "$deplib"
+		func_replace_sysroot "$func_stripname_result"
+		func_append newdependency_libs " -R$func_replace_sysroot_result"
+		;;
+	      *) func_append newdependency_libs " $deplib" ;;
+	      esac
+	    done
+	    dependency_libs=$newdependency_libs
+	    newdlfiles=
+
+	    for lib in $dlfiles; do
+	      case $lib in
+	      *.la)
+	        func_basename "$lib"
+		name=$func_basename_result
+		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		test -z "$libdir" && \
+		  func_fatal_error "'$lib' is not a valid libtool archive"
+		func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
+		;;
+	      *) func_append newdlfiles " $lib" ;;
+	      esac
+	    done
+	    dlfiles=$newdlfiles
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+	      *.la)
+		# Only pass preopened files to the pseudo-archive (for
+		# eventual linking with the app. that links it) if we
+		# didn't already link the preopened objects directly into
+		# the library:
+		func_basename "$lib"
+		name=$func_basename_result
+		eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+		test -z "$libdir" && \
+		  func_fatal_error "'$lib' is not a valid libtool archive"
+		func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
+		;;
+	      esac
+	    done
+	    dlprefiles=$newdlprefiles
+	  else
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      func_append newdlfiles " $abs"
+	    done
+	    dlfiles=$newdlfiles
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      case $lib in
+		[\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
+		*) abs=`pwd`"/$lib" ;;
+	      esac
+	      func_append newdlprefiles " $abs"
+	    done
+	    dlprefiles=$newdlprefiles
+	  fi
+	  $RM $output
+	  # place dlname in correct position for cygwin
+	  # In fact, it would be nice if we could use this code for all target
+	  # systems that can't hard-code library paths into their executables
+	  # and that have no shared library path variable independent of PATH,
+	  # but it turns out we can't easily determine that from inspecting
+	  # libtool variables, so we have to hard-code the OSs to which it
+	  # applies here; at the moment, that means platforms that use the PE
+	  # object format with DLL files.  See the long comment at the top of
+	  # tests/bindir.at for full details.
+	  tdlname=$dlname
+	  case $host,$output,$installed,$module,$dlname in
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
+	      # If a -bindir argument was supplied, place the dll there.
+	      if test -n "$bindir"; then
+		func_relative_path "$install_libdir" "$bindir"
+		tdlname=$func_relative_path_result/$dlname
+	      else
+		# Otherwise fall back on heuristic.
+		tdlname=../bin/$dlname
+	      fi
+	      ;;
+	  esac
+	  $ECHO > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Linker flags that cannot go in dependency_libs.
+inherited_linker_flags='$new_inherited_linker_flags'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Names of additional weak libraries provided by this library
+weak_library_names='$weak_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+	  if test no,yes = "$installed,$need_relink"; then
+	    $ECHO >> $output "\
+relink_command=\"$relink_command\""
+	  fi
+	done
+      }
+
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
+      ;;
+    esac
+    exit $EXIT_SUCCESS
+}
+
+if test link = "$opt_mode" || test relink = "$opt_mode"; then
+  func_mode_link ${1+"$@"}
+fi
+
+
+# func_mode_uninstall arg...
+func_mode_uninstall ()
+{
+    $debug_cmd
+
+    RM=$nonopt
+    files=
+    rmforce=false
+    exit_status=0
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic=$magic
+
+    for arg
+    do
+      case $arg in
+      -f) func_append RM " $arg"; rmforce=: ;;
+      -*) func_append RM " $arg" ;;
+      *) func_append files " $arg" ;;
+      esac
+    done
+
+    test -z "$RM" && \
+      func_fatal_help "you must specify an RM program"
+
+    rmdirs=
+
+    for file in $files; do
+      func_dirname "$file" "" "."
+      dir=$func_dirname_result
+      if test . = "$dir"; then
+	odir=$objdir
+      else
+	odir=$dir/$objdir
+      fi
+      func_basename "$file"
+      name=$func_basename_result
+      test uninstall = "$opt_mode" && odir=$dir
+
+      # Remember odir for removal later, being careful to avoid duplicates
+      if test clean = "$opt_mode"; then
+	case " $rmdirs " in
+	  *" $odir "*) ;;
+	  *) func_append rmdirs " $odir" ;;
+	esac
+      fi
+
+      # Don't error if the file doesn't exist and rm -f was used.
+      if { test -L "$file"; } >/dev/null 2>&1 ||
+	 { test -h "$file"; } >/dev/null 2>&1 ||
+	 test -f "$file"; then
+	:
+      elif test -d "$file"; then
+	exit_status=1
+	continue
+      elif $rmforce; then
+	continue
+      fi
+
+      rmfiles=$file
+
+      case $name in
+      *.la)
+	# Possibly a libtool archive, so verify it.
+	if func_lalib_p "$file"; then
+	  func_source $dir/$name
+
+	  # Delete the libtool libraries and symlinks.
+	  for n in $library_names; do
+	    func_append rmfiles " $odir/$n"
+	  done
+	  test -n "$old_library" && func_append rmfiles " $odir/$old_library"
+
+	  case $opt_mode in
+	  clean)
+	    case " $library_names " in
+	    *" $dlname "*) ;;
+	    *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
+	    esac
+	    test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
+	    ;;
+	  uninstall)
+	    if test -n "$library_names"; then
+	      # Do each command in the postuninstall commands.
+	      func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1'
+	    fi
+
+	    if test -n "$old_library"; then
+	      # Do each command in the old_postuninstall commands.
+	      func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1'
+	    fi
+	    # FIXME: should reinstall the best remaining shared library.
+	    ;;
+	  esac
+	fi
+	;;
+
+      *.lo)
+	# Possibly a libtool object, so verify it.
+	if func_lalib_p "$file"; then
+
+	  # Read the .lo file
+	  func_source $dir/$name
+
+	  # Add PIC object to the list of files to remove.
+	  if test -n "$pic_object" && test none != "$pic_object"; then
+	    func_append rmfiles " $dir/$pic_object"
+	  fi
+
+	  # Add non-PIC object to the list of files to remove.
+	  if test -n "$non_pic_object" && test none != "$non_pic_object"; then
+	    func_append rmfiles " $dir/$non_pic_object"
+	  fi
+	fi
+	;;
+
+      *)
+	if test clean = "$opt_mode"; then
+	  noexename=$name
+	  case $file in
+	  *.exe)
+	    func_stripname '' '.exe' "$file"
+	    file=$func_stripname_result
+	    func_stripname '' '.exe' "$name"
+	    noexename=$func_stripname_result
+	    # $file with .exe has already been added to rmfiles,
+	    # add $file without .exe
+	    func_append rmfiles " $file"
+	    ;;
+	  esac
+	  # Do a test to see if this is a libtool program.
+	  if func_ltwrapper_p "$file"; then
+	    if func_ltwrapper_executable_p "$file"; then
+	      func_ltwrapper_scriptname "$file"
+	      relink_command=
+	      func_source $func_ltwrapper_scriptname_result
+	      func_append rmfiles " $func_ltwrapper_scriptname_result"
+	    else
+	      relink_command=
+	      func_source $dir/$noexename
+	    fi
+
+	    # note $name still contains .exe if it was in $file originally
+	    # as does the version of $file that was added into $rmfiles
+	    func_append rmfiles " $odir/$name $odir/${name}S.$objext"
+	    if test yes = "$fast_install" && test -n "$relink_command"; then
+	      func_append rmfiles " $odir/lt-$name"
+	    fi
+	    if test "X$noexename" != "X$name"; then
+	      func_append rmfiles " $odir/lt-$noexename.c"
+	    fi
+	  fi
+	fi
+	;;
+      esac
+      func_show_eval "$RM $rmfiles" 'exit_status=1'
+    done
+
+    # Try to remove the $objdir's in the directories where we deleted files
+    for dir in $rmdirs; do
+      if test -d "$dir"; then
+	func_show_eval "rmdir $dir >/dev/null 2>&1"
+      fi
+    done
+
+    exit $exit_status
+}
+
+if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then
+  func_mode_uninstall ${1+"$@"}
+fi
+
+test -z "$opt_mode" && {
+  help=$generic_help
+  func_fatal_help "you must specify a MODE"
+}
+
+test -z "$exec_cmd" && \
+  func_fatal_help "invalid operation mode '$opt_mode'"
+
+if test -n "$exec_cmd"; then
+  eval exec "$exec_cmd"
+  exit $EXIT_FAILURE
+fi
+
+exit $exit_status
+
+
+# The TAGs below are defined such that we never get into a situation
+# where we disable both kinds of libraries.  Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them.  This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration.  But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
+
+# ### BEGIN LIBTOOL TAG CONFIG: CXX
+
+# The linker used to build libraries.
+LD="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld"
+
+# How to create reloadable object files.
+reload_flag=" -r"
+reload_cmds="\$LTCC \$LTCFLAGS -nostdlib \$wl-r -o \$output\$reload_objs"
+
+# Commands used to build an old-style archive.
+old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
+
+# A language specific compiler.
+CC="clang++"
+
+# Is the compiler the GNU compiler?
+with_gcc=yes
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=" -fno-builtin"
+
+# Additional compiler flags for building library objects.
+pic_flag=" -fno-common -DPIC"
+
+# How to pass a linker flag through the compiler.
+wl="-Wl,"
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=""
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o="yes"
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=no
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=no
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=""
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec="\`for conv in \$convenience\\\"\\\"; do test  -n \\\"\$conv\\\" && new_convenience=\\\"\$new_convenience \$wl-force_load,\$conv\\\"; done; func_echo_all \\\"\$new_convenience\\\"\`"
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object="no"
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=""
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=""
+
+# Commands used to build a shared archive.
+archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module"
+archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym"
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags"
+module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym"
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld="no"
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag="\$wl-undefined \${wl}dynamic_lookup"
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=""
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec=""
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=""
+
+# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=no
+
+# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting $shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=no
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=no
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=unsupported
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=yes
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=no
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=yes
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=no
+
+# The commands to list exported symbols.
+export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
+
+# Symbols that must always be exported.
+include_expsyms=""
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=""
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=""
+
+# Specify filename containing input files.
+file_list_spec=""
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=immediate
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=""
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=""
+postdep_objects=""
+predeps=""
+postdeps=""
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=""
+
+# ### END LIBTOOL TAG CONFIG: CXX
+
+# ### BEGIN LIBTOOL TAG CONFIG: F77
+
+# The linker used to build libraries.
+LD="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld"
+
+# How to create reloadable object files.
+reload_flag=" -r"
+reload_cmds="\$LTCC \$LTCFLAGS -nostdlib \$wl-r -o \$output\$reload_objs"
+
+# Commands used to build an old-style archive.
+old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
+
+# A language specific compiler.
+CC="gfortran-4.8"
+
+# Is the compiler the GNU compiler?
+with_gcc=yes
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=""
+
+# Additional compiler flags for building library objects.
+pic_flag=" -fno-common"
+
+# How to pass a linker flag through the compiler.
+wl="-Wl,"
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=""
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o="yes"
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=no
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=no
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=""
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec="\`for conv in \$convenience\\\"\\\"; do test  -n \\\"\$conv\\\" && new_convenience=\\\"\$new_convenience \$wl-force_load,\$conv\\\"; done; func_echo_all \\\"\$new_convenience\\\"\`"
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object="yes"
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=""
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=""
+
+# Commands used to build a shared archive.
+archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module"
+archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym"
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags"
+module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym"
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld="no"
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag="\$wl-undefined \${wl}dynamic_lookup"
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=""
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec=""
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=""
+
+# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=no
+
+# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting $shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=no
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=no
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=unsupported
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=yes
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=no
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=yes
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=no
+
+# The commands to list exported symbols.
+export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
+
+# Symbols that must always be exported.
+include_expsyms=""
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=""
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=""
+
+# Specify filename containing input files.
+file_list_spec=""
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=immediate
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=""
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=""
+postdep_objects=""
+predeps=""
+postdeps=""
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=""
+
+# ### END LIBTOOL TAG CONFIG: F77
+
+# ### BEGIN LIBTOOL TAG CONFIG: FC
+
+# The linker used to build libraries.
+LD="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld"
+
+# How to create reloadable object files.
+reload_flag=" -r"
+reload_cmds="\$LTCC \$LTCFLAGS -nostdlib \$wl-r -o \$output\$reload_objs"
+
+# Commands used to build an old-style archive.
+old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib"
+
+# A language specific compiler.
+CC="gfortran-4.8"
+
+# Is the compiler the GNU compiler?
+with_gcc=yes
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=""
+
+# Additional compiler flags for building library objects.
+pic_flag=" -fno-common"
+
+# How to pass a linker flag through the compiler.
+wl="-Wl,"
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=""
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o="yes"
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=no
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=no
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=""
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec="\`for conv in \$convenience\\\"\\\"; do test  -n \\\"\$conv\\\" && new_convenience=\\\"\$new_convenience \$wl-force_load,\$conv\\\"; done; func_echo_all \\\"\$new_convenience\\\"\`"
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object="yes"
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=""
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=""
+
+# Commands used to build a shared archive.
+archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module"
+archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym"
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags"
+module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym"
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld="no"
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag="\$wl-undefined \${wl}dynamic_lookup"
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=""
+
+# Flag to hardcode $libdir into a binary during linking.
+# This must work even if $libdir does not exist
+hardcode_libdir_flag_spec=""
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=""
+
+# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=no
+
+# Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting $shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=no
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=no
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=unsupported
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=yes
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=no
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=yes
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=no
+
+# The commands to list exported symbols.
+export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols"
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*"
+
+# Symbols that must always be exported.
+include_expsyms=""
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=""
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=""
+
+# Specify filename containing input files.
+file_list_spec=""
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=immediate
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=""
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=""
+postdep_objects=""
+predeps=""
+postdeps=""
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=""
+
+# ### END LIBTOOL TAG CONFIG: FC

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/libtool
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/config
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/config	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/config	(revision 2476)
@@ -0,0 +1,288 @@
+## config -- Simple shell script to get the values of basic R configure
+## variables, or the header and library flags necessary for linking
+## against R.
+##
+## Usage:
+##   R CMD config [options] [VAR]
+
+## Copyright (C) 2002-2016 The R Core Team
+##
+## This document is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## A copy of the GNU General Public License is available at
+## https://www.R-project.org/Licenses/
+
+revision='$Revision: 71188 $'
+version=`set - ${revision}; echo ${2}`
+version="R configuration information retrieval script: ${R_VERSION} (r${version})
+
+Copyright (C) 2002-2015 The R Core Team.
+This is free software; see the GNU General Public License version 2
+or later for copying conditions.  There is NO warranty."
+
+usage="Usage: R CMD config [options] [VAR]
+
+Get the value of a basic R configure variable VAR which must be among
+those listed in the 'Variables' section below, or the header and
+library flags necessary for linking against R.
+
+Options:
+  -h, --help            print short help message and exit
+  -v, --version         print version info and exit
+      --cppflags        print pre-processor flags required to compile
+			a C/C++ file using R as a library
+      --ldflags         print linker flags needed for linking a front-end
+                        against the R library
+      --no-user-files  ignore customization files under ~/.R
+      --no-site-files  ignore site customization files under R_HOME/etc
+
+Variables:
+  BLAS_LIBS     flags needed for linking against external BLAS libraries
+  CC            C compiler command
+  CFLAGS        C compiler flags
+  CPICFLAGS     special flags for compiling C code to be included in a
+		shared library
+  CPP           C preprocessor
+  CPPFLAGS      C/C++ preprocessor flags, e.g. -I<dir> if you have
+		headers in a nonstandard directory <dir>
+  CXX           compiler command for C++98 code
+  CXXCPP        C++98 preprocessor
+  CXXFLAGS      compiler flags for CXX
+  CXXPICFLAGS   special flags for compiling C++98 code to be included in a
+		shared library
+  CXX1X         compiler command for C++11 code
+  CXX1XSTD      flag used with CXX1X to enable C++11 support
+  CXX1XFLAGS    further compiler flags for CXX1X
+  CXX1XPICFLAGS
+                special flags for compiling C++11 code to be included in
+                a shared library
+  DYLIB_EXT	file extension (including '.') for dynamic libraries
+  DYLIB_LD      command for linking dynamic libraries which contain
+		object files from a C or Fortran compiler only
+  DYLIB_LDFLAGS
+		special flags used by DYLIB_LD
+  F77           Fortran 77 compiler command
+  FFLAGS        Fortran 77 compiler flags
+  FLIBS         linker flags needed to link Fortran code
+  FPICFLAGS     special flags for compiling Fortran code to be turned
+		into a shared library
+  FC            Fortran 9x compiler command
+  FCFLAGS       Fortran 9x compiler flags
+  FCPICFLAGS    special flags for compiling Fortran 9x code to be turned
+		into a shared library
+  JAR           Java archive tool command
+  JAVA          Java interpreter command
+  JAVAC         Java compiler command
+  JAVAH         Java header and stub generator command
+  JAVA_HOME     path to the home of Java distribution
+  JAVA_LIBS     flags needed for linking against Java libraries
+  JAVA_CPPFLAGS C preprocessor flags needed for compiling JNI programs
+  LAPACK_LIBS   flags needed for linking against external LAPACK libraries
+  LIBnn         location for libraries, e.g. 'lib' or 'lib64' on this platform
+  LDFLAGS       linker flags, e.g. -L<dir> if you have libraries in a
+		nonstandard directory <dir>
+  OBJC          Objective C compiler command
+  OBJCFLAGS     Objective C compiler flags
+  MAKE          Make command
+  SAFE_FFLAGS   Safe (as conformant as possible) Fortran 77 compiler flags
+  SHLIB_CFLAGS  additional CFLAGS used when building shared objects
+  SHLIB_CXXLD   command for linking shared objects which contain
+		object files from a C++ compiler
+  SHLIB_CXXLDFLAGS
+		special flags used by SHLIB_CXXLD
+  SHLIB_EXT	file extension (including '.') for shared objects
+  SHLIB_FFLAGS  additional FFLAGS used when building shared objects
+  SHLIB_LD      command for linking shared objects which contain
+		object files from a C or Fortran compiler only
+  SHLIB_LDFLAGS
+		special flags used by SHLIB_LD
+  SHLIB_FCLD, SHLIB_FCLDFLAGS
+		ditto when using Fortran 9x
+  TCLTK_CPPFLAGS
+		flags needed for finding the tcl.h and tk.h headers
+  TCLTK_LIBS    flags needed for linking against the Tcl and Tk libraries
+"
+
+if test "${R_OSTYPE}" = "windows"; then
+  usage="${usage}
+Windows only:
+  COMPILED_BY   name and version of compiler used to build R"
+fi
+
+usage="${usage}
+  
+Report bugs at bugs.r-project.org ."
+
+## <NOTE>
+## The variables are basically the precious configure variables (with
+## the R_* and MAIN_* ones removed), plus FLIBS and BLAS_LIBS.
+## One could use
+##   precious_configure_vars=`~/src/R/configure --help \
+##     | sed -n '/^Some influential/,/^[^ ]/p' \
+##     | sed '/^[^ ]/d' \
+##     | sed 's/^  //' \
+##     | cut -f1 -d ' ' \
+##     | grep -v '^MAIN_' \
+##     | grep -v '^R_' \
+##     | sort \
+##     | uniq`
+## to obtain the configure vars and hence create most of the above usage
+## info as well as the list of accepted variables below automatically.
+## </NOTE>
+
+if test $# = 0; then
+  echo "${usage}"
+  exit 1
+fi
+
+if test "${R_OSTYPE}" = "windows"; then
+  MAKE=make
+  R_DOC_DIR=${R_HOME}/doc
+  R_INCLUDE_DIR=${R_HOME}/include
+  R_SHARE_DIR=${R_HOME}/share
+fi
+
+makefiles="-f ${R_HOME}/etc${R_ARCH}/Makeconf -f ${R_SHARE_DIR}/make/config.mk"
+## avoid passing down -jN
+MAKEFLAGS=
+export MAKEFLAGS
+query="${MAKE} -s ${makefiles} print R_HOME=${R_HOME}"
+
+LIBR=`eval $query VAR=LIBR`
+STATIC_LIBR=`eval $query VAR=STATIC_LIBR`
+MAIN_LDFLAGS=`eval $query VAR=MAIN_LDFLAGS`
+LIBS=`eval $query VAR=LIBS`
+
+
+if test -n "${R_ARCH}"; then
+  includes="-I${R_INCLUDE_DIR} -I${R_INCLUDE_DIR}${R_ARCH}"
+else
+  includes="-I${R_INCLUDE_DIR}"
+fi
+
+var=
+personal="yes"
+site="yes"
+while test -n "${1}"; do
+  case "${1}" in
+    -h|--help)
+      echo "${usage}"; exit 0 ;;
+    -v|--version)
+      echo "${version}"; exit 0 ;;
+    --cppflags)
+      if test -z "${LIBR}"; then
+	if test -z "${STATIC_LIBR}"; then
+	  echo "R was not built as a library" >&2
+	else
+	  echo "${includes}"
+	fi
+      else
+	echo "${includes}"
+      fi
+      exit 0
+      ;;
+    --ldflags)
+      ## changed in R 3.1.0 to be those needed to link a front-end
+      if test -z "${LIBR}"; then
+	if test -z "${STATIC_LIBR}"; then
+	  echo "R was not built as a library" >&2
+	else
+	  echo "${MAIN_LDFLAGS} ${LDFLAGS} ${STATIC_LIBR}"
+	fi
+      else
+	echo "${MAIN_LDFLAGS} ${LDFLAGS} ${LIBR} ${LIBS}"
+      fi
+      exit 0
+      ;;
+    --no-user-files)
+      personal="no"
+      ;;
+    --no-site-files)
+      site="no"
+      ;;
+    *)
+      if test -z "${var}"; then
+	var="${1}"
+      else
+	echo "ERROR: cannot query more than one variable" >&2
+	exit 1
+      fi
+      ;;
+  esac
+  shift
+done
+
+## quotes added in R 3.3.2
+if test "${site}" = "yes"; then
+: ${R_MAKEVARS_SITE="${R_HOME}/etc${R_ARCH}/Makevars.site"}
+  if test -f "${R_MAKEVARS_SITE}"; then
+    makefiles="${makefiles} -f \"${R_MAKEVARS_SITE}\""
+  fi
+fi
+if test "${personal}" = "yes"; then
+  if test "${R_OSTYPE}" = "windows"; then
+    if test -f "${R_MAKEVARS_USER}"; then
+      makefiles="${makefiles} -f \"${R_MAKEVARS_USER}\""
+    elif test ${R_ARCH} = "/x64" -a -f "${HOME}/.R/Makevars.win64"; then
+      makefiles="${makefiles} -f \"${HOME}\"/.R/Makevars.win64"
+    elif test -f "${HOME}/.R/Makevars.win"; then
+      makefiles="${makefiles} -f \"${HOME}\"/.R/Makevars.win"
+    elif test -f "${HOME}/.R/Makevars"; then
+      makefiles="${makefiles} -f \"${HOME}\"/.R/Makevars"
+    fi
+  else
+    . ${R_HOME}/etc${R_ARCH}/Renviron
+    if test -f "${R_MAKEVARS_USER}"; then
+      makefiles="${makefiles} -f \"${R_MAKEVARS_USER}\""
+    elif test -f "${HOME}/.R/Makevars-${R_PLATFORM}"; then
+      makefiles="${makefiles} -f \"${HOME}\"/.R/Makevars-${R_PLATFORM}"
+    elif test -f "${HOME}/.R/Makevars"; then
+      makefiles="${makefiles} -f \"${HOME}\"/.R/Makevars"
+    fi
+  fi
+fi
+query="${MAKE} -s ${makefiles} print R_HOME=${R_HOME}"
+
+ok_c_vars="CC CFLAGS CPICFLAGS CPP CPPFLAGS"
+ok_cxx_vars="CXX CXXCPP CXXFLAGS CXXPICFLAGS CXX1X CXX1XSTD CXX1XFLAGS CXX1XPICFLAGS"
+ok_dylib_vars="DYLIB_EXT DYLIB_LD DYLIB_LDFLAGS"
+ok_objc_vars="OBJC OBJCFLAGS"
+ok_java_vars="JAVA JAVAC JAVAH JAR JAVA_HOME JAVA_LIBS JAVA_CPPFLAGS"
+ok_f77_vars="F77 FFLAGS FPICFLAGS FLIBS SAFE_FFLAGS FC FCFLAGS FCPICFLAGS"
+ok_ld_vars="LDFLAGS"
+ok_shlib_vars="SHLIB_CFLAGS SHLIB_CXXLD SHLIB_CXXLDFLAGS SHLIB_EXT SHLIB_FFLAGS SHLIB_LD SHLIB_LDFLAGS SHLIB_FCLD SHLIB_FCLDFLAGS"
+ok_tcltk_vars="TCLTK_CPPFLAGS TCLTK_LIBS"
+ok_other_vars="BLAS_LIBS LAPACK_LIBS MAKE LIBnn LOCAL_SOFT COMPILED_BY"
+
+## Can we do this elegantly using case?
+
+var_ok=no
+for v in ${ok_c_vars} ${ok_cxx_vars} ${ok_dylib_vars} ${ok_f77_vars} \
+	 ${ok_objc_vars} ${ok_java_vars} \
+	 ${ok_ld_vars} ${ok_shlib_vars} ${ok_tcltk_vars} \
+	 ${ok_other_vars}; do
+  if test "${var}" = "${v}"; then
+    var_ok=yes
+    break
+  fi
+done
+
+if test "${var_ok}" = yes; then
+  eval "${query} VAR=${var}"
+else
+  echo "ERROR: no information for variable '${var}'"
+  exit 1
+fi
+
+### Local Variables: ***
+### mode: sh ***
+### sh-indentation: 2 ***
+### End: ***

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/config
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/INSTALL
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/INSTALL	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/INSTALL	(revision 2476)
@@ -0,0 +1,34 @@
+# ${R_HOME}/bin/INSTALL -*- sh -*- for installing add-on packages
+
+if test -z "${R_INSTALL_VANILLA}"
+then vanilla_install=false
+else vanilla_install=true
+fi
+
+## Note: Almost all "--<args>" are now handled in R !
+args=
+while test -n "${1}"; do
+  case ${1} in
+    --no-vanilla)
+	  vanilla_install=false ;;
+    --use-vanilla)
+	  vanilla_install=true ;;
+
+  *)
+  ## quote each argument here, unquote in R code.
+  args="${args}nextArg${1}"
+  ;;
+  esac
+  shift
+done
+
+Rcmds=
+if [ $vanilla_install = true ]
+then ## get the user's  .libPaths()[1]:
+     args="${args}nextArg--maybe-get-user-libPaths"
+     myArgs='--vanilla'
+else myArgs='--no-restore'
+fi
+
+## NB: Apple's ICU needs LC_COLLATE set when R is started.
+echo 'tools:::.install_packages()' | R_DEFAULT_PACKAGES= LC_COLLATE=C "${R_HOME}/bin/R" $myArgs --slave --args ${args}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/INSTALL
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/check
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/check	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/check	(revision 2476)
@@ -0,0 +1,10 @@
+# ${R_HOME}/bin/check -*- sh -*- for checking add-on packages
+
+args=
+while test -n "${1}"; do
+  args="${args}nextArg${1}"
+  shift
+done
+
+## NB: Apple's ICU needs LC_COLLATE set when R is started.
+echo 'tools:::.check_packages()' | R_DEFAULT_PACKAGES= LC_COLLATE=C "${R_HOME}/bin/R" --no-restore --slave --args ${args}

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/check
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/javareconf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/javareconf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/javareconf	(revision 2476)
@@ -0,0 +1,421 @@
+if test -z "${R_HOME}"; then
+    echo "This command can be only executed via R CMD!"
+    exit 1
+fi
+
+## pick up configure-time settings
+. "${R_HOME}/etc${R_ARCH}/javaconf"
+
+DYLIB_EXT=`${R_HOME}/bin/R CMD config DYLIB_EXT`
+tools_classpath=${R_SHARE_DIR}/java
+
+revision='$Rev: 71249 $'
+version=`set - ${revision}; echo ${2}`
+version="R Java configurator: ${R_VERSION} (r${version})
+
+Copyright (C) 2002-2015 The R Core Team.
+This is free software; see the GNU General Public License version 2
+or later for copying conditions.  There is NO warranty."
+
+usage="
+Usage: R CMD javareconf [options]
+
+Detect current Java setup and update the corresponding configuration in R.
+
+Options:
+  -h, --help     print this help message and exit
+  -v, --version  print version info and exit
+  -n, --dry-run  perform Java detection, but don't touch any
+                 configuration files
+  -e <prog>      same as -n but exports all detected variables
+                 and runs <prog>. If -e is the last argument
+                 or <prog> is '' then a shell is used instead
+  xxx=yyy        evaluate the corresponding expression
+                 (e.g. JAVA_HOME=/usr/lib/java)
+
+Environment variables that can be used to influence the detection:
+  JAVA           path to a Java interpreter executable
+                 By default first 'java' command found on the PATH
+                 is taken (unless JAVA_HOME is also specified).
+  JAVA_HOME      home of the Java environment. If not specified,
+                 it will be detected automatically from the Java
+                 interpreter.
+  JAVAC          path to a Java compiler
+  JAVAH          path to a Java header/stub generator
+  JAR            path to a Java archive tool
+
+The following variables should be used with extreme caution. They
+must all match, so use only if you have a very special setup that
+javareconf cannot detect automatically:
+  JAVA_LD_LIBRARY_PATH library path necessary at run-time
+  JAVA_CPPFLAGS  C preprocessor flags necessary to compile JNI programs
+  JAVA_LIBS      libraries (as linker flags) necessary to compile
+                 JNI programs
+
+Report bugs at bugs.r-project.org ."
+
+
+dry_run=no
+export_vars=no
+while test -n "${1}"; do
+    case ${1} in
+	-help | --help | -h) echo "${usage}"; exit 0 ;;
+	-v | --version) echo "${version}"; exit 0 ;;
+	-n | --dry-run) dry_run=yes ;;
+	-e) dry_run=yes; export_vars=yes; run_prog="${2}"; if test "$#" != 1; then shift; fi ;;
+	*=*) eval ${1} ;;
+    esac
+    shift
+done
+
+## find java compiler binaries
+if test -z "${JAVA_HOME}" ; then
+    JAVA_PATH=${PATH}
+else
+    if test ! -d "${JAVA_HOME}"; then
+	echo "*** JAVA_HOME is not a valid path, ignoring"
+	JAVA_HOME=
+	JAVA_PATH=${PATH}
+    else
+	## try jre/bin first just in case we don't have full JDK
+	JAVA_PATH=${JAVA_HOME}:${JAVA_HOME}/jre/bin:${JAVA_HOME}/bin:${JAVA_HOME}/../bin:${PATH}
+    fi
+fi
+## if 'java' is not on the PATH or JAVA_HOME, add some guesses as of
+## where java could live
+JAVA_PATH=${JAVA_PATH}:/usr/java/bin:/usr/jdk/bin:/usr/lib/java/bin:/usr/lib/jdk/bin:/usr/local/java/bin:/usr/local/jdk/bin:/usr/local/lib/java/bin:/usr/local/lib/jdk/bin
+
+if test -z "$JAVA"; then
+    save_IFS=$IFS; IFS=:
+    for dir in ${JAVA_PATH}; do
+	if test -f "$dir/java"; then
+	    JAVA="$dir/java"
+	    break
+	fi
+    done
+    IFS=${save_IFS}
+fi
+
+if test -z "$JAVA"; then
+    echo "~*** Cannot find any Java interpreter~*** Please make sure 'java' is on your PATH or set JAVA_HOME correspondingly"|${SED-sed} -e 'y/~/\n/' >&2
+    exit 1
+fi
+
+echo "Java interpreter : $JAVA"
+jires=`$JAVA -classpath ${tools_classpath} getsp -test`
+if test "$jires" != "Test1234OK"; then
+    echo "$jires"
+    echo "~*** Java interpreter doesn't work properly.~"|${SED-sed} -e 'y/~/\n/' >&2
+    exit 1
+fi
+
+if test -z "${JAVA_HOME}"; then
+    JAVA_HOME=`$JAVA -classpath ${tools_classpath} getsp java.home`
+fi
+
+if test -z "${JAVA_HOME}"; then
+    echo "~*** Cannot find Java environemnt.~*** Please set JAVA_HOME correspondingly.~"|${SED-sed} -e 'y/~/\n/' >&2
+    exit 1
+fi
+
+echo "Java version     : `$JAVA -classpath ${tools_classpath} getsp java.version 2>/dev/null`"
+echo "Java home path   : ${JAVA_HOME}"
+
+# optional parts - compiler, javah and jar
+if test -z "$JAVAC"; then
+    save_IFS=$IFS; IFS=:
+    for dir in ${JAVA_PATH}; do
+	if test -f "$dir/javac"; then
+	    JAVAC="$dir/javac"
+	    break
+	fi
+    done
+    IFS=${save_IFS}
+fi
+
+: ${TMPDIR=/tmp}
+{ tempdir=`(mktemp -d -q "${TMPDIR}/Rjavareconf.XXXXXX") 2>/dev/null` \
+	&& test -n "${tempdir}" && test -d "${tempdir}" ; } ||
+{ test -n "${RANDOM}" && tempdir=${TMPDIR}/Rjavareconf.$$-${RANDOM} \
+	&& (mkdir "${tempdir}") ; } ||
+{ tempdir=${TMPDIR}/Rjavareconf.$$-`date +%m%d%H%M%S` \
+	&& (mkdir "${tempdir}"); } ||
+{ tempdir=${TMPDIR}/Rjavareconf.$$ && (mkdir "${tempdir}") ; } ||
+    (error "cannot create temporary directory" && exit 1)
+
+# test functionality of the compiler
+javac_works='not present'
+if test -n "$JAVAC"; then
+    javac_works='not functional'
+    echo "public class A { }" > "${tempdir}/A.java"
+    if test -f "${tempdir}/A.java"; then
+	if "${JAVAC}" "${tempdir}/A.java" >/dev/null; then
+           if test -f "${tempdir}/A.class"; then
+		javac_works=yes
+	    fi
+	fi
+    fi
+fi
+if test "${javac_works}" = yes; then
+    echo "Java compiler    : ${JAVAC}"
+else
+    echo "Java compiler    : ${javac_works}"
+fi
+
+if test -z "$JAVAH"; then
+    save_IFS=$IFS; IFS=:
+    for dir in ${JAVA_PATH}; do
+	if test -f "$dir/javah"; then
+	    JAVAH="$dir/javah"
+	    break
+	fi
+    done
+    IFS=${save_IFS}
+fi
+echo "Java headers gen.: ${JAVAH}"
+
+if test -z "$JAR"; then
+    save_IFS=$IFS; IFS=:
+    for dir in ${JAVA_PATH}; do
+	if test -f "$dir/jar"; then
+	    JAR="$dir/jar"
+	    break
+	fi
+    done
+    IFS=${save_IFS}
+fi
+echo "Java archive tool: ${JAR}"
+
+: ${JAVA_LIBS=~autodetect~}
+: ${JAVA_CPPFLAGS=~autodetect~}
+: ${JAVA_LD_LIBRARY_PATH=~autodetect~}
+custom_JAVA_LIBS="${JAVA_LIBS}"
+custom_JAVA_CPPFLAGS="${JAVA_CPPFLAGS}"
+custom_JAVA_LD_LIBRARY_PATH="${JAVA_LD_LIBRARY_PATH}"
+
+
+# sys-dependent tweaks to JNI flags
+hostos=`uname 2>/dev/null`
+if test "${hostos}" = "Darwin"; then
+     pref=`echo "${JAVA_HOME}" | grep "/Home$"`
+     if test "${pref}" = "${JAVA_HOME}"; then 
+       echo "System Java on macOS"
+       JAVA_CPPFLAGS="-I/System/Library/Frameworks/JavaVM.framework/Headers"
+       JAVA_LIBS="-framework JavaVM"
+       JAVA_LD_LIBRARY_PATH=
+	has_libjvm=unknown
+    else
+       echo "Non-system Java on macOS"
+    fi
+fi
+## we now look for a path to put in R_LD_LIBRARY_PATH which will
+## enable libjvm to be found at run time.  This should not be needed,
+## but it seems that libjvm is often not in the ld.so cache.
+if test "${JAVA_LIBS}" = "~autodetect~"; then
+	## we need to reset LD_LIBRARY_PATH, because Java automatically
+	## adds all LD_LIBRARY_PATH to Java path
+	save_LDLP=${LD_LIBRARY_PATH}
+	LD_LIBRARY_PATH=
+	export LD_LIBRARY_PATH
+	# remove trailing/leading : (if any)
+	java_library_path=`"$JAVA" -classpath "${tools_classpath}" getsp java.library.path| ${SED-sed} -e 's/:$//' -e 's/^://'`
+	## see if libjvm is on this path: it is not for recent Oracle Java
+	has_libjvm=no
+	save_IFS=$IFS; IFS=:
+	for dir in ${java_library_path}; do
+	    if test -f "$dir/libjvm${DYLIB_EXT}"; then
+		has_libjvm=yes
+		java_library_path="${dir}"
+		break
+	    fi
+	done
+	# Then try some heuristics using sun.boot.library.path
+	if test ${has_libjvm} = no; then
+	    boot_path=`"$JAVA" -classpath "${tools_classpath}" getsp sun.boot.library.path| ${SED-sed} -e 's/:$//' -e 's/^://'`
+	    if test -n "${boot_path}"; then
+		for dir in "${boot_path}" "${boot_path}/client" "${boot_path}/server"; do
+		    if test -f "$dir/libjvm${DYLIB_EXT}"; then
+			has_libjvm=yes
+			java_library_path="${dir}"
+			break
+		    fi
+		done
+	    fi
+	fi	
+	IFS=${save_IFS}
+	# replace occurrences of JAVA_HOME with $(JAVA_HOME)
+	# If JAVA_HOME was a link, it will be the canonical path we
+	# want to replace.  We need realpath to determine what that is.
+	if test "false" != "false"; then
+             java_home=`false "${JAVA_HOME}"`
+	else
+       	    java_home="${JAVA_HOME}"
+	fi
+	JAVA_LD_LIBRARY_PATH=`echo "${java_library_path}" | ${SED-sed} -e" s:${java_home}:\$\(JAVA_HOME\):g"`
+
+	LD_LIBRARY_PATH=${save_LDLP}
+	export LD_LIBRARY_PATH
+	# build JAVA_LIBS from the detected path
+	JAVA_LIBS=`echo ${JAVA_LD_LIBRARY_PATH}|${SED-sed} -e 's|:| -L|g'`
+	if test -n "${JAVA_LIBS}"; then JAVA_LIBS="-L${JAVA_LIBS}"; fi
+	JAVA_LIBS="${JAVA_LIBS} -ljvm"
+	# create shell-version to be used in scripts
+	JAVA_LD_LIBRARY_PATH_SH=`echo ${JAVA_LD_LIBRARY_PATH}|${SED-sed} -e 's:$(JAVA_HOME):\$\{JAVA_HOME\}:g'`
+
+        ## includes consist of two parts - jni.h and machine-dependent jni_md.h
+        jinc=''
+	JAVA_CPPFLAGS=''
+        for pinc in include ../include jre/include; do
+          if test -f "${JAVA_HOME}/${pinc}/jni.h"; then jinc="${JAVA_HOME}/${pinc}"; break; fi
+        done
+        ## only if we get jni.h we can try to find jni_md.h
+        if test -n "${jinc}"; then
+           JAVA_CPPFLAGS="-I${jinc}"
+           jmdinc=''
+           jmdirs=''
+	   ## we are not in configure, so we need to find the OS from R
+	   host_os=`echo 'cat(R.version$os)'|${R_HOME}/bin/R --vanilla --slave 2>/dev/null`
+           ## put the most probable locations for each system in the first place
+           case "${host_os}" in
+             darwin*)  jmdirs=darwin;;
+             linux*)   jmdirs=linux;;
+             bsdi*)    jmdirs=bsdos;;
+             osf*)     jmdirs=alpha;;
+             solaris*) jmdirs=solaris;;
+             freebsd*) jmdirs=freebsd; add_java_libs='-lpthread';;
+           esac
+	   ## in case host_os detection failed, add all candidates
+	   if test -z "${jmdirs}"; then jmdirs='linux solaris freebsd alpha bsdos'; fi
+           ## prepend . and append less-likely ones
+           jmdirs=". ${jmdirs} genunix ppc x86 iris hp-ux aix win32 cygwin openbsd"
+           for pimd in ${jmdirs}; do
+             if test -f "${jinc}/${pimd}/jni_md.h"; then jmdinc="${jinc}/${pimd}"; break; fi
+           done
+           if test -z "${jmdinc}"; then
+             # ultima-ratio: use find and pray that it works
+             jmdinc=`find "${jinc}/" -name jni_md.h 2> /dev/null |head -n 1 2>/dev/null`
+             if test -n "${jmdinc}"; then jmdinc=`dirname "${jmdinc}"`; fi
+           fi
+           if test -n "${jmdinc}"; then
+             if test "${jmdinc}" != "${jinc}/."; then
+               JAVA_CPPFLAGS="${JAVA_CPPFLAGS} -I${jmdinc}"
+             fi
+           fi
+	   JAVA_CPPFLAGS=`echo ${JAVA_CPPFLAGS} | ${SED-sed} -e s:${JAVA_HOME}:\$\(JAVA_HOME\):g`
+        fi
+fi
+
+if test -n "${add_java_libs}"; then JAVA_LIBS="${JAVA_LIBS} ${add_java_libs}"; fi
+
+## honor user overrides
+acx_custom_java_libs=no
+if test "${custom_JAVA_LIBS}" != '~autodetect~'; then
+  JAVA_LIBS="${custom_JAVA_LIBS}"
+  JAVA_LIBS0=`echo ${JAVA_LIBS} | ${SED-sed} -e s:${JAVA_HOME}:\$\(JAVA_HOME\):g`
+  acx_custom_java_libs=yes
+fi
+if test "${custom_JAVA_CPPFLAGS}" != '~autodetect~'; then
+  JAVA_CPPFLAGS="${custom_JAVA_CPPFLAGS}"
+fi
+if test "${custom_JAVA_LD_LIBRARY_PATH}" != '~autodetect~'; then
+  JAVA_LD_LIBRARY_PATH="${custom_JAVA_LD_LIBRARY_PATH}"
+  JAVA_LD_LIBRARY_PATH_SH=`echo ${JAVA_LD_LIBRARY_PATH}|${SED-sed} -e 's:$(JAVA_HOME):\$\{JAVA_HOME\}:g'`
+fi
+
+## Do cpmpile test in the temporary dir
+wd=${PWD}
+cd "${tempdir}"
+
+echo
+echo "trying to compile and link a JNI program "
+echo "detected JNI cpp flags    : ${JAVA_CPPFLAGS}"
+echo "detected JNI linker flags : ${JAVA_LIBS}"
+
+cat <<_ACEOF >conftest.c
+#include <jni.h>
+
+int main(void) {
+    JNI_CreateJavaVM(0, 0, 0);
+    return 0;
+}
+_ACEOF
+
+JAVA_CPPFLAGS1=`echo ${JAVA_CPPFLAGS}|${SED-sed} -e 's:$(JAVA_HOME):'"${JAVA_HOME}:g"`
+JAVA_LIBS1=`echo ${JAVA_LIBS}|${SED-sed} -e 's:$(JAVA_HOME):'"${JAVA_HOME}:g"`
+cat <<_ACEOF >Makevars
+PKG_CPPFLAGS = ${JAVA_CPPFLAGS1}
+PKG_LIBS = ${JAVA_LIBS1}
+_ACEOF
+
+## in case e.g. -k was passed in the environment
+MAKEFLAGS=
+export MAKEFLAGS
+${R_HOME}/bin/R CMD SHLIB conftest.c
+ac_status=$?
+
+if test $ac_status != 0; then
+  echo "Unable to compile a JNI program"
+  JAVA_LD_LIBRARY_PATH=
+  JAVA_LIBS=
+  JAVA_CPPFLAGS=
+fi
+
+rm -f conftest.c conftest.o conftest.so Makevars
+cd ${wd}
+rm -rf "${tempdir}"
+
+
+echo ""
+
+if test "${export_vars}" = yes; then
+    ## we have to re-substitute $(JAVA_HOME), 
+    ## otherwise it will be replaced by R's Makeconf setting
+    ## which is highly likely different and thus not intended
+    JAVA_LD_LIBRARY_PATH=`echo ${JAVA_LD_LIBRARY_PATH}|${SED-sed} -e 's:$(JAVA_HOME):'"${JAVA_HOME}:g"`
+    JAVA_CPPFLAGS=`echo ${JAVA_CPPFLAGS}|${SED-sed} -e 's:$(JAVA_HOME):'"${JAVA_HOME}:g"`
+    JAVA_LIBS=`echo ${JAVA_LIBS}|${SED-sed} -e 's:$(JAVA_HOME):'"${JAVA_HOME}:g"`
+
+    export JAVA_HOME JAVA JAVAC JAVAH JAR JAVA_LIBS JAVA_CPPFLAGS JAVA_LD_LIBRARY_PATH
+    echo "The following Java variables have been exported:"
+    echo "JAVA_HOME JAVA JAVAC JAVAH JAR JAVA_LIBS JAVA_CPPFLAGS JAVA_LD_LIBRARY_PATH"
+    test -z "${run_prog}" && test -n "${SHELL}" && run_prog="${SHELL}"
+    test -z "${run_prog}" && run_prog=/bin/sh
+    echo "Running: ${run_prog}"
+    ${run_prog}
+    exit 0
+fi
+
+echo ""
+echo "JAVA_HOME        : ${JAVA_HOME}"
+echo "Java library path: ${JAVA_LD_LIBRARY_PATH}"
+echo "JNI cpp flags    : ${JAVA_CPPFLAGS}"
+echo "JNI linker flags : ${JAVA_LIBS}"
+
+test "${dry_run}" = yes && exit 0
+
+echo "Updating Java configuration in ${R_HOME}"
+
+## We update both the base and arch-specific versions as etc/Makefile
+## copies the first to the second (only the second is used).
+if test -n "${R_ARCH}"; then
+  files="${R_HOME}/etc/Makeconf ${R_HOME}/etc/ldpaths ${R_HOME}/etc${R_ARCH}/Makeconf ${R_HOME}/etc${R_ARCH}/ldpaths"
+else
+  files="${R_HOME}/etc/Makeconf ${R_HOME}/etc/ldpaths"
+fi
+for file in $files; do
+    ${SED-sed} -e "s|JAVA =.\{0,\}|JAVA = $JAVA|" -e "s|JAVA_HOME =.\{0,\}|JAVA_HOME = ${JAVA_HOME}|" -e "s|: \${JAVA_HOME=.\{1,\}|: \${JAVA_HOME=${JAVA_HOME}}|" -e "s|: \${R_JAVA_LD_LIBRARY_PATH=.\{1,\}|: \${R_JAVA_LD_LIBRARY_PATH=${JAVA_LD_LIBRARY_PATH_SH}}|" -e "s|JAVA_LIBS =.\{0,\}|JAVA_LIBS = ${JAVA_LIBS}|g" -e "s|JAVA_LD_LIBRARY_PATH =.\{0,\}|JAVA_LD_LIBRARY_PATH = ${JAVA_LD_LIBRARY_PATH}|" -e "s|JAVAC =.\{0,\}|JAVAC = $JAVAC|" -e "s|JAVAH =.\{0,\}|JAVAH = $JAVAH|" -e "s|JAR =.\{0,\}|JAR = $JAR|" -e "s|JAVA_CPPFLAGS =.\{0,\}|JAVA_CPPFLAGS = ${JAVA_CPPFLAGS}|g"  "${file}" > "${file}.new"
+    if test -f "${file}.new"; then
+	mv "${file}.new" "${file}"
+    else
+	echo "*** cannot create ${file}.new~*** Please run as root if required.~" | ${SED-sed} -e 'y/~/\n/' >&2
+	exit 1
+    fi
+done
+
+echo "Done."
+echo ''
+
+### Local Variables: ***
+### mode: sh ***
+### sh-indentation: 2 ***
+### End: ***

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/bin/javareconf
___________________________________________________________________
Added: svn:executable
   + *

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/Renviron
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/Renviron	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/Renviron	(revision 2476)
@@ -0,0 +1,51 @@
+### etc/Renviron.  Generated from Renviron.in by configure.
+###
+### ${R_HOME}/etc/Renviron
+###
+### Record R system environment variables.
+
+R_PLATFORM=${R_PLATFORM-'x86_64-apple-darwin13.4.0'}
+## Default printer paper size: first record if user set R_PAPERSIZE
+R_PAPERSIZE_USER=${R_PAPERSIZE}
+R_PAPERSIZE=${R_PAPERSIZE-'a4'}
+## Default print command
+R_PRINTCMD=${R_PRINTCMD-'lpr'}
+# for Rd2pdf, reference manual
+R_RD4PDF=${R_RD4PDF-'times,inconsolata,hyper'}
+## used for options("texi2dvi")
+R_TEXI2DVICMD=${R_TEXI2DVICMD-${TEXI2DVI-'/usr/local/bin/texi2dvi'}}
+## used by INSTALL, untar() and installing grDevices
+R_GZIPCMD=${R_GZIPCMD-'/usr/bin/gzip'}
+## Default zip/unzip commands
+R_UNZIPCMD=${R_UNZIPCMD-'/usr/bin/unzip'}
+R_ZIPCMD=${R_ZIPCMD-'/usr/bin/zip'}
+R_BZIPCMD=${R_BZIPCMD-'/usr/bin/bzip2'}
+## Default browser
+R_BROWSER=${R_BROWSER-'/usr/bin/open'}
+## Default editor
+EDITOR=${EDITOR-${VISUAL-vi}}
+## Default pager
+PAGER=${PAGER-'/usr/bin/less'}
+## Default PDF viewer
+R_PDFVIEWER=${R_PDFVIEWER-'/usr/bin/open'}
+## Used by libtool
+LN_S='ln -s'
+MAKE=${MAKE-'make'}
+## Prefer a POSIX-compliant sed on e.g. Solaris
+SED=${SED-'/usr/bin/sed'}
+## Prefer a tar that can automagically read compressed archives
+## Used in R CMD INSTALL for binary packages
+TAR=${TAR-'/usr/bin/tar'}
+
+## System and compiler types.
+R_SYSTEM_ABI='osx,gcc,gxx,gfortran,?'
+
+#R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-apple-darwin13.4.0-library/3.3'}
+#R_LIBS_USER=${R_LIBS_USER-'~/Library/R/3.3/library'}
+
+### Local Variables: ***
+### mode: sh ***
+### sh-indentation: 2 ***
+### End: ***
+## CRAN R ships with qpdf inside so use it unless directed otherwise
+R_QPDF=${R_QPDF-'/Library/Frameworks/R.framework/Resources/bin/qpdf'}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/Makeconf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/Makeconf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/Makeconf	(revision 2476)
@@ -0,0 +1,162 @@
+# etc/Makeconf.  Generated from Makeconf.in by configure.
+#
+# ${R_HOME}/etc/Makeconf
+#
+# R was configured using the following call
+# (not including env. vars and site configuration)
+# configure  'CC=clang' 'CXX=clang++' 'OBJC=clang' 'F77=gfortran-4.8' 'FC=gfortran-4.8' 'CFLAGS=-Wall -mtune=core2 -g -O2' 'CXXFLAGS=-Wall -mtune=core2 -g -O2' 'OBJCFLAGS=-Wall -mtune=core2 -g -O2' 'FCFLAGS=-Wall -g -O2' 'F77FLAGS=-Wall -g -O2' '--with-system-zlib' '--enable-memory-profiling' 'CPPFLAGS=-I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include' '--x-libraries=/opt/X11/lib' '--x-includes=/usr/local/include' '--enable-R-framework'
+
+## This fails if it contains spaces, or if it is quoted
+include $(R_SHARE_DIR)/make/vars.mk
+
+AR = ar
+BLAS_LIBS = -L$(R_HOME)/lib$(R_ARCH) -lRblas
+C_VISIBILITY = 
+CC = clang
+CFLAGS = -Wall -mtune=core2 -g -O2 $(LTO)
+CPICFLAGS = -fPIC
+CPPFLAGS = -I/usr/local/include -I/usr/local/include/freetype2 -I/opt/X11/include
+CXX = clang++
+CXXCPP = $(CXX) -E
+CXXFLAGS = -Wall -mtune=core2 -g -O2 $(LTO)
+CXXPICFLAGS = -fPIC
+CXX1X = clang++
+CXX1XFLAGS = -Wall -mtune=core2 -g -O2
+CXX1XPICFLAGS = -fPIC
+CXX1XSTD =  -std=c++11
+DYLIB_EXT = .dylib
+DYLIB_LD = $(CC)
+DYLIB_LDFLAGS = -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress# $(CFLAGS) $(CPICFLAGS)
+DYLIB_LINK = $(DYLIB_LD) $(DYLIB_LDFLAGS) $(LDFLAGS)
+ECHO = echo
+ECHO_C = \c
+ECHO_N = 
+ECHO_T = 
+## NB, set FC before F77 as on Solaris make, setting FC sets F77
+FC = gfortran-4.8
+FCFLAGS = -Wall -g -O2 $(LTO)
+## additional libs needed when linking with $(FC), e.g. on Solaris
+FCLIBS = 
+F77 = gfortran-4.8
+F77_VISIBILITY = 
+FFLAGS = -g -O2 $(LTO)
+FLIBS =  -L/usr/local/lib/gcc/x86_64-apple-darwin13.0.0/4.8.2 -lgfortran -lquadmath -lm
+FCPICFLAGS = -fPIC
+FPICFLAGS = -fPIC
+FOUNDATION_CPPFLAGS = 
+FOUNDATION_LIBS = -framework Foundation
+JAR = /usr/bin/jar
+JAVA = /usr/bin/java
+JAVAC = /usr/bin/javac
+JAVAH = /usr/bin/javah
+## JAVA_HOME might be used in the next three.  
+## They are for packages 'JavaGD' and 'rJava'
+JAVA_HOME = /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
+JAVA_CPPFLAGS = -I/System/Library/Frameworks/JavaVM.framework/Headers
+JAVA_LIBS = -framework JavaVM
+JAVA_LD_LIBRARY_PATH = 
+LAPACK_LIBS = -L$(R_HOME)/lib$(R_ARCH) -lRlapack
+## we only need this is if it is external, as otherwise link to R
+LIBINTL=   -Wl,-framework -Wl,CoreFoundation
+LIBM = 
+LIBR0 = -L$(R_HOME)/lib$(R_ARCH)
+LIBR1 = -lR
+LIBR = -F/Library/Frameworks/R.framework/.. -framework R
+LIBS =  -lpcre -llzma -lbz2 -lz -licucore -lm -liconv
+## needed by R CMD config
+LIBnn = lib
+LIBTOOL = $(SHELL) "$(R_HOME)/bin/libtool"
+LDFLAGS = -L/usr/local/lib
+LTO = 
+## needed to build applications linking to static libR
+MAIN_LD = $(CC)
+MAIN_LDFLAGS = 
+MAIN_LINK = $(MAIN_LD) $(MAIN_LDFLAGS) $(LDFLAGS)
+MKINSTALLDIRS = $(R_HOME)/bin/mkinstalldirs
+OBJC = clang
+OBJCFLAGS = -Wall -mtune=core2 -g -O2 -fobjc-exceptions $(LTO)
+OBJC_LIBS = -lobjc 
+OBJCXX = clang++
+R_ARCH = 
+RANLIB = ranlib
+SAFE_FFLAGS = -g -O2 -ffloat-store
+SED = /usr/bin/sed
+SHELL = /bin/sh
+SHLIB_CFLAGS = 
+SHLIB_CXXFLAGS = 
+SHLIB_CXXLD = $(CXX)
+SHLIB_CXXLDFLAGS = -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress
+SHLIB_CXX1XLD = $(CXX1X) $(CXX1XSTD)
+SHLIB_CXX1XLDFLAGS = -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress
+SHLIB_EXT = .so
+SHLIB_FCLD = $(FC)
+SHLIB_FCLDFLAGS = -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress
+SHLIB_FFLAGS = 
+SHLIB_LD = $(CC)
+SHLIB_LDFLAGS = -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress# $(CFLAGS) $(CPICFLAGS)
+SHLIB_LIBADD = 
+## We want to ensure libR is picked up from $(R_HOME)/lib
+## before e.g. /usr/local/lib if a version is already installed.
+SHLIB_LINK = $(SHLIB_LD) $(SHLIB_LDFLAGS) $(LIBR0) $(LDFLAGS)
+SHLIB_OPENMP_CFLAGS = 
+SHLIB_OPENMP_CXXFLAGS = 
+SHLIB_OPENMP_FCFLAGS = -fopenmp
+SHLIB_OPENMP_FFLAGS = 
+STRIP_LIBS = strip -x
+STRIP_STATIC_LIBS = strip -S
+TCLTK_CPPFLAGS = -I/usr/local/include -I/usr/local/include -I/usr/X11/include
+TCLTK_LIBS = -L/usr/local/lib -ltcl8.6 -L/usr/local/lib -ltk8.6 -L/usr/X11/lib -lX11 -Wl,-weak-lXss -lXext
+YACC = bison -y
+
+## for linking to libR.a
+STATIC_LIBR = #  "$(R_HOME)/lib$(R_ARCH)/libR.a"  $(BLAS_LIBS) $(FLIBS)  $(LIBINTL) -lreadline  $(LIBS)
+
+R_XTRA_CFLAGS = 
+R_XTRA_CPPFLAGS =  -I$(R_INCLUDE_DIR) -DNDEBUG
+R_XTRA_CXXFLAGS = 
+R_XTRA_FFLAGS = 
+
+ALL_CFLAGS = $(R_XTRA_CFLAGS) $(PKG_CFLAGS) $(CPICFLAGS) $(SHLIB_CFLAGS) $(CFLAGS)
+ALL_CPPFLAGS = $(R_XTRA_CPPFLAGS) $(PKG_CPPFLAGS) $(CPPFLAGS) $(CLINK_CPPFLAGS)
+ALL_CXXFLAGS = $(R_XTRA_CXXFLAGS) $(PKG_CXXFLAGS) $(CXXPICFLAGS) $(SHLIB_CXXFLAGS) $(CXXFLAGS)
+ALL_OBJCFLAGS = $(PKG_OBJCFLAGS) $(CPICFLAGS) $(SHLIB_CFLAGS) $(OBJCFLAGS)
+ALL_OBJCXXFLAGS = $(PKG_OBJCXXFLAGS) $(CXXPICFLAGS) $(SHLIB_CXXFLAGS) $(OBJCXXFLAGS)
+ALL_FFLAGS = $(R_XTRA_FFLAGS) $(PKG_FFLAGS) $(FPICFLAGS) $(SHLIB_FFLAGS) $(FFLAGS)
+## LIBR here as a couple of packages use this without SHLIB_LINK
+ALL_LIBS = $(PKG_LIBS) $(SHLIB_LIBADD) $(LIBR) $(LIBINTL)
+
+.SUFFIXES:
+.SUFFIXES: .c .cc .cpp .d .f .f90 .f95 .m .mm .M .o
+
+.c.o:
+	$(CC) $(ALL_CPPFLAGS) $(ALL_CFLAGS) -c $< -o $@
+.c.d:
+	@echo "making $@ from $<"
+	@$(CC) -MM $(ALL_CPPFLAGS) $< > $@
+.cc.o:
+	$(CXX) $(ALL_CPPFLAGS) $(ALL_CXXFLAGS) -c $< -o $@
+.cpp.o:
+	$(CXX) $(ALL_CPPFLAGS) $(ALL_CXXFLAGS) -c $< -o $@
+.cc.d:
+	@echo "making $@ from $<"
+	@$(CXX) -M $(ALL_CPPFLAGS) $< > $@
+.cpp.d:
+	@echo "making $@ from $<"
+	@$(CXX) -M $(ALL_CPPFLAGS) $< > $@
+.m.o:
+	$(OBJC) $(ALL_CPPFLAGS) $(ALL_OBJCFLAGS) -c $< -o $@
+.m.d:
+	@echo "making $@ from $<"
+	@clang -MM $(ALL_CPPFLAGS) $< > $@
+.mm.o:
+	$(OBJCXX) $(ALL_CPPFLAGS) $(ALL_OBJCXXFLAGS) -c $< -o $@
+.M.o:
+	$(OBJCXX) $(ALL_CPPFLAGS) $(ALL_OBJCXXFLAGS) -c $< -o $@
+.f.o:
+	$(F77) $(ALL_FFLAGS) -c $< -o $@
+.f95.o:
+	$(FC) $(PKG_FCFLAGS) $(FCPICFLAGS) $(FCFLAGS) -c  $< -o $@
+.f90.o:
+	$(FC) $(PKG_FCFLAGS) $(FCPICFLAGS) $(FCFLAGS) -c  $< -o $@
+
+## NOTE: originally compiled with llvm-gcc-4.2, post-processed by postflight script to use gcc
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/javaconf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/javaconf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/javaconf	(revision 2476)
@@ -0,0 +1,6 @@
+## Versions from settings when configure was run
+: ${JAVA_HOME=}
+: ${JAVA_CPPFLAGS=~autodetect~}
+: ${JAVA_LD_LIBRARY_PATH=~autodetect~}
+: ${JAVA_LIBS=~autodetect~}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/repositories
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/repositories	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/repositories	(revision 2476)
@@ -0,0 +1,20 @@
+## The fields here are tab-delimited: there is a row name
+## menu_name 	is the name to be used in setRepositories()
+## URL 		is the base URL (see R-admin.texi)
+## default 	is whether this should be a default choice
+## source, win.binary, mac.binary   indicate if the corresponding type is present
+##
+## BioC entries are version-specific, with %v getting expanded to the
+## BioC version associated with the current R version.
+## Also, %bm is substituted from the setting of getOption("BioC_mirror")
+##
+menu_name	URL	default	source	win.binary	mac.binary
+CRAN	CRAN	@CRAN@	TRUE	TRUE	TRUE	TRUE
+BioCsoft	"BioC software"	%bm/packages/%v/bioc	FALSE	TRUE	TRUE	TRUE
+BioCann	"BioC annotation"	%bm/packages/%v/data/annotation	FALSE	TRUE	TRUE	TRUE
+BioCexp	"BioC experiment"	%bm/packages/%v/data/experiment	FALSE	TRUE	TRUE	TRUE
+BioCextra	"BioC extra"	%bm/packages/%v/extra	FALSE	TRUE	TRUE	TRUE
+CRANextra	CRAN (extras)	https://www.stats.ox.ac.uk/pub/RWin	FALSE	TRUE	TRUE	TRUE
+Omegahat	Omegahat	http://www.omegahat.net/R	FALSE	TRUE	FALSE	FALSE
+R-Forge	R-Forge	https://R-Forge.R-project.org	FALSE	TRUE	TRUE	TRUE
+rforge.net	rforge.net	https://www.rforge.net	FALSE	TRUE	TRUE	TRUE
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/ldpaths
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/ldpaths	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/etc/ldpaths	(revision 2476)
@@ -0,0 +1,21 @@
+: ${JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home}
+: ${R_JAVA_LD_LIBRARY_PATH=}
+if test -n ""; then
+: ${R_LD_LIBRARY_PATH=${R_HOME}/lib:}
+else
+: ${R_LD_LIBRARY_PATH=${R_HOME}/lib}
+fi
+if test -n "${R_JAVA_LD_LIBRARY_PATH}"; then
+  R_LD_LIBRARY_PATH="${R_LD_LIBRARY_PATH}:${R_JAVA_LD_LIBRARY_PATH}"
+fi
+## This is DYLD_FALLBACK_LIBRARY_PATH on Darwin (macOS) and
+## LD_LIBRARY_PATH elsewhere.
+## However, on macOS >=10.11 (if SIP is enabled, the default), the
+## environment value will not be passed to a script such as R.sh, so
+## would not seen here.
+if test -z "${DYLD_FALLBACK_LIBRARY_PATH}"; then
+  DYLD_FALLBACK_LIBRARY_PATH="${R_LD_LIBRARY_PATH}"
+else
+  DYLD_FALLBACK_LIBRARY_PATH="${R_LD_LIBRARY_PATH}:${DYLD_FALLBACK_LIBRARY_PATH}"
+fi
+export DYLD_FALLBACK_LIBRARY_PATH
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/MathThreads.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/MathThreads.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/MathThreads.h	(revision 2476)
@@ -0,0 +1,45 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2000-2014 The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/*
+  Experimental: included by src/library/stats/src/distance.c
+
+  Note that only uses R_num_math_threads: it is not clear
+  R_num_math_threads should be exposed at all.
+
+  This is not used currently on Windows, where R_num_math_threads
+  used not to be exposed.
+*/
+
+#ifndef R_EXT_MATHTHREADS_H_
+#define R_EXT_MATHTHREADS_H_
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+#include <R_ext/libextern.h>
+LibExtern int R_num_math_threads;
+LibExtern int R_max_num_math_threads;
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_EXT_MATHTHREADS_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/R-ftp-http.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/R-ftp-http.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/R-ftp-http.h	(revision 2476)
@@ -0,0 +1,80 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2001-2016 The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* Advertized entry points, for that part of libxml included in
+ * the internet module.
+ */
+
+#ifndef R_FTP_HTTP_H_
+#define R_FTP_HTTP_H_
+
+/*
+  allow for 'large' files (>= 2GB) on 32-bit systems, where supported.
+*/
+/* required by C99/C11 */
+#ifndef NO_C_HEADERS
+# ifdef __cplusplus
+#  include <cstdint>
+# else
+#  include <stdint.h>
+# endif
+#else
+#warning "use of NO_C_HEADERS is deprecated"
+#endif
+typedef int_fast64_t DLsize_t; // used for download lengths and sizes
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *R_HTTPOpen(const char *url);
+int   R_HTTPRead(void *ctx, char *dest, int len);
+void  R_HTTPClose(void *ctx);
+
+void *R_FTPOpen(const char *url);
+int   R_FTPRead(void *ctx, char *dest, int len);
+void  R_FTPClose(void *ctx);
+
+void *	RxmlNanoHTTPOpen(const char *URL, char **contentType, const char *headers, int cacheOK);
+int	RxmlNanoHTTPRead(void *ctx, void *dest, int len);
+void	RxmlNanoHTTPClose(void *ctx);
+int 	RxmlNanoHTTPReturnCode(void *ctx);
+char * 	RxmlNanoHTTPStatusMsg(void *ctx);
+DLsize_t RxmlNanoHTTPContentLength(void *ctx);
+char *	RxmlNanoHTTPContentType(void *ctx);
+void	RxmlNanoHTTPTimeout(int delay);
+
+void *	RxmlNanoFTPOpen(const char *URL);
+int	RxmlNanoFTPRead(void *ctx, void *dest, int len);
+int	RxmlNanoFTPClose(void *ctx);
+void	RxmlNanoFTPTimeout(int delay);
+DLsize_t RxmlNanoFTPContentLength(void *ctx);
+
+void    RxmlMessage(int level, const char *format, ...);
+
+/* not currently used */
+
+void RxmlNanoFTPCleanup(void);
+void RxmlNanoHTTPCleanup(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* R_FTP_HTTP_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/QuartzDevice.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/QuartzDevice.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/QuartzDevice.h	(revision 2476)
@@ -0,0 +1,236 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2007-12  The R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ *
+ *---------------------------------------------------------------------
+ *  This header file constitutes the (unofficial) API to the Quartz
+ *  device. Being unofficial, the API may change at any point without
+ *  warning.
+ *
+ *  Quartz is a general device-independent way of drawing in macOS,
+ *  therefore the Quartz device modularizes the actual drawing target
+ *  implementation into separate modules (e.g. Carbon and Cocoa for
+ *  on-screen display and PDF, Bitmap for off-screen drawing). The API
+ *  below is used by the modules to talk to the Quartz device without
+ *  having to know anything about R graphics device API.
+ *
+ *  Key functions are listed here:
+ *  QuartzDevice_Create - creates a Quartz device
+ *  QuartzDevice_ResetContext - should be called after the target
+ *    context has been created to initialize it.
+ *  QuartzDevice_Kill - closes the Quartz device (e.g. on window close)
+ *  QuartzDevice_SetScaledSize - resize device (does not include
+ *    re-painting, it should be followed by a call to
+ *    QuartzDevice_ReplayDisplayList)
+ *  QuartzDevice_ReplayDisplayList - replays all plot commands
+ *
+ *  Key concepts
+ *  - all Quartz modules are expected to provide a device context
+ *    (CGContextRef) for drawing. A device can temporarily return NULL
+ *    (e.g. if the context is not available immediately) and replay
+ *    the display list later to catch up.
+ *
+ *  - interactive devices can use QuartzDevice_SetScaledSize to resize
+ *    the device (no context is necessary), then prepare the context
+ *    (call QuartzDevice_ResetContext if a new context was created)
+ *    and finally re-draw using QuartzDevice_ReplayDisplayList.
+ *
+ *  - snapshots can be created either off the current display list
+ *    (last=0) or off the last known one (last=1). NewPage callback
+ *    can only use last=1 as there is no display list during that
+ *    call. Restored snapshots become the current display list and
+ *    thus can be extended by further painting (yet the original saved
+ *    copy is not influenced). Also note that all snapshots are SEXPs
+ *    (the declaration doesn't use SEXP as to not depend on
+ *    Rinternals.h) therefore must be protected or preserved immediately
+ *    (i.e. the Quartz device does NOT protect them - except in the
+ *    call to RestoreSnapshot).
+ *
+ *  - dirty flag: the dirty flag is not used internally by the Quartz
+ *    device, but can be useful for the modules to determine whether
+ *    the current graphics is a restored copy or in-progress
+ *    drawing. The Quartz device manages the flag as follows: a)
+ *    display list replay does NOT change the flag, b) snapshot
+ *    restoration resets the flag, c) all other paint operations
+ *    (i.e. outside of restore/replay) set the flag. Most common use
+ *    is to determine whether restored snapshots have been
+ *    subsequently modified.
+ *
+ *  - history: currently the history management is not used by any
+ *    modules and as such is untested and strictly experimental. It
+ *    may be removed in the future as it is not clear whether it makes
+ *    sense to be part of the device. See Cocoa module for a
+ *    module-internal implementation of the display history.
+ *
+ *  Quartz device creation path:
+ *    quartz() function -> SEXP Quartz(args) ->
+ *    setup QuartzParameters_t, call backend constructor
+ *    [e.g. QuartzCocoa_DeviceCreate(dd, fn, QuartzParameters_t *pars)] ->
+ *    create backend definition (QuartzBackend_t backend) -> 
+ *    fn->Create(dd, &backend), return the result
+ */
+
+#ifndef R_EXT_QUARTZDEVICE_H_
+#define R_EXT_QUARTZDEVICE_H_
+
+/* FIXME: this is installed, but can it really work without config.h? */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif   
+ 
+#if HAVE_AQUA
+#include <ApplicationServices/ApplicationServices.h>
+#else
+    typedef void* CGContextRef;
+#endif
+
+/* flags passed to the newPage callback */
+#define QNPF_REDRAW 0x0001 /* is set when NewPage really means re-draw of an existing page */
+
+/* flags passed to QuartzDevice_Create (as fs parameter) */
+#define QDFLAG_DISPLAY_LIST 0x0001
+#define QDFLAG_INTERACTIVE  0x0002 
+#define QDFLAG_RASTERIZED   0x0004 /* rasterized media - may imply disabling AA paritally for rects etc. */
+
+/* parameter flags (they should not conflict with QDFLAGS to allow chaining) */
+#define QPFLAG_ANTIALIAS 0x0100
+
+typedef void* QuartzDesc_t;
+
+typedef struct QuartzBackend_s {
+    int    size;                          /* structure size */
+    double width, height;
+    double scalex, scaley, pointsize;
+    int    bg, canvas;
+    int    flags;
+    void*  userInfo;
+    CGContextRef (*getCGContext)(QuartzDesc_t dev, void*userInfo); /* Get the context for this device */
+    int          (*locatePoint)(QuartzDesc_t dev, void*userInfo, double*x, double*y);
+    void         (*close)(QuartzDesc_t dev, void*userInfo);
+    void         (*newPage)(QuartzDesc_t dev, void*userInfo, int flags);
+    void         (*state)(QuartzDesc_t dev, void*userInfo, int state);
+    void*        (*par)(QuartzDesc_t dev, void*userInfo, int set, const char *key, void *value);
+    void         (*sync)(QuartzDesc_t dev, void*userInfo);
+    void*        (*cap)(QuartzDesc_t dev, void*userInfo);
+} QuartzBackend_t;
+
+/* parameters that are passed to functions that create backends */
+typedef struct QuartzParameters_s {
+    int        size;                   /* structure size */
+    const char *type, *file, *title;
+    double     x, y, width, height, pointsize;
+    const char *family;
+    int        flags;
+    int        connection;
+    int        bg, canvas;
+    double     *dpi;
+    /* the following parameters can be used to pass custom parameters when desired */
+    double     pard1, pard2;
+    int        pari1, pari2;
+    const char *pars1, *pars2;
+    void       *parv;
+} QuartzParameters_t;
+    
+/* all device implementations have to call this general Quartz device constructor at some point */
+QuartzDesc_t QuartzDevice_Create(void *dd, QuartzBackend_t* def);
+    
+typedef struct QuartzFunctons_s {
+    void*  (*Create)(void *, QuartzBackend_t *);  /* create a new device */
+    int    (*DevNumber)(QuartzDesc_t desc);       /* returns device number */
+    void   (*Kill)(QuartzDesc_t desc);            /* call to close the device */
+    void   (*ResetContext)(QuartzDesc_t desc);    /* notifies Q back-end that the implementation has created a new context */
+    double (*GetWidth)(QuartzDesc_t desc);        /* get device width (in inches) */
+    double (*GetHeight)(QuartzDesc_t desc);       /* get device height (in inches) */
+    void   (*SetSize)(QuartzDesc_t desc, double width, double height); /* set device size (in inches) */
+    
+    double (*GetScaledWidth)(QuartzDesc_t desc);  /* get device width (in pixels) */
+    double (*GetScaledHeight)(QuartzDesc_t desc); /* get device height (in pixels) */
+    void   (*SetScaledSize)(QuartzDesc_t desc, double width, double height); /* set device size (in pixels) */
+
+    double (*GetXScale)(QuartzDesc_t desc);     /* get x scale factor (px/pt ratio) */
+    double (*GetYScale)(QuartzDesc_t desc);     /* get y scale factor (px/pt ratio) */
+    void   (*SetScale)(QuartzDesc_t desc,double scalex, double scaley); /* sets both scale factors (px/pt ratio) */
+
+    void   (*SetTextScale)(QuartzDesc_t desc,double scale); /* sets text scale factor */
+    double (*GetTextScale)(QuartzDesc_t desc);  /* sets text scale factor */
+
+    void   (*SetPointSize)(QuartzDesc_t desc,double ps); /* sets point size */
+    double (*GetPointSize)(QuartzDesc_t desc);  /* gets point size */
+
+    int    (*GetDirty)(QuartzDesc_t desc);        /* sets dirty flag */
+    void   (*SetDirty)(QuartzDesc_t desc,int dirty); /* gets dirty flag */
+
+    void   (*ReplayDisplayList)(QuartzDesc_t desc); /* replay display list
+     Note: it inhibits sync calls during repaint,
+     the caller is responsible for calling sync if needed.
+     Dirty flag is kept unmodified */
+    void*  (*GetSnapshot)(QuartzDesc_t desc, int last);    
+    /* create a (replayable) snapshot of the device contents. 
+       when 'last' is set then the last stored display list is used, 
+       otherwise a new snapshot is created */
+    void   (*RestoreSnapshot)(QuartzDesc_t desc,void* snapshot);
+    /* restore a snapshot. also clears the dirty flag */
+
+    int    (*GetAntialias)(QuartzDesc_t desc);    /* get anti-alias flag */
+    void   (*SetAntialias)(QuartzDesc_t desc, int aa); /* set anti-alias flag */
+
+    int    (*GetBackground)(QuartzDesc_t desc);   /* get background color */
+    void   (*Activate)(QuartzDesc_t desc);        /* activate/select the device */
+    /* get/set Quartz-specific parameters. desc can be NULL for global parameters */
+    void*  (*SetParameter)(QuartzDesc_t desc, const char *key, void *value);
+    void*  (*GetParameter)(QuartzDesc_t desc, const char *key);
+} QuartzFunctions_t;
+
+#define QuartzParam_EmbeddingFlags "embeddeding flags" /* value: int[1] */
+#define QP_Flags_CFLoop 0x0001  /* drives application event loop */
+#define QP_Flags_Cocoa  0x0002  /* Cocoa is fully initialized */
+#define QP_Flags_Front  0x0004  /* is front application */
+
+/* FIXME: no longer used, remove in due course */
+/* from unix/aqua.c - loads grDevices if necessary and returns NULL on failure */
+QuartzFunctions_t *getQuartzFunctions();
+
+/* type of a Quartz contructor */
+typedef QuartzDesc_t (*quartz_create_fn_t)(void *dd, QuartzFunctions_t *fn, QuartzParameters_t *par);
+
+/* grDevices currently supply following constructors:
+   QuartzCocoa_DeviceCreate, QuartzCarbon_DeviceCreate,
+   QuartzBitmap_DeviceCreate, QuartzPDF_DeviceCreate */
+
+/* embedded Quartz support hook (defined in unix/aqua.c):
+     dd = should be passed-through to QuartzDevice_Create
+     fn = Quartz API functions
+     par = parameters (see above) */
+#ifndef IN_AQUA_C
+    extern
+#endif
+    QuartzDesc_t (*ptr_QuartzBackend)(void *dd, QuartzFunctions_t *fn, QuartzParameters_t *par);
+
+/* C version of the Quartz call (experimental)
+   returns 0 on success, error code on failure */
+QuartzDesc_t Quartz_C(QuartzParameters_t *par, quartz_create_fn_t q_create, int *errorCode);
+
+#ifdef __cplusplus
+}
+#endif   
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Complex.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Complex.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Complex.h	(revision 2476)
@@ -0,0 +1,38 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1998-2001   The R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* Included by R.h: API */
+
+#ifndef R_COMPLEX_H
+#define R_COMPLEX_H
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+	double r;
+	double i;
+} Rcomplex;
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_COMPLEX_H */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Itermacros.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Itermacros.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Itermacros.h	(revision 2476)
@@ -0,0 +1,177 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2001-12  The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/*
+  Macros to help defining vectorized functions with proper recycling
+  and periodic interrupt checks.
+ */
+
+#ifndef  R_EXT_ITERMACROS_H_
+#define  R_EXT_ITERMACROS_H_
+
+#define LOOP_WITH_INTERRUPT_CHECK(LOOP, ncheck, n, ...) do {		\
+	for (size_t __intr_threshold__ = ncheck;			\
+	     TRUE;							\
+	     __intr_threshold__ += ncheck) {				\
+	    size_t __intr_end__ = n < __intr_threshold__ ?		\
+		n : __intr_threshold__;					\
+	    LOOP(__intr_end__, __VA_ARGS__);				\
+	    if (__intr_end__ == n) break;				\
+	    else R_CheckUserInterrupt();				\
+	}								\
+    } while (0)
+
+#define R_ITERATE_CORE(n, i, loop_body) do {	\
+	for (; i < n; ++i) { loop_body }	\
+    } while (0)
+
+#define R_ITERATE(n, i, loop_body) do {		\
+	i = 0;					\
+	R_ITERATE_CORE(n, i, loop_body);		\
+    } while (0)
+
+#define R_ITERATE_CHECK(ncheck, n, i, loop_body) do {			\
+	i = 0;								\
+	LOOP_WITH_INTERRUPT_CHECK(R_ITERATE_CORE, ncheck, n, i, loop_body); \
+    } while (0)
+
+
+#define MOD_ITERATE1_CORE(n, n1, i, i1, loop_body) do {	\
+	for (; i < n;							\
+	     i1 = (++i1 == n1) ? 0 : i1,				\
+		 ++i) {							\
+	    loop_body							\
+		}							\
+    } while (0)
+
+#define MOD_ITERATE1(n, n1, i, i1, loop_body) do {	\
+	i = i1 = 0;					\
+	MOD_ITERATE1_CORE(n, n1, i, i1, loop_body);	\
+    } while (0)
+
+#define MOD_ITERATE1_CHECK(ncheck, n, n1, i, i1, loop_body) do {	\
+	i = i1 = 0;							\
+	LOOP_WITH_INTERRUPT_CHECK(MOD_ITERATE1_CORE, ncheck, n,		\
+				  n1, i, i1, loop_body);		\
+    } while (0)
+
+#define MOD_ITERATE2_CORE(n, n1, n2, i, i1, i2, loop_body) do {	\
+	for (; i < n;							\
+	     i1 = (++i1 == n1) ? 0 : i1,				\
+		 i2 = (++i2 == n2) ? 0 : i2,				\
+		 ++i) {							\
+	    loop_body							\
+		}							\
+    } while (0)
+
+#define MOD_ITERATE2(n, n1, n2, i, i1, i2, loop_body) do {	\
+	i = i1 = i2 = 0;					\
+	MOD_ITERATE2_CORE(n, n1, n2, i, i1, i2, loop_body);	\
+    } while (0)
+
+#define MOD_ITERATE2_CHECK(ncheck, n, n1, n2, i, i1, i2, loop_body) do {	\
+	i = i1 = i2 = 0;						\
+	LOOP_WITH_INTERRUPT_CHECK(MOD_ITERATE2_CORE, ncheck, n,		\
+				  n1, n2, i, i1, i2, loop_body);	\
+    } while (0)
+
+#define MOD_ITERATE MOD_ITERATE2
+#define MOD_ITERATE_CORE MOD_ITERATE2_CORE
+#define MOD_ITERATE_CHECK MOD_ITERATE2_CHECK
+
+#define MOD_ITERATE3_CORE(n, n1, n2, n3, i, i1, i2, i3, loop_body) do {	\
+	for (; i < n;							\
+	     i1 = (++i1 == n1) ? 0 : i1,				\
+		 i2 = (++i2 == n2) ? 0 : i2,				\
+		 i3 = (++i3 == n3) ? 0 : i3,				\
+		 ++i) {							\
+	    loop_body							\
+		}							\
+    } while (0)
+
+#define MOD_ITERATE3(n, n1, n2, n3, i, i1, i2, i3, loop_body) do {	\
+	i = i1 = i2 = i3 = 0;						\
+	MOD_ITERATE3_CORE(n, n1, n2, n3, i, i1, i2, i3, loop_body);	\
+    } while (0)
+
+#define MOD_ITERATE3_CHECK(ncheck, n, n1, n2, n3, i, i1, i2, i3, loop_body) \
+    do {								\
+	i = i1 = i2 = i3 = 0;						\
+	LOOP_WITH_INTERRUPT_CHECK(MOD_ITERATE3_CORE, ncheck, n,		\
+				  n1, n2, n3, i, i1, i2, i3, loop_body); \
+    } while (0)
+
+#define MOD_ITERATE4_CORE(n, n1, n2, n3, n4, i, i1, i2, i3, i4, loop_body) \
+    do {								\
+	for (; i < n;							\
+	     i1 = (++i1 == n1) ? 0 : i1,				\
+		 i2 = (++i2 == n2) ? 0 : i2,				\
+		 i3 = (++i3 == n3) ? 0 : i3,				\
+		 i4 = (++i4 == n4) ? 0 : i4,				\
+		 ++i) {							\
+	    loop_body							\
+		}							\
+    } while (0)
+
+#define MOD_ITERATE4(n, n1, n2, n3, n4, i, i1, i2, i3, i4, loop_body) do { \
+	i = i1 = i2 = i3 = i4 = 0;					\
+	MOD_ITERATE4_CORE(n, n1, n2, n3, n4, i, i1, i2, i3, i4, loop_body); \
+    } while (0)
+
+#define MOD_ITERATE4_CHECK(ncheck, n, n1, n2, n3, n4, i, i1, i2, i3, i4, \
+			   loop_body)					\
+    do {								\
+	i = i1 = i2 = i3 = i4 = 0;					\
+	LOOP_WITH_INTERRUPT_CHECK(MOD_ITERATE4_CORE, ncheck, n,	\
+				  n1, n2, n3, n4,			\
+				  i, i1, i2, i3, i4, loop_body);	\
+    } while (0)
+
+#define MOD_ITERATE5_CORE(n, n1, n2, n3, n4, n5, i, i1, i2, i3, i4, i5, \
+			  loop_body)					\
+    do {								\
+	for (; i < n;							\
+	     i1 = (++i1 == n1) ? 0 : i1,				\
+		 i2 = (++i2 == n2) ? 0 : i2,				\
+		 i3 = (++i3 == n3) ? 0 : i3,				\
+		 i4 = (++i4 == n4) ? 0 : i4,				\
+		 i5 = (++i5 == n5) ? 0 : i5,				\
+		 ++i) {							\
+	    loop_body							\
+		}							\
+    } while (0)
+
+#define MOD_ITERATE5(n, n1, n2, n3, n4, n5, i, i1, i2, i3, i4, i5, loop_body) \
+    do {								\
+	i = i1 = i2 = i3 = i4 = i5 = 0;					\
+	MOD_ITERATE5_CORE(n, n1, n2, n3, n4, n5, i, i1, i2, i3, i4, i5, \
+			  loop_body);					\
+    } while (0)
+
+#define MOD_ITERATE5_CHECK(ncheck, n, n1, n2, n3, n4, n5, \
+			   i, i1, i2, i3, i4, i5,			\
+			   loop_body)					\
+    do {								\
+	i = i1 = i2 = i3 = i4 = i5 = 0;					\
+	LOOP_WITH_INTERRUPT_CHECK(MOD_ITERATE5_CORE, ncheck, n,	\
+				  n1, n2, n3, n4, n5,			\
+				  i, i1, i2, i3, i4, i5, loop_body);	\
+    } while (0)
+
+#endif /* R_EXT_ITERMACROS_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Memory.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Memory.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Memory.h	(revision 2476)
@@ -0,0 +1,58 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1998-2016  The R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ *
+ *
+ * Memory Allocation (garbage collected) --- INCLUDING S compatibility ---
+ */
+
+/* Included by R.h: API */
+
+#ifndef R_EXT_MEMORY_H_
+#define R_EXT_MEMORY_H_
+
+#ifndef NO_C_HEADERS
+# if defined(__cplusplus) && !defined(DO_NOT_USE_CXX_HEADERS)
+#  include <cstddef>
+using std::size_t;
+# else
+#  include <stddef.h> /* for size_t */
+# endif
+#else
+#warning "use of NO_C_HEADERS is deprecated"
+#endif
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+void*	vmaxget(void);
+void	vmaxset(const void *);
+
+void	R_gc(void);
+int	R_gc_running();
+
+char*	R_alloc(size_t, int);
+long double *R_allocLD(size_t nelem);
+char*	S_alloc(long, int);
+char*	S_realloc(char *, long, long, int);
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_EXT_MEMORY_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/stats_package.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/stats_package.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/stats_package.h	(revision 2476)
@@ -0,0 +1,71 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2007  The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+#ifndef R_STATS_PACKAGE_H
+#define R_STATS_PACKAGE_H
+#include <Rconfig.h>
+
+#ifdef HAVE_VISIBILITY_ATTRIBUTE
+# define attribute_hidden __attribute__ ((visibility ("hidden")))
+#else
+# define attribute_hidden
+#endif
+
+enum AlgType {NREG = 1, OPT = 2};
+				/* 0-based indices into v */
+enum  VPos {F = 9, F0 = 12, FDIF = 10, G = 27, HC = 70};
+				/* 0-based indices into iv */
+enum IVPos {AI = 90, AM = 94, ALGSAV = 50, COVMAT = 25,
+	    COVPRT = 13, COVREQ = 14, DRADPR = 100,
+	    DTYPE = 15, IERR = 74, INITH = 24, INITS = 24,
+	    IPIVOT = 75, IVNEED =  2, LASTIV = 42, LASTV = 44,
+	    LMAT =  41, MXFCAL = 16, MXITER = 17, NEXTV  = 46,
+	    NFCALL =  5, NFCOV = 51, NFGCAL = 6, NGCOV = 52,
+	    NITER = 30, NVDFLT = 49, NVSAVE = 8, OUTLEV = 18,
+	    PARPRT = 19, PARSAV = 48, PERM = 57, PRUNIT = 20,
+	    QRTYP = 79, RDREQ = 56, RMAT = 77, SOLPRT = 21,
+	    STATPR = 22, TOOBIG = 1, VNEED = 3, VSAVE = 59,
+	    X0PRT = 23};
+
+void attribute_hidden
+S_Rf_divset(int alg, int iv[], int liv, int lv, double v[]);
+
+void attribute_hidden
+S_nlsb_iterate(double b[], double d[], double dr[], int iv[],
+	       int liv, int lv, int n, int nd, int p,
+	       double r[], double rd[], double v[], double x[]);
+
+void attribute_hidden
+S_nlminb_iterate(double b[], double d[], double fx, double g[],
+		 double h[], int iv[], int liv, int lv, int n,
+		 double v[], double x[]);
+
+static R_INLINE int S_v_length(int alg, int n)
+{
+    return (alg - 1) ? (105 + (n * (2 * n + 20))) :
+	(130 + (n * (n + 27))/2);
+}
+
+static R_INLINE int S_iv_length(int alg, int n)
+{
+    return (alg - 1) ? (82 + 4 * n) : (78 + 3 * n);
+}
+
+#endif /* R_STATS_PACKAGE_H */
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Rdynload.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Rdynload.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Rdynload.h	(revision 2476)
@@ -0,0 +1,130 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2001-12  The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/*
+  C functions used to register compiled code in packages.
+
+  Those needed for that purpose are part of the API.
+ */
+
+#ifndef  R_EXT_DYNLOAD_H_
+#define  R_EXT_DYNLOAD_H_
+
+#include <R_ext/Boolean.h>
+
+/* called with a variable argument set */
+typedef void * (*DL_FUNC)();
+
+typedef unsigned int R_NativePrimitiveArgType;
+
+#define SINGLESXP 302 /* Don't have a single type for this. */
+
+/* In the future, we will want to allow people register their own types
+   and then refer to these in other contexts. Something like the Gtk type 
+   system may be appropriate.
+*/
+typedef unsigned int R_NativeObjectArgType;
+
+
+/* In the near future, we may support registering 
+   information about the arguments of native routines 
+   and whether they are used to return information.
+   The hope is that we can minimize copying objects even 
+   further. Not currently in use.
+*/
+typedef enum {R_ARG_IN, R_ARG_OUT, R_ARG_IN_OUT, R_IRRELEVANT} R_NativeArgStyle;
+
+
+
+/* 
+ These are very similar to those in  unix/dynload.c
+ but we maintain them separately to give us more freedom to do
+ some computations on the internal versions that are derived from
+ these definitions.
+*/
+typedef struct {
+    const char *name;
+    DL_FUNC     fun;
+    int         numArgs;
+  
+    R_NativePrimitiveArgType *types;
+    R_NativeArgStyle         *styles; 
+    
+} R_CMethodDef;
+
+typedef R_CMethodDef R_FortranMethodDef;
+
+
+
+typedef struct {
+    const char *name;
+    DL_FUNC     fun;
+    int         numArgs;
+/* In the future, we will put types in here for the different arguments.
+   We need a richer type system to do this effectively so that one
+   can specify types for new classes.
+*/
+} R_CallMethodDef;
+typedef R_CallMethodDef R_ExternalMethodDef;
+
+
+typedef struct _DllInfo DllInfo;
+
+/* 
+  Currently ignore the graphics routines, accessible via .External.graphics()
+  and .Call.graphics().
+ */
+#ifdef __cplusplus 
+extern "C" {
+#endif
+int R_registerRoutines(DllInfo *info, const R_CMethodDef * const croutines,
+		       const R_CallMethodDef * const callRoutines, 
+		       const R_FortranMethodDef * const fortranRoutines,
+                       const R_ExternalMethodDef * const externalRoutines);
+
+Rboolean R_useDynamicSymbols(DllInfo *info, Rboolean value);
+Rboolean R_forceSymbols(DllInfo *info, Rboolean value);
+
+DllInfo *R_getDllInfo(const char *name);
+
+/* to be used by applications embedding R to register their symbols
+   that are not related to any dynamic module */
+DllInfo *R_getEmbeddingDllInfo(void);
+
+typedef struct Rf_RegisteredNativeSymbol R_RegisteredNativeSymbol;
+typedef enum {R_ANY_SYM=0, R_C_SYM, R_CALL_SYM, R_FORTRAN_SYM, R_EXTERNAL_SYM} NativeSymbolType;
+
+
+DL_FUNC R_FindSymbol(char const *, char const *, 
+                       R_RegisteredNativeSymbol *symbol);
+
+
+/* Experimental interface for exporting and importing functions from
+   one package for use from C code in a package.  The registration
+   part probably ought to be integrated with the other registrations.
+   The naming of these routines may be less than ideal. */
+
+void R_RegisterCCallable(const char *package, const char *name, DL_FUNC fptr);
+DL_FUNC R_GetCCallable(const char *package, const char *name);
+
+#ifdef __cplusplus 
+}
+#endif
+
+#endif /* R_EXT_DYNLOAD_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Constants.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Constants.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Constants.h	(revision 2476)
@@ -0,0 +1,44 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1995, 1996  Robert Gentleman and Ross Ihaka
+ *  Copyright (C) 1998-2012   The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* Included by R.h: API */
+
+#ifndef R_EXT_CONSTANTS_H_
+#define R_EXT_CONSTANTS_H_
+
+/* usually in math.h, but not with strict C99 compliance */
+#ifndef M_PI
+#define M_PI 3.141592653589793238462643383279502884197169399375
+#endif
+
+#ifndef STRICT_R_HEADERS
+#define PI             M_PI
+#include <float.h>  /* Defines the rest, at least in C99 */
+#define SINGLE_EPS     FLT_EPSILON
+#define SINGLE_BASE    FLT_RADIX
+#define SINGLE_XMIN    FLT_MIN
+#define SINGLE_XMAX    FLT_MAX
+#define DOUBLE_DIGITS  DBL_MANT_DIG
+#define DOUBLE_EPS     DBL_EPSILON
+#define DOUBLE_XMAX    DBL_MAX
+#define DOUBLE_XMIN    DBL_MIN
+#endif
+
+#endif /* R_EXT_CONSTANTS_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/stats_stubs.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/stats_stubs.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/stats_stubs.h	(revision 2476)
@@ -0,0 +1,68 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2007  The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+#include <Rconfig.h>
+#include <Rinternals.h>
+#include <R_ext/Rdynload.h>
+
+#ifdef HAVE_VISIBILITY_ATTRIBUTE
+# define attribute_hidden __attribute__ ((visibility ("hidden")))
+#else
+# define attribute_hidden
+#endif
+
+void attribute_hidden
+S_Rf_divset(int alg, int iv[], int liv, int lv, double v[])
+{
+    static void(*fun)(int,int[],int,int,double[]) = NULL;
+    if (fun == NULL)
+	fun = (void(*)(int,int[],int,int,double[]))
+	    R_GetCCallable("stats", "Rf_divset");
+    fun(alg, iv, liv, lv, v);
+}
+
+void attribute_hidden
+S_nlminb_iterate(double b[], double d[], double fx, double g[], double h[],
+		 int iv[], int liv, int lv, int n, double v[], double x[])
+{
+    static void(*fun)(double[],double[],double,double[],double[],
+		      int[],int,int,int,double[],double[]) = NULL;
+    if (fun == NULL)
+	fun = (void(*)(double[],double[],double,double[],double[],
+			  int[],int,int,int,double[],double[]))
+	    R_GetCCallable("stats", "nlminb_iterate");
+    fun(b, d, fx, g, h, iv, liv, lv, n, v, x);
+}
+
+void attribute_hidden
+S_nlsb_iterate(double b[], double d[], double dr[], int iv[], int liv,
+	       int lv, int n, int nd, int p, double r[], double rd[],
+	       double v[], double x[])
+{
+    static void(*fun)(double[],double[],double[],int[],int,int,
+		      int,int,int,double[],double[],double[],
+		      double[]) = NULL;
+    if (fun == NULL)
+	fun = (void(*)(double[],double[],double[],int[],int,
+		       int, int,int,int,double[],
+		       double[],double[],double[]))
+	    R_GetCCallable("stats", "nlsb_iterate");
+    fun(b, d, dr, iv, liv, lv, n, nd, p, r, rd, v, x);
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Callbacks.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Callbacks.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Callbacks.h	(revision 2476)
@@ -0,0 +1,116 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2001-2016 The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* 
+   Not part of the API, subject to change at any time.
+*/
+
+#ifndef R_CALLBACKS_H
+#define R_CALLBACKS_H
+
+/**
+  These structures are for C (and R function) top-level task handlers.
+  Such routines are called at the end of every (successful) top-level task
+  in the regular REPL. 
+ */
+
+#include <Rinternals.h>
+/**
+  The signature of the C routine that a callback must implement.
+  expr - the expression for the top-level task that was evaluated.
+  value - the result of the top-level task, i.e. evaluating expr.
+  succeeded - a logical value indicating whether the task completed propertly.
+  visible - a logical value indicating whether the result was printed to the R ``console''/stdout.
+  data - user-level data passed to the registration routine.
+ */
+typedef Rboolean (*R_ToplevelCallback)(SEXP expr, SEXP value, Rboolean succeeded, Rboolean visible, void *);
+
+typedef struct _ToplevelCallback  R_ToplevelCallbackEl;
+/** 
+ Linked list element for storing the top-level task callbacks.
+ */
+struct _ToplevelCallback {
+    R_ToplevelCallback cb; /* the C routine to call. */
+    void *data;            /* the user-level data to pass to the call to cb() */
+    void (*finalizer)(void *data); /* Called when the callback is removed. */
+
+    char *name;  /* a name by which to identify this element. */ 
+
+    R_ToplevelCallbackEl *next; /* the next element in the linked list. */
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+Rboolean Rf_removeTaskCallbackByIndex(int id);
+Rboolean Rf_removeTaskCallbackByName(const char *name);
+SEXP R_removeTaskCallback(SEXP which);
+R_ToplevelCallbackEl* Rf_addTaskCallback(R_ToplevelCallback cb, void *data, void (*finalizer)(void *), const char *name, int *pos);
+
+
+
+/*
+  The following definitions are for callbacks to R functions and
+  methods related to user-level tables.  This was implemented in a
+  separate package on Omegahat and these declarations allow the package
+  to interface to the internal R code.
+  
+  See https://developer.r-project.org/RObjectTables.pdf,
+  http://www.omegahat.net/RObjectTables/
+*/
+
+typedef struct  _R_ObjectTable R_ObjectTable;
+
+/* Do we actually need the exists() since it is never called but R
+   uses get to see if the symbol is bound to anything? */
+typedef Rboolean (*Rdb_exists)(const char * const name, Rboolean *canCache, R_ObjectTable *);
+typedef SEXP     (*Rdb_get)(const char * const name, Rboolean *canCache, R_ObjectTable *);
+typedef int      (*Rdb_remove)(const char * const name, R_ObjectTable *);
+typedef SEXP     (*Rdb_assign)(const char * const name, SEXP value, R_ObjectTable *);
+typedef SEXP     (*Rdb_objects)(R_ObjectTable *);
+typedef Rboolean (*Rdb_canCache)(const char * const name, R_ObjectTable *);
+
+typedef void     (*Rdb_onDetach)(R_ObjectTable *);
+typedef void     (*Rdb_onAttach)(R_ObjectTable *);
+
+struct  _R_ObjectTable{
+  int       type;
+  char    **cachedNames;
+  Rboolean  active;
+
+  Rdb_exists   exists;
+  Rdb_get      get;
+  Rdb_remove   remove;
+  Rdb_assign   assign;
+  Rdb_objects  objects;
+  Rdb_canCache canCache;
+
+  Rdb_onDetach onDetach;
+  Rdb_onAttach onAttach;
+  
+  void     *privateData;
+};
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* R_CALLBACKS_H */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/GraphicsDevice.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/GraphicsDevice.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/GraphicsDevice.h	(revision 2476)
@@ -0,0 +1,861 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2001-11 The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* Used by third-party graphics devices.
+ *
+ * This defines DevDesc, whereas GraphicsEngine.h defines GEDevDesc.
+ * Also contains entry points from gevents.c
+ */
+
+#ifndef R_GRAPHICSDEVICE_H_
+#define R_GRAPHICSDEVICE_H_
+
+
+/* ideally we would use prototypes in DevDesc.  
+   Some devices have taken to passing pointers to their own structure
+   instead of DevDesc* , defining R_USE_PROTOTYPES 0 allows them to
+   opt out.
+*/
+
+#ifndef  R_USE_PROTOTYPES
+# define R_USE_PROTOTYPES 1
+# ifndef R_GRAPHICSENGINE_H_
+#  error R_ext/GraphicsEngine.h must be included first, and includes this header
+# endif
+#endif
+
+#include <R_ext/Boolean.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* --------- New (in 1.4.0) device driver structure ---------
+ * NOTES:
+ * 1. All locations and dimensions are in device coordinates.
+ * 2. I found this comment in the doc for dev_Open -- looks nasty
+ *    Any known instances of such a thing happening?  Should be
+ *    replaced by a function to query the device for preferred gpars
+ *    settings? (to be called when the device is initialised)
+         *
+         * NOTE that it is perfectly acceptable for this
+         * function to set generic graphics parameters too
+         * (i.e., override the generic parameter settings
+         * which GInit sets up) all at the author's own risk
+         * of course :)
+	 *
+ * 3. Do we really need dev_StrWidth as well as dev_MetricInfo?
+ *    I can see the difference between the two -- its just a
+ *    question of whether dev_MetricInfo should just return
+ *    what dev_StrWidth would give if font metric information is
+ *    not available.  I guess having both allows the developer
+ *    to decide when to ask for which sort of value, and to decide
+ *    what to do when font metric information is not available.
+ *    And why not a dev_StrHeight?
+ * 4. Should "ipr", "asp", and "cra" be in the device description?
+ *    If not, then where?
+ *    I guess they don't need to be if no device makes use of them.
+ *    On the other hand, they would need to be replaced by a device
+ *    call that R base graphics could use to get enough information
+ *    to figure them out.  (e.g., some sort of dpi() function to
+ *    complement the size() function.)
+ */
+
+typedef struct _DevDesc DevDesc;
+typedef DevDesc* pDevDesc;
+
+struct _DevDesc {
+    /********************************************************
+     * Device physical characteristics
+     ********************************************************/
+    double left;	        /* left raster coordinate */
+    double right;	        /* right raster coordinate */
+    double bottom;	        /* bottom raster coordinate */
+    double top;		        /* top raster coordinate */
+    /* R only has the notion of a rectangular clipping region
+     */
+    double clipLeft;
+    double clipRight;
+    double clipBottom;
+    double clipTop;
+    /* I hate these next three -- they seem like a real fudge
+     * BUT I'm not sure what to replace them with so they stay for now.
+     */
+    double xCharOffset;	        /* x character addressing offset - unused */
+    double yCharOffset;	        /* y character addressing offset */
+    double yLineBias;	        /* 1/2 interline space as frac of line height */
+    double ipr[2];	        /* Inches per raster; [0]=x, [1]=y */
+    /* I hate this guy too -- seems to assume that a device can only
+     * have one font size during its lifetime
+     * BUT removing/replacing it would take quite a lot of work
+     * to design and insert a good replacement so it stays for now.
+     */
+    double cra[2];	        /* Character size in rasters; [0]=x, [1]=y */
+    double gamma;	        /* (initial) Device Gamma Correction */
+    /********************************************************
+     * Device capabilities
+     ********************************************************/
+    Rboolean canClip;		/* Device-level clipping */
+    Rboolean canChangeGamma;    /* can the gamma factor be modified? */
+    int canHAdj;	        /* Can do at least some horiz adjust of text
+			           0 = none, 1 = {0,0.5,1}, 2 = [0,1] */
+    /********************************************************
+     * Device initial settings
+     ********************************************************/
+    /* These are things that the device must set up when it is created.
+     * The graphics system can modify them and track current values,
+     */
+    double startps;
+    int startcol;  /* sets par("fg"), par("col") and gpar("col") */
+    int startfill; /* sets par("bg") and gpar("fill") */
+    int startlty;
+    int startfont;
+    double startgamma;
+    /********************************************************
+     * Device specific information
+     ********************************************************/
+    void *deviceSpecific;	/* pointer to device specific parameters */
+    /********************************************************
+     * Device display list
+     ********************************************************/
+    Rboolean displayListOn;     /* toggle for initial display list status */
+
+
+    /********************************************************
+     * Event handling entries
+     ********************************************************/
+
+    /* Used in do_setGraphicsEventEnv */
+
+    Rboolean canGenMouseDown; /* can the device generate mousedown events */
+    Rboolean canGenMouseMove; /* can the device generate mousemove events */
+    Rboolean canGenMouseUp;   /* can the device generate mouseup events */
+    Rboolean canGenKeybd;     /* can the device generate keyboard events */
+
+    Rboolean gettingEvent;    /* This is set while getGraphicsEvent
+				 is actively looking for events */
+    
+    /********************************************************
+     * Device procedures.
+     ********************************************************/
+
+    /*
+     * ---------------------------------------
+     * GENERAL COMMENT ON GRAPHICS PARAMETERS:
+     * ---------------------------------------
+     * Graphical parameters are now passed in a pointer to a 
+     * graphics context structure (pGEcontext) rather than individually.
+     * Each device action should extract the parameters it needs
+     * and ignore the others.  Thought should be given to which
+     * parameters are relevant in each case -- the graphics engine
+     * does not REQUIRE that each parameter is honoured, but if
+     * a parameter is NOT honoured, it might be a good idea to
+     * issue a warning when a parameter is not honoured (or at
+     * the very least document which parameters are not honoured
+     * in the user-level documentation for the device).  [An example
+     * of a parameter that may not be honoured by many devices is
+     * transparency.]
+     */
+
+    /*
+     * device_Activate is called when a device becomes the
+     * active device.  For example, it can be used to change the
+     * title of a window to indicate the active status of
+     * the device to the user.  Not all device types will
+     * do anything.
+     * The only parameter is a device driver structure.
+     * An example is ...
+     *
+     * static void   X11_Activate(pDevDesc dd);
+     *
+     * As from R 2.14.0 this can be omitted or set to NULL.
+     */
+#if R_USE_PROTOTYPES
+    void (*activate)(const pDevDesc );
+#else
+    void (*activate)();
+#endif
+    /*
+     * device_Circle should have the side-effect that a
+     * circle is drawn, centred at the given location, with
+     * the given radius.
+     * (If the device has non-square pixels, 'radius' should
+     * be interpreted in the units of the x direction.)
+     * The border of the circle should be
+     * drawn in the given "col", and the circle should be
+     * filled with the given "fill" colour.
+     * If "col" is NA_INTEGER then no border should be drawn
+     * If "fill" is NA_INTEGER then the circle should not
+     * be filled.
+     * An example is ...
+     *
+     * static void X11_Circle(double x, double y, double r,
+     *                        pGEcontext gc,
+     *                        pDevDesc dd);
+     *
+     * R_GE_gcontext parameters that should be honoured (if possible):
+     *   col, fill, gamma, lty, lwd
+     */
+#if R_USE_PROTOTYPES
+    void (*circle)(double x, double y, double r, const pGEcontext gc, pDevDesc dd);
+#else
+    void (*circle)();
+#endif
+    /*
+     * device_Clip is given the left, right, bottom, and
+     * top of a rectangle (in DEVICE coordinates).
+     * It should have the side-effect that subsequent output
+     * is clipped to the given rectangle.
+     * NOTE that R's graphics engine already clips to the
+     * extent of the device.
+     * NOTE also that this will probably only be called if
+     * the flag canClip is true.
+     * An example is ...
+     *
+     * static void X11_Clip(double x0, double x1, double y0, double y1,
+     *                      pDevDesc dd)
+     */
+#if R_USE_PROTOTYPES
+    void (*clip)(double x0, double x1, double y0, double y1, pDevDesc dd);
+#else
+    void (*clip)();
+#endif
+    /*
+     * device_Close is called when the device is killed.
+     * This function is responsible for destroying any
+     * device-specific resources that were created in
+     * device_Open and for FREEing the device-specific
+     * parameters structure.
+     * An example is ...
+     *
+     * static void X11_Close(pDevDesc dd)
+     *
+     */
+#if R_USE_PROTOTYPES
+    void (*close)(pDevDesc dd);
+#else
+    void (*close)();
+#endif
+    /*
+     * device_Deactivate is called when a device becomes
+     * inactive.
+     * This allows the device to undo anything it did in
+     * dev_Activate.
+     * Not all device types will do anything.
+     * An example is ...
+     *
+     * static void X11_Deactivate(pDevDesc dd)
+     *
+     * As from R 2.14.0 this can be omitted or set to NULL.
+     */
+#if R_USE_PROTOTYPES
+    void (*deactivate)(pDevDesc );
+#else
+    void (*deactivate)();
+#endif
+
+
+    /*
+     * device_Locator should return the location of the next
+     * mouse click (in DEVICE coordinates)
+     * Not all devices will do anything (e.g., postscript)
+     * An example is ...
+     *
+     * static Rboolean X11_Locator(double *x, double *y, pDevDesc dd)
+     *
+     * As from R 2.14.0 this can be omitted or set to NULL.
+     */
+#if R_USE_PROTOTYPES
+    Rboolean (*locator)(double *x, double *y, pDevDesc dd);
+#else
+    Rboolean (*locator)();
+#endif
+    /*
+     * device_Line should have the side-effect that a single
+     * line is drawn (from x1,y1 to x2,y2)
+     * An example is ...
+     *
+     * static void X11_Line(double x1, double y1, double x2, double y2,
+     *                      const pGEcontext gc,
+     *                      pDevDesc dd);
+     *
+     * R_GE_gcontext parameters that should be honoured (if possible):
+     *   col, gamma, lty, lwd
+     */
+#if R_USE_PROTOTYPES
+    void (*line)(double x1, double y1, double x2, double y2,
+		 const pGEcontext gc, pDevDesc dd);
+#else
+    void (*line)();
+#endif
+    /*
+     * device_MetricInfo should return height, depth, and
+     * width information for the given character in DEVICE
+     * units.
+     * Note: in an 8-bit locale, c is 'char'.
+     * In an mbcslocale, it is wchar_t, and at least some
+     * of code assumes that is UCS-2 (Windows, true) or UCS-4.
+     * This is used for formatting mathematical expressions
+     * and for exact centering of text (see GText)
+     * If the device cannot provide metric information then
+     * it MUST return 0.0 for ascent, descent, and width.
+     * An example is ...
+     *
+     * static void X11_MetricInfo(int c,
+     *                            const pGEcontext gc,
+     *                            double* ascent, double* descent,
+     *                            double* width, pDevDesc dd);
+     *
+     * R_GE_gcontext parameters that should be honoured (if possible):
+     *   font, cex, ps
+     */
+#if R_USE_PROTOTYPES
+    void (*metricInfo)(int c, const pGEcontext gc,
+		       double* ascent, double* descent, double* width,
+		       pDevDesc dd);
+#else
+    void (*metricInfo)();
+#endif
+    /*
+     * device_Mode is called whenever the graphics engine
+     * starts drawing (mode=1) or stops drawing (mode=0)
+     * GMode (in graphics.c) also says that 
+     * mode = 2 (graphical input on) exists.
+     * The device is not required to do anything
+     * An example is ...
+     *
+     * static void X11_Mode(int mode, pDevDesc dd);
+     *
+     * As from R 2.14.0 this can be omitted or set to NULL.
+     */
+#if R_USE_PROTOTYPES
+    void (*mode)(int mode, pDevDesc dd);
+#else
+    void (*mode)();
+#endif
+    /*
+     * device_NewPage is called whenever a new plot requires
+     * a new page.
+     * A new page might mean just clearing the
+     * device (e.g., X11) or moving to a new page
+     * (e.g., postscript)
+     * An example is ...
+     *
+     *
+     * static void X11_NewPage(const pGEcontext gc,
+     *                         pDevDesc dd);
+     *
+     */
+#if R_USE_PROTOTYPES
+    void (*newPage)(const pGEcontext gc, pDevDesc dd);
+#else
+    void (*newPage)();
+#endif
+    /*
+     * device_Polygon should have the side-effect that a
+     * polygon is drawn using the given x and y values
+     * the polygon border should be drawn in the "col"
+     * colour and filled with the "fill" colour.
+     * If "col" is NA_INTEGER don't draw the border
+     * If "fill" is NA_INTEGER don't fill the polygon
+     * An example is ...
+     *
+     * static void X11_Polygon(int n, double *x, double *y,
+     *                         const pGEcontext gc,
+     *                         pDevDesc dd);
+     *
+     * R_GE_gcontext parameters that should be honoured (if possible):
+     *   col, fill, gamma, lty, lwd
+     */
+#if R_USE_PROTOTYPES
+    void (*polygon)(int n, double *x, double *y, const pGEcontext gc, pDevDesc dd);
+#else
+    void (*polygon)();
+#endif
+    /*
+     * device_Polyline should have the side-effect that a
+     * series of line segments are drawn using the given x
+     * and y values.
+     * An example is ...
+     *
+     * static void X11_Polyline(int n, double *x, double *y,
+     *                          const pGEcontext gc,
+     *                          pDevDesc dd);
+     *
+     * R_GE_gcontext parameters that should be honoured (if possible):
+     *   col, gamma, lty, lwd
+     */
+#if R_USE_PROTOTYPES
+    void (*polyline)(int n, double *x, double *y, const pGEcontext gc, pDevDesc dd);
+#else
+    void (*polyline)();
+#endif
+    /*
+     * device_Rect should have the side-effect that a
+     * rectangle is drawn with the given locations for its
+     * opposite corners.  The border of the rectangle
+     * should be in the given "col" colour and the rectangle
+     * should be filled with the given "fill" colour.
+     * If "col" is NA_INTEGER then no border should be drawn
+     * If "fill" is NA_INTEGER then the rectangle should not
+     * be filled.
+     * An example is ...
+     *
+     * static void X11_Rect(double x0, double y0, double x1, double y1,
+     *                      const pGEcontext gc,
+     *                      pDevDesc dd);
+     *
+     */
+#if R_USE_PROTOTYPES
+    void (*rect)(double x0, double y0, double x1, double y1,
+		 const pGEcontext gc, pDevDesc dd);
+#else
+    void (*rect)();
+#endif
+    /* 
+     * device_Path should draw one or more sets of points 
+     * as a single path
+     * 
+     * 'x' and 'y' give the points
+     *
+     * 'npoly' gives the number of polygons in the path
+     * MUST be at least 1
+     *
+     * 'nper' gives the number of points in each polygon
+     * each value MUST be at least 2
+     *
+     * 'winding' says whether to fill using the nonzero 
+     * winding rule or the even-odd rule
+     *
+     * Added 2010-06-27
+     *
+     * As from R 2.13.2 this can be left unimplemented as NULL.
+     */
+#if R_USE_PROTOTYPES
+    void (*path)(double *x, double *y, 
+                 int npoly, int *nper,
+                 Rboolean winding,
+                 const pGEcontext gc, pDevDesc dd);
+#else
+    void (*path)();
+#endif
+    /* 
+     * device_Raster should draw a raster image justified 
+     * at the given location,
+     * size, and rotation (not all devices may be able to rotate?)
+     * 
+     * 'raster' gives the image data BY ROW, with every four bytes
+     * giving one R colour (ABGR).
+     *
+     * 'x and 'y' give the bottom-left corner.
+     *
+     * 'rot' is in degrees (as per device_Text), with positive
+     * rotation anticlockwise from the positive x-axis.
+     *
+     * As from R 2.13.2 this can be left unimplemented as NULL.
+     */
+#if R_USE_PROTOTYPES
+    void (*raster)(unsigned int *raster, int w, int h,
+                   double x, double y, 
+                   double width, double height,
+                   double rot, 
+                   Rboolean interpolate,
+                   const pGEcontext gc, pDevDesc dd);
+#else
+    void (*raster)();
+#endif
+    /* 
+     * device_Cap should return an integer matrix (R colors)
+     * representing the current contents of the device display.
+     * 
+     * The result is expected to be ROW FIRST.
+     *
+     * This will only make sense for raster devices and can 
+     * probably only be implemented for screen devices.
+     *
+     * added 2010-06-27
+     *
+     * As from R 2.13.2 this can be left unimplemented as NULL.
+     * For earlier versions of R it should return R_NilValue.
+     */
+#if R_USE_PROTOTYPES
+    SEXP (*cap)(pDevDesc dd);
+#else
+    SEXP (*cap)();
+#endif
+    /*
+     * device_Size is called whenever the device is
+     * resized.
+     * The function returns (left, right, bottom, and top) for the
+     * new device size.
+     * This is not usually called directly by the graphics
+     * engine because the detection of device resizes
+     * (e.g., a window resize) are usually detected by
+     * device-specific code.
+     * An example is ...
+     *
+     * static void X11_Size(double *left, double *right,
+     *                      double *bottom, double *top,
+     *                      pDevDesc dd);
+     *
+     * R_GE_gcontext parameters that should be honoured (if possible):
+     *   col, fill, gamma, lty, lwd
+     *
+     * As from R 2.13.2 this can be left unimplemented as NULL.
+     */
+#if R_USE_PROTOTYPES
+    void (*size)(double *left, double *right, double *bottom, double *top,
+		 pDevDesc dd);
+#else
+    void (*size)();
+#endif
+    /*
+     * device_StrWidth should return the width of the given
+     * string in DEVICE units.
+     * An example is ...
+     *
+     * static double X11_StrWidth(const char *str,
+     *                            const pGEcontext gc,
+     *                            pDevDesc dd)
+     *
+     * R_GE_gcontext parameters that should be honoured (if possible):
+     *   font, cex, ps
+     */
+#if R_USE_PROTOTYPES
+    double (*strWidth)(const char *str, const pGEcontext gc, pDevDesc dd);
+#else
+    double (*strWidth)();
+#endif
+    /*
+     * device_Text should have the side-effect that the
+     * given text is drawn at the given location.
+     * The text should be rotated according to rot (degrees)
+     * An example is ...
+     *
+     * static void X11_Text(double x, double y, const char *str,
+     *                      double rot, double hadj,
+     *                      const pGEcontext gc,
+     * 	                    pDevDesc dd);
+     *
+     * R_GE_gcontext parameters that should be honoured (if possible):
+     *   font, cex, ps, col, gamma
+     */
+#if R_USE_PROTOTYPES
+    void (*text)(double x, double y, const char *str, double rot,
+		 double hadj, const pGEcontext gc, pDevDesc dd);
+#else
+    void (*text)();
+#endif
+    /*
+     * device_onExit is called by GEonExit when the user has aborted
+     * some operation, and so an R_ProcessEvents call may not return normally.
+     * It need not be set to any value; if null, it will not be called.
+     *
+     * An example is ...
+     *
+     * static void GA_onExit(pDevDesc dd);
+    */
+#if R_USE_PROTOTYPES
+    void (*onExit)(pDevDesc dd);
+#else
+    void (*onExit)();
+#endif
+    /*
+     * device_getEvent is no longer used, but the slot is kept for back
+     * compatibility of the structure.
+     */
+    SEXP (*getEvent)(SEXP, const char *);
+
+    /* --------- Optional features introduced in 2.7.0 --------- */
+
+    /* Does the device have a device-specific way to confirm a 
+       new frame (for e.g. par(ask=TRUE))?
+       This should be NULL if it does not.
+       If it does, it returns TRUE if the device handled this, and
+       FALSE if it wants the engine to do so. 
+
+       There is an example in the windows() device.
+
+       Can be left unimplemented as NULL.
+    */
+#if R_USE_PROTOTYPES
+    Rboolean (*newFrameConfirm)(pDevDesc dd);
+#else
+    Rboolean (*newFrameConfirm)();
+#endif
+
+    /* Some devices can plot UTF-8 text directly without converting
+       to the native encoding, e.g. windows(), quartz() ....
+
+       If this flag is true, all text *not in the symbol font* is sent
+       in UTF8 to the textUTF8/strWidthUTF8 entry points.
+
+       If the flag is TRUE, the metricInfo entry point should
+       accept negative values for 'c' and treat them as indicating
+       Unicode points (as well as positive values in a MBCS locale).
+    */
+    Rboolean hasTextUTF8; /* and strWidthUTF8 */
+#if R_USE_PROTOTYPES
+    void (*textUTF8)(double x, double y, const char *str, double rot,
+		     double hadj, const pGEcontext gc, pDevDesc dd);
+    double (*strWidthUTF8)(const char *str, const pGEcontext gc, pDevDesc dd);
+#else
+    void (*textUTF8)();
+    double (*strWidthUTF8)();
+#endif
+    Rboolean wantSymbolUTF8;
+
+    /* Is rotated text good enough to be preferable to Hershey in
+       contour labels?  Old default was FALSE.
+    */
+    Rboolean useRotatedTextInContour;
+
+    /* --------- Post-2.7.0 features --------- */
+
+    /* Added in 2.12.0:  Changed graphics event handling. */
+    
+    SEXP eventEnv;   /* This is an environment holding event handlers. */
+    /*
+     * eventHelper(dd, 1) is called by do_getGraphicsEvent before looking for a 
+     * graphics event.  It will then call R_ProcessEvents() and eventHelper(dd, 2)
+     * until this or another device returns sets a non-null result value in eventEnv,
+     * at which time eventHelper(dd, 0) will be called.
+     * 
+     * An example is ...
+     *
+     * static SEXP GA_eventHelper(pDevDesc dd, int code);
+
+     * Can be left unimplemented as NULL
+     */
+#if R_USE_PROTOTYPES
+    void (*eventHelper)(pDevDesc dd, int code);
+#else
+    void (*eventHelper)();
+#endif
+
+    /* added in 2.14.0, only used by screen devices.
+
+       Allows graphics devices to have multiple levels of suspension: 
+       when this reaches zero output is flushed.
+
+       Can be left unimplemented as NULL.
+     */
+#if R_USE_PROTOTYPES
+    int (*holdflush)(pDevDesc dd, int level);
+#else
+    int (*holdflush)();
+#endif
+
+    /* added in 2.14.0, for dev.capabilities.
+       In all cases 0 means NA (unset).
+    */
+    int haveTransparency; /* 1 = no, 2 = yes */
+    int haveTransparentBg; /* 1 = no, 2 = fully, 3 = semi */
+    int haveRaster; /* 1 = no, 2 = yes, 3 = except for missing values */
+    int haveCapture, haveLocator;  /* 1 = no, 2 = yes */
+
+
+    /* Area for future expansion.
+       By zeroing this, devices are more likely to work if loaded
+       into a later version of R than that they were compiled under.
+    */
+    char reserved[64];
+};
+
+
+	/********************************************************/
+	/* the device-driver entry point is given a device	*/
+	/* description structure that it must set up.  this	*/
+	/* involves several important jobs ...			*/
+	/* (1) it must ALLOCATE a new device-specific parameters*/
+	/* structure and FREE that structure if anything goes	*/
+	/* wrong (i.e., it won't report a successful setup to	*/
+	/* the graphics engine (the graphics engine is NOT	*/
+	/* responsible for allocating or freeing device-specific*/
+	/* resources or parameters)				*/
+	/* (2) it must initialise the device-specific resources */
+	/* and parameters (mostly done by calling device_Open)	*/
+	/* (3) it must initialise the generic graphical		*/
+	/* parameters that are not initialised by GInit (because*/
+	/* only the device knows what values they should have)	*/
+	/* see Graphics.h for the official list of these	*/
+	/* (4) it may reset generic graphics parameters that	*/
+	/* have already been initialised by GInit (although you	*/
+	/* should know what you are doing if you do this)	*/
+	/* (5) it must attach the device-specific parameters	*/
+	/* structure to the device description structure	*/
+	/* e.g., dd->deviceSpecfic = (void *) xd;		*/
+	/* (6) it must FREE the overall device description if	*/
+	/* it wants to bail out to the top-level		*/
+	/* the graphics engine is responsible for allocating	*/
+	/* the device description and freeing it in most cases	*/
+	/* but if the device driver freaks out it needs to do	*/
+	/* the clean-up itself					*/
+	/********************************************************/
+
+/* moved from Rgraphics.h */
+
+/*
+ *	Some Notes on Color
+ *
+ *	R uses a 24-bit color model.  Colors are specified in 32-bit
+ *	integers which are partitioned into 4 bytes as follows.
+ *
+ *		<-- most sig	    least sig -->
+ *		+-------------------------------+
+ *		|   0	| blue	| green |  red	|
+ *		+-------------------------------+
+ *
+ *	The red, green and blue bytes can be extracted as follows.
+ *
+ *		red   = ((color	     ) & 255)
+ *		green = ((color >>  8) & 255)
+ *		blue  = ((color >> 16) & 255)
+ */
+/*
+ *	Changes as from 1.4.0: use top 8 bits as an alpha channel.
+ * 	0 = opaque, 255 = transparent.
+ */
+/*
+ * Changes as from 2.0.0:  use top 8 bits as full alpha channel
+ *      255 = opaque, 0 = transparent
+ *      [to conform with SVG, PDF and others]
+ *      and everything in between is used
+ *      [which means that NA is not stored as an internal colour;
+ *       it is converted to R_RGBA(255, 255, 255, 0)]
+ */
+
+#define R_RGB(r,g,b)	((r)|((g)<<8)|((b)<<16)|0xFF000000)
+#define R_RGBA(r,g,b,a)	((r)|((g)<<8)|((b)<<16)|((a)<<24))
+#define R_RED(col)	(((col)	   )&255)
+#define R_GREEN(col)	(((col)>> 8)&255)
+#define R_BLUE(col)	(((col)>>16)&255)
+#define R_ALPHA(col)	(((col)>>24)&255)
+#define R_OPAQUE(col)	(R_ALPHA(col) == 255)
+#define R_TRANSPARENT(col) (R_ALPHA(col) == 0)
+    /*
+     * A transparent white
+     */
+#define R_TRANWHITE     (R_RGBA(255, 255, 255, 0))
+
+
+/* used in various devices */
+
+#define curDevice		Rf_curDevice
+#define killDevice		Rf_killDevice
+#define ndevNumber		Rf_ndevNumber
+#define NewFrameConfirm		Rf_NewFrameConfirm
+#define nextDevice		Rf_nextDevice
+#define NoDevices		Rf_NoDevices
+#define NumDevices		Rf_NumDevices
+#define prevDevice		Rf_prevDevice
+#define selectDevice		Rf_selectDevice
+#define AdobeSymbol2utf8	Rf_AdobeSymbol2utf8
+
+/* Properly declared version of devNumber */
+int ndevNumber(pDevDesc );
+
+/* How many devices exist ? (>= 1) */
+int NumDevices(void);
+
+/* Check for an available device slot */
+void R_CheckDeviceAvailable(void);
+Rboolean R_CheckDeviceAvailableBool(void);
+
+/* Return the number of the current device. */
+int curDevice(void);
+
+/* Return the number of the next device. */
+int nextDevice(int);
+
+/* Return the number of the previous device. */
+int prevDevice(int);
+
+/* Make the specified device (specified by number) the current device */
+int selectDevice(int);
+
+/* Kill device which is identified by number. */
+void killDevice(int);
+
+int NoDevices(void); /* used in engine, graphics, plot, grid */
+
+void NewFrameConfirm(pDevDesc); /* used in graphics.c, grid */
+
+
+/* Graphics events: defined in gevents.c */
+
+/* These give the indices of some known keys */
+
+typedef enum {knUNKNOWN = -1,
+              knLEFT = 0, knUP, knRIGHT, knDOWN,
+              knF1, knF2, knF3, knF4, knF5, knF6, knF7, knF8, knF9, knF10,
+              knF11, knF12,
+              knPGUP, knPGDN, knEND, knHOME, knINS, knDEL} R_KeyName;
+
+/* These are the three possible mouse events */
+
+typedef enum {meMouseDown = 0,
+	      meMouseUp,
+	      meMouseMove} R_MouseEvent;
+
+#define leftButton   1
+#define middleButton 2
+#define rightButton  4
+
+#define doKeybd			Rf_doKeybd
+#define doMouseEvent		Rf_doMouseEvent
+
+void doMouseEvent(pDevDesc dd, R_MouseEvent event,
+                  int buttons, double x, double y);
+void doKeybd(pDevDesc dd, R_KeyName rkey,
+	     const char *keyname);
+
+
+/* For use in third-party devices when setting up a device:
+ * duplicates Defn.h which is used internally.
+ * (Tested in devNull.c)
+ */
+
+#ifndef BEGIN_SUSPEND_INTERRUPTS
+/* Macros for suspending interrupts */
+#define BEGIN_SUSPEND_INTERRUPTS do { \
+    Rboolean __oldsusp__ = R_interrupts_suspended; \
+    R_interrupts_suspended = TRUE;
+#define END_SUSPEND_INTERRUPTS R_interrupts_suspended = __oldsusp__; \
+    if (R_interrupts_pending && ! R_interrupts_suspended) \
+        Rf_onintr(); \
+} while(0)
+    
+#include <R_ext/libextern.h>
+LibExtern Rboolean R_interrupts_suspended;    
+LibExtern int R_interrupts_pending;
+extern void Rf_onintr(void);
+LibExtern Rboolean mbcslocale;
+#endif
+
+/* Useful for devices: translates Adobe symbol encoding to UTF-8 */
+extern void *AdobeSymbol2utf8(char*out, const char *in, size_t nwork);
+/* Translates Unicode point to UTF-8 */
+extern size_t Rf_ucstoutf8(char *s, const unsigned int c);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* R_GRAPHICSDEVICE_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Random.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Random.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Random.h	(revision 2476)
@@ -0,0 +1,73 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1998-2016    The R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* Included by R.h: API */
+
+#ifndef R_RANDOM_H
+#define R_RANDOM_H
+
+#include <R_ext/Boolean.h>
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+    WICHMANN_HILL,
+    MARSAGLIA_MULTICARRY,
+    SUPER_DUPER,
+    MERSENNE_TWISTER,
+    KNUTH_TAOCP,
+    USER_UNIF,
+    KNUTH_TAOCP2,
+    LECUYER_CMRG
+} RNGtype;
+
+/* Different kinds of "N(0,1)" generators :*/
+typedef enum {
+    BUGGY_KINDERMAN_RAMAGE,
+    AHRENS_DIETER,
+    BOX_MULLER,
+    USER_NORM,
+    INVERSION,
+    KINDERMAN_RAMAGE
+} N01type;
+
+
+void GetRNGstate(void);
+void PutRNGstate(void);
+
+double unif_rand(void);
+/* These are also defined in Rmath.h */
+double norm_rand(void);
+double exp_rand(void);
+
+typedef unsigned int Int32;
+double * user_unif_rand(void);
+void user_unif_init(Int32);
+int * user_unif_nseed(void);
+int * user_unif_seedloc(void);
+
+double * user_norm_rand(void);
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_RANDOM_H */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/BLAS.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/BLAS.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/BLAS.h	(revision 2476)
@@ -0,0 +1,382 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2003-12 The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/*
+   C declarations of BLAS Fortran subroutines always available in R.
+
+   Part of the API.
+
+   R packages that use these should have PKG_LIBS in src/Makevars include 
+   $(BLAS_LIBS) $(FLIBS)
+ */
+
+/* Part of the API */
+
+#ifndef R_BLAS_H
+#define R_BLAS_H
+
+#include <R_ext/RS.h>		/* for F77_... */
+#include <R_ext/Complex.h>	/* for Rcomplex */
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+// never defined in R itself.
+#ifndef BLAS_extern
+#define BLAS_extern extern
+#endif
+
+/* Double Precision Level 1 BLAS */
+
+BLAS_extern double /* DASUM - sum of absolute values of a one-dimensional array */
+F77_NAME(dasum)(const int *n, const double *dx, const int *incx);
+BLAS_extern void   /* DAXPY - replace y by alpha*x + y */
+F77_NAME(daxpy)(const int *n, const double *alpha,
+		const double *dx, const int *incx,
+		double *dy, const int *incy);
+BLAS_extern void   /* DCOPY - copy x to y */
+F77_NAME(dcopy)(const int *n, const double *dx, const int *incx,
+		double *dy, const int *incy);
+BLAS_extern double /* DDOT - inner product of x and y */
+F77_NAME(ddot)(const int *n, const double *dx, const int *incx,
+	       const double *dy, const int *incy);
+BLAS_extern double /* DNRM2 - 2-norm of a vector */
+F77_NAME(dnrm2)(const int *n, const double *dx, const int *incx);
+BLAS_extern void   /* DROT - apply a Given's rotation */
+F77_NAME(drot)(const int *n, double *dx, const int *incx,
+	       double *dy, const int *incy, const double *c, const double *s);
+BLAS_extern void   /* DROTG - generate a Given's rotation */
+F77_NAME(drotg)(const double *a, const double *b, double *c, double *s);
+BLAS_extern void   /* DROTM - apply a modified Given's rotation */
+F77_NAME(drotm)(const int *n, double *dx, const int *incx,
+		double *dy, const int *incy, const double *dparam);
+BLAS_extern void   /* DROTMG - generate a modified Given's rotation */
+F77_NAME(drotmg)(const double *dd1, const double *dd2, const double *dx1,
+		 const double *dy1, double *param);
+BLAS_extern void   /* DSCAL - scale a one-dimensional array */
+F77_NAME(dscal)(const int *n, const double *alpha, double *dx, const int *incx);
+BLAS_extern void   /* DSWAP - interchange one-dimensional arrays */
+F77_NAME(dswap)(const int *n, double *dx, const int *incx,
+		double *dy, const int *incy);
+BLAS_extern int    /* IDAMAX - return the index of the element with max abs value */
+F77_NAME(idamax)(const int *n, const double *dx, const int *incx);
+
+/* Double Precision Level 2 BLAS */
+
+/* DGBMV - perform one of the matrix-vector operations */
+/* y := alpha*A*x + beta*y, or y := alpha*A'*x + beta*y, */
+BLAS_extern void
+F77_NAME(dgbmv)(const char *trans, const int *m, const int *n,
+		const int *kl,const int *ku,
+		const double *alpha, const double *a, const int *lda,
+		const double *x, const int *incx,
+		const double *beta, double *y, const int *incy);
+/* DGEMV - perform one of the matrix-vector operations */
+/* y := alpha*A*x + beta*y, or y := alpha*A'*x + beta*y,  */
+BLAS_extern void
+F77_NAME(dgemv)(const char *trans, const int *m, const int *n,
+		const double *alpha, const double *a, const int *lda,
+		const double *x, const int *incx, const double *beta,
+		double *y, const int *incy);
+/* DSBMV - perform the matrix-vector operation */
+/* y := alpha*A*x + beta*y, */
+BLAS_extern void
+F77_NAME(dsbmv)(const char *uplo, const int *n, const int *k,
+		const double *alpha, const double *a, const int *lda,
+		const double *x, const int *incx,
+		const double *beta, double *y, const int *incy);
+/* DSPMV - perform the matrix-vector operation */
+/* y := alpha*A*x + beta*y, */
+BLAS_extern void
+F77_NAME(dspmv)(const char *uplo, const int *n,
+		const double *alpha, const double *ap,
+		const double *x, const int *incx,
+		const double *beta, double *y, const int *incy);
+
+/* DSYMV - perform the matrix-vector operation */
+/*  y := alpha*A*x + beta*y, */
+BLAS_extern void
+F77_NAME(dsymv)(const char *uplo, const int *n, const double *alpha,
+		const double *a, const int *lda,
+		const double *x, const int *incx,
+		const double *beta, double *y, const int *incy);
+/* DTBMV - perform one of the matrix-vector operations */
+/* x := A*x, or x := A'*x, */
+BLAS_extern void
+F77_NAME(dtbmv)(const char *uplo, const char *trans,
+		const char *diag, const int *n, const int *k,
+		const double *a, const int *lda,
+		double *x, const int *incx);
+/* DTPMV - perform one of the matrix-vector operations */
+/* x := A*x, or x := A'*x, */
+BLAS_extern void
+F77_NAME(dtpmv)(const char *uplo, const char *trans, const char *diag,
+		const int *n, const double *ap,
+		double *x, const int *incx);
+/* DTRMV - perform one of the matrix-vector operations  */
+/* x := A*x, or x := A'*x, */
+BLAS_extern void
+F77_NAME(dtrmv)(const char *uplo, const char *trans, const char *diag,
+		const int *n, const double *a, const int *lda,
+		double *x, const int *incx);
+/* DTBSV - solve one of the systems of equations */
+/* A*x = b, or A'*x = b, */
+BLAS_extern void
+F77_NAME(dtbsv)(const char *uplo, const char *trans,
+		const char *diag, const int *n, const int *k,
+		const double *a, const int *lda,
+		double *x, const int *incx);
+/* DTPSV - solve one of the systems of equations */
+/* A*x = b, or A'*x = b, */
+BLAS_extern void
+F77_NAME(dtpsv)(const char *uplo, const char *trans,
+		const char *diag, const int *n,
+		const double *ap, double *x, const int *incx);
+/* DTRSV - solve one of the systems of equations */
+/* A*x = b, or A'*x = b, */
+BLAS_extern void
+F77_NAME(dtrsv)(const char *uplo, const char *trans,
+		const char *diag, const int *n,
+		const double *a, const int *lda,
+		double *x, const int *incx);
+/* DGER - perform the rank 1 operation   A := alpha*x*y' + A */
+BLAS_extern void
+F77_NAME(dger)(const int *m, const int *n, const double *alpha,
+	       const double *x, const int *incx,
+	       const double *y, const int *incy,
+	       double *a, const int *lda);
+/* DSYR - perform the symmetric rank 1 operation A := alpha*x*x' + A */
+BLAS_extern void
+F77_NAME(dsyr)(const char *uplo, const int *n, const double *alpha,
+	       const double *x, const int *incx,
+	       double *a, const int *lda);
+/* DSPR - perform the symmetric rank 1 operation A := alpha*x*x' + A */
+BLAS_extern void
+F77_NAME(dspr)(const char *uplo, const int *n, const double *alpha,
+	       const double *x, const int *incx, double *ap);
+/* DSYR2 - perform the symmetric rank 2 operation */
+/* A := alpha*x*y' + alpha*y*x' + A, */
+BLAS_extern void
+F77_NAME(dsyr2)(const char *uplo, const int *n, const double *alpha,
+		const double *x, const int *incx,
+		const double *y, const int *incy,
+		double *a, const int *lda);
+/* DSPR2 - perform the symmetric rank 2 operation */
+/* A := alpha*x*y' + alpha*y*x' + A,  */
+BLAS_extern void
+F77_NAME(dspr2)(const char *uplo, const int *n, const double *alpha,
+		const double *x, const int *incx,
+		const double *y, const int *incy, double *ap);
+
+/* Double Precision Level 3 BLAS */
+
+/* DGEMM - perform one of the matrix-matrix operations    */
+/* C := alpha*op( A )*op( B ) + beta*C */
+BLAS_extern void
+F77_NAME(dgemm)(const char *transa, const char *transb, const int *m,
+		const int *n, const int *k, const double *alpha,
+		const double *a, const int *lda,
+		const double *b, const int *ldb,
+		const double *beta, double *c, const int *ldc);
+/* DTRSM - solve one of the matrix equations  */
+/* op(A)*X = alpha*B, or  X*op(A) = alpha*B  */
+BLAS_extern void
+F77_NAME(dtrsm)(const char *side, const char *uplo,
+		const char *transa, const char *diag,
+		const int *m, const int *n, const double *alpha,
+		const double *a, const int *lda,
+		double *b, const int *ldb);
+/* DTRMM - perform one of the matrix-matrix operations */
+/* B := alpha*op( A )*B, or B := alpha*B*op( A ) */
+BLAS_extern void
+F77_NAME(dtrmm)(const char *side, const char *uplo, const char *transa,
+		const char *diag, const int *m, const int *n,
+		const double *alpha, const double *a, const int *lda,
+		double *b, const int *ldb);
+/* DSYMM - perform one of the matrix-matrix operations   */
+/*  C := alpha*A*B + beta*C, */
+BLAS_extern void
+F77_NAME(dsymm)(const char *side, const char *uplo, const int *m,
+		const int *n, const double *alpha,
+		const double *a, const int *lda,
+		const double *b, const int *ldb,
+		const double *beta, double *c, const int *ldc);
+/* DSYRK - perform one of the symmetric rank k operations */
+/* C := alpha*A*A' + beta*C or C := alpha*A'*A + beta*C */
+BLAS_extern void
+F77_NAME(dsyrk)(const char *uplo, const char *trans,
+		const int *n, const int *k,
+		const double *alpha, const double *a, const int *lda,
+		const double *beta, double *c, const int *ldc);
+/* DSYR2K - perform one of the symmetric rank 2k operations */
+/* C := alpha*A*B' + alpha*B*A' + beta*C or */
+/* C := alpha*A'*B + alpha*B'*A + beta*C */
+BLAS_extern void
+F77_NAME(dsyr2k)(const char *uplo, const char *trans,
+		 const int *n, const int *k,
+		 const double *alpha, const double *a, const int *lda,
+		 const double *b, const int *ldb,
+		 const double *beta, double *c, const int *ldc);
+/*
+  LSAME is a LAPACK support routine, not part of BLAS
+*/
+
+/* Double complex BLAS routines added for 2.3.0 */
+/* #ifdef HAVE_FORTRAN_DOUBLE_COMPLEX */
+    BLAS_extern double
+    F77_NAME(dcabs1)(double *z);
+    BLAS_extern double
+    F77_NAME(dzasum)(int *n, Rcomplex *zx, int *incx);
+    BLAS_extern double
+    F77_NAME(dznrm2)(int *n, Rcomplex *x, int *incx);
+    BLAS_extern int
+    F77_NAME(izamax)(int *n, Rcomplex *zx, int *incx);
+    BLAS_extern void
+    F77_NAME(zaxpy)(int *n, Rcomplex *za, Rcomplex *zx,
+		    int *incx, Rcomplex *zy, int *incy);
+    BLAS_extern void
+    F77_NAME(zcopy)(int *n, Rcomplex *zx, int *incx,
+		    Rcomplex *zy, int *incy);
+
+    /* WARNING!  The next two return a value that may not be
+       compatible between C and Fortran, and even if it is, this might
+       not be the right translation to C.  Only use after
+       configure-testing with your compilers.
+     */
+    BLAS_extern Rcomplex
+    F77_NAME(zdotc)(int *n,
+		    Rcomplex *zx, int *incx, Rcomplex *zy, int *incy);
+    BLAS_extern Rcomplex
+    F77_NAME(zdotu)(int *n,
+		    Rcomplex *zx, int *incx, Rcomplex *zy, int *incy);
+
+    BLAS_extern void
+    F77_NAME(zdrot)(int *n, Rcomplex *zx, int *incx, Rcomplex *zy,
+		int *incy, double *c, double *s);
+    BLAS_extern void
+    F77_NAME(zdscal)(int *n, double *da, Rcomplex *zx, int *incx);
+    BLAS_extern void
+    F77_NAME(zgbmv)(char *trans, int *m, int *n, int *kl,
+		    int *ku, Rcomplex *alpha, Rcomplex *a, int *lda,
+		    Rcomplex *x, int *incx, Rcomplex *beta, Rcomplex *y,
+		    int *incy);
+    BLAS_extern void
+    F77_NAME(zgemm)(const char *transa, const char *transb, const int *m,
+		    const int *n, const int *k, const Rcomplex *alpha,
+		    const Rcomplex *a, const int *lda,
+		    const Rcomplex *b, const int *ldb,
+		    const Rcomplex *beta, Rcomplex *c, const int *ldc);
+    BLAS_extern void
+    F77_NAME(zgemv)(char *trans, int *m, int *n, Rcomplex *alpha,
+		    Rcomplex *a, int *lda, Rcomplex *x, int *incx,
+		    Rcomplex *beta, Rcomplex *y, int * incy);
+    BLAS_extern void
+    F77_NAME(zgerc)(int *m, int *n, Rcomplex *alpha, Rcomplex *x,
+		    int *incx, Rcomplex *y, int *incy, Rcomplex *a, int *lda);
+    BLAS_extern void
+    F77_NAME(zgeru)(int *m, int *n, Rcomplex *alpha, Rcomplex *x,
+		    int *incx, Rcomplex *y, int *incy, Rcomplex *a, int *lda);
+    BLAS_extern void
+    F77_NAME(zhbmv)(char *uplo, int *n, int *k, Rcomplex *alpha,
+		    Rcomplex *a, int *lda, Rcomplex *x, int *incx,
+		    Rcomplex *beta, Rcomplex *y, int *incy);
+    BLAS_extern void
+    F77_NAME(zhemm)(char *side, char *uplo, int *m, int *n,
+		    Rcomplex *alpha, Rcomplex *a, int *lda, Rcomplex *b,
+		    int *ldb, Rcomplex *beta, Rcomplex *c, int *ldc);
+    BLAS_extern void
+    F77_NAME(zhemv)(char *uplo, int *n, Rcomplex *alpha, Rcomplex *a,
+		    int *lda, Rcomplex *x, int *incx, Rcomplex *beta,
+		    Rcomplex *y, int *incy);
+    BLAS_extern void
+    F77_NAME(zher)(char *uplo, int *n, double *alpha, Rcomplex *x,
+		   int *incx, Rcomplex *a, int *lda);
+    BLAS_extern void
+    F77_NAME(zher2)(char *uplo, int *n, Rcomplex *alpha, Rcomplex *x,
+		    int *incx, Rcomplex *y, int *incy, Rcomplex *a, int *lda);
+    BLAS_extern void
+    F77_NAME(zher2k)(char *uplo, char *trans, int *n, int *k,
+		     Rcomplex *alpha, Rcomplex *a, int *lda, Rcomplex *b,
+		     int *ldb, double *beta, Rcomplex *c, int *ldc);
+    BLAS_extern void
+    F77_NAME(zherk)(char *uplo, char *trans, int *n, int *k,
+		    double *alpha, Rcomplex *a, int *lda, double *beta,
+		    Rcomplex *c, int *ldc);
+    BLAS_extern void
+    F77_NAME(zhpmv)(char *uplo, int *n, Rcomplex *alpha, Rcomplex *ap,
+		    Rcomplex *x, int *incx, Rcomplex * beta, Rcomplex *y,
+		    int *incy);
+    BLAS_extern void
+    F77_NAME(zhpr)(char *uplo, int *n, double *alpha,
+		   Rcomplex *x, int *incx, Rcomplex *ap);
+    BLAS_extern void
+    F77_NAME(zhpr2)(char *uplo, int *n, Rcomplex *alpha, Rcomplex *x,
+		    int *incx, Rcomplex *y, int *incy, Rcomplex *ap);
+    BLAS_extern void
+    F77_NAME(zrotg)(Rcomplex *ca, Rcomplex *cb, double *c, Rcomplex *s);
+    BLAS_extern void
+    F77_NAME(zscal)(int *n, Rcomplex *za, Rcomplex *zx, int *incx);
+    BLAS_extern void
+    F77_NAME(zswap)(int *n, Rcomplex *zx, int *incx, Rcomplex *zy, int *incy);
+    BLAS_extern void
+    F77_NAME(zsymm)(char *side, char *uplo, int *m, int *n,
+		    Rcomplex *alpha, Rcomplex *a, int *lda, Rcomplex *b,
+		    int *ldb, Rcomplex *beta, Rcomplex *c, int *ldc);
+    BLAS_extern void
+    F77_NAME(zsyr2k)(char *uplo, char *trans, int *n, int *k,
+		     Rcomplex *alpha, Rcomplex *a, int *lda, Rcomplex *b,
+		     int *ldb, Rcomplex *beta, Rcomplex *c, int *ldc);
+    BLAS_extern void
+    F77_NAME(zsyrk)(char *uplo, char *trans, int *n, int *k,
+		    Rcomplex *alpha, Rcomplex *a, int *lda,
+		    Rcomplex *beta, Rcomplex *c, int *ldc);
+    BLAS_extern void
+    F77_NAME(ztbmv)(char *uplo, char *trans, char *diag, int *n, int *k,
+		    Rcomplex *a, int *lda, Rcomplex *x, int *incx);
+    BLAS_extern void
+    F77_NAME(ztbsv)(char *uplo, char *trans, char *diag, int *n, int *k,
+		    Rcomplex *a, int *lda, Rcomplex *x, int *incx);
+    BLAS_extern void
+    F77_NAME(ztpmv)(char *uplo, char *trans, char *diag, int *n,
+		    Rcomplex *ap, Rcomplex *x, int *incx);
+    BLAS_extern void
+    F77_NAME(ztpsv)(char *uplo, char *trans, char *diag, int *n,
+		    Rcomplex *ap, Rcomplex *x, int *incx);
+    BLAS_extern void
+    F77_NAME(ztrmm)(char *side, char *uplo, char *transa, char *diag,
+		    int *m, int *n, Rcomplex *alpha, Rcomplex *a,
+		    int *lda, Rcomplex *b, int *ldb);
+    BLAS_extern void
+    F77_NAME(ztrmv)(char *uplo, char *trans, char *diag, int *n,
+		    Rcomplex *a, int *lda, Rcomplex *x, int *incx);
+    BLAS_extern void
+    F77_NAME(ztrsm)(char *side, char *uplo, char *transa, char *diag,
+		    int *m, int *n, Rcomplex *alpha, Rcomplex *a,
+		    int *lda, Rcomplex *b, int *ldb);
+    BLAS_extern void
+    F77_NAME(ztrsv)(char *uplo, char *trans, char *diag, int *n,
+		    Rcomplex *a, int *lda, Rcomplex *x, int *incx);
+/* #endif */
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_BLAS_H */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Connections.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Connections.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Connections.h	(revision 2476)
@@ -0,0 +1,99 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2000-2016   The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+#ifndef R_EXT_CONNECTIONS_H_
+#define R_EXT_CONNECTIONS_H_
+
+#include <R_ext/Boolean.h>
+
+#ifndef NO_C_HEADERS
+# if defined(__cplusplus) && !defined(DO_NOT_USE_CXX_HEADERS)
+#  include <cstddef>
+#  include <cstdarg>
+# else
+#  include <stddef.h> /* for size_t */
+#  include <stdarg.h> /* for va_list */
+# endif
+#else
+#warning "use of NO_C_HEADERS is deprecated"
+#endif
+
+/* IMPORTANT: we do not expect future connection APIs to be
+   backward-compatible so if you use this, you *must* check the version
+   and proceed only if it matches what you expect
+
+   We explicitly reserve the right to change the connection
+   implementation without a compatibility layer.
+ */
+#define R_CONNECTIONS_VERSION 1
+
+/* this allows the opaque pointer definition to be made available 
+   in Rinternals.h */
+#ifndef HAVE_RCONNECTION_TYPEDEF
+typedef struct Rconn  *Rconnection;
+#endif
+struct Rconn {
+    char* class;
+    char* description;
+    int enc; /* the encoding of 'description' */
+    char mode[5];
+    Rboolean text, isopen, incomplete, canread, canwrite, canseek, blocking, 
+	isGzcon;
+    Rboolean (*open)(struct Rconn *);
+    void (*close)(struct Rconn *); /* routine closing after auto open */
+    void (*destroy)(struct Rconn *); /* when closing connection */
+    int (*vfprintf)(struct Rconn *, const char *, va_list);
+    int (*fgetc)(struct Rconn *);
+    int (*fgetc_internal)(struct Rconn *);
+    double (*seek)(struct Rconn *, double, int, int);
+    void (*truncate)(struct Rconn *);
+    int (*fflush)(struct Rconn *);
+    size_t (*read)(void *, size_t, size_t, struct Rconn *);
+    size_t (*write)(const void *, size_t, size_t, struct Rconn *);
+    int nPushBack, posPushBack; /* number of lines, position on top line */
+    char **PushBack;
+    int save, save2;
+    char encname[101];
+    /* will be iconv_t, which is a pointer. NULL if not in use */
+    void *inconv, *outconv;
+    /* The idea here is that no MBCS char will ever not fit */
+    char iconvbuff[25], oconvbuff[50], *next, init_out[25];
+    short navail, inavail;
+    Rboolean EOF_signalled;
+    Rboolean UTF8out;
+    void *id;
+    void *ex_ptr;
+    void *private;
+    int status; /* for pipes etc */
+};
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+SEXP   R_new_custom_connection(const char *description, const char *mode, const char *class_name, Rconnection *ptr);
+size_t R_ReadConnection(Rconnection con, void *buf, size_t n);
+size_t R_WriteConnection(Rconnection con, void *buf, size_t n);
+Rconnection R_GetConnection(SEXP sConn);
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Visibility.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Visibility.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Visibility.h	(revision 2476)
@@ -0,0 +1,39 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2008    the R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/*
+  Definitions controlling visibility on some platforms.
+
+  Part of the API.
+*/
+
+#ifndef R_EXT_VISIBILITY_H_
+#define R_EXT_VISIBILITY_H_
+
+#include <Rconfig.h>
+
+#ifdef HAVE_VISIBILITY_ATTRIBUTE
+# define attribute_visible __attribute__ ((visibility ("default")))
+# define attribute_hidden __attribute__ ((visibility ("hidden")))
+#else
+# define attribute_visible
+# define attribute_hidden
+#endif
+
+#endif /* R_EXT_VISIBILITY_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Error.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Error.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Error.h	(revision 2476)
@@ -0,0 +1,53 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1998-2005   The R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* Included by R.h: API */
+
+#ifndef R_ERROR_H_
+#define R_ERROR_H_
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+#if defined(__GNUC__) && __GNUC__ >= 3
+#define NORET __attribute__((noreturn))
+#else
+#define NORET
+#endif
+
+void NORET Rf_error(const char *, ...);
+void NORET UNIMPLEMENTED(const char *);
+void NORET WrongArgCount(const char *);
+
+void	Rf_warning(const char *, ...);
+void 	R_ShowMessage(const char *s);
+    
+
+#ifdef  __cplusplus
+}
+#endif
+
+#ifndef R_NO_REMAP
+#define error Rf_error
+#define warning Rf_warning
+#endif
+
+
+#endif /* R_ERROR_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Riconv.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Riconv.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Riconv.h	(revision 2476)
@@ -0,0 +1,46 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2005     the R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/*
+  Interface to R's platform-independent implementation of iconv.
+
+  Part of the API.
+*/
+
+#ifndef R_ICONV_H
+#define R_ICONV_H
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+/* from sysutils.c */
+#undef Riconv_open
+#undef Riconv
+#undef Riconv_close
+void * Riconv_open (const char* tocode, const char* fromcode);
+size_t Riconv (void * cd, const char **inbuf, size_t *inbytesleft,
+	       char  **outbuf, size_t *outbytesleft);
+int Riconv_close (void * cd);
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_ICONV_H */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Arith.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Arith.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Arith.h	(revision 2476)
@@ -0,0 +1,89 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1995, 1996  Robert Gentleman and Ross Ihaka
+ *  Copyright (C) 1998--2016  The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* Included by R.h: API */
+
+#ifndef R_ARITH_H_
+#define R_ARITH_H_
+
+/* 
+   This used to define _BSD_SOURCE to make declarations of isfinite
+   and isnan visible in glibc.  But that was deprecated in glibc 2.20,
+   and --std=c99 suffices nowadays.
+*/
+
+#include <R_ext/libextern.h>
+#ifdef  __cplusplus
+extern "C" {
+#elif !defined(NO_C_HEADERS)
+/* needed for isnan and isfinite, neither of which are used under C++ */
+# include <math.h>
+#else
+#warning "use of NO_C_HEADERS is deprecated"
+#endif
+
+/* implementation of these : ../../main/arithmetic.c */
+LibExtern double R_NaN;		/* IEEE NaN */
+LibExtern double R_PosInf;	/* IEEE Inf */
+LibExtern double R_NegInf;	/* IEEE -Inf */
+LibExtern double R_NaReal;	/* NA_REAL: IEEE */
+LibExtern int	 R_NaInt;	/* NA_INTEGER:= INT_MIN currently */
+#ifdef __MAIN__
+#undef extern
+#undef LibExtern
+#endif
+
+#define NA_LOGICAL	R_NaInt
+#define NA_INTEGER	R_NaInt
+/* #define NA_FACTOR	R_NaInt  unused */
+#define NA_REAL		R_NaReal
+/* NA_STRING is a SEXP, so defined in Rinternals.h */
+
+int R_IsNA(double);		/* True for R's NA only */
+int R_IsNaN(double);		/* True for special NaN, *not* for NA */
+int R_finite(double);		/* True if none of NA, NaN, +/-Inf */
+#define ISNA(x)	       R_IsNA(x)
+
+/* ISNAN(): True for *both* NA and NaN.
+   NOTE: some systems do not return 1 for TRUE.
+   Also note that C++ math headers specifically undefine
+   isnan if it is a macro (it is on macOS and in C99),
+   hence the workaround.  This code also appears in Rmath.h
+*/
+#ifdef __cplusplus
+  int R_isnancpp(double); /* in arithmetic.c */
+#  define ISNAN(x)     R_isnancpp(x)
+#else
+#  define ISNAN(x)     (isnan(x)!=0)
+#endif
+
+/* The following is only defined inside R */
+#ifdef HAVE_WORKING_ISFINITE
+/* isfinite is defined in <math.h> according to C99 */
+# define R_FINITE(x)    isfinite(x)
+#else
+# define R_FINITE(x)    R_finite(x)
+#endif
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_ARITH_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Applic.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Applic.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Applic.h	(revision 2476)
@@ -0,0 +1,153 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1998-2015   The R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ *
+ *
+ * Application Routines, typically implemented in  ../appl/
+ * ----------------------------------------------  ========
+ */
+
+/* This header file contains routines which are in the R API and ones which
+   are not.
+
+   Those which are not can be used only at the user's risk and may change
+   or disappear in a future release of R.
+*/
+
+
+#ifndef R_APPLIC_H_
+#define R_APPLIC_H_
+
+#include <R_ext/Boolean.h>
+#include <R_ext/RS.h>		/* F77_... */
+#include <R_ext/BLAS.h>
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+/* Entry points in the R API */
+
+/* ../../appl/integrate.c */
+typedef void integr_fn(double *x, int n, void *ex);
+/* vectorizing function   f(x[1:n], ...) -> x[]  {overwriting x[]}. */
+
+void Rdqags(integr_fn f, void *ex, double *a, double *b,
+	    double *epsabs, double *epsrel,
+	    double *result, double *abserr, int *neval, int *ier,
+	    int *limit, int *lenw, int *last, int *iwork, double *work);
+
+void Rdqagi(integr_fn f, void *ex, double *bound, int *inf,
+	    double *epsabs, double *epsrel,
+	    double *result, double *abserr, int *neval, int *ier,
+	    int *limit, int *lenw, int *last,
+	    int *iwork, double *work);
+
+/* main/optim.c */
+typedef double optimfn(int, double *, void *);
+typedef void optimgr(int, double *, double *, void *);
+
+void vmmin(int n, double *b, double *Fmin,
+	   optimfn fn, optimgr gr, int maxit, int trace,
+	   int *mask, double abstol, double reltol, int nREPORT,
+	   void *ex, int *fncount, int *grcount, int *fail);
+void nmmin(int n, double *Bvec, double *X, double *Fmin, optimfn fn,
+	   int *fail, double abstol, double intol, void *ex,
+	   double alpha, double bet, double gamm, int trace,
+	   int *fncount, int maxit);
+void cgmin(int n, double *Bvec, double *X, double *Fmin,
+	   optimfn fn, optimgr gr,
+	   int *fail, double abstol, double intol, void *ex,
+	   int type, int trace, int *fncount, int *grcount, int maxit);
+void lbfgsb(int n, int m, double *x, double *l, double *u, int *nbd,
+	    double *Fmin, optimfn fn, optimgr gr, int *fail, void *ex,
+	    double factr, double pgtol, int *fncount, int *grcount,
+	    int maxit, char *msg, int trace, int nREPORT);
+void samin(int n, double *pb, double *yb, optimfn fn, int maxit,
+	   int tmax, double ti, int trace, void *ex);
+
+/* appl/interv.c: Also in Utils.h, used in package eco */
+int findInterval(double *xt, int n, double x,
+		 Rboolean rightmost_closed,  Rboolean all_inside, int ilo,
+		 int *mflag);
+// findInterval2() is only in Utils.h (and hence Rinternals.h)
+
+
+/* ------------------ Entry points NOT in the R API --------------- */
+
+/* The following are registered for use in .C/.Fortran */
+
+/* appl/dqrutl.f: interfaces to dqrsl */
+void F77_NAME(dqrqty)(double *x, int *n, int *k, double *qraux,
+		      double *y, int *ny, double *qty);
+void F77_NAME(dqrqy)(double *x, int *n, int *k, double *qraux,
+		     double *y, int *ny, double *qy);
+void F77_NAME(dqrcf)(double *x, int *n, int *k, double *qraux,
+		     double *y, int *ny, double *b, int *info);
+void F77_NAME(dqrrsd)(double *x, int *n, int *k, double *qraux,
+		     double *y, int *ny, double *rsd);
+void F77_NAME(dqrxb)(double *x, int *n, int *k, double *qraux,
+		     double *y, int *ny, double *xb);
+
+/* end of registered */
+
+/* hidden, for use in R.bin/R.dll/libR.so */
+
+/* appl/pretty.c: for use in engine.c and util.c */
+double R_pretty(double *lo, double *up, int *ndiv, int min_n,
+		double shrink_sml, double high_u_fact[],
+		int eps_correction, int return_bounds);
+
+
+/* For use in package stats */
+
+/* appl/uncmin.c : */
+
+/* type of pointer to the target and gradient functions */
+typedef void (*fcn_p)(int, double *, double *, void *);
+
+/* type of pointer to the hessian functions */
+typedef void (*d2fcn_p)(int, int, double *, double *, void *);
+
+void fdhess(int n, double *x, double fval, fcn_p fun, void *state,
+	    double *h, int nfd, double *step, double *f, int ndigit,
+	    double *typx);
+
+/* Also used in packages nlme, pcaPP */
+void optif9(int nr, int n, double *x,
+	    fcn_p fcn, fcn_p d1fcn, d2fcn_p d2fcn,
+	    void *state, double *typsiz, double fscale, int method,
+	    int iexp, int *msg, int ndigit, int itnlim, int iagflg,
+	    int iahflg, double dlt, double gradtl, double stepmx,
+	    double steptl, double *xpls, double *fpls, double *gpls,
+	    int *itrmcd, double *a, double *wrk, int *itncnt);
+
+/* find qr decomposition, dqrdc2() is basis of R's qr(),
+   also used by nlme and many other packages. */
+void F77_NAME(dqrdc2)(double *x, int *ldx, int *n, int *p,
+		      double *tol, int *rank,
+		      double *qraux, int *pivot, double *work);
+void F77_NAME(dqrls)(double *x, int *n, int *p, double *y, int *ny,
+		     double *tol, double *b, double *rsd,
+		     double *qty, int *k,
+		     int *jpvt, double *qraux, double *work);
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_APPLIC_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Parse.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Parse.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Parse.h	(revision 2476)
@@ -0,0 +1,47 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1998-2006 R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* NOTE:
+   This file exports a part of the current internal parse interface.
+   It is subject to change at any minor (x.y.0) version of R.
+ */
+
+#ifndef R_EXT_PARSE_H_
+#define R_EXT_PARSE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* PARSE_NULL will not be returned by R_ParseVector */
+typedef enum {
+    PARSE_NULL,
+    PARSE_OK,
+    PARSE_INCOMPLETE,
+    PARSE_ERROR,
+    PARSE_EOF
+} ParseStatus;
+
+SEXP R_ParseVector(SEXP, int, ParseStatus *, SEXP);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/eventloop.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/eventloop.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/eventloop.h	(revision 2476)
@@ -0,0 +1,105 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2000-2016 The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* 
+   For use by alternative front-ends and packages which need to share
+   the R event loop (on Unix-alikes).
+
+   Not part of the API and subject to change without notice.
+
+   NB: HAVE_SYS_SELECT_H should be checked and defined before this is
+   included (or <sys/select.h> included if NO_C_HEADERS is defined).
+ */
+
+#ifndef R_EXT_EVENTLOOP_H
+#define R_EXT_EVENTLOOP_H
+
+#ifndef NO_C_HEADERS
+# ifdef HAVE_SYS_SELECT_H
+#  include <sys/select.h> /* for fd_set, select according to POSIX 2004 */
+# endif
+# ifdef HAVE_SYS_TIME_H
+#  include <sys/time.h>	 /* according to earlier POSIX and perhaps HP-UX */
+# endif
+/* NOTE: At one time needed on FreeBSD so that fd_set is defined. */
+# include <sys/types.h>
+#else
+#warning "use of NO_C_HEADERS is deprecated"
+#endif
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+#define XActivity 1
+#define StdinActivity 2
+
+typedef void (*InputHandlerProc)(void *userData); 
+
+typedef struct _InputHandler {
+
+  int activity;
+  int fileDescriptor;
+  InputHandlerProc handler;
+
+  struct _InputHandler *next;
+
+    /* Whether we should be listening to this file descriptor or not. */
+  int active;
+
+    /* Data that can be passed to the routine as its only argument.
+       This might be a user-level function or closure when we implement
+       a callback to R mechanism. 
+     */
+  void *userData;
+
+} InputHandler;
+
+
+extern InputHandler *initStdinHandler(void);
+extern void consoleInputHandler(unsigned char *buf, int len);
+
+extern InputHandler *addInputHandler(InputHandler *handlers, int fd, InputHandlerProc handler, int activity);
+extern InputHandler *getInputHandler(InputHandler *handlers, int fd);
+extern int           removeInputHandler(InputHandler **handlers, InputHandler *it);
+extern InputHandler *getSelectedHandler(InputHandler *handlers, fd_set *mask);
+extern fd_set *R_checkActivity(int usec, int ignore_stdin);
+extern fd_set *R_checkActivityEx(int usec, int ignore_stdin, void (*intr)(void));
+extern void R_runHandlers(InputHandler *handlers, fd_set *mask);
+
+extern int R_SelectEx(int  n,  fd_set  *readfds,  fd_set  *writefds,
+		      fd_set *exceptfds, struct timeval *timeout,
+		      void (*intr)(void));
+
+#ifdef __SYSTEM__
+#ifndef __cplusplus   /* Would get duplicate conflicting symbols*/
+InputHandler *R_InputHandlers;
+#endif
+#else
+extern InputHandler *R_InputHandlers;
+#endif
+
+extern void (* R_PolledEvents)(void);
+extern int R_wait_usec;
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_EXT_EVENTLOOP_H */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/GetX11Image.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/GetX11Image.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/GetX11Image.h	(revision 2476)
@@ -0,0 +1,36 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2003  R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+#ifndef GETX11IMAGE_H_
+#define GETX11IMAGE_H_
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+/* used by package tkrplot */
+
+Rboolean R_GetX11Image(int d, void *pximage, int *pwidth, int *pheight);
+/* pximage is really (XImage **) */
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Boolean.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Boolean.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Boolean.h	(revision 2476)
@@ -0,0 +1,37 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2000, 2001 The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* Included by R.h: API */
+
+#ifndef R_EXT_BOOLEAN_H_
+#define R_EXT_BOOLEAN_H_
+
+#undef FALSE
+#undef TRUE
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+typedef enum { FALSE = 0, TRUE /*, MAYBE */ } Rboolean;
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_EXT_BOOLEAN_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Linpack.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Linpack.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Linpack.h	(revision 2476)
@@ -0,0 +1,88 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1997        Robert Gentleman and Ross Ihaka
+ *  Copyright (C) 1999-2015   The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* 
+   C declarations of double-precision LINPACK Fortran subroutines
+   included in R, and some others.
+   
+   Those which are listed as part of R are in the API
+ */
+
+#ifndef R_LINPACK_H_
+#define R_LINPACK_H_
+
+#include <R_ext/RS.h>		/* for F77_... */
+#include <R_ext/BLAS.h>
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+	/* Double Precision LINPACK */
+
+extern void F77_NAME(dpbfa)(double*, int*, int*, int*, int*);
+extern void F77_NAME(dpbsl)(double*, int*, int*, int*, double*);
+extern void F77_NAME(dpoco)(double*, int*, int*, double*, double*, int*);
+extern void F77_NAME(dpodi)(double*, int*, int*, double*, int*);
+extern void F77_NAME(dpofa)(double*, int*, int*, int*);
+extern void F77_NAME(dposl)(double*, int*, int*, double*);
+extern void F77_NAME(dqrdc)(double*, int*, int*, int*, double*, int*, double*, int*);
+extern void F77_NAME(dqrsl)(double*, int*, int*, int*, double*, double*, double*, double*, double*, double*, double*, int*, int*);
+extern void F77_NAME(dsvdc)(double*, int*, int*, int*, double*, double*, double*, int*, double*, int*, double*, int*, int*);
+extern void F77_NAME(dtrco)(double*, int*, int*, double*, double*, int*);
+extern void F77_NAME(dtrsl)(double*, int*, int*, double*, int*, int*);
+
+
+/* The following routines are listed as they have always been declared
+   here, but they are not currently included in R */
+extern void F77_NAME(dchdc)(double*, int*, int*, double*, int*, int*, int*);
+extern void F77_NAME(dchdd)(double*, int*, int*, double*, double*, int*, int*, double*, double*, double*, double*, int*);
+extern void F77_NAME(dchex)(double*, int*, int*, int*, int*, double*, int*, int*, double*, double*, int*);
+extern void F77_NAME(dchud)(double*, int*, int*, double*, double*, int*, int*, double*, double*, double*, double*);
+extern void F77_NAME(dgbco)(double*, int*, int*, int*, int*, int*, double*, double*);
+extern void F77_NAME(dgbdi)(double*, int*, int*, int*, int*, int*, double*);
+extern void F77_NAME(dgbfa)(double*, int*, int*, int*, int*, int*, int*);
+extern void F77_NAME(dgbsl)(double*, int*, int*, int*, int*, int*, double*, int*);
+extern void F77_NAME(dgeco)(double*, int*, int*, int*, double*, double*);
+extern void F77_NAME(dgedi)(double*, int*, int*, int*, double*, double*, int*);
+extern void F77_NAME(dgefa)(double*, int*, int*, int*, int*);
+extern void F77_NAME(dgesl)(double*, int*, int*, int*, double*, int*);
+extern void F77_NAME(dgtsl)(int*, double*, double*, double*, double*, int*);
+extern void F77_NAME(dpbco)(double*, int*, int*, int*, double*, double*, int*);
+extern void F77_NAME(dpbdi)(double*, int*, int*, int*, double*);
+extern void F77_NAME(dppco)(double*, int*, double*, double*, int*);
+extern void F77_NAME(dppdi)(double*, int*, double*, int*);
+extern void F77_NAME(dppfa)(double*, int*, int*);
+extern void F77_NAME(dppsl)(double*, int*, double*);
+extern void F77_NAME(dptsl)(int*, double*, double*, double*);
+extern void F77_NAME(dsico)(double*, int*, int*, int*, double*, double*);
+extern void F77_NAME(dsidi)(double*, int*, int*, int*, double*, int*, double*, int*);
+extern void F77_NAME(dsifa)(double*, int*, int*, int*, int*);
+extern void F77_NAME(dsisl)(double*, int*, int*, int*, double*);
+extern void F77_NAME(dspco)(double*, int*, int*, double*, double*);
+extern void F77_NAME(dspdi)(double*, int*, int*, double*, int*, double*, int*);
+extern void F77_NAME(dspfa)(double*, int*, int*, int*);
+extern void F77_NAME(dspsl)(double*, int*, int*, double*);
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_LINPACK_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/RStartup.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/RStartup.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/RStartup.h	(revision 2476)
@@ -0,0 +1,107 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1999-2010  The R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/*
+  C functions to be called from alternative front-ends.
+
+  Part of the API for such front-ends but not for packages.
+*/
+
+#ifndef R_EXT_RSTARTUP_H_
+#define R_EXT_RSTARTUP_H_
+
+#include <R_ext/Boolean.h>	/* TRUE/FALSE */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef Win32
+typedef int (*blah1) (const char *, char *, int, int);
+typedef void (*blah2) (const char *, int);
+typedef void (*blah3) (void);
+typedef void (*blah4) (const char *);
+/* Return value here is expected to be 1 for Yes, -1 for No and 0 for Cancel:
+   symbolic constants in graphapp.h */
+typedef int (*blah5) (const char *);
+typedef void (*blah6) (int);
+typedef void (*blah7) (const char *, int, int);
+typedef enum {RGui, RTerm, LinkDLL} UImode;
+#endif
+
+/* Startup Actions */
+typedef enum {
+    SA_NORESTORE,/* = 0 */
+    SA_RESTORE,
+    SA_DEFAULT,/* was === SA_RESTORE */
+    SA_NOSAVE,
+    SA_SAVE,
+    SA_SAVEASK,
+    SA_SUICIDE
+} SA_TYPE;
+
+typedef struct
+{
+    Rboolean R_Quiet;
+    Rboolean R_Slave;
+    Rboolean R_Interactive;
+    Rboolean R_Verbose;
+    Rboolean LoadSiteFile;
+    Rboolean LoadInitFile;
+    Rboolean DebugInitFile;
+    SA_TYPE RestoreAction;
+    SA_TYPE SaveAction;
+    size_t vsize;
+    size_t nsize;
+    size_t max_vsize;
+    size_t max_nsize;
+    size_t ppsize;
+    int NoRenviron;
+
+#ifdef Win32
+    char *rhome;               /* R_HOME */
+    char *home;                /* HOME  */
+    blah1 ReadConsole;
+    blah2 WriteConsole;
+    blah3 CallBack;
+    blah4 ShowMessage;
+    blah5 YesNoCancel;
+    blah6 Busy;
+    UImode CharacterMode;
+    blah7 WriteConsoleEx; /* used only if WriteConsole is NULL */
+#endif
+} structRstart;
+
+typedef structRstart *Rstart;
+
+void R_DefParams(Rstart);
+void R_SetParams(Rstart);
+void R_SetWin32(Rstart);
+void R_SizeFromEnv(Rstart);
+void R_common_command_line(int *, char **, Rstart);
+
+void R_set_command_line_arguments(int argc, char **argv);
+
+void setup_Rmainloop(void); // also in Rembedded.h
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/RS.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/RS.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/RS.h	(revision 2476)
@@ -0,0 +1,108 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1999-2016 The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* Included by R.h: API */
+
+#ifndef R_RS_H
+#define R_RS_H
+
+#ifndef NO_C_HEADERS
+# if defined(__cplusplus) && !defined(DO_NOT_USE_CXX_HEADERS)
+#  include <cstring>
+#  include <cstddef>
+using std::size_t;
+# else
+#  include <string.h>		/* for memcpy, memset */
+#  include <stddef.h> /* for size_t */
+# endif
+#else
+#warning "use of NO_C_HEADERS is deprecated"
+#endif
+
+#include <Rconfig.h>		/* for F77_APPEND_UNDERSCORE */
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+/* S Like Error Handling */
+
+#include <R_ext/Error.h>	/* for error and warning */
+
+#ifndef STRICT_R_HEADERS
+
+#define R_PROBLEM_BUFSIZE	4096
+/* Parentheses added for FC4 with gcc4 and -D_FORTIFY_SOURCE=2 */
+#define PROBLEM			{char R_problem_buf[R_PROBLEM_BUFSIZE];(sprintf)(R_problem_buf,
+#define MESSAGE                 {char R_problem_buf[R_PROBLEM_BUFSIZE];(sprintf)(R_problem_buf,
+#define ERROR			),error(R_problem_buf);}
+#define RECOVER(x)		),error(R_problem_buf);}
+#define WARNING(x)		),warning(R_problem_buf);}
+#define LOCAL_EVALUATOR		/**/
+#define NULL_ENTRY		/**/
+#define WARN			WARNING(NULL)
+
+#endif
+
+/* S Like Memory Management */
+
+extern void *R_chk_calloc(size_t, size_t);
+extern void *R_chk_realloc(void *, size_t);
+extern void R_chk_free(void *);
+
+#ifndef STRICT_R_HEADERS
+/* S-PLUS 3.x but not 5.x NULLs the pointer in the following */
+#define Calloc(n, t)   (t *) R_chk_calloc( (size_t) (n), sizeof(t) )
+#define Realloc(p,n,t) (t *) R_chk_realloc( (void *)(p), (size_t)((n) * sizeof(t)) )
+#define Free(p)        (R_chk_free( (void *)(p) ), (p) = NULL)
+#endif
+#define R_Calloc(n, t)   (t *) R_chk_calloc( (size_t) (n), sizeof(t) )
+#define R_Realloc(p,n,t) (t *) R_chk_realloc( (void *)(p), (size_t)((n) * sizeof(t)) )
+#define R_Free(p)      (R_chk_free( (void *)(p) ), (p) = NULL)
+
+#define Memcpy(p,q,n)  memcpy( p, q, (size_t)(n) * sizeof(*p) )
+
+/* added for 3.0.0 */
+#define Memzero(p,n)  memset(p, 0, (size_t)(n) * sizeof(*p))
+
+#define CallocCharBuf(n) (char *) R_chk_calloc((size_t) ((n)+1), sizeof(char))
+
+/* S Like Fortran Interface */
+/* These may not be adequate everywhere. Convex had _ prepending common
+   blocks, and some compilers may need to specify Fortran linkage */
+
+#ifdef HAVE_F77_UNDERSCORE
+# define F77_CALL(x)	x ## _
+#else
+# define F77_CALL(x)	x
+#endif
+#define F77_NAME(x)    F77_CALL(x)
+#define F77_SUB(x)     F77_CALL(x)
+#define F77_COM(x)     F77_CALL(x)
+#define F77_COMDECL(x) F77_CALL(x)
+
+#ifndef NO_CALL_R
+void	call_R(char*, long, void**, char**, long*, char**, long, char**);
+#endif
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_RS_H */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Rallocators.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Rallocators.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Rallocators.h	(revision 2476)
@@ -0,0 +1,54 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2014-2016  The R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ *
+ *
+ *  Definition of the R_allocator_t structure for custom allocators
+ *  to be used with allocVector3()
+ */
+
+#ifndef R_EXT_RALLOCATORS_H_
+#define R_EXT_RALLOCATORS_H_
+
+#ifndef NO_C_HEADERS
+# if defined(__cplusplus) && !defined(DO_NOT_USE_CXX_HEADERS)
+#  include <cstddef>
+# else
+#  include <stddef.h> /* for size_t */
+# endif
+#else
+#warning "use of NO_C_HEADERS is deprecated"
+#endif
+
+/* R_allocator_t typedef is also declared in Rinternals.h 
+   so we guard against random inclusion order */
+#ifndef R_ALLOCATOR_TYPE
+#define R_ALLOCATOR_TYPE
+typedef struct R_allocator R_allocator_t;
+#endif
+
+typedef void *(*custom_alloc_t)(R_allocator_t *allocator, size_t);
+typedef void  (*custom_free_t)(R_allocator_t *allocator, void *);
+
+struct R_allocator {
+    custom_alloc_t mem_alloc; /* malloc equivalent */
+    custom_free_t  mem_free;  /* free equivalent */
+    void *res;                /* reserved (maybe for copy) - must be NULL */
+    void *data;               /* custom data for the allocator implementation */
+};
+
+#endif /* R_EXT_RALLOCATORS_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/GraphicsEngine.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/GraphicsEngine.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/GraphicsEngine.h	(revision 2476)
@@ -0,0 +1,524 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2001-11 The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* Used by graphics.c, grid and by third-party graphics devices */
+
+#ifndef R_GRAPHICSENGINE_H_
+#define R_GRAPHICSENGINE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * The current graphics engine (including graphics device) API version
+ * MUST be integer
+ *
+ * This number should be bumped whenever there are changes to
+ * GraphicsEngine.h or GraphicsDevice.h so that add-on packages
+ * that compile against these headers (graphics systems such as
+ * graphics and grid;  graphics devices such as gtkDevice, RSvgDevice)
+ * can detect any version mismatch.
+ *
+ * Version 1:  Introduction of the version number.
+ * Version 2:  GEDevDesc *dd dropped from GEcontourLines().
+ * Version 3:  R_GE_str2col() added to API. (r41887)
+ * Version 4:  UTF-8 text hooks, useRotatedTextInContour,
+ *             add newFrameConfirm() to NewDevDesc.
+ *             New API: GEaddDevice[2] GEgetDevice, GEkillDevice,
+ *             ndevNumber. (R 2.7.0)
+ * Version 5:  Clean up 1.4.0/2.0.0 changes!
+ *             Remove newDevStruct from GEDevDesc and NewDevDesc.
+ *             Remove asp, dot(), hold(), open() from NewDevDesc.
+ *             Move displayList, DLlastElt, savedSnapshot from
+ *             NewDevDesc to GEDevDesc.
+ *             Add 'ask' to GEDevDesc. (R 2.8.0)
+ * Version 6:  Add dev_Raster() and dev_Cap()  (R 2.11.0)
+ * Version 7:  Change graphics event handling, adding eventEnv and eventHelper()
+ *	       to DevDesc.  (R 2.12.0)
+ * Version 8:  Add dev_Path() (R 2.12.0)
+ * Version 9:  Add dev_HoldFlush(), haveTrans*, haveRaster,
+ *             haveCapture, haveLocator.  (R 2.14.0)
+ * Version 10: For R 3.0.0.  Typedef and use 'rcolor',
+ *             Remove name2col (R_GE_str2col does the job).
+ * Version 11: For R 3.3.0.
+ *             Official support for saving/restoring display lists
+ *             across R sessions (via recordPlot() and replayPlot())
+ *             - added grid DL to snapshots (used to be NULL)
+ *             - added this version number to snapshots (as attribute)
+ *             - added R version number to snapshots (as attribute)
+ *             - added pkgName to graphics system state info (as attribute)
+ */
+
+#define R_GE_version 11
+
+int R_GE_getVersion(void);
+
+void R_GE_checkVersionOrDie(int version);
+
+/* The graphics engine will only accept locations and dimensions
+ * in native device coordinates, but it provides the following functions
+ * for converting between a couple of simple alternative coordinate
+ * systems and device coordinates:
+ *    DEVICE = native units of the device
+ *    NDC = Normalised device coordinates
+ *    INCHES = inches (!)
+ *    CM = centimetres (!!)
+ */
+
+typedef enum {
+ GE_DEVICE	= 0,	/* native device coordinates (rasters) */
+ GE_NDC	= 1,	/* normalised device coordinates x=(0,1), y=(0,1) */
+ GE_INCHES = 2,
+ GE_CM     = 3
+} GEUnit;
+
+#define MAX_GRAPHICS_SYSTEMS 24
+
+typedef enum {
+    /* In response to this event, the registered graphics system
+     * should allocate and initialise the systemSpecific structure
+     *
+     * Should return R_NilValue on failure so that engine
+     * can tidy up memory allocation
+     */
+    GE_InitState = 0,
+    /* This event gives the registered system a chance to undo
+     * anything done in the initialisation.
+     */
+    GE_FinaliseState = 1,
+    /* This is sent by the graphics engine prior to initialising
+     * the display list.  It give the graphics system the chance
+     * to squirrel away information it will need for redrawing the
+     * the display list
+     */
+    GE_SaveState = 2,
+    /* This is sent by the graphics engine prior to replaying the
+     * display list.  It gives the graphics system the chance to
+     * restore any information it saved on the GE_SaveState event
+     */
+    GE_RestoreState = 6,
+    /* Copy system state information to the current device.
+     * This is used when copying graphics from one device to another
+     * so all the graphics system needs to do is to copy across
+     * the bits required for the display list to draw faithfully
+     * on the new device.
+     */
+    GE_CopyState = 3,
+    /* Create a snapshot of the system state that is sufficient
+     * for the current "image" to be reproduced
+     */
+    GE_SaveSnapshotState = 4,
+    /* Restore the system state that is saved by GE_SaveSnapshotState
+     */
+    GE_RestoreSnapshotState = 5,
+    /* When replaying the display list, the graphics engine
+     * checks, after each replayed action, that the action
+     * produced valid output.  This is the graphics system's
+     * chance to say that the output is crap (in which case the
+     * graphics engine will abort the display list replay).
+     */
+    GE_CheckPlot = 7,
+    /* The device wants to scale the current pointsize
+     * (for scaling an image)
+     * This is not a nice general solution, but a quick fix for
+     * the Windows device.
+     */
+    GE_ScalePS = 8
+} GEevent;
+
+/*
+ *  Some line end/join constants
+ */
+typedef enum {
+  GE_ROUND_CAP  = 1,
+  GE_BUTT_CAP   = 2,
+  GE_SQUARE_CAP = 3
+} R_GE_lineend;
+
+typedef enum {
+  GE_ROUND_JOIN = 1,
+  GE_MITRE_JOIN = 2,
+  GE_BEVEL_JOIN = 3
+} R_GE_linejoin;
+
+/*
+ * A structure containing graphical parameters
+ *
+ * This is how graphical parameters are passed from graphics systems
+ * to the graphics engine AND from the graphics engine to graphics
+ * devices.
+ *
+ * Devices are not *required* to honour graphical parameters
+ * (e.g., alpha transparency is going to be tough for some)
+ */
+typedef struct {
+    /*
+     * Colours
+     *
+     * NOTE:  Alpha transparency included in col & fill
+     */
+    int col;             /* pen colour (lines, text, borders, ...) */
+    int fill;            /* fill colour (for polygons, circles, rects, ...) */
+    double gamma;        /* Gamma correction */
+    /*
+     * Line characteristics
+     */
+    double lwd;          /* Line width (roughly number of pixels) */
+    int lty;             /* Line type (solid, dashed, dotted, ...) */
+    R_GE_lineend lend;   /* Line end */
+    R_GE_linejoin ljoin; /* line join */
+    double lmitre;       /* line mitre */
+    /*
+     * Text characteristics
+     */
+    double cex;          /* Character expansion (font size = fontsize*cex) */
+    double ps;           /* Font size in points */
+    double lineheight;   /* Line height (multiply by font size) */
+    int fontface;        /* Font face (plain, italic, bold, ...) */
+    char fontfamily[201]; /* Font family */
+} R_GE_gcontext;
+
+typedef R_GE_gcontext* pGEcontext;
+
+
+#include <R_ext/GraphicsDevice.h> /* needed for DevDesc */
+
+typedef struct _GEDevDesc GEDevDesc;
+
+typedef SEXP (* GEcallback)(GEevent, GEDevDesc *, SEXP);
+
+typedef struct {
+    /* An array of information about each graphics system that
+     * has registered with the graphics engine.
+     * This is used to store graphics state for each graphics
+     * system on each device.
+     */
+    void *systemSpecific;
+    /*
+     * An array of function pointers, one per graphics system that
+     * has registered with the graphics engine.
+     *
+     * system_Callback is called when the graphics engine wants
+     * to give a graphics system the chance to play with its
+     * device-specific information (stored in systemSpecific)
+     * There are two parameters:  an "event" to tell the graphics
+     * system why the graphics engine has called this function,
+     * and the systemSpecific pointer.  The graphics engine
+     * has to pass the systemSpecific pointer because only
+     * the graphics engine will know what array index to use.
+     */
+    GEcallback callback;
+} GESystemDesc;
+
+struct _GEDevDesc {
+    /*
+     * Stuff that the devices can see (and modify).
+     * All detailed in GraphicsDevice.h
+     */
+    pDevDesc dev;
+    /*
+     * Stuff about the device that only the graphics engine sees
+     * (the devices don't see it).
+     */
+    Rboolean displayListOn;  /* toggle for display list status */
+    SEXP displayList;        /* display list */
+    SEXP DLlastElt;          /* A pointer to the end of the display list
+				to avoid tranversing pairlists */
+    SEXP savedSnapshot;      /* The last element of the display list
+			      * just prior to when the display list
+			      * was last initialised
+			      */
+    Rboolean dirty;          /* Has the device received any output? */
+    Rboolean recordGraphics; /* Should a graphics call be stored
+			      * on the display list?
+			      * Set to FALSE by do_recordGraphics,
+			      * do_dotcallgr, and do_Externalgr
+			      * so that nested calls are not
+			      * recorded on the display list
+			      */
+    /*
+     * Stuff about the device that only graphics systems see.
+     * The graphics engine has no idea what is in here.
+     * Used by graphics systems to store system state per device.
+     */
+    GESystemDesc *gesd[MAX_GRAPHICS_SYSTEMS];
+
+    /* per-device setting for 'ask' (use NewFrameConfirm) */
+    Rboolean ask;
+};
+
+typedef GEDevDesc* pGEDevDesc;
+
+/* functions from devices.c for use by graphics devices */
+
+#define desc2GEDesc		Rf_desc2GEDesc
+/* map DevDesc to enclosing GEDevDesc */
+pGEDevDesc desc2GEDesc(pDevDesc dd);
+int GEdeviceNumber(pGEDevDesc);
+pGEDevDesc GEgetDevice(int);
+void GEaddDevice(pGEDevDesc);
+void GEaddDevice2(pGEDevDesc, const char *);
+void GEaddDevice2f(pGEDevDesc, const char *, const char *);
+void GEkillDevice(pGEDevDesc);
+pGEDevDesc GEcreateDevDesc(pDevDesc dev);
+
+void GEdestroyDevDesc(pGEDevDesc dd);
+void *GEsystemState(pGEDevDesc dd, int index);
+void GEregisterWithDevice(pGEDevDesc dd);
+void GEregisterSystem(GEcallback callback, int *systemRegisterIndex);
+void GEunregisterSystem(int registerIndex);
+SEXP GEhandleEvent(GEevent event, pDevDesc dev, SEXP data);
+
+#define fromDeviceX		GEfromDeviceX
+#define toDeviceX		GEtoDeviceX
+#define fromDeviceY		GEfromDeviceY
+#define toDeviceY		GEtoDeviceY
+#define fromDeviceWidth		GEfromDeviceWidth
+#define toDeviceWidth		GEtoDeviceWidth
+#define fromDeviceHeight	GEfromDeviceHeight
+#define toDeviceHeight		GEtoDeviceHeight
+
+double fromDeviceX(double value, GEUnit to, pGEDevDesc dd);
+double toDeviceX(double value, GEUnit from, pGEDevDesc dd);
+double fromDeviceY(double value, GEUnit to, pGEDevDesc dd);
+double toDeviceY(double value, GEUnit from, pGEDevDesc dd);
+double fromDeviceWidth(double value, GEUnit to, pGEDevDesc dd);
+double toDeviceWidth(double value, GEUnit from, pGEDevDesc dd);
+double fromDeviceHeight(double value, GEUnit to, pGEDevDesc dd);
+double toDeviceHeight(double value, GEUnit from, pGEDevDesc dd);
+
+/*-------------------------------------------------------------------
+ *
+ *  COLOUR CODE is concerned with the internals of R colour representation
+ *
+ *  From colors.c, used in par.c, grid/src/gpar.c
+ */
+
+typedef unsigned int rcolor;
+
+#define RGBpar			Rf_RGBpar
+#define RGBpar3			Rf_RGBpar3
+#define col2name                Rf_col2name
+
+/* Convert an element of a R colour specification (which might be a
+   number or a string) into an internal colour specification. */
+rcolor RGBpar(SEXP, int);
+rcolor RGBpar3(SEXP, int, rcolor);
+
+/* Convert an internal colour specification to/from a colour name */
+const char *col2name(rcolor col); /* used in par.c, grid */
+
+/* Convert either a name or a #RRGGBB[AA] string to internal.
+   Because people were using it, it also converts "1", "2" ...
+   to a colour in the palette, and "0" to transparent white.
+*/
+rcolor R_GE_str2col(const char *s);
+
+
+
+/*
+ *	Some Notes on Line Textures
+ *
+ *	Line textures are stored as an array of 4-bit integers within
+ *	a single 32-bit word.  These integers contain the lengths of
+ *	lines to be drawn with the pen alternately down and then up.
+ *	The device should try to arrange that these values are measured
+ *	in points if possible, although pixels is ok on most displays.
+ *
+ *	If newlty contains a line texture description it is decoded
+ *	as follows:
+ *
+ *		ndash = 0;
+ *		for(i=0 ; i<8 && newlty & 15 ; i++) {
+ *			dashlist[ndash++] = newlty & 15;
+ *			newlty = newlty>>4;
+ *		}
+ *		dashlist[0] = length of pen-down segment
+ *		dashlist[1] = length of pen-up segment
+ *		etc
+ *
+ *	An integer containing a zero terminates the pattern.  Hence
+ *	ndash in this code fragment gives the length of the texture
+ *	description.  If a description contains an odd number of
+ *	elements it is replicated to create a pattern with an
+ *	even number of elements.  (If this is a pain, do something
+ *	different its not crucial).
+ *
+ */
+
+/*--- The basic numbered & names line types; Here device-independent:
+  e.g. "dashed" == "44",  "dotdash" == "1343"
+*/
+
+/* NB: was also in Rgraphics.h in R < 2.7.0 */
+#define LTY_BLANK	-1
+#define LTY_SOLID	0
+#define LTY_DASHED	4 + (4<<4)
+#define LTY_DOTTED	1 + (3<<4)
+#define LTY_DOTDASH	1 + (3<<4) + (4<<8) + (3<<12)
+#define LTY_LONGDASH	7 + (3<<4)
+#define LTY_TWODASH	2 + (2<<4) + (6<<8) + (2<<12)
+
+R_GE_lineend GE_LENDpar(SEXP value, int ind);
+SEXP GE_LENDget(R_GE_lineend lend);
+R_GE_linejoin GE_LJOINpar(SEXP value, int ind);
+SEXP GE_LJOINget(R_GE_linejoin ljoin);
+
+void GESetClip(double x1, double y1, double x2, double y2, pGEDevDesc dd);
+void GENewPage(const pGEcontext gc, pGEDevDesc dd);
+void GELine(double x1, double y1, double x2, double y2,
+	    const pGEcontext gc, pGEDevDesc dd);
+void GEPolyline(int n, double *x, double *y,
+		const pGEcontext gc, pGEDevDesc dd);
+void GEPolygon(int n, double *x, double *y,
+	       const pGEcontext gc, pGEDevDesc dd);
+SEXP GEXspline(int n, double *x, double *y, double *s, Rboolean open,
+	       Rboolean repEnds, Rboolean draw,
+	       const pGEcontext gc, pGEDevDesc dd);
+void GECircle(double x, double y, double radius,
+	      const pGEcontext gc, pGEDevDesc dd);
+void GERect(double x0, double y0, double x1, double y1,
+	    const pGEcontext gc, pGEDevDesc dd);
+void GEPath(double *x, double *y,
+            int npoly, int *nper,
+            Rboolean winding,
+            const pGEcontext gc, pGEDevDesc dd);
+void GERaster(unsigned int *raster, int w, int h,
+              double x, double y, double width, double height,
+              double angle, Rboolean interpolate,
+              const pGEcontext gc, pGEDevDesc dd);
+SEXP GECap(pGEDevDesc dd);
+void GEText(double x, double y, const char * const str, cetype_t enc,
+	    double xc, double yc, double rot,
+	    const pGEcontext gc, pGEDevDesc dd);
+void GEMode(int mode, pGEDevDesc dd);
+void GESymbol(double x, double y, int pch, double size,
+	      const pGEcontext gc, pGEDevDesc dd);
+void GEPretty(double *lo, double *up, int *ndiv);
+void GEMetricInfo(int c, const pGEcontext gc,
+		  double *ascent, double *descent, double *width,
+		  pGEDevDesc dd);
+double GEStrWidth(const char *str, cetype_t enc,
+		  const pGEcontext gc, pGEDevDesc dd);
+double GEStrHeight(const char *str, cetype_t enc,
+		  const pGEcontext gc, pGEDevDesc dd);
+void GEStrMetric(const char *str, cetype_t enc, const pGEcontext gc,
+                 double *ascent, double *descent, double *width,
+                 pGEDevDesc dd);
+int GEstring_to_pch(SEXP pch);
+
+/*-------------------------------------------------------------------
+ *
+ *  LINE TEXTURE CODE is concerned with the internals of R
+ *  line texture representation.
+ */
+unsigned int GE_LTYpar(SEXP, int);
+SEXP GE_LTYget(unsigned int);
+
+/*
+ * Raster operations
+ */
+void R_GE_rasterScale(unsigned int *sraster, int sw, int sh,
+                      unsigned int *draster, int dw, int dh);
+void R_GE_rasterInterpolate(unsigned int *sraster, int sw, int sh,
+                            unsigned int *draster, int dw, int dh);
+void R_GE_rasterRotatedSize(int w, int h, double angle,
+                            int *wnew, int *hnew);
+void R_GE_rasterRotatedOffset(int w, int h, double angle, int botleft,
+                              double *xoff, double *yoff);
+void R_GE_rasterResizeForRotation(unsigned int *sraster,
+                                  int w, int h,
+                                  unsigned int *newRaster,
+                                  int wnew, int hnew,
+                                  const pGEcontext gc);
+void R_GE_rasterRotate(unsigned int *sraster, int w, int h, double angle,
+                       unsigned int *draster, const pGEcontext gc,
+                       Rboolean perPixelAlpha);
+
+
+/*
+ * From plotmath.c
+ */
+double GEExpressionWidth(SEXP expr,
+			 const pGEcontext gc, pGEDevDesc dd);
+double GEExpressionHeight(SEXP expr,
+			  const pGEcontext gc, pGEDevDesc dd);
+void GEExpressionMetric(SEXP expr, const pGEcontext gc,
+                        double *ascent, double *descent, double *width,
+                        pGEDevDesc dd);
+void GEMathText(double x, double y, SEXP expr,
+		double xc, double yc, double rot,
+		const pGEcontext gc, pGEDevDesc dd);
+/*
+ * (End from plotmath.c)
+ */
+
+/*
+ * From plot3d.c : used in package clines
+ */
+SEXP GEcontourLines(double *x, int nx, double *y, int ny,
+		    double *z, double *levels, int nl);
+/*
+ * (End from plot3d.c)
+ */
+
+/*
+ * From vfonts.c
+ */
+double R_GE_VStrWidth(const char *s, cetype_t enc, const pGEcontext gc, pGEDevDesc dd);
+
+double R_GE_VStrHeight(const char *s, cetype_t enc, const pGEcontext gc, pGEDevDesc dd);
+void R_GE_VText(double x, double y, const char * const s, cetype_t enc,
+		double x_justify, double y_justify, double rotation,
+		const pGEcontext gc, pGEDevDesc dd);
+/*
+ * (End from vfonts.c)
+ */
+
+/* Also in Graphics.h */
+#define	DEG2RAD 0.01745329251994329576
+
+pGEDevDesc GEcurrentDevice(void);
+Rboolean GEdeviceDirty(pGEDevDesc dd);
+void GEdirtyDevice(pGEDevDesc dd);
+Rboolean GEcheckState(pGEDevDesc dd);
+Rboolean GErecording(SEXP call, pGEDevDesc dd);
+void GErecordGraphicOperation(SEXP op, SEXP args, pGEDevDesc dd);
+void GEinitDisplayList(pGEDevDesc dd);
+void GEplayDisplayList(pGEDevDesc dd);
+void GEcopyDisplayList(int fromDevice);
+SEXP GEcreateSnapshot(pGEDevDesc dd);
+void GEplaySnapshot(SEXP snapshot, pGEDevDesc dd);
+void GEonExit(void);
+void GEnullDevice(void);
+
+
+/* From ../../main/plot.c, used by ../../library/grid/src/grid.c : */
+#define CreateAtVector		Rf_CreateAtVector
+SEXP CreateAtVector(double*, double*, int, Rboolean);
+/* From ../../main/graphics.c, used by ../../library/grDevices/src/axis_scales.c : */
+#define GAxisPars 		Rf_GAxisPars
+void GAxisPars(double *min, double *max, int *n, Rboolean log, int axis);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* R_GRAPHICSENGINE_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Lapack.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Lapack.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Lapack.h	(revision 2476)
@@ -0,0 +1,3122 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2003-2016 The R Core Team.
+ *  Copyright (C) 2008   The R Foundation
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/*
+   C declarations of LAPACK Fortran subroutines included in R.
+   Just those used (currently or previously) by C routines in R itself.
+
+   Part of the API.
+
+   R packages that use these should have PKG_LIBS in src/Makevars include 
+   $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
+ */
+
+
+#ifndef R_LAPACK_H
+#define R_LAPACK_H
+
+#include <R_ext/RS.h>		/* for F77_... */
+#include <R_ext/Complex.h>	/* for Rcomplex */
+#include <R_ext/BLAS.h>
+
+
+/*
+  LAPACK function names are [dz]<name>(), where d denotes the real
+  version of the function, z the complex version.  (Only
+  double-precision versions are used in R.)
+*/
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+/* The LAPACK version: might change after installation with
+   external LAPACK
+*/
+extern void F77_NAME(ilaver)(int *major, int *minor, int *patch);
+
+// Never defined by R itself.
+#ifndef La_extern
+#define La_extern extern
+#endif
+
+// Utilities for Lapack-using packages :
+// ------------------------------------
+
+/* matrix norms: converting typstr[]  to one of {'M', 'O', 'I', 'F'}
+ * or signal error(): */
+// La_extern char La_norm_type(const char *typstr);
+
+/* matrix (reciprocal) condition numbers: convert typstr[]  to 'O'(ne) or 'I'(nf)
+ * or signal error(): */
+// La_extern char La_rcond_type(const char *typstr);
+
+
+/* Selected Double Precision Lapack Routines
+   ========
+ */
+
+//* Double precision BiDiagonal and DIagonal matrices  -> DBD & DDI
+
+/* DBDSQR - compute the singular value decomposition (SVD) of a real */
+/* N-by-N (upper or lower) bidiagonal matrix B */
+La_extern void
+F77_NAME(dbdsqr)(const char* uplo, const int* n, const int* ncvt,
+		 const int* nru, const int* ncc, double* d, double* e,
+		 double* vt, const int* ldvt, double* u, const int* ldu,
+		 double* c, const int* ldc, double* work, int* info);
+/* DDISNA - compute the reciprocal condition numbers for the */
+/* eigenvectors of a real symmetric or complex Hermitian matrix or */
+/* for the left or right singular vectors of a general m-by-n */
+/* matrix */
+La_extern void
+F77_NAME(ddisna)(const char* job, const int* m, const int* n,
+		 double* d, double* sep, int* info);
+
+
+//* Double precision General Banded matrices -> DGB
+
+/* DGBBRD - reduce a real general m-by-n band matrix A to upper */
+/* bidiagonal form B by an orthogonal transformation  */
+La_extern void
+F77_NAME(dgbbrd)(const char* vect, const int* m, const int* n,
+		 const int* ncc, const int* kl, const int* ku,
+		 double* ab, const int* ldab,
+		 double* d, double* e, double* q,
+		 const int* ldq, double* pt, const int* ldpt,
+		 double* c, const int* ldc,
+		 double* work, int* info);
+/* DGBCON - estimate the reciprocal of the condition number of a */
+/* real general band matrix A, in either the 1-norm or the */
+/* infinity-norm */
+La_extern void
+F77_NAME(dgbcon)(const char* norm, const int* n, const int* kl,
+		 const int* ku, double* ab, const int* ldab,
+		 int* ipiv, const double* anorm, double* rcond,
+		 double* work, int* iwork, int* info);
+/* DGBEQU - compute row and column scalings intended to equilibrate */
+/* an M-by-N band matrix A and reduce its condition number */
+La_extern void
+F77_NAME(dgbequ)(const int* m, const int* n, const int* kl, const int* ku,
+		 double* ab, const int* ldab, double* r, double* c,
+		 double* rowcnd, double* colcnd, double* amax, int* info);
+/* DGBRFS - improve the computed solution to a system of linear */
+/* equations when the coefficient matrix is banded, and provides */
+/* error bounds and backward error estimates for the solution */
+La_extern void
+F77_NAME(dgbrfs)(const char* trans, const int* n, const int* kl,
+		 const int* ku, const int* nrhs, double* ab,
+		 const int* ldab, double* afb, const int* ldafb,
+		 int* ipiv, double* b, const int* ldb,
+		 double* x, const int* ldx, double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+/* DGBSV - compute the solution to a real system of linear */
+/* equations A * X = B, where A is a band matrix of order N with */
+/* KL subdiagonals and KU superdiagonals, and X and B are */
+/* N-by-NRHS matrices */
+La_extern void
+F77_NAME(dgbsv)(const int* n, const int* kl,const int* ku,
+		const int* nrhs, double* ab, const int* ldab,
+		int* ipiv, double* b, const int* ldb, int* info);
+/* DGBSVX - use the LU factorization to compute the solution to a */
+/* real system of linear equations A * X = B or A**T * X = B */
+La_extern void
+F77_NAME(dgbsvx)(const int* fact, const char* trans,
+		 const int* n, const int* kl,const int* ku,
+		 const int* nrhs, double* ab, const int* ldab,
+		 double* afb, const int* ldafb, int* ipiv,
+		 const char* equed, double* r, double* c,
+		 double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* rcond, double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+/* DGBTF2 - compute an LU factorization of a real m-by-n band */
+/* matrix A using partial pivoting with row interchanges */
+La_extern void
+F77_NAME(dgbtf2)(const int* m, const int* n, const int* kl,const int* ku,
+		 double* ab, const int* ldab, int* ipiv, int* info);
+/* DGBTRF - compute an LU factorization of a real m-by-n band */
+/* matrix A using partial pivoting with row interchanges */
+La_extern void
+F77_NAME(dgbtrf)(const int* m, const int* n, const int* kl,const int* ku,
+		  double* ab, const int* ldab, int* ipiv, int* info);
+/* DGBTRS - solve a system of linear equations	A * X = B or  */
+/* A' * X = B with a general band matrix A using the LU */
+/* factorization computed by DGBTRF */
+La_extern void
+F77_NAME(dgbtrs)(const char* trans, const int* n,
+		 const int* kl, const int* ku, const int* nrhs,
+		 const double* ab, const int* ldab, const int* ipiv,
+		 double* b, const int* ldb, int* info);
+
+
+//* Double precision GEneral matrices -> DGE
+
+/* DGEBAK - form the right or left eigenvectors of a real general */
+/* matrix by backward transformation on the computed eigenvectors */
+/* of the balanced matrix output by DGEBAL  */
+La_extern void
+F77_NAME(dgebak)(const char* job, const char* side, const int* n,
+		 const int* ilo, const int* ihi, double* scale,
+		 const int* m, double* v, const int* ldv, int* info);
+/* DGEBAL - balance a general real matrix A */
+La_extern void
+F77_NAME(dgebal)(const char* job, const int* n, double* a, const int* lda,
+		  int* ilo, int* ihi, double* scale, int* info);
+/* DGEBD2 - reduce a real general m by n matrix A to upper or */
+/* lower bidiagonal form B by an orthogonal transformation */
+La_extern void
+F77_NAME(dgebd2)(const int* m, const int* n, double* a, const int* lda,
+		 double* d, double* e, double* tauq, double* taup,
+		 double* work, int* info);
+/* DGEBRD - reduce a general real M-by-N matrix A to upper or */
+/* lower bidiagonal form B by an orthogonal transformation */
+La_extern void
+F77_NAME(dgebrd)(const int* m, const int* n, double* a, const int* lda,
+		 double* d, double* e, double* tauq, double* taup,
+		 double* work, const int* lwork, int* info);
+/* DGECON - estimate the reciprocal of the condition number of a */
+/* general real matrix A, in either the 1-norm or the */
+/* infinity-norm, using the LU factorization computed by DGETRF */
+La_extern void
+F77_NAME(dgecon)(const char* norm, const int* n,
+		 const double* a, const int* lda,
+		 const double* anorm, double* rcond,
+		 double* work, int* iwork, int* info);
+/* DGEEQU - compute row and column scalings intended to equilibrate */
+/* an M-by-N matrix A and reduce its condition number */
+La_extern void
+F77_NAME(dgeequ)(const int* m, const int* n, double* a, const int* lda,
+		 double* r, double* c, double* rowcnd, double* colcnd,
+		 double* amax, int* info);
+/* DGEES - compute for an N-by-N real nonsymmetric matrix A, the */
+/* eigenvalues, the real Schur form T, and, optionally, the matrix */
+/* of Schur vectors Z */
+La_extern void
+F77_NAME(dgees)(const char* jobvs, const char* sort,
+		int (*select)(const double*, const double*),
+		const int* n, double* a, const int* lda,
+		int* sdim, double* wr, double* wi,
+		double* vs, const int* ldvs,
+		double* work, const int* lwork, int* bwork, int* info);
+/* DGEESX - compute for an N-by-N real nonsymmetric matrix A, the */
+/* eigenvalues, the real Schur form T, and, optionally, the matrix */
+/* of Schur vectors Z */
+La_extern void
+F77_NAME(dgeesx)(const char* jobvs, const char* sort,
+		 int (*select)(const double*, const double*),
+		 const char* sense, const int* n, double* a,
+		 const int* lda, int* sdim, double* wr, double* wi,
+		 double* vs, const int* ldvs, double* rconde,
+		 double* rcondv, double* work, const int* lwork,
+		 int* iwork, const int* liwork, int* bwork, int* info);
+/* DGEEV - compute for an N-by-N real nonsymmetric matrix A, the */
+/* eigenvalues and, optionally, the left and/or right eigenvectors */
+La_extern void
+F77_NAME(dgeev)(const char* jobvl, const char* jobvr,
+		const int* n, double* a, const int* lda,
+		double* wr, double* wi, double* vl, const int* ldvl,
+		double* vr, const int* ldvr,
+		double* work, const int* lwork, int* info);
+/* DGEEVX - compute for an N-by-N real nonsymmetric matrix A, the */
+/* eigenvalues and, optionally, the left and/or right eigenvectors */
+La_extern void
+F77_NAME(dgeevx)(const char* balanc, const char* jobvl, const char* jobvr,
+		 const char* sense, const int* n, double* a, const int* lda,
+		 double* wr, double* wi, double* vl, const int* ldvl,
+		 double* vr, const int* ldvr, int* ilo, int* ihi,
+		 double* scale, double* abnrm, double* rconde, double* rcondv,
+		 double* work, const int* lwork, int* iwork, int* info);
+/* DGEHD2 - reduce a real general matrix A to upper Hessenberg */
+/* form H by an orthogonal similarity transformation */
+La_extern void
+F77_NAME(dgehd2)(const int* n, const int* ilo, const int* ihi,
+		 double* a, const int* lda, double* tau,
+		 double* work, int* info);
+/* DGEHRD - reduce a real general matrix A to upper Hessenberg */
+/* form H by an orthogonal similarity transformation */
+La_extern void
+F77_NAME(dgehrd)(const int* n, const int* ilo, const int* ihi,
+		 double* a, const int* lda, double* tau,
+		 double* work, const int* lwork, int* info);
+/* DGELQ2 - compute an LQ factorization of a real m by n matrix A */
+La_extern void
+F77_NAME(dgelq2)(const int* m, const int* n,
+		 double* a, const int* lda, double* tau,
+		 double* work, int* info);
+/* DGELQF - compute an LQ factorization of a real M-by-N matrix A */
+La_extern void
+F77_NAME(dgelqf)(const int* m, const int* n,
+		 double* a, const int* lda, double* tau,
+		 double* work, const int* lwork, int* info);
+/* DGELS - solve overdetermined or underdetermined real linear */
+/* systems involving an M-by-N matrix A, or its transpose, using a */
+/* QR or LQ factorization of A */
+La_extern void
+F77_NAME(dgels)(const char* trans, const int* m, const int* n,
+		const int* nrhs, double* a, const int* lda,
+		double* b, const int* ldb,
+		double* work, const int* lwork, int* info);
+/* DGELSS - compute the minimum norm solution to a real linear */
+/* least squares problem */
+La_extern void
+F77_NAME(dgelss)(const int* m, const int* n, const int* nrhs,
+		 double* a, const int* lda, double* b, const int* ldb,
+		 double* s, double* rcond, int* rank,
+		 double* work, const int* lwork, int* info);
+/* DGELSY - compute the minimum-norm solution to a real linear */
+/* least squares problem */
+La_extern void
+F77_NAME(dgelsy)(const int* m, const int* n, const int* nrhs,
+		 double* a, const int* lda, double* b, const int* ldb,
+		 int* jpvt, const double* rcond, int* rank,
+		 double* work, const int* lwork, int* info);
+/* DGEQL2 - compute a QL factorization of a real m by n matrix A */
+La_extern void
+F77_NAME(dgeql2)(const int* m, const int* n, double* a, const int* lda,
+		 double* tau, double* work, int* info);
+/* DGEQLF - compute a QL factorization of a real M-by-N matrix A */
+La_extern void
+F77_NAME(dgeqlf)(const int* m, const int* n,
+		 double* a, const int* lda, double* tau,
+		 double* work, const int* lwork, int* info);
+/* DGEQP3 - compute a QR factorization with column pivoting of a */
+/* real M-by-N matrix A using level 3 BLAS */
+La_extern void
+F77_NAME(dgeqp3)(const int* m, const int* n, double* a, const int* lda,
+		 int* jpvt, double* tau, double* work, const int* lwork,
+		 int* info);
+/* DGEQR2 - compute a QR factorization of a real m by n matrix A */
+La_extern void
+F77_NAME(dgeqr2)(const int* m, const int* n, double* a, const int* lda,
+		 double* tau, double* work, int* info);
+/* DGEQRF - compute a QR factorization of a real M-by-N matrix A */
+La_extern void
+F77_NAME(dgeqrf)(const int* m, const int* n, double* a, const int* lda,
+		 double* tau, double* work, const int* lwork, int* info);
+/* DGERFS - improve the computed solution to a system of linear */
+/* equations and provides error bounds and backward error */
+/* estimates for the solution */
+La_extern void
+F77_NAME(dgerfs)(const char* trans, const int* n, const int* nrhs,
+		 double* a, const int* lda, double* af, const int* ldaf,
+		 int* ipiv, double* b, const int* ldb,
+		 double* x, const int* ldx, double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+/* DGERQ2 - compute an RQ factorization of a real m by n matrix A */
+La_extern void
+F77_NAME(dgerq2)(const int* m, const int* n, double* a, const int* lda,
+		 double* tau, double* work, int* info);
+/* DGERQF - compute an RQ factorization of a real M-by-N matrix A */
+La_extern void
+F77_NAME(dgerqf)(const int* m, const int* n, double* a, const int* lda,
+		 double* tau, double* work, const int* lwork, int* info);
+/* DGESV - compute the solution to a real system of linear */
+/* equations  A * X = B, */
+La_extern void
+F77_NAME(dgesv)(const int* n, const int* nrhs, double* a, const int* lda,
+		int* ipiv, double* b, const int* ldb, int* info);
+/* DGESVD - compute the singular value decomposition (SVD); of a */
+/* real M-by-N matrix A, optionally computing the left and/or */
+/* right singular vectors */
+La_extern void
+F77_NAME(dgesvd)(const char* jobu, const char* jobvt, const int* m,
+		 const int* n, double* a, const int* lda, double* s,
+		 double* u, const int* ldu, double* vt, const int* ldvt,
+		 double* work, const int* lwork, int* info);
+/* DGESVX - use the LU factorization to compute the solution to a */
+/* real system of linear equations  A * X = B, */
+La_extern void
+F77_NAME(dgesvx)(const char* fact, const char* trans, const int* n,
+		 const int* nrhs, double* a, const int* lda,
+		 double* af, const int* ldaf, int* ipiv,
+		 char *equed, double* r, double* c,
+		 double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* rcond, double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+/* DGETF2 - compute an LU factorization of a general m-by-n */
+/* matrix A using partial pivoting with row interchanges */
+La_extern void
+F77_NAME(dgetf2)(const int* m, const int* n, double* a, const int* lda,
+		 int* ipiv, int* info);
+/* DGETRF - compute an LU factorization of a general M-by-N */
+/* matrix A using partial pivoting with row interchanges */
+La_extern void
+F77_NAME(dgetrf)(const int* m, const int* n, double* a, const int* lda,
+		 int* ipiv, int* info);
+/* DGETRI - compute the inverse of a matrix using the LU */
+/* factorization computed by DGETRF */
+La_extern void
+F77_NAME(dgetri)(const int* n, double* a, const int* lda,
+		 int* ipiv, double* work, const int* lwork, int* info);
+/* DGETRS - solve a system of linear equations	A * X = B or A' * */
+/* X = B with a general N-by-N matrix A using the LU factorization */
+/* computed by DGETRF */
+La_extern void
+F77_NAME(dgetrs)(const char* trans, const int* n, const int* nrhs,
+		 const double* a, const int* lda, const int* ipiv,
+		 double* b, const int* ldb, int* info);
+
+
+//* Double precision General matrices Generalized problems -> DGG
+
+/* DGGBAK - form the right or left eigenvectors of a real */
+/* generalized eigenvalue problem A*x = lambda*B*x, by backward */
+/* transformation on the computed eigenvectors of the balanced */
+/* pair of matrices output by DGGBAL */
+La_extern void
+F77_NAME(dggbak)(const char* job, const char* side,
+		 const int* n, const int* ilo, const int* ihi,
+		 double* lscale, double* rscale, const int* m,
+		 double* v, const int* ldv, int* info);
+/* DGGBAL - balance a pair of general real matrices (A,B); */
+La_extern void
+F77_NAME(dggbal)(const char* job, const int* n, double* a, const int* lda,
+		 double* b, const int* ldb, int* ilo, int* ihi,
+		 double* lscale, double* rscale, double* work, int* info);
+/* DGGES - compute for a pair of N-by-N real nonsymmetric */
+/* matrices A, B the generalized eigenvalues, the generalized */
+/* real Schur form (S,T), optionally, the left and/or right matrices */
+/* of Schur vectors (VSL and VSR)*/
+La_extern void
+F77_NAME(dgges)(const char* jobvsl, const char* jobvsr, const char* sort,
+		int (*delztg)(double*, double*, double*),
+		const int* n, double* a, const int* lda,
+		double* b, const int* ldb, double* alphar,
+		double* alphai, const double* beta,
+		double* vsl, const int* ldvsl,
+		double* vsr, const int* ldvsr,
+		double* work, const int* lwork, int* bwork, int* info);
+
+/* DGGGLM - solve a general Gauss-Markov linear model (GLM) problem */
+La_extern void
+F77_NAME(dggglm)(const int* n, const int* m, const int* p,
+		 double* a, const int* lda, double* b, const int* ldb,
+		 double* d, double* x, double* y,
+		 double* work, const int* lwork, int* info);
+/* DGGHRD - reduce a pair of real matrices (A,B); to generalized */
+/* upper Hessenberg form using orthogonal transformations, where A */
+/* is a general matrix and B is upper triangular */
+La_extern void
+F77_NAME(dgghrd)(const char* compq, const char* compz, const int* n,
+		 const int* ilo, const int* ihi, double* a, const int* lda,
+		 double* b, const int* ldb, double* q, const int* ldq,
+		 double* z, const int* ldz, int* info);
+/* DGGLSE - solve the linear equality-constrained least squares */
+/* (LSE) problem */
+La_extern void
+F77_NAME(dgglse)(const int* m, const int* n, const int* p,
+		 double* a, const int* lda,
+		 double* b, const int* ldb,
+		 double* c, double* d, double* x,
+		 double* work, const int* lwork, int* info);
+/* DGGQRF - compute a generalized QR factorization of an N-by-M */
+/* matrix A and an N-by-P matrix B */
+La_extern void
+F77_NAME(dggqrf)(const int* n, const int* m, const int* p,
+		 double* a, const int* lda, double* taua,
+		 double* b, const int* ldb, double* taub,
+		 double* work, const int* lwork, int* info);
+/* DGGRQF - compute a generalized RQ factorization of an M-by-N */
+/* matrix A and a P-by-N matrix B */
+La_extern void
+F77_NAME(dggrqf)(const int* m, const int* p, const int* n,
+		 double* a, const int* lda, double* taua,
+		 double* b, const int* ldb, double* taub,
+		 double* work, const int* lwork, int* info);
+
+//* Double precision General Tridiagonal matrices  -> DGT
+
+/* DGTCON - estimate the reciprocal of the condition number of a real */
+/* tridiagonal matrix A using the LU factorization as computed by DGTTRF */
+La_extern void
+F77_NAME(dgtcon)(const char* norm, const int* n, double* dl, double* d,
+		 double* du, double* du2, int* ipiv, const double* anorm,
+		 double* rcond, double* work, int* iwork, int* info);
+/* DGTRFS - improve the computed solution to a system of linear equations */
+/* when the coefficient matrix is tridiagonal, and provides error bounds */
+/* and backward error estimates for the solution */
+La_extern void
+F77_NAME(dgtrfs)(const char* trans, const int* n, const int* nrhs,
+		 double* dl, double* d, double* du, double* dlf,
+		 double* df, double* duf, double* du2,
+		 int* ipiv, double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+/* DGTSV - solve the equation	A*X = B, */
+La_extern void
+F77_NAME(dgtsv)(const int* n, const int* nrhs,
+		double* dl, double* d, double* du,
+		double* b, const int* ldb, int* info);
+/* DGTSVX - use the LU factorization to compute the solution to a */
+/* real system of linear equations A * X = B or A**T * X = B, */
+La_extern void
+F77_NAME(dgtsvx)(const int* fact, const char* trans,
+		 const int* n, const int* nrhs,
+		 double* dl, double* d, double* du,
+		 double* dlf, double* df, double* duf,
+		 double* du2, int* ipiv,
+		 double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* rcond, double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+/* DGTTRF - compute an LU factorization of a real tridiagonal matrix */
+/* A using elimination with partial pivoting and row interchanges */
+La_extern void
+F77_NAME(dgttrf)(const int* n, double* dl, double* d,
+		 double* du, double* du2, int* ipiv, int* info);
+/* DGTTRS - solve one of the systems of equations  A*X = B or */
+/* A'*X = B, */
+La_extern void
+F77_NAME(dgttrs)(const char* trans, const int* n, const int* nrhs,
+		 double* dl, double* d, double* du, double* du2,
+		 int* ipiv, double* b, const int* ldb, int* info);
+
+
+//* Double precision Orthogonal matrices  -> DOP & DOR
+
+/* DOPGTR - generate a real orthogonal matrix Q which is defined */
+/* as the product of n-1 elementary reflectors H(i); of order n, */
+/* as returned by DSPTRD using packed storage */
+La_extern void
+F77_NAME(dopgtr)(const char* uplo, const int* n,
+		 const double* ap, const double* tau,
+		 double* q, const int* ldq,
+		 double* work, int* info);
+/* DOPMTR - overwrite the general real M-by-N matrix C with */
+/* SIDE = 'L' SIDE = 'R' TRANS = 'N' */
+La_extern void
+F77_NAME(dopmtr)(const char* side, const char* uplo,
+		 const char* trans, const int* m, const int* n,
+		 const double* ap, const double* tau,
+		 double* c, const int* ldc,
+		 double* work, int* info);
+/* DORG2L - generate an m by n real matrix Q with orthonormal */
+/* columns, */
+La_extern void
+F77_NAME(dorg2l)(const int* m, const int* n, const int* k,
+		 double* a, const int* lda,
+		 const double* tau, double* work, int* info);
+/* DORG2R - generate an m by n real matrix Q with orthonormal */
+/* columns, */
+La_extern void
+F77_NAME(dorg2r)(const int* m, const int* n, const int* k,
+		 double* a, const int* lda,
+		 const double* tau, double* work, int* info);
+/* DORGBR - generate one of the real orthogonal matrices Q or */
+/* P**T determined by DGEBRD when reducing a real matrix A to */
+/* bidiagonal form */
+La_extern void
+F77_NAME(dorgbr)(const char* vect, const int* m,
+		 const int* n, const int* k,
+		 double* a, const int* lda,
+		 const double* tau, double* work,
+		 const int* lwork, int* info);
+/* DORGHR - generate a real orthogonal matrix Q which is defined */
+/* as the product of IHI-ILO elementary reflectors of order N, as */
+/* returned by DGEHRD */
+La_extern void
+F77_NAME(dorghr)(const int* n, const int* ilo, const int* ihi,
+		 double* a, const int* lda, const double* tau,
+		 double* work, const int* lwork, int* info);
+/* DORGL2 - generate an m by n real matrix Q with orthonormal */
+/* rows, */
+La_extern void
+F77_NAME(dorgl2)(const int* m, const int* n, const int* k,
+		 double* a, const int* lda, const double* tau,
+		 double* work, int* info);
+/* DORGLQ - generate an M-by-N real matrix Q with orthonormal */
+/* rows, */
+La_extern void
+F77_NAME(dorglq)(const int* m, const int* n, const int* k,
+		 double* a, const int* lda,
+		 const double* tau, double* work,
+		 const int* lwork, int* info);
+/* DORGQL - generate an M-by-N real matrix Q with orthonormal */
+/* columns, */
+La_extern void
+F77_NAME(dorgql)(const int* m, const int* n, const int* k,
+		 double* a, const int* lda,
+		 const double* tau, double* work,
+		 const int* lwork, int* info);
+/* DORGQR - generate an M-by-N real matrix Q with orthonormal */
+/* columns, */
+La_extern void
+F77_NAME(dorgqr)(const int* m, const int* n, const int* k,
+		 double* a, const int* lda, const double* tau,
+		 double* work, const int* lwork, int* info);
+/* DORGR2 - generate an m by n real matrix Q with orthonormal */
+/* rows, */
+La_extern void
+F77_NAME(dorgr2)(const int* m, const int* n, const int* k,
+		 double* a, const int* lda, const double* tau,
+		 double* work, int* info);
+/* DORGRQ - generate an M-by-N real matrix Q with orthonormal rows */
+La_extern void
+F77_NAME(dorgrq)(const int* m, const int* n, const int* k,
+		 double* a, const int* lda, const double* tau,
+		 double* work, const int* lwork, int* info);
+/* DORGTR - generate a real orthogonal matrix Q which is defined */
+/* as the product of n-1 elementary reflectors of order const int* n, as */
+/* returned by DSYTRD */
+La_extern void
+F77_NAME(dorgtr)(const char* uplo, const int* n,
+		 double* a, const int* lda, const double* tau,
+		 double* work, const int* lwork, int* info);
+/* DORM2L - overwrite the general real m by n matrix C with   Q * */
+/* C if SIDE = 'L' and TRANS = 'N', or	 Q'* C if SIDE = 'L' and */
+/* TRANS = 'T', or   C * Q if SIDE = 'R' and TRANS = 'N', or   C * */
+/* Q' if SIDE = 'R' and TRANS = 'T', */
+La_extern void
+F77_NAME(dorm2l)(const char* side, const char* trans,
+		 const int* m, const int* n, const int* k,
+		 const double* a, const int* lda,
+		 const double* tau, double* c, const int* ldc,
+		 double* work, int* info);
+/* DORM2R - overwrite the general real m by n matrix C with   Q * C */
+/* if SIDE = 'L' and TRANS = 'N', or   Q'* C if SIDE = 'L' and */
+/* TRANS = 'T', or   C * Q if SIDE = 'R' and TRANS = 'N', or   C * */
+/* Q' if SIDE = 'R' and TRANS = 'T', */
+La_extern void
+F77_NAME(dorm2r)(const char* side, const char* trans,
+		 const int* m, const int* n, const int* k,
+		 const double* a, const int* lda, const double* tau,
+		 double* c, const int* ldc, double* work, int* info);
+/* DORMBR - VECT = 'Q', DORMBR overwrites the general real M-by-N */
+/* matrix C with  SIDE = 'L' SIDE = 'R' TRANS = 'N' */
+La_extern void
+F77_NAME(dormbr)(const char* vect, const char* side, const char* trans,
+		 const int* m, const int* n, const int* k,
+		 const double* a, const int* lda, const double* tau,
+		 double* c, const int* ldc,
+		 double* work, const int* lwork, int* info);
+/* DORMHR - overwrite the general real M-by-N matrix C with */
+/* SIDE = 'L' SIDE = 'R' TRANS = 'N' */
+La_extern void
+F77_NAME(dormhr)(const char* side, const char* trans, const int* m,
+		 const int* n, const int* ilo, const int* ihi,
+		 const double* a, const int* lda, const double* tau,
+		 double* c, const int* ldc,
+		 double* work, const int* lwork, int* info);
+/* DORML2 - overwrite the general real m by n matrix C with   Q * */
+/* C if SIDE = 'L' and TRANS = 'N', or	 Q'* C if SIDE = 'L' and */
+/* TRANS = 'T', or   C * Q if SIDE = 'R' and TRANS = 'N', or   C * */
+/* Q' if SIDE = 'R' and TRANS = 'T', */
+La_extern void
+F77_NAME(dorml2)(const char* side, const char* trans,
+		 const int* m, const int* n, const int* k,
+		 const double* a, const int* lda, const double* tau,
+		 double* c, const int* ldc, double* work, int* info);
+/* DORMLQ - overwrite the general real M-by-N matrix C with */
+/* SIDE = 'L' SIDE = 'R' TRANS = 'N'  */
+La_extern void
+F77_NAME(dormlq)(const char* side, const char* trans,
+		 const int* m, const int* n, const int* k,
+		 const double* a, const int* lda,
+		 const double* tau, double* c, const int* ldc,
+		 double* work, const int* lwork, int* info);
+/* DORMQL - overwrite the general real M-by-N matrix C with */
+/* SIDE = 'L' SIDE = 'R' TRANS = 'N' */
+La_extern void
+F77_NAME(dormql)(const char* side, const char* trans,
+		 const int* m, const int* n, const int* k,
+		 const double* a, const int* lda,
+		 const double* tau, double* c, const int* ldc,
+		 double* work, const int* lwork, int* info);
+/* DORMQR - overwrite the general real M-by-N matrix C with   SIDE = */
+/* 'L' SIDE = 'R' TRANS = 'N' */
+La_extern void
+F77_NAME(dormqr)(const char* side, const char* trans,
+		 const int* m, const int* n, const int* k,
+		 const double* a, const int* lda,
+		 const double* tau, double* c, const int* ldc,
+		 double* work, const int* lwork, int* info);
+/* DORMR2 - overwrite the general real m by n matrix C with   Q * */
+/* C if SIDE = 'L' and TRANS = 'N', or	 Q'* C if SIDE = 'L' and */
+/* TRANS = 'T', or   C * Q if SIDE = 'R' and TRANS = 'N', or   C * */
+/* Q' if SIDE = 'R' and TRANS = 'T', */
+La_extern void
+F77_NAME(dormr2)(const char* side, const char* trans,
+		 const int* m, const int* n, const int* k,
+		 const double* a, const int* lda,
+		 const double* tau, double* c, const int* ldc,
+		 double* work, int* info);
+/* DORMRQ - overwrite the general real M-by-N matrix C with */
+/* SIDE = 'L' SIDE = 'R' TRANS = 'N' */
+La_extern void
+F77_NAME(dormrq)(const char* side, const char* trans,
+		 const int* m, const int* n, const int* k,
+		 const double* a, const int* lda,
+		 const double* tau, double* c, const int* ldc,
+		 double* work, const int* lwork, int* info);
+/* DORMTR - overwrite the general real M-by-N matrix C with */
+/* SIDE = 'L' SIDE = 'R' TRANS = 'N' */
+La_extern void
+F77_NAME(dormtr)(const char* side, const char* uplo,
+		 const char* trans, const int* m, const int* n,
+		 const double* a, const int* lda,
+		 const double* tau, double* c, const int* ldc,
+		 double* work, const int* lwork, int* info);
+
+
+//* Double precision Positive definite Band matrices  -> DPB
+
+/* DPBCON - estimate the reciprocal of the condition number (in */
+/* the 1-norm); of a real symmetric positive definite band matrix */
+/* using the Cholesky factorization A = U**T*U or A = L*L**T */
+/* computed by DPBTRF */
+La_extern void
+F77_NAME(dpbcon)(const char* uplo, const int* n, const int* kd,
+		 const double* ab, const int* ldab,
+		 const double* anorm, double* rcond,
+		 double* work, int* iwork, int* info);
+/* DPBEQU - compute row and column scalings intended to */
+/* equilibrate a symmetric positive definite band matrix A and */
+/* reduce its condition number (with respect to the two-norm); */
+La_extern void
+F77_NAME(dpbequ)(const char* uplo, const int* n, const int* kd,
+		 const double* ab, const int* ldab,
+		 double* s, double* scond, double* amax, int* info);
+/* DPBRFS - improve the computed solution to a system of linear */
+/* equations when the coefficient matrix is symmetric positive */
+/* definite and banded, and provides error bounds and backward */
+/* error estimates for the solution */
+La_extern void
+F77_NAME(dpbrfs)(const char* uplo, const int* n,
+		 const int* kd, const int* nrhs,
+		 const double* ab, const int* ldab,
+		 const double* afb, const int* ldafb,
+		 const double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+/* DPBSTF - compute a split Cholesky factorization of a real */
+/* symmetric positive definite band matrix A */
+La_extern void
+F77_NAME(dpbstf)(const char* uplo, const int* n, const int* kd,
+		 double* ab, const int* ldab, int* info);
+/* DPBSV - compute the solution to a real system of linear */
+/* equations  A * X = B, */
+La_extern void
+F77_NAME(dpbsv)(const char* uplo, const int* n,
+		const int* kd, const int* nrhs,
+		double* ab, const int* ldab,
+		double* b, const int* ldb, int* info);
+/* DPBSVX - use the Cholesky factorization A = U**T*U or A = */
+/* L*L**T to compute the solution to a real system of linear */
+/* equations  A * X = B, */
+La_extern void
+F77_NAME(dpbsvx)(const int* fact, const char* uplo, const int* n,
+		 const int* kd, const int* nrhs,
+		 double* ab, const int* ldab,
+		 double* afb, const int* ldafb,
+		 char* equed, double* s,
+		 double* b, const int* ldb,
+		 double* x, const int* ldx, double* rcond,
+		 double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+/* DPBTF2 - compute the Cholesky factorization of a real */
+/* symmetric positive definite band matrix A */
+La_extern void
+F77_NAME(dpbtf2)(const char* uplo, const int* n, const int* kd,
+		 double* ab, const int* ldab, int* info);
+/* DPBTRF - compute the Cholesky factorization of a real */
+/* symmetric positive definite band matrix A */
+La_extern void
+F77_NAME(dpbtrf)(const char* uplo, const int* n, const int* kd,
+		 double* ab, const int* ldab, int* info);
+/* DPBTRS - solve a system of linear equations A*X = B with a */
+/* symmetric positive definite band matrix A using the Cholesky */
+/* factorization A = U**T*U or A = L*L**T computed by DPBTRF */
+La_extern void
+F77_NAME(dpbtrs)(const char* uplo, const int* n,
+		 const int* kd, const int* nrhs,
+		 const double* ab, const int* ldab,
+		 double* b, const int* ldb, int* info);
+
+
+//* Double precision Positive definite matrices  -> DPO
+
+/* DPOCON - estimate the reciprocal of the condition number (in */
+/* the 1-norm); of a real symmetric positive definite matrix using */
+/* the Cholesky factorization A = U**T*U or A = L*L**T computed by */
+/* DPOTRF */
+La_extern void
+F77_NAME(dpocon)(const char* uplo, const int* n,
+		 const double* a, const int* lda,
+		 const double* anorm, double* rcond,
+		 double* work, int* iwork, int* info);
+/* DPOEQU - compute row and column scalings intended to */
+/* equilibrate a symmetric positive definite matrix A and reduce */
+/* its condition number (with respect to the two-norm); */
+La_extern void
+F77_NAME(dpoequ)(const int* n, const double* a, const int* lda,
+		 double* s, double* scond, double* amax, int* info);
+/* DPORFS - improve the computed solution to a system of linear */
+/* equations when the coefficient matrix is symmetric positive */
+/* definite, */
+La_extern void
+F77_NAME(dporfs)(const char* uplo, const int* n, const int* nrhs,
+		 const double* a, const int* lda,
+		 const double* af, const int* ldaf,
+		 const double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+/* DPOSV - compute the solution to a real system of linear */
+/* equations  A * X = B, */
+La_extern void
+F77_NAME(dposv)(const char* uplo, const int* n, const int* nrhs,
+		double* a, const int* lda,
+		double* b, const int* ldb, int* info);
+/* DPOSVX - use the Cholesky factorization A = U**T*U or A = */
+/* L*L**T to compute the solution to a real system of linear */
+/* equations  A * X = B, */
+La_extern void
+F77_NAME(dposvx)(const int* fact, const char* uplo,
+		 const int* n, const int* nrhs,
+		 double* a, const int* lda,
+		 double* af, const int* ldaf, char* equed,
+		 double* s, double* b, const int* ldb,
+		 double* x, const int* ldx, double* rcond,
+		 double* ferr, double* berr, double* work,
+		 int* iwork, int* info);
+/* DPOTF2 - compute the Cholesky factorization of a real */
+/* symmetric positive definite matrix A */
+La_extern void
+F77_NAME(dpotf2)(const char* uplo, const int* n,
+		 double* a, const int* lda, int* info);
+/* DPOTRF - compute the Cholesky factorization of a real */
+/* symmetric positive definite matrix A */
+La_extern void
+F77_NAME(dpotrf)(const char* uplo, const int* n,
+		 double* a, const int* lda, int* info);
+/* DPOTRI - compute the inverse of a real symmetric positive */
+/* definite matrix A using the Cholesky factorization A = U**T*U */
+/* or A = L*L**T computed by DPOTRF */
+La_extern void
+F77_NAME(dpotri)(const char* uplo, const int* n,
+		 double* a, const int* lda, int* info);
+/* DPOTRS - solve a system of linear equations A*X = B with a */
+/* symmetric positive definite matrix A using the Cholesky */
+/* factorization A = U**T*U or A = L*L**T computed by DPOTRF */
+La_extern void
+F77_NAME(dpotrs)(const char* uplo, const int* n,
+		 const int* nrhs, const double* a, const int* lda,
+		 double* b, const int* ldb, int* info);
+/* DPPCON - estimate the reciprocal of the condition number (in */
+/* the 1-norm); of a real symmetric positive definite packed */
+/* matrix using the Cholesky factorization A = U**T*U or A = */
+/* L*L**T computed by DPPTRF */
+La_extern void
+F77_NAME(dppcon)(const char* uplo, const int* n,
+		 const double* ap, const double* anorm, double* rcond,
+		 double* work, int* iwork, int* info);
+/* DPPEQU - compute row and column scalings intended to */
+/* equilibrate a symmetric positive definite matrix A in packed */
+/* storage and reduce its condition number (with respect to the */
+/* two-norm); */
+La_extern void
+F77_NAME(dppequ)(const char* uplo, const int* n,
+		 const double* ap, double* s, double* scond,
+		 double* amax, int* info);
+
+
+//* Double precision Positive definite matrices in Packed storage  -> DPP
+
+/* DPPRFS - improve the computed solution to a system of linear */
+/* equations when the coefficient matrix is symmetric positive */
+/* definite and packed, and provides error bounds and backward */
+/* error estimates for the solution */
+La_extern void
+F77_NAME(dpprfs)(const char* uplo, const int* n, const int* nrhs,
+		 const double* ap, const double* afp,
+		 const double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+/* DPPSV - compute the solution to a real system of linear */
+/* equations  A * X = B, */
+La_extern void
+F77_NAME(dppsv)(const char* uplo, const int* n,
+		const int* nrhs, const double* ap,
+		double* b, const int* ldb, int* info);
+/* DPPSVX - use the Cholesky factorization A = U**T*U or A = */
+/* L*L**T to compute the solution to a real system of linear */
+/* equations  A * X = B, */
+La_extern void
+F77_NAME(dppsvx)(const int* fact, const char* uplo,
+		 const int* n, const int* nrhs, double* ap,
+		 double* afp, char* equed, double* s,
+		 double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* rcond, double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+/* DPPTRF - compute the Cholesky factorization of a real */
+/* symmetric positive definite matrix A stored in packed format */
+La_extern void
+F77_NAME(dpptrf)(const char* uplo, const int* n, double* ap, int* info);
+/* DPPTRI - compute the inverse of a real symmetric positive */
+/* definite matrix A using the Cholesky factorization A = U**T*U */
+/* or A = L*L**T computed by DPPTRF  */
+La_extern void
+F77_NAME(dpptri)(const char* uplo, const int* n, double* ap, int* info);
+/* DPPTRS - solve a system of linear equations A*X = B with a */
+/* symmetric positive definite matrix A in packed storage using */
+/* the Cholesky factorization A = U**T*U or A = L*L**T computed by */
+/* DPPTRF */
+La_extern void
+F77_NAME(dpptrs)(const char* uplo, const int* n,
+		 const int* nrhs, const double* ap,
+		 double* b, const int* ldb, int* info);
+
+//* Double precision symmetric Positive definite Tridiagonal matrices  -> DPT
+
+/* DPTCON - compute the reciprocal of the condition number (in */
+/* the 1-norm); of a real symmetric positive definite tridiagonal */
+/* matrix using the factorization A = L*D*L**T or A = U**T*D*U */
+/* computed by DPTTRF */
+La_extern void
+F77_NAME(dptcon)(const int* n,
+		 const double* d, const double* e,
+		 const double* anorm, double* rcond,
+		 double* work, int* info);
+/* DPTEQR - compute all eigenvalues and, optionally, eigenvectors */
+/* of a symmetric positive definite tridiagonal matrix by first */
+/* factoring the matrix using DPTTRF, and then calling DBDSQR to */
+/* compute the singular values of the bidiagonal factor */
+La_extern void
+F77_NAME(dpteqr)(const char* compz, const int* n, double* d,
+		 double* e, double* z, const int* ldz,
+		 double* work, int* info);
+/* DPTRFS - improve the computed solution to a system of linear */
+/* equations when the coefficient matrix is symmetric positive */
+/* definite and tridiagonal, and provides error bounds and */
+/* backward error estimates for the solution */
+La_extern void
+F77_NAME(dptrfs)(const int* n, const int* nrhs,
+		 const double* d, const double* e,
+		 const double* df, const double* ef,
+		 const double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* ferr, double* berr,
+		 double* work, int* info);
+/* DPTSV - compute the solution to a real system of linear */
+/* equations A*X = B, where A is an N-by-N symmetric positive */
+/* definite tridiagonal matrix, and X and B are N-by-NRHS matrices */
+La_extern void
+F77_NAME(dptsv)(const int* n, const int* nrhs, double* d,
+		double* e, double* b, const int* ldb, int* info);
+/* DPTSVX - use the factorization A = L*D*L**T to compute the */
+/* solution to a real system of linear equations A*X = B, where A */
+/* is an N-by-N symmetric positive definite tridiagonal matrix and */
+/* X and B are N-by-NRHS matrices */
+La_extern void
+F77_NAME(dptsvx)(const int* fact, const int* n,
+		 const int* nrhs,
+		 const double* d, const double* e,
+		 double* df, double* ef,
+		 const double* b, const int* ldb,
+		 double* x, const int* ldx, double* rcond,
+		 double* ferr, double* berr,
+		 double* work, int* info);
+/* DPTTRF - compute the factorization of a real symmetric */
+/* positive definite tridiagonal matrix A */
+La_extern void
+F77_NAME(dpttrf)(const int* n, double* d, double* e, int* info);
+/* DPTTRS - solve a system of linear equations A * X = B with a */
+/* symmetric positive definite tridiagonal matrix A using the */
+/* factorization A = L*D*L**T or A = U**T*D*U computed by DPTTRF */
+La_extern void
+F77_NAME(dpttrs)(const int* n, const int* nrhs,
+		 const double* d, const double* e,
+		 double* b, const int* ldb, int* info);
+/* DRSCL - multiply an n-element real vector x by the real scalar */
+/* 1/a */
+La_extern void
+F77_NAME(drscl)(const int* n, const double* da,
+		double* x, const int* incx);
+
+//* Double precision Symmetric Band matrices  -> DSB
+
+/* DSBEV - compute all the eigenvalues and, optionally, */
+/* eigenvectors of a real symmetric band matrix A */
+La_extern void
+F77_NAME(dsbev)(const char* jobz, const char* uplo,
+		const int* n, const int* kd,
+		double* ab, const int* ldab,
+		double* w, double* z, const int* ldz,
+		double* work, int* info);
+/* DSBEVD - compute all the eigenvalues and, optionally, */
+/* eigenvectors of a real symmetric band matrix A */
+La_extern void
+F77_NAME(dsbevd)(const char* jobz, const char* uplo,
+		 const int* n, const int* kd,
+		 double* ab, const int* ldab,
+		 double* w, double* z, const int* ldz,
+		 double* work, const int* lwork,
+		 int* iwork, const int* liwork, int* info);
+/* DSBEVX - compute selected eigenvalues and, optionally, */
+/* eigenvectors of a real symmetric band matrix A */
+La_extern void
+F77_NAME(dsbevx)(const char* jobz, const char* range,
+		 const char* uplo, const int* n, const int* kd,
+		 double* ab, const int* ldab,
+		 double* q, const int* ldq,
+		 const double* vl, const double* vu,
+		 const int* il, const int* iu,
+		 const double* abstol,
+		 int* m, double* w,
+		 double* z, const int* ldz,
+		 double* work, int* iwork,
+		 int* ifail, int* info);
+/* DSBGST - reduce a real symmetric-definite banded generalized */
+/* eigenproblem A*x = lambda*B*x to standard form C*y = lambda*y, */
+La_extern void
+F77_NAME(dsbgst)(const char* vect, const char* uplo,
+		 const int* n, const int* ka, const int* kb,
+		 double* ab, const int* ldab,
+		 double* bb, const int* ldbb,
+		 double* x, const int* ldx,
+		 double* work, int* info);
+/* DSBGV - compute all the eigenvalues, and optionally, the */
+/* eigenvectors of a real generalized symmetric-definite banded */
+/* eigenproblem, of the form A*x=(lambda);*B*x */
+La_extern void
+F77_NAME(dsbgv)(const char* jobz, const char* uplo,
+		const int* n, const int* ka, const int* kb,
+		double* ab, const int* ldab,
+		double* bb, const int* ldbb,
+		double* w, double* z, const int* ldz,
+		double* work, int* info);
+/* DSBTRD - reduce a real symmetric band matrix A to symmetric */
+/* tridiagonal form T by an orthogonal similarity transformation */
+La_extern void
+F77_NAME(dsbtrd)(const char* vect, const char* uplo,
+		 const int* n, const int* kd,
+		 double* ab, const int* ldab,
+		 double* d, double* e,
+		 double* q, const int* ldq,
+		 double* work, int* info);
+
+//* Double precision Symmetric Packed matrices  -> DSP
+
+/* DSPCON - estimate the reciprocal of the condition number (in */
+/* the 1-norm); of a real symmetric packed matrix A using the */
+/* factorization A = U*D*U**T or A = L*D*L**T computed by DSPTRF */
+La_extern void
+F77_NAME(dspcon)(const char* uplo, const int* n,
+		 const double* ap, const int* ipiv,
+		 const double* anorm, double* rcond,
+		 double* work, int* iwork, int* info);
+/* DSPEV - compute all the eigenvalues and, optionally, */
+/* eigenvectors of a real symmetric matrix A in packed storage */
+La_extern void
+F77_NAME(dspev)(const char* jobz, const char* uplo, const int* n,
+		double* ap, double* w, double* z, const int* ldz,
+		double* work, int* info);
+/* DSPEVD - compute all the eigenvalues and, optionally, */
+/* eigenvectors of a real symmetric matrix A in packed storage */
+La_extern void
+F77_NAME(dspevd)(const char* jobz, const char* uplo,
+		 const int* n, double* ap, double* w,
+		 double* z, const int* ldz,
+		 double* work, const int* lwork,
+		 int* iwork, const int* liwork, int* info);
+/* DSPEVX - compute selected eigenvalues and, optionally, */
+/* eigenvectors of a real symmetric matrix A in packed storage */
+La_extern void
+F77_NAME(dspevx)(const char* jobz, const char* range,
+		 const char* uplo, const int* n, double* ap,
+		 const double* vl, const double* vu,
+		 const int* il, const int* iu,
+		 const double* abstol,
+		 int* m, double* w,
+		 double* z, const int* ldz,
+		 double* work, int* iwork,
+		 int* ifail, int* info);
+/* DSPGST - reduce a real symmetric-definite generalized */
+/* eigenproblem to standard form, using packed storage */
+La_extern void
+F77_NAME(dspgst)(const int* itype, const char* uplo,
+		 const int* n, double* ap, double* bp, int* info);
+/* DSPGV - compute all the eigenvalues and, optionally, the */
+/* eigenvectors of a real generalized symmetric-definite */
+/* eigenproblem, of the form A*x=(lambda)*B*x, A*Bx=(lambda)*x, */
+/* or B*A*x=(lambda)*x */
+La_extern void
+F77_NAME(dspgv)(const int* itype, const char* jobz,
+		const char* uplo, const int* n,
+		double* ap, double* bp, double* w,
+		double* z, const int* ldz,
+		double* work, int* info);
+
+/* DSPRFS - improve the computed solution to a system of linear */
+/* equations when the coefficient matrix is symmetric indefinite */
+/* and packed, and provides error bounds and backward error */
+/* estimates for the solution */
+La_extern void
+F77_NAME(dsprfs)(const char* uplo, const int* n,
+		 const int* nrhs, const double* ap,
+		 const double* afp, const int* ipiv,
+		 const double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+
+/* DSPSV - compute the solution to a real system of linear */
+/* equations  A * X = B, */
+La_extern void
+F77_NAME(dspsv)(const char* uplo, const int* n,
+		const int* nrhs, double* ap, int* ipiv,
+		double* b, const int* ldb, int* info);
+
+/* DSPSVX - use the diagonal pivoting factorization A = U*D*U**T */
+/* or A = L*D*L**T to compute the solution to a real system of */
+/* linear equations A * X = B, where A is an N-by-N symmetric */
+/* matrix stored in packed format and X and B are N-by-NRHS */
+/* matrices */
+La_extern void
+F77_NAME(dspsvx)(const int* fact, const char* uplo,
+		 const int* n, const int* nrhs,
+		 const double* ap, double* afp, int* ipiv,
+		 const double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* rcond, double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+
+/* DSPTRD - reduce a real symmetric matrix A stored in packed */
+/* form to symmetric tridiagonal form T by an orthogonal */
+/* similarity transformation */
+La_extern void
+F77_NAME(dsptrd)(const char* uplo, const int* n,
+		 double* ap, double* d, double* e,
+		 double* tau, int* info);
+
+/* DSPTRF - compute the factorization of a real symmetric matrix */
+/* A stored in packed format using the Bunch-Kaufman diagonal */
+/* pivoting method */
+La_extern void
+F77_NAME(dsptrf)(const char* uplo, const int* n,
+		 double* ap, int* ipiv, int* info);
+
+/* DSPTRI - compute the inverse of a real symmetric indefinite */
+/* matrix A in packed storage using the factorization A = U*D*U**T */
+/* or A = L*D*L**T computed by DSPTRF */
+La_extern void
+F77_NAME(dsptri)(const char* uplo, const int* n,
+		 double* ap, const int* ipiv,
+		 double* work, int* info);
+
+/* DSPTRS - solve a system of linear equations A*X = B with a */
+/* real symmetric matrix A stored in packed format using the */
+/* factorization A = U*D*U**T or A = L*D*L**T computed by DSPTRF */
+La_extern void
+F77_NAME(dsptrs)(const char* uplo, const int* n,
+		 const int* nrhs, const double* ap,
+		 const int* ipiv, double* b, const int* ldb, int* info);
+
+
+//* Double precision Symmetric Tridiagonal matrices  -> DST
+
+/* DSTEBZ - compute the eigenvalues of a symmetric tridiagonal */
+/* matrix T */
+La_extern void
+F77_NAME(dstebz)(const char* range, const char* order, const int* n,
+		 const double* vl, const double* vu,
+		 const int* il, const int* iu,
+		 const double *abstol,
+		 const double* d, const double* e,
+		 int* m, int* nsplit, double* w,
+		 int* iblock, int* isplit,
+		 double* work, int* iwork,
+		 int* info);
+/* DSTEDC - compute all eigenvalues and, optionally, eigenvectors */
+/* of a symmetric tridiagonal matrix using the divide and conquer */
+/* method */
+La_extern void
+F77_NAME(dstedc)(const char* compz, const int* n,
+		 double* d, double* e,
+		 double* z, const int* ldz,
+		 double* work, const int* lwork,
+		 int* iwork, const int* liwork, int* info);
+/* DSTEIN - compute the eigenvectors of a real symmetric */
+/* tridiagonal matrix T corresponding to specified eigenvalues, */
+/* using inverse iteration */
+La_extern void
+F77_NAME(dstein)(const int* n, const double* d, const double* e,
+		 const int* m, const double* w,
+		 const int* iblock, const int* isplit,
+		 double* z, const int* ldz,
+		 double* work, int* iwork,
+		 int* ifail, int* info);
+/* DSTEQR - compute all eigenvalues and, optionally, eigenvectors */
+/* of a symmetric tridiagonal matrix using the implicit QL or QR */
+/* method */
+La_extern void
+F77_NAME(dsteqr)(const char* compz, const int* n, double* d, double* e,
+		 double* z, const int* ldz, double* work, int* info);
+/* DSTERF - compute all eigenvalues of a symmetric tridiagonal */
+/* matrix using the Pal-Walker-Kahan variant of the QL or QR */
+/* algorithm */
+La_extern void
+F77_NAME(dsterf)(const int* n, double* d, double* e, int* info);
+/* DSTEV - compute all eigenvalues and, optionally, eigenvectors */
+/* of a real symmetric tridiagonal matrix A */
+La_extern void
+F77_NAME(dstev)(const char* jobz, const int* n,
+		double* d, double* e,
+		double* z, const int* ldz,
+		double* work, int* info);
+/* DSTEVD - compute all eigenvalues and, optionally, eigenvectors */
+/* of a real symmetric tridiagonal matrix */
+La_extern void
+F77_NAME(dstevd)(const char* jobz, const int* n,
+		 double* d, double* e,
+		 double* z, const int* ldz,
+		 double* work, const int* lwork,
+		 int* iwork, const int* liwork, int* info);
+/* DSTEVX - compute selected eigenvalues and, optionally, */
+/* eigenvectors of a real symmetric tridiagonal matrix A */
+La_extern void
+F77_NAME(dstevx)(const char* jobz, const char* range,
+		 const int* n, double* d, double* e,
+		 const double* vl, const double* vu,
+		 const int* il, const int* iu,
+		 const double* abstol,
+		 int* m, double* w,
+		 double* z, const int* ldz,
+		 double* work, int* iwork,
+		 int* ifail, int* info);
+
+//* Double precision SYmmetric matrices  -> DSY
+
+/* DSYCON - estimate the reciprocal of the condition number (in */
+/* the 1-norm); of a real symmetric matrix A using the */
+/* factorization A = U*D*U**T or A = L*D*L**T computed by DSYTRF */
+La_extern void
+F77_NAME(dsycon)(const char* uplo, const int* n,
+		 const double* a, const int* lda,
+		 const int* ipiv,
+		 const double* anorm, double* rcond,
+		 double* work, int* iwork, int* info);
+/* DSYEV - compute all eigenvalues and, optionally, eigenvectors */
+/* of a real symmetric matrix A */
+La_extern void
+F77_NAME(dsyev)(const char* jobz, const char* uplo,
+		const int* n, double* a, const int* lda,
+		double* w, double* work, const int* lwork, int* info);
+/* DSYEVD - compute all eigenvalues and, optionally, eigenvectors */
+/* of a real symmetric matrix A */
+La_extern void
+F77_NAME(dsyevd)(const char* jobz, const char* uplo,
+		 const int* n, double* a, const int* lda,
+		 double* w, double* work, const int* lwork,
+		 int* iwork, const int* liwork, int* info);
+/* DSYEVX - compute selected eigenvalues and, optionally, */
+/* eigenvectors of a real symmetric matrix A */
+La_extern void
+F77_NAME(dsyevx)(const char* jobz, const char* range,
+		 const char* uplo, const int* n,
+		 double* a, const int* lda,
+		 const double* vl, const double* vu,
+		 const int* il, const int* iu,
+		 const double* abstol,
+		 int* m, double* w,
+		 double* z, const int* ldz,
+		 double* work, const int* lwork, int* iwork,
+		 int* ifail, int* info);
+/* DSYEVR - compute all eigenvalues and, optionally, eigenvectors   */
+/* of a real symmetric matrix A					   */
+La_extern void
+F77_NAME(dsyevr)(const char *jobz, const char *range, const char *uplo,
+		 const int *n, double *a, const int *lda,
+		 const double *vl, const double *vu,
+		 const int *il, const int *iu,
+		 const double *abstol, int *m, double *w,
+		 double *z, const int *ldz, int *isuppz,
+		 double *work, const int *lwork,
+		 int *iwork, const int *liwork,
+		 int *info);
+/* DSYGS2 - reduce a real symmetric-definite generalized */
+/* eigenproblem to standard form */
+La_extern void
+F77_NAME(dsygs2)(const int* itype, const char* uplo,
+		 const int* n, double* a, const int* lda,
+		 const double* b, const int* ldb, int* info);
+/* DSYGST - reduce a real symmetric-definite generalized */
+/* eigenproblem to standard form */
+La_extern void
+F77_NAME(dsygst)(const int* itype, const char* uplo,
+		 const int* n, double* a, const int* lda,
+		 const double* b, const int* ldb, int* info);
+/* DSYGV - compute all the eigenvalues, and optionally, the */
+/* eigenvectors of a real generalized symmetric-definite */
+/* eigenproblem, of the form A*x=(lambda);*B*x, A*Bx=(lambda);*x, */
+/* or B*A*x=(lambda);*x */
+La_extern void
+F77_NAME(dsygv)(const int* itype, const char* jobz,
+		const char* uplo, const int* n,
+		double* a, const int* lda,
+		double* b, const int* ldb,
+		double* w, double* work, const int* lwork,
+		int* info);
+/* DSYRFS - improve the computed solution to a system of linear */
+/* equations when the coefficient matrix is symmetric indefinite, */
+/* and provides error bounds and backward error estimates for the */
+/* solution */
+La_extern void
+F77_NAME(dsyrfs)(const char* uplo, const int* n,
+		 const int* nrhs,
+		 const double* a, const int* lda,
+		 const double* af, const int* ldaf,
+		 const int* ipiv,
+		 const double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+
+/* DSYSV - compute the solution to a real system of linear */
+/* equations  A * X = B, */
+La_extern void
+F77_NAME(dsysv)(const char* uplo, const int* n,
+		const int* nrhs,
+		double* a, const int* lda, int* ipiv,
+		double* b, const int* ldb,
+		double* work, const int* lwork, int* info);
+
+/* DSYSVX - use the diagonal pivoting factorization to compute */
+/* the solution to a real system of linear equations A * X = B, */
+La_extern void
+F77_NAME(dsysvx)(const int* fact, const char* uplo,
+		 const int* n, const int* nrhs,
+		 const double* a, const int* lda,
+		 double* af, const int* ldaf, int* ipiv,
+		 const double* b, const int* ldb,
+		 double* x, const int* ldx, double* rcond,
+		 double* ferr, double* berr,
+		 double* work, const int* lwork,
+		 int* iwork, int* info);
+
+/* DSYTD2 - reduce a real symmetric matrix A to symmetric */
+/* tridiagonal form T by an orthogonal similarity transformation */
+La_extern void
+F77_NAME(dsytd2)(const char* uplo, const int* n,
+		 double* a, const int* lda,
+		 double* d, double* e, double* tau,
+		 int* info);
+
+/* DSYTF2 - compute the factorization of a real symmetric matrix */
+/* A using the Bunch-Kaufman diagonal pivoting method */
+La_extern void
+F77_NAME(dsytf2)(const char* uplo, const int* n,
+		 double* a, const int* lda,
+		 int* ipiv, int* info);
+
+/* DSYTRD - reduce a real symmetric matrix A to real symmetric */
+/* tridiagonal form T by an orthogonal similarity transformation */
+La_extern void
+F77_NAME(dsytrd)(const char* uplo, const int* n,
+		 double* a, const int* lda,
+		 double* d, double* e, double* tau,
+		 double* work, const int* lwork, int* info);
+
+/* DSYTRF - compute the factorization of a real symmetric matrix */
+/* A using the Bunch-Kaufman diagonal pivoting method */
+La_extern void
+F77_NAME(dsytrf)(const char* uplo, const int* n,
+		 double* a, const int* lda, int* ipiv,
+		 double* work, const int* lwork, int* info);
+
+/* DSYTRI - compute the inverse of a real symmetric indefinite */
+/* matrix A using the factorization A = U*D*U**T or A = L*D*L**T */
+/* computed by DSYTRF */
+La_extern void
+F77_NAME(dsytri)(const char* uplo, const int* n,
+		 double* a, const int* lda, const int* ipiv,
+		 double* work, int* info);
+
+/* DSYTRS - solve a system of linear equations A*X = B with a */
+/* real symmetric matrix A using the factorization A = U*D*U**T or */
+/* A = L*D*L**T computed by DSYTRF */
+La_extern void
+F77_NAME(dsytrs)(const char* uplo, const int* n,
+		 const int* nrhs,
+		 const double* a, const int* lda,
+		 const int* ipiv,
+		 double* b, const int* ldb, int* info);
+
+//* Double precision Triangular Band matrices  -> DTB
+
+/* DTBCON - estimate the reciprocal of the condition number of a */
+/* triangular band matrix A, in either the 1-norm or the */
+/* infinity-norm */
+La_extern void
+F77_NAME(dtbcon)(const char* norm, const char* uplo,
+		 const char* diag, const int* n, const int* kd,
+		 const double* ab, const int* ldab,
+		 double* rcond, double* work,
+		 int* iwork, int* info);
+/* DTBRFS - provide error bounds and backward error estimates for */
+/* the solution to a system of linear equations with a triangular */
+/* band coefficient matrix */
+La_extern void
+F77_NAME(dtbrfs)(const char* uplo, const char* trans,
+		 const char* diag, const int* n, const int* kd,
+		 const int* nrhs,
+		 const double* ab, const int* ldab,
+		 const double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+/* DTBTRS - solve a triangular system of the form   A * X = B or */
+/* A**T * X = B,  */
+La_extern void
+F77_NAME(dtbtrs)(const char* uplo, const char* trans,
+		 const char* diag, const int* n,
+		 const int* kd, const int* nrhs,
+		 const double* ab, const int* ldab,
+		 double* b, const int* ldb, int* info);
+
+//* Double precision Triangular matrices Generalized problems  -> DTG
+
+/* DTGEVC - compute some or all of the right and/or left */
+/* generalized eigenvectors of a pair of real upper triangular */
+/* matrices (A,B); */
+La_extern void
+F77_NAME(dtgevc)(const char* side, const char* howmny,
+		 const int* select, const int* n,
+		 const double* a, const int* lda,
+		 const double* b, const int* ldb,
+		 double* vl, const int* ldvl,
+		 double* vr, const int* ldvr,
+		 const int* mm, int* m, double* work, int* info);
+
+/* DTGSJA - compute the generalized singular value decomposition */
+/* (GSVD); of two real upper triangular (or trapezoidal); matrices */
+/* A and B */
+La_extern void
+F77_NAME(dtgsja)(const char* jobu, const char* jobv, const char* jobq,
+		 const int* m, const int* p, const int* n,
+		 const int* k, const int* l,
+		 double* a, const int* lda,
+		 double* b, const int* ldb,
+		 const double* tola, const double* tolb,
+		 double* alpha, double* beta,
+		 double* u, const int* ldu,
+		 double* v, const int* ldv,
+		 double* q, const int* ldq,
+		 double* work, int* ncycle, int* info);
+
+//* Double precision Triangular matrices Packed storage  -> DTP
+
+/* DTPCON - estimate the reciprocal of the condition number of a */
+/* packed triangular matrix A, in either the 1-norm or the */
+/* infinity-norm */
+La_extern void
+F77_NAME(dtpcon)(const char* norm, const char* uplo,
+		 const char* diag, const int* n,
+		 const double* ap, double* rcond,
+		 double* work, int* iwork, int* info);
+
+/* DTPRFS - provide error bounds and backward error estimates for */
+/* the solution to a system of linear equations with a triangular */
+/* packed coefficient matrix */
+La_extern void
+F77_NAME(dtprfs)(const char* uplo, const char* trans,
+		 const char* diag, const int* n,
+		 const int* nrhs, const double* ap,
+		 const double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+/* DTPTRI - compute the inverse of a real upper or lower */
+/* triangular matrix A stored in packed format */
+La_extern void
+F77_NAME(dtptri)(const char* uplo, const char* diag,
+		 const int* n, double* ap, int* info);
+
+/* DTPTRS - solve a triangular system of the form   A * X = B or */
+/* A**T * X = B, */
+La_extern void
+F77_NAME(dtptrs)(const char* uplo, const char* trans,
+		 const char* diag, const int* n,
+		 const int* nrhs, const double* ap,
+		 double* b, const int* ldb, int* info);
+
+
+//* Double precision TRiangular matrices -> DTR
+
+/* DTRCON - estimate the reciprocal of the condition number of a */
+/* triangular matrix A, in either the 1-norm or the infinity-norm */
+La_extern void
+F77_NAME(dtrcon)(const char* norm, const char* uplo,
+		 const char* diag, const int* n,
+		 const double* a, const int* lda,
+		 double* rcond, double* work,
+		 int* iwork, int* info);
+
+/* DTREVC - compute some or all of the right and/or left */
+/* eigenvectors of a real upper quasi-triangular matrix T */
+La_extern void
+F77_NAME(dtrevc)(const char* side, const char* howmny,
+		 const int* select, const int* n,
+		 const double* t, const int* ldt,
+		 double* vl, const int* ldvl,
+		 double* vr, const int* ldvr,
+		 const int* mm, int* m, double* work, int* info);
+
+/* DTREXC - reorder the real Schur factorization of a real matrix */
+/* A = Q*T*Q**T, so that the diagonal block of T with row index */
+/* IFST is moved to row ILST */
+La_extern void
+F77_NAME(dtrexc)(const char* compq, const int* n,
+		 double* t, const int* ldt,
+		 double* q, const int* ldq,
+		 int* ifst, int* ILST,
+		 double* work, int* info);
+
+/* DTRRFS - provide error bounds and backward error estimates for */
+/* the solution to a system of linear equations with a triangular */
+/* coefficient matrix */
+La_extern void
+F77_NAME(dtrrfs)(const char* uplo, const char* trans,
+		 const char* diag, const int* n, const int* nrhs,
+		 const double* a, const int* lda,
+		 const double* b, const int* ldb,
+		 double* x, const int* ldx,
+		 double* ferr, double* berr,
+		 double* work, int* iwork, int* info);
+
+/* DTRSEN - reorder the real Schur factorization of a real matrix */
+/* A = Q*T*Q**T, so that a selected cluster of eigenvalues appears */
+/* in the leading diagonal blocks of the upper quasi-triangular */
+/* matrix T, */
+La_extern void
+F77_NAME(dtrsen)(const char* job, const char* compq,
+		 const int* select, const int* n,
+		 double* t, const int* ldt,
+		 double* q, const int* ldq,
+		 double* wr, double* wi,
+		 int* m, double* s, double* sep,
+		 double* work, const int* lwork,
+		 int* iwork, const int* liwork, int* info);
+
+/* DTRSNA - estimate reciprocal condition numbers for specified */
+/* eigenvalues and/or right eigenvectors of a real upper */
+/* quasi-triangular matrix T (or of any matrix Q*T*Q**T with Q */
+/* orthogonal); */
+La_extern void
+F77_NAME(dtrsna)(const char* job, const char* howmny,
+		 const int* select, const int* n,
+		 const double* t, const int* ldt,
+		 const double* vl, const int* ldvl,
+		 const double* vr, const int* ldvr,
+		 double* s, double* sep, const int* mm,
+		 int* m, double* work, const int* lwork,
+		 int* iwork, int* info);
+
+/* DTRSYL - solve the real Sylvester matrix equation */
+La_extern void
+F77_NAME(dtrsyl)(const char* trana, const char* tranb,
+		 const int* isgn, const int* m, const int* n,
+		 const double* a, const int* lda,
+		 const double* b, const int* ldb,
+		 double* c, const int* ldc,
+		 double* scale, int* info);
+
+/* DTRTI2 - compute the inverse of a real upper or lower */
+/* triangular matrix */
+La_extern void
+F77_NAME(dtrti2)(const char* uplo, const char* diag,
+		 const int* n, double* a, const int* lda,
+		 int* info);
+
+/* DTRTRI - compute the inverse of a real upper or lower */
+/* triangular matrix A */
+La_extern void
+F77_NAME(dtrtri)(const char* uplo, const char* diag,
+		 const int* n, double* a, const int* lda,
+		 int* info);
+
+/* DTRTRS - solve a triangular system of the form   A * X = B or */
+/* A**T * X = B	 */
+La_extern void
+F77_NAME(dtrtrs)(const char* uplo, const char* trans,
+		 const char* diag, const int* n, const int* nrhs,
+		 const double* a, const int* lda,
+		 double* b, const int* ldb, int* info);
+
+
+
+//* Double precision utilities in Lapack 
+
+/* DHGEQZ - implement a single-/double-shift version of the QZ */
+/* method for finding the generalized eigenvalues */
+/* w(j);=(ALPHAR(j); + i*ALPHAI(j););/BETAR(j); of the equation */
+/* det( A - w(i); B ); = 0  In addition, the pair A,B may be */
+/* reduced to generalized Schur form */
+La_extern void
+F77_NAME(dhgeqz)(const char* job, const char* compq, const char* compz,
+		 const int* n, const int *ILO, const int* IHI,
+		 double* a, const int* lda,
+		 double* b, const int* ldb,
+		 double* alphar, double* alphai, const double* beta,
+		 double* q, const int* ldq,
+		 double* z, const int* ldz,
+		 double* work, const int* lwork, int* info);
+/* DHSEIN - use inverse iteration to find specified right and/or */
+/* left eigenvectors of a real upper Hessenberg matrix H */
+La_extern void
+F77_NAME(dhsein)(const char* side, const char* eigsrc,
+		 const char* initv, int* select,
+		 const int* n, double* h, const int* ldh,
+		 double* wr, double* wi,
+		 double* vl, const int* ldvl,
+		 double* vr, const int* ldvr,
+		 const int* mm, int* m, double* work,
+		 int* ifaill, int* ifailr, int* info);
+/* DHSEQR - compute the eigenvalues of a real upper Hessenberg */
+/* matrix H and, optionally, the matrices T and Z from the Schur */
+/* decomposition H = Z T Z**T, where T is an upper */
+/* quasi-triangular matrix (the Schur form);, and Z is the */
+/* orthogonal matrix of Schur vectors */
+La_extern void
+F77_NAME(dhseqr)(const char* job, const char* compz, const int* n,
+		 const int* ilo, const int* ihi,
+		 double* h, const int* ldh,
+		 double* wr, double* wi,
+		 double* z, const int* ldz,
+		 double* work, const int* lwork, int* info);
+/* DLABAD - take as input the values computed by SLAMCH for */
+/* underflow and overflow, and returns the square root of each of */
+/* these values if the log of LARGE is sufficiently large */
+La_extern void
+F77_NAME(dlabad)(double* small, double* large);
+/* DLABRD - reduce the first NB rows and columns of a real */
+/* general m by n matrix A to upper or lower bidiagonal form by an */
+/* orthogonal transformation Q' * A * P, and returns the matrices */
+/* X and Y which are needed to apply the transformation to the */
+/* unreduced part of A */
+La_extern void
+F77_NAME(dlabrd)(const int* m, const int* n, const int* nb,
+		 double* a, const int* lda, double* d, double* e,
+		 double* tauq, double* taup,
+		 double* x, const int* ldx, double* y, const int* ldy);
+/* DLACON - estimate the 1-norm of a square, real matrix A */
+La_extern void
+F77_NAME(dlacon)(const int* n, double* v, double* x,
+		 int* isgn, double* est, int* kase);
+/* DLACPY - copy all or part of a two-dimensional matrix A to */
+/* another matrix B */
+La_extern void
+F77_NAME(dlacpy)(const char* uplo, const int* m, const int* n,
+		 const double* a, const int* lda,
+		 double* b, const int* ldb);
+/* DLADIV - perform complex division in real arithmetic	 */
+La_extern void
+F77_NAME(dladiv)(const double* a, const double* b,
+		 const double* c, const double* d,
+		 double* p, double* q);
+/* DLAE2 - compute the eigenvalues of a 2-by-2 symmetric matrix [ A B ] */
+/*								[ B C ] */
+La_extern void
+F77_NAME(dlae2)(const double* a, const double* b, const double* c,
+		double* rt1, double* rt2);
+/* DLAEBZ - contain the iteration loops which compute and use the */
+/* function N(w);, which is the count of eigenvalues of a */
+/* symmetric tridiagonal matrix T less than or equal to its */
+/* argument w  */
+La_extern void
+F77_NAME(dlaebz)(const int* ijob, const int* nitmax, const int* n,
+		 const int* mmax, const int* minp, const int* nbmin,
+		 const double* abstol, const double* reltol,
+		 const double* pivmin, double* d, double* e,
+		 double* e2, int* nval, double* ab, double* c,
+		 int* mout, int* nab, double* work, int* iwork,
+		 int* info);
+/* DLAED0 - compute all eigenvalues and corresponding */
+/* eigenvectors of a symmetric tridiagonal matrix using the divide */
+/* and conquer method */
+La_extern void
+F77_NAME(dlaed0)(const int* icompq, const int* qsiz, const int* n,
+		 double* d, double* e, double* q, const int* ldq,
+		 double* qstore, const int* ldqs,
+		 double* work, int* iwork, int* info);
+/* DLAED1 - compute the updated eigensystem of a diagonal matrix */
+/* after modification by a rank-one symmetric matrix */
+La_extern void
+F77_NAME(dlaed1)(const int* n, double* d, double* q, const int* ldq,
+		 int* indxq, const double* rho, const int* cutpnt,
+		 double* work, int* iwork, int* info);
+/* DLAED2 - merge the two sets of eigenvalues together into a */
+/* single sorted set */
+La_extern void
+F77_NAME(dlaed2)(const int* k, const int* n, double* d,
+		 double* q, const int* ldq, int* indxq,
+		 double* rho, double* z,
+		 double* dlamda, double* w, double* q2,
+		 int* indx, int* indxc, int* indxp,
+		 int* coltyp, int* info);
+/* DLAED3 - find the roots of the secular equation, as defined by */
+/* the values in double* d, W, and RHO, between KSTART and KSTOP */
+La_extern void
+F77_NAME(dlaed3)(const int* k, const int* n, const int* n1,
+		 double* d, double* q, const int* ldq,
+		 const double* rho, double* dlamda, double* q2, 
+		 int* indx, int* ctot, double* w,
+		 double* s, int* info);
+/* DLAED4 - subroutine computes the I-th updated eigenvalue of a */
+/* symmetric rank-one modification to a diagonal matrix whose */
+/* elements are given in the array d, and that	 D(i); < D(j); for */
+/* i < j  and that RHO > 0 */
+La_extern void
+F77_NAME(dlaed4)(const int* n, const int* i, const double* d,
+		 const double* z, const double* delta,
+		 const double* rho, double* dlam, int* info);
+/* DLAED5 - subroutine computes the I-th eigenvalue of a */
+/* symmetric rank-one modification of a 2-by-2 diagonal matrix */
+/* diag( D ); + RHO  The diagonal elements in the array D are */
+/* assumed to satisfy	D(i); < D(j); for i < j	 */
+La_extern void
+F77_NAME(dlaed5)(const int* i, const double* d, const double* z,
+		 double* delta, const double* rho, double* dlam);
+/* DLAED6 - compute the positive or negative root (closest to the */
+/* origin); of	z(1); z(2); z(3); f(x); = rho + --------- + */
+/* ---------- + ---------  d(1);-x d(2);-x d(3);-x  It is assumed */
+/* that	  if ORGATI = .true  */
+La_extern void
+F77_NAME(dlaed6)(const int* kniter, const int* orgati,
+		 const double* rho, const double* d,
+		 const double* z, const double* finit,
+		 double* tau, int* info);
+/* DLAED7 - compute the updated eigensystem of a diagonal matrix */
+/* after modification by a rank-one symmetric matrix */
+La_extern void
+F77_NAME(dlaed7)(const int* icompq, const int* n,
+		 const int* qsiz, const int* tlvls,
+		 const int* curlvl, const int* curpbm,
+		 double* d, double* q, const int* ldq,
+		 int* indxq, const double* rho, const int* cutpnt,
+		 double* qstore, double* qptr, const int* prmptr,
+		 const int* perm, const int* givptr,
+		 const int* givcol, const double* givnum,
+		 double* work, int* iwork, int* info);
+/* DLAED8 - merge the two sets of eigenvalues together into a */
+/* single sorted set */
+La_extern void
+F77_NAME(dlaed8)(const int* icompq, const int* k,
+		 const int* n, const int* qsiz,
+		 double* d, double* q, const int* ldq,
+		 const int* indxq, double* rho,
+		 const int* cutpnt, const double* z,
+		 double* dlamda, double* q2, const int* ldq2,
+		 double* w, int* perm, int* givptr,
+		 int* givcol, double* givnum, int* indxp,
+		 int* indx, int* info);
+/* DLAED9 - find the roots of the secular equation, as defined by */
+/* the values in double* d, Z, and RHO, between KSTART and KSTOP */
+La_extern void
+F77_NAME(dlaed9)(const int* k, const int* kstart, const int* kstop,
+		 const int* n, double* d, double* q, const int* ldq,
+		 const double* rho, const double* dlamda,
+		 const double* w, double* s, const int* lds, int* info);
+/* DLAEDA - compute the Z vector corresponding to the merge step */
+/* in the CURLVLth step of the merge process with TLVLS steps for */
+/* the CURPBMth problem */
+La_extern void
+F77_NAME(dlaeda)(const int* n, const int* tlvls, const int* curlvl,
+		 const int* curpbm, const int* prmptr, const int* perm,
+		 const int* givptr, const int* givcol,
+		 const double* givnum, const double* q,
+		 const int* qptr, double* z, double* ztemp, int* info);
+/* DLAEIN - use inverse iteration to find a right or left */
+/* eigenvector corresponding to the eigenvalue (WR,WI); of a real */
+/* upper Hessenberg matrix H */
+La_extern void
+F77_NAME(dlaein)(const int* rightv, const int* noinit, const int* n,
+		 const double* h, const int* ldh,
+		 const double* wr, const double* wi,
+		 double* vr, double* vi,
+		 double* b, const int* ldb, double* work,
+		 const double* eps3, const double* smlnum,
+		 const double* bignum, int* info);
+/* DLAEV2 - compute the eigendecomposition of a 2-by-2 symmetric */
+/* matrix  [ A B ]  [ B C ] */
+La_extern void
+F77_NAME(dlaev2)(const double* a, const double* b, const double* c,
+		 double* rt1, double* rt2, double* cs1, double *sn1);
+/* DLAEXC - swap adjacent diagonal blocks T11 and T22 of order 1 */
+/* or 2 in an upper quasi-triangular matrix T by an orthogonal */
+/* similarity transformation */
+La_extern void
+F77_NAME(dlaexc)(const int* wantq, const int* n, double* t, const int* ldt,
+		  double* q, const int* ldq, const int* j1,
+		 const int* n1, const int* n2, double* work, int* info);
+/* DLAG2 - compute the eigenvalues of a 2 x 2 generalized */
+/* eigenvalue problem A - w B, with scaling as necessary to aextern void */
+/* over-/underflow */
+La_extern void
+F77_NAME(dlag2)(const double* a, const int* lda, const double* b,
+		const int* ldb, const double* safmin,
+		double* scale1, double* scale2,
+		double* wr1, double* wr2, double* wi);
+/* DLAGS2 - compute 2-by-2 orthogonal matrices U, V and Q, such */
+/* that if ( UPPER ); then   U'*A*Q = U'*( A1 A2 );*Q = ( x 0 ); */
+/* ( 0 A3 ); ( x x ); and  V'*B*Q = V'*( B1 B2 );*Q = ( x 0 );	( */
+/* 0 B3 ); ( x x );  or if ( .NOT.UPPER ); then	  U'*A*Q = U'*( A1 */
+/* 0 );*Q = ( x x );  ( A2 A3 ); ( 0 x ); and  V'*B*Q = V'*( B1 0 */
+/* );*Q = ( x x );  ( B2 B3 ); ( 0 x );	 The rows of the */
+/* transformed A and B are parallel, where   U = ( CSU SNU );, V = */
+/* ( CSV SNV );, Q = ( CSQ SNQ );  ( -SNU CSU ); ( -SNV CSV ); ( */
+/* -SNQ CSQ );	Z' denotes the transpose of Z */
+La_extern void
+F77_NAME(dlags2)(const int* upper,
+		 const double* a1, const double* a2, const double* a3,
+		 const double* b1, const double* b2, const double* b3,
+		 double* csu, double* snu,
+		 double* csv, double* snv, double *csq, double *snq);
+/* DLAGTF - factorize the matrix (T - lambda*I);, where T is an n */
+/* by n tridiagonal matrix and lambda is a scalar, as	T - */
+/* lambda*I = PLU, */
+La_extern void
+F77_NAME(dlagtf)(const int* n, double* a, const double* lambda,
+		 double* b, double* c, const double *tol,
+		 double* d, int* in, int* info);
+/* DLAGTM - perform a matrix-vector product of the form	  B := */
+/* alpha * A * X + beta * B  where A is a tridiagonal matrix of */
+/* order N, B and X are N by NRHS matrices, and alpha and beta are */
+/* real scalars, each of which may be 0., 1., or -1 */
+La_extern void
+F77_NAME(dlagtm)(const char* trans, const int* n, const int* nrhs,
+		 const double* alpha, const double* dl,
+		 const double* d, const double* du,
+		 const double* x, const int* ldx, const double* beta,
+		 double* b, const int* ldb);
+/* DLAGTS - may be used to solve one of the systems of equations */
+/* (T - lambda*I);*x = y or (T - lambda*I);'*x = y, */
+La_extern void
+F77_NAME(dlagts)(const int* job, const int* n,
+		 const double* a, const double* b,
+		 const double* c, const double* d,
+		 const int* in, double* y, double* tol, int* info);
+/* DLAHQR - an auxiliary routine called by DHSEQR to update the */
+/* eigenvalues and Schur decomposition already computed by DHSEQR, */
+/* by dealing with the Hessenberg submatrix in rows and columns */
+/* ILO to IHI */
+La_extern void
+F77_NAME(dlahqr)(const int* wantt, const int* wantz, const int* n,
+		 const int* ilo, const int* ihi,
+		 double* H, const int* ldh, double* wr, double* wi,
+		 const int* iloz, const int* ihiz,
+		 double* z, const int* ldz, int* info);
+/* DLAIC1 - apply one step of incremental condition estimation in */
+/* its simplest version */
+La_extern void
+F77_NAME(dlaic1)(const int* job, const int* j, const double* x,
+		 const double* sest, const double* w,
+		 const double* gamma, double* sestpr,
+		 double* s, double* c);
+/* DLALN2 - solve a system of the form (ca A - w D ); X = s B or */
+/* (ca A' - w D); X = s B with possible scaling ("s"); and */
+/* perturbation of A */
+La_extern void
+F77_NAME(dlaln2)(const int* ltrans, const int* na, const int* nw,
+		 const double* smin, const double* ca,
+		 const double* a, const int* lda,
+		 const double* d1, const double* d2,
+		 const double* b, const int* ldb,
+		 const double* wr, const double* wi,
+		 double* x, const int* ldx, double* scale,
+		 double* xnorm, int* info);
+/* DLAMCH - determine double precision machine parameters */
+La_extern double
+F77_NAME(dlamch)(const char* cmach);
+/* DLAMRG - will create a permutation list which will merge the */
+/* elements of A (which is composed of two independently sorted */
+/* sets); into a single set which is sorted in ascending order */
+La_extern void
+F77_NAME(dlamrg)(const int* n1, const int* n2, const double* a,
+		 const int* dtrd1, const int* dtrd2, int* index);
+/* DLANGB - return the value of the one norm, or the Frobenius */
+/* norm, or the infinity norm, or the element of largest absolute */
+/* value of an n by n band matrix A, with kl sub-diagonals and ku */
+/* super-diagonals */
+La_extern double
+F77_NAME(dlangb)(const char* norm, const int* n,
+		 const int* kl, const int* ku, const double* ab,
+		 const int* ldab, double* work);
+/* DLANGE - return the value of the one norm, or the Frobenius */
+/* norm, or the infinity norm, or the element of largest absolute */
+/* value of a real matrix A */
+La_extern double
+F77_NAME(dlange)(const char* norm, const int* m, const int* n,
+		 const double* a, const int* lda, double* work);
+/* DLANGT - return the value of the one norm, or the Frobenius */
+/* norm, or the infinity norm, or the element of largest absolute */
+/* value of a real tridiagonal matrix A */
+La_extern double
+F77_NAME(dlangt)(const char* norm, const int* n,
+		 const double* dl, const double* d,
+		 const double* du);
+/* DLANHS - return the value of the one norm, or the Frobenius */
+/* norm, or the infinity norm, or the element of largest absolute */
+/* value of a Hessenberg matrix A */
+La_extern double
+F77_NAME(dlanhs)(const char* norm, const int* n,
+		 const double* a, const int* lda, double* work);
+/* DLANSB - return the value of the one norm, or the Frobenius */
+/* norm, or the infinity norm, or the element of largest absolute */
+/* value of an n by n symmetric band matrix A, with k */
+/* super-diagonals */
+La_extern double
+F77_NAME(dlansb)(const char* norm, const char* uplo,
+		 const int* n, const int* k,
+		 const double* ab, const int* ldab, double* work);
+/* DLANSP - return the value of the one norm, or the Frobenius */
+/* norm, or the infinity norm, or the element of largest absolute */
+/* value of a real symmetric matrix A, supplied in packed form */
+La_extern double
+F77_NAME(dlansp)(const char* norm, const char* uplo,
+		 const int* n, const double* ap, double* work);
+/* DLANST - return the value of the one norm, or the Frobenius */
+/* norm, or the infinity norm, or the element of largest absolute */
+/* value of a real symmetric tridiagonal matrix A */
+La_extern double
+F77_NAME(dlanst)(const char* norm, const int* n,
+		 const double* d, const double* e);
+/* DLANSY - return the value of the one norm, or the Frobenius */
+/* norm, or the infinity norm, or the element of largest absolute */
+/* value of a real symmetric matrix A */
+La_extern double
+F77_NAME(dlansy)(const char* norm, const char* uplo, const int* n,
+		 const double* a, const int* lda, double* work);
+/* DLANTB - return the value of the one norm, or the Frobenius */
+/* norm, or the infinity norm, or the element of largest absolute */
+/* value of an n by n triangular band matrix A, with ( k + 1 ) diagonals */
+La_extern double
+F77_NAME(dlantb)(const char* norm, const char* uplo,
+		 const char* diag, const int* n, const int* k,
+		 const double* ab, const int* ldab, double* work);
+/* DLANTP - return the value of the one norm, or the Frobenius */
+/* norm, or the infinity norm, or the element of largest absolute */
+/* value of a triangular matrix A, supplied in packed form */
+La_extern double
+F77_NAME(dlantp)(const char* norm, const char* uplo, const char* diag,
+		 const int* n, const double* ap, double* work);
+/* DLANTR - return the value of the one norm, or the Frobenius */
+/* norm, or the infinity norm, or the element of largest absolute */
+/* value of a trapezoidal or triangular matrix A */
+La_extern double
+F77_NAME(dlantr)(const char* norm, const char* uplo,
+		 const char* diag, const int* m, const int* n,
+		 const double* a, const int* lda, double* work);
+/* DLANV2 - compute the Schur factorization of a real 2-by-2 */
+/* nonsymmetric matrix in standard form */
+La_extern void
+F77_NAME(dlanv2)(double* a, double* b, double* c, double* d,
+		 double* rt1r, double* rt1i, double* rt2r, double* rt2i,
+		 double* cs, double *sn);
+/* DLAPLL - two column vectors X and Y, let A = ( X Y ); */
+La_extern void
+F77_NAME(dlapll)(const int* n, double* x, const int* incx,
+		 double* y, const int* incy, double* ssmin);
+/* DLAPMT - rearrange the columns of the M by N matrix X as */
+/* specified by the permutation K(1);,K(2);,...,K(N); of the */
+/* integers 1,...,N */
+La_extern void
+F77_NAME(dlapmt)(const int* forwrd, const int* m, const int* n,
+		 double* x, const int* ldx, const int* k);
+/* DLAPY2 - return sqrt(x**2+y**2);, taking care not to cause */
+/* unnecessary overflow */
+La_extern double
+F77_NAME(dlapy2)(const double* x, const double* y);
+/* DLAPY3 - return sqrt(x**2+y**2+z**2);, taking care not to */
+/* cause unnecessary overflow */
+La_extern double
+F77_NAME(dlapy3)(const double* x, const double* y, const double* z);
+/* DLAQGB - equilibrate a general M by N band matrix A with KL */
+/* subdiagonals and KU superdiagonals using the row and scaling */
+/* factors in the vectors R and C */
+La_extern void
+F77_NAME(dlaqgb)(const int* m, const int* n,
+		 const int* kl, const int* ku,
+		 double* ab, const int* ldab,
+		 double* r, double* c,
+		 double* rowcnd, double* colcnd,
+		 const double* amax, char* equed);
+/* DLAQGE - equilibrate a general M by N matrix A using the row */
+/* and scaling factors in the vectors R and C */
+La_extern void
+F77_NAME(dlaqge)(const int* m, const int* n,
+		 double* a, const int* lda,
+		 double* r, double* c,
+		 double* rowcnd, double* colcnd,
+		 const double* amax, char* equed);
+/* DLAQSB - equilibrate a symmetric band matrix A using the */
+/* scaling factors in the vector S */
+La_extern void
+F77_NAME(dlaqsb)(const char* uplo, const int* n, const int* kd,
+		 double* ab, const int* ldab, const double* s,
+		 const double* scond, const double* amax, char* equed);
+/* DLAQSP - equilibrate a symmetric matrix A using the scaling */
+/* factors in the vector S */
+La_extern void
+F77_NAME(dlaqsp)(const char* uplo, const int* n,
+		 double* ap, const double* s, const double* scond,
+		 const double* amax, int* equed);
+/* DLAQSY - equilibrate a symmetric matrix A using the scaling */
+/* factors in the vector S */
+La_extern void
+F77_NAME(dlaqsy)(const char* uplo, const int* n,
+		 double* a, const int* lda,
+		 const double* s, const double* scond,
+		 const double* amax, int* equed);
+/* DLAQTR - solve the real quasi-triangular system   */
+/* op(T) * p = scale*c */
+La_extern void
+F77_NAME(dlaqtr)(const int* ltran, const int* lreal, const int* n,
+		 const double* t, const int* ldt,
+		 const double* b, const double* w,
+		 double* scale, double* x, double* work, int* info);
+/* DLAR2V - apply a vector of real plane rotations from both */
+/* sides to a sequence of 2-by-2 real symmetric matrices, defined */
+/* by the elements of the vectors x, y and z  */
+La_extern void
+F77_NAME(dlar2v)(const int* n, double* x, double* y,
+		 double* z, const int* incx,
+		 const double* c, const double* s,
+		 const int* incc);
+/* DLARF - apply a real elementary reflector H to a real m by n */
+/* matrix C, from either the left or the right */
+La_extern void
+F77_NAME(dlarf)(const char* side, const int* m, const int* n,
+		const double* v, const int* incv, const double* tau,
+		double* c, const int* ldc, double* work);
+/* DLARFB - apply a real block reflector H or its transpose H' */
+/* to a real m by n matrix C, from either the left or the right */
+La_extern void
+F77_NAME(dlarfb)(const char* side, const char* trans,
+		 const char* direct, const char* storev,
+		 const int* m, const int* n, const int* k,
+		 const double* v, const int* ldv,
+		 const double* t, const int* ldt,
+		 double* c, const int* ldc,
+		 double* work, const int* lwork);
+/* DLARFG - generate a real elementary reflector H of order n, */
+/* such that   H * ( alpha ) = ( beta ), H' * H = I */
+La_extern void
+F77_NAME(dlarfg)(const int* n, const double* alpha,
+		 double* x, const int* incx, double* tau);
+/* DLARFT - form the triangular factor T of a real block */
+/* reflector H of order n, which is defined as a product of k */
+/* elementary reflectors */
+La_extern void
+F77_NAME(dlarft)(const char* direct, const char* storev,
+		 const int* n, const int* k, double* v, const int* ldv,
+		 const double* tau, double* t, const int* ldt);
+/* DLARFX - apply a real elementary reflector H to a real m by n */
+/* matrix C, from either the left or the right */
+La_extern void
+F77_NAME(dlarfx)(const char* side, const int* m, const int* n,
+		 const double* v, const double* tau,
+		 double* c, const int* ldc, double* work);
+/* DLARGV - generate a vector of real plane rotations, determined */
+/* by elements of the real vectors x and y */
+La_extern void
+F77_NAME(dlargv)(const int* n, double* x, const int* incx,
+		 double* y, const int* incy, double* c, const int* incc);
+/* DLARNV - return a vector of n random real numbers from a */
+/* uniform or normal distribution */
+La_extern void
+F77_NAME(dlarnv)(const int* idist, int* iseed, const int* n, double* x);
+/* DLARTG - generate a plane rotation so that	[ CS SN ]  */
+La_extern void
+F77_NAME(dlartg)(const double* f, const double* g, double* cs,
+		 double* sn, double *r);
+/* DLARTV - apply a vector of real plane rotations to elements of */
+/* the real vectors x and y */
+La_extern void
+F77_NAME(dlartv)(const int* n, double* x, const int* incx,
+		 double* y, const int* incy,
+		 const double* c, const double* s,
+		 const int* incc);
+/* DLARUV - return a vector of n random real numbers from a */
+/* uniform (0,1); */
+La_extern void
+F77_NAME(dlaruv)(int* iseed, const int* n, double* x);
+
+/* DLAS2 - compute the singular values of the 2-by-2 matrix */
+/* [ F G ]  [ 0 H ] */
+La_extern void
+F77_NAME(dlas2)(const double* f, const double* g, const double* h,
+		 double* ssmin, double* ssmax);
+
+/* DLASCL - multiply the M by N real matrix A by the real scalar */
+/* CTO/CFROM */
+La_extern void
+F77_NAME(dlascl)(const char* type,
+		 const int* kl,const int* ku,
+		 double* cfrom, double* cto,
+		 const int* m, const int* n,
+		 double* a, const int* lda, int* info);
+
+/* DLASET - initialize an m-by-n matrix A to BETA on the diagonal */
+/* and ALPHA on the offdiagonals */
+La_extern void
+F77_NAME(dlaset)(const char* uplo, const int* m, const int* n,
+		 const double* alpha, const double* beta,
+		 double* a, const int* lda);
+/* DLASQ1 - DLASQ1 computes the singular values of a real N-by-N */
+/* bidiagonal  matrix with diagonal D and off-diagonal E */
+La_extern void
+F77_NAME(dlasq1)(const int* n, double* d, double* e,
+		 double* work, int* info);
+/* DLASQ2 - DLASQ2 computes the singular values of a real N-by-N */
+/* unreduced  bidiagonal matrix with squared diagonal elements in */
+/* Q and  squared off-diagonal elements in E */
+La_extern void
+F77_NAME(dlasq2)(const int* m, double* q, double* e,
+		 double* qq, double* ee, const double* eps,
+		 const double* tol2, const double* small2,
+		 double* sup, int* kend, int* info);
+/* DLASQ3 - DLASQ3 is the workhorse of the whole bidiagonal SVD */
+/* algorithm */
+La_extern void
+F77_NAME(dlasq3)(int* n, double* q, double* e, double* qq,
+		 double* ee, double* sup, double *sigma,
+		 int* kend, int* off, int* iphase,
+		 const int* iconv, const double* eps,
+		 const double* tol2, const double* small2);
+/* DLASQ4 - DLASQ4 estimates TAU, the smallest eigenvalue of a */
+/* matrix */
+La_extern void
+F77_NAME(dlasq4)(const int* n, const double* q, const double* e,
+		 double* tau, double* sup);
+/* DLASR - perform the transformation	A := P*A, when SIDE = 'L' */
+/* or 'l' ( Left-hand side );	A := A*P', when SIDE = 'R' or 'r' */
+/* ( Right-hand side );	 where A is an m by n real matrix and P is */
+/* an orthogonal matrix, */
+La_extern void
+F77_NAME(dlasr)(const char* side, const char* pivot,
+		const char* direct, const int* m, const int* n,
+		const double* c, const double* s,
+		double* a, const int* lda);
+/* DLASRT - the numbers in D in increasing order (if ID = 'I'); */
+/* or in decreasing order (if ID = 'D' ); */
+La_extern void
+F77_NAME(dlasrt)(const char* id, const int* n, double* d, int* info);
+/* DLASSQ - return the values scl and smsq such that   ( scl**2 */
+/* );*smsq = x( 1 );**2 +...+ x( n );**2 + ( scale**2 );*sumsq, */
+La_extern void
+F77_NAME(dlassq)(const int* n, const double* x, const int* incx,
+		 double* scale, double* sumsq);
+/* DLASV2 - compute the singular value decomposition of a 2-by-2 */
+/* triangular matrix  [ F G ]  [ 0 H ] */
+La_extern void
+F77_NAME(dlasv2)(const double* f, const double* g, const double* h,
+		 double* ssmin, double* ssmax, double* snr, double* csr,
+		 double* snl, double* csl);
+/* DLASWP - perform a series of row interchanges on the matrix A */
+La_extern void
+F77_NAME(dlaswp)(const int* n, double* a, const int* lda,
+		 const int* k1, const int* k2,
+		 const int* ipiv, const int* incx);
+/* DLASY2 - solve for the N1 by N2 matrix double* x, 1 <= N1,N2 <= 2, in */
+/* op(TL);*X + ISGN*X*op(TR); = SCALE*B, */
+La_extern void
+F77_NAME(dlasy2)(const int* ltranl, const int* ltranr,
+		 const int* isgn, const int* n1, const int* n2,
+		 const double* tl, const int* ldtl,
+		 const double* tr, const int* ldtr,
+		 const double* b, const int* ldb,
+		 double* scale, double* x, const int* ldx,
+		 double* xnorm, int* info);
+/* DLASYF - compute a partial factorization of a real symmetric */
+/* matrix A using the Bunch-Kaufman diagonal pivoting method */
+La_extern void
+F77_NAME(dlasyf)(const char* uplo, const int* n,
+		 const int* nb, const int* kb,
+		 double* a, const int* lda, int* ipiv,
+		 double* w, const int* ldw, int* info);
+/* DLATBS - solve one of the triangular systems	  A *x = s*b or */
+/* A'*x = s*b  with scaling to prevent overflow, where A is an */
+/* upper or lower triangular band matrix */
+La_extern void
+F77_NAME(dlatbs)(const char* uplo, const char* trans,
+		 const char* diag, const char* normin,
+		 const int* n, const int* kd,
+		 const double* ab, const int* ldab,
+		 double* x, double* scale, double* cnorm, int* info);
+/* DLATPS - solve one of the triangular systems	  A *x = s*b or */
+/* A'*x = s*b  with scaling to prevent overflow, where A is an */
+/* upper or lower triangular matrix stored in packed form */
+La_extern void
+F77_NAME(dlatps)(const char* uplo, const char* trans,
+		 const char* diag, const char* normin,
+		 const int* n, const double* ap,
+		 double* x, double* scale, double* cnorm, int* info);
+/* DLATRD - reduce NB rows and columns of a real symmetric matrix */
+/* A to symmetric tridiagonal form by an orthogonal similarity */
+/* transformation Q' * A * Q, and returns the matrices V and W */
+/* which are needed to apply the transformation to the unreduced */
+/* part of A */
+La_extern void
+F77_NAME(dlatrd)(const char* uplo, const int* n, const int* nb,
+		 double* a, const int* lda, double* e, double* tau,
+		 double* w, const int* ldw);
+/* DLATRS - solve one of the triangular systems	  A *x = s*b or */
+/* A'*x = s*b  with scaling to prevent overflow */
+La_extern void
+F77_NAME(dlatrs)(const char* uplo, const char* trans,
+		 const char* diag, const char* normin,
+		 const int* n, const double* a, const int* lda,
+		 double* x, double* scale, double* cnorm, int* info);
+/* DLAUU2 - compute the product U * U' or L' * const int* l, where the */
+/* triangular factor U or L is stored in the upper or lower */
+/* triangular part of the array A */
+La_extern void
+F77_NAME(dlauu2)(const char* uplo, const int* n,
+		 double* a, const int* lda, int* info);
+/* DLAUUM - compute the product U * U' or L' * L, where the */
+/* triangular factor U or L is stored in the upper or lower */
+/* triangular part of the array A */
+La_extern void
+F77_NAME(dlauum)(const char* uplo, const int* n,
+		 double* a, const int* lda, int* info);
+
+/* ======================================================================== */
+
+
+//* Selected Double Complex Lapack Routines
+/*  ========
+ */
+
+/* IZMAX1 finds the index of the element whose real part has maximum
+ * absolute value. */
+La_extern int
+F77_NAME(izmax1)(const int *n, Rcomplex *cx, const int *incx);
+
+
+/*  ZGECON estimates the reciprocal of the condition number of a general
+ *  complex matrix A, in either the 1-norm or the infinity-norm, using
+ *  the LU factorization computed by ZGETRF.
+ */
+La_extern void
+F77_NAME(zgecon)(const char *norm, const int *n,
+		 const Rcomplex *a, const int *lda,
+		 const double *anorm, double *rcond,
+		 Rcomplex *work, double *rwork, int *info);
+
+/* ZGESV computes the solution to a complex system of linear equations */
+La_extern void
+F77_NAME(zgesv)(const int *n, const int *nrhs, Rcomplex *a,
+		const int *lda, int *ipiv, Rcomplex *b,
+		const int *ldb, int *info);
+
+/*  ZGEQP3 computes a QR factorization with column pivoting */
+La_extern void
+F77_NAME(zgeqp3)(const int *m, const int *n,
+		 Rcomplex *a, const int *lda,
+		 int *jpvt, Rcomplex *tau,
+		 Rcomplex *work, const int *lwork,
+		 double *rwork, int *info);
+
+/* ZUNMQR applies Q or Q**H from the Left or Right */
+La_extern void
+F77_NAME(zunmqr)(const char *side, const char *trans,
+		 const int *m, const int *n, const int *k,
+		 Rcomplex *a, const int *lda,
+		 Rcomplex *tau,
+		 Rcomplex *c, const int *ldc,
+		 Rcomplex *work, const int *lwork, int *info);
+
+/*  ZTRTRS solves triangular systems */
+La_extern void
+F77_NAME(ztrtrs)(const char *uplo, const char *trans, const char *diag,
+		 const int *n, const int *nrhs,
+		 Rcomplex *a, const int *lda,
+		 Rcomplex *b, const int *ldb, int *info);
+/* ZGESVD - compute the singular value decomposition (SVD); of a   */
+/* real M-by-N matrix A, optionally computing the left and/or	   */
+/* right singular vectors					   */
+La_extern void
+F77_NAME(zgesvd)(const char *jobu, const char *jobvt,
+		 const int *m, const int *n,
+		 Rcomplex *a, const int *lda, double *s,
+		 Rcomplex *u, const int *ldu,
+		 Rcomplex *vt, const int *ldvt,
+		 Rcomplex *work, const int *lwork, double *rwork,
+		 int *info);
+
+/* ZGHEEV - compute all eigenvalues and, optionally, eigenvectors */
+/* of a Hermitian matrix A */
+La_extern void
+F77_NAME(zheev)(const char *jobz, const char *uplo,
+		const int *n, Rcomplex *a, const int *lda,
+		double *w, Rcomplex *work, const int *lwork,
+		double *rwork, int *info);
+
+/* ZGGEEV - compute all eigenvalues and, optionally, eigenvectors */
+/* of a complex non-symmetric matrix A */
+La_extern void
+F77_NAME(zgeev)(const char *jobvl, const char *jobvr,
+		const int *n, Rcomplex *a, const int *lda,
+		Rcomplex *wr, Rcomplex *vl, const int *ldvl,
+		Rcomplex *vr, const int *ldvr,
+		Rcomplex *work, const int *lwork,
+		double *rwork, int *info);
+
+
+/* NOTE: The following entry points were traditionally in this file,
+   but are not provided by R's libRlapack */
+
+/* DZSUM1 - take the sum of the absolute values of a complex */
+/* vector and returns a double precision result	 */
+La_extern double
+F77_NAME(dzsum1)(const int *n, Rcomplex *CX, const int *incx);
+
+/*  ZLACN2 estimates the 1-norm of a square, complex matrix A.
+ *  Reverse communication is used for evaluating matrix-vector products.
+*/
+La_extern void
+F77_NAME(zlacn2)(const int *n, Rcomplex *v, Rcomplex *x,
+                 double *est, int *kase, int *isave);
+
+/* ZLANTR  -  return the value of the one norm, or the Frobenius norm, */
+/* or the infinity norm, or the element of largest absolute value of */
+/* a trapezoidal or triangular matrix A */
+La_extern double
+F77_NAME(zlantr)(const char *norm, const char *uplo, const char *diag,
+		 const int *m, const int *n, Rcomplex *a,
+		 const int *lda, double *work);
+
+/* ======================================================================== */
+
+//* Other double precision and double complex Lapack routines provided by libRlapack.
+/*
+   These are extracted from the CLAPACK headers.
+*/
+
+La_extern void
+F77_NAME(dbdsdc)(char *uplo, char *compq, int *n, double *
+	d, double *e, double *u, int *ldu, double *vt,
+	int *ldvt, double *q, int *iq, double *work, int * iwork, int *info);
+
+La_extern void
+F77_NAME(dgelsd)(int *m, int *n, int *nrhs,
+	double *a, int *lda, double *b, int *ldb, double *
+	s, double *rcond, int *rank, double *work, int *lwork,
+	 int *iwork, int *info);
+
+La_extern void
+F77_NAME(dgesc2)(int *n, double *a, int *lda,
+	double *rhs, int *ipiv, int *jpiv, double *scale);
+
+/* DGESDD - compute the singular value decomposition (SVD); of a   */
+/* real M-by-N matrix A, optionally computing the left and/or	   */
+/* right singular vectors.  If singular vectors are desired, it uses a */
+/* divide-and-conquer algorithm.				   */
+La_extern void
+F77_NAME(dgesdd)(const char *jobz,
+		 const int *m, const int *n,
+		 double *a, const int *lda, double *s,
+		 double *u, const int *ldu,
+		 double *vt, const int *ldvt,
+		 double *work, const int *lwork, int *iwork, int *info);
+
+La_extern void
+F77_NAME(dgetc2)(int *n, double *a, int *lda, int
+	*ipiv, int *jpiv, int *info);
+
+typedef int (*L_fp)();
+La_extern void
+F77_NAME(dggesx)(char *jobvsl, char *jobvsr, char *sort, L_fp
+	delctg, char *sense, int *n, double *a, int *lda,
+	double *b, int *ldb, int *sdim, double *alphar,
+	double *alphai, double *beta, double *vsl, int *ldvsl,
+	 double *vsr, int *ldvsr, double *rconde, double *
+	rcondv, double *work, int *lwork, int *iwork, int *
+	liwork, int *bwork, int *info);
+
+La_extern void
+F77_NAME(dggev)(char *jobvl, char *jobvr, int *n, double *
+	a, int *lda, double *b, int *ldb, double *alphar,
+	double *alphai, double *beta, double *vl, int *ldvl,
+	double *vr, int *ldvr, double *work, int *lwork,
+	int *info);
+
+La_extern void
+F77_NAME(dggevx)(char *balanc, char *jobvl, char *jobvr, char *
+	sense, int *n, double *a, int *lda, double *b,
+	int *ldb, double *alphar, double *alphai, double *
+	beta, double *vl, int *ldvl, double *vr, int *ldvr,
+	int *ilo, int *ihi, double *lscale, double *rscale,
+	double *abnrm, double *bbnrm, double *rconde, double *
+	rcondv, double *work, int *lwork, int *iwork, int *
+	bwork, int *info);
+
+La_extern void
+F77_NAME(dgtts2)(int *itrans, int *n, int *nrhs,
+	double *dl, double *d, double *du, double *du2,
+	int *ipiv, double *b, int *ldb);
+La_extern void
+F77_NAME(dlagv2)(double *a, int *lda, double *b, int *ldb, double *alphar,
+		 double *alphai, double * beta, double *csl, double *snl,
+		 double *csr, double * snr);
+
+La_extern void
+F77_NAME(dlals0)(int *icompq, int *nl, int *nr,
+	int *sqre, int *nrhs, double *b, int *ldb, double
+	*bx, int *ldbx, int *perm, int *givptr, int *givcol,
+	int *ldgcol, double *givnum, int *ldgnum, double *
+	poles, double *difl, double *difr, double *z, int *
+	k, double *c, double *s, double *work, int *info);
+
+La_extern void
+F77_NAME(dlalsa)(int *icompq, int *smlsiz, int *n,
+	int *nrhs, double *b, int *ldb, double *bx, int *
+	ldbx, double *u, int *ldu, double *vt, int *k,
+	double *difl, double *difr, double *z, double *
+	poles, int *givptr, int *givcol, int *ldgcol, int *
+	perm, double *givnum, double *c, double *s, double *
+	work, int *iwork, int *info);
+
+La_extern void
+F77_NAME(dlalsd)(char *uplo, int *smlsiz, int *n, int
+	*nrhs, double *d, double *e, double *b, int *ldb,
+	double *rcond, int *rank, double *work, int *iwork,
+	int *info);
+
+La_extern void
+F77_NAME(dlamc1)(int *beta, int *t, int *rnd, int
+	*ieee1);
+
+La_extern void
+F77_NAME(dlamc2)(int *beta, int *t, int *rnd,
+	double *eps, int *emin, double *rmin, int *emax,
+	double *rmax);
+
+La_extern double
+F77_NAME(dlamc3)(double *a, double *b);
+
+La_extern void
+F77_NAME(dlamc4)(int *emin, double *start, int *base);
+
+La_extern void
+F77_NAME(dlamc5)(int *beta, int *p, int *emin,
+	int *ieee, int *emax, double *rmax);
+
+La_extern void
+F77_NAME(dlaqp2)(int *m, int *n, int *offset,
+	double *a, int *lda, int *jpvt, double *tau,
+	double *vn1, double *vn2, double *work);
+
+La_extern void
+F77_NAME(dlaqps)(int *m, int *n, int *offset, int
+	*nb, int *kb, double *a, int *lda, int *jpvt,
+	double *tau, double *vn1, double *vn2, double *auxv,
+	double *f, int *ldf);
+
+La_extern void
+F77_NAME(dlar1v)(int *n, int *b1, int *bn, double
+	*sigma, double *d, double *l, double *ld, double *
+	lld, double *gersch, double *z, double *ztz, double
+	*mingma, int *r, int *isuppz, double *work);
+
+La_extern void
+F77_NAME(dlarrb)(int *n, double *d, double *l,
+	double *ld, double *lld, int *ifirst, int *ilast,
+	double *sigma, double *reltol, double *w, double *
+	wgap, double *werr, double *work, int *iwork, int *
+	info);
+
+La_extern void
+F77_NAME(dlarre)(int *n, double *d, double *e,
+	double *tol, int *nsplit, int *isplit, int *m,
+	double *w, double *woff, double *gersch, double *work,
+	 int *info);
+
+La_extern void
+F77_NAME(dlarrf)(int *n, double *d, double *l,
+	double *ld, double *lld, int *ifirst, int *ilast,
+	double *w, double *dplus, double *lplus, double *work,
+	 int *iwork, int *info);
+
+La_extern void
+F77_NAME(dlarrv)(int *n, double *d, double *l,
+	int *isplit, int *m, double *w, int *iblock,
+	double *gersch, double *tol, double *z, int *ldz,
+	int *isuppz, double *work, int *iwork, int *info);
+
+La_extern void
+F77_NAME(dlarz)(char *side, int *m, int *n, int *l,
+	double *v, int *incv, double *tau, double *c,
+	int *ldc, double *work);
+
+La_extern void
+F77_NAME(dlarzb)(char *side, char *trans, char *direct, char *
+	storev, int *m, int *n, int *k, int *l, double *v,
+	 int *ldv, double *t, int *ldt, double *c, int *
+	ldc, double *work, int *ldwork);
+
+La_extern void
+F77_NAME(dlarzt)(char *direct, char *storev, int *n, int *
+	k, double *v, int *ldv, double *tau, double *t,
+	int *ldt);
+
+La_extern void
+F77_NAME(dlasd0)(int *n, int *sqre, double *d,
+	double *e, double *u, int *ldu, double *vt, int *
+	ldvt, int *smlsiz, int *iwork, double *work, int *
+	info);
+
+La_extern void
+F77_NAME(dlasd1)(int *nl, int *nr, int *sqre,
+	double *d, double *alpha, double *beta, double *u,
+	int *ldu, double *vt, int *ldvt, int *idxq, int *
+	iwork, double *work, int *info);
+
+La_extern void
+F77_NAME(dlasd2)(int *nl, int *nr, int *sqre, int
+	*k, double *d, double *z, double *alpha, double *
+	beta, double *u, int *ldu, double *vt, int *ldvt,
+	double *dsigma, double *u2, int *ldu2, double *vt2,
+	int *ldvt2, int *idxp, int *idx, int *idxc, int *
+	idxq, int *coltyp, int *info);
+
+La_extern void
+F77_NAME(dlasd3)(int *nl, int *nr, int *sqre, int
+	*k, double *d, double *q, int *ldq, double *dsigma,
+	double *u, int *ldu, double *u2, int *ldu2,
+	double *vt, int *ldvt, double *vt2, int *ldvt2,
+	int *idxc, int *ctot, double *z, int *info);
+
+La_extern void
+F77_NAME(dlasd4)(int *n, int *i, double *d,
+	double *z, double *delta, double *rho, double *
+	sigma, double *work, int *info);
+
+La_extern void
+F77_NAME(dlasd5)(int *i, double *d, double *z,
+	double *delta, double *rho, double *dsigma, double *
+	work);
+
+La_extern void
+F77_NAME(dlasd6)(int *icompq, int *nl, int *nr,
+	int *sqre, double *d, double *vf, double *vl,
+	double *alpha, double *beta, int *idxq, int *perm,
+	int *givptr, int *givcol, int *ldgcol, double *givnum,
+	 int *ldgnum, double *poles, double *difl, double *
+	difr, double *z, int *k, double *c, double *s,
+	double *work, int *iwork, int *info);
+
+La_extern void
+F77_NAME(dlasd7)(int *icompq, int *nl, int *nr,
+	int *sqre, int *k, double *d, double *z,
+	double *zw, double *vf, double *vfw, double *vl,
+	double *vlw, double *alpha, double *beta, double *
+	dsigma, int *idx, int *idxp, int *idxq, int *perm,
+	int *givptr, int *givcol, int *ldgcol, double *givnum,
+	 int *ldgnum, double *c, double *s, int *info);
+
+La_extern void
+F77_NAME(dlasd8)(int *icompq, int *k, double *d,
+	double *z, double *vf, double *vl, double *difl,
+	double *difr, int *lddifr, double *dsigma, double *
+	work, int *info);
+
+La_extern void
+F77_NAME(dlasd9)(int *icompq, int *ldu, int *k,
+	double *d, double *z, double *vf, double *vl,
+	double *difl, double *difr, double *dsigma, double *
+	work, int *info);
+
+La_extern void
+F77_NAME(dlasda)(int *icompq, int *smlsiz, int *n,
+	int *sqre, double *d, double *e, double *u, int
+	*ldu, double *vt, int *k, double *difl, double *difr,
+	double *z, double *poles, int *givptr, int *givcol,
+	int *ldgcol, int *perm, double *givnum, double *c,
+	double *s, double *work, int *iwork, int *info);
+
+La_extern void
+F77_NAME(dlasdq)(char *uplo, int *sqre, int *n, int *
+	ncvt, int *nru, int *ncc, double *d, double *e,
+	double *vt, int *ldvt, double *u, int *ldu,
+	double *c, int *ldc, double *work, int *info);
+
+La_extern void
+F77_NAME(dlasdt)(int *n, int *lvl, int *nd, int *
+	inode, int *ndiml, int *ndimr, int *msub);
+
+La_extern void
+F77_NAME(dlasq5)(int *i0, int *n0, double *z,
+	int *pp, double *tau, double *dmin, double *dmin1,
+	double *dmin2, double *dn, double *dnm1, double *dnm2,
+	 int *ieee);
+
+La_extern void
+F77_NAME(dlasq6)(int *i0, int *n0, double *z,
+	int *pp, double *dmin, double *dmin1, double *dmin2,
+	 double *dn, double *dnm1, double *dnm2);
+
+La_extern void
+F77_NAME(dlatdf)(int *ijob, int *n, double *z,
+	int *ldz, double *rhs, double *rdsum, double *rdscal,
+	int *ipiv, int *jpiv);
+
+La_extern void
+F77_NAME(dlatrz)(int *m, int *n, int *l, double *
+	a, int *lda, double *tau, double *work);
+
+La_extern void
+F77_NAME(dormr3)(char *side, char *trans, int *m, int *n,
+	int *k, int *l, double *a, int *lda, double *tau,
+	double *c, int *ldc, double *work, int *info);
+
+La_extern void
+F77_NAME(dormrz)(char *side, char *trans, int *m, int *n,
+	int *k, int *l, double *a, int *lda, double *tau,
+	double *c, int *ldc, double *work, int *lwork,
+	int *info);
+
+La_extern void
+F77_NAME(dptts2)(int *n, int *nrhs, double *d,
+	double *e, double *b, int *ldb);
+
+La_extern void
+F77_NAME(dsbgvd)(char *jobz, char *uplo, int *n, int *ka,
+	int *kb, double *ab, int *ldab, double *bb, int *
+	ldbb, double *w, double *z, int *ldz, double *work,
+	int *lwork, int *iwork, int *liwork, int *info);
+
+La_extern void
+F77_NAME(dsbgvx)(char *jobz, char *range, char *uplo, int *n,
+	int *ka, int *kb, double *ab, int *ldab, double *
+	bb, int *ldbb, double *q, int *ldq, double *vl,
+	double *vu, int *il, int *iu, double *abstol, int
+	*m, double *w, double *z, int *ldz, double *work,
+	int *iwork, int *ifail, int *info);
+
+La_extern void
+F77_NAME(dspgvd)(int *itype, char *jobz, char *uplo, int *
+	n, double *ap, double *bp, double *w, double *z,
+	int *ldz, double *work, int *lwork, int *iwork,
+	int *liwork, int *info);
+
+La_extern void
+F77_NAME(dspgvx)(int *itype, char *jobz, char *range, char *
+	uplo, int *n, double *ap, double *bp, double *vl,
+	double *vu, int *il, int *iu, double *abstol, int
+	*m, double *w, double *z, int *ldz, double *work,
+	int *iwork, int *ifail, int *info);
+
+La_extern void
+F77_NAME(dstegr)(char *jobz, char *range, int *n, double *
+	d, double *e, double *vl, double *vu, int *il,
+	int *iu, double *abstol, int *m, double *w,
+	double *z, int *ldz, int *isuppz, double *work,
+	int *lwork, int *iwork, int *liwork, int *info);
+
+La_extern void
+F77_NAME(dstevr)(char *jobz, char *range, int *n, double *
+	d, double *e, double *vl, double *vu, int *il,
+	int *iu, double *abstol, int *m, double *w,
+	double *z, int *ldz, int *isuppz, double *work,
+	int *lwork, int *iwork, int *liwork, int *info);
+
+La_extern void
+F77_NAME(dsygvd)(int *itype, char *jobz, char *uplo, int *
+	n, double *a, int *lda, double *b, int *ldb,
+	double *w, double *work, int *lwork, int *iwork,
+	int *liwork, int *info);
+
+La_extern void
+F77_NAME(dsygvx)(int *itype, char *jobz, char *range, char *
+	uplo, int *n, double *a, int *lda, double *b, int
+	*ldb, double *vl, double *vu, int *il, int *iu,
+	double *abstol, int *m, double *w, double *z,
+	int *ldz, double *work, int *lwork, int *iwork,
+	int *ifail, int *info);
+
+La_extern void
+F77_NAME(dtgex2)(int *wantq, int *wantz, int *n,
+	double *a, int *lda, double *b, int *ldb, double *
+	q, int *ldq, double *z, int *ldz, int *j1, int *
+	n1, int *n2, double *work, int *lwork, int *info);
+
+La_extern void
+F77_NAME(dtgexc)(int *wantq, int *wantz, int *n,
+	double *a, int *lda, double *b, int *ldb, double *
+	q, int *ldq, double *z, int *ldz, int *ifst,
+	int *ilst, double *work, int *lwork, int *info);
+
+La_extern void
+F77_NAME(dtgsen)(int *ijob, int *wantq, int *wantz,
+	int *select, int *n, double *a, int *lda, double *
+	b, int *ldb, double *alphar, double *alphai, double *
+	beta, double *q, int *ldq, double *z, int *ldz,
+	int *m, double *pl, double *pr, double *dif,
+	double *work, int *lwork, int *iwork, int *liwork,
+	int *info);
+
+La_extern void
+F77_NAME(dtgsna)(char *job, char *howmny, int *select,
+	int *n, double *a, int *lda, double *b, int *ldb,
+	double *vl, int *ldvl, double *vr, int *ldvr,
+	double *s, double *dif, int *mm, int *m, double *
+	work, int *lwork, int *iwork, int *info);
+
+La_extern void
+F77_NAME(dtgsy2)(char *trans, int *ijob, int *m, int *
+	n, double *a, int *lda, double *b, int *ldb,
+	double *c, int *ldc, double *d, int *ldd,
+	double *e, int *lde, double *f, int *ldf, double *
+	scale, double *rdsum, double *rdscal, int *iwork, int
+	*pq, int *info);
+
+La_extern void
+F77_NAME(dtgsyl)(char *trans, int *ijob, int *m, int *
+	n, double *a, int *lda, double *b, int *ldb,
+	double *c, int *ldc, double *d, int *ldd,
+	double *e, int *lde, double *f, int *ldf, double *
+	scale, double *dif, double *work, int *lwork, int *
+	iwork, int *info);
+
+La_extern void
+F77_NAME(dtzrzf)(int *m, int *n, double *a, int *
+	lda, double *tau, double *work, int *lwork, int *info);
+
+La_extern void
+F77_NAME(dpstrf)(const char* uplo, const int* n,
+		 double* a, const int* lda, int* piv, int* rank,
+		 double* tol, double *work, int* info);
+
+
+La_extern int
+F77_NAME(lsame)(char *ca, char *cb);
+
+La_extern void
+F77_NAME(zbdsqr)(char *uplo, int *n, int *ncvt, int *
+	nru, int *ncc, double *d, double *e, Rcomplex *vt,
+	int *ldvt, Rcomplex *u, int *ldu, Rcomplex *c,
+	int *ldc, double *rwork, int *info);
+
+La_extern void
+F77_NAME(zdrot)(int *n, Rcomplex *cx, int *incx,
+	Rcomplex *cy, int *incy, double *c, double *s);
+
+La_extern void
+F77_NAME(zgebak)(char *job, char *side, int *n, int *ilo,
+	int *ihi, double *scale, int *m, Rcomplex *v,
+	int *ldv, int *info);
+
+La_extern void
+F77_NAME(zgebal)(char *job, int *n, Rcomplex *a, int
+	*lda, int *ilo, int *ihi, double *scale, int *info);
+
+La_extern void
+F77_NAME(zgebd2)(int *m, int *n, Rcomplex *a,
+	int *lda, double *d, double *e, Rcomplex *tauq,
+	Rcomplex *taup, Rcomplex *work, int *info);
+
+La_extern void
+F77_NAME(zgebrd)(int *m, int *n, Rcomplex *a,
+	int *lda, double *d, double *e, Rcomplex *tauq,
+	Rcomplex *taup, Rcomplex *work, int *lwork, int *
+	info);
+La_extern void
+F77_NAME(zgehd2)(int *n, int *ilo, int *ihi,
+	Rcomplex *a, int *lda, Rcomplex *tau, Rcomplex *
+	work, int *info);
+
+La_extern void
+F77_NAME(zgehrd)(int *n, int *ilo, int *ihi,
+	Rcomplex *a, int *lda, Rcomplex *tau, Rcomplex *
+	work, int *lwork, int *info);
+
+La_extern void
+F77_NAME(zgelq2)(int *m, int *n, Rcomplex *a,
+	int *lda, Rcomplex *tau, Rcomplex *work, int *info);
+
+La_extern void
+F77_NAME(zgelqf)(int *m, int *n, Rcomplex *a,
+	int *lda, Rcomplex *tau, Rcomplex *work, int *lwork,
+	 int *info);
+
+La_extern void
+F77_NAME(zgeqr2)(int *m, int *n, Rcomplex *a,
+	int *lda, Rcomplex *tau, Rcomplex *work, int *info);
+
+La_extern void
+F77_NAME(zgeqrf)(int *m, int *n, Rcomplex *a,
+		 int *lda, Rcomplex *tau, Rcomplex *work, int *lwork,
+		 int *info);
+
+La_extern void
+F77_NAME(zgetf2)(int *m, int *n, Rcomplex *a,
+	int *lda, int *ipiv, int *info);
+
+La_extern void
+F77_NAME(zgetrf)(int *m, int *n, Rcomplex *a,
+	int *lda, int *ipiv, int *info);
+
+La_extern void
+F77_NAME(zgetrs)(char *trans, int *n, int *nrhs,
+	Rcomplex *a, int *lda, int *ipiv, Rcomplex *b,
+	int *ldb, int *info);
+
+
+La_extern void
+F77_NAME(zhetd2)(char *uplo, int *n, Rcomplex *a, int *lda, double *d,
+		 double *e, Rcomplex *tau, int *info);
+
+La_extern void
+F77_NAME(zhetrd)(char *uplo, int *n, Rcomplex *a,
+	int *lda, double *d, double *e, Rcomplex *tau,
+	Rcomplex *work, int *lwork, int *info);
+
+La_extern void
+F77_NAME(zhseqr)(char *job, char *compz, int *n, int *ilo,
+	 int *ihi, Rcomplex *h, int *ldh, Rcomplex *w,
+	Rcomplex *z, int *ldz, Rcomplex *work, int *lwork,
+	 int *info);
+
+La_extern void
+F77_NAME(zlabrd)(int *m, int *n, int *nb,
+	Rcomplex *a, int *lda, double *d, double *e,
+	Rcomplex *tauq, Rcomplex *taup, Rcomplex *x, int *
+	ldx, Rcomplex *y, int *ldy);
+
+La_extern void
+F77_NAME(zlacgv)(int *n, Rcomplex *x, int *incx);
+
+La_extern void
+F77_NAME(zlacpy)(char *uplo, int *m, int *n,
+	Rcomplex *a, int *lda, Rcomplex *b, int *ldb);
+
+La_extern void
+F77_NAME(zlahqr)(int *wantt, int *wantz, int *n,
+	int *ilo, int *ihi, Rcomplex *h, int *ldh,
+	Rcomplex *w, int *iloz, int *ihiz, Rcomplex *z,
+	int *ldz, int *info);
+
+La_extern double
+F77_NAME(zlange)(char *norm, int *m, int *n, Rcomplex *a, int *lda,
+		 double *work);
+
+La_extern double
+F77_NAME(zlanhe)(char *norm,  char *uplo, int *n, Rcomplex *a,
+		 int *lda, double *work);
+
+La_extern double
+F77_NAME(zlanhs)(char *norm, int *n, Rcomplex *a, int *lda, double *work);
+
+
+La_extern void
+F77_NAME(zlaqp2)(int *m, int *n, int *offset,
+	Rcomplex *a, int *lda, int *jpvt, Rcomplex *tau,
+	double *vn1, double *vn2, Rcomplex *work);
+
+La_extern void
+F77_NAME(zlaqps)(int *m, int *n, int *offset, int
+	*nb, int *kb, Rcomplex *a, int *lda, int *jpvt,
+	Rcomplex *tau, double *vn1, double *vn2, Rcomplex *
+	auxv, Rcomplex *f, int *ldf);
+
+La_extern void
+F77_NAME(zlarf)(char *side, int *m, int *n, Rcomplex
+	*v, int *incv, Rcomplex *tau, Rcomplex *c, int *
+	ldc, Rcomplex *work);
+
+La_extern void
+F77_NAME(zlarfb)(char *side, char *trans, char *direct, char *
+	storev, int *m, int *n, int *k, Rcomplex *v, int
+	*ldv, Rcomplex *t, int *ldt, Rcomplex *c, int *
+	ldc, Rcomplex *work, int *ldwork);
+
+La_extern void
+F77_NAME(zlarfg)(int *n, Rcomplex *alpha, Rcomplex *
+	x, int *incx, Rcomplex *tau);
+
+La_extern void
+F77_NAME(zlarft)(char *direct, char *storev, int *n, int *
+	k, Rcomplex *v, int *ldv, Rcomplex *tau, Rcomplex *
+	t, int *ldt);
+
+La_extern void
+F77_NAME(zlarfx)(char *side, int *m, int *n,
+	Rcomplex *v, Rcomplex *tau, Rcomplex *c, int *
+	ldc, Rcomplex *work);
+
+La_extern void
+F77_NAME(zlascl)(char *type, int *kl, int *ku,
+	double *cfrom, double *cto, int *m, int *n,
+	Rcomplex *a, int *lda, int *info);
+
+La_extern void
+F77_NAME(zlaset)(char *uplo, int *m, int *n,
+	Rcomplex *alpha, Rcomplex *beta, Rcomplex *a, int *
+	lda);
+
+La_extern void
+F77_NAME(zlasr)(char *side, char *pivot, char *direct, int *m,
+	 int *n, double *c, double *s, Rcomplex *a,
+	int *lda);
+
+La_extern void
+F77_NAME(zlassq)(int *n, Rcomplex *x, int *incx,
+	double *scale, double *sumsq);
+
+La_extern void
+F77_NAME(zlaswp)(int *n, Rcomplex *a, int *lda,
+	int *k1, int *k2, int *ipiv, int *incx);
+
+La_extern void
+F77_NAME(zlatrd)(char *uplo, int *n, int *nb,
+	Rcomplex *a, int *lda, double *e, Rcomplex *tau,
+	Rcomplex *w, int *ldw);
+
+La_extern void
+F77_NAME(zlatrs)(char *uplo, char *trans, char *diag, char *
+	normin, int *n, Rcomplex *a, int *lda, Rcomplex *x,
+	double *scale, double *cnorm, int *info);
+
+La_extern void
+F77_NAME(zsteqr)(char *compz, int *n, double *d,
+	double *e, Rcomplex *z, int *ldz, double *work,
+	int *info);
+
+/* ZTRCON estimates the reciprocal of the condition number of a
+ * triangular matrix A, in either the 1-norm or the infinity-norm.
+ */
+La_extern void
+F77_NAME(ztrcon)(const char *norm, const char *uplo, const char *diag,
+                 const int *n, const Rcomplex *a, const int *lda,
+		 double *rcond, Rcomplex *work, double *rwork, int *info);
+
+La_extern void
+F77_NAME(ztrevc)(char *side, char *howmny, int *select,
+	int *n, Rcomplex *t, int *ldt, Rcomplex *vl,
+	int *ldvl, Rcomplex *vr, int *ldvr, int *mm, int
+	*m, Rcomplex *work, double *rwork, int *info);
+
+La_extern void
+F77_NAME(zung2l)(int *m, int *n, int *k,
+	Rcomplex *a, int *lda, Rcomplex *tau, Rcomplex *
+	work, int *info);
+
+La_extern void
+F77_NAME(zung2r)(int *m, int *n, int *k,
+	Rcomplex *a, int *lda, Rcomplex *tau, Rcomplex *
+	work, int *info);
+
+La_extern void
+F77_NAME(zungbr)(char *vect, int *m, int *n, int *k,
+	Rcomplex *a, int *lda, Rcomplex *tau, Rcomplex *
+	work, int *lwork, int *info);
+
+La_extern void
+F77_NAME(zunghr)(int *n, int *ilo, int *ihi,
+	Rcomplex *a, int *lda, Rcomplex *tau, Rcomplex *
+	work, int *lwork, int *info);
+
+La_extern void
+F77_NAME(zungl2)(int *m, int *n, int *k,
+	Rcomplex *a, int *lda, Rcomplex *tau, Rcomplex *
+	work, int *info);
+
+La_extern void
+F77_NAME(zunglq)(int *m, int *n, int *k,
+	Rcomplex *a, int *lda, Rcomplex *tau, Rcomplex *
+	work, int *lwork, int *info);
+
+La_extern void
+F77_NAME(zungql)(int *m, int *n, int *k,
+	Rcomplex *a, int *lda, Rcomplex *tau, Rcomplex *
+	work, int *lwork, int *info);
+
+La_extern void
+F77_NAME(zungqr)(int *m, int *n, int *k,
+	Rcomplex *a, int *lda, Rcomplex *tau, Rcomplex *
+	work, int *lwork, int *info);
+
+La_extern void
+F77_NAME(zungr2)(int *m, int *n, int *k,
+	Rcomplex *a, int *lda, Rcomplex *tau, Rcomplex *
+	work, int *info);
+
+La_extern void
+F77_NAME(zungrq)(int *m, int *n, int *k,
+	Rcomplex *a, int *lda, Rcomplex *tau, Rcomplex *
+	work, int *lwork, int *info);
+
+La_extern void
+F77_NAME(zungtr)(char *uplo, int *n, Rcomplex *a,
+	int *lda, Rcomplex *tau, Rcomplex *work, int *lwork,
+	 int *info);
+
+La_extern void
+F77_NAME(zunm2r)(char *side, char *trans, int *m, int *n,
+	int *k, Rcomplex *a, int *lda, Rcomplex *tau,
+	Rcomplex *c, int *ldc, Rcomplex *work, int *info);
+
+La_extern void
+F77_NAME(zunmbr)(char *vect, char *side, char *trans, int *m,
+	int *n, int *k, Rcomplex *a, int *lda, Rcomplex
+	*tau, Rcomplex *c, int *ldc, Rcomplex *work, int *
+	lwork, int *info);
+
+La_extern void
+F77_NAME(zunml2)(char *side, char *trans, int *m, int *n,
+	int *k, Rcomplex *a, int *lda, Rcomplex *tau,
+	Rcomplex *c, int *ldc, Rcomplex *work, int *info);
+
+La_extern void
+F77_NAME(zunmlq)(char *side, char *trans, int *m, int *n,
+	int *k, Rcomplex *a, int *lda, Rcomplex *tau,
+	Rcomplex *c, int *ldc, Rcomplex *work, int *lwork,
+	 int *info);
+
+/* Added in R 3.1.0 */
+/* ZGESVD - compute the singular value decomposition (SVD); of a   */
+/* real M-by-N matrix A, optionally computing the left and/or	   */
+/* right singular vectors					   */
+La_extern void
+F77_NAME(zgesdd)(const char *jobz,
+		 const int *m, const int *n,
+		 Rcomplex *a, const int *lda, double *s,
+		 Rcomplex *u, const int *ldu,
+		 Rcomplex *vt, const int *ldvt,
+		 Rcomplex *work, const int *lwork, double *rwork,
+		 int *iwork, int *info);
+La_extern void
+F77_NAME(zgelsd)(int *m, int *n, int *nrhs,
+	Rcomplex *a, int *lda, Rcomplex *b, int *ldb, double *s,
+        double *rcond, int *rank, 
+        Rcomplex *work, int *lwork, double *rwork, int *iwork, int *info);
+
+/* =========================== DEPRECATED ==============================
+
+   Routines below were deprecated in LAPACK 3.6.0, and are not
+   included in a default build of LAPACK.
+
+   Currently dgegv, dgeqpf, dggsvd and dggsvp are included in R, but
+   that may change before release of R 3.3.0.
+ */
+
+/* DGEGV - compute for a pair of n-by-n real nonsymmetric */
+/* matrices A and B, the generalized eigenvalues (alphar +/- */
+/* alphai*i, beta);, and optionally, the left and/or right */
+/* generalized eigenvectors (VL and VR); */
+La_extern void
+F77_NAME(dgegv)(const char* jobvl, const char* jobvr,
+		const int* n, double* a, const int* lda,
+		double* b, const int* ldb,
+		double* alphar, double* alphai,
+		const double* beta, double* vl, const int* ldvl,
+		double* vr, const int* ldvr,
+		double* work, const int* lwork, int* info);
+
+/* DGEQPF - compute a QR factorization with column pivoting of a */
+/* real M-by-N matrix A */
+La_extern void
+F77_NAME(dgeqpf)(const int* m, const int* n, double* a, const int* lda,
+		 int* jpvt, double* tau, double* work, int* info);
+
+/* DGGSVD - compute the generalized singular value decomposition */
+/* (GSVD) of an M-by-N real matrix A and P-by-N real matrix B */
+La_extern void
+F77_NAME(dggsvd)(const char* jobu, const char* jobv, const char* jobq,
+		 const int* m, const int* n, const int* p,
+		 const int* k, const int* l,
+		 double* a, const int* lda,
+		 double* b, const int* ldb,
+		 const double* alpha, const double* beta,
+		 double* u, const int* ldu,
+		 double* v, const int* ldv,
+		 double* q, const int* ldq,
+		 double* work, int* iwork, int* info);
+
+/* DTZRQF - reduce the M-by-N ( M<=N ); real upper trapezoidal */
+/* matrix A to upper triangular form by means of orthogonal */
+/* transformations  */
+La_extern void
+F77_NAME(dtzrqf)(const int* m, const int* n,
+		 double* a, const int* lda,
+		 double* tau, int* info);
+
+/* DLAHRD - reduce the first NB columns of a real general */
+/* n-by-(n-k+1); matrix A so that elements below the k-th */
+/* subdiagonal are zero */
+La_extern void
+F77_NAME(dlahrd)(const int* n, const int* k, const int* nb,
+		 double* a, const int* lda,
+		 double* tau, double* t, const int* ldt,
+		 double* y, const int* ldy);
+
+/* DLATZM - apply a Householder matrix generated by DTZRQF to a */
+/* matrix */
+La_extern void
+F77_NAME(dlatzm)(const char* side, const int* m, const int* n,
+		 const double* v, const int* incv,
+		 const double* tau, double* c1, double* c2,
+		 const int* ldc, double* work);
+
+La_extern void
+F77_NAME(dgegs)(char *jobvsl, char *jobvsr, int *n,
+	double *a, int *lda, double *b, int *ldb, double *
+	alphar, double *alphai, double *beta, double *vsl,
+	int *ldvsl, double *vsr, int *ldvsr, double *work,
+	int *lwork, int *info);
+
+La_extern void
+F77_NAME(dgelsx)(int *m, int *n, int *nrhs,
+	double *a, int *lda, double *b, int *ldb, int *
+	jpvt, double *rcond, int *rank, double *work, int *
+	info);
+
+La_extern void
+F77_NAME(dggsvp)(char *jobu, char *jobv, char *jobq, int *m,
+	int *p, int *n, double *a, int *lda, double *b,
+	int *ldb, double *tola, double *tolb, int *k, int
+	*l, double *u, int *ldu, double *v, int *ldv,
+	double *q, int *ldq, int *iwork, double *tau,
+	double *work, int *info);
+
+La_extern void
+F77_NAME(zlahrd)(int *n, int *k, int *nb,
+	Rcomplex *a, int *lda, Rcomplex *tau, Rcomplex *t,
+	int *ldt, Rcomplex *y, int *ldy);
+
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif /* R_LAPACK_H */
+
+// Local variables: ***
+// mode: outline-minor ***
+// outline-regexp: "^\^L\\|^//[*]+" ***
+// End: ***
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/libextern.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/libextern.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/libextern.h	(revision 2476)
@@ -0,0 +1,48 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2001, 2004  The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* Included by R.h: API on Windows */
+
+/* don't disallow including this one more than once */
+
+/* This is intended to be called from other header files, so not callable
+   from C++ */
+
+#undef LibExtern
+#undef LibImport
+#undef LibExport
+
+/* Don't try to include CYGWIN here: decorating some symbols breaks
+   the auto-export that it relies on, even if R_DLL_BUILD were set. */
+#ifdef _WIN32 /* _WIN32 as does not depend on config.h */
+#define LibImport __declspec(dllimport)
+#define LibExport __declspec(dllexport)
+#else
+#define LibImport
+#define LibExport
+#endif
+
+#ifdef __MAIN__
+#define LibExtern LibExport
+#define extern
+#elif defined(R_DLL_BUILD)
+#define LibExtern extern
+#else
+#define LibExtern extern LibImport
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Print.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Print.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Print.h	(revision 2476)
@@ -0,0 +1,50 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1998-2010    The R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* Included by R.h: API */
+
+#ifndef R_EXT_PRINT_H_
+#define R_EXT_PRINT_H_
+
+#ifdef  __cplusplus
+/* If the vprintf interface is defined at all in C++ it may only be
+   defined in namespace std. */
+# ifdef R_USE_C99_IN_CXX
+#  include <cstdarg>
+#  ifdef __SUNPRO_CC
+using _STLP_VENDOR_CSTD::va_list;
+#  endif
+# endif
+extern "C" {
+#else
+# include <stdarg.h>
+#endif
+
+void Rprintf(const char *, ...);
+void REprintf(const char *, ...);
+#if !defined(__cplusplus) || defined R_USE_C99_IN_CXX
+void Rvprintf(const char *, va_list);
+void REvprintf(const char *, va_list);
+#endif
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_EXT_PRINT_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Utils.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Utils.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/Utils.h	(revision 2476)
@@ -0,0 +1,122 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1998-2016    The R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ *
+ *
+ * Generally useful  UTILITIES  *NOT* relying on R internals (from Defn.h)
+ */
+
+/* Included by R.h: API */
+
+#ifndef R_EXT_UTILS_H_
+#define R_EXT_UTILS_H_
+
+#include <R_ext/Boolean.h>
+#include <R_ext/Complex.h>
+
+#ifndef NO_C_HEADERS
+# if defined(__cplusplus) && !defined(DO_NOT_USE_CXX_HEADERS)
+#  include <cstddef>
+using std::size_t;
+# else
+#  include <stddef.h>
+# endif
+#else
+#warning "use of NO_C_HEADERS is deprecated"
+#endif
+
+#define revsort       Rf_revsort
+#define iPsort        Rf_iPsort
+#define rPsort        Rf_rPsort
+#define cPsort        Rf_cPsort
+#define IndexWidth    Rf_IndexWidth
+#define setIVector    Rf_setIVector
+#define setRVector    Rf_setRVector
+#define StringFalse   Rf_StringFalse
+#define StringTrue    Rf_StringTrue
+#define isBlankString Rf_isBlankString
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+/* ../../main/sort.c : */
+void	R_isort(int*, int);
+void	R_rsort(double*, int);
+void	R_csort(Rcomplex*, int);
+void    rsort_with_index(double *, int *, int);
+void	revsort(double*, int*, int);/* reverse; sort i[] alongside */
+void	iPsort(int*,    int, int);
+void	rPsort(double*, int, int);
+void	cPsort(Rcomplex*, int, int);
+
+/* ../../main/qsort.c : */
+/* dummy renamed to II to avoid problems with g++ on Solaris */
+void R_qsort    (double *v,         size_t i, size_t j);
+void R_qsort_I  (double *v, int *II, int i, int j);
+void R_qsort_int  (int *iv,         size_t i, size_t j);
+void R_qsort_int_I(int *iv, int *II, int i, int j);
+#ifdef R_RS_H
+void F77_NAME(qsort4)(double *v, int *indx, int *ii, int *jj);
+void F77_NAME(qsort3)(double *v,            int *ii, int *jj);
+#endif
+
+/* ../../main/util.c  and others : */
+const char *R_ExpandFileName(const char *);
+void	setIVector(int*, int, int);
+void	setRVector(double*, int, double);
+Rboolean StringFalse(const char *);
+Rboolean StringTrue(const char *);
+Rboolean isBlankString(const char *);
+
+/* These two are guaranteed to use '.' as the decimal point,
+   and to accept "NA".
+ */
+double R_atof(const char *str);
+double R_strtod(const char *c, char **end);
+
+char *R_tmpnam(const char *prefix, const char *tempdir);
+char *R_tmpnam2(const char *prefix, const char *tempdir, const char *fileext);
+
+void R_CheckUserInterrupt(void);
+void R_CheckStack(void);
+void R_CheckStack2(size_t);
+
+
+/* ../../appl/interv.c: also in Applic.h */
+int findInterval(double *xt, int n, double x,
+		 Rboolean rightmost_closed,  Rboolean all_inside, int ilo,
+		 int *mflag);
+int findInterval2(double *xt, int n, double x,
+		  Rboolean rightmost_closed,  Rboolean all_inside, Rboolean left_open,
+		  int ilo, int *mflag);
+#ifdef R_RS_H
+int F77_SUB(interv)(double *xt, int *n, double *x,
+		    Rboolean *rightmost_closed, Rboolean *all_inside,
+		    int *ilo, int *mflag);
+#endif
+void find_interv_vec(double *xt, int *n,	double *x,   int *nx,
+		     int *rightmost_closed, int *all_inside, int *indx);
+
+/* ../../appl/maxcol.c: also in Applic.h */
+void R_max_col(double *matrix, int *nr, int *nc, int *maxes, int *ties_meth);
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* R_EXT_UTILS_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/PrtUtil.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/PrtUtil.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R_ext/PrtUtil.h	(revision 2476)
@@ -0,0 +1,76 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1998-2014    The R Core Team
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/*
+ *  These functions are not part of the API.
+ */
+#ifndef PRTUTIL_H_
+#define PRTUTIL_H_
+
+#include <Rinternals.h> // for R_xlen_t
+#include <R_ext/Complex.h>
+
+#define formatLogical      Rf_formatLogical
+#define formatInteger      Rf_formatInteger
+#define formatReal         Rf_formatReal
+#define formatComplex      Rf_formatComplex
+#define EncodeLogical      Rf_EncodeLogical
+#define EncodeInteger      Rf_EncodeInteger
+#define EncodeReal         Rf_EncodeReal
+#define EncodeReal0        Rf_EncodeReal0
+#define EncodeComplex      Rf_EncodeComplex
+#define VectorIndex        Rf_VectorIndex
+#define printIntegerVector Rf_printIntegerVector
+#define printRealVector    Rf_printRealVector
+#define printComplexVector Rf_printComplexVector
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+/* Computation of printing formats */
+void formatLogical(int *, R_xlen_t, int *);
+void formatInteger(int *, R_xlen_t, int *);
+void formatReal(double *, R_xlen_t, int *, int *, int *, int);
+void formatComplex(Rcomplex *, R_xlen_t, int *, int *, int *, int *, int *, int *, int);
+
+/* Formating of values */
+const char *EncodeLogical(int, int);
+const char *EncodeInteger(int, int);
+const char *EncodeReal0(double, int, int, int, const char *);
+const char *EncodeComplex(Rcomplex, int, int, int, int, int, int, const char *);
+
+/* Legacy, misused by packages RGtk2 and qtbase */
+const char *EncodeReal(double, int, int, int, char);
+
+
+/* Printing */
+int	IndexWidth(R_xlen_t);
+void VectorIndex(R_xlen_t, int);
+
+//void printLogicalVector(int *, R_xlen_t, int);
+void printIntegerVector(int *, R_xlen_t, int);
+void printRealVector   (double *, R_xlen_t, int);
+void printComplexVector(Rcomplex *, R_xlen_t, int);
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* PRTUTIL_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rembedded.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rembedded.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rembedded.h	(revision 2476)
@@ -0,0 +1,73 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2006-2016  The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* A header for use with alternative front-ends. Not formally part of
+ * the API so subject to change without notice. */
+
+#ifndef REMBEDDED_H_
+#define REMBEDDED_H_
+
+#include <R_ext/Boolean.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int Rf_initEmbeddedR(int argc, char *argv[]);
+extern void Rf_endEmbeddedR(int fatal);
+
+/* From here on down can be helpful in writing tailored startup and
+   termination code */
+
+#ifndef LibExtern
+# define LibExtern extern
+#endif
+
+int Rf_initialize_R(int ac, char **av);
+void setup_Rmainloop(void);
+extern void R_ReplDLLinit(void);
+extern int R_ReplDLLdo1(void);
+
+void R_setStartTime(void);
+extern void R_RunExitFinalizers(void);
+extern void CleanEd(void);
+extern void Rf_KillAllDevices(void);
+LibExtern int R_DirtyImage;
+extern void R_CleanTempDir(void);
+LibExtern char *R_TempDir;    
+extern void R_SaveGlobalEnv(void);
+
+#ifdef _WIN32
+extern char *getDLLVersion(void), *getRUser(void), *get_R_HOME(void);
+extern void setup_term_ui(void);
+LibExtern int UserBreak;
+extern Rboolean AllDevicesKilled;
+extern void editorcleanall(void);
+extern int GA_initapp(int, char **);
+extern void GA_appcleanup(void);
+extern void readconsolecfg(void);
+#else
+void fpu_setup(Rboolean start);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* REMBEDDED_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rmath.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rmath.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rmath.h	(revision 2476)
@@ -0,0 +1,695 @@
+/* -*- C -*-
+ *  Mathlib : A C Library of Special Functions
+ *  Copyright (C) 1998-2016  The R Core Team
+ *  Copyright (C) 2004       The R Foundation
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ *
+
+ * Rmath.h  should contain ALL headers from R's C code in `src/nmath'
+   -------  such that ``the Math library'' can be used by simply
+
+   ``#include <Rmath.h> ''
+
+   and nothing else.
+
+   It is part of the API and supports 'standalone Rmath'.
+
+*/
+#ifndef RMATH_H
+#define RMATH_H
+
+/* Note that on some systems you need to include math.h before the
+   defines below. If so, define this yourself. */
+#ifndef NO_C_HEADERS
+/* needed for cospi etc */
+# ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+#  define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1
+# endif
+/* See the comment in R.h */
+# ifdef __SUNPRO_CC
+#  define DO_NOT_USE_CXX_HEADERS
+# endif
+# if defined(__cplusplus) && !defined(DO_NOT_USE_CXX_HEADERS)
+#  include <cmath>
+# else
+#  include <math.h>
+# endif
+#else
+#warning "use of NO_C_HEADERS is deprecated"
+#endif
+
+/*-- Mathlib as part of R --  define this for standalone : */
+/* #undef MATHLIB_STANDALONE */
+
+#define R_VERSION_STRING "3.3.2"
+
+#ifndef HAVE_EXPM1
+# define HAVE_EXPM1 1
+#endif
+
+#ifndef HAVE_HYPOT
+# define HAVE_HYPOT 1
+#endif
+
+#ifndef HAVE_LOG1P
+# define HAVE_LOG1P 1
+#endif
+
+#ifndef HAVE_WORKING_LOG1P
+# define HAVE_WORKING_LOG1P 1
+#endif
+
+#if defined(HAVE_LOG1P) && !defined(HAVE_WORKING_LOG1P)
+/* remap to avoid problems with getting the right entry point */
+double  Rlog1p(double);
+#define log1p Rlog1p
+#endif
+
+
+	/* Undo SGI Madness */
+
+#ifdef __sgi
+# ifdef ftrunc
+#  undef ftrunc
+# endif
+# ifdef qexp
+#  undef qexp
+# endif
+# ifdef qgamma
+#  undef qgamma
+# endif
+#endif
+
+
+/* ----- The following constants and entry points are part of the R API ---- */
+
+/* 30 Decimal-place constants */
+/* Computed with bc -l (scale=32; proper round) */
+
+/* SVID & X/Open Constants */
+/* Names from Solaris math.h */
+
+#ifndef M_E
+#define M_E		2.718281828459045235360287471353	/* e */
+#endif
+
+#ifndef M_LOG2E
+#define M_LOG2E		1.442695040888963407359924681002	/* log2(e) */
+#endif
+
+#ifndef M_LOG10E
+#define M_LOG10E	0.434294481903251827651128918917	/* log10(e) */
+#endif
+
+#ifndef M_LN2
+#define M_LN2		0.693147180559945309417232121458	/* ln(2) */
+#endif
+
+#ifndef M_LN10
+#define M_LN10		2.302585092994045684017991454684	/* ln(10) */
+#endif
+
+#ifndef M_PI
+#define M_PI		3.141592653589793238462643383280	/* pi */
+#endif
+
+#ifndef M_2PI
+#define M_2PI		6.283185307179586476925286766559	/* 2*pi */
+#endif
+
+#ifndef M_PI_2
+#define M_PI_2		1.570796326794896619231321691640	/* pi/2 */
+#endif
+
+#ifndef M_PI_4
+#define M_PI_4		0.785398163397448309615660845820	/* pi/4 */
+#endif
+
+#ifndef M_1_PI
+#define M_1_PI		0.318309886183790671537767526745	/* 1/pi */
+#endif
+
+#ifndef M_2_PI
+#define M_2_PI		0.636619772367581343075535053490	/* 2/pi */
+#endif
+
+#ifndef M_2_SQRTPI
+#define M_2_SQRTPI	1.128379167095512573896158903122	/* 2/sqrt(pi) */
+#endif
+
+#ifndef M_SQRT2
+#define M_SQRT2		1.414213562373095048801688724210	/* sqrt(2) */
+#endif
+
+#ifndef M_SQRT1_2
+#define M_SQRT1_2	0.707106781186547524400844362105	/* 1/sqrt(2) */
+#endif
+
+/* R-Specific Constants */
+
+#ifndef M_SQRT_3
+#define M_SQRT_3	1.732050807568877293527446341506	/* sqrt(3) */
+#endif
+
+#ifndef M_SQRT_32
+#define M_SQRT_32	5.656854249492380195206754896838	/* sqrt(32) */
+#endif
+
+#ifndef M_LOG10_2
+#define M_LOG10_2	0.301029995663981195213738894724	/* log10(2) */
+#endif
+
+#ifndef M_SQRT_PI
+#define M_SQRT_PI	1.772453850905516027298167483341	/* sqrt(pi) */
+#endif
+
+#ifndef M_1_SQRT_2PI
+#define M_1_SQRT_2PI	0.398942280401432677939946059934	/* 1/sqrt(2pi) */
+#endif
+
+#ifndef M_SQRT_2dPI
+#define M_SQRT_2dPI	0.797884560802865355879892119869	/* sqrt(2/pi) */
+#endif
+
+
+#ifndef M_LN_2PI
+#define M_LN_2PI	1.837877066409345483560659472811	/* log(2*pi) */
+#endif
+
+#ifndef M_LN_SQRT_PI
+#define M_LN_SQRT_PI	0.572364942924700087071713675677	/* log(sqrt(pi))
+								   == log(pi)/2 */
+#endif
+
+#ifndef M_LN_SQRT_2PI
+#define M_LN_SQRT_2PI	0.918938533204672741780329736406	/* log(sqrt(2*pi))
+								 == log(2*pi)/2 */
+#endif
+
+#ifndef M_LN_SQRT_PId2
+#define M_LN_SQRT_PId2	0.225791352644727432363097614947	/* log(sqrt(pi/2))
+								   == log(pi/2)/2 */
+#endif
+
+
+#ifdef MATHLIB_STANDALONE
+# ifndef R_EXT_BOOLEAN_H_
+/* "copy-paste" R_ext/Boolean.h if not already included: */
+ #define R_EXT_BOOLEAN_H_
+ #undef FALSE
+ #undef TRUE
+ typedef enum { FALSE = 0, TRUE } Rboolean;
+# endif
+#else
+# include <R_ext/Boolean.h>
+#endif
+
+
+#if !defined(MATHLIB_STANDALONE) && !defined(R_NO_REMAP_RMATH)
+#define bessel_i	Rf_bessel_i
+#define bessel_j	Rf_bessel_j
+#define bessel_k	Rf_bessel_k
+#define bessel_y	Rf_bessel_y
+#define bessel_i_ex	Rf_bessel_i_ex
+#define bessel_j_ex	Rf_bessel_j_ex
+#define bessel_k_ex	Rf_bessel_k_ex
+#define bessel_y_ex	Rf_bessel_y_ex
+#define beta		Rf_beta
+#define choose		Rf_choose
+#define dbeta		Rf_dbeta
+#define dbinom		Rf_dbinom
+#define dbinom_raw	Rf_dbinom_raw
+#define dcauchy		Rf_dcauchy
+#define dchisq		Rf_dchisq
+#define dexp		Rf_dexp
+#define df		Rf_df
+#define dgamma		Rf_dgamma
+#define dgeom		Rf_dgeom
+#define dhyper		Rf_dhyper
+#define digamma		Rf_digamma
+#define dlnorm		Rf_dlnorm
+#define dlogis		Rf_dlogis
+#define dnbeta		Rf_dnbeta
+#define dnbinom		Rf_dnbinom
+#define dnbinom_mu	Rf_dnbinom_mu
+#define dnchisq		Rf_dnchisq
+#define dnf		Rf_dnf
+#define dnorm4		Rf_dnorm4
+#define dnt		Rf_dnt
+#define dpois_raw	Rf_dpois_raw
+#define dpois		Rf_dpois
+#define dpsifn		Rf_dpsifn
+#define dsignrank	Rf_dsignrank
+#define dt		Rf_dt
+#define dtukey		Rf_dtukey
+#define dunif		Rf_dunif
+#define dweibull	Rf_dweibull
+#define dwilcox		Rf_dwilcox
+#define fmax2		Rf_fmax2
+#define fmin2		Rf_fmin2
+#define fprec		Rf_fprec
+#define fround		Rf_fround
+#define ftrunc		Rf_ftrunc
+#define fsign		Rf_fsign
+#define gammafn		Rf_gammafn
+#define imax2		Rf_imax2
+#define imin2		Rf_imin2
+#define lbeta		Rf_lbeta
+#define lchoose		Rf_lchoose
+#define lgammafn	Rf_lgammafn
+#define lgammafn_sign	Rf_lgammafn_sign
+#define lgamma1p	Rf_lgamma1p
+#define log1pexp       	Rf_log1pexp
+#define log1pmx		Rf_log1pmx
+#define logspace_add	Rf_logspace_add
+#define logspace_sub	Rf_logspace_sub
+#define logspace_sum	Rf_logspace_sum
+#define pbeta		Rf_pbeta
+#define pbeta_raw	Rf_pbeta_raw
+#define pbinom		Rf_pbinom
+#define pcauchy		Rf_pcauchy
+#define pchisq		Rf_pchisq
+#define pentagamma	Rf_pentagamma
+#define pexp		Rf_pexp
+#define pf		Rf_pf
+#define pgamma		Rf_pgamma
+#define pgeom		Rf_pgeom
+#define phyper		Rf_phyper
+#define plnorm		Rf_plnorm
+#define plogis		Rf_plogis
+#define pnbeta		Rf_pnbeta
+#define pnbinom		Rf_pnbinom
+#define pnbinom_mu     	Rf_pnbinom_mu
+#define pnchisq		Rf_pnchisq
+#define pnf		Rf_pnf
+#define pnorm5		Rf_pnorm5
+#define pnorm_both	Rf_pnorm_both
+#define pnt		Rf_pnt
+#define ppois		Rf_ppois
+#define psignrank	Rf_psignrank
+#define psigamma	Rf_psigamma
+#define pt		Rf_pt
+#define ptukey		Rf_ptukey
+#define punif		Rf_punif
+#define pythag		Rf_pythag
+#define pweibull	Rf_pweibull
+#define pwilcox		Rf_pwilcox
+#define qbeta		Rf_qbeta
+#define qbinom		Rf_qbinom
+#define qcauchy		Rf_qcauchy
+#define qchisq		Rf_qchisq
+#define qchisq_appr	Rf_qchisq_appr
+#define qexp		Rf_qexp
+#define qf		Rf_qf
+#define qgamma		Rf_qgamma
+#define qgeom		Rf_qgeom
+#define qhyper		Rf_qhyper
+#define qlnorm		Rf_qlnorm
+#define qlogis		Rf_qlogis
+#define qnbeta		Rf_qnbeta
+#define qnbinom		Rf_qnbinom
+#define qnbinom_mu     	Rf_qnbinom_mu
+#define qnchisq		Rf_qnchisq
+#define qnf		Rf_qnf
+#define qnorm5		Rf_qnorm5
+#define qnt		Rf_qnt
+#define qpois		Rf_qpois
+#define qsignrank	Rf_qsignrank
+#define qt		Rf_qt
+#define qtukey		Rf_qtukey
+#define qunif		Rf_qunif
+#define qweibull	Rf_qweibull
+#define qwilcox		Rf_qwilcox
+#define rbeta		Rf_rbeta
+#define rbinom		Rf_rbinom
+#define rcauchy		Rf_rcauchy
+#define rchisq		Rf_rchisq
+#define rexp		Rf_rexp
+#define rf		Rf_rf
+#define rgamma		Rf_rgamma
+#define rgeom		Rf_rgeom
+#define rhyper		Rf_rhyper
+#define rlnorm		Rf_rlnorm
+#define rlogis		Rf_rlogis
+#define rmultinom	Rf_rmultinom
+#define rnbeta		Rf_rnbeta
+#define rnbinom		Rf_rnbinom
+#define rnbinom_mu     	Rf_rnbinom_mu
+#define rnchisq		Rf_rnchisq
+#define rnf		Rf_rnf
+#define rnorm		Rf_rnorm
+#define rnt		Rf_rnt
+#define rpois		Rf_rpois
+#define rsignrank	Rf_rsignrank
+#define rt		Rf_rt
+#define rtukey		Rf_rtukey
+#define runif		Rf_runif
+#define rweibull	Rf_rweibull
+#define rwilcox		Rf_rwilcox
+#define sign		Rf_sign
+#define tetragamma	Rf_tetragamma
+#define trigamma	Rf_trigamma
+#endif
+
+#define dnorm dnorm4
+#define pnorm pnorm5
+#define qnorm qnorm5
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+	/* R's versions with !R_FINITE checks */
+
+double R_pow(double x, double y);
+double R_pow_di(double, int);
+
+	/* Random Number Generators */
+
+double	norm_rand(void);
+double	unif_rand(void);
+double	exp_rand(void);
+#ifdef MATHLIB_STANDALONE
+void	set_seed(unsigned int, unsigned int);
+void	get_seed(unsigned int *, unsigned int *);
+#endif
+
+	/* Normal Distribution */
+
+double	dnorm(double, double, double, int);
+double	pnorm(double, double, double, int, int);
+double	qnorm(double, double, double, int, int);
+double	rnorm(double, double);
+void	pnorm_both(double, double *, double *, int, int);/* both tails */
+
+	/* Uniform Distribution */
+
+double	dunif(double, double, double, int);
+double	punif(double, double, double, int, int);
+double	qunif(double, double, double, int, int);
+double	runif(double, double);
+
+	/* Gamma Distribution */
+
+double	dgamma(double, double, double, int);
+double	pgamma(double, double, double, int, int);
+double	qgamma(double, double, double, int, int);
+double	rgamma(double, double);
+
+double  log1pmx(double);
+double  log1pexp(double); // <-- ../nmath/plogis.c
+double  lgamma1p(double);
+double  logspace_add(double, double);
+double  logspace_sub(double, double);
+double  logspace_sum(const double *, int);
+
+	/* Beta Distribution */
+
+double	dbeta(double, double, double, int);
+double	pbeta(double, double, double, int, int);
+double	qbeta(double, double, double, int, int);
+double	rbeta(double, double);
+
+	/* Lognormal Distribution */
+
+double	dlnorm(double, double, double, int);
+double	plnorm(double, double, double, int, int);
+double	qlnorm(double, double, double, int, int);
+double	rlnorm(double, double);
+
+	/* Chi-squared Distribution */
+
+double	dchisq(double, double, int);
+double	pchisq(double, double, int, int);
+double	qchisq(double, double, int, int);
+double	rchisq(double);
+
+	/* Non-central Chi-squared Distribution */
+
+double	dnchisq(double, double, double, int);
+double	pnchisq(double, double, double, int, int);
+double	qnchisq(double, double, double, int, int);
+double	rnchisq(double, double);
+
+	/* F Distibution */
+
+double	df(double, double, double, int);
+double	pf(double, double, double, int, int);
+double	qf(double, double, double, int, int);
+double	rf(double, double);
+
+	/* Student t Distibution */
+
+double	dt(double, double, int);
+double	pt(double, double, int, int);
+double	qt(double, double, int, int);
+double	rt(double);
+
+	/* Binomial Distribution */
+
+double  dbinom_raw(double x, double n, double p, double q, int give_log);
+double	dbinom(double, double, double, int);
+double	pbinom(double, double, double, int, int);
+double	qbinom(double, double, double, int, int);
+double	rbinom(double, double);
+
+	/* Multnomial Distribution */
+
+void	rmultinom(int, double*, int, int*);
+
+	/* Cauchy Distribution */
+
+double	dcauchy(double, double, double, int);
+double	pcauchy(double, double, double, int, int);
+double	qcauchy(double, double, double, int, int);
+double	rcauchy(double, double);
+
+	/* Exponential Distribution */
+
+double	dexp(double, double, int);
+double	pexp(double, double, int, int);
+double	qexp(double, double, int, int);
+double	rexp(double);
+
+	/* Geometric Distribution */
+
+double	dgeom(double, double, int);
+double	pgeom(double, double, int, int);
+double	qgeom(double, double, int, int);
+double	rgeom(double);
+
+	/* Hypergeometric Distibution */
+
+double	dhyper(double, double, double, double, int);
+double	phyper(double, double, double, double, int, int);
+double	qhyper(double, double, double, double, int, int);
+double	rhyper(double, double, double);
+
+	/* Negative Binomial Distribution */
+
+double	dnbinom(double, double, double, int);
+double	pnbinom(double, double, double, int, int);
+double	qnbinom(double, double, double, int, int);
+double	rnbinom(double, double);
+
+double	dnbinom_mu(double, double, double, int);
+double	pnbinom_mu(double, double, double, int, int);
+double	qnbinom_mu(double, double, double, int, int);
+double	rnbinom_mu(double, double);
+
+	/* Poisson Distribution */
+
+double	dpois_raw (double, double, int);
+double	dpois(double, double, int);
+double	ppois(double, double, int, int);
+double	qpois(double, double, int, int);
+double	rpois(double);
+
+	/* Weibull Distribution */
+
+double	dweibull(double, double, double, int);
+double	pweibull(double, double, double, int, int);
+double	qweibull(double, double, double, int, int);
+double	rweibull(double, double);
+
+	/* Logistic Distribution */
+
+double	dlogis(double, double, double, int);
+double	plogis(double, double, double, int, int);
+double	qlogis(double, double, double, int, int);
+double	rlogis(double, double);
+
+	/* Non-central Beta Distribution */
+
+double	dnbeta(double, double, double, double, int);
+double	pnbeta(double, double, double, double, int, int);
+double	qnbeta(double, double, double, double, int, int);
+double	rnbeta(double, double, double);
+
+	/* Non-central F Distribution */
+
+double  dnf(double, double, double, double, int);
+double	pnf(double, double, double, double, int, int);
+double	qnf(double, double, double, double, int, int);
+
+	/* Non-central Student t Distribution */
+
+double	dnt(double, double, double, int);
+double	pnt(double, double, double, int, int);
+double	qnt(double, double, double, int, int);
+
+	/* Studentized Range Distribution */
+
+double	ptukey(double, double, double, double, int, int);
+double	qtukey(double, double, double, double, int, int);
+
+	/* Wilcoxon Rank Sum Distribution */
+
+double dwilcox(double, double, double, int);
+double pwilcox(double, double, double, int, int);
+double qwilcox(double, double, double, int, int);
+double rwilcox(double, double);
+
+	/* Wilcoxon Signed Rank Distribution */
+
+double dsignrank(double, double, int);
+double psignrank(double, double, int, int);
+double qsignrank(double, double, int, int);
+double rsignrank(double);
+
+	/* Gamma and Related Functions */
+double	gammafn(double);
+double	lgammafn(double);
+double	lgammafn_sign(double, int*);
+void    dpsifn(double, int, int, int, double*, int*, int*);
+double	psigamma(double, double);
+double	digamma(double);
+double	trigamma(double);
+double	tetragamma(double);
+double	pentagamma(double);
+
+double	beta(double, double);
+double	lbeta(double, double);
+
+double	choose(double, double);
+double	lchoose(double, double);
+
+	/* Bessel Functions */
+
+double	bessel_i(double, double, double);
+double	bessel_j(double, double);
+double	bessel_k(double, double, double);
+double	bessel_y(double, double);
+double	bessel_i_ex(double, double, double, double *);
+double	bessel_j_ex(double, double, double *);
+double	bessel_k_ex(double, double, double, double *);
+double	bessel_y_ex(double, double, double *);
+
+
+	/* General Support Functions */
+
+#ifndef HAVE_HYPOT
+double 	hypot(double, double);
+#endif
+double 	pythag(double, double);
+#ifndef HAVE_EXPM1
+double  expm1(double); /* = exp(x)-1 {care for small x} */
+#endif
+#ifndef HAVE_LOG1P
+double  log1p(double); /* = log(1+x) {care for small x} */
+#endif
+int	imax2(int, int);
+int	imin2(int, int);
+double	fmax2(double, double);
+double	fmin2(double, double);
+double	sign(double);
+double	fprec(double, double);
+double	fround(double, double);
+double	fsign(double, double);
+double	ftrunc(double);
+
+double  log1pmx(double); /* Accurate log(1+x) - x, {care for small x} */
+double  lgamma1p(double);/* accurate log(gamma(x+1)), small x (0 < x < 0.5) */
+
+/* More accurate cos(pi*x), sin(pi*x), tan(pi*x)
+
+   In future these declarations could clash with system headers if
+   someone had already included math.h with
+   __STDC_WANT_IEC_60559_FUNCS_EXT__ defined.
+   We can add a check for that via the value of
+   __STDC_IEC_60559_FUNCS__ (>= 201ymmL, exact value not yet known).
+*/
+double cospi(double);
+double sinpi(double);
+double tanpi(double);
+
+/* Compute the log of a sum or difference from logs of terms, i.e.,
+ *
+ *     log (exp (logx) + exp (logy))
+ * or  log (exp (logx) - exp (logy))
+ *
+ * without causing overflows or throwing away too much accuracy:
+ */
+double  logspace_add(double logx, double logy);
+double  logspace_sub(double logx, double logy);
+
+
+/* ----------------- Private part of the header file ------------------- */
+
+	/* old-R Compatibility */
+
+#ifdef OLD_RMATH_COMPAT
+# define snorm	norm_rand
+# define sunif	unif_rand
+# define sexp	exp_rand
+#endif
+
+#if defined(MATHLIB_STANDALONE) && !defined(MATHLIB_PRIVATE_H)
+/* second is defined by nmath.h */
+
+/* If isnan is a macro, as C99 specifies, the C++
+   math header will undefine it. This happens on macOS */
+# ifdef __cplusplus
+  int R_isnancpp(double); /* in mlutils.c */
+#  define ISNAN(x)     R_isnancpp(x)
+# else
+#  define ISNAN(x)     (isnan(x)!=0)
+# endif
+
+# define R_FINITE(x)    R_finite(x)
+int R_finite(double);
+
+# ifdef _WIN32  /* not Win32 as no config information */
+#  ifdef RMATH_DLL
+#   define R_EXTERN extern __declspec(dllimport)
+#  else
+#   define R_EXTERN extern
+#  endif
+R_EXTERN double NA_REAL;
+R_EXTERN double R_PosInf;
+R_EXTERN double R_NegInf;
+R_EXTERN int N01_kind;
+#  undef R_EXTERN
+#else
+extern int N01_kind;
+# endif
+
+#endif /* MATHLIB_STANDALONE */
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif /* RMATH_H */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/libintl.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/libintl.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/libintl.h	(revision 2476)
@@ -0,0 +1,419 @@
+/* Message catalogs for internationalization.
+   Copyright (C) 1995-1997, 2000-2007 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU Library General Public License as published
+   by the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+   USA.  */
+
+#ifndef _LIBINTL_H
+#define _LIBINTL_H	1
+
+#include <locale.h>
+
+/* The LC_MESSAGES locale category is the category used by the functions
+   gettext() and dgettext().  It is specified in POSIX, but not in ANSI C.
+   On systems that don't define it, use an arbitrary value instead.
+   On Solaris, <locale.h> defines __LOCALE_H (or _LOCALE_H in Solaris 2.5)
+   then includes <libintl.h> (i.e. this file!) and then only defines
+   LC_MESSAGES.  To avoid a redefinition warning, don't define LC_MESSAGES
+   in this case.  */
+#if !defined LC_MESSAGES && !(defined __LOCALE_H || (defined _LOCALE_H && defined __sun))
+# define LC_MESSAGES 1729
+#endif
+
+/* We define an additional symbol to signal that we use the GNU
+   implementation of gettext.  */
+#define __USE_GNU_GETTEXT 1
+
+/* Provide information about the supported file formats.  Returns the
+   maximum minor revision number supported for a given major revision.  */
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) \
+  ((major) == 0 || (major) == 1 ? 1 : -1)
+
+/* Resolve a platform specific conflict on DJGPP.  GNU gettext takes
+   precedence over _conio_gettext.  */
+#ifdef __DJGPP__
+# undef gettext
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Version number: (major<<16) + (minor<<8) + subminor */
+#define LIBINTL_VERSION 0x001100
+extern int libintl_version;
+
+
+/* We redirect the functions to those prefixed with "libintl_".  This is
+   necessary, because some systems define gettext/textdomain/... in the C
+   library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer).
+   If we used the unprefixed names, there would be cases where the
+   definition in the C library would override the one in the libintl.so
+   shared library.  Recall that on ELF systems, the symbols are looked
+   up in the following order:
+     1. in the executable,
+     2. in the shared libraries specified on the link command line, in order,
+     3. in the dependencies of the shared libraries specified on the link
+        command line,
+     4. in the dlopen()ed shared libraries, in the order in which they were
+        dlopen()ed.
+   The definition in the C library would override the one in libintl.so if
+   either
+     * -lc is given on the link command line and -lintl isn't, or
+     * -lc is given on the link command line before -lintl, or
+     * libintl.so is a dependency of a dlopen()ed shared library but not
+       linked to the executable at link time.
+   Since Solaris gettext() behaves differently than GNU gettext(), this
+   would be unacceptable.
+
+   The redirection happens by default through macros in C, so that &gettext
+   is independent of the compilation unit, but through inline functions in
+   C++, in order not to interfere with the name mangling of class fields or
+   class methods called 'gettext'.  */
+
+/* The user can define _INTL_REDIRECT_INLINE or _INTL_REDIRECT_MACROS.
+   If he doesn't, we choose the method.  A third possible method is
+   _INTL_REDIRECT_ASM, supported only by GCC.  */
+#if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS)
+# if __GNUC__ >= 2 && !(__APPLE_CC__ > 1) && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus)
+#  define _INTL_REDIRECT_ASM
+# else
+#  ifdef __cplusplus
+#   define _INTL_REDIRECT_INLINE
+#  else
+#   define _INTL_REDIRECT_MACROS
+#  endif
+# endif
+#endif
+/* Auxiliary macros.  */
+#ifdef _INTL_REDIRECT_ASM
+# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname))
+# define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring
+# define _INTL_STRINGIFY(prefix) #prefix
+#else
+# define _INTL_ASM(cname)
+#endif
+
+/* _INTL_MAY_RETURN_STRING_ARG(n) declares that the given function may return
+   its n-th argument literally.  This enables GCC to warn for example about
+   printf (gettext ("foo %y")).  */
+#if __GNUC__ >= 3 && !(__APPLE_CC__ > 1 && defined __cplusplus)
+# define _INTL_MAY_RETURN_STRING_ARG(n) __attribute__ ((__format_arg__ (n)))
+#else
+# define _INTL_MAY_RETURN_STRING_ARG(n)
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+   LC_MESSAGES locale.  If not found, returns MSGID itself (the default
+   text).  */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_gettext (const char *__msgid)
+       _INTL_MAY_RETURN_STRING_ARG (1);
+static inline char *gettext (const char *__msgid)
+{
+  return libintl_gettext (__msgid);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define gettext libintl_gettext
+#endif
+extern char *gettext (const char *__msgid)
+       _INTL_ASM (libintl_gettext)
+       _INTL_MAY_RETURN_STRING_ARG (1);
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current
+   LC_MESSAGES locale.  */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_dgettext (const char *__domainname, const char *__msgid)
+       _INTL_MAY_RETURN_STRING_ARG (2);
+static inline char *dgettext (const char *__domainname, const char *__msgid)
+{
+  return libintl_dgettext (__domainname, __msgid);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define dgettext libintl_dgettext
+#endif
+extern char *dgettext (const char *__domainname, const char *__msgid)
+       _INTL_ASM (libintl_dgettext)
+       _INTL_MAY_RETURN_STRING_ARG (2);
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+   locale.  */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_dcgettext (const char *__domainname, const char *__msgid,
+				int __category)
+       _INTL_MAY_RETURN_STRING_ARG (2);
+static inline char *dcgettext (const char *__domainname, const char *__msgid,
+			       int __category)
+{
+  return libintl_dcgettext (__domainname, __msgid, __category);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define dcgettext libintl_dcgettext
+#endif
+extern char *dcgettext (const char *__domainname, const char *__msgid,
+			int __category)
+       _INTL_ASM (libintl_dcgettext)
+       _INTL_MAY_RETURN_STRING_ARG (2);
+#endif
+
+
+/* Similar to `gettext' but select the plural form corresponding to the
+   number N.  */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_ngettext (const char *__msgid1, const char *__msgid2,
+			       unsigned long int __n)
+       _INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2);
+static inline char *ngettext (const char *__msgid1, const char *__msgid2,
+			      unsigned long int __n)
+{
+  return libintl_ngettext (__msgid1, __msgid2, __n);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define ngettext libintl_ngettext
+#endif
+extern char *ngettext (const char *__msgid1, const char *__msgid2,
+		       unsigned long int __n)
+       _INTL_ASM (libintl_ngettext)
+       _INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2);
+#endif
+
+/* Similar to `dgettext' but select the plural form corresponding to the
+   number N.  */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_dngettext (const char *__domainname, const char *__msgid1,
+				const char *__msgid2, unsigned long int __n)
+       _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
+static inline char *dngettext (const char *__domainname, const char *__msgid1,
+			       const char *__msgid2, unsigned long int __n)
+{
+  return libintl_dngettext (__domainname, __msgid1, __msgid2, __n);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define dngettext libintl_dngettext
+#endif
+extern char *dngettext (const char *__domainname,
+			const char *__msgid1, const char *__msgid2,
+			unsigned long int __n)
+       _INTL_ASM (libintl_dngettext)
+       _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
+#endif
+
+/* Similar to `dcgettext' but select the plural form corresponding to the
+   number N.  */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_dcngettext (const char *__domainname,
+				 const char *__msgid1, const char *__msgid2,
+				 unsigned long int __n, int __category)
+       _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
+static inline char *dcngettext (const char *__domainname,
+				const char *__msgid1, const char *__msgid2,
+				unsigned long int __n, int __category)
+{
+  return libintl_dcngettext (__domainname, __msgid1, __msgid2, __n, __category);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define dcngettext libintl_dcngettext
+#endif
+extern char *dcngettext (const char *__domainname,
+			 const char *__msgid1, const char *__msgid2,
+			 unsigned long int __n, int __category)
+       _INTL_ASM (libintl_dcngettext)
+       _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3);
+#endif
+
+
+#ifndef IN_LIBGLOCALE
+
+/* Set the current default message catalog to DOMAINNAME.
+   If DOMAINNAME is null, return the current default.
+   If DOMAINNAME is "", reset to the default of "messages".  */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_textdomain (const char *__domainname);
+static inline char *textdomain (const char *__domainname)
+{
+  return libintl_textdomain (__domainname);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define textdomain libintl_textdomain
+#endif
+extern char *textdomain (const char *__domainname)
+       _INTL_ASM (libintl_textdomain);
+#endif
+
+/* Specify that the DOMAINNAME message catalog will be found
+   in DIRNAME rather than in the system locale data base.  */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_bindtextdomain (const char *__domainname,
+				     const char *__dirname);
+static inline char *bindtextdomain (const char *__domainname,
+				    const char *__dirname)
+{
+  return libintl_bindtextdomain (__domainname, __dirname);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define bindtextdomain libintl_bindtextdomain
+#endif
+extern char *bindtextdomain (const char *__domainname, const char *__dirname)
+       _INTL_ASM (libintl_bindtextdomain);
+#endif
+
+/* Specify the character encoding in which the messages from the
+   DOMAINNAME message catalog will be returned.  */
+#ifdef _INTL_REDIRECT_INLINE
+extern char *libintl_bind_textdomain_codeset (const char *__domainname,
+					      const char *__codeset);
+static inline char *bind_textdomain_codeset (const char *__domainname,
+					     const char *__codeset)
+{
+  return libintl_bind_textdomain_codeset (__domainname, __codeset);
+}
+#else
+#ifdef _INTL_REDIRECT_MACROS
+# define bind_textdomain_codeset libintl_bind_textdomain_codeset
+#endif
+extern char *bind_textdomain_codeset (const char *__domainname,
+				      const char *__codeset)
+       _INTL_ASM (libintl_bind_textdomain_codeset);
+#endif
+
+#endif /* IN_LIBGLOCALE */
+
+
+/* Support for format strings with positions in *printf(), following the
+   POSIX/XSI specification.
+   Note: These replacements for the *printf() functions are visible only
+   in source files that #include <libintl.h> or #include "gettext.h".
+   Packages that use *printf() in source files that don't refer to _()
+   or gettext() but for which the format string could be the return value
+   of _() or gettext() need to add this #include.  Oh well.  */
+
+#if !1
+
+#include <stdio.h>
+#include <stddef.h>
+
+/* Get va_list.  */
+#if __STDC__ || defined __cplusplus || defined _MSC_VER
+# include <stdarg.h>
+#else
+# include <varargs.h>
+#endif
+
+#undef fprintf
+#define fprintf libintl_fprintf
+extern int fprintf (FILE *, const char *, ...);
+#undef vfprintf
+#define vfprintf libintl_vfprintf
+extern int vfprintf (FILE *, const char *, va_list);
+
+#undef printf
+#if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__ || defined __MINGW32__
+/* Don't break __attribute__((format(printf,M,N))).
+   This redefinition is only possible because the libc in NetBSD, Cygwin,
+   mingw does not have a function __printf__.  */
+# define libintl_printf __printf__
+#endif
+#define printf libintl_printf
+extern int printf (const char *, ...);
+#undef vprintf
+#define vprintf libintl_vprintf
+extern int vprintf (const char *, va_list);
+
+#undef sprintf
+#define sprintf libintl_sprintf
+extern int sprintf (char *, const char *, ...);
+#undef vsprintf
+#define vsprintf libintl_vsprintf
+extern int vsprintf (char *, const char *, va_list);
+
+#if 1
+
+#undef snprintf
+#define snprintf libintl_snprintf
+extern int snprintf (char *, size_t, const char *, ...);
+#undef vsnprintf
+#define vsnprintf libintl_vsnprintf
+extern int vsnprintf (char *, size_t, const char *, va_list);
+
+#endif
+
+#if 1
+
+#undef asprintf
+#define asprintf libintl_asprintf
+extern int asprintf (char **, const char *, ...);
+#undef vasprintf
+#define vasprintf libintl_vasprintf
+extern int vasprintf (char **, const char *, va_list);
+
+#endif
+
+#if 0
+
+#undef fwprintf
+#define fwprintf libintl_fwprintf
+extern int fwprintf (FILE *, const wchar_t *, ...);
+#undef vfwprintf
+#define vfwprintf libintl_vfwprintf
+extern int vfwprintf (FILE *, const wchar_t *, va_list);
+
+#undef wprintf
+#define wprintf libintl_wprintf
+extern int wprintf (const wchar_t *, ...);
+#undef vwprintf
+#define vwprintf libintl_vwprintf
+extern int vwprintf (const wchar_t *, va_list);
+
+#undef swprintf
+#define swprintf libintl_swprintf
+extern int swprintf (wchar_t *, size_t, const wchar_t *, ...);
+#undef vswprintf
+#define vswprintf libintl_vswprintf
+extern int vswprintf (wchar_t *, size_t, const wchar_t *, va_list);
+
+#endif
+
+#endif
+
+
+/* Support for relocatable packages.  */
+
+/* Sets the original and the current installation prefix of the package.
+   Relocation simply replaces a pathname starting with the original prefix
+   by the corresponding pathname with the current prefix instead.  Both
+   prefixes should be directory names without trailing slash (i.e. use ""
+   instead of "/").  */
+#define libintl_set_relocation_prefix libintl_set_relocation_prefix
+extern void
+       libintl_set_relocation_prefix (const char *orig_prefix,
+				      const char *curr_prefix);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* libintl.h */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rdefines.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rdefines.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rdefines.h	(revision 2476)
@@ -0,0 +1,195 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1999-2016 The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* From 'Writing R Extensions:
+
+   'these are not kept up to date and are not recommended for new projects.'
+
+   As from R 3.3.0 they have been adjusted to work when R_NO_REMAP is defined.
+*/
+
+#ifndef R_DEFINES_H
+#define R_DEFINES_H
+
+#if !defined(R_R_H) && !defined(R_S_H)
+/* user forgot to include R.h or S.h */
+# include <R_ext/Memory.h>
+# include <R_ext/RS.h>
+#endif
+
+#include <Rinternals.h>
+
+/*
+ *  Much is from John Chambers' "Programming With Data".
+ *  Some of this is from Doug Bates.
+ *
+ *  It is presented here to support a joint programming style which
+ *  will work in both R and S.  In particular it helps with:
+ *
+ *    1. S/R <-> CORBA code.
+ *    2. S/R <-> Java Code.
+ *
+ *  And to hide some internal nastiness.
+ */
+
+
+/*
+ *  Added some macros defined in S.h from Splus 5.1
+ */
+
+#define NULL_USER_OBJECT	R_NilValue
+
+#define AS_LOGICAL(x)		Rf_coerceVector(x,LGLSXP)
+#define AS_INTEGER(x)		Rf_coerceVector(x,INTSXP)
+#define AS_NUMERIC(x)		Rf_coerceVector(x,REALSXP)
+#define AS_CHARACTER(x)		Rf_coerceVector(x,STRSXP)
+#define AS_COMPLEX(x)		Rf_coerceVector(x,CPLXSXP)
+#define AS_VECTOR(x)		Rf_coerceVector(x,VECSXP)
+#define AS_LIST(x)		Rf_coerceVector(x,VECSXP)
+#define AS_RAW(x)		Rf_coerceVector(x,RAWSXP)
+
+#ifdef USE_RINTERNALS
+// This is not documented to be supported, and may not be in future
+# define IS_LOGICAL(x)		isLogical(x)
+# define IS_INTEGER(x)		isInteger(x)
+# define IS_NUMERIC(x)		isReal(x)
+# define IS_CHARACTER(x)	isString(x)
+# define IS_COMPLEX(x)		isComplex(x)
+#else
+# define IS_LOGICAL(x)		Rf_isLogical(x)
+# define IS_INTEGER(x)		Rf_isInteger(x)
+# define IS_NUMERIC(x)		Rf_isReal(x)
+# define IS_CHARACTER(x)	Rf_isString(x)
+# define IS_COMPLEX(x)		Rf_isComplex(x)
+#endif
+/* NB: is this right?  It means atomic or VECSXP or EXPRSXP */
+#define IS_VECTOR(x)		Rf_isVector(x)
+/* And this cannot be right: isVectorList(x)? */
+#define IS_LIST(x)		IS_VECTOR(x)
+#define IS_RAW(x)		(TYPEOF(x) == RAWSXP)
+
+#define NEW_LOGICAL(n)		Rf_allocVector(LGLSXP,n)
+#define NEW_INTEGER(n)		Rf_allocVector(INTSXP,n)
+#define NEW_NUMERIC(n)		Rf_allocVector(REALSXP,n)
+#define NEW_CHARACTER(n)	Rf_allocVector(STRSXP,n)
+#define NEW_COMPLEX(n)		Rf_allocVector(CPLXSXP,n)
+#define NEW_LIST(n)		Rf_allocVector(VECSXP,n)
+#define NEW_STRING(n)		NEW_CHARACTER(n)
+#define NEW_RAW(n)		Rf_allocVector(RAWSXP,n)
+
+#define LOGICAL_POINTER(x)	LOGICAL(x)
+#define INTEGER_POINTER(x)	INTEGER(x)
+#define NUMERIC_POINTER(x)	REAL(x)
+#define CHARACTER_POINTER(x)	STRING_PTR(x)
+#define COMPLEX_POINTER(x)	COMPLEX(x)
+/* Use of VECTOR_PTR will fail unless USE_RINTERNALS is in use
+   This is probably unused.
+*/
+#define LIST_POINTER(x)		VECTOR_PTR(x)
+#define RAW_POINTER(x)		RAW(x)
+
+/* The following are not defined in `Programming with Data' but are
+   defined in S.h in Svr4 */
+
+/*
+ * Note that LIST_DATA and RAW_DATA are missing.
+ * This is consistent with Svr4.
+ */
+
+#define LOGICAL_DATA(x)		(LOGICAL(x))
+#define INTEGER_DATA(x)		(INTEGER(x))
+#define DOUBLE_DATA(x)		(REAL(x))
+#define NUMERIC_DATA(x)		(REAL(x))
+#define CHARACTER_DATA(x)	(STRING_PTR(x))
+#define COMPLEX_DATA(x)		(COMPLEX(x))
+/* Use of VECTOR_PTR will fail unless USE_RINTERNALS is in use
+   VECTOR_DATA seems unused, and RECURSIVE_DATA is used only in
+   the Expat part of XML.
+*/
+#define RECURSIVE_DATA(x)	(VECTOR_PTR(x))
+#define VECTOR_DATA(x)		(VECTOR_PTR(x))
+
+#define LOGICAL_VALUE(x)	Rf_asLogical(x)
+#define INTEGER_VALUE(x)	Rf_asInteger(x)
+#define NUMERIC_VALUE(x)	Rf_asReal(x)
+#define CHARACTER_VALUE(x)	CHAR(Rf_asChar(x))
+#define STRING_VALUE(x)		CHAR(Rf_asChar(x))
+#define LIST_VALUE(x)		Rf_error("the 'value' of a list object is not defined")
+#define RAW_VALUE(x)		Rf_error("the 'value' of a raw object is not defined")
+
+#define SET_ELEMENT(x, i, val)	SET_VECTOR_ELT(x, i, val)
+#define GET_ATTR(x,what)       	Rf_getAttrib(x, what)
+#define GET_CLASS(x)       	Rf_getAttrib(x, R_ClassSymbol)
+#define GET_DIM(x)       	Rf_getAttrib(x, R_DimSymbol)
+#define GET_DIMNAMES(x)       	Rf_getAttrib(x, R_DimNamesSymbol)
+#define GET_COLNAMES(x)       	Rf_GetColNames(x)
+#define GET_ROWNAMES(x)       	Rf_GetRowNames(x)
+#define GET_LEVELS(x)       	Rf_getAttrib(x, R_LevelsSymbol)
+#define GET_TSP(x)       	Rf_getAttrib(x, R_TspSymbol)
+#define GET_NAMES(x)		Rf_getAttrib(x, R_NamesSymbol)
+#define SET_ATTR(x, what, n)    Rf_setAttrib(x, what, n)
+#define SET_CLASS(x, n)     	Rf_setAttrib(x, R_ClassSymbol, n)
+#define SET_DIM(x, n)     	Rf_setAttrib(x, R_DimSymbol, n)
+#define SET_DIMNAMES(x, n)     	Rf_setAttrib(x, R_DimNamesSymbol, n)
+#define SET_LEVELS(x, l)       	Rf_setAttrib(x, R_LevelsSymbol, l)
+#define SET_NAMES(x, n)		Rf_setAttrib(x, R_NamesSymbol, n)
+/* These do not support long vectors */
+#define GET_LENGTH(x)		Rf_length(x)
+#define SET_LENGTH(x, n)	(x = Rf_lengthgets(x, n))
+
+#define GET_SLOT(x, what)       R_do_slot(x, what)
+#define SET_SLOT(x, what, value)  R_do_slot_assign(x, what, value)
+
+#define MAKE_CLASS(what)	R_do_MAKE_CLASS(what)
+/* NEW_OBJECT is recommended; NEW is for green book compatibility */
+#define NEW_OBJECT(class_def)	R_do_new_object(class_def)
+#define NEW(class_def)		R_do_new_object(class_def)
+
+#define s_object                SEXPREC
+#define S_EVALUATOR             /**/
+
+/* These conflict with definitions in R_ext/Boolean.h,
+   but spatstat relies on them in a C file */
+#ifdef __cplusplus
+# ifndef R_EXT_BOOLEAN_H_
+#  ifndef TRUE
+#   define TRUE 1
+#  endif
+#  ifndef FALSE
+#   define FALSE 0
+#  endif
+# endif
+#else
+#  ifndef TRUE
+#   define TRUE 1
+#  endif
+#  ifndef FALSE
+#   define FALSE 0
+#  endif
+#endif
+
+#define COPY_TO_USER_STRING(x)	mkChar(x)
+#define CREATE_STRING_VECTOR(x)	mkChar(x)
+
+#define CREATE_FUNCTION_CALL(name, argList) createFunctionCall(name, argList)
+
+#define EVAL(x)			eval(x,R_GlobalEnv)
+
+
+#endif
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/R.h	(revision 2476)
@@ -0,0 +1,104 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 2000-2016 The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+#ifndef R_R_H
+#define R_R_H
+
+#ifndef USING_R
+# define USING_R
+#endif
+
+#ifndef NO_C_HEADERS
+/* same as Rmath.h: needed for cospi etc */
+# ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+#  define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1
+# endif
+/* The C++ headers in Solaris Studio are strict C++98, and many 
+   packages fail because of not using e.g. std::round 
+   or using C99 functions such as snprintf. 
+*/
+# ifdef __SUNPRO_CC
+#  define DO_NOT_USE_CXX_HEADERS
+# endif
+# if defined(__cplusplus) && !defined(DO_NOT_USE_CXX_HEADERS)
+#  include <cstdlib>
+#  include <cstdio>
+#  include <climits>
+#  include <cmath>
+# else
+#  include <stdlib.h> /* Not used by R itself, but widely assumed in packages */
+#  include <stdio.h>  /* Used by ca 200 packages, but not in R itself */
+#  include <limits.h> /* for INT_MAX */
+#  include <math.h>
+# endif 
+/* 
+   math.h is also included by R_ext/Arith.h, except in C++ code
+   stddef.h (or cstddef) is included by R_ext/Memory.h
+   string.h (or cstring) is included by R_ext/RS.h
+*/
+# if defined(__sun)
+/* Solaris' stdlib.h includes a header which defines these (and more) */
+#  undef CS
+#  undef DO
+#  undef DS
+#  undef ES
+#  undef FS
+#  undef GS
+#  undef SO
+#  undef SS
+# endif
+#else
+#warning "use of NO_C_HEADERS is deprecated"
+#endif
+
+#include <Rconfig.h>
+#include <R_ext/Arith.h>      /* R_FINITE, ISNAN, ... */
+#include <R_ext/Boolean.h>    /* Rboolean type */
+#include <R_ext/Complex.h>    /* Rcomplex type */
+#include <R_ext/Constants.h>  /* PI, DOUBLE_EPS, etc */
+#include <R_ext/Error.h>      /* error and warning */
+#include <R_ext/Memory.h>     /* R_alloc and S_alloc */
+#include <R_ext/Print.h>      /* Rprintf etc */
+#include <R_ext/Random.h>     /* RNG interface */
+#include <R_ext/Utils.h>      /* sort routines et al */
+#include <R_ext/RS.h>
+/* for PROBLEM ... Calloc, Realloc, Free, Memcpy, F77_xxxx */
+
+
+typedef double Sfloat;
+typedef int Sint;
+#define SINT_MAX INT_MAX
+#define SINT_MIN INT_MIN
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void R_FlushConsole(void);
+/* always declared, but only usable under Win32 and Aqua */
+void R_ProcessEvents(void);
+#ifdef Win32
+void R_WaitEvent(void);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !R_R_H */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rinternals.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rinternals.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rinternals.h	(revision 2476)
@@ -0,0 +1,1407 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1995, 1996  Robert Gentleman and Ross Ihaka
+ *  Copyright (C) 1999-2016   The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* This file is installed and available to packages, but only a small
+   part of the contents is within the API.  See chapter 6 of 'Writing
+   R Extensions'.
+ */
+
+#ifndef R_INTERNALS_H_
+#define R_INTERNALS_H_
+
+// Support for NO_C_HEADERS added in R 3.3.0
+#ifdef __cplusplus
+# ifndef NO_C_HEADERS
+#  include <cstdio>
+#  include <climits>
+#  include <cstddef>
+# else
+#warning "use of NO_C_HEADERS is deprecated"
+# endif
+extern "C" {
+#else
+# ifndef NO_C_HEADERS
+#  include <stdio.h>
+#  include <limits.h> /* for INT_MAX */
+#  include <stddef.h> /* for ptrdiff_t */
+# else
+#warning "use of NO_C_HEADERS is deprecated"
+# endif
+#endif
+
+#include <R_ext/Arith.h>
+#include <R_ext/Boolean.h>
+#include <R_ext/Complex.h>
+#include <R_ext/Error.h>  // includes NORET macro
+#include <R_ext/Memory.h>
+#include <R_ext/Utils.h>
+#include <R_ext/Print.h>
+
+#include <R_ext/libextern.h>
+
+typedef unsigned char Rbyte;
+
+/* type for length of (standard, not long) vectors etc */
+typedef int R_len_t;
+#define R_LEN_T_MAX INT_MAX
+
+/* both config.h and Rconfig.h set SIZEOF_SIZE_T, but Rconfig.h is
+   skipped if config.h has already been included. */
+#ifndef R_CONFIG_H
+# include <Rconfig.h>
+#endif
+
+#if ( SIZEOF_SIZE_T > 4 )
+# define LONG_VECTOR_SUPPORT
+#endif
+
+#ifdef LONG_VECTOR_SUPPORT
+    typedef ptrdiff_t R_xlen_t;
+    typedef struct { R_xlen_t lv_length, lv_truelength; } R_long_vec_hdr_t;
+# define R_XLEN_T_MAX 4503599627370496
+# define R_SHORT_LEN_MAX 2147483647
+# define R_LONG_VEC_TOKEN -1
+#else
+    typedef int R_xlen_t;
+# define R_XLEN_T_MAX R_LEN_T_MAX
+#endif
+
+#ifndef TESTING_WRITE_BARRIER
+# define INLINE_PROTECT
+#endif
+
+/* Fundamental Data Types:  These are largely Lisp
+ * influenced structures, with the exception of LGLSXP,
+ * INTSXP, REALSXP, CPLXSXP and STRSXP which are the
+ * element types for S-like data objects.
+ *
+ *			--> TypeTable[] in ../main/util.c for  typeof()
+ */
+
+/*  These exact numeric values are seldom used, but they are, e.g., in
+ *  ../main/subassign.c, and they are serialized.
+*/
+#ifndef enum_SEXPTYPE
+/* NOT YET using enum:
+ *  1)	The SEXPREC struct below has 'SEXPTYPE type : 5'
+ *	(making FUNSXP and CLOSXP equivalent in there),
+ *	giving (-Wall only ?) warnings all over the place
+ * 2)	Many switch(type) { case ... } statements need a final `default:'
+ *	added in order to avoid warnings like [e.g. l.170 of ../main/util.c]
+ *	  "enumeration value `FUNSXP' not handled in switch"
+ */
+typedef unsigned int SEXPTYPE;
+
+#define NILSXP	     0	  /* nil = NULL */
+#define SYMSXP	     1	  /* symbols */
+#define LISTSXP	     2	  /* lists of dotted pairs */
+#define CLOSXP	     3	  /* closures */
+#define ENVSXP	     4	  /* environments */
+#define PROMSXP	     5	  /* promises: [un]evaluated closure arguments */
+#define LANGSXP	     6	  /* language constructs (special lists) */
+#define SPECIALSXP   7	  /* special forms */
+#define BUILTINSXP   8	  /* builtin non-special forms */
+#define CHARSXP	     9	  /* "scalar" string type (internal only)*/
+#define LGLSXP	    10	  /* logical vectors */
+/* 11 and 12 were factors and ordered factors in the 1990s */
+#define INTSXP	    13	  /* integer vectors */
+#define REALSXP	    14	  /* real variables */
+#define CPLXSXP	    15	  /* complex variables */
+#define STRSXP	    16	  /* string vectors */
+#define DOTSXP	    17	  /* dot-dot-dot object */
+#define ANYSXP	    18	  /* make "any" args work.
+			     Used in specifying types for symbol
+			     registration to mean anything is okay  */
+#define VECSXP	    19	  /* generic vectors */
+#define EXPRSXP	    20	  /* expressions vectors */
+#define BCODESXP    21    /* byte code */
+#define EXTPTRSXP   22    /* external pointer */
+#define WEAKREFSXP  23    /* weak reference */
+#define RAWSXP      24    /* raw bytes */
+#define S4SXP       25    /* S4, non-vector */
+
+/* used for detecting PROTECT issues in memory.c */
+#define NEWSXP      30    /* fresh node created in new page */
+#define FREESXP     31    /* node released by GC */
+
+#define FUNSXP      99    /* Closure or Builtin or Special */
+
+
+#else /* NOT YET */
+/*------ enum_SEXPTYPE ----- */
+typedef enum {
+    NILSXP	= 0,	/* nil = NULL */
+    SYMSXP	= 1,	/* symbols */
+    LISTSXP	= 2,	/* lists of dotted pairs */
+    CLOSXP	= 3,	/* closures */
+    ENVSXP	= 4,	/* environments */
+    PROMSXP	= 5,	/* promises: [un]evaluated closure arguments */
+    LANGSXP	= 6,	/* language constructs (special lists) */
+    SPECIALSXP	= 7,	/* special forms */
+    BUILTINSXP	= 8,	/* builtin non-special forms */
+    CHARSXP	= 9,	/* "scalar" string type (internal only)*/
+    LGLSXP	= 10,	/* logical vectors */
+    INTSXP	= 13,	/* integer vectors */
+    REALSXP	= 14,	/* real variables */
+    CPLXSXP	= 15,	/* complex variables */
+    STRSXP	= 16,	/* string vectors */
+    DOTSXP	= 17,	/* dot-dot-dot object */
+    ANYSXP	= 18,	/* make "any" args work */
+    VECSXP	= 19,	/* generic vectors */
+    EXPRSXP	= 20,	/* expressions vectors */
+    BCODESXP	= 21,	/* byte code */
+    EXTPTRSXP	= 22,	/* external pointer */
+    WEAKREFSXP	= 23,	/* weak reference */
+    RAWSXP	= 24,	/* raw bytes */
+    S4SXP	= 25,	/* S4 non-vector */
+
+    NEWSXP      = 30,   /* fresh node creaed in new page */
+    FREESXP     = 31,   /* node released by GC */
+
+    FUNSXP	= 99	/* Closure or Builtin */
+} SEXPTYPE;
+#endif
+
+/* These are also used with the write barrier on, in attrib.c and util.c */
+#define TYPE_BITS 5
+#define MAX_NUM_SEXPTYPE (1<<TYPE_BITS)
+
+// ======================= USE_RINTERNALS section
+#ifdef USE_RINTERNALS
+/* This is intended for use only within R itself.
+ * It defines internal structures that are otherwise only accessible
+ * via SEXP, and macros to replace many (but not all) of accessor functions
+ * (which are always defined).
+ */
+
+/* Flags */
+
+
+struct sxpinfo_struct {
+    SEXPTYPE type      :  TYPE_BITS;/* ==> (FUNSXP == 99) %% 2^5 == 3 == CLOSXP
+			     * -> warning: `type' is narrower than values
+			     *              of its type
+			     * when SEXPTYPE was an enum */
+    unsigned int obj   :  1;
+    unsigned int named :  2;
+    unsigned int gp    : 16;
+    unsigned int mark  :  1;
+    unsigned int debug :  1;
+    unsigned int trace :  1;  /* functions and memory tracing */
+    unsigned int spare :  1;  /* currently unused */
+    unsigned int gcgen :  1;  /* old generation number */
+    unsigned int gccls :  3;  /* node class */
+}; /*		    Tot: 32 */
+
+struct vecsxp_struct {
+    R_len_t	length;
+    R_len_t	truelength;
+};
+
+struct primsxp_struct {
+    int offset;
+};
+
+struct symsxp_struct {
+    struct SEXPREC *pname;
+    struct SEXPREC *value;
+    struct SEXPREC *internal;
+};
+
+struct listsxp_struct {
+    struct SEXPREC *carval;
+    struct SEXPREC *cdrval;
+    struct SEXPREC *tagval;
+};
+
+struct envsxp_struct {
+    struct SEXPREC *frame;
+    struct SEXPREC *enclos;
+    struct SEXPREC *hashtab;
+};
+
+struct closxp_struct {
+    struct SEXPREC *formals;
+    struct SEXPREC *body;
+    struct SEXPREC *env;
+};
+
+struct promsxp_struct {
+    struct SEXPREC *value;
+    struct SEXPREC *expr;
+    struct SEXPREC *env;
+};
+
+/* Every node must start with a set of sxpinfo flags and an attribute
+   field. Under the generational collector these are followed by the
+   fields used to maintain the collector's linked list structures. */
+
+/* Define SWITH_TO_REFCNT to use reference counting instead of the
+   'NAMED' mechanism. This uses the R-devel binary layout. The two
+   'named' field bits are used for the REFCNT, so REFCNTMAX is 3. */
+//#define SWITCH_TO_REFCNT
+
+#if defined(SWITCH_TO_REFCNT) && ! defined(COMPUTE_REFCNT_VALUES)
+# define COMPUTE_REFCNT_VALUES
+#endif
+#define REFCNTMAX (4 - 1)
+
+#define SEXPREC_HEADER \
+    struct sxpinfo_struct sxpinfo; \
+    struct SEXPREC *attrib; \
+    struct SEXPREC *gengc_next_node, *gengc_prev_node
+
+/* The standard node structure consists of a header followed by the
+   node data. */
+typedef struct SEXPREC {
+    SEXPREC_HEADER;
+    union {
+	struct primsxp_struct primsxp;
+	struct symsxp_struct symsxp;
+	struct listsxp_struct listsxp;
+	struct envsxp_struct envsxp;
+	struct closxp_struct closxp;
+	struct promsxp_struct promsxp;
+    } u;
+} SEXPREC, *SEXP;
+
+/* The generational collector uses a reduced version of SEXPREC as a
+   header in vector nodes.  The layout MUST be kept consistent with
+   the SEXPREC definition.  The standard SEXPREC takes up 7 words on
+   most hardware; this reduced version should take up only 6 words.
+   In addition to slightly reducing memory use, this can lead to more
+   favorable data alignment on 32-bit architectures like the Intel
+   Pentium III where odd word alignment of doubles is allowed but much
+   less efficient than even word alignment. */
+typedef struct VECTOR_SEXPREC {
+    SEXPREC_HEADER;
+    struct vecsxp_struct vecsxp;
+} VECTOR_SEXPREC, *VECSEXP;
+
+typedef union { VECTOR_SEXPREC s; double align; } SEXPREC_ALIGN;
+
+/* General Cons Cell Attributes */
+#define ATTRIB(x)	((x)->attrib)
+#define OBJECT(x)	((x)->sxpinfo.obj)
+#define MARK(x)		((x)->sxpinfo.mark)
+#define TYPEOF(x)	((x)->sxpinfo.type)
+#define NAMED(x)	((x)->sxpinfo.named)
+#define RTRACE(x)	((x)->sxpinfo.trace)
+#define LEVELS(x)	((x)->sxpinfo.gp)
+#define SET_OBJECT(x,v)	(((x)->sxpinfo.obj)=(v))
+#define SET_TYPEOF(x,v)	(((x)->sxpinfo.type)=(v))
+#define SET_NAMED(x,v)	(((x)->sxpinfo.named)=(v))
+#define SET_RTRACE(x,v)	(((x)->sxpinfo.trace)=(v))
+#define SETLEVELS(x,v)	(((x)->sxpinfo.gp)=((unsigned short)v))
+
+#if defined(COMPUTE_REFCNT_VALUES)
+# define REFCNT(x) ((x)->sxpinfo.named)
+# define TRACKREFS(x) (TYPEOF(x) == CLOSXP ? TRUE : ! (x)->sxpinfo.spare)
+#else
+# define REFCNT(x) 0
+# define TRACKREFS(x) FALSE
+#endif
+
+#ifdef SWITCH_TO_REFCNT
+# undef NAMED
+# undef SET_NAMED
+# define NAMED(x) REFCNT(x)
+# define SET_NAMED(x, v) do {} while (0)
+#endif
+
+/* S4 object bit, set by R_do_new_object for all new() calls */
+#define S4_OBJECT_MASK ((unsigned short)(1<<4))
+#define IS_S4_OBJECT(x) ((x)->sxpinfo.gp & S4_OBJECT_MASK)
+#define SET_S4_OBJECT(x) (((x)->sxpinfo.gp) |= S4_OBJECT_MASK)
+#define UNSET_S4_OBJECT(x) (((x)->sxpinfo.gp) &= ~S4_OBJECT_MASK)
+
+/* Vector Access Macros */
+#ifdef LONG_VECTOR_SUPPORT
+    R_len_t NORET R_BadLongVector(SEXP, const char *, int);
+# define IS_LONG_VEC(x) (SHORT_VEC_LENGTH(x) == R_LONG_VEC_TOKEN)
+# define SHORT_VEC_LENGTH(x) (((VECSEXP) (x))->vecsxp.length)
+# define SHORT_VEC_TRUELENGTH(x) (((VECSEXP) (x))->vecsxp.truelength)
+# define LONG_VEC_LENGTH(x) ((R_long_vec_hdr_t *) (x))[-1].lv_length
+# define LONG_VEC_TRUELENGTH(x) ((R_long_vec_hdr_t *) (x))[-1].lv_truelength
+# define XLENGTH(x) (IS_LONG_VEC(x) ? LONG_VEC_LENGTH(x) : SHORT_VEC_LENGTH(x))
+# define XTRUELENGTH(x)	(IS_LONG_VEC(x) ? LONG_VEC_TRUELENGTH(x) : SHORT_VEC_TRUELENGTH(x))
+# define LENGTH(x) (IS_LONG_VEC(x) ? R_BadLongVector(x, __FILE__, __LINE__) : SHORT_VEC_LENGTH(x))
+# define TRUELENGTH(x) (IS_LONG_VEC(x) ? R_BadLongVector(x, __FILE__, __LINE__) : SHORT_VEC_TRUELENGTH(x))
+# define SET_SHORT_VEC_LENGTH(x,v) (SHORT_VEC_LENGTH(x) = (v))
+# define SET_SHORT_VEC_TRUELENGTH(x,v) (SHORT_VEC_TRUELENGTH(x) = (v))
+# define SET_LONG_VEC_LENGTH(x,v) (LONG_VEC_LENGTH(x) = (v))
+# define SET_LONG_VEC_TRUELENGTH(x,v) (LONG_VEC_TRUELENGTH(x) = (v))
+# define SETLENGTH(x,v) do { \
+      SEXP sl__x__ = (x); \
+      R_xlen_t sl__v__ = (v); \
+      if (IS_LONG_VEC(sl__x__)) \
+	  SET_LONG_VEC_LENGTH(sl__x__,  sl__v__); \
+      else SET_SHORT_VEC_LENGTH(sl__x__, (R_len_t) sl__v__); \
+  } while (0)
+# define SET_TRUELENGTH(x,v) do { \
+      SEXP sl__x__ = (x); \
+      R_xlen_t sl__v__ = (v); \
+      if (IS_LONG_VEC(sl__x__)) \
+	  SET_LONG_VEC_TRUELENGTH(sl__x__, sl__v__); \
+      else SET_SHORT_VEC_TRUELENGTH(sl__x__, (R_len_t) sl__v__); \
+  } while (0)
+# define IS_SCALAR(x, type) (TYPEOF(x) == (type) && SHORT_VEC_LENGTH(x) == 1)
+#else
+# define SHORT_VEC_LENGTH(x) (((VECSEXP) (x))->vecsxp.length)
+# define LENGTH(x)	(((VECSEXP) (x))->vecsxp.length)
+# define TRUELENGTH(x)	(((VECSEXP) (x))->vecsxp.truelength)
+# define XLENGTH(x) LENGTH(x)
+# define XTRUELENGTH(x) TRUELENGTH(x)
+# define SETLENGTH(x,v)		((((VECSEXP) (x))->vecsxp.length)=(v))
+# define SET_TRUELENGTH(x,v)	((((VECSEXP) (x))->vecsxp.truelength)=(v))
+# define SET_SHORT_VEC_LENGTH SETLENGTH
+# define SET_SHORT_VEC_TRUELENGTH SET_TRUELENGTH
+# define IS_LONG_VEC(x) 0
+# define IS_SCALAR(x, type) (TYPEOF(x) == (type) && LENGTH(x) == 1)
+#endif
+
+/* Under the generational allocator the data for vector nodes comes
+   immediately after the node structure, so the data address is a
+   known offset from the node SEXP. */
+#define DATAPTR(x)	(((SEXPREC_ALIGN *) (x)) + 1)
+#define CHAR(x)		((const char *) DATAPTR(x))
+#define LOGICAL(x)	((int *) DATAPTR(x))
+#define INTEGER(x)	((int *) DATAPTR(x))
+#define RAW(x)		((Rbyte *) DATAPTR(x))
+#define COMPLEX(x)	((Rcomplex *) DATAPTR(x))
+#define REAL(x)		((double *) DATAPTR(x))
+#define STRING_ELT(x,i)	((SEXP *) DATAPTR(x))[i]
+#define VECTOR_ELT(x,i)	((SEXP *) DATAPTR(x))[i]
+#define STRING_PTR(x)	((SEXP *) DATAPTR(x))
+#define VECTOR_PTR(x)	((SEXP *) DATAPTR(x))
+
+/* List Access Macros */
+/* These also work for ... objects */
+#define LISTVAL(x)	((x)->u.listsxp)
+#define TAG(e)		((e)->u.listsxp.tagval)
+#define CAR(e)		((e)->u.listsxp.carval)
+#define CDR(e)		((e)->u.listsxp.cdrval)
+#define CAAR(e)		CAR(CAR(e))
+#define CDAR(e)		CDR(CAR(e))
+#define CADR(e)		CAR(CDR(e))
+#define CDDR(e)		CDR(CDR(e))
+#define CDDDR(e)	CDR(CDR(CDR(e)))
+#define CADDR(e)	CAR(CDR(CDR(e)))
+#define CADDDR(e)	CAR(CDR(CDR(CDR(e))))
+#define CAD4R(e)	CAR(CDR(CDR(CDR(CDR(e)))))
+#define MISSING_MASK	15 /* reserve 4 bits--only 2 uses now */
+#define MISSING(x)	((x)->sxpinfo.gp & MISSING_MASK)/* for closure calls */
+#define SET_MISSING(x,v) do { \
+  SEXP __x__ = (x); \
+  int __v__ = (v); \
+  int __other_flags__ = __x__->sxpinfo.gp & ~MISSING_MASK; \
+  __x__->sxpinfo.gp = __other_flags__ | __v__; \
+} while (0)
+
+/* Closure Access Macros */
+#define FORMALS(x)	((x)->u.closxp.formals)
+#define BODY(x)		((x)->u.closxp.body)
+#define CLOENV(x)	((x)->u.closxp.env)
+#define RDEBUG(x)	((x)->sxpinfo.debug)
+#define SET_RDEBUG(x,v)	(((x)->sxpinfo.debug)=(v))
+#define RSTEP(x)	((x)->sxpinfo.spare)
+#define SET_RSTEP(x,v)	(((x)->sxpinfo.spare)=(v))
+
+/* Symbol Access Macros */
+#define PRINTNAME(x)	((x)->u.symsxp.pname)
+#define SYMVALUE(x)	((x)->u.symsxp.value)
+#define INTERNAL(x)	((x)->u.symsxp.internal)
+#define DDVAL_MASK	1
+#define DDVAL(x)	((x)->sxpinfo.gp & DDVAL_MASK) /* for ..1, ..2 etc */
+#define SET_DDVAL_BIT(x) (((x)->sxpinfo.gp) |= DDVAL_MASK)
+#define UNSET_DDVAL_BIT(x) (((x)->sxpinfo.gp) &= ~DDVAL_MASK)
+#define SET_DDVAL(x,v) ((v) ? SET_DDVAL_BIT(x) : UNSET_DDVAL_BIT(x)) /* for ..1, ..2 etc */
+
+/* Environment Access Macros */
+#define FRAME(x)	((x)->u.envsxp.frame)
+#define ENCLOS(x)	((x)->u.envsxp.enclos)
+#define HASHTAB(x)	((x)->u.envsxp.hashtab)
+#define ENVFLAGS(x)	((x)->sxpinfo.gp)	/* for environments */
+#define SET_ENVFLAGS(x,v)	(((x)->sxpinfo.gp)=(v))
+
+#else /* not USE_RINTERNALS */
+// ======================= not USE_RINTERNALS section
+
+typedef struct SEXPREC *SEXP;
+
+#define CHAR(x)		R_CHAR(x)
+const char *(R_CHAR)(SEXP x);
+
+/* Various tests with macro versions in the second USE_RINTERNALS section */
+Rboolean (Rf_isNull)(SEXP s);
+Rboolean (Rf_isSymbol)(SEXP s);
+Rboolean (Rf_isLogical)(SEXP s);
+Rboolean (Rf_isReal)(SEXP s);
+Rboolean (Rf_isComplex)(SEXP s);
+Rboolean (Rf_isExpression)(SEXP s);
+Rboolean (Rf_isEnvironment)(SEXP s);
+Rboolean (Rf_isString)(SEXP s);
+Rboolean (Rf_isObject)(SEXP s);
+
+# define IS_SCALAR(x, type) (TYPEOF(x) == (type) && XLENGTH(x) == 1)
+#endif /* USE_RINTERNALS */
+
+#define IS_SIMPLE_SCALAR(x, type) \
+    (IS_SCALAR(x, type) && ATTRIB(x) == R_NilValue)
+
+#define NAMEDMAX 2
+#define INCREMENT_NAMED(x) do {				\
+	SEXP __x__ = (x);				\
+	if (NAMED(__x__) != NAMEDMAX)			\
+	    SET_NAMED(__x__, NAMED(__x__) + 1);		\
+    } while (0)
+
+#if defined(COMPUTE_REFCNT_VALUES)
+# define SET_REFCNT(x,v) (REFCNT(x) = (v))
+# if defined(EXTRA_REFCNT_FIELDS)
+#  define SET_TRACKREFS(x,v) (TRACKREFS(x) = (v))
+# else
+#  define SET_TRACKREFS(x,v) ((x)->sxpinfo.spare = ! (v))
+# endif
+# define DECREMENT_REFCNT(x) do {					\
+	SEXP drc__x__ = (x);						\
+	if (REFCNT(drc__x__) > 0 && REFCNT(drc__x__) < REFCNTMAX)	\
+	    SET_REFCNT(drc__x__, REFCNT(drc__x__) - 1);			\
+    } while (0)
+# define INCREMENT_REFCNT(x) do {			      \
+	SEXP irc__x__ = (x);				      \
+	if (REFCNT(irc__x__) < REFCNTMAX)		      \
+	    SET_REFCNT(irc__x__, REFCNT(irc__x__) + 1);	      \
+    } while (0)
+#else
+# define SET_REFCNT(x,v) do {} while(0)
+# define SET_TRACKREFS(x,v) do {} while(0)
+# define DECREMENT_REFCNT(x) do {} while(0)
+# define INCREMENT_REFCNT(x) do {} while(0)
+#endif
+
+#define ENABLE_REFCNT(x) SET_TRACKREFS(x, TRUE)
+#define DISABLE_REFCNT(x) SET_TRACKREFS(x, FALSE)
+
+/* Macros for some common idioms. */
+#ifdef SWITCH_TO_REFCNT
+# define MAYBE_SHARED(x) (REFCNT(x) > 1)
+# define NO_REFERENCES(x) (REFCNT(x) == 0)
+# define MARK_NOT_MUTABLE(x) SET_REFCNT(x, REFCNTMAX)
+#else
+# define MAYBE_SHARED(x) (NAMED(x) > 1)
+# define NO_REFERENCES(x) (NAMED(x) == 0)
+# define MARK_NOT_MUTABLE(x) SET_NAMED(x, NAMEDMAX)
+#endif
+#define MAYBE_REFERENCED(x) (! NO_REFERENCES(x))
+#define NOT_SHARED(x) (! MAYBE_SHARED(x))
+
+/* Complex assignment support */
+/* temporary definition that will need to be refined to distinguish
+   getter from setter calls */
+#define IS_GETTER_CALL(call) (CADR(call) == R_TmpvalSymbol)
+
+/* Accessor functions.  Many are declared using () to avoid the macro
+   definitions in the USE_RINTERNALS section.
+   The function STRING_ELT is used as an argument to arrayAssign even
+   if the macro version is in use.
+*/
+
+/* General Cons Cell Attributes */
+SEXP (ATTRIB)(SEXP x);
+int  (OBJECT)(SEXP x);
+int  (MARK)(SEXP x);
+int  (TYPEOF)(SEXP x);
+int  (NAMED)(SEXP x);
+int  (REFCNT)(SEXP x);
+void (SET_OBJECT)(SEXP x, int v);
+void (SET_TYPEOF)(SEXP x, int v);
+void (SET_NAMED)(SEXP x, int v);
+void SET_ATTRIB(SEXP x, SEXP v);
+void DUPLICATE_ATTRIB(SEXP to, SEXP from);
+void SHALLOW_DUPLICATE_ATTRIB(SEXP to, SEXP from);
+
+/* S4 object testing */
+int (IS_S4_OBJECT)(SEXP x);
+void (SET_S4_OBJECT)(SEXP x);
+void (UNSET_S4_OBJECT)(SEXP x);
+
+/* Vector Access Functions */
+int  (LENGTH)(SEXP x);
+int  (TRUELENGTH)(SEXP x);
+void (SETLENGTH)(SEXP x, int v);
+void (SET_TRUELENGTH)(SEXP x, int v);
+R_xlen_t  (XLENGTH)(SEXP x);
+R_xlen_t  (XTRUELENGTH)(SEXP x);
+int  (IS_LONG_VEC)(SEXP x);
+int  (LEVELS)(SEXP x);
+int  (SETLEVELS)(SEXP x, int v);
+
+int  *(LOGICAL)(SEXP x);
+int  *(INTEGER)(SEXP x);
+Rbyte *(RAW)(SEXP x);
+double *(REAL)(SEXP x);
+Rcomplex *(COMPLEX)(SEXP x);
+SEXP (STRING_ELT)(SEXP x, R_xlen_t i);
+SEXP (VECTOR_ELT)(SEXP x, R_xlen_t i);
+void SET_STRING_ELT(SEXP x, R_xlen_t i, SEXP v);
+SEXP SET_VECTOR_ELT(SEXP x, R_xlen_t i, SEXP v);
+SEXP *(STRING_PTR)(SEXP x);
+SEXP * NORET (VECTOR_PTR)(SEXP x);
+
+/* List Access Functions */
+/* These also work for ... objects */
+#define CONS(a, b)	cons((a), (b))		/* data lists */
+#define LCONS(a, b)	lcons((a), (b))		/* language lists */
+SEXP (TAG)(SEXP e);
+SEXP (CAR)(SEXP e);
+SEXP (CDR)(SEXP e);
+SEXP (CAAR)(SEXP e);
+SEXP (CDAR)(SEXP e);
+SEXP (CADR)(SEXP e);
+SEXP (CDDR)(SEXP e);
+SEXP (CDDDR)(SEXP e);
+SEXP (CADDR)(SEXP e);
+SEXP (CADDDR)(SEXP e);
+SEXP (CAD4R)(SEXP e);
+int  (MISSING)(SEXP x);
+void (SET_MISSING)(SEXP x, int v);
+void SET_TAG(SEXP x, SEXP y);
+SEXP SETCAR(SEXP x, SEXP y);
+SEXP SETCDR(SEXP x, SEXP y);
+SEXP SETCADR(SEXP x, SEXP y);
+SEXP SETCADDR(SEXP x, SEXP y);
+SEXP SETCADDDR(SEXP x, SEXP y);
+SEXP SETCAD4R(SEXP e, SEXP y);
+
+SEXP CONS_NR(SEXP a, SEXP b);
+
+/* Closure Access Functions */
+SEXP (FORMALS)(SEXP x);
+SEXP (BODY)(SEXP x);
+SEXP (CLOENV)(SEXP x);
+int  (RDEBUG)(SEXP x);
+int  (RSTEP)(SEXP x);
+int  (RTRACE)(SEXP x);
+void (SET_RDEBUG)(SEXP x, int v);
+void (SET_RSTEP)(SEXP x, int v);
+void (SET_RTRACE)(SEXP x, int v);
+void SET_FORMALS(SEXP x, SEXP v);
+void SET_BODY(SEXP x, SEXP v);
+void SET_CLOENV(SEXP x, SEXP v);
+
+/* Symbol Access Functions */
+SEXP (PRINTNAME)(SEXP x);
+SEXP (SYMVALUE)(SEXP x);
+SEXP (INTERNAL)(SEXP x);
+int  (DDVAL)(SEXP x);
+void (SET_DDVAL)(SEXP x, int v);
+void SET_PRINTNAME(SEXP x, SEXP v);
+void SET_SYMVALUE(SEXP x, SEXP v);
+void SET_INTERNAL(SEXP x, SEXP v);
+
+/* Environment Access Functions */
+SEXP (FRAME)(SEXP x);
+SEXP (ENCLOS)(SEXP x);
+SEXP (HASHTAB)(SEXP x);
+int  (ENVFLAGS)(SEXP x);
+void (SET_ENVFLAGS)(SEXP x, int v);
+void SET_FRAME(SEXP x, SEXP v);
+void SET_ENCLOS(SEXP x, SEXP v);
+void SET_HASHTAB(SEXP x, SEXP v);
+
+/* Promise Access Functions */
+/* First five have macro versions in Defn.h */
+SEXP (PRCODE)(SEXP x);
+SEXP (PRENV)(SEXP x);
+SEXP (PRVALUE)(SEXP x);
+int  (PRSEEN)(SEXP x);
+void (SET_PRSEEN)(SEXP x, int v);
+void SET_PRENV(SEXP x, SEXP v);
+void SET_PRVALUE(SEXP x, SEXP v);
+void SET_PRCODE(SEXP x, SEXP v);
+void SET_PRSEEN(SEXP x, int v);
+
+/* Hashing Functions */
+/* There are macro versions in Defn.h */
+int  (HASHASH)(SEXP x);
+int  (HASHVALUE)(SEXP x);
+void (SET_HASHASH)(SEXP x, int v);
+void (SET_HASHVALUE)(SEXP x, int v);
+
+
+/* External pointer access macros */
+#define EXTPTR_PTR(x)	CAR(x)
+#define EXTPTR_PROT(x)	CDR(x)
+#define EXTPTR_TAG(x)	TAG(x)
+
+/* Bytecode access macros */
+#define BCODE_CODE(x)	CAR(x)
+#define BCODE_CONSTS(x) CDR(x)
+#define BCODE_EXPR(x)	TAG(x)
+#define isByteCode(x)	(TYPEOF(x)==BCODESXP)
+
+/* Pointer Protection and Unprotection */
+#define PROTECT(s)	Rf_protect(s)
+#define UNPROTECT(n)	Rf_unprotect(n)
+#define UNPROTECT_PTR(s)	Rf_unprotect_ptr(s)
+
+/* We sometimes need to coerce a protected value and place the new
+   coerced value under protection.  For these cases PROTECT_WITH_INDEX
+   saves an index of the protection location that can be used to
+   replace the protected value using REPROTECT. */
+typedef int PROTECT_INDEX;
+#define PROTECT_WITH_INDEX(x,i) R_ProtectWithIndex(x,i)
+#define REPROTECT(x,i) R_Reprotect(x,i)
+
+/* Evaluation Environment */
+LibExtern SEXP	R_GlobalEnv;	    /* The "global" environment */
+
+LibExtern SEXP  R_EmptyEnv;	    /* An empty environment at the root of the
+				    	environment tree */
+LibExtern SEXP  R_BaseEnv;	    /* The base environment; formerly R_NilValue */
+LibExtern SEXP	R_BaseNamespace;    /* The (fake) namespace for base */
+LibExtern SEXP	R_NamespaceRegistry;/* Registry for registered namespaces */
+
+LibExtern SEXP	R_Srcref;           /* Current srcref, for debuggers */
+
+/* Special Values */
+LibExtern SEXP	R_NilValue;	    /* The nil object */
+LibExtern SEXP	R_UnboundValue;	    /* Unbound marker */
+LibExtern SEXP	R_MissingArg;	    /* Missing argument marker */
+#ifdef __MAIN__
+attribute_hidden
+#else
+extern
+#endif
+SEXP	R_RestartToken;     /* Marker for restarted function calls */
+
+/* Symbol Table Shortcuts */
+LibExtern SEXP	R_baseSymbol; // <-- backcompatible version of:
+LibExtern SEXP	R_BaseSymbol;	// "base"
+LibExtern SEXP	R_BraceSymbol;	    /* "{" */
+LibExtern SEXP	R_Bracket2Symbol;   /* "[[" */
+LibExtern SEXP	R_BracketSymbol;    /* "[" */
+LibExtern SEXP	R_ClassSymbol;	    /* "class" */
+LibExtern SEXP	R_DeviceSymbol;	    /* ".Device" */
+LibExtern SEXP	R_DimNamesSymbol;   /* "dimnames" */
+LibExtern SEXP	R_DimSymbol;	    /* "dim" */
+LibExtern SEXP	R_DollarSymbol;	    /* "$" */
+LibExtern SEXP	R_DotsSymbol;	    /* "..." */
+LibExtern SEXP	R_DoubleColonSymbol;// "::"
+LibExtern SEXP	R_DropSymbol;	    /* "drop" */
+LibExtern SEXP	R_LastvalueSymbol;  /* ".Last.value" */
+LibExtern SEXP	R_LevelsSymbol;	    /* "levels" */
+LibExtern SEXP	R_ModeSymbol;	    /* "mode" */
+LibExtern SEXP	R_NaRmSymbol;	    /* "na.rm" */
+LibExtern SEXP	R_NameSymbol;	    /* "name" */
+LibExtern SEXP	R_NamesSymbol;	    /* "names" */
+LibExtern SEXP	R_NamespaceEnvSymbol;// ".__NAMESPACE__."
+LibExtern SEXP	R_PackageSymbol;    /* "package" */
+LibExtern SEXP	R_PreviousSymbol;   /* "previous" */
+LibExtern SEXP	R_QuoteSymbol;	    /* "quote" */
+LibExtern SEXP	R_RowNamesSymbol;   /* "row.names" */
+LibExtern SEXP	R_SeedsSymbol;	    /* ".Random.seed" */
+LibExtern SEXP	R_SortListSymbol;   /* "sort.list" */
+LibExtern SEXP	R_SourceSymbol;	    /* "source" */
+LibExtern SEXP	R_SpecSymbol;	// "spec"
+LibExtern SEXP	R_TripleColonSymbol;// ":::"
+LibExtern SEXP	R_TspSymbol;	    /* "tsp" */
+
+LibExtern SEXP  R_dot_defined;      /* ".defined" */
+LibExtern SEXP  R_dot_Method;       /* ".Method" */
+LibExtern SEXP	R_dot_packageName;// ".packageName"
+LibExtern SEXP  R_dot_target;       /* ".target" */
+LibExtern SEXP  R_dot_Generic;      /* ".Generic" */
+
+/* Missing Values - others from Arith.h */
+#define NA_STRING	R_NaString
+LibExtern SEXP	R_NaString;	    /* NA_STRING as a CHARSXP */
+LibExtern SEXP	R_BlankString;	    /* "" as a CHARSXP */
+LibExtern SEXP	R_BlankScalarString;	    /* "" as a STRSXP */
+
+/* srcref related functions */
+SEXP R_GetCurrentSrcref(int);
+SEXP R_GetSrcFilename(SEXP);
+
+/*--- FUNCTIONS ------------------------------------------------------ */
+
+/* Type Coercions of all kinds */
+
+SEXP Rf_asChar(SEXP);
+SEXP Rf_coerceVector(SEXP, SEXPTYPE);
+SEXP Rf_PairToVectorList(SEXP x);
+SEXP Rf_VectorToPairList(SEXP x);
+SEXP Rf_asCharacterFactor(SEXP x);
+int Rf_asLogical(SEXP x);
+int Rf_asInteger(SEXP x);
+double Rf_asReal(SEXP x);
+Rcomplex Rf_asComplex(SEXP x);
+
+
+#ifndef R_ALLOCATOR_TYPE
+#define R_ALLOCATOR_TYPE
+typedef struct R_allocator R_allocator_t;
+#endif
+
+/* Other Internally Used Functions, excluding those which are inline-able*/
+
+char * Rf_acopy_string(const char *);
+void Rf_addMissingVarsToNewEnv(SEXP, SEXP);
+SEXP Rf_alloc3DArray(SEXPTYPE, int, int, int);
+SEXP Rf_allocArray(SEXPTYPE, SEXP);
+SEXP Rf_allocFormalsList2(SEXP sym1, SEXP sym2);
+SEXP Rf_allocFormalsList3(SEXP sym1, SEXP sym2, SEXP sym3);
+SEXP Rf_allocFormalsList4(SEXP sym1, SEXP sym2, SEXP sym3, SEXP sym4);
+SEXP Rf_allocFormalsList5(SEXP sym1, SEXP sym2, SEXP sym3, SEXP sym4, SEXP sym5);
+SEXP Rf_allocFormalsList6(SEXP sym1, SEXP sym2, SEXP sym3, SEXP sym4, SEXP sym5, SEXP sym6);
+SEXP Rf_allocMatrix(SEXPTYPE, int, int);
+SEXP Rf_allocList(int);
+SEXP Rf_allocS4Object(void);
+SEXP Rf_allocSExp(SEXPTYPE);
+SEXP Rf_allocVector3(SEXPTYPE, R_xlen_t, R_allocator_t*);
+R_xlen_t Rf_any_duplicated(SEXP x, Rboolean from_last);
+R_xlen_t Rf_any_duplicated3(SEXP x, SEXP incomp, Rboolean from_last);
+SEXP Rf_applyClosure(SEXP, SEXP, SEXP, SEXP, SEXP);
+SEXP Rf_arraySubscript(int, SEXP, SEXP, SEXP (*)(SEXP,SEXP),
+                       SEXP (*)(SEXP, int), SEXP);
+SEXP Rf_classgets(SEXP, SEXP);
+SEXP Rf_cons(SEXP, SEXP);
+void Rf_copyMatrix(SEXP, SEXP, Rboolean);
+void Rf_copyListMatrix(SEXP, SEXP, Rboolean);
+void Rf_copyMostAttrib(SEXP, SEXP);
+void Rf_copyVector(SEXP, SEXP);
+int Rf_countContexts(int, int);
+SEXP Rf_CreateTag(SEXP);
+void Rf_defineVar(SEXP, SEXP, SEXP);
+SEXP Rf_dimgets(SEXP, SEXP);
+SEXP Rf_dimnamesgets(SEXP, SEXP);
+SEXP Rf_DropDims(SEXP);
+SEXP Rf_duplicate(SEXP);
+SEXP Rf_shallow_duplicate(SEXP);
+SEXP Rf_lazy_duplicate(SEXP);
+/* the next really should not be here and is also in Defn.h */
+SEXP Rf_duplicated(SEXP, Rboolean);
+Rboolean R_envHasNoSpecialSymbols(SEXP);
+SEXP Rf_eval(SEXP, SEXP);
+SEXP Rf_findFun(SEXP, SEXP);
+SEXP Rf_findVar(SEXP, SEXP);
+SEXP Rf_findVarInFrame(SEXP, SEXP);
+SEXP Rf_findVarInFrame3(SEXP, SEXP, Rboolean);
+SEXP Rf_getAttrib(SEXP, SEXP);
+SEXP Rf_GetArrayDimnames(SEXP);
+SEXP Rf_GetColNames(SEXP);
+void Rf_GetMatrixDimnames(SEXP, SEXP*, SEXP*, const char**, const char**);
+SEXP Rf_GetOption(SEXP, SEXP); /* pre-2.13.0 compatibility */
+SEXP Rf_GetOption1(SEXP);
+int Rf_GetOptionDigits(void);
+int Rf_GetOptionWidth(void);
+SEXP Rf_GetRowNames(SEXP);
+void Rf_gsetVar(SEXP, SEXP, SEXP);
+SEXP Rf_install(const char *);
+SEXP Rf_installChar(SEXP);
+SEXP Rf_installDDVAL(int i);
+SEXP Rf_installS3Signature(const char *, const char *);
+Rboolean Rf_isFree(SEXP);
+Rboolean Rf_isOrdered(SEXP);
+Rboolean Rf_isUnmodifiedSpecSym(SEXP sym, SEXP env);
+Rboolean Rf_isUnordered(SEXP);
+Rboolean Rf_isUnsorted(SEXP, Rboolean);
+SEXP Rf_lengthgets(SEXP, R_len_t);
+SEXP Rf_xlengthgets(SEXP, R_xlen_t);
+SEXP R_lsInternal(SEXP, Rboolean);
+SEXP R_lsInternal3(SEXP, Rboolean, Rboolean);
+SEXP Rf_match(SEXP, SEXP, int);
+SEXP Rf_matchE(SEXP, SEXP, int, SEXP);
+SEXP Rf_namesgets(SEXP, SEXP);
+SEXP Rf_mkChar(const char *);
+SEXP Rf_mkCharLen(const char *, int);
+Rboolean Rf_NonNullStringMatch(SEXP, SEXP);
+int Rf_ncols(SEXP);
+int Rf_nrows(SEXP);
+SEXP Rf_nthcdr(SEXP, int);
+
+// ../main/character.c :
+typedef enum {Bytes, Chars, Width} nchar_type;
+int R_nchar(SEXP string, nchar_type type_,
+	    Rboolean allowNA, Rboolean keepNA, const char* msg_name);
+
+Rboolean Rf_pmatch(SEXP, SEXP, Rboolean);
+Rboolean Rf_psmatch(const char *, const char *, Rboolean);
+void Rf_PrintValue(SEXP);
+#ifndef INLINE_PROTECT
+SEXP Rf_protect(SEXP);
+#endif
+void Rf_readS3VarsFromFrame(SEXP, SEXP*, SEXP*, SEXP*, SEXP*, SEXP*, SEXP*);
+SEXP Rf_setAttrib(SEXP, SEXP, SEXP);
+void Rf_setSVector(SEXP*, int, SEXP);
+void Rf_setVar(SEXP, SEXP, SEXP);
+SEXP Rf_stringSuffix(SEXP, int);
+SEXPTYPE Rf_str2type(const char *);
+Rboolean Rf_StringBlank(SEXP);
+SEXP Rf_substitute(SEXP,SEXP);
+const char * Rf_translateChar(SEXP);
+const char * Rf_translateChar0(SEXP);
+const char * Rf_translateCharUTF8(SEXP);
+const char * Rf_type2char(SEXPTYPE);
+SEXP Rf_type2rstr(SEXPTYPE);
+SEXP Rf_type2str(SEXPTYPE);
+SEXP Rf_type2str_nowarn(SEXPTYPE);
+#ifndef INLINE_PROTECT
+void Rf_unprotect(int);
+#endif
+void Rf_unprotect_ptr(SEXP);
+
+void NORET R_signal_protect_error(void);
+void NORET R_signal_unprotect_error(void);
+void NORET R_signal_reprotect_error(PROTECT_INDEX i);
+
+#ifndef INLINE_PROTECT
+void R_ProtectWithIndex(SEXP, PROTECT_INDEX *);
+void R_Reprotect(SEXP, PROTECT_INDEX);
+#endif
+SEXP R_tryEval(SEXP, SEXP, int *);
+SEXP R_tryEvalSilent(SEXP, SEXP, int *);
+const char *R_curErrorBuf();
+
+Rboolean Rf_isS4(SEXP);
+SEXP Rf_asS4(SEXP, Rboolean, int);
+SEXP Rf_S3Class(SEXP);
+int Rf_isBasicClass(const char *);
+
+Rboolean R_cycle_detected(SEXP s, SEXP child);
+
+typedef enum {
+    CE_NATIVE = 0,
+    CE_UTF8   = 1,
+    CE_LATIN1 = 2,
+    CE_BYTES  = 3,
+    CE_SYMBOL = 5,
+    CE_ANY    =99
+} cetype_t;
+
+cetype_t Rf_getCharCE(SEXP);
+SEXP Rf_mkCharCE(const char *, cetype_t);
+SEXP Rf_mkCharLenCE(const char *, int, cetype_t);
+const char *Rf_reEnc(const char *x, cetype_t ce_in, cetype_t ce_out, int subst);
+
+				/* return(.) NOT reached : for -Wall */
+#define error_return(msg)	{ Rf_error(msg);	   return R_NilValue; }
+#define errorcall_return(cl,msg){ Rf_errorcall(cl, msg);   return R_NilValue; }
+
+#ifdef __MAIN__
+#undef extern
+#undef LibExtern
+#endif
+
+/* Calling a function with arguments evaluated */
+SEXP R_forceAndCall(SEXP e, int n, SEXP rho);
+
+/* External pointer interface */
+SEXP R_MakeExternalPtr(void *p, SEXP tag, SEXP prot);
+void *R_ExternalPtrAddr(SEXP s);
+SEXP R_ExternalPtrTag(SEXP s);
+SEXP R_ExternalPtrProtected(SEXP s);
+void R_ClearExternalPtr(SEXP s);
+void R_SetExternalPtrAddr(SEXP s, void *p);
+void R_SetExternalPtrTag(SEXP s, SEXP tag);
+void R_SetExternalPtrProtected(SEXP s, SEXP p);
+
+/* Finalization interface */
+typedef void (*R_CFinalizer_t)(SEXP);
+void R_RegisterFinalizer(SEXP s, SEXP fun);
+void R_RegisterCFinalizer(SEXP s, R_CFinalizer_t fun);
+void R_RegisterFinalizerEx(SEXP s, SEXP fun, Rboolean onexit);
+void R_RegisterCFinalizerEx(SEXP s, R_CFinalizer_t fun, Rboolean onexit);
+void R_RunPendingFinalizers(void);
+
+/* Weak reference interface */
+SEXP R_MakeWeakRef(SEXP key, SEXP val, SEXP fin, Rboolean onexit);
+SEXP R_MakeWeakRefC(SEXP key, SEXP val, R_CFinalizer_t fin, Rboolean onexit);
+SEXP R_WeakRefKey(SEXP w);
+SEXP R_WeakRefValue(SEXP w);
+void R_RunWeakRefFinalizer(SEXP w);
+
+SEXP R_PromiseExpr(SEXP);
+SEXP R_ClosureExpr(SEXP);
+void R_initialize_bcode(void);
+SEXP R_bcEncode(SEXP);
+SEXP R_bcDecode(SEXP);
+#define PREXPR(e) R_PromiseExpr(e)
+#define BODY_EXPR(e) R_ClosureExpr(e)
+
+/* Protected evaluation */
+Rboolean R_ToplevelExec(void (*fun)(void *), void *data);
+SEXP R_ExecWithCleanup(SEXP (*fun)(void *), void *data,
+		       void (*cleanfun)(void *), void *cleandata);
+
+/* Environment and Binding Features */
+void R_RestoreHashCount(SEXP rho);
+Rboolean R_IsPackageEnv(SEXP rho);
+SEXP R_PackageEnvName(SEXP rho);
+SEXP R_FindPackageEnv(SEXP info);
+Rboolean R_IsNamespaceEnv(SEXP rho);
+SEXP R_NamespaceEnvSpec(SEXP rho);
+SEXP R_FindNamespace(SEXP info);
+void R_LockEnvironment(SEXP env, Rboolean bindings);
+Rboolean R_EnvironmentIsLocked(SEXP env);
+void R_LockBinding(SEXP sym, SEXP env);
+void R_unLockBinding(SEXP sym, SEXP env);
+void R_MakeActiveBinding(SEXP sym, SEXP fun, SEXP env);
+Rboolean R_BindingIsLocked(SEXP sym, SEXP env);
+Rboolean R_BindingIsActive(SEXP sym, SEXP env);
+Rboolean R_HasFancyBindings(SEXP rho);
+
+
+/* ../main/errors.c : */
+/* needed for R_load/savehistory handling in front ends */
+#if defined(__GNUC__) && __GNUC__ >= 3
+void Rf_errorcall(SEXP, const char *, ...) __attribute__((noreturn));
+#else
+void Rf_errorcall(SEXP, const char *, ...);
+#endif
+void Rf_warningcall(SEXP, const char *, ...);
+void Rf_warningcall_immediate(SEXP, const char *, ...);
+
+/* Save/Load Interface */
+#define R_XDR_DOUBLE_SIZE 8
+#define R_XDR_INTEGER_SIZE 4
+
+void R_XDREncodeDouble(double d, void *buf);
+double R_XDRDecodeDouble(void *buf);
+void R_XDREncodeInteger(int i, void *buf);
+int R_XDRDecodeInteger(void *buf);
+
+typedef void *R_pstream_data_t;
+
+typedef enum {
+    R_pstream_any_format,
+    R_pstream_ascii_format,
+    R_pstream_binary_format,
+    R_pstream_xdr_format,
+    R_pstream_asciihex_format
+} R_pstream_format_t;
+
+typedef struct R_outpstream_st *R_outpstream_t;
+struct R_outpstream_st {
+    R_pstream_data_t data;
+    R_pstream_format_t type;
+    int version;
+    void (*OutChar)(R_outpstream_t, int);
+    void (*OutBytes)(R_outpstream_t, void *, int);
+    SEXP (*OutPersistHookFunc)(SEXP, SEXP);
+    SEXP OutPersistHookData;
+};
+
+typedef struct R_inpstream_st *R_inpstream_t;
+struct R_inpstream_st {
+    R_pstream_data_t data;
+    R_pstream_format_t type;
+    int (*InChar)(R_inpstream_t);
+    void (*InBytes)(R_inpstream_t, void *, int);
+    SEXP (*InPersistHookFunc)(SEXP, SEXP);
+    SEXP InPersistHookData;
+};
+
+void R_InitInPStream(R_inpstream_t stream, R_pstream_data_t data,
+		     R_pstream_format_t type,
+		     int (*inchar)(R_inpstream_t),
+		     void (*inbytes)(R_inpstream_t, void *, int),
+		     SEXP (*phook)(SEXP, SEXP), SEXP pdata);
+void R_InitOutPStream(R_outpstream_t stream, R_pstream_data_t data,
+		      R_pstream_format_t type, int version,
+		      void (*outchar)(R_outpstream_t, int),
+		      void (*outbytes)(R_outpstream_t, void *, int),
+		      SEXP (*phook)(SEXP, SEXP), SEXP pdata);
+
+#ifdef __cplusplus
+void R_InitFileInPStream(R_inpstream_t stream, std::FILE *fp,
+			 R_pstream_format_t type,
+			 SEXP (*phook)(SEXP, SEXP), SEXP pdata);
+void R_InitFileOutPStream(R_outpstream_t stream, std::FILE *fp,
+			  R_pstream_format_t type, int version,
+			  SEXP (*phook)(SEXP, SEXP), SEXP pdata);
+#else
+void R_InitFileInPStream(R_inpstream_t stream, FILE *fp,
+			 R_pstream_format_t type,
+			 SEXP (*phook)(SEXP, SEXP), SEXP pdata);
+void R_InitFileOutPStream(R_outpstream_t stream, FILE *fp,
+			  R_pstream_format_t type, int version,
+			  SEXP (*phook)(SEXP, SEXP), SEXP pdata);
+#endif
+
+#ifdef NEED_CONNECTION_PSTREAMS
+/* The connection interface is not available to packages.  To
+   allow limited use of connection pointers this defines the opaque
+   pointer type. */
+#ifndef HAVE_RCONNECTION_TYPEDEF
+typedef struct Rconn  *Rconnection;
+#define HAVE_RCONNECTION_TYPEDEF
+#endif
+void R_InitConnOutPStream(R_outpstream_t stream, Rconnection con,
+			  R_pstream_format_t type, int version,
+			  SEXP (*phook)(SEXP, SEXP), SEXP pdata);
+void R_InitConnInPStream(R_inpstream_t stream,  Rconnection con,
+			 R_pstream_format_t type,
+			 SEXP (*phook)(SEXP, SEXP), SEXP pdata);
+#endif
+
+void R_Serialize(SEXP s, R_outpstream_t ops);
+SEXP R_Unserialize(R_inpstream_t ips);
+
+/* slot management (in attrib.c) */
+SEXP R_do_slot(SEXP obj, SEXP name);
+SEXP R_do_slot_assign(SEXP obj, SEXP name, SEXP value);
+int R_has_slot(SEXP obj, SEXP name);
+/* S3-S4 class (inheritance), attrib.c */
+SEXP R_S4_extends(SEXP klass, SEXP useTable);
+
+/* class definition, new objects (objects.c) */
+SEXP R_do_MAKE_CLASS(const char *what);
+SEXP R_getClassDef  (const char *what);
+SEXP R_getClassDef_R(SEXP what);
+Rboolean R_has_methods_attached(void);
+Rboolean R_isVirtualClass(SEXP class_def, SEXP env);
+Rboolean R_extends  (SEXP class1, SEXP class2, SEXP env);
+SEXP R_do_new_object(SEXP class_def);
+/* supporting  a C-level version of  is(., .) : */
+int R_check_class_and_super(SEXP x, const char **valid, SEXP rho);
+int R_check_class_etc      (SEXP x, const char **valid);
+
+/* preserve objects across GCs */
+void R_PreserveObject(SEXP);
+void R_ReleaseObject(SEXP);
+
+/* Shutdown actions */
+void R_dot_Last(void);		/* in main.c */
+void R_RunExitFinalizers(void);	/* in memory.c */
+
+/* Replacements for popen and system */
+#ifdef HAVE_POPEN
+# ifdef __cplusplus
+std::FILE *R_popen(const char *, const char *);
+# else
+FILE *R_popen(const char *, const char *);
+# endif
+#endif
+int R_system(const char *);
+
+/* R_compute_identical:  C version of identical() function
+   The third arg to R_compute_identical() consists of bitmapped flags for non-default options:
+   currently the first 4 default to TRUE, so the flag is set for FALSE values:
+   1 = !NUM_EQ
+   2 = !SINGLE_NA
+   4 = !ATTR_AS_SET
+   8 = !IGNORE_BYTECODE
+  16 = !IGNORE_ENV
+  Default from R's default: 15
+*/
+Rboolean R_compute_identical(SEXP, SEXP, int);
+
+/* C version of R's  indx <- order(..., na.last, decreasing) :
+   e.g.  arglist = Rf_lang2(x,y)  or  Rf_lang3(x,y,z) */
+void R_orderVector (int *indx, int n, SEXP arglist, Rboolean nalast, Rboolean decreasing);
+// C version of R's  indx <- order(x, na.last, decreasing) :
+void R_orderVector1(int *indx, int n, SEXP x,       Rboolean nalast, Rboolean decreasing);
+
+#ifndef R_NO_REMAP
+#define acopy_string		Rf_acopy_string
+#define addMissingVarsToNewEnv	Rf_addMissingVarsToNewEnv
+#define alloc3DArray            Rf_alloc3DArray
+#define allocArray		Rf_allocArray
+#define allocFormalsList2	Rf_allocFormalsList2
+#define allocFormalsList3	Rf_allocFormalsList3
+#define allocFormalsList4	Rf_allocFormalsList4
+#define allocFormalsList5	Rf_allocFormalsList5
+#define allocFormalsList6	Rf_allocFormalsList6
+#define allocList		Rf_allocList
+#define allocMatrix		Rf_allocMatrix
+#define allocS4Object		Rf_allocS4Object
+#define allocSExp		Rf_allocSExp
+#define allocVector		Rf_allocVector
+#define allocVector3		Rf_allocVector3
+#define any_duplicated		Rf_any_duplicated
+#define any_duplicated3		Rf_any_duplicated3
+#define applyClosure		Rf_applyClosure
+#define arraySubscript		Rf_arraySubscript
+#define asChar			Rf_asChar
+#define asCharacterFactor	Rf_asCharacterFactor
+#define asComplex		Rf_asComplex
+#define asInteger		Rf_asInteger
+#define asLogical		Rf_asLogical
+#define asReal			Rf_asReal
+#define asS4			Rf_asS4
+#define classgets		Rf_classgets
+#define coerceVector		Rf_coerceVector
+#define conformable		Rf_conformable
+#define cons			Rf_cons
+#define copyListMatrix		Rf_copyListMatrix
+#define copyMatrix		Rf_copyMatrix
+#define copyMostAttrib		Rf_copyMostAttrib
+#define copyVector		Rf_copyVector
+#define countContexts		Rf_countContexts
+#define CreateTag		Rf_CreateTag
+#define defineVar		Rf_defineVar
+#define dimgets			Rf_dimgets
+#define dimnamesgets		Rf_dimnamesgets
+#define DropDims                Rf_DropDims
+#define duplicate		Rf_duplicate
+#define duplicated		Rf_duplicated
+#define elt			Rf_elt
+#define errorcall		Rf_errorcall
+#define eval			Rf_eval
+#define findFun			Rf_findFun
+#define findVar			Rf_findVar
+#define findVarInFrame		Rf_findVarInFrame
+#define findVarInFrame3		Rf_findVarInFrame3
+#define GetArrayDimnames	Rf_GetArrayDimnames
+#define getAttrib		Rf_getAttrib
+#define getCharCE		Rf_getCharCE
+#define GetColNames		Rf_GetColNames
+#define GetMatrixDimnames	Rf_GetMatrixDimnames
+#define GetOption1		Rf_GetOption1
+#define GetOptionDigits		Rf_GetOptionDigits
+#define GetOptionWidth		Rf_GetOptionWidth
+#define GetOption		Rf_GetOption
+#define GetRowNames		Rf_GetRowNames
+#define gsetVar			Rf_gsetVar
+#define inherits		Rf_inherits
+#define install			Rf_install
+#define installChar		Rf_installChar
+#define installDDVAL		Rf_installDDVAL
+#define installS3Signature	Rf_installS3Signature
+#define isArray			Rf_isArray
+#define isBasicClass            Rf_isBasicClass
+#define isComplex		Rf_isComplex
+#define isEnvironment		Rf_isEnvironment
+#define isExpression		Rf_isExpression
+#define isFactor		Rf_isFactor
+#define isFrame			Rf_isFrame
+#define isFree			Rf_isFree
+#define isFunction		Rf_isFunction
+#define isInteger		Rf_isInteger
+#define isLanguage		Rf_isLanguage
+#define isList			Rf_isList
+#define isLogical		Rf_isLogical
+#define isSymbol		Rf_isSymbol
+#define isMatrix		Rf_isMatrix
+#define isNewList		Rf_isNewList
+#define isNull			Rf_isNull
+#define isNumeric		Rf_isNumeric
+#define isNumber		Rf_isNumber
+#define isObject		Rf_isObject
+#define isOrdered		Rf_isOrdered
+#define isPairList		Rf_isPairList
+#define isPrimitive		Rf_isPrimitive
+#define isReal			Rf_isReal
+#define isS4			Rf_isS4
+#define isString		Rf_isString
+#define isTs			Rf_isTs
+#define isUnmodifiedSpecSym	Rf_isUnmodifiedSpecSym
+#define isUnordered		Rf_isUnordered
+#define isUnsorted		Rf_isUnsorted
+#define isUserBinop		Rf_isUserBinop
+#define isValidString		Rf_isValidString
+#define isValidStringF		Rf_isValidStringF
+#define isVector		Rf_isVector
+#define isVectorAtomic		Rf_isVectorAtomic
+#define isVectorizable		Rf_isVectorizable
+#define isVectorList		Rf_isVectorList
+#define lang1			Rf_lang1
+#define lang2			Rf_lang2
+#define lang3			Rf_lang3
+#define lang4			Rf_lang4
+#define lang5			Rf_lang5
+#define lang6			Rf_lang6
+#define lastElt			Rf_lastElt
+#define lazy_duplicate		Rf_lazy_duplicate
+#define lcons			Rf_lcons
+#define length(x)		Rf_length(x)
+#define lengthgets		Rf_lengthgets
+#define list1			Rf_list1
+#define list2			Rf_list2
+#define list3			Rf_list3
+#define list4			Rf_list4
+#define list5			Rf_list5
+#define listAppend		Rf_listAppend
+#define match			Rf_match
+#define matchE			Rf_matchE
+#define mkChar			Rf_mkChar
+#define mkCharCE		Rf_mkCharCE
+#define mkCharLen		Rf_mkCharLen
+#define mkCharLenCE		Rf_mkCharLenCE
+#define mkNamed			Rf_mkNamed
+#define mkString		Rf_mkString
+#define namesgets		Rf_namesgets
+#define ncols			Rf_ncols
+#define nlevels			Rf_nlevels
+#define NonNullStringMatch	Rf_NonNullStringMatch
+#define nrows			Rf_nrows
+#define nthcdr			Rf_nthcdr
+#define PairToVectorList	Rf_PairToVectorList
+#define pmatch			Rf_pmatch
+#define psmatch			Rf_psmatch
+#define PrintValue		Rf_PrintValue
+#define protect			Rf_protect
+#define readS3VarsFromFrame	Rf_readS3VarsFromFrame
+#define reEnc			Rf_reEnc
+#define rownamesgets		Rf_rownamesgets
+#define S3Class                 Rf_S3Class
+#define ScalarComplex		Rf_ScalarComplex
+#define ScalarInteger		Rf_ScalarInteger
+#define ScalarLogical		Rf_ScalarLogical
+#define ScalarReal		Rf_ScalarReal
+#define ScalarString		Rf_ScalarString
+#define ScalarRaw		Rf_ScalarRaw
+#define setAttrib		Rf_setAttrib
+#define setSVector		Rf_setSVector
+#define setVar			Rf_setVar
+#define shallow_duplicate	Rf_shallow_duplicate
+#define str2type		Rf_str2type
+#define stringSuffix		Rf_stringSuffix
+#define stringPositionTr	Rf_stringPositionTr
+#define StringBlank		Rf_StringBlank
+#define substitute		Rf_substitute
+#define topenv		        Rf_topenv
+#define translateChar		Rf_translateChar
+#define translateChar0		Rf_translateChar0
+#define translateCharUTF8      	Rf_translateCharUTF8
+#define type2char		Rf_type2char
+#define type2rstr		Rf_type2rstr
+#define type2str		Rf_type2str
+#define type2str_nowarn		Rf_type2str_nowarn
+#define unprotect		Rf_unprotect
+#define unprotect_ptr		Rf_unprotect_ptr
+#define VectorToPairList	Rf_VectorToPairList
+#define warningcall		Rf_warningcall
+#define warningcall_immediate	Rf_warningcall_immediate
+#define xlength(x)		Rf_xlength(x)
+#define xlengthgets		Rf_xlengthgets
+
+#endif
+
+#if defined(CALLED_FROM_DEFN_H) && !defined(__MAIN__) && (defined(COMPILING_R) || ( __GNUC__ && !defined(__INTEL_COMPILER) ))
+#include "Rinlinedfuns.h"
+#else
+/* need remapped names here for use with R_NO_REMAP */
+
+/*
+   These are the inlinable functions that are provided in Rinlinedfuns.h
+   It is *essential* that these do not appear in any other header file,
+   with or without the Rf_ prefix.
+*/
+SEXP     Rf_allocVector(SEXPTYPE, R_xlen_t);
+Rboolean Rf_conformable(SEXP, SEXP);
+SEXP	 Rf_elt(SEXP, int);
+Rboolean Rf_inherits(SEXP, const char *);
+Rboolean Rf_isArray(SEXP);
+Rboolean Rf_isFactor(SEXP);
+Rboolean Rf_isFrame(SEXP);
+Rboolean Rf_isFunction(SEXP);
+Rboolean Rf_isInteger(SEXP);
+Rboolean Rf_isLanguage(SEXP);
+Rboolean Rf_isList(SEXP);
+Rboolean Rf_isMatrix(SEXP);
+Rboolean Rf_isNewList(SEXP);
+Rboolean Rf_isNumber(SEXP);
+Rboolean Rf_isNumeric(SEXP);
+Rboolean Rf_isPairList(SEXP);
+Rboolean Rf_isPrimitive(SEXP);
+Rboolean Rf_isTs(SEXP);
+Rboolean Rf_isUserBinop(SEXP);
+Rboolean Rf_isValidString(SEXP);
+Rboolean Rf_isValidStringF(SEXP);
+Rboolean Rf_isVector(SEXP);
+Rboolean Rf_isVectorAtomic(SEXP);
+Rboolean Rf_isVectorList(SEXP);
+Rboolean Rf_isVectorizable(SEXP);
+SEXP	 Rf_lang1(SEXP);
+SEXP	 Rf_lang2(SEXP, SEXP);
+SEXP	 Rf_lang3(SEXP, SEXP, SEXP);
+SEXP	 Rf_lang4(SEXP, SEXP, SEXP, SEXP);
+SEXP	 Rf_lang5(SEXP, SEXP, SEXP, SEXP, SEXP);
+SEXP	 Rf_lang6(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+SEXP	 Rf_lastElt(SEXP);
+SEXP	 Rf_lcons(SEXP, SEXP);
+R_len_t  Rf_length(SEXP);
+SEXP	 Rf_list1(SEXP);
+SEXP	 Rf_list2(SEXP, SEXP);
+SEXP	 Rf_list3(SEXP, SEXP, SEXP);
+SEXP	 Rf_list4(SEXP, SEXP, SEXP, SEXP);
+SEXP	 Rf_list5(SEXP, SEXP, SEXP, SEXP, SEXP);
+SEXP	 Rf_listAppend(SEXP, SEXP);
+SEXP	 Rf_mkNamed(SEXPTYPE, const char **);
+SEXP	 Rf_mkString(const char *);
+int	 Rf_nlevels(SEXP);
+int	 Rf_stringPositionTr(SEXP, const char *);
+SEXP	 Rf_ScalarComplex(Rcomplex);
+SEXP	 Rf_ScalarInteger(int);
+SEXP	 Rf_ScalarLogical(int);
+SEXP	 Rf_ScalarRaw(Rbyte);
+SEXP	 Rf_ScalarReal(double);
+SEXP	 Rf_ScalarString(SEXP);
+R_xlen_t  Rf_xlength(SEXP);
+# ifdef INLINE_PROTECT
+SEXP Rf_protect(SEXP);
+void Rf_unprotect(int);
+void R_ProtectWithIndex(SEXP, PROTECT_INDEX *);
+void R_Reprotect(SEXP, PROTECT_INDEX);
+# endif
+SEXP R_FixupRHS(SEXP x, SEXP y);
+#endif
+
+#ifdef USE_RINTERNALS
+
+/* Test macros with function versions above */
+#undef isNull
+#define isNull(s)	(TYPEOF(s) == NILSXP)
+#undef isSymbol
+#define isSymbol(s)	(TYPEOF(s) == SYMSXP)
+#undef isLogical
+#define isLogical(s)	(TYPEOF(s) == LGLSXP)
+#undef isReal
+#define isReal(s)	(TYPEOF(s) == REALSXP)
+#undef isComplex
+#define isComplex(s)	(TYPEOF(s) == CPLXSXP)
+#undef isExpression
+#define isExpression(s) (TYPEOF(s) == EXPRSXP)
+#undef isEnvironment
+#define isEnvironment(s) (TYPEOF(s) == ENVSXP)
+#undef isString
+#define isString(s)	(TYPEOF(s) == STRSXP)
+#undef isObject
+#define isObject(s)	(OBJECT(s) != 0)
+
+/* macro version of R_CheckStack */
+#define R_CheckStack() do {						\
+	void NORET R_SignalCStackOverflow(intptr_t);				\
+	int dummy;							\
+	intptr_t usage = R_CStackDir * (R_CStackStart - (uintptr_t)&dummy); \
+	if(R_CStackLimit != -1 && usage > ((intptr_t) R_CStackLimit))	\
+	    R_SignalCStackOverflow(usage);				\
+    } while (FALSE)
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* R_INTERNALS_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rinterface.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rinterface.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rinterface.h	(revision 2476)
@@ -0,0 +1,165 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1995, 1996  Robert Gentleman and Ross Ihaka
+ *  Copyright (C) 1998--2016  The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ */
+
+/* This header file is to provide hooks for alternative front-ends,
+   e.g. GUIs such as GNOME and Cocoa.  It is only used on Unix-alikes.
+   All entries here should be documented in doc/manual/R-exts.texi.
+
+   It should not be included by package sources unless they are
+   providing such a front-end.
+*/
+
+#ifndef RINTERFACE_H_
+#define RINTERFACE_H_
+
+// Support for NO_C_HEADERS added in R 3.3.0
+#ifdef __cplusplus
+# ifndef NO_C_HEADERS
+#  include <cstdio>
+#  ifdef __SUNPRO_CC
+using std::FILE;
+#  endif
+# endif
+extern "C" {
+#else
+# ifndef NO_C_HEADERS
+#  include <stdio.h>
+#endif
+#endif
+
+#if defined(__GNUC__) && __GNUC__ >= 3
+# define NORET __attribute__((noreturn))
+#else
+# define NORET
+#endif
+
+#include <R_ext/Boolean.h>
+#include <R_ext/RStartup.h>
+
+/* from Defn.h */
+/* this duplication will be removed in due course */
+
+extern Rboolean R_Interactive;	/* TRUE during interactive use*/
+extern Rboolean	R_Slave;	/* Run as a slave process */
+
+extern void R_RestoreGlobalEnv(void);
+extern void R_RestoreGlobalEnvFromFile(const char *, Rboolean);
+extern void R_SaveGlobalEnv(void);
+extern void R_SaveGlobalEnvToFile(const char *);
+extern void R_FlushConsole(void);
+extern void R_ClearerrConsole(void);
+extern void R_Suicide(const char *);
+extern char *R_HomeDir(void);
+extern int R_DirtyImage;	/* Current image dirty */
+extern char *R_GUIType;
+extern void R_setupHistory(void);
+extern char *R_HistoryFile;	/* Name of the history file */
+extern int R_HistorySize;	/* Size of the history file */
+extern int R_RestoreHistory;	/* restore the history file? */
+extern char *R_Home;		    /* Root of the R tree */
+
+# define jump_to_toplevel	Rf_jump_to_toplevel
+# define mainloop		Rf_mainloop
+# define onintr			Rf_onintr
+void NORET jump_to_toplevel(void);
+void mainloop(void);
+void onintr(void);
+#ifndef DEFN_H_
+extern void* R_GlobalContext;    /* Need opaque pointer type for export */
+#endif
+
+void process_site_Renviron(void);
+void process_system_Renviron(void);
+void process_user_Renviron(void);
+
+extern FILE * R_Consolefile;
+extern FILE * R_Outputfile;
+
+
+/* in ../unix/sys-unix.c */
+void R_setStartTime(void);
+void fpu_setup(Rboolean);
+
+/* in ../unix/system.c */
+extern int R_running_as_main_program;
+
+#ifdef CSTACK_DEFNS
+/* duplicating Defn.h */
+#if !defined(HAVE_UINTPTR_T) && !defined(uintptr_t)
+ typedef unsigned long uintptr_t;
+#endif
+
+extern uintptr_t R_CStackLimit;	/* C stack limit */
+extern uintptr_t R_CStackStart;	/* Initial stack address */
+#endif
+
+/* formerly in src/unix/devUI.h */
+
+#ifdef R_INTERFACE_PTRS
+#include <Rinternals.h>
+
+#ifdef __SYSTEM__
+# define extern
+#endif
+
+extern void (*ptr_R_Suicide)(const char *);
+extern void (*ptr_R_ShowMessage)(const char *);
+extern int  (*ptr_R_ReadConsole)(const char *, unsigned char *, int, int);
+extern void (*ptr_R_WriteConsole)(const char *, int);
+extern void (*ptr_R_WriteConsoleEx)(const char *, int, int);
+extern void (*ptr_R_ResetConsole)(void);
+extern void (*ptr_R_FlushConsole)(void);
+extern void (*ptr_R_ClearerrConsole)(void);
+extern void (*ptr_R_Busy)(int);
+extern void (*ptr_R_CleanUp)(SA_TYPE, int, int);
+extern int  (*ptr_R_ShowFiles)(int, const char **, const char **,
+			       const char *, Rboolean, const char *);
+extern int  (*ptr_R_ChooseFile)(int, char *, int);
+extern int  (*ptr_R_EditFile)(const char *);
+extern void (*ptr_R_loadhistory)(SEXP, SEXP, SEXP, SEXP);
+extern void (*ptr_R_savehistory)(SEXP, SEXP, SEXP, SEXP);
+extern void (*ptr_R_addhistory)(SEXP, SEXP, SEXP, SEXP);
+
+// added in 3.0.0
+extern int  (*ptr_R_EditFiles)(int, const char **, const char **, const char *);
+// naming follows earlier versions in R.app
+extern SEXP (*ptr_do_selectlist)(SEXP, SEXP, SEXP, SEXP);
+extern SEXP (*ptr_do_dataentry)(SEXP, SEXP, SEXP, SEXP);
+extern SEXP (*ptr_do_dataviewer)(SEXP, SEXP, SEXP, SEXP);
+extern void (*ptr_R_ProcessEvents)();
+
+
+/* These two are not used by R itself, but are used by the tcltk package */
+extern int  (*R_timeout_handler)(void);
+extern long R_timeout_val;
+
+#endif /* R_INTERFACE_PTRS */
+
+#ifdef __SYSTEM__
+# undef extern
+#endif
+
+extern int R_SignalHandlers;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* RINTERFACE_H_ */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/S.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/S.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/S.h	(revision 2476)
@@ -0,0 +1,86 @@
+/*
+ *  R : A Computer Language for Statistical Data Analysis
+ *  Copyright (C) 1995, 1996  Robert Gentleman and Ross Ihaka
+ *  Copyright (C) 1997--2016 The R Core Team.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Lesser General Public License as published by
+ *  the Free Software Foundation; either version 2.1 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Lesser General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Lesser General Public License
+ *  along with this program; if not, a copy is available at
+ *  https://www.R-project.org/Licenses/
+ *
+ *  Much of this is from Doug Bates.
+ */
+
+/* 
+   This is a legacy header and no longer documented.
+   Code using it should be converted to use R.h
+*/
+
+/* This header includes C headers and so is not safe for inclusion
+   from C++: use R.h instead. */
+
+#ifndef R_S_H
+#define R_S_H
+
+#ifndef USING_R
+# define USING_R
+/* is this a good idea? - conflicts with many versions of f2c.h */
+# define longint int
+#endif
+
+#ifdef __cplusplus
+# error S.h can not be used from C++ code: use R.h instead
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <limits.h>
+#include <float.h>
+#include <math.h>
+
+#include <Rconfig.h>
+#include <R_ext/Constants.h>
+#include <R_ext/Memory.h>	/* S_alloc */
+
+/* subset of those in Random.h */
+extern void seed_in(long *);
+extern void seed_out(long *);
+extern double unif_rand(void);
+extern double norm_rand(void);
+
+/* Macros for S/R Compatibility */
+
+#include <R_ext/RS.h>
+/* for PROBLEM ... Calloc, Realloc, Free, Memcpy, F77_xxxx */
+
+/* S4 uses macros equivalent to */
+#define Salloc(n,t) (t*)S_alloc(n, sizeof(t))
+#define Srealloc(p,n,old,t) (t*)S_realloc(p,n,old,sizeof(t))
+
+/* S's complex is different, and is a define to S_complex now */
+typedef struct {
+	double re;
+	double im;
+} S_complex;
+
+#ifdef S_OLD_COMPLEX
+# define complex S_complex
+#endif
+
+#ifndef NO_CALL_R
+/* Not quite full compatibility: beware! */
+/* void	call_R(char*, long, void**, char**, long*, char**, long, char**);*/
+#define call_S call_R
+#endif
+
+#endif /* !R_S_H */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rconfig.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rconfig.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rconfig.h	(revision 2476)
@@ -0,0 +1,25 @@
+/* Rconfig.h.  Generated automatically */
+#ifndef R_RCONFIG_H
+#define R_RCONFIG_H
+
+#ifndef R_CONFIG_H
+
+#define HAVE_F77_UNDERSCORE 1
+/* all R platforms have this */
+#define IEEE_754 1
+/* #undef WORDS_BIGENDIAN */
+#define R_INLINE inline
+/* #undef HAVE_VISIBILITY_ATTRIBUTE */
+/* all R platforms have the next two */
+#define SUPPORT_UTF8 1
+#define SUPPORT_MBCS 1
+#define ENABLE_NLS 1
+#define HAVE_AQUA 1
+/* Deprecated: use _OPENMP instead */
+/* #undef SUPPORT_OPENMP */
+#define SIZEOF_SIZE_T 8
+#define HAVE_ALLOCA_H 1
+
+#endif /* not R_CONFIG_H */
+
+#endif /* not R_RCONFIG_H */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rversion.h
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rversion.h	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/include/Rversion.h	(revision 2476)
@@ -0,0 +1,25 @@
+/* Rversion.h.  Generated automatically. */
+#ifndef R_VERSION_H
+#define R_VERSION_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define R_VERSION 197378
+#define R_NICK "Sincere Pumpkin Patch"
+#define R_Version(v,p,s) (((v) * 65536) + ((p) * 256) + (s))
+#define R_MAJOR  "3"
+#define R_MINOR  "3.2"
+#define R_STATUS ""
+#define R_YEAR   "2016"
+#define R_MONTH  "10"
+#define R_DAY    "31"
+#define R_SVN_REVISION 71607
+#define R_FILEVERSION    3,32,71607,0
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* not R_VERSION_H */
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/Info.plist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/Info.plist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/Info.plist	(revision 2476)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleIdentifier</key>
+ <string>org.r-project.R-framework</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>R</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleVersion</key>
+ <string>3.3.2</string>
+</dict>
+</plist>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/Rscript
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/Rscript
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/README
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/README	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/README	(revision 2476)
@@ -0,0 +1,23 @@
+conf.d/README
+
+Each file in this directory is a fontconfig configuration file.  Fontconfig
+scans this directory, loading all files of the form [0-9][0-9]*.conf.
+These files are normally installed in /usr/share/fontconfig/conf.avail
+and then symlinked here, allowing them to be easily installed and then
+enabled/disabled by adjusting the symlinks.
+
+The files are loaded in numeric order, the structure of the configuration
+has led to the following conventions in usage:
+
+ Files begining with:	Contain:
+ 
+ 00 through 09		Font directories
+ 10 through 19		system rendering defaults (AA, etc)
+ 20 through 29		font rendering options
+ 30 through 39		family substitution
+ 40 through 49		generic identification, map family->generic
+ 50 through 59		alternate config file loading
+ 60 through 69		generic aliases, map generic->family
+ 70 through 79		select font (adjust which fonts are available)
+ 80 through 89		match target="scan" (modify scanned patterns)
+ 90 through 99		font synthesis
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/65-nonlatin.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/65-nonlatin.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/65-nonlatin.conf	(revision 2476)
@@ -0,0 +1,196 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+	<alias>
+		<family>serif</family>
+		<prefer>
+			<family>Artsounk</family> <!-- armenian -->
+			<family>BPG UTF8 M</family> <!-- georgian -->
+			<family>Kinnari</family> <!-- thai -->
+			<family>Norasi</family> <!-- thai -->
+			<family>Frank Ruehl</family> <!-- hebrew -->
+			<family>Dror</family>  <!-- hebrew -->
+			<family>JG LaoTimes</family>  <!-- lao -->
+			<family>Saysettha Unicode</family>  <!-- lao -->
+			<family>Pigiarniq</family> <!-- canadian syllabics -->
+			<family>B Davat</family> <!-- arabic (fa) -->
+			<family>B Compset</family>  <!-- arabic (fa) -->
+			<family>Kacst-Qr</family> <!-- arabic (ar) -->
+			<family>Urdu Nastaliq Unicode</family> <!-- arabic (ur) -->
+			<family>Raghindi</family> <!-- devanagari -->
+			<family>Mukti Narrow</family> <!-- bengali -->
+			<family>malayalam</family> <!-- malayalam -->
+			<family>Sampige</family> <!-- kannada -->
+			<family>padmaa</family> <!-- gujarati -->
+			<family>Hapax Berbère</family> <!-- tifinagh -->
+			<family>MS Mincho</family> <!-- han (ja) -->
+			<family>SimSun</family> <!-- han (zh-cn,zh-tw) -->
+			<family>PMingLiu</family> <!-- han (zh-tw) -->
+			<family>WenQuanYi Zen Hei</family> <!-- han (zh-cn,zh-tw) -->
+			<family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
+			<family>AR PL ShanHeiSun Uni</family> <!-- han (ja,zh-cn,zh-tw) -->
+			<family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
+			<family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
+			<family>HanyiSong</family> <!-- han (zh-cn,zh-tw) -->
+			<family>MgOpen Canonica</family>
+			<family>Sazanami Mincho</family>
+			<family>IPAMonaMincho</family>
+			<family>IPAMincho</family>
+			<family>Kochi Mincho</family>
+			<family>AR PL SungtiL GB</family>
+			<family>AR PL Mingti2L Big5</family>
+ 			<family>AR PL Zenkai Uni</family>
+			<family>ＭＳ 明朝</family>
+ 			<family>ZYSong18030</family>
+			<family>NanumMyeongjo</family> <!-- hangul (ko) -->
+			<family>UnBatang</family> <!-- hangul (ko) -->
+			<family>Baekmuk Batang</family> <!-- hangul (ko) -->
+ 			<family>KacstQura</family>
+ 			<family>Frank Ruehl CLM</family>
+			<family>Lohit Bengali</family>
+ 			<family>Lohit Gujarati</family>
+ 			<family>Lohit Hindi</family>
+			<family>Lohit Marathi</family>
+			<family>Lohit Maithili</family>
+			<family>Lohit Kashmiri</family>
+			<family>Lohit Konkani</family>
+			<family>Lohit Nepali</family>
+			<family>Lohit Sindhi</family>
+ 			<family>Lohit Punjabi</family>
+ 			<family>Lohit Tamil</family>
+			<family>Meera</family>
+			<family>Lohit Malayalam</family>
+ 			<family>Lohit Kannada</family>
+ 			<family>Lohit Telugu</family>
+ 			<family>Lohit Oriya</family>
+ 			<family>LKLUG</family>
+		</prefer>
+	</alias>
+	<alias>
+		<family>sans-serif</family>
+		<prefer>
+			<family>Nachlieli</family> <!-- hebrew -->
+			<family>Lucida Sans Unicode</family>
+			<family>Yudit Unicode</family>
+			<family>Kerkis</family> <!-- greek -->
+			<family>ArmNet Helvetica</family> <!-- armenian -->
+			<family>Artsounk</family> <!-- armenian -->
+			<family>BPG UTF8 M</family> <!-- georgian -->
+			<family>Waree</family> <!-- thai -->
+			<family>Loma</family> <!-- thai -->
+			<family>Garuda</family> <!-- thai -->
+			<family>Umpush</family> <!-- thai -->
+			<family>Saysettha Unicode</family> <!-- lao? -->
+			<family>JG Lao Old Arial</family> <!-- lao -->
+			<family>GF Zemen Unicode</family> <!-- ethiopic -->
+			<family>Pigiarniq</family> <!-- canadian syllabics -->
+			<family>B Davat</family> <!-- arabic (fa) -->
+			<family>B Compset</family> <!-- arabic (fa) -->
+			<family>Kacst-Qr</family> <!-- arabic (ar) -->
+			<family>Urdu Nastaliq Unicode</family> <!-- arabic (ur) -->
+			<family>Raghindi</family> <!-- devanagari -->
+			<family>Mukti Narrow</family> <!-- bengali -->
+			<family>malayalam</family> <!-- malayalam -->
+			<family>Sampige</family> <!-- kannada -->
+			<family>padmaa</family> <!-- gujarati -->
+			<family>Hapax Berbère</family> <!-- tifinagh -->
+			<family>MS Gothic</family> <!-- han (ja) -->
+			<family>UmePlus P Gothic</family> <!-- han (ja) -->
+			<!-- chinese fonts are actually serifed -->
+			<family>SimSun</family> <!-- han (zh-cn,zh-tw) -->
+			<family>PMingLiu</family> <!-- han (zh-tw) -->
+			<family>WenQuanYi Zen Hei</family> <!-- han (zh-cn,zh-tw) -->
+			<family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
+			<family>AR PL ShanHeiSun Uni</family> <!--han (ja,zh-cn,zh-tw) -->
+			<family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
+			<family>MgOpen Modata</family>
+			<family>VL Gothic</family>
+			<family>IPAMonaGothic</family>
+			<family>IPAGothic</family>
+			<family>Sazanami Gothic</family>
+			<family>Kochi Gothic</family>
+			<family>AR PL KaitiM GB</family>
+			<family>AR PL KaitiM Big5</family>
+ 			<family>AR PL ShanHeiSun Uni</family>
+ 			<family>AR PL SungtiL GB</family>
+ 			<family>AR PL Mingti2L Big5</family>
+			<family>ＭＳ ゴシック</family>
+			<family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
+			<family>TSCu_Paranar</family> <!-- tamil -->
+			<family>NanumGothic</family> <!-- hangul (ko) -->
+			<family>UnDotum</family> <!-- hangul (ko) -->
+			<family>Baekmuk Dotum</family> <!-- hangul (ko) -->
+ 			<family>Baekmuk Gulim</family> <!-- hangul (ko) -->
+ 			<family>KacstQura</family>
+			<family>Lohit Bengali</family>
+ 			<family>Lohit Gujarati</family>
+ 			<family>Lohit Hindi</family>
+			<family>Lohit Marathi</family>
+			<family>Lohit Maithili</family>
+			<family>Lohit Kashmiri</family>
+			<family>Lohit Konkani</family>
+			<family>Lohit Nepali</family>
+			<family>Lohit Sindhi</family>
+ 			<family>Lohit Punjabi</family>
+ 			<family>Lohit Tamil</family>
+			<family>Meera</family>
+ 			<family>Lohit Malayalam</family>
+ 			<family>Lohit Kannada</family>
+ 			<family>Lohit Telugu</family>
+ 			<family>Lohit Oriya</family>
+ 			<family>LKLUG</family>
+		</prefer>
+	</alias>
+	<alias>
+		<family>monospace</family>
+		<prefer>
+			<family>Miriam Mono</family> <!-- hebrew -->
+			<family>VL Gothic</family>
+			<family>IPAMonaGothic</family>
+			<family>IPAGothic</family>
+			<family>Sazanami Gothic</family>
+			<family>Kochi Gothic</family>
+			<family>AR PL KaitiM GB</family>
+			<family>MS Gothic</family> <!-- han (ja) -->
+			<family>UmePlus Gothic</family> <!-- han (ja) -->
+			<family>NSimSun</family> <!-- han (zh-cn,zh-tw) -->
+			<family>MingLiu</family> <!-- han (zh-tw) -->
+			<family>AR PL ShanHeiSun Uni</family> <!-- han (ja,zh-cn,zh-tw) -->
+			<family>AR PL New Sung Mono</family> <!-- han (zh-cn,zh-tw) -->
+			<family>HanyiSong</family> <!-- han (zh-cn) -->
+			<family>AR PL SungtiL GB</family>
+			<family>AR PL Mingti2L Big5</family>
+			<family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
+			<family>NanumGothicCoding</family> <!-- hangul (ko) -->
+			<family>NanumGothic</family> <!-- hangul (ko) -->
+			<family>UnDotum</family> <!-- hangul (ko) -->
+			<family>Baekmuk Dotum</family> <!-- hangul (ko) -->
+			<family>Baekmuk Gulim</family> <!-- hangul (ko) -->
+			<family>TlwgTypo</family> <!-- thai -->
+			<family>TlwgTypist</family> <!-- thai -->
+			<family>TlwgTypewriter</family> <!-- thai -->
+			<family>TlwgMono</family> <!-- thai -->
+			<family>Hasida</family> <!-- hebrew -->
+			<family>Mitra Mono</family> <!-- bengali -->
+			<family>GF Zemen Unicode</family> <!-- ethiopic -->
+			<family>Hapax Berbère</family> <!-- tifinagh -->
+			<family>Lohit Bengali</family>
+			<family>Lohit Gujarati</family>
+			<family>Lohit Hindi</family>
+			<family>Lohit Marathi</family>
+			<family>Lohit Maithili</family>
+			<family>Lohit Kashmiri</family>
+			<family>Lohit Konkani</family>
+			<family>Lohit Nepali</family>
+			<family>Lohit Sindhi</family>
+			<family>Lohit Punjabi</family>
+			<family>Lohit Tamil</family>
+			<family>Meera</family>
+			<family>Lohit Malayalam</family>
+			<family>Lohit Kannada</family>
+			<family>Lohit Telugu</family>
+			<family>Lohit Oriya</family>
+			<family>LKLUG</family>
+		</prefer>
+	</alias>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/30-urw-aliases.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/30-urw-aliases.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/30-urw-aliases.conf	(revision 2476)
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--
+  URW provides metric and shape compatible fonts for some Adobe families.
+  Most of these are handled in 30-metric-aliases.conf.
+  -->
+	<alias binding="same">
+	  <family>Zapf Dingbats</family>
+	  <accept><family>Dingbats</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>ITC Zapf Dingbats</family>
+	  <accept><family>Dingbats</family></accept>
+	</alias>
+	<match target="pattern">
+	  <test name="family" compare="eq" ignore-blanks="true">
+	    <string>Symbol</string>
+	  </test>
+	  <edit name="family" mode="append" binding="same">
+	    <string>Standard Symbols L</string>
+	  </edit>
+	</match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/51-local.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/51-local.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/51-local.conf	(revision 2476)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+	<!-- Load local system customization file -->
+	<include ignore_missing="yes">local.conf</include>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/69-unifont.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/69-unifont.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/69-unifont.conf	(revision 2476)
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+	<alias>
+		<family>serif</family>
+		<prefer>
+			<family>FreeSerif</family>
+			<family>Code2000</family>
+			<family>Code2001</family> <!-- plane1 and beyond -->
+		</prefer>
+	</alias>
+	<alias>
+		<family>sans-serif</family>
+		<prefer>
+			<family>FreeSans</family>
+			<family>Arial Unicode MS</family>
+			<family>Arial Unicode</family>
+			<family>Code2000</family> <!-- almost everything; serif actually -->
+			<family>Code2001</family> <!-- plane1 and beyond -->
+		</prefer>
+	</alias>
+	<alias>
+		<family>monospace</family>
+		<prefer>
+			<family>FreeMono</family>
+		</prefer>
+	</alias>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/65-fonts-persian.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/65-fonts-persian.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/65-fonts-persian.conf	(revision 2476)
@@ -0,0 +1,419 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!--
+  fonts-persian.conf
+  To configure Persian fonts from The FarsiWeb Project.
+
+  Copyright (C) 2005  Sharif FarsiWeb, Inc. <license@farsiweb.info>
+
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Sharif FarsiWeb, Inc. not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Sharif FarsiWeb, Inc. makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+
+  SHARIF FARSIWEB, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+  ChangeLog:
+    2005-04-03  Behdad Esfahbod:  Initial revision.
+    2005-10-09  Behdad Esfahbod:  Turned off back-slant and Tahoma sections.
+    2005-11-30  Behdad Esfahbod:  Set Titr susbtitution size to 24 points.
+    2008	Behdad Esfahbod:  Cleanup.  Add fantasy and cursive.
+  -->
+<fontconfig>
+
+
+<!-- Deprecated fonts are discouraged -->
+
+	<!-- Nesf[2] is officially deprecated and has problematic tables -->
+	<alias binding="same">
+	  <family>Nesf</family>
+	  <accept><family>Nesf2</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Nesf2</family>
+	  <accept><family>Persian_sansserif_default</family></accept>
+	</alias>
+
+<!-- Name changes and spelling variant aliases -->
+
+	<alias binding="same">
+	  <family>Nazanin</family>
+	  <accept><family>Nazli</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Lotus</family>
+	  <accept><family>Lotoos</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Yaqut</family>
+	  <accept><family>Yaghoot</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Yaghut</family>
+	  <accept><family>Yaghoot</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Traffic</family>
+	  <accept><family>Terafik</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Ferdowsi</family>
+	  <accept><family>Ferdosi</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Fantezy</family>
+	  <accept><family>Fantezi</family></accept>
+	</alias>
+
+
+<!-- Classify fonts. -->
+
+	<!-- Persian_title class -->
+	<alias binding="same">
+	  <family>Jadid</family>
+	  <accept><family>Persian_title</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Titr</family>
+	  <accept><family>Persian_title</family></accept>
+	</alias>
+
+	<!-- Persian_fantasy class -->
+	<alias binding="same">
+	  <family>Kamran</family>
+	  <accept>
+	  <family>Persian_fantasy</family>
+	  <family>Homa</family>
+	  </accept>
+	</alias>
+	<alias binding="same">
+	  <family>Homa</family>
+	  <accept>
+	  <family>Persian_fantasy</family>
+	  <family>Kamran</family>
+	  </accept>
+	</alias>
+	<alias binding="same">
+	  <family>Fantezi</family>
+	  <accept><family>Persian_fantasy</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Tabassom</family>
+	  <accept><family>Persian_fantasy</family></accept>
+	</alias>
+
+	<!-- Persian_square class -->
+	<alias binding="same">
+	  <family>Arshia</family>
+	  <accept><family>Persian_square</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Nasim</family>
+	  <accept><family>Persian_square</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Elham</family>
+	  <accept>
+	  <family>Persian_square</family>
+	  <family>Farnaz</family>
+	  </accept>
+	</alias>
+	<alias binding="same">
+	  <family>Farnaz</family>
+	  <accept>
+	  <family>Persian_square</family>
+	  <family>Elham</family>
+	  </accept>
+	</alias>
+	<alias binding="same">
+	  <family>Sina</family>
+	  <accept><family>Persian_square</family></accept>
+	</alias>
+
+<!-- Font ordering per class -->
+
+	<!-- Persian_title class -->
+	<alias binding="same">
+	  <family>Persian_title</family>
+	  <accept>
+	  <family>Titr</family>
+	  <family>Jadid</family>
+	  <family>Persian_serif</family>
+	  </accept>
+	</alias>
+
+	<!-- Persian_fantasy class -->
+	<alias binding="same">
+	  <family>Persian_fantasy</family>
+	  <accept>
+	  <family>Homa</family>
+	  <family>Kamran</family>
+	  <family>Fantezi</family>
+	  <family>Tabassom</family>
+	  <family>Persian_square</family>
+	  </accept>
+	</alias>
+
+	<!-- Persian_square class -->
+	<alias binding="same">
+	  <family>Persian_square</family>
+	  <accept>
+	  <family>Arshia</family>
+	  <family>Elham</family>
+	  <family>Farnaz</family>
+	  <family>Nasim</family>
+	  <family>Sina</family>
+	  <family>Persian_serif</family>
+	  </accept>
+	</alias>
+
+<!-- Register the fonts that we actually do have -->
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Elham</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Homa</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Koodak</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Nazli</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Roya</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Terafik</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Titr</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+
+<!-- Our fonts should oblique to the other side (TURNED-OFF) -->
+
+	<match target="font">
+		<test name="foundry">
+			<!--string>farsiweb</string-->
+			<string>TURNED-OFF</string>
+		</test>
+		<test name="foundry">
+			<string>farsiweb</string>
+		</test>
+		<!-- check to see if the font is roman -->
+		<test name="slant">
+			<const>roman</const>
+		</test>
+		<!-- check to see if the pattern requested non-roman -->
+		<test target="pattern" name="slant" compare="not_eq">
+			<const>roman</const>
+		</test>
+		<!-- multiply the matrix to slant the font -->
+		<edit name="matrix" mode="assign">
+			<times>
+				<name>matrix</name>
+				<matrix><double>1</double><double>-0.2</double>
+					<double>0</double><double>1</double>
+				</matrix>
+			</times>
+		</edit>
+		<!-- pretend the font is oblique now -->
+		<edit name="slant" mode="assign">
+			<const>oblique</const>
+		</edit>
+	</match>
+
+
+<!--
+  We can't hint our fonts well, so turn off hinting.
+  Moreover, the bitmaps we have designed (well, they
+  have designed), suck, so disable them too.
+  -->
+
+	<match target="font">
+		<test name="foundry">
+			<string>farsiweb</string>
+		</test>
+		<edit name="autohint">
+			<bool>false</bool>
+		</edit>
+		<edit name="hinting">
+			<bool>false</bool>
+		</edit>
+ 		<edit name="embeddedbitmap">
+ 			<bool>false</bool>
+ 		</edit>
+	</match>
+
+
+<!-- Alias our fonts to common families -->
+
+	<!-- Persian serif fonts -->
+	<alias>
+		<family>serif</family>
+		<accept>
+			<family>Nazli</family>
+			<family>Lotoos</family>
+			<family>Mitra</family>
+			<family>Ferdosi</family>
+			<family>Badr</family>
+			<family>Zar</family>
+		</accept>
+	</alias>
+
+	<!-- Persian sans-serif fonts -->
+	<alias>
+		<family>sans-serif</family>
+		<accept>
+			<family>Roya</family>
+			<family>Koodak</family>
+			<family>Terafik</family>
+		</accept>
+	</alias>
+
+	<!-- Persian monospace fonts -->
+	<alias>
+		<family>monospace</family>
+		<accept>
+			<!-- Not really monospace -->
+			<family>Terafik</family>
+		</accept>
+	</alias>
+
+	<!-- Persian fantasy fonts -->
+	<alias>
+		<family>fantasy</family>
+		<accept>
+			<family>Homa</family>
+			<family>Kamran</family>
+			<family>Fantezi</family>
+			<family>Tabassom</family>
+		</accept>
+	</alias>
+
+	<!-- Persian (and Urdu) Nastaliq/cursive fonts -->
+	<alias>
+		<family>cursive</family>
+		<accept>
+			<family>IranNastaliq</family>
+			<family>Nafees Nastaleeq</family>
+		</accept>
+	</alias>
+
+<!-- Use Titr in titles -->
+
+	<!-- Both serif... -->
+	<match>
+		<test name="family">
+			<string>serif</string>
+		</test>
+		<test name="weight" compare="more_eq">
+			<int>200</int>
+		</test>
+		<test name="size" compare="more_eq">
+			<double>24</double>
+		</test>
+		<edit name="family" mode="prepend">
+			<string>Titr</string>
+		</edit>
+	</match>
+
+	<!-- and sans-serif. -->
+	<match>
+		<test name="family">
+			<string>sans-serif</string>
+		</test>
+		<test name="weight" compare="more_eq">
+			<int>200</int>
+		</test>
+		<test name="size" compare="more_eq">
+			<double>24</double>
+		</test>
+		<edit name="family" mode="prepend">
+			<string>Titr</string>
+		</edit>
+	</match>
+
+	<!-- and more. -->
+	<match>
+		<test name="family">
+			<string>Persian_sansserif_default</string>
+		</test>
+		<test name="weight" compare="more_eq">
+			<int>200</int>
+		</test>
+		<test name="size" compare="more_eq">
+			<double>24</double>
+		</test>
+		<edit name="family" mode="prepend" binding="same">
+			<string>Titr</string>
+		</edit>
+	</match>
+
+
+<!-- Default substituted for deprecated sans-serif fonts -->
+
+	<match>
+		<test name="family">
+			<string>Persian_sansserif_default</string>
+		</test>
+		<edit name="family" mode="assign" binding="same">
+			<string>Roya</string>
+		</edit>
+	</match>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/30-metric-aliases.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/30-metric-aliases.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/30-metric-aliases.conf	(revision 2476)
@@ -0,0 +1,546 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+
+<!--
+
+Alias similar/metric-compatible families from various sources:
+
+PostScript fonts:       URW fonts:            GUST fonts:        Windows fonts:
+======================  ====================  =================  ==================
+Helvetica               Nimbus Sans L         TeX Gyre Heros
+Helvetica Condensed                           TeX Gyre Heros Cn
+Times                   Nimbus Roman No9 L    TeX Gyre Termes
+Courier                 Nimbus Mono L         TeX Gyre Cursor
+ITC Avant Garde Gothic  URW Gothic L          TeX Gyre Adventor
+ITC Bookman             URW Bookman L         TeX Gyre Bonum     Bookman Old Style
+ITC Zapf Chancery       URW Chancery L        TeX Gyre Chorus
+Palatino                URW Palladio L        TeX Gyre Pagella   Palatino Linotype
+New Century Schoolbook  Century Schoolbook L  TeX Gyre Schola    Century Schoolbook
+
+Microsoft fonts:  Liberation fonts:       Google CrOS core fonts:  StarOffice fonts:  AMT fonts:
+================  ======================  =======================  =================  ==============
+Arial             Liberation Sans         Arimo                    Albany             Albany AMT
+Arial Narrow      Liberation Sans Narrow
+Times New Roman   Liberation Serif        Tinos                    Thorndale          Thorndale AMT
+Courier New       Liberation Mono         Cousine                  Cumberland         Cumberland AMT
+Cambria                                   Caladea
+Calibri                                   Carlito
+Symbol                                    SymbolNeu
+
+Microsoft fonts:  Other fonts:
+================  ============
+Georgia           Gelasio
+
+We want for each of them to fallback to any of these available,
+but in an order preferring similar designs first.  We do this in three steps:
+
+1) Alias each specific to its generic family.
+   e.g. Liberation Sans to Arial
+
+2) Weak alias each generic to the other generic of its family.
+   e.g. Arial to Helvetica
+
+3) Alias each generic to its specifics.
+   e.g. Arial to Liberation Sans, Arimo, Albany, and Albany AMT
+
+-->
+
+<!-- Map specifics to generics -->
+
+	<!-- PostScript -->
+	<alias binding="same">
+	  <family>Nimbus Sans L</family>
+	  <default>
+	  <family>Helvetica</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Heros</family>
+	  <default>
+	  <family>Helvetica</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Heros Cn</family>
+	  <default>
+	  <family>Helvetica Condensed</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Nimbus Roman No9 L</family>
+	  <default>
+	  <family>Times</family>
+	  </default>
+	</alias>
+
+<!--
+     Due to Bug#73291, commented out those lines until the broken font are fixed.
+	<alias binding="same">
+	  <family>TeX Gyre Termes</family>
+	  <default>
+	  <family>Times</family>
+	  </default>
+	</alias>
+-->
+
+	<alias binding="same">
+	  <family>Nimbus Mono L</family>
+	  <default>
+	  <family>Courier</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Cursor</family>
+	  <default>
+	  <family>Courier</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Avant Garde</family>
+	  <default>
+	  <family>ITC Avant Garde Gothic</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>URW Gothic L</family>
+	  <default>
+	  <family>ITC Avant Garde Gothic</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Adventor</family>
+	  <default>
+	  <family>ITC Avant Garde Gothic</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Bookman</family>
+	  <default>
+	  <family>ITC Bookman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>URW Bookman L</family>
+	  <default>
+	  <family>ITC Bookman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Bonum</family>
+	  <default>
+	  <family>ITC Bookman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Bookman Old Style</family>
+	  <default>
+	  <family>ITC Bookman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Zapf Chancery</family>
+	  <default>
+	  <family>ITC Zapf Chancery</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>URW Chancery L</family>
+	  <default>
+	  <family>ITC Zapf Chancery</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Chorus</family>
+	  <default>
+	  <family>ITC Zapf Chancery</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>URW Palladio L</family>
+	  <default>
+	  <family>Palatino</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Pagella</family>
+	  <default>
+	  <family>Palatino</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Palatino Linotype</family>
+	  <default>
+	  <family>Palatino</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Century Schoolbook L</family>
+	  <default>
+	  <family>New Century Schoolbook</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Schola</family>
+	  <default>
+	  <family>New Century Schoolbook</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Century Schoolbook</family>
+	  <default>
+	  <family>New Century Schoolbook</family>
+	  </default>
+	</alias>
+
+
+	<!-- Microsoft -->
+	<alias binding="same">
+	  <family>Arimo</family>
+	  <default>
+	    <family>Arial</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Liberation Sans</family>
+	  <default>
+	  <family>Arial</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Liberation Sans Narrow</family>
+	  <default>
+	    <family>Arial Narrow</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Albany</family>
+	  <default>
+	  <family>Arial</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Albany AMT</family>
+	  <default>
+	  <family>Arial</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Tinos</family>
+	  <default>
+	    <family>Times New Roman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Liberation Serif</family>
+	  <default>
+	  <family>Times New Roman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Thorndale</family>
+	  <default>
+	  <family>Times New Roman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Thorndale AMT</family>
+	  <default>
+	  <family>Times New Roman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Cousine</family>
+	  <default>
+	    <family>Courier New</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Liberation Mono</family>
+	  <default>
+	  <family>Courier New</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Cumberland</family>
+	  <default>
+	  <family>Courier New</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Cumberland AMT</family>
+	  <default>
+	  <family>Courier New</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Gelasio</family>
+	  <default>
+	  <family>Georgia</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Caladea</family>
+	  <default>
+	  <family>Cambria</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Carlito</family>
+	  <default>
+	  <family>Calibri</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>SymbolNeu</family>
+	  <default>
+	  <family>Symbol</family>
+	  </default>
+  </alias>
+
+<!-- Accept the other group as fallback -->
+
+	<!-- PostScript -->
+	<alias>
+	  <family>Helvetica</family>
+	  <default>
+	  <family>Arial</family>
+	  </default>
+	</alias>
+
+	<alias>
+	  <family>Helvetica Condensed</family>
+	  <default>
+	  <family>Arial Narrow</family>
+	  </default>
+	</alias>
+
+	<alias>
+	  <family>Times</family>
+	  <default>
+	  <family>Times New Roman</family>
+	  </default>
+	</alias>
+
+	<alias>
+	  <family>Courier</family>
+	  <default>
+	  <family>Courier New</family>
+	  </default>
+	</alias>
+
+
+	<!-- Microsoft -->
+	<alias>
+	  <family>Arial</family>
+	  <default>
+	  <family>Helvetica</family>
+	  </default>
+	</alias>
+
+	<alias>
+	  <family>Arial Narrow</family>
+	  <default>
+	  <family>Helvetica Condensed</family>
+	  </default>
+	</alias>
+
+	<alias>
+	  <family>Times New Roman</family>
+	  <default>
+	  <family>Times</family>
+	  </default>
+	</alias>
+
+	<alias>
+	  <family>Courier New</family>
+	  <default>
+	  <family>Courier</family>
+	  </default>
+	</alias>
+
+
+
+<!-- Map generics to specifics -->
+
+	<!-- PostScript -->
+	<alias binding="same">
+	  <family>Helvetica</family>
+	  <accept>
+	  <family>TeX Gyre Heros</family>
+	  <family>Nimbus Sans L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Helvetica Condensed</family>
+	  <accept>
+	  <family>TeX Gyre Heros Cn</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Times</family>
+	  <accept>
+<!--
+     Due to Bug#73291, commented out this line until the broken font are fixed.
+	  <family>TeX Gyre Termes</family>
+-->
+	  <family>Nimbus Roman No9 L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Courier</family>
+	  <accept>
+	  <family>TeX Gyre Cursor</family>
+	  <family>Nimbus Mono L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>ITC Avant Garde Gothic</family>
+	  <accept>
+	  <family>TeX Gyre Adventor</family>
+	  <family>URW Gothic L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>ITC Bookman</family>
+	  <accept>
+	  <family>Bookman Old Style</family>
+	  <family>TeX Gyre Bonum</family>
+	  <family>URW Bookman L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>ITC Zapf Chancery</family>
+	  <accept>
+	  <family>TeX Gyre Chorus</family>
+	  <family>URW Chancery L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Palatino</family>
+	  <accept>
+	  <family>Palatino Linotype</family>
+	  <family>TeX Gyre Pagella</family>
+	  <family>URW Palladio L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>New Century Schoolbook</family>
+	  <accept>
+	  <family>Century Schoolbook</family>
+	  <family>TeX Gyre Schola</family>
+	  <family>Century Schoolbook L</family>
+	  </accept>
+	</alias>
+
+	<!-- Microsoft -->
+	<alias binding="same">
+	  <family>Arial</family>
+	  <accept>
+	    <family>Arimo</family>
+	    <family>Liberation Sans</family>
+	    <family>Albany</family>
+	    <family>Albany AMT</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Arial Narrow</family>
+	  <accept>
+	    <family>Liberation Sans Narrow</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Times New Roman</family>
+	  <accept>
+	    <family>Tinos</family>
+	    <family>Liberation Serif</family>
+	    <family>Thorndale</family>
+	    <family>Thorndale AMT</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Courier New</family>
+	  <accept>
+	    <family>Cousine</family>
+	    <family>Liberation Mono</family>
+	    <family>Cumberland</family>
+	    <family>Cumberland AMT</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Georgia</family>
+	  <accept>
+	    <family>Gelasio</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Cambria</family>
+	  <accept>
+	    <family>Caladea</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Calibri</family>
+	  <accept>
+	    <family>Carlito</family>
+	  </accept>
+  </alias>
+
+	<alias binding="same">
+	  <family>Symbol</family>
+	  <accept>
+	    <family>SymbolNeu</family>
+	  </accept>
+  </alias>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/20-unhint-small-vera.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/20-unhint-small-vera.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/20-unhint-small-vera.conf	(revision 2476)
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!-- 
+	The Bitstream Vera fonts have GASP entries suggesting that hinting be
+	disabled below 8 ppem, but FreeType ignores those, preferring to use
+	the data found in the instructed hints.  The initial Vera release
+	didn't include the right instructions in the 'prep' table. Fix this
+	by disabling hinting manually at smaller sizes (< 8ppem)
+ -->
+
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Bitstream Vera Sans</string>
+		</test>
+		<test name="pixelsize" compare="less">
+			<double>7.5</double>
+		</test>
+		<edit name="hinting">
+			<bool>false</bool>
+		</edit>
+	</match>
+
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Bitstream Vera Serif</string>
+		</test>
+		<test name="pixelsize" compare="less">
+			<double>7.5</double>
+		</test>
+		<edit name="hinting">
+			<bool>false</bool>
+		</edit>
+	</match>
+
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Bitstream Vera Sans Mono</string>
+		</test>
+		<test name="pixelsize" compare="less">
+			<double>7.5</double>
+		</test>
+		<edit name="hinting">
+			<bool>false</bool>
+		</edit>
+	</match>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/49-sansserif.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/49-sansserif.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/49-sansserif.conf	(revision 2476)
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--
+  If the font still has no generic name, add sans-serif
+ -->
+	<match target="pattern">
+		<test qual="all" name="family" compare="not_eq">
+			<string>sans-serif</string>
+		</test>
+		<test qual="all" name="family" compare="not_eq">
+			<string>serif</string>
+		</test>
+		<test qual="all" name="family" compare="not_eq">
+			<string>monospace</string>
+		</test>
+		<edit name="family" mode="append_last">
+			<string>sans-serif</string>
+		</edit>
+	</match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/60-latin.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/60-latin.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/60-latin.conf	(revision 2476)
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+	<alias>
+		<family>serif</family>
+		<prefer>
+			<family>Bitstream Vera Serif</family>
+			<family>DejaVu Serif</family>
+			<family>Times New Roman</family>
+			<family>Thorndale AMT</family>
+			<family>Luxi Serif</family>
+			<family>Nimbus Roman No9 L</family>
+			<family>Times</family>
+		</prefer>
+	</alias>
+	<alias>
+		<family>sans-serif</family>
+		<prefer>
+			<family>Bitstream Vera Sans</family>
+			<family>DejaVu Sans</family>
+			<family>Verdana</family>
+			<family>Arial</family>
+			<family>Albany AMT</family>
+			<family>Luxi Sans</family>
+			<family>Nimbus Sans L</family>
+			<family>Helvetica</family>
+			<family>Lucida Sans Unicode</family>
+			<family>BPG Glaho International</family> <!-- lat,cyr,arab,geor -->
+			<family>Tahoma</family> <!-- lat,cyr,greek,heb,arab,thai -->
+		</prefer>
+	</alias>
+	<alias>
+		<family>monospace</family>
+		<prefer>
+			<family>Bitstream Vera Sans Mono</family>
+			<family>DejaVu Sans Mono</family>
+			<family>Inconsolata</family>
+			<family>Andale Mono</family>
+			<family>Courier New</family>
+			<family>Cumberland AMT</family>
+			<family>Luxi Mono</family>
+			<family>Nimbus Mono L</family>
+			<family>Courier</family>
+		</prefer>
+	</alias>
+<!--
+  Fantasy faces
+ -->
+ 	<alias>
+		<family>fantasy</family>
+		<prefer>
+			<family>Impact</family>
+			<family>Copperplate Gothic Std</family>
+			<family>Cooper Std</family>
+			<family>Bauhaus Std</family>
+		</prefer>
+	</alias>
+<!--
+  Cursive faces
+  -->
+	<alias>
+		<family>cursive</family>
+		<prefer>
+			<family>ITC Zapf Chancery Std</family>
+			<family>Zapfino</family>
+			<family>Comic Sans MS</family>
+		</prefer>
+	</alias>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/45-latin.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/45-latin.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/45-latin.conf	(revision 2476)
@@ -0,0 +1,189 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--
+  Mark common families with their generics so we'll get
+  something reasonable
+-->
+
+<!--
+  Serif faces
+ -->
+	<alias>
+		<family>Bitstream Vera Serif</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>DejaVu Serif</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Liberation Serif</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Times New Roman</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Times</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Nimbus Roman No9 L</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Luxi Serif</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Thorndale AMT</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Thorndale</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Georgia</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Garamond</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Palatino Linotype</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Trebuchet MS</family>
+		<default><family>serif</family></default>
+	</alias>
+<!--
+  Sans-serif faces
+ -->
+	<alias>
+		<family>Bitstream Vera Sans</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>DejaVu Sans</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Liberation Sans</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Arial</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Helvetica</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Verdana</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Albany AMT</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Albany</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Nimbus Sans L</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Luxi Sans</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+<!--
+  Monospace faces
+ -->
+ 	<alias>
+		<family>Bitstream Vera Sans Mono</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>DejaVu Sans Mono</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Liberation Mono</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Inconsolata</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Courier New</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Courier</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Andale Mono</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Luxi Mono</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Cumberland AMT</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Cumberland</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Nimbus Mono L</family>
+		<default><family>monospace</family></default>
+	</alias>
+<!--
+  Fantasy faces
+ -->
+ 	<alias>
+		<family>Impact</family>
+		<default><family>fantasy</family></default>
+	</alias>
+	<alias>
+		<family>Copperplate Gothic Std</family>
+		<default><family>fantasy</family></default>
+	</alias>
+	<alias>
+		<family>Cooper Std</family>
+		<default><family>fantasy</family></default>
+	</alias>
+	<alias>
+		<family>Bauhaus Std</family>
+		<default><family>fantasy</family></default>
+	</alias>
+<!--
+  Cursive faces
+  -->
+	<alias>
+		<family>ITC Zapf Chancery Std</family>
+		<default><family>cursive</family></default>
+	</alias>
+	<alias>
+		<family>Zapfino</family>
+		<default><family>cursive</family></default>
+	</alias>
+	<alias>
+		<family>Comic Sans MS</family>
+		<default><family>cursive</family></default>
+	</alias>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/50-user.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/50-user.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/50-user.conf	(revision 2476)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+	<!--
+	    Load per-user customization files where stored on XDG Base Directory
+	    specification compliant places. it should be usually:
+	      $HOME/.config/fontconfig/conf.d
+	      $HOME/.config/fontconfig/fonts.conf
+	-->
+	<include ignore_missing="yes" prefix="xdg">fontconfig/conf.d</include>
+	<include ignore_missing="yes" prefix="xdg">fontconfig/fonts.conf</include>
+	<!-- the following elements will be removed in the future -->
+	<include ignore_missing="yes" deprecated="yes">~/.fonts.conf.d</include>
+	<include ignore_missing="yes" deprecated="yes">~/.fonts.conf</include>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/90-synthetic.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/90-synthetic.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/90-synthetic.conf	(revision 2476)
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!-- 
+ Artificial oblique for fonts without an italic or oblique version
+ -->
+ 
+	<match target="font">
+		<!-- check to see if the font is roman -->
+		<test name="slant">
+			<const>roman</const>
+		</test>
+		<!-- check to see if the pattern requested non-roman -->
+		<test target="pattern" name="slant" compare="not_eq">
+			<const>roman</const>
+		</test>
+		<!-- multiply the matrix to slant the font -->
+		<edit name="matrix" mode="assign">
+			<times>
+				<name>matrix</name>
+				<matrix><double>1</double><double>0.2</double>
+					<double>0</double><double>1</double>
+				</matrix>
+			</times>
+		</edit>
+		<!-- pretend the font is oblique now -->
+		<edit name="slant" mode="assign">
+			<const>oblique</const>
+		</edit>
+		<!-- and disable embedded bitmaps for artificial oblique -->
+		<edit name="embeddedbitmap" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+
+<!--
+ Synthetic emboldening for fonts that do not have bold face available
+ -->
+
+	<match target="font">
+		<!-- check to see if the font is just regular -->
+		<test name="weight" compare="less_eq">
+			<const>medium</const>
+		</test>
+		<!-- check to see if the pattern requests bold -->
+		<test target="pattern" name="weight" compare="more">
+			<const>medium</const>
+		</test>
+		<!--
+		  set the embolden flag
+		  needed for applications using cairo, e.g. gucharmap, gedit, ...
+		-->
+		<edit name="embolden" mode="assign">
+			<bool>true</bool>
+		</edit>
+		<!--
+		 set weight to bold
+		 needed for applications using Xft directly, e.g. Firefox, ...
+		-->
+		<edit name="weight" mode="assign">
+			<const>bold</const>
+		</edit>
+	</match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/40-nonlatin.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/40-nonlatin.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/40-nonlatin.conf	(revision 2476)
@@ -0,0 +1,231 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--
+  Mark common families with their generics so we'll get
+  something reasonable
+-->
+
+<!--
+  Serif faces
+ -->
+	<alias>
+		<family>Nazli</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Lotoos</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Mitra</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Ferdosi</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Badr</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Zar</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Titr</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Jadid</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Kochi Mincho</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>AR PL SungtiL GB</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>AR PL Mingti2L Big5</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>ＭＳ 明朝</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>NanumMyeongjo</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>UnBatang</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Baekmuk Batang</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>MgOpen Canonica</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Sazanami Mincho</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>AR PL ZenKai Uni</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>ZYSong18030</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>FreeSerif</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>SimSun</family>
+		<default><family>serif</family></default>
+	</alias>
+<!--
+  Sans-serif faces
+ -->
+	<alias>
+		<family>Arshia</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Elham</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Farnaz</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Nasim</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Sina</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Roya</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Koodak</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Terafik</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Kochi Gothic</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>AR PL KaitiM GB</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>AR PL KaitiM Big5</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>ＭＳ ゴシック</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>NanumGothic</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>UnDotum</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Baekmuk Dotum</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>MgOpen Modata</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Sazanami Gothic</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>AR PL ShanHeiSun Uni</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>ZYSong18030</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>FreeSans</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+<!--
+  Monospace faces
+ -->
+	<alias>
+		<family>NSimSun</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>ZYSong18030</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>NanumGothicCoding</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>FreeMono</family>
+		<default><family>monospace</family></default>
+	</alias>
+
+<!--
+  Fantasy faces
+ -->
+	<alias>
+		<family>Homa</family>
+		<default><family>fantasy</family></default>
+	</alias>
+	<alias>
+		<family>Kamran</family>
+		<default><family>fantasy</family></default>
+	</alias>
+	<alias>
+		<family>Fantezi</family>
+		<default><family>fantasy</family></default>
+	</alias>
+	<alias>
+		<family>Tabassom</family>
+		<default><family>fantasy</family></default>
+	</alias>
+
+<!--
+  Cursive faces
+ -->
+	<alias>
+		<family>IranNastaliq</family>
+		<default><family>cursive</family></default>
+	</alias>
+	<alias>
+		<family>Nafees Nastaleeq</family>
+		<default><family>cursive</family></default>
+	</alias>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/80-delicious.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/80-delicious.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/80-delicious.conf	(revision 2476)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!-- Fix-ups for Delicious family -->
+
+<!-- Delicious 'heavy' variant says its Medium weight -->
+<match target="scan">
+	<test name="family" compare="eq" ignore-blanks="true">
+		<string>Delicious</string>
+	</test>
+	<test name="style">
+		<string>Heavy</string>
+	</test>
+	<edit name="weight">
+		<const>heavy</const>
+	</edit>
+</match>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/10-scale-bitmap-fonts.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/10-scale-bitmap-fonts.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.d/10-scale-bitmap-fonts.conf	(revision 2476)
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+
+<match target="font">
+  <test name="scalable" compare="eq">
+    <bool>false</bool>
+  </test>
+  <edit name="pixelsizefixupfactor" mode="assign">
+    <divide>
+      <name target="pattern">pixelsize</name>
+      <name target="font"   >pixelsize</name>
+    </divide>
+  </edit>
+</match>
+<match target="font">
+  <test name="scalable" compare="eq">
+    <bool>false</bool>
+  </test>
+  <edit name="scalingnotneeded" mode="assign">
+    <and>
+      <less>
+        <name>pixelsizefixupfactor</name>
+        <double>1.2</double>
+      </less>
+      <more>
+        <name>pixelsizefixupfactor</name>
+        <double>0.8</double>
+      </more>
+    </and>
+  </edit>
+</match>
+<!--
+  So far we determined the scale factor.  Now, check and if
+  scaling is NOT desirable, just reset the scale factor to 1.0.
+  -->
+<match target="font">
+  <test name="scalable" compare="eq">
+    <bool>false</bool>
+  </test>
+  <test name="pixelsize" target="pattern" compare="less">
+    <double>64</double>
+  </test>
+  <test name="hinting" compare="eq">
+    <bool>true</bool>
+  </test>
+  <test name="scalingnotneeded" compare="eq">
+    <bool>true</bool>
+  </test>
+  <edit name="pixelsizefixupfactor" mode="assign">
+    <double>1.0</double>
+  </edit>
+</match>
+<!--
+  If we *are* going to scale, go ahead and do it.
+  -->
+<match target="font">
+  <test name="scalable" compare="eq">
+    <bool>false</bool>
+  </test>
+  <test name="pixelsizefixupfactor" compare="not_eq">
+    <double>1.0</double>
+  </test>
+  <edit name="matrix" mode="assign">
+    <times>
+      <name>matrix</name>
+      <matrix>
+        <name>pixelsizefixupfactor</name> <double>0</double>
+        <double>0</double> <name>pixelsizefixupfactor</name>
+       </matrix>
+    </times>
+  </edit>
+  <edit name="size" mode="assign">
+    <divide>
+      <name>size</name>
+      <name>pixelsizefixupfactor</name>
+    </divide>
+  </edit>
+</match>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/fonts.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/fonts.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/fonts.conf	(revision 2476)
@@ -0,0 +1,155 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!-- /etc/fonts/fonts.conf file to configure system font access -->
+<fontconfig>
+
+<!--
+	DO NOT EDIT THIS FILE.
+	IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.
+	LOCAL CHANGES BELONG IN 'local.conf'.
+
+	The intent of this standard configuration file is to be adequate for
+	most environments.  If you have a reasonably normal environment and
+	have found problems with this configuration, they are probably
+	things that others will also want fixed.  Please submit any
+	problems to the fontconfig bugzilla system located at fontconfig.org
+
+	Note that the normal 'make install' procedure for fontconfig is to
+	replace any existing fonts.conf file with the new version.  Place
+	any local customizations in local.conf which this file references.
+
+	Keith Packard
+-->
+
+<!-- Font directory list -->
+
+	<dir>/usr/X11/lib/X11/fonts</dir>
+	<dir>/System/Library/Fonts</dir> <dir>/Library/Fonts</dir> <dir>~/Library/Fonts</dir>
+	<dir prefix="xdg">fonts</dir>
+	<!-- the following element will be removed in the future -->
+	<dir>~/.fonts</dir>
+
+<!--
+  Accept deprecated 'mono' alias, replacing it with 'monospace'
+-->
+	<match target="pattern">
+		<test qual="any" name="family">
+			<string>mono</string>
+		</test>
+		<edit name="family" mode="assign" binding="same">
+			<string>monospace</string>
+		</edit>
+	</match>
+
+<!--
+  Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
+-->
+	<match target="pattern">
+		<test qual="any" name="family">
+			<string>sans serif</string>
+		</test>
+		<edit name="family" mode="assign" binding="same">
+			<string>sans-serif</string>
+		</edit>
+	</match>
+
+<!--
+  Accept deprecated 'sans' alias, replacing it with 'sans-serif'
+-->
+	<match target="pattern">
+		<test qual="any" name="family">
+			<string>sans</string>
+		</test>
+		<edit name="family" mode="assign" binding="same">
+			<string>sans-serif</string>
+		</edit>
+	</match>
+
+<!--
+  Load local system customization file
+-->
+	<include ignore_missing="yes">conf.d</include>
+
+<!-- Font cache directory list -->
+
+	<cachedir>/Library/Frameworks/R.framework/Resources/fontconfig/cache</cachedir>
+	<cachedir prefix="xdg">fontconfig</cachedir>
+	<!-- the following element will be removed in the future -->
+	<cachedir>~/.fontconfig</cachedir>
+
+	<config>
+<!--
+  These are the default Unicode chars that are expected to be blank
+  in fonts.  All other blank chars are assumed to be broken and
+  won't appear in the resulting charsets
+ -->
+		<blank>
+			<int>0x0020</int>	<!-- SPACE -->
+			<int>0x00A0</int>	<!-- NO-BREAK SPACE -->
+			<int>0x00AD</int>	<!-- SOFT HYPHEN -->
+			<int>0x034F</int>	<!-- COMBINING GRAPHEME JOINER -->
+			<int>0x0600</int>	<!-- ARABIC NUMBER SIGN -->
+			<int>0x0601</int>	<!-- ARABIC SIGN SANAH -->
+			<int>0x0602</int>	<!-- ARABIC FOOTNOTE MARKER -->
+			<int>0x0603</int>	<!-- ARABIC SIGN SAFHA -->
+			<int>0x06DD</int>	<!-- ARABIC END OF AYAH -->
+			<int>0x070F</int>	<!-- SYRIAC ABBREVIATION MARK -->
+			<int>0x115F</int>	<!-- HANGUL CHOSEONG FILLER -->
+			<int>0x1160</int>	<!-- HANGUL JUNGSEONG FILLER -->
+			<int>0x1680</int>	<!-- OGHAM SPACE MARK -->
+			<int>0x17B4</int>	<!-- KHMER VOWEL INHERENT AQ -->
+			<int>0x17B5</int>	<!-- KHMER VOWEL INHERENT AA -->
+			<int>0x180E</int>	<!-- MONGOLIAN VOWEL SEPARATOR -->
+			<int>0x2000</int>	<!-- EN QUAD -->
+			<int>0x2001</int>	<!-- EM QUAD -->
+			<int>0x2002</int>	<!-- EN SPACE -->
+			<int>0x2003</int>	<!-- EM SPACE -->
+			<int>0x2004</int>	<!-- THREE-PER-EM SPACE -->
+			<int>0x2005</int>	<!-- FOUR-PER-EM SPACE -->
+			<int>0x2006</int>	<!-- SIX-PER-EM SPACE -->
+			<int>0x2007</int>	<!-- FIGURE SPACE -->
+			<int>0x2008</int>	<!-- PUNCTUATION SPACE -->
+			<int>0x2009</int>	<!-- THIN SPACE -->
+			<int>0x200A</int>	<!-- HAIR SPACE -->
+			<int>0x200B</int>	<!-- ZERO WIDTH SPACE -->
+			<int>0x200C</int>	<!-- ZERO WIDTH NON-JOINER -->
+			<int>0x200D</int>	<!-- ZERO WIDTH JOINER -->
+			<int>0x200E</int>	<!-- LEFT-TO-RIGHT MARK -->
+			<int>0x200F</int>	<!-- RIGHT-TO-LEFT MARK -->
+			<int>0x2028</int>	<!-- LINE SEPARATOR -->
+			<int>0x2029</int>	<!-- PARAGRAPH SEPARATOR -->
+			<int>0x202A</int>	<!-- LEFT-TO-RIGHT EMBEDDING -->
+			<int>0x202B</int>	<!-- RIGHT-TO-LEFT EMBEDDING -->
+			<int>0x202C</int>	<!-- POP DIRECTIONAL FORMATTING -->
+			<int>0x202D</int>	<!-- LEFT-TO-RIGHT OVERRIDE -->
+			<int>0x202E</int>	<!-- RIGHT-TO-LEFT OVERRIDE -->
+			<int>0x202F</int>	<!-- NARROW NO-BREAK SPACE -->
+			<int>0x205F</int>	<!-- MEDIUM MATHEMATICAL SPACE -->
+			<int>0x2060</int>	<!-- WORD JOINER -->
+			<int>0x2061</int>	<!-- FUNCTION APPLICATION -->
+			<int>0x2062</int>	<!-- INVISIBLE TIMES -->
+			<int>0x2063</int>	<!-- INVISIBLE SEPARATOR -->
+			<int>0x206A</int>	<!-- INHIBIT SYMMETRIC SWAPPING -->
+			<int>0x206B</int>	<!-- ACTIVATE SYMMETRIC SWAPPING -->
+			<int>0x206C</int>	<!-- INHIBIT ARABIC FORM SHAPING -->
+			<int>0x206D</int>	<!-- ACTIVATE ARABIC FORM SHAPING -->
+			<int>0x206E</int>	<!-- NATIONAL DIGIT SHAPES -->
+			<int>0x206F</int>	<!-- NOMINAL DIGIT SHAPES -->
+			<int>0x2800</int>	<!-- BRAILLE PATTERN BLANK -->
+			<int>0x3000</int>	<!-- IDEOGRAPHIC SPACE -->
+			<int>0x3164</int>	<!-- HANGUL FILLER -->
+			<int>0xFEFF</int>	<!-- ZERO WIDTH NO-BREAK SPACE -->
+			<int>0xFFA0</int>	<!-- HALFWIDTH HANGUL FILLER -->
+			<int>0xFFF9</int>	<!-- INTERLINEAR ANNOTATION ANCHOR -->
+			<int>0xFFFA</int>	<!-- INTERLINEAR ANNOTATION SEPARATOR -->
+			<int>0xFFFB</int>	<!-- INTERLINEAR ANNOTATION TERMINATOR -->
+		</blank>
+<!--
+  Rescan configuration every 30 seconds when FcFontSetList is called
+ -->
+		<rescan>
+			<int>30</int>
+		</rescan>
+	</config>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/25-unhint-nonlatin.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/25-unhint-nonlatin.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/25-unhint-nonlatin.conf	(revision 2476)
@@ -0,0 +1,128 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+
+<!-- We can't hint CJK fonts well, so turn off hinting for CJK fonts. -->
+
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Kochi Mincho</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Kochi Gothic</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Sazanami Mincho</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Sazanami Gothic</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Baekmuk Batang</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Baekmuk Dotum</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Baekmuk Gulim</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Baekmuk Headline</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>AR PL Mingti2L Big5</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>AR PL ShanHeiSun Uni</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>AR PL KaitiM Big5</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>AR PL ZenKai Uni</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>AR PL SungtiL GB</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>AR PL KaitiM GB</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>ZYSong18030</string>
+		</test>
+		<edit name="hinting" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/11-lcdfilter-default.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/11-lcdfilter-default.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/11-lcdfilter-default.conf	(revision 2476)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--  Use lcddefault as default for LCD filter -->
+  <match target="pattern">
+    <!--
+      This configuration is available on the major desktop environments.
+      We shouldn't overwrite it with "assign" unconditionally.
+      Most clients may picks up the first value only. so using "append"
+      may simply works to avoid it.
+    -->
+    <edit mode="append" name="lcdfilter">
+      <const>lcddefault</const>
+    </edit>
+  </match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-autohint.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-autohint.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-autohint.conf	(revision 2476)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--  Use the Autohinter --> 
+  <match target="pattern">
+    <!--
+      This configuration is available on the major desktop environments.
+      We shouldn't overwrite it with "assign" unconditionally.
+      Most clients may picks up the first value only. so using "append"
+      may simply works to avoid it.
+    -->
+    <edit name="autohint" mode="append"><bool>true</bool></edit>
+  </match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/65-nonlatin.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/65-nonlatin.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/65-nonlatin.conf	(revision 2476)
@@ -0,0 +1,196 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+	<alias>
+		<family>serif</family>
+		<prefer>
+			<family>Artsounk</family> <!-- armenian -->
+			<family>BPG UTF8 M</family> <!-- georgian -->
+			<family>Kinnari</family> <!-- thai -->
+			<family>Norasi</family> <!-- thai -->
+			<family>Frank Ruehl</family> <!-- hebrew -->
+			<family>Dror</family>  <!-- hebrew -->
+			<family>JG LaoTimes</family>  <!-- lao -->
+			<family>Saysettha Unicode</family>  <!-- lao -->
+			<family>Pigiarniq</family> <!-- canadian syllabics -->
+			<family>B Davat</family> <!-- arabic (fa) -->
+			<family>B Compset</family>  <!-- arabic (fa) -->
+			<family>Kacst-Qr</family> <!-- arabic (ar) -->
+			<family>Urdu Nastaliq Unicode</family> <!-- arabic (ur) -->
+			<family>Raghindi</family> <!-- devanagari -->
+			<family>Mukti Narrow</family> <!-- bengali -->
+			<family>malayalam</family> <!-- malayalam -->
+			<family>Sampige</family> <!-- kannada -->
+			<family>padmaa</family> <!-- gujarati -->
+			<family>Hapax Berbère</family> <!-- tifinagh -->
+			<family>MS Mincho</family> <!-- han (ja) -->
+			<family>SimSun</family> <!-- han (zh-cn,zh-tw) -->
+			<family>PMingLiu</family> <!-- han (zh-tw) -->
+			<family>WenQuanYi Zen Hei</family> <!-- han (zh-cn,zh-tw) -->
+			<family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
+			<family>AR PL ShanHeiSun Uni</family> <!-- han (ja,zh-cn,zh-tw) -->
+			<family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
+			<family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
+			<family>HanyiSong</family> <!-- han (zh-cn,zh-tw) -->
+			<family>MgOpen Canonica</family>
+			<family>Sazanami Mincho</family>
+			<family>IPAMonaMincho</family>
+			<family>IPAMincho</family>
+			<family>Kochi Mincho</family>
+			<family>AR PL SungtiL GB</family>
+			<family>AR PL Mingti2L Big5</family>
+ 			<family>AR PL Zenkai Uni</family>
+			<family>ＭＳ 明朝</family>
+ 			<family>ZYSong18030</family>
+			<family>NanumMyeongjo</family> <!-- hangul (ko) -->
+			<family>UnBatang</family> <!-- hangul (ko) -->
+			<family>Baekmuk Batang</family> <!-- hangul (ko) -->
+ 			<family>KacstQura</family>
+ 			<family>Frank Ruehl CLM</family>
+			<family>Lohit Bengali</family>
+ 			<family>Lohit Gujarati</family>
+ 			<family>Lohit Hindi</family>
+			<family>Lohit Marathi</family>
+			<family>Lohit Maithili</family>
+			<family>Lohit Kashmiri</family>
+			<family>Lohit Konkani</family>
+			<family>Lohit Nepali</family>
+			<family>Lohit Sindhi</family>
+ 			<family>Lohit Punjabi</family>
+ 			<family>Lohit Tamil</family>
+			<family>Meera</family>
+			<family>Lohit Malayalam</family>
+ 			<family>Lohit Kannada</family>
+ 			<family>Lohit Telugu</family>
+ 			<family>Lohit Oriya</family>
+ 			<family>LKLUG</family>
+		</prefer>
+	</alias>
+	<alias>
+		<family>sans-serif</family>
+		<prefer>
+			<family>Nachlieli</family> <!-- hebrew -->
+			<family>Lucida Sans Unicode</family>
+			<family>Yudit Unicode</family>
+			<family>Kerkis</family> <!-- greek -->
+			<family>ArmNet Helvetica</family> <!-- armenian -->
+			<family>Artsounk</family> <!-- armenian -->
+			<family>BPG UTF8 M</family> <!-- georgian -->
+			<family>Waree</family> <!-- thai -->
+			<family>Loma</family> <!-- thai -->
+			<family>Garuda</family> <!-- thai -->
+			<family>Umpush</family> <!-- thai -->
+			<family>Saysettha Unicode</family> <!-- lao? -->
+			<family>JG Lao Old Arial</family> <!-- lao -->
+			<family>GF Zemen Unicode</family> <!-- ethiopic -->
+			<family>Pigiarniq</family> <!-- canadian syllabics -->
+			<family>B Davat</family> <!-- arabic (fa) -->
+			<family>B Compset</family> <!-- arabic (fa) -->
+			<family>Kacst-Qr</family> <!-- arabic (ar) -->
+			<family>Urdu Nastaliq Unicode</family> <!-- arabic (ur) -->
+			<family>Raghindi</family> <!-- devanagari -->
+			<family>Mukti Narrow</family> <!-- bengali -->
+			<family>malayalam</family> <!-- malayalam -->
+			<family>Sampige</family> <!-- kannada -->
+			<family>padmaa</family> <!-- gujarati -->
+			<family>Hapax Berbère</family> <!-- tifinagh -->
+			<family>MS Gothic</family> <!-- han (ja) -->
+			<family>UmePlus P Gothic</family> <!-- han (ja) -->
+			<!-- chinese fonts are actually serifed -->
+			<family>SimSun</family> <!-- han (zh-cn,zh-tw) -->
+			<family>PMingLiu</family> <!-- han (zh-tw) -->
+			<family>WenQuanYi Zen Hei</family> <!-- han (zh-cn,zh-tw) -->
+			<family>WenQuanYi Bitmap Song</family> <!-- han (zh-cn,zh-tw) -->
+			<family>AR PL ShanHeiSun Uni</family> <!--han (ja,zh-cn,zh-tw) -->
+			<family>AR PL New Sung</family> <!-- han (zh-cn,zh-tw) -->
+			<family>MgOpen Modata</family>
+			<family>VL Gothic</family>
+			<family>IPAMonaGothic</family>
+			<family>IPAGothic</family>
+			<family>Sazanami Gothic</family>
+			<family>Kochi Gothic</family>
+			<family>AR PL KaitiM GB</family>
+			<family>AR PL KaitiM Big5</family>
+ 			<family>AR PL ShanHeiSun Uni</family>
+ 			<family>AR PL SungtiL GB</family>
+ 			<family>AR PL Mingti2L Big5</family>
+			<family>ＭＳ ゴシック</family>
+			<family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
+			<family>TSCu_Paranar</family> <!-- tamil -->
+			<family>NanumGothic</family> <!-- hangul (ko) -->
+			<family>UnDotum</family> <!-- hangul (ko) -->
+			<family>Baekmuk Dotum</family> <!-- hangul (ko) -->
+ 			<family>Baekmuk Gulim</family> <!-- hangul (ko) -->
+ 			<family>KacstQura</family>
+			<family>Lohit Bengali</family>
+ 			<family>Lohit Gujarati</family>
+ 			<family>Lohit Hindi</family>
+			<family>Lohit Marathi</family>
+			<family>Lohit Maithili</family>
+			<family>Lohit Kashmiri</family>
+			<family>Lohit Konkani</family>
+			<family>Lohit Nepali</family>
+			<family>Lohit Sindhi</family>
+ 			<family>Lohit Punjabi</family>
+ 			<family>Lohit Tamil</family>
+			<family>Meera</family>
+ 			<family>Lohit Malayalam</family>
+ 			<family>Lohit Kannada</family>
+ 			<family>Lohit Telugu</family>
+ 			<family>Lohit Oriya</family>
+ 			<family>LKLUG</family>
+		</prefer>
+	</alias>
+	<alias>
+		<family>monospace</family>
+		<prefer>
+			<family>Miriam Mono</family> <!-- hebrew -->
+			<family>VL Gothic</family>
+			<family>IPAMonaGothic</family>
+			<family>IPAGothic</family>
+			<family>Sazanami Gothic</family>
+			<family>Kochi Gothic</family>
+			<family>AR PL KaitiM GB</family>
+			<family>MS Gothic</family> <!-- han (ja) -->
+			<family>UmePlus Gothic</family> <!-- han (ja) -->
+			<family>NSimSun</family> <!-- han (zh-cn,zh-tw) -->
+			<family>MingLiu</family> <!-- han (zh-tw) -->
+			<family>AR PL ShanHeiSun Uni</family> <!-- han (ja,zh-cn,zh-tw) -->
+			<family>AR PL New Sung Mono</family> <!-- han (zh-cn,zh-tw) -->
+			<family>HanyiSong</family> <!-- han (zh-cn) -->
+			<family>AR PL SungtiL GB</family>
+			<family>AR PL Mingti2L Big5</family>
+			<family>ZYSong18030</family> <!-- han (zh-cn,zh-tw) -->
+			<family>NanumGothicCoding</family> <!-- hangul (ko) -->
+			<family>NanumGothic</family> <!-- hangul (ko) -->
+			<family>UnDotum</family> <!-- hangul (ko) -->
+			<family>Baekmuk Dotum</family> <!-- hangul (ko) -->
+			<family>Baekmuk Gulim</family> <!-- hangul (ko) -->
+			<family>TlwgTypo</family> <!-- thai -->
+			<family>TlwgTypist</family> <!-- thai -->
+			<family>TlwgTypewriter</family> <!-- thai -->
+			<family>TlwgMono</family> <!-- thai -->
+			<family>Hasida</family> <!-- hebrew -->
+			<family>Mitra Mono</family> <!-- bengali -->
+			<family>GF Zemen Unicode</family> <!-- ethiopic -->
+			<family>Hapax Berbère</family> <!-- tifinagh -->
+			<family>Lohit Bengali</family>
+			<family>Lohit Gujarati</family>
+			<family>Lohit Hindi</family>
+			<family>Lohit Marathi</family>
+			<family>Lohit Maithili</family>
+			<family>Lohit Kashmiri</family>
+			<family>Lohit Konkani</family>
+			<family>Lohit Nepali</family>
+			<family>Lohit Sindhi</family>
+			<family>Lohit Punjabi</family>
+			<family>Lohit Tamil</family>
+			<family>Meera</family>
+			<family>Lohit Malayalam</family>
+			<family>Lohit Kannada</family>
+			<family>Lohit Telugu</family>
+			<family>Lohit Oriya</family>
+			<family>LKLUG</family>
+		</prefer>
+	</alias>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/30-urw-aliases.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/30-urw-aliases.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/30-urw-aliases.conf	(revision 2476)
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--
+  URW provides metric and shape compatible fonts for some Adobe families.
+  Most of these are handled in 30-metric-aliases.conf.
+  -->
+	<alias binding="same">
+	  <family>Zapf Dingbats</family>
+	  <accept><family>Dingbats</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>ITC Zapf Dingbats</family>
+	  <accept><family>Dingbats</family></accept>
+	</alias>
+	<match target="pattern">
+	  <test name="family" compare="eq" ignore-blanks="true">
+	    <string>Symbol</string>
+	  </test>
+	  <edit name="family" mode="append" binding="same">
+	    <string>Standard Symbols L</string>
+	  </edit>
+	</match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/51-local.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/51-local.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/51-local.conf	(revision 2476)
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+	<!-- Load local system customization file -->
+	<include ignore_missing="yes">local.conf</include>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/69-unifont.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/69-unifont.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/69-unifont.conf	(revision 2476)
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+	<alias>
+		<family>serif</family>
+		<prefer>
+			<family>FreeSerif</family>
+			<family>Code2000</family>
+			<family>Code2001</family> <!-- plane1 and beyond -->
+		</prefer>
+	</alias>
+	<alias>
+		<family>sans-serif</family>
+		<prefer>
+			<family>FreeSans</family>
+			<family>Arial Unicode MS</family>
+			<family>Arial Unicode</family>
+			<family>Code2000</family> <!-- almost everything; serif actually -->
+			<family>Code2001</family> <!-- plane1 and beyond -->
+		</prefer>
+	</alias>
+	<alias>
+		<family>monospace</family>
+		<prefer>
+			<family>FreeMono</family>
+		</prefer>
+	</alias>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/65-fonts-persian.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/65-fonts-persian.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/65-fonts-persian.conf	(revision 2476)
@@ -0,0 +1,419 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!--
+  fonts-persian.conf
+  To configure Persian fonts from The FarsiWeb Project.
+
+  Copyright (C) 2005  Sharif FarsiWeb, Inc. <license@farsiweb.info>
+
+  Permission to use, copy, modify, distribute, and sell this software and its
+  documentation for any purpose is hereby granted without fee, provided that
+  the above copyright notice appear in all copies and that both that
+  copyright notice and this permission notice appear in supporting
+  documentation, and that the name of Sharif FarsiWeb, Inc. not be used in
+  advertising or publicity pertaining to distribution of the software without
+  specific, written prior permission.  Sharif FarsiWeb, Inc. makes no
+  representations about the suitability of this software for any purpose.  It
+  is provided "as is" without express or implied warranty.
+
+  SHARIF FARSIWEB, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+  EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+  PERFORMANCE OF THIS SOFTWARE.
+
+  ChangeLog:
+    2005-04-03  Behdad Esfahbod:  Initial revision.
+    2005-10-09  Behdad Esfahbod:  Turned off back-slant and Tahoma sections.
+    2005-11-30  Behdad Esfahbod:  Set Titr susbtitution size to 24 points.
+    2008	Behdad Esfahbod:  Cleanup.  Add fantasy and cursive.
+  -->
+<fontconfig>
+
+
+<!-- Deprecated fonts are discouraged -->
+
+	<!-- Nesf[2] is officially deprecated and has problematic tables -->
+	<alias binding="same">
+	  <family>Nesf</family>
+	  <accept><family>Nesf2</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Nesf2</family>
+	  <accept><family>Persian_sansserif_default</family></accept>
+	</alias>
+
+<!-- Name changes and spelling variant aliases -->
+
+	<alias binding="same">
+	  <family>Nazanin</family>
+	  <accept><family>Nazli</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Lotus</family>
+	  <accept><family>Lotoos</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Yaqut</family>
+	  <accept><family>Yaghoot</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Yaghut</family>
+	  <accept><family>Yaghoot</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Traffic</family>
+	  <accept><family>Terafik</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Ferdowsi</family>
+	  <accept><family>Ferdosi</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Fantezy</family>
+	  <accept><family>Fantezi</family></accept>
+	</alias>
+
+
+<!-- Classify fonts. -->
+
+	<!-- Persian_title class -->
+	<alias binding="same">
+	  <family>Jadid</family>
+	  <accept><family>Persian_title</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Titr</family>
+	  <accept><family>Persian_title</family></accept>
+	</alias>
+
+	<!-- Persian_fantasy class -->
+	<alias binding="same">
+	  <family>Kamran</family>
+	  <accept>
+	  <family>Persian_fantasy</family>
+	  <family>Homa</family>
+	  </accept>
+	</alias>
+	<alias binding="same">
+	  <family>Homa</family>
+	  <accept>
+	  <family>Persian_fantasy</family>
+	  <family>Kamran</family>
+	  </accept>
+	</alias>
+	<alias binding="same">
+	  <family>Fantezi</family>
+	  <accept><family>Persian_fantasy</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Tabassom</family>
+	  <accept><family>Persian_fantasy</family></accept>
+	</alias>
+
+	<!-- Persian_square class -->
+	<alias binding="same">
+	  <family>Arshia</family>
+	  <accept><family>Persian_square</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Nasim</family>
+	  <accept><family>Persian_square</family></accept>
+	</alias>
+	<alias binding="same">
+	  <family>Elham</family>
+	  <accept>
+	  <family>Persian_square</family>
+	  <family>Farnaz</family>
+	  </accept>
+	</alias>
+	<alias binding="same">
+	  <family>Farnaz</family>
+	  <accept>
+	  <family>Persian_square</family>
+	  <family>Elham</family>
+	  </accept>
+	</alias>
+	<alias binding="same">
+	  <family>Sina</family>
+	  <accept><family>Persian_square</family></accept>
+	</alias>
+
+<!-- Font ordering per class -->
+
+	<!-- Persian_title class -->
+	<alias binding="same">
+	  <family>Persian_title</family>
+	  <accept>
+	  <family>Titr</family>
+	  <family>Jadid</family>
+	  <family>Persian_serif</family>
+	  </accept>
+	</alias>
+
+	<!-- Persian_fantasy class -->
+	<alias binding="same">
+	  <family>Persian_fantasy</family>
+	  <accept>
+	  <family>Homa</family>
+	  <family>Kamran</family>
+	  <family>Fantezi</family>
+	  <family>Tabassom</family>
+	  <family>Persian_square</family>
+	  </accept>
+	</alias>
+
+	<!-- Persian_square class -->
+	<alias binding="same">
+	  <family>Persian_square</family>
+	  <accept>
+	  <family>Arshia</family>
+	  <family>Elham</family>
+	  <family>Farnaz</family>
+	  <family>Nasim</family>
+	  <family>Sina</family>
+	  <family>Persian_serif</family>
+	  </accept>
+	</alias>
+
+<!-- Register the fonts that we actually do have -->
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Elham</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Homa</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Koodak</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Nazli</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Roya</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Terafik</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+	<match target="scan">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Titr</string>
+		</test>
+		<edit name="foundry">
+			<string>farsiweb</string>
+		</edit>
+	</match>
+
+
+<!-- Our fonts should oblique to the other side (TURNED-OFF) -->
+
+	<match target="font">
+		<test name="foundry">
+			<!--string>farsiweb</string-->
+			<string>TURNED-OFF</string>
+		</test>
+		<test name="foundry">
+			<string>farsiweb</string>
+		</test>
+		<!-- check to see if the font is roman -->
+		<test name="slant">
+			<const>roman</const>
+		</test>
+		<!-- check to see if the pattern requested non-roman -->
+		<test target="pattern" name="slant" compare="not_eq">
+			<const>roman</const>
+		</test>
+		<!-- multiply the matrix to slant the font -->
+		<edit name="matrix" mode="assign">
+			<times>
+				<name>matrix</name>
+				<matrix><double>1</double><double>-0.2</double>
+					<double>0</double><double>1</double>
+				</matrix>
+			</times>
+		</edit>
+		<!-- pretend the font is oblique now -->
+		<edit name="slant" mode="assign">
+			<const>oblique</const>
+		</edit>
+	</match>
+
+
+<!--
+  We can't hint our fonts well, so turn off hinting.
+  Moreover, the bitmaps we have designed (well, they
+  have designed), suck, so disable them too.
+  -->
+
+	<match target="font">
+		<test name="foundry">
+			<string>farsiweb</string>
+		</test>
+		<edit name="autohint">
+			<bool>false</bool>
+		</edit>
+		<edit name="hinting">
+			<bool>false</bool>
+		</edit>
+ 		<edit name="embeddedbitmap">
+ 			<bool>false</bool>
+ 		</edit>
+	</match>
+
+
+<!-- Alias our fonts to common families -->
+
+	<!-- Persian serif fonts -->
+	<alias>
+		<family>serif</family>
+		<accept>
+			<family>Nazli</family>
+			<family>Lotoos</family>
+			<family>Mitra</family>
+			<family>Ferdosi</family>
+			<family>Badr</family>
+			<family>Zar</family>
+		</accept>
+	</alias>
+
+	<!-- Persian sans-serif fonts -->
+	<alias>
+		<family>sans-serif</family>
+		<accept>
+			<family>Roya</family>
+			<family>Koodak</family>
+			<family>Terafik</family>
+		</accept>
+	</alias>
+
+	<!-- Persian monospace fonts -->
+	<alias>
+		<family>monospace</family>
+		<accept>
+			<!-- Not really monospace -->
+			<family>Terafik</family>
+		</accept>
+	</alias>
+
+	<!-- Persian fantasy fonts -->
+	<alias>
+		<family>fantasy</family>
+		<accept>
+			<family>Homa</family>
+			<family>Kamran</family>
+			<family>Fantezi</family>
+			<family>Tabassom</family>
+		</accept>
+	</alias>
+
+	<!-- Persian (and Urdu) Nastaliq/cursive fonts -->
+	<alias>
+		<family>cursive</family>
+		<accept>
+			<family>IranNastaliq</family>
+			<family>Nafees Nastaleeq</family>
+		</accept>
+	</alias>
+
+<!-- Use Titr in titles -->
+
+	<!-- Both serif... -->
+	<match>
+		<test name="family">
+			<string>serif</string>
+		</test>
+		<test name="weight" compare="more_eq">
+			<int>200</int>
+		</test>
+		<test name="size" compare="more_eq">
+			<double>24</double>
+		</test>
+		<edit name="family" mode="prepend">
+			<string>Titr</string>
+		</edit>
+	</match>
+
+	<!-- and sans-serif. -->
+	<match>
+		<test name="family">
+			<string>sans-serif</string>
+		</test>
+		<test name="weight" compare="more_eq">
+			<int>200</int>
+		</test>
+		<test name="size" compare="more_eq">
+			<double>24</double>
+		</test>
+		<edit name="family" mode="prepend">
+			<string>Titr</string>
+		</edit>
+	</match>
+
+	<!-- and more. -->
+	<match>
+		<test name="family">
+			<string>Persian_sansserif_default</string>
+		</test>
+		<test name="weight" compare="more_eq">
+			<int>200</int>
+		</test>
+		<test name="size" compare="more_eq">
+			<double>24</double>
+		</test>
+		<edit name="family" mode="prepend" binding="same">
+			<string>Titr</string>
+		</edit>
+	</match>
+
+
+<!-- Default substituted for deprecated sans-serif fonts -->
+
+	<match>
+		<test name="family">
+			<string>Persian_sansserif_default</string>
+		</test>
+		<edit name="family" mode="assign" binding="same">
+			<string>Roya</string>
+		</edit>
+	</match>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/70-yes-bitmaps.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/70-yes-bitmaps.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/70-yes-bitmaps.conf	(revision 2476)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!-- Accept bitmap fonts -->
+ <selectfont>
+  <acceptfont>
+   <pattern>
+     <patelt name="scalable"><bool>false</bool></patelt>
+   </pattern>
+  </acceptfont>
+ </selectfont>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/30-metric-aliases.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/30-metric-aliases.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/30-metric-aliases.conf	(revision 2476)
@@ -0,0 +1,546 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+
+<!--
+
+Alias similar/metric-compatible families from various sources:
+
+PostScript fonts:       URW fonts:            GUST fonts:        Windows fonts:
+======================  ====================  =================  ==================
+Helvetica               Nimbus Sans L         TeX Gyre Heros
+Helvetica Condensed                           TeX Gyre Heros Cn
+Times                   Nimbus Roman No9 L    TeX Gyre Termes
+Courier                 Nimbus Mono L         TeX Gyre Cursor
+ITC Avant Garde Gothic  URW Gothic L          TeX Gyre Adventor
+ITC Bookman             URW Bookman L         TeX Gyre Bonum     Bookman Old Style
+ITC Zapf Chancery       URW Chancery L        TeX Gyre Chorus
+Palatino                URW Palladio L        TeX Gyre Pagella   Palatino Linotype
+New Century Schoolbook  Century Schoolbook L  TeX Gyre Schola    Century Schoolbook
+
+Microsoft fonts:  Liberation fonts:       Google CrOS core fonts:  StarOffice fonts:  AMT fonts:
+================  ======================  =======================  =================  ==============
+Arial             Liberation Sans         Arimo                    Albany             Albany AMT
+Arial Narrow      Liberation Sans Narrow
+Times New Roman   Liberation Serif        Tinos                    Thorndale          Thorndale AMT
+Courier New       Liberation Mono         Cousine                  Cumberland         Cumberland AMT
+Cambria                                   Caladea
+Calibri                                   Carlito
+Symbol                                    SymbolNeu
+
+Microsoft fonts:  Other fonts:
+================  ============
+Georgia           Gelasio
+
+We want for each of them to fallback to any of these available,
+but in an order preferring similar designs first.  We do this in three steps:
+
+1) Alias each specific to its generic family.
+   e.g. Liberation Sans to Arial
+
+2) Weak alias each generic to the other generic of its family.
+   e.g. Arial to Helvetica
+
+3) Alias each generic to its specifics.
+   e.g. Arial to Liberation Sans, Arimo, Albany, and Albany AMT
+
+-->
+
+<!-- Map specifics to generics -->
+
+	<!-- PostScript -->
+	<alias binding="same">
+	  <family>Nimbus Sans L</family>
+	  <default>
+	  <family>Helvetica</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Heros</family>
+	  <default>
+	  <family>Helvetica</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Heros Cn</family>
+	  <default>
+	  <family>Helvetica Condensed</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Nimbus Roman No9 L</family>
+	  <default>
+	  <family>Times</family>
+	  </default>
+	</alias>
+
+<!--
+     Due to Bug#73291, commented out those lines until the broken font are fixed.
+	<alias binding="same">
+	  <family>TeX Gyre Termes</family>
+	  <default>
+	  <family>Times</family>
+	  </default>
+	</alias>
+-->
+
+	<alias binding="same">
+	  <family>Nimbus Mono L</family>
+	  <default>
+	  <family>Courier</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Cursor</family>
+	  <default>
+	  <family>Courier</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Avant Garde</family>
+	  <default>
+	  <family>ITC Avant Garde Gothic</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>URW Gothic L</family>
+	  <default>
+	  <family>ITC Avant Garde Gothic</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Adventor</family>
+	  <default>
+	  <family>ITC Avant Garde Gothic</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Bookman</family>
+	  <default>
+	  <family>ITC Bookman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>URW Bookman L</family>
+	  <default>
+	  <family>ITC Bookman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Bonum</family>
+	  <default>
+	  <family>ITC Bookman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Bookman Old Style</family>
+	  <default>
+	  <family>ITC Bookman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Zapf Chancery</family>
+	  <default>
+	  <family>ITC Zapf Chancery</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>URW Chancery L</family>
+	  <default>
+	  <family>ITC Zapf Chancery</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Chorus</family>
+	  <default>
+	  <family>ITC Zapf Chancery</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>URW Palladio L</family>
+	  <default>
+	  <family>Palatino</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Pagella</family>
+	  <default>
+	  <family>Palatino</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Palatino Linotype</family>
+	  <default>
+	  <family>Palatino</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Century Schoolbook L</family>
+	  <default>
+	  <family>New Century Schoolbook</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>TeX Gyre Schola</family>
+	  <default>
+	  <family>New Century Schoolbook</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Century Schoolbook</family>
+	  <default>
+	  <family>New Century Schoolbook</family>
+	  </default>
+	</alias>
+
+
+	<!-- Microsoft -->
+	<alias binding="same">
+	  <family>Arimo</family>
+	  <default>
+	    <family>Arial</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Liberation Sans</family>
+	  <default>
+	  <family>Arial</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Liberation Sans Narrow</family>
+	  <default>
+	    <family>Arial Narrow</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Albany</family>
+	  <default>
+	  <family>Arial</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Albany AMT</family>
+	  <default>
+	  <family>Arial</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Tinos</family>
+	  <default>
+	    <family>Times New Roman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Liberation Serif</family>
+	  <default>
+	  <family>Times New Roman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Thorndale</family>
+	  <default>
+	  <family>Times New Roman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Thorndale AMT</family>
+	  <default>
+	  <family>Times New Roman</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Cousine</family>
+	  <default>
+	    <family>Courier New</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Liberation Mono</family>
+	  <default>
+	  <family>Courier New</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Cumberland</family>
+	  <default>
+	  <family>Courier New</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Cumberland AMT</family>
+	  <default>
+	  <family>Courier New</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Gelasio</family>
+	  <default>
+	  <family>Georgia</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Caladea</family>
+	  <default>
+	  <family>Cambria</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>Carlito</family>
+	  <default>
+	  <family>Calibri</family>
+	  </default>
+	</alias>
+
+	<alias binding="same">
+	  <family>SymbolNeu</family>
+	  <default>
+	  <family>Symbol</family>
+	  </default>
+  </alias>
+
+<!-- Accept the other group as fallback -->
+
+	<!-- PostScript -->
+	<alias>
+	  <family>Helvetica</family>
+	  <default>
+	  <family>Arial</family>
+	  </default>
+	</alias>
+
+	<alias>
+	  <family>Helvetica Condensed</family>
+	  <default>
+	  <family>Arial Narrow</family>
+	  </default>
+	</alias>
+
+	<alias>
+	  <family>Times</family>
+	  <default>
+	  <family>Times New Roman</family>
+	  </default>
+	</alias>
+
+	<alias>
+	  <family>Courier</family>
+	  <default>
+	  <family>Courier New</family>
+	  </default>
+	</alias>
+
+
+	<!-- Microsoft -->
+	<alias>
+	  <family>Arial</family>
+	  <default>
+	  <family>Helvetica</family>
+	  </default>
+	</alias>
+
+	<alias>
+	  <family>Arial Narrow</family>
+	  <default>
+	  <family>Helvetica Condensed</family>
+	  </default>
+	</alias>
+
+	<alias>
+	  <family>Times New Roman</family>
+	  <default>
+	  <family>Times</family>
+	  </default>
+	</alias>
+
+	<alias>
+	  <family>Courier New</family>
+	  <default>
+	  <family>Courier</family>
+	  </default>
+	</alias>
+
+
+
+<!-- Map generics to specifics -->
+
+	<!-- PostScript -->
+	<alias binding="same">
+	  <family>Helvetica</family>
+	  <accept>
+	  <family>TeX Gyre Heros</family>
+	  <family>Nimbus Sans L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Helvetica Condensed</family>
+	  <accept>
+	  <family>TeX Gyre Heros Cn</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Times</family>
+	  <accept>
+<!--
+     Due to Bug#73291, commented out this line until the broken font are fixed.
+	  <family>TeX Gyre Termes</family>
+-->
+	  <family>Nimbus Roman No9 L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Courier</family>
+	  <accept>
+	  <family>TeX Gyre Cursor</family>
+	  <family>Nimbus Mono L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>ITC Avant Garde Gothic</family>
+	  <accept>
+	  <family>TeX Gyre Adventor</family>
+	  <family>URW Gothic L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>ITC Bookman</family>
+	  <accept>
+	  <family>Bookman Old Style</family>
+	  <family>TeX Gyre Bonum</family>
+	  <family>URW Bookman L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>ITC Zapf Chancery</family>
+	  <accept>
+	  <family>TeX Gyre Chorus</family>
+	  <family>URW Chancery L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Palatino</family>
+	  <accept>
+	  <family>Palatino Linotype</family>
+	  <family>TeX Gyre Pagella</family>
+	  <family>URW Palladio L</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>New Century Schoolbook</family>
+	  <accept>
+	  <family>Century Schoolbook</family>
+	  <family>TeX Gyre Schola</family>
+	  <family>Century Schoolbook L</family>
+	  </accept>
+	</alias>
+
+	<!-- Microsoft -->
+	<alias binding="same">
+	  <family>Arial</family>
+	  <accept>
+	    <family>Arimo</family>
+	    <family>Liberation Sans</family>
+	    <family>Albany</family>
+	    <family>Albany AMT</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Arial Narrow</family>
+	  <accept>
+	    <family>Liberation Sans Narrow</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Times New Roman</family>
+	  <accept>
+	    <family>Tinos</family>
+	    <family>Liberation Serif</family>
+	    <family>Thorndale</family>
+	    <family>Thorndale AMT</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Courier New</family>
+	  <accept>
+	    <family>Cousine</family>
+	    <family>Liberation Mono</family>
+	    <family>Cumberland</family>
+	    <family>Cumberland AMT</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Georgia</family>
+	  <accept>
+	    <family>Gelasio</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Cambria</family>
+	  <accept>
+	    <family>Caladea</family>
+	  </accept>
+	</alias>
+
+	<alias binding="same">
+	  <family>Calibri</family>
+	  <accept>
+	    <family>Carlito</family>
+	  </accept>
+  </alias>
+
+	<alias binding="same">
+	  <family>Symbol</family>
+	  <accept>
+	    <family>SymbolNeu</family>
+	  </accept>
+  </alias>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-sub-pixel-vbgr.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-sub-pixel-vbgr.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-sub-pixel-vbgr.conf	(revision 2476)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--  Enable sub-pixel rendering --> 
+  <match target="pattern">
+    <!--
+      This configuration is available on the major desktop environments.
+      We shouldn't overwrite it with "assign" unconditionally.
+      Most clients may picks up the first value only. so using "append"
+      may simply works to avoid it.
+    -->
+    <edit name="rgba" mode="append"><const>vbgr</const></edit>
+  </match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-sub-pixel-vrgb.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-sub-pixel-vrgb.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-sub-pixel-vrgb.conf	(revision 2476)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--  Enable sub-pixel rendering --> 
+  <match target="pattern">
+    <!--
+      This configuration is available on the major desktop environments.
+      We shouldn't overwrite it with "assign" unconditionally.
+      Most clients may picks up the first value only. so using "append"
+      may simply works to avoid it.
+    -->
+    <edit name="rgba" mode="append"><const>vrgb</const></edit>
+  </match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/20-unhint-small-vera.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/20-unhint-small-vera.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/20-unhint-small-vera.conf	(revision 2476)
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!-- 
+	The Bitstream Vera fonts have GASP entries suggesting that hinting be
+	disabled below 8 ppem, but FreeType ignores those, preferring to use
+	the data found in the instructed hints.  The initial Vera release
+	didn't include the right instructions in the 'prep' table. Fix this
+	by disabling hinting manually at smaller sizes (< 8ppem)
+ -->
+
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Bitstream Vera Sans</string>
+		</test>
+		<test name="pixelsize" compare="less">
+			<double>7.5</double>
+		</test>
+		<edit name="hinting">
+			<bool>false</bool>
+		</edit>
+	</match>
+
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Bitstream Vera Serif</string>
+		</test>
+		<test name="pixelsize" compare="less">
+			<double>7.5</double>
+		</test>
+		<edit name="hinting">
+			<bool>false</bool>
+		</edit>
+	</match>
+
+	<match target="font">
+		<test name="family" compare="eq" ignore-blanks="true">
+			<string>Bitstream Vera Sans Mono</string>
+		</test>
+		<test name="pixelsize" compare="less">
+			<double>7.5</double>
+		</test>
+		<edit name="hinting">
+			<bool>false</bool>
+		</edit>
+	</match>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/49-sansserif.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/49-sansserif.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/49-sansserif.conf	(revision 2476)
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--
+  If the font still has no generic name, add sans-serif
+ -->
+	<match target="pattern">
+		<test qual="all" name="family" compare="not_eq">
+			<string>sans-serif</string>
+		</test>
+		<test qual="all" name="family" compare="not_eq">
+			<string>serif</string>
+		</test>
+		<test qual="all" name="family" compare="not_eq">
+			<string>monospace</string>
+		</test>
+		<edit name="family" mode="append_last">
+			<string>sans-serif</string>
+		</edit>
+	</match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/11-lcdfilter-legacy.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/11-lcdfilter-legacy.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/11-lcdfilter-legacy.conf	(revision 2476)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--  Use lcdlegacy as default for LCD filter -->
+  <match target="pattern">
+    <!--
+      This configuration is available on the major desktop environments.
+      We shouldn't overwrite it with "assign" unconditionally.
+      Most clients may picks up the first value only. so using "append"
+      may simply works to avoid it.
+    -->
+    <edit mode="append" name="lcdfilter">
+      <const>lcdlegacy</const>
+    </edit>
+  </match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/60-latin.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/60-latin.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/60-latin.conf	(revision 2476)
@@ -0,0 +1,70 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+	<alias>
+		<family>serif</family>
+		<prefer>
+			<family>Bitstream Vera Serif</family>
+			<family>DejaVu Serif</family>
+			<family>Times New Roman</family>
+			<family>Thorndale AMT</family>
+			<family>Luxi Serif</family>
+			<family>Nimbus Roman No9 L</family>
+			<family>Times</family>
+		</prefer>
+	</alias>
+	<alias>
+		<family>sans-serif</family>
+		<prefer>
+			<family>Bitstream Vera Sans</family>
+			<family>DejaVu Sans</family>
+			<family>Verdana</family>
+			<family>Arial</family>
+			<family>Albany AMT</family>
+			<family>Luxi Sans</family>
+			<family>Nimbus Sans L</family>
+			<family>Helvetica</family>
+			<family>Lucida Sans Unicode</family>
+			<family>BPG Glaho International</family> <!-- lat,cyr,arab,geor -->
+			<family>Tahoma</family> <!-- lat,cyr,greek,heb,arab,thai -->
+		</prefer>
+	</alias>
+	<alias>
+		<family>monospace</family>
+		<prefer>
+			<family>Bitstream Vera Sans Mono</family>
+			<family>DejaVu Sans Mono</family>
+			<family>Inconsolata</family>
+			<family>Andale Mono</family>
+			<family>Courier New</family>
+			<family>Cumberland AMT</family>
+			<family>Luxi Mono</family>
+			<family>Nimbus Mono L</family>
+			<family>Courier</family>
+		</prefer>
+	</alias>
+<!--
+  Fantasy faces
+ -->
+ 	<alias>
+		<family>fantasy</family>
+		<prefer>
+			<family>Impact</family>
+			<family>Copperplate Gothic Std</family>
+			<family>Cooper Std</family>
+			<family>Bauhaus Std</family>
+		</prefer>
+	</alias>
+<!--
+  Cursive faces
+  -->
+	<alias>
+		<family>cursive</family>
+		<prefer>
+			<family>ITC Zapf Chancery Std</family>
+			<family>Zapfino</family>
+			<family>Comic Sans MS</family>
+		</prefer>
+	</alias>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-unhinted.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-unhinted.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-unhinted.conf	(revision 2476)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--  Disable hinting --> 
+  <match target="pattern">
+    <!--
+      This configuration is available on the major desktop environments.
+      We shouldn't overwrite it with "assign" unconditionally.
+      Most clients may picks up the first value only. so using "append"
+      may simply works to avoid it.
+    -->
+    <edit name="hinting" mode="append"><bool>false</bool></edit>
+  </match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/11-lcdfilter-light.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/11-lcdfilter-light.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/11-lcdfilter-light.conf	(revision 2476)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--  Use lcdlight as default for LCD filter -->
+  <match target="pattern">
+    <!--
+      This configuration is available on the major desktop environments.
+      We shouldn't overwrite it with "assign" unconditionally.
+      Most clients may picks up the first value only. so using "append"
+      may simply works to avoid it.
+    -->
+    <edit mode="append" name="lcdfilter">
+      <const>lcdlight</const>
+    </edit>
+  </match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/70-no-bitmaps.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/70-no-bitmaps.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/70-no-bitmaps.conf	(revision 2476)
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!-- Reject bitmap fonts -->
+ <selectfont>
+  <rejectfont>
+   <pattern>
+     <patelt name="scalable"><bool>false</bool></patelt>
+   </pattern>
+  </rejectfont>
+ </selectfont>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/45-latin.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/45-latin.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/45-latin.conf	(revision 2476)
@@ -0,0 +1,189 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--
+  Mark common families with their generics so we'll get
+  something reasonable
+-->
+
+<!--
+  Serif faces
+ -->
+	<alias>
+		<family>Bitstream Vera Serif</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>DejaVu Serif</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Liberation Serif</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Times New Roman</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Times</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Nimbus Roman No9 L</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Luxi Serif</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Thorndale AMT</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Thorndale</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Georgia</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Garamond</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Palatino Linotype</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Trebuchet MS</family>
+		<default><family>serif</family></default>
+	</alias>
+<!--
+  Sans-serif faces
+ -->
+	<alias>
+		<family>Bitstream Vera Sans</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>DejaVu Sans</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Liberation Sans</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Arial</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Helvetica</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Verdana</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Albany AMT</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Albany</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Nimbus Sans L</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Luxi Sans</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+<!--
+  Monospace faces
+ -->
+ 	<alias>
+		<family>Bitstream Vera Sans Mono</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>DejaVu Sans Mono</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Liberation Mono</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Inconsolata</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Courier New</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Courier</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Andale Mono</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Luxi Mono</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Cumberland AMT</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Cumberland</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>Nimbus Mono L</family>
+		<default><family>monospace</family></default>
+	</alias>
+<!--
+  Fantasy faces
+ -->
+ 	<alias>
+		<family>Impact</family>
+		<default><family>fantasy</family></default>
+	</alias>
+	<alias>
+		<family>Copperplate Gothic Std</family>
+		<default><family>fantasy</family></default>
+	</alias>
+	<alias>
+		<family>Cooper Std</family>
+		<default><family>fantasy</family></default>
+	</alias>
+	<alias>
+		<family>Bauhaus Std</family>
+		<default><family>fantasy</family></default>
+	</alias>
+<!--
+  Cursive faces
+  -->
+	<alias>
+		<family>ITC Zapf Chancery Std</family>
+		<default><family>cursive</family></default>
+	</alias>
+	<alias>
+		<family>Zapfino</family>
+		<default><family>cursive</family></default>
+	</alias>
+	<alias>
+		<family>Comic Sans MS</family>
+		<default><family>cursive</family></default>
+	</alias>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/65-khmer.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/65-khmer.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/65-khmer.conf	(revision 2476)
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+	<alias>
+		<family>serif</family>
+		<prefer>
+			<family>Khmer OS"</family>
+		</prefer>
+	</alias>
+	<alias>
+		<family>sans-serif</family>
+		<prefer>
+			<family>Khmer OS"</family>
+		</prefer>
+	</alias>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-sub-pixel-bgr.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-sub-pixel-bgr.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-sub-pixel-bgr.conf	(revision 2476)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--  Enable sub-pixel rendering --> 
+  <match target="pattern">
+    <!--
+      This configuration is available on the major desktop environments.
+      We shouldn't overwrite it with "assign" unconditionally.
+      Most clients may picks up the first value only. so using "append"
+      may simply works to avoid it.
+    -->
+    <edit name="rgba" mode="append"><const>bgr</const></edit>
+  </match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-sub-pixel-rgb.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-sub-pixel-rgb.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-sub-pixel-rgb.conf	(revision 2476)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--  Enable sub-pixel rendering --> 
+  <match target="pattern">
+    <!--
+      This configuration is available on the major desktop environments.
+      We shouldn't overwrite it with "assign" unconditionally.
+      Most clients may picks up the first value only. so using "append"
+      may simply works to avoid it.
+    -->
+    <edit name="rgba" mode="append"><const>rgb</const></edit>
+  </match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/50-user.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/50-user.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/50-user.conf	(revision 2476)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+	<!--
+	    Load per-user customization files where stored on XDG Base Directory
+	    specification compliant places. it should be usually:
+	      $HOME/.config/fontconfig/conf.d
+	      $HOME/.config/fontconfig/fonts.conf
+	-->
+	<include ignore_missing="yes" prefix="xdg">fontconfig/conf.d</include>
+	<include ignore_missing="yes" prefix="xdg">fontconfig/fonts.conf</include>
+	<!-- the following elements will be removed in the future -->
+	<include ignore_missing="yes" deprecated="yes">~/.fonts.conf.d</include>
+	<include ignore_missing="yes" deprecated="yes">~/.fonts.conf</include>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-no-sub-pixel.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-no-sub-pixel.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-no-sub-pixel.conf	(revision 2476)
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--  Disable sub-pixel rendering --> 
+  <match target="pattern">
+    <!--
+      This configuration is available on the major desktop environments.
+      We shouldn't overwrite it with "assign" unconditionally.
+      Most clients may picks up the first value only. so using "append"
+      may simply works to avoid it.
+    -->
+    <edit name="rgba" mode="append"><const>none</const></edit>
+  </match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/90-synthetic.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/90-synthetic.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/90-synthetic.conf	(revision 2476)
@@ -0,0 +1,64 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!-- 
+ Artificial oblique for fonts without an italic or oblique version
+ -->
+ 
+	<match target="font">
+		<!-- check to see if the font is roman -->
+		<test name="slant">
+			<const>roman</const>
+		</test>
+		<!-- check to see if the pattern requested non-roman -->
+		<test target="pattern" name="slant" compare="not_eq">
+			<const>roman</const>
+		</test>
+		<!-- multiply the matrix to slant the font -->
+		<edit name="matrix" mode="assign">
+			<times>
+				<name>matrix</name>
+				<matrix><double>1</double><double>0.2</double>
+					<double>0</double><double>1</double>
+				</matrix>
+			</times>
+		</edit>
+		<!-- pretend the font is oblique now -->
+		<edit name="slant" mode="assign">
+			<const>oblique</const>
+		</edit>
+		<!-- and disable embedded bitmaps for artificial oblique -->
+		<edit name="embeddedbitmap" mode="assign">
+			<bool>false</bool>
+		</edit>
+	</match>
+
+<!--
+ Synthetic emboldening for fonts that do not have bold face available
+ -->
+
+	<match target="font">
+		<!-- check to see if the font is just regular -->
+		<test name="weight" compare="less_eq">
+			<const>medium</const>
+		</test>
+		<!-- check to see if the pattern requests bold -->
+		<test target="pattern" name="weight" compare="more">
+			<const>medium</const>
+		</test>
+		<!--
+		  set the embolden flag
+		  needed for applications using cairo, e.g. gucharmap, gedit, ...
+		-->
+		<edit name="embolden" mode="assign">
+			<bool>true</bool>
+		</edit>
+		<!--
+		 set weight to bold
+		 needed for applications using Xft directly, e.g. Firefox, ...
+		-->
+		<edit name="weight" mode="assign">
+			<const>bold</const>
+		</edit>
+	</match>
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/40-nonlatin.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/40-nonlatin.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/40-nonlatin.conf	(revision 2476)
@@ -0,0 +1,231 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!--
+  Mark common families with their generics so we'll get
+  something reasonable
+-->
+
+<!--
+  Serif faces
+ -->
+	<alias>
+		<family>Nazli</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Lotoos</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Mitra</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Ferdosi</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Badr</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Zar</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Titr</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Jadid</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Kochi Mincho</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>AR PL SungtiL GB</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>AR PL Mingti2L Big5</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>ＭＳ 明朝</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>NanumMyeongjo</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>UnBatang</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Baekmuk Batang</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>MgOpen Canonica</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>Sazanami Mincho</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>AR PL ZenKai Uni</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>ZYSong18030</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>FreeSerif</family>
+		<default><family>serif</family></default>
+	</alias>
+	<alias>
+		<family>SimSun</family>
+		<default><family>serif</family></default>
+	</alias>
+<!--
+  Sans-serif faces
+ -->
+	<alias>
+		<family>Arshia</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Elham</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Farnaz</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Nasim</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Sina</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Roya</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Koodak</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Terafik</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Kochi Gothic</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>AR PL KaitiM GB</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>AR PL KaitiM Big5</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>ＭＳ ゴシック</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>NanumGothic</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>UnDotum</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Baekmuk Dotum</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>MgOpen Modata</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>Sazanami Gothic</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>AR PL ShanHeiSun Uni</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>ZYSong18030</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+	<alias>
+		<family>FreeSans</family>
+		<default><family>sans-serif</family></default>
+	</alias>
+<!--
+  Monospace faces
+ -->
+	<alias>
+		<family>NSimSun</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>ZYSong18030</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>NanumGothicCoding</family>
+		<default><family>monospace</family></default>
+	</alias>
+	<alias>
+		<family>FreeMono</family>
+		<default><family>monospace</family></default>
+	</alias>
+
+<!--
+  Fantasy faces
+ -->
+	<alias>
+		<family>Homa</family>
+		<default><family>fantasy</family></default>
+	</alias>
+	<alias>
+		<family>Kamran</family>
+		<default><family>fantasy</family></default>
+	</alias>
+	<alias>
+		<family>Fantezi</family>
+		<default><family>fantasy</family></default>
+	</alias>
+	<alias>
+		<family>Tabassom</family>
+		<default><family>fantasy</family></default>
+	</alias>
+
+<!--
+  Cursive faces
+ -->
+	<alias>
+		<family>IranNastaliq</family>
+		<default><family>cursive</family></default>
+	</alias>
+	<alias>
+		<family>Nafees Nastaleeq</family>
+		<default><family>cursive</family></default>
+	</alias>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/80-delicious.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/80-delicious.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/80-delicious.conf	(revision 2476)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+<!-- Fix-ups for Delicious family -->
+
+<!-- Delicious 'heavy' variant says its Medium weight -->
+<match target="scan">
+	<test name="family" compare="eq" ignore-blanks="true">
+		<string>Delicious</string>
+	</test>
+	<test name="style">
+		<string>Heavy</string>
+	</test>
+	<edit name="weight">
+		<const>heavy</const>
+	</edit>
+</match>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-scale-bitmap-fonts.conf
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-scale-bitmap-fonts.conf	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/fonts/conf.avail/10-scale-bitmap-fonts.conf	(revision 2476)
@@ -0,0 +1,81 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+
+<match target="font">
+  <test name="scalable" compare="eq">
+    <bool>false</bool>
+  </test>
+  <edit name="pixelsizefixupfactor" mode="assign">
+    <divide>
+      <name target="pattern">pixelsize</name>
+      <name target="font"   >pixelsize</name>
+    </divide>
+  </edit>
+</match>
+<match target="font">
+  <test name="scalable" compare="eq">
+    <bool>false</bool>
+  </test>
+  <edit name="scalingnotneeded" mode="assign">
+    <and>
+      <less>
+        <name>pixelsizefixupfactor</name>
+        <double>1.2</double>
+      </less>
+      <more>
+        <name>pixelsizefixupfactor</name>
+        <double>0.8</double>
+      </more>
+    </and>
+  </edit>
+</match>
+<!--
+  So far we determined the scale factor.  Now, check and if
+  scaling is NOT desirable, just reset the scale factor to 1.0.
+  -->
+<match target="font">
+  <test name="scalable" compare="eq">
+    <bool>false</bool>
+  </test>
+  <test name="pixelsize" target="pattern" compare="less">
+    <double>64</double>
+  </test>
+  <test name="hinting" compare="eq">
+    <bool>true</bool>
+  </test>
+  <test name="scalingnotneeded" compare="eq">
+    <bool>true</bool>
+  </test>
+  <edit name="pixelsizefixupfactor" mode="assign">
+    <double>1.0</double>
+  </edit>
+</match>
+<!--
+  If we *are* going to scale, go ahead and do it.
+  -->
+<match target="font">
+  <test name="scalable" compare="eq">
+    <bool>false</bool>
+  </test>
+  <test name="pixelsizefixupfactor" compare="not_eq">
+    <double>1.0</double>
+  </test>
+  <edit name="matrix" mode="assign">
+    <times>
+      <name>matrix</name>
+      <matrix>
+        <name>pixelsizefixupfactor</name> <double>0</double>
+        <double>0</double> <name>pixelsizefixupfactor</name>
+       </matrix>
+    </times>
+  </edit>
+  <edit name="size" mode="assign">
+    <divide>
+      <name>size</name>
+      <name>pixelsizefixupfactor</name>
+    </divide>
+  </edit>
+</match>
+
+</fontconfig>
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/xml/fontconfig/fonts.dtd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/xml/fontconfig/fonts.dtd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/xml/fontconfig/fonts.dtd	(revision 2476)
@@ -0,0 +1,233 @@
+<!-- This is the Document Type Definition for font configuration files -->
+<!ELEMENT fontconfig (dir | 
+		      cache | 
+		      cachedir |
+		      include | 
+		      config |
+		      selectfont |
+		      match | 
+		      alias)* >
+
+<!-- 
+    Add a directory that provides fonts
+-->
+<!ELEMENT dir (#PCDATA)>
+<!ATTLIST dir
+	  prefix    CDATA       "default"
+	  xml:space (default|preserve) 'preserve'>
+
+<!--
+    Define the per-user file that holds cache font information.
+
+    If the filename begins with '~', it is replaced with the users
+    home directory path.
+-->
+<!ELEMENT cache (#PCDATA)>
+<!ATTLIST cache xml:space (default|preserve) 'preserve'>
+
+<!--
+    Add a directory that is searched for font cache files.
+    These hold per-directory cache data and are searched in
+    order for each directory. When writing cache files, the first
+    directory which allows the cache file to be created is used.
+
+    A leading '~' in a directory name is replaced with the users
+    home directory path.
+-->
+<!ELEMENT cachedir (#PCDATA)>
+<!ATTLIST cachedir
+	  prefix    CDATA      "default"
+	  xml:space (default|preserve) 'preserve'>
+
+<!--
+    Reference another configuration file; note that this
+    is another complete font configuration file and not
+    just a file included by the XML parser.
+
+    Set 'ignore_missing' to 'yes' if errors are to be ignored.
+
+    If the filename begins with '~', it is replaced with the users
+    home directory path.
+-->
+<!ELEMENT include (#PCDATA)>
+<!ATTLIST include
+	  ignore_missing    (no|yes)		"no"
+	  prefix	    CDATA               "default"
+	  deprecated	    (yes|no)		"no"
+	  xml:space	    (default|preserve)	"preserve">
+
+<!--
+    Global library configuration data
+ -->
+<!ELEMENT config (blank|rescan)*>
+
+<!--
+    Specify the set of Unicode encoding values which
+    represent glyphs that are allowed to contain no
+    data.  With this list, fontconfig can examine
+    fonts for broken glyphs and eliminate them from
+    the set of valid Unicode chars.  This idea
+    was borrowed from Mozilla
+ -->
+<!ELEMENT blank (int|range)*>
+
+<!--
+    Aliases are just a special case for multiple match elements
+
+    They are syntactically equivalent to:
+
+    <match>
+	<test name="family">
+	    <string value=[family]/>
+	</test>
+	<edit name="family" mode="prepend">
+	    <string value=[prefer]/>
+	    ...
+	</edit>
+	<edit name="family" mode="append">
+	    <string value=[accept]/>
+	    ...
+	</edit>
+	<edit name="family" mode="append_last">
+	    <string value=[default]/>
+	    ...
+	</edit>
+    </match>
+-->
+<!--
+    Periodically rescan the font configuration and
+    directories to synch internal state with filesystem
+ -->
+<!ELEMENT rescan (int)>
+
+<!--
+    Edit list of available fonts at startup/reload time
+ -->
+<!ELEMENT selectfont (rejectfont | acceptfont)* >
+
+<!ELEMENT rejectfont (glob | pattern)*>
+
+<!ELEMENT acceptfont (glob | pattern)*>
+
+<!ELEMENT glob (#PCDATA)>
+
+<!ELEMENT pattern (patelt)*>
+
+<!ENTITY % constant 'int|double|string|matrix|bool|charset|langset|const'>
+
+<!ELEMENT patelt (%constant;)*>
+<!ATTLIST patelt
+	  name CDATA	#REQUIRED>
+
+<!ELEMENT alias (test?, family*, prefer?, accept?, default?)>
+<!ATTLIST alias
+	  binding (weak|strong|same) "weak">
+<!ELEMENT prefer (family)*>
+<!ELEMENT accept (family)*>
+<!ELEMENT default (family)*>
+<!ELEMENT family (#PCDATA)>
+<!ATTLIST family xml:space (default|preserve) 'preserve'>
+
+<!ENTITY % expr 'int|double|string|matrix|bool|charset|langset
+		|name|const
+		|or|and|eq|not_eq|less|less_eq|more|more_eq|contains|not_contains
+		|plus|minus|times|divide|not|if|floor|ceil|round|trunc'>
+
+<!--
+    Match and edit patterns.
+
+    If 'target' is 'pattern', execute the match before selecting a font.
+    if 'target' is 'font', execute the match on the result of a font
+    selection.
+-->
+<!ELEMENT match (test|edit)+>
+<!ATTLIST match
+	  target (pattern|font|scan) "pattern">
+
+<!--
+    Match a field in a pattern
+
+    if 'qual' is 'any', then the match succeeds if any value in the field matches.
+    if 'qual' is 'all', then the match succeeds only if all values match.
+    if 'qual' is 'first', then the match succeeds only if the first value matches.
+    if 'qual' is 'not_first', then the match succeeds only if any value other than
+    	the first matches.
+    For match elements with target=font, if test 'target' is 'pattern',
+    then the test is applied to the pattern used in matching rather than
+    to the resulting font.
+
+    Match elements with target=scan are applied as fonts are scanned.
+    They edit the pattern generated from the scanned font and affect
+    what the fontconfig database contains.
+-->
+<!ELEMENT test (%expr;)*>
+<!ATTLIST test 
+	  qual (any|all|first|not_first)    "any"
+	  name CDATA	    #REQUIRED
+	  target (pattern|font|default)		"default"
+	  ignore-blanks (true|false)	"false"
+	  compare (eq|not_eq|less|less_eq|more|more_eq|contains|not_contains)	"eq">
+
+<!--
+    Edit a field in a pattern
+
+    The enclosed values are used together to edit the list of values
+    associated with 'name'.
+
+    If 'name' matches one of those used in a test element for this match element:
+	if 'mode' is 'assign', replace the matched value.
+	if 'mode' is 'assign_replace', replace all of the values
+	if 'mode' is 'prepend', insert before the matched value
+	if 'mode' is 'append', insert after the matched value
+	if 'mode' is 'prepend_first', insert before all of the values
+	if 'mode' is 'append_last', insert after all of the values
+    If 'name' doesn't match any of those used in a test element:
+	if 'mode' is 'assign' or 'assign_replace, replace all of the values
+	if 'mode' is 'prepend' or 'prepend_first', insert before all of the values
+	if 'mode' is 'append' or 'append_last', insert after all of the values
+-->
+<!ELEMENT edit (%expr;)*>
+<!ATTLIST edit
+	  name CDATA	    #REQUIRED
+	  mode (assign|assign_replace|prepend|append|prepend_first|append_last|delete|delete_all) "assign"
+	  binding (weak|strong|same) "weak">
+
+<!--
+    Elements of expressions follow
+-->
+<!ELEMENT int (#PCDATA)>
+<!ATTLIST int xml:space (default|preserve) 'preserve'>
+<!ELEMENT double (#PCDATA)>
+<!ATTLIST double xml:space (default|preserve) 'preserve'>
+<!ELEMENT string (#PCDATA)>
+<!ATTLIST string xml:space (default|preserve) 'preserve'>
+<!ELEMENT matrix ((%expr;), (%expr;), (%expr;), (%expr;))>
+<!ELEMENT bool (#PCDATA)>
+<!ELEMENT charset (int|range)*>
+<!ELEMENT range (int,int)>
+<!ELEMENT langset (string)*>
+<!ELEMENT name (#PCDATA)>
+<!ATTLIST name xml:space (default|preserve) 'preserve'
+	  target (default|font|pattern) 'default'>
+<!ELEMENT const (#PCDATA)>
+<!ATTLIST const xml:space (default|preserve) 'preserve'>
+<!ELEMENT or (%expr;)*>
+<!ELEMENT and (%expr;)*>
+<!ELEMENT eq ((%expr;), (%expr;))>
+<!ELEMENT not_eq ((%expr;), (%expr;))>
+<!ELEMENT less ((%expr;), (%expr;))>
+<!ELEMENT less_eq ((%expr;), (%expr;))>
+<!ELEMENT more ((%expr;), (%expr;))>
+<!ELEMENT more_eq ((%expr;), (%expr;))>
+<!ELEMENT contains ((%expr;), (%expr;))>
+<!ELEMENT not_contains ((%expr;), (%expr;))>
+<!ELEMENT plus (%expr;)*>
+<!ELEMENT minus (%expr;)*>
+<!ELEMENT times (%expr;)*>
+<!ELEMENT divide (%expr;)*>
+<!ELEMENT not (%expr;)>
+<!ELEMENT if ((%expr;), (%expr;), (%expr;))>
+<!ELEMENT floor (%expr;)>
+<!ELEMENT ceil (%expr;)>
+<!ELEMENT round (%expr;)>
+<!ELEMENT trunc (%expr;)>

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/xml/fontconfig/fonts.dtd
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/cache/8d7231e6733a9725c81b40e9f55f11b1-le64.cache-4
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/cache/8d7231e6733a9725c81b40e9f55f11b1-le64.cache-4
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/cache/b0a71e6bf6a8a1a908413a823d76e21f-le64.cache-4
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/cache/b0a71e6bf6a8a1a908413a823d76e21f-le64.cache-4
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/cache/865ca39e252290332833e2d21ac7dbf6-le64.cache-4
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/cache/865ca39e252290332833e2d21ac7dbf6-le64.cache-4
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/cache/84c0f976e30e948e99073af70f4ae876-le64.cache-4
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/cache/84c0f976e30e948e99073af70f4ae876-le64.cache-4
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/cache/CACHEDIR.TAG
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/cache/CACHEDIR.TAG	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/fontconfig/cache/CACHEDIR.TAG	(revision 2476)
@@ -0,0 +1,4 @@
+Signature: 8a477f597d28d172789f06886806bc55
+# This file is a cache directory tag created by fontconfig.
+# For information about cache directory tags, see:
+#       http://www.brynosaurus.com/cachedir/
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/man1/Rscript.1
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/man1/Rscript.1	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/man1/Rscript.1	(revision 2476)
@@ -0,0 +1,57 @@
+.TH Rscript "1" "April 2007" "R scripting" FSF
+.SH NAME
+Rscript \- front end for scripting with R
+.SH SYNOPSIS
+.B Rscript
+[\fI--options\fR] [\fI-e expr\fR] \fIfile \fR[\fIargs\fR]
+.SH DESCRIPTION
+A binary front-end to R, for use in scripting applications.
+.TP
+\fBexpr\fR
+An optional expression to be evaluated, used in place of \fBexpr\fR.
+.TP
+\fBfile\fR
+Input file of R expressions
+.TP
+\fBargs\fR
+Optional further arguments to be processed by \fIcommandArgs\fR
+in the R interpreter.
+.SH OPTIONS
+\fB\-\-options\fR accepted are
+.TP
+\fB\-\-help\fR
+Print usage and exit
+.TP
+\fB\-\-version\fR
+Print version and exit
+.TP
+\fB\-\-verbose\fR
+Print information on progress
+.TP
+\fB\-\-default\-packages\fR=\fIlist\fR
+Where 'list' is a comma-separated set
+of package names, or 'NULL'
+.PP
+and also options to R (in addition to \fB\-\-slave\fR \fB\-\-no\-restore\fR),
+such as
+.TP
+\fB\-\-save\fR
+Do save workspace at the end of the session
+.TP
+\fB\-\-no\-environ\fR
+Don't read the site and user environment files
+.TP
+\fB\-\-no\-site\-file\fR
+Don't read the site-wide Rprofile
+.TP
+\fB\-\-no\-init\-file\fR
+Don't read the user R profile
+.TP
+\fB\-\-restore\fR
+Do restore previously saved objects at startup
+.TP
+\fB\-\-vanilla\fR
+Combine \fB\-\-no\-save\fR, \fB\-\-no\-restore\fR, \fB\-\-no\-site\-file\fR
+\fB\-\-no\-init\-file\fR and \fB\-\-no\-environ\fR
+.SH "SEE ALSO"
+.BR R(1)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/man1/R.1
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/man1/R.1	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/man1/R.1	(revision 2476)
@@ -0,0 +1,223 @@
+.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.020.
+.TH R "1" "October 2016" "R 3.3.2" FSF
+.SH NAME
+R \- a language for data analysis and graphics
+.SH SYNOPSIS
+.B R
+[\fIoptions\fR] [\fI< infile\fR] [\fI> outfile\fR]
+.br
+.B R
+\fICMD command \fR[\fIarguments\fR]
+.SH DESCRIPTION
+Start R, a system for statistical computation and graphics, with the
+specified options, or invoke an R tool via the 'R CMD' interface.
+.PP
+R is a language which bears a passing resemblance to the S language
+developed at AT&T Bell Laboratories.  It provides support for a variety
+of statistical and graphical analyses.  R is a true computer language
+which contains a number of control-flow constructions for iteration and
+alternation.  It allows users to add additional functionality by
+defining new functions.
+.LP
+On systems which have the GNU \fBreadline\fP(3) library, R will maintain
+a command history, so that commands can be recalled, edited and
+re-executed.
+.SH OPTIONS
+
+Most options control what happens at the beginning and at the end of an
+R session, in particular which files are being read and written, and how
+much memory is reserved for the R process.
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Print short help message and exit
+.TP
+\fB\-\-version\fR
+Print version info and exit
+.TP
+\fB\-\-encoding\fR=\fIENC\fR
+Specify encoding to be used for stdin
+.HP
+\fB\-\-encoding\fR ENC
+.TP
+RHOME
+Print path to R home directory and exit
+.TP
+\fB\-\-save\fR
+Do save workspace at the end of the session
+.TP
+\fB\-\-no\-save\fR
+Don't save it
+.TP
+\fB\-\-no\-environ\fR
+Don't read the site and user environment files
+.TP
+\fB\-\-no\-site\-file\fR
+Don't read the site-wide Rprofile
+.TP
+\fB\-\-no\-init\-file\fR
+Don't read the user R profile
+.TP
+\fB\-\-restore\fR
+Do restore previously saved objects at startup
+.TP
+\fB\-\-no\-restore\-data\fR
+Don't restore previously saved objects
+.TP
+\fB\-\-no\-restore\-history\fR
+Don't restore the R history file
+.TP
+\fB\-\-no\-restore\fR
+Don't restore anything
+.TP
+\fB\-\-vanilla\fR
+Combine \fB\-\-no\-save\fR, \fB\-\-no\-restore\fR, \fB\-\-no\-site\-file\fR,
+\fB\-\-no\-init\-file\fR and \fB\-\-no\-environ\fR
+.TP
+\fB\-\-no\-readline\fR
+Don't use readline for command-line editing
+.TP
+\fB\-\-max\-ppsize\fR=\fIN\fR
+Set max size of protect stack to N
+.TP
+\fB\-\-min\-nsize\fR=\fIN\fR
+Set min number of fixed size obj's ("cons cells") to N
+.TP
+\fB\-\-min\-vsize\fR=\fIN\fR
+Set vector heap minimum to N bytes; '4M' = 4 MegaB
+.TP
+\fB\-q\fR, \fB\-\-quiet\fR
+Don't print startup message
+.TP
+\fB\-\-silent\fR
+Same as \fB\-\-quiet\fR
+.TP
+\fB\-\-slave\fR
+Make R run as quietly as possible
+.TP
+\fB\-\-interactive\fR
+Force an interactive session
+.TP
+\fB\-\-verbose\fR
+Print more information about progress
+.TP
+\fB\-d\fR, \fB\-\-debugger\fR=\fINAME\fR
+Run R through debugger NAME
+.TP
+\fB\-\-debugger\-args\fR=\fIARGS\fR
+Pass ARGS as arguments to the debugger
+.TP
+\fB\-g\fR TYPE, \fB\-\-gui\fR=\fITYPE\fR
+Use TYPE as GUI; possible values are 'X11' (default)
+and 'Tk'.
+.TP
+\fB\-\-arch\fR=\fINAME\fR
+Specify a sub-architecture
+.TP
+\fB\-\-args\fR
+Skip the rest of the command line
+.TP
+\fB\-f\fR FILE, \fB\-\-file\fR=\fIFILE\fR
+Take input from 'FILE'
+.TP
+\fB\-e\fR EXPR
+Execute 'EXPR' and exit
+.PP
+FILE may contain spaces but not shell metacharacters.
+.SS "Commands:"
+.TP
+BATCH
+Run R in batch mode
+.TP
+COMPILE
+Compile files for use with R
+.TP
+SHLIB
+Build shared library for dynamic loading
+.TP
+INSTALL
+Install add-on packages
+.TP
+REMOVE
+Remove add-on packages
+.TP
+build
+Build add-on packages
+.TP
+check
+Check add-on packages
+.TP
+LINK
+Front-end for creating executable programs
+.TP
+Rprof
+Post-process R profiling files
+.TP
+Rdconv
+Convert Rd format to various other formats
+.TP
+Rd2pdf
+Convert Rd format to PDF
+.TP
+Rd2txt
+Convert Rd format to pretty text
+.TP
+Stangle
+Extract S/R code from Sweave documentation
+.TP
+Sweave
+Process Sweave documentation
+.TP
+Rdiff
+Diff R output ignoring headers etc
+.TP
+config
+Obtain configuration information about R
+.TP
+javareconf
+Update the Java configuration variables
+.TP
+rtags
+Create Emacs-style tag files from C, R, and Rd files
+.PP
+Please use 'R CMD command \fB\-\-help\fR' to obtain further information about
+the usage of 'command'.
+.PP
+Options \fB\-\-arch\fR, \fB\-\-no\-environ\fR, \fB\-\-no\-init\-file\fR, \fB\-\-no\-site\-file\fR and \fB\-\-vanilla\fR
+can be placed between R and CMD, to apply to R processes run by 'command'
+.SH "REPORTING BUGS"
+Report bugs at bugs.r-project.org
+.SH COPYRIGHT
+Copyright \(co 2016 The R Foundation for Statistical Computing
+Platform: x86_64-apple-darwin13.4.0 (64-bit)
+.PP
+R is free software and comes with ABSOLUTELY NO WARRANTY.
+You are welcome to redistribute it under the terms of the
+GNU General Public License versions 2 or 3.
+For more information about these matters see
+http://www.gnu.org/licenses/.
+.SH "SEE ALSO"
+
+The full documentation for R is provided by a collection of Texinfo
+manuals and individual help for R objects which is also available
+on-line.
+.LP
+Start R and type \fB?\fP\fItopic\fP at the R prompt to obtain on-line
+information for `\fItopic\fP'.
+.LP
+If the processed manuals have been installed they will be available as
+DVI and/or PDF files in the doc/manual subdirectory of the documentation
+directory tree (default `R RHOME`).
+.LP
+If the \fBinfo\fP program and the R manuals are installed on your
+system, typing 
+\fBinfo -f R-intro\fP,
+\fBinfo -f R-data\fP, 
+\fBinfo -f R-exts\fP,
+\fBinfo -f R-FAQ\fP, 
+\fBinfo -f R-lang\fP and
+\fBinfo -f R-ints\fP
+should give you access to
+``An Introduction to R''
+(the basic manual),
+the ``R Data Import/Export'' Guide, the ``R Extension Writer's Guide'',
+the ``R FAQ'', the ``The R Language Definition'', and the ``R Internals''.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/R	(revision 2476)
@@ -0,0 +1,295 @@
+#!/bin/sh
+# Shell wrapper for R executable.
+
+R_HOME_DIR=/Library/Frameworks/R.framework/Resources
+if test "${R_HOME_DIR}" = "/Library/Frameworks/lib/R"; then
+   case "darwin13.4.0" in
+   linux*)
+     run_arch=`uname -m`
+     case "$run_arch" in
+        x86_64|mips64|ppc64|powerpc64|sparc64|s390x)
+          libnn=lib64
+          libnn_fallback=lib
+        ;;
+        *)
+          libnn=lib
+          libnn_fallback=lib64
+        ;;
+     esac
+     if [ -x "/Library/Frameworks/${libnn}/R/bin/exec/R" ]; then
+        R_HOME_DIR="/Library/Frameworks/${libnn}/R"
+     elif [ -x "/Library/Frameworks/${libnn_fallback}/R/bin/exec/R" ]; then
+        R_HOME_DIR="/Library/Frameworks/${libnn_fallback}/R"
+     ## else -- leave alone (might be a sub-arch)
+     fi
+     ;;
+  esac
+fi
+
+if test -n "${R_HOME}" && \
+   test "${R_HOME}" != "${R_HOME_DIR}"; then
+  echo "WARNING: ignoring environment value of R_HOME"
+fi
+R_HOME="${R_HOME_DIR}"
+export R_HOME
+R_SHARE_DIR=/Library/Frameworks/R.framework/Resources/share
+export R_SHARE_DIR
+R_INCLUDE_DIR=/Library/Frameworks/R.framework/Resources/include
+export R_INCLUDE_DIR
+R_DOC_DIR=/Library/Frameworks/R.framework/Resources/doc
+export R_DOC_DIR
+
+# Since this script can be called recursively, we allow R_ARCH to
+# be overridden from the environment.
+# This script is shared by parallel installs, so nothing in it should
+# depend on the sub-architecture except the default here.
+: ${R_ARCH=}
+
+usage="
+Usage: R [options] [< infile] [> outfile]
+   or: R CMD command [arguments]
+
+Start R, a system for statistical computation and graphics, with the
+specified options, or invoke an R tool via the 'R CMD' interface.
+
+Options:
+  -h, --help            Print short help message and exit
+  --version             Print version info and exit
+  --encoding=ENC        Specify encoding to be used for stdin
+  --encoding ENC
+  RHOME			Print path to R home directory and exit
+  --save                Do save workspace at the end of the session
+  --no-save             Don't save it
+  --no-environ          Don't read the site and user environment files
+  --no-site-file        Don't read the site-wide Rprofile
+  --no-init-file        Don't read the user R profile
+  --restore             Do restore previously saved objects at startup
+  --no-restore-data     Don't restore previously saved objects
+  --no-restore-history  Don't restore the R history file
+  --no-restore          Don't restore anything
+  --vanilla		Combine --no-save, --no-restore, --no-site-file,
+			--no-init-file and --no-environ
+  --no-readline         Don't use readline for command-line editing
+  --max-ppsize=N        Set max size of protect stack to N
+  --min-nsize=N         Set min number of fixed size obj's (\"cons cells\") to N
+  --min-vsize=N         Set vector heap minimum to N bytes; '4M' = 4 MegaB
+  -q, --quiet           Don't print startup message
+  --silent              Same as --quiet
+  --slave               Make R run as quietly as possible
+  --interactive         Force an interactive session
+  --verbose             Print more information about progress
+  -d, --debugger=NAME   Run R through debugger NAME
+  --debugger-args=ARGS  Pass ARGS as arguments to the debugger
+  -g TYPE, --gui=TYPE	Use TYPE as GUI; possible values are 'X11' (default)
+			and 'Tk'.
+  --arch=NAME		Specify a sub-architecture
+  --args                Skip the rest of the command line
+  -f FILE, --file=FILE  Take input from 'FILE'
+  -e EXPR               Execute 'EXPR' and exit
+
+FILE may contain spaces but not shell metacharacters.
+
+Commands:
+  BATCH			Run R in batch mode
+  COMPILE		Compile files for use with R
+  SHLIB			Build shared library for dynamic loading
+  INSTALL		Install add-on packages
+  REMOVE		Remove add-on packages
+  build			Build add-on packages
+  check			Check add-on packages
+  LINK			Front-end for creating executable programs
+  Rprof			Post-process R profiling files
+  Rdconv		Convert Rd format to various other formats
+  Rd2pdf		Convert Rd format to PDF
+  Rd2txt		Convert Rd format to pretty text
+  Stangle		Extract S/R code from Sweave documentation
+  Sweave		Process Sweave documentation
+  Rdiff			Diff R output ignoring headers etc
+  config		Obtain configuration information about R
+  javareconf		Update the Java configuration variables
+  rtags                 Create Emacs-style tag files from C, R, and Rd files
+
+Please use 'R CMD command --help' to obtain further information about
+the usage of 'command'.
+
+Options --arch, --no-environ, --no-init-file, --no-site-file and --vanilla
+can be placed between R and CMD, to apply to R processes run by 'command'
+
+Report bugs at bugs.r-project.org "
+
+## some systems have a more portable sed, e.g. /usr/xpg4/bin/sed on Solaris,
+## so make sure that is used.
+SED=/usr/bin/sed
+export SED
+
+error () {
+  echo "ERROR: $*" >&2
+  exit 1
+}
+
+### Argument loop
+args=
+debugger=
+debugger_args=
+gui=
+while test -n "${1}"; do
+  case ${1} in
+    RHOME|--print-home)
+      echo "${R_HOME}"; exit 0 ;;
+    CMD)
+      shift;
+      export R_ARCH
+      . "${R_HOME}/etc${R_ARCH}/ldpaths"
+      exec sh "${R_HOME}/bin/Rcmd" "${@}" ;;
+    -g|--gui)
+      if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
+	gui="${2}"
+        args="${args} ${1} ${2}"
+	shift
+      else
+	error "option '${1}' requires an argument"
+      fi
+      ;;
+    --gui=*)
+      gui=`echo "${1}" | ${SED} -e 's/[^=]*=//'`
+      args="${args} ${1}"
+      ;;
+    -d|--debugger)
+      if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
+	debugger="${2}"; shift
+      else
+	error "option '${1}' requires an argument"
+      fi
+      ;;
+    --debugger=*)
+      debugger=`echo "${1}" | ${SED} -e 's/[^=]*=//'` ;;
+    --debugger-args=*)
+      debugger_args=`echo "${1}" | ${SED} -e 's/[^=]*=//'` ;;
+    -h|--help)
+      echo "${usage}"; exit 0 ;;
+    --args)
+      break ;;
+    --arch)
+      if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
+	R_ARCH="/${2}"
+        shift
+      else
+        error "option '${1}' requires an argument"
+      fi
+      ## check sub-architecture here for a better error message
+      if ! test -d ${R_HOME}/etc${R_ARCH}; then
+        error "sub-architecture '${1}' is not installed"
+      fi
+      ;;
+    --arch=*)
+      r_arch=`echo "${1}" | ${SED} -e 's/[^=]*=//'`
+      R_ARCH="/${r_arch}"
+      ## check sub-architecture here for a better error message
+      if ! test -d ${R_HOME}/etc${R_ARCH}; then
+        error "sub-architecture '${r_arch}' is not installed"
+      fi
+      ;;
+    -e)
+      if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
+	a=`echo "${2}" | ${SED} -e 's/ /~+~/g'`; shift
+      else
+	error "option '${1}' requires a non-empty argument"
+      fi
+      args="${args} -e $a"
+      ;;
+    -f)
+      if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
+	a=`echo "${2}" | ${SED} -e 's/ /~+~/g'`; shift
+      else
+	error "option '${1}' requires a filename argument"
+      fi
+      args="${args} -f $a"
+      ;;
+    --file=*)
+      a=`echo "${1}" | ${SED} -e 's/[^=]*=//' | ${SED} -e 's/ /~+~/g'`
+      args="${args} --file=$a"
+      ;;
+    --no-environ)
+      export R_ENVIRON=''
+      export R_ENVIRON_USER=''
+      args="${args} ${1}"
+      ;;
+    --no-site-file)
+      export R_PROFILE=''
+      args="${args} ${1}"
+      ;;
+    --no-init-file)
+      export R_PROFILE_USER=''
+      args="${args} ${1}"
+      ;;
+    --vanilla)
+      export R_ENVIRON=''
+      export R_ENVIRON_USER=''
+      export R_PROFILE=''
+      export R_PROFILE_USER=''
+      args="${args} ${1}"
+      ;;
+    *)
+      args="${args} ${1}" ;;
+  esac
+  shift
+done
+
+. "${R_HOME}/etc${R_ARCH}/ldpaths"
+
+R_binary="${R_HOME}/bin/exec${R_ARCH}/R"
+export R_ARCH
+
+case "${gui}" in
+Tk|tk|X11|x11)
+  ;;
+"")
+  ;;
+*)
+  error "unknown GUI ${gui}"
+esac
+
+## R_HOME may have moved, so check
+if test -x "${R_HOME}"; then
+  :
+else
+  error "R_HOME ('${R_HOME}') not found"
+fi
+
+## Startup
+if test -z "${debugger}"; then
+  exec "${R_binary}"  ${args} "${@}"
+else
+  ## Ideally, we would like the debugger to start R with additional
+  ## ('inferior') arguments, but not all debuggers can do this.  We know
+  ## about valgrind and some versions of GDB , and deal with these.
+  ## Otherwise, to be on the safe side, we disregard non-debugger
+  ## command line args.
+  args_ok=no
+  case "`${debugger} --version 2>/dev/null`" in
+    "GNU gdb"*)
+      if ${debugger} --help 2>/dev/null | \
+          grep ' *--args' >/dev/null; then
+	args_ok=yes
+	debugger_args="${debugger_args} --args"
+      fi
+      ;;
+    valgrind*)
+      args_ok=yes
+      ;;
+  esac
+  if test -n "${args}${*}" && test "${args_ok}" = no; then
+    args=`expr "${args} ${*}" : " *\(.*\)"`
+    echo "*** Further command line arguments ('${args}') disregarded"
+    echo "*** (maybe use 'run ${args}' from *inside* ${debugger})"
+    echo ""
+    exec ${debugger} ${debugger_args} "${R_binary}"
+  else
+    exec ${debugger} ${debugger_args} "${R_binary}" ${args} "${@}"
+  fi
+fi
+
+### Local Variables: ***
+### mode: sh ***
+### sh-indentation: 2 ***
+### End: ***
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/SVN-REVISION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/SVN-REVISION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/SVN-REVISION	(revision 2476)
@@ -0,0 +1,2 @@
+Revision: 71607
+Last Changed Date: 2016-10-31
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/sh/echo.sh
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/sh/echo.sh	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/sh/echo.sh	(revision 2476)
@@ -0,0 +1,4 @@
+#!/bin/sh
+cat <<EOF
+$*
+EOF
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/dictionaries/en_stats.rds
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/dictionaries/en_stats.rds
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/config.mk
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/config.mk	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/config.mk	(revision 2476)
@@ -0,0 +1,3 @@
+print: FORCE
+	@echo $($(VAR))
+FORCE:
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/check_vars_ini.mk
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/check_vars_ini.mk	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/check_vars_ini.mk	(revision 2476)
@@ -0,0 +1,18 @@
+## Generate using
+##   prefixes <- c("CPP", "C", "CXX", "F", "FC", "OBJC", "OBJCXX")
+##   writeLines(c(sprintf("PKG_%sFLAGS = ", prefixes),
+##                sprintf("%sFLAGS = -o /dev/null", prefixes)))
+PKG_CPPFLAGS = 
+PKG_CFLAGS = 
+PKG_CXXFLAGS = 
+PKG_FFLAGS = 
+PKG_FCFLAGS = 
+PKG_OBJCFLAGS = 
+PKG_OBJCXXFLAGS = 
+CPPFLAGS = -o /dev/null
+CFLAGS = -o /dev/null
+CXXFLAGS = -o /dev/null
+FFLAGS = -o /dev/null
+FCFLAGS = -o /dev/null
+OBJCFLAGS = -o /dev/null
+OBJCXXFLAGS = -o /dev/null
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/vars.mk
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/vars.mk	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/vars.mk	(revision 2476)
@@ -0,0 +1,14 @@
+## Static (i.e., not determined by configure) Make variables to be
+## shared *and* grepped from m4/R.m4 and tools/*-recommended.
+
+## There is also 'translations', but that is not Priority: base
+## so it can be handled by update.packages() in due course.
+R_PKGS_BASE = base tools utils grDevices graphics stats datasets methods grid splines stats4 tcltk compiler parallel
+## Those which can be installed initially compiled (not base tools)
+R_PKGS_BASE1 = utils grDevices graphics stats datasets methods grid splines stats4 tcltk parallel
+## Those with standard R directories (not datasets, methods)
+R_PKGS_BASE2 = base tools utils grDevices graphics stats grid splines stats4 tcltk compiler parallel
+
+R_PKGS_RECOMMENDED =  MASS lattice Matrix nlme survival boot cluster codetools foreign KernSmooth rpart class nnet spatial mgcv
+# there are dependencies in src/library/Recommended/Makefile*
+# which this order respects
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/basepkg.mk
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/basepkg.mk	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/basepkg.mk	(revision 2476)
@@ -0,0 +1,207 @@
+## ${R_HOME}/share/make/basepkg.mk
+
+
+.PHONY: front instdirs mkR mkR1 mkR2 mkRbase mkdesc mkdesc2 mkdemos mkdemos2 \
+  mkexec mkman mkpo mksrc mksrc-win mksrc-win2 mkRsimple mklazy mklazycomp \
+  mkfigs
+
+front:
+	@for f in $(FRONTFILES); do \
+	  if test -f $(srcdir)/$${f}; then \
+	    $(INSTALL_DATA) $(srcdir)/$${f} \
+	      $(top_builddir)/library/$(pkg); \
+	  fi; \
+	done
+
+instdirs:
+	@for D in $(INSTDIRS); do \
+	 if test -d $(srcdir)/inst/$${D}; then \
+	   $(MKINSTALLDIRS) $(top_builddir)/library/$(pkg)/$${D}; \
+	   for f in `ls -d $(srcdir)/inst/$${D}/*`; do \
+	     $(INSTALL_DATA) $${f} $(top_builddir)/library/$(pkg)/$${D}; \
+	   done; \
+	 fi; done
+
+## used for base on Windows.  Every package except base has a namespace
+mkR1:
+	@$(MKINSTALLDIRS) $(top_builddir)/library/$(pkg)/R
+	@(f=$${TMPDIR:-/tmp}/R$$$$; \
+	  if test "$(R_KEEP_PKG_SOURCE)" = "yes"; then \
+	    for rsrc in $(RSRC); do \
+	      $(ECHO) "#line 1 \"$${rsrc}\"" >> "$${f}"; \
+	      cat $${rsrc} >> "$${f}"; \
+	    done; \
+	  else \
+	    cat $(RSRC) > "$${f}"; \
+	  fi; \
+	  $(SHELL) $(top_srcdir)/tools/move-if-change "$${f}" all.R)
+	@if test -f $(srcdir)/NAMESPACE;  then \
+	  $(INSTALL_DATA) $(srcdir)/NAMESPACE $(top_builddir)/library/$(pkg); \
+	fi
+	@rm -f $(top_builddir)/library/$(pkg)/Meta/nsInfo.rds
+
+## version for S4-using packages
+mkR2:
+	@$(MKINSTALLDIRS) $(top_builddir)/library/$(pkg)/R
+	@(f=$${TMPDIR:-/tmp}/R$$$$; \
+          $(ECHO) ".packageName <- \"$(pkg)\"" >  "$${f}"; \
+	  if test "$(R_KEEP_PKG_SOURCE)" = "yes"; then \
+		for rsrc in `LC_COLLATE=C ls $(srcdir)/R/*.R`; do \
+		  $(ECHO) "#line 1 \"$${rsrc}\"" >> "$${f}"; \
+		    cat $${rsrc} >> "$${f}"; \
+		done; \
+	  else \
+		cat `LC_COLLATE=C ls $(srcdir)/R/*.R` >> "$${f}"; \
+	  fi; \
+	  $(SHELL) $(top_srcdir)/tools/move-if-change "$${f}" all.R)
+	@rm -f $(top_builddir)/library/$(pkg)/Meta/nsInfo.rds
+	@$(INSTALL_DATA) $(srcdir)/NAMESPACE $(top_builddir)/library/$(pkg)
+	@rm -f $(top_builddir)/library/$(pkg)/Meta/nsInfo.rds
+
+## version for base on Unix, substitutes for @which@
+## (and so cannot be in src/library/base/Makefile.in)
+mkRbase:
+	@$(MKINSTALLDIRS) $(top_builddir)/library/$(pkg)/R
+	@(f=$${TMPDIR:-/tmp}/R$$$$; \
+	  if test "$(R_KEEP_PKG_SOURCE)" = "yes"; then \
+	    $(ECHO) > "$${f}"; \
+	    for rsrc in $(RSRC); do \
+	      $(ECHO) "#line 1 \"$${rsrc}\"" >> "$${f}"; \
+	      cat $${rsrc} >> "$${f}"; \
+	    done; \
+	  else \
+	    cat $(RSRC) > "$${f}"; \
+	  fi; \
+	  f2=$${TMPDIR:-/tmp}/R2$$$$; \
+	  sed -e "s:@WHICH@:${WHICH}:" "$${f}" > "$${f2}"; \
+	  rm -f "$${f}"; \
+	  $(SHELL) $(top_srcdir)/tools/move-if-change "$${f2}" all.R)
+	@if ! test -f $(top_builddir)/library/$(pkg)/R/$(pkg); then \
+	  $(INSTALL_DATA) all.R $(top_builddir)/library/$(pkg)/R/$(pkg); \
+	else if test all.R -nt $(top_builddir)/library/$(pkg)/R/$(pkg); then \
+	  $(INSTALL_DATA) all.R $(top_builddir)/library/$(pkg)/R/$(pkg); \
+	  fi \
+	fi
+
+mkdesc:
+	@if test -f DESCRIPTION; then \
+	  if test "$(PKG_BUILT_STAMP)" != ""; then \
+	    $(ECHO) "tools:::.install_package_description('.', '$(top_builddir)/library/${pkg}', '$(PKG_BUILT_STAMP)')" | \
+	    R_DEFAULT_PACKAGES=NULL $(R_EXE) > /dev/null ; \
+	  else \
+	  $(ECHO) "tools:::.install_package_description('.', '$(top_builddir)/library/${pkg}')" | \
+	  R_DEFAULT_PACKAGES=NULL $(R_EXE) > /dev/null ; \
+	  fi; \
+	fi
+
+## for base and tools
+mkdesc2:
+	@$(INSTALL_DATA) DESCRIPTION $(top_builddir)/library/$(pkg)
+	@if test "$(PKG_BUILT_STAMP)" != ""; then \
+	  $(ECHO) "Built: R $(VERSION); ; $(PKG_BUILT_STAMP); $(R_OSTYPE)" \
+	     >> $(top_builddir)/library/$(pkg)/DESCRIPTION ; \
+	else \
+	  $(ECHO) "Built: R $(VERSION); ; `TZ=UTC date`; $(R_OSTYPE)" \
+	     >> $(top_builddir)/library/$(pkg)/DESCRIPTION ; \
+	fi
+
+mkdemos:
+	@$(ECHO) "tools:::.install_package_demos('$(srcdir)', '$(top_builddir)/library/$(pkg)')" | \
+	  R_DEFAULT_PACKAGES=NULL $(R_EXE) > /dev/null
+
+## for base
+mkdemos2:
+	@$(MKINSTALLDIRS) $(top_builddir)/library/$(pkg)/demo
+	@for f in `ls -d $(srcdir)/demo/* | sed -e '/00Index/d'`; do \
+	  $(INSTALL_DATA) "$${f}" $(top_builddir)/library/$(pkg)/demo; \
+	done
+
+mkexec:
+	@if test -d $(srcdir)/exec; then \
+	  $(MKINSTALLDIRS) $(top_builddir)/library/$(pkg)/exec; \
+	  for f in  $(srcdir)/exec/*; do \
+	    $(INSTALL_DATA) "$${f}" $(top_builddir)/library/$(pkg)/exec; \
+	  done; \
+	fi
+
+## only used if byte-compilation is disabled
+mklazy:
+	@$(INSTALL_DATA) all.R $(top_builddir)/library/$(pkg)/R/$(pkg)
+	@$(ECHO) "tools:::makeLazyLoading(\"$(pkg)\")" | \
+	  R_DEFAULT_PACKAGES=$(DEFPKGS) LC_ALL=C $(R_EXE) > /dev/null
+
+mklazycomp: $(top_builddir)/library/$(pkg)/R/$(pkg).rdb
+
+mkRsimple:
+	@$(INSTALL_DATA) all.R $(top_builddir)/library/$(pkg)/R/$(pkg)
+	@rm -f $(top_builddir)/library/$(pkg)/R/$(pkg).rd?
+
+mksrc:
+	@if test -d src; then \
+	  (cd src && $(MAKE)) || exit 1; \
+	fi
+
+mksrc-win2:
+	@if test -d src; then \
+	  (cd src && $(MAKE) -f Makefile.win EXT_LIBS="$(EXT_LIBS)") || exit 1; \
+	fi
+
+sysdata: $(srcdir)/R/sysdata.rda
+	@$(ECHO) "installing 'sysdata.rda'"
+	@$(ECHO) "tools:::sysdata2LazyLoadDB(\"$(srcdir)/R/sysdata.rda\",\"$(top_builddir)/library/$(pkg)/R\")" | \
+	  R_DEFAULT_PACKAGES=NULL LC_ALL=C $(R_EXE)
+
+
+## install man/figures: currently only used for graphics
+mkfigs:
+	@if test -d  $(srcdir)/man/figures; then \
+	  mkdir -p $(top_builddir)/library/$(pkg)/help/figures; \
+	  cp $(srcdir)/man/figures/* \
+	    $(top_builddir)/library/$(pkg)/help/figures; \
+	fi
+
+install-tests:
+	@if test -d tests; then \
+	  mkdir -p $(top_builddir)/library/$(pkg)/tests; \
+	  cp tests/* $(top_builddir)/library/$(pkg)/tests; \
+	fi
+
+
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+DESCRIPTION: $(srcdir)/DESCRIPTION.in $(top_builddir)/config.status
+	@cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+mostlyclean: clean
+clean:
+	@if test -d src; then (cd src && $(MAKE) $@); fi
+	-@rm -f all.R .RData
+distclean: clean
+	@if test -d src; then (cd src && $(MAKE) $@); fi
+	-@rm -f Makefile DESCRIPTION
+maintainer-clean: distclean
+
+clean-win:
+	@if test -d src; then \
+	  $(MAKE) -C src -f Makefile.win clean; \
+	fi
+	-@rm -f all.R .RData
+distclean-win: clean-win
+	-@rm -f DESCRIPTION
+
+
+distdir: $(DISTFILES)
+	@for f in $(DISTFILES); do \
+	  test -f $(distdir)/$${f} \
+	    || ln $(srcdir)/$${f} $(distdir)/$${f} 2>/dev/null \
+	    || cp -p $(srcdir)/$${f} $(distdir)/$${f}; \
+	done
+	@for d in R data demo exec inst man noweb src po tests vignettes; do \
+	  if test -d $(srcdir)/$${d}; then \
+	    ((cd $(srcdir); \
+	          $(TAR) -c -f - $(DISTDIR_TAR_EXCLUDE) $${d}) \
+	        | (cd $(distdir); $(TAR) -x -f -)) \
+	      || exit 1; \
+	  fi; \
+	done
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/lazycomp.mk
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/lazycomp.mk	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/lazycomp.mk	(revision 2476)
@@ -0,0 +1,22 @@
+## ${R_HOME}/share/make/lazycomp.mk
+## Used for all packages except base, tools, datasets, methods
+
+.PHONY: Rsimple Rlazy Rlazycomp
+
+$(top_builddir)/library/$(pkg)/R/$(pkg).rdb: all.R
+	@$(INSTALL_DATA) all.R $(top_builddir)/library/$(pkg)/R/$(pkg)
+	@if test -n "$(R_NO_BASE_COMPILE)"; then \
+	 $(ECHO) "tools:::makeLazyLoading(\"$(pkg)\")" | \
+	  R_DEFAULT_PACKAGES=$(DEFPKGS) LC_ALL=C $(R_EXE) > /dev/null; \
+	else \
+	 $(ECHO) "byte-compiling package '$(pkg)'"; \
+	 $(ECHO) "tools:::makeLazyLoading(\"$(pkg)\")" | \
+	  R_COMPILE_PKGS=1 R_COMPILER_SUPPRESS_ALL=1 \
+	  R_DEFAULT_PACKAGES=$(DEFPKGS) LC_ALL=C $(R_EXE) > /dev/null; \
+	fi
+
+Rsimple: mkR mkRsimple
+Rlazy: mkR mkRsimple mklazy
+Rlazycomp: mkR mkRsimple mklazycomp
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/check_vars_out.mk
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/check_vars_out.mk	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/check_vars_out.mk	(revision 2476)
@@ -0,0 +1,22 @@
+## Generate using
+##   prefixes <- c("CPP", "C", "CXX", "F", "FC", "OBJC", "OBJCXX")
+##   writeLines(c(sprintf("\t@echo PKG_%sFLAGS: \"$(PKG_%sFLAGS)\"",
+##                        prefixes, prefixes),
+##                sprintf("\t@echo %sFLAGS: \"$(%sFLAGS)\"",
+##                        prefixes, prefixes)))
+
+makevars_test:
+	@echo PKG_CPPFLAGS: "$(PKG_CPPFLAGS)"
+	@echo PKG_CFLAGS: "$(PKG_CFLAGS)"
+	@echo PKG_CXXFLAGS: "$(PKG_CXXFLAGS)"
+	@echo PKG_FFLAGS: "$(PKG_FFLAGS)"
+	@echo PKG_FCFLAGS: "$(PKG_FCFLAGS)"
+	@echo PKG_OBJCFLAGS: "$(PKG_OBJCFLAGS)"
+	@echo PKG_OBJCXXFLAGS: "$(PKG_OBJCXXFLAGS)"
+	@echo CPPFLAGS: "$(CPPFLAGS)"
+	@echo CFLAGS: "$(CFLAGS)"
+	@echo CXXFLAGS: "$(CXXFLAGS)"
+	@echo FFLAGS: "$(FFLAGS)"
+	@echo FCFLAGS: "$(FCFLAGS)"
+	@echo OBJCFLAGS: "$(OBJCFLAGS)"
+	@echo OBJCXXFLAGS: "$(OBJCXXFLAGS)"
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/winshlib.mk
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/winshlib.mk	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/winshlib.mk	(revision 2476)
@@ -0,0 +1,33 @@
+## ${R_HOME}/share/make/winshlib.mk
+
+all: $(SHLIB)
+
+BASE = $(shell basename $(SHLIB) .dll)
+
+ADDQU = 's/[^ ][^ ]*/"&"/g'
+
+## do it with explicit rules as packages might add dependencies to this target
+## (attempts to do this GNUishly failed for parallel makes,
+## but we do want the link targets echoed)
+$(SHLIB): $(OBJECTS)
+	@if test "z$(OBJECTS)" != "z"; then \
+	  if test -e "$(BASE)-win.def"; then \
+	    echo $(SHLIB_LD) -shared $(DLLFLAGS) -o $@ $(BASE)-win.def $(OBJECTS) $(ALL_LIBS); \
+	    $(SHLIB_LD) -shared $(DLLFLAGS) -o $@ $(BASE)-win.def $(OBJECTS) $(ALL_LIBS); \
+	  else \
+	    echo EXPORTS > tmp.def; \
+	    $(NM) $^ | $(SED) -n $(SYMPAT) $(NM_FILTER) | $(SED) $(ADDQU)  >> tmp.def; \
+	    echo $(SHLIB_LD) -shared $(DLLFLAGS) -o $@ tmp.def $(OBJECTS) $(ALL_LIBS); \
+	    $(SHLIB_LD) -shared $(DLLFLAGS) -o $@ tmp.def $(OBJECTS) $(ALL_LIBS); \
+	    $(RM) tmp.def; \
+	  fi \
+	fi
+
+.PHONY: all shlib-clean
+shlib-clean:
+	@rm -f $(OBJECTS) symbols.rds
+
+## FIXME: why not Rscript?
+symbols.rds: $(OBJECTS)
+	@$(ECHO) "tools:::.shlib_objects_symbol_tables()" | \
+	  $(R_HOME)/bin$(R_ARCH)/Rterm.exe --vanilla --slave --args $(OBJECTS)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/shlib.mk
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/shlib.mk	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/shlib.mk	(revision 2476)
@@ -0,0 +1,21 @@
+## ${R_HOME}/share/make/shlib.mk
+
+all: $(SHLIB)
+
+$(SHLIB): $(OBJECTS)
+	@if test  "z$(OBJECTS)" != "z"; then \
+	  echo $(SHLIB_LINK) -o $@ $(OBJECTS) $(ALL_LIBS); \
+	  $(SHLIB_LINK) -o $@ $(OBJECTS) $(ALL_LIBS); \
+	fi
+
+.PHONY: all shlib-clean
+
+shlib-clean:
+	@rm -rf .libs _libs
+	@rm -f $(OBJECTS) symbols.rds
+
+
+## FIXME: why not Rscript?
+symbols.rds: $(OBJECTS)
+	@$(ECHO) "tools:::.shlib_objects_symbol_tables()" | \
+	  $(R_HOME)/bin/R --vanilla --slave --args $(OBJECTS)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/clean.mk
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/clean.mk	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/make/clean.mk	(revision 2476)
@@ -0,0 +1,2 @@
+## target with no rule to allow R CMD build to assume that 'clean' is defined.
+clean:
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/REMOVE.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/REMOVE.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/REMOVE.R	(revision 2476)
@@ -0,0 +1,82 @@
+#  File share/R/REMOVE.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+Usage <- function() {
+    cat("Usage: R CMD REMOVE [options] pkgs",
+        "",
+        "Remove the add-on packages specified by pkgs.  The library tree to",
+        "remove from can be specified via '--library'.  By default, packages are",
+        "removed from the library tree rooted at the first directory in",
+        ".libPaths() for an R session run in the current environment.",
+        "",
+        "Options:",
+        "  -h, --help		print short help message and exit",
+        "  -v, --version		print REMOVE version info and exit",
+        "  -l, --library=LIB	remove packages from library tree LIB",
+        "",
+        "Report bugs at bugs.r-project.org .", sep="\n")
+}
+
+options(showErrorCalls=FALSE)
+pkgs <- character(0)
+lib <- ""
+args <- commandArgs(TRUE)
+while(length(args)) {
+    a <- args[1]
+    if(a %in% c("-h", "--help")) {
+        Usage()
+        q("no")
+    }
+    else if(a %in% c("-v", "--version")) {
+        cat("R add-on package remover: ",
+            R.version[["major"]], ".",  R.version[["minor"]],
+            " (r", R.version[["svn rev"]], ")\n", sep = "")
+        cat("",
+            "Copyright (C) 2000-2009 The R Core Team.",
+            "This is free software; see the GNU General Public License version 2",
+            "or later for copying conditions.  There is NO warranty.",
+            sep="\n")
+        q("no")
+    }
+    else if(a == "-l") {
+        if(length(args) >= 2) {lib <- args[2]; args <- args[-1]}
+        else stop("-l option without value", call. = FALSE)
+    } else if(substr(a, 1, 10) == "--library=")
+        lib <- substr(a, 11, 1000)
+    else pkgs <- c(pkgs, a)
+    args <- args[-1]
+}
+if(!length(pkgs))
+    stop("ERROR: no packages specified", call.=FALSE)
+if(!nzchar(lib)) {
+    lib <- .libPaths()[1]
+    message("Removing from library ", sQuote(lib))
+} else {
+    ## lib is allowed to be a relative path.
+    ## should be OK below, but be sure.
+    cwd <- try(setwd(path.expand(lib)), silent = TRUE)
+    if(inherits(cwd, "try-error"))
+        stop("ERROR: cannot cd to directory ", sQuote(lib), call. = FALSE)
+    lib <- getwd()
+    setwd(cwd)
+}
+if(!utils::file_test("-d", lib) || file.access(lib, 2L))
+    stop("ERROR: no permission to remove from directory ", sQuote(lib),
+         call. = FALSE)
+utils::remove.packages(pkgs, lib)
+q("no")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/tests-startup.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/tests-startup.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/tests-startup.R	(revision 2476)
@@ -0,0 +1,4 @@
+## A custom startup file for tests
+## Run as if a system Rprofile, so no packages, no assignments
+options(useFancyQuotes = FALSE)
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/examples-header.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/examples-header.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/examples-header.R	(revision 2476)
@@ -0,0 +1,66 @@
+### * <HEADER>
+###
+attach(NULL, name = "CheckExEnv")
+assign("nameEx",
+       local({
+	   s <- "__{must remake R-ex/*.R}__"
+           function(new) {
+               if(!missing(new)) s <<- new else s
+           }
+       }),
+       pos = "CheckExEnv")
+## Add some hooks to label plot pages for base and grid graphics
+assign("base_plot_hook",
+       function() {
+           pp <- graphics::par(c("mfg","mfcol","oma","mar"))
+           if(all(pp$mfg[1:2] == c(1, pp$mfcol[2]))) {
+               outer <- (oma4 <- pp$oma[4]) > 0; mar4 <- pp$mar[4]
+               graphics::mtext(sprintf("help(\"%s\")", nameEx()), side = 4,
+                     line = if(outer)max(1, oma4 - 1) else min(1, mar4 - 1),
+               outer = outer, adj = 1, cex = 0.8, col = "orchid", las = 3)
+           }
+       },
+       pos = "CheckExEnv")
+assign("grid_plot_hook",
+       function() {
+           grid::pushViewport(grid::viewport(width=grid::unit(1, "npc") -
+                              grid::unit(1, "lines"), x=0, just="left"))
+           grid::grid.text(sprintf("help(\"%s\")", nameEx()),
+                           x=grid::unit(1, "npc") + grid::unit(0.5, "lines"),
+                           y=grid::unit(0.8, "npc"), rot=90,
+                           gp=grid::gpar(col="orchid"))
+       },
+       pos = "CheckExEnv")
+setHook("plot.new",     get("base_plot_hook", pos = "CheckExEnv"))
+setHook("persp",        get("base_plot_hook", pos = "CheckExEnv"))
+setHook("grid.newpage", get("grid_plot_hook", pos = "CheckExEnv"))
+assign("cleanEx",
+       function(env = .GlobalEnv) {
+	   rm(list = ls(envir = env, all.names = TRUE), envir = env)
+           RNGkind("default", "default")
+	   set.seed(1)
+   	   options(warn = 1)
+	   .CheckExEnv <- as.environment("CheckExEnv")
+	   delayedAssign("T", stop("T used instead of TRUE", domain = NA),
+		  assign.env = .CheckExEnv)
+	   delayedAssign("F", stop("F used instead of FALSE", domain = NA),
+		  assign.env = .CheckExEnv)
+	   sch <- search()
+	   newitems <- sch[! sch %in% .oldSearch]
+           if(length(newitems)) tools:::detachPackages(newitems)
+	   missitems <- .oldSearch[! .oldSearch %in% sch]
+	   if(length(missitems))
+	       warning("items ", paste(missitems, collapse=", "),
+		       " have been removed from the search path", domain = NA)
+       },
+       pos = "CheckExEnv")
+assign("ptime", proc.time(), pos = "CheckExEnv")
+## Do this before loading the package,
+## since packages have been known to change settings.
+## Force a size that is close to on-screen devices, fix paper.
+## don't rename par.postscript for back-compatibility of reference output.
+grDevices::pdf.options(width = 7, height = 7, paper = "special", reset = TRUE)
+grDevices::pdf(paste(pkgname, "-Ex.pdf", sep=""), encoding = "ISOLatin1")
+
+assign("par.postscript", graphics::par(no.readonly = TRUE), pos = "CheckExEnv")
+options(contrasts = c(unordered = "contr.treatment", ordered = "contr.poly"))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/nspackloader.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/nspackloader.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/nspackloader.R	(revision 2476)
@@ -0,0 +1,27 @@
+#  File share/R/nspackloader.R
+#  Part of the R package, http://www.R-project.org
+#
+#  Copyright (C) 1995-2012 The R Core Team
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  A copy of the GNU General Public License is available at
+#  http://www.r-project.org/Licenses/
+
+local({
+    info <- loadingNamespaceInfo()
+    pkg <- info$pkgname
+    ns <- .getNamespace(as.name(pkg))
+    if (is.null(ns))
+        stop("cannot find namespace environment for ", pkg, domain = NA);
+    dbbase <- file.path(info$libname, pkg, "R", pkg)
+    lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
+})
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/examples-footer.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/examples-footer.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/R/examples-footer.R	(revision 2476)
@@ -0,0 +1,11 @@
+### * <FOOTER>
+###
+options(digits = 7L)
+base::cat("Time elapsed: ", proc.time() - base::get("ptime", pos = 'CheckExEnv'),"\n")
+grDevices::dev.off()
+###
+### Local variables: ***
+### mode: outline-minor ***
+### outline-regexp: "\\(> \\)?### [*]+" ***
+### End: ***
+quit('no')
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/java/README
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/java/README	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/java/README	(revision 2476)
@@ -0,0 +1,3 @@
+getsp.class has source tools/getsp.java.
+
+It is installed for use by R CMD javareconf.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/java/getsp.class
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/java/getsp.class
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/bibtex/bib/RJournal.bib
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/bibtex/bib/RJournal.bib	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/bibtex/bib/RJournal.bib	(revision 2476)
@@ -0,0 +1,3770 @@
+
+
+
+
+
+
+@Article{stoer-samuelsen:,
+  author       = {Nathalie C. Stoer and Sven Ove Samuelsen}, 
+  title        = {multipleNCC: Inverse probability weighting of nested case-control data}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/stoer-samuelsen.pdf}
+}
+
+
+
+@Article{walker:,
+  author       = {Kyle Walker}, 
+  title        = {Geographic visualization and analysis in R with tigris}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/walker.pdf}
+}
+
+
+
+@Article{nolting-moore-stieha-etal:,
+  author       = {Ben C. Nolting and Christopher M. Moore and Christopher R. Stieha and Maria K. Cameron and Karen C. Abbott}, 
+  title        = {QPot: An R Package for Stochastic Differential Equation Quasi-Potential Analysis}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/nolting-moore-stieha-etal.pdf}
+}
+
+
+
+@Article{touloumis:,
+  author       = {Anestis Touloumis}, 
+  title        = {Simulating Correlated Binary and Multinomial Responses under Marginal Model Specification: The SimCorMultRes Package}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/touloumis.pdf}
+}
+
+
+
+@Article{bacci-bartolucci:,
+  author       = {Silvia Bacci and Francesco Bartolucci}, 
+  title        = {Two-Tier Latent Class IRT Models in R}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/bacci-bartolucci.pdf}
+}
+
+
+
+@Article{na-charte-na-etal:,
+  author       = {Ángel M. García and Francisco Charte and Pedro González and Cristóbal J. Carmona and María J. del Jesús}, 
+  title        = {Subgroup Discovery with Evolutionary Fuzzy Systems in R: the SDEFSR Package}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/na-charte-na-etal.pdf}
+}
+
+
+
+@Article{mori-mori-mendiburu-etal:,
+  author       = {Usue Mori and Usue Mori and Alexander Mendiburu and Jose A. Lozano}, 
+  title        = {Distance Measures for Time Series in R: the TSdist Package}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/mori-mori-mendiburu-etal.pdf}
+}
+
+
+
+@Article{collingwood-oskooii-garciarios-etal:,
+  author       = {Loren Collingwood and Kassra Oskooii and Sergio Garcia-Rios and Matt Barreto}, 
+  title        = {eiCompare: Comparing ecological inference estimates across EI and EI:RxC}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/collingwood-oskooii-garciarios-etal.pdf}
+}
+
+
+
+@Article{spindler-chernozhukov-hansen:,
+  author       = {Martin Spindler and Victor Chernozhukov and Chris Hansen}, 
+  title        = {hdm: High-Dimensional Metrics}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/spindler-chernozhukov-hansen.pdf}
+}
+
+
+
+@Article{tang-horikoshi-li:,
+  author       = {Yuan Tang and Massaki Horikoshi and Wenxuan Li}, 
+  title        = {ggfortify: Unified Interface to Visualize Statistical Result of Popular R Packages}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/tang-horikoshi-li.pdf}
+}
+
+
+
+@Article{zhu-chen:,
+  author       = {Xiangwei Zhu and Jianyi Chen}, 
+  title        = {mixtox: An R Package for Mixture Toxicity Assessment}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/zhu-chen.pdf}
+}
+
+
+
+@Article{deveau-barillot-boeva-etal:,
+  author       = {Paul Deveau and Emmanuel Barillot and Valentina Boeva and Andrei Zinovyev and Eric Bonnet}, 
+  title        = {Calculating Biological Module Enrichment or Depletion and Visualizing Data on Large-scale Molecular Maps with ACSNMineR and RNaviCell packages}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/deveau-barillot-boeva-etal.pdf}
+}
+
+
+
+@Article{pitsillou-fokianos:,
+  author       = {Maria Pitsillou and Konstantinos Fokianos}, 
+  title        = {dCovTS: Distance Covariance/Correlation for Time Series}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/pitsillou-fokianos.pdf}
+}
+
+
+
+@Article{lombardo-beh:,
+  author       = {Rosaria Lombardo and Eric J. Beh}, 
+  title        = {Variants of Simple Correspondence Analysis}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/lombardo-beh.pdf}
+}
+
+
+
+@Article{ramazzotti-antoniotti-caravagna-etal:,
+  author       = {Daniele Ramazzotti and Marco Antoniotti and Giulio Caravagna and Luca De Sano and Alex Graudenzi and Giancarlo Mauri and Bud Mishra}, 
+  title        = {Design of the TRONCO BioConductor Package for TRanslational ONCOlogy}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/ramazzotti-antoniotti-caravagna-etal.pdf}
+}
+
+
+
+@Article{schweiker:,
+  author       = {Marcel Schweiker}, 
+  title        = {comf: An R Package for Thermal Comfort Studies}, 
+  journal      = {The R Journal},
+  year         = ,
+  volume       = ,
+  number       = ,
+  pages        = {},  
+  month        = ,
+  url          = {http://journal.r-project.org/archive/-/schweiker.pdf}
+}
+
+
+
+@Article{RJournal:2009-1:Chambers,
+  author       = {John M. Chambers}, 
+  title        = {Facets of {R}}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 1,
+  pages        = {5--8},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Chambers.pdf}
+}
+
+
+
+@Article{RJournal:2009-1:Theussl+Zeileis,
+  author       = {Stefan Theu\ss{}l and Achim Zeileis}, 
+  title        = {Collaborative Software Development Using {R}-{F}orge}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 1,
+  pages        = {9--14},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Theussl+Zeileis.pdf}
+}
+
+
+
+@Article{RJournal:2009-1:Murrell,
+  author       = {Paul Murrell}, 
+  title        = {Drawing Diagrams with {R}}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 1,
+  pages        = {15--21},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Murrell.pdf}
+}
+
+
+
+@Article{RJournal:2009-1:Pau+Huber,
+  author       = {Gregoire Pau and Wolfgang Huber}, 
+  title        = {The {hwriter} Package}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 1,
+  pages        = {22--24},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Pau+Huber.pdf}
+}
+
+
+
+@Article{RJournal:2009-1:Ardia+et+al,
+  author       = {David Ardia and Lennart F. Hoogerheide and Herman K. van Dijk}, 
+  title        = {{AdMit}: Adaptive Mixtures of {S}tudent-$t$ Distributions}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 1,
+  pages        = {25--30},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Ardia+et+al.pdf}
+}
+
+
+
+@Article{RJournal:2009-1:Goulet+et+al,
+  author       = {Vincent Goulet and Michel Jacques and Mathieu Pigeon}, 
+  title        = {{expert}: Modeling Without Data Using Expert Opinion}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 1,
+  pages        = {31--36},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Goulet+et+al.pdf}
+}
+
+
+
+@Article{RJournal:2009-1:Mi+et+al,
+  author       = {Xuefei Mi and Tetsuhisa Miwa and Torsten Hothorn}, 
+  title        = {{mvtnorm}: New Numerical Algorithm for Multivariate Normal Probabilities}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 1,
+  pages        = {37--39},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Mi+et+al.pdf}
+}
+
+
+
+@Article{RJournal:2009-1:Kim+Oh,
+  author       = {Donghoh Kim and Hee-Seok Oh}, 
+  title        = {{EMD}: A Package for Empirical Mode Decomposition and {H}ilbert Spectrum}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 1,
+  pages        = {40--46},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Kim+Oh.pdf}
+}
+
+
+
+@Article{RJournal:2009-1:Orr+Liu,
+  author       = {Megan Orr and Peng Liu}, 
+  title        = {Sample Size Estimation while Controlling False Discovery Rate for Microarray Experiments Using the {ssize.fdr} Package}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 1,
+  pages        = {47--53},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Orr+Liu.pdf}
+}
+
+
+
+@Article{RJournal:2009-1:Knaus+et+al,
+  author       = {Jochen Knaus and Christine Porzelius and Harald Binder and Guido Schwarzer}, 
+  title        = {Easier Parallel Computing in {R} with {snowfall} and {sfCluster}}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 1,
+  pages        = {54--59},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Knaus+et+al.pdf}
+}
+
+
+
+@Article{RJournal:2009-1:Guazzelli+et+al,
+  author       = {Alex Guazzelli and Michael Zeller and Wen-Ching Lin and Graham Williams}, 
+  title        = {{PMML}: An Open Standard for Sharing Models}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 1,
+  pages        = {60--65},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2009-1/RJournal_2009-1_Guazzelli+et+al.pdf}
+}
+
+
+
+@Article{RJournal:2009-2:Fox,
+  author       = {John Fox}, 
+  title        = {Aspects of the Social Organization and Trajectory of the {R} Project}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 2,
+  pages        = {5--13},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2009-2/RJournal_2009-2_Fox.pdf}
+}
+
+
+
+@Article{RJournal:2009-2:Strobl~et~al,
+  author       = {Carolin Strobl and Torsten Hothorn and Achim Zeileis}, 
+  title        = {Party on!}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 2,
+  pages        = {14--17},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2009-2/RJournal_2009-2_Strobl~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2009-2:Lafaye~de~Micheaux+Liquet,
+  author       = {Pierre {Lafaye de Micheaux} and Benoit Liquet}, 
+  title        = {{ConvergenceConcepts}: an {R} Package to Investigate-Various-Modes-of-Convergence}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 2,
+  pages        = {18--25},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2009-2/RJournal_2009-2_Lafaye~de~Micheaux+Liquet.pdf}
+}
+
+
+
+@Article{RJournal:2009-2:Coeurjolly~et~al,
+  author       = {J. F. Coeurjolly and R. Drouilhet and P. {Lafaye de Micheaux} and J. F. Robineau}, 
+  title        = {{asympTest}: A Simple {R} Package for Classical Parametric Statistical Tests and Confidence Intervals in Large Samples}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 2,
+  pages        = {26--30},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2009-2/RJournal_2009-2_Coeurjolly~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2009-2:Carpenter~et~al,
+  author       = {J. Carpenter and G. R{\" u}cker and G. Schwarzer}, 
+  title        = {{copas}: An {R} Package for Fitting the Copas Selection Model}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 2,
+  pages        = {31--36},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2009-2/RJournal_2009-2_Carpenter~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2009-2:Damico,
+  author       = {Anthony Damico}, 
+  title        = {Transitioning to {R}: Replicating {SAS}, {Stata}, and {SUDAAN} Analysis Techniques in Health Policy Data}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 2,
+  pages        = {37--44},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2009-2/RJournal_2009-2_Damico.pdf}
+}
+
+
+
+@Article{RJournal:2009-2:Williams,
+  author       = {Graham J. Williams}, 
+  title        = {{Rattle}: A Data Mining {GUI} for {R}}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 2,
+  pages        = {45--55},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2009-2/RJournal_2009-2_Williams.pdf}
+}
+
+
+
+@Article{RJournal:2009-2:Graves~et~al,
+  author       = {Spencer Graves and Sundar Dorai-Raj and Romain Fran{\c c}ois}, 
+  title        = {{sos}: Searching Help Pages of {R} Packages}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 2,
+  pages        = {56--59},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2009-2/RJournal_2009-2_Graves~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2009-2:Murdoch+Urbanek,
+  author       = {Duncan Murdoch and Simon Urbanek}, 
+  title        = {The New {R} Help System}, 
+  journal      = {The R Journal},
+  year         = 2009,
+  volume       = 1,
+  number       = 2,
+  pages        = {60--65},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2009-2/RJournal_2009-2_Murdoch+Urbanek.pdf}
+}
+
+
+
+@Article{RJournal:2010-1:Pramana~et~al,
+  author       = {Setia Pramana and Dan Lin and Philippe Haldermans and Ziv Shkedy and Tobias Verbeke and Hinrich G{\" o}hlmann and An De Bondt and Willem Talloen and Luc Bijnens}, 
+  title        = {{IsoGene}: An {R} Package for Analyzing Dose-response Studies in Microarray Experiments}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 1,
+  pages        = {5--12},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2010-1/RJournal_2010-1_Pramana~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2010-1:Brown+Zhou,
+  author       = {Patrick Brown and Lutong Zhou}, 
+  title        = {{MCMC} for Generalized Linear Mixed Models with {glmmBUGS}}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 1,
+  pages        = {13--17},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2010-1/RJournal_2010-1_Brown+Zhou.pdf}
+}
+
+
+
+@Article{RJournal:2010-1:Weidmann+Skrede~Gleditsch,
+  author       = {Nils B. Weidmann and {Kristian Skrede} Gleditsch}, 
+  title        = {Mapping and Measuring Country Shapes}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 1,
+  pages        = {18--24},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2010-1/RJournal_2010-1_Weidmann+Skrede~Gleditsch.pdf}
+}
+
+
+
+@Article{RJournal:2010-1:Wilhelm+Manjunath,
+  author       = {Stefan Wilhelm and B. G. Manjunath}, 
+  title        = {{tmvtnorm}: A Package for the Truncated Multivariate Normal Distribution}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 1,
+  pages        = {25--29},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2010-1/RJournal_2010-1_Wilhelm+Manjunath.pdf}
+}
+
+
+
+@Article{RJournal:2010-1:Guenther+Fritsch,
+  author       = {Frauke G{\" u}nther and Stefan Fritsch}, 
+  title        = {{neuralnet}: Training of Neural Networks}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 1,
+  pages        = {30--38},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2010-1/RJournal_2010-1_Guenther+Fritsch.pdf}
+}
+
+
+
+@Article{RJournal:2010-1:Werft+Benner,
+  author       = {Wiebke Werft and Axel Benner}, 
+  title        = {{glmperm}: A Permutation of Regressor Residuals Test for Inference in Generalized Linear Models}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 1,
+  pages        = {39--43},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2010-1/RJournal_2010-1_Werft+Benner.pdf}
+}
+
+
+
+@Article{RJournal:2010-1:Thioulouse~et~al,
+  author       = {Jean Thioulouse and Claire Valiente-Moro and Lionel Zenner}, 
+  title        = {Online Reproducible Research: An Application to Multivariate Analysis of Bacterial {DNA} Fingerprint Data}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 1,
+  pages        = {44--52},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2010-1/RJournal_2010-1_Thioulouse~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2010-1:Fay,
+  author       = {Michael P. Fay}, 
+  title        = {Two-sided Exact Tests and Matching Confidence Intervals for Discrete Data}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 1,
+  pages        = {53--58},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2010-1/RJournal_2010-1_Fay.pdf}
+}
+
+
+
+@Article{RJournal:2010-2:Soetaert~et~al,
+  author       = {Karline Soetaert and Thomas Petzoldt and R. Woodrow Setzer}, 
+  title        = {Solving Differential Equations in {R}}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 2,
+  pages        = {5--15},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2010-2/RJournal_2010-2_Soetaert~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2010-2:Murdoch,
+  author       = {Duncan Murdoch}, 
+  title        = {Source References}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 2,
+  pages        = {16--19},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2010-2/RJournal_2010-2_Murdoch.pdf}
+}
+
+
+
+@Article{RJournal:2010-2:Roennegaard~et~al,
+  author       = {Lars R{\" o}nneg{\aa}rd and Xia Shen and Moudud Alam}, 
+  title        = {{hglm}: A Package for Fitting Hierarchical Generalized Linear Models}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 2,
+  pages        = {20--28},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2010-2/RJournal_2010-2_Roennegaard~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2010-2:Solymos,
+  author       = {P{\' e}ter S{\' o}lymos}, 
+  title        = {{dclone}: Data Cloning in {R}}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 2,
+  pages        = {29--37},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2010-2/RJournal_2010-2_Solymos.pdf}
+}
+
+
+
+@Article{RJournal:2010-2:Wickham,
+  author       = {Hadley Wickham}, 
+  title        = {{stringr}: Modern, Consistent String Processing}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 2,
+  pages        = {38--40},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2010-2/RJournal_2010-2_Wickham.pdf}
+}
+
+
+
+@Article{RJournal:2010-2:Ardia+Hoogerheide,
+  author       = {David Ardia and Lennart F. Hoogerheide}, 
+  title        = {Bayesian Estimation of the {GARCH}(1,1) Model with {S}tudent-$t$ Innovations}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 2,
+  pages        = {41--47},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2010-2/RJournal_2010-2_Ardia+Hoogerheide.pdf}
+}
+
+
+
+@Article{RJournal:2010-2:Ferreira~da~Silva,
+  author       = {Adelino {Ferreira da Silva}}, 
+  title        = {{cudaBayesreg}: {B}ayesian Computation in {CUDA}}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 2,
+  pages        = {48--55},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2010-2/RJournal_2010-2_Ferreira~da~Silva.pdf}
+}
+
+
+
+@Article{RJournal:2010-2:Bilder~et~al,
+  author       = {Christopher R. Bilder and Boan Zhang and Frank Schaarschmidt and Joshua M. Tebbs}, 
+  title        = {{binGroup}: A Package for Group Testing}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 2,
+  pages        = {56--60},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2010-2/RJournal_2010-2_Bilder~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2010-2:Sariyar+Borg,
+  author       = {Murat Sariyar and Andreas Borg}, 
+  title        = {The {RecordLinkage} Package: Detecting Errors in Data}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 2,
+  pages        = {61--67},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2010-2/RJournal_2010-2_Sariyar+Borg.pdf}
+}
+
+
+
+@Article{RJournal:2010-2:Ishwaran~et~al,
+  author       = {Hemant Ishwaran and Udaya B. Kogalur and J. Sunil Rao}, 
+  title        = {{spikeslab}: Prediction and Variable Selection Using Spike and Slab Regression}, 
+  journal      = {The R Journal},
+  year         = 2010,
+  volume       = 2,
+  number       = 2,
+  pages        = {68--73},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2010-2/RJournal_2010-2_Ishwaran~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2011-1:Wickham,
+  author       = {Hadley Wickham}, 
+  title        = {{testthat}: Get Started with Testing}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 1,
+  pages        = {5--10},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Wickham.pdf}
+}
+
+
+
+@Article{RJournal:2011-1:Bohn~et~al,
+  author       = {Angela Bohn and Ingo Feinerer and Kurt Hornik and Patrick Mair}, 
+  title        = {Content-Based Social Network Analysis of Mailing Lists}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 1,
+  pages        = {11--18},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Bohn~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2011-1:Chalabi~et~al,
+  author       = {Yohan Chalabi and Martin M{\" a}chler and Diethelm W{\" u}rtz}, 
+  title        = {{Rmetrics} - {timeDate} Package}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 1,
+  pages        = {19--24},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Chalabi~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2011-1:Poisot,
+  author       = {Timoth{\' e}e Poisot}, 
+  title        = {The {digitize} Package: Extracting Numerical Data from Scatterplots}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 1,
+  pages        = {25--26},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Poisot.pdf}
+}
+
+
+
+@Article{RJournal:2011-1:Ardia~et~al,
+  author       = {David Ardia and Kris Boudt and Peter Carl and Katharine M. Mullen and Brian G. Peterson}, 
+  title        = {Differential Evolution with {DEoptim}}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 1,
+  pages        = {27--34},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Ardia~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2011-1:South,
+  author       = {Andy South}, 
+  title        = {{rworldmap}: A New {R} Package for Mapping Global Data}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 1,
+  pages        = {35--43},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2011-1/RJournal_2011-1_South.pdf}
+}
+
+
+
+@Article{RJournal:2011-1:Lafitte~et~al,
+  author       = {Fr{\' e}d{\' e}ric Lafitte and Dirk Van Heule and Julien Van hamme}, 
+  title        = {Cryptographic {B}oolean Functions with {R}}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 1,
+  pages        = {44--47},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Lafitte~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2011-1:Murrell,
+  author       = {Paul Murrell}, 
+  title        = {Raster Images in {R} Graphics}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 1,
+  pages        = {48--54},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Murrell.pdf}
+}
+
+
+
+@Article{RJournal:2011-1:Fraley~et~al,
+  author       = {Chris Fraley and Adrian Raftery and Tilmann Gneiting and McLean Sloughter and Veronica Berrocal}, 
+  title        = {Probabilistic Weather Forecasting in {R}}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 1,
+  pages        = {55--63},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Fraley~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2011-1:Kane~et~al,
+  author       = {David Kane and Andrew Liu and Khanh Nguyen}, 
+  title        = {Analyzing an Electronic Limit Order Book}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 1,
+  pages        = {64--68},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Kane~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2011-1:Hyndman,
+  author       = {Rob J. Hyndman}, 
+  title        = {Giving a {useR!} Talk}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 1,
+  pages        = {69--71},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Hyndman.pdf}
+}
+
+
+
+@Article{RJournal:2011-1:Cook,
+  author       = {Dianne Cook}, 
+  title        = {Tips for Presenting Your Work}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 1,
+  pages        = {72--74},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2011-1/RJournal_2011-1_Cook.pdf}
+}
+
+
+
+@Article{RJournal:2011-2:Baier~et~al,
+  author       = {Thomas Baier and Erich Neuwirth and Michele De Meo}, 
+  title        = {Creating and Deploying an Application with {(R)Excel} and {R}}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 2,
+  pages        = {5--11},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2011-2/RJournal_2011-2_Baier~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2011-2:Marschner,
+  author       = {Ian C. Marschner}, 
+  title        = {{glm2}: Fitting Generalized Linear Models with Convergence Problems}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 2,
+  pages        = {12--15},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2011-2/RJournal_2011-2_Marschner.pdf}
+}
+
+
+
+@Article{RJournal:2011-2:Lundholm,
+  author       = {Michael Lundholm}, 
+  title        = {Implementing the Compendium Concept with {S}weave and {DOCSTRIP}}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 2,
+  pages        = {16--21},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2011-2/RJournal_2011-2_Lundholm.pdf}
+}
+
+
+
+@Article{RJournal:2011-2:Hornik+Murdoch,
+  author       = {Kurt Hornik and Duncan Murdoch}, 
+  title        = {Watch Your Spelling!}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 2,
+  pages        = {22--28},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2011-2/RJournal_2011-2_Hornik+Murdoch.pdf}
+}
+
+
+
+@Article{RJournal:2011-2:Wang+Song,
+  author       = {Haizhou Wang and Mingzhou Song}, 
+  title        = {{Ckmeans.1d.dp}: Optimal $k$-means Clustering in One Dimension by Dynamic Programming}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 2,
+  pages        = {29--33},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2011-2/RJournal_2011-2_Wang+Song.pdf}
+}
+
+
+
+@Article{RJournal:2011-2:Arnold+Emerson,
+  author       = {Taylor B. Arnold and John W. Emerson}, 
+  title        = {Nonparametric Goodness-of-Fit Tests for Discrete Null Distributions}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 2,
+  pages        = {34--39},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2011-2/RJournal_2011-2_Arnold+Emerson.pdf}
+}
+
+
+
+@Article{RJournal:2011-2:Gesmann+de~Castillo,
+  author       = {Markus Gesmann and Diego de Castillo}, 
+  title        = {Using the {G}oogle Visualisation {API} with {R}}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 2,
+  pages        = {40--44},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2011-2/RJournal_2011-2_Gesmann+de~Castillo.pdf}
+}
+
+
+
+@Article{RJournal:2011-2:Herve,
+  author       = {Maxime Herv{\' e}}, 
+  title        = {{GrapheR}: a Multiplatform {GUI} for Drawing Customizable Graphs in {R}}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 2,
+  pages        = {45--53},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2011-2/RJournal_2011-2_Herve.pdf}
+}
+
+
+
+@Article{RJournal:2011-2:Lin~Shang,
+  author       = {Han Lin Shang}, 
+  title        = {{rainbow}: An {R} Package for Visualizing Functional Time Series}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 2,
+  pages        = {54--59},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2011-2/RJournal_2011-2_Lin~Shang.pdf}
+}
+
+
+
+@Article{RJournal:2011-2:Plummer,
+  author       = {Martyn Plummer}, 
+  title        = {Portable {C++} for {R} Packages}, 
+  journal      = {The R Journal},
+  year         = 2011,
+  volume       = 3,
+  number       = 2,
+  pages        = {60--63},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2011-2/RJournal_2011-2_Plummer.pdf}
+}
+
+
+
+@Article{RJournal:2012-1:G~Barnett~et~al,
+  author       = {Adrian G. Barnett and Peter Baker and Annette J. Dobson}, 
+  title        = {Analysing Seasonal Data}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 1,
+  pages        = {5--10},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2012-1/RJournal_2012-1_G~Barnett~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2012-1:Holmes~et~al,
+  author       = {Elizabeth E. Holmes and Eric J. Ward and Kellie Wills}, 
+  title        = {{MARSS}: Multivariate Autoregressive State-space Models for Analyzing Time-series Data}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 1,
+  pages        = {11--19},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2012-1/RJournal_2012-1_Holmes~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2012-1:Ropkins+Carslaw,
+  author       = {Karl Ropkins and David C. Carslaw}, 
+  title        = {{openair} -- Data Analysis Tools for the Air Quality Community}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 1,
+  pages        = {20--29},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2012-1/RJournal_2012-1_Ropkins+Carslaw.pdf}
+}
+
+
+
+@Article{RJournal:2012-1:Adler,
+  author       = {Daniel Adler}, 
+  title        = {Foreign Library Interface}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 1,
+  pages        = {30--40},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2012-1/RJournal_2012-1_Adler.pdf}
+}
+
+
+
+@Article{RJournal:2012-1:Lawson,
+  author       = {John Lawson}, 
+  title        = {{Vdgraph}: A Package for Creating Variance Dispersion Graphs}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 1,
+  pages        = {41--44},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2012-1/RJournal_2012-1_Lawson.pdf}
+}
+
+
+
+@Article{RJournal:2012-1:Anoke~et~al,
+  author       = {Sarah C. Anoke and Yuting Zhao and Rafael Jaeger and Nicholas J. Horton}, 
+  title        = {{xgrid} and {R}: Parallel Distributed Processing Using Heterogeneous Groups of {A}pple Computers}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 1,
+  pages        = {45--55},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2012-1/RJournal_2012-1_Anoke~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2012-1:Jurka,
+  author       = {Timothy P. Jurka}, 
+  title        = {{maxent}: An {R} Package for Low-memory Multinomial Logistic Regression with Support for Semi-automated Text Classification}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 1,
+  pages        = {56--59},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2012-1/RJournal_2012-1_Jurka.pdf}
+}
+
+
+
+@Article{RJournal:2012-1:Bergsma+Smith,
+  author       = {Timothy T. Bergsma and Michael S. Smith}, 
+  title        = {{Sumo}: An Authenticating Web Application with an Embedded {R} Session}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 1,
+  pages        = {60--63},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2012-1/RJournal_2012-1_Bergsma+Smith.pdf}
+}
+
+
+
+@Article{RJournal:2012-1:Hornik~et~al,
+  author       = {Kurt Hornik and Duncan Murdoch and Achim Zeileis}, 
+  title        = {Who Did What? {T}he Roles of {R} Package Authors and How to Refer to Them}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 1,
+  pages        = {64--69},
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2012-1/RJournal_2012-1_Hornik~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2012-2:Murrell,
+  author       = {Paul Murrell}, 
+  title        = {What's in a Name?}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 2,
+  pages        = {5--12},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2012-2/RJournal_2012-2_Murrell.pdf}
+}
+
+
+
+@Article{RJournal:2012-2:Murrell2,
+  author       = {Paul Murrell}, 
+  title        = {It's Not What You Draw, It's What You Don't Draw}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 2,
+  pages        = {13--18},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2012-2/RJournal_2012-2_Murrell2.pdf}
+}
+
+
+
+@Article{RJournal:2012-2:Murrell+Ly,
+  author       = {Paul Murrell and Velvet Ly}, 
+  title        = {Debugging {grid} Graphics}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 2,
+  pages        = {19--27},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2012-2/RJournal_2012-2_Murrell+Ly.pdf}
+}
+
+
+
+@Article{RJournal:2012-2:Do~Ha~et~al,
+  author       = {Il Do Ha and Maengseok Noh and Youngjo Lee}, 
+  title        = {{frailtyHL}: A Package for Fitting Frailty Models with H-likelihood}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 2,
+  pages        = {28--37},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2012-2/RJournal_2012-2_Do~Ha~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2012-2:Nieuwenhuis~et~al,
+  author       = {Rense Nieuwenhuis and Manfred {te Grotenhuis} and Ben Pelzer}, 
+  title        = {{influence.ME}: Tools for Detecting Influential Data in Mixed Effects Models}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 2,
+  pages        = {38--47},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2012-2/RJournal_2012-2_Nieuwenhuis~et~al.pdf}
+}
+
+
+
+@Article{RJournal:2012-2:Nie+S~Racine,
+  author       = {Zhenghua Nie and Jeffrey S. Racine}, 
+  title        = {The {crs} Package: Nonparametric Regression Splines for Continuous and Categorical Predictors}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 2,
+  pages        = {48--56},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2012-2/RJournal_2012-2_Nie+S~Racine.pdf}
+}
+
+
+
+@Article{RJournal:2012-2:Kloke+McKean,
+  author       = {John D. Kloke and Joseph W. McKean}, 
+  title        = {{Rfit}: Rank-based Estimation for Linear Models}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 2,
+  pages        = {57--64},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2012-2/RJournal_2012-2_Kloke+McKean.pdf}
+}
+
+
+
+@Article{RJournal:2012-2:Sadeghi+Marchetti,
+  author       = {Kayvan Sadeghi and Giovanni M. Marchetti}, 
+  title        = {Graphical {M}arkov Models with Mixed Graphs in {R}}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 2,
+  pages        = {65--73},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2012-2/RJournal_2012-2_Sadeghi+Marchetti.pdf}
+}
+
+
+
+@Article{RJournal:2012-2:Baaaath,
+  author       = {Rasmus B{\aa}{\aa}th}, 
+  title        = {The State of Naming Conventions in {R}}, 
+  journal      = {The R Journal},
+  year         = 2012,
+  volume       = 4,
+  number       = 2,
+  pages        = {74--75},
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2012-2/RJournal_2012-2_Baaaath.pdf}
+}
+
+
+
+@Article{editorial:2013,
+  author       = {Hadley Wickham}, 
+  title        = {Editorial}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {4--5},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/editorial.pdf}
+}
+
+
+
+@Article{collingwood-jurka-boydstun-etal:2013,
+  author       = {Loren Collingwood and Timothy P. Jurka and Amber E. Boydstun and Emiliano Grossman and Wouter van Atteveldt}, 
+  title        = {{RTextTools}: A Supervised Learning Package for Text Classification}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {6--12},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/collingwood-jurka-boydstun-etal.pdf}
+}
+
+
+
+@Article{xiang-gubian-suomela-etal:2013,
+  author       = {Yang Xiang and Sylvain Gubian and Brian Suomela and Julia Hoeng}, 
+  title        = {Generalized Simulated Annealing for Global Optimization: the {GenSA} Package for {R}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {13--28},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/xiang-gubian-suomela-etal.pdf}
+}
+
+
+
+@Article{kostov-becuebertaut-husson:2013,
+  author       = {Belchin Kostov and M{\' o}nica B{\' e}cue-Bertaut and Fran{\c c}ois Husson}, 
+  title        = {Multiple Factor Analysis on Contingency Tables in the {FactoMineR} Package}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {29--38},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/kostov-becuebertaut-husson.pdf}
+}
+
+
+
+@Article{fox-friendly-weisberg:2013,
+  author       = {John Fox and Michael Friendly and Sanford Weisberg}, 
+  title        = {Hypothesis Tests for Multivariate Linear Models Using the {car} Package}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {39--52},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/fox-friendly-weisberg.pdf}
+}
+
+
+
+@Article{eugster-schlesinger:2013,
+  author       = {Manuel J. A. Eugster and Thomas Schlesinger}, 
+  title        = {{osmar}: {OpenStreetMap} and {R}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {53--63},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/eugster-schlesinger.pdf}
+}
+
+
+
+@Article{shang:2013,
+  author       = {Han Shang}, 
+  title        = {{ftsa}: An {R} Package for Analyzing Functional Time Series}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {64--72},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/shang.pdf}
+}
+
+
+
+@Article{godfrey:2013,
+  author       = {A. Jonathan R. Godfrey}, 
+  title        = {Statistical Analysis from a Blind Person's Perspective}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {73--79},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/godfrey.pdf}
+}
+
+
+
+@Article{zagaglia:2013,
+  author       = {Paolo Zagaglia}, 
+  title        = {{PIN}: Measuring Asymmetric Information in Financial Markets with {R}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {80--86},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/zagaglia.pdf}
+}
+
+
+
+@Article{thiem-dusa:2013,
+  author       = {Alrik Thiem and Adrian Dusa}, 
+  title        = {{QCA}: A Package for Qualitative Comparative Analysis}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {87--97},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/thiem-dusa.pdf}
+}
+
+
+
+@Article{colleter-guitton-gascuel:2013,
+  author       = {Mathieu Colleter and Jerome Guitton and Didier Gascuel}, 
+  title        = {An Introduction to the {EcoTroph} {R} package: Analyzing Aquatic Ecosystem Trophic Network}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {98--107},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/colleter-guitton-gascuel.pdf}
+}
+
+
+
+@Article{valle-dellomodarme:2013,
+  author       = {Giada Valle and Matteo Dell'Omodarme}, 
+  title        = {{stellaR}: a Package to Manage Stellar Evolution Tracks and Isochrones}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {108--116},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/valle-dellomodarme.pdf}
+}
+
+
+
+@Article{hofmann-unwin-cook:2013,
+  author       = {Heike Hofmann and Antony Unwin and Dianne Cook}, 
+  title        = {Let Graphics Tell the Story -- {D}atasets in {R}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {117--129},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/hofmann-unwin-cook.pdf}
+}
+
+
+
+@Article{wilhelm-matos:2013,
+  author       = {Stefan Wilhelm and Miguel Godinho de Matos}, 
+  title        = {Estimating Spatial Probit Models in {R}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {130--143},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/wilhelm-matos.pdf}
+}
+
+
+
+@Article{kahle-wickham:2013,
+  author       = {David Kahle and Hadley Wickham}, 
+  title        = {{ggmap}: Spatial Visualization with {ggplot2}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {144--161},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/kahle-wickham.pdf}
+}
+
+
+
+@Article{kahle:2013,
+  author       = {David Kahle}, 
+  title        = {{mpoly}: Multivariate Polynomials in {R}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {162--170},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/kahle.pdf}
+}
+
+
+
+@Article{forcheh-verbeke-kasim-etal:2013,
+  author       = {Anyiawung Chiara Forcheh and Geert Verbeke and Adetayo Kasim and Dan Lin and Ziv Shkedy and Willem Talloen and Hinrich W. H. Goehlmann and Lieven Clement}, 
+  title        = {The {beadarrayFilter}: An {R} Package to Filter Beads}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {171--180},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/forcheh-verbeke-kasim-etal.pdf}
+}
+
+
+
+@Article{mcdaniel-henderson-rathouz:2013,
+  author       = {Lee S. McDaniel and Nicholas C. Henderson and Paul J. Rathouz}, 
+  title        = {Fast Pure {R} Implementation of {GEE}: Application of the {Matrix} Package}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {181--187},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/mcdaniel-henderson-rathouz.pdf}
+}
+
+
+
+@Article{bouchetvalat-bastin:2013,
+  author       = {Milan Bouchet-Valat and Gilles Bastin}, 
+  title        = {{RcmdrPlugin.temis}, a Graphical Integrated Text Mining Solution in {R}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {188--196},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/bouchetvalat-bastin.pdf}
+}
+
+
+
+@Article{ooms:2013,
+  author       = {Jeroen Ooms}, 
+  title        = {Directions for Improved Dependency Versioning in {R}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {197--206},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/ooms.pdf}
+}
+
+
+
+@Article{lebauer-dietze-bolker:2013,
+  author       = {David LeBauer and Michael Dietze and Ben Bolker}, 
+  title        = {Translating Probability Distributions: From {R} to {BUGS} and Back Again}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {207--209},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/lebauer-dietze-bolker.pdf}
+}
+
+
+
+@Article{chinese-r-conf:2013,
+  author       = {Jing Leng and Jingjing Guan}, 
+  title        = {Conference Review: The 6th {C}hinese {R} Conference}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {210--211},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/chinese-r-conf.pdf}
+}
+
+
+
+@Article{r-finance:2013,
+  author       = {Joshua Ulrich}, 
+  title        = {Conference Report: {R/F}inance 2013}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {212--214},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/r-finance.pdf}
+}
+
+
+
+@Article{user2013:2013,
+  author       = {{UseR 2013 Organising Committee}}, 
+  title        = {The {R} {U}ser {C}onference 2013}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {215--217},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/user2013.pdf}
+}
+
+
+
+@Article{bioconductor:2013,
+  author       = {{Bioconductor Team}}, 
+  title        = {News from the {B}ioconductor Project}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {218--219},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/bioconductor.pdf}
+}
+
+
+
+@Article{r-foundation:2013,
+  author       = {Kurt Hornik}, 
+  title        = {{R} {F}oundation News}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {220--220},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/r-foundation.pdf}
+}
+
+
+
+@Article{r-changes:2013,
+  author       = {{The R Core Team}}, 
+  title        = {Changes in {R}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {221--238},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/r-changes.pdf}
+}
+
+
+
+@Article{cran:2013,
+  author       = {Kurt Hornik and Achim Zeileis}, 
+  title        = {Changes on {CRAN}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 1,
+  pages        = {239--264},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2013-1/cran.pdf}
+}
+
+
+
+@Article{editorial:2013,
+  author       = {Hadley Wickham}, 
+  title        = {Editorial}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {3--3},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/editorial.pdf}
+}
+
+
+
+@Article{armstrong:2013,
+  author       = {David A. {Armstrong II}}, 
+  title        = {{factorplot}: Improving Presentation of Simple Contrasts in {GLM}s}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {4--15},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/armstrong.pdf}
+}
+
+
+
+@Article{sartore:2013,
+  author       = {Luca Sartore}, 
+  title        = {{spMC}: Modelling Spatial Random Fields with Continuous Lag {M}arkov Chains}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {16--28},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/sartore.pdf}
+}
+
+
+
+@Article{michna-woods:2013,
+  author       = {Pavel Michna and Milton Woods}, 
+  title        = {{RNetCDF} -- A Package for Reading and Writing {NetCDF} Datasets}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {29--36},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/michna-woods.pdf}
+}
+
+
+
+@Article{roediger-bohm-schimke:2013,
+  author       = {Stefan Roediger and Alexander Bohm and Ingolf Schimke}, 
+  title        = {Surface Melting Curve Analysis with {R}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {37--52},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/roediger-bohm-schimke.pdf}
+}
+
+
+
+@Article{lu-kane:2013,
+  author       = {Yang Lu and David Kane}, 
+  title        = {Performance Attribution for Equity Portfolios}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {53--62},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/lu-kane.pdf}
+}
+
+
+
+@Article{wang-shan:2013,
+  author       = {Weizhen Wang and Guogen Shan}, 
+  title        = {{ExactCIdiff}: An {R} Package for Computing Exact Confidence Intervals for the Difference of Two Proportions}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {62--70},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/wang-shan.pdf}
+}
+
+
+
+@Article{bilgic-susmann:2013,
+  author       = {Yusuf K. Bilgic and Herb Susmann}, 
+  title        = {{rlme}: An {R} Package for Rank-Based Estimation and Prediction in Random Effects Nested Models}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {71--79},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/bilgic-susmann.pdf}
+}
+
+
+
+@Article{sax-steiner:2013,
+  author       = {Christoph Sax and Peter Steiner}, 
+  title        = {Temporal Disaggregation of Time Series}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {80--87},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/sax-steiner.pdf}
+}
+
+
+
+@Article{boehringer:2013,
+  author       = {Stefan Boehringer}, 
+  title        = {Dynamic Parallelization of {R} Functions}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {88--96},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/boehringer.pdf}
+}
+
+
+
+@Article{nadarajah-bakar:2013,
+  author       = {S. Nadarajah and S. A. A. Bakar}, 
+  title        = {{CompLognormal}: An {R} Package for Composite Lognormal Distributions}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {97--103},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/nadarajah-bakar.pdf}
+}
+
+
+
+@Article{gaure:2013,
+  author       = {Simen Gaure}, 
+  title        = {{lfe}: Fitting Linear Models with Multiple Factors with Many Levels}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {104--116},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/gaure.pdf}
+}
+
+
+
+@Article{dietrich-zug-kaiser:2013,
+  author       = {Andr{\' e} Dietrich and Sebastian Zug and J{\" o}rg Kaiser}, 
+  title        = {The {R} in Robotics}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {117--128},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/dietrich-zug-kaiser.pdf}
+}
+
+
+
+@Article{hofert:2013,
+  author       = {Marius Hofert}, 
+  title        = {On Sampling from the Multivariate $t$ Distribution}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {129--136},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/hofert.pdf}
+}
+
+
+
+@Article{sucarrat:2013,
+  author       = {Genaro Sucarrat}, 
+  title        = {{betategarch}: Simulation, Estimation and Forecasting of {B}eta-Skew-$t$-{EGARCH} Models}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {137--147},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/sucarrat.pdf}
+}
+
+
+
+@Article{murrell:2013,
+  author       = {Paul Murrell}, 
+  title        = {Changes to {grid} from 3.0.0}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {148--160},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/murrell.pdf}
+}
+
+
+
+@Article{r-foundation:2013,
+  author       = {Kurt Hornik}, 
+  title        = {{R} {F}oundation News}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {161--161},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/r-foundation.pdf}
+}
+
+
+
+@Article{bioconductor:2013,
+  author       = {{Bioconductor Team}}, 
+  title        = {News from the {B}ioconductor Project}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {162--163},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/bioconductor.pdf}
+}
+
+
+
+@Article{siberchicot-dray:2013,
+  author       = {Aurelie Siberchicot and Stephane Dray}, 
+  title        = {Conference Report: Deuxi{\` e}mes Rencontres {R}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {164--165},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/siberchicot-dray.pdf}
+}
+
+
+
+@Article{cran:2013,
+  author       = {Kurt Hornik and Achim Zeileis}, 
+  title        = {Changes on {CRAN}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {166--191},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/cran.pdf}
+}
+
+
+
+@Article{r-changes:2013,
+  author       = {{The R Core Team}}, 
+  title        = {Changes in {R}}, 
+  journal      = {The R Journal},
+  year         = 2013,
+  volume       = 5,
+  number       = 2,
+  pages        = {192--198},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2013-2/r-changes.pdf}
+}
+
+
+
+@Article{editorial:2014,
+  author       = {Deepayan Sarkar}, 
+  title        = {Editorial}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {3--3},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/editorial.pdf}
+}
+
+
+
+@Article{sievert:2014,
+  author       = {Carson Sievert}, 
+  title        = {Taming {PITCH}f/x Data with {XML2R} and {pitchRx}}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {5--19},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/sievert.pdf}
+}
+
+
+
+@Article{nunes-taylor-eckley:2014,
+  author       = {Matthew A. Nunes and Sarah L. Taylor and Idris A. Eckley}, 
+  title        = {Stationarity Testing and Texture Counting in {R}}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {20--30},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/nunes-taylor-eckley.pdf}
+}
+
+
+
+@Article{gu-shapiro-hughes-etal:2014,
+  author       = {Xiangdong Gu and David Shapiro and Michael D. Hughes and Raji Balasubramanian}, 
+  title        = {Stratified {W}eibull Regression Model for Interval-Censored Data}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {31--40},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/gu-shapiro-hughes-etal.pdf}
+}
+
+
+
+@Article{muschelli-sweeney-crainiceanu:2014,
+  author       = {John Muschelli and Elizabeth Sweeney and Ciprian Crainiceanu}, 
+  title        = {{brainR}: Interactive 3 and 4{D} Images of High Resolution Neuroimage Data}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {41--48},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/muschelli-sweeney-crainiceanu.pdf}
+}
+
+
+
+@Article{vandekerckhove-wabersich:2014,
+  author       = {Dominik Wabersich and Joachim Vandekerckhove}, 
+  title        = {The {RWiener} Package: An {R} Package Providing Distribution Functions for the {W}iener Diffusion Model}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {49--56},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/vandekerckhove-wabersich.pdf}
+}
+
+
+
+@Article{qian:2014,
+  author       = {Hai Qian}, 
+  title        = {{PivotalR}: A Package for Machine Learning on Big Data}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {57--67},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/qian.pdf}
+}
+
+
+
+@Article{stanfill-hofmann-genschel:2014,
+  author       = {Bryan Stanfill and Heike Hofmann and Ulrike Genschel}, 
+  title        = {{rotations}: An {R} Package for {SO(3)} Data}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {68--78},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/stanfill-hofmann-genschel.pdf}
+}
+
+
+
+@Article{menardi-lunardon-torelli:2014,
+  author       = {Nicola Lunardon and Giovanna Menardi and Nicola Torelli}, 
+  title        = {{ROSE}: A Package for Class Imbalance Learning}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {79--89},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/menardi-lunardon-torelli.pdf}
+}
+
+
+
+@Article{greenwell-kabban:2014,
+  author       = {Brandon M. Greenwell and Christine M. {Schubert Kabban}}, 
+  title        = {{investr}: An {R} Package for Inverse Estimation}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {90--100},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/greenwell-kabban.pdf}
+}
+
+
+
+@Article{jacques-grimonprez-biernacki:2014,
+  author       = {Julien Jacques and Quentin Grimonprez and Christophe Biernacki}, 
+  title        = {{Rankcluster}: An {R} Package For Clustering Multivariate Partial Rankings}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {101--110},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/jacques-grimonprez-biernacki.pdf}
+}
+
+
+
+@Article{loo:2014,
+  author       = {Mark {van der Loo}}, 
+  title        = {{stringdist}: an {R} Package for Approximate String Matching}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {111--122},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/loo.pdf}
+}
+
+
+
+@Article{kaptein:2014,
+  author       = {Maurits Kaptein}, 
+  title        = {{RStorm}: Developing and Testing Streaming Algorithms in {R}}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {123--132},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/kaptein.pdf}
+}
+
+
+
+@Article{murrell-potter:2014,
+  author       = {Paul Murrell and Simon Potter}, 
+  title        = {The {gridSVG} Package}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {133--143},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/murrell-potter.pdf}
+}
+
+
+
+@Article{koziol-bilder:2014,
+  author       = {Natalie A. Koziol and Christopher R. Bilder}, 
+  title        = {{MRCV}: A Package for Analyzing Categorical Variables with Multiple Response Options}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {144--150},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/koziol-bilder.pdf}
+}
+
+
+
+@Article{leeper:2014,
+  author       = {Thomas J. Leeper}, 
+  title        = {Archiving Reproducible Research with {R} and {Dataverse}}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {151--158},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/leeper.pdf}
+}
+
+
+
+@Article{bottomly-wilmot-mcweeney:2014,
+  author       = {Daniel Bottomly and Beth Wilmot and Shannon K. McWeeney}, 
+  title        = {{oligoMask}: A Framework for Assessing and Removing the Effect of Genetic Variants on Microarray Probes}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {159--163},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/bottomly-wilmot-mcweeney.pdf}
+}
+
+
+
+@Article{lombardi-pastore:2014,
+  author       = {Luigi Lombardi and Massimiliano Pastore}, 
+  title        = {{sgr}: A Package for Simulating Conditional Fake Ordinal Data}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {164--177},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/lombardi-pastore.pdf}
+}
+
+
+
+@Article{mair-chamberlain:2014,
+  author       = {Patrick Mair and Scott Chamberlain}, 
+  title        = {Web Technologies Task View}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {178--181},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/mair-chamberlain.pdf}
+}
+
+
+
+@Article{godfrey-erhardt:2014,
+  author       = {A. Jonathan R. Godfrey and Robert Erhardt}, 
+  title        = {Addendum to ``{S}tatistical Software from a Blind Person's Perspective''}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {182--182},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/godfrey-erhardt.pdf}
+}
+
+
+
+@Article{r-foundation:2014,
+  author       = {Kurt Hornik}, 
+  title        = {{R} {F}oundation News}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {183--183},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/r-foundation.pdf}
+}
+
+
+
+@Article{bioconductor:2014,
+  author       = {{Bioconductor Team}}, 
+  title        = {News from the {B}ioconductor Project}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {184--185},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/bioconductor.pdf}
+}
+
+
+
+@Article{cran:2014,
+  author       = {Kurt Hornik and Achim Zeileis}, 
+  title        = {Changes on {CRAN}}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {186--220},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/cran.pdf}
+}
+
+
+
+@Article{r-changes:2014,
+  author       = {{The R Core Team}}, 
+  title        = {Changes in {R}}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 1,
+  pages        = {221--235},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2014-1/r-changes.pdf}
+}
+
+
+
+@Article{editorial:2014,
+  author       = {Deepayan Sarkar}, 
+  title        = {Editorial}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {3--3},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/editorial.pdf}
+}
+
+
+
+@Article{stocco:2014,
+  author       = {Andrea Stocco}, 
+  title        = {Coordinate-Based Meta-Analysis of {fMRI} Studies with {R}}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {5--15},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/stocco.pdf}
+}
+
+
+
+@Article{oh:2014,
+  author       = {Jimmy Oh}, 
+  title        = {Automatic Conversion of Tables to {LongForm} Dataframes}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {16--26},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/oh.pdf}
+}
+
+
+
+@Article{zhang-etal:2014,
+  author       = {Jonathan Zhang and Nancy Heckman and Davor Cubranic and Joel G. Kingsolver and Travis Gaydos and J. S. Marron}, 
+  title        = {Prinsimp}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {27--42},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/zhang-etal.pdf}
+}
+
+
+
+@Article{grayling:2014,
+  author       = {Michael J. Grayling}, 
+  title        = {{phaseR}: An {R} Package for Phase Plane Analysis of Autonomous {ODE} Systems}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {43--51},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/grayling.pdf}
+}
+
+
+
+@Article{domelen-pittard:2014,
+  author       = {Dane R. Van Domelen and W. Stephen Pittard}, 
+  title        = {Flexible {R} Functions for Processing Accelerometer Data, with Emphasis on {NHANES} 2003--2006}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {52--62},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/domelen-pittard.pdf}
+}
+
+
+
+@Article{alden-read-andrews-etal:2014,
+  author       = {Kieran Alden and Mark Read and Paul S. Andrews and Jon Timmis and Mark Coles}, 
+  title        = {Applying {spartan} to Understand Parameter Uncertainty in Simulations}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {63--80},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/alden-read-andrews-etal.pdf}
+}
+
+
+
+@Article{hughes:2014,
+  author       = {John Hughes}, 
+  title        = {{ngspatial}: A Package for Fitting the Centered Autologistic and Sparse Spatial Generalized Linear Mixed Models for Areal Data}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {81--95},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/hughes.pdf}
+}
+
+
+
+@Article{conde-alvarez:2014,
+  author       = {Irene Castro-Conde and Jacobo de U{\~ n}a-{\' A}lvarez}, 
+  title        = {{sgof}: An {R} Package for Multiple Testing Problems}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {96--113},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/conde-alvarez.pdf}
+}
+
+
+
+@Article{rebora-salim-reilly:2014,
+  author       = {Paola Rebora and Agus Salim and Marie Reilly}, 
+  title        = {{bshazard}: A Flexible Tool for Nonparametric Smoothing of the Hazard Function}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {114--122},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/rebora-salim-reilly.pdf}
+}
+
+
+
+@Article{ferreira-batista:2014,
+  author       = {Ben D{\^ e}ivide Oliveira Batista and Daniel Furtado Ferreira}, 
+  title        = {{SMR}: An {R} Package for Computing the Externally Studentized Normal Midrange Distribution}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {123--136},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/ferreira-batista.pdf}
+}
+
+
+
+@Article{hoff-gran-farewell:2014,
+  author       = {Rune Hoff and Jon Michael Gran and Daniel Farewell}, 
+  title        = {Farewell's Linear Increments Model for Missing Data: The {FLIM} Package}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {137--150},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/hoff-gran-farewell.pdf}
+}
+
+
+
+@Article{korkmaz-goksuluk-zararsiz:2014,
+  author       = {Selcuk Korkmaz and Dincer Goksuluk and Gokmen Zararsiz}, 
+  title        = {{MVN}: An {R} Package for Assessing Multivariate Normality}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {151--162},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/korkmaz-goksuluk-zararsiz.pdf}
+}
+
+
+
+@Article{zabala:2014,
+  author       = {Aiora Zabala}, 
+  title        = {{qmethod}: A Package to Explore Human Perspectives Using {Q} Methodology}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {163--173},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/zabala.pdf}
+}
+
+
+
+@Article{liu:2014,
+  author       = {Fang Liu}, 
+  title        = {{gset}: An {R} Package for Exact Sequential Test of Equivalence Hypothesis Based on Bivariate Non-Central $t$-Statistics}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {174--184},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/liu.pdf}
+}
+
+
+
+@Article{gesmann-tsanakas:2014,
+  author       = {Markus Gesmann and Andreas Tsanakas}, 
+  title        = {Conference Report: {R} in Insurance 2014}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {185--186},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/gesmann-tsanakas.pdf}
+}
+
+
+
+@Article{beresewicz-szabelska-zyprychwalczak-etal:2014,
+  author       = {Maciej Ber{\k e}sewicz and Alicja Szabelska and Joanna Zyprych-Walczak and \L{}ukasz Wawrowski}, 
+  title        = {Conference Report: {P}olish Academic {R} User Meeting}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {187--189},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/beresewicz-szabelska-zyprychwalczak-etal.pdf}
+}
+
+
+
+@Article{r-foundation:2014,
+  author       = {Martin M{\" a}chler and Kurt Hornik}, 
+  title        = {{R} {F}oundation News}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {190--191},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/r-foundation.pdf}
+}
+
+
+
+@Article{cran:2014,
+  author       = {Kurt Hornik and Achim Zeileis}, 
+  title        = {Changes on {CRAN}}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {192--223},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/cran.pdf}
+}
+
+
+
+@Article{r-changes:2014,
+  author       = {{The R Core Team}}, 
+  title        = {Changes in {R}}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {224--226},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/r-changes.pdf}
+}
+
+
+
+@Article{bioconductor:2014,
+  author       = {{The Bioconductor Team}}, 
+  title        = {News from the {B}ioconductor Project}, 
+  journal      = {The R Journal},
+  year         = 2014,
+  volume       = 6,
+  number       = 2,
+  pages        = {227--228},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2014-2/bioconductor.pdf}
+}
+
+
+
+@Article{editorial:2015,
+  author       = {Bettina Gr{\" u}n}, 
+  title        = {Editorial}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {3},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/editorial.pdf}
+}
+
+
+
+@Article{osorio-rondonvillarreal-torres:2015,
+  author       = {Daniel Osorio and Paola Rond{\' o}n-Villarreal and Rodrigo Torres}, 
+  title        = {{Peptides}: A Package for Data Mining of Antimicrobial Peptides}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {4--14},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/osorio-rondonvillarreal-torres.pdf}
+}
+
+
+
+@Article{abel:2015,
+  author       = {Guy Abel}, 
+  title        = {{fanplot}: An {R} Package for Visualising Sequential Distributions}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {15--23},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/abel.pdf}
+}
+
+
+
+@Article{templ-kowarik-meindl:2015,
+  author       = {Matthias Templ and Alexander Kowarik and Bernhard Meindl}, 
+  title        = {{sparkTable}: Generating Graphical Tables for Websites and Documents with {R}}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {24--37},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/templ-kowarik-meindl.pdf}
+}
+
+
+
+@Article{cattaneo-calonico-titiunik:2015,
+  author       = {Sebastian Calonico and Matias D. Cattaneo and Rocio Titiunik}, 
+  title        = {{rdrobust}: An {R} Package for Robust Inference in Regression-Discontinuity Designs}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {38--51},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/cattaneo-calonico-titiunik.pdf}
+}
+
+
+
+@Article{arcos-molina-ranalli-etal:2015,
+  author       = {Antonio Arcos and David Molina and Maria Giovanna Ranalli and Mar{\' \i}a del Mar Rueda}, 
+  title        = {{Frames2}: A Package for Estimation in Dual Frame Surveys}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {52--72},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/arcos-molina-ranalli-etal.pdf}
+}
+
+
+
+@Article{hankin:2015,
+  author       = {Robin Hankin}, 
+  title        = {The Complex Multivariate {G}aussian Distribution}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {73--80},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/hankin.pdf}
+}
+
+
+
+@Article{molina-marhuenda:2015,
+  author       = {Isabel Molina and Yolanda Marhuenda}, 
+  title        = {{sae}: An {R} Package for Small Area Estimation}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {81--98},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/molina-marhuenda.pdf}
+}
+
+
+
+@Article{qiu:2015,
+  author       = {Yixuan Qiu}, 
+  title        = {{showtext}: Using System Fonts in {R} Graphics}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {99--108},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/qiu.pdf}
+}
+
+
+
+@Article{kostov-becuebertaut-husson:2015,
+  author       = {Belchin Kostov and M{\' o}nica B{\' e}cue-Bertaut and Fran{\c c}ois Husson}, 
+  title        = {Correspondence Analysis on Generalised Aggregated Lexical Table ({CA-GALT}) in the {FactoMineR} Package}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {109--117},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/kostov-becuebertaut-husson.pdf}
+}
+
+
+
+@Article{oneil:2015,
+  author       = {Shawn T. O'Neil}, 
+  title        = {Implementing Persistent {O(1)} Stacks and Queues in {R}}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {118--126},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/oneil.pdf}
+}
+
+
+
+@Article{rodiger-burdukiewicz-blagodatskikh-etal:2015,
+  author       = {Stefan R{\" o}diger and Micha{\l} Burdukiewicz and Konstantin Blagodatskikh and Michael Jahn and Peter Schierack}, 
+  title        = {{R} as an Environment for Reproducible Analysis of {DNA} Amplification Experiments}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {127--150},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/rodiger-burdukiewicz-blagodatskikh-etal.pdf}
+}
+
+
+
+@Article{murrell:2015,
+  author       = {Paul Murrell}, 
+  title        = {The {gridGraphics} Package}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {151--162},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/murrell.pdf}
+}
+
+
+
+@Article{muschelli-sweeney-lindquist-etal:2015,
+  author       = {John Muschelli and Elizabeth M. Sweeney and Martin Lindquist and Ciprian M. Crainiceanu}, 
+  title        = {{fslr}: Connecting the {FSL} Software with {R}}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {163--175},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/muschelli-sweeney-lindquist-etal.pdf}
+}
+
+
+
+@Article{baumgartner-thiem:2015,
+  author       = {Michael Baumgartner and Alrik Thiem}, 
+  title        = {Identifying Complex Causal Dependencies in Configurational Data with Coincidence Analysis}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {176--184},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/baumgartner-thiem.pdf}
+}
+
+
+
+@Article{hare-buja-hofmann:2015,
+  author       = {Eric Hare and Andreas Buja and Heike Hofmann}, 
+  title        = {Manipulation of Discrete Random Variables with {discreteRV}}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {185--194},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/hare-buja-hofmann.pdf}
+}
+
+
+
+@Article{lenth:2015,
+  author       = {Russell V. Lenth}, 
+  title        = {Estimability Tools for Package Developers}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {195--199},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/lenth.pdf}
+}
+
+
+
+@Article{r-foundation:2015,
+  author       = {Kurt Hornik}, 
+  title        = {{R} {F}oundation News}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {200},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/r-foundation.pdf}
+}
+
+
+
+@Article{cran:2015,
+  author       = {Kurt Hornik and Achim Zeileis}, 
+  title        = {Changes on {CRAN}}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {201--226},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/cran.pdf}
+}
+
+
+
+@Article{r-changes:2015,
+  author       = {{The R Core Team}}, 
+  title        = {Changes in {R}}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {227--238},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/r-changes.pdf}
+}
+
+
+
+@Article{bioconductor:2015,
+  author       = {{The Bioconductor Team}}, 
+  title        = {News from the {B}ioconductor Project}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 1,
+  pages        = {239--240},  
+  month        = jun,
+  url          = {http://journal.r-project.org/archive/2015-1/bioconductor.pdf}
+}
+
+
+
+@Article{editorial:2015,
+  author       = {Bettina Gr{\" u}n}, 
+  title        = {Editorial}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {4},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/editorial.pdf}
+}
+
+
+
+@Article{alam-ronnegard-shen:2015,
+  author       = {Moudud Alam and Lars R\"onneg{\aa}rd and Xia Shen}, 
+  title        = {Fitting Conditional and Simultaneous Autoregressive Spatial Models in hglm}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {5--18},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/alam-ronnegard-shen.pdf}
+}
+
+
+
+@Article{genuer-poggi-tuleaumalot:2015,
+  author       = {Robin Genuer and Jean-Michel Poggi and Christine Tuleau-Malot}, 
+  title        = {{VSURF}: An {R} Package for Variable Selection Using Random Forests}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {19--33},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/genuer-poggi-tuleaumalot.pdf}
+}
+
+
+
+@Article{liu-kong:2015,
+  author       = {Fang Liu and Yunchuan Kong}, 
+  title        = {zoib: An {R} Package for Bayesian Inference for Beta Regression and Zero/One Inflated Beta Regression}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {34--51},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/liu-kong.pdf}
+}
+
+
+
+@Article{nielsen:2015,
+  author       = {Bent Nielsen}, 
+  title        = {{apc}: An {R} Package for Age-Period-Cohort Analysis}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {52--64},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/nielsen.pdf}
+}
+
+
+
+@Article{charlier-paindaveine-saracco:2015,
+  author       = {Isabelle Charlier and Davy Paindaveine, and J{\' e}r{\^ o}me Saracco}, 
+  title        = {{QuantifQuantile}: An {R} Package for Performing Quantile Regression Through Optimal Quantization}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {65--80},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/charlier-paindaveine-saracco.pdf}
+}
+
+
+
+@Article{hankin:2015,
+  author       = {Robin K. S. Hankin}, 
+  title        = {Numerical Evaluation of the {G}auss Hypergeometric Function with the hypergeo Package}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {81--88},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/hankin.pdf}
+}
+
+
+
+@Article{villacorta-saez:2015,
+  author       = {Pablo J. Villacorta and Jos{\' e} A. S{\' a}ez}, 
+  title        = {{SRCS}: Statistical Ranking Color Scheme for Visualizing Parameterized Multiple Pairwise Comparisons with {R}}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {89--104},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/villacorta-saez.pdf}
+}
+
+
+
+@Article{vegabayo:2015,
+  author       = {Ainhoa Vega-Bayo}, 
+  title        = {An {R} Package for the Panel Approach Method for Program Evaluation: pampe}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {105--121},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/vegabayo.pdf}
+}
+
+
+
+@Article{lee-chen:2015,
+  author       = {Kuo-Jung Lee and Ray-Bing Chen}, 
+  title        = {{BSGS}: {B}ayesian Sparse Group Selection}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {122--133},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/lee-chen.pdf}
+}
+
+
+
+@Article{vigneau-chen-qannari:2015,
+  author       = {Evelyne Vigneau and Mingkun Chen and El Mostafa Qannari}, 
+  title        = {{ClustVarLV}: An {R} Package for the Clustering of Variables Around Latent Variables}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {134--148},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/vigneau-chen-qannari.pdf}
+}
+
+
+
+@Article{charte-charte:2015,
+  author       = {Francisco Charte and David Charte}, 
+  title        = {Working with Multilabel Datasets in {R}: The mldr Package}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {149--162},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/charte-charte.pdf}
+}
+
+
+
+@Article{valliant-dever-kreuter:2015,
+  author       = {Richard Valliant and Jill A. Dever and Frauke Kreuter}, 
+  title        = {{PracTools}: Computations for Design of Finite Population Samples}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {163--176},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/valliant-dever-kreuter.pdf}
+}
+
+
+
+@Article{seo-pan:2015,
+  author       = {Kangwon Seo and Rong Pan}, 
+  title        = {{ALTopt}: An {R} Package for Optimal Experimental Design of Accelerated Life Testing}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {177--188},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/seo-pan.pdf}
+}
+
+
+
+@Article{nunes-prangle:2015,
+  author       = {Matthew A. Nunes and Dennis Prangle}, 
+  title        = {{abctools}: An {R} Package for Tuning Approximate {B}ayesian Computation Analyses}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {189--205},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/nunes-prangle.pdf}
+}
+
+
+
+@Article{wang-faivre-richard-etal:2015,
+  author       = {Juhui Wang and Robert Faivre and Herv{\' e} Richard and Herv{\' e} Monod}, 
+  title        = {{mtk}: A General-Purpose and Extensible {R} Environment for Uncertainty and Sensitivity Analyses of Numerical Experiments}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {206--226},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/wang-faivre-richard-etal.pdf}
+}
+
+
+
+@Article{buttrey-whitaker:2015,
+  author       = {Samuel E. Buttrey and Lyn R. Whitaker}, 
+  title        = {{treeClust}: An {R} Package for Tree-Based Clustering Dissimilarities}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {227--236},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/buttrey-whitaker.pdf}
+}
+
+
+
+@Article{hino-takano-murata:2015,
+  author       = {Hideitsu Hino and Ken Takano and Noboru Murata}, 
+  title        = {mmpp: A Package for Calculating Similarity and Distance Metrics for Simple and Marked Point Processes}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {237--248},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/hino-takano-murata.pdf}
+}
+
+
+
+@Article{koohafkan-younis:2015,
+  author       = {Michael C. Koohafkan and Bassam A. Younis}, 
+  title        = {Open-Channel Computation with {R}}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {249--262},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/koohafkan-younis.pdf}
+}
+
+
+
+@Article{morina-higueras-puig-etal:2015,
+  author       = {David Mori{\~n}a and Manuel Higueras and Pedro Puig and Mar{\' i}a Oliveira}, 
+  title        = {Generalized {H}ermite Distribution Modelling with the {R} Package hermite}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {263--274},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/morina-higueras-puig-etal.pdf}
+}
+
+
+
+@Article{rubio-villar:2015,
+  author       = {Angel Rubio and Fernando de Villar}, 
+  title        = {Code Profiling in {R}: A Review of Existing Methods and an Introduction to Package {GUIProfiler}}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {275--287},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/rubio-villar.pdf}
+}
+
+
+
+@Article{plummer:2015,
+  author       = {Martyn Plummer}, 
+  title        = {The {R} Consortium and the {R} Foundation}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {288},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/plummer.pdf}
+}
+
+
+
+@Article{tvedebrink:2015,
+  author       = {Torben Tvedebrink}, 
+  title        = {Conference Report: {useR!} 2015}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {289--290},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/tvedebrink.pdf}
+}
+
+
+
+@Article{bioconductor:2015,
+  author       = {The Bioconductor Team}, 
+  title        = {News from the {B}ioconductor Project}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {291--292},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/bioconductor.pdf}
+}
+
+
+
+@Article{r-changes:2015,
+  author       = {The R Core Team}, 
+  title        = {Changes in {R}}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {293--297},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/r-changes.pdf}
+}
+
+
+
+@Article{cran:2015,
+  author       = {Kurt Hornik and Achim Zeileis}, 
+  title        = {Changes on {CRAN}}, 
+  journal      = {The R Journal},
+  year         = 2015,
+  volume       = 7,
+  number       = 2,
+  pages        = {298--339},  
+  month        = dec,
+  url          = {http://journal.r-project.org/archive/2015-2/cran.pdf}
+}
+
+
+
+@Article{editorial:2016,
+  author       = {Michael Lawrence}, 
+  title        = {Editorial}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {4--4},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/editorial.pdf}
+}
+
+
+
+@Article{beath:2016,
+  author       = {Ken J. Beath}, 
+  title        = {{metaplus}: An {R} Package for the Analysis of Robust Meta-Analysis and Meta-Regression}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {5--16},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/beath.pdf}
+}
+
+
+
+@Article{wais:2016,
+  author       = {Kamil Wais}, 
+  title        = {Gender Prediction Methods Based on First Names with {genderizeR}}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {17--37},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/wais.pdf}
+}
+
+
+
+@Article{sophie-brouste-istas:2016,
+  author       = {Lambert-Lacroix Sophie and Alexandre Brouste and Jacques Istas}, 
+  title        = {Conditional Fractional Gaussian Fields with the Package {FieldSim}}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {38--47},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/sophie-brouste-istas.pdf}
+}
+
+
+
+@Article{demirhan:2016,
+  author       = {Haydar Demirhan}, 
+  title        = {{rTableICC}: An {R} Package for Random Generation of 2*2*K and R*C Contingency Tables}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {48--63},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/demirhan.pdf}
+}
+
+
+
+@Article{brown:2016,
+  author       = {Patrick Brown}, 
+  title        = {Maps, Coordinate Reference Systems and Visualising Geographic Data with {mapmisc}}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {64--91},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/brown.pdf}
+}
+
+
+
+@Article{jacques-yengo-biernacki-etal:2016,
+  author       = {Julien Jacques and Lo{\" i}c Yengo and Christophe Biernacki and Mickael Canouil}, 
+  title        = {Variable Clustering in High-Dimensional Linear Regression: The {R} Package {clere}}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {92--106},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/jacques-yengo-biernacki-etal.pdf}
+}
+
+
+
+@Article{eder-rybicki-kestemont:2016,
+  author       = {Maciej Eder and Jan Rybicki and Mike Kestemont}, 
+  title        = {Stylometry with {R}: A Package for Computational Text Analysis}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {107--121},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/eder-rybicki-kestemont.pdf}
+}
+
+
+
+@Article{linares-na:2016,
+  author       = {Daniel Linares and Joan L{\' o}pez-Moliner}, 
+  title        = {{quickpsy}: An {R} Package to Fit Psychometric Functions for Multiple Groups}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {122--131},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/linares-na.pdf}
+}
+
+
+
+@Article{sestelo-villanueva-meiramachado-etal:2016,
+  author       = {Marta Sestelo and Nora M. Villanueva and Lu{\' i}s Meira-Machado and Javier Roca-Pardi{\~ n}as}, 
+  title        = {{FWDselect}: An {R} Package for Variable Selection in Regression Models}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {132--148},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/sestelo-villanueva-meiramachado-etal.pdf}
+}
+
+
+
+@Article{joblin-mauerer:2016,
+  author       = {Mitchell Joblin and Wolfgang Mauerer}, 
+  title        = {An Interactive Survey Application for Validating Social Network Analysis Techniques}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {149--158},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/joblin-mauerer.pdf}
+}
+
+
+
+@Article{franck-osborne:2016,
+  author       = {Christopher T. Franck and Jason A. Osborne}, 
+  title        = {Exploring Interaction Effects in Factorial Studies using the {hiddenf} Package in {R}}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {159--172},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/franck-osborne.pdf}
+}
+
+
+
+@Article{messner-mayr-zeileis:2016,
+  author       = {Jakob W. Messner and Georg J. Mayr and Achim Zeileis}, 
+  title        = {Heteroscedastic Censored and Truncated Regression with {crch}}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {173--181},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/messner-mayr-zeileis.pdf}
+}
+
+
+
+@Article{pritikin-schmidt:2016,
+  author       = {Joshua Pritikin and Karen Schmidt}, 
+  title        = {Model Builder for Item Factor Analysis with {OpenMx}}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {182--203},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/pritikin-schmidt.pdf}
+}
+
+
+
+@Article{na-pebesma-heuvelink:2016,
+  author       = {Benedikt Gr{\" a}ler and Edzer Pebesma and Gerard Heuvelink}, 
+  title        = {Spatio-Temporal Interpolation using {gstat}}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {204--218},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/na-pebesma-heuvelink.pdf}
+}
+
+
+
+@Article{beck:2016,
+  author       = {Marcus W Beck}, 
+  title        = {{SWMPr}: An {R} Package for Retrieving, Organizing, and Analyzing Environmental Data for Estuaries}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {219--232},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/beck.pdf}
+}
+
+
+
+@Article{demirhan-bitirim:2016,
+  author       = {Haydar Demirhan and Nihan Bitirim}, 
+  title        = {{CryptRndTest}: An {R} Package for Testing the Cryptographic Randomness}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {233--247},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/demirhan-bitirim.pdf}
+}
+
+
+
+@Article{calvo-na:2016,
+  author       = {Borja Calvo and Guzm{\' a}n Santaf{\' e}}, 
+  title        = {{scmamp}: Statistical Comparison of Multiple Algorithms in Multiple Problems}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {248--256},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/calvo-na.pdf}
+}
+
+
+
+@Article{an-liu:2016,
+  author       = {Weihua An and Yu-Hsin Liu}, 
+  title        = {{keyplayer}: An {R} Package for Locating Key Players in Social Networks}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {257--268},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/an-liu.pdf}
+}
+
+
+
+@Article{north:2016,
+  author       = {Michael North}, 
+  title        = {{SchemaOnRead}: A Package for Schema-on-Read in {R}}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {269--275},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/north.pdf}
+}
+
+
+
+@Article{leeper:2016,
+  author       = {Thomas J. Leeper}, 
+  title        = {Crowdsourced Data Preprocessing with {R} and Amazon Mechanical Turk}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {276--288},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/leeper.pdf}
+}
+
+
+
+@Article{scrucca-fop-murphy-etal:2016,
+  author       = {Luca Scrucca and Michael Fop and T. Brendan Murphy and Adrian E. Raftery}, 
+  title        = {{mclust} 5: Clustering, Classification and Density Estimation Using Gaussian Finite Mixture Models}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {289--317},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/scrucca-fop-murphy-etal.pdf}
+}
+
+
+
+@Article{szkaliczki:2016,
+  author       = {Tibor Szkaliczki}, 
+  title        = {{clustering.sc.dp}: Optimal Clustering with Sequential Constraint by Using Dynamic Programming}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {318--327},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/szkaliczki.pdf}
+}
+
+
+
+@Article{hu-qutub:2016,
+  author       = {Chenyue W. Hu and Amina A. Qutub}, 
+  title        = {{progenyClust}: an {R} package for Progeny Clustering}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {328--338},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/hu-qutub.pdf}
+}
+
+
+
+@Article{giner-smyth:2016,
+  author       = {Goknur Giner and Gordon K Smyth}, 
+  title        = {{statmod}: Probability Calculations for the Inverse Gaussian Distribution}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {339--351},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/giner-smyth.pdf}
+}
+
+
+
+@Article{wright:2016,
+  author       = {Erik Wright}, 
+  title        = {Using {DECIPHER} {v2.0} to Analyze Big Biological Sequence Data in {R}}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {352--359},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/wright.pdf}
+}
+
+
+
+@Article{keyes-rudis-jacobs:2016,
+  author       = {Oliver Keyes and Bob Rudis and Jay Jacobs}, 
+  title        = {R Packages to Aid in Handling Web Access Logs}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {360--366},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/keyes-rudis-jacobs.pdf}
+}
+
+
+
+@Article{feys:2016,
+  author       = {Jos Feys}, 
+  title        = {Nonparametric Tests for the Interaction in Two-way Factorial Designs Using {R}}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {367--378},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/feys.pdf}
+}
+
+
+
+@Article{yozgatligil-dag:2016,
+  author       = {Osman Dag and Ceylan Yozgatligil}, 
+  title        = {{GMDH}: An {R} Package for Short Term Forecasting via {GMDH} - Type Neural Network Algorithms}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {379--386},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/yozgatligil-dag.pdf}
+}
+
+
+
+@Article{winslow-chamberlain-appling-etal:2016,
+  author       = {Luke A Winslow and Scott Chamberlain and Alison P Appling and Jordan S Read}, 
+  title        = {{sbtools}: A Package Connecting {R} to Cloud-Based Data for Collaborative Online Research}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {387--398},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/winslow-chamberlain-appling-etal.pdf}
+}
+
+
+
+@Article{user2016:2016,
+  author       = {Joe Rickert}, 
+  title        = {Conference Report: {useR}! 2016}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {399--401},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/user2016.pdf}
+}
+
+
+
+@Article{cran:2016,
+  author       = {Kurt Hornik and Achim Zeileis}, 
+  title        = {Changes on {CRAN}}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {402--403},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/cran.pdf}
+}
+
+
+
+@Article{bioconductor:2016,
+  author       = {The Bioconductor Team}, 
+  title        = {News from the Bioconductor Project}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {404--405},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/bioconductor.pdf}
+}
+
+
+
+@Article{r-changes:2016,
+  author       = {The R Core Team}, 
+  title        = {Changes in {R}}, 
+  journal      = {The R Journal},
+  year         = 2016,
+  volume       = 8,
+  number       = 1,
+  pages        = {406--415},  
+  month        = aug,
+  url          = {http://journal.r-project.org/archive/2016-1/r-changes.pdf}
+}
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/bibtex/bib/Rnews.bib
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/bibtex/bib/Rnews.bib	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/bibtex/bib/Rnews.bib	(revision 2476)
@@ -0,0 +1,2733 @@
+@String{http = "https://CRAN.R-project.org/doc/Rnews/"}
+@String{Rnews2001-1 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2001-1.pdf"}
+@String{Rnews2001-2 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2001-2.pdf"}
+@String{Rnews2001-3 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2001-3.pdf"}
+@String{Rnews2002-1 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2002-1.pdf"}
+@String{Rnews2002-2 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2002-2.pdf"}
+@String{Rnews2002-3 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2002-3.pdf"}
+@String{Rnews2003-1 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2003-1.pdf"}
+@String{Rnews2003-2 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2003-2.pdf"}
+@String{Rnews2003-3 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2003-3.pdf"}
+@String{Rnews2004-1 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2004-1.pdf"}
+@String{Rnews2004-2 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2004-2.pdf"}
+@String{Rnews2005-1 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2005-1.pdf"}
+@String{Rnews2005-2 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2005-2.pdf"}
+@String{Rnews2006-1 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2006-1.pdf"}
+@String{Rnews2006-2 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2006-2.pdf"}
+@String{Rnews2006-3 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2006-3.pdf"}
+@String{Rnews2006-4 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2006-4.pdf"}
+@String{Rnews2006-5 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2006-5.pdf"}
+@String{Rnews2007-1 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2007-1.pdf"}
+@String{Rnews2007-2 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2007-2.pdf"}
+@String{Rnews2007-3 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2007-3.pdf"}
+@String{Rnews2008-1 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2008-1.pdf"}
+@String{Rnews2008-2 = "https://CRAN.R-project.org/doc/Rnews/Rnews_2008-2.pdf"}
+
+@Article{Rnews:Tierney:2001,
+  author       = {Luke Tierney},
+  title	       = {Under New Memory Management},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 1,
+  pages	       = {10--11},
+  month	       = {January},
+  url	       = http,
+  pdf	       = Rnews2001-1
+}
+
+@Article{Rnews:Hothorn:2001,
+  author       = {Torsten Hothorn},
+  title	       = {On Exact Rank Tests in {R}},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 1,
+  pages	       = {11--12},
+  month	       = {January},
+  url	       = http,
+  pdf	       = Rnews2001-1
+}
+
+@Article{Rnews:Iacus:2001,
+  author       = {Stefano M. Iacus},
+  title	       = {Porting {R} to the {Macintosh}},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 1,
+  pages	       = 13,
+  month	       = {January},
+  url	       = http,
+  pdf	       = Rnews2001-1
+}
+
+@Article{Rnews:Dalgaard:2001,
+  author       = {Peter Dalgaard},
+  title	       = {The density of the non-central chi-squared
+                  distribution for large values of the noncentrality
+                  parameter},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 1,
+  pages	       = {14--15},
+  month	       = {January},
+  url	       = http,
+  pdf	       = Rnews2001-1
+}
+
+@Article{Rnews:Ripley:2001a,
+  author       = {Brian D. Ripley},
+  title	       = {Connections},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 1,
+  pages	       = {16--17},
+  month	       = {January},
+  url	       = http,
+  pdf	       = Rnews2001-1
+}
+
+@Article{Rnews:Ripley:2001,
+  author       = {Brian D. Ripley},
+  title	       = {Using Databases with {R}},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 1,
+  pages	       = {18--20},
+  month	       = {January},
+  url	       = http,
+  pdf	       = Rnews2001-1
+}
+
+@Article{Rnews:Ray:2001,
+  author       = {M. J. Ray},
+  title	       = {{Rcgi 4}: Making Web Statistics Even Easier},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 1,
+  pages	       = {20--21},
+  month	       = {January},
+  url	       = http,
+  pdf	       = Rnews2001-1
+}
+
+@Article{Rnews:Chambers+Lang:2001,
+  author       = {John M. Chambers and Duncan Temple Lang},
+  title	       = {Omegahat Packages for {R}},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 1,
+  pages	       = {21--24},
+  month	       = {January},
+  url	       = http,
+  pdf	       = Rnews2001-1
+}
+
+@Article{Rnews:Lang:2001,
+  author       = {Duncan Temple Lang},
+  title	       = {Using {XML} for Statistics: The {XML} Package},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 1,
+  pages	       = {24--27},
+  month	       = {January},
+  url	       = http,
+  pdf	       = Rnews2001-1
+}
+
+@Article{Rnews:Venables:2001,
+  author       = {Bill Venables},
+  title        = {{P}rogrammer's {N}iche},
+  journal      = {R News},
+  year         = 2001,
+  volume       = 1,
+  number       = 1,
+  pages        = {27--30},
+  month        = {January},
+  url	       = http,
+  pdf	       = Rnews2001-1
+}
+
+@Article{Rnews:Ripley+Hornik:2001,
+  author       = {Brian D. Ripley and Kurt Hornik},
+  title	       = {Date-Time Classes},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 2,
+  pages	       = {8--11},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2001-2
+}
+
+@Article{Rnews:Ripley:2001c,
+  author       = {Brian D. Ripley},
+  title	       = {Installing {R} under {Windows}},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 2,
+  pages	       = {11--14},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2001-2
+}
+
+@Article{Rnews:Ribeiro+Diggle:2001,
+  author       = {Paulo J. {Ribeiro, Jr.} and Peter J. Diggle},
+  title	       = {{geoR}: A Package for Geostatistical Analysis},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 2,
+  pages	       = {14--18},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2001-2
+}
+
+@Article{Rnews:Schlather:2001,
+  author       = {Martin Schlather},
+  title	       = {Simulation and Analysis of Random Fields},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 2,
+  pages	       = {18--20},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2001-2
+}
+
+@Article{Rnews:Wood:2001,
+  author       = {Simon N. Wood},
+  title	       = {mgcv: {GAM}s and Generalized Ridge Regression for {R}},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 2,
+  pages	       = {20--25},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2001-2
+}
+
+@Article{Rnews:Rougier:2001,
+  author       = {Jonathan Rougier},
+  title	       = {What's the Point of `tensor'?},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 2,
+  pages	       = {26--27},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2001-2
+}
+
+@Article{Rnews:Hothorn+Bretz+Genz:2001,
+  author       = {Torsten Hothorn and Frank Bretz and Alan Genz},
+  title	       = {On Multivariate $t$ and {Gau{\ss}} Probabilities in {R}},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 2,
+  pages	       = {27--29},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2001-2
+}
+
+@Article{Rnews:Leeuw:2001,
+  author       = {Jan de Leeuw},
+  title	       = {Porting {R} to {D}arwin/{X11} and {M}ac {OS X}},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 3,
+  pages	       = {2--4},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2001-3
+}
+
+@Article{Rnews:Li+Rossini:2001,
+  author       = {Michael Na Li and A.J. Rossini},
+  title	       = {{RPVM}: Cluster Statistical Computing in {R}},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 3,
+  pages	       = {4--7},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2001-3
+}
+
+@Article{Rnews:Zeileis:2001,
+  author       = {Achim Zeileis},
+  title	       = {strucchange: Testing for Structural Change in Linear
+                  Regression Relationships},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 3,
+  pages	       = {8--11},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2001-3
+}
+
+@Article{Rnews:Lumley:2001,
+  author       = {Thomas Lumley},
+  title	       = {{P}rogrammer's {N}iche: {Macros} in {R}},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 3,
+  pages	       = {11--13},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2001-3
+}
+
+@Article{Rnews:Bivand:2001,
+  author       = {Roger Bivand},
+  title	       = {More on Spatial Data},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 3,
+  pages	       = {13--17},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2001-3
+}
+
+@Article{Rnews:Chambers+Lang:2001a,
+  author       = {John M. Chambers and Duncan Temple Lang},
+  title	       = {Object-Oriented Programming in {R}},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 3,
+  pages	       = {17--19},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2001-3
+}
+
+@Article{Rnews:Lang:2001a,
+  author       = {Duncan Temple Lang},
+  title	       = {In Search of {C/C++} \& {FORTRAN} Routines},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 3,
+  pages	       = {20--23},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2001-3
+}
+
+@Article{Rnews:Meyer:2001,
+  author       = {David Meyer},
+  title	       = {Support Vector Machines},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 3,
+  pages	       = {23--26},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2001-3
+}
+
+@Article{Rnews:Dalgaard:2001a,
+  author       = {Peter Dalgaard},
+  title	       = {A Primer on the {R-Tcl/Tk} Package},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 3,
+  pages	       = {27--31},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2001-3
+}
+
+@Article{Rnews:Agostinelli:2001,
+  author       = {Claudio Agostinelli},
+  title	       = {wle: A Package for Robust Statistics using Weighted
+                  Likelihood},
+  journal      = {R News},
+  year	       = 2001,
+  volume       = 1,
+  number       = 3,
+  pages	       = {32--38},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2001-3
+}
+
+@Article{Rnews:Murdoch:2002,
+  author       = {Duncan Murdoch},
+  title	       = {Reading Foreign Files},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 1,
+  pages	       = {2--3},
+  month	       = {March},
+  url	       = http,
+  pdf	       = Rnews2002-1
+}
+
+@Article{Rnews:Hothorn+Lausen:2002,
+  author       = {Torsten Hothorn and Berthold Lausen},
+  title	       = {Maximally Selected Rank Statistics in {R}},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 1,
+  pages	       = {3--5},
+  month	       = {March},
+  url	       = http,
+  pdf	       = Rnews2002-1
+}
+
+@Article{Rnews:Sawitzki:2002,
+  author       = {G\"{u}nther Sawitzki},
+  title	       = {Quality Control and Early Diagnostics for {cDNA}
+                  Microarrays},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 1,
+  pages	       = {6--10},
+  month	       = {March},
+  url	       = http,
+  pdf	       = Rnews2002-1
+}
+
+@Article{Rnews:Gentleman+Carey:2002,
+  author       = {Robert Gentleman and Vincent Carey},
+  title	       = {Bioconductor},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 1,
+  pages	       = {11--16},
+  month	       = {March},
+  url	       = http,
+  pdf	       = Rnews2002-1
+}
+
+@Article{Rnews:Marchini:2002,
+  author       = {Jonathan Marchini},
+  title	       = {{AnalyzeFMRI}: An {R} package for the exploration
+                  and analysis of {MRI} and {fMRI} datasets},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 1,
+  pages	       = {17--23},
+  month	       = {March},
+  url	       = http,
+  pdf	       = Rnews2002-1
+}
+
+@Article{Rnews:Dudoit+Yang+Bolstad:2002,
+  author       = {Sandrine Dudoit and Yee Hwa Yang and Ben Bolstad},
+  title	       = {Using {R} for the Analysis of {DNA} Microarray Data},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 1,
+  pages	       = {24--32},
+  month	       = {March},
+  url	       = http,
+  pdf	       = Rnews2002-1
+}
+
+@Article{Rnews:Ripley:2002,
+  author       = {Brian D. Ripley},
+  title	       = {Time Series in {R} 1.5.0},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 2,
+  pages	       = {2--7},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2002-1
+}
+
+@Article{Rnews:Meyer:2002,
+  author       = {David Meyer},
+  title	       = {Naive Time Series Forecasting Methods},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 2,
+  pages	       = {7--10},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2002-2
+}
+
+@Article{Rnews:Yu:2002,
+  author       = {Hao Yu},
+  title	       = {Rmpi: Parallel Statistical Computing in {R}},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 2,
+  pages	       = {10--14},
+  month	       = {June},
+  url	       = http,
+  pdf          = Rnews2002-2
+}
+
+@Article{Rnews:Murrell:2002,
+  author       = {Paul Murrell},
+  title	       = {The grid Graphics Package},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 2,
+  pages	       = {14--19},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2002-2
+}
+
+@Article{Rnews:Sarkar:2002,
+  author       = {Deepayan Sarkar},
+  title	       = {Lattice},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 2,
+  pages	       = {19--23},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2002-2
+}
+
+@Article{Rnews:Venables:2002,
+  author       = {Bill Venables},
+  title	       = {{P}rogrammer's {N}iche},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 2,
+  pages	       = {24--26},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2002-2
+}
+
+@Article{Rnews:Christensen+Ribeiro:2002,
+  author       = {Ole F. Christensen and Paulo J. Ribeiro},
+  title	       = {geoRglm: A Package for Generalised Linear Spatial
+                  Models},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 2,
+  pages	       = {26--28},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2002-2
+}
+
+@Article{Rnews:Gentleman+Gentry:2002,
+  author       = {Robert Gentleman and Jeff Gentry},
+  title	       = {Querying {PubMed}},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 2,
+  pages	       = {28--31},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2002-2
+}
+
+@Article{Rnews:Stephenson:2002,
+  author       = {Alec Stephenson},
+  title	       = {evd: Extreme Value Distributions},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 2,
+  pages	       = {31--32},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2002-2
+}
+
+@Article{Rnews:Peters+Hothorn+Lausen:2002,
+  author       = {Andrea Peters and Torsten Hothorn and Berthold
+                  Lausen},
+  title	       = {ipred: Improved Predictors},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 2,
+  pages	       = {33--36},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2002-2
+}
+
+@Article{Rnews:Canty:2002,
+  author       = {Angelo J. Canty},
+  title	       = {Resampling Methods in {R}: The boot Package},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 3,
+  pages	       = {2--7},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2002-3
+}
+
+@Article{Rnews:Zeileis+Hothorn:2002,
+  author       = {Achim Zeileis and Torsten Hothorn},
+  title	       = {Diagnostic Checking in Regression Relationships},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 3,
+  pages	       = {7--10},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2002-3
+}
+
+@Article{Rnews:Brahm:2002,
+  author       = {David E. Brahm},
+  title	       = {Delayed Data Packages},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 3,
+  pages	       = {11--12},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2002-3
+}
+
+@Article{Rnews:Yan:2002,
+  author       = { Jun Yan},
+  title	       = {geepack: Yet Another Package for Generalized
+                  Estimating Equations},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 3,
+  pages	       = {12--14},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2002-3
+}
+
+@Article{Rnews:Bretz+Hothorn+Westfall:2002,
+  author       = {Frank Bretz and Torsten Hothorn and Peter Westfall},
+  title	       = {On Multiple Comparisons in {R}},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 3,
+  pages	       = {14--17},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2002-3
+}
+
+@Article{Rnews:Liaw+Wiener:2002,
+  author       = {Andy Liaw and Matthew Wiener},
+  title	       = {Classification and Regression by {randomForest}},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 3,
+  pages	       = {18--22},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2002-3
+}
+
+@Article{Rnews:Gentleman:2002,
+  author       = {Robert Gentleman},
+  title	       = {Some Strategies for Dealing with Genomic Data},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 3,
+  pages	       = {22--25},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2002-3
+}
+
+@Article{Rnews:Dalgaard:2002,
+  author       = {Peter Dalgaard},
+  title	       = {Changes to the {R-Tcl/Tk} package},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 3,
+  pages	       = {25--27},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2002-3
+}
+
+@Article{Rnews:Leisch:2002,
+  author       = {Friedrich Leisch},
+  title	       = {Sweave, Part {I}: Mixing {R} and {\LaTeX}},
+  journal      = {R News},
+  year	       = 2002,
+  volume       = 2,
+  number       = 3,
+  pages	       = {28--31},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2002-3
+}
+
+@Article{Rnews:Ligges:2002,
+  author       = {Uwe Ligges},
+  title        = {{R} {H}elp {D}esk: {Automation} of Mathematical Annotation in Plots},
+  journal      = {R News},
+  year         = 2002,
+  volume       = 2,
+  number       = 3,
+  pages        = {32--34},
+  month        = {December},
+  url	       = http,
+  pdf	       = Rnews2002-3
+}
+
+@Article{Rnews:Tierney:2003,
+  author       = {Luke Tierney},
+  title	       = {Name Space Management for {R}},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 1,
+  pages	       = {2--6},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2003-1
+}
+
+@Article{Rnews:Bates:2003,
+  author       = {Douglas Bates},
+  title	       = {Converting Packages to {S4}},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 1,
+  pages	       = {6--8},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2003-1
+}
+
+@Article{Rnews:Warnes:2003,
+  author       = {Gregory R. Warnes},
+  title	       = {The genetics Package},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 1,
+  pages	       = {9--13},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2003-1
+}
+
+@Article{Rnews:Gross:2003,
+  author       = {J{\"u}rgen Gro{\ss}},
+  title	       = {Variance Inflation Factors},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 1,
+  pages	       = {13--15},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2003-1
+}
+
+@Article{Rnews:Yan+Rossini:2003,
+  author       = {Jun Yan and A.J. Rossini},
+  title	       = {Building {M}icrosoft {W}indows Versions of {R} and {R}
+                  packages under {I}ntel {L}inux},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 1,
+  pages	       = {15--17},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2003-1
+}
+
+@Article{Rnews:Lumley:2003,
+  author       = {Thomas Lumley},
+  title	       = {Analysing Survey Data in {R}},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 1,
+  pages	       = {17--20},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2003-1
+}
+
+@Article{Rnews:Carson+Murison+Mason:2003,
+  author       = {Brett Carson and Robert Murison and Ian A. Mason},
+  title	       = {Computational Gains Using {RPVM} on a {Beowulf} Cluster},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 1,
+  pages	       = {21--26},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2003-1
+}
+
+@Article{Rnews:Ligges:2003a,
+  author       = {Uwe Ligges},
+  title        = {{R} {H}elp {D}esk: {Getting} Help -- {R}'s Help Facilities and
+                  Manuals},
+  journal      = {R News},
+  year         = 2003,
+  volume       = 3,
+  number       = 1,
+  pages        = {26--28},
+  url	       = http,
+  pdf	       = Rnews2003-1
+}
+
+@Article{Rnews:Schwartz:2003,
+  author       = {Marc Schwartz},
+  title	       = {{R} {H}elp {D}esk: {An} Introduction to Using {R}'s Base
+                  Graphics},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 2,
+  pages	       = {2--6},
+  month	       = {October},
+  url	       = http,
+  pdf	       = Rnews2003-2
+}
+
+@Article{Rnews:Murrell:2003,
+  author       = {Paul Murrell},
+  title	       = {Integrating grid Graphics Output with Base Graphics
+                  Output },
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 2,
+  pages	       = {7--12},
+  month	       = {October},
+  url	       = http,
+  pdf	       = Rnews2003-2
+}
+
+@Article{Rnews:Mineo:2003,
+  author       = {Angelo Mineo},
+  title	       = {A New Package for the General Error Distribution},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 2,
+  pages	       = {13--16},
+  month	       = {October},
+  url	       = http,
+  pdf	       = Rnews2003-2
+}
+
+@Article{Rnews:Smith:2003,
+  author       = {Colin A. Smith},
+  title	       = {Web-based Microarray Analysis using {B}ioconductor},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 2,
+  pages	       = {17--20},
+  month	       = {October},
+  url	       = http,
+  pdf	       = Rnews2003-2
+}
+
+@Article{Rnews:Leisch:2003,
+  author       = {Friedrich Leisch},
+  title	       = {Sweave, Part {II}: Package Vignettes},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 2,
+  pages	       = {21--24},
+  month	       = {October},
+  url	       = http,
+  pdf	       = Rnews2003-2
+}
+
+@Article{Rnews:Edwards+Oman:2003,
+  author       = {Jonathan Edwards and Paul Oman},
+  title	       = {Dimensional Reduction for Data Mapping},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 3,
+  pages	       = {2--7},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2003-3
+}
+
+@Article{Rnews:Petzoldt:2003,
+  author       = {Thomas Petzoldt},
+  title	       = {{R} as a Simulation Platform in Ecological
+                  Modelling},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 3,
+  pages	       = {8--16},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2003-3
+}
+
+@Article{Rnews:Lockwood+Doran+Mccaffrey:2003,
+  author       = {J.R. Lockwood and Harold Doran and Daniel
+                  F. McCaffrey},
+  title	       = {Using {R} for Estimating Longitudinal Student
+                  Achievement Models},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 3,
+  pages	       = {17--23},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2003-3
+}
+
+@Article{Rnews:Ball:2003,
+  author       = {Rod Ball},
+  title	       = {{lmeSplines}},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 3,
+  pages	       = {24--28},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2003-3
+}
+
+@Article{Rnews:Bravington:2003,
+  author       = {Mark Bravington},
+  title	       = {Debugging Without (Too Many) Tears},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 3,
+  pages	       = {29--32},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2003-3
+}
+
+@Article{Rnews:Lecoutre:2003,
+  author       = {Eric Lecoutre},
+  title	       = {The {R2HTML} Package},
+  journal      = {R News},
+  year	       = 2003,
+  volume       = 3,
+  number       = 3,
+  pages	       = {33--36},
+  month	       = {December},
+  url	       = http,
+  pdf	       = Rnews2003-3
+}
+
+@Article{Rnews:Ligges:2003b,
+  author       = {Uwe Ligges},
+  title        = {{R} {H}elp {D}esk: {Package} Management},
+  journal      = {R News},
+  year         = 2003,
+  volume       = 3,
+  number       = 3,
+  pages        = {37--39},
+  month        = {December},
+  url	       = http,
+  pdf	       = Rnews2003-3
+}
+
+@Article{Rnews:Schwartz:2004,
+  author       = {Marc Schwartz},
+  title	       = {The Decision To Use {R}},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 1,
+  pages	       = {2--5},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2004-1
+}
+
+@Article{Rnews:Chessel+Dufour+Thioulouse:2004,
+  author       = {Daniel Chessel and Anne B. Dufour and Jean Thioulouse},
+  title	       = {The ade4 Package --- {I}: One-table Methods},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 1,
+  pages	       = {5--10},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2004-1
+}
+
+@Article{Rnews:Scrucca:2004,
+  author       = {Luca Scrucca},
+  title	       = {qcc: An {R} package for quality control charting and
+                  statistical process control},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 1,
+  pages	       = {11--17},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2004-1
+}
+
+@Article{Rnews:Bates:2004,
+  author       = {Douglas Bates},
+  title	       = {Least Squares Calculations in {R}},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 1,
+  pages	       = {17--20},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2004-1
+}
+
+@Article{Rnews:Zhang+Gentleman:2004,
+  author       = {Jianhua Zhang and Robert Gentleman},
+  title	       = {Tools for Interactively Exploring {R} Packages},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 1,
+  pages	       = {20--25},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2004-1
+}
+
+@Article{Rnews:Lumley:2004a,
+  author       = {Thomas Lumley},
+  title	       = {The survival Package},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 1,
+  pages	       = {26--28},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2004-1
+}
+
+@Article{Rnews:Grothendieck+Petzoldt:2004,
+  author       = {Gabor Grothendieck and Thomas Petzoldt},
+  title	       = {{R} {H}elp {D}esk: {Date} and Time Classes in {R}},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 1,
+  pages	       = {29--32},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2004-1
+}
+
+@Article{Rnews:Lumley:2004b,
+  author       = {Thomas Lumley},
+  title	       = {{P}rogrammers' {N}iche: {A} Simple Class, in {S3} and {S4}},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 1,
+  pages	       = {33--36},
+  month	       = {June},
+  url	       = http,
+  pdf	       = Rnews2004-1
+}
+
+@Article{Rnews:Ripley:2004,
+  author       = {Brian D. Ripley},
+  title	       = {Lazy Loading and Packages in {R} 2.0.0},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 2,
+  pages	       = {2--4},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2004-2
+}
+
+@Article{Rnews:Murrell:2004,
+  author       = {Paul Murrell},
+  title	       = {Fonts, Lines, and Transparency in {R} Graphics},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 2,
+  pages	       = {5--9},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2004-2
+}
+
+@Article{Rnews:Peng+Welty:2004,
+  author       = {Roger D. Peng and Leah J. Welty},
+  title	       = {The {NMMAPSdata} Package},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 2,
+  pages	       = {10--14},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2004-2
+}
+
+@Article{Rnews:Gentry+Carey+Gansner:2004,
+  author       = {Jeff Gentry and Vincent Carey and Emden Gansner and
+                  Robert Gentleman},
+  title	       = {Laying Out Pathways With {Rgraphviz}},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 2,
+  pages	       = {14--18},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2004-2
+}
+
+@Article{Rnews:Yan:2004,
+  author       = {Jun Yan},
+  title	       = {Fusing {R} and {BUGS} through {Wine}},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 2,
+  pages	       = {19--21},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2004-2
+}
+
+@Article{Rnews:Gilbert:2004,
+  author       = {Paul Gilbert},
+  title	       = {R Package Maintenance},
+  journal      = {R News},
+  year	       = 2004,
+  volume       = 4,
+  number       = 2,
+  pages	       = {21--24},
+  month	       = {September},
+  url	       = http,
+  pdf	       = Rnews2004-2
+}
+
+@Article{Rnews:Ripley:2005a,
+  author       = {Brian D. Ripley},
+  title	       = {Internationalization Features of {R} 2.1.0},
+  journal      = {R News},
+  year	       = 2005,
+  volume       = 5,
+  number       = 1,
+  pages	       = {2--7},
+  month	       = {May},
+  url	       = http,
+  pdf	       = Rnews2005-1
+}
+
+@Article{Rnews:Ripley:2005b,
+  author       = {Brian D. Ripley},
+  title	       = {Packages and their Management in {R} 2.1.0},
+  journal      = {R News},
+  year	       = 2005,
+  volume       = 5,
+  number       = 1,
+  pages	       = {8--11},
+  month	       = {May},
+  url	       = http,
+  pdf	       = Rnews2005-1
+}
+
+@Article{Rnews:Murrell:2005,
+  author       = {Paul Murrell},
+  title	       = {Recent Changes in grid Graphics},
+  journal      = {R News},
+  year	       = 2005,
+  volume       = 5,
+  number       = 1,
+  pages	       = {12--20},
+  month	       = {May},
+  url	       = http,
+  pdf	       = Rnews2005-1
+}
+
+@Article{Rnews:Brazzale:2005,
+  author       = {Alessandra Brazzale},
+  title	       = {hoa: An {R} Package Bundle for Higher Order Likelihood
+                  Inference},
+  journal      = {R News},
+  year	       = 2005,
+  volume       = 5,
+  number       = 1,
+  pages	       = {20--27},
+  month	       = {May},
+  url	       = http,
+  pdf	       = Rnews2005-1
+}
+
+@Article{Rnews:Bates:2005,
+  author       = {Douglas Bates},
+  title	       = {Fitting Linear Mixed Models in {R}},
+  journal      = {R News},
+  year	       = 2005,
+  volume       = 5,
+  number       = 1,
+  pages	       = {27--30},
+  month	       = {May},
+  url	       = http,
+  pdf	       = Rnews2005-1
+}
+
+@Article{Rnews:Brownrigg+Harte:2005,
+  author       = {Ray Brownrigg and David Harte},
+  title	       = {Using {R} for Statistical Seismology},
+  journal      = {R News},
+  year	       = 2005,
+  volume       = 5,
+  number       = 1,
+  pages	       = {31--35},
+  month	       = {May},
+  url	       = http,
+  pdf	       = Rnews2005-1
+}
+
+@Article{Rnews:Rougier:2005,
+  author       = {Jonathan Rougier},
+  title	       = {Literate Programming for Creating and Maintaining Packages},
+  journal      = {R News},
+  year	       = 2005,
+  volume       = 5,
+  number       = 1,
+  pages	       = {35--39},
+  month	       = {May},
+  url	       = http,
+  pdf	       = Rnews2005-1
+}
+
+@Article{Rnews:Zeileis:2005,
+  author       = {Achim Zeileis},
+  title	       = {{CRAN} Task Views},
+  journal      = {R News},
+  year	       = 2005,
+  volume       = 5,
+  number       = 1,
+  pages	       = {39--40},
+  month	       = {May},
+  url	       = http,
+  pdf	       = Rnews2005-1
+}
+
+@Article{Rnews:Betebenner:2005,
+  author       = {Damian Betebenner},
+  title	       = {Using Control Structures with {Sweave}},
+  journal      = {R News},
+  year	       = 2005,
+  volume       = 5,
+  number       = 1,
+  pages	       = {40--44},
+  month	       = {May},
+  url	       = http,
+  pdf	       = Rnews2005-1
+}
+
+@Article{Rnews:Pikounis+Liaw:2005,
+  author       = {Bill Pikounis and Andy Liaw},
+  title	       = {The Value of {R} for Preclinical Statisticians},
+  journal      = {R News},
+  year	       = 2005,
+  volume       = 5,
+  number       = 1,
+  pages	       = {44--47},
+  month	       = {May},
+  url	       = http,
+  pdf	       = Rnews2005-1
+}
+
+@Article{Rnews:Hankin:2005,
+  author       = {Robin K. S. Hankin},
+  title	       = {Recreational mathematics with {R}: introducing the
+                  ``magic'' package},
+  journal      = {R News},
+  year	       = 2005,
+  volume       = 5,
+  number       = 1,
+  pages	       = {48--51},
+  month	       = {May},
+  url	       = http,
+  pdf	       = Rnews2005-1
+}
+
+@Article{Rnews:Fox:2005,
+  author       = {John Fox},
+  title	       = {{P}rogrammer's {N}iche: {How} Do You Spell That Number?},
+  journal      = {R News},
+  year	       = 2005,
+  volume       = 5,
+  number       = 1,
+  pages	       = {51--55},
+  month	       = {May},
+  url	       = http,
+  pdf	       = Rnews2005-1
+}
+
+@Article{Rnews:Raftery+Painter+Volinsky:2005,
+  author       = {Adrian E. Raftery and Ian S. Painter and Christopher
+                  T. Volinsky},
+  title        = {{BMA}: An {R} package for {Bayesian} Model Averaging},
+  journal      = {R News},
+  year         = 2005,
+  volume       = 5,
+  number       = 2,
+  pages        = {2--8},
+  month        = {November},
+  url          = http,
+  pdf	       = Rnews2005-2
+}
+
+@Article{Rnews:Pebesma+Bivand:2005,
+  author       = {Edzer J. Pebesma and Roger S. Bivand},
+  title        = {Classes and methods for spatial data in {R}},
+  journal      = {R News},
+  year         = 2005,
+  volume       = 5,
+  number       = 2,
+  pages        = {9--13},
+  month        = {November},
+  url          = http,
+  pdf	       = Rnews2005-2
+}
+
+@Article{Rnews:Xie:2005,
+  author       = {Xianhong Xie},
+  title        = {Running long {R} jobs with {Condor} {DAG}},
+  journal      = {R News},
+  year         = 2005,
+  volume       = 5,
+  number       = 2,
+  pages        = {13--15},
+  month        = {November},
+  url          = http,
+  pdf	       = Rnews2005-2
+}
+
+@Article{Rnews:LEcuyer+Leydold:2005,
+  author       = {Pierre L'Ecuyer and Josef Leydold},
+  title        = {rstream: Streams of random numbers for stochastic
+                  simulation},
+  journal      = {R News},
+  year         = 2005,
+  volume       = 5,
+  number       = 2,
+  pages        = {16--20},
+  month        = {November},
+  url          = http,
+  pdf	       = Rnews2005-2
+}
+
+@Article{Rnews:Benner:2005,
+  author       = {Axel Benner},
+  title        = {mfp: Multivariable fractional polynomials},
+  journal      = {R News},
+  year         = 2005,
+  volume       = 5,
+  number       = 2,
+  pages        = {20--23},
+  month        = {November},
+  url          = http,
+  pdf	       = Rnews2005-2
+}
+
+@Article{Rnews:Sailer:2005,
+  author       = {Oliver Sailer},
+  title        = {crossdes: A package for design and randomization in
+                  crossover studies},
+  journal      = {R News},
+  year         = 2005,
+  volume       = 5,
+  number       = 2,
+  pages        = {24--27},
+  month        = {November},
+  url          = http,
+  pdf	       = Rnews2005-2
+}
+
+@Article{Rnews:Ligges+Murdoch:2005,
+  author       = {Uwe Ligges and Duncan Murdoch},
+  title        = {{R} {H}elp {D}esk: {Make} `{R CMD}' Work under {Windows} -- an
+                  Example},
+  journal      = {R News},
+  year         = 2005,
+  volume       = 5,
+  number       = 2,
+  pages        = {27--28},
+  month        = {November},
+  url          = http,
+  pdf	       = Rnews2005-2
+}
+
+@Article{Rnews:Martin+Quinn:2006,
+  author       = {Andrew D. Martin and Kevin M. Quinn},
+  title        = {Applied {Bayesian} Inference in {R} using {MCMCpack}},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 1,
+  pages        = {2--7},
+  month        = {March},
+  url          = http,
+  pdf	       = Rnews2006-1
+}
+
+@Article{Rnews:Plummer+Best+Cowles+Vines:2006,
+  author       = {Martyn Plummer and Nicky Best and Kate Cowles and Karen Vines},
+  title        = {{CODA}: Convergence Diagnosis and Output Analysis for {MCMC}},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 1,
+  pages        = {7--11},
+  month        = {March},
+  url          = http,
+  pdf	       = Rnews2006-1
+}
+
+@Article{Rnews:Cook+Gelman:2006,
+  author       = {Samantha Cook and Andrew Gelman},
+  title        = {Bayesian Software Validation},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 1,
+  pages        = {11--12},
+  month        = {March},
+  url          = http,
+  pdf	       = Rnews2006-1
+}
+
+@Article{Rnews:Thomas+OHara+Ligges+Sturtz:2006,
+  author       = {Andrew Thomas and Bob O\'Hara and Uwe Ligges and Sibylle Sturtz},
+  title        = {Making {BUGS} Open},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 1,
+  pages        = {12--17},
+  month        = {March},
+  url          = http,
+  pdf	       = Rnews2006-1
+}
+
+@Article{Rnews:Thomas:2006,
+  author       = {Andrew Thomas},
+  title        = {The {BUGS} Language},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 1,
+  pages        = {17--21},
+  month        = {March},
+  url          = http,
+  pdf	       = Rnews2006-1
+}
+
+@Article{Rnews:Kerman+Gelman:2006,
+  author       = {Jouni Kerman and Andrew Gelman},
+  title        = {Bayesian Data Analysis using {R}},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 1,
+  pages        = {21--24},
+  month        = {March},
+  url          = http,
+  pdf	       = Rnews2006-1
+}
+
+@Article{Rnews:Ruckdeschel+Kohl+Stabla+Camphausen:2006,
+  author       = {Peter Ruckdeschel and Matthias Kohl and Thomas Stabla and
+                  and Florian Camphausen},
+  title        = {S4 Classes for Distributions},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 2,
+  pages        = {2--6},
+  month        = {May},
+  url          = http,
+  pdf          = Rnews2006-2
+}
+
+@Article{Rnews:Clifford+McCullagh:2006,
+  author       = {David Clifford and Peter McCullagh},
+  title        = {The regress function},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 2,
+  pages        = {6--10},
+  month        = {May},
+  url          = http,
+  pdf	       = Rnews2006-2
+}
+
+@Article{Rnews:Komsta:2006,
+  author       = {Lukasz Komsta},
+  title        = {Processing data for outliers},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 2,
+  pages        = {10--13},
+  month        = {May},
+  url          = http,
+  pdf	       = Rnews2006-2
+}
+
+@Article{Rnews:Kane+Enos:2006,
+  author       = {David Kane and Jeff Enos},
+  title        = {Analysing equity portfolios in {R}},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 2,
+  pages        = {13--21},
+  month        = {May},
+  url          = http,
+  pdf	       = Rnews2006-2
+}
+
+@Article{Rnews:Pahl+Ziegler+Konig:2006,
+  author       = {Roman Pahl and Andreas Ziegler and Inke R. K{\"o}nig},
+  title        = {{GroupSeq}: Designing clinical trials using group
+                  sequential designs},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 2,
+  pages        = {21--26},
+  month        = {May},
+  url          = http,
+  pdf	       = Rnews2006-2
+}
+
+@Article{Rnews:Garbade+Burgard:2006,
+  author       = {Sven Garbade and Peter Burgard},
+  title        = {Using {R}/{Sweave} in everyday clinical practice},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 2,
+  pages        = {26--31},
+  month        = {May},
+  url          = http,
+  pdf	       = Rnews2006-2
+}
+
+@Article{Rnews:Wangler+Beyersmann+Schumacher:2006,
+  author       = {M. Wangler and J. Beyersmann and M. Schumacher},
+  title        = {changeLOS: An {R}-package for change in length of
+                  hospital stay based on the {Aalen-Johansen} estimator},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 2,
+  pages        = {31--35},
+  month        = {May},
+  url          = http,
+  pdf	       = Rnews2006-2
+}
+
+@Article{Rnews:Jain+Warnes:2006,
+  author       = {Nitin Jain and Gregory R. Warnes},
+  title        = {Balloon Plot},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 2,
+  pages        = {35--38},
+  month        = {May},
+  url          = http,
+  pdf	       = Rnews2006-2
+}
+
+@Article{Rnews:Zhao:2006,
+  author       = {Jing Hua Zhao},
+  title        = {Drawing pedigree diagrams with {R} and graphviz},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 2,
+  pages        = {38--41},
+  month        = {May},
+  url          = http,
+  pdf	       = Rnews2006-2
+}
+
+@Article{Rnews:Murrell+Ripley:2006,
+  author       = {Paul Murrell and Brian Ripley},
+  title        = {Non-Standard Fonts in {PostScript} and {PDF} graphics},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 2,
+  pages        = {41--47},
+  month        = {May},
+  url          = http,
+  pdf	       = Rnews2006-2
+}
+
+@Article{Rnews:Hojsgaard:2006,
+  author       = {S{\o}ren H{\o}jsgaard},
+  title        = {The {doBy} package},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 2,
+  pages        = {47--49},
+  month        = {May},
+  url          = http,
+  pdf	       = Rnews2006-2
+}
+
+@Article{Rnews:Hankin:a:2006,
+  author       = {Robin K. S. Hankin},
+  title        = {Normed division algebras with {R}: Introducing the onion
+                  package},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 2,
+  pages        = {49--52},
+  month        = {May},
+  url          = http,
+  pdf          = Rnews2006-2
+}
+
+@Article{Rnews:Hankin:b:2006,
+  author       = {Robin K. S. Hankin},
+  title        = {Electrical properties of resistor networks},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 2,
+  pages        = {52--53},
+  month        = {May},
+  url          = http,
+  pdf	       = Rnews2006-2
+}
+
+@Article{Rnews:Watkins+Venables:2006,
+  author       = {Peter Watkins and Bill Venables},
+  title        = {Non-linear regression for optimising the separation of
+                  carboxylic acids},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 3,
+  pages        = {2--7},
+  month        = {August},
+  url          = http,
+  pdf	       = Rnews2006-3
+}
+
+@Article{Rnews:Ranke:2006,
+  author       = {Johannes Ranke},
+  title        = {Fitting dose-response curves from bioassays and toxicity
+                  testing},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 3,
+  number       = 3,
+  pages        = {7--12},
+  month        = {August},
+  url          = http,
+  pdf	       = Rnews2006-3
+}
+
+@Article{Rnews:Mevik:2006,
+  author       = {Bj\o{}rn-Helge Mevik},
+  title        = {The pls package},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 3,
+  pages        = {12--17},
+  month        = {August},
+  url          = http,
+  pdf	       = Rnews2006-3
+}
+
+@Article{Rnews:Fraley+Raftery:2006,
+  author       = {Chris Fraley and Adrian E. Raftery},
+  title        = {Some Applications of Model-Based Clustering in Chemistry},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 3,
+  pages        = {17--23},
+  month        = {August},
+  url          = http,
+  pdf	       = Rnews2006-3
+}
+
+@Article{Rnews:Wehrens+Willighagen:2006,
+  author       = {Ron Wehrens and Egon Willighagen},
+  title        = {Mapping databases of {X-ray} powder patterns},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 3,
+  pages        = {24--28},
+  month        = {August},
+  url          = http,
+  pdf	       = Rnews2006-3
+}
+
+@Article{Rnews:Guha:2006,
+  author       = {Rajarshi Guha},
+  title        = {Generating, Using and Visualizing Molecular Information
+                  in {R}},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 3,
+  pages        = {28--33},
+  month        = {August},
+  url          = http,
+  pdf	       = Rnews2006-3
+}
+
+@Article{Rnews:Kuhn:2006,
+  author       = {Max Kuhn},
+  title        = {Sweave and the Open Document Format -- The {odfWeave} Package},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 4,
+  pages        = {2--8},
+  month        = {October},
+  url          = http,
+  pdf	       = Rnews2006-4
+}
+
+@Article{Rnews:Lemon:2006,
+  author       = {Jim Lemon},
+  title        = {plotrix},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 4,
+  pages        = {8--12},
+  month        = {October},
+  url          = http,
+  pdf	       = Rnews2006-4
+}
+
+@Article{Rnews:Bowman+Crawford+Bowman:2006,
+  author       = {Adrian Bowman and Ewan Crawford and Richard Bowman},
+  title        = {rpanel: making graphs move with tcltk},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 4,
+  pages        = {12--17},
+  month        = {October},
+  url          = http,
+  pdf	       = Rnews2006-4
+}
+
+@Article{Rnews:Pocernich:2006,
+  author       = {Matthew Pocernich},
+  title        = {R's role in the climate change debate.},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 4,
+  pages        = {17--18},
+  month        = {October},
+  url          = http,
+  pdf	       = Rnews2006-4
+}
+
+@Article{Rnews:Peng:2006,
+  author       = {Roger D. Peng},
+  title        = {Interacting with Data using the filehash Package},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 4,
+  pages        = {19--24},
+  month        = {October},
+  url          = http,
+  pdf	       = Rnews2006-4
+}
+
+@Article{Rnews:Hankin:2006,
+  author       = {Robin K. S. Hankin},
+  title        = {Special functions in {R}: introducing the gsl package},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 4,
+  pages        = {24--26},
+  month        = {October},
+  url          = http,
+  pdf	       = Rnews2006-4
+}
+
+@Article{Rnews:Lederer+Kuchenhoff:2006,
+  author       = {Wolfgang Lederer and Helmut K\"{u}chenhoff},
+  title        = {A short Introduction to the {SIMEX} and {MCSIMEX}},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 4,
+  pages        = {26--31},
+  month        = {October},
+  url          = http,
+  pdf	       = Rnews2006-4
+}
+
+@Article{Rnews:Koenker:2006,
+  author       = {Roger Koenker},
+  title        = {Parametric Links for Binary Response},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 4,
+  pages        = {32--34},
+  month        = {October},
+  url          = http,
+  pdf	       = Rnews2006-4
+}
+
+@Article{Rnews:Leiva+Hernandez+Riquelme:2006,
+  author       = {V\'ictor Leiva and Hugo Hern\'andez and Marco Riquelme},
+  title        = {A New Package for the {Birnbaum-Saunders} Distribution},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 4,
+  pages        = {35--40},
+  month        = {October},
+  url          = http,
+  pdf	       = Rnews2006-4
+}
+
+@Article{Rnews:Holmes:2006,
+  author =       {Susan Holmes},
+  title =        {Review of {Fionn} {Murtagh}'s book: \\ Correspondence
+                  Analysis and Data Coding with {Java} and {R}},
+  journal =      {R News},
+  year =         2006,
+  volume =       6,
+  number =       4,
+  pages =        {41--43},
+  month =        {October},
+  url =          http,
+  pdf =          Rnews2006-4
+}
+
+@Article{Rnews:Ligges:2006,
+  author       = {Uwe Ligges},
+  title        = {{R} {H}elp {D}esk: {Accessing} the Sources},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 4,
+  pages        = {43--45},
+  month        = {October},
+  url          = http,
+  pdf	       = Rnews2006-4
+}
+
+@Article{Rnews:Long+Carey:2006,
+  author       = {Li Long and Vince Carey},
+  title        = {Graphs and Networks: Tools in {Bioconductor}},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {2--7},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Falcon:2006,
+  author       = {Seth Falcon},
+  title        = {Modeling Package Dependencies Using Graphs},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {8--12},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Skylar+Huber:2006,
+  author       = {Oleg Sklyar and Wolfgang Huber},
+  title        = {Image Analysis for Microscopy Screens},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {12--16},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Dunning+Smith+Thorne+Tavare:2006,
+  author       = {Mark Dunning and Mike Smith and Natalie Thorne and Simon Tavar\'e},
+  title        = {beadarray: An {R} Package to Analyse {Illumina} {BeadArrays}},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {17--23},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Ritchie+Huber:2006,
+  author       = {Matthew Ritchie and Wolfgang Huber},
+  title        = {Transcript Mapping with High-Density Tiling Arrays},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {23--27},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:LeMeur+Hahne:2006,
+  author       = {Nolwenn Le Meur and Florian Hahne},
+  title        = {Analyzing Flow Cytometry Data with {Bioconductor}},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {27--32},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Scholtens:2006,
+  author       = {Denise Scholtens},
+  title        = {Protein Complex Membership Estimation using {apComplex}},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {32--36},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Carey:2006,
+  author       = {Vince Carey},
+  title        = {{SNP} Metadata Access and Use with {Bioconductor}},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {36--39},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Durinck:2006,
+  author       = {Steffen Durinck},
+  title        = {Integrating Biological Data Resources into {R} with {biomaRt}},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {40--45},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Schwender+Krause+Ickstadt:2006,
+  author       = {Holger Schwender and Andreas Krause and Katja Ickstadt},
+  title        = {Identifying Interesting Genes with siggenes},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {45--50},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Schafer+OpgenRhein+Strimmer:2006,
+  author       = {Juliane Sch\"afer and Rainer Opgen-Rhein and Korbinian Strimmer},
+  title        = {Reverse Engineering Genetic Networks using the {GeneNet} Package},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {50--53},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Culhane+Thioulouse:2006,
+  author       = {Aed\'{i}n C. Culhane and Jean Thioulouse},
+  title        = {A Multivariate Approach to Integrating Datasets using made4 and ade4},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {54--58},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Lucas+Jasson:2006,
+  author       = {Antoine Lucas and Sylvain Jasson},
+  title        = {Using amap and ctc Packages for Huge Clustering},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {58--60},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Fraley+Raftery:2006b,
+  author       = {Chris Fraley and Adrian E. Raftery},
+  title        = {Model-based Microarray Image Analysis},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {60--63},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Warnes:2006,
+  author       = {Gregory R. Warnes},
+  title        = {Sample Size Estimation for Microarray Experiments Using the ssize Package},
+  journal      = {R News},
+  year         = 2006,
+  volume       = 6,
+  number       = 5,
+  pages        = {64--68},
+  month        = {December},
+  url          = http,
+  pdf	       = Rnews2006-5
+}
+
+@Article{Rnews:Murrell:2007,
+  author       = {Paul Murrell},
+  title        = {Viewing Binary Files with the hexView Package},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 1,
+  pages        = {2--8},
+  month        = {April},
+  url          = http,
+  pdf	       = Rnews2007-1
+}
+
+@Article{Rnews:Gruen+Leisch:2007,
+  author       = {Bettina Gr{\"u}n and Friedrich Leisch},
+  title        = {{FlexMix}: An {R} Package for Finite Mixture Modelling},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 1,
+  pages        = {8--13},
+  month        = {April},
+  url          = http,
+  pdf	       = Rnews2007-1
+}
+
+@Article{Rnews:Onofri+Ciriciofolo:2007,
+  author       = {Andrea Onofri and Egidio Ciriciofolo},
+  title        = {Using {R} to Perform the {AMMI} Analysis on Agriculture Variety Trials},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 1,
+  pages        = {14--19},
+  month        = {April},
+  url          = http,
+  pdf	       = Rnews2007-1
+}
+
+@Article{Rnews:Dilba+Schaarschmidt+Hothorn:2007,
+  author       = {Gemechis Dilba and Frank Schaarschmidt and Ludwig A. Hothorn},
+  title        = {Inferences for Ratios of Normal Means},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 1,
+  pages        = {20--23},
+  month        = {April},
+  url          = http,
+  pdf	       = Rnews2007-1
+}
+
+@Article{Rnews:Gorjanc:2007,
+  author       = {Gregor Gorjanc},
+  title        = {Working with Unknown Values},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 1,
+  pages        = {24--26},
+  month        = {April},
+  url          = http,
+  pdf	       = Rnews2007-1
+}
+
+@Article{Rnews:Einbeck+Hinde+Darnell:2007,
+  author       = {Jochen Einbeck and John Hinde and Ross Darnell},
+  title        = {A New Package for Fitting Random Effect Models},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 1,
+  pages        = {26--30},
+  month        = {April},
+  url          = http,
+  pdf	       = Rnews2007-1
+}
+
+@Article{Rnews:Robinson:2007,
+  author       = {Andrew Robinson},
+  title        = {Augmenting {R} with {Unix} Tools},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 1,
+  pages        = {30--33},
+  month        = {April},
+  url          = http,
+  pdf	       = Rnews2007-1
+}
+
+@Article{Rnews:Ribatet:2007,
+  author       = {Mathieu Ribatet},
+  title        = {{POT}: Modelling Peaks Over a Threshold},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 1,
+  pages        = {34--36},
+  month        = {April},
+  url          = http,
+  pdf	       = Rnews2007-1
+}
+
+@Article{Rnews:Campbell+Enos+Gerlanc+Kane:2007,
+  author       = {Kyle Campbell and Jeff Enos and Daniel Gerlanc and David Kane},
+  title        = {Backtests},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 1,
+  pages        = {36--41},
+  month        = {April},
+  url          = http,
+  pdf	       = Rnews2007-1
+}
+
+@Article{Rnews:Liaw:2007,
+  author       = {Andy Liaw},
+  title        = {Review of {J}ohn {V}erzani's Book: {U}sing {R} for {I}ntroductory {S}tatistics},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 1,
+  pages        = {41--42},
+  month        = {April},
+  url          = http,
+  pdf	       = Rnews2007-1
+}
+
+@Article{Rnews:Dalgaard:2007,
+  author       = {Peter Dalgaard},
+  title        = {New Functions for Multivariate Analysis},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 2,
+  pages        = {2--7},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2007-2
+}
+
+@Article{Rnews:Turner+Firth:2007,
+  author       = {Heather Turner and David Firth},
+  title        = {gnm: A Package for Generalized Nonlinear Models},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 2,
+  pages        = {8--12},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2007-2
+}
+
+@Article{Rnews:Polzehl+Tabelow:2007,
+  author       = {J{\"o}rg Polzehl and Karten Tabelow},
+  title        = {fmri: A Package for Analyzing fmri Data},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 2,
+  pages        = {13--17},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2007-2
+}
+
+@Article{Rnews:Hansen:2007,
+  author       = {Ben B. Hansen},
+  title        = {{Optmatch}: Flexible, Optimal Matching for Observational Studies},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 2,
+  pages        = {18--24},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2007-2
+}
+
+@Article{Rnews:Ishwaran+Kogalur:2007,
+  author       = {Hemant Ishwaran and Udaya B. Kogalur},
+  title        = {Random Survival Forests for {R}},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 2,
+  pages        = {25--31},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2007-2
+}
+
+@Article{Rnews:Newton+Wernisch:2007,
+  author       = {Richard Newton and Lorenz Wernisch},
+  title        = {{Rwui}: A Web Application to Create User Friendly Web Interfaces for {R} Scripts},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 2,
+  pages        = {32--35},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2007-2
+}
+
+@Article{Rnews:Hayfield+Racine:2007,
+  author       = {Tristen Hayfield and Jeffrey S. Racine},
+  title        = {The np Package: Kernel Methods for Categorical and Continuous Data},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 2,
+  pages        = {35--43},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2007-2
+}
+
+@Article{Rnews:Lau+Moore+Kellermann:2007,
+  author       = {Olivia Lau and Ryan T. Moore and Michael Kellermann},
+  title        = {eiPack: ${R} \times {C}$ Ecological Inferences and Higher-Dimension Data Management},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 2,
+  pages        = {43--47},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2007-2
+}
+
+@Article{Rnews:Dray+Dufour+Chessel:2007,
+  author       = {St\'{e}phane Dray and Anne B. Dufour and Daniel Chessel},
+  title        = {The ade4 Package--{II}: Two-table and ${K}$-table Methods},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 2,
+  pages        = {47--52},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2007-2
+}
+
+@Article{Rnews:Leisch:2007,
+  author       = {Friedrich Leisch},
+  title        = {Review of ``{The R Book}''},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 2,
+  pages        = {53--54},
+  month        = {October},
+  url          = {https://CRAN.R-project.org/doc/Rnews/}
+}
+
+@Article{Rnews:Oh+Kim:2007,
+  author       = {Hee-Seok Oh and Donghoh Kim},
+  title        = {{SpherWave}: {A}n {R} Package for Analyzing Scattered
+                  Spherical Data by Spherical Wavelets},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 3,
+  pages        = {2--7},
+  month        = {December},
+  url          = http,
+  pdf          = Rnews2007-3
+}
+
+
+@Article{Rnews:Luque:2007,
+  author       = {Sebasti{\'a}n P. Luque},
+  title        = {Diving Behaviour Analysis in {R}},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 3,
+  pages        = {8--14},
+  month        = {December},
+  url          = http,
+  pdf          = Rnews2007-3
+}
+
+@Article{Rnews:Hankin:2007,
+  author       = {Robin K. S. Hankin},
+  title        = {Very Large Numbers in {R}: {I}ntroducing Package
+                  {Brobdingnag}},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 3,
+  pages        = {15--16},
+  month        = {December},
+  url          = http,
+  pdf          = Rnews2007-3
+}
+
+@Article{Rnews:Jara:2007,
+  author       = {Alejandro Jara},
+  title        = {Applied Bayesian Non- and Semi-parametric Inference using
+                  {DPpackage}},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 3,
+  pages        = {17--26},
+  month        = {December},
+  url          = http,
+  pdf          = Rnews2007-3
+}
+
+@Article{Rnews:Verzani:2007,
+  author       = {John Verzani},
+  title        = {An Introduction to {gWidgets}},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 3,
+  pages        = {26--33},
+  month        = {December},
+  url          = http,
+  pdf          = Rnews2007-3
+}
+
+@Article{Rnews:Alpert:2007,
+  author       = {Bill Alpert},
+  title        = {Financial Journalism with {R}},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 3,
+  pages        = {34--36},
+  month        = {December},
+  url          = http,
+  pdf          = Rnews2007-3
+}
+
+@Article{Rnews:Weisberg+Wickham:2007,
+  author       = {Sanford Weisberg and Hadley Wickham},
+  title        = {Need A Hint?},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 3,
+  pages        = {36--38},
+  month        = {December},
+  url          = http,
+  pdf          = Rnews2007-3
+}
+
+@Article{Rnews:Mair+Hatzinger:2007,
+  author       = {Patrick Mair and Reinhold Hatzinger},
+  title        = {Psychometrics Task View},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 3,
+  pages        = {38--40},
+  month        = {December},
+  url          = http,
+  pdf          = Rnews2007-3
+}
+
+@Article{Rnews:Schwarzer:2007,
+  author       = {Guido Schwarzer},
+  title        = {meta: An {R} Package for Meta-Analysis},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 3,
+  pages        = {40--45},
+  month        = {December},
+  url          = http,
+  pdf          = Rnews2007-3
+}
+
+@Article{Rnews:Fox:2007,
+  author       = {John Fox},
+  title        = {Extending the {R Commander} by ``Plug-In'' Packages},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 3,
+  pages        = {46--52},
+  month        = {December},
+  url          = http,
+  pdf          = Rnews2007-3
+}
+
+@Article{Rnews:Taylor+TempleLang+Pollard:2007,
+  author       = {Sandra L. Taylor and Duncan Temple Lang and 
+                  Katherine S. Pollard},
+  title        = {Improvements to the Multiple Testing Package {multtest}},
+  journal      = {R News},
+  year         = 2007,
+  volume       = 7,
+  number       = 3,
+  pages        = {52--55},
+  month        = {December},
+  url          = http,
+  pdf          = Rnews2007-3
+}
+
+@Article{Rnews:Gorjanc:2008,
+  author       = {Gregor Gorjanc},
+  title        = {Using {Sweave} with {LyX}},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 1,
+  pages        = {2--9},
+  month        = {May},
+  url          = http,
+  pdf          = Rnews2008-1
+}
+
+@Article{Rnews:Enos+Kane+Narayan+Schwartz+Suo+Zhao:2008,
+  author       = {Jeff Enos and David Kane and Arjun Ravi Narayan and
+                  Aaron Schwartz and Daniel Suo and Luyi Zhao},
+  title        = {Trade Costs},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 1,
+  pages        = {10--13},
+  month        = {May},
+  url          = http,
+  pdf          = Rnews2008-1
+}
+
+@Article{Rnews:Katki+Mark:2008,
+  author       = {Hormuzd A. Katki and Steven D. Mark},
+  title        = {Survival Analysis for Cohorts with Missing Covariate Information},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 1,
+  pages        = {14--19},
+  month        = {May},
+  url          = http,
+  pdf          = Rnews2008-1
+}
+
+@Article{Rnews:Muggeo:2008,
+  author       = {Vito M. R. Muggeo},
+  title        = {segmented: An {R} package to Fit Regression
+                  Models with Broken-Line Relationships},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 1,
+  pages        = {20--25},
+  month        = {May},
+  url          = http,
+  pdf          = Rnews2008-1
+}
+
+@Article{Rnews:Chen+Lin+Liu+Gerlach:2008,
+  author       = {Cathy W.S. Chen and Edward M.H. Lin and F.C. Liu and
+                  Richard Gerlach},
+  title        = {Bayesian Estimation for Parsimonious Threshold
+                  Autoregressive Models in {R}},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 1,
+  pages        = {26--33},
+  month        = {May},
+  url          = http,
+  pdf          = Rnews2008-1
+}
+
+@Article{Rnews:Goulet+Pigeon:2008,
+  author       = {Vincent Goulet and Mathieu Pigeon},
+  title        = {Statistical Modeling of Loss Distributions
+                  Using actuar},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 1,
+  pages        = {34--40},
+  month        = {May},
+  url          = http,
+  pdf          = Rnews2008-1
+}
+
+@Article{RNews:Hankin:2008,
+  author       = {Robin K. S. Hankin},
+  title        = {{{P}rogrammers' {N}iche}: {M}ultivariate polynomials in R},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 1,
+  pages        = {41--45},
+  month        = {May},
+  url          = http,
+  pdf          = Rnews2008-1
+}
+
+@Article{Rnews:Ligges+Fox:2008,
+  author       = {Uwe Ligges and John Fox},
+  title        = {{{R} {H}elp {D}esk}: {H}ow Can {I} Avoid This Loop or Make It Faster?},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 1,
+  pages        = {46--50},
+  month        = {May},
+  url          = http,
+  pdf          = Rnews2008-1
+}
+
+@Article{Rnews:Wickham+Lawrence+Lang+Swayne:2008,
+  author       = {Hadley Wickham and Michael Lawrence and Duncan Temple Lang
+                  and Deborah F. Swayne},
+  title        = {An Introduction to rggobi},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 2,
+  pages        = {3--7},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2008-2
+}
+
+@Article{Rnews:Dormann+Gruber+Frund:2008,
+  author       = {Carsten F. Dormann and Bernd Gruber and Jochen Fr\"{u}nd},
+  title        = {Introducing the bipartite Package: Analysing Ecological
+                  Networks},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 2,
+  pages        = {8--11},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2008-2
+}
+
+@Article{Rnews:Kosmidis:2008,
+  author       = {Ioannis Kosmidis},
+  title        = {The profileModel {R} Package: Profiling Objectives for
+                  Models with Linear Predictors},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 2,
+  pages        = {12--18},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2008-2
+}
+
+@Article{Rnews:Feinerer:2008,
+  author       = {Ingo Feinerer},
+  title        = {An Introduction to Text Mining in {R}},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 2,
+  pages        = {19--22},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2008-2
+}
+
+@Article{Rnews:Xie+Cheng:2008,
+  author       = {Yihui Xie and Xiaoyue Cheng},
+  title        = {animation: A Package for Statistical Animations},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 2,
+  pages        = {23--27},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2008-2
+}
+
+@Article{Rnews:Yee:2008,
+  author       = {Thomas W. Yee},
+  title        = {The {VGAM} Package},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 2,
+  pages        = {28--39},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2008-2
+}
+
+@Article{Rnews:Murrell:2008,
+  author       = {Paul Murrell},
+  title        = {Comparing Non-Identical Objects},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 2,
+  pages        = {40--47},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2008-2
+}
+
+@Article{Rnews:Allignol+Beyersmann+Schumacher:2008,
+  author       = {A. Allignol and J. Beyersmann and M. Schumacher},
+  title        = {mvna: An {R} Package for the {Nelson-Aalen} Estimator in
+                  Multistate Models},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 2,
+  pages        = {48--50},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2008-2
+}
+
+@Article{Rnews:Carey:2008,
+  author       = {Vince Carey},
+  title        = {{P}rogrammers' {N}iche: {T}he {Y} of {R}},
+  journal      = {R News},
+  year         = 2008,
+  volume       = 8,
+  number       = 2,
+  pages        = {51--53},
+  month        = {October},
+  url          = http,
+  pdf          = Rnews2008-2
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/bibtex/bst/jss.bst
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/bibtex/bst/jss.bst	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/bibtex/bst/jss.bst	(revision 2476)
@@ -0,0 +1,1631 @@
+%%
+%% This is file `jss.bst',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% merlin.mbs  (with options: `ay,nat,nm-rvx,keyxyr,dt-beg,yr-par,note-yr,tit-qq,atit-u,trnum-it,vol-bf,volp-com,num-xser,pre-edn,isbn,issn,edpar,pp,ed,xedn,xand,etal-it,revdata,eprint,url,url-blk,doi,nfss')
+%% 
+%% ** BibTeX style file for JSS publications (http://www.jstatsoft.org/)
+%% 
+%% Copyright 1994-2007 Patrick W Daly
+%% License: GPL-2 | GPL-3
+ % ===============================================================
+ % IMPORTANT NOTICE:
+ % This bibliographic style (bst) file has been generated from one or
+ % more master bibliographic style (mbs) files, listed above, provided
+ % with kind permission of Patrick W Daly.
+ %
+ % This generated file can be redistributed and/or modified under the terms
+ % of the General Public License (Version 2 or 3).
+ % ===============================================================
+ % Name and version information of the main mbs file:
+ % \ProvidesFile{merlin.mbs}[2007/04/24 4.20 (PWD, AO, DPC)]
+ %   For use with BibTeX version 0.99a or later
+ %-------------------------------------------------------------------
+ % This bibliography style file is intended for texts in ENGLISH
+ % This is an author-year citation style bibliography. As such, it is
+ % non-standard LaTeX, and requires a special package file to function properly.
+ % Such a package is    natbib.sty   by Patrick W. Daly
+ % The form of the \bibitem entries is
+ %   \bibitem[Jones et al.(1990)]{key}...
+ %   \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}...
+ % The essential feature is that the label (the part in brackets) consists
+ % of the author names, as they should appear in the citation, with the year
+ % in parentheses following. There must be no space before the opening
+ % parenthesis!
+ % With natbib v5.3, a full list of authors may also follow the year.
+ % In natbib.sty, it is possible to define the type of enclosures that is
+ % really wanted (brackets or parentheses), but in either case, there must
+ % be parentheses in the label.
+ % The \cite command functions as follows:
+ %   \citet{key} ==>>                Jones et al. (1990)
+ %   \citet*{key} ==>>               Jones, Baker, and Smith (1990)
+ %   \citep{key} ==>>                (Jones et al., 1990)
+ %   \citep*{key} ==>>               (Jones, Baker, and Smith, 1990)
+ %   \citep[chap. 2]{key} ==>>       (Jones et al., 1990, chap. 2)
+ %   \citep[e.g.][]{key} ==>>        (e.g. Jones et al., 1990)
+ %   \citep[e.g.][p. 32]{key} ==>>   (e.g. Jones et al., p. 32)
+ %   \citeauthor{key} ==>>           Jones et al.
+ %   \citeauthor*{key} ==>>          Jones, Baker, and Smith
+ %   \citeyear{key} ==>>             1990
+ %---------------------------------------------------------------------
+
+ENTRY
+  { address
+    archive
+    author
+    booktitle
+    chapter
+    collaboration
+    doi
+    edition
+    editor
+    eid
+    eprint
+    howpublished
+    institution
+    isbn
+    issn
+    journal
+    key
+    month
+    note
+    number
+    numpages
+    organization
+    pages
+    publisher
+    school
+    series
+    title
+    type
+    url
+    volume
+    year
+  }
+  {}
+  { label extra.label sort.label short.list }
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+}
+STRINGS { s t}
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+    { ", " * write$ }
+    { output.state after.block =
+        { add.period$ write$
+          newline$
+          "\newblock " write$
+        }
+        { output.state before.all =
+            'write$
+            { add.period$ " " * write$ }
+          if$
+        }
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+FUNCTION {fin.entry}
+{ add.period$
+  write$
+  newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+        'skip$
+        { after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+FUNCTION {add.blank}
+{  " " * before.all 'output.state :=
+}
+
+FUNCTION {date.block}
+{
+  new.block
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+FUNCTION {non.stop}
+{ duplicate$
+   "}" * add.period$
+   #-1 #1 substring$ "." =
+}
+
+STRINGS {z}
+FUNCTION {remove.dots}
+{ 'z :=
+  ""
+  { z empty$ not }
+  { z #1 #1 substring$
+    z #2 global.max$ substring$ 'z :=
+    duplicate$ "." = 'pop$
+      { * }
+    if$
+  }
+  while$
+}
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+FUNCTION {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "\emph{" swap$ * "}" * }
+  if$
+}
+FUNCTION {bolden}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "\textbf{" swap$ * "}" * }
+  if$
+}
+FUNCTION {tie.or.space.prefix}
+{ duplicate$ text.length$ #3 <
+    { "~" }
+    { " " }
+  if$
+  swap$
+}
+
+FUNCTION {capitalize}
+{ "u" change.case$ "t" change.case$ }
+
+FUNCTION {space.word}
+{ " " swap$ * " " * }
+ % Here are the language-specific definitions for explicit words.
+ % Each function has a name bbl.xxx where xxx is the English word.
+ % The language selected here is ENGLISH
+FUNCTION {bbl.and}
+{ "and"}
+
+FUNCTION {bbl.etal}
+{ "et~al." }
+
+FUNCTION {bbl.editors}
+{ "eds." }
+
+FUNCTION {bbl.editor}
+{ "ed." }
+
+FUNCTION {bbl.edby}
+{ "edited by" }
+
+FUNCTION {bbl.edition}
+{ "edition" }
+
+FUNCTION {bbl.volume}
+{ "volume" }
+
+FUNCTION {bbl.of}
+{ "of" }
+
+FUNCTION {bbl.number}
+{ "number" }
+
+FUNCTION {bbl.nr}
+{ "no." }
+
+FUNCTION {bbl.in}
+{ "in" }
+
+FUNCTION {bbl.pages}
+{ "pp." }
+
+FUNCTION {bbl.page}
+{ "p." }
+
+FUNCTION {bbl.eidpp}
+{ "pages" }
+
+FUNCTION {bbl.chapter}
+{ "chapter" }
+
+FUNCTION {bbl.techrep}
+{ "Technical Report" }
+
+FUNCTION {bbl.mthesis}
+{ "Master's thesis" }
+
+FUNCTION {bbl.phdthesis}
+{ "Ph.D. thesis" }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+FUNCTION {bibinfo.check}
+{ swap$
+  duplicate$ missing$
+    {
+      pop$ pop$
+      ""
+    }
+    { duplicate$ empty$
+        {
+          swap$ pop$
+        }
+        { swap$
+          pop$
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {bibinfo.warn}
+{ swap$
+  duplicate$ missing$
+    {
+      swap$ "missing " swap$ * " in " * cite$ * warning$ pop$
+      ""
+    }
+    { duplicate$ empty$
+        {
+          swap$ "empty " swap$ * " in " * cite$ * warning$
+        }
+        { swap$
+          pop$
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {format.eprint}
+{ eprint duplicate$ empty$
+    'skip$
+    { "\eprint"
+      archive empty$
+        'skip$
+        { "[" * archive * "]" * }
+      if$
+      "{" * swap$ * "}" *
+    }
+  if$
+}
+FUNCTION {format.url}
+{ url empty$
+    { "" }
+    { "\urlprefix\url{" url * "}" * }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+
+STRINGS  { bibinfo}
+
+FUNCTION {format.names}
+{ 'bibinfo :=
+  duplicate$ empty$ 'skip$ {
+  's :=
+  "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{vv~}{ll}{ jj}{ f{}}"
+      format.name$
+      remove.dots
+      bibinfo bibinfo.check
+      't :=
+      nameptr #1 >
+        {
+          namesleft #1 >
+            { ", " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              "," *
+              t "others" =
+                {
+                  " " * bbl.etal emphasize *
+                }
+                { " " * t * }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+  } if$
+}
+FUNCTION {format.names.ed}
+{
+  'bibinfo :=
+  duplicate$ empty$ 'skip$ {
+  's :=
+  "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{f{}~}{vv~}{ll}{ jj}"
+      format.name$
+      remove.dots
+      bibinfo bibinfo.check
+      't :=
+      nameptr #1 >
+        {
+          namesleft #1 >
+            { ", " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              "," *
+              t "others" =
+                {
+
+                  " " * bbl.etal emphasize *
+                }
+                { " " * t * }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+  } if$
+}
+FUNCTION {format.key}
+{ empty$
+    { key field.or.null }
+    { "" }
+  if$
+}
+
+FUNCTION {format.authors}
+{ author "author" format.names
+    duplicate$ empty$ 'skip$
+    { collaboration "collaboration" bibinfo.check
+      duplicate$ empty$ 'skip$
+        { " (" swap$ * ")" * }
+      if$
+      *
+    }
+  if$
+}
+FUNCTION {get.bbl.editor}
+{ editor num.names$ #1 > 'bbl.editors 'bbl.editor if$ }
+
+FUNCTION {format.editors}
+{ editor "editor" format.names duplicate$ empty$ 'skip$
+    {
+      " " *
+      get.bbl.editor
+   "(" swap$ * ")" *
+      *
+    }
+  if$
+}
+FUNCTION {format.isbn}
+{ isbn "isbn" bibinfo.check
+  duplicate$ empty$ 'skip$
+    {
+      new.block
+      "ISBN " swap$ *
+    }
+  if$
+}
+
+FUNCTION {format.issn}
+{ issn "issn" bibinfo.check
+  duplicate$ empty$ 'skip$
+    {
+      new.block
+      "ISSN " swap$ *
+    }
+  if$
+}
+
+FUNCTION {format.doi}
+{ doi "doi" bibinfo.check
+  duplicate$ empty$ 'skip$
+    {
+      new.block
+      "\doi{" swap$ * "}" *
+    }
+  if$
+}
+FUNCTION {format.note}
+{
+ note empty$
+    { "" }
+    { note #1 #1 substring$
+      duplicate$ "{" =
+        'skip$
+        { output.state mid.sentence =
+          { "l" }
+          { "u" }
+        if$
+        change.case$
+        }
+      if$
+      note #2 global.max$ substring$ * "note" bibinfo.check
+    }
+  if$
+}
+
+FUNCTION {format.title}
+{ title
+  "title" bibinfo.check
+  duplicate$ empty$ 'skip$
+    {
+      "\enquote{" swap$ *
+      add.period$ "}" *
+    }
+  if$
+}
+FUNCTION {format.full.names}
+{'s :=
+ "" 't :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{vv~}{ll}" format.name$
+      't :=
+      nameptr #1 >
+        {
+          namesleft #1 >
+            { ", " * t * }
+            {
+              s nameptr "{ll}" format.name$ duplicate$ "others" =
+                { 't := }
+                { pop$ }
+              if$
+              t "others" =
+                {
+                  " " * bbl.etal emphasize *
+                }
+                {
+                  numnames #2 >
+                    { "," * }
+                    'skip$
+                  if$
+                  bbl.and
+                  space.word * t *
+                }
+              if$
+            }
+          if$
+        }
+        't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {author.editor.key.full}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { cite$ #1 #3 substring$ }
+            'key
+          if$
+        }
+        { editor format.full.names }
+      if$
+    }
+    { author format.full.names }
+  if$
+}
+
+FUNCTION {author.key.full}
+{ author empty$
+    { key empty$
+         { cite$ #1 #3 substring$ }
+          'key
+      if$
+    }
+    { author format.full.names }
+  if$
+}
+
+FUNCTION {editor.key.full}
+{ editor empty$
+    { key empty$
+         { cite$ #1 #3 substring$ }
+          'key
+      if$
+    }
+    { editor format.full.names }
+  if$
+}
+
+FUNCTION {make.full.names}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.key.full
+    { type$ "proceedings" =
+        'editor.key.full
+        'author.key.full
+      if$
+    }
+  if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+  "\bibitem[{" write$
+  label write$
+  ")" make.full.names duplicate$ short.list =
+     { pop$ }
+     { * }
+   if$
+  "}]{" * write$
+  cite$ write$
+  "}" write$
+  newline$
+  ""
+  before.all 'output.state :=
+}
+
+FUNCTION {n.dashify}
+{
+  't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+        { t #1 #2 substring$ "--" = not
+            { "--" *
+              t #2 global.max$ substring$ 't :=
+            }
+            {   { t #1 #1 substring$ "-" = }
+                { "-" *
+                  t #2 global.max$ substring$ 't :=
+                }
+              while$
+            }
+          if$
+        }
+        { t #1 #1 substring$ *
+          t #2 global.max$ substring$ 't :=
+        }
+      if$
+    }
+  while$
+}
+
+FUNCTION {word.in}
+{ bbl.in capitalize
+  " " * }
+
+FUNCTION {format.date}
+{ year "year" bibinfo.check duplicate$ empty$
+    {
+      "empty year in " cite$ * "; set to ????" * warning$
+       pop$ "????"
+    }
+    'skip$
+  if$
+  extra.label *
+  before.all 'output.state :=
+  " (" swap$ * ")" *
+}
+FUNCTION {format.btitle}
+{ title "title" bibinfo.check
+  duplicate$ empty$ 'skip$
+    {
+      emphasize
+    }
+  if$
+}
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { bbl.volume volume tie.or.space.prefix
+      "volume" bibinfo.check * *
+      series "series" bibinfo.check
+      duplicate$ empty$ 'pop$
+        { swap$ bbl.of space.word * swap$
+          emphasize * }
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+        { series field.or.null }
+        { series empty$
+            { number "number" bibinfo.check }
+            { output.state mid.sentence =
+                { bbl.number }
+                { bbl.number capitalize }
+              if$
+              number tie.or.space.prefix "number" bibinfo.check * *
+              bbl.in space.word *
+              series "series" bibinfo.check *
+            }
+          if$
+        }
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {format.edition}
+{ edition duplicate$ empty$ 'skip$
+    {
+      output.state mid.sentence =
+        { "l" }
+        { "t" }
+      if$ change.case$
+      "edition" bibinfo.check
+      " " * bbl.edition *
+    }
+  if$
+}
+INTEGERS { multiresult }
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+        { #1 'multiresult := }
+        { t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+FUNCTION {format.pages}
+{ pages duplicate$ empty$ 'skip$
+    { duplicate$ multi.page.check
+        {
+          bbl.pages swap$
+          n.dashify
+        }
+        {
+          bbl.page swap$
+        }
+      if$
+      tie.or.space.prefix
+      "pages" bibinfo.check
+      * *
+    }
+  if$
+}
+FUNCTION {format.journal.pages}
+{ pages duplicate$ empty$ 'pop$
+    { swap$ duplicate$ empty$
+        { pop$ pop$ format.pages }
+        {
+          ", " *
+          swap$
+          n.dashify
+          "pages" bibinfo.check
+          *
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {format.journal.eid}
+{ eid "eid" bibinfo.check
+  duplicate$ empty$ 'pop$
+    { swap$ duplicate$ empty$ 'skip$
+      {
+          ", " *
+      }
+      if$
+      swap$ *
+      numpages empty$ 'skip$
+        { bbl.eidpp numpages tie.or.space.prefix
+          "numpages" bibinfo.check * *
+          " (" swap$ * ")" * *
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+  duplicate$ empty$ 'skip$
+    {
+      "volume" bibinfo.check
+    }
+  if$
+  bolden
+  number "number" bibinfo.check duplicate$ empty$ 'skip$
+    {
+      swap$ duplicate$ empty$
+        { "there's a number but no volume in " cite$ * warning$ }
+        'skip$
+      if$
+      swap$
+      "(" swap$ * ")" *
+    }
+  if$ *
+  eid empty$
+    { format.journal.pages }
+    { format.journal.eid }
+  if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+        { bbl.chapter }
+        { type "l" change.case$
+          "type" bibinfo.check
+        }
+      if$
+      chapter tie.or.space.prefix
+      "chapter" bibinfo.check
+      * *
+      pages empty$
+        'skip$
+        { ", " * format.pages * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.booktitle}
+{
+  booktitle "booktitle" bibinfo.check
+  emphasize
+}
+FUNCTION {format.in.ed.booktitle}
+{ format.booktitle duplicate$ empty$ 'skip$
+    {
+      editor "editor" format.names.ed duplicate$ empty$ 'pop$
+        {
+          " " *
+          get.bbl.editor
+          "(" swap$ * "), " *
+          * swap$
+          * }
+      if$
+      word.in swap$ *
+    }
+  if$
+}
+FUNCTION {format.thesis.type}
+{ type duplicate$ empty$
+    'pop$
+    { swap$ pop$
+      "t" change.case$ "type" bibinfo.check
+    }
+  if$
+}
+FUNCTION {format.tr.number}
+{ number "number" bibinfo.check
+  type duplicate$ empty$
+    { pop$ bbl.techrep }
+    'skip$
+  if$
+  "type" bibinfo.check
+  swap$ duplicate$ empty$
+    { pop$ "t" change.case$ }
+    { tie.or.space.prefix * * }
+  if$
+}
+FUNCTION {format.article.crossref}
+{
+  word.in
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.book.crossref}
+{ volume duplicate$ empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      pop$ word.in
+    }
+    { bbl.volume
+      capitalize
+      swap$ tie.or.space.prefix "volume" bibinfo.check * * bbl.of space.word *
+    }
+  if$
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.incoll.inproc.crossref}
+{
+  word.in
+  " \cite{" * crossref * "}" *
+}
+FUNCTION {format.org.or.pub}
+{ 't :=
+  ""
+  address empty$ t empty$ and
+    'skip$
+    {
+      t empty$
+        { address "address" bibinfo.check *
+        }
+        { t *
+          address empty$
+            'skip$
+            { ", " * address "address" bibinfo.check * }
+          if$
+        }
+      if$
+    }
+  if$
+}
+FUNCTION {format.publisher.address}
+{ publisher "publisher" bibinfo.warn format.org.or.pub
+}
+
+FUNCTION {format.organization.address}
+{ organization "organization" bibinfo.check format.org.or.pub
+}
+
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    {
+      journal
+      "journal" bibinfo.check
+      emphasize
+      "journal" output.check
+      format.vol.num.pages output
+    }
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  format.issn output
+  format.doi output
+  new.block
+  format.note output
+  format.eprint output
+  format.url output
+  fin.entry
+}
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+      editor format.key output
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      new.block
+      format.number.series output
+      format.edition output
+      new.sentence
+      format.publisher.address output
+    }
+    {
+      new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.isbn output
+  format.doi output
+  new.block
+  format.note output
+  format.eprint output
+  format.url output
+  fin.entry
+}
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  new.block
+  howpublished "howpublished" bibinfo.check output
+  address "address" bibinfo.check output
+  format.isbn output
+  format.doi output
+  new.block
+  format.note output
+  format.eprint output
+  format.url output
+  fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check
+      editor format.key output
+    }
+    { format.authors output.nonnull
+      crossref missing$
+        { "author and editor" editor either.or.check }
+        'skip$
+      if$
+    }
+  if$
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  crossref missing$
+    {
+      format.bvolume output
+      format.chapter.pages "chapter and pages" output.check
+      new.block
+      format.number.series output
+      format.edition output
+      new.sentence
+      format.publisher.address output
+    }
+    {
+      format.chapter.pages "chapter and pages" output.check
+      new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  crossref missing$
+    { format.isbn output }
+    'skip$
+  if$
+  format.doi output
+  new.block
+  format.note output
+  format.eprint output
+  format.url output
+  fin.entry
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      format.edition output
+      format.chapter.pages output
+      new.sentence
+      format.publisher.address output
+      format.isbn output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  format.doi output
+  new.block
+  format.note output
+  format.eprint output
+  format.url output
+  fin.entry
+}
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      format.pages output
+      new.sentence
+      publisher empty$
+        { format.organization.address output }
+        { organization "organization" bibinfo.check output
+          format.publisher.address output
+        }
+      if$
+      format.isbn output
+      format.issn output
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  format.doi output
+  new.block
+  format.note output
+  format.eprint output
+  format.url output
+  fin.entry
+}
+FUNCTION {conference} { inproceedings }
+FUNCTION {manual}
+{ output.bibitem
+  format.authors output
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  organization address new.block.checkb
+  organization "organization" bibinfo.check output
+  address "address" bibinfo.check output
+  format.edition output
+  format.doi output
+  new.block
+  format.note output
+  format.eprint output
+  format.url output
+  fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.btitle
+  "title" output.check
+  new.block
+  bbl.mthesis format.thesis.type output.nonnull
+  school "school" bibinfo.warn output
+  address "address" bibinfo.check output
+  format.doi output
+  new.block
+  format.note output
+  format.eprint output
+  format.url output
+  fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title output
+  new.block
+  howpublished "howpublished" bibinfo.check output
+  format.doi output
+  new.block
+  format.note output
+  format.eprint output
+  format.url output
+  fin.entry
+}
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.btitle
+  "title" output.check
+  new.block
+  bbl.phdthesis format.thesis.type output.nonnull
+  school "school" bibinfo.warn output
+  address "address" bibinfo.check output
+  format.doi output
+  new.block
+  format.note output
+  format.eprint output
+  format.url output
+  fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  format.editors output
+  editor format.key output
+  format.date "year" output.check
+  date.block
+  format.btitle "title" output.check
+  format.bvolume output
+  format.number.series output
+  new.sentence
+  publisher empty$
+    { format.organization.address output }
+    { organization "organization" bibinfo.check output
+      format.publisher.address output
+    }
+  if$
+  format.isbn output
+  format.issn output
+  format.doi output
+  new.block
+  format.note output
+  format.eprint output
+  format.url output
+  fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title
+  "title" output.check
+  new.block
+  format.tr.number emphasize output.nonnull
+  institution "institution" bibinfo.warn output
+  address "address" bibinfo.check output
+  format.doi output
+  new.block
+  format.note output
+  format.eprint output
+  format.url output
+  fin.entry
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  author format.key output
+  format.date "year" output.check
+  date.block
+  format.title "title" output.check
+  format.doi output
+  new.block
+  format.note "note" output.check
+  format.eprint output
+  format.url output
+  fin.entry
+}
+
+FUNCTION {default.type} { misc }
+READ
+FUNCTION {sortify}
+{ purify$
+  "l" change.case$
+}
+INTEGERS { len }
+FUNCTION {chop.word}
+{ 's :=
+  'len :=
+  s #1 len substring$ =
+    { s len #1 + global.max$ substring$ }
+    's
+  if$
+}
+FUNCTION {format.lab.names}
+{ 's :=
+  "" 't :=
+  s #1 "{vv~}{ll}" format.name$
+  s num.names$ duplicate$
+  #2 >
+    { pop$
+      " " * bbl.etal emphasize *
+    }
+    { #2 <
+        'skip$
+        { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+            {
+              " " * bbl.etal emphasize *
+            }
+            { bbl.and space.word * s #2 "{vv~}{ll}" format.name$
+              * }
+          if$
+        }
+      if$
+    }
+  if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+    { key empty$
+        { cite$ #1 #3 substring$ }
+        'key
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { cite$ #1 #3 substring$ }
+            'key
+          if$
+        }
+        { editor format.lab.names }
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {editor.key.label}
+{ editor empty$
+    { key empty$
+        { cite$ #1 #3 substring$ }
+        'key
+      if$
+    }
+    { editor format.lab.names }
+  if$
+}
+
+FUNCTION {calc.short.authors}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.key.label
+    { type$ "proceedings" =
+        'editor.key.label
+        'author.key.label
+      if$
+    }
+  if$
+  'short.list :=
+}
+
+FUNCTION {calc.label}
+{ calc.short.authors
+  short.list
+  "("
+  *
+  year duplicate$ empty$
+  short.list key field.or.null = or
+     { pop$ "" }
+     'skip$
+  if$
+  *
+  'label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+  #1 'nameptr :=
+  ""
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr
+      "{vv{ } }{ll{ }}{  f{ }}{  jj{ }}"
+      format.name$ 't :=
+      nameptr #1 >
+        {
+          "   "  *
+          namesleft #1 = t "others" = and
+            { "zzzzz" * }
+            { t sortify * }
+          if$
+        }
+        { t sortify * }
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+  "A " #2
+    "An " #3
+      "The " #4 t chop.word
+    chop.word
+  chop.word
+  sortify
+  #1 global.max$ substring$
+}
+FUNCTION {author.sort}
+{ author empty$
+    { key empty$
+        { "to sort, need author or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+FUNCTION {author.editor.sort}
+{ author empty$
+    { editor empty$
+        { key empty$
+            { "to sort, need author, editor, or key in " cite$ * warning$
+              ""
+            }
+            { key sortify }
+          if$
+        }
+        { editor sort.format.names }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+FUNCTION {editor.sort}
+{ editor empty$
+    { key empty$
+        { "to sort, need editor or key in " cite$ * warning$
+          ""
+        }
+        { key sortify }
+      if$
+    }
+    { editor sort.format.names }
+  if$
+}
+FUNCTION {presort}
+{ calc.label
+  label sortify
+  "    "
+  *
+  type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.sort
+    { type$ "proceedings" =
+        'editor.sort
+        'author.sort
+      if$
+    }
+  if$
+  #1 entry.max$ substring$
+  'sort.label :=
+  sort.label
+  *
+  "    "
+  *
+  title field.or.null
+  sort.format.title
+  *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+
+ITERATE {presort}
+SORT
+STRINGS { last.label next.extra }
+INTEGERS { last.extra.num number.label }
+FUNCTION {initialize.extra.label.stuff}
+{ #0 int.to.chr$ 'last.label :=
+  "" 'next.extra :=
+  #0 'last.extra.num :=
+  #0 'number.label :=
+}
+FUNCTION {forward.pass}
+{ last.label label =
+    { last.extra.num #1 + 'last.extra.num :=
+      last.extra.num int.to.chr$ 'extra.label :=
+    }
+    { "a" chr.to.int$ 'last.extra.num :=
+      "" 'extra.label :=
+      label 'last.label :=
+    }
+  if$
+  number.label #1 + 'number.label :=
+}
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+    { "a" 'extra.label := }
+    'skip$
+  if$
+  extra.label 'next.extra :=
+  extra.label
+  duplicate$ empty$
+    'skip$
+    { "{\natexlab{" swap$ * "}}" * }
+  if$
+  'extra.label :=
+  label extra.label * 'label :=
+}
+EXECUTE {initialize.extra.label.stuff}
+ITERATE {forward.pass}
+REVERSE {reverse.pass}
+FUNCTION {bib.sort.order}
+{ sort.label
+  "    "
+  *
+  year field.or.null sortify
+  *
+  "    "
+  *
+  title field.or.null
+  sort.format.title
+  *
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+ITERATE {bib.sort.order}
+SORT
+FUNCTION {begin.bib}
+{ preamble$ empty$
+    'skip$
+    { preamble$ write$ newline$ }
+  if$
+  "\begin{thebibliography}{" number.label int.to.str$ * "}" *
+  write$ newline$
+  "\newcommand{\enquote}[1]{``#1''}"
+  write$ newline$
+  "\providecommand{\natexlab}[1]{#1}"
+  write$ newline$
+  "\providecommand{\url}[1]{\texttt{#1}}"
+  write$ newline$
+  "\providecommand{\urlprefix}{URL }"
+  write$ newline$
+  "\expandafter\ifx\csname urlstyle\endcsname\relax"
+  write$ newline$
+  "  \providecommand{\doi}[1]{doi:\discretionary{}{}{}#1}\else"
+  write$ newline$
+  "  \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
+  write$ newline$
+  "\providecommand{\eprint}[2][]{\url{#2}}"
+  write$ newline$
+}
+EXECUTE {begin.bib}
+EXECUTE {init.state.consts}
+ITERATE {call.type$}
+FUNCTION {end.bib}
+{ newline$
+  "\end{thebibliography}" write$ newline$
+}
+EXECUTE {end.bib}
+%% End of customized bst file
+%%
+%% End of file `jss.bst'.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/ts1aer.fd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/ts1aer.fd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/ts1aer.fd	(revision 2476)
@@ -0,0 +1,19 @@
+\ProvidesFile{ts1aer.fd}
+\DeclareFontFamily{TS1}{aer}{\skewchar\m@ne }
+\DeclareFontShape{TS1}{aer}{m}{n}%
+   {<->ssub*cmr/m/n}{}
+\DeclareFontShape{TS1}{aer}{m}{it}%
+   {<->ssub*cmr/m/it}{}
+\DeclareFontShape{TS1}{aer}{m}{sl}%
+   {<->ssub*cmr/m/sl}{}
+\DeclareFontShape{TS1}{aer}{bx}{n}%
+   {<->ssub*cmr/bx/n}{}
+\DeclareFontShape{TS1}{aer}{bx}{it}%
+   {<->ssub*cmr/bx/it}{}
+\DeclareFontShape{TS1}{aer}{bx}{sl}%
+   {<->ssub*cmr/bx/sl}{}
+\DeclareFontShape{TS1}{aer}{m}{ui}%
+   {<->ssub*cmr/m/ui}{}
+\endinput
+%%
+%% End of file `ts1aer.fd'.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/Sweave.sty
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/Sweave.sty	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/Sweave.sty	(revision 2476)
@@ -0,0 +1,53 @@
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{Sweave}{}
+
+\RequirePackage{ifthen}
+\newboolean{Sweave@gin}
+\setboolean{Sweave@gin}{true}
+\newboolean{Sweave@ae}
+\setboolean{Sweave@ae}{true}
+\newboolean{Sweave@inconsolata}
+\setboolean{Sweave@inconsolata}{false}
+
+\DeclareOption{nogin}{\setboolean{Sweave@gin}{false}}
+\DeclareOption{noae}{\setboolean{Sweave@ae}{false}}
+\DeclareOption{inconsolata}{\setboolean{Sweave@ae}{false}\setboolean{Sweave@inconsolata}{true}}
+\ProcessOptions
+
+\RequirePackage{graphicx,fancyvrb,textcomp}
+%% inspired by an earlier version of upquote.sty
+\begingroup
+\catcode`'=\active \catcode``=\active
+\g@addto@macro\@noligs{\let`\textasciigrave \let'\textquotesingle}
+\endgroup
+
+\ifthenelse{\boolean{Sweave@gin}}{\setkeys{Gin}{width=0.8\textwidth}}{}%
+\ifthenelse{\boolean{Sweave@ae}}{%
+  \RequirePackage[T1]{fontenc}
+  \RequirePackage{ae}
+}{}%
+%% see comment in Rd.sty
+\ifthenelse{\boolean{Sweave@inconsolata}}{%
+ \IfFileExists{zi4.sty}{\usepackage[noupquote]{zi4}}{\usepackage{inconsolata}}}{}
+
+\DefineVerbatimEnvironment{Sinput}{Verbatim}{fontshape=sl}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}{}
+\DefineVerbatimEnvironment{Scode}{Verbatim}{fontshape=sl}
+
+\ifdefined\Schunk%
+  \message{\string Environment Schunk is already defined, stay with former definition}%
+\else
+  \newenvironment{Schunk}{}{}%
+\fi
+
+\newcommand{\Sconcordance}[1]{%
+  \ifx\pdfoutput\undefined%
+  \csname newcount\endcsname\pdfoutput\fi%
+  \ifcase\pdfoutput\special{#1}%
+  \else%
+   \begingroup%
+     \pdfcompresslevel=0%
+     \immediate\pdfobj stream{#1}%
+     \pdfcatalog{/SweaveConcordance \the\pdflastobj\space 0 R}%
+   \endgroup%
+  \fi}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/ts1aett.fd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/ts1aett.fd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/ts1aett.fd	(revision 2476)
@@ -0,0 +1,11 @@
+\ProvidesFile{ts1aett.fd}
+\DeclareFontFamily{TS1}{aett}{\skewchar\m@ne }
+\DeclareFontShape{TS1}{aett}{m}{n}%
+   {<->ssub*cmtt/m/n}{}
+\DeclareFontShape{TS1}{aett}{m}{it}%
+   {<->ssub*cmtt/m/it}{}
+\DeclareFontShape{TS1}{aett}{m}{sl}%
+   {<->ssub*cmtt/m/sl}{}
+\endinput
+%%
+%% End of file `ts1aett.fd'.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/omsaer.fd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/omsaer.fd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/omsaer.fd	(revision 2476)
@@ -0,0 +1,24 @@
+%%
+%% This is file `omsaer.fd',
+%% 
+\ProvidesFile{omsaer.fd}[1999/12/27]
+\DeclareFontFamily{OMS}{aer}{\skewchar\font48 }
+\DeclareFontShape{OMS}{aer}{m}{n}%
+   {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{aer}{m}{it}%
+   {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{aer}{m}{sl}%
+   {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{aer}{m}{sc}%
+   {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{aer}{bx}{n}%
+   {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{aer}{bx}{it}%
+   {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{aer}{bx}{sl}%
+   {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{aer}{bx}{sc}%
+   {<->ssub*cmsy/b/n}{}
+\endinput
+%%
+%% End of file `omsaer.fd'.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/omscmtt.fd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/omscmtt.fd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/omscmtt.fd	(revision 2476)
@@ -0,0 +1,21 @@
+\ProvidesFile{omscmtt.fd}
+\DeclareFontFamily{OMS}{cmtt}{\skewchar\font48 }
+\DeclareFontShape{OMS}{cmtt}{m}{n}%
+   {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{m}{it}%
+   {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{m}{sl}%
+   {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{m}{sc}%
+   {<->ssub*cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{n}%
+   {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{it}%
+   {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{sl}%
+   {<->ssub*cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmtt}{bx}{sc}%
+   {<->ssub*cmsy/b/n}{}
+\endinput
+%%
+%% End of file `omscmtt.fd'.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/jss.cls
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/jss.cls	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/jss.cls	(revision 2476)
@@ -0,0 +1,487 @@
+%%
+%% This is file `jss.cls',
+\def\fileversion{2.3}
+\def\filename{jss}
+\def\filedate{2013/09/05}
+%%
+%% Package `jss' to use with LaTeX2e for JSS publications (http://www.jstatsoft.org/)
+%% License: GPL-2 | GPL-3
+%% Copyright: (C) Achim Zeileis
+%% Please report errors to Achim.Zeileis@R-project.org
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesClass{jss}[\filedate\space\fileversion\space jss class by Achim Zeileis]
+%% options
+\newif\if@article
+\newif\if@codesnippet
+\newif\if@bookreview
+\newif\if@softwarereview
+\newif\if@review
+\newif\if@shortnames
+\newif\if@nojss
+\newif\if@notitle
+\newif\if@noheadings
+\newif\if@nofooter
+
+\@articletrue
+\@codesnippetfalse
+\@bookreviewfalse
+\@softwarereviewfalse
+\@reviewfalse
+\@shortnamesfalse
+\@nojssfalse
+\@notitlefalse
+\@noheadingsfalse
+\@nofooterfalse
+
+\DeclareOption{article}{\@articletrue%
+  \@codesnippetfalse \@bookreviewfalse \@softwarereviewfalse}
+\DeclareOption{codesnippet}{\@articlefalse%
+  \@codesnippettrue \@bookreviewfalse \@softwarereviewfalse}
+\DeclareOption{bookreview}{\@articlefalse%
+  \@codesnippetfalse \@bookreviewtrue \@softwarereviewfalse}
+\DeclareOption{softwarereview}{\@articlefalse%
+  \@codesnippetfalse \@bookreviewfalse \@softwarereviewtrue}
+\DeclareOption{shortnames}{\@shortnamestrue}
+\DeclareOption{nojss}{\@nojsstrue}
+\DeclareOption{notitle}{\@notitletrue}
+\DeclareOption{noheadings}{\@noheadingstrue}
+\DeclareOption{nofooter}{\@nofootertrue}
+
+\ProcessOptions
+\LoadClass[11pt,a4paper,twoside]{article}
+%% required packages
+\RequirePackage{graphicx,color,ae,fancyvrb}
+\RequirePackage[T1]{fontenc}
+\IfFileExists{upquote.sty}{\RequirePackage{upquote}}{}
+%% bibliography
+\if@shortnames
+  \usepackage[authoryear,round]{natbib}
+\else
+  \usepackage[authoryear,round,longnamesfirst]{natbib}
+\fi
+\bibpunct{(}{)}{;}{a}{}{,}
+\bibliographystyle{jss}
+%% page layout
+\topmargin 0pt
+\textheight 46\baselineskip
+\advance\textheight by \topskip
+\oddsidemargin 0.1in
+\evensidemargin 0.15in
+\marginparwidth 1in
+\oddsidemargin 0.125in
+\evensidemargin 0.125in
+\marginparwidth 0.75in
+\textwidth 6.125in
+%% paragraphs
+\setlength{\parskip}{0.7ex plus0.1ex minus0.1ex}
+\setlength{\parindent}{0em}
+%% for all publications
+\newcommand{\Address}[1]{\def\@Address{#1}}
+\newcommand{\Plaintitle}[1]{\def\@Plaintitle{#1}}
+\newcommand{\Shorttitle}[1]{\def\@Shorttitle{#1}}
+\newcommand{\Plainauthor}[1]{\def\@Plainauthor{#1}}
+\newcommand{\Volume}[1]{\def\@Volume{#1}}
+\newcommand{\Year}[1]{\def\@Year{#1}}
+\newcommand{\Month}[1]{\def\@Month{#1}}
+\newcommand{\Issue}[1]{\def\@Issue{#1}}
+\newcommand{\Submitdate}[1]{\def\@Submitdate{#1}}
+%% for articles and code snippets
+\newcommand{\Acceptdate}[1]{\def\@Acceptdate{#1}}
+\newcommand{\Abstract}[1]{\def\@Abstract{#1}}
+\newcommand{\Keywords}[1]{\def\@Keywords{#1}}
+\newcommand{\Plainkeywords}[1]{\def\@Plainkeywords{#1}}
+%% for book and software reviews
+\newcommand{\Reviewer}[1]{\def\@Reviewer{#1}}
+\newcommand{\Booktitle}[1]{\def\@Booktitle{#1}}
+\newcommand{\Bookauthor}[1]{\def\@Bookauthor{#1}}
+\newcommand{\Publisher}[1]{\def\@Publisher{#1}}
+\newcommand{\Pubaddress}[1]{\def\@Pubaddress{#1}}
+\newcommand{\Pubyear}[1]{\def\@Pubyear{#1}}
+\newcommand{\ISBN}[1]{\def\@ISBN{#1}}
+\newcommand{\Pages}[1]{\def\@Pages{#1}}
+\newcommand{\Price}[1]{\def\@Price{#1}}
+\newcommand{\Plainreviewer}[1]{\def\@Plainreviewer{#1}}
+\newcommand{\Softwaretitle}[1]{\def\@Softwaretitle{#1}}
+\newcommand{\URL}[1]{\def\@URL{#1}}
+%% for internal use
+\newcommand{\Seriesname}[1]{\def\@Seriesname{#1}}
+\newcommand{\Hypersubject}[1]{\def\@Hypersubject{#1}}
+\newcommand{\Hyperauthor}[1]{\def\@Hyperauthor{#1}}
+\newcommand{\Footername}[1]{\def\@Footername{#1}}
+\newcommand{\Firstdate}[1]{\def\@Firstdate{#1}}
+\newcommand{\Seconddate}[1]{\def\@Seconddate{#1}}
+\newcommand{\Reviewauthor}[1]{\def\@Reviewauthor{#1}}
+%% defaults
+\author{Firstname Lastname\\Affiliation}
+\title{Title}
+\Abstract{---!!!---an abstract is required---!!!---}
+\Plainauthor{\@author}
+\Volume{VV}
+\Year{YYYY}
+\Month{MMMMMM}
+\Issue{II}
+\Submitdate{yyyy-mm-dd}
+\Acceptdate{yyyy-mm-dd}
+\Address{
+  Firstname Lastname\\
+  Affiliation\\
+  Address, Country\\
+  E-mail: \email{name@address}\\
+  URL: \url{http://link/to/webpage/}
+}
+
+\Reviewer{Firstname Lastname\\Affiliation}
+\Plainreviewer{Firstname Lastname}
+\Booktitle{Book Title}
+\Bookauthor{Book Author}
+\Publisher{Publisher}
+\Pubaddress{Publisher's Address}
+\Pubyear{YYY}
+\ISBN{x-xxxxx-xxx-x}
+\Pages{xv + 123}
+\Price{USD 69.95 (P)}
+\URL{http://link/to/webpage/}
+\if@article
+  \Seriesname{Issue}
+  \Hypersubject{Journal of Statistical Software}
+  \Plaintitle{\@title}
+  \Shorttitle{\@title}
+  \Plainkeywords{\@Keywords}
+\fi
+
+\if@codesnippet
+  \Seriesname{Code Snippet}
+  \Hypersubject{Journal of Statistical Software -- Code Snippets}
+  \Plaintitle{\@title}
+  \Shorttitle{\@title}
+  \Plainkeywords{\@Keywords}
+\fi
+
+\if@bookreview
+  \Seriesname{Book Review}
+  \Hypersubject{Journal of Statistical Software -- Book Reviews}
+  \Plaintitle{\@Booktitle}
+  \Shorttitle{\@Booktitle}
+  \Reviewauthor{\@Bookauthor\\
+                \@Publisher, \@Pubaddress, \@Pubyear.\\
+                ISBN~\@ISBN. \@Pages~pp. \@Price.\\
+                \url{\@URL}}
+  \Plainkeywords{}
+  \@reviewtrue
+\fi
+
+\if@softwarereview
+  \Seriesname{Software Review}
+  \Hypersubject{Journal of Statistical Software -- Software Reviews}
+  \Plaintitle{\@Softwaretitle}
+  \Shorttitle{\@Softwaretitle}
+  \Booktitle{\@Softwaretitle}
+  \Reviewauthor{\@Publisher, \@Pubaddress. \@Price.\\
+                \url{\@URL}}
+  \Plainkeywords{}
+  \@reviewtrue
+\fi
+
+\if@review
+  \Hyperauthor{\@Plainreviewer}
+  \Keywords{}
+  \Footername{Reviewer}
+  \Firstdate{\textit{Published:} \@Submitdate}
+  \Seconddate{}
+\else
+  \Hyperauthor{\@Plainauthor}
+  \Keywords{---!!!---at least one keyword is required---!!!---}
+  \Footername{Affiliation}
+  \Firstdate{\textit{Submitted:} \@Submitdate}
+  \Seconddate{\textit{Accepted:} \@Acceptdate}
+\fi
+%% Sweave(-like)
+\DefineVerbatimEnvironment{Sinput}{Verbatim}{fontshape=sl}
+\DefineVerbatimEnvironment{Soutput}{Verbatim}{}
+\DefineVerbatimEnvironment{Scode}{Verbatim}{fontshape=sl}
+\newenvironment{Schunk}{}{}
+\DefineVerbatimEnvironment{Code}{Verbatim}{}
+\DefineVerbatimEnvironment{CodeInput}{Verbatim}{fontshape=sl}
+\DefineVerbatimEnvironment{CodeOutput}{Verbatim}{}
+\newenvironment{CodeChunk}{}{}
+\setkeys{Gin}{width=0.8\textwidth}
+%% footer
+\newlength{\footerskip}
+\setlength{\footerskip}{2.5\baselineskip plus 2ex minus 0.5ex}
+
+\newcommand{\makefooter}{%
+  \vspace{\footerskip}
+
+  \if@nojss
+    \begin{samepage}
+    \textbf{\large \@Footername: \nopagebreak}\\[.3\baselineskip] \nopagebreak
+    \@Address \nopagebreak
+    \end{samepage}
+  \else
+    \begin{samepage}
+    \textbf{\large \@Footername: \nopagebreak}\\[.3\baselineskip] \nopagebreak
+    \@Address \nopagebreak
+    \vfill
+    \hrule \nopagebreak
+    \vspace{.1\baselineskip}
+    {\fontfamily{pzc} \fontsize{13}{15} \selectfont Journal of Statistical Software}
+    \hfill
+    \url{http://www.jstatsoft.org/}\\ \nopagebreak
+    published by the American Statistical Association
+    \hfill
+    \url{http://www.amstat.org/}\\[.3\baselineskip] \nopagebreak
+    {Volume~\@Volume, \@Seriesname~\@Issue}
+    \hfill
+    \@Firstdate\\ \nopagebreak
+    {\@Month{} \@Year}
+    \hfill
+    \@Seconddate  \nopagebreak
+    \vspace{.3\baselineskip}
+    \hrule
+    \end{samepage}
+  \fi
+}
+\if@nofooter
+  %% \AtEndDocument{\makefooter}
+\else
+  \AtEndDocument{\makefooter}
+\fi
+%% required packages
+\RequirePackage{hyperref}
+%% new \maketitle
+\def\@myoddhead{
+  {\color{white} JSS}\\[-1.42cm]
+  \hspace{-2em} \includegraphics[height=23mm,keepaspectratio]{jsslogo} \hfill
+  \parbox[b][23mm]{118mm}{\hrule height 3pt
+   \center{
+   {\fontfamily{pzc} \fontsize{28}{32} \selectfont Journal of Statistical Software}
+   \vfill
+   {\it \small \@Month{} \@Year, Volume~\@Volume, \@Seriesname~\@Issue.%
+            \hfill \href{http://www.jstatsoft.org/}{http://www.jstatsoft.org/}}}\\[0.1cm]
+     \hrule height 3pt}}
+\if@review
+  \renewcommand{\maketitle}{
+  \if@nojss
+    %% \@oddhead{\@myoddhead}\\[3\baselineskip]
+  \else
+    \@oddhead{\@myoddhead}\\[3\baselineskip]
+  \fi
+    {\large
+    \noindent
+    Reviewer: \@Reviewer
+    \vspace{\baselineskip}
+    \hrule
+    \vspace{\baselineskip}
+    \textbf{\@Booktitle}
+    \begin{quotation} \noindent
+    \@Reviewauthor
+    \end{quotation}
+    \vspace{0.7\baselineskip}
+    \hrule
+    \vspace{1.3\baselineskip}
+    }
+
+    \thispagestyle{empty}
+    \if@nojss
+      \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hyperauthor}}
+    \else
+      \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hypersubject}}
+    \fi
+    \pagestyle{myheadings}
+  }
+\else
+  \def\maketitle{
+  \if@nojss
+    %% \@oddhead{\@myoddhead} \par
+  \else
+    \@oddhead{\@myoddhead} \par
+  \fi
+   \begingroup
+     \def\thefootnote{\fnsymbol{footnote}}
+     \def\@makefnmark{\hbox to 0pt{$^{\@thefnmark}$\hss}}
+     \long\def\@makefntext##1{\parindent 1em\noindent
+                              \hbox to1.8em{\hss $\m@th ^{\@thefnmark}$}##1}
+     \@maketitle \@thanks
+   \endgroup
+   \setcounter{footnote}{0}
+
+   \if@noheadings
+    %% \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hypersubject}}
+    \else
+     \thispagestyle{empty}
+      \if@nojss
+        \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hyperauthor}}
+      \else
+        \markboth{\centerline{\@Shorttitle}}{\centerline{\@Hypersubject}}
+      \fi
+     \pagestyle{myheadings}
+   \fi
+
+   \let\maketitle\relax \let\@maketitle\relax
+   \gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax
+  }
+
+  \def\@maketitle{\vbox{\hsize\textwidth \linewidth\hsize
+  \if@nojss
+    %% \vskip 1in
+  \else
+    \vskip 1in
+  \fi
+   {\centering
+   {\LARGE\bf \@title\par}
+   \vskip 0.2in plus 1fil minus 0.1in
+   {
+       \def\and{\unskip\enspace{\rm and}\enspace}%
+       \def\And{\end{tabular}\hss \egroup \hskip 1in plus 2fil
+          \hbox to 0pt\bgroup\hss \begin{tabular}[t]{c}\large\bf\rule{\z@}{24pt}\ignorespaces}%
+       \def\AND{\end{tabular}\hss\egroup \hfil\hfil\egroup
+          \vskip 0.1in plus 1fil minus 0.05in
+          \hbox to \linewidth\bgroup\rule{\z@}{10pt} \hfil\hfil
+          \hbox to 0pt\bgroup\hss \begin{tabular}[t]{c}\large\bf\rule{\z@}{24pt}\ignorespaces}
+       \hbox to \linewidth\bgroup\rule{\z@}{10pt} \hfil\hfil
+       \hbox to 0pt\bgroup\hss \begin{tabular}[t]{c}\large\bf\rule{\z@}{24pt}\@author
+       \end{tabular}\hss\egroup
+   \hfil\hfil\egroup}
+   \vskip 0.3in minus 0.1in
+   \hrule
+   \begin{abstract}
+   \@Abstract
+   \end{abstract}}
+   \textit{Keywords}:~\@Keywords.
+   \vskip 0.1in minus 0.05in
+   \hrule
+   \vskip 0.2in minus 0.1in
+  }}
+\fi
+%% sections, subsections, and subsubsections
+\newlength{\preXLskip}
+\newlength{\preLskip}
+\newlength{\preMskip}
+\newlength{\preSskip}
+\newlength{\postMskip}
+\newlength{\postSskip}
+\setlength{\preXLskip}{1.8\baselineskip plus 0.5ex minus 0ex}
+\setlength{\preLskip}{1.5\baselineskip plus 0.3ex minus 0ex}
+\setlength{\preMskip}{1\baselineskip plus 0.2ex minus 0ex}
+\setlength{\preSskip}{.8\baselineskip plus 0.2ex minus 0ex}
+\setlength{\postMskip}{.5\baselineskip plus 0ex minus 0.1ex}
+\setlength{\postSskip}{.3\baselineskip plus 0ex minus 0.1ex}
+
+\newcommand{\jsssec}[2][default]{\vskip \preXLskip%
+  \pdfbookmark[1]{#1}{Section.\thesection.#1}%
+  \refstepcounter{section}%
+  \centerline{\textbf{\Large \thesection. #2}} \nopagebreak
+  \vskip \postMskip \nopagebreak}
+\newcommand{\jsssecnn}[1]{\vskip \preXLskip%
+  \centerline{\textbf{\Large #1}} \nopagebreak
+  \vskip \postMskip \nopagebreak}
+
+\newcommand{\jsssubsec}[2][default]{\vskip \preMskip%
+  \pdfbookmark[2]{#1}{Subsection.\thesubsection.#1}%
+  \refstepcounter{subsection}%
+  \textbf{\large \thesubsection. #2} \nopagebreak
+  \vskip \postSskip \nopagebreak}
+\newcommand{\jsssubsecnn}[1]{\vskip \preMskip%
+  \textbf{\large #1} \nopagebreak
+  \vskip \postSskip \nopagebreak}
+
+\newcommand{\jsssubsubsec}[2][default]{\vskip \preSskip%
+  \pdfbookmark[3]{#1}{Subsubsection.\thesubsubsection.#1}%
+  \refstepcounter{subsubsection}%
+  {\large \textit{#2}} \nopagebreak
+  \vskip \postSskip \nopagebreak}
+\newcommand{\jsssubsubsecnn}[1]{\vskip \preSskip%
+  {\textit{\large #1}} \nopagebreak
+  \vskip \postSskip \nopagebreak}
+
+\newcommand{\jsssimplesec}[2][default]{\vskip \preLskip%
+%%  \pdfbookmark[1]{#1}{Section.\thesection.#1}%
+  \refstepcounter{section}%
+  \textbf{\large #1} \nopagebreak
+  \vskip \postSskip \nopagebreak}
+\newcommand{\jsssimplesecnn}[1]{\vskip \preLskip%
+  \textbf{\large #1} \nopagebreak
+  \vskip \postSskip \nopagebreak}
+
+\if@review
+  \renewcommand{\section}{\secdef \jsssimplesec \jsssimplesecnn}
+  \renewcommand{\subsection}{\secdef \jsssimplesec \jsssimplesecnn}
+  \renewcommand{\subsubsection}{\secdef \jsssimplesec \jsssimplesecnn}
+\else
+  \renewcommand{\section}{\secdef \jsssec \jsssecnn}
+  \renewcommand{\subsection}{\secdef \jsssubsec \jsssubsecnn}
+  \renewcommand{\subsubsection}{\secdef \jsssubsubsec \jsssubsubsecnn}
+\fi
+%% colors
+\definecolor{Red}{rgb}{0.5,0,0}
+\definecolor{Blue}{rgb}{0,0,0.5}
+\if@review
+  \hypersetup{%
+    hyperindex = {true},
+    colorlinks = {true},
+    linktocpage = {true},
+    plainpages = {false},
+    linkcolor = {Blue},
+    citecolor = {Blue},
+    urlcolor = {Red},
+    pdfstartview = {Fit},
+    pdfpagemode = {None},
+    pdfview = {XYZ null null null}
+  }
+\else
+  \hypersetup{%
+    hyperindex = {true},
+    colorlinks = {true},
+    linktocpage = {true},
+    plainpages = {false},
+    linkcolor = {Blue},
+    citecolor = {Blue},
+    urlcolor = {Red},
+    pdfstartview = {Fit},
+    pdfpagemode = {UseOutlines},
+    pdfview = {XYZ null null null}
+  }
+\fi
+\if@nojss
+  \AtBeginDocument{
+    \hypersetup{%
+      pdfauthor = {\@Hyperauthor},
+      pdftitle = {\@Plaintitle},
+      pdfkeywords = {\@Plainkeywords}
+    }
+  }
+\else
+  \AtBeginDocument{
+    \hypersetup{%
+      pdfauthor = {\@Hyperauthor},
+      pdftitle = {\@Plaintitle},
+      pdfsubject = {\@Hypersubject},
+      pdfkeywords = {\@Plainkeywords}
+    }
+  }
+\fi
+\if@notitle
+  %% \AtBeginDocument{\maketitle}
+\else
+  \AtBeginDocument{\maketitle}
+\fi
+%% commands
+\newcommand\code{\bgroup\@makeother\_\@makeother\~\@makeother\$\@codex}
+\def\@codex#1{{\normalfont\ttfamily\hyphenchar\font=-1 #1}\egroup}
+%%\let\code=\texttt
+\let\proglang=\textsf
+\newcommand{\pkg}[1]{{\fontseries{b}\selectfont #1}}
+\newcommand{\email}[1]{\href{mailto:#1}{\normalfont\texttt{#1}}}
+\ifx\csname urlstyle\endcsname\relax
+  \newcommand\@doi[1]{doi:\discretionary{}{}{}#1}\else
+  \newcommand\@doi{doi:\discretionary{}{}{}\begingroup
+\urlstyle{tt}\Url}\fi
+\newcommand{\doi}[1]{\href{http://dx.doi.org/#1}{\normalfont\texttt{\@doi{#1}}}}
+\newcommand{\E}{\mathsf{E}}
+\newcommand{\VAR}{\mathsf{VAR}}
+\newcommand{\COV}{\mathsf{COV}}
+\newcommand{\Prob}{\mathsf{P}}
+\endinput
+%%
+%% End of file `jss.cls'.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/Rd.sty
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/Rd.sty	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/Rd.sty	(revision 2476)
@@ -0,0 +1,426 @@
+%%% Rd.sty ... Style for printing the R manual
+%%% Part of the R package, http://www.R-project.org
+%%% Copyright (C) 2003-2014 The R Foundation
+%%% Distributed under GPL 2 or later
+%%%
+%%% Modified 1998/01/05 by Friedrich Leisch
+%%% Modified 1998/07/07 by Martin Maechler
+%%% Modified 1999/11/20 by Brian Ripley
+%%% Modified 1999/12/26 by Kurt Hornik
+%%% and so on.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{Rd}{}
+
+\RequirePackage{ifthen}
+\newboolean{Rd@has@ae}
+\newboolean{Rd@use@ae}
+\newboolean{Rd@use@hyper}
+\newboolean{Rd@has@times}
+\newboolean{Rd@use@times}
+\newboolean{Rd@use@cm-super}
+\newboolean{Rd@has@lm}
+\newboolean{Rd@use@lm}
+\newboolean{Rd@use@beramono}
+\newboolean{Rd@use@inconsolata}
+\DeclareOption{ae}{\setboolean{Rd@use@ae}{true}}
+\DeclareOption{hyper}{\setboolean{Rd@use@hyper}{true}}
+\DeclareOption{times}{\setboolean{Rd@use@times}{true}}
+\DeclareOption{lm}{\setboolean{Rd@use@lm}{true}}
+\DeclareOption{cm-super}{\setboolean{Rd@use@cm-super}{true}}
+\DeclareOption{beramono}{\setboolean{Rd@use@beramono}{true}}
+\DeclareOption{inconsolata}{\setboolean{Rd@use@inconsolata}{true}}
+\ProcessOptions
+\RequirePackage{longtable}
+\setcounter{LTchunksize}{250}
+\ifthenelse{\boolean{Rd@use@hyper}}
+{\IfFileExists{hyperref.sty}{}{\setboolean{Rd@use@hyper}{false}
+  \message{package hyperref not found}}}
+{}
+
+\RequirePackage{bm}              % standard boldsymbol
+\RequirePackage{alltt}           % {verbatim} allowing \..
+\RequirePackage{verbatim}        % small example code
+\RequirePackage{url}             % set urls
+\RequirePackage{textcomp}        % for \textquotesingle etc
+
+
+\addtolength{\textheight}{12mm}
+\addtolength{\topmargin}{-9mm}   % still fits on US paper
+\addtolength{\textwidth}{24mm}   % still fits on US paper
+\setlength{\oddsidemargin}{10mm}
+\setlength{\evensidemargin}{\oddsidemargin}
+
+\newenvironment{display}[0]%
+  {\begin{list}{}{\setlength{\leftmargin}{30pt}}\item}%
+  {\end{list}}
+\newcommand{\HTML}{{\normalfont\textsc{html}}}
+\newcommand{\R}{{\normalfont\textsf{R}}{}}
+\newcommand{\Rdash}{-}
+
+% \def\href#1#2{\special{html:<a href="#1">}{#2}\special{html:</a>}}
+
+\newcommand{\vneed}[1]{%
+  \penalty-1000\vskip#1 plus 10pt minus #1\penalty-1000\vspace{-#1}}
+
+\newcommand{\Rdcontents}[1]{% modified \tableofcontents -- not \chapter
+\section*{{#1}\@mkboth{\MakeUppercase#1}{\MakeUppercase#1}}
+  \@starttoc{toc}}
+
+\newcommand{\Header}[2]{%
+  \vneed{1ex}
+  \markboth{#1}{#1}
+  \noindent
+  \nopagebreak
+  \begin{center}
+  \ifthenelse{\boolean{Rd@use@hyper}}%
+    {\def\@currentHref{page.\thepage}
+    \hypertarget{Rfn.#1}{\index{#1@\texttt{#1}}}%
+    \myaddcontentsline{toc}{subsection}{#1}%
+    \pdfbookmark[1]{#1}{Rfn.#1}}
+    {\addcontentsline{toc}{subsection}{#1}
+      \index{#1@\texttt{#1}|textbf}}
+    \hrule
+    \parbox{0.95\textwidth}{%
+      \begin{ldescription}[1.5in]
+       \item[\texttt{#1}] \emph{#2}
+      \end{ldescription}}
+    \hrule
+  \end{center}
+  \nopagebreak}
+%
+%
+%
+% \alias{<alias>}{<header>}
+\ifthenelse{\boolean{Rd@use@hyper}}
+{\newcommand{\alias}[2]{\hypertarget{Rfn.#1}{\index{#1@\texttt{#1} \textit{(\texttt{#2})}}}}}
+{\newcommand{\alias}[2]{\index{#1@\texttt{#1} \textit{(\texttt{#2})}}}}
+\ifthenelse{\boolean{Rd@use@hyper}}
+{\newcommand{\methalias}[2]{\hypertarget{Rfn.#1}{\relax}}}
+{\newcommand{\methalias}[2]{}}
+% \keyword{<topic>}{<header>}
+\newcommand{\keyword}[2]{\index{$*$Topic{\large\ \textbf{#1}}!#2@\texttt{#2}}}
+%
+% used prior to 2.10.0 only
+\newcommand{\Itemize}[1]{\begin{itemize}{#1}\end{itemize}}
+\newcommand{\Enumerate}[1]{\begin{enumerate}{#1}\end{enumerate}}
+\newcommand{\describe}[1]{\begin{description}{#1}\end{description}}
+
+\newcommand{\Tabular}[2]{%
+  \par\begin{longtable}{#1}
+    #2
+  \end{longtable}}
+
+\newlength{\ldescriptionwidth}
+\newcommand{\ldescriptionlabel}[1]{%
+  \settowidth{\ldescriptionwidth}{{#1}}%
+  \ifdim\ldescriptionwidth>\labelwidth
+    {\parbox[b]{\labelwidth}%
+      {\makebox[0pt][l]{#1}\\[1pt]\makebox{}}}%
+  \else
+    \makebox[\labelwidth][l]{{#1}}%
+  \fi
+  \hfil\relax}
+\newenvironment{ldescription}[1][1in]%
+  {\begin{list}{}%
+    {\setlength{\labelwidth}{#1}%
+      \setlength{\leftmargin}{\labelwidth}%
+      \addtolength{\leftmargin}{\labelsep}%
+      \renewcommand{\makelabel}{\ldescriptionlabel}}}%
+  {\end{list}}
+
+\newenvironment{Rdsection}[1]{%
+  \ifx\@empty#1\else\subsubsection*{#1}\fi
+  \begin{list}{}{\setlength{\leftmargin}{0.25in}}\item}
+  {\end{list}}
+
+\newenvironment{Arguments}{%
+  \begin{Rdsection}{Arguments}}{\end{Rdsection}}
+\newenvironment{Author}{%
+  \begin{Rdsection}{Author(s)}}{\end{Rdsection}}
+\newenvironment{Description}{%
+  \begin{Rdsection}{Description}}{\end{Rdsection}}
+\newenvironment{Details}{%
+  \begin{Rdsection}{Details}}{\end{Rdsection}}
+\newenvironment{Examples}{%
+  \begin{Rdsection}{Examples}}{\end{Rdsection}}
+\newenvironment{Note}{%
+  \begin{Rdsection}{Note}}{\end{Rdsection}}
+\newenvironment{References}{%
+  \begin{Rdsection}{References}}{\end{Rdsection}}
+\newenvironment{SeeAlso}{%
+  \begin{Rdsection}{See Also}}{\end{Rdsection}}
+\newenvironment{Format}{%
+  \begin{Rdsection}{Format}}{\end{Rdsection}}
+\newenvironment{Source}{%
+  \begin{Rdsection}{Source}}{\end{Rdsection}}
+\newenvironment{Section}[1]{%
+  \begin{Rdsection}{#1}}{\end{Rdsection}}
+\newenvironment{Usage}{%
+  \begin{Rdsection}{Usage}}{\end{Rdsection}}
+\newenvironment{Value}{%
+  \begin{Rdsection}{Value}}{\end{Rdsection}}
+
+\newenvironment{SubSection}[1]{%
+  \begin{list}{}{\setlength{\leftmargin}{0.1in}}\item \textbf{#1: }}{\end{list}}
+\newenvironment{SubSubSection}[1]{%
+  \begin{list}{}{\setlength{\leftmargin}{0.1in}}\item \textit{#1: }}{\end{list}}
+
+\newenvironment{ExampleCode}{\small\verbatim}{\endverbatim}
+
+\ifx\textbackslash\undefined%-- e.g. for MM
+  \newcommand{\bsl}{\ifmmode\backslash\else$\backslash$\fi}
+\else
+  \newcommand{\bsl}{\ifmmode\backslash\else\textbackslash\fi}
+\fi
+%fails for index (but is not used there...)
+\newcommand{\SIs}{\relax\ifmmode\leftarrow\else$\leftarrow$\fi}
+\newcommand{\SIIs}{\relax\ifmmode<\leftarrow\else$<\leftarrow$\fi}
+\newcommand{\Sbecomes}{\relax\ifmmode\rightarrow\else$\rightarrow$\fi}
+%
+\newcommand{\deqn}[2]{\[#1\]}
+\newcommand{\eqn}[2]{$#1$}
+\newcommand{\bold}[1]{\ifmmode\bm{#1}\else\textbf{#1}\fi}
+%% as from R 2.12.0 set \file in monospaced font, not sans-serif
+\newcommand{\file}[1]{`\texttt{#1}'}
+
+\newcommand{\Figure}[2]{\includegraphics[#2]{#1}}
+
+\ifthenelse{\boolean{Rd@use@hyper}}
+{\newcommand{\link}[1]{\hyperlink{Rfn.#1}{#1}\index{#1@\texttt{#1}}}}
+{\newcommand{\link}[1]{#1\index{#1@\texttt{#1}}}}
+
+\ifthenelse{\boolean{Rd@use@hyper}}
+{\newcommand*{\Rhref}{\begingroup\@makeother\#\@Rhref}
+  \newcommand*{\@Rhref}[2]{\href{#1}{#2}\endgroup}}
+{\newcommand*{\Rhref}{\begingroup\@makeother\#\@Rhref}
+  \newcommand*{\@Rhref}[2]{#2\footnote{\url{#1}}\endgroup}}
+
+%% as from R 2.10.0 set \email in monospaced font (like \url)
+%\newcommand{\email}[1]{$\langle$\texttt{#1}$\rangle$}
+\newcommand{\email}[1]{\normalfont\texttt{\textless#1\textgreater}}
+
+%% \code without `-' ligatures
+
+%{\catcode`\-=\active%
+%   \global\def\code{\bgroup%
+%     \catcode`\-=\active \let-\codedash%
+%     \Rd@code}}
+%     \def\codedash{-\discretionary{}{}{}}
+
+%% If we simply do
+%%   \DeclareRobustCommand\code{\bgroup\@noligs\@vobeyspaces\Rd@code}
+%% then e.g.
+%%   \code{\LinkA{attr<-}{attr<.Rdash.}} 
+%% will give an undefined control sequence `\< error when hyperref is
+%% used (so that \LinkA uses \hyperlink).
+%% Hence, use a noligs list without < and > for now, and use the same
+%% list for \code and \samp and their variants.
+\def\Rd@nolig@list{\do\`\do\,\do\'\do\-}
+\def\Rd@noligs{\let\do\do@noligs \Rd@nolig@list}
+
+\DeclareRobustCommand\code{\bgroup\Rd@noligs\@vobeyspaces\Rd@code}
+\def\Rd@code#1{\normalfont\texttt{#1}\egroup}
+\let\command=\code
+\let\env=\code
+
+\DeclareRobustCommand\samp{`\bgroup\Rd@noligs\@vobeyspaces\@sampx}
+\def\@sampx#1{{\normalfont\texttt{#1}}\egroup'}
+\let\option=\samp
+
+\def\AsIs{\bgroup\let\do\@makeother\Rd@AsIs@dospecials\@noligs\obeylines\@vobeyspaces\parskip\z@skip\Rd@AsIsX}
+\def\Rd@AsIs@dospecials{\do\$\do\&\do\#\do\^\do\_\do\%\do\~}
+\def\Rd@AsIsX#1{\normalfont #1\egroup}
+
+% This is a workaround for the old Rdconv to handle \Sexpr by echoing it
+% Rd2latex() should never let \Sexpr through to here.
+\newcommand\Sexpr[2][]{{\normalfont\texttt{\bsl Sexpr[#1]\{#2\}}}}
+
+\newcommand{\var}[1]{{\normalfont\textsl{#1}}}
+
+\newcommand{\dfn}[1]{\textsl{#1}}
+\let\Cite=\dfn
+
+\newcommand{\acronym}[1]{\textsc{\lowercase{#1}}}
+\newcommand{\kbd}[1]{{\normalfont\texttt{\textsl{#1}}}}
+
+\newcommand{\strong}[1]{{\normalfont\fontseries{b}\selectfont #1}}
+\let\pkg=\strong
+
+\newcommand{\sQuote}[1]{`#1'}
+\newcommand{\dQuote}[1]{``#1''}
+
+\IfFileExists{ae.sty}{\setboolean{Rd@has@ae}{true}}{}
+\ifthenelse{\boolean{Rd@use@ae}\and\boolean{Rd@has@ae}}{%
+  \usepackage[T1]{fontenc}
+  \usepackage{ae}
+  \input{t1aett.fd}
+  \DeclareFontShape{T1}{aett}{bx}{n}{<->ssub*aett/m/n}{}}{}
+\IfFileExists{times.sty}{\setboolean{Rd@has@times}{true}}{}
+\ifthenelse{\boolean{Rd@use@times}\and\boolean{Rd@has@times}}{%
+  \usepackage[T1]{fontenc}
+  \usepackage{times}}{}
+\IfFileExists{lmodern.sty}{\setboolean{Rd@has@lm}{true}}{}
+\ifthenelse{\boolean{Rd@use@lm}\and\boolean{Rd@has@lm}}{%
+  \usepackage[T1]{fontenc}
+  \usepackage{lmodern}}{}
+\ifthenelse{\boolean{Rd@use@cm-super}}{%
+  \usepackage[T1]{fontenc}}{}
+\ifthenelse{\boolean{Rd@use@beramono}}{%
+  \usepackage[scaled=.8]{beramono}}{}
+%% it appears that all versions of zi4.sty support [noupquote],
+%% whereas only those since 2013/06/09 of inconsolata.sty do: such
+%% installations should also have zi4.sty
+\ifthenelse{\boolean{Rd@use@inconsolata}}{%
+ \IfFileExists{zi4.sty}{\usepackage[noupquote]{zi4}}{\usepackage{inconsolata}}}{}
+
+%% needs to come after \code is defined
+%% inspired by an earlier version of upquote.sty
+\begingroup
+\catcode`'=\active \catcode``=\active
+\g@addto@macro\@noligs {\let`\textasciigrave \let'\textquotesingle}
+\g@addto@macro\Rd@noligs {\let`\textasciigrave \let'\textquotesingle}
+\endgroup
+
+%% We use \pkg{verbatim} for our ExampleCode environment, which in its
+%% \verbatim@font has an explicit \let\do\do@noligs\verbatim@nolig@list
+%% rather than (the identical) \@noligs from the LaTeX2e kernel.
+%% Hence, we add to \verbatim@font ... suggestion by Bernd Raichle
+%% <raichle@Informatik.Uni-Stuttgart.DE>.
+\g@addto@macro\verbatim@font\@noligs
+
+\ifthenelse{\boolean{Rd@use@hyper}}{%
+  \RequirePackage{color}    
+  \def\myaddcontentsline#1#2#3{%
+    \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}{page.\thepage}}}
+  \RequirePackage{hyperref}
+  \DeclareTextCommand{\Rpercent}{PD1}{\045} % percent
+  %% <NOTE>
+  %% Formerly in R's hyperref.cfg, possibly to be shared with Sweave.sty
+  %% as well (but without setting pagebackref as this can give trouble
+  %% for .bib entries containing URLs with '#' characters).
+  \definecolor{Blue}{rgb}{0,0,0.8}
+  \definecolor{Red}{rgb}{0.7,0,0}
+  \hypersetup{%
+    hyperindex,%
+    colorlinks,%
+    pagebackref,%
+    linktocpage,%
+    plainpages=false,%
+    linkcolor=Blue,%
+    citecolor=Blue,%
+    urlcolor=Red,%
+    pdfstartview=Fit,%
+    pdfview={XYZ null null null}%
+  }
+  %% </NOTE>
+  \renewcommand\tableofcontents{%
+    \if@twocolumn
+      \@restonecoltrue\onecolumn
+    \else
+      \@restonecolfalse
+    \fi
+    \chapter*{\contentsname
+        \@mkboth{%
+           \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
+    \pdfbookmark{Contents}{contents}
+    \@starttoc{toc}%
+    \if@restonecol\twocolumn\fi
+    }
+  \renewenvironment{theindex}
+  {\if@twocolumn
+    \@restonecolfalse
+    \else
+    \@restonecoltrue
+    \fi
+    \columnseprule \z@
+    \columnsep 35\p@
+    \twocolumn[\@makeschapterhead{\indexname}]%
+    \@mkboth{\MakeUppercase\indexname}%
+    {\MakeUppercase\indexname}%
+    \pdfbookmark{Index}{index}
+    \myaddcontentsline{toc}{chapter}{Index}
+    \thispagestyle{plain}\parindent\z@
+    \parskip\z@ \@plus .3\p@\relax
+    \raggedright
+    \let\item\@idxitem}
+  {\if@restonecol\onecolumn\else\clearpage\fi}
+  }{
+  \renewenvironment{theindex}
+  {\if@twocolumn
+    \@restonecolfalse
+    \else
+    \@restonecoltrue
+    \fi
+    \columnseprule \z@
+    \columnsep 35\p@
+    \twocolumn[\@makeschapterhead{\indexname}]%
+    \@mkboth{\MakeUppercase\indexname}%
+    {\MakeUppercase\indexname}%
+    \addcontentsline{toc}{chapter}{Index}
+    \thispagestyle{plain}\parindent\z@
+    \parskip\z@ \@plus .3\p@\relax
+    \raggedright
+    \let\item\@idxitem}
+  {\if@restonecol\onecolumn\else\clearpage\fi}
+  }
+
+% new definitions for R >= 2.0.0
+\ifthenelse{\boolean{Rd@use@hyper}}
+{\newcommand{\LinkA}[2]{\hyperlink{Rfn.#2}{#1}\index{#1@\texttt{#1}|textit}}}
+{\newcommand{\LinkA}[2]{#1\index{#1@\texttt{#1}|textit}}}
+%
+% \alias{<alias>}{<header>}
+\ifthenelse{\boolean{Rd@use@hyper}}
+{\newcommand{\aliasA}[3]{\hypertarget{Rfn.#3}{\index{#1@\texttt{#1} \textit{(\texttt{#2})}}}}}
+{\newcommand{\aliasA}[3]{\index{#1@\texttt{#1} \textit{(\texttt{#2})}}}}
+% \aliasB has no indexing.
+\ifthenelse{\boolean{Rd@use@hyper}}
+{\newcommand{\aliasB}[3]{\hypertarget{Rfn.#3}{\relax}}}
+{\newcommand{\aliasB}[3]{}}
+\ifthenelse{\boolean{Rd@use@hyper}}
+{\newcommand{\methaliasA}[3]{\hypertarget{Rfn.#3}{\relax}}}
+{\newcommand{\methaliasA}[3]{}}
+
+\ifthenelse{\boolean{Rd@use@hyper}}
+{\newcommand{\CRANpkg}[1]{\href{https://CRAN.R-project.org/package=#1}{\pkg{#1}}}}
+{\newcommand{\CRANpkg}[1]{\pkg{#1}}}
+
+\newcommand{\HeaderA}[3]{%
+  \vneed{1ex}
+  \markboth{#1}{#1}
+  \noindent
+  \nopagebreak
+  \begin{center}
+  \ifthenelse{\boolean{Rd@use@hyper}}%
+    {\def\@currentHref{page.\thepage}
+    \hypertarget{Rfn.#3}{\index{#1@\texttt{#1}}}%
+    \myaddcontentsline{toc}{subsection}{#1}%
+    \pdfbookmark[1]{#1}{Rfn.#3}}
+    {\addcontentsline{toc}{subsection}{#1}
+      \index{#1@\texttt{#1}|textbf}}
+    \hrule
+    \parbox{0.95\textwidth}{%
+      \begin{ldescription}[1.5in]
+       \item[\texttt{#1}] \emph{#2}
+      \end{ldescription}}
+    \hrule
+  \end{center}
+  \nopagebreak}
+\DeclareTextCommandDefault{\Rpercent}{\%{}}
+%% for use with the output of encoded_text_to_latex
+\ProvideTextCommandDefault{\textdegree}{\ensuremath{{^\circ}}}
+\ProvideTextCommandDefault{\textonehalf}{\ensuremath{\frac12}}
+\ProvideTextCommandDefault{\textonequarter}{\ensuremath{\frac14}}
+\ProvideTextCommandDefault{\textthreequarters}{\ensuremath{\frac34}}
+\ProvideTextCommandDefault{\textcent}{\TextSymbolUnavailable\textcent}
+\ProvideTextCommandDefault{\textyen}{\TextSymbolUnavailable\textyen}
+\ProvideTextCommandDefault{\textcurrency}{\TextSymbolUnavailable\textcurrency}
+\ProvideTextCommandDefault{\textbrokenbar}{\TextSymbolUnavailable\textbrokenbar}
+\ProvideTextCommandDefault{\texteuro}{\TextSymbolUnavailable\texteuro}
+\providecommand{\mathonesuperior}{\ensuremath{^1}}
+\providecommand{\mathtwosuperior}{\ensuremath{^2}}
+\providecommand{\maththreesuperior}{\ensuremath{^3}}
+
+\InputIfFileExists{Rd.cfg}{%
+  \typeout{Reading personal defaults ...}}{}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/omsaett.fd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/omsaett.fd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/texmf/tex/latex/omsaett.fd	(revision 2476)
@@ -0,0 +1,21 @@
+\ProvidesFile{omsaett.fd}
+\DeclareFontFamily{OMS}{aett}{\skewchar\font48 }
+\DeclareFontShape{OMS}{aett}{m}{n}%
+   {<->ssub*aesy/m/n}{}
+\DeclareFontShape{OMS}{aett}{m}{it}%
+   {<->ssub*aesy/m/n}{}
+\DeclareFontShape{OMS}{aett}{m}{sl}%
+   {<->ssub*aesy/m/n}{}
+\DeclareFontShape{OMS}{aett}{m}{sc}%
+   {<->ssub*aesy/m/n}{}
+\DeclareFontShape{OMS}{aett}{bx}{n}%
+   {<->ssub*aesy/b/n}{}
+\DeclareFontShape{OMS}{aett}{bx}{it}%
+   {<->ssub*aesy/b/n}{}
+\DeclareFontShape{OMS}{aett}{bx}{sl}%
+   {<->ssub*aesy/b/n}{}
+\DeclareFontShape{OMS}{aett}{bx}{sc}%
+   {<->ssub*aesy/b/n}{}
+\endinput
+%%
+%% End of file `omsaett.fd'.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/Rd/macros/system.Rd
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/Rd/macros/system.Rd	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/Rd/macros/system.Rd	(revision 2476)
@@ -0,0 +1,47 @@
+% System Rd macros
+
+% These macros are automatically loaded whenever R processes an Rd file.
+
+% Packages may define their own macros, which are stored in man/macros/*.Rd in
+% the source, help/macros/*.Rd after installation.  Those will be processed after
+% this file but before every Rd file in a package.
+
+% Packages may request inclusion of macros from other packages using the 
+% LoadRdMacros line in the DESCRIPTION file, e.g.
+%  LoadRdMacros:  pkgA 
+% These are loaded after the system macros and before the current package macros.
+
+% Individual Rd files may define their own macros.
+
+
+
+% To refer to a package on CRAN
+\newcommand{\CRANpkg}{\href{https://CRAN.R-project.org/package=#1}{\pkg{#1}}}
+
+% To refer to a bug report by number
+\newcommand{\PR}{\Sexpr[results=rd]{tools:::Rd_expr_PR(#1)}}
+
+% To avoid a double space after a period in LaTeX output
+\newcommand{\sspace}{\ifelse{latex}{\out{~}}{ }}
+
+% To get the package title at build time from the DESCRIPTION file
+\newcommand{\packageTitle}{\Sexpr[results=rd,stage=build]{tools:::Rd_package_title("#1")}}
+
+% To get the package description at build time from the DESCRIPTION file
+\newcommand{\packageDescription}{\Sexpr[results=rd,stage=build]{tools:::Rd_package_description("#1")}}
+
+% To get the package author at build time from the DESCRIPTION file
+\newcommand{\packageAuthor}{\Sexpr[results=rd,stage=build]{tools:::Rd_package_author("#1")}}
+
+% To get the package maintainer at build time from the DESCRIPTION file
+\newcommand{\packageMaintainer}{\Sexpr[results=rd,stage=build]{tools:::Rd_package_maintainer("#1")}}
+
+% To get a formatted copy of the whole DESCRIPTION file
+\newcommand{\packageDESCRIPTION}{\Sexpr[results=rd,stage=build]{tools:::Rd_package_DESCRIPTION("#1")}}
+
+% To include various indices about an installed package
+
+\newcommand{\packageIndices}{\Sexpr[results=rd,stage=build]{tools:::Rd_package_indices("#1")}}
+
+% To indicate a DOI.
+\newcommand{\doi}{\Sexpr[results=rd,stage=build]{tools:::Rd_expr_doi("#1")}}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/BSD_2_clause
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/BSD_2_clause	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/BSD_2_clause	(revision 2476)
@@ -0,0 +1,37 @@
+Based on https://opensource.org/licenses/BSD-2-Clause
+
+This is a template. Complete and ship as file LICENSE the following 2
+lines (only)
+
+YEAR:
+COPYRIGHT HOLDER: 
+
+and specify as
+
+License: BSD_2_clause + file LICENSE
+
+Copyright (c) <YEAR>, <COPYRIGHT HOLDER>
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/BSD_3_clause
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/BSD_3_clause	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/BSD_3_clause	(revision 2476)
@@ -0,0 +1,44 @@
+Based on https://opensource.org/licenses/BSD-3-Clause
+
+This is a template. Complete and ship as file LICENSE the following 3
+lines (only)
+
+YEAR:
+COPYRIGHT HOLDER: 
+ORGANIZATION:
+
+and specify as
+
+License: BSD_3_clause + file LICENSE
+
+
+Copyright (c) <YEAR>, <COPYRIGHT HOLDER>
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in
+    the documentation and/or other materials provided with the
+    distribution.
+
+    Neither the name of the <ORGANIZATION> nor the names of its
+    contributors may be used to endorse or promote products derived
+    from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/license.db
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/license.db	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/license.db	(revision 2476)
@@ -0,0 +1,319 @@
+Name: GNU General Public License
+Abbrev: GPL
+Version: 2
+SSS: GPL-2
+OSI: open (https://opensource.org/licenses/gpl-license)
+FSF: free_and_GPLv3_incompatible (https://www.gnu.org/licenses/license-list.html#GPLv2)
+File: share/licenses/GPL-2
+URL: https://www.r-project.org/Licenses/GPL-2
+FOSS: yes
+
+Name: GNU General Public License
+Abbrev: GPL
+Version: 3
+SSS: GPL-3
+OSI: open (https://opensource.org/licenses/gpl-license)
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#GNUGPL)
+File: share/licenses/GPL-3
+URL: https://www.r-project.org/Licenses/GPL-3
+FOSS: yes
+Extensible: yes
+
+Name: GNU Library General Public License
+Abbrev: LGPL
+Version: 2
+SSS: LGPL-2
+OSI: open
+FSF: free_and_GPLv3_incompatible
+File: share/licenses/LGPL-2
+URL: https://www.r-project.org/Licenses/LGPL-2
+FOSS: yes
+
+Name: GNU Lesser General Public License
+Abbrev: LGPL
+Version: 2.1
+SSS: LGPL-2.1
+OSI: open (https://opensource.org/licenses/lgpl-license)
+FSF: free_and_GPLv3_incompatible (https://www.gnu.org/licenses/license-list.html#LGPLv2.1)
+File: share/licenses/LGPL-2.1
+URL: https://www.r-project.org/Licenses/LGPL-2.1
+FOSS: yes
+
+Name: GNU Lesser General Public License
+Abbrev: LGPL
+Version: 3
+SSS: LGPL-3
+OSI: open (https://opensource.org/licenses/lgpl-license)
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#LGPL)
+File: share/licenses/LGPL-3
+URL: https://www.r-project.org/Licenses/LGPL-3
+FOSS: yes
+Extensible: yes
+
+Name: GNU Affero General Public License
+Abbrev: AGPL
+Version: 3
+SSS: AGPL-3
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#AGPLv3.0)
+OSI: open (https://opensource.org/licenses/AGPL-3.0)
+File: share/licenses/AGPL-3
+URL: https://www.r-project.org/Licenses/AGPL-3
+FOSS: yes
+Extensible: yes
+
+Name: Apache License
+Version: 1.1
+OSI: open but superseded (https://opensource.org/licenses/apachepl-1.1)
+FSF: free_and_GPLv3_incompatible (https://www.gnu.org/licenses/license-list.html#apache1.1)
+URL: https://www.apache.org/LICENSE-1.1
+FOSS: yes
+
+Name: Apache License
+Version: 2.0
+OSI: open (https://opensource.org/licenses/Apache-2.0)
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#apache2)
+URL: https://www.apache.org/licenses/LICENSE-2.0
+FOSS: yes
+
+Name: Artistic License
+Version: 1.0
+SSS: Artistic-1.0
+OSI: open but superseded (https://opensource.org/licenses/artistic-license-1.0)
+FSF: non_free (https://www.gnu.org/licenses/license-list.html#ArtisticLicense)
+URL: https://www.r-project.org/Licenses/Artistic-1.0
+FOSS: no
+Restricts_use: no
+
+Name: Artistic License
+Version: 2.0
+SSS: Artistic-2.0
+OSI: open (https://opensource.org/licenses/Artistic-2.0)
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#ArtisticLicense2)
+File: share/licenses/Artistic-2.0
+URL: https://www.r-project.org/Licenses/Artistic-2.0
+FOSS: yes
+
+Name: CeCILL
+Abbrev: CeCILL
+Version: 2
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#CeCILL)
+URL: http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+FOSS: yes
+
+Name: FreeBSD License
+Abbrev: FreeBSD
+OSI: open (https://opensource.org/licenses/BSD-2-Clause)
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#FreeBSD)
+URL: https://www.freebsd.org/copyright/freebsd-license.html
+FOSS: yes
+
+Name: MIT License
+Abbrev: MIT
+OSI: open (https://opensource.org/licenses/MIT)
+File: share/licenses/MIT
+URL: https://opensource.org/licenses/mit-license.php
+FOSS: yes
+Extensible: yes
+Note: this is a template, needs + file LICENSE
+
+Name: Modified BSD License
+Abbrev: BSD
+OSI: open (https://opensource.org/licenses/BSD-3-Clause)
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#ModifiedBSD)
+URL: https://opensource.org/licenses/BSD-3-Clause
+FOSS: yes
+Note: do not use: use BSD_2_clause or BSD_3_clause instead
+
+Name: BSD 2-clause License
+Abbrev: BSD_2_clause
+OSI: open (https://opensource.org/licenses/BSD-2-Clause)
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#FreeBSD)
+File: share/licenses/BSD_2_clause
+URL: https://opensource.org/licenses/BSD-2-Clause
+FOSS: yes
+Extensible: yes
+Note: this is a template, needs + file LICENSE
+
+Name: BSD 3-clause License
+Abbrev: BSD_3_clause
+OSI: open (https://opensource.org/licenses/BSD-3-Clause)
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#ModifiedBSD)
+File: share/licenses/BSD_3_clause
+URL: https://opensource.org/licenses/BSD-3-Clause
+FOSS: yes
+Extensible: yes
+Note: this is a template, needs + file LICENSE
+
+Name: Mozilla Public License
+Abbrev: MPL
+Version: 1.0
+OSI: open but superseded (https://opensource.org/licenses/mozilla1.0)
+FSF: free_and_GPLv3_incompatible
+URL: http://website-archive.mozilla.org/www.mozilla.org/mpl/MPL/1.0/
+FOSS: yes
+
+Name: Mozilla Public License
+Abbrev: MPL
+Version: 1.1
+OSI: open but superseded (https://opensource.org/licenses/MPL-1.1)
+FSF: free_and_GPLv3_incompatible (https://www.gnu.org/licenses/license-list.html#MPL)
+URL: https://www.mozilla.org/en-US/MPL/1.1/
+FOSS: yes
+
+Name: Mozilla Public License
+Abbrev: MPL
+Version: 2.0
+OSI: open (https://opensource.org/licenses/MPL-2.0)
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#MPL-2.0)
+URL: https://www.mozilla.org/en-US/MPL/2.0/
+FOSS: yes
+
+Name: Common Public License
+Abbrev: CPL
+Version: 1.0
+FSF: free_and_GPLv3_incompatible (https://www.gnu.org/licenses/license-list.html#CommonPublicLicense10)
+OSI: open but superseded (https://opensource.org/licenses/cpl1.0)
+URL: https://www.eclipse.org/legal/cpl-v10.html
+FOSS: yes
+
+Name: Eclipse Public License
+Version: 1.0
+Abbrev: EPL
+FSF: free_and_GPLv3_incompatible (https://www.gnu.org/licenses/license-list.html#EPL)
+OSI: open (https://opensource.org/licenses/EPL-1.0)
+URL: https://www.eclipse.org/legal/epl-v10.html
+FOSS: yes
+
+Name: Lucent Public License
+Version: 1.02
+FSF: free_and_GPLv3_incompatible (https://www.gnu.org/licenses/license-list.html#lucent102)
+OSI: open (https://opensource.org/licenses/LPL-1.02)
+URL: https://opensource.org/licenses/lucent1.02.php
+FOSS: yes
+
+Name: European Union Public License
+Version: 1.1
+Abbrev: EUPL
+FSF: free_and_GPLv3_incompatible (https://www.gnu.org/licenses/license-list.html#EUPL)
+OSI: open (https://opensource.org/licenses/EUPL-1.1)
+URL: https://joinup.ec.europa.eu/software/page/eupl
+FOSS: yes
+
+Name: Creative Commons Attribution-ShareAlike 2.0 Generic License
+Abbrev: CC BY-SA 2.0
+FSF: free_and_GPLv3_incompatible (https://www.gnu.org/licenses/license-list.html#ccbysa)
+URL: https://creativecommons.org/licenses/by-sa/2.0
+FOSS: yes
+Extensible: yes
+Note: do not use: use CC BY-SA 4.0 instead
+
+Name: Creative Commons Attribution 3.0 Unported License
+Abbrev: CC BY 3.0
+FSF: free_and_GPLv3_incompatible
+URL: https://creativecommons.org/licenses/by/3.0
+FOSS: yes
+Extensible: yes
+Note: do not use: use CC BY 4.0 instead
+
+Name: Creative Commons Attribution-ShareAlike 3.0 Unported License
+Abbrev: CC BY-SA 3.0
+FSF: free_and_GPLv3_incompatible
+URL: https://creativecommons.org/licenses/by-sa/3.0
+FOSS: yes
+Extensible: yes
+Note: do not use: use CC BY-SA 4.0 instead
+
+Name: Creative Commons Attribution-NonCommercial 3.0 Unported License
+Abbrev: CC BY-NC 3.0
+URL: https://creativecommons.org/licenses/by-nc/3.0
+FOSS: no
+Extensible: yes
+Restricts_use: yes
+Note: do not use: use CC BY-NC 4.0 instead
+
+Name: Creative Commons Attribution-NonCommercial-NoDerivs 3.0 United States License
+Abbrev: CC BY-NC-ND 3.0 US
+URL: https://creativecommons.org/licenses/by-nc-nd/3.0/us
+FOSS: no
+Extensible: yes
+Restricts_use: yes
+Note: do not use: use CC BY-NC-ND 4.0 instead
+
+Name: Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License
+Abbrev: CC BY-NC-SA 3.0
+URL: https://creativecommons.org/licenses/by-nc-sa/3.0
+FOSS: no
+Extensible: yes
+Restricts_use: yes
+Note: do not use: use CC BY-NC-SA 4.0 instead
+
+Name: Creative Commons Attribution-ShareAlike 3.0 United States License
+Abbrev: CC BY-SA 3.0 US
+FSF: free_and_GPLv3_incompatible
+URL: https://creativecommons.org/licenses/by-sa/3.0/us/
+FOSS: yes
+Extensible: yes
+Note: do not use: use CC BY-SA 4.0 instead
+
+Name: Creative Commons Attribution 4.0 International License
+Abbrev: CC BY 4.0
+FSF: free_and_GPLv3_incompatible
+URL: https://creativecommons.org/licenses/by/4.0
+FOSS: yes
+Extensible: yes
+
+Name: Creative Commons Attribution-ShareAlike 4.0 International License
+Abbrev: CC BY-SA 4.0
+FSF: free_and_GPLv3_incompatible
+URL: https://creativecommons.org/licenses/by-sa/4.0
+FOSS: yes
+Extensible: yes
+
+Name: Creative Commons Attribution-NonCommercial 4.0 International License
+Abbrev: CC BY-NC 4.0
+URL: https://creativecommons.org/licenses/by-nc/4.0
+FOSS: no
+Extensible: yes
+Restricts_use: yes
+
+Name: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License
+Abbrev: CC BY-NC-SA 4.0
+URL: https://creativecommons.org/licenses/by-nc-sa/4.0
+FOSS: no
+Extensible: yes
+Restricts_use: yes
+
+Name: Creative Commons Attribution-NonCommercial-NoDerivs 4.0 International License
+Abbrev: CC BY-NC-ND 4.0
+URL: https://creativecommons.org/licenses/by-nc-nd/4.0
+FOSS: no
+Extensible: yes
+Restricts_use: yes
+
+Name: CC0
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#CC0)
+OSI: NA (https://opensource.org/faq#cc-zero)
+URL: https://creativecommons.org/publicdomain/zero/1.0/legalcode
+FOSS: yes
+
+Name: zlib License
+Abbrev: Zlib
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#ZLib)
+OSI: open (https://opensource.org/licenses/Zlib)
+URL: http://www.gzip.org/zlib/zlib_license.html
+FOSS: yes
+
+Name: Boost Software License
+Version: 1.0
+Abbrev: BSL
+FSF: free_and_GPLv3_compatible (https://www.gnu.org/licenses/license-list.html#boost)
+OSI: open (https://opensource.org/licenses/BSL-1.0)
+URL: http://www.boost.org/LICENSE_1_0.txt
+FOSS: yes
+
+Name: ACM Software License Agreement
+Version: 1998
+Abbrev: ACM
+URL: https://www.acm.org/publications/policies/software-copyright-notice
+FOSS: no
+Restricts_use: yes
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/MIT
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/MIT	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/MIT	(revision 2476)
@@ -0,0 +1,32 @@
+Based on http://opensource.org/licenses/MIT
+
+This is a template. Complete and ship as file LICENSE the following 2
+lines (only)
+
+YEAR:
+COPYRIGHT HOLDER: 
+
+and specify as
+
+License: MIT + file LICENSE
+
+Copyright (c) <YEAR>, <COPYRIGHT HOLDER>
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/LGPL-2.1
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/LGPL-2.1	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/LGPL-2.1	(revision 2476)
@@ -0,0 +1,504 @@
+		  GNU LESSER GENERAL PUBLIC LICENSE
+		       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+		  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/LGPL-2
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/LGPL-2	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/LGPL-2	(revision 2476)
@@ -0,0 +1,481 @@
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+    		    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL.  It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it.  You can use it for
+your libraries, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library.  If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software.  To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+  Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs.  This
+license, the GNU Library General Public License, applies to certain
+designated libraries.  This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+  The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it.  Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program.  However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+  Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries.  We
+concluded that weaker conditions might promote sharing better.
+
+  However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves.  This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them.  (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.)  The hope is that this
+will lead to faster development of free libraries.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+  Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+		  GNU LIBRARY GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License").  Each licensee is
+addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    c) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    d) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+			    NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/LGPL-3
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/LGPL-3	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/LGPL-3	(revision 2476)
@@ -0,0 +1,165 @@
+		   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions. 
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version. 
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/Artistic-2.0
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/Artistic-2.0	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/Artistic-2.0	(revision 2476)
@@ -0,0 +1,197 @@
+Artistic License 2.0
+
+Copyright (c) 2000-2006, The Perl Foundation.
+
+Everyone is permitted to copy and distribute verbatim copies of this
+license document, but changing it is not allowed.
+
+Preamble
+********
+
+This license establishes the terms under which a given free software
+Package may be copied, modified, distributed, and/or redistributed.  The
+intent is that the Copyright Holder maintains some artistic control over
+the development of that Package while still keeping the Package
+available as open source and free software.
+
+You are always permitted to make arrangements wholly outside of this
+license directly with the Copyright Holder of a given Package.  If the
+terms of this license do not permit the full use that you propose to
+make of the Package, you should contact the Copyright Holder and seek a
+different licensing arrangement.
+
+Definitions
+***********
+
+"Copyright Holder" means the individual(s) or organization(s) named in
+the copyright notice for the entire Package.
+
+"Contributor" means any party that has contributed code or other
+material to the Package, in accordance with the Copyright Holder's
+procedures.
+
+"You" and "your" means any person who would like to copy, distribute, or
+modify the Package.
+
+"Package" means the collection of files distributed by the Copyright
+Holder, and derivatives of that collection and/or of those files.  A
+given Package may consist of either the Standard Version, or a Modified
+Version.
+
+"Distribute" means providing a copy of the Package or making it
+accessible to anyone else, or in the case of a company or organization,
+to others outside of your company or organization.
+
+"Distributor Fee" means any fee that you charge for Distributing this
+Package or providing support for this Package to another party.  It does
+not mean licensing fees.
+
+"Standard Version" refers to the Package if it has not been modified, or
+has been modified only in ways explicitly requested by the Copyright
+Holder.
+
+"Modified Version" means the Package, if it has been changed, and such
+changes were not explicitly requested by the Copyright Holder.
+
+"Original License" means this Artistic License as Distributed with the
+Standard Version of the Package, in its current version or as it may be
+modified by The Perl Foundation in the future.
+
+"Source" form means the source code, documentation source, and
+configuration files for the Package.
+
+"Compiled" form means the compiled bytecode, object code, binary, or any
+other form resulting from mechanical transformation or translation of
+the Source form.
+
+Permission for Use and Modification Without Distribution
+********************************************************
+
+(1) You are permitted to use the Standard Version and create and use
+Modified Versions for any purpose without restriction, provided that you
+do not Distribute the Modified Version.
+
+Permissions for Redistribution of the Standard Version
+******************************************************
+
+(2) You may Distribute verbatim copies of the Source form of the
+Standard Version of this Package in any medium without restriction,
+either gratis or for a Distributor Fee, provided that you duplicate all
+of the original copyright notices and associated disclaimers.  At your
+discretion, such verbatim copies may or may not include a Compiled form
+of the Package.
+
+(3) You may apply any bug fixes, portability changes, and other
+modifications made available from the Copyright Holder.  The resulting
+Package will still be considered the Standard Version, and as such will
+be subject to the Original License.
+
+Distribution of Modified Versions of the Package as Source
+**********************************************************
+
+(4) You may Distribute your Modified Version as Source (either gratis or
+for a Distributor Fee, and with or without a Compiled form of the
+Modified Version) provided that you clearly document how it differs from
+the Standard Version, including, but not limited to, documenting any
+non-standard features, executables, or modules, and provided that you do
+at least ONE of the following:
+
+(a) make the Modified Version available to the Copyright Holder of the
+Standard Version, under the Original License, so that the Copyright
+Holder may include your modifications in the Standard Version.
+
+(b) ensure that installation of your Modified Version does not prevent
+the user installing or running the Standard Version.  In addition, the
+Modified Version must bear a name that is different from the name of the
+Standard Version.
+
+(c) allow anyone who receives a copy of the Modified Version to make the
+Source form of the Modified Version available to others under
+
+(i) the Original License or
+
+(ii) a license that permits the licensee to freely copy, modify and
+redistribute the Modified Version using the same licensing terms that
+apply to the copy that the licensee received, and requires that the
+Source form of the Modified Version, and of any works derived from it,
+be made freely available in that license fees are prohibited but
+Distributor Fees are allowed.
+
+Distribution of Compiled Forms of the Standard Version or Modified
+******************************************************************
+Versions without the Source
+***************************
+
+(5) You may Distribute Compiled forms of the Standard Version without
+the Source, provided that you include complete instructions on how to
+get the Source of the Standard Version.  Such instructions must be valid
+at the time of your distribution.  If these instructions, at any time
+while you are carrying out such distribution, become invalid, you must
+provide new instructions on demand or cease further distribution.  If
+you provide valid instructions or cease distribution within thirty days
+after you become aware that the instructions are invalid, then you do
+not forfeit any of your rights under this license.
+
+(6) You may Distribute a Modified Version in Compiled form without the
+Source, provided that you comply with Section 4 with respect to the
+Source of the Modified Version.
+
+Aggregating or Linking the Package
+**********************************
+
+(7) You may aggregate the Package (either the Standard Version or
+Modified Version) with other packages and Distribute the resulting
+aggregation provided that you do not charge a licensing fee for the
+Package.  Distributor Fees are permitted, and licensing fees for other
+components in the aggregation are permitted.  The terms of this license
+apply to the use and Distribution of the Standard or Modified Versions
+as included in the aggregation.
+
+(8) You are permitted to link Modified and Standard Versions with other
+works, to embed the Package in a larger work of your own, or to build
+stand-alone binary or bytecode versions of applications that include the
+Package, and Distribute the result without restriction, provided the
+result does not expose a direct interface to the Package.
+
+Items That are Not Considered Part of a Modified Version
+********************************************************
+
+(9) Works (including, but not limited to, modules and scripts) that
+merely extend or make use of the Package, do not, by themselves, cause
+the Package to be a Modified Version.  In addition, such works are not
+considered parts of the Package itself, and are not subject to the terms
+of this license.
+
+General Provisions
+******************
+
+(10) Any use, modification, and distribution of the Standard or Modified
+Versions is governed by this Artistic License.  By using, modifying or
+distributing the Package, you accept this license.  Do not use, modify,
+or distribute the Package, if you do not accept this license.
+
+(11) If your Modified Version has been derived from a Modified Version
+made by someone other than you, you are nevertheless required to ensure
+that your Modified Version complies with the requirements of this
+license.
+
+(12) This license does not grant you the right to use any trademark,
+service mark, tradename, or logo of the Copyright Holder.
+
+(13) This license includes the non-exclusive, worldwide, free-of-charge
+patent license to make, have made, use, offer to sell, sell, import and
+otherwise transfer the Package with respect to any patent claims
+licensable by the Copyright Holder that are necessarily infringed by the
+Package.  If you institute patent litigation (including a cross-claim or
+counterclaim) against any party alleging that the Package constitutes
+direct or contributory patent infringement, then this Artistic License
+to you shall terminate on the date that such litigation is filed.
+
+(14) Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT
+HOLDER AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED
+WARRANTIES.  THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT
+PERMITTED BY YOUR LOCAL LAW.  UNLESS REQUIRED BY LAW, NO COPYRIGHT
+HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE
+OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/GPL-2
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/GPL-2	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/GPL-2	(revision 2476)
@@ -0,0 +1,340 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/GPL-3
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/GPL-3	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/GPL-3	(revision 2476)
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/AGPL-3
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/AGPL-3	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/licenses/AGPL-3	(revision 2476)
@@ -0,0 +1,662 @@
+                    GNU AFFERO GENERAL PUBLIC LICENSE
+                       Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU Affero General Public License is a free, copyleft license
+for software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+  The licenses for most software and other practical works are
+designed to take away your freedom to share and change the works.  By
+contrast, our General Public Licenses are intended to guarantee your
+freedom to share and change all versions of a program--to make sure it
+remains free software for all its users.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+  A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate.  Many developers of free software are heartened and
+encouraged by the resulting cooperation.  However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+  The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community.  It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server.  Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+  An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals.  This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU Affero General Public
+License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds
+of works, such as semiconductor masks.
+ 
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further restriction,
+you may remove that term.  If a license document contains a further
+restriction but permits relicensing or conveying under this License, you
+may add to a covered work material governed by the terms of that license
+document, provided that the further restriction does not survive such
+relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Remote Network Interaction; Use with the GNU General Public License.
+
+  Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software.  This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+  Notwithstanding any other provision of this License, you have permission
+to link or combine any covered work with a work licensed under version 3
+of the GNU General Public License into a single combined work, and to
+convey the resulting work.  The terms of this License will continue to
+apply to the part which is the covered work, but the work with which it is
+combined will remain governed by version 3 of the GNU General Public
+License.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time.  Such new
+versions will be similar in spirit to the present version, but may differ
+in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU Affero
+General Public License "or any later version" applies to it, you have
+the option of following the terms and conditions either of that
+numbered version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number
+of the GNU Affero General Public License, you may choose any version
+ever published by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that
+proxy's public statement of acceptance of a version permanently
+authorizes you to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                       END OF TERMS AND CONDITIONS
+
+              How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Affero General Public License as
+    published by the Free Software Foundation, either version 3 of the
+    License, or (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Affero General Public License for more details.
+
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source.  For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code.  There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+<http://www.gnu.org/licenses/>.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/UTC
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/UTC
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Portugal
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Portugal
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Busingen
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Busingen
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Isle_of_Man
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Isle_of_Man
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Berlin
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Berlin
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Oslo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Oslo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Amsterdam
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Amsterdam
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Dublin
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Dublin
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Simferopol
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Simferopol
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Bucharest
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Bucharest
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Vienna
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Vienna
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Istanbul
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Istanbul
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Athens
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Athens
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Volgograd
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Volgograd
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Nicosia
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Nicosia
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Vatican
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Vatican
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Andorra
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Andorra
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Bratislava
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Bratislava
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/London
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/London
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Vilnius
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Vilnius
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Ulyanovsk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Ulyanovsk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Tiraspol
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Tiraspol
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Kiev
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Kiev
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Madrid
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Madrid
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Tallinn
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Tallinn
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Sofia
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Sofia
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Jersey
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Jersey
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Mariehamn
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Mariehamn
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Brussels
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Brussels
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Zurich
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Zurich
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Samara
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Samara
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Belgrade
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Belgrade
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Podgorica
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Podgorica
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Moscow
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Moscow
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Copenhagen
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Copenhagen
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Budapest
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Budapest
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Sarajevo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Sarajevo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Zagreb
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Zagreb
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Zaporozhye
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Zaporozhye
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Astrakhan
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Astrakhan
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Monaco
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Monaco
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Paris
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Paris
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Belfast
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Belfast
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Minsk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Minsk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Riga
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Riga
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Tirane
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Tirane
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Kaliningrad
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Kaliningrad
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Prague
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Prague
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Lisbon
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Lisbon
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/San_Marino
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/San_Marino
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Luxembourg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Luxembourg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Vaduz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Vaduz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Kirov
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Kirov
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Skopje
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Skopje
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Malta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Malta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Guernsey
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Guernsey
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Uzhgorod
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Uzhgorod
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Ljubljana
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Ljubljana
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Rome
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Rome
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Chisinau
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Chisinau
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Stockholm
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Stockholm
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Warsaw
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Warsaw
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Helsinki
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Helsinki
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Gibraltar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Europe/Gibraltar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Libya
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Libya
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Atikokan
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Atikokan
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Bahia_Banderas
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Bahia_Banderas
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Mazatlan
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Mazatlan
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Campo_Grande
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Campo_Grande
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Asuncion
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Asuncion
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Montreal
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Montreal
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Virgin
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Virgin
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/St_Lucia
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/St_Lucia
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Santiago
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Santiago
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Jujuy
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Jujuy
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Costa_Rica
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Costa_Rica
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Cancun
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Cancun
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Iqaluit
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Iqaluit
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Detroit
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Detroit
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Santarem
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Santarem
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Hermosillo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Hermosillo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Paramaribo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Paramaribo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Kralendijk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Kralendijk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Martinique
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Martinique
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Winnipeg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Winnipeg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Lima
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Lima
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Sao_Paulo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Sao_Paulo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Maceio
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Maceio
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Chicago
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Chicago
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Adak
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Adak
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Merida
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Merida
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Boise
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Boise
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Grenada
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Grenada
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Port-au-Prince
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Port-au-Prince
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Glace_Bay
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Glace_Bay
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Cayman
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Cayman
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Indianapolis
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Indianapolis
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Sitka
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Sitka
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Whitehorse
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Whitehorse
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Yakutat
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Yakutat
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Monterrey
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Monterrey
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Cuiaba
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Cuiaba
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Louisville
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Louisville
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Fortaleza
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Fortaleza
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Araguaina
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Araguaina
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Los_Angeles
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Los_Angeles
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Caracas
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Caracas
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Guatemala
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Guatemala
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Bahia
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Bahia
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Noronha
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Noronha
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Inuvik
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Inuvik
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Boa_Vista
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Boa_Vista
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Cambridge_Bay
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Cambridge_Bay
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Managua
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Managua
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Cordoba
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Cordoba
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Phoenix
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Phoenix
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Barbados
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Barbados
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Danmarkshavn
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Danmarkshavn
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Creston
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Creston
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Buenos_Aires
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Buenos_Aires
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Belem
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Belem
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Guyana
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Guyana
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Anchorage
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Anchorage
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Fort_Nelson
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Fort_Nelson
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Rainy_River
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Rainy_River
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Nassau
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Nassau
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Dawson
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Dawson
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Nome
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Nome
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Nipigon
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Nipigon
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Toronto
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Toronto
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Thunder_Bay
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Thunder_Bay
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Knox_IN
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Knox_IN
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Regina
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Regina
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Goose_Bay
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Goose_Bay
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Vancouver
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Vancouver
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Godthab
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Godthab
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/St_Vincent
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/St_Vincent
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Moncton
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Moncton
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Fort_Wayne
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Fort_Wayne
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Atka
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Atka
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Scoresbysund
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Scoresbysund
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Denver
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Denver
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Tortola
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Tortola
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Juneau
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Juneau
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Antigua
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Antigua
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Miquelon
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Miquelon
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Puerto_Rico
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Puerto_Rico
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Guadeloupe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Guadeloupe
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Anguilla
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Anguilla
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Montserrat
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Montserrat
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Ojinaga
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Ojinaga
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Mexico_City
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Mexico_City
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Ensenada
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Ensenada
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Shiprock
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Shiprock
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Edmonton
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Edmonton
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Dominica
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Dominica
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Tegucigalpa
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Tegucigalpa
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Aruba
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Aruba
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/El_Salvador
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/El_Salvador
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/New_York
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/New_York
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Mendoza
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Mendoza
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Panama
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Panama
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Porto_Acre
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Porto_Acre
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Swift_Current
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Swift_Current
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Guayaquil
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Guayaquil
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Marigot
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Marigot
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Port_of_Spain
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Port_of_Spain
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Matamoros
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Matamoros
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Resolute
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Resolute
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Dawson_Creek
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Dawson_Creek
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/La_Paz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/La_Paz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Bogota
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Bogota
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Lower_Princes
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Lower_Princes
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Catamarca
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Catamarca
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Rio_Branco
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Rio_Branco
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Rosario
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Rosario
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Thule
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Thule
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Cayenne
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Cayenne
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Coral_Harbour
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Coral_Harbour
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Jamaica
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Jamaica
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Santa_Isabel
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Santa_Isabel
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/St_Johns
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/St_Johns
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Yellowknife
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Yellowknife
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Tijuana
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Tijuana
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Havana
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Havana
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Chihuahua
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Chihuahua
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Santo_Domingo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Santo_Domingo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Porto_Velho
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Porto_Velho
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/St_Thomas
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/St_Thomas
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/St_Barthelemy
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/St_Barthelemy
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/St_Kitts
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/St_Kitts
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Montevideo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Montevideo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Belize
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Belize
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Menominee
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Menominee
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Eirunepe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Eirunepe
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Halifax
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Halifax
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Rankin_Inlet
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Rankin_Inlet
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Curacao
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Curacao
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Metlakatla
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Metlakatla
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Manaus
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Manaus
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Blanc-Sablon
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Blanc-Sablon
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Pangnirtung
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Pangnirtung
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Recife
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Recife
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Grand_Turk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/America/Grand_Turk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Chagos
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Chagos
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Maldives
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Maldives
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Cocos
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Cocos
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Mahe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Mahe
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Christmas
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Christmas
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Comoro
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Comoro
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Reunion
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Reunion
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Antananarivo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Antananarivo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Kerguelen
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Kerguelen
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Mauritius
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Mauritius
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Mayotte
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Indian/Mayotte
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/NZ-CHAT
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/NZ-CHAT
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/PST8PDT
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/PST8PDT
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Atlantic
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Atlantic
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Eastern
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Eastern
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Newfoundland
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Newfoundland
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Yukon
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Yukon
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/East-Saskatchewan
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/East-Saskatchewan
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Central
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Central
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Mountain
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Mountain
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Saskatchewan
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Saskatchewan
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Pacific
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Canada/Pacific
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Hongkong
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Hongkong
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Cuba
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Cuba
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Greenwich
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Greenwich
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/CET
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/CET
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/EET
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/EET
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/EST5EDT
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/EST5EDT
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Poland
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Poland
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Navajo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Navajo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Israel
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Israel
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/GMT+0
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/GMT+0
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/ROC
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/ROC
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Brazil/Acre
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Brazil/Acre
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Brazil/East
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Brazil/East
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Brazil/DeNoronha
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Brazil/DeNoronha
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Brazil/West
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Brazil/West
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Turkey
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Turkey
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/GMT-0
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/GMT-0
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Eire
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Eire
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Mexico/BajaNorte
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Mexico/BajaNorte
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Mexico/BajaSur
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Mexico/BajaSur
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Mexico/General
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Mexico/General
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/VERSION
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/VERSION	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/VERSION	(revision 2476)
@@ -0,0 +1 @@
+2016d
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/MET
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/MET
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Jamaica
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Jamaica
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/South
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/South
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Yancowinna
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Yancowinna
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/NSW
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/NSW
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/ACT
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/ACT
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Sydney
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Sydney
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/LHI
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/LHI
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Canberra
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Canberra
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Hobart
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Hobart
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Victoria
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Victoria
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/West
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/West
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Lord_Howe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Lord_Howe
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Perth
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Perth
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Darwin
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Darwin
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Brisbane
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Brisbane
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Lindeman
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Lindeman
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Adelaide
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Adelaide
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Broken_Hill
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Broken_Hill
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Melbourne
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Melbourne
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Currie
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Currie
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Eucla
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Eucla
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/North
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/North
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Tasmania
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Tasmania
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Queensland
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Australia/Queensland
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/GMT
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/GMT
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/NZ
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/NZ
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/GB
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/GB
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/UCT
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/UCT
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/ROK
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/ROK
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/EST
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/EST
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/W-SU
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/W-SU
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Nauru
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Nauru
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Midway
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Midway
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Wallis
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Wallis
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Rarotonga
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Rarotonga
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Guadalcanal
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Guadalcanal
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Samoa
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Samoa
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Niue
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Niue
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Marquesas
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Marquesas
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Tongatapu
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Tongatapu
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Palau
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Palau
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Gambier
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Gambier
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Fakaofo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Fakaofo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Apia
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Apia
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Norfolk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Norfolk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Saipan
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Saipan
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Tarawa
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Tarawa
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Bougainville
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Bougainville
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Fiji
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Fiji
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Funafuti
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Funafuti
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Easter
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Easter
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Kosrae
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Kosrae
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Port_Moresby
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Port_Moresby
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Truk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Truk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Wake
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Wake
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Guam
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Guam
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Yap
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Yap
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Pago_Pago
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Pago_Pago
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Majuro
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Majuro
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Galapagos
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Galapagos
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Enderbury
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Enderbury
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Johnston
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Johnston
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Pohnpei
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Pohnpei
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Honolulu
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Honolulu
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Kwajalein
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Kwajalein
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Chatham
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Chatham
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Kiritimati
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Kiritimati
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Pitcairn
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Pitcairn
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Chuuk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Chuuk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Ponape
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Ponape
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Auckland
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Auckland
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Tahiti
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Tahiti
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Efate
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Efate
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Noumea
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Pacific/Noumea
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/HST
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/HST
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Faroe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Faroe
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Canary
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Canary
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Cape_Verde
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Cape_Verde
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Bermuda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Bermuda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Reykjavik
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Reykjavik
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/South_Georgia
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/South_Georgia
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Stanley
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Stanley
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Faeroe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Faeroe
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Jan_Mayen
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Jan_Mayen
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Madeira
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Madeira
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/St_Helena
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/St_Helena
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Azores
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Atlantic/Azores
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Zulu
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Zulu
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Iceland
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Iceland
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/MST7MDT
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/MST7MDT
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/WET
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/WET
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/MST
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/MST
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Arctic/Longyearbyen
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Arctic/Longyearbyen
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Kwajalein
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Kwajalein
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/GMT0
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/GMT0
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Universal
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Universal
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Troll
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Troll
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/DumontDUrville
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/DumontDUrville
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Palmer
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Palmer
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/South_Pole
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/South_Pole
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Syowa
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Syowa
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Casey
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Casey
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Mawson
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Mawson
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Rothera
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Rothera
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Vostok
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Vostok
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Davis
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Davis
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/McMurdo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/McMurdo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Macquarie
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Antarctica/Macquarie
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/GB-Eire
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/GB-Eire
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/CST6CDT
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/CST6CDT
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+10
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+10
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+11
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+11
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+12
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+12
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-10
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-10
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-11
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-11
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-12
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-12
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT0
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT0
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/Universal
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/Universal
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-13
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-13
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-14
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-14
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/UTC
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/UTC
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/Greenwich
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/Greenwich
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+0
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+0
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+1
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+1
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+2
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+2
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-0
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-0
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+3
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+3
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-1
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-1
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-2
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-2
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+4
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+4
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-3
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-3
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+5
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+5
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-4
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-4
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+6
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+6
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-5
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-5
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+7
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+7
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+8
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+8
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-6
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-6
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+9
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT+9
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-7
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-7
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/UCT
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/UCT
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-8
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-8
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-9
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/GMT-9
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/Zulu
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Etc/Zulu
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Dushanbe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Dushanbe
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Beirut
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Beirut
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Sakhalin
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Sakhalin
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Calcutta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Calcutta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kuala_Lumpur
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kuala_Lumpur
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Harbin
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Harbin
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Katmandu
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Katmandu
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Tokyo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Tokyo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Aden
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Aden
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Krasnoyarsk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Krasnoyarsk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Hong_Kong
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Hong_Kong
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Baghdad
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Baghdad
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Saigon
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Saigon
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Riyadh
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Riyadh
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Macao
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Macao
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ujung_Pandang
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ujung_Pandang
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Tashkent
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Tashkent
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Nicosia
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Nicosia
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Khandyga
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Khandyga
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Macau
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Macau
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Jerusalem
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Jerusalem
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Thimbu
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Thimbu
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Chita
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Chita
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Amman
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Amman
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Damascus
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Damascus
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Hovd
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Hovd
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Choibalsan
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Choibalsan
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kuwait
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kuwait
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Bahrain
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Bahrain
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Taipei
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Taipei
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Chungking
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Chungking
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kashgar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kashgar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Gaza
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Gaza
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Shanghai
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Shanghai
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Urumqi
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Urumqi
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Barnaul
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Barnaul
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kamchatka
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kamchatka
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Pontianak
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Pontianak
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Seoul
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Seoul
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Magadan
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Magadan
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Colombo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Colombo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Dacca
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Dacca
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Yakutsk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Yakutsk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Tomsk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Tomsk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Manila
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Manila
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Makassar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Makassar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ho_Chi_Minh
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ho_Chi_Minh
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Vladivostok
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Vladivostok
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ashgabat
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ashgabat
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Yekaterinburg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Yekaterinburg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Aqtobe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Aqtobe
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kathmandu
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kathmandu
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Bangkok
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Bangkok
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Hebron
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Hebron
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Anadyr
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Anadyr
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Novokuznetsk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Novokuznetsk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Istanbul
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Istanbul
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Dili
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Dili
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Tehran
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Tehran
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Vientiane
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Vientiane
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Dubai
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Dubai
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ulan_Bator
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ulan_Bator
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Singapore
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Singapore
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kuching
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kuching
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Srednekolymsk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Srednekolymsk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Phnom_Penh
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Phnom_Penh
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Irkutsk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Irkutsk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Muscat
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Muscat
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Oral
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Oral
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Qyzylorda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Qyzylorda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kabul
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kabul
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ust-Nera
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ust-Nera
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Tbilisi
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Tbilisi
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Samarkand
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Samarkand
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Karachi
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Karachi
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Rangoon
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Rangoon
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ashkhabad
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ashkhabad
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Qatar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Qatar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Dhaka
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Dhaka
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Novosibirsk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Novosibirsk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Yerevan
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Yerevan
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Tel_Aviv
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Tel_Aviv
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Omsk
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Omsk
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ulaanbaatar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Ulaanbaatar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Pyongyang
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Pyongyang
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Aqtau
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Aqtau
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Jayapura
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Jayapura
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Chongqing
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Chongqing
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Jakarta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Jakarta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Thimphu
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Thimphu
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Bishkek
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Bishkek
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Baku
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Baku
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Brunei
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Brunei
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kolkata
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Kolkata
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Almaty
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Asia/Almaty
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/iso3166.tab
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/iso3166.tab	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/iso3166.tab	(revision 2476)
@@ -0,0 +1,274 @@
+# ISO 3166 alpha-2 country codes
+#
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
+#
+# From Paul Eggert (2015-05-02):
+# This file contains a table of two-letter country codes.  Columns are
+# separated by a single tab.  Lines beginning with '#' are comments.
+# All text uses UTF-8 encoding.  The columns of the table are as follows:
+#
+# 1.  ISO 3166-1 alpha-2 country code, current as of
+#     ISO 3166-1 Newsletter VI-16 (2013-07-11).  See: Updates on ISO 3166
+#   http://www.iso.org/iso/home/standards/country_codes/updates_on_iso_3166.htm
+# 2.  The usual English name for the coded region,
+#     chosen so that alphabetic sorting of subsets produces helpful lists.
+#     This is not the same as the English name in the ISO 3166 tables.
+#
+# The table is sorted by country code.
+#
+# This table is intended as an aid for users, to help them select time
+# zone data appropriate for their practical needs.  It is not intended
+# to take or endorse any position on legal or territorial claims.
+#
+#country-
+#code	name of country, territory, area, or subdivision
+AD	Andorra
+AE	United Arab Emirates
+AF	Afghanistan
+AG	Antigua & Barbuda
+AI	Anguilla
+AL	Albania
+AM	Armenia
+AO	Angola
+AQ	Antarctica
+AR	Argentina
+AS	Samoa (American)
+AT	Austria
+AU	Australia
+AW	Aruba
+AX	Åland Islands
+AZ	Azerbaijan
+BA	Bosnia & Herzegovina
+BB	Barbados
+BD	Bangladesh
+BE	Belgium
+BF	Burkina Faso
+BG	Bulgaria
+BH	Bahrain
+BI	Burundi
+BJ	Benin
+BL	St Barthelemy
+BM	Bermuda
+BN	Brunei
+BO	Bolivia
+BQ	Caribbean NL
+BR	Brazil
+BS	Bahamas
+BT	Bhutan
+BV	Bouvet Island
+BW	Botswana
+BY	Belarus
+BZ	Belize
+CA	Canada
+CC	Cocos (Keeling) Islands
+CD	Congo (Dem. Rep.)
+CF	Central African Rep.
+CG	Congo (Rep.)
+CH	Switzerland
+CI	Côte d'Ivoire
+CK	Cook Islands
+CL	Chile
+CM	Cameroon
+CN	China
+CO	Colombia
+CR	Costa Rica
+CU	Cuba
+CV	Cape Verde
+CW	Curacao
+CX	Christmas Island
+CY	Cyprus
+CZ	Czech Republic
+DE	Germany
+DJ	Djibouti
+DK	Denmark
+DM	Dominica
+DO	Dominican Republic
+DZ	Algeria
+EC	Ecuador
+EE	Estonia
+EG	Egypt
+EH	Western Sahara
+ER	Eritrea
+ES	Spain
+ET	Ethiopia
+FI	Finland
+FJ	Fiji
+FK	Falkland Islands
+FM	Micronesia
+FO	Faroe Islands
+FR	France
+GA	Gabon
+GB	Britain (UK)
+GD	Grenada
+GE	Georgia
+GF	French Guiana
+GG	Guernsey
+GH	Ghana
+GI	Gibraltar
+GL	Greenland
+GM	Gambia
+GN	Guinea
+GP	Guadeloupe
+GQ	Equatorial Guinea
+GR	Greece
+GS	South Georgia & the South Sandwich Islands
+GT	Guatemala
+GU	Guam
+GW	Guinea-Bissau
+GY	Guyana
+HK	Hong Kong
+HM	Heard Island & McDonald Islands
+HN	Honduras
+HR	Croatia
+HT	Haiti
+HU	Hungary
+ID	Indonesia
+IE	Ireland
+IL	Israel
+IM	Isle of Man
+IN	India
+IO	British Indian Ocean Territory
+IQ	Iraq
+IR	Iran
+IS	Iceland
+IT	Italy
+JE	Jersey
+JM	Jamaica
+JO	Jordan
+JP	Japan
+KE	Kenya
+KG	Kyrgyzstan
+KH	Cambodia
+KI	Kiribati
+KM	Comoros
+KN	St Kitts & Nevis
+KP	Korea (North)
+KR	Korea (South)
+KW	Kuwait
+KY	Cayman Islands
+KZ	Kazakhstan
+LA	Laos
+LB	Lebanon
+LC	St Lucia
+LI	Liechtenstein
+LK	Sri Lanka
+LR	Liberia
+LS	Lesotho
+LT	Lithuania
+LU	Luxembourg
+LV	Latvia
+LY	Libya
+MA	Morocco
+MC	Monaco
+MD	Moldova
+ME	Montenegro
+MF	St Martin (French)
+MG	Madagascar
+MH	Marshall Islands
+MK	Macedonia
+ML	Mali
+MM	Myanmar (Burma)
+MN	Mongolia
+MO	Macau
+MP	Northern Mariana Islands
+MQ	Martinique
+MR	Mauritania
+MS	Montserrat
+MT	Malta
+MU	Mauritius
+MV	Maldives
+MW	Malawi
+MX	Mexico
+MY	Malaysia
+MZ	Mozambique
+NA	Namibia
+NC	New Caledonia
+NE	Niger
+NF	Norfolk Island
+NG	Nigeria
+NI	Nicaragua
+NL	Netherlands
+NO	Norway
+NP	Nepal
+NR	Nauru
+NU	Niue
+NZ	New Zealand
+OM	Oman
+PA	Panama
+PE	Peru
+PF	French Polynesia
+PG	Papua New Guinea
+PH	Philippines
+PK	Pakistan
+PL	Poland
+PM	St Pierre & Miquelon
+PN	Pitcairn
+PR	Puerto Rico
+PS	Palestine
+PT	Portugal
+PW	Palau
+PY	Paraguay
+QA	Qatar
+RE	Réunion
+RO	Romania
+RS	Serbia
+RU	Russia
+RW	Rwanda
+SA	Saudi Arabia
+SB	Solomon Islands
+SC	Seychelles
+SD	Sudan
+SE	Sweden
+SG	Singapore
+SH	St Helena
+SI	Slovenia
+SJ	Svalbard & Jan Mayen
+SK	Slovakia
+SL	Sierra Leone
+SM	San Marino
+SN	Senegal
+SO	Somalia
+SR	Suriname
+SS	South Sudan
+ST	Sao Tome & Principe
+SV	El Salvador
+SX	St Maarten (Dutch)
+SY	Syria
+SZ	Swaziland
+TC	Turks & Caicos Is
+TD	Chad
+TF	French Southern & Antarctic Lands
+TG	Togo
+TH	Thailand
+TJ	Tajikistan
+TK	Tokelau
+TL	East Timor
+TM	Turkmenistan
+TN	Tunisia
+TO	Tonga
+TR	Turkey
+TT	Trinidad & Tobago
+TV	Tuvalu
+TW	Taiwan
+TZ	Tanzania
+UA	Ukraine
+UG	Uganda
+UM	US minor outlying islands
+US	United States
+UY	Uruguay
+UZ	Uzbekistan
+VA	Vatican City
+VC	St Vincent
+VE	Venezuela
+VG	Virgin Islands (UK)
+VI	Virgin Islands (US)
+VN	Vietnam
+VU	Vanuatu
+WF	Wallis & Futuna
+WS	Samoa (western)
+YE	Yemen
+YT	Mayotte
+ZA	South Africa
+ZM	Zambia
+ZW	Zimbabwe
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/zone.tab
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/zone.tab	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/zone.tab	(revision 2476)
@@ -0,0 +1,445 @@
+# tz zone descriptions (deprecated version)
+#
+# This file is in the public domain, so clarified as of
+# 2009-05-17 by Arthur David Olson.
+#
+# From Paul Eggert (2014-07-31):
+# This file is intended as a backward-compatibility aid for older programs.
+# New programs should use zone1970.tab.  This file is like zone1970.tab (see
+# zone1970.tab's comments), but with the following additional restrictions:
+#
+# 1.  This file contains only ASCII characters.
+# 2.  The first data column contains exactly one country code.
+#
+# Because of (2), each row stands for an area that is the intersection
+# of a region identified by a country code and of a zone where civil
+# clocks have agreed since 1970; this is a narrower definition than
+# that of zone1970.tab.
+#
+# This table is intended as an aid for users, to help them select time
+# zone data entries appropriate for their practical needs.  It is not
+# intended to take or endorse any position on legal or territorial claims.
+#
+#country-
+#code	coordinates	TZ			comments
+AD	+4230+00131	Europe/Andorra
+AE	+2518+05518	Asia/Dubai
+AF	+3431+06912	Asia/Kabul
+AG	+1703-06148	America/Antigua
+AI	+1812-06304	America/Anguilla
+AL	+4120+01950	Europe/Tirane
+AM	+4011+04430	Asia/Yerevan
+AO	-0848+01314	Africa/Luanda
+AQ	-7750+16636	Antarctica/McMurdo	New Zealand time - McMurdo, South Pole
+AQ	-6617+11031	Antarctica/Casey	Casey
+AQ	-6835+07758	Antarctica/Davis	Davis
+AQ	-6640+14001	Antarctica/DumontDUrville	Dumont-d'Urville
+AQ	-6736+06253	Antarctica/Mawson	Mawson
+AQ	-6448-06406	Antarctica/Palmer	Palmer
+AQ	-6734-06808	Antarctica/Rothera	Rothera
+AQ	-690022+0393524	Antarctica/Syowa	Syowa
+AQ	-720041+0023206	Antarctica/Troll	Troll
+AQ	-7824+10654	Antarctica/Vostok	Vostok
+AR	-3436-05827	America/Argentina/Buenos_Aires	Buenos Aires (BA, CF)
+AR	-3124-06411	America/Argentina/Cordoba	Argentina (most areas: CB, CC, CN, ER, FM, MN, SE, SF)
+AR	-2447-06525	America/Argentina/Salta	Salta (SA, LP, NQ, RN)
+AR	-2411-06518	America/Argentina/Jujuy	Jujuy (JY)
+AR	-2649-06513	America/Argentina/Tucuman	Tucuman (TM)
+AR	-2828-06547	America/Argentina/Catamarca	Catamarca (CT); Chubut (CH)
+AR	-2926-06651	America/Argentina/La_Rioja	La Rioja (LR)
+AR	-3132-06831	America/Argentina/San_Juan	San Juan (SJ)
+AR	-3253-06849	America/Argentina/Mendoza	Mendoza (MZ)
+AR	-3319-06621	America/Argentina/San_Luis	San Luis (SL)
+AR	-5138-06913	America/Argentina/Rio_Gallegos	Santa Cruz (SC)
+AR	-5448-06818	America/Argentina/Ushuaia	Tierra del Fuego (TF)
+AS	-1416-17042	Pacific/Pago_Pago
+AT	+4813+01620	Europe/Vienna
+AU	-3133+15905	Australia/Lord_Howe	Lord Howe Island
+AU	-5430+15857	Antarctica/Macquarie	Macquarie Island
+AU	-4253+14719	Australia/Hobart	Tasmania (most areas)
+AU	-3956+14352	Australia/Currie	Tasmania (King Island)
+AU	-3749+14458	Australia/Melbourne	Victoria
+AU	-3352+15113	Australia/Sydney	New South Wales (most areas)
+AU	-3157+14127	Australia/Broken_Hill	New South Wales (Yancowinna)
+AU	-2728+15302	Australia/Brisbane	Queensland (most areas)
+AU	-2016+14900	Australia/Lindeman	Queensland (Whitsunday Islands)
+AU	-3455+13835	Australia/Adelaide	South Australia
+AU	-1228+13050	Australia/Darwin	Northern Territory
+AU	-3157+11551	Australia/Perth	Western Australia (most areas)
+AU	-3143+12852	Australia/Eucla	Western Australia (Eucla)
+AW	+1230-06958	America/Aruba
+AX	+6006+01957	Europe/Mariehamn
+AZ	+4023+04951	Asia/Baku
+BA	+4352+01825	Europe/Sarajevo
+BB	+1306-05937	America/Barbados
+BD	+2343+09025	Asia/Dhaka
+BE	+5050+00420	Europe/Brussels
+BF	+1222-00131	Africa/Ouagadougou
+BG	+4241+02319	Europe/Sofia
+BH	+2623+05035	Asia/Bahrain
+BI	-0323+02922	Africa/Bujumbura
+BJ	+0629+00237	Africa/Porto-Novo
+BL	+1753-06251	America/St_Barthelemy
+BM	+3217-06446	Atlantic/Bermuda
+BN	+0456+11455	Asia/Brunei
+BO	-1630-06809	America/La_Paz
+BQ	+120903-0681636	America/Kralendijk
+BR	-0351-03225	America/Noronha	Atlantic islands
+BR	-0127-04829	America/Belem	Para (east); Amapa
+BR	-0343-03830	America/Fortaleza	Brazil (northeast: MA, PI, CE, RN, PB)
+BR	-0803-03454	America/Recife	Pernambuco
+BR	-0712-04812	America/Araguaina	Tocantins
+BR	-0940-03543	America/Maceio	Alagoas, Sergipe
+BR	-1259-03831	America/Bahia	Bahia
+BR	-2332-04637	America/Sao_Paulo	Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS)
+BR	-2027-05437	America/Campo_Grande	Mato Grosso do Sul
+BR	-1535-05605	America/Cuiaba	Mato Grosso
+BR	-0226-05452	America/Santarem	Para (west)
+BR	-0846-06354	America/Porto_Velho	Rondonia
+BR	+0249-06040	America/Boa_Vista	Roraima
+BR	-0308-06001	America/Manaus	Amazonas (east)
+BR	-0640-06952	America/Eirunepe	Amazonas (west)
+BR	-0958-06748	America/Rio_Branco	Acre
+BS	+2505-07721	America/Nassau
+BT	+2728+08939	Asia/Thimphu
+BW	-2439+02555	Africa/Gaborone
+BY	+5354+02734	Europe/Minsk
+BZ	+1730-08812	America/Belize
+CA	+4734-05243	America/St_Johns	Newfoundland; Labrador (southeast)
+CA	+4439-06336	America/Halifax	Atlantic - NS (most areas); PE
+CA	+4612-05957	America/Glace_Bay	Atlantic - NS (Cape Breton)
+CA	+4606-06447	America/Moncton	Atlantic - New Brunswick
+CA	+5320-06025	America/Goose_Bay	Atlantic - Labrador (most areas)
+CA	+5125-05707	America/Blanc-Sablon	AST - QC (Lower North Shore)
+CA	+4339-07923	America/Toronto	Eastern - ON, QC (most areas)
+CA	+4901-08816	America/Nipigon	Eastern - ON, QC (no DST 1967-73)
+CA	+4823-08915	America/Thunder_Bay	Eastern - ON (Thunder Bay)
+CA	+6344-06828	America/Iqaluit	Eastern - NU (most east areas)
+CA	+6608-06544	America/Pangnirtung	Eastern - NU (Pangnirtung)
+CA	+484531-0913718	America/Atikokan	EST - ON (Atikokan); NU (Coral H)
+CA	+4953-09709	America/Winnipeg	Central - ON (west); Manitoba
+CA	+4843-09434	America/Rainy_River	Central - ON (Rainy R, Ft Frances)
+CA	+744144-0944945	America/Resolute	Central - NU (Resolute)
+CA	+624900-0920459	America/Rankin_Inlet	Central - NU (central)
+CA	+5024-10439	America/Regina	CST - SK (most areas)
+CA	+5017-10750	America/Swift_Current	CST - SK (midwest)
+CA	+5333-11328	America/Edmonton	Mountain - AB; BC (E); SK (W)
+CA	+690650-1050310	America/Cambridge_Bay	Mountain - NU (west)
+CA	+6227-11421	America/Yellowknife	Mountain - NT (central)
+CA	+682059-1334300	America/Inuvik	Mountain - NT (west)
+CA	+4906-11631	America/Creston	MST - BC (Creston)
+CA	+5946-12014	America/Dawson_Creek	MST - BC (Dawson Cr, Ft St John)
+CA	+5848-12242	America/Fort_Nelson	MST - BC (Ft Nelson)
+CA	+4916-12307	America/Vancouver	Pacific - BC (most areas)
+CA	+6043-13503	America/Whitehorse	Pacific - Yukon (south)
+CA	+6404-13925	America/Dawson	Pacific - Yukon (north)
+CC	-1210+09655	Indian/Cocos
+CD	-0418+01518	Africa/Kinshasa	Dem. Rep. of Congo (west)
+CD	-1140+02728	Africa/Lubumbashi	Dem. Rep. of Congo (east)
+CF	+0422+01835	Africa/Bangui
+CG	-0416+01517	Africa/Brazzaville
+CH	+4723+00832	Europe/Zurich
+CI	+0519-00402	Africa/Abidjan
+CK	-2114-15946	Pacific/Rarotonga
+CL	-3327-07040	America/Santiago	Chile (most areas)
+CL	-2709-10926	Pacific/Easter	Easter Island
+CM	+0403+00942	Africa/Douala
+CN	+3114+12128	Asia/Shanghai	Beijing Time
+CN	+4348+08735	Asia/Urumqi	Xinjiang Time
+CO	+0436-07405	America/Bogota
+CR	+0956-08405	America/Costa_Rica
+CU	+2308-08222	America/Havana
+CV	+1455-02331	Atlantic/Cape_Verde
+CW	+1211-06900	America/Curacao
+CX	-1025+10543	Indian/Christmas
+CY	+3510+03322	Asia/Nicosia
+CZ	+5005+01426	Europe/Prague
+DE	+5230+01322	Europe/Berlin	Germany (most areas)
+DE	+4742+00841	Europe/Busingen	Busingen
+DJ	+1136+04309	Africa/Djibouti
+DK	+5540+01235	Europe/Copenhagen
+DM	+1518-06124	America/Dominica
+DO	+1828-06954	America/Santo_Domingo
+DZ	+3647+00303	Africa/Algiers
+EC	-0210-07950	America/Guayaquil	Ecuador (mainland)
+EC	-0054-08936	Pacific/Galapagos	Galapagos Islands
+EE	+5925+02445	Europe/Tallinn
+EG	+3003+03115	Africa/Cairo
+EH	+2709-01312	Africa/El_Aaiun
+ER	+1520+03853	Africa/Asmara
+ES	+4024-00341	Europe/Madrid	Spain (mainland)
+ES	+3553-00519	Africa/Ceuta	Ceuta, Melilla
+ES	+2806-01524	Atlantic/Canary	Canary Islands
+ET	+0902+03842	Africa/Addis_Ababa
+FI	+6010+02458	Europe/Helsinki
+FJ	-1808+17825	Pacific/Fiji
+FK	-5142-05751	Atlantic/Stanley
+FM	+0725+15147	Pacific/Chuuk	Chuuk/Truk, Yap
+FM	+0658+15813	Pacific/Pohnpei	Pohnpei/Ponape
+FM	+0519+16259	Pacific/Kosrae	Kosrae
+FO	+6201-00646	Atlantic/Faroe
+FR	+4852+00220	Europe/Paris
+GA	+0023+00927	Africa/Libreville
+GB	+513030-0000731	Europe/London
+GD	+1203-06145	America/Grenada
+GE	+4143+04449	Asia/Tbilisi
+GF	+0456-05220	America/Cayenne
+GG	+4927-00232	Europe/Guernsey
+GH	+0533-00013	Africa/Accra
+GI	+3608-00521	Europe/Gibraltar
+GL	+6411-05144	America/Godthab	Greenland (most areas)
+GL	+7646-01840	America/Danmarkshavn	National Park (east coast)
+GL	+7029-02158	America/Scoresbysund	Scoresbysund/Ittoqqortoormiit
+GL	+7634-06847	America/Thule	Thule/Pituffik
+GM	+1328-01639	Africa/Banjul
+GN	+0931-01343	Africa/Conakry
+GP	+1614-06132	America/Guadeloupe
+GQ	+0345+00847	Africa/Malabo
+GR	+3758+02343	Europe/Athens
+GS	-5416-03632	Atlantic/South_Georgia
+GT	+1438-09031	America/Guatemala
+GU	+1328+14445	Pacific/Guam
+GW	+1151-01535	Africa/Bissau
+GY	+0648-05810	America/Guyana
+HK	+2217+11409	Asia/Hong_Kong
+HN	+1406-08713	America/Tegucigalpa
+HR	+4548+01558	Europe/Zagreb
+HT	+1832-07220	America/Port-au-Prince
+HU	+4730+01905	Europe/Budapest
+ID	-0610+10648	Asia/Jakarta	Java, Sumatra
+ID	-0002+10920	Asia/Pontianak	Borneo (west, central)
+ID	-0507+11924	Asia/Makassar	Borneo (east, south); Sulawesi/Celebes, Bali, Nusa Tengarra; Timor (west)
+ID	-0232+14042	Asia/Jayapura	New Guinea (West Papua / Irian Jaya); Malukus/Moluccas
+IE	+5320-00615	Europe/Dublin
+IL	+314650+0351326	Asia/Jerusalem
+IM	+5409-00428	Europe/Isle_of_Man
+IN	+2232+08822	Asia/Kolkata
+IO	-0720+07225	Indian/Chagos
+IQ	+3321+04425	Asia/Baghdad
+IR	+3540+05126	Asia/Tehran
+IS	+6409-02151	Atlantic/Reykjavik
+IT	+4154+01229	Europe/Rome
+JE	+4912-00207	Europe/Jersey
+JM	+175805-0764736	America/Jamaica
+JO	+3157+03556	Asia/Amman
+JP	+353916+1394441	Asia/Tokyo
+KE	-0117+03649	Africa/Nairobi
+KG	+4254+07436	Asia/Bishkek
+KH	+1133+10455	Asia/Phnom_Penh
+KI	+0125+17300	Pacific/Tarawa	Gilbert Islands
+KI	-0308-17105	Pacific/Enderbury	Phoenix Islands
+KI	+0152-15720	Pacific/Kiritimati	Line Islands
+KM	-1141+04316	Indian/Comoro
+KN	+1718-06243	America/St_Kitts
+KP	+3901+12545	Asia/Pyongyang
+KR	+3733+12658	Asia/Seoul
+KW	+2920+04759	Asia/Kuwait
+KY	+1918-08123	America/Cayman
+KZ	+4315+07657	Asia/Almaty	Kazakhstan (most areas)
+KZ	+4448+06528	Asia/Qyzylorda	Qyzylorda/Kyzylorda/Kzyl-Orda
+KZ	+5017+05710	Asia/Aqtobe	Aqtobe/Aktobe
+KZ	+4431+05016	Asia/Aqtau	Atyrau/Atirau/Gur'yev, Mangghystau/Mankistau
+KZ	+5113+05121	Asia/Oral	West Kazakhstan
+LA	+1758+10236	Asia/Vientiane
+LB	+3353+03530	Asia/Beirut
+LC	+1401-06100	America/St_Lucia
+LI	+4709+00931	Europe/Vaduz
+LK	+0656+07951	Asia/Colombo
+LR	+0618-01047	Africa/Monrovia
+LS	-2928+02730	Africa/Maseru
+LT	+5441+02519	Europe/Vilnius
+LU	+4936+00609	Europe/Luxembourg
+LV	+5657+02406	Europe/Riga
+LY	+3254+01311	Africa/Tripoli
+MA	+3339-00735	Africa/Casablanca
+MC	+4342+00723	Europe/Monaco
+MD	+4700+02850	Europe/Chisinau
+ME	+4226+01916	Europe/Podgorica
+MF	+1804-06305	America/Marigot
+MG	-1855+04731	Indian/Antananarivo
+MH	+0709+17112	Pacific/Majuro	Marshall Islands (most areas)
+MH	+0905+16720	Pacific/Kwajalein	Kwajalein
+MK	+4159+02126	Europe/Skopje
+ML	+1239-00800	Africa/Bamako
+MM	+1647+09610	Asia/Rangoon
+MN	+4755+10653	Asia/Ulaanbaatar	Mongolia (most areas)
+MN	+4801+09139	Asia/Hovd	Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan
+MN	+4804+11430	Asia/Choibalsan	Dornod, Sukhbaatar
+MO	+2214+11335	Asia/Macau
+MP	+1512+14545	Pacific/Saipan
+MQ	+1436-06105	America/Martinique
+MR	+1806-01557	Africa/Nouakchott
+MS	+1643-06213	America/Montserrat
+MT	+3554+01431	Europe/Malta
+MU	-2010+05730	Indian/Mauritius
+MV	+0410+07330	Indian/Maldives
+MW	-1547+03500	Africa/Blantyre
+MX	+1924-09909	America/Mexico_City	Central Time
+MX	+2105-08646	America/Cancun	Eastern Standard Time - Quintana Roo
+MX	+2058-08937	America/Merida	Central Time - Campeche, Yucatan
+MX	+2540-10019	America/Monterrey	Central Time - Durango; Coahuila, Nuevo Leon, Tamaulipas (most areas)
+MX	+2550-09730	America/Matamoros	Central Time US - Coahuila, Nuevo Leon, Tamaulipas (US border)
+MX	+2313-10625	America/Mazatlan	Mountain Time - Baja California Sur, Nayarit, Sinaloa
+MX	+2838-10605	America/Chihuahua	Mountain Time - Chihuahua (most areas)
+MX	+2934-10425	America/Ojinaga	Mountain Time US - Chihuahua (US border)
+MX	+2904-11058	America/Hermosillo	Mountain Standard Time - Sonora
+MX	+3232-11701	America/Tijuana	Pacific Time US - Baja California
+MX	+2048-10515	America/Bahia_Banderas	Central Time - Bahia de Banderas
+MY	+0310+10142	Asia/Kuala_Lumpur	Malaysia (peninsula)
+MY	+0133+11020	Asia/Kuching	Sabah, Sarawak
+MZ	-2558+03235	Africa/Maputo
+NA	-2234+01706	Africa/Windhoek
+NC	-2216+16627	Pacific/Noumea
+NE	+1331+00207	Africa/Niamey
+NF	-2903+16758	Pacific/Norfolk
+NG	+0627+00324	Africa/Lagos
+NI	+1209-08617	America/Managua
+NL	+5222+00454	Europe/Amsterdam
+NO	+5955+01045	Europe/Oslo
+NP	+2743+08519	Asia/Kathmandu
+NR	-0031+16655	Pacific/Nauru
+NU	-1901-16955	Pacific/Niue
+NZ	-3652+17446	Pacific/Auckland	New Zealand (most areas)
+NZ	-4357-17633	Pacific/Chatham	Chatham Islands
+OM	+2336+05835	Asia/Muscat
+PA	+0858-07932	America/Panama
+PE	-1203-07703	America/Lima
+PF	-1732-14934	Pacific/Tahiti	Society Islands
+PF	-0900-13930	Pacific/Marquesas	Marquesas Islands
+PF	-2308-13457	Pacific/Gambier	Gambier Islands
+PG	-0930+14710	Pacific/Port_Moresby	Papua New Guinea (most areas)
+PG	-0613+15534	Pacific/Bougainville	Bougainville
+PH	+1435+12100	Asia/Manila
+PK	+2452+06703	Asia/Karachi
+PL	+5215+02100	Europe/Warsaw
+PM	+4703-05620	America/Miquelon
+PN	-2504-13005	Pacific/Pitcairn
+PR	+182806-0660622	America/Puerto_Rico
+PS	+3130+03428	Asia/Gaza	Gaza Strip
+PS	+313200+0350542	Asia/Hebron	West Bank
+PT	+3843-00908	Europe/Lisbon	Portugal (mainland)
+PT	+3238-01654	Atlantic/Madeira	Madeira Islands
+PT	+3744-02540	Atlantic/Azores	Azores
+PW	+0720+13429	Pacific/Palau
+PY	-2516-05740	America/Asuncion
+QA	+2517+05132	Asia/Qatar
+RE	-2052+05528	Indian/Reunion
+RO	+4426+02606	Europe/Bucharest
+RS	+4450+02030	Europe/Belgrade
+RU	+5443+02030	Europe/Kaliningrad	MSK-01 - Kaliningrad
+RU	+554521+0373704	Europe/Moscow	MSK+00 - Moscow area
+RU	+4457+03406	Europe/Simferopol	MSK+00 - Crimea
+RU	+4844+04425	Europe/Volgograd	MSK+00 - Volgograd, Saratov
+RU	+5836+04939	Europe/Kirov	MSK+00 - Kirov
+RU	+4621+04803	Europe/Astrakhan	MSK+01 - Astrakhan
+RU	+5312+05009	Europe/Samara	MSK+01 - Samara, Udmurtia
+RU	+5420+04824	Europe/Ulyanovsk	MSK+01 - Ulyanovsk
+RU	+5651+06036	Asia/Yekaterinburg	MSK+02 - Urals
+RU	+5500+07324	Asia/Omsk	MSK+03 - Omsk
+RU	+5502+08255	Asia/Novosibirsk	MSK+03 - Novosibirsk
+RU	+5322+08345	Asia/Barnaul	MSK+04 - Altai
+RU	+5630+08458	Asia/Tomsk	MSK+04 - Tomsk
+RU	+5345+08707	Asia/Novokuznetsk	MSK+04 - Kemerovo
+RU	+5601+09250	Asia/Krasnoyarsk	MSK+04 - Krasnoyarsk area
+RU	+5216+10420	Asia/Irkutsk	MSK+05 - Irkutsk, Buryatia
+RU	+5203+11328	Asia/Chita	MSK+06 - Zabaykalsky
+RU	+6200+12940	Asia/Yakutsk	MSK+06 - Lena River
+RU	+623923+1353314	Asia/Khandyga	MSK+06 - Tomponsky, Ust-Maysky
+RU	+4310+13156	Asia/Vladivostok	MSK+07 - Amur River
+RU	+643337+1431336	Asia/Ust-Nera	MSK+07 - Oymyakonsky
+RU	+5934+15048	Asia/Magadan	MSK+08 - Magadan
+RU	+4658+14242	Asia/Sakhalin	MSK+08 - Sakhalin Island
+RU	+6728+15343	Asia/Srednekolymsk	MSK+08 - Sakha (E); North Kuril Is
+RU	+5301+15839	Asia/Kamchatka	MSK+09 - Kamchatka
+RU	+6445+17729	Asia/Anadyr	MSK+09 - Bering Sea
+RW	-0157+03004	Africa/Kigali
+SA	+2438+04643	Asia/Riyadh
+SB	-0932+16012	Pacific/Guadalcanal
+SC	-0440+05528	Indian/Mahe
+SD	+1536+03232	Africa/Khartoum
+SE	+5920+01803	Europe/Stockholm
+SG	+0117+10351	Asia/Singapore
+SH	-1555-00542	Atlantic/St_Helena
+SI	+4603+01431	Europe/Ljubljana
+SJ	+7800+01600	Arctic/Longyearbyen
+SK	+4809+01707	Europe/Bratislava
+SL	+0830-01315	Africa/Freetown
+SM	+4355+01228	Europe/San_Marino
+SN	+1440-01726	Africa/Dakar
+SO	+0204+04522	Africa/Mogadishu
+SR	+0550-05510	America/Paramaribo
+SS	+0451+03136	Africa/Juba
+ST	+0020+00644	Africa/Sao_Tome
+SV	+1342-08912	America/El_Salvador
+SX	+180305-0630250	America/Lower_Princes
+SY	+3330+03618	Asia/Damascus
+SZ	-2618+03106	Africa/Mbabane
+TC	+2128-07108	America/Grand_Turk
+TD	+1207+01503	Africa/Ndjamena
+TF	-492110+0701303	Indian/Kerguelen
+TG	+0608+00113	Africa/Lome
+TH	+1345+10031	Asia/Bangkok
+TJ	+3835+06848	Asia/Dushanbe
+TK	-0922-17114	Pacific/Fakaofo
+TL	-0833+12535	Asia/Dili
+TM	+3757+05823	Asia/Ashgabat
+TN	+3648+01011	Africa/Tunis
+TO	-2110-17510	Pacific/Tongatapu
+TR	+4101+02858	Europe/Istanbul
+TT	+1039-06131	America/Port_of_Spain
+TV	-0831+17913	Pacific/Funafuti
+TW	+2503+12130	Asia/Taipei
+TZ	-0648+03917	Africa/Dar_es_Salaam
+UA	+5026+03031	Europe/Kiev	Ukraine (most areas)
+UA	+4837+02218	Europe/Uzhgorod	Ruthenia
+UA	+4750+03510	Europe/Zaporozhye	Zaporozh'ye/Zaporizhia; Lugansk/Luhansk (east)
+UG	+0019+03225	Africa/Kampala
+UM	+1645-16931	Pacific/Johnston	Johnston Atoll
+UM	+2813-17722	Pacific/Midway	Midway Islands
+UM	+1917+16637	Pacific/Wake	Wake Island
+US	+404251-0740023	America/New_York	Eastern (most areas)
+US	+421953-0830245	America/Detroit	Eastern - MI (most areas)
+US	+381515-0854534	America/Kentucky/Louisville	Eastern - KY (Louisville area)
+US	+364947-0845057	America/Kentucky/Monticello	Eastern - KY (Wayne)
+US	+394606-0860929	America/Indiana/Indianapolis	Eastern - IN (most areas)
+US	+384038-0873143	America/Indiana/Vincennes	Eastern - IN (Da, Du, K, Mn)
+US	+410305-0863611	America/Indiana/Winamac	Eastern - IN (Pulaski)
+US	+382232-0862041	America/Indiana/Marengo	Eastern - IN (Crawford)
+US	+382931-0871643	America/Indiana/Petersburg	Eastern - IN (Pike)
+US	+384452-0850402	America/Indiana/Vevay	Eastern - IN (Switzerland)
+US	+415100-0873900	America/Chicago	Central (most areas)
+US	+375711-0864541	America/Indiana/Tell_City	Central - IN (Perry)
+US	+411745-0863730	America/Indiana/Knox	Central - IN (Starke)
+US	+450628-0873651	America/Menominee	Central - MI (Wisconsin border)
+US	+470659-1011757	America/North_Dakota/Center	Central - ND (Oliver)
+US	+465042-1012439	America/North_Dakota/New_Salem	Central - ND (Morton rural)
+US	+471551-1014640	America/North_Dakota/Beulah	Central - ND (Mercer)
+US	+394421-1045903	America/Denver	Mountain (most areas)
+US	+433649-1161209	America/Boise	Mountain - ID (south); OR (east)
+US	+332654-1120424	America/Phoenix	MST - Arizona (except Navajo)
+US	+340308-1181434	America/Los_Angeles	Pacific
+US	+611305-1495401	America/Anchorage	Alaska (most areas)
+US	+581807-1342511	America/Juneau	Alaska - Juneau area
+US	+571035-1351807	America/Sitka	Alaska - Sitka area
+US	+550737-1313435	America/Metlakatla	Alaska - Annette Island
+US	+593249-1394338	America/Yakutat	Alaska - Yakutat
+US	+643004-1652423	America/Nome	Alaska (west)
+US	+515248-1763929	America/Adak	Aleutian Islands
+US	+211825-1575130	Pacific/Honolulu	Hawaii
+UY	-3453-05611	America/Montevideo
+UZ	+3940+06648	Asia/Samarkand	Uzbekistan (west)
+UZ	+4120+06918	Asia/Tashkent	Uzbekistan (east)
+VA	+415408+0122711	Europe/Vatican
+VC	+1309-06114	America/St_Vincent
+VE	+1030-06656	America/Caracas
+VG	+1827-06437	America/Tortola
+VI	+1821-06456	America/St_Thomas
+VN	+1045+10640	Asia/Ho_Chi_Minh
+VU	-1740+16825	Pacific/Efate
+WF	-1318-17610	Pacific/Wallis
+WS	-1350-17144	Pacific/Apia
+YE	+1245+04512	Asia/Aden
+YT	-1247+04514	Indian/Mayotte
+ZA	-2615+02800	Africa/Johannesburg
+ZM	-1525+02817	Africa/Lusaka
+ZW	-1750+03103	Africa/Harare
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Chile/Continental
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Chile/Continental
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Chile/EasterIsland
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Chile/EasterIsland
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/PRC
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/PRC
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Windhoek
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Windhoek
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Djibouti
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Djibouti
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Banjul
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Banjul
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Dar_es_Salaam
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Dar_es_Salaam
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Ndjamena
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Ndjamena
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/El_Aaiun
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/El_Aaiun
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Juba
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Juba
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Tripoli
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Tripoli
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Porto-Novo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Porto-Novo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Dakar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Dakar
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Nairobi
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Nairobi
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Johannesburg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Johannesburg
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Mbabane
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Mbabane
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Algiers
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Algiers
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Freetown
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Freetown
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Libreville
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Libreville
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Bamako
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Bamako
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Lubumbashi
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Lubumbashi
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Gaborone
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Gaborone
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Bujumbura
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Bujumbura
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Kigali
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Kigali
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Harare
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Harare
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Asmara
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Asmara
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Timbuktu
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Timbuktu
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Lagos
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Lagos
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Maputo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Maputo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Asmera
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Asmera
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Casablanca
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Casablanca
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Accra
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Accra
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Nouakchott
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Nouakchott
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Ouagadougou
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Ouagadougou
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Blantyre
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Blantyre
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Lusaka
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Lusaka
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Mogadishu
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Mogadishu
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Niamey
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Niamey
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Brazzaville
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Brazzaville
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Bissau
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Bissau
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Abidjan
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Abidjan
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Khartoum
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Khartoum
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Addis_Ababa
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Addis_Ababa
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Monrovia
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Monrovia
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Malabo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Malabo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Lome
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Lome
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Maseru
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Maseru
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Cairo
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Cairo
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Kinshasa
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Kinshasa
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Ceuta
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Ceuta
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Tunis
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Tunis
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Luanda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Luanda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Bangui
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Bangui
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Douala
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Douala
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Sao_Tome
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Sao_Tome
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Conakry
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Conakry
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Kampala
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Africa/Kampala
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Pacific-New
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Pacific-New
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Central
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Central
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Indiana-Starke
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Indiana-Starke
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Mountain
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Mountain
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Alaska
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Alaska
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/East-Indiana
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/East-Indiana
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Pacific
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Pacific
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Michigan
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Michigan
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Samoa
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Samoa
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Eastern
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Eastern
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Aleutian
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Aleutian
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Hawaii
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Hawaii
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Arizona
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/US/Arizona
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Singapore
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Singapore
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Egypt
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Egypt
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Iran
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Iran
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Japan
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/zoneinfo/Japan
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/encodings/Adobe-glyphlist
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/encodings/Adobe-glyphlist	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/encodings/Adobe-glyphlist	(revision 2476)
@@ -0,0 +1,4200 @@
+# from http://partners.adobe.com/public/developer/en/opentype/glyphlist.txt
+A;0041
+AE;00C6
+AEacute;01FC
+AEmacron;01E2
+AEsmall;F7E6
+Aacute;00C1
+Aacutesmall;F7E1
+Abreve;0102
+Abreveacute;1EAE
+Abrevecyrillic;04D0
+Abrevedotbelow;1EB6
+Abrevegrave;1EB0
+Abrevehookabove;1EB2
+Abrevetilde;1EB4
+Acaron;01CD
+Acircle;24B6
+Acircumflex;00C2
+Acircumflexacute;1EA4
+Acircumflexdotbelow;1EAC
+Acircumflexgrave;1EA6
+Acircumflexhookabove;1EA8
+Acircumflexsmall;F7E2
+Acircumflextilde;1EAA
+Acute;F6C9
+Acutesmall;F7B4
+Acyrillic;0410
+Adblgrave;0200
+Adieresis;00C4
+Adieresiscyrillic;04D2
+Adieresismacron;01DE
+Adieresissmall;F7E4
+Adotbelow;1EA0
+Adotmacron;01E0
+Agrave;00C0
+Agravesmall;F7E0
+Ahookabove;1EA2
+Aiecyrillic;04D4
+Ainvertedbreve;0202
+Alpha;0391
+Alphatonos;0386
+Amacron;0100
+Amonospace;FF21
+Aogonek;0104
+Aring;00C5
+Aringacute;01FA
+Aringbelow;1E00
+Aringsmall;F7E5
+Asmall;F761
+Atilde;00C3
+Atildesmall;F7E3
+Aybarmenian;0531
+B;0042
+Bcircle;24B7
+Bdotaccent;1E02
+Bdotbelow;1E04
+Becyrillic;0411
+Benarmenian;0532
+Beta;0392
+Bhook;0181
+Blinebelow;1E06
+Bmonospace;FF22
+Brevesmall;F6F4
+Bsmall;F762
+Btopbar;0182
+C;0043
+Caarmenian;053E
+Cacute;0106
+Caron;F6CA
+Caronsmall;F6F5
+Ccaron;010C
+Ccedilla;00C7
+Ccedillaacute;1E08
+Ccedillasmall;F7E7
+Ccircle;24B8
+Ccircumflex;0108
+Cdot;010A
+Cdotaccent;010A
+Cedillasmall;F7B8
+Chaarmenian;0549
+Cheabkhasiancyrillic;04BC
+Checyrillic;0427
+Chedescenderabkhasiancyrillic;04BE
+Chedescendercyrillic;04B6
+Chedieresiscyrillic;04F4
+Cheharmenian;0543
+Chekhakassiancyrillic;04CB
+Cheverticalstrokecyrillic;04B8
+Chi;03A7
+Chook;0187
+Circumflexsmall;F6F6
+Cmonospace;FF23
+Coarmenian;0551
+Csmall;F763
+D;0044
+DZ;01F1
+DZcaron;01C4
+Daarmenian;0534
+Dafrican;0189
+Dcaron;010E
+Dcedilla;1E10
+Dcircle;24B9
+Dcircumflexbelow;1E12
+Dcroat;0110
+Ddotaccent;1E0A
+Ddotbelow;1E0C
+Decyrillic;0414
+Deicoptic;03EE
+Delta;2206
+Deltagreek;0394
+Dhook;018A
+Dieresis;F6CB
+DieresisAcute;F6CC
+DieresisGrave;F6CD
+Dieresissmall;F7A8
+Digammagreek;03DC
+Djecyrillic;0402
+Dlinebelow;1E0E
+Dmonospace;FF24
+Dotaccentsmall;F6F7
+Dslash;0110
+Dsmall;F764
+Dtopbar;018B
+Dz;01F2
+Dzcaron;01C5
+Dzeabkhasiancyrillic;04E0
+Dzecyrillic;0405
+Dzhecyrillic;040F
+E;0045
+Eacute;00C9
+Eacutesmall;F7E9
+Ebreve;0114
+Ecaron;011A
+Ecedillabreve;1E1C
+Echarmenian;0535
+Ecircle;24BA
+Ecircumflex;00CA
+Ecircumflexacute;1EBE
+Ecircumflexbelow;1E18
+Ecircumflexdotbelow;1EC6
+Ecircumflexgrave;1EC0
+Ecircumflexhookabove;1EC2
+Ecircumflexsmall;F7EA
+Ecircumflextilde;1EC4
+Ecyrillic;0404
+Edblgrave;0204
+Edieresis;00CB
+Edieresissmall;F7EB
+Edot;0116
+Edotaccent;0116
+Edotbelow;1EB8
+Efcyrillic;0424
+Egrave;00C8
+Egravesmall;F7E8
+Eharmenian;0537
+Ehookabove;1EBA
+Eightroman;2167
+Einvertedbreve;0206
+Eiotifiedcyrillic;0464
+Elcyrillic;041B
+Elevenroman;216A
+Emacron;0112
+Emacronacute;1E16
+Emacrongrave;1E14
+Emcyrillic;041C
+Emonospace;FF25
+Encyrillic;041D
+Endescendercyrillic;04A2
+Eng;014A
+Enghecyrillic;04A4
+Enhookcyrillic;04C7
+Eogonek;0118
+Eopen;0190
+Epsilon;0395
+Epsilontonos;0388
+Ercyrillic;0420
+Ereversed;018E
+Ereversedcyrillic;042D
+Escyrillic;0421
+Esdescendercyrillic;04AA
+Esh;01A9
+Esmall;F765
+Eta;0397
+Etarmenian;0538
+Etatonos;0389
+Eth;00D0
+Ethsmall;F7F0
+Etilde;1EBC
+Etildebelow;1E1A
+Euro;20AC
+Ezh;01B7
+Ezhcaron;01EE
+Ezhreversed;01B8
+F;0046
+Fcircle;24BB
+Fdotaccent;1E1E
+Feharmenian;0556
+Feicoptic;03E4
+Fhook;0191
+Fitacyrillic;0472
+Fiveroman;2164
+Fmonospace;FF26
+Fourroman;2163
+Fsmall;F766
+G;0047
+GBsquare;3387
+Gacute;01F4
+Gamma;0393
+Gammaafrican;0194
+Gangiacoptic;03EA
+Gbreve;011E
+Gcaron;01E6
+Gcedilla;0122
+Gcircle;24BC
+Gcircumflex;011C
+Gcommaaccent;0122
+Gdot;0120
+Gdotaccent;0120
+Gecyrillic;0413
+Ghadarmenian;0542
+Ghemiddlehookcyrillic;0494
+Ghestrokecyrillic;0492
+Gheupturncyrillic;0490
+Ghook;0193
+Gimarmenian;0533
+Gjecyrillic;0403
+Gmacron;1E20
+Gmonospace;FF27
+Grave;F6CE
+Gravesmall;F760
+Gsmall;F767
+Gsmallhook;029B
+Gstroke;01E4
+H;0048
+H18533;25CF
+H18543;25AA
+H18551;25AB
+H22073;25A1
+HPsquare;33CB
+Haabkhasiancyrillic;04A8
+Hadescendercyrillic;04B2
+Hardsigncyrillic;042A
+Hbar;0126
+Hbrevebelow;1E2A
+Hcedilla;1E28
+Hcircle;24BD
+Hcircumflex;0124
+Hdieresis;1E26
+Hdotaccent;1E22
+Hdotbelow;1E24
+Hmonospace;FF28
+Hoarmenian;0540
+Horicoptic;03E8
+Hsmall;F768
+Hungarumlaut;F6CF
+Hungarumlautsmall;F6F8
+Hzsquare;3390
+I;0049
+IAcyrillic;042F
+IJ;0132
+IUcyrillic;042E
+Iacute;00CD
+Iacutesmall;F7ED
+Ibreve;012C
+Icaron;01CF
+Icircle;24BE
+Icircumflex;00CE
+Icircumflexsmall;F7EE
+Icyrillic;0406
+Idblgrave;0208
+Idieresis;00CF
+Idieresisacute;1E2E
+Idieresiscyrillic;04E4
+Idieresissmall;F7EF
+Idot;0130
+Idotaccent;0130
+Idotbelow;1ECA
+Iebrevecyrillic;04D6
+Iecyrillic;0415
+Ifraktur;2111
+Igrave;00CC
+Igravesmall;F7EC
+Ihookabove;1EC8
+Iicyrillic;0418
+Iinvertedbreve;020A
+Iishortcyrillic;0419
+Imacron;012A
+Imacroncyrillic;04E2
+Imonospace;FF29
+Iniarmenian;053B
+Iocyrillic;0401
+Iogonek;012E
+Iota;0399
+Iotaafrican;0196
+Iotadieresis;03AA
+Iotatonos;038A
+Ismall;F769
+Istroke;0197
+Itilde;0128
+Itildebelow;1E2C
+Izhitsacyrillic;0474
+Izhitsadblgravecyrillic;0476
+J;004A
+Jaarmenian;0541
+Jcircle;24BF
+Jcircumflex;0134
+Jecyrillic;0408
+Jheharmenian;054B
+Jmonospace;FF2A
+Jsmall;F76A
+K;004B
+KBsquare;3385
+KKsquare;33CD
+Kabashkircyrillic;04A0
+Kacute;1E30
+Kacyrillic;041A
+Kadescendercyrillic;049A
+Kahookcyrillic;04C3
+Kappa;039A
+Kastrokecyrillic;049E
+Kaverticalstrokecyrillic;049C
+Kcaron;01E8
+Kcedilla;0136
+Kcircle;24C0
+Kcommaaccent;0136
+Kdotbelow;1E32
+Keharmenian;0554
+Kenarmenian;053F
+Khacyrillic;0425
+Kheicoptic;03E6
+Khook;0198
+Kjecyrillic;040C
+Klinebelow;1E34
+Kmonospace;FF2B
+Koppacyrillic;0480
+Koppagreek;03DE
+Ksicyrillic;046E
+Ksmall;F76B
+L;004C
+LJ;01C7
+LL;F6BF
+Lacute;0139
+Lambda;039B
+Lcaron;013D
+Lcedilla;013B
+Lcircle;24C1
+Lcircumflexbelow;1E3C
+Lcommaaccent;013B
+Ldot;013F
+Ldotaccent;013F
+Ldotbelow;1E36
+Ldotbelowmacron;1E38
+Liwnarmenian;053C
+Lj;01C8
+Ljecyrillic;0409
+Llinebelow;1E3A
+Lmonospace;FF2C
+Lslash;0141
+Lslashsmall;F6F9
+Lsmall;F76C
+M;004D
+MBsquare;3386
+Macron;F6D0
+Macronsmall;F7AF
+Macute;1E3E
+Mcircle;24C2
+Mdotaccent;1E40
+Mdotbelow;1E42
+Menarmenian;0544
+Mmonospace;FF2D
+Msmall;F76D
+Mturned;019C
+Mu;039C
+N;004E
+NJ;01CA
+Nacute;0143
+Ncaron;0147
+Ncedilla;0145
+Ncircle;24C3
+Ncircumflexbelow;1E4A
+Ncommaaccent;0145
+Ndotaccent;1E44
+Ndotbelow;1E46
+Nhookleft;019D
+Nineroman;2168
+Nj;01CB
+Njecyrillic;040A
+Nlinebelow;1E48
+Nmonospace;FF2E
+Nowarmenian;0546
+Nsmall;F76E
+Ntilde;00D1
+Ntildesmall;F7F1
+Nu;039D
+O;004F
+OE;0152
+OEsmall;F6FA
+Oacute;00D3
+Oacutesmall;F7F3
+Obarredcyrillic;04E8
+Obarreddieresiscyrillic;04EA
+Obreve;014E
+Ocaron;01D1
+Ocenteredtilde;019F
+Ocircle;24C4
+Ocircumflex;00D4
+Ocircumflexacute;1ED0
+Ocircumflexdotbelow;1ED8
+Ocircumflexgrave;1ED2
+Ocircumflexhookabove;1ED4
+Ocircumflexsmall;F7F4
+Ocircumflextilde;1ED6
+Ocyrillic;041E
+Odblacute;0150
+Odblgrave;020C
+Odieresis;00D6
+Odieresiscyrillic;04E6
+Odieresissmall;F7F6
+Odotbelow;1ECC
+Ogoneksmall;F6FB
+Ograve;00D2
+Ogravesmall;F7F2
+Oharmenian;0555
+Ohm;2126
+Ohookabove;1ECE
+Ohorn;01A0
+Ohornacute;1EDA
+Ohorndotbelow;1EE2
+Ohorngrave;1EDC
+Ohornhookabove;1EDE
+Ohorntilde;1EE0
+Ohungarumlaut;0150
+Oi;01A2
+Oinvertedbreve;020E
+Omacron;014C
+Omacronacute;1E52
+Omacrongrave;1E50
+Omega;2126
+Omegacyrillic;0460
+Omegagreek;03A9
+Omegaroundcyrillic;047A
+Omegatitlocyrillic;047C
+Omegatonos;038F
+Omicron;039F
+Omicrontonos;038C
+Omonospace;FF2F
+Oneroman;2160
+Oogonek;01EA
+Oogonekmacron;01EC
+Oopen;0186
+Oslash;00D8
+Oslashacute;01FE
+Oslashsmall;F7F8
+Osmall;F76F
+Ostrokeacute;01FE
+Otcyrillic;047E
+Otilde;00D5
+Otildeacute;1E4C
+Otildedieresis;1E4E
+Otildesmall;F7F5
+P;0050
+Pacute;1E54
+Pcircle;24C5
+Pdotaccent;1E56
+Pecyrillic;041F
+Peharmenian;054A
+Pemiddlehookcyrillic;04A6
+Phi;03A6
+Phook;01A4
+Pi;03A0
+Piwrarmenian;0553
+Pmonospace;FF30
+Psi;03A8
+Psicyrillic;0470
+Psmall;F770
+Q;0051
+Qcircle;24C6
+Qmonospace;FF31
+Qsmall;F771
+R;0052
+Raarmenian;054C
+Racute;0154
+Rcaron;0158
+Rcedilla;0156
+Rcircle;24C7
+Rcommaaccent;0156
+Rdblgrave;0210
+Rdotaccent;1E58
+Rdotbelow;1E5A
+Rdotbelowmacron;1E5C
+Reharmenian;0550
+Rfraktur;211C
+Rho;03A1
+Ringsmall;F6FC
+Rinvertedbreve;0212
+Rlinebelow;1E5E
+Rmonospace;FF32
+Rsmall;F772
+Rsmallinverted;0281
+Rsmallinvertedsuperior;02B6
+S;0053
+SF010000;250C
+SF020000;2514
+SF030000;2510
+SF040000;2518
+SF050000;253C
+SF060000;252C
+SF070000;2534
+SF080000;251C
+SF090000;2524
+SF100000;2500
+SF110000;2502
+SF190000;2561
+SF200000;2562
+SF210000;2556
+SF220000;2555
+SF230000;2563
+SF240000;2551
+SF250000;2557
+SF260000;255D
+SF270000;255C
+SF280000;255B
+SF360000;255E
+SF370000;255F
+SF380000;255A
+SF390000;2554
+SF400000;2569
+SF410000;2566
+SF420000;2560
+SF430000;2550
+SF440000;256C
+SF450000;2567
+SF460000;2568
+SF470000;2564
+SF480000;2565
+SF490000;2559
+SF500000;2558
+SF510000;2552
+SF520000;2553
+SF530000;256B
+SF540000;256A
+Sacute;015A
+Sacutedotaccent;1E64
+Sampigreek;03E0
+Scaron;0160
+Scarondotaccent;1E66
+Scaronsmall;F6FD
+Scedilla;015E
+Schwa;018F
+Schwacyrillic;04D8
+Schwadieresiscyrillic;04DA
+Scircle;24C8
+Scircumflex;015C
+Scommaaccent;0218
+Sdotaccent;1E60
+Sdotbelow;1E62
+Sdotbelowdotaccent;1E68
+Seharmenian;054D
+Sevenroman;2166
+Shaarmenian;0547
+Shacyrillic;0428
+Shchacyrillic;0429
+Sheicoptic;03E2
+Shhacyrillic;04BA
+Shimacoptic;03EC
+Sigma;03A3
+Sixroman;2165
+Smonospace;FF33
+Softsigncyrillic;042C
+Ssmall;F773
+Stigmagreek;03DA
+T;0054
+Tau;03A4
+Tbar;0166
+Tcaron;0164
+Tcedilla;0162
+Tcircle;24C9
+Tcircumflexbelow;1E70
+Tcommaaccent;0162
+Tdotaccent;1E6A
+Tdotbelow;1E6C
+Tecyrillic;0422
+Tedescendercyrillic;04AC
+Tenroman;2169
+Tetsecyrillic;04B4
+Theta;0398
+Thook;01AC
+Thorn;00DE
+Thornsmall;F7FE
+Threeroman;2162
+Tildesmall;F6FE
+Tiwnarmenian;054F
+Tlinebelow;1E6E
+Tmonospace;FF34
+Toarmenian;0539
+Tonefive;01BC
+Tonesix;0184
+Tonetwo;01A7
+Tretroflexhook;01AE
+Tsecyrillic;0426
+Tshecyrillic;040B
+Tsmall;F774
+Twelveroman;216B
+Tworoman;2161
+U;0055
+Uacute;00DA
+Uacutesmall;F7FA
+Ubreve;016C
+Ucaron;01D3
+Ucircle;24CA
+Ucircumflex;00DB
+Ucircumflexbelow;1E76
+Ucircumflexsmall;F7FB
+Ucyrillic;0423
+Udblacute;0170
+Udblgrave;0214
+Udieresis;00DC
+Udieresisacute;01D7
+Udieresisbelow;1E72
+Udieresiscaron;01D9
+Udieresiscyrillic;04F0
+Udieresisgrave;01DB
+Udieresismacron;01D5
+Udieresissmall;F7FC
+Udotbelow;1EE4
+Ugrave;00D9
+Ugravesmall;F7F9
+Uhookabove;1EE6
+Uhorn;01AF
+Uhornacute;1EE8
+Uhorndotbelow;1EF0
+Uhorngrave;1EEA
+Uhornhookabove;1EEC
+Uhorntilde;1EEE
+Uhungarumlaut;0170
+Uhungarumlautcyrillic;04F2
+Uinvertedbreve;0216
+Ukcyrillic;0478
+Umacron;016A
+Umacroncyrillic;04EE
+Umacrondieresis;1E7A
+Umonospace;FF35
+Uogonek;0172
+Upsilon;03A5
+Upsilon1;03D2
+Upsilonacutehooksymbolgreek;03D3
+Upsilonafrican;01B1
+Upsilondieresis;03AB
+Upsilondieresishooksymbolgreek;03D4
+Upsilonhooksymbol;03D2
+Upsilontonos;038E
+Uring;016E
+Ushortcyrillic;040E
+Usmall;F775
+Ustraightcyrillic;04AE
+Ustraightstrokecyrillic;04B0
+Utilde;0168
+Utildeacute;1E78
+Utildebelow;1E74
+V;0056
+Vcircle;24CB
+Vdotbelow;1E7E
+Vecyrillic;0412
+Vewarmenian;054E
+Vhook;01B2
+Vmonospace;FF36
+Voarmenian;0548
+Vsmall;F776
+Vtilde;1E7C
+W;0057
+Wacute;1E82
+Wcircle;24CC
+Wcircumflex;0174
+Wdieresis;1E84
+Wdotaccent;1E86
+Wdotbelow;1E88
+Wgrave;1E80
+Wmonospace;FF37
+Wsmall;F777
+X;0058
+Xcircle;24CD
+Xdieresis;1E8C
+Xdotaccent;1E8A
+Xeharmenian;053D
+Xi;039E
+Xmonospace;FF38
+Xsmall;F778
+Y;0059
+Yacute;00DD
+Yacutesmall;F7FD
+Yatcyrillic;0462
+Ycircle;24CE
+Ycircumflex;0176
+Ydieresis;0178
+Ydieresissmall;F7FF
+Ydotaccent;1E8E
+Ydotbelow;1EF4
+Yericyrillic;042B
+Yerudieresiscyrillic;04F8
+Ygrave;1EF2
+Yhook;01B3
+Yhookabove;1EF6
+Yiarmenian;0545
+Yicyrillic;0407
+Yiwnarmenian;0552
+Ymonospace;FF39
+Ysmall;F779
+Ytilde;1EF8
+Yusbigcyrillic;046A
+Yusbigiotifiedcyrillic;046C
+Yuslittlecyrillic;0466
+Yuslittleiotifiedcyrillic;0468
+Z;005A
+Zaarmenian;0536
+Zacute;0179
+Zcaron;017D
+Zcaronsmall;F6FF
+Zcircle;24CF
+Zcircumflex;1E90
+Zdot;017B
+Zdotaccent;017B
+Zdotbelow;1E92
+Zecyrillic;0417
+Zedescendercyrillic;0498
+Zedieresiscyrillic;04DE
+Zeta;0396
+Zhearmenian;053A
+Zhebrevecyrillic;04C1
+Zhecyrillic;0416
+Zhedescendercyrillic;0496
+Zhedieresiscyrillic;04DC
+Zlinebelow;1E94
+Zmonospace;FF3A
+Zsmall;F77A
+Zstroke;01B5
+a;0061
+aabengali;0986
+aacute;00E1
+aadeva;0906
+aagujarati;0A86
+aagurmukhi;0A06
+aamatragurmukhi;0A3E
+aarusquare;3303
+aavowelsignbengali;09BE
+aavowelsigndeva;093E
+aavowelsigngujarati;0ABE
+abbreviationmarkarmenian;055F
+abbreviationsigndeva;0970
+abengali;0985
+abopomofo;311A
+abreve;0103
+abreveacute;1EAF
+abrevecyrillic;04D1
+abrevedotbelow;1EB7
+abrevegrave;1EB1
+abrevehookabove;1EB3
+abrevetilde;1EB5
+acaron;01CE
+acircle;24D0
+acircumflex;00E2
+acircumflexacute;1EA5
+acircumflexdotbelow;1EAD
+acircumflexgrave;1EA7
+acircumflexhookabove;1EA9
+acircumflextilde;1EAB
+acute;00B4
+acutebelowcmb;0317
+acutecmb;0301
+acutecomb;0301
+acutedeva;0954
+acutelowmod;02CF
+acutetonecmb;0341
+acyrillic;0430
+adblgrave;0201
+addakgurmukhi;0A71
+adeva;0905
+adieresis;00E4
+adieresiscyrillic;04D3
+adieresismacron;01DF
+adotbelow;1EA1
+adotmacron;01E1
+ae;00E6
+aeacute;01FD
+aekorean;3150
+aemacron;01E3
+afii00208;2015
+afii08941;20A4
+afii10017;0410
+afii10018;0411
+afii10019;0412
+afii10020;0413
+afii10021;0414
+afii10022;0415
+afii10023;0401
+afii10024;0416
+afii10025;0417
+afii10026;0418
+afii10027;0419
+afii10028;041A
+afii10029;041B
+afii10030;041C
+afii10031;041D
+afii10032;041E
+afii10033;041F
+afii10034;0420
+afii10035;0421
+afii10036;0422
+afii10037;0423
+afii10038;0424
+afii10039;0425
+afii10040;0426
+afii10041;0427
+afii10042;0428
+afii10043;0429
+afii10044;042A
+afii10045;042B
+afii10046;042C
+afii10047;042D
+afii10048;042E
+afii10049;042F
+afii10050;0490
+afii10051;0402
+afii10052;0403
+afii10053;0404
+afii10054;0405
+afii10055;0406
+afii10056;0407
+afii10057;0408
+afii10058;0409
+afii10059;040A
+afii10060;040B
+afii10061;040C
+afii10062;040E
+afii10063;F6C4
+afii10064;F6C5
+afii10065;0430
+afii10066;0431
+afii10067;0432
+afii10068;0433
+afii10069;0434
+afii10070;0435
+afii10071;0451
+afii10072;0436
+afii10073;0437
+afii10074;0438
+afii10075;0439
+afii10076;043A
+afii10077;043B
+afii10078;043C
+afii10079;043D
+afii10080;043E
+afii10081;043F
+afii10082;0440
+afii10083;0441
+afii10084;0442
+afii10085;0443
+afii10086;0444
+afii10087;0445
+afii10088;0446
+afii10089;0447
+afii10090;0448
+afii10091;0449
+afii10092;044A
+afii10093;044B
+afii10094;044C
+afii10095;044D
+afii10096;044E
+afii10097;044F
+afii10098;0491
+afii10099;0452
+afii10100;0453
+afii10101;0454
+afii10102;0455
+afii10103;0456
+afii10104;0457
+afii10105;0458
+afii10106;0459
+afii10107;045A
+afii10108;045B
+afii10109;045C
+afii10110;045E
+afii10145;040F
+afii10146;0462
+afii10147;0472
+afii10148;0474
+afii10192;F6C6
+afii10193;045F
+afii10194;0463
+afii10195;0473
+afii10196;0475
+afii10831;F6C7
+afii10832;F6C8
+afii10846;04D9
+afii299;200E
+afii300;200F
+afii301;200D
+afii57381;066A
+afii57388;060C
+afii57392;0660
+afii57393;0661
+afii57394;0662
+afii57395;0663
+afii57396;0664
+afii57397;0665
+afii57398;0666
+afii57399;0667
+afii57400;0668
+afii57401;0669
+afii57403;061B
+afii57407;061F
+afii57409;0621
+afii57410;0622
+afii57411;0623
+afii57412;0624
+afii57413;0625
+afii57414;0626
+afii57415;0627
+afii57416;0628
+afii57417;0629
+afii57418;062A
+afii57419;062B
+afii57420;062C
+afii57421;062D
+afii57422;062E
+afii57423;062F
+afii57424;0630
+afii57425;0631
+afii57426;0632
+afii57427;0633
+afii57428;0634
+afii57429;0635
+afii57430;0636
+afii57431;0637
+afii57432;0638
+afii57433;0639
+afii57434;063A
+afii57440;0640
+afii57441;0641
+afii57442;0642
+afii57443;0643
+afii57444;0644
+afii57445;0645
+afii57446;0646
+afii57448;0648
+afii57449;0649
+afii57450;064A
+afii57451;064B
+afii57452;064C
+afii57453;064D
+afii57454;064E
+afii57455;064F
+afii57456;0650
+afii57457;0651
+afii57458;0652
+afii57470;0647
+afii57505;06A4
+afii57506;067E
+afii57507;0686
+afii57508;0698
+afii57509;06AF
+afii57511;0679
+afii57512;0688
+afii57513;0691
+afii57514;06BA
+afii57519;06D2
+afii57534;06D5
+afii57636;20AA
+afii57645;05BE
+afii57658;05C3
+afii57664;05D0
+afii57665;05D1
+afii57666;05D2
+afii57667;05D3
+afii57668;05D4
+afii57669;05D5
+afii57670;05D6
+afii57671;05D7
+afii57672;05D8
+afii57673;05D9
+afii57674;05DA
+afii57675;05DB
+afii57676;05DC
+afii57677;05DD
+afii57678;05DE
+afii57679;05DF
+afii57680;05E0
+afii57681;05E1
+afii57682;05E2
+afii57683;05E3
+afii57684;05E4
+afii57685;05E5
+afii57686;05E6
+afii57687;05E7
+afii57688;05E8
+afii57689;05E9
+afii57690;05EA
+afii57694;FB2A
+afii57695;FB2B
+afii57700;FB4B
+afii57705;FB1F
+afii57716;05F0
+afii57717;05F1
+afii57718;05F2
+afii57723;FB35
+afii57793;05B4
+afii57794;05B5
+afii57795;05B6
+afii57796;05BB
+afii57797;05B8
+afii57798;05B7
+afii57799;05B0
+afii57800;05B2
+afii57801;05B1
+afii57802;05B3
+afii57803;05C2
+afii57804;05C1
+afii57806;05B9
+afii57807;05BC
+afii57839;05BD
+afii57841;05BF
+afii57842;05C0
+afii57929;02BC
+afii61248;2105
+afii61289;2113
+afii61352;2116
+afii61573;202C
+afii61574;202D
+afii61575;202E
+afii61664;200C
+afii63167;066D
+afii64937;02BD
+agrave;00E0
+agujarati;0A85
+agurmukhi;0A05
+ahiragana;3042
+ahookabove;1EA3
+aibengali;0990
+aibopomofo;311E
+aideva;0910
+aiecyrillic;04D5
+aigujarati;0A90
+aigurmukhi;0A10
+aimatragurmukhi;0A48
+ainarabic;0639
+ainfinalarabic;FECA
+aininitialarabic;FECB
+ainmedialarabic;FECC
+ainvertedbreve;0203
+aivowelsignbengali;09C8
+aivowelsigndeva;0948
+aivowelsigngujarati;0AC8
+akatakana;30A2
+akatakanahalfwidth;FF71
+akorean;314F
+alef;05D0
+alefarabic;0627
+alefdageshhebrew;FB30
+aleffinalarabic;FE8E
+alefhamzaabovearabic;0623
+alefhamzaabovefinalarabic;FE84
+alefhamzabelowarabic;0625
+alefhamzabelowfinalarabic;FE88
+alefhebrew;05D0
+aleflamedhebrew;FB4F
+alefmaddaabovearabic;0622
+alefmaddaabovefinalarabic;FE82
+alefmaksuraarabic;0649
+alefmaksurafinalarabic;FEF0
+alefmaksurainitialarabic;FEF3
+alefmaksuramedialarabic;FEF4
+alefpatahhebrew;FB2E
+alefqamatshebrew;FB2F
+aleph;2135
+allequal;224C
+alpha;03B1
+alphatonos;03AC
+amacron;0101
+amonospace;FF41
+ampersand;0026
+ampersandmonospace;FF06
+ampersandsmall;F726
+amsquare;33C2
+anbopomofo;3122
+angbopomofo;3124
+angkhankhuthai;0E5A
+angle;2220
+anglebracketleft;3008
+anglebracketleftvertical;FE3F
+anglebracketright;3009
+anglebracketrightvertical;FE40
+angleleft;2329
+angleright;232A
+angstrom;212B
+anoteleia;0387
+anudattadeva;0952
+anusvarabengali;0982
+anusvaradeva;0902
+anusvaragujarati;0A82
+aogonek;0105
+apaatosquare;3300
+aparen;249C
+apostrophearmenian;055A
+apostrophemod;02BC
+apple;F8FF
+approaches;2250
+approxequal;2248
+approxequalorimage;2252
+approximatelyequal;2245
+araeaekorean;318E
+araeakorean;318D
+arc;2312
+arighthalfring;1E9A
+aring;00E5
+aringacute;01FB
+aringbelow;1E01
+arrowboth;2194
+arrowdashdown;21E3
+arrowdashleft;21E0
+arrowdashright;21E2
+arrowdashup;21E1
+arrowdblboth;21D4
+arrowdbldown;21D3
+arrowdblleft;21D0
+arrowdblright;21D2
+arrowdblup;21D1
+arrowdown;2193
+arrowdownleft;2199
+arrowdownright;2198
+arrowdownwhite;21E9
+arrowheaddownmod;02C5
+arrowheadleftmod;02C2
+arrowheadrightmod;02C3
+arrowheadupmod;02C4
+arrowhorizex;F8E7
+arrowleft;2190
+arrowleftdbl;21D0
+arrowleftdblstroke;21CD
+arrowleftoverright;21C6
+arrowleftwhite;21E6
+arrowright;2192
+arrowrightdblstroke;21CF
+arrowrightheavy;279E
+arrowrightoverleft;21C4
+arrowrightwhite;21E8
+arrowtableft;21E4
+arrowtabright;21E5
+arrowup;2191
+arrowupdn;2195
+arrowupdnbse;21A8
+arrowupdownbase;21A8
+arrowupleft;2196
+arrowupleftofdown;21C5
+arrowupright;2197
+arrowupwhite;21E7
+arrowvertex;F8E6
+asciicircum;005E
+asciicircummonospace;FF3E
+asciitilde;007E
+asciitildemonospace;FF5E
+ascript;0251
+ascriptturned;0252
+asmallhiragana;3041
+asmallkatakana;30A1
+asmallkatakanahalfwidth;FF67
+asterisk;002A
+asteriskaltonearabic;066D
+asteriskarabic;066D
+asteriskmath;2217
+asteriskmonospace;FF0A
+asterisksmall;FE61
+asterism;2042
+asuperior;F6E9
+asymptoticallyequal;2243
+at;0040
+atilde;00E3
+atmonospace;FF20
+atsmall;FE6B
+aturned;0250
+aubengali;0994
+aubopomofo;3120
+audeva;0914
+augujarati;0A94
+augurmukhi;0A14
+aulengthmarkbengali;09D7
+aumatragurmukhi;0A4C
+auvowelsignbengali;09CC
+auvowelsigndeva;094C
+auvowelsigngujarati;0ACC
+avagrahadeva;093D
+aybarmenian;0561
+ayin;05E2
+ayinaltonehebrew;FB20
+ayinhebrew;05E2
+b;0062
+babengali;09AC
+backslash;005C
+backslashmonospace;FF3C
+badeva;092C
+bagujarati;0AAC
+bagurmukhi;0A2C
+bahiragana;3070
+bahtthai;0E3F
+bakatakana;30D0
+bar;007C
+barmonospace;FF5C
+bbopomofo;3105
+bcircle;24D1
+bdotaccent;1E03
+bdotbelow;1E05
+beamedsixteenthnotes;266C
+because;2235
+becyrillic;0431
+beharabic;0628
+behfinalarabic;FE90
+behinitialarabic;FE91
+behiragana;3079
+behmedialarabic;FE92
+behmeeminitialarabic;FC9F
+behmeemisolatedarabic;FC08
+behnoonfinalarabic;FC6D
+bekatakana;30D9
+benarmenian;0562
+bet;05D1
+beta;03B2
+betasymbolgreek;03D0
+betdagesh;FB31
+betdageshhebrew;FB31
+bethebrew;05D1
+betrafehebrew;FB4C
+bhabengali;09AD
+bhadeva;092D
+bhagujarati;0AAD
+bhagurmukhi;0A2D
+bhook;0253
+bihiragana;3073
+bikatakana;30D3
+bilabialclick;0298
+bindigurmukhi;0A02
+birusquare;3331
+blackcircle;25CF
+blackdiamond;25C6
+blackdownpointingtriangle;25BC
+blackleftpointingpointer;25C4
+blackleftpointingtriangle;25C0
+blacklenticularbracketleft;3010
+blacklenticularbracketleftvertical;FE3B
+blacklenticularbracketright;3011
+blacklenticularbracketrightvertical;FE3C
+blacklowerlefttriangle;25E3
+blacklowerrighttriangle;25E2
+blackrectangle;25AC
+blackrightpointingpointer;25BA
+blackrightpointingtriangle;25B6
+blacksmallsquare;25AA
+blacksmilingface;263B
+blacksquare;25A0
+blackstar;2605
+blackupperlefttriangle;25E4
+blackupperrighttriangle;25E5
+blackuppointingsmalltriangle;25B4
+blackuppointingtriangle;25B2
+blank;2423
+blinebelow;1E07
+block;2588
+bmonospace;FF42
+bobaimaithai;0E1A
+bohiragana;307C
+bokatakana;30DC
+bparen;249D
+bqsquare;33C3
+braceex;F8F4
+braceleft;007B
+braceleftbt;F8F3
+braceleftmid;F8F2
+braceleftmonospace;FF5B
+braceleftsmall;FE5B
+bracelefttp;F8F1
+braceleftvertical;FE37
+braceright;007D
+bracerightbt;F8FE
+bracerightmid;F8FD
+bracerightmonospace;FF5D
+bracerightsmall;FE5C
+bracerighttp;F8FC
+bracerightvertical;FE38
+bracketleft;005B
+bracketleftbt;F8F0
+bracketleftex;F8EF
+bracketleftmonospace;FF3B
+bracketlefttp;F8EE
+bracketright;005D
+bracketrightbt;F8FB
+bracketrightex;F8FA
+bracketrightmonospace;FF3D
+bracketrighttp;F8F9
+breve;02D8
+brevebelowcmb;032E
+brevecmb;0306
+breveinvertedbelowcmb;032F
+breveinvertedcmb;0311
+breveinverteddoublecmb;0361
+bridgebelowcmb;032A
+bridgeinvertedbelowcmb;033A
+brokenbar;00A6
+bstroke;0180
+bsuperior;F6EA
+btopbar;0183
+buhiragana;3076
+bukatakana;30D6
+bullet;2022
+bulletinverse;25D8
+bulletoperator;2219
+bullseye;25CE
+c;0063
+caarmenian;056E
+cabengali;099A
+cacute;0107
+cadeva;091A
+cagujarati;0A9A
+cagurmukhi;0A1A
+calsquare;3388
+candrabindubengali;0981
+candrabinducmb;0310
+candrabindudeva;0901
+candrabindugujarati;0A81
+capslock;21EA
+careof;2105
+caron;02C7
+caronbelowcmb;032C
+caroncmb;030C
+carriagereturn;21B5
+cbopomofo;3118
+ccaron;010D
+ccedilla;00E7
+ccedillaacute;1E09
+ccircle;24D2
+ccircumflex;0109
+ccurl;0255
+cdot;010B
+cdotaccent;010B
+cdsquare;33C5
+cedilla;00B8
+cedillacmb;0327
+cent;00A2
+centigrade;2103
+centinferior;F6DF
+centmonospace;FFE0
+centoldstyle;F7A2
+centsuperior;F6E0
+chaarmenian;0579
+chabengali;099B
+chadeva;091B
+chagujarati;0A9B
+chagurmukhi;0A1B
+chbopomofo;3114
+cheabkhasiancyrillic;04BD
+checkmark;2713
+checyrillic;0447
+chedescenderabkhasiancyrillic;04BF
+chedescendercyrillic;04B7
+chedieresiscyrillic;04F5
+cheharmenian;0573
+chekhakassiancyrillic;04CC
+cheverticalstrokecyrillic;04B9
+chi;03C7
+chieuchacirclekorean;3277
+chieuchaparenkorean;3217
+chieuchcirclekorean;3269
+chieuchkorean;314A
+chieuchparenkorean;3209
+chochangthai;0E0A
+chochanthai;0E08
+chochingthai;0E09
+chochoethai;0E0C
+chook;0188
+cieucacirclekorean;3276
+cieucaparenkorean;3216
+cieuccirclekorean;3268
+cieuckorean;3148
+cieucparenkorean;3208
+cieucuparenkorean;321C
+circle;25CB
+circlemultiply;2297
+circleot;2299
+circleplus;2295
+circlepostalmark;3036
+circlewithlefthalfblack;25D0
+circlewithrighthalfblack;25D1
+circumflex;02C6
+circumflexbelowcmb;032D
+circumflexcmb;0302
+clear;2327
+clickalveolar;01C2
+clickdental;01C0
+clicklateral;01C1
+clickretroflex;01C3
+club;2663
+clubsuitblack;2663
+clubsuitwhite;2667
+cmcubedsquare;33A4
+cmonospace;FF43
+cmsquaredsquare;33A0
+coarmenian;0581
+colon;003A
+colonmonetary;20A1
+colonmonospace;FF1A
+colonsign;20A1
+colonsmall;FE55
+colontriangularhalfmod;02D1
+colontriangularmod;02D0
+comma;002C
+commaabovecmb;0313
+commaaboverightcmb;0315
+commaaccent;F6C3
+commaarabic;060C
+commaarmenian;055D
+commainferior;F6E1
+commamonospace;FF0C
+commareversedabovecmb;0314
+commareversedmod;02BD
+commasmall;FE50
+commasuperior;F6E2
+commaturnedabovecmb;0312
+commaturnedmod;02BB
+compass;263C
+congruent;2245
+contourintegral;222E
+control;2303
+controlACK;0006
+controlBEL;0007
+controlBS;0008
+controlCAN;0018
+controlCR;000D
+controlDC1;0011
+controlDC2;0012
+controlDC3;0013
+controlDC4;0014
+controlDEL;007F
+controlDLE;0010
+controlEM;0019
+controlENQ;0005
+controlEOT;0004
+controlESC;001B
+controlETB;0017
+controlETX;0003
+controlFF;000C
+controlFS;001C
+controlGS;001D
+controlHT;0009
+controlLF;000A
+controlNAK;0015
+controlRS;001E
+controlSI;000F
+controlSO;000E
+controlSOT;0002
+controlSTX;0001
+controlSUB;001A
+controlSYN;0016
+controlUS;001F
+controlVT;000B
+copyright;00A9
+copyrightsans;F8E9
+copyrightserif;F6D9
+cornerbracketleft;300C
+cornerbracketlefthalfwidth;FF62
+cornerbracketleftvertical;FE41
+cornerbracketright;300D
+cornerbracketrighthalfwidth;FF63
+cornerbracketrightvertical;FE42
+corporationsquare;337F
+cosquare;33C7
+coverkgsquare;33C6
+cparen;249E
+cruzeiro;20A2
+cstretched;0297
+curlyand;22CF
+curlyor;22CE
+currency;00A4
+cyrBreve;F6D1
+cyrFlex;F6D2
+cyrbreve;F6D4
+cyrflex;F6D5
+d;0064
+daarmenian;0564
+dabengali;09A6
+dadarabic;0636
+dadeva;0926
+dadfinalarabic;FEBE
+dadinitialarabic;FEBF
+dadmedialarabic;FEC0
+dagesh;05BC
+dageshhebrew;05BC
+dagger;2020
+daggerdbl;2021
+dagujarati;0AA6
+dagurmukhi;0A26
+dahiragana;3060
+dakatakana;30C0
+dalarabic;062F
+dalet;05D3
+daletdagesh;FB33
+daletdageshhebrew;FB33
+dalfinalarabic;FEAA
+dammaarabic;064F
+dammalowarabic;064F
+dammatanaltonearabic;064C
+dammatanarabic;064C
+danda;0964
+dargahebrew;05A7
+dargalefthebrew;05A7
+dasiapneumatacyrilliccmb;0485
+dblGrave;F6D3
+dblanglebracketleft;300A
+dblanglebracketleftvertical;FE3D
+dblanglebracketright;300B
+dblanglebracketrightvertical;FE3E
+dblarchinvertedbelowcmb;032B
+dblarrowleft;21D4
+dblarrowright;21D2
+dbldanda;0965
+dblgrave;F6D6
+dblgravecmb;030F
+dblintegral;222C
+dbllowline;2017
+dbllowlinecmb;0333
+dbloverlinecmb;033F
+dblprimemod;02BA
+dblverticalbar;2016
+dblverticallineabovecmb;030E
+dbopomofo;3109
+dbsquare;33C8
+dcaron;010F
+dcedilla;1E11
+dcircle;24D3
+dcircumflexbelow;1E13
+dcroat;0111
+ddabengali;09A1
+ddadeva;0921
+ddagujarati;0AA1
+ddagurmukhi;0A21
+ddalarabic;0688
+ddalfinalarabic;FB89
+dddhadeva;095C
+ddhabengali;09A2
+ddhadeva;0922
+ddhagujarati;0AA2
+ddhagurmukhi;0A22
+ddotaccent;1E0B
+ddotbelow;1E0D
+decimalseparatorarabic;066B
+decimalseparatorpersian;066B
+decyrillic;0434
+degree;00B0
+dehihebrew;05AD
+dehiragana;3067
+deicoptic;03EF
+dekatakana;30C7
+deleteleft;232B
+deleteright;2326
+delta;03B4
+deltaturned;018D
+denominatorminusonenumeratorbengali;09F8
+dezh;02A4
+dhabengali;09A7
+dhadeva;0927
+dhagujarati;0AA7
+dhagurmukhi;0A27
+dhook;0257
+dialytikatonos;0385
+dialytikatonoscmb;0344
+diamond;2666
+diamondsuitwhite;2662
+dieresis;00A8
+dieresisacute;F6D7
+dieresisbelowcmb;0324
+dieresiscmb;0308
+dieresisgrave;F6D8
+dieresistonos;0385
+dihiragana;3062
+dikatakana;30C2
+dittomark;3003
+divide;00F7
+divides;2223
+divisionslash;2215
+djecyrillic;0452
+dkshade;2593
+dlinebelow;1E0F
+dlsquare;3397
+dmacron;0111
+dmonospace;FF44
+dnblock;2584
+dochadathai;0E0E
+dodekthai;0E14
+dohiragana;3069
+dokatakana;30C9
+dollar;0024
+dollarinferior;F6E3
+dollarmonospace;FF04
+dollaroldstyle;F724
+dollarsmall;FE69
+dollarsuperior;F6E4
+dong;20AB
+dorusquare;3326
+dotaccent;02D9
+dotaccentcmb;0307
+dotbelowcmb;0323
+dotbelowcomb;0323
+dotkatakana;30FB
+dotlessi;0131
+dotlessj;F6BE
+dotlessjstrokehook;0284
+dotmath;22C5
+dottedcircle;25CC
+doubleyodpatah;FB1F
+doubleyodpatahhebrew;FB1F
+downtackbelowcmb;031E
+downtackmod;02D5
+dparen;249F
+dsuperior;F6EB
+dtail;0256
+dtopbar;018C
+duhiragana;3065
+dukatakana;30C5
+dz;01F3
+dzaltone;02A3
+dzcaron;01C6
+dzcurl;02A5
+dzeabkhasiancyrillic;04E1
+dzecyrillic;0455
+dzhecyrillic;045F
+e;0065
+eacute;00E9
+earth;2641
+ebengali;098F
+ebopomofo;311C
+ebreve;0115
+ecandradeva;090D
+ecandragujarati;0A8D
+ecandravowelsigndeva;0945
+ecandravowelsigngujarati;0AC5
+ecaron;011B
+ecedillabreve;1E1D
+echarmenian;0565
+echyiwnarmenian;0587
+ecircle;24D4
+ecircumflex;00EA
+ecircumflexacute;1EBF
+ecircumflexbelow;1E19
+ecircumflexdotbelow;1EC7
+ecircumflexgrave;1EC1
+ecircumflexhookabove;1EC3
+ecircumflextilde;1EC5
+ecyrillic;0454
+edblgrave;0205
+edeva;090F
+edieresis;00EB
+edot;0117
+edotaccent;0117
+edotbelow;1EB9
+eegurmukhi;0A0F
+eematragurmukhi;0A47
+efcyrillic;0444
+egrave;00E8
+egujarati;0A8F
+eharmenian;0567
+ehbopomofo;311D
+ehiragana;3048
+ehookabove;1EBB
+eibopomofo;311F
+eight;0038
+eightarabic;0668
+eightbengali;09EE
+eightcircle;2467
+eightcircleinversesansserif;2791
+eightdeva;096E
+eighteencircle;2471
+eighteenparen;2485
+eighteenperiod;2499
+eightgujarati;0AEE
+eightgurmukhi;0A6E
+eighthackarabic;0668
+eighthangzhou;3028
+eighthnotebeamed;266B
+eightideographicparen;3227
+eightinferior;2088
+eightmonospace;FF18
+eightoldstyle;F738
+eightparen;247B
+eightperiod;248F
+eightpersian;06F8
+eightroman;2177
+eightsuperior;2078
+eightthai;0E58
+einvertedbreve;0207
+eiotifiedcyrillic;0465
+ekatakana;30A8
+ekatakanahalfwidth;FF74
+ekonkargurmukhi;0A74
+ekorean;3154
+elcyrillic;043B
+element;2208
+elevencircle;246A
+elevenparen;247E
+elevenperiod;2492
+elevenroman;217A
+ellipsis;2026
+ellipsisvertical;22EE
+emacron;0113
+emacronacute;1E17
+emacrongrave;1E15
+emcyrillic;043C
+emdash;2014
+emdashvertical;FE31
+emonospace;FF45
+emphasismarkarmenian;055B
+emptyset;2205
+enbopomofo;3123
+encyrillic;043D
+endash;2013
+endashvertical;FE32
+endescendercyrillic;04A3
+eng;014B
+engbopomofo;3125
+enghecyrillic;04A5
+enhookcyrillic;04C8
+enspace;2002
+eogonek;0119
+eokorean;3153
+eopen;025B
+eopenclosed;029A
+eopenreversed;025C
+eopenreversedclosed;025E
+eopenreversedhook;025D
+eparen;24A0
+epsilon;03B5
+epsilontonos;03AD
+equal;003D
+equalmonospace;FF1D
+equalsmall;FE66
+equalsuperior;207C
+equivalence;2261
+erbopomofo;3126
+ercyrillic;0440
+ereversed;0258
+ereversedcyrillic;044D
+escyrillic;0441
+esdescendercyrillic;04AB
+esh;0283
+eshcurl;0286
+eshortdeva;090E
+eshortvowelsigndeva;0946
+eshreversedloop;01AA
+eshsquatreversed;0285
+esmallhiragana;3047
+esmallkatakana;30A7
+esmallkatakanahalfwidth;FF6A
+estimated;212E
+esuperior;F6EC
+eta;03B7
+etarmenian;0568
+etatonos;03AE
+eth;00F0
+etilde;1EBD
+etildebelow;1E1B
+etnahtafoukhhebrew;0591
+etnahtafoukhlefthebrew;0591
+etnahtahebrew;0591
+etnahtalefthebrew;0591
+eturned;01DD
+eukorean;3161
+euro;20AC
+evowelsignbengali;09C7
+evowelsigndeva;0947
+evowelsigngujarati;0AC7
+exclam;0021
+exclamarmenian;055C
+exclamdbl;203C
+exclamdown;00A1
+exclamdownsmall;F7A1
+exclammonospace;FF01
+exclamsmall;F721
+existential;2203
+ezh;0292
+ezhcaron;01EF
+ezhcurl;0293
+ezhreversed;01B9
+ezhtail;01BA
+f;0066
+fadeva;095E
+fagurmukhi;0A5E
+fahrenheit;2109
+fathaarabic;064E
+fathalowarabic;064E
+fathatanarabic;064B
+fbopomofo;3108
+fcircle;24D5
+fdotaccent;1E1F
+feharabic;0641
+feharmenian;0586
+fehfinalarabic;FED2
+fehinitialarabic;FED3
+fehmedialarabic;FED4
+feicoptic;03E5
+female;2640
+ff;FB00
+ffi;FB03
+ffl;FB04
+fi;FB01
+fifteencircle;246E
+fifteenparen;2482
+fifteenperiod;2496
+figuredash;2012
+filledbox;25A0
+filledrect;25AC
+finalkaf;05DA
+finalkafdagesh;FB3A
+finalkafdageshhebrew;FB3A
+finalkafhebrew;05DA
+finalmem;05DD
+finalmemhebrew;05DD
+finalnun;05DF
+finalnunhebrew;05DF
+finalpe;05E3
+finalpehebrew;05E3
+finaltsadi;05E5
+finaltsadihebrew;05E5
+firsttonechinese;02C9
+fisheye;25C9
+fitacyrillic;0473
+five;0035
+fivearabic;0665
+fivebengali;09EB
+fivecircle;2464
+fivecircleinversesansserif;278E
+fivedeva;096B
+fiveeighths;215D
+fivegujarati;0AEB
+fivegurmukhi;0A6B
+fivehackarabic;0665
+fivehangzhou;3025
+fiveideographicparen;3224
+fiveinferior;2085
+fivemonospace;FF15
+fiveoldstyle;F735
+fiveparen;2478
+fiveperiod;248C
+fivepersian;06F5
+fiveroman;2174
+fivesuperior;2075
+fivethai;0E55
+fl;FB02
+florin;0192
+fmonospace;FF46
+fmsquare;3399
+fofanthai;0E1F
+fofathai;0E1D
+fongmanthai;0E4F
+forall;2200
+four;0034
+fourarabic;0664
+fourbengali;09EA
+fourcircle;2463
+fourcircleinversesansserif;278D
+fourdeva;096A
+fourgujarati;0AEA
+fourgurmukhi;0A6A
+fourhackarabic;0664
+fourhangzhou;3024
+fourideographicparen;3223
+fourinferior;2084
+fourmonospace;FF14
+fournumeratorbengali;09F7
+fouroldstyle;F734
+fourparen;2477
+fourperiod;248B
+fourpersian;06F4
+fourroman;2173
+foursuperior;2074
+fourteencircle;246D
+fourteenparen;2481
+fourteenperiod;2495
+fourthai;0E54
+fourthtonechinese;02CB
+fparen;24A1
+fraction;2044
+franc;20A3
+g;0067
+gabengali;0997
+gacute;01F5
+gadeva;0917
+gafarabic;06AF
+gaffinalarabic;FB93
+gafinitialarabic;FB94
+gafmedialarabic;FB95
+gagujarati;0A97
+gagurmukhi;0A17
+gahiragana;304C
+gakatakana;30AC
+gamma;03B3
+gammalatinsmall;0263
+gammasuperior;02E0
+gangiacoptic;03EB
+gbopomofo;310D
+gbreve;011F
+gcaron;01E7
+gcedilla;0123
+gcircle;24D6
+gcircumflex;011D
+gcommaaccent;0123
+gdot;0121
+gdotaccent;0121
+gecyrillic;0433
+gehiragana;3052
+gekatakana;30B2
+geometricallyequal;2251
+gereshaccenthebrew;059C
+gereshhebrew;05F3
+gereshmuqdamhebrew;059D
+germandbls;00DF
+gershayimaccenthebrew;059E
+gershayimhebrew;05F4
+getamark;3013
+ghabengali;0998
+ghadarmenian;0572
+ghadeva;0918
+ghagujarati;0A98
+ghagurmukhi;0A18
+ghainarabic;063A
+ghainfinalarabic;FECE
+ghaininitialarabic;FECF
+ghainmedialarabic;FED0
+ghemiddlehookcyrillic;0495
+ghestrokecyrillic;0493
+gheupturncyrillic;0491
+ghhadeva;095A
+ghhagurmukhi;0A5A
+ghook;0260
+ghzsquare;3393
+gihiragana;304E
+gikatakana;30AE
+gimarmenian;0563
+gimel;05D2
+gimeldagesh;FB32
+gimeldageshhebrew;FB32
+gimelhebrew;05D2
+gjecyrillic;0453
+glottalinvertedstroke;01BE
+glottalstop;0294
+glottalstopinverted;0296
+glottalstopmod;02C0
+glottalstopreversed;0295
+glottalstopreversedmod;02C1
+glottalstopreversedsuperior;02E4
+glottalstopstroke;02A1
+glottalstopstrokereversed;02A2
+gmacron;1E21
+gmonospace;FF47
+gohiragana;3054
+gokatakana;30B4
+gparen;24A2
+gpasquare;33AC
+gradient;2207
+grave;0060
+gravebelowcmb;0316
+gravecmb;0300
+gravecomb;0300
+gravedeva;0953
+gravelowmod;02CE
+gravemonospace;FF40
+gravetonecmb;0340
+greater;003E
+greaterequal;2265
+greaterequalorless;22DB
+greatermonospace;FF1E
+greaterorequivalent;2273
+greaterorless;2277
+greateroverequal;2267
+greatersmall;FE65
+gscript;0261
+gstroke;01E5
+guhiragana;3050
+guillemotleft;00AB
+guillemotright;00BB
+guilsinglleft;2039
+guilsinglright;203A
+gukatakana;30B0
+guramusquare;3318
+gysquare;33C9
+h;0068
+haabkhasiancyrillic;04A9
+haaltonearabic;06C1
+habengali;09B9
+hadescendercyrillic;04B3
+hadeva;0939
+hagujarati;0AB9
+hagurmukhi;0A39
+haharabic;062D
+hahfinalarabic;FEA2
+hahinitialarabic;FEA3
+hahiragana;306F
+hahmedialarabic;FEA4
+haitusquare;332A
+hakatakana;30CF
+hakatakanahalfwidth;FF8A
+halantgurmukhi;0A4D
+hamzaarabic;0621
+hamzalowarabic;0621
+hangulfiller;3164
+hardsigncyrillic;044A
+harpoonleftbarbup;21BC
+harpoonrightbarbup;21C0
+hasquare;33CA
+hatafpatah;05B2
+hatafpatah16;05B2
+hatafpatah23;05B2
+hatafpatah2f;05B2
+hatafpatahhebrew;05B2
+hatafpatahnarrowhebrew;05B2
+hatafpatahquarterhebrew;05B2
+hatafpatahwidehebrew;05B2
+hatafqamats;05B3
+hatafqamats1b;05B3
+hatafqamats28;05B3
+hatafqamats34;05B3
+hatafqamatshebrew;05B3
+hatafqamatsnarrowhebrew;05B3
+hatafqamatsquarterhebrew;05B3
+hatafqamatswidehebrew;05B3
+hatafsegol;05B1
+hatafsegol17;05B1
+hatafsegol24;05B1
+hatafsegol30;05B1
+hatafsegolhebrew;05B1
+hatafsegolnarrowhebrew;05B1
+hatafsegolquarterhebrew;05B1
+hatafsegolwidehebrew;05B1
+hbar;0127
+hbopomofo;310F
+hbrevebelow;1E2B
+hcedilla;1E29
+hcircle;24D7
+hcircumflex;0125
+hdieresis;1E27
+hdotaccent;1E23
+hdotbelow;1E25
+he;05D4
+heart;2665
+heartsuitblack;2665
+heartsuitwhite;2661
+hedagesh;FB34
+hedageshhebrew;FB34
+hehaltonearabic;06C1
+heharabic;0647
+hehebrew;05D4
+hehfinalaltonearabic;FBA7
+hehfinalalttwoarabic;FEEA
+hehfinalarabic;FEEA
+hehhamzaabovefinalarabic;FBA5
+hehhamzaaboveisolatedarabic;FBA4
+hehinitialaltonearabic;FBA8
+hehinitialarabic;FEEB
+hehiragana;3078
+hehmedialaltonearabic;FBA9
+hehmedialarabic;FEEC
+heiseierasquare;337B
+hekatakana;30D8
+hekatakanahalfwidth;FF8D
+hekutaarusquare;3336
+henghook;0267
+herutusquare;3339
+het;05D7
+hethebrew;05D7
+hhook;0266
+hhooksuperior;02B1
+hieuhacirclekorean;327B
+hieuhaparenkorean;321B
+hieuhcirclekorean;326D
+hieuhkorean;314E
+hieuhparenkorean;320D
+hihiragana;3072
+hikatakana;30D2
+hikatakanahalfwidth;FF8B
+hiriq;05B4
+hiriq14;05B4
+hiriq21;05B4
+hiriq2d;05B4
+hiriqhebrew;05B4
+hiriqnarrowhebrew;05B4
+hiriqquarterhebrew;05B4
+hiriqwidehebrew;05B4
+hlinebelow;1E96
+hmonospace;FF48
+hoarmenian;0570
+hohipthai;0E2B
+hohiragana;307B
+hokatakana;30DB
+hokatakanahalfwidth;FF8E
+holam;05B9
+holam19;05B9
+holam26;05B9
+holam32;05B9
+holamhebrew;05B9
+holamnarrowhebrew;05B9
+holamquarterhebrew;05B9
+holamwidehebrew;05B9
+honokhukthai;0E2E
+hookabovecomb;0309
+hookcmb;0309
+hookpalatalizedbelowcmb;0321
+hookretroflexbelowcmb;0322
+hoonsquare;3342
+horicoptic;03E9
+horizontalbar;2015
+horncmb;031B
+hotsprings;2668
+house;2302
+hparen;24A3
+hsuperior;02B0
+hturned;0265
+huhiragana;3075
+huiitosquare;3333
+hukatakana;30D5
+hukatakanahalfwidth;FF8C
+hungarumlaut;02DD
+hungarumlautcmb;030B
+hv;0195
+hyphen;002D
+hypheninferior;F6E5
+hyphenmonospace;FF0D
+hyphensmall;FE63
+hyphensuperior;F6E6
+hyphentwo;2010
+i;0069
+iacute;00ED
+iacyrillic;044F
+ibengali;0987
+ibopomofo;3127
+ibreve;012D
+icaron;01D0
+icircle;24D8
+icircumflex;00EE
+icyrillic;0456
+idblgrave;0209
+ideographearthcircle;328F
+ideographfirecircle;328B
+ideographicallianceparen;323F
+ideographiccallparen;323A
+ideographiccentrecircle;32A5
+ideographicclose;3006
+ideographiccomma;3001
+ideographiccommaleft;FF64
+ideographiccongratulationparen;3237
+ideographiccorrectcircle;32A3
+ideographicearthparen;322F
+ideographicenterpriseparen;323D
+ideographicexcellentcircle;329D
+ideographicfestivalparen;3240
+ideographicfinancialcircle;3296
+ideographicfinancialparen;3236
+ideographicfireparen;322B
+ideographichaveparen;3232
+ideographichighcircle;32A4
+ideographiciterationmark;3005
+ideographiclaborcircle;3298
+ideographiclaborparen;3238
+ideographicleftcircle;32A7
+ideographiclowcircle;32A6
+ideographicmedicinecircle;32A9
+ideographicmetalparen;322E
+ideographicmoonparen;322A
+ideographicnameparen;3234
+ideographicperiod;3002
+ideographicprintcircle;329E
+ideographicreachparen;3243
+ideographicrepresentparen;3239
+ideographicresourceparen;323E
+ideographicrightcircle;32A8
+ideographicsecretcircle;3299
+ideographicselfparen;3242
+ideographicsocietyparen;3233
+ideographicspace;3000
+ideographicspecialparen;3235
+ideographicstockparen;3231
+ideographicstudyparen;323B
+ideographicsunparen;3230
+ideographicsuperviseparen;323C
+ideographicwaterparen;322C
+ideographicwoodparen;322D
+ideographiczero;3007
+ideographmetalcircle;328E
+ideographmooncircle;328A
+ideographnamecircle;3294
+ideographsuncircle;3290
+ideographwatercircle;328C
+ideographwoodcircle;328D
+ideva;0907
+idieresis;00EF
+idieresisacute;1E2F
+idieresiscyrillic;04E5
+idotbelow;1ECB
+iebrevecyrillic;04D7
+iecyrillic;0435
+ieungacirclekorean;3275
+ieungaparenkorean;3215
+ieungcirclekorean;3267
+ieungkorean;3147
+ieungparenkorean;3207
+igrave;00EC
+igujarati;0A87
+igurmukhi;0A07
+ihiragana;3044
+ihookabove;1EC9
+iibengali;0988
+iicyrillic;0438
+iideva;0908
+iigujarati;0A88
+iigurmukhi;0A08
+iimatragurmukhi;0A40
+iinvertedbreve;020B
+iishortcyrillic;0439
+iivowelsignbengali;09C0
+iivowelsigndeva;0940
+iivowelsigngujarati;0AC0
+ij;0133
+ikatakana;30A4
+ikatakanahalfwidth;FF72
+ikorean;3163
+ilde;02DC
+iluyhebrew;05AC
+imacron;012B
+imacroncyrillic;04E3
+imageorapproximatelyequal;2253
+imatragurmukhi;0A3F
+imonospace;FF49
+increment;2206
+infinity;221E
+iniarmenian;056B
+integral;222B
+integralbottom;2321
+integralbt;2321
+integralex;F8F5
+integraltop;2320
+integraltp;2320
+intersection;2229
+intisquare;3305
+invbullet;25D8
+invcircle;25D9
+invsmileface;263B
+iocyrillic;0451
+iogonek;012F
+iota;03B9
+iotadieresis;03CA
+iotadieresistonos;0390
+iotalatin;0269
+iotatonos;03AF
+iparen;24A4
+irigurmukhi;0A72
+ismallhiragana;3043
+ismallkatakana;30A3
+ismallkatakanahalfwidth;FF68
+issharbengali;09FA
+istroke;0268
+isuperior;F6ED
+iterationhiragana;309D
+iterationkatakana;30FD
+itilde;0129
+itildebelow;1E2D
+iubopomofo;3129
+iucyrillic;044E
+ivowelsignbengali;09BF
+ivowelsigndeva;093F
+ivowelsigngujarati;0ABF
+izhitsacyrillic;0475
+izhitsadblgravecyrillic;0477
+j;006A
+jaarmenian;0571
+jabengali;099C
+jadeva;091C
+jagujarati;0A9C
+jagurmukhi;0A1C
+jbopomofo;3110
+jcaron;01F0
+jcircle;24D9
+jcircumflex;0135
+jcrossedtail;029D
+jdotlessstroke;025F
+jecyrillic;0458
+jeemarabic;062C
+jeemfinalarabic;FE9E
+jeeminitialarabic;FE9F
+jeemmedialarabic;FEA0
+jeharabic;0698
+jehfinalarabic;FB8B
+jhabengali;099D
+jhadeva;091D
+jhagujarati;0A9D
+jhagurmukhi;0A1D
+jheharmenian;057B
+jis;3004
+jmonospace;FF4A
+jparen;24A5
+jsuperior;02B2
+k;006B
+kabashkircyrillic;04A1
+kabengali;0995
+kacute;1E31
+kacyrillic;043A
+kadescendercyrillic;049B
+kadeva;0915
+kaf;05DB
+kafarabic;0643
+kafdagesh;FB3B
+kafdageshhebrew;FB3B
+kaffinalarabic;FEDA
+kafhebrew;05DB
+kafinitialarabic;FEDB
+kafmedialarabic;FEDC
+kafrafehebrew;FB4D
+kagujarati;0A95
+kagurmukhi;0A15
+kahiragana;304B
+kahookcyrillic;04C4
+kakatakana;30AB
+kakatakanahalfwidth;FF76
+kappa;03BA
+kappasymbolgreek;03F0
+kapyeounmieumkorean;3171
+kapyeounphieuphkorean;3184
+kapyeounpieupkorean;3178
+kapyeounssangpieupkorean;3179
+karoriisquare;330D
+kashidaautoarabic;0640
+kashidaautonosidebearingarabic;0640
+kasmallkatakana;30F5
+kasquare;3384
+kasraarabic;0650
+kasratanarabic;064D
+kastrokecyrillic;049F
+katahiraprolongmarkhalfwidth;FF70
+kaverticalstrokecyrillic;049D
+kbopomofo;310E
+kcalsquare;3389
+kcaron;01E9
+kcedilla;0137
+kcircle;24DA
+kcommaaccent;0137
+kdotbelow;1E33
+keharmenian;0584
+kehiragana;3051
+kekatakana;30B1
+kekatakanahalfwidth;FF79
+kenarmenian;056F
+kesmallkatakana;30F6
+kgreenlandic;0138
+khabengali;0996
+khacyrillic;0445
+khadeva;0916
+khagujarati;0A96
+khagurmukhi;0A16
+khaharabic;062E
+khahfinalarabic;FEA6
+khahinitialarabic;FEA7
+khahmedialarabic;FEA8
+kheicoptic;03E7
+khhadeva;0959
+khhagurmukhi;0A59
+khieukhacirclekorean;3278
+khieukhaparenkorean;3218
+khieukhcirclekorean;326A
+khieukhkorean;314B
+khieukhparenkorean;320A
+khokhaithai;0E02
+khokhonthai;0E05
+khokhuatthai;0E03
+khokhwaithai;0E04
+khomutthai;0E5B
+khook;0199
+khorakhangthai;0E06
+khzsquare;3391
+kihiragana;304D
+kikatakana;30AD
+kikatakanahalfwidth;FF77
+kiroguramusquare;3315
+kiromeetorusquare;3316
+kirosquare;3314
+kiyeokacirclekorean;326E
+kiyeokaparenkorean;320E
+kiyeokcirclekorean;3260
+kiyeokkorean;3131
+kiyeokparenkorean;3200
+kiyeoksioskorean;3133
+kjecyrillic;045C
+klinebelow;1E35
+klsquare;3398
+kmcubedsquare;33A6
+kmonospace;FF4B
+kmsquaredsquare;33A2
+kohiragana;3053
+kohmsquare;33C0
+kokaithai;0E01
+kokatakana;30B3
+kokatakanahalfwidth;FF7A
+kooposquare;331E
+koppacyrillic;0481
+koreanstandardsymbol;327F
+koroniscmb;0343
+kparen;24A6
+kpasquare;33AA
+ksicyrillic;046F
+ktsquare;33CF
+kturned;029E
+kuhiragana;304F
+kukatakana;30AF
+kukatakanahalfwidth;FF78
+kvsquare;33B8
+kwsquare;33BE
+l;006C
+labengali;09B2
+lacute;013A
+ladeva;0932
+lagujarati;0AB2
+lagurmukhi;0A32
+lakkhangyaothai;0E45
+lamaleffinalarabic;FEFC
+lamalefhamzaabovefinalarabic;FEF8
+lamalefhamzaaboveisolatedarabic;FEF7
+lamalefhamzabelowfinalarabic;FEFA
+lamalefhamzabelowisolatedarabic;FEF9
+lamalefisolatedarabic;FEFB
+lamalefmaddaabovefinalarabic;FEF6
+lamalefmaddaaboveisolatedarabic;FEF5
+lamarabic;0644
+lambda;03BB
+lambdastroke;019B
+lamed;05DC
+lameddagesh;FB3C
+lameddageshhebrew;FB3C
+lamedhebrew;05DC
+lamfinalarabic;FEDE
+lamhahinitialarabic;FCCA
+laminitialarabic;FEDF
+lamjeeminitialarabic;FCC9
+lamkhahinitialarabic;FCCB
+lamlamhehisolatedarabic;FDF2
+lammedialarabic;FEE0
+lammeemhahinitialarabic;FD88
+lammeeminitialarabic;FCCC
+largecircle;25EF
+lbar;019A
+lbelt;026C
+lbopomofo;310C
+lcaron;013E
+lcedilla;013C
+lcircle;24DB
+lcircumflexbelow;1E3D
+lcommaaccent;013C
+ldot;0140
+ldotaccent;0140
+ldotbelow;1E37
+ldotbelowmacron;1E39
+leftangleabovecmb;031A
+lefttackbelowcmb;0318
+less;003C
+lessequal;2264
+lessequalorgreater;22DA
+lessmonospace;FF1C
+lessorequivalent;2272
+lessorgreater;2276
+lessoverequal;2266
+lesssmall;FE64
+lezh;026E
+lfblock;258C
+lhookretroflex;026D
+lira;20A4
+liwnarmenian;056C
+lj;01C9
+ljecyrillic;0459
+ll;F6C0
+lladeva;0933
+llagujarati;0AB3
+llinebelow;1E3B
+llladeva;0934
+llvocalicbengali;09E1
+llvocalicdeva;0961
+llvocalicvowelsignbengali;09E3
+llvocalicvowelsigndeva;0963
+lmiddletilde;026B
+lmonospace;FF4C
+lmsquare;33D0
+lochulathai;0E2C
+logicaland;2227
+logicalnot;00AC
+logicalnotreversed;2310
+logicalor;2228
+lolingthai;0E25
+longs;017F
+lowlinecenterline;FE4E
+lowlinecmb;0332
+lowlinedashed;FE4D
+lozenge;25CA
+lparen;24A7
+lslash;0142
+lsquare;2113
+lsuperior;F6EE
+ltshade;2591
+luthai;0E26
+lvocalicbengali;098C
+lvocalicdeva;090C
+lvocalicvowelsignbengali;09E2
+lvocalicvowelsigndeva;0962
+lxsquare;33D3
+m;006D
+mabengali;09AE
+macron;00AF
+macronbelowcmb;0331
+macroncmb;0304
+macronlowmod;02CD
+macronmonospace;FFE3
+macute;1E3F
+madeva;092E
+magujarati;0AAE
+magurmukhi;0A2E
+mahapakhhebrew;05A4
+mahapakhlefthebrew;05A4
+mahiragana;307E
+maichattawalowleftthai;F895
+maichattawalowrightthai;F894
+maichattawathai;0E4B
+maichattawaupperleftthai;F893
+maieklowleftthai;F88C
+maieklowrightthai;F88B
+maiekthai;0E48
+maiekupperleftthai;F88A
+maihanakatleftthai;F884
+maihanakatthai;0E31
+maitaikhuleftthai;F889
+maitaikhuthai;0E47
+maitholowleftthai;F88F
+maitholowrightthai;F88E
+maithothai;0E49
+maithoupperleftthai;F88D
+maitrilowleftthai;F892
+maitrilowrightthai;F891
+maitrithai;0E4A
+maitriupperleftthai;F890
+maiyamokthai;0E46
+makatakana;30DE
+makatakanahalfwidth;FF8F
+male;2642
+mansyonsquare;3347
+maqafhebrew;05BE
+mars;2642
+masoracirclehebrew;05AF
+masquare;3383
+mbopomofo;3107
+mbsquare;33D4
+mcircle;24DC
+mcubedsquare;33A5
+mdotaccent;1E41
+mdotbelow;1E43
+meemarabic;0645
+meemfinalarabic;FEE2
+meeminitialarabic;FEE3
+meemmedialarabic;FEE4
+meemmeeminitialarabic;FCD1
+meemmeemisolatedarabic;FC48
+meetorusquare;334D
+mehiragana;3081
+meizierasquare;337E
+mekatakana;30E1
+mekatakanahalfwidth;FF92
+mem;05DE
+memdagesh;FB3E
+memdageshhebrew;FB3E
+memhebrew;05DE
+menarmenian;0574
+merkhahebrew;05A5
+merkhakefulahebrew;05A6
+merkhakefulalefthebrew;05A6
+merkhalefthebrew;05A5
+mhook;0271
+mhzsquare;3392
+middledotkatakanahalfwidth;FF65
+middot;00B7
+mieumacirclekorean;3272
+mieumaparenkorean;3212
+mieumcirclekorean;3264
+mieumkorean;3141
+mieumpansioskorean;3170
+mieumparenkorean;3204
+mieumpieupkorean;316E
+mieumsioskorean;316F
+mihiragana;307F
+mikatakana;30DF
+mikatakanahalfwidth;FF90
+minus;2212
+minusbelowcmb;0320
+minuscircle;2296
+minusmod;02D7
+minusplus;2213
+minute;2032
+miribaarusquare;334A
+mirisquare;3349
+mlonglegturned;0270
+mlsquare;3396
+mmcubedsquare;33A3
+mmonospace;FF4D
+mmsquaredsquare;339F
+mohiragana;3082
+mohmsquare;33C1
+mokatakana;30E2
+mokatakanahalfwidth;FF93
+molsquare;33D6
+momathai;0E21
+moverssquare;33A7
+moverssquaredsquare;33A8
+mparen;24A8
+mpasquare;33AB
+mssquare;33B3
+msuperior;F6EF
+mturned;026F
+mu;00B5
+mu1;00B5
+muasquare;3382
+muchgreater;226B
+muchless;226A
+mufsquare;338C
+mugreek;03BC
+mugsquare;338D
+muhiragana;3080
+mukatakana;30E0
+mukatakanahalfwidth;FF91
+mulsquare;3395
+multiply;00D7
+mumsquare;339B
+munahhebrew;05A3
+munahlefthebrew;05A3
+musicalnote;266A
+musicalnotedbl;266B
+musicflatsign;266D
+musicsharpsign;266F
+mussquare;33B2
+muvsquare;33B6
+muwsquare;33BC
+mvmegasquare;33B9
+mvsquare;33B7
+mwmegasquare;33BF
+mwsquare;33BD
+n;006E
+nabengali;09A8
+nabla;2207
+nacute;0144
+nadeva;0928
+nagujarati;0AA8
+nagurmukhi;0A28
+nahiragana;306A
+nakatakana;30CA
+nakatakanahalfwidth;FF85
+napostrophe;0149
+nasquare;3381
+nbopomofo;310B
+nbspace;00A0
+ncaron;0148
+ncedilla;0146
+ncircle;24DD
+ncircumflexbelow;1E4B
+ncommaaccent;0146
+ndotaccent;1E45
+ndotbelow;1E47
+nehiragana;306D
+nekatakana;30CD
+nekatakanahalfwidth;FF88
+newsheqelsign;20AA
+nfsquare;338B
+ngabengali;0999
+ngadeva;0919
+ngagujarati;0A99
+ngagurmukhi;0A19
+ngonguthai;0E07
+nhiragana;3093
+nhookleft;0272
+nhookretroflex;0273
+nieunacirclekorean;326F
+nieunaparenkorean;320F
+nieuncieuckorean;3135
+nieuncirclekorean;3261
+nieunhieuhkorean;3136
+nieunkorean;3134
+nieunpansioskorean;3168
+nieunparenkorean;3201
+nieunsioskorean;3167
+nieuntikeutkorean;3166
+nihiragana;306B
+nikatakana;30CB
+nikatakanahalfwidth;FF86
+nikhahitleftthai;F899
+nikhahitthai;0E4D
+nine;0039
+ninearabic;0669
+ninebengali;09EF
+ninecircle;2468
+ninecircleinversesansserif;2792
+ninedeva;096F
+ninegujarati;0AEF
+ninegurmukhi;0A6F
+ninehackarabic;0669
+ninehangzhou;3029
+nineideographicparen;3228
+nineinferior;2089
+ninemonospace;FF19
+nineoldstyle;F739
+nineparen;247C
+nineperiod;2490
+ninepersian;06F9
+nineroman;2178
+ninesuperior;2079
+nineteencircle;2472
+nineteenparen;2486
+nineteenperiod;249A
+ninethai;0E59
+nj;01CC
+njecyrillic;045A
+nkatakana;30F3
+nkatakanahalfwidth;FF9D
+nlegrightlong;019E
+nlinebelow;1E49
+nmonospace;FF4E
+nmsquare;339A
+nnabengali;09A3
+nnadeva;0923
+nnagujarati;0AA3
+nnagurmukhi;0A23
+nnnadeva;0929
+nohiragana;306E
+nokatakana;30CE
+nokatakanahalfwidth;FF89
+nonbreakingspace;00A0
+nonenthai;0E13
+nonuthai;0E19
+noonarabic;0646
+noonfinalarabic;FEE6
+noonghunnaarabic;06BA
+noonghunnafinalarabic;FB9F
+nooninitialarabic;FEE7
+noonjeeminitialarabic;FCD2
+noonjeemisolatedarabic;FC4B
+noonmedialarabic;FEE8
+noonmeeminitialarabic;FCD5
+noonmeemisolatedarabic;FC4E
+noonnoonfinalarabic;FC8D
+notcontains;220C
+notelement;2209
+notelementof;2209
+notequal;2260
+notgreater;226F
+notgreaternorequal;2271
+notgreaternorless;2279
+notidentical;2262
+notless;226E
+notlessnorequal;2270
+notparallel;2226
+notprecedes;2280
+notsubset;2284
+notsucceeds;2281
+notsuperset;2285
+nowarmenian;0576
+nparen;24A9
+nssquare;33B1
+nsuperior;207F
+ntilde;00F1
+nu;03BD
+nuhiragana;306C
+nukatakana;30CC
+nukatakanahalfwidth;FF87
+nuktabengali;09BC
+nuktadeva;093C
+nuktagujarati;0ABC
+nuktagurmukhi;0A3C
+numbersign;0023
+numbersignmonospace;FF03
+numbersignsmall;FE5F
+numeralsigngreek;0374
+numeralsignlowergreek;0375
+numero;2116
+nun;05E0
+nundagesh;FB40
+nundageshhebrew;FB40
+nunhebrew;05E0
+nvsquare;33B5
+nwsquare;33BB
+nyabengali;099E
+nyadeva;091E
+nyagujarati;0A9E
+nyagurmukhi;0A1E
+o;006F
+oacute;00F3
+oangthai;0E2D
+obarred;0275
+obarredcyrillic;04E9
+obarreddieresiscyrillic;04EB
+obengali;0993
+obopomofo;311B
+obreve;014F
+ocandradeva;0911
+ocandragujarati;0A91
+ocandravowelsigndeva;0949
+ocandravowelsigngujarati;0AC9
+ocaron;01D2
+ocircle;24DE
+ocircumflex;00F4
+ocircumflexacute;1ED1
+ocircumflexdotbelow;1ED9
+ocircumflexgrave;1ED3
+ocircumflexhookabove;1ED5
+ocircumflextilde;1ED7
+ocyrillic;043E
+odblacute;0151
+odblgrave;020D
+odeva;0913
+odieresis;00F6
+odieresiscyrillic;04E7
+odotbelow;1ECD
+oe;0153
+oekorean;315A
+ogonek;02DB
+ogonekcmb;0328
+ograve;00F2
+ogujarati;0A93
+oharmenian;0585
+ohiragana;304A
+ohookabove;1ECF
+ohorn;01A1
+ohornacute;1EDB
+ohorndotbelow;1EE3
+ohorngrave;1EDD
+ohornhookabove;1EDF
+ohorntilde;1EE1
+ohungarumlaut;0151
+oi;01A3
+oinvertedbreve;020F
+okatakana;30AA
+okatakanahalfwidth;FF75
+okorean;3157
+olehebrew;05AB
+omacron;014D
+omacronacute;1E53
+omacrongrave;1E51
+omdeva;0950
+omega;03C9
+omega1;03D6
+omegacyrillic;0461
+omegalatinclosed;0277
+omegaroundcyrillic;047B
+omegatitlocyrillic;047D
+omegatonos;03CE
+omgujarati;0AD0
+omicron;03BF
+omicrontonos;03CC
+omonospace;FF4F
+one;0031
+onearabic;0661
+onebengali;09E7
+onecircle;2460
+onecircleinversesansserif;278A
+onedeva;0967
+onedotenleader;2024
+oneeighth;215B
+onefitted;F6DC
+onegujarati;0AE7
+onegurmukhi;0A67
+onehackarabic;0661
+onehalf;00BD
+onehangzhou;3021
+oneideographicparen;3220
+oneinferior;2081
+onemonospace;FF11
+onenumeratorbengali;09F4
+oneoldstyle;F731
+oneparen;2474
+oneperiod;2488
+onepersian;06F1
+onequarter;00BC
+oneroman;2170
+onesuperior;00B9
+onethai;0E51
+onethird;2153
+oogonek;01EB
+oogonekmacron;01ED
+oogurmukhi;0A13
+oomatragurmukhi;0A4B
+oopen;0254
+oparen;24AA
+openbullet;25E6
+option;2325
+ordfeminine;00AA
+ordmasculine;00BA
+orthogonal;221F
+oshortdeva;0912
+oshortvowelsigndeva;094A
+oslash;00F8
+oslashacute;01FF
+osmallhiragana;3049
+osmallkatakana;30A9
+osmallkatakanahalfwidth;FF6B
+ostrokeacute;01FF
+osuperior;F6F0
+otcyrillic;047F
+otilde;00F5
+otildeacute;1E4D
+otildedieresis;1E4F
+oubopomofo;3121
+overline;203E
+overlinecenterline;FE4A
+overlinecmb;0305
+overlinedashed;FE49
+overlinedblwavy;FE4C
+overlinewavy;FE4B
+overscore;00AF
+ovowelsignbengali;09CB
+ovowelsigndeva;094B
+ovowelsigngujarati;0ACB
+p;0070
+paampssquare;3380
+paasentosquare;332B
+pabengali;09AA
+pacute;1E55
+padeva;092A
+pagedown;21DF
+pageup;21DE
+pagujarati;0AAA
+pagurmukhi;0A2A
+pahiragana;3071
+paiyannoithai;0E2F
+pakatakana;30D1
+palatalizationcyrilliccmb;0484
+palochkacyrillic;04C0
+pansioskorean;317F
+paragraph;00B6
+parallel;2225
+parenleft;0028
+parenleftaltonearabic;FD3E
+parenleftbt;F8ED
+parenleftex;F8EC
+parenleftinferior;208D
+parenleftmonospace;FF08
+parenleftsmall;FE59
+parenleftsuperior;207D
+parenlefttp;F8EB
+parenleftvertical;FE35
+parenright;0029
+parenrightaltonearabic;FD3F
+parenrightbt;F8F8
+parenrightex;F8F7
+parenrightinferior;208E
+parenrightmonospace;FF09
+parenrightsmall;FE5A
+parenrightsuperior;207E
+parenrighttp;F8F6
+parenrightvertical;FE36
+partialdiff;2202
+paseqhebrew;05C0
+pashtahebrew;0599
+pasquare;33A9
+patah;05B7
+patah11;05B7
+patah1d;05B7
+patah2a;05B7
+patahhebrew;05B7
+patahnarrowhebrew;05B7
+patahquarterhebrew;05B7
+patahwidehebrew;05B7
+pazerhebrew;05A1
+pbopomofo;3106
+pcircle;24DF
+pdotaccent;1E57
+pe;05E4
+pecyrillic;043F
+pedagesh;FB44
+pedageshhebrew;FB44
+peezisquare;333B
+pefinaldageshhebrew;FB43
+peharabic;067E
+peharmenian;057A
+pehebrew;05E4
+pehfinalarabic;FB57
+pehinitialarabic;FB58
+pehiragana;307A
+pehmedialarabic;FB59
+pekatakana;30DA
+pemiddlehookcyrillic;04A7
+perafehebrew;FB4E
+percent;0025
+percentarabic;066A
+percentmonospace;FF05
+percentsmall;FE6A
+period;002E
+periodarmenian;0589
+periodcentered;00B7
+periodhalfwidth;FF61
+periodinferior;F6E7
+periodmonospace;FF0E
+periodsmall;FE52
+periodsuperior;F6E8
+perispomenigreekcmb;0342
+perpendicular;22A5
+perthousand;2030
+peseta;20A7
+pfsquare;338A
+phabengali;09AB
+phadeva;092B
+phagujarati;0AAB
+phagurmukhi;0A2B
+phi;03C6
+phi1;03D5
+phieuphacirclekorean;327A
+phieuphaparenkorean;321A
+phieuphcirclekorean;326C
+phieuphkorean;314D
+phieuphparenkorean;320C
+philatin;0278
+phinthuthai;0E3A
+phisymbolgreek;03D5
+phook;01A5
+phophanthai;0E1E
+phophungthai;0E1C
+phosamphaothai;0E20
+pi;03C0
+pieupacirclekorean;3273
+pieupaparenkorean;3213
+pieupcieuckorean;3176
+pieupcirclekorean;3265
+pieupkiyeokkorean;3172
+pieupkorean;3142
+pieupparenkorean;3205
+pieupsioskiyeokkorean;3174
+pieupsioskorean;3144
+pieupsiostikeutkorean;3175
+pieupthieuthkorean;3177
+pieuptikeutkorean;3173
+pihiragana;3074
+pikatakana;30D4
+pisymbolgreek;03D6
+piwrarmenian;0583
+plus;002B
+plusbelowcmb;031F
+pluscircle;2295
+plusminus;00B1
+plusmod;02D6
+plusmonospace;FF0B
+plussmall;FE62
+plussuperior;207A
+pmonospace;FF50
+pmsquare;33D8
+pohiragana;307D
+pointingindexdownwhite;261F
+pointingindexleftwhite;261C
+pointingindexrightwhite;261E
+pointingindexupwhite;261D
+pokatakana;30DD
+poplathai;0E1B
+postalmark;3012
+postalmarkface;3020
+pparen;24AB
+precedes;227A
+prescription;211E
+primemod;02B9
+primereversed;2035
+product;220F
+projective;2305
+prolongedkana;30FC
+propellor;2318
+propersubset;2282
+propersuperset;2283
+proportion;2237
+proportional;221D
+psi;03C8
+psicyrillic;0471
+psilipneumatacyrilliccmb;0486
+pssquare;33B0
+puhiragana;3077
+pukatakana;30D7
+pvsquare;33B4
+pwsquare;33BA
+q;0071
+qadeva;0958
+qadmahebrew;05A8
+qafarabic;0642
+qaffinalarabic;FED6
+qafinitialarabic;FED7
+qafmedialarabic;FED8
+qamats;05B8
+qamats10;05B8
+qamats1a;05B8
+qamats1c;05B8
+qamats27;05B8
+qamats29;05B8
+qamats33;05B8
+qamatsde;05B8
+qamatshebrew;05B8
+qamatsnarrowhebrew;05B8
+qamatsqatanhebrew;05B8
+qamatsqatannarrowhebrew;05B8
+qamatsqatanquarterhebrew;05B8
+qamatsqatanwidehebrew;05B8
+qamatsquarterhebrew;05B8
+qamatswidehebrew;05B8
+qarneyparahebrew;059F
+qbopomofo;3111
+qcircle;24E0
+qhook;02A0
+qmonospace;FF51
+qof;05E7
+qofdagesh;FB47
+qofdageshhebrew;FB47
+qofhebrew;05E7
+qparen;24AC
+quarternote;2669
+qubuts;05BB
+qubuts18;05BB
+qubuts25;05BB
+qubuts31;05BB
+qubutshebrew;05BB
+qubutsnarrowhebrew;05BB
+qubutsquarterhebrew;05BB
+qubutswidehebrew;05BB
+question;003F
+questionarabic;061F
+questionarmenian;055E
+questiondown;00BF
+questiondownsmall;F7BF
+questiongreek;037E
+questionmonospace;FF1F
+questionsmall;F73F
+quotedbl;0022
+quotedblbase;201E
+quotedblleft;201C
+quotedblmonospace;FF02
+quotedblprime;301E
+quotedblprimereversed;301D
+quotedblright;201D
+quoteleft;2018
+quoteleftreversed;201B
+quotereversed;201B
+quoteright;2019
+quoterightn;0149
+quotesinglbase;201A
+quotesingle;0027
+quotesinglemonospace;FF07
+r;0072
+raarmenian;057C
+rabengali;09B0
+racute;0155
+radeva;0930
+radical;221A
+radicalex;F8E5
+radoverssquare;33AE
+radoverssquaredsquare;33AF
+radsquare;33AD
+rafe;05BF
+rafehebrew;05BF
+ragujarati;0AB0
+ragurmukhi;0A30
+rahiragana;3089
+rakatakana;30E9
+rakatakanahalfwidth;FF97
+ralowerdiagonalbengali;09F1
+ramiddlediagonalbengali;09F0
+ramshorn;0264
+ratio;2236
+rbopomofo;3116
+rcaron;0159
+rcedilla;0157
+rcircle;24E1
+rcommaaccent;0157
+rdblgrave;0211
+rdotaccent;1E59
+rdotbelow;1E5B
+rdotbelowmacron;1E5D
+referencemark;203B
+reflexsubset;2286
+reflexsuperset;2287
+registered;00AE
+registersans;F8E8
+registerserif;F6DA
+reharabic;0631
+reharmenian;0580
+rehfinalarabic;FEAE
+rehiragana;308C
+rekatakana;30EC
+rekatakanahalfwidth;FF9A
+resh;05E8
+reshdageshhebrew;FB48
+reshhebrew;05E8
+reversedtilde;223D
+reviahebrew;0597
+reviamugrashhebrew;0597
+revlogicalnot;2310
+rfishhook;027E
+rfishhookreversed;027F
+rhabengali;09DD
+rhadeva;095D
+rho;03C1
+rhook;027D
+rhookturned;027B
+rhookturnedsuperior;02B5
+rhosymbolgreek;03F1
+rhotichookmod;02DE
+rieulacirclekorean;3271
+rieulaparenkorean;3211
+rieulcirclekorean;3263
+rieulhieuhkorean;3140
+rieulkiyeokkorean;313A
+rieulkiyeoksioskorean;3169
+rieulkorean;3139
+rieulmieumkorean;313B
+rieulpansioskorean;316C
+rieulparenkorean;3203
+rieulphieuphkorean;313F
+rieulpieupkorean;313C
+rieulpieupsioskorean;316B
+rieulsioskorean;313D
+rieulthieuthkorean;313E
+rieultikeutkorean;316A
+rieulyeorinhieuhkorean;316D
+rightangle;221F
+righttackbelowcmb;0319
+righttriangle;22BF
+rihiragana;308A
+rikatakana;30EA
+rikatakanahalfwidth;FF98
+ring;02DA
+ringbelowcmb;0325
+ringcmb;030A
+ringhalfleft;02BF
+ringhalfleftarmenian;0559
+ringhalfleftbelowcmb;031C
+ringhalfleftcentered;02D3
+ringhalfright;02BE
+ringhalfrightbelowcmb;0339
+ringhalfrightcentered;02D2
+rinvertedbreve;0213
+rittorusquare;3351
+rlinebelow;1E5F
+rlongleg;027C
+rlonglegturned;027A
+rmonospace;FF52
+rohiragana;308D
+rokatakana;30ED
+rokatakanahalfwidth;FF9B
+roruathai;0E23
+rparen;24AD
+rrabengali;09DC
+rradeva;0931
+rragurmukhi;0A5C
+rreharabic;0691
+rrehfinalarabic;FB8D
+rrvocalicbengali;09E0
+rrvocalicdeva;0960
+rrvocalicgujarati;0AE0
+rrvocalicvowelsignbengali;09C4
+rrvocalicvowelsigndeva;0944
+rrvocalicvowelsigngujarati;0AC4
+rsuperior;F6F1
+rtblock;2590
+rturned;0279
+rturnedsuperior;02B4
+ruhiragana;308B
+rukatakana;30EB
+rukatakanahalfwidth;FF99
+rupeemarkbengali;09F2
+rupeesignbengali;09F3
+rupiah;F6DD
+ruthai;0E24
+rvocalicbengali;098B
+rvocalicdeva;090B
+rvocalicgujarati;0A8B
+rvocalicvowelsignbengali;09C3
+rvocalicvowelsigndeva;0943
+rvocalicvowelsigngujarati;0AC3
+s;0073
+sabengali;09B8
+sacute;015B
+sacutedotaccent;1E65
+sadarabic;0635
+sadeva;0938
+sadfinalarabic;FEBA
+sadinitialarabic;FEBB
+sadmedialarabic;FEBC
+sagujarati;0AB8
+sagurmukhi;0A38
+sahiragana;3055
+sakatakana;30B5
+sakatakanahalfwidth;FF7B
+sallallahoualayhewasallamarabic;FDFA
+samekh;05E1
+samekhdagesh;FB41
+samekhdageshhebrew;FB41
+samekhhebrew;05E1
+saraaathai;0E32
+saraaethai;0E41
+saraaimaimalaithai;0E44
+saraaimaimuanthai;0E43
+saraamthai;0E33
+saraathai;0E30
+saraethai;0E40
+saraiileftthai;F886
+saraiithai;0E35
+saraileftthai;F885
+saraithai;0E34
+saraothai;0E42
+saraueeleftthai;F888
+saraueethai;0E37
+saraueleftthai;F887
+sarauethai;0E36
+sarauthai;0E38
+sarauuthai;0E39
+sbopomofo;3119
+scaron;0161
+scarondotaccent;1E67
+scedilla;015F
+schwa;0259
+schwacyrillic;04D9
+schwadieresiscyrillic;04DB
+schwahook;025A
+scircle;24E2
+scircumflex;015D
+scommaaccent;0219
+sdotaccent;1E61
+sdotbelow;1E63
+sdotbelowdotaccent;1E69
+seagullbelowcmb;033C
+second;2033
+secondtonechinese;02CA
+section;00A7
+seenarabic;0633
+seenfinalarabic;FEB2
+seeninitialarabic;FEB3
+seenmedialarabic;FEB4
+segol;05B6
+segol13;05B6
+segol1f;05B6
+segol2c;05B6
+segolhebrew;05B6
+segolnarrowhebrew;05B6
+segolquarterhebrew;05B6
+segoltahebrew;0592
+segolwidehebrew;05B6
+seharmenian;057D
+sehiragana;305B
+sekatakana;30BB
+sekatakanahalfwidth;FF7E
+semicolon;003B
+semicolonarabic;061B
+semicolonmonospace;FF1B
+semicolonsmall;FE54
+semivoicedmarkkana;309C
+semivoicedmarkkanahalfwidth;FF9F
+sentisquare;3322
+sentosquare;3323
+seven;0037
+sevenarabic;0667
+sevenbengali;09ED
+sevencircle;2466
+sevencircleinversesansserif;2790
+sevendeva;096D
+seveneighths;215E
+sevengujarati;0AED
+sevengurmukhi;0A6D
+sevenhackarabic;0667
+sevenhangzhou;3027
+sevenideographicparen;3226
+seveninferior;2087
+sevenmonospace;FF17
+sevenoldstyle;F737
+sevenparen;247A
+sevenperiod;248E
+sevenpersian;06F7
+sevenroman;2176
+sevensuperior;2077
+seventeencircle;2470
+seventeenparen;2484
+seventeenperiod;2498
+seventhai;0E57
+sfthyphen;00AD
+shaarmenian;0577
+shabengali;09B6
+shacyrillic;0448
+shaddaarabic;0651
+shaddadammaarabic;FC61
+shaddadammatanarabic;FC5E
+shaddafathaarabic;FC60
+shaddakasraarabic;FC62
+shaddakasratanarabic;FC5F
+shade;2592
+shadedark;2593
+shadelight;2591
+shademedium;2592
+shadeva;0936
+shagujarati;0AB6
+shagurmukhi;0A36
+shalshelethebrew;0593
+shbopomofo;3115
+shchacyrillic;0449
+sheenarabic;0634
+sheenfinalarabic;FEB6
+sheeninitialarabic;FEB7
+sheenmedialarabic;FEB8
+sheicoptic;03E3
+sheqel;20AA
+sheqelhebrew;20AA
+sheva;05B0
+sheva115;05B0
+sheva15;05B0
+sheva22;05B0
+sheva2e;05B0
+shevahebrew;05B0
+shevanarrowhebrew;05B0
+shevaquarterhebrew;05B0
+shevawidehebrew;05B0
+shhacyrillic;04BB
+shimacoptic;03ED
+shin;05E9
+shindagesh;FB49
+shindageshhebrew;FB49
+shindageshshindot;FB2C
+shindageshshindothebrew;FB2C
+shindageshsindot;FB2D
+shindageshsindothebrew;FB2D
+shindothebrew;05C1
+shinhebrew;05E9
+shinshindot;FB2A
+shinshindothebrew;FB2A
+shinsindot;FB2B
+shinsindothebrew;FB2B
+shook;0282
+sigma;03C3
+sigma1;03C2
+sigmafinal;03C2
+sigmalunatesymbolgreek;03F2
+sihiragana;3057
+sikatakana;30B7
+sikatakanahalfwidth;FF7C
+siluqhebrew;05BD
+siluqlefthebrew;05BD
+similar;223C
+sindothebrew;05C2
+siosacirclekorean;3274
+siosaparenkorean;3214
+sioscieuckorean;317E
+sioscirclekorean;3266
+sioskiyeokkorean;317A
+sioskorean;3145
+siosnieunkorean;317B
+siosparenkorean;3206
+siospieupkorean;317D
+siostikeutkorean;317C
+six;0036
+sixarabic;0666
+sixbengali;09EC
+sixcircle;2465
+sixcircleinversesansserif;278F
+sixdeva;096C
+sixgujarati;0AEC
+sixgurmukhi;0A6C
+sixhackarabic;0666
+sixhangzhou;3026
+sixideographicparen;3225
+sixinferior;2086
+sixmonospace;FF16
+sixoldstyle;F736
+sixparen;2479
+sixperiod;248D
+sixpersian;06F6
+sixroman;2175
+sixsuperior;2076
+sixteencircle;246F
+sixteencurrencydenominatorbengali;09F9
+sixteenparen;2483
+sixteenperiod;2497
+sixthai;0E56
+slash;002F
+slashmonospace;FF0F
+slong;017F
+slongdotaccent;1E9B
+smileface;263A
+smonospace;FF53
+sofpasuqhebrew;05C3
+softhyphen;00AD
+softsigncyrillic;044C
+sohiragana;305D
+sokatakana;30BD
+sokatakanahalfwidth;FF7F
+soliduslongoverlaycmb;0338
+solidusshortoverlaycmb;0337
+sorusithai;0E29
+sosalathai;0E28
+sosothai;0E0B
+sosuathai;0E2A
+space;0020
+spacehackarabic;0020
+spade;2660
+spadesuitblack;2660
+spadesuitwhite;2664
+sparen;24AE
+squarebelowcmb;033B
+squarecc;33C4
+squarecm;339D
+squarediagonalcrosshatchfill;25A9
+squarehorizontalfill;25A4
+squarekg;338F
+squarekm;339E
+squarekmcapital;33CE
+squareln;33D1
+squarelog;33D2
+squaremg;338E
+squaremil;33D5
+squaremm;339C
+squaremsquared;33A1
+squareorthogonalcrosshatchfill;25A6
+squareupperlefttolowerrightfill;25A7
+squareupperrighttolowerleftfill;25A8
+squareverticalfill;25A5
+squarewhitewithsmallblack;25A3
+srsquare;33DB
+ssabengali;09B7
+ssadeva;0937
+ssagujarati;0AB7
+ssangcieuckorean;3149
+ssanghieuhkorean;3185
+ssangieungkorean;3180
+ssangkiyeokkorean;3132
+ssangnieunkorean;3165
+ssangpieupkorean;3143
+ssangsioskorean;3146
+ssangtikeutkorean;3138
+ssuperior;F6F2
+sterling;00A3
+sterlingmonospace;FFE1
+strokelongoverlaycmb;0336
+strokeshortoverlaycmb;0335
+subset;2282
+subsetnotequal;228A
+subsetorequal;2286
+succeeds;227B
+suchthat;220B
+suhiragana;3059
+sukatakana;30B9
+sukatakanahalfwidth;FF7D
+sukunarabic;0652
+summation;2211
+sun;263C
+superset;2283
+supersetnotequal;228B
+supersetorequal;2287
+svsquare;33DC
+syouwaerasquare;337C
+t;0074
+tabengali;09A4
+tackdown;22A4
+tackleft;22A3
+tadeva;0924
+tagujarati;0AA4
+tagurmukhi;0A24
+taharabic;0637
+tahfinalarabic;FEC2
+tahinitialarabic;FEC3
+tahiragana;305F
+tahmedialarabic;FEC4
+taisyouerasquare;337D
+takatakana;30BF
+takatakanahalfwidth;FF80
+tatweelarabic;0640
+tau;03C4
+tav;05EA
+tavdages;FB4A
+tavdagesh;FB4A
+tavdageshhebrew;FB4A
+tavhebrew;05EA
+tbar;0167
+tbopomofo;310A
+tcaron;0165
+tccurl;02A8
+tcedilla;0163
+tcheharabic;0686
+tchehfinalarabic;FB7B
+tchehinitialarabic;FB7C
+tchehmedialarabic;FB7D
+tcircle;24E3
+tcircumflexbelow;1E71
+tcommaaccent;0163
+tdieresis;1E97
+tdotaccent;1E6B
+tdotbelow;1E6D
+tecyrillic;0442
+tedescendercyrillic;04AD
+teharabic;062A
+tehfinalarabic;FE96
+tehhahinitialarabic;FCA2
+tehhahisolatedarabic;FC0C
+tehinitialarabic;FE97
+tehiragana;3066
+tehjeeminitialarabic;FCA1
+tehjeemisolatedarabic;FC0B
+tehmarbutaarabic;0629
+tehmarbutafinalarabic;FE94
+tehmedialarabic;FE98
+tehmeeminitialarabic;FCA4
+tehmeemisolatedarabic;FC0E
+tehnoonfinalarabic;FC73
+tekatakana;30C6
+tekatakanahalfwidth;FF83
+telephone;2121
+telephoneblack;260E
+telishagedolahebrew;05A0
+telishaqetanahebrew;05A9
+tencircle;2469
+tenideographicparen;3229
+tenparen;247D
+tenperiod;2491
+tenroman;2179
+tesh;02A7
+tet;05D8
+tetdagesh;FB38
+tetdageshhebrew;FB38
+tethebrew;05D8
+tetsecyrillic;04B5
+tevirhebrew;059B
+tevirlefthebrew;059B
+thabengali;09A5
+thadeva;0925
+thagujarati;0AA5
+thagurmukhi;0A25
+thalarabic;0630
+thalfinalarabic;FEAC
+thanthakhatlowleftthai;F898
+thanthakhatlowrightthai;F897
+thanthakhatthai;0E4C
+thanthakhatupperleftthai;F896
+theharabic;062B
+thehfinalarabic;FE9A
+thehinitialarabic;FE9B
+thehmedialarabic;FE9C
+thereexists;2203
+therefore;2234
+theta;03B8
+theta1;03D1
+thetasymbolgreek;03D1
+thieuthacirclekorean;3279
+thieuthaparenkorean;3219
+thieuthcirclekorean;326B
+thieuthkorean;314C
+thieuthparenkorean;320B
+thirteencircle;246C
+thirteenparen;2480
+thirteenperiod;2494
+thonangmonthothai;0E11
+thook;01AD
+thophuthaothai;0E12
+thorn;00FE
+thothahanthai;0E17
+thothanthai;0E10
+thothongthai;0E18
+thothungthai;0E16
+thousandcyrillic;0482
+thousandsseparatorarabic;066C
+thousandsseparatorpersian;066C
+three;0033
+threearabic;0663
+threebengali;09E9
+threecircle;2462
+threecircleinversesansserif;278C
+threedeva;0969
+threeeighths;215C
+threegujarati;0AE9
+threegurmukhi;0A69
+threehackarabic;0663
+threehangzhou;3023
+threeideographicparen;3222
+threeinferior;2083
+threemonospace;FF13
+threenumeratorbengali;09F6
+threeoldstyle;F733
+threeparen;2476
+threeperiod;248A
+threepersian;06F3
+threequarters;00BE
+threequartersemdash;F6DE
+threeroman;2172
+threesuperior;00B3
+threethai;0E53
+thzsquare;3394
+tihiragana;3061
+tikatakana;30C1
+tikatakanahalfwidth;FF81
+tikeutacirclekorean;3270
+tikeutaparenkorean;3210
+tikeutcirclekorean;3262
+tikeutkorean;3137
+tikeutparenkorean;3202
+tilde;02DC
+tildebelowcmb;0330
+tildecmb;0303
+tildecomb;0303
+tildedoublecmb;0360
+tildeoperator;223C
+tildeoverlaycmb;0334
+tildeverticalcmb;033E
+timescircle;2297
+tipehahebrew;0596
+tipehalefthebrew;0596
+tippigurmukhi;0A70
+titlocyrilliccmb;0483
+tiwnarmenian;057F
+tlinebelow;1E6F
+tmonospace;FF54
+toarmenian;0569
+tohiragana;3068
+tokatakana;30C8
+tokatakanahalfwidth;FF84
+tonebarextrahighmod;02E5
+tonebarextralowmod;02E9
+tonebarhighmod;02E6
+tonebarlowmod;02E8
+tonebarmidmod;02E7
+tonefive;01BD
+tonesix;0185
+tonetwo;01A8
+tonos;0384
+tonsquare;3327
+topatakthai;0E0F
+tortoiseshellbracketleft;3014
+tortoiseshellbracketleftsmall;FE5D
+tortoiseshellbracketleftvertical;FE39
+tortoiseshellbracketright;3015
+tortoiseshellbracketrightsmall;FE5E
+tortoiseshellbracketrightvertical;FE3A
+totaothai;0E15
+tpalatalhook;01AB
+tparen;24AF
+trademark;2122
+trademarksans;F8EA
+trademarkserif;F6DB
+tretroflexhook;0288
+triagdn;25BC
+triaglf;25C4
+triagrt;25BA
+triagup;25B2
+ts;02A6
+tsadi;05E6
+tsadidagesh;FB46
+tsadidageshhebrew;FB46
+tsadihebrew;05E6
+tsecyrillic;0446
+tsere;05B5
+tsere12;05B5
+tsere1e;05B5
+tsere2b;05B5
+tserehebrew;05B5
+tserenarrowhebrew;05B5
+tserequarterhebrew;05B5
+tserewidehebrew;05B5
+tshecyrillic;045B
+tsuperior;F6F3
+ttabengali;099F
+ttadeva;091F
+ttagujarati;0A9F
+ttagurmukhi;0A1F
+tteharabic;0679
+ttehfinalarabic;FB67
+ttehinitialarabic;FB68
+ttehmedialarabic;FB69
+tthabengali;09A0
+tthadeva;0920
+tthagujarati;0AA0
+tthagurmukhi;0A20
+tturned;0287
+tuhiragana;3064
+tukatakana;30C4
+tukatakanahalfwidth;FF82
+tusmallhiragana;3063
+tusmallkatakana;30C3
+tusmallkatakanahalfwidth;FF6F
+twelvecircle;246B
+twelveparen;247F
+twelveperiod;2493
+twelveroman;217B
+twentycircle;2473
+twentyhangzhou;5344
+twentyparen;2487
+twentyperiod;249B
+two;0032
+twoarabic;0662
+twobengali;09E8
+twocircle;2461
+twocircleinversesansserif;278B
+twodeva;0968
+twodotenleader;2025
+twodotleader;2025
+twodotleadervertical;FE30
+twogujarati;0AE8
+twogurmukhi;0A68
+twohackarabic;0662
+twohangzhou;3022
+twoideographicparen;3221
+twoinferior;2082
+twomonospace;FF12
+twonumeratorbengali;09F5
+twooldstyle;F732
+twoparen;2475
+twoperiod;2489
+twopersian;06F2
+tworoman;2171
+twostroke;01BB
+twosuperior;00B2
+twothai;0E52
+twothirds;2154
+u;0075
+uacute;00FA
+ubar;0289
+ubengali;0989
+ubopomofo;3128
+ubreve;016D
+ucaron;01D4
+ucircle;24E4
+ucircumflex;00FB
+ucircumflexbelow;1E77
+ucyrillic;0443
+udattadeva;0951
+udblacute;0171
+udblgrave;0215
+udeva;0909
+udieresis;00FC
+udieresisacute;01D8
+udieresisbelow;1E73
+udieresiscaron;01DA
+udieresiscyrillic;04F1
+udieresisgrave;01DC
+udieresismacron;01D6
+udotbelow;1EE5
+ugrave;00F9
+ugujarati;0A89
+ugurmukhi;0A09
+uhiragana;3046
+uhookabove;1EE7
+uhorn;01B0
+uhornacute;1EE9
+uhorndotbelow;1EF1
+uhorngrave;1EEB
+uhornhookabove;1EED
+uhorntilde;1EEF
+uhungarumlaut;0171
+uhungarumlautcyrillic;04F3
+uinvertedbreve;0217
+ukatakana;30A6
+ukatakanahalfwidth;FF73
+ukcyrillic;0479
+ukorean;315C
+umacron;016B
+umacroncyrillic;04EF
+umacrondieresis;1E7B
+umatragurmukhi;0A41
+umonospace;FF55
+underscore;005F
+underscoredbl;2017
+underscoremonospace;FF3F
+underscorevertical;FE33
+underscorewavy;FE4F
+union;222A
+universal;2200
+uogonek;0173
+uparen;24B0
+upblock;2580
+upperdothebrew;05C4
+upsilon;03C5
+upsilondieresis;03CB
+upsilondieresistonos;03B0
+upsilonlatin;028A
+upsilontonos;03CD
+uptackbelowcmb;031D
+uptackmod;02D4
+uragurmukhi;0A73
+uring;016F
+ushortcyrillic;045E
+usmallhiragana;3045
+usmallkatakana;30A5
+usmallkatakanahalfwidth;FF69
+ustraightcyrillic;04AF
+ustraightstrokecyrillic;04B1
+utilde;0169
+utildeacute;1E79
+utildebelow;1E75
+uubengali;098A
+uudeva;090A
+uugujarati;0A8A
+uugurmukhi;0A0A
+uumatragurmukhi;0A42
+uuvowelsignbengali;09C2
+uuvowelsigndeva;0942
+uuvowelsigngujarati;0AC2
+uvowelsignbengali;09C1
+uvowelsigndeva;0941
+uvowelsigngujarati;0AC1
+v;0076
+vadeva;0935
+vagujarati;0AB5
+vagurmukhi;0A35
+vakatakana;30F7
+vav;05D5
+vavdagesh;FB35
+vavdagesh65;FB35
+vavdageshhebrew;FB35
+vavhebrew;05D5
+vavholam;FB4B
+vavholamhebrew;FB4B
+vavvavhebrew;05F0
+vavyodhebrew;05F1
+vcircle;24E5
+vdotbelow;1E7F
+vecyrillic;0432
+veharabic;06A4
+vehfinalarabic;FB6B
+vehinitialarabic;FB6C
+vehmedialarabic;FB6D
+vekatakana;30F9
+venus;2640
+verticalbar;007C
+verticallineabovecmb;030D
+verticallinebelowcmb;0329
+verticallinelowmod;02CC
+verticallinemod;02C8
+vewarmenian;057E
+vhook;028B
+vikatakana;30F8
+viramabengali;09CD
+viramadeva;094D
+viramagujarati;0ACD
+visargabengali;0983
+visargadeva;0903
+visargagujarati;0A83
+vmonospace;FF56
+voarmenian;0578
+voicediterationhiragana;309E
+voicediterationkatakana;30FE
+voicedmarkkana;309B
+voicedmarkkanahalfwidth;FF9E
+vokatakana;30FA
+vparen;24B1
+vtilde;1E7D
+vturned;028C
+vuhiragana;3094
+vukatakana;30F4
+w;0077
+wacute;1E83
+waekorean;3159
+wahiragana;308F
+wakatakana;30EF
+wakatakanahalfwidth;FF9C
+wakorean;3158
+wasmallhiragana;308E
+wasmallkatakana;30EE
+wattosquare;3357
+wavedash;301C
+wavyunderscorevertical;FE34
+wawarabic;0648
+wawfinalarabic;FEEE
+wawhamzaabovearabic;0624
+wawhamzaabovefinalarabic;FE86
+wbsquare;33DD
+wcircle;24E6
+wcircumflex;0175
+wdieresis;1E85
+wdotaccent;1E87
+wdotbelow;1E89
+wehiragana;3091
+weierstrass;2118
+wekatakana;30F1
+wekorean;315E
+weokorean;315D
+wgrave;1E81
+whitebullet;25E6
+whitecircle;25CB
+whitecircleinverse;25D9
+whitecornerbracketleft;300E
+whitecornerbracketleftvertical;FE43
+whitecornerbracketright;300F
+whitecornerbracketrightvertical;FE44
+whitediamond;25C7
+whitediamondcontainingblacksmalldiamond;25C8
+whitedownpointingsmalltriangle;25BF
+whitedownpointingtriangle;25BD
+whiteleftpointingsmalltriangle;25C3
+whiteleftpointingtriangle;25C1
+whitelenticularbracketleft;3016
+whitelenticularbracketright;3017
+whiterightpointingsmalltriangle;25B9
+whiterightpointingtriangle;25B7
+whitesmallsquare;25AB
+whitesmilingface;263A
+whitesquare;25A1
+whitestar;2606
+whitetelephone;260F
+whitetortoiseshellbracketleft;3018
+whitetortoiseshellbracketright;3019
+whiteuppointingsmalltriangle;25B5
+whiteuppointingtriangle;25B3
+wihiragana;3090
+wikatakana;30F0
+wikorean;315F
+wmonospace;FF57
+wohiragana;3092
+wokatakana;30F2
+wokatakanahalfwidth;FF66
+won;20A9
+wonmonospace;FFE6
+wowaenthai;0E27
+wparen;24B2
+wring;1E98
+wsuperior;02B7
+wturned;028D
+wynn;01BF
+x;0078
+xabovecmb;033D
+xbopomofo;3112
+xcircle;24E7
+xdieresis;1E8D
+xdotaccent;1E8B
+xeharmenian;056D
+xi;03BE
+xmonospace;FF58
+xparen;24B3
+xsuperior;02E3
+y;0079
+yaadosquare;334E
+yabengali;09AF
+yacute;00FD
+yadeva;092F
+yaekorean;3152
+yagujarati;0AAF
+yagurmukhi;0A2F
+yahiragana;3084
+yakatakana;30E4
+yakatakanahalfwidth;FF94
+yakorean;3151
+yamakkanthai;0E4E
+yasmallhiragana;3083
+yasmallkatakana;30E3
+yasmallkatakanahalfwidth;FF6C
+yatcyrillic;0463
+ycircle;24E8
+ycircumflex;0177
+ydieresis;00FF
+ydotaccent;1E8F
+ydotbelow;1EF5
+yeharabic;064A
+yehbarreearabic;06D2
+yehbarreefinalarabic;FBAF
+yehfinalarabic;FEF2
+yehhamzaabovearabic;0626
+yehhamzaabovefinalarabic;FE8A
+yehhamzaaboveinitialarabic;FE8B
+yehhamzaabovemedialarabic;FE8C
+yehinitialarabic;FEF3
+yehmedialarabic;FEF4
+yehmeeminitialarabic;FCDD
+yehmeemisolatedarabic;FC58
+yehnoonfinalarabic;FC94
+yehthreedotsbelowarabic;06D1
+yekorean;3156
+yen;00A5
+yenmonospace;FFE5
+yeokorean;3155
+yeorinhieuhkorean;3186
+yerahbenyomohebrew;05AA
+yerahbenyomolefthebrew;05AA
+yericyrillic;044B
+yerudieresiscyrillic;04F9
+yesieungkorean;3181
+yesieungpansioskorean;3183
+yesieungsioskorean;3182
+yetivhebrew;059A
+ygrave;1EF3
+yhook;01B4
+yhookabove;1EF7
+yiarmenian;0575
+yicyrillic;0457
+yikorean;3162
+yinyang;262F
+yiwnarmenian;0582
+ymonospace;FF59
+yod;05D9
+yoddagesh;FB39
+yoddageshhebrew;FB39
+yodhebrew;05D9
+yodyodhebrew;05F2
+yodyodpatahhebrew;FB1F
+yohiragana;3088
+yoikorean;3189
+yokatakana;30E8
+yokatakanahalfwidth;FF96
+yokorean;315B
+yosmallhiragana;3087
+yosmallkatakana;30E7
+yosmallkatakanahalfwidth;FF6E
+yotgreek;03F3
+yoyaekorean;3188
+yoyakorean;3187
+yoyakthai;0E22
+yoyingthai;0E0D
+yparen;24B4
+ypogegrammeni;037A
+ypogegrammenigreekcmb;0345
+yr;01A6
+yring;1E99
+ysuperior;02B8
+ytilde;1EF9
+yturned;028E
+yuhiragana;3086
+yuikorean;318C
+yukatakana;30E6
+yukatakanahalfwidth;FF95
+yukorean;3160
+yusbigcyrillic;046B
+yusbigiotifiedcyrillic;046D
+yuslittlecyrillic;0467
+yuslittleiotifiedcyrillic;0469
+yusmallhiragana;3085
+yusmallkatakana;30E5
+yusmallkatakanahalfwidth;FF6D
+yuyekorean;318B
+yuyeokorean;318A
+yyabengali;09DF
+yyadeva;095F
+z;007A
+zaarmenian;0566
+zacute;017A
+zadeva;095B
+zagurmukhi;0A5B
+zaharabic;0638
+zahfinalarabic;FEC6
+zahinitialarabic;FEC7
+zahiragana;3056
+zahmedialarabic;FEC8
+zainarabic;0632
+zainfinalarabic;FEB0
+zakatakana;30B6
+zaqefgadolhebrew;0595
+zaqefqatanhebrew;0594
+zarqahebrew;0598
+zayin;05D6
+zayindagesh;FB36
+zayindageshhebrew;FB36
+zayinhebrew;05D6
+zbopomofo;3117
+zcaron;017E
+zcircle;24E9
+zcircumflex;1E91
+zcurl;0291
+zdot;017C
+zdotaccent;017C
+zdotbelow;1E93
+zecyrillic;0437
+zedescendercyrillic;0499
+zedieresiscyrillic;04DF
+zehiragana;305C
+zekatakana;30BC
+zero;0030
+zeroarabic;0660
+zerobengali;09E6
+zerodeva;0966
+zerogujarati;0AE6
+zerogurmukhi;0A66
+zerohackarabic;0660
+zeroinferior;2080
+zeromonospace;FF10
+zerooldstyle;F730
+zeropersian;06F0
+zerosuperior;2070
+zerothai;0E50
+zerowidthjoiner;FEFF
+zerowidthnonjoiner;200C
+zerowidthspace;200B
+zeta;03B6
+zhbopomofo;3113
+zhearmenian;056A
+zhebrevecyrillic;04C2
+zhecyrillic;0436
+zhedescendercyrillic;0497
+zhedieresiscyrillic;04DD
+zihiragana;3058
+zikatakana;30B8
+zinorhebrew;05AE
+zlinebelow;1E95
+zmonospace;FF5A
+zohiragana;305E
+zokatakana;30BE
+zparen;24B5
+zretroflexhook;0290
+zstroke;01B6
+zuhiragana;305A
+zukatakana;30BA
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/encodings/character-sets
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/encodings/character-sets	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/share/encodings/character-sets	(revision 2476)
@@ -0,0 +1,1900 @@
+
+===================================================================
+CHARACTER SETS
+
+(last updated 2007-05-14)
+
+These are the official names for character sets that may be used in
+the Internet and may be referred to in Internet documentation.  These
+names are expressed in ANSI_X3.4-1968 which is commonly called
+US-ASCII or simply ASCII.  The character set most commonly use in the
+Internet and used especially in protocol standards is US-ASCII, this
+is strongly encouraged.  The use of the name US-ASCII is also
+encouraged.
+
+The character set names may be up to 40 characters taken from the
+printable characters of US-ASCII.  However, no distinction is made
+between use of upper and lower case letters.
+
+The MIBenum value is a unique value for use in MIBs to identify coded
+character sets.
+
+The value space for MIBenum values has been divided into three
+regions. The first region (3-999) consists of coded character sets
+that have been standardized by some standard setting organization.
+This region is intended for standards that do not have subset
+implementations. The second region (1000-1999) is for the Unicode and
+ISO/IEC 10646 coded character sets together with a specification of a
+(set of) sub-repertoires that may occur.  The third region (>1999) is
+intended for vendor specific coded character sets.
+
+	Assigned MIB enum Numbers
+	-------------------------
+	0-2		Reserved
+	3-999		Set By Standards Organizations
+	1000-1999	Unicode / 10646
+	2000-2999	Vendor
+
+The aliases that start with "cs" have been added for use with the
+IANA-CHARSET-MIB as originally defined in RFC3808, and as currently
+maintained by IANA at http://www.iana.org/assignments/ianacharset-mib.
+Note that the ianacharset-mib needs to be kept in sync with this
+registry.  These aliases that start with "cs" contain the standard 
+numbers along with suggestive names in order to facilitate applications 
+that want to display the names in user interfaces.  The "cs" stands 
+for character set and is provided for applications that need a lower 
+case first letter but want to use mixed case thereafter that cannot 
+contain any special characters, such as underbar ("_") and dash ("-").  
+
+If the character set is from an ISO standard, its cs alias is the ISO
+standard number or name.  If the character set is not from an ISO
+standard, but is registered with ISO (IPSJ/ITSCJ is the current ISO
+Registration Authority), the ISO Registry number is specified as
+ISOnnn followed by letters suggestive of the name or standards number
+of the code set.  When a national or international standard is
+revised, the year of revision is added to the cs alias of the new
+character set entry in the IANA Registry in order to distinguish the
+revised character set from the original character set.
+
+
+Character Set                                               Reference
+-------------                                               ---------
+
+Name: ANSI_X3.4-1968                                   [RFC1345,KXS2]
+MIBenum: 3
+Source: ECMA registry
+Alias: iso-ir-6
+Alias: ANSI_X3.4-1986
+Alias: ISO_646.irv:1991
+Alias: ASCII
+Alias: ISO646-US
+Alias: US-ASCII (preferred MIME name)
+Alias: us
+Alias: IBM367
+Alias: cp367
+Alias: csASCII
+
+Name: ISO_8859-1:1987                                    [RFC1345,KXS2]
+MIBenum: 4
+Source: ECMA registry
+Alias: iso-ir-100
+Alias: ISO_8859-1
+Alias: ISO-8859-1 (preferred MIME name)
+Alias: latin1
+Alias: l1
+Alias: IBM819
+Alias: CP819
+Alias: csISOLatin1
+
+Name: ISO_8859-2:1987                                    [RFC1345,KXS2]
+MIBenum: 5
+Source: ECMA registry
+Alias: iso-ir-101
+Alias: ISO_8859-2
+Alias: ISO-8859-2 (preferred MIME name)
+Alias: latin2
+Alias: l2
+Alias: csISOLatin2
+
+Name: ISO_8859-3:1988                                    [RFC1345,KXS2]
+MIBenum: 6
+Source: ECMA registry
+Alias: iso-ir-109
+Alias: ISO_8859-3
+Alias: ISO-8859-3 (preferred MIME name)
+Alias: latin3
+Alias: l3
+Alias: csISOLatin3
+
+Name: ISO_8859-4:1988                                    [RFC1345,KXS2]
+MIBenum: 7
+Source: ECMA registry
+Alias: iso-ir-110
+Alias: ISO_8859-4
+Alias: ISO-8859-4 (preferred MIME name)
+Alias: latin4
+Alias: l4
+Alias: csISOLatin4
+
+Name: ISO_8859-5:1988                                     [RFC1345,KXS2]
+MIBenum: 8
+Source: ECMA registry
+Alias: iso-ir-144
+Alias: ISO_8859-5
+Alias: ISO-8859-5 (preferred MIME name)
+Alias: cyrillic
+Alias: csISOLatinCyrillic
+
+Name: ISO_8859-6:1987                                    [RFC1345,KXS2]
+MIBenum: 9
+Source: ECMA registry
+Alias: iso-ir-127
+Alias: ISO_8859-6
+Alias: ISO-8859-6 (preferred MIME name)
+Alias: ECMA-114
+Alias: ASMO-708
+Alias: arabic
+Alias: csISOLatinArabic
+
+Name: ISO_8859-7:1987                            [RFC1947,RFC1345,KXS2]
+MIBenum: 10
+Source: ECMA registry
+Alias: iso-ir-126
+Alias: ISO_8859-7
+Alias: ISO-8859-7 (preferred MIME name)
+Alias: ELOT_928
+Alias: ECMA-118
+Alias: greek
+Alias: greek8
+Alias: csISOLatinGreek
+
+Name: ISO_8859-8:1988                                     [RFC1345,KXS2]
+MIBenum: 11
+Source: ECMA registry
+Alias: iso-ir-138
+Alias: ISO_8859-8
+Alias: ISO-8859-8 (preferred MIME name)
+Alias: hebrew
+Alias: csISOLatinHebrew
+
+Name: ISO_8859-9:1989                                     [RFC1345,KXS2]
+MIBenum: 12
+Source: ECMA registry
+Alias: iso-ir-148
+Alias: ISO_8859-9
+Alias: ISO-8859-9 (preferred MIME name)
+Alias: latin5
+Alias: l5
+Alias: csISOLatin5
+
+Name: ISO-8859-10 (preferred MIME name)			  [RFC1345,KXS2]
+MIBenum: 13
+Source: ECMA registry
+Alias: iso-ir-157
+Alias: l6
+Alias: ISO_8859-10:1992
+Alias: csISOLatin6
+Alias: latin6
+
+Name: ISO_6937-2-add                                      [RFC1345,KXS2]
+MIBenum: 14
+Source: ECMA registry and ISO 6937-2:1983
+Alias: iso-ir-142
+Alias: csISOTextComm
+
+Name: JIS_X0201                                           [RFC1345,KXS2]
+MIBenum: 15
+Source: JIS X 0201-1976.   One byte only, this is equivalent to 
+        JIS/Roman (similar to ASCII) plus eight-bit half-width 
+        Katakana
+Alias: X0201
+Alias: csHalfWidthKatakana
+
+Name: JIS_Encoding
+MIBenum: 16
+Source: JIS X 0202-1991.  Uses ISO 2022 escape sequences to
+        shift code sets as documented in JIS X 0202-1991.
+Alias: csJISEncoding
+
+Name: Shift_JIS  (preferred MIME name)
+MIBenum: 17
+Source: This charset is an extension of csHalfWidthKatakana by
+        adding graphic characters in JIS X 0208.  The CCS's are
+        JIS X0201:1997 and JIS X0208:1997.  The
+        complete definition is shown in Appendix 1 of JIS
+        X0208:1997.
+        This charset can be used for the top-level media type "text".
+Alias: MS_Kanji 
+Alias: csShiftJIS
+
+Name: Extended_UNIX_Code_Packed_Format_for_Japanese
+MIBenum: 18
+Source: Standardized by OSF, UNIX International, and UNIX Systems
+        Laboratories Pacific.  Uses ISO 2022 rules to select
+               code set 0: US-ASCII (a single 7-bit byte set)
+               code set 1: JIS X0208-1990 (a double 8-bit byte set)
+                           restricted to A0-FF in both bytes
+               code set 2: Half Width Katakana (a single 7-bit byte set)
+                           requiring SS2 as the character prefix
+               code set 3: JIS X0212-1990 (a double 7-bit byte set)
+                           restricted to A0-FF in both bytes
+                           requiring SS3 as the character prefix
+Alias: csEUCPkdFmtJapanese
+Alias: EUC-JP  (preferred MIME name)
+
+Name: Extended_UNIX_Code_Fixed_Width_for_Japanese
+MIBenum: 19
+Source: Used in Japan.  Each character is 2 octets.
+                code set 0: US-ASCII (a single 7-bit byte set)
+                              1st byte = 00
+                              2nd byte = 20-7E
+                code set 1: JIS X0208-1990 (a double 7-bit byte set)
+                            restricted  to A0-FF in both bytes 
+                code set 2: Half Width Katakana (a single 7-bit byte set)
+                              1st byte = 00
+                              2nd byte = A0-FF
+                code set 3: JIS X0212-1990 (a double 7-bit byte set)
+                            restricted to A0-FF in 
+                            the first byte
+                and 21-7E in the second byte
+Alias: csEUCFixWidJapanese
+
+Name: BS_4730                                           [RFC1345,KXS2]
+MIBenum: 20
+Source: ECMA registry
+Alias: iso-ir-4
+Alias: ISO646-GB
+Alias: gb
+Alias: uk
+Alias: csISO4UnitedKingdom
+
+Name: SEN_850200_C                                      [RFC1345,KXS2]
+MIBenum: 21
+Source: ECMA registry
+Alias: iso-ir-11
+Alias: ISO646-SE2
+Alias: se2
+Alias: csISO11SwedishForNames
+
+Name: IT                                                [RFC1345,KXS2]
+MIBenum: 22
+Source: ECMA registry
+Alias: iso-ir-15
+Alias: ISO646-IT
+Alias: csISO15Italian
+
+Name: ES                                                [RFC1345,KXS2]
+MIBenum: 23
+Source: ECMA registry
+Alias: iso-ir-17
+Alias: ISO646-ES
+Alias: csISO17Spanish
+
+Name: DIN_66003                                         [RFC1345,KXS2]
+MIBenum: 24
+Source: ECMA registry
+Alias: iso-ir-21
+Alias: de
+Alias: ISO646-DE
+Alias: csISO21German
+
+Name: NS_4551-1                                         [RFC1345,KXS2]
+MIBenum: 25
+Source: ECMA registry
+Alias: iso-ir-60
+Alias: ISO646-NO
+Alias: no
+Alias: csISO60DanishNorwegian
+Alias: csISO60Norwegian1
+
+Name: NF_Z_62-010                                        [RFC1345,KXS2]
+MIBenum: 26
+Source: ECMA registry
+Alias: iso-ir-69
+Alias: ISO646-FR
+Alias: fr
+Alias: csISO69French
+
+Name: ISO-10646-UTF-1
+MIBenum: 27
+Source: Universal Transfer Format (1), this is the multibyte
+        encoding, that subsets ASCII-7. It does not have byte
+        ordering issues.
+Alias: csISO10646UTF1
+
+Name: ISO_646.basic:1983                                [RFC1345,KXS2]
+MIBenum: 28
+Source: ECMA registry
+Alias: ref
+Alias: csISO646basic1983
+
+Name: INVARIANT                                         [RFC1345,KXS2]
+MIBenum: 29
+Alias: csINVARIANT
+
+Name: ISO_646.irv:1983                                  [RFC1345,KXS2]
+MIBenum: 30
+Source: ECMA registry
+Alias: iso-ir-2
+Alias: irv
+Alias: csISO2IntlRefVersion
+
+Name: NATS-SEFI                                         [RFC1345,KXS2]
+MIBenum: 31
+Source: ECMA registry
+Alias: iso-ir-8-1
+Alias: csNATSSEFI
+
+Name: NATS-SEFI-ADD                                     [RFC1345,KXS2]
+MIBenum: 32
+Source: ECMA registry
+Alias: iso-ir-8-2
+Alias: csNATSSEFIADD
+
+Name: NATS-DANO                                         [RFC1345,KXS2]
+MIBenum: 33
+Source: ECMA registry
+Alias: iso-ir-9-1
+Alias: csNATSDANO
+
+Name: NATS-DANO-ADD                                     [RFC1345,KXS2]
+MIBenum: 34
+Source: ECMA registry
+Alias: iso-ir-9-2
+Alias: csNATSDANOADD
+
+Name: SEN_850200_B                                      [RFC1345,KXS2]
+MIBenum: 35
+Source: ECMA registry
+Alias: iso-ir-10
+Alias: FI
+Alias: ISO646-FI
+Alias: ISO646-SE
+Alias: se
+Alias: csISO10Swedish
+
+Name: KS_C_5601-1987                                    [RFC1345,KXS2]
+MIBenum: 36
+Source: ECMA registry
+Alias: iso-ir-149
+Alias: KS_C_5601-1989
+Alias: KSC_5601
+Alias: korean
+Alias: csKSC56011987
+
+Name: ISO-2022-KR  (preferred MIME name)                [RFC1557,Choi]
+MIBenum: 37
+Source: RFC-1557 (see also KS_C_5601-1987)
+Alias: csISO2022KR
+
+Name: EUC-KR  (preferred MIME name)                     [RFC1557,Choi]
+MIBenum: 38
+Source: RFC-1557 (see also KS_C_5861-1992)
+Alias: csEUCKR
+
+Name: ISO-2022-JP  (preferred MIME name)               [RFC1468,Murai]
+MIBenum: 39
+Source: RFC-1468 (see also RFC-2237)
+Alias: csISO2022JP
+
+Name: ISO-2022-JP-2  (preferred MIME name)              [RFC1554,Ohta]
+MIBenum: 40
+Source: RFC-1554
+Alias: csISO2022JP2
+
+Name: JIS_C6220-1969-jp                                 [RFC1345,KXS2]
+MIBenum: 41
+Source: ECMA registry
+Alias: JIS_C6220-1969
+Alias: iso-ir-13
+Alias: katakana
+Alias: x0201-7
+Alias: csISO13JISC6220jp
+
+Name: JIS_C6220-1969-ro                                 [RFC1345,KXS2]
+MIBenum: 42
+Source: ECMA registry
+Alias: iso-ir-14
+Alias: jp
+Alias: ISO646-JP
+Alias: csISO14JISC6220ro
+
+Name: PT                                                [RFC1345,KXS2]
+MIBenum: 43
+Source: ECMA registry
+Alias: iso-ir-16
+Alias: ISO646-PT
+Alias: csISO16Portuguese
+
+Name: greek7-old                                        [RFC1345,KXS2]
+MIBenum: 44
+Source: ECMA registry
+Alias: iso-ir-18
+Alias: csISO18Greek7Old
+
+Name: latin-greek                                       [RFC1345,KXS2]
+MIBenum: 45
+Source: ECMA registry
+Alias: iso-ir-19
+Alias: csISO19LatinGreek
+
+Name: NF_Z_62-010_(1973)                                [RFC1345,KXS2]
+MIBenum: 46
+Source: ECMA registry
+Alias: iso-ir-25
+Alias: ISO646-FR1
+Alias: csISO25French
+
+Name: Latin-greek-1                                     [RFC1345,KXS2]
+MIBenum: 47
+Source: ECMA registry
+Alias: iso-ir-27
+Alias: csISO27LatinGreek1
+
+Name: ISO_5427                                          [RFC1345,KXS2]
+MIBenum: 48
+Source: ECMA registry
+Alias: iso-ir-37
+Alias: csISO5427Cyrillic
+
+Name: JIS_C6226-1978                                    [RFC1345,KXS2]
+MIBenum: 49
+Source: ECMA registry
+Alias: iso-ir-42
+Alias: csISO42JISC62261978
+
+Name: BS_viewdata                                       [RFC1345,KXS2]
+MIBenum: 50
+Source: ECMA registry
+Alias: iso-ir-47
+Alias: csISO47BSViewdata
+
+Name: INIS                                              [RFC1345,KXS2]
+MIBenum: 51
+Source: ECMA registry
+Alias: iso-ir-49
+Alias: csISO49INIS
+
+Name: INIS-8                                            [RFC1345,KXS2]
+MIBenum: 52
+Source: ECMA registry
+Alias: iso-ir-50
+Alias: csISO50INIS8
+
+Name: INIS-cyrillic                                     [RFC1345,KXS2]
+MIBenum: 53
+Source: ECMA registry
+Alias: iso-ir-51
+Alias: csISO51INISCyrillic
+
+Name: ISO_5427:1981                                     [RFC1345,KXS2]
+MIBenum: 54
+Source: ECMA registry
+Alias: iso-ir-54
+Alias: ISO5427Cyrillic1981
+
+Name: ISO_5428:1980                                     [RFC1345,KXS2]
+MIBenum: 55
+Source: ECMA registry
+Alias: iso-ir-55
+Alias: csISO5428Greek
+
+Name: GB_1988-80                                        [RFC1345,KXS2]
+MIBenum: 56
+Source: ECMA registry
+Alias: iso-ir-57
+Alias: cn
+Alias: ISO646-CN
+Alias: csISO57GB1988
+
+Name: GB_2312-80                                        [RFC1345,KXS2]
+MIBenum: 57
+Source: ECMA registry
+Alias: iso-ir-58
+Alias: chinese
+Alias: csISO58GB231280
+
+Name: NS_4551-2                                          [RFC1345,KXS2]
+MIBenum: 58
+Source: ECMA registry
+Alias: ISO646-NO2
+Alias: iso-ir-61
+Alias: no2
+Alias: csISO61Norwegian2
+
+Name: videotex-suppl                                     [RFC1345,KXS2]
+MIBenum: 59
+Source: ECMA registry
+Alias: iso-ir-70
+Alias: csISO70VideotexSupp1
+
+Name: PT2                                                [RFC1345,KXS2]
+MIBenum: 60
+Source: ECMA registry
+Alias: iso-ir-84
+Alias: ISO646-PT2
+Alias: csISO84Portuguese2
+
+Name: ES2                                                [RFC1345,KXS2]
+MIBenum: 61
+Source: ECMA registry
+Alias: iso-ir-85
+Alias: ISO646-ES2
+Alias: csISO85Spanish2
+
+Name: MSZ_7795.3                                         [RFC1345,KXS2]
+MIBenum: 62
+Source: ECMA registry
+Alias: iso-ir-86
+Alias: ISO646-HU
+Alias: hu
+Alias: csISO86Hungarian
+
+Name: JIS_C6226-1983                                     [RFC1345,KXS2]
+MIBenum: 63
+Source: ECMA registry
+Alias: iso-ir-87
+Alias: x0208
+Alias: JIS_X0208-1983
+Alias: csISO87JISX0208
+
+Name: greek7                                             [RFC1345,KXS2]
+MIBenum: 64
+Source: ECMA registry
+Alias: iso-ir-88
+Alias: csISO88Greek7
+
+Name: ASMO_449                                           [RFC1345,KXS2]
+MIBenum: 65
+Source: ECMA registry
+Alias: ISO_9036
+Alias: arabic7
+Alias: iso-ir-89
+Alias: csISO89ASMO449
+
+Name: iso-ir-90                                          [RFC1345,KXS2]
+MIBenum: 66
+Source: ECMA registry
+Alias: csISO90
+
+Name: JIS_C6229-1984-a                                   [RFC1345,KXS2]
+MIBenum: 67
+Source: ECMA registry
+Alias: iso-ir-91
+Alias: jp-ocr-a
+Alias: csISO91JISC62291984a
+
+Name: JIS_C6229-1984-b                                   [RFC1345,KXS2]
+MIBenum: 68
+Source: ECMA registry
+Alias: iso-ir-92
+Alias: ISO646-JP-OCR-B
+Alias: jp-ocr-b
+Alias: csISO92JISC62991984b
+
+Name: JIS_C6229-1984-b-add                               [RFC1345,KXS2]
+MIBenum: 69
+Source: ECMA registry
+Alias: iso-ir-93
+Alias: jp-ocr-b-add
+Alias: csISO93JIS62291984badd
+
+Name: JIS_C6229-1984-hand                                [RFC1345,KXS2]
+MIBenum: 70
+Source: ECMA registry
+Alias: iso-ir-94
+Alias: jp-ocr-hand
+Alias: csISO94JIS62291984hand
+
+Name: JIS_C6229-1984-hand-add                            [RFC1345,KXS2]
+MIBenum: 71
+Source: ECMA registry
+Alias: iso-ir-95
+Alias: jp-ocr-hand-add
+Alias: csISO95JIS62291984handadd
+
+Name: JIS_C6229-1984-kana                                [RFC1345,KXS2]
+MIBenum: 72
+Source: ECMA registry
+Alias: iso-ir-96
+Alias: csISO96JISC62291984kana
+
+Name: ISO_2033-1983                                      [RFC1345,KXS2]
+MIBenum: 73
+Source: ECMA registry
+Alias: iso-ir-98
+Alias: e13b
+Alias: csISO2033
+
+Name: ANSI_X3.110-1983                                   [RFC1345,KXS2]
+MIBenum: 74
+Source: ECMA registry
+Alias: iso-ir-99
+Alias: CSA_T500-1983
+Alias: NAPLPS
+Alias: csISO99NAPLPS
+
+Name: T.61-7bit                                          [RFC1345,KXS2]
+MIBenum: 75
+Source: ECMA registry
+Alias: iso-ir-102
+Alias: csISO102T617bit
+
+Name: T.61-8bit                                          [RFC1345,KXS2]
+MIBenum: 76
+Alias: T.61
+Source: ECMA registry
+Alias: iso-ir-103
+Alias: csISO103T618bit
+
+Name: ECMA-cyrillic                                     
+MIBenum: 77
+Source: ISO registry (formerly ECMA registry)
+         http://www.itscj.ipsj.jp/ISO-IR/111.pdf
+Alias: iso-ir-111
+Alias: KOI8-E
+Alias: csISO111ECMACyrillic
+
+Name: CSA_Z243.4-1985-1                                  [RFC1345,KXS2]
+MIBenum: 78
+Source: ECMA registry
+Alias: iso-ir-121
+Alias: ISO646-CA
+Alias: csa7-1
+Alias: ca
+Alias: csISO121Canadian1
+
+Name: CSA_Z243.4-1985-2                                  [RFC1345,KXS2]
+MIBenum: 79
+Source: ECMA registry
+Alias: iso-ir-122
+Alias: ISO646-CA2
+Alias: csa7-2
+Alias: csISO122Canadian2
+
+Name: CSA_Z243.4-1985-gr                                 [RFC1345,KXS2]
+MIBenum: 80
+Source: ECMA registry
+Alias: iso-ir-123
+Alias: csISO123CSAZ24341985gr
+
+Name: ISO_8859-6-E                                       [RFC1556,IANA]
+MIBenum: 81
+Source: RFC1556
+Alias: csISO88596E
+Alias: ISO-8859-6-E (preferred MIME name)
+
+Name: ISO_8859-6-I                                       [RFC1556,IANA]
+MIBenum: 82
+Source: RFC1556
+Alias: csISO88596I
+Alias: ISO-8859-6-I (preferred MIME name)
+
+Name: T.101-G2                                            [RFC1345,KXS2]
+MIBenum: 83
+Source: ECMA registry
+Alias: iso-ir-128
+Alias: csISO128T101G2
+
+Name: ISO_8859-8-E                                  [RFC1556,Nussbacher]
+MIBenum: 84
+Source: RFC1556
+Alias: csISO88598E
+Alias: ISO-8859-8-E (preferred MIME name)
+
+Name: ISO_8859-8-I                                  [RFC1556,Nussbacher]
+MIBenum: 85
+Source: RFC1556
+Alias: csISO88598I
+Alias: ISO-8859-8-I (preferred MIME name)
+
+Name: CSN_369103                                          [RFC1345,KXS2]
+MIBenum: 86
+Source: ECMA registry
+Alias: iso-ir-139
+Alias: csISO139CSN369103
+
+Name: JUS_I.B1.002                                        [RFC1345,KXS2]
+MIBenum: 87
+Source: ECMA registry
+Alias: iso-ir-141
+Alias: ISO646-YU
+Alias: js
+Alias: yu
+Alias: csISO141JUSIB1002
+
+Name: IEC_P27-1                                           [RFC1345,KXS2]
+MIBenum: 88
+Source: ECMA registry
+Alias: iso-ir-143
+Alias: csISO143IECP271
+
+Name: JUS_I.B1.003-serb                                   [RFC1345,KXS2]
+MIBenum: 89
+Source: ECMA registry
+Alias: iso-ir-146
+Alias: serbian
+Alias: csISO146Serbian
+
+Name: JUS_I.B1.003-mac                                    [RFC1345,KXS2]
+MIBenum: 90
+Source: ECMA registry
+Alias: macedonian
+Alias: iso-ir-147
+Alias: csISO147Macedonian
+
+Name: greek-ccitt                                         [RFC1345,KXS2]
+MIBenum: 91
+Source: ECMA registry
+Alias: iso-ir-150
+Alias: csISO150
+Alias: csISO150GreekCCITT
+
+Name: NC_NC00-10:81                                       [RFC1345,KXS2]
+MIBenum: 92
+Source: ECMA registry
+Alias: cuba
+Alias: iso-ir-151
+Alias: ISO646-CU
+Alias: csISO151Cuba
+
+Name: ISO_6937-2-25                                       [RFC1345,KXS2]
+MIBenum: 93
+Source: ECMA registry
+Alias: iso-ir-152
+Alias: csISO6937Add
+
+Name: GOST_19768-74                                       [RFC1345,KXS2]
+MIBenum: 94
+Source: ECMA registry
+Alias: ST_SEV_358-88
+Alias: iso-ir-153
+Alias: csISO153GOST1976874
+
+Name: ISO_8859-supp                                       [RFC1345,KXS2]
+MIBenum: 95
+Source: ECMA registry
+Alias: iso-ir-154
+Alias: latin1-2-5
+Alias: csISO8859Supp
+
+Name: ISO_10367-box                                       [RFC1345,KXS2]
+MIBenum: 96
+Source: ECMA registry
+Alias: iso-ir-155
+Alias: csISO10367Box
+
+Name: latin-lap                                           [RFC1345,KXS2]
+MIBenum: 97
+Source: ECMA registry
+Alias: lap
+Alias: iso-ir-158
+Alias: csISO158Lap
+
+Name: JIS_X0212-1990                                      [RFC1345,KXS2]
+MIBenum: 98
+Source: ECMA registry
+Alias: x0212
+Alias: iso-ir-159
+Alias: csISO159JISX02121990
+
+Name: DS_2089                                             [RFC1345,KXS2]
+MIBenum: 99
+Source: Danish Standard, DS 2089, February 1974
+Alias: DS2089
+Alias: ISO646-DK
+Alias: dk
+Alias: csISO646Danish
+
+Name: us-dk                                               [RFC1345,KXS2]
+MIBenum: 100
+Alias: csUSDK
+
+Name: dk-us                                               [RFC1345,KXS2]
+MIBenum: 101
+Alias: csDKUS
+
+Name: KSC5636                                             [RFC1345,KXS2]
+MIBenum: 102
+Alias: ISO646-KR
+Alias: csKSC5636
+
+Name: UNICODE-1-1-UTF-7                                        [RFC1642]
+MIBenum: 103
+Source: RFC 1642
+Alias: csUnicode11UTF7
+
+Name: ISO-2022-CN                                            [RFC1922]
+MIBenum: 104
+Source: RFC-1922
+
+Name: ISO-2022-CN-EXT                                        [RFC1922]
+MIBenum: 105
+Source: RFC-1922
+
+Name: UTF-8                                                    [RFC3629]
+MIBenum: 106
+Source: RFC 3629
+Alias: None 
+
+Name: ISO-8859-13
+MIBenum: 109
+Source: ISO See (http://www.iana.org/assignments/charset-reg/ISO-8859-13)[Tumasonis] 
+Alias: None
+
+Name: ISO-8859-14
+MIBenum: 110
+Source: ISO See (http://www.iana.org/assignments/charset-reg/ISO-8859-14) [Simonsen]
+Alias: iso-ir-199
+Alias: ISO_8859-14:1998
+Alias: ISO_8859-14
+Alias: latin8
+Alias: iso-celtic
+Alias: l8
+
+Name: ISO-8859-15
+MIBenum: 111
+Source: ISO 
+        Please see: <http://www.iana.org/assignments/charset-reg/ISO-8859-15>
+Alias: ISO_8859-15
+Alias: Latin-9
+
+Name: ISO-8859-16
+MIBenum: 112
+Source: ISO
+Alias: iso-ir-226
+Alias: ISO_8859-16:2001
+Alias: ISO_8859-16
+Alias: latin10
+Alias: l10 
+
+Name: GBK                                                 
+MIBenum: 113
+Source: Chinese IT Standardization Technical Committee  
+        Please see: <http://www.iana.org/assignments/charset-reg/GBK>
+Alias: CP936
+Alias: MS936
+Alias: windows-936
+
+Name: GB18030
+MIBenum: 114
+Source: Chinese IT Standardization Technical Committee
+        Please see: <http://www.iana.org/assignments/charset-reg/GB18030>
+Alias: None
+
+Name:  OSD_EBCDIC_DF04_15
+MIBenum:  115
+Source:  Fujitsu-Siemens standard mainframe EBCDIC encoding
+         Please see: <http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-15>
+Alias:   None
+
+Name:  OSD_EBCDIC_DF03_IRV
+MIBenum:  116
+Source:  Fujitsu-Siemens standard mainframe EBCDIC encoding
+         Please see: <http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF03-IRV>
+Alias:  None
+
+Name:  OSD_EBCDIC_DF04_1
+MIBenum:  117
+Source:  Fujitsu-Siemens standard mainframe EBCDIC encoding
+         Please see: <http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-1>
+Alias:  None   
+
+Name: ISO-11548-1
+MIBenum: 118 
+Source: See <http://www.iana.org/assignments/charset-reg/ISO-11548-1>            [Thibault]
+Alias: ISO_11548-1
+Alias: ISO_TR_11548-1
+Alias: csISO115481
+
+Name: KZ-1048
+MIBenum: 119 
+Source: See <http://www.iana.org/assignments/charset-reg/KZ-1048>      [Veremeev, Kikkarin]
+Alias: STRK1048-2002
+Alias: RK1048
+Alias: csKZ1048
+
+Name: ISO-10646-UCS-2
+MIBenum: 1000
+Source: the 2-octet Basic Multilingual Plane, aka Unicode
+        this needs to specify network byte order: the standard
+        does not specify (it is a 16-bit integer space)
+Alias: csUnicode
+
+Name: ISO-10646-UCS-4
+MIBenum: 1001
+Source: the full code space. (same comment about byte order,
+        these are 31-bit numbers.
+Alias: csUCS4
+
+Name: ISO-10646-UCS-Basic
+MIBenum: 1002
+Source: ASCII subset of Unicode.  Basic Latin = collection 1
+        See ISO 10646, Appendix A
+Alias: csUnicodeASCII
+
+Name: ISO-10646-Unicode-Latin1
+MIBenum: 1003
+Source: ISO Latin-1 subset of Unicode. Basic Latin and Latin-1 
+         Supplement  = collections 1 and 2.  See ISO 10646, 
+         Appendix A.  See RFC 1815.
+Alias: csUnicodeLatin1
+Alias: ISO-10646
+
+Name: ISO-10646-J-1
+Source: ISO 10646 Japanese, see RFC 1815.
+
+Name: ISO-Unicode-IBM-1261
+MIBenum: 1005
+Source: IBM Latin-2, -3, -5, Extended Presentation Set, GCSGID: 1261
+Alias: csUnicodeIBM1261
+
+Name: ISO-Unicode-IBM-1268
+MIBenum: 1006
+Source: IBM Latin-4 Extended Presentation Set, GCSGID: 1268
+Alias: csUnicodeIBM1268
+
+Name: ISO-Unicode-IBM-1276
+MIBenum: 1007
+Source: IBM Cyrillic Greek Extended Presentation Set, GCSGID: 1276
+Alias: csUnicodeIBM1276
+
+Name: ISO-Unicode-IBM-1264
+MIBenum: 1008
+Source: IBM Arabic Presentation Set, GCSGID: 1264
+Alias: csUnicodeIBM1264
+
+Name: ISO-Unicode-IBM-1265
+MIBenum: 1009
+Source: IBM Hebrew Presentation Set, GCSGID: 1265
+Alias: csUnicodeIBM1265
+
+Name: UNICODE-1-1                                              [RFC1641]
+MIBenum: 1010
+Source: RFC 1641
+Alias: csUnicode11
+
+Name: SCSU
+MIBenum: 1011
+Source: SCSU See (http://www.iana.org/assignments/charset-reg/SCSU)     [Scherer]
+Alias: None 
+
+Name: UTF-7                                                    [RFC2152]
+MIBenum: 1012
+Source: RFC 2152
+Alias: None
+
+Name: UTF-16BE                                                 [RFC2781]
+MIBenum: 1013
+Source: RFC 2781
+Alias: None
+
+Name: UTF-16LE                                                 [RFC2781]
+MIBenum: 1014
+Source: RFC 2781
+Alias: None
+
+Name: UTF-16                                                   [RFC2781]
+MIBenum: 1015
+Source: RFC 2781
+Alias: None
+
+Name: CESU-8                                                    [Phipps]
+MIBenum: 1016
+Source: <http://www.unicode.org/unicode/reports/tr26>
+Alias: csCESU-8
+
+Name: UTF-32                                                     [Davis] 
+MIBenum: 1017
+Source: <http://www.unicode.org/unicode/reports/tr19/>
+Alias: None
+
+Name: UTF-32BE                                                   [Davis]
+MIBenum: 1018
+Source: <http://www.unicode.org/unicode/reports/tr19/>
+Alias: None
+
+Name: UTF-32LE                                                   [Davis]
+MIBenum: 1019
+Source: <http://www.unicode.org/unicode/reports/tr19/>
+Alias: None
+
+Name: BOCU-1                                                   [Scherer]
+MIBenum: 1020
+Source: http://www.unicode.org/notes/tn6/
+Alias: csBOCU-1
+
+Name: ISO-8859-1-Windows-3.0-Latin-1                           [HP-PCL5] 
+MIBenum: 2000
+Source: Extended ISO 8859-1 Latin-1 for Windows 3.0.  
+        PCL Symbol Set id: 9U
+Alias: csWindows30Latin1
+
+Name: ISO-8859-1-Windows-3.1-Latin-1                           [HP-PCL5] 
+MIBenum: 2001
+Source: Extended ISO 8859-1 Latin-1 for Windows 3.1.  
+        PCL Symbol Set id: 19U
+Alias: csWindows31Latin1
+
+Name: ISO-8859-2-Windows-Latin-2                               [HP-PCL5] 
+MIBenum: 2002
+Source: Extended ISO 8859-2.  Latin-2 for Windows 3.1.
+        PCL Symbol Set id: 9E
+Alias: csWindows31Latin2
+
+Name: ISO-8859-9-Windows-Latin-5                               [HP-PCL5] 
+MIBenum: 2003
+Source: Extended ISO 8859-9.  Latin-5 for Windows 3.1
+        PCL Symbol Set id: 5T
+Alias: csWindows31Latin5
+
+Name: hp-roman8                                  [HP-PCL5,RFC1345,KXS2]
+MIBenum: 2004
+Source: LaserJet IIP Printer User's Manual, 
+        HP part no 33471-90901, Hewlet-Packard, June 1989.
+Alias: roman8
+Alias: r8
+Alias: csHPRoman8
+
+Name: Adobe-Standard-Encoding                                    [Adobe]
+MIBenum: 2005
+Source: PostScript Language Reference Manual
+        PCL Symbol Set id: 10J
+Alias: csAdobeStandardEncoding
+
+Name: Ventura-US                                               [HP-PCL5]
+MIBenum: 2006
+Source: Ventura US.  ASCII plus characters typically used in 
+        publishing, like pilcrow, copyright, registered, trade mark, 
+        section, dagger, and double dagger in the range A0 (hex) 
+        to FF (hex).  
+        PCL Symbol Set id: 14J
+Alias: csVenturaUS  
+
+Name: Ventura-International                                    [HP-PCL5]
+MIBenum: 2007
+Source: Ventura International.  ASCII plus coded characters similar 
+        to Roman8.
+        PCL Symbol Set id: 13J
+Alias: csVenturaInternational
+
+Name: DEC-MCS                                             [RFC1345,KXS2]
+MIBenum: 2008
+Source: VAX/VMS User's Manual, 
+        Order Number: AI-Y517A-TE, April 1986.
+Alias: dec
+Alias: csDECMCS
+
+Name: IBM850                                              [RFC1345,KXS2]
+MIBenum: 2009
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp850
+Alias: 850
+Alias: csPC850Multilingual
+
+Name: PC8-Danish-Norwegian                                     [HP-PCL5]
+MIBenum: 2012
+Source: PC Danish Norwegian
+        8-bit PC set for Danish Norwegian
+        PCL Symbol Set id: 11U
+Alias: csPC8DanishNorwegian
+
+Name: IBM862                                              [RFC1345,KXS2]
+MIBenum: 2013
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp862
+Alias: 862
+Alias: csPC862LatinHebrew
+
+Name: PC8-Turkish                                              [HP-PCL5]
+MIBenum: 2014
+Source: PC Latin Turkish.  PCL Symbol Set id: 9T
+Alias: csPC8Turkish
+
+Name: IBM-Symbols                                             [IBM-CIDT] 
+MIBenum: 2015
+Source: Presentation Set, CPGID: 259
+Alias: csIBMSymbols
+
+Name: IBM-Thai                                                [IBM-CIDT] 
+MIBenum: 2016
+Source: Presentation Set, CPGID: 838
+Alias: csIBMThai
+
+Name: HP-Legal                                                 [HP-PCL5]
+MIBenum: 2017
+Source: PCL 5 Comparison Guide, Hewlett-Packard,
+        HP part number 5961-0510, October 1992
+        PCL Symbol Set id: 1U
+Alias: csHPLegal
+
+Name: HP-Pi-font                                               [HP-PCL5]
+MIBenum: 2018
+Source: PCL 5 Comparison Guide, Hewlett-Packard,
+        HP part number 5961-0510, October 1992
+        PCL Symbol Set id: 15U
+Alias: csHPPiFont
+
+Name: HP-Math8                                                 [HP-PCL5]
+MIBenum: 2019
+Source: PCL 5 Comparison Guide, Hewlett-Packard,
+        HP part number 5961-0510, October 1992
+        PCL Symbol Set id: 8M
+Alias: csHPMath8
+
+Name: Adobe-Symbol-Encoding                                      [Adobe]
+MIBenum: 2020
+Source: PostScript Language Reference Manual
+        PCL Symbol Set id: 5M
+Alias: csHPPSMath
+
+Name: HP-DeskTop                                               [HP-PCL5]
+MIBenum: 2021
+Source: PCL 5 Comparison Guide, Hewlett-Packard,
+        HP part number 5961-0510, October 1992
+        PCL Symbol Set id: 7J
+Alias: csHPDesktop
+
+Name: Ventura-Math                                             [HP-PCL5]
+MIBenum: 2022
+Source: PCL 5 Comparison Guide, Hewlett-Packard,
+        HP part number 5961-0510, October 1992
+        PCL Symbol Set id: 6M
+Alias: csVenturaMath
+
+Name: Microsoft-Publishing                                     [HP-PCL5]
+MIBenum: 2023
+Source: PCL 5 Comparison Guide, Hewlett-Packard,
+        HP part number 5961-0510, October 1992
+        PCL Symbol Set id: 6J
+Alias: csMicrosoftPublishing
+
+Name: Windows-31J
+MIBenum: 2024
+Source: Windows Japanese.  A further extension of Shift_JIS
+        to include NEC special characters (Row 13), NEC
+        selection of IBM extensions (Rows 89 to 92), and IBM
+        extensions (Rows 115 to 119).  The CCS's are
+        JIS X0201:1997, JIS X0208:1997, and these extensions.
+        This charset can be used for the top-level media type "text",
+        but it is of limited or specialized use (see RFC2278).
+        PCL Symbol Set id: 19K
+Alias: csWindows31J
+
+Name: GB2312  (preferred MIME name)
+MIBenum: 2025
+Source: Chinese for People's Republic of China (PRC) mixed one byte, 
+        two byte set: 
+          20-7E = one byte ASCII 
+          A1-FE = two byte PRC Kanji 
+        See GB 2312-80 
+        PCL Symbol Set Id: 18C
+Alias: csGB2312
+
+Name: Big5  (preferred MIME name)
+MIBenum: 2026
+Source: Chinese for Taiwan Multi-byte set.
+        PCL Symbol Set Id: 18T
+Alias: csBig5
+
+Name: macintosh                                           [RFC1345,KXS2]
+MIBenum: 2027
+Source: The Unicode Standard ver1.0, ISBN 0-201-56788-1, Oct 1991
+Alias: mac
+Alias: csMacintosh
+
+Name: IBM037                                              [RFC1345,KXS2]
+MIBenum: 2028
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp037
+Alias: ebcdic-cp-us
+Alias: ebcdic-cp-ca
+Alias: ebcdic-cp-wt
+Alias: ebcdic-cp-nl
+Alias: csIBM037
+
+Name: IBM038                                              [RFC1345,KXS2]
+MIBenum: 2029
+Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+Alias: EBCDIC-INT
+Alias: cp038
+Alias: csIBM038
+
+Name: IBM273                                              [RFC1345,KXS2]
+MIBenum: 2030
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: CP273
+Alias: csIBM273
+
+Name: IBM274                                              [RFC1345,KXS2]
+MIBenum: 2031
+Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+Alias: EBCDIC-BE
+Alias: CP274
+Alias: csIBM274
+
+Name: IBM275                                              [RFC1345,KXS2]
+MIBenum: 2032
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: EBCDIC-BR
+Alias: cp275
+Alias: csIBM275
+
+Name: IBM277                                              [RFC1345,KXS2]
+MIBenum: 2033
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: EBCDIC-CP-DK
+Alias: EBCDIC-CP-NO
+Alias: csIBM277
+
+Name: IBM278                                              [RFC1345,KXS2]
+MIBenum: 2034
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: CP278
+Alias: ebcdic-cp-fi
+Alias: ebcdic-cp-se
+Alias: csIBM278
+
+Name: IBM280                                              [RFC1345,KXS2]
+MIBenum: 2035
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: CP280
+Alias: ebcdic-cp-it
+Alias: csIBM280
+
+Name: IBM281                                              [RFC1345,KXS2]
+MIBenum: 2036
+Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+Alias: EBCDIC-JP-E
+Alias: cp281
+Alias: csIBM281
+
+Name: IBM284                                              [RFC1345,KXS2]
+MIBenum: 2037
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: CP284
+Alias: ebcdic-cp-es
+Alias: csIBM284
+
+Name: IBM285                                              [RFC1345,KXS2]
+MIBenum: 2038
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: CP285
+Alias: ebcdic-cp-gb
+Alias: csIBM285
+
+Name: IBM290                                              [RFC1345,KXS2]
+MIBenum: 2039
+Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+Alias: cp290
+Alias: EBCDIC-JP-kana
+Alias: csIBM290
+
+Name: IBM297                                              [RFC1345,KXS2]
+MIBenum: 2040
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp297
+Alias: ebcdic-cp-fr
+Alias: csIBM297
+
+Name: IBM420                                              [RFC1345,KXS2]
+MIBenum: 2041
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990, 
+        IBM NLS RM p 11-11
+Alias: cp420
+Alias: ebcdic-cp-ar1
+Alias: csIBM420
+
+Name: IBM423                                              [RFC1345,KXS2]
+MIBenum: 2042
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp423
+Alias: ebcdic-cp-gr
+Alias: csIBM423
+
+Name: IBM424                                              [RFC1345,KXS2]
+MIBenum: 2043
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp424
+Alias: ebcdic-cp-he
+Alias: csIBM424
+
+Name: IBM437                                              [RFC1345,KXS2]
+MIBenum: 2011
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp437
+Alias: 437
+Alias: csPC8CodePage437
+
+Name: IBM500                                              [RFC1345,KXS2]
+MIBenum: 2044
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: CP500
+Alias: ebcdic-cp-be
+Alias: ebcdic-cp-ch
+Alias: csIBM500
+
+Name: IBM851                                              [RFC1345,KXS2]
+MIBenum: 2045
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp851
+Alias: 851
+Alias: csIBM851
+
+Name: IBM852                                              [RFC1345,KXS2]
+MIBenum: 2010
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp852
+Alias: 852
+Alias: csPCp852
+
+Name: IBM855                                              [RFC1345,KXS2]
+MIBenum: 2046
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp855
+Alias: 855
+Alias: csIBM855
+
+Name: IBM857                                              [RFC1345,KXS2]
+MIBenum: 2047
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp857
+Alias: 857
+Alias: csIBM857
+
+Name: IBM860                                              [RFC1345,KXS2]
+MIBenum: 2048
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp860
+Alias: 860
+Alias: csIBM860
+
+Name: IBM861                                              [RFC1345,KXS2]
+MIBenum: 2049
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp861
+Alias: 861
+Alias: cp-is
+Alias: csIBM861
+
+Name: IBM863                                              [RFC1345,KXS2]
+MIBenum: 2050
+Source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991
+Alias: cp863
+Alias: 863
+Alias: csIBM863
+
+Name: IBM864                                              [RFC1345,KXS2]
+MIBenum: 2051
+Source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991
+Alias: cp864
+Alias: csIBM864
+
+Name: IBM865                                              [RFC1345,KXS2]
+MIBenum: 2052
+Source: IBM DOS 3.3 Ref (Abridged), 94X9575 (Feb 1987)
+Alias: cp865
+Alias: 865
+Alias: csIBM865
+
+Name: IBM868                                              [RFC1345,KXS2]
+MIBenum: 2053
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: CP868
+Alias: cp-ar
+Alias: csIBM868
+
+Name: IBM869                                              [RFC1345,KXS2]
+MIBenum: 2054
+Source: IBM Keyboard layouts and code pages, PN 07G4586 June 1991
+Alias: cp869
+Alias: 869
+Alias: cp-gr
+Alias: csIBM869
+
+Name: IBM870                                              [RFC1345,KXS2]
+MIBenum: 2055
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: CP870
+Alias: ebcdic-cp-roece
+Alias: ebcdic-cp-yu
+Alias: csIBM870
+
+Name: IBM871                                              [RFC1345,KXS2]
+MIBenum: 2056
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: CP871
+Alias: ebcdic-cp-is
+Alias: csIBM871
+
+Name: IBM880                                              [RFC1345,KXS2]
+MIBenum: 2057
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp880
+Alias: EBCDIC-Cyrillic
+Alias: csIBM880
+
+Name: IBM891                                              [RFC1345,KXS2]
+MIBenum: 2058
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp891
+Alias: csIBM891
+
+Name: IBM903                                              [RFC1345,KXS2]
+MIBenum: 2059
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp903
+Alias: csIBM903
+
+Name: IBM904                                              [RFC1345,KXS2]
+MIBenum: 2060
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: cp904
+Alias: 904
+Alias: csIBBM904
+
+Name: IBM905                                              [RFC1345,KXS2]
+MIBenum: 2061
+Source: IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+Alias: CP905
+Alias: ebcdic-cp-tr
+Alias: csIBM905
+
+Name: IBM918                                              [RFC1345,KXS2]
+MIBenum: 2062
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: CP918
+Alias: ebcdic-cp-ar2
+Alias: csIBM918
+
+Name: IBM1026                                             [RFC1345,KXS2]
+MIBenum: 2063
+Source: IBM NLS RM Vol2 SE09-8002-01, March 1990
+Alias: CP1026
+Alias: csIBM1026
+
+Name: EBCDIC-AT-DE                                        [RFC1345,KXS2]
+MIBenum: 2064
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csIBMEBCDICATDE
+
+Name: EBCDIC-AT-DE-A                                      [RFC1345,KXS2]
+MIBenum: 2065 
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987 
+Alias: csEBCDICATDEA
+
+Name: EBCDIC-CA-FR                                        [RFC1345,KXS2]
+MIBenum: 2066
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csEBCDICCAFR
+
+Name: EBCDIC-DK-NO                                        [RFC1345,KXS2]
+MIBenum: 2067
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csEBCDICDKNO
+
+Name: EBCDIC-DK-NO-A                                      [RFC1345,KXS2]
+MIBenum: 2068
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csEBCDICDKNOA
+
+Name: EBCDIC-FI-SE                                        [RFC1345,KXS2]
+MIBenum: 2069
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csEBCDICFISE
+
+Name: EBCDIC-FI-SE-A                                      [RFC1345,KXS2]
+MIBenum: 2070
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csEBCDICFISEA
+
+Name: EBCDIC-FR                                           [RFC1345,KXS2]
+MIBenum: 2071
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csEBCDICFR
+
+Name: EBCDIC-IT                                           [RFC1345,KXS2]
+MIBenum: 2072
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csEBCDICIT
+
+Name: EBCDIC-PT                                           [RFC1345,KXS2]
+MIBenum: 2073
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csEBCDICPT
+
+Name: EBCDIC-ES                                           [RFC1345,KXS2]
+MIBenum: 2074
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csEBCDICES
+
+Name: EBCDIC-ES-A                                         [RFC1345,KXS2]
+MIBenum: 2075
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csEBCDICESA
+
+Name: EBCDIC-ES-S                                         [RFC1345,KXS2]
+MIBenum: 2076
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csEBCDICESS
+
+Name: EBCDIC-UK                                           [RFC1345,KXS2]
+MIBenum: 2077
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csEBCDICUK
+
+Name: EBCDIC-US                                           [RFC1345,KXS2]
+MIBenum: 2078
+Source: IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+Alias: csEBCDICUS
+
+Name: UNKNOWN-8BIT                                             [RFC1428]
+MIBenum: 2079
+Alias: csUnknown8BiT
+
+Name: MNEMONIC                                            [RFC1345,KXS2]
+MIBenum: 2080
+Source: RFC 1345, also known as "mnemonic+ascii+38"
+Alias: csMnemonic
+
+Name: MNEM                                                [RFC1345,KXS2]
+MIBenum: 2081
+Source: RFC 1345, also known as "mnemonic+ascii+8200"
+Alias: csMnem
+
+Name: VISCII                                                   [RFC1456]
+MIBenum: 2082
+Source: RFC 1456
+Alias: csVISCII
+
+Name: VIQR                                                     [RFC1456]
+MIBenum: 2083
+Source: RFC 1456
+Alias: csVIQR
+
+Name: KOI8-R  (preferred MIME name)                            [RFC1489]
+MIBenum: 2084
+Source: RFC 1489, based on GOST-19768-74, ISO-6937/8, 
+        INIS-Cyrillic, ISO-5427.
+Alias: csKOI8R
+
+Name: HZ-GB-2312
+MIBenum: 2085
+Source: RFC 1842, RFC 1843                                               [RFC1842, RFC1843]
+
+Name: IBM866                                                     [Pond]
+MIBenum: 2086
+Source: IBM NLDG Volume 2 (SE09-8002-03) August 1994
+Alias: cp866
+Alias: 866
+Alias: csIBM866
+
+Name: IBM775                                                   [HP-PCL5]
+MIBenum: 2087
+Source: HP PCL 5 Comparison Guide (P/N 5021-0329) pp B-13, 1996
+Alias: cp775
+Alias: csPC775Baltic
+
+Name: KOI8-U                                                   [RFC2319]
+MIBenum: 2088
+Source: RFC 2319
+
+Name: IBM00858
+MIBenum: 2089
+Source: IBM See (http://www.iana.org/assignments/charset-reg/IBM00858)    [Mahdi]
+Alias: CCSID00858
+Alias: CP00858
+Alias: PC-Multilingual-850+euro
+
+Name: IBM00924
+MIBenum: 2090
+Source: IBM See (http://www.iana.org/assignments/charset-reg/IBM00924)    [Mahdi]
+Alias: CCSID00924
+Alias: CP00924
+Alias: ebcdic-Latin9--euro
+
+Name: IBM01140
+MIBenum: 2091
+Source: IBM See (http://www.iana.org/assignments/charset-reg/IBM01140)    [Mahdi]
+Alias: CCSID01140
+Alias: CP01140
+Alias: ebcdic-us-37+euro
+
+Name: IBM01141
+MIBenum: 2092
+Source: IBM See (http://www.iana.org/assignments/charset-reg/IBM01141)    [Mahdi]
+Alias: CCSID01141
+Alias: CP01141
+Alias: ebcdic-de-273+euro
+
+Name: IBM01142
+MIBenum: 2093
+Source: IBM See (http://www.iana.org/assignments/charset-reg/IBM01142)    [Mahdi]
+Alias: CCSID01142
+Alias: CP01142
+Alias: ebcdic-dk-277+euro
+Alias: ebcdic-no-277+euro
+
+Name: IBM01143
+MIBenum: 2094
+Source: IBM See (http://www.iana.org/assignments/charset-reg/IBM01143)    [Mahdi]
+Alias: CCSID01143
+Alias: CP01143
+Alias: ebcdic-fi-278+euro
+Alias: ebcdic-se-278+euro
+
+Name: IBM01144
+MIBenum: 2095
+Source: IBM See (http://www.iana.org/assignments/charset-reg/IBM01144)    [Mahdi]
+Alias: CCSID01144
+Alias: CP01144
+Alias: ebcdic-it-280+euro
+
+Name: IBM01145
+MIBenum: 2096
+Source: IBM See (http://www.iana.org/assignments/charset-reg/IBM01145)    [Mahdi]
+Alias: CCSID01145
+Alias: CP01145
+Alias: ebcdic-es-284+euro
+
+Name: IBM01146
+MIBenum: 2097
+Source: IBM See (http://www.iana.org/assignments/charset-reg/IBM01146)    [Mahdi]
+Alias: CCSID01146
+Alias: CP01146
+Alias: ebcdic-gb-285+euro
+
+Name: IBM01147
+MIBenum: 2098
+Source: IBM See (http://www.iana.org/assignments/charset-reg/IBM01147)    [Mahdi]
+Alias: CCSID01147
+Alias: CP01147
+Alias: ebcdic-fr-297+euro
+
+Name: IBM01148
+MIBenum: 2099
+Source: IBM See (http://www.iana.org/assignments/charset-reg/IBM01148)    [Mahdi]
+Alias: CCSID01148
+Alias: CP01148
+Alias: ebcdic-international-500+euro
+
+Name: IBM01149
+MIBenum: 2100
+Source: IBM See (http://www.iana.org/assignments/charset-reg/IBM01149)    [Mahdi]
+Alias: CCSID01149
+Alias: CP01149
+Alias: ebcdic-is-871+euro
+
+Name: Big5-HKSCS                                                  [Yick]
+MIBenum: 2101
+Source:   See (http://www.iana.org/assignments/charset-reg/Big5-HKSCS) 
+Alias: None
+
+Name: IBM1047                                                [Robrigado]
+MIBenum: 2102
+Source: IBM1047 (EBCDIC Latin 1/Open Systems)
+http://www-1.ibm.com/servers/eserver/iseries/software/globalization/pdf/cp01047z.pdf
+Alias: IBM-1047
+
+Name: PTCP154                                                    [Uskov]
+MIBenum: 2103
+Source: See (http://www.iana.org/assignments/charset-reg/PTCP154)
+Alias: csPTCP154
+Alias: PT154
+Alias: CP154
+Alias: Cyrillic-Asian
+
+Name:  Amiga-1251
+MIBenum:  2104
+Source:  See (http://www.amiga.ultranet.ru/Amiga-1251.html)
+Alias:  Ami1251
+Alias:  Amiga1251
+Alias:  Ami-1251
+(Aliases are provided for historical reasons and should not be used)
+                                                              [Malyshev]
+															  
+Name:  KOI7-switched
+MIBenum:  2105
+Source:  See <http://www.iana.org/assignments/charset-reg/KOI7-switched>
+Aliases:  None
+
+Name: BRF
+MIBenum: 2106
+Source: See <http://www.iana.org/assignments/charset-reg/BRF>                    [Thibault]
+Alias: csBRF
+
+Name: TSCII
+MIBenum: 2107
+Source: See <http://www.iana.org/assignments/charset-reg/TSCII>           [Kalyanasundaram]
+Alias: csTSCII
+
+Name: windows-1250
+MIBenum: 2250
+Source: Microsoft  (http://www.iana.org/assignments/charset-reg/windows-1250) [Lazhintseva]
+Alias: None
+
+Name: windows-1251
+MIBenum: 2251
+Source: Microsoft  (http://www.iana.org/assignments/charset-reg/windows-1251) [Lazhintseva]
+Alias: None
+
+Name: windows-1252
+MIBenum: 2252
+Source: Microsoft  (http://www.iana.org/assignments/charset-reg/windows-1252)       [Wendt]
+Alias: None
+
+Name: windows-1253
+MIBenum: 2253
+Source: Microsoft  (http://www.iana.org/assignments/charset-reg/windows-1253) [Lazhintseva]
+Alias: None
+
+Name: windows-1254
+MIBenum: 2254
+Source: Microsoft  (http://www.iana.org/assignments/charset-reg/windows-1254) [Lazhintseva]
+Alias: None
+
+Name: windows-1255
+MIBenum: 2255
+Source: Microsoft  (http://www.iana.org/assignments/charset-reg/windows-1255) [Lazhintseva]
+Alias: None
+
+Name: windows-1256
+MIBenum: 2256
+Source: Microsoft  (http://www.iana.org/assignments/charset-reg/windows-1256) [Lazhintseva]
+Alias: None 
+
+Name: windows-1257
+MIBenum: 2257
+Source: Microsoft  (http://www.iana.org/assignments/charset-reg/windows-1257) [Lazhintseva]
+Alias: None
+
+Name: windows-1258
+MIBenum: 2258
+Source: Microsoft  (http://www.iana.org/assignments/charset-reg/windows-1258) [Lazhintseva]
+Alias: None
+
+Name: TIS-620
+MIBenum: 2259
+Source: Thai Industrial Standards Institute (TISI)                             [Tantsetthi]
+
+
+REFERENCES
+----------
+
+[RFC1345]  Simonsen, K., "Character Mnemonics & Character Sets",
+           RFC 1345, Rationel Almen Planlaegning, Rationel Almen
+           Planlaegning, June 1992.
+
+[RFC1428]  Vaudreuil, G., "Transition of Internet Mail from
+           Just-Send-8 to 8bit-SMTP/MIME", RFC1428, CNRI, February
+           1993.
+
+[RFC1456]  Vietnamese Standardization Working Group, "Conventions for
+           Encoding the Vietnamese Language VISCII: VIetnamese 
+           Standard Code for Information Interchange VIQR: VIetnamese 
+           Quoted-Readable Specification Revision 1.1", RFC 1456, May
+           1993.
+
+[RFC1468]  Murai, J., Crispin, M., and E. van der Poel, "Japanese
+           Character Encoding for Internet Messages", RFC 1468,
+           Keio University, Panda Programming, June 1993.
+
+[RFC1489]  Chernov, A., "Registration of a Cyrillic Character Set",
+           RFC1489, RELCOM Development Team, July 1993. 
+
+[RFC1554]  Ohta, M., and K. Handa, "ISO-2022-JP-2: Multilingual
+           Extension of ISO-2022-JP", RFC1554, Tokyo Institute of
+           Technology, ETL, December 1993. 
+
+[RFC1556]  Nussbacher, H., "Handling of Bi-directional Texts in MIME",
+           RFC1556, Israeli Inter-University, December 1993. 
+
+[RFC1557]  Choi, U., Chon, K., and H. Park, "Korean Character Encoding
+           for Internet Messages", KAIST, Solvit Chosun Media,
+           December 1993.
+
+[RFC1641]  Goldsmith, D., and M. Davis, "Using Unicode with MIME",
+           RFC1641, Taligent, Inc., July 1994. 
+
+[RFC1642]  Goldsmith, D., and M. Davis, "UTF-7", RFC1642, Taligent,
+           Inc., July 1994.
+
+[RFC1815]  Ohta, M., "Character Sets ISO-10646 and ISO-10646-J-1",
+           RFC 1815, Tokyo Institute of Technology, July 1995.
+
+
+[Adobe]    Adobe Systems Incorporated, PostScript Language Reference
+           Manual, second edition, Addison-Wesley Publishing Company,
+           Inc., 1990.
+
+[ECMA Registry]  ISO-IR: International Register of Escape Sequences
+           http://www.itscj.ipsj.or.jp/ISO-IE/  Note: The current
+           registration authority is IPSJ/ITSCJ, Japan.
+
+[HP-PCL5]  Hewlett-Packard Company, "HP PCL 5 Comparison Guide", 
+           (P/N 5021-0329) pp B-13, 1996.
+
+[IBM-CIDT] IBM Corporation, "ABOUT TYPE: IBM's Technical Reference
+           for Core Interchange Digitized Type", Publication number
+           S544-3708-01
+
+[RFC1842]  Wei, Y., J. Li, and Y. Jiang, "ASCII Printable
+           Characters-Based Chinese Character Encoding for Internet
+           Messages", RFC 1842, Harvard University, Rice University,
+           University of Maryland, August 1995.
+
+[RFC1843]  Lee, F., "HZ - A Data Format for Exchanging Files of
+           Arbitrarily Mixed Chinese and ASCII Characters", RFC 1843,
+           Stanford University, August 1995.
+
+[RFC2152]  Goldsmith, D., M. Davis, "UTF-7: A Mail-Safe Transformation
+	   Format of Unicode", RFC 2152, Apple Computer, Inc.,
+	   Taligent Inc., May 1997.
+
+[RFC2279]  Yergeau, F., "UTF-8, A Transformation Format of ISO 10646",
+           RFC 2279, Alis Technologies, January, 1998.
+
+[RFC2781]  Hoffman, P., Yergeau, F., "UTF-16, an encoding of ISO 10646",
+           RFC 2781, February 2000.
+
+[RFC3629]  Yergeau, F., "UTF-8, a transformation format of ISO 10646",
+           RFC3629, November 2003.
+
+PEOPLE
+------
+
+[KXS2] Keld Simonsen <Keld.Simonsen&dkuug.dk>
+
+[Choi] Woohyong Choi <whchoi&cosmos.kaist.ac.kr>
+
+[Davis] Mark Davis, <mark&unicode.org>, April 2002.
+
+[Kalyanasundaram] Kuppuswamy Kalyanasundaram, <kalyan.geo@yahoo. com>, 14 May 2007.
+
+[Kikkarin] Sairan M. Kikkarin, <sairan&sci.kz>, 7 December 2006.
+
+[Lazhintseva] Katya Lazhintseva, <katyal&MICROSOFT.com>, May 1996.
+
+[Mahdi] Tamer Mahdi, <tamer&ca.ibm.com>, August 2000.
+
+[Malyshev] Michael Malyshev, <michael_malyshev&mail.ru>, January 2004
+
+[Murai] Jun Murai <jun&wide.ad.jp>
+
+[Nussbacher] Hank Nussbacher, <hank&vm.tau.ac.il>
+
+[Ohta] Masataka Ohta, <mohta&cc.titech.ac.jp>, July 1995.
+
+[Phipps] Toby Phipps, <tphipps&peoplesoft.com>, March 2002.
+
+[Pond] Rick Pond, <rickpond&vnet.ibm.com>, March 1997.
+
+[Robrigado] Reuel Robrigado, <reuelr&ca.ibm.com>, September 2002.
+
+[Scherer] Markus Scherer, <markus.scherer&jtcsv.com>, August 2000, 
+          September 2002.
+
+[Simonsen] Keld Simonsen, <Keld.Simonsen&rap.dk>, August 2000.
+
+[Tantsetthi] Trin Tantsetthi, <trin&mozart.inet.co.th>, September 1998.
+
+[Thibault] Samuel Thibault, <samuel.thibault&ens-lyon.org>, 7 December 2006.
+
+[Tumasonis] Vladas Tumasonis, <vladas.tumasonis&maf.vu.lt>, August 2000.
+
+[Uskov] Alexander Uskov, <auskov&idc.kz>, September 2002.
+
+[Veremeev] Alexei Veremeev, <Alexey.Veremeev&oracle.com>, 7 December 2006.
+
+[Wendt] Chris Wendt, <christw&microsoft.com>, December 1999.
+
+[Yick] Nicky Yick, <cliac&itsd.gcn.gov.hk>, October 2000.
+
+[]
+
+
+
+
+
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-IO2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-IO2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-IO2.Rout.save	(revision 2476)
@@ -0,0 +1,252 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ## tests of boundary cases in read.table()
+> 
+> ## force standard handling for character cols
+> options(stringsAsFactors=TRUE)
+> 
+> # empty file
+> file.create("foo1")
+[1] TRUE
+> try(read.table("foo1")) # fails
+Error in read.table("foo1") : no lines available in input
+> read.table("foo1", col.names=LETTERS[1:4])
+[1] A B C D
+<0 rows> (or 0-length row.names)
+> unlink("foo1")
+> 
+> # header only
+> cat("head\n", file = "foo2")
+> read.table("foo2")
+    V1
+1 head
+> try(read.table("foo2", header=TRUE)) # fails in 1.2.3
+[1] head
+<0 rows> (or 0-length row.names)
+> unlink("foo2")
+> # header detection
+> cat("head\n", 1:2, "\n", 3:4, "\n", file = "foo3")
+> read.table("foo3", header=TRUE)
+  head
+1    2
+3    4
+> read.table("foo3", header=TRUE, col.names="V1")
+  V1
+1  2
+3  4
+> read.table("foo3", header=TRUE, row.names=1)
+  head
+1    2
+3    4
+> read.table("foo3", header=TRUE, row.names="row.names")
+  head
+1    2
+3    4
+> read.table("foo3", header=TRUE, row.names="head") # fails in 1.2.3
+  row.names
+2         1
+4         3
+> 
+> # wrong col.names
+> try(read.table("foo3", header=TRUE, col.names=letters[1:4]))
+Error in scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  : 
+  line 1 did not have 4 elements
+In addition: Warning message:
+In read.table("foo3", header = TRUE, col.names = letters[1:4]) :
+  header and 'col.names' are of different lengths
+> unlink("foo3")
+> 
+> # incomplete last line
+> cat("head\n", 1:2, "\n", 3:4, file = "foo4")
+> read.table("foo4", header=TRUE)
+  head
+1    2
+3    4
+Warning message:
+In read.table("foo4", header = TRUE) :
+  incomplete final line found by readTableHeader on 'foo4'
+> unlink("foo4")
+> 
+> # blank last line
+> cat("head\n\n", 1:2, "\n", 3:4, "\n\n", file = "foo5")
+> read.table("foo5", header=TRUE)
+  head
+1    2
+3    4
+> 
+> # test of fill
+> read.table("foo5", header=FALSE, fill=TRUE, blank.lines.skip=FALSE) # fails in 1.2.3
+    V1 V2
+1 head NA
+2      NA
+3    1  2
+4    3  4
+5      NA
+> unlink("foo5")
+> 
+> cat("head\n", 1:2, "\n", 3:5, "\n", 6:9, "\n", file = "foo6")
+> try(read.table("foo6", header=TRUE))
+Error in read.table("foo6", header = TRUE) : 
+  more columns than column names
+> try(read.table("foo6", header=TRUE, fill=TRUE))
+Error in read.table("foo6", header = TRUE, fill = TRUE) : 
+  more columns than column names
+> read.table("foo6", header=FALSE, fill=TRUE)
+    V1 V2 V3 V4
+1 head NA NA NA
+2    1  2 NA NA
+3    3  4  5 NA
+4    6  7  8  9
+> unlink("foo6")
+> 
+> # test of type conversion in 1.4.0 and later.
+> cat("A B C D E F\n",
++     "1 1 1.1 1.1+0i NA F abc\n",
++     "2 NA NA NA NA NA NA\n",
++     "3 1 2 3 NA TRUE def\n",
++     sep = "", file = "foo7")
+> (res <- read.table("foo7"))
+   A   B      C  D     E    F
+1  1 1.1 1.1+0i NA FALSE  abc
+2 NA  NA     NA NA    NA <NA>
+3  1 2.0 3.0+0i NA  TRUE  def
+> sapply(res, typeof)
+        A         B         C         D         E         F 
+"integer"  "double" "complex" "logical" "logical" "integer" 
+> sapply(res, class)
+        A         B         C         D         E         F 
+"integer" "numeric" "complex" "logical" "logical"  "factor" 
+> (res2 <- read.table("foo7",
++                     colClasses = c("character", rep("numeric", 2),
++                     "complex", "integer", "logical", "character")))
+   A   B      C  D     E    F
+1  1 1.1 1.1+0i NA FALSE  abc
+2 NA  NA     NA NA    NA <NA>
+3  1 2.0 3.0+0i NA  TRUE  def
+> sapply(res2, typeof)
+          A           B           C           D           E           F 
+   "double"    "double"   "complex"   "integer"   "logical" "character" 
+> sapply(res2, class)
+          A           B           C           D           E           F 
+  "numeric"   "numeric"   "complex"   "integer"   "logical" "character" 
+> unlink("foo7")
+> 
+> # should be logical
+> type.convert(character(0))
+logical(0)
+> 
+> # test of comments in data files
+> cat("# a test file",
++     "# line 2",
++     "# line 3",
++     "# line 4",
++     "# line 5",
++     "## now the header",
++     " a b c",
++     "# some more comments",
++     "1 2 3",
++     "4 5 6# this is the second data row of the file",
++     "  # some more comments",
++     "7 8 9",
++     "# trailing comment\n",
++     file= "ex.data", sep="\n")
+> read.table("ex.data", header = T)
+  a b c
+1 1 2 3
+2 4 5 6
+3 7 8 9
+> unlink("ex.data")
+> 
+> ## comment chars in headers
+> cat("x1\tx#2\tx3\n1\t2\t2\n2\t3\t3\n", file = "test.dat")
+> read.table("test.dat", header=T, comment.char="")
+  x1 x.2 x3
+1  1   2  2
+2  2   3  3
+> unlink("test.dat")
+> 
+> cat('#comment\n\n#another\n#\n#\n',
++     'C1\tC2\tC3\n"Panel"\t"Area Examined"\t"# Blemishes"\n',
++     '"1"\t"0.8"\t"3"\n', '"2"\t"0.6"\t"2"\n', '"3"\t"0.8"\t"3"\n',
++     file = "test.dat", sep="")
+> read.table("test.dat")
+     V1            V2          V3
+1    C1            C2          C3
+2 Panel Area Examined # Blemishes
+3     1           0.8           3
+4     2           0.6           2
+5     3           0.8           3
+> unlink("test.dat")
+> 
+> cat('%comment\n\n%another\n%\n%\n',
++     'C1\tC2\tC3\n"Panel"\t"Area Examined"\t"% Blemishes"\n',
++     '"1"\t"0.8"\t"3"\n', '"2"\t"0.6"\t"2"\n', '"3"\t"0.8"\t"3"\n',
++     file = "test.dat", sep="")
+> read.table("test.dat", comment.char = "%")
+     V1            V2          V3
+1    C1            C2          C3
+2 Panel Area Examined % Blemishes
+3     1           0.8           3
+4     2           0.6           2
+5     3           0.8           3
+> unlink("test.dat")
+> 
+> ## test on Windows Unicode file
+> con <- file(file.path(Sys.getenv("SRCDIR"), "WinUnicode.dat"),
++             encoding="UCS-2LE")
+> scan(con, 0, quiet=TRUE)
+[1] 1 2 3 4 5 6 7 8
+> close(con)
+> 
+> ## tests of allowEscape
+> x <- "1 2 3 \\ab\\c"
+> writeLines(x, "test.dat")
+> readLines("test.dat")
+[1] "1 2 3 \\ab\\c"
+> scan("test.dat", "", allowEscapes=TRUE)
+Read 4 items
+[1] "1"    "2"    "3"    "\abc"
+> scan("test.dat", "", allowEscapes=FALSE)
+Read 4 items
+[1] "1"       "2"       "3"       "\\ab\\c"
+> read.table("test.dat", header=FALSE, allowEscapes=TRUE)
+  V1 V2 V3   V4
+1  1  2  3 \abc
+> read.table("test.dat", header=FALSE, allowEscapes=FALSE)
+  V1 V2 V3      V4
+1  1  2  3 \\ab\\c
+> x <- c("TEST", 1, 2, "\\b", 4, 5, "\\040", "\\x20",
++        "c:\\spencer\\tests",
++        "\\t", "\\n", "\\r")
+> writeLines(x, "test.dat")
+> read.table("test.dat", allowEscapes=FALSE, header = TRUE)
+                 TEST
+1                   1
+2                   2
+3                 \\b
+4                   4
+5                   5
+6               \\040
+7               \\x20
+8  c:\\spencer\\tests
+9                 \\t
+10                \\n
+11                \\r
+> unlink("test.dat")
+> ## end of tests
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/lapack.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/lapack.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/lapack.R	(revision 2476)
@@ -0,0 +1,152 @@
+## tests of R functions based on the lapack module
+
+## NB: the signs of singular and eigenvectors are arbitrary,
+## so there may be differences from the reference ouptut,
+## especially when alternative BLAS are used.
+
+options(digits=4)
+
+##    -------  examples from ?svd ---------
+
+hilbert <- function(n) { i <- 1:n; 1 / outer(i - 1, i, "+") }
+Eps <- 100 * .Machine$double.eps
+
+X <- hilbert(9)[,1:6]
+(s <- svd(X)); D <- diag(s$d)
+stopifnot(abs(X - s$u %*% D %*% t(s$v)) < Eps)#  X = U D V'
+stopifnot(abs(D - t(s$u) %*% X %*% s$v) < Eps)#  D = U' X V
+
+# The signs of the vectors are not determined here.
+X <- cbind(1, 1:7)
+s <- svd(X); D <- diag(s$d)
+stopifnot(abs(X - s$u %*% D %*% t(s$v)) < Eps)#  X = U D V'
+stopifnot(abs(D - t(s$u) %*% X %*% s$v) < Eps)#  D = U' X V
+
+# test nu and nv
+s <- svd(X, nu = 0)
+s <- svd(X, nu = 7) # the last 5 columns are not determined here
+stopifnot(dim(s$u) == c(7,7))
+s <- svd(X, nv = 0)
+
+# test of complex case
+
+X <- cbind(1, 1:7+(-3:3)*1i)
+s <- svd(X); D <- diag(s$d)
+stopifnot(abs(X - s$u %*% D %*% Conj(t(s$v))) < Eps)
+stopifnot(abs(D - Conj(t(s$u)) %*% X %*% s$v) < Eps)
+
+
+
+##  -------  tests of random real and complex matrices ------
+fixsign <- function(A) {
+    A[] <- apply(A, 2, function(x) x*sign(Re(x[1])))
+    A
+}
+##			       100  may cause failures here.
+eigenok <- function(A, E, Eps=1000*.Machine$double.eps)
+{
+    print(fixsign(E$vectors))
+    print(zapsmall(E$values))
+    V <- E$vectors; lam <- E$values
+    stopifnot(abs(A %*% V - V %*% diag(lam)) < Eps,
+              abs(lam[length(lam)]/lam[1]) < Eps || # this one not for singular A :
+              abs(A - V %*% diag(lam) %*% t(V)) < Eps)
+}
+
+Ceigenok <- function(A, E, Eps=1000*.Machine$double.eps)
+{
+    print(fixsign(E$vectors))
+    print(signif(E$values, 5))
+    V <- E$vectors; lam <- E$values
+    stopifnot(Mod(A %*% V - V %*% diag(lam)) < Eps,
+              Mod(A - V %*% diag(lam) %*% Conj(t(V))) < Eps)
+}
+
+## failed for some 64bit-Lapack-gcc combinations:
+sm <- cbind(1, 3:1, 1:3)
+eigenok(sm, eigen(sm))
+eigenok(sm, eigen(sm, sym=FALSE))
+
+set.seed(123)
+sm <- matrix(rnorm(25), 5, 5)
+sm <- 0.5 * (sm + t(sm))
+eigenok(sm, eigen(sm))
+eigenok(sm, eigen(sm, sym=FALSE))
+
+sm[] <- as.complex(sm)
+Ceigenok(sm, eigen(sm))
+Ceigenok(sm, eigen(sm, sym=FALSE))
+
+sm[] <- sm + rnorm(25) * 1i
+sm <- 0.5 * (sm + Conj(t(sm)))
+Ceigenok(sm, eigen(sm))
+Ceigenok(sm, eigen(sm, sym=FALSE))
+
+
+##  -------  tests of integer matrices -----------------
+
+set.seed(123)
+A <- matrix(rpois(25, 5), 5, 5)
+
+A %*% A
+crossprod(A)
+tcrossprod(A)
+
+solve(A)
+qr(A)
+determinant(A, log = FALSE)
+
+rcond(A)
+rcond(A, "I")
+rcond(A, "1")
+
+eigen(A)
+svd(A)
+La.svd(A)
+
+As <- crossprod(A)
+E <- eigen(As)
+E$values
+abs(E$vectors) # signs vary
+chol(As)
+backsolve(As, 1:5)
+
+##  -------  tests of logical matrices -----------------
+
+set.seed(123)
+A <- matrix(runif(25) > 0.5, 5, 5)
+
+A %*% A
+crossprod(A)
+tcrossprod(A)
+
+Q <- qr(A)
+zapsmall(Q$qr)
+zapsmall(Q$qraux)
+determinant(A, log = FALSE) # 0
+
+rcond(A)
+rcond(A, "I")
+rcond(A, "1")
+
+E <- eigen(A)
+zapsmall(E$values)
+zapsmall(Mod(E$vectors))
+S <- svd(A)
+zapsmall(S$d)
+S <- La.svd(A)
+zapsmall(S$d)
+
+As <- A
+As[upper.tri(A)] <- t(A)[upper.tri(A)]
+det(As)
+E <- eigen(As)
+E$values
+zapsmall(E$vectors)
+solve(As)
+
+## quite hard to come up with an example where this might make sense.
+Ac <- A; Ac[] <- as.logical(diag(5))
+chol(Ac)
+
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/primitives.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/primitives.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/primitives.R	(revision 2476)
@@ -0,0 +1,146 @@
+## check that the 'internal generics' are indeed generic.
+
+x <- structure(pi, class="testit")
+xx <- structure("OK", class="testOK")
+
+for(f in ls(.GenericArgsEnv, all.names=TRUE))
+{
+    cat("testing S3 generic '", f, "'\n", sep="")
+    method <- paste(f, "testit", sep=".")
+    if(f %in% "seq.int") {
+        ## note that this dispatches on 'seq'.
+        assign("seq.testit", function(...) xx, .GlobalEnv)
+        res <- seq.int(x, x)
+    } else {
+        if(length(grep("<-$", f)) > 0) {
+            assign(method, function(x, value) xx, .GlobalEnv)
+            y <- x
+            res <- eval(substitute(ff(y, value=pi), list(ff=as.name(f))))
+        } else {
+            ff <- get(f, .GenericArgsEnv)
+            body(ff) <- xx
+            assign(method, ff, .GlobalEnv)
+            res <- eval(substitute(ff(x), list(ff=as.name(f))))
+        }
+    }
+    stopifnot(res == xx)
+    rm(method)
+}
+
+## and that no others are generic
+for(f in ls(.ArgsEnv, all.names=TRUE))
+{
+    if(f == "browser") next
+    cat("testing non-generic '", f, "'\n", sep="")
+    method <- paste(f, "testit", sep=".")
+    fx <- get(f, envir=.ArgsEnv)
+    body(fx) <- quote(return(42))
+    assign(method, fx, .GlobalEnv)
+    na <- length(formals(fx))
+    res <- NULL
+    if(na == 1)
+        res <- try(eval(substitute(ff(x), list(ff=as.name(f)))), silent = TRUE)
+    else if(na == 2)
+        res <- try(eval(substitute(ff(x, x), list(ff=as.name(f)))), silent = TRUE)
+    if(!inherits(res, "try-error") && identical(res, 42)) stop("is generic")
+    rm(method)
+}
+
+
+## check that all primitives are accounted for in .[Generic]ArgsEnv,
+## apart from the language elements:
+ff <- as.list(baseenv(), all.names=TRUE)
+ff <- names(ff)[vapply(ff, is.primitive, logical(1L))]
+
+known <- c(names(.GenericArgsEnv), names(.ArgsEnv), tools::langElts)
+stopifnot(ff %in% known, known %in% ff)
+
+
+## check which are not considered as possibles for S4 generic
+ff4 <- names(meth.FList <- methods:::.BasicFunsList)
+# as.double is the same as as.numeric
+S4generic <- ff %in% c(ff4, "as.double")
+notS4 <- ff[!S4generic]
+if(length(notS4))
+    cat("primitives not covered in methods:::.BasicFunsList:",
+        paste(sQuote(notS4), collapse=", "), "\n")
+stopifnot(S4generic)
+
+# functions which are listed but not primitive
+extraS4 <- c('unlist', 'as.vector')
+ff4[!ff4 %in% c(ff, extraS4)]
+stopifnot(ff4 %in% c(ff, extraS4))
+
+
+## primitives which are not internally generic cannot have S4 methods
+## unless specifically arranged (e.g. %*%)
+nongen_prims <- ff[!ff %in% ls(.GenericArgsEnv, all.names=TRUE)]
+ff3 <- ff4[vapply(meth.FList, function(x) is.logical(x) && !x, NA, USE.NAMES=FALSE)]
+ex <- nongen_prims[!nongen_prims %in% c("$", "$<-", "[", "[[" ,"[[<-", "[<-", "%*%", ff3)]
+if(length(ex))
+    cat("non-generic primitives not excluded in methods:::.BasicFunsList:",
+        paste(sQuote(ex), collapse=", "), "\n")
+stopifnot(length(ex) == 0)
+
+## Now check that (most of) those which are listed really are generic.
+require(methods)
+setClass("foo", representation(x="numeric", y="numeric"))
+xx <- new("foo",  x=1, y=2)
+S4gen <- ff4[vapply(meth.FList, is.function, NA, USE.NAMES=FALSE)]
+for(f in S4gen) {
+    g <- get(f)
+    if(!is(g, "genericFunction")) g <- getGeneric(f) # error on non-Generics.
+    ff <- args(g)
+    body(ff) <- "testit"
+    nm <- names(formals(ff))
+    ## the Summary group gives problems
+    if(nm[1] == '...') {
+        cat("skipping '", f, "'\n", sep="")
+        next
+    }
+    cat("testing '", f, "'\n", sep="")
+    setMethod(f, "foo", ff)
+    ## might have created a generic, so redo 'get'
+    stopifnot(identical(getGeneric(f)(xx), "testit"))
+}
+
+## check that they do argument matching, or at least check names
+except <- c("call", "switch", ".C", ".Fortran", ".Call", ".External",
+            ".External2", ".Call.graphics", ".External.graphics",
+            ".subset", ".subset2", ".primTrace", ".primUntrace",
+            "lazyLoadDBfetch", ".Internal", ".Primitive", "^", "|",
+            "%*%", "rep", "seq.int", "forceAndCall",
+            ## these may not be enabled
+            "tracemem", "retracemem", "untracemem")
+
+for(f in ls(.GenericArgsEnv, all.names=TRUE)[-(1:15)])
+{
+    if (f %in% except) next
+    g <- get(f, envir = .GenericArgsEnv)
+    an <- names(formals(args(g)))
+    if(length(an) > 0 && an[1] == "...") next
+    an <- an[an != "..."]
+    a <- rep(list(NULL), length(an))
+    names(a) <- c("zZ", an[-1])
+    res <- try(do.call(f, a), silent = TRUE)
+    m <- geterrmessage()
+    if(!grepl('does not match|unused argument', m))
+        stop("failure on ", f)
+}
+
+for(f in ls(.ArgsEnv, all.names=TRUE))
+{
+    if (f %in% except) next
+    g <- get(f, envir = .ArgsEnv)
+    an <- names(formals(args(g)))
+    if(length(an) > 0 && an[1] == "...") next
+    an <- an[an != "..."]
+    if(length(an)) {
+        a <- rep(list(NULL), length(an))
+        names(a) <- c("zZ", an[-1])
+    } else a <- list(zZ=NULL)
+    res <- try(do.call(f, a), silent = TRUE)
+    m <- geterrmessage()
+    if(!grepl('does not match|unused argument|requires 0|native symbol', m))
+        stop("failure on ", f)
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-BLAS.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-BLAS.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-BLAS.R	(revision 2476)
@@ -0,0 +1,14 @@
+## PR#4582 %*% with NAs
+stopifnot(is.na(NA %*% 0), is.na(0 %*% NA))
+## depended on the BLAS in use.
+
+
+## found from fallback test in slam 0.1-15
+## most likely indicates an inaedquate BLAS.
+x <- matrix(c(1, 0, NA, 1), 2, 2)
+y <- matrix(c(1, 0, 0, 2, 1, 0), 3, 2)
+(z <- tcrossprod(x, y))
+stopifnot(identical(z, x %*% t(y)))
+stopifnot(is.nan(log(0) %*% 0))
+## depended on the BLAS in use: some (including the reference BLAS)
+## had z[1,3] == 0 and log(0) %*% 0 as as.matrix(0).
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arith.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arith.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arith.Rout.save	(revision 2476)
@@ -0,0 +1,88 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> options(digits=7)
+> 
+> ## powers
+> outer(a <- -4:12,     -2:7, "^")
+             [,1]        [,2] [,3] [,4] [,5] [,6]  [,7]   [,8]    [,9]    [,10]
+ [1,] 0.062500000 -0.25000000    1   -4   16  -64   256  -1024    4096   -16384
+ [2,] 0.111111111 -0.33333333    1   -3    9  -27    81   -243     729    -2187
+ [3,] 0.250000000 -0.50000000    1   -2    4   -8    16    -32      64     -128
+ [4,] 1.000000000 -1.00000000    1   -1    1   -1     1     -1       1       -1
+ [5,]         Inf         Inf    1    0    0    0     0      0       0        0
+ [6,] 1.000000000  1.00000000    1    1    1    1     1      1       1        1
+ [7,] 0.250000000  0.50000000    1    2    4    8    16     32      64      128
+ [8,] 0.111111111  0.33333333    1    3    9   27    81    243     729     2187
+ [9,] 0.062500000  0.25000000    1    4   16   64   256   1024    4096    16384
+[10,] 0.040000000  0.20000000    1    5   25  125   625   3125   15625    78125
+[11,] 0.027777778  0.16666667    1    6   36  216  1296   7776   46656   279936
+[12,] 0.020408163  0.14285714    1    7   49  343  2401  16807  117649   823543
+[13,] 0.015625000  0.12500000    1    8   64  512  4096  32768  262144  2097152
+[14,] 0.012345679  0.11111111    1    9   81  729  6561  59049  531441  4782969
+[15,] 0.010000000  0.10000000    1   10  100 1000 10000 100000 1000000 10000000
+[16,] 0.008264463  0.09090909    1   11  121 1331 14641 161051 1771561 19487171
+[17,] 0.006944444  0.08333333    1   12  144 1728 20736 248832 2985984 35831808
+> 
+> for (n1 in 1:7)
++     print(zapsmall(polyroot(1:n1), digits = 10))
+complex(0)
+[1] -0.5+0i
+[1] -0.3333333+0.4714045i -0.3333333-0.4714045i
+[1] -0.0720852+0.6383267i -0.6058296+0.0000000i -0.0720852-0.6383267i
+[1]  0.1378323+0.6781544i -0.5378323+0.3582847i -0.5378323-0.3582847i
+[4]  0.1378323-0.6781544i
+[1]  0.2941946+0.6683671i -0.3756952+0.5701752i -0.3756952-0.5701752i
+[4]  0.2941946-0.6683671i -0.6703320+0.0000000i
+[1]  0.4106842+0.6398894i -0.6341119+0.2876550i -0.2051437-0.6837970i
+[4]  0.4106842-0.6398894i -0.2051437+0.6837970i -0.6341119-0.2876550i
+> 
+> ## lowess() {incl. sort, etc}:
+> options(digits = 5)
+> 
+> lowess(c(3,2,6,3,8,4))$y # this used to differ on Linux
+[1] 2.4259 3.4293 3.9896 5.2832 5.3386 4.9822
+> 
+> y1 <- c(3,1:2,5:2,4,1:3,3)
+> lowess(y1)$y
+ [1] 2.0723 2.4362 2.7508 3.0038 3.2036 3.2435 2.8485 2.4832 2.4197 2.5231
+[11] 2.6286 2.7813
+> lowess(y1, f = .4)$y
+ [1] 2.7030 1.9593 2.4351 3.4933 4.0000 3.0000 2.4651 1.8579 1.7357 2.0000
+[11] 2.7103 3.1184
+> 
+> lowess(c(y1,100), f = .4)$y
+ [1] 2.2135 2.2468 2.5459 3.7984 4.0000 3.0000 2.8427 2.4999 2.1512 2.0000
+[11] 2.7129 3.1195 3.4172
+> 
+> ## this is the test sample from Cleveland's original lowess.doc:
+> x <- c(1:5, rep(6,10),8,10,12,14,50)
+> y <- c(18,2,15,6,10,4,16,11,7,3,14,17,20,12,9,13,1,8,5,19)
+> lowess(x,y, f = .25, iter = 0, delta = 0)$y
+ [1] 13.6588 11.1446  8.7012  9.7220 10.0000 11.3000 11.3000 11.3000 11.3000
+[10] 11.3000 11.3000 11.3000 11.3000 11.3000 11.3000 13.0000  6.4399  5.5959
+[19]  5.4557 18.9982
+> lowess(x,y, f = .25, iter = 0, delta = 3)$y
+ [1] 13.6588 12.3466 11.0343  9.7220 10.5110 11.3000 11.3000 11.3000 11.3000
+[10] 11.3000 11.3000 11.3000 11.3000 11.3000 11.3000 13.0000  6.4399  5.5959
+[19]  5.4557 18.9982
+> lowess(x,y, f = .25, iter = 2, delta = 0)$y
+ [1] 14.8112 12.1154  8.9838  9.6757 10.0000 11.3460 11.3460 11.3460 11.3460
+[10] 11.3460 11.3460 11.3460 11.3460 11.3460 11.3460 13.0000  6.7345  5.7437
+[19]  5.4147 18.9981
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/demos.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/demos.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/demos.Rout.save	(revision 2476)
@@ -0,0 +1,1514 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> #### Run all demos that do not depend on tcl and other specials.
+> .ptime <- proc.time()
+> set.seed(123)
+> options(keep.source=TRUE, useFancyQuotes=FALSE, warn = 1)
+> 
+> ## Drop these for strict testing {and add them to demos2.R)
+> ## lm.glm is in ../src/library/utils/man/demo.Rd }:
+> dont <- list(graphics = c("Hershey", "Japanese", "plotmath"),
++              stats = c("lm.glm", "nlm")
++              )
+> ## don't take tcltk here
+> for(pkg in c("base", "graphics", "stats")) {
++ 
++     demos <- list.files(file.path(system.file(package = pkg), "demo"),
++                         pattern = "\\.R$")
++     demos <- demos[is.na(match(demos, paste(dont[[pkg]], "R",sep=".")))]
++ 
++     if(length(demos)) {
++         if(need <- pkg != "base" &&
++            !any((fpkg <- paste("package", pkg, sep=":")) == search()))
++             library(pkg, character.only = TRUE)
++ 
++         for(nam in sub("\\.R$", "", demos))
++             demo(nam, character.only = TRUE)
++ 
++         if(need) detach(pos = which(fpkg == search()))
++     }
++ }
+
+
+	demo(error.catching)
+	---- ~~~~~~~~~~~~~~
+
+> 	##================================================================##
+> 	###  In longer simulations, aka computer experiments,		 ###
+> 	###  you may want to						 ###
+> 	###  1) catch all errors and warnings (and continue)		 ###
+> 	###  2) store the error or warning messages			 ###
+> 	###								 ###
+> 	###  Here's a solution	(see R-help mailing list, Dec 9, 2010):	 ###
+> 	##================================================================##
+> 
+> ##' Catch *and* save both errors and warnings, and in the case of
+> ##' a warning, also keep the computed result.
+> ##'
+> ##' @title tryCatch both warnings (with value) and errors
+> ##' @param expr an \R expression to evaluate
+> ##' @return a list with 'value' and 'warning', where
+> ##'   'value' may be an error caught.
+> ##' @author Martin Maechler;
+> ##' Copyright (C) 2010-2012  The R Core Team
+> tryCatch.W.E <- function(expr)
++ {
++     W <- NULL
++     w.handler <- function(w){ # warning handler
++ 	W <<- w
++ 	invokeRestart("muffleWarning")
++     }
++     list(value = withCallingHandlers(tryCatch(expr, error = function(e) e),
++ 				     warning = w.handler),
++ 	 warning = W)
++ }
+
+> str( tryCatch.W.E( log( 2 ) ) )
+List of 2
+ $ value  : num 0.693
+ $ warning: NULL
+
+> str( tryCatch.W.E( log( -1) ) )
+List of 2
+ $ value  : num NaN
+ $ warning:List of 2
+  ..$ message: chr "NaNs produced"
+  ..$ call   : language log(-1)
+  ..- attr(*, "class")= chr [1:3] "simpleWarning" "warning" "condition"
+
+> str( tryCatch.W.E( log("a") ) )
+List of 2
+ $ value  :List of 2
+  ..$ message: chr "non-numeric argument to mathematical function"
+  ..$ call   : language log("a")
+  ..- attr(*, "class")= chr [1:3] "simpleError" "error" "condition"
+ $ warning: NULL
+
+
+	demo(is.things)
+	---- ~~~~~~~~~
+
+> #  Copyright (C) 1997-2013 The R Core Team
+> 
+> ## being a 'builtin' function is not the same as being in base
+> ls.base <- ls("package:base", all=TRUE)
+
+> base.is.f <- sapply(ls.base, function(x) is.function(get(x)))
+
+> cat("\nNumber of base objects:\t\t", length(ls.base),
++     "\nNumber of functions in base:\t", sum(base.is.f),
++     "\n\t starting with 'is.' :\t  ",
++     sum(grepl("^is\\.", ls.base[base.is.f])), "\n", sep = "")
+
+Number of base objects:		1319
+Number of functions in base:	1277
+	 starting with 'is.' :	  50
+
+> ## 0.14  : 31
+> ## 0.50  : 33
+> ## 0.60  : 34
+> ## 0.63  : 37
+> ## 1.0.0 : 38
+> ## 1.3.0 : 41
+> ## 1.6.0 : 45
+> ## 2.0.0 : 45
+> 
+> ## Do we have a method (probably)?
+> is.method <- function(fname) {
++     isFun <- function(name) (exists(name, mode="function") &&
++                              is.na(match(name, c("is", "as"))))
++     np <- length(sp <- strsplit(fname, split = "\\.")[[1]])
++     if(np <= 1 )
++         FALSE
++     else
++         (isFun(paste(sp[1:(np-1)], collapse = '.')) ||
++          (np >= 3 &&
++           isFun(paste(sp[1:(np-2)], collapse = '.'))))
++ }
+
+> is.ALL <- function(obj, func.names = ls(pos=length(search())),
++ 		   not.using = c("is.single", "is.real", "is.loaded",
++                      "is.empty.model", "is.R", "is.element", "is.unsorted"),
++ 		   true.only = FALSE, debug = FALSE)
++ {
++     ## Purpose: show many 'attributes' of  R object __obj__
++     ## -------------------------------------------------------------------------
++     ## Arguments: obj: any R object
++     ## -------------------------------------------------------------------------
++     ## Author: Martin Maechler, Date: 6 Dec 1996
++ 
++     is.fn <- func.names[substring(func.names,1,3) == "is."]
++     is.fn <- is.fn[substring(is.fn,1,7) != "is.na<-"]
++     use.fn <- is.fn[ is.na(match(is.fn, not.using))
++                     & ! sapply(is.fn, is.method) ]
++ 
++     r <- if(true.only) character(0)
++     else structure(vector("list", length= length(use.fn)), names= use.fn)
++     for(f in use.fn) {
++ 	if(any(f == c("is.na", "is.finite"))) {
++ 	    if(!is.list(obj) && !is.vector(obj) && !is.array(obj)) {
++ 		if(!true.only) r[[f]] <- NA
++ 		next
++ 	    }
++ 	}
++ 	if(any(f == c("is.nan", "is.finite", "is.infinite"))) {
++ 	    if(!is.atomic(obj)) {
++ 	    	if(!true.only) r[[f]] <- NA
++ 	    	next
++ 	    }
++ 	}
++ 	if(debug) cat(f,"")
++ 	fn <- get(f)
++ 	rr <- if(is.primitive(fn) || length(formals(fn))>0)  fn(obj) else fn()
++ 	if(!is.logical(rr)) cat("f=",f," --- rr	 is NOT logical	 = ",rr,"\n")
++ 	##if(1!=length(rr))   cat("f=",f," --- rr NOT of length 1; = ",rr,"\n")
++ 	if(true.only && length(rr)==1 && !is.na(rr) && rr) r <- c(r, f)
++ 	else if(!true.only) r[[f]] <- rr
++     }
++     if(debug)cat("\n")
++     if(is.list(r)) structure(r, class = "isList") else r
++ }
+
+> print.isList <- function(x, ..., verbose = getOption("verbose"))
++ {
++     ## Purpose:	 print METHOD  for `isList' objects
++     ## ------------------------------------------------
++     ## Author: Martin Maechler, Date: 12 Mar 1997
++     if(is.list(x)) {
++         if(verbose) cat("print.isList(): list case (length=",length(x),")\n")
++ 	nm <- format(names(x))
++ 	rr <- lapply(x, stats::symnum, na = "NA")
++ 	for(i in seq_along(x)) cat(nm[i],":",rr[[i]],"\n", ...)
++     } else NextMethod("print", ...)
++ }
+
+> is.ALL(NULL)
+is.array           : . 
+is.atomic          : | 
+is.call            : . 
+is.character       : . 
+is.complex         : . 
+is.data.frame      : . 
+is.double          : . 
+is.environment     : . 
+is.expression      : . 
+is.factor          : . 
+is.finite          : NA 
+is.function        : . 
+is.infinite        :  
+is.integer         : . 
+is.language        : . 
+is.list            : . 
+is.logical         : . 
+is.matrix          : . 
+is.na              : NA 
+is.name            : . 
+is.nan             :  
+is.null            : | 
+is.numeric         : . 
+is.numeric_version : . 
+is.object          : . 
+is.ordered         : . 
+is.package_version : . 
+is.pairlist        : | 
+is.primitive       : . 
+is.qr              : . 
+is.raw             : . 
+is.recursive       : . 
+is.symbol          : . 
+is.table           : . 
+is.vector          : . 
+
+> ##fails: is.ALL(NULL, not.using = c("is.single", "is.loaded"))
+> is.ALL(NULL,   true.only = TRUE)
+[1] "is.atomic"   "is.null"     "is.pairlist"
+
+> all.equal(NULL, pairlist())
+[1] TRUE
+
+> ## list() != NULL == pairlist() :
+> is.ALL(list(), true.only = TRUE)
+[1] "is.list"      "is.recursive" "is.vector"   
+
+> (pl <- is.ALL(pairlist(1,    list(3,"A")), true.only = TRUE))
+[1] "is.list"      "is.pairlist"  "is.recursive"
+
+> (ll <- is.ALL(    list(1,pairlist(3,"A")), true.only = TRUE))
+[1] "is.list"      "is.recursive" "is.vector"   
+
+> all.equal(pl[pl != "is.pairlist"],
++           ll[ll != "is.vector"])## TRUE
+[1] TRUE
+
+> is.ALL(1:5)
+is.array           : . 
+is.atomic          : | 
+is.call            : . 
+is.character       : . 
+is.complex         : . 
+is.data.frame      : . 
+is.double          : . 
+is.environment     : . 
+is.expression      : . 
+is.factor          : . 
+is.finite          : | | | | | 
+is.function        : . 
+is.infinite        : . . . . . 
+is.integer         : | 
+is.language        : . 
+is.list            : . 
+is.logical         : . 
+is.matrix          : . 
+is.na              : . . . . . 
+is.name            : . 
+is.nan             : . . . . . 
+is.null            : . 
+is.numeric         : | 
+is.numeric_version : . 
+is.object          : . 
+is.ordered         : . 
+is.package_version : . 
+is.pairlist        : . 
+is.primitive       : . 
+is.qr              : . 
+is.raw             : . 
+is.recursive       : . 
+is.symbol          : . 
+is.table           : . 
+is.vector          : | 
+
+> is.ALL(array(1:24, 2:4))
+is.array           : | 
+is.atomic          : | 
+is.call            : . 
+is.character       : . 
+is.complex         : . 
+is.data.frame      : . 
+is.double          : . 
+is.environment     : . 
+is.expression      : . 
+is.factor          : . 
+is.finite          : | | | | | | | | | | | | | | | | | | | | | | | | 
+is.function        : . 
+is.infinite        : . . . . . . . . . . . . . . . . . . . . . . . . 
+is.integer         : | 
+is.language        : . 
+is.list            : . 
+is.logical         : . 
+is.matrix          : . 
+is.na              : . . . . . . . . . . . . . . . . . . . . . . . . 
+is.name            : . 
+is.nan             : . . . . . . . . . . . . . . . . . . . . . . . . 
+is.null            : . 
+is.numeric         : | 
+is.numeric_version : . 
+is.object          : . 
+is.ordered         : . 
+is.package_version : . 
+is.pairlist        : . 
+is.primitive       : . 
+is.qr              : . 
+is.raw             : . 
+is.recursive       : . 
+is.symbol          : . 
+is.table           : . 
+is.vector          : . 
+
+> is.ALL(1 + 3)
+is.array           : . 
+is.atomic          : | 
+is.call            : . 
+is.character       : . 
+is.complex         : . 
+is.data.frame      : . 
+is.double          : | 
+is.environment     : . 
+is.expression      : . 
+is.factor          : . 
+is.finite          : | 
+is.function        : . 
+is.infinite        : . 
+is.integer         : . 
+is.language        : . 
+is.list            : . 
+is.logical         : . 
+is.matrix          : . 
+is.na              : . 
+is.name            : . 
+is.nan             : . 
+is.null            : . 
+is.numeric         : | 
+is.numeric_version : . 
+is.object          : . 
+is.ordered         : . 
+is.package_version : . 
+is.pairlist        : . 
+is.primitive       : . 
+is.qr              : . 
+is.raw             : . 
+is.recursive       : . 
+is.symbol          : . 
+is.table           : . 
+is.vector          : | 
+
+> e13 <- expression(1 + 3)
+
+> is.ALL(e13)
+Warning in fn(obj) :
+  is.na() applied to non-(list or vector) of type 'expression'
+is.array           : . 
+is.atomic          : . 
+is.call            : . 
+is.character       : . 
+is.complex         : . 
+is.data.frame      : . 
+is.double          : . 
+is.environment     : . 
+is.expression      : | 
+is.factor          : . 
+is.finite          : NA 
+is.function        : . 
+is.infinite        : NA 
+is.integer         : . 
+is.language        : | 
+is.list            : . 
+is.logical         : . 
+is.matrix          : . 
+is.na              : . 
+is.name            : . 
+is.nan             : NA 
+is.null            : . 
+is.numeric         : . 
+is.numeric_version : . 
+is.object          : . 
+is.ordered         : . 
+is.package_version : . 
+is.pairlist        : . 
+is.primitive       : . 
+is.qr              : . 
+is.raw             : . 
+is.recursive       : | 
+is.symbol          : . 
+is.table           : . 
+is.vector          : | 
+
+> is.ALL(substitute(expression(a + 3), list(a=1)), true.only = TRUE)
+[1] "is.call"      "is.language"  "is.recursive"
+
+> is.ALL(y ~ x) #--> NA	 for is.na & is.finite
+is.array           : . 
+is.atomic          : . 
+is.call            : | 
+is.character       : . 
+is.complex         : . 
+is.data.frame      : . 
+is.double          : . 
+is.environment     : . 
+is.expression      : . 
+is.factor          : . 
+is.finite          : NA 
+is.function        : . 
+is.infinite        : NA 
+is.integer         : . 
+is.language        : | 
+is.list            : . 
+is.logical         : . 
+is.matrix          : . 
+is.na              : NA 
+is.name            : . 
+is.nan             : NA 
+is.null            : . 
+is.numeric         : . 
+is.numeric_version : . 
+is.object          : | 
+is.ordered         : . 
+is.package_version : . 
+is.pairlist        : . 
+is.primitive       : . 
+is.qr              : . 
+is.raw             : . 
+is.recursive       : | 
+is.symbol          : . 
+is.table           : . 
+is.vector          : . 
+
+> is0 <- is.ALL(numeric(0))
+
+> is0.ok <- 1 == (lis0 <- sapply(is0, length))
+
+> is0[!is0.ok]
+$is.finite
+logical(0)
+
+$is.infinite
+logical(0)
+
+$is.na
+logical(0)
+
+$is.nan
+logical(0)
+
+
+> is0 <- unlist(is0)
+
+> is0
+          is.array          is.atomic            is.call       is.character 
+             FALSE               TRUE              FALSE              FALSE 
+        is.complex      is.data.frame          is.double     is.environment 
+             FALSE              FALSE               TRUE              FALSE 
+     is.expression          is.factor        is.function         is.integer 
+             FALSE              FALSE              FALSE              FALSE 
+       is.language            is.list         is.logical          is.matrix 
+             FALSE              FALSE              FALSE              FALSE 
+           is.name            is.null         is.numeric is.numeric_version 
+             FALSE              FALSE               TRUE              FALSE 
+         is.object         is.ordered is.package_version        is.pairlist 
+             FALSE              FALSE              FALSE              FALSE 
+      is.primitive              is.qr             is.raw       is.recursive 
+             FALSE              FALSE              FALSE              FALSE 
+         is.symbol           is.table          is.vector 
+             FALSE              FALSE               TRUE 
+
+> ispi <- unlist(is.ALL(pi))
+
+> all(ispi[is0.ok] == is0)
+[1] TRUE
+
+> is.ALL(numeric(0), true=TRUE)
+[1] "is.atomic"  "is.double"  "is.numeric" "is.vector" 
+
+> is.ALL(array(1,1:3), true=TRUE)
+[1] "is.array"   "is.atomic"  "is.double"  "is.numeric"
+
+> is.ALL(cbind(1:3), true=TRUE)
+[1] "is.array"   "is.atomic"  "is.integer" "is.matrix"  "is.numeric"
+
+> is.ALL(structure(1:7, names = paste("a",1:7,sep="")))
+is.array           : . 
+is.atomic          : | 
+is.call            : . 
+is.character       : . 
+is.complex         : . 
+is.data.frame      : . 
+is.double          : . 
+is.environment     : . 
+is.expression      : . 
+is.factor          : . 
+is.finite          : | | | | | | | 
+is.function        : . 
+is.infinite        : . . . . . . . 
+is.integer         : | 
+is.language        : . 
+is.list            : . 
+is.logical         : . 
+is.matrix          : . 
+is.na              : . . . . . . . 
+is.name            : . 
+is.nan             : . . . . . . . 
+is.null            : . 
+is.numeric         : | 
+is.numeric_version : . 
+is.object          : . 
+is.ordered         : . 
+is.package_version : . 
+is.pairlist        : . 
+is.primitive       : . 
+is.qr              : . 
+is.raw             : . 
+is.recursive       : . 
+is.symbol          : . 
+is.table           : . 
+is.vector          : | 
+
+> is.ALL(structure(1:7, names = paste("a",1:7,sep="")), true.only = TRUE)
+[1] "is.atomic"  "is.integer" "is.numeric" "is.vector" 
+
+> x <- 1:20 ; y <- 5 + 6*x + rnorm(20)
+
+> lm.xy <- lm(y ~ x)
+
+> is.ALL(lm.xy)
+is.array           : . 
+is.atomic          : . 
+is.call            : . 
+is.character       : . 
+is.complex         : . 
+is.data.frame      : . 
+is.double          : . 
+is.environment     : . 
+is.expression      : . 
+is.factor          : . 
+is.finite          : NA 
+is.function        : . 
+is.infinite        : NA 
+is.integer         : . 
+is.language        : . 
+is.list            : | 
+is.logical         : . 
+is.matrix          : . 
+is.na              : . . . . . . . . . . . . 
+is.name            : . 
+is.nan             : NA 
+is.null            : . 
+is.numeric         : . 
+is.numeric_version : . 
+is.object          : | 
+is.ordered         : . 
+is.package_version : . 
+is.pairlist        : . 
+is.primitive       : . 
+is.qr              : . 
+is.raw             : . 
+is.recursive       : | 
+is.symbol          : . 
+is.table           : . 
+is.vector          : . 
+
+> is.ALL(structure(1:7, names = paste("a",1:7,sep="")))
+is.array           : . 
+is.atomic          : | 
+is.call            : . 
+is.character       : . 
+is.complex         : . 
+is.data.frame      : . 
+is.double          : . 
+is.environment     : . 
+is.expression      : . 
+is.factor          : . 
+is.finite          : | | | | | | | 
+is.function        : . 
+is.infinite        : . . . . . . . 
+is.integer         : | 
+is.language        : . 
+is.list            : . 
+is.logical         : . 
+is.matrix          : . 
+is.na              : . . . . . . . 
+is.name            : . 
+is.nan             : . . . . . . . 
+is.null            : . 
+is.numeric         : | 
+is.numeric_version : . 
+is.object          : . 
+is.ordered         : . 
+is.package_version : . 
+is.pairlist        : . 
+is.primitive       : . 
+is.qr              : . 
+is.raw             : . 
+is.recursive       : . 
+is.symbol          : . 
+is.table           : . 
+is.vector          : | 
+
+> is.ALL(structure(1:7, names = paste("a",1:7,sep="")), true.only = TRUE)
+[1] "is.atomic"  "is.integer" "is.numeric" "is.vector" 
+
+
+	demo(recursion)
+	---- ~~~~~~~~~
+
+> #  Copyright (C) 1997-2005 The R Core Team
+> 
+> ## Adaptive integration:	 Venables and Ripley pp. 105-110
+> ## This is the basic integrator.
+> 
+> area <- function(f, a, b, ..., fa = f(a, ...), fb = f(b, ...), limit
++ 		 = 10, eps = 1.e-5)
++ {
++     h <- b - a
++     d <- (a + b)/2
++     fd <- f(d, ...)
++     a1 <- ((fa + fb) * h)/2
++     a2 <- ((fa + 4 * fd + fb) * h)/6
++     if(abs(a1 - a2) < eps)
++ 	return(a2)
++     if(limit == 0) {
++ 	warning(paste("iteration limit reached near x = ",
++ 		      d))
++ 	return(a2)
++     }
++     area(f, a, d, ..., fa = fa, fb = fd, limit = limit - 1,
++ 	 eps = eps) + area(f, d, b, ..., fa = fd, fb =
++ 	 fb, limit = limit - 1, eps = eps)
++ }
+
+> ## The function to be integrated
+> 
+> fbeta <- function(x, alpha, beta)
++ {
++     x^(alpha - 1) * (1 - x)^(beta - 1)
++ }
+
+> ## Compute the approximate integral, the exact integral and the error
+> 
+> b0 <- area(fbeta, 0, 1, alpha=3.5, beta=1.5)
+
+> b1 <- exp(lgamma(3.5) + lgamma(1.5) - lgamma(5))
+
+> c(b0, b1, b0-b1)
+[1]  1.227170e-01  1.227185e-01 -1.443996e-06
+
+> ## Modify the function so that it records where it was evaluated
+> 
+> fbeta.tmp <- function (x, alpha, beta)
++ {
++     val <<- c(val, x)
++     x^(alpha - 1) * (1 - x)^(beta - 1)
++ }
+
+> ## Recompute and plot the evaluation points.
+> 
+> val <- NULL
+
+> b0 <- area(fbeta.tmp, 0, 1, alpha=3.5, beta=1.5)
+
+> plot(val, fbeta(val, 3.5, 1.5), pch=0)
+
+> ## Better programming style -- renaming the function will have no effect.
+> ## The use of "Recall" as in V+R is VERY black magic.  You can get the
+> ## same effect transparently by supplying a wrapper function.
+> ## This is the approved Abelson+Sussman method.
+> 
+> area <- function(f, a, b, ..., limit=10, eps=1e-5) {
++     area2 <- function(f, a, b, ..., fa = f(a, ...), fb = f(b, ...),
++ 		      limit = limit, eps = eps) {
++ 	h <- b - a
++ 	d <- (a + b)/2
++ 	fd <- f(d, ...)
++ 	a1 <- ((fa + fb) * h)/2
++ 	a2 <- ((fa + 4 * fd + fb) * h)/6
++ 	if(abs(a1 - a2) < eps)
++ 	    return(a2)
++ 	if(limit == 0) {
++ 	    warning(paste("iteration limit reached near x =", d))
++ 	    return(a2)
++ 	}
++ 	area2(f, a, d, ..., fa = fa, fb = fd, limit = limit - 1,
++ 	      eps = eps) + area2(f, d, b, ..., fa = fd, fb =
++ 	      fb, limit = limit - 1, eps = eps)
++     }
++     area2(f, a, b, ..., limit=limit, eps=eps)
++ }
+
+
+	demo(scoping)
+	---- ~~~~~~~
+
+> ## Here is a little example which shows a fundamental difference between
+> ## R and S.  It is a little example from Abelson and Sussman which models
+> ## the way in which bank accounts work.	It shows how R functions can
+> ## encapsulate state information.
+> ##
+> ## When invoked, "open.account" defines and returns three functions
+> ## in a list.  Because the variable "total" exists in the environment
+> ## where these functions are defined they have access to its value.
+> ## This is even true when "open.account" has returned.  The only way
+> ## to access the value of "total" is through the accessor functions
+> ## withdraw, deposit and balance.  Separate accounts maintain their
+> ## own balances.
+> ##
+> ## This is a very nifty way of creating "closures" and a little thought
+> ## will show you that there are many ways of using this in statistics.
+> 
+> #  Copyright (C) 1997-8 The R Core Team
+> 
+> open.account <- function(total) {
++ 
++     list(
++ 	 deposit = function(amount) {
++ 	     if(amount <= 0)
++ 		 stop("Deposits must be positive!\n")
++ 	     total <<- total + amount
++ 	     cat(amount,"deposited. Your balance is", total, "\n\n")
++ 	 },
++ 	 withdraw = function(amount) {
++ 	     if(amount > total)
++ 		 stop("You don't have that much money!\n")
++ 	     total <<- total - amount
++ 	     cat(amount,"withdrawn.  Your balance is", total, "\n\n")
++ 	 },
++ 	 balance = function() {
++ 	     cat("Your balance is", total, "\n\n")
++ 	 }
++ 	 )
++ }
+
+> ross <- open.account(100)
+
+> robert <- open.account(200)
+
+> ross$withdraw(30)
+30 withdrawn.  Your balance is 70 
+
+
+> ross$balance()
+Your balance is 70 
+
+
+> robert$balance()
+Your balance is 200 
+
+
+> ross$deposit(50)
+50 deposited. Your balance is 120 
+
+
+> ross$balance()
+Your balance is 120 
+
+
+> try(ross$withdraw(500)) # no way..
+Error in ross$withdraw(500) : You don't have that much money!
+
+
+
+	demo(graphics)
+	---- ~~~~~~~~
+
+> #  Copyright (C) 1997-2009 The R Core Team
+> 
+> require(datasets)
+
+> require(grDevices); require(graphics)
+
+> ## Here is some code which illustrates some of the differences between
+> ## R and S graphics capabilities.  Note that colors are generally specified
+> ## by a character string name (taken from the X11 rgb.txt file) and that line
+> ## textures are given similarly.  The parameter "bg" sets the background
+> ## parameter for the plot and there is also an "fg" parameter which sets
+> ## the foreground color.
+> 
+> 
+> x <- stats::rnorm(50)
+
+> opar <- par(bg = "white")
+
+> plot(x, ann = FALSE, type = "n")
+
+> abline(h = 0, col = gray(.90))
+
+> lines(x, col = "green4", lty = "dotted")
+
+> points(x, bg = "limegreen", pch = 21)
+
+> title(main = "Simple Use of Color In a Plot",
++       xlab = "Just a Whisper of a Label",
++       col.main = "blue", col.lab = gray(.8),
++       cex.main = 1.2, cex.lab = 1.0, font.main = 4, font.lab = 3)
+
+> ## A little color wheel.	 This code just plots equally spaced hues in
+> ## a pie chart.	If you have a cheap SVGA monitor (like me) you will
+> ## probably find that numerically equispaced does not mean visually
+> ## equispaced.  On my display at home, these colors tend to cluster at
+> ## the RGB primaries.  On the other hand on the SGI Indy at work the
+> ## effect is near perfect.
+> 
+> par(bg = "gray")
+
+> pie(rep(1,24), col = rainbow(24), radius = 0.9)
+
+> title(main = "A Sample Color Wheel", cex.main = 1.4, font.main = 3)
+
+> title(xlab = "(Use this as a test of monitor linearity)",
++       cex.lab = 0.8, font.lab = 3)
+
+> ## We have already confessed to having these.  This is just showing off X11
+> ## color names (and the example (from the postscript manual) is pretty "cute".
+> 
+> pie.sales <- c(0.12, 0.3, 0.26, 0.16, 0.04, 0.12)
+
+> names(pie.sales) <- c("Blueberry", "Cherry",
++ 		      "Apple", "Boston Cream", "Other", "Vanilla Cream")
+
+> pie(pie.sales,
++     col = c("purple","violetred1","green3","cornsilk","cyan","white"))
+
+> title(main = "January Pie Sales", cex.main = 1.8, font.main = 1)
+
+> title(xlab = "(Don't try this at home kids)", cex.lab = 0.8, font.lab = 3)
+
+> ## Boxplots:  I couldn't resist the capability for filling the "box".
+> ## The use of color seems like a useful addition, it focuses attention
+> ## on the central bulk of the data.
+> 
+> par(bg="cornsilk")
+
+> n <- 10
+
+> g <- gl(n, 100, n*100)
+
+> x <- rnorm(n*100) + sqrt(as.numeric(g))
+
+> boxplot(split(x,g), col="lavender", notch=TRUE)
+
+> title(main="Notched Boxplots", xlab="Group", font.main=4, font.lab=1)
+
+> ## An example showing how to fill between curves.
+> 
+> par(bg="white")
+
+> n <- 100
+
+> x <- c(0,cumsum(rnorm(n)))
+
+> y <- c(0,cumsum(rnorm(n)))
+
+> xx <- c(0:n, n:0)
+
+> yy <- c(x, rev(y))
+
+> plot(xx, yy, type="n", xlab="Time", ylab="Distance")
+
+> polygon(xx, yy, col="gray")
+
+> title("Distance Between Brownian Motions")
+
+> ## Colored plot margins, axis labels and titles.	 You do need to be
+> ## careful with these kinds of effects.	It's easy to go completely
+> ## over the top and you can end up with your lunch all over the keyboard.
+> ## On the other hand, my market research clients love it.
+> 
+> x <- c(0.00, 0.40, 0.86, 0.85, 0.69, 0.48, 0.54, 1.09, 1.11, 1.73, 2.05, 2.02)
+
+> par(bg="lightgray")
+
+> plot(x, type="n", axes=FALSE, ann=FALSE)
+
+> usr <- par("usr")
+
+> rect(usr[1], usr[3], usr[2], usr[4], col="cornsilk", border="black")
+
+> lines(x, col="blue")
+
+> points(x, pch=21, bg="lightcyan", cex=1.25)
+
+> axis(2, col.axis="blue", las=1)
+
+> axis(1, at=1:12, lab=month.abb, col.axis="blue")
+
+> box()
+
+> title(main= "The Level of Interest in R", font.main=4, col.main="red")
+
+> title(xlab= "1996", col.lab="red")
+
+> ## A filled histogram, showing how to change the font used for the
+> ## main title without changing the other annotation.
+> 
+> par(bg="cornsilk")
+
+> x <- rnorm(1000)
+
+> hist(x, xlim=range(-4, 4, x), col="lavender", main="")
+
+> title(main="1000 Normal Random Variates", font.main=3)
+
+> ## A scatterplot matrix
+> ## The good old Iris data (yet again)
+> 
+> pairs(iris[1:4], main="Edgar Anderson's Iris Data", font.main=4, pch=19)
+
+> pairs(iris[1:4], main="Edgar Anderson's Iris Data", pch=21,
++       bg = c("red", "green3", "blue")[unclass(iris$Species)])
+
+> ## Contour plotting
+> ## This produces a topographic map of one of Auckland's many volcanic "peaks".
+> 
+> x <- 10*1:nrow(volcano)
+
+> y <- 10*1:ncol(volcano)
+
+> lev <- pretty(range(volcano), 10)
+
+> par(bg = "lightcyan")
+
+> pin <- par("pin")
+
+> xdelta <- diff(range(x))
+
+> ydelta <- diff(range(y))
+
+> xscale <- pin[1]/xdelta
+
+> yscale <- pin[2]/ydelta
+
+> scale <- min(xscale, yscale)
+
+> xadd <- 0.5*(pin[1]/scale - xdelta)
+
+> yadd <- 0.5*(pin[2]/scale - ydelta)
+
+> plot(numeric(0), numeric(0),
++      xlim = range(x)+c(-1,1)*xadd, ylim = range(y)+c(-1,1)*yadd,
++      type = "n", ann = FALSE)
+
+> usr <- par("usr")
+
+> rect(usr[1], usr[3], usr[2], usr[4], col="green3")
+
+> contour(x, y, volcano, levels = lev, col="yellow", lty="solid", add=TRUE)
+
+> box()
+
+> title("A Topographic Map of Maunga Whau", font= 4)
+
+> title(xlab = "Meters North", ylab = "Meters West", font= 3)
+
+> mtext("10 Meter Contour Spacing", side=3, line=0.35, outer=FALSE,
++       at = mean(par("usr")[1:2]), cex=0.7, font=3)
+
+> ## Conditioning plots
+> 
+> par(bg="cornsilk")
+
+> coplot(lat ~ long | depth, data = quakes, pch = 21, bg = "green3")
+
+> par(opar)
+
+
+	demo(image)
+	---- ~~~~~
+
+> #  Copyright (C) 1997-2009 The R Core Team
+> 
+> require(datasets)
+
+> require(grDevices); require(graphics)
+
+> x <- 10*(1:nrow(volcano)); x.at <- seq(100, 800, by=100)
+
+> y <- 10*(1:ncol(volcano)); y.at <- seq(100, 600, by=100)
+
+> 					# Using Terrain Colors
+> 
+> image(x, y, volcano, col=terrain.colors(100),axes=FALSE)
+
+> contour(x, y, volcano, levels=seq(90, 200, by=5), add=TRUE, col="brown")
+
+> axis(1, at=x.at)
+
+> axis(2, at=y.at)
+
+> box()
+
+> title(main="Maunga Whau Volcano", sub = "col=terrain.colors(100)", font.main=4)
+
+> 					# Using Heat Colors
+> 
+> image(x, y, volcano, col=heat.colors(100), axes=FALSE)
+
+> contour(x, y, volcano, levels=seq(90, 200, by=5), add=TRUE, col="brown")
+
+> axis(1, at=x.at)
+
+> axis(2, at=y.at)
+
+> box()
+
+> title(main="Maunga Whau Volcano", sub = "col=heat.colors(100)", font.main=4)
+
+> 					# Using Gray Scale
+> 
+> image(x, y, volcano, col=gray(100:200/200), axes=FALSE)
+
+> contour(x, y, volcano, levels=seq(90, 200, by=5), add=TRUE, col="black")
+
+> axis(1, at=x.at)
+
+> axis(2, at=y.at)
+
+> box()
+
+> title(main="Maunga Whau Volcano \n col=gray(100:200/200)", font.main=4)
+
+> ## Filled Contours are even nicer sometimes :
+> example(filled.contour)
+
+flld.c> require(grDevices) # for colours
+
+flld.c> filled.contour(volcano, color = terrain.colors, asp = 1) # simple
+
+flld.c> x <- 10*1:nrow(volcano)
+
+flld.c> y <- 10*1:ncol(volcano)
+
+flld.c> filled.contour(x, y, volcano, color = terrain.colors,
+flld.c+     plot.title = title(main = "The Topography of Maunga Whau",
+flld.c+     xlab = "Meters North", ylab = "Meters West"),
+flld.c+     plot.axes = { axis(1, seq(100, 800, by = 100))
+flld.c+                   axis(2, seq(100, 600, by = 100)) },
+flld.c+     key.title = title(main = "Height\n(meters)"),
+flld.c+     key.axes = axis(4, seq(90, 190, by = 10)))  # maybe also asp = 1
+
+flld.c> mtext(paste("filled.contour(.) from", R.version.string),
+flld.c+       side = 1, line = 4, adj = 1, cex = .66)
+
+flld.c> # Annotating a filled contour plot
+flld.c> a <- expand.grid(1:20, 1:20)
+
+flld.c> b <- matrix(a[,1] + a[,2], 20)
+
+flld.c> filled.contour(x = 1:20, y = 1:20, z = b,
+flld.c+                plot.axes = { axis(1); axis(2); points(10, 10) })
+
+flld.c> ## Persian Rug Art:
+flld.c> x <- y <- seq(-4*pi, 4*pi, len = 27)
+
+flld.c> r <- sqrt(outer(x^2, y^2, "+"))
+
+flld.c> filled.contour(cos(r^2)*exp(-r/(2*pi)), axes = FALSE)
+
+flld.c> ## rather, the key *should* be labeled:
+flld.c> filled.contour(cos(r^2)*exp(-r/(2*pi)), frame.plot = FALSE,
+flld.c+                plot.axes = {})
+
+
+	demo(persp)
+	---- ~~~~~
+
+> ### Demos for  persp()  plots   -- things not in  example(persp)
+> ### -------------------------
+> 
+> require(datasets)
+
+> require(grDevices); require(graphics)
+
+> ## (1) The Obligatory Mathematical surface.
+> ##     Rotated sinc function.
+> 
+> x <- seq(-10, 10, length.out = 50)
+
+> y <- x
+
+> rotsinc <- function(x,y)
++ {
++     sinc <- function(x) { y <- sin(x)/x ; y[is.na(y)] <- 1; y }
++     10 * sinc( sqrt(x^2+y^2) )
++ }
+
+> sinc.exp <- expression(z == Sinc(sqrt(x^2 + y^2)))
+
+> z <- outer(x, y, rotsinc)
+
+> oldpar <- par(bg = "white")
+
+> persp(x, y, z, theta = 30, phi = 30, expand = 0.5, col = "lightblue")
+
+> title(sub=".")## work around persp+plotmath bug
+
+> title(main = sinc.exp)
+
+> persp(x, y, z, theta = 30, phi = 30, expand = 0.5, col = "lightblue",
++       ltheta = 120, shade = 0.75, ticktype = "detailed",
++       xlab = "X", ylab = "Y", zlab = "Z")
+
+> title(sub=".")## work around persp+plotmath bug
+
+> title(main = sinc.exp)
+
+> ## (2) Visualizing a simple DEM model
+> 
+> z <- 2 * volcano        # Exaggerate the relief
+
+> x <- 10 * (1:nrow(z))   # 10 meter spacing (S to N)
+
+> y <- 10 * (1:ncol(z))   # 10 meter spacing (E to W)
+
+> persp(x, y, z, theta = 120, phi = 15, scale = FALSE, axes = FALSE)
+
+> ## (3) Now something more complex
+> ##     We border the surface, to make it more "slice like"
+> ##     and color the top and sides of the surface differently.
+> 
+> z0 <- min(z) - 20
+
+> z <- rbind(z0, cbind(z0, z, z0), z0)
+
+> x <- c(min(x) - 1e-10, x, max(x) + 1e-10)
+
+> y <- c(min(y) - 1e-10, y, max(y) + 1e-10)
+
+> fill <- matrix("green3", nrow = nrow(z)-1, ncol = ncol(z)-1)
+
+> fill[ , i2 <- c(1,ncol(fill))] <- "gray"
+
+> fill[i1 <- c(1,nrow(fill)) , ] <- "gray"
+
+> par(bg = "lightblue")
+
+> persp(x, y, z, theta = 120, phi = 15, col = fill, scale = FALSE, axes = FALSE)
+
+> title(main = "Maunga Whau\nOne of 50 Volcanoes in the Auckland Region.",
++       font.main = 4)
+
+> par(bg = "slategray")
+
+> persp(x, y, z, theta = 135, phi = 30, col = fill, scale = FALSE,
++       ltheta = -120, lphi = 15, shade = 0.65, axes = FALSE)
+
+> ## Don't draw the grid lines :  border = NA
+> persp(x, y, z, theta = 135, phi = 30, col = "green3", scale = FALSE,
++       ltheta = -120, shade = 0.75, border = NA, box = FALSE)
+
+> ## `color gradient in the soil' :
+> fcol <- fill ; fcol[] <- terrain.colors(nrow(fcol))
+
+> persp(x, y, z, theta = 135, phi = 30, col = fcol, scale = FALSE,
++       ltheta = -120, shade = 0.3, border = NA, box = FALSE)
+
+> ## `image like' colors on top :
+> fcol <- fill
+
+> zi <- volcano[ -1,-1] + volcano[ -1,-61] +
++            volcano[-87,-1] + volcano[-87,-61]  ## / 4
+
+> fcol[-i1,-i2] <-
++     terrain.colors(20)[cut(zi,
++                            stats::quantile(zi, seq(0,1, length.out = 21)),
++                            include.lowest = TRUE)]
+
+> persp(x, y, 2*z, theta = 110, phi = 40, col = fcol, scale = FALSE,
++       ltheta = -120, shade = 0.4, border = NA, box = FALSE)
+
+> ## reset par():
+> par(oldpar)
+
+
+	demo(glm.vr)
+	---- ~~~~~~
+
+> #  Copyright (C) 1997-2009 The R Core Team
+> 
+> #### -*- R -*-
+> require(stats)
+
+> Fr <- c(68,42,42,30, 37,52,24,43,
++ 	66,50,33,23, 47,55,23,47,
++ 	63,53,29,27, 57,49,19,29)
+
+> Temp <- gl(2, 2, 24, labels = c("Low", "High"))
+
+> Soft <- gl(3, 8, 24, labels = c("Hard","Medium","Soft"))
+
+> M.user <- gl(2, 4, 24, labels = c("N", "Y"))
+
+> Brand <- gl(2, 1, 24, labels = c("X", "M"))
+
+> detg <- data.frame(Fr,Temp, Soft,M.user, Brand)
+
+> detg.m0 <- glm(Fr ~ M.user*Temp*Soft + Brand, family = poisson, data = detg)
+
+> summary(detg.m0)
+
+Call:
+glm(formula = Fr ~ M.user * Temp * Soft + Brand, family = poisson, 
+    data = detg)
+
+Deviance Residuals: 
+     Min        1Q    Median        3Q       Max  
+-2.20876  -0.99190  -0.00126   0.93542   1.97601  
+
+Coefficients:
+                            Estimate Std. Error z value Pr(>|z|)    
+(Intercept)                  4.01524    0.10034  40.018  < 2e-16 ***
+M.userY                     -0.21184    0.14257  -1.486  0.13731    
+TempHigh                    -0.42381    0.15159  -2.796  0.00518 ** 
+SoftMedium                   0.05311    0.13308   0.399  0.68984    
+SoftSoft                     0.05311    0.13308   0.399  0.68984    
+BrandM                      -0.01587    0.06300  -0.252  0.80106    
+M.userY:TempHigh             0.13987    0.22168   0.631  0.52806    
+M.userY:SoftMedium           0.08323    0.19685   0.423  0.67245    
+M.userY:SoftSoft             0.12169    0.19591   0.621  0.53449    
+TempHigh:SoftMedium         -0.30442    0.22239  -1.369  0.17104    
+TempHigh:SoftSoft           -0.30442    0.22239  -1.369  0.17104    
+M.userY:TempHigh:SoftMedium  0.21189    0.31577   0.671  0.50220    
+M.userY:TempHigh:SoftSoft   -0.20387    0.32540  -0.627  0.53098    
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+(Dispersion parameter for poisson family taken to be 1)
+
+    Null deviance: 118.627  on 23  degrees of freedom
+Residual deviance:  32.826  on 11  degrees of freedom
+AIC: 191.24
+
+Number of Fisher Scoring iterations: 4
+
+
+> detg.mod <- glm(terms(Fr ~ M.user*Temp*Soft + Brand*M.user*Temp,
++                       keep.order = TRUE),
++ 		family = poisson, data = detg)
+
+> summary(detg.mod)
+
+Call:
+glm(formula = terms(Fr ~ M.user * Temp * Soft + Brand * M.user * 
+    Temp, keep.order = TRUE), family = poisson, data = detg)
+
+Deviance Residuals: 
+     Min        1Q    Median        3Q       Max  
+-0.91365  -0.35585   0.00253   0.33027   0.92146  
+
+Coefficients:
+                            Estimate Std. Error z value Pr(>|z|)    
+(Intercept)                  4.14887    0.10603  39.128  < 2e-16 ***
+M.userY                     -0.40521    0.16188  -2.503  0.01231 *  
+TempHigh                    -0.44275    0.17121  -2.586  0.00971 ** 
+M.userY:TempHigh            -0.12692    0.26257  -0.483  0.62883    
+SoftMedium                   0.05311    0.13308   0.399  0.68984    
+SoftSoft                     0.05311    0.13308   0.399  0.68984    
+M.userY:SoftMedium           0.08323    0.19685   0.423  0.67245    
+M.userY:SoftSoft             0.12169    0.19591   0.621  0.53449    
+TempHigh:SoftMedium         -0.30442    0.22239  -1.369  0.17104    
+TempHigh:SoftSoft           -0.30442    0.22239  -1.369  0.17104    
+M.userY:TempHigh:SoftMedium  0.21189    0.31577   0.671  0.50220    
+M.userY:TempHigh:SoftSoft   -0.20387    0.32540  -0.627  0.53098    
+BrandM                      -0.30647    0.10942  -2.801  0.00510 ** 
+M.userY:BrandM               0.40757    0.15961   2.554  0.01066 *  
+TempHigh:BrandM              0.04411    0.18463   0.239  0.81119    
+M.userY:TempHigh:BrandM      0.44427    0.26673   1.666  0.09579 .  
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+(Dispersion parameter for poisson family taken to be 1)
+
+    Null deviance: 118.627  on 23  degrees of freedom
+Residual deviance:   5.656  on  8  degrees of freedom
+AIC: 170.07
+
+Number of Fisher Scoring iterations: 4
+
+
+> summary(detg.mod, correlation = TRUE, symbolic.cor = TRUE)
+
+Call:
+glm(formula = terms(Fr ~ M.user * Temp * Soft + Brand * M.user * 
+    Temp, keep.order = TRUE), family = poisson, data = detg)
+
+Deviance Residuals: 
+     Min        1Q    Median        3Q       Max  
+-0.91365  -0.35585   0.00253   0.33027   0.92146  
+
+Coefficients:
+                            Estimate Std. Error z value Pr(>|z|)    
+(Intercept)                  4.14887    0.10603  39.128  < 2e-16 ***
+M.userY                     -0.40521    0.16188  -2.503  0.01231 *  
+TempHigh                    -0.44275    0.17121  -2.586  0.00971 ** 
+M.userY:TempHigh            -0.12692    0.26257  -0.483  0.62883    
+SoftMedium                   0.05311    0.13308   0.399  0.68984    
+SoftSoft                     0.05311    0.13308   0.399  0.68984    
+M.userY:SoftMedium           0.08323    0.19685   0.423  0.67245    
+M.userY:SoftSoft             0.12169    0.19591   0.621  0.53449    
+TempHigh:SoftMedium         -0.30442    0.22239  -1.369  0.17104    
+TempHigh:SoftSoft           -0.30442    0.22239  -1.369  0.17104    
+M.userY:TempHigh:SoftMedium  0.21189    0.31577   0.671  0.50220    
+M.userY:TempHigh:SoftSoft   -0.20387    0.32540  -0.627  0.53098    
+BrandM                      -0.30647    0.10942  -2.801  0.00510 ** 
+M.userY:BrandM               0.40757    0.15961   2.554  0.01066 *  
+TempHigh:BrandM              0.04411    0.18463   0.239  0.81119    
+M.userY:TempHigh:BrandM      0.44427    0.26673   1.666  0.09579 .  
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+(Dispersion parameter for poisson family taken to be 1)
+
+    Null deviance: 118.627  on 23  degrees of freedom
+Residual deviance:   5.656  on  8  degrees of freedom
+AIC: 170.07
+
+Number of Fisher Scoring iterations: 4
+
+Correlation of Coefficients:
+                                                           
+(Intercept)                 1                              
+M.userY                     , 1                            
+TempHigh                    , . 1                          
+M.userY:TempHigh            . , , 1                        
+SoftMedium                  , . .   1                      
+SoftSoft                    , . .   . 1                    
+M.userY:SoftMedium          . ,   . , . 1                  
+M.userY:SoftSoft            . ,   . . , . 1                
+TempHigh:SoftMedium         .   , . . . .   1              
+TempHigh:SoftSoft           .   , . . .   . . 1            
+M.userY:TempHigh:SoftMedium   . . . .   , . , . 1          
+M.userY:TempHigh:SoftSoft     . . .   . . , . , . 1        
+BrandM                      .                       1      
+M.userY:BrandM                .                     , 1    
+TempHigh:BrandM                 . .                 . . 1  
+M.userY:TempHigh:BrandM         . .                 . . , 1
+attr(,"legend")
+[1] 0 ' ' 0.3 '.' 0.6 ',' 0.8 '+' 0.9 '*' 0.95 'B' 1
+
+
+> anova(detg.m0, detg.mod)
+Analysis of Deviance Table
+
+Model 1: Fr ~ M.user * Temp * Soft + Brand
+Model 2: Fr ~ M.user * Temp * Soft + Brand * M.user * Temp
+  Resid. Df Resid. Dev Df Deviance
+1        11     32.826            
+2         8      5.656  3    27.17
+
+
+	demo(smooth)
+	---- ~~~~~~
+
+> ### This used to be in   example(smooth) before we had package-specific demos
+> #  Copyright (C) 1997-2009 The R Core Team
+> 
+> require(stats); require(graphics); require(datasets)
+
+> op <- par(mfrow = c(1,1))
+
+> ## The help(smooth) examples:
+> example(smooth, package="stats")
+
+smooth> require(graphics)
+
+smooth> ## see also   demo(smooth) !
+smooth> 
+smooth> x1 <- c(4, 1, 3, 6, 6, 4, 1, 6, 2, 4, 2) # very artificial
+
+smooth> (x3R <- smooth(x1, "3R")) # 2 iterations of "3"
+3R Tukey smoother resulting from  smooth(x = x1, kind = "3R") 
+ used 2 iterations
+ [1] 3 3 3 6 6 4 4 4 2 2 2
+
+smooth> smooth(x3R, kind = "S")
+S Tukey smoother resulting from  smooth(x = x3R, kind = "S") 
+ changed
+ [1] 3 3 3 3 4 4 4 4 2 2 2
+
+smooth> sm.3RS <- function(x, ...)
+smooth+    smooth(smooth(x, "3R", ...), "S", ...)
+
+smooth> y <- c(1, 1, 19:1)
+
+smooth> plot(y, main = "misbehaviour of \"3RSR\"", col.main = 3)
+
+smooth> lines(sm.3RS(y))
+
+smooth> lines(smooth(y))
+
+smooth> lines(smooth(y, "3RSR"), col = 3, lwd = 2)  # the horror
+
+smooth> x <- c(8:10, 10, 0, 0, 9, 9)
+
+smooth> plot(x, main = "breakdown of  3R  and  S  and hence  3RSS")
+
+smooth> matlines(cbind(smooth(x, "3R"), smooth(x, "S"), smooth(x, "3RSS"), smooth(x)))
+
+smooth> presidents[is.na(presidents)] <- 0 # silly
+
+smooth> summary(sm3 <- smooth(presidents, "3R"))
+3R Tukey smoother resulting from
+ smooth(x = presidents, kind = "3R") ;  n = 120 
+ used 4 iterations
+   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
+    0.0    44.0    57.0    54.2    71.0    82.0 
+
+smooth> summary(sm2 <- smooth(presidents,"3RSS"))
+3RSS Tukey smoother resulting from
+ smooth(x = presidents, kind = "3RSS") ;  n = 120 
+ used 5 iterations
+   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
+   0.00   44.00   57.00   55.45   69.00   82.00 
+
+smooth> summary(sm  <- smooth(presidents))
+3RS3R Tukey smoother resulting from
+ smooth(x = presidents) ;  n = 120 
+ used 7 iterations
+   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
+  24.00   44.00   57.00   55.88   69.00   82.00 
+
+smooth> all.equal(c(sm2), c(smooth(smooth(sm3, "S"), "S")))  # 3RSS  === 3R S S
+[1] TRUE
+
+smooth> all.equal(c(sm),  c(smooth(smooth(sm3, "S"), "3R"))) # 3RS3R === 3R S 3R
+[1] TRUE
+
+smooth> plot(presidents, main = "smooth(presidents0, *) :  3R and default 3RS3R")
+
+smooth> lines(sm3, col = 3, lwd = 1.5)
+
+smooth> lines(sm, col = 2, lwd = 1.25)
+
+> ## Didactical investigation:
+> 
+> showSmooth <- function(x, leg.x = 1, leg.y = max(x)) {
++   ss <- cbind(x, "3c"  = smooth(x, "3", end="copy"),
++                  "3"   = smooth(x, "3"),
++                  "3Rc" = smooth(x, "3R", end="copy"),
++                  "3R"  = smooth(x, "3R"),
++               sm = smooth(x))
++   k <- ncol(ss) - 1
++   n <- length(x)
++   slwd <- c(1,1,4,1,3,2)
++   slty <- c(0, 2:(k+1))
++   matplot(ss, main = "Tukey Smoothers", ylab = "y ;  sm(y)",
++           type= c("p",rep("l",k)), pch= par("pch"), lwd= slwd, lty= slty)
++   legend(leg.x, leg.y,
++          c("Data",       "3   (copy)", "3  (Tukey)",
++                  "3R  (copy)", "3R (Tukey)", "smooth()"),
++          pch= c(par("pch"),rep(-1,k)), col=1:(k+1), lwd= slwd, lty= slty)
++   ss
++ }
+
+> ## 4 simple didactical examples, showing different steps in smooth():
+> 
+> for(x in list(c(4, 6, 2, 2, 6, 3, 6, 6, 5, 2),
++               c(3, 2, 1, 4, 5, 1, 3, 2, 4, 5, 2),
++               c(2, 4, 2, 6, 1, 1, 2, 6, 3, 1, 6),
++               x1))
++     print(t(showSmooth(x)))
+    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
+x      4    6    2    2    6    3    6    6    5     2
+3c     4    4    2    2    3    6    6    6    5     2
+3      4    4    2    2    3    6    6    6    5     3
+3Rc    4    4    2    2    3    6    6    6    5     2
+3R     4    4    2    2    3    6    6    6    5     3
+sm     4    4    4    3    3    6    6    6    5     3
+    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
+x      3    2    1    4    5    1    3    2    4     5     2
+3c     3    2    2    4    4    3    2    3    4     4     2
+3      2    2    2    4    4    3    2    3    4     4     4
+3Rc    3    2    2    4    4    3    3    3    4     4     2
+3R     2    2    2    4    4    3    3    3    4     4     4
+sm     2    2    2    2    3    3    3    3    4     4     4
+    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
+x      2    4    2    6    1    1    2    6    3     1     6
+3c     2    2    4    2    1    1    2    3    3     3     6
+3      2    2    4    2    1    1    2    3    3     3     3
+3Rc    2    2    2    2    1    1    2    3    3     3     6
+3R     2    2    2    2    1    1    2    3    3     3     3
+sm     2    2    2    2    2    2    2    3    3     3     3
+    [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
+x      4    1    3    6    6    4    1    6    2     4     2
+3c     4    3    3    6    6    4    4    2    4     2     2
+3      3    3    3    6    6    4    4    2    4     2     2
+3Rc    4    3    3    6    6    4    4    4    2     2     2
+3R     3    3    3    6    6    4    4    4    2     2     2
+sm     3    3    3    3    4    4    4    4    2     2     2
+
+> par(op)
+> 
+> cat("Time elapsed: ", proc.time() - .ptime, "\n")
+Time elapsed:  1.026 0.02 1.045 0 0 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/any-all.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/any-all.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/any-all.R	(revision 2476)
@@ -0,0 +1,93 @@
+basic_tests <- list(
+     list(input=c(TRUE, FALSE), any=TRUE, all=FALSE),
+     list(input=c(FALSE, TRUE), any=TRUE, all=FALSE),
+
+     list(input=c(TRUE, TRUE), any=TRUE, all=TRUE),
+     list(input=c(FALSE, FALSE), any=FALSE, all=FALSE),
+
+     list(input=c(NA, FALSE), any=NA, all=FALSE, any.na.rm=FALSE),
+     list(input=c(FALSE, NA), any=NA, all=FALSE, any.na.rm=FALSE),
+
+     list(input=c(NA, TRUE), any=TRUE, all=NA, all.na.rm=TRUE),
+     list(input=c(TRUE, NA), any=TRUE, all=NA, all.na.rm=TRUE),
+
+     list(input=logical(0), any=FALSE, all=TRUE),
+
+     list(input=NA, any=NA, all=NA, any.na.rm=FALSE, any.na.rm=TRUE),
+
+     list(input=c(TRUE, NA, FALSE), any=TRUE, any.na.rm=TRUE,
+          all=FALSE, all.na.rm=FALSE)
+     )
+
+## any, all accept '...' for input.
+list_input_tests <-
+    list(
+         list(input=list(TRUE, TRUE), all=TRUE, any=TRUE),
+         list(input=list(FALSE, FALSE), all=FALSE, any=FALSE),
+         list(input=list(TRUE, FALSE), all=FALSE, any=TRUE),
+         list(input=list(FALSE, TRUE), all=FALSE, any=TRUE),
+
+         list(input=list(FALSE, NA),
+              all=FALSE, all.na.rm=FALSE, any=NA, any.na.rm=FALSE),
+         list(input=list(NA, FALSE),
+              all=FALSE, all.na.rm=FALSE, any=NA, any.na.rm=FALSE),
+
+         list(input=list(TRUE, NA),
+              all=NA, all.na.rm=TRUE, any=TRUE, any.na.rm=TRUE),
+         list(input=list(NA, TRUE),
+              all=NA, all.na.rm=TRUE, any=TRUE, any.na.rm=TRUE),
+
+         list(input=list(NA, NA),
+              any=NA, any.na.rm=FALSE, all=NA, all.na.rm=TRUE),
+
+         list(input=list(rep(TRUE, 2), rep(TRUE, 10)),
+              all=TRUE, any=TRUE),
+
+         list(input=list(rep(TRUE, 2), c(TRUE, NA)),
+              all=NA, all.na.rm=TRUE, any=TRUE),
+
+         list(input=list(rep(TRUE, 2), c(TRUE, FALSE)),
+              all=FALSE, any=TRUE),
+
+         list(input=list(c(TRUE, FALSE), c(TRUE, NA)),
+              all=FALSE, all.na.rm=FALSE, any=TRUE, any.na.rm=TRUE)
+         )
+
+
+
+do_tests <- function(L)
+{
+    run <- function(f, input, na.rm = FALSE)
+    {
+        if (is.list(input))
+            do.call(f, c(input, list(na.rm = na.rm)))
+        else f(input, na.rm = na.rm)
+    }
+
+    do_check <- function(case, f)
+    {
+        fun <- deparse(substitute(f))
+        if (!identical(case[[fun]], run(f, case$input))) {
+            cat("input: "); dput(case$input)
+            stop(fun, " returned ", run(f, case$input),
+                 " wanted ", case[[fun]], call. = FALSE)
+        }
+        narm <- paste(fun, ".na.rm", sep = "")
+        if (!is.null(case[[narm]])) {
+            if (!identical(case[[narm]],
+                           run(f, case$input, na.rm = TRUE))) {
+                cat("input: "); dput(case$input)
+                stop(narm, " returned ", run(f, case$input, na.rm = TRUE),
+                     " wanted ", case[[narm]], call. = FALSE)
+            }
+        }
+    }
+    lab <- deparse(substitute(L))
+    for (case in L) {
+        do_check(case, any)
+        do_check(case, all)
+    }
+}
+
+do_tests(basic_tests)
+do_tests(list_input_tests)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/simple-true.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/simple-true.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/simple-true.R	(revision 2476)
@@ -0,0 +1,190 @@
+###---- ALL tests here should return  TRUE !
+###
+###---- "Real" Arithmetic; Numerics etc  -->  ./arith-true.R
+
+### mode checking, etc.
+is.recursive(expression(1+3, 2/sqrt(pi)))# fix PR#9
+
+## sum():
+all(1:12 == cumsum(rep(1,12)))
+x <- rnorm(127); sx <- sum(x);	abs((sum(rev(x)) -sx)) < 1e-12 * abs(sx)
+
+## seq():
+typeof(1:4) == "integer" #-- fails for 0.2, 0.3,.., 0.9
+
+## Check parsing with L suffix for integer literals.
+typeof(1L) == "integer"
+typeof(1000L) == "integer"
+typeof(1e3L) == "integer"
+typeof(1e-3L) == "double" # gives warning
+1.L # gives warning
+try(parse(text = "12iL")) # gives syntax error
+
+
+all((0:6) == pi + ((-pi):pi))
+all((0:7) == (pi+seq(-pi,pi, length=8))*7/(2*pi))
+
+1 == as.integer(is.na(c(pi,NA)[2]))
+1 == as.integer(is.nan(0/0))
+
+## rev():
+cc <- c(1:10,10:1) ;		all(cc == rev(cc))
+
+## dim[names]():
+all(names(c(a=pi, b=1, d=1:4)) == c("a","b", paste("d", 1:4, sep="")))
+##P names(c(a=pi, b=1, d=1:4))
+ncb <- dimnames(cbind(a=1, yy=1:3))[[2]]
+(!is.null(ncb)) && all(ncb == c("a","yy"))
+
+all(cbind(a=1:2, b=1:3, c=1:6) == t(rbind(a=1:2, b=1:3, c=1:6)))
+##P rbind(a=1:2, b=1:3, c=1:6)
+all(dim(cbind(cbind(I=1,x=1:4), c(a=pi))) == 4:3)# fails in S+
+
+a <- b <- 1:3
+all(dimnames(cbind(a, b))[[2]] == c("a","b"))
+
+## rbind PR#338
+all(dim(m <- rbind(1:2, diag(2))) == 3:2)
+all(m == c(1,1,0, 2,0,1))
+
+## factor():
+is.factor(factor(integer()))
+all(levels(ordered(rev(gl(3,4)))) == 1:3)# coercion to char
+all(levels(factor(factor(9:1)[3:5])) == 5:7)
+## crossing bug PR#40
+is.factor(ff <- gl(2,3) : gl(3,2)) && length(ff) == 6
+all(levels(ff) == t(outer(1:2, 1:3, paste, sep=":")))
+## from PR#5
+ll <- c("A","B"); ff <- factor(ll); f0 <- ff[, drop=TRUE]
+all(f0 == ff) && all(levels(ff) == ll) && is.factor(ff) && is.factor(f0)
+
+### data.frame s :
+
+## from lists [bug PR#100]
+x <- NULL
+x$x1 <- 1:10
+x$x2 <- 0:9
+all(dim(dx <- as.data.frame(x)) == c(10,2))
+
+## Logicals: (S is wrong)
+l1 <- c(TRUE,FALSE,TRUE)
+(! as.logical(as.data.frame(FALSE)[,1]))
+all(l1 == as.logical(as.data.frame(l1)[,1]))
+
+## empty data.frames :
+x <- data.frame(a=1:3)
+x30 <- {
+    if(is.R()) x[, -1]# not even possible in S+
+    else structure(list(), row.names = paste(1:3), class = "data.frame")
+}
+all(dim(x30) == c(3,0))
+x01 <- x[-(1:3), , drop = FALSE]
+x00 <- x01[,-1]
+all(dim(x01) == 0:1)
+all(dim(x00) == 0)
+all(dim(x) == dim(rbind(x, x01)))
+## bugs up to 1.2.3 :
+all(dim(x30) == dim(m30 <- as.matrix(x30)))
+all(dim(x01) == dim(m01 <- as.matrix(x01)))
+all(dim(x30) == dim(as.data.frame(m30)))
+all(dim(x01) == dim(as.data.frame(m01)))
+all(dim(x01) == dim(   data.frame(m01)))
+all(dim(x30) == dim(   data.frame(m30)))
+all(dim(x)   == dim(cbind(x, x30)))
+## up to 1.4.0 :
+all(dim(x30) == dim( data.matrix(x30)))
+all(dim(x00) == dim( data.matrix(x00)))
+
+m0 <- matrix(pi, 0,3)
+a302 <- array("", dim=c(3,0,2))
+identical(apply(m0, 1, dim), NULL)
+identical(apply(m0, 2, dim), NULL)
+identical(apply(m0, 1,length),  integer(0))
+identical(apply(m0, 2,length),  integer(3))
+identical(apply(a302, 1, mode), rep("character",3))
+## NO (maybe later?):
+## identical(apply(a302, 2, mode), rep("character",0))
+is.character(aa <- apply(a302, 2, mode)) && length(aa) == 0
+identical(apply(a302, 3, mode), rep("character",2))
+identical(apply(a302, 3, length),integer(2))
+identical(apply(a302, 3, dim), matrix(as.integer(c(3,0)), 2 ,2))
+identical(apply(a302, 1, dim), matrix(as.integer(c(0,2)), 2 ,3))
+identical(apply(array(dim=3), 1,length), rep(1:1, 3))
+identical(apply(array(dim=0), 1,length), rep(1:1, 0))# = integer(0)
+
+
+### Subsetting
+
+## bug PR#425
+x <- matrix(1:4, 2, 2, dimnames=list(c("abc","ab"), c("cde","cd")))
+y <- as.data.frame(x)
+all(x["ab",] == c(2,4))
+all(y["ab",] == c(2,4))
+
+## from bug PR#447
+x <- 1:2 ; x[c("2","2")] <- 4
+all.equal(x, c(1:2, "2" = 4))
+
+## stretching
+l2 <- list(a=1, b=2)
+l2["cc"] <- pi
+l2[["d"]] <- 4
+l2 $ e <- 55
+all.equal(l2, list(a = 1, b = 2, cc = pi, d = 4, e = 55), tolerance = 0)
+all.equal(l2["d"], list(d = 4))
+l2$d == 4 && l2$d == l2[["d"]]
+
+## bug in R <= 1.1
+f1 <- y1 ~ x1
+f2 <- y2 ~ x2
+f2[2] <- f1[2]
+deparse(f2) == "y1 ~ x2"
+
+m <- cbind(a=1:2,b=c(R=10,S=11))
+all(sapply(dimnames(m), length) == c(2,2))
+## [[ for matrix:
+m[[1,2]] == m[[3]] && m[[3]] == m[3] && m[3] == m[1,2]
+
+## bug in R <= 1.1.1 : unclass(*) didn't drop the class!
+## to be robust to S4 methods DON'T test for null class
+## The test for attr(,"class") is valid, if essentially useless
+d1 <- rbind(data.frame(a=1, b = I(TRUE)), new = c(7, "N"))
+is.null(attr(unclass(d1$b), "class"))
+
+## bugs in R 1.2.0
+format(as.POSIXct(relR120 <- "2000-12-15 11:24:40")) == relR120
+format(as.POSIXct(substr(relR120,1,10))) == substr(relR120,1,10)
+
+## rank() with NAs (and ties)
+x <- c(3:1,6,4,3,NA,5,0,NA)
+rx <-  rank(x)
+all(rx == c(4.5, 3:2, 8, 6, 4.5, 9, 7, 1, 10))
+rxK <- rank(x, na.last = "keep")
+all(rx [rx <= 8]    == na.omit(rxK))
+all(rank(x, na.last = NA) == na.omit(rxK))
+
+## as.list.function() instead of *.default():
+identical(as.list(as.list),
+	  alist(x = , ... = , UseMethod("as.list")))
+
+## startsWith() / endsWith()  assertions
+t1 <- c("Foobar", "bla bla", "something", "another", "blu", "brown",
+        "blau blüht der Enzian")# non-ASCII
+t2 <- c("some text", "any text")
+t3 <- c("Martin", "Zürich", "Mächler")
+
+all(endsWith(t1, "")); all(startsWith(t1, ""))
+all(endsWith(t2, "")); all(startsWith(t2, ""))
+all(endsWith(t3, "")); all(startsWith(t3, ""))
+all(endsWith(t2, "text"))
+all(endsWith(t2, " text"))
+identical(startsWith(t1, "b" ), c(FALSE, TRUE, FALSE, FALSE, TRUE,  TRUE, TRUE))
+identical(startsWith(t1, "bl"), c(FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE))
+identical(startsWith(t1, "bla"),c(FALSE, TRUE, FALSE, FALSE,FALSE, FALSE, TRUE))
+identical(  endsWith(t1, "n"),  c(FALSE,FALSE, FALSE, FALSE,FALSE,  TRUE, TRUE))
+identical(  endsWith(t1, "an"), c(FALSE,FALSE, FALSE, FALSE,FALSE, FALSE, TRUE))
+##
+identical(startsWith(t3, "M" ), c( TRUE, FALSE, TRUE))
+identical(startsWith(t3, "Ma"), c( TRUE, FALSE, FALSE))
+identical(startsWith(t3, "Mä"), c(FALSE, FALSE, TRUE))
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/p-qbeta-strict-tst.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/p-qbeta-strict-tst.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/p-qbeta-strict-tst.R	(revision 2476)
@@ -0,0 +1,323 @@
+options(warn = 2)# warnings are errors here
+
+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 in R-devel, not in R 3.1.x (patched)
+## 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... maybe should *NOT* use log_x- i.e. u-scale!
+## MM: no: the problem is rather that it does not swap where it should!
+(pq <- pbeta(qx, a,b, log=TRUE))
+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)
+
+# as is this one -- the mirror image:
+(x. <- log1p(-exp(x))) #  -2.160156e-15
+(q2 <- qbeta(x., b,a, log=TRUE)) ## => swap_tail=TRUE, and the same 157 outer iter.
+p2 <- pbeta(q2,  b,a, log=TRUE)
+1 - p2/x. #- 2.64233 e-14
+
+curve(pbeta(x, b,a, log=TRUE), 1e-30, 1e-3, n=1025, log="x")
+curve(pbeta(x, b,a, log=TRUE), 1e-7, 1e-1, n=1025, log="x")
+curve(pbeta(x, b,a, log=TRUE), .0001, .5, n=1025, log="x")
+curve(pbeta(x, b,a, log=TRUE), .001, .5, n=1025, log="x")
+# Flip vertically and use log scale ==> "close" to  x. ~= -2.160156e-15
+curve(-pbeta(x, b,a, log=TRUE), .00001, .002, n=1025, log="xy")
+
+### 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)
+
+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!
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/iec60559.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/iec60559.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/iec60559.R	(revision 2476)
@@ -0,0 +1,18 @@
+## Tests for various features of IEC60559 doubles.
+## Most of these are optional, so this is a sloppy test.
+
+# Goes to denormal (aka subnormal) numbers at -708.4
+exp(c(-745:-740, -730, -720, -710:-705))
+
+# goes to subnormal numbers at -308, to zero at ca 5e-324.
+10^-(324:307)
+2^-(1022:1075)
+
+# And because most libm pow() functions special-case integer powers.
+10^-(324:307-0.01)/10^0.01
+
+# IEC60559 mandates this, but C99/C11 do not.
+# Mingw-w64 did not do so in v 2.0.1
+x <- 0*(-1) # negative zero
+sqrt(x)
+identical(x, sqrt(x))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/encodings.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/encodings.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/encodings.R	(revision 2476)
@@ -0,0 +1,27 @@
+## from iconv.Rd
+(x <- "fa\xE7ile")
+charToRaw(xx <- iconv(x, "latin1", "UTF-8"))
+
+iconv(x, "latin1", "ASCII")          #   NA
+iconv(x, "latin1", "ASCII", "?")     # "fa?ile"
+iconv(x, "latin1", "ASCII", "")      # "faile"
+iconv(x, "latin1", "ASCII", "byte")  # "fa<e7>ile"
+
+# Extracts from R help files
+(x <- c("Ekstr\xf8m", "J\xf6reskog", "bi\xdfchen Z\xfcrcher"))
+iconv(x, "latin1", "ASCII//TRANSLIT")
+iconv(x, "latin1", "ASCII", sub="byte")
+
+## tests of re-encoding in .C
+require("tools")
+x <- "fa\xE7ile"
+.C("Renctest", x, PACKAGE="tools")[[1]]
+.C("Renctest", x, PACKAGE="tools", ENCODING="latin1")[[1]]
+xx <- iconv(x, "latin1", "UTF-8")
+.C("Renctest", xx, PACKAGE="tools", ENCODING="UTF-8")[[1]]
+
+## tests of match length in delimMatch
+x <- c("a{bc}d", "{a\xE7b}")
+delimMatch(x)
+xx <- iconv(x, "latin1", "UTF-8")
+delimMatch(xx) ## 5 6 in latin1, 5 5 in UTF-8
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arith-true.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arith-true.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arith-true.Rout.save	(revision 2476)
@@ -0,0 +1,327 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ####=== Numerical / Arithmetic Tests
+> ####--- ALL tests here should return  TRUE !
+> ###
+> ### '##P': These lines don't give TRUE but relevant ``Print output''
+> 
+> ### --> d-p-q-r-tests.R  for distribution things
+> 
+> .proctime00 <- proc.time()
+> opt.conformance <- 0
+> Meps <- .Machine $ double.eps
+> 
+> ## this uses random inputs, so set the seed
+> set.seed(1)
+> 
+> options(rErr.eps = 1e-30)
+> rErr <- function(approx, true, eps = .Options$rErr.eps)
++ {
++     if(is.null(eps)) { eps <- 1e-30; options(rErr.eps = eps) }
++     ifelse(Mod(true) >= eps,
++ 	   1 - approx / true, # relative error
++ 	   true - approx)     # absolute error (e.g. when true=0)
++ }
+> 
+> abs(1- .Machine$double.xmin * 10^(-.Machine$double.min.exp*log10(2)))/Meps < 1e3
+[1] TRUE
+> ##P (1- .Machine$double.xmin * 10^(-.Machine$double.min.exp*log10(2)))/Meps
+> if(opt.conformance)#fails at least on SGI/IRIX 6.5
++ abs(1- .Machine$double.xmax * 10^(-.Machine$double.max.exp*log10(2)))/Meps < 1e3
+> 
+> ## More IEEE  Infinity/NaN checks
+> i1 <- pi / 0
+> i1 == (i2 <- 1:1 / 0:0)
+[1] TRUE
+> is.infinite( i1) & is.infinite( i2) &   i1 > 12   &   i2 > 12
+[1] TRUE
+> is.infinite(-i1) & is.infinite(-i2) & (-i1) < -12 & (-i2) < -12
+[1] TRUE
+> 
+> is.nan(n1 <- 0 / 0)
+[1] TRUE
+> is.nan( - n1)
+[1] TRUE
+> 
+> i1 ==  i1 + i1
+[1] TRUE
+> i1 ==  i1 * i1
+[1] TRUE
+> is.nan(i1 - i1)
+[1] TRUE
+> is.nan(i1 / i1)
+[1] TRUE
+> 
+> 1/0 == Inf & 0 ^ -1 == Inf
+[1] TRUE
+> 1/Inf == 0 & Inf ^ -1 == 0
+[1] TRUE
+> 
+> iNA <- as.integer(NA)
+> !is.na(Inf) & !is.nan(Inf) &   is.infinite(Inf) & !is.finite(Inf)
+[1] TRUE
+> !is.na(-Inf)& !is.nan(-Inf)&   is.infinite(-Inf)& !is.finite(-Inf)
+[1] TRUE
+>  is.na(NA)  & !is.nan(NA)  &  !is.infinite(NA)  & !is.finite(NA)
+[1] TRUE
+>  is.na(NaN) &  is.nan(NaN) &  !is.infinite(NaN) & !is.finite(NaN)
+[1] TRUE
+>  is.na(iNA) & !is.nan(iNA) &  !is.infinite(iNA) & !is.finite(iNA)
+[1] TRUE
+> 
+> ## These are "double"s:
+> all(!is.nan(c(1.,NA)))
+[1] TRUE
+> all(c(FALSE,TRUE,FALSE) == is.nan(c   (1.,NaN,NA)))
+[1] TRUE
+> ## lists are no longer allowed
+> ## all(c(FALSE,TRUE,FALSE) == is.nan(list(1.,NaN,NA)))
+> 
+> 
+> ##  log() and "pow()" -- POSIX is not specific enough..
+> log(0) == -Inf
+[1] TRUE
+> is.nan(log(-1))# TRUE and warning
+[1] TRUE
+Warning message:
+In log(-1) : NaNs produced
+> 
+> rp <- c(1:2,Inf); rn <- rev(- rp)
+> r <- c(rn, 0, rp, NA, NaN)
+> all(r^0 == 1)
+[1] TRUE
+> ir <- suppressWarnings(as.integer(r))
+> all(ir^0  == 1)
+[1] TRUE
+> all(ir^0L == 1)# not in R <= 2.15.0
+[1] TRUE
+> all( 1^r  == 1)# not in R 0.64
+[1] TRUE
+> all(1L^r  == 1)
+[1] TRUE
+> all(1L^ir == 1)# not in R <= 2.15.0
+[1] TRUE
+> all((rn ^ -3) == -((-rn) ^ -3))
+[1] TRUE
+> #
+> all(c(1.1,2,Inf) ^ Inf == Inf)
+[1] TRUE
+> all(c(1.1,2,Inf) ^ -Inf == 0)
+[1] TRUE
+> .9 ^ Inf == 0
+[1] TRUE
+> .9 ^ -Inf == Inf
+[1] TRUE
+> ## Wasn't ok in 0.64:
+> all(is.nan(rn ^ .5))# in some C's : (-Inf) ^ .5 gives Inf, instead of NaN
+[1] TRUE
+> 
+> 
+> ## Real Trig.:
+> cos(0) == 1
+[1] TRUE
+> sin(3*pi/2) == cos(pi)
+[1] TRUE
+> x <- rnorm(99)
+> all( sin(-x) == - sin(x))
+[1] TRUE
+> all( cos(-x) == cos(x))
+[1] TRUE
+> 
+> x <- 1:99/100
+> all(abs(1 - x / asin(sin(x))) <= 2*Meps)# "== 2*" for HP-UX
+[1] TRUE
+> all(abs(1 - x / atan(tan(x))) <  2*Meps)
+[1] TRUE
+> 
+> ## Sun has asin(.) = acos(.) = 0 for these:
+> ##	is.nan(acos(1.1)) && is.nan(asin(-2)) [!]
+> 
+> ## gamma()
+> abs(gamma(1/2)^2 - pi) < 4* Meps
+[1] TRUE
+> r <- rlnorm(5000) # NB random, and next has failed for some seed
+> all(abs(rErr(gamma(r+1), r*gamma(r))) < 500 * Meps)
+[1] TRUE
+> ## more accurate for integers n <= 50 since R 1.8.0	Sol8: perfect
+> n <-   20; all(		 gamma(1:n) == cumprod(c(1,1:(n-1))))# Lnx: up too n=28
+[1] TRUE
+> n <-   50; all(abs(rErr( gamma(1:n), cumprod(c(1,1:(n-1))))) < 20*Meps)#Lnx: f=2
+[1] TRUE
+> n <-  120; all(abs(rErr( gamma(1:n), cumprod(c(1,1:(n-1))))) < 1000*Meps)
+[1] TRUE
+> n <- 10000;all(abs(rErr(lgamma(1:n),cumsum(log(c(1,1:(n-1)))))) < 100*Meps)
+[1] TRUE
+> 
+> n <-   10; all(		 gamma(1:n) == cumprod(c(1,1:(n-1))))
+[1] TRUE
+> n <-   20; all(abs(rErr( gamma(1:n), cumprod(c(1,1:(n-1))))) < 100*Meps)
+[1] TRUE
+> n <-  120; all(abs(rErr( gamma(1:n), cumprod(c(1,1:(n-1))))) < 1000*Meps)
+[1] TRUE
+> n <- 10000;all(abs(rErr(lgamma(1:n),cumsum(log(c(1,1:(n-1)))))) < 100*Meps)
+[1] TRUE
+> 
+> all(is.nan(gamma(0:-47))) # + warn.
+[1] TRUE
+Warning message:
+In gamma(0:-47) : NaNs produced
+> 
+> ## choose() {and lchoose}:
+> n51 <- c(196793068630200, 229591913401900, 247959266474052)
+> abs(c(n51, rev(n51))- choose(51, 23:28)) <= 2
+[1] TRUE TRUE TRUE TRUE TRUE TRUE
+> all(choose(0:4,2) == c(0,0,1,3,6))
+[1] TRUE
+> ## 3 to 8 units off and two NaN's in 1.8.1
+> 
+> ## psi[gamma](x) and derivatives:
+> ## psi == digamma:
+> gEuler <- 0.577215664901532860606512# = Euler's gamma
+> abs(digamma(1) + gEuler) <   32*Meps # i386 Lx: = 2.5*Meps
+[1] TRUE
+> all.equal(digamma(1) - digamma(1/2), log(4), tolerance = 32*Meps)# Linux: < 1*Meps!
+[1] TRUE
+> n <- 1:12
+> all.equal(digamma(n),
++          - gEuler + c(0, cumsum(1/n)[-length(n)]),tolerance = 32*Meps)#i386 Lx: 1.3 Meps
+[1] TRUE
+> all.equal(digamma(n + 1/2),
++           - gEuler - log(4) + 2*cumsum(1/(2*n-1)),tolerance = 32*Meps)#i386 Lx: 1.8 Meps
+[1] TRUE
+> ## higher psigamma:
+> all.equal(psigamma(1, deriv=c(1,3,5)),
++           pi^(2*(1:3)) * c(1/6, 1/15, 8/63), tolerance = 32*Meps)
+[1] TRUE
+> x <- c(-100,-3:2, -99.9, -7.7, seq(-3,3, length=61), 5.1, 77)
+> ## Intel icc showed a < 1ulp difference in the second.
+> stopifnot(all.equal( digamma(x), psigamma(x,0), tolerance = 2*Meps),
++           all.equal(trigamma(x), psigamma(x,1), tolerance = 2*Meps))# TRUE (+ NaN warnings)
+Warning messages:
+1: In digamma(x) : NaNs produced
+2: In psigamma(x, 0) : NaNs produced
+> ## very large x:
+> x <- 1e30 ^ (1:10)
+> a.relE <- function(appr, true) abs(1 - appr/true)
+> stopifnot(a.relE(digamma(x),   log(x)) < 1e-13,
++           a.relE(trigamma(x),     1/x) < 1e-13)
+> x <- sqrt(x[2:6]); stopifnot(a.relE(psigamma(x,2), - 1/x^2) < 1e-13)
+> x <- 10^(10*(2:6));stopifnot(a.relE(psigamma(x,5), +24/x^5) < 1e-13)
+> 
+> ## fft():
+> ok <- TRUE
+> ##test EXTENSIVELY:	for(N in 1:100) {
+>     cat(".")
+.>     for(n in c(1:30, 1000:1050)) {
++ 	x <- rnorm(n)
++ 	er <- Mod(rErr(fft(fft(x), inverse = TRUE)/n, x*(1+0i)))
++ 	n.ok <- all(er < 1e-8) & quantile(er, 0.95, names=FALSE) < 10000*Meps
++ 	if(!n.ok) cat("\nn=",n,": quantile(rErr, c(.95,1)) =",
++ 		      formatC(quantile(er, prob= c(.95,1))),"\n")
++ 	ok <- ok & n.ok
++     }
+>     cat("\n")
+
+> ##test EXTENSIVELY:	}
+> ok
+[1] TRUE
+> 
+> ## var():
+> for(n in 2:10)
++     print(all.equal(n*(n-1)*var(diag(n)),
++ 		    matrix(c(rep(c(n-1,rep(-1,n)),n-1), n-1), nr=n, nc=n),
++ 		    tolerance = 20*Meps)) # use tolerance = 0 to see rel.error
+[1] TRUE
+[1] TRUE
+[1] TRUE
+[1] TRUE
+[1] TRUE
+[1] TRUE
+[1] TRUE
+[1] TRUE
+[1] TRUE
+> 
+> ## pmin() & pmax() -- "attributes" !
+> v1 <- c(a=2)
+> m1 <- cbind(  2:4,3)
+> m2 <- cbind(a=2:4,2)
+> 
+> all( pmax(v1, 1:3) == pmax(1:3, v1) & pmax(1:3, v1) == c(2,2,3))
+[1] TRUE
+> all( pmin(v1, 1:3) == pmin(1:3, v1) & pmin(1:3, v1) == c(1,2,2))
+[1] TRUE
+> 
+> oo <- options(warn = -1)# These four lines each would give 3-4 warnings :
+>  all( pmax(m1, 1:7) == pmax(1:7, m1) & pmax(1:7, m1) == c(2:4,4:7))
+[1] TRUE
+>  all( pmin(m1, 1:7) == pmin(1:7, m1) & pmin(1:7, m1) == c(1:3,3,3,3,2))
+[1] TRUE
+>  all( pmax(m2, 1:7) == pmax(1:7, m2) & pmax(1:7, m2) == pmax(1:7, m1))
+[1] TRUE
+>  all( pmin(m2, 1:7) == pmin(1:7, m2) & pmin(1:7, m2) == c(1:3,2,2,2,2))
+[1] TRUE
+> options(oo)
+> 
+> ## pretty()
+> stopifnot(pretty(1:15)	    == seq(0,16, by=2),
++ 	  pretty(1:15, h=2) == seq(0,15, by=5),
++ 	  pretty(1)	    == 0:1,
++ 	  pretty(pi)	    == c(2,4),
++ 	  pretty(pi, n=6)   == 2:4,
++ 	  pretty(pi, n=10)  == 2:5,
++ 	  pretty(pi, shr=.1)== c(3, 3.5))
+> 
+> ## gave infinite loop [R 0.64; Solaris], seealso PR#390 :
+> all(pretty((1-1e-5)*c(1,1+3*Meps), 7) == seq(0,1,len=3))
+[1] TRUE
+> 
+> n <- 1000
+> x12 <- matrix(NA, 2,n); x12[,1] <- c(2.8,3) # Bug PR#673
+> for(j in 1:2) x12[j, -1] <- round(rnorm(n-1), dig = rpois(n-1, lam=3.5) - 2)
+> for(i in 1:n) {
++     lp <- length(p <- pretty(x <- sort(x12[,i])))
++     stopifnot(p[1] <= x[1] & x[2] <= p[lp],
++               all(x==0) || all.equal(p, rev(-pretty(-x)), tolerance = 10*Meps))
++ }
+> 
+> ## PR#741:
+> pi != (pi0 <- pi + 2*.Machine$double.eps)
+[1] TRUE
+> is.na(match(c(1,pi,pi0), pi)[3])
+[1] TRUE
+> 
+> ## PR#749:
+> all(is.na(c(NA && TRUE, TRUE  && NA, NA && NA,
++             NA || FALSE,FALSE || NA, NA || NA)))
+[1] TRUE
+> 
+> all((c(NA || TRUE,  TRUE || NA,
++     !c(NA && FALSE,FALSE && NA))))
+[1] TRUE
+> 
+> 
+> ## not sure what the point of this is: it gives mean(numeric(0)), that is NaN
+> (z <- mean(rep(NA_real_, 2), trim = .1, na.rm = TRUE))
+[1] NaN
+> is.na(z)
+[1] TRUE
+> 
+> ## Last Line:
+> cat('Time elapsed: ', proc.time() - .proctime00,'\n')
+Time elapsed:  0.194 0.002 0.196 0 0 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-1a.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-1a.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-1a.R	(revision 2476)
@@ -0,0 +1,4847 @@
+## Up to PR#9999 for R < 3.0.0
+
+pdf("reg-tests-1a.pdf", encoding = "ISOLatin1.enc")
+
+## force standard handling for data frames
+options(stringsAsFactors=TRUE)
+## .Machine
+(Meps <- .Machine$double.eps)# and use it in this file
+## Facilitate diagnosing of testing startup:
+envLst <- c(t(outer(c("R_ENVIRON","R_PROFILE"), c("","_USER"), paste0)),
+	    "R_CHECK_ENVIRON","R_LIBS")
+cbind(Sys.getenv(envLst))
+.libPaths()
+
+assertError <- tools::assertError
+
+## regression test for PR#376
+aggregate(ts(1:20), nfreq=1/3)
+## Comments: moved from aggregate.Rd
+
+
+## aperm
+# check the names
+x <- array(1:24, c(4, 6))
+nms <- list(happy=letters[1:4], sad=LETTERS[1:6])
+
+dimnames(x) <- nms
+tmp <- aperm(x, c(2, 1))
+stopifnot(all.equal(dimnames(tmp), nms[c(2, 1)]))
+
+dimnames(x) <- c(nms[1], list(NULL))
+tmp <- aperm(x, c(2, 1))
+stopifnot(all.equal(dimnames(tmp), c(list(NULL), nms[1])))
+
+names(nms) <- c("happy", "sad")
+dimnames(x) <- nms
+tmp <- aperm(x, c(2, 1))
+stopifnot(all.equal(names(dimnames(tmp)), names(nms[c(2, 1)])))
+
+dimnames(x) <- c(nms[1], list(NULL))
+tmp <- aperm(x, c(2, 1))
+stopifnot(all.equal(names(dimnames(tmp)), c("", names(nms)[1])))
+
+# check resize
+stopifnot(dim(aperm(x, c(2, 1), FALSE)) == dim(x))
+stopifnot(is.null(dimnames(aperm(x, c(2, 1), FALSE))))
+
+# check the types
+x <- array(1:24, c(4, 6))
+stopifnot(all.equal(aperm(x, c(2, 1)), t(x)))
+stopifnot(is.integer(aperm(x, c(2, 1))))
+
+x <- x + 0.0
+stopifnot(all.equal(aperm(x, c(2, 1)), t(x)))
+stopifnot(is.double(aperm(x, c(2, 1))))
+
+x <- x + 0.0i
+stopifnot(all.equal(aperm(x, c(2, 1)), t(x)))
+
+x[] <- LETTERS[1:24]
+stopifnot(all.equal(aperm(x, c(2, 1)), t(x)))
+
+x <- array(list("fred"), c(4, 6))
+x[[3, 4]] <- 1:10
+stopifnot(all.equal(aperm(x, c(2, 1)), t(x)))
+## end of moved from aperm.Rd
+
+
+## append
+stopifnot(append(1:5, 0:1, after=3) == append(1:3, c(0:1, 4:5)))
+## end of moved from append.Rd
+
+
+## array
+# funny object, but whatever was the point of that?
+utils::str(array(1:3, 0))
+## end of moved from array.Rd
+
+
+## as.POSIXlt
+z <- Sys.time()
+stopifnot(range(z) == z,
+	  min(z) == z,
+	  max(z) == z,
+	  mean(z) == z)
+## end of moved from as.POSIXlt.Rd
+
+
+## autoload
+stopifnot(ls("Autoloads") == ls(envir = .AutoloadEnv))
+## end of moved from autoload.Rd
+
+
+## axis
+Y <- c(10.50, 4.0, 13.75, 7.25)
+plot(1:4, Y, xlim=c(0,5), ylim=c(0,15))
+axis(side=4, at=Y, labels=LETTERS[1:4])
+## end of moved from axis.Rd
+
+
+## backsolve
+r <- rbind(c(1,2,3),
+	   c(0,1,1),
+	   c(0,0,2))
+( y <- backsolve(r, x <- c(8,4,2)) ) # -1 3 1
+r %*% y # == x = (8,4,2)
+( y2 <- backsolve(r, x, transpose = TRUE)) # 8 -12 -5
+stopifnot(all.equal(drop(t(r) %*% y2), x))
+stopifnot(all.equal(y, backsolve(t(r), x, upper = FALSE, transpose = TRUE)))
+stopifnot(all.equal(y2, backsolve(t(r), x, upper = FALSE, transpose = FALSE)))
+## end of moved from backsolve.Rd
+
+
+## basename
+dirname(character(0))
+## end of moved from basename.Rd
+
+
+## Bessel
+## Check the Scaling :
+nus <- c(0:5,10,20)
+x <- seq(0,40,len=801)[-1]
+for(nu in nus)
+   stopifnot(abs(1- besselK(x,nu)*exp( x) / besselK(x,nu,expo=TRUE)) < 2e-15)
+for(nu in nus)
+   stopifnot(abs(1- besselI(x,nu)*exp(-x) / besselI(x,nu,expo=TRUE)) < 1e-15)
+## end of moved from Bessel.Rd
+
+
+## c
+ll <- list(A = 1, c="C")
+stopifnot(identical(c(ll, d=1:3), c(ll, as.list(c(d=1:3)))))
+## moved from c.Rd
+
+
+## Cauchy
+stopifnot(all.equal(dcauchy(-1:4), 1 / (pi*(1 + (-1:4)^2))))
+## end of moved from Cauchy.Rd
+
+
+## chol
+( m <- matrix(c(5,1,1,3),2,2) )
+( cm <- chol(m) )
+stopifnot(abs(m	 -  t(cm) %*% cm) < 100* Meps)
+
+## check with pivoting
+( m <- matrix(c(5,1,1,3),2,2) )
+( cm <- chol(m, TRUE) )
+stopifnot(abs(m	 -  t(cm) %*% cm) < 100* Meps)
+
+x <- matrix(c(1:5, (1:5)^2), 5, 2)
+m <- crossprod(x)
+Q <- chol(m)
+stopifnot(all.equal(t(Q) %*% Q, m))
+
+Q <- chol(m, pivot = TRUE)
+pivot <- attr(Q, "pivot")
+oo <- order(pivot)
+stopifnot(all.equal(t(Q[, oo]) %*% Q[, oo], m))
+stopifnot(all.equal(t(Q) %*% Q, m[pivot, pivot]))
+
+# now for something positive semi-definite
+x <- cbind(x, x[, 1]+3*x[, 2])
+m <- crossprod(x)
+qr(m)$rank # is 2, as it should be
+
+(Q <- chol(m, pivot = TRUE)) # NB wrong rank here ... see Warning section.
+pivot <- attr(Q, "pivot")
+oo <- order(pivot)
+stopifnot(all.equal(t(Q[, oo]) %*% Q[, oo], m))
+stopifnot(all.equal(t(Q) %*% Q, m[pivot, pivot]))
+## end of moved from chol.Rd
+
+
+## chol2inv
+cma <- chol(ma	<- cbind(1, 1:3, c(1,3,7)))
+stopifnot(all.equal(diag(3), ma %*% chol2inv(cma)))
+## end of moved from chol2inv.Rd
+
+
+## col2rgb
+pp <- palette(); names(pp) <- pp # add & use names :
+stopifnot(col2rgb(1:8) == print(col2rgb(pp)))
+stopifnot(col2rgb("#08a0ff") == c(8, 160, 255))
+grC <- col2rgb(paste("gray",0:100,sep=""))
+stopifnot(grC["red",] == grC["green",],
+	  grC["red",] == grC["blue",],
+	  grC["red", 1:4] == c(0,3,5,8))
+## end of moved from col2rgb.Rd
+
+
+## colnames
+m0 <- matrix(NA, 4, 0)
+rownames(m0, do.NULL = FALSE)
+colnames(m0, do.NULL = FALSE)
+## end of moved from colnames.Rd
+
+
+## Constants
+stopifnot(
+ nchar(letters) == 1,
+ month.abb == substr(month.name, 1, 3)
+)
+
+stopifnot(all.equal(pi, 4*atan(1), tol= 2*Meps))
+
+# John Machin (1705) computed 100 decimals of pi :
+stopifnot(all.equal(pi/4, 4*atan(1/5) - atan(1/239), 4*Meps))
+## end of moved from Constants.Rd
+
+
+## cor
+stopifnot(  is.na(var(1)),
+	  !is.nan(var(1)))
+
+zz <- c(-1.30167, -0.4957, -1.46749, 0.46927)
+r <- cor(zz,zz); r - 1
+stopifnot(r <= 1) # fails in R <= 1.3.x, for versions of Linux and Solaris
+## end of moved from cor.Rd
+## Spearman correlations ranked missing values at end <= 1.8.1
+X <- cbind(c(1,3,4,NA),c(1,4,2,NA))
+X1 <- X[-4,]
+stopifnot(all.equal(cor(X,X,method="spearman",use="complete"),
+                    cor(X1,X1,method="spearman",use="complete")))
+stopifnot(all.equal(cov(X,X,method="spearman",use="complete"),
+                    cov(X1,X1,method="spearman",use="complete")))
+
+## DateTimeClasses
+(dls <- .leap.seconds[-1] - .leap.seconds[-22])
+table(dls)
+## end of moved from DateTimeClasses.Rd
+
+
+## deriv
+trig.exp <- expression(sin(cos(x + y^2)))
+D.sc <- D(trig.exp, "x")
+dxy <- deriv(trig.exp, c("x", "y"))
+y <- 1
+stopifnot(eval(D.sc) ==
+	  attr(eval(dxy),"gradient")[,"x"])
+ff <- y ~ sin(cos(x) * y)
+stopifnot(all.equal(deriv(ff, c("x","y"), func = TRUE ),
+		    deriv(ff, c("x","y"), func = function(x,y){ } )))
+## end of moved from deriv.Rd
+
+
+## diff
+x <- cumsum(cumsum(1:10))
+stopifnot(diff(x, lag = 2) == x[(1+2):10] - x[1:(10 - 2)],
+	  diff(x, lag = 2) == (3:10)^2,
+	  diff(diff(x))	   == diff(x, differences = 2))
+## end of moved from diff.Rd
+
+
+## duplicated
+x <- c(9:20, 1:5, 3:7, 0:8)
+## extract unique elements
+(xu <- x[!duplicated(x)])
+stopifnot(xu == unique(x), # but unique(x) is more efficient
+	  0:20 == sort(x[!duplicated(x)]))
+
+stopifnot(duplicated(iris)[143] == TRUE)
+## end of moved from duplicated.Rd
+
+
+## eigen
+set.seed(321, kind = "default")	 # force a particular seed
+m <- matrix(round(rnorm(25),3), 5,5)
+sm <- m + t(m) #- symmetric matrix
+em <- eigen(sm); V <- em$vect
+print(lam <- em$values) # ordered DEcreasingly
+
+stopifnot(
+ abs(sm %*% V - V %*% diag(lam))	  < 60*Meps,
+ abs(sm	      - V %*% diag(lam) %*% t(V)) < 60*Meps)
+
+##------- Symmetric = FALSE:  -- different to above : ---
+
+em <- eigen(sm, symmetric = FALSE); V2 <- em$vect
+print(lam2 <- em$values) # ordered decreasingly in ABSolute value !
+print(i <- rev(order(lam2)))
+stopifnot(abs(lam - lam2[i]) < 100 * Meps) # comparing two solns
+
+zapsmall(Diag <- t(V2) %*% V2)
+stopifnot( abs(1- diag(Diag)) < 60*Meps)
+
+stopifnot(abs(sm %*% V2 - V2 %*% diag(lam2))		< 60*Meps,
+	  abs(sm	 - V2 %*% diag(lam2) %*% t(V2)) < 60*Meps)
+
+## Re-ordered as with symmetric:
+sV <- V2[,i]
+slam <- lam2[i]
+stopifnot(abs(sm %*% sV -  sV %*% diag(slam))		  < 60*Meps)
+stopifnot(abs(sm	-  sV %*% diag(slam) %*% t(sV)) < 60*Meps)
+## sV  *is* now equal to V  -- up to sign (+-) and rounding errors
+stopifnot(abs(c(1 - abs(sV / V)))	<     1000*Meps)
+## end of moved from eigen.Rd
+
+
+## euro
+stopifnot(euro == signif(euro,6), euro.cross == outer(1/euro, euro))
+## end of moved from euro.Rd
+
+
+## Exponential
+r <- rexp(100)
+stopifnot(abs(1 - dexp(1, r) / (r*exp(-r))) < 1e-14)
+## end of moved from Exponential.Rd
+
+
+## family
+gf <- Gamma()
+stopifnot(1:10 == gf$linkfun(gf$linkinv(1:10)))
+## end of moved from family.Rd
+
+
+## fft
+set.seed(123)
+eps <- 1e-10  # typically see around 1e-11
+for(N in 1:130) {
+    x <- rnorm(N)
+    if(N %% 5 == 0) {
+	m5 <- matrix(x,ncol=5)
+	stopifnot(apply(m5,2,fft) == mvfft(m5))
+    }
+    dd <- Mod(1 - (f2 <- fft(fft(x), inverse=TRUE)/(x*length(x))))
+    stopifnot(dd < eps)
+}
+## end of moved from fft.Rd
+
+
+## findint
+N <- 100
+X <- sort(round(rt(N, df=2), 2))
+tt <- c(-100, seq(-2,2, len=201), +100)
+it <- findInterval(tt, X)
+
+## See that this is N * Fn(.) :
+tt <- c(tt,X)
+stopifnot(it[c(1,203)] == c(0, 100),
+	  all.equal(N * stats::ecdf(X)(tt),
+		    findInterval(tt, X),  tol = 100 * Meps),
+	  findInterval(tt,X) ==	 apply( outer(tt, X, ">="), 1, sum)
+	  )
+## end of moved from findint.Rd
+## NA & Inf's :
+tt[ina <- c(2,3,5,7)] <- NA
+tt[300] <- Inf
+X <- c(-Inf, X, Inf)
+it <- findInterval(tt,X)
+stopifnot(identical(it, as.integer(rowSums(outer(tt, X, ">=")))),
+	  is.na(it[ina]))
+
+
+## fix
+oo <- options(editor="touch") # not really changing anything
+fix(pi)
+if(!is.numeric(pi) || length(pi)!=1 ||
+   !is.null(attributes(pi)) || abs(pi - 3.1415) > 1e-4)
+      stop("OOPS:  fix() is broken ...")
+rm(pi); options(oo)
+## end of moved from fix.Rd
+
+
+## format
+(dd <- sapply(1:10, function(i)paste((9:0)[1:i],collapse="")))
+np <- nchar(pd <- prettyNum(dd, big.mark="'"))
+stopifnot(sapply(0:2, function(m)
+	   all(grep("'", substr(pd, 1, np - 4*m)) == (4+3*m):10)))
+## end of moved from format.Rd
+
+
+## Geometric
+pp <- sort(c((1:9)/10, 1 - .2^(2:8)))
+print(qg <- qgeom(pp, prob = .2))
+## test that qgeom is an inverse of pgeom
+print(qg1 <- qgeom(pgeom(qg, prob=.2), prob =.2))
+stopifnot(identical(qg, qg1))
+## moved from Geometric.Rd
+
+
+## glm
+## these are the same -- example from Jim Lindsey
+y <- rnorm(20)
+y1 <- y[-1]; y2 <- y[-20]
+summary(g1 <- glm(y1 - y2 ~ 1))
+summary(g2 <- glm(y1 ~ offset(y2)))
+Eq <- function(x,y) all.equal(x,y, tol = 1e-12)
+stopifnot(Eq(coef(g1), coef(g2)),
+	  Eq(deviance(g1), deviance(g2)),
+	  Eq(resid(g1), resid(g2)))
+## from logLik.glm.Rd
+anorexia <-
+structure(list(Treat = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L,
+2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
+2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
+1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
+3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
+3L), .Label = c("CBT", "Cont", "FT"), class = "factor"), Prewt = c(80.7,
+89.4, 91.8, 74, 78.1, 88.3, 87.3, 75.1, 80.6, 78.4, 77.6, 88.7,
+81.3, 78.1, 70.5, 77.3, 85.2, 86, 84.1, 79.7, 85.5, 84.4, 79.6,
+77.5, 72.3, 89, 80.5, 84.9, 81.5, 82.6, 79.9, 88.7, 94.9, 76.3,
+81, 80.5, 85, 89.2, 81.3, 76.5, 70, 80.4, 83.3, 83, 87.7, 84.2,
+86.4, 76.5, 80.2, 87.8, 83.3, 79.7, 84.5, 80.8, 87.4, 83.8, 83.3,
+86, 82.5, 86.7, 79.6, 76.9, 94.2, 73.4, 80.5, 81.6, 82.1, 77.6,
+83.5, 89.9, 86, 87.3), Postwt = c(80.2, 80.1, 86.4, 86.3, 76.1,
+78.1, 75.1, 86.7, 73.5, 84.6, 77.4, 79.5, 89.6, 81.4, 81.8, 77.3,
+84.2, 75.4, 79.5, 73, 88.3, 84.7, 81.4, 81.2, 88.2, 78.8, 82.2,
+85.6, 81.4, 81.9, 76.4, 103.6, 98.4, 93.4, 73.4, 82.1, 96.7,
+95.3, 82.4, 72.5, 90.9, 71.3, 85.4, 81.6, 89.1, 83.9, 82.7, 75.7,
+82.6, 100.4, 85.2, 83.6, 84.6, 96.2, 86.7, 95.2, 94.3, 91.5,
+91.9, 100.3, 76.7, 76.8, 101.6, 94.9, 75.2, 77.8, 95.5, 90.7,
+92.5, 93.8, 91.7, 98)), .Names = c("Treat", "Prewt", "Postwt"
+), class = "data.frame", row.names = 1:72)
+anorex.1 <- glm(Postwt ~ Prewt + Treat + offset(Prewt),
+	    family = gaussian, data = anorexia)
+summary(anorex.1)
+Eq <- function(x,y) all.equal(x,y, tol = 1e-12)
+stopifnot(Eq(AIC(anorex.1), anorex.1$aic),
+	  Eq(AIC(g1), g1$aic),
+	  Eq(AIC(g2), g2$aic))
+## next was wrong in 1.4.1
+x <- 1:10
+lmx <- logLik(lm(x ~ 1)); glmx <- logLik(glm(x ~ 1))
+stopifnot(all.equal(as.vector(lmx), as.vector(glmx)),
+	  all.equal(attr(lmx, 'df'), attr(glmx, 'df')))
+## end of moved from glm.Rd and logLik.glm.Rd
+
+
+## Hyperbolic
+x <- seq(-3, 3, len=200)
+stopifnot(
+ abs(cosh(x) - (exp(x) + exp(-x))/2) < 20*Meps,
+ abs(sinh(x) - (exp(x) - exp(-x))/2) < 20*Meps,
+ abs(tanh(x)*cosh(x) - sinh(x)) < 20*Meps
+)
+
+stopifnot(abs(asinh(sinh(x)) - x) < 20*Meps)
+stopifnot(abs(acosh(cosh(x)) - abs(x)) < 1000*Meps) #- imprecise for small x
+stopifnot(abs(atanh(tanh(x)) - x) < 100*Meps)
+
+stopifnot(abs(asinh(x) - log(x + sqrt(x^2 + 1))) < 100*Meps)
+cx <- cosh(x)
+stopifnot(abs(acosh(cx) - log(cx + sqrt(cx^2 - 1))) < 1000*Meps)
+## end of moved from Hyperbolic.Rd
+
+
+## image
+## Degenerate, should still work
+image(as.matrix(1))
+image(matrix(pi,2,4))
+x <- seq(0,1,len=100)
+image(x, 1, matrix(x), col=heat.colors(10))
+image(x, 1, matrix(x), col=heat.colors(10), oldstyle = TRUE)
+image(x, 1, matrix(x), col=heat.colors(10), breaks = seq(0.1,1.1,len=11))
+## end of moved from image.Rd
+
+
+## integrate
+(ii <- integrate(dnorm, -1.96, 1.96))
+(i1 <- integrate(dnorm, -Inf, Inf))
+stopifnot(all.equal(0.9500042097, ii$val, tol = ii$abs.err, scale=1),
+	  all.equal( 1,		  i1$val, tol = i1$abs.err, scale=1))
+
+integrand <- function(x) {1/((x+1)*sqrt(x))}
+(ii <- integrate(integrand, lower = 0, upper = Inf, rel.tol = 1e-10))
+stopifnot(all.equal(pi, ii$val, tol = ii$abs.err, scale=1))
+## end of moved from integrate.Rd
+
+
+## is.finite
+( weird.values <- c(-20.9/0, 1/0, 0/0, NA) )
+
+Mmax <- .Machine$double.xmax
+Mmin <- .Machine$double.xmin
+( X.val <- c(Mmin*c(2^(-10:3),1e5,1e10),
+	     Mmax*c(1e-10,1e-5,2^(-3:0),1.001)) )
+( tst.val <- sort(c(X.val, weird.values), na.last = TRUE) )
+( x2 <- c(-1:1/0,pi,1,NA) )
+( z2 <- c(x2, 1+1i, Inf -Inf* 1i) )
+
+is.inf <-
+  function(x) (is.numeric(x) || is.complex(x)) && !is.na(x) && !is.finite(x)
+
+for(x in list(tst.val, x2, z2))
+  print(cbind(format(x), is.infinite=format(is.infinite(x))), quote=FALSE)
+
+rbind(is.nan(tst.val),
+      is.na (tst.val))
+tst.val [ is.nan(tst.val) !=  is.na(tst.val) ]
+
+stopifnot(
+    is.na(0/0),
+    !is.na(Inf),
+    is.nan(0/0),
+
+    !is.nan(NA)	 &&  !is.infinite(NA)  && !is.finite(NA),
+     is.nan(NaN) &&  !is.infinite(NaN) && !is.finite(NaN),
+    !is.nan(c(1,NA)),
+    c(FALSE,TRUE,FALSE) == is.nan(c   (1,NaN,NA))
+)
+assertError(is.nan(list(1,NaN,NA))) #-> result allowed but varies in older versions
+
+
+stopifnot(identical(lgamma(Inf), Inf))
+stopifnot(identical(Inf + Inf, Inf))
+stopifnot(identical(Inf - Inf, NaN))
+stopifnot(identical((1/0) * (1/0), Inf))
+stopifnot(identical((1/0) / (1/0), NaN))
+stopifnot(identical(exp(-Inf), 0))
+stopifnot(identical(log(0), -Inf))
+stopifnot(identical((-1)/0, -Inf))
+pm <- c(-1,1) # 'pm' = plus/minus
+stopifnot(atan(Inf*pm) == pm*pi/2)
+## end of moved from is.finite.Rd
+
+
+## kronecker
+( M <- matrix(1:6, ncol=2) )
+stopifnot(kronecker(4, M)==4 * M)
+# Block diagonal matrix:
+stopifnot(kronecker(diag(1, 3), M) == diag(1, 3) %x% M)
+## end of moved from kronecker.Rd
+
+
+## list
+str(pl <- as.pairlist(ps.options()))
+
+## These are all TRUE:
+stopifnot(is.list(pl) && is.pairlist(pl),
+          !is.null(list()),
+          is.null(pairlist()),
+          !is.list(NULL),
+          is.pairlist(pairlist()),
+          is.null(as.pairlist(list())),
+          is.null(as.pairlist(NULL))
+          )
+## end of moved from list.Rd
+
+
+## log
+stopifnot(all.equal(log(1:10), log(1:10, exp(1))))
+stopifnot(all.equal(log10(30), log(30, 10)))
+stopifnot(all.equal(log2(2^pi), 2^log2(pi)))
+stopifnot(Mod(pi - log(exp(pi*1i)) / 1i) < 10* Meps)
+stopifnot(Mod(1+exp(pi*1i)) < 10* Meps)
+## end of moved from Log.Rd
+
+
+## logistic
+eps <- 100 * Meps
+x <- c(0:4, rlogis(100))
+stopifnot(all.equal(plogis(x),	1 / (1 + exp(-x)), tol = eps))
+stopifnot(all.equal(plogis(x, lower=FALSE),  exp(-x)/ (1 + exp(-x)), tol = eps))
+stopifnot(all.equal(plogis(x, lower=FALSE, log=TRUE), -log(1 + exp(x)),
+		    tol = eps))
+stopifnot(all.equal(dlogis(x), exp(x) * (1 + exp(x))^-2, tol = eps))
+## end of moved from Logistic.Rd
+
+
+## Lognormal
+x <- rlnorm(1000)	# not yet always :
+stopifnot(abs(x	 -  qlnorm(plnorm(x))) < 1e4 * Meps * x)
+## end of moved from Lognormal.Rd
+
+
+## lower.tri
+ma <- matrix(1:20, 4, 5)
+stopifnot(lower.tri(ma) == !upper.tri(ma, diag=TRUE))
+## end of moved from lower.tri.Rd
+
+
+## make.names
+stopifnot(make.names(letters) == letters)
+## end of make.names
+
+
+## mean
+x <- c(0:10, 50)
+stopifnot(all.equal(mean(x, trim = 0.5), median(x)))
+## moved from mean.Rd
+
+
+## Multinom
+N <- 20
+pr <- c(1,3,6,10) # normalization not necessary for generation
+set.seed(153)
+rr <- rmultinom(5000, N, prob = pr)
+stopifnot(colSums(rr) == N)
+(m <- rowMeans(rr))
+all.equal(m, N * pr/sum(pr)) # rel.error ~0.003
+stopifnot(max(abs(m/(N*pr/sum(pr)) - 1)) < 0.01)
+
+(Pr <- dmultinom(c(0,0,3), prob = c(1, 1, 14)))
+stopifnot(all.equal(Pr, dbinom(3, 3, p = 14/16)))
+
+X <- t(as.matrix(expand.grid(0:3, 0:3)))
+X <- X[, colSums(X) <= 3]
+X <- rbind(X, 3:3 - colSums(X))
+for(p in list(c(1,2,5), 1:3, 3:1, 2:0, 0:2, c(1,2,1), c(0,0,1))) {
+  px <- apply(X, 2, function(x) dmultinom(x, prob = p))
+  stopifnot(all.equal(sum(px), 1))
+}
+## end of moved from Multinom.Rd
+
+
+## Poisson
+dpois(c(0, 1, 0.17, 0.77), 1)
+## end of moved from Poisson.Rd
+
+
+## qr
+## tests of complex case
+set.seed(1)
+A <- matrix(rnorm(25), 5, 5, dimnames=list(1:5, letters[1:5]))
+qr.solve(A, 1:5)
+A[] <- as.complex(A)
+qr.coef(qr(A), 1:5)
+qr.solve(A, 1:5)
+
+## check for rank-deficient cases
+X <- cbind(1:3, 1:3, 1)
+stopifnot(all.equal(qr.X(qr(X)), X))
+## end of moved from qr.Rd
+
+
+## qraux
+p <- ncol(x <- LifeCycleSavings[,-1]) # not the `sr'
+qrstr <- qr(x)	 # dim(x) == c(n,p)
+Q <- qr.Q(qrstr) # dim(Q) == dim(x)
+R <- qr.R(qrstr) # dim(R) == ncol(x)
+X <- qr.X(qrstr) # X == x
+stopifnot(all.equal(X,	as.matrix(x)))
+
+## X == Q %*% R :
+stopifnot((1 - X /( Q %*% R))< 100*Meps)
+
+dim(Qc <- qr.Q(qrstr, complete=TRUE)) # Square: dim(Qc) == rep(nrow(x),2)
+stopifnot((crossprod(Qc) - diag(nrow(x))) < 10*Meps)
+
+QD <- qr.Q(qrstr, D=1:p)      # QD == Q \%*\% diag(1:p)
+stopifnot(QD - Q %*% diag(1:p)	< 8* Meps)
+
+dim(Rc <- qr.R(qrstr, complete=TRUE)) # == dim(x)
+dim(Xc <- qr.X(qrstr, complete=TRUE)) # square: nrow(x) ^ 2
+dimnames(X) <- NULL
+stopifnot(all.equal(Xc[,1:p], X))
+## end of moved from qraux.Rd
+
+
+## quantile
+x <- rnorm(1001)
+n <- length(x) ## the following is exact, because 1/(1001-1) is exact:
+stopifnot(sort(x) == quantile(x, probs = ((1:n)-1)/(n-1), names=FALSE))
+
+n <- 777
+ox <- sort(x <- round(rnorm(n),1))# round() produces ties
+ox <- c(ox, ox[n]) #- such that ox[n+1] := ox[n]
+p <- c(0,1,runif(100))
+i <- floor(r <- 1 + (n-1)*p)
+f <- r - i
+stopifnot(abs(quantile(x,p) - ((1-f)*ox[i] + f*ox[i+1])) < 20*Meps)
+## end of moved from quantile.Rd
+
+
+## rep
+stopifnot(identical(rep(letters, 0), character(0)),
+	  identical(rep.int(1:2, 0), integer(0)))
+
+stopifnot(sum(1:8) == length(rep(1:4, 1:8, each=2)))
+## end of moved from rep.Rd
+
+
+## Round
+x1 <- seq(-2, 4, by = .5)
+non.int <- ceiling(x1) != floor(x1)
+stopifnot(
+ trunc(x1) == as.integer(x1),
+ non.int == (ceiling(x1) != trunc(x1) | trunc(x1) != floor(x1)),
+ (signif(x1, 1) != round(x1,1)) == (non.int & abs(x1) > 1)
+)
+## end of moved from Round.Rd
+
+
+## seq
+stopifnot(
+ 3 == seq(3,3,	by=pi),
+ 3 == seq(3,3.1,by=pi),
+ seq(1,6,by=3) == c(1,4),
+ seq(10,4.05,by=-3) == c(10,7)
+)
+## end of moved from seq.Rd
+
+
+## sort
+x <- swiss$Education[1:25]
+stopifnot(!is.unsorted(sort(x)),
+	  !is.unsorted(LETTERS),
+	   is.unsorted(c(NA,1:3,2), na.rm = TRUE))
+
+for(n in 1:20) {
+    z <- rnorm(n)
+    for(x in list(z, round(z,1))) { ## 2nd one has ties
+       qxi <- sort(x,  method = "quick",  index.return = TRUE)
+       stopifnot(qxi$x == sort(x, method = "shell"),
+		 any(duplicated(x)) || qxi$ix == order(x),
+		 x[qxi$ix] == qxi$x)
+   }
+}
+## end of moved from sort.Rd
+
+
+## substr
+ss <- substring("abcdef",1:6,1:6)
+stopifnot(ss == strsplit ("abcdef",NULL)[[1]])
+x <- c("asfef", "qwerty", "yuiop[", "b", "stuff.blah.yech")
+stopifnot(substr(x, 2, 5) == substring(x, 2, 5))
+## end of moved from substr.Rd
+
+
+## svd
+hilbert <- function(n) { i <- 1:n; 1 / outer(i - 1, i, "+") }
+str(X <- hilbert(9)[,1:6])
+str(s <- svd(X))
+Eps <- 100 * Meps
+
+D <- diag(s$d)
+stopifnot(abs(X - s$u %*% D %*% t(s$v)) < Eps)#	 X = U D V'
+stopifnot(abs(D - t(s$u) %*% X %*% s$v) < Eps)#	 D = U' X V
+
+X <- cbind(1, 1:7)
+str(s <- svd(X)); D <- diag(s$d)
+stopifnot(abs(X - s$u %*% D %*% t(s$v)) < Eps)#	 X = U D V'
+stopifnot(abs(D - t(s$u) %*% X %*% s$v) < Eps)#	 D = U' X V
+## end of moved from svd.Rd
+
+
+## Trig
+## many of these tested for machine accuracy, which seems a bit extreme
+set.seed(123)
+stopifnot(cos(0) == 1)
+stopifnot(sin(3*pi/2) == cos(pi))
+x <- rnorm(99)
+stopifnot(all.equal( sin(-x), - sin(x)))
+stopifnot(all.equal( cos(-x), cos(x)))
+x <- abs(x); y <- abs(rnorm(x))
+stopifnot(abs(atan2(y, x) - atan(y/x)) < 10 * Meps)
+stopifnot(abs(atan2(y, x) - atan(y/x)) < 10 * Meps)
+
+x <- 1:99/100
+stopifnot(Mod(1 - (cos(x) + 1i*sin(x)) / exp(1i*x)) < 10 * Meps)
+## error is about 650* at x=0.01:
+stopifnot(abs(1 - x / acos(cos(x))) < 1000 * Meps)
+stopifnot(abs(1 - x / asin(sin(x))) <= 10 * Meps)
+stopifnot(abs(1 - x / atan(tan(x))) <= 10 *Meps)
+## end of moved from Trig.Rd
+
+## Uniform
+u <- runif(20)
+stopifnot(punif(u) == u, dunif(u) == 1,
+	  runif(100, 2,2) == 2)#-> TRUE [bug in R version <= 0.63.1]
+## end of moved from Uniform.Rd
+
+
+## unique
+my.unique <- function(x) x[!duplicated(x)]
+for(i in 1:4)
+ { x <- rpois(100, pi); stopifnot(unique(x) == my.unique(x)) }
+
+unique(iris)
+stopifnot(dim(unique(iris)) == c(149, 5))
+## end of moved from unique.Rd
+
+
+## which.min
+stopifnot(length(which.min(numeric(0))) == 0)
+stopifnot(length(which.max( c(NA,NA) )) == 0)
+## end of moved from which.min.Rd
+
+
+## Wilcoxon
+x <- -1:(4*6 + 1)
+fx <- dwilcox(x, 4, 6)
+stopifnot(fx == dwilcox(x, 6, 4))
+Fx <- pwilcox(x, 4, 6)
+stopifnot(abs(Fx - cumsum(fx)) < 10 * Meps)
+## end of moved from Wilcoxon.Rd
+
+
+## All the following relations must hold :
+stopifnot(
+ 1 +	 Meps != 1,
+ 1 + .5* Meps == 1,
+ log2(.Machine$double.xmax) == .Machine$double.max.exp,
+ log2(.Machine$double.xmin) == .Machine$double.min.exp
+)
+# This test fails on HP-UX since pow(2,1024) returns DBL_MAX and sets
+# errno = ERANGE.  Most other systems return Inf and set errno
+if (Sys.info()["sysname"] != "HP-UX")
+    stopifnot(is.infinite(.Machine$double.base ^ .Machine$double.max.exp))
+## end of moved from zMachine.Rd
+
+
+## PR 640 (diff.default computes an incorrect starting time)
+## By: Laimonis Kavalieris <lkavalieris@maths.otago.ac.nz>
+y <- ts(rnorm(24), freq=12)
+x <- ts(rnorm(24), freq=12)
+arima0(y, xreg = x, seasonal = list(order=c(0,1,0)))
+## Comments:
+
+
+## PR 644 (crash using fisher.test on Windows)
+## By: Uwe Ligges <ligges@statistik.uni-dortmund.de>
+x <- matrix(c(2, 2, 4, 8, 6, 0, 1, 1, 7, 8, 1, 3, 1, 3, 7, 4, 2, 2, 2,
+	      1, 1, 0, 0, 0, 0, 0, 1, 1, 2, 0, 1, 1, 0, 2, 1, 0, 0, 0),
+	    nc = 2)
+fisher.test(x)
+## Comments: (wasn't just on Windows)
+
+## PR 653 (extrapolation in spline)
+## By: Ian White <imsw@holyrood.ed.ac.uk>
+x <- c(2,5,8,10)
+y <- c(1.2266,-1.7606,-0.5051,1.0390)
+fn <- splinefun(x, y, method="natural")
+xx1 <- fn(0:12)
+# should be the same if reflected
+fn <- splinefun(rev(-x),rev(y),method="natural")
+xx2 <- fn(0:-12)
+stopifnot(all.equal(xx1, xx2))
+# should be the same as interpSpline
+library(splines)
+xx3 <- predict(interpSpline(x, y), 0:12)
+stopifnot(all.equal(xx1, xx3$y))
+unloadNamespace("splines")
+## Comments: all three differed in 1.2.1.
+
+
+## PR 698 (print problem with data frames)
+## actually, a subsetting problem with data frames
+fred <- data.frame(happy=c(TRUE, FALSE, TRUE), sad=7:9)
+z <- try(tmp <- fred[c(FALSE, FALSE, TRUE, TRUE)])
+stopifnot(class(z) == "try-error")
+## Comments: No error before 1.2.1
+
+
+## PR 753 (step can't find variables)
+##
+x <- data.frame(a=rnorm(10), b=rnorm(10), c=rnorm(10))
+x0.lm <- lm(a ~ 1, data=x)
+step(x0.lm, ~ b + c)
+## Comments:
+
+
+## PR 796 (aic in binomial models is often wrong)
+##
+a1 <- glm(cbind(ncases, ncontrols) ~ agegp + tobgp * alcgp,
+	  data = esoph, family = binomial())$aic
+a1
+a2 <- glm(ncases/(ncases+ncontrols) ~ agegp + tobgp * alcgp,
+	  data = esoph, family = binomial(), weights=ncases+ncontrols)$aic
+a2
+stopifnot(all.equal(a1, a2))
+## Comments:
+# both should be 236.9645
+# changed to use all.equal rather than == in 2.1.0 -pd
+
+## Follow up: example from Lindsey, purportedly of inaccuracy in aic
+y <- matrix(c(2, 0, 7, 3, 0, 9), ncol=2)
+x <- gl(3, 1)
+a <- glm(y ~ x, family=binomial)$aic
+stopifnot(is.finite(a))
+## Comments: gave NaN prior to 1.2.1
+
+
+## PR 802 (crash with scan(..., what=list(,,)))
+##
+m <- matrix(1:9, 3,3)
+write(m, "test.dat", 3)
+try(scan("test.dat", what=list(,,,)))
+unlink("test.dat")
+## Comments: segfaulted in 1.2.0
+
+
+## Jonathan Rougier, 2001-01-30	 [bug in 1.2.1 and earlier]
+tmp <- array(list(3), c(2, 3))
+tmp[[2, 3]] <- "fred"
+all.equal(t(tmp), aperm(tmp))
+
+
+## PR 860 (Context problem with ... and rbind) Prof Brian D Ripley, 2001-03-03,
+f <- function(x, ...)
+{
+   g <- function(x, ...) x
+   rbind(numeric(), g(x, ...))
+}
+f(1:3)
+## Error in 1.2.2
+f <- function(x, ...) h(g(x, ...))
+g <- function(x, ...) x
+h <- function(...)substitute(list(...))
+f(1)
+## Error in 1.2.2
+substitute(list(...))
+## Error in 1.2.2
+
+
+## Martin Maechler, 2001-03-07 [1.2.2 and in parts earlier]
+tf <- tempfile()
+cat(1:3,"\n", file = tf)
+for(line in list(4:6, "", 7:9)) cat(line,"\n", file = tf, append = TRUE)
+
+count.fields(tf) # 3 3 3 : ok {blank line skipped}
+z <- scan(tf, what=rep(list(""),3), nmax = 3)
+stopifnot(sapply(z, length) == 3)
+## FALSE in 1.2.2
+z <- as.data.frame(scan(tf, what=rep(list(""),3), n=9))
+dim(z)
+## should be 3 3.  Was 2 3 in 1.2.2.
+read.table(tf)
+## gave error in 1.2.2
+unlink(tf)
+
+
+## PR 870 (as.numeric and NAs)	Harald Fekj�r, 2001-03-08,
+is.na(as.numeric(" "))
+is.na(as.integer(" "))
+is.na(as.complex(" "))
+## all false in 1.2.2
+
+
+## PR 871 (deparsing of attribute names) Harald Fekj�r, 2001-03-08,
+midl <- 4
+attr(midl,"Object created") <- date()
+deparse(midl)
+dump("midl", "midl.R")
+source("midl.R") ## syntax error in 1.2.2
+unlink("midl.R")
+
+
+## PR 872 (surprising behavior of match.arg()) Woodrow Setzer, 2001-03-08,
+fun1 <- function(x, A=c("power","constant")) {
+  arg <- match.arg(A)
+  formals()
+}
+topfun <- function(x, Fun=fun1) {
+  a1 <- fun1(x)
+  print(a1)
+  a2 <- Fun(x,A="power")
+  stopifnot(all.equal(a1, a2))
+  print(a2)
+}
+topfun(2, fun1)
+## a1 printed without defaults in 1.2.2
+
+
+## PR 873 (long formulas in terms()) Jerome Asselin, 2001-03-08,
+form <- cbind(log(inflowd1),log(inflowd2),log(inflowd3),
+    log(inflowd4),log(inflowd5),log(inflowd6)) ~ precip*I(Tmax^2)
+terms(form) # error in 1.2.2
+
+
+## PR 881 Incorrect values in non-central chisq values on Linux, 2001-03-21
+x <- dchisq(c(7.1, 7.2, 7.3), df=2, ncp=20)
+stopifnot(diff(x) > 0)
+## on 1.2.2 on RH6.2 i686 Linux x = 0.01140512 0.00804528 0.01210514
+
+
+## PR 882 eigen segfaults on 0-diml matrices, 2001-03-23
+m <- matrix(1, 0, 0)  # 1 to force numeric not logical
+try(eigen(m))
+## segfaults on 1.2.2
+
+
+## 1.3.0 had poor compression on gzfile() with lots of small pieces.
+zz <- gzfile("t1.gz", "w")
+write(1:1000, zz)
+close(zz)
+(sz <- file.info("t1.gz")$size)
+unlink("t1.gz")
+stopifnot(sz < 2000)
+
+
+## PR 1010: plot.mts (type="p") was broken in 1.3.0 and this call failed.
+plot(ts(matrix(runif(10), ncol = 2)), type = "p")
+
+
+## in 1.3.0 readLines(ok=FALSE) failed.
+cat(file="foo.txt", 1:10, sep="\n")
+x <- try(readLines("foo.txt", 100, ok=FALSE))
+unlink("foo.txt")
+stopifnot(length(class(x)) == 1 && class(x) == "try-error")
+
+
+## PR 1047 [<-data.frame failure, BDR 2001-08-10
+test <- df <- data.frame(x=1:10, y=11:20, row.names=letters[1:10])
+test[] <- lapply(df, factor)
+test
+## error in 1.3.0 in test[]
+
+
+## PR 1048 bug in dummy.coef.lm, Adrian Baddeley, 2001-08-10
+## modified to give a sensible test
+old <- getOption("contrasts")
+options(contrasts=c("contr.helmert", "contr.poly"))
+DF <- data.frame(x=1:20,y=rnorm(20),z=factor(1:20 <= 10))
+dummy.coef(lm(y ~ z * I(x), data=DF))
+dummy.coef(lm(y ~ z * poly(x,1), data=DF))
+## failed in 1.3.0.  Second one warns: deficiency of the method.
+options(contrasts=old)
+
+
+## PR 1050 error in ksmooth C code + patch, Hsiu-Khuern Tang, 2001-08-12
+x <- 1:4
+y <- 1:4
+z <- ksmooth(x, y, x.points=x)
+stopifnot(all.equal(z$y, y))
+## did some smoothing prior to 1.3.1.
+
+
+## The length of lines read by scan() was limited before 1.4.0
+xx <- paste(rep(0:9, 2000), collapse="")
+zz <- file("foo.txt", "w")
+writeLines(xx, zz)
+close(zz)
+xxx <- scan("foo.txt", "", sep="\n")
+stopifnot(identical(xx, xxx))
+unlink("foo.txt")
+
+
+## as.character was truncating formulae:  John Fox 2001-08-23
+mod <- this ~ is + a + very + long + formula + with + a + very + large + number + of + characters
+zz <- as.character(mod)
+zz
+nchar(zz)
+stopifnot(nchar(zz)[3] == 83)
+## truncated in 1.3.0
+
+
+## substr<-, Tom Vogels, 2001-09-07
+x <- "abcdef"
+substr(x, 2, 3) <- "wx"
+stopifnot(x == "awxdef")
+
+x <- "abcdef"
+substr(x, 2, 3) <- "wxy"
+stopifnot(x == "awxdef")
+
+x <- "abcdef"
+substr(x, 2, 3) <- "w"
+stopifnot(x == "awcdef")
+## last was "aw" in 1.3.1
+
+
+## reading bytes from a connection,  Friedrich Leisch 2001-09-07
+cat("Hello World", file="world.txt")
+con <- file("world.txt", "r")
+zz <- readChar(con, 100)
+close(con)
+unlink("world.txt")
+stopifnot(zz == "Hello World")
+## was "" in 1.3.1.
+
+
+## prediction was failing for intercept-only model
+## as model frame has no columns.
+d <- data.frame(x=runif(50), y=rnorm(50))
+d.lm <- lm(y ~ 1, data=d)
+predict(d.lm, data.frame(x=0.5))
+## error in 1.3.1
+
+
+## predict.arima0 needed a matrix newxreg: Roger Koenker, 2001-09-27
+u <- rnorm(120)
+s <- 1:120
+y <- 0.3*s + 5*filter(u, c(.95,-.1), "recursive", init=rnorm(2))
+fit0 <- arima0(y,order=c(2,0,0), xreg=s)
+fit1 <- arima0(y,order=c(2,1,0), xreg=s, include.mean=TRUE)
+fore0 <- predict(fit0 ,n.ahead=44, newxreg=121:164)
+fore1 <- predict(fit1, n.ahead=44, newxreg=121:164)
+par(mfrow=c(1,2))
+ts.plot(y,fore0$pred, fore0$pred+2*fore0$se, fore0$pred-2*fore0$se,
+		gpars=list(lty=c(1,2,3,3)))
+abline(fit0$coef[3:4], lty=2)
+ts.plot(y, fore1$pred, fore1$pred+2*fore1$se, fore1$pred-2*fore1$se,
+		gpars=list(lty=c(1,2,3,3)))
+abline(c(0, fit1$coef[3]), lty=2)
+
+
+## merging when NA is a level
+a <- data.frame(x = 1:4)
+b <- data.frame(x = 1:3, y = factor(c("NA", "a", "b"), exclude=""))
+(m <- merge(a, b, all.x = TRUE))
+stopifnot(is.na(m[4, 2]))
+## was level NA in 1.3.1
+stopifnot(!is.na(m[1, 2]))
+
+
+## merging with POSIXct columns:
+x <- data.frame(a = as.POSIXct(Sys.time() + (1:3)*10000), b = LETTERS[1:3])
+y <- data.frame(b = LETTERS[3:4], c = 1:2)
+stopifnot(1 == nrow(merge(x, y)))
+stopifnot(4 == nrow(merge(x, y, all = TRUE)))
+
+
+## PR 1149.  promax was returning the wrong rotation matrix.
+ability.FA <- factanal(factors = 2, covmat = ability.cov, rotation = "none")
+pm <- promax(ability.FA$loadings)
+tmp1 <- as.vector(ability.FA$loadings %*% pm$rotmat)
+tmp2 <- as.vector(pm$loadings)
+stopifnot(all.equal(tmp1, tmp2))
+
+
+## PR 1155. On some systems strptime was not setting the month or mday
+## when yday was supplied.
+bv1 <- data.frame(day=c(346,346,347,347,347), time=c(2340,2350,0,10,20))
+attach(bv1)
+tmp <- strptime(paste(day, time %/% 100, time %% 100), "%j %H %M")
+detach()
+stopifnot(tmp$mon == 11)
+# day of month will be different in a leap year on systems that default
+# to the current year, so test differences:
+stopifnot(diff(tmp$mday) == c(0, 1, 0, 0))
+## Comments: failed on glibc-based systems in 1.3.1, including Windows.
+
+
+## PR 1004 (follow up).	 Exact Kolmogorov-Smirnov test gave incorrect
+## results due to rounding errors (Charles Geyer, charlie@stat.umn.edu,
+## 2001-10-25).
+## Example 5.4 in Hollander and Wolfe (Nonparametric Statistical
+## Methods, 2nd ed., Wiley, 1999, pp. 180-181).
+x <- c(-0.15, 8.6, 5, 3.71, 4.29, 7.74, 2.48, 3.25, -1.15, 8.38)
+y <- c(2.55, 12.07, 0.46, 0.35, 2.69, -0.94, 1.73, 0.73, -0.35, -0.37)
+stopifnot(round(ks.test(x, y)$p.value, 4) == 0.0524)
+
+
+## PR 1150.  Wilcoxon rank sum and signed rank tests did not return the
+## Hodges-Lehmann estimators of the associated confidence interval
+## (Charles Geyer, charlie@stat.umn.edu, 2001-10-25).
+## One-sample test: Example 3.1 in Hollander & Wolfe (1973), 29f.
+x <- c(1.83,  0.50,  1.62,  2.48, 1.68, 1.88, 1.55, 3.06, 1.30)
+y <- c(0.878, 0.647, 0.598, 2.05, 1.06, 1.29, 1.06, 3.14, 1.29)
+we <- wilcox.test(y, x, paired = TRUE, conf.int = TRUE)
+## NOTE order: y then x.
+## Results from Hollander & Wolfe (1999), 2nd edition, page 40 and 53
+stopifnot(round(we$p.value,4) == 0.0391)
+stopifnot(round(we$conf.int,3) == c(-0.786, -0.010))
+stopifnot(round(we$estimate,3) == -0.46)
+## Two-sample test: Example 4.1 in Hollander & Wolfe (1973), 69f.
+x <- c(0.80, 0.83, 1.89, 1.04, 1.45, 1.38, 1.91, 1.64, 0.73, 1.46)
+y <- c(1.15, 0.88, 0.90, 0.74, 1.21)
+we <- wilcox.test(y, x, conf.int = TRUE)
+## NOTE order: y then x.
+## Results from Hollander & Wolfe (1999), 2nd edition, page 111 and 126
+stopifnot(round(we$p.value,4) == 0.2544)
+stopifnot(round(we$conf.int,3) == c(-0.76, 0.15))
+stopifnot(round(we$estimate,3) == -0.305)
+
+
+## range gave wrong length result for R < 1.4.0
+stopifnot(length(range(numeric(0))) == 2)
+##  Comments: was just NA
+
+
+## mishandling of integer(0) in R < 1.4.0
+x1 <- integer(0) / (1:3)
+x2 <- integer(0) ^ (1:3)
+stopifnot(length(x1) == 0 & length(x2) == 0)
+##  Comments: were integer NAs in real answer in 1.3.1.
+
+
+## PR#1138/9  rounding could give non-integer answer.
+x <- round(100000/3, -2) - 33300
+stopifnot(x == 0)
+## failed in 1.3.x on Solaris and Windows but not Debian Linux.
+
+
+## PR#1160 finding midpoints in image <janef@stat.berkeley.edu, 2001-11-06>
+x2 <- c(0, 0.002242152, 0.004484305, 0.006726457, 0.00896861,
+	0.01121076, 0.01345291, 0.01569507, 0.01793722, 0.02017937,
+	0.02242152, 0.02466368, 0.02690583, 0.02914798, 0.03139013,
+	0.03363229, 0.03587444, 0.03811659, 0.04035874, 0.04932735,
+	0.05156951, 0.05381166)
+z <- c(0, 0.067, NA, 0.167, 0.083, 0.05, 0.067, NA, 0, 0.1, 0, 0.05,
+       0.067, 0.067, 0.016, 0.117, 0.017, -0.017, 0.2, 0.35, 0.134, 0.15)
+image(x2, 1, as.matrix(z))
+## Comments: failed under R 1.3.1.
+
+
+##PR 1175 and 1123##
+set.seed(123)
+## We can't seem to get Pearson residuals right ##
+x <- 1:4 # regressor variable
+y <- c(2,6,7,8) # response binomial counts
+n <- rep(10,4) # number of binomial trials
+ym <- cbind(y,n-y) # response variable as a matrix
+glm1 <- glm(ym~x,binomial) # fit a generalized linear model
+f <- fitted(glm1)
+rp1 <- (y-n*f)/sqrt(n*f*(1-f)) # direct calculation of pearson residuals
+rp2 <- residuals(glm1,type="pearson") # should be pearson residuals
+stopifnot(all.equal(rp1,rp2))
+# sign should be same as response residuals
+x <- 1:10
+y <- rgamma(10,2)/x
+glm2 <- glm(y~x,family=Gamma)
+stopifnot(all.equal(sign(resid(glm2,"response")),sign(resid(glm2,"pearson"))))
+# shouldn't depend on link for a saturated model
+x<-rep(0:1,10)
+y<-rep(c(0,1,1,0,1),4)
+glm3<-glm(y~x,family=binomial(),control=glm.control(eps=1e-8))
+glm4<-glm(y~x,family=binomial("log"),control=glm.control(eps=1e-8))
+stopifnot(all.equal(resid(glm3,"pearson"),resid(glm4,"pearson")))
+
+
+## Torsten Hothorn, 2001-12-04
+stopifnot(pt(-Inf, 3, ncp=0) == 0, pt(Inf, 3, ncp=0) == 1)
+##  Comments: were 0.5 in 1.3.1
+
+
+## Paul Gilbert, 2001-12-07
+cancor(matrix(rnorm(100),100,1), matrix(rnorm(300),100,3))
+##  Comments: failed in R-devel.
+
+
+## PR#1201: incorrect values in qbeta
+x <- seq(0, 0.8, len=1000)
+xx <- pbeta(qbeta(x, 0.143891, 0.05), 0.143891, 0.05)
+stopifnot(max(abs(x - xx)) < 1e-6)
+##  Comments:  Get a range of zeroes in 1.3.1
+
+
+## PR#1216: binomial null model
+y <- rbinom(20, 1, 0.5)
+glm(y ~ 0, family = binomial)
+##  Comments:  1.3.1 gave  Error in any(n > 1) : Object "n" not found
+
+
+## Integer overflow in type.convert
+res <- type.convert("12345689")
+stopifnot(typeof(res) == "integer")
+res <- type.convert("12345689012")
+stopifnot(typeof(res) == "double")
+##  Comments: was integer in 1.4.0
+
+
+## La.eigen() segfault
+#e1 <- La.eigen(m <- matrix(1:9,3))
+#stopifnot(e1$values == La.eigen(m, only.values = TRUE)$values)
+## 2.0.0: La.eigen is defunct
+
+
+## Patrick Connelly 2001-01-22, prediction with offsets failed
+## a simpler example
+counts <- c(18, 17, 15, 20, 10, 20, 25, 13, 12)
+outcome <- gl(3, 1, 9)
+treatment <- gl(3, 3)
+DF <- data.frame(counts = c(18, 17, 15, 20, 10, 20, 25, 13, 12),
+		 outcome = gl(3, 1, 9), treatment = gl(3, 3),
+		 exposure = c(1.17, 1.78, 1.00, 2.36, 2.58, 0.80, 2.51,
+		 1.16, 1.77))
+fit <- glm(counts ~ outcome + treatment + offset(log(exposure)),
+	   family = poisson, data = DF)
+p1 <- predict(fit)
+p2 <- predict(fit, se = TRUE)  ## failed < 1.4.1
+p3 <- predict(fit, newdata = DF)
+p4 <- predict(fit, newdata = DF, se = TRUE)
+stopifnot(all.equal(p1, p2$fit), all.equal(p1, p3), all.equal(p2, p4))
+fit <- glm(counts ~ outcome + treatment, offset = log(exposure),
+	   family = poisson, data = DF)
+p1 <- predict(fit)
+p2 <- predict(fit, se = TRUE)  ## failed < 1.4.1
+p3 <- predict(fit, newdata = DF)
+p4 <- predict(fit, newdata = DF, se = TRUE)
+stopifnot(all.equal(p1, p2$fit), all.equal(p1, p3), all.equal(p2, p4))
+
+
+## PR#1267 hashing NaN
+load(file.path(Sys.getenv("SRCDIR"), "nanbug.rda"))
+bb <- b; bb[5] <- NaN
+identical(b, bb)	    # TRUE
+unique(c(NaN, bb))	    #[1] NaN 0 1 2 3 NA
+stopifnot(identical(unique(c(NaN, b)), unique(c(NaN, bb))))
+## 1.4.0 gives [1] NaN 0 1 2 NaN 3 NA	on most platforms
+
+
+## reported by PD 2002-01-24
+Y <- matrix(rnorm(20), , 2)
+fit <- manova(Y ~ 1)
+fit # failed
+print(fit, intercept = TRUE)
+summary(fit) # failed
+summary(fit, intercept = TRUE)
+
+
+## Several  qr.*() functions lose (dim)names.
+## reported by MM 2002-01-26
+
+## the following should work both in R and S+ :
+q4 <- qr(X4 <- cbind(a = 1:9, b = c(1:6,3:1), c = 2:10, d = rep(1,9)))
+##q2 <- qr(X4[,1:2])
+y04 <- y4 <- cbind(A=1:9,B=2:10,C=3:11,D=4:12)
+dimnames(y4)[[1]] <- paste("c",1:9,sep=".")
+y1 <- y4[,2]
+y40 <- y4 ; dimnames(y40) <- list(dimnames(y4)[[1]], NULL)
+
+c1 <- qr.coef( q4, y4) # row- AND col-names
+c2 <- qr.coef( q4, y04)# ditto
+c3 <- qr.coef( q4, y40)# row--names
+dn3 <- dimnames(c3)
+stopifnot(identical(dimnames(c1), dimnames(c2)),
+	  identical(dimnames(c1), list(letters[1:4], LETTERS[1:4])),
+	  identical(dn3[[1]], letters[1:4]),  length(dn3[[2]]) == 0,
+	  identical(names(qr.coef(q4,y1)),   letters[1:4]),
+	  identical(dimnames(qr.R(q4))[[2]], letters[1:4]),
+
+	  identical(dimnames(qr.qty(q4,y4)), dimnames(y4)),
+	  identical(dimnames(qr.qty(q4,y40)), dimnames(y40)),
+	  identical(dimnames(qr.qy (q4,y04)), dimnames(y04)),
+
+	  all.equal(y1,	 qr.fitted(q4, y1 ), tol = 1e-12),
+	  all.equal(y4,	 qr.fitted(q4, y4 ), tol = 1e-12),
+	  all.equal(y40, qr.fitted(q4, y40), tol = 1e-12),
+	  all.equal(y04, qr.fitted(q4, y04), tol = 1e-12),
+
+	  all.equal(X4, qr.X(q4), tol = 1e-12)
+)
+
+
+## PR 1297  read.fwf() was interpreting `#' in 1.4.0/1
+cat(file="test.fwf", "123ABC123", "123#3 123", "123XYZ123", sep="\n")
+(res <- read.fwf("test.fwf", widths=c(3,3,3), comment.char=""))
+unlink("test.fwf")
+stopifnot(res[2, 2] == "#3 ")
+
+
+## abs was failing to dispatch as part of the Math group generic
+tmp <- data.frame(x = -5:5)
+abs(tmp)
+## failed in 1.4.1.
+
+
+## PR 1363 La.svd was not working for integer args
+m <- matrix(1:4, 2)
+(s1 <- svd(m))
+(s2 <- La.svd(m))
+stopifnot(all.equal(s1$d, s2$d), all.equal(s1$u, s2$u),
+	  all.equal(s1$v, t(s2$vt)))
+(e1 <- eigen(m))
+# (e2 <- La.eigen(m)) # 2.0.0: La.eigen is defunct
+stopifnot(all.equal(e1$d, e1$d))
+
+
+## order/sort.list on NA_STRING
+x <- c("A", NA, "Z")
+stopifnot(identical(sort(x, na.last = TRUE), x[sort.list(x, na.last = TRUE)]))
+stopifnot(identical(sort(x, na.last = FALSE), x[sort.list(x, na.last = FALSE)]))
+## 1.4.1 sorted NA correctly with sort but not sort.list.
+
+
+## Don MacQueen 2002-03-26
+stopifnot(length(seq(1024902010, 1024902025, by=1)) == 16)
+t0 <- ISOdatetime(2002,6,24,0,0,10)
+x <- seq.POSIXt(from=t0,to=t0+15,by='1 sec')
+stopifnot(length(x) == 16)
+
+
+## whilst reading the code BDR 2002-03-31
+z <- try(max(complex(0)))
+stopifnot(inherits(z, "try-error"))
+z <- try(min(complex(0)))
+stopifnot(inherits(z, "try-error"))
+## 1.4.1 gave +-Inf + random imaginary part
+
+
+## PR#1283  min/max(NULL) or (integer(0))
+z <- min(NULL)
+stopifnot(!is.na(z), mode(z) == "numeric", z == Inf)
+z <- min(integer(0))
+stopifnot(!is.na(z), mode(z) == "numeric", z == Inf)
+z <- max(NULL)
+stopifnot(!is.na(z), mode(z) == "numeric", z == -Inf)
+z <- max(integer(0))
+stopifnot(!is.na(z), mode(z) == "numeric", z == -Inf)
+
+
+## more reading the code BDR 2002-03-31
+stopifnot(identical(range(), range(numeric(0))))
+## in 1.4.1 range() was c(1,1)
+stopifnot(is.null(c()))
+## in 1.4.1 this was structure(TRUE, names="recursive")
+
+## range(numeric(0)) was not as documented
+x <- numeric(0)
+(rx <- range(x))
+stopifnot(identical(rx, c(min(x), max(x))))
+## 1.4.1 had c(NA, NA)
+
+
+## PR 1431 persp() crashes with numeric values for [x,y,z]lab
+persp(1:2, 1:2, matrix(1:4, 2), xlab=1)
+## segfaulted in 1.4.1
+
+
+## PR#1244 bug in det using method="qr"
+## method argument is no longer used in det
+#m2 <- structure(c(9822616000, 3841723000, 79790.09, 3841723000, 1502536000,
+#		  31251.82, 79790.09, 31251.82, 64156419.36), .Dim = c(3, 3))
+#(d1 <- det(m2, method="eigenvalues"))
+#(d2 <- det(m2, method="qr"))
+#stopifnot(d2 == 0) ## 1.4.1 gave 9.331893e+19
+#(d3 <- det(m2, method="qr", tol = 1e-10))
+#stopifnot(all.equal(d1, d3, tol=1e-3))
+
+
+## PR#1422 glm start/offset bugs
+res <- try(data(ships, package = MASS))
+if(!inherits(res, "try-error")) {
+ships.glm <- glm(incidents ~ type + year + period + offset(log(service)),
+		 family = poisson, data = ships, subset = (service != 0))
+update(ships.glm, start = coef(ships.glm))
+}
+## failed in 1.4.1.
+
+
+## PR#1439 file.info()$isdir was only partially logical
+(info <- file.info("."))
+info$isdir
+stopifnot(info$isdir == TRUE)
+## 1.4.1 had a TRUE value that was not internally integer 1.
+
+## PR#1473 predict.*bSpline() bugs extrapolating for deriv >= 1
+library(splines)
+x <- c(1:3,5:6)
+y <- c(3:1,5:6)
+(isP <- interpSpline(x,y))# poly-spline representation
+(isB <- interpSpline(x,y, bSpl = TRUE))# B-spline repr.
+xo <- c(0, x, 10)# x + outside points
+op <- options(digits = 4)
+for(der in 0:3) # deriv=3 fails!
+    print(formatC(try(predict(isP, xo, deriv = der)$y), wid=7,format="f"),
+	  quote = FALSE)
+## and for B-spline (instead of polynomial):
+for(der in 0:3)	 # deriv=3 failed
+    print(formatC(try(predict(isB, xo, deriv = der)$y), wid=7,format="f"),
+	  quote = FALSE)
+options(op)
+unloadNamespace("splines")
+
+
+## PR 902 segfaults when warning string is too long, Ben Bolker 2001-04-09
+provoke.bug <- function(n=9000) {
+   warnmsg <- paste(LETTERS[sample(1:26,n,replace=TRUE)],collapse="")
+   warning(warnmsg)
+}
+provoke.bug()
+## segfaulted in 1.2.2, will also on machines without vsnprintf (none now)
+
+
+## PR#1510 merge with multiple match rows and different names.
+df1 <- data.frame(z = 1:10, m = letters[1:10], w = rnorm(10))
+df2 <- data.frame(x = 1:10, y = rnorm(10), n = letters[1:10])
+merge(df2, df1, by.x = c("x", "n"), by.y = c("z", "m"))
+## failed in 1.5.0
+
+
+## PR 1524  Problems with paste/unlist
+l <- names(unlist(list(aa = list(bb = 1))))
+l
+# this is exactly "aa.bb"
+stopifnot(identical(l, "aa.bb"))
+l2 <- paste(l, "this should be added")
+stopifnot(identical(l2, "aa.bb this should be added"))
+## 1.5.0 gave l2 printing as l.
+
+
+## PR 1530 drop inconsistency for data frames
+DF <- data.frame(x = 1:3, y = c("A","D","E"), z = c(6,9,10))
+a1 <- DF[1,1:3]
+xx <- DF[1,]
+a2 <- xx[, 1:3]
+a3 <- DF[1,1:3, drop = TRUE]
+a4 <- xx[, 1:3, drop = TRUE]
+stopifnot(identical(a1, a2), identical(a3, a4))
+## <= 1.5.0 had a2 == a3.
+
+
+## PR 1536 rbind.data.frame converts logical to factor
+df <- data.frame(a = 1:10)
+df$b <- df$a < 5
+ddf <- rbind(df, df)
+stopifnot(!is.factor(ddf$b))
+## 1.5.0 had b as a factor.
+
+
+## PR 1548 : prettyNum inserted leading commas
+stopifnot(prettyNum(123456, big.mark=",") == "123,456")
+
+
+## PR 1552: cut.dendrogram
+hc <- hclust(dist(USArrests), "ave")
+cc <- cut(as.dendrogram(hc), h = 20)## error in 1.5.0
+
+## predict.smooth.spline(*, deriv > 0) :
+x <- (1:200)/32
+ss <- smooth.spline(x, 10*sin(x))
+stopifnot(length(x) == length(predict(ss,deriv=1)$x))# not yet in 1.5.0
+
+## pweibull(large, log=T):
+stopifnot(pweibull(seq(1,50,len=1001), 2,3, log = TRUE) < 0)
+
+## part of PR 1662: fisher.test with total one
+fisher.test(cbind(0, c(0,0,0,1)))
+## crashed in R <= 1.5.0
+
+stopifnot(Mod(vector("complex", 7)) == 0) # contained garbage in 1.5.0
+
+## hist.POSIXt with numeric `breaks'
+hist(.leap.seconds, breaks = 5)
+## error in 1.5.1
+
+
+##Jonathan Rougier 2002-06-18
+x <- matrix(runif(30), 10, 3)
+poly(x, degree=2)
+## failed in 1.5.1
+
+
+## PR#1694 cut with infinite values -> NA (Markus J�ntti)
+cut.off <- c(-Inf, 0, Inf)
+x <- c(-Inf, -10, 0, 10, Inf)
+(res <- cut(x, cut.off, include.lowest=TRUE))
+stopifnot(!is.na(res))
+(res <- cut(x, cut.off, include.lowest=TRUE, right=FALSE))
+stopifnot(!is.na(res))
+## outer values were NA in 1.5.1
+
+
+## ls.str() for function environments:
+Fn <- ecdf(rnorm(50))
+ls.str(envir = environment(Fn))
+## failed in 1.5.1
+
+
+## PR 1767 all.equal.character for non-matching NAs
+all.equal(c("A", "B"), c("A", NA))
+## failed in 1.5.1
+
+
+## failed since at least version 0.90:
+stopifnot(is.character(a12 <- all.equal(1,1:2)),
+	  length(a12) == 1,# was 2 till 1.6.2
+	  a12 == "Numeric: lengths (1, 2) differ")
+## a12 was *list* of length 3
+
+
+## related to PR 1577/1608, conversions to character
+DF <- data.frame(b = LETTERS[1:3])
+sapply(DF, class)
+DF[[1]] <- LETTERS[1:3]
+stopifnot(is.character(DF$b)) ## was factor < 1.6.0
+DF <- data.frame(b = LETTERS[1:3])
+DF$b <- LETTERS[1:3]
+stopifnot(is.character(DF$b)) ## always was character.
+
+x <- data.frame(var = LETTERS[1:3]); x$var <- as.character(x$var)
+x[[1]][2] <- "3"
+x
+stopifnot(is.character(x$var))
+is.na(x[[1]]) <- 2
+stopifnot(is.character(x$var))
+
+x <- data.frame(var = I(LETTERS[1:3]))
+x[[1]][2] <- "3"
+x
+stopifnot(is.character(x$var))
+is.na(x[[1]]) <- 2
+stopifnot(is.character(x$var))
+
+x <- data.frame(var = LETTERS[1:3])
+x[[1]][2] <- "3"
+x
+stopifnot(is.factor(x$var))
+is.na(x[[1]]) <- 2
+stopifnot(is.factor(x$var))
+
+x <- data.frame(a = 1:4)
+y <- data.frame(b = LETTERS[1:3])
+y$b <- as.character(y$b)
+z <- merge(x, y, by = 0, all.x = TRUE)
+sapply(z, data.class)
+stopifnot(is.character(z$b))
+## end of `related to PR 1577/1608'
+
+
+## logicals became factors < 1.6.0
+stopifnot(sapply(as.data.frame(matrix((1:12)%% 4 == 1, 3,4)),
+		 is.logical))
+
+
+## recycling of factors in data.frame (wish from PR#1713)
+data.frame(x=c("A","B"), y="C")	     # failed to recycle in 1.5.1
+X <- data.frame(x=c("A","B"), y=I("C")) # also failed
+XX <- data.frame(x=c("A","B"), y=I(rep("C", 2))) # fine
+stopifnot(identical(X, XX))
+## Last is false in some S variants.
+
+
+## test of rank-deficient prediction, as various claims this did not work
+## on R-help in June 2002
+x1 <- rnorm(100)
+x3 <- rnorm(100)
+y <- rnorm(100)
+train <- data.frame(y=y, x1=x1, x2=x1, x3=x3)
+fit <- lm(y ~ ., train)
+stopifnot(all.equal(predict(fit), predict(fit, train)))
+## warning added for 1.6.0
+
+
+## terms(y ~ .) on data frames with duplicate names
+DF <- data.frame(y = rnorm(10), x1 = rnorm(10), x2 = rnorm(10), x3 = rnorm(10))
+names(DF)[3] <- "x1"
+fit <- try(lm(y ~ ., DF))
+stopifnot(class(fit) == "try-error")
+## had formula y ~ x1 + x1 + x3 in 1.5.1.
+
+
+## PR#1759 as.character.octmode() (Henrik Bengtsson)
+x <- 0; class(x) <- "octmode"
+stopifnot(as.character(x) == "0")
+## gave "" in 1.5.1
+
+
+## PR#1843 unsplit() with f a list
+g <- factor(round(10 * runif(1000)))
+x <- rnorm(1000) + sqrt(as.numeric(g))
+xg <- split(x, list(g1=g,g2=g))
+res <- unsplit(xg, list(g1=g, g2=g))
+stopifnot(x == res) # can't have rounding error here
+## gave incorrect result with warning in 1.5.1.
+
+
+## matching NAs on Solaris (MM 2002-08-02)
+# x <- as.double(NA)
+# identical(x + 0, x)
+# stopifnot(match(x + 0, x, 0) == 1)
+## match failed on Solaris with some compiler settings
+## NA+0 is not guaranteed to be NA: could be NaN
+
+
+## identical on specials  (BDR 2002-08-02)
+stopifnot(identical(as.double(NA), NaN) == FALSE)
+## was identical on 1.5.1
+
+
+## safe prediction (PR#1840)
+cars.1 <- lm(dist ~ poly(speed, degree = 1), data = cars)
+cars1  <- lm(dist ~	 speed,		     data = cars)
+DF <- data.frame(speed=4)
+stopifnot(all.equal(predict(cars.1, DF), predict(cars1, DF)))
+## error in 1.5.1
+
+
+## Ops.data.frame (PR#1889)
+d <- data.frame(1:10)
+d > list(5)
+## failed in 1.5.1
+
+
+## order(na.last = NA) (PR#1913 / 1906 / 1981)
+x <- 1
+order(x, na.last=NA)
+order(x, x, x, na.last=NA)
+## failed in 1.5.1, since sapply simplified to a scalar.
+stopifnot(3:1 == order(c(1,2,3,NA), na.last=NA, decreasing=TRUE))
+## ignored `decreasing' in 1.5.1
+order(c(NA, NA), na.last = NA)
+## error in 1.5.1, now integer(0)
+
+## as.list() coerced logical to integer (PR#1926)
+x <- c(TRUE,FALSE,NA)
+stopifnot(identical(x, unlist(as.list(x))))
+## the 2nd was (1,0,NA) before 1.6
+
+
+## test of long Error expression in aov(): PR#1315 and later,
+## and also a cross-check of deparse(, cutoff = 500)
+AA <- structure(list(Y2 = c(10, 9, 0, 0, 5, 6, 0, 0, 8, 9, 0, 0, 4,
+4, 0, 0, 12, 11, 2, 0, 6, 7, 0, 0), P2 = structure(c(1L, 1L,
+1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L,
+3L, 3L, 3L, 3L, 3L, 3L), .Label = c("1", "2", "3"), class = "factor"),
+    AAAAAAAA = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L,
+    1L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L
+    ), .Label = c("E1", "E2"), class = "factor"), B2 = structure(c(1L,
+    1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L,
+    1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L), .Label = c("Red", "Unred"
+    ), class = "factor"), C2 = structure(c(1L, 2L, 1L, 2L, 1L,
+    2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L,
+    1L, 2L, 1L, 2L), .Label = c("Agent", "Patient"), class = "factor")),
+    .Names = c("Y2", "P2", "AAAAAAAA", "B2", "C2"),
+    class = "data.frame", row.names = 1:24)
+AK2anova.out <-
+    aov(Y2 ~ AAAAAAAA * B2 * C2 +
+	Error(P2 + P2:AAAAAAAA + P2:B2 + P2:C2 + P2:AAAAAAAA:B2 +
+	      P2:AAAAAAAA:C2 + P2:B2:C2 + P2:AAAAAAAA:B2:C2),
+	data=AA)
+## failed in 1.5.1
+
+## as.character was silently truncating expressions to 60 chars
+q2 <- expression(c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19))
+(q3 <- as.character(q2))
+stopifnot(nchar(q3) == 68)
+## was 61 in 1.5.1
+
+
+## Ops wasn't using NextMethod correctly
+
+## Ops.ordered:
+or <- ordered(c("a","b","c"))
+stopifnot( (or == "a") == c(TRUE,FALSE,FALSE))
+stopifnot(or == or)
+stopifnot(or != "d")
+##  last was NA NA NA in 1.5.1
+
+
+Ops.foo <- function(e1, e2) {
+    NextMethod()
+}
+Ops.baz <- function(e1, e2) {
+   NextMethod()
+}
+a <- b <- 1
+class(a) <- c("foo","bar","baz")
+class(b) <- c("foo","baz")
+stopifnot(a == 1,
+	  b == a)
+##(already worked in 1.5.1)
+
+
+## t() wrongly kept "ts" class and "tsp"
+t(ts(c(a=1, d=2)))
+## gave error while printing in 1.5.1
+at <- attributes(t(ts(cbind(1, 1:20))))
+stopifnot(length(at) == 2,
+	  at$dim == c(2, 20),
+	  at$dimnames[[1]] == paste("Series", 1:2))
+## failed in 1.5.1
+
+
+## Nextmethod from anonymous function (PR#1211)
+try( get("print.ts")(1) )# -> Error
+## seg.faulted till 1.5.1
+
+
+## cbind/rbind should work with NULL only args
+stopifnot(is.null(cbind(NULL)), is.null(cbind(NULL,NULL)),
+	  is.null(rbind(NULL)), is.null(rbind(NULL,NULL)))
+## gave error from 0.63 till 1.5.1
+
+
+## seq.POSIXt() had rounding problem:
+stopifnot(4 == length(seq(from=ISOdate(2000,1,1), to=ISOdate(2000,1,4),
+			  length.out=4)))
+## length was 5 till 1.6.0
+
+
+## loess has a limit of 4 predictors (John Deke on R-help, 2002-09-16)
+data1 <- array(runif(500*5),c(500,5))
+colnames(data1) <- c("x1","x2","x3","x4","x5")
+y <- 3+2*data1[,"x1"]+15*data1[,"x2"]+13*data1[,"x3"]-8*data1[,"x4"]+14*data1[,"x5"]+rnorm(500)
+data2 <- as.data.frame(cbind(y,data1))
+result4 <- loess(y~x1+x2+x3+x4,data2)
+try(result5 <- loess(y~x1+x2+x3+x4+x5,data2))
+## segfaulted in 1.5.1
+
+
+## format.AsIs was not handling matrices
+jk <- data.frame(x1=2, x2=I(matrix(0,1,2)))
+jk
+## printing failed in 1.5.1
+
+
+## eigenvectors got irrelevant names (PR#2116)
+set.seed(1)
+A <- matrix(rnorm(20), 5, 5)
+dimnames(A) <- list(LETTERS[1:5], letters[1:5])
+(ev <- eigen(A)$vectors)
+stopifnot(is.null(colnames(ev)))
+## had colnames in 1.6.0
+
+
+## pretty was not pretty {because seq() isn't} (PR#1032 and D.Brahm)
+stopifnot(pretty(c(-.1, 1))[2] == 0, ## [2] was -2.775558e-17
+	  pretty(c(-.4,.8))[3] == 0, ## [3] was 5.551115e-17
+	  pretty(100+ c(0, pi*1e-10))[4] > 100,# < not too much rounding!
+	  pretty(c(2.8,3))[1] == 2.8)
+## last differed by 4.44e-16 in R 1.1.1
+
+
+## add1 was giving misleading message when scope was nonsensical.
+counts <- c(18,17,15,20,10,20,25,13,12)
+fit <- glm(counts ~ 1, family=poisson)
+res <- try(add1(fit, ~ .))
+## error in 1.6.0 was
+## `Error in if (ncol(add) > 1) { : missing value where logical needed'
+stopifnot(length(grep("missing value", res)) == 0)
+
+
+## stripchart with NAs (PR#2018)
+Sepal <- iris$Sepal.Length
+Sepal[27] <- NA
+stripchart(Sepal ~ iris$Species, method="stack")
+## failed in 1.6.1
+
+
+## losing is.object bit internally (PR#2315)
+stopifnot(is.ts(log(as.ts(1:10))))
+## failed for integer original as here in 1.6.1.
+
+
+## formatC ignored rounding up (PR#2299)
+stopifnot(formatC(99.9, 1, format="fg") == "100")
+stopifnot(formatC(99.9, 2, format="fg") == "100")
+stopifnot(formatC(99.9, 3, format="fg") == "99.9")
+## gave exponential format on 1.6.1
+
+
+## full/partial matching in attr.
+tmp <- list(id=1)
+attr(tmp,"n.ch") <- 2
+attr(tmp,"n") <- 1
+attributes(tmp)
+(res <- attr(tmp, "n"))
+stopifnot(length(res) == 1 && res == 1)
+## gave NULL in 1.6.1
+
+
+## Formerly undocumented line limit in system(intern=TRUE)
+## Naoki Takebayashi <ntakebay@bio.indiana.edu> 2002-12-07
+tmp <- tempfile()
+long <- paste(rep("0123456789", 20L), collapse="")
+cat(long, "\n", sep="", file=tmp)
+junk <- system(paste("cat", shQuote(tmp)), intern = TRUE)
+stopifnot(length(junk) == 1L, nchar(junk[1]) == 200L)
+## and split truncated on 1.6.1
+
+
+## missing group generics for `difftime' (related to PR#2345)
+x <- as.difftime(c("0:3:20", "11:23:15"))
+y <- ISOdate(2001, 4, 26) - ISOdate(2001, 2, 26)
+x + x
+2*x
+x < y
+x < 100
+## all but last failed in R < 1.7.0
+
+
+## PR 2358 (part)
+mm <- 1:2
+names(mm)[2] <- 'y'
+(mm <- c(mm, 3))
+stopifnot(is.na(names(mm)[1]))
+## 1.6.1 had "NA"
+
+
+## PR 2357
+a <- matrix(c(1,2,3,-1,-2,3),2,3,dimnames=list(c("A","B"),NULL))
+(z <- pmax(a, 0))
+stopifnot(identical(dimnames(z), dimnames(a)))
+# further checks
+a <- matrix(c(1,2,3,-1,-2,3),2,3,dimnames=list(c("A","B"),1:3))
+(z <- pmax(a, 0))
+stopifnot(identical(dimnames(z), dimnames(a)))
+a <- matrix(c(1,2,3,-1,-2,3),2,3,dimnames=list(NULL, letters[1:3]))
+(z <- pmax(a, 0))
+stopifnot(identical(dimnames(z), dimnames(a)))
+## 1.6.1 only transferred dimnames if both components were non-null
+
+
+## internal conversion to factor in type.convert was not right
+## if a character string NA was involved.
+x <- c(NA, "NA", "foo")
+(z <- type.convert(x))
+stopifnot(identical(levels(z), "foo"))
+(z <- type.convert(x, na.strings=character(0)))
+stopifnot(identical(levels(z), sort(c("foo", "NA"))))
+(z <- type.convert(x, na.strings="foo"))
+stopifnot(identical(levels(z), "NA"))
+## extra level in 1.6.1
+
+
+## related example
+tmp <- tempfile()
+cat(c("1", "foo", "\n", "2", "NA", "\n"), file = tmp)
+(z <- read.table(tmp, na.strings="foo"))
+unlink(tmp)
+stopifnot(identical(levels(z$V2), "NA"),
+	  identical(is.na(z$V2), c(TRUE, FALSE)))
+## 1.6.1 had V2 as NA NA.
+
+
+## PR#2396, parsing and pushbacks.
+tmp <- tempfile()
+cat( c( "1", "a+b", "2"), file=tmp, sep="\n")
+open(tcon <- file(tmp))
+readLines(tcon, n=1)
+pushBack("a1+b1", tcon)
+parse(file=tcon, n=1)
+close(tcon)
+unlink(tmp)
+## failed with syntax error in 1.6.1
+
+
+## NAs in max.col
+a <- matrix(1, 3, 3)
+a[1,2] <- NA
+(z <- max.col(a))
+stopifnot(is.na(z[1]))
+## gave (randomly) 1 or 3 in 1.6.1
+
+
+## PR#2469: read.table on MacOS CR-terminated files.
+tmp <- tempfile()
+x <- c("aaa", "bbb", "ccc")
+cat(x, sep="\r", file=tmp)
+con <- file(tmp)
+open(con)
+line <- readLines(con, 1)
+pushBack(line, con)
+(y <- readLines(con))
+close(con)
+unlink(tmp)
+stopifnot(identical(x, y))
+## pushback problems in 1.6.2 only
+
+
+## dimnames in solve(): not a bug just an improvement in 1.7.0
+A <- diag(3)
+dimnames(A) <- list(LETTERS[1:3], letters[1:3])
+(B <- solve(A))
+stopifnot(identical(colnames(B), rownames(A)))
+## R < 1.7.0 had no colnames for B, and S has the colnames of A.
+stopifnot(all.equal(t(B), solve(t(A))))
+## test here is of dimnames
+
+
+## PR#2507: extracting 0-length dimensions for arrays
+dn <- list(LETTERS[1:2], letters[1:3], paste("t",1:4,sep=""))
+A. <- array(1:24, dim = 2:4, dimnames = dn)
+str(A.[1, 0, 2 ])
+str(A.[1, 0, 2, drop = FALSE])
+## both gave errors in 1.6.2
+
+plot(sf <- stepfun(2, 3:4))
+## failed in 1.6.2
+
+
+## PR#2541, cbind (and rbind) with zero-length components
+y <- matrix(0,1,0)
+cbind(y, integer(0))
+y <- matrix(0,0,1)
+rbind(y, integer(0))
+## gave fatal error in 1.6.2, since miscalculated no of rows/cols.
+
+
+## PR#2518 multiple objects in AIC.default.
+lm1 <- lm(y ~ x, list(x=1:10, y=jitter(1:10)))
+lm2 <- lm(y ~ x, list(x=1:10, y=jitter(1:10)))
+AIC(lm1, lm2)
+AIC(lm1, lm2,  k=2)
+## second failed in 1.6.2
+
+
+## PR#2591 unique on ordered factor
+f <- ordered(month.name, levels=month.name)
+(uf <- unique(f))
+stopifnot(is.ordered(uf))
+## gave factor in 1.6.2
+
+
+## PR#2587 coercion of length-0 vectors
+x <- numeric(0)
+x[1] <- NA
+stopifnot(identical(mode(x), "numeric"))
+##
+
+
+## coercion lost the object bit in [<-
+x <- I(TRUE)
+is.object(x)
+x[2] <- "N"
+stopifnot(is.object(x))
+## failed in 1.6.2
+
+
+## check inherits now works for basic classes:
+x <- 1:3
+is.object(x) # FALSE
+stopifnot(inherits(x, "integer"))
+## 2003-Mar-12 it did not
+
+
+## rank() is numeric also for NA char vectors
+stopifnot(is.numeric(rk <- rank(c("ch","c", NA))),
+          all(rk == c(2,1,3)))
+## did not from R 1.2 -- 1.6
+
+
+## table() should by default keep NA levels of factors
+i <- c(1:2,NA);	 fi <- factor(i, exclude = NULL)
+stopifnot(identical(as.character(i), dimnames(table(fi))[[1]]))
+## not in 2003-Mar-10 unstable
+
+
+## [lm.]influence() for multivariate lm :
+n <- 32
+Y <- matrix(rnorm(3 * n), n, 3)
+X <- matrix(rnorm(5 * n), n, 5)
+infm <- lm.influence(mod <- lm(Y ~ X))
+## failed up to 2003-03-29 (pre 1.7.0)
+im1 <- influence.measures(mod)
+stopifnot(all.equal(unname(im1$infmat[,1:6]), unname(dfbetas(mod))))
+
+## rbind.data.frame with character and ordered columns
+A <- data.frame(a=1)
+A$b <- "A"
+B <- data.frame(a=2)
+B$b <- "B"
+AB <- rbind(A,B)
+(cl <- sapply(AB, class))
+stopifnot(cl[2] == "character") # was factor in 1.6.2
+
+A <- data.frame(a=1:3, b=ordered(letters[1:3]))
+B <- data.frame(a=7:9, b=ordered(letters[7:9]))
+AB <- rbind(A,B)
+(cl <- sapply(AB, class))
+stopifnot(cl$b[1] == "ordered") # was factor in 1.6.2
+C <- data.frame(a=4:6, b=letters[4:6])
+ABC <- rbind(AB, C)
+(cl <- sapply(ABC, class))
+stopifnot(cl[2] == "factor")
+
+A <- data.frame(a=1)
+A$b <- "A"
+B <- data.frame(a=2, b="B")
+(AB <- rbind(A,B))
+(cl <- sapply(AB, class))
+stopifnot(cl[2] == "character")
+
+A <- data.frame(a=1, b="A")
+B <- data.frame(a=2)
+B$b <- "B"
+(AB <- rbind(A,B))
+(cl <- sapply(AB, class))
+stopifnot(cl[2] == "factor")
+A <- data.frame(a=c("A", NA, "C"))
+B <- data.frame(a=c("B", NA, "C"))
+(AB <- rbind(A,B))
+stopifnot(levels(AB$a) == c("A", "C", "B"))
+A <- data.frame(a=I(c("A", NA, "C")))
+B <- data.frame(a=I(c("B", NA, "C")))
+(AB <- rbind(A,B))
+(cl <- sapply(AB, class))
+stopifnot(cl[1] == "AsIs")
+
+A <- data.frame(a=1)
+A$b <- "A"
+B <- data.frame(a=2, b=I("B"))
+(AB <- rbind(A,B))
+(cl <- sapply(AB, class))
+stopifnot(cl[2] == "character")
+
+A <- data.frame(a=1, b="A")
+B <- data.frame(a=2, b=I("B"))
+(AB <- rbind(A,B))
+(cl <- sapply(AB, class))
+stopifnot(cl[2] == "factor")
+##
+
+
+## hclust(), as.hclust.twins(), agnes()  consistency
+x <- matrix(rnorm(30), ncol=3)  # no observation names
+xn <- x; rownames(xn) <- letters[10:1]# has obs. names
+hc  <- hclust(dist(x),  method="complete")
+hcn <- hclust(dist(xn), method="complete")
+iC1 <- !names(hc) %in% c("labels", "call")
+stopifnot(identical(hc, hhc <- as.hclust(hc)),
+          identical(hhc, as.hclust(hhc)),
+          identical(hc[iC1], hcn[iC1]),
+          identical(hcn$labels, rownames(xn))
+          )
+
+if(require(cluster)) { # required package
+  ag <- agnes(x, method="complete")
+  hcag <- as.hclust(ag)
+  agn <- agnes(xn, method="complete")
+  hcagn <- as.hclust(agn)
+  iC2 <- !names(hcag) %in% c("labels", "call")
+  stopifnot(identical(hcagn[iC2], hcag[iC2]),
+            identical(hcagn$labels, hcn$labels),
+            all.equal(hc$height, hcag$height, tol = 1e-12),
+            all(hc$merge == hcag$merge | hc$merge == hcag$merge[ ,2:1])
+            )
+  detach("package:cluster")
+}
+## as.hclust.twins() lost labels and more till (incl) 1.6.2
+
+
+## PR#2867 qr(LAPACK=TRUE) didn't always pivot in 1.7.0
+set.seed(1)
+X <- matrix(rnorm(40),10,4)
+X[,1] <- X[,2]
+(qrx <- qr(X, LAPACK=TRUE))
+stopifnot(any(qrx$pivot != 1:4)) # check for pivoting
+##
+
+
+## rownames<- did not work on an array with > 2 dims in 1.7.0
+A <- array(1:12, dim=c(2, 3, 2))
+rownames(A) <- letters[1:2]
+A <- array(1:12, dim=c(2, 3, 2))
+colnames(A) <- 1:3
+## failed in 1.7.0
+
+
+## predict on constant model, PR#2958
+res <- model.frame(~1, data.frame(x = 1:5))
+stopifnot(nrow(res) == 5)
+res <- predict(lm(y ~ 1, data = data.frame(y = rep(0:3, c(5,9,7,1)))),
+               newdata = data.frame(x = 1:5))
+stopifnot(length(res) == 5)
+res <- predict(glm(y ~ 1, family = poisson,
+                   data = data.frame(y = rep(0:3, c(5,9,7,1)))),
+               newdata = data.frame(x = 1:5), type = "r")
+stopifnot(length(res) == 5)
+## all length one in 1.7.0
+
+
+## PR#2993 need to consider delta=NULL in power.t.test{ctest}
+power.t.test(n=10, delta=NULL, power=.9, alternative="two.sided")
+## failed in 1.7.0
+
+
+## PR#3221 eigenvectors should be a matrix even in the 1x1 case
+A <- matrix(1)
+stopifnot(is.matrix(eigen(A)$vectors))
+## gave vector in 1.7.0
+
+
+## [[<-.data.frame
+testdata <- data.frame(a=1:2, b = c(TRUE, NA))
+td <- strptime(c("31121991", "31121992"), "%d%m%Y")
+testdata[["a"]] <- td
+if(FALSE)
+stopifnot(inherits(.Last.value, "try-error"))
+## succeeded in 1.7.0 and again in 2.11.x {should it not?}
+
+
+## pacf on n x 1 matrix: Paul Gilbert, R-devel, 2003-06-18
+z <- as.ts(matrix(rnorm(100), , 1))
+class(z) # not "mts"
+is.matrix(z) # TRUE in 1.7.1
+pacf(z)
+pacf(matrix(rnorm(100), , 1))
+## both failed in 1.7.1.
+
+
+## lsfit was not setting residuals in the rank=0 case
+fit <- lsfit(matrix(0, 10, 1), 1:10, intercept=FALSE)
+stopifnot(fit$residuals == 1:10)
+## zero residuals in 1.7.1.
+
+
+## interval calculations on predict.lm
+x <- 1:10
+y <- rnorm(10)
+predict(lm(y ~ x), type="terms", interval="confidence")
+##
+
+
+## 0-level factors
+f <- factor(numeric(0))
+sort(f)
+unique(f)
+## both failed in 1.7.1
+
+
+## data failed with some multiple inputs
+data(cars, women)
+## failed in 1.7.1
+
+
+## body() and formals() looked in different places
+bar <- function(x=NULL)
+{
+   foo <- function(y=3) testit()
+   print(formals("foo"))
+   print(body("foo"))
+}
+bar()
+## the call to body() failed in 1.7.0
+
+
+## string NAs shouldn't have any internal structure.(PR#3078)
+a <- c("NA", NA, "BANANA")
+na <- NA_character_
+a1 <- substr(a,1,1)
+stopifnot(is.na(a1)==is.na(a))
+a2 <- substring(a,1,1)
+stopifnot(is.na(a2)==is.na(a))
+a3 <- sub("NA","na",a)
+stopifnot(is.na(a3)==is.na(a))
+a3 <- gsub("NA","na",a)
+stopifnot(is.na(a3)==is.na(a))
+substr(a3, 1, 2) <- "na"
+stopifnot(is.na(a3)==is.na(a))
+substr(a3, 1, 2) <- na
+stopifnot(all(is.na(a3)))
+stopifnot(agrep("NA", a) == c(1, 3))
+stopifnot(grep("NA", a) == c(1, 3))
+stopifnot(grep("NA", a, perl=TRUE) == c(1, 3))
+stopifnot(all(is.na(agrep(na, a))))
+stopifnot(all(is.na(grep(na, a))))
+stopifnot(all(is.na(grep(na, a, perl=TRUE))))
+a4 <- abbreviate(a)
+stopifnot(is.na(a4) == is.na(a))
+a5 <- chartr("NA", "na", a)
+stopifnot(is.na(a5) == is.na(a))
+a6 <- gsub(na, "na", a)
+stopifnot(all(is.na(a6)))
+a6a <- gsub("NANA", na, a)
+stopifnot(is.na(a6a)==c(FALSE, TRUE, TRUE))
+a7 <- a; substr(a7, 1, 2) <- "na"
+stopifnot(is.na(a7) == is.na(a))
+a8 <- a; substr(a8, 1, 2) <- na
+stopifnot(all(is.na(a8)))
+stopifnot(identical(a, toupper(tolower(a))))
+a9 <- strsplit(a, "NA")
+stopifnot(identical(a9, list("", na ,c("BA",""))))
+a9 <- strsplit(a, "NA", fixed = TRUE)
+stopifnot(identical(a9, list("", na ,c("BA",""))))
+a9 <- strsplit(a, "NA", perl = TRUE)
+stopifnot(identical(a9, list("", na ,c("BA",""))))
+a10 <- strsplit(a, na)
+stopifnot(identical(a10, as.list(a)))
+## nchar() differs a bit
+stopifnot(identical(is.na(a), is.na(nchar(a))),
+          all(!is.na(nchar(a, type = "width"))))
+## NA and "NA" were not distinguished in 1.7.x
+
+
+## coercing 0-length generic vectors
+as.double(list())
+as.integer(list())
+as.logical(list())
+as.complex(list())
+as.character(list())
+## all but the last failed in 1.7.x
+
+
+## help on reserved words
+## if else repeat while function for in next break  will fail
+if(.Platform$OS.type == "windows") options(pager="console")
+for(topic in c("TRUE", "FALSE",  "NULL", "NA", "Inf", "NaN",
+               "NA_integer_", "NA_real_", "NA_complex_", "NA_character_")) {
+    eval(parse(text=paste("?", topic, sep="")))
+    eval(parse(text=paste("help(", topic, ")", sep="")))
+}
+## ?NULL and all the help calls fail in 1.7.x
+
+
+## row names in data frames
+xx <- structure(1:3, names=letters[1:3])
+data.frame(xx)
+data.frame(xx, yy=1:6) # failed with misleading message in 1.7.x
+data.frame(xx, yy=1:6, row.names=NULL) # no warning
+##
+
+
+## empty paste
+stopifnot(length(paste(character(0), character(0))) == 0) # was ""
+stopifnot(identical(paste(character(0), character(0), collapse="+"), ""))
+##
+
+
+## concatenation of make.names (Tom Minka, R-help, 2003-06-17)
+a1 <- make.names(c("a", "a", "a"), unique=TRUE)
+a2 <- make.names(c(make.names(c("a", "a"), unique=TRUE), "a"), unique=TRUE)
+stopifnot(identical(a1, a2))
+
+df1 <- rbind(data.frame(x=1), data.frame(x=2), data.frame(x=3))
+df2 <- rbind(rbind(data.frame(x=1), data.frame(x=2)), data.frame(x=3))
+stopifnot(identical(df1, df2))
+##
+
+
+## PR#3280 data.frame(check.name=FALSE) was not always respected
+DF <- data.frame(list("a*" = 3), check.names = FALSE)
+stopifnot(identical(names(DF), "a*"))
+## gave "a." in 1.7.1
+
+
+## functions using get() were not always looking for functions or in the
+## right place
+x <- factor(1:3)
+contrasts(x) <- "ctr"
+test <- function(x)
+{
+    ctr <- contr.treatment
+    contrasts(x)  # failed in 1.7.1
+}
+test(x)
+##
+
+## get/exists were ignoring mode in base
+stopifnot(exists(".Device"))
+stopifnot(!exists(".Device", mode="function")) # was true in 1.7.1
+##
+
+
+## inadvertent recursive indexing bug (PR#3324)
+x <- list(a=1:3, b=2:4)
+try(x[[c("c", "d")]])
+try(x[[c("c", "d")]] <- NA)
+## both segfaulted in 1.7.1
+
+
+## empty indexing of data frames  (PR#3532)
+x <- data.frame(x = "1.5")
+num <- numeric(0)
+x[num] <- list()
+x[, num] <- list()
+## x[[num]] is rightly an error
+## x[num] etc failed in 1.7.x.
+
+
+## .Random.seed was searched for with inherits=TRUE
+rm(.Random.seed)
+attach(list(.Random.seed=c(0:4)))
+runif(1)
+detach(2)
+(new <- RNGkind())
+stopifnot(identical(new, c("Mersenne-Twister", "Inversion")))
+stopifnot(identical(find(".Random.seed"), ".GlobalEnv"))
+## took from and assigned to list in 1.7.x.
+
+
+## PR#3750
+y <- c(1, NA, NA, 7)
+identical(y, qqnorm(y, plot.it=FALSE)$y)
+## qqnorm() used to drop NA's in its result till 1.7.x
+
+
+## PR#3763
+d0 <- ISOdate(2001,1,1)[0] # length 0 POSIX
+(rd0 <- round(d0, "day"))
+stopifnot(identical(rd0, as.POSIXlt(d0)))
+## 2nd line gave floating point exception (in format(*)!)
+
+
+## New det() function
+m <- cbind(1, c(1, 1))
+stopifnot(det(m) == 0, determinant(m)$mod == -Inf,
+          determinant(m, log=FALSE)$mod == 0)
+## gave error for singular matrices in earlier Aug.2003
+
+
+## tests of model fitting in the presence of non-syntactic names
+names(swiss)[6] <- "Infant Mortality"
+(lm1 <- lm(Fertility ~ ., data = swiss))
+formula(lm1) # is expanded out
+slm1 <- step(lm1)
+add1(lm1, ~ I(Education^2) + .^2)
+step(lm1, scope=~ I(Education^2) + .^2)
+
+Quine <- structure(list(Eth = structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+2, 2, 2, 2, 2, 2, 2, 2, 2, 2), .Label = c("A", "N"), class = "factor"),
+    Sex = structure(c(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), .Label = c("F",
+    "M"), class = "factor"), Age = structure(c(1, 1, 1, 1, 1,
+    1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+    4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4,
+    4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,
+    4, 4, 4, 4, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+    2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4,
+    4, 4, 4, 4, 4, 4, 4, 4), .Label = c("F0", "F1", "F2", "F3"
+    ), class = "factor"), Lrn = structure(c(2, 2, 2, 1, 1, 1,
+    1, 1, 2, 2, 2, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+    2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
+    2, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+    1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+    1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+    1, 1, 1, 1, 1, 1, 1), .Label = c("AL", "SL"), class = "factor"),
+    Days = c(2, 11, 14, 5, 5, 13, 20, 22, 6, 6, 15, 7, 14, 6,
+    32, 53, 57, 14, 16, 16, 17, 40, 43, 46, 8, 23, 23, 28, 34,
+    36, 38, 3, 5, 11, 24, 45, 5, 6, 6, 9, 13, 23, 25, 32, 53,
+    54, 5, 5, 11, 17, 19, 8, 13, 14, 20, 47, 48, 60, 81, 2, 0,
+    2, 3, 5, 10, 14, 21, 36, 40, 6, 17, 67, 0, 0, 2, 7, 11, 12,
+    0, 0, 5, 5, 5, 11, 17, 3, 4, 22, 30, 36, 8, 0, 1, 5, 7, 16,
+    27, 0, 30, 10, 14, 27, 41, 69, 25, 10, 11, 20, 33, 5, 7,
+    0, 1, 5, 5, 5, 5, 7, 11, 15, 5, 14, 6, 6, 7, 28, 0, 5, 14,
+    2, 2, 3, 8, 10, 12, 1, 1, 9, 22, 3, 3, 5, 15, 18, 22, 37)),
+    .Names = c("Eth", "Sex", "Age", "Slow or fast", "Days"),
+    class = "data.frame", row.names = 1:46)
+step(aov(log(Days+2.5) ~ .^4, data=Quine))
+DF <- data.frame(y=rnorm(21), `x 1`=-10:10., check.names = FALSE)
+lm(y ~ ., data = DF)
+(fm <- lm(y ~ `x 1` + I(`x 1`^2), data = DF))
+step(fm)
+
+N <- c(0,1,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0)
+P <- c(1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0)
+K <- c(1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,0,1,0)
+yield <- c(49.5,62.8,46.8,57.0,59.8,58.5,55.5,56.0,62.8,55.8,69.5,55.0,
+           62.0,48.8,45.5,44.2,52.0,51.5,49.8,48.8,57.2,59.0,53.2,56.0)
+npk <- data.frame(`block no`=gl(6,4), N=factor(N), P=factor(P),
+                  K=factor(K), yield=yield, check.names=FALSE)
+op <- options(contrasts=c("contr.helmert", "contr.treatment"))
+(npk.aovE <- aov(yield ~  N*P*K + Error(`block no`), npk))
+summary(npk.aovE)
+model.tables(npk.aovE)
+model.tables(npk.aovE, "means")
+options(op)# reset to previous
+## Didn't work before 1.8.0
+
+
+## cmdscale
+## failed in versions <= 1.4.0 :
+cm1 <- cmdscale(eurodist, k=1, add=TRUE, x.ret = TRUE)
+cmdsE <- cmdscale(eurodist, k=20, add = TRUE, eig = TRUE, x.ret = TRUE)
+# FAILED on Debian testing just prior to 1.9.0!
+#stopifnot(identical(cm1$x,  cmdsE$x),
+#          identical(cm1$ac, cmdsE$ac))
+stopifnot(all.equal(cm1$x,  cmdsE$x),
+          all.equal(cm1$ac, cmdsE$ac))
+## end of moved from cmdscale.Rd
+
+
+## cutree
+hc <- hclust(dist(USArrests))
+ct <- cutree(hc, h = c(0, hc$height[c(1,49)], 1000))
+stopifnot(ct[,"0"]== 1:50,
+          unique(ct[,2]) == 1:49,
+          ct[,3]  == ct[,4],
+          ct[,4]  == 1)
+## end of moved from cutree.Rd
+
+
+## princomp
+USArrests[1, 2] <- NA
+pc.cr <- princomp(~ Murder + Assault + UrbanPop,
+                  data = USArrests, na.action=na.exclude, cor = TRUE)
+update(pc.cr, ~ . + Rape)
+## end of moved from princomp.Rd
+
+
+## smooth.spline.Rd
+y18 <- c(1:3,5,4,7:3,2*(2:5),rep(10,4))
+xx  <- seq(1,length(y18), len=201)
+s2. <- smooth.spline(y18, cv=TRUE,con=list(trace=TRUE, tol=1e-6,low= -3,maxit=20))
+s2. ## Intel-Linux: Df ~= (even! > ) 18 : interpolating -- much smaller PRESS
+## {others, e.g., may end quite differently!}
+lines(predict(s2., xx), col = 4)
+mtext(deparse(s2.$call,200), side= 1, line= -1, cex= 0.8, col= 4)
+
+sdf8 <- smooth.spline(y18, df = 8, con=list(trace=TRUE))
+sdf8 ; sdf8$df - 8
+
+try(smooth.spline(y18, spar = 50)) #>> error : spar 'way too large'
+## end of moved from smooth.spline.Rd
+
+
+## arima{0}
+(fit <- arima(lh, c(1,0,0)))
+tsdiag(fit)
+(fit <- arima0(lh, c(1,0,0)))
+tsdiag(fit)
+## end of moved from arima{0}.Rd
+
+
+## predict.arima
+predict(arima(lh, order=c(1,0,1)), n.ahead=5)
+predict(arima(lh, order=c(1,1,0)), n.ahead=5)
+predict(arima(lh, order=c(0,2,1)), n.ahead=5)
+## end of moved from predict.arima.Rd
+
+
+library(splines)
+## ns
+## Consistency:
+x <- c(1:3,5:6)
+stopifnot(identical(ns(x), ns(x, df = 1)),
+          !is.null(kk <- attr(ns(x), "knots")),# not true till 1.5.1
+          length(kk) == 0)
+## end of moved from ns.Rd
+
+
+## predict.bs
+## Consistency:
+basis <- ns(women$height, df = 5)
+newX <- seq(58, 72, len = 51)
+wh <- women$height
+bbase <- bs(wh)
+nbase <- ns(wh)
+stopifnot(identical(predict(basis), predict(basis, newx=wh)),
+          identical(predict(bbase), predict(bbase, newx=wh)),
+          identical(predict(nbase), predict(nbase, newx=wh)))
+## end of moved from predict.bs.Rd
+
+
+## internal coerceVector() was too lenient
+plot(1)
+r <- try(strwidth(plot))## Error: cannot coerce
+stopifnot(inherits(r, "try-error"),
+          grep("cannot coerce", r) == 1)
+## gave seg.fault or memory allocation error before 1.8.0
+
+
+## rank sometimes kept and sometimes dropped names
+x2 <- c(3, 1, 4, 1, 5, NA, 9, 2, 6, 5, 3, 5)
+names(x2) <- letters[1:12]
+(y1 <- rank(x2))
+(y2 <- rank(x2, na.last=FALSE))
+(y3 <- rank(x2, na.last=NA))
+(y4 <- rank(x2, na.last="keep"))
+stopifnot(identical(names(y1), names(x2)),
+          identical(names(y2), names(x2)),
+          identical(names(y4), names(x2)),
+          identical(names(y3), names(x2)[-6]))
+##
+
+## as.dist(x) only obeyed `diag=TRUE' or `upper=TRUE' when x was "dist" already
+m <- as.matrix(dist(matrix(rnorm(100), nrow=5)))
+stopifnot(identical(TRUE, attr(as.dist(m, diag=TRUE), "Diag")))
+## failed previous to 1.8.0
+
+stopifnot(1:2 == ave(1:2,factor(2:3,levels=1:3)))
+## gave "2 NA" previous to 1.8.0, because unused levels weren't dropped
+
+
+## PR#4092: arrays with length(dim(.)) = 1
+z <- array(c(-2:1, 1.4),5)
+cz <- crossprod(as.vector(z))
+dimnames(z) <- list(letters[1:5])
+z0 <- z
+names(dimnames(z)) <- "D1"
+stopifnot(crossprod(z) == cz,# the first has NULL dimnames
+          identical(crossprod(z), crossprod(z0)),
+          identical(crossprod(z), crossprod(z,z0)))
+## crossprod(z) segfaulted (or gave silly error message) before 1.8.0
+
+
+## PR#4431
+stopifnot(!is.na(rmultinom(12,100, c(3, 4, 2, 0,0))))
+## 3rd line was all NA before 1.8.0
+
+
+## PR#4275: getAnywhere with extra "."
+g0 <- getAnywhere("predict.loess")
+g1 <- getAnywhere("as.dendrogram.hclust")
+g2 <- getAnywhere("predict.smooth.spline")
+g3 <- getAnywhere("print.data.frame")
+is.S3meth <- function(ga) any(substr(ga$where, 1,20) == "registered S3 method")
+stopifnot(is.S3meth(g0), is.S3meth(g1),
+          is.S3meth(g2), is.S3meth(g3))
+## all but g0 failed until 1.8.0 (Oct 6)
+
+
+## symnum(x) for length 0 and some logical arrays:
+sm <- symnum(m <- matrix(1:8 %% 3 == 0, 2))
+stopifnot(identical(symnum(FALSE[FALSE]), noquote(""[FALSE])),
+          identical(symnum(c(m)), c(symnum(m))),
+          dim(sm) == dim(m), class(sm) == "noquote")
+## symnum(<length 0>) gave noquote("()") before 1.8.1
+
+
+## abbreviate with leading (or trailing) space differences (PR#4564)
+abbreviate(c("A"," A"), 4)
+## this gave infinite loop before 1.8.1
+
+
+## crossprod on 0-extent matrices
+a <- matrix(,0,5)
+stopifnot(crossprod(a) == 0)
+stopifnot(crossprod(a,a) == 0)
+stopifnot(crossprod(a+0i) == 0+0i)
+## were random areas in <= 1.8.0
+
+
+## DF[[i, j]] should be row i, col j
+stopifnot(women[[2, 1]] == women[2, 1])
+women[[2, 1]] <- 77
+stopifnot(women[2, 1] == 77)
+## was reversed from May 2002 to Oct 2003
+
+
+## merge.data.frame with a single-column df (PR#4299)
+x <- data.frame(x = 1:5, y = letters[1:5])
+y <- data.frame(z = 1:2)
+z <- merge(x, y)
+stopifnot(identical(names(z), c("x", "y", "z")))
+## third name was wrong in 1.8.0
+
+
+## cor(mat, use = "pair") was plainly wrong
+# longley has no NA's -- hence all "use = " should give the same!
+X <- longley
+ep <- 32 * Meps
+for(meth in eval(formals(cor)$method)) {
+    cat("method = ", meth,"\n")
+    Cl <- cor(X, method = meth)
+    stopifnot(all.equal(Cl, cor(X, method= meth, use= "complete"), tol=ep),
+              all.equal(Cl, cor(X, method= meth, use= "pairwise"), tol=ep),
+              all.equal(Cl, cor(X, X, method= meth), tol=ep),
+              all.equal(Cl, cor(X, X, method= meth, use= "pairwise"), tol=ep),
+              all.equal(Cl, cor(X, X, method= meth, use= "pairwise"), tol=ep)
+              )
+}
+## "pairwise" failed in 1.8.0
+
+
+## regexpr(*, fixed=TRUE) had 0-index from C
+txt <- c("english", "french", "swiss")
+ir <- regexpr("en", txt, fixed = TRUE)
+stopifnot(ir == c(1, 3, -1),
+          identical(ir, regexpr("en", txt)))
+## (*, fixed=TRUE) gave 0 2 -1 before R 1.8.1
+
+
+## PR#5017: filter(init=) had the wrong time order
+xx <- filter(4:8, c(1, 0.5, 0.25), method="recursive", init=3:1)
+stopifnot(identical(xx[1:3], c(8.25, 15.25, 26.125)))
+## 1.8.0 gave 6.75 12.75 22.375
+
+
+## PR#5090 user error with writeChar could segfault
+tf <- tempfile()
+zz <- file(tf, "wb")
+writeChar("", zz, nchars=10000000)
+close(zz)
+unlink(tf)
+## segfaults in 1.8.0
+
+
+## PR#4710 round (and signif) dropped attributes
+x <- round(matrix(0, 0, 3))
+stopifnot(identical(dim(x), as.integer(c(0, 3))))
+## numeric(0) in 1.8.0
+
+
+## PR#5405
+try(stepfun(c(), 1)(2))# > Error
+## segfaults in 1.8.1 and earlier
+
+
+## PR#4955 now allow embedded newlines in quoted fields in read.table
+temp <- tempfile()
+data <- data.frame(a=c("c", "e\nnewline"))
+write.table(data, sep=",", row.names=FALSE, file=temp)
+data2 <- read.csv(temp)
+unlink(temp)
+# attributes get a different order here
+stopifnot(identical(data$a, data2$a))
+## not allowed prior to 1.9.0
+
+
+## scoping problems with model.frame methods
+foo <- c(1,1,0,0,1,1)
+rep <- 1:6
+m <- lm(foo ~ rep, model=FALSE)
+model.matrix(m)
+n <- 1:6
+m <- lm(foo ~ n, model=FALSE)
+model.matrix(m)
+## failed in 1.8.0 because the wrong n or rep was found.
+rm(foo, rep)
+func <- function()
+{
+    foo <- c(1,1,0,0,1,1)
+    rep <- 1:6
+    m <- lm(foo ~ rep, model=FALSE)
+    model.matrix(m)
+}
+func()
+##
+
+
+## broken strptime in glibc (and code used on Windows)
+# the spec says %d is allowed in 1-31, but it seems HP-UX thinks
+# the date is invalid.
+# stopifnot(!is.na(strptime("2003-02-30", format="%Y-%m-%d")))
+stopifnot(is.na(strptime("2003-02-35", format="%Y-%m-%d")))
+# this one is still wrong in glibc
+stopifnot(is.na(strptime("2003-02-40", format="%Y-%m-%d")))
+stopifnot(is.na(strptime("2003-22-20", format="%Y-%m-%d")))
+# and so is this one
+stopifnot(is.na(strptime("2003 22 20", format="%Y %m %d")))
+stopifnot(is.na(ISOdate(year=2003, month=22, day=20)))
+## several after the first gave non-NA values in 1.8.1 on some broken OSes
+
+
+## PR#4688
+reli <- cbind(Si = c(2121, 100, 27, 0),
+              av = c(4700, 216, 67, 0),
+              Nc = c(6234,2461,502,14))
+stopifnot(inherits(try(fisher.test(reli, workspace=2000000)), "try-error"))
+## gave p.value = Inf ; now gives FEXACT error 501
+
+
+## PR#5701
+chisq.test(matrix(23171,2,2), simulate=TRUE)
+## gave infinite loop in 1.8.1 and earlier
+
+
+## as.matrix on an all-logical data frame
+ll <- data.frame(a = rpois(10,1) > 0, b = rpois(10,1) > 0)
+stopifnot(mode(as.matrix(ll)) == "logical")
+lll <- data.frame(a = LETTERS[1:10], b = rpois(10,1) > 0)
+stopifnot(mode(as.matrix(lll)) == "character")
+## both were char before 1.9.0
+
+
+## outer called rep with a non-generic arg
+x <- .leap.seconds[1:6]
+outer(x, x, "<")
+outer(x, x, "-")
+(z <- outer(x, x, "difftime", units="days"))
+stopifnot(class(z) == "difftime")
+## failed in 1.8.1
+
+
+## PR#5900 qbinom when probability is 1
+stopifnot(qbinom(0.95, 10, 1) == 10)
+stopifnot(qbinom(0, 10, 1) == 0)
+# and for prob = 0
+stopifnot(qbinom(0.95, 10, 0) == 0)
+stopifnot(qbinom(0, 10, 0) == 0)
+# and size = 0
+stopifnot(qbinom(0.95, 0, 0.5) == 0)
+## 1.8.1 was programmed to give NaN
+
+
+## base:: and ::: were searching in the wrong places
+stopifnot(inherits(try(base::lm), "try-error"))
+stopifnot(inherits(try(graphics::log), "try-error"))
+## equivalent constructs succeeded in 1.8.1
+
+
+## (PR#6452) princomp prediction without specifying centers should give NAs
+x <- matrix(rnorm(400), ncol=4)
+fit <- princomp(covmat=cov(x))
+stopifnot(is.null(fit$scores))
+stopifnot(is.na(predict(fit, newdata=x[1:10, ])))
+## failed in 1.8.1
+
+
+## (PR#6451) regex functions did not coerce args to character.
+sub(x=NA, pattern="x", replacement="y")
+## failed in 1.8.1
+
+
+## length<- needed a factor method, and so needed to be generic
+aa <- factor(letters)
+length(aa) <- 20
+aa
+stopifnot(is.factor(aa))
+## returned a vector in 1.8.1
+
+
+## spec.pgram() was too
+pAR <- c(2.7607, -3.82, 2.6535, -0.9238)
+N <- 1 + 2^14# 16385
+set.seed(123)
+x <- arima.sim(model = list(ar = pAR), n = N)
+spP <- spec.pgram(x, spans = 41, plot=FALSE)
+spA <- spec.ar(x=list(ar=pAR, order=4, var.pred=1, frequency=1),
+               n.freq = spP$n.used %/% 2, plot=FALSE)
+r <- spP$spec / spA$spec
+stopifnot(abs(mean(r) - 1) < 0.003)
+## was 0.0268 in R 1.8.1
+
+
+## check for a Microsoft bug in timezones ahead of GMT
+stopifnot(!is.na(as.POSIXct("1970-01-01 00:00:00")))
+##
+
+
+## PR#6672, split.default on factors
+x <- c(NA, 1, 2)
+y <- as.factor(x)
+split(x, y)
+split(y, y) # included NAs in 1.8.1
+r1 <- tapply(x, y, length)
+r2 <- tapply(y, y, length)
+stopifnot(r1 == r2)
+##
+
+
+## PR#6652, points.formula with subset and extra arguments.
+roller <-
+    data.frame(weight = c(1.9, 3.1, 3.3, 4.8, 5.3, 6.1, 6.4, 7.6, 9.8, 12.4),
+               depression = c(2, 1, 5, 5, 20, 20, 23, 10, 30, 25))
+plot(depression ~ weight, data=roller, type="n")
+with(roller, points( depression~weight, subset=8:10, col=2))
+with(roller, points( depression~weight, subset=8:10, col=2:4))
+plot(depression ~ weight, data=roller, type="n")
+points(depression~weight, subset=8:10, col=2:4, data=roller)
+## first two gave error in 1.8.1
+
+
+## PR#4558 part 2
+x <- seq(as.POSIXct("2004-03-25"), as.POSIXct("2004-03-31"), by="DSTdays")
+stopifnot(length(x) == 7)
+## was length 6 in the UK time zone.
+
+
+## PR#6702 c/rbind on list matrices
+A <- matrix(as.list(1:4), 2, 2)
+(res <- cbind(A, A))
+stopifnot(typeof(res) == "list")
+(res <- rbind(A, A))
+stopifnot(typeof(res) == "list")
+## were not implemented in 1.8.1
+
+
+## Date objects with NA's
+(t1 <- strptime(c("6. Aug. 1930", "3. Nov. 1925", "28. Mar. 1959",
+                 NA, paste(1:29," Feb. 1960", sep=".")),
+               format = "%d. %b. %Y"))
+stopifnot(6 == length(print(s1 <- summary(t1))),
+          s1== summary(as.POSIXct(t1)),
+          6 == length(print(format(as.Date(s1)))) )
+## gave bizarre "NA's" entry in R 1.8.1 and 1.9.0alpha
+
+
+## as.Date on a factor
+as.Date(factor("2000-01-02"))
+## failed in 1.9.0
+
+
+## as.data.frame.list (PR#6782)
+xx <- list(row.names=1:2,foxglove=3:4,toadflax=5:6)
+foo <- as.data.frame(xx)
+stopifnot(identical(names(xx), names(foo)))
+## 1.9.0 changed the last name to "x".
+
+
+## type.convert quirk (PR#6781)
+res1 <- type.convert( c("abc","-"), as.is=TRUE, na.strings="-" )
+stopifnot(identical(mode(res1), "character"), is.na(res1[2]))
+## res1[2] was "-" <= 1.9.0.
+
+
+## subsetting factor swaps order of attributes (PR#6799)
+af <- factor(c('A','B'))
+stopifnot(identical(af, af[1:2]))
+## failed in 1.9.0 as the attributes were class, level for af[1:2]
+
+
+## Comparison between lists and expressions
+stopifnot(inherits(try(list(1) <= list(2)), "try-error"))
+e <- expression(3 + 2 * 4)
+stopifnot(inherits(try(e == e), "try-error"))
+## both were allowed but nonsense in 1.9.0
+
+
+## "nowhere" interpolation (PR#6809)
+try(approx(list(x=rep(NaN, 9), y=1:9), xout=NaN))
+## gave a seg.fault in 1.9.0
+
+
+## aggregate.data.frame failed if result would have one row
+## Philippe Hup�, R-help, 2004-05-14
+dat <- data.frame(a=rep(2,10),b=rep("a",10))
+aggregate(dat$a, by=list(a1=dat$a, b1=dat$b), NROW)
+## failed due to missing drop = FALSE
+
+
+## [<-.data.frame with a data-frame value
+x <- data.frame(a=1:3, b=4:6, c=7:9)
+info <- x[1:2]
+x[, names(info)] <-  info[1,]
+##
+
+
+## as.dendrogram.hclust()
+d <- as.dendrogram(hEU <- hclust(eurodist, "ave"))
+stopifnot(order.dendrogram(d) == hEU$order)# not new
+##N require(gclus); hE1 <- reorder.hclust(hEU, dis)
+## reconstruct without gclus (for R's testing)
+hE2 <- hEU; ii <- c(5,9:11, 13, 15:18); hE2$merge[ii,] <- hEU$merge[ii, 2:1]
+hE2$order <- as.integer(c(1,19,9,12,14,2,15,8,13,16,17,21,6,3,11,4,18,5,10,7,20))
+##N stopifnot(identical(hE1, hE2))
+d1 <- as.dendrogram(hE2)
+stopifnot(order.dendrogram(d1) == hE2$order,
+          identical(d1, rev(rev(d1))))
+## not true in 1.9.0
+
+
+## trunc on a Date
+trunc(xx <- Sys.Date()) # failed in 1.9.1
+x <- xx + 0.9
+stopifnot(identical(trunc(x), xx)) # gave next day in 1.9.1
+xx <- as.Date("1960-02-02")
+x <- xx + 0.2
+stopifnot(identical(trunc(x), xx)) # must not truncate towards 0.
+##
+
+### end of tests added in 1.9.1 ###
+
+## 1.9.1 patched
+
+## options(list('..', '..'))
+try(options(list('digits', 'width')))# give an error
+## gave a segfault in 1.9.1
+
+
+## PR#7100 seg faulted or path too long error on ././././././. ...
+length( list.files('.', all.files = TRUE, recursive = TRUE) )
+
+
+## PR#7116 segfaulted on A, later versions segfaulted on B or gave different
+## dims for the results.
+A <- cor(as.array(c(a=1,b=2)), cbind(1:2))
+B <- cor(cbind(1:2), as.array(c(a=1,b=2)))
+stopifnot(identical(A, B))
+
+
+## regression test for PR#7108
+ans <- gsub(" ", "", "b c + d | a * b", perl=TRUE) # NULL in 1.9.1
+stopifnot(identical(ans, gsub(" ", "", "b c + d | a * b")))
+gsub(" ", "", "a: 12345 :a", perl=TRUE) # segfaulted in 1.9.1
+## wrong answers, segfaults in 1.9.1.
+
+
+## regression test for PR#7132
+tmp <- data.frame(y=rnorm(8),
+                  aa=factor(c(1,1,1,1,2,2,2,2)),
+                  bb=factor(c(1,1,2,2,1,1,2,2)),
+                  cc=factor(c(1,2,3,4,1,2,3,4)))
+tmp.aov <- aov(y ~ cc + bb/aa, data=tmp)
+anova(tmp.aov)
+model.tables(tmp.aov, type="means")
+## failed in 1.9.1.
+
+if(require(survival)) { # required package
+  a <- Surv(1:4, 2:5, c(0,1,1,0))
+  str(a)
+  str(a[rep(1:4,3)], vec.len = 7)
+  detach("package:survival")
+}
+
+### end of tests added in 1.9.1 patched ###
+
+
+## names in columns of data frames
+x <- 1:10
+names(x) <- letters[x]
+DF <- data.frame(x=x)
+(nm <- names(DF$x))
+stopifnot(is.null(nm))
+DF$y1 <- x
+DF["y2"] <- x
+DF[, "y3"] <- x
+DF[["y4"]] <- x
+stopifnot(is.null(names(DF$y1)), is.null(names(DF$y2)),
+          is.null(names(DF$y3)), is.null(names(DF$y4)))
+# names were preserved in 1.9.x
+# check factors
+xx <- as.factor(x)
+DF <- data.frame(x=xx)
+(nm <- names(DF$xx))
+stopifnot(is.null(nm))
+DF$y1 <- xx
+DF["y2"] <- xx
+DF[, "y3"] <- xx
+DF[["y4"]] <- xx
+stopifnot(is.null(names(DF$y1)), is.null(names(DF$y2)),
+          is.null(names(DF$y3)), is.null(names(DF$y4)))
+# how about AsIs?  This should preserve names
+DF <- data.frame(x=I(x))
+(nm <- names(DF$x))
+stopifnot(identical(nm, names(x)))
+DF2 <- rbind(DF, DF[7:8,, drop=FALSE])
+(nm <- names(DF2$x))
+stopifnot(identical(nm, c(names(x), names(x)[7:8])))
+# and matrices?  Ordinary matrices will be split into columns
+x <- 1:10
+dim(x) <- c(5,2)
+dimnames(x) <- list(letters[1:5], c("i", "ii"))
+DF <- data.frame(x=I(x))
+DF2 <- rbind(DF, DF)
+(rn <- rownames(DF2$x))
+stopifnot(identical(rn, c(rownames(x), rownames(x))))
+class(x) <- "model.matrix"
+DF <- data.frame(x=x)
+DF2 <- rbind(DF, DF)
+(rn <- rownames(DF2$x))
+stopifnot(identical(rn, c(rownames(x), rownames(x))))
+## names were always preserved in 1.9.x, but rbind dropped names and dimnames.
+
+
+## cumsum etc dropped names
+x <- rnorm(10)
+names(x) <- nm <- letters[1:10]
+stopifnot(identical(names(cumsum(x)), nm),
+          identical(names(cumprod(x)), nm),
+          identical(names(cummax(x)), nm),
+          identical(names(cummin(x)), nm))
+x <- x+1i
+stopifnot(identical(names(cumsum(x)), nm),
+          identical(names(cumprod(x)), nm))
+## 1.9.x dropped names
+
+
+## complex superassignments
+e <- c(a=1, b=2)
+f <- c(a=1, b=2)
+g <- e
+h <- list(a=1, list(b=2, list(c=3, d=4), list(e=5)))
+j <- matrix(1, 2, 2)
+a <- "A"
+local({
+  eold <- e <- c(A=10, B=11)
+  hold <- h <- 2
+  jold <- j <- 7
+  gold <- g <- e
+  a <- "B"
+
+  e[2] <<- e[2]+1
+  names(f)[2] <<- a
+  g <<- 1
+  h[[2]][[h]][[ f[e==10] ]] <<- h
+  names(h[[2]][[h]])[f[e==10] ] <<- a
+  j[h, h] <<- h
+  colnames(j)[2] <<- a
+
+  stopifnot(identical(e, eold))
+  stopifnot(identical(h, hold))
+  stopifnot(identical(g, gold))
+  stopifnot(identical(j, jold))
+})
+
+stopifnot(identical(e, c(a=1, b=12)))
+stopifnot(identical(f, c(a=1, B=2)))
+stopifnot(identical(g, 1))
+stopifnot(identical(h, list(a=1, list(b=2, list(B=2, d=4), list(e=5)))))
+stopifnot(identical(as.vector(j), c(1, 1, 1, 2)))
+stopifnot(identical(colnames(j), c(NA,"B")))
+## gave error 'subscript out of bounds' in 1.9.1
+
+## make sure we don't get cycles out of changes to subassign3.
+x <- list(a=1, y=2)
+x$a <- x
+print(x)
+x$d <- x
+print(x)
+y <- x
+x$b <- y
+print(x)
+x$f <- y
+print(x)
+##
+
+
+## model.frame incorrectly preserved ts attributes
+x1 <- ts(c(1:10, NA))
+y1 <- ts(rnorm(11))
+lm(y1 ~ x1)
+lm(y1 ~ x1 + I(x1^2)) # second term has two classes
+## failed in 1.9.1
+
+
+## range checks missing in recursive assignments (PR#7196)
+l <- list()
+try(l[[2:3]] <- 1)
+l <- list(x=2)
+try(l[[2:3]] <- 1)
+l <- list(x=2, y=3)
+l[[2:3]] <- 1
+## first two segfaulted in 1.9.x
+
+
+## apply() on an array of dimension >=3 AND when for each iteration
+## the function returns a named vector of length >=2 (PR#7205)
+a <- array(1:24, dim=2:4)
+func1 <- function(x) c(a=mean(x), b=max(x))
+apply(a, 1:2, func1)
+## failed in 1.9.1
+
+
+# col2rgb must return a matrix for a single colour
+stopifnot(is.matrix(col2rgb("red")))
+## was vector at one point in pre-2.0.0
+
+
+## Subscripting matrices with NA's
+AAA <- array(1:6, c(6,1,1))
+idx <- c(1,2,NA,NA,5,6)
+B <- 10
+AAA[idx,1,1] <- B
+stopifnot(all.equal(as.vector(AAA), c(10,10,3,4,10,10)))
+## assigned only the first two elements in 1.9.1.
+## Tests for >= 2.0.0
+A <- c(1,2,3,4,5,6)
+A[idx] <- 27 # OK, one value
+stopifnot(identical(A, c(27,27,3,4,27,27)))
+try(A[idx] <- 6:1) # was 6 5 3 4 2 1 in 1.9.1
+stopifnot(inherits(.Last.value, "try-error"))
+
+AA <- matrix(c(1,2,3,4,5,6), 6, 1)
+AA[idx,] <- 27 # OK, one value
+stopifnot(identical(AA, matrix(c(27,27,3,4,27,27), 6, 1)))
+try(AA[idx,] <- 6:1) # was 6 5 3 4 4 3 in 1.9.1
+stopifnot(inherits(.Last.value, "try-error"))
+
+AAA <- array(c(1,2,3,4,5,6), c(6,1,1))
+AAA[idx,,] <- 27 # OK, one value
+stopifnot(identical(AAA, array(c(27,27,3,4,27,27), c(6,1,1))))
+try(AAA[idx,,] <- 6:1) # was 6 5 3 4 5 6 in 1.9.1
+stopifnot(inherits(.Last.value, "try-error"))
+## only length-1 values are allowed in >= 2.0.0.
+
+
+## hist with infinite values (PR#7220)
+hist(log(-5:100), plot = FALSE)
+## failed in 1.9.1: will warn, correctly.
+
+
+## merge problem with names/not in rbind.data.frame
+x <- structure(c("a", "b", "2", "0.2-26", "O", "O"), .Dim = 2:3,
+               .Dimnames = list(c("1", "2"), c("P", "V", "2")))
+y <- structure(c("a", "b", "2", "0.2-25", "O", "O"), .Dim = 2:3,
+               .Dimnames = list(c("1", "2"), c("P", "V", "1")))
+merge(x, y, all.y = TRUE)
+## failed for a while in pre-2.0.0
+
+
+## matrix responses in binomial glm lost names prior to 2.0.0
+y <- rbinom(10, 10, 0.5)
+x <- 1:10
+names(y) <- letters[1:10]
+ym <- cbind(y, 10-y)
+fit2 <- glm(ym ~ x, binomial)
+stopifnot(identical(names(resid(fit2)), names(y)))
+## Note: fit <- glm(y/10 ~ x, binomial, weights=rep(10, 10))
+## Does not preserve names in R < 2.0.1, but does in S.
+fit <- glm(y/10 ~ x, binomial, weights=rep(10, 10))
+stopifnot(identical(names(resid(fit)), names(y)))
+## The problem was glm.fit assumed a vector response.
+
+
+## dlogis(-2000) was NaN in <= 2.0.0.
+stopifnot(identical(dlogis(-2000), 0.0))
+##
+
+
+## short vectors in spline[fun]  (PR#7290)
+try(splinefun(1[0], 1[0])(1)) # segfault in <= 2.0.0
+for(meth in c("fmm", "nat", "per"))
+    stopifnot(all(splinefun(1, pi, method = meth)(0:2) == rep(pi, 3)))
+## exactly constant for n=1; was NA for "periodic" in <= 2.0.0
+
+
+## ecdf with NAs (part of PR#7292).
+x <- c(1,2,2,4,7, NA, 10,12, 15,20)
+ecdf(x)
+## failed in <= 2.0.0.
+
+
+## Incorrect use of as.Date segfaulted on some x86_64 systems.
+as.Date("2001", "%Y")
+## answer is usually current mon & day, but 2001-01-01 on Solaris.
+
+
+## rank and order accepted invalid inputs (and gave nonsense)
+x1 <- as.list(10:1)
+x2 <-  charToRaw("A test string")
+stopifnot(inherits(try(order(x1)), "try-error"),
+          inherits(try(order(x2)), "try-error"),
+          inherits(try(rank(x1)), "try-error"),
+          inherits(try(rank(x2)), "try-error"))
+## worked but gave 1:n in 2.0.0.
+stopifnot(inherits(try(sort(x1)), "try-error"),
+          inherits(try(sort(x2)), "try-error"),
+          inherits(try(sort(x1, partial=5)), "try-error"),
+          inherits(try(sort(x2, partial=5)), "try-error"))
+##
+
+
+## pmax failed with NA inputs
+pmax(c(1,2,NA), c(3,4,NA), na.rm=TRUE)
+## failed after for 2.0.0 change to subassignment
+
+
+## subassigning expression could segfault (PR#7326)
+foo <- expression(alpha, beta, gamma)
+foo[2]
+foo[2] <- NA
+foo
+## segfaulted in 2.0.0
+
+
+## incorrect arg matching in sum min max prod any all
+## Pat Burns, R-devel 2004-11-19
+stopifnot(identical(sum(1:4, NA, n = 78, na.rm = TRUE), 88))
+## was 11 in 2.0.1
+
+
+## segfault from text, P Ehlers, R-devel 2004-11-24
+plot(1:10)
+loc <- list(5, 6)
+try(text(loc, labels = "a"))
+## segfaulted in 2.0.1
+
+
+## automatic row.names can be number-like, MM, 2004-11-26
+d0 <- data.frame(x=1:3, y=pi*2:0)
+row.names(d0)[3] <- c("01.00")
+write.table(d0, (tf <- tempfile()))
+d <- read.table(tf)
+## gave error ("duplicate row.names") in 2.0.1
+stopifnot(all.equal(d,d0))
+unlink(tf)
+
+
+## seq() should be more consistent in returning "integer"
+stopifnot(typeof(seq(length=0)) == "integer",
+          identical(seq(length=0), seq(along.with=0[0])),
+          identical(seq(length=3), 1:3),
+          identical(seq(length=3), seq(along.with=1:3)))
+
+
+## labels.lm was broken (PR#7417)
+# part of example(lm)
+ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
+trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
+group <- gl(2,10,20, labels=c("Ctl","Trt"))
+weight <- c(ctl, trt)
+lm.D9 <- lm(weight ~ group)
+stopifnot(labels(lm.D9) == "group")
+## failed in 2.0.1, giving length 0
+
+
+## sprintf had no length check (PR#7554)
+a <- matrix (ncol=100, nrow=100, data=c(1,2,3,4,5))
+a.serial <- rawToChar(serialize(a, NULL, ascii=TRUE))
+try(sprintf('foo: %s\n', a.serial))
+## seqfaulted in 2.0.1
+
+
+## all/any did not coerce as the Blue Book described.
+for(x in c("F", "FALSE", "T", "TRUE", "NA")) {
+    print(all(x))
+    print(any(x))
+}
+all(list())
+any(list())
+## all failed in 2.0.1 with 'incorrect argument type'
+
+
+##---- named dimnames of  %*% and crossprod() -- matrices and 1-d arrays:
+tst1 <- function(m) {
+    stopifnot(identical(t(m) %*%  (m), crossprod(m)))
+    stopifnot(identical(m    %*% t(m), crossprod(t(m))))
+}
+tst2 <- function(x, y=x) {
+    stopifnot(identical(t(x) %*% (y),(crossprod(x,y) ->  C)))
+    stopifnot(identical(t(y) %*% (x),(crossprod(y,x) -> tC)))
+    stopifnot(identical(tC, t(C)))
+}
+
+{m1 <- array(1:2,1:2); dimnames(m1) <- list(D1="A", D2=c("a","b")); m1}
+tst1(m1)
+m2 <- m1; names(dimnames(m2)) <- c("", "d2"); tst1(m2)
+m3 <- m1; names(dimnames(m3)) <- c("", "")  ; tst1(m3)
+m4 <- m1; names(dimnames(m4)) <- NULL       ; tst1(m4)
+
+tst2(m1,m2)
+tst2(m1,m3)
+tst2(m1,m4)
+tst2(m2,m3)
+tst2(m2,m4)
+tst2(m3,m4)
+
+## 2) Now the 'same' with 1-d arrays:
+a1 <- m1; dim(a1) <- length(a1); dimnames(a1) <- dimnames(m1)[2]; a1 # named dn
+a2 <- a1; names(dimnames(a2)) <- NULL ; a2 # unnamed dn
+a3 <- a1; dimnames(a3) <- NULL ; a3 # no dn
+stopifnot(identical(dimnames(t(a1))[2], dimnames(a1)))
+## in version <= 2.0.1,  t(.) was loosing names of dimnames()
+tst1(a1)# failed in 2.0.1 ("twice")
+tst1(a2)# failed in 2.0.1
+tst1(a3)# ok
+## these all three failed in (2.0.1) for more than one reason:
+tst2(a1,a2)
+tst2(a1,a3)
+tst2(a2,a3)
+## end {testing named dimnames for %*% and crossprod()}
+
+
+## -- coercing as.data.frame(NULL) to a pairlist didn't work
+y<-1:10
+eval(quote(y), as.data.frame(NULL))
+## NULL as the second argument of eval should be treated
+## like a list or data frame
+eval(quote(y), NULL)
+## end
+
+
+## data frame with nothing to replace
+A <- matrix(1:4, 2, 2)
+A[is.na(A)] <- 0
+A <- as.data.frame(A)
+A[is.na(A)] <- 0
+## last not accepted prior to 2.1.0
+
+
+## scan on partial lines on an open connection
+cat("TITLE extra line", "235 335 535 735", "115 135 175",
+    file="ex.data", sep="\n")
+cn.x <- file("ex.data", open="r")
+res <- scan(cn.x, skip=1, n=2)
+res <- c(res, scan(cn.x, n=2))
+res <- c(res, scan(cn.x, n=2))
+res <- c(res, scan(cn.x, n=2))
+close(cn.x, sep=" ")
+unlink("ex.data")
+stopifnot(identical(res, c(235, 335, 535, 735, 115, 135, 175)))
+## dropped some first chars < 2.1.0
+
+
+## PR#7686 formatC does not pick up on incorrect 'flag' inputs
+try(formatC(1, flag="s"))
+## segfaulted in 2.0.1
+
+
+## PR#7695 contrasts needed coercion to double
+c <- matrix(c(0,1,2), nrow=3)
+storage.mode(c) <- "integer"
+f <- factor(1:3)
+contrasts(f, 1) <- c
+x <- model.matrix(~f)
+stopifnot(x == c(1,1,1,0,1,2))
+## gave machine-dependendent silly numbers in 2.0.1
+
+
+## extreme (de-normalized) axis range
+x <- 2^-seq(67, 1067, length=20)
+plot(x^.9, x, type="l", log="xy") # still warning and ugly labels because
+                                 ## e.g., 10^-323 |==> 9.881313e-324 numerically
+## gave error "log - axis(), 'at' creation, _LARGE_ range..." in 2.0.1
+
+
+## torture test of scan() with allowEscape=TRUE
+tf <- tempfile()
+x <- c('ABC', '"123"', "a'b")
+cat(shQuote(x, "cmd"), sep="\n", file=tf)
+(x2 <- scan(tf, ""))
+unlink(tf)
+stopifnot(identical(x, x2))
+## At one point pre-2.1.0 got confused
+
+
+## se.contrast failed in 2.0.1 with some effectively one-stratum designs.
+old <- getOption("contrasts")
+options(contrasts = c("contr.helmert", "contr.poly"))
+Lab <- factor(rep(c("1","2","3"), each=12))
+Material <- factor(rep(c("A","B","C","D"),each=3,times=3))
+Measurement <- c(12.20,12.28,12.16,15.51,15.02,15.29,18.14,18.08,18.21,
+                 18.54,18.36,18.45,12.59,12.30,12.67,14.98,15.46,15.22,
+                 18.54,18.31,18.60,19.21,18.77,18.69,12.72,12.78,12.66,
+                 15.33,15.19,15.24,18.00,18.15,17.93,18.88,18.12,18.03)
+testdata <- data.frame(Lab, Material, Measurement)
+(test.aov <- aov(Measurement ~ Material + Error(Lab/Material),
+                 data = testdata))
+eff.aovlist(test.aov)
+(res <- se.contrast(test.aov,
+                    list(Material=="A", Material=="B",
+                         Material=="C", Material=="D"),
+                    coef = c(1, 1, -1, -1), data = testdata))
+## failed in 2.0.1 as a matrix was 1 x 1.
+
+## 2.0.1 also failed to check for orthogonal contrasts
+## in calculating the efficiencies (which are 1 here).
+options(contrasts = c("contr.treatment", "contr.poly"))
+(test2.aov <- aov(Measurement ~ Material + Error(Lab/Material),
+                  data = testdata))
+(res2 <- se.contrast(test2.aov,
+                     list(Material=="A", Material=="B",
+                          Material=="C", Material=="D"),
+                     coef = c(1, 1, -1, -1), data = testdata))
+stopifnot(all.equal(res, res2))
+
+## related checks on eff.aovlist
+# from example(eff.aovlist) # helmert contrasts
+Block <- gl(8, 4)
+A<-factor(c(0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1))
+B<-factor(c(0,0,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1))
+C<-factor(c(0,1,1,0,1,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,1,1,0,0))
+Yield <- c(101, 373, 398, 291, 312, 106, 265, 450, 106, 306, 324, 449,
+           272, 89, 407, 338, 87, 324, 279, 471, 323, 128, 423, 334,
+           131, 103, 445, 437, 324, 361, 302, 272)
+aovdat <- data.frame(Block, A, B, C, Yield)
+old <- getOption("contrasts")
+options(contrasts=c("contr.helmert", "contr.poly"))
+fit <- aov(Yield ~ A * B * C + Error(Block), data = aovdat)
+eff1 <- eff.aovlist(fit)
+options(contrasts = old)
+fit <- aov(Yield ~ A * B * C + Error(Block), data = aovdat)
+eff2 <- eff.aovlist(fit)
+stopifnot(all.equal(eff1, eff2)) # will have rounding-error differences
+## Were different in earlier versions
+
+
+## parts of PR#7742 and other examples
+sub('^','v_', 1:3, perl=TRUE)
+## 2.0.1 did not coerce to character (nor was it documented to).
+x <- LETTERS[1:3]
+stopifnot(identical(paste('v_', x, sep=""),
+                    sub('^','v_', x, perl = TRUE)))
+## 2.0.1 added random chars at the end
+stopifnot(identical(paste('v_', x, sep=""), sub('^','v_', x)))
+## 2.0.1 did not substitute at all
+(x <- gsub("\\b", "|", "The quick brown fox", perl = TRUE))
+stopifnot(identical(x, "|The| |quick| |brown| |fox|"))
+## checked against sed: 2.0.1 infinite-looped.
+## NB, the help page warns you not to do this one except in perl
+(x <- gsub("\\b", "|", "The quick brown fox", perl = TRUE))
+stopifnot(identical(x, "|The| |quick| |brown| |fox|"))
+## 2.0.1 gave wrong answer
+## Another boundary case, same warning
+## (x <- gsub("\\b", "|", " The quick "))
+## stopifnot(identical(x, " |The| |quick| "))
+(x <- gsub("\\b", "|", " The quick ", perl = TRUE))
+stopifnot(identical(x, " |The| |quick| "))
+## and some from a comment in the GNU sed code
+x <- gsub("a*", "x", "baaaac")
+stopifnot(identical(x, "xbxcx"))
+x <- gsub("a*", "x", "baaaac", perl = TRUE)
+stopifnot(identical(x, "xbxcx"))
+## earlier versions got "bxc" or "xbxxcx"
+(x <- gsub("^12", "x", "1212")) # was "xx"
+stopifnot(identical(x, "x12"))
+(x <- gsub("^12", "x", "1212", perl = TRUE)) # was "xx"
+stopifnot(identical(x, "x12"))
+## various fixes in 2.1.0
+
+## length(0) "dist":
+(d01. <- dist(matrix(0., 0,1)))
+## failed in 2.0.1 and earlier
+
+
+## Wish of PR#7775
+x <- matrix(0, nrow=0, ncol=2)
+colSums(x); rowSums(x)
+x <- matrix(0, nrow=2, ncol=0)
+colSums(x); rowSums(x)
+## not allowed in 2.0.1
+
+
+## infinite recursion in 2.0.1 (and R-beta 2005-04-11):
+summary(data.frame(mat = I(matrix(1:8, 2))))
+summary(data.frame(x = gl(2,2), I(matrix(1:8, 4))))
+##
+
+
+
+### fixes for 2.1.1 ###
+
+## PR#7792: predict.glm dropped names
+nm <- names(predict(glm(y ~ x, family=binomial,
+                        data=data.frame(y=c(1, 0, 1, 0), x=c(1, 1, 0, 0))),
+                    newdata=data.frame(x=c(0, 0.5, 1)), type="response"))
+stopifnot(identical(nm, as.character(1:3)))
+## no names in 2.1.0
+
+
+## PR#7808: as.data.frame: Error in "names<-.default"
+x1 <- array(1:9, c(3, 3, 3))
+FUN <- function(x1, x2, x3, x4) cbind(x1[, 1, 1:2], x1[, 2, 1:2])[, 1]
+as.data.frame(FUN(x1[1:3,,], x2 = c("a", "b"),
+                  x3 = c("a", "b"), x4 = c("a", "b")))
+## failed in 2.1.0
+
+
+## PR#7797 citation() chops "Roeland "
+stopifnot(as.personList("Roeland Lastname")[[1]]$given[1] == "Roeland")
+## was empty in 2.1.0.
+
+
+## runmed()'s Turlach algorithm seg.faulted in rare cases:
+t2 <- c(-2,-7,5,2,-3, 0,1,3,2,-1,2,1,2,1,1,1,-2,4, 1,1,1, 32)
+rS <- runmed(t2, k=21, algorithm= "Stuetzle")
+rT <- runmed(t2, k=21, algorithm= "Turlach")
+stopifnot(identical(rS, rT))
+## seg.fault in 2.1.0
+
+
+## duplicated and unique on a list
+x <- list(1, 2, 3, 2)
+duplicated(x)
+unique(x)
+## unique failed in 2.1.0
+
+
+## prog.aovlist on data with row.names
+N <- c(0,1,0,1,1,1,0,0,0,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0)
+P <- c(1,1,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,0,0,1,0,1,1,0)
+K <- c(1,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,0,1,0)
+yield <- c(49.5,62.8,46.8,57.0,59.8,58.5,55.5,56.0,62.8,55.8,69.5,
+	   55.0, 62.0,48.8,45.5,44.2,52.0,51.5,49.8,48.8,57.2,59.0,53.2,56.0)
+npk <- data.frame(block=gl(6,4), N=factor(N), P=factor(P),
+		  K=factor(K), yield=yield)
+row.names(npk) <- letters[2:25]
+npk.aovE <- aov(yield ~  N*P*K + Error(block), npk)
+pr <- proj(npk.aovE)
+## failed in 2.1.0
+
+
+## PR#7894: Reversing axis in a log plot
+x <- 1:3
+plot(x, exp(x), log = "y", ylim = c(30,1))
+## gave error (and warning) in  log - axis(), 'at' creation
+
+### end of tests added in 2.1.0 patched ###
+
+
+
+## Multibyte character set regular expressions had buffer overrun
+regexpr("[a-z]", NA)
+## crashed on 2.1.1 on Windows in MBCS build.
+
+
+## PR#8033: density with 'Inf' in x:
+d <- density(1/0:2, kern = "rect", bw=1, from=0, to=1, n=2)
+stopifnot(all.equal(rep(1/sqrt(27), 2), d$y, tol=1e-14))
+## failed in R 2.1.1 (since about 1.9.0)
+
+stopifnot(all.equal(Arg(-1), pi))
+## failed in R <= 2.1.1
+
+
+## PR#7973: reversed log-scaled axis
+plot(1:100, log="y", ylim=c(100,10))
+stopifnot(axTicks(2) == 10*c(10,5,2,1))
+## empty < 2.2.0
+
+
+## rounding errors in window.default (reported by Stefano Iacus)
+x <- ts(rnorm(50001), start=0, deltat=0.1)
+length(window(x, deltat=0.4))
+length(window(x, deltat=1))
+length(window(x, deltat=4.9))
+length(window(x, deltat=5))
+## last failed in 2.1.1
+
+
+## incorrect sort in order with na.last != NA
+x <- c("5","6",NA,"4",NA)
+y <- x[order(x,na.last=FALSE)]
+stopifnot(identical(y, c(NA, NA, "4", "5", "6")))
+## 2.1.1 sorted "4" first: the fence was wrong.
+
+
+## integer overflow in cor.test (PR#8087)
+n <- 46341
+(z <- cor.test(runif(n), runif(n), method = "spearman"))
+stopifnot(!is.na(z$p.value))
+##
+
+## seek on a file messed up in Windows (PR#7896)
+tf <- tempfile()
+f <- file(tf, "w+b")
+writeChar("abcdefghijklmnopqrstuvwxyz", f, eos=NULL)
+seek(f, 0, "end", rw="r")
+stopifnot(seek(f, NA, rw="r") == 26) # MinGW messed up seek to end of file that was open for writing
+close(f)
+f <- file(tf, "rb")
+seek(f, 12)
+stopifnot(readChar(f, 1) == "m")  # First patch messed up on read-only files
+close(f)
+unlink(tf)
+##
+
+### end of tests added in 2.1.1 patched ###
+
+
+
+## tests of hexadecimal constants
+x <- 0xAbc
+stopifnot(x == 2748)
+xx <- as.integer("0xAbc")
+stopifnot(x == xx)
+xx <- as.numeric("0xAbc")
+stopifnot(x == xx)
+stopifnot(as.integer("13.7") == 13)
+## new in 2.2.0
+
+
+## save() of raw vector was incorrect on big-endian system
+(y <- x <- charToRaw("12345"))
+save(x, file="x.Rda")
+rm(x)
+load("x.Rda")
+x
+stopifnot(identical(x, y))
+unlink("x.Rda")
+## 00 00 00 00 00 in 2.1.0 on OS X (now macOS)
+## fixed for 2.1.1, but test added only in 2.2.x
+
+
+## PR#7922:  Could not use expression() as an initial expression value
+setClass("test2", representation(bar = "expression"))
+new("test2", bar = expression())
+## failed
+
+
+## Ops.data.frame had the default check.names=TRUE
+DF <- data.frame("100"=1:2, "200"=3:4, check.names=FALSE)
+DF/DF
+stopifnot(identical(names(DF), names(DF/DF)))
+## DF/DF names had X prepended < 2.2.0
+
+
+## sum(T) was double
+x <- 1:10
+stopifnot(typeof(sum(x)) == "integer")
+x <- c(TRUE, FALSE)
+stopifnot(typeof(sum(x)) == "integer")
+## double < 2.2.0
+
+
+## Overflow in PrintGenericVector
+x <- paste(1:5000, collapse="+")
+as.matrix(list(a=1:2, b=2:3, c=x))
+## segfault in 2.1.1, silent truncation in 2.1.1 patched
+
+
+## weighted.residuals for glm fits (PR#7961)
+set.seed(1)
+x <- runif(10)
+y <- x + rnorm(10)
+w <- 0:9
+r1 <- weighted.residuals(lm(y ~ x, weights = w))
+r2 <- weighted.residuals(glm(y ~ x, weights = w))
+stopifnot(all.equal(r1, r2))
+## different in 2.1.1
+
+
+## errors in add1.{lm,glm} when adding vars with missing values(PR#8049)
+set.seed(2)
+y <- rnorm(10)
+x <- 1:10
+is.na(x[9]) <- TRUE
+
+lm0 <- lm(y ~ 1)
+lm1 <- lm(y ~ 1, weights = rep(1, 10))
+
+add1(lm0, scope = ~ x)
+add1(lm1, scope = ~ x)  ## error in 2.1.1
+
+glm0 <- glm(y ~ 1)
+glm1 <- glm(y ~ 1, weights = rep(1, 10))
+glm2 <- glm(y ~ 1, offset = rep(0, 10))
+
+add1(glm0, scope = ~ x)  ## error in 2.1.1
+add1(glm1, scope = ~ x)  ## error in 2.1.1
+add1(glm2, scope = ~ x)  ## error in 2.1.1
+##
+
+
+## levels<-.factor dropped other attributes.
+## Heinz Tuechler, R-help, 2005-07-18
+f1 <- factor(c("level c", "level b", "level a", "level c"), ordered=TRUE)
+attr(f1, "testattribute") <- "teststring"
+(old <- attributes(f1))
+levels(f1) <- c("L-A", "L-B", "L-C")
+f1
+(new <- attributes(f1))
+new$levels <- old$levels <- NULL
+stopifnot(identical(old, new))
+f2 <- factor(letters[1:4])
+levels(f2) <- as.character(c(1:3, NA))
+f2
+stopifnot(nlevels(f2) == 3)
+## dropped other attributes < 2.2.0.
+
+
+## regressed at one point in pre-2.2.0
+A <- matrix(pi, 0, 2)
+stopifnot(identical(dim(A), dim(format(A))))
+## dropped dim at one point
+
+
+## ls.diag with missing values (PR#8139)
+x <- matrix(c(1,-1,1,-1,1,-1,1,-1,1,-1,  1,2,3,4,5,6,7,8,9,10), 10, 2)
+y <- as.matrix(c(1,2,3,NA,3,4,3,4,5,4))
+wt <- c(1,1,1,1,1,1,1,1,1,0)
+regres <- lsfit(x, y, wt=wt)
+regdiag <- ls.diag(regres)
+## failed < 2.2.0.
+
+
+## window.default had an inappropriate tolerance
+a <- ts(1:5000, start = 0, freq = 10)
+b <- lag(a, 1)
+bb <- window(b, start = 0)
+stopifnot(length(bb) == length(a) - 1)
+## was length(a) - 2 in 2.1.1, since the tolerance was abs(start) * ts.end
+
+
+## subassignment of length zero vector to NULL gave garbage answer (PR#8157)
+x <- NULL
+x[[1]] <- numeric(0)
+stopifnot(length(x[[1]]) == 0)
+## failed < 2.2.0
+
+
+## some checks for raw in data frames and lists
+x <- charToRaw("test")
+(z <- data.frame(x))
+z$y <- x
+z[["y2"]] <- x
+z["y3"] <- x
+z
+## lists use separate code
+z <- list(x=x)
+z$y <- x
+z[["y2"]] <- x
+z["y3"] <- list(x)
+z
+## Not completely supported prior to 2.2.0
+
+
+### end of tests added in 2.2.0 ###
+
+
+## summary.matrix failed on some classed objects
+surv <- structure(c(2.06, 2.13, 0.09, 0.27, 1, 0.36, 3.04, 0.67, 0.35,
+                    0.24, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0),
+                  .Dim = c(10L, 2L),
+                  .Dimnames = list(NULL, c("time", "status")),
+                  type = "right", class = "Surv")
+summary(surv)
+## Had infinite recursion (sometimes segfault) on 2.2.0.
+
+## need fuzz even for ">=" :
+set.seed(1)
+stopifnot(all.equal(chisq.test(cbind(1:0, c(7,16)), simulate.p = TRUE)$p.value,
+                    0.3368315842, tol = 1e-6))
+## some i686 platforms gave 0.00049975
+
+
+## PR#8228 image() failed on a matrix with all NAs
+image(z=matrix(NA, 1, 1), x=0:1, y=0:1)
+
+
+## read.fwf(header=TRUE) failed (PR#8226)
+ff <- tempfile()
+cat(file=ff, "A\tB\tC", "123456", "987654", sep="\n")
+z <- read.fwf(ff, width=c(1,2,3), header=TRUE)
+stopifnot(identical(names(z), LETTERS[1:3]))
+unlink(ff)
+## failed in <= 2.2.0
+
+## diag() failed if matrix had NA dimnames
+x <- matrix(1, 2, 2)
+dimnames(x) <- list(c("a", NA), c("a", NA))
+diag(x)
+
+
+## colnames in pivoted decompositions (PR#8258)
+A <- 1:10
+X <- cbind(A,B=A^2, C=A^2-A, D=1)
+qrX <- qr(X)
+oo <- order(qrX$pivot)
+Q <- qr.Q(qrX)
+R <- qr.R(qrX)
+(z <- (Q%*%R)[,oo])
+stopifnot(identical(colnames(X), colnames(z)))
+
+qrX <- qr(X, LAPACK=TRUE)
+oo <- order(qrX$pivot)
+Q <- qr.Q(qrX)
+R <- qr.R(qrX)
+(z <- (Q%*%R)[,oo])
+stopifnot(identical(colnames(X), colnames(z)))
+
+Y <- crossprod(X)
+U <- chol(Y, pivot=TRUE)
+oo <- order(attr(U, "pivot"))
+(z <- t(U[,oo])%*% U[,oo])
+stopifnot(identical(colnames(X), colnames(z)))
+## unpivoted colnames in R <= 2.2.0
+
+
+## Im(-1) (PR#8272)
+stopifnot(all.equal(Im(c(1, 0, -1)), rep(0, 3)))
+## R <= 2.2.0 had Im and Arg the same for non-complex numbers
+
+
+## rounding errors in aggregate.ts
+aggregate(as.ts(c(1,2,3,4,5,6,7,8,9,10)),1/5,mean)
+## failed in 2.2.0
+
+
+## prcomp(tol=1e-6)
+x <- matrix(runif(30),ncol=10)
+s <- prcomp(x, tol=1e-6)
+stopifnot(length(s$sdev) == ncol(s$rotation))
+summary(s)
+## last failed in 2.2.0
+
+
+## mapply did not test type of MoreArgs
+try(mapply(rep,times=1:4, MoreArgs=42))
+## segfaulted in 2.2.0
+
+
+## qbinom had incorrect test for p with log=TRUE
+(z <- qbinom(-Inf, 1, 0.5, log.p = TRUE))
+stopifnot(is.finite(z))
+## was NaN in 2.2.0
+
+
+## t(.) with NULL dimnames
+x <- diag(2)
+dimnames(x) <- list(NULL, NULL)
+stopifnot(identical(x, t(x)),
+          identical(dimnames(x), dimnames(t(array(3, 1, dimnames=list(NULL))))))## dropped the length-2 list till 2.2.0
+
+
+## infinite influence measures (PR#8367)
+data(occupationalStatus)
+Diag <- as.factor(diag(1:8))
+Rscore <- scale(as.numeric(row(occupationalStatus)), scale = FALSE)
+Cscore <- scale(as.numeric(col(occupationalStatus)), scale = FALSE)
+Uniform <- glm(Freq ~ origin + destination + Diag + Rscore:Cscore,
+	       family = poisson, data = occupationalStatus)
+Ind <- as.logical(diag(8))
+residuals(Uniform)[Ind] #zero/near-zero
+stopifnot(is.nan(rstandard(Uniform)[Ind]),
+          is.nan(rstudent (Uniform)[Ind]),
+          is.nan(dffits   (Uniform)[Ind]),
+          is.nan(covratio (Uniform)[Ind]),
+          is.nan(cooks.distance(Uniform)[Ind]))
+## had infinities in 2.2.0 on some platforms
+## plot.lm() on <glm> objects:
+plot(Uniform) # last plot gives warning on h_ii ~= 1
+plot(Uniform, 6) # added 2006-01-10
+plot(Uniform, 5:6)# failed for a few days 2008-05
+plot(Uniform, 1:2, caption = "")# ditto
+##
+
+
+### end of tests added in 2.2.1 ###
+
+## sub(fixed=TRUE), reported by Roger Peng 2005-12-21
+x <- 0:10
+v <- paste(x, "asdf", sep=".")
+(xx <- sub(".asdf", "", v, fixed = TRUE))
+stopifnot(nchar(xx) == nchar(x), xx == x)
+## had random trailing bytes from second element on in 2.2.1.
+## identical reported true, fixed in 2.3.0.
+
+
+## rbind on data frames with 0 rows (PR#8506)
+foo <- data.frame(x = 1:10, y = rnorm(10))
+bar1 <- rbind.data.frame(foo[1:5,], foo[numeric(0),])
+stopifnot(dim(bar1) == c(5,2))
+bar2 <- rbind.data.frame(a = foo[1:5,], b = foo[numeric(0),])
+stopifnot(dim(bar2) == c(5,2))
+## Last had 6 rows in 2.2.1, and was a corrupt data frame
+
+## environments are recursive but cannot be indexed - all.equal.default()
+d <- data.frame(k=1:7, n=2:8, x=0:6)
+r <- glm(cbind(k, n-k) ~ x, family=binomial, data=d)
+stopifnot(all.equal(r,r))
+## failed in 2.2.1
+
+### end of tests added in 2.2.1 patched ###
+
+
+## sort used to preserve inappropriate attributes and not always sort names.
+x <- runif(10)
+tsp(x) <- c(1,10,1)
+(z <- sort(x))                 # kept tsp attribute
+stopifnot(is.null(attributes(z)))
+(z <- sort(x, method="quick")) # same
+stopifnot(is.null(attributes(z)))
+(z <- sort(x, partial = 1:10)) # same
+stopifnot(is.null(attributes(z)))
+
+names(x) <- letters[1:10]
+o <- sort.list(x)
+z2 <- structure(c(x)[o], names=names(x)[o])
+(z <- sort(x))                 # sorted names, dropped the tsp attribute
+stopifnot(identical(z, z2))
+(z <- sort(x, method="quick")) # sorted names, kept the tsp attribute.
+stopifnot(identical(z, z2))
+(z <- sort(x, partial = 1:10)) # did not sort names, kept tsp attribute
+stopifnot(is.null(attributes(z)))
+## fixed for 2.3.0 to sort names (except partial), drop all other attributes.
+
+
+## formatC on as.single (PR#8211)
+# not documented to work but someone tried it.
+(z <- formatC(as.single(1)))
+stopifnot(identical(z, "1"))
+## was wrong < 2.3.0
+
+
+## outer on factors was broken in pre-2.3.0
+x <- factor(1:3)
+outer(x, x, "!=")
+## failed 2005-10-17
+
+
+## add tests for < 0 shape in [dpqr]gamma
+dgamma(1, -2)
+pgamma(1, -2)
+qgamma(0.95, -2)
+rgamma(3, -20)
+## all errors < 2.1.1, now NaNs
+
+
+## Make sure reference to local environment is serialized
+f <- function() { function(){} }
+serialize(f(), NULL)
+##
+
+
+## dummy_vfprintf with overlong format
+xx <- paste(rep("a", 10000), collapse="+")
+con <- gzfile("test.gz", "w")
+writeLines(xx, con)
+close(con)
+unlink("test.gz")
+## segfaulted in 2.2.0 on some x86_64 systems.
+
+
+## format() with *.marks:
+x <- 1.2345 + 10^(0:5)
+ff <- format(x, width = 11, big.mark = "'")
+stopifnot(nchar(ff) == 12)
+## small marks test
+f2 <- format(x, big.mark = "'", small.mark="_", small.interval = 2)
+nc <- nchar(f2)
+stopifnot(substring(f2, nc,nc) != "_", # no traling small mark
+          nc == nc[1])# all the same
+fc <- formatC(1.234 + 10^(0:8), format="fg", width=11, big.mark = "'")
+stopifnot(nchar(fc) == 11)
+## had non-adjusted strings before 2.3.0
+
+
+## data.matrix on zero-length columns
+DF <- data.frame(x=c("a", "b"), y=2:3)[FALSE,]
+stopifnot(is.numeric(data.matrix(DF)))
+# was logical in 2.2.1.
+DF <- data.frame(a=I(character(0)))
+X <- data.matrix(DF)
+stopifnot(is.numeric(X))
+## gave logical matrix in 2.2.1.
+
+stopifnot(pbirthday(950, coincident=250) == 0,
+          pbirthday(950, coincident=200) > 0)
+## gave error before 2.3.0
+
+
+## raw matrices (PR#8529/30)
+v <- as.raw(c(1:6))
+dim(v) <- c(2,3)
+dimnames(v) <- list(c("x","y"), c("P", "Q", "R"))
+v
+s <- as.raw(c(11:16))
+dim(s) <- c(2,3)
+s
+rbind(s,v,v)
+(m <- cbind(s,v,v,s))
+m[2,4] <- as.raw(254)
+m
+m[1:2,2:4] <- s
+m
+## unimplemented before 2.3.0
+
+
+## window with non-overlapping ranges (PR#8545)
+test <- ts(1:144, start=c(1,1), frequency=12)
+window(test, start=c(15,1), end=c(17,1), extend=TRUE)
+## failed < 2.3.0
+
+
+## pbinom(size=0) gave NaN (PR#8560)
+x <- c(-1,0,1,2)
+stopifnot(identical(pbinom(x, size = 0, p = 0.5), c(0,1,1,1)))
+## 2.2.1 gave NaN in all cases (forced explicitly in C code).
+
+
+## Limits on [dpqr]nbinom and [dqpr]geom
+stopifnot(is.nan(dnbinom(0, 1, 0)), dnbinom(0, 1, 1) == 1,
+          pnbinom(c(-1, 0, 1), 1, 1) == c(0, 1, 1),
+          is.nan(pnbinom(0, 1, 0)),
+          qnbinom(0.5, 1, 1) == 0,
+          is.nan(qnbinom(0.5, 1, 0)),
+          is.finite(rnbinom(1, 1, 1)),
+          !is.finite(rnbinom(1, 1, 0)))
+## d allowed p=0, [pq] disallowed p=1 for R < 2.3.0, r gave NaN for p=1.
+stopifnot(is.nan(dgeom(0, 0)), dgeom(0, 1) == 1,
+          pgeom(c(-1, 0, 1), 1) == c(0, 1, 1), is.nan(pgeom(0, 0)),
+          qgeom(0.5, 1) == 0, is.nan(qgeom(0.5, 0)),
+          is.finite(rgeom(1, 1)),
+          !is.finite(rgeom(1, 0)))
+
+
+## A response to PR#8528  incorrectly claimed these to be wrong.
+stopifnot(all.equal(df(0, 2, 2), 1))
+stopifnot(is.infinite(df(0, 1.3, 2)))
+x <- 1e-170
+stopifnot(all.equal(pbeta(x,x,x), 0.5))
+## just a regression check.
+## This underflowed
+stopifnot(all.equal(dbeta(x,x,x), 0.5))
+## this was slow
+stopifnot(system.time(qnbinom(1e-10, 1e3, 1e-7))[3] < 0.1)
+## but this failed
+qnbinom(0.5, 10000000000, 0.000000002)
+## infinite-looped in 2.2.1 (answer is approx 4e18)
+qpois(0.9, 1e50)
+## infinite-looped in 2.2.1
+z <- 10^seq(10, 300, 10)
+stopifnot(all.equal(pt(-z, 1, log=TRUE), pcauchy(-z, 1, log=TRUE)))
+## failed at about 1e150 in 2.2.1
+stopifnot(pt(-1e200, 0.001) > 0)
+## was 0 in 2.2.1, should be about 31%
+
+
+## all.equal.numeric overflowed for large integers
+set.seed(1); r1 <- .Random.seed
+set.seed(2); r2 <- .Random.seed
+stopifnot(is.character(all.equal(r1, r2)))
+## all.equal() gave NA in 2.2.1
+
+
+## support for raw indices in for() was added in 2.3.0
+xx <- as.raw(40:48)
+for(i in xx) print(i)
+## was error < 2.3.0
+
+
+## as.list on a symbol, for S-compatibility
+as.list(as.name("data.frame"))
+## was error in 2.2.1
+
+
+## min ignored INT_MAX, (PR#8731)
+stopifnot(min(.Machine$integer.max) == .Machine$integer.max)
+stopifnot(max(-.Machine$integer.max) == -.Machine$integer.max)
+op <- options(warn=2)
+min(Inf)
+max(-Inf)
+options(op)
+## were +/-Inf with warning in 2.2.1.
+
+
+## PR#8718: invalid usage in R >= 2.7.0
+#a <- matrix(2,2,2)
+#apply(a,1,"$","a")
+#apply(a,1,sum)
+## first apply was corrupting apply() code in 2.2.1
+
+
+## NULL results in apply()
+apply(as.matrix(1), 1, function(x) NULL)
+## was error in 2.2.1.
+
+
+## sum on data frames (PR#8385)
+DF <- data.frame(m1=1:2, m2=3:4)
+sum(DF)
+sum(DF=DF)  # needed arg named x
+sum(DF, DF) # failed
+DF[1, 1] <- NA
+stopifnot(is.na(sum(DF)), sum(DF, na.rm=TRUE) == 9)
+## failures < 2.4.0
+
+## plot.lm
+# which=4 failed in R 1.0.1
+par(mfrow=c(1,1), oma= rep(0,4))
+summary(lm.fm2 <- lm(Employed ~ . - Population - GNP.deflator, data = longley))
+for(wh in 1:6) plot(lm.fm2, which = wh)
+
+op <- par(mfrow = c(2,2), mar = .1+c(3,3,2,1), mgp = c(1.5, .6, 0))
+y <- rt(200, df= 3)
+plot(lm(y ~ 1))
+par(op)
+## 4th plot (which = 5: "leverages") failed in 2.2.0 <= R <= 2.3.0
+
+
+## Re-fix PR#8506
+z <- rbind(x = data.frame(a = 1, b = 2), y = data.frame(a = 1, b = 2))
+stopifnot(row.names(z) == c("x", "y"))
+## were NAs (and failed to print) in 2.3.0
+
+dd <- data.frame(x = 3:4)
+stopifnot(identical(rownames(dd), row.names(dd)),
+          identical(rownames(dd), c("1", "2")))
+## one was integer in an intermediate version of "pre 2.4.0"
+
+
+## mean on integer vector ignored NAs
+stopifnot(is.na(mean(NA)))
+## failed in R 2.3.0
+
+
+## title etc failed if passed col etc of length > 1
+plot(1:2)
+title("foo", col=1:3)
+title("foo", cex=1:3)
+title("foo", lty=1:3)
+title("foo", lwd=1:3)
+title("foo", bg=4:7)
+## threw errors in R <= 2.3.0
+
+
+## glm did not allow array offsets
+df1 <- data.frame(u=1:10,
+                  v=rpois(10,10),
+                  z=array(1,10, dimnames=list(1:10)))
+glm(v ~ u+offset(log(z)), data=df1, family=poisson)
+## was error in R <= 2.3.0
+
+
+## invalid values of a logical vector from bindingIsLocked
+## Martin Morgan, R-devel, 2006-05-14
+e <- new.env()
+e$x <- 1
+e$y <- 2
+lockBinding("x", e)
+stopifnot(bindingIsLocked("x", e), bindingIsLocked("x", e)==TRUE,
+          !bindingIsLocked("y", e), bindingIsLocked("y", e)==FALSE)
+## on some systems in R <= 2.3.0, bindingIsLocked("x", e)==TRUE was false
+
+
+## ccf on non-aligned time series
+x <- ts(rnorm(100), start=1)
+y <- ts(rnorm(120), start=3)
+ccf(x, y)
+## needed na.action=na.contiguous in 2.3.0
+
+
+## merge.data.frame was not making column names unique when
+## doing a Cartesian product.
+DF <- data.frame(col=1:3)
+DF2 <- merge(DF, DF, by=numeric(0))
+stopifnot(identical(names(DF2), c("col.x", "col.y")))
+## both were 'col' in 2.3.0.
+
+
+## [pq]unif were not consistent on infinite ranges.
+stopifnot(is.na(qunif(.5, 0, Inf)))
+## was Inf in 2.3.1.
+stopifnot(is.na(punif(1, 0, Inf)))
+## was 0 in 2.3.1
+## and failed on zero ranges despite the documentation.
+stopifnot(punif(c(0, 1, 2), 1, 1) == c(0, 1, 1))
+stopifnot(qunif(c(0, 0.5, 1), 1, 1) == 1)
+## were all NaN on 2.3.1
+
+
+## cbind segfaulted if coercion of the result to list failed.
+cbind(as.name("foo"), 1:3)
+# segfaulted in 2.3.1
+(x <- cbind(y ~ x, 1))
+x[,1]
+## last is 3 x 2 list matrix
+
+
+## empty point set
+r <- xy.coords(numeric(0))
+## gave an error with misleading message in 2.3.1
+
+
+## [<- could extend a ts but not change tsp.
+xx <- x <- ts(rnorm(6), frequency=7)
+try(x[8] <- NA)
+stopifnot(identical(x, xx))
+## Allowed in R < 2.4.0, but corrupted tsp.
+
+
+## Looking up generic in UseMethod
+mycoef <- function(object, ....) UseMethod("coef")
+x <- list(coefficients=1:3)
+mycoef(x)
+## failed to find default method < 2.4.0
+
+
+## regression tests on changes to model.frame and model.matrix
+A <- data.frame(y = 1:10, z = 1:10+1i,
+                x = rep(c("a", "b"), each = 5),
+                r = as.raw(1:10),
+                stringsAsFactors = FALSE)
+model.frame(z ~ x+y+r, data = A) # includes character, raw and complex
+lm(z ~ x+y, data = A) # complex response, character RHS
+# but we do not allow complex nor raw variables on the rhs
+stopifnot(inherits(try(model.matrix(y ~ x+z, data = A)), "try-error"))
+stopifnot(inherits(try(model.matrix(y ~ r, data = A)), "try-error"))
+## new in 2.4.0
+
+
+## tests of stringsAsFactors
+a <- letters[1:8]
+aa <- matrix(a, 4, 2)
+aaa <- list(aaa=letters[20:23])
+colnames(aa) <- paste("aa", 1:2, sep=".")
+(A <- data.frame(a=a[1:4], aa, aaa, stringsAsFactors = FALSE))
+stopifnot(all(sapply(A, class) == "character"))
+stopifnot(class(as.data.frame(list(a=a), stringsAsFactors = TRUE)$a)
+          == "factor")
+## new in 2.4.0
+
+
+## failure to duplicate in environment<-().
+## Thomas Petzoldt, R-help, 2006-06-23.
+envfun <- function(L) {
+  p <- parent.frame()
+  assign("test", L$test, p)
+  environment(p$test) <- p
+}
+solver <- function(L) envfun(L)
+L <- list(test = function() 1 + 2)
+
+environment(L$test)
+solver(L)
+(e <- environment(L$test))
+stopifnot(identical(e, .GlobalEnv))
+## failed to look at NAMED
+
+
+## sort.list(<a factor>, method="radix") stopped working at some point
+x <- factor(sample(letters, 1000, replace=TRUE))
+o <- sort.list(x, method = "radix")
+## failed in 2.3.1
+
+
+## qt() bisection search: PR#9050
+x <- -2:2
+stopifnot(isTRUE(all.equal(x, qt(pt(x, df=20, ncp=1),df=20,ncp=1))))
+## failed in 2.3.1
+
+
+## poly() didn't pass 'raw' to polym()
+x <- -3:3
+y <- 10*(1:7)
+stopifnot(identical(poly (x,y, degree = 2, raw = TRUE),
+		    polym(x,y, degree = 2, raw = TRUE)))
+## failed in 2.3.1
+
+
+## plot.xy( type = "s" | "S" ) was missing an initial test: PR#9046
+types <- c("p", "l", "b", "o", "h", "s", "S")
+p <- palette(hcl(h = seq(30,330, length= length(types))))
+plot(c(1,6), c(-.4, 1.5), type="n", ann = FALSE);  off <- 1:6 / 16
+for(i in seq(types)) {
+    lines(i*off /-1:4, type = types[i], col = i, pch = types[i])
+    mtext(types[i], 4, line= .5, at = i*off[6]/4, col = i, las = 1)
+}
+palette(p)# restored to previous
+## failed in 2.3.1
+
+
+## qf for large df2
+stopifnot(isTRUE(all.equal(qf(0.9,df1=1,df2=1e10,ncp=0),
+                           qf(0.9,df1=1,df2=1e10))))
+## failed in 2.3.1
+
+
+## some regression tests of as.vector() and as.list()
+x <- list(a=1, b=2)
+stopifnot(identical(x, as.list(x)))  # was said to drop names
+x <- pairlist(a=1, b=2)
+stopifnot(is.list(x))
+xx <- as.vector(x, "list")
+stopifnot(typeof(xx) == "list")
+stopifnot(!identical(x, xx))
+stopifnot(identical(names(x), names(xx)))
+
+x <- expression(a=2+3, b=pi)
+xx <- as.vector(x, "list") # not allowed in 2.3.1
+stopifnot(identical(names(x), names(xx)))
+xx <- as.list(x)           # lost names in 2.3.1
+stopifnot(identical(names(x), names(xx)))
+## was incorrectly documented in 2.3.1
+
+
+## subsetting arrays preserved attributes, although it did not for matrices
+x <- structure(1:8, names=letters[1:8], comm="a comment", dim = c(2L,2L,2L))
+stopifnot(is.null(attr(x[,,], "comm")))
+x <- structure(1:8, names=letters[1:8], comm="a comment", dim = c(2L,4L))
+stopifnot(is.null(attr(x[,], "comm")))
+x <- structure(1:8, names=letters[1:8], comm="a comment")
+stopifnot(!is.null(attr(x[], "comm")))  # this does preserve
+stopifnot(is.null(attr(x[1:8], "comm")))
+##  2.3.1 preserved the first.
+
+
+## diff() for POSIX(cl)t :
+ds1 <- diff(lsec <- .leap.seconds[1:12])
+(ds2 <- diff(llsec <- as.POSIXlt(lsec))) # in days
+stopifnot(ds1 == ds2)
+## gave different result for POSIXlt up to 2.3.1
+
+
+## format(trim = TRUE, big.mark=",") did not work correctly (PR#9118)
+(a <- format(c(-1,1,10,999,1e6), trim=TRUE))
+(b <- format(c(-1,1,10,999,1e6), big.mark=",", trim=TRUE))
+stopifnot(a[1:4] == b[1:4])
+## no trim in 2.3.1 if big.mark was used.
+
+
+## residuals.glm needed 'y = TRUE' (PR#9124)
+# example for poisson GLM from ?glm
+d.AD <- data.frame(treatment = gl(3,3), outcome = gl(3,1,9),
+                   counts = c(18,17,15,20,10,20,25,13,12))
+glm.D93 <- glm(counts ~ outcome + treatment, family = poisson,
+               data = d.AD, y = FALSE)
+residuals(glm.D93, type = "working")
+residuals(glm.D93, type = "partial")
+residuals(glm.D93, type = "response")
+residuals(glm.D93, type = "deviance")
+residuals(glm.D93, type = "pearson")
+## all failed in 2.3.1
+
+
+## anova.mlm failed
+dat<-matrix( c(9,7,8,8,12,11,8,13,     6,5,6,3,6,7,10,9,
+               10,13,8,13,12,14,14,16, 9,11,13,14,16,12,15,14),
+            ncol = 4, dimnames = list(s=1:8, c=1:4))
+mlmfit <- lm(dat ~ 1)
+anova(mlmfit, X = ~1)
+## worked in 2.2.1, failed in 2.3.1
+
+
+## stopifnot(<expr>)  for a long expression (do not wrap the following line!!):
+r <- try(stopifnot(c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O")),
+	 silent = TRUE)
+if(length(grep("TRUE.*TRUE",r)))
+    stop("stopifnot() gives bad message for long expression")
+## happened in 2.3.[01]
+
+
+## rownames on 0-extent matrix (PR#9136)
+A <- matrix(NA, 0, 0)
+stopifnot(identical(rownames(A, do.NULL = FALSE), character(0)))
+stopifnot(identical(colnames(A, do.NULL = FALSE), character(0)))
+## were 'row' etc in 2.3.1.
+
+
+## grep(value = TRUE) sometimes preserved names, sometimes not
+x <- 1:3
+xx <- letters[1:3]
+names(x) <- names(xx) <- xx
+z <- grep(1, x, value = TRUE)
+stopifnot(!is.null(names(z)), names(z) == xx[1])
+z <- grep(1, x, value = TRUE, perl = TRUE)
+stopifnot(!is.null(names(z)), names(z) == xx[1])
+z <- grep("a", xx, value = TRUE)
+stopifnot(!is.null(names(z)), names(z) == xx[1])
+z <- grep("a", xx, value = TRUE, perl = TRUE)
+stopifnot(!is.null(names(z)), names(z) == xx[1])
+z <- agrep("a", xx, value = TRUE)
+stopifnot(!is.null(names(z)), names(z) == xx[1:3])
+## perl=TRUE, agrep did not in 2.3.1, all did not for pre-2.4.0
+x[2] <- xx[2] <- NA
+z <- grep(NA, x, value = TRUE)
+stopifnot(identical(names(z), names(xx)))
+z <- grep(NA, x, value = TRUE, perl = TRUE)
+stopifnot(identical(names(z), names(xx)))
+z <- grep(NA, xx, value = TRUE)
+stopifnot(identical(names(z), names(xx)))
+z <- grep(NA, xx, value = TRUE, perl = TRUE)
+stopifnot(identical(names(z), names(xx)))
+z <- agrep(NA, xx, value = TRUE)
+stopifnot(identical(names(z), names(xx)))
+## always dropped names on NA matches < 2.4.0
+
+
+oo <- options(max.print = 20)
+cc <- capture.output(women)
+options(oo)
+c2 <- capture.output(women[1:10,])
+stopifnot(length(cc) == 1 + 20/2 + 1,
+	  identical(cc[-12], c2[1:11]))
+## was wrong for some days in Aug.2006
+
+
+## errors in identical()
+stopifnot(!identical(pairlist(a=1, b=2), pairlist(a=1, aa=2)))
+stopifnot(!identical(structure(pi, a=1, b=2), structure(pi, a=1, aa=2)))
+stopifnot(identical(structure(pi, a=1, b=2), structure(pi, b=2, a=1)))
+## ignored names of pairlists, but tested order of attributes < 2.4.0
+
+
+## failed subassign could leave '*tmp*' around
+## Parlamis Franklin, R-devel, 2006-09-20
+test <- 1:10
+try(test[2:4] <- ls) # fails
+stopifnot(!exists("*tmp*", where=1))
+## was true < 2.4.0
+
+
+## merge on zero-row data frames
+L3 <- LETTERS[1:3]
+d <- data.frame(cbind(x=1, y=1), fac=sample(L3, 1, repl=TRUE))
+e <- d[-1,]
+merge(d, e, by.x = "x", by.y = "x", all.x = TRUE)
+## not allowed <= 2.4.0
+
+
+## PR#9313
+library(stats4)
+g <- function(x, y) -cos(x) + abs(y)
+fit1 <- mle(g, start = list(x = 0, y = 7))
+fit2 <- mle(g, start = list(y = 7, x = 0))
+stopifnot(all.equal(coef(fit1), coef(fit2)))
+## Found different solutions in 2.4.0, as names were not remapped in fit2
+
+
+## PR#9446
+rbind( data.frame(x=1), list(x=2) )
+## was error in 2.4.0 as list gave double row names.
+
+
+## extreme case
+bs <- boxplot.stats(c(1,Inf,Inf,Inf))
+## gave an error in 2.4.0
+
+
+## t.test with one group of size one
+x <- c(23,25,29,27,30,30)
+t.test(x=x[1], y=x[-1], var.equal=TRUE)
+t.test(y=x[1], x=x[-1], var.equal=TRUE)
+## failed in 2.4.0
+
+
+## corrupted "ts" objects
+structure(1:3, class="ts")
+## failed in print method < 2.4.1
+
+
+## PR#9399
+x1 <- "x2"
+x2 <- pi
+rm(x1) # removes x1, not x2
+stopifnot(!exists("x1", .GlobalEnv), exists("x2", .GlobalEnv))
+rm("x2")
+# incorrectly documented <= 2.4.0
+a <- b <- c <- 1
+z <- try(rm(c("a", "b")))
+stopifnot(inherits(z, "try-error"))
+## removed 'a', 'b' and 'c' in 2.4.0
+
+### end of tests added in 2.4.1 ###
+
+
+## translation error in optimize (PR#9438)
+ex2 <- function(x) log((18/41) * x - 2 * x^2) +
+    16 * log(4 * x^2 - (36/41) * x + (9/41)) +
+    24 * log((23/82) + (18/41) * x - 2 * x^2)
+opt <- optimise(ex2, lower = 0, upper = 9/41, maximum = TRUE)$maximum
+# there are two global maxima
+stopifnot(abs(opt - 0.187) < 0.01 || abs(opt - 0.033) < 0.01)
+## changed both ends of interval at the first step, gave opt = 0.136
+
+
+## Needlessly failing subassignments
+e <- 1:10
+e[2] <- expression(e)
+e <- pi
+e[2] <- expression(e)
+e <- letters
+e[2] <- expression(e)
+e <- as.raw(1:3)
+e[2] <- list(e=pi)
+## all failed < 2.5.0
+
+
+## uniroot did not allow zero at the end of an interval
+f <- function(x) x-1
+uniroot(f, c(0,2))
+uniroot(f, c(0,1))
+uniroot(f, c(1,2))
+## last two failed in 2.4.x
+
+
+## PR#9360 and PR#9394
+acf(1, lag.max=0, plot=FALSE)
+## gave an error in 2.4.0
+stopifnot( all.equal(ccf(1:3,-(1:3))$acf[2,1,1], -1) )
+## gave positive lag 0 cross-correlation after patching PR#9360
+
+
+## regression tests for complex sum/prod (briefly broken in Jan 2007)
+z <- rnorm(10) + rnorm(10)*(0+1i)
+sum(z)
+(x <- sum(pi, z))
+stopifnot(all.equal(x, sum(pi,Re(z)) + sum(Im(z))*(0+1i)))
+prod(z)
+##
+
+
+## problems with 0-row data frames created by read.table
+x <- structure(list(one = NULL, two = NULL, three = NULL),
+               .Names = c("one", "two", "three"), class = "data.frame")
+y <- data.frame(one=1,two=2,three=3)
+(z <- rbind(x,y))
+stopifnot(dim(z) == c(1, 3))
+(z <- rbind(y,x))
+stopifnot(dim(z) == c(1, 3))
+(z <- rbind(x,x))
+stopifnot(dim(z) == c(0, 3))
+## variously failed or gave zero-column data frame in 2.4.1
+
+
+## tests of partial matching of attributes
+x <- 1:4
+attr(x, "ab") <- 1
+for(y in c("abc", "abcd", "abcde")) {
+    attr(x, y) <- 1
+    stopifnot(is.null(attr(x, "a")))
+}
+# second was '1' on 2.4.1.
+x <- 1:4
+names(x) <- letters[x]
+stopifnot(identical(attr(x, "n"), names(x)))
+x <- as.pairlist(x)
+stopifnot(identical(attr(x, "n"), names(x)))
+## worked for pairlists but not vectors in 2.4.1
+
+
+## which(arr.ind = TRUE) failed to give matrix on a 0-length input
+C <- matrix(1:16, 4)
+(ind <- which(C < 0, arr.ind = TRUE))
+stopifnot(is.matrix(ind))
+## gave integer(0) in 2.4.1
+
+
+## plnorm wrong for out-of-range values (PR#9520)
+stopifnot(plnorm(0, lower.tail=FALSE) == 1, plnorm(0, lower.tail=TRUE) == 0)
+## both lower tail in  R < 2.5.0
+
+
+## supsmu with all NA values (PR#9519)
+x <- seq(0, 1, len = 100)
+y <- x + NA
+try(supsmu(x,y))
+## segfaulted < 2.5.0
+
+
+## which.max when max is Inf (PR#9522)
+which.min(c(NA, NA, Inf))
+which.max(c(NA, NA, -Inf, -Inf))
+## were integer(0) in < 2.5.0
+
+
+## str.dendrogram did not work with 'max.level=NA'
+## which has become default when called from str.default():
+cm <- cor(USJudgeRatings)
+hm <- heatmap(cm, symm = TRUE, keep.dendro = TRUE)
+str(hm, max=2) # reasonable
+str(hm)        # gave error (less reasonable than above)
+
+
+## [<-.data.frame did not allow deleting the last column (PR#9565)
+DF <- data.frame(x = 1:3, y = 4:6, z = 7:9)
+DF[, "z"] <- NULL
+stopifnot(identical(dim(DF), c(3L, 2L)))
+## 'subscript out of bounds' in 2.4.1.
+
+## new tryCatch() based try()  with anonymous function
+v <- try(do.call(function(x) stop("died"), list(1)), silent=TRUE)
+stopifnot(inherits(v, "try-error"))
+## failed in some version of R-devel (2.5.0)
+
+
+## choose(n,k) should be integer if n is
+stopifnot(choose(11,6) == 462)
+## was < 462 on some AMD64 Linux
+
+
+## fix up use of %j" format in strptime (PR#9577)
+x <- strptime(31:33, "%j")
+x
+stopifnot(!is.na(x))
+## day 32 was NA in R < 2.5.0
+
+
+## mosaicplot() broken by undocumented 'bug fix' r39655
+x <- matrix(1:4,2,2)
+mosaicplot(x, sort = seq_len(dim(x)))
+## failed in 2.4.1, fixed in 2.5.0
+
+
+## jitter failed in wierd case (PR#9580)
+stopifnot(is.finite( jitter(c(-1, 3)) ))
+## was repeated NaN in 2.4.1
+
+
+## max.col() problems (PR#9542)
+x <- rep(0, 10)
+dim(x) <- c(1, 10)
+# max.col(x) should be random.
+ans <- numeric(100)
+for(i in 1:100) ans[i] <- max.col(x)
+table(ans)
+stopifnot(any(ans != 10))
+## always gave last in 2.4.1
+
+
+## rep could segfault: Hiroyuki Kawakatsu, R-help, 2007-03-30
+try(rep(each = 0, length.out = 1))
+# segfaulted in 2.4.1
+
+
+## readBin could read beyond the end of a raw vector.
+# Henrik Bengtsson, Rdevel, 2007-04-07
+bfr <- as.raw(1:12)
+(x <- readBin(con=bfr, what="raw", n=20))
+stopifnot(length(x) == 12)
+(x <- readBin(con=bfr, what="integer", n=20))
+stopifnot(length(x) == 3)
+(x <- readBin(con=bfr, what="integer", size=4, n=20))
+stopifnot(length(x) == 3)
+(x <- readBin(con=bfr, what="integer", size=2, n=20))
+stopifnot(length(x) == 6)
+(x <- readBin(con=bfr, what="integer", size=1, n=20))
+stopifnot(length(x) == 12)
+## read too far where size-changing was involved in 2.4.x
+
+
+## density() could give negative values by rounding error (PR#8876)
+x <- c(0.006, 0.002, 0.024, 0.02, 0.034, 0.09, 0.074, 0.072, 0.122,
+       0.048, 0.044, 0.168)
+result <- density(x, n = 20, from = -1, to = 1)
+stopifnot(result$y >= 0)
+## slightly negative < 2.5.0
+
+
+## bw.SJ() used too small search interval in rare cases:
+bw.SJ(1:20) # error: "no solution in the specified range of bandwidths" in < 2.5.1
+## this is not ok when called as  density(1:20, bw = "SJ")
+## [that's a matter of opinion, since the example is ridiculous.]
+
+
+## hexadecimal integer constants failed on some platforms (PR#9648)
+stopifnot(identical(0x10L, 16L))
+## first was 0L on Windows in 2.5.0
+
+
+## rbind failed if the only data frame had 0 rows (PR#9657)
+A <- data.frame(foo=character(0), bar=character(0))
+rbind(A, c(foo="a", bar="b"))
+## failed in 2.5.0
+
+
+## factor() with NA in dimnames():
+x <- matrix(1:2, 2)
+rownames(x) <- factor(c("A", NA))
+## segfaulted <= 2.5.0
+
+
+## return value of median.
+z <- median(integer(0))
+stopifnot(identical(z, NA_integer_))
+z <- median(numeric(0))
+stopifnot(identical(z, NA_real_))
+## returned logical NA in 2.5.0
+
+
+## seq.int on small reversed 'by'
+stopifnot(inherits(try(seq.int(1.2, 1, by=1)), "try-error"))
+## was '1.2' in 2.5.0
+
+
+## subassignment on pairlists: Uwe Ligges on R-help, 2007-05-29
+Call <- call("round", 10.5)
+try({Call[] <- NULL; Call})
+## seqgfaulted in 2.5.0
+
+
+## Bessel bugs for nu < 0:
+x <- seq(0., 3, length = 101)
+nu <- -0.4
+stopifnot(all.equal(besselI(x,nu, TRUE),
+		    exp(-x)*besselI(x,nu, FALSE), tol = 1e-13))
+## wrong in 2.5.0
+stopifnot(all.equal(besselY(seq(0.5, 3, 0.5), nu),
+		    c(0.309568577942, 0.568866844337, 0.626095631907,
+		      0.544013906248, 0.366321150943, 0.141533189246),
+		    tol = 1e-11))
+## wrong numbers in 2.5.0
+
+### end of tests added in 2.5.1 ###
+
+
+## regression tests for unlink and wildcards
+owd <- setwd(tempdir())
+f <- c("ftest1", "ftest2", "ftestmore", "ftest&more")
+file.create(f)
+stopifnot(file.exists(f))
+unlink("ftest?")
+stopifnot(file.exists(f) == c(FALSE, FALSE, TRUE, TRUE))
+unlink("ftest*", recursive = TRUE)
+stopifnot(!file.exists(f))
+
+stopifnot(unlink("no_such_file") == 0) # not an error
+
+dd <- c("dir1", "dir2", "dirs", "moredirs")
+for(d in dd) dir.create(d)
+dir(".")
+file.create(file.path(dd, "somefile"))
+dir(".", recursive=TRUE)
+stopifnot(unlink("dir?") == 1) # not an error
+unlink("dir?", recursive = TRUE)
+stopifnot(file.exists(dd) == c(FALSE, FALSE, FALSE, TRUE))
+unlink("*dir*", recursive = TRUE)
+stopifnot(!file.exists(dd))
+
+# Windows needs short path names for leading spaces
+dir.create(" test")
+dir(".", recursive=TRUE)
+unlink(" test", recursive = TRUE)
+stopifnot(!file.exists(" test"))
+setwd(owd)
+## wildcards were broken in 2.5.0 on Unix, and always on Windows
+
+
+## duplicated columns in a data frame
+x <- matrix(seq(1:12),ncol=3)
+colnames(x) <- c("A","B","A")   #a redundant name for column 2
+x.df <- as.data.frame(x)
+stopifnot(x.df[4,3] == x[4,3])
+## wrong column in 2.5.0
+
+
+## it really is unclear if this should work as the fit is to a
+## numeric variable with levels, and the prediction does not have
+## levels.  But some people expected it to.
+worms <- data.frame(sex=gl(2,6), Dose=factor(rep(2^(0:5),2)),
+                    deaths=c(1,4,9,13,18,20,0,2,6,10,12,16))
+worms$doselin <- unclass(worms$Dose)
+worms.glm <- glm(cbind(deaths, (20-deaths)) ~ sex+ doselin,
+                 data=worms, family=binomial)
+predict(worms.glm, new=data.frame(sex="1", doselin=6))
+## failed < 2.6.0
+
+
+## regression test for changes in aggregate.data.frame
+z <- aggregate(state.x77,
+               list(Region = state.region,
+                    Cold = state.x77[,"Frost"] > 130),
+               mean)
+stopifnot(sapply(z, class)[1:2] == c("factor", "logical"),
+          identical(levels(z[[1]]), levels(state.region)) )
+f1 <- c("a","b","a","b")
+f2 <- factor(f1, levels=c("b","c","a"), ordered=TRUE)
+z <- aggregate(1:4, list(groups=f1), sum)
+stopifnot(sapply(z, class) == c("character", "integer"))
+z <- aggregate(1:4, list(groups=f2), sum)
+stopifnot(identical(sapply(z, class), list(groups=class(f2), x="integer")),
+          identical(levels(z[[1]]), levels(f2)),
+          is.ordered(z[[1]]) )
+## converted to factors < 2.6.0
+
+
+## formals<- on function with NULL body (PR#9758)
+f <- function() NULL
+g <- alist(a=, b=4, c=)
+formals(f) <- g
+# identical(formals(f), g) is false as g has .Names attribute
+stopifnot(is.null(body(f)), identical(names(formals(f)), names(g)))
+## was function(a, b=4)  before 2.6.0
+
+
+## subsetting R.version
+stopifnot(identical("simple.list", class(R.version[1:7])))
+
+
+## <data frame>[[<character>, j]]
+swiss[["Broye", "Agriculture"]]
+swiss[[7, "Agriculture"]]
+swiss[["Broye", 2]]
+swiss[[7, 2]]
+## first and third failed < 2.6.0
+
+
+## load of raw vector from ASCII save
+s1 <- "this is a test string 123"
+r0 <- r1 <- charToRaw(s1)
+save(r1, file="r1-ascii.rda", ascii=TRUE)
+save(r1, file="r1.rda", ascii=FALSE)
+load("r1.rda")
+unlink("r1.rda")
+stopifnot(identical(r1, r0))
+# was OK, but add regression test
+load("r1-ascii.rda")
+unlink("r1-ascii.rda")
+stopifnot(identical(r1, r0))
+## wrong < 2.5.1 patched
+
+
+## match.arg with multiple values (PR#9859)
+x <- letters[1:3]
+y <- c('aa','bb')
+try(match.arg(x,y)) # gave spurious warning
+res <- match.arg(x,y, several.ok = TRUE) # error
+stopifnot(identical(res, y))
+## failed in 2.5.1
+
+
+## sweep() must work with 0-extent matrix/STATS :
+m <- matrix(1:5, 5,0)
+stopifnot(identical(m, sweep(m, 2, apply(m,2, min))))
+## failed in R-devel around 2007-08-31
+
+
+## julian with POSIXlt origin (PR#9908)
+julian(as.POSIXlt("1999-2-1"), origin=as.POSIXlt("1999-1-1"))
+## failed < 2.6.0
+
+### continued in reg-tests-1b.R ###
+
+proc.time()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/internet.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/internet.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/internet.Rout.save	(revision 2476)
@@ -0,0 +1,262 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ## These are tests that require a working Internet connection.
+> ## We attempt to test for that.
+> 
+> if(.Platform$OS.type == "unix" &&
++    is.null(nsl("cran.r-project.org"))) q()
+> 
+> # test do_download.
+> nrow(available.packages(contrib.url("http://cran.r-project.org")))
+[1] 9391
+> 
+> # test url connections on http
+> zz <- url("http://cran.r-project.org/")
+> readLines(zz)
+ [1] "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Frameset//EN\" \"http://www.w3.org/TR/html4/frameset.dtd\">"
+ [2] "<html>"                                                                                                   
+ [3] "<head>"                                                                                                   
+ [4] "<title>The Comprehensive R Archive Network</title>"                                                       
+ [5] "<META HTTP-EQUIV=\"content-type\" CONTENT=\"text/html; charset=utf-8\">"                                  
+ [6] "<link rel=\"icon\" href=\"favicon.ico\" type=\"image/x-icon\">"                                           
+ [7] "<link rel=\"shortcut icon\" href=\"favicon.ico\" type=\"image/x-icon\">"                                  
+ [8] "<link rel=\"stylesheet\" type=\"text/css\" href=\"R.css\">"                                               
+ [9] "</head>"                                                                                                  
+[10] ""                                                                                                         
+[11] "<FRAMESET cols=\"1*, 4*\" style=\"border: none;\">"                                                       
+[12] "<FRAMESET rows=\"120, 1*\">"                                                                              
+[13] "<FRAME src=\"logo.html\" name=\"logo\" frameborder=0>"                                                    
+[14] "<FRAME src=\"navbar.html\" name=\"contents\" frameborder=0>"                                              
+[15] "</FRAMESET>"                                                                                              
+[16] "<FRAME src=\"banner.shtml\" name=\"banner\" frameborder=0>"                                               
+[17] "<noframes>"                                                                                               
+[18] "<h1>The Comprehensive R Archive Network</h1>"                                                             
+[19] ""                                                                                                         
+[20] "Your browser seems not to support frames,"                                                                
+[21] "here is the <A href=\"navbar.html\">contents page</A> of CRAN."                                           
+[22] "</noframes>"                                                                                              
+[23] "</FRAMESET>"                                                                                              
+> close(zz)
+> 
+> # and via read.table, test http and ftp.
+> 
+> read.table("http://www.stats.ox.ac.uk/pub/datasets/csb/ch11b.dat")
+     V1  V2   V3    V4 V5
+1     1 307  930 36.58  0
+2     2 307  940 36.73  0
+3     3 307  950 36.93  0
+4     4 307 1000 37.15  0
+5     5 307 1010 37.23  0
+6     6 307 1020 37.24  0
+7     7 307 1030 37.24  0
+8     8 307 1040 36.90  0
+9     9 307 1050 36.95  0
+10   10 307 1100 36.89  0
+11   11 307 1110 36.95  0
+12   12 307 1120 37.00  0
+13   13 307 1130 36.90  0
+14   14 307 1140 36.99  0
+15   15 307 1150 36.99  0
+16   16 307 1200 37.01  0
+17   17 307 1210 37.04  0
+18   18 307 1220 37.04  0
+19   19 307 1230 37.14  0
+20   20 307 1240 37.07  0
+21   21 307 1250 36.98  0
+22   22 307 1300 37.01  0
+23   23 307 1310 36.97  0
+24   24 307 1320 36.97  0
+25   25 307 1330 37.12  0
+26   26 307 1340 37.13  0
+27   27 307 1350 37.14  0
+28   28 307 1400 37.15  0
+29   29 307 1410 37.17  0
+30   30 307 1420 37.12  0
+31   31 307 1430 37.12  0
+32   32 307 1440 37.17  0
+33   33 307 1450 37.28  0
+34   34 307 1500 37.28  0
+35   35 307 1510 37.44  0
+36   36 307 1520 37.51  0
+37   37 307 1530 37.64  0
+38   38 307 1540 37.51  0
+39   39 307 1550 37.98  1
+40   40 307 1600 38.02  1
+41   41 307 1610 38.00  1
+42   42 307 1620 38.24  1
+43   43 307 1630 38.10  1
+44   44 307 1640 38.24  1
+45   45 307 1650 38.11  1
+46   46 307 1700 38.02  1
+47   47 307 1710 38.11  1
+48   48 307 1720 38.01  1
+49   49 307 1730 37.91  1
+50   50 307 1740 37.96  1
+51   51 307 1750 38.03  1
+52   52 307 1800 38.17  1
+53   53 307 1810 38.19  1
+54   54 307 1820 38.18  1
+55   55 307 1830 38.15  1
+56   56 307 1840 38.04  1
+57   57 307 1850 37.96  1
+58   58 307 1900 37.84  1
+59   59 307 1910 37.83  1
+60   60 307 1920 37.84  1
+61   61 307 1930 37.74  1
+62   62 307 1940 37.76  1
+63   63 307 1950 37.76  1
+64   64 307 2000 37.64  1
+65   65 307 2010 37.63  1
+66   66 307 2020 38.06  1
+67   67 307 2030 38.19  1
+68   68 307 2040 38.35  1
+69   69 307 2050 38.25  1
+70   70 307 2100 37.86  1
+71   71 307 2110 37.95  1
+72   72 307 2120 37.95  1
+73   73 307 2130 37.76  1
+74   74 307 2140 37.60  1
+75   75 307 2150 37.89  1
+76   76 307 2200 37.86  1
+77   77 307 2210 37.71  1
+78   78 307 2220 37.78  1
+79   79 307 2230 37.82  1
+80   80 307 2240 37.76  1
+81   81 307 2250 37.81  1
+82   82 307 2300 37.84  1
+83   83 307 2310 38.01  1
+84   84 307 2320 38.10  1
+85   85 307 2330 38.15  1
+86   86 307 2340 37.92  1
+87   87 307 2350 37.64  1
+88   88 308    0 37.70  1
+89   89 308   10 37.46  1
+90   90 308   20 37.41  1
+91   91 308   30 37.46  1
+92   92 308   40 37.56  1
+93   93 308   50 37.55  1
+94   94 308  100 37.75  1
+95   95 308  110 37.76  1
+96   96 308  120 37.73  1
+97   97 308  130 37.77  1
+98   98 308  140 38.01  1
+99   99 308  150 38.04  1
+100 100 308  200 38.07  1
+> read.table("ftp://ftp.stats.ox.ac.uk/pub/datasets/csb/ch11b.dat")
+     V1  V2   V3    V4 V5
+1     1 307  930 36.58  0
+2     2 307  940 36.73  0
+3     3 307  950 36.93  0
+4     4 307 1000 37.15  0
+5     5 307 1010 37.23  0
+6     6 307 1020 37.24  0
+7     7 307 1030 37.24  0
+8     8 307 1040 36.90  0
+9     9 307 1050 36.95  0
+10   10 307 1100 36.89  0
+11   11 307 1110 36.95  0
+12   12 307 1120 37.00  0
+13   13 307 1130 36.90  0
+14   14 307 1140 36.99  0
+15   15 307 1150 36.99  0
+16   16 307 1200 37.01  0
+17   17 307 1210 37.04  0
+18   18 307 1220 37.04  0
+19   19 307 1230 37.14  0
+20   20 307 1240 37.07  0
+21   21 307 1250 36.98  0
+22   22 307 1300 37.01  0
+23   23 307 1310 36.97  0
+24   24 307 1320 36.97  0
+25   25 307 1330 37.12  0
+26   26 307 1340 37.13  0
+27   27 307 1350 37.14  0
+28   28 307 1400 37.15  0
+29   29 307 1410 37.17  0
+30   30 307 1420 37.12  0
+31   31 307 1430 37.12  0
+32   32 307 1440 37.17  0
+33   33 307 1450 37.28  0
+34   34 307 1500 37.28  0
+35   35 307 1510 37.44  0
+36   36 307 1520 37.51  0
+37   37 307 1530 37.64  0
+38   38 307 1540 37.51  0
+39   39 307 1550 37.98  1
+40   40 307 1600 38.02  1
+41   41 307 1610 38.00  1
+42   42 307 1620 38.24  1
+43   43 307 1630 38.10  1
+44   44 307 1640 38.24  1
+45   45 307 1650 38.11  1
+46   46 307 1700 38.02  1
+47   47 307 1710 38.11  1
+48   48 307 1720 38.01  1
+49   49 307 1730 37.91  1
+50   50 307 1740 37.96  1
+51   51 307 1750 38.03  1
+52   52 307 1800 38.17  1
+53   53 307 1810 38.19  1
+54   54 307 1820 38.18  1
+55   55 307 1830 38.15  1
+56   56 307 1840 38.04  1
+57   57 307 1850 37.96  1
+58   58 307 1900 37.84  1
+59   59 307 1910 37.83  1
+60   60 307 1920 37.84  1
+61   61 307 1930 37.74  1
+62   62 307 1940 37.76  1
+63   63 307 1950 37.76  1
+64   64 307 2000 37.64  1
+65   65 307 2010 37.63  1
+66   66 307 2020 38.06  1
+67   67 307 2030 38.19  1
+68   68 307 2040 38.35  1
+69   69 307 2050 38.25  1
+70   70 307 2100 37.86  1
+71   71 307 2110 37.95  1
+72   72 307 2120 37.95  1
+73   73 307 2130 37.76  1
+74   74 307 2140 37.60  1
+75   75 307 2150 37.89  1
+76   76 307 2200 37.86  1
+77   77 307 2210 37.71  1
+78   78 307 2220 37.78  1
+79   79 307 2230 37.82  1
+80   80 307 2240 37.76  1
+81   81 307 2250 37.81  1
+82   82 307 2300 37.84  1
+83   83 307 2310 38.01  1
+84   84 307 2320 38.10  1
+85   85 307 2330 38.15  1
+86   86 307 2340 37.92  1
+87   87 307 2350 37.64  1
+88   88 308    0 37.70  1
+89   89 308   10 37.46  1
+90   90 308   20 37.41  1
+91   91 308   30 37.46  1
+92   92 308   40 37.56  1
+93   93 308   50 37.55  1
+94   94 308  100 37.75  1
+95   95 308  110 37.76  1
+96   96 308  120 37.73  1
+97   97 308  130 37.77  1
+98   98 308  140 38.01  1
+99   99 308  150 38.04  1
+100 100 308  200 38.07  1
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-S4-examples.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-S4-examples.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-S4-examples.R	(revision 2476)
@@ -0,0 +1,357 @@
+## examples for a simple class with two numeric slots.
+## (Run example(setMethod) to see the class and function definitions)
+
+  setClass("track", slots = c(x="numeric", y = "numeric"))
+
+  cumdist <- function(x, y) c(0., cumsum(sqrt(diff(x)^2 + diff(y)^2)))
+  setClass("trackMultiCurve", slots = c(x="numeric", y="matrix", smooth="matrix"),
+          prototype = list(x=numeric(), y=matrix(0,0,0), smooth= matrix(0,0,0)))
+
+require(graphics)
+
+
+## methods for plotting track objects
+##
+## First, with only one object as argument, plot the two slots
+##  y must be included in the signature, it would default to "ANY"
+setMethod("plot", signature(x="track", y="missing"),
+  function(x,  y, ...) plot(x@x, x@y, ...)
+)
+
+## plot numeric data on either axis against a track object
+## (reducing the track object to the cumulative distance along the track)
+## Using a short form for the signature, which matches like formal arguments
+setMethod("plot", c("track", "numeric"),
+ function(x, y, ...) plot(cumdist(x@x, x@y), y,  xlab = "Distance",...)
+)
+
+## and similarly for the other axis
+setMethod("plot", c("numeric", "track"),
+ function(x, y, ...) plot(x, cumdist(y@x, y@y),  ylab = "Distance",...)
+)
+
+t1 <- new("track", x=1:20, y=(1:20)^2)
+plot(t1)
+plot(qnorm(ppoints(20)), t1)
+
+## Now a class that inherits from "track", with a vector for data at
+## the points
+  setClass("trackData", contains = c("numeric", "track"))
+
+
+tc1 <- new("trackData", t1, rnorm(20))
+
+
+## a method for plotting the object
+## This method has an extra argument, allowed because ... is an
+## argument to the generic function.
+setMethod("plot", c("trackData", "missing"),
+function(x, y, maxRadius = max(par("cin")), ...) {
+  plot(x@x, x@y, type = "n", ...)
+  symbols(x@x, x@y, circles = abs(x), inches = maxRadius)
+  }
+)
+plot(tc1)
+
+## Without other methods for "trackData", methods for "track"
+## will be selected by inheritance
+
+plot(qnorm(ppoints(20)), tc1)
+
+## defining methods for primitive functions.
+## Although "[" and "length" are not ordinary functions
+## methods can be defined for them.
+setMethod("[", "track",
+  function(x, i, j, ..., drop) {
+    x@x <- x@x[i]; x@y <- x@y[i]
+    x
+  })
+plot(t1[1:15])
+
+setMethod("length", "track", function(x)length(x@y))
+length(t1)
+
+
+setMethod("summary", "missing", function() "<No Object>")
+
+stopifnot(identical(summary(), "<No Object>"))
+
+removeMethods("summary")
+
+## for the primitives
+## inherited methods
+
+length(tc1)
+tc1[-1]
+
+## make sure old-style methods still work.
+t11 <- t1[1:15]
+identical(t1@y[1:15], t11@y)
+
+## S3 methods, with nextMethod
+form <- y ~ x
+form[1]
+
+## S3 arithmetic methods
+ISOdate(1990, 12, 1)- ISOdate(1980, 12, 1)
+
+## group methods
+
+setMethod("Arith", c("track", "numeric"), function(e1, e2){e1@y <-
+  callGeneric(e1@y , e2); e1})
+
+t1  - 100.
+t1/2
+
+## check it hasn't screwed up S3 methods
+ISOdate(1990, 12, 1)- ISOdate(1980, 12, 1)
+
+## test the .Generic mechanism
+
+setMethod("Compare", signature("track", "track"),
+  function(e1,e2) {
+  switch(.Generic,
+   "==" = e1@y == e2@y,
+  NA)
+ })
+
+#stopifnot(all(t1==t1))
+#stopifnot(identical(t1<t1, NA))
+
+
+## A test of nested calls to "[" with matrix-style arguments
+## applied to data.frames (S3 methods)
+
+setMethod("[", c("trackMultiCurve", "numeric", "numeric"), function(x, i, j, ..., drop) {
+### FIXME:  a better version has only 1st arg in signature
+### and uses callNextMethod, when this works with primitives.
+    x@y <- x@y[i, j, drop=FALSE]
+    x@x <- x@x[i]
+    x
+})
+
+
+"testFunc" <-
+function(cur) {
+    sorted <- cur[order(cur[,1]),]
+    sorted[ !is.na(sorted[,1]), ]
+}
+
+Nrow <- 1000 # at one time, values this large triggered a bug in gc/protect
+## the loop here was a trigger for the bug
+Niter <- 10
+for(i in 1:Niter)  {
+    yy <- matrix(stats::rnorm(10*Nrow), 10, Nrow)
+    tDF <- as.data.frame(yy)
+    testFunc(tDF)
+}
+
+
+tMC <- new("trackMultiCurve", x=seq_len(Nrow), y = yy)
+## not enough functions have methods for this class to use testFunc
+
+stopifnot(identical(tMC[1:10, 1:10]@y, yy[1:10, 1:10]))
+
+
+## verify we can remove methods and generic
+
+removeMethods("-")
+removeMethod("length", "track")
+removeMethods("Arith")
+removeMethods("Compare")
+
+## repeat the test one more time on the primitives
+
+length(ISOdate(1990, 12, 1)- ISOdate(1980, 12, 1))
+
+removeMethods("length")
+
+## methods for %*%, which isn't done by the same C code as other ops
+
+setClass("foo", slots = c(m="matrix"))
+m1 <- matrix(1:12,3,4)
+f1 = new("foo", m=m1)
+f2 = new("foo", m=t(m1))
+
+setMethod("%*%", c("foo", "foo"),
+          function(x,y) callGeneric(x@m, y@m))
+
+stopifnot(identical(f1%*%f2, m1%*% t(m1)))
+
+removeMethods("%*%")
+removeMethods("plot")
+
+if(FALSE) ## Hold until removeMethods revised:
+  stopifnot(existsFunction("plot", FALSE) && !isGeneric("plot", 1))
+
+## methods for plotData
+plotData <- function(x, y, ...) plot(x, y, ...)
+
+setGeneric("plotData")
+
+setMethod("plotData", signature(x="track", y="missing"),
+          function(x,  y, ...) plot(slot(x, "x"), slot(x, "y"), ...))
+
+## and now remove the whole generic
+removeGeneric("plotData")
+
+stopifnot(!exists("plotData", 1))
+
+##  Tests of method inheritance & multiple dispatch
+setClass("A0", slots = c(a0 = "numeric"))
+setClass("A1", contains = "A0", slots = c(a1 = "character"))
+
+setClass("B0", slots = c(b0 = "numeric"))
+setClass("B1", "B0") # (meaning 'contains = *')
+setClass("B2", contains = "B1", slots = c(b2 = "logical"))
+
+setClass("AB0", contains = c("A1", "B2"), slots = c(ab0 = "matrix"))
+
+f1 <- function(x,  y)"ANY"
+
+setGeneric("f1")
+
+setMethod("f1", c("A0", "B1"), function(x, y)"A0 B1")
+setMethod("f1", c("B1", "A0"), function(x, y)"B1 A0")
+
+a0 <- new("A0")
+a1 <- new("A1")
+b0 <- new("B0")
+b1 <- new("B1")
+b2 <- new("B2")
+
+deparseText <- function(expr)
+    paste(deparse(expr), collapse = " ")
+
+mustEqual <- function(e1, e2){
+    if(!identical(e1, e2))
+        stop(paste("!identical(", deparseText(substitute(e1)),
+                   ", ", deparseText(substitute(e2)), ")", sep=""))
+}
+
+mustEqual(f1(a0, b0), "ANY")
+mustEqual(f1(a1,b0), "ANY")
+mustEqual(f1(a1,b1), "A0 B1")
+mustEqual(f1(b1,a1), "B1 A0")
+mustEqual(f1(b1,b1), "ANY")
+
+## remove classes:  order matters so as not to undefine earlier classes
+for(.cl in c("AB0", "A1", "A0", "B2", "B1", "B0"))
+    removeClass(.cl)
+
+removeGeneric("f1")
+
+## test of nonstandard generic definition
+
+setGeneric("doubleAnything", function(x) {
+  methodValue <- standardGeneric("doubleAnything")
+  c(methodValue, methodValue)
+})
+
+setMethod("doubleAnything", "ANY", function(x)x)
+
+setMethod("doubleAnything", "character",
+          function(x) paste("<",x,">",sep=""))
+
+mustEqual(doubleAnything(1:10), c(1:10, 1:10))
+mustEqual(doubleAnything("junk"), rep("<junk>",2))
+
+removeGeneric("doubleAnything")
+
+### From setOldClass.Rd
+## Examples of S3 classes with guaranteed attributes
+## an S3 class "stamped" with a vector and  a "date" attribute
+## Here is a generator function and an S3 print method.
+## NOTE:  it's essential that the generator checks the attribute classes
+stamped <- function(x, date = Sys.time()) {
+    if(!inherits(date, "POSIXt"))
+      stop("bad date argument")
+    if(!is.vector(x))
+      stop("x must be a vector")
+    attr(x, "date") <- date
+    class(x) <- "stamped"
+    x
+}
+
+print.stamped <- function(x, ...) {
+    print(as.vector(x))
+    cat("Date: ",  format(attr(x,"date")), "\n")
+}
+
+## Now, an S4 class with the same structure:
+setClass("stamped4", contains = "vector", slots = c(date = "POSIXt"))
+
+## We can use the S4 class to register "stamped", with its attributes:
+setOldClass("stamped", S4Class = "stamped4")
+selectMethod("show", "stamped")
+## and then remove "stamped4" to clean up
+removeClass("stamped4")
+
+set.seed(113)
+someLetters <- stamped(sample(letters, 10),
+                       ISOdatetime(2008, 10, 15, 12, 0, 0))
+
+st <- new("stamped", someLetters)
+st
+# show() method prints the object's class, then calls the S3 print method.
+
+stopifnot(identical(S3Part(st, TRUE), someLetters))
+
+# creating the S4 object directly from its data part and slots
+new("stamped", 1:10, date = ISOdatetime(1976, 5, 5, 15, 10, 0))
+
+
+  removeClass("stamped")
+  rm(someLetters, st)
+
+### from S3Part.Rd
+
+## extending S3 class "lm", "xlm" directly
+## and "ylm" indirectly
+xlm <- setClass("xlm", slots = c(eps = "numeric"), contains = "lm")
+ylm <- setClass("ylm", slots = c(header = "character"), contains = "xlm")
+
+ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
+trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
+group <- gl(2,10,20, labels=c("Ctl","Trt"))
+weight <- c(ctl, trt)
+lm.D9 <- lm(weight ~ group)
+
+## lm.D9 is as computed in the example for stats::lm
+y1 <-ylm(lm.D9, header = "test", eps = .1)
+xx <- xlm(lm.D9, eps =.1)
+y2 <- ylm(xx, header = "test")
+stopifnot(inherits(y2, "lm"))
+stopifnot(identical(y1, y2))
+stopifnot(identical(S3Part(y1, strict = TRUE), lm.D9))
+
+## note the these classes can insert an S3 subclass of "lm" as the S3 part:
+myData <- data.frame(time = 1:10, y = (1:10)^.5)
+myLm <- lm(cbind(y, y^3)  ~ time, myData) # S3 class: c("mlm", "lm")
+ym1 <- new("ylm", myLm, header = "Example", eps = 0.)
+
+##similar classes to "xlm" and "ylm", but extending S3 class c("mlm", "lm")
+setClass("xmm", slots = c(eps = "numeric"), contains = "mlm")
+setClass("ymm", slots = c(header="character"), contains = "xmm")
+
+ym2 <- new("ymm", myLm, header = "Example2", eps = .001)
+
+# but for class "ymm", an S3 part of class "lm" is an error:
+try(new("ymm", lm.D9, header = "Example2", eps = .001))
+tools::assertError(
+    new("ymm", lm.D9, header = "Example2", eps = .001))
+
+setClass("dataFrameD", slots = c(date = "Date"),
+         contains = "data.frame")
+myDD <- new("dataFrameD", myData, date = Sys.Date())
+
+## S3Part() applied to classes with a data part (.Data slot)
+
+setClass("NumX", contains="numeric", slots = c(id="character"))
+nn <- new("NumX", 1:10, id="test")
+stopifnot(identical(1:10, S3Part(nn, strict = TRUE)))
+
+m1 <- cbind(group, weight)
+setClass("MatX", contains = "matrix", slots = c(date = "Date"))
+mx1 <- new("MatX", m1, date = Sys.Date())
+stopifnot(identical(m1, S3Part(mx1, strict = TRUE)))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-1c.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-1c.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-1c.R	(revision 2476)
@@ -0,0 +1,1620 @@
+## Regression tests for R >= 3.0.0
+
+pdf("reg-tests-1c.pdf", encoding = "ISOLatin1.enc")
+
+## mapply with classed objects with length method
+## was not documented to work in 2.x.y
+setClass("A", representation(aa = "integer"))
+a <- new("A", aa = 101:106)
+setMethod("length", "A", function(x) length(x@aa))
+setMethod("[[", "A", function(x, i, j, ...) x@aa[[i]])
+(z <- mapply(function(x, y) {x * y}, a, rep(1:3, 2)))
+stopifnot(z == c(101, 204, 309, 104, 210, 318))
+## reported as a bug (which it was not) by H. Pages in
+## https://stat.ethz.ch/pipermail/r-devel/2012-November/065229.html
+
+## recyling in split()
+## https://stat.ethz.ch/pipermail/r-devel/2013-January/065700.html
+x <- 1:6
+y <- split(x, 1:2)
+class(x) <- "ABC" ## class(x) <- "A" creates an invalid object
+yy <- split(x, 1:2)
+stopifnot(identical(y, yy))
+## were different in R < 3.0.0
+
+
+## dates with fractional seconds after 2038 (PR#15200)
+## Extremely speculative!
+z <- as.POSIXct(2^31+c(0.4, 0.8), origin=ISOdatetime(1970,1,1,0,0,0,tz="GMT"))
+zz <- format(z)
+stopifnot(zz[1] == zz[2])
+## printed form rounded not truncated in R < 3.0.0
+
+## origin coerced in tz and not GMT by as.POSIXct.numeric()
+x <- as.POSIXct(1262304000, origin="1970-01-01", tz="EST")
+y <- as.POSIXct(1262304000, origin=.POSIXct(0, "GMT"), tz="EST")
+stopifnot(identical(x, y))
+
+## Handling records with quotes in names
+x <- c("a b' c",
+"'d e' f g",
+"h i 'j",
+"k l m'")
+y <- data.frame(V1 = c("a", "d e", "h"), V2 = c("b'", "f", "i"), V3 = c("c", "g", "j\nk l m"))
+f <- tempfile()
+writeLines(x, f)
+stopifnot(identical(count.fields(f), c(3L, 3L, NA_integer_, 3L)))
+stopifnot(identical(read.table(f), y))
+stopifnot(identical(scan(f, ""), as.character(t(as.matrix(y)))))
+
+## docu always said  'length 1 is sorted':
+stopifnot(!is.unsorted(NA))
+
+## str(.) for large factors should be fast:
+u <- as.character(runif(1e5))
+t1 <- max(0.001, system.time(str(u))[[1]]) # get a baseline > 0
+uf <- factor(u)
+(t2 <- system.time(str(uf))[[1]]) / t1 # typically around 1--2
+stopifnot(t2  / t1 < 30)
+## was around 600--850 for R <= 3.0.1
+
+
+## ftable(<array with unusual dimnames>)
+(m <- matrix(1:12, 3,4, dimnames=list(ROWS=paste0("row",1:3), COLS=NULL)))
+ftable(m)
+## failed to format (and hence print) because of NULL 'COLS' dimnames
+
+## regression test formerly in kmeans.Rd, but result differs by platform
+## Artificial example [was "infinite loop" on x86_64; PR#15364]
+rr <- c(rep(-0.4, 5), rep(-0.4- 1.11e-16, 14), -.5)
+r. <- signif(rr, 12)
+k3 <- kmeans(rr, 3, trace=2) ## Warning: Quick-Transfer.. steps exceed
+try ( k. <- kmeans(r., 3) ) # after rounding, have only two distinct points
+      k. <- kmeans(r., 2)   # fine
+
+
+## PR#15376
+stem(c(1, Inf))
+## hung in 3.0.1
+
+
+## PR#15377, very long variable names
+x <- 1:10
+y <- x + rnorm(10)
+z <- y + rnorm(10)
+yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy <- y
+fit <- lm(cbind(yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy, z) ~ x)
+## gave spurious error message in 3.0.1.
+
+## PR#15341 singular complex matrix in rcond()
+set.seed(11)
+n <- 5
+A <- matrix(runif(n*n),nrow=n)
+B <- matrix(runif(n*n),nrow=n)
+B[n,] <- (B[n-1,]+B[n-2,])/2
+rcond(B)
+B <- B + 0i
+rcond(B)
+## gave error message (OK) in R 3.0.1: now returns 0 as in real case.
+
+
+## Misuse of formatC as in PR#15303
+days <- as.Date(c("2012-02-02", "2012-03-03", "2012-05-05"))
+(z <- formatC(days))
+stopifnot(!is.object(z), is.null(oldClass(z)))
+## used to copy over class in R < 3.0.2.
+
+
+## PR15219
+val <- sqrt(pi)
+fun <- function(x) (-log(x))^(-1/2)
+(res <- integrate(fun, 0, 1, rel.tol = 1e-4))
+stopifnot(abs(res$value - val) < res$abs.error)
+(res <- integrate(fun, 0, 1, rel.tol = 1e-6))
+stopifnot(abs(res$value - val) < res$abs.error)
+res <- integrate(fun, 0, 1, rel.tol = 1e-8)
+stopifnot(abs(res$value - val) < res$abs.error)
+
+fun <- function(x) x^(-1/2)*exp(-x)
+(res <- integrate(fun, 0, Inf, rel.tol = 1e-4))
+stopifnot(abs(res$value - val) < res$abs.error)
+(res <- integrate(fun, 0, Inf, rel.tol = 1e-6))
+stopifnot(abs(res$value - val) < res$abs.error)
+(res <- integrate(fun, 0, Inf, rel.tol = 1e-8))
+stopifnot(abs(res$value - val) < res$abs.error)
+## sometimes exceeded reported error in 2.12.0 - 3.0.1
+
+
+## Unary + should coerce
+x <- c(TRUE, FALSE, NA, TRUE)
+stopifnot(is.integer(+x))
+## +x was logical in R <= 3.0.1
+
+
+## Attritbutes of value of unary operators
+# +x, -x were ts, !x was not in 3.0.2
+x <- ts(c(a=TRUE, b=FALSE, c=NA, d=TRUE), frequency = 4, start = 2000)
+x; +x; -x; !x
+stopifnot(is.ts(!x), !is.ts(+x), !is.ts(-x))
+# +x, -x were ts, !x was not in 3.0.2
+x <- ts(c(a=1, b=2, c=0, d=4), frequency = 4, start = 2010)
+x; +x; -x; !x
+stopifnot(!is.ts(!x), is.ts(+x), is.ts(-x))
+##
+
+
+## regression test incorrectly in colorRamp.Rd
+bb <- colorRampPalette(2)(4)
+stopifnot(bb[1] == bb)
+## special case, invalid in R <= 2.15.0:
+
+
+## Setting NAMED on ... arguments
+f <- function(...) { x <- (...); x[1] <- 7; (...) }
+stopifnot(f(1+2) == 3)
+## was 7 in 3.0.1
+
+
+## copying attributes from only one arg of a binary operator.
+A <- array(c(1), dim = c(1L,1L), dimnames = list("a", 1))
+x <- c(a = 1)
+B <- A/(pi*x)
+stopifnot(is.null(names(B)))
+## was wrong in R-devel in Aug 2013
+## needed an un-NAMED rhs.
+
+
+## lgamma(x) for very small negative x
+X <- 3e-308; stopifnot(identical(lgamma(-X), lgamma(X)))
+## lgamma(-X) was NaN in R <= 3.0.1
+
+
+## PR#15413
+z <- subset(data.frame(one = numeric()), select = one)
+stopifnot(nrow(z) == 0L)
+## created a row prior to 3.0.2
+
+
+## https://stat.ethz.ch/pipermail/r-devel/2013-September/067524.html
+dbeta(0.9, 9.9e307, 10)
+dbeta(0.1, 9,  9.9e307)
+dbeta(0.1, 9.9e307, 10)
+## first two hung in R <= 3.0.2
+
+## PR#15465
+provideDimnames(matrix(nrow = 0, ncol = 1))
+provideDimnames(table(character()))
+as.data.frame(table(character()))
+## all failed in 3.0.2
+
+## PR#15004
+n <- 10
+s <- 3
+l <- 10000
+m <- 20
+x <- data.frame(x1 = 1:n, x2 = 1:n)
+by <- data.frame(V1 = factor(rep(1:3, n %/% s + 1)[1:n], levels = 1:s))
+for(i in 1:m) {
+    by[[i + 1]] <- factor(rep(l, n), levels = 1:l)
+}
+agg <- aggregate.data.frame(x, by, mean)
+stopifnot(nrow(unique(by)) == nrow(agg))
+## rounding caused groups to be falsely merged
+
+## PR#15454
+set.seed(357)
+z <- matrix(c(runif(50, -1, 1), runif(50, -1e-190, 1e-190)), nrow = 10)
+contour(z)
+## failed because rounding made crossing tests inconsistent
+
+## Various cases where zero length vectors were not handled properly
+## by functions in base and utils, including PR#15499
+y <- as.data.frame(list())
+format(y)
+format(I(integer()))
+gl(0, 2)
+z <- list(numeric(0), 1)
+stopifnot(identical(relist(unlist(z), z), z))
+summary(y)
+## all failed in 3.0.2
+
+## PR#15518 Parser catching errors in particular circumstance:
+(ee <- tryCatch(parse(text = "_"), error= function(e)e))
+stopifnot(inherits(ee, "error"))
+## unexpected characters caused the parser to segfault in 3.0.2
+
+
+## nonsense value of nmax
+unique(1:3, nmax = 1)
+## infinite-looped in 3.0.2, now ignored.
+
+
+## besselI() (and others), now using sinpi() etc:
+stopifnot(all.equal(besselI(2.125,-5+1/1024),
+		    0.02679209380095711, tol= 8e-16),
+	  all.equal(lgamma(-12+1/1024), -13.053274367453049, tol=8e-16))
+## rel.error was 1.5e-13 / 7.5e-14 in R <= 3.0.x
+ss <- sinpi(2*(-10:10)-2^-12)
+tt <- tanpi(  (-10:10)-2^-12)
+stopifnot(ss == ss[1], tt == tt[1], # as internal arithmetic must be exact here
+	  all.equal(ss[1], -0.00076699031874270453, tol=8e-16),
+	  all.equal(tt[1], -0.00076699054434309260, tol=8e-16))
+## (checked via Rmpfr) The above failed during development
+
+
+## PR#15535 c() "promoted" raw vectors to bad logical values
+stopifnot( c(as.raw(11), TRUE) == TRUE )
+## as.raw(11) became a logical value coded as 11,
+## and did not test equal to TRUE.
+
+
+## PR#15564
+fit <- lm(rnorm(10) ~ I(1:10))
+predict(fit, interval = "confidence", scale = 1)
+## failed in <= 3.0.2 with object 'w' not found
+
+
+## PR#15534 deparse() did not produce reparseable complex vectors
+assert.reparsable <- function(sexp) {
+  deparsed <- paste(deparse(sexp), collapse=" ")
+  reparsed <- tryCatch(eval(parse(text=deparsed)[[1]]), error = function(e) NULL)
+  if (is.null(reparsed))
+    stop(sprintf("Deparsing produced invalid syntax: %s", deparsed))
+  if(!identical(reparsed, sexp))
+    stop(sprintf("Deparsing produced change: value is not %s", reparsed))
+}
+
+assert.reparsable(1)
+assert.reparsable("string")
+assert.reparsable(2+3i)
+assert.reparsable(1:10)
+assert.reparsable(c(NA, 12, NA, 14))
+assert.reparsable(as.complex(NA))
+assert.reparsable(complex(real=Inf, i=4))
+assert.reparsable(complex(real=Inf, i=Inf))
+assert.reparsable(complex(real=Inf, i=-Inf))
+assert.reparsable(complex(real=3, i=-Inf))
+assert.reparsable(complex(real=3, i=NaN))
+assert.reparsable(complex(r=NaN, i=0))
+assert.reparsable(complex(real=NA, i=1))
+assert.reparsable(complex(real=1, i=NA))
+## last 7 all failed
+
+
+## PR#15621 backticks could not be escaped
+stopifnot(deparse(as.name("`"), backtick=TRUE) == "`\\``")
+assign("`", TRUE)
+`\``
+tools::assertError(parse("```"))
+##
+
+
+## We document tanpi(0.5) etc to be NaN
+stopifnot(is.nan(tanpi(c(0.5, 1.5, -0.5, -1.5))))
+## That is not required for system implementations, and some give +/-Inf
+
+
+## PR#15642 segfault when parsing overflowing reals
+as.double("1e1000")
+
+
+ll <- ml <- list(1,2); dim(ml) <- 2:1
+ali <- all.equal(list( ), identity)  # failed in R-devel for ~ 30 hours
+al1 <- all.equal(list(1), identity)  # failed in R < 3.1.0
+stopifnot(length(ali) == 3, grepl("list", ali[1]),
+	  grepl("length", ali[2], ignore.case=TRUE),
+	  is.character(al1), length(al1) >= 2,
+	  all.equal(ml, ml),
+	  all.equal(ll, ml, check.attributes=FALSE))
+
+
+## PR#15699 aggregate failed when there were no grouping variables
+dat <- data.frame(Y = runif(10), X = sample(LETTERS[1:3], 10, TRUE))
+aggregate(Y ~ 1, FUN = mean, data = dat)
+
+
+## merge() with duplicated column names, similar to PR#15618
+X <- data.frame(Date = c("1967-02-01", "1967-02-02", "1967-02-03"),
+                Settle.x = c(NA, NA, NA), Settle.y = c(NA, NA, NA),
+                Settle = c(35.4, 35.15, 34.95))
+Y <- data.frame(Date = c("2013-12-10", "2013-12-11", "2013-12-12"),
+                Settle = c(16.44, 16.65, 16.77))
+merge(X, Y, by = "Date", all = TRUE)
+## failed in R < 3.1.0: now warns (correctly).
+
+
+## PR#15679
+badstructure <- function(depth, key)
+{
+    ch <- if (depth == 1L) list() else list(badstructure(depth-1,key))
+    r <- list()
+    r[[key]] <- ch
+    r
+}
+badstructure(20, "children")
+## overran, segfaulted for the original reporter.
+
+
+## PR#15702 and PR#15703
+d <- as.dendrogram(hclust(dist(sin(1:7))))
+(dl <- d[[c(2,1,2)]]) # single-leaf dendrogram
+stopifnot(inherits(dl, "dendrogram"), is.leaf(dl),
+	  identical(attributes(reorder(dl, 1:7)), c(attributes(dl), value = 5L)),
+	  identical(order.dendrogram(dl), as.vector(dl)),
+	  identical(d, as.dendrogram(d)))
+## as.dendrogram() was hidden;  order.*() failed for leaf
+
+
+## using *named* method
+hw <- hclust(dist(sqrt(1:5)), method=c(M = "ward"))
+## failed for 2 days in R-devel/-alpha
+
+
+## PR#15758
+my_env <- new.env(); my_env$one <- 1L
+save(one, file = tempfile(), envir = my_env)
+## failed in R < 3.1.1.
+
+
+## Conversion to numeric in boundary case
+ch <- "0x1.ffa0000000001p-1"
+rr <- type.convert(ch, numerals = "allow.loss")
+rX <- type.convert(ch, numerals = "no.loss")
+stopifnot(is.numeric(rr), identical(rr, rX),
+          all.equal(rr, 0.999267578125),
+	  all.equal(type.convert(ch,	      numerals = "warn"),
+		    type.convert("0x1.ffap-1",numerals = "warn"), tol = 5e-15))
+## type.convert(ch) was not numeric in R 3.1.0
+##
+ch <- "1234567890123456789"
+rr <- type.convert(ch, numerals = "allow.loss")
+rX <- type.convert(ch, numerals = "no.loss")
+rx <- type.convert(ch, numerals = "no.loss", as.is = TRUE)
+tools::assertWarning(r. <- type.convert(ch, numerals = "warn.loss"))
+stopifnot(is.numeric(rr), identical(rr, r.), all.equal(rr, 1.234567890e18),
+	  is.factor(rX),  identical(rx, ch))
+
+
+## PR#15764: integer overflow could happen without a warning or giving NA
+tools::assertWarning(ii <- 1980000020L + 222000000L)
+stopifnot(is.na(ii))
+tools::assertWarning(ii <- (-1980000020L) + (-222000000L))
+stopifnot(is.na(ii))
+tools::assertWarning(ii <- (-1980000020L) - 222000000L)
+stopifnot(is.na(ii))
+tools::assertWarning(ii <- 1980000020L - (-222000000L))
+stopifnot(is.na(ii))
+## first two failed for some version of clang in R < 3.1.1
+
+
+## PR#15735: formulae with exactly 32 variables
+myFormula <- as.formula(paste(c("y ~ x0", paste0("x", 1:30)), collapse = "+"))
+ans <- update(myFormula, . ~ . - w1)
+stopifnot(identical(ans, myFormula))
+
+updateArgument <-
+    as.formula(paste(c(". ~ . ", paste0("w", 1:30)), collapse = " - "))
+ans2 <- update(myFormula, updateArgument)
+stopifnot(identical(ans2, myFormula))
+
+
+## PR#15753
+0x110p-5L # (+ warning)
+stopifnot(.Last.value == 8.5)
+## was 272 with a garbled message in R 3.0.0 - 3.1.0.
+
+
+## numericDeriv failed to duplicate variables in
+## the expression before modifying them.  PR#15849
+x <- 10; y <- 10
+d1 <- numericDeriv(quote(x+y),c("x","y"))
+x <- y <- 10
+d2 <- numericDeriv(quote(x+y),c("x","y"))
+stopifnot(identical(d1,d2))
+## The second gave the wrong answer
+
+
+## prettyNum(x, zero.print = .) failed when x had NAs
+pp <- sapply(list(TRUE, FALSE, ".", " "), function(.)
+	     prettyNum(c(0:1,NA), zero.print = . ))
+stopifnot(identical(pp[1,], c("0", " ", ".", " ")),
+	  pp[2:3,] == c("1","NA"))
+## all 4 prettyNum() would error out
+
+
+## checking all.equal() with externalptr
+library(methods) # getClass()'s versionKey is an e.ptr
+cA <- getClass("ANY")
+stopifnot(all.equal(cA, cA),
+          is.character(all.equal(cA, getClass("S4"))))
+# both all.equal() failed in R <= 3.1.1
+
+
+## as.hexmode(x), as.octmode(x)  when x is double
+x <- c(NA, 1)
+stopifnot(identical(x == x,
+		    as.hexmode(x) == as.octmode(x)))
+p <- c(1, pi)
+tools::assertError(as.hexmode(p))
+tools::assertError(as.octmode(p))
+## where all "wrong" in R <= 3.1.1
+
+
+## PR#15935
+y <- 1:3
+drop1(lm(y ~ 1))
+drop1(glm(y ~ 1))
+stats:::drop1.default(glm(y ~ 1))
+## gave error in R < 3.1.2
+
+## getAnywhere() wrongly dealing with namespace hidden list object
+nm <- deparse(body(pbinom)[[2]])# == "C_pbinom" currently
+gg <- getAnywhere(nm)
+stopifnot(length(gg$objs) == 1)
+## was 4 and printed "4 differing objects matching ‘C_pbinom’ ..." in R <= 3.1.1
+
+
+## 0-length consistency of options(), PR#15979
+stopifnot(identical(options(list()), options(NULL)))
+## options(list()) failed in R <= 3.1.1
+
+
+## merge.dendrogram(), PR#15648
+mkDend <- function(n, lab, method = "complete",
+                   ## gives *ties* often:
+		   rGen = function(n) 1+round(16*abs(rnorm(n)))) {
+    stopifnot(is.numeric(n), length(n) == 1, n >= 1, is.character(lab))
+    a <- matrix(rGen(n*n), n, n)
+    colnames(a) <- rownames(a) <- paste0(lab, 1:n)
+    .HC. <<- hclust(as.dist(a + t(a)), method=method)
+    as.dendrogram(.HC.)
+}
+set.seed(7)
+da <- mkDend(4, "A")
+db <- mkDend(3, "B")
+d.ab <- merge(da, db)
+hcab <- as.hclust(d.ab)
+stopifnot(hcab$order == c(2, 4, 1, 3, 7, 5, 6),
+	  hcab$labels == c(paste0("A", 1:4), paste0("B", 1:3)))
+## was wrong in R <= 3.1.1
+set.seed(1) ; h1 <- as.hclust(mkDend(5, "S", method="single")); hc1 <- .HC.
+set.seed(5) ; h5 <- as.hclust(mkDend(5, "S", method="single")); hc5 <- .HC.
+set.seed(42); h3 <- as.hclust(mkDend(5, "A", method="single")); hc3 <- .HC.
+## all failed (differently!) because of ties in R <= 3.2.3
+stopifnot(all.equal(h1[1:4], hc1[1:4], tol = 1e-12),
+	  all.equal(h5[1:4], hc5[1:4], tol = 1e-12),
+	  all.equal(h3[1:4], hc3[1:4], tol = 1e-12))
+
+
+## bw.SJ() and similar with NA,Inf values, PR#16024
+try(bw.SJ (c(NA,2,3)))
+try(bw.bcv(c(-Inf,2,3)))
+try(bw.ucv(c(1,NaN,3,4)))
+## seg.faulted  in  3.0.0 <= R <= 3.1.1
+
+
+## as.dendrogram() with wrong input
+x <- rbind(c( -6, -9), c(  0, 13),
+	   c(-15,  6), c(-14,  0), c(12,-10))
+dx <- dist(x,"manhattan")
+hx <- hclust(dx)
+hx$merge <- matrix(c(-3, 1, -2, 3,
+                     -4, -5, 2, 3), 4,2)
+tools::assertError(as.dendrogram(hx))
+## 8 member dendrogram and memory explosion for larger examples in R <= 3.1.2
+
+
+## abs with named args failed, PR#16047
+abs(x=1i)
+## Complained that the arg should be named z
+
+
+## Big exponents overflowed, PR#15976
+x <- 0E4933
+y <- 0x0p100000
+stopifnot(x == 0, y == 0)
+##
+
+
+## drop.terms() dropped some attributes, PR#16029
+test <- model.frame(Employed ~ Year + poly(GNP,3) + Population, data=longley)
+mterm <- terms(test)
+mterm2 <- drop.terms(mterm, 3)
+predvars <- attr(mterm2, "predvars")
+dataClasses <- attr(mterm2, "dataClasses")
+factors <- attr(mterm2, "factors")
+stopifnot(is.language(predvars), length(predvars) == length(dataClasses)+1,
+          all(names(dataClasses) == rownames(factors)))
+## Previously dropped predvars and dataClasses
+
+
+## prompt() did not escape percent signs properly
+fn <- function(fmt = "%s") {}
+f <- tempfile(fileext = ".Rd")
+prompt(fn, filename = f)
+rd <- tools::parse_Rd(f)
+## Gave syntax errors because the percent sign in Usage
+## was taken as the start of a comment.
+
+
+## power.t.test() failure for very large n (etc): PR#15792
+(ptt <- power.t.test(delta = 1e-4, sd = .35, power = .8))
+(ppt <- power.prop.test(p1 = .5, p2 = .501, sig.level=.001, power=0.90, tol=1e-8))
+stopifnot(all.equal(ptt$n, 192297000, tol = 1e-5),
+          all.equal(ppt$n,  10451937, tol = 1e-7))
+## call to uniroot() did not allow n > 1e7
+
+
+## save(*, ascii=TRUE):  PR#16137
+x0 <- x <- c(1, NA, NaN)
+save(x, file=(sf <- tempfile()), ascii = TRUE)
+load(sf)
+stopifnot(identical(x0, x))
+## x had 'NA' instead of 'NaN'
+
+
+## PR#16205
+stopifnot(length(glob2rx(character())) == 0L)
+## was "^$" in R < 3.1.3
+
+
+### Bugs fixed in R 3.2.0
+
+## Bugs reported by Radford Neal
+x <- pairlist(list(1, 2))
+x[[c(1, 2)]] <- NULL   # wrongly gave an error, referring to misuse
+                       # of the internal SET_VECTOR_ELT procedure
+stopifnot(identical(x, pairlist(list(1))))
+
+a <- pairlist(10, 20, 30, 40, 50, 60)
+dim(a) <- c(2, 3)
+dimnames(a) <- list(c("a", "b"), c("x", "y", "z"))
+# print(a)              # doesn't print names, not fixed
+a[["a", "x"]] <- 0
+stopifnot(a[["a", "x"]] == 0)
+## First gave a spurious error, second caused a seg.fault
+
+
+## Radford (R-devel, June 24, 2014); M.Maechler
+m <- matrix(1:2, 1,2); v <- 1:3
+stopifnot(identical(crossprod(2, v), t(2) %*% v),
+	  identical(crossprod(m, v), t(m) %*% v),
+	  identical(5 %*% v, 5 %*% t(v)),
+          identical(tcrossprod(m, 1:2), m %*% 1:2) )
+## gave error "non-conformable arguments" in R <= 3.2.0
+
+
+## list <--> environment
+L0 <- list()
+stopifnot(identical(L0, as.list(as.environment(L0))))
+## as.env..() did not work, and as.list(..) gave non-NULL names in R 3.1.x
+
+
+## all.equal() for environments and refClass()es
+RR <- setRefClass("Ex", fields = list(nr = "numeric"))
+m1 <- RR$new(); m2 <- RR$new(); m3 <- RR$new(nr = pi); m4 <- RR$new(nr=3.14159)
+ee <- emptyenv(); e2 <- new.env()
+stopifnot(all.equal(ee,ee), identical(ee,ee), !identical(ee,e2), all.equal(ee,e2),
+	  identical(m3,m3), !identical(m1,m2),
+	  all.equal(m1,m2), !isTRUE(all.equal(m1,m3)), !isTRUE(all.equal(m1,m4)),
+	  all.equal(m3,m4, tol=1e-6), grepl("relative difference", all.equal(m3,m4)),
+	  TRUE)
+## did not work in R 3.1.x
+e3 <- new.env()
+e3$p <- "p"; e2$p <- "p"; ae.p <- all.equal(e2,e3)
+e3$q <- "q";              ae.q <- all.equal(e2,e3)
+e2$q <- "Q";              ae.Q <- all.equal(e2,e3)
+stopifnot(ae.p, grepl("^Length", ae.q), grepl("string mismatch", ae.Q))
+e2$q <- "q"; e2$r <- pi; e3$r <- 3.14159265
+stopifnot(all.equal(e2, e3),
+	  grepl("relative difference", all.equal(e2, e3, tol=1e-10)))
+g <- globalenv() # so it now contains itself
+l <- list(e = g)
+stopifnot(all.equal(g, g),
+	  all.equal(l, l))
+## these ran into infinite recursion error.
+
+
+## missing() did not propagate through '...', PR#15707
+check <- function(x,y,z) c(missing(x), missing(y), missing(z))
+check1 <- function(...) check(...)
+check2 <- function(...) check1(...)
+stopifnot(identical(check2(one, , three), c(FALSE, TRUE, FALSE)))
+## missing() was unable to handle recursive promises
+
+
+## envRefClass prototypes are a bit special -- broke all.equal() for baseenv()
+rc <- getClass("refClass")
+rp <- rc@prototype
+str(rp) ## failed
+rp ## show() failed ..
+(ner <- new("envRefClass")) # show() failed
+stopifnot(all.equal(rp,rp), all.equal(ner,ner))
+be <- baseenv()
+system.time(stopifnot(all.equal(be,be)))## <- takes a few sec's
+stopifnot(
+    grepl("not identical.*character", print(all.equal(rp, ner))),
+    grepl("not identical.*character", print(all.equal(ner, rp))))
+system.time(stopifnot(all.equal(globalenv(), globalenv())))
+## Much of the above failed in  R <= 3.2.0
+
+
+## while did not protect its argument, which caused an error
+## under gctorture, PR#15990
+gctorture()
+suppressWarnings(while(c(FALSE, TRUE)) 1)
+gctorture(FALSE)
+## gave an error because the test got released when the warning was generated.
+
+
+## hist(x, breaks =) with too large bins, PR#15988
+set.seed(5); x <- runif(99)
+Hist <- function(x, b) hist(x, breaks = b, plot = FALSE)$counts
+for(k in 1:5) {
+    b0 <- seq_len(k-1)/k
+    H.ok <- Hist(x, c(-10, b0, 10))
+    for(In in c(1000, 1e9, Inf))
+	stopifnot(identical(Hist(x, c(-In, b0, In)), H.ok),
+		  identical(Hist(x, c( 0,  b0, In)), H.ok))
+}
+## "wrong" results for k in {2,3,4} in R 3.1.x
+
+
+## eigen(*, symmetric = <default>) with asymmetric dimnames,  PR#16151
+m <- matrix(c(83,41), 5, 4,
+	    dimnames=list(paste0("R",1:5), paste0("C",1:4)))[-5,] + 3*diag(4)
+stopifnot( all.equal(eigen(m, only.values=TRUE) $ values,
+		     c(251, 87, 3, 3), tol=1e-14) )
+## failed, using symmetric=FALSE and complex because of the asymmetric dimnames()
+
+
+## match.call() re-matching '...'
+test <- function(x, ...) test2(x, 2, ...)
+test2 <- function(x, ...) match.call(test2, sys.call())
+stopifnot(identical(test(1, 3), quote(test2(x=x, 2, 3))))
+## wrongly gave test2(x=x, 2, 2, 3) in R <= 3.1.2
+
+
+## callGeneric not forwarding dots in call (PR#16141)
+setGeneric("foo", function(x, ...) standardGeneric("foo"))
+setMethod("foo", "character",
+          function(x, capitalize = FALSE) if (capitalize) toupper(x) else x)
+setMethod("foo", "factor",
+          function(x, capitalize = FALSE) { x <- as.character(x);  callGeneric() })
+toto1 <- function(x, ...) foo(x, ...)
+stopifnot(identical(toto1(factor("a"), capitalize = TRUE), "A"))
+## wrongly did not capitalize in R <= 3.1.2
+
+
+## Accessing non existing objects must be an error
+tools::assertError(base :: foobar)
+tools::assertError(base :::foobar)
+tools::assertError(stats:::foobar)
+tools::assertError(stats:: foobar)
+## lazy data only via '::', not ':::' :
+stopifnot(    nrow(datasets:: swiss) == 47)
+tools::assertError(datasets:::swiss)
+## The ::: versions gave NULL in certain development versions of R
+stopifnot(identical(stats4::show -> s4s,
+		    get("show", asNamespace("stats4") -> ns4)),
+	  s4s@package == "methods",
+	  is.null(ns4[["show"]]) # not directly in stats4 ns
+	  )
+## stats4::show was NULL for 4 hours in R-devel
+
+
+## mode<- did too much evaluation (PR#16215)
+x <- y <- quote(-2^2)
+x <- as.list(x)
+mode(y) <- "list"
+stopifnot(identical(x, y))
+## y ended up containing -4, not -2^2
+
+
+## besselJ()/besselY() with too large order
+besselJ(1, 2^64) ## NaN with a warning
+besselY(1, c(2^(60:70), Inf))
+## seg.faulted in R <= 3.1.2
+
+
+## besselJ()/besselY() with  nu = k + 1/2; k in {-1,-2,..}
+besselJ(1, -1750.5) ## Inf, with only one warning...
+stopifnot(is.finite(besselY(1, .5 - (1500 + 0:10))))
+## last gave NaNs; both: more warnings in R <= 3.1.x
+
+
+## BIC() for arima(), also with NA's
+lho <- lh; lho[c(3,7,13,17)] <- NA
+alh300 <- arima(lh,  order = c(3,0,0))
+alh311 <- arima(lh,  order = c(3,1,1))
+ao300  <- arima(lho, order = c(3,0,0))
+ao301  <- arima(lho, order = c(3,0,1))
+## AIC/BIC for *different* data rarely makes sense ... want warning:
+tools::assertWarning(AA <- AIC(alh300,alh311, ao300,ao301))
+tools::assertWarning(BB <- BIC(alh300,alh311, ao300,ao301))
+fmLst <- list(alh300,alh311, ao300,ao301)
+## nobs() did not "work" in R < 3.2.0:
+stopifnot(sapply(fmLst, nobs) == c(48,47, 44,44))
+lls <- lapply(fmLst, logLik)
+str(lapply(lls, unclass))# -> 'df' and 'nobs'
+## 'manual BIC' via generalized AIC:
+stopifnot(all.equal(BB[,"BIC"],
+                    sapply(fmLst, function(fm) AIC(fm, k = log(nobs(fm))))))
+## BIC() was NA unnecessarily in  R < 3.2.0; nobs() was not available eiher
+
+
+## as.integer() close and beyond maximal integer
+MI <- .Machine$integer.max
+stopifnot(identical( MI, as.integer( MI + 0.99)),
+	  identical(-MI, as.integer(-MI - 0.99)),
+	  is.na(as.integer(as.character( 100*MI))),
+	  is.na(as.integer(as.character(-100*MI))))
+## The two cases with positive numbers  failed in R <= 3.2.0
+
+
+## Ensure that sort() works with a numeric vector "which is an object":
+stopifnot(is.object(y <- freeny$y))
+stopifnot(diff(sort(y)) > 0)
+## order() and hence sort() failed here badly for a while around 2015-04-16
+
+
+## NAs in data frame names:
+dn <- list(c("r1", NA), c("V", NA))
+d11 <- as.data.frame(matrix(c(1, 1, 1, 1), ncol = 2, dimnames = dn))
+stopifnot(identical(names(d11), dn[[2]]),
+          identical(row.names(d11), dn[[1]]))
+## as.data.frame() failed in R-devel for a couple of hours ..
+## note that format(d11) does fail currently, and hence print(), too
+
+
+## Ensure  R -e ..  works on Unix
+if(.Platform$OS.type == "unix" &&
+   file.exists(Rc <- file.path(R.home("bin"), "R")) &&
+   file.access(Rc, mode = 1) == 0) { # 1: executable
+    cmd <- paste(Rc, "-q --vanilla -e 1:3")
+    ans <- system(cmd, intern=TRUE)
+    stopifnot(length(ans) >= 3,
+	      identical(ans[1:2], c("> 1:3",
+				    "[1] 1 2 3")))
+}
+## (failed for < 1 hr, in R-devel only)
+
+
+## Parsing large exponents of floating point numbers, PR#16358
+set.seed(12)
+lrg <- sprintf("%.0f", round(exp(10*(2+abs(rnorm(2^10))))))
+head(huge <- paste0("1e", lrg))
+    micro <- paste0("1e-", lrg)
+stopifnot(as.numeric(huge) == Inf,
+          as.numeric(micro) == 0)
+## Both failed in R <= 3.2.0
+
+
+## vcov() failed on manova() results, PR#16380
+tear <- c(6.5, 6.2, 5.8, 6.5, 6.5, 6.9, 7.2, 6.9, 6.1, 6.3, 6.7, 6.6, 7.2, 7.1, 6.8, 7.1, 7.0, 7.2, 7.5, 7.6)
+gloss <- c(9.5, 9.9, 9.6, 9.6, 9.2, 9.1, 10.0, 9.9, 9.5, 9.4, 9.1, 9.3, 8.3, 8.4, 8.5, 9.2, 8.8, 9.7, 10.1, 9.2)
+opacity <- c(4.4, 6.4, 3.0, 4.1, 0.8, 5.7, 2.0, 3.9, 1.9, 5.7, 2.8, 4.1, 3.8,1.6, 3.4, 8.4, 5.2, 6.9, 2.7, 1.9)
+Y <- cbind(tear, gloss, opacity)
+rate <- factor(gl(2,10), labels = c("Low", "High"))
+fit <- manova(Y ~ rate)
+vcov(fit)
+## Gave error because coef.aov() turned matrix of coefficients into a vector
+
+
+## Unary / Binary uses of logic operations, PR#16385
+tools::assertError(`&`(FALSE))
+tools::assertError(`|`(TRUE))
+## Did not give errors in R <= 3.2.0
+E <- tryCatch(`!`(), error = function(e)e)
+stopifnot(grepl("0 arguments .*\\<1", conditionMessage(E)))
+## Gave wrong error message in R <= 3.2.0
+stopifnot(identical(!matrix(TRUE), matrix(FALSE)),
+	  identical(!matrix(FALSE), matrix(TRUE)))
+## was wrong for while in R 3.2.0 patched
+
+
+## cummax(<integer>)
+iNA <- NA_integer_
+x <- c(iNA, 1L)
+stopifnot(identical(cummin(x), c(iNA, iNA)),
+          identical(cummax(x), c(iNA, iNA)))
+## an initial NA was not propagated in R <= 3.2.0
+
+
+## summaryRprof failed for very short profile, PR#16395
+profile <- tempfile()
+writeLines(c(
+'memory profiling: sample.interval=20000',
+':145341:345360:13726384:0:"stdout"',
+':208272:345360:19600000:0:"stdout"'), profile)
+summaryRprof(filename = profile, memory = "both")
+unlink(profile)
+## failed when a matrix was downgraded to a vector
+
+
+## option(OutDec = *)  -- now gives a warning when  not 1 character
+op <- options(OutDec = ".", digits = 7, # <- default
+              warn = 2)# <- (unexpected) warnings become errors
+stopifnot(identical("3.141593", fpi <- format(pi)))
+options(OutDec = ",")
+stopifnot(identical("3,141593", cpi <- format(pi)))
+## warnings, but it "works" (for now):
+tools::assertWarning(options(OutDec = ".1."))
+stopifnot(identical("3.1.141593", format(pi)))
+tools::assertWarning(options(OutDec = ""))
+tools::assertWarning(stopifnot(identical("3141593", format(pi))))
+options(op)# back to sanity
+## No warnings in R versions <= 3.2.1
+
+
+## format(*, decimal.mark=".")  when   OutDec != "."  (PR#16411)
+op <- options(OutDec = ",")
+stopifnot(identical(fpi, format(pi, decimal.mark=".")))
+options(op)
+## failed in R <= 3.2.1
+
+
+## model.frame() removed ts attributes on original data (PR#16436)
+orig <- class(EuStockMarkets)
+mf <- model.frame(EuStockMarkets ~ 1, na.action=na.fail)
+stopifnot(identical(orig, class(EuStockMarkets)))
+## ts class lost in R <= 3.2.1
+
+
+##
+foo <- as.expression(1:3)
+matrix(foo, 3, 3) # always worked
+matrix(foo, 3, 3, byrow = TRUE)
+## failed in R <= 3.1.2
+
+
+## labels.dendrogram(), dendrapply(), etc -- see comment #15 of PR#15215 :
+(D <- as.dendrogram(hclust(dist(cbind(setNames(c(0,1,4), LETTERS[1:3]))))))
+stopifnot(
+    identical(labels(D), c("C", "A", "B")),
+    ## has been used in "CRAN package space"
+    identical(suppressWarnings(dendrapply(D, labels)),
+              list("C", list("A", "B"), "C")))
+## dendrapply(D, labels) failed in R-devel for a day or two
+
+
+## poly() / polym() predict()ion
+library(datasets)
+alm <- lm(stack.loss ~ poly(Air.Flow, Water.Temp, degree=3), stackloss)
+f20 <- fitted(alm)[1:20] # "correct" prediction values [1:20]
+stopifnot(all.equal(unname(f20[1:4]), c(39.7703378, 39.7703378, 35.8251359, 21.5661761)),
+	  all.equal(f20, predict(alm, stackloss) [1:20] , tolerance = 1e-14),
+	  all.equal(f20, predict(alm, stackloss[1:20, ]), tolerance = 1e-14))
+## the second prediction went off in  R <= 3.2.1
+
+
+## PR#16478
+kkk <- c("a\tb", "3.14\tx")
+z1 <- read.table(textConnection(kkk), sep = "\t", header = TRUE,
+                 colClasses = c("numeric", "character"))
+z2 <- read.table(textConnection(kkk), sep = "\t", header = TRUE,
+                 colClasses = c(b = "character", a = "numeric"))
+stopifnot(identical(z1, z2))
+z3 <- read.table(textConnection(kkk), sep = "\t", header = TRUE,
+                 colClasses = c(b = "character"))
+stopifnot(identical(z1, z3))
+z4 <- read.table(textConnection(kkk), sep = "\t", header = TRUE,
+                 colClasses = c(c = "integer", b = "character", a = "numeric"))
+stopifnot(identical(z1, z4))
+## z2 and z4 used positional matching (and failed) in R < 3.3.0.
+
+
+## PR#16484
+z <- regexpr("(.)", NA_character_, perl = TRUE)
+stopifnot(is.na(attr(z, "capture.start")), is.na(attr(z, "capture.length")))
+## Result was random integers in R <= 3.2.2.
+
+
+## PR#14861
+if(.Platform$OS.type == "unix") { # no 'ls /'  on Windows
+    con <- pipe("ls /", open = "rt")
+    data <- readLines(con)
+    z <- close(con)
+    print(z)
+    stopifnot(identical(z, 0L))
+}
+## was NULL in R <= 3.2.2
+
+
+## Sam Steingold:  compiler::enableJIT(3) not working in ~/.Rprofile anymore
+stopifnot(identical(topenv(baseenv()),
+                    baseenv()))
+## accidentally globalenv in R 3.2.[12] only
+
+
+## widths of unknown Unicode characters
+stopifnot(nchar("\u200b", "w") == 0)
+## was -1 in R 3.2.2
+
+
+## abbreviate dropped names in some cases
+x <- c("AA", "AB", "AA", "CBA") # also test handling of duplicates
+for(m in 2:0) {
+    print(y <- abbreviate(x, m))
+    stopifnot(identical(names(y), x))
+}
+## dropped for 0 in R <= 3.2.2
+
+
+## match(<NA>, <NA>)
+stopifnot(
+    isTRUE(NA          %in% c(NA, TRUE)),
+    isTRUE(NA_integer_ %in% c(TRUE, NA)),
+    isTRUE(NA_real_    %in% c(NA, FALSE)),# !
+    isTRUE(!(NaN       %in% c(NA, FALSE))),
+    isTRUE(NA          %in% c(3L, NA)),
+    isTRUE(NA_integer_ %in% c(NA, 3L)),
+    isTRUE(NA_real_    %in% c(3L, NA)),# !
+    isTRUE(!(NaN       %in% c(3L, NA))),
+    isTRUE(NA          %in% c(2., NA)),# !
+    isTRUE(NA_integer_ %in% c(NA, 2.)),# !
+    isTRUE(NA_real_    %in% c(2., NA)),# !
+    isTRUE(!(NaN       %in% c(2., NA))))
+## the "!" gave FALSE in R-devel (around 20.Sep.2015)
+
+
+## oversight in  within.data.frame()  [R-help, Sep 20 2015 14:23 -04]
+df <- data.frame(.id = 1:3 %% 3 == 2, a = 1:3)
+d2 <- within(df, {d = a + 2})
+stopifnot(identical(names(d2), c(".id", "a", "d")))
+## lost the '.id' column in R <= 3.2.2
+
+## system() truncating and splitting long lines of output, PR#16544
+## only works when platform has getline() in stdio.h, and Solaris does not.
+## op <- options(warn = 2)# no warnings allowed
+## if(.Platform$OS.type == "unix") { # only works when platform has getline() in stdio.h
+##     cn <- paste(1:2222, collapse=" ")
+##     rs <- system(paste("echo", cn), intern=TRUE)
+##     stopifnot(identical(rs, cn))
+## }
+## options(op)
+
+
+## tail.matrix()
+B <- 100001; op <- options(max.print = B + 99)
+mat.l <- list(m0  = matrix(, 0,2),
+              m0n = matrix(, 0,2, dimnames = list(NULL, paste0("c",1:2))),
+              m2  = matrix(1:2,   2,1),
+              m2n = matrix(1:2,   2,3, dimnames = list(NULL, paste0("c",1:3))),
+              m9n = matrix(1:9,   9,1, dimnames = list(paste0("r",1:9),"CC")),
+              m12 = matrix(1:12, 12,1),
+              mBB = matrix(1:B, B, 1))
+## tail() used to fail for 0-rows matrices m0*
+n.s <- -3:3
+hl <- lapply(mat.l, function(M) lapply(n.s, function(n) head(M, n)))
+tl <- lapply(mat.l, function(M) lapply(n.s, function(n) tail(M, n)))
+## Check dimensions of resulting matrices --------------
+## ncol:
+Mnc <- do.call(rbind, rep(list(vapply(mat.l, ncol, 1L)), length(n.s)))
+stopifnot(identical(Mnc, sapply(hl, function(L) vapply(L, ncol, 1L))),
+          identical(Mnc, sapply(tl, function(L) vapply(L, ncol, 1L))))
+## nrow:
+fNR <- function(L) vapply(L, nrow, 1L)
+tR <- sapply(tl, fNR)
+stopifnot(identical(tR, sapply(hl, fNR)), # head() & tail  both
+          tR[match(0, n.s),] == 0, ## tail(*,0) has always 0 rows
+          identical(tR, outer(n.s, fNR(mat.l), function(x,y)
+              ifelse(x < 0, pmax(0L, y+x), pmin(y,x)))))
+for(j in c("m0", "m0n")) { ## 0-row matrices: tail() and head() look like identity
+    co <- capture.output(mat.l[[j]])
+    stopifnot(vapply(hl[[j]], function(.) identical(co, capture.output(.)), NA),
+              vapply(tl[[j]], function(.) identical(co, capture.output(.)), NA))
+}
+
+CO1 <- function(.) capture.output(.)[-1] # drop the printed column names
+## checking tail(.) rownames formatting
+nP <- n.s > 0
+for(nm in c("m9n", "m12", "mBB")) { ## rownames: rather [100000,] than [1e5,]
+    tf <- file(); capture.output(mat.l[[nm]], file=tf)
+    co <- readLines(tf); close(tf)
+    stopifnot(identical(# tail(.) of full output == output of tail(.) :
+        lapply(n.s[nP], function(n) tail(co, n)),
+        lapply(tl[[nm]][nP], CO1)))
+}
+
+identCO <- function(x,y, ...) identical(capture.output(x), capture.output(y), ...)
+headI <- function(M, n) M[head(seq_len(nrow(M)), n), , drop=FALSE]
+tailI <- function(M, n) M[tail(seq_len(nrow(M)), n), , drop=FALSE]
+for(mat in mat.l) {
+    ## do not capture.output for  tail(<large>, <small negative>)
+    n.set <- if(nrow(mat) < 999) -3:3 else 0:3
+    stopifnot(
+        vapply(n.set, function(n) identCO (head(mat, n), headI(mat, n)), NA),
+        vapply(n.set, function(n) identCO (tail (mat, n, addrownums=FALSE),
+                                           tailI(mat, n)), NA),
+        vapply(n.set, function(n) all.equal(tail(mat, n), tailI(mat, n),
+                                            check.attributes=FALSE), NA))
+}
+options(op)
+## end{tail.matrix check} ------------------
+
+## format.data.frame() & as.data.frame.list() - PR#16580
+myL <- list(x=1:20, y=rnorm(20), stringsAsFactors = gl(4,5))
+names(myL)[1:2] <- lapply(1:2, function(i)
+    paste(sample(letters, 300, replace=TRUE), collapse=""))
+nD  <- names(myD  <- as.data.frame(myL))
+nD2 <- names(myD2 <- as.data.frame(myL, cut.names = 280))
+nD3 <- names(myD3 <- as.data.frame(myL, cut.names = TRUE))
+stopifnot(nchar(nD) == c(300,300,16), is.data.frame(myD),  dim(myD)  == c(20,3),
+	  nchar(nD2)== c(278,278,16), is.data.frame(myD2), dim(myD2) == c(20,3),
+	  nchar(nD3)== c(254,254,16), is.data.frame(myD3), dim(myD3) == c(20,3),
+	  identical(nD[3], "stringsAsFactors"),
+	  identical(nD[3], nD2[3]), identical(nD[3], nD3[3]))
+
+names(myD)[1:2] <- c("Variable.1", "")# 2nd col.name is "empty"
+## A data frame with a column that is an empty data frame:
+d20 <- structure(list(type = c("F", "G"), properties = data.frame(i=1:2)[,-1]),
+                 class = "data.frame", row.names = c(NA, -2L))
+stopifnot(is.data.frame(d20), dim(d20) == c(2,2),
+	  identical(colnames(d20), c("type", "properties")),
+	  identical(capture.output(d20), c("  type", "1    F", "2    G")))
+## format(d20) failed in intermediate R versions
+stopifnot(identical(names(myD), names(format(head(myD)))),
+	  identical(names(myD), c("Variable.1", "", "stringsAsFactors")),
+	  identical(rbind.data.frame(2:1, 1:2), ## was wrong for some days
+		    data.frame(c.2L..1L. = c(2L, 1L), X1.2 = 1:2)))
+## format.data.frame() did not show "stringsAsFactors" in R <= 3.2.2
+## Follow up: the new as.data.frame.list() must be careful with 'AsIs' columns:
+desc <- structure( c("a", NA, "z"), .Names = c("A", NA, "Z"))
+tools::assertError( data.frame(desc = desc, stringsAsFactors = FALSE) )
+## however
+dd <- data.frame(desc = structure(desc, class="AsIs"),
+                 row.names = c("A","M","Z"), stringsAsFactors = FALSE)
+## is "legal" (because "AsIs" can be 'almost anything')
+dd ## <- did not format nor print correctly in R-devel early Nov.2015
+fdesc <- structure(c("a", "NA", "z"), .Names=names(desc), class="AsIs")
+stopifnot(identical(format(dd),
+                    data.frame(desc = fdesc, row.names = c("A", "M", "Z"))),
+          identical(capture.output(dd),
+                    c("  desc", "A    a",
+		      "M <NA>", "Z    z")),
+	  identical(dd, data.frame(list(dd))))# lost row.names for a while
+
+
+## var(x) and hence sd(x)  with factor x, PR#16564
+tools::assertError(cov(1:6, f <- gl(2,3)))# was ok already
+tools::assertWarning(var(f))
+tools::assertWarning( sd(f))
+## var() "worked" in R <= 3.2.2  using the underlying integer codes
+
+
+## loess(*, .. weights) - PR#16587
+d.loess <-
+    do.call(expand.grid,
+            c(formals(loess.control)[1:3],
+              list(iterations = c(1, 10),
+                   KEEP.OUT.ATTRS = FALSE, stringsAsFactors = FALSE)))
+d.loess $ iterTrace <- (d.loess$ iterations > 1)
+## apply(d.loes, 1L, ...) would coerce everything to atomic, i.e, "character":
+loess.c.list <- lapply(1:nrow(d.loess), function(i)
+    do.call(loess.control, as.list(d.loess[i,])))
+set.seed(123)
+for(n in 1:6) { if(n %% 10 == 0) cat(n,"\n")
+    wt <- runif(nrow(cars))
+    for(ctrl in loess.c.list) {
+        cars.wt <- loess(dist ~ speed, data = cars, weights = wt,
+                         family = if(ctrl$iterations > 1) "symmetric" else "gaussian",
+                         control = ctrl)
+        cPr  <- predict(cars.wt)
+        cPrN <- predict(cars.wt, newdata=cars)
+        stopifnot(all.equal(cPr, cPrN, check.attributes = FALSE, tol=1e-14))
+    }
+}
+## gave (typically slightly) wrong predictions in R <= 3.2.2
+
+
+## aperm() for named dim()s:
+na <- list(A=LETTERS[1:2], B=letters[1:3], C=LETTERS[21:25], D=letters[11:17])
+da <- lengths(na)
+A <- array(1:210, dim=da, dimnames=na)
+aA <- aperm(A)
+a2 <- aperm(A, (pp <- c(3:1,4)))
+stopifnot(identical(     dim(aA), rev(da)),# including names(.)
+	  identical(dimnames(aA), rev(na)),
+	  identical(     dim(a2), da[pp]), # including names(.)
+	  identical(dimnames(a2), na[pp]))
+## dim(aperm(..)) did lose names() in R <= 3.2.2
+
+
+## poly() / predict(poly()) with NAs -- PR#16597
+fm <- lm(y ~ poly(x, 3), data=data.frame(x=1:7, y=sin(1:7)))
+x <- c(1,NA,3:7)
+stopifnot(all.equal(c(predict(fm, newdata=list(x = 1:3)), `4`=NA),
+		      predict(fm, newdata=list(x=c(1:3,NA))), tol=1e-15),
+	  all.equal(unclass(poly(x, degree=2, raw=TRUE)),
+		    cbind(x, x^2), check.attributes=FALSE))
+## both gave error about NA in R <= 3.2.2
+
+
+## data(package = *) on some platforms
+dd <- data(package="datasets")[["results"]]
+if(anyDuplicated(dd[,"Item"])) stop("data(package=*) has duplications")
+## sometimes returned the data sets *twice* in R <= 3.2.2
+
+
+## prettyNum(*, big.mark, decimal.mark)
+b.m <- c(".", ",", "'", "")
+d.m <- c(".", ",", ".,", "..")
+pa <- expand.grid(big.mark = b.m, decimal.mark = d.m,
+                  x = c(1005.24, 100.22, 1000000.33), scientific=FALSE, digits=9,
+                  stringsAsFactors=FALSE, KEEP.OUT.ATTRS=FALSE)
+r <- vapply(1:nrow(pa), function(i) do.call(prettyNum, pa[i,]), "")# with 6x2 warnings
+r
+b.m[b.m == ""] <- "0"
+## big.mark: only >= 1000; *and* because particular chosen numbers:
+r.2 <- substr(r[pa[,"x"] > 1000], 2, 2)
+## compute location of decimal point (which maybe more than one char)
+nd <- nchar(dm.s <- rep(d.m, each=length(b.m)))
+nr <- nchar(r) - 3 + (nd == 1)
+nr2 <- nr + (nd > 1)
+stopifnot(identical(r.2,               rep_len(b.m, length(r.2))),
+          identical(substr(r, nr,nr2), rep_len(dm.s, length(r))))
+## several cases (1, 5, 9, 10,..) were wrong in R 3.2.2
+
+
+## kmeans with just one center -- PR#16623
+set.seed(23)
+x <- rbind(matrix(rnorm(100,           sd = 0.3), ncol = 2),
+           matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))
+k1 <- kmeans(x, 1)
+k2 <- kmeans(x, centers = k1$centers)
+stopifnot(all.equal(k1, k2), k1$cluster == 1)
+## the kmeans(*, centers=.) called failed in R <= 3.2.3
+
+
+## invalid dimnames for array()
+tools::assertError(array(1, 2:3, dimnames="foo"))
+## were silently disregarded in R <= 3.2.3
+
+
+## addmargins() - dimnames with (by default) "Sum"
+m <- rbind(1, 2:3)
+m2 <- addmargins(m, 2)
+am <- addmargins(m)
+stopifnot(
+    identical(dimnames(m2), list(NULL, c("", "", "Sum"))),
+    identical(am[,"Sum"], setNames(c(2, 5, 7), c("", "", "Sum"))))
+## the dimnames array() bug above hid the addmargins() not adding "Sum"
+
+
+## dim( x[,] ) -- should keep names(dim(.)) --
+## ---  ----
+##_ 1 D _
+A1 <- array(1:6, (d <- c(nam=6L)))
+stopifnot(identical(dim(A1), d),
+          identical(dim(A1), dim(A1[])))
+##_ 2 D _
+A2 <- A[1,2,,]
+stopifnot(identical(names(dim(A2)), c("C", "D")),
+          identical(dim(A2), dim(A)[-(1:2)]),
+          identical(dim(A2[ ]), dim(A2)),
+          identical(dim(A2[,]), dim(A2)),
+          identical(dim(A2[1, , drop=FALSE]), c(C = 1L, D = 7L)),
+          identical(dim(A2[, 1, drop=FALSE]), c(C = 5L, D = 1L)))
+##_ higher D_
+A3 <- A[1, ,,]
+stopifnot(
+    identical(dim(A ), dim(A [,,,])),# was already wrong: [,,,] losing names(dim(.))
+    identical(dim(A[,-1,-1,-1]), dim(A) - c(0:1,1L,1L)),
+    identical(dim(A3), dim(A)[-1]),
+    identical(dim(A3), dim(A3[,, ])),
+    identical(dim(A3[,1,]), c(B = 3L, D = 7L)))
+## all subsetting of arrays lost names(dim(.)) in R < 3.3.0
+
+
+## NextMethod() dispatch for  `$`  and  `$<-`
+`$.foo` <- function(x, fun) paste("foo:", NextMethod())
+x <- list(a = 1, b = 2)
+class(x) <- "foo"
+stopifnot(identical(x$b, "foo: 2"))  # 'x$b' failed prior to R 3.3.0
+
+`$<-.foo` <- function(x, value, fun) {
+    attr(x, "modified") <- "yes"
+    NextMethod()
+}
+x$y <- 10 ## failed prior to R 3.3.0
+stopifnot(identical(attr(x, "modified"), "yes"))
+
+
+## illegal 'row.names' for as.data.frame():  -- for now just a warning --
+tools::assertWarning(
+    d3 <- as.data.frame(1:3, row.names = letters[1:2])
+)
+stopifnot(dim(d3) == c(3,1)) ## was (2, 1) in R <= 3.2.3
+## 'row.names' were not checked and produced a "corrupted" data frame in R <= 3.2.3
+
+
+## rbind.data.frame()'s  smart row names construction
+mk1 <- function(x) data.frame(x=x)
+d4 <- rbind(mk1(1:4)[3:4,,drop=FALSE], mk1(1:2))
+stopifnot(identical(dimnames(d4),
+                    list(c("3", "4", "1", "2"), "x")),
+## the rownames were       "3"  "4"  "31" "41"  in R <= 3.3.0
+          identical(attr(rbind(mk1(5:8), 7, mk1(6:3)), "row.names"), 1:9)
+          )
+
+## sort on integer() should drop NAs by default
+stopifnot(identical(1L, sort(c(NA, 1L))))
+## and other data types for method="radix"
+stopifnot(identical("a", sort(c(NA, "a"), method="radix")))
+stopifnot(identical(character(0L), sort(c(NA, NA_character_), method="radix")))
+stopifnot(identical(1, sort(c(NA, 1), method="radix")))
+
+
+## dummy.coef(.) in the case of "non-trivial terms" -- PR#16665
+op <- options(contrasts = c("contr.treatment", "contr.poly"))
+fm1 <- lm(Fertility ~ cut(Agriculture, breaks=4) + Infant.Mortality, data=swiss)
+(dc1 <- dummy.coef(fm1)) ## failed in R <= 3.3.0
+## (R-help, Alexandra Kuznetsova, 24 Oct 2013):
+set.seed(56)
+group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
+weight <- c(rnorm(10, 4), rnorm(10, 5))
+x <- rnorm(20)
+lm9 <- lm(weight ~ group + x + I(x^2))
+dc9 <- dummy.coef(lm9)
+## failed in R <= 3.3.0
+stopifnot( # depends on contrasts:
+    all.equal(unname(coef(fm1)), unlist(dc1, use.names=FALSE)[-2], tol= 1e-14),
+    all.equal(unname(coef(lm9)), unlist(dc9, use.names=FALSE)[-2], tol= 1e-14))
+## a 'use.na=TRUE' example
+dd <- data.frame(x1 = rep(letters[1:2], each=3),
+                 x2 = rep(LETTERS[1:3], 2),
+                 y = rnorm(6))
+dd[6,2] <- "B" # => no (b,C) combination => that coef should be NA
+fm3 <- lm(y ~ x1*x2, dd)
+(d3F <- dummy.coef(fm3, use.na=FALSE))
+(d3T <- dummy.coef(fm3, use.na=TRUE))
+stopifnot(all.equal(d3F[-4], d3T[-4]),
+	  all.equal(d3F[[4]][-6], d3T[[4]][-6]),
+	  all.equal(drop(d3T$`x1:x2`),
+		    c("a:A"= 0, "b:A"= 0, "a:B"= 0,
+		      "b:B"= 0.4204843786, "a:C"=0, "b:C"=NA)))
+## in R <= 3.2.3, d3T$`x1:x2` was *all* NA
+##
+## dummy.coef() for "manova"
+## artificial data inspired by the  summary.manova  example
+rate <- gl(2,10, labels=c("Lo", "Hi"))
+additive <- gl(4, 1, length = 20, labels = paste("d", 1:4, sep="."))
+additive <- C(additive, "contr.sum")# => less trivial dummy.coef
+X <- model.matrix(~ rate*additive)
+E <- matrix(round(rnorm(20*3), 2), 20,3) %*% cbind(1, c(.5,-1,.5), -1:1)
+bet <- outer(1:8, c(tear = 2, gloss = 5, opacity = 20))
+Y <- X %*% bet + E
+
+fit <- manova(Y ~ rate * additive)
+## For consistency checking, one of the univariate models:
+flm <- lm(Y[,"tear"] ~ rate * additive)
+dclm <- lapply(dummy.coef(flm), drop); names(dclm[[1]]) <- "tear"
+
+op <- options(digits = 3, width = 88)
+(cf <- coef(fit))
+(dcf <- dummy.coef(fit))
+options(op)
+stopifnot(all.equal(coef(flm), cf[,"tear"]),
+          all.equal(dclm,
+                    lapply(dcf, function(cc)
+                        if(is.matrix(cc)) cc["tear",] else cc["tear"])),
+          identical(lengths(dcf),
+                    c("(Intercept)" = 3L, "rate" = 6L,
+                      "additive" = 12L, "rate:additive" = 24L)),
+          identical(sapply(dcf[-1], dim),
+                    cbind(rate = 3:2, additive = 3:4,
+                          `rate:additive` = c(3L, 8L))))
+## dummy.coef() were missing coefficients in R <= 3.2.3
+
+
+## format.POSIXlt() with modified 'zone' or length-2 format
+f0 <- "2016-01-28 01:23:45"; tz0 <- "Europe/Stockholm"
+d2 <- d1 <- rep(as.POSIXlt(f0, tz = tz0), 2)
+(f1 <- format(d1, usetz=TRUE))
+identical(f1, rep(paste(f0, "CET"), 2))# often TRUE (but too platform dependent)
+d2$zone <- d1$zone[1] # length 1 instead of 2
+f2 <- format(d2, usetz=TRUE)## -> segfault
+f1.2 <- format(as.POSIXlt("2016-01-28 01:23:45"), format=c("%d", "%y"))# segfault
+stopifnot(identical(f2, rep(paste(f0,  tz0 ), 2)),
+	  identical(f1.2, c("28", "16")))
+tims <- seq.POSIXt(as.POSIXct("2016-01-01"),
+		   as.POSIXct("2017-11-11"), by = as.difftime(pi, units="weeks"))
+form <- c("%m/%d/%y %H:%M:%S", "", "%Y-%m-%d %H:%M:%S")
+op <- options(warn = 2)# no warnings allowed
+head(rf1 <- format(tims, form)) # recycling was wrong
+head(rf2 <- format(tims, form[c(2,1,3)]))
+stopifnot(identical(rf1[1:3], c("01/01/16 00:00:00", "2016-01-22 23:47:15",
+				"2016-02-13 23:34:30")),
+	  identical(rf2[1:3], c("2016-01-01 00:00:00", "01/22/16 23:47:15",
+				rf1[3])),
+	  nchar(rf1) == rep(c(17,19,19), length = length(rf1)),
+	  nchar(rf2) == rep(c(19,17,19), length = length(rf2)))
+options(op)
+## Wrong-length 'zone' or short 'x' segfaulted -- PR#16685
+## Default 'format' setting sometimes failed for length(format) > 1
+
+
+## saveRDS(*, compress= .)
+opts <- setNames(,c("bzip2", "xz", "gzip"))
+fil <- tempfile(paste0("xx", 1:6, "_"), fileext = ".rds")
+names(fil) <- c("default", opts, FALSE,TRUE)
+xx <- 1:11
+saveRDS(xx, fil["default"])
+saveRDS(xx, fil[opts[1]], compress = opts[1])
+saveRDS(xx, fil[opts[2]], compress = opts[2])
+saveRDS(xx, fil[opts[3]], compress = opts[3])
+saveRDS(xx, fil["FALSE"], compress = FALSE)
+saveRDS(xx, fil["TRUE" ], compress = TRUE)
+f.raw <- lapply(fil, readBin, what = "raw", n = 100)
+lengths(f.raw) # 'gzip' is best in this case
+for(i in 1:6) stopifnot(identical(xx, readRDS(fil[i])))
+eMsg <- tryCatch(saveRDS(xx, tempfile(), compress = "Gzip"),
+                 error = function(e) e$message)
+stopifnot(
+    grepl("'compress'.*Gzip", eMsg), # had ".. not interpretable as logical"
+    identical(f.raw[["default"]], f.raw[["TRUE"]]),
+    identical(f.raw[["default"]], f.raw[[opts["gzip"]]]))
+## compress = "gzip" failed (PR#16653), but compress = c(a = "xz") did too
+
+
+## recursive dendrogram methods and deeply nested dendrograms
+op <- options(expressions = 999)# , verbose = 2) # -> max. depth= 961
+set.seed(11); d <- mkDend(1500, "A", method="single")
+rd <- reorder(d, nobs(d):1)
+## Error: evaluation nested too deeply: infinite recursion .. in R <= 3.2.3
+stopifnot(is.leaf(r1 <- rd[[1]]),    is.leaf(r2 <- rd[[2:1]]),
+	  attr(r1, "label") == "A1458", attr(r2, "label") == "A1317")
+options(op)# revert
+
+
+## cor.test() with extremely small p values
+b <- 1:10; set.seed(1)
+for(n in 1:256) {
+    a <- round(jitter(b, f = 1/8), 3)
+    p1 <- cor.test(a, b)$ p.value
+    p2 <- cor.test(a,-b)$ p.value
+    stopifnot(abs(p1 - p2) < 8e-16 * (p1+p2))
+    ## on two different Linuxen, they actually are always equal
+}
+## were slightly off in R <= 3.2.3. PR#16704
+
+
+## smooth(*, do.ends=TRUE)
+y <- c(4,2,2,3,10,5:7,7:6)
+stopifnot(
+    identical(c(smooth(y, "3RSR" , do.ends=TRUE, endrule="copy")),
+              c(4, 2, 2, 3, 5, 6, 6, 7, 7, 6) -> sy.c),
+    identical(c(smooth(y, "3RSS" , do.ends=TRUE, endrule="copy")), sy.c),
+    identical(c(smooth(y, "3RS3R", do.ends=TRUE, endrule="copy")), sy.c),
+    identical(c(smooth(y, "3RSR" , do.ends=FALSE, endrule="copy")),
+              c(4, 4, 4, 4, 5, 6, 6, 6, 6, 6)),
+    identical(c(smooth(y, "3RSS" , do.ends=FALSE, endrule="copy")),
+              c(4, 4, 2, 3, 5, 6, 6, 6, 6, 6)),
+    identical(c(smooth(y, "3RS3R", do.ends=FALSE, endrule="copy")),
+              c(4, 4, 3, 3, 5, 6, 6, 6, 6, 6)))
+## do.ends=TRUE was not obeyed for the "3RS*" kinds, for 3.0.0 <= R <= 3.2.3
+
+
+## prettyDate() for subsecond ranges
+##' checking pretty():
+chkPretty <- function(x, n = 5, min.n = NULL, ..., max.D = 1) {
+    if(is.null(min.n)) {
+	## work with both pretty.default() and greDevices::prettyDate()
+	## *AND* these have a different default for 'min.n' we must be "extra smart":
+	min.n <-
+	    if(inherits(x, "Date") || inherits(x, "POSIXt"))
+		n %/% 2 # grDevices:::prettyDate
+	    else
+		n %/% 3 # pretty.default
+    }
+    pr <- pretty(x, n=n, min.n=min.n, ...)
+    ## if debugging: pr <- grDevices:::prettyDate(x, n=n, min.n=min.n, ...)
+    stopifnot(length(pr) >= (min.n+1),
+	      ## pretty(x, *) must cover range of x:
+	      min(pr) <= min(x), max(x) <= max(pr))
+    if((D <- abs(length(pr) - (n+1))) > max.D)
+	stop("| |pretty(.)| - (n+1) | = ", D, " > max.D = ", max.D)
+    ## is it equidistant [may need fuzz, i.e., signif(.) ?]:
+    eqD <- length(pr) == 1 || length(udp <- unique(dp <- diff(pr))) == 1
+    ## may well FALSE (differing number days in months; leap years, leap seconds)
+    if(!eqD) {
+        if(inherits(dp, "difftime") && units(dp) %in% c("days")# <- more ??
+           )
+            attr(pr, "chkPr") <- "not equidistant"
+        else
+            stop("non equidistant: has ", length(udp)," unique differences")
+    }
+    invisible(pr)
+}
+sTime <- structure(1455056860.75, class = c("POSIXct", "POSIXt"))
+for(n in c(1:16, 30:32, 41, 50, 60)) # (not for much larger n, (TODO ?))
+    chkPretty(sTime, n=n)
+set.seed(7)
+for(n in c(1:7, 12)) replicate(32, chkPretty(sTime + .001*rlnorm(1) * 0:9, n = n))
+## failed in R <= 3.2.3
+seqD  <- function(d1,d2) seq.Date(as.Date(d1), as.Date(d2), by = "1 day")
+seqDp <- function(d1,d2) { s <- seqD(d1,d2); structure(s, labels=format(s,"%b %d")) }
+time2d <- function(i) sprintf("%02d", i %% 60)
+MTbd <- as.Date("1960-02-10")
+(p1   <- chkPretty(MTbd))
+stopifnot(
+    identical(p1, seqDp("1960-02-08", "1960-02-13")) ,
+    identical(attr(p1, "labels"), paste("Feb", time2d(8:13))),
+    identical(chkPretty(MTbd + rep(0,2)), p1) ,
+    identical(chkPretty(MTbd +  0:1), p1) ,
+    identical(chkPretty(MTbd + -1:1), p1) ,
+    identical(chkPretty(MTbd +  0:3), seqDp("1960-02-09", "1960-02-14")) )
+## all pretty() above gave length >= 5 answer (with duplicated values!) in R <= 3.2.3
+## and length 1 or 2 instead of about 6 in R 3.2.4
+(p2 <- chkPretty(as.POSIXct("2002-02-02 02:02", tz = "GMT-1"), n = 5, min.n = 5))
+stopifnot(length(p2) >= 5+1,
+	  identical(p2, structure(1012611717 + (0:5), class = c("POSIXct", "POSIXt"),
+				  tzone = "GMT-1", labels = time2d(57 + (0:5)))))
+## failed in R 3.2.4
+(T3 <- structure(1460019857.25, class = c("POSIXct", "POSIXt")))# typical Sys.date()
+chkPretty(T3, 1) # error in svn 70438
+## "Data" from  example(pretty.Date) :
+steps <- setNames(,
+    c("10 secs", "1 min", "5 mins", "30 mins", "6 hours", "12 hours",
+      "1 DSTday", "2 weeks", "1 month", "6 months", "1 year",
+      "10 years", "50 years", "1000 years"))
+t02 <- as.POSIXct("2002-02-02 02:02")
+(at <- chkPretty(t02 + 0:1, n = 5, min.n = 3, max.D=2))
+xU <- as.POSIXct("2002-02-02 02:02", tz = "UTC")
+x5 <- as.POSIXct("2002-02-02 02:02", tz = "EST5EDT")
+atU <- chkPretty(seq(xU, by = "30 mins", length = 2), n = 5)
+at5 <- chkPretty(seq(x5, by = "30 mins", length = 2), n = 5)
+stopifnot(length(at) >= 4,
+	  identical(sort(names(aat <- attributes(at))), c("class", "labels", "tzone")),
+	  identical(aat$labels, time2d(59+ 0:3)),
+          identical(x5 - xU, structure(5, units = "hours", class = "difftime")),
+          identical(attr(at5, "labels"), attr(atU, "labels") -> lat),
+          identical(lat, paste("02", time2d(10* 0:4), sep=":"))
+)
+nns <- c(1:9, 15:17); names(nns) <- paste0("n=",nns)
+prSeq <- function(x, n, st, ...) pretty(seq(x, by = st, length = 2), n = n, ...)
+pps <- lapply(nns, function(n)
+	      lapply(steps, function(st) prSeq(x=t02, n=n, st=st)))
+Ls.ok <- list(
+    `10 secs`  = c("00", "02", "04", "06", "08", "10"),
+    `1 min`    = sprintf("%02d", 10*((0:6) %% 6)),
+    `5 mins`   = sprintf("02:%02d", 2:7),
+    `30 mins`  = sprintf("02:%02d", (0:4)*10),
+    `6 hours`  = sprintf("%02d:00", 2:9),
+    `12 hours` = sprintf("%02d:00", (0:5)*3),
+    `1 DSTday` = c("Feb 02 00:00", "Feb 02 06:00", "Feb 02 12:00",
+		   "Feb 02 18:00", "Feb 03 00:00", "Feb 03 06:00"),
+    `2 weeks`  = c("Jan 28", "Feb 04", "Feb 11", "Feb 18"),
+    `1 month`  = c("Jan 28", "Feb 04", "Feb 11", "Feb 18", "Feb 25", "Mar 04"),
+    `6 months` = c("Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep"),
+    `1 year`   = c("Jan", "Apr", "Jul", "Oct", "Jan", "Apr"),
+    `10 years` = as.character(2000 +   2*(1:7)),
+    `50 years` = as.character(2000 +  10*(0:6)),
+    `1000 years`= as.character(2000 + 200*(0:6)))
+stopifnot(identical(Ls.ok,
+		    lapply(pps[["n=5"]], attr, "label")))
+##
+chkSeq <- function(st, x, n, max.D = if(n <= 4) 1 else if(n <= 10) 2 else 3, ...)
+    tryCatch(chkPretty(seq(x, by = st, length = 2), n = n, max.D=max.D, ...),
+             error = conditionMessage)
+prSeq.errs <- function(tt, nset, tSteps) {
+    stopifnot(length(tt) == 1)
+    c.ps <- lapply(nset, function(n) lapply(tSteps, chkSeq, x = tt, n = n))
+    ## ensure that all are ok *but* some which did not match 'n' well enough:
+    cc.ps <- unlist(c.ps, recursive=FALSE)
+    ok <- vapply(cc.ps, inherits, NA, what = "POSIXt")
+    errs <- unlist(cc.ps[!ok])
+    stopifnot(startsWith(errs, prefix = "| |pretty(.)| - (n+1) |"))
+    list(ok = ok,
+	 Ds = as.numeric(sub(".*\\| = ([0-9]+) > max.*", "\\1", errs)))
+}
+r.t02 <- prSeq.errs(t02, nset = nns, tSteps = steps)
+table(r.t02 $ ok)
+table(r.t02 $ Ds -> Ds)
+## Currently   [may improve]
+##  3  4  5  6  7  8
+##  4 14  6  3  2  1
+## ... and ensure we only improve:
+stopifnot(length(Ds) <= 30, max(Ds) <= 8, sum(Ds) <= 138)
+## A Daylight saving time -- halfmonth combo:
+(tOz <- structure(c(1456837200, 1460728800), class = c("POSIXct", "POSIXt"),
+		tzone = "Australia/Sydney"))
+(pz <- pretty(tOz)) # failed in R 3.3.0, PR#16923
+stopifnot(length(pz) <= 6, # is 5
+          attr(dpz <- diff(pz), "units") == "days", sd(dpz) < 1.6)
+if(FALSE) { # save 0.4 sec
+    print(system.time(
+        r.tOz <- prSeq.errs(tOz[1], nset = nns, tSteps = steps)
+    ))
+    stopifnot(sum(r.tOz $ ok) >= 132,
+              max(r.tOz $ Ds -> DOz) <= 8, mean(DOz) < 4.5)
+}
+nn <- c(1:33,10*(4:9),100*(1+unique(sort(rpois(20,4)))))
+pzn <- lengths(lapply(nn, pretty, x=tOz))
+stopifnot(0.5 <= min(pzn/(nn+1)), max(pzn/(nn+1)) <= 1.5)
+
+
+
+stopifnot(c("round.Date", "round.POSIXt") %in% as.character(methods(round)))
+## round.POSIXt suppressed in R <= 3.2.x
+
+
+## approxfun(*, method="constant")
+Fn <- ecdf(1:5)
+t <- c(NaN, NA, 1:5)
+stopifnot(all.equal(Fn(t), t/5))
+## In R <= 3.2.3,  NaN values resulted in something like (n-1)/n.
+
+
+## tar() default (i.e. "no files") behaviour:
+dir.create(td <- tempfile("tar-experi"))
+setwd(td)
+dfil <- "base_Desc"
+file.copy(system.file("DESCRIPTION"), dfil)
+## tar w/o specified files
+tar("ex.tar")# all files, i.e. 'dfil'
+unlink(dfil)
+stopifnot(grepl(dfil, untar("ex.tar", list = TRUE)))
+untar("ex.tar")
+myF2 <- c(dfil, "ex.tar")
+stopifnot(identical(list.files(), myF2))
+unlink(myF2)
+## produced an empty tar file in R < 3.3.0, PR#16716
+
+
+## format.POSIXlt() of Jan.1 if  1941 or '42 is involved:
+tJan1 <- function(n1, n2)
+    strptime(paste0(n1:n2,"/01/01"), "%Y/%m/%d", tz="CET")
+wDSTJan1 <- function(n1, n2)
+    which("CEST" == sub(".* ", '', format(tJan1(n1,n2), usetz=TRUE)))
+(w8 <- wDSTJan1(1801, 2300))
+(w9 <- wDSTJan1(1901, 2300))
+stopifnot(identical(w8, 141:142),# exactly 1941:1942 had CEST on Jan.1
+          identical(w9,  41: 42))
+## for R-devel Jan.2016 to Mar.14 -- *AND* for R 3.2.4 -- the above gave
+## integer(0)  and  c(41:42, 99:100, ..., 389:390)  respectively
+
+
+## tsp<- did not remove mts class
+z <- ts(cbind(1:5,1:5))
+tsp(z) <- NULL
+stopifnot(identical(class(z), "matrix"))
+## kept "mts" in 3.2.4, PR#16769
+
+
+## match(x, t): fast algorithm for length-1 'x'
+## a) string 'x'  when only encoding differs
+tmp <- "年付"
+tmp2 <- "\u5e74\u4ed8" ; Encoding(tmp2) <- "UTF-8"
+for(ex in list(c(tmp, tmp2), c("foo","foo"))) {
+    cat(sprintf("\n|%s|%s| :\n----------\n", ex[1], ex[2]))
+    for(enc in c("latin1", "UTF-8", "unknown")) { # , "MAC", "WINDOWS-1251"
+	cat(sprintf("%9s: ", enc))
+	tt <- ex[1]; Encoding(tt) <- enc; t2 <- ex[2]
+	if(identical(i1 <- (  tt       %in% t2),
+		     i2 <- (c(tt, "a") %in% t2)[1]))
+	    cat(i1,"\n")
+	else
+	    stop("differing: ", i1, ", ", i2)
+    }
+}
+outerID <- function(x,y, ...) outer(x,y, Vectorize(identical,c("x","y")), ...)
+## b) complex 'x' with different kinds of NaN
+x0 <- c(0,1, NA_real_, NaN)
+z <- outer(x0,x0, complex, length.out=1L)
+z <- c(z[is.na(z)], # <- of length 4 * 4 - 2*2 = 12
+       as.complex(NaN), as.complex(0/0), # <- typically these two differ in bits
+       complex(real = NaN), complex(imaginary = NaN),
+       NA_complex_, complex(real = NA), complex(imaginary = NA))
+## 1..12 all differ, then only [14] ("0/0") differs in first (low level):
+symnum(outerID(z,z, FALSE,FALSE,FALSE,FALSE))
+symnum(outerID(z,z))
+(mz <- match(z, z)) # currently different {NA,NaN} patterns differ - not in print()/format() _FIXME_
+stopifnot(identical(mz, c(1:4, 1L, 3L, 7:8, 2L, 4L, 8L, 12L, # <- would change after FIXME
+                          rep(2L, 4), 7L, 1L, 1L)))
+zRI <- rbind(Re=Re(z), Im=Im(z)) # and see the pattern :
+print(cbind(format = format(z), t(zRI), mz), quote=FALSE)
+stopifnot(identical(mz, sapply(z, match, table = z)))
+## the latter has length(x) == 1 in match(x,*)  and failed in R 3.3.0
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot.Rout.save	(revision 2476)
@@ -0,0 +1,182 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> #### Regression tests for GRAPHICS & PLOTS
+> 
+> pdf("reg-plot.pdf", paper="a4r", encoding ="ISOLatin1.enc", compress = FALSE)
+> 
+> ## since we supply the font metrics, the results depend only on
+> ## the encoding used: Windows is different from Unix by default.
+> 
+> options(warn = 1) # print as they occur
+> 
+> plot(0) # this should remain constant
+> str(par(c("usr","xaxp","yaxp")))
+List of 3
+ $ usr : num [1:4] 0.568 1.432 -1.08 1.08
+ $ xaxp: num [1:3] 0.6 1.4 4
+ $ yaxp: num [1:3] -1 1 4
+> 
+> 
+> 
+> ### Test for centring of chars.  All the chars which are plotted should
+> ### be centred, and there should be no warnings about
+> ### font metrics unknown for character `?'
+> 
+> par(pty="s")
+> plot(c(-1,16), c(-1,16), type="n", xlab="", ylab="", xaxs="i", yaxs="i")
+> title("Centred chars in default char set (ISO Latin1)")
+> grid(17, 17, lty=1)
+> known <- c(32:126, 160:255)
+> 
+> for(i in known) {
++     x <- i %% 16
++     y <- i %/% 16
++     points(x, y, pch=-i)
++ }
+> 
+> par(pty="m")
+> 
+> ## PR 816 (label sizes in dotchart)
+> 
+> ### Prior to 1.2.2, the label sizes were unaffected by cex.
+> 
+> dotchart(VADeaths, main = "Death Rates in Virginia - 1940", cex = 0.5)
+> dotchart(VADeaths, main = "Death Rates in Virginia - 1940", cex = 1.5)
+> 
+> ## killed by 0 prior to 1.4.0 and in 1.4.1:
+> t1 <- ts(0:100)
+> ## only warnings about values <= 0
+> plot(t1, log = "y")
+Warning in xy.coords(x, NULL, log = log) :
+  1 y value <= 0 omitted from logarithmic plot
+> plot(cbind(t1, 10*t1, t1 - 4), log="y", plot.type = "single")
+Warning in xy.coords(x = matrix(rep.int(tx, k), ncol = k), y = x, log = log) :
+  7 y values <= 0 omitted from logarithmic plot
+> stopifnot(par("usr")[4] > 3) # log10: ylim[2] = 1000
+> 
+> 
+> ## This one needs to be looked at.
+> ## lty = "blank" killed the fill colour too.
+> plot(1:10, type="n")
+> polygon(c(1, 3, 3, 1), c(1, 1, 3, 3), col="yellow", border="red", lty="blank")
+> rect(6, 6, 10, 10,  col="blue", border="red", lty="blank")
+> ## in 1.5.0 all omit the fill colours.
+> with(trees, symbols(Height, Volume, circles=Girth/24, inches=FALSE,
++                     lty="blank", bg="blue"))
+> ## in 1.5.0 ignored the lty.
+> 
+> ## axis() and par(mgp < 0) {keep this example S+ compatible!}:
+> lt <- if(is.R()) "31" else 2
+> x <- seq(-2,3, len=1001)
+> op <- par(tck= +0.02, mgp = -c(3,2,0))
+> plot(x, x^2 - 1.2, xaxt = "n", xlab="", type ='l', col = 2,
++      main = "mgp < 0: all ticks and labels inside `frame'")
+> x <- -2:3
+> lines(x, x^2 - 1.2, type ="h", col = 3, lwd=3)
+> axis(1, pos = 0, at=-1:1, lty = lt, col=4)## col & lty work only from R 1.6
+> par(op)
+> axis(1, pos = 0, at=c(-2,2,3), lty = lt, col=4)
+> mtext(side=1,"note the x-ticks on the other side of the bars")
+> 
+> ## plot.table(): explicit xlab and ylab for non-1D
+> plot(UCBAdmissions)# default x- and y-lab
+> plot(UCBAdmissions, xlab = "x label", ylab = "YY")# wrong in 1.5.1
+> ##   axis suppression
+> plot(tt <- table(c(rep(0,7), rep(1,4), rep(5, 3))), axes = FALSE)
+> plot(tt, xaxt = "n")
+> ## wrong till (incl.) 1.6.x
+> 
+> ## legend with call
+> lo <- legend(2,2, substitute(hat(theta) == that, list(that= pi)))
+> stopifnot(length(lo$text$x) == 1)
+> ## length() was 3 till 1.7.x
+> 
+> plot(ecdf(c(1:4,8,12)), ylab = "ECDF", main=NULL)
+> ## ylab didn't work till 1.8.0
+> 
+> plot(1:10, pch = NA) # gave error till 1.9.0
+> points(1:3, pch=c("o",NA,"x"))# used "N"
+> try(points(4, pch=c(NA,FALSE)))# still give an error
+Error in plot.xy(xy.coords(x, y), type = type, ...) : 
+  only NA allowed in logical plotting symbol
+> 
+> ## 'lwd' should transfer to plot symbols
+> legend(1,10, c("A","bcd"), lwd = 2:3, pch= 21:22, pt.bg="skyblue",
++        col = 2:3, bg = "thistle")
+> ## (gave an error for 2 days in "2.0.0 unstable")
+> 
+> x <- 2^seq(1,1001, length=20)
+> plot(x, x^0.9, type="l", log="xy")
+> ## gave error 'Infinite axis extents [GEPretty(1.87013e-12,inf,5)]' for R 2.0.1
+> 
+> plot(as.Date("2001/1/1") + 12*(1:9), 1:9)
+> ## used bad 'xlab/ylab' in some versions of R 2.2.0(unstable)
+> 
+> ## dotchart() restoring par()
+> Opar <- par(no.readonly=TRUE) ; dotchart(1:4, cex= 0.7)
+> Npar <- par(no.readonly=TRUE)
+> ii <- c(37, 50:51, 58:59, 63)
+> stopifnot(identical(names(Opar)[ii],
++                     c("mai","pin","plt","usr","xaxp","yaxp")),
++           identical(Opar[-ii], Npar[-ii]))
+> ## did not correctly restore par("mar") up to (incl) R 2.4.0
+> 
+> ## plot.function()     [n=11, ... : since we store and diff PS file !]
+> plot(cos,       xlim=c(-5,5), n=11, axes=FALSE); abline(v=0)
+> ## did *not* plot for negative x up to R 2.5.1
+> plot(sin, -2,3, xlim=c(-5,5), n=11, axes=FALSE, xlab="")# plot from -2
+> axis(1, at=c(-2,3), tcl=-1); axis(1, at=c(-5,5))
+> ## (from,to) & xlim  should work simultaneously
+> 
+> plot(cos, -7,7, n=11, axes=FALSE)
+> ## gave wrong ylab in R 2.6.0
+> plot(cos, -7,7, ylab = "Cosine  cos(x)", n=11, axes=FALSE)
+> ## partial matching of 'ylab'; mapping  [0,1] (not [-7.7]):
+> ## margins chosen to avoid rouding error showing to 2dp.
+> op <- par(mar=c(5,4.123,4,2)+0.1)
+> plot(gamma, yla = expression(Gamma(x)), n=11, yaxt="n")
+Warning in x(x) : NaNs produced
+> par(op)
+> 
+> ## plot.ts(x, y) could get the labels wrong in R <= 2.6.0:
+> x <- ts(1:5);x1 <- lag(x, 2); plot(x1, x, axes=FALSE)
+> 
+> # adding a curve in log scale :
+> curve(5*exp(-x), 0.1, 100, n = 3, log="x", ylab="", axes=FALSE)
+> curve(5*exp(-x), add=TRUE, n = 3, col=2,lwd=3)
+> ## should fully overplot; wrong default xlim in 2.6.1
+> ## (and *slightly* wrong up to 2.6.0)
+> 
+> ## Axis() calls via plot()  {[xy]axt to keep *.ps small}
+> x <- as.Date("2008-04-22 09:45") + (i <- c(0,4))
+> plot(x,    xaxt="n")# not ok in 2.6.2, nor 2.7.0
+> plot(x, i, yaxt="n")# ok in 2.6.2  and 2.7.0
+> plot(i, x, xaxt="n")# ok in 2.6.2 and not in 2.7.0
+> 
+> ## table methods should be bypassed:
+> dotchart(table(infert$education))
+Warning in dotchart(table(infert$education)) :
+  'x' is neither a vector nor a matrix: using as.numeric(x)
+> ## failed in 2.12.[12]
+> 
+> ## cex as "..."  in "high level" function
+> hc <- hclust(dst <- dist(c(1:2, 5)), method="ave")
+> plot(hc, cex = 2, axes=FALSE, ann=FALSE)
+> ## cex was not used in 3.0.[01]
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot-latin1.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot-latin1.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot-latin1.R	(revision 2476)
@@ -0,0 +1,5 @@
+pdf(file = "reg-plot-latin1.pdf", encoding = "ISOLatin1",
+    width = 7, height = 7, paper = "a4r", compress = FALSE)
+library(graphics) # to be sure
+example(text)     # has examples that need to he plotted in latin-1
+q("no")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/array-subset.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/array-subset.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/array-subset.R	(revision 2476)
@@ -0,0 +1,86 @@
+## array subsetting tests
+##
+## Tests should be written to raise an error on test failure
+##
+
+## Test for subsetting of an array using a matrix with ncol == length(dim(x))
+
+## first matrix case
+m <- matrix(1:25, ncol=5, dimnames = list(letters[1:5], LETTERS[1:5]))
+
+si <- matrix(c(1, 1, 2, 3, 3, 4), ncol = 2, byrow = TRUE)
+ss <- matrix(c("a", "A", "b", "C", "c", "D"), ncol = 2, byrow = TRUE)
+
+stopifnot(identical(m[si], m[ss]))
+stopifnot(identical(c(1L, 12L, 18L), m[ss]))
+
+## test behavior of NA entries in subset matrix.
+## NA in character matrix should propagate and should not
+## match an NA in a dimname.
+
+## An NA in either column propagates to result
+ssna <- ss; ssna[2, 2] <- NA
+stopifnot(identical(c(1L, NA, 18L), m[ssna]))
+ssna <- ss; ssna[2, 1] <- NA
+stopifnot(identical(c(1L, NA, 18L), m[ssna]))
+
+## An NA in row/column names is not matched
+mnadim <- m
+tmp <- rownames(mnadim)
+tmp[5] <- NA
+rownames(mnadim) <- tmp
+stopifnot(identical(c(1L, NA, 18L), m[ssna]))
+
+## Unmatched subscripts raise an error
+ssnm <- ss
+ssnm[2, 2] <- "NOMATCH"
+stopifnot(inherits(try(m[ssnm], silent=TRUE), "try-error"))
+
+## "" does not match and so raises an error
+mnadim <- m
+tmp <- rownames(mnadim)
+tmp[5] <- ""
+rownames(mnadim) <- tmp
+ssnm <- ss
+ssnm[2, 2] <- ""
+stopifnot(inherits(try(mnadim[ssnm], silent=TRUE), "try-error"))
+
+
+## test assignment
+m3 <- m2 <- m
+m2[si] <- c(100L, 200L, 300L)
+m3[ss] <- c(100L, 200L, 300L)
+stopifnot(identical(m2, m3))
+
+## now an array case
+a <- array(1:75, dim = c(5, 5, 3),
+           dimnames = list(letters[1:5], LETTERS[1:5], letters[24:26]))
+
+si <- matrix(c(1, 1, 1,
+               2, 3, 1,
+               3, 4, 1,
+               5, 1, 3),
+             ncol = 3, byrow = TRUE)
+
+ss <- matrix(c("a", "A", "x",
+               "b", "C", "x",
+               "c", "D", "x",
+               "e", "A", "z"),
+             ncol = 3, byrow = TRUE)
+
+stopifnot(identical(a[si], a[ss]))
+stopifnot(identical(c(1L, 12L, 18L, 55L), a[ss]))
+
+a2 <- a1 <- a
+a1[si] <- c(100L, 1200L, 1800L, 5500L)
+a2[ss] <- c(100L, 1200L, 1800L, 5500L)
+stopifnot(identical(a1, a2))
+
+## it is an error to subset if some dimnames are missing NOTE: this
+## gives a subscript out of bounds error, might want something more
+## informative?
+a3 <- a
+dn <- dimnames(a3)
+dn[2] <- list(NULL)
+dimnames(a3) <- dn
+stopifnot(inherits(try(a3[ss], silent=TRUE), "try-error"))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/ok-errors.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/ok-errors.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/ok-errors.R	(revision 2476)
@@ -0,0 +1,20 @@
+#### STRICT test suite in the spirit of no-segfaults,
+#### but with explicit statements.
+
+options(error=expression(NULL))
+stop("test of `options(error=expression(NULL))'")
+
+if(FALSE) {
+## these ought to work on machines with enough memory
+## These segfaulted in 1.3.x ,  give "could not allocate" errors now
+  integer(2^30+1)
+   double(2^30+1)
+  complex(2^30+1)
+character(2^30+1)
+vector("list", 2^30+2)
+}
+
+## bad infinite recursion / on.exit / ... interactions
+bar <- function() 1+1
+foo <- function() { on.exit(bar()); foo() }
+foo() # now simple "infinite recursion"
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/eval-etc.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/eval-etc.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/eval-etc.Rout.save	(revision 2476)
@@ -0,0 +1,194 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ####  eval / parse / deparse / substitute  etc
+> 
+> ##- From: Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk>
+> ##- Subject: Re: source() / eval() bug ??? (PR#96)
+> ##- Date: 20 Jan 1999 14:56:24 +0100
+> e1 <- parse(text='c(F=(f <- .3), "Tail area" = 2 * if(f < 1) 30 else 90)')[[1]]
+> e1
+c(F = (f <- 0.3), `Tail area` = 2 * if (f < 1) 30 else 90)
+> str(eval(e1))
+ Named num [1:2] 0.3 60
+ - attr(*, "names")= chr [1:2] "F" "Tail area"
+> mode(e1)
+[1] "call"
+> 
+> ( e2 <- quote(c(a=1,b=2)) )
+c(a = 1, b = 2)
+> names(e2)[2] <- "a b c"
+> e2
+c(`a b c` = 1, b = 2)
+> parse(text=deparse(e2))
+expression(c(`a b c` = 1, b = 2))
+> 
+> ##- From: Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk>
+> ##- Date: 22 Jan 1999 11:47
+> 
+> ( e3 <- quote(c(F=1,"tail area"=pf(1,1,1))) )
+c(F = 1, `tail area` = pf(1, 1, 1))
+> eval(e3)
+        F tail area 
+      1.0       0.5 
+> names(e3)
+[1] ""          "F"         "tail area"
+> 
+> names(e3)[2] <- "Variance ratio"
+> e3
+c(`Variance ratio` = 1, `tail area` = pf(1, 1, 1))
+> eval(e3)
+Variance ratio      tail area 
+           1.0            0.5 
+> 
+> 
+> ##- From: Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk>
+> ##- Date: 2 Sep 1999
+> 
+> ## The first failed in 0.65.0 :
+> attach(list(x=1))
+> evalq(dim(x) <- 1,as.environment(2))
+> dput(get("x", envir=as.environment(2)), control="all")
+structure(1, .Dim = 1L)
+> 
+> e <- local({x <- 1;environment()})
+> evalq(dim(x) <- 1,e)
+> dput(get("x",envir=e), control="all")
+structure(1, .Dim = 1L)
+> 
+> ### Substitute, Eval, Parse, etc
+> 
+> ## PR#3 : "..." matching
+> ## Revised March 7 2001 -pd
+> A <- function(x, y, ...) {
++     B <- function(a, b, ...) { match.call() }
++     B(x+y, ...)
++ }
+> (aa <- A(1,2,3))
+B(a = x + y, b = 3)
+> all.equal(as.list(aa),
++           list(as.name("B"), a = expression(x+y)[[1]], b = 3))
+[1] TRUE
+> (a2 <- A(1,2, named = 3)) #A(1,2, named = 3)
+B(a = x + y, named = 3)
+> all.equal(as.list(a2),
++           list(as.name("B"), a = expression(x+y)[[1]], named = 3))
+[1] TRUE
+> 
+> CC <- function(...) match.call()
+> DD <- function(...) CC(...)
+> a3 <- DD(1,2,3)
+> all.equal(as.list(a3),
++           list(as.name("CC"), 1, 2, 3))
+[1] TRUE
+> 
+> ## More dots issues: March 19 2001 -pd
+> ## Didn't work up to and including 1.2.2
+> 
+> f <- function(...) {
++ 	val <- match.call(expand.dots=FALSE)$...
++         x <- val[[1]]
++ 	eval.parent(substitute(missing(x)))
++ }
+> g <- function(...) h(f(...))
+> h <- function(...) list(...)
+> k <- function(...) g(...)
+> X <- k(a=)
+> all.equal(X, list(TRUE))
+[1] TRUE
+> 
+> ## Bug PR#24
+> f <- function(x,...) substitute(list(x,...))
+> deparse(f(a, b)) == "list(a, b)" &&
++ deparse(f(b, a)) == "list(b, a)" &&
++ deparse(f(x, y)) == "list(x, y)" &&
++ deparse(f(y, x)) == "list(y, x)"
+[1] TRUE
+> 
+> tt <- function(x) { is.vector(x); deparse(substitute(x)) }
+> a <- list(b=3); tt(a$b) == "a$b" # tends to break when ...
+[1] TRUE
+> 
+> 
+> ## Parser:
+> 1 <
++     2
+[1] TRUE
+> 2 <=
++     3
+[1] TRUE
+> 4 >=
++     3
+[1] TRUE
+> 3 >
++     2
+[1] TRUE
+> 2 ==
++     2
+[1] TRUE
+> ## bug till ...
+> 1 !=
++     3
+[1] TRUE
+> 
+> all(NULL == NULL)
+[1] TRUE
+> 
+> ## PR #656 (related)
+> u <- runif(1);	length(find(".Random.seed")) == 1
+[1] TRUE
+> 
+> MyVaR <<- "val";length(find("MyVaR")) == 1
+[1] TRUE
+> rm(MyVaR);	length(find("MyVaR")) == 0
+[1] TRUE
+> 
+> 
+> ## Martin Maechler: rare bad bug in sys.function() {or match.arg()} (PR#1409)
+> callme <- function(a = 1, mm = c("Abc", "Bde")) {
++     mm <- match.arg(mm); cat("mm = "); str(mm) ; invisible()
++ }
+> ## The first two were as desired:
+> callme()
+mm =  chr "Abc"
+> callme(mm="B")
+mm =  chr "Bde"
+> mycaller <- function(x = 1, callme = pi) { callme(x) }
+> mycaller()## wrongly gave `mm = NULL'  now = "Abc"
+mm =  chr "Abc"
+> 
+> 
+> ## Garbage collection  protection problem:
+> if(FALSE) ## only here to be run as part of  'make test-Gct'
++     gctorture() # <- for manual testing
+> x <- c("a", NA, "b")
+> fx <- factor(x, exclude="")
+> ST <- if(interactive()) system.time else invisible
+> ST(r <- replicate(20, capture.output(print(fx))))
+> table(ok. <- r[2,] == "Levels: a b <NA>") # want all TRUE
+
+TRUE 
+  20 
+> stopifnot(ok.) # in case of failure, see
+> r[2,] ## the '<NA>' levels part would be wrong occasionally
+ [1] "Levels: a b <NA>" "Levels: a b <NA>" "Levels: a b <NA>" "Levels: a b <NA>"
+ [5] "Levels: a b <NA>" "Levels: a b <NA>" "Levels: a b <NA>" "Levels: a b <NA>"
+ [9] "Levels: a b <NA>" "Levels: a b <NA>" "Levels: a b <NA>" "Levels: a b <NA>"
+[13] "Levels: a b <NA>" "Levels: a b <NA>" "Levels: a b <NA>" "Levels: a b <NA>"
+[17] "Levels: a b <NA>" "Levels: a b <NA>" "Levels: a b <NA>" "Levels: a b <NA>"
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-S4.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-S4.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-S4.Rout.save	(revision 2476)
@@ -0,0 +1,1178 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ####--- S4 Methods (and Classes)  --- see also ../src/library/methods/tests/
+> options(useFancyQuotes=FALSE)
+> require(methods)
+> assertError <- tools::assertError # "import"
+> ##too fragile: showMethods(where = "package:methods")
+> 
+> ## When this test comes too late, it fails too early in R <= 3.2.2
+> require(stats4)
+Loading required package: stats4
+> detach("package:methods")
+> require("methods")
+Loading required package: methods
+> cc <- methods::getClassDef("standardGeneric")
+> cc ## (auto) print failed here, in R <= 3.2.2
+Class "standardGeneric" [package "methods"]
+
+Slots:
+                                                                  
+Name:           .Data        generic        package          group
+Class:       function      character      character           list
+                                                                  
+Name:      valueClass      signature        default       skeleton
+Class:      character      character optionalMethod           call
+
+Extends: 
+Class "genericFunction", directly
+Class "function", by class "genericFunction", distance 2
+Class "OptionalFunction", by class "function", distance 3
+Class "PossibleMethod", by class "function", distance 3
+Class "optionalMethod", by class "genericFunction", distance 4
+
+Known Subclasses: "standardGenericWithTrace"
+> stopifnot(.isMethodsDispatchOn()) ## was FALSE in R <= 3.2.2
+> 
+> 
+> ## Needs cached primitive generic for '$'
+> new("envRefClass")# failed in R <= 3.2.0
+Reference class object of class "envRefClass"
+> 
+> ##-- S4 classes with S3 slots [moved from ./reg-tests-1.R]
+> setClass("test1", representation(date="POSIXct"))
+> x <- new("test1", date=as.POSIXct("2003-10-09"))
+> stopifnot(format(x @ date) == "2003-10-09")
+> ## line 2 failed in 1.8.0 because of an extraneous space in "%in%"
+> 
+> stopifnot(all.equal(3:3, 3.), all.equal(1., 1:1))
+> 
+> ## trace (requiring methods):
+> f <- function(x, y) { c(x,y)}
+> xy <- 0
+> trace(f, quote(x <- c(1, x)), exit = quote(xy <<- x), print = FALSE)
+[1] "f"
+> fxy <- f(2,3)
+> stopifnot(identical(fxy, c(1,2,3)))
+> stopifnot(identical(xy, c(1,2)))
+> untrace(f)
+> 
+> ## a generic and its methods
+> 
+> setGeneric("f")
+[1] "f"
+> setMethod("f", c("character", "character"), function(x,	 y) paste(x,y))
+[1] "f"
+> 
+> ## trace the generic
+> trace("f", quote(x <- c("A", x)), exit = quote(xy <<- c(x, "Z")), print = FALSE)
+[1] "f"
+> 
+> ## should work for any method
+> 
+> stopifnot(identical(f(4,5), c("A",4,5)),
++           identical(xy, c("A", 4, "Z")))
+> 
+> stopifnot(identical(f("B", "C"), paste(c("A","B"), "C")),
++           identical(xy, c("A", "B", "Z")))
+> 
+> ## trace a method
+> trace("f", sig = c("character", "character"), quote(x <- c(x, "D")),
++       exit = quote(xy <<- xyy <<- c(x, "W")), print = FALSE)
+[1] "f"
+> 
+> stopifnot(identical(f("B", "C"), paste(c("A","B","D"), "C")))
+> stopifnot(identical(xyy, c("A", "B", "D", "W")))
+> # got broken by Luke's lexical scoping fix:
+> #stopifnot(identical(xy, xyy))
+> 
+> ## but the default method is unchanged
+> stopifnot(identical(f(4,5), c("A",4,5)),
++           identical(xy, c("A", 4, "Z")))
+> 
+> removeGeneric("f")
+[1] TRUE
+> ## end of moved from trace.Rd
+> 
+> 
+> ## print/show dispatch  [moved from  ./reg-tests-2.R ]
+> ## The results  have waffled back and forth.
+> ## Currently (R 2.4.0) the intent is that automatic printing of S4
+> ## objects should correspond to a call to show(), as per the green
+> ## book, p. 332.  Therefore, the show() method is called, once defined,
+> ## for auto-printing foo, regardless of the S3 or S4 print() method.
+> ## (But most of this example is irrelevant if one avoids S3 methods for
+> ## S4 classes, as one should.)
+> setClass("bar", representation(a="numeric"))
+> foo <- new("bar", a=pi)
+> foo
+An object of class "bar"
+Slot "a":
+[1] 3.141593
+
+> show(foo)
+An object of class "bar"
+Slot "a":
+[1] 3.141593
+
+> print(foo)
+An object of class "bar"
+Slot "a":
+[1] 3.141593
+
+> 
+> setMethod("show", "bar", function(object){cat("show method\n")})
+[1] "show"
+> show(foo)
+show method
+> foo
+show method
+> print(foo)
+show method
+> # suppressed because output depends on current choice of S4 type or
+> # not.  Can reinstate when S4 type is obligatory
+> # print(foo, digits = 4)
+> 
+> ## DON'T DO THIS:  S3 methods for S4 classes are a design error JMC iii.9.09
+> ## print.bar <- function(x, ...) cat("print method\n")
+> ## foo
+> ## print(foo)
+> ## show(foo)
+> 
+> setMethod("print", "bar", function(x, ...){cat("S4 print method\n")})
+[1] "print"
+> foo
+show method
+> print(foo)
+S4 print method
+> show(foo)
+show method
+> ## calling print() with more than one argument suppresses the show()
+> ## method, largely to prevent an infinite loop if there is in fact no
+> ## show() method for this class.  A better solution would be desirable.
+> print(foo, digits = 4)
+S4 print method
+> 
+> setClassUnion("integer or NULL", members = c("integer","NULL"))
+> setClass("c1", representation(x = "integer", code = "integer or NULL"))
+> nc <- new("c1", x = 1:2)
+> str(nc)# gave ^ANULL^A in 2.0.0
+Formal class 'c1' [package ".GlobalEnv"] with 2 slots
+  ..@ x   : int [1:2] 1 2
+  ..@ code: NULL
+> ##
+> 
+> 
+> library(stats4)
+> showMethods("coerce", classes=c("matrix", "numeric"))
+Function: coerce (package methods)
+from="ANY", to="matrix"
+from="ANY", to="numeric"
+
+> ## {gave wrong result for a while in R 2.4.0}
+> 
+> ## the following showMethods() output tends to generate errors in the tests
+> ## whenever the contents of the packages change. Searching in the
+> ## diff's can easily mask real problems.  If there is a point
+> ## to the printout, e.g., to verify that certain methods exist,
+> ## hasMethod() would be a useful replacement
+> 
+> ## showMethods(where = "package:stats4")
+> ## showMethods("show")
+> ## showMethods("show")
+> ## showMethods("plot") # (ANY,ANY) and (profile.mle, missing)
+> ## showMethods(classes="mle")
+> ## showMethods(classes="matrix")
+> 
+> 
+> ##--- "[" fiasco before R 2.2.0 :
+> d2 <- data.frame(b= I(matrix(1:6,3,2)))
+> ## all is well:
+> d2[2,]
+     [,1] [,2]
+[1,]    2    5
+> stopifnot(identical(d2[-1,], d2[2:3,]))
+> ## Now make "[" into S4 generic by defining a trivial method
+> setClass("Mat", representation(Dim = "integer", "VIRTUAL"))
+> setMethod("[", signature(x = "Mat",
++ 			 i = "missing", j = "missing", drop = "ANY"),
++ 	  function (x, i, j, drop) x)
+[1] "["
+> ## Can even remove the method: it doesn't help
+> removeMethod("[", signature(x = "Mat",
++                             i = "missing", j = "missing", drop = "ANY"))
+[1] TRUE
+> d2[1:2,] ## used to fail badly; now okay
+     [,1] [,2]
+[1,]    1    4
+[2,]    2    5
+> stopifnot(identical(d2[-1,], d2[2:3,]))
+> ## failed in R <= 2.1.x
+> 
+> 
+> ## Fritz' S4 "odditiy"
+> setClass("X", representation(bar="numeric"))
+> setClass("Y", contains="X")
+> ## Now we define a generic foo() and two different methods for "X" and
+> ## "Y" objects for arg missing:
+> setGeneric("foo", function(object, arg) standardGeneric("foo"))
+[1] "foo"
+> setMethod("foo", signature(object= "X", arg="missing"),
++           function(object, arg) cat("an X object with bar =", object@bar, "\n"))
+[1] "foo"
+> setMethod("foo", signature(object= "Y", arg="missing"),
++           function(object, arg) cat("a Y object with bar =", object@bar, "\n"))
+[1] "foo"
+> ## Finally we create a method where arg is "logical" only for class
+> ## "X", hence class "Y" should inherit that:
+> setMethod("foo", signature(object= "X", arg= "logical"),
++           function(object, arg) cat("Hello World!\n") )
+[1] "foo"
+> ## now create objects and call methods:
+> y <- new("Y", bar=2)
+> ## showMethods("foo")
+> foo(y)
+a Y object with bar = 2 
+> foo(y, arg=TRUE)## Hello World!
+Hello World!
+> ## OK, inheritance worked, and we have
+> ## showMethods("foo")
+> foo(y)
+a Y object with bar = 2 
+> ## still 'Y' -- was 'X object' in R < 2.3
+> 
+> 
+> ## Multiple inheritance
+> setClass("A", representation(x = "numeric"))
+> setClass("B", representation(y = "character"))
+> setClass("C", contains = c("A", "B"), representation(z = "logical"))
+> new("C")
+An object of class "C"
+Slot "z":
+logical(0)
+
+Slot "x":
+numeric(0)
+
+Slot "y":
+character(0)
+
+> setClass("C", contains = c("A", "B"), representation(z = "logical"),
++          prototype = prototype(x = 1.5, y = "test", z = TRUE))
+> (cc <- new("C"))
+An object of class "C"
+Slot "z":
+[1] TRUE
+
+Slot "x":
+[1] 1.5
+
+Slot "y":
+[1] "test"
+
+> ## failed reconcilePropertiesAndPrototype(..) after svn r37018
+> stopifnot(identical(selectSuperClasses("C", dropVirtual = TRUE), c("A", "B")),
++ 	  0 == length(.selectSuperClasses(getClass("B")@contains)))
+> 
+> ## "Logic" group -- was missing in R <= 2.4.0
+> stopifnot(all(getGroupMembers("Logic") %in% c("&", "|")),
++ 	  any(getGroupMembers("Ops") == "Logic"))
+> setClass("brob", contains="numeric")
+> b <- new("brob", 3.14)
+> logic.brob.error <- function(nm)
++     stop("logic operator '", nm, "' not applicable to brobs")
+> logic2 <- function(e1,e2) logic.brob.error(.Generic)
+> setMethod("Logic", signature("brob", "ANY"), logic2)
+[1] "Logic"
+> setMethod("Logic", signature("ANY", "brob"), logic2)
+[1] "Logic"
+> ## Now ensure that using group members gives error:
+> assertError(b & b)
+Note: method with signature 'brob#ANY' chosen for function '&',
+ target signature 'brob#brob'.
+ "ANY#brob" would also be valid
+> assertError(b | 1)
+> assertError(TRUE & b)
+> 
+> 
+> ## methods' hidden cbind() / rbind:
+> setClass("myMat", representation(x = "numeric"))
+> setMethod("cbind2", signature(x = "myMat", y = "missing"), function(x,y) x)
+[1] "cbind2"
+> m <- new("myMat", x = c(1, pi))
+> stopifnot(identical(m, methods:::cbind(m)), identical(m, cbind(m)))
+> 
+> 
+> ## explicit print or show on a basic class with an S4 bit
+> ## caused infinite recursion
+> setClass("Foo", representation(name="character"), contains="matrix")
+> (f <- new("Foo", name="Sam", matrix()))
+An object of class "Foo"
+     [,1]
+[1,]   NA
+Slot "name":
+[1] "Sam"
+
+> f2 <- new("Foo", .Data = diag(2), name="Diag")# explicit .Data
+> (m <- as(f, "matrix"))
+     [,1]
+[1,]   NA
+> ## this has no longer (2.7.0) an S4 bit: set it explicitly just for testing:
+> stopifnot(isS4(m. <- asS4(m)),
++           identical(m, f@.Data),
++ 	  .hasSlot(f, "name"))# failed in R <= 2.13.1
+> show(m.)
+     [,1]
+[1,]   NA
+> print(m.)
+     [,1]
+[1,]   NA
+> ## fixed in 2.5.0 patched
+> 
+> ## callGeneric inside a method with new arguments {hence using .local()}:
+> setGeneric("Gfun", function(x, ...) standardGeneric("Gfun"),
++ 	   useAsDefault = function(x, ...) sum(x, ...))
+[1] "Gfun"
+> setClass("myMat", contains="matrix")
+> setClass("mmat2", contains="matrix")
+> setClass("mmat3", contains="mmat2")
+> setMethod(Gfun, signature(x = "myMat"),
++ 	  function(x, extrarg = TRUE) {
++ 	      cat("in 'myMat' method for 'Gfun() : extrarg=", extrarg, "\n")
++ 	      Gfun(unclass(x))
++ 	  })
+[1] "Gfun"
+attr(,"package")
+[1] ".GlobalEnv"
+> setMethod(Gfun, signature(x = "mmat2"),
++ 	  function(x, extrarg = TRUE) {
++ 	      cat("in 'mmat2' method for 'Gfun() : extrarg=", extrarg, "\n")
++ 	      x <- unclass(x)
++ 	      callGeneric()
++ 	  })
+[1] "Gfun"
+attr(,"package")
+[1] ".GlobalEnv"
+> setMethod(Gfun, signature(x = "mmat3"),
++ 	  function(x, extrarg = TRUE) {
++ 	      cat("in 'mmat3' method for 'Gfun() : extrarg=", extrarg, "\n")
++ 	      x <- as(x, "mmat2")
++ 	      callGeneric()
++ 	  })
+[1] "Gfun"
+attr(,"package")
+[1] ".GlobalEnv"
+> wrapG <- function(x, a1, a2) {
++     myextra <- missing(a1) && missing(a2)
++     Gfun(x, extrarg = myextra)
++ }
+> 
+> (mm <- new("myMat", diag(3)))
+An object of class "myMat"
+     [,1] [,2] [,3]
+[1,]    1    0    0
+[2,]    0    1    0
+[3,]    0    0    1
+> Gfun(mm)
+in 'myMat' method for 'Gfun() : extrarg= TRUE 
+[1] 3
+> stopifnot(identical(wrapG(mm),    Gfun(mm, TRUE)),
++           identical(wrapG(mm,,2), Gfun(mm, FALSE)))
+in 'myMat' method for 'Gfun() : extrarg= TRUE 
+in 'myMat' method for 'Gfun() : extrarg= TRUE 
+in 'myMat' method for 'Gfun() : extrarg= FALSE 
+in 'myMat' method for 'Gfun() : extrarg= FALSE 
+> 
+> Gfun(mm, extrarg = FALSE)
+in 'myMat' method for 'Gfun() : extrarg= FALSE 
+[1] 3
+> m2 <- new("mmat2", diag(3))
+> Gfun(m2)
+in 'mmat2' method for 'Gfun() : extrarg= TRUE 
+[1] 3
+> Gfun(m2, extrarg = FALSE)
+in 'mmat2' method for 'Gfun() : extrarg= FALSE 
+[1] 3
+> ## The last two gave Error ...... variable ".local" was not found
+> (m3 <- new("mmat3", diag(3)))
+An object of class "mmat3"
+     [,1] [,2] [,3]
+[1,]    1    0    0
+[2,]    0    1    0
+[3,]    0    0    1
+> Gfun(m3)
+in 'mmat3' method for 'Gfun() : extrarg= TRUE 
+in 'mmat2' method for 'Gfun() : extrarg= TRUE 
+[1] 3
+> Gfun(m3, extrarg = FALSE) # used to not pass 'extrarg'
+in 'mmat3' method for 'Gfun() : extrarg= FALSE 
+in 'mmat2' method for 'Gfun() : extrarg= FALSE 
+[1] 3
+> 
+> ## -- a variant of the above which failed in version <= 2.5.1 :
+> setGeneric("Gf", function(x, ...) standardGeneric("Gf"))
+[1] "Gf"
+> setMethod(Gf, signature(x = "mmat2"),
++           function(x, ...) {
++               cat("in 'mmat2' method for 'Gf()\n")
++               x <- unclass(x)
++               callGeneric()
++           })
+[1] "Gf"
+attr(,"package")
+[1] ".GlobalEnv"
+> setMethod(Gf, signature(x = "mmat3"),
++           function(x, ...) {
++               cat("in 'mmat3' method for 'Gf()\n")
++               x <- as(x, "mmat2")
++               callGeneric()
++           })
+[1] "Gf"
+attr(,"package")
+[1] ".GlobalEnv"
+> setMethod(Gf, signature(x = "matrix"),
++ 	  function(x, a1, ...) {
++               cat(sprintf("matrix %d x %d ...\n", nrow(x), ncol(x)))
++               list(x=x, a1=a1, ...)
++           })
+[1] "Gf"
+attr(,"package")
+[1] ".GlobalEnv"
+> 
+> wrap2 <- function(x, a1, ...) {
++     A1 <- if(missing(a1)) "A1" else as.character(a1)
++     Gf(x, ..., a1 = A1)
++ }
+> ## Gave errors in R 2.5.1 :
+> wrap2(m2, foo = 3.14)
+in 'mmat2' method for 'Gf()
+matrix 3 x 3 ...
+$x
+     [,1] [,2] [,3]
+[1,]    1    0    0
+[2,]    0    1    0
+[3,]    0    0    1
+
+$a1
+[1] "A1"
+
+$foo
+[1] 3.14
+
+> wrap2(m2, 10, answer.all = 42)
+in 'mmat2' method for 'Gf()
+matrix 3 x 3 ...
+$x
+     [,1] [,2] [,3]
+[1,]    1    0    0
+[2,]    0    1    0
+[3,]    0    0    1
+
+$a1
+[1] "10"
+
+$answer.all
+[1] 42
+
+> 
+> 
+> ## regression tests of dispatch: most of these became primitive in 2.6.0
+> setClass("c1", "numeric")
+> setClass("c2", "numeric")
+> x_c1 <- new("c1")
+> # the next failed < 2.5.0 as the signature in .BasicFunsList was wrong
+> setMethod("as.character", "c1", function(x, ...) "fn test")
+[1] "as.character"
+> as.character(x_c1)
+[1] "fn test"
+> 
+> setMethod("as.integer", "c1", function(x, ...) 42)
+[1] "as.integer"
+> as.integer(x_c1)
+[1] 42
+> 
+> setMethod("as.logical", "c1", function(x, ...) NA)
+[1] "as.logical"
+> as.logical(x_c1)
+[1] NA
+> 
+> setMethod("as.complex", "c1", function(x, ...) pi+0i)
+[1] "as.complex"
+> as.complex(x_c1)
+[1] 3.141593+0i
+> 
+> setMethod("as.raw", "c1", function(x) as.raw(10))
+[1] "as.raw"
+> as.raw(x_c1)
+[1] 0a
+> 
+> # as.double, as.real use as.numeric for their methods to maintain equivalence
+> setMethod("as.numeric", "c1", function(x, ...) 42+pi)
+[1] "as.numeric"
+> identical(as.numeric(x_c1),as.double(x_c1))
+[1] TRUE
+> 
+> 
+> setMethod(as.double, "c2", function(x, ...) x@.Data+pi)
+[1] "as.numeric"
+> x_c2 <- new("c2", pi)
+> identical(as.numeric(x_c2),as.double(x_c2))
+[1] TRUE
+> 
+> ## '!' changed signature from 'e1' to 'x' in 2.6.0
+> setClass("foo", "logical")
+> setMethod("!", "foo", function(e1) e1+NA)
+[1] "!"
+Warning message:
+For function '!', signature 'foo': argument in method definition changed from (e1) to (x) 
+> selectMethod("!", "foo")
+Method Definition:
+
+function (x) 
+x + NA
+
+Signatures:
+        x    
+target  "foo"
+defined "foo"
+> xx <- new("foo", FALSE)
+> !xx
+An object of class "foo"
+[1] NA
+> 
+> ## This fails in R versions earlier than 2.6.0:
+> setMethod("as.vector", "foo", function(x) unclass(x))
+[1] "as.vector"
+> stopifnot(removeClass("foo"))
+> 
+> ## stats4::AIC in R < 2.7.0 used to clobber stats::AIC
+> pfit <- function(data) {
++     m <- mean(data)
++     loglik <- sum(dpois(data, m))
++     ans <- list(par = m, loglik = loglik)
++     class(ans) <- "pfit"
++     ans
++ }
+> AIC.pfit <- function(object, ..., k = 2) -2*object$loglik + k
+> AIC(pfit(1:10))
+[1] 0.05867604
+> library(stats4) # and keep on search() for tests below
+> AIC(pfit(1:10)) # failed in R < 2.7.0
+[1] 0.05867604
+> 
+> ## For a few days (~ 2008-01-30), this failed to work without any notice:
+> setClass("Mat",  representation(Dim = "integer","VIRTUAL"))
+> setClass("dMat", representation(x = "numeric",  "VIRTUAL"), contains = "Mat")
+> setClass("CMat", representation(dnames = "list","VIRTUAL"), contains = "Mat")
+> setClass("dCMat", contains = c("dMat", "CMat"))
+> stopifnot(!isVirtualClass("dCMat"),
++ 	  length(slotNames(new("dCMat"))) == 3)
+> 
+> 
+> ## Passing "..." arguments in nested callGeneric()s
+> setClass("m1", contains="matrix")
+> setClass("m2", contains="m1")
+> setClass("m3", contains="m2")
+> ##
+> setGeneric("foo", function(x, ...) standardGeneric("foo"))
+[1] "foo"
+> setMethod("foo", signature(x = "m1"),
++ 	  function(x, ...) cat(" <m1> ", format(match.call()),"\n"))
+[1] "foo"
+> setMethod("foo", signature(x = "m2"),
++ 	  function(x, ...) {
++ 	      cat(" <m2> ", format(match.call()),"\n")
++ 	      x <- as(x, "m1"); callGeneric()
++ 	  })
+[1] "foo"
+> setMethod("foo", signature(x = "m3"),
++ 	  function(x, ...) {
++ 	      cat(" <m3> ", format(match.call()),"\n")
++ 	      x <- as(x, "m2"); callGeneric()
++ 	  })
+[1] "foo"
+> foo(new("m1"), bla = TRUE)
+ <m1>  foo(x = new("m1"), bla = TRUE) 
+> foo(new("m2"), bla = TRUE)
+ <m2>  foo(x = new("m2"), bla = TRUE) 
+ <m1>  foo(x = x, bla = TRUE) 
+> foo(new("m3"), bla = TRUE)
+ <m3>  foo(x = new("m3"), bla = TRUE) 
+ <m2>  foo(x = x, bla = TRUE) 
+ <m1>  foo(x = x, bla = TRUE) 
+> ## The last one used to loose 'bla = TRUE' {the "..."} when it got to m1
+> 
+> ## is() for S3 objects with multiple class strings
+> setClassUnion("OptionalPOSIXct",   c("POSIXct",   "NULL"))
+> stopifnot(is(Sys.time(), "OptionalPOSIXct"))
+> ## failed in R 2.7.0
+> 
+> ## getGeneric() / getGenerics() "problems" related to 'tools' usage:
+> e4 <- as.environment("package:stats4")
+> gg4 <- getGenerics(e4)
+> stopifnot(c("BIC", "coef", "confint", "logLik", "plot", "profile",
++             "show", "summary", "update", "vcov") %in% gg4, # %in% : "future proof"
++           unlist(lapply(gg4, function(g) !is.null(getGeneric(g, where = e4)))),
++           unlist(lapply(gg4, function(g) !is.null(getGeneric(g)))))
+> em <- as.environment("package:methods")
+> ggm <- getGenerics(em)
+> gms <- c("addNextMethod", "body<-", "cbind2", "initialize",
++ 	 "loadMethod", "Ops", "rbind2", "show")
+> stopifnot(unlist(lapply(ggm, function(g) !is.null(getGeneric(g, where = em)))),
++ 	  unlist(lapply(ggm, function(g) !is.null(getGeneric(g)))),
++ 	  gms %in% ggm,
++ 	  gms %in% tools:::get_S4_generics_with_methods(em), # with "message"
++ 	  ## all above worked in 2.7.0, however:
++ 	  isGeneric("show",  where=e4),
++ 	  hasMethods("show", where=e4), hasMethods("show", where=em),
++ 	  ## isGeneric("dim", where=as.environment("package:Matrix"))
++ 	  identical(as.character(gg4), #gg4 has packages attr.; tools::: doesn't
++ 		    tools:::get_S4_generics_with_methods(e4))
++ 	  )
+> ## the last failed in R 2.7.0 : was not showing  "show"
+> ## TODO: use "Matrix" checks once that is >= 1.0
+> 
+> ## containing "array" ("matrix", "ts", ..)
+> t. <- ts(1:10, frequency = 4, start = c(1959, 2))
+> setClass("Arr", contains= "array"); x <- new("Arr", cbind(17))
+> setClass("Ts",  contains= "ts");   tt <- new("Ts", t.); t2 <- as(t., "Ts")
+> setClass("ts2", representation(x = "Ts", y = "ts"))
+> tt2 <- new("ts2", x=t2, y=t.)
+> stopifnot(dim(x) == c(1,1), is(tt, "ts"), is(t2, "ts"),
++           ## FIXME:  identical(tt, t2)
++           length(tt) == length(t.),
++           identical(tt2@x, t2), identical(tt2@y, t.))
+> ## new(..) failed in R 2.7.0
+> 
+> ## Method with wrong argument order :
+> setGeneric("test1", function(x, printit = TRUE, name = "tmp")
++            standardGeneric("test1"))
+[1] "test1"
+> tools::assertCondition(
++ setMethod("test1", "numeric", function(x, name, printit) match.call()),
++ "warning", "error")## did not warn or error in R 2.7.0 and earlier
+> 
+> library(stats4)
+> c1 <- getClass("mle", where = "stats4")
+> c2 <- getClass("mle", where = "package:stats4")
+> s1 <- getMethod("summary", "mle", where = "stats4")
+> s2 <- getMethod("summary", "mle", where = "package:stats4")
+> stopifnot(is(c1, "classRepresentation"),
++ 	  is(s1, "MethodDefinition"),
++ 	  identical(c1,c2), identical(s1,s2))
+> ## failed at times in the past
+> 
+> ## Extending "matrix", the .Data slot etc:
+> setClass("moo", representation("matrix"))
+> m <- matrix(1:4, 2, dimnames= list(NULL, c("A","B")))
+> nf <- new("moo", .Data = m)
+> n2 <- new("moo", 3:1, 3,2)
+> n3 <- new("moo", 1:6, ncol=2)
+> stopifnot(identical(m,			as(nf, "matrix")),
++ 	  identical(matrix(3:1,3,2),	as(n2, "matrix")),
++ 	  identical(matrix(1:6,ncol=2), as(n3, "matrix")))
+> ## partly failed at times in pre-2.8.0
+> 
+> ## From "Michael Lawrence" <....@fhcrc.org>  To r-devel@r-project, 25 Nov 2008:
+> ## NB: setting a generic on order() is *not* the approved method
+> ## -- set xtfrm() methods instead
+> setGeneric("order", signature="...",
++ 	   function (..., na.last=TRUE, decreasing=FALSE)
++ 	   standardGeneric("order"))
+Creating a new generic function for 'order' in the global environment
+[1] "order"
+> stopifnot(identical(rbind(1), matrix(1,1,1)))
+> setGeneric("rbind", function(..., deparse.level=1)
++ 	   standardGeneric("rbind"), signature = "...")
+Creating a new generic function for 'rbind' in the global environment
+[1] "rbind"
+> stopifnot(identical(rbind(1), matrix(1,1,1)))
+> ## gave Error in .Method( .... in R 2.8.0
+> 
+> ## median( <simple S4> )
+> ## FIXME: if we use "C" instead of "L", this fails because of caching
+> setClass("L", contains = "list")
+> ## {simplistic, just for the sake of testing here} :
+> setMethod("Compare", signature(e1="L", e2="ANY"),
++           function(e1,e2) sapply(e1, .Generic, e2=e2))
+[1] "Compare"
+> ## note the next does *not* return an object of the class.
+> setMethod("Summary", "L",
++ 	  function(x, ..., na.rm=FALSE) {x <- unlist(x); callNextMethod()})
+[1] "Summary"
+> setMethod("[", signature(x="L", i="ANY", j="missing",drop="missing"),
++           function(x,i,j,drop) new(class(x), x@.Data[i]))
+[1] "["
+> ## defining S4 methods for sort() has no effect on calls to
+> ## sort() from functions in a namespace; e.g., median.default.
+> ## but setting an xtfrm() method works.
+> setMethod("xtfrm", "L", function(x) xtfrm(unlist(x@.Data)))
+[1] "xtfrm"
+> ## median is documented to use mean(), so we need an S3 mean method:
+> ## An S4 method will not do because of the long-standing S4 scoping bug.
+> mean.L <- function(x, ...) new("L", mean(unlist(x@.Data), ...))
+> x <- new("L", 1:3); x2 <- x[-2]
+> stopifnot(unlist(x2) == (1:3)[-2],
++ 	  is(mx <- median(x), "L"), mx == 2,
++ 	  ## median of two
++ 	  median(x2) == x[2])
+> ## NB: quantile() is not said to work on such an object, and only does so
+> ## for order statistics (so should not be tested, but was in earlier versions).
+> 
+> ## Buglet in as() generation for class without own slots
+> setClass("SIG", contains="signature")
+> stopifnot(packageSlot(class(S <- new("SIG"))) == ".GlobalEnv",
++ 	  packageSlot(class(ss <- new("signature"))) == "methods",
++ 	  packageSlot(class(as(S, "signature"))) == "methods")
+> ## the 3rd did not have "methods"
+> 
+> ## Invalid "factor"s -- now "caught" by  validity check :
+>  ok.f <- gl(3,5, labels = letters[1:3])
+> bad.f <- structure(rep(1:3, each=5), levels=c("a","a","b"), class="factor")
+> validObject(ok.f) ; assertError(validObject(bad.f))
+[1] TRUE
+> setClass("myF", contains = "factor")
+> validObject(new("myF", ok.f))
+[1] TRUE
+> assertError(validObject(new("myF", bad.f)))
+> removeClass("myF")
+[1] TRUE
+> ## no validity check in R <= 2.9.0
+> 
+> ## as(x, .)   when x is from an "unregistered" S3 class :
+> as(structure(1:3, class = "foobar"), "vector")
+[1] 1 2 3
+> ## failed to work in R <= 2.9.0
+> 
+> ## S4 dispatch in the internal generic xtfrm (added in 2.11.0)
+> setClass("numWithId", representation(id = "character"), contains = "numeric")
+> x <- new("numWithId", 1:3, id = "An Example")
+> xtfrm(x) # works as the base representation is numeric
+[1] 1 2 3
+attr(,"id")
+[1] "An Example"
+> setMethod('xtfrm', 'numWithId', function(x) x@.Data)
+[1] "xtfrm"
+> xtfrm(x)
+[1] 1 2 3
+> stopifnot(identical(xtfrm(x), 1:3))# "integer" is "numeric"
+> ## new in 2.11.0
+> 
+> ## [-dispatch using callNextMethod()
+> setClass("C1", representation(a = "numeric"))
+> setClass("C2", contains = "C1")
+> setMethod("[", "C1", function(x,i,j,...,drop=TRUE)
++ 	  cat("drop in C1-[ :", drop, "\n"))
+[1] "["
+> setMethod("[", "C2", function(x,i,j,...,drop=TRUE) {
++     cat("drop in C2-[ :", drop, "\n")
++     callNextMethod()
++ })
+[1] "["
+> x <- new("C1"); y <- new("C2")
+> x[1, drop=FALSE]
+drop in C1-[ : FALSE 
+NULL
+> y[1, drop=FALSE]
+drop in C2-[ : FALSE 
+drop in C1-[ : FALSE 
+NULL
+> ## the last gave TRUE on C1-level in R 2.10.x;
+> ## the value of drop was wrongly taken from the default.
+> 
+> ## All slot names -- but "class" -- should work now
+> problNames <- c("names", "dimnames", "row.names",
++                 "class", "comment", "dim", "tsp")
+> myTry <- function(expr, ...) tryCatch(expr, error = function(e) e)
+> tstSlotname <- function(nm) {
++     r <- myTry(setClass("foo", representation =
++                         structure(list("character"), .Names = nm)))
++     if(is(r, "error")) return(r$message)
++     ## else
++     ch <- LETTERS[1:5]
++     ## instead of  new("foo", <...> = ch):
++     x <- myTry(do.call(new, structure(list("foo", ch), .Names=c("", nm))))
++     if(is(x, "error")) return(x$message)
++     y <- myTry(new("foo"));		 if(is(y, "error")) return(y$message)
++     r <- myTry(capture.output(show(x))); if(is(r, "error")) return(r$message)
++     r <- myTry(capture.output(show(y))); if(is(r, "error")) return(r$message)
++     ## else
++     slot(y, nm) <- slot(x, nm)
++     stopifnot(validObject(x), identical(x,y), identical(slot(x, nm), ch))
++     return(TRUE)
++ }
+> R <- sapply(problNames, tstSlotname, simplify = FALSE)
+> str(R) # just so ...
+List of 7
+ $ names    : logi TRUE
+ $ dimnames : logi TRUE
+ $ row.names: logi TRUE
+ $ class    : chr "\"class\" is a reserved slot name and cannot be redefined"
+ $ comment  : logi TRUE
+ $ dim      : logi TRUE
+ $ tsp      : logi TRUE
+> stopifnot(is.character(R[["class"]]),
++           sapply(R[names(R) != "class"], isTRUE))
+> ## only "class" (and ".Data", ...) is reserved as slot name
+> 
+> ## implicit generics ..
+> setMethod("sample", "C2",
++           function(x, size, replace=FALSE, prob=NULL) {"sample.C2"})
+Creating a generic function for 'sample' from package 'base' in the global environment
+[1] "sample"
+> stopifnot(is(sample,"standardGeneric"),
++ 	  ## the signature must come from the implicit generic:
++ 	  identical(sample@signature, c("x", "size")),
++ 	  identical(packageSlot(sample), "base"),
++ 	  ## default method must still work:
++ 	  identical({set.seed(3); sample(3)}, 1:3))
+> ## failed in R 2.11.0
+> 
+> ## Still, signature is taken from "def"inition, if one is provided:
+> ## (For test, qqplot must be a "simple" function:)
+> stopifnot(is.function(qqplot) && identical(class(qqplot), "function"))
+> setGeneric("qqplot", function(x, y, ...) standardGeneric("qqplot"))
+Creating a new generic function for 'qqplot' in the global environment
+[1] "qqplot"
+> stopifnot(is(qqplot, "standardGeneric"),
++ 	  identical(qqplot@signature, c("x","y")))
+> ## failed for a day ~ 2005-05-26, for R-devel only
+> 
+> 
+> ##  'L$A@x <- ..'
+> setClass("foo", representation(x = "numeric"))
+> f <- new("foo", x = pi*1:2)
+> L <- list()
+> L$A <- f
+> L$A@x[] <- 7
+> if( identical(f, L$A) )
++     stop("Oops! f is identical to L$A, even though not touched!")
+> ## did not duplicate in 2.0.0 <= Rversion <= 2.11.1
+> 
+> 
+> ## prototypes for virtual classes:  NULL if legal, otherwise 1st member
+> ## OptionalPosixct above includes NULL
+> stopifnot(is.null(getClass("OptionalPOSIXct")@prototype))
+> ## "IntOrChar" had invalid NULL prototype < 2.15.0
+> setClassUnion("IntOrChar", c("integer", "character"))
+> stopifnot(is.integer(getClass("IntOrChar")@prototype))
+> ## produced an error < 2.15.0
+> stopifnot(identical(isGeneric("&&"), FALSE))
+> 
+> 
+> ## mapply() on S4 objects with a "non-primitive" length() method
+> setClass("A", representation(aa="integer"))
+> aa <- 11:16
+> a <- new("A", aa=aa)
+> setMethod(length, "A", function(x) length(x@aa))
+[1] "length"
+> setMethod(`[[`,   "A", function(x, i, j, ...) x@aa[[i]])
+[1] "[["
+> setMethod(`[`,    "A", function(x, i, j, ...) new("A", aa = x@aa[i]))
+[1] "["
+> setMethod("is.na","A", function(x) is.na(x@aa))
+[1] "is.na"
+> stopifnot(length(a) == 6, identical(a[[5]], aa[[5]]),
++           identical(a, rev(rev(a))), # using '['
++ 	  identical(mapply(`*`, aa, rep(1:3, 2)),
++ 		    mapply(`*`, a,  rep(1:3, 2))))
+> ## Up to R 2.15.2, internally 'a' is treated as if it was of length 1
+> ## because internal dispatch did not work for length().
+> 
+> setMethod("is.unsorted", "A", function(x, na.rm, strictly)
++     is.unsorted(x@aa, na.rm=na.rm, strictly=strictly))
+Creating a generic function for 'is.unsorted' from package 'base' in the global environment
+[1] "is.unsorted"
+> 
+> stopifnot(!is.unsorted(a), # 11:16 *is* sorted
++ 	  is.unsorted(rev(a)))
+> 
+> # getSrcref failed when rematchDefinition was used
+> text <- '
++ setClass("MyClass", representation(val = "numeric"))
++ setMethod("plot", signature(x = "MyClass"),
++     function(x, y, ...) {
++         # comment
++ 	NULL
++     })
++ setMethod("initialize", signature = "MyClass",
++     function(.Object, value) {
++ 	# comment
++ 	.Object@val <- value
++ 	return(.Object)
++     })
++ '
+> source(textConnection(text), keep.source = TRUE)
+> getSrcref(getMethod("plot", "MyClass"))
+function(x, y, ...) {
+        # comment
+	NULL
+    }
+> getSrcref(getMethod("initialize", "MyClass"))
+function(.Object, value) {
+	# comment
+	.Object@val <- value
+	return(.Object)
+    }
+> 
+> 
+> ## PR#15691
+> setGeneric("fun", function(x, ...) standardGeneric("fun"))
+[1] "fun"
+> setMethod("fun", "character", identity)
+[1] "fun"
+> setMethod("fun", "numeric", function(x) {
++   x <- as.character(x)
++   callGeneric()
++ })
+[1] "fun"
+> 
+> stopifnot(identical(fun(1), do.call(fun, list(1))))
+> ## failed in R < 3.1.0
+> 
+> 
+> ## PR#15680
+> setGeneric("f", function(x, y) standardGeneric("f"))
+[1] "f"
+> setMethod("f", c("numeric", "missing"), function(x, y) x)
+[1] "f"
+> try(?f(1))
+Error in .helpForCall(topicExpr, parent.frame()) : 
+  no documentation for function 'f' and signature 'x = "numeric", y = "missing"'
+> 
+> ## "..." is not handled
+> setGeneric("f", function(...) standardGeneric("f"))
+[1] "f"
+> setMethod("f", "numeric", function(...) c(...))
+[1] "f"
+> try(?f(1,2))
+Error in .helpForCall(topicExpr, parent.frame()) : 
+  no documentation for function 'f' and signature '... = "numeric"'
+> 
+> ## defaults in the generic formal arguments are not considered
+> setGeneric("f", function(x, y=0) standardGeneric("f"))
+[1] "f"
+> setMethod("f", c("numeric", "numeric"), function(x, y) x+y)
+[1] "f"
+> try(?f(1))
+Error in .helpForCall(topicExpr, parent.frame()) : 
+  no documentation for function 'f' and signature 'x = "numeric", y = "numeric"'
+> 
+> ## Objects with S3 classes fail earlier
+> setGeneric("f", function(x) standardGeneric("f"))
+[1] "f"
+> setMethod("f", "numeric", function(x) x)
+[1] "f"
+> setOldClass(c("foo", "numeric"))
+> n <- structure(1, class=c("foo", "numeric"))
+> try(?f(n))
+Error in .helpForCall(topicExpr, parent.frame()) : 
+  no documentation for function 'f' and signature 'x = "numeric"'
+> ## different failures in R < 3.1.0.
+> 
+> 
+> ## identical() did not look at S4 bit:
+> a <- 1:5
+> b <- setClass("B", "integer")(a)
+> stopifnot(is.character(all.equal(a, b)))
+> attributes(a) <- attributes(b)
+> if(!isS4(a)) { # still (unfortunately)
++     message("'a' is not S4 yet")
++     if(identical(a,b)) stop("identical() not looking at S4 bit")
++     ## set S4 bit manually:
++     a <- asS4(a)
++ }
+'a' is not S4 yet
+> stopifnot(identical(a, b), isS4(a))
+> ## failed in R <= 3.1.1
+> 
+> 
+> ### cbind(), rbind() now work both via rbind2(), cbind2() and rbind.
+> ##__ 1) __
+> setClass("A", representation(a = "matrix"))
+> setMethod("initialize", signature(.Object = "A"),
++     function(.Object, y) {
++       .Object@a <- y
++       .Object
++     })
+[1] "initialize"
+> setMethod("rbind2", signature(x = "A", y = "matrix"),
++     function(x, y, ...) {
++       cat("rbind2(<A>, <matrix>) : ")
++       x@a <- rbind(x@a, y)
++       cat(" x@a done\n")
++       x
++     })
+[1] "rbind2"
+> setMethod("dim", "A", function(x) dim(x@a))
+[1] "dim"
+> mat1 <- matrix(1:9, nrow = 3)
+> obj1 <- new("A", 10*mat1)
+> om1 <- rbind(obj1, mat1)## now does work {it does need a working "dim" method!}
+rbind2(<A>, <matrix>) :  x@a done
+> stopifnot(identical(om1, rbind2(obj1, mat1)))
+rbind2(<A>, <matrix>) :  x@a done
+> rm(obj1,om1); removeClass("A")
+[1] TRUE
+> ##
+> ##
+> ###__ 2) --- Matrix --- via cbind2(), rbind2()
+> ## this has its output checked strictly, so test depending on Matrix
+> ## has been moved to reg-tests-3.R
+> ##
+> ###__ 3) --- package 'its' like
+> setClass("its",representation("matrix", dates="POSIXt"))
+> m <- outer(1:3, setNames(1:5,LETTERS[1:5]))
+> im <- new("its", m, dates=as.POSIXct(Sys.Date()))
+> stopifnot(identical(m, im@.Data))
+> ii  <- rbind(im, im-1)
+> i.i <- cbind(im, im-7)
+> stopifnot(identical(m, rbind(im)),
++           identical(m, cbind(im)),
++           identical(ii , rbind(m, m-1)),
++           identical(i.i, cbind(m, m-7)))
+> rm(im, ii, i.i)
+> removeClass("its")
+[1] TRUE
+> ##
+> ##
+> ###__ 4) --- pkg 'mondate' like --
+> setClass("mondate",
++          slots = c(timeunits = "character"), contains = "numeric")
+> three <- 3
+> m1 <- new("mondate", 1:4, timeunits = "hrs")
+> m2 <- new("mondate", 7:8, timeunits = "min")
+> stopifnot(identical(colnames(cbind(m1+1, deparse.level=2)), "m1 + 1"),
++           is.null  (colnames(cbind(m1+1, deparse.level=0))),
++           is.null  (colnames(cbind(m1+1, deparse.level=1))),
++           identical(colnames(cbind(m1)), "m1"),
++           colnames(cbind(m1  , M2 = 2, deparse.level=0)) == c(""  , "M2"),
++           colnames(cbind(m1  , M2 = 2))                  == c("m1", "M2"),
++           colnames(cbind(m1  , M2 = 2, deparse.level=2)) == c("m1", "M2"),
++           colnames(cbind(m1+1, M2 = 2, deparse.level=2)) == c("m1 + 1", "M2"),
++           colnames(cbind(m1+1, M2 = 2, deparse.level=1)) == c("",       "M2"))
+> cbind(m1, three, m2)
+     m1 three m2
+[1,]  1     3  7
+[2,]  2     3  8
+[3,]  3     3  7
+[4,]  4     3  8
+> cbind(m1, three, m2,   deparse.level = 0) # none
+     [,1] [,2] [,3]
+[1,]    1    3    7
+[2,]    2    3    8
+[3,]    3    3    7
+[4,]    4    3    8
+> cbind(m1, three, m2+3, deparse.level = 1) # "m1" "three"
+     m1 three   
+[1,]  1     3 10
+[2,]  2     3 11
+[3,]  3     3 10
+[4,]  4     3 11
+> cbind(m1, three, m2+3, deparse.level = 2) -> m3
+> m3 #    ....  and "m2 + 3"
+     m1 three m2 + 3
+[1,]  1     3     10
+[2,]  2     3     11
+[3,]  3     3     10
+[4,]  4     3     11
+> stopifnot(identical(t(m3), rbind(m1, three, m2+3, deparse.level = 2)),
++           identical(cbind(m1, m2) -> m12,
++                     cbind(m1=m1@.Data, m2=m2@.Data)),
++           identical(rbind(m1, m2), t(m12)),
++           identical(cbind(m1, m2, T=T, deparse.level=0),
++                     cbind(m1@.Data, m2@.Data, T=T) -> mm),
++           identical(colnames(mm), c("", "", "T")),
++           identical(cbind(m1, m2, deparse.level=0),
++                     cbind(m1@.Data, m2@.Data)))
+> ##
+> ## Cleanup all class definitions etc -- seems necessary for the following "re"-definitions:
+> invisible(lapply(getClasses(globalenv()), removeClass))
+> nn <- names(globalenv())
+> rm(list = c("nn", nn))
+> 
+> ## Using "data.frame" in a slot -- all have worked for long:
+> setClass("A", representation(slot1="numeric", slot2="logical"))
+> setClass("D1", contains="A", representation(design="data.frame"))
+> setClass("D2", contains="D1")
+> validObject(a <- new("A", slot1=77, slot2=TRUE))
+[1] TRUE
+> validObject(D. <- new("D2", a, design = data.frame(x = 1)))
+[1] TRUE
+> ## using "formula" in a slot -- from Hervé Pages :
+> setClass("B", contains="A", representation(design="formula"))
+> setClass("C", contains="B")
+> ##
+> a <- new("A", slot1=77, slot2=TRUE)
+> validObject(C1 <- new("C", a, design = x ~ y))# failed for R <= 3.2.0
+[1] TRUE
+> C2 <- new("C", slot1=a@slot1, slot2=a@slot2, design=x ~ y)
+> stopifnot(identical(C1, C2),
++ 	  identical(formula(), formula(NULL)),
++ 	  length(N <- new("formula")) == 0, inherits(N, "formula"),
++ 	  length(N <- new("table")  ) == 0, is.table(N),
++ 	  validObject(N <- new("summary.table")),
++ 	  length(N <- new("ordered")) == 0, is.ordered(N))
+> ## formula() and new("formula"), new("..") also failed  in R <= 3.2.0
+> 
+> require("stats4")# -> "mle" class
+> validObject(sig <- new("signature", obj = "mle"))
+[1] TRUE
+> stopifnot(c("package", "names") %in% slotNames(sig))
+> str(sig) # failed, too
+Formal class 'signature' [package "methods"] with 3 slots
+  ..@ .Data  : chr "mle"
+  ..@ names  : chr "obj"
+  ..@ package: chr ""
+> 
+> cl4 <- getClasses("package:stats4")
+> stopifnot(identical(getClasses(which(search() == "package:stats4")), cl4),
++ 	  c("mle", "profile.mle", "summary.mle") %in% cl4)
+> ## failed after an optimization patch
+> 
+> detach("package:methods", force=TRUE)
+> C1@slot1 <- pi
+> stopifnot(identical(C1@slot1, pi))
+> stopifnot(require("methods"))
+Loading required package: methods
+> ## Slot assignment failed in R <= 3.2.2, C code calling checkAtAssignment()
+> 
+> ## Error in argument evaluation of S4 generic - PR#16111
+> f <- function() {
++     signal <- FALSE
++     withCallingHandlers({ g(sqrt(-1)) }, warning = function(w) {
++         signal <<- TRUE
++         invokeRestart("muffleWarning")
++     })
++     signal
++ }
+> g <- function(x) x
+> op <- options(warn = 2)# warnings give errors
+> stopifnot(isTRUE( f() ))
+> setGeneric("g")
+[1] "g"
+> stopifnot(isTRUE( f() ))
+> options(op)
+> ## the second  f()  gave a warning and FALSE in  R versions  2.12.0 <= . <= 3.2.3
+> 
+> 
+> stopifnot(
++     identical(formals(getGeneric("as.vector")), formals(base::as.vector)),
++     identical(formals(getGeneric("unlist")),    formals(base::unlist)))
+> ## failed for a while in R-devel (3.3.0)
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/complex.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/complex.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/complex.Rout.save	(revision 2476)
@@ -0,0 +1,294 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ### Tests of complex arithemetic.
+> 
+> Meps <- .Machine$double.eps
+> ## complex
+> z <- 0i ^ (-3:3)
+> stopifnot(Re(z) == 0 ^ (-3:3))
+> 
+> 
+> ## powers, including complex ones
+> a <- -4:12
+> m <- outer(a +0i, b <- seq(-.5,2, by=.5), "^")
+> dimnames(m) <- list(paste(a), "^" = sapply(b,format))
+> round(m,3)
+    ^
+             -0.5    0          0.5     1           1.5      2
+  -4 0.000-0.500i 1+0i 0.000+2.000i -4+0i  0.000-8.000i  16+0i
+  -3 0.000-0.577i 1+0i 0.000+1.732i -3+0i  0.000-5.196i   9+0i
+  -2 0.000-0.707i 1+0i 0.000+1.414i -2+0i  0.000-2.828i   4+0i
+  -1 0.000-1.000i 1+0i 0.000+1.000i -1+0i  0.000-1.000i   1+0i
+  0    Inf+0.000i 1+0i 0.000+0.000i  0+0i  0.000+0.000i   0+0i
+  1  1.000+0.000i 1+0i 1.000+0.000i  1+0i  1.000+0.000i   1+0i
+  2  0.707+0.000i 1+0i 1.414+0.000i  2+0i  2.828+0.000i   4+0i
+  3  0.577+0.000i 1+0i 1.732+0.000i  3+0i  5.196+0.000i   9+0i
+  4  0.500+0.000i 1+0i 2.000+0.000i  4+0i  8.000+0.000i  16+0i
+  5  0.447+0.000i 1+0i 2.236+0.000i  5+0i 11.180+0.000i  25+0i
+  6  0.408+0.000i 1+0i 2.449+0.000i  6+0i 14.697+0.000i  36+0i
+  7  0.378+0.000i 1+0i 2.646+0.000i  7+0i 18.520+0.000i  49+0i
+  8  0.354+0.000i 1+0i 2.828+0.000i  8+0i 22.627+0.000i  64+0i
+  9  0.333+0.000i 1+0i 3.000+0.000i  9+0i 27.000+0.000i  81+0i
+  10 0.316+0.000i 1+0i 3.162+0.000i 10+0i 31.623+0.000i 100+0i
+  11 0.302+0.000i 1+0i 3.317+0.000i 11+0i 36.483+0.000i 121+0i
+  12 0.289+0.000i 1+0i 3.464+0.000i 12+0i 41.569+0.000i 144+0i
+> stopifnot(m[,as.character(0:2)] == cbind(1,a,a*a),
++                                         # latter were only approximate
++           all.equal(unname(m[,"0.5"]),
++                     sqrt(abs(a))*ifelse(a < 0, 1i, 1),
++                     tolerance = 20*Meps))
+> 
+> ## 2.10.0-2.12.1 got z^n wrong in the !HAVE_C99_COMPLEX case
+> z <- 0.2853725+0.3927816i
+> z2 <- z^(1:20)
+> z3 <- z^-(1:20)
+> z0 <- cumprod(rep(z, 20))
+> stopifnot(all.equal(z2, z0), all.equal(z3, 1/z0))
+> ## was z^3 had value z^2 ....
+> 
+> ## fft():
+> for(n in 1:30) cat("\nn=",n,":", round(fft(1:n), 8),"\n")
+
+n= 1 : 1+0i 
+
+n= 2 : 3+0i -1+0i 
+
+n= 3 : 6+0i -1.5+0.866025i -1.5-0.866025i 
+
+n= 4 : 10+0i -2+2i -2+0i -2-2i 
+
+n= 5 : 15+0i -2.5+3.440955i -2.5+0.812299i -2.5-0.812299i -2.5-3.440955i 
+
+n= 6 : 21+0i -3+5.196152i -3+1.732051i -3+0i -3-1.732051i -3-5.196152i 
+
+n= 7 : 28+0i -3.5+7.267825i -3.5+2.791157i -3.5+0.798852i -3.5-0.798852i -3.5-2.791157i -3.5-7.267825i 
+
+n= 8 : 36+0i -4+9.656854i -4+4i -4+1.656854i -4+0i -4-1.656854i -4-4i -4-9.656854i 
+
+n= 9 : 45+0i -4.5+12.36365i -4.5+5.362891i -4.5+2.598076i -4.5+0.793471i -4.5-0.793471i -4.5-2.598076i -4.5-5.362891i -4.5-12.36365i 
+
+n= 10 : 55+0i -5+15.38842i -5+6.88191i -5+3.632713i -5+1.624598i -5+0i -5-1.624598i -5-3.632713i -5-6.88191i -5-15.38842i 
+
+n= 11 : 66+0i -5.5+18.73128i -5.5+8.558167i -5.5+4.765777i -5.5+2.511766i -5.5+0.790781i -5.5-0.790781i -5.5-2.511766i -5.5-4.765777i -5.5-8.558167i -5.5-18.73128i 
+
+n= 12 : 78+0i -6+22.3923i -6+10.3923i -6+6i -6+3.464102i -6+1.607695i -6+0i -6-1.607695i -6-3.464102i -6-6i -6-10.3923i -6-22.3923i 
+
+n= 13 : 91+0i -6.5+26.37154i -6.5+12.38472i -6.5+7.336983i -6.5+4.486626i -6.5+2.465125i -6.5+0.789243i -6.5-0.789243i -6.5-2.465125i -6.5-4.486626i -6.5-7.336983i -6.5-12.38472i -6.5-26.37154i 
+
+n= 14 : 105+0i -7+30.669i -7+14.53565i -7+8.777722i -7+5.582314i -7+3.371022i -7+1.597704i -7+0i -7-1.597704i -7-3.371022i -7-5.582314i -7-8.777722i -7-14.53565i -7-30.669i 
+
+n= 15 : 120+0i -7.5+35.28473i -7.5+16.84528i -7.5+10.32286i -7.5+6.75303i -7.5+4.330127i -7.5+2.436898i -7.5+0.788282i -7.5-0.788282i -7.5-2.436898i -7.5-4.330127i -7.5-6.75303i -7.5-10.32286i -7.5-16.84528i -7.5-35.28473i 
+
+n= 16 : 136+0i -8+40.21872i -8+19.31371i -8+11.97285i -8+8i -8+5.345429i -8+3.313709i -8+1.591299i -8+0i -8-1.591299i -8-3.313709i -8-5.345429i -8-8i -8-11.97285i -8-19.31371i -8-40.21872i 
+
+n= 17 : 153+0i -8.5+45.47098i -8.5+21.94103i -8.5+13.72797i -8.5+9.324056i -8.5+6.418902i -8.5+4.232497i -8.5+2.418459i -8.5+0.787641i -8.5-0.787641i -8.5-2.418459i -8.5-4.232497i -8.5-6.418902i -8.5-9.324056i -8.5-13.72797i -8.5-21.94103i -8.5-45.47098i 
+
+n= 18 : 171+0i -9+51.04154i -9+24.7273i -9+15.58846i -9+10.72578i -9+7.551897i -9+5.196152i -9+3.275732i -9+1.586943i -9+0i -9-1.586943i -9-3.275732i -9-5.196152i -9-7.551897i -9-10.72578i -9-15.58846i -9-24.7273i -9-51.04154i 
+
+n= 19 : 190+0i -9.5+56.93038i -9.5+27.67255i -9.5+17.55446i -9.5+12.2056i -9.5+8.745366i -9.5+6.20666i -9.5+4.167086i -9.5+2.405727i -9.5+0.787192i -9.5-0.787192i -9.5-2.405727i -9.5-4.167086i -9.5-6.20666i -9.5-8.745366i -9.5-12.2056i -9.5-17.55446i -9.5-27.67255i -9.5-56.93038i 
+
+n= 20 : 210+0i -10+63.13752i -10+30.77684i -10+19.62611i -10+13.76382i -10+10i -10+7.26543i -10+5.09525i -10+3.2492i -10+1.58384i -10+0i -10-1.58384i -10-3.2492i -10-5.09525i -10-7.26543i -10-10i -10-13.76382i -10-19.62611i -10-30.77684i -10-63.13752i 
+
+n= 21 : 231+0i -10.5+69.66295i -10.5+34.04016i -10.5+21.80347i -10.5+15.40067i -10.5+11.31631i -10.5+8.37347i -10.5+6.06218i -10.5+4.12095i -10.5+2.39656i -10.5+0.78687i -10.5-0.78687i -10.5-2.39656i -10.5-4.12095i -10.5-6.06218i -10.5-8.37347i -10.5-11.31631i -10.5-15.40067i -10.5-21.80347i -10.5-34.04016i -10.5-69.66295i 
+
+n= 22 : 253+0i -11+76.50668i -11+37.46256i -11+24.08664i -11+17.11633i -11+12.69468i -11+9.53155i -11+7.06927i -11+5.02353i -11+3.22989i -11+1.58156i -11+0i -11-1.58156i -11-3.22989i -11-5.02353i -11-7.06927i -11-9.53155i -11-12.69468i -11-17.11633i -11-24.08664i -11-37.46256i -11-76.50668i 
+
+n= 23 : 276+0i -11.5+83.66871i -11.5+41.04404i -11.5+26.47566i -11.5+18.91094i -11.5+14.1354i -11.5+10.74025i -11.5+8.11759i -11.5+5.95882i -11.5+4.0871i -11.5+2.38973i -11.5+0.78662i -11.5-0.78662i -11.5-2.38973i -11.5-4.0871i -11.5-5.95882i -11.5-8.11759i -11.5-10.74025i -11.5-14.1354i -11.5-18.91094i -11.5-26.47566i -11.5-41.04404i -11.5-83.66871i 
+
+n= 24 : 300+0i -12+91.14905i -12+44.78461i -12+28.97056i -12+20.78461i -12+15.6387i -12+12i -12+9.20792i -12+6.9282i -12+4.97056i -12+3.21539i -12+1.57983i -12+0i -12-1.57983i -12-3.21539i -12-4.97056i -12-6.9282i -12-9.20792i -12-12i -12-15.6387i -12-20.78461i -12-28.97056i -12-44.78461i -12-91.14905i 
+
+n= 25 : 325+0i -12.5+98.94769i -12.5+48.68429i -12.5+31.5714i -12.5+22.73742i -12.5+17.20477i -12.5+13.31115i -12.5+10.3409i -12.5+7.93274i -12.5+5.88205i -12.5+4.0615i -12.5+2.3845i -12.5+0.78643i -12.5-0.78643i -12.5-2.3845i -12.5-4.0615i -12.5-5.88205i -12.5-7.93274i -12.5-10.3409i -12.5-13.31115i -12.5-17.20477i -12.5-22.73742i -12.5-31.5714i -12.5-48.68429i -12.5-98.94769i 
+
+n= 26 : 351+0i -13+107.0646i -13+52.74307i -13+34.27818i -13+24.76943i -13+18.83375i -13+14.67397i -13+11.517i -13+8.97325i -13+6.82293i -13+4.93025i -13+3.20421i -13+1.57849i -13+0i -13-1.57849i -13-3.20421i -13-4.93025i -13-6.82293i -13-8.97325i -13-11.517i -13-14.67397i -13-18.83375i -13-24.76943i -13-34.27818i -13-52.74307i -13-107.0646i 
+
+n= 27 : 378+0i -13.5+115.4999i -13.5+56.96098i -13.5+37.09095i -13.5+26.88071i -13.5+20.52575i -13.5+16.08867i -13.5+12.73659i -13.5+10.05038i -13.5+7.79423i -13.5+5.82333i -13.5+4.04163i -13.5+2.38041i -13.5+0.78629i -13.5-0.78629i -13.5-2.38041i -13.5-4.04163i -13.5-5.82333i -13.5-7.79423i -13.5-10.05038i -13.5-12.73659i -13.5-16.08867i -13.5-20.52575i -13.5-26.88071i -13.5-37.09095i -13.5-56.96098i -13.5-115.4999i 
+
+n= 28 : 406+0i -14+124.2534i -14+61.33801i -14+40.0097i -14+29.0713i -14+22.28087i -14+17.55544i -14+14i -14+11.16463i -14+8.79678i -14+6.74204i -14+4.89881i -14+3.19541i -14+1.57742i -14+0i -14-1.57742i -14-3.19541i -14-4.89881i -14-6.74204i -14-8.79678i -14-11.16463i -14-14i -14-17.55544i -14-22.28087i -14-29.0713i -14-40.0097i -14-61.33801i -14-124.2534i 
+
+n= 29 : 435+0i -14.5+133.3253i -14.5+65.87416i -14.5+43.03447i -14.5+31.34124i -14.5+24.09919i -14.5+19.07442i -14.5+15.30746i -14.5+12.31641i -14.5+9.83124i -14.5+7.68741i -14.5+5.77733i -14.5+4.02591i -14.5+2.37715i -14.5+0.78617i -14.5-0.78617i -14.5-2.37715i -14.5-4.02591i -14.5-5.77733i -14.5-7.68741i -14.5-9.83124i -14.5-12.31641i -14.5-15.30746i -14.5-19.07442i -14.5-24.09919i -14.5-31.34124i -14.5-43.03447i -14.5-65.87416i -14.5-133.3253i 
+
+n= 30 : 465+0i -15+142.7155i -15+70.56945i -15+46.16525i -15+33.69055i -15+25.98076i -15+20.64573i -15+16.65919i -15+13.50606i -15+10.89814i -15+8.66025i -15+6.67843i -15+4.8738i -15+3.18835i -15+1.57656i -15+0i -15-1.57656i -15-3.18835i -15-4.8738i -15-6.67843i -15-8.66025i -15-10.89814i -15-13.50606i -15-16.65919i -15-20.64573i -15-25.98076i -15-33.69055i -15-46.16525i -15-70.56945i -15-142.7155i 
+> 
+> 
+> ## polyroot():
+> stopifnot(abs(1 + polyroot(choose(8, 0:8))) < 1e-10)# maybe smaller..
+> 
+> ## precision of complex numbers
+> signif(1.678932e80+0i, 5)
+[1] 1.6789e+80+0i
+> signif(1.678932e-300+0i, 5)
+[1] 1.6789e-300+0i
+> signif(1.678932e-302+0i, 5)
+[1] 1.6789e-302+0i
+> signif(1.678932e-303+0i, 5)
+[1] 1.6789e-303+0i
+> signif(1.678932e-304+0i, 5)
+[1] 1.6789e-304+0i
+> signif(1.678932e-305+0i, 5)
+[1] 1.6789e-305+0i
+> signif(1.678932e-306+0i, 5)
+[1] 1.6789e-306+0i
+> signif(1.678932e-307+0i, 5)
+[1] 1.6789e-307+0i
+> signif(1.678932e-308+0i, 5)
+[1] 1.6789e-308+0i
+> signif(1.678932-1.238276i, 5)
+[1] 1.6789-1.2383i
+> signif(1.678932-1.238276e-1i, 5)
+[1] 1.6789-0.1238i
+> signif(1.678932-1.238276e-2i, 5)
+[1] 1.6789-0.0124i
+> signif(1.678932-1.238276e-3i, 5)
+[1] 1.6789-0.0012i
+> signif(1.678932-1.238276e-4i, 5)
+[1] 1.6789-0.0001i
+> signif(1.678932-1.238276e-5i, 5)
+[1] 1.6789+0i
+> signif(8.678932-9.238276i, 5)
+[1] 8.6789-9.2383i
+> ## prior to 2.2.0 rounded real and imaginary parts separately.
+> 
+> 
+> ## Complex Trig.:
+> abs(Im(cos(acos(1i))) -	 1) < 2*Meps
+[1] TRUE
+> abs(Im(sin(asin(1i))) -	 1) < 2*Meps
+[1] TRUE
+> ##P (1 - Im(sin(asin(Ii))))/Meps
+> ##P (1 - Im(cos(acos(Ii))))/Meps
+> abs(Im(asin(sin(1i))) -	 1) < 2*Meps
+[1] TRUE
+> all.equal(cos(1i), cos(-1i)) # i.e. Im(acos(*)) gives + or - 1i:
+[1] TRUE
+> abs(abs(Im(acos(cos(1i)))) - 1) < 4*Meps
+[1] TRUE
+> 
+> 
+> set.seed(123) # want reproducible output
+> Isi <- Im(sin(asin(1i + rnorm(100))))
+> all(abs(Isi-1) < 100* Meps)
+[1] TRUE
+> ##P table(2*abs(Isi-1)	/ Meps)
+> Isi <- Im(cos(acos(1i + rnorm(100))))
+> all(abs(Isi-1) < 100* Meps)
+[1] TRUE
+> ##P table(2*abs(Isi-1)	/ Meps)
+> Isi <- Im(atan(tan(1i + rnorm(100)))) #-- tan(atan(..)) does NOT work (Math!)
+> all(abs(Isi-1) < 100* Meps)
+[1] TRUE
+> ##P table(2*abs(Isi-1)	/ Meps)
+> 
+> set.seed(123)
+> z <- complex(real = rnorm(100), imag = rnorm(100))
+> stopifnot(Mod ( 1 -  sin(z) / ( (exp(1i*z)-exp(-1i*z))/(2*1i) )) < 20 * Meps)
+> ## end of moved from complex.Rd
+> 
+> 
+> ## PR#7781
+> ## This is not as given by e.g. glibc on AMD64
+> (z <- tan(1+1000i)) # 0+1i from R's own code.
+[1] 0+1i
+> stopifnot(is.finite(z))
+> ##
+> 
+> 
+> ## Branch cuts in complex inverse trig functions
+> atan(2)
+[1] 1.107149
+> atan(2+0i)
+[1] 1.107149+0i
+> tan(atan(2+0i))
+[1] 2+0i
+> ## should not expect exactly 0i in result
+> round(atan(1.0001+0i), 7)
+[1] 0.7854482+0i
+> round(atan(0.9999+0i), 7)
+[1] 0.7853482+0i
+> ## previously not as in Abramowitz & Stegun.
+> 
+> 
+> ## typo in z_atan2.
+> (z <- atan2(0+1i, 0+0i))
+[1] 1.570796+0i
+> stopifnot(all.equal(z, pi/2+0i))
+> ## was NA in 2.1.1
+> 
+> 
+> ## Hyperbolic
+> x <- seq(-3, 3, len=200)
+> Meps <- .Machine$double.eps
+> stopifnot(
++  Mod(cosh(x) - cos(1i*x))	< 20*Meps,
++  Mod(sinh(x) - sin(1i*x)/1i)	< 20*Meps
++ )
+> ## end of moved from Hyperbolic.Rd
+> 
+> ## values near and on branch cuts
+> options(digits=5)
+> z <- c(2+0i, 2-0.0001i, -2+0i, -2+0.0001i)
+> asin(z)
+[1]  1.5708-1.317i  1.5707-1.317i -1.5708+1.317i -1.5707+1.317i
+> acos(z)
+[1] 0.0000+1.317i 0.0001+1.317i 3.1416-1.317i 3.1415-1.317i
+> atanh(z)
+[1]  0.5493-1.5708i  0.5493-1.5708i -0.5493+1.5708i -0.5493+1.5708i
+> z <- c(0+2i, 0.0001+2i, 0-2i, -0.0001i-2i)
+> asinh(z)
+[1]  1.317+1.5708i  1.317+1.5707i -1.317-1.5708i -1.317-1.5708i
+> acosh(z)
+[1]  1.4436+1.5708i  1.4436+1.5708i -1.4436+1.5708i -1.4437+1.5708i
+> atan(z)
+[1]  1.5708+0.5493i  1.5708+0.5493i -1.5708-0.5493i -1.5708-0.5493i
+> ## According to C99, should have continuity from the side given if there
+> ## are not signed zeros.
+> ## Both glibc 2.12 and macOS 10.6 used continuity from above in the first set
+> ## but they seem to assume signed zeros.
+> ## Windows gave incorrect (NaN) values on the cuts.
+> 
+> ## Not a regression test, but rather one of the good cases:
+> (cNaN <- as.complex("NaN"))
+[1] NaN+0i
+> stopifnot(identical(cNaN, complex(re = NaN)), is.nan(Re(cNaN)), Im(cNaN) == 0)
+> dput(cNaN) ## (real = NaN, imaginary = 0)
+complex(real=NaN, imaginary=0)
+> ## Partly new behavior:
+> (c0NaN  <- complex(real=0, im=NaN))
+[1] 0+NaNi
+> (cNaNaN <- complex(re=NaN, im=NaN))
+[1] NaN+NaNi
+> stopifnot(identical(cNaN, as.complex(NaN)),
++           identical(vapply(c(cNaN, c0NaN, cNaNaN), format, ""),
++                     c("NaN+0i", "0+NaNi", "NaN+NaNi")),
++           identical(cNaN, NaN + 0i),
++           identical(cNaN, Conj(cNaN)),
++           identical(cNaN, cNaN+cNaN),
++ 
++           identical(cNaNaN, 1i * NaN),
++           identical(cNaNaN, complex(modulus= NaN)),
++           identical(cNaNaN, complex(argument= NaN)),
++           identical(cNaNaN, complex(arg=NaN, mod=NaN)),
++ 
++           identical(c0NaN, c0NaN+c0NaN), # !
++           ## Platform dependent, not TRUE e.g. on F21 gcc 4.9.2:
++           ## identical(NA_complex_, NaN + NA_complex_ ) ,
++           ## Probably TRUE, but by a standard ??
++           ## identical(cNaNaN, 2 * c0NaN), # C-library arithmetic
++           ## identical(cNaNaN, 2 * cNaN),  # C-library arithmetic
++           ## identical(cNaNaN, NA_complex_ * Inf),
++           TRUE)
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/libcurl.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/libcurl.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/libcurl.R	(revision 2476)
@@ -0,0 +1,109 @@
+## These are tests that require libcurl functionality and a working
+## Internet connection.
+
+if(!capabilities()["libcurl"]) {
+    warning("no libcurl support")
+    q()
+}
+
+## fails some of the time
+#if(.Platform$OS.type == "windows") q()
+
+if(.Platform$OS.type == "unix" &&
+   is.null(nsl("cran.r-project.org"))) q()
+
+example(curlGetHeaders, run.donttest = TRUE)
+
+tf <- tempfile()
+download.file("http://cran.r-project.org/", tf,  method = "libcurl")
+file.size(tf)
+unlink(tf)
+
+tf <- tempfile()
+download.file("ftp://ftp.stats.ox.ac.uk/pub/datasets/csb/ch11b.dat",
+              tf,  method = "libcurl")
+file.size(tf) # 2102
+unlink(tf)
+
+
+## test url connections on http
+str(readLines(zz <- url("http://cran.r-project.org/", method = "libcurl")))
+zz
+stopifnot(identical(summary(zz)$class, "url-libcurl"))
+close(zz)
+
+## https URL
+head(readLines(zz <- url("https://httpbin.org", method = "libcurl"),
+               warn = FALSE))
+close(zz)
+
+## redirection (to a https:// URL)
+head(readLines(zz <- url("http://bugs.r-project.org", method = "libcurl"),
+               warn = FALSE))
+close(zz)
+
+
+## check graceful failure: warnings leading to error
+## testUnknownUrlError <- tryCatch(suppressWarnings({
+##     zz <- url("http://foo.bar", "r", method = "libcurl")
+## }), error=function(e) {
+##     conditionMessage(e) == "cannot open connection"
+## })
+## close(zz)
+## stopifnot(testUnknownUrlError)
+
+## tf <- tempfile()
+## testDownloadFileError <- tryCatch(suppressWarnings({
+##     download.file("http://foo.bar", tf, method="libcurl")
+## }), error=function(e) {
+##     conditionMessage(e) == "cannot download all files"
+## })
+## stopifnot(testDownloadFileError, !file.exists(tf))
+
+tf <- tempfile()
+testDownloadFile404 <- tryCatch(suppressWarnings({
+    download.file("http://httpbin.org/status/404", tf, method="libcurl")
+}), error=function(e) {
+    conditionMessage(e) == "cannot download all files"
+})
+stopifnot(testDownloadFile404, !file.exists(tf))
+
+## check specific warnings
+## testUnknownUrl <- tryCatch({
+##     zz <- url("http://foo.bar", "r", method = "libcurl")
+## }, warning=function(e) {
+##     grepl("Couldn't resolve host name", conditionMessage(e))
+## })
+## close(zz)
+## stopifnot(testUnknownUrl)
+
+test404.1 <- tryCatch({
+    open(zz <- url("http://httpbin.org/status/404", method="libcurl"))
+}, warning=function(w) {
+    grepl("404 Not Found", conditionMessage(w))
+})
+close(zz)
+stopifnot(test404.1)
+
+##  via read.table (which closes the connection)
+tail(read.table(url("http://www.stats.ox.ac.uk/pub/datasets/csb/ch11b.dat",
+                    method = "libcurl")))
+tail(read.table(url("ftp://ftp.stats.ox.ac.uk/pub/datasets/csb/ch11b.dat",
+                    method = "libcurl")))
+
+## check option works
+options(url.method = "libcurl")
+zz <- url("http://www.stats.ox.ac.uk/pub/datasets/csb/ch11b.dat")
+stopifnot(identical(summary(zz)$class, "url-libcurl"))
+close(zz)
+head(readLines("https://httpbin.org", warn = FALSE))
+
+test404.2 <- tryCatch({
+    open(zz <- url("http://httpbin.org/status/404"))
+}, warning=function(w) {
+    grepl("404 Not Found", conditionMessage(w))
+})
+close(zz)
+stopifnot(test404.2)
+
+showConnections(all = TRUE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datetime.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datetime.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datetime.R	(revision 2476)
@@ -0,0 +1,37 @@
+#### Test 64-bit date-time functions.
+
+## R's internal fixes are used on 32-bit platforms.
+## macOS gets these wrong: see HAVE_WORKING_64BIT_MKTIME
+
+Sys.setenv(TZ = "UTC")
+(z <- as.POSIXct("1848-01-01 12:00"))
+c(unclass(z))
+(z <- as.POSIXct("2040-01-01 12:00"))
+c(unclass(z))
+(z <- as.POSIXct("2040-07-01 12:00"))
+c(unclass(z))
+
+Sys.setenv(TZ = "Europe/London")  # pretty much portable.
+(z <- as.POSIXct("1848-01-01 12:00"))
+c(unclass(z))
+(z <- as.POSIXct("2040-01-01 12:00"))
+c(unclass(z))
+(z <- as.POSIXct("2040-07-01 12:00"))
+c(unclass(z))
+
+Sys.setenv(TZ = "EST5EDT")
+(z <- as.POSIXct("1848-01-01 12:00"))
+c(unclass(z))
+(z <- as.POSIXct("2040-01-01 12:00"))
+c(unclass(z))
+(z <- as.POSIXct("2040-07-01 12:00"))
+c(unclass(z))
+
+## PR15613: had day as > 24hrs.
+as.POSIXlt(ISOdate(2071,1,13,0,0,tz="Etc/GMT-1"))$wday
+as.POSIXlt(ISOdate(2071,1,13,0,1,tz="Etc/GMT-1"))$wday
+
+
+## Incorrect use of %d should work even though abbreviation does match
+old <- Sys.setlocale("LC_TIME", "C") # to be sure
+stopifnot(!is.na(strptime("11-August-1903", "%d-%b-%Y")))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/lm-tests.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/lm-tests.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/lm-tests.Rout.save	(revision 2476)
@@ -0,0 +1,330 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ###-- Linear Models, basic functionality -- weights included.
+> 
+> ## From John Maindonald :
+> roller <- data.frame(
++  weight     = c(1.9,  3.1,  3.3,  4.8,  5.3,  6.1,  6.4,  7.6,  9.8, 12.4),
++  depression = c(  2,  1,    5,    5,   20,   20,   23,   10,   30,   25))
+> 
+> roller.lmu  <-  lm(weight~depression, data=roller)
+> roller.lsfu <- lsfit(roller$depression, roller$weight)
+> 
+> roller.lsf  <- lsfit(roller$depression, roller$weight, wt = 1:10)
+> roller.lsf0 <- lsfit(roller$depression, roller$weight, wt = 0:9)
+> roller.lm  <-  lm(weight~depression, data=roller, weights= 1:10)
+> roller.lm0 <-  lm(weight~depression, data=roller, weights= 0:9)
+> roller.lm9 <-  lm(weight~depression, data=roller[-1,],weights= 1:9)
+> roller.glm <- glm(weight~depression, data=roller, weights= 1:10)
+> roller.glm0<- glm(weight~depression, data=roller, weights= 0:9)
+> 
+> predict(roller.glm0, type="terms")# failed till 2003-03-31
+   depression
+1  -2.6692211
+2  -2.8898179
+3  -2.0074308
+4  -2.0074308
+5   1.3015211
+6   1.3015211
+7   1.9633114
+8  -0.9044468
+9   3.5074889
+10  2.4045050
+attr(,"constant")
+[1] 6.743646
+> 
+> ## FIXME : glm()$residual [1] is NA,  lm()'s is ok.
+> ## all.equal(residuals(roller.glm0, type = "partial"),
+> ##          residuals(roller.lm0,  type = "partial") )
+> 
+> 
+> all.equal(deviance(roller.lm),
++           deviance(roller.glm))
+[1] TRUE
+> all.equal(weighted.residuals(roller.lm),
++           residuals         (roller.glm))
+[1] TRUE
+> 
+> all.equal(deviance(roller.lm0),
++           deviance(roller.glm0))
+[1] TRUE
+> all.equal(weighted.residuals(roller.lm0, drop=FALSE),
++           residuals         (roller.glm0))
+[1] TRUE
+> 
+> (im.lm0 <- influence.measures(roller.lm0))
+Influence measures of
+	 lm(formula = weight ~ depression, data = roller, weights = 0:9) :
+
+    dfb.1_ dfb.dprs   dffit cov.r  cook.d    hat inf
+2  -0.0530   0.0482 -0.0530 1.551 0.00164 0.1277    
+3  -0.1769   0.1538 -0.1782 1.569 0.01806 0.1742    
+4   0.0130  -0.0113  0.0131 1.842 0.00010 0.2613    
+5  -0.1174  -0.0185 -0.3370 1.049 0.05552 0.0892    
+6  -0.1031  -0.0162 -0.2960 1.229 0.04577 0.1114    
+7  -0.0118  -0.1891 -0.5010 1.070 0.11932 0.1555    
+8   0.7572  -0.5948  0.7972 1.467 0.30998 0.3510    
+9   0.1225  -0.2067 -0.2664 2.391 0.04079 0.4470   *
+10 -0.3348   1.1321  2.0937 0.233 0.89584 0.2826   *
+> 
+> all.equal(unname(im.lm0 $ infmat),
++           unname(cbind(  dfbetas      (roller.lm0)
++                        , dffits       (roller.lm0)
++                        , covratio     (roller.lm0)
++                        ,cooks.distance(roller.lm0)
++                        ,lm.influence  (roller.lm0)$hat)
++                  ))
+[1] TRUE
+> 
+> all.equal(rstandard(roller.lm9),
++           rstandard(roller.lm0),tolerance = 1e-14)
+[1] TRUE
+> all.equal(rstudent(roller.lm9),
++           rstudent(roller.lm0),tolerance = 1e-14)
+[1] TRUE
+> all.equal(rstudent(roller.lm),
++           rstudent(roller.glm))
+[1] TRUE
+> all.equal(cooks.distance(roller.lm),
++           cooks.distance(roller.glm))
+[1] TRUE
+> 
+> 
+> all.equal(summary(roller.lm0)$coefficients,
++           summary(roller.lm9)$coefficients, tolerance = 1e-14)
+[1] TRUE
+> all.equal(print(anova(roller.lm0), signif.st=FALSE),
++                 anova(roller.lm9), tolerance = 1e-14)
+Analysis of Variance Table
+
+Response: weight
+           Df Sum Sq Mean Sq F value  Pr(>F)
+depression  1 158.41 158.408  5.4302 0.05259
+Residuals   7 204.20  29.172                
+[1] TRUE
+> 
+> 
+> ###  more regression tests for lm(), glm(), etc :
+> 
+> ## moved from ?influence.measures:
+> lm.SR <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)
+> (IM <- influence.measures(lm.SR))
+Influence measures of
+	 lm(formula = sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings) :
+
+                 dfb.1_ dfb.pp15 dfb.pp75  dfb.dpi  dfb.ddpi   dffit cov.r
+Australia       0.01232 -0.01044 -0.02653  0.04534 -0.000159  0.0627 1.193
+Austria        -0.01005  0.00594  0.04084 -0.03672 -0.008182  0.0632 1.268
+Belgium        -0.06416  0.05150  0.12070 -0.03472 -0.007265  0.1878 1.176
+Bolivia         0.00578 -0.01270 -0.02253  0.03185  0.040642 -0.0597 1.224
+Brazil          0.08973 -0.06163 -0.17907  0.11997  0.068457  0.2646 1.082
+Canada          0.00541 -0.00675  0.01021 -0.03531 -0.002649 -0.0390 1.328
+Chile          -0.19941  0.13265  0.21979 -0.01998  0.120007 -0.4554 0.655
+China           0.02112 -0.00573 -0.08311  0.05180  0.110627  0.2008 1.150
+Colombia        0.03910 -0.05226 -0.02464  0.00168  0.009084 -0.0960 1.167
+Costa Rica     -0.23367  0.28428  0.14243  0.05638 -0.032824  0.4049 0.968
+Denmark        -0.04051  0.02093  0.04653  0.15220  0.048854  0.3845 0.934
+Ecuador         0.07176 -0.09524 -0.06067  0.01950  0.047786 -0.1695 1.139
+Finland        -0.11350  0.11133  0.11695 -0.04364 -0.017132 -0.1464 1.203
+France         -0.16600  0.14705  0.21900 -0.02942  0.023952  0.2765 1.226
+Germany        -0.00802  0.00822  0.00835 -0.00697 -0.000293 -0.0152 1.226
+Greece         -0.14820  0.16394  0.02861  0.15713 -0.059599 -0.2811 1.140
+Guatamala       0.01552 -0.05485  0.00614  0.00585  0.097217 -0.2305 1.085
+Honduras       -0.00226  0.00984 -0.01020  0.00812 -0.001887  0.0482 1.186
+Iceland         0.24789 -0.27355 -0.23265 -0.12555  0.184698 -0.4768 0.866
+India           0.02105 -0.01577 -0.01439 -0.01374 -0.018958  0.0381 1.202
+Ireland        -0.31001  0.29624  0.48156 -0.25733 -0.093317  0.5216 1.268
+Italy           0.06619 -0.07097  0.00307 -0.06999 -0.028648  0.1388 1.162
+Japan           0.63987 -0.65614 -0.67390  0.14610  0.388603  0.8597 1.085
+Korea          -0.16897  0.13509  0.21895  0.00511 -0.169492 -0.4303 0.870
+Luxembourg     -0.06827  0.06888  0.04380 -0.02797  0.049134 -0.1401 1.196
+Malta           0.03652 -0.04876  0.00791 -0.08659  0.153014  0.2386 1.128
+Norway          0.00222 -0.00035 -0.00611 -0.01594 -0.001462 -0.0522 1.168
+Netherlands     0.01395 -0.01674 -0.01186  0.00433  0.022591  0.0366 1.229
+New Zealand    -0.06002  0.06510  0.09412 -0.02638 -0.064740  0.1469 1.134
+Nicaragua      -0.01209  0.01790  0.00972 -0.00474 -0.010467  0.0397 1.174
+Panama          0.02828 -0.05334  0.01446 -0.03467 -0.007889 -0.1775 1.067
+Paraguay       -0.23227  0.16416  0.15826  0.14361  0.270478 -0.4655 0.873
+Peru           -0.07182  0.14669  0.09148 -0.08585 -0.287184  0.4811 0.831
+Philippines    -0.15707  0.22681  0.15743 -0.11140 -0.170674  0.4884 0.818
+Portugal       -0.02140  0.02551 -0.00380  0.03991 -0.028011 -0.0690 1.233
+South Africa    0.02218 -0.02030 -0.00672 -0.02049 -0.016326  0.0343 1.195
+South Rhodesia  0.14390 -0.13472 -0.09245 -0.06956 -0.057920  0.1607 1.313
+Spain          -0.03035  0.03131  0.00394  0.03512  0.005340 -0.0526 1.208
+Sweden          0.10098 -0.08162 -0.06166 -0.25528 -0.013316 -0.4526 1.086
+Switzerland     0.04323 -0.04649 -0.04364  0.09093 -0.018828  0.1903 1.147
+Turkey         -0.01092 -0.01198  0.02645  0.00161  0.025138 -0.1445 1.100
+Tunisia         0.07377 -0.10500 -0.07727  0.04439  0.103058 -0.2177 1.131
+United Kingdom  0.04671 -0.03584 -0.17129  0.12554  0.100314 -0.2722 1.189
+United States   0.06910 -0.07289  0.03745 -0.23312 -0.032729 -0.2510 1.655
+Venezuela      -0.05083  0.10080 -0.03366  0.11366 -0.124486  0.3071 1.095
+Zambia          0.16361 -0.07917 -0.33899  0.09406  0.228232  0.7482 0.512
+Jamaica         0.10958 -0.10022 -0.05722 -0.00703 -0.295461 -0.3456 1.200
+Uruguay        -0.13403  0.12880  0.02953  0.13132  0.099591 -0.2051 1.187
+Libya           0.55074 -0.48324 -0.37974 -0.01937 -1.024477 -1.1601 2.091
+Malaysia        0.03684 -0.06113  0.03235 -0.04956 -0.072294 -0.2126 1.113
+                 cook.d    hat inf
+Australia      8.04e-04 0.0677    
+Austria        8.18e-04 0.1204    
+Belgium        7.15e-03 0.0875    
+Bolivia        7.28e-04 0.0895    
+Brazil         1.40e-02 0.0696    
+Canada         3.11e-04 0.1584    
+Chile          3.78e-02 0.0373   *
+China          8.16e-03 0.0780    
+Colombia       1.88e-03 0.0573    
+Costa Rica     3.21e-02 0.0755    
+Denmark        2.88e-02 0.0627    
+Ecuador        5.82e-03 0.0637    
+Finland        4.36e-03 0.0920    
+France         1.55e-02 0.1362    
+Germany        4.74e-05 0.0874    
+Greece         1.59e-02 0.0966    
+Guatamala      1.07e-02 0.0605    
+Honduras       4.74e-04 0.0601    
+Iceland        4.35e-02 0.0705    
+India          2.97e-04 0.0715    
+Ireland        5.44e-02 0.2122    
+Italy          3.92e-03 0.0665    
+Japan          1.43e-01 0.2233    
+Korea          3.56e-02 0.0608    
+Luxembourg     3.99e-03 0.0863    
+Malta          1.15e-02 0.0794    
+Norway         5.56e-04 0.0479    
+Netherlands    2.74e-04 0.0906    
+New Zealand    4.38e-03 0.0542    
+Nicaragua      3.23e-04 0.0504    
+Panama         6.33e-03 0.0390    
+Paraguay       4.16e-02 0.0694    
+Peru           4.40e-02 0.0650    
+Philippines    4.52e-02 0.0643    
+Portugal       9.73e-04 0.0971    
+South Africa   2.41e-04 0.0651    
+South Rhodesia 5.27e-03 0.1608    
+Spain          5.66e-04 0.0773    
+Sweden         4.06e-02 0.1240    
+Switzerland    7.33e-03 0.0736    
+Turkey         4.22e-03 0.0396    
+Tunisia        9.56e-03 0.0746    
+United Kingdom 1.50e-02 0.1165    
+United States  1.28e-02 0.3337   *
+Venezuela      1.89e-02 0.0863    
+Zambia         9.66e-02 0.0643   *
+Jamaica        2.40e-02 0.1408    
+Uruguay        8.53e-03 0.0979    
+Libya          2.68e-01 0.5315   *
+Malaysia       9.11e-03 0.0652    
+> summary(IM)
+Potentially influential observations of
+	 lm(formula = sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings) :
+
+              dfb.1_ dfb.pp15 dfb.pp75 dfb.dpi dfb.ddpi dffit   cov.r   cook.d
+Chile         -0.20   0.13     0.22    -0.02    0.12    -0.46    0.65_*  0.04 
+United States  0.07  -0.07     0.04    -0.23   -0.03    -0.25    1.66_*  0.01 
+Zambia         0.16  -0.08    -0.34     0.09    0.23     0.75    0.51_*  0.10 
+Libya          0.55  -0.48    -0.38    -0.02   -1.02_*  -1.16_*  2.09_*  0.27 
+              hat    
+Chile          0.04  
+United States  0.33_*
+Zambia         0.06  
+Libya          0.53_*
+> ## colnames will differ in the next line
+> all.equal(dfbetas(lm.SR), IM$infmat[, 1:5], check.attributes = FALSE,
++           tolerance = 1e-12)
+[1] TRUE
+> 
+> signif(dfbeta(lm.SR), 3)
+               (Intercept)     pop15    pop75       dpi      ddpi
+Australia           0.0916 -1.53e-03 -0.02910  4.27e-05 -3.16e-05
+Austria            -0.0747  8.69e-04  0.04470 -3.46e-05 -1.62e-03
+Belgium            -0.4750  7.50e-03  0.13200 -3.26e-05 -1.44e-03
+Bolivia             0.0429 -1.86e-03 -0.02470  3.00e-05  8.06e-03
+Brazil              0.6600 -8.92e-03 -0.19400  1.12e-04  1.34e-02
+Canada              0.0402 -9.87e-04  0.01120 -3.32e-05 -5.25e-04
+Chile              -1.4000  1.83e-02  0.22700 -1.78e-05  2.25e-02
+China               0.1560 -8.33e-04 -0.09060  4.85e-05  2.18e-02
+Colombia            0.2900 -7.63e-03 -0.02700  1.58e-06  1.80e-03
+Costa Rica         -1.7000  4.07e-02  0.15300  5.19e-05 -6.37e-03
+Denmark            -0.2940  2.99e-03  0.04980  1.40e-04  9.46e-03
+Ecuador             0.5310 -1.39e-02 -0.06620  1.83e-05  9.44e-03
+Finland            -0.8420  1.62e-02  0.12800 -4.10e-05 -3.39e-03
+France             -1.2300  2.14e-02  0.23900 -2.76e-05  4.73e-03
+Germany            -0.0597  1.20e-03  0.00915 -6.56e-06 -5.82e-05
+Greece             -1.0900  2.38e-02  0.03110  1.47e-04 -1.17e-02
+Guatamala           0.1140 -7.95e-03  0.00667  5.46e-06  1.91e-02
+Honduras           -0.0168  1.44e-03 -0.01120  7.64e-06 -3.74e-04
+Iceland             1.7800 -3.87e-02 -0.24700 -1.14e-04  3.55e-02
+India               0.1560 -2.31e-03 -0.01580 -1.29e-05 -3.76e-03
+Ireland            -2.2800  4.28e-02  0.52200 -2.40e-04 -1.83e-02
+Italy               0.4910 -1.04e-02  0.00335 -6.57e-05 -5.67e-03
+Japan               4.6300 -9.33e-02 -0.71800  1.34e-04  7.49e-02
+Korea              -1.2200  1.91e-02  0.23300  4.66e-06 -3.26e-02
+Luxembourg         -0.5070  1.01e-02  0.04790 -2.63e-05  9.73e-03
+Malta               0.2700 -7.08e-03  0.00861 -8.09e-05  3.01e-02
+Norway              0.0165 -5.12e-05 -0.00670 -1.50e-05 -2.90e-04
+Netherlands         0.1040 -2.45e-03 -0.01300  4.07e-06  4.48e-03
+New Zealand        -0.4440  9.48e-03  0.10300 -2.47e-05 -1.28e-02
+Nicaragua          -0.0899  2.62e-03  0.01060 -4.46e-06 -2.08e-03
+Panama              0.2080 -7.73e-03  0.01570 -3.24e-05 -1.55e-03
+Paraguay           -1.6700  2.33e-02  0.16800  1.31e-04  5.20e-02
+Peru               -0.5150  2.07e-02  0.09670 -7.79e-05 -5.49e-02
+Philippines        -1.1200  3.19e-02  0.16600 -1.01e-04 -3.26e-02
+Portugal           -0.1590  3.73e-03 -0.00416  3.76e-05 -5.55e-03
+South Africa        0.1650 -2.97e-03 -0.00737 -1.93e-05 -3.24e-03
+South Rhodesia      1.0700 -1.97e-02 -0.10100 -6.54e-05 -1.15e-02
+Spain              -0.2260  4.58e-03  0.00432  3.31e-05  1.06e-03
+Sweden              0.7390 -1.17e-02 -0.06650 -2.37e-04 -2.60e-03
+Switzerland         0.3200 -6.77e-03 -0.04760  8.52e-05 -3.72e-03
+Turkey             -0.0807 -1.74e-03  0.02880  1.51e-06  4.96e-03
+Tunisia             0.5450 -1.53e-02 -0.08410  4.15e-05  2.03e-02
+United Kingdom      0.3450 -5.21e-03 -0.18700  1.17e-04  1.98e-02
+United States       0.5130 -1.06e-02  0.04100 -2.19e-04 -6.48e-03
+Venezuela          -0.3740  1.46e-02 -0.03650  1.06e-04 -2.44e-02
+Zambia              1.1200 -1.06e-02 -0.34100  8.14e-05  4.16e-02
+Jamaica             0.8080 -1.45e-02 -0.06220 -6.57e-06 -5.81e-02
+Uruguay            -0.9920  1.88e-02  0.03220  1.23e-04  1.97e-02
+Libya               4.0400 -6.98e-02 -0.41100 -1.80e-05 -2.01e-01
+Malaysia            0.2720 -8.88e-03  0.03520 -4.63e-05 -1.42e-02
+> covratio (lm.SR)
+     Australia        Austria        Belgium        Bolivia         Brazil 
+     1.1928303      1.2678392      1.1761879      1.2238199      1.0823332 
+        Canada          Chile          China       Colombia     Costa Rica 
+     1.3283009      0.6547098      1.1498637      1.1666845      0.9681384 
+       Denmark        Ecuador        Finland         France        Germany 
+     0.9344047      1.1393880      1.2031561      1.2262654      1.2256855 
+        Greece      Guatamala       Honduras        Iceland          India 
+     1.1396174      1.0852720      1.1855450      0.8658808      1.2024438 
+       Ireland          Italy          Japan          Korea     Luxembourg 
+     1.2680432      1.1624611      1.0845999      0.8695843      1.1961844 
+         Malta         Norway    Netherlands    New Zealand      Nicaragua 
+     1.1282611      1.1680616      1.2285315      1.1336998      1.1742677 
+        Panama       Paraguay           Peru    Philippines       Portugal 
+     1.0667255      0.8732040      0.8312741      0.8177726      1.2331038 
+  South Africa South Rhodesia          Spain         Sweden    Switzerland 
+     1.1945449      1.3130954      1.2081541      1.0864869      1.1471125 
+        Turkey        Tunisia United Kingdom  United States      Venezuela 
+     1.1003557      1.1314365      1.1886236      1.6554816      1.0945955 
+        Zambia        Jamaica        Uruguay          Libya       Malaysia 
+     0.5116454      1.1995171      1.1872025      2.0905736      1.1126445 
+> 
+> ## predict.lm(.)
+> 
+> all.equal(predict(roller.lm,                 se.fit=TRUE)$se.fit,
++           predict(roller.lm, newdata=roller, se.fit=TRUE)$se.fit, tolerance =  1e-14)
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/README
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/README	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/README	(revision 2476)
@@ -0,0 +1,116 @@
+There is a hierarchy of check targets:
+
+     make check
+
+for all builders.  If this works one can be reasonably happy R is working
+and do `make install' (or the equivalent).
+
+    make check-devel
+
+for people changing the code: this runs things like the demos and
+no-segfault which might be broken by code changes, and checks on the
+documentation (effectively R CMD check on each of the base packages).
+This needs recommended packages installed.
+
+    make check-all
+
+runs all the checks, those in check-devel plus tests of the recommended
+packages.
+
+Note that for complete testing you will need a number of other
+packages installed and available, so if you have a CRAN installation,
+set R_LIBS (perhaps in ~/.R/check.Renviron) to include it before
+running these tests.  For example, some of the tests on 'nlme' depend
+on 'Hmisc', and there are a number of cross references from help pages
+to CRAN packages.
+
+If a check fails there will almost always be a .Rout.fail file with
+the problematic output, so looking at the tail of that file should
+help pinpoint the problem.
+
+The \dontest sections of the examples can be run by
+
+     make check TEST_DONTTEST=TRUE
+
+(but expect some differences from the reference ouput).  This requires
+functional Tcl/Tk, e.g. for X11-based versions DISPLAY must be set to
+a usable X server.
+
+
+	---------- Historical Information -----------
+
+In this directory, various tests on R are run automatically.
+This is the recommended way to check if R has been built successfully on
+your architecture.
+
+	make check
+
+does
+
+	make test-Examples
+
+runs all the examples from the help files (*.Rd) of all core packages
+(base, ctest, ..., ts) -- which can take quite long (a few minutes,
+depending on your environment).
+
+	make test-Specific
+
+The "fast" part of the tests is `test-Specific' which runs the *.R
+files in this (./tests) directory (tolerantly) compares the result
+*.Rout file with the prespecified *.Rout.save (if that exists).
+
+	make test-Reg
+
+runs regression tests, that is tests that ensure that things which have been
+changed (perhaps as a result of bug reports) stay fixed.
+
+	make test-Internet
+	make test-Internet2
+
+runs tests which need access to the Internet and/or sockets and so may
+not run on every machine.  You will see some differences in the
+output, but no test should fail if you do have sockets and Internet
+access.  test-Internet2 is part of 'make check-devel' and checks less
+commonly-used options.
+
+
+Further tests are run by the target `make check-devel', including
+
+
+	make test-Demo
+
+runs all the demos in packages base and stats (but not tcltk), except
+demo(lm.glm) which is run by example(demo) and so not run again.
+
+
+	make test-Random
+
+runs a series of tests on the distribution of random variates generated
+by the rxxxx() functions.  The test is a large deviation bound on the 
+Kolmogorov statistic, so also provides a test of the cumulative distribution
+functions pxxxx().  Because rare events do happen, this test suite
+will be failed in about 1 in 50 runs.
+
+
+	make test-Segfault
+
+runs a test abusing all the functions in the base packages via
+no-segfault.R, and that can be quite slow (a minute or more).
+
+
+A target not run by anything else is
+
+	make test-System
+
+which checks options in system[2]() calls.
+
+
+A rarely-used target is
+
+	make test-Gct
+
+runs a subset of the specific tests with gctorture turned on.  This is slow,
+taking an hour or two.
+
+
+Martin Maechler for the R Core Team.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-2.Rout.save	(revision 2476)
@@ -0,0 +1,7817 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ## Regression tests for which the printed output is the issue
+> ### _and_ must work (no Recommended packages, please)
+> 
+> pdf("reg-tests-2.pdf", encoding = "ISOLatin1.enc")
+> 
+> ## force standard handling for data frames
+> options(stringsAsFactors=TRUE)
+> options(useFancyQuotes=FALSE)
+> 
+> ### moved from various .Rd files
+> ## abbreviate
+> for(m in 1:5) {
++   cat("\n",m,":\n")
++   print(as.vector(abbreviate(state.name, minl=m)))
++ }
+
+ 1 :
+ [1] "Alb"  "Als"  "Arz"  "Ark"  "Clf"  "Clr"  "Cn"   "D"    "F"    "G"   
+[11] "H"    "Id"   "Il"   "In"   "Iw"   "Kns"  "Knt"  "L"    "Man"  "Mr"  
+[21] "Mssc" "Mc"   "Mnn"  "Msss" "Mssr" "Mnt"  "Nb"   "Nv"   "NH"   "NJ"  
+[31] "NM"   "NY"   "NC"   "ND"   "Oh"   "Ok"   "Or"   "P"    "RI"   "SC"  
+[41] "SD"   "Tn"   "Tx"   "U"    "Vrm"  "Vrg"  "Wsh"  "WV"   "Wsc"  "Wy"  
+
+ 2 :
+ [1] "Alb"  "Als"  "Arz"  "Ark"  "Clf"  "Clr"  "Cn"   "Dl"   "Fl"   "Gr"  
+[11] "Hw"   "Id"   "Il"   "In"   "Iw"   "Kns"  "Knt"  "Ls"   "Man"  "Mr"  
+[21] "Mssc" "Mc"   "Mnn"  "Msss" "Mssr" "Mnt"  "Nb"   "Nv"   "NH"   "NJ"  
+[31] "NM"   "NY"   "NC"   "ND"   "Oh"   "Ok"   "Or"   "Pn"   "RI"   "SC"  
+[41] "SD"   "Tn"   "Tx"   "Ut"   "Vrm"  "Vrg"  "Wsh"  "WV"   "Wsc"  "Wy"  
+
+ 3 :
+ [1] "Alb"  "Als"  "Arz"  "Ark"  "Clf"  "Clr"  "Cnn"  "Dlw"  "Flr"  "Grg" 
+[11] "Haw"  "Idh"  "Ill"  "Ind"  "Iow"  "Kns"  "Knt"  "Lsn"  "Man"  "Mry" 
+[21] "Mssc" "Mch"  "Mnn"  "Msss" "Mssr" "Mnt"  "Nbr"  "Nvd"  "NwH"  "NwJ" 
+[31] "NwM"  "NwY"  "NrC"  "NrD"  "Ohi"  "Okl"  "Org"  "Pnn"  "RhI"  "StC" 
+[41] "StD"  "Tnn"  "Txs"  "Uth"  "Vrm"  "Vrg"  "Wsh"  "WsV"  "Wsc"  "Wym" 
+
+ 4 :
+ [1] "Albm" "Alsk" "Arzn" "Arkn" "Clfr" "Clrd" "Cnnc" "Dlwr" "Flrd" "Gerg"
+[11] "Hawa" "Idah" "Illn" "Indn" "Iowa" "Knss" "Kntc" "Losn" "Main" "Mryl"
+[21] "Mssc" "Mchg" "Mnns" "Msss" "Mssr" "Mntn" "Nbrs" "Nevd" "NwHm" "NwJr"
+[31] "NwMx" "NwYr" "NrtC" "NrtD" "Ohio" "Oklh" "Orgn" "Pnns" "RhdI" "SthC"
+[41] "SthD" "Tnns" "Texs" "Utah" "Vrmn" "Vrgn" "Wshn" "WstV" "Wscn" "Wymn"
+
+ 5 :
+ [1] "Alabm" "Alask" "Arizn" "Arkns" "Clfrn" "Colrd" "Cnnct" "Delwr" "Flord"
+[10] "Georg" "Hawai" "Idaho" "Illns" "Indin" "Iowa"  "Kanss" "Kntck" "Lousn"
+[19] "Maine" "Mryln" "Mssch" "Mchgn" "Mnnst" "Mssss" "Missr" "Montn" "Nbrsk"
+[28] "Nevad" "NwHmp" "NwJrs" "NwMxc" "NwYrk" "NrthC" "NrthD" "Ohio"  "Oklhm"
+[37] "Oregn" "Pnnsy" "RhdIs" "SthCr" "SthDk" "Tnnss" "Texas" "Utah"  "Vrmnt"
+[46] "Virgn" "Wshng" "WstVr" "Wscns" "Wymng"
+> 
+> ## apply
+> x <- cbind(x1 = 3, x2 = c(4:1, 2:5))
+> dimnames(x)[[1]] <- letters[1:8]
+> apply(x,  2, summary) # 6 x n matrix
+        x1 x2
+Min.     3  1
+1st Qu.  3  2
+Median   3  3
+Mean     3  3
+3rd Qu.  3  4
+Max.     3  5
+> apply(x,  1, quantile)# 5 x n matrix
+        a b    c   d    e f    g   h
+0%   3.00 3 2.00 1.0 2.00 3 3.00 3.0
+25%  3.25 3 2.25 1.5 2.25 3 3.25 3.5
+50%  3.50 3 2.50 2.0 2.50 3 3.50 4.0
+75%  3.75 3 2.75 2.5 2.75 3 3.75 4.5
+100% 4.00 3 3.00 3.0 3.00 3 4.00 5.0
+> 
+> d.arr <- 2:5
+> arr <- array(1:prod(d.arr), d.arr,
++          list(NULL,letters[1:d.arr[2]],NULL,paste("V",4+1:d.arr[4],sep="")))
+> aa <- array(1:20,c(2,2,5))
+> str(apply(aa[FALSE,,,drop=FALSE], 1, dim))# empty integer, `incorrect' dim.
+ int(0) 
+> stopifnot(
++        apply(arr, 1:2, sum) == t(apply(arr, 2:1, sum)),
++        aa == apply(aa,2:3,function(x) x),
++        all.equal(apply(apply(aa,2:3, sum),2,sum),
++                  10+16*0:4, tolerance = 4*.Machine$double.eps)
++ )
+> marg <- list(1:2, 2:3, c(2,4), c(1,3), 2:4, 1:3, 1:4)
+> for(m in marg) print(apply(arr, print(m), sum))
+[1] 1 2
+        a    b    c
+[1,] 1160 1200 1240
+[2,] 1180 1220 1260
+[1] 2 3
+  [,1] [,2] [,3] [,4]
+a  495  555  615  675
+b  515  575  635  695
+c  535  595  655  715
+[1] 2 4
+   V5  V6  V7  V8  V9
+a  84 276 468 660 852
+b 100 292 484 676 868
+c 116 308 500 692 884
+[1] 1 3
+     [,1] [,2] [,3] [,4]
+[1,]  765  855  945 1035
+[2,]  780  870  960 1050
+[1] 2 3 4
+, , V5
+
+  [,1] [,2] [,3] [,4]
+a    3   15   27   39
+b    7   19   31   43
+c   11   23   35   47
+
+, , V6
+
+  [,1] [,2] [,3] [,4]
+a   51   63   75   87
+b   55   67   79   91
+c   59   71   83   95
+
+, , V7
+
+  [,1] [,2] [,3] [,4]
+a   99  111  123  135
+b  103  115  127  139
+c  107  119  131  143
+
+, , V8
+
+  [,1] [,2] [,3] [,4]
+a  147  159  171  183
+b  151  163  175  187
+c  155  167  179  191
+
+, , V9
+
+  [,1] [,2] [,3] [,4]
+a  195  207  219  231
+b  199  211  223  235
+c  203  215  227  239
+
+[1] 1 2 3
+, , 1
+
+       a   b   c
+[1,] 245 255 265
+[2,] 250 260 270
+
+, , 2
+
+       a   b   c
+[1,] 275 285 295
+[2,] 280 290 300
+
+, , 3
+
+       a   b   c
+[1,] 305 315 325
+[2,] 310 320 330
+
+, , 4
+
+       a   b   c
+[1,] 335 345 355
+[2,] 340 350 360
+
+[1] 1 2 3 4
+, , 1, V5
+
+     a b c
+[1,] 1 3 5
+[2,] 2 4 6
+
+, , 2, V5
+
+     a  b  c
+[1,] 7  9 11
+[2,] 8 10 12
+
+, , 3, V5
+
+      a  b  c
+[1,] 13 15 17
+[2,] 14 16 18
+
+, , 4, V5
+
+      a  b  c
+[1,] 19 21 23
+[2,] 20 22 24
+
+, , 1, V6
+
+      a  b  c
+[1,] 25 27 29
+[2,] 26 28 30
+
+, , 2, V6
+
+      a  b  c
+[1,] 31 33 35
+[2,] 32 34 36
+
+, , 3, V6
+
+      a  b  c
+[1,] 37 39 41
+[2,] 38 40 42
+
+, , 4, V6
+
+      a  b  c
+[1,] 43 45 47
+[2,] 44 46 48
+
+, , 1, V7
+
+      a  b  c
+[1,] 49 51 53
+[2,] 50 52 54
+
+, , 2, V7
+
+      a  b  c
+[1,] 55 57 59
+[2,] 56 58 60
+
+, , 3, V7
+
+      a  b  c
+[1,] 61 63 65
+[2,] 62 64 66
+
+, , 4, V7
+
+      a  b  c
+[1,] 67 69 71
+[2,] 68 70 72
+
+, , 1, V8
+
+      a  b  c
+[1,] 73 75 77
+[2,] 74 76 78
+
+, , 2, V8
+
+      a  b  c
+[1,] 79 81 83
+[2,] 80 82 84
+
+, , 3, V8
+
+      a  b  c
+[1,] 85 87 89
+[2,] 86 88 90
+
+, , 4, V8
+
+      a  b  c
+[1,] 91 93 95
+[2,] 92 94 96
+
+, , 1, V9
+
+      a   b   c
+[1,] 97  99 101
+[2,] 98 100 102
+
+, , 2, V9
+
+       a   b   c
+[1,] 103 105 107
+[2,] 104 106 108
+
+, , 3, V9
+
+       a   b   c
+[1,] 109 111 113
+[2,] 110 112 114
+
+, , 4, V9
+
+       a   b   c
+[1,] 115 117 119
+[2,] 116 118 120
+
+> for(m in marg) ## 75% of the time here was spent on the names
++   print(dim(apply(arr, print(m), quantile, names=FALSE)) == c(5,d.arr[m]))
+[1] 1 2
+[1] TRUE TRUE TRUE
+[1] 2 3
+[1] TRUE TRUE TRUE
+[1] 2 4
+[1] TRUE TRUE TRUE
+[1] 1 3
+[1] TRUE TRUE TRUE
+[1] 2 3 4
+[1] TRUE TRUE TRUE TRUE
+[1] 1 2 3
+[1] TRUE TRUE TRUE TRUE
+[1] 1 2 3 4
+[1] TRUE TRUE TRUE TRUE TRUE
+> 
+> ## Bessel
+> nus <- c(0:5,10,20)
+> 
+> x0 <- 2^(-20:10)
+> plot(x0,x0, log='xy', ylab="", ylim=c(.1,1e60),type='n',
++      main = "Bessel Functions -Y_nu(x)  near 0\n log - log  scale")
+> for(nu in sort(c(nus,nus+.5))) lines(x0, -besselY(x0,nu=nu), col = nu+2)
+> legend(3,1e50, leg=paste("nu=", paste(nus,nus+.5, sep=",")), col=nus+2, lwd=1)
+> 
+> x <- seq(3,500);yl <- c(-.3, .2)
+> plot(x,x, ylim = yl, ylab="",type='n', main = "Bessel Functions  Y_nu(x)")
+> for(nu in nus){xx <- x[x > .6*nu]; lines(xx,besselY(xx,nu=nu), col = nu+2)}
+> legend(300,-.08, leg=paste("nu=",nus), col = nus+2, lwd=1)
+> 
+> x <- seq(10,50000,by=10);yl <- c(-.1, .1)
+> plot(x,x, ylim = yl, ylab="",type='n', main = "Bessel Functions  Y_nu(x)")
+> for(nu in nus){xx <- x[x > .6*nu]; lines(xx,besselY(xx,nu=nu), col = nu+2)}
+> summary(bY <- besselY(2,nu = nu <- seq(0,100,len=501)))
+       Min.     1st Qu.      Median        Mean     3rd Qu.        Max. 
+-3.001e+155 -1.067e+107  -1.976e+62 -9.961e+152  -2.059e+23   1.000e+00 
+> which(bY >= 0)
+[1] 1 2 3 4 5
+> summary(bY <- besselY(2,nu = nu <- seq(3,300,len=51)))
+       Min.     1st Qu.      Median        Mean     3rd Qu.        Max. 
+       -Inf        -Inf -2.248e+263        -Inf -3.777e+116  -1.000e+00 
+There were 22 warnings (use warnings() to see them)
+> summary(bI <- besselI(x = x <- 10:700, 1))
+      Min.    1st Qu.     Median       Mean    3rd Qu.       Max. 
+ 2.671e+03  6.026e+77 3.161e+152 3.501e+299 2.409e+227 1.529e+302 
+> ## end of moved from Bessel.Rd
+> 
+> ## data.frame
+> set.seed(123)
+> L3 <- LETTERS[1:3]
+> d <- data.frame(cbind(x=1, y=1:10), fac = sample(L3, 10, replace=TRUE))
+> str(d)
+'data.frame':	10 obs. of  3 variables:
+ $ x  : num  1 1 1 1 1 1 1 1 1 1
+ $ y  : num  1 2 3 4 5 6 7 8 9 10
+ $ fac: Factor w/ 3 levels "A","B","C": 1 3 2 3 3 1 2 3 2 2
+> (d0  <- d[, FALSE]) # NULL dataframe with 10 rows
+data frame with 0 columns and 10 rows
+> (d.0 <- d[FALSE, ]) # <0 rows> dataframe  (3 cols)
+[1] x   y   fac
+<0 rows> (or 0-length row.names)
+> (d00 <- d0[FALSE,]) # NULL dataframe with 0 rows
+data frame with 0 columns and 0 rows
+> stopifnot(identical(d, cbind(d, d0)),
++           identical(d, cbind(d0, d)))
+> stopifnot(identical(d, rbind(d,d.0)),
++           identical(d, rbind(d.0,d)),
++           identical(d, rbind(d00,d)),
++           identical(d, rbind(d,d00)))
+> ## Comments: failed before ver. 1.4.0
+> 
+> ## diag
+> diag(array(1:4, dim=5))
+     [,1] [,2] [,3] [,4] [,5]
+[1,]    1    0    0    0    0
+[2,]    0    2    0    0    0
+[3,]    0    0    3    0    0
+[4,]    0    0    0    4    0
+[5,]    0    0    0    0    1
+> ## test behaviour with 0 rows or columns
+> diag(0)
+<0 x 0 matrix>
+> z <- matrix(0, 0, 4)
+> diag(z)
+numeric(0)
+> diag(z) <- numeric(0)
+> z
+     [,1] [,2] [,3] [,4]
+> ## end of moved from diag.Rd
+> 
+> ## format
+> ## handling of quotes
+> zz <- data.frame(a=I("abc"), b=I("def\"gh"))
+> format(zz)
+    a      b
+1 abc def"gh
+> ## " (E fontification)
+> 
+> ## printing more than 16 is platform-dependent
+> for(i in c(1:5,10,15,16)) cat(i,":\t",format(pi,digits=i),"\n")
+1 :	 3 
+2 :	 3.1 
+3 :	 3.14 
+4 :	 3.142 
+5 :	 3.1416 
+10 :	 3.141592654 
+15 :	 3.14159265358979 
+16 :	 3.141592653589793 
+> 
+> p <- c(47,13,2,.1,.023,.0045, 1e-100)/1000
+> format.pval(p)
+[1] "0.0470"  "0.0130"  "0.0020"  "0.0001"  "2.3e-05" "4.5e-06" "< 2e-16"
+> format.pval(p / 0.9)
+[1] "0.05222222" "0.01444444" "0.00222222" "0.00011111" "2.5556e-05"
+[6] "5.0000e-06" "< 2.22e-16"
+> format.pval(p / 0.9, dig=3)
+[1] "0.052222" "0.014444" "0.002222" "0.000111" "2.56e-05" "5.00e-06" "< 2e-16" 
+> ## end of moved from format.Rd
+> 
+> 
+> ## is.finite
+> x <- c(100,-1e-13,Inf,-Inf, NaN, pi, NA)
+> x #  1.000000 -3.000000       Inf      -Inf        NA  3.141593        NA
+[1]  1.000000e+02 -1.000000e-13           Inf          -Inf           NaN
+[6]  3.141593e+00            NA
+> names(x) <- formatC(x, dig=3)
+> is.finite(x)
+   100 -1e-13    Inf   -Inf    NaN   3.14     NA 
+  TRUE   TRUE  FALSE  FALSE  FALSE   TRUE  FALSE 
+> ##-   100 -1e-13 Inf -Inf NaN 3.14 NA
+> ##-     T      T   .    .   .    T  .
+> is.na(x)
+   100 -1e-13    Inf   -Inf    NaN   3.14     NA 
+ FALSE  FALSE  FALSE  FALSE   TRUE  FALSE   TRUE 
+> ##-   100 -1e-13 Inf -Inf NaN 3.14 NA
+> ##-     .      .   .    .   T    .  T
+> which(is.na(x) & !is.nan(x))# only 'NA': 7
+  NA 
+   7 
+> 
+> is.na(x) | is.finite(x)
+   100 -1e-13    Inf   -Inf    NaN   3.14     NA 
+  TRUE   TRUE  FALSE  FALSE   TRUE   TRUE   TRUE 
+> ##-   100 -1e-13 Inf -Inf NaN 3.14 NA
+> ##-     T      T   .    .   T    T  T
+> is.infinite(x)
+   100 -1e-13    Inf   -Inf    NaN   3.14     NA 
+ FALSE  FALSE   TRUE   TRUE  FALSE  FALSE  FALSE 
+> ##-   100 -1e-13 Inf -Inf NaN 3.14 NA
+> ##-     .      .   T    T   .    .  .
+> 
+> ##-- either  finite or infinite  or  NA:
+> all(is.na(x) != is.finite(x) | is.infinite(x)) # TRUE
+[1] TRUE
+> all(is.nan(x) != is.finite(x) | is.infinite(x)) # FALSE: have 'real' NA
+[1] FALSE
+> 
+> ##--- Integer
+> (ix <- structure(as.integer(x),names= names(x)))
+   100 -1e-13    Inf   -Inf    NaN   3.14     NA 
+   100      0     NA     NA     NA      3     NA 
+Warning message:
+In structure(as.integer(x), names = names(x)) :
+  NAs introduced by coercion to integer range
+> ##-   100 -1e-13    Inf   -Inf    NaN   3.14     NA
+> ##-   100      0     NA     NA     NA      3     NA
+> all(is.na(ix) != is.finite(ix) | is.infinite(ix)) # TRUE (still)
+[1] TRUE
+> 
+> storage.mode(ii <- -3:5)
+[1] "integer"
+> storage.mode(zm <- outer(ii,ii, FUN="*"))# integer
+[1] "double"
+> storage.mode(zd <- outer(ii,ii, FUN="/"))# double
+[1] "double"
+> range(zd, na.rm=TRUE)# -Inf  Inf
+[1] -Inf  Inf
+> zd[,ii==0]
+[1] -Inf -Inf -Inf  NaN  Inf  Inf  Inf  Inf  Inf
+> 
+> (storage.mode(print(1:1 / 0:0)))# Inf "double"
+[1] Inf
+[1] "double"
+> (storage.mode(print(1:1 / 1:1)))# 1 "double"
+[1] 1
+[1] "double"
+> (storage.mode(print(1:1 + 1:1)))# 2 "integer"
+[1] 2
+[1] "integer"
+> (storage.mode(print(2:2 * 2:2)))# 4 "integer"
+[1] 4
+[1] "integer"
+> ## end of moved from is.finite.Rd
+> 
+> 
+> ## kronecker
+> fred <- matrix(1:12, 3, 4, dimnames=list(LETTERS[1:3], LETTERS[4:7]))
+> bill <- c("happy" = 100, "sad" = 1000)
+> kronecker(fred, bill, make.dimnames = TRUE)
+          D:   E:   F:    G:
+A:happy  100  400  700  1000
+A:sad   1000 4000 7000 10000
+B:happy  200  500  800  1100
+B:sad   2000 5000 8000 11000
+C:happy  300  600  900  1200
+C:sad   3000 6000 9000 12000
+> 
+> bill <- outer(bill, c("cat"=3, "dog"=4))
+> kronecker(fred, bill, make.dimnames = TRUE)
+        D:cat D:dog E:cat E:dog F:cat F:dog G:cat G:dog
+A:happy   300   400  1200  1600  2100  2800  3000  4000
+A:sad    3000  4000 12000 16000 21000 28000 30000 40000
+B:happy   600   800  1500  2000  2400  3200  3300  4400
+B:sad    6000  8000 15000 20000 24000 32000 33000 44000
+C:happy   900  1200  1800  2400  2700  3600  3600  4800
+C:sad    9000 12000 18000 24000 27000 36000 36000 48000
+> 
+> # dimnames are hard work: let's test them thoroughly
+> 
+> dimnames(bill) <- NULL
+> kronecker(fred, bill, make=TRUE)
+     D:    D:    E:    E:    F:    F:    G:    G:
+A:  300   400  1200  1600  2100  2800  3000  4000
+A: 3000  4000 12000 16000 21000 28000 30000 40000
+B:  600   800  1500  2000  2400  3200  3300  4400
+B: 6000  8000 15000 20000 24000 32000 33000 44000
+C:  900  1200  1800  2400  2700  3600  3600  4800
+C: 9000 12000 18000 24000 27000 36000 36000 48000
+> kronecker(bill, fred, make=TRUE)
+     :D    :E    :F    :G    :D    :E    :F    :G
+:A  300  1200  2100  3000   400  1600  2800  4000
+:B  600  1500  2400  3300   800  2000  3200  4400
+:C  900  1800  2700  3600  1200  2400  3600  4800
+:A 3000 12000 21000 30000  4000 16000 28000 40000
+:B 6000 15000 24000 33000  8000 20000 32000 44000
+:C 9000 18000 27000 36000 12000 24000 36000 48000
+> 
+> dim(bill) <- c(2, 2, 1)
+> dimnames(bill) <- list(c("happy", "sad"), NULL, "")
+> kronecker(fred, bill, make=TRUE)
+, , :
+
+          D:    D:    E:    E:    F:    F:    G:    G:
+A:happy  300   400  1200  1600  2100  2800  3000  4000
+A:sad   3000  4000 12000 16000 21000 28000 30000 40000
+B:happy  600   800  1500  2000  2400  3200  3300  4400
+B:sad   6000  8000 15000 20000 24000 32000 33000 44000
+C:happy  900  1200  1800  2400  2700  3600  3600  4800
+C:sad   9000 12000 18000 24000 27000 36000 36000 48000
+
+> 
+> bill <- array(1:24, c(3, 4, 2))
+> dimnames(bill) <- list(NULL, NULL, c("happy", "sad"))
+> kronecker(bill, fred, make=TRUE)
+, , happy:
+
+   :D :E :F :G :D :E :F :G :D :E :F  :G :D :E  :F  :G
+:A  1  4  7 10  4 16 28 40  7 28 49  70 10 40  70 100
+:B  2  5  8 11  8 20 32 44 14 35 56  77 20 50  80 110
+:C  3  6  9 12 12 24 36 48 21 42 63  84 30 60  90 120
+:A  2  8 14 20  5 20 35 50  8 32 56  80 11 44  77 110
+:B  4 10 16 22 10 25 40 55 16 40 64  88 22 55  88 121
+:C  6 12 18 24 15 30 45 60 24 48 72  96 33 66  99 132
+:A  3 12 21 30  6 24 42 60  9 36 63  90 12 48  84 120
+:B  6 15 24 33 12 30 48 66 18 45 72  99 24 60  96 132
+:C  9 18 27 36 18 36 54 72 27 54 81 108 36 72 108 144
+
+, , sad:
+
+   :D :E  :F  :G :D  :E  :F  :G :D  :E  :F  :G :D  :E  :F  :G
+:A 13 52  91 130 16  64 112 160 19  76 133 190 22  88 154 220
+:B 26 65 104 143 32  80 128 176 38  95 152 209 44 110 176 242
+:C 39 78 117 156 48  96 144 192 57 114 171 228 66 132 198 264
+:A 14 56  98 140 17  68 119 170 20  80 140 200 23  92 161 230
+:B 28 70 112 154 34  85 136 187 40 100 160 220 46 115 184 253
+:C 42 84 126 168 51 102 153 204 60 120 180 240 69 138 207 276
+:A 15 60 105 150 18  72 126 180 21  84 147 210 24  96 168 240
+:B 30 75 120 165 36  90 144 198 42 105 168 231 48 120 192 264
+:C 45 90 135 180 54 108 162 216 63 126 189 252 72 144 216 288
+
+> kronecker(fred, bill, make=TRUE)
+, , :happy
+
+   D: D: D: D: E: E: E: E: F: F: F:  F: G: G:  G:  G:
+A:  1  4  7 10  4 16 28 40  7 28 49  70 10 40  70 100
+A:  2  5  8 11  8 20 32 44 14 35 56  77 20 50  80 110
+A:  3  6  9 12 12 24 36 48 21 42 63  84 30 60  90 120
+B:  2  8 14 20  5 20 35 50  8 32 56  80 11 44  77 110
+B:  4 10 16 22 10 25 40 55 16 40 64  88 22 55  88 121
+B:  6 12 18 24 15 30 45 60 24 48 72  96 33 66  99 132
+C:  3 12 21 30  6 24 42 60  9 36 63  90 12 48  84 120
+C:  6 15 24 33 12 30 48 66 18 45 72  99 24 60  96 132
+C:  9 18 27 36 18 36 54 72 27 54 81 108 36 72 108 144
+
+, , :sad
+
+   D: D: D: D: E:  E:  E:  E:  F:  F:  F:  F:  G:  G:  G:  G:
+A: 13 16 19 22 52  64  76  88  91 112 133 154 130 160 190 220
+A: 14 17 20 23 56  68  80  92  98 119 140 161 140 170 200 230
+A: 15 18 21 24 60  72  84  96 105 126 147 168 150 180 210 240
+B: 26 32 38 44 65  80  95 110 104 128 152 176 143 176 209 242
+B: 28 34 40 46 70  85 100 115 112 136 160 184 154 187 220 253
+B: 30 36 42 48 75  90 105 120 120 144 168 192 165 198 231 264
+C: 39 48 57 66 78  96 114 132 117 144 171 198 156 192 228 264
+C: 42 51 60 69 84 102 120 138 126 153 180 207 168 204 240 276
+C: 45 54 63 72 90 108 126 144 135 162 189 216 180 216 252 288
+
+> 
+> fred <- outer(fred, c("frequentist"=4, "bayesian"=4000))
+> kronecker(fred, bill, make=TRUE)
+, , frequentist:happy
+
+   D: D:  D:  D: E:  E:  E:  E:  F:  F:  F:  F:  G:  G:  G:  G:
+A:  4 16  28  40 16  64 112 160  28 112 196 280  40 160 280 400
+A:  8 20  32  44 32  80 128 176  56 140 224 308  80 200 320 440
+A: 12 24  36  48 48  96 144 192  84 168 252 336 120 240 360 480
+B:  8 32  56  80 20  80 140 200  32 128 224 320  44 176 308 440
+B: 16 40  64  88 40 100 160 220  64 160 256 352  88 220 352 484
+B: 24 48  72  96 60 120 180 240  96 192 288 384 132 264 396 528
+C: 12 48  84 120 24  96 168 240  36 144 252 360  48 192 336 480
+C: 24 60  96 132 48 120 192 264  72 180 288 396  96 240 384 528
+C: 36 72 108 144 72 144 216 288 108 216 324 432 144 288 432 576
+
+, , frequentist:sad
+
+    D:  D:  D:  D:  E:  E:  E:  E:  F:  F:  F:  F:  G:  G:   G:   G:
+A:  52  64  76  88 208 256 304 352 364 448 532 616 520 640  760  880
+A:  56  68  80  92 224 272 320 368 392 476 560 644 560 680  800  920
+A:  60  72  84  96 240 288 336 384 420 504 588 672 600 720  840  960
+B: 104 128 152 176 260 320 380 440 416 512 608 704 572 704  836  968
+B: 112 136 160 184 280 340 400 460 448 544 640 736 616 748  880 1012
+B: 120 144 168 192 300 360 420 480 480 576 672 768 660 792  924 1056
+C: 156 192 228 264 312 384 456 528 468 576 684 792 624 768  912 1056
+C: 168 204 240 276 336 408 480 552 504 612 720 828 672 816  960 1104
+C: 180 216 252 288 360 432 504 576 540 648 756 864 720 864 1008 1152
+
+, , bayesian:happy
+
+      D:    D:     D:     D:    E:     E:     E:     E:     F:     F:     F:
+A:  4000 16000  28000  40000 16000  64000 112000 160000  28000 112000 196000
+A:  8000 20000  32000  44000 32000  80000 128000 176000  56000 140000 224000
+A: 12000 24000  36000  48000 48000  96000 144000 192000  84000 168000 252000
+B:  8000 32000  56000  80000 20000  80000 140000 200000  32000 128000 224000
+B: 16000 40000  64000  88000 40000 100000 160000 220000  64000 160000 256000
+B: 24000 48000  72000  96000 60000 120000 180000 240000  96000 192000 288000
+C: 12000 48000  84000 120000 24000  96000 168000 240000  36000 144000 252000
+C: 24000 60000  96000 132000 48000 120000 192000 264000  72000 180000 288000
+C: 36000 72000 108000 144000 72000 144000 216000 288000 108000 216000 324000
+       F:     G:     G:     G:     G:
+A: 280000  40000 160000 280000 400000
+A: 308000  80000 200000 320000 440000
+A: 336000 120000 240000 360000 480000
+B: 320000  44000 176000 308000 440000
+B: 352000  88000 220000 352000 484000
+B: 384000 132000 264000 396000 528000
+C: 360000  48000 192000 336000 480000
+C: 396000  96000 240000 384000 528000
+C: 432000 144000 288000 432000 576000
+
+, , bayesian:sad
+
+       D:     D:     D:     D:     E:     E:     E:     E:     F:     F:     F:
+A:  52000  64000  76000  88000 208000 256000 304000 352000 364000 448000 532000
+A:  56000  68000  80000  92000 224000 272000 320000 368000 392000 476000 560000
+A:  60000  72000  84000  96000 240000 288000 336000 384000 420000 504000 588000
+B: 104000 128000 152000 176000 260000 320000 380000 440000 416000 512000 608000
+B: 112000 136000 160000 184000 280000 340000 400000 460000 448000 544000 640000
+B: 120000 144000 168000 192000 300000 360000 420000 480000 480000 576000 672000
+C: 156000 192000 228000 264000 312000 384000 456000 528000 468000 576000 684000
+C: 168000 204000 240000 276000 336000 408000 480000 552000 504000 612000 720000
+C: 180000 216000 252000 288000 360000 432000 504000 576000 540000 648000 756000
+       F:     G:     G:      G:      G:
+A: 616000 520000 640000  760000  880000
+A: 644000 560000 680000  800000  920000
+A: 672000 600000 720000  840000  960000
+B: 704000 572000 704000  836000  968000
+B: 736000 616000 748000  880000 1012000
+B: 768000 660000 792000  924000 1056000
+C: 792000 624000 768000  912000 1056000
+C: 828000 672000 816000  960000 1104000
+C: 864000 720000 864000 1008000 1152000
+
+> ## end of moved from kronecker.Rd
+> 
+> ## merge
+> authors <- data.frame(
++     surname = c("Tukey", "Venables", "Tierney", "Ripley", "McNeil"),
++     nationality = c("US", "Australia", "US", "UK", "Australia"),
++     deceased = c("yes", rep("no", 4)))
+> books <- data.frame(
++     name = c("Tukey", "Venables", "Tierney",
++              "Ripley", "Ripley", "McNeil", "R Core"),
++     title = c("Exploratory Data Analysis",
++               "Modern Applied Statistics ...",
++               "LISP-STAT",
++               "Spatial Statistics", "Stochastic Simulation",
++               "Interactive Data Analysis",
++               "An Introduction to R"),
++     other.author = c(NA, "Ripley", NA, NA, NA, NA,
++                      "Venables & Smith"))
+> b2 <- books; names(b2)[1] <- names(authors)[1]
+> 
+> merge(authors, b2, all.x = TRUE)
+   surname nationality deceased                         title other.author
+1   McNeil   Australia       no     Interactive Data Analysis         <NA>
+2   Ripley          UK       no            Spatial Statistics         <NA>
+3   Ripley          UK       no         Stochastic Simulation         <NA>
+4  Tierney          US       no                     LISP-STAT         <NA>
+5    Tukey          US      yes     Exploratory Data Analysis         <NA>
+6 Venables   Australia       no Modern Applied Statistics ...       Ripley
+> merge(authors, b2, all.y = TRUE)
+   surname nationality deceased                         title     other.author
+1   McNeil   Australia       no     Interactive Data Analysis             <NA>
+2   Ripley          UK       no            Spatial Statistics             <NA>
+3   Ripley          UK       no         Stochastic Simulation             <NA>
+4  Tierney          US       no                     LISP-STAT             <NA>
+5    Tukey          US      yes     Exploratory Data Analysis             <NA>
+6 Venables   Australia       no Modern Applied Statistics ...           Ripley
+7   R Core        <NA>     <NA>          An Introduction to R Venables & Smith
+> 
+> ## empty d.f. :
+> merge(authors, b2[7,])
+[1] surname      nationality  deceased     title        other.author
+<0 rows> (or 0-length row.names)
+> 
+> merge(authors, b2[7,], all.y = TRUE)
+  surname nationality deceased                title     other.author
+1  R Core        <NA>     <NA> An Introduction to R Venables & Smith
+> merge(authors, b2[7,], all.x = TRUE)
+   surname nationality deceased title other.author
+1   McNeil   Australia       no  <NA>         <NA>
+2   Ripley          UK       no  <NA>         <NA>
+3  Tierney          US       no  <NA>         <NA>
+4    Tukey          US      yes  <NA>         <NA>
+5 Venables   Australia       no  <NA>         <NA>
+> ## end of moved from merge.Rd
+> 
+> ## NA
+> is.na(c(1,NA))
+[1] FALSE  TRUE
+> is.na(paste(c(1,NA)))
+[1] FALSE FALSE
+> is.na(list())# logical(0)
+logical(0)
+> ll <- list(pi,"C",NaN,Inf, 1:3, c(0,NA), NA)
+> is.na (ll)
+[1] FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE
+> lapply(ll, is.nan)  # is.nan no longer works on lists
+[[1]]
+[1] FALSE
+
+[[2]]
+[1] FALSE
+
+[[3]]
+[1] TRUE
+
+[[4]]
+[1] FALSE
+
+[[5]]
+[1] FALSE FALSE FALSE
+
+[[6]]
+[1] FALSE FALSE
+
+[[7]]
+[1] FALSE
+
+> ## end of moved from NA.Rd
+> 
+> ## is.na was returning unset values on nested lists
+> ll <- list(list(1))
+> for (i in 1:5) print(as.integer(is.na(ll)))
+[1] 0
+[1] 0
+[1] 0
+[1] 0
+[1] 0
+> 
+> ## scale
+> ## test out NA handling
+> tm <- matrix(c(2,1,0,1,0,NA,NA,NA,0), nrow=3)
+> scale(tm, , FALSE)
+     [,1] [,2] [,3]
+[1,]    1  0.5   NA
+[2,]    0 -0.5   NA
+[3,]   -1   NA    0
+attr(,"scaled:center")
+[1] 1.0 0.5 0.0
+> scale(tm)
+     [,1]       [,2] [,3]
+[1,]    1  0.7071068   NA
+[2,]    0 -0.7071068   NA
+[3,]   -1         NA  NaN
+attr(,"scaled:center")
+[1] 1.0 0.5 0.0
+attr(,"scaled:scale")
+[1] 1.0000000 0.7071068 0.0000000
+> ## end of moved from scale.Rd
+> 
+> ## tabulate
+> tabulate(numeric(0))
+[1] 0
+> ## end of moved from tabulate.Rd
+> 
+> ## ts
+> # Ensure working arithmetic for `ts' objects :
+> stopifnot(z == z)
+> stopifnot(z-z == 0)
+> 
+> ts(1:5, start=2, end=4) # truncate
+Time Series:
+Start = 2 
+End = 4 
+Frequency = 1 
+[1] 1 2 3
+> ts(1:5, start=3, end=17)# repeat
+Time Series:
+Start = 3 
+End = 17 
+Frequency = 1 
+ [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
+> ## end of moved from ts.Rd
+> 
+> ### end of moved
+> 
+> 
+> ## PR 715 (Printing list elements w/attributes)
+> ##
+> l <- list(a=10)
+> attr(l$a, "xx") <- 23
+> l
+$a
+[1] 10
+attr(,"xx")
+[1] 23
+
+> ## Comments:
+> ## should print as
+> # $a:
+> # [1] 10
+> # attr($a, "xx"):
+> # [1] 23
+> 
+> ## On the other hand
+> m <- matrix(c(1, 2, 3, 0, 10, NA), 3, 2)
+> na.omit(m)
+     [,1] [,2]
+[1,]    1    0
+[2,]    2   10
+attr(,"na.action")
+[1] 3
+attr(,"class")
+[1] "omit"
+> ## should print as
+> #      [,1] [,2]
+> # [1,]    1    0
+> # [2,]    2   10
+> # attr(,"na.action")
+> # [1] 3
+> # attr(,"na.action")
+> # [1] "omit"
+> 
+> ## and
+> x <- 1
+> attr(x, "foo") <- list(a="a")
+> x
+[1] 1
+attr(,"foo")
+attr(,"foo")$a
+[1] "a"
+
+> ## should print as
+> # [1] 1
+> # attr(,"foo")
+> # attr(,"foo")$a
+> # [1] "a"
+> 
+> 
+> ## PR 746 (printing of lists)
+> ##
+> test.list <- list(A = list(formula=Y~X, subset=TRUE),
++                   B = list(formula=Y~X, subset=TRUE))
+> 
+> test.list
+$A
+$A$formula
+Y ~ X
+
+$A$subset
+[1] TRUE
+
+
+$B
+$B$formula
+Y ~ X
+
+$B$subset
+[1] TRUE
+
+
+> ## Comments:
+> ## should print as
+> # $A
+> # $A$formula
+> # Y ~ X
+> #
+> # $A$subset
+> # [1] TRUE
+> #
+> #
+> # $B
+> # $B$formula
+> # Y ~ X
+> #
+> # $B$subset
+> # [1] TRUE
+> 
+> ## Marc Feldesman 2001-Feb-01.  Precision in summary.data.frame & *.matrix
+> summary(attenu)
+     event            mag           station         dist       
+ Min.   : 1.00   Min.   :5.000   117    :  5   Min.   :  0.50  
+ 1st Qu.: 9.00   1st Qu.:5.300   1028   :  4   1st Qu.: 11.32  
+ Median :18.00   Median :6.100   113    :  4   Median : 23.40  
+ Mean   :14.74   Mean   :6.084   112    :  3   Mean   : 45.60  
+ 3rd Qu.:20.00   3rd Qu.:6.600   135    :  3   3rd Qu.: 47.55  
+ Max.   :23.00   Max.   :7.700   (Other):147   Max.   :370.00  
+                                 NA's   : 16                   
+     accel        
+ Min.   :0.00300  
+ 1st Qu.:0.04425  
+ Median :0.11300  
+ Mean   :0.15422  
+ 3rd Qu.:0.21925  
+ Max.   :0.81000  
+                  
+> summary(attenu, digits = 5)
+     event             mag            station         dist        
+ Min.   : 1.000   Min.   :5.0000   117    :  5   Min.   :  0.500  
+ 1st Qu.: 9.000   1st Qu.:5.3000   1028   :  4   1st Qu.: 11.325  
+ Median :18.000   Median :6.1000   113    :  4   Median : 23.400  
+ Mean   :14.742   Mean   :6.0841   112    :  3   Mean   : 45.603  
+ 3rd Qu.:20.000   3rd Qu.:6.6000   135    :  3   3rd Qu.: 47.550  
+ Max.   :23.000   Max.   :7.7000   (Other):147   Max.   :370.000  
+                                   NA's   : 16                    
+     accel        
+ Min.   :0.00300  
+ 1st Qu.:0.04425  
+ Median :0.11300  
+ Mean   :0.15422  
+ 3rd Qu.:0.21925  
+ Max.   :0.81000  
+                  
+> summary(data.matrix(attenu), digits = 5)# the same for matrix
+     event             mag            station             dist        
+ Min.   : 1.000   Min.   :5.0000   Min.   :  1.000   Min.   :  0.500  
+ 1st Qu.: 9.000   1st Qu.:5.3000   1st Qu.: 24.250   1st Qu.: 11.325  
+ Median :18.000   Median :6.1000   Median : 56.500   Median : 23.400  
+ Mean   :14.742   Mean   :6.0841   Mean   : 56.928   Mean   : 45.603  
+ 3rd Qu.:20.000   3rd Qu.:6.6000   3rd Qu.: 86.750   3rd Qu.: 47.550  
+ Max.   :23.000   Max.   :7.7000   Max.   :117.000   Max.   :370.000  
+                                   NA's   :16                         
+     accel        
+ Min.   :0.00300  
+ 1st Qu.:0.04425  
+ Median :0.11300  
+ Mean   :0.15422  
+ 3rd Qu.:0.21925  
+ Max.   :0.81000  
+                  
+> ## Comments:
+> ## No difference between these in 1.2.1 and earlier
+> set.seed(1)
+> x <- c(round(runif(10), 2), 10000)
+> summary(x)
+     Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
+    0.060     0.320     0.630   909.600     0.905 10000.000 
+> summary(data.frame(x))
+       x            
+ Min.   :    0.060  
+ 1st Qu.:    0.320  
+ Median :    0.630  
+ Mean   :  909.592  
+ 3rd Qu.:    0.905  
+ Max.   :10000.000  
+> ## Comments:
+> ## All entries show all 3 digits after the decimal point now.
+> 
+> ## Chong Gu 2001-Feb-16.  step on binomials
+> detg1 <-
++ structure(list(Temp = structure(c(2L, 1L, 2L, 1L, 2L, 1L, 2L,
++     1L, 2L, 1L, 2L, 1L), .Label = c("High", "Low"), class = "factor"),
++     M.user = structure(c(1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L,
++     1L, 2L, 2L), .Label = c("N", "Y"), class = "factor"),
++     Soft = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L),
++     .Label = c("Hard", "Medium", "Soft"), class = "factor"),
++     M = c(42, 30, 52, 43,
++     50, 23, 55, 47, 53, 27, 49, 29), X = c(68, 42, 37, 24, 66,
++     33, 47, 23, 63, 29, 57, 19)), .Names = c("Temp", "M.user",
++ "Soft", "M", "X"), class = "data.frame", row.names = c("1", "3",
++ "5", "7", "9", "11", "13", "15", "17", "19", "21", "23"))
+> detg1.m0 <- glm(cbind(X,M)~1,binomial,detg1)
+> detg1.m0
+
+Call:  glm(formula = cbind(X, M) ~ 1, family = binomial, data = detg1)
+
+Coefficients:
+(Intercept)  
+    0.01587  
+
+Degrees of Freedom: 11 Total (i.e. Null);  11 Residual
+Null Deviance:	    32.83 
+Residual Deviance: 32.83 	AIC: 92.52
+> step(detg1.m0,scope=list(upper=~M.user*Temp*Soft))
+Start:  AIC=92.52
+cbind(X, M) ~ 1
+
+         Df Deviance    AIC
++ M.user  1   12.244 73.942
++ Temp    1   28.464 90.162
+<none>        32.826 92.524
++ Soft    2   32.430 96.128
+
+Step:  AIC=73.94
+cbind(X, M) ~ M.user
+
+         Df Deviance    AIC
++ Temp    1    8.444 72.142
+<none>        12.244 73.942
++ Soft    2   11.967 77.665
+- M.user  1   32.826 92.524
+
+Step:  AIC=72.14
+cbind(X, M) ~ M.user + Temp
+
+              Df Deviance    AIC
++ M.user:Temp  1    5.656 71.354
+<none>              8.444 72.142
+- Temp         1   12.244 73.942
++ Soft         2    8.228 75.926
+- M.user       1   28.464 90.162
+
+Step:  AIC=71.35
+cbind(X, M) ~ M.user + Temp + M.user:Temp
+
+              Df Deviance    AIC
+<none>             5.6560 71.354
+- M.user:Temp  1   8.4440 72.142
++ Soft         2   5.4952 75.193
+
+Call:  glm(formula = cbind(X, M) ~ M.user + Temp + M.user:Temp, family = binomial, 
+    data = detg1)
+
+Coefficients:
+    (Intercept)          M.userY          TempLow  M.userY:TempLow  
+        0.26236         -0.85183          0.04411          0.44427  
+
+Degrees of Freedom: 11 Total (i.e. Null);  8 Residual
+Null Deviance:	    32.83 
+Residual Deviance: 5.656 	AIC: 71.35
+> 
+> ## PR 829 (empty values in all.vars)
+> ## This example by Uwe Ligges <ligges@statistik.uni-dortmund.de>
+> 
+> temp <- matrix(1:4, 2)
+> all.vars(temp ~ 3) # OK
+[1] "temp"
+> all.vars(temp[1, ] ~ 3) # wrong in 1.2.1
+[1] "temp"
+> 
+> ## 2001-Feb-22 from David Scott.
+> ## rank-deficient residuals in a manova model.
+> gofX.df<-
++   structure(list(A = c(0.696706709347165, 0.362357754476673,
++ -0.0291995223012888,
++ 0.696706709347165, 0.696706709347165, -0.0291995223012888, 0.696706709347165,
++ -0.0291995223012888, 0.362357754476673, 0.696706709347165, -0.0291995223012888,
++ 0.362357754476673, -0.416146836547142, 0.362357754476673, 0.696706709347165,
++ 0.696706709347165, 0.362357754476673, -0.416146836547142, -0.0291995223012888,
++ -0.416146836547142, 0.696706709347165, -0.416146836547142, 0.362357754476673,
++ -0.0291995223012888), B = c(0.717356090899523, 0.932039085967226,
++ 0.999573603041505, 0.717356090899523, 0.717356090899523, 0.999573603041505,
++ 0.717356090899523, 0.999573603041505, 0.932039085967226, 0.717356090899523,
++ 0.999573603041505, 0.932039085967226, 0.909297426825682, 0.932039085967226,
++ 0.717356090899523, 0.717356090899523, 0.932039085967226, 0.909297426825682,
++ 0.999573603041505, 0.909297426825682, 0.717356090899523, 0.909297426825682,
++ 0.932039085967226, 0.999573603041505), C = c(-0.0291995223012888,
++ -0.737393715541246, -0.998294775794753, -0.0291995223012888,
++ -0.0291995223012888, -0.998294775794753, -0.0291995223012888,
++ -0.998294775794753, -0.737393715541246, -0.0291995223012888,
++ -0.998294775794753, -0.737393715541246, -0.653643620863612, -0.737393715541246,
++ -0.0291995223012888, -0.0291995223012888, -0.737393715541246,
++ -0.653643620863612, -0.998294775794753, -0.653643620863612,
++ -0.0291995223012888,
++ -0.653643620863612, -0.737393715541246, -0.998294775794753),
++     D = c(0.999573603041505, 0.67546318055115, -0.0583741434275801,
++     0.999573603041505, 0.999573603041505, -0.0583741434275801,
++     0.999573603041505, -0.0583741434275801, 0.67546318055115,
++     0.999573603041505, -0.0583741434275801, 0.67546318055115,
++     -0.756802495307928, 0.67546318055115, 0.999573603041505,
++     0.999573603041505, 0.67546318055115, -0.756802495307928,
++     -0.0583741434275801, -0.756802495307928, 0.999573603041505,
++     -0.756802495307928, 0.67546318055115, -0.0583741434275801
++     ), groups = structure(c(1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
++     2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3), class = "factor", .Label = c("1",
++     "2", "3"))), .Names = c("A", "B", "C", "D", "groups"), row.names = 1:24,
++             class = "data.frame")
+> 
+> gofX.manova <- manova(formula = cbind(A, B, C, D) ~ groups, data = gofX.df)
+> try(summary(gofX.manova))
+Error in summary.manova(gofX.manova) : residuals have rank 3 < 4
+> ## should fail with an error message `residuals have rank 3 < 4'
+> 
+> ## Prior to 1.3.0 dist did not handle missing values, and the
+> ## internal C code was incorrectly scaling for missing values.
+> z <- as.matrix(t(trees))
+> z[1,1] <- z[2,2] <- z[3,3] <- z[2,4] <- NA
+> dist(z, method="euclidean")
+          Girth   Height
+Height 352.4365         
+Volume 123.5503 261.5802
+> dist(z, method="maximum")
+       Girth Height
+Height  72.7       
+Volume  56.4   63.3
+> dist(z, method="manhattan")
+           Girth    Height
+Height 1954.8821          
+Volume  557.1448 1392.3429
+> dist(z, method="canberra")
+          Girth   Height
+Height 21.66477         
+Volume 10.96200 13.63365
+> 
+> ## F. Tusell 2001-03-07.  printing kernels.
+> kernel("daniell", m=5)
+Daniell(5) 
+coef[-5] = 0.09091
+coef[-4] = 0.09091
+coef[-3] = 0.09091
+coef[-2] = 0.09091
+coef[-1] = 0.09091
+coef[ 0] = 0.09091
+coef[ 1] = 0.09091
+coef[ 2] = 0.09091
+coef[ 3] = 0.09091
+coef[ 4] = 0.09091
+coef[ 5] = 0.09091
+> kernel("modified.daniell", m=5)
+mDaniell(5) 
+coef[-5] = 0.05
+coef[-4] = 0.10
+coef[-3] = 0.10
+coef[-2] = 0.10
+coef[-1] = 0.10
+coef[ 0] = 0.10
+coef[ 1] = 0.10
+coef[ 2] = 0.10
+coef[ 3] = 0.10
+coef[ 4] = 0.10
+coef[ 5] = 0.05
+> kernel("daniell", m=c(3,5,7))
+Daniell(3,5,7) 
+coef[-15] = 0.0008658
+coef[-14] = 0.0025974
+coef[-13] = 0.0051948
+coef[-12] = 0.0086580
+coef[-11] = 0.0129870
+coef[-10] = 0.0181818
+coef[ -9] = 0.0242424
+coef[ -8] = 0.0303030
+coef[ -7] = 0.0363636
+coef[ -6] = 0.0424242
+coef[ -5] = 0.0484848
+coef[ -4] = 0.0536797
+coef[ -3] = 0.0580087
+coef[ -2] = 0.0614719
+coef[ -1] = 0.0640693
+coef[  0] = 0.0649351
+coef[  1] = 0.0640693
+coef[  2] = 0.0614719
+coef[  3] = 0.0580087
+coef[  4] = 0.0536797
+coef[  5] = 0.0484848
+coef[  6] = 0.0424242
+coef[  7] = 0.0363636
+coef[  8] = 0.0303030
+coef[  9] = 0.0242424
+coef[ 10] = 0.0181818
+coef[ 11] = 0.0129870
+coef[ 12] = 0.0086580
+coef[ 13] = 0.0051948
+coef[ 14] = 0.0025974
+coef[ 15] = 0.0008658
+> ## fixed by patch from Adrian Trapletti 2001-03-08
+> 
+> ## Start new year (i.e. line) at Jan:
+> (tt <- ts(1:10, start = c(1920,7), end = c(1921,4), freq = 12))
+     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
+1920                           1   2   3   4   5   6
+1921   7   8   9  10                                
+> cbind(tt, tt + 1)
+         tt tt + 1
+Jul 1920  1      2
+Aug 1920  2      3
+Sep 1920  3      4
+Oct 1920  4      5
+Nov 1920  5      6
+Dec 1920  6      7
+Jan 1921  7      8
+Feb 1921  8      9
+Mar 1921  9     10
+Apr 1921 10     11
+> 
+> 
+> ## PR 883 (cor(x,y) when is.null(y))
+> try(cov(rnorm(10), NULL))
+Error in cov(rnorm(10), NULL) : 
+  supply both 'x' and 'y' or a matrix-like 'x'
+> try(cor(rnorm(10), NULL))
+Error in cor(rnorm(10), NULL) : 
+  supply both 'x' and 'y' or a matrix-like 'x'
+> ## gave the variance and 1 respectively in 1.2.2.
+> 
+> 
+> ## PR 960 (format() of a character matrix converts to vector)
+> ## example from <John.Peters@tip.csiro.au>
+> a <- matrix(c("axx","b","c","d","e","f","g","h"), nrow=2)
+> format(a)
+     [,1]  [,2]  [,3]  [,4] 
+[1,] "axx" "c  " "e  " "g  "
+[2,] "b  " "d  " "f  " "h  "
+> format(a, justify="right")
+     [,1]  [,2]  [,3]  [,4] 
+[1,] "axx" "  c" "  e" "  g"
+[2,] "  b" "  d" "  f" "  h"
+> ## lost dimensions in 1.2.3
+> 
+> 
+> ## PR 963
+> res <- svd(rbind(1:7))## $v lost dimensions in 1.2.3
+> if(res$u[1,1] < 0) {res$u <- -res$u; res$v <- -res$v}
+> res
+$d
+[1] 11.83216
+
+$u
+     [,1]
+[1,]    1
+
+$v
+           [,1]
+[1,] 0.08451543
+[2,] 0.16903085
+[3,] 0.25354628
+[4,] 0.33806170
+[5,] 0.42257713
+[6,] 0.50709255
+[7,] 0.59160798
+
+> 
+> 
+> ## Make sure  on.exit() keeps being evaluated in the proper env [from PD]:
+> ## A more complete example:
+> g1 <- function(fitted) { on.exit(remove(fitted)); return(function(foo) foo) }
+> g2 <- function(fitted) { on.exit(remove(fitted));        function(foo) foo }
+> f <- function(g) { fitted <- 1; h <- g(fitted); print(fitted)
++                    ls(envir=environment(h)) }
+> f(g1)
+[1] 1
+character(0)
+> f(g2)
+[1] 1
+character(0)
+> 
+> f2 <- function()
++ {
++   g.foo <- g1
++   g.bar <- g2
++   g <- function(x,...) UseMethod("g")
++   fitted <- 1; class(fitted) <- "foo"
++   h <- g(fitted); print(fitted); print(ls(envir=environment(h)))
++   fitted <- 1; class(fitted) <- "bar"
++   h <- g(fitted); print(fitted); print(ls(envir=environment(h)))
++   invisible(NULL)
++ }
+> f2()
+[1] 1
+attr(,"class")
+[1] "foo"
+character(0)
+[1] 1
+attr(,"class")
+[1] "bar"
+character(0)
+> ## The first case in f2() is broken in 1.3.0(-patched).
+> 
+> ## on.exit() consistency check from Luke:
+> g <- function() as.environment(-1)
+> f <- function(x) UseMethod("f")
+> f.foo <- function(x) { on.exit(e <<- g()); NULL }
+> f.bar <- function(x) { on.exit(e <<- g()); return(NULL) }
+> f(structure(1,class = "foo"))
+NULL
+> ls(env = e)# only "x", i.e. *not* the GlobalEnv
+[1] "x"
+> f(structure(1,class = "bar"))
+NULL
+> stopifnot("x" == ls(env = e))# as above; wrongly was .GlobalEnv in R 1.3.x
+> 
+> 
+> ## some tests that R supports logical variables in formulae
+> ## it coerced them to numeric prior to 1.4.0
+> ## they should appear like 2-level factors, following S
+> 
+> oldCon <- options("contrasts")
+> y <- rnorm(10)
+> x <- rep(c(TRUE, FALSE), 5)
+> model.matrix(y ~ x)
+   (Intercept) xTRUE
+1            1     1
+2            1     0
+3            1     1
+4            1     0
+5            1     1
+6            1     0
+7            1     1
+8            1     0
+9            1     1
+10           1     0
+attr(,"assign")
+[1] 0 1
+attr(,"contrasts")
+attr(,"contrasts")$x
+[1] "contr.treatment"
+
+> lm(y ~ x)
+
+Call:
+lm(formula = y ~ x)
+
+Coefficients:
+(Intercept)        xTRUE  
+   -0.05293     -0.20018  
+
+> DF <- data.frame(x, y)
+> lm(y ~ x, data=DF)
+
+Call:
+lm(formula = y ~ x, data = DF)
+
+Coefficients:
+(Intercept)        xTRUE  
+   -0.05293     -0.20018  
+
+> options(contrasts=c("contr.helmert", "contr.poly"))
+> model.matrix(y ~ x)
+   (Intercept) x1
+1            1  1
+2            1 -1
+3            1  1
+4            1 -1
+5            1  1
+6            1 -1
+7            1  1
+8            1 -1
+9            1  1
+10           1 -1
+attr(,"assign")
+[1] 0 1
+attr(,"contrasts")
+attr(,"contrasts")$x
+[1] "contr.helmert"
+
+> lm(y ~ x, data=DF)
+
+Call:
+lm(formula = y ~ x, data = DF)
+
+Coefficients:
+(Intercept)           x1  
+    -0.1530      -0.1001  
+
+> z <- 1:10
+> lm(y ~ x*z)
+
+Call:
+lm(formula = y ~ x * z)
+
+Coefficients:
+(Intercept)           x1            z         x1:z  
+  -0.088089    -0.508170    -0.005102     0.073733  
+
+> lm(y ~ x*z - 1)
+
+Call:
+lm(formula = y ~ x * z - 1)
+
+Coefficients:
+   xFALSE      xTRUE          z       x1:z  
+ 0.420081  -0.596259  -0.005102   0.073733  
+
+> options(oldCon)
+> 
+> ## diffinv, Adrian Trapletti, 2001-08-27
+> x <- ts(1:10)
+> diffinv(diff(x),xi=x[1])
+Time Series:
+Start = 1 
+End = 10 
+Frequency = 1 
+ [1]  1  2  3  4  5  6  7  8  9 10
+> diffinv(diff(x,lag=1,differences=2),lag=1,differences=2,xi=x[1:2])
+Time Series:
+Start = 1 
+End = 10 
+Frequency = 1 
+ [1]  1  2  3  4  5  6  7  8  9 10
+> ## last had wrong start and end
+> 
+> ## PR#1072  (Reading Inf and NaN values)
+> as.numeric(as.character(NaN))
+[1] NaN
+> as.numeric(as.character(Inf))
+[1] Inf
+> ## were NA on Windows at least under 1.3.0.
+> 
+> ## PR#1092 (rowsum dimnames)
+> rowsum(matrix(1:12, 3,4), c("Y","X","Y"))
+  [,1] [,2] [,3] [,4]
+X    2    5    8   11
+Y    4   10   16   22
+> ## rownames were 1,2 in <= 1.3.1.
+> 
+> ## PR#1115 (saving strings with ascii=TRUE)
+> x <- y <- unlist(as.list(
++     parse(text=paste("\"\\", as.character(as.octmode(1:255)), "\"",sep=""))))
+> save(x, ascii=TRUE, file=(fn <- tempfile()))
+> load(fn)
+> all(x==y)
+[1] TRUE
+> unlink(fn)
+> ## 1.3.1 had trouble with \
+> 
+> 
+> ## Some tests of sink() and connections()
+> ## capture all the output to a file.
+> zz <- file("all.Rout", open="wt")
+> sink(zz)
+> sink(zz, type="message")
+> try(log("a"))
+> ## back to the console
+> sink(type="message")
+> sink()
+> try(log("a"))
+Error in log("a") : non-numeric argument to mathematical function
+> 
+> ## capture all the output to a file.
+> zz <- file("all.Rout", open="wt")
+> sink(zz)
+> sink(zz, type="message")
+> try(log("a"))
+> 
+> ## bail out
+> closeAllConnections()
+> (foo <- showConnections())
+     description class mode text isopen can read can write
+> stopifnot(nrow(foo) == 0)
+> try(log("a"))
+Error in log("a") : non-numeric argument to mathematical function
+> unlink("all.Rout")
+> ## many of these were untested before 1.4.0.
+> 
+> 
+> ## test mean() works on logical but not factor
+> x <- c(TRUE, FALSE, TRUE, TRUE)
+> mean(x)
+[1] 0.75
+> mean(as.factor(x))
+[1] NA
+Warning message:
+In mean.default(as.factor(x)) :
+  argument is not numeric or logical: returning NA
+> ## last had confusing error message in 1.3.1.
+> 
+> 
+> ## Kurt Hornik 2001-Nov-13
+> z <- table(x = 1:2, y = 1:2)
+> z - 1
+   y
+x    1  2
+  1  0 -1
+  2 -1  0
+> unclass(z - 1)
+   y
+x    1  2
+  1  0 -1
+  2 -1  0
+> ## lost object bit prior to 1.4.0, so printed class attribute.
+> 
+> 
+> ## PR#1226  (predict.mlm ignored newdata)
+> ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
+> trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
+> group <- gl(2,10,20, labels = c("Ctl","Trt"))
+> weight <- c(ctl, trt)
+> data <- data.frame(weight, group)
+> fit <- lm(cbind(w=weight, w2=weight^2) ~ group, data=data)
+> predict(fit, newdata=data[1:2, ])
+      w       w2
+1 5.032 25.62702
+2 5.032 25.62702
+> ## was 20 rows in R <= 1.4.0
+> 
+> 
+> ## Chong Gu 2002-Feb-8: `.' not expanded in drop1
+> lab <- dimnames(HairEyeColor)
+> HairEye <- cbind(expand.grid(Hair=lab$Hair, Eye=lab$Eye, Sex=lab$Sex,
++ 			     stringsAsFactors = TRUE),
++ 		 Fr = as.vector(HairEyeColor))
+> HairEye.fit <- glm(Fr ~ . ^2, poisson, HairEye)
+> drop1(HairEye.fit)
+Single term deletions
+
+Model:
+Fr ~ (Hair + Eye + Sex)^2
+         Df Deviance    AIC
+<none>         6.761 191.64
+Hair:Eye  9  156.678 323.56
+Hair:Sex  3   18.327 197.21
+Eye:Sex   3   11.764 190.64
+> ## broken around 1.2.1 it seems.
+> 
+> 
+> ## PR#1329  (subscripting matrix lists)
+> m <- list(a1=1:3, a2=4:6, a3=pi, a4=c("a","b","c"))
+> dim(m) <- c(2,2)
+> m
+     [,1]      [,2]       
+[1,] Integer,3 3.141593   
+[2,] Integer,3 Character,3
+> m[,2]
+[[1]]
+[1] 3.141593
+
+[[2]]
+[1] "a" "b" "c"
+
+> m[2,2]
+[[1]]
+[1] "a" "b" "c"
+
+> ## 1.4.1 returned null components: the case was missing from a switch.
+> 
+> m <- list(a1=1:3, a2=4:6, a3=pi, a4=c("a","b","c"))
+> matrix(m, 2, 2)
+     [,1]      [,2]       
+[1,] Integer,3 3.141593   
+[2,] Integer,3 Character,3
+> ## 1.4.1 gave `Unimplemented feature in copyVector'
+> 
+> x <- vector("list",6)
+> dim(x) <- c(2,3)
+> x[1,2] <- list(letters[10:11])
+> x
+     [,1] [,2]        [,3]
+[1,] NULL Character,2 NULL
+[2,] NULL NULL        NULL
+> ## 1.4.1 gave `incompatible types in subset assignment'
+> 
+> 
+> ## printing of matrix lists
+> m <- list(as.integer(1), pi, 3+5i, "testit", TRUE, factor("foo"))
+> dim(m) <- c(1, 6)
+> m
+     [,1] [,2]     [,3] [,4]     [,5] [,6]    
+[1,] 1    3.141593 3+5i "testit" TRUE factor,1
+> ## prior to 1.5.0 had quotes for 2D case (but not kD, k > 2),
+> ## gave "numeric,1" etc, (even "numeric,1" for integers and factors)
+> 
+> 
+> ## ensure RNG is unaltered.
+> for(type in c("Wichmann-Hill", "Marsaglia-Multicarry", "Super-Duper",
++               "Mersenne-Twister", "Knuth-TAOCP", "Knuth-TAOCP-2002"))
++ {
++     set.seed(123, type)
++     print(RNGkind())
++     runif(100); print(runif(4))
++     set.seed(1000, type)
++     runif(100); print(runif(4))
++     set.seed(77, type)
++     runif(100); print(runif(4))
++ }
+[1] "Wichmann-Hill" "Inversion"    
+[1] 0.8308841 0.4640221 0.9460082 0.8764644
+[1] 0.12909876 0.07294851 0.45594560 0.68884911
+[1] 0.4062450 0.7188432 0.6241738 0.2511611
+[1] "Marsaglia-Multicarry" "Inversion"           
+[1] 0.3479705 0.9469351 0.2489207 0.7329251
+[1] 0.5041512 0.3617873 0.1469184 0.3798119
+[1] 0.14388128 0.04196294 0.36214015 0.86053575
+[1] "Super-Duper" "Inversion"  
+[1] 0.2722510 0.9230240 0.3971743 0.8284474
+[1] 0.5706241 0.1806023 0.9633860 0.8434444
+[1] 0.09356585 0.41081124 0.38635627 0.72993396
+[1] "Mersenne-Twister" "Inversion"       
+[1] 0.5999890 0.3328235 0.4886130 0.9544738
+[1] 0.5993679 0.4516818 0.1368254 0.7261788
+[1] 0.09594961 0.31235651 0.81244335 0.72330846
+[1] "Knuth-TAOCP" "Inversion"  
+[1] 0.9445502 0.3366297 0.6296881 0.5914161
+[1] 0.9213954 0.5468138 0.8817100 0.4442237
+[1] 0.8016962 0.9226080 0.1473484 0.8827707
+[1] "Knuth-TAOCP-2002" "Inversion"       
+[1] 0.9303634 0.2812239 0.1085806 0.8053228
+[1] 0.2916627 0.9085017 0.7958965 0.1980655
+[1] 0.05247575 0.28290867 0.20930324 0.16794887
+> RNGkind(normal.kind = "Kinderman-Ramage")
+> set.seed(123)
+> RNGkind()
+[1] "Knuth-TAOCP-2002" "Kinderman-Ramage"
+> rnorm(4)
+[1] -1.9699090 -2.2429340  0.5339321  0.2097153
+> RNGkind(normal.kind = "Ahrens-Dieter")
+> set.seed(123)
+> RNGkind()
+[1] "Knuth-TAOCP-2002" "Ahrens-Dieter"   
+> rnorm(4)
+[1]  0.06267229  0.12421568 -1.86653499 -0.14535921
+> RNGkind(normal.kind = "Box-Muller")
+> set.seed(123)
+> RNGkind()
+[1] "Knuth-TAOCP-2002" "Box-Muller"      
+> rnorm(4)
+[1]  2.26160990  0.59010303  0.30176045 -0.01346139
+> set.seed(123)
+> runif(4)
+[1] 0.04062130 0.06511825 0.99290488 0.95540467
+> set.seed(123, "default")
+> set.seed(123, "Marsaglia-Multicarry") ## Careful, not the default anymore
+> runif(4)
+[1] 0.1200427 0.1991600 0.7292821 0.8115922
+> ## last set.seed failed < 1.5.0.
+> 
+> 
+> ## merging, ggrothendieck@yifan.net, 2002-03-16
+> d.df <- data.frame(x = 1:3, y = c("A","D","E"), z = c(6,9,10))
+> merge(d.df[1,], d.df)
+  x y z
+1 1 A 6
+> ## 1.4.1 got confused by inconsistencies in as.character
+> 
+> 
+> ## PR#1394 (levels<-.factor)
+> f <- factor(c("a","b"))
+> levels(f) <- list(C="C", A="a", B="b")
+> f
+[1] A B
+Levels: C A B
+> ## was  [1] C A; Levels:  C A  in 1.4.1
+> 
+> 
+> ## PR#1408 Inconsistencies in sum()
+> x <- as.integer(2^30)
+> sum(x, x)    # did not warn in 1.4.1
+[1] NA
+Warning message:
+In sum(x, x) : Integer overflow - use sum(as.numeric(.))
+> sum(c(x, x)) # did warn
+[1] NA
+Warning message:
+In sum(c(x, x)) : integer overflow - use sum(as.numeric(.))
+> (z <- sum(x, x, 0.0)) # was NA in 1.4.1
+[1] 2147483648
+> typeof(z)
+[1] "double"
+> 
+> 
+> ## NA levels in factors
+> (x <- factor(c("a", "NA", "b"), exclude=NULL))
+[1] a  NA b 
+Levels: NA a b
+> ## 1.4.1 had wrong order for levels
+> is.na(x)[3] <- TRUE
+> x
+[1] a    NA   <NA>
+Levels: NA a b
+> ## missing entry prints as <NA>
+> 
+> 
+> ## printing/formatting NA strings
+> (x <- c("a", "NA", NA, "b"))
+[1] "a"  "NA" NA   "b" 
+> print(x, quote = FALSE)
+[1] a    NA   <NA> b   
+> paste(x)
+[1] "a"  "NA" "NA" "b" 
+> format(x)
+[1] "a " "NA" "NA" "b "
+> format(x, justify = "right")
+[1] " a" "NA" "NA" " b"
+> format(x, justify = "none")
+[1] "a"  "NA" "NA" "b" 
+> ## not ideal.
+> 
+> 
+> ## print.ts problems  ggrothendieck@yifan.net on R-help, 2002-04-01
+> x <- 1:20
+> tt1 <- ts(x,start=c(1960,2), freq=12)
+> tt2 <- ts(10+x,start=c(1960,2), freq=12)
+> cbind(tt1, tt2)
+         tt1 tt2
+Feb 1960   1  11
+Mar 1960   2  12
+Apr 1960   3  13
+May 1960   4  14
+Jun 1960   5  15
+Jul 1960   6  16
+Aug 1960   7  17
+Sep 1960   8  18
+Oct 1960   9  19
+Nov 1960  10  20
+Dec 1960  11  21
+Jan 1961  12  22
+Feb 1961  13  23
+Mar 1961  14  24
+Apr 1961  15  25
+May 1961  16  26
+Jun 1961  17  27
+Jul 1961  18  28
+Aug 1961  19  29
+Sep 1961  20  30
+> ## 1.4.1 had `Jan 1961' as `NA 1961'
+> ## ...and 1.9.1 had it as `Jan 1960'!!
+> 
+> ## glm boundary bugs (related to PR#1331)
+> x <- c(0.35, 0.64, 0.12, 1.66, 1.52, 0.23, -1.99, 0.42, 1.86, -0.02,
++        -1.64, -0.46, -0.1, 1.25, 0.37, 0.31, 1.11, 1.65, 0.33, 0.89,
++        -0.25, -0.87, -0.22, 0.71, -2.26, 0.77, -0.05, 0.32, -0.64, 0.39,
++        0.19, -1.62, 0.37, 0.02, 0.97, -2.62, 0.15, 1.55, -1.41, -2.35,
++        -0.43, 0.57, -0.66, -0.08, 0.02, 0.24, -0.33, -0.03, -1.13, 0.32,
++        1.55, 2.13, -0.1, -0.32, -0.67, 1.44, 0.04, -1.1, -0.95, -0.19,
++        -0.68, -0.43, -0.84, 0.69, -0.65, 0.71, 0.19, 0.45, 0.45, -1.19,
++        1.3, 0.14, -0.36, -0.5, -0.47, -1.31, -1.02, 1.17, 1.51, -0.33,
++        -0.01, -0.59, -0.28, -0.18, -1.07, 0.66, -0.71, 1.88, -0.14,
++        -0.19, 0.84, 0.44, 1.33, -0.2, -0.45, 1.46, 1, -1.02, 0.68, 0.84)
+> y <- c(1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0,
++        0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1,
++        1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1,
++        0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1,
++        1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0)
+> try(glm(y ~ x, family = poisson(identity)))
+Error : no valid set of coefficients has been found: please supply starting values
+In addition: Warning message:
+In log(y/mu) : NaNs produced
+> ## failed because start = NULL in 1.4.1
+> ## now gives useful error message
+> glm(y ~ x, family = poisson(identity), start = c(1,0))
+
+Call:  glm(formula = y ~ x, family = poisson(identity), start = c(1, 
+    0))
+
+Coefficients:
+(Intercept)            x  
+     0.5114       0.1690  
+
+Degrees of Freedom: 99 Total (i.e. Null);  98 Residual
+Null Deviance:	    68.01 
+Residual Deviance: 60.66 	AIC: 168.7
+Warning messages:
+1: step size truncated: out of bounds 
+2: step size truncated: out of bounds 
+> ## step reduction failed in 1.4.1
+> set.seed(123)
+> y <- rpois(100, pmax(3*x, 0))
+> glm(y ~ x, family = poisson(identity), start = c(1,0))
+
+Call:  glm(formula = y ~ x, family = poisson(identity), start = c(1, 
+    0))
+
+Coefficients:
+(Intercept)            x  
+     1.1561       0.4413  
+
+Degrees of Freedom: 99 Total (i.e. Null);  98 Residual
+Null Deviance:	    317.2 
+Residual Deviance: 228.5 	AIC: 344.7
+There were 27 warnings (use warnings() to see them)
+> warnings()
+Warning messages:
+1: step size truncated: out of bounds
+2: step size truncated: out of bounds
+3: step size truncated: out of bounds
+4: step size truncated: out of bounds
+5: step size truncated: out of bounds
+6: step size truncated: out of bounds
+7: step size truncated: out of bounds
+8: step size truncated: out of bounds
+9: step size truncated: out of bounds
+10: step size truncated: out of bounds
+11: step size truncated: out of bounds
+12: step size truncated: out of bounds
+13: step size truncated: out of bounds
+14: step size truncated: out of bounds
+15: step size truncated: out of bounds
+16: step size truncated: out of bounds
+17: step size truncated: out of bounds
+18: step size truncated: out of bounds
+19: step size truncated: out of bounds
+20: step size truncated: out of bounds
+21: step size truncated: out of bounds
+22: step size truncated: out of bounds
+23: step size truncated: out of bounds
+24: step size truncated: out of bounds
+25: step size truncated: out of bounds
+26: glm.fit: algorithm did not converge
+27: glm.fit: algorithm stopped at boundary value
+> 
+> 
+> ## extending char arrrays
+> x <- y <- LETTERS[1:2]
+> x[5] <- "C"
+> length(y) <- 5
+> x
+[1] "A" "B" NA  NA  "C"
+> y
+[1] "A" "B" NA  NA  NA 
+> ## x was filled with "", y with NA in 1.5.0
+> 
+> 
+> ## formula with no intercept, 2002-07-22
+> oldcon <- options(contrasts = c("contr.helmert", "contr.poly"))
+> U <- gl(3, 6, 18, labels=letters[1:3])
+> V <- gl(3, 2, 18, labels=letters[1:3])
+> A <- rep(c(0, 1), 9)
+> B <- rep(c(1, 0), 9)
+> set.seed(1); y <- rnorm(18)
+> terms(y ~ A:U + A:V - 1)
+y ~ A:U + A:V - 1
+attr(,"variables")
+list(y, A, U, V)
+attr(,"factors")
+  A:U A:V
+y   0   0
+A   2   2
+U   2   0
+V   0   1
+attr(,"term.labels")
+[1] "A:U" "A:V"
+attr(,"order")
+[1] 2 2
+attr(,"intercept")
+[1] 0
+attr(,"response")
+[1] 1
+attr(,".Environment")
+<environment: R_GlobalEnv>
+> lm(y ~ A:U + A:V - 1)$coefficients  # 1.5.1 used dummies coding for V
+       A:Ua        A:Ub        A:Uc        A:V1        A:V2 
+ 0.25303884 -0.21875499 -0.71708528 -0.61467193 -0.09030436 
+> lm(y ~ (A + B) : (U + V) - 1) # 1.5.1 used dummies coding for A:V but not B:V
+
+Call:
+lm(formula = y ~ (A + B):(U + V) - 1)
+
+Coefficients:
+   A:Ua     A:Ub     A:Uc     A:V1     A:V2     B:Ua     B:Ub     B:Uc  
+ 0.2530  -0.2188  -0.7171  -0.6147  -0.0903   1.7428   0.0613   0.7649  
+   B:V1     B:V2  
+-0.4420   0.5388  
+
+> options(oldcon)
+> ## 1.5.1 miscomputed the first factor in the formula.
+> 
+> 
+> ## quantile extremes, MM 13 Apr 2000 and PR#1852
+> (qq <- sapply(0:5, function(k) {
++     x <- c(rep(-Inf,k+1), 0:k, rep(Inf, k))
++     sapply(1:9, function(typ)
++            quantile(x, pr=(2:10)/10, type=typ))
++ }, simplify="array"))
+, , 1
+
+     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
+20%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf
+30%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf
+40%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf
+50%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf
+60%     0    0 -Inf -Inf -Inf -Inf -Inf -Inf -Inf
+70%     0    0 -Inf -Inf -Inf    0 -Inf -Inf -Inf
+80%     0    0    0 -Inf    0    0 -Inf    0    0
+90%     0    0    0 -Inf    0    0 -Inf    0    0
+100%    0    0    0    0    0    0    0    0    0
+
+, , 2
+
+     [,1] [,2] [,3] [,4] [,5] [,6] [,7]      [,8]  [,9]
+20%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf      -Inf  -Inf
+30%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf      -Inf  -Inf
+40%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf      -Inf  -Inf
+50%     0  0.0 -Inf -Inf  0.0  0.0  0.0 0.0000000 0.000
+60%     0  0.5    0  0.0  0.5  0.6  0.4 0.5333333 0.525
+70%     1  1.0    1  0.5  1.0  Inf  0.8       Inf   Inf
+80%     1  Inf    1  1.0  Inf  Inf  Inf       Inf   Inf
+90%   Inf  Inf    1  Inf  Inf  Inf  Inf       Inf   Inf
+100%  Inf  Inf  Inf  Inf  Inf  Inf  Inf       Inf   Inf
+
+, , 3
+
+     [,1] [,2] [,3] [,4] [,5] [,6] [,7]     [,8]  [,9]
+20%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf     -Inf  -Inf
+30%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf     -Inf  -Inf
+40%     0  0.0 -Inf -Inf -Inf -Inf -Inf     -Inf  -Inf
+50%     0  0.5    0  0.0  0.5  0.5  0.5 0.500000 0.500
+60%     1  1.0    1  0.8  1.3  1.4  1.2 1.333333 1.325
+70%     2  2.0    2  1.6  Inf  Inf  1.9      Inf   Inf
+80%   Inf  Inf    2  Inf  Inf  Inf  Inf      Inf   Inf
+90%   Inf  Inf  Inf  Inf  Inf  Inf  Inf      Inf   Inf
+100%  Inf  Inf  Inf  Inf  Inf  Inf  Inf      Inf   Inf
+
+, , 4
+
+     [,1] [,2] [,3] [,4] [,5] [,6] [,7]     [,8]  [,9]
+20%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf     -Inf  -Inf
+30%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf     -Inf  -Inf
+40%     0    0 -Inf -Inf -Inf -Inf    0     -Inf  -Inf
+50%     1    1    1  0.5  1.0  1.0    1 1.000000 1.000
+60%     2    2    2  1.6  2.1  2.2    2 2.133333 2.125
+70%     3    3    3  2.7  Inf  Inf    3      Inf   Inf
+80%   Inf  Inf  Inf  Inf  Inf  Inf  Inf      Inf   Inf
+90%   Inf  Inf  Inf  Inf  Inf  Inf  Inf      Inf   Inf
+100%  Inf  Inf  Inf  Inf  Inf  Inf  Inf      Inf   Inf
+
+, , 5
+
+     [,1] [,2] [,3] [,4] [,5] [,6] [,7]       [,8]  [,9]
+20%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf       -Inf  -Inf
+30%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf       -Inf  -Inf
+40%     0  0.0    0 -Inf  0.1  0.0  0.2 0.06666667 0.075
+50%     1  1.5    1  1.0  1.5  1.5  1.5 1.50000000 1.500
+60%     3  3.0    2  2.4  2.9  3.0  2.8 2.93333333 2.925
+70%     4  4.0    4  3.8  Inf  Inf  Inf        Inf   Inf
+80%   Inf  Inf  Inf  Inf  Inf  Inf  Inf        Inf   Inf
+90%   Inf  Inf  Inf  Inf  Inf  Inf  Inf        Inf   Inf
+100%  Inf  Inf  Inf  Inf  Inf  Inf  Inf        Inf   Inf
+
+, , 6
+
+     [,1] [,2] [,3] [,4] [,5] [,6] [,7]      [,8]  [,9]
+20%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf      -Inf  -Inf
+30%  -Inf -Inf -Inf -Inf -Inf -Inf -Inf      -Inf  -Inf
+40%     0    0    0 -Inf  0.3  0.2  0.4 0.2666667 0.275
+50%     2    2    1  1.5  2.0  2.0  2.0 2.0000000 2.000
+60%     4    4    3  3.2  3.7  3.8  3.6 3.7333333 3.725
+70%     5    5    5  4.9  Inf  Inf  Inf       Inf   Inf
+80%   Inf  Inf  Inf  Inf  Inf  Inf  Inf       Inf   Inf
+90%   Inf  Inf  Inf  Inf  Inf  Inf  Inf       Inf   Inf
+100%  Inf  Inf  Inf  Inf  Inf  Inf  Inf       Inf   Inf
+
+> x <- c(-Inf, -Inf, Inf, Inf)
+> median(x)
+[1] NaN
+> quantile(x)
+  0%  25%  50%  75% 100% 
+-Inf -Inf  NaN  Inf  Inf 
+> ## 1.5.1 had -Inf not NaN in several places
+> 
+> 
+> ## NAs in matrix dimnames
+> z <- matrix(1:9, 3, 3)
+> dimnames(z) <- list(c("x", "y", NA), c(1, NA, 3))
+> z
+     1 <NA> 3
+x    1    4 7
+y    2    5 8
+<NA> 3    6 9
+> ## NAs in dimnames misaligned when printing in 1.5.1
+> 
+> 
+> ## weighted aov (PR#1930)
+> r <- c(10,23,23,26,17,5,53,55,32,46,10,8,10,8,23,0,3,22,15,32,3)
+> n <- c(39,62,81,51,39,6,74,72,51,79,13,16,30,28,45,4,12,41,30,51,7)
+> trt <- factor(rep(1:4,c(5,6,5,5)))
+> Y <- r/n
+> z <- aov(Y ~ trt, weights=n)
+> ## 1.5.1 gave unweighted RSS
+> 
+> 
+> ## rbind (PR#2266)
+> test <- as.data.frame(matrix(1:25, 5, 5))
+> test1 <- matrix(-(1:10), 2, 5)
+> rbind(test, test1)
+  V1 V2 V3 V4  V5
+1  1  6 11 16  21
+2  2  7 12 17  22
+3  3  8 13 18  23
+4  4  9 14 19  24
+5  5 10 15 20  25
+6 -1 -3 -5 -7  -9
+7 -2 -4 -6 -8 -10
+> rbind(test1, test)
+  V1 V2 V3 V4  V5
+1 -1 -3 -5 -7  -9
+2 -2 -4 -6 -8 -10
+3  1  6 11 16  21
+4  2  7 12 17  22
+5  3  8 13 18  23
+6  4  9 14 19  24
+7  5 10 15 20  25
+> ## 1.6.1 treated matrix as a vector.
+> 
+> 
+> ## escapes in non-quoted printing
+> x <- "\\abc\\"
+> names(x) <- 1
+> x
+        1 
+"\\abc\\" 
+> print(x, quote=FALSE)
+      1 
+\\abc\\ 
+> ## 1.6.2 had label misaligned
+> 
+> 
+> ## summary on data frames containing data frames (PR#1891)
+> x <- data.frame(1:10)
+> x$z <- data.frame(x=1:10,yyy=11:20)
+> summary(x)
+     X1.10             z.x             z.yyy     
+ Min.   : 1.00   Min.   : 1.00    Min.   :11.00  
+ 1st Qu.: 3.25   1st Qu.: 3.25    1st Qu.:13.25  
+ Median : 5.50   Median : 5.50    Median :15.50  
+ Mean   : 5.50   Mean   : 5.50    Mean   :15.50  
+ 3rd Qu.: 7.75   3rd Qu.: 7.75    3rd Qu.:17.75  
+ Max.   :10.00   Max.   :10.00    Max.   :20.00  
+> ## 1.6.2 had NULL labels on output with z columns stacked.
+> 
+> 
+> ## re-orderings in terms.formula (PR#2206)
+> form <- formula(y ~ a + b:c + d + e + e:d)
+> (tt <- terms(form))
+y ~ a + b:c + d + e + e:d
+attr(,"variables")
+list(y, a, b, c, d, e)
+attr(,"factors")
+  a d e b:c d:e
+y 0 0 0   0   0
+a 1 0 0   0   0
+b 0 0 0   2   0
+c 0 0 0   2   0
+d 0 1 0   0   1
+e 0 0 1   0   1
+attr(,"term.labels")
+[1] "a"   "d"   "e"   "b:c" "d:e"
+attr(,"order")
+[1] 1 1 1 2 2
+attr(,"intercept")
+[1] 1
+attr(,"response")
+[1] 1
+attr(,".Environment")
+<environment: R_GlobalEnv>
+> (tt2 <- terms(formula(tt)))
+y ~ a + b:c + d + e + e:d
+attr(,"variables")
+list(y, a, b, c, d, e)
+attr(,"factors")
+  a d e b:c d:e
+y 0 0 0   0   0
+a 1 0 0   0   0
+b 0 0 0   2   0
+c 0 0 0   2   0
+d 0 1 0   0   1
+e 0 0 1   0   1
+attr(,"term.labels")
+[1] "a"   "d"   "e"   "b:c" "d:e"
+attr(,"order")
+[1] 1 1 1 2 2
+attr(,"intercept")
+[1] 1
+attr(,"response")
+[1] 1
+attr(,".Environment")
+<environment: R_GlobalEnv>
+> stopifnot(identical(tt, tt2))
+> terms(delete.response(tt))
+~a + b:c + d + e + e:d
+attr(,"variables")
+list(a, b, c, d, e)
+attr(,"factors")
+  a d e b:c d:e
+a 1 0 0   0   0
+b 0 0 0   2   0
+c 0 0 0   2   0
+d 0 1 0   0   1
+e 0 0 1   0   1
+attr(,"term.labels")
+[1] "a"   "d"   "e"   "b:c" "d:e"
+attr(,"order")
+[1] 1 1 1 2 2
+attr(,"intercept")
+[1] 1
+attr(,"response")
+[1] 0
+attr(,".Environment")
+<environment: R_GlobalEnv>
+> ## both tt and tt2 re-ordered the formula < 1.7.0
+> ## now try with a dot
+> terms(breaks ~ ., data = warpbreaks)
+breaks ~ wool + tension
+attr(,"variables")
+list(breaks, wool, tension)
+attr(,"factors")
+        wool tension
+breaks     0       0
+wool       1       0
+tension    0       1
+attr(,"term.labels")
+[1] "wool"    "tension"
+attr(,"order")
+[1] 1 1
+attr(,"intercept")
+[1] 1
+attr(,"response")
+[1] 1
+attr(,".Environment")
+<environment: R_GlobalEnv>
+> terms(breaks ~ . - tension, data = warpbreaks)
+breaks ~ (wool + tension) - tension
+attr(,"variables")
+list(breaks, wool, tension)
+attr(,"factors")
+        wool
+breaks     0
+wool       1
+tension    0
+attr(,"term.labels")
+[1] "wool"
+attr(,"order")
+[1] 1
+attr(,"intercept")
+[1] 1
+attr(,"response")
+[1] 1
+attr(,".Environment")
+<environment: R_GlobalEnv>
+> terms(breaks ~ . - tension, data = warpbreaks, simplify = TRUE)
+breaks ~ wool
+attr(,"variables")
+list(breaks, wool, tension)
+attr(,"factors")
+        wool
+breaks     0
+wool       1
+tension    0
+attr(,"term.labels")
+[1] "wool"
+attr(,"order")
+[1] 1
+attr(,"intercept")
+[1] 1
+attr(,"response")
+[1] 1
+attr(,".Environment")
+<environment: R_GlobalEnv>
+> terms(breaks ~ . ^2, data = warpbreaks)
+breaks ~ (wool + tension)^2
+attr(,"variables")
+list(breaks, wool, tension)
+attr(,"factors")
+        wool tension wool:tension
+breaks     0       0            0
+wool       1       0            1
+tension    0       1            1
+attr(,"term.labels")
+[1] "wool"         "tension"      "wool:tension"
+attr(,"order")
+[1] 1 1 2
+attr(,"intercept")
+[1] 1
+attr(,"response")
+[1] 1
+attr(,".Environment")
+<environment: R_GlobalEnv>
+> terms(breaks ~ . ^2, data = warpbreaks, simplify = TRUE)
+breaks ~ wool + tension + wool:tension
+attr(,"variables")
+list(breaks, wool, tension)
+attr(,"factors")
+        wool tension wool:tension
+breaks     0       0            0
+wool       1       0            1
+tension    0       1            1
+attr(,"term.labels")
+[1] "wool"         "tension"      "wool:tension"
+attr(,"order")
+[1] 1 1 2
+attr(,"intercept")
+[1] 1
+attr(,"response")
+[1] 1
+attr(,".Environment")
+<environment: R_GlobalEnv>
+> ## 1.6.2 expanded these formulae out as in simplify = TRUE
+> 
+> 
+> ## printing attributes (PR#2506)
+> (x <- structure(1:4, other=as.factor(LETTERS[1:3])))
+[1] 1 2 3 4
+attr(,"other")
+[1] A B C
+Levels: A B C
+> ## < 1.7.0 printed the codes of the factor attribute
+> 
+> 
+> ## add logical matrix replacement indexing for data frames
+> TEMP <- data.frame(VAR1=c(1,2,3,4,5), VAR2=c(5,4,3,2,1), VAR3=c(1,1,1,1,NA))
+> TEMP[,c(1,3)][TEMP[,c(1,3)]==1 & !is.na(TEMP[,c(1,3)])] < -10
+[1] FALSE FALSE FALSE FALSE FALSE
+> TEMP
+  VAR1 VAR2 VAR3
+1    1    5    1
+2    2    4    1
+3    3    3    1
+4    4    2    1
+5    5    1   NA
+> ##
+> 
+> ## moved from reg-plot.R as exact output depends on rounding error
+> ## PR 390 (axis for small ranges)
+> 
+> relrange <- function(x) {
++     ## The relative range in EPS units
++     r <- range(x)
++     diff(r)/max(abs(r))/.Machine$double.eps
++ }
+> 
+> x <- c(0.12345678912345678,
++        0.12345678912345679,
++        0.12345678912345676)
+> # relrange(x) ## 1.0125, but depends on strtod
+> plot(x) # `extra horizontal' ;  +- ok on Solaris; label off on Linux
+> 
+> y <- c(0.9999563255363383973418,
++        0.9999563255363389524533,
++        0.9999563255363382863194)
+> ## The relative range number:
+> # relrange(y) ## 3.000131, but depends on strtod
+> plot(y)# once gave infinite loop on Solaris [TL];  y-axis too long
+> 
+> ## Comments: The whole issue was finally deferred to main/graphics.c l.1944
+> ##    error("relative range of values is too small to compute accurately");
+> ## which is not okay.
+> 
+> set.seed(101)
+> par(mfrow = c(3,3))
+> for(j.fac in 1e-12* c(10, 1, .7, .3, .2, .1, .05, .03, .01)) {
++ ##           ====
++     #set.seed(101) # or don't
++     x <- pi + jitter(numeric(101), f = j.fac)
++     rrtxt <- paste("rel.range =", formatC(relrange(x), dig = 4),"* EPS")
++     cat("j.f = ", format(j.fac)," ;  ", rrtxt,"\n",sep="")
++     plot(x, type = "l", main = rrtxt)
++     cat("par(\"usr\")[3:4]:", formatC(par("usr")[3:4], wid = 10),"\n",
++         "par(\"yaxp\") :   ", formatC(par("yaxp"), wid = 10),"\n\n", sep="")
++ }
+j.f = 1e-11 ;  rel.range = 553.9 * EPS
+par("usr")[3:4]:     3.142     3.142
+par("yaxp") :        3.142     3.142         3
+
+j.f = 1e-12 ;  rel.range = 56.02 * EPS
+par("usr")[3:4]:     3.142     3.142
+par("yaxp") :        3.142     3.142         1
+
+j.f = 7e-13 ;  rel.range = 39.47 * EPS
+par("usr")[3:4]:     3.142     3.142
+par("yaxp") :        3.142     3.142         1
+
+j.f = 3e-13 ;  rel.range = 16.55 * EPS
+par("usr")[3:4]:     3.142     3.142
+par("yaxp") :        3.142     3.142         1
+
+j.f = 2e-13 ;  rel.range = 11.46 * EPS
+par("usr")[3:4]:     3.108     3.176
+par("yaxp") :         3.11      3.17         6
+
+j.f = 1e-13 ;  rel.range = 5.093 * EPS
+par("usr")[3:4]:     3.108     3.176
+par("yaxp") :         3.11      3.17         6
+
+j.f = 5e-14 ;  rel.range = 2.546 * EPS
+par("usr")[3:4]:     3.108     3.176
+par("yaxp") :         3.11      3.17         6
+
+j.f = 3e-14 ;  rel.range = 1.273 * EPS
+par("usr")[3:4]:     3.108     3.176
+par("yaxp") :         3.11      3.17         6
+
+j.f = 1e-14 ;  rel.range =     0 * EPS
+par("usr")[3:4]:     1.784     4.499
+par("yaxp") :            2         4         4
+
+Warning messages:
+1: In plot.window(...) :
+  relative range of values =  43 * EPS, is small (axis 2)
+2: In plot.window(...) :
+  relative range of values =  36 * EPS, is small (axis 2)
+3: In plot.window(...) :
+  relative range of values =  17 * EPS, is small (axis 2)
+> par(mfrow = c(1,1))
+> ## The warnings from inside GScale() will differ in their  relrange() ...
+> ## >> do sloppy testing
+> ## 2003-02-03 hopefully no more.  BDR
+> ## end of PR 390
+> 
+> 
+> ## scoping rules calling step inside a function
+> "cement" <-
++     structure(list(x1 = c(7, 1, 11, 11, 7, 11, 3, 1, 2, 21, 1, 11, 10),
++                    x2 = c(26, 29, 56, 31, 52, 55, 71, 31, 54, 47, 40, 66, 68),
++                    x3 = c(6, 15, 8, 8, 6, 9, 17, 22, 18, 4, 23, 9, 8),
++                    x4 = c(60, 52, 20, 47, 33, 22, 6, 44, 22, 26, 34, 12, 12),
++                    y = c(78.5, 74.3, 104.3, 87.6, 95.9, 109.2, 102.7, 72.5,
++                    93.1, 115.9, 83.8, 113.3, 109.4)),
++               .Names = c("x1", "x2", "x3", "x4", "y"), class = "data.frame",
++               row.names = 1:13)
+> teststep <- function(formula, data)
++ {
++     d2 <- data
++     fit <- lm(formula, data=d2)
++     step(fit)
++ }
+> teststep(formula(y ~ .), cement)
+Start:  AIC=26.94
+y ~ x1 + x2 + x3 + x4
+
+       Df Sum of Sq    RSS    AIC
+- x3    1    0.1091 47.973 24.974
+- x4    1    0.2470 48.111 25.011
+- x2    1    2.9725 50.836 25.728
+<none>              47.864 26.944
+- x1    1   25.9509 73.815 30.576
+
+Step:  AIC=24.97
+y ~ x1 + x2 + x4
+
+       Df Sum of Sq    RSS    AIC
+<none>               47.97 24.974
+- x4    1      9.93  57.90 25.420
+- x2    1     26.79  74.76 28.742
+- x1    1    820.91 868.88 60.629
+
+Call:
+lm(formula = y ~ x1 + x2 + x4, data = d2)
+
+Coefficients:
+(Intercept)           x1           x2           x4  
+    71.6483       1.4519       0.4161      -0.2365  
+
+> ## failed in 1.6.2
+> 
+> str(array(1))# not a scalar
+ num [1(1d)] 1
+> 
+> 
+> ## na.print="" shouldn't apply to (dim)names!
+> (tf <- table(ff <- factor(c(1:2,NA,2), exclude=NULL)))
+
+   1    2 <NA> 
+   1    2    1 
+> identical(levels(ff), dimnames(tf)[[1]])
+[1] TRUE
+> str(levels(ff))
+ chr [1:3] "1" "2" NA
+> ## not quite ok previous to 1.7.0
+> 
+> 
+> ## PR#3058  printing with na.print and right=TRUE
+> a <- matrix( c(NA, "a", "b", "10",
++                NA, NA,  "d", "12",
++                NA, NA,  NA,  "14"),
++             byrow=T, ncol=4 )
+> print(a, right=TRUE, na.print=" ")
+     [,1] [,2] [,3] [,4]
+[1,]       "a"  "b" "10"
+[2,]            "d" "12"
+[3,]                "14"
+> print(a, right=TRUE, na.print="----")
+     [,1] [,2] [,3] [,4]
+[1,] ----  "a"  "b" "10"
+[2,] ---- ----  "d" "12"
+[3,] ---- ---- ---- "14"
+> ## misaligned in 1.7.0
+> 
+> 
+> ## assigning factors to dimnames
+> A <- matrix(1:4, 2)
+> aa <- factor(letters[1:2])
+> dimnames(A) <- list(aa, NULL)
+> A
+  [,1] [,2]
+a    1    3
+b    2    4
+> dimnames(A)
+[[1]]
+[1] "a" "b"
+
+[[2]]
+NULL
+
+> ## 1.7.0 gave internal codes as display and dimnames()
+> ## 1.7.1beta gave NAs via dimnames()
+> ## 1.8.0 converts factors to character
+> 
+> 
+> ## wishlist PR#2776: aliased coefs in lm/glm
+> set.seed(123)
+> x2 <- x1 <- 1:10
+> x3 <- 0.1*(1:10)^2
+> y <- x1 + rnorm(10)
+> (fit <- lm(y ~ x1 + x2 + x3))
+
+Call:
+lm(formula = y ~ x1 + x2 + x3)
+
+Coefficients:
+(Intercept)           x1           x2           x3  
+     1.4719       0.5867           NA       0.2587  
+
+> summary(fit, cor = TRUE)
+
+Call:
+lm(formula = y ~ x1 + x2 + x3)
+
+Residuals:
+    Min      1Q  Median      3Q     Max 
+-1.0572 -0.4836  0.0799  0.4424  1.2699 
+
+Coefficients: (1 not defined because of singularities)
+            Estimate Std. Error t value Pr(>|t|)
+(Intercept)   1.4719     0.9484   1.552    0.165
+x1            0.5867     0.3961   1.481    0.182
+x2                NA         NA      NA       NA
+x3            0.2587     0.3509   0.737    0.485
+
+Residual standard error: 0.8063 on 7 degrees of freedom
+Multiple R-squared:  0.9326,	Adjusted R-squared:  0.9134 
+F-statistic: 48.43 on 2 and 7 DF,  p-value: 7.946e-05
+
+Correlation of Coefficients:
+   (Intercept) x1   
+x1 -0.91            
+x3  0.81       -0.97
+
+> (fit <- glm(y ~ x1 + x2 + x3))
+
+Call:  glm(formula = y ~ x1 + x2 + x3)
+
+Coefficients:
+(Intercept)           x1           x2           x3  
+     1.4719       0.5867           NA       0.2587  
+
+Degrees of Freedom: 9 Total (i.e. Null);  7 Residual
+Null Deviance:	    67.53 
+Residual Deviance: 4.551 	AIC: 28.51
+> summary(fit, cor = TRUE)
+
+Call:
+glm(formula = y ~ x1 + x2 + x3)
+
+Deviance Residuals: 
+    Min       1Q   Median       3Q      Max  
+-1.0572  -0.4836   0.0799   0.4424   1.2699  
+
+Coefficients: (1 not defined because of singularities)
+            Estimate Std. Error t value Pr(>|t|)
+(Intercept)   1.4719     0.9484   1.552    0.165
+x1            0.5867     0.3961   1.481    0.182
+x2                NA         NA      NA       NA
+x3            0.2587     0.3509   0.737    0.485
+
+(Dispersion parameter for gaussian family taken to be 0.6501753)
+
+    Null deviance: 67.5316  on 9  degrees of freedom
+Residual deviance:  4.5512  on 7  degrees of freedom
+AIC: 28.507
+
+Number of Fisher Scoring iterations: 2
+
+Correlation of Coefficients:
+   (Intercept) x1   
+x1 -0.91            
+x3  0.81       -0.97
+
+> ## omitted silently in summary.glm < 1.8.0
+> 
+> 
+> ## list-like indexing of data frames with drop specified
+> women["height"]
+   height
+1      58
+2      59
+3      60
+4      61
+5      62
+6      63
+7      64
+8      65
+9      66
+10     67
+11     68
+12     69
+13     70
+14     71
+15     72
+> women["height", drop = FALSE]  # same with a warning
+   height
+1      58
+2      59
+3      60
+4      61
+5      62
+6      63
+7      64
+8      65
+9      66
+10     67
+11     68
+12     69
+13     70
+14     71
+15     72
+Warning message:
+In `[.data.frame`(women, "height", drop = FALSE) :
+  'drop' argument will be ignored
+> women["height", drop = TRUE]   # ditto
+   height
+1      58
+2      59
+3      60
+4      61
+5      62
+6      63
+7      64
+8      65
+9      66
+10     67
+11     68
+12     69
+13     70
+14     71
+15     72
+Warning message:
+In `[.data.frame`(women, "height", drop = TRUE) :
+  'drop' argument will be ignored
+> women[,"height", drop = FALSE] # no warning
+   height
+1      58
+2      59
+3      60
+4      61
+5      62
+6      63
+7      64
+8      65
+9      66
+10     67
+11     68
+12     69
+13     70
+14     71
+15     72
+> women[,"height", drop = TRUE]  # a vector
+ [1] 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
+> ## second and third were interpreted as women["height", , drop] in 1.7.x
+> 
+> 
+> ## make.names
+> make.names("")
+[1] "X"
+> make.names(".aa")
+[1] ".aa"
+> ## was "X.aa" in 1.7.1
+> make.names(".2")
+[1] "X.2"
+> make.names(".2a") # not valid in R
+[1] "X.2a"
+> make.names(as.character(NA))
+[1] "NA."
+> ##
+> 
+> 
+> ## strange names in data frames
+> as.data.frame(list(row.names=17))  # 0 rows in 1.7.1
+  row.names
+1        17
+> aa <- data.frame(aa=1:3)
+> aa[["row.names"]] <- 4:6
+> aa # fine in 1.7.1
+  aa row.names
+1  1         4
+2  2         5
+3  3         6
+> A <- matrix(4:9, 3, 2)
+> colnames(A) <- letters[1:2]
+> aa[["row.names"]] <- A
+> aa
+  aa row.names.a row.names.b
+1  1           4           7
+2  2           5           8
+3  3           6           9
+> ## wrong printed names in 1.7.1
+> 
+> ## assigning to NULL
+> a <- NULL
+> a[["a"]] <- 1
+> a
+a 
+1 
+> a <- NULL
+> a[["a"]] <- "something"
+> a
+          a 
+"something" 
+> a <- NULL
+> a[["a"]] <- 1:3
+> a
+$a
+[1] 1 2 3
+
+> ## Last was an error in 1.7.1
+> 
+> 
+> ## examples of 0-rank models, some empty, some rank-deficient
+> y <- rnorm(10)
+> x <- rep(0, 10)
+> (fit <- lm(y ~ 0))
+
+Call:
+lm(formula = y ~ 0)
+
+No coefficients
+
+> summary(fit)
+
+Call:
+lm(formula = y ~ 0)
+
+Residuals:
+     Min       1Q   Median       3Q      Max 
+-1.36919 -0.21073  0.00840  0.08437  0.55292 
+
+No Coefficients
+
+Residual standard error: 0.5235 on 10 degrees of freedom
+
+> anova(fit)
+Analysis of Variance Table
+
+Response: y
+          Df Sum Sq Mean Sq F value Pr(>F)
+Residuals 10 2.7404 0.27404               
+> predict(fit)
+ 1  2  3  4  5  6  7  8  9 10 
+ 0  0  0  0  0  0  0  0  0  0 
+> predict(fit, data.frame(x=x), se=TRUE)
+$fit
+ 1  2  3  4  5  6  7  8  9 10 
+ 0  0  0  0  0  0  0  0  0  0 
+
+$se.fit
+ [1] 0 0 0 0 0 0 0 0 0 0
+
+$df
+[1] 10
+
+$residual.scale
+[1] 0.5234843
+
+> predict(fit, type="terms", se=TRUE)
+$fit
+     
+ [1,]
+ [2,]
+ [3,]
+ [4,]
+ [5,]
+ [6,]
+ [7,]
+ [8,]
+ [9,]
+[10,]
+attr(,"constant")
+[1] 0
+
+$se.fit
+     
+ [1,]
+ [2,]
+ [3,]
+ [4,]
+ [5,]
+ [6,]
+ [7,]
+ [8,]
+ [9,]
+[10,]
+
+$df
+[1] 10
+
+$residual.scale
+[1] 0.5234843
+
+> variable.names(fit) #should be empty
+character(0)
+> model.matrix(fit)
+  
+1 
+2 
+3 
+4 
+5 
+6 
+7 
+8 
+9 
+10
+attr(,"assign")
+integer(0)
+> 
+> (fit <- lm(y ~ x + 0))
+
+Call:
+lm(formula = y ~ x + 0)
+
+Coefficients:
+ x  
+NA  
+
+> summary(fit)
+
+Call:
+lm(formula = y ~ x + 0)
+
+Residuals:
+     Min       1Q   Median       3Q      Max 
+-1.36919 -0.21073  0.00840  0.08437  0.55292 
+
+Coefficients: (1 not defined because of singularities)
+  Estimate Std. Error t value Pr(>|t|)
+x       NA         NA      NA       NA
+
+Residual standard error: 0.5235 on 10 degrees of freedom
+
+> anova(fit)
+Analysis of Variance Table
+
+Response: y
+          Df Sum Sq Mean Sq F value Pr(>F)
+Residuals 10 2.7404 0.27404               
+> predict(fit)
+ 1  2  3  4  5  6  7  8  9 10 
+ 0  0  0  0  0  0  0  0  0  0 
+> predict(fit, data.frame(x=x), se=TRUE)
+$fit
+ 1  2  3  4  5  6  7  8  9 10 
+ 0  0  0  0  0  0  0  0  0  0 
+
+$se.fit
+ [1] 0 0 0 0 0 0 0 0 0 0
+
+$df
+[1] 10
+
+$residual.scale
+[1] 0.5234843
+
+Warning message:
+In predict.lm(fit, data.frame(x = x), se = TRUE) :
+  prediction from a rank-deficient fit may be misleading
+> predict(fit, type="terms", se=TRUE)
+$fit
+   x
+1  0
+2  0
+3  0
+4  0
+5  0
+6  0
+7  0
+8  0
+9  0
+10 0
+attr(,"constant")
+[1] 0
+
+$se.fit
+   x
+1  0
+2  0
+3  0
+4  0
+5  0
+6  0
+7  0
+8  0
+9  0
+10 0
+
+$df
+[1] 10
+
+$residual.scale
+[1] 0.5234843
+
+> variable.names(fit) #should be empty
+character(0)
+> model.matrix(fit)
+   x
+1  0
+2  0
+3  0
+4  0
+5  0
+6  0
+7  0
+8  0
+9  0
+10 0
+attr(,"assign")
+[1] 1
+> 
+> (fit <- glm(y ~ 0))
+
+Call:  glm(formula = y ~ 0)
+
+No coefficients
+
+
+Degrees of Freedom: 10 Total (i.e. Null);  10 Residual
+Null Deviance:	    2.74 
+Residual Deviance: 2.74 	AIC: 17.43
+> summary(fit)
+
+Call:
+glm(formula = y ~ 0)
+
+Deviance Residuals: 
+     Min        1Q    Median        3Q       Max  
+-1.36919  -0.21073   0.00840   0.08437   0.55292  
+
+No Coefficients
+
+(Dispersion parameter for gaussian family taken to be 0.2740358)
+
+    Null deviance: 2.7404  on 10  degrees of freedom
+Residual deviance: 2.7404  on 10  degrees of freedom
+AIC: 17.434
+
+Number of Fisher Scoring iterations: 0
+
+> anova(fit)
+Analysis of Deviance Table
+
+Model: gaussian, link: identity
+
+Response: y
+
+Terms added sequentially (first to last)
+
+
+     Df Deviance Resid. Df Resid. Dev
+NULL                    10     2.7404
+> predict(fit)
+ 1  2  3  4  5  6  7  8  9 10 
+ 0  0  0  0  0  0  0  0  0  0 
+> predict(fit, data.frame(x=x), se=TRUE)
+$fit
+ 1  2  3  4  5  6  7  8  9 10 
+ 0  0  0  0  0  0  0  0  0  0 
+
+$se.fit
+ [1] 0 0 0 0 0 0 0 0 0 0
+
+$residual.scale
+[1] 0.5234843
+
+> predict(fit, type="terms", se=TRUE)
+$fit
+     
+ [1,]
+ [2,]
+ [3,]
+ [4,]
+ [5,]
+ [6,]
+ [7,]
+ [8,]
+ [9,]
+[10,]
+attr(,"constant")
+[1] 0
+
+$se.fit
+     
+ [1,]
+ [2,]
+ [3,]
+ [4,]
+ [5,]
+ [6,]
+ [7,]
+ [8,]
+ [9,]
+[10,]
+
+$residual.scale
+[1] 0.5234843
+
+> 
+> (fit <- glm(y ~ x + 0))
+
+Call:  glm(formula = y ~ x + 0)
+
+Coefficients:
+ x  
+NA  
+
+Degrees of Freedom: 10 Total (i.e. Null);  10 Residual
+Null Deviance:	    2.74 
+Residual Deviance: 2.74 	AIC: 17.43
+> summary(fit)
+
+Call:
+glm(formula = y ~ x + 0)
+
+Deviance Residuals: 
+     Min        1Q    Median        3Q       Max  
+-1.36919  -0.21073   0.00840   0.08437   0.55292  
+
+Coefficients: (1 not defined because of singularities)
+  Estimate Std. Error t value Pr(>|t|)
+x       NA         NA      NA       NA
+
+(Dispersion parameter for gaussian family taken to be 0.2740358)
+
+    Null deviance: 2.7404  on 10  degrees of freedom
+Residual deviance: 2.7404  on 10  degrees of freedom
+AIC: 17.434
+
+Number of Fisher Scoring iterations: 2
+
+> anova(fit)
+Analysis of Deviance Table
+
+Model: gaussian, link: identity
+
+Response: y
+
+Terms added sequentially (first to last)
+
+
+     Df Deviance Resid. Df Resid. Dev
+NULL                    10     2.7404
+x     0        0        10     2.7404
+> predict(fit)
+ 1  2  3  4  5  6  7  8  9 10 
+ 0  0  0  0  0  0  0  0  0  0 
+> predict(fit, data.frame(x=x), se=TRUE)
+$fit
+ 1  2  3  4  5  6  7  8  9 10 
+ 0  0  0  0  0  0  0  0  0  0 
+
+$se.fit
+ [1] 0 0 0 0 0 0 0 0 0 0
+
+$residual.scale
+[1] 0.5234843
+
+Warning message:
+In predict.lm(object, newdata, se.fit, scale = residual.scale, type = ifelse(type ==  :
+  prediction from a rank-deficient fit may be misleading
+> predict(fit, type="terms", se=TRUE)
+$fit
+   x
+1  0
+2  0
+3  0
+4  0
+5  0
+6  0
+7  0
+8  0
+9  0
+10 0
+attr(,"constant")
+[1] 0
+
+$se.fit
+   x
+1  0
+2  0
+3  0
+4  0
+5  0
+6  0
+7  0
+8  0
+9  0
+10 0
+
+$residual.scale
+[1] 0.5234843
+
+> ## Lots of problems in 1.7.x
+> 
+> 
+> ## lm.influence on deficient lm models
+> dat <- data.frame(y=rnorm(10), x1=1:10, x2=1:10, x3 = 0, wt=c(0,rep(1, 9)),
++                   row.names=letters[1:10])
+> dat[3, 1] <- dat[4, 2] <- NA
+> lm.influence(lm(y ~ x1 + x2, data=dat, weights=wt, na.action=na.omit))
+$hat
+        b         e         f         g         h         i         j 
+0.6546053 0.2105263 0.1546053 0.1447368 0.1809211 0.2631579 0.3914474 
+
+$coefficients
+  (Intercept)           x1
+b  1.39138784 -0.173267165
+e -0.70930972  0.068642877
+f  0.12039809 -0.007818058
+g  0.01971595  0.001314397
+h  0.03272637 -0.017325726
+i -0.36929526  0.092323814
+j  0.33861311 -0.070163076
+
+$sigma
+        b         e         f         g         h         i         j 
+0.9641441 0.7434598 1.0496727 1.0681908 1.0389586 0.7633748 1.0093187 
+
+$wt.res
+         b          e          f          g          h          i          j 
+ 0.5513046 -1.3728575  0.4018482  0.1708716 -0.4793451  1.2925334 -0.5643552 
+
+> lm.influence(lm(y ~ x1 + x2, data=dat, weights=wt, na.action=na.exclude))
+$hat
+        b         e         c         d         f         g         h         i 
+0.6546053 0.2105263 0.0000000 0.0000000 0.1546053 0.1447368 0.1809211 0.2631579 
+        j 
+0.3914474 
+
+$coefficients
+  (Intercept)           x1
+b  1.39138784 -0.173267165
+e -0.70930972  0.068642877
+c  0.00000000  0.000000000
+d  0.00000000  0.000000000
+f  0.12039809 -0.007818058
+g  0.01971595  0.001314397
+h  0.03272637 -0.017325726
+i -0.36929526  0.092323814
+j  0.33861311 -0.070163076
+
+$sigma
+        b         e         c         d         f         g         h         i 
+0.9641441 0.7434598 0.9589854 0.9589854 1.0496727 1.0681908 1.0389586 0.7633748 
+        j 
+1.0093187 
+
+$wt.res
+         b          e          c          d          f          g          h 
+ 0.5513046 -1.3728575         NA         NA  0.4018482  0.1708716 -0.4793451 
+         i          j 
+ 1.2925334 -0.5643552 
+
+> lm.influence(lm(y ~ 0, data=dat, weights=wt, na.action=na.omit))
+$hat
+b d e f g h i j 
+0 0 0 0 0 0 0 0 
+
+$coefficients
+ 
+b
+d
+e
+f
+g
+h
+i
+j
+
+$sigma
+        b         d         e         f         g         h         i         j 
+0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 
+
+$wt.res
+         b          d          e          f          g          h          i 
+ 0.3604547  0.1146812 -1.1426753  0.7723744  0.6817419  0.1718693  2.0840918 
+         j 
+ 0.3675473 
+
+> lm.influence(lm(y ~ 0, data=dat, weights=wt, na.action=na.exclude))
+$hat
+b d c e f g h i j 
+0 0 0 0 0 0 0 0 0 
+
+$coefficients
+ 
+b
+d
+c
+e
+f
+g
+h
+i
+j
+
+$sigma
+        b         d         c         e         f         g         h         i 
+0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 
+        j 
+0.9366289 
+
+$wt.res
+         b          d          c          e          f          g          h 
+ 0.3604547  0.1146812         NA -1.1426753  0.7723744  0.6817419  0.1718693 
+         i          j 
+ 2.0840918  0.3675473 
+
+> lm.influence(lm(y ~ 0 + x3, data=dat, weights=wt, na.action=na.omit))
+$hat
+b d e f g h i j 
+0 0 0 0 0 0 0 0 
+
+$coefficients
+ 
+b
+d
+e
+f
+g
+h
+i
+j
+
+$sigma
+        b         d         e         f         g         h         i         j 
+0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 
+
+$wt.res
+         b          d          e          f          g          h          i 
+ 0.3604547  0.1146812 -1.1426753  0.7723744  0.6817419  0.1718693  2.0840918 
+         j 
+ 0.3675473 
+
+> lm.influence(lm(y ~ 0 + x3, data=dat, weights=wt, na.action=na.exclude))
+$hat
+b d c e f g h i j 
+0 0 0 0 0 0 0 0 0 
+
+$coefficients
+ 
+b
+d
+c
+e
+f
+g
+h
+i
+j
+
+$sigma
+        b         d         c         e         f         g         h         i 
+0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 0.9366289 
+        j 
+0.9366289 
+
+$wt.res
+         b          d          c          e          f          g          h 
+ 0.3604547  0.1146812         NA -1.1426753  0.7723744  0.6817419  0.1718693 
+         i          j 
+ 2.0840918  0.3675473 
+
+> lm.influence(lm(y ~ 0, data=dat, na.action=na.exclude))
+$hat
+a b c d e f g h i j 
+0 0 0 0 0 0 0 0 0 0 
+
+$coefficients
+ 
+a
+b
+c
+d
+e
+f
+g
+h
+i
+j
+
+$sigma
+        a         b         c         d         e         f         g         h 
+0.8860916 0.8860916 0.8860916 0.8860916 0.8860916 0.8860916 0.8860916 0.8860916 
+        i         j 
+0.8860916 0.8860916 
+
+$wt.res
+         a          b          c          d          e          f          g 
+ 0.2196280  0.3604547         NA  0.1146812 -1.1426753  0.7723744  0.6817419 
+         h          i          j 
+ 0.1718693  2.0840918  0.3675473 
+
+> ## last three misbehaved in 1.7.x, none had proper names.
+> 
+> 
+> ## length of results in ARMAacf when lag.max is used
+> ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=1) # was 4 in 1.7.1
+        0         1 
+1.0000000 0.7644046 
+> ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=2)
+        0         1         2 
+1.0000000 0.7644046 0.2676056 
+> ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=3)
+         0          1          2          3 
+ 1.0000000  0.7644046  0.2676056 -0.2343150 
+> ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=4)
+         0          1          2          3          4 
+ 1.0000000  0.7644046  0.2676056 -0.2343150 -0.5180538 
+> ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=5) # failed in 1.7.1
+         0          1          2          3          4          5 
+ 1.0000000  0.7644046  0.2676056 -0.2343150 -0.5180538 -0.5099616 
+> ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=6)
+         0          1          2          3          4          5          6 
+ 1.0000000  0.7644046  0.2676056 -0.2343150 -0.5180538 -0.5099616 -0.2784942 
+> ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=10)
+         0          1          2          3          4          5          6 
+ 1.0000000  0.7644046  0.2676056 -0.2343150 -0.5180538 -0.5099616 -0.2784942 
+         7          8          9         10 
+ 0.0241137  0.2486313  0.3134551  0.2256408 
+> ##
+> 
+> 
+> ## Indexing non-existent columns in a data frame
+> x <- data.frame(a = 1, b = 2)
+> try(x[c("a", "c")])
+Error in `[.data.frame`(x, c("a", "c")) : undefined columns selected
+> try(x[, c("a", "c")])
+Error in `[.data.frame`(x, , c("a", "c")) : undefined columns selected
+> try(x[1, c("a", "c")])
+Error in `[.data.frame`(x, 1, c("a", "c")) : undefined columns selected
+> ## Second succeeded, third gave uniformative error message in 1.7.x.
+> 
+> 
+> ## methods(class = ) with namespaces, .Primitives etc (many missing in 1.7.x):
+> meth2gen <- function(cl)
++     noquote(sub(paste("\\.",cl,"$",sep=""),"", c(.S3methods(class = cl))))
+> meth2gen("data.frame")
+ [1] $             $<-           Math          Ops           Summary      
+ [6] [             [<-           [[            [[<-          aggregate    
+[11] anyDuplicated as.data.frame as.list       as.matrix     by           
+[16] cbind         dim           dimnames      dimnames<-    droplevels   
+[21] duplicated    edit          format        formula       head         
+[26] is.na         merge         na.exclude    na.omit       plot         
+[31] print         prompt        rbind         row.names     row.names<-  
+[36] rowsum        split         split<-       stack         str          
+[41] subset        summary       t             tail          transform    
+[46] unique        unstack       within       
+> meth2gen("dendrogram")
+ [1] [[            as.dendrogram as.hclust     cophenetic    cut          
+ [6] labels        merge         nobs          plot          print        
+[11] reorder       rev           str          
+> ## --> the output may need somewhat frequent updating..
+> 
+> 
+> ## subsetting a 1D array lost the dimensions
+> x <- array(1:5, dim=c(5))
+> dim(x)
+[1] 5
+> dim(x[, drop=TRUE])
+[1] 5
+> dim(x[2:3])
+[1] 2
+> dim(x[2])
+NULL
+> dim(x[2, drop=FALSE])
+[1] 1
+> dimnames(x) <- list(some=letters[1:5])
+> x[]
+some
+a b c d e 
+1 2 3 4 5 
+> x[2:3]
+some
+b c 
+2 3 
+> x[2]
+b 
+2 
+> x[2, drop=FALSE]
+some
+b 
+2 
+> ## both dim and dimnames lost in 1.8.0
+> 
+> 
+> ## print.dist() didn't show NA's prior to 1.8.1
+> x <- cbind(c(1,NA,2,3), c(NA,2,NA,1))
+> (d <- dist(x))
+         1        2        3
+2       NA                  
+3 1.414214       NA         
+4 2.828427 1.414214 1.414214
+> print(d, diag = TRUE)
+         1        2        3        4
+1 0.000000                           
+2       NA 0.000000                  
+3 1.414214       NA 0.000000         
+4 2.828427 1.414214 1.414214 0.000000
+> ##
+> 
+> 
+> ## offsets in model terms where sometimes not deleted correctly
+> attributes(terms(~ a + b + a:b + offset(c)))[c("offset", "term.labels")]
+$offset
+[1] 3
+
+$term.labels
+[1] "a"   "b"   "a:b"
+
+> attributes(terms(y ~ a + b + a:b + offset(c)))[c("offset", "term.labels")]
+$offset
+[1] 4
+
+$term.labels
+[1] "a"   "b"   "a:b"
+
+> attributes(terms(~ offset(c) + a + b + a:b))[c("offset", "term.labels")]
+$offset
+[1] 1
+
+$term.labels
+[1] "a"   "b"   "a:b"
+
+> attributes(terms(y ~ offset(c) + a + b + a:b))[c("offset", "term.labels")]
+$offset
+[1] 2
+
+$term.labels
+[1] "a"   "b"   "a:b"
+
+> ## errors prior to 1.8.1
+> 
+> 
+> ## 0-level factors gave nonsensical answers in model.matrix
+> m <- model.frame(~x, data.frame(x=NA), na.action=na.pass)
+> model.matrix(~x, m)
+  (Intercept) xTRUE
+1           1    NA
+attr(,"assign")
+[1] 0 1
+attr(,"contrasts")
+attr(,"contrasts")$x
+[1] "contr.treatment"
+
+> lm.fit <- lm(y ~ x, data.frame(x=1:10, y=1:10))
+> try(predict(lm.fit, data.frame(x=NA)))
+Error : variable 'x' was fitted with type "numeric" but type "logical" was supplied
+> ## wrong answers in 1.8.0, refused to run in 1.8.1
+> 
+> 
+> 
+> ## failure to print data frame containing arrays
+> ## raised by John Fox on R-devel on 2004-01-08
+> y1 <- array(1:10, dim=10)
+> y2 <- array(1:30, dim=c(10,3), dimnames=list(NULL, letters[1:3]))
+> y3 <- array(1:40, dim=c(10,2,2),
++             dimnames=list(NULL, letters[1:2], NULL))
+> data.frame(y=y1)
+    y
+1   1
+2   2
+3   3
+4   4
+5   5
+6   6
+7   7
+8   8
+9   9
+10 10
+> data.frame(y=y2)
+   y.a y.b y.c
+1    1  11  21
+2    2  12  22
+3    3  13  23
+4    4  14  24
+5    5  15  25
+6    6  16  26
+7    7  17  27
+8    8  18  28
+9    9  19  29
+10  10  20  30
+> data.frame(y=y3)
+   y.a.1 y.b.1 y.a.2 y.b.2
+1      1    11    21    31
+2      2    12    22    32
+3      3    13    23    33
+4      4    14    24    34
+5      5    15    25    35
+6      6    16    26    36
+7      7    17    27    37
+8      8    18    28    38
+9      9    19    29    39
+10    10    20    30    40
+> 
+> as.data.frame(y1)
+   y1
+1   1
+2   2
+3   3
+4   4
+5   5
+6   6
+7   7
+8   8
+9   9
+10 10
+> as.data.frame(y2)
+    a  b  c
+1   1 11 21
+2   2 12 22
+3   3 13 23
+4   4 14 24
+5   5 15 25
+6   6 16 26
+7   7 17 27
+8   8 18 28
+9   9 19 29
+10 10 20 30
+> as.data.frame(y3)
+   a.1 b.1 a.2 b.2
+1    1  11  21  31
+2    2  12  22  32
+3    3  13  23  33
+4    4  14  24  34
+5    5  15  25  35
+6    6  16  26  36
+7    7  17  27  37
+8    8  18  28  38
+9    9  19  29  39
+10  10  20  30  40
+> 
+> X <- data.frame(x=1:10)
+> X$y <- y1
+> X
+    x  y
+1   1  1
+2   2  2
+3   3  3
+4   4  4
+5   5  5
+6   6  6
+7   7  7
+8   8  8
+9   9  9
+10 10 10
+> sapply(X, dim)
+$x
+NULL
+
+$y
+[1] 10
+
+> 
+> X$y <- y2
+> X
+    x y.a y.b y.c
+1   1   1  11  21
+2   2   2  12  22
+3   3   3  13  23
+4   4   4  14  24
+5   5   5  15  25
+6   6   6  16  26
+7   7   7  17  27
+8   8   8  18  28
+9   9   9  19  29
+10 10  10  20  30
+> sapply(X, dim)
+$x
+NULL
+
+$y
+[1] 10  3
+
+> 
+> X$y <- y3
+> X
+    x y.a.1 y.b.1 y.a.2 y.b.2
+1   1     1    11    21    31
+2   2     2    12    22    32
+3   3     3    13    23    33
+4   4     4    14    24    34
+5   5     5    15    25    35
+6   6     6    16    26    36
+7   7     7    17    27    37
+8   8     8    18    28    38
+9   9     9    19    29    39
+10 10    10    20    30    40
+> sapply(X, dim)
+$x
+NULL
+
+$y
+[1] 10  2  2
+
+> ## The last one fails in S.
+> 
+> ## test of user hooks
+> for(id in c("A", "B")) {
++     eval(substitute(
++     {
++ setHook(packageEvent("stats4", "onLoad"),
++         function(pkgname, ...) cat("onLoad", sQuote(pkgname), id, "\n"));
++ setHook(packageEvent("stats4", "attach"),
++         function(pkgname, ...) cat("attach", sQuote(pkgname), id, "\n"));
++ setHook(packageEvent("stats4", "detach"),
++         function(pkgname, ...) cat("detach", sQuote(pkgname), id, "\n"));
++ setHook(packageEvent("stats4", "onUnload"),
++         function(pkgname, ...) cat("onUnload", sQuote(pkgname), id, "\n"))
++     },
++                     list(id=id)))
++ }
+> loadNamespace("stats4")
+onLoad 'stats4' A 
+onLoad 'stats4' B 
+<environment: namespace:stats4>
+> library("stats4")
+attach 'stats4' A 
+attach 'stats4' B 
+> detach("package:stats4")
+detach 'stats4' B 
+detach 'stats4' A 
+> unloadNamespace("stats4")
+onUnload 'stats4' B 
+onUnload 'stats4' A 
+> ## Just tests
+> 
+> 
+> ## rep(0-length-vector, length.out > 0)
+> rep(integer(0), length.out=0)
+integer(0)
+> rep(integer(0), length.out=10)
+ [1] NA NA NA NA NA NA NA NA NA NA
+> typeof(.Last.value)
+[1] "integer"
+> rep(logical(0), length.out=0)
+logical(0)
+> rep(logical(0), length.out=10)
+ [1] NA NA NA NA NA NA NA NA NA NA
+> typeof(.Last.value)
+[1] "logical"
+> rep(numeric(0), length.out=0)
+numeric(0)
+> rep(numeric(0), length.out=10)
+ [1] NA NA NA NA NA NA NA NA NA NA
+> typeof(.Last.value)
+[1] "double"
+> rep(character(0), length.out=0)
+character(0)
+> rep(character(0), length.out=10)
+ [1] NA NA NA NA NA NA NA NA NA NA
+> typeof(.Last.value)
+[1] "character"
+> rep(complex(0), length.out=0)
+complex(0)
+> rep(complex(0), length.out=10)
+ [1] NA NA NA NA NA NA NA NA NA NA
+> typeof(.Last.value)
+[1] "complex"
+> rep(list(), length.out=0)
+list()
+> rep(list(), length.out=10)
+[[1]]
+NULL
+
+[[2]]
+NULL
+
+[[3]]
+NULL
+
+[[4]]
+NULL
+
+[[5]]
+NULL
+
+[[6]]
+NULL
+
+[[7]]
+NULL
+
+[[8]]
+NULL
+
+[[9]]
+NULL
+
+[[10]]
+NULL
+
+> ## always 0-length before 1.9.0
+> 
+> 
+> ## supplying 0-length data to array and matrix
+> array(numeric(0), c(2, 2))
+     [,1] [,2]
+[1,]   NA   NA
+[2,]   NA   NA
+> array(list(), c(2,2))
+     [,1] [,2]
+[1,] NULL NULL
+[2,] NULL NULL
+> # worked < 1.8.0, error in 1.8.x
+> matrix(character(0), 1, 2)
+     [,1] [,2]
+[1,] NA   NA  
+> matrix(integer(0), 1, 2)
+     [,1] [,2]
+[1,]   NA   NA
+> matrix(logical(0), 1, 2)
+     [,1] [,2]
+[1,]   NA   NA
+> matrix(numeric(0), 1, 2)
+     [,1] [,2]
+[1,]   NA   NA
+> matrix(complex(0), 1, 2)
+     [,1] [,2]
+[1,]   NA   NA
+> matrix(list(), 1, 2)
+     [,1] [,2]
+[1,] NULL NULL
+> ## did not work < 1.9.0
+> 
+> 
+> ## S compatibility change in 1.9.0
+> rep(1:2, each=3, length=12)
+ [1] 1 1 1 2 2 2 1 1 1 2 2 2
+> ## used to pad with NAs.
+> 
+> 
+> ## PR#6510: aov() with error and -1
+> set.seed(1)
+> test.df <- data.frame (y=rnorm(8), a=gl(2,1,8), b=gl(2,3,8),c=gl(2,4,8))
+> aov(y ~ a + b + Error(c), data=test.df)
+
+Call:
+aov(formula = y ~ a + b + Error(c), data = test.df)
+
+Grand Mean: 0.8066534
+
+Stratum 1: c
+
+Terms:
+                        b
+Sum of Squares  0.3176489
+Deg. of Freedom         1
+
+Estimated effects are balanced
+
+Stratum 2: Within
+
+Terms:
+                       a        b Residuals
+Sum of Squares  1.389453 2.148149  5.048689
+Deg. of Freedom        1        1         4
+
+Residual standard error: 1.123464
+Estimated effects may be unbalanced
+> aov(y ~ a + b - 1 + Error(c), data=test.df)
+
+Call:
+aov(formula = y ~ a + b - 1 + Error(c), data = test.df)
+
+Stratum 1: c
+
+Terms:
+                       a        b
+Sum of Squares  5.205518 0.317649
+Deg. of Freedom        1        1
+
+1 out of 3 effects not estimable
+Estimated effects may be unbalanced
+
+Stratum 2: Within
+
+Terms:
+                       a        b Residuals
+Sum of Squares  1.389453 2.148149  5.048689
+Deg. of Freedom        1        1         4
+
+Residual standard error: 1.123464
+1 out of 3 effects not estimable
+Estimated effects may be unbalanced
+> ## wrong assignment to strata labels < 1.9.0
+> ## Note this is unbalanced and not a good example
+> 
+> binom.test(c(800,10))# p-value < epsilon
+
+	Exact binomial test
+
+data:  c(800, 10)
+number of successes = 800, number of trials = 810, p-value < 2.2e-16
+alternative hypothesis: true probability of success is not equal to 0.5
+95 percent confidence interval:
+ 0.9774134 0.9940643
+sample estimates:
+probability of success 
+             0.9876543 
+
+> 
+> 
+> ## aov with a singular error model
+> rd <- c(16.53, 12.12, 10.04, 15.32, 12.33, 10.1, 17.09, 11.69, 11.81, 14.75,
++         10.72, 8.79, 13.14, 9.79, 8.36, 15.62, 9.64, 8.72, 15.32,
++         11.35, 8.52, 13.27, 9.74, 8.78, 13.16, 10.16, 8.4, 13.08, 9.66,
++         8.16, 12.17, 9.13, 7.43, 13.28, 9.16, 7.92, 118.77, 78.83, 62.2,
++         107.29, 73.79, 58.59, 118.9, 66.35, 53.12, 372.62, 245.39, 223.72,
++         326.03, 232.67, 209.44, 297.55, 239.71, 223.8)
+> sample.df <- data.frame(dep.variable=rd,
++                         subject=factor(rep(paste("subj",1:6, sep=""),each=9)),
++                         f1=factor(rep(rep(c("f1","f2","f3"),each=6),3)),
++                         f2=factor(rep(c("g1","g2","g3"),each=18))
++ )
+> sample.aov <- aov(dep.variable ~ f1 * f2 + Error(subject/(f1+f2)), data=sample.df)
+Warning message:
+In aov(dep.variable ~ f1 * f2 + Error(subject/(f1 + f2)), data = sample.df) :
+  Error() model is singular
+> sample.aov
+
+Call:
+aov(formula = dep.variable ~ f1 * f2 + Error(subject/(f1 + f2)), 
+    data = sample.df)
+
+Grand Mean: 65.07444
+
+Stratum 1: subject
+
+Terms:
+                       f1        f2     f1:f2
+Sum of Squares   47815.99 312824.49 100370.96
+Deg. of Freedom         1         2         2
+
+2 out of 7 effects not estimable
+Estimated effects may be unbalanced
+
+Stratum 2: subject:f1
+
+Terms:
+                      f1    f1:f2
+Sum of Squares  483.9628 869.6876
+Deg. of Freedom        2        4
+
+Estimated effects may be unbalanced
+
+Stratum 3: Within
+
+Terms:
+                Residuals
+Sum of Squares   29204.13
+Deg. of Freedom        42
+
+Residual standard error: 26.36923
+> summary(sample.aov)
+
+Error: subject
+      Df Sum Sq Mean Sq
+f1     1  47816   47816
+f2     2 312824  156412
+f1:f2  2 100371   50185
+
+Error: subject:f1
+      Df Sum Sq Mean Sq
+f1     2  484.0   242.0
+f1:f2  4  869.7   217.4
+
+Error: Within
+          Df Sum Sq Mean Sq F value Pr(>F)
+Residuals 42  29204   695.3               
+> sample.aov <- aov(dep.variable ~ f1 * f2 + Error(subject/(f2+f1)), data=sample.df)
+Warning message:
+In aov(dep.variable ~ f1 * f2 + Error(subject/(f2 + f1)), data = sample.df) :
+  Error() model is singular
+> sample.aov
+
+Call:
+aov(formula = dep.variable ~ f1 * f2 + Error(subject/(f2 + f1)), 
+    data = sample.df)
+
+Grand Mean: 65.07444
+
+Stratum 1: subject
+
+Terms:
+                       f1        f2     f1:f2
+Sum of Squares   47815.99 312824.49 100370.96
+Deg. of Freedom         1         2         2
+
+2 out of 7 effects not estimable
+Estimated effects may be unbalanced
+
+Stratum 2: subject:f1
+
+Terms:
+                      f1    f1:f2
+Sum of Squares  483.9628 869.6876
+Deg. of Freedom        2        4
+
+Estimated effects may be unbalanced
+
+Stratum 3: Within
+
+Terms:
+                Residuals
+Sum of Squares   29204.13
+Deg. of Freedom        42
+
+Residual standard error: 26.36923
+> summary(sample.aov)
+
+Error: subject
+      Df Sum Sq Mean Sq
+f1     1  47816   47816
+f2     2 312824  156412
+f1:f2  2 100371   50185
+
+Error: subject:f1
+      Df Sum Sq Mean Sq
+f1     2  484.0   242.0
+f1:f2  4  869.7   217.4
+
+Error: Within
+          Df Sum Sq Mean Sq F value Pr(>F)
+Residuals 42  29204   695.3               
+> ## failed in 1.8.1
+> 
+> 
+> ## PR#6645  stem() with near-constant values
+> stem(rep(1, 100))
+
+  The decimal point is at the |
+
+  1 | 00000000000000000000000000000000000000000000000000000000000000000000+20
+
+> stem(rep(0.1, 10))
+
+  The decimal point is 1 digit(s) to the left of the |
+
+  1 | 0000000000
+
+> stem(c(rep(1, 10), 1+1.e-8))
+
+  The decimal point is 8 digit(s) to the left of the |
+
+  100000000 | 0000000000
+  100000000 | 
+  100000001 | 0
+
+> stem(c(rep(1, 10), 1+1.e-9))
+
+  The decimal point is 8 digit(s) to the left of the |
+
+  100000000 | 00000000001
+
+> stem(c(rep(1, 10), 1+1.e-10), atom=0) # integer-overflow is avoided.
+
+  The decimal point is 8 digit(s) to the left of the |
+
+  100000000 | 00000000000
+
+> ##  had integer overflows in 1.8.1, and silly shifts of decimal point
+> 
+> 
+> ## PR#6633 warnings with vector op matrix, and more
+> set.seed(1)
+> x1 <- rnorm(3)
+> y1 <- rnorm(4)
+> x1 * y1
+[1]  0.5574682  0.1410502  0.1609194 -0.3641637
+Warning message:
+In x1 * y1 :
+  longer object length is not a multiple of shorter object length
+> x1 * as.matrix(y1) # no warning in 1.8.1
+           [,1]
+[1,]  0.5574682
+[2,]  0.1410502
+[3,]  0.1609194
+[4,] -0.3641637
+Warning message:
+In x1 * as.matrix(y1) :
+  longer object length is not a multiple of shorter object length
+> x1 * matrix(y1,2,2)# ditto
+          [,1]       [,2]
+[1,] 0.5574682  0.1609194
+[2,] 0.1410502 -0.3641637
+Warning message:
+In x1 * matrix(y1, 2, 2) :
+  longer object length is not a multiple of shorter object length
+> z1 <- x1 > 0
+> z2 <- y1 > 0
+> z1 & z2
+[1]  TRUE  TRUE  TRUE FALSE
+Warning message:
+In z1 & z2 :
+  longer object length is not a multiple of shorter object length
+> z1 & as.matrix(z2) # no warning in 1.8.1
+      [,1]
+[1,]  TRUE
+[2,]  TRUE
+[3,]  TRUE
+[4,] FALSE
+Warning message:
+In z1 & as.matrix(z2) :
+  longer object length is not a multiple of shorter object length
+> x1 < y1            # no warning in 1.8.1
+[1] FALSE  TRUE FALSE FALSE
+Warning message:
+In x1 < y1 :
+  longer object length is not a multiple of shorter object length
+> x1 < as.matrix(y1) # ditto
+      [,1]
+[1,] FALSE
+[2,]  TRUE
+[3,] FALSE
+[4,] FALSE
+Warning message:
+In x1 < as.matrix(y1) :
+  longer object length is not a multiple of shorter object length
+> ##
+> 
+> 
+> ## summary method for mle
+> library(stats4)
+onLoad 'stats4' A 
+onLoad 'stats4' B 
+attach 'stats4' A 
+attach 'stats4' B 
+> N <- c(rep(3:6, 3), 7,7, rep(8,6), 9,9, 10,12)# sample from Pois(lam = 7)
+> summary(mle(function(Lam = 1) -sum(dpois(N, Lam))))
+Maximum likelihood estimation
+
+Call:
+mle(minuslogl = function(Lam = 1) -sum(dpois(N, Lam)))
+
+Coefficients:
+    Estimate Std. Error
+Lam 6.063755   2.307546
+
+-2 log L: -5.437059 
+> ## "Coefficients" was "NULL" in 1.9.0's "devel"
+> 
+> 
+> ## PR#6656 terms.formula(simplify = TRUE) was losing offset terms
+> ## successive offsets caused problems
+> df <- data.frame(x=1:4, y=sqrt( 1:4), z=c(2:4,1))
+> fit1 <- glm(y ~ offset(x) + z, data=df)
+> update(fit1, ". ~.")$call
+glm(formula = y ~ z + offset(x), data = df)
+> ## lost offset in 1.7.0 to 1.8.1
+> terms(y ~ offset(x) + offset(log(x)) + z, data=df)
+y ~ offset(x) + offset(log(x)) + z
+attr(,"variables")
+list(y, offset(x), offset(log(x)), z)
+attr(,"offset")
+[1] 2 3
+attr(,"factors")
+               z
+y              0
+offset(x)      0
+offset(log(x)) 0
+z              1
+attr(,"term.labels")
+[1] "z"
+attr(,"order")
+[1] 1
+attr(,"intercept")
+[1] 1
+attr(,"response")
+[1] 1
+attr(,".Environment")
+<environment: R_GlobalEnv>
+> ## failed to remove second offset from formula in 1.8.1
+> terms(y ~ offset(x) + z - z, data=df, simplify = TRUE)
+y ~ offset(x)
+attr(,"variables")
+list(y, offset(x), z)
+attr(,"offset")
+[1] 2
+attr(,"factors")
+integer(0)
+attr(,"term.labels")
+character(0)
+attr(,"order")
+integer(0)
+attr(,"intercept")
+[1] 1
+attr(,"response")
+[1] 1
+attr(,".Environment")
+<environment: R_GlobalEnv>
+> ## first fix failed for models with no non-offset terms.
+> 
+> 
+> ## only the first two were wrong up to 1.8.1:
+> 3:4 * 1e-100
+[1] 3e-100 4e-100
+> 8:11* 1e-100
+[1] 8.0e-100 9.0e-100  1.0e-99  1.1e-99
+> 1:2 * 1e-99
+[1] 1e-99 2e-99
+> 1:2 * 1e+99
+[1] 1e+99 2e+99
+> 8:11* 1e+99
+[1]  8.0e+99  9.0e+99 1.0e+100 1.1e+100
+> 3:4 * 1e+100
+[1] 3e+100 4e+100
+> ##
+> 
+> 
+> ## negative subscripts could be mixed with NAs
+> x <- 1:3
+> try(x[-c(1, NA)])
+Error in x[-c(1, NA)] : only 0's may be mixed with negative subscripts
+> ## worked on some platforms, segfaulted on others in 1.8.1
+> 
+> 
+> ## vector 'border' (and no 'pch', 'cex' nor 'bg'):
+> boxplot(count ~ spray, data = InsectSprays, border=2:7)
+> ## gave warnings in 1.9.0
+> 
+> summary(as.Date(paste("2002-12", 26:31, sep="-")))
+        Min.      1st Qu.       Median         Mean      3rd Qu.         Max. 
+"2002-12-26" "2002-12-27" "2002-12-28" "2002-12-28" "2002-12-29" "2002-12-31" 
+> ## printed all "2002.-12-29" in 1.9.1 {because digits was too small}
+> as.matrix(data.frame(d = as.POSIXct("2004-07-20")))
+     d           
+[1,] "2004-07-20"
+> ## gave a warning in 1.9.1
+> 
+> 
+> ## Dump should quote when necessary (PR#6857)
+> x <- quote(b)
+> dump("x", "")
+x <-
+quote(b)
+> ## doesn't quote b in 1.9.0
+> 
+> 
+> ## some checks of indexing by character, used to test hashing code
+> x <- 1:26
+> names(x) <- letters
+> x[c("a", "aa", "aa")] <- 100:102
+> x
+  a   b   c   d   e   f   g   h   i   j   k   l   m   n   o   p   q   r   s   t 
+100   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20 
+  u   v   w   x   y   z  aa 
+ 21  22  23  24  25  26 102 
+> 
+> x <- 1:26
+> names(x) <- rep("", 26)
+> x[c("a", "aa", "aa")] <- 100:102
+> x
+                                                                                
+  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20 
+                          a  aa 
+ 21  22  23  24  25  26 100 102 
+> ##
+> 
+> 
+> ## tests of raw type
+> # tests of logic operators
+> x <- "A test string"
+> (y <- charToRaw(x))
+ [1] 41 20 74 65 73 74 20 73 74 72 69 6e 67
+> (xx <- c(y, as.raw(0), charToRaw("more")))
+ [1] 41 20 74 65 73 74 20 73 74 72 69 6e 67 00 6d 6f 72 65
+> 
+> !y
+ [1] be df 8b 9a 8c 8b df 8c 8b 8d 96 91 98
+> y & as.raw(15)
+ [1] 01 00 04 05 03 04 00 03 04 02 09 0e 07
+> y | as.raw(128)
+ [1] c1 a0 f4 e5 f3 f4 a0 f3 f4 f2 e9 ee e7
+> 
+> # tests of binary read/write
+> zz <- file("testbin", "wb")
+> writeBin(xx, zz)
+> close(zz)
+> zz <- file("testbin", "rb")
+> (yy <- readBin(zz, "raw", 100))
+ [1] 41 20 74 65 73 74 20 73 74 72 69 6e 67 00 6d 6f 72 65
+> seek(zz, 0, "start")
+[1] 18
+> readBin(zz, "integer", n=100, size = 1) # read as small integers
+ [1]  65  32 116 101 115 116  32 115 116 114 105 110 103   0 109 111 114 101
+> seek(zz, 0, "start")
+[1] 18
+> readBin(zz, "character", 100)  # is confused by embedded nul.
+[1] "A test string"
+Warning message:
+In readBin(zz, "character", 100) :
+  incomplete string at end of file has been discarded
+> seek(zz, 0, "start")
+[1] 18
+> readChar(zz, length(xx)) # truncates at embedded nul
+[1] "A test string"
+> seek(zz) # make sure current position is reported properly
+[1] 18
+> close(zz)
+> unlink("testbin")
+> 
+> # tests of ASCII read/write.
+> cat(xx, file="testascii")
+> scan("testascii", what=raw(0))
+Read 18 items
+ [1] 41 20 74 65 73 74 20 73 74 72 69 6e 67 00 6d 6f 72 65
+> unlink("testascii")
+> ##
+> 
+> 
+> ## Example of prediction not from newdata as intended.
+> set.seed(1)
+> y <- rnorm(10)
+> x  <- cbind(1:10, sample(1:10)) # matrix
+> xt <- cbind(1:2,  3:4)
+> (lm1 <- lm(y ~ x))
+
+Call:
+lm(formula = y ~ x)
+
+Coefficients:
+(Intercept)           x1           x2  
+     0.4359      -0.1376       0.1539  
+
+> predict(lm1, newdata = data.frame(x= xt))
+          1           2           3           4           5           6 
+ 1.83760728  0.93041126  0.17714205  0.19350695  1.13343277  0.84194402 
+          7           8           9          10 
+ 0.08867482  0.25896653  0.27533143 -0.47793778 
+Warning message:
+'newdata' had 2 rows but variables found have 10 rows 
+> ## warns as from 2.0.0
+> 
+> 
+> ## eval could alter a data.frame/list second argument
+> data(trees)
+> a <- trees
+> eval(quote({Girth[1]<-NA;Girth}),a)
+ [1]   NA  8.6  8.8 10.5 10.7 10.8 11.0 11.0 11.1 11.2 11.3 11.4 11.4 11.7 12.0
+[16] 12.9 12.9 13.3 13.7 13.8 14.0 14.2 14.5 16.0 16.3 17.3 17.5 17.9 18.0 18.0
+[31] 20.6
+> a[1, ]
+  Girth Height Volume
+1   8.3     70   10.3
+> trees[1, ]
+  Girth Height Volume
+1   8.3     70   10.3
+> ## both a and trees got altered in 1.9.1
+> 
+> 
+> ## write.table did not apply qmethod to col.names (PR#7171)
+> x <- data.frame("test string with \"" = c("a \" and a '"), check.names=FALSE)
+> write.table(x)
+"test string with \""
+"1" "a \" and a '"
+> write.table(x, qmethod = "double")
+"test string with """
+"1" "a "" and a '"
+> ## Quote in col name was unescaped in 1.9.1.
+> 
+> 
+> ## extensions to read.table
+> Mat <- matrix(c(1:3, letters[1:3], 1:3, LETTERS[1:3],
++                 c("2004-01-01", "2004-02-01", "2004-03-01"),
++                 c("2004-01-01 12:00", "2004-02-01 12:00", "2004-03-01 12:00")),
++               3, 6)
+> foo <- tempfile()
+> write.table(Mat, foo, col.names = FALSE, row.names = FALSE)
+> read.table(foo, colClasses = c(NA, NA, "NULL", "character", "Date", "POSIXct"))
+  V1 V2 V4         V5                  V6
+1  1  a  A 2004-01-01 2004-01-01 12:00:00
+2  2  b  B 2004-02-01 2004-02-01 12:00:00
+3  3  c  C 2004-03-01 2004-03-01 12:00:00
+> unlist(sapply(.Last.value, class))
+         V1          V2          V4          V5         V61         V62 
+  "integer"    "factor" "character"      "Date"   "POSIXct"    "POSIXt" 
+> read.table(foo, colClasses = c("factor",NA,"NULL","factor","Date","POSIXct"))
+  V1 V2 V4         V5                  V6
+1  1  a  A 2004-01-01 2004-01-01 12:00:00
+2  2  b  B 2004-02-01 2004-02-01 12:00:00
+3  3  c  C 2004-03-01 2004-03-01 12:00:00
+> unlist(sapply(.Last.value, class))
+       V1        V2        V4        V5       V61       V62 
+ "factor"  "factor"  "factor"    "Date" "POSIXct"  "POSIXt" 
+> read.table(foo, colClasses = c(V4="character"))
+  V1 V2 V3 V4         V5               V6
+1  1  a  1  A 2004-01-01 2004-01-01 12:00
+2  2  b  2  B 2004-02-01 2004-02-01 12:00
+3  3  c  3  C 2004-03-01 2004-03-01 12:00
+> unlist(sapply(.Last.value, class))
+         V1          V2          V3          V4          V5          V6 
+  "integer"    "factor"   "integer" "character"    "factor"    "factor" 
+> unlink(foo)
+> ## added in 2.0.0
+> 
+> 
+> ## write.table with complex columns (PR#7260, in part)
+> write.table(data.frame(x = 0.5+1:4, y = 1:4 + 1.5i), file = "")
+"x" "y"
+"1" 1.5 1+1.5i
+"2" 2.5 2+1.5i
+"3" 3.5 3+1.5i
+"4" 4.5 4+1.5i
+> # printed all as complex in 2.0.0.
+> write.table(data.frame(x = 0.5+1:4, y = 1:4 + 1.5i), file = "", dec=",")
+"x" "y"
+"1" 1,5 1+1,5i
+"2" 2,5 2+1,5i
+"3" 3,5 3+1,5i
+"4" 4,5 4+1,5i
+> ## used '.' not ',' in 2.0.0
+> 
+> ## splinefun() value test
+> (x <- seq(0,6, length=25))
+ [1] 0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00 3.25 3.50
+[16] 3.75 4.00 4.25 4.50 4.75 5.00 5.25 5.50 5.75 6.00
+> mx <- sapply(c("fmm", "nat", "per"),
++              function(m) splinefun(1:5, c(1,2,4,3,1), method = m)(x))
+> cbind(x,mx)
+         x       fmm         nat       per
+ [1,] 0.00 5.3333333  0.46428571 3.0000000
+ [2,] 0.25 3.5312500  0.59821429 2.4062500
+ [3,] 0.50 2.2500000  0.73214286 1.8125000
+ [4,] 0.75 1.4270833  0.86607143 1.3125000
+ [5,] 1.00 1.0000000  1.00000000 1.0000000
+ [6,] 1.25 0.9062500  1.14118304 0.9453125
+ [7,] 1.50 1.0833333  1.32589286 1.1250000
+ [8,] 1.75 1.4687500  1.59765625 1.4921875
+ [9,] 2.00 2.0000000  2.00000000 2.0000000
+[10,] 2.25 2.6093750  2.54854911 2.5937500
+[11,] 2.50 3.2083333  3.14732143 3.1875000
+[12,] 2.75 3.7031250  3.67243304 3.6875000
+[13,] 3.00 4.0000000  4.00000000 4.0000000
+[14,] 3.25 4.0312500  4.03962054 4.0546875
+[15,] 3.50 3.8333333  3.83482143 3.8750000
+[16,] 3.75 3.4687500  3.46261161 3.5078125
+[17,] 4.00 3.0000000  3.00000000 3.0000000
+[18,] 4.25 2.4843750  2.51171875 2.4062500
+[19,] 4.50 1.9583333  2.01339286 1.8125000
+[20,] 4.75 1.4531250  1.50837054 1.3125000
+[21,] 5.00 1.0000000  1.00000000 1.0000000
+[22,] 5.25 0.6302083  0.49107143 0.9453125
+[23,] 5.50 0.3750000 -0.01785714 1.1250000
+[24,] 5.75 0.2656250 -0.52678571 1.4921875
+[25,] 6.00 0.3333333 -1.03571429 2.0000000
+> 
+> 
+> ## infinite loop in read.fwf (PR#7350)
+> cat(file="test.txt", sep = "\n", "# comment 1", "1234567   # comment 2",
++     "1 234567  # comment 3", "12345  67 # comment 4", "# comment 5")
+> read.fwf("test.txt", width=c(2,2,3), skip=1, n=4) # looped
+  V1 V2  V3
+1 12 34 567
+2  1 23 456
+3 12 34   5
+> read.fwf("test.txt", width=c(2,2,3), skip=1)      # 1 line short
+  V1 V2  V3
+1 12 34 567
+2  1 23 456
+3 12 34   5
+> read.fwf("test.txt", width=c(2,2,3), skip=0)
+  V1 V2  V3
+1 12 34 567
+2  1 23 456
+3 12 34   5
+> unlink("test.txt")
+> ##
+> 
+> 
+> ## split was not handling lists and raws
+> split(as.list(1:3), c(1,1,2))
+$`1`
+$`1`[[1]]
+[1] 1
+
+$`1`[[2]]
+[1] 2
+
+
+$`2`
+$`2`[[1]]
+[1] 3
+
+
+> (y <- charToRaw("A test string"))
+ [1] 41 20 74 65 73 74 20 73 74 72 69 6e 67
+> (z <- split(y, rep(1:5, times=c(1,1,4,1,6))))
+$`1`
+[1] 41
+
+$`2`
+[1] 20
+
+$`3`
+[1] 74 65 73 74
+
+$`4`
+[1] 20
+
+$`5`
+[1] 73 74 72 69 6e 67
+
+> sapply(z, rawToChar)
+       1        2        3        4        5 
+     "A"      " "   "test"      " " "string" 
+> ## wrong results in 2.0.0
+> 
+> 
+> ## tests of changed S3 implicit classes in 2.1.0
+> foo <- function(x, ...) UseMethod("foo")
+> foo.numeric <- function(x) cat("numeric arg\n")
+> foo(1:10)
+numeric arg
+> foo(pi)
+numeric arg
+> foo(matrix(1:10, 2, 5))
+numeric arg
+> foo.integer <- function(x) cat("integer arg\n")
+> foo.double <- function(x) cat("double arg\n")
+> foo(1:10)
+integer arg
+> foo(pi)
+double arg
+> foo(matrix(1:10, 2, 5))
+integer arg
+> ##
+> 
+> 
+> ## str() interpreted escape sequences prior to 2.1.0
+> x <- "ab\bc\ndef"
+> str(x)
+ chr "ab\bc\ndef"
+> str(x, vec.len=0)# failed in rev 32244
+ chr  ...
+> str(factor(x))
+ Factor w/ 1 level "ab\bc\ndef": 1
+> 
+> x <- c("a", NA, "b")
+> factor(x)
+[1] a    <NA> b   
+Levels: a b
+> factor(x, exclude="")
+[1] a    <NA> b   
+Levels: a b <NA>
+> str(x)
+ chr [1:3] "a" NA "b"
+> str(factor(x))
+ Factor w/ 2 levels "a","b": 1 NA 2
+> str(factor(x, exclude=""))
+ Factor w/ 3 levels "a","b",NA: 1 3 2
+> ##
+> 
+> 
+> ## print.factor(quote=TRUE) was not quoting levels
+> x <- c("a", NA, "b", 'a " test') #" (comment for fontification)
+> factor(x)
+[1] a        <NA>     b        a " test
+Levels: a a " test b
+> factor(x, exclude="")
+[1] a        <NA>     b        a " test
+Levels: a a " test b <NA>
+> print(factor(x), quote=TRUE)
+[1] "a"         NA          "b"         "a \" test"
+Levels: "a" "a \" test" "b"
+> print(factor(x, exclude=""), quote=TRUE)
+[1] "a"         NA          "b"         "a \" test"
+Levels: "a" "a \" test" "b" NA
+> ## last two printed levels differently from values in 2.0.1
+> 
+> 
+> ## write.table in marginal cases
+> x <- matrix(, 3, 0)
+> write.table(x) # 3 rows
+"1" 
+"2" 
+"3" 
+> write.table(x, row.names=FALSE)
+
+
+
+> # note: scan and read.table won't read this as they take empty fields as NA
+> ## was 1 row in 2.0.1
+> 
+> 
+> ## More tests of write.table
+> x <- list(a=1, b=1:2, c=3:4, d=5)
+> dim(x) <- c(2,2)
+> x
+     [,1]      [,2]     
+[1,] 1         Integer,2
+[2,] Integer,2 5        
+> write.table(x)
+"V1" "V2"
+"1" 1 3:4
+"2" 1:2 5
+> 
+> x1 <- data.frame(a=1:2, b=I(matrix(LETTERS[1:4], 2, 2)), c = c("(i)", "(ii)"))
+> x1
+  a b.1 b.2    c
+1 1   A   C  (i)
+2 2   B   D (ii)
+> write.table(x1) # In 2.0.1 had 3 headers, 4 cols
+"a" "b.1" "b.2" "c"
+"1" 1 A C "(i)"
+"2" 2 B D "(ii)"
+> write.table(x1, quote=c(2,3,4))
+"a" "b.1" "b.2" "c"
+"1" 1 "A" "C" "(i)"
+"2" 2 "B" "D" "(ii)"
+> 
+> x2 <- data.frame(a=1:2, b=I(list(a=1, b=2)))
+> x2
+  a b
+a 1 1
+b 2 2
+> write.table(x2)
+"a" "b"
+"a" 1 1
+"b" 2 2
+> 
+> x3 <- seq(as.Date("2005-01-01"), len=6, by="day")
+> x4 <- data.frame(x=1:6, y=x3)
+> dim(x3) <- c(2,3)
+> x3
+[1] "2005-01-01" "2005-01-02" "2005-01-03" "2005-01-04" "2005-01-05"
+[6] "2005-01-06"
+> write.table(x3) # matrix, so loses class
+"V1" "V2" "V3"
+"1" 12784 12786 12788
+"2" 12785 12787 12789
+> x4
+  x          y
+1 1 2005-01-01
+2 2 2005-01-02
+3 3 2005-01-03
+4 4 2005-01-04
+5 5 2005-01-05
+6 6 2005-01-06
+> write.table(x4) # preserves class, does not quote
+"x" "y"
+"1" 1 2005-01-01
+"2" 2 2005-01-02
+"3" 3 2005-01-03
+"4" 4 2005-01-04
+"5" 5 2005-01-05
+"6" 6 2005-01-06
+> ##
+> 
+> 
+> ## Problem with earlier regexp code spotted by KH
+> grep("(.*s){2}", "Arkansas", v = TRUE)
+[1] "Arkansas"
+> grep("(.*s){3}", "Arkansas", v = TRUE)
+character(0)
+> grep("(.*s){3}", state.name, v = TRUE)
+[1] "Massachusetts" "Mississippi"  
+> ## Thought Arkansas had 3 s's.
+> 
+> 
+> ## Replacing part of a non-existent column could create a short column.
+> xx<- data.frame(a=1:4, b=letters[1:4])
+> xx[2:3, "c"] <- 2:3
+> ## gave short column in R < 2.1.0.
+> 
+> 
+> ## add1/drop1 could give misleading results if missing values were involved
+> y <- rnorm(1:20)
+> x <- 1:20; x[10] <- NA
+> x2 <- runif(20); x2[20] <- NA
+> fit <- lm(y ~ x)
+> drop1(fit)
+Single term deletions
+
+Model:
+y ~ x
+       Df Sum of Sq    RSS    AIC
+<none>              20.191 5.1555
+x       1    1.4798 21.671 4.4993
+> res <-  try(stats:::drop1.default(fit))
+Error in stats:::drop1.default(fit) : 
+  number of rows in use has changed: remove missing values?
+> stopifnot(inherits(res, "try-error"))
+> add1(fit, ~ . +x2)
+Single term additions
+
+Model:
+y ~ x
+       Df Sum of Sq    RSS    AIC
+<none>              17.605 3.6005
+x2      1  0.011746 17.593 5.5885
+Warning message:
+In add1.lm(fit, ~. + x2) : using the 18/19 rows from a combined fit
+> res <-  try(stats:::add1.default(fit, ~ . +x2))
+Error in stats:::add1.default(fit, ~. + x2) : 
+  number of rows in use has changed: remove missing values?
+> stopifnot(inherits(res, "try-error"))
+> ## 2.0.1 ran and gave incorrect answers.
+> 
+> 
+> ## (PR#7789) escaped quotes in the first five lines for read.table
+> tf <- tempfile()
+> x <- c("6 'TV2  Shortland Street'",
++        "2 'I don\\\'t watch TV at 7'",
++        "1 'I\\\'m not bothered, whatever that looks good'",
++        "2 'I channel surf'")
+> writeLines(x, tf)
+> read.table(tf)
+  V1                                         V2
+1  6                      TV2  Shortland Street
+2  2                      I don't watch TV at 7
+3  1 I'm not bothered, whatever that looks good
+4  2                             I channel surf
+> x <- c("6 'TV2  Shortland Street'",
++        "2 'I don''t watch TV at 7'",
++        "1 'I''m not bothered, whatever that looks good'",
++        "2 'I channel surf'")
+> writeLines(x, tf)
+> read.table(tf, sep=" ")
+  V1                                         V2
+1  6                      TV2  Shortland Street
+2  2                      I don't watch TV at 7
+3  1 I'm not bothered, whatever that looks good
+4  2                             I channel surf
+> unlink(tf)
+> ## mangled in 2.0.1
+> 
+> 
+> ## (PR#7802) printCoefmat(signif.legend =FALSE) failed
+> set.seed(123)
+> cmat <- cbind(rnorm(3, 10), sqrt(rchisq(3, 12)))
+> cmat <- cbind(cmat, cmat[,1]/cmat[,2])
+> cmat <- cbind(cmat, 2*pnorm(-cmat[,3]))
+> colnames(cmat) <- c("Estimate", "Std.Err", "Z value", "Pr(>z)")
+> printCoefmat(cmat, signif.stars = TRUE)
+     Estimate Std.Err Z value    Pr(>z)    
+[1,]  11.3092  2.8636  3.9493 7.837e-05 ***
+[2,]  11.2301  3.5301  3.1812  0.001467 ** 
+[3,]   9.9161  3.0927  3.2063  0.001344 ** 
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+> printCoefmat(cmat, signif.stars = TRUE, signif.legend = FALSE)
+     Estimate Std.Err Z value    Pr(>z)    
+[1,]  11.3092  2.8636  3.9493 7.837e-05 ***
+[2,]  11.2301  3.5301  3.1812  0.001467 ** 
+[3,]   9.9161  3.0927  3.2063  0.001344 ** 
+> # no stars, so no legend
+> printCoefmat(cmat, signif.stars = FALSE)
+     Estimate Std.Err Z value    Pr(>z)
+[1,]  11.3092  2.8636  3.9493 7.837e-05
+[2,]  11.2301  3.5301  3.1812  0.001467
+[3,]   9.9161  3.0927  3.2063  0.001344
+> printCoefmat(cmat, signif.stars = TRUE, signif.legend = TRUE)
+     Estimate Std.Err Z value    Pr(>z)    
+[1,]  11.3092  2.8636  3.9493 7.837e-05 ***
+[2,]  11.2301  3.5301  3.1812  0.001467 ** 
+[3,]   9.9161  3.0927  3.2063  0.001344 ** 
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+> ## did not work in 2.1.0
+> 
+> 
+> ## PR#7824 subscripting an array by a matrix
+> x <- matrix(1:6, ncol=2)
+> x[rbind(c(1,1), c(2,2))]
+[1] 1 5
+> x[rbind(c(1,1), c(2,2), c(0,1))]
+[1] 1 5
+> x[rbind(c(1,1), c(2,2), c(0,0))]
+[1] 1 5
+> x[rbind(c(1,1), c(2,2), c(0,2))]
+[1] 1 5
+> x[rbind(c(1,1), c(2,2), c(0,3))]
+[1] 1 5
+> x[rbind(c(1,1), c(2,2), c(1,0))]
+[1] 1 5
+> x[rbind(c(1,1), c(2,2), c(2,0))]
+[1] 1 5
+> x[rbind(c(1,1), c(2,2), c(3,0))]
+[1] 1 5
+> x[rbind(c(1,0), c(0,2), c(3,0))]
+integer(0)
+> x[rbind(c(1,0), c(0,0), c(3,0))]
+integer(0)
+> x[rbind(c(1,1), c(2,2), c(1,2))]
+[1] 1 5 4
+> x[rbind(c(1,1), c(2,NA), c(1,2))]
+[1]  1 NA  4
+> x[rbind(c(1,0), c(2,NA), c(1,2))]
+[1] NA  4
+> try(x[rbind(c(1,1), c(2,2), c(-1,2))])
+Error in x[rbind(c(1, 1), c(2, 2), c(-1, 2))] : 
+  negative values are not allowed in a matrix subscript
+> try(x[rbind(c(1,1), c(2,2), c(-2,2))])
+Error in x[rbind(c(1, 1), c(2, 2), c(-2, 2))] : 
+  negative values are not allowed in a matrix subscript
+> try(x[rbind(c(1,1), c(2,2), c(-3,2))])
+Error in x[rbind(c(1, 1), c(2, 2), c(-3, 2))] : 
+  negative values are not allowed in a matrix subscript
+> try(x[rbind(c(1,1), c(2,2), c(-4,2))])
+Error in x[rbind(c(1, 1), c(2, 2), c(-4, 2))] : 
+  negative values are not allowed in a matrix subscript
+> try(x[rbind(c(1,1), c(2,2), c(-1,-1))])
+Error in x[rbind(c(1, 1), c(2, 2), c(-1, -1))] : 
+  negative values are not allowed in a matrix subscript
+> try(x[rbind(c(1,1,1), c(2,2,2))])
+[1] 1 2 1 2 1 2
+> 
+> # verify that range checks are applied to negative indices
+> x <- matrix(1:6, ncol=3)
+> try(x[rbind(c(1,1), c(2,2), c(-3,3))])
+Error in x[rbind(c(1, 1), c(2, 2), c(-3, 3))] : 
+  negative values are not allowed in a matrix subscript
+> try(x[rbind(c(1,1), c(2,2), c(-4,3))])
+Error in x[rbind(c(1, 1), c(2, 2), c(-4, 3))] : 
+  negative values are not allowed in a matrix subscript
+> ## generally allowed in 2.1.0.
+> 
+> 
+> ## printing RAW matrices/arrays was not implemented
+> s <- sapply(0:7, function(i) rawShift(charToRaw("my text"),i))
+> s
+     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
+[1,]   6d   da   b4   68   d0   a0   40   80
+[2,]   79   f2   e4   c8   90   20   40   80
+[3,]   20   40   80   00   00   00   00   00
+[4,]   74   e8   d0   a0   40   80   00   00
+[5,]   65   ca   94   28   50   a0   40   80
+[6,]   78   f0   e0   c0   80   00   00   00
+[7,]   74   e8   d0   a0   40   80   00   00
+> dim(s) <- c(7,4,2)
+> s
+, , 1
+
+     [,1] [,2] [,3] [,4]
+[1,]   6d   da   b4   68
+[2,]   79   f2   e4   c8
+[3,]   20   40   80   00
+[4,]   74   e8   d0   a0
+[5,]   65   ca   94   28
+[6,]   78   f0   e0   c0
+[7,]   74   e8   d0   a0
+
+, , 2
+
+     [,1] [,2] [,3] [,4]
+[1,]   d0   a0   40   80
+[2,]   90   20   40   80
+[3,]   00   00   00   00
+[4,]   40   80   00   00
+[5,]   50   a0   40   80
+[6,]   80   00   00   00
+[7,]   40   80   00   00
+
+> ## empty < 2.1.1
+> 
+> 
+> ## interpretation of '.' directly by model.matrix
+> dd <- data.frame(a = gl(3,4), b = gl(4,1,12))
+> model.matrix(~ .^2, data = dd)
+   (Intercept) a2 a3 b2 b3 b4 a2:b2 a3:b2 a2:b3 a3:b3 a2:b4 a3:b4
+1            1  0  0  0  0  0     0     0     0     0     0     0
+2            1  0  0  1  0  0     0     0     0     0     0     0
+3            1  0  0  0  1  0     0     0     0     0     0     0
+4            1  0  0  0  0  1     0     0     0     0     0     0
+5            1  1  0  0  0  0     0     0     0     0     0     0
+6            1  1  0  1  0  0     1     0     0     0     0     0
+7            1  1  0  0  1  0     0     0     1     0     0     0
+8            1  1  0  0  0  1     0     0     0     0     1     0
+9            1  0  1  0  0  0     0     0     0     0     0     0
+10           1  0  1  1  0  0     0     1     0     0     0     0
+11           1  0  1  0  1  0     0     0     0     1     0     0
+12           1  0  1  0  0  1     0     0     0     0     0     1
+attr(,"assign")
+ [1] 0 1 1 2 2 2 3 3 3 3 3 3
+attr(,"contrasts")
+attr(,"contrasts")$a
+[1] "contr.treatment"
+
+attr(,"contrasts")$b
+[1] "contr.treatment"
+
+> ## lost ^2 in 2.1.1
+> 
+> 
+> ## add1.lm and drop.lm did not know about offsets (PR#8049)
+> set.seed(2)
+> y <- rnorm(10)
+> z <- 1:10
+> lm0 <- lm(y ~ 1)
+> lm1 <- lm(y ~ 1, offset = 1:10)
+> lm2 <- lm(y ~ z, offset = 1:10)
+> 
+> add1(lm0, scope = ~ z)
+Single term additions
+
+Model:
+y ~ 1
+       Df  Sum of Sq    RSS      AIC
+<none>               6.3161 -2.59479
+z       1 0.00029765 6.3158 -0.59526
+> anova(lm1, lm2)
+Analysis of Variance Table
+
+Model 1: y ~ 1
+Model 2: y ~ z
+  Res.Df    RSS Df Sum of Sq     F    Pr(>F)    
+1      9 89.130                                 
+2      8  6.316  1    82.814 104.9 7.099e-06 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+> add1(lm1, scope = ~ z)
+Single term additions
+
+Model:
+y ~ 1
+       Df Sum of Sq    RSS     AIC
+<none>              89.130 23.8751
+z       1    82.814  6.316 -0.5953
+> drop1(lm2)
+Single term deletions
+
+Model:
+y ~ z
+       Df Sum of Sq    RSS     AIC
+<none>               6.316 -0.5953
+z       1    82.814 89.130 23.8751
+> ## Last two ignored the offset in 2.1.1
+> 
+> 
+> ## tests of raw conversion
+> as.raw(1234)
+[1] 00
+Warning message:
+out-of-range values treated as 0 in coercion to raw 
+> as.raw(list(a=1234))
+[1] 00
+Warning message:
+out-of-range values treated as 0 in coercion to raw 
+> ## 2.1.1: spurious and missing messages, wrong result for second.
+> 
+> 
+> ### end of tests added in 2.1.1 patched ###
+> 
+> 
+> ## Tests of logical matrix indexing with NAs
+> df1 <- data.frame(a = c(NA, 0, 3, 4)); m1 <- as.matrix(df1)
+> df2 <- data.frame(a = c(NA, 0, 0, 4)); m2 <- as.matrix(df2)
+> df1[df1 == 0] <- 2; df1
+   a
+1 NA
+2  2
+3  3
+4  4
+> m1[m1 == 0] <- 2;   m1
+      a
+[1,] NA
+[2,]  2
+[3,]  3
+[4,]  4
+> df2[df2 == 0] <- 2; df2  # not allowed in 2.{0,1}.z
+   a
+1 NA
+2  2
+3  2
+4  4
+> m2[m2 == 0] <- 2;   m2
+      a
+[1,] NA
+[2,]  2
+[3,]  2
+[4,]  4
+> df1[df1 == 2] # this is first coerced to a matrix, and drops to a vector
+[1] NA  2
+> df3 <- data.frame(a=1:2, b=2:3)
+> df3[df3 == 2]            # had spurious names
+[1] 2 2
+> # but not allowed
+> ## (modified to make printed result the same whether numeric() is
+> ##  compiled or interpreted)
+> ## try(df2[df2 == 2] <- 1:2)
+> ## try(m2[m2 == 2] <- 1:2)
+> tryCatch(df2[df2 == 2] <- 1:2,
++          error = function(e) paste("Error:", conditionMessage(e)))
+[1] "Error: NAs are not allowed in subscripted assignments"
+> tryCatch(m2[m2 == 2] <- 1:2,
++          error = function(e) paste("Error:", conditionMessage(e)))
+[1] "Error: NAs are not allowed in subscripted assignments"
+> ##
+> 
+> 
+> ## vector indexing of matrices: issue is when rownames are used
+> # 1D array
+> m1 <- c(0,1,2,0)
+> dim(m1) <- 4
+> dimnames(m1) <- list(1:4)
+> m1[m1 == 0]                        # has rownames
+1 4 
+0 0 
+> m1[which(m1 == 0)]                 # has rownames
+1 4 
+0 0 
+> m1[which(m1 == 0, arr.ind = TRUE)] # no names < 2.2.0 (side effect of PR#937)
+1 4 
+0 0 
+> 
+> # 2D array with 2 cols
+> m2 <- as.matrix(data.frame(a=c(0,1,2,0), b=0:3))
+> m2[m2 == 0]                        # a vector, had names < 2.2.0
+[1] 0 0 0
+> m2[which(m2 == 0)]                 # a vector, had names < 2.2.0
+[1] 0 0 0
+> m2[which(m2 == 0, arr.ind = TRUE)] # no names (PR#937)
+[1] 0 0 0
+> 
+> # 2D array with one col: could use rownames but do not.
+> m21 <- m2[, 1, drop = FALSE]
+> m21[m21 == 0]
+[1] 0 0
+> m21[which(m21 == 0)]
+[1] 0 0
+> m21[which(m21 == 0, arr.ind = TRUE)]
+[1] 0 0
+> ## not consistent < 2.2.0: S never gives names
+> 
+> 
+> ## tests of indexing as quoted in Extract.Rd
+> x <- NULL
+> x$foo <- 2
+> x # length-1 vector
+$foo
+[1] 2
+
+> x <- NULL
+> x[[2]] <- pi
+> x # numeric vector
+[1]       NA 3.141593
+> x <- NULL
+> x[[1]] <- 1:3
+> x # list
+[[1]]
+[1] 1 2 3
+
+> ##
+> 
+> 
+> ## printing of a kernel:
+> kernel(1)
+unknown 
+coef[0] = 1
+> ## printed wrongly in R <= 2.1.1
+> 
+> 
+> ## using NULL as a replacement value
+> DF <- data.frame(A=1:2, B=3:4)
+> try(DF[2, 1:3] <- NULL)
+Error in `[<-.data.frame`(`*tmp*`, 2, 1:3, value = NULL) : 
+  replacement has length zero
+> ## wrong error message in R < 2.2.0
+> 
+> 
+> ## tests of signif
+> ob <- 0:9 * 2000
+> print(signif(ob, 3), digits=17) # had rounding error in 2.1.1
+ [1]     0  2000  4000  6000  8000 10000 12000 14000 16000 18000
+> signif(1.2347e-305, 4)
+[1] 1.235e-305
+> signif(1.2347e-306, 4)  # only 3 digits in 2.1.1
+[1] 1.235e-306
+> signif(1.2347e-307, 4)
+[1] 1.235e-307
+> ##
+> 
+> ### end of tests added in 2.2.0 patched ###
+> 
+> 
+> ## printing lists with NA names
+> A <- list(1, 2)
+> names(A) <- c("NA", NA)
+> A
+$`NA`
+[1] 1
+
+$<NA>
+[1] 2
+
+> ## both printed as "NA" in 2.2.0
+> 
+> 
+> ## subscripting with both NA and "NA" names
+> x <- 1:4
+> names(x) <- c(NA, "NA", "a", "")
+> x[names(x)]
+<NA>   NA    a <NA> 
+  NA    2    3   NA 
+> ## 2.2.0 had the second matching the first.
+> lx <- as.list(x)
+> lx[[as.character(NA)]]
+NULL
+> lx[as.character(NA)]
+$<NA>
+NULL
+
+> ## 2.2.0 had both matching element 1
+> 
+> 
+> ## data frame replacement subscripting
+> # Charles C. Berry, R-devel, 2005-10-26
+> a.frame <- data.frame( x=letters[1:5] )
+> a.frame[ 2:5, "y" ] <- letters[2:5]
+> a.frame  # added rows 1:4
+  x    y
+1 a <NA>
+2 b    b
+3 c    c
+4 d    d
+5 e    e
+> # and adding and replacing matrices failed
+> a.frame[ ,"y" ] <- matrix(1:10, 5, 2)
+> a.frame
+  x y.1 y.2
+1 a   1   6
+2 b   2   7
+3 c   3   8
+4 d   4   9
+5 e   5  10
+> a.frame[3:5 ,"y" ] <- matrix(1:6, 3, 2)
+> a.frame
+  x y.1 y.2
+1 a   1   6
+2 b   2   7
+3 c   1   4
+4 d   2   5
+5 e   3   6
+> a.frame <- data.frame( x=letters[1:5] )
+> a.frame[3:5 ,"y" ] <- matrix(1:6, 3, 2)
+> a.frame
+  x y.1 y.2
+1 a  NA  NA
+2 b  NA  NA
+3 c   1   4
+4 d   2   5
+5 e   3   6
+> ## failed/wrong ans in 2.2.0
+> 
+> 
+> ### end of tests added in 2.2.0 patched ###
+> 
+> 
+> ## test of fix of trivial warning PR#8252
+> pairs(iris[1:4], oma=rep(3,4))
+> ## warned in 2.2.0 only
+> 
+> 
+> ## str(<dendrogram>)
+> dend <- as.dendrogram(hclust(dist(USArrests), "ave")) # "print()" method
+> dend2 <- cut(dend, h=70)
+> str(dend2$upper)
+--[dendrogram w/ 2 branches and 4 members at h = 152]
+  |--[dendrogram w/ 2 branches and 2 members at h = 77.6]
+  |  |--leaf "Branch 1" (h= 38.5 midpoint = 0.5, x.member = 2 )
+  |  `--leaf "Branch 2" (h= 44.3 midpoint = 5.03, x.member = 14 )
+  `--[dendrogram w/ 2 branches and 2 members at h = 89.2]
+     |--leaf "Branch 3" (h= 44.8 midpoint = 6.8, x.member = 14 )
+     `--leaf "Branch 4" (h= 54.7 midpoint = 7.65, x.member = 20 )
+> ## {{for Emacs: `}}  gave much too many spaces in 2.2.[01]
+> 
+> 
+> ## formatC on Windows (PR#8337)
+> xx  <- pi * 10^(-5:4)
+> cbind(formatC(xx, wid = 9))
+      [,1]       
+ [1,] "3.142e-05"
+ [2,] "0.0003142"
+ [3,] " 0.003142"
+ [4,] "  0.03142"
+ [5,] "   0.3142"
+ [6,] "    3.142"
+ [7,] "    31.42"
+ [8,] "    314.2"
+ [9,] "     3142"
+[10,] "3.142e+04"
+> cbind(formatC(xx, wid = 9, flag = "-"))
+      [,1]       
+ [1,] "3.142e-05"
+ [2,] "0.0003142"
+ [3,] "0.003142 "
+ [4,] "0.03142  "
+ [5,] "0.3142   "
+ [6,] "3.142    "
+ [7,] "31.42    "
+ [8,] "314.2    "
+ [9,] "3142     "
+[10,] "3.142e+04"
+> cbind(formatC(xx, wid = 9, flag = "0"))
+      [,1]       
+ [1,] "3.142e-05"
+ [2,] "0.0003142"
+ [3,] "00.003142"
+ [4,] "000.03142"
+ [5,] "0000.3142"
+ [6,] "00003.142"
+ [7,] "000031.42"
+ [8,] "0000314.2"
+ [9,] "000003142"
+[10,] "3.142e+04"
+> ## extra space on 2.2.1
+> 
+> 
+> ## an impossible glm fit
+> success <- c(13,12,11,14,14,11,13,11,12)
+> failure <- c(0,0,0,0,0,0,0,2,2)
+> predictor <- c(0, 5^(0:7))
+> try(glm(cbind(success,failure) ~ 0+predictor, family = binomial(link="log")))
+Error : no valid set of coefficients has been found: please supply starting values
+> # no coefficient is possible as the first case will have mu = 1
+> ## 2.2.1 gave a subscript out of range warning instead.
+> 
+> 
+> ## error message from solve (PR#8494)
+> temp <- diag(1, 5)[, 1:4]
+> rownames(temp) <- as.character(1:5)
+> colnames(temp) <- as.character(1:4)
+> try(solve(temp))
+Error in solve.default(temp) : 'a' (5 x 4) must be square
+> # also complex
+> try(solve(temp+0i))
+Error in solve.default(temp + (0+0i)) : 'a' (5 x 4) must be square
+> # and non-comformant systems
+> try(solve(temp, diag(3)))
+Error in solve.default(temp, diag(3)) : 'a' (5 x 4) must be square
+> ## gave errors from rownames<- in 2.2.1
+> 
+> 
+> ## PR#8462 terms.formula(simplify = TRUE) needs parentheses.
+> update.formula (Reaction ~ Days + (Days | Subject), . ~ . + I(Days^2))
+Reaction ~ Days + (Days | Subject) + I(Days^2)
+> ## < 2.3.0 dropped parens on second term.
+> 
+> 
+> ## PR#8528: errors in the post-2.1.0 pgamma
+> pgamma(seq(0.75, 1.25, by=0.05)*1e100, shape = 1e100, log=TRUE)
+ [1] -3.768207e+98 -2.314355e+98 -1.251893e+98 -5.360516e+97 -1.293294e+97
+ [6] -6.931472e-01  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
+[11]  0.000000e+00
+> pgamma(seq(0.75, 1.25, by=0.05)*1e100, shape = 1e100, log=TRUE, lower=FALSE)
+ [1]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
+ [6] -6.931472e-01 -1.209836e+97 -4.689820e+97 -1.023806e+98 -1.767844e+98
+[11] -2.685645e+98
+> pgamma(c(1-1e-10, 1+1e-10)*1e100, shape = 1e100)
+[1] 0 1
+> pgamma(0.9*1e25, 1e25, log=TRUE)
+[1] -5.360516e+22
+> ## were NaN, -Inf etc in 2.2.1.
+> 
+> 
+> ## + for POSIXt objects was non-commutative
+> # SPSS-style dates
+> c(10485849600,10477641600,10561104000,10562745600)+ISOdate(1582,10,14)
+[1] "1915-01-26 12:00:00 GMT" "1914-10-23 12:00:00 GMT"
+[3] "1917-06-15 12:00:00 GMT" "1917-07-04 12:00:00 GMT"
+> ## was in the local time zone in 2.2.1.
+> 
+> 
+> ## Limiting lines on deparse (wishlist PR#8638)
+> op <- options(deparse.max.lines = 3)
+> f <- function(...) browser()
+> do.call(f, mtcars)
+Called from: (function (...) 
+browser())(mpg = c(21, 21, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 
+22.8, 19.2, 17.8, 16.4, 17.3, 15.2, 10.4, 10.4, 14.7, 32.4, 30.4, 
+  ...
+Browse[1]> c
+> 
+> options(error = expression(NULL))
+> f <- function(...) stop()
+> do.call(f, mtcars)
+Error in (function (...)  : 
+Calls: do.call -> <Anonymous>
+> traceback()
+3: stop()
+2: (function (...) 
+   stop())(mpg = c(21, 21, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 
+   19.2, 17.8, 16.4, 17.3, 15.2, 10.4, 10.4, 14.7, 32.4, 30.4, 33.9, 
+    ...
+1: do.call(f, mtcars)
+> 
+> options(op)
+> ## unlimited < 2.3.0
+> 
+> 
+> ## row names in as.table (PR#8652)
+> as.table(matrix(1:60, ncol=2))
+    A  B
+A   1 31
+B   2 32
+C   3 33
+D   4 34
+E   5 35
+F   6 36
+G   7 37
+H   8 38
+I   9 39
+J  10 40
+K  11 41
+L  12 42
+M  13 43
+N  14 44
+O  15 45
+P  16 46
+Q  17 47
+R  18 48
+S  19 49
+T  20 50
+U  21 51
+V  22 52
+W  23 53
+X  24 54
+Y  25 55
+Z  26 56
+A1 27 57
+B1 28 58
+C1 29 59
+D1 30 60
+> ## rows past 26 had NA row names
+> 
+> 
+> ## summary on a glm with zero weights and estimated dispersion (PR#8720)
+> y <- rnorm(10)
+> x <- 1:10
+> w <- c(rep(1,9), 0)
+> summary(glm(y ~ x, weights = w))
+
+Call:
+glm(formula = y ~ x, weights = w)
+
+Deviance Residuals: 
+    Min       1Q   Median       3Q      Max  
+-1.7806  -0.1416   0.1863   0.5690   1.2057  
+
+Coefficients:
+            Estimate Std. Error t value Pr(>|t|)
+(Intercept)  -0.7532     0.7862  -0.958    0.370
+x             0.1311     0.1397   0.938    0.379
+
+(Dispersion parameter for gaussian family taken to be 1.17125)
+
+    Null deviance: 9.2298  on 8  degrees of freedom
+Residual deviance: 8.1988  on 7  degrees of freedom
+AIC: Inf
+
+Number of Fisher Scoring iterations: 2
+
+Warning message:
+In summary.glm(glm(y ~ x, weights = w)) :
+  observations with zero weight not used for calculating dispersion
+> summary(glm(y ~ x, subset = w > 0))
+
+Call:
+glm(formula = y ~ x, subset = w > 0)
+
+Deviance Residuals: 
+    Min       1Q   Median       3Q      Max  
+-1.7806  -0.1582   0.3726   0.5896   1.2057  
+
+Coefficients:
+            Estimate Std. Error t value Pr(>|t|)
+(Intercept)  -0.7532     0.7862  -0.958    0.370
+x             0.1311     0.1397   0.938    0.379
+
+(Dispersion parameter for gaussian family taken to be 1.17125)
+
+    Null deviance: 9.2298  on 8  degrees of freedom
+Residual deviance: 8.1988  on 7  degrees of freedom
+AIC: 30.702
+
+Number of Fisher Scoring iterations: 2
+
+> ## has NA dispersion in 2.2.1
+> 
+> 
+> ## substitute was losing "..." after r37269
+> yaa <- function(...) substitute(list(...))
+> yaa(foo(...))
+list(foo(...))
+> ## and wasn't substituting after "..."
+> substitute(list(..., x), list(x=1))
+list(..., 1)
+> ## fixed for 2.3.0
+> 
+> 
+> ## uniroot never warned (PR#8750)
+> ff <- function(x) (x-pi)^3
+> uniroot(ff, c(-10,10), maxiter=10)
+$root
+[1] 3.291126
+
+$f.root
+[1] 0.003343587
+
+$iter
+[1] 10
+
+$init.it
+[1] NA
+
+$estim.prec
+[1] 0.8295023
+
+Warning message:
+In uniroot(ff, c(-10, 10), maxiter = 10) : _NOT_ converged in 10 iterations
+> ## should warn, did not < 2.3.0
+> 
+> 
+> ### end of tests added in 2.3.0 ###
+> 
+> 
+> ## prod etc on empty lists and raw vectors
+> try(min(list()))
+Error in min(list()) : invalid 'type' (list) of argument
+> try(max(list()))
+Error in max(list()) : invalid 'type' (list) of argument
+> try(sum(list()))
+Error in sum(list()) : invalid 'type' (list) of argument
+> try(prod(list()))
+Error in prod(list()) : invalid 'type' (list) of argument
+> try(min(raw()))
+Error in min(raw()) : invalid 'type' (raw) of argument
+> try(max(raw()))
+Error in max(raw()) : invalid 'type' (raw) of argument
+> try(sum(raw()))
+Error in sum(raw()) : invalid 'type' (raw) of argument
+> try(prod(raw()))
+Error in prod(raw()) : invalid 'type' (raw) of argument
+> ## Inf, -Inf, list(NULL) etc in 2.2.1
+> 
+> r <- hist(rnorm(100), plot = FALSE, breaks = 12,
++           ## arguments which don't make sense for plot=FALSE - give a warning:
++           xlab = "N(0,1)", col = "blue")
+Warning message:
+In hist.default(rnorm(100), plot = FALSE, breaks = 12, xlab = "N(0,1)",  :
+  arguments 'col', 'xlab' are not made use of
+> ## gave no warning in 2.3.0 and earlier
+> 
+> 
+> ## rbind.data.frame on permuted cols (PR#8868)
+> d1 <- data.frame(x=1:10, y=letters[1:10], z=1:10)
+> d2 <- data.frame(y=LETTERS[1:5], z=5:1, x=7:11)
+> rbind(d1, d2)
+    x y  z
+1   1 a  1
+2   2 b  2
+3   3 c  3
+4   4 d  4
+5   5 e  5
+6   6 f  6
+7   7 g  7
+8   8 h  8
+9   9 i  9
+10 10 j 10
+11  7 A  5
+12  8 B  4
+13  9 C  3
+14 10 D  2
+15 11 E  1
+> # got factor y  wrong in 2.3.0
+> # and failed with duplicated col names.
+> d1 <- data.frame(x=1:2, y=5:6, x=8:9, check.names=FALSE)
+> d2 <- data.frame(x=3:4, x=-(1:2), y=8:9, check.names=FALSE)
+> rbind(d1, d2)
+  x y  x
+1 1 5  8
+2 2 6  9
+3 3 8 -1
+4 4 9 -2
+> ## corrupt in 2.3.0
+> 
+> 
+> ## sort.list on complex vectors was unimplemented prior to 2.4.0
+> x <- rep(2:1, c(2, 2)) + 1i*c(4, 1, 2, 3)
+> (o <- sort.list(x))
+[1] 3 4 2 1
+> x[o]
+[1] 1+2i 1+3i 2+1i 2+4i
+> sort(x)  # for a cross-check
+[1] 1+2i 1+3i 2+1i 2+4i
+> ##
+> 
+> 
+> ## PR#9044 write.table(quote=TRUE, row.names=FALSE) did not quote column names
+> m <- matrix(1:9, nrow=3, dimnames=list(c("A","B","C"),  c("I","II","III")))
+> write.table(m)
+"I" "II" "III"
+"A" 1 4 7
+"B" 2 5 8
+"C" 3 6 9
+> write.table(m, col.names=FALSE)
+"A" 1 4 7
+"B" 2 5 8
+"C" 3 6 9
+> write.table(m, row.names=FALSE)
+"I" "II" "III"
+1 4 7
+2 5 8
+3 6 9
+> # wrong < 2.3.1 patched.
+> write.table(m, quote=FALSE)
+I II III
+A 1 4 7
+B 2 5 8
+C 3 6 9
+> write.table(m, col.names=FALSE, quote=FALSE)
+A 1 4 7
+B 2 5 8
+C 3 6 9
+> write.table(m, row.names=FALSE, quote=FALSE)
+I II III
+1 4 7
+2 5 8
+3 6 9
+> d <- as.data.frame(m)
+> write.table(d)
+"I" "II" "III"
+"A" 1 4 7
+"B" 2 5 8
+"C" 3 6 9
+> write.table(d, col.names=FALSE)
+"A" 1 4 7
+"B" 2 5 8
+"C" 3 6 9
+> write.table(d, row.names=FALSE)
+"I" "II" "III"
+1 4 7
+2 5 8
+3 6 9
+> write.table(d, quote=FALSE)
+I II III
+A 1 4 7
+B 2 5 8
+C 3 6 9
+> write.table(d, col.names=FALSE, quote=FALSE)
+A 1 4 7
+B 2 5 8
+C 3 6 9
+> write.table(d, row.names=FALSE, quote=FALSE)
+I II III
+1 4 7
+2 5 8
+3 6 9
+> write.table(m, quote=numeric(0)) # not the same as FALSE
+"I" "II" "III"
+"A" 1 4 7
+"B" 2 5 8
+"C" 3 6 9
+> ##
+> 
+> 
+> ## removing variable from baseenv
+> try(remove("ls", envir=baseenv()))
+Error in remove("ls", envir = baseenv()) : 
+  cannot remove variables from the base environment
+> try(remove("ls", envir=asNamespace("base")))
+Error in remove("ls", envir = asNamespace("base")) : 
+  cannot remove variables from base namespace
+> ## no message in 2.3.1
+> 
+> 
+> ## tests of behaviour of factors
+> (x <- factor(LETTERS[1:5])[2:4])
+[1] B C D
+Levels: A B C D E
+> x[2]
+[1] C
+Levels: A B C D E
+> x[[2]]
+[1] C
+Levels: A B C D E
+> stopifnot(identical(x[2], x[[2]]))
+> as.list(x)
+[[1]]
+[1] B
+Levels: A B C D E
+
+[[2]]
+[1] C
+Levels: A B C D E
+
+[[3]]
+[1] D
+Levels: A B C D E
+
+> (xx <- unlist(as.list(x)))
+[1] B C D
+Levels: A B C D E
+> stopifnot(identical(x, xx))
+> as.vector(x, "list")
+[[1]]
+[1] B
+Levels: A B C D E
+
+[[2]]
+[1] C
+Levels: A B C D E
+
+[[3]]
+[1] D
+Levels: A B C D E
+
+> (sx <- sapply(x, function(.).))
+[1] B C D
+Levels: A B C D E
+> stopifnot(identical(x, sx))
+> ## changed in 2.4.0
+> 
+> 
+> ## as.character on a factor with "NA" level
+> as.character(as.factor(c("AB", "CD", NA)))
+[1] "AB" "CD" NA  
+> as.character(as.factor(c("NA", "CD", NA)))  # use <NA> is 2.3.x
+[1] "NA" "CD" NA  
+> as.vector(as.factor(c("NA", "CD", NA)))     # but this did not
+[1] "NA" "CD" NA  
+> ## used <NA> before
+> 
+> 
+> ## [ on a zero-column data frame, names of such
+> data.frame()[FALSE]
+data frame with 0 columns and 0 rows
+> names(data.frame())
+character(0)
+> # gave NULL names and hence spurious warning.
+> 
+> 
+> ## residuals from zero-weight glm fits
+> d.AD <- data.frame(treatment = gl(3,3), outcome = gl(3,1,9),
++                    counts = c(18,17,15,20,10,20,25,13,12))
+> fit <- glm(counts ~ outcome + treatment, family = poisson,
++            data = d.AD, weights = c(0, rep(1,8)))
+> residuals(fit, type="working") # first was NA < 2.4.0
+          1           2           3           4           5           6 
+-0.31250000  0.15546875 -0.13231383 -0.11111111 -0.20909091  0.34622824 
+          7           8           9 
+ 0.11111111  0.02818182 -0.19226306 
+> ## working residuals were NA for zero-weight cases.
+> fit2 <- glm(counts ~ outcome + treatment, family = poisson,
++            data = d.AD, weights = c(0, rep(1,8)), y = FALSE)
+> for(z in c("response", "working", "deviance", "pearson"))
++     stopifnot(all.equal(residuals(fit, type=z), residuals(fit2, type=z),
++                         scale = 1, tolerance = 1e-10))
+> 
+> ## apply on arrays with zero extents
+> ## Robin Hankin, R-help, 2006-02-13
+> A <- array(0, c(3, 0, 4))
+> dimnames(A) <- list(D1 = letters[1:3], D2 = NULL, D3 = LETTERS[1:4])
+> f <- function(x) 5
+> apply(A, 1:2, f)
+   D2
+D1 
+  a
+  b
+  c
+> apply(A, 1, f)
+a b c 
+5 5 5 
+> apply(A, 2, f)
+numeric(0)
+> ## dropped dims in 2.3.1
+> 
+> 
+> ## print a factor with names
+> structure(factor(1:4), names = letters[1:4])
+a b c d 
+1 2 3 4 
+Levels: 1 2 3 4
+> ## dropped names < 2.4.0
+> 
+> 
+> ## some tests of factor matrices
+> A <- factor(7:12)
+> dim(A) <- c(2, 3)
+> A
+     [,1] [,2] [,3]
+[1,] 7    9    11  
+[2,] 8    10   12  
+Levels: 7 8 9 10 11 12
+> str(A)
+ factor [1:2, 1:3] 7 8 9 10 ...
+ - attr(*, "levels")= chr [1:6] "7" "8" "9" "10" ...
+> A[, 1:2]
+     [,1] [,2]
+[1,] 7    9   
+[2,] 8    10  
+Levels: 7 8 9 10 11 12
+> A[, 1:2, drop=TRUE]
+[1] 7  8  9  10
+Levels: 7 8 9 10
+> A[1,1] <- "9"
+> A
+     [,1] [,2] [,3]
+[1,] 9    9    11  
+[2,] 8    10   12  
+Levels: 7 8 9 10 11 12
+> ## misbehaved < 2.4.0
+> 
+> 
+> ## [dpqr]t with vector ncp
+> nc <- c(0, 0.0001, 1)
+> dt(1.8, 10, nc)
+[1] 0.08311639 0.08312972 0.26650393
+> pt(1.8, 10, nc)
+[1] 0.9489739 0.9489641 0.7584267
+> qt(0.95, 10, nc)
+[1] 1.812461 1.812579 3.041742
+> ## gave warnings in 2.3.1, short answer for qt.
+> dt(1.8, 10, -nc[-1])
+[1] 0.08310306 0.01074629
+> pt(1.8, 10, -nc[-1])
+[1] 0.9489837 0.9949472
+> qt(0.95, 10, -nc[-1])
+[1] 1.8123429 0.6797902
+> ## qt in 2.3.1 did not allow negative ncp.
+> 
+> 
+> ## merge() used to insert row names as factor, not character, so
+> ## sorting was unexpected.
+> A <- data.frame(a = 1:4)
+> row.names(A) <- c("2002-11-15", "2002-12-15", "2003-01-15", "2003-02-15")
+> B <- data.frame(b = 1:4)
+> row.names(B) <- c("2002-09-15", "2002-10-15", "2002-11-15", "2002-12-15")
+> merge(A, B, by=0, all=TRUE)
+   Row.names  a  b
+1 2002-09-15 NA  1
+2 2002-10-15 NA  2
+3 2002-11-15  1  3
+4 2002-12-15  2  4
+5 2003-01-15  3 NA
+6 2003-02-15  4 NA
+> 
+> 
+> ## assigning to a list loop index could alter the index (PR#9216)
+> L <- list(a = list(txt = "original value"))
+> f <- function(LL) {
++     for (ll in LL) ll$txt <- "changed in f"
++     LL
++ }
+> f(L)
+$a
+$a$txt
+[1] "original value"
+
+
+> L
+$a
+$a$txt
+[1] "original value"
+
+
+> ## both were changed < 2.4.0
+> 
+> 
+> ## summary.mlm misbehaved with na.action = na.exclude
+> n <- 50
+> x <- runif(n=n)
+> y1 <- 2 * x + rnorm(n=n)
+> y2 <- 5 * x + rnorm(n=n)
+> y2[sample(1:n, size=5)] <- NA
+> y <- cbind(y1, y2)
+> fit <- lm(y ~ 1, na.action="na.exclude")
+> summary(fit)
+Response y1 :
+
+Call:
+lm(formula = y1 ~ 1, na.action = "na.exclude")
+
+Residuals:
+    Min      1Q  Median      3Q     Max 
+-3.2806 -0.9057  0.0500  0.8020  2.5458 
+
+Coefficients:
+            Estimate Std. Error t value Pr(>|t|)    
+(Intercept)   1.1866     0.1797   6.602  4.4e-08 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 1.206 on 44 degrees of freedom
+  (5 observations deleted due to missingness)
+
+
+Response y2 :
+
+Call:
+lm(formula = y2 ~ 1, na.action = "na.exclude")
+
+Residuals:
+    Min      1Q  Median      3Q     Max 
+-4.4712 -0.6591  0.3364  1.0945  3.6686 
+
+Coefficients:
+            Estimate Std. Error t value Pr(>|t|)    
+(Intercept)   2.8988     0.2586   11.21 1.75e-14 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 1.735 on 44 degrees of freedom
+  (5 observations deleted due to missingness)
+
+
+> ## failed < 2.4.0
+> 
+> RNGkind("default","default")## reset to default - ease  R core
+> 
+> ## prettyNum lost attributes (PR#8695)
+> format(matrix(1:16, 4), big.mark = ",")
+     [,1] [,2] [,3] [,4]
+[1,] " 1" " 5" " 9" "13"
+[2,] " 2" " 6" "10" "14"
+[3,] " 3" " 7" "11" "15"
+[4,] " 4" " 8" "12" "16"
+> ## was a vector < 2.4.0
+> 
+> 
+> ## printing of complex numbers of very different magnitudes
+> 1e100  + 1e44i
+[1] 1e+100+0e+00i
+> 1e100 + pi*1i*10^(c(-100,0,1,40,100))
+[1] 1e+100+ 0.000000e+00i 1e+100+ 0.000000e+00i 1e+100+ 0.000000e+00i
+[4] 1e+100+ 0.000000e+00i 1e+100+3.141593e+100i
+> ## first was silly, second not rounded correctly in 2.2.0 - 2.3.1
+> ## We don't get them lining up, but that is a printf issue
+> ## that only happens for very large complex nos.
+> 
+> 
+> ### end of tests added in 2.4.0 ###
+> 
+> 
+> ## Platform-specific behaviour in lowess reported to R-help
+> ## 2006-10-12 by Frank Harrell
+> x <- c(0,7,8,14,15,120,242)
+> y <- c(122,128,130,158,110,110,92)
+> lowess(x, y, iter=0)
+$x
+[1]   0   7   8  14  15 120 242
+
+$y
+[1] 121.95735 128.00000 131.06649 136.93673 126.76467 109.99903  92.00003
+
+> lowess(x, y)
+$x
+[1]   0   7   8  14  15 120 242
+
+$y
+[1] 122 128 128 158 110 110  92
+
+> ## MAD of iterated residuals was zero, and result depended on the platform.
+> 
+> 
+> ## PR#9263: problems with R_Visible
+> a <- list(b=5)
+> a[[(t<-'b')]]
+[1] 5
+> x <- matrix(5:-6, 3)
+> x[2, invisible(3)]
+[1] -2
+> ## both invisible in 2.4.0
+> 
+> 
+> ### end of tests added in 2.4.1 ###
+> 
+> 
+> ## tests of deparsing
+> x <-list(a = NA, b = as.integer(NA), c=0+NA, d=0i+NA,
++          e = 1, f = 1:1, g = 1:3, h = c(NA, 1:3),
++          i = as.character(NA), j = c("foo", NA, "bar")
++          )
+> dput(x, control=NULL)
+list(a = NA, b = NA, c = NA, d = NA, e = 1, f = 1, g = 1:3, h = c(NA, 
+1, 2, 3), i = NA, j = c("foo", NA, "bar"))
+> dput(x, control="keepInteger")
+list(a = NA, b = NA_integer_, c = NA, d = NA, e = 1, f = 1L, 
+    g = 1:3, h = c(NA, 1L, 2L, 3L), i = NA, j = c("foo", NA, 
+    "bar"))
+> dput(x, control="keepNA")
+list(a = NA, b = NA_integer_, c = NA_real_, d = NA_complex_, 
+    e = 1, f = 1, g = 1:3, h = c(NA, 1, 2, 3), i = NA_character_, 
+    j = c("foo", NA, "bar"))
+> dput(x)
+structure(list(a = NA, b = NA_integer_, c = NA_real_, d = NA_complex_, 
+    e = 1, f = 1L, g = 1:3, h = c(NA, 1L, 2L, 3L), i = NA_character_, 
+    j = c("foo", NA, "bar")), .Names = c("a", "b", "c", "d", 
+"e", "f", "g", "h", "i", "j"))
+> dput(x, control="all")
+structure(list(a = NA, b = NA_integer_, c = NA_real_, d = NA_complex_, 
+    e = 1, f = 1L, g = 1:3, h = c(NA, 1L, 2L, 3L), i = NA_character_, 
+    j = c("foo", NA, "bar")), .Names = c("a", "b", "c", "d", 
+"e", "f", "g", "h", "i", "j"))
+> dput(x, control=c("all", "S_compatible"))
+structure(list(a = NA, b = as.integer(NA), c = as.double(NA), 
+    d = as.complex(NA), e = 1., f = as.integer(1), g = 1:3, h = as.integer(c(NA, 
+    1, 2, 3)), i = as.character(NA), j = c("foo", NA, "bar")), .Names = c("a", 
+"b", "c", "d", "e", "f", "g", "h", "i", "j"))
+> tmp <- tempfile()
+> dput(x, tmp, control="all")
+> stopifnot(identical(dget(tmp), x))
+> dput(x, tmp, control=c("all", "S_compatible"))
+> stopifnot(identical(dget(tmp), x))
+> unlink(tmp)
+> ## changes in 2.5.0
+> 
+> 
+> ## give better error message for nls with no parameters
+> ## Ivo Welch, R-help, 2006-12-23.
+> d <- data.frame(y= runif(10), x=runif(10))
+> try(nls(y ~ 1/(1+x), data = d, start=list(x=0.5,y=0.5), trace=TRUE))
+Error in nls(y ~ 1/(1 + x), data = d, start = list(x = 0.5, y = 0.5),  : 
+  no parameters to fit
+> ## changed in 2.4.1 patched
+> 
+> 
+> ## cut(breaks="years"), in part PR#9433
+> cut(as.Date(c("2000-01-17","2001-01-13","2001-01-20")), breaks="years")
+[1] 2000-01-01 2001-01-01 2001-01-01
+Levels: 2000-01-01 2001-01-01
+> cut(as.POSIXct(c("2000-01-17","2001-01-13","2001-01-20")), breaks="years")
+[1] 2000-01-01 2001-01-01 2001-01-01
+Levels: 2000-01-01 2001-01-01
+> ## did not get day 01 < 2.4.1 patched
+> 
+> 
+> ## manipulating rownames: problems in pre-2.5.0
+> A <- data.frame(a=character(0))
+> try(row.names(A) <- 1:10) # succeeded in Dec 2006
+Error in `row.names<-.data.frame`(`*tmp*`, value = 1:10) : 
+  invalid 'row.names' length
+> A <- list(a=1:3)
+> class(A) <- "data.frame"
+> row.names(A) <- letters[24:26] # failed at one point in Dec 2006
+> A
+  a
+x 1
+y 2
+z 3
+> ##
+> 
+> 
+> ## extreme cases for subsetting of data frames
+> w <- women[1, ]
+> w[]
+  height weight
+1     58    115
+> w[,drop = TRUE]
+  height weight
+1     58    115
+Warning message:
+In `[.data.frame`(w, , drop = TRUE) : 'drop' argument will be ignored
+> w[1,]
+  height weight
+1     58    115
+> w[,]
+  height weight
+1     58    115
+> w[1, , drop = FALSE]
+  height weight
+1     58    115
+> w[, , drop = FALSE]
+  height weight
+1     58    115
+> w[1, , drop = TRUE]
+$height
+[1] 58
+
+$weight
+[1] 115
+
+> w[, , drop = TRUE]
+$height
+[1] 58
+
+$weight
+[1] 115
+
+> ## regression test: code changed for 2.5.0
+> 
+> 
+> ## data.frame() with zero columns ignored 'row.names'
+> (x <- data.frame(row.names=1:4))
+data frame with 0 columns and 4 rows
+> nrow(x)
+[1] 4
+> row.names(x)
+[1] "1" "2" "3" "4"
+> attr(x, "row.names")
+[1] 1 2 3 4
+> ## ignored prior to 2.5.0.
+> 
+> 
+> ## identical on data.frames
+> d0 <- d1 <- data.frame(1:4, row.names=1:4)
+> row.names(d0) <- NULL
+> dput(d0)
+structure(list(X1.4 = 1:4), .Names = "X1.4", row.names = c(NA, 
+-4L), class = "data.frame")
+> dput(d1)
+structure(list(X1.4 = 1:4), .Names = "X1.4", row.names = c(NA, 
+4L), class = "data.frame")
+> identical(d0, d1)
+[1] TRUE
+> all.equal(d0, d1)
+[1] TRUE
+> row.names(d1) <- as.character(1:4)
+> dput(d1)
+structure(list(X1.4 = 1:4), .Names = "X1.4", row.names = c("1", 
+"2", "3", "4"), class = "data.frame")
+> identical(d0, d1)
+[1] FALSE
+> all.equal(d0, d1)
+[1] "Attributes: < Component \"row.names\": Modes: numeric, character >"              
+[2] "Attributes: < Component \"row.names\": target is numeric, current is character >"
+> ## identical used internal representation prior to 2.5.0
+> 
+> 
+> ## all.equal
+> # ignored check.attributes in 2.4.1
+> all.equal(data.frame(x=1:5, row.names=letters[1:5]),
++           data.frame(x=1:5,row.names=LETTERS[1:5]),
++           check.attributes=FALSE)
+[1] TRUE
+> # treated logicals as numeric
+> all.equal(c(T, F, F), c(T, T, F))
+[1] "1 element mismatch"
+> all.equal(c(T, T, F), c(T, F, F))
+[1] "1 element mismatch"
+> # ignored raw:
+> all.equal(as.raw(1:3), as.raw(1:3))
+[1] TRUE
+> all.equal(as.raw(1:3), as.raw(3:1))
+[1] "2 element mismatches"
+> ##
+> 
+> 
+> ## tests of deparsing
+> # if we run this from stdin, we will have no source, so fake it
+> f <- function(x, xm  = max(1L, x)) {xx <- 0L; yy <- NA_real_}
+> attr(f, "srcref") <- srcref(srcfilecopy("",
++     "function(x, xm  = max(1L, x)) {xx <- 0L; yy <- NA_real_}"),
++     c(1L, 1L, 1L, 56L))
+> f # uses the source
+function(x, xm  = max(1L, x)) {xx <- 0L; yy <- NA_real_}
+> dput(f) # not source
+function (x, xm = max(1L, x)) 
+{
+    xx <- 0L
+    yy <- NA_real_
+}
+> dput(f, control="all") # uses the source
+function(x, xm  = max(1L, x)) {xx <- 0L; yy <- NA_real_}
+> cat(deparse(f), sep="\n")
+function (x, xm = max(1L, x)) 
+{
+    xx <- 0L
+    yy <- NA_real_
+}
+> dump("f", file="")
+f <-
+function(x, xm  = max(1L, x)) {xx <- 0L; yy <- NA_real_}
+> # remove the source
+> attr(f, "srcref") <- NULL
+> f
+function (x, xm = max(1L, x)) 
+{
+    xx <- 0L
+    yy <- NA_real_
+}
+> dput(f, control="all")
+function (x, xm = max(1L, x)) 
+{
+    xx <- 0L
+    yy <- NA_real_
+}
+> dump("f", file="")
+f <-
+function (x, xm = max(1L, x)) 
+{
+    xx <- 0L
+    yy <- NA_real_
+}
+> 
+> expression(bin <- bin + 1L)
+expression(bin <- bin + 1L)
+> ## did not preserve e.g. 1L at some point in pre-2.5.0
+> 
+> 
+> ## NAs in substr were handled as large negative numbers
+> x <- "abcde"
+> substr(x, 1, 3)
+[1] "abc"
+> substr(x, NA, 1)
+[1] NA
+> substr(x, 1, NA)
+[1] NA
+> substr(x, NA, 3) <- "abc"; x
+[1] NA
+> substr(x, 1, NA) <- "AA"; x
+[1] NA
+> substr(x, 1, 2) <- NA_character_; x
+[1] NA
+> ## "" or no change in 2.4.1, except last
+> 
+> 
+> ## regression tests for pmin/pmax, rewritten in C for 2.5.0
+> # NULL == integer(0)
+> pmin(NULL, integer(0))
+integer(0)
+> pmax(integer(0), NULL)
+integer(0)
+> pmin(NULL, 1:3)# now ok
+integer(0)
+> pmax(pi, NULL, 2:4)
+numeric(0)
+> 
+> x <- c(1, NA, NA, 4, 5)
+> y <- c(2, NA, 4, NA, 3)
+> pmin(x, y)
+[1]  1 NA NA NA  3
+> stopifnot(identical(pmin(x, y), pmin(y, x)))
+> pmin(x, y, na.rm=TRUE)
+[1]  1 NA  4  4  3
+> stopifnot(identical(pmin(x, y, na.rm=TRUE), pmin(y, x, na.rm=TRUE)))
+> pmax(x, y)
+[1]  2 NA NA NA  5
+> stopifnot(identical(pmax(x, y), pmax(y, x)))
+> pmax(x, y, na.rm=TRUE)
+[1]  2 NA  4  4  5
+> stopifnot(identical(pmax(x, y, na.rm=TRUE), pmax(y, x, na.rm=TRUE)))
+> 
+> x <- as.integer(x); y <- as.integer(y)
+> pmin(x, y)
+[1]  1 NA NA NA  3
+> stopifnot(identical(pmin(x, y), pmin(y, x)))
+> pmin(x, y, na.rm=TRUE)
+[1]  1 NA  4  4  3
+> stopifnot(identical(pmin(x, y, na.rm=TRUE), pmin(y, x, na.rm=TRUE)))
+> pmax(x, y)
+[1]  2 NA NA NA  5
+> stopifnot(identical(pmax(x, y), pmax(y, x)))
+> pmax(x, y, na.rm=TRUE)
+[1]  2 NA  4  4  5
+> stopifnot(identical(pmax(x, y, na.rm=TRUE), pmax(y, x, na.rm=TRUE)))
+> 
+> x <- as.character(x); y <- as.character(y)
+> pmin(x, y)
+[1] "1" NA  NA  NA  "3"
+> stopifnot(identical(pmin(x, y), pmin(y, x)))
+> pmin(x, y, na.rm=TRUE)
+[1] "1" NA  "4" "4" "3"
+> stopifnot(identical(pmin(x, y, na.rm=TRUE), pmin(y, x, na.rm=TRUE)))
+> pmax(x, y)
+[1] "2" NA  NA  NA  "5"
+> stopifnot(identical(pmax(x, y), pmax(y, x)))
+> pmax(x, y, na.rm=TRUE)
+[1] "2" NA  "4" "4" "5"
+> stopifnot(identical(pmax(x, y, na.rm=TRUE), pmax(y, x, na.rm=TRUE)))
+> 
+> # tests of classed quantities
+> x <- .leap.seconds[1:23]; y <- rev(x)
+> x[2] <- y[2] <- x[3] <- y[4] <- NA
+> format(pmin(x, y), tz="GMT")  # TZ names differ by platform
+ [1] "1972-07-01" NA           NA           NA           "1976-01-01"
+ [6] "1977-01-01" "1978-01-01" "1979-01-01" "1980-01-01" "1981-07-01"
+[11] "1982-07-01" "1983-07-01" "1982-07-01" "1981-07-01" "1980-01-01"
+[16] "1979-01-01" "1978-01-01" "1977-01-01" "1976-01-01" "1975-01-01"
+[21] "1974-01-01" "1973-01-01" "1972-07-01"
+> class(pmin(x, y))
+[1] "POSIXct" "POSIXt" 
+> stopifnot(identical(pmin(x, y), pmin(y, x)))
+> format(pmin(x, y, na.rm=TRUE), tz="GMT")
+ [1] "1972-07-01" NA           "1997-07-01" "1975-01-01" "1976-01-01"
+ [6] "1977-01-01" "1978-01-01" "1979-01-01" "1980-01-01" "1981-07-01"
+[11] "1982-07-01" "1983-07-01" "1982-07-01" "1981-07-01" "1980-01-01"
+[16] "1979-01-01" "1978-01-01" "1977-01-01" "1976-01-01" "1975-01-01"
+[21] "1974-01-01" "1973-01-01" "1972-07-01"
+> stopifnot(identical(pmin(x, y, na.rm=TRUE), pmin(y, x, na.rm=TRUE)))
+> format(pmax(x, y), tz="GMT")
+ [1] "2006-01-01" NA           NA           NA           "1994-07-01"
+ [6] "1993-07-01" "1992-07-01" "1991-01-01" "1990-01-01" "1988-01-01"
+[11] "1985-07-01" "1983-07-01" "1985-07-01" "1988-01-01" "1990-01-01"
+[16] "1991-01-01" "1992-07-01" "1993-07-01" "1994-07-01" "1996-01-01"
+[21] "1997-07-01" "1999-01-01" "2006-01-01"
+> stopifnot(identical(pmax(x, y), pmax(y, x)))
+> format(pmax(x, y, na.rm=TRUE), tz="GMT")
+ [1] "2006-01-01" NA           "1997-07-01" "1975-01-01" "1994-07-01"
+ [6] "1993-07-01" "1992-07-01" "1991-01-01" "1990-01-01" "1988-01-01"
+[11] "1985-07-01" "1983-07-01" "1985-07-01" "1988-01-01" "1990-01-01"
+[16] "1991-01-01" "1992-07-01" "1993-07-01" "1994-07-01" "1996-01-01"
+[21] "1997-07-01" "1999-01-01" "2006-01-01"
+> stopifnot(identical(pmax(x, y, na.rm=TRUE), pmax(y, x, na.rm=TRUE)))
+> 
+> x <- as.POSIXlt(x, tz="GMT"); y <- as.POSIXlt(y, tz="GMT")
+> format(pmin(x, y), tz="GMT")
+ [1] "1972-07-01" NA           NA           NA           "1976-01-01"
+ [6] "1977-01-01" "1978-01-01" "1979-01-01" "1980-01-01" "1981-07-01"
+[11] "1982-07-01" "1983-07-01" "1982-07-01" "1981-07-01" "1980-01-01"
+[16] "1979-01-01" "1978-01-01" "1977-01-01" "1976-01-01" "1975-01-01"
+[21] "1974-01-01" "1973-01-01" "1972-07-01"
+> class(pmin(x, y))
+[1] "POSIXlt" "POSIXt" 
+> stopifnot(identical(pmin(x, y), pmin(y, x)))
+> format(pmin(x, y, na.rm=TRUE), tz="GMT")
+ [1] "1972-07-01" NA           "1997-07-01" "1975-01-01" "1976-01-01"
+ [6] "1977-01-01" "1978-01-01" "1979-01-01" "1980-01-01" "1981-07-01"
+[11] "1982-07-01" "1983-07-01" "1982-07-01" "1981-07-01" "1980-01-01"
+[16] "1979-01-01" "1978-01-01" "1977-01-01" "1976-01-01" "1975-01-01"
+[21] "1974-01-01" "1973-01-01" "1972-07-01"
+> stopifnot(identical(pmin(x, y, na.rm=TRUE), pmin(y, x, na.rm=TRUE)))
+> format(pmax(x, y), tz="GMT")
+ [1] "2006-01-01" NA           NA           NA           "1994-07-01"
+ [6] "1993-07-01" "1992-07-01" "1991-01-01" "1990-01-01" "1988-01-01"
+[11] "1985-07-01" "1983-07-01" "1985-07-01" "1988-01-01" "1990-01-01"
+[16] "1991-01-01" "1992-07-01" "1993-07-01" "1994-07-01" "1996-01-01"
+[21] "1997-07-01" "1999-01-01" "2006-01-01"
+> stopifnot(identical(pmax(x, y), pmax(y, x)))
+> format(pmax(x, y, na.rm=TRUE), tz="GMT")
+ [1] "2006-01-01" NA           "1997-07-01" "1975-01-01" "1994-07-01"
+ [6] "1993-07-01" "1992-07-01" "1991-01-01" "1990-01-01" "1988-01-01"
+[11] "1985-07-01" "1983-07-01" "1985-07-01" "1988-01-01" "1990-01-01"
+[16] "1991-01-01" "1992-07-01" "1993-07-01" "1994-07-01" "1996-01-01"
+[21] "1997-07-01" "1999-01-01" "2006-01-01"
+> stopifnot(identical(pmax(x, y, na.rm=TRUE), pmax(y, x, na.rm=TRUE)))
+> ## regresion tests
+> 
+> 
+> ## regression tests on names of 1D arrays
+> x <- as.array(1:3)
+> names(x) <- letters[x] # sets dimnames, really
+> names(x)
+[1] "a" "b" "c"
+> dimnames(x)
+[[1]]
+[1] "a" "b" "c"
+
+> attributes(x)
+$dim
+[1] 3
+
+$dimnames
+$dimnames[[1]]
+[1] "a" "b" "c"
+
+
+> names(x) <- NULL
+> attr(x, "names") <- LETTERS[x] # sets dimnames, really
+> names(x)
+[1] "A" "B" "C"
+> dimnames(x)
+[[1]]
+[1] "A" "B" "C"
+
+> attributes(x)
+$dim
+[1] 3
+
+$dimnames
+$dimnames[[1]]
+[1] "A" "B" "C"
+
+
+> ## regression tests
+> 
+> 
+> ## regression tests on NA attribute names
+> x <- 1:3
+> attr(x, "NA") <- 4
+> attributes(x)
+$`NA`
+[1] 4
+
+> attr(x, "NA")
+[1] 4
+> attr(x, NA_character_)
+NULL
+> try(attr(x, NA_character_) <- 5)
+Error in attr(x, NA_character_) <- 5 : 
+  'name' must be non-null character string
+> ## prior to 2.5.0 NA was treated as "NA"
+> 
+> 
+> ## qr with pivoting (PR#9623)
+> A <- matrix(c(0,0,0, 1,1,1), nrow = 3,
++             dimnames = list(letters[1:3], c("zero","one")))
+> y <- matrix(c(6,7,8), nrow = 3, dimnames = list(LETTERS[1:3], "y"))
+> qr.coef(qr(A), y)
+      y
+zero NA
+one   7
+> qr.fitted(qr(A), y)
+  y
+A 7
+B 7
+C 7
+> 
+> qr.coef(qr(matrix(0:1, 1, dimnames=list(NULL, c("zero","one")))), 5)
+zero  one 
+  NA    5 
+> ## coef names were returned unpivoted <= 2.5.0
+> 
+> ## readChar read extra items, terminated on zeros
+> x <- as.raw(65:74)
+> readChar(x, nchar=c(3,3,0,3,3,3))
+[1] "ABC" "DEF" ""    "GHI" "J"  
+> f <- tempfile()
+> writeChar("ABCDEFGHIJ", con=f, eos=NULL)
+> readChar(f, nchar=c(3,3,0,3,3,3))
+[1] "ABC" "DEF" ""    "GHI" "J"  
+> unlink(f)
+> ##
+> 
+> 
+> ## corner cases for cor
+> set.seed(1)
+> X <- cbind(NA, 1:3, rnorm(3))
+> try(cor(X, use = "complete"))
+Error in cor(X, use = "complete") : no complete element pairs
+> try(cor(X, use = "complete", method="spearman"))
+Error in cor(X, use = "complete", method = "spearman") : 
+  no complete element pairs
+> try(cor(X, use = "complete", method="kendall"))
+Error in cor(X, use = "complete", method = "kendall") : 
+  no complete element pairs
+> cor(X, use = "pair")
+     [,1]       [,2]       [,3]
+[1,]   NA         NA         NA
+[2,]   NA  1.0000000 -0.1942739
+[3,]   NA -0.1942739  1.0000000
+> cor(X, use = "pair", method="spearman")
+     [,1] [,2] [,3]
+[1,]   NA   NA   NA
+[2,]   NA  1.0 -0.5
+[3,]   NA -0.5  1.0
+> cor(X, use = "pair", method="kendall")
+     [,1]       [,2]       [,3]
+[1,]   NA         NA         NA
+[2,]   NA  1.0000000 -0.3333333
+[3,]   NA -0.3333333  1.0000000
+> 
+> X[1,1] <- 1
+> cor(X, use = "complete")
+     [,1] [,2] [,3]
+[1,]   NA   NA   NA
+[2,]   NA   NA   NA
+[3,]   NA   NA   NA
+> cor(X, use = "complete", method="spearman")
+     [,1] [,2] [,3]
+[1,]   NA   NA   NA
+[2,]   NA   NA   NA
+[3,]   NA   NA   NA
+> cor(X, use = "complete", method="kendall")
+     [,1] [,2] [,3]
+[1,]   NA   NA   NA
+[2,]   NA   NA   NA
+[3,]   NA   NA   NA
+> cor(X, use = "pair")
+     [,1]       [,2]       [,3]
+[1,]   NA         NA         NA
+[2,]   NA  1.0000000 -0.1942739
+[3,]   NA -0.1942739  1.0000000
+> cor(X, use = "pair", method="spearman")
+     [,1] [,2] [,3]
+[1,]   NA   NA   NA
+[2,]   NA  1.0 -0.5
+[3,]   NA -0.5  1.0
+> cor(X, use = "pair", method="kendall")
+     [,1]       [,2]       [,3]
+[1,]   NA         NA         NA
+[2,]   NA  1.0000000 -0.3333333
+[3,]   NA -0.3333333  1.0000000
+> ## not consistent in 2.6.x
+> 
+> 
+> ## confint on rank-deficient models (in part, PR#10494)
+> junk <- data.frame(x = rep(1, 10L),
++                    u = factor(sample(c("Y", "N"), 10, replace=TRUE)),
++                    ans = rnorm(10))
+> fit <-  lm(ans ~ x + u, data = junk)
+> confint(fit)
+                 2.5 %    97.5 %
+(Intercept) -0.4634457 1.6198116
+x                   NA        NA
+uY          -2.3607073 0.5854635
+> confint.default(fit)
+                 2.5 %    97.5 %
+(Intercept) -0.3071384 1.4635043
+x                   NA        NA
+uY          -2.1396554 0.3644116
+> ## Mismatch gave NA for 'u' in 2.6.1
+> 
+> 
+> ## corrupt data frame produced by subsetting (PR#10574)
+> x <- data.frame(a=1:3, b=2:4)
+> x[,3] <- x
+Warning message:
+In `[<-.data.frame`(`*tmp*`, , 3, value = list(a = 1:3, b = 2:4)) :
+  provided 2 variables to replace 1 variables
+> x
+  a b a.1
+1 1 2   1
+2 2 3   2
+3 3 4   3
+> ## warning during printing < 2.7.0
+> 
+> 
+> ## format.factor used to lose dim[names] and names (PR#11512)
+> x <- factor(c("aa", letters[-1]))
+> dim(x) <- c(13,2)
+> format(x, justify="right")
+      [,1] [,2]
+ [1,] "aa" " n"
+ [2,] " b" " o"
+ [3,] " c" " p"
+ [4,] " d" " q"
+ [5,] " e" " r"
+ [6,] " f" " s"
+ [7,] " g" " t"
+ [8,] " h" " u"
+ [9,] " i" " v"
+[10,] " j" " w"
+[11,] " k" " x"
+[12,] " l" " y"
+[13,] " m" " z"
+> ##
+> 
+> 
+> ## removing columns in within (PR#1131)
+> abc <- data.frame(a=1:5, b=2:6, c=3:7)
+> within(abc, b<-NULL)
+  a c
+1 1 3
+2 2 4
+3 3 5
+4 4 6
+5 5 7
+> within(abc,{d<-a+7;b<-NULL})
+  a c  d
+1 1 3  8
+2 2 4  9
+3 3 5 10
+4 4 6 11
+5 5 7 12
+> within(abc,{a<-a+7;b<-NULL})
+   a c
+1  8 3
+2  9 4
+3 10 5
+4 11 6
+5 12 7
+> ## Second produced corrupt data frame in 2.7.1
+> 
+> 
+> ## aggregate on an empty data frame (PR#13167)
+> z <- data.frame(a=integer(0), b=numeric(0))
+> try(aggregate(z, by=z[1], FUN=sum))
+Error in aggregate.data.frame(z, by = z[1], FUN = sum) : 
+  no rows to aggregate
+> ## failed in unlist in 2.8.0, now gives explicit message.
+> aggregate(data.frame(a=1:10)[F], list(rep(1:2, each=5)), sum)
+  Group.1
+1       1
+2       2
+> ## used to fail obscurely.
+> 
+> 
+> ## subsetting data frames with duplicate rows
+> z <- data.frame(a=1, a=2, b=3, check.names=FALSE)
+> z[] # OK
+  a a b
+1 1 2 3
+> z[1, ]
+  a a b
+1 1 2 3
+> ## had row names a, a.1, b in 2.8.0.
+> 
+> 
+> ## incorrect warning due to lack of fuzz.
+> TS <-  ts(co2[1:192], freq=24)
+> tmp2 <- window(TS, start(TS), end(TS))
+> ## warned in 2.8.0
+> 
+> ## failed to add tag
+> Call <- call("foo", 1)
+> Call[["bar"]] <- 2
+> Call
+foo(1, bar = 2)
+> ## unnamed call in 2.8.1
+> 
+> options(keep.source = TRUE)
+> ## $<- on pairlists failed to duplicate (from Felix Andrews,
+> ## https://stat.ethz.ch/pipermail/r-devel/2009-January/051698.html)
+> foo <- function(given = NULL) {
++     callObj <- quote(callFunc())
++     if(!is.null(given)) callObj$given <- given
++     if (is.null(given)) callObj$default <- TRUE
++     callObj
++ }
+> 
+> foo()
+callFunc(default = TRUE)
+> foo(given = TRUE)
+callFunc(given = TRUE)
+> foo("blah blah")
+callFunc(given = "blah blah")
+> foo(given = TRUE)
+callFunc(given = TRUE)
+> foo()
+callFunc(default = TRUE)
+> ## altered foo() in 2.8.1.
+> 
+> ## Using  '#' flag in  sprintf():
+> forms <- c("%#7.5g","%#5.f", "%#7x", "%#5d", "%#9.0e")
+> nums <- list(-3.145, -31,   0xabc,  -123L, 123456)
+> rbind(mapply(sprintf, forms,               nums),
++       mapply(sprintf, sub("#", '', forms), nums))
+     %#7.5g    %#5.f   %#7x      %#5d    %#9.0e     
+[1,] "-3.1450" " -31." "  0xabc" " -123" "   1.e+05"
+[2,] " -3.145" "  -31" "    abc" " -123" "    1e+05"
+> ## gave an error in pre-release versions of 2.9.0
+> 
+> ## (auto)printing of functions {with / without source attribute},
+> ## including primitives
+> sink(con <- textConnection("of", "w")) ; c ; sink(NULL); close(con)
+> of2 <- capture.output(print(c))
+> stopifnot(identical(of2, of),
++           identical(of2, "function (...)  .Primitive(\"c\")"))
+> ## ^^ would have failed up to R 2.9.x
+> foo
+function(given = NULL) {
+    callObj <- quote(callFunc())
+    if(!is.null(given)) callObj$given <- given
+    if (is.null(given)) callObj$default <- TRUE
+    callObj
+}
+> print(foo, useSource = FALSE)
+function (given = NULL) 
+{
+    callObj <- quote(callFunc())
+    if (!is.null(given)) 
+        callObj$given <- given
+    if (is.null(given)) 
+        callObj$default <- TRUE
+    callObj
+}
+> attr(foo, "srcref") <- NULL
+> foo
+function (given = NULL) 
+{
+    callObj <- quote(callFunc())
+    if (!is.null(given)) 
+        callObj$given <- given
+    if (is.null(given)) 
+        callObj$default <- TRUE
+    callObj
+}
+> (f <- structure(function(){}, note = "just a note",
++                 yada = function() "not the same"))
+function(){}
+attr(,"note")
+[1] "just a note"
+attr(,"yada")
+function () 
+"not the same"
+> print(f, useSource = FALSE) # must print attributes
+function () 
+{
+}
+attr(,"note")
+[1] "just a note"
+attr(,"yada")
+function () 
+"not the same"
+> print.function <- function(x, ...) { str(x,...); invisible(x) }
+> print.function
+function (x, ...)  
+ - attr(*, "srcref")=Class 'srcref'  atomic [1:8] 1 19 1 63 19 63 1 1
+  .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x30f57d8> 
+> f
+function ()  
+ - attr(*, "srcref")=Class 'srcref'  atomic [1:8] 1 17 1 28 17 28 1 1
+  .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x30e9818> 
+ - attr(*, "note")= chr "just a note"
+ - attr(*, "yada")=function ()  
+  ..- attr(*, "srcref")=Class 'srcref'  atomic [1:8] 2 24 2 48 24 48 2 2
+  .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x30e9818> 
+> rm(print.function)
+> ## auto-printing and printing differed up to R 2.9.x
+> 
+> printCoefmat(cbind(0,1))
+     [,1] [,2]
+[1,]    0    1
+> ## would print NaN up to R 2.9.0
+> 
+> 
+> ## continuity correction for Kendall's tau.  Improves this example.
+> cor.test(c(1, 2, 3, 4, 5), c(8, 6, 7, 5, 3), method = "kendall",
++          exact = TRUE)
+
+	Kendall's rank correlation tau
+
+data:  c(1, 2, 3, 4, 5) and c(8, 6, 7, 5, 3)
+T = 1, p-value = 0.08333
+alternative hypothesis: true tau is not equal to 0
+sample estimates:
+ tau 
+-0.8 
+
+> cor.test(c(1, 2, 3, 4, 5), c(8, 6, 7, 5, 3), method = "kendall",
++          exact = FALSE)
+
+	Kendall's rank correlation tau
+
+data:  c(1, 2, 3, 4, 5) and c(8, 6, 7, 5, 3)
+z = -1.9596, p-value = 0.05004
+alternative hypothesis: true tau is not equal to 0
+sample estimates:
+ tau 
+-0.8 
+
+> cor.test(c(1, 2, 3, 4, 5), c(8, 6, 7, 5, 3), method = "kendall",
++          exact = FALSE, continuity = TRUE)
+
+	Kendall's rank correlation tau
+
+data:  c(1, 2, 3, 4, 5) and c(8, 6, 7, 5, 3)
+z = -1.7146, p-value = 0.08641
+alternative hypothesis: true tau is not equal to 0
+sample estimates:
+ tau 
+-0.8 
+
+> # and a little for Spearman's
+> cor.test(c(1, 2, 3, 4, 5), c(8, 6, 7, 5, 3), method = "spearman",
++          exact = TRUE)
+
+	Spearman's rank correlation rho
+
+data:  c(1, 2, 3, 4, 5) and c(8, 6, 7, 5, 3)
+S = 38, p-value = 0.08333
+alternative hypothesis: true rho is not equal to 0
+sample estimates:
+ rho 
+-0.9 
+
+> cor.test(c(1, 2, 3, 4, 5), c(8, 6, 7, 5, 3), method = "spearman",
++          exact = FALSE)
+
+	Spearman's rank correlation rho
+
+data:  c(1, 2, 3, 4, 5) and c(8, 6, 7, 5, 3)
+S = 38, p-value = 0.03739
+alternative hypothesis: true rho is not equal to 0
+sample estimates:
+ rho 
+-0.9 
+
+> cor.test(c(1, 2, 3, 4, 5), c(8, 6, 7, 5, 3), method = "spearman",
++          exact = FALSE, continuity = TRUE)
+
+	Spearman's rank correlation rho
+
+data:  c(1, 2, 3, 4, 5) and c(8, 6, 7, 5, 3)
+S = 38, p-value = 0.09689
+alternative hypothesis: true rho is not equal to 0
+sample estimates:
+ rho 
+-0.9 
+
+> ## Kendall case is wish of PR#13691
+> 
+> 
+> ## corrupt data frame, PR#13724
+> foo <- matrix(1:12, nrow = 3)
+> bar <- as.data.frame(foo)
+> val <- integer(0)
+> try(bar$NewCol <- val)
+Error in `$<-.data.frame`(`*tmp*`, "NewCol", value = integer(0)) : 
+  replacement has 0 rows, data has 3
+> # similar, not in the report
+> try(bar[["NewCol"]] <- val)
+Error in `[[<-.data.frame`(`*tmp*`, "NewCol", value = integer(0)) : 
+  replacement has 0 rows, data has 3
+> # [ ] is tricker, so just check the result is reasonable and prints
+> bar["NewCol"] <- val
+> bar[, "NewCol2"] <- val
+> bar[FALSE, "NewCol3"] <- val
+> bar
+  V1 V2 V3 V4 NewCol NewCol2 NewCol3
+1  1  4  7 10     NA      NA      NA
+2  2  5  8 11     NA      NA      NA
+3  3  6  9 12     NA      NA      NA
+> ## Succeeded but gave corrupt result in 2.9.0
+> 
+> 
+> ## Printing NA_complex_
+> m22 <- matrix(list(NA_complex_, 3, "A string", NA_complex_), 2,2)
+> print(m22)
+     [,1] [,2]      
+[1,] NA   "A string"
+[2,] 3    NA        
+> print(m22, na.print="<missing value>")
+     [,1]            [,2]           
+[1,] <missing value> "A string"     
+[2,] 3               <missing value>
+> ## used uninitialized variable in C, noticably Windows, for R <= 2.9.0
+> 
+> 
+> ## non-standard variable names in update etc
+> ## never guaranteed to work, requested by Sundar Dorai-Raj in
+> ## https://stat.ethz.ch/pipermail/r-devel/2009-July/054184.html
+> update(`a: b` ~ x, ~ . + y)
+`a: b` ~ x + y
+> ## 2.9.1 dropped backticks
+> 
+> 
+> ## print(ls.str(.)) did evaluate calls
+> E <- new.env(); E$cl <- call("print", "Boo !")
+> ls.str(E)
+cl :  language print("Boo !")
+> ## 2.10.0 did print..
+> 
+> 
+> ## complete.cases with no input
+> try(complete.cases())
+Error in complete.cases() : no input has determined the number of cases
+> try(complete.cases(list(), list()))
+Error in complete.cases(list(), list()) : 
+  no input has determined the number of cases
+> ## gave unhelpful messages in 2.10.0, silly results in pre-2.10.1
+> 
+> 
+> ## error messages from (C-level) evalList
+> tst <- function(y) { stopifnot(is.numeric(y)); y+ 1 }
+> try(tst())
+Error in stopifnot(is.numeric(y)) : 
+  argument "y" is missing, with no default
+> try(c(1,,2))
+Error in c(1, , 2) : argument 2 is empty
+> ## change in 2.8.0 made these less clear
+> 
+> 
+> ## empty levels from cut.Date (cosmetic, PR#14162)
+> x <- as.Date(c("2009-03-21","2009-03-31"))
+> cut(x, breaks= "quarter") # had two levels in 2.10.1
+[1] 2009-01-01 2009-01-01
+Levels: 2009-01-01
+> cut(as.POSIXlt(x), breaks= "quarter")
+[1] 2009-01-01 2009-01-01
+Levels: 2009-01-01
+> ## remove empty final level
+> 
+> 
+> ## tests of error conditions in switch()
+> switch("a", a=, b=, c=, 4)
+[1] 4
+> switch("a", a=, b=, c=, )
+> .Last.value
+NULL
+> switch("a", a=, b=, c=, invisible(4))
+> .Last.value
+[1] 4
+> ## visiblilty changed in 2.11.0
+> 
+> 
+> ## rounding error in aggregate.ts
+> ## https://stat.ethz.ch/pipermail/r-devel/2010-April/057225.html
+> x <- rep(6:10, 1:5)
+> aggregate(as.ts(x), FUN = mean, ndeltat = 5)
+Time Series:
+Start = 1 
+End = 11 
+Frequency = 0.2 
+[1]  7.2  8.8 10.0
+> x <- rep(6:10, 1:5)
+> aggregate(as.ts(x), FUN = mean, nfrequency = 0.2)
+Time Series:
+Start = 1 
+End = 11 
+Frequency = 0.2 
+[1]  7.2  8.8 10.0
+> ## platform-dependent in 2.10.1
+> 
+> 
+> ## wish of PR#9574
+> a <- c(0.1, 0.3, 0.4, 0.5, 0.3, 0.0001)
+> format.pval(a, eps=0.01)
+[1] "0.1"   "0.3"   "0.4"   "0.5"   "0.3"   "<0.01"
+> format.pval(a, eps=0.01, nsmall =2)
+[1] "0.10"  "0.30"  "0.40"  "0.50"  "0.30"  "<0.01"
+> ## granted in 2.12.0
+> 
+> 
+> ## printing fractional dates
+> as.Date(0.5, origin="1969-12-31")
+[1] "1969-12-31"
+> ## changed to round down in 2.12.1
+> 
+> 
+> ## printing data frames with  ""  colnames
+> dfr <- data.frame(x=1:6, CC=11:16, f = gl(3,2)); colnames(dfr)[2] <- ""
+> dfr
+  x    f
+1 1 11 1
+2 2 12 1
+3 3 13 2
+4 4 14 2
+5 5 15 3
+6 6 16 3
+> ## now prints the same as data.matrix(dfr) does here
+> 
+> 
+> ## format(., zero.print) --> prettyNum()
+> set.seed(9); m <- matrix(local({x <- rnorm(40)
++                                 sign(x)*round(exp(2*x))/10}), 8,5)
+> noquote(format(m, zero.print= "."))
+     [,1] [,2] [,3] [,4] [,5]
+[1,]  .   -0.1 -0.1  .    0.8
+[2,]  .    .    .   21.4  0.1
+[3,] -0.1  1.3  0.6  0.2  0.1
+[4,] -0.1  .    .    .    .  
+[5,]  0.2  0.1  3.4  0.2  0.2
+[6,]  .   -0.1  0.1  0.2  .  
+[7,]  1.1  4.0 -0.1  .    0.2
+[8,] -0.1  .    0.6 -0.1  0.1
+> ## used to print  ". 0" instead of ".  "
+> 
+> 
+> ## tests of NA having precedence over NaN -- all must print "NA"
+> min(c(NaN, NA))
+[1] NA
+> min(c(NA, NaN)) # NaN in 2.12.2
+[1] NA
+> min(NaN, NA_real_)  # NaN in 2.12.2
+[1] NA
+> min(NA_real_, NaN)
+[1] NA
+> max(c(NaN, NA))
+[1] NA
+> max(c(NA, NaN))  # NaN in 2.12.2
+[1] NA
+> max(NaN, NA_real_)  # NaN in 2.12.2
+[1] NA
+> max(NA_real_, NaN)
+[1] NA
+> ## might depend on compiler < 2.13.0
+> 
+> 
+> ## PR#14514
+> # Data are from Conover, "Nonparametric Statistics", 3rd Ed, p. 197,
+> # re-arranged to make a lower-tail test the issue of relevance:  we
+> # want to see if pregnant nurses exposed to nitrous oxide have higher
+> # rates of miscarriage, stratifying on the type of nurse.
+> Nitrous <- array(c(32,210,8,26,18,21,3,3,7,75,0,10), dim = c(2,2,3),
++                  dimnames = list(c("Exposed","NotExposed"),
++                  c("FullTerm","Miscarriage"),
++                  c("DentalAsst","OperRoomNurse","OutpatientNurse")))
+> mantelhaen.test(Nitrous, exact=TRUE, alternative="less")
+
+	Exact conditional test of independence in 2 x 2 x k tables
+
+data:  Nitrous
+S = 57, p-value = 0.1959
+alternative hypothesis: true common odds ratio is less than 1
+95 percent confidence interval:
+ 0.000000 1.388197
+sample estimates:
+common odds ratio 
+        0.6652418 
+
+> mantelhaen.test(Nitrous, exact=FALSE, alternative="less")
+
+	Mantel-Haenszel chi-squared test with continuity correction
+
+data:  Nitrous
+Mantel-Haenszel X-squared = 0.71432, df = 1, p-value = 0.199
+alternative hypothesis: true common odds ratio is less than 1
+95 percent confidence interval:
+ 0.000000 1.260053
+sample estimates:
+common odds ratio 
+        0.6645374 
+
+> ## exact = FALSE gave the wrong tail in 2.12.2.
+> 
+> 
+> ## scan(strip.white=TRUE) could strip trailing (but not leading) space
+> ## inside quoted strings.
+> writeLines(' "  A  "; "B" ;"C";" D ";"E ";  F  ;G  ', "foo")
+> cat(readLines("foo"), sep = "\n")
+ "  A  "; "B" ;"C";" D ";"E ";  F  ;G  
+> scan('foo', list(""), sep=";")[[1]]
+Read 7 records
+[1] "   A  " " B "    "C"      " D "    "E "     "  F  "  "G  "   
+> scan('foo', "", sep=";")
+Read 7 items
+[1] "   A  " " B "    "C"      " D "    "E "     "  F  "  "G  "   
+> scan('foo', list(""), sep=";", strip.white = TRUE)[[1]]
+Read 7 records
+[1] "  A  " "B"     "C"     " D "   "E "    "F"     "G"    
+> scan('foo', "", sep=";", strip.white = TRUE)
+Read 7 items
+[1] "  A  " "B"     "C"     " D "   "E "    "F"     "G"    
+> unlink('foo')
+> 
+> writeLines(' "  A  "\n "B" \n"C"\n" D "\n"E "\n  F  \nG  ', "foo2")
+> scan('foo2', "")
+Read 7 items
+[1] "  A  " "B"     "C"     " D "   "E "    "F"     "G"    
+> scan('foo2', "", strip.white=TRUE) # documented to be ignored ...
+Read 7 items
+[1] "  A  " "B"     "C"     " D "   "E "    "F"     "G"    
+> unlink('foo2')
+> ## Changed for 2.13.0, found when investigating non-bug PR#14522.
+> 
+> 
+> ## PR#14488: missing values in rank correlations
+> set.seed(1)
+> x <- runif(10)
+> y <- runif(10)
+> x[3] <- NA; y[5] <- NA
+> xy <- cbind(x, y)
+> 
+> cor(x, y, method = "spearman", use = "complete.obs")
+[1] 0.2380952
+> cor(x, y, method = "spearman", use = "pairwise.complete.obs")
+[1] 0.2380952
+> cor(na.omit(xy),  method = "spearman", use = "complete.obs")
+          x         y
+x 1.0000000 0.2380952
+y 0.2380952 1.0000000
+> cor(xy,  method = "spearman", use = "complete.obs")
+          x         y
+x 1.0000000 0.2380952
+y 0.2380952 1.0000000
+> cor(xy,  method = "spearman", use = "pairwise.complete.obs")
+          x         y
+x 1.0000000 0.2380952
+y 0.2380952 1.0000000
+> ## inconsistent in R < 2.13.0
+> 
+> 
+> ## integer overflow in rowsum() went undetected
+> # https://stat.ethz.ch/pipermail/r-devel/2011-March/060304.html
+> x <- 2e9L
+> rowsum(c(x, x), c("a", "a"))
+  [,1]
+a   NA
+> rowsum(data.frame(z = c(x, x)), c("a", "a"))
+   z
+a NA
+> ## overflow in R < 2.13.0.
+> 
+> 
+> ## method dispatch in [[.data.frame:
+> ## https://stat.ethz.ch/pipermail/r-devel/2011-April/060409.html
+> d <- data.frame(num = 1:4,
++           fac = factor(letters[11:14], levels = letters[1:15]),
++           date = as.Date("2011-04-01") + (0:3),
++           pv = package_version(c("1.2-3", "4.5", "6.7", "8.9-10")))
+> for (i in seq_along(d)) print(d[[1, i]])
+[1] 1
+[1] k
+Levels: a b c d e f g h i j k l m n o
+[1] "2011-04-01"
+[1] '1.2.3'
+> ## did not dispatch in R < 2.14.0
+> 
+> 
+> ## some tests of 24:00 as midnight
+> as.POSIXlt("2011-05-16 24:00:00", tz = "GMT")
+[1] "2011-05-17 GMT"
+> as.POSIXlt("2010-01-31 24:00:00", tz = "GMT")
+[1] "2010-02-01 GMT"
+> as.POSIXlt("2011-02-28 24:00:00", tz = "GMT")
+[1] "2011-03-01 GMT"
+> as.POSIXlt("2008-02-28 24:00:00", tz = "GMT")
+[1] "2008-02-29 GMT"
+> as.POSIXlt("2008-02-29 24:00:00", tz = "GMT")
+[1] "2008-03-01 GMT"
+> as.POSIXlt("2010-12-31 24:00:00", tz = "GMT")
+[1] "2011-01-01 GMT"
+> ## new in 2.14.0
+> 
+> 
+> ## Unwarranted conversion of logical values
+> try(double(FALSE))
+Error in double(FALSE) : invalid 'length' argument
+> x <- 1:3
+> try(length(x) <- TRUE)
+Error in length(x) <- TRUE : invalid value
+> ## coerced to integer in 2.13.x
+> 
+> 
+> ## filter(recursive = TRUE) on input with NAs
+> # https://stat.ethz.ch/pipermail/r-devel/2011-July/061547.html
+> x <- c(1:4, NA, 6:9)
+> cbind(x, "1"=filter(x, 0.5, method="recursive"),
++          "2"=filter(x, c(0.5, 0.0), method="recursive"),
++          "3"=filter(x, c(0.5, 0.0, 0.0), method="recursive"))
+Time Series:
+Start = 1 
+End = 9 
+Frequency = 1 
+   x     1     2     3
+1  1 1.000 1.000 1.000
+2  2 2.500 2.500 2.500
+3  3 4.250 4.250 4.250
+4  4 6.125 6.125 6.125
+5 NA    NA    NA    NA
+6  6    NA    NA    NA
+7  7    NA    NA    NA
+8  8    NA    NA    NA
+9  9    NA    NA    NA
+> ## NAs in wrong place in R <= 2.13.1.
+> 
+> 
+> ## PR#14679.  Format depends if TZ is set.
+> x <- as.POSIXlt(c("2010-02-27 22:30:33", "2009-08-09 06:01:03",
++                   "2010-07-23 17:29:59"))
+> stopifnot(!is.na(trunc(x, units = "days")[1:3]))
+> ## gave NAs after the first in R < 2.13.2
+> 
+> 
+> ## explicit error message for silly input (tol = 0)
+> aa <- c(1, 2, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 13, 14)
+> try(smooth.spline(aa, seq_along(aa)))
+Error in smooth.spline(aa, seq_along(aa)) : 
+  'tol' must be strictly positive and finite
+> fit <- smooth.spline(aa, seq_along(aa), tol = 0.1)
+> # actual output is too unstable to diff.
+> ## Better message from R 2.14.2
+> 
+> 
+> ## PR#14840
+> d <- data.frame(x = 1:9,
++                 y = 1:9 + 0.1*c(1, 2, -1, 0, 1, 1000, 0, 1, -1),
++                 w = c(1, 0.5, 2, 1, 2, 0, 1, 2, 1))
+> fit <- lm(y ~ x, data=d, weights=w)
+> summary(fit)
+
+Call:
+lm(formula = y ~ x, data = d, weights = w)
+
+Weighted Residuals:
+    Min      1Q  Median      3Q     Max 
+-0.1883 -0.0310  0.0000  0.1006  0.1165 
+
+Coefficients:
+            Estimate Std. Error t value Pr(>|t|)    
+(Intercept)  0.03949    0.08612   0.459    0.663    
+x            0.99788    0.01502  66.419 7.83e-10 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 0.1232 on 6 degrees of freedom
+Multiple R-squared:  0.9986,	Adjusted R-squared:  0.9984 
+F-statistic:  4412 on 1 and 6 DF,  p-value: 7.834e-10
+
+> ## issue is how the 5-number summary is labelled
+> ## (also seen in example(case.names))
+> 
+> 
+> ## is.unsorted got it backwards for dataframes of more than one column
+> ## it is supposed to look for violations of x[2] > x[1], x[3] > x[2], etc.
+> is.unsorted(data.frame(x=2:1))
+[1] FALSE
+> is.unsorted(data.frame(x=1:2, y=3:4))
+[1] FALSE
+> is.unsorted(data.frame(x=3:4, y=1:2))
+[1] TRUE
+> ## R < 2.15.1 got these as FALSE, TRUE, FALSE.
+> 
+> 
+> library("methods")# (not needed here)
+> assertError <- tools::assertError
+> assertError( getMethod(ls, "bar", fdef=ls), verbose=TRUE)
+Asserted error: no generic function found for 'ls'
+> assertError( getMethod(show, "bar"), verbose=TRUE)
+Asserted error: no method found for function 'show' and signature bar
+> ## R < 2.15.1 gave
+> ##   cannot coerce type 'closure' to vector of type 'character'
+> 
+> 
+> ## corner cases for array
+> # allowed, gave non-array in 2.15.x
+> try(array(1, integer()))
+Error in array(1, integer()) : 'dims' cannot be of length 0
+> # if no dims, an error to supply dimnames
+> try(array(1, integer(), list(1, 2)))
+Error in array(1, integer(), list(1, 2)) : 'dims' cannot be of length 0
+> ##
+> 
+> 
+> ## is.na() on an empty dataframe (PR#14059)
+> DF <- data.frame(row.names=1:3)
+> is.na(DF); str(.Last.value)
+ 
+1
+2
+3
+ logi[1:3, 0 ] 
+ - attr(*, "dimnames")=List of 2
+  ..$ : chr [1:3] "1" "2" "3"
+  ..$ : NULL
+> is.na(DF[FALSE, ]); str(.Last.value)
+<0 x 0 matrix>
+ logi[0 , 0 ] 
+> ## first failed in R 2.15.1, second gave NULL
+> 
+> 
+> ## split() with dots in levels
+> df <- data.frame(x = rep(c("a", "a.b"), 3L), y = rep(c("b.c", "c"), 3L),
++                  z = 1:6)
+> df
+    x   y z
+1   a b.c 1
+2 a.b   c 2
+3   a b.c 3
+4 a.b   c 4
+5   a b.c 5
+6 a.b   c 6
+> split(df, df[, 1:2]) # default is sep = "."
+$a.b.c
+    x   y z
+1   a b.c 1
+2 a.b   c 2
+3   a b.c 3
+4 a.b   c 4
+5   a b.c 5
+6 a.b   c 6
+
+$a.b.b.c
+[1] x y z
+<0 rows> (or 0-length row.names)
+
+$a.c
+[1] x y z
+<0 rows> (or 0-length row.names)
+
+> split(df, df[, 1:2], sep = ":")
+$`a:b.c`
+  x   y z
+1 a b.c 1
+3 a b.c 3
+5 a b.c 5
+
+$`a.b:b.c`
+[1] x y z
+<0 rows> (or 0-length row.names)
+
+$`a:c`
+[1] x y z
+<0 rows> (or 0-length row.names)
+
+$`a.b:c`
+    x y z
+2 a.b c 2
+4 a.b c 4
+6 a.b c 6
+
+> ##
+> 
+> 
+> ## The difference between sort.list and order
+> z <- c(4L, NA, 2L, 3L, NA, 1L)
+> order(z, na.last = NA)
+[1] 6 3 4 1
+> sort.list(z, na.last = NA)
+[1] 4 2 3 1
+> sort.list(z, na.last = NA, method = "shell")
+[1] 4 2 3 1
+> sort.list(z, na.last = NA, method = "quick")
+[1] 4 2 3 1
+> sort.list(z, na.last = NA, method = "radix")
+[1] 4 2 3 1
+> ## Differences first documented in R 2.15.2
+> 
+> 
+> ## PR#15028: names longer than cutoff NB (= 1000)
+> NB <- 1000
+> lns <- capture.output(
++     setNames(c(255, 1000, 30000),
++              c(paste(rep.int("a", NB+2), collapse=""),
++                paste(rep.int("b", NB+2), collapse=""),
++                paste(rep.int("c", NB+2), collapse=""))))
+> sub("^ +", '', lns[2* 1:3])
+[1] "255 "   "1000 "  "30000 "
+> ## *values* were cutoff when printed
+> 
+> 
+> ## allows deparse limits to be set
+> form <- reallylongnamey ~ reallylongnamex0 + reallylongnamex1 + reallylongnamex2 + reallylongnamex3
+> form
+reallylongnamey ~ reallylongnamex0 + reallylongnamex1 + reallylongnamex2 + 
+    reallylongnamex3
+> op <- options(deparse.cutoff=80)
+> form
+reallylongnamey ~ reallylongnamex0 + reallylongnamex1 + reallylongnamex2 + reallylongnamex3
+> options(deparse.cutoff=50)
+> form
+reallylongnamey ~ reallylongnamex0 + reallylongnamex1 + 
+    reallylongnamex2 + reallylongnamex3
+> options(op)
+> ## fixed to 60 in R 2.15.x
+> 
+> 
+> ## PR#15179: user defined binary ops were not deparsed properly
+> quote( `%^%`(x, `%^%`(y,z)) )
+x %^% (y %^% z)
+> quote( `%^%`(x) )
+`%^%`(x)
+> ##
+> 
+> 
+> ## Anonymous function calls were not deparsed properly
+> substitute(f(x), list(f = function(x) x + 1))
+(function (x) 
+x + 1)(x)
+> substitute(f(x), list(f = quote(function(x) x + 1)))
+(function(x) x + 1)(x)
+> substitute(f(x), list(f = quote(f+g)))
+(f + g)(x)
+> substitute(f(x), list(f = quote(base::mean)))
+base::mean(x)
+> substitute(f(x), list(f = quote(a[n])))
+a[n](x)
+> substitute(f(x), list(f = quote(g(y))))
+g(y)(x)
+> ## The first three need parens, the last three don't.
+> 
+> 
+> ## PR#15247 : str() on invalid data frame names (where print() works):
+> d <- data.frame(1:3, "B", 4); names(d) <- c("A", "B\xba","C\xabcd")
+> str(d)
+'data.frame':	3 obs. of  3 variables:
+ $ A      : int  1 2 3
+ $ B�  : Factor w/ 1 level "B": 1 1 1
+ $ C�cd: num  4 4 4
+> ## gave an error in R <= 3.0.0
+> 
+> 
+> ## PR#15299 : adding a simple vector to a classed object produced a bad result:
+> 1:2 + table(1:2)
+
+1 2 
+2 3 
+> ## Printed the class attribute in R <= 3.0.0
+> 
+> 
+> ## PR#15311 : regmatches<- mishandled regexpr results.
+>   x <- c('1', 'B', '3')
+>   m <- regexpr('\\d', x)
+>   regmatches(x, m) <- c('A', 'C')
+>   print(x)
+[1] "A" "B" "C"
+> ## Gave a warning and a wrong result up to 3.0.1
+> 
+> 
+> ## Bad warning found by Radford Neal
+>   saveopt <- options(warnPartialMatchDollar=TRUE)
+>   pl <- pairlist(abc=1, def=2)
+>   pl$ab
+[1] 1
+Warning message:
+In pl$ab : partial match of 'ab' to 'abc'
+>   if (!is.null(saveopt[["warnPartialMatchDollar"]])) options(saveopt)
+> ## 'abc' was just ''
+> 
+> 
+> ## seq() with NaN etc inputs now gives explicit error messages
+> try(seq(NaN))
+Error in seq.default(NaN) : 'from' cannot be NA, NaN or infinite
+> try(seq(to = NaN))
+Error in seq.default(to = NaN) : 'to' cannot be NA, NaN or infinite
+> try(seq(NaN, NaN))
+Error in seq.default(NaN, NaN) : 'from' cannot be NA, NaN or infinite
+> try(seq.int(NaN))
+Error in seq.int(NaN) : 'from' cannot be NA, NaN or infinite
+> try(seq.int(to = NaN))
+Error in seq.int(to = NaN) : 'to' cannot be NA, NaN or infinite
+> try(seq.int(NaN, NaN))
+Error in seq.int(NaN, NaN) : 'from' cannot be NA, NaN or infinite
+> ## R 3.0.1 gave messages from ':' or about negative-length vectors.
+> 
+> 
+> ## Some dimnames were lost from 1D arrays: PR#15301
+> x <- array(0:2, dim=3, dimnames=list(d1=LETTERS[1:3]))
+> x
+d1
+A B C 
+0 1 2 
+> x[]
+d1
+A B C 
+0 1 2 
+> x[3:1]
+d1
+C B A 
+2 1 0 
+> x <- array(0, dimnames=list(d1="A"))
+> x
+d1
+A 
+0 
+> x[]
+d1
+A 
+0 
+> x[drop = FALSE]
+d1
+A 
+0 
+> ## lost dimnames in 3.0.1
+> 
+> 
+> ## PR#15396
+> load(file.path(Sys.getenv('SRCDIR'), 'arima.rda'))
+> (f1 <- arima(x, xreg = xreg, order = c(1,1,1), seasonal = c(1,0,1)))
+
+Call:
+arima(x = x, order = c(1, 1, 1), seasonal = c(1, 0, 1), xreg = xreg)
+
+Coefficients:
+          ar1     ma1    sar1     sma1    xreg
+      -0.4791  0.3525  0.9877  -0.8295  0.3574
+s.e.   0.4162  0.4420  0.0329   0.2209  0.7440
+
+sigma^2 estimated as 0.001499:  log likelihood = 163.79,  aic = -315.58
+> (f2 <- arima(diff(x), xreg = diff(xreg), order = c(1,0,1), seasonal = c(1,0,1),
++              include.mean = FALSE))
+
+Call:
+arima(x = diff(x), order = c(1, 0, 1), seasonal = c(1, 0, 1), xreg = diff(xreg), 
+    include.mean = FALSE)
+
+Coefficients:
+          ar1     ma1    sar1     sma1  diff(xreg)
+      -0.4791  0.3526  0.9877  -0.8295      0.3571
+s.e.   0.4162  0.4420  0.0329   0.2210      0.7441
+
+sigma^2 estimated as 0.001499:  log likelihood = 163.79,  aic = -315.58
+> stopifnot(all.equal(coef(f1), coef(f2), tolerance = 1e-3, check.names = FALSE))
+> ## first gave local optim in 3.0.1
+> 
+> ## all.equal always checked the names
+> x <- c(a=1, b=2)
+> y <- c(a=1, d=2)
+> all.equal(x, y, check.names = FALSE)
+[1] TRUE
+> ## failed on mismatched attributes
+> 
+> 
+> ## PR#15411, plus digits change
+> format(9992, digits = 3)
+[1] "9992"
+> format(9996, digits = 3)
+[1] "9996"
+> format(0.0002, digits = 0, nsmall = 2)
+[1] "0.00"
+> format(pi*10, digits = 0, nsmall = 1)
+[1] "31.4"
+> ## second added an extra space; 3rd and 4th were not allowed.
+> 
+> ## and one branch of this was wrong:
+> xx <- c(-86870268, 107833358, 302536985, 481015309, 675718935, 854197259,
++         1016450281, 1178703303, 1324731023, 1454533441)
+> xx
+ [1]  -86870268  107833358  302536985  481015309  675718935  854197259
+ [7] 1016450281 1178703303 1324731023 1454533441
+> ## dropped spaces without long doubles
+> 
+> ## and rounding was being detected improperly (PR#15583)
+> 1000* ((10^(1/4)) ^ c(0:4))
+[1]  1000.000  1778.279  3162.278  5623.413 10000.000
+> 7/0.07
+[1] 100
+> ## Spacing was incorrect
+> 
+> 
+> ## PR#15468
+> M <- matrix(11:14, ncol=2, dimnames=list(paste0("Row", 1:2), paste0("Col",
++ 1:2)))
+> L <- list(elem1=1, elem2=2)
+> rbind(M, L)
+     Col1 Col2
+Row1 11   13  
+Row2 12   14  
+L    1    2   
+> rbind(L, M)
+     elem1 elem2
+L    1     2    
+Row1 11    13   
+Row2 12    14   
+> cbind(M, L)
+     Col1 Col2 L
+Row1 11   13   1
+Row2 12   14   2
+> cbind(L, M)
+      L Col1 Col2
+elem1 1 11   13  
+elem2 2 12   14  
+> ## lost the dim of M, so returned NULL entries
+> 
+> 
+> ## NA_character_ was not handled properly in min and max (reported by Magnus Thor Torfason)
+> str(min(NA, "bla"))
+ chr NA
+> str(min("bla", NA))
+ chr NA
+> str(min(NA_character_, "bla"))
+ chr NA
+> str(max(NA, "bla"))
+ chr NA
+> str(max("bla", NA))
+ chr NA
+> str(max(NA_character_, "bla"))
+ chr NA
+> ## NA_character_ could be treated as "NA"; depending on the locale, it would not necessarily
+> ## be the min or max.
+> 
+> 
+> ## When two entries needed to be cut to width, str() mixed up
+> ## the values (reported by Gerrit Eichner)
+> oldopts <- options(width=70, stringsAsFactors=TRUE)
+> n <- 11      # number of rows of data frame
+> M <- 10000   # order of magnitude of numerical values
+> longer.char.string <- "zjtvorkmoydsepnxkabmeondrjaanutjmfxlgzmrbjp"
+> X <- data.frame( A = 1:n * M,
++                  B = rep( longer.char.string, n))
+> str( X, strict.width = "cut")
+'data.frame':	11 obs. of  2 variables:
+ $ A: num  1e+04 2e+04 3e+04 4e+04 5e+04 6e+04 7e+04 8e+04 9e+04 1e+..
+ $ B: Factor w/ 1 level "zjtvorkmoydsepnxkabmeondrjaanutjmfxlgzmrbj"..
+> options(oldopts)
+> ## The first row of the str() result was duplicated.
+> 
+> 
+> ## PR15624: rounding in extreme cases
+> dpois(2^52,1,1)
+[1] -1.578226e+17
+> dpois(2^52+1,1,1)
+[1] -1.578226e+17
+> ## second warned in R 3.0.2.
+> 
+> 
+> ## Example from PR15625
+> f <- file.path(Sys.getenv('SRCDIR'), 'EmbeddedNuls.csv')
+> ## This is a file with a UTF-8 BOM and some fields which are a single nul.
+> ## The output does rely on this being run in a non-UTF-8 locale (C in tests).
+> read.csv(f) # warns
+  X...ColA ColB ColC
+1        a   NA   NA
+2        b   NA   NA
+3        c   NA   NA
+4        d   NA   NA
+5        e   NA    1
+6        f   NA    1
+Warning messages:
+1: In read.table(file = file, header = header, sep = sep, quote = quote,  :
+  line 2 appears to contain embedded nulls
+2: In read.table(file = file, header = header, sep = sep, quote = quote,  :
+  line 3 appears to contain embedded nulls
+3: In read.table(file = file, header = header, sep = sep, quote = quote,  :
+  line 4 appears to contain embedded nulls
+4: In read.table(file = file, header = header, sep = sep, quote = quote,  :
+  line 5 appears to contain embedded nulls
+5: In scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  :
+  embedded nul(s) found in input
+> read.csv(f, skipNul = TRUE, fileEncoding = "UTF-8-BOM")
+  ColA ColB ColC
+1    a   NA    1
+2    b   NA    1
+3    c   NA    1
+4    d   NA    1
+5    e   NA    1
+6    f   NA    1
+> ## 'skipNul' is new in 3.1.0.  Should not warn on BOM, ignore in second.
+> 
+> 
+> ## all.equal datetime method
+> x <- Sys.time()
+> all.equal(x,x)
+[1] TRUE
+> all.equal(x, as.POSIXlt(x))
+[1] TRUE
+> all.equal(x, as.POSIXlt(x, tz = "EST5EDT"))
+[1] TRUE
+> all.equal(x, x+1e-4)
+[1] TRUE
+> isTRUE(all.equal(x, x+0.002)) # message will depend on representation error
+[1] FALSE
+> ## as.POSIXt method is new in 3.1.0.
+> 
+> 
+> 
+> ## Misuse of PR#15633
+> try(bartlett.test(yield ~ block*N, data = npk))
+Error in bartlett.test.formula(yield ~ block * N, data = npk) : 
+  'formula' should be of the form response ~ group
+> try(fligner.test (yield ~ block*N, data = npk))
+Error in fligner.test.formula(yield ~ block * N, data = npk) : 
+  'formula' should be of the form response ~ group
+> ## used the first factor with an incorrect description in R < 3.0.3
+> 
+> 
+> ## Misguided expectation of PR#15687
+> xx <- window(AirPassengers, start = 1960)
+> cbind(xx, xx)
+          xx  xx
+Jan 1960 417 417
+Feb 1960 391 391
+Mar 1960 419 419
+Apr 1960 461 461
+May 1960 472 472
+Jun 1960 535 535
+Jul 1960 622 622
+Aug 1960 606 606
+Sep 1960 508 508
+Oct 1960 461 461
+Nov 1960 390 390
+Dec 1960 432 432
+> op <- options(digits = 2)
+> cbind(xx, xx)
+          xx  xx
+Jan 1960 417 417
+Feb 1960 391 391
+Mar 1960 419 419
+Apr 1960 461 461
+May 1960 472 472
+Jun 1960 535 535
+Jul 1960 622 622
+Aug 1960 606 606
+Sep 1960 508 508
+Oct 1960 461 461
+Nov 1960 390 390
+Dec 1960 432 432
+> options(op)
+> ## 'digits' was applied to the time.
+> 
+> 
+> ## Related to PR#15190
+> difftime(
++     as.POSIXct(c("1970-01-01 00:00:00", "1970-01-01 12:00:00"), tz="EST5EDT"),
++     as.POSIXct(c("1970-01-01 00:00:00", "1970-01-01 00:00:00"), tz="UTC"))
+Time differences in hours
+[1]  5 17
+> ## kept tzone from first arg.
+> 
+> 
+> ## PR#15706
+> x1 <- as.dendrogram(hclust(dist(c(i=1,ii=2,iii=3,v=5,vi=6,vii=7))))
+> attr(cophenetic(x1), "Labels")
+[1] "iii" "i"   "ii"  "vii" "v"   "vi" 
+> ## gave a matrix in 3.0.3
+> 
+> 
+> ## PR#15708
+> aa <- anova( lm(sr ~ ., data = LifeCycleSavings) )
+> op <- options(width = 50)
+> aa
+Analysis of Variance Table
+
+Response: sr
+          Df Sum Sq Mean Sq F value    Pr(>F)    
+pop15      1 204.12 204.118 14.1157 0.0004922 ***
+pop75      1  53.34  53.343  3.6889 0.0611255 .  
+dpi        1  12.40  12.401  0.8576 0.3593551    
+ddpi       1  63.05  63.054  4.3605 0.0424711 *  
+Residuals 45 650.71  14.460                      
+---
+Signif. codes:  
+0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+> options(width = 40)
+> aa ; options(op)
+Analysis of Variance Table
+
+Response: sr
+          Df Sum Sq Mean Sq F value
+pop15      1 204.12 204.118 14.1157
+pop75      1  53.34  53.343  3.6889
+dpi        1  12.40  12.401  0.8576
+ddpi       1  63.05  63.054  4.3605
+Residuals 45 650.71  14.460        
+             Pr(>F)    
+pop15     0.0004922 ***
+pop75     0.0611255 .  
+dpi       0.3593551    
+ddpi      0.0424711 *  
+Residuals              
+---
+Signif. codes:  
+  0 '***' 0.001 '**' 0.01 '*' 0.05
+  '.' 0.1 ' ' 1
+> ## did not line wrap "Signif. codes" previously
+> 
+> 
+> ## PR#15718
+> d <- data.frame(a=1)
+> d[integer(), "a"] <- 2
+> ## warned in 3.0.3.
+> 
+> 
+> ## PR#15781
+> options(foo = 1)
+> print(options(foo = NULL))
+$foo
+[1] 1
+
+> ## printed wrong value in 3.1.0
+> 
+> 
+> ## getParseData bug reported by Andrew Redd
+> raw <- "
++ function( a   # parameter 1
++          , b=2 # parameter 2
++          ){a+b}"
+> p <- parse(text = raw)
+> getParseData(p)
+   line1 col1 line2 col2 id parent          token terminal          text
+31     2    1     4   15 31      0           expr    FALSE              
+3      2    1     2    8  3     31       FUNCTION     TRUE      function
+4      2    9     2    9  4     31            '('     TRUE             (
+5      2   11     2   11  5     31 SYMBOL_FORMALS     TRUE             a
+6      2   15     2   27  6     31        COMMENT     TRUE # parameter 1
+8      3   10     3   10  8     31            ','     TRUE             ,
+10     3   12     3   12 10     31 SYMBOL_FORMALS     TRUE             b
+11     3   13     3   13 11     31     EQ_FORMALS     TRUE             =
+12     3   14     3   14 12     13      NUM_CONST     TRUE             2
+13     3   14     3   14 13     31           expr    FALSE              
+14     3   16     3   28 14     31        COMMENT     TRUE # parameter 2
+16     4   10     4   10 16     31            ')'     TRUE             )
+28     4   11     4   15 28     31           expr    FALSE              
+18     4   11     4   11 18     28            '{'     TRUE             {
+25     4   12     4   14 25     28           expr    FALSE              
+19     4   12     4   12 19     21         SYMBOL     TRUE             a
+21     4   12     4   12 21     25           expr    FALSE              
+20     4   13     4   13 20     25            '+'     TRUE             +
+22     4   14     4   14 22     24         SYMBOL     TRUE             b
+24     4   14     4   14 24     25           expr    FALSE              
+23     4   15     4   15 23     28            '}'     TRUE             }
+> ## Got some parents wrong
+> 
+> 
+> ## wish of PR#15819
+> set.seed(123); x <- runif(10); y <- rnorm(10)
+> op <- options(OutDec = ",")
+> fit <- lm(y ~ x)
+> summary(fit)
+
+Call:
+lm(formula = y ~ x)
+
+Residuals:
+     Min       1Q   Median       3Q      Max 
+-1,62155 -0,33471  0,05238  0,55227  1,19742 
+
+Coefficients:
+            Estimate Std. Error t value Pr(>|t|)
+(Intercept)   0,8994     0,6282   1,432    0,190
+x            -1,3275     0,9780  -1,357    0,212
+
+Residual standard error: 0,8648 on 8 degrees of freedom
+Multiple R-squared:  0,1872,	Adjusted R-squared:  0,08557 
+F-statistic: 1,842 on 1 and 8 DF,  p-value: 0,2117
+
+> options(op)
+> ## those parts using formatC still used a decimal point.
+> 
+> 
+> ## Printing a list with "bad" component names
+> L <- list(`a\\b` = 1, `a\\c` = 2, `a\bc` = "backspace")
+> setClass("foo", representation(`\\C` = "numeric"))
+> ## the next three all print correctly:
+> names(L)
+[1] "a\\b" "a\\c" "a\bc"
+> unlist(L)
+       a\\b        a\\c        a\bc 
+        "1"         "2" "backspace" 
+> as.pairlist(L)
+$`a\\b`
+[1] 1
+
+$`a\\c`
+[1] 2
+
+$`a\bc`
+[1] "backspace"
+
+> cat(names(L), "\n")# yes, backspace is backspace here
+a\b a\c ac 
+> L
+$`a\\b`
+[1] 1
+
+$`a\\c`
+[1] 2
+
+$`a\bc`
+[1] "backspace"
+
+> new("foo")
+An object of class "foo"
+Slot "\\C":
+numeric(0)
+
+> ## the last two lines printed wrongly in R <= 3.1.1
+> 
+> 
+> ## Printing of arrays where last dim(.) == 0 :
+> r <- matrix(,0,4, dimnames=list(Row=NULL, Col=paste0("c",1:4)))
+> r
+      Col
+Row    c1 c2 c3 c4
+> t(r) # did not print "Row", "Col"
+    Row
+Col 
+  c1
+  c2
+  c3
+  c4
+> A <- array(dim=3:0, dimnames=list(D1=c("a","b","c"), D2=c("X","Y"), D3="I", D4=NULL))
+> A ## did not print *anything*
+<3 x 2 x 1 x 0 array of logical>
+   D2
+D1  X Y
+  a
+  b
+  c
+
+> A[,,"I",] # ditto
+<3 x 2 x 0 array of logical>
+   D2
+D1  X Y
+  a
+  b
+  c
+
+> A[,,0,]   # ditto
+<3 x 2 x 0 x 0 array of logical>
+   D2
+D1  X Y
+  a
+  b
+  c
+
+> aperm(A, c(3:1,4))   # ditto
+<1 x 2 x 3 x 0 array of logical>
+   D2
+D3  X Y
+  I
+
+> aperm(A, c(1:2, 4:3))# ditto
+<3 x 2 x 0 x 1 array of logical>
+   D2
+D1  X Y
+  a
+  b
+  c
+
+> unname(A)            # ditto
+<3 x 2 x 1 x 0 array of logical>
+     [,1] [,2]
+[1,]
+[2,]
+[3,]
+
+> format(A[,,1,])	     # ditto
+<3 x 2 x 0 array of character>
+   D2
+D1  X Y
+  a
+  b
+  c
+
+> aperm(A, 4:1) # was ok, is unchanged
+, , D2 = X, D1 = a
+
+      D3
+D4     I
+
+, , D2 = Y, D1 = a
+
+      D3
+D4     I
+
+, , D2 = X, D1 = b
+
+      D3
+D4     I
+
+, , D2 = Y, D1 = b
+
+      D3
+D4     I
+
+, , D2 = X, D1 = c
+
+      D3
+D4     I
+
+, , D2 = Y, D1 = c
+
+      D3
+D4     I
+
+> ## sometimes not printing anything in R <= 3.1.1
+> 
+> 
+> ## Printing objects with very long names cut off literal values (PR#15999)
+> make_long_name <- function(n)
++ {
++   paste0(rep("a", n), collapse = "")
++ }
+> setNames(TRUE, make_long_name(1000))  # value printed as TRU
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   TRUE 
+> setNames(TRUE, make_long_name(1002))  # value printed as T
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   TRUE 
+> setNames(TRUE, make_long_name(1003))  # value not printed
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 
+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   TRUE 
+> ##
+> 
+> 
+> ## PR#16437
+> dd <- data.frame(F = factor(rep(c("A","B","C"), each = 3)), num = 1:9)
+> cs <- list(F = contr.sum(3, contrasts = FALSE))
+> a1 <- aov(num ~ F, data = dd, contrasts = cs)
+> model.tables(a1, "means")
+Tables of means
+Grand mean
+  
+5 
+
+ F 
+F
+A B C 
+2 5 8 
+> t1 <- TukeyHSD(a1) ## don't print to avoid precision issues.
+> a2 <- aov(num ~ 0+F, data = dd, contrasts = cs)
+> model.tables(a2, "means")
+Tables of means
+
+ F 
+F
+A B C 
+2 5 8 
+> t2 <- TukeyHSD(a2)
+> attr(t1, "orig.call") <- attr(t2, "orig.call")
+> stopifnot(all.equal(t1, t2))
+> ## functions both failed on a2 in R <= 3.2.2.
+> 
+> 
+> ## deparse() did not add parens before [
+> substitute(a[1], list(a = quote(x * y)))
+(x * y)[1]
+> ## should be (x * y)[1], was x * y[1]
+> # Check all levels of precedence
+> # (Comment out illegal ones)
+> quote(`$`(a :: b, c))
+a::b$c
+> # quote(`::`(a $ b, c $ d))
+> quote(`[`(a $ b, c $ d))
+a$b[c$d]
+> quote(`$`(a[b], c))
+a[b]$c
+> quote(`^`(a[b], c[d]))
+a[b]^c[d]
+> quote(`[`(a ^ b, c ^ d))
+(a^b)[c^d]
+> quote(`-`(a ^ b))
+-a^b
+> quote(`^`(-b, -d))
+(-b)^-d
+> quote(`:`(-b, -d))
+-b:-d
+> quote(`-`(a : b))
+-(a:b)
+> quote(`%in%`(a : b, c : d))
+a:b %in% c:d
+> quote(`:`(a %in% b, c %in% d))
+(a %in% b):(c %in% d)
+> quote(`*`(a %in% b, c %in% d))
+a %in% b * c %in% d
+> quote(`%in%`(a * b, c * d))
+(a * b) %in% (c * d)
+> quote(`+`(a * b, c * d))
+a * b + c * d
+> quote(`*`(a + b, c + d))
+(a + b) * (c + d)
+> quote(`<`(a + b, c + d))
+a + b < c + d
+> quote(`+`(a < b, c < d))
+(a < b) + (c < d)
+> quote(`!`(a < b))
+!a < b
+> quote(`<`(!b, !d))
+(!b) < (!d)
+> quote(`&`(!b, !d))
+!b & !d
+> quote(`!`(a & b))
+!(a & b)
+> quote(`|`(a & b, c & d))
+a & b | c & d
+> quote(`&`(a | b, c | d))
+(a | b) & (c | d)
+> quote(`~`(a | b, c | d))
+a | b ~ c | d
+> quote(`|`(a ~ b, c ~ d))
+(a ~ b) | (c ~ d)
+> quote(`->`(a ~ b, d))
+`->`(a ~ b, d)
+> quote(`~`(a -> b, c -> d))
+(b <- a) ~ (d <- c)
+> quote(`<-`(a, c -> d))
+a <- d <- c
+> quote(`->`(a <- b, c))
+`->`(a <- b, c)
+> quote(`=`(a, c <- d))
+a = c <- d
+> quote(`<-`(a, `=`(c, d)))
+a <- (c = d)
+> quote(`?`(`=`(a, b), `=`(c, d)))
+`?`((a = b), (c = d))
+> quote(`=`(a, c ? d))
+a = `?`(c, d)
+> quote(`?`(a = b))
+`?`(a = b)
+> quote(`=`(b, ?d))
+b = `?`(d)
+> 
+> ## dput() quoted the empty symbol (PR#16686)
+> a <- alist(one = 1, two = )
+> dput(a)
+structure(list(one = 1, two = ), .Names = c("one", "two"))
+> ## deparsed two to quote()
+> 
+> 
+> ## summary.data.frame() with NAs in columns of class "Date" -- PR#16709
+> x <- c(18000000, 18810924, 19091227, 19027233, 19310526, 19691228, NA)
+> x.Date <- as.Date(as.character(x), format = "%Y%m%d")
+> summary(x.Date)
+        Min.      1st Qu.       Median         Mean      3rd Qu.         Max. 
+"1881-09-24" "1902-12-04" "1920-09-10" "1923-04-12" "1941-01-17" "1969-12-28" 
+        NA's 
+         "3" 
+> DF.Dates <- data.frame(c1 = x.Date)
+> summary(DF.Dates) ## NA's missing from output :
+       c1            
+ Min.   :1881-09-24  
+ 1st Qu.:1902-12-04  
+ Median :1920-09-10  
+ Mean   :1923-04-12  
+ 3rd Qu.:1941-01-17  
+ Max.   :1969-12-28  
+ NA's   :3           
+> DF.Dates$x1 <- 1:7
+> summary(DF.Dates) ## NA's still missing
+       c1                   x1     
+ Min.   :1881-09-24   Min.   :1.0  
+ 1st Qu.:1902-12-04   1st Qu.:2.5  
+ Median :1920-09-10   Median :4.0  
+ Mean   :1923-04-12   Mean   :4.0  
+ 3rd Qu.:1941-01-17   3rd Qu.:5.5  
+ Max.   :1969-12-28   Max.   :7.0  
+ NA's   :3                         
+> DF.Dates$x2 <- c(1:6, NA)
+> ## now, NA's show fine:
+> summary(DF.Dates)
+       c1                   x1            x2      
+ Min.   :1881-09-24   Min.   :1.0   Min.   :1.00  
+ 1st Qu.:1902-12-04   1st Qu.:2.5   1st Qu.:2.25  
+ Median :1920-09-10   Median :4.0   Median :3.50  
+ Mean   :1923-04-12   Mean   :4.0   Mean   :3.50  
+ 3rd Qu.:1941-01-17   3rd Qu.:5.5   3rd Qu.:4.75  
+ Max.   :1969-12-28   Max.   :7.0   Max.   :6.00  
+ NA's   :3                          NA's   :1     
+> ## 2 of 4  summary(.) above did not show NA's  in R <= 3.2.3
+> 
+> 
+> ## str.default() for "AsIs" arrays
+> str(I(m <- matrix(pi*1:4, 2)))
+ AsIs [1:2, 1:2] 3.14 6.28 9.42 12.57
+> ## did look ugly (because of toString() for numbers) in R <= 3.3.1
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/d-p-q-r-tests.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/d-p-q-r-tests.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/d-p-q-r-tests.Rout.save	(revision 2476)
@@ -0,0 +1,1392 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ####	d|ensity
+> ####	p|robability (cumulative)
+> ####	q|uantile
+> ####	r|andom number generation
+> ####
+> ####	Functions for  ``d/p/q/r''
+> 
+> .ptime <- proc.time()
+> F <- FALSE
+> T <- TRUE
+> 
+> options(warn = 2)
+> ##      ======== No warnings, unless explicitly asserted via
+> assertWarning <- tools::assertWarning
+> 
+> ###-- these are identical in ./arith-true.R ["fixme": use source(..)]
+> opt.conformance <- 0
+> Meps <- .Machine $ double.eps
+> xMax <- .Machine $ double.xmax
+> options(rErr.eps = 1e-30)
+> rErr <- function(approx, true, eps = getOption("rErr.eps", 1e-30))
++ {
++     ifelse(Mod(true) >= eps,
++ 	   1 - approx / true, # relative error
++ 	   true - approx)     # absolute error (e.g. when true=0)
++ }
+> ## Numerical equality: Here want "rel.error" almost always:
+> All.eq <- function(x,y) {
++     all.equal.numeric(x,y, tolerance = 64*.Machine$double.eps,
++                       scale = max(0, mean(abs(x), na.rm=TRUE)))
++ }
+> if(!interactive())
++     set.seed(123)
+> 
+> ## The prefixes of ALL the PDQ & R functions
+> PDQRinteg <- c("binom", "geom", "hyper", "nbinom", "pois","signrank","wilcox")
+> PDQR <- c(PDQRinteg, "beta", "cauchy", "chisq", "exp", "f", "gamma",
++ 	  "lnorm", "logis", "norm", "t","unif","weibull")
+> PQonly <- c("tukey")
+> 
+> ###--- Discrete Distributions --- Consistency Checks  pZZ = cumsum(dZZ)
+> 
+> ##for(pre in PDQRinteg) { n <- paste("d",pre,sep=""); cat(n,": "); str(get(n))}
+> 
+> ##__ 1. Binomial __
+> 
+> ## Cumulative Binomial '==' Cumulative F :
+> ## Abramowitz & Stegun, p.945-6;  26.5.24  AND	26.5.28 :
+> n0 <- 50; n1 <- 16; n2 <- 20; n3 <- 8
+> for(n in rbinom(n1, size = 2*n0, p = .4)) {
++     for(p in c(0,1,rbeta(n2, 2,4))) {
++ 	for(k in rbinom(n3, size = n,  prob = runif(1)))
++ 	    ## For X ~ Bin(n,p), compute 1 - P[X > k] = P[X <= k] in three ways:
++ 	    stopifnot(all.equal(       pbinom(0:k, size = n, prob = p),
++ 				cumsum(dbinom(0:k, size = n, prob = p))),
++ 		      all.equal(if(k==n || p==0) 1 else
++ 				pf((k+1)/(n-k)*(1-p)/p, df1=2*(n-k), df2=2*(k+1)),
++ 				sum(dbinom(0:k, size = n, prob = p))))
++     }
++ }
+> 
+> ##__ 2. Geometric __
+> for(pr in seq(1e-10,1,len=15)) # p=0 is not a distribution
++     stopifnot(All.eq((dg <- dgeom(0:10, pr)),
++ 		     pr * (1-pr)^(0:10)),
++ 	      All.eq(cumsum(dg), pgeom(0:10, pr)))
+> 
+> 
+> ##__ 3. Hypergeometric __
+> 
+> m <- 10; n <- 7
+> for(k in 2:m) {
++     x <- 0:(k+1)
++     stopifnot(All.eq(phyper(x, m, n, k), cumsum(dhyper(x, m, n, k))))
++ }
+> 
+> ##__ 4. Negative Binomial __
+> 
+> ## PR #842
+> for(size in seq(0.8,2, by=.1))
++     stopifnot(all.equal(cumsum(dnbinom(0:7, size, .5)),
++ 			       pnbinom(0:7, size, .5)))
+> stopifnot(All.eq(pnbinom(c(1,3), .9, .5),
++ 		 c(0.777035760338812, 0.946945347071519)))
+> 
+> ##__ 5. Poisson __
+> 
+> stopifnot(dpois(0:5,0)		 == c(1, rep(0,5)),
++ 	  dpois(0:5,0, log=TRUE) == c(0, rep(-Inf, 5)))
+> 
+> ## Cumulative Poisson '==' Cumulative Chi^2 :
+> ## Abramowitz & Stegun, p.941 :	 26.4.21 (26.4.2)
+> n1 <- 20; n2 <- 16
+> for(lambda in rexp(n1))
++     for(k in rpois(n2, lambda))
++ 	stopifnot(all.equal(1 - pchisq(2*lambda, 2*(1+ 0:k)),
++ 			    pp <- cumsum(dpois(0:k, lambda=lambda)),
++ 			    tolerance = 100*Meps),
++ 		  all.equal(pp, ppois(0:k, lambda=lambda), tolerance = 100*Meps),
++ 		  all.equal(1 - pp, ppois(0:k, lambda=lambda, lower.tail = FALSE)))
+> 
+> 
+> ##__ 6. SignRank __
+> for(n in rpois(32, lam=8)) {
++     x <- -1:(n + 4)
++     stopifnot(All.eq(psignrank(x, n), cumsum(dsignrank(x, n))))
++ }
+> 
+> ##__ 7. Wilcoxon (symmetry & cumulative) __
+> is.sym <- TRUE
+> for(n in rpois(5, lam=6))
++     for(m in rpois(15, lam=8)) {
++ 	x <- -1:(n*m + 1)
++ 	fx <- dwilcox(x, n, m)
++ 	Fx <- pwilcox(x, n, m)
++ 	is.sym <- is.sym & all(fx == dwilcox(x, m, n))
++ 	stopifnot(All.eq(Fx, cumsum(fx)))
++     }
+> stopifnot(is.sym)
+> 
+> 
+> ###-------- Continuous Distributions ----------
+> 
+> ##---  Gamma (incl. central chi^2) Density :
+> x <- round(rgamma(100, shape = 2),2)
+> for(sh in round(rlnorm(30),2)) {
++     Ga <- gamma(sh)
++     for(sig in round(rlnorm(30),2))
++ 	stopifnot(all.equal((d1 <- dgamma(	 x,   shape = sh, scale = sig)),
++                             (d2 <- dgamma(x/sig, shape = sh, scale = 1) / sig),
++                             tolerance = 1e-14)## __ad interim__ was 1e-15
++                   ,
++                   All.eq(d1, (d3 <- 1/(Ga * sig^sh) * x^(sh-1) * exp(-x/sig)))
++                   )
++ }
+> 
+> stopifnot(pgamma(1,Inf,scale=Inf) == 0)
+> ## Also pgamma(Inf,Inf) == 1 for which NaN was slightly more appropriate
+> assertWarning(stopifnot(
++     is.nan(c(pgamma(Inf,  1,scale=Inf),
++              pgamma(Inf,Inf,scale=Inf)))))
+> scLrg <- c(2,100, 1e300*c(.1, 1,10,100), 1e307, xMax, Inf)
+> stopifnot(pgamma(Inf, 1, scale=xMax) == 1,
++           pgamma(xMax,1, scale=Inf) == 0,
++           all.equal(pgamma(1e300, 2, scale= scLrg, log=TRUE),
++                     c(0, 0, -0.000499523968713701, -1.33089326820406,
++                       -5.36470502873211, -9.91015144019122,
++                       -32.9293385491433, -38.707517174609, -Inf),
++                     tolerance = 2e-15)
++           )
+> 
+> p <- 7e-4; df <- 0.9
+> stopifnot(
++ abs(1-c(pchisq(qchisq(p, df),df)/p, # was 2.31e-8 for R <= 1.8.1
++         pchisq(qchisq(1-p, df,lower=FALSE),df,lower=FALSE)/(1-p),# was 1.618e-11
++         pchisq(qchisq(log(p), df,log=TRUE),df, log=TRUE)/log(p), # was 3.181e-9
++         pchisq(qchisq(log1p(-p),df,log=T,lower=F),df, log=T,lower=F)/log1p(-p)
++         )# 32b-i386: (2.2e-16, 0,0, 3.3e-16); Opteron: (2.2e-16, 0,0, 2.2e-15)
++     ) < 1e-14
++ )
+> 
+> ##-- non central Chi^2 :
+> xB <- c(2000,1e6,1e50,Inf)
+> for(df in c(0.1, 1, 10))
++     for(ncp in c(0, 1, 10, 100)) stopifnot(pchisq(xB, df=df, ncp=ncp) == 1)
+> stopifnot(all.equal(qchisq(0.025,31,ncp=1,lower.tail=FALSE),# inf.loop PR#875
++                     49.7766246561514, tolerance = 1e-11))
+> for(df in c(0.1, 0.5, 1.5, 4.7, 10, 20,50,100)) {
++     xx <- c(10^-(5:1), .9, 1.2, df + c(3,7,20,30,35,38))
++     pp <- pchisq(xx, df=df, ncp = 1) #print(pp)
++     dtol <- 1e-12 *(if(2 < df && df <= 50) 64 else if(df > 50) 20000 else 501)
++     stopifnot(all.equal(xx, qchisq(pp, df=df, ncp=1), tolerance = dtol))
++ }
+> 
+> ## p ~= 1 (<==> 1-p ~= 0) -- gave infinite loop in R <= 1.8.1 -- PR#6421
+> psml <- 2^-(10:54)
+> q0 <- qchisq(psml,    df=1.2, ncp=10, lower.tail=FALSE)
+> q1 <- qchisq(1-psml, df=1.2, ncp=10) # inaccurate in the tail
+> p0 <- pchisq(q0, df=1.2, ncp=10, lower.tail=FALSE)
+> p1 <- pchisq(q1, df=1.2, ncp=10, lower.tail=FALSE)
+> iO <- 1:30
+> stopifnot(all.equal(q0[iO], q1[iO], tolerance = 1e-5),# 9.86e-8
++           all.equal(p0[iO], psml[iO])) # 1.07e-13
+> 
+> ##--- Beta (need more):
+> 
+> ## big a & b (PR #643)
+> stopifnot(is.finite(a <- rlnorm(20, 5.5)), a > 0,
++           is.finite(b <- rlnorm(20, 6.5)), b > 0)
+> pab <- expand.grid(seq(0,1,by=.1), a, b)
+> p <- pab[,1]; a <- pab[,2]; b <- pab[,3]
+> stopifnot(all.equal(dbeta(p,a,b),
++                     exp(pab <- dbeta(p,a,b, log = TRUE)), tolerance = 1e-11))
+> sp <- sample(pab, 50)
+> if(!interactive())
++ stopifnot(which(isI <- sp == -Inf) ==
++               c(3, 11, 15, 20, 22, 23, 30, 39, 42, 43, 46, 47, 49),
++           all.equal(range(sp[!isI]), c(-2906.123981, 2.197270387))
++           )
+> 
+> 
+> ##--- Normal (& Lognormal) :
+> 
+> stopifnot(
++     qnorm(0) == -Inf, qnorm(-Inf, log = TRUE) == -Inf,
++     qnorm(1) ==  Inf, qnorm( 0,   log = TRUE) ==  Inf)
+> 
+> assertWarning(stopifnot(
++     is.nan(qnorm(1.1)),
++     is.nan(qnorm(-.1))))
+> 
+> x <- c(-Inf, -1e100, 1:6, 1e200, Inf)
+> stopifnot(
++     dnorm(x,3,s=0) == c(0,0,0,0, Inf, 0,0,0,0,0),
++     pnorm(x,3,s=0) == c(0,0,0,0,  1 , 1,1,1,1,1),
++     dnorm(x,3,s=Inf) == 0,
++     pnorm(x,3,s=Inf) == c(0, rep(0.5, 8), 1))
+> 
+> ## 3 Test data from Wichura (1988) :
+> stopifnot(
++     all.equal(qnorm(c( 0.25,  .001, 1e-20)),
++ 	      c(-0.6744897501960817, -3.090232306167814, -9.262340089798408),
++ 	      tolerance = 1e-15)
++   , ## extreme tail -- available on log scale only:
++     all.equal(qnorm(-1e5, log = TRUE), -447.1974945)
++ )
+> 
+> z <- rnorm(1000); all.equal(pnorm(z),  1 - pnorm(-z), tolerance = 1e-15)
+[1] TRUE
+> z <- c(-Inf,Inf,NA,NaN, rt(1000, df=2))
+> z.ok <- z > -37.5 | !is.finite(z)
+> for(df in 1:10) stopifnot(all.equal(pt(z, df), 1 - pt(-z,df), tolerance = 1e-15))
+> 
+> stopifnot(All.eq(pz <- pnorm(z), 1 - pnorm(z, lower=FALSE)),
++           All.eq(pz,		    pnorm(-z, lower=FALSE)),
++           All.eq(log(pz[z.ok]), pnorm(z[z.ok], log=TRUE)))
+> y <- seq(-70,0, by = 10)
+> cbind(y, "log(pnorm(y))"= log(pnorm(y)), "pnorm(y, log=T)"= pnorm(y, log=TRUE))
+       y log(pnorm(y)) pnorm(y, log=T)
+[1,] -70          -Inf   -2455.1676378
+[2,] -60          -Inf   -1805.0135607
+[3,] -50          -Inf   -1254.8313611
+[4,] -40          -Inf    -804.6084420
+[5,] -30  -454.3212440    -454.3212440
+[6,] -20  -203.9171554    -203.9171554
+[7,] -10   -53.2312852     -53.2312852
+[8,]   0    -0.6931472      -0.6931472
+> y <- c(1:15, seq(20,40, by=5))
+> cbind(y, "log(pnorm(y))"= log(pnorm(y)), "pnorm(y, log=T)"= pnorm(y, log=TRUE),
++       "log(pnorm(-y))"= log(pnorm(-y)), "pnorm(-y, log=T)"= pnorm(-y, log=TRUE))
+       y log(pnorm(y)) pnorm(y, log=T) log(pnorm(-y)) pnorm(-y, log=T)
+ [1,]  1 -1.727538e-01   -1.727538e-01      -1.841022        -1.841022
+ [2,]  2 -2.301291e-02   -2.301291e-02      -3.783184        -3.783184
+ [3,]  3 -1.350810e-03   -1.350810e-03      -6.607726        -6.607726
+ [4,]  4 -3.167174e-05   -3.167174e-05     -10.360101       -10.360101
+ [5,]  5 -2.866516e-07   -2.866516e-07     -15.064998       -15.064998
+ [6,]  6 -9.865877e-10   -9.865876e-10     -20.736769       -20.736769
+ [7,]  7 -1.279865e-12   -1.279813e-12     -27.384307       -27.384307
+ [8,]  8 -6.661338e-16   -6.220961e-16     -35.013437       -35.013437
+ [9,]  9  0.000000e+00   -1.128588e-19     -43.628149       -43.628149
+[10,] 10  0.000000e+00   -7.619853e-24     -53.231285       -53.231285
+[11,] 11  0.000000e+00   -1.910660e-28     -63.824934       -63.824934
+[12,] 12  0.000000e+00   -1.776482e-33     -75.410673       -75.410673
+[13,] 13  0.000000e+00   -6.117164e-39     -87.989720       -87.989720
+[14,] 14  0.000000e+00   -7.793537e-45    -101.563034      -101.563034
+[15,] 15  0.000000e+00   -3.670966e-51    -116.131385      -116.131385
+[16,] 20  0.000000e+00   -2.753624e-89    -203.917155      -203.917155
+[17,] 25  0.000000e+00  -3.056697e-138    -316.639408      -316.639408
+[18,] 30  0.000000e+00  -4.906714e-198    -454.321244      -454.321244
+[19,] 35  0.000000e+00  -1.124911e-268    -616.975101      -616.975101
+[20,] 40  0.000000e+00    0.000000e+00           -Inf      -804.608442
+> ## Symmetry:
+> y <- c(1:50,10^c(3:10,20,50,150,250))
+> y <- c(-y,0,y)
+> for(L in c(FALSE,TRUE))
++     stopifnot(identical(pnorm(-y, log= L),
++ 			pnorm(+y, log= L, lower=FALSE)))
+> 
+> ## Log norm
+> stopifnot(All.eq(pz, plnorm(exp(z))))
+> 
+> 
+> ###==========  p <-> q	Inversion consistency =====================
+> ok <- 1e-5 < pz & pz < 1 - 1e-5
+> all.equal(z[ok], qnorm(pz[ok]), tolerance = 1e-12)
+[1] TRUE
+> 
+> ###===== Random numbers -- first, just output:
+> 
+> set.seed(123)
+> # .Random.seed <- c(0L, 17292L, 29447L, 24113L)
+> n <- 20
+> ## for(pre in PDQR) { n <- paste("r",pre,sep=""); cat(n,": "); str(get(n))}
+> (Rbeta	  <- rbeta    (n, shape1 = .8, shape2 = 2) )
+ [1] 0.554206761 0.387924405 0.012541339 0.257889595 0.236064413 0.008248085
+ [7] 0.136510774 0.618501837 0.028641308 0.151670292 0.242835922 0.551824427
+[13] 0.127798688 0.087335901 0.509096247 0.382121566 0.773494885 0.639404676
+[19] 0.066559813 0.227487378
+> (Rbinom	  <- rbinom   (n, size = 55, prob = pi/16) )
+ [1]  7 13 15 10 12  7 10  9 13 10 13 13 13 10 13 12 12  3 11  8
+> (Rcauchy  <- rcauchy  (n, location = 12, scale = 2) )
+ [1] 17.042930  6.592944 15.980645 12.728113 13.921385  8.570544 19.557102
+ [8] 10.430404 12.669798 21.641273 11.905411 11.301537 11.254793 13.226057
+[15] 12.870672  8.167569 15.735143  8.272588 15.159679 13.338095
+> (Rchisq	  <- rchisq   (n, df = 3) )
+ [1] 3.8641030 1.8367371 1.2291085 1.9151780 2.5901414 0.4522238 0.1018120
+ [8] 0.4323865 2.4551985 2.8313420 1.1215175 8.6109152 0.2215425 2.6531221
+[15] 2.9968656 2.1074132 4.2698236 8.2015930 1.1384935 0.6041294
+> (Rexp	  <- rexp     (n, rate = 2) )
+ [1] 0.719726313 0.232135206 0.134439025 0.731650280 0.768696989 0.002299563
+ [7] 0.554382734 0.149985159 0.596001504 0.557464352 0.033687945 0.240334360
+[13] 0.785227170 0.129973053 0.928461144 0.231609810 0.118017873 0.591049711
+[19] 0.029835686 0.201619221
+> (Rf	  <- rf	      (n, df1 = 12, df2 = 6) )
+ [1] 0.7630651 0.4158576 0.4052799 0.8862771 2.0435073 2.5383554 0.8259689
+ [8] 1.5831584 0.6362728 0.7221707 1.1665204 0.4821276 1.1985013 0.8955592
+[15] 1.5186453 0.7333794 0.3795005 0.7464008 1.5543317 5.8525268
+> (Rgamma	  <- rgamma   (n, shape = 2, scale = 5) )
+ [1] 11.843056  6.993596 12.413160  5.980309  5.970495 15.674812  7.382163
+ [8] 11.343789  5.392676  3.766812 15.331767  2.451095 13.046780 10.999054
+[15]  9.929606  6.239055  3.588397 26.196937  3.647236 23.051571
+> (Rgeom	  <- rgeom    (n, prob = pi/16) )
+ [1] 8 2 4 2 3 5 5 4 1 8 1 6 1 6 8 3 8 7 5 0
+> (Rhyper	  <- rhyper   (n, m = 40, n = 30, k = 20) )
+ [1] 12 11 12 10 13 11 13 13  8 12 12 15 11 11 11 12  9 11 12 12
+> (Rlnorm	  <- rlnorm   (n, meanlog = -1, sdlog = 3) )
+ [1] 1.873201e-02 5.609747e+01 9.793124e-02 4.203730e-02 9.015415e-03
+ [6] 7.795979e-03 6.574837e-02 2.348924e+00 1.027326e+01 3.073340e+00
+[11] 1.235670e-01 4.401014e-01 4.443226e-02 4.278129e-02 5.227596e+00
+[16] 1.747860e-02 1.297853e+02 2.805625e-01 7.002040e-01 4.013193e-02
+> (Rlogis	  <- rlogis   (n, location = 12, scale = 2) )
+ [1] 10.139287 14.905198  7.466552 15.060325 11.415297 14.260524 13.347886
+ [8] 11.554385 13.039986 -3.344515  9.436395 13.741216  9.411881 14.951552
+[15] 10.378811 13.579174 17.257244  7.933965  8.157203 13.491243
+> (Rnbinom  <- rnbinom  (n, size = 7, prob = .01) )
+ [1]  563  315  519  707  614  637  560 1086 1088  842  522  787  576  673  607
+[16]  443 1023  590  663  947
+> (Rnorm	  <- rnorm    (n, mean = -1, sd = 3) )
+ [1] -0.3732778 -5.6447208 -4.5214067  2.5364456 -2.2579283 -6.5577259
+ [7]  0.4577794 -2.4157378  1.5402158  1.7773118 -1.9624917 -4.9029209
+[13]  6.3787040  1.3350950  1.0696427 -6.1133966  2.3161164 -1.9415584
+[19] -2.0400782  2.1153214
+> (Rpois	  <- rpois    (n, lambda = 12) )
+ [1] 10 15 14  9 15 12 16  7  7 14 11 14 16 12 15  7  7 13 15 12
+> (Rsignrank<- rsignrank(n, n = 47) )
+ [1] 531 522 385 583 731 461 542 590 485 582 571 475 702 537 395 571 603 515 477
+[20] 609
+> (Rt	  <- rt	      (n, df = 11) )
+ [1] -0.499846093 -1.670698483 -0.729757704  0.009882459  1.518830804
+ [6] -1.105480914 -0.073913420 -0.323601935 -0.309210484  1.071490670
+[11] -1.730648357 -0.283141485  0.205309956  0.409676847  3.137494386
+[16]  0.187070891 -1.154130926  0.970408359 -1.340678412  1.437769232
+> ## Rt2 below (to preserve the following random numbers!)
+> (Runif	  <- runif    (n, min = .2, max = 2) )
+ [1] 1.3077353 0.6915398 0.3146723 0.3301459 1.7723202 0.8530850 1.9021199
+ [8] 1.2049741 1.1227901 1.9059890 0.3976429 1.6740336 0.8792158 1.2019539
+[15] 0.7649681 0.3482172 1.6038876 0.5478225 1.3800538 0.9832647
+> (Rweibull <- rweibull (n, shape = 3, scale = 2) )
+ [1] 2.3507552 0.3498804 1.8610901 3.0250054 0.8043691 1.0338586 1.5966081
+ [8] 2.1295946 1.1916615 0.7320637 1.0860054 2.5452588 0.6323843 1.6726976
+[15] 3.4711560 2.5185134 3.4519830 1.1740161 1.2526410 0.8298120
+> (Rwilcox  <- rwilcox  (n, m = 13, n = 17) )
+ [1] 111  96  66  97 152 131 167  97  99 160  73  97  59  97 109 103 100 108  94
+[20] 100
+> (Rt2	  <- rt	      (n, df = 1.01))
+ [1]  -0.94684312 -16.69743680  -0.31323806  -1.74808343  -0.03944642
+ [6]  -2.24078160  -1.21454266   0.51014471  -9.72731278  -0.24196217
+[11]   6.64038105  -0.37700450  -0.37380391   3.17514899  -0.17936741
+[16]  -1.16754001   0.73536283  -1.76538915   2.27417497   1.49299645
+> 
+> (Pbeta	  <- pbeta    (Rbeta, shape1 = .8, shape2 = 2) )
+ [1] 0.84605840 0.69836904 0.05389148 0.53895245 0.50764485 0.03861536
+ [7] 0.34373485 0.88868811 0.10358645 0.37126511 0.51751532 0.84433212
+[13] 0.32741433 0.24605563 0.81153016 0.69214938 0.96181357 0.90094249
+[19] 0.19989455 0.49493375
+> (Pbinom	  <- pbinom   (Rbinom, size = 55, prob = pi/16) )
+ [1] 0.128811009 0.822082686 0.939887897 0.473358125 0.725714645 0.128811009
+ [7] 0.473358125 0.340181320 0.822082686 0.473358125 0.822082686 0.822082686
+[13] 0.822082686 0.473358125 0.822082686 0.725714645 0.725714645 0.002917878
+[19] 0.606468256 0.221684127
+> (Pcauchy  <- pcauchy  (Rcauchy, location = 12, scale = 2) )
+ [1] 0.8798165 0.1127710 0.8517979 0.6111354 0.7436195 0.1680556 0.9176468
+ [8] 0.2881958 0.6028646 0.9348927 0.4849570 0.3930511 0.3864691 0.6750527
+[15] 0.6306957 0.1531019 0.8435165 0.1567581 0.8203732 0.6876911
+> (Pchisq	  <- pchisq   (Rchisq, df = 3) )
+ [1] 0.723482597 0.393026646 0.253968309 0.409802926 0.540779498 0.070744975
+ [7] 0.008380908 0.066526148 0.516557851 0.581633585 0.228117628 0.965062738
+[13] 0.025961119 0.551747428 0.607891302 0.449585516 0.766236467 0.957975966
+[19] 0.232209338 0.104513603
+> (Pexp	  <- pexp     (Rexp, rate = 2) )
+ [1] 0.762942518 0.371406447 0.235763552 0.768528971 0.785059488 0.004588567
+ [7] 0.670033937 0.259159790 0.696387483 0.672061341 0.065156264 0.381630263
+[13] 0.792049319 0.228906859 0.843847516 0.370745580 0.210247557 0.693365692
+[19] 0.057925925 0.331847235
+> (Pf	  <- pf	      (Rf, df1 = 12, df2 = 6) )
+ [1] 0.32410218 0.09232470 0.08630331 0.40259602 0.80440198 0.86907389
+ [7] 0.36505563 0.70322821 0.23758524 0.29664970 0.55170692 0.13291359
+[13] 0.56607937 0.40821091 0.68428769 0.30422992 0.07227779 0.31298492
+[19] 0.69494050 0.97980295
+> (Pgamma	  <- pgamma   (Rgamma, shape = 2, scale = 5) )
+ [1] 0.6846621 0.4077251 0.7091198 0.3359489 0.3352389 0.8201234 0.4342559
+ [8] 0.6618778 0.2931040 0.1745504 0.8105456 0.0872524 0.7344167 0.6453838
+[15] 0.5901700 0.3545801 0.1619732 0.9669094 0.1661030 0.9441847
+> (Pgeom	  <- pgeom    (Rgeom, prob = pi/16) )
+ [1] 0.8601686 0.4809591 0.6647753 0.4809591 0.5828725 0.7305965 0.7305965
+ [8] 0.6647753 0.3541459 0.8601686 0.3541459 0.7834938 0.3541459 0.7834938
+[15] 0.8601686 0.5828725 0.8601686 0.8260047 0.7305965 0.1963495
+> (Phyper	  <- phyper   (Rhyper, m = 40, n = 30, k = 20) )
+ [1] 0.71494883 0.51295659 0.71494883 0.30864260 0.86627413 0.51295659
+ [7] 0.86627413 0.86627413 0.05904998 0.71494883 0.71494883 0.98680472
+[13] 0.51295659 0.51295659 0.51295659 0.71494883 0.15132082 0.51295659
+[19] 0.71494883 0.71494883
+> (Plnorm	  <- plnorm   (Rlnorm, meanlog = -1, sdlog = 3) )
+ [1] 0.16047510 0.95310121 0.32954742 0.23481968 0.10817853 0.09944582
+ [7] 0.28299287 0.73170766 0.86646776 0.76039954 0.35805697 0.52382260
+[13] 0.24053070 0.23661975 0.81182742 0.15491172 0.97472581 0.46401663
+[19] 0.58493655 0.23009692
+> (Plogis	  <- plogis   (Rlogis, location = 12, scale = 2) )
+ [1] 0.2828523996 0.8103980662 0.0939166071 0.8220300712 0.4274282807
+ [6] 0.7558872597 0.6623855066 0.4445273969 0.6271461844 0.0004653491
+[11] 0.2172435140 0.7048722457 0.2151664882 0.8139337213 0.3077638743
+[16] 0.6877426857 0.9326810790 0.1157796648 0.1277056879 0.6782238574
+> (Pnbinom  <- pnbinom  (Rnbinom, size = 7, prob = .01) )
+ [1] 0.34539127 0.04498289 0.27616523 0.57177025 0.42755552 0.46435569
+ [7] 0.34059007 0.91950991 0.92034921 0.74409223 0.28078034 0.68045166
+[13] 0.36627489 0.52069882 0.41628414 0.16798077 0.88887110 0.38885301
+[19] 0.50524696 0.83942274
+> (Pnorm	  <- pnorm    (Rnorm, mean = -1, sd = 3) )
+ [1] 0.58273974 0.06078223 0.12023713 0.88076412 0.33749500 0.03197163
+ [7] 0.68649035 0.31849459 0.80142958 0.82271739 0.37416939 0.09663374
+[13] 0.99304478 0.78182307 0.75486546 0.04414707 0.86550081 0.37681641
+[19] 0.36441108 0.85046748
+> (Ppois	  <- ppois    (Rpois, lambda = 12) )
+ [1] 0.3472294 0.8444157 0.7720245 0.2423922 0.8444157 0.5759652 0.8987090
+ [8] 0.0895045 0.0895045 0.7720245 0.4615973 0.7720245 0.8987090 0.5759652
+[15] 0.8444157 0.0895045 0.0895045 0.6815356 0.8444157 0.5759652
+> (Psignrank<- psignrank(Rsignrank, n = 47) )
+ [1] 0.36663746 0.33169387 0.02921581 0.58098562 0.96191228 0.14044836
+ [7] 0.41083885 0.60942723 0.20480997 0.57688473 0.53132960 0.17614726
+[13] 0.92806867 0.39057277 0.03720129 0.53132960 0.66065154 0.30545809
+[19] 0.18167093 0.68340768
+> (Pt	  <- pt	      (Rt,  df = 11) )
+ [1] 0.31351556 0.06147847 0.24039508 0.50385399 0.92149468 0.14627181
+ [7] 0.47120313 0.37615421 0.38146974 0.84655256 0.05571530 0.39116296
+[13] 0.57946003 0.65504612 0.99527474 0.57249461 0.13645270 0.82365134
+[19] 0.10352754 0.91083331
+> (Pt2	  <- pt	      (Rt2, df = 1.01) )
+ [1] 0.25806154 0.01854802 0.40317545 0.16447686 0.48742623 0.13262717
+ [7] 0.21849621 0.65049354 0.03193557 0.42428168 0.95323005 0.38499762
+[13] 0.38589278 0.90387188 0.44339511 0.22470366 0.70232456 0.16312545
+[19] 0.86911865 0.81300659
+> (Punif	  <- punif    (Runif, min = .2, max = 2) )
+ [1] 0.61540849 0.27307767 0.06370684 0.07230328 0.87351121 0.36282500
+ [7] 0.94562215 0.55831894 0.51266115 0.94777166 0.10980160 0.81890755
+[13] 0.37734211 0.55664105 0.31387119 0.08234288 0.77993754 0.19323473
+[19] 0.65558547 0.43514705
+> (Pweibull <- pweibull (Rweibull, shape = 3, scale = 2) )
+ [1] 0.802851673 0.005339578 0.553257134 0.968573336 0.062983442 0.129016046
+ [7] 0.398753717 0.700984544 0.190653725 0.047857615 0.147946029 0.872690264
+[13] 0.031117650 0.442898991 0.994635553 0.864236080 0.994152898 0.183125938
+[19] 0.217836412 0.068933714
+> (Pwilcox  <- pwilcox  (Rwilcox, m = 13, n = 17) )
+ [1] 0.51643195 0.28170171 0.03248009 0.29584273 0.96068495 0.80746123
+ [7] 0.99230879 0.29584273 0.32502911 0.98253011 0.06135823 0.29584273
+[13] 0.01564120 0.29584273 0.48356805 0.38647276 0.34003726 0.46716310
+[19] 0.25440692 0.34003726
+> 
+> dbeta	 (Rbeta, shape1 = .8, shape2 = 2)
+ [1] 0.7223732 1.0651681 3.4136000 1.4013424 1.4682944 3.7281631 1.8517657
+ [8] 0.6047651 2.8467121 1.7813410 1.4470712 0.7268595 1.8952825 2.1401041
+[15] 0.8090938 1.0785126 0.3433595 0.5678419 2.3110352 1.4958106
+> dbinom	 (Rbinom, size = 55, prob = pi/16)
+ [1] 0.063354298 0.096368041 0.047170694 0.133176805 0.119246389 0.063354298
+ [7] 0.133176805 0.118497194 0.096368041 0.133176805 0.096368041 0.096368041
+[13] 0.096368041 0.133176805 0.096368041 0.119246389 0.119246389 0.002298608
+[19] 0.133110131 0.092873118
+> dcauchy	 (Rcauchy, location = 12, scale = 2)
+ [1] 0.021630824 0.019154376 0.032078738 0.140529537 0.082766881 0.040391664
+ [7] 0.010417640 0.098492589 0.143104718 0.006566194 0.158799748 0.141854068
+[13] 0.139752618 0.115681430 0.133797911 0.034066567 0.035463730 0.035578069
+[19] 0.045526265 0.109942144
+> dchisq	 (Rchisq, df = 3)
+ [1] 0.11359392 0.21581974 0.23922560 0.21190393 0.17584488 0.21398711
+ [7] 0.12097660 0.21132681 0.18315290 0.16296267 0.24114522 0.01579786
+[13] 0.16808590 0.17245292 0.15434146 0.20191378 0.09748429 0.01891934
+[19] 0.24090989 0.22923980
+> dexp	 (Rexp, rate = 2)
+ [1] 0.4741150 1.2571871 1.5284729 0.4629421 0.4298810 1.9908229 0.6599321
+ [8] 1.4816804 0.6072250 0.6558773 1.8696875 1.2367395 0.4159014 1.5421863
+[15] 0.3123050 1.2585088 1.5795049 0.6132686 1.8841481 1.3363055
+> df	 (Rf, df1 = 12, df2 = 6)
+ [1] 0.664042111 0.576090730 0.562274916 0.607318497 0.167959027 0.100284610
+ [7] 0.637144174 0.282709564 0.693573655 0.678003283 0.457493848 0.643454728
+[13] 0.441386316 0.602499118 0.304762080 0.674516557 0.524996364 0.670131912
+[19] 0.292349736 0.008558897
+> dgamma	 (Rgamma, shape = 2, scale = 5)
+ [1] 0.044345445 0.069072391 0.041471424 0.072333682 0.072356861 0.027275042
+ [7] 0.067458566 0.046936330 0.073360525 0.070933729 0.028572738 0.060051063
+[13] 0.038400284 0.048758423 0.054515175 0.071657454 0.070028735 0.005557423
+[19] 0.070344309 0.009173320
+> dgeom	 (Rgeom, prob = pi/16)
+ [1] 0.03416390 0.12681315 0.08190279 0.12681315 0.10191344 0.06582121
+ [7] 0.06582121 0.08190279 0.15779640 0.03416390 0.15779640 0.05289725
+[13] 0.15779640 0.05289725 0.03416390 0.10191344 0.03416390 0.04251090
+[19] 0.06582121 0.19634954
+> dhyper	 (Rhyper, m = 40, n = 30, k = 20)
+ [1] 0.20199224 0.20431399 0.20199224 0.15732178 0.15132529 0.20431399
+ [7] 0.15132529 0.15132529 0.04108936 0.20199224 0.20199224 0.03541012
+[13] 0.20431399 0.20431399 0.20431399 0.20199224 0.09227084 0.20431399
+[19] 0.20199224 0.20199224
+> dlnorm	 (Rlnorm, meanlog = -1, sdlog = 3)
+ [1] 4.3380954158 0.0005822436 1.2319845653 2.4357017049 6.8694422907
+ [6] 7.4733929149 1.7154009417 0.0467724227 0.0069920836 0.0336865537
+[11] 1.0073244481 0.3016205039 2.3349967070 2.4034440204 0.0172006936
+[16] 4.5426601250 0.0001514856 0.4720497698 0.1855964185 2.5226771709
+> dlogis	 (Rlogis, location = 12, scale = 2)
+ [1] 0.1014234598 0.0768265203 0.0425481390 0.0731483166 0.1223666728
+ [6] 0.0922608552 0.1118154736 0.1234613952 0.1169169239 0.0002325663
+[11] 0.0850243848 0.1040136815 0.0844349353 0.0757228093 0.1065226360
+[16] 0.1073763420 0.0313935419 0.0511873670 0.0556984726 0.1091181283
+> dnbinom	 (Rnbinom, size = 7, prob = .01)
+ [1] 0.0016012889 0.0006114669 0.0015340423 0.0014659766 0.0016087509
+ [6] 0.0015899813 0.0015985567 0.0004225217 0.0004186957 0.0010719579
+[11] 0.0015404998 0.0012444310 0.0016100854 0.0015372764 0.0016118864
+[16] 0.0012822374 0.0005567006 0.0016141573 0.0015545113 0.0007531913
+> dnorm	 (Rnorm, mean = -1, sd = 3)
+ [1] 0.130110398 0.040112199 0.066772988 0.066380399 0.121789513 0.023907371
+ [7] 0.118172118 0.118967900 0.092918367 0.086632832 0.126309889 0.057050581
+[13] 0.006458952 0.098226734 0.104819164 0.031112294 0.072188495 0.126589892
+[19] 0.125224300 0.077557930
+> dpois	 (Rpois, lambda = 12)
+ [1] 0.10483726 0.07239112 0.09048890 0.08736438 0.07239112 0.11436792
+ [7] 0.05429334 0.04368219 0.04368219 0.09048890 0.11436792 0.09048890
+[13] 0.05429334 0.11436792 0.07239112 0.04368219 0.04368219 0.10557038
+[19] 0.07239112 0.11436792
+> dsignrank(Rsignrank, n = 47)
+ [1] 0.0039429676 0.0038018425 0.0007151971 0.0041008982 0.0009032331
+ [6] 0.0023508267 0.0040737886 0.0040318201 0.0029828933 0.0041090875
+[11] 0.0041704554 0.0027222983 0.0014781510 0.0040203094 0.0008698303
+[16] 0.0041704554 0.0038520708 0.0036731856 0.0027749926 0.0037486048
+> dt	 (Rt, df = 11)
+ [1] 0.340823726 0.100413165 0.293668976 0.389968983 0.124439520 0.207270198
+ [7] 0.388829635 0.368437694 0.370255866 0.214961569 0.091948602 0.373362745
+[13] 0.381142118 0.356119169 0.008424401 0.382627645 0.196428441 0.238239645
+[19] 0.157280563 0.138777161
+> dunif	 (Runif, min = .2, max = 2)
+ [1] 0.5555556 0.5555556 0.5555556 0.5555556 0.5555556 0.5555556 0.5555556
+ [8] 0.5555556 0.5555556 0.5555556 0.5555556 0.5555556 0.5555556 0.5555556
+[15] 0.5555556 0.5555556 0.5555556 0.5555556 0.5555556 0.5555556
+> dweibull (Rweibull, shape = 3, scale = 2)
+ [1] 0.40854433 0.04566100 0.58026142 0.10784049 0.22734704 0.34911114
+ [7] 0.57475176 0.50853257 0.43099423 0.19135106 0.37684466 0.30928353
+[13] 0.14529960 0.58452097 0.02423843 0.32292685 0.02612818 0.42221582
+[19] 0.46023762 0.24042036
+> dwilcox	 (Rwilcox, m = 13, n = 17)
+ [1] 0.016431951 0.013817085 0.003042940 0.014141025 0.003817298 0.011603922
+ [7] 0.001015666 0.014141025 0.014737869 0.002001138 0.005024180 0.014141025
+[13] 0.001667195 0.014141025 0.016404947 0.015691594 0.015008152 0.016351073
+[19] 0.013124724 0.015008152
+> 
+> ## Check q*(p*(.)) = identity
+> All.eq(Rbeta,	  qbeta	   (Pbeta, shape1 = .8, shape2 = 2))
+[1] TRUE
+> All.eq(Rbinom,	  qbinom   (Pbinom, size = 55, prob = pi/16))
+[1] TRUE
+> All.eq(Rcauchy,	  qcauchy  (Pcauchy, location = 12, scale = 2))
+[1] TRUE
+> All.eq(Rchisq,	  qchisq   (Pchisq, df = 3))
+[1] TRUE
+> All.eq(Rexp,	  qexp	   (Pexp, rate = 2))
+[1] TRUE
+> All.eq(Rf,	  qf	   (Pf, df1 = 12, df2 = 6))
+[1] TRUE
+> All.eq(Rgamma,	  qgamma   (Pgamma, shape = 2, scale = 5))
+[1] TRUE
+> All.eq(Rgeom,	  qgeom	   (Pgeom, prob = pi/16))
+[1] TRUE
+> All.eq(Rhyper,	  qhyper   (Phyper, m = 40, n = 30, k = 20))
+[1] TRUE
+> All.eq(Rlnorm,	  qlnorm   (Plnorm, meanlog = -1, sdlog = 3))
+[1] TRUE
+> All.eq(Rlogis,	  qlogis   (Plogis, location = 12, scale = 2))
+[1] TRUE
+> All.eq(Rnbinom,	  qnbinom  (Pnbinom, size = 7, prob = .01))
+[1] TRUE
+> All.eq(Rnorm,	  qnorm	   (Pnorm, mean = -1, sd = 3))
+[1] TRUE
+> All.eq(Rpois,	  qpois	   (Ppois, lambda = 12))
+[1] TRUE
+> All.eq(Rsignrank, qsignrank(Psignrank, n = 47))
+[1] TRUE
+> All.eq(Rt,	  qt	   (Pt,	 df = 11))
+[1] TRUE
+> All.eq(Rt2,	  qt	   (Pt2, df = 1.01))
+[1] TRUE
+> All.eq(Runif,	  qunif	   (Punif, min = .2, max = 2))
+[1] TRUE
+> All.eq(Rweibull,  qweibull (Pweibull, shape = 3, scale = 2))
+[1] TRUE
+> All.eq(Rwilcox,	  qwilcox  (Pwilcox, m = 13, n = 17))
+[1] TRUE
+> 
+> ## Same with "upper tail":
+> All.eq(Rbeta,	  qbeta	   (1- Pbeta, shape1 = .8, shape2 = 2, lower=F))
+[1] TRUE
+> All.eq(Rbinom,	  qbinom   (1- Pbinom, size = 55, prob = pi/16, lower=F))
+[1] TRUE
+> All.eq(Rcauchy,	  qcauchy  (1- Pcauchy, location = 12, scale = 2, lower=F))
+[1] TRUE
+> All.eq(Rchisq,	  qchisq   (1- Pchisq, df = 3, lower=F))
+[1] TRUE
+> All.eq(Rexp,	  qexp	   (1- Pexp, rate = 2, lower=F))
+[1] TRUE
+> All.eq(Rf,	  qf	   (1- Pf, df1 = 12, df2 = 6, lower=F))
+[1] TRUE
+> All.eq(Rgamma,	  qgamma   (1- Pgamma, shape = 2, scale = 5, lower=F))
+[1] TRUE
+> All.eq(Rgeom,	  qgeom	   (1- Pgeom, prob = pi/16, lower=F))
+[1] TRUE
+> All.eq(Rhyper,	  qhyper   (1- Phyper, m = 40, n = 30, k = 20, lower=F))
+[1] TRUE
+> All.eq(Rlnorm,	  qlnorm   (1- Plnorm, meanlog = -1, sdlog = 3, lower=F))
+[1] TRUE
+> All.eq(Rlogis,	  qlogis   (1- Plogis, location = 12, scale = 2, lower=F))
+[1] TRUE
+> All.eq(Rnbinom,	  qnbinom  (1- Pnbinom, size = 7, prob = .01, lower=F))
+[1] TRUE
+> All.eq(Rnorm,	  qnorm	   (1- Pnorm, mean = -1, sd = 3,lower=F))
+[1] TRUE
+> All.eq(Rpois,	  qpois	   (1- Ppois, lambda = 12, lower=F))
+[1] TRUE
+> All.eq(Rsignrank, qsignrank(1- Psignrank, n = 47, lower=F))
+[1] TRUE
+> All.eq(Rt,	  qt	   (1- Pt,  df = 11,   lower=F))
+[1] TRUE
+> All.eq(Rt2,	  qt	   (1- Pt2, df = 1.01, lower=F))
+[1] TRUE
+> All.eq(Runif,	  qunif	   (1- Punif, min = .2, max = 2, lower=F))
+[1] TRUE
+> All.eq(Rweibull,  qweibull (1- Pweibull, shape = 3, scale = 2, lower=F))
+[1] TRUE
+> All.eq(Rwilcox,	  qwilcox  (1- Pwilcox, m = 13, n = 17, lower=F))
+[1] TRUE
+> 
+> ## Check q*(p* ( log ), log) = identity
+> All.eq(Rbeta,	  qbeta	   (log(Pbeta), shape1 = .8, shape2 = 2, log=TRUE))
+[1] TRUE
+> All.eq(Rbinom,	  qbinom   (log(Pbinom), size = 55, prob = pi/16, log=TRUE))
+[1] TRUE
+> All.eq(Rcauchy,	  qcauchy  (log(Pcauchy), location = 12, scale = 2, log=TRUE))
+[1] TRUE
+> All.eq(Rchisq,    qchisq   (log(Pchisq), df = 3, log=TRUE))
+[1] TRUE
+> All.eq(Rexp,	  qexp	   (log(Pexp), rate = 2, log=TRUE))
+[1] TRUE
+> All.eq(Rf,	  qf	   (log(Pf), df1= 12, df2= 6, log=TRUE))
+[1] TRUE
+> All.eq(Rgamma,	  qgamma   (log(Pgamma), shape = 2, scale = 5, log=TRUE))
+[1] TRUE
+> All.eq(Rgeom,	  qgeom	   (log(Pgeom), prob = pi/16, log=TRUE))
+[1] TRUE
+> All.eq(Rhyper,	  qhyper   (log(Phyper), m = 40, n = 30, k = 20, log=TRUE))
+[1] TRUE
+> All.eq(Rlnorm,	  qlnorm   (log(Plnorm), meanlog = -1, sdlog = 3, log=TRUE))
+[1] TRUE
+> All.eq(Rlogis,	  qlogis   (log(Plogis), location = 12, scale = 2, log=TRUE))
+[1] TRUE
+> All.eq(Rnbinom,	  qnbinom  (log(Pnbinom), size = 7, prob = .01, log=TRUE))
+[1] TRUE
+> All.eq(Rnorm,	  qnorm	   (log(Pnorm), mean = -1, sd = 3, log=TRUE))
+[1] TRUE
+> All.eq(Rpois,	  qpois	   (log(Ppois), lambda = 12, log=TRUE))
+[1] TRUE
+> All.eq(Rsignrank, qsignrank(log(Psignrank), n = 47, log=TRUE))
+[1] TRUE
+> All.eq(Rt,	  qt	   (log(Pt), df = 11, log=TRUE))
+[1] TRUE
+> All.eq(Rt2,	  qt	   (log(Pt2), df = 1.01, log=TRUE))
+[1] TRUE
+> All.eq(Runif,	  qunif	   (log(Punif), min = .2, max = 2, log=TRUE))
+[1] TRUE
+> All.eq(Rweibull,  qweibull (log(Pweibull), shape = 3, scale = 2, log=TRUE))
+[1] TRUE
+> All.eq(Rwilcox,	  qwilcox  (log(Pwilcox), m = 13, n = 17, log=TRUE))
+[1] TRUE
+> 
+> ## same q*(p* (log) log) with upper tail:
+> 
+> All.eq(Rbeta,	  qbeta	   (log1p(-Pbeta), shape1 = .8, shape2 = 2, lower=F, log=T))
+[1] TRUE
+> All.eq(Rbinom,	  qbinom   (log1p(-Pbinom), size = 55, prob = pi/16, lower=F, log=T))
+[1] TRUE
+> All.eq(Rcauchy,	  qcauchy  (log1p(-Pcauchy), location = 12, scale = 2, lower=F, log=T))
+[1] TRUE
+> All.eq(Rchisq,	  qchisq   (log1p(-Pchisq), df = 3, lower=F, log=T))
+[1] TRUE
+> All.eq(Rexp,	  qexp	   (log1p(-Pexp), rate = 2, lower=F, log=T))
+[1] TRUE
+> All.eq(Rf,	  qf	   (log1p(-Pf), df1 = 12, df2 = 6, lower=F, log=T))
+[1] TRUE
+> All.eq(Rgamma,	  qgamma   (log1p(-Pgamma), shape = 2, scale = 5, lower=F, log=T))
+[1] TRUE
+> All.eq(Rgeom,	  qgeom	   (log1p(-Pgeom), prob = pi/16, lower=F, log=T))
+[1] TRUE
+> All.eq(Rhyper,	  qhyper   (log1p(-Phyper), m = 40, n = 30, k = 20, lower=F, log=T))
+[1] TRUE
+> All.eq(Rlnorm,	  qlnorm   (log1p(-Plnorm), meanlog = -1, sdlog = 3, lower=F, log=T))
+[1] TRUE
+> All.eq(Rlogis,	  qlogis   (log1p(-Plogis), location = 12, scale = 2, lower=F, log=T))
+[1] TRUE
+> All.eq(Rnbinom,	  qnbinom  (log1p(-Pnbinom), size = 7, prob = .01, lower=F, log=T))
+[1] TRUE
+> All.eq(Rnorm,	  qnorm	   (log1p(-Pnorm), mean = -1, sd = 3, lower=F, log=T))
+[1] TRUE
+> All.eq(Rpois,	  qpois	   (log1p(-Ppois), lambda = 12, lower=F, log=T))
+[1] TRUE
+> All.eq(Rsignrank, qsignrank(log1p(-Psignrank), n = 47, lower=F, log=T))
+[1] TRUE
+> All.eq(Rt,	  qt	   (log1p(-Pt ), df = 11,   lower=F, log=T))
+[1] TRUE
+> All.eq(Rt2,	  qt	   (log1p(-Pt2), df = 1.01, lower=F, log=T))
+[1] TRUE
+> All.eq(Runif,	  qunif	   (log1p(-Punif), min = .2, max = 2, lower=F, log=T))
+[1] TRUE
+> All.eq(Rweibull,  qweibull (log1p(-Pweibull), shape = 3, scale = 2, lower=F, log=T))
+[1] TRUE
+> All.eq(Rwilcox,	  qwilcox  (log1p(-Pwilcox), m = 13, n = 17, lower=F, log=T))
+[1] TRUE
+> 
+> 
+> ## Check log( upper.tail ):
+> All.eq(log1p(-Pbeta),	  pbeta	   (Rbeta, shape1 = .8, shape2 = 2, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Pbinom),	  pbinom   (Rbinom, size = 55, prob = pi/16, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Pcauchy),	  pcauchy  (Rcauchy, location = 12, scale = 2, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Pchisq),	  pchisq   (Rchisq, df = 3, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Pexp),	  pexp	   (Rexp, rate = 2, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Pf),	  pf	   (Rf, df1 = 12, df2 = 6, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Pgamma),	  pgamma   (Rgamma, shape = 2, scale = 5, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Pgeom),	  pgeom	   (Rgeom, prob = pi/16, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Phyper),	  phyper   (Rhyper, m = 40, n = 30, k = 20, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Plnorm),	  plnorm   (Rlnorm, meanlog = -1, sdlog = 3, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Plogis),	  plogis   (Rlogis, location = 12, scale = 2, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Pnbinom),	  pnbinom  (Rnbinom, size = 7, prob = .01, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Pnorm),	  pnorm	   (Rnorm, mean = -1, sd = 3, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Ppois),	  ppois	   (Rpois, lambda = 12, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Psignrank), psignrank(Rsignrank, n = 47, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Pt),	  pt	   (Rt, df = 11,   lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Pt2),	  pt	   (Rt2,df = 1.01, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Punif),	  punif	   (Runif, min = .2, max = 2, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Pweibull),  pweibull (Rweibull, shape = 3, scale = 2, lower=F, log=T))
+[1] TRUE
+> All.eq(log1p(-Pwilcox),	  pwilcox  (Rwilcox, m = 13, n = 17, lower=F, log=T))
+[1] TRUE
+> 
+> 
+> ### (Extreme) tail tests added more recently:
+> All.eq(1, -1e-17/ pexp(qexp(-1e-17, log=TRUE),log=TRUE))
+[1] TRUE
+> abs(pgamma(30,100, lower=FALSE, log=TRUE) + 7.3384686328784e-24) < 1e-36
+[1] TRUE
+> All.eq(1, pcauchy(-1e20)           /  3.18309886183791e-21)
+[1] TRUE
+> All.eq(1, pcauchy(+1e15, log=TRUE) / -3.18309886183791e-16)## PR#6756
+[1] TRUE
+> x <- 10^(ex <- c(1,2,5*(1:5),50,100,200,300,Inf))
+> for(a in x[ex > 10]) ## improve pt() : cbind(x,t= pt(-x, df=1), C=pcauchy(-x))
++     stopifnot(all.equal(pt(-a, df=1), pcauchy(-a), tolerance = 1e-15))
+> ## for PR#7902:
+> ex <- -c(rev(1/x), ex)
+> All.eq(-x, qcauchy(pcauchy(-x)))
+[1] TRUE
+> All.eq(+x, qcauchy(pcauchy(+x, log=TRUE), log=TRUE))
+[1] TRUE
+> All.eq(1/x, pcauchy(qcauchy(1/x)))
+[1] TRUE
+> All.eq(ex,  pcauchy(qcauchy(ex, log=TRUE), log=TRUE))
+[1] TRUE
+> II <- c(-Inf,Inf)
+> stopifnot(pcauchy(II) == 0:1, qcauchy(0:1) == II,
++           pcauchy(II, log=TRUE) == c(-Inf,0),
++           qcauchy(c(-Inf,0), log=TRUE) == II)
+> ## PR#15521 :
+> p <- 1 - 1/4096
+> stopifnot(all.equal(qcauchy(p), 1303.7970381453319163, tolerance = 1e-14))
+> 
+> pr <- 1e-23 ## PR#6757
+> stopifnot(all.equal(pr^ 12, pbinom(11, 12, prob= pr,lower=FALSE),
++                     tolerance = 1e-12, scale= 1e-270))
+> ## pbinom(.) gave 0 in R 1.9.0
+> pp <- 1e-17 ## PR#6792
+> stopifnot(all.equal(2*pp, pgeom(1, pp), scale= 1e-20))
+> ## pgeom(.) gave 0 in R 1.9.0
+> 
+> x <- 10^(100:295)
+> sapply(c(1e-250, 1e-25, 0.9, 1.1, 101, 1e10, 1e100),
++        function(shape)
++        All.eq(-x, pgamma(x, shape=shape, lower=FALSE, log=TRUE)))
+[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE
+> x <- 2^(-1022:-900)
+> ## where all completely off in R 2.0.1
+> all.equal(pgamma(x, 10, log = TRUE) - 10*log(x),
++           rep(-15.104412573076, length(x)), tolerance = 1e-12)# 3.984e-14 (i386)
+[1] TRUE
+> all.equal(pgamma(x, 0.1, log = TRUE) - 0.1*log(x),
++           rep(0.0498724412598364, length(x)), tolerance = 1e-13)# 7e-16 (i386)
+[1] TRUE
+> 
+> All.eq(dpois(  10*1:2, 3e-308, log=TRUE),
++        c(-7096.08037610806, -14204.2875435307))
+[1] TRUE
+> All.eq(dpois(1e20, 1e-290, log=TRUE), -7.12801378828154e+22)
+[1] TRUE
+> ## all gave -Inf in R 2.0.1
+> 
+> 
+> ## Inf df in pf etc.
+> # apparently pf(df2=Inf) worked in 2.0.1 (undocumented) but df did not.
+> x <- c(1/pi, 1, pi)
+> oo <- options(digits = 8)
+> df(x, 3, 1e6)
+[1] 0.72553184 0.46254030 0.03300701
+> df(x, 3, Inf)
+[1] 0.725532165 0.462540989 0.033006719
+> pf(x, 3, 1e6)
+[1] 0.18784423 0.60837436 0.97585435
+> pf(x, 3, Inf)
+[1] 0.18784423 0.60837482 0.97585479
+> 
+> df(x, 1e6, 5)
+[1] 0.158602071 0.610206081 0.061036395
+> df(x, Inf, 5)
+[1] 0.15859792 0.61020761 0.06103637
+> pf(x, 1e6, 5)
+[1] 0.0077295711 0.4158807972 0.9022692409
+> pf(x, Inf, 5)
+[1] 0.0077292503 0.4158801870 0.9022693759
+> 
+> df(x, Inf, Inf)# (0, Inf, 0)  - since 2.1.1
+[1]   0 Inf   0
+> pf(x, Inf, Inf)# (0, 1/2, 1)
+[1] 0.0 0.5 1.0
+> 
+> pf(x, 5, Inf, ncp=0)
+[1] 0.097730624 0.584119813 0.992270750
+> all.equal(pf(x, 5, 1e6, ncp=1), tolerance = 1e-6,
++           c(0.065933194, 0.470879987, 0.978875867))
+[1] TRUE
+> all.equal(pf(x, 5, 1e7, ncp=1), tolerance = 1e-6,
++           c(0.06593309, 0.47088028, 0.97887641))
+[1] TRUE
+> all.equal(pf(x, 5, 1e8, ncp=1), tolerance = 1e-6,
++           c(0.0659330751, 0.4708802996, 0.9788764591))
+[1] TRUE
+> pf(x, 5, Inf, ncp=1)
+[1] 0.065933078 0.470880318 0.978876467
+> 
+> dt(1, Inf)
+[1] 0.24197072
+> dt(1, Inf, ncp=0)
+[1] 0.24197072
+> dt(1, Inf, ncp=1)
+[1] 0.39894228
+> dt(1, 1e6, ncp=1)
+[1] 0.39894208
+> dt(1, 1e7, ncp=1)
+[1] 0.39894226
+> dt(1, 1e8, ncp=1)
+[1] 0.39894227
+> dt(1, 1e10, ncp=1) # = Inf
+[1] 0.39894228
+> ## Inf valid as from 2.1.1: df(x, 1e16, 5) was way off in 2.0.1.
+> 
+> sml.x <- c(10^-c(2:8,100), 0)
+> cbind(x = sml.x, `dt(x,*)` = dt(sml.x, df = 2, ncp=1))
+           x    dt(x,*)
+ [1,]  1e-02 0.21686052
+ [2,]  1e-03 0.21468294
+ [3,]  1e-04 0.21446517
+ [4,]  1e-05 0.21444339
+ [5,]  1e-06 0.21444121
+ [6,]  1e-07 0.21444100
+ [7,]  1e-08 0.21444097
+ [8,] 1e-100 0.21444097
+ [9,]  0e+00 0.21444097
+> ## small 'x' used to suffer from cancellation
+> options(oo)
+> x <- c(outer(1:12, 10^c(-3:2, 6:9, 10*(2:30))))
+> for(nu in c(.75, 1.2, 4.5, 999, 1e50)) {
++     lfx <- dt(x, df=nu, log=TRUE)
++     stopifnot(is.finite(lfx), All.eq(exp(lfx), dt(x, df=nu)))
++ }## dt(1e160, 1.2, log=TRUE) was -Inf  up to R 2.15.2
+> 
+> ## pf() with large df1 or df2
+> ## (was said to be PR#7099, but that is about non-central pchisq)
+> nu <- 2^seq(25, 34, 0.5)
+> target <- pchisq(1, 1) # 0.682...
+> y <- pf(1, 1, nu)
+> stopifnot(All.eq(pf(1, 1, Inf), target),
++           diff(c(y, target)) > 0, # i.e. pf(1, 1, *) is monotone increasing
++           abs(y[1] - (target - 7.21129e-9)) < 1e-11) # computed value
+> ## non-monotone in R <= 2.1.0
+> 
+> stopifnot(pgamma(Inf, 1.1) == 1)
+> ## didn't not terminate in R 2.1.x (only)
+> 
+> ## qgamma(q, *) should give {0,Inf} for q={0,1}
+> sh <- c(1.1, 0.5, 0.2, 0.15, 1e-2, 1e-10)
+> stopifnot(Inf == qgamma(1, sh))
+> stopifnot(0   == qgamma(0, sh))
+> ## the first gave Inf, NaN, and 99.425 in R 2.1.1 and earlier
+> 
+> ## In extreme left tail {PR#11030}
+> p <- 10:123*1e-12
+> qg <- qgamma(p, shape=19)
+> qg2<- qgamma(1:100 * 1e-9, shape=11)
+> stopifnot(diff(qg, diff=2) < -6e-6,
++           diff(qg2,diff=2) < -6e-6,
++ 	  abs(1 - pgamma(qg, 19)/ p) < 1e-13,
++           All.eq(qg  [1], 2.35047385139143),
++           All.eq(qg2[30], 1.11512318734547))
+> ## was non-continuous in R 2.6.2 and earlier
+> 
+> f2 <- c(0.5, 1:4)
+> stopifnot(df(0, 1, f2) == Inf,
++           df(0, 2, f2) == 1,
++           df(0, 3, f2) == 0)
+> ## only the last one was ok in R 2.2.1 and earlier
+> 
+> x0 <- -2 * 10^-c(22,10,7,5) # ==> d*() warns about non-integer:
+> assertWarning(fx0 <- dbinom(x0, size = 3, prob = 0.1))
+> stopifnot(fx0 == 0,  pbinom(x0, size = 3, prob = 0.1) == 0)
+> 
+> ## very small negatives were rounded to 0 in R 2.2.1 and earlier
+> 
+> ## dbeta(*, ncp):
+> db.x <- c(0, 5, 80, 405, 1280, 3125, 6480, 12005, 20480, 32805,
++ 	  50000, 73205, 103680, 142805, 192080, 253125, 327680)
+> a <- rlnorm(100)
+> stopifnot(All.eq(a, dbeta(0, 1, a, ncp=0)),
++ 	  dbeta(0, 0.9, 2.2, ncp = c(0, a)) == Inf,
++ 	  All.eq(65536 * dbeta(0:16/16, 5,1), db.x),
++ 	  All.eq(exp(16 * log(2) + dbeta(0:16/16, 5,1, log=TRUE)), db.x)
++           )
+> ## the first gave 0, the 2nd NaN in R <= 2.3.0; others use 'TRUE' values
+> stopifnot(all.equal(dbeta(0.8, 0.5, 5, ncp=1000),# was way too small in R <= 2.6.2
++ 		    3.001852308909e-35),
++ 	  all.equal(1, integrate(dbeta, 0,1, 0.8, 0.5, ncp=1000)$value,
++ 		    tolerance = 1e-4),
++           all.equal(1, integrate(dbeta, 0,1, 0.5, 200, ncp=720)$value),
++           all.equal(1, integrate(dbeta, 0,1, 125, 200, ncp=2000)$value)
++           )
+> 
+> ## df(*, ncp):
+> x <- seq(0, 10, length=101)
+> h <- 1e-7
+> dx.h <- (pf(x+h, 7, 5, ncp= 2.5) - pf(x-h, 7, 5, ncp= 2.5)) / (2*h)
+> stopifnot(all.equal(dx.h, df(x, 7, 5, ncp= 2.5), tolerance = 1e-6),# (1.50 | 1.65)e-8
++           All.eq(df(0, 2, 4, ncp=x), df(1e-300, 2, 4, ncp=x))
++           )
+> 
+> ## qt(p ~ 0, df=1) - PR#9804
+> p <- 10^(-10:-20)
+> qtp <- qt(p, df = 1)
+> ## relative error < 10^-14 :
+> stopifnot(abs(1 - p / pt(qtp, df=1)) < 1e-14)
+> 
+> ## Similarly for df = 2 --- both for p ~ 0  *and*  p ~ 1/2
+> ## P ~ 0
+> stopifnot(all.equal(qt(-740, df=2, log=TRUE), -exp(370)/sqrt(2)))
+> ## P ~ 1 (=> p ~ 0.5):
+> p.5 <- 0.5 + 2^(-5*(5:8))
+> stopifnot(all.equal(qt(p.5, df = 2),
++ 		    c(8.429369702179e-08, 2.634178031931e-09,
++ 		      8.231806349784e-11, 2.572439484308e-12)))
+> ## qt(<large>, log = TRUE)  is now more finite and monotone (again!):
+> stopifnot(all.equal(qt(-1000, df = 4, log=TRUE),
++                     -4.930611e108, tolerance = 1e-6))
+> qtp <- qt(-(20:850), df=1.2, log=TRUE, lower=FALSE)
+> ##almost: stopifnot(all(abs(5/6 - diff(log(qtp))) < 1e-11))
+> stopifnot(abs(5/6 - quantile(diff(log(qtp)), pr=c(0,0.995))) < 1e-11)
+> 
+> ## close to df=1 (where Taylor steps are important!):
+> stopifnot(all.equal(-20, pt(qt(-20, df=1.02, log=TRUE),
++                           df=1.02, log=TRUE), tolerance = 1e-12),
++           diff(lq <- log(qt(-2^-(10:600), df=1.1, log=TRUE))) > 0.6)
+> lq1 <- log(qt(-2^-(20:600), df=1, log=TRUE))
+> lq2 <- log(qt(-2^-(20:600), df=2, log=TRUE))
+> stopifnot(mean(abs(diff(lq1) - log(2)      )) < 1e-8,
++ 	  mean(abs(diff(lq2) - log(sqrt(2)))) < 4e-8)
+> ## Case, where log.p=TRUE was fine, but log.p=FALSE (default) gave NaN:
+> lp <- 40:406
+> stopifnot(all.equal(lp, -pt(qt(exp(-lp), 1.2), 1.2, log=TRUE), tolerance = 4e-16))
+> 
+> 
+> ## pbeta(*, log=TRUE) {toms708} -- now improved tail behavior
+> x <- c(.01, .10, .25, .40, .55, .71, .98)
+> pbval <- c(-0.04605755624088, -0.3182809860569, -0.7503593555585,
++            -1.241555830932, -1.851527837938, -2.76044482378, -8.149862739881)
+> stopifnot(all.equal(pbeta(x, 0.8, 2, lower=FALSE, log=TRUE), pbval),
++           all.equal(pbeta(1-x, 2, 0.8, log=TRUE), pbval))
+> qq <- 2^(0:1022)
+> df.set <- c(0.1, 0.2, 0.5, 1, 1.2, 2.2, 5, 10, 20, 50, 100, 500)
+> for(nu in df.set) {
++     pqq <- pt(-qq, df = nu, log=TRUE)
++     stopifnot(is.finite(pqq))
++ }
+> ## PR#14230 -- more extreme beta cases {should no longer rely on denormalized}
+> x <- (256:512)/1024
+> P <- pbeta(x, 3, 2200, lower.tail=FALSE, log.p=TRUE)
+> stopifnot(is.finite(P), P < -600,
++ 	  -.001 < (D3P <- diff(P, diff = 3)), D3P < 0, diff(D3P) < 0)
+> ## all but the first 43 where -Inf in R <= 2.9.1
+> stopifnot(All.eq(pt(2^-30, df=10),
++                  0.50000000036238542))
+> ## = .5+ integrate(dt, 0,2^-30, df=10, rel.tol=1e-20)
+> 
+> ## rbinom(*, size) gave NaN for large size up to R <= 2.6.1
+> M <- .Machine$integer.max
+> set.seed(7)
+> tt <- table(rbinom(100,    M, pr = 1e-9)) # had values in {0,2} only
+> t2 <- table(rbinom(100, 10*M, pr = 1e-10))
+> stopifnot(names(tt) == 0:6, sum(tt) == 100, sum(t2) == 100) ## no NaN there
+> 
+> ## qf() with large df1, df2  and/or  small p:
+> x <- 0.01; f1 <- 1e60; f2 <- 1e90
+> stopifnot(qf(1/4, Inf, Inf) == 1,
++ 	  all.equal(1, 1e-18/ pf(qf(1e-18, 12,50), 12,50), tolerance = 1e-10),
++ 	  abs(x - qf(pf(x, f1,f2, log.p=TRUE), f1,f2, log.p=TRUE)) < 1e-4)
+> 
+> ## qbeta(*, log.p) for "border" case:
+> stopifnot(is.finite(q0 <- qbeta(-1e10, 50,40, log.p=TRUE)),
++           1 ==            qbeta(-1e10,  2, 3, log.p=TRUE, lower=FALSE))
+> ## infinite loop or NaN in R <= 2.7.0
+> 
+> ## phyper(x, 0,0,0), notably for huge x
+> stopifnot(all(phyper(c(0:3, 1e67), 0,0,0) == 1))
+> ## practically infinite loop and NaN in R <= 2.7.1 (PR#11813)
+> 
+> ## plnorm(<= 0, . , log.p=TRUE)
+> stopifnot(plnorm(-1:0, lower.tail=FALSE, log.p=TRUE) == 0,
++ 	  plnorm(-1:0, lower.tail=TRUE,	 log.p=TRUE) == -Inf)
+> ## was wrongly == 'log.p=FALSE' up to R <= 2.7.1 (PR#11867)
+> 
+> 
+> ## pchisq(df=0) was wrong in 2.7.1; then, upto 2.10.1, P*(0,0) gave 1
+> stopifnot(pchisq(c(-1,0,1), df=0) == c(0,0,1),
++           pchisq(c(-1,0,1), df=0, lower.tail=FALSE) == c(1,1,0),
++ 	  ## for ncp >= 80, gave values >= 1 in 2.10.0
++ 	  pchisq(500:700, 1.01, ncp = 80) <= 1)
+> 
+> ## dnbinom for extreme  size and/or mu :
+> mu <- 20
+> d <- dnbinom(17, mu=mu, size = 1e11*2^(1:10)) - dpois(17, lambda=mu)
+> stopifnot(d < 0, diff(d) > 0, d[1] < 1e-10)
+> ## was wrong up to 2.7.1
+> ## The fix to the above, for x = 0, had a new cancellation problem
+> mu <- 1e12 * 2^(0:20)
+> stopifnot(all.equal(1/(1+mu), dnbinom(0, size = 1, mu = mu), tolerance = 1e-13))
+> ## was wrong in 2.7.2 (only)
+> mu <- sort(outer(1:7, 10^c(0:10,50*(1:6))))
+> NB <- dnbinom(5, size=1e305, mu=mu, log=TRUE)
+> P  <- dpois  (5,                mu, log=TRUE)
+> stopifnot(abs(rErr(NB,P)) < 9*Meps)# seen 2.5*
+> ## wrong in 3.1.0 and earlier
+> 
+> 
+> ## Non-central F for large x
+> x <- 1e16 * 1.1 ^ (0:20)
+> dP <- diff(pf(x, df1=1, df2=1, ncp=20, lower.tail=FALSE, log=TRUE))
+> stopifnot(-0.047 < dP, dP < -0.0455)
+> ## pf(*, log) jumped to -Inf prematurely in 2.8.0 and earlier
+> 
+> 
+> ## Non-central Chi^2 density for large x
+> stopifnot(0 == dchisq(c(Inf, 1e80, 1e50, 1e40), df=10, ncp=1))
+> ## did hang in 2.8.0 and earlier (PR#13309).
+> 
+> 
+> ## qbinom() .. particularly for large sizes, small prob:
+> p.s <- c(.01, .001, .1, .25)
+> pr <- (2:20)*1e-7
+> sizes <- 1000*(5000 + c(0,6,16)) + 279
+> k.s <- 0:15; q.xct <- rep(k.s, each=length(pr))
+> for(sz in sizes) {
++     for(p in p.s) {
++ 	qb <- qbinom(p=p, size = sz, prob=pr)
++ 	pb <- qpois (p=p, lambda = sz * pr)
++ 	stopifnot(All.eq(qb, pb))
++     }
++     pp.x <- outer(pr, k.s, function(pr, q) pbinom(q, size = sz, prob=pr))
++     qq.x <- apply(pp.x, 2, function(p)     qbinom(p, size = sz, prob=pr))
++     stopifnot(qq.x == q.xct)
++ }
+> ## do_search() in qbinom() contained a thinko up to 2.9.0 (PR#13711)
+> 
+> 
+> ## pbeta(x, a,b, log=TRUE)  for small x and a  is ~ log-linear
+> x <- 2^-(200:10)
+> for(a in c(1e-8, 1e-12, 16e-16, 4e-16))
++     for(b in c(0.6, 1, 2, 10)) {
++         dp <- diff(pbeta(x, a, b, log=TRUE)) # constant approximately
++         stopifnot(sd(dp) / mean(dp) < 0.0007)
++     }
+> ## had  accidental cancellation '1 - w'
+> 
+> ## qgamma(p, a) for small a and (hence) small p
+> ## pgamma(x, a) for very very small a
+> a <- 2^-seq(10,1000, .25)
+> q.1c <- qgamma(1e-100,a,lower.tail=FALSE)
+> q.3c <- qgamma(1e-300,a,lower.tail=FALSE)
+> p.1c <- pgamma(q.1c[q.1c > 0], a[q.1c > 0], lower.tail=FALSE)
+> p.3c <- pgamma(q.3c[q.3c > 0], a[q.3c > 0], lower.tail=FALSE)
+> x <- 1+1e-7*c(-1,1); pg <- pgamma(x, shape = 2^-64, lower.tail=FALSE)
+> stopifnot(qgamma(.99, .00001) == 0,
++           abs(pg[2] - 1.18928249197237758088243e-20) < 1e-33,
++ 	  abs(diff(pg) + diff(x)*dgamma(1, 2^-64)) < 1e-13 * mean(pg),
++ 	  abs(1 - p.1c/1e-100) < 10e-13,# max = 2.243e-13 / 2.442 e-13
++ 	  abs(1 - p.3c/1e-300) < 28e-13)# max = 7.057e-13
+> ## qgamma() was wrong here, orders of magnitude up to R 2.10.0
+> ## pgamma() had inaccuracies, e.g.,
+> ## pgamma(x, shape = 2^-64, lower.tail=FALSE)  was discontinuous at x=1
+> 
+> stopifnot(all(qpois((0:8)/8, lambda=0) == 0))
+> ## gave Inf as p==1 was checked *before* lambda==0
+> 
+> ## extreme tail of non-central chisquare
+> stopifnot(all.equal(pchisq(200, 4, ncp=.001, log.p=TRUE), -3.851e-42))
+> ## jumped to zero too early up to R 2.10.1 (PR#14216)
+> ## left "extreme tail"
+> lp <- pchisq(2^-(0:200), 100, 1, log=TRUE)
+> stopifnot(is.finite(lp), lp < -184,
++ 	  all.equal(lp[201], -7115.10693158))
+> dlp <- diff(lp)
+> dd <- abs(dlp[-(1:30)] - -34.65735902799)
+> stopifnot(-34.66 < dlp, dlp < -34.41, dd < 1e-8)# 2.2e-10 64bit Lnx
+> ## underflowed to -Inf much too early in R <= 3.1.0
+> for(e in c(0, 2e-16))# continuity at 80 (= branch point)
++ stopifnot(all.equal(pchisq(1:2, 1.01, ncp = 80*(1-e), log=TRUE),
++ 		    c(-34.57369629, -31.31514671)))
+> 
+> ## logit() == qlogit() on the right extreme:
+> x <- c(10:80, 80 + 5*(1:24), 200 + 20*(1:25))
+> stopifnot(All.eq(x, qlogis(plogis(x, log.p=TRUE),
++ 			   log.p=TRUE)))
+> ## qlogis() gave Inf much too early for R <= 2.12.1
+> ## Part 2:
+> x <- c(x, seq(700, 800, by=10))
+> stopifnot(All.eq(x, qlogis(plogis(x, lower=FALSE, log.p=TRUE),
++ 			   lower=FALSE, log.p=TRUE)))
+> # plogis() underflowed to -Inf too early for R <= 2.15.0
+> 
+> ## log upper tail pbeta():
+> x <- (25:50)/128
+> pbx <- pbeta(x, 1/2, 2200, lower.tail=FALSE, log.p=TRUE)
+> d2p <- diff(dp <- diff(pbx))
+> b <- 2200*2^(0:50)
+> y <- log(-pbeta(.28, 1/2, b, lower.tail=FALSE, log.p=TRUE))
+> stopifnot(-1094 < pbx, pbx < -481.66,
++             -29 < dp,   dp < -20,
++            -.36 < d2p, d2p < -.2,
++           all.equal(log(b), y+1.113, tolerance = .00002)
++           )
+> ## pbx had two -Inf; y was all Inf  for R <= 2.15.3;  PR#15162
+> 
+> ## dnorm(x) for "large" |x|
+> stopifnot(abs(1 - dnorm(35+3^-9)/ 3.933395747534971e-267) < 1e-15)
+> ## has been losing up to 8 bit precision for R <= 3.0.x
+> 
+> ## pbeta(x, <small a>,<small b>, .., log):
+> ldp <- diff(log(diff(pbeta(0.5, 2^-(90+ 1:25), 2^-60, log.p=TRUE))))
+> stopifnot(abs(ldp - log(1/2)) < 1e-9)
+> ## pbeta(*, log) lost all precision here, for R <= 3.0.x (PR#15641)
+> ##
+> ## "stair function" effect (from denormalized numbers)
+> a <- 43779; b <- 0.06728
+> x. <- .9833 + (0:100)*1e-6
+> px <- pbeta(x., a,b, log=TRUE) # plot(x., px) # -> "stair"
+> d2. <- diff(dpx <- diff(px))
+> stopifnot(all.equal(px[1], -746.0986886924, tol=1e-12),
++           0.0445741 < dpx, dpx < 0.0445783,
++           -4.2e-8 < d2., d2. < -4.18e-8)
+> ## were way off in R <= 3.1.0
+> 
+> c0 <- system.time(p0 <- pbeta(  .9999, 1e30, 1.001, log=TRUE))
+> cB <- max(.001, c0[[1]])# base time
+> c1 <- system.time(p1 <- pbeta(1- 1e-9, 1e30, 1.001, log=TRUE))
+> c2 <- system.time(p2 <- pbeta(1-1e-12, 1e30, 1.001, log=TRUE))
+> stopifnot(all.equal(p0, -1.000050003333e26, tol=1e-10),
++           all.equal(p1, -1e21, tol = 1e-6),
++           all.equal(p2, -9.9997788e17),
++           c(c1[[1]], c2[[1]]) < 1000*cB)
+> ## (almost?) infinite loop in R <= 3.1.0
+> 
+> 
+> ## pbinom(), dbinom(), dhyper(),.. : R allows "almost integer" n
+> for (FUN in c(function(n) dbinom(1,n,0.5), function(n) pbinom(1,n,0.5),
++               function(n) dpois(n, n), function(n) dhyper(n+1, n+5,n+5, n)))
++     try( lapply(sample(10000, size=1000), function(M) {
++     ## invisible(lapply(sample(10000, size=1000), function(M) {
++         n <- (M/100)*10^(2:20); if(anyNA(P <- FUN(n)))
++             stop("NA for M=",M, "; 10ex=",paste((2:20)[is.na(P)], collapse=", "))}))
+> ## check was too tight for large n in R <= 3.1.0 (PR#15734)
+> 
+> ## [dpqr]beta(*, a,b) where a and/or b are Inf
+> stopifnot(pbeta(.1, Inf, 40) == 0,
++           pbeta(.5, 40, Inf) == 1,
++           pbeta(.4, Inf,Inf) == 0,
++           pbeta(.5, Inf,Inf) == 1,
++           ## gave infinite loop (or NaN) in R <= 3.1.0
++           qbeta(.9, Inf, 100) == 1, # Inf.loop
++           qbeta(.1, Inf, Inf) == 1/2)# NaN + Warning
+> ## range check (in "close" cases):
+> assertWarning(qN <- qbeta(2^-(10^(1:3)), 2,3, log.p=TRUE))
+> assertWarning(qn <- qbeta(c(-.1, -1e-300, 1.25), 2,3))
+> stopifnot(is.nan(qN), is.nan(qn))
+> 
+> ## lognormal boundary case sdlog = 0:
+> p <- (0:8)/8; x <- 2^(-10:10)
+> stopifnot(all.equal(qlnorm(p, meanlog=1:2, sdlog=0),
++ 		    qlnorm(p, meanlog=1:2, sdlog=1e-200)),
++ 	  dlnorm(x, sdlog=0) == ifelse(x == 1, Inf, 0))
+> 
+> ## qbeta(*, a,b) when  a,b << 1 : can easily fail
+> qbeta(2^-28, 0.125, 2^-26) # 1000 Newton it + warning
+[1] 9.094955e-13
+> a <- 1/8; b <- 2^-(4:200); alpha <- b/4
+> qq <- qbeta(alpha, a,b)# gave warnings intermediately
+> pp <- pbeta(qq, a,b)
+> stopifnot(pp > 0, diff(pp) < 0, ## pbeta(qbeta(alpha,*),*) == alpha:
++           abs(1 - pp/alpha) < 4e-15)# seeing 2.2e-16
+> 
+> ## orig. qbeta() using *many* Newton steps; case where we "know the truth"
+> a <- 25; b <- 6; x <- 2^-c(3:15, 100, 200, 250, 300+100*(0:7))
+> pb <- c(## via Rmpfr's roundMpfr(pbetaI(x, a,b, log.p=TRUE, precBits = 2048), 64) :
++     -40.7588797271766572448, -57.7574063441183625303, -74.9287878018119846216,
++     -92.1806244636893542185, -109.471318248524419364, -126.781111923947395655,
++     -144.100375042814531426, -161.424352961544612370, -178.750683324909148353,
++     -196.078188674895169383, -213.406281209657976525, -230.734667259724367416,
++     -248.063200048177428608, -1721.00081201679567511, -3453.86876341665894863,
++     -4320.30273911659058550, -5186.73671481652222237, -6919.60466621638549567,
++     -8652.47261761624876897, -10385.3405690161120427, -12118.2085204159753165,
++     -13851.0764718158385902, -15583.9444232157018631, -17316.8123746155651368)
+> stopifnot(all.equal(pb, pbeta(x,a,b, log.p=TRUE), tol=8e-16))# seeing {1.5|1.6|2.0}e-16
+> qp <- qbeta(pb, a,b, log.p=TRUE)
+> ## x == qbeta(pbeta(x, *), *) :
+> stopifnot(qp > 0, all.equal(x, qp, tol= 1e-15))# seeing {2.4|3.3}e-16
+> 
+> ## qbeta(), PR#15755
+> a1 <- 0.0672788; b1 <- 226390
+> p <- 0.6948886
+> qp <- qbeta(p, a1,b1)
+> stopifnot(qp < 2e-8, # was '1' (with a warning) in R <= 3.1.0
++           All.eq(p, pbeta(qp, a1,b1)))
+> ## less extreme example, same phenomenon:
+> a <- 43779; b <- 0.06728
+> stopifnot(All.eq(0.695, pbeta(qbeta(0.695, b,a), b,a)))
+> x <- -exp(seq(0, 14, by=2^-9))
+> ct <- system.time(qx <- qbeta(x, a,b, log.p=TRUE))[[1]]
+> pqx <- pbeta(qx, a,b, log=TRUE)
+> stopifnot(all.equal(x, pqx, tol= 2e-15)) # seeing {3.51|3.54}e-16
+> ## note that qx[x > -exp(2)] is too close to 1 to get full accuracy:
+> ## i2 <- x > -exp(2); all.equal(x[i2], pqx[i2], tol= 0)#-> 5.849e-12
+> if(ct > 0.5) { cat("system.time:\n"); print(ct) }# lynne(2013): 0.048
+> ## was Inf, and much slower, for R <= 3.1.0
+> x3 <- -(15450:15700)/2^11
+> pq3 <- pbeta(qbeta(x3, a,b, log.p=TRUE), a,b, log=TRUE)
+> stopifnot(mean(abs(pq3-x3)) < 4e-12,# 1.46e-12
++           max (abs(pq3-x3)) < 8e-12)# 2.95e-12
+> ##
+> .a <- .2; .b <- .03; lp <- -(10^-(1:323))
+> qq <- qbeta(lp, .a,.b, log=TRUE) # warnings in R <= 3.1.0
+> assertWarning(qN <- qbeta(.5, 2,3, log.p=TRUE))
+> assertWarning(qn <- qbeta(c(-.1, 1.25), 2,3))
+> stopifnot(1-qq < 1e-15, is.nan(qN), is.nan(qn))# typically qq == 1  exactly
+> ## failed in intermediate versions
+> ##
+> a <- 2^-8; b <- 2^(200:500)
+> pq <- pbeta(qbeta(1/8, a, b), a, b)
+> stopifnot(abs(pq - 1/8) < 1/8)
+> ## whereas  qbeta() would underflow to 0 "too early", for R <= 3.1.0
+> #
+> ## very extreme tails on both sides
+> x <- c(1e-300, 1e-12, 1e-5, 0.1, 0.21, 0.3)
+> stopifnot(0 == qbeta(x, 2^-12, 2^-10))## gave warnings
+> a <- 10^-(8:323)
+> qb <- qbeta(0.95, a, 20)
+> ## had warnings and wrong value +1; also NaN
+> ct2 <- system.time(q2 <- qbeta(0.95, a,a))[1]
+> stopifnot(is.finite(qb), qb < 1e-300, q2 == 1)
+> if(ct2 > 0.020) { cat("system.time:\n"); print(ct2) }
+> ## had warnings and was much slower for R <= 3.1.0
+> 
+> ## qt(p, df= Inf, ncp)  <==> qnorm(p, m=ncp)
+> p <- (0:32)/32
+> stopifnot(all.equal(qt(p, df=Inf, ncp=5), qnorm(p, m=5)))
+> ## qt(*, df=Inf, .)  gave NaN in  R <= 3.2.1
+> 
+> ## rhyper(*, <large>);  PR#16489
+> ct3 <- system.time(N <- rhyper(100, 8000, 1e9-8000, 1e6))[1]
+> table(N)
+N
+ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 
+ 1  1  2  5  8 14 16 17  8 13  5  5  3  2 
+> summary(N)
+   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
+   1.00    6.00    8.00    7.85   10.00   14.00 
+> stopifnot(abs(mean(N) - 8) < 1.5)
+> if(ct3 > 0.02) { cat("system.time:\n"); print(ct3) }
+> ## N were all 0 and took very long for R <= 3.2.1
+> set.seed(17)
+> stopifnot(rhyper(1, 3024, 27466, 251) == 25,
++           rhyper(1,  329,  3059, 225) == 22)
+> ## failed for a day after a "thinko" in the above bug fix.
+> 
+> ## *chisq(*, df=0, ncp=0) == Point mass at 0
+> stopifnot(rchisq(32,        df=0, ncp=0) == 0,
++           dchisq((0:16)/16, df=0, ncp=0) == c(Inf, rep(0, 16)))
+> ## gave all NaN's  for R <= 3.2.2
+> 
+> ## pchisq(*, df=0, ncp > 0, log.p=TRUE) :
+> th <- 10*c(1:9,10^c(1:3,7))
+> pp <- pchisq(0, df = 0, ncp=th, log.p=TRUE)
+> stopifnot(all.equal(pp, -th/2, tol=1e-15))
+> ## underflowed at about th ~= 60  in R <= 3.2.2
+> 
+> ## pnbinom (-> C's bratio())
+> op <- options(warn = 1)# -- NaN's giving warnings
+> L <- 1e308; p <- suppressWarnings(pnbinom(L, L, mu = 5)) # NaN or 1 (for 64 / 32 bit)
+> is.nan(p) || p == 1
+[1] TRUE
+> ## gave infinite loop on some 64b platforms in R <= 3.2.3
+> 
+> ## [dpqr]nbinom(*, mu, size=Inf) -- PR#16727
+> L <- 1e308; mu <- 5; pp <- (0:16)/16
+> x <- c(0:3, 1e10, 1e100, L, Inf)
+> (d <- dnbinom(x,  mu = mu, size = Inf)) # gave NaN (for 0 and L)
+[1] 0.006737947 0.033689735 0.084224337 0.140373896 0.000000000 0.000000000
+[7] 0.000000000 0.000000000
+> (p <- pnbinom(x,  mu = mu, size = Inf)) # gave all NaN
+[1] 0.006737947 0.040427682 0.124652019 0.265025915 1.000000000 1.000000000
+[7] 1.000000000 1.000000000
+> (q <- qnbinom(pp, mu = mu, size = Inf)) # gave all NaN
+ [1]   0   2   3   3   3   4   4   4   5   5   6   6   6   7   8   9 Inf
+> set.seed(1); NI <- rnbinom(32, mu = mu, size = Inf)# gave all NaN
+> set.seed(1); N2 <- rnbinom(32, mu = mu, size = L  )
+> stopifnot(all.equal(d, dpois(x, mu)),
++ 	  all.equal(p, ppois(x, mu)),
++ 	  q == qpois(pp, mu),
++ 	  identical(NI, N2))
+> options(op)
+> ## size = Inf -- mostly gave NaN  in R <= 3.2.3
+> 
+> 
+> 
+> cat("Time elapsed: ", proc.time() - .ptime,"\n")
+Time elapsed:  1.152 0.007 1.159 0 0 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-IO.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-IO.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-IO.Rout.save	(revision 2476)
@@ -0,0 +1,176 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ## NB: this file must be a DOS (CRLF) format file
+> 
+> ## Keep comments and original formatting
+> options(keep.source=TRUE)
+> 
+> ## simple tests that multiple lines are read correctly
+> print(2+3)
+[1] 5
+> print(4+5)
+[1] 9
+> 
+> ## generate some files to source
+> 
+> z <- c("# line 1", "2+3", "ls()", "pi", "# last line")
+> 
+> ## ========  LF file
+> cat(z, file="testIO.R", sep="\n")
+> readLines("testIO.R")
+[1] "# line 1"    "2+3"         "ls()"        "pi"          "# last line"
+> source("testIO.R", echo=TRUE)
+
+> # line 1
+> 2+3
+[1] 5
+
+> ls()
+[1] "z"
+
+> pi
+[1] 3.141593
+
+> # last line
+> unlink("testIO.R")
+> 
+> ## ======== LF file, incomplete final line
+> zz <- file("testIO.R", "wt")
+> cat(z, file=zz, sep="\n")
+> cat("5+6", file=zz)
+> close(zz)
+> readLines("testIO.R")
+[1] "# line 1"    "2+3"         "ls()"        "pi"          "# last line"
+[6] "5+6"        
+Warning message:
+In readLines("testIO.R") : incomplete final line found on 'testIO.R'
+> source("testIO.R", echo=TRUE)
+
+> # line 1
+> 2+3
+[1] 5
+
+> ls()
+[1] "z"  "zz"
+
+> pi
+[1] 3.141593
+
+> # last line
+> 5+6
+[1] 11
+> unlink("testIO.R")
+> 
+> ## ======== CRLF file
+> cat(z, file="testIO.R", sep="\r\n")
+> source("testIO.R", echo=TRUE)
+
+> # line 1
+> 2+3
+[1] 5
+
+> ls()
+[1] "z"  "zz"
+
+> pi
+[1] 3.141593
+
+> # last line
+> readLines("testIO.R")
+[1] "# line 1"    "2+3"         "ls()"        "pi"          "# last line"
+> unlink("testIO.R")
+> 
+> ## ======== CRLF file, incomplete final line
+> zz <- file("testIO.R", "wt")
+> cat(z, file=zz, sep="\r\n")
+> cat("5+6", file=zz)
+> close(zz)
+> readLines("testIO.R")
+[1] "# line 1"    "2+3"         "ls()"        "pi"          "# last line"
+[6] "5+6"        
+Warning message:
+In readLines("testIO.R") : incomplete final line found on 'testIO.R'
+> source("testIO.R", echo=TRUE)
+
+> # line 1
+> 2+3
+[1] 5
+
+> ls()
+[1] "z"  "zz"
+
+> pi
+[1] 3.141593
+
+> # last line
+> 5+6
+[1] 11
+> unlink("testIO.R")
+> 
+> ## ======== CR file
+> cat(z, file="testIO.R", sep="\r")
+> readLines("testIO.R")
+[1] "# line 1"    "2+3"         "ls()"        "pi"          "# last line"
+Warning message:
+In readLines("testIO.R") : incomplete final line found on 'testIO.R'
+> source("testIO.R", echo=TRUE)
+
+> # line 1
+> 2+3
+[1] 5
+
+> ls()
+[1] "z"  "zz"
+
+> pi
+[1] 3.141593
+
+> # last line
+> unlink("testIO.R")
+> 
+> ## ======== CR file, incomplete final line
+> zz <- file("testIO.R", "wt")
+> cat(z, file=zz, sep="\r")
+> cat("\r5+6", file=zz)
+> close(zz)
+> readLines("testIO.R")
+[1] "# line 1"    "2+3"         "ls()"        "pi"          "# last line"
+[6] "5+6"        
+Warning message:
+In readLines("testIO.R") : incomplete final line found on 'testIO.R'
+> source("testIO.R", echo=TRUE)
+
+> # line 1
+> 2+3
+[1] 5
+
+> ls()
+[1] "z"  "zz"
+
+> pi
+[1] 3.141593
+
+> # last line
+> 5+6
+[1] 11
+> unlink("testIO.R")
+> 
+> ## end of reg-IO.R: the next line has no EOL chars
+> 2 + 2
+[1] 4
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datasets.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datasets.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datasets.R	(revision 2476)
@@ -0,0 +1,9 @@
+#### Simple integrity tests of the system datasets
+
+options(useFancyQuotes=FALSE)
+env <- as.environment("package:datasets")
+d <- ls(env) # don't want .names
+for(f in d) {
+    cat("\n** structure of dataset ", f, "\n", sep="")
+    str(get(f, envir=env, inherits=FALSE))
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-examples1.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-examples1.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-examples1.R	(revision 2476)
@@ -0,0 +1,90 @@
+## For examples skipped in testing because they are 'random'
+
+set.seed(1)
+if(.Platform$OS.type == "windows") options(pager = "console")
+
+pdf("reg-examples-1.pdf", encoding = "ISOLatin1.enc")
+
+
+## base
+example(Cstack_info, run.donttest = TRUE)
+example(DateTimeClasses, run.donttest = TRUE)
+example(Dates, run.donttest = TRUE)
+example(Ops.Date, run.donttest = TRUE)
+example(Random, run.donttest = TRUE)
+example(Sys.getpid, run.donttest = TRUE)
+example(Sys.sleep, run.donttest = TRUE)
+example(Sys.time, run.donttest = TRUE)
+example(as.POSIXlt, run.donttest = TRUE)
+example(difftime, run.donttest = TRUE)
+example(format.Date, run.donttest = TRUE)
+example(Reduce, run.donttest = TRUE) # funprog.Rd
+example(gc, run.donttest = TRUE)
+example(memory.profile, run.donttest = TRUE)
+paste("Today is", date()) # from paste.Rd
+trunc(Sys.time(), "day") # from round.POSIXt.Rd
+example(srcref, run.donttest = TRUE)
+example(strptime, run.donttest = TRUE)
+example(sys.parent, run.donttest = TRUE)
+example(system.time, run.donttest = TRUE)
+example(tempfile, run.donttest = TRUE)
+example(weekdays, run.donttest = TRUE)
+library(help = "splines")
+
+## for example(NA)
+if(require("microbenchmark")) {
+  x <- c(NaN, 1:10000)
+  print(microbenchmark(any(is.na(x)), anyNA(x)))
+} else { ## much less accurate
+  x <- c(NaN, 1e6)
+  nSim <- 2^13
+  print(rbind(is.na = system.time(replicate(nSim, any(is.na(x)))),
+              anyNA = system.time(replicate(nSim, anyNA(x)))))
+}
+
+## utils
+example(news, run.donttest = TRUE)
+example(sessionInfo, run.donttest = TRUE)
+
+## datasets
+example(JohnsonJohnson, run.donttest = TRUE)
+example(ability.cov, run.donttest = TRUE)
+example(npk, run.donttest = TRUE)
+
+## grDevices
+example(grSoftVersion, run.donttest = TRUE)
+if(.Platform$OS.type == "windows") {
+    example(windowsFonts, run.donttest = TRUE)
+} else {
+    example(X11Fonts, run.donttest = TRUE)
+    example(quartzFonts, run.donttest = TRUE)
+}
+
+library(tools)
+example(Rdutils, run.donttest = TRUE)
+example(fileutils, run.donttest = TRUE)
+example(makevars_user, run.donttest = TRUE)
+## results are location- and OS-specific
+example(parseLatex, run.donttest = TRUE) # charset-specific
+example(loadRdMacros, run.donttest = TRUE) # collation-specific
+
+## part of example(buildVignettes) at one time
+gVigns <- pkgVignettes("grid")
+str(gVigns) # contains paths
+
+vind <- system.file(package = "grid", "doc", "index.html")
+if(nzchar(vind)) { # so vignettes have been installed
+    `%=f=%` <- function(a, b) normalizePath(a) == normalizePath(b)
+    with(gVigns,
+         stopifnot(engines == "utils::Sweave",
+                   pkgdir %=f=% system.file(package="grid"),
+                   dir    %=f=% system.file(package = "grid", "doc"),
+                   (n. <- length(docs)) >= 12, # have 13
+                   n. == length(names), n. == length(engines),
+                   length(msg) == 0) ) # as it is a 'base' package
+    stopifnot("grid" %in% gVigns$names, inherits(gVigns, "pkgVignettes"))
+}
+
+## This might leave collation changed, so do not put other things after it.
+example(icuSetCollate, run.donttest = TRUE)
+proc.time()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-examples3.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-examples3.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-examples3.R	(revision 2476)
@@ -0,0 +1,188 @@
+## For examples skipped in testing because they need recommended packages.
+
+## This is skipped entirely on a Unix-alike if recommended packages are,
+## so for Windows
+if(!require("MASS")) q()
+
+pdf("reg-examples-3.pdf", encoding = "ISOLatin1.enc")
+
+## From datasets
+if(require("survival")) {
+  model3 <- clogit(case ~ spontaneous+induced+strata(stratum), data = infert)
+  print(summary(model3))
+  detach("package:survival", unload = TRUE)  # survival (conflicts)
+}
+
+
+## From grDevices
+x1  <- matrix(rnorm(1e3), ncol = 2)
+x2  <- matrix(rnorm(1e3, mean = 3, sd = 1.5), ncol = 2)
+x   <- rbind(x1, x2)
+
+dcols <- densCols(x)
+graphics::plot(x, col = dcols, pch = 20, main = "n = 1000")
+
+
+## From graphics:
+## A largish data set
+set.seed(123)
+n <- 10000
+x1  <- matrix(rnorm(n), ncol = 2)
+x2  <- matrix(rnorm(n, mean = 3, sd = 1.5), ncol = 2)
+x   <- rbind(x1, x2)
+
+oldpar <- par(mfrow = c(2, 2))
+smoothScatter(x, nrpoints = 0)
+smoothScatter(x)
+
+## a different color scheme:
+Lab.palette <- colorRampPalette(c("blue", "orange", "red"), space = "Lab")
+smoothScatter(x, colramp = Lab.palette)
+
+## somewhat similar, using identical smoothing computations,
+## but considerably *less* efficient for really large data:
+plot(x, col = densCols(x), pch = 20)
+
+## use with pairs:
+par(mfrow = c(1, 1))
+y <- matrix(rnorm(40000), ncol = 4) + 3*rnorm(10000)
+y[, c(2,4)] <-  -y[, c(2,4)]
+pairs(y, panel = function(...) smoothScatter(..., nrpoints = 0, add = TRUE))
+
+par(oldpar)
+
+
+## From stats
+# alias.Rd
+op <- options(contrasts = c("contr.helmert", "contr.poly"))
+npk.aov <- aov(yield ~ block + N*P*K, npk)
+alias(npk.aov)
+options(op)  # reset
+
+# as.hclust.Rd
+if(require("cluster", quietly = TRUE)) {# is a recommended package
+  set.seed(123)
+  x <- matrix(rnorm(30), ncol = 3)
+  hc <- hclust(dist(x), method = "complete")
+  ag <- agnes(x, method = "complete")
+  hcag <- as.hclust(ag)
+  ## The dendrograms order slightly differently:
+  op <- par(mfrow = c(1,2))
+  plot(hc) ;  mtext("hclust", side = 1)
+  plot(hcag); mtext("agnes",  side = 1)
+  detach("package:cluster")
+}
+
+# confint.Rd
+counts <- c(18,17,15,20,10,20,25,13,12)
+outcome <- gl(3, 1, 9); treatment <- gl(3, 3)
+glm.D93 <- glm(counts ~ outcome + treatment, family = poisson())
+confint(glm.D93)
+confint.default(glm.D93)  # based on asymptotic normality}
+
+# contrasts.Rd
+utils::example(factor)
+fff <- ff[, drop = TRUE]  # reduce to 5 levels.
+contrasts(fff) <- contr.sum(5)[, 1:2]; contrasts(fff)
+
+## using sparse contrasts: % useful, once model.matrix() works with these :
+ffs <- fff
+contrasts(ffs) <- contr.sum(5, sparse = TRUE)[, 1:2]; contrasts(ffs)
+stopifnot(all.equal(ffs, fff))
+contrasts(ffs) <- contr.sum(5, sparse = TRUE); contrasts(ffs)
+
+# glm.Rd
+utils::data(anorexia, package = "MASS")
+
+anorex.1 <- glm(Postwt ~ Prewt + Treat + offset(Prewt),
+                family = gaussian, data = anorexia)
+summary(anorex.1)
+
+# logLik.Rd
+utils::data(Orthodont, package = "nlme")
+fm1 <- lm(distance ~ Sex * age, Orthodont)
+logLik(fm1)
+logLik(fm1, REML = TRUE)
+
+# nls.Rd
+od <- options(digits=5)
+## The muscle dataset in MASS is from an experiment on muscle
+## contraction on 21 animals.  The observed variables are Strip
+## (identifier of muscle), Conc (Cacl concentration) and Length
+## (resulting length of muscle section).
+utils::data(muscle, package = "MASS")
+
+## The non linear model considered is
+##       Length = alpha + beta*exp(-Conc/theta) + error
+## where theta is constant but alpha and beta may vary with Strip.
+
+with(muscle, table(Strip)) # 2, 3 or 4 obs per strip
+
+## We first use the plinear algorithm to fit an overall model,
+## ignoring that alpha and beta might vary with Strip.
+
+musc.1 <- nls(Length ~ cbind(1, exp(-Conc/th)), muscle,
+              start = list(th = 1), algorithm = "plinear")
+summary(musc.1)
+
+## Then we use nls' indexing feature for parameters in non-linear
+## models to use the conventional algorithm to fit a model in which
+## alpha and beta vary with Strip.  The starting values are provided
+## by the previously fitted model.
+## Note that with indexed parameters, the starting values must be
+## given in a list (with names):
+b <- coef(musc.1)
+musc.2 <- nls(Length ~ a[Strip] + b[Strip]*exp(-Conc/th), muscle,
+              start = list(a = rep(b[2], 21), b = rep(b[3], 21), th = b[1]))
+summary(musc.2)
+options(od)
+
+# princomp.Rd
+## Robust:
+(pc.rob <- princomp(stackloss, covmat = MASS::cov.rob(stackloss)))
+
+# termplot.R
+library(MASS)
+hills.lm <- lm(log(time) ~ log(climb)+log(dist), data = hills)
+termplot(hills.lm, partial.resid = TRUE, smooth = panel.smooth,
+        terms = "log(dist)", main = "Original")
+termplot(hills.lm, transform.x = TRUE,
+         partial.resid = TRUE, smooth = panel.smooth,
+	 terms = "log(dist)", main = "Transformed")
+
+# xtabs.Rd
+if(require("Matrix")) {
+ ## similar to "nlme"s  'ergoStool' :
+ d.ergo <- data.frame(Type = paste0("T", rep(1:4, 9*4)),
+                      Subj = gl(9, 4, 36*4))
+ print(xtabs(~ Type + Subj, data = d.ergo)) # 4 replicates each
+ set.seed(15) # a subset of cases:
+ print(xtabs(~ Type + Subj, data = d.ergo[sample(36, 10), ], sparse = TRUE))
+
+ ## Hypothetical two-level setup:
+ inner <- factor(sample(letters[1:25], 100, replace = TRUE))
+ inout <- factor(sample(LETTERS[1:5], 25, replace = TRUE))
+ fr <- data.frame(inner = inner, outer = inout[as.integer(inner)])
+ print(xtabs(~ inner + outer, fr, sparse = TRUE))
+}
+
+## From utils
+example(packageDescription)
+
+
+## From splines
+library(splines)
+Matrix::drop0(zapsmall(6*splineDesign(knots = 1:40, x = 4:37, sparse = TRUE)))
+
+
+## From tools
+
+library(tools)
+## there are few dependencies in a vanilla R installation:
+## lattice may not be installed
+## Avoid possibly large list from R_HOME/site-library, which --vanilla includes.
+dependsOnPkgs("lattice", lib.loc = .Library)
+
+## This may not be installed
+gridEx <- system.file("doc", "grid.Rnw", package = "grid")
+vignetteDepends(gridEx)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/p-r-random-tests.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/p-r-random-tests.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/p-r-random-tests.R	(revision 2476)
@@ -0,0 +1,138 @@
+##
+## RNG tests using DKW inequality for rate of convergence
+##
+## P(sup | F_n - F | > t) < 2 exp(-2nt^2)
+##
+## The 2 in front of exp() was derived by Massart. It is the best possible
+## constant valid uniformly in t,n,F. For large n*t^2 this agrees with the
+## large-sample approximation to the Kolmogorov-Smirnov statistic.
+##
+
+
+superror <- function(rfoo,pfoo,sample.size,...) {
+    x <- rfoo(sample.size,...)
+    tx <- table(signif(x, 12)) # such that xi will be sort(unique(x))
+    xi <- as.numeric(names(tx))
+    f <- pfoo(xi,...)
+    fhat <- cumsum(tx)/sample.size
+    max(abs(fhat-f))
+}
+
+pdkwbound <- function(n,t) 2*exp(-2*n*t*t)
+
+qdkwbound <- function(n,p) sqrt(log(p/2)/(-2*n))
+
+dkwtest <- function(stub = "norm", ...,
+                    sample.size = 10000, pthreshold = 0.001,
+                    print.result = TRUE, print.detail = FALSE,
+                    stop.on.failure = TRUE)
+{
+    rfoo <- eval(as.name(paste("r", stub, sep="")))
+    pfoo <- eval(as.name(paste("p", stub, sep="")))
+    s <- superror(rfoo, pfoo, sample.size, ...)
+    if (print.result || print.detail) {
+        printargs <- substitute(list(...))
+        printargs[[1]] <- as.name(stub)
+        cat(deparse(printargs))
+        if (print.detail)
+            cat("\nsupremum error = ",signif(s,2),
+                " with p-value=",min(1,round(pdkwbound(sample.size,s),4)),"\n")
+    }
+    rval <- (s < qdkwbound(sample.size,pthreshold))
+    if (print.result)
+        cat(c(" FAILED\n"," PASSED\n")[rval+1])
+    if (stop.on.failure && !rval)
+        stop("dkwtest failed")
+    rval
+}
+
+.proctime00 <- proc.time() # start timing
+
+
+dkwtest("binom",size =   1,prob = 0.2)
+dkwtest("binom",size =   2,prob = 0.2)
+dkwtest("binom",size = 100,prob = 0.2)
+dkwtest("binom",size = 1e4,prob = 0.2)
+dkwtest("binom",size =   1,prob = 0.8)
+dkwtest("binom",size = 100,prob = 0.8)
+dkwtest("binom",size = 100,prob = 0.999)
+
+dkwtest("pois",lambda =  0.095)
+dkwtest("pois",lambda =  0.95)
+dkwtest("pois",lambda =  9.5)
+dkwtest("pois",lambda = 95)
+
+dkwtest("nbinom",size =   1,prob = 0.2)
+dkwtest("nbinom",size =   2,prob = 0.2)
+dkwtest("nbinom",size = 100,prob = 0.2)
+dkwtest("nbinom",size = 1e4,prob = 0.2)
+dkwtest("nbinom",size =   1,prob = 0.8)
+dkwtest("nbinom",size = 100,prob = 0.8)
+dkwtest("nbinom",size = 100,prob = 0.999)
+
+dkwtest("norm")
+dkwtest("norm",mean = 5,sd = 3)
+
+dkwtest("gamma",shape =  0.1)
+dkwtest("gamma",shape =  0.2)
+dkwtest("gamma",shape = 10)
+dkwtest("gamma",shape = 20)
+
+dkwtest("hyper",m = 40,n = 30,k = 20)
+dkwtest("hyper",m = 40,n =  3,k = 20)
+dkwtest("hyper",m =  6,n =  3,k =  2)
+dkwtest("hyper",m =  5,n =  3,k =  2)
+dkwtest("hyper",m =  4,n =  3,k =  2)
+
+
+dkwtest("signrank",n =  1)
+dkwtest("signrank",n =  2)
+dkwtest("signrank",n = 10)
+dkwtest("signrank",n = 30)
+
+dkwtest("wilcox",m = 40,n = 30)
+dkwtest("wilcox",m = 40,n = 10)
+dkwtest("wilcox",m =  6,n =  3)
+dkwtest("wilcox",m =  5,n =  3)
+dkwtest("wilcox",m =  4,n =  3)
+
+dkwtest("chisq",df =  1)
+dkwtest("chisq",df = 10)
+
+dkwtest("logis")
+dkwtest("logis",location = 4,scale = 2)
+
+dkwtest("t",df =  1)
+dkwtest("t",df = 10)
+dkwtest("t",df = 40)
+
+dkwtest("beta",shape1 = 1, shape2 = 1)
+dkwtest("beta",shape1 = 2, shape2 = 1)
+dkwtest("beta",shape1 = 1, shape2 = 2)
+dkwtest("beta",shape1 = 2, shape2 = 2)
+dkwtest("beta",shape1 = .2,shape2 = .2)
+
+dkwtest("cauchy")
+dkwtest("cauchy",location = 4,scale = 2)
+
+dkwtest("f",df1 =  1,df2 =  1)
+dkwtest("f",df1 =  1,df2 = 10)
+dkwtest("f",df1 = 10,df2 = 10)
+dkwtest("f",df1 = 30,df2 =  3)
+
+dkwtest("weibull",shape = 1)
+dkwtest("weibull",shape = 4,scale = 4)
+
+## regression test for PR#7314
+dkwtest("hyper", m=60, n=100, k=50)
+dkwtest("hyper", m=6, n=10, k=5)
+dkwtest("hyper", m=600, n=1000, k=500)
+
+## regression test for non-central t bug
+dkwtest("t", df=20, ncp=3)
+## regression test for non-central F bug
+dkwtest("f", df1=10, df2=2, ncp=3)
+
+
+cat('Time elapsed: ', proc.time() - .proctime00,'\n')
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/method-dispatch.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/method-dispatch.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/method-dispatch.R	(revision 2476)
@@ -0,0 +1,62 @@
+#### Testing  UseMethod() and even more NextMethod()
+#### -------------------- 
+#### i.e.,  S3 methods *only*. For S4, see  reg-S4.R
+##                                          ~~~~~~~~
+
+###-- Group methods
+
+## previous versions used print() and hit an auto-printing bug.
+
+### Arithmetic "Ops" :
+">.bar" <- function(...) {cat("using >.bar\n"); FALSE}
+">.foo" <- function(...) {cat("using >.foo\n"); TRUE}
+Ops.foo <- function(...) {
+    cat("using Ops.foo\n")
+    NextMethod()
+}
+Ops.bar <- function(...) {
+    cat("using Ops.bar\n")
+    TRUE
+}
+
+x <- 2:4 ; class(x) <- c("foo", "bar")
+y <- 4:2 ; class(y) <- c("bar", "foo")
+
+## The next 4 give a warning each about incompatible methods:
+x > y
+y < x # should be the same (warning msg not, however)
+x == y
+x <= y
+
+x > 3 ##[1] ">.foo"
+
+rm(list=">.foo")
+x > 3 #-> "Ops.foo" and ">.bar"
+
+
+
+### ------------  was ./mode-methods.R till R ver. 1.0.x ----------------
+
+###-- Using Method Dispatch on "mode" etc :
+## Tests S3 dispatch with the class attr forced to be data.class
+## Not very relevant when S4 methods are around, but kept for historical interest
+abc <- function(x, ...) {
+    cat("abc: Before dispatching; x has class `", class(x), "':", sep="")
+    str(x)
+    UseMethod("abc", x) ## UseMethod("abc") (as in S) fails
+}
+
+abc.default <- function(x, ...) sys.call()
+
+"abc.(" <- function(x)
+    cat("'(' method of abc:", deparse(sys.call(sys.parent())),"\n")
+abc.expression <- function(x)
+    cat("'expression' method of abc:", deparse(sys.call(sys.parent())),"\n")
+
+abc(1)
+e0 <- expression((x))
+e1 <- expression(sin(x))
+abc(e0)
+abc(e1)
+abc(e0[[1]])
+abc(e1[[1]])
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-3.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-3.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-3.R	(revision 2476)
@@ -0,0 +1,198 @@
+### Regression tests for which the printed output is the issue
+### May fail, e.g. by needing Recommended packages
+
+pdf("reg-tests-3.pdf", encoding = "ISOLatin1.enc")
+
+## str() for character & factors with NA (levels), and for Surv objects:
+ff <- factor(c(2:1,  NA),  exclude = NULL)
+str(levels(ff))
+str(ff)
+str(ordered(ff, exclude=NULL))
+if(require(survival)) {
+    (sa <- Surv(aml$time, aml$status))
+    str(sa)
+    detach("package:survival", unload = TRUE)
+}
+## were different, the last one failed in 1.6.2 (at least)
+
+
+## lm.influence where hat[1] == 1
+if(require(MASS)) {
+    fit <- lm(formula = 1000/MPG.city ~ Weight + Cylinders + Type + EngineSize + DriveTrain, data = Cars93)
+    print(lm.influence(fit))
+    ## row 57 should have hat = 1 and resid=0.
+    summary(influence.measures(fit))
+}
+## only last two cols in row 57 should be influential
+
+
+## PR#6640  Zero weights in plot.lm
+if(require(MASS)) {
+    fm1 <- lm(time~dist, data=hills, weights=c(0,0,rep(1,33)))
+    plot(fm1)
+}
+## gave warnings in 1.8.1
+
+
+## PR#7829 model.tables & replications
+if(require(MASS)) {
+    oats.aov <- aov(Y ~ B + V + N + V:N, data=oats[-1,])
+    model.tables(oats.aov, "means", cterms=c("N", "V:N"))
+}
+## wrong printed output in 2.1.0
+
+
+## drop1 on weighted lm() fits
+if(require(MASS)) {
+    hills.lm <- lm(time ~ 0 + dist + climb, data=hills, weights=1/dist^2)
+    print(drop1(hills.lm))
+    print(stats:::drop1.default(hills.lm))
+    hills.lm2 <- lm(time/dist ~ 1 + I(climb/dist), data=hills)
+    drop1(hills.lm2)
+}
+## quoted unweighted RSS etc in 2.2.1
+
+
+## tests of ISO C99 compliance (Windows fails without a workaround)
+sprintf("%g", 123456789)
+sprintf("%8g", 123456789)
+sprintf("%9.7g", 123456789)
+sprintf("%10.9g", 123456789)
+sprintf("%g", 12345.6789)
+sprintf("%10.9g", 12345.6789)
+sprintf("%10.7g", 12345.6789)
+sprintf("%.7g", 12345.6789)
+sprintf("%.5g", 12345.6789)
+sprintf("%.4g", 12345.6789)
+sprintf("%9.4g", 12345.6789)
+sprintf("%10.4g", 12345.6789)
+## Windows used e+008 etc prior to 2.3.0
+
+
+## weighted glm() fits
+if(require(MASS)) {
+    hills.glm <- glm(time ~ 0 + dist + climb, data=hills, weights=1/dist^2)
+    print(AIC(hills.glm))
+    print(extractAIC(hills.glm))
+    print(drop1(hills.glm))
+    stats:::drop1.default(hills.glm)
+}
+## wrong AIC() and drop1 prior to 2.3.0.
+
+## calculating no of signif digits
+print(1.001, digits=16)
+## 2.4.1 gave  1.001000000000000
+## 2.5.0 errs on the side of caution.
+
+
+## as.matrix.data.frame with coercion
+if(require("survival")) {
+    soa <- Surv(1:5, c(0, 0, 1, 0, 1))
+    df.soa <- data.frame(soa)
+    print(as.matrix(df.soa)) # numeric result
+    df.soac <- data.frame(soa, letters[1:5])
+    print(as.matrix(df.soac)) # character result
+    detach("package:survival", unload = TRUE)
+}
+## failed in 2.8.1
+
+## wish of PR#13505
+npk.aov <- aov(yield ~ block + N * P + K, npk)
+foo <- proj(npk.aov)
+cbind(npk, foo)
+## failed in R < 2.10.0
+
+
+if(suppressMessages(require("Matrix"))) {
+  print(cS. <- contr.SAS(5, sparse = TRUE))
+  stopifnot(all(contr.SAS(5) == cS.),
+	    all(contr.helmert(5, sparse = TRUE) == contr.helmert(5)))
+
+  x1 <- x2 <- c('a','b','a','b','c')
+  x3 <- x2; x3[4:5] <- x2[5:4]
+  print(xtabs(~ x1 + x2, sparse= TRUE, exclude = 'c'))
+  print(xtabs(~ x1 + x3, sparse= TRUE, exclude = 'c'))
+  detach("package:Matrix")
+  ## failed in R <= 2.13.1
+}
+
+## regression tests for dimnames (broken on 2009-07-31)
+contr.sum(4)
+contr.helmert(4)
+contr.sum(2) # needed drop=FALSE at one point.
+
+## xtabs did not exclude levels from factors
+x1 <- c('a','b','a','b','c', NA)
+x2 <- factor(x1, exclude=NULL)
+print(xtabs(~ x1 + x2, na.action = na.pass))
+print(xtabs(~ x1 + x2, exclude = 'c', na.action = na.pass))
+
+
+## median should work by default for a suitable S4 class.
+## adapted from adaptsmoFMRI
+if(suppressMessages(require("Matrix"))) {
+    x <- matrix(c(1,2,3,4))
+    print(median(x))
+    print(median(as(x, "dgeMatrix")))
+    detach("package:Matrix")
+}
+
+## Various arguments were not duplicated:  PR#15352 to 15354
+x <- 5
+y <- 2
+f <- function (y) x
+numericDeriv(f(y),"y")
+x
+
+a<-list(1,2)
+b<-rep.int(a,c(2,2))
+b[[1]][1]<-9
+a[[1]]
+
+a <- numeric(1)
+x <- mget("a",as.environment(1))
+x
+a[1] <- 9
+x
+
+
+## needs MASS installed
+## PR#2586 labelling in alias()
+if(require("MASS")) {
+    Y <- c(0,1,2)
+    X1 <- c(0,1,0)
+    X2 <- c(0,1,0)
+    X3 <- c(0,0,1)
+    print(res <- alias(lm(Y ~ X1 + X2 + X3)))
+    stopifnot(identical(rownames(res[[2]]), "X2"))
+}
+## the error was in lm.(w)fit
+
+if(require("Matrix")) {
+ m1 <- m2 <- m <- matrix(1:12, 3,4)
+ dimnames(m2) <- list(LETTERS[1:3],
+                      letters[1:4])
+ dimnames(m1) <- list(NULL,letters[1:4])
+ M  <- Matrix(m)
+ M1 <- Matrix(m1)
+ M2 <- Matrix(m2)
+ ## Now, with a new ideal cbind(), rbind():
+ print(cbind(M, M1))
+ stopifnot(identical(cbind (M, M1),
+                     cbind2(M, M1)))
+ rm(M,M1,M2)
+ detach("package:Matrix", unload=TRUE)
+}##{Matrix}
+
+## Invalid UTF-8 strings
+x <- c("Jetz", "no", "chli", "z\xc3\xbcrit\xc3\xbc\xc3\xbctsch:",
+       "(noch", "ein", "bi\xc3\x9fchen", "Z\xc3\xbc", "deutsch)",
+       "\xfa\xb4\xbf\xbf\x9f")
+lapply(x, utf8ToInt)
+Encoding(x) <- "UTF-8"
+nchar(x, "b")
+try(nchar(x, "c"))
+try(nchar(x, "w"))
+nchar(x, "c", allowNA = TRUE)
+nchar(x, "w", allowNA = TRUE)
+## Results differed by platform, but some gave incorrect results on string 10.
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datetime2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datetime2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datetime2.R	(revision 2476)
@@ -0,0 +1,47 @@
+### Tests of often platform-dependent features of the POSIX[cl]t implementation.
+
+### Expect differences, especially with 32-bit time_t
+
+z <- ISOdate(1890:1912, 1, 10, tz="UTC")
+## Rome changed to CET for 1894
+as.POSIXlt(z, tz="Europe/Rome")
+## Paris changed to PMT for 1892, WET for 1912
+(zz <- as.POSIXlt(z, tz="Europe/Paris"))
+strftime(zz, "%Y-%m-%d %H:%M:%S %Z")
+## The offset was really 00:09:21 until 1911, then 00:00
+## Many platforms will give the current offset, +0100
+strftime(zz, "%Y-%m-%d %H:%M:%S %z")
+
+## Some platforms give details of the latest conversion.
+z <- ISOdate(c(seq(1890, 1940, 5), 1941:1946, 1950), 1, 10, tz="UTC")
+as.POSIXlt(z, tz="Europe/Paris")
+for(i in seq_along(z)) print(as.POSIXlt(z[i], tz="Europe/Paris"))
+for(i in seq_along(z))
+    print(strftime(as.POSIXlt(z[i], tz="Europe/Paris"), "%Y-%m-%d %H:%M:%S %z"))
+
+strptime("1920-12-27 08:18:23", "%Y-%m-%d %H:%M:%S", tz="Europe/Paris")
+
+## check %V etc
+
+d <- expand.grid(day = 1:7, year = 2000:2010)
+z1 <- with(d, ISOdate(year, 1, day))
+d <- expand.grid(day = 25:31, year = 2000:2010)
+z2 <- with(d, ISOdate(year, 12, day))
+z <- sort(c(z1, z2))
+strftime(z, "%G %g %W %U %u %V %W %w")
+
+## tests of earlier years.  Default format is OS-dependent, so don't test it.
+## ISOdate only accepts positive years.
+z <- as.Date(ISOdate(c(0, 8, 9, 10, 11, 20, 110, 1010), 1, 10)) - 3630
+strftime(z, "%04Y-%m-%d") # with leading zero(s)
+strftime(z, "%_4Y-%m-%d") # with leading space(s)
+strftime(z, "%0Y-%m-%d") # without
+
+
+## more test of strftime
+x <- ISOdate(2014, 3, 10, c(7, 13))
+fmts <- c("%Y-%m-%d %H:%M:%S", "%F", "%A %a %b %h %e %I %j",
+          ## locale-dependent ones
+          "%X", # but the same in all English locales
+          "%c", "%x", "%p", "%r")
+for (f in fmts) print(format(x, f))
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/r-strict-tst.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/r-strict-tst.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/r-strict-tst.R	(revision 2476)
@@ -0,0 +1,57 @@
+#### Strict "regression" (no output comparison) tests
+#### or  [R]andom number generating functions
+
+options(warn = 2)# warnings are errors here
+
+## For integer valued comparisons
+all.eq0 <- function(x,y, ...) all.equal(x,y, tolerance = 0, ...)
+
+###------- Discrete Distributions ----------------
+
+set.seed(17)
+stopifnot(
+    all.eq0(rhyper(100, 3024, 27466, 251),
+	    c(25, 24, 21, 31, 25, 33, 28, 28, 27, 37, 26, 31, 27, 22, 21,
+	      33, 22, 32, 27, 28, 29, 22, 20, 20, 21, 18, 23, 21, 26, 22, 28,
+	      24, 25, 16, 38, 26, 35, 24, 28, 26, 21, 15, 19, 24, 26, 21, 28,
+	      21, 27, 27, 24, 31, 22, 18, 27, 24, 28, 22, 25, 19, 29, 31, 27,
+	      24, 26, 26, 24, 23, 20, 23, 23, 26, 22, 36, 29, 32, 23, 25, 20,
+	      12, 36, 29, 28, 23, 24, 26, 29, 25, 28, 18, 18, 27, 24, 18, 22,
+	      32, 31, 23, 26, 23))
+   ,
+    all.eq0(rhyper(100,  329, 3059, 225),
+	    c(21, 21, 17, 21, 15, 25, 24, 15, 27, 21, 18, 22, 29, 17, 18,
+	      19, 32, 23, 23, 22, 20, 20, 15, 23, 19, 25, 25, 18, 17, 17, 19,
+	      28, 17, 20, 21, 21, 20, 17, 25, 21, 21, 15, 25, 25, 15, 21, 26,
+	      14, 21, 23, 21, 14, 15, 24, 23, 21, 20, 20, 20, 24, 16, 21, 25,
+	      30, 17, 19, 22, 19, 22, 23, 19, 20, 18, 15, 21, 12, 24, 20, 14,
+	      20, 25, 22, 19, 23, 14, 19, 15, 23, 23, 15, 23, 26, 32, 23, 25,
+	      19, 23, 18, 24, 25))
+    ,
+    ## using  branch II  in ../src/nmath/rhyper.c :
+    print(ct3 <- system.time(N <- rhyper(100, 8000, 1e9-8000, 1e6))[1]) < 0.02
+    ,
+    all.eq0(N, c(11, 9, 7, 4, 8, 6, 10, 5, 9, 8, 10, 5, 8, 8, 4, 10, 9, 8, 7,
+		 9, 11, 5, 7, 9, 8, 8, 5, 5, 10, 7, 8, 5, 4, 11, 9, 7, 8, 6, 7,
+		 9, 14, 9, 8, 8, 8, 4, 12, 9, 8, 11, 10, 12, 9, 13, 13, 8, 8,
+		 10, 9, 4, 7, 9, 11, 2, 5, 8, 7, 8, 11, 8, 6, 8, 6, 3, 4, 12,
+		 8, 10, 9, 6, 3, 6, 7, 10, 7, 4, 5, 8, 10, 8, 7, 11, 8, 12, 4,
+		 9, 5, 9, 7, 11))
+)
+
+
+N <- 1e10; m <- 1e5; n <- N-m; k <- 1e6
+n /.Machine$integer.max ## 4.66
+p <- m/N; q <- 1 - p
+cat(sprintf(
+   "N = n+m = %g, m = Np = %g; k = %g ==> (p,f) = (m,k)/N = (%g, %g)\n k*p*q = %.4g > 1: %s\n",
+    N, m, k, m/N, k/N, k*p*q, k*p*q > 1))
+set.seed(11)
+rH <- rhyper(20, m=m, n=n, k=k) # now via qhyper() - may change!
+stopifnot( is.finite(rH), 3 <= rH, rH <= 24) # allow slack for change
+## gave all NA_integer_ in R < 3.3.0
+
+
+stopifnot(identical(rgamma(1, Inf), Inf),
+	  identical(rgamma(1, 0, 0), 0))
+## gave NaN in R <= 3.3.0
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/lapack.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/lapack.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/lapack.Rout.save	(revision 2476)
@@ -0,0 +1,444 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ## tests of R functions based on the lapack module
+> 
+> ## NB: the signs of singular and eigenvectors are arbitrary,
+> ## so there may be differences from the reference ouptut,
+> ## especially when alternative BLAS are used.
+> 
+> options(digits=4)
+> 
+> ##    -------  examples from ?svd ---------
+> 
+> hilbert <- function(n) { i <- 1:n; 1 / outer(i - 1, i, "+") }
+> Eps <- 100 * .Machine$double.eps
+> 
+> X <- hilbert(9)[,1:6]
+> (s <- svd(X)); D <- diag(s$d)
+$d
+[1] 1.668e+00 2.774e-01 2.224e-02 1.085e-03 3.244e-05 5.235e-07
+
+$u
+         [,1]    [,2]     [,3]     [,4]     [,5]      [,6]
+ [1,] -0.7245  0.6266  0.27350 -0.08527  0.02074 -0.004025
+ [2,] -0.4282 -0.1299 -0.64294  0.55047 -0.27253  0.092816
+ [3,] -0.3122 -0.2804 -0.33633 -0.31418  0.61632 -0.440904
+ [4,] -0.2479 -0.3142 -0.06931 -0.44667  0.02945  0.530120
+ [5,] -0.2064 -0.3141  0.10786 -0.30242 -0.35567  0.237038
+ [6,] -0.1771 -0.3027  0.22106 -0.09042 -0.38879 -0.260449
+ [7,] -0.1553 -0.2877  0.29281  0.11551 -0.19286 -0.420945
+ [8,] -0.1384 -0.2722  0.33784  0.29313  0.11633 -0.160790
+ [9,] -0.1249 -0.2571  0.36543  0.43885  0.46497  0.434600
+
+$v
+        [,1]    [,2]    [,3]     [,4]     [,5]      [,6]
+[1,] -0.7365  0.6225  0.2550 -0.06976  0.01328 -0.001588
+[2,] -0.4433 -0.1819 -0.6867  0.50860 -0.19627  0.041117
+[3,] -0.3275 -0.3509 -0.2611 -0.50474  0.61606 -0.259216
+[4,] -0.2626 -0.3922  0.1044 -0.43748 -0.40834  0.638902
+[5,] -0.2204 -0.3946  0.3510  0.01612 -0.46428 -0.675827
+[6,] -0.1904 -0.3832  0.5111  0.53856  0.44664  0.257249
+
+> stopifnot(abs(X - s$u %*% D %*% t(s$v)) < Eps)#  X = U D V'
+> stopifnot(abs(D - t(s$u) %*% X %*% s$v) < Eps)#  D = U' X V
+> 
+> # The signs of the vectors are not determined here.
+> X <- cbind(1, 1:7)
+> s <- svd(X); D <- diag(s$d)
+> stopifnot(abs(X - s$u %*% D %*% t(s$v)) < Eps)#  X = U D V'
+> stopifnot(abs(D - t(s$u) %*% X %*% s$v) < Eps)#  D = U' X V
+> 
+> # test nu and nv
+> s <- svd(X, nu = 0)
+> s <- svd(X, nu = 7) # the last 5 columns are not determined here
+> stopifnot(dim(s$u) == c(7,7))
+> s <- svd(X, nv = 0)
+> 
+> # test of complex case
+> 
+> X <- cbind(1, 1:7+(-3:3)*1i)
+> s <- svd(X); D <- diag(s$d)
+> stopifnot(abs(X - s$u %*% D %*% Conj(t(s$v))) < Eps)
+> stopifnot(abs(D - Conj(t(s$u)) %*% X %*% s$v) < Eps)
+> 
+> 
+> 
+> ##  -------  tests of random real and complex matrices ------
+> fixsign <- function(A) {
++     A[] <- apply(A, 2, function(x) x*sign(Re(x[1])))
++     A
++ }
+> ##			       100  may cause failures here.
+> eigenok <- function(A, E, Eps=1000*.Machine$double.eps)
++ {
++     print(fixsign(E$vectors))
++     print(zapsmall(E$values))
++     V <- E$vectors; lam <- E$values
++     stopifnot(abs(A %*% V - V %*% diag(lam)) < Eps,
++               abs(lam[length(lam)]/lam[1]) < Eps || # this one not for singular A :
++               abs(A - V %*% diag(lam) %*% t(V)) < Eps)
++ }
+> 
+> Ceigenok <- function(A, E, Eps=1000*.Machine$double.eps)
++ {
++     print(fixsign(E$vectors))
++     print(signif(E$values, 5))
++     V <- E$vectors; lam <- E$values
++     stopifnot(Mod(A %*% V - V %*% diag(lam)) < Eps,
++               Mod(A - V %*% diag(lam) %*% Conj(t(V))) < Eps)
++ }
+> 
+> ## failed for some 64bit-Lapack-gcc combinations:
+> sm <- cbind(1, 3:1, 1:3)
+> eigenok(sm, eigen(sm))
+       [,1]    [,2]    [,3]
+[1,] 0.5774  0.8452  0.9428
+[2,] 0.5774  0.1690 -0.2357
+[3,] 0.5774 -0.5071 -0.2357
+[1] 5 1 0
+> eigenok(sm, eigen(sm, sym=FALSE))
+       [,1]    [,2]    [,3]
+[1,] 0.5774  0.8452  0.9428
+[2,] 0.5774  0.1690 -0.2357
+[3,] 0.5774 -0.5071 -0.2357
+[1] 5 1 0
+> 
+> set.seed(123)
+> sm <- matrix(rnorm(25), 5, 5)
+> sm <- 0.5 * (sm + t(sm))
+> eigenok(sm, eigen(sm))
+        [,1]    [,2]     [,3]      [,4]    [,5]
+[1,]  0.5899  0.1683  0.02315  0.471808  0.6329
+[2,]  0.1936  0.2931  0.89217 -0.009784 -0.2838
+[3,]  0.6627 -0.4812 -0.15825  0.082550 -0.5454
+[4,]  0.1404  0.7985 -0.41848  0.094314 -0.3983
+[5,] -0.3946 -0.1285  0.05768  0.872692 -0.2507
+[1]  1.7814  1.5184  0.5833 -1.0148 -2.4908
+> eigenok(sm, eigen(sm, sym=FALSE))
+        [,1]    [,2]    [,3]      [,4]     [,5]
+[1,]  0.6329  0.5899  0.1683  0.471808  0.02315
+[2,] -0.2838  0.1936  0.2931 -0.009784  0.89217
+[3,] -0.5454  0.6627 -0.4812  0.082550 -0.15825
+[4,] -0.3983  0.1404  0.7985  0.094314 -0.41848
+[5,] -0.2507 -0.3946 -0.1285  0.872692  0.05768
+[1] -2.4908  1.7814  1.5184 -1.0148  0.5833
+> 
+> sm[] <- as.complex(sm)
+> Ceigenok(sm, eigen(sm))
+           [,1]       [,2]        [,3]         [,4]       [,5]
+[1,]  0.5899+0i  0.1683+0i  0.02315+0i  0.471808+0i  0.6329+0i
+[2,]  0.1936+0i  0.2931+0i  0.89217+0i -0.009784+0i -0.2838+0i
+[3,]  0.6627+0i -0.4812+0i -0.15825+0i  0.082550+0i -0.5454+0i
+[4,]  0.1404+0i  0.7985+0i -0.41848+0i  0.094314+0i -0.3983+0i
+[5,] -0.3946+0i -0.1285+0i  0.05768+0i  0.872692+0i -0.2507+0i
+[1]  1.7814  1.5184  0.5833 -1.0148 -2.4908
+> Ceigenok(sm, eigen(sm, sym=FALSE))
+           [,1]       [,2]       [,3]         [,4]        [,5]
+[1,]  0.6329+0i  0.5899+0i  0.1683+0i  0.471808+0i  0.02315+0i
+[2,] -0.2838+0i  0.1936+0i  0.2931+0i -0.009784+0i  0.89217+0i
+[3,] -0.5454+0i  0.6627+0i -0.4812+0i  0.082550+0i -0.15825+0i
+[4,] -0.3983+0i  0.1404+0i  0.7985+0i  0.094314+0i -0.41848+0i
+[5,] -0.2507+0i -0.3946+0i -0.1285+0i  0.872692+0i  0.05768+0i
+[1] -2.4908+0i  1.7814+0i  1.5184+0i -1.0148+0i  0.5833+0i
+> 
+> sm[] <- sm + rnorm(25) * 1i
+> sm <- 0.5 * (sm + Conj(t(sm)))
+> Ceigenok(sm, eigen(sm))
+                [,1]            [,2]             [,3]            [,4]
+[1,]  0.5373+0.0000i  0.3338+0.0000i  0.02834+0.0000i  0.4378+0.0000i
+[2,]  0.3051+0.0410i -0.0264-0.1175i -0.43963+0.7256i -0.0474+0.2975i
+[3,]  0.3201-0.3756i  0.3379+0.4760i -0.09325-0.3281i  0.0536+0.2447i
+[4,]  0.3394+0.2330i -0.1044-0.6839i  0.09966-0.3629i  0.1894+0.1979i
+[5,] -0.2869+0.3483i -0.0766+0.2210i -0.14602+0.0132i  0.7449-0.1576i
+                [,5]
+[1,]  0.6383+0.0000i
+[2,] -0.1909-0.2093i
+[3,] -0.4788-0.0861i
+[4,] -0.3654+0.0418i
+[5,] -0.2229-0.3012i
+[1]  2.4043  1.3934  0.7854 -1.4050 -2.8006
+> Ceigenok(sm, eigen(sm, sym=FALSE))
+                [,1]            [,2]            [,3]            [,4]
+[1,]  0.6383+0.0000i  0.5373+0.0000i  0.4283+0.0907i  0.0504-0.3300i
+[2,] -0.1909-0.2093i  0.3051+0.0410i -0.1080+0.2813i -0.1201+0.0084i
+[3,] -0.4788-0.0861i  0.3201-0.3756i  0.0018+0.2505i  0.5216-0.2622i
+[4,] -0.3654+0.0418i  0.3394+0.2330i  0.1443+0.2329i -0.6918+0.0000i
+[5,] -0.2229-0.3012i -0.2869+0.3483i  0.7614+0.0000i  0.2069+0.1091i
+                  [,5]
+[1,]  0.01468+0.02424i
+[2,] -0.84836+0.00000i
+[3,]  0.23232-0.24980i
+[4,]  0.36200-0.10282i
+[5,] -0.08698-0.11804i
+[1] -2.8006+0i  2.4043+0i -1.4050+0i  1.3934+0i  0.7854+0i
+> 
+> 
+> ##  -------  tests of integer matrices -----------------
+> 
+> set.seed(123)
+> A <- matrix(rpois(25, 5), 5, 5)
+> 
+> A %*% A
+     [,1] [,2] [,3] [,4] [,5]
+[1,]  202  170  156  160  234
+[2,]  161  124  145  147  185
+[3,]  166  136  134  130  174
+[4,]  218  156  169  204  234
+[5,]  205  134  175  181  249
+> crossprod(A)
+     [,1] [,2] [,3] [,4] [,5]
+[1,]  226  160  153  174  240
+[2,]  160  143  126  112  179
+[3,]  153  126  171  137  205
+[4,]  174  112  137  174  192
+[5,]  240  179  205  192  293
+> tcrossprod(A)
+     [,1] [,2] [,3] [,4] [,5]
+[1,]  229  155  150  207  184
+[2,]  155  144  140  184  161
+[3,]  150  140  156  176  142
+[4,]  207  184  176  251  209
+[5,]  184  161  142  209  227
+> 
+> solve(A)
+          [,1]    [,2]     [,3]     [,4]     [,5]
+[1,] -0.048676  0.3390 -0.15756 -0.05892 -0.00854
+[2,] -0.058711 -0.1262  0.19812 -0.03160  0.06426
+[3,]  0.092656  0.2319 -0.02904 -0.12468 -0.09778
+[4,]  0.062553 -0.1637  0.03800 -0.04270  0.12062
+[5,] -0.002775 -0.2351  0.02391  0.22032 -0.02242
+> qr(A)
+$qr
+         [,1]      [,2]     [,3]     [,4]    [,5]
+[1,] -15.0333 -10.64304 -10.1774 -11.5743 -15.965
+[2,]   0.4656  -5.45212  -3.2430   2.0516  -1.667
+[3,]   0.2661   0.97998  -7.5434  -3.4278  -4.920
+[4,]   0.5322  -0.05761  -0.3972   4.9068  -1.269
+[5,]   0.5987  -0.17944  -0.9104  -0.9086   3.088
+
+$rank
+[1] 5
+
+$qraux
+[1] 1.266 1.064 1.116 1.418 3.088
+
+$pivot
+[1] 1 2 3 4 5
+
+attr(,"class")
+[1] "qr"
+> determinant(A, log = FALSE)
+$modulus
+[1] 9368
+attr(,"logarithm")
+[1] FALSE
+
+$sign
+[1] -1
+
+attr(,"class")
+[1] "det"
+> 
+> rcond(A)
+[1] 0.02466
+> rcond(A, "I")
+[1] 0.06007
+> rcond(A, "1")
+[1] 0.02466
+> 
+> eigen(A)
+$values
+[1] 29.660+0.000i -4.631+0.000i  4.556+0.000i -2.292+3.117i -2.292-3.117i
+
+$vectors
+          [,1]        [,2]        [,3]            [,4]            [,5]
+[1,] 0.4698+0i  0.34581+0i  0.07933+0i  0.7246+0.0000i  0.7246+0.0000i
+[2,] 0.3885+0i -0.30397+0i  0.31927+0i -0.2481-0.2591i -0.2481+0.2591i
+[3,] 0.3760+0i -0.03566+0i  0.70330+0i  0.0496+0.3697i  0.0496-0.3697i
+[4,] 0.5029+0i -0.74239+0i -0.32651+0i -0.2262+0.1063i -0.2262-0.1063i
+[5,] 0.4839+0i  0.48539+0i -0.53901+0i -0.3375-0.1752i -0.3375+0.1752i
+
+> svd(A)
+$d
+[1] 29.929  6.943  6.668  3.960  1.707
+
+$u
+        [,1]     [,2]    [,3]       [,4]     [,5]
+[1,] -0.4659 -0.04141 -0.8795  8.440e-02  0.02379
+[2,] -0.3931  0.15031  0.2249  1.824e-05  0.87881
+[3,] -0.3811  0.62205  0.2170  5.570e-01 -0.33239
+[4,] -0.5166  0.14296  0.1852 -7.659e-01 -0.30290
+[5,] -0.4652 -0.75386  0.3073  3.097e-01 -0.15780
+
+$v
+        [,1]    [,2]     [,3]    [,4]    [,5]
+[1,] -0.4831 -0.3264  0.47567 -0.1955  0.6289
+[2,] -0.3627  0.3731  0.53450  0.5920 -0.3051
+[3,] -0.3995  0.4779 -0.59210  0.2252  0.4590
+[4,] -0.3983 -0.6985 -0.36298  0.3821 -0.2752
+[5,] -0.5628  0.1948 -0.07549 -0.6439 -0.4743
+
+> La.svd(A)
+$d
+[1] 29.929  6.943  6.668  3.960  1.707
+
+$u
+        [,1]     [,2]    [,3]       [,4]     [,5]
+[1,] -0.4659 -0.04141 -0.8795  8.440e-02  0.02379
+[2,] -0.3931  0.15031  0.2249  1.824e-05  0.87881
+[3,] -0.3811  0.62205  0.2170  5.570e-01 -0.33239
+[4,] -0.5166  0.14296  0.1852 -7.659e-01 -0.30290
+[5,] -0.4652 -0.75386  0.3073  3.097e-01 -0.15780
+
+$vt
+        [,1]    [,2]    [,3]    [,4]     [,5]
+[1,] -0.4831 -0.3627 -0.3995 -0.3983 -0.56284
+[2,] -0.3264  0.3731  0.4779 -0.6985  0.19477
+[3,]  0.4757  0.5345 -0.5921 -0.3630 -0.07549
+[4,] -0.1955  0.5920  0.2252  0.3821 -0.64390
+[5,]  0.6289 -0.3051  0.4590 -0.2752 -0.47430
+
+> 
+> As <- crossprod(A)
+> E <- eigen(As)
+> E$values
+[1] 895.737  48.201  44.468  15.678   2.915
+> abs(E$vectors) # signs vary
+       [,1]   [,2]    [,3]   [,4]   [,5]
+[1,] 0.4831 0.3264 0.47567 0.1955 0.6289
+[2,] 0.3627 0.3731 0.53450 0.5920 0.3051
+[3,] 0.3995 0.4779 0.59210 0.2252 0.4590
+[4,] 0.3983 0.6985 0.36298 0.3821 0.2752
+[5,] 0.5628 0.1948 0.07549 0.6439 0.4743
+> chol(As)
+      [,1]   [,2]   [,3]   [,4]   [,5]
+[1,] 15.03 10.643 10.177 11.574 15.965
+[2,]  0.00  5.452  3.243 -2.052  1.667
+[3,]  0.00  0.000  7.543  3.428  4.920
+[4,]  0.00  0.000  0.000  4.907 -1.269
+[5,]  0.00  0.000  0.000  0.000  3.088
+> backsolve(As, 1:5)
+[1] -0.009040 -0.005129 -0.006246  0.004158  0.017065
+> 
+> ##  -------  tests of logical matrices -----------------
+> 
+> set.seed(123)
+> A <- matrix(runif(25) > 0.5, 5, 5)
+> 
+> A %*% A
+     [,1] [,2] [,3] [,4] [,5]
+[1,]    2    2    2    1    3
+[2,]    2    1    1    2    3
+[3,]    2    2    1    1    3
+[4,]    2    2    2    2    4
+[5,]    2    1    2    2    3
+> crossprod(A)
+     [,1] [,2] [,3] [,4] [,5]
+[1,]    3    2    1    1    3
+[2,]    2    3    2    0    3
+[3,]    1    2    3    1    3
+[4,]    1    0    1    2    2
+[5,]    3    3    3    2    5
+> tcrossprod(A)
+     [,1] [,2] [,3] [,4] [,5]
+[1,]    3    1    2    2    2
+[2,]    1    3    2    3    2
+[3,]    2    2    3    3    1
+[4,]    2    3    3    4    2
+[5,]    2    2    1    2    3
+> 
+> Q <- qr(A)
+> zapsmall(Q$qr)
+        [,1]    [,2]    [,3]    [,4]    [,5]
+[1,] -1.7321 -1.1547 -0.5774 -0.5774 -1.7321
+[2,]  0.5774 -1.2910 -1.0328  0.5164 -0.7746
+[3,]  0.0000  0.7746 -1.2649 -0.9487 -0.9487
+[4,]  0.5774  0.2582  0.0508  0.7071  0.7071
+[5,]  0.5774 -0.5164 -0.6803 -0.3136  0.0000
+> zapsmall(Q$qraux)
+[1] 1.000 1.258 1.731 1.950 0.000
+> determinant(A, log = FALSE) # 0
+$modulus
+[1] 0
+attr(,"logarithm")
+[1] FALSE
+
+$sign
+[1] 1
+
+attr(,"class")
+[1] "det"
+> 
+> rcond(A)
+[1] 0
+> rcond(A, "I")
+[1] 0
+> rcond(A, "1")
+[1] 0
+> 
+> E <- eigen(A)
+> zapsmall(E$values)
+[1]  3.163+0.000i  0.271+0.908i  0.271-0.908i -0.705+0.000i  0.000+0.000i
+> zapsmall(Mod(E$vectors))
+       [,1]   [,2]   [,3]   [,4]   [,5]
+[1,] 0.4358 0.3604 0.3604 0.6113 0.0000
+[2,] 0.4087 0.4495 0.4495 0.3771 0.5774
+[3,] 0.3962 0.5870 0.5870 0.2028 0.0000
+[4,] 0.5340 0.2792 0.2792 0.6649 0.5774
+[5,] 0.4483 0.4955 0.4955 0.0314 0.5774
+> S <- svd(A)
+> zapsmall(S$d)
+[1] 3.379 1.536 1.414 0.472 0.000
+> S <- La.svd(A)
+> zapsmall(S$d)
+[1] 3.379 1.536 1.414 0.472 0.000
+> 
+> As <- A
+> As[upper.tri(A)] <- t(A)[upper.tri(A)]
+> det(As)
+[1] 2
+> E <- eigen(As)
+> E$values
+[1]  3.465  1.510  0.300 -1.000 -1.275
+> zapsmall(E$vectors)
+        [,1]    [,2]    [,3] [,4]    [,5]
+[1,] -0.4023  0.2877  0.3638  0.5  0.6108
+[2,] -0.5338 -0.3474  0.5742 -0.5 -0.1207
+[3,] -0.4177 -0.5380 -0.6384  0.0  0.3585
+[4,] -0.4959  0.0733 -0.1273  0.5 -0.6946
+[5,] -0.3644  0.7084 -0.3378 -0.5  0.0369
+> solve(As)
+     [,1] [,2] [,3] [,4] [,5]
+[1,]    0    1 -1.0  0.0  0.0
+[2,]    1    1 -1.0  0.0 -1.0
+[3,]   -1   -1  1.5  0.5  0.5
+[4,]    0    0  0.5 -0.5  0.5
+[5,]    0   -1  0.5  0.5  0.5
+> 
+> ## quite hard to come up with an example where this might make sense.
+> Ac <- A; Ac[] <- as.logical(diag(5))
+> chol(Ac)
+     [,1] [,2] [,3] [,4] [,5]
+[1,]    1    0    0    0    0
+[2,]    0    1    0    0    0
+[3,]    0    0    1    0    0
+[4,]    0    0    0    1    0
+[5,]    0    0    0    0    1
+> 
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/any-all.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/any-all.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/any-all.Rout.save	(revision 2476)
@@ -0,0 +1,111 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> basic_tests <- list(
++      list(input=c(TRUE, FALSE), any=TRUE, all=FALSE),
++      list(input=c(FALSE, TRUE), any=TRUE, all=FALSE),
++ 
++      list(input=c(TRUE, TRUE), any=TRUE, all=TRUE),
++      list(input=c(FALSE, FALSE), any=FALSE, all=FALSE),
++ 
++      list(input=c(NA, FALSE), any=NA, all=FALSE, any.na.rm=FALSE),
++      list(input=c(FALSE, NA), any=NA, all=FALSE, any.na.rm=FALSE),
++ 
++      list(input=c(NA, TRUE), any=TRUE, all=NA, all.na.rm=TRUE),
++      list(input=c(TRUE, NA), any=TRUE, all=NA, all.na.rm=TRUE),
++ 
++      list(input=logical(0), any=FALSE, all=TRUE),
++ 
++      list(input=NA, any=NA, all=NA, any.na.rm=FALSE, any.na.rm=TRUE),
++ 
++      list(input=c(TRUE, NA, FALSE), any=TRUE, any.na.rm=TRUE,
++           all=FALSE, all.na.rm=FALSE)
++      )
+> 
+> ## any, all accept '...' for input.
+> list_input_tests <-
++     list(
++          list(input=list(TRUE, TRUE), all=TRUE, any=TRUE),
++          list(input=list(FALSE, FALSE), all=FALSE, any=FALSE),
++          list(input=list(TRUE, FALSE), all=FALSE, any=TRUE),
++          list(input=list(FALSE, TRUE), all=FALSE, any=TRUE),
++ 
++          list(input=list(FALSE, NA),
++               all=FALSE, all.na.rm=FALSE, any=NA, any.na.rm=FALSE),
++          list(input=list(NA, FALSE),
++               all=FALSE, all.na.rm=FALSE, any=NA, any.na.rm=FALSE),
++ 
++          list(input=list(TRUE, NA),
++               all=NA, all.na.rm=TRUE, any=TRUE, any.na.rm=TRUE),
++          list(input=list(NA, TRUE),
++               all=NA, all.na.rm=TRUE, any=TRUE, any.na.rm=TRUE),
++ 
++          list(input=list(NA, NA),
++               any=NA, any.na.rm=FALSE, all=NA, all.na.rm=TRUE),
++ 
++          list(input=list(rep(TRUE, 2), rep(TRUE, 10)),
++               all=TRUE, any=TRUE),
++ 
++          list(input=list(rep(TRUE, 2), c(TRUE, NA)),
++               all=NA, all.na.rm=TRUE, any=TRUE),
++ 
++          list(input=list(rep(TRUE, 2), c(TRUE, FALSE)),
++               all=FALSE, any=TRUE),
++ 
++          list(input=list(c(TRUE, FALSE), c(TRUE, NA)),
++               all=FALSE, all.na.rm=FALSE, any=TRUE, any.na.rm=TRUE)
++          )
+> 
+> 
+> 
+> do_tests <- function(L)
++ {
++     run <- function(f, input, na.rm = FALSE)
++     {
++         if (is.list(input))
++             do.call(f, c(input, list(na.rm = na.rm)))
++         else f(input, na.rm = na.rm)
++     }
++ 
++     do_check <- function(case, f)
++     {
++         fun <- deparse(substitute(f))
++         if (!identical(case[[fun]], run(f, case$input))) {
++             cat("input: "); dput(case$input)
++             stop(fun, " returned ", run(f, case$input),
++                  " wanted ", case[[fun]], call. = FALSE)
++         }
++         narm <- paste(fun, ".na.rm", sep = "")
++         if (!is.null(case[[narm]])) {
++             if (!identical(case[[narm]],
++                            run(f, case$input, na.rm = TRUE))) {
++                 cat("input: "); dput(case$input)
++                 stop(narm, " returned ", run(f, case$input, na.rm = TRUE),
++                      " wanted ", case[[narm]], call. = FALSE)
++             }
++         }
++     }
++     lab <- deparse(substitute(L))
++     for (case in L) {
++         do_check(case, any)
++         do_check(case, all)
++     }
++ }
+> 
+> do_tests(basic_tests)
+> do_tests(list_input_tests)
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot-latin1.pdf.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot-latin1.pdf.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot-latin1.pdf.save	(revision 2476)
@@ -0,0 +1,652 @@
+%PDF-1.4
+%���ρ�\r
+1 0 obj
+<<
+/CreationDate (D:20121210185339)
+/ModDate (D:20121210185339)
+/Title (R Graphics Output)
+/Producer (R 3.0.0)
+/Creator (R)
+>>
+endobj
+2 0 obj
+<< /Type /Catalog /Pages 3 0 R >>
+endobj
+7 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 8 0 R /Resources 4 0 R >>
+endobj
+8 0 obj
+<<
+/Length 9 0 R
+>>
+stream
+1 J 1 j q
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 119.08 m 627.34 119.08 l S
+243.34 119.08 m 243.34 111.88 l S
+339.34 119.08 m 339.34 111.88 l S
+435.34 119.08 m 435.34 111.88 l S
+531.34 119.08 m 531.34 111.88 l S
+627.34 119.08 m 627.34 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 231.50 93.16 Tm (-1.0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 327.50 93.16 Tm (-0.5) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 427.00 93.16 Tm (0.0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 523.00 93.16 Tm (0.5) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 619.00 93.16 Tm (1.0) Tj
+ET
+227.98 132.84 m 227.98 476.84 l S
+227.98 132.84 m 220.78 132.84 l S
+227.98 218.84 m 220.78 218.84 l S
+227.98 304.84 m 220.78 304.84 l S
+227.98 390.84 m 220.78 390.84 l S
+227.98 476.84 m 220.78 476.84 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 120.99 Tm (-1.0) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 206.99 Tm (-0.5) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 296.50 Tm (0.0) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 382.50 Tm (0.5) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 468.50 Tm (1.0) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 427.68 64.36 Tm (Re) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 298.17 Tm (Im) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+BT
+/sRGB cs
+1.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 609.39 366.44 Tm (1) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 567.77 422.24 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 505.48 459.64 Tm (3) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 432.01 472.62 Tm (4) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 358.53 459.73 Tm (5) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 296.24 422.36 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 254.62 366.53 Tm (7) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 240.01 300.73 Tm (8) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 254.62 234.91 Tm (9) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 292.91 179.11 Tm (10) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 355.20 141.71 Tm (11) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 428.67 128.62 Tm (12) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 502.15 141.83 Tm (13) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 564.44 179.00 Tm (14) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 606.06 234.91 Tm (15) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 620.67 300.73 Tm (16) Tj
+ET
+Q
+endstream
+endobj
+9 0 obj
+2512
+endobj
+10 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 11 0 R /Resources 4 0 R >>
+endobj
+11 0 obj
+<<
+/Length 12 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 240.38 130.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 283.05 168.46 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 325.72 206.69 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 368.38 244.91 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 411.05 283.13 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 453.72 321.35 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 496.38 359.58 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 539.05 397.80 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 581.72 436.02 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 624.38 474.24 Tm (l) Tj 0 Tr
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+286.01 119.08 m 627.34 119.08 l S
+286.01 119.08 m 286.01 111.88 l S
+371.34 119.08 m 371.34 111.88 l S
+456.68 119.08 m 456.68 111.88 l S
+542.01 119.08 m 542.01 111.88 l S
+627.34 119.08 m 627.34 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 282.68 93.16 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 368.01 93.16 Tm (4) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 453.34 93.16 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 538.68 93.16 Tm (8) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 620.67 93.16 Tm (10) Tj
+ET
+227.98 171.06 m 227.98 476.84 l S
+227.98 171.06 m 220.78 171.06 l S
+227.98 247.50 m 220.78 247.50 l S
+227.98 323.95 m 220.78 323.95 l S
+227.98 400.39 m 220.78 400.39 l S
+227.98 476.84 m 220.78 476.84 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 167.72 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 244.17 Tm (4) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 320.61 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 397.06 Tm (8) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 470.17 Tm (10) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F3 1 Tf 14.00 0.00 0.00 14.00 378.76 523.73 Tm [(te) 15 (xt\(...\) e) 15 (xamples)] TJ
+ET
+BT
+/F3 1 Tf 14.00 0.00 0.00 14.00 378.11 506.45 Tm (~~~~~~~~~~~~~~) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 369.60 49.96 Tm [(R is GNU �, b) 20 (ut not � ...)] TJ
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 423.67 64.36 Tm (1:10) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 293.16 Tm (1:10) Tj
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 317.44 493.48 Tm (�Latin-1 accented chars�: �� �� �<� �<�) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+1.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+441.40 171.06 m 471.95 171.06 l S
+456.68 155.79 m 456.68 186.33 l S
+270.74 132.84 m 301.29 132.84 l S
+286.01 117.56 m 286.01 148.11 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 10.00 0.00 0.00 10.00 339.67 168.45 Tm [(the te) 30 (xt is CENTERED around \(x,y\) = \(6,2\) b) 20 (y def) 30 (ault)] TJ
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 286.01 132.84 Tm [(or Left/Bottom - JUSTIFIED at \(2,1\) b) 20 (y 'adj = c\(0,0\)')] TJ
+ET
+BT
+/F6 1 Tf 12.00 0.00 0.00 12.00 335.34 432.63 Tm (b) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 335.82 439.21 Tm (^) Tj
+ET
+BT
+/F6 1 Tf 12.00 0.00 0.00 12.00 344.70 432.63 Tm (=) Tj
+ET
+BT
+/F6 1 Tf 15.00 0.00 0.00 15.00 354.06 432.63 Tm (\() Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 359.06 432.63 Tm (X) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 367.06 438.59 Tm (t) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 369.29 432.63 Tm (X) Tj
+ET
+BT
+/F6 1 Tf 15.00 0.00 0.00 15.00 377.29 432.63 Tm (\)) Tj
+ET
+BT
+/F6 1 Tf 8.00 0.00 0.00 8.00 382.29 438.59 Tm (-) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 386.68 438.59 Tm (1) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 391.13 432.63 Tm (X) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 399.13 438.59 Tm (t) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 401.35 432.63 Tm (y) Tj
+ET
+BT
+/F2 1 Tf 9.00 0.00 0.00 9.00 276.98 413.35 Tm [(e) 30 (xpression\(hat\(beta\) == \(X^t * X\)^{-1} * X^t * y\))] TJ
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 352.21 359.10 Tm (x) Tj
+ET
+0.000 0.000 0.000 SCN
+352.21 367.10 m
+358.21 367.10 l
+S
+BT
+/F6 1 Tf 12.00 0.00 0.00 12.00 360.98 359.10 Tm (=) Tj
+ET
+BT
+/F6 1 Tf 15.00 0.00 0.00 15.00 370.35 358.06 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 370.39 349.40 Tm (i) Tj
+ET
+BT
+/F6 1 Tf 8.00 0.00 0.00 8.00 372.16 349.40 Tm (=) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 376.55 349.40 Tm (1) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 373.47 370.63 Tm (n) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 382.71 369.06 Tm (x) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 388.71 366.87 Tm (i) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 383.26 349.47 Tm (n) Tj
+ET
+382.71 362.13 m
+390.48 362.13 l
+S
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 254.30 481.43 Tm [(Le fr) 10 (an�ais) 15 (, c'est f) 30 (a�ile: R�gles) 15 (, Liber) -40 (t�) 15 (, Egalit�) 15 (, Fr) 10 (ater) -25 (nit�) 15 (...)] TJ
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 255.19 466.04 Tm [(Jetz no chli z�r) -15 (it��tsch: \(noch ein bi�chen Z�rcher deutsch\))] TJ
+ET
+Q
+endstream
+endobj
+12 0 obj
+5085
+endobj
+3 0 obj
+<< /Type /Pages /Kids [ 7 0 R 10 0 R ] /Count 2 /MediaBox [0 0 841 595] >>
+endobj
+4 0 obj
+<<
+/ProcSet [/PDF /Text]
+/Font << /F1 14 0 R /F2 15 0 R /F3 16 0 R /F6 17 0 R >>
+/ExtGState << >>
+/ColorSpace << /sRGB 5 0 R >>
+>>
+endobj
+5 0 obj
+[/ICCBased 6 0 R]
+endobj
+6 0 obj
+<< /N 3 /Alternate /DeviceRGB /Length 9433 /Filter /ASCIIHexDecode >>
+stream
+00 00 0c 48 4c 69 6e 6f 02 10 00 00 6d 6e 74 72
+52 47 42 20 58 59 5a 20 07 ce 00 02 00 09 00 06
+00 31 00 00 61 63 73 70 4d 53 46 54 00 00 00 00
+49 45 43 20 73 52 47 42 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 f6 d6 00 01 00 00 00 00 d3 2d
+48 50 20 20 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 11 63 70 72 74 00 00 01 50 00 00 00 33
+64 65 73 63 00 00 01 84 00 00 00 6c 77 74 70 74
+00 00 01 f0 00 00 00 14 62 6b 70 74 00 00 02 04
+00 00 00 14 72 58 59 5a 00 00 02 18 00 00 00 14
+67 58 59 5a 00 00 02 2c 00 00 00 14 62 58 59 5a
+00 00 02 40 00 00 00 14 64 6d 6e 64 00 00 02 54
+00 00 00 70 64 6d 64 64 00 00 02 c4 00 00 00 88
+76 75 65 64 00 00 03 4c 00 00 00 86 76 69 65 77
+00 00 03 d4 00 00 00 24 6c 75 6d 69 00 00 03 f8
+00 00 00 14 6d 65 61 73 00 00 04 0c 00 00 00 24
+74 65 63 68 00 00 04 30 00 00 00 0c 72 54 52 43
+00 00 04 3c 00 00 08 0c 67 54 52 43 00 00 04 3c
+00 00 08 0c 62 54 52 43 00 00 04 3c 00 00 08 0c
+74 65 78 74 00 00 00 00 43 6f 70 79 72 69 67 68
+74 20 28 63 29 20 31 39 39 38 20 48 65 77 6c 65
+74 74 2d 50 61 63 6b 61 72 64 20 43 6f 6d 70 61
+6e 79 00 00 64 65 73 63 00 00 00 00 00 00 00 12
+73 52 47 42 20 49 45 43 36 31 39 36 36 2d 32 2e
+31 00 00 00 00 00 00 00 00 00 00 00 12 73 52 47
+42 20 49 45 43 36 31 39 36 36 2d 32 2e 31 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+58 59 5a 20 00 00 00 00 00 00 f3 51 00 01 00 00
+00 01 16 cc 58 59 5a 20 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 58 59 5a 20 00 00 00 00
+00 00 6f a2 00 00 38 f5 00 00 03 90 58 59 5a 20
+00 00 00 00 00 00 62 99 00 00 b7 85 00 00 18 da
+58 59 5a 20 00 00 00 00 00 00 24 a0 00 00 0f 84
+00 00 b6 cf 64 65 73 63 00 00 00 00 00 00 00 16
+49 45 43 20 68 74 74 70 3a 2f 2f 77 77 77 2e 69
+65 63 2e 63 68 00 00 00 00 00 00 00 00 00 00 00
+16 49 45 43 20 68 74 74 70 3a 2f 2f 77 77 77 2e
+69 65 63 2e 63 68 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 64 65 73 63 00 00 00 00 00 00 00 2e
+49 45 43 20 36 31 39 36 36 2d 32 2e 31 20 44 65
+66 61 75 6c 74 20 52 47 42 20 63 6f 6c 6f 75 72
+20 73 70 61 63 65 20 2d 20 73 52 47 42 00 00 00
+00 00 00 00 00 00 00 00 2e 49 45 43 20 36 31 39
+36 36 2d 32 2e 31 20 44 65 66 61 75 6c 74 20 52
+47 42 20 63 6f 6c 6f 75 72 20 73 70 61 63 65 20
+2d 20 73 52 47 42 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 64 65 73 63
+00 00 00 00 00 00 00 2c 52 65 66 65 72 65 6e 63
+65 20 56 69 65 77 69 6e 67 20 43 6f 6e 64 69 74
+69 6f 6e 20 69 6e 20 49 45 43 36 31 39 36 36 2d
+32 2e 31 00 00 00 00 00 00 00 00 00 00 00 2c 52
+65 66 65 72 65 6e 63 65 20 56 69 65 77 69 6e 67
+20 43 6f 6e 64 69 74 69 6f 6e 20 69 6e 20 49 45
+43 36 31 39 36 36 2d 32 2e 31 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 76 69 65 77 00 00 00 00 00 13 a4 fe
+00 14 5f 2e 00 10 cf 14 00 03 ed cc 00 04 13 0b
+00 03 5c 9e 00 00 00 01 58 59 5a 20 00 00 00 00
+00 4c 09 56 00 50 00 00 00 57 1f e7 6d 65 61 73
+00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 02 8f 00 00 00 02
+73 69 67 20 00 00 00 00 43 52 54 20 63 75 72 76
+00 00 00 00 00 00 04 00 00 00 00 05 00 0a 00 0f
+00 14 00 19 00 1e 00 23 00 28 00 2d 00 32 00 37
+00 3b 00 40 00 45 00 4a 00 4f 00 54 00 59 00 5e
+00 63 00 68 00 6d 00 72 00 77 00 7c 00 81 00 86
+00 8b 00 90 00 95 00 9a 00 9f 00 a4 00 a9 00 ae
+00 b2 00 b7 00 bc 00 c1 00 c6 00 cb 00 d0 00 d5
+00 db 00 e0 00 e5 00 eb 00 f0 00 f6 00 fb 01 01
+01 07 01 0d 01 13 01 19 01 1f 01 25 01 2b 01 32
+01 38 01 3e 01 45 01 4c 01 52 01 59 01 60 01 67
+01 6e 01 75 01 7c 01 83 01 8b 01 92 01 9a 01 a1
+01 a9 01 b1 01 b9 01 c1 01 c9 01 d1 01 d9 01 e1
+01 e9 01 f2 01 fa 02 03 02 0c 02 14 02 1d 02 26
+02 2f 02 38 02 41 02 4b 02 54 02 5d 02 67 02 71
+02 7a 02 84 02 8e 02 98 02 a2 02 ac 02 b6 02 c1
+02 cb 02 d5 02 e0 02 eb 02 f5 03 00 03 0b 03 16
+03 21 03 2d 03 38 03 43 03 4f 03 5a 03 66 03 72
+03 7e 03 8a 03 96 03 a2 03 ae 03 ba 03 c7 03 d3
+03 e0 03 ec 03 f9 04 06 04 13 04 20 04 2d 04 3b
+04 48 04 55 04 63 04 71 04 7e 04 8c 04 9a 04 a8
+04 b6 04 c4 04 d3 04 e1 04 f0 04 fe 05 0d 05 1c
+05 2b 05 3a 05 49 05 58 05 67 05 77 05 86 05 96
+05 a6 05 b5 05 c5 05 d5 05 e5 05 f6 06 06 06 16
+06 27 06 37 06 48 06 59 06 6a 06 7b 06 8c 06 9d
+06 af 06 c0 06 d1 06 e3 06 f5 07 07 07 19 07 2b
+07 3d 07 4f 07 61 07 74 07 86 07 99 07 ac 07 bf
+07 d2 07 e5 07 f8 08 0b 08 1f 08 32 08 46 08 5a
+08 6e 08 82 08 96 08 aa 08 be 08 d2 08 e7 08 fb
+09 10 09 25 09 3a 09 4f 09 64 09 79 09 8f 09 a4
+09 ba 09 cf 09 e5 09 fb 0a 11 0a 27 0a 3d 0a 54
+0a 6a 0a 81 0a 98 0a ae 0a c5 0a dc 0a f3 0b 0b
+0b 22 0b 39 0b 51 0b 69 0b 80 0b 98 0b b0 0b c8
+0b e1 0b f9 0c 12 0c 2a 0c 43 0c 5c 0c 75 0c 8e
+0c a7 0c c0 0c d9 0c f3 0d 0d 0d 26 0d 40 0d 5a
+0d 74 0d 8e 0d a9 0d c3 0d de 0d f8 0e 13 0e 2e
+0e 49 0e 64 0e 7f 0e 9b 0e b6 0e d2 0e ee 0f 09
+0f 25 0f 41 0f 5e 0f 7a 0f 96 0f b3 0f cf 0f ec
+10 09 10 26 10 43 10 61 10 7e 10 9b 10 b9 10 d7
+10 f5 11 13 11 31 11 4f 11 6d 11 8c 11 aa 11 c9
+11 e8 12 07 12 26 12 45 12 64 12 84 12 a3 12 c3
+12 e3 13 03 13 23 13 43 13 63 13 83 13 a4 13 c5
+13 e5 14 06 14 27 14 49 14 6a 14 8b 14 ad 14 ce
+14 f0 15 12 15 34 15 56 15 78 15 9b 15 bd 15 e0
+16 03 16 26 16 49 16 6c 16 8f 16 b2 16 d6 16 fa
+17 1d 17 41 17 65 17 89 17 ae 17 d2 17 f7 18 1b
+18 40 18 65 18 8a 18 af 18 d5 18 fa 19 20 19 45
+19 6b 19 91 19 b7 19 dd 1a 04 1a 2a 1a 51 1a 77
+1a 9e 1a c5 1a ec 1b 14 1b 3b 1b 63 1b 8a 1b b2
+1b da 1c 02 1c 2a 1c 52 1c 7b 1c a3 1c cc 1c f5
+1d 1e 1d 47 1d 70 1d 99 1d c3 1d ec 1e 16 1e 40
+1e 6a 1e 94 1e be 1e e9 1f 13 1f 3e 1f 69 1f 94
+1f bf 1f ea 20 15 20 41 20 6c 20 98 20 c4 20 f0
+21 1c 21 48 21 75 21 a1 21 ce 21 fb 22 27 22 55
+22 82 22 af 22 dd 23 0a 23 38 23 66 23 94 23 c2
+23 f0 24 1f 24 4d 24 7c 24 ab 24 da 25 09 25 38
+25 68 25 97 25 c7 25 f7 26 27 26 57 26 87 26 b7
+26 e8 27 18 27 49 27 7a 27 ab 27 dc 28 0d 28 3f
+28 71 28 a2 28 d4 29 06 29 38 29 6b 29 9d 29 d0
+2a 02 2a 35 2a 68 2a 9b 2a cf 2b 02 2b 36 2b 69
+2b 9d 2b d1 2c 05 2c 39 2c 6e 2c a2 2c d7 2d 0c
+2d 41 2d 76 2d ab 2d e1 2e 16 2e 4c 2e 82 2e b7
+2e ee 2f 24 2f 5a 2f 91 2f c7 2f fe 30 35 30 6c
+30 a4 30 db 31 12 31 4a 31 82 31 ba 31 f2 32 2a
+32 63 32 9b 32 d4 33 0d 33 46 33 7f 33 b8 33 f1
+34 2b 34 65 34 9e 34 d8 35 13 35 4d 35 87 35 c2
+35 fd 36 37 36 72 36 ae 36 e9 37 24 37 60 37 9c
+37 d7 38 14 38 50 38 8c 38 c8 39 05 39 42 39 7f
+39 bc 39 f9 3a 36 3a 74 3a b2 3a ef 3b 2d 3b 6b
+3b aa 3b e8 3c 27 3c 65 3c a4 3c e3 3d 22 3d 61
+3d a1 3d e0 3e 20 3e 60 3e a0 3e e0 3f 21 3f 61
+3f a2 3f e2 40 23 40 64 40 a6 40 e7 41 29 41 6a
+41 ac 41 ee 42 30 42 72 42 b5 42 f7 43 3a 43 7d
+43 c0 44 03 44 47 44 8a 44 ce 45 12 45 55 45 9a
+45 de 46 22 46 67 46 ab 46 f0 47 35 47 7b 47 c0
+48 05 48 4b 48 91 48 d7 49 1d 49 63 49 a9 49 f0
+4a 37 4a 7d 4a c4 4b 0c 4b 53 4b 9a 4b e2 4c 2a
+4c 72 4c ba 4d 02 4d 4a 4d 93 4d dc 4e 25 4e 6e
+4e b7 4f 00 4f 49 4f 93 4f dd 50 27 50 71 50 bb
+51 06 51 50 51 9b 51 e6 52 31 52 7c 52 c7 53 13
+53 5f 53 aa 53 f6 54 42 54 8f 54 db 55 28 55 75
+55 c2 56 0f 56 5c 56 a9 56 f7 57 44 57 92 57 e0
+58 2f 58 7d 58 cb 59 1a 59 69 59 b8 5a 07 5a 56
+5a a6 5a f5 5b 45 5b 95 5b e5 5c 35 5c 86 5c d6
+5d 27 5d 78 5d c9 5e 1a 5e 6c 5e bd 5f 0f 5f 61
+5f b3 60 05 60 57 60 aa 60 fc 61 4f 61 a2 61 f5
+62 49 62 9c 62 f0 63 43 63 97 63 eb 64 40 64 94
+64 e9 65 3d 65 92 65 e7 66 3d 66 92 66 e8 67 3d
+67 93 67 e9 68 3f 68 96 68 ec 69 43 69 9a 69 f1
+6a 48 6a 9f 6a f7 6b 4f 6b a7 6b ff 6c 57 6c af
+6d 08 6d 60 6d b9 6e 12 6e 6b 6e c4 6f 1e 6f 78
+6f d1 70 2b 70 86 70 e0 71 3a 71 95 71 f0 72 4b
+72 a6 73 01 73 5d 73 b8 74 14 74 70 74 cc 75 28
+75 85 75 e1 76 3e 76 9b 76 f8 77 56 77 b3 78 11
+78 6e 78 cc 79 2a 79 89 79 e7 7a 46 7a a5 7b 04
+7b 63 7b c2 7c 21 7c 81 7c e1 7d 41 7d a1 7e 01
+7e 62 7e c2 7f 23 7f 84 7f e5 80 47 80 a8 81 0a
+81 6b 81 cd 82 30 82 92 82 f4 83 57 83 ba 84 1d
+84 80 84 e3 85 47 85 ab 86 0e 86 72 86 d7 87 3b
+87 9f 88 04 88 69 88 ce 89 33 89 99 89 fe 8a 64
+8a ca 8b 30 8b 96 8b fc 8c 63 8c ca 8d 31 8d 98
+8d ff 8e 66 8e ce 8f 36 8f 9e 90 06 90 6e 90 d6
+91 3f 91 a8 92 11 92 7a 92 e3 93 4d 93 b6 94 20
+94 8a 94 f4 95 5f 95 c9 96 34 96 9f 97 0a 97 75
+97 e0 98 4c 98 b8 99 24 99 90 99 fc 9a 68 9a d5
+9b 42 9b af 9c 1c 9c 89 9c f7 9d 64 9d d2 9e 40
+9e ae 9f 1d 9f 8b 9f fa a0 69 a0 d8 a1 47 a1 b6
+a2 26 a2 96 a3 06 a3 76 a3 e6 a4 56 a4 c7 a5 38
+a5 a9 a6 1a a6 8b a6 fd a7 6e a7 e0 a8 52 a8 c4
+a9 37 a9 a9 aa 1c aa 8f ab 02 ab 75 ab e9 ac 5c
+ac d0 ad 44 ad b8 ae 2d ae a1 af 16 af 8b b0 00
+b0 75 b0 ea b1 60 b1 d6 b2 4b b2 c2 b3 38 b3 ae
+b4 25 b4 9c b5 13 b5 8a b6 01 b6 79 b6 f0 b7 68
+b7 e0 b8 59 b8 d1 b9 4a b9 c2 ba 3b ba b5 bb 2e
+bb a7 bc 21 bc 9b bd 15 bd 8f be 0a be 84 be ff
+bf 7a bf f5 c0 70 c0 ec c1 67 c1 e3 c2 5f c2 db
+c3 58 c3 d4 c4 51 c4 ce c5 4b c5 c8 c6 46 c6 c3
+c7 41 c7 bf c8 3d c8 bc c9 3a c9 b9 ca 38 ca b7
+cb 36 cb b6 cc 35 cc b5 cd 35 cd b5 ce 36 ce b6
+cf 37 cf b8 d0 39 d0 ba d1 3c d1 be d2 3f d2 c1
+d3 44 d3 c6 d4 49 d4 cb d5 4e d5 d1 d6 55 d6 d8
+d7 5c d7 e0 d8 64 d8 e8 d9 6c d9 f1 da 76 da fb
+db 80 dc 05 dc 8a dd 10 dd 96 de 1c de a2 df 29
+df af e0 36 e0 bd e1 44 e1 cc e2 53 e2 db e3 63
+e3 eb e4 73 e4 fc e5 84 e6 0d e6 96 e7 1f e7 a9
+e8 32 e8 bc e9 46 e9 d0 ea 5b ea e5 eb 70 eb fb
+ec 86 ed 11 ed 9c ee 28 ee b4 ef 40 ef cc f0 58
+f0 e5 f1 72 f1 ff f2 8c f3 19 f3 a7 f4 34 f4 c2
+f5 50 f5 de f6 6d f6 fb f7 8a f8 19 f8 a8 f9 38
+f9 c7 fa 57 fa e7 fb 77 fc 07 fc 98 fd 29 fd ba
+fe 4b fe dc ff 6d ff ff >
+endstream
+endobj
+13 0 obj
+<<
+/Type /Encoding /BaseEncoding /WinAnsiEncoding
+/Differences [ 45/minus 96/quoteleft
+144/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent
+/dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space]
+>>
+endobj
+14 0 obj
+<< /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /ZapfDingbats >>
+endobj
+15 0 obj
+<< /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica
+/Encoding 13 0 R >>
+endobj
+16 0 obj
+<< /Type /Font /Subtype /Type1 /Name /F3 /BaseFont /Helvetica-Bold
+/Encoding 13 0 R >>
+endobj
+17 0 obj
+<< /Type /Font /Subtype /Type1 /Name /F6 /BaseFont /Symbol
+>>
+endobj
+xref
+0 18
+0000000000 65535 f 
+0000000021 00000 n 
+0000000163 00000 n 
+0000008118 00000 n 
+0000008208 00000 n 
+0000008354 00000 n 
+0000008387 00000 n 
+0000000212 00000 n 
+0000000292 00000 n 
+0000002856 00000 n 
+0000002876 00000 n 
+0000002958 00000 n 
+0000008097 00000 n 
+0000017923 00000 n 
+0000018181 00000 n 
+0000018265 00000 n 
+0000018363 00000 n 
+0000018466 00000 n 
+trailer
+<< /Size 18 /Info 1 0 R /Root 2 0 R >>
+startxref
+18544
+%%EOF
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/isas-tests.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/isas-tests.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/isas-tests.Rout.save	(revision 2476)
@@ -0,0 +1,2573 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> .proctime00 <- proc.time()
+> 
+> isall.equal <- function(x,y)
++ typeof(x) == typeof(y) && is.logical(r <- all.equal(x,y, tolerance=0)) && r 
+> 
+> report <- function(x) {print(x); stopifnot(x)}
+> options(error = expression(NULL)) # don't stop on error in batch
+> ##~~~~~~~~~~~~~~
+> 
+> ###--------
+>  x <- integer(0)
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.array(res))
+[1] TRUE
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.call(res))
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.character(res))
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.complex(res))
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.data.frame(res))
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.double(res))
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.environment(res))
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.expression(res))
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.factor(res))
+[1] TRUE
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.function(res))
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.integer(res))
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.list(res))
+[1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.logical(res))
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.matrix(res))
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.name(res))
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.null(res))
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric(res))
+[1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric_version(res))
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ordered(res))
+[1] TRUE
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.package_version(res))
+[1] TRUE
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.pairlist(res))
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.qr(res))
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.raw(res))
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.symbol(res))
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.table(res))
+[1] TRUE
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.vector(res))
+[1] TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.stepfun(res))
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ts(res))
+> 
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.array(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.call(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.character(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.complex(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.data.frame(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.double(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.environment(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.expression(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.factor(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.function(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.integer(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.list(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.logical(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.matrix(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.name(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.null(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ordered(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.package_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.pairlist(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.qr(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.raw(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.symbol(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.table(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.vector(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.stepfun(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ts(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> f <- try(as.Date( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.Date( f )))
+> f <- try(as.POSIXct( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXct( f )))
+> f <- try(as.POSIXlt( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXlt( f )))
+> f <- try(as.array( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.array( f )))
+[1] TRUE
+> f <- try(as.call( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.call( f )))
+> f <- try(as.character( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.character( f )))
+[1] TRUE
+> f <- try(as.complex( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.complex( f )))
+[1] TRUE
+> f <- try(as.data.frame( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.data.frame( f )))
+[1] TRUE
+> f <- try(as.difftime( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.difftime( f )))
+> f <- try(as.double( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.double( f )))
+[1] TRUE
+> f <- try(as.environment( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.environment( f )))
+> f <- try(as.expression( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.expression( f )))
+[1] TRUE
+> f <- try(as.factor( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.factor( f )))
+[1] TRUE
+> f <- try(as.function( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.function( f )))
+> f <- try(as.hexmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hexmode( f )))
+[1] TRUE
+> f <- try(as.integer( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.integer( f )))
+[1] TRUE
+> f <- try(as.list( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.list( f )))
+[1] TRUE
+> f <- try(as.logical( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.logical( f )))
+[1] TRUE
+> f <- try(as.matrix( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.matrix( f )))
+[1] TRUE
+> f <- try(as.name( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.name( f )))
+> f <- try(as.null( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.null( f )))
+[1] TRUE
+> f <- try(as.numeric( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric( f )))
+[1] TRUE
+> f <- try(as.numeric_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric_version( f )))
+[1] TRUE
+> f <- try(as.octmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.octmode( f )))
+[1] TRUE
+> f <- try(as.ordered( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ordered( f )))
+[1] TRUE
+> f <- try(as.package_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.package_version( f )))
+[1] TRUE
+> f <- try(as.pairlist( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.pairlist( f )))
+[1] TRUE
+> f <- try(as.qr( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.qr( f )))
+> f <- try(as.raw( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.raw( f )))
+[1] TRUE
+> f <- try(as.single( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.single( f )))
+[1] TRUE
+> f <- try(as.symbol( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.symbol( f )))
+> f <- try(as.table( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.table( f )))
+[1] TRUE
+> f <- try(as.vector( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.vector( f )))
+[1] TRUE
+> f <- try(as.dendrogram( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dendrogram( f )))
+> f <- try(as.dist( x ), silent = TRUE)
+Warning message:
+In as.dist.default(x) : non-square matrix
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dist( f )))
+[1] TRUE
+> f <- try(as.formula( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.formula( f )))
+> f <- try(as.hclust( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hclust( f )))
+> f <- try(as.stepfun( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.stepfun( f )))
+> f <- try(as.ts( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ts( f )))
+> 
+> ###--------
+>  x <- NULL
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.array(res))
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.call(res))
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.character(res))
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.complex(res))
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.data.frame(res))
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.double(res))
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.environment(res))
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.expression(res))
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.factor(res))
+[1] TRUE
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.function(res))
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.integer(res))
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.list(res))
+[1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.logical(res))
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.matrix(res))
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.name(res))
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.null(res))
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric(res))
+[1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric_version(res))
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ordered(res))
+[1] TRUE
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.package_version(res))
+[1] TRUE
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.pairlist(res))
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.qr(res))
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.raw(res))
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.symbol(res))
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.table(res))
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.vector(res))
+[1] FALSE
+Error: x is not TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.stepfun(res))
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ts(res))
+> 
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.array(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.call(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.character(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.complex(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.data.frame(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.double(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.environment(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.expression(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.factor(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.function(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.integer(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.list(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.logical(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.matrix(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.name(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.null(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ordered(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.package_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.pairlist(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.qr(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.raw(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.symbol(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.table(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.vector(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] FALSE
+Error: x is not TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.stepfun(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ts(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> f <- try(as.Date( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.Date( f )))
+> f <- try(as.POSIXct( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXct( f )))
+> f <- try(as.POSIXlt( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXlt( f )))
+> f <- try(as.array( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.array( f )))
+> f <- try(as.call( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.call( f )))
+> f <- try(as.character( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.character( f )))
+[1] TRUE
+> f <- try(as.complex( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.complex( f )))
+[1] TRUE
+> f <- try(as.data.frame( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.data.frame( f )))
+[1] TRUE
+> f <- try(as.difftime( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.difftime( f )))
+> f <- try(as.double( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.double( f )))
+[1] TRUE
+> f <- try(as.environment( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.environment( f )))
+> f <- try(as.expression( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.expression( f )))
+[1] TRUE
+> f <- try(as.factor( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.factor( f )))
+[1] TRUE
+> f <- try(as.function( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.function( f )))
+> f <- try(as.hexmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hexmode( f )))
+> f <- try(as.integer( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.integer( f )))
+[1] TRUE
+> f <- try(as.list( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.list( f )))
+[1] TRUE
+> f <- try(as.logical( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.logical( f )))
+[1] TRUE
+> f <- try(as.matrix( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.matrix( f )))
+> f <- try(as.name( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.name( f )))
+> f <- try(as.null( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.null( f )))
+[1] TRUE
+> f <- try(as.numeric( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric( f )))
+[1] TRUE
+> f <- try(as.numeric_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric_version( f )))
+[1] TRUE
+> f <- try(as.octmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.octmode( f )))
+> f <- try(as.ordered( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ordered( f )))
+[1] TRUE
+> f <- try(as.package_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.package_version( f )))
+[1] TRUE
+> f <- try(as.pairlist( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.pairlist( f )))
+[1] TRUE
+> f <- try(as.qr( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.qr( f )))
+> f <- try(as.raw( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.raw( f )))
+[1] TRUE
+> f <- try(as.single( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.single( f )))
+[1] TRUE
+> f <- try(as.symbol( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.symbol( f )))
+> f <- try(as.table( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.table( f )))
+> f <- try(as.vector( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.vector( f )))
+[1] TRUE
+> f <- try(as.dendrogram( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dendrogram( f )))
+> f <- try(as.dist( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dist( f )))
+> f <- try(as.formula( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.formula( f )))
+[1] TRUE
+> f <- try(as.hclust( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hclust( f )))
+> f <- try(as.stepfun( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.stepfun( f )))
+> f <- try(as.ts( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ts( f )))
+> 
+> ###--------
+>  x <- list()
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.array(res))
+[1] TRUE
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.call(res))
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.character(res))
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.complex(res))
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.data.frame(res))
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.double(res))
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.environment(res))
+[1] TRUE
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.expression(res))
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.factor(res))
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.function(res))
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.integer(res))
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.list(res))
+[1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.logical(res))
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.matrix(res))
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.name(res))
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.null(res))
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric(res))
+[1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric_version(res))
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ordered(res))
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.package_version(res))
+[1] TRUE
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.pairlist(res))
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.qr(res))
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.raw(res))
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.symbol(res))
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.table(res))
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.vector(res))
+[1] TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.stepfun(res))
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ts(res))
+> 
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.array(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.call(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.character(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.complex(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.data.frame(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.double(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.environment(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.expression(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.factor(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.function(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.integer(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.list(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.logical(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.matrix(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.name(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.null(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ordered(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.package_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.pairlist(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.qr(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.raw(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.symbol(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.table(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.vector(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.stepfun(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ts(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> f <- try(as.Date( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.Date( f )))
+> f <- try(as.POSIXct( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXct( f )))
+> f <- try(as.POSIXlt( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXlt( f )))
+> f <- try(as.array( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.array( f )))
+[1] TRUE
+> f <- try(as.call( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.call( f )))
+> f <- try(as.character( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.character( f )))
+[1] TRUE
+> f <- try(as.complex( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.complex( f )))
+[1] TRUE
+> f <- try(as.data.frame( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.data.frame( f )))
+[1] TRUE
+> f <- try(as.difftime( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.difftime( f )))
+> f <- try(as.double( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.double( f )))
+[1] TRUE
+> f <- try(as.environment( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.environment( f )))
+[1] TRUE
+> f <- try(as.expression( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.expression( f )))
+[1] TRUE
+> f <- try(as.factor( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.factor( f )))
+> f <- try(as.function( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.function( f )))
+> f <- try(as.hexmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hexmode( f )))
+> f <- try(as.integer( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.integer( f )))
+[1] TRUE
+> f <- try(as.list( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.list( f )))
+[1] TRUE
+> f <- try(as.logical( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.logical( f )))
+[1] TRUE
+> f <- try(as.matrix( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.matrix( f )))
+[1] TRUE
+> f <- try(as.name( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.name( f )))
+> f <- try(as.null( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.null( f )))
+[1] TRUE
+> f <- try(as.numeric( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric( f )))
+[1] TRUE
+> f <- try(as.numeric_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric_version( f )))
+[1] TRUE
+> f <- try(as.octmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.octmode( f )))
+> f <- try(as.ordered( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ordered( f )))
+> f <- try(as.package_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.package_version( f )))
+[1] TRUE
+> f <- try(as.pairlist( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.pairlist( f )))
+[1] TRUE
+> f <- try(as.qr( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.qr( f )))
+> f <- try(as.raw( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.raw( f )))
+[1] TRUE
+> f <- try(as.single( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.single( f )))
+[1] TRUE
+> f <- try(as.symbol( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.symbol( f )))
+> f <- try(as.table( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.table( f )))
+> f <- try(as.vector( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.vector( f )))
+[1] TRUE
+> f <- try(as.dendrogram( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dendrogram( f )))
+> f <- try(as.dist( x ), silent = TRUE)
+Warning message:
+In as.dist.default(x) : non-square matrix
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dist( f )))
+[1] TRUE
+> f <- try(as.formula( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.formula( f )))
+> f <- try(as.hclust( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hclust( f )))
+> f <- try(as.stepfun( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.stepfun( f )))
+> f <- try(as.ts( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ts( f )))
+> 
+> ###--------
+>  x <- 1:1
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.array(res))
+[1] TRUE
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.call(res))
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.character(res))
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.complex(res))
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.data.frame(res))
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.double(res))
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.environment(res))
+[1] TRUE
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.expression(res))
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.factor(res))
+[1] TRUE
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.function(res))
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.integer(res))
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.list(res))
+[1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.logical(res))
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.matrix(res))
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.name(res))
+[1] TRUE
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.null(res))
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric(res))
+[1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric_version(res))
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ordered(res))
+[1] TRUE
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.package_version(res))
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.pairlist(res))
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.qr(res))
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.raw(res))
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.symbol(res))
+[1] TRUE
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.table(res))
+[1] TRUE
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.vector(res))
+[1] TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.stepfun(res))
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ts(res))
+[1] TRUE
+> 
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.array(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.call(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.character(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.complex(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.data.frame(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.double(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.environment(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.expression(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.factor(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.function(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.integer(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.list(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.logical(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.matrix(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.name(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.null(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ordered(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.package_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.pairlist(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.qr(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.raw(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.symbol(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.table(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.vector(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.stepfun(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ts(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> f <- try(as.Date( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.Date( f )))
+> f <- try(as.POSIXct( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXct( f )))
+> f <- try(as.POSIXlt( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXlt( f )))
+> f <- try(as.array( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.array( f )))
+[1] TRUE
+> f <- try(as.call( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.call( f )))
+> f <- try(as.character( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.character( f )))
+[1] TRUE
+> f <- try(as.complex( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.complex( f )))
+[1] TRUE
+> f <- try(as.data.frame( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.data.frame( f )))
+[1] TRUE
+> f <- try(as.difftime( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.difftime( f )))
+> f <- try(as.double( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.double( f )))
+[1] TRUE
+> f <- try(as.environment( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.environment( f )))
+[1] TRUE
+> f <- try(as.expression( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.expression( f )))
+[1] TRUE
+> f <- try(as.factor( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.factor( f )))
+[1] TRUE
+> f <- try(as.function( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.function( f )))
+> f <- try(as.hexmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hexmode( f )))
+[1] TRUE
+> f <- try(as.integer( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.integer( f )))
+[1] TRUE
+> f <- try(as.list( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.list( f )))
+[1] TRUE
+> f <- try(as.logical( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.logical( f )))
+[1] TRUE
+> f <- try(as.matrix( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.matrix( f )))
+[1] TRUE
+> f <- try(as.name( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.name( f )))
+[1] TRUE
+> f <- try(as.null( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.null( f )))
+[1] TRUE
+> f <- try(as.numeric( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric( f )))
+[1] TRUE
+> f <- try(as.numeric_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric_version( f )))
+[1] TRUE
+> f <- try(as.octmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.octmode( f )))
+[1] TRUE
+> f <- try(as.ordered( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ordered( f )))
+[1] TRUE
+> f <- try(as.package_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.package_version( f )))
+> f <- try(as.pairlist( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.pairlist( f )))
+[1] TRUE
+> f <- try(as.qr( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.qr( f )))
+> f <- try(as.raw( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.raw( f )))
+[1] TRUE
+> f <- try(as.single( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.single( f )))
+[1] TRUE
+> f <- try(as.symbol( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.symbol( f )))
+[1] TRUE
+> f <- try(as.table( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.table( f )))
+[1] TRUE
+> f <- try(as.vector( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.vector( f )))
+[1] TRUE
+> f <- try(as.dendrogram( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dendrogram( f )))
+> f <- try(as.dist( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dist( f )))
+[1] TRUE
+> f <- try(as.formula( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.formula( f )))
+> f <- try(as.hclust( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hclust( f )))
+> f <- try(as.stepfun( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.stepfun( f )))
+> f <- try(as.ts( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ts( f )))
+[1] TRUE
+> 
+> ###--------
+>  x <- pi
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.array(res))
+[1] TRUE
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.call(res))
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.character(res))
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.complex(res))
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.data.frame(res))
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.double(res))
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.environment(res))
+[1] TRUE
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.expression(res))
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.factor(res))
+[1] TRUE
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.function(res))
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.integer(res))
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.list(res))
+[1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.logical(res))
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.matrix(res))
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.name(res))
+[1] TRUE
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.null(res))
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric(res))
+[1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+Warning message:
+In lapply(strsplit(x[ok], "[.-]"), as.integer) :
+  NAs introduced by coercion to integer range
+> if(!inherits(res, 'try-error')) report(is.numeric_version(res))
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ordered(res))
+[1] TRUE
+> res <- try(as.package_version( x ), silent = TRUE)
+Warning message:
+In lapply(strsplit(x[ok], "[.-]"), as.integer) :
+  NAs introduced by coercion to integer range
+> if(!inherits(res, 'try-error')) report(is.package_version(res))
+[1] TRUE
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.pairlist(res))
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.qr(res))
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.raw(res))
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.symbol(res))
+[1] TRUE
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.table(res))
+[1] TRUE
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.vector(res))
+[1] TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.stepfun(res))
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ts(res))
+[1] TRUE
+> 
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.array(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.call(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.character(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.complex(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.data.frame(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.double(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.environment(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.expression(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.factor(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.function(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.integer(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.list(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.logical(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.matrix(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.name(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.null(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+Warning message:
+In lapply(strsplit(x[ok], "[.-]"), as.integer) :
+  NAs introduced by coercion to integer range
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ordered(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.package_version( x ), silent = TRUE)
+Warning message:
+In lapply(strsplit(x[ok], "[.-]"), as.integer) :
+  NAs introduced by coercion to integer range
+> if(!inherits(res, 'try-error'))
++    report({if(is.package_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.pairlist(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.qr(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.raw(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.symbol(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.table(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.vector(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.stepfun(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ts(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> f <- try(as.Date( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.Date( f )))
+> f <- try(as.POSIXct( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXct( f )))
+> f <- try(as.POSIXlt( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXlt( f )))
+> f <- try(as.array( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.array( f )))
+[1] TRUE
+> f <- try(as.call( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.call( f )))
+> f <- try(as.character( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.character( f )))
+[1] TRUE
+> f <- try(as.complex( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.complex( f )))
+[1] TRUE
+> f <- try(as.data.frame( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.data.frame( f )))
+[1] TRUE
+> f <- try(as.difftime( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.difftime( f )))
+> f <- try(as.double( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.double( f )))
+[1] TRUE
+> f <- try(as.environment( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.environment( f )))
+[1] TRUE
+> f <- try(as.expression( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.expression( f )))
+[1] TRUE
+> f <- try(as.factor( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.factor( f )))
+[1] TRUE
+> f <- try(as.function( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.function( f )))
+> f <- try(as.hexmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hexmode( f )))
+> f <- try(as.integer( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.integer( f )))
+[1] TRUE
+> f <- try(as.list( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.list( f )))
+[1] TRUE
+> f <- try(as.logical( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.logical( f )))
+[1] TRUE
+> f <- try(as.matrix( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.matrix( f )))
+[1] TRUE
+> f <- try(as.name( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.name( f )))
+[1] TRUE
+> f <- try(as.null( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.null( f )))
+[1] TRUE
+> f <- try(as.numeric( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric( f )))
+[1] TRUE
+> f <- try(as.numeric_version( x ), silent = TRUE)
+Warning message:
+In lapply(strsplit(x[ok], "[.-]"), as.integer) :
+  NAs introduced by coercion to integer range
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric_version( f )))
+[1] TRUE
+> f <- try(as.octmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.octmode( f )))
+> f <- try(as.ordered( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ordered( f )))
+[1] TRUE
+> f <- try(as.package_version( x ), silent = TRUE)
+Warning message:
+In lapply(strsplit(x[ok], "[.-]"), as.integer) :
+  NAs introduced by coercion to integer range
+>   if(!inherits(f, 'try-error')) report(identical(f, as.package_version( f )))
+[1] TRUE
+> f <- try(as.pairlist( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.pairlist( f )))
+[1] TRUE
+> f <- try(as.qr( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.qr( f )))
+> f <- try(as.raw( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.raw( f )))
+[1] TRUE
+> f <- try(as.single( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.single( f )))
+[1] TRUE
+> f <- try(as.symbol( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.symbol( f )))
+[1] TRUE
+> f <- try(as.table( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.table( f )))
+[1] TRUE
+> f <- try(as.vector( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.vector( f )))
+[1] TRUE
+> f <- try(as.dendrogram( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dendrogram( f )))
+> f <- try(as.dist( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dist( f )))
+[1] TRUE
+> f <- try(as.formula( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.formula( f )))
+> f <- try(as.hclust( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hclust( f )))
+> f <- try(as.stepfun( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.stepfun( f )))
+> f <- try(as.ts( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ts( f )))
+[1] TRUE
+> 
+> ###--------
+>  x <- "1.3"
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.array(res))
+[1] TRUE
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.call(res))
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.character(res))
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.complex(res))
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.data.frame(res))
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.double(res))
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.environment(res))
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.expression(res))
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.factor(res))
+[1] TRUE
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.function(res))
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.integer(res))
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.list(res))
+[1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.logical(res))
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.matrix(res))
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.name(res))
+[1] TRUE
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.null(res))
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric(res))
+[1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric_version(res))
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ordered(res))
+[1] TRUE
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.package_version(res))
+[1] TRUE
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.pairlist(res))
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.qr(res))
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.raw(res))
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.symbol(res))
+[1] TRUE
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.table(res))
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.vector(res))
+[1] TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.stepfun(res))
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ts(res))
+[1] TRUE
+> 
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.array(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.call(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.character(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.complex(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.data.frame(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.double(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.environment(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.expression(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.factor(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.function(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.integer(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.list(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.logical(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.matrix(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.name(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.null(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ordered(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.package_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.pairlist(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.qr(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.raw(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.symbol(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.table(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.vector(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.stepfun(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ts(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> f <- try(as.Date( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.Date( f )))
+> f <- try(as.POSIXct( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXct( f )))
+> f <- try(as.POSIXlt( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXlt( f )))
+> f <- try(as.array( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.array( f )))
+[1] TRUE
+> f <- try(as.call( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.call( f )))
+> f <- try(as.character( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.character( f )))
+[1] TRUE
+> f <- try(as.complex( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.complex( f )))
+[1] TRUE
+> f <- try(as.data.frame( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.data.frame( f )))
+[1] TRUE
+> f <- try(as.difftime( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.difftime( f )))
+[1] TRUE
+> f <- try(as.double( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.double( f )))
+[1] TRUE
+> f <- try(as.environment( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.environment( f )))
+> f <- try(as.expression( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.expression( f )))
+[1] TRUE
+> f <- try(as.factor( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.factor( f )))
+[1] TRUE
+> f <- try(as.function( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.function( f )))
+> f <- try(as.hexmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hexmode( f )))
+> f <- try(as.integer( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.integer( f )))
+[1] TRUE
+> f <- try(as.list( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.list( f )))
+[1] TRUE
+> f <- try(as.logical( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.logical( f )))
+[1] TRUE
+> f <- try(as.matrix( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.matrix( f )))
+[1] TRUE
+> f <- try(as.name( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.name( f )))
+[1] TRUE
+> f <- try(as.null( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.null( f )))
+[1] TRUE
+> f <- try(as.numeric( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric( f )))
+[1] TRUE
+> f <- try(as.numeric_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric_version( f )))
+[1] TRUE
+> f <- try(as.octmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.octmode( f )))
+> f <- try(as.ordered( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ordered( f )))
+[1] TRUE
+> f <- try(as.package_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.package_version( f )))
+[1] TRUE
+> f <- try(as.pairlist( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.pairlist( f )))
+[1] TRUE
+> f <- try(as.qr( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.qr( f )))
+> f <- try(as.raw( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.raw( f )))
+[1] TRUE
+> f <- try(as.single( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.single( f )))
+[1] TRUE
+> f <- try(as.symbol( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.symbol( f )))
+[1] TRUE
+> f <- try(as.table( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.table( f )))
+> f <- try(as.vector( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.vector( f )))
+[1] TRUE
+> f <- try(as.dendrogram( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dendrogram( f )))
+> f <- try(as.dist( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dist( f )))
+[1] TRUE
+> f <- try(as.formula( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.formula( f )))
+> f <- try(as.hclust( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hclust( f )))
+> f <- try(as.stepfun( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.stepfun( f )))
+> f <- try(as.ts( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ts( f )))
+[1] TRUE
+> 
+> ###--------
+>  x <- list(a = 1)
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.array(res))
+[1] TRUE
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.call(res))
+[1] TRUE
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.character(res))
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.complex(res))
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.data.frame(res))
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.double(res))
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.environment(res))
+[1] TRUE
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.expression(res))
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.factor(res))
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.function(res))
+[1] TRUE
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.integer(res))
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.list(res))
+[1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.logical(res))
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.matrix(res))
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.name(res))
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.null(res))
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric(res))
+[1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric_version(res))
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ordered(res))
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.package_version(res))
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.pairlist(res))
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.qr(res))
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.raw(res))
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.symbol(res))
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.table(res))
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.vector(res))
+[1] TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.stepfun(res))
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ts(res))
+[1] TRUE
+> 
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.array(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.call(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.character(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.complex(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.data.frame(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.double(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.environment(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.expression(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.factor(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.function(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.integer(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.list(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.logical(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.matrix(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.name(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.null(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ordered(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.package_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.pairlist(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.qr(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.raw( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.raw(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.symbol(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.table(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.vector(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.stepfun(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ts(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> f <- try(as.Date( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.Date( f )))
+> f <- try(as.POSIXct( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXct( f )))
+> f <- try(as.POSIXlt( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXlt( f )))
+> f <- try(as.array( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.array( f )))
+[1] TRUE
+> f <- try(as.call( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.call( f )))
+[1] TRUE
+> f <- try(as.character( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.character( f )))
+[1] TRUE
+> f <- try(as.complex( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.complex( f )))
+[1] TRUE
+> f <- try(as.data.frame( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.data.frame( f )))
+[1] TRUE
+> f <- try(as.difftime( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.difftime( f )))
+> f <- try(as.double( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.double( f )))
+[1] TRUE
+> f <- try(as.environment( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.environment( f )))
+[1] TRUE
+> f <- try(as.expression( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.expression( f )))
+[1] TRUE
+> f <- try(as.factor( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.factor( f )))
+> f <- try(as.function( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.function( f )))
+[1] TRUE
+> f <- try(as.hexmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hexmode( f )))
+> f <- try(as.integer( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.integer( f )))
+[1] TRUE
+> f <- try(as.list( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.list( f )))
+[1] TRUE
+> f <- try(as.logical( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.logical( f )))
+[1] TRUE
+> f <- try(as.matrix( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.matrix( f )))
+[1] TRUE
+> f <- try(as.name( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.name( f )))
+> f <- try(as.null( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.null( f )))
+[1] TRUE
+> f <- try(as.numeric( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric( f )))
+[1] TRUE
+> f <- try(as.numeric_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric_version( f )))
+[1] TRUE
+> f <- try(as.octmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.octmode( f )))
+> f <- try(as.ordered( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ordered( f )))
+> f <- try(as.package_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.package_version( f )))
+> f <- try(as.pairlist( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.pairlist( f )))
+[1] TRUE
+> f <- try(as.qr( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.qr( f )))
+> f <- try(as.raw( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.raw( f )))
+[1] TRUE
+> f <- try(as.single( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.single( f )))
+[1] TRUE
+> f <- try(as.symbol( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.symbol( f )))
+> f <- try(as.table( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.table( f )))
+> f <- try(as.vector( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.vector( f )))
+[1] TRUE
+> f <- try(as.dendrogram( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dendrogram( f )))
+> f <- try(as.dist( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dist( f )))
+[1] TRUE
+> f <- try(as.formula( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.formula( f )))
+> f <- try(as.hclust( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hclust( f )))
+> f <- try(as.stepfun( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.stepfun( f )))
+> f <- try(as.ts( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ts( f )))
+[1] TRUE
+> 
+> ###--------
+>  x <- as.data.frame(character(0))
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.array(res))
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.call(res))
+[1] TRUE
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.character(res))
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.complex(res))
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.data.frame(res))
+[1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.double(res))
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.environment(res))
+[1] TRUE
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.expression(res))
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.factor(res))
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.function(res))
+[1] TRUE
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.integer(res))
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.list(res))
+[1] TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.logical(res))
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.matrix(res))
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.name(res))
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.null(res))
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric(res))
+[1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.numeric_version(res))
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ordered(res))
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.package_version(res))
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.pairlist(res))
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.qr(res))
+> res <- try(as.raw( x ), silent = TRUE)
+Warning message:
+In doTryCatch(return(expr), name, parentenv, handler) :
+  out-of-range values treated as 0 in coercion to raw
+> if(!inherits(res, 'try-error')) report(is.raw(res))
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.symbol(res))
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.table(res))
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.vector(res))
+[1] FALSE
+Error: x is not TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.stepfun(res))
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error')) report(is.ts(res))
+> 
+> res <- try(as.array( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.array(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.call( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.call(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.character( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.character(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.complex( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.complex(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.data.frame( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.data.frame(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] TRUE
+> res <- try(as.double( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.double(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.environment( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.environment(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.expression( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.expression(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.factor( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.factor(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.function( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.function(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.integer( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.integer(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.list( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.list(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+IS: [1] "Attributes: < names for target but not for current >"             
+[2] "Attributes: < Length mismatch: comparison on first 0 components >"
+Error: x are not all TRUE
+> res <- try(as.logical( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.logical(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.matrix( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.matrix(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.name( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.name(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.null( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.null(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.numeric( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.numeric_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.numeric_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.ordered( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ordered(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.package_version( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.package_version(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.pairlist( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.pairlist(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.qr( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.qr(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.raw( x ), silent = TRUE)
+Warning message:
+In doTryCatch(return(expr), name, parentenv, handler) :
+  out-of-range values treated as 0 in coercion to raw
+> if(!inherits(res, 'try-error'))
++    report({if(is.raw(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] TRUE
+> res <- try(as.symbol( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.symbol(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.table( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.table(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.vector( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.vector(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+[1] FALSE
+Error: x is not TRUE
+> res <- try(as.stepfun( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.stepfun(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> res <- try(as.ts( x ), silent = TRUE)
+> if(!inherits(res, 'try-error'))
++    report({if(is.ts(x)) { cat('IS: ');all.equal(x, res, tolerance=0)
++    } else   !isall.equal(x, res)})
+> f <- try(as.Date( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.Date( f )))
+> f <- try(as.POSIXct( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXct( f )))
+> f <- try(as.POSIXlt( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.POSIXlt( f )))
+> f <- try(as.array( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.array( f )))
+> f <- try(as.call( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.call( f )))
+[1] TRUE
+> f <- try(as.character( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.character( f )))
+[1] TRUE
+> f <- try(as.complex( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.complex( f )))
+[1] TRUE
+> f <- try(as.data.frame( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.data.frame( f )))
+[1] TRUE
+> f <- try(as.difftime( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.difftime( f )))
+> f <- try(as.double( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.double( f )))
+[1] TRUE
+> f <- try(as.environment( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.environment( f )))
+[1] TRUE
+> f <- try(as.expression( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.expression( f )))
+[1] TRUE
+> f <- try(as.factor( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.factor( f )))
+> f <- try(as.function( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.function( f )))
+[1] TRUE
+> f <- try(as.hexmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hexmode( f )))
+> f <- try(as.integer( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.integer( f )))
+[1] TRUE
+> f <- try(as.list( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.list( f )))
+[1] TRUE
+> f <- try(as.logical( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.logical( f )))
+[1] TRUE
+> f <- try(as.matrix( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.matrix( f )))
+[1] TRUE
+> f <- try(as.name( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.name( f )))
+> f <- try(as.null( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.null( f )))
+[1] TRUE
+> f <- try(as.numeric( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric( f )))
+[1] TRUE
+> f <- try(as.numeric_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.numeric_version( f )))
+> f <- try(as.octmode( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.octmode( f )))
+> f <- try(as.ordered( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ordered( f )))
+> f <- try(as.package_version( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.package_version( f )))
+> f <- try(as.pairlist( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.pairlist( f )))
+[1] TRUE
+> f <- try(as.qr( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.qr( f )))
+> f <- try(as.raw( x ), silent = TRUE)
+Warning message:
+In doTryCatch(return(expr), name, parentenv, handler) :
+  out-of-range values treated as 0 in coercion to raw
+>   if(!inherits(f, 'try-error')) report(identical(f, as.raw( f )))
+[1] TRUE
+> f <- try(as.single( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.single( f )))
+[1] TRUE
+> f <- try(as.symbol( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.symbol( f )))
+> f <- try(as.table( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.table( f )))
+> f <- try(as.vector( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.vector( f )))
+[1] TRUE
+> f <- try(as.dendrogram( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dendrogram( f )))
+> f <- try(as.dist( x ), silent = TRUE)
+Warning message:
+In as.dist.default(x) : non-square matrix
+>   if(!inherits(f, 'try-error')) report(identical(f, as.dist( f )))
+[1] TRUE
+> f <- try(as.formula( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.formula( f )))
+[1] TRUE
+> f <- try(as.hclust( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.hclust( f )))
+> f <- try(as.stepfun( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.stepfun( f )))
+> f <- try(as.ts( x ), silent = TRUE)
+>   if(!inherits(f, 'try-error')) report(identical(f, as.ts( f )))
+> cat('Time elapsed: ', proc.time() - .proctime00,'\n')
+Time elapsed:  0.142 0.008 0.15 0 0 
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/EmbeddedNuls.csv
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/EmbeddedNuls.csv
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/demos2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/demos2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/demos2.R	(revision 2476)
@@ -0,0 +1,9 @@
+#### Run all demos for which we do not wish to diff the output
+.ptime <- proc.time()
+set.seed(123)
+
+demos <- c("Hershey", "Japanese", "lm.glm", "nlm", "plotmath")
+
+for(nam in  demos) demo(nam, character.only = TRUE)
+
+cat("Time elapsed: ", proc.time() - .ptime, "\n")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/simple-true.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/simple-true.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/simple-true.Rout.save	(revision 2476)
@@ -0,0 +1,302 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ###---- ALL tests here should return  TRUE !
+> ###
+> ###---- "Real" Arithmetic; Numerics etc  -->  ./arith-true.R
+> 
+> ### mode checking, etc.
+> is.recursive(expression(1+3, 2/sqrt(pi)))# fix PR#9
+[1] TRUE
+> 
+> ## sum():
+> all(1:12 == cumsum(rep(1,12)))
+[1] TRUE
+> x <- rnorm(127); sx <- sum(x);	abs((sum(rev(x)) -sx)) < 1e-12 * abs(sx)
+[1] TRUE
+> 
+> ## seq():
+> typeof(1:4) == "integer" #-- fails for 0.2, 0.3,.., 0.9
+[1] TRUE
+> 
+> ## Check parsing with L suffix for integer literals.
+> typeof(1L) == "integer"
+[1] TRUE
+> typeof(1000L) == "integer"
+[1] TRUE
+> typeof(1e3L) == "integer"
+[1] TRUE
+> typeof(1e-3L) == "double" # gives warning
+[1] TRUE
+Warning message:
+non-integer value 1e-3L qualified with L; using numeric value 
+> 1.L # gives warning
+[1] 1
+Warning message:
+integer literal 1.L contains unnecessary decimal point 
+> try(parse(text = "12iL")) # gives syntax error
+Error in parse(text = "12iL") : <text>:1:4: unexpected symbol
+1: 12iL
+       ^
+> 
+> 
+> all((0:6) == pi + ((-pi):pi))
+[1] TRUE
+> all((0:7) == (pi+seq(-pi,pi, length=8))*7/(2*pi))
+[1] TRUE
+> 
+> 1 == as.integer(is.na(c(pi,NA)[2]))
+[1] TRUE
+> 1 == as.integer(is.nan(0/0))
+[1] TRUE
+> 
+> ## rev():
+> cc <- c(1:10,10:1) ;		all(cc == rev(cc))
+[1] TRUE
+> 
+> ## dim[names]():
+> all(names(c(a=pi, b=1, d=1:4)) == c("a","b", paste("d", 1:4, sep="")))
+[1] TRUE
+> ##P names(c(a=pi, b=1, d=1:4))
+> ncb <- dimnames(cbind(a=1, yy=1:3))[[2]]
+> (!is.null(ncb)) && all(ncb == c("a","yy"))
+[1] TRUE
+> 
+> all(cbind(a=1:2, b=1:3, c=1:6) == t(rbind(a=1:2, b=1:3, c=1:6)))
+[1] TRUE
+> ##P rbind(a=1:2, b=1:3, c=1:6)
+> all(dim(cbind(cbind(I=1,x=1:4), c(a=pi))) == 4:3)# fails in S+
+[1] TRUE
+> 
+> a <- b <- 1:3
+> all(dimnames(cbind(a, b))[[2]] == c("a","b"))
+[1] TRUE
+> 
+> ## rbind PR#338
+> all(dim(m <- rbind(1:2, diag(2))) == 3:2)
+[1] TRUE
+> all(m == c(1,1,0, 2,0,1))
+[1] TRUE
+> 
+> ## factor():
+> is.factor(factor(integer()))
+[1] TRUE
+> all(levels(ordered(rev(gl(3,4)))) == 1:3)# coercion to char
+[1] TRUE
+> all(levels(factor(factor(9:1)[3:5])) == 5:7)
+[1] TRUE
+> ## crossing bug PR#40
+> is.factor(ff <- gl(2,3) : gl(3,2)) && length(ff) == 6
+[1] TRUE
+> all(levels(ff) == t(outer(1:2, 1:3, paste, sep=":")))
+[1] TRUE
+> ## from PR#5
+> ll <- c("A","B"); ff <- factor(ll); f0 <- ff[, drop=TRUE]
+> all(f0 == ff) && all(levels(ff) == ll) && is.factor(ff) && is.factor(f0)
+[1] TRUE
+> 
+> ### data.frame s :
+> 
+> ## from lists [bug PR#100]
+> x <- NULL
+> x$x1 <- 1:10
+> x$x2 <- 0:9
+> all(dim(dx <- as.data.frame(x)) == c(10,2))
+[1] TRUE
+> 
+> ## Logicals: (S is wrong)
+> l1 <- c(TRUE,FALSE,TRUE)
+> (! as.logical(as.data.frame(FALSE)[,1]))
+[1] TRUE
+> all(l1 == as.logical(as.data.frame(l1)[,1]))
+[1] TRUE
+> 
+> ## empty data.frames :
+> x <- data.frame(a=1:3)
+> x30 <- {
++     if(is.R()) x[, -1]# not even possible in S+
++     else structure(list(), row.names = paste(1:3), class = "data.frame")
++ }
+> all(dim(x30) == c(3,0))
+[1] TRUE
+> x01 <- x[-(1:3), , drop = FALSE]
+> x00 <- x01[,-1]
+> all(dim(x01) == 0:1)
+[1] TRUE
+> all(dim(x00) == 0)
+[1] TRUE
+> all(dim(x) == dim(rbind(x, x01)))
+[1] TRUE
+> ## bugs up to 1.2.3 :
+> all(dim(x30) == dim(m30 <- as.matrix(x30)))
+[1] TRUE
+> all(dim(x01) == dim(m01 <- as.matrix(x01)))
+[1] TRUE
+> all(dim(x30) == dim(as.data.frame(m30)))
+[1] TRUE
+> all(dim(x01) == dim(as.data.frame(m01)))
+[1] TRUE
+> all(dim(x01) == dim(   data.frame(m01)))
+[1] TRUE
+> all(dim(x30) == dim(   data.frame(m30)))
+[1] TRUE
+> all(dim(x)   == dim(cbind(x, x30)))
+[1] TRUE
+> ## up to 1.4.0 :
+> all(dim(x30) == dim( data.matrix(x30)))
+[1] TRUE
+> all(dim(x00) == dim( data.matrix(x00)))
+[1] TRUE
+> 
+> m0 <- matrix(pi, 0,3)
+> a302 <- array("", dim=c(3,0,2))
+> identical(apply(m0, 1, dim), NULL)
+[1] TRUE
+> identical(apply(m0, 2, dim), NULL)
+[1] TRUE
+> identical(apply(m0, 1,length),  integer(0))
+[1] TRUE
+> identical(apply(m0, 2,length),  integer(3))
+[1] TRUE
+> identical(apply(a302, 1, mode), rep("character",3))
+[1] TRUE
+> ## NO (maybe later?):
+> ## identical(apply(a302, 2, mode), rep("character",0))
+> is.character(aa <- apply(a302, 2, mode)) && length(aa) == 0
+[1] TRUE
+> identical(apply(a302, 3, mode), rep("character",2))
+[1] TRUE
+> identical(apply(a302, 3, length),integer(2))
+[1] TRUE
+> identical(apply(a302, 3, dim), matrix(as.integer(c(3,0)), 2 ,2))
+[1] TRUE
+> identical(apply(a302, 1, dim), matrix(as.integer(c(0,2)), 2 ,3))
+[1] TRUE
+> identical(apply(array(dim=3), 1,length), rep(1:1, 3))
+[1] TRUE
+> identical(apply(array(dim=0), 1,length), rep(1:1, 0))# = integer(0)
+[1] TRUE
+> 
+> 
+> ### Subsetting
+> 
+> ## bug PR#425
+> x <- matrix(1:4, 2, 2, dimnames=list(c("abc","ab"), c("cde","cd")))
+> y <- as.data.frame(x)
+> all(x["ab",] == c(2,4))
+[1] TRUE
+> all(y["ab",] == c(2,4))
+[1] TRUE
+> 
+> ## from bug PR#447
+> x <- 1:2 ; x[c("2","2")] <- 4
+> all.equal(x, c(1:2, "2" = 4))
+[1] TRUE
+> 
+> ## stretching
+> l2 <- list(a=1, b=2)
+> l2["cc"] <- pi
+> l2[["d"]] <- 4
+> l2 $ e <- 55
+> all.equal(l2, list(a = 1, b = 2, cc = pi, d = 4, e = 55), tolerance = 0)
+[1] TRUE
+> all.equal(l2["d"], list(d = 4))
+[1] TRUE
+> l2$d == 4 && l2$d == l2[["d"]]
+[1] TRUE
+> 
+> ## bug in R <= 1.1
+> f1 <- y1 ~ x1
+> f2 <- y2 ~ x2
+> f2[2] <- f1[2]
+> deparse(f2) == "y1 ~ x2"
+[1] TRUE
+> 
+> m <- cbind(a=1:2,b=c(R=10,S=11))
+> all(sapply(dimnames(m), length) == c(2,2))
+[1] TRUE
+> ## [[ for matrix:
+> m[[1,2]] == m[[3]] && m[[3]] == m[3] && m[3] == m[1,2]
+[1] TRUE
+> 
+> ## bug in R <= 1.1.1 : unclass(*) didn't drop the class!
+> ## to be robust to S4 methods DON'T test for null class
+> ## The test for attr(,"class") is valid, if essentially useless
+> d1 <- rbind(data.frame(a=1, b = I(TRUE)), new = c(7, "N"))
+> is.null(attr(unclass(d1$b), "class"))
+[1] TRUE
+> 
+> ## bugs in R 1.2.0
+> format(as.POSIXct(relR120 <- "2000-12-15 11:24:40")) == relR120
+[1] TRUE
+> format(as.POSIXct(substr(relR120,1,10))) == substr(relR120,1,10)
+[1] TRUE
+> 
+> ## rank() with NAs (and ties)
+> x <- c(3:1,6,4,3,NA,5,0,NA)
+> rx <-  rank(x)
+> all(rx == c(4.5, 3:2, 8, 6, 4.5, 9, 7, 1, 10))
+[1] TRUE
+> rxK <- rank(x, na.last = "keep")
+> all(rx [rx <= 8]    == na.omit(rxK))
+[1] TRUE
+> all(rank(x, na.last = NA) == na.omit(rxK))
+[1] TRUE
+> 
+> ## as.list.function() instead of *.default():
+> identical(as.list(as.list),
++ 	  alist(x = , ... = , UseMethod("as.list")))
+[1] TRUE
+> 
+> ## startsWith() / endsWith()  assertions
+> t1 <- c("Foobar", "bla bla", "something", "another", "blu", "brown",
++         "blau blüht der Enzian")# non-ASCII
+> t2 <- c("some text", "any text")
+> t3 <- c("Martin", "Zürich", "Mächler")
+> 
+> all(endsWith(t1, "")); all(startsWith(t1, ""))
+[1] TRUE
+[1] TRUE
+> all(endsWith(t2, "")); all(startsWith(t2, ""))
+[1] TRUE
+[1] TRUE
+> all(endsWith(t3, "")); all(startsWith(t3, ""))
+[1] TRUE
+[1] TRUE
+> all(endsWith(t2, "text"))
+[1] TRUE
+> all(endsWith(t2, " text"))
+[1] TRUE
+> identical(startsWith(t1, "b" ), c(FALSE, TRUE, FALSE, FALSE, TRUE,  TRUE, TRUE))
+[1] TRUE
+> identical(startsWith(t1, "bl"), c(FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE))
+[1] TRUE
+> identical(startsWith(t1, "bla"),c(FALSE, TRUE, FALSE, FALSE,FALSE, FALSE, TRUE))
+[1] TRUE
+> identical(  endsWith(t1, "n"),  c(FALSE,FALSE, FALSE, FALSE,FALSE,  TRUE, TRUE))
+[1] TRUE
+> identical(  endsWith(t1, "an"), c(FALSE,FALSE, FALSE, FALSE,FALSE, FALSE, TRUE))
+[1] TRUE
+> ##
+> identical(startsWith(t3, "M" ), c( TRUE, FALSE, TRUE))
+[1] TRUE
+> identical(startsWith(t3, "Ma"), c( TRUE, FALSE, FALSE))
+[1] TRUE
+> identical(startsWith(t3, "Mä"), c(FALSE, FALSE, TRUE))
+[1] TRUE
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/print-tests.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/print-tests.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/print-tests.R	(revision 2476)
@@ -0,0 +1,261 @@
+#### Testing print(), format()	and the like --- mainly with numeric()
+####
+#### to be run as
+####
+####	R < print-tests.R  >&  print-tests.out-__version__
+####			   == (csh)
+opt.conformance <- 0
+
+DIG <- function(d)
+    if(missing(d)) getOption("digits") else options(digits=as.integer(d))
+
+DIG(7)#-- the default; just to make sure ...
+options(width = 200)
+
+n1 <- 2^(4*1:7)
+i1 <- as.integer(n1)
+
+v1 <- 2^c(-12, 2*(-4:-2),3,6,9)
+v2 <- v1^(63/64)
+## avoid ending in `5' as printing then depends on rounding of
+## the run-time (and not all round to even).
+v1[1:4] <-c(2.44140624e-04, 3.90624e-03, 1.5624e-02, 6.24e-02)
+
+
+v3 <- pi*100^(-1:3)
+v4 <- (0:2)/1000 + 1e-10 #-- tougher one
+
+digs1 <- c(1,2*(1:5),11:15)		# 16: platform dependent
+					# 30 gives ERROR : options(digits=30)
+digs2 <- c(1:20)#,30) gives 'error' in R: ``print.default(): invalid digits..''
+
+all(i1 == n1)# TRUE
+i1# prints nicely
+n1# did not; does now (same as 'i1')
+
+round (v3, 3)#S+ & R 0.49:
+##[1]	0.031	    3.142     314.159	 31415.927 3141592.654
+signif(v3, 3)
+##R.49: [1] 0.0314	3.1400	   314.0000   31400.0000 3140000.0000
+##S+	[1] 3.14e-02 3.14e+00 3.14e+02 3.14e+04 3.14e+06
+
+###----------------------------------------------------------------
+##- Date: Tue, 20 May 97 17:11:18 +0200
+
+##- From: Martin Maechler <maechler@stat.math.ethz.ch>
+##- To: R-devel@stat.math.ethz.ch
+##- Subject: R-alpha: print 'problems': print(2^30, digits=12); comments at start of function()
+##-
+##- Both of these bugs are not a real harm,
+##- however, they have been annoying me for too long ... ;-)
+##-
+##- 1)
+print  (2^30, digits = 12) #-  WAS exponential form, unnecessarily -- now ok
+formatC(2^30, digits = 12) #- shows you what you'd want above
+
+## S and R are now the same here;  note that the problem also affects
+##	paste(.)  & format(.) :
+
+DIG(10); paste(n1); DIG(7)
+
+
+## Assignment to .Options$digits: Does NOT work for  print() nor cat()
+for(i in digs1) { .Options$digits <- i; cat(i,":"); print (v1[-1]) }
+
+## using options()  *does* things
+for(i in digs1) { DIG(i); cat(i,":"); print (v3) }
+for(i in digs1) { DIG(i); cat(i,":", formatC(v3, digits=i, width=8),"\n") }
+
+
+## R-0.50: switches to NON-exp at 14, but should only at 15...
+## R-0.61++: doesn' switch at all (or at 20 only)
+## S-plus: does not switch at all..
+for(i in digs1) { cat(i,":");  print(v1, digits=i) }
+
+## R 0.50-a1: switches at 10 inst. 11
+for(i in digs1) { cat(i,":");  print(v1[-1], digits=i) }
+
+for(i in digs1) { DIG(i); cat(i,":", formatC(v2, digits=i, width=8),"\n") }
+
+for(i in digs1) { cat(i,":");  print(v2, digits=i) } #-- exponential all thru
+##	 ^^^^^ digs2 (>= 18: PLATFORM dependent !!
+for(i in digs1) { cat(i,":", formatC(v2, digits=i, width=8),"\n") }
+
+DIG(7)#-- the default; just to make sure ...
+
+N1 <- 10; N2 <- 7; n <- 8
+x <- 0:N1
+Mhyp <- rbind(phyper(x, N1, N2, n), dhyper(x, N1, N2, n))
+Mhyp
+##-	 [,1]	      [,2]	 [,3]	  [,4]	    [,5]      [,6]	[,7]
+##- [1,]    0 0.0004113534 0.01336898 0.117030 0.4193747 0.7821884 0.9635952
+##- [2,]    0 0.0004113534 0.01295763 0.103661 0.3023447 0.3628137 0.1814068
+##-	       [,8]	  [,9] [,10] [,11]
+##- [1,] 0.99814891 1.00000000	   1	 1
+##- [2,] 0.03455368 0.00185109	   0	 0
+
+m11 <- c(-1,1)
+Mm <- pi*outer(m11, 10^(-5:5))
+Mm <- cbind(Mm, outer(m11, 10^-(5:1)))
+Mm
+do.p <- TRUE
+do.p <- FALSE
+for(di in 1:10) {
+    options(digits=di)
+    cat(if(do.p)"\n",formatC(di,w=2),":", format.info(Mm),"\n")
+    if(do.p)print(Mm)
+}
+##-- R-0.49 (4/1997)	 R-0.50-a1 (7.7.97)
+##-  1 : 13 5 0		 1 :  6 0 1
+##-  2 :  8 1 1	=	 2 :  8 1 1
+##-  3 :  9 2 1	=	 3 :  9 2 1
+##-  4 : 10 3 1	=	 4 : 10 3 1
+##-  5 : 11 4 1	=	 5 : 11 4 1
+##-  6 : 12 5 1	=	 6 : 12 5 1
+##-  7 : 13 6 1	=	 7 : 13 6 1
+##-  8 : 14 7 1	=	 8 : 14 7 1
+##-  9 : 15 8 1	=	 9 : 15 8 1
+##- 10 : 16 9 1	=	10 : 16 9 1
+nonFin <- list(c(Inf,-Inf), c(NaN,NA), NA_real_, Inf)
+mm <- sapply(nonFin, format.info)
+fm <- lapply(nonFin, format)
+w <- c(4,3,2,3)
+stopifnot(sapply(lapply(fm, nchar), max) == w,
+	  mm == rbind(w, 0, 0))# m[2,] was 2147483647; m[3,] was 1
+cnF <- c(lapply(nonFin, function(x) complex(re=x, im=x))[-3],
+         complex(re=NaN, im=-Inf))
+cmm <- sapply(cnF, format.info)
+cfm <- lapply(cnF, format)
+cw <- sapply(lapply(cfm, nchar), max)
+stopifnot(cw == cmm[1,]+1 +cmm[4,]+1,
+	  nchar(format(c(NA, 1 + 2i))) == 4)# wrongly was (5,4)
+
+
+##-- Ok now, everywhere
+for(d in 1:9) {cat(d,":"); print(v4, digits=d) }
+DIG(7)
+
+
+###------------ Very big and very small
+umach <- unlist(.Machine)[paste("double.x", c("min","max"), sep='')]
+xmin <- umach[1]
+xmax <- umach[2]
+tx <- unique(c(outer(-1:1,c(.1,1e-3,1e-7))))# 7 values  (out of 9)
+tx <- unique(sort(c(outer(umach,1+tx))))# 11 values (+ 1 Inf)
+length(tx <- tx[is.finite(tx)]) # 11
+(txp <- tx[tx >= 1])#-- Positive exponent -- 4 values
+(txn <- tx[tx <	 1])#-- Negative exponent -- 7 values
+
+x2 <- c(0.099999994, 0.2)
+x2 # digits=7: show all seven "9"s
+print(x2, digits=6) # 0.1 0.2 , not 0.10 0.20
+v <- 6:8; names(v) <- v; sapply(v, format.info, x=x2)
+
+(z <- sort(c(outer(range(txn), 8^c(0,2:3)))))
+outer(z, 0:6, signif) # had NaN's till 1.1.1
+
+olddig <- options(digits=14) # RH6.0 fails at 15
+z <- 1.234567891234567e27
+for(dig in 1:14) cat(formatC(dig,w=2),
+                     format(z, digits=dig), signif(z, digits=dig), "\n")
+options(olddig)
+# The following are tests of printf inside formatC
+##------ Use  Emacs screen width 134 ;	Courier 12 ----
+# cat("dig|  formatC(txp, d=dig)\n")
+# for(dig in 1:17)# about >= 18 is platform dependent [libc's printf()..].
+#     cat(formatC(dig,w=2), formatC(txp,		      dig=dig, wid=-29),"\n")
+# cat("signif() behavior\n~~~~~~~~\n",
+#     "dig|  formatC(signif(txp, dig=dig), dig = dig\n")
+# for(dig in 1:15)#
+#     cat(formatC(dig,w=2), formatC(signif(txp, d=dig), dig=dig, wid=-26),"\n")
+
+# if(opt.conformance >= 1) {
+#     noquote(cbind(formatC(txp, dig = 22)))
+# }
+
+# cat("dig|  formatC(signif(txn, d = dig), dig=dig\n")
+# for(dig in 1:15)#
+#     cat(formatC(dig,w=2), formatC(signif(txn, d=dig), dig=dig, wid=-20),"\n")
+
+# ##-- Testing  'print' / digits :
+# for(dig in 1:13) { ## 12:13: libc-2.0.7 diff; 14:18 --- PLATFORM-dependent !!!
+#     cat("dig=",formatC(dig,w=2),": "); print(signif(txp, d=dig),dig=dig+1)
+# }
+
+##-- Wrong alignment when printing character matrices with  quote = FALSE
+m1 <- matrix(letters[1:24],6,4)
+m1
+noquote(m1)
+
+##--- Complex matrices and named vectors :
+
+x0 <- x <- c(1+1i, 1.2 + 10i)
+names(x) <- c("a","b")
+x
+(xx <-	rbind(x,  2*x))
+	rbind(x0, 2*x0)
+x[4:6] <- c(Inf,Inf*c(-1,1i))
+x  + pi
+matrix(x + pi, 2)
+matrix(x + 1i*pi, 3)
+xx + pi
+t(cbind(xx, xx+ 1i*c(1,pi)))
+
+#--- format checks after incorrect changes in Nov 2000
+zz <- data.frame("(row names)" = c("aaaaa", "b"), check.names = FALSE)
+format(zz)
+format(zz, justify = "left")
+zz <- data.frame(a = I("abc"), b = I("def\"gh"))
+format(zz)
+# " (font-locking: closing the string above)
+
+# test format.data.frame on former AsIs's.
+set.seed(321)
+dd <- data.frame(x = 1:5, y = rnorm(5), z = c(1, 2, NA, 4, 5))
+model <- glm(y ~ x, data = dd, subset = 1:4, na.action = na.omit)
+expand.model.frame(model, "z", na.expand = FALSE)
+expand.model.frame(model, "z", na.expand = TRUE)
+
+## print.table() changes affecting summary.data.frame
+options(width=82)
+summary(attenu) # ``one line''
+lst <- levels(attenu$station)
+levels(attenu$station)[lst == "117"] <- paste(rep(letters,3),collapse="")
+summary(attenu) # {2 + one long + 2 } variables
+## in 1.7.0, things were split to more lines
+
+## format.default(*, nsmall > 0)  -- for real and complex
+
+sf <- function(x, N=14) sapply(0:N, function(i) format(x,nsmall=i))
+sf(2)
+sf(3.141)
+sf(-1.25, 20)
+
+oDig <- options(digits= 3)
+sf(pi)
+sf(1.2e7)
+sf(1.23e7)
+s <- -0.01234
+sf(s)
+
+sf(pi + 2.2i)
+sf(s + pi*1i)
+
+options(oDig)
+
+e1 <- tryCatch(options(max.print=Inf), error=function(e)e)
+e2 <- tryCatch(options(max.print= 0),  error=function(e)e)
+stopifnot(inherits(e1, "error"))
+
+
+## Printing of "Date"s
+options(width = 80)
+op <- options(max.print = 500)
+dd <- as.Date("2012-03-12") + -10000:100
+writeLines(t1 <- tail(capture.output(dd)))
+l6 <- length(capture.output(print(dd, max = 600)))
+options(op)
+t2 <- tail(capture.output(print(dd, max = 500)))
+stopifnot(identical(t1, t2), l6 == 121)
+## not quite consistent in R <= 2.14.x
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/utf8-regex.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/utf8-regex.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/utf8-regex.R	(revision 2476)
@@ -0,0 +1,177 @@
+## This can only be done in a locale that extends Latin-1
+(inf <- l10n_info())
+if(!(inf$`UTF-8` || inf$`Latin-1`)) {
+    warning("this test must be done in a Latin-1 or UTF-8 locale")
+    q()
+}
+
+inp <- readLines(n = 2)
+�Latin-1 accented chars�: �� �� �<� �<� � ��
+��
+
+inp
+(txt <- iconv(inp[1], "latin1", ""))
+(pat <- iconv(inp[2], "latin1", ""))
+if(any(is.na(c(txt, pat)))) {
+    ## backup test
+    warning("this test must be done in a Latin-1 or UTF-8 locale")
+    q()
+}
+
+testit <- function(x) {print(x); stopifnot(identical(x, 1L))}
+testit(grep(pat, txt))
+testit(grep(pat, txt, ignore.case = TRUE))
+testit(grep(pat, txt, useBytes = TRUE))
+testit(grep(pat, txt, ignore.case = TRUE, useBytes = TRUE))
+testit(grep(pat, txt, fixed = TRUE))
+testit(grep(pat, txt, fixed = TRUE, useBytes = TRUE))
+testit(grep(pat, txt, perl = TRUE))
+testit(grep(pat, txt, ignore.case = TRUE, perl = TRUE))
+testit(grep(pat, txt, perl = TRUE, useBytes = TRUE))
+testit(grep(pat, txt, ignore.case = TRUE, perl = TRUE, useBytes = TRUE))
+testit(grep(toupper(pat), txt, ignore.case = TRUE))
+testit(grep(toupper(pat), txt, ignore.case = TRUE, perl = TRUE))
+## matches in Latin-1 but not in UTF-8
+grep(toupper(pat), txt, ignore.case = TRUE, perl = TRUE, useBytes = TRUE)
+
+(r1 <- regexpr("en", txt, fixed=TRUE))
+(r2 <- regexpr("en", txt, fixed=TRUE, useBytes=TRUE))
+stopifnot(identical(r1, regexpr("en", txt)))
+stopifnot(identical(r2, regexpr("en", txt, useBytes = TRUE)))
+stopifnot(identical(r1, regexpr("en", txt, perl=TRUE)))
+stopifnot(identical(r2, regexpr("en", txt, perl=TRUE, useBytes=TRUE)))
+stopifnot(identical(r1, regexpr("EN", txt, ignore.case=TRUE)))
+stopifnot(identical(r2, regexpr("EN", txt, ignore.case=TRUE, useBytes=TRUE)))
+stopifnot(identical(r1, regexpr("EN", txt, ignore.case=TRUE, perl=TRUE)))
+stopifnot(identical(r2, regexpr("EN", txt, ignore.case=TRUE, perl=TRUE,
+                                useBytes=TRUE)))
+
+(r1 <- regexpr(pat, txt, fixed=TRUE))
+(r2 <- regexpr(pat, txt, fixed=TRUE, useBytes=TRUE))
+stopifnot(identical(r1, regexpr(pat, txt)))
+stopifnot(identical(r2, regexpr(pat, txt, useBytes=TRUE)))
+stopifnot(identical(r1, regexpr(pat, txt, perl=TRUE)))
+stopifnot(identical(r2, regexpr(pat, txt, perl=TRUE, useBytes=TRUE)))
+stopifnot(identical(r1, regexpr(pat, txt, ignore.case=TRUE)))
+stopifnot(identical(r2, regexpr(pat, txt, ignore.case=TRUE, useBytes=TRUE)))
+stopifnot(identical(r1, regexpr(pat, txt, ignore.case=TRUE, perl=TRUE)))
+stopifnot(identical(r2, regexpr(pat, txt, ignore.case=TRUE, perl=TRUE,
+                                useBytes=TRUE)))
+pat2 <- toupper(pat)
+stopifnot(identical(r1, regexpr(pat2, txt, ignore.case=TRUE)))
+stopifnot(identical(r1, regexpr(pat2, txt, ignore.case=TRUE, perl=TRUE)))
+## will not match in a UTF-8 locale
+regexpr(pat2, txt, ignore.case=TRUE, perl=TRUE, useBytes=TRUE)
+
+
+(r1 <- gregexpr(pat, txt, fixed=TRUE))
+(r2 <- gregexpr(pat, txt, fixed=TRUE, useBytes=TRUE))
+stopifnot(identical(r1, gregexpr(pat, txt)))
+stopifnot(identical(r2, gregexpr(pat, txt, useBytes=TRUE)))
+stopifnot(identical(r1, gregexpr(pat, txt, perl=TRUE)))
+stopifnot(identical(r2, gregexpr(pat, txt, perl=TRUE, useBytes=TRUE)))
+stopifnot(identical(r1, gregexpr(pat, txt, ignore.case=TRUE)))
+stopifnot(identical(r2, gregexpr(pat, txt, ignore.case=TRUE, useByte=TRUE)))
+stopifnot(identical(r1, gregexpr(pat, txt, ignore.case=TRUE, perl=TRUE)))
+stopifnot(identical(r2, gregexpr(pat, txt, ignore.case=TRUE, perl=TRUE,
+                                 useBytes=TRUE)))
+
+txt2 <- c("The", "licenses", "for", "most", "software", "are",
+  "designed", "to", "take", "away", "your", "freedom",
+  "to", "share", "and", "change", "it.",
+   "", "By", "contrast,", "the", "GNU", "General", "Public", "License",
+   "is", "intended", "to", "guarantee", "your", "freedom", "to",
+   "share", "and", "change", "free", "software", "--",
+   "to", "make", "sure", "the", "software", "is",
+   "free", "for", "all", "its", "users")
+( i <- grep("[gu]", txt2, perl = TRUE) )
+stopifnot(identical(i, grep("[gu]", txt2)))
+## results depend on the locale
+(ot <- sub("[b-e]",".", txt2, perl = TRUE))
+txt2[ot != sub("[b-e]",".", txt2)]
+(ot <- sub("[b-e]",".", txt2, ignore.case = TRUE, perl = TRUE))
+txt2[ot != sub("[b-e]",".", txt2, ignore.case = TRUE)]
+
+
+## These may end up with different encodings: == copes, identical does not
+
+eq <- function(a, b) a == b
+(r1 <- gsub(pat, "ef", txt))
+stopifnot(eq(r1, gsub(pat, "ef", txt, useBytes = TRUE)))
+stopifnot(eq(r1, gsub(pat, "ef", txt, fixed = TRUE)))
+stopifnot(eq(r1, gsub(pat, "ef", txt, fixed = TRUE, useBytes = TRUE)))
+stopifnot(eq(r1, gsub(pat, "ef", txt, perl = TRUE)))
+stopifnot(eq(r1, gsub(pat, "ef", txt, perl = TRUE, useBytes = TRUE)))
+
+pat <- substr(pat, 1, 1)
+(r1 <- gsub(pat, "gh", txt))
+stopifnot(eq(r1, gsub(pat, "gh", txt, useBytes = TRUE)))
+stopifnot(eq(r1, gsub(pat, "gh", txt, fixed = TRUE)))
+stopifnot(eq(r1, gsub(pat, "gh", txt, fixed = TRUE, useBytes = TRUE)))
+stopifnot(eq(r1, gsub(pat, "gh", txt, perl = TRUE)))
+stopifnot(eq(r1, gsub(pat, "gh", txt, perl = TRUE, useBytes = TRUE)))
+
+
+stopifnot(identical(gsub("a*", "x", "baaac"), "xbxcx"))
+stopifnot(identical(gsub("a*", "x", "baaac"), "xbxcx"), perl = TRUE)
+stopifnot(identical(gsub("a*", "x", "baaac"), "xbxcx"), useBytes = TRUE)
+stopifnot(identical(gsub("a*", "x", "baaac"), "xbxcx"), perl = TRUE, useBytes = TRUE)
+
+## this one seems system-dependent
+(x <- gsub("\\b", "|", "The quick brown \ue8\ue9", perl = TRUE))
+# stopifnot(identical(x, "|The| |quick| |brown| |\ue8\ue9|"))
+(x <- gsub("\\b", "|", "The quick brown fox", perl = TRUE))
+stopifnot(identical(x, "|The| |quick| |brown| |fox|"))
+## The following is warned against in the help page, but worked in some versions
+gsub("\\b", "|", "The quick brown fox")
+
+(z <- strsplit(txt, pat)[[1]])
+stopifnot(eq(z, strsplit(txt, pat, useBytes = TRUE)[[1]]))
+stopifnot(eq(z, strsplit(txt, pat, fixed = TRUE)[[1]]))
+stopifnot(eq(z, strsplit(txt, pat, fixed = TRUE, useBytes = TRUE)[[1]]))
+stopifnot(eq(z, strsplit(txt, pat, perl = TRUE)[[1]]))
+stopifnot(eq(z, strsplit(txt, pat, perl = TRUE, useBytes = TRUE)[[1]]))
+
+(z <- strsplit(txt, "[a-c]")[[1]])
+stopifnot(eq(z, strsplit(txt, "[a-c]", useBytes = TRUE)[[1]]))
+stopifnot(eq(z, strsplit(txt, "[a-c]", perl = TRUE)[[1]]))
+stopifnot(eq(z, strsplit(txt, "[a-c]", perl = TRUE, useBytes = TRUE)[[1]]))
+
+## from strsplit.Rd
+z <- strsplit("A text I want to display with spaces", NULL)[[1]]
+stopifnot(identical(z,
+                    strsplit("A text I want to display with spaces", "")[[1]]))
+
+x <- c(as = "asfef", qu = "qwerty", "yuiop[", "b", "stuff.blah.yech")
+(z <- strsplit(x, "e"))
+stopifnot(identical(z, strsplit(x, "e", useBytes = TRUE)))
+stopifnot(identical(z, strsplit(x, "e", fixed = TRUE)))
+stopifnot(identical(z, strsplit(x, "e", fixed = TRUE, useBytes = TRUE)))
+stopifnot(identical(z, strsplit(x, "e", perl = TRUE)))
+stopifnot(identical(z, strsplit(x, "e", perl = TRUE, useBytes = TRUE)))
+
+## moved from reg-tests-1b.R.
+## fails to match on Cygwin, Mar 2011
+## regexpr(fixed = TRUE) with a single-byte pattern matching to a MBCS string
+x <- iconv("fa\xE7ile a ", "latin1", "UTF-8")
+stopifnot(identical(regexpr(" ", x), regexpr(" ", x, fixed=TRUE)))
+# fixed=TRUE reported match position in bytes in R <= 2.10.0
+stopifnot(identical(regexpr(" a", x), regexpr(" a", x, fixed=TRUE)))
+## always worked.
+
+## this broke and segfaulted in 2.13.1 and earlier (PR#14627)
+x <- paste(rep("a ", 600), collapse="")
+testit(agrep(x, x))
+testit(agrep(x, x, max.distance=0.5))
+
+## this is used in QC to check dependencies and was broken intermittently by TRE changes
+stopifnot(isTRUE(grepl('^[[:space:]]*(R|[[:alpha:]][[:alnum:].]*[[:alnum:]])([[:space:]]*\\(([^) ]+)[[:space:]]+([^) ]+)\\))?[[:space:]]*$', ' R (>= 2.13.0) ')))
+
+## Bad sub() and gsub() with some regexprs PR#16009
+x <- c(NA, "  abc", "a b c    ", "a  b c")
+(y <- gsub("\\s{2,}", " ", x))
+stopifnot(y[-1] == c(" abc", "a b c ", "a b c"))
+x <- c("\ue4", "  abc", "a b c    ", "a  b c")
+(y <- gsub("\\s{2,}", " ", x))
+stopifnot(y == c(x[1], " abc", "a b c ", "a b c"))
+## results were c(x[1], " ", " ", " ") in both cases in R 3.1.1
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/iec60559.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/iec60559.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/iec60559.Rout.save	(revision 2476)
@@ -0,0 +1,60 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ## Tests for various features of IEC60559 doubles.
+> ## Most of these are optional, so this is a sloppy test.
+> 
+> # Goes to denormal (aka subnormal) numbers at -708.4
+> exp(c(-745:-740, -730, -720, -710:-705))
+ [1] 4.940656e-324 9.881313e-324 1.976263e-323 5.434722e-323 1.531604e-322
+ [6] 4.199558e-322 9.226315e-318 2.032231e-313 4.476286e-309 1.216781e-308
+[11] 3.307553e-308 8.990861e-308 2.443969e-307 6.643398e-307
+> 
+> # goes to subnormal numbers at -308, to zero at ca 5e-324.
+> 10^-(324:307)
+ [1]  0.000000e+00 9.881313e-324 9.881313e-323 9.980126e-322 9.999889e-321
+ [6] 9.999889e-320 9.999987e-319 1.000000e-317 1.000000e-316 1.000000e-315
+[11] 1.000000e-314 1.000000e-313 1.000000e-312 1.000000e-311 1.000000e-310
+[16] 1.000000e-309 1.000000e-308 1.000000e-307
+> 2^-(1022:1075)
+ [1] 2.225074e-308 1.112537e-308 5.562685e-309 2.781342e-309 1.390671e-309
+ [6] 6.953356e-310 3.476678e-310 1.738339e-310 8.691695e-311 4.345847e-311
+[11] 2.172924e-311 1.086462e-311 5.432309e-312 2.716155e-312 1.358077e-312
+[16] 6.790387e-313 3.395193e-313 1.697597e-313 8.487983e-314 4.243992e-314
+[21] 2.121996e-314 1.060998e-314 5.304989e-315 2.652495e-315 1.326247e-315
+[26] 6.631237e-316 3.315618e-316 1.657809e-316 8.289046e-317 4.144523e-317
+[31] 2.072262e-317 1.036131e-317 5.180654e-318 2.590327e-318 1.295163e-318
+[36] 6.475817e-319 3.237909e-319 1.618954e-319 8.094772e-320 4.047386e-320
+[41] 2.023693e-320 1.011846e-320 5.059232e-321 2.529616e-321 1.264808e-321
+[46] 6.324040e-322 3.162020e-322 1.581010e-322 7.905050e-323 3.952525e-323
+[51] 1.976263e-323 9.881313e-324 4.940656e-324  0.000000e+00
+> 
+> # And because most libm pow() functions special-case integer powers.
+> 10^-(324:307-0.01)/10^0.01
+ [1]  0.000000e+00 9.881313e-324 1.037538e-322 9.980126e-322 9.999889e-321
+ [6] 1.000038e-319 9.999987e-319 9.999997e-318 1.000000e-316 1.000000e-315
+[11] 1.000000e-314 1.000000e-313 1.000000e-312 1.000000e-311 1.000000e-310
+[16] 1.000000e-309 1.000000e-308 1.000000e-307
+> 
+> # IEC60559 mandates this, but C99/C11 do not.
+> # Mingw-w64 did not do so in v 2.0.1
+> x <- 0*(-1) # negative zero
+> sqrt(x)
+[1] 0
+> identical(x, sqrt(x))
+[1] TRUE
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arima.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arima.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot.pdf.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot.pdf.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot.pdf.save	(revision 2476)
@@ -0,0 +1,5553 @@
+%PDF-1.4
+%���ρ�\r
+1 0 obj
+<<
+/CreationDate (D:20130601183129)
+/ModDate (D:20130601183129)
+/Title (R Graphics Output)
+/Producer (R 3.1.0)
+/Creator (R)
+>>
+endobj
+2 0 obj
+<< /Type /Catalog /Pages 3 0 R >>
+endobj
+7 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 8 0 R /Resources 4 0 R >>
+endobj
+8 0 obj
+<<
+/Length 9 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 432.38 302.24 Tm (l) Tj 0 Tr
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 119.08 m 627.34 119.08 l S
+243.34 119.08 m 243.34 111.88 l S
+339.34 119.08 m 339.34 111.88 l S
+435.34 119.08 m 435.34 111.88 l S
+531.34 119.08 m 531.34 111.88 l S
+627.34 119.08 m 627.34 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 235.00 93.16 Tm (0.6) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 331.00 93.16 Tm (0.8) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 427.00 93.16 Tm (1.0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 523.00 93.16 Tm (1.2) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 619.00 93.16 Tm (1.4) Tj
+ET
+227.98 132.84 m 227.98 476.84 l S
+227.98 132.84 m 220.78 132.84 l S
+227.98 218.84 m 220.78 218.84 l S
+227.98 304.84 m 220.78 304.84 l S
+227.98 390.84 m 220.78 390.84 l S
+227.98 476.84 m 220.78 476.84 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 120.99 Tm (-1.0) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 206.99 Tm (-0.5) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 296.50 Tm (0.0) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 382.50 Tm (0.5) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 468.50 Tm (1.0) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 420.85 64.36 Tm [(Inde) 30 (x)] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 301.50 Tm (0) Tj
+ET
+Q
+endstream
+endobj
+9 0 obj
+1630
+endobj
+10 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 11 0 R /Resources 4 0 R >>
+endobj
+11 0 obj
+<<
+/Length 12 0 R
+>>
+stream
+1 J 1 j q
+Q q 249.58 119.08 371.52 371.52 re W n
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+271.44 119.08 m 599.25 119.08 l S
+271.44 119.08 m 271.44 111.88 l S
+380.71 119.08 m 380.71 111.88 l S
+489.98 119.08 m 489.98 111.88 l S
+599.25 119.08 m 599.25 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 268.10 93.16 Tm (0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 377.37 93.16 Tm (5) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 483.31 93.16 Tm (10) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 592.58 93.16 Tm (15) Tj
+ET
+249.58 140.93 m 249.58 468.74 l S
+249.58 140.93 m 242.38 140.93 l S
+249.58 250.20 m 242.38 250.20 l S
+249.58 359.47 m 242.38 359.47 l S
+249.58 468.74 m 242.38 468.74 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 232.30 137.60 Tm (0) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 232.30 246.87 Tm (5) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 232.30 352.80 Tm (10) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 232.30 462.07 Tm (15) Tj
+ET
+249.58 119.08 m
+621.10 119.08 l
+621.10 490.60 l
+249.58 490.60 l
+249.58 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F3 1 Tf 14.00 0.00 0.00 14.00 285.44 515.09 Tm [(Centred c) 10 (har) 15 (s in default c) 10 (har set \(ISO Latin1\))] TJ
+ET
+Q q 249.58 119.08 371.52 371.52 re W n
+/sRGB CS
+0.827 0.827 0.827 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+271.44 119.08 m 271.44 490.60 l S
+293.29 119.08 m 293.29 490.60 l S
+315.15 119.08 m 315.15 490.60 l S
+337.00 119.08 m 337.00 490.60 l S
+358.86 119.08 m 358.86 490.60 l S
+380.71 119.08 m 380.71 490.60 l S
+402.56 119.08 m 402.56 490.60 l S
+424.42 119.08 m 424.42 490.60 l S
+446.27 119.08 m 446.27 490.60 l S
+468.13 119.08 m 468.13 490.60 l S
+489.98 119.08 m 489.98 490.60 l S
+511.83 119.08 m 511.83 490.60 l S
+533.69 119.08 m 533.69 490.60 l S
+555.54 119.08 m 555.54 490.60 l S
+577.40 119.08 m 577.40 490.60 l S
+599.25 119.08 m 599.25 490.60 l S
+249.58 140.93 m 621.10 140.93 l S
+249.58 162.79 m 621.10 162.79 l S
+249.58 184.64 m 621.10 184.64 l S
+249.58 206.49 m 621.10 206.49 l S
+249.58 228.35 m 621.10 228.35 l S
+249.58 250.20 m 621.10 250.20 l S
+249.58 272.06 m 621.10 272.06 l S
+249.58 293.91 m 621.10 293.91 l S
+249.58 315.76 m 621.10 315.76 l S
+249.58 337.62 m 621.10 337.62 l S
+249.58 359.47 m 621.10 359.47 l S
+249.58 381.33 m 621.10 381.33 l S
+249.58 403.18 m 621.10 403.18 l S
+249.58 425.04 m 621.10 425.04 l S
+249.58 446.89 m 621.10 446.89 l S
+249.58 468.74 m 621.10 468.74 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 269.77 184.64 Tm ( ) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 291.63 180.33 Tm (!) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 313.02 177.55 Tm (") Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 333.67 180.51 Tm (#) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 355.52 180.68 Tm ($) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 375.38 180.54 Tm (%) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 398.56 180.42 Tm (&) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 423.09 177.55 Tm (') Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 444.27 181.48 Tm (\() Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 466.13 181.48 Tm (\)) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 487.65 177.75 Tm (*) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 508.33 181.61 Tm (+) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 532.02 184.89 Tm (,) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 552.04 181.61 Tm (-) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 575.73 184.00 Tm (.) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 597.58 180.33 Tm (/) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 268.10 202.39 Tm (0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 289.96 202.28 Tm (1) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 311.81 202.28 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 333.67 202.39 Tm (3) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 355.52 202.28 Tm (4) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 377.37 202.48 Tm (5) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 399.23 202.39 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 421.08 202.37 Tm (7) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 442.94 202.39 Tm (8) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 464.79 202.39 Tm (9) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 488.31 203.40 Tm (:) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 510.17 204.28 Tm (;) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 530.18 203.46 Tm (<) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 552.04 203.46 Tm (=) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 573.89 203.46 Tm (>) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 595.91 202.13 Tm (?) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 265.35 224.04 Tm (@) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 289.29 224.04 Tm (A) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 311.15 224.04 Tm (B) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 332.67 224.04 Tm (C) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 354.52 224.04 Tm (D) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 376.71 224.04 Tm (E) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 398.90 224.04 Tm (F) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 419.75 224.04 Tm (G) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 441.94 224.04 Tm (H) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 466.46 224.04 Tm (I) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 486.98 224.15 Tm (J) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 507.83 224.04 Tm (K) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 530.35 224.04 Tm (L) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 550.54 224.04 Tm (M) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 573.06 224.04 Tm (N) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 594.58 224.04 Tm (O) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 267.44 245.89 Tm (P) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 288.63 246.12 Tm (Q) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 310.82 245.89 Tm (R) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 333.00 245.89 Tm (S) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 355.19 245.89 Tm (T) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 376.38 246.01 Tm (U) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 398.56 245.89 Tm (V) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 418.75 245.89 Tm (W) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 442.27 245.89 Tm (X) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 464.12 245.89 Tm (Y) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 486.31 245.89 Tm (Z) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 510.17 247.05 Tm ([) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 532.02 245.89 Tm (\\) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 553.87 247.05 Tm (]) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 574.58 244.49 Tm (^) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 595.91 251.40 Tm (_) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 270.11 264.89 Tm (`) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 289.96 268.92 Tm (a) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 311.81 267.84 Tm (b) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 334.00 268.92 Tm (c) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 355.52 267.84 Tm (d) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 377.37 268.92 Tm (e) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 400.90 267.69 Tm (f) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 421.08 270.15 Tm (g) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 442.94 267.75 Tm (h) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 466.79 267.75 Tm (i) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 488.65 269.01 Tm (j) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 508.83 267.75 Tm (k) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 532.36 267.75 Tm (l) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 550.54 268.83 Tm (m) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 574.06 268.83 Tm (n) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 595.91 268.91 Tm (o) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 268.10 291.92 Tm (p) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 289.96 291.92 Tm (q) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 313.15 290.68 Tm (r) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 334.00 290.77 Tm (s) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 357.19 289.94 Tm (t) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 377.37 290.86 Tm (u) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 399.56 290.77 Tm (v) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 420.09 290.77 Tm (w) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 443.27 290.77 Tm (x) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 465.13 292.06 Tm (y) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 486.98 290.77 Tm (z) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 509.83 290.75 Tm ({) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 532.13 290.61 Tm (|) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 553.54 290.75 Tm (}) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 573.89 290.87 Tm (~) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 269.77 359.47 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 291.30 357.51 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 311.81 356.43 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 333.67 355.26 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 355.52 355.26 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 377.37 355.35 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 401.00 356.17 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 421.08 356.20 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 444.27 351.61 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 463.70 355.17 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 487.76 352.62 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 508.50 356.15 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 530.18 356.49 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 553.54 356.15 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 572.97 355.17 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 597.25 351.61 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 269.04 374.64 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 289.79 378.29 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 313.15 375.42 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 335.00 375.49 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 356.86 373.37 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 377.37 379.43 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 399.34 378.06 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 422.75 378.30 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 444.27 382.68 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 466.13 375.42 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 487.79 374.48 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 508.50 378.00 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 528.68 377.22 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 550.54 377.22 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 572.39 377.22 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 595.58 379.38 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 267.44 397.61 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 289.29 397.61 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 311.15 397.61 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 333.00 397.68 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 354.85 397.78 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 376.71 397.60 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 396.56 398.87 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 420.09 400.11 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 442.27 397.61 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 464.12 397.61 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 485.98 397.61 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 507.83 397.78 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 532.02 397.61 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 553.87 397.61 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 575.73 397.61 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 597.58 397.78 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 267.11 420.73 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 288.96 419.53 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 310.48 419.58 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 332.33 419.58 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 354.19 419.58 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 376.04 419.65 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 397.90 419.74 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 420.91 422.00 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 441.60 420.73 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 463.79 419.58 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 485.65 419.58 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 507.50 419.58 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 529.36 419.74 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 551.54 419.46 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 573.39 420.73 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 595.58 420.76 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 268.10 442.58 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 289.96 442.58 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 311.81 442.58 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 333.67 442.65 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 355.52 442.74 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 377.37 442.44 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 397.23 443.75 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 421.42 445.01 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 442.94 442.58 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 464.79 442.58 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 486.64 442.58 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 508.50 442.74 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 532.02 442.49 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 553.87 442.49 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 575.73 442.49 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 597.58 442.65 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 268.10 464.41 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 289.96 464.41 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 311.81 464.42 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 333.67 464.42 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 355.52 464.42 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 377.37 464.50 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 399.23 464.59 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 420.91 465.71 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 442.61 465.61 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 464.79 464.43 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 486.64 464.43 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 508.50 464.43 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 530.35 464.60 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 552.54 465.62 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 574.06 465.68 Tm (�) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 596.25 465.79 Tm (�) Tj
+ET
+Q
+endstream
+endobj
+12 0 obj
+14165
+endobj
+13 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 14 0 R /Resources 4 0 R >>
+endobj
+14 0 obj
+<<
+/Length 15 0 R
+>>
+stream
+1 J 1 j q
+Q q 198.46 82.36 459.36 437.76 re W n
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 95.84 Tm (50-54) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 111.47 Tm (55-59) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 127.11 Tm (60-64) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 142.74 Tm (65-69) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 158.38 Tm (70-74) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 205.28 Tm (50-54) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 220.91 Tm (55-59) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 236.55 Tm (60-64) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 252.18 Tm (65-69) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 267.82 Tm (70-74) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 314.72 Tm (50-54) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 330.35 Tm (55-59) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 345.99 Tm (60-64) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 361.62 Tm (65-69) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 377.26 Tm (70-74) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 424.16 Tm (50-54) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 439.79 Tm (55-59) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 455.43 Tm (60-64) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 471.06 Tm (65-69) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 212.86 486.70 Tm (70-74) Tj
+ET
+Q q 236.91 82.36 420.91 437.76 re W n
+/sRGB CS
+0.745 0.745 0.745 SCN
+0.75 w
+[ 0.00 3.00] 0 d
+1 J
+1 j
+10.00 M
+236.91 97.99 m 657.82 97.99 l S
+236.91 113.63 m 657.82 113.63 l S
+236.91 129.26 m 657.82 129.26 l S
+236.91 144.89 m 657.82 144.89 l S
+236.91 160.53 m 657.82 160.53 l S
+236.91 207.43 m 657.82 207.43 l S
+236.91 223.07 m 657.82 223.07 l S
+236.91 238.70 m 657.82 238.70 l S
+236.91 254.33 m 657.82 254.33 l S
+236.91 269.97 m 657.82 269.97 l S
+236.91 316.87 m 657.82 316.87 l S
+236.91 332.51 m 657.82 332.51 l S
+236.91 348.14 m 657.82 348.14 l S
+236.91 363.77 m 657.82 363.77 l S
+236.91 379.41 m 657.82 379.41 l S
+236.91 426.31 m 657.82 426.31 l S
+236.91 441.95 m 657.82 441.95 l S
+236.91 457.58 m 657.82 457.58 l S
+236.91 473.21 m 657.82 473.21 l S
+236.91 488.85 m 657.82 488.85 l S
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 251.02 96.69 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 283.34 112.33 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 318.77 127.96 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 416.98 143.60 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 509.60 159.23 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 294.53 206.13 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 349.85 221.77 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 428.79 237.40 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 538.19 253.04 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 640.75 268.67 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 252.89 315.57 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 271.53 331.21 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 324.99 346.84 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 390.88 362.48 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 536.33 378.11 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 271.53 425.01 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 311.32 440.65 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 366.01 456.28 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 453.66 471.92 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 3.74 0 0 3.74 609.05 487.55 Tm (l) Tj 0 Tr
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 6.00 0.00 0.00 6.00 191.88 502.33 Tm [(Rur) 10 (al Male)] TJ
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 191.88 392.89 Tm [(Rur) 10 (al F) 30 (emale)] TJ
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 191.88 283.45 Tm (Urban Male) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 191.88 174.01 Tm [(Urban F) 30 (emale)] TJ
+ET
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+262.45 82.36 m 635.40 82.36 l S
+262.45 82.36 m 262.45 78.76 l S
+324.61 82.36 m 324.61 78.76 l S
+386.76 82.36 m 386.76 78.76 l S
+448.92 82.36 m 448.92 78.76 l S
+511.08 82.36 m 511.08 78.76 l S
+573.24 82.36 m 573.24 78.76 l S
+635.40 82.36 m 635.40 78.76 l S
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 259.11 69.40 Tm (10) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 321.27 69.40 Tm (20) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 383.43 69.40 Tm (30) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 445.59 69.40 Tm (40) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 507.75 69.40 Tm (50) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 569.90 69.40 Tm (60) Tj
+ET
+BT
+/F2 1 Tf 6.00 0.00 0.00 6.00 632.06 69.40 Tm (70) Tj
+ET
+236.91 82.36 m
+657.82 82.36 l
+657.82 520.12 l
+236.91 520.12 l
+236.91 82.36 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F3 1 Tf 7.00 0.00 0.00 7.00 397.53 532.36 Tm [(Death Rates in Vir) 15 (ginia - 1940)] TJ
+ET
+Q
+endstream
+endobj
+15 0 obj
+4809
+endobj
+16 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 17 0 R /Resources 4 0 R >>
+endobj
+17 0 obj
+<<
+/Length 18 0 R
+>>
+stream
+1 J 1 j q
+Q q 257.50 155.80 370.08 305.28 re W n
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 160.24 Tm (50-54) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 171.14 Tm (55-59) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 182.04 Tm (60-64) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 192.95 Tm (65-69) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 203.85 Tm (70-74) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 236.56 Tm (50-54) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 247.46 Tm (55-59) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 258.36 Tm (60-64) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 269.27 Tm (65-69) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 280.17 Tm (70-74) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 312.88 Tm (50-54) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 323.78 Tm (55-59) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 334.68 Tm (60-64) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 345.59 Tm (65-69) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 356.49 Tm (70-74) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 389.20 Tm (50-54) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 400.10 Tm (55-59) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 411.00 Tm (60-64) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 421.91 Tm (65-69) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 277.25 432.81 Tm (70-74) Tj
+ET
+Q q 334.99 155.80 292.59 305.28 re W n
+/sRGB CS
+0.745 0.745 0.745 SCN
+0.75 w
+[ 0.00 3.00] 0 d
+1 J
+1 j
+10.00 M
+334.99 166.70 m 627.58 166.70 l S
+334.99 177.60 m 627.58 177.60 l S
+334.99 188.51 m 627.58 188.51 l S
+334.99 199.41 m 627.58 199.41 l S
+334.99 210.31 m 627.58 210.31 l S
+334.99 243.02 m 627.58 243.02 l S
+334.99 253.92 m 627.58 253.92 l S
+334.99 264.83 m 627.58 264.83 l S
+334.99 275.73 m 627.58 275.73 l S
+334.99 286.63 m 627.58 286.63 l S
+334.99 319.34 m 627.58 319.34 l S
+334.99 330.24 m 627.58 330.24 l S
+334.99 341.15 m 627.58 341.15 l S
+334.99 352.05 m 627.58 352.05 l S
+334.99 362.95 m 627.58 362.95 l S
+334.99 395.66 m 627.58 395.66 l S
+334.99 406.56 m 627.58 406.56 l S
+334.99 417.47 m 627.58 417.47 l S
+334.99 428.37 m 627.58 428.37 l S
+334.99 439.27 m 627.58 439.27 l S
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 341.39 162.81 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 363.86 173.71 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 388.49 184.61 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 456.76 195.52 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 521.14 206.42 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 371.63 239.13 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 410.09 250.03 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 464.96 260.93 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 541.01 271.84 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 612.31 282.74 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 342.69 315.45 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 355.65 326.35 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 392.81 337.25 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 438.61 348.16 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 539.72 359.06 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 355.65 391.77 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 383.30 402.67 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 421.32 413.57 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 482.25 424.48 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 11.22 0 0 11.22 590.27 435.38 Tm (l) Tj 0 Tr
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 18.00 0.00 0.00 18.00 214.30 443.71 Tm [(Rur) 10 (al Male)] TJ
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 214.30 367.39 Tm [(Rur) 10 (al F) 30 (emale)] TJ
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 214.30 291.07 Tm (Urban Male) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 214.30 214.75 Tm [(Urban F) 30 (emale)] TJ
+ET
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+352.74 155.80 m 612.00 155.80 l S
+352.74 155.80 m 352.74 145.00 l S
+395.95 155.80 m 395.95 145.00 l S
+439.16 155.80 m 439.16 145.00 l S
+482.37 155.80 m 482.37 145.00 l S
+525.58 155.80 m 525.58 145.00 l S
+568.79 155.80 m 568.79 145.00 l S
+612.00 155.80 m 612.00 145.00 l S
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 342.74 116.92 Tm (10) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 385.95 116.92 Tm (20) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 429.15 116.92 Tm (30) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 472.36 116.92 Tm (40) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 515.57 116.92 Tm (50) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 558.78 116.92 Tm (60) Tj
+ET
+BT
+/F2 1 Tf 18.00 0.00 0.00 18.00 601.99 116.92 Tm (70) Tj
+ET
+334.99 155.80 m
+627.58 155.80 l
+627.58 461.08 l
+334.99 461.08 l
+334.99 155.80 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F3 1 Tf 22.00 0.00 0.00 22.00 324.64 497.46 Tm [(Death Rates in Vir) 15 (ginia - 1940)] TJ
+ET
+Q
+endstream
+endobj
+18 0 obj
+4945
+endobj
+19 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 20 0 R /Resources 4 0 R >>
+endobj
+20 0 obj
+<<
+/Length 21 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+247.18 132.84 m
+251.02 184.61 l
+254.86 214.90 l
+258.70 236.39 l
+262.54 253.06 l
+266.38 266.68 l
+270.22 278.19 l
+274.06 288.17 l
+277.90 296.97 l
+281.74 304.84 l
+285.58 311.96 l
+289.42 318.46 l
+293.26 324.44 l
+297.10 329.97 l
+300.94 335.13 l
+304.78 339.95 l
+308.62 344.48 l
+312.46 348.74 l
+316.30 352.78 l
+320.14 356.61 l
+323.98 360.26 l
+327.82 363.73 l
+331.66 367.05 l
+335.50 370.23 l
+339.34 373.28 l
+343.18 376.21 l
+347.02 379.03 l
+350.86 381.75 l
+354.70 384.37 l
+358.54 386.90 l
+362.38 389.35 l
+366.22 391.72 l
+370.06 394.02 l
+373.90 396.25 l
+377.74 398.42 l
+381.58 400.52 l
+385.42 402.57 l
+389.26 404.56 l
+393.10 406.50 l
+396.94 408.39 l
+400.78 410.24 l
+404.62 412.04 l
+408.46 413.79 l
+412.30 415.51 l
+416.14 417.19 l
+419.98 418.83 l
+423.82 420.44 l
+427.66 422.01 l
+431.50 423.55 l
+435.34 425.06 l
+439.18 426.54 l
+443.02 427.99 l
+446.86 429.41 l
+450.70 430.81 l
+454.54 432.18 l
+458.38 433.53 l
+462.22 434.85 l
+466.06 436.15 l
+469.90 437.42 l
+473.74 438.68 l
+477.58 439.91 l
+481.42 441.13 l
+485.26 442.32 l
+489.10 443.50 l
+492.94 444.66 l
+496.78 445.80 l
+500.62 446.92 l
+504.46 448.03 l
+508.30 449.12 l
+512.14 450.19 l
+515.98 451.25 l
+519.82 452.30 l
+523.66 453.33 l
+527.50 454.35 l
+531.34 455.35 l
+535.18 456.34 l
+539.02 457.31 l
+542.86 458.28 l
+546.70 459.23 l
+550.54 460.17 l
+554.38 461.10 l
+558.22 462.01 l
+562.06 462.92 l
+565.90 463.81 l
+569.74 464.70 l
+573.58 465.57 l
+577.42 466.44 l
+581.26 467.29 l
+585.10 468.13 l
+588.94 468.97 l
+592.78 469.79 l
+596.62 470.61 l
+600.46 471.42 l
+604.30 472.22 l
+608.14 473.01 l
+611.98 473.79 l
+615.82 474.56 l
+619.66 475.33 l
+623.50 476.09 l
+627.34 476.84 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 422.01 64.36 Tm (Time) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 299.83 Tm (t1) Tj
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+239.50 119.08 m 623.50 119.08 l S
+239.50 119.08 m 239.50 111.88 l S
+316.30 119.08 m 316.30 111.88 l S
+393.10 119.08 m 393.10 111.88 l S
+469.90 119.08 m 469.90 111.88 l S
+546.70 119.08 m 546.70 111.88 l S
+623.50 119.08 m 623.50 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 236.17 93.16 Tm (0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 309.63 93.16 Tm (20) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 386.43 93.16 Tm (40) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 463.23 93.16 Tm (60) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 540.03 93.16 Tm (80) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 613.50 93.16 Tm (100) Tj
+ET
+227.98 132.84 m 227.98 476.84 l S
+227.98 132.84 m 220.78 132.84 l S
+227.98 184.61 m 220.78 184.61 l S
+227.98 253.06 m 220.78 253.06 l S
+227.98 304.84 m 220.78 304.84 l S
+227.98 356.61 m 220.78 356.61 l S
+227.98 425.06 m 220.78 425.06 l S
+227.98 476.84 m 220.78 476.84 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 129.50 Tm (1) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 181.28 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 249.72 Tm (5) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 298.17 Tm (10) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 349.94 Tm (20) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 418.39 Tm (50) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 466.83 Tm (100) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q
+endstream
+endobj
+21 0 obj
+3475
+endobj
+22 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 23 0 R /Resources 4 0 R >>
+endobj
+23 0 obj
+<<
+/Length 24 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+247.18 132.84 m
+251.02 167.36 l
+254.86 187.55 l
+258.70 201.87 l
+262.54 212.99 l
+266.38 222.07 l
+270.22 229.74 l
+274.06 236.39 l
+277.90 242.26 l
+281.74 247.50 l
+285.58 252.25 l
+289.42 256.58 l
+293.26 260.57 l
+297.10 264.26 l
+300.94 267.70 l
+304.78 270.91 l
+308.62 273.93 l
+312.46 276.78 l
+316.30 279.47 l
+320.14 282.02 l
+323.98 284.45 l
+327.82 286.77 l
+331.66 288.98 l
+335.50 291.10 l
+339.34 293.13 l
+343.18 295.09 l
+347.02 296.97 l
+350.86 298.78 l
+354.70 300.53 l
+358.54 302.21 l
+362.38 303.85 l
+366.22 305.43 l
+370.06 306.96 l
+373.90 308.45 l
+377.74 309.89 l
+381.58 311.29 l
+385.42 312.66 l
+389.26 313.99 l
+393.10 315.28 l
+396.94 316.54 l
+400.78 317.77 l
+404.62 318.97 l
+408.46 320.14 l
+412.30 321.29 l
+416.14 322.41 l
+419.98 323.50 l
+423.82 324.57 l
+427.66 325.62 l
+431.50 326.65 l
+435.34 327.65 l
+439.18 328.64 l
+443.02 329.61 l
+446.86 330.55 l
+450.70 331.49 l
+454.54 332.40 l
+458.38 333.30 l
+462.22 334.18 l
+466.06 335.04 l
+469.90 335.90 l
+473.74 336.73 l
+477.58 337.56 l
+481.42 338.37 l
+485.26 339.16 l
+489.10 339.95 l
+492.94 340.72 l
+496.78 341.48 l
+500.62 342.23 l
+504.46 342.97 l
+508.30 343.69 l
+512.14 344.41 l
+515.98 345.12 l
+519.82 345.81 l
+523.66 346.50 l
+527.50 347.18 l
+531.34 347.84 l
+535.18 348.50 l
+539.02 349.16 l
+542.86 349.80 l
+546.70 350.43 l
+550.54 351.06 l
+554.38 351.68 l
+558.22 352.29 l
+562.06 352.89 l
+565.90 353.49 l
+569.74 354.08 l
+573.58 354.66 l
+577.42 355.24 l
+581.26 355.81 l
+585.10 356.37 l
+588.94 356.92 l
+592.78 357.47 l
+596.62 358.02 l
+600.46 358.56 l
+604.30 359.09 l
+608.14 359.62 l
+611.98 360.14 l
+615.82 360.65 l
+619.66 361.17 l
+623.50 361.67 l
+627.34 362.17 l
+S
+247.18 247.50 m
+251.02 282.02 l
+254.86 302.21 l
+258.70 316.54 l
+262.54 327.65 l
+266.38 336.73 l
+270.22 344.41 l
+274.06 351.06 l
+277.90 356.92 l
+281.74 362.17 l
+285.58 366.92 l
+289.42 371.25 l
+293.26 375.24 l
+297.10 378.93 l
+300.94 382.36 l
+304.78 385.58 l
+308.62 388.60 l
+312.46 391.44 l
+316.30 394.13 l
+320.14 396.69 l
+323.98 399.12 l
+327.82 401.44 l
+331.66 403.65 l
+335.50 405.77 l
+339.34 407.80 l
+343.18 409.75 l
+347.02 411.63 l
+350.86 413.45 l
+354.70 415.19 l
+358.54 416.88 l
+362.38 418.51 l
+366.22 420.09 l
+370.06 421.63 l
+373.90 423.11 l
+377.74 424.56 l
+381.58 425.96 l
+385.42 427.32 l
+389.26 428.65 l
+393.10 429.95 l
+396.94 431.21 l
+400.78 432.44 l
+404.62 433.64 l
+408.46 434.81 l
+412.30 435.95 l
+416.14 437.07 l
+419.98 438.17 l
+423.82 439.24 l
+427.66 440.29 l
+431.50 441.31 l
+435.34 442.32 l
+439.18 443.31 l
+443.02 444.27 l
+446.86 445.22 l
+450.70 446.15 l
+454.54 447.07 l
+458.38 447.96 l
+462.22 448.84 l
+466.06 449.71 l
+469.90 450.56 l
+473.74 451.40 l
+477.58 452.22 l
+481.42 453.03 l
+485.26 453.83 l
+489.10 454.61 l
+492.94 455.39 l
+496.78 456.15 l
+500.62 456.89 l
+504.46 457.63 l
+508.30 458.36 l
+512.14 459.08 l
+515.98 459.78 l
+519.82 460.48 l
+523.66 461.17 l
+527.50 461.84 l
+531.34 462.51 l
+535.18 463.17 l
+539.02 463.82 l
+542.86 464.46 l
+546.70 465.10 l
+550.54 465.73 l
+554.38 466.34 l
+558.22 466.96 l
+562.06 467.56 l
+565.90 468.16 l
+569.74 468.74 l
+573.58 469.33 l
+577.42 469.90 l
+581.26 470.47 l
+585.10 471.03 l
+588.94 471.59 l
+592.78 472.14 l
+596.62 472.69 l
+600.46 473.22 l
+604.30 473.76 l
+608.14 474.28 l
+611.98 474.80 l
+615.82 475.32 l
+619.66 475.83 l
+623.50 476.34 l
+627.34 476.84 l
+S
+262.54 132.84 m
+266.38 167.36 l
+270.22 187.55 l
+274.06 201.87 l
+277.90 212.99 l
+281.74 222.07 l
+285.58 229.74 l
+289.42 236.39 l
+293.26 242.26 l
+297.10 247.50 l
+300.94 252.25 l
+304.78 256.58 l
+308.62 260.57 l
+312.46 264.26 l
+316.30 267.70 l
+320.14 270.91 l
+323.98 273.93 l
+327.82 276.78 l
+331.66 279.47 l
+335.50 282.02 l
+339.34 284.45 l
+343.18 286.77 l
+347.02 288.98 l
+350.86 291.10 l
+354.70 293.13 l
+358.54 295.09 l
+362.38 296.97 l
+366.22 298.78 l
+370.06 300.53 l
+373.90 302.21 l
+377.74 303.85 l
+381.58 305.43 l
+385.42 306.96 l
+389.26 308.45 l
+393.10 309.89 l
+396.94 311.29 l
+400.78 312.66 l
+404.62 313.99 l
+408.46 315.28 l
+412.30 316.54 l
+416.14 317.77 l
+419.98 318.97 l
+423.82 320.14 l
+427.66 321.29 l
+431.50 322.41 l
+435.34 323.50 l
+439.18 324.57 l
+443.02 325.62 l
+446.86 326.65 l
+450.70 327.65 l
+454.54 328.64 l
+458.38 329.61 l
+462.22 330.55 l
+466.06 331.49 l
+469.90 332.40 l
+473.74 333.30 l
+477.58 334.18 l
+481.42 335.04 l
+485.26 335.90 l
+489.10 336.73 l
+492.94 337.56 l
+496.78 338.37 l
+500.62 339.16 l
+504.46 339.95 l
+508.30 340.72 l
+512.14 341.48 l
+515.98 342.23 l
+519.82 342.97 l
+523.66 343.69 l
+527.50 344.41 l
+531.34 345.12 l
+535.18 345.81 l
+539.02 346.50 l
+542.86 347.18 l
+546.70 347.84 l
+550.54 348.50 l
+554.38 349.16 l
+558.22 349.80 l
+562.06 350.43 l
+565.90 351.06 l
+569.74 351.68 l
+573.58 352.29 l
+577.42 352.89 l
+581.26 353.49 l
+585.10 354.08 l
+588.94 354.66 l
+592.78 355.24 l
+596.62 355.81 l
+600.46 356.37 l
+604.30 356.92 l
+608.14 357.47 l
+611.98 358.02 l
+615.82 358.56 l
+619.66 359.09 l
+623.50 359.62 l
+627.34 360.14 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 422.01 64.36 Tm (Time) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 242.30 Tm (cbind\(t1, 10 * t1, t1 - 4\)) Tj
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+239.50 119.08 m 623.50 119.08 l S
+239.50 119.08 m 239.50 111.88 l S
+316.30 119.08 m 316.30 111.88 l S
+393.10 119.08 m 393.10 111.88 l S
+469.90 119.08 m 469.90 111.88 l S
+546.70 119.08 m 546.70 111.88 l S
+623.50 119.08 m 623.50 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 236.17 93.16 Tm (0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 309.63 93.16 Tm (20) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 386.43 93.16 Tm (40) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 463.23 93.16 Tm (60) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 540.03 93.16 Tm (80) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 613.50 93.16 Tm (100) Tj
+ET
+227.98 132.84 m 227.98 476.84 l S
+227.98 132.84 m 220.78 132.84 l S
+227.98 212.99 m 220.78 212.99 l S
+227.98 247.50 m 220.78 247.50 l S
+227.98 327.65 m 220.78 327.65 l S
+227.98 362.17 m 220.78 362.17 l S
+227.98 442.32 m 220.78 442.32 l S
+227.98 476.84 m 220.78 476.84 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 129.50 Tm (1) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 209.65 Tm (5) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 240.83 Tm (10) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 320.98 Tm (50) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 352.16 Tm (100) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 432.31 Tm (500) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 463.49 Tm (1000) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q
+endstream
+endobj
+24 0 obj
+6645
+endobj
+25 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 26 0 R /Resources 4 0 R >>
+endobj
+26 0 obj
+<<
+/Length 27 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+286.01 119.08 m 627.34 119.08 l S
+286.01 119.08 m 286.01 111.88 l S
+371.34 119.08 m 371.34 111.88 l S
+456.68 119.08 m 456.68 111.88 l S
+542.01 119.08 m 542.01 111.88 l S
+627.34 119.08 m 627.34 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 282.68 93.16 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 368.01 93.16 Tm (4) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 453.34 93.16 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 538.68 93.16 Tm (8) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 620.67 93.16 Tm (10) Tj
+ET
+227.98 171.06 m 227.98 476.84 l S
+227.98 171.06 m 220.78 171.06 l S
+227.98 247.50 m 220.78 247.50 l S
+227.98 323.95 m 220.78 323.95 l S
+227.98 400.39 m 220.78 400.39 l S
+227.98 476.84 m 220.78 476.84 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 167.72 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 244.17 Tm (4) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 320.61 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 397.06 Tm (8) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 470.17 Tm (10) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 420.85 64.36 Tm [(Inde) 30 (x)] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 293.16 Tm (1:10) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB cs
+1.000 1.000 0.000 scn
+243.34 132.84 m
+328.68 132.84 l
+328.68 209.28 l
+243.34 209.28 l
+h f
+0.000 0.000 1.000 scn
+456.68 323.95 170.67 152.89 re f
+Q
+endstream
+endobj
+27 0 obj
+1682
+endobj
+28 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 29 0 R /Resources 4 0 R >>
+endobj
+29 0 obj
+<<
+/Length 30 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+235.34 119.08 m 635.34 119.08 l S
+235.34 119.08 m 235.34 111.88 l S
+302.01 119.08 m 302.01 111.88 l S
+368.68 119.08 m 368.68 111.88 l S
+435.34 119.08 m 435.34 111.88 l S
+502.01 119.08 m 502.01 111.88 l S
+568.68 119.08 m 568.68 111.88 l S
+635.34 119.08 m 635.34 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 228.67 93.16 Tm (60) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 295.34 93.16 Tm (65) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 362.01 93.16 Tm (70) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 428.67 93.16 Tm (75) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 495.34 93.16 Tm (80) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 562.01 93.16 Tm (85) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 628.67 93.16 Tm (90) Tj
+ET
+227.98 203.56 m 227.98 461.05 l S
+227.98 203.56 m 220.78 203.56 l S
+227.98 289.39 m 220.78 289.39 l S
+227.98 375.22 m 220.78 375.22 l S
+227.98 461.05 m 220.78 461.05 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 196.89 Tm (20) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 282.72 Tm (40) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 368.55 Tm (60) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 454.37 Tm (80) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 418.00 64.36 Tm (Height) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 284.98 Tm [(V) 80 (olume)] TJ
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB cs
+0.000 0.000 1.000 scn
+BT
+/F1 1 Tf 0 Tr 12.77 0 0 12.77 363.62 157.50 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 13.23 0 0 13.23 296.77 157.34 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 13.54 0 0 13.54 269.98 156.81 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 16.16 0 0 16.16 388.95 182.50 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 16.47 0 0 16.47 508.82 192.70 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 16.62 0 0 16.62 535.43 196.51 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 16.93 0 0 16.93 308.64 178.80 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 16.93 0 0 16.93 428.64 189.96 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 17.08 0 0 17.08 495.25 208.79 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 17.24 0 0 17.24 428.52 197.15 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 17.39 0 0 17.39 481.79 215.55 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 17.54 0 0 17.54 441.73 201.76 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 17.54 0 0 17.54 441.73 203.48 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 18.01 0 0 18.01 348.21 202.89 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 18.47 0 0 18.47 428.03 193.29 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 19.85 0 0 19.85 414.15 206.11 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 19.85 0 0 19.85 560.82 255.89 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 20.47 0 0 20.47 573.91 228.21 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 21.08 0 0 21.08 373.66 220.71 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 21.24 0 0 21.24 280.27 217.22 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 21.55 0 0 21.55 466.81 258.31 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 21.85 0 0 21.85 493.36 246.19 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 22.31 0 0 22.31 413.17 265.77 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 24.62 0 0 24.62 385.59 273.55 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 25.08 0 0 25.08 452.08 291.84 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 26.62 0 0 26.62 504.80 346.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 26.93 0 0 26.93 518.01 347.42 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 0 Tr 27.55 0 0 27.55 491.10 358.36 Tm (l) Tj 0 Tr
+ET
+  492.01 338.74 m
+  492.01 344.24 496.51 348.74 502.01 348.74 c
+  507.51 348.74 512.01 344.24 512.01 338.74 c
+  512.01 333.24 507.51 328.74 502.01 328.74 c
+  496.51 328.74 492.01 333.24 492.01 338.74 c
+f
+  492.01 336.59 m
+  492.01 342.09 496.51 346.59 502.01 346.59 c
+  507.51 346.59 512.01 342.09 512.01 336.59 c
+  512.01 331.09 507.51 326.59 502.01 326.59 c
+  496.51 326.59 492.01 331.09 492.01 336.59 c
+f
+  583.90 448.17 m
+  583.90 454.47 589.05 459.62 595.34 459.62 c
+  601.64 459.62 606.79 454.47 606.79 448.17 c
+  606.79 441.88 601.64 436.73 595.34 436.73 c
+  589.05 436.73 583.90 441.88 583.90 448.17 c
+f
+Q
+endstream
+endobj
+30 0 obj
+4095
+endobj
+31 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 32 0 R /Resources 4 0 R >>
+endobj
+32 0 obj
+<<
+/Length 33 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+1.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 285.73 m
+243.73 284.96 l
+244.11 284.20 l
+244.50 283.44 l
+244.88 282.68 l
+245.26 281.93 l
+245.65 281.17 l
+246.03 280.42 l
+246.42 279.67 l
+246.80 278.92 l
+247.18 278.18 l
+247.57 277.43 l
+247.95 276.69 l
+248.34 275.95 l
+248.72 275.21 l
+249.10 274.48 l
+249.49 273.74 l
+249.87 273.01 l
+250.26 272.28 l
+250.64 271.55 l
+251.02 270.82 l
+251.41 270.09 l
+251.79 269.37 l
+252.18 268.65 l
+252.56 267.93 l
+252.94 267.21 l
+253.33 266.50 l
+253.71 265.78 l
+254.10 265.07 l
+254.48 264.36 l
+254.86 263.65 l
+255.25 262.95 l
+255.63 262.24 l
+256.02 261.54 l
+256.40 260.84 l
+256.78 260.14 l
+257.17 259.45 l
+257.55 258.75 l
+257.94 258.06 l
+258.32 257.37 l
+258.70 256.68 l
+259.09 255.99 l
+259.47 255.31 l
+259.86 254.62 l
+260.24 253.94 l
+260.62 253.26 l
+261.01 252.58 l
+261.39 251.91 l
+261.78 251.23 l
+262.16 250.56 l
+262.54 249.89 l
+262.93 249.23 l
+263.31 248.56 l
+263.70 247.90 l
+264.08 247.23 l
+264.46 246.57 l
+264.85 245.91 l
+265.23 245.26 l
+265.62 244.60 l
+266.00 243.95 l
+266.38 243.30 l
+266.77 242.65 l
+267.15 242.00 l
+267.54 241.36 l
+267.92 240.72 l
+268.30 240.08 l
+268.69 239.44 l
+269.07 238.80 l
+269.46 238.16 l
+269.84 237.53 l
+270.22 236.90 l
+270.61 236.27 l
+270.99 235.64 l
+271.38 235.01 l
+271.76 234.39 l
+272.14 233.77 l
+272.53 233.15 l
+272.91 232.53 l
+273.30 231.91 l
+273.68 231.30 l
+274.06 230.69 l
+274.45 230.08 l
+274.83 229.47 l
+275.22 228.86 l
+275.60 228.26 l
+275.98 227.65 l
+276.37 227.05 l
+276.75 226.45 l
+277.14 225.86 l
+277.52 225.26 l
+277.90 224.67 l
+278.29 224.08 l
+278.67 223.49 l
+279.06 222.90 l
+279.44 222.31 l
+279.82 221.73 l
+280.21 221.15 l
+280.59 220.57 l
+280.98 219.99 l
+281.36 219.41 l
+281.74 218.84 l
+282.13 218.27 l
+282.51 217.69 l
+282.90 217.13 l
+283.28 216.56 l
+283.66 216.00 l
+284.05 215.43 l
+284.43 214.87 l
+284.82 214.31 l
+285.20 213.76 l
+285.58 213.20 l
+285.97 212.65 l
+286.35 212.10 l
+286.74 211.55 l
+287.12 211.00 l
+287.50 210.45 l
+287.89 209.91 l
+288.27 209.37 l
+288.66 208.83 l
+289.04 208.29 l
+289.42 207.75 l
+289.81 207.22 l
+290.19 206.69 l
+290.58 206.16 l
+290.96 205.63 l
+291.34 205.10 l
+291.73 204.58 l
+292.11 204.05 l
+292.50 203.53 l
+292.88 203.01 l
+293.26 202.50 l
+293.65 201.98 l
+294.03 201.47 l
+294.42 200.96 l
+294.80 200.45 l
+295.18 199.94 l
+295.57 199.44 l
+295.95 198.93 l
+296.34 198.43 l
+296.72 197.93 l
+297.10 197.43 l
+297.49 196.94 l
+297.87 196.44 l
+298.26 195.95 l
+298.64 195.46 l
+299.02 194.97 l
+299.41 194.49 l
+299.79 194.00 l
+300.18 193.52 l
+300.56 193.04 l
+300.94 192.56 l
+301.33 192.08 l
+301.71 191.61 l
+302.10 191.14 l
+302.48 190.66 l
+302.86 190.20 l
+303.25 189.73 l
+303.63 189.26 l
+304.02 188.80 l
+304.40 188.34 l
+304.78 187.88 l
+305.17 187.42 l
+305.55 186.96 l
+305.94 186.51 l
+306.32 186.06 l
+306.70 185.61 l
+307.09 185.16 l
+307.47 184.71 l
+307.86 184.27 l
+308.24 183.83 l
+308.62 183.39 l
+309.01 182.95 l
+309.39 182.51 l
+309.78 182.08 l
+310.16 181.64 l
+310.54 181.21 l
+310.93 180.78 l
+311.31 180.36 l
+311.70 179.93 l
+312.08 179.51 l
+312.46 179.09 l
+312.85 178.67 l
+313.23 178.25 l
+313.62 177.83 l
+314.00 177.42 l
+314.38 177.01 l
+314.77 176.60 l
+315.15 176.19 l
+315.54 175.78 l
+315.92 175.38 l
+316.30 174.98 l
+316.69 174.58 l
+317.07 174.18 l
+317.46 173.78 l
+317.84 173.39 l
+318.22 173.00 l
+318.61 172.60 l
+318.99 172.22 l
+319.38 171.83 l
+319.76 171.44 l
+320.14 171.06 l
+320.53 170.68 l
+320.91 170.30 l
+321.30 169.92 l
+321.68 169.55 l
+322.06 169.17 l
+322.45 168.80 l
+322.83 168.43 l
+323.22 168.06 l
+323.60 167.70 l
+323.98 167.33 l
+324.37 166.97 l
+324.75 166.61 l
+325.14 166.25 l
+325.52 165.90 l
+325.90 165.54 l
+326.29 165.19 l
+326.67 164.84 l
+327.06 164.49 l
+327.44 164.14 l
+327.82 163.80 l
+328.21 163.45 l
+328.59 163.11 l
+328.98 162.77 l
+329.36 162.44 l
+329.74 162.10 l
+330.13 161.77 l
+330.51 161.44 l
+330.90 161.11 l
+331.28 160.78 l
+331.66 160.45 l
+332.05 160.13 l
+332.43 159.81 l
+332.82 159.49 l
+333.20 159.17 l
+333.58 158.85 l
+333.97 158.54 l
+334.35 158.23 l
+334.74 157.92 l
+335.12 157.61 l
+335.50 157.30 l
+335.89 157.00 l
+336.27 156.69 l
+336.66 156.39 l
+337.04 156.09 l
+337.42 155.80 l
+337.81 155.50 l
+338.19 155.21 l
+338.58 154.91 l
+338.96 154.63 l
+339.34 154.34 l
+339.73 154.05 l
+340.11 153.77 l
+340.50 153.49 l
+340.88 153.21 l
+341.26 152.93 l
+341.65 152.65 l
+342.03 152.38 l
+342.42 152.11 l
+342.80 151.84 l
+343.18 151.57 l
+343.57 151.30 l
+343.95 151.04 l
+344.34 150.77 l
+344.72 150.51 l
+345.10 150.25 l
+345.49 150.00 l
+345.87 149.74 l
+346.26 149.49 l
+346.64 149.24 l
+347.02 148.99 l
+347.41 148.74 l
+347.79 148.49 l
+348.18 148.25 l
+348.56 148.01 l
+348.94 147.77 l
+349.33 147.53 l
+349.71 147.29 l
+350.10 147.06 l
+350.48 146.83 l
+350.86 146.60 l
+351.25 146.37 l
+351.63 146.14 l
+352.02 145.92 l
+352.40 145.70 l
+352.78 145.48 l
+353.17 145.26 l
+353.55 145.04 l
+353.94 144.82 l
+354.32 144.61 l
+354.70 144.40 l
+355.09 144.19 l
+355.47 143.98 l
+355.86 143.78 l
+356.24 143.57 l
+356.62 143.37 l
+357.01 143.17 l
+357.39 142.98 l
+357.78 142.78 l
+358.16 142.59 l
+358.54 142.39 l
+358.93 142.20 l
+359.31 142.01 l
+359.70 141.83 l
+360.08 141.64 l
+360.46 141.46 l
+360.85 141.28 l
+361.23 141.10 l
+361.62 140.93 l
+362.00 140.75 l
+362.38 140.58 l
+362.77 140.41 l
+363.15 140.24 l
+363.54 140.07 l
+363.92 139.91 l
+364.30 139.74 l
+364.69 139.58 l
+365.07 139.42 l
+365.46 139.26 l
+365.84 139.11 l
+366.22 138.95 l
+366.61 138.80 l
+366.99 138.65 l
+367.38 138.50 l
+367.76 138.36 l
+368.14 138.21 l
+368.53 138.07 l
+368.91 137.93 l
+369.30 137.79 l
+369.68 137.65 l
+370.06 137.52 l
+370.45 137.39 l
+370.83 137.26 l
+371.22 137.13 l
+371.60 137.00 l
+371.98 136.88 l
+372.37 136.75 l
+372.75 136.63 l
+373.14 136.51 l
+373.52 136.39 l
+373.90 136.28 l
+374.29 136.16 l
+374.67 136.05 l
+375.06 135.94 l
+375.44 135.83 l
+375.82 135.73 l
+376.21 135.62 l
+376.59 135.52 l
+376.98 135.42 l
+377.36 135.32 l
+377.74 135.23 l
+378.13 135.13 l
+378.51 135.04 l
+378.90 134.95 l
+379.28 134.86 l
+379.66 134.77 l
+380.05 134.69 l
+380.43 134.60 l
+380.82 134.52 l
+381.20 134.44 l
+381.58 134.37 l
+381.97 134.29 l
+382.35 134.22 l
+382.74 134.15 l
+383.12 134.08 l
+383.50 134.01 l
+383.89 133.94 l
+384.27 133.88 l
+384.66 133.82 l
+385.04 133.76 l
+385.42 133.70 l
+385.81 133.64 l
+386.19 133.59 l
+386.58 133.53 l
+386.96 133.48 l
+387.34 133.44 l
+387.73 133.39 l
+388.11 133.34 l
+388.50 133.30 l
+388.88 133.26 l
+389.26 133.22 l
+389.65 133.18 l
+390.03 133.15 l
+390.42 133.11 l
+390.80 133.08 l
+391.18 133.05 l
+391.57 133.03 l
+391.95 133.00 l
+392.34 132.98 l
+392.72 132.95 l
+393.10 132.93 l
+393.49 132.92 l
+393.87 132.90 l
+394.26 132.88 l
+394.64 132.87 l
+395.02 132.86 l
+395.41 132.85 l
+395.79 132.85 l
+396.18 132.84 l
+396.56 132.84 l
+396.94 132.84 l
+397.33 132.84 l
+397.71 132.84 l
+398.10 132.85 l
+398.48 132.85 l
+398.86 132.86 l
+399.25 132.87 l
+399.63 132.88 l
+400.02 132.90 l
+400.40 132.92 l
+400.78 132.93 l
+401.17 132.95 l
+401.55 132.98 l
+401.94 133.00 l
+402.32 133.03 l
+402.70 133.05 l
+403.09 133.08 l
+403.47 133.11 l
+403.86 133.15 l
+404.24 133.18 l
+404.62 133.22 l
+405.01 133.26 l
+405.39 133.30 l
+405.78 133.34 l
+406.16 133.39 l
+406.54 133.44 l
+406.93 133.48 l
+407.31 133.53 l
+407.70 133.59 l
+408.08 133.64 l
+408.46 133.70 l
+408.85 133.76 l
+409.23 133.82 l
+409.62 133.88 l
+410.00 133.94 l
+410.38 134.01 l
+410.77 134.08 l
+411.15 134.15 l
+411.54 134.22 l
+411.92 134.29 l
+412.30 134.37 l
+412.69 134.44 l
+413.07 134.52 l
+413.46 134.60 l
+413.84 134.69 l
+414.22 134.77 l
+414.61 134.86 l
+414.99 134.95 l
+415.38 135.04 l
+415.76 135.13 l
+416.14 135.23 l
+416.53 135.32 l
+416.91 135.42 l
+417.30 135.52 l
+417.68 135.62 l
+418.06 135.73 l
+418.45 135.83 l
+418.83 135.94 l
+419.22 136.05 l
+419.60 136.16 l
+419.98 136.28 l
+420.37 136.39 l
+420.75 136.51 l
+421.14 136.63 l
+421.52 136.75 l
+421.90 136.88 l
+422.29 137.00 l
+422.67 137.13 l
+423.06 137.26 l
+423.44 137.39 l
+423.82 137.52 l
+424.21 137.65 l
+424.59 137.79 l
+424.98 137.93 l
+425.36 138.07 l
+425.74 138.21 l
+426.13 138.36 l
+426.51 138.50 l
+426.90 138.65 l
+427.28 138.80 l
+427.66 138.95 l
+428.05 139.11 l
+428.43 139.26 l
+428.82 139.42 l
+429.20 139.58 l
+429.58 139.74 l
+429.97 139.91 l
+430.35 140.07 l
+430.74 140.24 l
+431.12 140.41 l
+431.50 140.58 l
+431.89 140.75 l
+432.27 140.93 l
+432.66 141.10 l
+433.04 141.28 l
+433.42 141.46 l
+433.81 141.64 l
+434.19 141.83 l
+434.58 142.01 l
+434.96 142.20 l
+435.34 142.39 l
+435.73 142.59 l
+436.11 142.78 l
+436.50 142.98 l
+436.88 143.17 l
+437.26 143.37 l
+437.65 143.57 l
+438.03 143.78 l
+438.42 143.98 l
+438.80 144.19 l
+439.18 144.40 l
+439.57 144.61 l
+439.95 144.82 l
+440.34 145.04 l
+440.72 145.26 l
+441.10 145.48 l
+441.49 145.70 l
+441.87 145.92 l
+442.26 146.14 l
+442.64 146.37 l
+443.02 146.60 l
+443.41 146.83 l
+443.79 147.06 l
+444.18 147.29 l
+444.56 147.53 l
+444.94 147.77 l
+445.33 148.01 l
+445.71 148.25 l
+446.10 148.49 l
+446.48 148.74 l
+446.86 148.99 l
+447.25 149.24 l
+447.63 149.49 l
+448.02 149.74 l
+448.40 150.00 l
+448.78 150.25 l
+449.17 150.51 l
+449.55 150.77 l
+449.94 151.04 l
+450.32 151.30 l
+450.70 151.57 l
+451.09 151.84 l
+451.47 152.11 l
+451.86 152.38 l
+452.24 152.65 l
+452.62 152.93 l
+453.01 153.21 l
+453.39 153.49 l
+453.78 153.77 l
+454.16 154.05 l
+454.54 154.34 l
+454.93 154.63 l
+455.31 154.91 l
+455.70 155.21 l
+456.08 155.50 l
+456.46 155.80 l
+456.85 156.09 l
+457.23 156.39 l
+457.62 156.69 l
+458.00 157.00 l
+458.38 157.30 l
+458.77 157.61 l
+459.15 157.92 l
+459.54 158.23 l
+459.92 158.54 l
+460.30 158.85 l
+460.69 159.17 l
+461.07 159.49 l
+461.46 159.81 l
+461.84 160.13 l
+462.22 160.45 l
+462.61 160.78 l
+462.99 161.11 l
+463.38 161.44 l
+463.76 161.77 l
+464.14 162.10 l
+464.53 162.44 l
+464.91 162.77 l
+465.30 163.11 l
+465.68 163.45 l
+466.06 163.80 l
+466.45 164.14 l
+466.83 164.49 l
+467.22 164.84 l
+467.60 165.19 l
+467.98 165.54 l
+468.37 165.90 l
+468.75 166.25 l
+469.14 166.61 l
+469.52 166.97 l
+469.90 167.33 l
+470.29 167.70 l
+470.67 168.06 l
+471.06 168.43 l
+471.44 168.80 l
+471.82 169.17 l
+472.21 169.55 l
+472.59 169.92 l
+472.98 170.30 l
+473.36 170.68 l
+473.74 171.06 l
+474.13 171.44 l
+474.51 171.83 l
+474.90 172.22 l
+475.28 172.60 l
+475.66 173.00 l
+476.05 173.39 l
+476.43 173.78 l
+476.82 174.18 l
+477.20 174.58 l
+477.58 174.98 l
+477.97 175.38 l
+478.35 175.78 l
+478.74 176.19 l
+479.12 176.60 l
+479.50 177.01 l
+479.89 177.42 l
+480.27 177.83 l
+480.66 178.25 l
+481.04 178.67 l
+481.42 179.09 l
+481.81 179.51 l
+482.19 179.93 l
+482.58 180.36 l
+482.96 180.78 l
+483.34 181.21 l
+483.73 181.64 l
+484.11 182.08 l
+484.50 182.51 l
+484.88 182.95 l
+485.26 183.39 l
+485.65 183.83 l
+486.03 184.27 l
+486.42 184.71 l
+486.80 185.16 l
+487.18 185.61 l
+487.57 186.06 l
+487.95 186.51 l
+488.34 186.96 l
+488.72 187.42 l
+489.10 187.88 l
+489.49 188.34 l
+489.87 188.80 l
+490.26 189.26 l
+490.64 189.73 l
+491.02 190.20 l
+491.41 190.66 l
+491.79 191.14 l
+492.18 191.61 l
+492.56 192.08 l
+492.94 192.56 l
+493.33 193.04 l
+493.71 193.52 l
+494.10 194.00 l
+494.48 194.49 l
+494.86 194.97 l
+495.25 195.46 l
+495.63 195.95 l
+496.02 196.44 l
+496.40 196.94 l
+496.78 197.43 l
+497.17 197.93 l
+497.55 198.43 l
+497.94 198.93 l
+498.32 199.44 l
+498.70 199.94 l
+499.09 200.45 l
+499.47 200.96 l
+499.86 201.47 l
+500.24 201.98 l
+500.62 202.50 l
+501.01 203.01 l
+501.39 203.53 l
+501.78 204.05 l
+502.16 204.58 l
+502.54 205.10 l
+502.93 205.63 l
+503.31 206.16 l
+503.70 206.69 l
+504.08 207.22 l
+504.46 207.75 l
+504.85 208.29 l
+505.23 208.83 l
+505.62 209.37 l
+506.00 209.91 l
+506.38 210.45 l
+506.77 211.00 l
+507.15 211.55 l
+507.54 212.10 l
+507.92 212.65 l
+508.30 213.20 l
+508.69 213.76 l
+509.07 214.31 l
+509.46 214.87 l
+509.84 215.43 l
+510.22 216.00 l
+510.61 216.56 l
+510.99 217.13 l
+511.38 217.69 l
+511.76 218.27 l
+512.14 218.84 l
+512.53 219.41 l
+512.91 219.99 l
+513.30 220.57 l
+513.68 221.15 l
+514.06 221.73 l
+514.45 222.31 l
+514.83 222.90 l
+515.22 223.49 l
+515.60 224.08 l
+515.98 224.67 l
+516.37 225.26 l
+516.75 225.86 l
+517.14 226.45 l
+517.52 227.05 l
+517.90 227.65 l
+518.29 228.26 l
+518.67 228.86 l
+519.06 229.47 l
+519.44 230.08 l
+519.82 230.69 l
+520.21 231.30 l
+520.59 231.91 l
+520.98 232.53 l
+521.36 233.15 l
+521.74 233.77 l
+522.13 234.39 l
+522.51 235.01 l
+522.90 235.64 l
+523.28 236.27 l
+523.66 236.90 l
+524.05 237.53 l
+524.43 238.16 l
+524.82 238.80 l
+525.20 239.44 l
+525.58 240.08 l
+525.97 240.72 l
+526.35 241.36 l
+526.74 242.00 l
+527.12 242.65 l
+527.50 243.30 l
+527.89 243.95 l
+528.27 244.60 l
+528.66 245.26 l
+529.04 245.91 l
+529.42 246.57 l
+529.81 247.23 l
+530.19 247.90 l
+530.58 248.56 l
+530.96 249.23 l
+531.34 249.89 l
+531.73 250.56 l
+532.11 251.23 l
+532.50 251.91 l
+532.88 252.58 l
+533.26 253.26 l
+533.65 253.94 l
+534.03 254.62 l
+534.42 255.31 l
+534.80 255.99 l
+535.18 256.68 l
+535.57 257.37 l
+535.95 258.06 l
+536.34 258.75 l
+536.72 259.45 l
+537.10 260.14 l
+537.49 260.84 l
+537.87 261.54 l
+538.26 262.24 l
+538.64 262.95 l
+539.02 263.65 l
+539.41 264.36 l
+539.79 265.07 l
+540.18 265.78 l
+540.56 266.50 l
+540.94 267.21 l
+541.33 267.93 l
+541.71 268.65 l
+542.10 269.37 l
+542.48 270.09 l
+542.86 270.82 l
+543.25 271.55 l
+543.63 272.28 l
+544.02 273.01 l
+544.40 273.74 l
+544.78 274.48 l
+545.17 275.21 l
+545.55 275.95 l
+545.94 276.69 l
+546.32 277.43 l
+546.70 278.18 l
+547.09 278.92 l
+547.47 279.67 l
+547.86 280.42 l
+548.24 281.17 l
+548.62 281.93 l
+549.01 282.68 l
+549.39 283.44 l
+549.78 284.20 l
+550.16 284.96 l
+550.54 285.73 l
+550.93 286.49 l
+551.31 287.26 l
+551.70 288.03 l
+552.08 288.80 l
+552.46 289.57 l
+552.85 290.35 l
+553.23 291.12 l
+553.62 291.90 l
+554.00 292.68 l
+554.38 293.47 l
+554.77 294.25 l
+555.15 295.04 l
+555.54 295.83 l
+555.92 296.62 l
+556.30 297.41 l
+556.69 298.20 l
+557.07 299.00 l
+557.46 299.80 l
+557.84 300.60 l
+558.22 301.40 l
+558.61 302.20 l
+558.99 303.01 l
+559.38 303.81 l
+559.76 304.62 l
+560.14 305.44 l
+560.53 306.25 l
+560.91 307.06 l
+561.30 307.88 l
+561.68 308.70 l
+562.06 309.52 l
+562.45 310.34 l
+562.83 311.17 l
+563.22 311.99 l
+563.60 312.82 l
+563.98 313.65 l
+564.37 314.49 l
+564.75 315.32 l
+565.14 316.16 l
+565.52 316.99 l
+565.90 317.83 l
+566.29 318.68 l
+566.67 319.52 l
+567.06 320.36 l
+567.44 321.21 l
+567.82 322.06 l
+568.21 322.91 l
+568.59 323.77 l
+568.98 324.62 l
+569.36 325.48 l
+569.74 326.34 l
+570.13 327.20 l
+570.51 328.06 l
+570.90 328.93 l
+571.28 329.79 l
+571.66 330.66 l
+572.05 331.53 l
+572.43 332.40 l
+572.82 333.28 l
+573.20 334.16 l
+573.58 335.03 l
+573.97 335.91 l
+574.35 336.80 l
+574.74 337.68 l
+575.12 338.57 l
+575.50 339.45 l
+575.89 340.34 l
+576.27 341.23 l
+576.66 342.13 l
+577.04 343.02 l
+577.42 343.92 l
+577.81 344.82 l
+578.19 345.72 l
+578.58 346.62 l
+578.96 347.53 l
+579.34 348.44 l
+579.73 349.34 l
+580.11 350.25 l
+580.50 351.17 l
+580.88 352.08 l
+581.26 353.00 l
+581.65 353.92 l
+582.03 354.84 l
+582.42 355.76 l
+582.80 356.68 l
+583.18 357.61 l
+583.57 358.54 l
+583.95 359.47 l
+584.34 360.40 l
+584.72 361.33 l
+585.10 362.27 l
+585.49 363.20 l
+585.87 364.14 l
+586.26 365.08 l
+586.64 366.03 l
+587.02 366.97 l
+587.41 367.92 l
+587.79 368.87 l
+588.18 369.82 l
+588.56 370.77 l
+588.94 371.73 l
+589.33 372.68 l
+589.71 373.64 l
+590.10 374.60 l
+590.48 375.56 l
+590.86 376.53 l
+591.25 377.49 l
+591.63 378.46 l
+592.02 379.43 l
+592.40 380.40 l
+592.78 381.38 l
+593.17 382.35 l
+593.55 383.33 l
+593.94 384.31 l
+594.32 385.29 l
+594.70 386.28 l
+595.09 387.26 l
+595.47 388.25 l
+595.86 389.24 l
+596.24 390.23 l
+596.62 391.22 l
+597.01 392.21 l
+597.39 393.21 l
+597.78 394.21 l
+598.16 395.21 l
+598.54 396.21 l
+598.93 397.22 l
+599.31 398.22 l
+599.70 399.23 l
+600.08 400.24 l
+600.46 401.25 l
+600.85 402.27 l
+601.23 403.28 l
+601.62 404.30 l
+602.00 405.32 l
+602.38 406.34 l
+602.77 407.37 l
+603.15 408.39 l
+603.54 409.42 l
+603.92 410.45 l
+604.30 411.48 l
+604.69 412.51 l
+605.07 413.55 l
+605.46 414.58 l
+605.84 415.62 l
+606.22 416.66 l
+606.61 417.70 l
+606.99 418.75 l
+607.38 419.79 l
+607.76 420.84 l
+608.14 421.89 l
+608.53 422.95 l
+608.91 424.00 l
+609.30 425.06 l
+609.68 426.11 l
+610.06 427.17 l
+610.45 428.23 l
+610.83 429.30 l
+611.22 430.36 l
+611.60 431.43 l
+611.98 432.50 l
+612.37 433.57 l
+612.75 434.64 l
+613.14 435.72 l
+613.52 436.80 l
+613.90 437.88 l
+614.29 438.96 l
+614.67 440.04 l
+615.06 441.12 l
+615.44 442.21 l
+615.82 443.30 l
+616.21 444.39 l
+616.59 445.48 l
+616.98 446.57 l
+617.36 447.67 l
+617.74 448.77 l
+618.13 449.87 l
+618.51 450.97 l
+618.90 452.07 l
+619.28 453.18 l
+619.66 454.29 l
+620.05 455.40 l
+620.43 456.51 l
+620.82 457.62 l
+621.20 458.74 l
+621.58 459.85 l
+621.97 460.97 l
+622.35 462.09 l
+622.74 463.22 l
+623.12 464.34 l
+623.50 465.47 l
+623.89 466.60 l
+624.27 467.73 l
+624.66 468.86 l
+625.04 469.99 l
+625.42 471.13 l
+625.81 472.27 l
+626.19 473.41 l
+626.58 474.55 l
+626.96 475.69 l
+627.34 476.84 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+227.98 178.70 m 227.98 484.48 l S
+227.98 178.70 m 235.42 178.70 l S
+227.98 255.15 m 235.42 255.15 l S
+227.98 331.59 m 235.42 331.59 l S
+227.98 408.04 m 235.42 408.04 l S
+227.98 484.48 m 235.42 484.48 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 0.00 12.00 -12.00 0.00 253.90 175.37 Tm (0) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 253.90 251.81 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 253.90 328.26 Tm (4) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 253.90 404.70 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 253.90 481.15 Tm (8) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F3 1 Tf 14.00 0.00 0.00 14.00 295.62 515.09 Tm [(mgp < 0: all tic) 20 (ks and labels inside `frame')] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 268.30 280.51 Tm (x^2 - 1.2) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.804 0.000 SCN
+2.25 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 178.70 m 243.34 285.73 l S
+320.14 178.70 m 320.14 171.06 l S
+396.94 178.70 m 396.94 132.84 l S
+473.74 178.70 m 473.74 171.06 l S
+550.54 178.70 m 550.54 285.73 l S
+627.34 178.70 m 627.34 476.84 l S
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 1.000 SCN
+0.75 w
+[ 1.50 1.50] 0 d
+1 J
+1 j
+10.00 M
+320.14 178.70 m 473.74 178.70 l S
+320.14 178.70 m 320.14 186.13 l S
+396.94 178.70 m 396.94 186.13 l S
+473.74 178.70 m 473.74 186.13 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 313.30 195.98 Tm (-1) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 393.61 195.98 Tm (0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 470.41 195.98 Tm (1) Tj
+ET
+243.34 178.70 m 627.34 178.70 l S
+243.34 178.70 m 243.34 171.50 l S
+550.54 178.70 m 550.54 171.50 l S
+627.34 178.70 m 627.34 171.50 l S
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 236.50 152.78 Tm (-2) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 547.21 152.78 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 624.01 152.78 Tm (3) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 317.11 107.56 Tm (note the x-ticks on the other side of the bars) Tj
+ET
+Q
+endstream
+endobj
+33 0 obj
+18336
+endobj
+34 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 35 0 R /Resources 4 0 R >>
+endobj
+35 0 obj
+<<
+/Length 36 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F3 1 Tf 14.00 0.00 0.00 14.00 380.72 515.09 Tm [(UCB) 30 (Admissions)] TJ
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 420.01 93.16 Tm (Admit) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 284.83 Tm (Gender) Tj
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 8.00 0.00 0.00 8.00 297.74 483.08 Tm (Admitted) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 503.23 483.86 Tm (Rejected) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 236.61 355.38 Tm (Male) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 236.61 157.54 Tm [(F) 30 (emale)] TJ
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 270.73 474.71 Tm (A) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 315.71 474.71 Tm (B) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 341.26 474.71 Tm (C) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 356.51 474.71 Tm (D) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 368.69 474.71 Tm (E) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 375.19 474.71 Tm (F) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB cs
+0.745 0.745 0.745 scn
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+248.33 256.09 m
+298.48 256.09 l
+298.48 472.00 l
+248.33 472.00 l
+b
+301.09 256.09 m
+335.66 256.09 l
+335.66 472.00 l
+301.09 472.00 l
+b
+338.27 256.09 m
+350.03 256.09 l
+350.03 472.00 l
+338.27 472.00 l
+b
+352.63 256.09 m
+366.15 256.09 l
+366.15 472.00 l
+352.63 472.00 l
+b
+368.76 256.09 m
+373.95 256.09 l
+373.95 472.00 l
+368.76 472.00 l
+b
+376.56 256.09 m
+378.71 256.09 l
+378.71 472.00 l
+376.56 472.00 l
+b
+248.33 120.57 m
+267.08 120.57 l
+267.08 220.95 l
+248.33 220.95 l
+b
+269.68 120.57 m
+273.27 120.57 l
+273.27 220.95 l
+269.68 220.95 l
+b
+275.87 120.57 m
+318.43 120.57 l
+318.43 220.95 l
+275.87 220.95 l
+b
+321.04 120.57 m
+348.64 120.57 l
+348.64 220.95 l
+321.04 220.95 l
+b
+351.25 120.57 m
+371.05 120.57 l
+371.05 220.95 l
+351.25 220.95 l
+b
+373.66 120.57 m
+378.71 120.57 l
+378.71 220.95 l
+373.66 220.95 l
+b
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 8.00 0.00 0.00 8.00 432.83 474.71 Tm (A) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 469.21 474.71 Tm (B) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 498.68 474.71 Tm (C) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 532.83 474.71 Tm (D) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 563.04 474.71 Tm (E) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 597.72 474.71 Tm (F) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB cs
+0.745 0.745 0.745 scn
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+416.08 301.59 m
+454.92 301.59 l
+454.92 472.00 l
+416.08 472.00 l
+b
+459.04 301.59 m
+484.73 301.59 l
+484.73 472.00 l
+459.04 472.00 l
+b
+488.84 301.59 m
+514.29 301.59 l
+514.29 472.00 l
+488.84 472.00 l
+b
+518.40 301.59 m
+553.03 301.59 l
+553.03 472.00 l
+518.40 472.00 l
+b
+557.14 301.59 m
+574.27 301.59 l
+574.27 472.00 l
+557.14 472.00 l
+b
+578.39 301.59 m
+621.95 301.59 l
+621.95 472.00 l
+578.39 472.00 l
+b
+416.08 120.57 m
+418.83 120.57 l
+418.83 266.44 l
+416.08 266.44 l
+b
+422.95 120.57 m
+424.11 120.57 l
+424.11 266.44 l
+422.95 266.44 l
+b
+428.23 120.57 m
+484.91 120.57 l
+484.91 266.44 l
+428.23 266.44 l
+b
+489.03 120.57 m
+524.41 120.57 l
+524.41 266.44 l
+489.03 266.44 l
+b
+528.52 120.57 m
+571.87 120.57 l
+571.87 266.44 l
+528.52 266.44 l
+b
+575.99 120.57 m
+621.95 120.57 l
+621.95 266.44 l
+575.99 266.44 l
+b
+Q
+endstream
+endobj
+36 0 obj
+3292
+endobj
+37 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 38 0 R /Resources 4 0 R >>
+endobj
+38 0 obj
+<<
+/Length 39 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F3 1 Tf 14.00 0.00 0.00 14.00 380.72 515.09 Tm [(UCB) 30 (Admissions)] TJ
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 418.00 93.16 Tm (x label) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 296.83 Tm (YY) Tj
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 8.00 0.00 0.00 8.00 297.74 483.08 Tm (Admitted) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 503.23 483.86 Tm (Rejected) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 236.61 355.38 Tm (Male) Tj
+ET
+BT
+/F2 1 Tf 0.00 8.00 -8.00 0.00 236.61 157.54 Tm [(F) 30 (emale)] TJ
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 270.73 474.71 Tm (A) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 315.71 474.71 Tm (B) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 341.26 474.71 Tm (C) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 356.51 474.71 Tm (D) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 368.69 474.71 Tm (E) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 375.19 474.71 Tm (F) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB cs
+0.745 0.745 0.745 scn
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+248.33 256.09 m
+298.48 256.09 l
+298.48 472.00 l
+248.33 472.00 l
+b
+301.09 256.09 m
+335.66 256.09 l
+335.66 472.00 l
+301.09 472.00 l
+b
+338.27 256.09 m
+350.03 256.09 l
+350.03 472.00 l
+338.27 472.00 l
+b
+352.63 256.09 m
+366.15 256.09 l
+366.15 472.00 l
+352.63 472.00 l
+b
+368.76 256.09 m
+373.95 256.09 l
+373.95 472.00 l
+368.76 472.00 l
+b
+376.56 256.09 m
+378.71 256.09 l
+378.71 472.00 l
+376.56 472.00 l
+b
+248.33 120.57 m
+267.08 120.57 l
+267.08 220.95 l
+248.33 220.95 l
+b
+269.68 120.57 m
+273.27 120.57 l
+273.27 220.95 l
+269.68 220.95 l
+b
+275.87 120.57 m
+318.43 120.57 l
+318.43 220.95 l
+275.87 220.95 l
+b
+321.04 120.57 m
+348.64 120.57 l
+348.64 220.95 l
+321.04 220.95 l
+b
+351.25 120.57 m
+371.05 120.57 l
+371.05 220.95 l
+351.25 220.95 l
+b
+373.66 120.57 m
+378.71 120.57 l
+378.71 220.95 l
+373.66 220.95 l
+b
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 8.00 0.00 0.00 8.00 432.83 474.71 Tm (A) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 469.21 474.71 Tm (B) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 498.68 474.71 Tm (C) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 532.83 474.71 Tm (D) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 563.04 474.71 Tm (E) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 597.72 474.71 Tm (F) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB cs
+0.745 0.745 0.745 scn
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+416.08 301.59 m
+454.92 301.59 l
+454.92 472.00 l
+416.08 472.00 l
+b
+459.04 301.59 m
+484.73 301.59 l
+484.73 472.00 l
+459.04 472.00 l
+b
+488.84 301.59 m
+514.29 301.59 l
+514.29 472.00 l
+488.84 472.00 l
+b
+518.40 301.59 m
+553.03 301.59 l
+553.03 472.00 l
+518.40 472.00 l
+b
+557.14 301.59 m
+574.27 301.59 l
+574.27 472.00 l
+557.14 472.00 l
+b
+578.39 301.59 m
+621.95 301.59 l
+621.95 472.00 l
+578.39 472.00 l
+b
+416.08 120.57 m
+418.83 120.57 l
+418.83 266.44 l
+416.08 266.44 l
+b
+422.95 120.57 m
+424.11 120.57 l
+424.11 266.44 l
+422.95 266.44 l
+b
+428.23 120.57 m
+484.91 120.57 l
+484.91 266.44 l
+428.23 266.44 l
+b
+489.03 120.57 m
+524.41 120.57 l
+524.41 266.44 l
+489.03 266.44 l
+b
+528.52 120.57 m
+571.87 120.57 l
+571.87 266.44 l
+528.52 266.44 l
+b
+575.99 120.57 m
+621.95 120.57 l
+621.95 266.44 l
+575.99 266.44 l
+b
+Q
+endstream
+endobj
+39 0 obj
+3290
+endobj
+40 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 41 0 R /Resources 4 0 R >>
+endobj
+41 0 obj
+<<
+/Length 42 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+1.50 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 132.84 m 243.34 476.84 l S
+320.14 132.84 m 320.14 329.41 l S
+627.34 132.84 m 627.34 280.27 l S
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 192.58 Tm [(tt <- tab) 20 (le\(c\(rep\(0, 7\), rep\(1, 4\), rep\(5, 3\)\)\))] TJ
+ET
+Q
+endstream
+endobj
+42 0 obj
+629
+endobj
+43 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 44 0 R /Resources 4 0 R >>
+endobj
+44 0 obj
+<<
+/Length 45 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+1.50 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 132.84 m 243.34 476.84 l S
+320.14 132.84 m 320.14 329.41 l S
+627.34 132.84 m 627.34 280.27 l S
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+227.98 132.84 m 227.98 476.84 l S
+227.98 132.84 m 220.78 132.84 l S
+227.98 181.98 m 220.78 181.98 l S
+227.98 231.12 m 220.78 231.12 l S
+227.98 280.27 m 220.78 280.27 l S
+227.98 329.41 m 220.78 329.41 l S
+227.98 378.55 m 220.78 378.55 l S
+227.98 427.69 m 220.78 427.69 l S
+227.98 476.84 m 220.78 476.84 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 129.50 Tm (0) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 178.64 Tm (1) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 227.79 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 276.93 Tm (3) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 326.07 Tm (4) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 375.22 Tm (5) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 424.36 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 473.50 Tm (7) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 301.50 Tm (tt) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+396.94 231.12 95.43 -28.86 re S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F6 1 Tf 12.00 0.00 0.00 12.00 418.54 209.67 Tm (q) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 418.86 215.64 Tm (^) Tj
+ET
+BT
+/F6 1 Tf 12.00 0.00 0.00 12.00 427.57 209.67 Tm (=) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 436.94 209.67 Tm (3.141593) Tj
+ET
+Q
+endstream
+endobj
+45 0 obj
+1813
+endobj
+46 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 47 0 R /Resources 4 0 R >>
+endobj
+47 0 obj
+<<
+/Length 48 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 119.08 m 597.81 119.08 l S
+243.34 119.08 m 243.34 111.88 l S
+302.42 119.08 m 302.42 111.88 l S
+361.50 119.08 m 361.50 111.88 l S
+420.58 119.08 m 420.58 111.88 l S
+479.65 119.08 m 479.65 111.88 l S
+538.73 119.08 m 538.73 111.88 l S
+597.81 119.08 m 597.81 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 240.01 93.16 Tm (0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 299.09 93.16 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 358.16 93.16 Tm (4) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 417.24 93.16 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 476.32 93.16 Tm (8) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 532.06 93.16 Tm (10) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 591.13 93.16 Tm (12) Tj
+ET
+227.98 132.84 m 227.98 476.84 l S
+227.98 132.84 m 220.78 132.84 l S
+227.98 201.64 m 220.78 201.64 l S
+227.98 270.44 m 220.78 270.44 l S
+227.98 339.24 m 220.78 339.24 l S
+227.98 408.04 m 220.78 408.04 l S
+227.98 476.84 m 220.78 476.84 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 124.50 Tm (0.0) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 193.30 Tm (0.2) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 262.10 Tm (0.4) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 330.90 Tm (0.6) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 399.70 Tm (0.8) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 468.50 Tm (1.0) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 432.34 64.36 Tm (x) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 288.51 Tm (ECDF) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+213.81 132.84 m 272.88 132.84 l S
+272.88 190.17 m 302.42 190.17 l S
+302.42 247.50 m 331.96 247.50 l S
+331.96 304.84 m 361.50 304.84 l S
+361.50 362.17 m 479.65 362.17 l S
+479.65 419.50 m 597.81 419.50 l S
+597.81 476.84 m 656.88 476.84 l S
+/sRGB cs
+0.000 0.000 0.000 scn
+BT
+/F1 1 Tf 2 Tr 7.48 0 0 7.48 269.92 187.58 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 2 Tr 7.48 0 0 7.48 299.46 244.91 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 2 Tr 7.48 0 0 7.48 329.00 302.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 2 Tr 7.48 0 0 7.48 358.54 359.58 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 2 Tr 7.48 0 0 7.48 476.69 416.91 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 2 Tr 7.48 0 0 7.48 594.84 474.24 Tm (l) Tj 0 Tr
+ET
+0.702 0.702 0.702 SCN
+0.75 w
+[ 2.25 3.75] 0 d
+227.98 132.84 m 642.70 132.84 l S
+227.98 476.84 m 642.70 476.84 l S
+Q
+endstream
+endobj
+48 0 obj
+2634
+endobj
+49 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 50 0 R /Resources 4 0 R >>
+endobj
+50 0 obj
+<<
+/Length 51 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+286.01 119.08 m 627.34 119.08 l S
+286.01 119.08 m 286.01 111.88 l S
+371.34 119.08 m 371.34 111.88 l S
+456.68 119.08 m 456.68 111.88 l S
+542.01 119.08 m 542.01 111.88 l S
+627.34 119.08 m 627.34 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 282.68 93.16 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 368.01 93.16 Tm (4) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 453.34 93.16 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 538.68 93.16 Tm (8) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 620.67 93.16 Tm (10) Tj
+ET
+227.98 171.06 m 227.98 476.84 l S
+227.98 171.06 m 220.78 171.06 l S
+227.98 247.50 m 220.78 247.50 l S
+227.98 323.95 m 220.78 323.95 l S
+227.98 400.39 m 220.78 400.39 l S
+227.98 476.84 m 220.78 476.84 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 167.72 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 244.17 Tm (4) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 320.61 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 397.06 Tm (8) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 470.17 Tm (10) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 420.85 64.36 Tm [(Inde) 30 (x)] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 293.16 Tm (1:10) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 240.01 129.69 Tm (o) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 325.68 206.14 Tm (x) Tj
+ET
+0.847 0.749 0.847 scn
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 476.84 60.38 -43.20 re B
+1.000 0.000 0.000 SCN
+1.50 w
+[] 0 d
+246.58 462.44 m 268.18 462.44 l S
+0.000 0.804 0.000 SCN
+2.25 w
+[] 0 d
+246.58 448.04 m 268.18 448.04 l S
+0.529 0.808 0.922 scn
+1.000 0.000 0.000 SCN
+1.50 w
+[] 0 d
+BT
+/F1 1 Tf 2 Tr 7.48 0 0 7.48 254.42 459.84 Tm (l) Tj 0 Tr
+ET
+0.000 0.804 0.000 SCN
+2.25 w
+[] 0 d
+254.99 445.64 4.79 4.79 re B
+BT
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 278.98 458.13 Tm (A) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 278.98 443.73 Tm (bcd) Tj
+ET
+Q
+endstream
+endobj
+51 0 obj
+2268
+endobj
+52 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 53 0 R /Resources 4 0 R >>
+endobj
+53 0 obj
+<<
+/Length 54 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.59 132.84 m
+264.12 150.94 l
+284.66 169.05 l
+305.19 187.15 l
+325.73 205.26 l
+346.26 223.36 l
+366.79 241.47 l
+387.33 259.57 l
+407.86 277.68 l
+428.40 295.79 l
+448.93 313.89 l
+469.46 332.00 l
+490.00 350.10 l
+510.53 368.21 l
+531.07 386.31 l
+551.60 404.42 l
+572.14 422.52 l
+592.67 440.63 l
+613.20 458.73 l
+633.74 476.84 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+228.94 119.08 m 560.73 119.08 l S
+228.94 119.08 m 228.94 111.88 l S
+311.89 119.08 m 311.89 111.88 l S
+394.84 119.08 m 394.84 111.88 l S
+477.78 119.08 m 477.78 111.88 l S
+560.73 119.08 m 560.73 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 212.10 93.16 Tm (1e-11) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 295.04 93.16 Tm (1e+53) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 374.65 93.16 Tm (1e+117) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 457.60 93.16 Tm (1e+181) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 540.55 93.16 Tm (1e+245) Tj
+ET
+227.98 119.80 m 227.98 419.45 l S
+227.98 119.80 m 220.78 119.80 l S
+227.98 194.71 m 220.78 194.71 l S
+227.98 269.62 m 220.78 269.62 l S
+227.98 344.54 m 220.78 344.54 l S
+227.98 419.45 m 220.78 419.45 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 102.95 Tm (1e-10) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 177.86 Tm (1e+49) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 249.44 Tm (1e+108) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 324.35 Tm (1e+167) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 399.27 Tm (1e+226) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 432.34 64.36 Tm (x) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 290.68 Tm (x^0.9) Tj
+ET
+Q
+endstream
+endobj
+54 0 obj
+1944
+endobj
+55 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 56 0 R /Resources 4 0 R >>
+endobj
+56 0 obj
+<<
+/Length 57 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 240.38 130.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 288.38 173.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 336.38 216.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 384.38 259.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 432.38 302.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 480.38 345.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 528.38 388.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 576.38 431.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 624.38 474.24 Tm (l) Tj 0 Tr
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+319.34 119.08 m 555.34 119.08 l S
+319.34 119.08 m 319.34 111.88 l S
+431.34 119.08 m 431.34 111.88 l S
+555.34 119.08 m 555.34 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 309.19 93.16 Tm [(F) 30 (eb)] TJ
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 421.01 93.16 Tm (Mar) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 546.01 93.16 Tm (Apr) Tj
+ET
+227.98 175.84 m 227.98 433.84 l S
+227.98 175.84 m 220.78 175.84 l S
+227.98 261.84 m 220.78 261.84 l S
+227.98 347.84 m 220.78 347.84 l S
+227.98 433.84 m 220.78 433.84 l S
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 172.50 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 258.50 Tm (4) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 344.50 Tm (6) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 430.50 Tm (8) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 351.63 64.36 Tm [(as) 15 (.Date\("2001/1/1"\) + 12 * \(1:9\))] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 296.50 Tm (1:9) Tj
+ET
+Q
+endstream
+endobj
+57 0 obj
+1914
+endobj
+58 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 59 0 R /Resources 4 0 R >>
+endobj
+59 0 obj
+<<
+/Length 60 0 R
+>>
+stream
+1 J 1 j q
+Q q 210.27 97.05 441.50 411.26 re W n
+Q q 210.27 97.05 441.50 411.26 re W n
+/sRGB CS
+0.745 0.745 0.745 SCN
+0.75 w
+[ 0.00 3.00] 0 d
+1 J
+1 j
+10.00 M
+210.27 179.30 m 651.78 179.30 l S
+210.27 261.55 m 651.78 261.55 l S
+210.27 343.80 m 651.78 343.80 l S
+210.27 426.06 m 651.78 426.06 l S
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+BT
+/F1 1 Tf 1 Tr 5.24 0 0 5.24 224.55 177.48 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 5.24 0 0 5.24 360.82 259.73 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 5.24 0 0 5.24 497.08 341.99 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 5.24 0 0 5.24 633.35 424.24 Tm (l) Tj 0 Tr
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+226.62 97.05 m 635.42 97.05 l S
+226.62 97.05 m 226.62 92.01 l S
+294.76 97.05 m 294.76 92.01 l S
+362.89 97.05 m 362.89 92.01 l S
+431.02 97.05 m 431.02 92.01 l S
+499.16 97.05 m 499.16 92.01 l S
+567.29 97.05 m 567.29 92.01 l S
+635.42 97.05 m 635.42 92.01 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 8.00 0.00 0.00 8.00 221.06 78.90 Tm (1.0) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 289.20 78.90 Tm (1.5) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 357.33 78.90 Tm (2.0) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 425.46 78.90 Tm (2.5) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 493.60 78.90 Tm (3.0) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 561.73 78.90 Tm (3.5) Tj
+ET
+BT
+/F2 1 Tf 8.00 0.00 0.00 8.00 629.86 78.90 Tm (4.0) Tj
+ET
+210.27 97.05 m
+651.78 97.05 l
+651.78 508.31 l
+210.27 508.31 l
+210.27 97.05 l
+S
+Q
+endstream
+endobj
+60 0 obj
+1468
+endobj
+61 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 62 0 R /Resources 4 0 R >>
+endobj
+62 0 obj
+<<
+/Length 63 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 353.01 m
+281.74 190.98 l
+320.14 132.84 l
+358.54 232.04 l
+396.94 397.37 l
+435.34 476.84 l
+473.74 397.37 l
+512.14 232.04 l
+550.54 132.84 l
+588.94 190.98 l
+627.34 353.01 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 432.34 64.36 Tm (x) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 295.50 Tm (cos) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+435.34 119.08 m 435.34 490.60 l S
+Q
+endstream
+endobj
+63 0 obj
+656
+endobj
+64 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 65 0 R /Resources 4 0 R >>
+endobj
+65 0 obj
+<<
+/Length 66 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+358.54 148.05 m
+377.74 132.84 l
+396.94 159.74 l
+416.14 222.17 l
+435.34 304.84 l
+454.54 387.51 l
+473.74 449.93 l
+492.94 476.84 l
+512.14 461.63 l
+531.34 408.03 l
+550.54 329.17 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 297.17 Tm (sin) Tj
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+358.54 119.08 m 550.54 119.08 l S
+358.54 119.08 m 358.54 104.68 l S
+550.54 119.08 m 550.54 104.68 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 351.70 93.16 Tm (-2) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 547.21 93.16 Tm (3) Tj
+ET
+243.34 119.08 m 627.34 119.08 l S
+243.34 119.08 m 243.34 111.88 l S
+627.34 119.08 m 627.34 111.88 l S
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 236.50 93.16 Tm (-5) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 624.01 93.16 Tm (5) Tj
+ET
+Q
+endstream
+endobj
+66 0 obj
+1038
+endobj
+67 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 68 0 R /Resources 4 0 R >>
+endobj
+68 0 obj
+<<
+/Length 69 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 433.25 m
+281.74 437.09 l
+320.14 212.89 l
+358.54 132.84 l
+396.94 329.83 l
+435.34 476.84 l
+473.74 329.83 l
+512.14 132.84 l
+550.54 212.89 l
+588.94 437.09 l
+627.34 433.25 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 432.34 64.36 Tm (x) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 295.50 Tm (cos) Tj
+ET
+Q
+endstream
+endobj
+69 0 obj
+522
+endobj
+70 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 71 0 R /Resources 4 0 R >>
+endobj
+71 0 obj
+<<
+/Length 72 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 433.25 m
+281.74 437.09 l
+320.14 212.89 l
+358.54 132.84 l
+396.94 329.83 l
+435.34 476.84 l
+473.74 329.83 l
+512.14 132.84 l
+550.54 212.89 l
+588.94 437.09 l
+627.34 433.25 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 432.34 64.36 Tm (x) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 266.50 Tm (Cosine  cos\(x\)) Tj
+ET
+Q
+endstream
+endobj
+72 0 obj
+535
+endobj
+73 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 74 0 R /Resources 4 0 R >>
+endobj
+74 0 obj
+<<
+/Length 75 0 R
+>>
+stream
+1 J 1 j q
+Q q 229.76 119.08 412.95 371.52 re W n
+Q q 229.76 119.08 412.95 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+283.29 476.84 m
+321.52 277.93 l
+359.76 213.31 l
+397.99 182.06 l
+436.23 164.05 l
+474.47 152.60 l
+512.70 144.88 l
+550.94 139.47 l
+589.17 135.61 l
+627.41 132.84 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+245.05 119.08 m 627.41 119.08 l S
+245.05 119.08 m 245.05 111.88 l S
+321.52 119.08 m 321.52 111.88 l S
+397.99 119.08 m 397.99 111.88 l S
+474.47 119.08 m 474.47 111.88 l S
+550.94 119.08 m 550.94 111.88 l S
+627.41 119.08 m 627.41 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 236.71 93.16 Tm (0.0) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 313.18 93.16 Tm (0.2) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 389.65 93.16 Tm (0.4) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 466.13 93.16 Tm (0.6) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 542.60 93.16 Tm (0.8) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 619.07 93.16 Tm (1.0) Tj
+ET
+229.76 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+229.76 490.60 l
+229.76 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 433.23 64.36 Tm (x) Tj
+ET
+BT
+/F6 1 Tf 0.00 12.00 -12.00 0.00 180.81 293.22 Tm (G) Tj
+ET
+BT
+/F6 1 Tf 0.00 15.00 -15.00 0.00 180.81 300.46 Tm (\() Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 180.81 305.46 Tm (x) Tj
+ET
+BT
+/F6 1 Tf 0.00 15.00 -15.00 0.00 180.81 311.46 Tm (\)) Tj
+ET
+Q
+endstream
+endobj
+75 0 obj
+1514
+endobj
+76 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 77 0 R /Resources 4 0 R >>
+endobj
+77 0 obj
+<<
+/Length 78 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 429.01 64.36 Tm (x1) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 301.84 Tm (x) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 240.01 128.62 Tm (1) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 432.01 300.62 Tm (2) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 624.01 472.73 Tm (3) Tj
+ET
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+248.71 137.64 m 429.98 300.03 l S
+440.71 309.64 m 621.98 472.03 l S
+Q
+endstream
+endobj
+78 0 obj
+625
+endobj
+79 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 80 0 R /Resources 4 0 R >>
+endobj
+80 0 obj
+<<
+/Length 81 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 476.84 m
+435.34 148.93 l
+627.34 132.84 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 432.34 64.36 Tm (x) Tj
+ET
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+1.000 0.000 0.000 SCN
+2.25 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 476.84 m
+435.34 148.93 l
+627.34 132.84 l
+S
+Q
+endstream
+endobj
+81 0 obj
+480
+endobj
+82 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 83 0 R /Resources 4 0 R >>
+endobj
+83 0 obj
+<<
+/Length 84 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 240.38 130.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 624.38 474.24 Tm (l) Tj 0 Tr
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+227.98 132.84 m 227.98 476.84 l S
+227.98 132.84 m 220.78 132.84 l S
+227.98 218.84 m 220.78 218.84 l S
+227.98 304.84 m 220.78 304.84 l S
+227.98 390.84 m 220.78 390.84 l S
+227.98 476.84 m 220.78 476.84 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 123.22 Tm [(T) 120 (ue)] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 206.68 Tm [(W) 30 (ed)] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 294.50 Tm (Thu) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 383.75 Tm [(Fr) -15 (i)] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 467.83 Tm (Sat) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 420.85 64.36 Tm [(Inde) 30 (x)] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 301.84 Tm (x) Tj
+ET
+Q
+endstream
+endobj
+84 0 obj
+1242
+endobj
+85 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 86 0 R /Resources 4 0 R >>
+endobj
+86 0 obj
+<<
+/Length 87 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 240.38 130.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 624.38 474.24 Tm (l) Tj 0 Tr
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+243.34 119.08 m 627.34 119.08 l S
+243.34 119.08 m 243.34 111.88 l S
+339.34 119.08 m 339.34 111.88 l S
+435.34 119.08 m 435.34 111.88 l S
+531.34 119.08 m 531.34 111.88 l S
+627.34 119.08 m 627.34 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 233.73 93.16 Tm [(T) 120 (ue)] TJ
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 327.19 93.16 Tm [(W) 30 (ed)] TJ
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 425.01 93.16 Tm (Thu) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 524.26 93.16 Tm [(Fr) -15 (i)] TJ
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 618.34 93.16 Tm (Sat) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 432.34 64.36 Tm (x) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 303.51 Tm (i) Tj
+ET
+Q
+endstream
+endobj
+87 0 obj
+1220
+endobj
+88 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 89 0 R /Resources 4 0 R >>
+endobj
+89 0 obj
+<<
+/Length 90 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 227.98 119.08 414.72 371.52 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 240.38 130.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 624.38 474.24 Tm (l) Tj 0 Tr
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+227.98 132.84 m 227.98 476.84 l S
+227.98 132.84 m 220.78 132.84 l S
+227.98 218.84 m 220.78 218.84 l S
+227.98 304.84 m 220.78 304.84 l S
+227.98 390.84 m 220.78 390.84 l S
+227.98 476.84 m 220.78 476.84 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 123.22 Tm [(T) 120 (ue)] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 206.68 Tm [(W) 30 (ed)] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 294.50 Tm (Thu) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 383.75 Tm [(Fr) -15 (i)] TJ
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 210.70 467.83 Tm (Sat) Tj
+ET
+227.98 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+227.98 490.60 l
+227.98 119.08 l
+S
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 434.01 64.36 Tm (i) Tj
+ET
+BT
+/F2 1 Tf 0.00 12.00 -12.00 0.00 181.90 301.84 Tm (x) Tj
+ET
+Q
+endstream
+endobj
+90 0 obj
+1230
+endobj
+91 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 92 0 R /Resources 4 0 R >>
+endobj
+92 0 obj
+<<
+/Length 93 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 199.18 207.65 Tm (0-5yrs) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 199.18 300.53 Tm (6-11yrs) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 199.18 393.41 Tm (12+ yrs) Tj
+ET
+Q q 249.40 119.08 393.30 371.52 re W n
+/sRGB CS
+0.745 0.745 0.745 SCN
+0.75 w
+[ 0.00 3.00] 0 d
+1 J
+1 j
+10.00 M
+249.40 211.96 m 642.70 211.96 l S
+249.40 304.84 m 642.70 304.84 l S
+249.40 397.72 m 642.70 397.72 l S
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 261.01 209.36 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 625.18 302.24 Tm (l) Tj 0 Tr
+ET
+BT
+/F1 1 Tf 1 Tr 7.48 0 0 7.48 611.69 395.12 Tm (l) Tj 0 Tr
+ET
+Q q 168.94 45.64 504.00 504.00 re W n
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+290.95 119.08 m 628.14 119.08 l S
+290.95 119.08 m 290.95 111.88 l S
+358.39 119.08 m 358.39 111.88 l S
+425.82 119.08 m 425.82 111.88 l S
+493.26 119.08 m 493.26 111.88 l S
+560.70 119.08 m 560.70 111.88 l S
+628.14 119.08 m 628.14 111.88 l S
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 12.00 0.00 0.00 12.00 284.27 93.16 Tm (20) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 351.71 93.16 Tm (40) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 419.15 93.16 Tm (60) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 486.59 93.16 Tm (80) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 550.69 93.16 Tm (100) Tj
+ET
+BT
+/F2 1 Tf 12.00 0.00 0.00 12.00 618.13 93.16 Tm (120) Tj
+ET
+249.40 119.08 m
+642.70 119.08 l
+642.70 490.60 l
+249.40 490.60 l
+249.40 119.08 l
+S
+Q
+endstream
+endobj
+93 0 obj
+1575
+endobj
+94 0 obj
+<< /Type /Page /Parent 3 0 R /Contents 95 0 R /Resources 4 0 R >>
+endobj
+95 0 obj
+<<
+/Length 96 0 R
+>>
+stream
+1 J 1 j q
+Q q 227.98 119.08 414.72 371.52 re W n
+Q q 168.94 45.64 504.00 504.00 re W n
+BT
+/sRGB cs
+0.000 0.000 0.000 scn
+/F2 1 Tf 0.00 24.00 -24.00 0.00 248.51 415.04 Tm (3) Tj
+ET
+BT
+/F2 1 Tf 0.00 24.00 -24.00 0.00 440.51 130.37 Tm (1) Tj
+ET
+BT
+/F2 1 Tf 0.00 24.00 -24.00 0.00 632.51 130.37 Tm (2) Tj
+ET
+/sRGB CS
+0.000 0.000 0.000 SCN
+0.75 w
+[] 0 d
+1 J
+1 j
+10.00 M
+435.34 163.70 m
+435.34 192.17 l
+627.34 192.17 l
+627.34 163.70 l
+S
+243.34 448.37 m
+243.34 476.84 l
+531.34 476.84 l
+531.34 192.17 l
+S
+Q
+endstream
+endobj
+96 0 obj
+499
+endobj
+3 0 obj
+<< /Type /Pages /Kids [ 7 0 R 10 0 R 13 0 R 16 0 R 19 0 R 22 0 R 25 0 R 28 0 R 31 0 R 34 0 R 37 0 R 40 0 R 43 0 R 46 0 R 49 0 R 52 0 R 55 0 R 58 0 R 61 0 R 64 0 R 67 0 R 70 0 R 73 0 R 76 0 R 79 0 R 82 0 R 85 0 R 88 0 R 91 0 R 94 0 R ] /Count 30 /MediaBox [0 0 841 595] >>
+endobj
+4 0 obj
+<<
+/ProcSet [/PDF /Text]
+/Font << /F1 98 0 R /F2 99 0 R /F3 100 0 R /F6 101 0 R >>
+/ExtGState << >>
+/ColorSpace << /sRGB 5 0 R >>
+>>
+endobj
+5 0 obj
+[/ICCBased 6 0 R]
+endobj
+6 0 obj
+<< /N 3 /Alternate /DeviceRGB /Length 9433 /Filter /ASCIIHexDecode >>
+stream
+00 00 0c 48 4c 69 6e 6f 02 10 00 00 6d 6e 74 72
+52 47 42 20 58 59 5a 20 07 ce 00 02 00 09 00 06
+00 31 00 00 61 63 73 70 4d 53 46 54 00 00 00 00
+49 45 43 20 73 52 47 42 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 f6 d6 00 01 00 00 00 00 d3 2d
+48 50 20 20 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 11 63 70 72 74 00 00 01 50 00 00 00 33
+64 65 73 63 00 00 01 84 00 00 00 6c 77 74 70 74
+00 00 01 f0 00 00 00 14 62 6b 70 74 00 00 02 04
+00 00 00 14 72 58 59 5a 00 00 02 18 00 00 00 14
+67 58 59 5a 00 00 02 2c 00 00 00 14 62 58 59 5a
+00 00 02 40 00 00 00 14 64 6d 6e 64 00 00 02 54
+00 00 00 70 64 6d 64 64 00 00 02 c4 00 00 00 88
+76 75 65 64 00 00 03 4c 00 00 00 86 76 69 65 77
+00 00 03 d4 00 00 00 24 6c 75 6d 69 00 00 03 f8
+00 00 00 14 6d 65 61 73 00 00 04 0c 00 00 00 24
+74 65 63 68 00 00 04 30 00 00 00 0c 72 54 52 43
+00 00 04 3c 00 00 08 0c 67 54 52 43 00 00 04 3c
+00 00 08 0c 62 54 52 43 00 00 04 3c 00 00 08 0c
+74 65 78 74 00 00 00 00 43 6f 70 79 72 69 67 68
+74 20 28 63 29 20 31 39 39 38 20 48 65 77 6c 65
+74 74 2d 50 61 63 6b 61 72 64 20 43 6f 6d 70 61
+6e 79 00 00 64 65 73 63 00 00 00 00 00 00 00 12
+73 52 47 42 20 49 45 43 36 31 39 36 36 2d 32 2e
+31 00 00 00 00 00 00 00 00 00 00 00 12 73 52 47
+42 20 49 45 43 36 31 39 36 36 2d 32 2e 31 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+58 59 5a 20 00 00 00 00 00 00 f3 51 00 01 00 00
+00 01 16 cc 58 59 5a 20 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 58 59 5a 20 00 00 00 00
+00 00 6f a2 00 00 38 f5 00 00 03 90 58 59 5a 20
+00 00 00 00 00 00 62 99 00 00 b7 85 00 00 18 da
+58 59 5a 20 00 00 00 00 00 00 24 a0 00 00 0f 84
+00 00 b6 cf 64 65 73 63 00 00 00 00 00 00 00 16
+49 45 43 20 68 74 74 70 3a 2f 2f 77 77 77 2e 69
+65 63 2e 63 68 00 00 00 00 00 00 00 00 00 00 00
+16 49 45 43 20 68 74 74 70 3a 2f 2f 77 77 77 2e
+69 65 63 2e 63 68 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 64 65 73 63 00 00 00 00 00 00 00 2e
+49 45 43 20 36 31 39 36 36 2d 32 2e 31 20 44 65
+66 61 75 6c 74 20 52 47 42 20 63 6f 6c 6f 75 72
+20 73 70 61 63 65 20 2d 20 73 52 47 42 00 00 00
+00 00 00 00 00 00 00 00 2e 49 45 43 20 36 31 39
+36 36 2d 32 2e 31 20 44 65 66 61 75 6c 74 20 52
+47 42 20 63 6f 6c 6f 75 72 20 73 70 61 63 65 20
+2d 20 73 52 47 42 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 64 65 73 63
+00 00 00 00 00 00 00 2c 52 65 66 65 72 65 6e 63
+65 20 56 69 65 77 69 6e 67 20 43 6f 6e 64 69 74
+69 6f 6e 20 69 6e 20 49 45 43 36 31 39 36 36 2d
+32 2e 31 00 00 00 00 00 00 00 00 00 00 00 2c 52
+65 66 65 72 65 6e 63 65 20 56 69 65 77 69 6e 67
+20 43 6f 6e 64 69 74 69 6f 6e 20 69 6e 20 49 45
+43 36 31 39 36 36 2d 32 2e 31 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 76 69 65 77 00 00 00 00 00 13 a4 fe
+00 14 5f 2e 00 10 cf 14 00 03 ed cc 00 04 13 0b
+00 03 5c 9e 00 00 00 01 58 59 5a 20 00 00 00 00
+00 4c 09 56 00 50 00 00 00 57 1f e7 6d 65 61 73
+00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 02 8f 00 00 00 02
+73 69 67 20 00 00 00 00 43 52 54 20 63 75 72 76
+00 00 00 00 00 00 04 00 00 00 00 05 00 0a 00 0f
+00 14 00 19 00 1e 00 23 00 28 00 2d 00 32 00 37
+00 3b 00 40 00 45 00 4a 00 4f 00 54 00 59 00 5e
+00 63 00 68 00 6d 00 72 00 77 00 7c 00 81 00 86
+00 8b 00 90 00 95 00 9a 00 9f 00 a4 00 a9 00 ae
+00 b2 00 b7 00 bc 00 c1 00 c6 00 cb 00 d0 00 d5
+00 db 00 e0 00 e5 00 eb 00 f0 00 f6 00 fb 01 01
+01 07 01 0d 01 13 01 19 01 1f 01 25 01 2b 01 32
+01 38 01 3e 01 45 01 4c 01 52 01 59 01 60 01 67
+01 6e 01 75 01 7c 01 83 01 8b 01 92 01 9a 01 a1
+01 a9 01 b1 01 b9 01 c1 01 c9 01 d1 01 d9 01 e1
+01 e9 01 f2 01 fa 02 03 02 0c 02 14 02 1d 02 26
+02 2f 02 38 02 41 02 4b 02 54 02 5d 02 67 02 71
+02 7a 02 84 02 8e 02 98 02 a2 02 ac 02 b6 02 c1
+02 cb 02 d5 02 e0 02 eb 02 f5 03 00 03 0b 03 16
+03 21 03 2d 03 38 03 43 03 4f 03 5a 03 66 03 72
+03 7e 03 8a 03 96 03 a2 03 ae 03 ba 03 c7 03 d3
+03 e0 03 ec 03 f9 04 06 04 13 04 20 04 2d 04 3b
+04 48 04 55 04 63 04 71 04 7e 04 8c 04 9a 04 a8
+04 b6 04 c4 04 d3 04 e1 04 f0 04 fe 05 0d 05 1c
+05 2b 05 3a 05 49 05 58 05 67 05 77 05 86 05 96
+05 a6 05 b5 05 c5 05 d5 05 e5 05 f6 06 06 06 16
+06 27 06 37 06 48 06 59 06 6a 06 7b 06 8c 06 9d
+06 af 06 c0 06 d1 06 e3 06 f5 07 07 07 19 07 2b
+07 3d 07 4f 07 61 07 74 07 86 07 99 07 ac 07 bf
+07 d2 07 e5 07 f8 08 0b 08 1f 08 32 08 46 08 5a
+08 6e 08 82 08 96 08 aa 08 be 08 d2 08 e7 08 fb
+09 10 09 25 09 3a 09 4f 09 64 09 79 09 8f 09 a4
+09 ba 09 cf 09 e5 09 fb 0a 11 0a 27 0a 3d 0a 54
+0a 6a 0a 81 0a 98 0a ae 0a c5 0a dc 0a f3 0b 0b
+0b 22 0b 39 0b 51 0b 69 0b 80 0b 98 0b b0 0b c8
+0b e1 0b f9 0c 12 0c 2a 0c 43 0c 5c 0c 75 0c 8e
+0c a7 0c c0 0c d9 0c f3 0d 0d 0d 26 0d 40 0d 5a
+0d 74 0d 8e 0d a9 0d c3 0d de 0d f8 0e 13 0e 2e
+0e 49 0e 64 0e 7f 0e 9b 0e b6 0e d2 0e ee 0f 09
+0f 25 0f 41 0f 5e 0f 7a 0f 96 0f b3 0f cf 0f ec
+10 09 10 26 10 43 10 61 10 7e 10 9b 10 b9 10 d7
+10 f5 11 13 11 31 11 4f 11 6d 11 8c 11 aa 11 c9
+11 e8 12 07 12 26 12 45 12 64 12 84 12 a3 12 c3
+12 e3 13 03 13 23 13 43 13 63 13 83 13 a4 13 c5
+13 e5 14 06 14 27 14 49 14 6a 14 8b 14 ad 14 ce
+14 f0 15 12 15 34 15 56 15 78 15 9b 15 bd 15 e0
+16 03 16 26 16 49 16 6c 16 8f 16 b2 16 d6 16 fa
+17 1d 17 41 17 65 17 89 17 ae 17 d2 17 f7 18 1b
+18 40 18 65 18 8a 18 af 18 d5 18 fa 19 20 19 45
+19 6b 19 91 19 b7 19 dd 1a 04 1a 2a 1a 51 1a 77
+1a 9e 1a c5 1a ec 1b 14 1b 3b 1b 63 1b 8a 1b b2
+1b da 1c 02 1c 2a 1c 52 1c 7b 1c a3 1c cc 1c f5
+1d 1e 1d 47 1d 70 1d 99 1d c3 1d ec 1e 16 1e 40
+1e 6a 1e 94 1e be 1e e9 1f 13 1f 3e 1f 69 1f 94
+1f bf 1f ea 20 15 20 41 20 6c 20 98 20 c4 20 f0
+21 1c 21 48 21 75 21 a1 21 ce 21 fb 22 27 22 55
+22 82 22 af 22 dd 23 0a 23 38 23 66 23 94 23 c2
+23 f0 24 1f 24 4d 24 7c 24 ab 24 da 25 09 25 38
+25 68 25 97 25 c7 25 f7 26 27 26 57 26 87 26 b7
+26 e8 27 18 27 49 27 7a 27 ab 27 dc 28 0d 28 3f
+28 71 28 a2 28 d4 29 06 29 38 29 6b 29 9d 29 d0
+2a 02 2a 35 2a 68 2a 9b 2a cf 2b 02 2b 36 2b 69
+2b 9d 2b d1 2c 05 2c 39 2c 6e 2c a2 2c d7 2d 0c
+2d 41 2d 76 2d ab 2d e1 2e 16 2e 4c 2e 82 2e b7
+2e ee 2f 24 2f 5a 2f 91 2f c7 2f fe 30 35 30 6c
+30 a4 30 db 31 12 31 4a 31 82 31 ba 31 f2 32 2a
+32 63 32 9b 32 d4 33 0d 33 46 33 7f 33 b8 33 f1
+34 2b 34 65 34 9e 34 d8 35 13 35 4d 35 87 35 c2
+35 fd 36 37 36 72 36 ae 36 e9 37 24 37 60 37 9c
+37 d7 38 14 38 50 38 8c 38 c8 39 05 39 42 39 7f
+39 bc 39 f9 3a 36 3a 74 3a b2 3a ef 3b 2d 3b 6b
+3b aa 3b e8 3c 27 3c 65 3c a4 3c e3 3d 22 3d 61
+3d a1 3d e0 3e 20 3e 60 3e a0 3e e0 3f 21 3f 61
+3f a2 3f e2 40 23 40 64 40 a6 40 e7 41 29 41 6a
+41 ac 41 ee 42 30 42 72 42 b5 42 f7 43 3a 43 7d
+43 c0 44 03 44 47 44 8a 44 ce 45 12 45 55 45 9a
+45 de 46 22 46 67 46 ab 46 f0 47 35 47 7b 47 c0
+48 05 48 4b 48 91 48 d7 49 1d 49 63 49 a9 49 f0
+4a 37 4a 7d 4a c4 4b 0c 4b 53 4b 9a 4b e2 4c 2a
+4c 72 4c ba 4d 02 4d 4a 4d 93 4d dc 4e 25 4e 6e
+4e b7 4f 00 4f 49 4f 93 4f dd 50 27 50 71 50 bb
+51 06 51 50 51 9b 51 e6 52 31 52 7c 52 c7 53 13
+53 5f 53 aa 53 f6 54 42 54 8f 54 db 55 28 55 75
+55 c2 56 0f 56 5c 56 a9 56 f7 57 44 57 92 57 e0
+58 2f 58 7d 58 cb 59 1a 59 69 59 b8 5a 07 5a 56
+5a a6 5a f5 5b 45 5b 95 5b e5 5c 35 5c 86 5c d6
+5d 27 5d 78 5d c9 5e 1a 5e 6c 5e bd 5f 0f 5f 61
+5f b3 60 05 60 57 60 aa 60 fc 61 4f 61 a2 61 f5
+62 49 62 9c 62 f0 63 43 63 97 63 eb 64 40 64 94
+64 e9 65 3d 65 92 65 e7 66 3d 66 92 66 e8 67 3d
+67 93 67 e9 68 3f 68 96 68 ec 69 43 69 9a 69 f1
+6a 48 6a 9f 6a f7 6b 4f 6b a7 6b ff 6c 57 6c af
+6d 08 6d 60 6d b9 6e 12 6e 6b 6e c4 6f 1e 6f 78
+6f d1 70 2b 70 86 70 e0 71 3a 71 95 71 f0 72 4b
+72 a6 73 01 73 5d 73 b8 74 14 74 70 74 cc 75 28
+75 85 75 e1 76 3e 76 9b 76 f8 77 56 77 b3 78 11
+78 6e 78 cc 79 2a 79 89 79 e7 7a 46 7a a5 7b 04
+7b 63 7b c2 7c 21 7c 81 7c e1 7d 41 7d a1 7e 01
+7e 62 7e c2 7f 23 7f 84 7f e5 80 47 80 a8 81 0a
+81 6b 81 cd 82 30 82 92 82 f4 83 57 83 ba 84 1d
+84 80 84 e3 85 47 85 ab 86 0e 86 72 86 d7 87 3b
+87 9f 88 04 88 69 88 ce 89 33 89 99 89 fe 8a 64
+8a ca 8b 30 8b 96 8b fc 8c 63 8c ca 8d 31 8d 98
+8d ff 8e 66 8e ce 8f 36 8f 9e 90 06 90 6e 90 d6
+91 3f 91 a8 92 11 92 7a 92 e3 93 4d 93 b6 94 20
+94 8a 94 f4 95 5f 95 c9 96 34 96 9f 97 0a 97 75
+97 e0 98 4c 98 b8 99 24 99 90 99 fc 9a 68 9a d5
+9b 42 9b af 9c 1c 9c 89 9c f7 9d 64 9d d2 9e 40
+9e ae 9f 1d 9f 8b 9f fa a0 69 a0 d8 a1 47 a1 b6
+a2 26 a2 96 a3 06 a3 76 a3 e6 a4 56 a4 c7 a5 38
+a5 a9 a6 1a a6 8b a6 fd a7 6e a7 e0 a8 52 a8 c4
+a9 37 a9 a9 aa 1c aa 8f ab 02 ab 75 ab e9 ac 5c
+ac d0 ad 44 ad b8 ae 2d ae a1 af 16 af 8b b0 00
+b0 75 b0 ea b1 60 b1 d6 b2 4b b2 c2 b3 38 b3 ae
+b4 25 b4 9c b5 13 b5 8a b6 01 b6 79 b6 f0 b7 68
+b7 e0 b8 59 b8 d1 b9 4a b9 c2 ba 3b ba b5 bb 2e
+bb a7 bc 21 bc 9b bd 15 bd 8f be 0a be 84 be ff
+bf 7a bf f5 c0 70 c0 ec c1 67 c1 e3 c2 5f c2 db
+c3 58 c3 d4 c4 51 c4 ce c5 4b c5 c8 c6 46 c6 c3
+c7 41 c7 bf c8 3d c8 bc c9 3a c9 b9 ca 38 ca b7
+cb 36 cb b6 cc 35 cc b5 cd 35 cd b5 ce 36 ce b6
+cf 37 cf b8 d0 39 d0 ba d1 3c d1 be d2 3f d2 c1
+d3 44 d3 c6 d4 49 d4 cb d5 4e d5 d1 d6 55 d6 d8
+d7 5c d7 e0 d8 64 d8 e8 d9 6c d9 f1 da 76 da fb
+db 80 dc 05 dc 8a dd 10 dd 96 de 1c de a2 df 29
+df af e0 36 e0 bd e1 44 e1 cc e2 53 e2 db e3 63
+e3 eb e4 73 e4 fc e5 84 e6 0d e6 96 e7 1f e7 a9
+e8 32 e8 bc e9 46 e9 d0 ea 5b ea e5 eb 70 eb fb
+ec 86 ed 11 ed 9c ee 28 ee b4 ef 40 ef cc f0 58
+f0 e5 f1 72 f1 ff f2 8c f3 19 f3 a7 f4 34 f4 c2
+f5 50 f5 de f6 6d f6 fb f7 8a f8 19 f8 a8 f9 38
+f9 c7 fa 57 fa e7 fb 77 fc 07 fc 98 fd 29 fd ba
+fe 4b fe dc ff 6d ff ff >
+endstream
+endobj
+97 0 obj
+<<
+/Type /Encoding /BaseEncoding /WinAnsiEncoding
+/Differences [ 45/minus 96/quoteleft
+144/dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent
+/dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space]
+>>
+endobj
+98 0 obj
+<< /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /ZapfDingbats >>
+endobj
+99 0 obj
+<< /Type /Font /Subtype /Type1 /Name /F2 /BaseFont /Helvetica
+/Encoding 97 0 R >>
+endobj
+100 0 obj
+<< /Type /Font /Subtype /Type1 /Name /F3 /BaseFont /Helvetica-Bold
+/Encoding 97 0 R >>
+endobj
+101 0 obj
+<< /Type /Font /Subtype /Type1 /Name /F6 /BaseFont /Symbol
+>>
+endobj
+xref
+0 102
+0000000000 65535 f 
+0000000021 00000 n 
+0000000163 00000 n 
+0000095082 00000 n 
+0000095369 00000 n 
+0000095517 00000 n 
+0000095550 00000 n 
+0000000212 00000 n 
+0000000292 00000 n 
+0000001974 00000 n 
+0000001994 00000 n 
+0000002076 00000 n 
+0000016295 00000 n 
+0000016317 00000 n 
+0000016399 00000 n 
+0000021262 00000 n 
+0000021283 00000 n 
+0000021365 00000 n 
+0000026364 00000 n 
+0000026385 00000 n 
+0000026467 00000 n 
+0000029996 00000 n 
+0000030017 00000 n 
+0000030099 00000 n 
+0000036798 00000 n 
+0000036819 00000 n 
+0000036901 00000 n 
+0000038637 00000 n 
+0000038658 00000 n 
+0000038740 00000 n 
+0000042889 00000 n 
+0000042910 00000 n 
+0000042992 00000 n 
+0000061382 00000 n 
+0000061404 00000 n 
+0000061486 00000 n 
+0000064832 00000 n 
+0000064853 00000 n 
+0000064935 00000 n 
+0000068279 00000 n 
+0000068300 00000 n 
+0000068382 00000 n 
+0000069065 00000 n 
+0000069085 00000 n 
+0000069167 00000 n 
+0000071034 00000 n 
+0000071055 00000 n 
+0000071137 00000 n 
+0000073825 00000 n 
+0000073846 00000 n 
+0000073928 00000 n 
+0000076250 00000 n 
+0000076271 00000 n 
+0000076353 00000 n 
+0000078351 00000 n 
+0000078372 00000 n 
+0000078454 00000 n 
+0000080422 00000 n 
+0000080443 00000 n 
+0000080525 00000 n 
+0000082047 00000 n 
+0000082068 00000 n 
+0000082150 00000 n 
+0000082860 00000 n 
+0000082880 00000 n 
+0000082962 00000 n 
+0000084054 00000 n 
+0000084075 00000 n 
+0000084157 00000 n 
+0000084733 00000 n 
+0000084753 00000 n 
+0000084835 00000 n 
+0000085424 00000 n 
+0000085444 00000 n 
+0000085526 00000 n 
+0000087094 00000 n 
+0000087115 00000 n 
+0000087197 00000 n 
+0000087876 00000 n 
+0000087896 00000 n 
+0000087978 00000 n 
+0000088512 00000 n 
+0000088532 00000 n 
+0000088614 00000 n 
+0000089910 00000 n 
+0000089931 00000 n 
+0000090013 00000 n 
+0000091287 00000 n 
+0000091308 00000 n 
+0000091390 00000 n 
+0000092674 00000 n 
+0000092695 00000 n 
+0000092777 00000 n 
+0000094406 00000 n 
+0000094427 00000 n 
+0000094509 00000 n 
+0000095062 00000 n 
+0000105086 00000 n 
+0000105344 00000 n 
+0000105428 00000 n 
+0000105526 00000 n 
+0000105630 00000 n 
+trailer
+<< /Size 102 /Info 1 0 R /Root 2 0 R >>
+startxref
+105709
+%%EOF
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-IO2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-IO2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-IO2.R	(revision 2476)
@@ -0,0 +1,124 @@
+## tests of boundary cases in read.table()
+
+## force standard handling for character cols
+options(stringsAsFactors=TRUE)
+
+# empty file
+file.create("foo1")
+try(read.table("foo1")) # fails
+read.table("foo1", col.names=LETTERS[1:4])
+unlink("foo1")
+
+# header only
+cat("head\n", file = "foo2")
+read.table("foo2")
+try(read.table("foo2", header=TRUE)) # fails in 1.2.3
+unlink("foo2")
+# header detection
+cat("head\n", 1:2, "\n", 3:4, "\n", file = "foo3")
+read.table("foo3", header=TRUE)
+read.table("foo3", header=TRUE, col.names="V1")
+read.table("foo3", header=TRUE, row.names=1)
+read.table("foo3", header=TRUE, row.names="row.names")
+read.table("foo3", header=TRUE, row.names="head") # fails in 1.2.3
+
+# wrong col.names
+try(read.table("foo3", header=TRUE, col.names=letters[1:4]))
+unlink("foo3")
+
+# incomplete last line
+cat("head\n", 1:2, "\n", 3:4, file = "foo4")
+read.table("foo4", header=TRUE)
+unlink("foo4")
+
+# blank last line
+cat("head\n\n", 1:2, "\n", 3:4, "\n\n", file = "foo5")
+read.table("foo5", header=TRUE)
+
+# test of fill
+read.table("foo5", header=FALSE, fill=TRUE, blank.lines.skip=FALSE) # fails in 1.2.3
+unlink("foo5")
+
+cat("head\n", 1:2, "\n", 3:5, "\n", 6:9, "\n", file = "foo6")
+try(read.table("foo6", header=TRUE))
+try(read.table("foo6", header=TRUE, fill=TRUE))
+read.table("foo6", header=FALSE, fill=TRUE)
+unlink("foo6")
+
+# test of type conversion in 1.4.0 and later.
+cat("A B C D E F\n",
+    "1 1 1.1 1.1+0i NA F abc\n",
+    "2 NA NA NA NA NA NA\n",
+    "3 1 2 3 NA TRUE def\n",
+    sep = "", file = "foo7")
+(res <- read.table("foo7"))
+sapply(res, typeof)
+sapply(res, class)
+(res2 <- read.table("foo7",
+                    colClasses = c("character", rep("numeric", 2),
+                    "complex", "integer", "logical", "character")))
+sapply(res2, typeof)
+sapply(res2, class)
+unlink("foo7")
+
+# should be logical
+type.convert(character(0))
+
+# test of comments in data files
+cat("# a test file",
+    "# line 2",
+    "# line 3",
+    "# line 4",
+    "# line 5",
+    "## now the header",
+    " a b c",
+    "# some more comments",
+    "1 2 3",
+    "4 5 6# this is the second data row of the file",
+    "  # some more comments",
+    "7 8 9",
+    "# trailing comment\n",
+    file= "ex.data", sep="\n")
+read.table("ex.data", header = T)
+unlink("ex.data")
+
+## comment chars in headers
+cat("x1\tx#2\tx3\n1\t2\t2\n2\t3\t3\n", file = "test.dat")
+read.table("test.dat", header=T, comment.char="")
+unlink("test.dat")
+
+cat('#comment\n\n#another\n#\n#\n',
+    'C1\tC2\tC3\n"Panel"\t"Area Examined"\t"# Blemishes"\n',
+    '"1"\t"0.8"\t"3"\n', '"2"\t"0.6"\t"2"\n', '"3"\t"0.8"\t"3"\n',
+    file = "test.dat", sep="")
+read.table("test.dat")
+unlink("test.dat")
+
+cat('%comment\n\n%another\n%\n%\n',
+    'C1\tC2\tC3\n"Panel"\t"Area Examined"\t"% Blemishes"\n',
+    '"1"\t"0.8"\t"3"\n', '"2"\t"0.6"\t"2"\n', '"3"\t"0.8"\t"3"\n',
+    file = "test.dat", sep="")
+read.table("test.dat", comment.char = "%")
+unlink("test.dat")
+
+## test on Windows Unicode file
+con <- file(file.path(Sys.getenv("SRCDIR"), "WinUnicode.dat"),
+            encoding="UCS-2LE")
+scan(con, 0, quiet=TRUE)
+close(con)
+
+## tests of allowEscape
+x <- "1 2 3 \\ab\\c"
+writeLines(x, "test.dat")
+readLines("test.dat")
+scan("test.dat", "", allowEscapes=TRUE)
+scan("test.dat", "", allowEscapes=FALSE)
+read.table("test.dat", header=FALSE, allowEscapes=TRUE)
+read.table("test.dat", header=FALSE, allowEscapes=FALSE)
+x <- c("TEST", 1, 2, "\\b", 4, 5, "\\040", "\\x20",
+       "c:\\spencer\\tests",
+       "\\t", "\\n", "\\r")
+writeLines(x, "test.dat")
+read.table("test.dat", allowEscapes=FALSE, header = TRUE)
+unlink("test.dat")
+## end of tests
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arith.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arith.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arith.R	(revision 2476)
@@ -0,0 +1,26 @@
+options(digits=7)
+
+## powers
+outer(a <- -4:12,     -2:7, "^")
+
+for (n1 in 1:7)
+    print(zapsmall(polyroot(1:n1), digits = 10))
+
+## lowess() {incl. sort, etc}:
+options(digits = 5)
+
+lowess(c(3,2,6,3,8,4))$y # this used to differ on Linux
+
+y1 <- c(3,1:2,5:2,4,1:3,3)
+lowess(y1)$y
+lowess(y1, f = .4)$y
+
+lowess(c(y1,100), f = .4)$y
+
+## this is the test sample from Cleveland's original lowess.doc:
+x <- c(1:5, rep(6,10),8,10,12,14,50)
+y <- c(18,2,15,6,10,4,16,11,7,3,14,17,20,12,9,13,1,8,5,19)
+lowess(x,y, f = .25, iter = 0, delta = 0)$y
+lowess(x,y, f = .25, iter = 0, delta = 3)$y
+lowess(x,y, f = .25, iter = 2, delta = 0)$y
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/demos.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/demos.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/demos.R	(revision 2476)
@@ -0,0 +1,30 @@
+#### Run all demos that do not depend on tcl and other specials.
+.ptime <- proc.time()
+set.seed(123)
+options(keep.source=TRUE, useFancyQuotes=FALSE, warn = 1)
+
+## Drop these for strict testing {and add them to demos2.R)
+## lm.glm is in ../src/library/utils/man/demo.Rd }:
+dont <- list(graphics = c("Hershey", "Japanese", "plotmath"),
+             stats = c("lm.glm", "nlm")
+             )
+## don't take tcltk here
+for(pkg in c("base", "graphics", "stats")) {
+
+    demos <- list.files(file.path(system.file(package = pkg), "demo"),
+                        pattern = "\\.R$")
+    demos <- demos[is.na(match(demos, paste(dont[[pkg]], "R",sep=".")))]
+
+    if(length(demos)) {
+        if(need <- pkg != "base" &&
+           !any((fpkg <- paste("package", pkg, sep=":")) == search()))
+            library(pkg, character.only = TRUE)
+
+        for(nam in sub("\\.R$", "", demos))
+            demo(nam, character.only = TRUE)
+
+        if(need) detach(pos = which(fpkg == search()))
+    }
+}
+
+cat("Time elapsed: ", proc.time() - .ptime, "\n")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/ok-errors.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/ok-errors.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/ok-errors.Rout.save	(revision 2476)
@@ -0,0 +1,40 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> #### STRICT test suite in the spirit of no-segfaults,
+> #### but with explicit statements.
+> 
+> options(error=expression(NULL))
+> stop("test of `options(error=expression(NULL))'")
+Error: test of `options(error=expression(NULL))'
+> 
+> if(FALSE) {
++ ## these ought to work on machines with enough memory
++ ## These segfaulted in 1.3.x ,  give "could not allocate" errors now
++   integer(2^30+1)
++    double(2^30+1)
++   complex(2^30+1)
++ character(2^30+1)
++ vector("list", 2^30+2)
++ }
+> 
+> ## bad infinite recursion / on.exit / ... interactions
+> bar <- function() 1+1
+> foo <- function() { on.exit(bar()); foo() }
+> foo() # now simple "infinite recursion"
+Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/no-segfault.Rin
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/no-segfault.Rin	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/no-segfault.Rin	(revision 2476)
@@ -0,0 +1,132 @@
+###-*- R -*-
+###--- This "foo.Rin" script is only used to create the real script "foo.R" :
+
+###--- We need to use such a long "real script" instead of a for loop,
+###--- because "error --> jump_to_toplevel", i.e., outside any loop.
+
+core.pkgs <-
+{x <- installed.packages(file.path(R.home(), "library"));
+    x[x[,"Priority"] %in% "base", "Package"]}
+core.pkgs <-
+    core.pkgs[- match(c("methods", "parallel", "tcltk", "stats4"), core.pkgs, 0)]
+## move methods to the end because it has side effects (overrides primitives)
+## stats4 requires methods
+core.pkgs <- c(core.pkgs, "methods", "stats4")
+
+stop.list <- vector("list", length(core.pkgs))
+names(stop.list) <- core.pkgs
+
+## -- Stop List for base/graphics/utils:
+edit.int <- c("fix", "edit", "edit.data.frame", "edit.matrix",
+              "edit.default", "vi", "file.edit",
+              "emacs", "pico", "xemacs", "xedit", "RSiteSearch", "help.request")
+
+## warning: readLines will work, but read all the rest of the script
+## warning: trace will load methods.
+## warning: rm and remove zap c0, l0, m0, df0
+## warning: parent.env(NULL) <- NULL creates a loop
+## warning: browseVignettes lanuches many browser processes.
+## news, readNEWS, rtags are slow, and R-only code.
+misc.int <- c("browser", "browseVignettes", "bug.report", "checkCRAN",
+              "getCRANmirrors", "lazyLoad", "menu", "repeat",
+              "readLines", "package.skeleton", "trace", "recover",
+              "rm", "remove", "parent.env<-",
+              "builtins", "data", "help", "news", "rtags", "vignette",
+              "installed.packages")
+inet.list <- c(apropos("download\\."),
+               apropos("^url\\."), apropos("\\.url"),
+               apropos("packageStatus"),
+               paste(c("CRAN", "install", "update", "old"), "packages", sep="."))
+socket.fun <- apropos("socket")
+## "Interactive" ones:
+dev.int <- c("X11", "x11", "pdf", "postscript",
+             "xfig", "jpeg", "png", "pictex", "quartz",
+             "svg", "tiff", "cairo_pdf", "cairo_ps",
+             "getGraphicsEvent")
+misc.2 <- c("asS4", "help.start", "browseEnv", "make.packages.html",
+            "gctorture", "q", "quit", "restart", "try",
+            "read.fwf", "source",## << MM thinks "FIXME"
+            "data.entry", "dataentry", "de", apropos("^de\\."),
+            "chooseCRANmirror", "setRepositories", "select.list", "View")
+if(.Platform$OS.type == "windows") {
+    dev.int <- c(dev.int, "bmp", "windows", "win.graph", "win.print",
+                "win.metafile")
+    misc.2 <- c(misc.2, "file.choose", "choose.files", "choose.dir",
+    		"setWindowTitle", "loadRconsole",
+                "arrangeWindows", "getWindowsHandles")
+}
+
+stop.list[["base"]] <-
+    if(nchar(Sys.getenv("R_TESTLOTS"))) {## SEVERE TESTING, try almost ALL
+	c(edit.int, misc.int)
+    } else {
+	c(inet.list, socket.fun, edit.int, misc.int, misc.2)
+    }
+
+## S4 group generics should not be called directly
+## and doing so sometimes leads to infinite recursion
+s4.group.generics <- c("Arith", "Compare", "Ops", "Logic", "Math", "Math2", "Summary", "Complex")
+
+## warning: browseAll will tend to read all the script and/or loop forever
+stop.list[["methods"]] <- c("browseAll", "recover", s4.group.generics)
+stop.list[["tools"]] <- c("write_PACKAGES", # problems with Packages/PACKAGES
+                          "testInstalledBasic",
+                          "testInstalledPackages", # runs whole suite
+                          "readNEWS",              # slow, pure R code
+                          "findHTMLlinks", "pskill",
+                          "texi2dvi", "texi2pdf",  # hang on Windows
+                          "getVignetteInfo"        # very slow on large installation
+                          )
+stop.list[["grDevices"]] <- dev.int
+stop.list[["utils"]] <- c("Rprof", "aspell", # hangs on Windows
+                          "winProgressBar",
+                          inet.list, socket.fun, edit.int, misc.int, misc.2)
+
+sink("no-segfault.R")
+
+if(.Platform$OS.type == "unix") cat('options(pager = "cat")\n')
+if(.Platform$OS.type == "windows") cat('options(pager = "console")\n')
+cat('options(error=expression(NULL))',
+    "# don't stop on error in batch\n##~~~~~~~~~~~~~~\n")
+
+cat(".proctime00 <- proc.time()\n")
+
+for (pkg in core.pkgs) {
+  cat("### Package ", pkg, "\n",
+      "###         ", rep("~",nchar(pkg)), "\n", collapse="", sep="")
+  pkgname <- paste("package", pkg, sep=":")
+  this.pos <- match(paste("package", pkg, sep=":"), search())
+  lib.not.loaded <- is.na(this.pos)
+  if(lib.not.loaded) {
+      library(pkg, character = TRUE, warn.conflicts = FALSE)
+      cat("library(", pkg, ")\n")
+  }
+  this.pos <- match(paste("package", pkg, sep=":"), search())
+
+  for(nm in ls(pkgname)) {
+      if(!(nm %in% stop.list[[pkg]]) &&
+	 is.function(f <- get(nm, pos = pkgname))) {
+	  cat("\n## ", nm, " :\n")
+
+	  cat("c0 <- character(0)\n",
+	      "l0 <- logical(0)\n",
+	      "m0 <- matrix(1,0,0)\n",
+	      "df0 <- as.data.frame(c0)\n", sep="")
+
+	  cat("f <- get(\"",nm,"\", pos = '", pkgname, "')\n", sep="")
+	  cat("f()\nf(NULL)\nf(,NULL)\nf(NULL,NULL)\n",
+	      "f(list())\nf(l0)\nf(c0)\nf(m0)\nf(df0)\nf(FALSE)\n",
+	      "f(list(),list())\nf(l0,l0)\nf(c0,c0)\n",
+              "f(df0,df0)\nf(FALSE,FALSE)\n",
+	      sep="")
+      }
+  }
+  if(lib.not.loaded) {
+      detach(pos=this.pos)
+      cat("detach(pos=", this.pos, ")\n", sep="")
+  }
+
+  cat("\n##__________\n\n")
+}
+
+cat("proc.time() - .proctime00\n")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/Makefile
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/Makefile	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/Makefile	(revision 2476)
@@ -0,0 +1,70 @@
+#-*- Makefile -*-
+#
+# ${R_HOME}/tests/Makefile.install
+
+srcdir = .
+top_srcdir = ..
+
+top_builddir = ..
+
+all check: test-all-basics
+check-devel: check test-all-devel
+check-all: check-devel test-Recommended
+
+include $(top_builddir)/etc$(R_ARCH)/Makeconf
+include Makefile.common
+
+
+## GNU gettext disables LANGUAGE if LC_ALL=C, but other systems might not.
+R = LANGUAGE=en LC_ALL=C SRCDIR=$(srcdir) R_DEFAULT_PACKAGES= $(top_builddir)/bin/R --vanilla
+R2 = R_DEFAULT_PACKAGES= $(top_builddir)/bin/R --vanilla
+R3 = $(top_builddir)/bin/R CMD check
+RDIFF = $(top_builddir)/bin/R CMD Rdiff
+RDCONV = LC_CTYPE=C $(top_builddir)/bin/R CMD Rdconv
+MK = $(MAKE)
+
+all-basic-tests = BasePackages Specific Reg Internet
+## Keep in line with Makefile.common.
+## not Docs Standalone Packages
+all-devel-tests = DateTime IsAs Random Demo Primitive Regexp Internet2 Segfault
+
+
+## <NOTE>
+## These depend on an internet connection, and the sites being up.
+## So allow this to fail: it may be slow doing so.
+test-Internet:
+	@$(ECHO) "running tests of Internet functions"
+	@$(ECHO) "  expect some differences"
+	-@$(MAKE) $(test-out-internet) RVAL_IF_DIFF=0
+## </NOTE>
+
+test-BasePackages:
+	@$(MKINSTALLDIRS) Packages
+	@$(ECHO) "tools::testInstalledPackages(outDir='Packages', scope='base')" | $(R) --slave
+
+test-Recommended:
+	@$(MKINSTALLDIRS) Packages
+	@$(ECHO) "tools::testInstalledPackages(outDir='Packages', scope='recommended')" | $(R) --slave
+
+
+mostlyclean: clean
+clean:
+	-@rm -f stamp-R Rplot* Rprof.out data dumpdata.R \
+	  reg-plot-latin1.ps reg-plot.ps reg-tests-?.ps \
+	  R-exts.* R-intro.R R-intro.Rout \
+	  FALSE* .R .tex mirrors.html PACKAGES*
+	-@rm -f testit.txt testit.html testit.tex testit-Ex.R
+	-@rm -f ver10.txt ver10.html ver10.tex ver10-Ex.R
+	-@rm -f ver11.txt ver11.html ver11.tex ver11-Ex.R
+	-@rm -rf anRpackage myTst* myLib
+
+clean2: clean
+	-@rm -f $(test-out) $(test-src-auto) .RData
+
+distclean: clean
+	-@for d in $(SUBDIRS); do \
+	  (cd $${d} && $(MAKE) $@); \
+	done
+	-@rm -f $(test-out) $(test-src-auto) .RData
+	-@rm -rf *.Rcheck Packages
+maintainer-clean: distclean
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-1b.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-1b.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-1b.R	(revision 2476)
@@ -0,0 +1,2101 @@
+## From PR#10000 on, for R < 3.0.0
+
+pdf("reg-tests-1b.pdf", encoding = "ISOLatin1.enc")
+
+## force standard handling for data frames
+options(stringsAsFactors = TRUE)
+## .Machine
+(Meps <- .Machine$double.eps)# and use it in this file
+
+assertWarning <- tools::assertWarning
+assertError <- tools::assertError
+
+## str() for list-alikes :
+"[[.foo" <- function(x,i) x
+x <- structure(list(2), class="foo")
+str(x)
+## gave infinite recursion < 2.6.0
+
+
+curve(sin, -2*pi, 3*pi); pu1 <- par("usr")[1:2]
+curve(cos, add = NA) # add = NA new in 2.14.0
+stopifnot(all.equal(par("usr")[1:2], pu1))
+## failed in R <= 2.6.0
+
+
+## tests of side-effects with CHARSXP caching
+x <- y <- "abc"
+Encoding(x) <- "UTF-8"
+stopifnot(Encoding(y) == "unknown") # was UTF-8 in 2.6.0
+x <- unserialize(serialize(x, NULL))
+stopifnot(Encoding(y) == "unknown") # was UTF-8 in 2.6.0
+##  problems in earlier versions of cache
+
+
+## regression test for adding functions to deriv()
+deriv3(~  gamma(y), namevec="y")
+deriv3(~  lgamma(y), namevec="y")
+# failed in R < 2.7.0
+D(quote(digamma(sin(x))),"x")
+D(quote(trigamma(sin(x))),"x")
+D(quote(psigamma(sin(x))),"x")
+D(quote(psigamma(sin(x), 3)),"x")
+n <- 2L; D(quote(psigamma(sin(x), n)),"x")
+## rest are new
+
+
+## .subset2 quirk
+iris[1, c(TRUE, FALSE, FALSE, FALSE, FALSE)]
+iris[1, c(FALSE, FALSE, FALSE, FALSE, TRUE)]
+## failed in 2.6.0
+
+
+## indexing by "": documented as 'no name' and no match
+x <- structure(1:4, names=c(letters[1:3], ""))
+stopifnot(is.na(x[""])) # always so
+stopifnot(is.na(x[NA_character_]))
+z <- tryCatch(x[[NA_character_]], error=function(...) {})
+stopifnot(is.null(z))
+z <- tryCatch(x[[""]], error=function(...) {})
+stopifnot(is.null(z)) # x[[""]] == 4 < 2.7.0
+x[[""]] <- 5  # no match, so should add an element, but replaced.
+stopifnot(length(x) == 5)
+x[""] <- 6    # also add
+stopifnot(length(x) == 6)
+xx <- list(a=1, 2)
+stopifnot(is.null(xx[[""]])) # 2 < 2.7.0
+##
+
+
+## negative n gave choose(n, k) == 0
+stopifnot(isTRUE(all.equal(choose(-1,3),-1)))
+##
+
+
+## by() on 1-column data frame (PR#10506)
+X <- data.frame(a=1:10)
+g <- gl(2,5)
+by(X, g, colMeans)
+## failed in 2.6.1
+
+
+## range.default omitted na.rm on non-numeric objects
+(z <- range(as.Date(c("2007-11-06", NA)), na.rm = TRUE))
+stopifnot(!is.na(z))
+## NAs in 2.6.1
+
+
+## cut() on constant values used the min, not abs(min)
+z <- cut(rep(-1,5), 2)
+stopifnot(!is.na(z))
+##
+
+
+## extreme example of two-sample wilcox.test
+## reported by Wolfgang Huber to R-devel, 2008-01-01
+## normal approximation is way off here.
+wilcox.test(1, 2:60, conf.int=TRUE, exact=FALSE)
+## failed in R < 2.7.0
+
+
+## more corner cases for cor()
+z <- cor(c(1,2,3),c(3,4,6),use="pairwise.complete.obs",method="kendall")
+stopifnot(!is.matrix(x)) # was 1x1 in R < 2.7.0
+Z <- cbind(c(1,2,3),c(3,4,6))
+# next gave 0x0 matrix < 2.7.0
+z <- try(cor(Z[, FALSE], use="pairwise.complete.obs",method="kendall"))
+stopifnot(inherits(z, "try-error"))
+# next gave NA < 2.7.0
+z <- try(cor(numeric(0), numeric(0), use="pairwise.complete.obs",
+             method="kendall"))
+stopifnot(inherits(z, "try-error"))
+##
+
+
+## infinite loop in format.AsIs reported on R-help by Bert Gunter
+## https://stat.ethz.ch/pipermail/r-help/2008-January/149504.html
+z <- rep(Sys.time(),5)
+data.frame(I(z))
+##
+
+
+## drop with length-one result
+x <- matrix(1:4, 4,1, dimnames=list(letters[1:4], NULL))
+stopifnot(identical(names(drop(x)), letters[1:4])) # was OK
+stopifnot(identical(names(drop(x[1,,drop=FALSE])), "a")) # was no names
+stopifnot(identical(names(x[1,]), "a")) # ditto
+# now consistency tests.
+x <- matrix(1, 1, 1, dimnames=list("a", NULL))
+stopifnot(identical(names(x[,]), "a"))
+x <- matrix(1, 1, 1, dimnames=list(NULL, "a"))
+stopifnot(identical(names(x[,]), "a"))
+x <- matrix(1, 1, 1, dimnames=list("a", "b"))
+stopifnot(is.null(names(x[,])))
+## names were dropped in R < 2.7.0 in all cases except the first.
+
+
+## fisher.test with extreme degeneracy PR#10558
+a <- diag(1:3)
+p <- fisher.test(a, simulate.p.value=TRUE)$p.value
+# true value is 1/60, but should not be small
+stopifnot(p > 0.001)
+## was about 0.0005 in 2.6.1 patched
+
+
+## tests of problems fixed by Marc Schwartz's patch for
+## cut/hist for Dates and POSIXt
+Dates <- seq(as.Date("2005/01/01"), as.Date("2009/01/01"), "day")
+months <- format(Dates, format = "%m")
+years <- format(Dates, format = "%Y")
+mn <- as.vector(unlist(sapply(split(months, years), table)))
+ty <- as.vector(table(years))
+# Test hist.Date() for months
+stopifnot(identical(hist(Dates, "month", plot = FALSE)$counts, mn))
+# Test cut.Date() for months
+stopifnot(identical(as.vector(table(cut(Dates, "month"))), mn))
+# Test cut.Date() for 3 months
+stopifnot(identical(as.vector(table(cut(Dates, "3 months"))),
+                    as.integer(colSums(matrix(c(mn, 0, 0), nrow = 3)))))
+# Test hist.Date() for years
+stopifnot(identical(hist(Dates, "year", plot = FALSE)$counts, ty))
+# Test cut.Date() for years
+stopifnot(identical(as.vector(table(cut(Dates, "years"))),ty))
+# Test cut.Date() for 3 years
+stopifnot(identical(as.vector(table(cut(Dates, "3 years"))),
+                    as.integer(colSums(matrix(c(ty, 0), nrow = 3)))))
+
+Dtimes <- as.POSIXlt(Dates)
+# Test hist.POSIXt() for months
+stopifnot(identical(hist(Dtimes, "month", plot = FALSE)$counts, mn))
+# Test cut.POSIXt() for months
+stopifnot(identical(as.vector(table(cut(Dtimes, "month"))), mn))
+# Test cut.POSIXt() for 3 months
+stopifnot(identical(as.vector(table(cut(Dtimes, "3 months"))),
+                    as.integer(colSums(matrix(c(mn, 0, 0), nrow = 3)))))
+# Test hist.POSIXt() for years
+stopifnot(identical(hist(Dtimes, "year", plot = FALSE)$counts, ty))
+# Test cut.POSIXt() for years
+stopifnot(identical(as.vector(table(cut(Dtimes, "years"))), ty))
+# Test cut.POSIXt() for 3 years
+stopifnot(identical(as.vector(table(cut(Dtimes, "3 years"))),
+                    as.integer(colSums(matrix(c(ty, 0), nrow = 3)))))
+## changed in 2.6.2
+
+
+## zero-length args in tapply (PR#10644)
+tapply(character(0), factor(letters)[FALSE], length)
+## failed < 2.6.2
+
+
+## zero-length patterns in gregexpr
+expect <- structure(1:3, match.length=rep(0L, 3), useBytes = TRUE)
+stopifnot(identical(expect, gregexpr("", "abc")[[1]]))
+stopifnot(identical(expect, gregexpr("", "abc", fixed=TRUE)[[1]]))
+stopifnot(identical(expect, gregexpr("", "abc", perl=TRUE)[[1]]))
+## segfaulted < 2.6.2
+
+
+## test of internal argument matching
+stopifnot(all.equal(round(d=2, x=pi), 3.14))
+## used positional matching in 2.6.x
+
+
+## kappa.tri(x, exact=TRUE) wrongly ended using exact=FALSE:
+data(longley)
+fm1 <- lm(Employed ~ ., data = longley)
+stopifnot(all.equal(23845862, kappa(fm1, exact=TRUE)))
+
+
+## names from pairlists (PR#10807, esoteric)
+m <- c("a", "b", "c")
+mp <- pairlist("a", "b", "c")
+x <- 1:3
+names(x) <- mp
+stopifnot(identical(names(x), m)) # OK before
+x <- 1:3
+attr(x, "names") <- mp
+stopifnot(identical(names(x), m)) # rep("a", 3) in 2.6.x
+##
+
+
+## preserving attributes in [<-.data.frame (PR#10873)
+df <- data.frame(a=1:3, b=letters[1:3])
+attr(df,"foo") <- 10
+df[, "b"] <- 10:12
+stopifnot(identical(attr(df, "foo"), 10))
+## dropped attributes < 2.7.0
+
+
+## r<foo> NA warnings, and rnorm(*, mu = +- Inf) consistency
+op <- options(warn=2)
+m <- c(-Inf,Inf)
+stopifnot(rnorm(2, mean = m) == m,
+          rexp (2, Inf) == 0)
+rt(1, Inf)
+R <- list(try(rnorm(2, numeric())),
+          try(rexp (2, numeric())),
+          try(rnorm(2, c(1,NA))),
+          try(rnorm(1, sd = Inf)) )
+options(op)
+stopifnot(sapply(R, function(ch) sub(".* : ", '', ch) ==
+                 "(converted from warning) NAs produced\n"))
+## was inconsistent in R < 2.7.0
+
+
+## predict.loess with transformed variables
+y <- 1:100 + rnorm(100)
+od <- data.frame(x=1:100, z=1:100 + rnorm(100, 10))
+nd <- data.frame(x=1:100, z=11:110)
+fit <- loess(y ~ log(x) + log(z), od)
+p1 <- predict(fit, nd) # failed in 2.6.x
+fit.log <- loess(y ~ x + z, log(od))
+p2 <- predict(fit.log, log(nd))
+stopifnot(all.equal(p1, p2))
+
+
+## wishlist PR#11192
+plot(1:10)
+segments(1, 1, 10, 10, col='green')
+segments(numeric(0), numeric(0), numeric(0), numeric(0), col='green')
+## last was error in R < 2.8.0
+
+
+## merging with a zero-row data frame
+merge(NULL, women)
+merge(women, NULL)
+merge(women[FALSE, ], women)
+merge(women, women[FALSE, ])
+## first two failed in 2.7.0
+
+
+## influence.measures() for lm and glm, and its constituents
+if(require(MASS)) {
+    fit <- lm(formula = 1000/MPG.city ~ Weight + Cylinders + Type + EngineSize + DriveTrain, data = Cars93)
+    gf <- glm(formula(fit), data=Cars93) # should be "identical"
+    im1 <- influence.measures(fit)
+    im2 <- influence.measures(gf)
+    stopifnot(all.equal(im1[1:2], im2[1:2]),
+	      all.equal(unname(im1$infmat[,1:15]), unname(dfbetas(fit))),
+	      all.equal(im1$infmat[,"dffit"], dffits(fit)),
+	      all.equal(im1$infmat[,"cov.r"], covratio(fit)),
+	      all.equal(im1$infmat[,"cook.d"], cooks.distance(fit)),
+	      all.equal(im2$infmat[,"cook.d"], cooks.distance(gf)),
+	      all.equal(im1$infmat[,"hat"],  hatvalues(fit)))
+}
+## "cook.d" part of influence.measures(<glm>) differed in R <= 2.7.0
+
+
+## short list value for dimnames
+n <- matrix(c(1259, 845, 719,390,1360,1053,774,413), nrow = 2, byrow = TRUE)
+dimnames(n)[[1]] <- c("a", "b")
+## was (correctly) an error in R < 2.8.0
+
+
+## glob2rx(pattern, .) with "(", "[" or "{" in pattern :
+nm <- "my(ugly[file{name"
+stopifnot(identical(regexpr(glob2rx("*[*"), nm),
+		    structure(1L, match.length = 8L, useBytes = TRUE)),
+	  identical(regexpr(glob2rx("*{n*"), nm),
+		    structure(1L, match.length = 14L, useBytes = TRUE)),
+	  identical(regexpr(glob2rx("*y(*{*"), nm),
+		    structure(1L, match.length = 13L, useBytes = TRUE))
+	  )
+## gave 'Invalid regular expression' in R <= 2.7.0
+
+
+## showDefault() problem with "unregistered" S3 classes:
+show(structure(1:3, class = "myClass"))
+## failed in R <= 2.7.0
+
+
+## formatC(.., format="fg", flag="#"):
+x <- 0.599 * c(.1, .01, .001, 1e-4,1e-5,1e-6)
+(fCx <- formatC(x, digits=2, format="fg", flag="#"))
+stopifnot(sub(".*(..)$", "\\1", fCx) == "60")
+## dropped the trailing "0" in the last 3 cases, in R <= 2.7.0
+
+
+## c.noquote bug, posted to R-devel by Ray Brownrigg, 2008-06-16
+z <- c(noquote('z'), 'y', 'x', 'w')
+stopifnot(identical(unclass(z), c('z', 'y', 'x', 'w')))
+## repeated third and later args in R < 2.7.1.
+
+## PD found that f==f contains NA when f has NA levels (but no missing value)
+f1 <- factor(c(1, 2, NA), exclude = "")
+f2 <- factor(c(1, 2, NA), exclude = NULL)
+stopifnot(identical(f1, factor(c(1,2,NA))),
+          nlevels(f1) == 2, nlevels(f2) == 3,
+          all(f2 == f2), !any(f2 != f2),
+          identical(f1 == f1, c(TRUE,TRUE,NA)))
+
+f. <- f <- factor(c(letters[c(1:3,3:1)],"NA", "d","d", NA), exclude=NULL)
+is.na(f.)[2:3] <- TRUE
+f.
+stopifnot(all(f == f), identical(f == f., f. == f.),
+          identical(2:3, which(is.na(f. == f.))))
+## f == f was wrong in R 1.5.0 -- 2.7.1
+
+
+## data.frame[, <char>] must match exactly
+dd <- data.frame(ii = 1:10, xx = pi * -3:6)
+t1 <- try(dd[,"x"])# partial match
+t2 <- try(dd[,"C"])# no match
+stopifnot(inherits(t1, "try-error"),
+	  inherits(t2, "try-error"),
+	  ## partial matching is "ok" for '$' {hence don't use for dataframes!}
+	  identical(dd$x, dd[,"xx"]))
+## From 2.5.0 to 2.7.1, the non-match indexing gave NULL instead of error
+
+
+## data.frame[ (<NA>), ] when row.names had  "NA"
+x <- data.frame(x=1:3, y=2:4, row.names=c("a","b","NA"))
+y  <- x [c(2:3, NA),]
+y.ok <- data.frame(x=c(2:3,NA), y=c(3:4,NA), row.names=c("b", "NA", "NA.1"))
+stopifnot(identical(y, y.ok))
+## From 2.5.0 to 2.7.1,  y had row name "NA" twice
+
+
+stopifnot(shapiro.test(c(0,0,1))$p.value >= 0)
+## was wrong up to 2.7.1, because of rounding errors (in single precision).
+
+
+stopifnot(rcond(cbind(1, c(3,3))) == 0)
+## gave an error (because Lapack's LU detects exact singularity)
+
+
+## dispatch when primitives are called from lapply.
+x <- data.frame(d=Sys.Date())
+stopifnot(sapply(x, is.numeric) == FALSE)
+# TRUE in 2.7.1, tried to dispatch on "FUN"
+(ds <- seq(from=Sys.Date(), by=1, length=4))
+lapply(list(d=ds), round)
+# failed in 2.7.1 with 'dispatch error' since call had '...' arg
+## related to calls being passed unevaluated by lapply.
+
+
+## subsetting data frames with NA cols
+## Dieter Menne: https://stat.ethz.ch/pipermail/r-help/2008-January/151266.html
+df3 <- data.frame(a=0:10,b=10:20,c=20:30)
+names(df3) <- c("A","B", NA)
+df3[-2]
+df3[, -2]
+df3[1:4, -2]
+df3[c(TRUE,FALSE,TRUE)]
+df3[, c(TRUE,FALSE,TRUE)]
+df3[1:4, c(TRUE,FALSE,TRUE)]
+## all gave 'undefined columns selected', 2.6.1 to 2.7.x
+## note that you can only select columns by number, not by name
+
+
+## nls with weights in an unusual model
+Data <- data.frame(x=c(1,1,1,1,1,2,2,3,3,3,3,3,3,4,4,4,5,5,5,5,6,6,6,6,6,6,
+                   7,7,7,7,7,7,7,7,7,8,8,8, 8,8,8,8,8,8,8,9,9,9,9,9,11,12),
+                   y=c(73,73,70,74,75,115,105,107,124,107,116,125,102,144,178,
+                   149,177,124,157,128, 169,165,186,152,181,139,173,151,138,
+                   181,152,188,173,196,180,171,188,174,198, 172, 176,162,188,
+                   182,182,141,191,190,159,170,163,197),
+                   weight=c(1, rep(0.1, 51)))
+G.st <- c(k=0.005, g1=50, g2=550)
+# model has length-1 (and 52) variables
+Ta <- min(Data$x)
+Tb <- max(Data$x)
+
+#no weights
+nls(y~((g1)*exp((log(g2/g1))*(1-exp(-k*(x-Ta)))
+                /(1-exp(-k*(Tb-Ta))))), data=Data, start=G.st, trace=TRUE)
+
+#with weights
+nls(y ~ ((g1)*exp((log(g2/g1))*(1-exp(-k*(x-Ta)))/(1-exp(-k*(Tb-Ta))))),
+    data = Data, start = G.st, trace = TRUE, weights = weight)
+## failed for find weights in R <= 2.7.1
+
+
+## barplot(log = "y") with NAs (PR#11585)
+dat <- matrix(1:25, 5)
+dat[2,3] <- NA
+barplot(dat, beside = TRUE, log = "y")
+## failed in 2.7.1
+
+
+## related to PR#12551
+unique("a", c("a", "b"))
+unique(1, 1:2)
+# could seqfault in 2.7.1 on some platforms
+stopifnot(!duplicated(rep("a", 3), "a"))
+## wrong answer in 2.7.1
+
+
+## drop1.lm() bug
+dd <- stackloss ; dd[1,3] <- NA
+rr <- lm(stack.loss ~ ., data=dd, na.action=na.exclude)
+drop1(rr)
+## failed in 2.7.x
+
+
+## explicit row.names=NULL in data.frame()
+stopifnot(identical(row.names(data.frame(x=c(a=1,b=2), row.names=NULL)),
+                    c("1", "2")))
+stopifnot(identical(row.names(data.frame(x=c(a=1,b=2))), c("a", "b")))
+## same as default in 2.5.0 <= R < 2.7.2
+
+stopifnot(all.equal(chol2inv(2), matrix(0.25, 1), tolerance = 4*Meps),
+	  all.equal(solve(chol2inv(chol(4))), matrix(4, 1), tolerance = 10*Meps))
+## chol2inv() did not accept non-matrices up to 2.7.*
+
+
+## seek should discard pushback. (PR#12640)
+cat(c("1\t2\t3", "4\t5\t6"), file="foo.txt", sep="\n")
+fd <- file("foo.txt",open="rt")
+scan(file=fd,what=double(),n=2)
+seek(con=fd,where=0,origin="start")
+z <- scan(file=fd,what=double(),n=2)
+close(fd)
+unlink("foo.txt")
+stopifnot(identical(z, c(1,2)))
+## changed in 2.7.2 patched
+
+
+## cov / cor / var etc with NAs :
+stopifnot(inherits(try(var(NULL)), "try-error"))## gave NA in 1.2.2
+v0 <- var(0[FALSE]) # gave "'x' is empty" in the past;  NA in 1.2.2
+x <- c(1:2,NA)
+v1 <- var(c(1,NA))
+v2 <- var(c(NA,0/0, Inf-Inf))
+sx <- sd(x)# sd() -> var()
+## all three gave "missing observations in cov/cor"  for a long time in the past
+is.NA <- function(x) is.na(x) & !is.nan(x)
+stopifnot(is.NA(v1), is.NA(v2), is.NA(sx),
+	  all.equal(0.5, var(x, na.rm=TRUE), tol=8*Meps)# should even be exact
+	  )
+
+
+## write.dcf() indenting for ".<foo>" (PR#12816)
+zz <- textConnection("foo", "w")
+write.dcf(list(Description = 'what a fat goat .haha'),
+          file = zz, indent=1, width=10)
+stopifnot(substring(foo[-1], 1,1) == " ", length(foo) == 4,
+          foo[4] == "  .haha")
+close(zz)
+## was " .haha" (not according to DCF standard)
+
+
+## pdf() with CIDfonts active -- they need MBCS to be supported
+pdf(file = "testCID.pdf", family="Japan1") # << for CIDfonts, pd->fonts is NULL
+try({
+    plot(1,1,pch="", axes=FALSE)
+    text(1,1,"F.1", family="Helvetica")
+})
+dev.off()
+unlink("testCID.pdf")
+## text() seg.faulted up to 2.7.2 (and early 2.8.0-alpha)
+
+
+## PS mixing CIDfonts and Type1 - reverse case
+postscript(file = "testCID.ps", family="Helvetica")
+plot(1,1,pch="", axes=FALSE)
+try(text(1,1,"A",family="Japan1"))
+unlink("testCID.ps")
+## error instead of seg.fault
+
+
+## splinefun with derivatives evaluated to the left of first knot
+x <- 1:10; y <- sin(x)
+splfun <- splinefun(x,y, method='natural')
+x1 <- splfun( seq(0,1, 0.1), deriv=1 )
+x2 <- splfun( seq(0,1, 0.1), deriv=2 )
+x3 <- splfun( seq(0,1, 0.1), deriv=3 )
+stopifnot(x1 == x1[1], x2 == 0, x3 == 0)
+##
+
+
+## glm(y = FALSE), in part PR#1398
+fit <- glm(1:10 ~ I(1:10) + I((1:10)^2), y = FALSE)
+anova(fit)
+## obscure errors < 2.8.0
+
+
+## boundary case in cut.Date (PR#13159)
+d <- as.Date("2008-07-07")
+cut(d, "weeks")
+d <- as.POSIXct("2008-07-07", tz="UTC")
+cut(d, "weeks")
+## failed < 2.8.0
+
+
+### end of tests added for 2.8.x
+
+
+## (Deliberate) overshot in seq(from, to, by) because of fuzz
+stopifnot(seq(0, 1, 0.00025+5e-16) <= 1, seq.int(0, 1, 0.00025+5e-16) <= 1)
+## overshot by about 2e-12 in 2.8.x
+## no longer reaches 1 in 2.11.0 (needed a fuzz of 8e-9)
+
+
+## str() with an "invalid object"
+ob <- structure(1, class = "test") # this is fine
+is.object(ob)# TRUE
+ob <- 1 + ob # << this is "broken"
+is.object(ob)# FALSE - hmm..
+identical(ob, unclass(ob)) # TRUE !
+stopifnot(grep("num 2", capture.output(str(ob))) == 1)
+## str(ob) lead to infinite recursion in R <= 2.8.0
+
+
+## row.names(data.frame(matrixWithDimnames)) (PR#13230)
+rn0 <- c("","Row 2","Row 3")
+A <- matrix(1:6, nrow=3, ncol=2, dimnames=list(rn0, paste("Col",1:2)))
+rn <- row.names(data.frame(A))
+stopifnot(identical(rn, rn0))
+# was 1:3 in R 2.8.0, whereas
+rn0 <- c("Row 1","","Row 3")
+A <- matrix(1:6, nrow=3, ncol=2, dimnames=list(rn0, paste("Col",1:2)))
+rn <- row.names(data.frame(A))
+stopifnot(identical(rn, rn0))
+## used the names.
+
+
+## rounding error in windowing a time series (PR#13272)
+x <- ts(1:290, start=c(1984,10), freq=12)
+window(x, start=c(2008,9), end=c(2008,9), extend=FALSE)
+window(x, start=c(2008,9), end=c(2008,9), extend=TRUE)
+## second failed in 2.8.0
+
+
+## deparse(nlines=) should shrink the result (PR#13299)
+stopifnot(length(deparse(quote(foo(1,2,3)), width.cutoff = 20, nlines=7)) ==1)
+## was 7.
+
+
+## legend did not reset xpd correctly (PR#12756)
+par(xpd = FALSE)
+plot(1)
+legend("top", legend="Tops", xpd=NA, inset=-0.1)
+stopifnot(identical(par("xpd"), FALSE))
+## left xpd as NA
+
+
+## lines.formula with 'subset' and no 'data' needed a tweak
+## (R-help, John Field, 20008-11-14)
+x <- 1:5
+y <- c(1,3,NA,2,5)
+plot(y ~ x, type="n")
+lines(y ~ x, subset = !is.na(y), col="red")
+## error in 2.8.0
+
+
+## prettyNum(*, drop0trailing) erronously dropped 0 in '1e10':
+cn <- c("1.107", "2.3120", "3.14e+0", "4.2305400", "120.0",
+        "5.31e-01", "6.3333e-20", "8.1e100", "9.9e+00", "10.1e-0")
+d <- cn != (pcn <- prettyNum(cn, drop0trailing=TRUE))
+stopifnot(identical(pcn[d],
+		    c("2.312", "3.14", "4.23054","120","9.9","10.1")),
+	  identical("-3", prettyNum("-3.0",drop0trailing=TRUE)) )
+## first failed, e.g. for 8.1e100
+
+
+## (R-help, 2008-12-01)
+transform(mtcars, t1=3, t2=4)
+## failed in 2.8.0 since extra columns were passed as a list.
+
+
+## deparsing transform failed
+parse(text = deparse(transform))
+## failed in 2.8.0
+
+
+## crashed on some systems (PR#13361)
+matrix(1:4, nrow=2, dimnames=list())
+##
+
+
+## col(as.factor=TRUE) failed
+col(matrix(0, 5, 5), as.factor=TRUE)
+## failed in 2.8.0
+
+
+## qt failure in R-devel in early Dec 2008
+stopifnot(!is.nan(qt(0.1, 0.1)))
+##
+
+
+## formals<- gave wrong result for list body
+f <- f0 <- function(x) list(pi)
+formals(f) <- formals(f)
+stopifnot(identical(body(f), body(f)))
+## had body 'pi' < 2.8.1
+
+
+## body<- failed on a function with no arguments.
+f <- function() {pi}
+body(f) <- 2
+f
+## Failed < 2.8.1
+
+
+## body<- with value a list
+f <- function(x) NULL
+body(f) <- list(pi)
+stopifnot(is.list(body(f))) # was 'pi'
+body(f) <- b0 <- list(a=1, b=2)
+stopifnot(identical(body(f), b0)) # 'a' became an argument
+f <- function(x) NULL
+body(f) <- list(1, 2, 3) # was error
+## pre-2.9.0 behaviour was erratic.
+
+
+## PR#13305
+qr.solve(cbind(as.complex(1:11), as.complex(1)),
+         as.complex(2*(20:30)))
+## failed in 2.8.1
+
+
+## PR#13433: is ....\nEOF an empty last line?
+aa <- "field1\tfield2\n 1\ta\n 2\tb"
+zz <- textConnection(aa)
+res <- read.table(zz, blank.lines.skip = FALSE)
+close(zz)
+stopifnot(nrow(res) == 3)
+## was 4 in 2.8.1
+
+
+## segfault from cbind() reported by Hadley Wickham
+## https://stat.ethz.ch/pipermail/r-devel/2009-January/051853.html
+e <- environment()
+a <- matrix(list(e), ncol = 1, nrow = 2)
+b <- matrix(ncol = 0, nrow = 2) # zero-length
+cbind(a, b)
+cbind(a, b)
+## crashed in 2.9.0
+
+
+## besselI(x, -n) == besselI(x, +n)  when n is an integer
+set.seed(7) ; x <- rlnorm(216) ; nu <- c(1,44,111)
+## precision lost warnings {may be gone in the future}:
+suppressWarnings(r <- outer(x, c(-nu, nu), besselI))
+stopifnot(identical(r[,1:3], r[,4:6]))
+## suffered from sin(n * pi) imprecision in R <= 2.8.1
+
+
+## Large sanples in mood.test
+## https://stat.ethz.ch/pipermail/r-help/2009-March/190479.html
+set.seed(123)
+x <- rnorm(50, 10, 5)
+y <- rnorm(50, 2 ,5)
+(z <- mood.test(x, y))
+stopifnot(!is.na(z$p.value))
+## gave warning and incorrect result in 2.8.x
+
+
+## heatmap without dendrogram (PR#13512)
+X <- matrix(rnorm(200),20,10)
+XX <- crossprod(X)
+heatmap(XX, Rowv =  NA, revC = TRUE)
+heatmap(XX, Rowv = NA, symm = TRUE)
+## both failed in 2.8.1
+
+
+## sprintf with 0-length args
+stopifnot(identical(sprintf("%d", integer(0L)), character(0L)))
+stopifnot(identical(sprintf(character(0L), pi), character(0L)))
+## new feature in 2.9.0
+
+
+## C-level asLogical(x) or c(<raw>, <number>) did not work
+r <- as.raw(1)
+stopifnot(if(r) TRUE)
+for (type in c("null", "logical", "integer", "double", "complex",
+               "character", "list", "expression"))
+    c(r, r, get(sprintf('as.%s', type))(1))
+## failed  before 2.9.0
+
+
+### Non-unique levels in factor should be forbidden from R 2.10.0 on
+c1 <- c("a.b","a"); c2 <- c("c","b.c")
+fi <- interaction(c1, c2)
+stopifnot(length(lf <- levels(fi)) == 3, lf[1] == "a.b.c",
+	  identical(as.integer(fi), rep.int(1L, 2)))
+## interaction() failed to produce unique levels before 2.9.1
+
+levs <- c("A","A")
+## warnings for now {errors in the future}
+local({
+    assertWarning(gl(2,3, labels = levs))
+    assertWarning(factor(levs, levels=levs))
+    assertWarning(factor(1:2,	 labels=levs))
+    })
+## failed in R < 2.10.0
+L <- c("no", "yes")
+x <- (5:1)/10; lx <- paste("0.", 1:5, sep="")
+y <- pi + (-9:9)*2^-53
+z <- c(1:2,2:1) ; names(z) <- nz <- letters[seq_along(z)]
+of <- ordered(4:1)
+stopifnot(identical(factor(c(2, 1:2), labels = L),
+		    structure(c(2L, 1:2), .Label = L, class="factor")),
+	  identical(factor(x),
+		    structure(5:1, .Label = lx, class="factor")),
+	  length(levels(factor(y))) == 1, length(unique(y)) == 5,
+	  identical(factor(z),
+		    structure(z, .Names = nz, .Label = c("1","2"),
+			      class="factor")),
+	  identical(of, factor(of)))
+## partly failed in R <= 2.9.0, partly in R-devel(2.10.0)
+
+
+## "misuses" of sprintf()
+assertError(sprintf("%S%"))
+assertError(sprintf("%n %g", 1))
+## seg.faulted in R <= 2.9.0
+
+
+## sprintf(., e)  where length(as.character(e)) < length(e):
+e <- tryCatch(stop(), error=identity)
+stopifnot(identical(sprintf("%s", e),
+		    sprintf("%s", as.character(e))))
+## seg.faulted in R <= 2.9.0
+e <- tryCatch(sprintf("%q %d",1), error=function(e)e)
+e2 <- tryCatch(sprintf("%s", quote(list())), error=function(e)e)
+e3 <- tryCatch(sprintf("%s", quote(blabla)), error=function(e)e)
+stopifnot(inherits(e, "error"), inherits(e2, "error"),inherits(e3, "error"),
+	  grep("invalid", c(msg	 <- conditionMessage(e),
+			    msg2 <- conditionMessage(e2),
+			    msg3 <- conditionMessage(e3))) == 1:3,
+	  1 == c(grep("%q", msg), grep("language", msg2), grep("symbol", msg3))
+          )
+## less helpful error messages previously
+
+
+## bw.SJ on extreme example
+ep <- 1e-3
+stopifnot(all.equal(bw.SJ(c(1:99, 1e6), tol = ep), 0.725, tolerance = ep))
+## bw.SJ(x) failed for R <= 2.9.0 (in two ways!), when x had extreme outlier
+
+
+## anyDuplicated() with 'incomp' ...
+oo <- options(warn=2) # no warnings allowed
+stopifnot(identical(0L, anyDuplicated(c(1,NA,3,NA,5), incomp=NA)),
+	  identical(5L, anyDuplicated(c(1,NA,3,NA,3), incomp=NA)),
+	  identical(4L, anyDuplicated(c(1,NA,3,NA,3), incomp= 3)),
+	  identical(0L, anyDuplicated(c(1,NA,3,NA,3), incomp=c(3,NA))))
+options(oo)
+## missing UNPROTECT and partly wrong in development versions of R
+
+
+## test of 'stringsAsFactors' argument to expand.grid()
+z <- expand.grid(letters[1:3], letters[1:4], stringsAsFactors = TRUE)
+stopifnot(sapply(z, class) == "factor")
+z <- expand.grid(letters[1:3], letters[1:4], stringsAsFactors = FALSE)
+stopifnot(sapply(z, class) == "character")
+## did not work in 2.9.0, fixed in 2.9.1 patched
+
+
+## print.srcref should not fail; a bad encoding should fail; neither should
+## leave an open connection
+nopen <- nrow(showConnections())
+tmp <- tempfile()
+cat( c( "1", "a+b", "2"), file=tmp, sep="\n")
+p <- parse(tmp)
+print(p)
+con <- try(file(tmp, open="r", encoding="unknown"))
+unlink(tmp)
+stopifnot(inherits(con, "try-error") && nopen == nrow(showConnections()))
+##
+
+
+## PR#13574
+x <- 1:11; y <- c(6:1, 7, 11:8)
+stopifnot(all.equal(cor.test(x, y, method="spearman", alternative="greater")$p.value,
+                    cor.test(x, -y, method="spearman", alternative="less")$p.value))
+## marginally different < 2.9.0 patched
+
+
+## median should work on POSIXt objects (it did in 2.8.0)
+median(rep(Sys.time(), 2))
+## failed in 2.8.1, 2.9.0
+
+
+## repeated NA in dim() (PR#13729)
+L0 <- logical(0)
+try(dim(L0) <- c(1,NA,NA))
+stopifnot(is.null(dim(L0)))
+L1 <- logical(1)
+try(dim(L1) <- c(-1,-1))
+stopifnot(is.null(dim(L)))
+## dim was set in 2.9.0
+
+
+## as.character(<numeric>)
+nx <- 0.3 + 2e-16 * -2:2
+stopifnot(identical("0.3", unique(as.character(nx))),
+          identical("0.3+0.3i", unique(as.character(nx*(1+1i)))))
+## the first gave ("0.300000000000000" "0.3") in R < 2.10.0
+
+
+## aov evaluated a test in the wrong place ((PR#13733)
+DF <- data.frame(y = c(rnorm(10), rnorm(10, mean=3), rnorm(10, mean=6)),
+                 x = factor(rep(c("A", "B", "C"), c(10, 10, 10))),
+                 sub = factor(rep(1:10, 3)))
+## In 2.9.0, the following line raised an error because "x" cannot be found
+junk <- summary(aov(y ~ x + Error(sub/x), data=DF, subset=(x!="C")))
+## safety check added in 2.9.0 evaluated the call.
+
+
+## for(var in seq) .. when seq is modified  "inside" :
+x <- c(1,2); s <- 0; for (i in x) { x[i+1] <- i + 42.5; s <- s + i }
+stopifnot(s == 3)
+## s was  44.5  in R <= 2.9.0
+
+
+## ":" at the boundary
+M <- .Machine$integer.max
+s <- (M-2):(M+.1)
+stopifnot(is.integer(s), s-M == -2:0)
+## was "double" in R <= 2.9.1
+
+
+## too many columns model.matrix()
+dd <- as.data.frame(sapply(1:40, function(i) gl(2, 100)))
+(f <- as.formula(paste("~ - 1 + ", paste(names(dd), collapse = ":"), sep = "")))
+e <- tryCatch(X <- model.matrix(f, data = dd), error=function(e)e)
+stopifnot(inherits(e, "error"))
+## seg.faulted in R <= 2.9.1
+
+
+## seq_along( <obj> )
+x <- structure(list(a = 1, value = 1:7), class = "FOO")
+length.FOO <- function(x) length(x$value)
+stopifnot(identical(seq_len(length(x)),
+		    seq_along(x)))
+## used C-internal non-dispatching length() in R <= 2.9.1
+
+
+## factor(NULL)
+stopifnot(identical(factor(), factor(NULL)))
+## gave an error from R ~1.3.0 to 2.9.1
+
+
+## methods() gave two wrong warnings in some cases:
+op <- options(warn = 2)# no warning, please!
+m1 <- methods(na.omit) ## should give (no warning):
+##
+setClass("bla")
+setMethod("na.omit", "bla", function(object, ...) "na.omit(<bla>)")
+(m2 <- methods(na.omit)) ## should give (no warning):
+stopifnot(identical(m1, .S3methods("na.omit")))
+options(op)
+## gave two warnings, when an S3 generic had turned into an S4 one
+
+
+## raw vector assignment with NA index
+x <- charToRaw("abc")
+y <- charToRaw("bbb")
+x[c(1, NA, 3)] <- x[2]
+stopifnot(identical(x, y))
+## used to segfault
+
+
+## Logic operations with complex
+stopifnot(TRUE & -3i, FALSE | 0+1i,
+	  TRUE && 1i, 0+0i || 1+0i)
+## was error-caught explicitly in spite of contrary documentation
+
+
+## Tests of save/load with different types of compression
+x <- xx <- 1:1000
+test1 <- function(ascii, compress)
+{
+    tf <- tempfile()
+    save(x, ascii = ascii, compress = compress, file = tf)
+    load(tf)
+    stopifnot(identical(x, xx))
+    unlink(tf)
+}
+for(compress in c(FALSE, TRUE))
+    for(ascii in c(TRUE, FALSE)) test1(ascii, compress)
+for(compress in c("bzip2", "xz"))
+    for(ascii in c(TRUE, FALSE)) test1(ascii, compress)
+
+
+## tests of read.table with different types of compressed input
+mor <- system.file("data/morley.tab", package="datasets")
+ll <- readLines(mor)
+tf <- tempfile()
+## gzip copression
+writeLines(ll, con <- gzfile(tf)); close(con)
+file.info(tf)$size
+stopifnot(identical(read.table(tf), morley))
+## bzip2 copression
+writeLines(ll, con <- bzfile(tf)); close(con)
+file.info(tf)$size
+stopifnot(identical(read.table(tf), morley))
+## xz copression
+writeLines(ll, con <- xzfile(tf, compression = -9)); close(con)
+file.info(tf)$size
+stopifnot(identical(read.table(tf), morley))
+unlink(tf)
+
+
+## weighted.mean with NAs (PR#14032)
+x <- c(101, 102, NA)
+stopifnot(all.equal(mean(x, na.rm = TRUE), weighted.mean(x, na.rm = TRUE)))
+## divided by 3 in 2.10.0 (only)
+## but *should* give NaN for empty:
+stopifnot(identical(NaN, weighted.mean(0[0])),
+	  identical(NaN, weighted.mean(NA,		na.rm=TRUE)),
+	  identical(NaN, weighted.mean(rep(NA_real_,2), na.rm=TRUE)))
+## all three gave 0  in 2.10.x and 2.11.x (but not previously)
+
+
+## unname() on 0-length vector
+stopifnot(identical(1[FALSE], unname(c(a=1)[FALSE])))
+## failed to drop names in 2.10.0
+
+
+## complete.cases on 0-column data frame
+complete.cases(data.frame(1:10)[-1])
+## failed in 2.10.0
+
+
+## PR#14035, converting (partially) unnamed lists to environments.
+(qq <- with(list(2), ls()))
+nchar(qq)
+with(list(a=1, 2), ls())
+## failed in R < 2.11.0
+
+
+## chisq.test with over-long 'x' or 'y' arg
+# https://stat.ethz.ch/pipermail/r-devel/2009-November/055700.html
+x <- y <- rep(c(1000, 1001, 1002), each=5)
+z <- eval(substitute(chisq.test(x,y), list(x=x)))
+z
+z$observed
+## failed in 2.10.0
+
+
+## unsplit(drop = TRUE) on a data frame failed (PR#14084)
+dff <- data.frame(gr1 = factor(c(1,1,1,1,1,2,2,2,2,2,2), levels=1:4),
+                  gr2 = factor(c(1,2,1,2,1,2,1,2,1,2,3), levels=1:4),
+                  yy = rnorm(11), row.names = as.character(1:11))
+dff2 <- split(dff, list(dff$gr1, dff$gr2), drop=TRUE)
+dff3 <- unsplit(dff2, list(dff$gr1, dff$gr2), drop=TRUE)
+stopifnot(identical(dff, dff3))
+## failed in 2.10.0
+
+
+## mean.difftime ignored its na.rm argument
+z <- as.POSIXct(c("1980-01-01", "1980-02-01", NA, "1980-03-01", "1980-04-01"))
+zz <- diff(z)
+stopifnot(is.finite(mean(zz, na.rm=TRUE)))
+## was NA in 2.10.0
+
+
+## weighted means with zero weights and infinite values
+x <- c(0, 1, 2, Inf)
+w <- c(1, 1, 1, 0)
+z <- weighted.mean(x, w)
+stopifnot(is.finite(z))
+## was NaN in 2.10.x
+
+
+## Arithmetic operations involving "difftime"
+z <- as.POSIXct(c("2009-12-01", "2009-12-02"), tz="UTC")
+(zz <- z[2] - z[1])
+(zzz <- z[1] + zz)
+stopifnot(identical(zzz, z[2]),
+          identical(zz + z[1], z[2]),
+          identical(z[2] - zz, z[1]))
+z <- as.Date(c("2009-12-01", "2009-12-02"))
+(zz <- z[2] - z[1])
+(zzz <- z[1] + zz)
+stopifnot(identical(zzz, z[2]),
+          identical(zz + z[1], z[2]),
+          identical(z[2] - zz, z[1]))
+## failed/gave wrong answers when Ops.difftime was introduced.
+
+
+## quantiles, new possibilities in 2.11.0
+x <- ordered(1:11, labels=letters[1:11])
+quantile(x, type = 1)
+quantile(x, type = 3)
+st <- as.Date("1998-12-17")
+en <- as.Date("2000-1-7")
+ll <- seq(as.Date("2000-1-7"), as.Date("1997-12-17"), by="-1 month")
+quantile(ll, type = 1)
+quantile(ll, type = 3)
+## failed prior to 2.11.0
+
+
+## (asymptotic) point estimate in wilcox.test(*, conf.int=TRUE)
+alt <- eval(formals(stats:::wilcox.test.default)$alternative)
+Z <- c(-2, 0, 1, 1, 2, 2, 3, 5, 5, 5, 7)
+E1 <- sapply(alt, function(a.)
+	     wilcox.test(Z, conf.int = TRUE,
+			 alternative = a., exact = FALSE)$estimate)
+X <- c(6.5, 6.8, 7.1, 7.3, 10.2)
+Y <- c(5.8, 5.8, 5.9, 6, 6, 6, 6.3, 6.3, 6.4, 6.5, 6.5)
+E2 <- sapply(alt, function(a.)
+	     wilcox.test(X,Y, conf.int = TRUE,
+			 alternative = a., exact = FALSE)$estimate)
+stopifnot(E1[-1] == E1[1],
+	  E2[-1] == E2[1])
+## was continiuity corrected, dependent on 'alternative', prior to 2.10.1
+
+
+## read.table with embedded newlines in header (PR#14103)
+writeLines(c('"B1', 'B2"', 'B3'), "test.dat")
+z <- read.table("test.dat", header = TRUE)
+unlink("test.dat")
+stopifnot(identical(z, data.frame("B1.B2"="B3")))
+## Left part of header to be read as data in R < 2.11.0
+
+
+## switch() with  empty  '...'
+stopifnot(is.null(switch("A")),
+	  is.null(switch(1)), is.null(switch(3L)))
+## the first one hung, 2nd gave error, in R <= 2.10.1
+
+
+## factors with NA levels
+V <- addNA(c(0,0,NA,0,1,1,0,NA,1,1))
+stopifnot(identical(V, V[, drop = TRUE]))
+stopifnot(identical(model.frame(~V), model.frame(~V, xlev = list(V=levels(V)))))
+# dropped NA levels (in two places) in 2.10.1
+V <- c(0,0,NA,0,1,1,0,NA,1,1)
+stopifnot(identical(V, V[, drop = TRUE]))
+stopifnot(identical(model.frame(~V), model.frame(~V, xlev = list(V=levels(V)))))
+## check other cases have not been changed
+
+
+## ks.test gave p=1 rather than p=0.9524 because abs(1/2-4/5)>3/10 was TRUE
+stopifnot(all.equal(ks.test(1:5, c(2.5,4.5))$p.value, 20/21))
+
+
+## NAs in utf8ToInt and v.v.
+stopifnot(identical(utf8ToInt(NA_character_), NA_integer_),
+          identical(intToUtf8(NA_integer_), NA_character_),
+          identical(intToUtf8(NA_integer_, multiple = TRUE), NA_character_))
+## no NA-handling prior to 2.11.0
+
+
+## tcrossprod() for  matrix - vector combination
+u <- 1:3 ; v <- 1:5
+## would not work identically: names(u) <- LETTERS[seq_along(u)]
+U <- as.matrix(u)
+stopifnot(identical(tcrossprod(u,v), tcrossprod(U,v)),
+	  identical(tcrossprod(u,v), u %*% t(v)),
+	  identical(tcrossprod(v,u), tcrossprod(v,U)),
+	  identical(tcrossprod(v,u), v %*% t(u)))
+## tcrossprod(v,U) and (U,v) wrongly failed in R <= 2.10.1
+
+
+## det() and determinant() in NA cases
+m <- matrix(c(0, NA, 0, NA, NA, 0, 0, 0, 1), 3,3)
+m0 <- rbind(0, cbind(0, m))
+if(FALSE) { ## ideally, we'd want -- FIXME --
+stopifnot(is.na(det(m)), 0 == det(m0))
+} else print(c(det.m = det(m), det.m0 = det(m0)))
+## the first wrongly gave 0  (still gives .. FIXME)
+
+
+## c/rbind(deparse.level=2)
+attach(mtcars)
+(cn <- colnames(cbind(qsec, hp, disp)))
+stopifnot(identical(cn, c("qsec", "hp", "disp")))
+(cn <- colnames(cbind(qsec, hp, disp, deparse.level = 2)))
+stopifnot(identical(cn, c("qsec", "hp", "disp")))
+(cn <- colnames(cbind(qsec, log(hp), sqrt(disp))))
+stopifnot(identical(cn, c("qsec", "", "")))
+(cn <- colnames(cbind(qsec, log(hp), sqrt(disp), deparse.level = 2)))
+stopifnot(identical(cn, c("qsec", "log(hp)", "sqrt(disp)")))
+detach()
+## 2.10.1 gave no column names for deparse.level=2
+
+
+## Infinite-loops with match(incomparables=)
+match(c("A", "B", "C"), "A", incomparables=NA)
+match(c("A", "B", "C"), c("A", "B"), incomparables="A")
+## infinite-looped in 2.10.1
+
+
+## path.expand did not propagate NA
+stopifnot(identical(c("foo", NA), path.expand(c("foo", NA))))
+## 2.10.1 gave "NA"
+
+
+## prettyNum(drop0trailing=TRUE) mangled complex values (PR#14201)
+z <- c(1+2i, 1-3i)
+str(z) # a user
+stopifnot(identical(format(z, drop0trailing=TRUE), as.character(z)))
+## 2.10.1 gave 'cplx [1:2] 1+2i 1+3i'
+
+
+## "exact" fisher.test
+dd <- data.frame(group=1, score=c(rep(0,14), rep(1,29), rep(2, 16)))[rep(1:59, 2),]
+dd[,"group"] <- c(rep("DOG", 59), rep("kitty", 59))
+Pv <- with(dd, fisher.test(score, group)$p.value)
+stopifnot(0 <= Pv, Pv <= 1)
+## gave P-value 1 + 1.17e-13  in R < 2.11.0
+
+
+## Use of switch inside lapply (from BioC package ChromHeatMap)
+lapply("forward", switch, forward = "posS", reverse = "negS")
+## failed  when first converted to primitive.
+
+
+## evaluation of arguments of log2
+assertError(tryCatch(log2(quote(1:10))))
+## 'worked' in 2.10.x by evaluting the arg twice.
+
+
+## mean with NAs and trim (Bill Dunlap,
+## https://stat.ethz.ch/pipermail/r-devel/2010-March/056982.html)
+stopifnot(is.na(mean(c(1,10,100,NA), trim=0.1)),
+          is.na(mean(c(1,10,100,NA), trim=0.26)))
+## gave error, real value respectively in R <= 2.10.1
+
+
+## all.equal(*, tol) for objects with numeric attributes
+a <- structure(1:17, xtras = c(pi, exp(1)))
+b <- a * (II <- (1 + 1e-7))
+attr(b,"xtras") <- attr(a,"xtras") * II
+stopifnot(all.equal(a,b, tolerance = 2e-7))
+## gave  "Attributes: .... relative difference: 1e-07"  in R <= 2.10.x
+
+
+## Misuse of gzcon() [PR# 14237]
+(ac <- getAllConnections())
+tc <- textConnection("x", "w")
+try(f <- gzcon(tc)) # -> error.. but did *damage* tc
+newConn <- function(){ A <- getAllConnections(); A[is.na(match(A,ac))] }
+(newC <- newConn())
+gg <- tryCatch(getConnection(newC), error=identity)
+stopifnot(identical(gg, tc))
+close(tc)
+stopifnot(length(newConn()) == 0)
+## getConn..(*) seg.faulted in R <= 2.10.x
+
+
+## splinefun(., method = "monoH.FC")
+x <- 1:7 ; xx <- seq(0.9, 7.1, length=2^12)
+y <- c(-12, -10, 3.5, 4.45, 4.5, 140, 142)
+Smon <- splinefun(x, y, method = "monoH.FC")
+stopifnot(0 <= min(Smon(xx, deriv=1)))
+## slopes in [4.4, 4.66] were slightly negative, because m[] adjustments
+## could be sightly off in cases of adjacency, for  R <= 2.11.0
+
+
+## prettyDate( <Date> )
+x <- as.Date("2008-04-22 09:45") + 0:5
+px <- pretty(x, n = 5)
+stopifnot(px[1] == "2008-04-22", length(px) == 6)
+## did depend on the local timezone  at first
+
+
+## cut( d, breaks = n) - for d of class  'Date' or 'POSIXt'
+x <- seq(as.POSIXct("2000-01-01"), by = "days", length = 20)
+stopifnot(nlevels(c1 <- cut(x, breaks = 3)) == 3,
+	  nlevels(c2 <- cut(as.POSIXlt(x), breaks = 3)) == 3,
+	  nlevels(c3 <- cut(as.Date(x), breaks = 3)) == 3,
+	  identical(c1, c2))
+## failed in R <= 2.11.0
+
+
+## memDecompress (https://stat.ethz.ch/pipermail/r-devel/2010-May/057419.html)
+char <- paste(replicate(200, "1234567890"), collapse="")
+char.comp <- memCompress(char, type="xz")
+char.dec <- memDecompress(char.comp, type="xz", asChar=TRUE)
+stopifnot(nchar(char.dec) == nchar(char))
+## short in R <= 2.11.0
+
+
+## rbeta() with mass very close to 1 -- bug PR#14291
+set.seed(1)
+if(any(ii <- is.na(rbeta(5000, 100, 0.001))))
+    stop("rbeta() gave NAs at ", paste(which(ii), collapse=", "),
+         "\n")
+## did give several, but platform dependently, in R <= 2.11.0
+
+
+## print.ls_str() should not eval() some objects
+E <- environment((function(miss)function(){})())
+E$i <- 2:4
+E$o <- as.name("foobar")
+E$cl <- expression(sin(x))[[1]]
+ls.str(E)
+## 'o' failed in R <= 2.11.0 (others in earlier versions of R)
+
+
+## print() {& str()} should distinguish named empty lists
+stopifnot(identical("named list()",
+		    capture.output(list(.=2)[0])))
+## was just "list()" up to R <= 2.11.x
+
+
+## stripchart with empty first level (PR#14317)
+stripchart(decrease ~ treatment, data = OrchardSprays,
+           subset = treatment != "A")
+## failed in 2.11.1
+
+
+## versions of pre-2.12.0 using zlib 1.2.[45] failed
+zz <- gzfile("ex.gz", "w")  # compressed file
+cat("TITLE extra line", "2 3 5 7", "", "11 13 17", file = zz, sep ="\n")
+close(zz)
+blah <- file("ex.gz", "r")
+stopifnot(seek(blah) == 0)
+## gave random large multiple of 2^32 on Linux systems attempting to
+## use LFS support.
+
+
+## pre-2.12.0 wrongly accessed 0-length entries
+o0 <- as.octmode(integer(0))
+stopifnot(identical(o0, o0 & "400"))
+## gave a seg.fault at some point
+
+
+## as.logical on factors
+x <- factor(c("FALSE", "TRUE"))
+stopifnot(identical(as.logical(x), c(FALSE, TRUE)))
+# Lost documented behaviour when taken primitive in R 2.6.0
+stopifnot(identical(as.vector(x, "logical"), c(FALSE, TRUE)))
+# continued to work
+## Reverted in 2.12.0.
+
+
+## missing backquoting of default arguments in in prompt()
+f <- function (FUN = `*`) {}
+pr <- prompt(f, NA)$usage
+stopifnot(identical(pr[2], "f(FUN = `*`)"))
+## see https://stat.ethz.ch/pipermail/r-devel/2010-August/058126.html
+
+
+## cut.POSIXt very near boundaries (PR#14351)
+x <- as.POSIXlt("2010-08-10 00:00:01")
+stopifnot(!is.na(cut(x, "5 hours")))
+## was NA in 2.11.x
+
+
+## summary() on data frames with invalid names -- in UTF-8 locale
+DF <- data.frame(a = 1:3, b = 4:6)
+nm <- names(DF) <- c("\xca", "\xcb")
+cn <- gsub(" ", "", colnames(summary(DF)), useBytes = TRUE)
+stopifnot(identical(cn, nm))
+m <- as.matrix(DF)
+DF <- data.frame(a = 1:3, m=I(m))
+cn <- gsub(" ", "", colnames(summary(DF)), useBytes = TRUE)
+stopifnot(identical(cn, c("a", paste("m.", nm, sep="", collapse=""))))
+##  Had NAs in < 2.12.0
+
+
+## [[<- could create invalid objects,
+## https://stat.ethz.ch/pipermail/r-devel/2010-August/058312.html
+z0 <- z <- factor(c("Two","Two","Three"), levels=c("One","Two","Three"))
+z[[2]] <- "One"
+stopifnot(typeof(z) == "integer")
+z[[2]] <- "Two"
+stopifnot(identical(z, z0))
+## failed < 2.12.0
+
+
+## predict.loess with NAs
+cars.lo <- loess(dist ~ speed, cars)
+res <- predict(cars.lo, data.frame(speed = c(5, NA, 25)))
+stopifnot(length(res) == 3L, is.na(res[2]))
+res <- predict(cars.lo, data.frame(speed = c(5, NA, 25)), se = TRUE)
+stopifnot(length(res$fit) == 3L, is.na(res$fit[2]),
+          length(res$se.fit) == 3L, is.na(res$se.fit[2]))
+cars.lo2 <- loess(dist ~ speed, cars, control = loess.control(surface = "direct"))
+res <- predict(cars.lo2, data.frame(speed = c(5, NA, 25)))
+stopifnot(length(res) == 3L, is.na(res[2]))
+res <- predict(cars.lo2, data.frame(speed = c(5, NA, 25)), se = TRUE)
+stopifnot(length(res$fit) == 3L, is.na(res$fit[2]),
+          length(res$se.fit) == 3L, is.na(res$se.fit[2]))
+## Used na.omit prior to 2.12.0
+
+
+## student typo
+try( ksmooth(cars$speed, cars$dists) )
+## now error about y (== NULL);  segfaulted <= 2.11.1
+
+
+## do.call()ing NextMethod and empty args:
+try( do.call(function(x) NextMethod('foo'),list()) )
+## segfaulted <= 2.11.1
+
+
+## identical() returned FALSE on external ptr with
+## identical addresses <= 2.11.1
+## Example with getNativeSymbolInfo no longer relevant
+
+
+## getNamespaceVersion() etc
+stopifnot(getNamespaceVersion("stats") == getRversion())
+## failed in R 2.11.x
+
+
+## PR#14383
+x <- rnorm(100)
+z1 <- quantile(x, type = 6, probs = c(0, .5))
+z2 <- quantile(x, type = 6, probs = c(.5, 0))
+stopifnot(z1 == rev(z2))
+## differed in 2.11.x
+
+
+## backSpline() with decreasing knot locations
+require(splines)
+d1 <- c(616.1, 570.1, 523.7, 477.3, 431.3, 386.2, 342.4, 300.4, 260.4,
+        222.7, 187.8, 155.7, 126.7, 100.8,  78.1,  58.6,  42.2,  28.7,
+         18.1,  10.2)
+r1 <- c(104.4, 110  , 115.5, 121,   126.6, 132.1, 137.7, 143.2, 148.8,
+        154.3, 159.9, 165.4, 170.9, 176.5, 182,   187.6, 193.1, 198.7,
+        204.2, 209.8)
+sp1 <- interpSpline(r1,d1)# 'x' as function of 'y' (!)
+psp1 <- predict(sp1)
+bsp1 <- backSpline(sp1)
+dy <- diff(predict(bsp1, .5 + 18:30)$y)
+stopifnot(-.9 < dy, dy < -.35)
+## failed in R <= 2.11.x: "bizarre jumps"
+detach("package:splines")
+
+
+## PR#14393
+f <- factor(c(NA, 1, 2), levels = 1:3, labels = 1:3)
+mf <- model.frame(~ f, na.action = na.pass, drop.unused.levels = TRUE)
+stopifnot(identical(mf$f, f[,drop=TRUE]))
+## failed to drop < 2.12.0
+
+
+## problem with deparsing variable names of > 500 bytes in model.frame
+## reported by Terry Therneau to R-devel, 2010-10-07
+tname <- paste('var', 1:50, sep='')
+tmat <- matrix(rnorm(500), ncol=50, dimnames=list(NULL, tname))
+tdata <- data.frame(tmat)
+temp1 <- paste( paste(tname, tname, sep='='), collapse=', ')
+temp2 <- paste("~1 + cbind(", temp1, ")")
+foo <- model.frame(as.formula(temp2), tdata)
+## gave invalid variable name.
+
+
+## subassignment to expressions sometimes coerced them to lists.
+x1 <- x2 <- x3 <- expression(a = pi, b = pi^2)
+x1["b"] <- expression(pi^3)
+stopifnot(is.expression(x1)) # OK
+x1["a"] <- NULL
+stopifnot(is.expression(x1))
+x2[["b"]] <- quote(pi^3)
+stopifnot(is.expression(x2)) # OK
+x2[["a"]] <- NULL
+stopifnot(is.expression(x2))
+x3$a <- NULL
+stopifnot(is.expression(x3))
+## coerced to lists
+
+
+## predict on an lm object with type = "terms" and 'terms' specified
+dat <- data.frame(y=log(1:10), x=1:10, fac=rep(LETTERS[11:13],c(3,3,4)))
+fit <- lm(y~fac*x, data=dat)
+pfit <- predict(fit, type="terms", interval="confidence", newdata=dat[7:5,])
+pfit2 <- predict(fit, type="terms", terms=c("x","fac"),
+                 interval="confidence", newdata=dat[7:5,])
+pfit2Expected <- lapply(pfit,
+                        function(x)if(is.matrix(x))
+                        structure(x[, c("x","fac")], constant=attr(x, "constant"))
+                        else x)
+stopifnot(identical(pfit2, pfit2Expected))
+## pfit2 failed, and without 'interval' gave se's for all terms.
+
+
+## TRE called assert() on an invalid regexp (PR#14398)
+try(regexpr("a{2-}", ""))
+## terminated R <= 2.12.0
+
+
+## ! on zero-length objects (PR#14244)
+M <- matrix(FALSE, 0, 2)
+stopifnot(identical(attributes(!M), attributes(M)))
+# and for back compatibiility
+!list() # logical(0)
+## dropped all attributes in 2.12.0
+
+
+## Preserve intercepts in drop.terms
+tt <- terms(~ a + b - 1)
+tt2 <- terms(~ b - 1)
+stopifnot(identical(drop.terms(tt, 1), tt2))
+stopifnot(identical(tt[2], tt2))
+stopifnot(identical(tt[1:2], tt))
+## reset intercept term < R 2.13.0
+
+
+## Test new defn of cmdscale()
+mds <- cmdscale(eurodist, eig = TRUE, k = 14)
+stopifnot(ncol(mds$points) < 14L) # usually 11.
+## Used negative eigenvalues in 2.12.0
+
+
+## Sweave regression test moved to utils/tests.
+
+
+## mapply() & sapply() should not simplify e.g. for "call":
+f2 <- function(i,j) call(':',i,j)
+stopifnot(identical(2:3,
+		    dim(sapply(1:3, function(i) list(0, 1:i)))),
+	  length(r <- mapply(1:2, c(3,7), FUN= f2)) == 2,
+	  length(s <- sapply(1:3, f2, j=7)) == 3)
+## length wrongly were 6 and 9, in R <= 2.12.0
+
+
+## 'sep' in reshape() (PR#14335)
+test <- data.frame(x = rnorm(100), y = rnorm(100), famid = rep(1:50, each=2),
+                   time = rep(1:2, 50))
+
+wide <- reshape(data = test, v.names = c("x", "y"), idvar = "famid",
+                timevar = "time", sep = "", direction = "wide")
+stopifnot(identical(names(wide), c("famid", "x1", "y1", "x2", "y2")))
+## was c("famid", "x.1", "y.1", "x.2", "y.2") in R <= 2.12.0
+
+
+## PR#14438
+X <- matrix(0+1:10, ncol = 2)[, c(1,1,2,2)]
+colnames(X) <- c("X1","Dup1", "X2", "Dup2")
+X2 <- qr.X(qr(X))
+X2
+identical(colnames(X), colnames(X2))
+## failed to pivot colnames in R <= 2.12.0
+
+
+## improvements to aggregate.data.frame in 2.13.0
+a <- data.frame(nm = c("a", "b", "a", "b"), time = rep(Sys.time(), 4))
+b <- with(a, aggregate(time, list(nm=nm), max))
+stopifnot(inherits(b$x, "POSIXt"))
+##
+
+
+## pretty(<only non-finite>)  PR#14468
+stopifnot(length(pretty(-2:1 / 0)) == 0)
+## gave an error in R <= 2.12.1
+
+
+## revised behaviour of as.POSIXlt in R 2.13.0
+x <- c("2001-02-03", "2001-02-03 04:05")
+stopifnot(identical(as.POSIXlt(x), rev(as.POSIXlt(rev(x)))))
+## used different formats earlier
+
+
+## seq.Date could overshoot
+x <- seq(as.Date("2011-01-07"), as.Date("2011-03-01"), by = "month")
+stopifnot(length(x) == 2)
+x <- seq(as.POSIXct("2011-01-07"), as.POSIXct("2011-03-01"), by = "month")
+stopifnot(length(x) == 2)
+## was 3 in R < 2.13.0
+
+
+## mostattributes<- now sometimes works for data frames (PR#14469)
+x <- women
+mostattributes(x) <- attributes(women) # did not set names in R < 2.13.0
+## but there are still problems with row.names (see the help)
+
+
+## naresid.exclude when all cases have been omitted
+## (reported by Simon Wood to R-help, 2011-01-14)
+x <- NA_real_
+na.act <- na.action(na.exclude(x))
+z <- naresid(na.act, rep(0, 0))
+stopifnot(identical(z, x))
+## gave length-0 result
+
+
+## weighted.residuals did not work correctly with mlm fits
+## see https://stat.ethz.ch/pipermail/r-devel/2011-January/059642.html
+d4 <- data.frame(y1=1:4, y2=2^(0:3), wt=log(1:4), fac=LETTERS[c(1,1,2,2)])
+fit <- lm(data=d4, cbind(y1,y2)~fac, weights=wt)
+wtr <- weighted.residuals(fit)
+stopifnot(identical(dim(wtr), 3:2))
+## dropped dims in 2.12.1
+
+
+## ccf did not work with na.action=na.pass
+## https://stat.ethz.ch/pipermail/r-help/2011-January/265992.html
+z <- matrix(rnorm(50),,2); z[6,] <- NA; z <- ts(z)
+acf(z, na.action=na.pass, plot = FALSE)
+ccf(z[,1], z[,2], na.action=na.pass, plot=FALSE)
+## failed in 2.12.1
+
+
+## tests of append mode on compressed connections.
+tf <- tempfile(); con <- gzfile(tf, "w")
+writeLines(as.character(1:50), con)
+close(con); con <- gzfile(tf, "a")
+writeLines(as.character(51:70), con)
+close(con)
+stopifnot(length(readLines(tf)) == 70)
+unlink(tf)
+
+con <- bzfile(tf, "w")
+writeLines(as.character(1:50), con)
+close(con); con <- bzfile(tf, "a")
+writeLines(as.character(51:70), con)
+close(con)
+stopifnot(length(readLines(tf)) == 70)
+unlink(tf)
+
+con <- xzfile(tf, "w")
+writeLines(as.character(1:50), con)
+close(con); con <- xzfile(tf, "a")
+writeLines(as.character(51:70), con)
+close(con)
+stopifnot(length(readLines(tf)) == 70)
+unlink(tf)
+## bzfile warned and did not work R < 2.13.0
+
+
+## NA_complex_ in prettyNum()
+format(c(pi+0i, NA),   drop0 = TRUE)
+prettyNum(NA_complex_, drop0 = TRUE)
+## gave errors in R < 2.12.2
+
+
+## Map() needed to call match.fun() itself (PR#14495)
+local({a <- sum; Map("a", list(1:5))})
+## failed R < 2.13.0
+
+
+## correct format() / rounding, print()ing -- (PR#14491)
+stopifnot(format.info(7.921,     digits=2) == c(3,1,0),
+          format.info(5.9994001, digits=4) == c(5,3,0))
+## gave (1, 0, 0) in all R versions < 2.13.0
+stopifnot(identical(format(0.2204, digits=3), "0.22"))
+## gave "0.220" previously
+
+
+## regression test for PR#14517
+try(unzip('non-existing_file.zip', list=TRUE, unzip="internal"))
+## crashed on some platforms in pre-2.13.0
+
+
+## plot.formula(*, data=<matrix>) etc
+A <- data.matrix(anscombe)
+plot  (y1 ~ x1, data = A, main = "Anscombe's first two sets")
+points(y2 ~ x2, data = A, col=2, pch=2)
+lines (y2 ~ x2, data = A, lwd=2, col="gray")
+## using a matrix failed in R < 2.13.0  *when* there was an extra argument
+
+
+## PR#14530
+dfA <- data.frame(A=1:2, B=3:4, row.names=letters[1:2])
+dfB <- dfA[2:1,]
+res <- try(data.frame(dfA, dfA[2:1,], check.rows=TRUE))
+stopifnot(inherits(res, "try-error"))
+## 'worked' in 2.12.2.
+
+
+## uniroot(f,..) when f(.) == -Inf :
+## now play with different  g(.)'s ..
+g <- function(x) exp( 5*sign(x)*abs(x)^2.1 )
+if(FALSE) { ## if you want to see how it *did* go wrong:
+    ff1 <- function(x) {r <- log(g(x)); print(c(x,r)); r}
+    str(ur <- uniroot(ff1, c(-90,100)))
+}
+assertWarning(uniroot(function(x) log(g(x)), c(-90,100)))
+str(ur <- uniroot(function(x) log(g(x)), c(-90,100)))# -> 2 warnings .. -Inf replaced ..
+stopifnot(abs(ur$root) < 0.001)
+## failed badly in R < 2.13.0, as -Inf was replaced by +1e308
+
+
+## as.matrix.dist
+x <- matrix(,0,0)
+d <- dist(x)
+as.matrix(d)
+## Threw an error < 2.13.0
+
+
+## smooth.spline with data with a very small range.  (PR#14552)
+dt <- seq(as.POSIXct("2011-01-01"), as.POSIXct("2011-01-01 10:00:00"), by="min")
+x <- as.double(dt)
+y <- sin(seq_along(x) * 3 * pi/180)
+s <- smooth.spline(x, y)
+stopifnot(length(s$x) == length(x))
+## Chose 5 distinct values of x in 2.13.0
+
+
+## readBin on a raw connection
+rawcon <- rawConnection(as.raw(101:110))
+res <- readBin(rawcon, what="integer", size=1, n=4)
+close(rawcon)
+stopifnot(identical(res, 101:104))
+## read the same value repeatedly in 2.13.0
+
+
+## Types of closure bodies
+fun <- eval(substitute(function() x, list(x = environment())))
+body(fun)
+# an external pointer
+y <- file(""); z <- attr(y, "conn_id"); close(y)
+fun <- eval(substitute(function() x, list(x = z)))
+body(fun)
+## not allowed in R < 2.14.0.
+
+
+## Corner cases for signif() and round()
+x <- pi^(-6:6)
+stopifnot(identical(signif(x, -Inf), signif(x, 1L))) # zero in R < 2.14.0
+stopifnot(identical(round(x, -Inf), rep(0, length(x)))) # NAs in R < 2.14.0
+##
+
+
+## (un)stack with character columns
+DF <- data.frame(a = letters[1:3], b = letters[4:6], stringsAsFactors = FALSE)
+DF2 <- stack(DF)
+stopifnot(class(DF2$values) == "character") # was factor
+DF3 <- unstack(DF2) # contained factors
+stopifnot(all(sapply(DF3, class) == "character"))
+DF4 <- stack(DF[1])
+stopifnot(identical(unstack(DF4), DF[1])) # was a list
+## issues in R < 2.14.0
+
+
+## PR#14710 (an instance of PR#8528)
+stopifnot(!is.na(qchisq(p=0.025, df=0.00991)))
+## NaN in 2.13.2
+
+
+## nobs() for zero-weight glm fits:
+DF <- data.frame(x1=log(1:10), x2=c(1/(1:9), NA), y=1:10,
+                 wt=c(0,2,0,4,0,6,7,8,9,10))
+stopifnot(nobs(lm(y ~ x1 + x2, weights = wt, data=DF)) ==
+          nobs(glm(y ~ x1 + x2, weights = wt, data = DF)))
+## was 6 and 9 in R < 2.14.1.
+
+
+## anyDuplicated(*, MARGIN=0)
+m. <- m <- cbind(M = c(3,2,7,2),
+                 F = c(6,2,7,2))
+rownames(m.) <- LETTERS[1:4]; m.
+stopifnot(identical(attributes(dm <- duplicated(m., MARGIN=0)),
+		    attributes(m.)),
+	  (dvm <- duplicated(as.vector(m.))) == dm, # all TRUE
+	  identical(anyDuplicated(	    m.,	 MARGIN=0),
+		    anyDuplicated(as.vector(m.), MARGIN=0)))
+## gave error in R < 2.14.1
+
+
+## PR#14739
+stopifnot(!is.nan(pbinom(10, 1e6, 0.01, log.p=TRUE)))
+## was NaN thanks to Maechler's misuse of toms708 in 2.11.0.
+
+
+## PR14742
+stopifnot(identical(duplicated(data.frame(c(1, 1)), fromLast = TRUE),
+                    duplicated(c(1, 1), fromLast = TRUE)))
+## first ignored fromLast in 2.14.0.
+
+## str(*, list.len, strict.width=.):
+dm <- as.data.frame(matrix( rnorm(10000), nrow=50, ncol=200))
+calls <- list(quote( str(dm, list.len= 7)),
+	      quote( str(dm, list.len= 7, digits=10, width=88, strict.width='no')),
+	      quote( str(dm, list.len= 7, digits=10, width=88, strict.width='cut')))
+ee <- lapply(calls, function(cl) capture.output(eval(cl)))
+stopifnot(sapply(ee, length) == 1 + 7 + 1)
+## with 'list.len' was not used with 'strict.width="cut"' in  R <= 2.14.1
+
+## Tests of serialization (new internal code in 2.15.0)
+input <- pi^(1:10)
+stopifnot(identical(input, unserialize(serialize(input, NULL))))
+stopifnot(identical(input, unserialize(serialize(input, NULL, xdr = FALSE))))
+z <- pi+ 3*1i
+input <- z^(1:10)
+stopifnot(identical(input, unserialize(serialize(input, NULL))))
+stopifnot(identical(input, unserialize(serialize(input, NULL, xdr = FALSE))))
+input <- matrix(1:1000000, 1000, 1000)
+stopifnot(identical(input, unserialize(serialize(input, NULL))))
+stopifnot(identical(input, unserialize(serialize(input, NULL, xdr = FALSE))))
+z <- paste(readLines(file.path(R.home("doc"), "COPYING")), collapse="\n")
+input <- charToRaw(z)
+stopifnot(identical(input, unserialize(serialize(input, NULL))))
+serialize(input, con <- file("serial", "wb")); close(con)
+res <- unserialize(con <- file("serial", "rb")); close(con)
+stopifnot(identical(input, res))
+unlink("serial")
+## Just a test for possible regressions.
+
+
+## mis-PROTECT()ion in printarray C code:
+df <- data.frame(a=1:2080, b=1001:2040, c=letters, d=LETTERS, e=1:1040)
+stopifnot(length(df.ch <- capture.output(df)) == 1+nrow(df))
+## "cannot allocate memory block of size 17179869183.6 Gb" in R <= 2.14.1
+
+
+## logic in one of the many combinations of predict.lm() computations
+fit <- lm(mpg ~ disp+hp, data=mtcars)
+r <- predict(fit, type="terms", terms = 2, se.fit=TRUE)
+stopifnot(dim(r$se.fit) == c(nrow(mtcars), 1))
+## failed in  R <= 2.14.1
+
+
+## format.POSIXlt(x) for wrong x
+d0 <- strptime(as.Date(logical(0)), format="%Y-%m-%d", tz = "GMT")
+d0$mday <- 1
+try(format(d0))
+## crashed (Arithmetic exception) for  R <= 2.14.1
+
+
+## options("max.print") :
+tools::assertCondition(options(max.print = Inf), "warning") # and then error
+assertError(options(max.print = -2))
+tools::assertCondition(options(max.print = 1e100), "warning")
+## gave only warnings (every print() time, ...)  in R <= 2.14.2
+
+
+## attributes with units<-  (PR#14839)
+tt <- structure(500, units = "secs", class = "difftime", names = "a")
+tt
+units(tt) <- "mins"
+tt
+stopifnot(identical(names(tt), "a"))
+## R < 2.15.0 changed the name, but then it was not documented to be kept.
+
+
+## predict( VAR(p >= 2) )
+set.seed(42)
+u <- matrix(rnorm(200), 100, 2)
+y <- filter(u, filter=0.8, "recursive")
+est <- ar(y, aic = FALSE, order.max = 2) ## Estimate VAR(2)
+xpred <- predict(object = est, n.ahead = 100, se.fit = FALSE)
+stopifnot(dim(xpred) == c(100, 2), abs(range(xpred)) < 1)
+## values went to +- 1e23 in R <= 2.14.2
+
+
+## regression tests for merge
+d1 <- data.frame(a = 1:10, b = 1:10, b.x = 10:1)
+d2 <- data.frame(a = 1:10, b = 101:110)
+op <- options(warn = 2)
+z <- try(merge(d1, d2, by = 'a'))
+stopifnot(inherits(z, "try-error"))
+merge(d1, d2, by = 'a', suffixes = c("", ".y"))
+z <- try(merge(d1, d2, by = 'a', suffixes = c(".z", ".z")))
+stopifnot(inherits(z, "try-error"))
+options(op)
+# First 'worked' in R < 2.15.0, second was disallowed in early 2012,
+# third 'worked' in R < 2.15.1.
+# example based on package SDMTools::compare.matrix
+# where 'by' is ambiguous.
+x <- expand.grid(x = 1:2, y = 1:2)
+y <- data.frame(x = c(1,2,1,2), y = c(1,1,2,2), z = c(5040,128,1123,3709))
+merge(x, y, all = TRUE)
+names(y)[3] <- "x"
+stopifnot(inherits(try(merge(x, y, all = TRUE)), "try-error"))
+## 'worked' in R < 2.15.1.
+
+
+## misuse of seq() by package 'plotrix'
+stopifnot(inherits(try(seq(1:50, by = 5)), "try-error"))
+## gave 1:50 in R < 2.15.1, with warnings from seq().
+
+
+## regression test for PR#14850 (misuse of dim<-)
+b <- a <- matrix(1:2, ncol = 2)
+`dim<-`(b, c(2, 1))
+stopifnot(ncol(a) == 2)
+## did not duplicate.
+
+
+## deparsing needs escape characters in names (PR#14846)
+f <- function(x) switch(x,"\\dbc"=2,3)
+parse(text=deparse(f))
+## Gave error about unrecognized escape
+
+
+## hclust()'s original algo was not ok for "median" (nor "centroid") -- PR#4195
+n <- 12; p <- 3
+set.seed(46)
+d <- dist(matrix(round(rnorm(n*p), digits = 2), n,p), "manhattan")
+d[] <- d[] * sample(1 + (-4:4)/100, length(d), replace=TRUE)
+hc <- hclust(d, method = "median")
+stopifnot(all.equal(hc$height[5:11],
+                    c(1.69805, 1.75134375, 1.34036875, 1.47646406,
+                      3.21380039, 2.9653438476, 6.1418258), tolerance = 1e-9))
+## Also ensure that hclust() remains fast:
+set.seed(1); nn <- 2000
+tm0 <- system.time(dst <- as.dist(matrix(runif(n = nn^2, min = 0, max = 1), nn, nn)))
+(tm <- system.time(hc <- hclust(dst, method="average")))
+stopifnot(tm[1] < tm0[1])
+## was slow  from R 1.9.0 up to R 2.15.0
+
+
+## 'infinity' partially matched 'inf'
+stopifnot(as.numeric("infinity") == Inf)
+## was NA in R < 2.15.1
+
+
+## by() failed for a 0-row data frame
+b <- data.frame(ppg.id=1, predvol=2)
+a <- b[b$ppg.id == 2, ]
+by(a, a["ppg.id"], function(x){
+    vol.sum = numeric()
+    id = integer();
+    if(dim(x)[1] > 0) {id = x$ppg.id[1]; vol.sum = sum(x$predvol)}
+    data.frame(ppg.id=id, predVolSum=vol.sum)
+})
+## failed in 2.15.0
+
+
+## model.frame.lm could be fooled if factor levels were re-ordered
+A <- warpbreaks
+fm1 <- lm(breaks ~ wool*tension, data = A, model = TRUE)
+fm2 <- lm(breaks ~ wool*tension, data = A, model = FALSE)
+A$tension <- factor(warpbreaks$tension, levels = c("H", "M", "L"))
+stopifnot(identical(model.frame(fm1), model.frame(fm2)))
+stopifnot(identical(model.frame(fm1), model.frame(fm1, data = A)))
+stopifnot(identical(model.matrix(fm1), model.matrix(fm2)))
+## not true before 2.15.2
+
+
+## model.frame.lm did not make use of predvars
+library(splines)
+fm <- lm(weight ~ ns(height, 3), data = women)
+m1 <- model.frame(fm)[1:3, ]
+m2 <- model.frame(fm, data = women[1:3, ])
+# attributes will differ
+stopifnot(identical(as.vector(m1[,2]), as.vector(m2[,2])))
+## differed in R < 2.15.2
+
+
+## JMC's version of class<- did not work as documented. (PR#14942)
+x <- 1:10
+class(x) <- character()
+class(x) <- "foo"
+class(x) <- character()
+oldClass(x) <- "foo"
+oldClass(x) <- character()
+## class<- version failed: required NULL
+
+
+## anova.lmlist could fail (PR#14960)
+set.seed(1)
+y <- rnorm(20)
+x <- rnorm(20)
+f <- factor(rep(letters[1:2], each = 10))
+model1 <- lm(y ~ x)
+model2 <- lm(y ~ x + f)
+anova(model1, model2, test = "F")
+##
+
+
+## regression test for sunflowerplot's formula method
+sunflowerplot( Sepal.Length ~ Sepal.Width, data = iris, xlab = "A")
+## failed in 2.15.1
+
+
+## misuse of alloca
+for(n in c(200, 722, 1000)) x <- rWishart(1, n, diag(n))
+## failed in various ways in R <= 2.15.1
+
+
+## undocumented used of rep(NULL), from matplot()
+stopifnot(identical(rep(NULL, length.out = 4), NULL))
+## now gives a warning.
+
+
+## PR14974
+a.factor <- as.factor(rep(letters[1:2], 2))
+b.factor <- as.factor(rep(c(1:2), each = 2))
+y <- cbind(aa = as.character(a.factor), bb = b.factor)
+data1 <- data.frame(a.factor, b.factor, y = NA)
+data1$y <- y # inserts a matric
+data1 <- subset(data1, !((a.factor == "b") & (b.factor == 2))) # Delete row
+factorial.data <- data.frame(a.factor, b.factor, row = 1:length(b.factor))
+ans <- merge(factorial.data, data1, by = c("a.factor", "b.factor"),
+             all.x = TRUE)
+stopifnot(is.na(ans[["y"]][4,]))
+## only set the first column of ans[["y"]] to NA.
+
+
+## PR14967
+stopifnot(qgeom(1e-20, prob = 0.1) >= 0)
+## was -1 in R 2.15.1
+
+
+## Regression test for r60116:7
+(p1 <- parse(text="exp(-0.5*u**2)", srcfile=NULL))
+(p2 <- parse(text="exp(-0.5*u^2)",  srcfile=NULL))
+stopifnot(identical(p1, p2))
+## p1 was expression(exp((-0.5 * u)^2))
+
+
+## backsolve with k < nrows(rhs)
+r <- rbind(c(1,2,3),c(0,1,1),c(0,0,2))
+b <- c(8,4,2,1)
+x <- backsolve(r, cbind(b,b))
+stopifnot(identical(x[,1], x[,2]))
+## 2.15.1 used elements (4,1), (2,1), (2,2) for second column.
+
+
+## Matrix oddly assumes that solve() drops NULL dimanmes
+A <- diag(3)
+dimnames(A) <- list(NULL, NULL)
+sA <- solve(A)
+stopifnot(is.null(dimnames(sA)))
+# and expm inverts a logical matrix, even though this is not as documented.
+Q <- matrix(c(FALSE, TRUE, TRUE, FALSE), 2, 2)
+is.numeric(Q) # FALSE
+solve(Q)
+## failed in R-devel, which interpreted 'numeric' correctly.
+
+
+## tests of rowsum() with names and for factor groups
+set.seed(123)
+x <- matrix(runif(100), ncol=5)
+group <- sample(1:8, 20, TRUE)
+(xsum <- rowsum(x, group))
+colnames(x) <- letters[16:20]
+(xsum <- rowsum(x, group))
+rowsum(as.data.frame(x), group)
+group <- factor(group)
+(xsum <- rowsum(x, group))
+stopifnot(sapply(dimnames(xsum), is.character))
+rowsum(as.data.frame(x), group)
+## one version had factor row names.
+
+
+## Rather pointless usage in PR#15044
+set.seed(42)
+n <- 10
+y <- rnorm(n)
+x <- rnorm(n)
+w <- rep(0, n)
+lm.wfit(cbind(1, x), y, w)
+## segfaulted in 2.15.1, only
+
+
+## as.data.frame() methods should preferably not barf on an 'nm' arg
+## reported by Bill Dunlap
+## (https://stat.ethz.ch/pipermail/r-devel/2012-September/064848.html)
+as.data.frame(1:10, nm = "OneToTen")
+as.data.frame(LETTERS[1:10], nm = "FirstTenLetters")
+as.data.frame(LETTERS[1:10])
+## second failed in 2.15.1.
+
+
+## Test of stack direction (related to PR#15011)
+f <- function(depth) if(depth < 20) f(depth+1) else Cstack_info()
+(z <- f(0))
+z10 <- f(10)
+if(is.na(z[2]) || is.na(z10[2])) {
+    message("current stack size is not available")
+} else stopifnot(z[2] > z10[2])
+## Previous test ould be defeated by compiler optimization.
+
+
+##
+options(max.print = .Machine$integer.max)
+1 ## segfaulted because of integer overflow
+stopifnot(identical(.Machine$integer.max, getOption("max.print")))
+##
+
+
+## corner cases for arima.sim(), in part PR#15068
+stopifnot(length(arima.sim(list(order = c(0,0,0)), n = 10)) == 10)
+stopifnot(inherits(try(arima.sim(list(order = c(1,0,0), ar = 0.7), n = 0)),
+                   "try-error"))
+## one too long in R < 2.15.2
+
+
+## maintainer()
+maintainer('stats')
+maintainer("impossible_package_name")
+## gave an error in R < 2.15.2
+
+
+## PR#15075 and more
+stopifnot(is.finite(c(beta(0.01, 171), beta(171, 0.01), beta(1e-200, 1e-200))))
+## each overflowed to +Inf during calculations in R <= 2.15.2
+
+
+## PR#15077
+default <- 1; z <- eval(bquote(function(y = .(default)) y))
+zz <- function(y = 1) y
+stopifnot(identical(args(z), args(zz))) # zz has attributes
+## was not substituted in R <= 2.15.2
+
+
+## PR#15098
+x <- list()
+x[1:2] <- list(1)
+x[[1]][] <- 2  # change part of first component of x
+x   # second component of x should not be affected
+stopifnot(identical(x[[2]], 1))# was 2
+##
+## 2nd example from Comment #5
+x <- list()
+list(1) -> x[1] -> x[2]
+x[[1]][] <- 2
+stopifnot(x[[2]] == 1)## was 2, wrongly, as well ..
+##
+## 3rd example from Comment #5
+y <- list(1)
+x <- list()
+x[1] <- y
+x[[1]][] <- 2
+stopifnot(y[[1]] == 1)## was 2
+## "NAMED": all three were wrong in    2.4.0 <= R <= 2.15.2
+
+
+## PR#15115
+a <- as.name("abc")
+f <- call("==", a, 1L)
+for (i in 2:5)
+   f <- call("+", f, call("==", a, i))
+abc <- 2
+stopifnot(eval(f) == 1)
+## Was 0 in 2.15.2 because the i was not duplicated
+
+
+## Complex subassignment  return value
+## From: Justin Talbot to R-devel, 8 Jan 2013
+a <- list( 1 ); b <- (a[[1]] <- a); stopifnot(identical(b, list( 1 )))
+a <- list(x=1); b <- ( a$x  <-  a); stopifnot(identical(b, list(x=1)))
+## both failed in 2.15.2
+
+
+## TukeyHSD with na.omit = na.exclude, see
+## https://stat.ethz.ch/pipermail/r-help/2012-October/327119.html
+br <- warpbreaks
+br[br$tension == "M", "breaks"] <- NA
+fit1 <- aov(breaks ~ wool + tension, data = br)
+TukeyHSD(fit1, "tension", ordered = TRUE)
+fit2 <- aov(breaks ~ wool + tension, data = br, na.action = na.exclude)
+(z <- TukeyHSD(fit2, "tension", ordered = TRUE))
+stopifnot(!is.na(z$tension))
+## results were NA in R <= 2.15.2
+
+
+## recursive listing of directories
+p <- file.path(R.home("share"),"texmf") # always exists, readable
+lfri <- list.files(p, recursive=TRUE, include.dirs=TRUE)
+subdirs <- c("bibtex", "tex")
+lfnd <- setdiff(list.files(p, all.files=TRUE, no..=TRUE), ".svn")
+stopifnot(!is.na(match(subdirs, lfri)), identical(subdirs, lfnd))
+## the first failed for a few days, unnoticed, in the development version of R
+
+
+## [sd]Quote on 0-length inputs.
+x <- character(0)
+stopifnot(identical(sQuote(x), x), identical(dQuote(x), x))
+## was length one in 2.15.2
+
+## aperm(a, <char>)  when a has named dimnames:
+a <- matrix(1:6, 2, dimnames=list(A=NULL, B=NULL))
+stopifnot(identical(unname(aperm(a, c("B","A"))),
+		    matrix(1:6, 3, byrow=TRUE)))# worked
+assertError(aperm(a, c("C","A")))# fine, but
+## forgetting one had been detrimental:
+assertError( aperm(a, "A"))
+## seg.faulted in 2.15.2 and earlier
+
+## enc2utf8 failed on NA in non-UTF-8 locales PR#15201
+stopifnot(identical(NA_character_, enc2utf8(NA_character_)))
+## gave "NA" instead of NA_character_
+
+## End of regression tests for R < 3.0.0
+## -------------------------------------
+
+proc.time()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datetime.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datetime.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datetime.Rout.save	(revision 2476)
@@ -0,0 +1,75 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> #### Test 64-bit date-time functions.
+> 
+> ## R's internal fixes are used on 32-bit platforms.
+> ## macOS gets these wrong: see HAVE_WORKING_64BIT_MKTIME
+> 
+> Sys.setenv(TZ = "UTC")
+> (z <- as.POSIXct("1848-01-01 12:00"))
+[1] "1848-01-01 12:00:00 UTC"
+> c(unclass(z))
+[1] -3849940800
+> (z <- as.POSIXct("2040-01-01 12:00"))
+[1] "2040-01-01 12:00:00 UTC"
+> c(unclass(z))
+[1] 2209032000
+> (z <- as.POSIXct("2040-07-01 12:00"))
+[1] "2040-07-01 12:00:00 UTC"
+> c(unclass(z))
+[1] 2224756800
+> 
+> Sys.setenv(TZ = "Europe/London")  # pretty much portable.
+> (z <- as.POSIXct("1848-01-01 12:00"))
+[1] "1848-01-01 12:00:00 GMT"
+> c(unclass(z))
+[1] -3849940800
+> (z <- as.POSIXct("2040-01-01 12:00"))
+[1] "2040-01-01 12:00:00 GMT"
+> c(unclass(z))
+[1] 2209032000
+> (z <- as.POSIXct("2040-07-01 12:00"))
+[1] "2040-07-01 12:00:00 BST"
+> c(unclass(z))
+[1] 2224753200
+> 
+> Sys.setenv(TZ = "EST5EDT")
+> (z <- as.POSIXct("1848-01-01 12:00"))
+[1] "1848-01-01 12:00:00 EST"
+> c(unclass(z))
+[1] -3849922800
+> (z <- as.POSIXct("2040-01-01 12:00"))
+[1] "2040-01-01 12:00:00 EST"
+> c(unclass(z))
+[1] 2209050000
+> (z <- as.POSIXct("2040-07-01 12:00"))
+[1] "2040-07-01 12:00:00 EDT"
+> c(unclass(z))
+[1] 2224771200
+> 
+> ## PR15613: had day as > 24hrs.
+> as.POSIXlt(ISOdate(2071,1,13,0,0,tz="Etc/GMT-1"))$wday
+[1] 2
+> as.POSIXlt(ISOdate(2071,1,13,0,1,tz="Etc/GMT-1"))$wday
+[1] 2
+> 
+> 
+> ## Incorrect use of %d should work even though abbreviation does match
+> old <- Sys.setlocale("LC_TIME", "C") # to be sure
+> stopifnot(!is.na(strptime("11-August-1903", "%d-%b-%Y")))
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arith-true.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arith-true.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/arith-true.R	(revision 2476)
@@ -0,0 +1,220 @@
+####=== Numerical / Arithmetic Tests
+####--- ALL tests here should return  TRUE !
+###
+### '##P': These lines don't give TRUE but relevant ``Print output''
+
+### --> d-p-q-r-tests.R  for distribution things
+
+.proctime00 <- proc.time()
+opt.conformance <- 0
+Meps <- .Machine $ double.eps
+
+## this uses random inputs, so set the seed
+set.seed(1)
+
+options(rErr.eps = 1e-30)
+rErr <- function(approx, true, eps = .Options$rErr.eps)
+{
+    if(is.null(eps)) { eps <- 1e-30; options(rErr.eps = eps) }
+    ifelse(Mod(true) >= eps,
+	   1 - approx / true, # relative error
+	   true - approx)     # absolute error (e.g. when true=0)
+}
+
+abs(1- .Machine$double.xmin * 10^(-.Machine$double.min.exp*log10(2)))/Meps < 1e3
+##P (1- .Machine$double.xmin * 10^(-.Machine$double.min.exp*log10(2)))/Meps
+if(opt.conformance)#fails at least on SGI/IRIX 6.5
+abs(1- .Machine$double.xmax * 10^(-.Machine$double.max.exp*log10(2)))/Meps < 1e3
+
+## More IEEE  Infinity/NaN checks
+i1 <- pi / 0
+i1 == (i2 <- 1:1 / 0:0)
+is.infinite( i1) & is.infinite( i2) &   i1 > 12   &   i2 > 12
+is.infinite(-i1) & is.infinite(-i2) & (-i1) < -12 & (-i2) < -12
+
+is.nan(n1 <- 0 / 0)
+is.nan( - n1)
+
+i1 ==  i1 + i1
+i1 ==  i1 * i1
+is.nan(i1 - i1)
+is.nan(i1 / i1)
+
+1/0 == Inf & 0 ^ -1 == Inf
+1/Inf == 0 & Inf ^ -1 == 0
+
+iNA <- as.integer(NA)
+!is.na(Inf) & !is.nan(Inf) &   is.infinite(Inf) & !is.finite(Inf)
+!is.na(-Inf)& !is.nan(-Inf)&   is.infinite(-Inf)& !is.finite(-Inf)
+ is.na(NA)  & !is.nan(NA)  &  !is.infinite(NA)  & !is.finite(NA)
+ is.na(NaN) &  is.nan(NaN) &  !is.infinite(NaN) & !is.finite(NaN)
+ is.na(iNA) & !is.nan(iNA) &  !is.infinite(iNA) & !is.finite(iNA)
+
+## These are "double"s:
+all(!is.nan(c(1.,NA)))
+all(c(FALSE,TRUE,FALSE) == is.nan(c   (1.,NaN,NA)))
+## lists are no longer allowed
+## all(c(FALSE,TRUE,FALSE) == is.nan(list(1.,NaN,NA)))
+
+
+##  log() and "pow()" -- POSIX is not specific enough..
+log(0) == -Inf
+is.nan(log(-1))# TRUE and warning
+
+rp <- c(1:2,Inf); rn <- rev(- rp)
+r <- c(rn, 0, rp, NA, NaN)
+all(r^0 == 1)
+ir <- suppressWarnings(as.integer(r))
+all(ir^0  == 1)
+all(ir^0L == 1)# not in R <= 2.15.0
+all( 1^r  == 1)# not in R 0.64
+all(1L^r  == 1)
+all(1L^ir == 1)# not in R <= 2.15.0
+all((rn ^ -3) == -((-rn) ^ -3))
+#
+all(c(1.1,2,Inf) ^ Inf == Inf)
+all(c(1.1,2,Inf) ^ -Inf == 0)
+.9 ^ Inf == 0
+.9 ^ -Inf == Inf
+## Wasn't ok in 0.64:
+all(is.nan(rn ^ .5))# in some C's : (-Inf) ^ .5 gives Inf, instead of NaN
+
+
+## Real Trig.:
+cos(0) == 1
+sin(3*pi/2) == cos(pi)
+x <- rnorm(99)
+all( sin(-x) == - sin(x))
+all( cos(-x) == cos(x))
+
+x <- 1:99/100
+all(abs(1 - x / asin(sin(x))) <= 2*Meps)# "== 2*" for HP-UX
+all(abs(1 - x / atan(tan(x))) <  2*Meps)
+
+## Sun has asin(.) = acos(.) = 0 for these:
+##	is.nan(acos(1.1)) && is.nan(asin(-2)) [!]
+
+## gamma()
+abs(gamma(1/2)^2 - pi) < 4* Meps
+r <- rlnorm(5000) # NB random, and next has failed for some seed
+all(abs(rErr(gamma(r+1), r*gamma(r))) < 500 * Meps)
+## more accurate for integers n <= 50 since R 1.8.0	Sol8: perfect
+n <-   20; all(		 gamma(1:n) == cumprod(c(1,1:(n-1))))# Lnx: up too n=28
+n <-   50; all(abs(rErr( gamma(1:n), cumprod(c(1,1:(n-1))))) < 20*Meps)#Lnx: f=2
+n <-  120; all(abs(rErr( gamma(1:n), cumprod(c(1,1:(n-1))))) < 1000*Meps)
+n <- 10000;all(abs(rErr(lgamma(1:n),cumsum(log(c(1,1:(n-1)))))) < 100*Meps)
+
+n <-   10; all(		 gamma(1:n) == cumprod(c(1,1:(n-1))))
+n <-   20; all(abs(rErr( gamma(1:n), cumprod(c(1,1:(n-1))))) < 100*Meps)
+n <-  120; all(abs(rErr( gamma(1:n), cumprod(c(1,1:(n-1))))) < 1000*Meps)
+n <- 10000;all(abs(rErr(lgamma(1:n),cumsum(log(c(1,1:(n-1)))))) < 100*Meps)
+
+all(is.nan(gamma(0:-47))) # + warn.
+
+## choose() {and lchoose}:
+n51 <- c(196793068630200, 229591913401900, 247959266474052)
+abs(c(n51, rev(n51))- choose(51, 23:28)) <= 2
+all(choose(0:4,2) == c(0,0,1,3,6))
+## 3 to 8 units off and two NaN's in 1.8.1
+
+## psi[gamma](x) and derivatives:
+## psi == digamma:
+gEuler <- 0.577215664901532860606512# = Euler's gamma
+abs(digamma(1) + gEuler) <   32*Meps # i386 Lx: = 2.5*Meps
+all.equal(digamma(1) - digamma(1/2), log(4), tolerance = 32*Meps)# Linux: < 1*Meps!
+n <- 1:12
+all.equal(digamma(n),
+         - gEuler + c(0, cumsum(1/n)[-length(n)]),tolerance = 32*Meps)#i386 Lx: 1.3 Meps
+all.equal(digamma(n + 1/2),
+          - gEuler - log(4) + 2*cumsum(1/(2*n-1)),tolerance = 32*Meps)#i386 Lx: 1.8 Meps
+## higher psigamma:
+all.equal(psigamma(1, deriv=c(1,3,5)),
+          pi^(2*(1:3)) * c(1/6, 1/15, 8/63), tolerance = 32*Meps)
+x <- c(-100,-3:2, -99.9, -7.7, seq(-3,3, length=61), 5.1, 77)
+## Intel icc showed a < 1ulp difference in the second.
+stopifnot(all.equal( digamma(x), psigamma(x,0), tolerance = 2*Meps),
+          all.equal(trigamma(x), psigamma(x,1), tolerance = 2*Meps))# TRUE (+ NaN warnings)
+## very large x:
+x <- 1e30 ^ (1:10)
+a.relE <- function(appr, true) abs(1 - appr/true)
+stopifnot(a.relE(digamma(x),   log(x)) < 1e-13,
+          a.relE(trigamma(x),     1/x) < 1e-13)
+x <- sqrt(x[2:6]); stopifnot(a.relE(psigamma(x,2), - 1/x^2) < 1e-13)
+x <- 10^(10*(2:6));stopifnot(a.relE(psigamma(x,5), +24/x^5) < 1e-13)
+
+## fft():
+ok <- TRUE
+##test EXTENSIVELY:	for(N in 1:100) {
+    cat(".")
+    for(n in c(1:30, 1000:1050)) {
+	x <- rnorm(n)
+	er <- Mod(rErr(fft(fft(x), inverse = TRUE)/n, x*(1+0i)))
+	n.ok <- all(er < 1e-8) & quantile(er, 0.95, names=FALSE) < 10000*Meps
+	if(!n.ok) cat("\nn=",n,": quantile(rErr, c(.95,1)) =",
+		      formatC(quantile(er, prob= c(.95,1))),"\n")
+	ok <- ok & n.ok
+    }
+    cat("\n")
+##test EXTENSIVELY:	}
+ok
+
+## var():
+for(n in 2:10)
+    print(all.equal(n*(n-1)*var(diag(n)),
+		    matrix(c(rep(c(n-1,rep(-1,n)),n-1), n-1), nr=n, nc=n),
+		    tolerance = 20*Meps)) # use tolerance = 0 to see rel.error
+
+## pmin() & pmax() -- "attributes" !
+v1 <- c(a=2)
+m1 <- cbind(  2:4,3)
+m2 <- cbind(a=2:4,2)
+
+all( pmax(v1, 1:3) == pmax(1:3, v1) & pmax(1:3, v1) == c(2,2,3))
+all( pmin(v1, 1:3) == pmin(1:3, v1) & pmin(1:3, v1) == c(1,2,2))
+
+oo <- options(warn = -1)# These four lines each would give 3-4 warnings :
+ all( pmax(m1, 1:7) == pmax(1:7, m1) & pmax(1:7, m1) == c(2:4,4:7))
+ all( pmin(m1, 1:7) == pmin(1:7, m1) & pmin(1:7, m1) == c(1:3,3,3,3,2))
+ all( pmax(m2, 1:7) == pmax(1:7, m2) & pmax(1:7, m2) == pmax(1:7, m1))
+ all( pmin(m2, 1:7) == pmin(1:7, m2) & pmin(1:7, m2) == c(1:3,2,2,2,2))
+options(oo)
+
+## pretty()
+stopifnot(pretty(1:15)	    == seq(0,16, by=2),
+	  pretty(1:15, h=2) == seq(0,15, by=5),
+	  pretty(1)	    == 0:1,
+	  pretty(pi)	    == c(2,4),
+	  pretty(pi, n=6)   == 2:4,
+	  pretty(pi, n=10)  == 2:5,
+	  pretty(pi, shr=.1)== c(3, 3.5))
+
+## gave infinite loop [R 0.64; Solaris], seealso PR#390 :
+all(pretty((1-1e-5)*c(1,1+3*Meps), 7) == seq(0,1,len=3))
+
+n <- 1000
+x12 <- matrix(NA, 2,n); x12[,1] <- c(2.8,3) # Bug PR#673
+for(j in 1:2) x12[j, -1] <- round(rnorm(n-1), dig = rpois(n-1, lam=3.5) - 2)
+for(i in 1:n) {
+    lp <- length(p <- pretty(x <- sort(x12[,i])))
+    stopifnot(p[1] <= x[1] & x[2] <= p[lp],
+              all(x==0) || all.equal(p, rev(-pretty(-x)), tolerance = 10*Meps))
+}
+
+## PR#741:
+pi != (pi0 <- pi + 2*.Machine$double.eps)
+is.na(match(c(1,pi,pi0), pi)[3])
+
+## PR#749:
+all(is.na(c(NA && TRUE, TRUE  && NA, NA && NA,
+            NA || FALSE,FALSE || NA, NA || NA)))
+
+all((c(NA || TRUE,  TRUE || NA,
+    !c(NA && FALSE,FALSE && NA))))
+
+
+## not sure what the point of this is: it gives mean(numeric(0)), that is NaN
+(z <- mean(rep(NA_real_, 2), trim = .1, na.rm = TRUE))
+is.na(z)
+
+## Last Line:
+cat('Time elapsed: ', proc.time() - .proctime00,'\n')
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/internet.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/internet.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/internet.R	(revision 2476)
@@ -0,0 +1,18 @@
+## These are tests that require a working Internet connection.
+## We attempt to test for that.
+
+if(.Platform$OS.type == "unix" &&
+   is.null(nsl("cran.r-project.org"))) q()
+
+# test do_download.
+nrow(available.packages(contrib.url("http://cran.r-project.org")))
+
+# test url connections on http
+zz <- url("http://cran.r-project.org/")
+readLines(zz)
+close(zz)
+
+# and via read.table, test http and ftp.
+
+read.table("http://www.stats.ox.ac.uk/pub/datasets/csb/ch11b.dat")
+read.table("ftp://ftp.stats.ox.ac.uk/pub/datasets/csb/ch11b.dat")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-packages.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-packages.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-packages.R	(revision 2476)
@@ -0,0 +1,164 @@
+## PR 1271  detach("package:base") crashes R.
+tools::assertError(detach("package:base"))
+
+
+## invalid 'lib.loc'
+stopifnot(length(installed.packages("mgcv")) == 0)
+## gave a low-level error message
+
+
+## package.skeleton() with metadata-only code
+## work in current (= ./tests/ directory):
+tmp <- tempfile()
+writeLines(c('setClass("foo", contains="numeric")',
+             'setMethod("show", "foo",',
+             '          function(object) cat("I am a \\"foo\\"\\n"))'),
+           tmp)
+if(file.exists("myTst")) unlink("myTst", recursive=TRUE)
+package.skeleton("myTst", code_files = tmp)# with a file name warning
+file.copy(tmp, (tm2 <- paste(tmp,".R", sep="")))
+unlink("myTst", recursive=TRUE)
+op <- options(warn=2) # *NO* "invalid file name" warning {failed in 2.7.[01]}:
+package.skeleton("myTst", code_files = tm2)
+options(op)
+##_2_ only a class, no generics/methods:
+writeLines(c('setClass("DocLink",',
+             'representation(name="character",',
+             '               desc="character"))'), tmp)
+if(file.exists("myTst2")) unlink("myTst2", recursive=TRUE)
+package.skeleton("myTst2", code_files = tmp)
+##- end_2_ # failed in R 2.11.0
+stopifnot(1 == grep("setClass",
+	  readLines(list.files("myTst/R", full.names=TRUE))),
+	  c("foo-class.Rd","show-methods.Rd") %in% list.files("myTst/man"))
+## failed for several reasons in R < 2.7.0
+##
+## Part 2: -- build, install, load and "inspect" the package:
+build.pkg <- function(dir) {
+    stopifnot(dir.exists(dir))
+    patt <- paste(basename(dir), ".*tar\\.gz$", sep="_")
+    unlink(dir('.', pattern = patt))
+    Rcmd <- paste(file.path(R.home("bin"), "R"), "CMD")
+    r <- tail(system(paste(Rcmd, "build --keep-empty-dirs", shQuote(dir)),
+                     intern = TRUE), 3)
+    ## return name of tar file built
+    dir('.', pattern = patt)
+}
+build.pkg("myTst")
+## clean up any previous attempt (which might have left a 00LOCK)
+unlink("myLib", recursive = TRUE)
+dir.create("myLib")
+install.packages("myTst", lib = "myLib", repos=NULL, type = "source") # with warnings
+print(installed.packages(lib.loc= "myLib", priority= "NA"))## (PR#13332)
+stopifnot(require("myTst",lib = "myLib"))
+sm <- findMethods(show, where= as.environment("package:myTst"))
+stopifnot(names(sm@names) == "foo")
+unlink("myTst_*")
+
+## getPackageName()  for "package:foo":
+require('methods')
+library(tools)
+oo <- options(warn=2)
+detach("package:tools", unload=TRUE)
+options(oo)
+## gave warning (-> Error) about creating package name
+
+## --- keep this at end --- so we do not need a large if(.) { .. }
+## More building & installing packages
+## NB: tests were added here for 2.11.0.
+## NB^2: do not do this in the R sources!
+## and this testdir is not installed.
+if(interactive() && Sys.getenv("USER") == "maechler")
+    Sys.setenv(SRCDIR = normalizePath("~/R/D/r-devel/R/tests"))
+(pkgSrcPath <- file.path(Sys.getenv("SRCDIR"), "Pkgs"))
+if(!file_test("-d", pkgSrcPath) && !interactive()) {
+    unlink("myTst", recursive=TRUE)
+    print(proc.time())
+    q("no")
+}
+
+## else w/o clause:
+## file.copy(pkgSrcPath, tempdir(), recursive = TRUE) - not ok: replaces symlink by copy
+system(paste('cp -R', shQuote(pkgSrcPath), shQuote(tempdir())))
+pkgPath <- file.path(tempdir(), "Pkgs")
+## pkgB tests an empty R directory
+dir.create(file.path(pkgPath, "pkgB", "R"), recursive = TRUE,
+	   showWarnings = FALSE)
+p.lis <- if("Matrix" %in% row.names(installed.packages(.Library)))
+	     c("pkgA", "pkgB", "exNSS4") else "exNSS4"
+pkgApath <- file.path(pkgPath, "pkgA")
+if("pkgA" %in% p.lis && !dir.exists(d <- pkgApath)) {
+    cat("symlink 'pkgA' does not exist as directory ",d,"; copying it\n", sep='')
+    file.copy(file.path(pkgPath, "xDir", "pkg"), to = d, recursive=TRUE)
+    ## if even the copy failed (NB: pkgB depends on pkgA)
+    if(!dir.exists(d)) p.lis <- p.lis[!(p.lis %in% c("pkgA", "pkgB"))]
+}
+for(p. in p.lis) {
+    cat("building package", p., "...\n")
+    r <- build.pkg(file.path(pkgPath, p.))
+    cat("installing package", p., "using file", r, "...\n")
+    ## we could install the tar file ... (see build.pkg()'s definition)
+    install.packages(r, lib = "myLib", repos=NULL, type = "source")
+    stopifnot(require(p.,lib = "myLib", character.only=TRUE))
+    detach(pos = match(p., sub("^package:","", search())))
+}
+(res <- installed.packages(lib.loc = "myLib", priority = "NA"))
+stopifnot(identical(res[,"Package"], setNames(,sort(c(p.lis, "myTst")))),
+	  res[,"LibPath"] == "myLib")
+### Specific Tests on our "special" packages: ------------------------------
+
+## These used to fail because of the sym.link in pkgA
+if("pkgA" %in% p.lis && dir.exists(pkgApath)) {
+    cat("undoc(pkgA):\n"); print(uA <- tools::undoc(dir = pkgApath))
+    cat("codoc(pkgA):\n"); print(cA <- tools::codoc(dir = pkgApath))
+    stopifnot(identical(uA$`code objects`, c("nil", "search")),
+              identical(uA$`data sets`,    "nilData"))
+}
+
+## - Check conflict message.
+## - Find objects which are NULL via "::" -- not to be expected often
+##   we have one in our pkgA, but only if Matrix is present.
+if(dir.exists(file.path("myLib", "pkgA"))) {
+  msgs <- capture.output(require(pkgA, lib="myLib"), type = "message")
+  writeLines(msgs)
+  stopifnot(length(msgs) > 2,
+            length(grep("The following object is masked.*package:base", msgs)) > 0,
+            length(grep("\\bsearch\\b", msgs)) > 0)
+  data(package = "pkgA") # -> nilData
+  stopifnot(is.null( pkgA::  nil),
+	    is.null( pkgA::: nil),
+	    is.null( pkgA::  nilData)) # <-
+  ## R-devel (pre 3.2.0) wrongly errored for NULL lazy data
+  ## ::: does not apply to data sets:
+  tools::assertError(is.null(pkgA:::nilData))
+}
+
+## tests here should *NOT* assume recommended packages,
+## let alone where they are installed
+if(dir.exists(file.path("myLib", "exNSS4")) &&
+   dir.exists(file.path(.Library, "Matrix"))) {
+    for(ns in c(rev(p.lis), "Matrix")) unloadNamespace(ns)
+    ## Both exNSS4 and Matrix define "atomicVector" *the same*,
+    ## but  'exNSS4'  has it extended - and hence *both* are registered in cache -> "conflicts"
+    requireNamespace("exNSS4", lib= "myLib")
+    ## Found in cache, since there is only one definition.
+    ## Might confuse users.
+    stopifnot(isVirtualClass(getClass("atomicVector")))
+    requireNamespace("Matrix", lib= .Library)
+    ## Throws an error, because there is ambiguity in the cache,
+    ## and the dynamic search will not find anything, since the packages
+    ## are not attached.
+    tools::assertCondition(
+        acl <- getClass("atomicVector")
+        )
+    ## Once Matrix is attached, we find a unique definition.
+    library(Matrix)
+    stopifnot(isVirtualClass(getClass("atomicVector")))
+}
+
+## clean up
+unlink("myLib", recursive = TRUE)
+unlink(file.path(pkgPath), recursive = TRUE)
+unlink("myTst", recursive = TRUE)
+
+proc.time()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-plot.R	(revision 2476)
@@ -0,0 +1,151 @@
+#### Regression tests for GRAPHICS & PLOTS
+
+pdf("reg-plot.pdf", paper="a4r", encoding ="ISOLatin1.enc", compress = FALSE)
+
+## since we supply the font metrics, the results depend only on
+## the encoding used: Windows is different from Unix by default.
+
+options(warn = 1) # print as they occur
+
+plot(0) # this should remain constant
+str(par(c("usr","xaxp","yaxp")))
+
+
+
+### Test for centring of chars.  All the chars which are plotted should
+### be centred, and there should be no warnings about
+### font metrics unknown for character `?'
+
+par(pty="s")
+plot(c(-1,16), c(-1,16), type="n", xlab="", ylab="", xaxs="i", yaxs="i")
+title("Centred chars in default char set (ISO Latin1)")
+grid(17, 17, lty=1)
+known <- c(32:126, 160:255)
+
+for(i in known) {
+    x <- i %% 16
+    y <- i %/% 16
+    points(x, y, pch=-i)
+}
+
+par(pty="m")
+
+## PR 816 (label sizes in dotchart)
+
+### Prior to 1.2.2, the label sizes were unaffected by cex.
+
+dotchart(VADeaths, main = "Death Rates in Virginia - 1940", cex = 0.5)
+dotchart(VADeaths, main = "Death Rates in Virginia - 1940", cex = 1.5)
+
+## killed by 0 prior to 1.4.0 and in 1.4.1:
+t1 <- ts(0:100)
+## only warnings about values <= 0
+plot(t1, log = "y")
+plot(cbind(t1, 10*t1, t1 - 4), log="y", plot.type = "single")
+stopifnot(par("usr")[4] > 3) # log10: ylim[2] = 1000
+
+
+## This one needs to be looked at.
+## lty = "blank" killed the fill colour too.
+plot(1:10, type="n")
+polygon(c(1, 3, 3, 1), c(1, 1, 3, 3), col="yellow", border="red", lty="blank")
+rect(6, 6, 10, 10,  col="blue", border="red", lty="blank")
+## in 1.5.0 all omit the fill colours.
+with(trees, symbols(Height, Volume, circles=Girth/24, inches=FALSE,
+                    lty="blank", bg="blue"))
+## in 1.5.0 ignored the lty.
+
+## axis() and par(mgp < 0) {keep this example S+ compatible!}:
+lt <- if(is.R()) "31" else 2
+x <- seq(-2,3, len=1001)
+op <- par(tck= +0.02, mgp = -c(3,2,0))
+plot(x, x^2 - 1.2, xaxt = "n", xlab="", type ='l', col = 2,
+     main = "mgp < 0: all ticks and labels inside `frame'")
+x <- -2:3
+lines(x, x^2 - 1.2, type ="h", col = 3, lwd=3)
+axis(1, pos = 0, at=-1:1, lty = lt, col=4)## col & lty work only from R 1.6
+par(op)
+axis(1, pos = 0, at=c(-2,2,3), lty = lt, col=4)
+mtext(side=1,"note the x-ticks on the other side of the bars")
+
+## plot.table(): explicit xlab and ylab for non-1D
+plot(UCBAdmissions)# default x- and y-lab
+plot(UCBAdmissions, xlab = "x label", ylab = "YY")# wrong in 1.5.1
+##   axis suppression
+plot(tt <- table(c(rep(0,7), rep(1,4), rep(5, 3))), axes = FALSE)
+plot(tt, xaxt = "n")
+## wrong till (incl.) 1.6.x
+
+## legend with call
+lo <- legend(2,2, substitute(hat(theta) == that, list(that= pi)))
+stopifnot(length(lo$text$x) == 1)
+## length() was 3 till 1.7.x
+
+plot(ecdf(c(1:4,8,12)), ylab = "ECDF", main=NULL)
+## ylab didn't work till 1.8.0
+
+plot(1:10, pch = NA) # gave error till 1.9.0
+points(1:3, pch=c("o",NA,"x"))# used "N"
+try(points(4, pch=c(NA,FALSE)))# still give an error
+
+## 'lwd' should transfer to plot symbols
+legend(1,10, c("A","bcd"), lwd = 2:3, pch= 21:22, pt.bg="skyblue",
+       col = 2:3, bg = "thistle")
+## (gave an error for 2 days in "2.0.0 unstable")
+
+x <- 2^seq(1,1001, length=20)
+plot(x, x^0.9, type="l", log="xy")
+## gave error 'Infinite axis extents [GEPretty(1.87013e-12,inf,5)]' for R 2.0.1
+
+plot(as.Date("2001/1/1") + 12*(1:9), 1:9)
+## used bad 'xlab/ylab' in some versions of R 2.2.0(unstable)
+
+## dotchart() restoring par()
+Opar <- par(no.readonly=TRUE) ; dotchart(1:4, cex= 0.7)
+Npar <- par(no.readonly=TRUE)
+ii <- c(37, 50:51, 58:59, 63)
+stopifnot(identical(names(Opar)[ii],
+                    c("mai","pin","plt","usr","xaxp","yaxp")),
+          identical(Opar[-ii], Npar[-ii]))
+## did not correctly restore par("mar") up to (incl) R 2.4.0
+
+## plot.function()     [n=11, ... : since we store and diff PS file !]
+plot(cos,       xlim=c(-5,5), n=11, axes=FALSE); abline(v=0)
+## did *not* plot for negative x up to R 2.5.1
+plot(sin, -2,3, xlim=c(-5,5), n=11, axes=FALSE, xlab="")# plot from -2
+axis(1, at=c(-2,3), tcl=-1); axis(1, at=c(-5,5))
+## (from,to) & xlim  should work simultaneously
+
+plot(cos, -7,7, n=11, axes=FALSE)
+## gave wrong ylab in R 2.6.0
+plot(cos, -7,7, ylab = "Cosine  cos(x)", n=11, axes=FALSE)
+## partial matching of 'ylab'; mapping  [0,1] (not [-7.7]):
+## margins chosen to avoid rouding error showing to 2dp.
+op <- par(mar=c(5,4.123,4,2)+0.1)
+plot(gamma, yla = expression(Gamma(x)), n=11, yaxt="n")
+par(op)
+
+## plot.ts(x, y) could get the labels wrong in R <= 2.6.0:
+x <- ts(1:5);x1 <- lag(x, 2); plot(x1, x, axes=FALSE)
+
+# adding a curve in log scale :
+curve(5*exp(-x), 0.1, 100, n = 3, log="x", ylab="", axes=FALSE)
+curve(5*exp(-x), add=TRUE, n = 3, col=2,lwd=3)
+## should fully overplot; wrong default xlim in 2.6.1
+## (and *slightly* wrong up to 2.6.0)
+
+## Axis() calls via plot()  {[xy]axt to keep *.ps small}
+x <- as.Date("2008-04-22 09:45") + (i <- c(0,4))
+plot(x,    xaxt="n")# not ok in 2.6.2, nor 2.7.0
+plot(x, i, yaxt="n")# ok in 2.6.2  and 2.7.0
+plot(i, x, xaxt="n")# ok in 2.6.2 and not in 2.7.0
+
+## table methods should be bypassed:
+dotchart(table(infert$education))
+## failed in 2.12.[12]
+
+## cex as "..."  in "high level" function
+hc <- hclust(dst <- dist(c(1:2, 5)), method="ave")
+plot(hc, cex = 2, axes=FALSE, ann=FALSE)
+## cex was not used in 3.0.[01]
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datasets.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datasets.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datasets.Rout.save	(revision 2476)
@@ -0,0 +1,669 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> #### Simple integrity tests of the system datasets
+> 
+> options(useFancyQuotes=FALSE)
+> env <- as.environment("package:datasets")
+> d <- ls(env) # don't want .names
+> for(f in d) {
++     cat("\n** structure of dataset ", f, "\n", sep="")
++     str(get(f, envir=env, inherits=FALSE))
++ }
+
+** structure of dataset AirPassengers
+ Time-Series [1:144] from 1949 to 1961: 112 118 132 129 121 135 148 148 136 119 ...
+
+** structure of dataset BJsales
+ Time-Series [1:150] from 1 to 150: 200 200 199 199 199 ...
+
+** structure of dataset BJsales.lead
+ Time-Series [1:150] from 1 to 150: 10.01 10.07 10.32 9.75 10.33 ...
+
+** structure of dataset BOD
+'data.frame':	6 obs. of  2 variables:
+ $ Time  : num  1 2 3 4 5 7
+ $ demand: num  8.3 10.3 19 16 15.6 19.8
+ - attr(*, "reference")= chr "A1.4, p. 270"
+
+** structure of dataset CO2
+Classes 'nfnGroupedData', 'nfGroupedData', 'groupedData' and 'data.frame':	84 obs. of  5 variables:
+ $ Plant    : Ord.factor w/ 12 levels "Qn1"<"Qn2"<"Qn3"<..: 1 1 1 1 1 1 1 2 2 2 ...
+ $ Type     : Factor w/ 2 levels "Quebec","Mississippi": 1 1 1 1 1 1 1 1 1 1 ...
+ $ Treatment: Factor w/ 2 levels "nonchilled","chilled": 1 1 1 1 1 1 1 1 1 1 ...
+ $ conc     : num  95 175 250 350 500 675 1000 95 175 250 ...
+ $ uptake   : num  16 30.4 34.8 37.2 35.3 39.2 39.7 13.6 27.3 37.1 ...
+ - attr(*, "formula")=Class 'formula'  language uptake ~ conc | Plant
+  .. ..- attr(*, ".Environment")=<environment: R_EmptyEnv> 
+ - attr(*, "outer")=Class 'formula'  language ~Treatment * Type
+  .. ..- attr(*, ".Environment")=<environment: R_EmptyEnv> 
+ - attr(*, "labels")=List of 2
+  ..$ x: chr "Ambient carbon dioxide concentration"
+  ..$ y: chr "CO2 uptake rate"
+ - attr(*, "units")=List of 2
+  ..$ x: chr "(uL/L)"
+  ..$ y: chr "(umol/m^2 s)"
+
+** structure of dataset ChickWeight
+Classes 'nfnGroupedData', 'nfGroupedData', 'groupedData' and 'data.frame':	578 obs. of  4 variables:
+ $ weight: num  42 51 59 64 76 93 106 125 149 171 ...
+ $ Time  : num  0 2 4 6 8 10 12 14 16 18 ...
+ $ Chick : Ord.factor w/ 50 levels "18"<"16"<"15"<..: 15 15 15 15 15 15 15 15 15 15 ...
+ $ Diet  : Factor w/ 4 levels "1","2","3","4": 1 1 1 1 1 1 1 1 1 1 ...
+ - attr(*, "formula")=Class 'formula'  language weight ~ Time | Chick
+  .. ..- attr(*, ".Environment")=<environment: R_EmptyEnv> 
+ - attr(*, "outer")=Class 'formula'  language ~Diet
+  .. ..- attr(*, ".Environment")=<environment: R_EmptyEnv> 
+ - attr(*, "labels")=List of 2
+  ..$ x: chr "Time"
+  ..$ y: chr "Body weight"
+ - attr(*, "units")=List of 2
+  ..$ x: chr "(days)"
+  ..$ y: chr "(gm)"
+
+** structure of dataset DNase
+Classes 'nfnGroupedData', 'nfGroupedData', 'groupedData' and 'data.frame':	176 obs. of  3 variables:
+ $ Run    : Ord.factor w/ 11 levels "10"<"11"<"9"<..: 4 4 4 4 4 4 4 4 4 4 ...
+ $ conc   : num  0.0488 0.0488 0.1953 0.1953 0.3906 ...
+ $ density: num  0.017 0.018 0.121 0.124 0.206 0.215 0.377 0.374 0.614 0.609 ...
+ - attr(*, "formula")=Class 'formula'  language density ~ conc | Run
+  .. ..- attr(*, ".Environment")=<environment: R_EmptyEnv> 
+ - attr(*, "labels")=List of 2
+  ..$ x: chr "DNase concentration"
+  ..$ y: chr "Optical density"
+ - attr(*, "units")=List of 1
+  ..$ x: chr "(ng/ml)"
+
+** structure of dataset EuStockMarkets
+ Time-Series [1:1860, 1:4] from 1991 to 1999: 1629 1614 1607 1621 1618 ...
+ - attr(*, "dimnames")=List of 2
+  ..$ : NULL
+  ..$ : chr [1:4] "DAX" "SMI" "CAC" "FTSE"
+
+** structure of dataset Formaldehyde
+'data.frame':	6 obs. of  2 variables:
+ $ carb  : num  0.1 0.3 0.5 0.6 0.7 0.9
+ $ optden: num  0.086 0.269 0.446 0.538 0.626 0.782
+
+** structure of dataset HairEyeColor
+ table [1:4, 1:4, 1:2] 32 53 10 3 11 50 10 30 10 25 ...
+ - attr(*, "dimnames")=List of 3
+  ..$ Hair: chr [1:4] "Black" "Brown" "Red" "Blond"
+  ..$ Eye : chr [1:4] "Brown" "Blue" "Hazel" "Green"
+  ..$ Sex : chr [1:2] "Male" "Female"
+
+** structure of dataset Harman23.cor
+List of 3
+ $ cov   : num [1:8, 1:8] 1 0.846 0.805 0.859 0.473 0.398 0.301 0.382 0.846 1 ...
+  ..- attr(*, "dimnames")=List of 2
+  .. ..$ : chr [1:8] "height" "arm.span" "forearm" "lower.leg" ...
+  .. ..$ : chr [1:8] "height" "arm.span" "forearm" "lower.leg" ...
+ $ center: num [1:8] 0 0 0 0 0 0 0 0
+ $ n.obs : num 305
+
+** structure of dataset Harman74.cor
+List of 3
+ $ cov   : num [1:24, 1:24] 1 0.318 0.403 0.468 0.321 0.335 0.304 0.332 0.326 0.116 ...
+  ..- attr(*, "dimnames")=List of 2
+  .. ..$ : chr [1:24] "VisualPerception" "Cubes" "PaperFormBoard" "Flags" ...
+  .. ..$ : chr [1:24] "VisualPerception" "Cubes" "PaperFormBoard" "Flags" ...
+ $ center: num [1:24] 0 0 0 0 0 0 0 0 0 0 ...
+ $ n.obs : num 145
+
+** structure of dataset Indometh
+Classes 'nfnGroupedData', 'nfGroupedData', 'groupedData' and 'data.frame':	66 obs. of  3 variables:
+ $ Subject: Ord.factor w/ 6 levels "1"<"4"<"2"<"5"<..: 1 1 1 1 1 1 1 1 1 1 ...
+ $ time   : num  0.25 0.5 0.75 1 1.25 2 3 4 5 6 ...
+ $ conc   : num  1.5 0.94 0.78 0.48 0.37 0.19 0.12 0.11 0.08 0.07 ...
+ - attr(*, "formula")=Class 'formula'  language conc ~ time | Subject
+  .. ..- attr(*, ".Environment")=<environment: R_EmptyEnv> 
+ - attr(*, "labels")=List of 2
+  ..$ x: chr "Time since drug administration"
+  ..$ y: chr "Indomethacin concentration"
+ - attr(*, "units")=List of 2
+  ..$ x: chr "(hr)"
+  ..$ y: chr "(mcg/ml)"
+
+** structure of dataset InsectSprays
+'data.frame':	72 obs. of  2 variables:
+ $ count: num  10 7 20 14 14 12 10 23 17 20 ...
+ $ spray: Factor w/ 6 levels "A","B","C","D",..: 1 1 1 1 1 1 1 1 1 1 ...
+
+** structure of dataset JohnsonJohnson
+ Time-Series [1:84] from 1960 to 1981: 0.71 0.63 0.85 0.44 0.61 0.69 0.92 0.55 0.72 0.77 ...
+
+** structure of dataset LakeHuron
+ Time-Series [1:98] from 1875 to 1972: 580 582 581 581 580 ...
+
+** structure of dataset LifeCycleSavings
+'data.frame':	50 obs. of  5 variables:
+ $ sr   : num  11.43 12.07 13.17 5.75 12.88 ...
+ $ pop15: num  29.4 23.3 23.8 41.9 42.2 ...
+ $ pop75: num  2.87 4.41 4.43 1.67 0.83 2.85 1.34 0.67 1.06 1.14 ...
+ $ dpi  : num  2330 1508 2108 189 728 ...
+ $ ddpi : num  2.87 3.93 3.82 0.22 4.56 2.43 2.67 6.51 3.08 2.8 ...
+
+** structure of dataset Loblolly
+Classes 'nfnGroupedData', 'nfGroupedData', 'groupedData' and 'data.frame':	84 obs. of  3 variables:
+ $ height: num  4.51 10.89 28.72 41.74 52.7 ...
+ $ age   : num  3 5 10 15 20 25 3 5 10 15 ...
+ $ Seed  : Ord.factor w/ 14 levels "329"<"327"<"325"<..: 10 10 10 10 10 10 13 13 13 13 ...
+ - attr(*, "formula")=Class 'formula'  language height ~ age | Seed
+  .. ..- attr(*, ".Environment")=<environment: R_EmptyEnv> 
+ - attr(*, "labels")=List of 2
+  ..$ x: chr "Age of tree"
+  ..$ y: chr "Height of tree"
+ - attr(*, "units")=List of 2
+  ..$ x: chr "(yr)"
+  ..$ y: chr "(ft)"
+
+** structure of dataset Nile
+ Time-Series [1:100] from 1871 to 1970: 1120 1160 963 1210 1160 1160 813 1230 1370 1140 ...
+
+** structure of dataset Orange
+Classes 'nfnGroupedData', 'nfGroupedData', 'groupedData' and 'data.frame':	35 obs. of  3 variables:
+ $ Tree         : Ord.factor w/ 5 levels "3"<"1"<"5"<"2"<..: 2 2 2 2 2 2 2 4 4 4 ...
+ $ age          : num  118 484 664 1004 1231 ...
+ $ circumference: num  30 58 87 115 120 142 145 33 69 111 ...
+ - attr(*, "formula")=Class 'formula'  language circumference ~ age | Tree
+  .. ..- attr(*, ".Environment")=<environment: R_EmptyEnv> 
+ - attr(*, "labels")=List of 2
+  ..$ x: chr "Time since December 31, 1968"
+  ..$ y: chr "Trunk circumference"
+ - attr(*, "units")=List of 2
+  ..$ x: chr "(days)"
+  ..$ y: chr "(mm)"
+
+** structure of dataset OrchardSprays
+'data.frame':	64 obs. of  4 variables:
+ $ decrease : num  57 95 8 69 92 90 15 2 84 6 ...
+ $ rowpos   : num  1 2 3 4 5 6 7 8 1 2 ...
+ $ colpos   : num  1 1 1 1 1 1 1 1 2 2 ...
+ $ treatment: Factor w/ 8 levels "A","B","C","D",..: 4 5 2 8 7 6 3 1 3 2 ...
+
+** structure of dataset PlantGrowth
+'data.frame':	30 obs. of  2 variables:
+ $ weight: num  4.17 5.58 5.18 6.11 4.5 4.61 5.17 4.53 5.33 5.14 ...
+ $ group : Factor w/ 3 levels "ctrl","trt1",..: 1 1 1 1 1 1 1 1 1 1 ...
+
+** structure of dataset Puromycin
+'data.frame':	23 obs. of  3 variables:
+ $ conc : num  0.02 0.02 0.06 0.06 0.11 0.11 0.22 0.22 0.56 0.56 ...
+ $ rate : num  76 47 97 107 123 139 159 152 191 201 ...
+ $ state: Factor w/ 2 levels "treated","untreated": 1 1 1 1 1 1 1 1 1 1 ...
+ - attr(*, "reference")= chr "A1.3, p. 269"
+
+** structure of dataset Seatbelts
+ Time-Series [1:192, 1:8] from 1969 to 1985: 107 97 102 87 119 106 110 106 107 134 ...
+ - attr(*, "dimnames")=List of 2
+  ..$ : NULL
+  ..$ : chr [1:8] "DriversKilled" "drivers" "front" "rear" ...
+
+** structure of dataset Theoph
+Classes 'nfnGroupedData', 'nfGroupedData', 'groupedData' and 'data.frame':	132 obs. of  5 variables:
+ $ Subject: Ord.factor w/ 12 levels "6"<"7"<"8"<"11"<..: 11 11 11 11 11 11 11 11 11 11 ...
+ $ Wt     : num  79.6 79.6 79.6 79.6 79.6 79.6 79.6 79.6 79.6 79.6 ...
+ $ Dose   : num  4.02 4.02 4.02 4.02 4.02 4.02 4.02 4.02 4.02 4.02 ...
+ $ Time   : num  0 0.25 0.57 1.12 2.02 ...
+ $ conc   : num  0.74 2.84 6.57 10.5 9.66 8.58 8.36 7.47 6.89 5.94 ...
+ - attr(*, "formula")=Class 'formula'  language conc ~ Time | Subject
+  .. ..- attr(*, ".Environment")=<environment: R_EmptyEnv> 
+ - attr(*, "labels")=List of 2
+  ..$ x: chr "Time since drug administration"
+  ..$ y: chr "Theophylline concentration in serum"
+ - attr(*, "units")=List of 2
+  ..$ x: chr "(hr)"
+  ..$ y: chr "(mg/l)"
+
+** structure of dataset Titanic
+ table [1:4, 1:2, 1:2, 1:2] 0 0 35 0 0 0 17 0 118 154 ...
+ - attr(*, "dimnames")=List of 4
+  ..$ Class   : chr [1:4] "1st" "2nd" "3rd" "Crew"
+  ..$ Sex     : chr [1:2] "Male" "Female"
+  ..$ Age     : chr [1:2] "Child" "Adult"
+  ..$ Survived: chr [1:2] "No" "Yes"
+
+** structure of dataset ToothGrowth
+'data.frame':	60 obs. of  3 variables:
+ $ len : num  4.2 11.5 7.3 5.8 6.4 10 11.2 11.2 5.2 7 ...
+ $ supp: Factor w/ 2 levels "OJ","VC": 2 2 2 2 2 2 2 2 2 2 ...
+ $ dose: num  0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 ...
+
+** structure of dataset UCBAdmissions
+ table [1:2, 1:2, 1:6] 512 313 89 19 353 207 17 8 120 205 ...
+ - attr(*, "dimnames")=List of 3
+  ..$ Admit : chr [1:2] "Admitted" "Rejected"
+  ..$ Gender: chr [1:2] "Male" "Female"
+  ..$ Dept  : chr [1:6] "A" "B" "C" "D" ...
+
+** structure of dataset UKDriverDeaths
+ Time-Series [1:192] from 1969 to 1985: 1687 1508 1507 1385 1632 ...
+
+** structure of dataset UKgas
+ Time-Series [1:108] from 1960 to 1987: 160.1 129.7 84.8 120.1 160.1 ...
+
+** structure of dataset USAccDeaths
+ Time-Series [1:72] from 1973 to 1979: 9007 8106 8928 9137 10017 ...
+
+** structure of dataset USArrests
+'data.frame':	50 obs. of  4 variables:
+ $ Murder  : num  13.2 10 8.1 8.8 9 7.9 3.3 5.9 15.4 17.4 ...
+ $ Assault : int  236 263 294 190 276 204 110 238 335 211 ...
+ $ UrbanPop: int  58 48 80 50 91 78 77 72 80 60 ...
+ $ Rape    : num  21.2 44.5 31 19.5 40.6 38.7 11.1 15.8 31.9 25.8 ...
+
+** structure of dataset USJudgeRatings
+'data.frame':	43 obs. of  12 variables:
+ $ CONT: num  5.7 6.8 7.2 6.8 7.3 6.2 10.6 7 7.3 8.2 ...
+ $ INTG: num  7.9 8.9 8.1 8.8 6.4 8.8 9 5.9 8.9 7.9 ...
+ $ DMNR: num  7.7 8.8 7.8 8.5 4.3 8.7 8.9 4.9 8.9 6.7 ...
+ $ DILG: num  7.3 8.5 7.8 8.8 6.5 8.5 8.7 5.1 8.7 8.1 ...
+ $ CFMG: num  7.1 7.8 7.5 8.3 6 7.9 8.5 5.4 8.6 7.9 ...
+ $ DECI: num  7.4 8.1 7.6 8.5 6.2 8 8.5 5.9 8.5 8 ...
+ $ PREP: num  7.1 8 7.5 8.7 5.7 8.1 8.5 4.8 8.4 7.9 ...
+ $ FAMI: num  7.1 8 7.5 8.7 5.7 8 8.5 5.1 8.4 8.1 ...
+ $ ORAL: num  7.1 7.8 7.3 8.4 5.1 8 8.6 4.7 8.4 7.7 ...
+ $ WRIT: num  7 7.9 7.4 8.5 5.3 8 8.4 4.9 8.5 7.8 ...
+ $ PHYS: num  8.3 8.5 7.9 8.8 5.5 8.6 9.1 6.8 8.8 8.5 ...
+ $ RTEN: num  7.8 8.7 7.8 8.7 4.8 8.6 9 5 8.8 7.9 ...
+
+** structure of dataset USPersonalExpenditure
+ num [1:5, 1:5] 22.2 10.5 3.53 1.04 0.341 44.5 15.5 5.76 1.98 0.974 ...
+ - attr(*, "dimnames")=List of 2
+  ..$ : chr [1:5] "Food and Tobacco" "Household Operation" "Medical and Health" "Personal Care" ...
+  ..$ : chr [1:5] "1940" "1945" "1950" "1955" ...
+
+** structure of dataset UScitiesD
+Class 'dist'  atomic [1:45] 587 1212 701 1936 604 748 2139 2182 543 920 ...
+  ..- attr(*, "Labels")= chr [1:10] "Atlanta" "Chicago" "Denver" "Houston" ...
+  ..- attr(*, "Size")= int 10
+  ..- attr(*, "call")= language as.dist.default(m = t(cities.mat))
+  ..- attr(*, "Diag")= logi FALSE
+  ..- attr(*, "Upper")= logi FALSE
+
+** structure of dataset VADeaths
+ num [1:5, 1:4] 11.7 18.1 26.9 41 66 8.7 11.7 20.3 30.9 54.3 ...
+ - attr(*, "dimnames")=List of 2
+  ..$ : chr [1:5] "50-54" "55-59" "60-64" "65-69" ...
+  ..$ : chr [1:4] "Rural Male" "Rural Female" "Urban Male" "Urban Female"
+
+** structure of dataset WWWusage
+ Time-Series [1:100] from 1 to 100: 88 84 85 85 84 85 83 85 88 89 ...
+
+** structure of dataset WorldPhones
+ num [1:7, 1:7] 45939 60423 64721 68484 71799 ...
+ - attr(*, "dimnames")=List of 2
+  ..$ : chr [1:7] "1951" "1956" "1957" "1958" ...
+  ..$ : chr [1:7] "N.Amer" "Europe" "Asia" "S.Amer" ...
+
+** structure of dataset ability.cov
+List of 3
+ $ cov   : num [1:6, 1:6] 24.64 5.99 33.52 6.02 20.75 ...
+  ..- attr(*, "dimnames")=List of 2
+  .. ..$ : chr [1:6] "general" "picture" "blocks" "maze" ...
+  .. ..$ : chr [1:6] "general" "picture" "blocks" "maze" ...
+ $ center: num [1:6] 0 0 0 0 0 0
+ $ n.obs : num 112
+
+** structure of dataset airmiles
+ Time-Series [1:24] from 1937 to 1960: 412 480 683 1052 1385 ...
+
+** structure of dataset airquality
+'data.frame':	153 obs. of  6 variables:
+ $ Ozone  : int  41 36 12 18 NA 28 23 19 8 NA ...
+ $ Solar.R: int  190 118 149 313 NA NA 299 99 19 194 ...
+ $ Wind   : num  7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...
+ $ Temp   : int  67 72 74 62 56 66 65 59 61 69 ...
+ $ Month  : int  5 5 5 5 5 5 5 5 5 5 ...
+ $ Day    : int  1 2 3 4 5 6 7 8 9 10 ...
+
+** structure of dataset anscombe
+'data.frame':	11 obs. of  8 variables:
+ $ x1: num  10 8 13 9 11 14 6 4 12 7 ...
+ $ x2: num  10 8 13 9 11 14 6 4 12 7 ...
+ $ x3: num  10 8 13 9 11 14 6 4 12 7 ...
+ $ x4: num  8 8 8 8 8 8 8 19 8 8 ...
+ $ y1: num  8.04 6.95 7.58 8.81 8.33 ...
+ $ y2: num  9.14 8.14 8.74 8.77 9.26 8.1 6.13 3.1 9.13 7.26 ...
+ $ y3: num  7.46 6.77 12.74 7.11 7.81 ...
+ $ y4: num  6.58 5.76 7.71 8.84 8.47 7.04 5.25 12.5 5.56 7.91 ...
+
+** structure of dataset attenu
+'data.frame':	182 obs. of  5 variables:
+ $ event  : num  1 2 2 2 2 2 2 2 2 2 ...
+ $ mag    : num  7 7.4 7.4 7.4 7.4 7.4 7.4 7.4 7.4 7.4 ...
+ $ station: Factor w/ 117 levels "1008","1011",..: 24 13 15 68 39 74 22 1 8 55 ...
+ $ dist   : num  12 148 42 85 107 109 156 224 293 359 ...
+ $ accel  : num  0.359 0.014 0.196 0.135 0.062 0.054 0.014 0.018 0.01 0.004 ...
+
+** structure of dataset attitude
+'data.frame':	30 obs. of  7 variables:
+ $ rating    : num  43 63 71 61 81 43 58 71 72 67 ...
+ $ complaints: num  51 64 70 63 78 55 67 75 82 61 ...
+ $ privileges: num  30 51 68 45 56 49 42 50 72 45 ...
+ $ learning  : num  39 54 69 47 66 44 56 55 67 47 ...
+ $ raises    : num  61 63 76 54 71 54 66 70 71 62 ...
+ $ critical  : num  92 73 86 84 83 49 68 66 83 80 ...
+ $ advance   : num  45 47 48 35 47 34 35 41 31 41 ...
+
+** structure of dataset austres
+ Time-Series [1:89] from 1971 to 1993: 13067 13130 13198 13254 13304 ...
+
+** structure of dataset beaver1
+'data.frame':	114 obs. of  4 variables:
+ $ day  : num  346 346 346 346 346 346 346 346 346 346 ...
+ $ time : num  840 850 900 910 920 930 940 950 1000 1010 ...
+ $ temp : num  36.3 36.3 36.4 36.4 36.5 ...
+ $ activ: num  0 0 0 0 0 0 0 0 0 0 ...
+
+** structure of dataset beaver2
+'data.frame':	100 obs. of  4 variables:
+ $ day  : num  307 307 307 307 307 307 307 307 307 307 ...
+ $ time : num  930 940 950 1000 1010 1020 1030 1040 1050 1100 ...
+ $ temp : num  36.6 36.7 36.9 37.1 37.2 ...
+ $ activ: num  0 0 0 0 0 0 0 0 0 0 ...
+
+** structure of dataset cars
+'data.frame':	50 obs. of  2 variables:
+ $ speed: num  4 4 7 7 8 9 10 10 10 11 ...
+ $ dist : num  2 10 4 22 16 10 18 26 34 17 ...
+
+** structure of dataset chickwts
+'data.frame':	71 obs. of  2 variables:
+ $ weight: num  179 160 136 227 217 168 108 124 143 140 ...
+ $ feed  : Factor w/ 6 levels "casein","horsebean",..: 2 2 2 2 2 2 2 2 2 2 ...
+
+** structure of dataset co2
+ Time-Series [1:468] from 1959 to 1998: 315 316 316 318 318 ...
+
+** structure of dataset crimtab
+ 'table' int [1:42, 1:22] 0 0 0 0 0 0 1 0 0 0 ...
+ - attr(*, "dimnames")=List of 2
+  ..$ : chr [1:42] "9.4" "9.5" "9.6" "9.7" ...
+  ..$ : chr [1:22] "142.24" "144.78" "147.32" "149.86" ...
+
+** structure of dataset discoveries
+ Time-Series [1:100] from 1860 to 1959: 5 3 0 2 0 3 2 3 6 1 ...
+
+** structure of dataset esoph
+'data.frame':	88 obs. of  5 variables:
+ $ agegp    : Ord.factor w/ 6 levels "25-34"<"35-44"<..: 1 1 1 1 1 1 1 1 1 1 ...
+ $ alcgp    : Ord.factor w/ 4 levels "0-39g/day"<"40-79"<..: 1 1 1 1 2 2 2 2 3 3 ...
+ $ tobgp    : Ord.factor w/ 4 levels "0-9g/day"<"10-19"<..: 1 2 3 4 1 2 3 4 1 2 ...
+ $ ncases   : num  0 0 0 0 0 0 0 0 0 0 ...
+ $ ncontrols: num  40 10 6 5 27 7 4 7 2 1 ...
+
+** structure of dataset euro
+ Named num [1:11] 13.76 40.34 1.96 166.39 5.95 ...
+ - attr(*, "names")= chr [1:11] "ATS" "BEF" "DEM" "ESP" ...
+
+** structure of dataset euro.cross
+ num [1:11, 1:11] 1 0.3411 7.0355 0.0827 2.3143 ...
+ - attr(*, "dimnames")=List of 2
+  ..$ : chr [1:11] "ATS" "BEF" "DEM" "ESP" ...
+  ..$ : chr [1:11] "ATS" "BEF" "DEM" "ESP" ...
+
+** structure of dataset eurodist
+Class 'dist'  atomic [1:210] 3313 2963 3175 3339 2762 ...
+  ..- attr(*, "Size")= num 21
+  ..- attr(*, "Labels")= chr [1:21] "Athens" "Barcelona" "Brussels" "Calais" ...
+
+** structure of dataset faithful
+'data.frame':	272 obs. of  2 variables:
+ $ eruptions: num  3.6 1.8 3.33 2.28 4.53 ...
+ $ waiting  : num  79 54 74 62 85 55 88 85 51 85 ...
+
+** structure of dataset fdeaths
+ Time-Series [1:72] from 1974 to 1980: 901 689 827 677 522 406 441 393 387 582 ...
+
+** structure of dataset freeny
+'data.frame':	39 obs. of  5 variables:
+ $ y                    : Time-Series  from 1962 to 1972: 8.79 8.79 8.81 8.81 8.91 ...
+ $ lag.quarterly.revenue: num  8.8 8.79 8.79 8.81 8.81 ...
+ $ price.index          : num  4.71 4.7 4.69 4.69 4.64 ...
+ $ income.level         : num  5.82 5.83 5.83 5.84 5.85 ...
+ $ market.potential     : num  13 13 13 13 13 ...
+
+** structure of dataset freeny.x
+ num [1:39, 1:4] 8.8 8.79 8.79 8.81 8.81 ...
+ - attr(*, "dimnames")=List of 2
+  ..$ : NULL
+  ..$ : chr [1:4] "lag quarterly revenue" "price index" "income level" "market potential"
+
+** structure of dataset freeny.y
+ Time-Series [1:39] from 1962 to 1972: 8.79 8.79 8.81 8.81 8.91 ...
+
+** structure of dataset infert
+'data.frame':	248 obs. of  8 variables:
+ $ education     : Factor w/ 3 levels "0-5yrs","6-11yrs",..: 1 1 1 1 2 2 2 2 2 2 ...
+ $ age           : num  26 42 39 34 35 36 23 32 21 28 ...
+ $ parity        : num  6 1 6 4 3 4 1 2 1 2 ...
+ $ induced       : num  1 1 2 2 1 2 0 0 0 0 ...
+ $ case          : num  1 1 1 1 1 1 1 1 1 1 ...
+ $ spontaneous   : num  2 0 0 0 1 1 0 0 1 0 ...
+ $ stratum       : int  1 2 3 4 5 6 7 8 9 10 ...
+ $ pooled.stratum: num  3 1 4 2 32 36 6 22 5 19 ...
+
+** structure of dataset iris
+'data.frame':	150 obs. of  5 variables:
+ $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
+ $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
+ $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
+ $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
+ $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...
+
+** structure of dataset iris3
+ num [1:50, 1:4, 1:3] 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
+ - attr(*, "dimnames")=List of 3
+  ..$ : NULL
+  ..$ : chr [1:4] "Sepal L." "Sepal W." "Petal L." "Petal W."
+  ..$ : chr [1:3] "Setosa" "Versicolor" "Virginica"
+
+** structure of dataset islands
+ Named num [1:48] 11506 5500 16988 2968 16 ...
+ - attr(*, "names")= chr [1:48] "Africa" "Antarctica" "Asia" "Australia" ...
+
+** structure of dataset ldeaths
+ Time-Series [1:72] from 1974 to 1980: 3035 2552 2704 2554 2014 ...
+
+** structure of dataset lh
+ Time-Series [1:48] from 1 to 48: 2.4 2.4 2.4 2.2 2.1 1.5 2.3 2.3 2.5 2 ...
+
+** structure of dataset longley
+'data.frame':	16 obs. of  7 variables:
+ $ GNP.deflator: num  83 88.5 88.2 89.5 96.2 ...
+ $ GNP         : num  234 259 258 285 329 ...
+ $ Unemployed  : num  236 232 368 335 210 ...
+ $ Armed.Forces: num  159 146 162 165 310 ...
+ $ Population  : num  108 109 110 111 112 ...
+ $ Year        : int  1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 ...
+ $ Employed    : num  60.3 61.1 60.2 61.2 63.2 ...
+
+** structure of dataset lynx
+ Time-Series [1:114] from 1821 to 1934: 269 321 585 871 1475 ...
+
+** structure of dataset mdeaths
+ Time-Series [1:72] from 1974 to 1980: 2134 1863 1877 1877 1492 ...
+
+** structure of dataset morley
+'data.frame':	100 obs. of  3 variables:
+ $ Expt : int  1 1 1 1 1 1 1 1 1 1 ...
+ $ Run  : int  1 2 3 4 5 6 7 8 9 10 ...
+ $ Speed: int  850 740 900 1070 930 850 950 980 980 880 ...
+
+** structure of dataset mtcars
+'data.frame':	32 obs. of  11 variables:
+ $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
+ $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
+ $ disp: num  160 160 108 258 360 ...
+ $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
+ $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
+ $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
+ $ qsec: num  16.5 17 18.6 19.4 17 ...
+ $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
+ $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
+ $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
+ $ carb: num  4 4 1 1 2 1 4 2 2 4 ...
+
+** structure of dataset nhtemp
+ Time-Series [1:60] from 1912 to 1971: 49.9 52.3 49.4 51.1 49.4 47.9 49.8 50.9 49.3 51.9 ...
+
+** structure of dataset nottem
+ Time-Series [1:240] from 1920 to 1940: 40.6 40.8 44.4 46.7 54.1 58.5 57.7 56.4 54.3 50.5 ...
+
+** structure of dataset npk
+'data.frame':	24 obs. of  5 variables:
+ $ block: Factor w/ 6 levels "1","2","3","4",..: 1 1 1 1 2 2 2 2 3 3 ...
+ $ N    : Factor w/ 2 levels "0","1": 1 2 1 2 2 2 1 1 1 2 ...
+ $ P    : Factor w/ 2 levels "0","1": 2 2 1 1 1 2 1 2 2 2 ...
+ $ K    : Factor w/ 2 levels "0","1": 2 1 1 2 1 2 2 1 1 2 ...
+ $ yield: num  49.5 62.8 46.8 57 59.8 58.5 55.5 56 62.8 55.8 ...
+
+** structure of dataset occupationalStatus
+ 'table' int [1:8, 1:8] 50 16 12 11 2 12 0 0 19 40 ...
+ - attr(*, "dimnames")=List of 2
+  ..$ origin     : chr [1:8] "1" "2" "3" "4" ...
+  ..$ destination: chr [1:8] "1" "2" "3" "4" ...
+
+** structure of dataset precip
+ Named num [1:70] 67 54.7 7 48.5 14 17.2 20.7 13 43.4 40.2 ...
+ - attr(*, "names")= chr [1:70] "Mobile" "Juneau" "Phoenix" "Little Rock" ...
+
+** structure of dataset presidents
+ Time-Series [1:120] from 1945 to 1975: NA 87 82 75 63 50 43 32 35 60 ...
+
+** structure of dataset pressure
+'data.frame':	19 obs. of  2 variables:
+ $ temperature: num  0 20 40 60 80 100 120 140 160 180 ...
+ $ pressure   : num  0.0002 0.0012 0.006 0.03 0.09 0.27 0.75 1.85 4.2 8.8 ...
+
+** structure of dataset quakes
+'data.frame':	1000 obs. of  5 variables:
+ $ lat     : num  -20.4 -20.6 -26 -18 -20.4 ...
+ $ long    : num  182 181 184 182 182 ...
+ $ depth   : int  562 650 42 626 649 195 82 194 211 622 ...
+ $ mag     : num  4.8 4.2 5.4 4.1 4 4 4.8 4.4 4.7 4.3 ...
+ $ stations: int  41 15 43 19 11 12 43 15 35 19 ...
+
+** structure of dataset randu
+'data.frame':	400 obs. of  3 variables:
+ $ x: num  0.000031 0.044495 0.82244 0.322291 0.393595 ...
+ $ y: num  0.000183 0.155732 0.873416 0.648545 0.826873 ...
+ $ z: num  0.000824 0.533939 0.838542 0.990648 0.418881 ...
+
+** structure of dataset rivers
+ num [1:141] 735 320 325 392 524 ...
+
+** structure of dataset rock
+'data.frame':	48 obs. of  4 variables:
+ $ area : int  4990 7002 7558 7352 7943 7979 9333 8209 8393 6425 ...
+ $ peri : num  2792 3893 3931 3869 3949 ...
+ $ shape: num  0.0903 0.1486 0.1833 0.1171 0.1224 ...
+ $ perm : num  6.3 6.3 6.3 6.3 17.1 17.1 17.1 17.1 119 119 ...
+
+** structure of dataset sleep
+'data.frame':	20 obs. of  3 variables:
+ $ extra: num  0.7 -1.6 -0.2 -1.2 -0.1 3.4 3.7 0.8 0 2 ...
+ $ group: Factor w/ 2 levels "1","2": 1 1 1 1 1 1 1 1 1 1 ...
+ $ ID   : Factor w/ 10 levels "1","2","3","4",..: 1 2 3 4 5 6 7 8 9 10 ...
+
+** structure of dataset stack.loss
+ num [1:21] 42 37 37 28 18 18 19 20 15 14 ...
+
+** structure of dataset stack.x
+ num [1:21, 1:3] 80 80 75 62 62 62 62 62 58 58 ...
+ - attr(*, "dimnames")=List of 2
+  ..$ : NULL
+  ..$ : chr [1:3] "Air.Flow" "Water.Temp" "Acid.Conc."
+
+** structure of dataset stackloss
+'data.frame':	21 obs. of  4 variables:
+ $ Air.Flow  : num  80 80 75 62 62 62 62 62 58 58 ...
+ $ Water.Temp: num  27 27 25 24 22 23 24 24 23 18 ...
+ $ Acid.Conc.: num  89 88 90 87 87 87 93 93 87 80 ...
+ $ stack.loss: num  42 37 37 28 18 18 19 20 15 14 ...
+
+** structure of dataset state.abb
+ chr [1:50] "AL" "AK" "AZ" "AR" "CA" "CO" "CT" "DE" "FL" ...
+
+** structure of dataset state.area
+ num [1:50] 51609 589757 113909 53104 158693 ...
+
+** structure of dataset state.center
+List of 2
+ $ x: num [1:50] -86.8 -127.2 -111.6 -92.3 -119.8 ...
+ $ y: num [1:50] 32.6 49.2 34.2 34.7 36.5 ...
+
+** structure of dataset state.division
+ Factor w/ 9 levels "New England",..: 4 9 8 5 9 8 1 3 3 3 ...
+
+** structure of dataset state.name
+ chr [1:50] "Alabama" "Alaska" "Arizona" "Arkansas" "California" ...
+
+** structure of dataset state.region
+ Factor w/ 4 levels "Northeast","South",..: 2 4 4 2 4 4 1 2 2 2 ...
+
+** structure of dataset state.x77
+ num [1:50, 1:8] 3615 365 2212 2110 21198 ...
+ - attr(*, "dimnames")=List of 2
+  ..$ : chr [1:50] "Alabama" "Alaska" "Arizona" "Arkansas" ...
+  ..$ : chr [1:8] "Population" "Income" "Illiteracy" "Life Exp" ...
+
+** structure of dataset sunspot.month
+ Time-Series [1:3177] from 1749 to 2014: 58 62.6 70 55.7 85 83.5 94.8 66.3 75.9 75.5 ...
+
+** structure of dataset sunspot.year
+ Time-Series [1:289] from 1700 to 1988: 5 11 16 23 36 58 29 20 10 8 ...
+
+** structure of dataset sunspots
+ Time-Series [1:2820] from 1749 to 1984: 58 62.6 70 55.7 85 83.5 94.8 66.3 75.9 75.5 ...
+
+** structure of dataset swiss
+'data.frame':	47 obs. of  6 variables:
+ $ Fertility       : num  80.2 83.1 92.5 85.8 76.9 76.1 83.8 92.4 82.4 82.9 ...
+ $ Agriculture     : num  17 45.1 39.7 36.5 43.5 35.3 70.2 67.8 53.3 45.2 ...
+ $ Examination     : int  15 6 5 12 17 9 16 14 12 16 ...
+ $ Education       : int  12 9 5 7 15 7 7 8 7 13 ...
+ $ Catholic        : num  9.96 84.84 93.4 33.77 5.16 ...
+ $ Infant.Mortality: num  22.2 22.2 20.2 20.3 20.6 26.6 23.6 24.9 21 24.4 ...
+
+** structure of dataset treering
+ Time-Series [1:7980] from -6000 to 1979: 1.34 1.08 1.54 1.32 1.41 ...
+
+** structure of dataset trees
+'data.frame':	31 obs. of  3 variables:
+ $ Girth : num  8.3 8.6 8.8 10.5 10.7 10.8 11 11 11.1 11.2 ...
+ $ Height: num  70 65 63 72 81 83 66 75 80 75 ...
+ $ Volume: num  10.3 10.3 10.2 16.4 18.8 19.7 15.6 18.2 22.6 19.9 ...
+
+** structure of dataset uspop
+ Time-Series [1:19] from 1790 to 1970: 3.93 5.31 7.24 9.64 12.9 17.1 23.2 31.4 39.8 50.2 ...
+
+** structure of dataset volcano
+ num [1:87, 1:61] 100 101 102 103 104 105 105 106 107 108 ...
+
+** structure of dataset warpbreaks
+'data.frame':	54 obs. of  3 variables:
+ $ breaks : num  26 30 54 25 70 52 51 26 67 18 ...
+ $ wool   : Factor w/ 2 levels "A","B": 1 1 1 1 1 1 1 1 1 1 ...
+ $ tension: Factor w/ 3 levels "L","M","H": 1 1 1 1 1 1 1 1 1 2 ...
+
+** structure of dataset women
+'data.frame':	15 obs. of  2 variables:
+ $ height: num  58 59 60 61 62 63 64 65 66 67 ...
+ $ weight: num  115 117 120 123 126 129 132 135 139 142 ...
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/eval-etc.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/eval-etc.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/eval-etc.R	(revision 2476)
@@ -0,0 +1,131 @@
+####  eval / parse / deparse / substitute  etc
+
+##- From: Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk>
+##- Subject: Re: source() / eval() bug ??? (PR#96)
+##- Date: 20 Jan 1999 14:56:24 +0100
+e1 <- parse(text='c(F=(f <- .3), "Tail area" = 2 * if(f < 1) 30 else 90)')[[1]]
+e1
+str(eval(e1))
+mode(e1)
+
+( e2 <- quote(c(a=1,b=2)) )
+names(e2)[2] <- "a b c"
+e2
+parse(text=deparse(e2))
+
+##- From: Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk>
+##- Date: 22 Jan 1999 11:47
+
+( e3 <- quote(c(F=1,"tail area"=pf(1,1,1))) )
+eval(e3)
+names(e3)
+
+names(e3)[2] <- "Variance ratio"
+e3
+eval(e3)
+
+
+##- From: Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk>
+##- Date: 2 Sep 1999
+
+## The first failed in 0.65.0 :
+attach(list(x=1))
+evalq(dim(x) <- 1,as.environment(2))
+dput(get("x", envir=as.environment(2)), control="all")
+
+e <- local({x <- 1;environment()})
+evalq(dim(x) <- 1,e)
+dput(get("x",envir=e), control="all")
+
+### Substitute, Eval, Parse, etc
+
+## PR#3 : "..." matching
+## Revised March 7 2001 -pd
+A <- function(x, y, ...) {
+    B <- function(a, b, ...) { match.call() }
+    B(x+y, ...)
+}
+(aa <- A(1,2,3))
+all.equal(as.list(aa),
+          list(as.name("B"), a = expression(x+y)[[1]], b = 3))
+(a2 <- A(1,2, named = 3)) #A(1,2, named = 3)
+all.equal(as.list(a2),
+          list(as.name("B"), a = expression(x+y)[[1]], named = 3))
+
+CC <- function(...) match.call()
+DD <- function(...) CC(...)
+a3 <- DD(1,2,3)
+all.equal(as.list(a3),
+          list(as.name("CC"), 1, 2, 3))
+
+## More dots issues: March 19 2001 -pd
+## Didn't work up to and including 1.2.2
+
+f <- function(...) {
+	val <- match.call(expand.dots=FALSE)$...
+        x <- val[[1]]
+	eval.parent(substitute(missing(x)))
+}
+g <- function(...) h(f(...))
+h <- function(...) list(...)
+k <- function(...) g(...)
+X <- k(a=)
+all.equal(X, list(TRUE))
+
+## Bug PR#24
+f <- function(x,...) substitute(list(x,...))
+deparse(f(a, b)) == "list(a, b)" &&
+deparse(f(b, a)) == "list(b, a)" &&
+deparse(f(x, y)) == "list(x, y)" &&
+deparse(f(y, x)) == "list(y, x)"
+
+tt <- function(x) { is.vector(x); deparse(substitute(x)) }
+a <- list(b=3); tt(a$b) == "a$b" # tends to break when ...
+
+
+## Parser:
+1 <
+    2
+2 <=
+    3
+4 >=
+    3
+3 >
+    2
+2 ==
+    2
+## bug till ...
+1 !=
+    3
+
+all(NULL == NULL)
+
+## PR #656 (related)
+u <- runif(1);	length(find(".Random.seed")) == 1
+
+MyVaR <<- "val";length(find("MyVaR")) == 1
+rm(MyVaR);	length(find("MyVaR")) == 0
+
+
+## Martin Maechler: rare bad bug in sys.function() {or match.arg()} (PR#1409)
+callme <- function(a = 1, mm = c("Abc", "Bde")) {
+    mm <- match.arg(mm); cat("mm = "); str(mm) ; invisible()
+}
+## The first two were as desired:
+callme()
+callme(mm="B")
+mycaller <- function(x = 1, callme = pi) { callme(x) }
+mycaller()## wrongly gave `mm = NULL'  now = "Abc"
+
+
+## Garbage collection  protection problem:
+if(FALSE) ## only here to be run as part of  'make test-Gct'
+    gctorture() # <- for manual testing
+x <- c("a", NA, "b")
+fx <- factor(x, exclude="")
+ST <- if(interactive()) system.time else invisible
+ST(r <- replicate(20, capture.output(print(fx))))
+table(ok. <- r[2,] == "Levels: a b <NA>") # want all TRUE
+stopifnot(ok.) # in case of failure, see
+r[2,] ## the '<NA>' levels part would be wrong occasionally
+
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/p-r-random-tests.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/p-r-random-tests.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/p-r-random-tests.Rout.save	(revision 2476)
@@ -0,0 +1,283 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ##
+> ## RNG tests using DKW inequality for rate of convergence
+> ##
+> ## P(sup | F_n - F | > t) < 2 exp(-2nt^2)
+> ##
+> ## The 2 in front of exp() was derived by Massart. It is the best possible
+> ## constant valid uniformly in t,n,F. For large n*t^2 this agrees with the
+> ## large-sample approximation to the Kolmogorov-Smirnov statistic.
+> ##
+> 
+> 
+> superror <- function(rfoo,pfoo,sample.size,...) {
++     x <- rfoo(sample.size,...)
++     tx <- table(signif(x, 12)) # such that xi will be sort(unique(x))
++     xi <- as.numeric(names(tx))
++     f <- pfoo(xi,...)
++     fhat <- cumsum(tx)/sample.size
++     max(abs(fhat-f))
++ }
+> 
+> pdkwbound <- function(n,t) 2*exp(-2*n*t*t)
+> 
+> qdkwbound <- function(n,p) sqrt(log(p/2)/(-2*n))
+> 
+> dkwtest <- function(stub = "norm", ...,
++                     sample.size = 10000, pthreshold = 0.001,
++                     print.result = TRUE, print.detail = FALSE,
++                     stop.on.failure = TRUE)
++ {
++     rfoo <- eval(as.name(paste("r", stub, sep="")))
++     pfoo <- eval(as.name(paste("p", stub, sep="")))
++     s <- superror(rfoo, pfoo, sample.size, ...)
++     if (print.result || print.detail) {
++         printargs <- substitute(list(...))
++         printargs[[1]] <- as.name(stub)
++         cat(deparse(printargs))
++         if (print.detail)
++             cat("\nsupremum error = ",signif(s,2),
++                 " with p-value=",min(1,round(pdkwbound(sample.size,s),4)),"\n")
++     }
++     rval <- (s < qdkwbound(sample.size,pthreshold))
++     if (print.result)
++         cat(c(" FAILED\n"," PASSED\n")[rval+1])
++     if (stop.on.failure && !rval)
++         stop("dkwtest failed")
++     rval
++ }
+> 
+> .proctime00 <- proc.time() # start timing
+> 
+> 
+> dkwtest("binom",size =   1,prob = 0.2)
+binom(size = 1, prob = 0.2) PASSED
+[1] TRUE
+> dkwtest("binom",size =   2,prob = 0.2)
+binom(size = 2, prob = 0.2) PASSED
+[1] TRUE
+> dkwtest("binom",size = 100,prob = 0.2)
+binom(size = 100, prob = 0.2) PASSED
+[1] TRUE
+> dkwtest("binom",size = 1e4,prob = 0.2)
+binom(size = 10000, prob = 0.2) PASSED
+[1] TRUE
+> dkwtest("binom",size =   1,prob = 0.8)
+binom(size = 1, prob = 0.8) PASSED
+[1] TRUE
+> dkwtest("binom",size = 100,prob = 0.8)
+binom(size = 100, prob = 0.8) PASSED
+[1] TRUE
+> dkwtest("binom",size = 100,prob = 0.999)
+binom(size = 100, prob = 0.999) PASSED
+[1] TRUE
+> 
+> dkwtest("pois",lambda =  0.095)
+pois(lambda = 0.095) PASSED
+[1] TRUE
+> dkwtest("pois",lambda =  0.95)
+pois(lambda = 0.95) PASSED
+[1] TRUE
+> dkwtest("pois",lambda =  9.5)
+pois(lambda = 9.5) PASSED
+[1] TRUE
+> dkwtest("pois",lambda = 95)
+pois(lambda = 95) PASSED
+[1] TRUE
+> 
+> dkwtest("nbinom",size =   1,prob = 0.2)
+nbinom(size = 1, prob = 0.2) PASSED
+[1] TRUE
+> dkwtest("nbinom",size =   2,prob = 0.2)
+nbinom(size = 2, prob = 0.2) PASSED
+[1] TRUE
+> dkwtest("nbinom",size = 100,prob = 0.2)
+nbinom(size = 100, prob = 0.2) PASSED
+[1] TRUE
+> dkwtest("nbinom",size = 1e4,prob = 0.2)
+nbinom(size = 10000, prob = 0.2) PASSED
+[1] TRUE
+> dkwtest("nbinom",size =   1,prob = 0.8)
+nbinom(size = 1, prob = 0.8) PASSED
+[1] TRUE
+> dkwtest("nbinom",size = 100,prob = 0.8)
+nbinom(size = 100, prob = 0.8) PASSED
+[1] TRUE
+> dkwtest("nbinom",size = 100,prob = 0.999)
+nbinom(size = 100, prob = 0.999) PASSED
+[1] TRUE
+> 
+> dkwtest("norm")
+norm() PASSED
+[1] TRUE
+> dkwtest("norm",mean = 5,sd = 3)
+norm(mean = 5, sd = 3) PASSED
+[1] TRUE
+> 
+> dkwtest("gamma",shape =  0.1)
+gamma(shape = 0.1) PASSED
+[1] TRUE
+> dkwtest("gamma",shape =  0.2)
+gamma(shape = 0.2) PASSED
+[1] TRUE
+> dkwtest("gamma",shape = 10)
+gamma(shape = 10) PASSED
+[1] TRUE
+> dkwtest("gamma",shape = 20)
+gamma(shape = 20) PASSED
+[1] TRUE
+> 
+> dkwtest("hyper",m = 40,n = 30,k = 20)
+hyper(m = 40, n = 30, k = 20) PASSED
+[1] TRUE
+> dkwtest("hyper",m = 40,n =  3,k = 20)
+hyper(m = 40, n = 3, k = 20) PASSED
+[1] TRUE
+> dkwtest("hyper",m =  6,n =  3,k =  2)
+hyper(m = 6, n = 3, k = 2) PASSED
+[1] TRUE
+> dkwtest("hyper",m =  5,n =  3,k =  2)
+hyper(m = 5, n = 3, k = 2) PASSED
+[1] TRUE
+> dkwtest("hyper",m =  4,n =  3,k =  2)
+hyper(m = 4, n = 3, k = 2) PASSED
+[1] TRUE
+> 
+> 
+> dkwtest("signrank",n =  1)
+signrank(n = 1) PASSED
+[1] TRUE
+> dkwtest("signrank",n =  2)
+signrank(n = 2) PASSED
+[1] TRUE
+> dkwtest("signrank",n = 10)
+signrank(n = 10) PASSED
+[1] TRUE
+> dkwtest("signrank",n = 30)
+signrank(n = 30) PASSED
+[1] TRUE
+> 
+> dkwtest("wilcox",m = 40,n = 30)
+wilcox(m = 40, n = 30) PASSED
+[1] TRUE
+> dkwtest("wilcox",m = 40,n = 10)
+wilcox(m = 40, n = 10) PASSED
+[1] TRUE
+> dkwtest("wilcox",m =  6,n =  3)
+wilcox(m = 6, n = 3) PASSED
+[1] TRUE
+> dkwtest("wilcox",m =  5,n =  3)
+wilcox(m = 5, n = 3) PASSED
+[1] TRUE
+> dkwtest("wilcox",m =  4,n =  3)
+wilcox(m = 4, n = 3) PASSED
+[1] TRUE
+> 
+> dkwtest("chisq",df =  1)
+chisq(df = 1) PASSED
+[1] TRUE
+> dkwtest("chisq",df = 10)
+chisq(df = 10) PASSED
+[1] TRUE
+> 
+> dkwtest("logis")
+logis() PASSED
+[1] TRUE
+> dkwtest("logis",location = 4,scale = 2)
+logis(location = 4, scale = 2) PASSED
+[1] TRUE
+> 
+> dkwtest("t",df =  1)
+t(df = 1) PASSED
+[1] TRUE
+> dkwtest("t",df = 10)
+t(df = 10) PASSED
+[1] TRUE
+> dkwtest("t",df = 40)
+t(df = 40) PASSED
+[1] TRUE
+> 
+> dkwtest("beta",shape1 = 1, shape2 = 1)
+beta(shape1 = 1, shape2 = 1) PASSED
+[1] TRUE
+> dkwtest("beta",shape1 = 2, shape2 = 1)
+beta(shape1 = 2, shape2 = 1) PASSED
+[1] TRUE
+> dkwtest("beta",shape1 = 1, shape2 = 2)
+beta(shape1 = 1, shape2 = 2) PASSED
+[1] TRUE
+> dkwtest("beta",shape1 = 2, shape2 = 2)
+beta(shape1 = 2, shape2 = 2) PASSED
+[1] TRUE
+> dkwtest("beta",shape1 = .2,shape2 = .2)
+beta(shape1 = 0.2, shape2 = 0.2) PASSED
+[1] TRUE
+> 
+> dkwtest("cauchy")
+cauchy() PASSED
+[1] TRUE
+> dkwtest("cauchy",location = 4,scale = 2)
+cauchy(location = 4, scale = 2) PASSED
+[1] TRUE
+> 
+> dkwtest("f",df1 =  1,df2 =  1)
+f(df1 = 1, df2 = 1) PASSED
+[1] TRUE
+> dkwtest("f",df1 =  1,df2 = 10)
+f(df1 = 1, df2 = 10) PASSED
+[1] TRUE
+> dkwtest("f",df1 = 10,df2 = 10)
+f(df1 = 10, df2 = 10) PASSED
+[1] TRUE
+> dkwtest("f",df1 = 30,df2 =  3)
+f(df1 = 30, df2 = 3) PASSED
+[1] TRUE
+> 
+> dkwtest("weibull",shape = 1)
+weibull(shape = 1) PASSED
+[1] TRUE
+> dkwtest("weibull",shape = 4,scale = 4)
+weibull(shape = 4, scale = 4) PASSED
+[1] TRUE
+> 
+> ## regression test for PR#7314
+> dkwtest("hyper", m=60, n=100, k=50)
+hyper(m = 60, n = 100, k = 50) PASSED
+[1] TRUE
+> dkwtest("hyper", m=6, n=10, k=5)
+hyper(m = 6, n = 10, k = 5) PASSED
+[1] TRUE
+> dkwtest("hyper", m=600, n=1000, k=500)
+hyper(m = 600, n = 1000, k = 500) PASSED
+[1] TRUE
+> 
+> ## regression test for non-central t bug
+> dkwtest("t", df=20, ncp=3)
+t(df = 20, ncp = 3) PASSED
+[1] TRUE
+> ## regression test for non-central F bug
+> dkwtest("f", df1=10, df2=2, ncp=3)
+f(df1 = 10, df2 = 2, ncp = 3) PASSED
+[1] TRUE
+> 
+> 
+> cat('Time elapsed: ', proc.time() - .proctime00,'\n')
+Time elapsed:  1.316 0.004 1.319 0 0 
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-examples3.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-examples3.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-examples3.Rout.save	(revision 2476)
@@ -0,0 +1,563 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ## For examples skipped in testing because they need recommended packages.
+> 
+> ## This is skipped entirely on a Unix-alike if recommended packages are,
+> ## so for Windows
+> if(!require("MASS")) q()
+Loading required package: MASS
+> 
+> pdf("reg-examples-3.pdf", encoding = "ISOLatin1.enc")
+> 
+> ## From datasets
+> if(require("survival")) {
++   model3 <- clogit(case ~ spontaneous+induced+strata(stratum), data = infert)
++   print(summary(model3))
++   detach("package:survival", unload = TRUE)  # survival (conflicts)
++ }
+Loading required package: survival
+Call:
+coxph(formula = Surv(rep(1, 248L), case) ~ spontaneous + induced + 
+    strata(stratum), data = infert, method = "exact")
+
+  n= 248, number of events= 83 
+
+              coef exp(coef) se(coef)     z Pr(>|z|)    
+spontaneous 1.9859    7.2854   0.3524 5.635 1.75e-08 ***
+induced     1.4090    4.0919   0.3607 3.906 9.38e-05 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+            exp(coef) exp(-coef) lower .95 upper .95
+spontaneous     7.285     0.1373     3.651    14.536
+induced         4.092     0.2444     2.018     8.298
+
+Rsquare= 0.193   (max possible= 0.519 )
+Likelihood ratio test= 53.15  on 2 df,   p=2.869e-12
+Wald test            = 31.84  on 2 df,   p=1.221e-07
+Score (logrank) test = 48.44  on 2 df,   p=3.032e-11
+
+> 
+> 
+> ## From grDevices
+> x1  <- matrix(rnorm(1e3), ncol = 2)
+> x2  <- matrix(rnorm(1e3, mean = 3, sd = 1.5), ncol = 2)
+> x   <- rbind(x1, x2)
+> 
+> dcols <- densCols(x)
+> graphics::plot(x, col = dcols, pch = 20, main = "n = 1000")
+> 
+> 
+> ## From graphics:
+> ## A largish data set
+> set.seed(123)
+> n <- 10000
+> x1  <- matrix(rnorm(n), ncol = 2)
+> x2  <- matrix(rnorm(n, mean = 3, sd = 1.5), ncol = 2)
+> x   <- rbind(x1, x2)
+> 
+> oldpar <- par(mfrow = c(2, 2))
+> smoothScatter(x, nrpoints = 0)
+> smoothScatter(x)
+> 
+> ## a different color scheme:
+> Lab.palette <- colorRampPalette(c("blue", "orange", "red"), space = "Lab")
+> smoothScatter(x, colramp = Lab.palette)
+> 
+> ## somewhat similar, using identical smoothing computations,
+> ## but considerably *less* efficient for really large data:
+> plot(x, col = densCols(x), pch = 20)
+> 
+> ## use with pairs:
+> par(mfrow = c(1, 1))
+> y <- matrix(rnorm(40000), ncol = 4) + 3*rnorm(10000)
+> y[, c(2,4)] <-  -y[, c(2,4)]
+> pairs(y, panel = function(...) smoothScatter(..., nrpoints = 0, add = TRUE))
+> 
+> par(oldpar)
+> 
+> 
+> ## From stats
+> # alias.Rd
+> op <- options(contrasts = c("contr.helmert", "contr.poly"))
+> npk.aov <- aov(yield ~ block + N*P*K, npk)
+> alias(npk.aov)
+Model :
+yield ~ block + N * P * K
+
+Complete :
+         (Intercept) block1 block2 block3 block4 block5 N1    P1    K1    N1:P1
+N1:P1:K1     0           1    1/3    1/6  -3/10   -1/5      0     0     0     0
+         N1:K1 P1:K1
+N1:P1:K1     0     0
+
+> options(op)  # reset
+> 
+> # as.hclust.Rd
+> if(require("cluster", quietly = TRUE)) {# is a recommended package
++   set.seed(123)
++   x <- matrix(rnorm(30), ncol = 3)
++   hc <- hclust(dist(x), method = "complete")
++   ag <- agnes(x, method = "complete")
++   hcag <- as.hclust(ag)
++   ## The dendrograms order slightly differently:
++   op <- par(mfrow = c(1,2))
++   plot(hc) ;  mtext("hclust", side = 1)
++   plot(hcag); mtext("agnes",  side = 1)
++   detach("package:cluster")
++ }
+> 
+> # confint.Rd
+> counts <- c(18,17,15,20,10,20,25,13,12)
+> outcome <- gl(3, 1, 9); treatment <- gl(3, 3)
+> glm.D93 <- glm(counts ~ outcome + treatment, family = poisson())
+> confint(glm.D93)
+Waiting for profiling to be done...
+                 2.5 %      97.5 %
+(Intercept)  2.6958215  3.36655581
+outcome2    -0.8577018 -0.06255840
+outcome3    -0.6753696  0.08244089
+treatment2  -0.3932548  0.39325483
+treatment3  -0.3932548  0.39325483
+> confint.default(glm.D93)  # based on asymptotic normality}
+                 2.5 %      97.5 %
+(Intercept)  2.7095672  3.37947764
+outcome2    -0.8505027 -0.05800787
+outcome3    -0.6707552  0.08478093
+treatment2  -0.3919928  0.39199279
+treatment3  -0.3919928  0.39199279
+> 
+> # contrasts.Rd
+> utils::example(factor)
+
+factor> (ff <- factor(substring("statistics", 1:10, 1:10), levels = letters))
+ [1] s t a t i s t i c s
+Levels: a b c d e f g h i j k l m n o p q r s t u v w x y z
+
+factor> as.integer(ff)      # the internal codes
+ [1] 19 20  1 20  9 19 20  9  3 19
+
+factor> (f. <- factor(ff))  # drops the levels that do not occur
+ [1] s t a t i s t i c s
+Levels: a c i s t
+
+factor> ff[, drop = TRUE]   # the same, more transparently
+ [1] s t a t i s t i c s
+Levels: a c i s t
+
+factor> factor(letters[1:20], labels = "letter")
+ [1] letter1  letter2  letter3  letter4  letter5  letter6  letter7  letter8 
+ [9] letter9  letter10 letter11 letter12 letter13 letter14 letter15 letter16
+[17] letter17 letter18 letter19 letter20
+20 Levels: letter1 letter2 letter3 letter4 letter5 letter6 letter7 ... letter20
+
+factor> class(ordered(4:1)) # "ordered", inheriting from "factor"
+[1] "ordered" "factor" 
+
+factor> z <- factor(LETTERS[3:1], ordered = TRUE)
+
+factor> ## and "relational" methods work:
+factor> stopifnot(sort(z)[c(1,3)] == range(z), min(z) < max(z))
+
+factor> ## Don't show: 
+factor> of <- ordered(ff)
+
+factor> stopifnot(identical(range(of, rev(of)), of[3:2]),
+factor+ 	  identical(max(of), of[2]))
+
+factor> ## End(Don't show)
+factor> 
+factor> ## suppose you want "NA" as a level, and to allow missing values.
+factor> (x <- factor(c(1, 2, NA), exclude = NULL))
+[1] 1    2    <NA>
+Levels: 1 2 <NA>
+
+factor> is.na(x)[2] <- TRUE
+
+factor> x  # [1] 1    <NA> <NA>
+[1] 1    <NA> <NA>
+Levels: 1 2 <NA>
+
+factor> is.na(x)
+[1] FALSE  TRUE FALSE
+
+factor> # [1] FALSE  TRUE FALSE
+factor> 
+factor> ## Using addNA()
+factor> Month <- airquality$Month
+
+factor> table(addNA(Month))
+
+   5    6    7    8    9 <NA> 
+  31   30   31   31   30    0 
+
+factor> table(addNA(Month, ifany = TRUE))
+
+ 5  6  7  8  9 
+31 30 31 31 30 
+> fff <- ff[, drop = TRUE]  # reduce to 5 levels.
+> contrasts(fff) <- contr.sum(5)[, 1:2]; contrasts(fff)
+  [,1] [,2]       [,3]       [,4]
+a    1    0 -0.2471257  0.2688164
+c    0    1 -0.2471257  0.2688164
+i    0    0 -0.1498721 -0.8817814
+s    0    0  0.8912491  0.0753323
+t   -1   -1 -0.2471257  0.2688164
+> 
+> ## using sparse contrasts: % useful, once model.matrix() works with these :
+> ffs <- fff
+> contrasts(ffs) <- contr.sum(5, sparse = TRUE)[, 1:2]; contrasts(ffs)
+  [,1] [,2]       [,3]       [,4]
+a    1    0 -0.2471257  0.2688164
+c    0    1 -0.2471257  0.2688164
+i    0    0 -0.1498721 -0.8817814
+s    0    0  0.8912491  0.0753323
+t   -1   -1 -0.2471257  0.2688164
+> stopifnot(all.equal(ffs, fff))
+> contrasts(ffs) <- contr.sum(5, sparse = TRUE); contrasts(ffs)
+5 x 4 sparse Matrix of class "dgCMatrix"
+             
+a  1  .  .  .
+c  .  1  .  .
+i  .  .  1  .
+s  .  .  .  1
+t -1 -1 -1 -1
+> 
+> # glm.Rd
+> utils::data(anorexia, package = "MASS")
+> 
+> anorex.1 <- glm(Postwt ~ Prewt + Treat + offset(Prewt),
++                 family = gaussian, data = anorexia)
+> summary(anorex.1)
+
+Call:
+glm(formula = Postwt ~ Prewt + Treat + offset(Prewt), family = gaussian, 
+    data = anorexia)
+
+Deviance Residuals: 
+     Min        1Q    Median        3Q       Max  
+-14.1083   -4.2773   -0.5484    5.4838   15.2922  
+
+Coefficients:
+            Estimate Std. Error t value Pr(>|t|)    
+(Intercept)  49.7711    13.3910   3.717 0.000410 ***
+Prewt        -0.5655     0.1612  -3.509 0.000803 ***
+TreatCont    -4.0971     1.8935  -2.164 0.033999 *  
+TreatFT       4.5631     2.1333   2.139 0.036035 *  
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+(Dispersion parameter for gaussian family taken to be 48.69504)
+
+    Null deviance: 4525.4  on 71  degrees of freedom
+Residual deviance: 3311.3  on 68  degrees of freedom
+AIC: 489.97
+
+Number of Fisher Scoring iterations: 2
+
+> 
+> # logLik.Rd
+> utils::data(Orthodont, package = "nlme")
+> fm1 <- lm(distance ~ Sex * age, Orthodont)
+> logLik(fm1)
+'log Lik.' -239.1209 (df=5)
+> logLik(fm1, REML = TRUE)
+'log Lik.' -241.7796 (df=5)
+> 
+> # nls.Rd
+> od <- options(digits=5)
+> ## The muscle dataset in MASS is from an experiment on muscle
+> ## contraction on 21 animals.  The observed variables are Strip
+> ## (identifier of muscle), Conc (Cacl concentration) and Length
+> ## (resulting length of muscle section).
+> utils::data(muscle, package = "MASS")
+> 
+> ## The non linear model considered is
+> ##       Length = alpha + beta*exp(-Conc/theta) + error
+> ## where theta is constant but alpha and beta may vary with Strip.
+> 
+> with(muscle, table(Strip)) # 2, 3 or 4 obs per strip
+Strip
+S01 S02 S03 S04 S05 S06 S07 S08 S09 S10 S11 S12 S13 S14 S15 S16 S17 S18 S19 S20 
+  4   4   4   3   3   3   2   2   2   2   3   2   2   2   2   4   4   3   3   3 
+S21 
+  3 
+> 
+> ## We first use the plinear algorithm to fit an overall model,
+> ## ignoring that alpha and beta might vary with Strip.
+> 
+> musc.1 <- nls(Length ~ cbind(1, exp(-Conc/th)), muscle,
++               start = list(th = 1), algorithm = "plinear")
+> summary(musc.1)
+
+Formula: Length ~ cbind(1, exp(-Conc/th))
+
+Parameters:
+      Estimate Std. Error t value Pr(>|t|)    
+th       0.608      0.115    5.31  1.9e-06 ***
+.lin1   28.963      1.230   23.55  < 2e-16 ***
+.lin2  -34.227      3.793   -9.02  1.4e-12 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 4.67 on 57 degrees of freedom
+
+Number of iterations to convergence: 5 
+Achieved convergence tolerance: 9.32e-07
+
+> 
+> ## Then we use nls' indexing feature for parameters in non-linear
+> ## models to use the conventional algorithm to fit a model in which
+> ## alpha and beta vary with Strip.  The starting values are provided
+> ## by the previously fitted model.
+> ## Note that with indexed parameters, the starting values must be
+> ## given in a list (with names):
+> b <- coef(musc.1)
+> musc.2 <- nls(Length ~ a[Strip] + b[Strip]*exp(-Conc/th), muscle,
++               start = list(a = rep(b[2], 21), b = rep(b[3], 21), th = b[1]))
+> summary(musc.2)
+
+Formula: Length ~ a[Strip] + b[Strip] * exp(-Conc/th)
+
+Parameters:
+    Estimate Std. Error t value Pr(>|t|)    
+a1    23.454      0.796   29.46  5.0e-16 ***
+a2    28.302      0.793   35.70  < 2e-16 ***
+a3    30.801      1.716   17.95  1.7e-12 ***
+a4    25.921      3.016    8.60  1.4e-07 ***
+a5    23.201      2.891    8.02  3.5e-07 ***
+a6    20.120      2.435    8.26  2.3e-07 ***
+a7    33.595      1.682   19.98  3.0e-13 ***
+a8    39.053      3.753   10.41  8.6e-09 ***
+a9    32.137      3.318    9.69  2.5e-08 ***
+a10   40.005      3.336   11.99  1.0e-09 ***
+a11   36.190      3.109   11.64  1.6e-09 ***
+a12   36.911      1.839   20.07  2.8e-13 ***
+a13   30.635      1.700   18.02  1.6e-12 ***
+a14   34.312      3.495    9.82  2.0e-08 ***
+a15   38.395      3.375   11.38  2.3e-09 ***
+a16   31.226      0.886   35.26  < 2e-16 ***
+a17   31.230      0.821   38.02  < 2e-16 ***
+a18   19.998      1.011   19.78  3.6e-13 ***
+a19   37.095      1.071   34.65  < 2e-16 ***
+a20   32.594      1.121   29.07  6.2e-16 ***
+a21   30.376      1.057   28.74  7.5e-16 ***
+b1   -27.300      6.873   -3.97  0.00099 ***
+b2   -26.270      6.754   -3.89  0.00118 ** 
+b3   -30.901      2.270  -13.61  1.4e-10 ***
+b4   -32.238      3.810   -8.46  1.7e-07 ***
+b5   -29.941      3.773   -7.94  4.1e-07 ***
+b6   -20.622      3.647   -5.65  2.9e-05 ***
+b7   -19.625      8.085   -2.43  0.02661 *  
+b8   -45.780      4.113  -11.13  3.2e-09 ***
+b9   -31.345      6.352   -4.93  0.00013 ***
+b10  -38.599      3.955   -9.76  2.2e-08 ***
+b11  -33.921      3.839   -8.84  9.2e-08 ***
+b12  -38.268      8.992   -4.26  0.00053 ***
+b13  -22.568      8.194   -2.75  0.01355 *  
+b14  -36.167      6.358   -5.69  2.7e-05 ***
+b15  -32.952      6.354   -5.19  7.4e-05 ***
+b16  -47.207      9.540   -4.95  0.00012 ***
+b17  -33.875      7.688   -4.41  0.00039 ***
+b18  -15.896      6.222   -2.55  0.02051 *  
+b19  -28.969      7.235   -4.00  0.00092 ***
+b20  -36.917      8.033   -4.60  0.00026 ***
+b21  -26.508      7.012   -3.78  0.00149 ** 
+th     0.797      0.127    6.30  8.0e-06 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+Residual standard error: 1.11 on 17 degrees of freedom
+
+Number of iterations to convergence: 8 
+Achieved convergence tolerance: 2.17e-06
+
+> options(od)
+> 
+> # princomp.Rd
+> ## Robust:
+> (pc.rob <- princomp(stackloss, covmat = MASS::cov.rob(stackloss)))
+Call:
+princomp(x = stackloss, covmat = MASS::cov.rob(stackloss))
+
+Standard deviations:
+   Comp.1    Comp.2    Comp.3    Comp.4 
+7.8322873 4.0077676 1.9114016 0.7624211 
+
+ 4  variables and  21 observations.
+> 
+> # termplot.R
+> library(MASS)
+> hills.lm <- lm(log(time) ~ log(climb)+log(dist), data = hills)
+> termplot(hills.lm, partial.resid = TRUE, smooth = panel.smooth,
++         terms = "log(dist)", main = "Original")
+> termplot(hills.lm, transform.x = TRUE,
++          partial.resid = TRUE, smooth = panel.smooth,
++ 	 terms = "log(dist)", main = "Transformed")
+> 
+> # xtabs.Rd
+> if(require("Matrix")) {
++  ## similar to "nlme"s  'ergoStool' :
++  d.ergo <- data.frame(Type = paste0("T", rep(1:4, 9*4)),
++                       Subj = gl(9, 4, 36*4))
++  print(xtabs(~ Type + Subj, data = d.ergo)) # 4 replicates each
++  set.seed(15) # a subset of cases:
++  print(xtabs(~ Type + Subj, data = d.ergo[sample(36, 10), ], sparse = TRUE))
++ 
++  ## Hypothetical two-level setup:
++  inner <- factor(sample(letters[1:25], 100, replace = TRUE))
++  inout <- factor(sample(LETTERS[1:5], 25, replace = TRUE))
++  fr <- data.frame(inner = inner, outer = inout[as.integer(inner)])
++  print(xtabs(~ inner + outer, fr, sparse = TRUE))
++ }
+Loading required package: Matrix
+    Subj
+Type 1 2 3 4 5 6 7 8 9
+  T1 4 4 4 4 4 4 4 4 4
+  T2 4 4 4 4 4 4 4 4 4
+  T3 4 4 4 4 4 4 4 4 4
+  T4 4 4 4 4 4 4 4 4 4
+4 x 9 sparse Matrix of class "dgCMatrix"
+   1 2 3 4 5 6 7 8 9
+T1 . 1 . 1 . 1 . 1 .
+T2 1 . . . . . 1 . 1
+T3 . . . . 1 . . . .
+T4 1 . . . . . 1 . .
+25 x 5 sparse Matrix of class "dgCMatrix"
+  A B C D E
+a 2 . . . .
+b . . 1 . .
+c . 6 . . .
+d . . . 5 .
+e . . . 3 .
+f 1 . . . .
+g . 9 . . .
+h . . 3 . .
+i . . . . 5
+j . . . 1 .
+k 3 . . . .
+l . 2 . . .
+m 6 . . . .
+n . . 1 . .
+o 2 . . . .
+p . . 2 . .
+q . 5 . . .
+r . . . . 6
+s . . 4 . .
+t . . . 7 .
+u . 4 . . .
+v . . . 7 .
+w . . . 7 .
+x . . . . 6
+y . . . . 2
+> 
+> ## From utils
+> example(packageDescription)
+
+pckgDs> ## No test: 
+pckgDs> ##D packageDescription("stats")
+pckgDs> ##D packageDescription("stats", fields = c("Package", "Version"))
+pckgDs> ##D 
+pckgDs> ##D packageDescription("stats", fields = "Version")
+pckgDs> ##D packageDescription("stats", fields = "Version", drop = FALSE)
+pckgDs> ##D 
+pckgDs> ##D if(packageVersion("MASS") < "7.3.29")
+pckgDs> ##D   message("you need to update 'MASS'")
+pckgDs> ## End(No test)
+pckgDs> 
+pckgDs> 
+> 
+> 
+> ## From splines
+> library(splines)
+> Matrix::drop0(zapsmall(6*splineDesign(knots = 1:40, x = 4:37, sparse = TRUE)))
+34 x 36 sparse Matrix of class "dgCMatrix"
+                                                                             
+ [1,] 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+ [2,] . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+ [3,] . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+ [4,] . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+ [5,] . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+ [6,] . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
+ [7,] . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . . .
+ [8,] . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . . .
+ [9,] . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . . .
+[10,] . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . . .
+[11,] . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . . .
+[12,] . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . . .
+[13,] . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . . .
+[14,] . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . . .
+[15,] . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . . .
+[16,] . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . . .
+[17,] . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . . .
+[18,] . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . . .
+[19,] . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . . .
+[20,] . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . . .
+[21,] . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . . .
+[22,] . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . . .
+[23,] . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . . .
+[24,] . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . . .
+[25,] . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . . .
+[26,] . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . . .
+[27,] . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . . .
+[28,] . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . . .
+[29,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . . .
+[30,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . . .
+[31,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . . .
+[32,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 . .
+[33,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1 .
+[34,] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 4 1
+> 
+> 
+> ## From tools
+> 
+> library(tools)
+> ## there are few dependencies in a vanilla R installation:
+> ## lattice may not be installed
+> ## Avoid possibly large list from R_HOME/site-library, which --vanilla includes.
+> dependsOnPkgs("lattice", lib.loc = .Library)
+[1] "Matrix"   "nlme"     "mgcv"     "survival"
+> 
+> ## This may not be installed
+> gridEx <- system.file("doc", "grid.Rnw", package = "grid")
+> vignetteDepends(gridEx)
+$Depends
+[1] "lattice"
+
+$Installed
+[1] "lattice"
+
+$Found
+list()
+
+$NotFound
+character(0)
+
+$R
+[1] "R (>= 3.0.0)"
+
+attr(,"class")
+[1] "DependsList"
+Warning messages:
+1: 'getDepList' is deprecated.
+Use 'dependsOnPkgs() or package_dependencies()' instead.
+See help("Deprecated") 
+2: 'package.dependencies' is deprecated.
+Use 'package_dependencies' instead.
+See help("Deprecated") 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-S4.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-S4.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-S4.R	(revision 2476)
@@ -0,0 +1,827 @@
+####--- S4 Methods (and Classes)  --- see also ../src/library/methods/tests/
+options(useFancyQuotes=FALSE)
+require(methods)
+assertError <- tools::assertError # "import"
+##too fragile: showMethods(where = "package:methods")
+
+## When this test comes too late, it fails too early in R <= 3.2.2
+require(stats4)
+detach("package:methods")
+require("methods")
+cc <- methods::getClassDef("standardGeneric")
+cc ## (auto) print failed here, in R <= 3.2.2
+stopifnot(.isMethodsDispatchOn()) ## was FALSE in R <= 3.2.2
+
+
+## Needs cached primitive generic for '$'
+new("envRefClass")# failed in R <= 3.2.0
+
+##-- S4 classes with S3 slots [moved from ./reg-tests-1.R]
+setClass("test1", representation(date="POSIXct"))
+x <- new("test1", date=as.POSIXct("2003-10-09"))
+stopifnot(format(x @ date) == "2003-10-09")
+## line 2 failed in 1.8.0 because of an extraneous space in "%in%"
+
+stopifnot(all.equal(3:3, 3.), all.equal(1., 1:1))
+
+## trace (requiring methods):
+f <- function(x, y) { c(x,y)}
+xy <- 0
+trace(f, quote(x <- c(1, x)), exit = quote(xy <<- x), print = FALSE)
+fxy <- f(2,3)
+stopifnot(identical(fxy, c(1,2,3)))
+stopifnot(identical(xy, c(1,2)))
+untrace(f)
+
+## a generic and its methods
+
+setGeneric("f")
+setMethod("f", c("character", "character"), function(x,	 y) paste(x,y))
+
+## trace the generic
+trace("f", quote(x <- c("A", x)), exit = quote(xy <<- c(x, "Z")), print = FALSE)
+
+## should work for any method
+
+stopifnot(identical(f(4,5), c("A",4,5)),
+          identical(xy, c("A", 4, "Z")))
+
+stopifnot(identical(f("B", "C"), paste(c("A","B"), "C")),
+          identical(xy, c("A", "B", "Z")))
+
+## trace a method
+trace("f", sig = c("character", "character"), quote(x <- c(x, "D")),
+      exit = quote(xy <<- xyy <<- c(x, "W")), print = FALSE)
+
+stopifnot(identical(f("B", "C"), paste(c("A","B","D"), "C")))
+stopifnot(identical(xyy, c("A", "B", "D", "W")))
+# got broken by Luke's lexical scoping fix:
+#stopifnot(identical(xy, xyy))
+
+## but the default method is unchanged
+stopifnot(identical(f(4,5), c("A",4,5)),
+          identical(xy, c("A", 4, "Z")))
+
+removeGeneric("f")
+## end of moved from trace.Rd
+
+
+## print/show dispatch  [moved from  ./reg-tests-2.R ]
+## The results  have waffled back and forth.
+## Currently (R 2.4.0) the intent is that automatic printing of S4
+## objects should correspond to a call to show(), as per the green
+## book, p. 332.  Therefore, the show() method is called, once defined,
+## for auto-printing foo, regardless of the S3 or S4 print() method.
+## (But most of this example is irrelevant if one avoids S3 methods for
+## S4 classes, as one should.)
+setClass("bar", representation(a="numeric"))
+foo <- new("bar", a=pi)
+foo
+show(foo)
+print(foo)
+
+setMethod("show", "bar", function(object){cat("show method\n")})
+show(foo)
+foo
+print(foo)
+# suppressed because output depends on current choice of S4 type or
+# not.  Can reinstate when S4 type is obligatory
+# print(foo, digits = 4)
+
+## DON'T DO THIS:  S3 methods for S4 classes are a design error JMC iii.9.09
+## print.bar <- function(x, ...) cat("print method\n")
+## foo
+## print(foo)
+## show(foo)
+
+setMethod("print", "bar", function(x, ...){cat("S4 print method\n")})
+foo
+print(foo)
+show(foo)
+## calling print() with more than one argument suppresses the show()
+## method, largely to prevent an infinite loop if there is in fact no
+## show() method for this class.  A better solution would be desirable.
+print(foo, digits = 4)
+
+setClassUnion("integer or NULL", members = c("integer","NULL"))
+setClass("c1", representation(x = "integer", code = "integer or NULL"))
+nc <- new("c1", x = 1:2)
+str(nc)# gave ^ANULL^A in 2.0.0
+##
+
+
+library(stats4)
+showMethods("coerce", classes=c("matrix", "numeric"))
+## {gave wrong result for a while in R 2.4.0}
+
+## the following showMethods() output tends to generate errors in the tests
+## whenever the contents of the packages change. Searching in the
+## diff's can easily mask real problems.  If there is a point
+## to the printout, e.g., to verify that certain methods exist,
+## hasMethod() would be a useful replacement
+
+## showMethods(where = "package:stats4")
+## showMethods("show")
+## showMethods("show")
+## showMethods("plot") # (ANY,ANY) and (profile.mle, missing)
+## showMethods(classes="mle")
+## showMethods(classes="matrix")
+
+
+##--- "[" fiasco before R 2.2.0 :
+d2 <- data.frame(b= I(matrix(1:6,3,2)))
+## all is well:
+d2[2,]
+stopifnot(identical(d2[-1,], d2[2:3,]))
+## Now make "[" into S4 generic by defining a trivial method
+setClass("Mat", representation(Dim = "integer", "VIRTUAL"))
+setMethod("[", signature(x = "Mat",
+			 i = "missing", j = "missing", drop = "ANY"),
+	  function (x, i, j, drop) x)
+## Can even remove the method: it doesn't help
+removeMethod("[", signature(x = "Mat",
+                            i = "missing", j = "missing", drop = "ANY"))
+d2[1:2,] ## used to fail badly; now okay
+stopifnot(identical(d2[-1,], d2[2:3,]))
+## failed in R <= 2.1.x
+
+
+## Fritz' S4 "odditiy"
+setClass("X", representation(bar="numeric"))
+setClass("Y", contains="X")
+## Now we define a generic foo() and two different methods for "X" and
+## "Y" objects for arg missing:
+setGeneric("foo", function(object, arg) standardGeneric("foo"))
+setMethod("foo", signature(object= "X", arg="missing"),
+          function(object, arg) cat("an X object with bar =", object@bar, "\n"))
+setMethod("foo", signature(object= "Y", arg="missing"),
+          function(object, arg) cat("a Y object with bar =", object@bar, "\n"))
+## Finally we create a method where arg is "logical" only for class
+## "X", hence class "Y" should inherit that:
+setMethod("foo", signature(object= "X", arg= "logical"),
+          function(object, arg) cat("Hello World!\n") )
+## now create objects and call methods:
+y <- new("Y", bar=2)
+## showMethods("foo")
+foo(y)
+foo(y, arg=TRUE)## Hello World!
+## OK, inheritance worked, and we have
+## showMethods("foo")
+foo(y)
+## still 'Y' -- was 'X object' in R < 2.3
+
+
+## Multiple inheritance
+setClass("A", representation(x = "numeric"))
+setClass("B", representation(y = "character"))
+setClass("C", contains = c("A", "B"), representation(z = "logical"))
+new("C")
+setClass("C", contains = c("A", "B"), representation(z = "logical"),
+         prototype = prototype(x = 1.5, y = "test", z = TRUE))
+(cc <- new("C"))
+## failed reconcilePropertiesAndPrototype(..) after svn r37018
+stopifnot(identical(selectSuperClasses("C", dropVirtual = TRUE), c("A", "B")),
+	  0 == length(.selectSuperClasses(getClass("B")@contains)))
+
+## "Logic" group -- was missing in R <= 2.4.0
+stopifnot(all(getGroupMembers("Logic") %in% c("&", "|")),
+	  any(getGroupMembers("Ops") == "Logic"))
+setClass("brob", contains="numeric")
+b <- new("brob", 3.14)
+logic.brob.error <- function(nm)
+    stop("logic operator '", nm, "' not applicable to brobs")
+logic2 <- function(e1,e2) logic.brob.error(.Generic)
+setMethod("Logic", signature("brob", "ANY"), logic2)
+setMethod("Logic", signature("ANY", "brob"), logic2)
+## Now ensure that using group members gives error:
+assertError(b & b)
+assertError(b | 1)
+assertError(TRUE & b)
+
+
+## methods' hidden cbind() / rbind:
+setClass("myMat", representation(x = "numeric"))
+setMethod("cbind2", signature(x = "myMat", y = "missing"), function(x,y) x)
+m <- new("myMat", x = c(1, pi))
+stopifnot(identical(m, methods:::cbind(m)), identical(m, cbind(m)))
+
+
+## explicit print or show on a basic class with an S4 bit
+## caused infinite recursion
+setClass("Foo", representation(name="character"), contains="matrix")
+(f <- new("Foo", name="Sam", matrix()))
+f2 <- new("Foo", .Data = diag(2), name="Diag")# explicit .Data
+(m <- as(f, "matrix"))
+## this has no longer (2.7.0) an S4 bit: set it explicitly just for testing:
+stopifnot(isS4(m. <- asS4(m)),
+          identical(m, f@.Data),
+	  .hasSlot(f, "name"))# failed in R <= 2.13.1
+show(m.)
+print(m.)
+## fixed in 2.5.0 patched
+
+## callGeneric inside a method with new arguments {hence using .local()}:
+setGeneric("Gfun", function(x, ...) standardGeneric("Gfun"),
+	   useAsDefault = function(x, ...) sum(x, ...))
+setClass("myMat", contains="matrix")
+setClass("mmat2", contains="matrix")
+setClass("mmat3", contains="mmat2")
+setMethod(Gfun, signature(x = "myMat"),
+	  function(x, extrarg = TRUE) {
+	      cat("in 'myMat' method for 'Gfun() : extrarg=", extrarg, "\n")
+	      Gfun(unclass(x))
+	  })
+setMethod(Gfun, signature(x = "mmat2"),
+	  function(x, extrarg = TRUE) {
+	      cat("in 'mmat2' method for 'Gfun() : extrarg=", extrarg, "\n")
+	      x <- unclass(x)
+	      callGeneric()
+	  })
+setMethod(Gfun, signature(x = "mmat3"),
+	  function(x, extrarg = TRUE) {
+	      cat("in 'mmat3' method for 'Gfun() : extrarg=", extrarg, "\n")
+	      x <- as(x, "mmat2")
+	      callGeneric()
+	  })
+wrapG <- function(x, a1, a2) {
+    myextra <- missing(a1) && missing(a2)
+    Gfun(x, extrarg = myextra)
+}
+
+(mm <- new("myMat", diag(3)))
+Gfun(mm)
+stopifnot(identical(wrapG(mm),    Gfun(mm, TRUE)),
+          identical(wrapG(mm,,2), Gfun(mm, FALSE)))
+
+Gfun(mm, extrarg = FALSE)
+m2 <- new("mmat2", diag(3))
+Gfun(m2)
+Gfun(m2, extrarg = FALSE)
+## The last two gave Error ...... variable ".local" was not found
+(m3 <- new("mmat3", diag(3)))
+Gfun(m3)
+Gfun(m3, extrarg = FALSE) # used to not pass 'extrarg'
+
+## -- a variant of the above which failed in version <= 2.5.1 :
+setGeneric("Gf", function(x, ...) standardGeneric("Gf"))
+setMethod(Gf, signature(x = "mmat2"),
+          function(x, ...) {
+              cat("in 'mmat2' method for 'Gf()\n")
+              x <- unclass(x)
+              callGeneric()
+          })
+setMethod(Gf, signature(x = "mmat3"),
+          function(x, ...) {
+              cat("in 'mmat3' method for 'Gf()\n")
+              x <- as(x, "mmat2")
+              callGeneric()
+          })
+setMethod(Gf, signature(x = "matrix"),
+	  function(x, a1, ...) {
+              cat(sprintf("matrix %d x %d ...\n", nrow(x), ncol(x)))
+              list(x=x, a1=a1, ...)
+          })
+
+wrap2 <- function(x, a1, ...) {
+    A1 <- if(missing(a1)) "A1" else as.character(a1)
+    Gf(x, ..., a1 = A1)
+}
+## Gave errors in R 2.5.1 :
+wrap2(m2, foo = 3.14)
+wrap2(m2, 10, answer.all = 42)
+
+
+## regression tests of dispatch: most of these became primitive in 2.6.0
+setClass("c1", "numeric")
+setClass("c2", "numeric")
+x_c1 <- new("c1")
+# the next failed < 2.5.0 as the signature in .BasicFunsList was wrong
+setMethod("as.character", "c1", function(x, ...) "fn test")
+as.character(x_c1)
+
+setMethod("as.integer", "c1", function(x, ...) 42)
+as.integer(x_c1)
+
+setMethod("as.logical", "c1", function(x, ...) NA)
+as.logical(x_c1)
+
+setMethod("as.complex", "c1", function(x, ...) pi+0i)
+as.complex(x_c1)
+
+setMethod("as.raw", "c1", function(x) as.raw(10))
+as.raw(x_c1)
+
+# as.double, as.real use as.numeric for their methods to maintain equivalence
+setMethod("as.numeric", "c1", function(x, ...) 42+pi)
+identical(as.numeric(x_c1),as.double(x_c1))
+
+
+setMethod(as.double, "c2", function(x, ...) x@.Data+pi)
+x_c2 <- new("c2", pi)
+identical(as.numeric(x_c2),as.double(x_c2))
+
+## '!' changed signature from 'e1' to 'x' in 2.6.0
+setClass("foo", "logical")
+setMethod("!", "foo", function(e1) e1+NA)
+selectMethod("!", "foo")
+xx <- new("foo", FALSE)
+!xx
+
+## This fails in R versions earlier than 2.6.0:
+setMethod("as.vector", "foo", function(x) unclass(x))
+stopifnot(removeClass("foo"))
+
+## stats4::AIC in R < 2.7.0 used to clobber stats::AIC
+pfit <- function(data) {
+    m <- mean(data)
+    loglik <- sum(dpois(data, m))
+    ans <- list(par = m, loglik = loglik)
+    class(ans) <- "pfit"
+    ans
+}
+AIC.pfit <- function(object, ..., k = 2) -2*object$loglik + k
+AIC(pfit(1:10))
+library(stats4) # and keep on search() for tests below
+AIC(pfit(1:10)) # failed in R < 2.7.0
+
+## For a few days (~ 2008-01-30), this failed to work without any notice:
+setClass("Mat",  representation(Dim = "integer","VIRTUAL"))
+setClass("dMat", representation(x = "numeric",  "VIRTUAL"), contains = "Mat")
+setClass("CMat", representation(dnames = "list","VIRTUAL"), contains = "Mat")
+setClass("dCMat", contains = c("dMat", "CMat"))
+stopifnot(!isVirtualClass("dCMat"),
+	  length(slotNames(new("dCMat"))) == 3)
+
+
+## Passing "..." arguments in nested callGeneric()s
+setClass("m1", contains="matrix")
+setClass("m2", contains="m1")
+setClass("m3", contains="m2")
+##
+setGeneric("foo", function(x, ...) standardGeneric("foo"))
+setMethod("foo", signature(x = "m1"),
+	  function(x, ...) cat(" <m1> ", format(match.call()),"\n"))
+setMethod("foo", signature(x = "m2"),
+	  function(x, ...) {
+	      cat(" <m2> ", format(match.call()),"\n")
+	      x <- as(x, "m1"); callGeneric()
+	  })
+setMethod("foo", signature(x = "m3"),
+	  function(x, ...) {
+	      cat(" <m3> ", format(match.call()),"\n")
+	      x <- as(x, "m2"); callGeneric()
+	  })
+foo(new("m1"), bla = TRUE)
+foo(new("m2"), bla = TRUE)
+foo(new("m3"), bla = TRUE)
+## The last one used to loose 'bla = TRUE' {the "..."} when it got to m1
+
+## is() for S3 objects with multiple class strings
+setClassUnion("OptionalPOSIXct",   c("POSIXct",   "NULL"))
+stopifnot(is(Sys.time(), "OptionalPOSIXct"))
+## failed in R 2.7.0
+
+## getGeneric() / getGenerics() "problems" related to 'tools' usage:
+e4 <- as.environment("package:stats4")
+gg4 <- getGenerics(e4)
+stopifnot(c("BIC", "coef", "confint", "logLik", "plot", "profile",
+            "show", "summary", "update", "vcov") %in% gg4, # %in% : "future proof"
+          unlist(lapply(gg4, function(g) !is.null(getGeneric(g, where = e4)))),
+          unlist(lapply(gg4, function(g) !is.null(getGeneric(g)))))
+em <- as.environment("package:methods")
+ggm <- getGenerics(em)
+gms <- c("addNextMethod", "body<-", "cbind2", "initialize",
+	 "loadMethod", "Ops", "rbind2", "show")
+stopifnot(unlist(lapply(ggm, function(g) !is.null(getGeneric(g, where = em)))),
+	  unlist(lapply(ggm, function(g) !is.null(getGeneric(g)))),
+	  gms %in% ggm,
+	  gms %in% tools:::get_S4_generics_with_methods(em), # with "message"
+	  ## all above worked in 2.7.0, however:
+	  isGeneric("show",  where=e4),
+	  hasMethods("show", where=e4), hasMethods("show", where=em),
+	  ## isGeneric("dim", where=as.environment("package:Matrix"))
+	  identical(as.character(gg4), #gg4 has packages attr.; tools::: doesn't
+		    tools:::get_S4_generics_with_methods(e4))
+	  )
+## the last failed in R 2.7.0 : was not showing  "show"
+## TODO: use "Matrix" checks once that is >= 1.0
+
+## containing "array" ("matrix", "ts", ..)
+t. <- ts(1:10, frequency = 4, start = c(1959, 2))
+setClass("Arr", contains= "array"); x <- new("Arr", cbind(17))
+setClass("Ts",  contains= "ts");   tt <- new("Ts", t.); t2 <- as(t., "Ts")
+setClass("ts2", representation(x = "Ts", y = "ts"))
+tt2 <- new("ts2", x=t2, y=t.)
+stopifnot(dim(x) == c(1,1), is(tt, "ts"), is(t2, "ts"),
+          ## FIXME:  identical(tt, t2)
+          length(tt) == length(t.),
+          identical(tt2@x, t2), identical(tt2@y, t.))
+## new(..) failed in R 2.7.0
+
+## Method with wrong argument order :
+setGeneric("test1", function(x, printit = TRUE, name = "tmp")
+           standardGeneric("test1"))
+tools::assertCondition(
+setMethod("test1", "numeric", function(x, name, printit) match.call()),
+"warning", "error")## did not warn or error in R 2.7.0 and earlier
+
+library(stats4)
+c1 <- getClass("mle", where = "stats4")
+c2 <- getClass("mle", where = "package:stats4")
+s1 <- getMethod("summary", "mle", where = "stats4")
+s2 <- getMethod("summary", "mle", where = "package:stats4")
+stopifnot(is(c1, "classRepresentation"),
+	  is(s1, "MethodDefinition"),
+	  identical(c1,c2), identical(s1,s2))
+## failed at times in the past
+
+## Extending "matrix", the .Data slot etc:
+setClass("moo", representation("matrix"))
+m <- matrix(1:4, 2, dimnames= list(NULL, c("A","B")))
+nf <- new("moo", .Data = m)
+n2 <- new("moo", 3:1, 3,2)
+n3 <- new("moo", 1:6, ncol=2)
+stopifnot(identical(m,			as(nf, "matrix")),
+	  identical(matrix(3:1,3,2),	as(n2, "matrix")),
+	  identical(matrix(1:6,ncol=2), as(n3, "matrix")))
+## partly failed at times in pre-2.8.0
+
+## From "Michael Lawrence" <....@fhcrc.org>  To r-devel@r-project, 25 Nov 2008:
+## NB: setting a generic on order() is *not* the approved method
+## -- set xtfrm() methods instead
+setGeneric("order", signature="...",
+	   function (..., na.last=TRUE, decreasing=FALSE)
+	   standardGeneric("order"))
+stopifnot(identical(rbind(1), matrix(1,1,1)))
+setGeneric("rbind", function(..., deparse.level=1)
+	   standardGeneric("rbind"), signature = "...")
+stopifnot(identical(rbind(1), matrix(1,1,1)))
+## gave Error in .Method( .... in R 2.8.0
+
+## median( <simple S4> )
+## FIXME: if we use "C" instead of "L", this fails because of caching
+setClass("L", contains = "list")
+## {simplistic, just for the sake of testing here} :
+setMethod("Compare", signature(e1="L", e2="ANY"),
+          function(e1,e2) sapply(e1, .Generic, e2=e2))
+## note the next does *not* return an object of the class.
+setMethod("Summary", "L",
+	  function(x, ..., na.rm=FALSE) {x <- unlist(x); callNextMethod()})
+setMethod("[", signature(x="L", i="ANY", j="missing",drop="missing"),
+          function(x,i,j,drop) new(class(x), x@.Data[i]))
+## defining S4 methods for sort() has no effect on calls to
+## sort() from functions in a namespace; e.g., median.default.
+## but setting an xtfrm() method works.
+setMethod("xtfrm", "L", function(x) xtfrm(unlist(x@.Data)))
+## median is documented to use mean(), so we need an S3 mean method:
+## An S4 method will not do because of the long-standing S4 scoping bug.
+mean.L <- function(x, ...) new("L", mean(unlist(x@.Data), ...))
+x <- new("L", 1:3); x2 <- x[-2]
+stopifnot(unlist(x2) == (1:3)[-2],
+	  is(mx <- median(x), "L"), mx == 2,
+	  ## median of two
+	  median(x2) == x[2])
+## NB: quantile() is not said to work on such an object, and only does so
+## for order statistics (so should not be tested, but was in earlier versions).
+
+## Buglet in as() generation for class without own slots
+setClass("SIG", contains="signature")
+stopifnot(packageSlot(class(S <- new("SIG"))) == ".GlobalEnv",
+	  packageSlot(class(ss <- new("signature"))) == "methods",
+	  packageSlot(class(as(S, "signature"))) == "methods")
+## the 3rd did not have "methods"
+
+## Invalid "factor"s -- now "caught" by  validity check :
+ ok.f <- gl(3,5, labels = letters[1:3])
+bad.f <- structure(rep(1:3, each=5), levels=c("a","a","b"), class="factor")
+validObject(ok.f) ; assertError(validObject(bad.f))
+setClass("myF", contains = "factor")
+validObject(new("myF", ok.f))
+assertError(validObject(new("myF", bad.f)))
+removeClass("myF")
+## no validity check in R <= 2.9.0
+
+## as(x, .)   when x is from an "unregistered" S3 class :
+as(structure(1:3, class = "foobar"), "vector")
+## failed to work in R <= 2.9.0
+
+## S4 dispatch in the internal generic xtfrm (added in 2.11.0)
+setClass("numWithId", representation(id = "character"), contains = "numeric")
+x <- new("numWithId", 1:3, id = "An Example")
+xtfrm(x) # works as the base representation is numeric
+setMethod('xtfrm', 'numWithId', function(x) x@.Data)
+xtfrm(x)
+stopifnot(identical(xtfrm(x), 1:3))# "integer" is "numeric"
+## new in 2.11.0
+
+## [-dispatch using callNextMethod()
+setClass("C1", representation(a = "numeric"))
+setClass("C2", contains = "C1")
+setMethod("[", "C1", function(x,i,j,...,drop=TRUE)
+	  cat("drop in C1-[ :", drop, "\n"))
+setMethod("[", "C2", function(x,i,j,...,drop=TRUE) {
+    cat("drop in C2-[ :", drop, "\n")
+    callNextMethod()
+})
+x <- new("C1"); y <- new("C2")
+x[1, drop=FALSE]
+y[1, drop=FALSE]
+## the last gave TRUE on C1-level in R 2.10.x;
+## the value of drop was wrongly taken from the default.
+
+## All slot names -- but "class" -- should work now
+problNames <- c("names", "dimnames", "row.names",
+                "class", "comment", "dim", "tsp")
+myTry <- function(expr, ...) tryCatch(expr, error = function(e) e)
+tstSlotname <- function(nm) {
+    r <- myTry(setClass("foo", representation =
+                        structure(list("character"), .Names = nm)))
+    if(is(r, "error")) return(r$message)
+    ## else
+    ch <- LETTERS[1:5]
+    ## instead of  new("foo", <...> = ch):
+    x <- myTry(do.call(new, structure(list("foo", ch), .Names=c("", nm))))
+    if(is(x, "error")) return(x$message)
+    y <- myTry(new("foo"));		 if(is(y, "error")) return(y$message)
+    r <- myTry(capture.output(show(x))); if(is(r, "error")) return(r$message)
+    r <- myTry(capture.output(show(y))); if(is(r, "error")) return(r$message)
+    ## else
+    slot(y, nm) <- slot(x, nm)
+    stopifnot(validObject(x), identical(x,y), identical(slot(x, nm), ch))
+    return(TRUE)
+}
+R <- sapply(problNames, tstSlotname, simplify = FALSE)
+str(R) # just so ...
+stopifnot(is.character(R[["class"]]),
+          sapply(R[names(R) != "class"], isTRUE))
+## only "class" (and ".Data", ...) is reserved as slot name
+
+## implicit generics ..
+setMethod("sample", "C2",
+          function(x, size, replace=FALSE, prob=NULL) {"sample.C2"})
+stopifnot(is(sample,"standardGeneric"),
+	  ## the signature must come from the implicit generic:
+	  identical(sample@signature, c("x", "size")),
+	  identical(packageSlot(sample), "base"),
+	  ## default method must still work:
+	  identical({set.seed(3); sample(3)}, 1:3))
+## failed in R 2.11.0
+
+## Still, signature is taken from "def"inition, if one is provided:
+## (For test, qqplot must be a "simple" function:)
+stopifnot(is.function(qqplot) && identical(class(qqplot), "function"))
+setGeneric("qqplot", function(x, y, ...) standardGeneric("qqplot"))
+stopifnot(is(qqplot, "standardGeneric"),
+	  identical(qqplot@signature, c("x","y")))
+## failed for a day ~ 2005-05-26, for R-devel only
+
+
+##  'L$A@x <- ..'
+setClass("foo", representation(x = "numeric"))
+f <- new("foo", x = pi*1:2)
+L <- list()
+L$A <- f
+L$A@x[] <- 7
+if( identical(f, L$A) )
+    stop("Oops! f is identical to L$A, even though not touched!")
+## did not duplicate in 2.0.0 <= Rversion <= 2.11.1
+
+
+## prototypes for virtual classes:  NULL if legal, otherwise 1st member
+## OptionalPosixct above includes NULL
+stopifnot(is.null(getClass("OptionalPOSIXct")@prototype))
+## "IntOrChar" had invalid NULL prototype < 2.15.0
+setClassUnion("IntOrChar", c("integer", "character"))
+stopifnot(is.integer(getClass("IntOrChar")@prototype))
+## produced an error < 2.15.0
+stopifnot(identical(isGeneric("&&"), FALSE))
+
+
+## mapply() on S4 objects with a "non-primitive" length() method
+setClass("A", representation(aa="integer"))
+aa <- 11:16
+a <- new("A", aa=aa)
+setMethod(length, "A", function(x) length(x@aa))
+setMethod(`[[`,   "A", function(x, i, j, ...) x@aa[[i]])
+setMethod(`[`,    "A", function(x, i, j, ...) new("A", aa = x@aa[i]))
+setMethod("is.na","A", function(x) is.na(x@aa))
+stopifnot(length(a) == 6, identical(a[[5]], aa[[5]]),
+          identical(a, rev(rev(a))), # using '['
+	  identical(mapply(`*`, aa, rep(1:3, 2)),
+		    mapply(`*`, a,  rep(1:3, 2))))
+## Up to R 2.15.2, internally 'a' is treated as if it was of length 1
+## because internal dispatch did not work for length().
+
+setMethod("is.unsorted", "A", function(x, na.rm, strictly)
+    is.unsorted(x@aa, na.rm=na.rm, strictly=strictly))
+
+stopifnot(!is.unsorted(a), # 11:16 *is* sorted
+	  is.unsorted(rev(a)))
+
+# getSrcref failed when rematchDefinition was used
+text <- '
+setClass("MyClass", representation(val = "numeric"))
+setMethod("plot", signature(x = "MyClass"),
+    function(x, y, ...) {
+        # comment
+	NULL
+    })
+setMethod("initialize", signature = "MyClass",
+    function(.Object, value) {
+	# comment
+	.Object@val <- value
+	return(.Object)
+    })
+'
+source(textConnection(text), keep.source = TRUE)
+getSrcref(getMethod("plot", "MyClass"))
+getSrcref(getMethod("initialize", "MyClass"))
+
+
+## PR#15691
+setGeneric("fun", function(x, ...) standardGeneric("fun"))
+setMethod("fun", "character", identity)
+setMethod("fun", "numeric", function(x) {
+  x <- as.character(x)
+  callGeneric()
+})
+
+stopifnot(identical(fun(1), do.call(fun, list(1))))
+## failed in R < 3.1.0
+
+
+## PR#15680
+setGeneric("f", function(x, y) standardGeneric("f"))
+setMethod("f", c("numeric", "missing"), function(x, y) x)
+try(?f(1))
+
+## "..." is not handled
+setGeneric("f", function(...) standardGeneric("f"))
+setMethod("f", "numeric", function(...) c(...))
+try(?f(1,2))
+
+## defaults in the generic formal arguments are not considered
+setGeneric("f", function(x, y=0) standardGeneric("f"))
+setMethod("f", c("numeric", "numeric"), function(x, y) x+y)
+try(?f(1))
+
+## Objects with S3 classes fail earlier
+setGeneric("f", function(x) standardGeneric("f"))
+setMethod("f", "numeric", function(x) x)
+setOldClass(c("foo", "numeric"))
+n <- structure(1, class=c("foo", "numeric"))
+try(?f(n))
+## different failures in R < 3.1.0.
+
+
+## identical() did not look at S4 bit:
+a <- 1:5
+b <- setClass("B", "integer")(a)
+stopifnot(is.character(all.equal(a, b)))
+attributes(a) <- attributes(b)
+if(!isS4(a)) { # still (unfortunately)
+    message("'a' is not S4 yet")
+    if(identical(a,b)) stop("identical() not looking at S4 bit")
+    ## set S4 bit manually:
+    a <- asS4(a)
+}
+stopifnot(identical(a, b), isS4(a))
+## failed in R <= 3.1.1
+
+
+### cbind(), rbind() now work both via rbind2(), cbind2() and rbind.
+##__ 1) __
+setClass("A", representation(a = "matrix"))
+setMethod("initialize", signature(.Object = "A"),
+    function(.Object, y) {
+      .Object@a <- y
+      .Object
+    })
+setMethod("rbind2", signature(x = "A", y = "matrix"),
+    function(x, y, ...) {
+      cat("rbind2(<A>, <matrix>) : ")
+      x@a <- rbind(x@a, y)
+      cat(" x@a done\n")
+      x
+    })
+setMethod("dim", "A", function(x) dim(x@a))
+mat1 <- matrix(1:9, nrow = 3)
+obj1 <- new("A", 10*mat1)
+om1 <- rbind(obj1, mat1)## now does work {it does need a working "dim" method!}
+stopifnot(identical(om1, rbind2(obj1, mat1)))
+rm(obj1,om1); removeClass("A")
+##
+##
+###__ 2) --- Matrix --- via cbind2(), rbind2()
+## this has its output checked strictly, so test depending on Matrix
+## has been moved to reg-tests-3.R
+##
+###__ 3) --- package 'its' like
+setClass("its",representation("matrix", dates="POSIXt"))
+m <- outer(1:3, setNames(1:5,LETTERS[1:5]))
+im <- new("its", m, dates=as.POSIXct(Sys.Date()))
+stopifnot(identical(m, im@.Data))
+ii  <- rbind(im, im-1)
+i.i <- cbind(im, im-7)
+stopifnot(identical(m, rbind(im)),
+          identical(m, cbind(im)),
+          identical(ii , rbind(m, m-1)),
+          identical(i.i, cbind(m, m-7)))
+rm(im, ii, i.i)
+removeClass("its")
+##
+##
+###__ 4) --- pkg 'mondate' like --
+setClass("mondate",
+         slots = c(timeunits = "character"), contains = "numeric")
+three <- 3
+m1 <- new("mondate", 1:4, timeunits = "hrs")
+m2 <- new("mondate", 7:8, timeunits = "min")
+stopifnot(identical(colnames(cbind(m1+1, deparse.level=2)), "m1 + 1"),
+          is.null  (colnames(cbind(m1+1, deparse.level=0))),
+          is.null  (colnames(cbind(m1+1, deparse.level=1))),
+          identical(colnames(cbind(m1)), "m1"),
+          colnames(cbind(m1  , M2 = 2, deparse.level=0)) == c(""  , "M2"),
+          colnames(cbind(m1  , M2 = 2))                  == c("m1", "M2"),
+          colnames(cbind(m1  , M2 = 2, deparse.level=2)) == c("m1", "M2"),
+          colnames(cbind(m1+1, M2 = 2, deparse.level=2)) == c("m1 + 1", "M2"),
+          colnames(cbind(m1+1, M2 = 2, deparse.level=1)) == c("",       "M2"))
+cbind(m1, three, m2)
+cbind(m1, three, m2,   deparse.level = 0) # none
+cbind(m1, three, m2+3, deparse.level = 1) # "m1" "three"
+cbind(m1, three, m2+3, deparse.level = 2) -> m3
+m3 #    ....  and "m2 + 3"
+stopifnot(identical(t(m3), rbind(m1, three, m2+3, deparse.level = 2)),
+          identical(cbind(m1, m2) -> m12,
+                    cbind(m1=m1@.Data, m2=m2@.Data)),
+          identical(rbind(m1, m2), t(m12)),
+          identical(cbind(m1, m2, T=T, deparse.level=0),
+                    cbind(m1@.Data, m2@.Data, T=T) -> mm),
+          identical(colnames(mm), c("", "", "T")),
+          identical(cbind(m1, m2, deparse.level=0),
+                    cbind(m1@.Data, m2@.Data)))
+##
+## Cleanup all class definitions etc -- seems necessary for the following "re"-definitions:
+invisible(lapply(getClasses(globalenv()), removeClass))
+nn <- names(globalenv())
+rm(list = c("nn", nn))
+
+## Using "data.frame" in a slot -- all have worked for long:
+setClass("A", representation(slot1="numeric", slot2="logical"))
+setClass("D1", contains="A", representation(design="data.frame"))
+setClass("D2", contains="D1")
+validObject(a <- new("A", slot1=77, slot2=TRUE))
+validObject(D. <- new("D2", a, design = data.frame(x = 1)))
+## using "formula" in a slot -- from Hervé Pages :
+setClass("B", contains="A", representation(design="formula"))
+setClass("C", contains="B")
+##
+a <- new("A", slot1=77, slot2=TRUE)
+validObject(C1 <- new("C", a, design = x ~ y))# failed for R <= 3.2.0
+C2 <- new("C", slot1=a@slot1, slot2=a@slot2, design=x ~ y)
+stopifnot(identical(C1, C2),
+	  identical(formula(), formula(NULL)),
+	  length(N <- new("formula")) == 0, inherits(N, "formula"),
+	  length(N <- new("table")  ) == 0, is.table(N),
+	  validObject(N <- new("summary.table")),
+	  length(N <- new("ordered")) == 0, is.ordered(N))
+## formula() and new("formula"), new("..") also failed  in R <= 3.2.0
+
+require("stats4")# -> "mle" class
+validObject(sig <- new("signature", obj = "mle"))
+stopifnot(c("package", "names") %in% slotNames(sig))
+str(sig) # failed, too
+
+cl4 <- getClasses("package:stats4")
+stopifnot(identical(getClasses(which(search() == "package:stats4")), cl4),
+	  c("mle", "profile.mle", "summary.mle") %in% cl4)
+## failed after an optimization patch
+
+detach("package:methods", force=TRUE)
+C1@slot1 <- pi
+stopifnot(identical(C1@slot1, pi))
+stopifnot(require("methods"))
+## Slot assignment failed in R <= 3.2.2, C code calling checkAtAssignment()
+
+## Error in argument evaluation of S4 generic - PR#16111
+f <- function() {
+    signal <- FALSE
+    withCallingHandlers({ g(sqrt(-1)) }, warning = function(w) {
+        signal <<- TRUE
+        invokeRestart("muffleWarning")
+    })
+    signal
+}
+g <- function(x) x
+op <- options(warn = 2)# warnings give errors
+stopifnot(isTRUE( f() ))
+setGeneric("g")
+stopifnot(isTRUE( f() ))
+options(op)
+## the second  f()  gave a warning and FALSE in  R versions  2.12.0 <= . <= 3.2.3
+
+
+stopifnot(
+    identical(formals(getGeneric("as.vector")), formals(base::as.vector)),
+    identical(formals(getGeneric("unlist")),    formals(base::unlist)))
+## failed for a while in R-devel (3.3.0)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-3.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-3.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-3.Rout.save	(revision 2476)
@@ -0,0 +1,884 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ### Regression tests for which the printed output is the issue
+> ### May fail, e.g. by needing Recommended packages
+> 
+> pdf("reg-tests-3.pdf", encoding = "ISOLatin1.enc")
+> 
+> ## str() for character & factors with NA (levels), and for Surv objects:
+> ff <- factor(c(2:1,  NA),  exclude = NULL)
+> str(levels(ff))
+ chr [1:3] "1" "2" NA
+> str(ff)
+ Factor w/ 3 levels "1","2",NA: 2 1 3
+> str(ordered(ff, exclude=NULL))
+ Ord.factor w/ 3 levels "1"<"2"<NA: 2 1 3
+> if(require(survival)) {
++     (sa <- Surv(aml$time, aml$status))
++     str(sa)
++     detach("package:survival", unload = TRUE)
++ }
+Loading required package: survival
+ Surv [1:23, 1:2]   9   13   13+  18   23   28+  31   34   45+  48  ...
+ - attr(*, "dimnames")=List of 2
+  ..$ : NULL
+  ..$ : chr [1:2] "time" "status"
+ - attr(*, "type")= chr "right"
+> ## were different, the last one failed in 1.6.2 (at least)
+> 
+> 
+> ## lm.influence where hat[1] == 1
+> if(require(MASS)) {
++     fit <- lm(formula = 1000/MPG.city ~ Weight + Cylinders + Type + EngineSize + DriveTrain, data = Cars93)
++     print(lm.influence(fit))
++     ## row 57 should have hat = 1 and resid=0.
++     summary(influence.measures(fit))
++ }
+Loading required package: MASS
+$hat
+         1          2          3          4          5          6          7 
+0.09313909 0.07134091 0.19138434 0.08101081 0.24991662 0.10448752 0.12591828 
+         8          9         10         11         12         13         14 
+0.39348171 0.10008864 0.23497010 0.27831516 0.11499791 0.06684324 0.16777903 
+        15         16         17         18         19         20         21 
+0.10418769 0.19438856 0.22249600 0.18531791 0.42832529 0.13160780 0.11571055 
+        22         23         24         25         26         27         28 
+0.13542772 0.05989558 0.09115955 0.07274599 0.16979948 0.10059554 0.36420370 
+        29         30         31         32         33         34         35 
+0.05892084 0.12226683 0.14266192 0.06389391 0.07851639 0.16317503 0.10514036 
+        36         37         38         39         40         41         42 
+0.16620182 0.07407892 0.21406715 0.35800879 0.11660151 0.12115515 0.05846839 
+        43         44         45         46         47         48         49 
+0.07915006 0.05841339 0.07599254 0.14272015 0.10370606 0.22461698 0.07423925 
+        50         51         52         53         54         55         56 
+0.16054084 0.10007740 0.22613089 0.05679789 0.05802486 0.07274599 0.16620182 
+        57         58         59         60         61         62         63 
+1.00000000 0.16034032 0.14337335 0.11805892 0.13059078 0.05892084 0.10869261 
+        64         65         66         67         68         69         70 
+0.07024346 0.07721617 0.25915706 0.08887161 0.06631974 0.10330515 0.19438856 
+        71         72         73         74         75         76         77 
+0.12591828 0.21538400 0.05645115 0.08933216 0.16777903 0.07190036 0.12435356 
+        78         79         80         81         82         83         84 
+0.06735745 0.06233173 0.40499233 0.20574068 0.20315406 0.35602282 0.08812076 
+        85         86         87         88         89         90         91 
+0.13555308 0.09482733 0.24869622 0.06728598 0.57312772 0.08142621 0.15694445 
+        92         93 
+0.15864447 0.57312772 
+
+$coefficients
+     (Intercept)        Weight    Cylinders4   Cylinders5   Cylinders6
+1  -0.8045874665  2.867170e-04 -3.820998e-03 -0.121186522 -0.085652499
+2  -0.1624020957  7.405395e-05 -3.377846e-02 -0.058135639  0.032561909
+3   0.0730227014 -1.000408e-04  2.635594e-02 -0.038987943 -0.136284069
+4   0.0154995743  8.165607e-06  5.679643e-03  0.005807148  0.050432610
+5   2.0624972203 -5.727657e-04  4.651265e-01  1.314202802  1.689003061
+6   0.1889725900 -8.408128e-05  3.552355e-02 -0.042386516 -0.038483733
+7   0.0288527501 -1.891425e-05  4.221544e-03  0.012091377  0.008077810
+8  -0.9237858418  3.777463e-06 -2.504289e-01 -0.282474268 -0.778087752
+9   0.0027522480  9.783189e-05  2.129655e-02 -0.007988299  0.014432116
+10  0.9903462340 -5.169747e-04  1.630209e-01  0.294911151  0.129970424
+11 -0.5182963206  1.916075e-04 -1.215727e-01 -0.226050823 -0.161523754
+12 -0.6387428727  2.494952e-04 -1.008869e-01 -0.179703222 -0.143884548
+13 -0.3568385025  7.917221e-05 -2.534541e-02 -0.028384831 -0.029395607
+14 -0.0077820700 -4.699458e-06 -1.266873e-03  0.041173344  0.053631137
+15 -0.2615585508  1.297214e-04 -5.490059e-02 -0.275540505 -0.222909574
+16 -0.0195241852  2.061693e-04  6.572061e-02  0.294616782  0.074266087
+17  0.0965040227 -1.534149e-04  1.527511e-02 -0.028420127 -0.112348604
+18  0.0048862795 -1.111273e-06  1.332650e-03  0.001477077  0.001007189
+19 -0.1837125526  1.943923e-04 -1.515756e-02 -0.122275191  0.014588114
+20  0.0080448668 -3.212441e-05 -2.747115e-03  0.002147238 -0.048260808
+21  0.3062320767 -7.003532e-05  1.382568e-01  0.212411378  0.364192354
+22  0.0834715351 -7.391740e-05  1.122255e-02  0.030230238 -0.037744856
+23 -0.0076656309  1.396550e-05 -4.020753e-02 -0.044659212 -0.050554976
+24 -1.5070278126  3.723597e-04  1.647077e-02 -0.161486560 -0.278755415
+25 -0.0239986724  1.966635e-05 -2.200355e-02 -0.039815491 -0.051838322
+26 -0.2726502980  7.668984e-05 -7.104259e-02 -0.070135093 -0.138776999
+27 -0.0237099021 -1.906594e-05 -1.449196e-02 -0.165127041 -0.182407191
+28  0.5989984194 -3.350192e-04  8.982947e-02  0.072939768  0.051948750
+29  0.0049978357  1.024575e-05 -4.596944e-02 -0.048846124 -0.057195412
+30 -0.0420784682  4.604021e-06 -9.761996e-03 -0.018154729 -0.051613812
+31 -0.1226019720  5.936642e-05 -4.859332e-02 -0.071029678 -0.070396498
+32 -1.2891791826  3.470986e-04  1.870320e-01  0.029725520  0.047497829
+33  0.5677503929 -2.038892e-04  6.741942e-02  0.117380014  0.074644216
+34 -0.0732129453  3.754795e-05 -1.228743e-02 -0.110181891 -0.113812479
+35  0.0194920033 -7.575835e-06  5.134183e-03  0.017360915  0.015396275
+36  1.6888356455 -4.377455e-04  4.524306e-01  0.411034679  0.902823919
+37 -0.4890085420  1.725038e-04 -1.049924e-01 -0.186804182 -0.420107392
+38 -0.0082739419 -1.137356e-04 -2.907676e-02  0.013409601 -0.082572165
+39 -1.0909018362  1.064695e-04  8.658188e-01  0.866130219  0.806474055
+40 -0.6733060595  1.783564e-04 -1.305062e-01  0.065871030 -0.125533828
+41  0.3690425668 -1.245558e-04  9.024714e-02  0.216243273  0.228933588
+42  0.6432124241 -7.951017e-05 -7.008503e-01 -0.653531527 -0.847103140
+43  0.2616446485 -1.975002e-04  9.041771e-02  0.187584888  0.139640344
+44  0.0454749520 -4.284837e-06 -5.453546e-02 -0.051589176 -0.066116786
+45 -2.2631327197  7.379870e-04  1.070445e-01 -0.204329361 -0.128262892
+46 -0.0612084384  2.238252e-05 -1.234131e-02 -0.011911444 -0.017360476
+47  0.8600843682 -2.923003e-04  1.777695e-01 -0.255446144 -0.114886957
+48  0.1775813222 -1.196361e-04  2.413830e-02  0.077055159 -0.014203507
+49 -0.1424954874  9.842541e-05 -2.377345e-02 -0.051500781  0.113004619
+50  0.2613474511 -1.665525e-05  8.367041e-02  0.117064766  0.300913215
+51 -0.5457545031  1.270106e-04 -1.351808e-01 -0.192894338 -0.176826828
+52  0.3111798506 -2.896481e-04  2.816237e-02  0.136852358 -0.007250608
+53  0.0297317368  1.296449e-05 -6.708602e-02 -0.069529496 -0.075630367
+54  0.0989545407 -1.357243e-05 -3.683573e-02 -0.028339562 -0.025145841
+55  0.1644148644 -1.347342e-04  1.507463e-01  0.272775865  0.355144259
+56 -1.0973102505  2.844224e-04 -2.939639e-01 -0.267067176 -0.586604116
+57  0.0000000000  0.000000e+00  0.000000e+00  0.000000000  0.000000000
+58  1.1181936467 -1.814925e-04  1.820092e-01  0.230407448  0.281788680
+59 -0.1289781075  2.595372e-05 -3.776833e-02 -0.058580136 -0.126069473
+60  0.4827651281 -1.458463e-04  9.396412e-02 -0.005593267  0.099263965
+61 -0.1929691299  1.326052e-04 -4.434766e-02 -0.106219857 -0.124334762
+62  0.0049978357  1.024575e-05 -4.596944e-02 -0.048846124 -0.057195412
+63 -0.3935296223  2.040809e-04 -7.524962e-02 -0.146355742 -0.019064641
+64  0.4603333737 -1.617410e-04 -5.546499e-02  0.010390154 -0.035282319
+65  0.3126987326 -1.960180e-04  1.168042e-01  0.223520593  0.218762880
+66 -0.1920212451  8.908026e-05 -4.283525e-02 -0.117606580 -0.033622259
+67 -0.8795466532  3.620658e-04 -1.815067e-01 -0.332837224 -0.502419092
+68 -0.0331296115 -3.321728e-05  2.875172e-02  0.062289524  0.061442068
+69 -0.1135318718  5.034205e-05 -2.126782e-02  0.029790905  0.026695041
+70 -0.0195241852  2.061693e-04  6.572061e-02  0.294616782  0.074266087
+71  0.0288527501 -1.891425e-05  4.221544e-03  0.012091377  0.008077810
+72 -0.2291016407  5.487125e-05 -6.613686e-02 -0.098852165 -0.051549477
+73  0.1700259290  7.628143e-06 -2.032259e-01 -0.198173180 -0.224109893
+74  0.5968477257 -1.921799e-04  9.263890e-02  0.150229991  0.156628646
+75 -0.0077820700 -4.699458e-06 -1.266873e-03  0.041173344  0.053631137
+76 -0.0194397858  2.531489e-05 -1.458165e-07 -0.009800589 -0.035894083
+77  0.0134907894 -1.033768e-05  1.558189e-03  0.006006815  0.003684406
+78  0.9077181399 -1.582828e-04  7.745093e-02  0.077205972  0.141055974
+79  0.2164417917 -3.971900e-05 -4.607492e-02 -0.024531503 -0.012649902
+80  0.9960541035  4.247826e-06 -7.839184e-01 -0.702085425 -0.798219133
+81  0.0007910652 -3.072859e-07  8.023023e-04  0.001256898  0.000758261
+82 -0.6435072296 -7.492359e-05 -1.735778e-01 -0.355994454 -0.119101997
+83  0.0611662403  1.159480e-05 -1.119647e-01 -0.121657673 -0.117008905
+84 -0.5769304812  3.253972e-04 -3.191547e-01 -0.437477397 -0.423951235
+85  1.0837148496 -4.307667e-04  2.461529e-01  0.572974426  0.542167217
+86  0.0083937926 -1.990781e-06  8.287336e-04 -0.045561514 -0.037803655
+87 -0.1545228365  9.611522e-05 -2.127841e-02 -0.171230178 -0.137086764
+88  0.2463906019 -2.892912e-04  3.477162e-01  0.438821017  0.357674795
+89 -0.6025253492  2.525728e-04 -1.370524e-01  1.172830299 -0.211660377
+90 -0.2820706112  3.173532e-04 -1.101740e-01 -0.261059565 -0.118916876
+91  1.4258537942 -6.533290e-04  2.630332e-01  0.890368685  1.145291551
+92  0.4060610493 -2.135821e-06  5.871214e-02  0.048538680  0.094105407
+93 -0.6025253492  2.525728e-04 -1.370524e-01 -1.878927238 -0.211660377
+      Cylinders8 Cylindersrotary     TypeLarge   TypeMidsize     TypeSmall
+1  -0.1124657876   -0.0651605878 -5.802887e-02 -0.0555471473  0.2528314269
+2   0.0053388461    0.0047782307 -6.569650e-02  0.0350485943  0.0252041164
+3  -0.1679122402    0.0274285066  2.008834e-01  0.1844628894  0.0674315814
+4   0.0638568606   -0.0003503783 -9.564934e-03  0.0149006180 -0.0087430921
+5   2.5938169745    0.8582948229 -2.399208e-01 -0.5792472372 -0.5285037464
+6  -0.0288706903    0.0299679804  1.045061e-01  0.1382939842 -0.0401298599
+7  -0.0312731330    0.0246836012  5.564636e-02  0.0035711688 -0.0041697238
+8  -1.8340782811    0.0716558396  2.304687e-01  0.0032843291  0.3376172236
+9   0.1847255512   -0.2306585282  1.114501e-01 -0.0803119855 -0.0298407737
+10  1.1851421958    0.8654297998  4.409688e-01  0.0708134508 -0.2042104727
+11  0.3843948456    0.1406061718 -3.010002e-01  0.0273414412  0.0837774246
+12 -0.1597129689   -0.1864801897  6.450603e-02  0.0597885728  0.2076322416
+13 -0.0586771076   -0.0646598581  1.706543e-01  0.1735883622  0.2361560351
+14 -0.0028726461   -0.0993484475 -4.198827e-02 -0.0328695117  0.0082498333
+15 -0.2068476225   -0.1445082313  1.225231e-01  0.1673204751  0.0312950406
+16  0.2059222894   -0.1200505921  8.218720e-02  0.0002209106  0.0173235673
+17 -0.3504899068    0.3446336843 -9.851809e-02  0.0158568288  0.0633581211
+18  0.0120965218   -0.0020492335  6.525536e-03  0.0002012250 -0.0008929206
+19 -0.0539420147   -0.1374351833  1.576257e-01  0.0201581755 -0.0041475049
+20 -0.0070837751    0.0317471863 -1.531881e-01  0.0051020166  0.0109305108
+21  0.5602808822   -0.0939068584  2.916889e-01  0.2079842274  0.0719036134
+22  0.0126364571    0.0642138666 -1.824736e-01  0.0127807493  0.0009786882
+23 -0.0590906405   -0.0349751702 -5.567345e-03 -0.0025732617 -0.0225313251
+24 -0.5271125509    0.1602771709 -1.660813e-01 -0.0765130701  0.5564898293
+25 -0.0681411476    0.0031024272 -6.907299e-02 -0.0610995775 -0.0429840790
+26 -0.1735454433   -0.0706705707 -1.739837e-02 -0.0112946369  0.0452224232
+27 -0.2193360665    0.0008241219  1.092126e-01  0.1738553921  0.0047428510
+28  0.0830814596    0.1950801461  1.354514e-01  0.1170474131 -0.1299135184
+29 -0.0675817916   -0.0375435877 -5.699613e-03 -0.0018561352 -0.0297646003
+30  0.0331484828   -0.0113220048 -1.952427e-01 -0.0016275866  0.0158334658
+31 -0.0814880252   -0.0547203065 -1.397635e-02 -0.0112820160  0.0077466973
+32 -0.0305111798    0.1574388970 -9.111875e-02 -0.0694657561  0.5501978390
+33  0.0753789673    0.1710615320 -1.462954e-01 -0.1345579924 -0.2507910840
+34 -0.1921551895   -0.4405196059  1.130618e-01  0.0550822506  0.0142852838
+35  0.0139101694    0.0258169696 -7.341174e-03 -0.0040191802 -0.0014323289
+36  1.1438837591    0.4210260247  1.057460e-01  0.0605827133 -0.2795146003
+37 -0.4363174667   -0.2224017015  7.276605e-02 -0.1577658535  0.1089681503
+38 -0.5706613637    0.2470506317 -2.448941e-01  0.0200009992  0.0295593111
+39  0.7628832511    0.8929585543 -2.839854e-02 -0.0150058474  0.0623044167
+40 -0.4269483338    0.6476956209 -3.978519e-01 -0.2049708931  0.2326834589
+41  0.2669874618    0.2216701222 -2.713083e-02 -0.0189484276 -0.0596156237
+42 -1.0313086539   -0.4717065449 -5.947438e-02  0.0164415576 -0.6187804909
+43  0.1137733941    0.1389371633  1.866498e-01  0.1973976445  0.1051395744
+44 -0.0802417862   -0.0375174905 -4.849177e-03  0.0009183418 -0.0468179606
+45 -0.2250554681   -0.0236009451 -1.620885e-01 -0.1443281442  0.7996413905
+46 -0.0298791385    0.0117333041 -1.717830e-02 -0.0101575259  0.0149621883
+47  0.0567064443   -0.0207407914  5.592524e-01  0.6766291378 -0.2163209845
+48 -0.4128397633    0.1262494802  1.555317e-01 -0.0336491273 -0.0274472024
+49  0.1227716704   -0.0185633712 -7.120767e-02  0.0510945769  0.0093727142
+50  0.2753274562   -0.2227910135  1.638844e-02  0.0838038858 -0.0528014684
+51 -0.3972662514    0.1137542901 -1.850157e-01  0.0563752358  0.1303601054
+52 -0.6043582748    0.4122452714 -2.755341e-01  0.0529148176 -0.0181328373
+53 -0.0823840936   -0.0629773704 -4.430653e-03 -0.0021608372 -0.0531359038
+54 -0.0150792891   -0.0425585103  6.777594e-03  0.0030583353 -0.0591176911
+55  0.4668348880   -0.0212547234  4.732189e-01  0.4185931034  0.2944838529
+56 -0.7432312183   -0.2735589895 -6.870778e-02 -0.0393632338  0.1816128390
+57  0.0000000000    0.0000000000  0.000000e+00  0.0000000000  0.0000000000
+58  0.1945880055   -0.5587521455 -2.266734e-01 -0.3613221042 -0.5509923750
+59 -0.0900361434    0.0807855154 -8.877433e-04 -0.0437027380  0.0203231292
+60  0.2757970992   -0.3494459094  2.397384e-01  0.1279587545 -0.1512732820
+61  0.1520532649    0.0495057257  6.424741e-02 -0.1224729549 -0.0152320811
+62 -0.0675817916   -0.0375435877 -5.699613e-03 -0.0018561352 -0.0297646003
+63 -0.0124737319   -0.1163136988 -6.666660e-02  0.0045716898  0.0573650532
+64 -0.0495762572    0.0108982197  2.072756e-02  0.0311491661 -0.1744779053
+65  0.2450971786    0.1014330960  2.438442e-01  0.2322886433  0.1145616875
+66 -0.0137450945   -0.0933626778 -1.455145e-02 -0.0219051447  0.0210761620
+67 -0.5159902331   -0.3502832221  3.148977e-02 -0.1793660556  0.1719234355
+68  0.0601331294    0.0072908696  1.448763e-01  0.1417048477  0.1267967674
+69  0.0205395611   -0.0166707782 -6.624376e-02 -0.0877281099  0.0244232730
+70  0.2059222894   -0.1200505921  8.218720e-02  0.0002209106  0.0173235673
+71 -0.0312731330    0.0246836012  5.564636e-02  0.0035711688 -0.0041697238
+72 -0.0698149636   -0.0077907772 -5.798951e-02 -0.0404309294  0.0291804508
+73 -0.2461674520   -0.1792254003 -8.946335e-03 -0.0005023396 -0.1849210773
+74  0.2142676665    0.1219475973 -7.874021e-02 -0.0918428593 -0.2301439149
+75 -0.0028726461   -0.0993484475 -4.198827e-02 -0.0328695117  0.0082498333
+76  0.0016544356   -0.0670470508  3.751826e-02 -0.0342084452 -0.0003680573
+77 -0.0256147452    0.0156400843  4.086022e-02  0.0019511571 -0.0017546993
+78  0.2825081053    0.0902228220 -3.983641e-01 -0.4346234712 -0.6043441371
+79  0.0159835202   -0.0629476770  1.898330e-02  0.0085089202 -0.1077243741
+80 -0.8150304378   -0.7413746212  5.446384e-03  0.0101047426  0.0136845038
+81  0.0006315229    0.0011374665  5.007436e-05  0.0001020962  0.0003802979
+82 -0.1389697069   -0.2829444232  2.798773e-01  0.2855962270  0.2832007760
+83 -0.1199642681   -0.1139380335 -3.874836e-03 -0.0029066043  0.0054537971
+84 -0.4681723050   -0.3692610821 -6.915058e-02 -0.0611471408 -0.0286774399
+85  0.5868282269    0.6138842050 -4.618245e-02 -0.0093232438 -0.1687348360
+86 -0.0335385306   -0.0121341311  3.955944e-02  0.0530269621 -0.0049516790
+87 -0.1199323644   -0.0903358174  7.132870e-02  0.0441402079  0.0305846988
+88  0.3030076280    0.4897405972  2.110757e-02  0.0520618321  0.1828859889
+89 -0.1751107919   -0.2847075342 -1.578805e-02 -0.1009325245  0.0816716468
+90  0.0055450581   -0.2720115784 -2.803760e-01 -0.3305994053 -0.2254900027
+91  1.1629492149    0.1111057651 -3.399076e-01 -0.2295981894 -0.3032814817
+92  0.0465882510   -0.3782722178 -1.398749e-01 -0.2168631833 -0.2674612094
+93 -0.1751107919   -0.2847075342 -1.578805e-02 -0.1009325245  0.0816716468
+      TypeSporty       TypeVan    EngineSize DriveTrainFront DriveTrainRear
+1   0.0588316568 -0.1244451013 -0.0384310410    0.0770280182   0.0308309135
+2  -0.0008119071 -0.0929376586 -0.0169359479    0.0241959908  -0.0339336755
+3   0.1122278579  0.2291762722  0.0640824206   -0.0374592418  -0.0063680596
+4  -0.0076600464 -0.0180881612 -0.0224320460    0.0058289643  -0.0019669209
+5  -0.3020816254 -0.2058571702 -0.3622619462   -0.0332177591  -0.4896133013
+6   0.0174438088  0.1203009860  0.0149164277   -0.0095259785  -0.0123604155
+7   0.0006330938  0.0018693765  0.0107797571   -0.0019362039  -0.0134263631
+8   0.0888020681 -0.0981347691  0.5308561510   -0.0605205490   0.0622791836
+9   0.0084422208  0.0641063586 -0.1438112041    0.0132369251   0.1231952988
+10 -0.0453797315  0.1992829759  0.2094701125   -0.0711059699  -0.5860656544
+11  0.0248173290 -0.1726730349  0.0307556826    0.0513955297  -0.2418132557
+12  0.1493980797 -0.0158201826 -0.0533221135    0.0282944654   0.0228550025
+13  0.1994088698  0.1348657122 -0.0134379474   -0.0212986235   0.0103552709
+14  0.0454481137 -0.0247086389 -0.0005370853    0.0136434594   0.0759855468
+15  0.0737344548  0.0705529631 -0.0350342542    0.0366749177   0.0023334058
+16 -0.0098606591 -0.6464182823 -0.1570311735   -0.3099924798  -0.2432841941
+17 -0.0121432263  0.2179211370  0.2426878264   -0.2268810389  -0.3003526507
+18 -0.0012645247  0.0023497958 -0.0011648194   -0.0007816983   0.0031588791
+19 -0.0601680504 -0.0271883474 -0.1686877849    0.0224897952   0.0378443211
+20 -0.0039938145  0.0181201352  0.0439331331   -0.0137111692   0.0000888560
+21  0.1294650212  0.2558709492 -0.1869157355   -0.0403252374   0.1039524785
+22 -0.0110221099  0.0377992374  0.0616023114   -0.0236300001  -0.0027554274
+23  0.0036748958 -0.0109040520  0.0047056340   -0.0027760031  -0.0075815300
+24  0.1217218160 -0.2001221968  0.1453646196    0.1092627610  -0.0419265979
+25 -0.0473791084 -0.0661671214  0.0174623161    0.0138168014  -0.0113597498
+26  0.0343625250 -0.1263789642  0.0185185704    0.0899765460   0.0628671160
+27  0.0521314845  0.1121866729  0.0452354145    0.0036741989  -0.0328558430
+28 -0.1357733641  0.3598998278  0.0635427842    0.1408150632   0.2289697825
+29  0.0032709010 -0.0102098982  0.0072097840   -0.0046929662  -0.0097593036
+30 -0.0031503060  0.0096427335  0.0191501496   -0.0072782279   0.0183269440
+31  0.0124966732 -0.0309659093 -0.0029315971    0.0080704811  -0.0032291174
+32  0.0842166724 -0.1426179532 -0.0047149618    0.1266243473   0.0488025203
+33 -0.2007361705 -0.0700394295  0.0650345678   -0.0076553978  -0.0323613407
+34  0.1985477388  0.1317049456 -0.0379303148    0.0476640032   0.2557928936
+35 -0.0241684660 -0.0063797023  0.0015970165   -0.0082742198  -0.0012845847
+36 -0.2213615898  0.8328871713 -0.1490208173   -0.6045260895  -0.4274997860
+37  0.0832688361  0.0526955171  0.0412992657    0.0057199017   0.0750539814
+38  0.0381452581 -0.0364723376  0.1718996509   -0.0083216767  -0.1711269654
+39  0.0126715370 -0.1319040895  0.0157246728   -0.1238552960  -0.1433995801
+40 -0.6152814178 -0.4391609078  0.1925710081   -0.1848270831  -0.1257923223
+41 -0.2136693396 -0.0102756220 -0.0187378955   -0.0760535877   0.0079050473
+42  0.0115250441 -0.0626784733  0.1853115582   -0.1341403576  -0.1937539975
+43  0.1223234350  0.2339351557  0.0477222207   -0.0703208756  -0.0131810299
+44  0.0012062101 -0.0056275300  0.0138113326   -0.0099328213  -0.0147138005
+45  0.1593529911 -0.3154119193 -0.0734215883    0.2186169305   0.0863564493
+46 -0.0178306744 -0.0229394143  0.0050172709   -0.0032569785  -0.0040140299
+47  0.0870826598  0.5764940782 -0.0661850124   -0.0160346100   0.0058237374
+48  0.0351028466  0.0519540796  0.0730561863   -0.0117874040  -0.0875600533
+49 -0.0118615751 -0.1170935139 -0.0664392527    0.0351943834  -0.0256500862
+50 -0.0881348868  0.0099122018 -0.1427997802   -0.0154102445   0.2834351261
+51  0.0341259919 -0.1980471170  0.1301931475    0.0329557292  -0.1390726822
+52  0.0198930304  0.0233944834  0.2437424291   -0.0398986993  -0.2216521963
+53  0.0026357380 -0.0124859669  0.0032736381   -0.0076038099  -0.0111780184
+54 -0.0052948316  0.0043390590 -0.0062558306   -0.0100922249  -0.0036764450
+55  0.3245941919  0.4533108376 -0.1196342985   -0.0946588832   0.0778256270
+56  0.1438282891 -0.5411631576  0.0968253310    0.3927869929   0.2777652749
+57  0.0000000000  0.0000000000  0.0000000000    0.0000000000   0.0000000000
+58 -0.5770947483 -0.1184054962 -0.1740228604   -0.0285545091   0.7693037902
+59  0.0412280879 -0.0075198458  0.0438882586    0.0121450418  -0.1252262379
+60  0.3533541160  0.2760694598 -0.1036620689    0.1001975219   0.0703124944
+61  0.0813382295 -0.0073739718 -0.0680618001    0.0531536577  -0.2332865147
+62  0.0032709010 -0.0102098982  0.0072097840   -0.0046929662  -0.0097593036
+63  0.0180571278 -0.1370722536 -0.0731027259    0.0500357603  -0.0039945662
+64 -0.0280219408  0.0596353403  0.0485330769   -0.0523499513  -0.0380625252
+65  0.1445564205  0.2773146947 -0.0044527086   -0.0739571632   0.0145722623
+66  0.0147554787  0.0493296285 -0.0390174812    0.0705967740   0.0634638159
+67  0.1109162662 -0.0476703926 -0.0101172134    0.0463473545   0.0838855959
+68  0.1228600624  0.1417644316 -0.0078297996   -0.0320462976   0.0093214403
+69 -0.0117468402 -0.0753433644 -0.0087753330    0.0054190284   0.0076171833
+70 -0.0098606591 -0.6464182823 -0.1570311735   -0.3099924798  -0.2432841941
+71  0.0006330938  0.0018693765  0.0107797571   -0.0019362039  -0.0134263631
+72 -0.0675185509  0.0151499809 -0.0006299133    0.1444639061   0.1463776010
+73  0.0024427576 -0.0249870886  0.0183259078   -0.0314868930  -0.0391504393
+74 -0.1684498617 -0.0211344382  0.0051450670   -0.0108665177  -0.0006733384
+75  0.0454481137 -0.0247086389 -0.0005370853    0.0136434594   0.0759855468
+76  0.0087561990  0.0294347022 -0.0243866906    0.0001777584   0.0361467380
+77  0.0011372964 -0.0003003688  0.0071919929   -0.0007018973  -0.0096901840
+78 -0.4998716808 -0.3342094594 -0.0381922269    0.0632770184   0.0098092574
+79 -0.0142230621  0.0179025413 -0.0175009156   -0.0191510694  -0.0015333501
+80 -0.0247650968 -0.1469466395  0.0130804686   -0.2728976699  -0.2592164502
+81 -0.0001483293 -0.0004719821  0.0001778419   -0.0011917350  -0.0011218042
+82  0.3679140434  0.7422456267  0.0018768183    0.7508948030   0.7730015531
+83  0.0043841507  0.0024787823  0.0002320259    0.0183666140   0.0145190633
+84  0.0640691059 -0.1711824885 -0.0312673044    0.0349340607  -0.0192550330
+85 -0.4756750417  0.0452676883  0.0298336291   -0.1959168864  -0.0136381614
+86  0.0135669048  0.0363260497 -0.0012178976    0.0026468538  -0.0024799878
+87  0.0376963721  0.1229412256 -0.0225447495   -0.0488081493  -0.0417831082
+88 -0.0360445039  0.1399780291  0.1137882315   -0.0178410448  -0.0105132722
+89  0.0609817970  0.1720567027 -0.0724262979    0.1875627215   0.1892070773
+90 -0.2273870236 -0.3709143259 -0.1506696521    0.1197628934   0.0586023325
+91  0.4164006880 -0.1004183249  0.0323442452    0.1231599812  -0.1040204060
+92 -0.2996222296 -0.1090340253 -0.1173564279    0.0035664196   0.4305799574
+93  0.0609817970  0.1720567027 -0.0724262979    0.1875627215   0.1892070773
+
+$sigma
+       1        2        3        4        5        6        7        8 
+3.591432 3.594883 3.598562 3.600558 3.522694 3.598166 3.600799 3.582363 
+       9       10       11       12       13       14       15       16 
+3.590729 3.528259 3.589350 3.596037 3.584177 3.600028 3.593696 3.580547 
+      17       18       19       20       21       22       23       24 
+3.590040 3.601220 3.599441 3.598460 3.584656 3.597078 3.600671 3.553725 
+      25       26       27       28       29       30       31       32 
+3.599688 3.599193 3.595214 3.598433 3.600406 3.596419 3.601044 3.518649 
+      33       34       35       36       37       38       39       40 
+3.587115 3.592663 3.601139 3.501762 3.560763 3.588001 3.592963 3.514670 
+      41       42       43       44       45       46       47       48 
+3.595497 3.334292 3.589110 3.599718 3.471882 3.601133 3.521852 3.594122 
+      49       50       51       52       53       54       55       56 
+3.588734 3.589710 3.583459 3.581755 3.599157 3.599895 3.528075 3.559578 
+      57       58       59       60       61       62       63       64 
+3.601231 3.523963 3.598459 3.571771 3.582319 3.600406 3.596626 3.592960 
+      65       66       67       68       69       70       71       72 
+3.583325 3.600828 3.569987 3.592482 3.599979 3.580547 3.600799 3.599768 
+      73       74       75       76       77       78       79       80 
+3.579302 3.593475 3.600028 3.598895 3.600991 3.495965 3.597794 3.594229 
+      81       82       83       84       85       86       87       88 
+3.601231 3.563077 3.601124 3.585986 3.575773 3.600658 3.599786 3.563954 
+      89       90       91       92       93 
+3.594056 3.566216 3.484273 3.578056 3.594056 
+
+$wt.res
+            1             2             3             4             5 
+  2.218439708   1.807326787  -1.093991760   0.585986462  -5.684589270 
+            6             7             8             9            10 
+  1.233522386   0.457950438   2.515990067  -2.287803728   5.535960625 
+           11            12            13            14            15 
+  2.178905651  -1.596117514  -2.967297860   0.745175851   1.933882824 
+           16            17            18            19            20 
+ -3.035594591   2.195009903   0.072527577  -0.753360641  -1.155059621 
+           21            22            23            24            25 
+ -2.847828869  -1.410703414  -0.540252474   4.877197398   0.890715640 
+           26            27            28            29            30 
+ -0.968642103   1.731771561  -0.993218102  -0.656454198  -1.529950693 
+           31            32            33            34            35 
+ -0.298424469   6.510112647   2.683267748   1.992954455  -0.214079423 
+           36            37            38            39            40 
+  6.735053083  -4.545792145  -2.399183444  -1.714795692  -6.472930954 
+           41            42            43            44            45 
+ -1.671169308 -11.585332803  -2.485888781  -0.888857647   8.068071025 
+           46            47            48            49            50 
+ -0.216046323   6.246829383  -1.747619081   2.530823032   2.314106628 
+           51            52            53            54            55 
+  2.974532942  -2.887230686  -1.041442666  -0.835536301  -6.102291353 
+           56            57            58            59            60 
+ -4.376058028   0.000000000   5.966190371  -1.147443467   3.788198306 
+           61            62            63            64            65 
+ -3.015807719  -0.656454198   1.508247858  -2.064017840  -3.023462268 
+           66            67            68            69            70 
+  0.407243898  -3.964783523  -2.127186213  -0.789242889  -3.035594591 
+           71            72            73            74            75 
+  0.457950438  -0.797900840  -3.382338495   1.978150290   0.745175851 
+           76            77            78            79            80 
+ -1.096455031   0.341748714   7.324729228  -1.336726492   1.519313995 
+           81            82            83            84            85 
+  0.005901292  -4.095330927   0.195481697  -2.773676266  -3.487375439 
+           86            87            88            89            90 
+  0.536312040   0.775871729   4.379791779   1.302710701   4.213228761 
+           91            92            93 
+  7.334576566   3.283113507  -1.302710701 
+
+Potentially influential observations of
+	 lm(formula = 1000/MPG.city ~ Weight + Cylinders + Type + EngineSize +      DriveTrain, data = Cars93) :
+
+   dfb.1_ dfb.Wght dfb.Cyl4 dfb.Cyl5 dfb.Cyl6 dfb.Cyl8 dfb.Cyln dfb.TypL
+8  -0.16   0.00    -0.10    -0.07    -0.24    -0.44     0.01     0.12   
+19 -0.03   0.09    -0.01    -0.03     0.00    -0.01    -0.03     0.08   
+28  0.11  -0.15     0.04     0.02     0.02     0.02     0.04     0.07   
+39 -0.19   0.05     0.34     0.21     0.25     0.18     0.18    -0.01   
+42  0.12  -0.04    -0.30    -0.17    -0.28    -0.26    -0.11    -0.03   
+57  0.00   0.00     0.00     0.00     0.00     0.00     0.00     0.00   
+66 -0.03   0.04    -0.02    -0.03    -0.01     0.00    -0.02    -0.01   
+80  0.18   0.00    -0.31    -0.17    -0.24    -0.19    -0.15     0.00   
+83  0.01   0.01    -0.04    -0.03    -0.04    -0.03    -0.02     0.00   
+87 -0.03   0.04    -0.01    -0.04    -0.04    -0.03    -0.02     0.04   
+89 -0.11   0.11    -0.05     0.28    -0.06    -0.04    -0.06    -0.01   
+93 -0.11   0.11    -0.05    -0.45    -0.06    -0.04    -0.06    -0.01   
+   dfb.TypM dfb.TypSm dfb.TypSp dfb.TypV dfb.EngS dfb.DrTF dfb.DrTR dffit
+8   0.00     0.21      0.06     -0.04     0.47    -0.04     0.03     0.73
+19  0.01     0.00     -0.04     -0.01    -0.15     0.01     0.02    -0.24
+28  0.08    -0.08     -0.09      0.16     0.06     0.09     0.12    -0.26
+39 -0.01     0.04      0.01     -0.06     0.01    -0.08    -0.08    -0.44
+42  0.01    -0.42      0.01     -0.03     0.18    -0.10    -0.11    -0.89
+57  0.00     0.00      0.00      0.00     0.00     0.00     0.00      NaN
+66 -0.02     0.01      0.01      0.02    -0.03     0.05     0.03     0.08
+80  0.01     0.01     -0.02     -0.07     0.01    -0.18    -0.14     0.45
+83  0.00     0.00      0.00      0.00     0.00     0.01     0.01     0.05
+87  0.03     0.02      0.03      0.06    -0.02    -0.03    -0.02     0.14
+89 -0.07     0.05      0.04      0.08    -0.06     0.12     0.10     0.64
+93 -0.07     0.05      0.04      0.08    -0.06     0.12     0.10    -0.64
+   cov.r   cook.d hat    
+8   1.71_*  0.04   0.39  
+19  2.09_*  0.00   0.43  
+28  1.86_*  0.00   0.36  
+39  1.76_*  0.01   0.36  
+42  0.13_*  0.05   0.06  
+57   NaN     NaN   1.00_*
+66  1.63_*  0.00   0.26  
+80  1.92_*  0.01   0.40  
+83  1.88_*  0.00   0.36  
+87  1.60_*  0.00   0.25  
+89  2.68_*  0.03   0.57_*
+93  2.68_*  0.03   0.57_*
+> ## only last two cols in row 57 should be influential
+> 
+> 
+> ## PR#6640  Zero weights in plot.lm
+> if(require(MASS)) {
++     fm1 <- lm(time~dist, data=hills, weights=c(0,0,rep(1,33)))
++     plot(fm1)
++ }
+> ## gave warnings in 1.8.1
+> 
+> 
+> ## PR#7829 model.tables & replications
+> if(require(MASS)) {
++     oats.aov <- aov(Y ~ B + V + N + V:N, data=oats[-1,])
++     model.tables(oats.aov, "means", cterms=c("N", "V:N"))
++ }
+Tables of means
+Grand mean
+         
+103.8732 
+
+ N 
+    0.0cwt 0.2cwt 0.4cwt 0.6cwt
+     78.74  98.51  113.8    123
+rep  17.00  18.00   18.0     18
+
+ V:N 
+             N
+V             0.0cwt 0.2cwt 0.4cwt 0.6cwt
+  Golden.rain  79.53  98.03 114.20 124.37
+  rep           6.00   6.00   6.00   6.00
+  Marvellous   86.20 108.03 116.70 126.37
+  rep           6.00   6.00   6.00   6.00
+  Victory      69.77  89.20 110.37 118.03
+  rep           5.00   6.00   6.00   6.00
+> ## wrong printed output in 2.1.0
+> 
+> 
+> ## drop1 on weighted lm() fits
+> if(require(MASS)) {
++     hills.lm <- lm(time ~ 0 + dist + climb, data=hills, weights=1/dist^2)
++     print(drop1(hills.lm))
++     print(stats:::drop1.default(hills.lm))
++     hills.lm2 <- lm(time/dist ~ 1 + I(climb/dist), data=hills)
++     drop1(hills.lm2)
++ }
+Single term deletions
+
+Model:
+time ~ 0 + dist + climb
+       Df Sum of Sq    RSS     AIC
+<none>              442.22  92.776
+dist    1    330.92 773.14 110.329
+climb   1      9.73 451.95  91.538
+Single term deletions
+
+Model:
+time ~ 0 + dist + climb
+       Df     AIC
+<none>     92.776
+dist    1 110.329
+climb   1  91.538
+Single term deletions
+
+Model:
+time/dist ~ 1 + I(climb/dist)
+              Df Sum of Sq    RSS    AIC
+<none>                     442.22 92.776
+I(climb/dist)  1    9.7331 451.95 91.538
+> ## quoted unweighted RSS etc in 2.2.1
+> 
+> 
+> ## tests of ISO C99 compliance (Windows fails without a workaround)
+> sprintf("%g", 123456789)
+[1] "1.23457e+08"
+> sprintf("%8g", 123456789)
+[1] "1.23457e+08"
+> sprintf("%9.7g", 123456789)
+[1] "1.234568e+08"
+> sprintf("%10.9g", 123456789)
+[1] " 123456789"
+> sprintf("%g", 12345.6789)
+[1] "12345.7"
+> sprintf("%10.9g", 12345.6789)
+[1] "12345.6789"
+> sprintf("%10.7g", 12345.6789)
+[1] "  12345.68"
+> sprintf("%.7g", 12345.6789)
+[1] "12345.68"
+> sprintf("%.5g", 12345.6789)
+[1] "12346"
+> sprintf("%.4g", 12345.6789)
+[1] "1.235e+04"
+> sprintf("%9.4g", 12345.6789)
+[1] "1.235e+04"
+> sprintf("%10.4g", 12345.6789)
+[1] " 1.235e+04"
+> ## Windows used e+008 etc prior to 2.3.0
+> 
+> 
+> ## weighted glm() fits
+> if(require(MASS)) {
++     hills.glm <- glm(time ~ 0 + dist + climb, data=hills, weights=1/dist^2)
++     print(AIC(hills.glm))
++     print(extractAIC(hills.glm))
++     print(drop1(hills.glm))
++     stats:::drop1.default(hills.glm)
++ }
+[1] 322.2318
+[1]   2.0000 322.2318
+Single term deletions
+
+Model:
+time ~ 0 + dist + climb
+       Df Deviance    AIC
+<none>      442.22 322.23
+dist    1   773.14 339.78
+climb   1   451.95 320.99
+Single term deletions
+
+Model:
+time ~ 0 + dist + climb
+       Df    AIC
+<none>    322.23
+dist    1 339.78
+climb   1 320.99
+> ## wrong AIC() and drop1 prior to 2.3.0.
+> 
+> ## calculating no of signif digits
+> print(1.001, digits=16)
+[1] 1.001
+> ## 2.4.1 gave  1.001000000000000
+> ## 2.5.0 errs on the side of caution.
+> 
+> 
+> ## as.matrix.data.frame with coercion
+> if(require("survival")) {
++     soa <- Surv(1:5, c(0, 0, 1, 0, 1))
++     df.soa <- data.frame(soa)
++     print(as.matrix(df.soa)) # numeric result
++     df.soac <- data.frame(soa, letters[1:5])
++     print(as.matrix(df.soac)) # character result
++     detach("package:survival", unload = TRUE)
++ }
+Loading required package: survival
+     soa.time soa.status
+[1,]        1          0
+[2,]        2          0
+[3,]        3          1
+[4,]        4          0
+[5,]        5          1
+     soa  letters.1.5.
+[1,] "1+" "a"         
+[2,] "2+" "b"         
+[3,] "3 " "c"         
+[4,] "4+" "d"         
+[5,] "5 " "e"         
+> ## failed in 2.8.1
+> 
+> ## wish of PR#13505
+> npk.aov <- aov(yield ~ block + N * P + K, npk)
+> foo <- proj(npk.aov)
+> cbind(npk, foo)
+   block N P K yield (Intercept)  block         N          P         K
+1      1 0 1 1  49.5      54.875 -0.850 -2.808333 -0.5916667 -1.991667
+2      1 1 1 0  62.8      54.875 -0.850  2.808333 -0.5916667  1.991667
+3      1 0 0 0  46.8      54.875 -0.850 -2.808333  0.5916667  1.991667
+4      1 1 0 1  57.0      54.875 -0.850  2.808333  0.5916667 -1.991667
+5      2 1 0 0  59.8      54.875  2.575  2.808333  0.5916667  1.991667
+6      2 1 1 1  58.5      54.875  2.575  2.808333 -0.5916667 -1.991667
+7      2 0 0 1  55.5      54.875  2.575 -2.808333  0.5916667 -1.991667
+8      2 0 1 0  56.0      54.875  2.575 -2.808333 -0.5916667  1.991667
+9      3 0 1 0  62.8      54.875  5.900 -2.808333 -0.5916667  1.991667
+10     3 1 1 1  55.8      54.875  5.900  2.808333 -0.5916667 -1.991667
+11     3 1 0 0  69.5      54.875  5.900  2.808333  0.5916667  1.991667
+12     3 0 0 1  55.0      54.875  5.900 -2.808333  0.5916667 -1.991667
+13     4 1 0 0  62.0      54.875 -4.750  2.808333  0.5916667  1.991667
+14     4 1 1 1  48.8      54.875 -4.750  2.808333 -0.5916667 -1.991667
+15     4 0 0 1  45.5      54.875 -4.750 -2.808333  0.5916667 -1.991667
+16     4 0 1 0  44.2      54.875 -4.750 -2.808333 -0.5916667  1.991667
+17     5 1 1 0  52.0      54.875 -4.350  2.808333 -0.5916667  1.991667
+18     5 0 0 0  51.5      54.875 -4.350 -2.808333  0.5916667  1.991667
+19     5 1 0 1  49.8      54.875 -4.350  2.808333  0.5916667 -1.991667
+20     5 0 1 1  48.8      54.875 -4.350 -2.808333 -0.5916667 -1.991667
+21     6 1 0 1  57.2      54.875  1.475  2.808333  0.5916667 -1.991667
+22     6 1 1 0  59.0      54.875  1.475  2.808333 -0.5916667  1.991667
+23     6 0 1 1  53.2      54.875  1.475 -2.808333 -0.5916667 -1.991667
+24     6 0 0 0  56.0      54.875  1.475 -2.808333  0.5916667  1.991667
+          N:P  Residuals
+1   0.9416667 -0.0750000
+2  -0.9416667  5.5083333
+3  -0.9416667 -6.0583333
+4   0.9416667  0.6250000
+5   0.9416667 -3.9833333
+6  -0.9416667  1.7666667
+7  -0.9416667  3.2000000
+8   0.9416667 -0.9833333
+9   0.9416667  2.4916667
+10 -0.9416667 -4.2583333
+11  0.9416667  2.3916667
+12 -0.9416667 -0.6250000
+13  0.9416667  5.5416667
+14 -0.9416667 -0.6083333
+15 -0.9416667  0.5250000
+16  0.9416667 -5.4583333
+17 -0.9416667 -1.7916667
+18 -0.9416667  2.1416667
+19  0.9416667 -3.0750000
+20  0.9416667  2.7250000
+21  0.9416667 -1.5000000
+22 -0.9416667 -0.6166667
+23  0.9416667  1.3000000
+24 -0.9416667  0.8166667
+> ## failed in R < 2.10.0
+> 
+> 
+> if(suppressMessages(require("Matrix"))) {
++   print(cS. <- contr.SAS(5, sparse = TRUE))
++   stopifnot(all(contr.SAS(5) == cS.),
++ 	    all(contr.helmert(5, sparse = TRUE) == contr.helmert(5)))
++ 
++   x1 <- x2 <- c('a','b','a','b','c')
++   x3 <- x2; x3[4:5] <- x2[5:4]
++   print(xtabs(~ x1 + x2, sparse= TRUE, exclude = 'c'))
++   print(xtabs(~ x1 + x3, sparse= TRUE, exclude = 'c'))
++   detach("package:Matrix")
++   ## failed in R <= 2.13.1
++ }
+5 x 4 sparse Matrix of class "dgCMatrix"
+  1 2 3 4
+1 1 . . .
+2 . 1 . .
+3 . . 1 .
+4 . . . 1
+5 . . . .
+2 x 2 sparse Matrix of class "dgCMatrix"
+  a b
+a 2 .
+b . 2
+2 x 2 sparse Matrix of class "dgCMatrix"
+  a b
+a 2 .
+b . 1
+> 
+> ## regression tests for dimnames (broken on 2009-07-31)
+> contr.sum(4)
+  [,1] [,2] [,3]
+1    1    0    0
+2    0    1    0
+3    0    0    1
+4   -1   -1   -1
+> contr.helmert(4)
+  [,1] [,2] [,3]
+1   -1   -1   -1
+2    1   -1   -1
+3    0    2   -1
+4    0    0    3
+> contr.sum(2) # needed drop=FALSE at one point.
+  [,1]
+1    1
+2   -1
+> 
+> ## xtabs did not exclude levels from factors
+> x1 <- c('a','b','a','b','c', NA)
+> x2 <- factor(x1, exclude=NULL)
+> print(xtabs(~ x1 + x2, na.action = na.pass))
+   x2
+x1  a b c <NA>
+  a 2 0 0    0
+  b 0 2 0    0
+  c 0 0 1    0
+> print(xtabs(~ x1 + x2, exclude = 'c', na.action = na.pass))
+      x2
+x1     a b <NA>
+  a    2 0    0
+  b    0 2    0
+  <NA> 0 0    1
+> 
+> 
+> ## median should work by default for a suitable S4 class.
+> ## adapted from adaptsmoFMRI
+> if(suppressMessages(require("Matrix"))) {
++     x <- matrix(c(1,2,3,4))
++     print(median(x))
++     print(median(as(x, "dgeMatrix")))
++     detach("package:Matrix")
++ }
+[1] 2.5
+[1] 2.5
+> 
+> ## Various arguments were not duplicated:  PR#15352 to 15354
+> x <- 5
+> y <- 2
+> f <- function (y) x
+> numericDeriv(f(y),"y")
+[1] 5
+attr(,"gradient")
+     [,1]
+[1,]    0
+> x
+[1] 5
+> 
+> a<-list(1,2)
+> b<-rep.int(a,c(2,2))
+> b[[1]][1]<-9
+> a[[1]]
+[1] 1
+> 
+> a <- numeric(1)
+> x <- mget("a",as.environment(1))
+> x
+$a
+[1] 0
+
+> a[1] <- 9
+> x
+$a
+[1] 0
+
+> 
+> 
+> ## needs MASS installed
+> ## PR#2586 labelling in alias()
+> if(require("MASS")) {
++     Y <- c(0,1,2)
++     X1 <- c(0,1,0)
++     X2 <- c(0,1,0)
++     X3 <- c(0,0,1)
++     print(res <- alias(lm(Y ~ X1 + X2 + X3)))
++     stopifnot(identical(rownames(res[[2]]), "X2"))
++ }
+Model :
+Y ~ X1 + X2 + X3
+
+Complete :
+   (Intercept) X1 X3
+X2 0           1  0 
+
+> ## the error was in lm.(w)fit
+> 
+> if(require("Matrix")) {
++  m1 <- m2 <- m <- matrix(1:12, 3,4)
++  dimnames(m2) <- list(LETTERS[1:3],
++                       letters[1:4])
++  dimnames(m1) <- list(NULL,letters[1:4])
++  M  <- Matrix(m)
++  M1 <- Matrix(m1)
++  M2 <- Matrix(m2)
++  ## Now, with a new ideal cbind(), rbind():
++  print(cbind(M, M1))
++  stopifnot(identical(cbind (M, M1),
++                      cbind2(M, M1)))
++  rm(M,M1,M2)
++  detach("package:Matrix", unload=TRUE)
++ }##{Matrix}
+Loading required package: Matrix
+3 x 8 Matrix of class "dgeMatrix"
+              a b c  d
+[1,] 1 4 7 10 1 4 7 10
+[2,] 2 5 8 11 2 5 8 11
+[3,] 3 6 9 12 3 6 9 12
+> 
+> ## Invalid UTF-8 strings
+> x <- c("Jetz", "no", "chli", "z\xc3\xbcrit\xc3\xbc\xc3\xbctsch:",
++        "(noch", "ein", "bi\xc3\x9fchen", "Z\xc3\xbc", "deutsch)",
++        "\xfa\xb4\xbf\xbf\x9f")
+> lapply(x, utf8ToInt)
+[[1]]
+[1]  74 101 116 122
+
+[[2]]
+[1] 110 111
+
+[[3]]
+[1]  99 104 108 105
+
+[[4]]
+ [1] 122 252 114 105 116 252 252 116 115  99 104  58
+
+[[5]]
+[1]  40 110 111  99 104
+
+[[6]]
+[1] 101 105 110
+
+[[7]]
+[1]  98 105 223  99 104 101 110
+
+[[8]]
+[1]  90 252
+
+[[9]]
+[1] 100 101 117 116 115  99 104  41
+
+[[10]]
+[1] NA
+
+> Encoding(x) <- "UTF-8"
+> nchar(x, "b")
+ [1]  4  2  4 15  5  3  8  3  8  5
+> try(nchar(x, "c"))
+Error in nchar(x, "c") : invalid multibyte string, element 10
+> try(nchar(x, "w"))
+Error in nchar(x, "w") : invalid multibyte string, element 10
+> nchar(x, "c", allowNA = TRUE)
+ [1]  4  2  4 12  5  3  7  2  8 NA
+> nchar(x, "w", allowNA = TRUE)
+ [1]  4  2  4 12  5  3  7  2  8 NA
+> ## Results differed by platform, but some gave incorrect results on string 10.
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/method-dispatch.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/method-dispatch.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/method-dispatch.Rout.save	(revision 2476)
@@ -0,0 +1,107 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> #### Testing  UseMethod() and even more NextMethod()
+> #### -------------------- 
+> #### i.e.,  S3 methods *only*. For S4, see  reg-S4.R
+> ##                                          ~~~~~~~~
+> 
+> ###-- Group methods
+> 
+> ## previous versions used print() and hit an auto-printing bug.
+> 
+> ### Arithmetic "Ops" :
+> ">.bar" <- function(...) {cat("using >.bar\n"); FALSE}
+> ">.foo" <- function(...) {cat("using >.foo\n"); TRUE}
+> Ops.foo <- function(...) {
++     cat("using Ops.foo\n")
++     NextMethod()
++ }
+> Ops.bar <- function(...) {
++     cat("using Ops.bar\n")
++     TRUE
++ }
+> 
+> x <- 2:4 ; class(x) <- c("foo", "bar")
+> y <- 4:2 ; class(y) <- c("bar", "foo")
+> 
+> ## The next 4 give a warning each about incompatible methods:
+> x > y
+[1] FALSE FALSE  TRUE
+Warning message:
+Incompatible methods (">.foo", ">.bar") for ">" 
+> y < x # should be the same (warning msg not, however)
+[1] FALSE FALSE  TRUE
+Warning message:
+Incompatible methods ("Ops.bar", "Ops.foo") for "<" 
+> x == y
+[1] FALSE  TRUE FALSE
+Warning message:
+Incompatible methods ("Ops.foo", "Ops.bar") for "==" 
+> x <= y
+[1]  TRUE  TRUE FALSE
+Warning message:
+Incompatible methods ("Ops.foo", "Ops.bar") for "<=" 
+> 
+> x > 3 ##[1] ">.foo"
+using >.foo
+[1] TRUE
+> 
+> rm(list=">.foo")
+> x > 3 #-> "Ops.foo" and ">.bar"
+using Ops.foo
+using >.bar
+[1] FALSE
+> 
+> 
+> 
+> ### ------------  was ./mode-methods.R till R ver. 1.0.x ----------------
+> 
+> ###-- Using Method Dispatch on "mode" etc :
+> ## Tests S3 dispatch with the class attr forced to be data.class
+> ## Not very relevant when S4 methods are around, but kept for historical interest
+> abc <- function(x, ...) {
++     cat("abc: Before dispatching; x has class `", class(x), "':", sep="")
++     str(x)
++     UseMethod("abc", x) ## UseMethod("abc") (as in S) fails
++ }
+> 
+> abc.default <- function(x, ...) sys.call()
+> 
+> "abc.(" <- function(x)
++     cat("'(' method of abc:", deparse(sys.call(sys.parent())),"\n")
+> abc.expression <- function(x)
++     cat("'expression' method of abc:", deparse(sys.call(sys.parent())),"\n")
+> 
+> abc(1)
+abc: Before dispatching; x has class `numeric': num 1
+abc.default(1)
+> e0 <- expression((x))
+> e1 <- expression(sin(x))
+> abc(e0)
+abc: Before dispatching; x has class `expression':  expression((x))
+'expression' method of abc: abc.expression(e0) 
+> abc(e1)
+abc: Before dispatching; x has class `expression':  expression(sin(x))
+'expression' method of abc: abc.expression(e1) 
+> abc(e0[[1]])
+abc: Before dispatching; x has class `(': language, mode "(": (x)
+'(' method of abc: `abc.(`(e0[[1]]) 
+> abc(e1[[1]])
+abc: Before dispatching; x has class `call': language sin(x)
+abc.default(e1[[1]])
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datetime2.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datetime2.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/datetime2.Rout.save	(revision 2476)
@@ -0,0 +1,250 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> ### Tests of often platform-dependent features of the POSIX[cl]t implementation.
+> 
+> ### Expect differences, especially with 32-bit time_t
+> 
+> z <- ISOdate(1890:1912, 1, 10, tz="UTC")
+> ## Rome changed to CET for 1894
+> as.POSIXlt(z, tz="Europe/Rome")
+ [1] "1890-01-10 12:49:56 RMT" "1891-01-10 12:49:56 RMT"
+ [3] "1892-01-10 12:49:56 RMT" "1893-01-10 12:49:56 RMT"
+ [5] "1894-01-10 13:00:00 CET" "1895-01-10 13:00:00 CET"
+ [7] "1896-01-10 13:00:00 CET" "1897-01-10 13:00:00 CET"
+ [9] "1898-01-10 13:00:00 CET" "1899-01-10 13:00:00 CET"
+[11] "1900-01-10 13:00:00 CET" "1901-01-10 13:00:00 CET"
+[13] "1902-01-10 13:00:00 CET" "1903-01-10 13:00:00 CET"
+[15] "1904-01-10 13:00:00 CET" "1905-01-10 13:00:00 CET"
+[17] "1906-01-10 13:00:00 CET" "1907-01-10 13:00:00 CET"
+[19] "1908-01-10 13:00:00 CET" "1909-01-10 13:00:00 CET"
+[21] "1910-01-10 13:00:00 CET" "1911-01-10 13:00:00 CET"
+[23] "1912-01-10 13:00:00 CET"
+> ## Paris changed to PMT for 1892, WET for 1912
+> (zz <- as.POSIXlt(z, tz="Europe/Paris"))
+ [1] "1890-01-10 12:09:21 LMT" "1891-01-10 12:09:21 LMT"
+ [3] "1892-01-10 12:09:21 PMT" "1893-01-10 12:09:21 PMT"
+ [5] "1894-01-10 12:09:21 PMT" "1895-01-10 12:09:21 PMT"
+ [7] "1896-01-10 12:09:21 PMT" "1897-01-10 12:09:21 PMT"
+ [9] "1898-01-10 12:09:21 PMT" "1899-01-10 12:09:21 PMT"
+[11] "1900-01-10 12:09:21 PMT" "1901-01-10 12:09:21 PMT"
+[13] "1902-01-10 12:09:21 PMT" "1903-01-10 12:09:21 PMT"
+[15] "1904-01-10 12:09:21 PMT" "1905-01-10 12:09:21 PMT"
+[17] "1906-01-10 12:09:21 PMT" "1907-01-10 12:09:21 PMT"
+[19] "1908-01-10 12:09:21 PMT" "1909-01-10 12:09:21 PMT"
+[21] "1910-01-10 12:09:21 PMT" "1911-01-10 12:09:21 PMT"
+[23] "1912-01-10 12:00:00 WET"
+> strftime(zz, "%Y-%m-%d %H:%M:%S %Z")
+ [1] "1890-01-10 12:09:21 LMT" "1891-01-10 12:09:21 LMT"
+ [3] "1892-01-10 12:09:21 PMT" "1893-01-10 12:09:21 PMT"
+ [5] "1894-01-10 12:09:21 PMT" "1895-01-10 12:09:21 PMT"
+ [7] "1896-01-10 12:09:21 PMT" "1897-01-10 12:09:21 PMT"
+ [9] "1898-01-10 12:09:21 PMT" "1899-01-10 12:09:21 PMT"
+[11] "1900-01-10 12:09:21 PMT" "1901-01-10 12:09:21 PMT"
+[13] "1902-01-10 12:09:21 PMT" "1903-01-10 12:09:21 PMT"
+[15] "1904-01-10 12:09:21 PMT" "1905-01-10 12:09:21 PMT"
+[17] "1906-01-10 12:09:21 PMT" "1907-01-10 12:09:21 PMT"
+[19] "1908-01-10 12:09:21 PMT" "1909-01-10 12:09:21 PMT"
+[21] "1910-01-10 12:09:21 PMT" "1911-01-10 12:09:21 PMT"
+[23] "1912-01-10 12:00:00 WET"
+> ## The offset was really 00:09:21 until 1911, then 00:00
+> ## Many platforms will give the current offset, +0100
+> strftime(zz, "%Y-%m-%d %H:%M:%S %z")
+ [1] "1890-01-10 12:09:21 +0009" "1891-01-10 12:09:21 +0009"
+ [3] "1892-01-10 12:09:21 +0009" "1893-01-10 12:09:21 +0009"
+ [5] "1894-01-10 12:09:21 +0009" "1895-01-10 12:09:21 +0009"
+ [7] "1896-01-10 12:09:21 +0009" "1897-01-10 12:09:21 +0009"
+ [9] "1898-01-10 12:09:21 +0009" "1899-01-10 12:09:21 +0009"
+[11] "1900-01-10 12:09:21 +0009" "1901-01-10 12:09:21 +0009"
+[13] "1902-01-10 12:09:21 +0009" "1903-01-10 12:09:21 +0009"
+[15] "1904-01-10 12:09:21 +0009" "1905-01-10 12:09:21 +0009"
+[17] "1906-01-10 12:09:21 +0009" "1907-01-10 12:09:21 +0009"
+[19] "1908-01-10 12:09:21 +0009" "1909-01-10 12:09:21 +0009"
+[21] "1910-01-10 12:09:21 +0009" "1911-01-10 12:09:21 +0009"
+[23] "1912-01-10 12:00:00 +0000"
+> 
+> ## Some platforms give details of the latest conversion.
+> z <- ISOdate(c(seq(1890, 1940, 5), 1941:1946, 1950), 1, 10, tz="UTC")
+> as.POSIXlt(z, tz="Europe/Paris")
+ [1] "1890-01-10 12:09:21 LMT"  "1895-01-10 12:09:21 PMT" 
+ [3] "1900-01-10 12:09:21 PMT"  "1905-01-10 12:09:21 PMT" 
+ [5] "1910-01-10 12:09:21 PMT"  "1915-01-10 12:00:00 WET" 
+ [7] "1920-01-10 12:00:00 WET"  "1925-01-10 12:00:00 WET" 
+ [9] "1930-01-10 12:00:00 WET"  "1935-01-10 12:00:00 WET" 
+[11] "1940-01-10 12:00:00 WET"  "1941-01-10 14:00:00 CEST"
+[13] "1942-01-10 14:00:00 CEST" "1943-01-10 13:00:00 CET" 
+[15] "1944-01-10 13:00:00 CET"  "1945-01-10 13:00:00 WEST"
+[17] "1946-01-10 13:00:00 CET"  "1950-01-10 13:00:00 CET" 
+> for(i in seq_along(z)) print(as.POSIXlt(z[i], tz="Europe/Paris"))
+[1] "1890-01-10 12:09:21 LMT"
+[1] "1895-01-10 12:09:21 PMT"
+[1] "1900-01-10 12:09:21 PMT"
+[1] "1905-01-10 12:09:21 PMT"
+[1] "1910-01-10 12:09:21 PMT"
+[1] "1915-01-10 12:00:00 WET"
+[1] "1920-01-10 12:00:00 WET"
+[1] "1925-01-10 12:00:00 WET"
+[1] "1930-01-10 12:00:00 WET"
+[1] "1935-01-10 12:00:00 WET"
+[1] "1940-01-10 12:00:00 WET"
+[1] "1941-01-10 14:00:00 CEST"
+[1] "1942-01-10 14:00:00 CEST"
+[1] "1943-01-10 13:00:00 CET"
+[1] "1944-01-10 13:00:00 CET"
+[1] "1945-01-10 13:00:00 WEST"
+[1] "1946-01-10 13:00:00 CET"
+[1] "1950-01-10 13:00:00 CET"
+> for(i in seq_along(z))
++     print(strftime(as.POSIXlt(z[i], tz="Europe/Paris"), "%Y-%m-%d %H:%M:%S %z"))
+[1] "1890-01-10 12:09:21 +0009"
+[1] "1895-01-10 12:09:21 +0009"
+[1] "1900-01-10 12:09:21 +0009"
+[1] "1905-01-10 12:09:21 +0009"
+[1] "1910-01-10 12:09:21 +0009"
+[1] "1915-01-10 12:00:00 +0000"
+[1] "1920-01-10 12:00:00 +0000"
+[1] "1925-01-10 12:00:00 +0000"
+[1] "1930-01-10 12:00:00 +0000"
+[1] "1935-01-10 12:00:00 +0000"
+[1] "1940-01-10 12:00:00 +0000"
+[1] "1941-01-10 14:00:00 +0200"
+[1] "1942-01-10 14:00:00 +0200"
+[1] "1943-01-10 13:00:00 +0100"
+[1] "1944-01-10 13:00:00 +0100"
+[1] "1945-01-10 13:00:00 +0100"
+[1] "1946-01-10 13:00:00 +0100"
+[1] "1950-01-10 13:00:00 +0100"
+> 
+> strptime("1920-12-27 08:18:23", "%Y-%m-%d %H:%M:%S", tz="Europe/Paris")
+[1] "1920-12-27 08:18:23 WET"
+> 
+> ## check %V etc
+> 
+> d <- expand.grid(day = 1:7, year = 2000:2010)
+> z1 <- with(d, ISOdate(year, 1, day))
+> d <- expand.grid(day = 25:31, year = 2000:2010)
+> z2 <- with(d, ISOdate(year, 12, day))
+> z <- sort(c(z1, z2))
+> strftime(z, "%G %g %W %U %u %V %W %w")
+  [1] "1999 99 00 00 6 52 00 6" "1999 99 00 01 7 52 00 0"
+  [3] "2000 00 01 01 1 01 01 1" "2000 00 01 01 2 01 01 2"
+  [5] "2000 00 01 01 3 01 01 3" "2000 00 01 01 4 01 01 4"
+  [7] "2000 00 01 01 5 01 01 5" "2000 00 52 52 1 52 52 1"
+  [9] "2000 00 52 52 2 52 52 2" "2000 00 52 52 3 52 52 3"
+ [11] "2000 00 52 52 4 52 52 4" "2000 00 52 52 5 52 52 5"
+ [13] "2000 00 52 52 6 52 52 6" "2000 00 52 53 7 52 52 0"
+ [15] "2001 01 01 00 1 01 01 1" "2001 01 01 00 2 01 01 2"
+ [17] "2001 01 01 00 3 01 01 3" "2001 01 01 00 4 01 01 4"
+ [19] "2001 01 01 00 5 01 01 5" "2001 01 01 00 6 01 01 6"
+ [21] "2001 01 01 01 7 01 01 0" "2001 01 52 51 2 52 52 2"
+ [23] "2001 01 52 51 3 52 52 3" "2001 01 52 51 4 52 52 4"
+ [25] "2001 01 52 51 5 52 52 5" "2001 01 52 51 6 52 52 6"
+ [27] "2001 01 52 52 7 52 52 0" "2002 02 53 52 1 01 53 1"
+ [29] "2002 02 00 00 2 01 00 2" "2002 02 00 00 3 01 00 3"
+ [31] "2002 02 00 00 4 01 00 4" "2002 02 00 00 5 01 00 5"
+ [33] "2002 02 00 00 6 01 00 6" "2002 02 00 01 7 01 00 0"
+ [35] "2002 02 01 01 1 02 01 1" "2002 02 51 51 3 52 51 3"
+ [37] "2002 02 51 51 4 52 51 4" "2002 02 51 51 5 52 51 5"
+ [39] "2002 02 51 51 6 52 51 6" "2002 02 51 52 7 52 51 0"
+ [41] "2003 03 52 52 1 01 52 1" "2003 03 52 52 2 01 52 2"
+ [43] "2003 03 00 00 3 01 00 3" "2003 03 00 00 4 01 00 4"
+ [45] "2003 03 00 00 5 01 00 5" "2003 03 00 00 6 01 00 6"
+ [47] "2003 03 00 01 7 01 00 0" "2003 03 01 01 1 02 01 1"
+ [49] "2003 03 01 01 2 02 01 2" "2003 03 51 51 4 52 51 4"
+ [51] "2003 03 51 51 5 52 51 5" "2003 03 51 51 6 52 51 6"
+ [53] "2003 03 51 52 7 52 51 0" "2004 04 52 52 1 01 52 1"
+ [55] "2004 04 52 52 2 01 52 2" "2004 04 52 52 3 01 52 3"
+ [57] "2004 04 00 00 4 01 00 4" "2004 04 00 00 5 01 00 5"
+ [59] "2004 04 00 00 6 01 00 6" "2004 04 00 01 7 01 00 0"
+ [61] "2004 04 01 01 1 02 01 1" "2004 04 01 01 2 02 01 2"
+ [63] "2004 04 01 01 3 02 01 3" "2004 04 51 51 6 52 51 6"
+ [65] "2004 04 51 52 7 52 51 0" "2004 04 52 52 1 53 52 1"
+ [67] "2004 04 52 52 2 53 52 2" "2004 04 52 52 3 53 52 3"
+ [69] "2004 04 52 52 4 53 52 4" "2004 04 52 52 5 53 52 5"
+ [71] "2004 04 00 00 6 53 00 6" "2004 04 00 01 7 53 00 0"
+ [73] "2005 05 01 01 1 01 01 1" "2005 05 01 01 2 01 01 2"
+ [75] "2005 05 01 01 3 01 01 3" "2005 05 01 01 4 01 01 4"
+ [77] "2005 05 01 01 5 01 01 5" "2005 05 51 52 7 51 51 0"
+ [79] "2005 05 52 52 1 52 52 1" "2005 05 52 52 2 52 52 2"
+ [81] "2005 05 52 52 3 52 52 3" "2005 05 52 52 4 52 52 4"
+ [83] "2005 05 52 52 5 52 52 5" "2005 05 52 52 6 52 52 6"
+ [85] "2005 05 00 01 7 52 00 0" "2006 06 01 01 1 01 01 1"
+ [87] "2006 06 01 01 2 01 01 2" "2006 06 01 01 3 01 01 3"
+ [89] "2006 06 01 01 4 01 01 4" "2006 06 01 01 5 01 01 5"
+ [91] "2006 06 01 01 6 01 01 6" "2006 06 52 52 1 52 52 1"
+ [93] "2006 06 52 52 2 52 52 2" "2006 06 52 52 3 52 52 3"
+ [95] "2006 06 52 52 4 52 52 4" "2006 06 52 52 5 52 52 5"
+ [97] "2006 06 52 52 6 52 52 6" "2006 06 52 53 7 52 52 0"
+ [99] "2007 07 01 00 1 01 01 1" "2007 07 01 00 2 01 01 2"
+[101] "2007 07 01 00 3 01 01 3" "2007 07 01 00 4 01 01 4"
+[103] "2007 07 01 00 5 01 01 5" "2007 07 01 00 6 01 01 6"
+[105] "2007 07 01 01 7 01 01 0" "2007 07 52 51 2 52 52 2"
+[107] "2007 07 52 51 3 52 52 3" "2007 07 52 51 4 52 52 4"
+[109] "2007 07 52 51 5 52 52 5" "2007 07 52 51 6 52 52 6"
+[111] "2007 07 52 52 7 52 52 0" "2008 08 53 52 1 01 53 1"
+[113] "2008 08 00 00 2 01 00 2" "2008 08 00 00 3 01 00 3"
+[115] "2008 08 00 00 4 01 00 4" "2008 08 00 00 5 01 00 5"
+[117] "2008 08 00 00 6 01 00 6" "2008 08 00 01 7 01 00 0"
+[119] "2008 08 01 01 1 02 01 1" "2008 08 51 51 4 52 51 4"
+[121] "2008 08 51 51 5 52 51 5" "2008 08 51 51 6 52 51 6"
+[123] "2008 08 51 52 7 52 51 0" "2009 09 52 52 1 01 52 1"
+[125] "2009 09 52 52 2 01 52 2" "2009 09 52 52 3 01 52 3"
+[127] "2009 09 00 00 4 01 00 4" "2009 09 00 00 5 01 00 5"
+[129] "2009 09 00 00 6 01 00 6" "2009 09 00 01 7 01 00 0"
+[131] "2009 09 01 01 1 02 01 1" "2009 09 01 01 2 02 01 2"
+[133] "2009 09 01 01 3 02 01 3" "2009 09 51 51 5 52 51 5"
+[135] "2009 09 51 51 6 52 51 6" "2009 09 51 52 7 52 51 0"
+[137] "2009 09 52 52 1 53 52 1" "2009 09 52 52 2 53 52 2"
+[139] "2009 09 52 52 3 53 52 3" "2009 09 52 52 4 53 52 4"
+[141] "2009 09 00 00 5 53 00 5" "2009 09 00 00 6 53 00 6"
+[143] "2009 09 00 01 7 53 00 0" "2010 10 01 01 1 01 01 1"
+[145] "2010 10 01 01 2 01 01 2" "2010 10 01 01 3 01 01 3"
+[147] "2010 10 01 01 4 01 01 4" "2010 10 51 51 6 51 51 6"
+[149] "2010 10 51 52 7 51 51 0" "2010 10 52 52 1 52 52 1"
+[151] "2010 10 52 52 2 52 52 2" "2010 10 52 52 3 52 52 3"
+[153] "2010 10 52 52 4 52 52 4" "2010 10 52 52 5 52 52 5"
+> 
+> ## tests of earlier years.  Default format is OS-dependent, so don't test it.
+> ## ISOdate only accepts positive years.
+> z <- as.Date(ISOdate(c(0, 8, 9, 10, 11, 20, 110, 1010), 1, 10)) - 3630
+> strftime(z, "%04Y-%m-%d") # with leading zero(s)
+[1] "-010-02-01" "-002-02-01" "-001-02-02" "0000-02-02" "0001-02-01"
+[6] "0010-02-01" "0100-02-01" "1000-02-01"
+> strftime(z, "%_4Y-%m-%d") # with leading space(s)
+[1] " -10-02-01" "  -2-02-01" "  -1-02-02" "   0-02-02" "   1-02-01"
+[6] "  10-02-01" " 100-02-01" "1000-02-01"
+> strftime(z, "%0Y-%m-%d") # without
+[1] "-10-02-01"  "-2-02-01"   "-1-02-02"   "0-02-02"    "1-02-01"   
+[6] "10-02-01"   "100-02-01"  "1000-02-01"
+> 
+> 
+> ## more test of strftime
+> x <- ISOdate(2014, 3, 10, c(7, 13))
+> fmts <- c("%Y-%m-%d %H:%M:%S", "%F", "%A %a %b %h %e %I %j",
++           ## locale-dependent ones
++           "%X", # but the same in all English locales
++           "%c", "%x", "%p", "%r")
+> for (f in fmts) print(format(x, f))
+[1] "2014-03-10 07:00:00" "2014-03-10 13:00:00"
+[1] "2014-03-10" "2014-03-10"
+[1] "Monday Mon Mar Mar 10 07 069" "Monday Mon Mar Mar 10 01 069"
+[1] "07:00:00" "13:00:00"
+[1] "Mon Mar 10 07:00:00 2014" "Mon Mar 10 13:00:00 2014"
+[1] "03/10/14" "03/10/14"
+[1] "AM" "PM"
+[1] "07:00:00 AM" "01:00:00 PM"
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/Makefile.common
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/Makefile.common	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/Makefile.common	(revision 2476)
@@ -0,0 +1,460 @@
+#-*- Makefile -*-
+#
+# ${R_HOME}/tests/Makefile.common
+
+## If you add test scripts here, review  ../src/library/tools/R/testing.R
+
+test-src-gct = \
+	eval-etc.R \
+	simple-true.R \
+	arith-true.R \
+	arith.R \
+	lm-tests.R \
+	ok-errors.R \
+	method-dispatch.R \
+	any-all.R
+test-src-strict-1 = \
+	$(test-src-gct) \
+	d-p-q-r-tests.R
+test-src-strict-auto =
+test-src-sloppy-1 = \
+	complex.R \
+	print-tests.R \
+	lapack.R \
+	datasets.R \
+	datetime.R \
+	iec60559.R
+test-src-sloppy-auto =
+
+test-src-1 = $(test-src-strict-1) $(test-src-sloppy-1)
+test-src-auto = $(test-src-strict-auto) $(test-src-sloppy-auto) \
+  ${test-src-isas} ${test-src-segfault}
+test-src-sloppy = $(test-src-sloppy-1) $(test-src-sloppy-auto)
+test-src-strict = $(test-src-strict-1) $(test-src-strict-auto)
+test-src = $(test-src-strict) $(test-src-sloppy)
+
+test-src-dt = datetime2.R
+test-src-demo = demos.R demos2.R
+test-src-internet = internet.R
+test-src-internet2 = internet2.R libcurl.R
+test-src-isas = isas-tests.R
+test-src-primitive = primitives.R
+test-src-random = p-r-random-tests.R
+test-src-regexp = utf8-regex.R
+test-src-segfault = no-segfault.R
+
+test-src-reg-1 = array-subset.R \
+  reg-tests-1a.R reg-tests-1b.R reg-tests-1c.R reg-tests-2.R \
+  reg-examples1.R reg-examples2.R reg-packages.R p-qbeta-strict-tst.R \
+  r-strict-tst.R \
+  reg-IO.R reg-IO2.R reg-plot.R reg-S4.R reg-S4-examples.R reg-BLAS.R
+## added to in Makefile.win
+test-src-reg-1e =
+test-src-reg = $(test-src-reg-1) $(test-src-reg-1e)
+## overridden in Makefile if recommended packages are not installed.
+test-src-reg3 = reg-tests-3.R reg-examples3.R reg-plot-latin1.R
+
+test-out-strict = $(test-src-strict:.R=.Rout)
+test-out-sloppy = $(test-src-sloppy:.R=.Rout)
+
+test-out-gct = $(test-src-gct:.R=.Rout-gct)
+test-out-valgct = $(test-src-gct:.R=.Rout-valgct)
+
+test-out-dt = $(test-src-dt:.R=.Rout)
+test-out-demo = $(test-src-demo:.R=.Rout)
+test-out-internet = $(test-src-internet:.R=.Rout)
+test-out-internet2 = $(test-src-internet2:.R=.Rout)
+test-out-isas = $(test-src-isas:.R=.Rout)
+test-out-primitive = $(test-src-primitive:.R=.Rout)
+test-out-random = $(test-src-random:.R=.Rout)
+test-out-reg = $(test-src-reg:.R=.Rout)
+test-out-regexp = $(test-src-regexp:.R=.Rout)
+test-out-reg3 = $(test-src-reg3:.R=.Rout)
+test-out-segfault = $(test-src-segfault:.R=.Rout)
+
+## This macro is used only for dependencies and for distclean
+test-out = $(test-src:.R=.Rout) $(test-out-demo) $(test-out-gct) \
+	$(test-out-internet) \
+	$(test-out-random) $(test-out-reg) $(test-out-reg3) \
+	$(test-out-segfault) $(test-out-isas) $(test-out-internet2) \
+	$(test-out-primitive) $(test-out-dt) utf8-regex.Rout
+
+.SUFFIXES:
+.SUFFIXES: .R .Rin .Rout .Rout-gct .Rout-valgct .trin .tsin .log
+
+$(test-out): FORCE
+
+FORCE:
+
+.Rin.R:
+	@$(ECHO) "creating '$@'"
+	@$(R) < $< > /dev/null
+
+.R.Rout:
+	@rm -f $@ $@.fail $@.log
+	@$(ECHO) $(ECHO_N) "running code in '$<' ...$(ECHO_C)" > $@.log
+	@$(R) < $< > $@.fail 2>&1 || (cat $@.log && rm $@.log && exit 1)
+	@$(ECHO) "$(ECHO_T) OK" >> $@.log
+	@if test -f $(srcdir)/$@.save ; then \
+	  $(ECHO) $(ECHO_N) \
+	    "  comparing '$@' to '$(srcdir)/$@.save' ...$(ECHO_C)" >> $@.log; \
+	  $(RDIFF) $@.fail $(srcdir)/$@.save $(RVAL_IF_DIFF) >> $@.log \
+	    || (cat $@.log && rm $@.log && exit 1) || exit 1; \
+	  mv $@.fail $@; \
+	  $(ECHO) "$(ECHO_T) OK" >> $@.log; \
+	else \
+	  mv $@.fail $@; \
+	fi
+	@cat $@.log; rm $@.log
+
+reg-plot.Rout: reg-plot.R
+	@rm -f $@ $@.fail $@.log
+	@$(ECHO) $(ECHO_N) "running code in '$<' ...$(ECHO_C)" > $@.log
+	@$(R) < $< > $@ 2>&1 || (mv $@ $@.fail && cat $@.log && rm $@.log && exit 1)
+	@$(ECHO) "$(ECHO_T) OK" >> $@.log
+	@$(ECHO) $(ECHO_N) \
+	  "  comparing 'reg-plot.pdf' to '$(srcdir)/reg-plot.pdf.save' ...$(ECHO_C)" >> $@.log
+	@$(RDIFF) reg-plot.pdf $(srcdir)/reg-plot.pdf.save >> $@.log
+	@$(ECHO) "$(ECHO_T) OK" >> $@.log
+	@cat $@.log; rm $@.log
+
+## allow this to fail, as it may if the locale does not support Latin-1 chars
+reg-plot-latin1.Rout: reg-plot-latin1.R
+	@rm -f $@ $@.fail
+	@$(ECHO) "running tests of plotting Latin-1"
+	@$(ECHO) "  expect failure or some differences if not in a Latin-1 or UTF-8 locale"
+	@$(ECHO) $(ECHO_N) "running code in '$<' ...$(ECHO_C)"
+	@$(R2) < $< > $@ 2>&1 || mv $@ $@.fail
+	@if test -f $@.fail; then \
+	  $(ECHO) "$(ECHO_T) FAILED"; \
+	else \
+	  $(ECHO) "$(ECHO_T) OK"; \
+	  $(ECHO) $(ECHO_N) \
+	  "  comparing 'reg-plot-latin1.pdf' to '$(srcdir)/reg-plot-latin1.pdf.save' ...$(ECHO_C)"; \
+	  $(RDIFF) reg-plot-latin1.pdf $(srcdir)/reg-plot-latin1.pdf.save; \
+	  $(ECHO) "$(ECHO_T) OK"; \
+	fi
+
+.R.Rout-gct:
+	@$(ECHO) "running gctorture() + '$<'"
+	@($(ECHO) '.ptime <- proc.time(); gctorture()' ; \
+	  cat $< $(srcdir)/gct-foot.R) | $(R) > $@ 2>&1
+	@mv $@ $@.fail; Ro=`basename $@ .Rout-gct`.Rout; \
+	  if test ! -r $${Ro}; then $(MK) $${Ro}; fi; \
+	  $(ECHO) $(ECHO_N) "  comparing '$@' to '$${Ro}' ...$(ECHO_C)"; \
+	  grep -v 'gctorture()' $@.fail | $(RDIFF) - $${Ro} 1 || exit 1; \
+	  mv $@.fail $@; \
+	  $(ECHO) "$(ECHO_T) OK"
+
+R-valgrind = $(R) --debugger="valgrind --tool=memcheck"
+
+.R.Rout-valgct:
+	@$(ECHO) "running gctorture() + valgrind + '$<'"
+	@($(ECHO) '.ptime <- proc.time(); gctorture()' ; \
+	  cat $< $(srcdir)/gct-foot.R) | $(R-valgrind) > $@ 2>&1
+	grep "==[0-9]*==" $@
+
+## The definitions for Internet are in Makefile.{in,win}.
+all-basic-tests = Examples Specific Reg Internet
+test-all-basics:
+	@for name in $(all-basic-tests); do \
+	  $(MK) test-$${name} || exit 1; \
+	done
+
+## if you change this, also edit Makefile.install
+## The definitions for Standalone are in Makefile.{in,win}.
+all-devel-tests = DateTime Docs IsAs Random Demo Primitive Regexp \
+    Internet2 Segfault Standalone Packages
+test-all-devel:
+	@for name in $(all-devel-tests); do \
+	  $(MK) test-$${name} || exit 1; \
+	done
+
+test-Examples:
+	@(cd Examples && $(MK) $@)
+test-Examples-Recommended:
+	@(cd Examples && $(MK) $@)
+
+test-Specific-strict: $(test-out-strict)
+test-Specific-sloppy: $(test-out-sloppy)
+test-Specific:
+	@$(ECHO) "running strict specific tests"
+	@$(MK) test-Specific-strict RVAL_IF_DIFF=1
+	@$(ECHO) "running sloppy specific tests"
+	@$(MK) test-Specific-sloppy RVAL_IF_DIFF=0
+
+test-Packages:
+	@if test -n "${TEST_MC_CORES}"; then \
+	  $(ECHO) "Using ${TEST_MC_CORES} cores to check packages"; \
+	  $(MK) -j ${TEST_MC_CORES} test-Packages2; \
+	else \
+	  $(MK) test-Packages1; \
+	fi
+
+test-Packages1:
+	@for p in $(R_PKGS_BASE); do \
+	  $(ECHO) "checking package '$${p}'"; \
+	  _R_CHECK_FF_CALLS_=registration \
+	  _R_CHECK_CODE_USAGE_WITH_ONLY_BASE_ATTACHED_=true \
+	  $(top_builddir)/bin/R CMD check --install=skip \
+	    --no-build-vignettes \
+	    $(top_srcdir)/src/library/$${p} || $(ECHO); \
+	done
+
+PKG_OBJECTS = $(R_PKGS_BASE:=.log)
+
+test-Packages2:
+	@for p in $(R_PKGS_BASE); do \
+	  touch $${p}.tsin; \
+	done
+	+@$(MK) stamp-Packages
+	@rm -f *.tsin
+stamp-Packages: $(PKG_OBJECTS)
+
+.tsin.log:
+	@$(ECHO) "begin checking package '`basename $@ .log`'"
+	@rm -f $@
+	@_R_CHECK_FF_CALLS_=registration \
+	  _R_CHECK_CODE_USAGE_WITH_ONLY_BASE_ATTACHED_=true \
+	  $(top_builddir)/bin/R CMD check --install=skip --no-build-vignettes \
+	  $(top_srcdir)/src/library/`basename $@ .log` > $@ 2>&1
+	@cat $@
+
+test-Gct: $(test-out-gct)
+
+test-Vgct: $(test-out-valgct)
+
+test-DateTime:
+	@$(ECHO) "running tests of date-time printing"
+	@$(ECHO) "  expect platform-specific differences"
+	@$(RM) -f $(test-out-dt)
+	@$(MK) $(test-out-dt) RVAL_IF_DIFF=0
+
+test-Docs:
+	@$(ECHO) "running tests of documentation examples"
+	@cp ${top_srcdir}/doc/manual/*.R .
+	@$(MK) R-intro.Rout RVAL_IF_DIFF=0
+	@cp ${top_srcdir}/doc/manual/R-exts.c .
+	@$(top_builddir)/bin/R CMD SHLIB R-exts.c
+	@$(MK) R-exts.Rout
+	@rm R-exts.*
+
+test-Demo:
+	@$(ECHO) "running demos from base and stats"
+	@$(MK) $(test-out-demo) RVAL_IF_DIFF=0
+
+test-IsAs:
+	@$(ECHO) "running tests of consistency of as/is.*"
+	@$(MK) $(test-out-isas) RVAL_IF_DIFF=1
+
+test-Internet2:
+	@$(ECHO) "running more Internet and socket tests"
+	@$(MK) $(test-out-internet2) RVAL_IF_DIFF=1
+
+test-Primitive:
+	@$(ECHO) "running tests of primitives"
+	@$(MK) $(test-out-primitive) RVAL_IF_DIFF=0
+
+test-Random:
+	@$(ECHO) "running tests of random deviate generation"
+	@$(MK) $(test-out-random) RVAL_IF_DIFF=1
+
+test-Reg:
+	@$(ECHO) "running regression tests ..."
+	@if test -n "${TEST_MC_CORES}"; then \
+	  $(MK) -j ${TEST_MC_CORES} $(test-out-reg) RVAL_IF_DIFF=1; \
+	else \
+	  $(MK) $(test-out-reg) RVAL_IF_DIFF=1; \
+	fi
+	@$(MK) $(test-out-reg3) RVAL_IF_DIFF=0
+
+test-Regexp:
+	@$(ECHO) "running regexp regression tests"
+	@$(R2) < $(srcdir)/utf8-regex.R > utf8-regex.Rout 2>&1 || (mv utf8-regex.Rout utf8-regex.Rout.fail && exit 1)
+
+test-Segfault:
+	@$(ECHO) "running tests to possibly trigger segfaults"
+	@$(MK) $(test-out-segfault) RVAL_IF_DIFF=0
+	-@rm -rf data dumpdata.R F.Rd c0.Rd df0.Rd l0.Rd m0.Rd Rprof.out Rplots* PACKAGES PACKAGES.gz FALSE-package.Rd FALSE.* ./-Ex.R
+
+## Avoid site library, which could be very large
+no-segfault.Rout: no-segfault.R
+	@rm -f $@ $@.fail
+	@$(ECHO) $(ECHO_N) "running code in '$<' ...$(ECHO_C)"
+	@R_LIBS_SITE=no-such-dir $(R) < $< > $@ 2>&1 || (mv $@ $@.fail && exit 1)
+	@$(ECHO) "$(ECHO_T) OK"
+
+test-Rd: $(srcdir)/testit.Rd $(srcdir)/ver20.Rd
+	@$(ECHO) "testing Rd conversion"
+	@$(RDCONV) -t txt $(srcdir)/testit.Rd > testit.txt
+	@$(RDCONV) -t html $(srcdir)/testit.Rd > testit.html 2> /dev/null
+	@$(RDCONV) -t latex $(srcdir)/testit.Rd > testit.tex
+	@$(RDCONV) -t example $(srcdir)/testit.Rd > testit-Ex.R
+	@diff -bw testit.txt $(srcdir)/testit.txt.save
+	@diff -bw testit.html $(srcdir)/testit.html.save
+	@diff -bw testit.tex $(srcdir)/testit.tex.save
+	@diff -bw testit-Ex.R $(srcdir)/testit-Ex.R.save
+	@$(RDCONV) -t txt $(srcdir)/ver20.Rd > ver20.txt
+	@$(RDCONV) -t html $(srcdir)/ver20.Rd > ver20.html
+	@$(RDCONV) -t latex $(srcdir)/ver20.Rd > ver20.tex
+	@$(RDCONV) -t example $(srcdir)/ver20.Rd > ver20-Ex.R
+	@diff -bw ver20.txt $(srcdir)/ver20.txt.save
+	@diff -bw ver20.html $(srcdir)/ver20.html.save
+	@diff -bw ver20.tex $(srcdir)/ver20.tex.save
+	@diff -bw ver20-Ex.R $(srcdir)/ver20-Ex.R.save
+
+test-DocFiles:
+	@$(ECHO) "checking Rd usage sections"
+	@for p in $(R_PKGS_BASE); do \
+	  $(ECHO) $(ECHO_N) "package '$${p}' ...$(ECHO_C)"; \
+	  out=`($(ECHO) "library(\"tools\")"; \
+	         $(ECHO) "checkDocFiles(package = \"$${p}\")") | \
+	       $(R) -q | sed '/^>/d'`; \
+	  if test -n "$${out}"; then \
+	    $(ECHO) "$(ECHO_T) WARNING"; \
+	    $(ECHO); \
+	    $(ECHO) "$${out}"; \
+	    $(ECHO); \
+	  else \
+	    $(ECHO) "$(ECHO_T) OK"; \
+	  fi; \
+	done
+
+test-DocStyle:
+	@$(ECHO) "checking S3 method documentation style"
+	@for p in $(R_PKGS_BASE); do \
+	  $(ECHO) $(ECHO_N) "package '$${p}' ...$(ECHO_C)"; \
+	  out=`($(ECHO) "library(\"tools\")"; \
+	         $(ECHO) "checkDocStyle(package = \"$${p}\")") | \
+	       $(R) -q | sed '/^>/d'`; \
+	  if test -n "$${out}"; then \
+	    $(ECHO) "$(ECHO_T) WARNING"; \
+	    $(ECHO); \
+	    $(ECHO) "$${out}"; \
+	    $(ECHO); \
+	  else \
+	    $(ECHO) "$(ECHO_T) OK"; \
+	  fi; \
+	done
+
+test-FF:
+	@$(ECHO) "checking foreign function calls"
+	@for p in $(R_PKGS_BASE); do \
+	  $(ECHO) $(ECHO_N) "package '$${p}' ...$(ECHO_C)"; \
+	  out=`($(ECHO) "library(\"tools\")"; \
+	         $(ECHO) "checkFF(package = \"$${p}\")") | \
+	       $(R) -q | sed '/^>/d'`; \
+	  if test -n "$${out}"; then \
+	    $(ECHO) "$(ECHO_T) WARNING"; \
+	    $(ECHO) "$${out}"; \
+	  else \
+	    $(ECHO) "$(ECHO_T) OK"; \
+	  fi; \
+	done
+
+test-S3methods:
+	@$(ECHO) "checking for S3 generic/method consistency"
+	@for p in $(R_PKGS_BASE); do \
+	  $(ECHO) $(ECHO_N) "package '$${p}' ...$(ECHO_C)"; \
+	  out=`($(ECHO) "library(\"tools\")"; \
+	         $(ECHO) "checkS3methods(package = \"$${p}\")") | \
+	       $(R) -q | sed '/^>/d'`; \
+	  if test -n "$${out}"; then \
+	    $(ECHO) "$(ECHO_T) WARNING"; \
+	    $(ECHO); \
+	    $(ECHO) "$${out}"; \
+	    $(ECHO); \
+	  else \
+	    $(ECHO) "$(ECHO_T) OK"; \
+	  fi; \
+	done
+test-codoc:
+	@$(ECHO) "checking for code/documentation mismatches in functions"
+	@for p in $(R_PKGS_BASE); do \
+	  $(ECHO) $(ECHO_N) "package '$${p}' ...$(ECHO_C)"; \
+	  out=`($(ECHO) "library(\"tools\")"; \
+	         $(ECHO) "codoc(package = \"$${p}\")") | \
+	       $(R) -q | sed '/^>/d'`; \
+	  if test -n "$${out}"; then \
+	    $(ECHO) "$(ECHO_T) WARNING"; \
+	    $(ECHO); \
+	    $(ECHO) "$${out}"; \
+	    $(ECHO); \
+	  else \
+	    $(ECHO) "$(ECHO_T) OK"; \
+	  fi; \
+	done
+
+test-undoc:
+	@$(ECHO) "checking for missing documentation entries"
+	@for p in $(R_PKGS_BASE); do \
+	  $(ECHO) $(ECHO_N) "package '$${p}' ...$(ECHO_C)"; \
+	  out=`($(ECHO) "library(\"tools\")"; \
+	         $(ECHO) "undoc(package = \"$${p}\")") | \
+	       $(R) -q | sed '/^>/d'`; \
+	  if test -n "$${out}"; then \
+	    $(ECHO) "$(ECHO_T) WARNING"; \
+	    $(ECHO) "$${out}"; \
+	  else \
+	    $(ECHO) "$(ECHO_T) OK"; \
+	  fi; \
+	done
+
+test-Packages-Recommended:
+	@if test -n "${TEST_MC_CORES}"; then \
+	  $(ECHO) "Using ${TEST_MC_CORES} cores to check packages"; \
+	  $(MK) -j ${TEST_MC_CORES} test-Packages2-Recommended; \
+	else \
+	  $(MK) test-Packages1-Recommended; \
+	fi
+
+test-Packages1-Recommended:
+	@test -d RecPackages || mkdir RecPackages
+	@for p in $(R_PKGS_RECOMMENDED); do \
+	  rm -rf RecPackages/$${p}; \
+	  gzip -dc "$(top_srcdir)/src/library/Recommended/$${p}.tgz" | \
+	    (cd RecPackages && $(TAR) xf -) ; \
+	  $(ECHO) "checking package '$${p}'"; \
+	  R_LIBS="$(top_builddir)/library:$${R_LIBS}" \
+	    _R_CHECK_FORCE_SUGGESTS_=FALSE $(R3) --install=skip \
+	    --library="$(top_builddir)/library" RecPackages/$${p} || $(ECHO); \
+	done
+
+PKG_ROBJECTS = $(R_PKGS_RECOMMENDED:=.log)
+
+test-Packages2-Recommended:
+	@test -d RecPackages || mkdir RecPackages
+	@for p in $(R_PKGS_RECOMMENDED); do \
+	  touch $${p}.trin; \
+	done
+	+@$(MK) stamp-Packages2
+	@rm -f *.trin
+stamp-Packages2: $(PKG_ROBJECTS)
+
+.trin.log:
+	@p=`basename $@ .log`; \
+	rm -rf RecPackages/$${p}; \
+	gzip -dc "$(top_srcdir)/src/library/Recommended/$${p}.tgz" | \
+	    (cd RecPackages && $(TAR) xf -) ; \
+	  $(ECHO) "begin checking package '$${p}'"; \
+	  R_LIBS="$(top_builddir)/library:$${R_LIBS}" \
+	 _R_CHECK_FORCE_SUGGESTS_=FALSE $(R3) --install=skip \
+	    --library="$(top_builddir)/library" RecPackages/$${p}  > $@ 2>&1
+	@cat $@
+
+INSTFILES = README \
+	$(test-src-strict-1) $(test-src-strict-1:.R=.Rout.save) \
+	$(test-src-sloppy-1) $(test-src-sloppy-1:.R=.Rout.save) \
+	$(test-src-auto:.R=.Rin) isas-tests.Rout.save \
+	$(test-src-dt) datetime2.Rout.save \
+	$(test-src-demo) demos.Rout.save \
+	$(test-src-internet) $(test-src-internet2) internet.Rout.save \
+	$(test-src-primitive) \
+	$(test-src-random) p-r-random-tests.Rout.save \
+	$(test-src-reg) $(test-src-reg3) \
+	  reg-S4.Rout.save \
+	  reg-IO.Rout.save reg-IO2.Rout.save reg-plot.Rout.save \
+	  reg-plot.pdf.save reg-tests-2.Rout.save reg-tests-3.Rout.save \
+	  reg-examples3.Rout.save reg-plot-latin1.pdf.save \
+	  encodings.R utf8-regex.R \
+	  nanbug.rda WinUnicode.dat arima.rda EmbeddedNuls.csv
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/complex.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/complex.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/complex.R	(revision 2476)
@@ -0,0 +1,156 @@
+### Tests of complex arithemetic.
+
+Meps <- .Machine$double.eps
+## complex
+z <- 0i ^ (-3:3)
+stopifnot(Re(z) == 0 ^ (-3:3))
+
+
+## powers, including complex ones
+a <- -4:12
+m <- outer(a +0i, b <- seq(-.5,2, by=.5), "^")
+dimnames(m) <- list(paste(a), "^" = sapply(b,format))
+round(m,3)
+stopifnot(m[,as.character(0:2)] == cbind(1,a,a*a),
+                                        # latter were only approximate
+          all.equal(unname(m[,"0.5"]),
+                    sqrt(abs(a))*ifelse(a < 0, 1i, 1),
+                    tolerance = 20*Meps))
+
+## 2.10.0-2.12.1 got z^n wrong in the !HAVE_C99_COMPLEX case
+z <- 0.2853725+0.3927816i
+z2 <- z^(1:20)
+z3 <- z^-(1:20)
+z0 <- cumprod(rep(z, 20))
+stopifnot(all.equal(z2, z0), all.equal(z3, 1/z0))
+## was z^3 had value z^2 ....
+
+## fft():
+for(n in 1:30) cat("\nn=",n,":", round(fft(1:n), 8),"\n")
+
+
+## polyroot():
+stopifnot(abs(1 + polyroot(choose(8, 0:8))) < 1e-10)# maybe smaller..
+
+## precision of complex numbers
+signif(1.678932e80+0i, 5)
+signif(1.678932e-300+0i, 5)
+signif(1.678932e-302+0i, 5)
+signif(1.678932e-303+0i, 5)
+signif(1.678932e-304+0i, 5)
+signif(1.678932e-305+0i, 5)
+signif(1.678932e-306+0i, 5)
+signif(1.678932e-307+0i, 5)
+signif(1.678932e-308+0i, 5)
+signif(1.678932-1.238276i, 5)
+signif(1.678932-1.238276e-1i, 5)
+signif(1.678932-1.238276e-2i, 5)
+signif(1.678932-1.238276e-3i, 5)
+signif(1.678932-1.238276e-4i, 5)
+signif(1.678932-1.238276e-5i, 5)
+signif(8.678932-9.238276i, 5)
+## prior to 2.2.0 rounded real and imaginary parts separately.
+
+
+## Complex Trig.:
+abs(Im(cos(acos(1i))) -	 1) < 2*Meps
+abs(Im(sin(asin(1i))) -	 1) < 2*Meps
+##P (1 - Im(sin(asin(Ii))))/Meps
+##P (1 - Im(cos(acos(Ii))))/Meps
+abs(Im(asin(sin(1i))) -	 1) < 2*Meps
+all.equal(cos(1i), cos(-1i)) # i.e. Im(acos(*)) gives + or - 1i:
+abs(abs(Im(acos(cos(1i)))) - 1) < 4*Meps
+
+
+set.seed(123) # want reproducible output
+Isi <- Im(sin(asin(1i + rnorm(100))))
+all(abs(Isi-1) < 100* Meps)
+##P table(2*abs(Isi-1)	/ Meps)
+Isi <- Im(cos(acos(1i + rnorm(100))))
+all(abs(Isi-1) < 100* Meps)
+##P table(2*abs(Isi-1)	/ Meps)
+Isi <- Im(atan(tan(1i + rnorm(100)))) #-- tan(atan(..)) does NOT work (Math!)
+all(abs(Isi-1) < 100* Meps)
+##P table(2*abs(Isi-1)	/ Meps)
+
+set.seed(123)
+z <- complex(real = rnorm(100), imag = rnorm(100))
+stopifnot(Mod ( 1 -  sin(z) / ( (exp(1i*z)-exp(-1i*z))/(2*1i) )) < 20 * Meps)
+## end of moved from complex.Rd
+
+
+## PR#7781
+## This is not as given by e.g. glibc on AMD64
+(z <- tan(1+1000i)) # 0+1i from R's own code.
+stopifnot(is.finite(z))
+##
+
+
+## Branch cuts in complex inverse trig functions
+atan(2)
+atan(2+0i)
+tan(atan(2+0i))
+## should not expect exactly 0i in result
+round(atan(1.0001+0i), 7)
+round(atan(0.9999+0i), 7)
+## previously not as in Abramowitz & Stegun.
+
+
+## typo in z_atan2.
+(z <- atan2(0+1i, 0+0i))
+stopifnot(all.equal(z, pi/2+0i))
+## was NA in 2.1.1
+
+
+## Hyperbolic
+x <- seq(-3, 3, len=200)
+Meps <- .Machine$double.eps
+stopifnot(
+ Mod(cosh(x) - cos(1i*x))	< 20*Meps,
+ Mod(sinh(x) - sin(1i*x)/1i)	< 20*Meps
+)
+## end of moved from Hyperbolic.Rd
+
+## values near and on branch cuts
+options(digits=5)
+z <- c(2+0i, 2-0.0001i, -2+0i, -2+0.0001i)
+asin(z)
+acos(z)
+atanh(z)
+z <- c(0+2i, 0.0001+2i, 0-2i, -0.0001i-2i)
+asinh(z)
+acosh(z)
+atan(z)
+## According to C99, should have continuity from the side given if there
+## are not signed zeros.
+## Both glibc 2.12 and macOS 10.6 used continuity from above in the first set
+## but they seem to assume signed zeros.
+## Windows gave incorrect (NaN) values on the cuts.
+
+## Not a regression test, but rather one of the good cases:
+(cNaN <- as.complex("NaN"))
+stopifnot(identical(cNaN, complex(re = NaN)), is.nan(Re(cNaN)), Im(cNaN) == 0)
+dput(cNaN) ## (real = NaN, imaginary = 0)
+## Partly new behavior:
+(c0NaN  <- complex(real=0, im=NaN))
+(cNaNaN <- complex(re=NaN, im=NaN))
+stopifnot(identical(cNaN, as.complex(NaN)),
+          identical(vapply(c(cNaN, c0NaN, cNaNaN), format, ""),
+                    c("NaN+0i", "0+NaNi", "NaN+NaNi")),
+          identical(cNaN, NaN + 0i),
+          identical(cNaN, Conj(cNaN)),
+          identical(cNaN, cNaN+cNaN),
+
+          identical(cNaNaN, 1i * NaN),
+          identical(cNaNaN, complex(modulus= NaN)),
+          identical(cNaNaN, complex(argument= NaN)),
+          identical(cNaNaN, complex(arg=NaN, mod=NaN)),
+
+          identical(c0NaN, c0NaN+c0NaN), # !
+          ## Platform dependent, not TRUE e.g. on F21 gcc 4.9.2:
+          ## identical(NA_complex_, NaN + NA_complex_ ) ,
+          ## Probably TRUE, but by a standard ??
+          ## identical(cNaNaN, 2 * c0NaN), # C-library arithmetic
+          ## identical(cNaNaN, 2 * cNaN),  # C-library arithmetic
+          ## identical(cNaNaN, NA_complex_ * Inf),
+          TRUE)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/lm-tests.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/lm-tests.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/lm-tests.R	(revision 2476)
@@ -0,0 +1,78 @@
+###-- Linear Models, basic functionality -- weights included.
+
+## From John Maindonald :
+roller <- data.frame(
+ weight     = c(1.9,  3.1,  3.3,  4.8,  5.3,  6.1,  6.4,  7.6,  9.8, 12.4),
+ depression = c(  2,  1,    5,    5,   20,   20,   23,   10,   30,   25))
+
+roller.lmu  <-  lm(weight~depression, data=roller)
+roller.lsfu <- lsfit(roller$depression, roller$weight)
+
+roller.lsf  <- lsfit(roller$depression, roller$weight, wt = 1:10)
+roller.lsf0 <- lsfit(roller$depression, roller$weight, wt = 0:9)
+roller.lm  <-  lm(weight~depression, data=roller, weights= 1:10)
+roller.lm0 <-  lm(weight~depression, data=roller, weights= 0:9)
+roller.lm9 <-  lm(weight~depression, data=roller[-1,],weights= 1:9)
+roller.glm <- glm(weight~depression, data=roller, weights= 1:10)
+roller.glm0<- glm(weight~depression, data=roller, weights= 0:9)
+
+predict(roller.glm0, type="terms")# failed till 2003-03-31
+
+## FIXME : glm()$residual [1] is NA,  lm()'s is ok.
+## all.equal(residuals(roller.glm0, type = "partial"),
+##          residuals(roller.lm0,  type = "partial") )
+
+
+all.equal(deviance(roller.lm),
+          deviance(roller.glm))
+all.equal(weighted.residuals(roller.lm),
+          residuals         (roller.glm))
+
+all.equal(deviance(roller.lm0),
+          deviance(roller.glm0))
+all.equal(weighted.residuals(roller.lm0, drop=FALSE),
+          residuals         (roller.glm0))
+
+(im.lm0 <- influence.measures(roller.lm0))
+
+all.equal(unname(im.lm0 $ infmat),
+          unname(cbind(  dfbetas      (roller.lm0)
+                       , dffits       (roller.lm0)
+                       , covratio     (roller.lm0)
+                       ,cooks.distance(roller.lm0)
+                       ,lm.influence  (roller.lm0)$hat)
+                 ))
+
+all.equal(rstandard(roller.lm9),
+          rstandard(roller.lm0),tolerance = 1e-14)
+all.equal(rstudent(roller.lm9),
+          rstudent(roller.lm0),tolerance = 1e-14)
+all.equal(rstudent(roller.lm),
+          rstudent(roller.glm))
+all.equal(cooks.distance(roller.lm),
+          cooks.distance(roller.glm))
+
+
+all.equal(summary(roller.lm0)$coefficients,
+          summary(roller.lm9)$coefficients, tolerance = 1e-14)
+all.equal(print(anova(roller.lm0), signif.st=FALSE),
+                anova(roller.lm9), tolerance = 1e-14)
+
+
+###  more regression tests for lm(), glm(), etc :
+
+## moved from ?influence.measures:
+lm.SR <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)
+(IM <- influence.measures(lm.SR))
+summary(IM)
+## colnames will differ in the next line
+all.equal(dfbetas(lm.SR), IM$infmat[, 1:5], check.attributes = FALSE,
+          tolerance = 1e-12)
+
+signif(dfbeta(lm.SR), 3)
+covratio (lm.SR)
+
+## predict.lm(.)
+
+all.equal(predict(roller.lm,                 se.fit=TRUE)$se.fit,
+          predict(roller.lm, newdata=roller, se.fit=TRUE)$se.fit, tolerance =  1e-14)
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/internet2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/internet2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/internet2.R	(revision 2476)
@@ -0,0 +1,55 @@
+## These are tests that require socket and internet functionality, and
+## a working Internet connection.
+## We attempt to test for those.
+
+if(.Platform$OS.type == "unix" &&
+   is.null(nsl("cran.r-project.org"))) q()
+
+
+## check graceful failure:
+try(url("http://foo.bar", "r"))
+
+if(.Platform$OS.type == "windows")
+    try(url("http://foo.bar", "r", method = "wininet"))
+
+## everything from here on is directly over sockets
+if(!capabilities("sockets")) stop("no socket capabilities")
+
+# do the same thing via sockets (cut-down httpclient)
+httpget <- function (url, port = 80)
+{
+    urlel <- strsplit(url, "/")[[1]]
+    if (urlel[1] != "http:") stop("Not an http:// URL")
+    host <- urlel[3]
+    rurl <- paste(c("", urlel[-(1:3)]), collapse = "/")
+    a <- make.socket(host, port = port)
+    on.exit(close.socket(a))
+    headreq <- paste("HEAD", rurl, "HTTP/1.0\r\nConnection: Keep-Alive\r\nAccept: text/plain\r\n\r\n")
+    write.socket(a, headreq)
+    head <- read.socket(a, maxlen = 8000)
+    b <- strsplit(head, "\n")[[1]]
+    if (length(grep("200 OK", b[1])) == 0) stop(b[1])
+    len <- as.numeric(strsplit(grep("Content-Length", b, value = TRUE),
+                               ":")[[1]][2])
+    getreq <- paste("GET", rurl, "HTTP/1.0\r\nConnection: Keep-Alive\r\nAccept: text/plain\r\n\r\n")
+    write.socket(a, getreq)
+    junk <- read.socket(a, maxlen = nchar(head))
+    data <- ""
+    b <- strsplit(c(head, junk), "\n")
+    nn <- length(b[[1]])
+    if (length(b[[2]]) > nn)
+        data <- paste(b[[2]][-(1:nn)], collapse = "\n")
+    while (nchar(data) < len) {
+        data <- paste(data, read.socket(a, maxlen = len - nchar(data)),
+                      sep = "")
+    }
+    strsplit(data, "\n")[[1]]
+}
+
+if(nzchar(Sys.getenv("http_proxy")) || nzchar(Sys.getenv("HTTP_PROXY"))) {
+    cat("http proxy is set, so skip test of http over sockets\n")
+} else {
+    f <- httpget("http://www.stats.ox.ac.uk/pub/datasets/csb/ch11b.dat")
+    str(f)
+    stopifnot(length(f) == 100L)
+}
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/WinUnicode.dat
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/WinUnicode.dat
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-examples2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-examples2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-examples2.R	(revision 2476)
@@ -0,0 +1,38 @@
+## For examples skipped in testing because they are 'random'
+
+## some should still be skipped when  --with-recommended-packages=no :
+## (This is not really right as could be installed elsewhere.)
+base.and.rec <- .packages(all.available = TRUE, lib = .Library)
+
+set.seed(1)
+if(.Platform$OS.type == "windows") options(pager = "console")
+
+pdf("reg-examples-2.pdf", encoding = "ISOLatin1.enc")
+
+
+## stats
+example(SSasympOrig, run.donttest = TRUE)
+example(SSlogis, run.donttest = TRUE)
+example(constrOptim, run.donttest = TRUE)
+example(cancor, run.donttest = TRUE)
+example(aov, run.donttest = TRUE)
+# signs for promax rotation are arbitrary
+example(factanal, run.donttest = TRUE)
+example(family, run.donttest = TRUE)
+example(fft, run.donttest = TRUE)
+example(glm, run.donttest = ("MASS" %in% base.and.rec))
+example(glm.control, run.donttest = TRUE)
+# from extractAIC
+extractAIC(glm.D93)
+example(influence.measures, run.donttest = TRUE)
+example(lm, run.donttest = TRUE)
+example(ls.diag, run.donttest = TRUE)
+example(model.tables, run.donttest = TRUE)
+example(nlminb, run.donttest = TRUE)
+example(optim, run.donttest = TRUE)
+example(prcomp, run.donttest = TRUE)
+example(step, run.donttest = TRUE)
+example(summary.manova, run.donttest = TRUE)
+example(uniroot, run.donttest = TRUE)
+
+proc.time()
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-2.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-2.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-tests-2.R	(revision 2476)
@@ -0,0 +1,3021 @@
+## Regression tests for which the printed output is the issue
+### _and_ must work (no Recommended packages, please)
+
+pdf("reg-tests-2.pdf", encoding = "ISOLatin1.enc")
+
+## force standard handling for data frames
+options(stringsAsFactors=TRUE)
+options(useFancyQuotes=FALSE)
+
+### moved from various .Rd files
+## abbreviate
+for(m in 1:5) {
+  cat("\n",m,":\n")
+  print(as.vector(abbreviate(state.name, minl=m)))
+}
+
+## apply
+x <- cbind(x1 = 3, x2 = c(4:1, 2:5))
+dimnames(x)[[1]] <- letters[1:8]
+apply(x,  2, summary) # 6 x n matrix
+apply(x,  1, quantile)# 5 x n matrix
+
+d.arr <- 2:5
+arr <- array(1:prod(d.arr), d.arr,
+         list(NULL,letters[1:d.arr[2]],NULL,paste("V",4+1:d.arr[4],sep="")))
+aa <- array(1:20,c(2,2,5))
+str(apply(aa[FALSE,,,drop=FALSE], 1, dim))# empty integer, `incorrect' dim.
+stopifnot(
+       apply(arr, 1:2, sum) == t(apply(arr, 2:1, sum)),
+       aa == apply(aa,2:3,function(x) x),
+       all.equal(apply(apply(aa,2:3, sum),2,sum),
+                 10+16*0:4, tolerance = 4*.Machine$double.eps)
+)
+marg <- list(1:2, 2:3, c(2,4), c(1,3), 2:4, 1:3, 1:4)
+for(m in marg) print(apply(arr, print(m), sum))
+for(m in marg) ## 75% of the time here was spent on the names
+  print(dim(apply(arr, print(m), quantile, names=FALSE)) == c(5,d.arr[m]))
+
+## Bessel
+nus <- c(0:5,10,20)
+
+x0 <- 2^(-20:10)
+plot(x0,x0, log='xy', ylab="", ylim=c(.1,1e60),type='n',
+     main = "Bessel Functions -Y_nu(x)  near 0\n log - log  scale")
+for(nu in sort(c(nus,nus+.5))) lines(x0, -besselY(x0,nu=nu), col = nu+2)
+legend(3,1e50, leg=paste("nu=", paste(nus,nus+.5, sep=",")), col=nus+2, lwd=1)
+
+x <- seq(3,500);yl <- c(-.3, .2)
+plot(x,x, ylim = yl, ylab="",type='n', main = "Bessel Functions  Y_nu(x)")
+for(nu in nus){xx <- x[x > .6*nu]; lines(xx,besselY(xx,nu=nu), col = nu+2)}
+legend(300,-.08, leg=paste("nu=",nus), col = nus+2, lwd=1)
+
+x <- seq(10,50000,by=10);yl <- c(-.1, .1)
+plot(x,x, ylim = yl, ylab="",type='n', main = "Bessel Functions  Y_nu(x)")
+for(nu in nus){xx <- x[x > .6*nu]; lines(xx,besselY(xx,nu=nu), col = nu+2)}
+summary(bY <- besselY(2,nu = nu <- seq(0,100,len=501)))
+which(bY >= 0)
+summary(bY <- besselY(2,nu = nu <- seq(3,300,len=51)))
+summary(bI <- besselI(x = x <- 10:700, 1))
+## end of moved from Bessel.Rd
+
+## data.frame
+set.seed(123)
+L3 <- LETTERS[1:3]
+d <- data.frame(cbind(x=1, y=1:10), fac = sample(L3, 10, replace=TRUE))
+str(d)
+(d0  <- d[, FALSE]) # NULL dataframe with 10 rows
+(d.0 <- d[FALSE, ]) # <0 rows> dataframe  (3 cols)
+(d00 <- d0[FALSE,]) # NULL dataframe with 0 rows
+stopifnot(identical(d, cbind(d, d0)),
+          identical(d, cbind(d0, d)))
+stopifnot(identical(d, rbind(d,d.0)),
+          identical(d, rbind(d.0,d)),
+          identical(d, rbind(d00,d)),
+          identical(d, rbind(d,d00)))
+## Comments: failed before ver. 1.4.0
+
+## diag
+diag(array(1:4, dim=5))
+## test behaviour with 0 rows or columns
+diag(0)
+z <- matrix(0, 0, 4)
+diag(z)
+diag(z) <- numeric(0)
+z
+## end of moved from diag.Rd
+
+## format
+## handling of quotes
+zz <- data.frame(a=I("abc"), b=I("def\"gh"))
+format(zz)
+## " (E fontification)
+
+## printing more than 16 is platform-dependent
+for(i in c(1:5,10,15,16)) cat(i,":\t",format(pi,digits=i),"\n")
+
+p <- c(47,13,2,.1,.023,.0045, 1e-100)/1000
+format.pval(p)
+format.pval(p / 0.9)
+format.pval(p / 0.9, dig=3)
+## end of moved from format.Rd
+
+
+## is.finite
+x <- c(100,-1e-13,Inf,-Inf, NaN, pi, NA)
+x #  1.000000 -3.000000       Inf      -Inf        NA  3.141593        NA
+names(x) <- formatC(x, dig=3)
+is.finite(x)
+##-   100 -1e-13 Inf -Inf NaN 3.14 NA
+##-     T      T   .    .   .    T  .
+is.na(x)
+##-   100 -1e-13 Inf -Inf NaN 3.14 NA
+##-     .      .   .    .   T    .  T
+which(is.na(x) & !is.nan(x))# only 'NA': 7
+
+is.na(x) | is.finite(x)
+##-   100 -1e-13 Inf -Inf NaN 3.14 NA
+##-     T      T   .    .   T    T  T
+is.infinite(x)
+##-   100 -1e-13 Inf -Inf NaN 3.14 NA
+##-     .      .   T    T   .    .  .
+
+##-- either  finite or infinite  or  NA:
+all(is.na(x) != is.finite(x) | is.infinite(x)) # TRUE
+all(is.nan(x) != is.finite(x) | is.infinite(x)) # FALSE: have 'real' NA
+
+##--- Integer
+(ix <- structure(as.integer(x),names= names(x)))
+##-   100 -1e-13    Inf   -Inf    NaN   3.14     NA
+##-   100      0     NA     NA     NA      3     NA
+all(is.na(ix) != is.finite(ix) | is.infinite(ix)) # TRUE (still)
+
+storage.mode(ii <- -3:5)
+storage.mode(zm <- outer(ii,ii, FUN="*"))# integer
+storage.mode(zd <- outer(ii,ii, FUN="/"))# double
+range(zd, na.rm=TRUE)# -Inf  Inf
+zd[,ii==0]
+
+(storage.mode(print(1:1 / 0:0)))# Inf "double"
+(storage.mode(print(1:1 / 1:1)))# 1 "double"
+(storage.mode(print(1:1 + 1:1)))# 2 "integer"
+(storage.mode(print(2:2 * 2:2)))# 4 "integer"
+## end of moved from is.finite.Rd
+
+
+## kronecker
+fred <- matrix(1:12, 3, 4, dimnames=list(LETTERS[1:3], LETTERS[4:7]))
+bill <- c("happy" = 100, "sad" = 1000)
+kronecker(fred, bill, make.dimnames = TRUE)
+
+bill <- outer(bill, c("cat"=3, "dog"=4))
+kronecker(fred, bill, make.dimnames = TRUE)
+
+# dimnames are hard work: let's test them thoroughly
+
+dimnames(bill) <- NULL
+kronecker(fred, bill, make=TRUE)
+kronecker(bill, fred, make=TRUE)
+
+dim(bill) <- c(2, 2, 1)
+dimnames(bill) <- list(c("happy", "sad"), NULL, "")
+kronecker(fred, bill, make=TRUE)
+
+bill <- array(1:24, c(3, 4, 2))
+dimnames(bill) <- list(NULL, NULL, c("happy", "sad"))
+kronecker(bill, fred, make=TRUE)
+kronecker(fred, bill, make=TRUE)
+
+fred <- outer(fred, c("frequentist"=4, "bayesian"=4000))
+kronecker(fred, bill, make=TRUE)
+## end of moved from kronecker.Rd
+
+## merge
+authors <- data.frame(
+    surname = c("Tukey", "Venables", "Tierney", "Ripley", "McNeil"),
+    nationality = c("US", "Australia", "US", "UK", "Australia"),
+    deceased = c("yes", rep("no", 4)))
+books <- data.frame(
+    name = c("Tukey", "Venables", "Tierney",
+             "Ripley", "Ripley", "McNeil", "R Core"),
+    title = c("Exploratory Data Analysis",
+              "Modern Applied Statistics ...",
+              "LISP-STAT",
+              "Spatial Statistics", "Stochastic Simulation",
+              "Interactive Data Analysis",
+              "An Introduction to R"),
+    other.author = c(NA, "Ripley", NA, NA, NA, NA,
+                     "Venables & Smith"))
+b2 <- books; names(b2)[1] <- names(authors)[1]
+
+merge(authors, b2, all.x = TRUE)
+merge(authors, b2, all.y = TRUE)
+
+## empty d.f. :
+merge(authors, b2[7,])
+
+merge(authors, b2[7,], all.y = TRUE)
+merge(authors, b2[7,], all.x = TRUE)
+## end of moved from merge.Rd
+
+## NA
+is.na(c(1,NA))
+is.na(paste(c(1,NA)))
+is.na(list())# logical(0)
+ll <- list(pi,"C",NaN,Inf, 1:3, c(0,NA), NA)
+is.na (ll)
+lapply(ll, is.nan)  # is.nan no longer works on lists
+## end of moved from NA.Rd
+
+## is.na was returning unset values on nested lists
+ll <- list(list(1))
+for (i in 1:5) print(as.integer(is.na(ll)))
+
+## scale
+## test out NA handling
+tm <- matrix(c(2,1,0,1,0,NA,NA,NA,0), nrow=3)
+scale(tm, , FALSE)
+scale(tm)
+## end of moved from scale.Rd
+
+## tabulate
+tabulate(numeric(0))
+## end of moved from tabulate.Rd
+
+## ts
+# Ensure working arithmetic for `ts' objects :
+stopifnot(z == z)
+stopifnot(z-z == 0)
+
+ts(1:5, start=2, end=4) # truncate
+ts(1:5, start=3, end=17)# repeat
+## end of moved from ts.Rd
+
+### end of moved
+
+
+## PR 715 (Printing list elements w/attributes)
+##
+l <- list(a=10)
+attr(l$a, "xx") <- 23
+l
+## Comments:
+## should print as
+# $a:
+# [1] 10
+# attr($a, "xx"):
+# [1] 23
+
+## On the other hand
+m <- matrix(c(1, 2, 3, 0, 10, NA), 3, 2)
+na.omit(m)
+## should print as
+#      [,1] [,2]
+# [1,]    1    0
+# [2,]    2   10
+# attr(,"na.action")
+# [1] 3
+# attr(,"na.action")
+# [1] "omit"
+
+## and
+x <- 1
+attr(x, "foo") <- list(a="a")
+x
+## should print as
+# [1] 1
+# attr(,"foo")
+# attr(,"foo")$a
+# [1] "a"
+
+
+## PR 746 (printing of lists)
+##
+test.list <- list(A = list(formula=Y~X, subset=TRUE),
+                  B = list(formula=Y~X, subset=TRUE))
+
+test.list
+## Comments:
+## should print as
+# $A
+# $A$formula
+# Y ~ X
+#
+# $A$subset
+# [1] TRUE
+#
+#
+# $B
+# $B$formula
+# Y ~ X
+#
+# $B$subset
+# [1] TRUE
+
+## Marc Feldesman 2001-Feb-01.  Precision in summary.data.frame & *.matrix
+summary(attenu)
+summary(attenu, digits = 5)
+summary(data.matrix(attenu), digits = 5)# the same for matrix
+## Comments:
+## No difference between these in 1.2.1 and earlier
+set.seed(1)
+x <- c(round(runif(10), 2), 10000)
+summary(x)
+summary(data.frame(x))
+## Comments:
+## All entries show all 3 digits after the decimal point now.
+
+## Chong Gu 2001-Feb-16.  step on binomials
+detg1 <-
+structure(list(Temp = structure(c(2L, 1L, 2L, 1L, 2L, 1L, 2L,
+    1L, 2L, 1L, 2L, 1L), .Label = c("High", "Low"), class = "factor"),
+    M.user = structure(c(1L, 1L, 2L, 2L, 1L, 1L, 2L, 2L, 1L,
+    1L, 2L, 2L), .Label = c("N", "Y"), class = "factor"),
+    Soft = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L),
+    .Label = c("Hard", "Medium", "Soft"), class = "factor"),
+    M = c(42, 30, 52, 43,
+    50, 23, 55, 47, 53, 27, 49, 29), X = c(68, 42, 37, 24, 66,
+    33, 47, 23, 63, 29, 57, 19)), .Names = c("Temp", "M.user",
+"Soft", "M", "X"), class = "data.frame", row.names = c("1", "3",
+"5", "7", "9", "11", "13", "15", "17", "19", "21", "23"))
+detg1.m0 <- glm(cbind(X,M)~1,binomial,detg1)
+detg1.m0
+step(detg1.m0,scope=list(upper=~M.user*Temp*Soft))
+
+## PR 829 (empty values in all.vars)
+## This example by Uwe Ligges <ligges@statistik.uni-dortmund.de>
+
+temp <- matrix(1:4, 2)
+all.vars(temp ~ 3) # OK
+all.vars(temp[1, ] ~ 3) # wrong in 1.2.1
+
+## 2001-Feb-22 from David Scott.
+## rank-deficient residuals in a manova model.
+gofX.df<-
+  structure(list(A = c(0.696706709347165, 0.362357754476673,
+-0.0291995223012888,
+0.696706709347165, 0.696706709347165, -0.0291995223012888, 0.696706709347165,
+-0.0291995223012888, 0.362357754476673, 0.696706709347165, -0.0291995223012888,
+0.362357754476673, -0.416146836547142, 0.362357754476673, 0.696706709347165,
+0.696706709347165, 0.362357754476673, -0.416146836547142, -0.0291995223012888,
+-0.416146836547142, 0.696706709347165, -0.416146836547142, 0.362357754476673,
+-0.0291995223012888), B = c(0.717356090899523, 0.932039085967226,
+0.999573603041505, 0.717356090899523, 0.717356090899523, 0.999573603041505,
+0.717356090899523, 0.999573603041505, 0.932039085967226, 0.717356090899523,
+0.999573603041505, 0.932039085967226, 0.909297426825682, 0.932039085967226,
+0.717356090899523, 0.717356090899523, 0.932039085967226, 0.909297426825682,
+0.999573603041505, 0.909297426825682, 0.717356090899523, 0.909297426825682,
+0.932039085967226, 0.999573603041505), C = c(-0.0291995223012888,
+-0.737393715541246, -0.998294775794753, -0.0291995223012888,
+-0.0291995223012888, -0.998294775794753, -0.0291995223012888,
+-0.998294775794753, -0.737393715541246, -0.0291995223012888,
+-0.998294775794753, -0.737393715541246, -0.653643620863612, -0.737393715541246,
+-0.0291995223012888, -0.0291995223012888, -0.737393715541246,
+-0.653643620863612, -0.998294775794753, -0.653643620863612,
+-0.0291995223012888,
+-0.653643620863612, -0.737393715541246, -0.998294775794753),
+    D = c(0.999573603041505, 0.67546318055115, -0.0583741434275801,
+    0.999573603041505, 0.999573603041505, -0.0583741434275801,
+    0.999573603041505, -0.0583741434275801, 0.67546318055115,
+    0.999573603041505, -0.0583741434275801, 0.67546318055115,
+    -0.756802495307928, 0.67546318055115, 0.999573603041505,
+    0.999573603041505, 0.67546318055115, -0.756802495307928,
+    -0.0583741434275801, -0.756802495307928, 0.999573603041505,
+    -0.756802495307928, 0.67546318055115, -0.0583741434275801
+    ), groups = structure(c(1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+    2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3), class = "factor", .Label = c("1",
+    "2", "3"))), .Names = c("A", "B", "C", "D", "groups"), row.names = 1:24,
+            class = "data.frame")
+
+gofX.manova <- manova(formula = cbind(A, B, C, D) ~ groups, data = gofX.df)
+try(summary(gofX.manova))
+## should fail with an error message `residuals have rank 3 < 4'
+
+## Prior to 1.3.0 dist did not handle missing values, and the
+## internal C code was incorrectly scaling for missing values.
+z <- as.matrix(t(trees))
+z[1,1] <- z[2,2] <- z[3,3] <- z[2,4] <- NA
+dist(z, method="euclidean")
+dist(z, method="maximum")
+dist(z, method="manhattan")
+dist(z, method="canberra")
+
+## F. Tusell 2001-03-07.  printing kernels.
+kernel("daniell", m=5)
+kernel("modified.daniell", m=5)
+kernel("daniell", m=c(3,5,7))
+## fixed by patch from Adrian Trapletti 2001-03-08
+
+## Start new year (i.e. line) at Jan:
+(tt <- ts(1:10, start = c(1920,7), end = c(1921,4), freq = 12))
+cbind(tt, tt + 1)
+
+
+## PR 883 (cor(x,y) when is.null(y))
+try(cov(rnorm(10), NULL))
+try(cor(rnorm(10), NULL))
+## gave the variance and 1 respectively in 1.2.2.
+
+
+## PR 960 (format() of a character matrix converts to vector)
+## example from <John.Peters@tip.csiro.au>
+a <- matrix(c("axx","b","c","d","e","f","g","h"), nrow=2)
+format(a)
+format(a, justify="right")
+## lost dimensions in 1.2.3
+
+
+## PR 963
+res <- svd(rbind(1:7))## $v lost dimensions in 1.2.3
+if(res$u[1,1] < 0) {res$u <- -res$u; res$v <- -res$v}
+res
+
+
+## Make sure  on.exit() keeps being evaluated in the proper env [from PD]:
+## A more complete example:
+g1 <- function(fitted) { on.exit(remove(fitted)); return(function(foo) foo) }
+g2 <- function(fitted) { on.exit(remove(fitted));        function(foo) foo }
+f <- function(g) { fitted <- 1; h <- g(fitted); print(fitted)
+                   ls(envir=environment(h)) }
+f(g1)
+f(g2)
+
+f2 <- function()
+{
+  g.foo <- g1
+  g.bar <- g2
+  g <- function(x,...) UseMethod("g")
+  fitted <- 1; class(fitted) <- "foo"
+  h <- g(fitted); print(fitted); print(ls(envir=environment(h)))
+  fitted <- 1; class(fitted) <- "bar"
+  h <- g(fitted); print(fitted); print(ls(envir=environment(h)))
+  invisible(NULL)
+}
+f2()
+## The first case in f2() is broken in 1.3.0(-patched).
+
+## on.exit() consistency check from Luke:
+g <- function() as.environment(-1)
+f <- function(x) UseMethod("f")
+f.foo <- function(x) { on.exit(e <<- g()); NULL }
+f.bar <- function(x) { on.exit(e <<- g()); return(NULL) }
+f(structure(1,class = "foo"))
+ls(env = e)# only "x", i.e. *not* the GlobalEnv
+f(structure(1,class = "bar"))
+stopifnot("x" == ls(env = e))# as above; wrongly was .GlobalEnv in R 1.3.x
+
+
+## some tests that R supports logical variables in formulae
+## it coerced them to numeric prior to 1.4.0
+## they should appear like 2-level factors, following S
+
+oldCon <- options("contrasts")
+y <- rnorm(10)
+x <- rep(c(TRUE, FALSE), 5)
+model.matrix(y ~ x)
+lm(y ~ x)
+DF <- data.frame(x, y)
+lm(y ~ x, data=DF)
+options(contrasts=c("contr.helmert", "contr.poly"))
+model.matrix(y ~ x)
+lm(y ~ x, data=DF)
+z <- 1:10
+lm(y ~ x*z)
+lm(y ~ x*z - 1)
+options(oldCon)
+
+## diffinv, Adrian Trapletti, 2001-08-27
+x <- ts(1:10)
+diffinv(diff(x),xi=x[1])
+diffinv(diff(x,lag=1,differences=2),lag=1,differences=2,xi=x[1:2])
+## last had wrong start and end
+
+## PR#1072  (Reading Inf and NaN values)
+as.numeric(as.character(NaN))
+as.numeric(as.character(Inf))
+## were NA on Windows at least under 1.3.0.
+
+## PR#1092 (rowsum dimnames)
+rowsum(matrix(1:12, 3,4), c("Y","X","Y"))
+## rownames were 1,2 in <= 1.3.1.
+
+## PR#1115 (saving strings with ascii=TRUE)
+x <- y <- unlist(as.list(
+    parse(text=paste("\"\\", as.character(as.octmode(1:255)), "\"",sep=""))))
+save(x, ascii=TRUE, file=(fn <- tempfile()))
+load(fn)
+all(x==y)
+unlink(fn)
+## 1.3.1 had trouble with \
+
+
+## Some tests of sink() and connections()
+## capture all the output to a file.
+zz <- file("all.Rout", open="wt")
+sink(zz)
+sink(zz, type="message")
+try(log("a"))
+## back to the console
+sink(type="message")
+sink()
+try(log("a"))
+
+## capture all the output to a file.
+zz <- file("all.Rout", open="wt")
+sink(zz)
+sink(zz, type="message")
+try(log("a"))
+
+## bail out
+closeAllConnections()
+(foo <- showConnections())
+stopifnot(nrow(foo) == 0)
+try(log("a"))
+unlink("all.Rout")
+## many of these were untested before 1.4.0.
+
+
+## test mean() works on logical but not factor
+x <- c(TRUE, FALSE, TRUE, TRUE)
+mean(x)
+mean(as.factor(x))
+## last had confusing error message in 1.3.1.
+
+
+## Kurt Hornik 2001-Nov-13
+z <- table(x = 1:2, y = 1:2)
+z - 1
+unclass(z - 1)
+## lost object bit prior to 1.4.0, so printed class attribute.
+
+
+## PR#1226  (predict.mlm ignored newdata)
+ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
+trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
+group <- gl(2,10,20, labels = c("Ctl","Trt"))
+weight <- c(ctl, trt)
+data <- data.frame(weight, group)
+fit <- lm(cbind(w=weight, w2=weight^2) ~ group, data=data)
+predict(fit, newdata=data[1:2, ])
+## was 20 rows in R <= 1.4.0
+
+
+## Chong Gu 2002-Feb-8: `.' not expanded in drop1
+lab <- dimnames(HairEyeColor)
+HairEye <- cbind(expand.grid(Hair=lab$Hair, Eye=lab$Eye, Sex=lab$Sex,
+			     stringsAsFactors = TRUE),
+		 Fr = as.vector(HairEyeColor))
+HairEye.fit <- glm(Fr ~ . ^2, poisson, HairEye)
+drop1(HairEye.fit)
+## broken around 1.2.1 it seems.
+
+
+## PR#1329  (subscripting matrix lists)
+m <- list(a1=1:3, a2=4:6, a3=pi, a4=c("a","b","c"))
+dim(m) <- c(2,2)
+m
+m[,2]
+m[2,2]
+## 1.4.1 returned null components: the case was missing from a switch.
+
+m <- list(a1=1:3, a2=4:6, a3=pi, a4=c("a","b","c"))
+matrix(m, 2, 2)
+## 1.4.1 gave `Unimplemented feature in copyVector'
+
+x <- vector("list",6)
+dim(x) <- c(2,3)
+x[1,2] <- list(letters[10:11])
+x
+## 1.4.1 gave `incompatible types in subset assignment'
+
+
+## printing of matrix lists
+m <- list(as.integer(1), pi, 3+5i, "testit", TRUE, factor("foo"))
+dim(m) <- c(1, 6)
+m
+## prior to 1.5.0 had quotes for 2D case (but not kD, k > 2),
+## gave "numeric,1" etc, (even "numeric,1" for integers and factors)
+
+
+## ensure RNG is unaltered.
+for(type in c("Wichmann-Hill", "Marsaglia-Multicarry", "Super-Duper",
+              "Mersenne-Twister", "Knuth-TAOCP", "Knuth-TAOCP-2002"))
+{
+    set.seed(123, type)
+    print(RNGkind())
+    runif(100); print(runif(4))
+    set.seed(1000, type)
+    runif(100); print(runif(4))
+    set.seed(77, type)
+    runif(100); print(runif(4))
+}
+RNGkind(normal.kind = "Kinderman-Ramage")
+set.seed(123)
+RNGkind()
+rnorm(4)
+RNGkind(normal.kind = "Ahrens-Dieter")
+set.seed(123)
+RNGkind()
+rnorm(4)
+RNGkind(normal.kind = "Box-Muller")
+set.seed(123)
+RNGkind()
+rnorm(4)
+set.seed(123)
+runif(4)
+set.seed(123, "default")
+set.seed(123, "Marsaglia-Multicarry") ## Careful, not the default anymore
+runif(4)
+## last set.seed failed < 1.5.0.
+
+
+## merging, ggrothendieck@yifan.net, 2002-03-16
+d.df <- data.frame(x = 1:3, y = c("A","D","E"), z = c(6,9,10))
+merge(d.df[1,], d.df)
+## 1.4.1 got confused by inconsistencies in as.character
+
+
+## PR#1394 (levels<-.factor)
+f <- factor(c("a","b"))
+levels(f) <- list(C="C", A="a", B="b")
+f
+## was  [1] C A; Levels:  C A  in 1.4.1
+
+
+## PR#1408 Inconsistencies in sum()
+x <- as.integer(2^30)
+sum(x, x)    # did not warn in 1.4.1
+sum(c(x, x)) # did warn
+(z <- sum(x, x, 0.0)) # was NA in 1.4.1
+typeof(z)
+
+
+## NA levels in factors
+(x <- factor(c("a", "NA", "b"), exclude=NULL))
+## 1.4.1 had wrong order for levels
+is.na(x)[3] <- TRUE
+x
+## missing entry prints as <NA>
+
+
+## printing/formatting NA strings
+(x <- c("a", "NA", NA, "b"))
+print(x, quote = FALSE)
+paste(x)
+format(x)
+format(x, justify = "right")
+format(x, justify = "none")
+## not ideal.
+
+
+## print.ts problems  ggrothendieck@yifan.net on R-help, 2002-04-01
+x <- 1:20
+tt1 <- ts(x,start=c(1960,2), freq=12)
+tt2 <- ts(10+x,start=c(1960,2), freq=12)
+cbind(tt1, tt2)
+## 1.4.1 had `Jan 1961' as `NA 1961'
+## ...and 1.9.1 had it as `Jan 1960'!!
+
+## glm boundary bugs (related to PR#1331)
+x <- c(0.35, 0.64, 0.12, 1.66, 1.52, 0.23, -1.99, 0.42, 1.86, -0.02,
+       -1.64, -0.46, -0.1, 1.25, 0.37, 0.31, 1.11, 1.65, 0.33, 0.89,
+       -0.25, -0.87, -0.22, 0.71, -2.26, 0.77, -0.05, 0.32, -0.64, 0.39,
+       0.19, -1.62, 0.37, 0.02, 0.97, -2.62, 0.15, 1.55, -1.41, -2.35,
+       -0.43, 0.57, -0.66, -0.08, 0.02, 0.24, -0.33, -0.03, -1.13, 0.32,
+       1.55, 2.13, -0.1, -0.32, -0.67, 1.44, 0.04, -1.1, -0.95, -0.19,
+       -0.68, -0.43, -0.84, 0.69, -0.65, 0.71, 0.19, 0.45, 0.45, -1.19,
+       1.3, 0.14, -0.36, -0.5, -0.47, -1.31, -1.02, 1.17, 1.51, -0.33,
+       -0.01, -0.59, -0.28, -0.18, -1.07, 0.66, -0.71, 1.88, -0.14,
+       -0.19, 0.84, 0.44, 1.33, -0.2, -0.45, 1.46, 1, -1.02, 0.68, 0.84)
+y <- c(1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0,
+       0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1,
+       1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1,
+       0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1,
+       1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0)
+try(glm(y ~ x, family = poisson(identity)))
+## failed because start = NULL in 1.4.1
+## now gives useful error message
+glm(y ~ x, family = poisson(identity), start = c(1,0))
+## step reduction failed in 1.4.1
+set.seed(123)
+y <- rpois(100, pmax(3*x, 0))
+glm(y ~ x, family = poisson(identity), start = c(1,0))
+warnings()
+
+
+## extending char arrrays
+x <- y <- LETTERS[1:2]
+x[5] <- "C"
+length(y) <- 5
+x
+y
+## x was filled with "", y with NA in 1.5.0
+
+
+## formula with no intercept, 2002-07-22
+oldcon <- options(contrasts = c("contr.helmert", "contr.poly"))
+U <- gl(3, 6, 18, labels=letters[1:3])
+V <- gl(3, 2, 18, labels=letters[1:3])
+A <- rep(c(0, 1), 9)
+B <- rep(c(1, 0), 9)
+set.seed(1); y <- rnorm(18)
+terms(y ~ A:U + A:V - 1)
+lm(y ~ A:U + A:V - 1)$coefficients  # 1.5.1 used dummies coding for V
+lm(y ~ (A + B) : (U + V) - 1) # 1.5.1 used dummies coding for A:V but not B:V
+options(oldcon)
+## 1.5.1 miscomputed the first factor in the formula.
+
+
+## quantile extremes, MM 13 Apr 2000 and PR#1852
+(qq <- sapply(0:5, function(k) {
+    x <- c(rep(-Inf,k+1), 0:k, rep(Inf, k))
+    sapply(1:9, function(typ)
+           quantile(x, pr=(2:10)/10, type=typ))
+}, simplify="array"))
+x <- c(-Inf, -Inf, Inf, Inf)
+median(x)
+quantile(x)
+## 1.5.1 had -Inf not NaN in several places
+
+
+## NAs in matrix dimnames
+z <- matrix(1:9, 3, 3)
+dimnames(z) <- list(c("x", "y", NA), c(1, NA, 3))
+z
+## NAs in dimnames misaligned when printing in 1.5.1
+
+
+## weighted aov (PR#1930)
+r <- c(10,23,23,26,17,5,53,55,32,46,10,8,10,8,23,0,3,22,15,32,3)
+n <- c(39,62,81,51,39,6,74,72,51,79,13,16,30,28,45,4,12,41,30,51,7)
+trt <- factor(rep(1:4,c(5,6,5,5)))
+Y <- r/n
+z <- aov(Y ~ trt, weights=n)
+## 1.5.1 gave unweighted RSS
+
+
+## rbind (PR#2266)
+test <- as.data.frame(matrix(1:25, 5, 5))
+test1 <- matrix(-(1:10), 2, 5)
+rbind(test, test1)
+rbind(test1, test)
+## 1.6.1 treated matrix as a vector.
+
+
+## escapes in non-quoted printing
+x <- "\\abc\\"
+names(x) <- 1
+x
+print(x, quote=FALSE)
+## 1.6.2 had label misaligned
+
+
+## summary on data frames containing data frames (PR#1891)
+x <- data.frame(1:10)
+x$z <- data.frame(x=1:10,yyy=11:20)
+summary(x)
+## 1.6.2 had NULL labels on output with z columns stacked.
+
+
+## re-orderings in terms.formula (PR#2206)
+form <- formula(y ~ a + b:c + d + e + e:d)
+(tt <- terms(form))
+(tt2 <- terms(formula(tt)))
+stopifnot(identical(tt, tt2))
+terms(delete.response(tt))
+## both tt and tt2 re-ordered the formula < 1.7.0
+## now try with a dot
+terms(breaks ~ ., data = warpbreaks)
+terms(breaks ~ . - tension, data = warpbreaks)
+terms(breaks ~ . - tension, data = warpbreaks, simplify = TRUE)
+terms(breaks ~ . ^2, data = warpbreaks)
+terms(breaks ~ . ^2, data = warpbreaks, simplify = TRUE)
+## 1.6.2 expanded these formulae out as in simplify = TRUE
+
+
+## printing attributes (PR#2506)
+(x <- structure(1:4, other=as.factor(LETTERS[1:3])))
+## < 1.7.0 printed the codes of the factor attribute
+
+
+## add logical matrix replacement indexing for data frames
+TEMP <- data.frame(VAR1=c(1,2,3,4,5), VAR2=c(5,4,3,2,1), VAR3=c(1,1,1,1,NA))
+TEMP[,c(1,3)][TEMP[,c(1,3)]==1 & !is.na(TEMP[,c(1,3)])] < -10
+TEMP
+##
+
+## moved from reg-plot.R as exact output depends on rounding error
+## PR 390 (axis for small ranges)
+
+relrange <- function(x) {
+    ## The relative range in EPS units
+    r <- range(x)
+    diff(r)/max(abs(r))/.Machine$double.eps
+}
+
+x <- c(0.12345678912345678,
+       0.12345678912345679,
+       0.12345678912345676)
+# relrange(x) ## 1.0125, but depends on strtod
+plot(x) # `extra horizontal' ;  +- ok on Solaris; label off on Linux
+
+y <- c(0.9999563255363383973418,
+       0.9999563255363389524533,
+       0.9999563255363382863194)
+## The relative range number:
+# relrange(y) ## 3.000131, but depends on strtod
+plot(y)# once gave infinite loop on Solaris [TL];  y-axis too long
+
+## Comments: The whole issue was finally deferred to main/graphics.c l.1944
+##    error("relative range of values is too small to compute accurately");
+## which is not okay.
+
+set.seed(101)
+par(mfrow = c(3,3))
+for(j.fac in 1e-12* c(10, 1, .7, .3, .2, .1, .05, .03, .01)) {
+##           ====
+    #set.seed(101) # or don't
+    x <- pi + jitter(numeric(101), f = j.fac)
+    rrtxt <- paste("rel.range =", formatC(relrange(x), dig = 4),"* EPS")
+    cat("j.f = ", format(j.fac)," ;  ", rrtxt,"\n",sep="")
+    plot(x, type = "l", main = rrtxt)
+    cat("par(\"usr\")[3:4]:", formatC(par("usr")[3:4], wid = 10),"\n",
+        "par(\"yaxp\") :   ", formatC(par("yaxp"), wid = 10),"\n\n", sep="")
+}
+par(mfrow = c(1,1))
+## The warnings from inside GScale() will differ in their  relrange() ...
+## >> do sloppy testing
+## 2003-02-03 hopefully no more.  BDR
+## end of PR 390
+
+
+## scoping rules calling step inside a function
+"cement" <-
+    structure(list(x1 = c(7, 1, 11, 11, 7, 11, 3, 1, 2, 21, 1, 11, 10),
+                   x2 = c(26, 29, 56, 31, 52, 55, 71, 31, 54, 47, 40, 66, 68),
+                   x3 = c(6, 15, 8, 8, 6, 9, 17, 22, 18, 4, 23, 9, 8),
+                   x4 = c(60, 52, 20, 47, 33, 22, 6, 44, 22, 26, 34, 12, 12),
+                   y = c(78.5, 74.3, 104.3, 87.6, 95.9, 109.2, 102.7, 72.5,
+                   93.1, 115.9, 83.8, 113.3, 109.4)),
+              .Names = c("x1", "x2", "x3", "x4", "y"), class = "data.frame",
+              row.names = 1:13)
+teststep <- function(formula, data)
+{
+    d2 <- data
+    fit <- lm(formula, data=d2)
+    step(fit)
+}
+teststep(formula(y ~ .), cement)
+## failed in 1.6.2
+
+str(array(1))# not a scalar
+
+
+## na.print="" shouldn't apply to (dim)names!
+(tf <- table(ff <- factor(c(1:2,NA,2), exclude=NULL)))
+identical(levels(ff), dimnames(tf)[[1]])
+str(levels(ff))
+## not quite ok previous to 1.7.0
+
+
+## PR#3058  printing with na.print and right=TRUE
+a <- matrix( c(NA, "a", "b", "10",
+               NA, NA,  "d", "12",
+               NA, NA,  NA,  "14"),
+            byrow=T, ncol=4 )
+print(a, right=TRUE, na.print=" ")
+print(a, right=TRUE, na.print="----")
+## misaligned in 1.7.0
+
+
+## assigning factors to dimnames
+A <- matrix(1:4, 2)
+aa <- factor(letters[1:2])
+dimnames(A) <- list(aa, NULL)
+A
+dimnames(A)
+## 1.7.0 gave internal codes as display and dimnames()
+## 1.7.1beta gave NAs via dimnames()
+## 1.8.0 converts factors to character
+
+
+## wishlist PR#2776: aliased coefs in lm/glm
+set.seed(123)
+x2 <- x1 <- 1:10
+x3 <- 0.1*(1:10)^2
+y <- x1 + rnorm(10)
+(fit <- lm(y ~ x1 + x2 + x3))
+summary(fit, cor = TRUE)
+(fit <- glm(y ~ x1 + x2 + x3))
+summary(fit, cor = TRUE)
+## omitted silently in summary.glm < 1.8.0
+
+
+## list-like indexing of data frames with drop specified
+women["height"]
+women["height", drop = FALSE]  # same with a warning
+women["height", drop = TRUE]   # ditto
+women[,"height", drop = FALSE] # no warning
+women[,"height", drop = TRUE]  # a vector
+## second and third were interpreted as women["height", , drop] in 1.7.x
+
+
+## make.names
+make.names("")
+make.names(".aa")
+## was "X.aa" in 1.7.1
+make.names(".2")
+make.names(".2a") # not valid in R
+make.names(as.character(NA))
+##
+
+
+## strange names in data frames
+as.data.frame(list(row.names=17))  # 0 rows in 1.7.1
+aa <- data.frame(aa=1:3)
+aa[["row.names"]] <- 4:6
+aa # fine in 1.7.1
+A <- matrix(4:9, 3, 2)
+colnames(A) <- letters[1:2]
+aa[["row.names"]] <- A
+aa
+## wrong printed names in 1.7.1
+
+## assigning to NULL
+a <- NULL
+a[["a"]] <- 1
+a
+a <- NULL
+a[["a"]] <- "something"
+a
+a <- NULL
+a[["a"]] <- 1:3
+a
+## Last was an error in 1.7.1
+
+
+## examples of 0-rank models, some empty, some rank-deficient
+y <- rnorm(10)
+x <- rep(0, 10)
+(fit <- lm(y ~ 0))
+summary(fit)
+anova(fit)
+predict(fit)
+predict(fit, data.frame(x=x), se=TRUE)
+predict(fit, type="terms", se=TRUE)
+variable.names(fit) #should be empty
+model.matrix(fit)
+
+(fit <- lm(y ~ x + 0))
+summary(fit)
+anova(fit)
+predict(fit)
+predict(fit, data.frame(x=x), se=TRUE)
+predict(fit, type="terms", se=TRUE)
+variable.names(fit) #should be empty
+model.matrix(fit)
+
+(fit <- glm(y ~ 0))
+summary(fit)
+anova(fit)
+predict(fit)
+predict(fit, data.frame(x=x), se=TRUE)
+predict(fit, type="terms", se=TRUE)
+
+(fit <- glm(y ~ x + 0))
+summary(fit)
+anova(fit)
+predict(fit)
+predict(fit, data.frame(x=x), se=TRUE)
+predict(fit, type="terms", se=TRUE)
+## Lots of problems in 1.7.x
+
+
+## lm.influence on deficient lm models
+dat <- data.frame(y=rnorm(10), x1=1:10, x2=1:10, x3 = 0, wt=c(0,rep(1, 9)),
+                  row.names=letters[1:10])
+dat[3, 1] <- dat[4, 2] <- NA
+lm.influence(lm(y ~ x1 + x2, data=dat, weights=wt, na.action=na.omit))
+lm.influence(lm(y ~ x1 + x2, data=dat, weights=wt, na.action=na.exclude))
+lm.influence(lm(y ~ 0, data=dat, weights=wt, na.action=na.omit))
+lm.influence(lm(y ~ 0, data=dat, weights=wt, na.action=na.exclude))
+lm.influence(lm(y ~ 0 + x3, data=dat, weights=wt, na.action=na.omit))
+lm.influence(lm(y ~ 0 + x3, data=dat, weights=wt, na.action=na.exclude))
+lm.influence(lm(y ~ 0, data=dat, na.action=na.exclude))
+## last three misbehaved in 1.7.x, none had proper names.
+
+
+## length of results in ARMAacf when lag.max is used
+ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=1) # was 4 in 1.7.1
+ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=2)
+ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=3)
+ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=4)
+ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=5) # failed in 1.7.1
+ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=6)
+ARMAacf(ar=c(1.3,-0.6, -0.2, 0.1),lag.max=10)
+##
+
+
+## Indexing non-existent columns in a data frame
+x <- data.frame(a = 1, b = 2)
+try(x[c("a", "c")])
+try(x[, c("a", "c")])
+try(x[1, c("a", "c")])
+## Second succeeded, third gave uniformative error message in 1.7.x.
+
+
+## methods(class = ) with namespaces, .Primitives etc (many missing in 1.7.x):
+meth2gen <- function(cl)
+    noquote(sub(paste("\\.",cl,"$",sep=""),"", c(.S3methods(class = cl))))
+meth2gen("data.frame")
+meth2gen("dendrogram")
+## --> the output may need somewhat frequent updating..
+
+
+## subsetting a 1D array lost the dimensions
+x <- array(1:5, dim=c(5))
+dim(x)
+dim(x[, drop=TRUE])
+dim(x[2:3])
+dim(x[2])
+dim(x[2, drop=FALSE])
+dimnames(x) <- list(some=letters[1:5])
+x[]
+x[2:3]
+x[2]
+x[2, drop=FALSE]
+## both dim and dimnames lost in 1.8.0
+
+
+## print.dist() didn't show NA's prior to 1.8.1
+x <- cbind(c(1,NA,2,3), c(NA,2,NA,1))
+(d <- dist(x))
+print(d, diag = TRUE)
+##
+
+
+## offsets in model terms where sometimes not deleted correctly
+attributes(terms(~ a + b + a:b + offset(c)))[c("offset", "term.labels")]
+attributes(terms(y ~ a + b + a:b + offset(c)))[c("offset", "term.labels")]
+attributes(terms(~ offset(c) + a + b + a:b))[c("offset", "term.labels")]
+attributes(terms(y ~ offset(c) + a + b + a:b))[c("offset", "term.labels")]
+## errors prior to 1.8.1
+
+
+## 0-level factors gave nonsensical answers in model.matrix
+m <- model.frame(~x, data.frame(x=NA), na.action=na.pass)
+model.matrix(~x, m)
+lm.fit <- lm(y ~ x, data.frame(x=1:10, y=1:10))
+try(predict(lm.fit, data.frame(x=NA)))
+## wrong answers in 1.8.0, refused to run in 1.8.1
+
+
+
+## failure to print data frame containing arrays
+## raised by John Fox on R-devel on 2004-01-08
+y1 <- array(1:10, dim=10)
+y2 <- array(1:30, dim=c(10,3), dimnames=list(NULL, letters[1:3]))
+y3 <- array(1:40, dim=c(10,2,2),
+            dimnames=list(NULL, letters[1:2], NULL))
+data.frame(y=y1)
+data.frame(y=y2)
+data.frame(y=y3)
+
+as.data.frame(y1)
+as.data.frame(y2)
+as.data.frame(y3)
+
+X <- data.frame(x=1:10)
+X$y <- y1
+X
+sapply(X, dim)
+
+X$y <- y2
+X
+sapply(X, dim)
+
+X$y <- y3
+X
+sapply(X, dim)
+## The last one fails in S.
+
+## test of user hooks
+for(id in c("A", "B")) {
+    eval(substitute(
+    {
+setHook(packageEvent("stats4", "onLoad"),
+        function(pkgname, ...) cat("onLoad", sQuote(pkgname), id, "\n"));
+setHook(packageEvent("stats4", "attach"),
+        function(pkgname, ...) cat("attach", sQuote(pkgname), id, "\n"));
+setHook(packageEvent("stats4", "detach"),
+        function(pkgname, ...) cat("detach", sQuote(pkgname), id, "\n"));
+setHook(packageEvent("stats4", "onUnload"),
+        function(pkgname, ...) cat("onUnload", sQuote(pkgname), id, "\n"))
+    },
+                    list(id=id)))
+}
+loadNamespace("stats4")
+library("stats4")
+detach("package:stats4")
+unloadNamespace("stats4")
+## Just tests
+
+
+## rep(0-length-vector, length.out > 0)
+rep(integer(0), length.out=0)
+rep(integer(0), length.out=10)
+typeof(.Last.value)
+rep(logical(0), length.out=0)
+rep(logical(0), length.out=10)
+typeof(.Last.value)
+rep(numeric(0), length.out=0)
+rep(numeric(0), length.out=10)
+typeof(.Last.value)
+rep(character(0), length.out=0)
+rep(character(0), length.out=10)
+typeof(.Last.value)
+rep(complex(0), length.out=0)
+rep(complex(0), length.out=10)
+typeof(.Last.value)
+rep(list(), length.out=0)
+rep(list(), length.out=10)
+## always 0-length before 1.9.0
+
+
+## supplying 0-length data to array and matrix
+array(numeric(0), c(2, 2))
+array(list(), c(2,2))
+# worked < 1.8.0, error in 1.8.x
+matrix(character(0), 1, 2)
+matrix(integer(0), 1, 2)
+matrix(logical(0), 1, 2)
+matrix(numeric(0), 1, 2)
+matrix(complex(0), 1, 2)
+matrix(list(), 1, 2)
+## did not work < 1.9.0
+
+
+## S compatibility change in 1.9.0
+rep(1:2, each=3, length=12)
+## used to pad with NAs.
+
+
+## PR#6510: aov() with error and -1
+set.seed(1)
+test.df <- data.frame (y=rnorm(8), a=gl(2,1,8), b=gl(2,3,8),c=gl(2,4,8))
+aov(y ~ a + b + Error(c), data=test.df)
+aov(y ~ a + b - 1 + Error(c), data=test.df)
+## wrong assignment to strata labels < 1.9.0
+## Note this is unbalanced and not a good example
+
+binom.test(c(800,10))# p-value < epsilon
+
+
+## aov with a singular error model
+rd <- c(16.53, 12.12, 10.04, 15.32, 12.33, 10.1, 17.09, 11.69, 11.81, 14.75,
+        10.72, 8.79, 13.14, 9.79, 8.36, 15.62, 9.64, 8.72, 15.32,
+        11.35, 8.52, 13.27, 9.74, 8.78, 13.16, 10.16, 8.4, 13.08, 9.66,
+        8.16, 12.17, 9.13, 7.43, 13.28, 9.16, 7.92, 118.77, 78.83, 62.2,
+        107.29, 73.79, 58.59, 118.9, 66.35, 53.12, 372.62, 245.39, 223.72,
+        326.03, 232.67, 209.44, 297.55, 239.71, 223.8)
+sample.df <- data.frame(dep.variable=rd,
+                        subject=factor(rep(paste("subj",1:6, sep=""),each=9)),
+                        f1=factor(rep(rep(c("f1","f2","f3"),each=6),3)),
+                        f2=factor(rep(c("g1","g2","g3"),each=18))
+)
+sample.aov <- aov(dep.variable ~ f1 * f2 + Error(subject/(f1+f2)), data=sample.df)
+sample.aov
+summary(sample.aov)
+sample.aov <- aov(dep.variable ~ f1 * f2 + Error(subject/(f2+f1)), data=sample.df)
+sample.aov
+summary(sample.aov)
+## failed in 1.8.1
+
+
+## PR#6645  stem() with near-constant values
+stem(rep(1, 100))
+stem(rep(0.1, 10))
+stem(c(rep(1, 10), 1+1.e-8))
+stem(c(rep(1, 10), 1+1.e-9))
+stem(c(rep(1, 10), 1+1.e-10), atom=0) # integer-overflow is avoided.
+##  had integer overflows in 1.8.1, and silly shifts of decimal point
+
+
+## PR#6633 warnings with vector op matrix, and more
+set.seed(1)
+x1 <- rnorm(3)
+y1 <- rnorm(4)
+x1 * y1
+x1 * as.matrix(y1) # no warning in 1.8.1
+x1 * matrix(y1,2,2)# ditto
+z1 <- x1 > 0
+z2 <- y1 > 0
+z1 & z2
+z1 & as.matrix(z2) # no warning in 1.8.1
+x1 < y1            # no warning in 1.8.1
+x1 < as.matrix(y1) # ditto
+##
+
+
+## summary method for mle
+library(stats4)
+N <- c(rep(3:6, 3), 7,7, rep(8,6), 9,9, 10,12)# sample from Pois(lam = 7)
+summary(mle(function(Lam = 1) -sum(dpois(N, Lam))))
+## "Coefficients" was "NULL" in 1.9.0's "devel"
+
+
+## PR#6656 terms.formula(simplify = TRUE) was losing offset terms
+## successive offsets caused problems
+df <- data.frame(x=1:4, y=sqrt( 1:4), z=c(2:4,1))
+fit1 <- glm(y ~ offset(x) + z, data=df)
+update(fit1, ". ~.")$call
+## lost offset in 1.7.0 to 1.8.1
+terms(y ~ offset(x) + offset(log(x)) + z, data=df)
+## failed to remove second offset from formula in 1.8.1
+terms(y ~ offset(x) + z - z, data=df, simplify = TRUE)
+## first fix failed for models with no non-offset terms.
+
+
+## only the first two were wrong up to 1.8.1:
+3:4 * 1e-100
+8:11* 1e-100
+1:2 * 1e-99
+1:2 * 1e+99
+8:11* 1e+99
+3:4 * 1e+100
+##
+
+
+## negative subscripts could be mixed with NAs
+x <- 1:3
+try(x[-c(1, NA)])
+## worked on some platforms, segfaulted on others in 1.8.1
+
+
+## vector 'border' (and no 'pch', 'cex' nor 'bg'):
+boxplot(count ~ spray, data = InsectSprays, border=2:7)
+## gave warnings in 1.9.0
+
+summary(as.Date(paste("2002-12", 26:31, sep="-")))
+## printed all "2002.-12-29" in 1.9.1 {because digits was too small}
+as.matrix(data.frame(d = as.POSIXct("2004-07-20")))
+## gave a warning in 1.9.1
+
+
+## Dump should quote when necessary (PR#6857)
+x <- quote(b)
+dump("x", "")
+## doesn't quote b in 1.9.0
+
+
+## some checks of indexing by character, used to test hashing code
+x <- 1:26
+names(x) <- letters
+x[c("a", "aa", "aa")] <- 100:102
+x
+
+x <- 1:26
+names(x) <- rep("", 26)
+x[c("a", "aa", "aa")] <- 100:102
+x
+##
+
+
+## tests of raw type
+# tests of logic operators
+x <- "A test string"
+(y <- charToRaw(x))
+(xx <- c(y, as.raw(0), charToRaw("more")))
+
+!y
+y & as.raw(15)
+y | as.raw(128)
+
+# tests of binary read/write
+zz <- file("testbin", "wb")
+writeBin(xx, zz)
+close(zz)
+zz <- file("testbin", "rb")
+(yy <- readBin(zz, "raw", 100))
+seek(zz, 0, "start")
+readBin(zz, "integer", n=100, size = 1) # read as small integers
+seek(zz, 0, "start")
+readBin(zz, "character", 100)  # is confused by embedded nul.
+seek(zz, 0, "start")
+readChar(zz, length(xx)) # truncates at embedded nul
+seek(zz) # make sure current position is reported properly
+close(zz)
+unlink("testbin")
+
+# tests of ASCII read/write.
+cat(xx, file="testascii")
+scan("testascii", what=raw(0))
+unlink("testascii")
+##
+
+
+## Example of prediction not from newdata as intended.
+set.seed(1)
+y <- rnorm(10)
+x  <- cbind(1:10, sample(1:10)) # matrix
+xt <- cbind(1:2,  3:4)
+(lm1 <- lm(y ~ x))
+predict(lm1, newdata = data.frame(x= xt))
+## warns as from 2.0.0
+
+
+## eval could alter a data.frame/list second argument
+data(trees)
+a <- trees
+eval(quote({Girth[1]<-NA;Girth}),a)
+a[1, ]
+trees[1, ]
+## both a and trees got altered in 1.9.1
+
+
+## write.table did not apply qmethod to col.names (PR#7171)
+x <- data.frame("test string with \"" = c("a \" and a '"), check.names=FALSE)
+write.table(x)
+write.table(x, qmethod = "double")
+## Quote in col name was unescaped in 1.9.1.
+
+
+## extensions to read.table
+Mat <- matrix(c(1:3, letters[1:3], 1:3, LETTERS[1:3],
+                c("2004-01-01", "2004-02-01", "2004-03-01"),
+                c("2004-01-01 12:00", "2004-02-01 12:00", "2004-03-01 12:00")),
+              3, 6)
+foo <- tempfile()
+write.table(Mat, foo, col.names = FALSE, row.names = FALSE)
+read.table(foo, colClasses = c(NA, NA, "NULL", "character", "Date", "POSIXct"))
+unlist(sapply(.Last.value, class))
+read.table(foo, colClasses = c("factor",NA,"NULL","factor","Date","POSIXct"))
+unlist(sapply(.Last.value, class))
+read.table(foo, colClasses = c(V4="character"))
+unlist(sapply(.Last.value, class))
+unlink(foo)
+## added in 2.0.0
+
+
+## write.table with complex columns (PR#7260, in part)
+write.table(data.frame(x = 0.5+1:4, y = 1:4 + 1.5i), file = "")
+# printed all as complex in 2.0.0.
+write.table(data.frame(x = 0.5+1:4, y = 1:4 + 1.5i), file = "", dec=",")
+## used '.' not ',' in 2.0.0
+
+## splinefun() value test
+(x <- seq(0,6, length=25))
+mx <- sapply(c("fmm", "nat", "per"),
+             function(m) splinefun(1:5, c(1,2,4,3,1), method = m)(x))
+cbind(x,mx)
+
+
+## infinite loop in read.fwf (PR#7350)
+cat(file="test.txt", sep = "\n", "# comment 1", "1234567   # comment 2",
+    "1 234567  # comment 3", "12345  67 # comment 4", "# comment 5")
+read.fwf("test.txt", width=c(2,2,3), skip=1, n=4) # looped
+read.fwf("test.txt", width=c(2,2,3), skip=1)      # 1 line short
+read.fwf("test.txt", width=c(2,2,3), skip=0)
+unlink("test.txt")
+##
+
+
+## split was not handling lists and raws
+split(as.list(1:3), c(1,1,2))
+(y <- charToRaw("A test string"))
+(z <- split(y, rep(1:5, times=c(1,1,4,1,6))))
+sapply(z, rawToChar)
+## wrong results in 2.0.0
+
+
+## tests of changed S3 implicit classes in 2.1.0
+foo <- function(x, ...) UseMethod("foo")
+foo.numeric <- function(x) cat("numeric arg\n")
+foo(1:10)
+foo(pi)
+foo(matrix(1:10, 2, 5))
+foo.integer <- function(x) cat("integer arg\n")
+foo.double <- function(x) cat("double arg\n")
+foo(1:10)
+foo(pi)
+foo(matrix(1:10, 2, 5))
+##
+
+
+## str() interpreted escape sequences prior to 2.1.0
+x <- "ab\bc\ndef"
+str(x)
+str(x, vec.len=0)# failed in rev 32244
+str(factor(x))
+
+x <- c("a", NA, "b")
+factor(x)
+factor(x, exclude="")
+str(x)
+str(factor(x))
+str(factor(x, exclude=""))
+##
+
+
+## print.factor(quote=TRUE) was not quoting levels
+x <- c("a", NA, "b", 'a " test') #" (comment for fontification)
+factor(x)
+factor(x, exclude="")
+print(factor(x), quote=TRUE)
+print(factor(x, exclude=""), quote=TRUE)
+## last two printed levels differently from values in 2.0.1
+
+
+## write.table in marginal cases
+x <- matrix(, 3, 0)
+write.table(x) # 3 rows
+write.table(x, row.names=FALSE)
+# note: scan and read.table won't read this as they take empty fields as NA
+## was 1 row in 2.0.1
+
+
+## More tests of write.table
+x <- list(a=1, b=1:2, c=3:4, d=5)
+dim(x) <- c(2,2)
+x
+write.table(x)
+
+x1 <- data.frame(a=1:2, b=I(matrix(LETTERS[1:4], 2, 2)), c = c("(i)", "(ii)"))
+x1
+write.table(x1) # In 2.0.1 had 3 headers, 4 cols
+write.table(x1, quote=c(2,3,4))
+
+x2 <- data.frame(a=1:2, b=I(list(a=1, b=2)))
+x2
+write.table(x2)
+
+x3 <- seq(as.Date("2005-01-01"), len=6, by="day")
+x4 <- data.frame(x=1:6, y=x3)
+dim(x3) <- c(2,3)
+x3
+write.table(x3) # matrix, so loses class
+x4
+write.table(x4) # preserves class, does not quote
+##
+
+
+## Problem with earlier regexp code spotted by KH
+grep("(.*s){2}", "Arkansas", v = TRUE)
+grep("(.*s){3}", "Arkansas", v = TRUE)
+grep("(.*s){3}", state.name, v = TRUE)
+## Thought Arkansas had 3 s's.
+
+
+## Replacing part of a non-existent column could create a short column.
+xx<- data.frame(a=1:4, b=letters[1:4])
+xx[2:3, "c"] <- 2:3
+## gave short column in R < 2.1.0.
+
+
+## add1/drop1 could give misleading results if missing values were involved
+y <- rnorm(1:20)
+x <- 1:20; x[10] <- NA
+x2 <- runif(20); x2[20] <- NA
+fit <- lm(y ~ x)
+drop1(fit)
+res <-  try(stats:::drop1.default(fit))
+stopifnot(inherits(res, "try-error"))
+add1(fit, ~ . +x2)
+res <-  try(stats:::add1.default(fit, ~ . +x2))
+stopifnot(inherits(res, "try-error"))
+## 2.0.1 ran and gave incorrect answers.
+
+
+## (PR#7789) escaped quotes in the first five lines for read.table
+tf <- tempfile()
+x <- c("6 'TV2  Shortland Street'",
+       "2 'I don\\\'t watch TV at 7'",
+       "1 'I\\\'m not bothered, whatever that looks good'",
+       "2 'I channel surf'")
+writeLines(x, tf)
+read.table(tf)
+x <- c("6 'TV2  Shortland Street'",
+       "2 'I don''t watch TV at 7'",
+       "1 'I''m not bothered, whatever that looks good'",
+       "2 'I channel surf'")
+writeLines(x, tf)
+read.table(tf, sep=" ")
+unlink(tf)
+## mangled in 2.0.1
+
+
+## (PR#7802) printCoefmat(signif.legend =FALSE) failed
+set.seed(123)
+cmat <- cbind(rnorm(3, 10), sqrt(rchisq(3, 12)))
+cmat <- cbind(cmat, cmat[,1]/cmat[,2])
+cmat <- cbind(cmat, 2*pnorm(-cmat[,3]))
+colnames(cmat) <- c("Estimate", "Std.Err", "Z value", "Pr(>z)")
+printCoefmat(cmat, signif.stars = TRUE)
+printCoefmat(cmat, signif.stars = TRUE, signif.legend = FALSE)
+# no stars, so no legend
+printCoefmat(cmat, signif.stars = FALSE)
+printCoefmat(cmat, signif.stars = TRUE, signif.legend = TRUE)
+## did not work in 2.1.0
+
+
+## PR#7824 subscripting an array by a matrix
+x <- matrix(1:6, ncol=2)
+x[rbind(c(1,1), c(2,2))]
+x[rbind(c(1,1), c(2,2), c(0,1))]
+x[rbind(c(1,1), c(2,2), c(0,0))]
+x[rbind(c(1,1), c(2,2), c(0,2))]
+x[rbind(c(1,1), c(2,2), c(0,3))]
+x[rbind(c(1,1), c(2,2), c(1,0))]
+x[rbind(c(1,1), c(2,2), c(2,0))]
+x[rbind(c(1,1), c(2,2), c(3,0))]
+x[rbind(c(1,0), c(0,2), c(3,0))]
+x[rbind(c(1,0), c(0,0), c(3,0))]
+x[rbind(c(1,1), c(2,2), c(1,2))]
+x[rbind(c(1,1), c(2,NA), c(1,2))]
+x[rbind(c(1,0), c(2,NA), c(1,2))]
+try(x[rbind(c(1,1), c(2,2), c(-1,2))])
+try(x[rbind(c(1,1), c(2,2), c(-2,2))])
+try(x[rbind(c(1,1), c(2,2), c(-3,2))])
+try(x[rbind(c(1,1), c(2,2), c(-4,2))])
+try(x[rbind(c(1,1), c(2,2), c(-1,-1))])
+try(x[rbind(c(1,1,1), c(2,2,2))])
+
+# verify that range checks are applied to negative indices
+x <- matrix(1:6, ncol=3)
+try(x[rbind(c(1,1), c(2,2), c(-3,3))])
+try(x[rbind(c(1,1), c(2,2), c(-4,3))])
+## generally allowed in 2.1.0.
+
+
+## printing RAW matrices/arrays was not implemented
+s <- sapply(0:7, function(i) rawShift(charToRaw("my text"),i))
+s
+dim(s) <- c(7,4,2)
+s
+## empty < 2.1.1
+
+
+## interpretation of '.' directly by model.matrix
+dd <- data.frame(a = gl(3,4), b = gl(4,1,12))
+model.matrix(~ .^2, data = dd)
+## lost ^2 in 2.1.1
+
+
+## add1.lm and drop.lm did not know about offsets (PR#8049)
+set.seed(2)
+y <- rnorm(10)
+z <- 1:10
+lm0 <- lm(y ~ 1)
+lm1 <- lm(y ~ 1, offset = 1:10)
+lm2 <- lm(y ~ z, offset = 1:10)
+
+add1(lm0, scope = ~ z)
+anova(lm1, lm2)
+add1(lm1, scope = ~ z)
+drop1(lm2)
+## Last two ignored the offset in 2.1.1
+
+
+## tests of raw conversion
+as.raw(1234)
+as.raw(list(a=1234))
+## 2.1.1: spurious and missing messages, wrong result for second.
+
+
+### end of tests added in 2.1.1 patched ###
+
+
+## Tests of logical matrix indexing with NAs
+df1 <- data.frame(a = c(NA, 0, 3, 4)); m1 <- as.matrix(df1)
+df2 <- data.frame(a = c(NA, 0, 0, 4)); m2 <- as.matrix(df2)
+df1[df1 == 0] <- 2; df1
+m1[m1 == 0] <- 2;   m1
+df2[df2 == 0] <- 2; df2  # not allowed in 2.{0,1}.z
+m2[m2 == 0] <- 2;   m2
+df1[df1 == 2] # this is first coerced to a matrix, and drops to a vector
+df3 <- data.frame(a=1:2, b=2:3)
+df3[df3 == 2]            # had spurious names
+# but not allowed
+## (modified to make printed result the same whether numeric() is
+##  compiled or interpreted)
+## try(df2[df2 == 2] <- 1:2)
+## try(m2[m2 == 2] <- 1:2)
+tryCatch(df2[df2 == 2] <- 1:2,
+         error = function(e) paste("Error:", conditionMessage(e)))
+tryCatch(m2[m2 == 2] <- 1:2,
+         error = function(e) paste("Error:", conditionMessage(e)))
+##
+
+
+## vector indexing of matrices: issue is when rownames are used
+# 1D array
+m1 <- c(0,1,2,0)
+dim(m1) <- 4
+dimnames(m1) <- list(1:4)
+m1[m1 == 0]                        # has rownames
+m1[which(m1 == 0)]                 # has rownames
+m1[which(m1 == 0, arr.ind = TRUE)] # no names < 2.2.0 (side effect of PR#937)
+
+# 2D array with 2 cols
+m2 <- as.matrix(data.frame(a=c(0,1,2,0), b=0:3))
+m2[m2 == 0]                        # a vector, had names < 2.2.0
+m2[which(m2 == 0)]                 # a vector, had names < 2.2.0
+m2[which(m2 == 0, arr.ind = TRUE)] # no names (PR#937)
+
+# 2D array with one col: could use rownames but do not.
+m21 <- m2[, 1, drop = FALSE]
+m21[m21 == 0]
+m21[which(m21 == 0)]
+m21[which(m21 == 0, arr.ind = TRUE)]
+## not consistent < 2.2.0: S never gives names
+
+
+## tests of indexing as quoted in Extract.Rd
+x <- NULL
+x$foo <- 2
+x # length-1 vector
+x <- NULL
+x[[2]] <- pi
+x # numeric vector
+x <- NULL
+x[[1]] <- 1:3
+x # list
+##
+
+
+## printing of a kernel:
+kernel(1)
+## printed wrongly in R <= 2.1.1
+
+
+## using NULL as a replacement value
+DF <- data.frame(A=1:2, B=3:4)
+try(DF[2, 1:3] <- NULL)
+## wrong error message in R < 2.2.0
+
+
+## tests of signif
+ob <- 0:9 * 2000
+print(signif(ob, 3), digits=17) # had rounding error in 2.1.1
+signif(1.2347e-305, 4)
+signif(1.2347e-306, 4)  # only 3 digits in 2.1.1
+signif(1.2347e-307, 4)
+##
+
+### end of tests added in 2.2.0 patched ###
+
+
+## printing lists with NA names
+A <- list(1, 2)
+names(A) <- c("NA", NA)
+A
+## both printed as "NA" in 2.2.0
+
+
+## subscripting with both NA and "NA" names
+x <- 1:4
+names(x) <- c(NA, "NA", "a", "")
+x[names(x)]
+## 2.2.0 had the second matching the first.
+lx <- as.list(x)
+lx[[as.character(NA)]]
+lx[as.character(NA)]
+## 2.2.0 had both matching element 1
+
+
+## data frame replacement subscripting
+# Charles C. Berry, R-devel, 2005-10-26
+a.frame <- data.frame( x=letters[1:5] )
+a.frame[ 2:5, "y" ] <- letters[2:5]
+a.frame  # added rows 1:4
+# and adding and replacing matrices failed
+a.frame[ ,"y" ] <- matrix(1:10, 5, 2)
+a.frame
+a.frame[3:5 ,"y" ] <- matrix(1:6, 3, 2)
+a.frame
+a.frame <- data.frame( x=letters[1:5] )
+a.frame[3:5 ,"y" ] <- matrix(1:6, 3, 2)
+a.frame
+## failed/wrong ans in 2.2.0
+
+
+### end of tests added in 2.2.0 patched ###
+
+
+## test of fix of trivial warning PR#8252
+pairs(iris[1:4], oma=rep(3,4))
+## warned in 2.2.0 only
+
+
+## str(<dendrogram>)
+dend <- as.dendrogram(hclust(dist(USArrests), "ave")) # "print()" method
+dend2 <- cut(dend, h=70)
+str(dend2$upper)
+## {{for Emacs: `}}  gave much too many spaces in 2.2.[01]
+
+
+## formatC on Windows (PR#8337)
+xx  <- pi * 10^(-5:4)
+cbind(formatC(xx, wid = 9))
+cbind(formatC(xx, wid = 9, flag = "-"))
+cbind(formatC(xx, wid = 9, flag = "0"))
+## extra space on 2.2.1
+
+
+## an impossible glm fit
+success <- c(13,12,11,14,14,11,13,11,12)
+failure <- c(0,0,0,0,0,0,0,2,2)
+predictor <- c(0, 5^(0:7))
+try(glm(cbind(success,failure) ~ 0+predictor, family = binomial(link="log")))
+# no coefficient is possible as the first case will have mu = 1
+## 2.2.1 gave a subscript out of range warning instead.
+
+
+## error message from solve (PR#8494)
+temp <- diag(1, 5)[, 1:4]
+rownames(temp) <- as.character(1:5)
+colnames(temp) <- as.character(1:4)
+try(solve(temp))
+# also complex
+try(solve(temp+0i))
+# and non-comformant systems
+try(solve(temp, diag(3)))
+## gave errors from rownames<- in 2.2.1
+
+
+## PR#8462 terms.formula(simplify = TRUE) needs parentheses.
+update.formula (Reaction ~ Days + (Days | Subject), . ~ . + I(Days^2))
+## < 2.3.0 dropped parens on second term.
+
+
+## PR#8528: errors in the post-2.1.0 pgamma
+pgamma(seq(0.75, 1.25, by=0.05)*1e100, shape = 1e100, log=TRUE)
+pgamma(seq(0.75, 1.25, by=0.05)*1e100, shape = 1e100, log=TRUE, lower=FALSE)
+pgamma(c(1-1e-10, 1+1e-10)*1e100, shape = 1e100)
+pgamma(0.9*1e25, 1e25, log=TRUE)
+## were NaN, -Inf etc in 2.2.1.
+
+
+## + for POSIXt objects was non-commutative
+# SPSS-style dates
+c(10485849600,10477641600,10561104000,10562745600)+ISOdate(1582,10,14)
+## was in the local time zone in 2.2.1.
+
+
+## Limiting lines on deparse (wishlist PR#8638)
+op <- options(deparse.max.lines = 3)
+f <- function(...) browser()
+do.call(f, mtcars)
+c
+
+options(error = expression(NULL))
+f <- function(...) stop()
+do.call(f, mtcars)
+traceback()
+
+options(op)
+## unlimited < 2.3.0
+
+
+## row names in as.table (PR#8652)
+as.table(matrix(1:60, ncol=2))
+## rows past 26 had NA row names
+
+
+## summary on a glm with zero weights and estimated dispersion (PR#8720)
+y <- rnorm(10)
+x <- 1:10
+w <- c(rep(1,9), 0)
+summary(glm(y ~ x, weights = w))
+summary(glm(y ~ x, subset = w > 0))
+## has NA dispersion in 2.2.1
+
+
+## substitute was losing "..." after r37269
+yaa <- function(...) substitute(list(...))
+yaa(foo(...))
+## and wasn't substituting after "..."
+substitute(list(..., x), list(x=1))
+## fixed for 2.3.0
+
+
+## uniroot never warned (PR#8750)
+ff <- function(x) (x-pi)^3
+uniroot(ff, c(-10,10), maxiter=10)
+## should warn, did not < 2.3.0
+
+
+### end of tests added in 2.3.0 ###
+
+
+## prod etc on empty lists and raw vectors
+try(min(list()))
+try(max(list()))
+try(sum(list()))
+try(prod(list()))
+try(min(raw()))
+try(max(raw()))
+try(sum(raw()))
+try(prod(raw()))
+## Inf, -Inf, list(NULL) etc in 2.2.1
+
+r <- hist(rnorm(100), plot = FALSE, breaks = 12,
+          ## arguments which don't make sense for plot=FALSE - give a warning:
+          xlab = "N(0,1)", col = "blue")
+## gave no warning in 2.3.0 and earlier
+
+
+## rbind.data.frame on permuted cols (PR#8868)
+d1 <- data.frame(x=1:10, y=letters[1:10], z=1:10)
+d2 <- data.frame(y=LETTERS[1:5], z=5:1, x=7:11)
+rbind(d1, d2)
+# got factor y  wrong in 2.3.0
+# and failed with duplicated col names.
+d1 <- data.frame(x=1:2, y=5:6, x=8:9, check.names=FALSE)
+d2 <- data.frame(x=3:4, x=-(1:2), y=8:9, check.names=FALSE)
+rbind(d1, d2)
+## corrupt in 2.3.0
+
+
+## sort.list on complex vectors was unimplemented prior to 2.4.0
+x <- rep(2:1, c(2, 2)) + 1i*c(4, 1, 2, 3)
+(o <- sort.list(x))
+x[o]
+sort(x)  # for a cross-check
+##
+
+
+## PR#9044 write.table(quote=TRUE, row.names=FALSE) did not quote column names
+m <- matrix(1:9, nrow=3, dimnames=list(c("A","B","C"),  c("I","II","III")))
+write.table(m)
+write.table(m, col.names=FALSE)
+write.table(m, row.names=FALSE)
+# wrong < 2.3.1 patched.
+write.table(m, quote=FALSE)
+write.table(m, col.names=FALSE, quote=FALSE)
+write.table(m, row.names=FALSE, quote=FALSE)
+d <- as.data.frame(m)
+write.table(d)
+write.table(d, col.names=FALSE)
+write.table(d, row.names=FALSE)
+write.table(d, quote=FALSE)
+write.table(d, col.names=FALSE, quote=FALSE)
+write.table(d, row.names=FALSE, quote=FALSE)
+write.table(m, quote=numeric(0)) # not the same as FALSE
+##
+
+
+## removing variable from baseenv
+try(remove("ls", envir=baseenv()))
+try(remove("ls", envir=asNamespace("base")))
+## no message in 2.3.1
+
+
+## tests of behaviour of factors
+(x <- factor(LETTERS[1:5])[2:4])
+x[2]
+x[[2]]
+stopifnot(identical(x[2], x[[2]]))
+as.list(x)
+(xx <- unlist(as.list(x)))
+stopifnot(identical(x, xx))
+as.vector(x, "list")
+(sx <- sapply(x, function(.).))
+stopifnot(identical(x, sx))
+## changed in 2.4.0
+
+
+## as.character on a factor with "NA" level
+as.character(as.factor(c("AB", "CD", NA)))
+as.character(as.factor(c("NA", "CD", NA)))  # use <NA> is 2.3.x
+as.vector(as.factor(c("NA", "CD", NA)))     # but this did not
+## used <NA> before
+
+
+## [ on a zero-column data frame, names of such
+data.frame()[FALSE]
+names(data.frame())
+# gave NULL names and hence spurious warning.
+
+
+## residuals from zero-weight glm fits
+d.AD <- data.frame(treatment = gl(3,3), outcome = gl(3,1,9),
+                   counts = c(18,17,15,20,10,20,25,13,12))
+fit <- glm(counts ~ outcome + treatment, family = poisson,
+           data = d.AD, weights = c(0, rep(1,8)))
+residuals(fit, type="working") # first was NA < 2.4.0
+## working residuals were NA for zero-weight cases.
+fit2 <- glm(counts ~ outcome + treatment, family = poisson,
+           data = d.AD, weights = c(0, rep(1,8)), y = FALSE)
+for(z in c("response", "working", "deviance", "pearson"))
+    stopifnot(all.equal(residuals(fit, type=z), residuals(fit2, type=z),
+                        scale = 1, tolerance = 1e-10))
+
+## apply on arrays with zero extents
+## Robin Hankin, R-help, 2006-02-13
+A <- array(0, c(3, 0, 4))
+dimnames(A) <- list(D1 = letters[1:3], D2 = NULL, D3 = LETTERS[1:4])
+f <- function(x) 5
+apply(A, 1:2, f)
+apply(A, 1, f)
+apply(A, 2, f)
+## dropped dims in 2.3.1
+
+
+## print a factor with names
+structure(factor(1:4), names = letters[1:4])
+## dropped names < 2.4.0
+
+
+## some tests of factor matrices
+A <- factor(7:12)
+dim(A) <- c(2, 3)
+A
+str(A)
+A[, 1:2]
+A[, 1:2, drop=TRUE]
+A[1,1] <- "9"
+A
+## misbehaved < 2.4.0
+
+
+## [dpqr]t with vector ncp
+nc <- c(0, 0.0001, 1)
+dt(1.8, 10, nc)
+pt(1.8, 10, nc)
+qt(0.95, 10, nc)
+## gave warnings in 2.3.1, short answer for qt.
+dt(1.8, 10, -nc[-1])
+pt(1.8, 10, -nc[-1])
+qt(0.95, 10, -nc[-1])
+## qt in 2.3.1 did not allow negative ncp.
+
+
+## merge() used to insert row names as factor, not character, so
+## sorting was unexpected.
+A <- data.frame(a = 1:4)
+row.names(A) <- c("2002-11-15", "2002-12-15", "2003-01-15", "2003-02-15")
+B <- data.frame(b = 1:4)
+row.names(B) <- c("2002-09-15", "2002-10-15", "2002-11-15", "2002-12-15")
+merge(A, B, by=0, all=TRUE)
+
+
+## assigning to a list loop index could alter the index (PR#9216)
+L <- list(a = list(txt = "original value"))
+f <- function(LL) {
+    for (ll in LL) ll$txt <- "changed in f"
+    LL
+}
+f(L)
+L
+## both were changed < 2.4.0
+
+
+## summary.mlm misbehaved with na.action = na.exclude
+n <- 50
+x <- runif(n=n)
+y1 <- 2 * x + rnorm(n=n)
+y2 <- 5 * x + rnorm(n=n)
+y2[sample(1:n, size=5)] <- NA
+y <- cbind(y1, y2)
+fit <- lm(y ~ 1, na.action="na.exclude")
+summary(fit)
+## failed < 2.4.0
+
+RNGkind("default","default")## reset to default - ease  R core
+
+## prettyNum lost attributes (PR#8695)
+format(matrix(1:16, 4), big.mark = ",")
+## was a vector < 2.4.0
+
+
+## printing of complex numbers of very different magnitudes
+1e100  + 1e44i
+1e100 + pi*1i*10^(c(-100,0,1,40,100))
+## first was silly, second not rounded correctly in 2.2.0 - 2.3.1
+## We don't get them lining up, but that is a printf issue
+## that only happens for very large complex nos.
+
+
+### end of tests added in 2.4.0 ###
+
+
+## Platform-specific behaviour in lowess reported to R-help
+## 2006-10-12 by Frank Harrell
+x <- c(0,7,8,14,15,120,242)
+y <- c(122,128,130,158,110,110,92)
+lowess(x, y, iter=0)
+lowess(x, y)
+## MAD of iterated residuals was zero, and result depended on the platform.
+
+
+## PR#9263: problems with R_Visible
+a <- list(b=5)
+a[[(t<-'b')]]
+x <- matrix(5:-6, 3)
+x[2, invisible(3)]
+## both invisible in 2.4.0
+
+
+### end of tests added in 2.4.1 ###
+
+
+## tests of deparsing
+x <-list(a = NA, b = as.integer(NA), c=0+NA, d=0i+NA,
+         e = 1, f = 1:1, g = 1:3, h = c(NA, 1:3),
+         i = as.character(NA), j = c("foo", NA, "bar")
+         )
+dput(x, control=NULL)
+dput(x, control="keepInteger")
+dput(x, control="keepNA")
+dput(x)
+dput(x, control="all")
+dput(x, control=c("all", "S_compatible"))
+tmp <- tempfile()
+dput(x, tmp, control="all")
+stopifnot(identical(dget(tmp), x))
+dput(x, tmp, control=c("all", "S_compatible"))
+stopifnot(identical(dget(tmp), x))
+unlink(tmp)
+## changes in 2.5.0
+
+
+## give better error message for nls with no parameters
+## Ivo Welch, R-help, 2006-12-23.
+d <- data.frame(y= runif(10), x=runif(10))
+try(nls(y ~ 1/(1+x), data = d, start=list(x=0.5,y=0.5), trace=TRUE))
+## changed in 2.4.1 patched
+
+
+## cut(breaks="years"), in part PR#9433
+cut(as.Date(c("2000-01-17","2001-01-13","2001-01-20")), breaks="years")
+cut(as.POSIXct(c("2000-01-17","2001-01-13","2001-01-20")), breaks="years")
+## did not get day 01 < 2.4.1 patched
+
+
+## manipulating rownames: problems in pre-2.5.0
+A <- data.frame(a=character(0))
+try(row.names(A) <- 1:10) # succeeded in Dec 2006
+A <- list(a=1:3)
+class(A) <- "data.frame"
+row.names(A) <- letters[24:26] # failed at one point in Dec 2006
+A
+##
+
+
+## extreme cases for subsetting of data frames
+w <- women[1, ]
+w[]
+w[,drop = TRUE]
+w[1,]
+w[,]
+w[1, , drop = FALSE]
+w[, , drop = FALSE]
+w[1, , drop = TRUE]
+w[, , drop = TRUE]
+## regression test: code changed for 2.5.0
+
+
+## data.frame() with zero columns ignored 'row.names'
+(x <- data.frame(row.names=1:4))
+nrow(x)
+row.names(x)
+attr(x, "row.names")
+## ignored prior to 2.5.0.
+
+
+## identical on data.frames
+d0 <- d1 <- data.frame(1:4, row.names=1:4)
+row.names(d0) <- NULL
+dput(d0)
+dput(d1)
+identical(d0, d1)
+all.equal(d0, d1)
+row.names(d1) <- as.character(1:4)
+dput(d1)
+identical(d0, d1)
+all.equal(d0, d1)
+## identical used internal representation prior to 2.5.0
+
+
+## all.equal
+# ignored check.attributes in 2.4.1
+all.equal(data.frame(x=1:5, row.names=letters[1:5]),
+          data.frame(x=1:5,row.names=LETTERS[1:5]),
+          check.attributes=FALSE)
+# treated logicals as numeric
+all.equal(c(T, F, F), c(T, T, F))
+all.equal(c(T, T, F), c(T, F, F))
+# ignored raw:
+all.equal(as.raw(1:3), as.raw(1:3))
+all.equal(as.raw(1:3), as.raw(3:1))
+##
+
+
+## tests of deparsing
+# if we run this from stdin, we will have no source, so fake it
+f <- function(x, xm  = max(1L, x)) {xx <- 0L; yy <- NA_real_}
+attr(f, "srcref") <- srcref(srcfilecopy("",
+    "function(x, xm  = max(1L, x)) {xx <- 0L; yy <- NA_real_}"),
+    c(1L, 1L, 1L, 56L))
+f # uses the source
+dput(f) # not source
+dput(f, control="all") # uses the source
+cat(deparse(f), sep="\n")
+dump("f", file="")
+# remove the source
+attr(f, "srcref") <- NULL
+f
+dput(f, control="all")
+dump("f", file="")
+
+expression(bin <- bin + 1L)
+## did not preserve e.g. 1L at some point in pre-2.5.0
+
+
+## NAs in substr were handled as large negative numbers
+x <- "abcde"
+substr(x, 1, 3)
+substr(x, NA, 1)
+substr(x, 1, NA)
+substr(x, NA, 3) <- "abc"; x
+substr(x, 1, NA) <- "AA"; x
+substr(x, 1, 2) <- NA_character_; x
+## "" or no change in 2.4.1, except last
+
+
+## regression tests for pmin/pmax, rewritten in C for 2.5.0
+# NULL == integer(0)
+pmin(NULL, integer(0))
+pmax(integer(0), NULL)
+pmin(NULL, 1:3)# now ok
+pmax(pi, NULL, 2:4)
+
+x <- c(1, NA, NA, 4, 5)
+y <- c(2, NA, 4, NA, 3)
+pmin(x, y)
+stopifnot(identical(pmin(x, y), pmin(y, x)))
+pmin(x, y, na.rm=TRUE)
+stopifnot(identical(pmin(x, y, na.rm=TRUE), pmin(y, x, na.rm=TRUE)))
+pmax(x, y)
+stopifnot(identical(pmax(x, y), pmax(y, x)))
+pmax(x, y, na.rm=TRUE)
+stopifnot(identical(pmax(x, y, na.rm=TRUE), pmax(y, x, na.rm=TRUE)))
+
+x <- as.integer(x); y <- as.integer(y)
+pmin(x, y)
+stopifnot(identical(pmin(x, y), pmin(y, x)))
+pmin(x, y, na.rm=TRUE)
+stopifnot(identical(pmin(x, y, na.rm=TRUE), pmin(y, x, na.rm=TRUE)))
+pmax(x, y)
+stopifnot(identical(pmax(x, y), pmax(y, x)))
+pmax(x, y, na.rm=TRUE)
+stopifnot(identical(pmax(x, y, na.rm=TRUE), pmax(y, x, na.rm=TRUE)))
+
+x <- as.character(x); y <- as.character(y)
+pmin(x, y)
+stopifnot(identical(pmin(x, y), pmin(y, x)))
+pmin(x, y, na.rm=TRUE)
+stopifnot(identical(pmin(x, y, na.rm=TRUE), pmin(y, x, na.rm=TRUE)))
+pmax(x, y)
+stopifnot(identical(pmax(x, y), pmax(y, x)))
+pmax(x, y, na.rm=TRUE)
+stopifnot(identical(pmax(x, y, na.rm=TRUE), pmax(y, x, na.rm=TRUE)))
+
+# tests of classed quantities
+x <- .leap.seconds[1:23]; y <- rev(x)
+x[2] <- y[2] <- x[3] <- y[4] <- NA
+format(pmin(x, y), tz="GMT")  # TZ names differ by platform
+class(pmin(x, y))
+stopifnot(identical(pmin(x, y), pmin(y, x)))
+format(pmin(x, y, na.rm=TRUE), tz="GMT")
+stopifnot(identical(pmin(x, y, na.rm=TRUE), pmin(y, x, na.rm=TRUE)))
+format(pmax(x, y), tz="GMT")
+stopifnot(identical(pmax(x, y), pmax(y, x)))
+format(pmax(x, y, na.rm=TRUE), tz="GMT")
+stopifnot(identical(pmax(x, y, na.rm=TRUE), pmax(y, x, na.rm=TRUE)))
+
+x <- as.POSIXlt(x, tz="GMT"); y <- as.POSIXlt(y, tz="GMT")
+format(pmin(x, y), tz="GMT")
+class(pmin(x, y))
+stopifnot(identical(pmin(x, y), pmin(y, x)))
+format(pmin(x, y, na.rm=TRUE), tz="GMT")
+stopifnot(identical(pmin(x, y, na.rm=TRUE), pmin(y, x, na.rm=TRUE)))
+format(pmax(x, y), tz="GMT")
+stopifnot(identical(pmax(x, y), pmax(y, x)))
+format(pmax(x, y, na.rm=TRUE), tz="GMT")
+stopifnot(identical(pmax(x, y, na.rm=TRUE), pmax(y, x, na.rm=TRUE)))
+## regresion tests
+
+
+## regression tests on names of 1D arrays
+x <- as.array(1:3)
+names(x) <- letters[x] # sets dimnames, really
+names(x)
+dimnames(x)
+attributes(x)
+names(x) <- NULL
+attr(x, "names") <- LETTERS[x] # sets dimnames, really
+names(x)
+dimnames(x)
+attributes(x)
+## regression tests
+
+
+## regression tests on NA attribute names
+x <- 1:3
+attr(x, "NA") <- 4
+attributes(x)
+attr(x, "NA")
+attr(x, NA_character_)
+try(attr(x, NA_character_) <- 5)
+## prior to 2.5.0 NA was treated as "NA"
+
+
+## qr with pivoting (PR#9623)
+A <- matrix(c(0,0,0, 1,1,1), nrow = 3,
+            dimnames = list(letters[1:3], c("zero","one")))
+y <- matrix(c(6,7,8), nrow = 3, dimnames = list(LETTERS[1:3], "y"))
+qr.coef(qr(A), y)
+qr.fitted(qr(A), y)
+
+qr.coef(qr(matrix(0:1, 1, dimnames=list(NULL, c("zero","one")))), 5)
+## coef names were returned unpivoted <= 2.5.0
+
+## readChar read extra items, terminated on zeros
+x <- as.raw(65:74)
+readChar(x, nchar=c(3,3,0,3,3,3))
+f <- tempfile()
+writeChar("ABCDEFGHIJ", con=f, eos=NULL)
+readChar(f, nchar=c(3,3,0,3,3,3))
+unlink(f)
+##
+
+
+## corner cases for cor
+set.seed(1)
+X <- cbind(NA, 1:3, rnorm(3))
+try(cor(X, use = "complete"))
+try(cor(X, use = "complete", method="spearman"))
+try(cor(X, use = "complete", method="kendall"))
+cor(X, use = "pair")
+cor(X, use = "pair", method="spearman")
+cor(X, use = "pair", method="kendall")
+
+X[1,1] <- 1
+cor(X, use = "complete")
+cor(X, use = "complete", method="spearman")
+cor(X, use = "complete", method="kendall")
+cor(X, use = "pair")
+cor(X, use = "pair", method="spearman")
+cor(X, use = "pair", method="kendall")
+## not consistent in 2.6.x
+
+
+## confint on rank-deficient models (in part, PR#10494)
+junk <- data.frame(x = rep(1, 10L),
+                   u = factor(sample(c("Y", "N"), 10, replace=TRUE)),
+                   ans = rnorm(10))
+fit <-  lm(ans ~ x + u, data = junk)
+confint(fit)
+confint.default(fit)
+## Mismatch gave NA for 'u' in 2.6.1
+
+
+## corrupt data frame produced by subsetting (PR#10574)
+x <- data.frame(a=1:3, b=2:4)
+x[,3] <- x
+x
+## warning during printing < 2.7.0
+
+
+## format.factor used to lose dim[names] and names (PR#11512)
+x <- factor(c("aa", letters[-1]))
+dim(x) <- c(13,2)
+format(x, justify="right")
+##
+
+
+## removing columns in within (PR#1131)
+abc <- data.frame(a=1:5, b=2:6, c=3:7)
+within(abc, b<-NULL)
+within(abc,{d<-a+7;b<-NULL})
+within(abc,{a<-a+7;b<-NULL})
+## Second produced corrupt data frame in 2.7.1
+
+
+## aggregate on an empty data frame (PR#13167)
+z <- data.frame(a=integer(0), b=numeric(0))
+try(aggregate(z, by=z[1], FUN=sum))
+## failed in unlist in 2.8.0, now gives explicit message.
+aggregate(data.frame(a=1:10)[F], list(rep(1:2, each=5)), sum)
+## used to fail obscurely.
+
+
+## subsetting data frames with duplicate rows
+z <- data.frame(a=1, a=2, b=3, check.names=FALSE)
+z[] # OK
+z[1, ]
+## had row names a, a.1, b in 2.8.0.
+
+
+## incorrect warning due to lack of fuzz.
+TS <-  ts(co2[1:192], freq=24)
+tmp2 <- window(TS, start(TS), end(TS))
+## warned in 2.8.0
+
+## failed to add tag
+Call <- call("foo", 1)
+Call[["bar"]] <- 2
+Call
+## unnamed call in 2.8.1
+
+options(keep.source = TRUE)
+## $<- on pairlists failed to duplicate (from Felix Andrews,
+## https://stat.ethz.ch/pipermail/r-devel/2009-January/051698.html)
+foo <- function(given = NULL) {
+    callObj <- quote(callFunc())
+    if(!is.null(given)) callObj$given <- given
+    if (is.null(given)) callObj$default <- TRUE
+    callObj
+}
+
+foo()
+foo(given = TRUE)
+foo("blah blah")
+foo(given = TRUE)
+foo()
+## altered foo() in 2.8.1.
+
+## Using  '#' flag in  sprintf():
+forms <- c("%#7.5g","%#5.f", "%#7x", "%#5d", "%#9.0e")
+nums <- list(-3.145, -31,   0xabc,  -123L, 123456)
+rbind(mapply(sprintf, forms,               nums),
+      mapply(sprintf, sub("#", '', forms), nums))
+## gave an error in pre-release versions of 2.9.0
+
+## (auto)printing of functions {with / without source attribute},
+## including primitives
+sink(con <- textConnection("of", "w")) ; c ; sink(NULL); close(con)
+of2 <- capture.output(print(c))
+stopifnot(identical(of2, of),
+          identical(of2, "function (...)  .Primitive(\"c\")"))
+## ^^ would have failed up to R 2.9.x
+foo
+print(foo, useSource = FALSE)
+attr(foo, "srcref") <- NULL
+foo
+(f <- structure(function(){}, note = "just a note",
+                yada = function() "not the same"))
+print(f, useSource = FALSE) # must print attributes
+print.function <- function(x, ...) { str(x,...); invisible(x) }
+print.function
+f
+rm(print.function)
+## auto-printing and printing differed up to R 2.9.x
+
+printCoefmat(cbind(0,1))
+## would print NaN up to R 2.9.0
+
+
+## continuity correction for Kendall's tau.  Improves this example.
+cor.test(c(1, 2, 3, 4, 5), c(8, 6, 7, 5, 3), method = "kendall",
+         exact = TRUE)
+cor.test(c(1, 2, 3, 4, 5), c(8, 6, 7, 5, 3), method = "kendall",
+         exact = FALSE)
+cor.test(c(1, 2, 3, 4, 5), c(8, 6, 7, 5, 3), method = "kendall",
+         exact = FALSE, continuity = TRUE)
+# and a little for Spearman's
+cor.test(c(1, 2, 3, 4, 5), c(8, 6, 7, 5, 3), method = "spearman",
+         exact = TRUE)
+cor.test(c(1, 2, 3, 4, 5), c(8, 6, 7, 5, 3), method = "spearman",
+         exact = FALSE)
+cor.test(c(1, 2, 3, 4, 5), c(8, 6, 7, 5, 3), method = "spearman",
+         exact = FALSE, continuity = TRUE)
+## Kendall case is wish of PR#13691
+
+
+## corrupt data frame, PR#13724
+foo <- matrix(1:12, nrow = 3)
+bar <- as.data.frame(foo)
+val <- integer(0)
+try(bar$NewCol <- val)
+# similar, not in the report
+try(bar[["NewCol"]] <- val)
+# [ ] is tricker, so just check the result is reasonable and prints
+bar["NewCol"] <- val
+bar[, "NewCol2"] <- val
+bar[FALSE, "NewCol3"] <- val
+bar
+## Succeeded but gave corrupt result in 2.9.0
+
+
+## Printing NA_complex_
+m22 <- matrix(list(NA_complex_, 3, "A string", NA_complex_), 2,2)
+print(m22)
+print(m22, na.print="<missing value>")
+## used uninitialized variable in C, noticably Windows, for R <= 2.9.0
+
+
+## non-standard variable names in update etc
+## never guaranteed to work, requested by Sundar Dorai-Raj in
+## https://stat.ethz.ch/pipermail/r-devel/2009-July/054184.html
+update(`a: b` ~ x, ~ . + y)
+## 2.9.1 dropped backticks
+
+
+## print(ls.str(.)) did evaluate calls
+E <- new.env(); E$cl <- call("print", "Boo !")
+ls.str(E)
+## 2.10.0 did print..
+
+
+## complete.cases with no input
+try(complete.cases())
+try(complete.cases(list(), list()))
+## gave unhelpful messages in 2.10.0, silly results in pre-2.10.1
+
+
+## error messages from (C-level) evalList
+tst <- function(y) { stopifnot(is.numeric(y)); y+ 1 }
+try(tst())
+try(c(1,,2))
+## change in 2.8.0 made these less clear
+
+
+## empty levels from cut.Date (cosmetic, PR#14162)
+x <- as.Date(c("2009-03-21","2009-03-31"))
+cut(x, breaks= "quarter") # had two levels in 2.10.1
+cut(as.POSIXlt(x), breaks= "quarter")
+## remove empty final level
+
+
+## tests of error conditions in switch()
+switch("a", a=, b=, c=, 4)
+switch("a", a=, b=, c=, )
+.Last.value
+switch("a", a=, b=, c=, invisible(4))
+.Last.value
+## visiblilty changed in 2.11.0
+
+
+## rounding error in aggregate.ts
+## https://stat.ethz.ch/pipermail/r-devel/2010-April/057225.html
+x <- rep(6:10, 1:5)
+aggregate(as.ts(x), FUN = mean, ndeltat = 5)
+x <- rep(6:10, 1:5)
+aggregate(as.ts(x), FUN = mean, nfrequency = 0.2)
+## platform-dependent in 2.10.1
+
+
+## wish of PR#9574
+a <- c(0.1, 0.3, 0.4, 0.5, 0.3, 0.0001)
+format.pval(a, eps=0.01)
+format.pval(a, eps=0.01, nsmall =2)
+## granted in 2.12.0
+
+
+## printing fractional dates
+as.Date(0.5, origin="1969-12-31")
+## changed to round down in 2.12.1
+
+
+## printing data frames with  ""  colnames
+dfr <- data.frame(x=1:6, CC=11:16, f = gl(3,2)); colnames(dfr)[2] <- ""
+dfr
+## now prints the same as data.matrix(dfr) does here
+
+
+## format(., zero.print) --> prettyNum()
+set.seed(9); m <- matrix(local({x <- rnorm(40)
+                                sign(x)*round(exp(2*x))/10}), 8,5)
+noquote(format(m, zero.print= "."))
+## used to print  ". 0" instead of ".  "
+
+
+## tests of NA having precedence over NaN -- all must print "NA"
+min(c(NaN, NA))
+min(c(NA, NaN)) # NaN in 2.12.2
+min(NaN, NA_real_)  # NaN in 2.12.2
+min(NA_real_, NaN)
+max(c(NaN, NA))
+max(c(NA, NaN))  # NaN in 2.12.2
+max(NaN, NA_real_)  # NaN in 2.12.2
+max(NA_real_, NaN)
+## might depend on compiler < 2.13.0
+
+
+## PR#14514
+# Data are from Conover, "Nonparametric Statistics", 3rd Ed, p. 197,
+# re-arranged to make a lower-tail test the issue of relevance:  we
+# want to see if pregnant nurses exposed to nitrous oxide have higher
+# rates of miscarriage, stratifying on the type of nurse.
+Nitrous <- array(c(32,210,8,26,18,21,3,3,7,75,0,10), dim = c(2,2,3),
+                 dimnames = list(c("Exposed","NotExposed"),
+                 c("FullTerm","Miscarriage"),
+                 c("DentalAsst","OperRoomNurse","OutpatientNurse")))
+mantelhaen.test(Nitrous, exact=TRUE, alternative="less")
+mantelhaen.test(Nitrous, exact=FALSE, alternative="less")
+## exact = FALSE gave the wrong tail in 2.12.2.
+
+
+## scan(strip.white=TRUE) could strip trailing (but not leading) space
+## inside quoted strings.
+writeLines(' "  A  "; "B" ;"C";" D ";"E ";  F  ;G  ', "foo")
+cat(readLines("foo"), sep = "\n")
+scan('foo', list(""), sep=";")[[1]]
+scan('foo', "", sep=";")
+scan('foo', list(""), sep=";", strip.white = TRUE)[[1]]
+scan('foo', "", sep=";", strip.white = TRUE)
+unlink('foo')
+
+writeLines(' "  A  "\n "B" \n"C"\n" D "\n"E "\n  F  \nG  ', "foo2")
+scan('foo2', "")
+scan('foo2', "", strip.white=TRUE) # documented to be ignored ...
+unlink('foo2')
+## Changed for 2.13.0, found when investigating non-bug PR#14522.
+
+
+## PR#14488: missing values in rank correlations
+set.seed(1)
+x <- runif(10)
+y <- runif(10)
+x[3] <- NA; y[5] <- NA
+xy <- cbind(x, y)
+
+cor(x, y, method = "spearman", use = "complete.obs")
+cor(x, y, method = "spearman", use = "pairwise.complete.obs")
+cor(na.omit(xy),  method = "spearman", use = "complete.obs")
+cor(xy,  method = "spearman", use = "complete.obs")
+cor(xy,  method = "spearman", use = "pairwise.complete.obs")
+## inconsistent in R < 2.13.0
+
+
+## integer overflow in rowsum() went undetected
+# https://stat.ethz.ch/pipermail/r-devel/2011-March/060304.html
+x <- 2e9L
+rowsum(c(x, x), c("a", "a"))
+rowsum(data.frame(z = c(x, x)), c("a", "a"))
+## overflow in R < 2.13.0.
+
+
+## method dispatch in [[.data.frame:
+## https://stat.ethz.ch/pipermail/r-devel/2011-April/060409.html
+d <- data.frame(num = 1:4,
+          fac = factor(letters[11:14], levels = letters[1:15]),
+          date = as.Date("2011-04-01") + (0:3),
+          pv = package_version(c("1.2-3", "4.5", "6.7", "8.9-10")))
+for (i in seq_along(d)) print(d[[1, i]])
+## did not dispatch in R < 2.14.0
+
+
+## some tests of 24:00 as midnight
+as.POSIXlt("2011-05-16 24:00:00", tz = "GMT")
+as.POSIXlt("2010-01-31 24:00:00", tz = "GMT")
+as.POSIXlt("2011-02-28 24:00:00", tz = "GMT")
+as.POSIXlt("2008-02-28 24:00:00", tz = "GMT")
+as.POSIXlt("2008-02-29 24:00:00", tz = "GMT")
+as.POSIXlt("2010-12-31 24:00:00", tz = "GMT")
+## new in 2.14.0
+
+
+## Unwarranted conversion of logical values
+try(double(FALSE))
+x <- 1:3
+try(length(x) <- TRUE)
+## coerced to integer in 2.13.x
+
+
+## filter(recursive = TRUE) on input with NAs
+# https://stat.ethz.ch/pipermail/r-devel/2011-July/061547.html
+x <- c(1:4, NA, 6:9)
+cbind(x, "1"=filter(x, 0.5, method="recursive"),
+         "2"=filter(x, c(0.5, 0.0), method="recursive"),
+         "3"=filter(x, c(0.5, 0.0, 0.0), method="recursive"))
+## NAs in wrong place in R <= 2.13.1.
+
+
+## PR#14679.  Format depends if TZ is set.
+x <- as.POSIXlt(c("2010-02-27 22:30:33", "2009-08-09 06:01:03",
+                  "2010-07-23 17:29:59"))
+stopifnot(!is.na(trunc(x, units = "days")[1:3]))
+## gave NAs after the first in R < 2.13.2
+
+
+## explicit error message for silly input (tol = 0)
+aa <- c(1, 2, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8, 12, 13, 14)
+try(smooth.spline(aa, seq_along(aa)))
+fit <- smooth.spline(aa, seq_along(aa), tol = 0.1)
+# actual output is too unstable to diff.
+## Better message from R 2.14.2
+
+
+## PR#14840
+d <- data.frame(x = 1:9,
+                y = 1:9 + 0.1*c(1, 2, -1, 0, 1, 1000, 0, 1, -1),
+                w = c(1, 0.5, 2, 1, 2, 0, 1, 2, 1))
+fit <- lm(y ~ x, data=d, weights=w)
+summary(fit)
+## issue is how the 5-number summary is labelled
+## (also seen in example(case.names))
+
+
+## is.unsorted got it backwards for dataframes of more than one column
+## it is supposed to look for violations of x[2] > x[1], x[3] > x[2], etc.
+is.unsorted(data.frame(x=2:1))
+is.unsorted(data.frame(x=1:2, y=3:4))
+is.unsorted(data.frame(x=3:4, y=1:2))
+## R < 2.15.1 got these as FALSE, TRUE, FALSE.
+
+
+library("methods")# (not needed here)
+assertError <- tools::assertError
+assertError( getMethod(ls, "bar", fdef=ls), verbose=TRUE)
+assertError( getMethod(show, "bar"), verbose=TRUE)
+## R < 2.15.1 gave
+##   cannot coerce type 'closure' to vector of type 'character'
+
+
+## corner cases for array
+# allowed, gave non-array in 2.15.x
+try(array(1, integer()))
+# if no dims, an error to supply dimnames
+try(array(1, integer(), list(1, 2)))
+##
+
+
+## is.na() on an empty dataframe (PR#14059)
+DF <- data.frame(row.names=1:3)
+is.na(DF); str(.Last.value)
+is.na(DF[FALSE, ]); str(.Last.value)
+## first failed in R 2.15.1, second gave NULL
+
+
+## split() with dots in levels
+df <- data.frame(x = rep(c("a", "a.b"), 3L), y = rep(c("b.c", "c"), 3L),
+                 z = 1:6)
+df
+split(df, df[, 1:2]) # default is sep = "."
+split(df, df[, 1:2], sep = ":")
+##
+
+
+## The difference between sort.list and order
+z <- c(4L, NA, 2L, 3L, NA, 1L)
+order(z, na.last = NA)
+sort.list(z, na.last = NA)
+sort.list(z, na.last = NA, method = "shell")
+sort.list(z, na.last = NA, method = "quick")
+sort.list(z, na.last = NA, method = "radix")
+## Differences first documented in R 2.15.2
+
+
+## PR#15028: names longer than cutoff NB (= 1000)
+NB <- 1000
+lns <- capture.output(
+    setNames(c(255, 1000, 30000),
+             c(paste(rep.int("a", NB+2), collapse=""),
+               paste(rep.int("b", NB+2), collapse=""),
+               paste(rep.int("c", NB+2), collapse=""))))
+sub("^ +", '', lns[2* 1:3])
+## *values* were cutoff when printed
+
+
+## allows deparse limits to be set
+form <- reallylongnamey ~ reallylongnamex0 + reallylongnamex1 + reallylongnamex2 + reallylongnamex3
+form
+op <- options(deparse.cutoff=80)
+form
+options(deparse.cutoff=50)
+form
+options(op)
+## fixed to 60 in R 2.15.x
+
+
+## PR#15179: user defined binary ops were not deparsed properly
+quote( `%^%`(x, `%^%`(y,z)) )
+quote( `%^%`(x) )
+##
+
+
+## Anonymous function calls were not deparsed properly
+substitute(f(x), list(f = function(x) x + 1))
+substitute(f(x), list(f = quote(function(x) x + 1)))
+substitute(f(x), list(f = quote(f+g)))
+substitute(f(x), list(f = quote(base::mean)))
+substitute(f(x), list(f = quote(a[n])))
+substitute(f(x), list(f = quote(g(y))))
+## The first three need parens, the last three don't.
+
+
+## PR#15247 : str() on invalid data frame names (where print() works):
+d <- data.frame(1:3, "B", 4); names(d) <- c("A", "B\xba","C\xabcd")
+str(d)
+## gave an error in R <= 3.0.0
+
+
+## PR#15299 : adding a simple vector to a classed object produced a bad result:
+1:2 + table(1:2)
+## Printed the class attribute in R <= 3.0.0
+
+
+## PR#15311 : regmatches<- mishandled regexpr results.
+  x <- c('1', 'B', '3')
+  m <- regexpr('\\d', x)
+  regmatches(x, m) <- c('A', 'C')
+  print(x)
+## Gave a warning and a wrong result up to 3.0.1
+
+
+## Bad warning found by Radford Neal
+  saveopt <- options(warnPartialMatchDollar=TRUE)
+  pl <- pairlist(abc=1, def=2)
+  pl$ab
+  if (!is.null(saveopt[["warnPartialMatchDollar"]])) options(saveopt)
+## 'abc' was just ''
+
+
+## seq() with NaN etc inputs now gives explicit error messages
+try(seq(NaN))
+try(seq(to = NaN))
+try(seq(NaN, NaN))
+try(seq.int(NaN))
+try(seq.int(to = NaN))
+try(seq.int(NaN, NaN))
+## R 3.0.1 gave messages from ':' or about negative-length vectors.
+
+
+## Some dimnames were lost from 1D arrays: PR#15301
+x <- array(0:2, dim=3, dimnames=list(d1=LETTERS[1:3]))
+x
+x[]
+x[3:1]
+x <- array(0, dimnames=list(d1="A"))
+x
+x[]
+x[drop = FALSE]
+## lost dimnames in 3.0.1
+
+
+## PR#15396
+load(file.path(Sys.getenv('SRCDIR'), 'arima.rda'))
+(f1 <- arima(x, xreg = xreg, order = c(1,1,1), seasonal = c(1,0,1)))
+(f2 <- arima(diff(x), xreg = diff(xreg), order = c(1,0,1), seasonal = c(1,0,1),
+             include.mean = FALSE))
+stopifnot(all.equal(coef(f1), coef(f2), tolerance = 1e-3, check.names = FALSE))
+## first gave local optim in 3.0.1
+
+## all.equal always checked the names
+x <- c(a=1, b=2)
+y <- c(a=1, d=2)
+all.equal(x, y, check.names = FALSE)
+## failed on mismatched attributes
+
+
+## PR#15411, plus digits change
+format(9992, digits = 3)
+format(9996, digits = 3)
+format(0.0002, digits = 0, nsmall = 2)
+format(pi*10, digits = 0, nsmall = 1)
+## second added an extra space; 3rd and 4th were not allowed.
+
+## and one branch of this was wrong:
+xx <- c(-86870268, 107833358, 302536985, 481015309, 675718935, 854197259,
+        1016450281, 1178703303, 1324731023, 1454533441)
+xx
+## dropped spaces without long doubles
+
+## and rounding was being detected improperly (PR#15583)
+1000* ((10^(1/4)) ^ c(0:4))
+7/0.07
+## Spacing was incorrect
+
+
+## PR#15468
+M <- matrix(11:14, ncol=2, dimnames=list(paste0("Row", 1:2), paste0("Col",
+1:2)))
+L <- list(elem1=1, elem2=2)
+rbind(M, L)
+rbind(L, M)
+cbind(M, L)
+cbind(L, M)
+## lost the dim of M, so returned NULL entries
+
+
+## NA_character_ was not handled properly in min and max (reported by Magnus Thor Torfason)
+str(min(NA, "bla"))
+str(min("bla", NA))
+str(min(NA_character_, "bla"))
+str(max(NA, "bla"))
+str(max("bla", NA))
+str(max(NA_character_, "bla"))
+## NA_character_ could be treated as "NA"; depending on the locale, it would not necessarily
+## be the min or max.
+
+
+## When two entries needed to be cut to width, str() mixed up
+## the values (reported by Gerrit Eichner)
+oldopts <- options(width=70, stringsAsFactors=TRUE)
+n <- 11      # number of rows of data frame
+M <- 10000   # order of magnitude of numerical values
+longer.char.string <- "zjtvorkmoydsepnxkabmeondrjaanutjmfxlgzmrbjp"
+X <- data.frame( A = 1:n * M,
+                 B = rep( longer.char.string, n))
+str( X, strict.width = "cut")
+options(oldopts)
+## The first row of the str() result was duplicated.
+
+
+## PR15624: rounding in extreme cases
+dpois(2^52,1,1)
+dpois(2^52+1,1,1)
+## second warned in R 3.0.2.
+
+
+## Example from PR15625
+f <- file.path(Sys.getenv('SRCDIR'), 'EmbeddedNuls.csv')
+## This is a file with a UTF-8 BOM and some fields which are a single nul.
+## The output does rely on this being run in a non-UTF-8 locale (C in tests).
+read.csv(f) # warns
+read.csv(f, skipNul = TRUE, fileEncoding = "UTF-8-BOM")
+## 'skipNul' is new in 3.1.0.  Should not warn on BOM, ignore in second.
+
+
+## all.equal datetime method
+x <- Sys.time()
+all.equal(x,x)
+all.equal(x, as.POSIXlt(x))
+all.equal(x, as.POSIXlt(x, tz = "EST5EDT"))
+all.equal(x, x+1e-4)
+isTRUE(all.equal(x, x+0.002)) # message will depend on representation error
+## as.POSIXt method is new in 3.1.0.
+
+
+
+## Misuse of PR#15633
+try(bartlett.test(yield ~ block*N, data = npk))
+try(fligner.test (yield ~ block*N, data = npk))
+## used the first factor with an incorrect description in R < 3.0.3
+
+
+## Misguided expectation of PR#15687
+xx <- window(AirPassengers, start = 1960)
+cbind(xx, xx)
+op <- options(digits = 2)
+cbind(xx, xx)
+options(op)
+## 'digits' was applied to the time.
+
+
+## Related to PR#15190
+difftime(
+    as.POSIXct(c("1970-01-01 00:00:00", "1970-01-01 12:00:00"), tz="EST5EDT"),
+    as.POSIXct(c("1970-01-01 00:00:00", "1970-01-01 00:00:00"), tz="UTC"))
+## kept tzone from first arg.
+
+
+## PR#15706
+x1 <- as.dendrogram(hclust(dist(c(i=1,ii=2,iii=3,v=5,vi=6,vii=7))))
+attr(cophenetic(x1), "Labels")
+## gave a matrix in 3.0.3
+
+
+## PR#15708
+aa <- anova( lm(sr ~ ., data = LifeCycleSavings) )
+op <- options(width = 50)
+aa
+options(width = 40)
+aa ; options(op)
+## did not line wrap "Signif. codes" previously
+
+
+## PR#15718
+d <- data.frame(a=1)
+d[integer(), "a"] <- 2
+## warned in 3.0.3.
+
+
+## PR#15781
+options(foo = 1)
+print(options(foo = NULL))
+## printed wrong value in 3.1.0
+
+
+## getParseData bug reported by Andrew Redd
+raw <- "
+function( a   # parameter 1
+         , b=2 # parameter 2
+         ){a+b}"
+p <- parse(text = raw)
+getParseData(p)
+## Got some parents wrong
+
+
+## wish of PR#15819
+set.seed(123); x <- runif(10); y <- rnorm(10)
+op <- options(OutDec = ",")
+fit <- lm(y ~ x)
+summary(fit)
+options(op)
+## those parts using formatC still used a decimal point.
+
+
+## Printing a list with "bad" component names
+L <- list(`a\\b` = 1, `a\\c` = 2, `a\bc` = "backspace")
+setClass("foo", representation(`\\C` = "numeric"))
+## the next three all print correctly:
+names(L)
+unlist(L)
+as.pairlist(L)
+cat(names(L), "\n")# yes, backspace is backspace here
+L
+new("foo")
+## the last two lines printed wrongly in R <= 3.1.1
+
+
+## Printing of arrays where last dim(.) == 0 :
+r <- matrix(,0,4, dimnames=list(Row=NULL, Col=paste0("c",1:4)))
+r
+t(r) # did not print "Row", "Col"
+A <- array(dim=3:0, dimnames=list(D1=c("a","b","c"), D2=c("X","Y"), D3="I", D4=NULL))
+A ## did not print *anything*
+A[,,"I",] # ditto
+A[,,0,]   # ditto
+aperm(A, c(3:1,4))   # ditto
+aperm(A, c(1:2, 4:3))# ditto
+unname(A)            # ditto
+format(A[,,1,])	     # ditto
+aperm(A, 4:1) # was ok, is unchanged
+## sometimes not printing anything in R <= 3.1.1
+
+
+## Printing objects with very long names cut off literal values (PR#15999)
+make_long_name <- function(n)
+{
+  paste0(rep("a", n), collapse = "")
+}
+setNames(TRUE, make_long_name(1000))  # value printed as TRU
+setNames(TRUE, make_long_name(1002))  # value printed as T
+setNames(TRUE, make_long_name(1003))  # value not printed
+##
+
+
+## PR#16437
+dd <- data.frame(F = factor(rep(c("A","B","C"), each = 3)), num = 1:9)
+cs <- list(F = contr.sum(3, contrasts = FALSE))
+a1 <- aov(num ~ F, data = dd, contrasts = cs)
+model.tables(a1, "means")
+t1 <- TukeyHSD(a1) ## don't print to avoid precision issues.
+a2 <- aov(num ~ 0+F, data = dd, contrasts = cs)
+model.tables(a2, "means")
+t2 <- TukeyHSD(a2)
+attr(t1, "orig.call") <- attr(t2, "orig.call")
+stopifnot(all.equal(t1, t2))
+## functions both failed on a2 in R <= 3.2.2.
+
+
+## deparse() did not add parens before [
+substitute(a[1], list(a = quote(x * y)))
+## should be (x * y)[1], was x * y[1]
+# Check all levels of precedence
+# (Comment out illegal ones)
+quote(`$`(a :: b, c))
+# quote(`::`(a $ b, c $ d))
+quote(`[`(a $ b, c $ d))
+quote(`$`(a[b], c))
+quote(`^`(a[b], c[d]))
+quote(`[`(a ^ b, c ^ d))
+quote(`-`(a ^ b))
+quote(`^`(-b, -d))
+quote(`:`(-b, -d))
+quote(`-`(a : b))
+quote(`%in%`(a : b, c : d))
+quote(`:`(a %in% b, c %in% d))
+quote(`*`(a %in% b, c %in% d))
+quote(`%in%`(a * b, c * d))
+quote(`+`(a * b, c * d))
+quote(`*`(a + b, c + d))
+quote(`<`(a + b, c + d))
+quote(`+`(a < b, c < d))
+quote(`!`(a < b))
+quote(`<`(!b, !d))
+quote(`&`(!b, !d))
+quote(`!`(a & b))
+quote(`|`(a & b, c & d))
+quote(`&`(a | b, c | d))
+quote(`~`(a | b, c | d))
+quote(`|`(a ~ b, c ~ d))
+quote(`->`(a ~ b, d))
+quote(`~`(a -> b, c -> d))
+quote(`<-`(a, c -> d))
+quote(`->`(a <- b, c))
+quote(`=`(a, c <- d))
+quote(`<-`(a, `=`(c, d)))
+quote(`?`(`=`(a, b), `=`(c, d)))
+quote(`=`(a, c ? d))
+quote(`?`(a = b))
+quote(`=`(b, ?d))
+
+## dput() quoted the empty symbol (PR#16686)
+a <- alist(one = 1, two = )
+dput(a)
+## deparsed two to quote()
+
+
+## summary.data.frame() with NAs in columns of class "Date" -- PR#16709
+x <- c(18000000, 18810924, 19091227, 19027233, 19310526, 19691228, NA)
+x.Date <- as.Date(as.character(x), format = "%Y%m%d")
+summary(x.Date)
+DF.Dates <- data.frame(c1 = x.Date)
+summary(DF.Dates) ## NA's missing from output :
+DF.Dates$x1 <- 1:7
+summary(DF.Dates) ## NA's still missing
+DF.Dates$x2 <- c(1:6, NA)
+## now, NA's show fine:
+summary(DF.Dates)
+## 2 of 4  summary(.) above did not show NA's  in R <= 3.2.3
+
+
+## str.default() for "AsIs" arrays
+str(I(m <- matrix(pi*1:4, 2)))
+## did look ugly (because of toString() for numbers) in R <= 3.3.1
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/d-p-q-r-tests.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/d-p-q-r-tests.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/d-p-q-r-tests.R	(revision 2476)
@@ -0,0 +1,980 @@
+####	d|ensity
+####	p|robability (cumulative)
+####	q|uantile
+####	r|andom number generation
+####
+####	Functions for  ``d/p/q/r''
+
+.ptime <- proc.time()
+F <- FALSE
+T <- TRUE
+
+options(warn = 2)
+##      ======== No warnings, unless explicitly asserted via
+assertWarning <- tools::assertWarning
+
+###-- these are identical in ./arith-true.R ["fixme": use source(..)]
+opt.conformance <- 0
+Meps <- .Machine $ double.eps
+xMax <- .Machine $ double.xmax
+options(rErr.eps = 1e-30)
+rErr <- function(approx, true, eps = getOption("rErr.eps", 1e-30))
+{
+    ifelse(Mod(true) >= eps,
+	   1 - approx / true, # relative error
+	   true - approx)     # absolute error (e.g. when true=0)
+}
+## Numerical equality: Here want "rel.error" almost always:
+All.eq <- function(x,y) {
+    all.equal.numeric(x,y, tolerance = 64*.Machine$double.eps,
+                      scale = max(0, mean(abs(x), na.rm=TRUE)))
+}
+if(!interactive())
+    set.seed(123)
+
+## The prefixes of ALL the PDQ & R functions
+PDQRinteg <- c("binom", "geom", "hyper", "nbinom", "pois","signrank","wilcox")
+PDQR <- c(PDQRinteg, "beta", "cauchy", "chisq", "exp", "f", "gamma",
+	  "lnorm", "logis", "norm", "t","unif","weibull")
+PQonly <- c("tukey")
+
+###--- Discrete Distributions --- Consistency Checks  pZZ = cumsum(dZZ)
+
+##for(pre in PDQRinteg) { n <- paste("d",pre,sep=""); cat(n,": "); str(get(n))}
+
+##__ 1. Binomial __
+
+## Cumulative Binomial '==' Cumulative F :
+## Abramowitz & Stegun, p.945-6;  26.5.24  AND	26.5.28 :
+n0 <- 50; n1 <- 16; n2 <- 20; n3 <- 8
+for(n in rbinom(n1, size = 2*n0, p = .4)) {
+    for(p in c(0,1,rbeta(n2, 2,4))) {
+	for(k in rbinom(n3, size = n,  prob = runif(1)))
+	    ## For X ~ Bin(n,p), compute 1 - P[X > k] = P[X <= k] in three ways:
+	    stopifnot(all.equal(       pbinom(0:k, size = n, prob = p),
+				cumsum(dbinom(0:k, size = n, prob = p))),
+		      all.equal(if(k==n || p==0) 1 else
+				pf((k+1)/(n-k)*(1-p)/p, df1=2*(n-k), df2=2*(k+1)),
+				sum(dbinom(0:k, size = n, prob = p))))
+    }
+}
+
+##__ 2. Geometric __
+for(pr in seq(1e-10,1,len=15)) # p=0 is not a distribution
+    stopifnot(All.eq((dg <- dgeom(0:10, pr)),
+		     pr * (1-pr)^(0:10)),
+	      All.eq(cumsum(dg), pgeom(0:10, pr)))
+
+
+##__ 3. Hypergeometric __
+
+m <- 10; n <- 7
+for(k in 2:m) {
+    x <- 0:(k+1)
+    stopifnot(All.eq(phyper(x, m, n, k), cumsum(dhyper(x, m, n, k))))
+}
+
+##__ 4. Negative Binomial __
+
+## PR #842
+for(size in seq(0.8,2, by=.1))
+    stopifnot(all.equal(cumsum(dnbinom(0:7, size, .5)),
+			       pnbinom(0:7, size, .5)))
+stopifnot(All.eq(pnbinom(c(1,3), .9, .5),
+		 c(0.777035760338812, 0.946945347071519)))
+
+##__ 5. Poisson __
+
+stopifnot(dpois(0:5,0)		 == c(1, rep(0,5)),
+	  dpois(0:5,0, log=TRUE) == c(0, rep(-Inf, 5)))
+
+## Cumulative Poisson '==' Cumulative Chi^2 :
+## Abramowitz & Stegun, p.941 :	 26.4.21 (26.4.2)
+n1 <- 20; n2 <- 16
+for(lambda in rexp(n1))
+    for(k in rpois(n2, lambda))
+	stopifnot(all.equal(1 - pchisq(2*lambda, 2*(1+ 0:k)),
+			    pp <- cumsum(dpois(0:k, lambda=lambda)),
+			    tolerance = 100*Meps),
+		  all.equal(pp, ppois(0:k, lambda=lambda), tolerance = 100*Meps),
+		  all.equal(1 - pp, ppois(0:k, lambda=lambda, lower.tail = FALSE)))
+
+
+##__ 6. SignRank __
+for(n in rpois(32, lam=8)) {
+    x <- -1:(n + 4)
+    stopifnot(All.eq(psignrank(x, n), cumsum(dsignrank(x, n))))
+}
+
+##__ 7. Wilcoxon (symmetry & cumulative) __
+is.sym <- TRUE
+for(n in rpois(5, lam=6))
+    for(m in rpois(15, lam=8)) {
+	x <- -1:(n*m + 1)
+	fx <- dwilcox(x, n, m)
+	Fx <- pwilcox(x, n, m)
+	is.sym <- is.sym & all(fx == dwilcox(x, m, n))
+	stopifnot(All.eq(Fx, cumsum(fx)))
+    }
+stopifnot(is.sym)
+
+
+###-------- Continuous Distributions ----------
+
+##---  Gamma (incl. central chi^2) Density :
+x <- round(rgamma(100, shape = 2),2)
+for(sh in round(rlnorm(30),2)) {
+    Ga <- gamma(sh)
+    for(sig in round(rlnorm(30),2))
+	stopifnot(all.equal((d1 <- dgamma(	 x,   shape = sh, scale = sig)),
+                            (d2 <- dgamma(x/sig, shape = sh, scale = 1) / sig),
+                            tolerance = 1e-14)## __ad interim__ was 1e-15
+                  ,
+                  All.eq(d1, (d3 <- 1/(Ga * sig^sh) * x^(sh-1) * exp(-x/sig)))
+                  )
+}
+
+stopifnot(pgamma(1,Inf,scale=Inf) == 0)
+## Also pgamma(Inf,Inf) == 1 for which NaN was slightly more appropriate
+assertWarning(stopifnot(
+    is.nan(c(pgamma(Inf,  1,scale=Inf),
+             pgamma(Inf,Inf,scale=Inf)))))
+scLrg <- c(2,100, 1e300*c(.1, 1,10,100), 1e307, xMax, Inf)
+stopifnot(pgamma(Inf, 1, scale=xMax) == 1,
+          pgamma(xMax,1, scale=Inf) == 0,
+          all.equal(pgamma(1e300, 2, scale= scLrg, log=TRUE),
+                    c(0, 0, -0.000499523968713701, -1.33089326820406,
+                      -5.36470502873211, -9.91015144019122,
+                      -32.9293385491433, -38.707517174609, -Inf),
+                    tolerance = 2e-15)
+          )
+
+p <- 7e-4; df <- 0.9
+stopifnot(
+abs(1-c(pchisq(qchisq(p, df),df)/p, # was 2.31e-8 for R <= 1.8.1
+        pchisq(qchisq(1-p, df,lower=FALSE),df,lower=FALSE)/(1-p),# was 1.618e-11
+        pchisq(qchisq(log(p), df,log=TRUE),df, log=TRUE)/log(p), # was 3.181e-9
+        pchisq(qchisq(log1p(-p),df,log=T,lower=F),df, log=T,lower=F)/log1p(-p)
+        )# 32b-i386: (2.2e-16, 0,0, 3.3e-16); Opteron: (2.2e-16, 0,0, 2.2e-15)
+    ) < 1e-14
+)
+
+##-- non central Chi^2 :
+xB <- c(2000,1e6,1e50,Inf)
+for(df in c(0.1, 1, 10))
+    for(ncp in c(0, 1, 10, 100)) stopifnot(pchisq(xB, df=df, ncp=ncp) == 1)
+stopifnot(all.equal(qchisq(0.025,31,ncp=1,lower.tail=FALSE),# inf.loop PR#875
+                    49.7766246561514, tolerance = 1e-11))
+for(df in c(0.1, 0.5, 1.5, 4.7, 10, 20,50,100)) {
+    xx <- c(10^-(5:1), .9, 1.2, df + c(3,7,20,30,35,38))
+    pp <- pchisq(xx, df=df, ncp = 1) #print(pp)
+    dtol <- 1e-12 *(if(2 < df && df <= 50) 64 else if(df > 50) 20000 else 501)
+    stopifnot(all.equal(xx, qchisq(pp, df=df, ncp=1), tolerance = dtol))
+}
+
+## p ~= 1 (<==> 1-p ~= 0) -- gave infinite loop in R <= 1.8.1 -- PR#6421
+psml <- 2^-(10:54)
+q0 <- qchisq(psml,    df=1.2, ncp=10, lower.tail=FALSE)
+q1 <- qchisq(1-psml, df=1.2, ncp=10) # inaccurate in the tail
+p0 <- pchisq(q0, df=1.2, ncp=10, lower.tail=FALSE)
+p1 <- pchisq(q1, df=1.2, ncp=10, lower.tail=FALSE)
+iO <- 1:30
+stopifnot(all.equal(q0[iO], q1[iO], tolerance = 1e-5),# 9.86e-8
+          all.equal(p0[iO], psml[iO])) # 1.07e-13
+
+##--- Beta (need more):
+
+## big a & b (PR #643)
+stopifnot(is.finite(a <- rlnorm(20, 5.5)), a > 0,
+          is.finite(b <- rlnorm(20, 6.5)), b > 0)
+pab <- expand.grid(seq(0,1,by=.1), a, b)
+p <- pab[,1]; a <- pab[,2]; b <- pab[,3]
+stopifnot(all.equal(dbeta(p,a,b),
+                    exp(pab <- dbeta(p,a,b, log = TRUE)), tolerance = 1e-11))
+sp <- sample(pab, 50)
+if(!interactive())
+stopifnot(which(isI <- sp == -Inf) ==
+              c(3, 11, 15, 20, 22, 23, 30, 39, 42, 43, 46, 47, 49),
+          all.equal(range(sp[!isI]), c(-2906.123981, 2.197270387))
+          )
+
+
+##--- Normal (& Lognormal) :
+
+stopifnot(
+    qnorm(0) == -Inf, qnorm(-Inf, log = TRUE) == -Inf,
+    qnorm(1) ==  Inf, qnorm( 0,   log = TRUE) ==  Inf)
+
+assertWarning(stopifnot(
+    is.nan(qnorm(1.1)),
+    is.nan(qnorm(-.1))))
+
+x <- c(-Inf, -1e100, 1:6, 1e200, Inf)
+stopifnot(
+    dnorm(x,3,s=0) == c(0,0,0,0, Inf, 0,0,0,0,0),
+    pnorm(x,3,s=0) == c(0,0,0,0,  1 , 1,1,1,1,1),
+    dnorm(x,3,s=Inf) == 0,
+    pnorm(x,3,s=Inf) == c(0, rep(0.5, 8), 1))
+
+## 3 Test data from Wichura (1988) :
+stopifnot(
+    all.equal(qnorm(c( 0.25,  .001, 1e-20)),
+	      c(-0.6744897501960817, -3.090232306167814, -9.262340089798408),
+	      tolerance = 1e-15)
+  , ## extreme tail -- available on log scale only:
+    all.equal(qnorm(-1e5, log = TRUE), -447.1974945)
+)
+
+z <- rnorm(1000); all.equal(pnorm(z),  1 - pnorm(-z), tolerance = 1e-15)
+z <- c(-Inf,Inf,NA,NaN, rt(1000, df=2))
+z.ok <- z > -37.5 | !is.finite(z)
+for(df in 1:10) stopifnot(all.equal(pt(z, df), 1 - pt(-z,df), tolerance = 1e-15))
+
+stopifnot(All.eq(pz <- pnorm(z), 1 - pnorm(z, lower=FALSE)),
+          All.eq(pz,		    pnorm(-z, lower=FALSE)),
+          All.eq(log(pz[z.ok]), pnorm(z[z.ok], log=TRUE)))
+y <- seq(-70,0, by = 10)
+cbind(y, "log(pnorm(y))"= log(pnorm(y)), "pnorm(y, log=T)"= pnorm(y, log=TRUE))
+y <- c(1:15, seq(20,40, by=5))
+cbind(y, "log(pnorm(y))"= log(pnorm(y)), "pnorm(y, log=T)"= pnorm(y, log=TRUE),
+      "log(pnorm(-y))"= log(pnorm(-y)), "pnorm(-y, log=T)"= pnorm(-y, log=TRUE))
+## Symmetry:
+y <- c(1:50,10^c(3:10,20,50,150,250))
+y <- c(-y,0,y)
+for(L in c(FALSE,TRUE))
+    stopifnot(identical(pnorm(-y, log= L),
+			pnorm(+y, log= L, lower=FALSE)))
+
+## Log norm
+stopifnot(All.eq(pz, plnorm(exp(z))))
+
+
+###==========  p <-> q	Inversion consistency =====================
+ok <- 1e-5 < pz & pz < 1 - 1e-5
+all.equal(z[ok], qnorm(pz[ok]), tolerance = 1e-12)
+
+###===== Random numbers -- first, just output:
+
+set.seed(123)
+# .Random.seed <- c(0L, 17292L, 29447L, 24113L)
+n <- 20
+## for(pre in PDQR) { n <- paste("r",pre,sep=""); cat(n,": "); str(get(n))}
+(Rbeta	  <- rbeta    (n, shape1 = .8, shape2 = 2) )
+(Rbinom	  <- rbinom   (n, size = 55, prob = pi/16) )
+(Rcauchy  <- rcauchy  (n, location = 12, scale = 2) )
+(Rchisq	  <- rchisq   (n, df = 3) )
+(Rexp	  <- rexp     (n, rate = 2) )
+(Rf	  <- rf	      (n, df1 = 12, df2 = 6) )
+(Rgamma	  <- rgamma   (n, shape = 2, scale = 5) )
+(Rgeom	  <- rgeom    (n, prob = pi/16) )
+(Rhyper	  <- rhyper   (n, m = 40, n = 30, k = 20) )
+(Rlnorm	  <- rlnorm   (n, meanlog = -1, sdlog = 3) )
+(Rlogis	  <- rlogis   (n, location = 12, scale = 2) )
+(Rnbinom  <- rnbinom  (n, size = 7, prob = .01) )
+(Rnorm	  <- rnorm    (n, mean = -1, sd = 3) )
+(Rpois	  <- rpois    (n, lambda = 12) )
+(Rsignrank<- rsignrank(n, n = 47) )
+(Rt	  <- rt	      (n, df = 11) )
+## Rt2 below (to preserve the following random numbers!)
+(Runif	  <- runif    (n, min = .2, max = 2) )
+(Rweibull <- rweibull (n, shape = 3, scale = 2) )
+(Rwilcox  <- rwilcox  (n, m = 13, n = 17) )
+(Rt2	  <- rt	      (n, df = 1.01))
+
+(Pbeta	  <- pbeta    (Rbeta, shape1 = .8, shape2 = 2) )
+(Pbinom	  <- pbinom   (Rbinom, size = 55, prob = pi/16) )
+(Pcauchy  <- pcauchy  (Rcauchy, location = 12, scale = 2) )
+(Pchisq	  <- pchisq   (Rchisq, df = 3) )
+(Pexp	  <- pexp     (Rexp, rate = 2) )
+(Pf	  <- pf	      (Rf, df1 = 12, df2 = 6) )
+(Pgamma	  <- pgamma   (Rgamma, shape = 2, scale = 5) )
+(Pgeom	  <- pgeom    (Rgeom, prob = pi/16) )
+(Phyper	  <- phyper   (Rhyper, m = 40, n = 30, k = 20) )
+(Plnorm	  <- plnorm   (Rlnorm, meanlog = -1, sdlog = 3) )
+(Plogis	  <- plogis   (Rlogis, location = 12, scale = 2) )
+(Pnbinom  <- pnbinom  (Rnbinom, size = 7, prob = .01) )
+(Pnorm	  <- pnorm    (Rnorm, mean = -1, sd = 3) )
+(Ppois	  <- ppois    (Rpois, lambda = 12) )
+(Psignrank<- psignrank(Rsignrank, n = 47) )
+(Pt	  <- pt	      (Rt,  df = 11) )
+(Pt2	  <- pt	      (Rt2, df = 1.01) )
+(Punif	  <- punif    (Runif, min = .2, max = 2) )
+(Pweibull <- pweibull (Rweibull, shape = 3, scale = 2) )
+(Pwilcox  <- pwilcox  (Rwilcox, m = 13, n = 17) )
+
+dbeta	 (Rbeta, shape1 = .8, shape2 = 2)
+dbinom	 (Rbinom, size = 55, prob = pi/16)
+dcauchy	 (Rcauchy, location = 12, scale = 2)
+dchisq	 (Rchisq, df = 3)
+dexp	 (Rexp, rate = 2)
+df	 (Rf, df1 = 12, df2 = 6)
+dgamma	 (Rgamma, shape = 2, scale = 5)
+dgeom	 (Rgeom, prob = pi/16)
+dhyper	 (Rhyper, m = 40, n = 30, k = 20)
+dlnorm	 (Rlnorm, meanlog = -1, sdlog = 3)
+dlogis	 (Rlogis, location = 12, scale = 2)
+dnbinom	 (Rnbinom, size = 7, prob = .01)
+dnorm	 (Rnorm, mean = -1, sd = 3)
+dpois	 (Rpois, lambda = 12)
+dsignrank(Rsignrank, n = 47)
+dt	 (Rt, df = 11)
+dunif	 (Runif, min = .2, max = 2)
+dweibull (Rweibull, shape = 3, scale = 2)
+dwilcox	 (Rwilcox, m = 13, n = 17)
+
+## Check q*(p*(.)) = identity
+All.eq(Rbeta,	  qbeta	   (Pbeta, shape1 = .8, shape2 = 2))
+All.eq(Rbinom,	  qbinom   (Pbinom, size = 55, prob = pi/16))
+All.eq(Rcauchy,	  qcauchy  (Pcauchy, location = 12, scale = 2))
+All.eq(Rchisq,	  qchisq   (Pchisq, df = 3))
+All.eq(Rexp,	  qexp	   (Pexp, rate = 2))
+All.eq(Rf,	  qf	   (Pf, df1 = 12, df2 = 6))
+All.eq(Rgamma,	  qgamma   (Pgamma, shape = 2, scale = 5))
+All.eq(Rgeom,	  qgeom	   (Pgeom, prob = pi/16))
+All.eq(Rhyper,	  qhyper   (Phyper, m = 40, n = 30, k = 20))
+All.eq(Rlnorm,	  qlnorm   (Plnorm, meanlog = -1, sdlog = 3))
+All.eq(Rlogis,	  qlogis   (Plogis, location = 12, scale = 2))
+All.eq(Rnbinom,	  qnbinom  (Pnbinom, size = 7, prob = .01))
+All.eq(Rnorm,	  qnorm	   (Pnorm, mean = -1, sd = 3))
+All.eq(Rpois,	  qpois	   (Ppois, lambda = 12))
+All.eq(Rsignrank, qsignrank(Psignrank, n = 47))
+All.eq(Rt,	  qt	   (Pt,	 df = 11))
+All.eq(Rt2,	  qt	   (Pt2, df = 1.01))
+All.eq(Runif,	  qunif	   (Punif, min = .2, max = 2))
+All.eq(Rweibull,  qweibull (Pweibull, shape = 3, scale = 2))
+All.eq(Rwilcox,	  qwilcox  (Pwilcox, m = 13, n = 17))
+
+## Same with "upper tail":
+All.eq(Rbeta,	  qbeta	   (1- Pbeta, shape1 = .8, shape2 = 2, lower=F))
+All.eq(Rbinom,	  qbinom   (1- Pbinom, size = 55, prob = pi/16, lower=F))
+All.eq(Rcauchy,	  qcauchy  (1- Pcauchy, location = 12, scale = 2, lower=F))
+All.eq(Rchisq,	  qchisq   (1- Pchisq, df = 3, lower=F))
+All.eq(Rexp,	  qexp	   (1- Pexp, rate = 2, lower=F))
+All.eq(Rf,	  qf	   (1- Pf, df1 = 12, df2 = 6, lower=F))
+All.eq(Rgamma,	  qgamma   (1- Pgamma, shape = 2, scale = 5, lower=F))
+All.eq(Rgeom,	  qgeom	   (1- Pgeom, prob = pi/16, lower=F))
+All.eq(Rhyper,	  qhyper   (1- Phyper, m = 40, n = 30, k = 20, lower=F))
+All.eq(Rlnorm,	  qlnorm   (1- Plnorm, meanlog = -1, sdlog = 3, lower=F))
+All.eq(Rlogis,	  qlogis   (1- Plogis, location = 12, scale = 2, lower=F))
+All.eq(Rnbinom,	  qnbinom  (1- Pnbinom, size = 7, prob = .01, lower=F))
+All.eq(Rnorm,	  qnorm	   (1- Pnorm, mean = -1, sd = 3,lower=F))
+All.eq(Rpois,	  qpois	   (1- Ppois, lambda = 12, lower=F))
+All.eq(Rsignrank, qsignrank(1- Psignrank, n = 47, lower=F))
+All.eq(Rt,	  qt	   (1- Pt,  df = 11,   lower=F))
+All.eq(Rt2,	  qt	   (1- Pt2, df = 1.01, lower=F))
+All.eq(Runif,	  qunif	   (1- Punif, min = .2, max = 2, lower=F))
+All.eq(Rweibull,  qweibull (1- Pweibull, shape = 3, scale = 2, lower=F))
+All.eq(Rwilcox,	  qwilcox  (1- Pwilcox, m = 13, n = 17, lower=F))
+
+## Check q*(p* ( log ), log) = identity
+All.eq(Rbeta,	  qbeta	   (log(Pbeta), shape1 = .8, shape2 = 2, log=TRUE))
+All.eq(Rbinom,	  qbinom   (log(Pbinom), size = 55, prob = pi/16, log=TRUE))
+All.eq(Rcauchy,	  qcauchy  (log(Pcauchy), location = 12, scale = 2, log=TRUE))
+All.eq(Rchisq,    qchisq   (log(Pchisq), df = 3, log=TRUE))
+All.eq(Rexp,	  qexp	   (log(Pexp), rate = 2, log=TRUE))
+All.eq(Rf,	  qf	   (log(Pf), df1= 12, df2= 6, log=TRUE))
+All.eq(Rgamma,	  qgamma   (log(Pgamma), shape = 2, scale = 5, log=TRUE))
+All.eq(Rgeom,	  qgeom	   (log(Pgeom), prob = pi/16, log=TRUE))
+All.eq(Rhyper,	  qhyper   (log(Phyper), m = 40, n = 30, k = 20, log=TRUE))
+All.eq(Rlnorm,	  qlnorm   (log(Plnorm), meanlog = -1, sdlog = 3, log=TRUE))
+All.eq(Rlogis,	  qlogis   (log(Plogis), location = 12, scale = 2, log=TRUE))
+All.eq(Rnbinom,	  qnbinom  (log(Pnbinom), size = 7, prob = .01, log=TRUE))
+All.eq(Rnorm,	  qnorm	   (log(Pnorm), mean = -1, sd = 3, log=TRUE))
+All.eq(Rpois,	  qpois	   (log(Ppois), lambda = 12, log=TRUE))
+All.eq(Rsignrank, qsignrank(log(Psignrank), n = 47, log=TRUE))
+All.eq(Rt,	  qt	   (log(Pt), df = 11, log=TRUE))
+All.eq(Rt2,	  qt	   (log(Pt2), df = 1.01, log=TRUE))
+All.eq(Runif,	  qunif	   (log(Punif), min = .2, max = 2, log=TRUE))
+All.eq(Rweibull,  qweibull (log(Pweibull), shape = 3, scale = 2, log=TRUE))
+All.eq(Rwilcox,	  qwilcox  (log(Pwilcox), m = 13, n = 17, log=TRUE))
+
+## same q*(p* (log) log) with upper tail:
+
+All.eq(Rbeta,	  qbeta	   (log1p(-Pbeta), shape1 = .8, shape2 = 2, lower=F, log=T))
+All.eq(Rbinom,	  qbinom   (log1p(-Pbinom), size = 55, prob = pi/16, lower=F, log=T))
+All.eq(Rcauchy,	  qcauchy  (log1p(-Pcauchy), location = 12, scale = 2, lower=F, log=T))
+All.eq(Rchisq,	  qchisq   (log1p(-Pchisq), df = 3, lower=F, log=T))
+All.eq(Rexp,	  qexp	   (log1p(-Pexp), rate = 2, lower=F, log=T))
+All.eq(Rf,	  qf	   (log1p(-Pf), df1 = 12, df2 = 6, lower=F, log=T))
+All.eq(Rgamma,	  qgamma   (log1p(-Pgamma), shape = 2, scale = 5, lower=F, log=T))
+All.eq(Rgeom,	  qgeom	   (log1p(-Pgeom), prob = pi/16, lower=F, log=T))
+All.eq(Rhyper,	  qhyper   (log1p(-Phyper), m = 40, n = 30, k = 20, lower=F, log=T))
+All.eq(Rlnorm,	  qlnorm   (log1p(-Plnorm), meanlog = -1, sdlog = 3, lower=F, log=T))
+All.eq(Rlogis,	  qlogis   (log1p(-Plogis), location = 12, scale = 2, lower=F, log=T))
+All.eq(Rnbinom,	  qnbinom  (log1p(-Pnbinom), size = 7, prob = .01, lower=F, log=T))
+All.eq(Rnorm,	  qnorm	   (log1p(-Pnorm), mean = -1, sd = 3, lower=F, log=T))
+All.eq(Rpois,	  qpois	   (log1p(-Ppois), lambda = 12, lower=F, log=T))
+All.eq(Rsignrank, qsignrank(log1p(-Psignrank), n = 47, lower=F, log=T))
+All.eq(Rt,	  qt	   (log1p(-Pt ), df = 11,   lower=F, log=T))
+All.eq(Rt2,	  qt	   (log1p(-Pt2), df = 1.01, lower=F, log=T))
+All.eq(Runif,	  qunif	   (log1p(-Punif), min = .2, max = 2, lower=F, log=T))
+All.eq(Rweibull,  qweibull (log1p(-Pweibull), shape = 3, scale = 2, lower=F, log=T))
+All.eq(Rwilcox,	  qwilcox  (log1p(-Pwilcox), m = 13, n = 17, lower=F, log=T))
+
+
+## Check log( upper.tail ):
+All.eq(log1p(-Pbeta),	  pbeta	   (Rbeta, shape1 = .8, shape2 = 2, lower=F, log=T))
+All.eq(log1p(-Pbinom),	  pbinom   (Rbinom, size = 55, prob = pi/16, lower=F, log=T))
+All.eq(log1p(-Pcauchy),	  pcauchy  (Rcauchy, location = 12, scale = 2, lower=F, log=T))
+All.eq(log1p(-Pchisq),	  pchisq   (Rchisq, df = 3, lower=F, log=T))
+All.eq(log1p(-Pexp),	  pexp	   (Rexp, rate = 2, lower=F, log=T))
+All.eq(log1p(-Pf),	  pf	   (Rf, df1 = 12, df2 = 6, lower=F, log=T))
+All.eq(log1p(-Pgamma),	  pgamma   (Rgamma, shape = 2, scale = 5, lower=F, log=T))
+All.eq(log1p(-Pgeom),	  pgeom	   (Rgeom, prob = pi/16, lower=F, log=T))
+All.eq(log1p(-Phyper),	  phyper   (Rhyper, m = 40, n = 30, k = 20, lower=F, log=T))
+All.eq(log1p(-Plnorm),	  plnorm   (Rlnorm, meanlog = -1, sdlog = 3, lower=F, log=T))
+All.eq(log1p(-Plogis),	  plogis   (Rlogis, location = 12, scale = 2, lower=F, log=T))
+All.eq(log1p(-Pnbinom),	  pnbinom  (Rnbinom, size = 7, prob = .01, lower=F, log=T))
+All.eq(log1p(-Pnorm),	  pnorm	   (Rnorm, mean = -1, sd = 3, lower=F, log=T))
+All.eq(log1p(-Ppois),	  ppois	   (Rpois, lambda = 12, lower=F, log=T))
+All.eq(log1p(-Psignrank), psignrank(Rsignrank, n = 47, lower=F, log=T))
+All.eq(log1p(-Pt),	  pt	   (Rt, df = 11,   lower=F, log=T))
+All.eq(log1p(-Pt2),	  pt	   (Rt2,df = 1.01, lower=F, log=T))
+All.eq(log1p(-Punif),	  punif	   (Runif, min = .2, max = 2, lower=F, log=T))
+All.eq(log1p(-Pweibull),  pweibull (Rweibull, shape = 3, scale = 2, lower=F, log=T))
+All.eq(log1p(-Pwilcox),	  pwilcox  (Rwilcox, m = 13, n = 17, lower=F, log=T))
+
+
+### (Extreme) tail tests added more recently:
+All.eq(1, -1e-17/ pexp(qexp(-1e-17, log=TRUE),log=TRUE))
+abs(pgamma(30,100, lower=FALSE, log=TRUE) + 7.3384686328784e-24) < 1e-36
+All.eq(1, pcauchy(-1e20)           /  3.18309886183791e-21)
+All.eq(1, pcauchy(+1e15, log=TRUE) / -3.18309886183791e-16)## PR#6756
+x <- 10^(ex <- c(1,2,5*(1:5),50,100,200,300,Inf))
+for(a in x[ex > 10]) ## improve pt() : cbind(x,t= pt(-x, df=1), C=pcauchy(-x))
+    stopifnot(all.equal(pt(-a, df=1), pcauchy(-a), tolerance = 1e-15))
+## for PR#7902:
+ex <- -c(rev(1/x), ex)
+All.eq(-x, qcauchy(pcauchy(-x)))
+All.eq(+x, qcauchy(pcauchy(+x, log=TRUE), log=TRUE))
+All.eq(1/x, pcauchy(qcauchy(1/x)))
+All.eq(ex,  pcauchy(qcauchy(ex, log=TRUE), log=TRUE))
+II <- c(-Inf,Inf)
+stopifnot(pcauchy(II) == 0:1, qcauchy(0:1) == II,
+          pcauchy(II, log=TRUE) == c(-Inf,0),
+          qcauchy(c(-Inf,0), log=TRUE) == II)
+## PR#15521 :
+p <- 1 - 1/4096
+stopifnot(all.equal(qcauchy(p), 1303.7970381453319163, tolerance = 1e-14))
+
+pr <- 1e-23 ## PR#6757
+stopifnot(all.equal(pr^ 12, pbinom(11, 12, prob= pr,lower=FALSE),
+                    tolerance = 1e-12, scale= 1e-270))
+## pbinom(.) gave 0 in R 1.9.0
+pp <- 1e-17 ## PR#6792
+stopifnot(all.equal(2*pp, pgeom(1, pp), scale= 1e-20))
+## pgeom(.) gave 0 in R 1.9.0
+
+x <- 10^(100:295)
+sapply(c(1e-250, 1e-25, 0.9, 1.1, 101, 1e10, 1e100),
+       function(shape)
+       All.eq(-x, pgamma(x, shape=shape, lower=FALSE, log=TRUE)))
+x <- 2^(-1022:-900)
+## where all completely off in R 2.0.1
+all.equal(pgamma(x, 10, log = TRUE) - 10*log(x),
+          rep(-15.104412573076, length(x)), tolerance = 1e-12)# 3.984e-14 (i386)
+all.equal(pgamma(x, 0.1, log = TRUE) - 0.1*log(x),
+          rep(0.0498724412598364, length(x)), tolerance = 1e-13)# 7e-16 (i386)
+
+All.eq(dpois(  10*1:2, 3e-308, log=TRUE),
+       c(-7096.08037610806, -14204.2875435307))
+All.eq(dpois(1e20, 1e-290, log=TRUE), -7.12801378828154e+22)
+## all gave -Inf in R 2.0.1
+
+
+## Inf df in pf etc.
+# apparently pf(df2=Inf) worked in 2.0.1 (undocumented) but df did not.
+x <- c(1/pi, 1, pi)
+oo <- options(digits = 8)
+df(x, 3, 1e6)
+df(x, 3, Inf)
+pf(x, 3, 1e6)
+pf(x, 3, Inf)
+
+df(x, 1e6, 5)
+df(x, Inf, 5)
+pf(x, 1e6, 5)
+pf(x, Inf, 5)
+
+df(x, Inf, Inf)# (0, Inf, 0)  - since 2.1.1
+pf(x, Inf, Inf)# (0, 1/2, 1)
+
+pf(x, 5, Inf, ncp=0)
+all.equal(pf(x, 5, 1e6, ncp=1), tolerance = 1e-6,
+          c(0.065933194, 0.470879987, 0.978875867))
+all.equal(pf(x, 5, 1e7, ncp=1), tolerance = 1e-6,
+          c(0.06593309, 0.47088028, 0.97887641))
+all.equal(pf(x, 5, 1e8, ncp=1), tolerance = 1e-6,
+          c(0.0659330751, 0.4708802996, 0.9788764591))
+pf(x, 5, Inf, ncp=1)
+
+dt(1, Inf)
+dt(1, Inf, ncp=0)
+dt(1, Inf, ncp=1)
+dt(1, 1e6, ncp=1)
+dt(1, 1e7, ncp=1)
+dt(1, 1e8, ncp=1)
+dt(1, 1e10, ncp=1) # = Inf
+## Inf valid as from 2.1.1: df(x, 1e16, 5) was way off in 2.0.1.
+
+sml.x <- c(10^-c(2:8,100), 0)
+cbind(x = sml.x, `dt(x,*)` = dt(sml.x, df = 2, ncp=1))
+## small 'x' used to suffer from cancellation
+options(oo)
+x <- c(outer(1:12, 10^c(-3:2, 6:9, 10*(2:30))))
+for(nu in c(.75, 1.2, 4.5, 999, 1e50)) {
+    lfx <- dt(x, df=nu, log=TRUE)
+    stopifnot(is.finite(lfx), All.eq(exp(lfx), dt(x, df=nu)))
+}## dt(1e160, 1.2, log=TRUE) was -Inf  up to R 2.15.2
+
+## pf() with large df1 or df2
+## (was said to be PR#7099, but that is about non-central pchisq)
+nu <- 2^seq(25, 34, 0.5)
+target <- pchisq(1, 1) # 0.682...
+y <- pf(1, 1, nu)
+stopifnot(All.eq(pf(1, 1, Inf), target),
+          diff(c(y, target)) > 0, # i.e. pf(1, 1, *) is monotone increasing
+          abs(y[1] - (target - 7.21129e-9)) < 1e-11) # computed value
+## non-monotone in R <= 2.1.0
+
+stopifnot(pgamma(Inf, 1.1) == 1)
+## didn't not terminate in R 2.1.x (only)
+
+## qgamma(q, *) should give {0,Inf} for q={0,1}
+sh <- c(1.1, 0.5, 0.2, 0.15, 1e-2, 1e-10)
+stopifnot(Inf == qgamma(1, sh))
+stopifnot(0   == qgamma(0, sh))
+## the first gave Inf, NaN, and 99.425 in R 2.1.1 and earlier
+
+## In extreme left tail {PR#11030}
+p <- 10:123*1e-12
+qg <- qgamma(p, shape=19)
+qg2<- qgamma(1:100 * 1e-9, shape=11)
+stopifnot(diff(qg, diff=2) < -6e-6,
+          diff(qg2,diff=2) < -6e-6,
+	  abs(1 - pgamma(qg, 19)/ p) < 1e-13,
+          All.eq(qg  [1], 2.35047385139143),
+          All.eq(qg2[30], 1.11512318734547))
+## was non-continuous in R 2.6.2 and earlier
+
+f2 <- c(0.5, 1:4)
+stopifnot(df(0, 1, f2) == Inf,
+          df(0, 2, f2) == 1,
+          df(0, 3, f2) == 0)
+## only the last one was ok in R 2.2.1 and earlier
+
+x0 <- -2 * 10^-c(22,10,7,5) # ==> d*() warns about non-integer:
+assertWarning(fx0 <- dbinom(x0, size = 3, prob = 0.1))
+stopifnot(fx0 == 0,  pbinom(x0, size = 3, prob = 0.1) == 0)
+
+## very small negatives were rounded to 0 in R 2.2.1 and earlier
+
+## dbeta(*, ncp):
+db.x <- c(0, 5, 80, 405, 1280, 3125, 6480, 12005, 20480, 32805,
+	  50000, 73205, 103680, 142805, 192080, 253125, 327680)
+a <- rlnorm(100)
+stopifnot(All.eq(a, dbeta(0, 1, a, ncp=0)),
+	  dbeta(0, 0.9, 2.2, ncp = c(0, a)) == Inf,
+	  All.eq(65536 * dbeta(0:16/16, 5,1), db.x),
+	  All.eq(exp(16 * log(2) + dbeta(0:16/16, 5,1, log=TRUE)), db.x)
+          )
+## the first gave 0, the 2nd NaN in R <= 2.3.0; others use 'TRUE' values
+stopifnot(all.equal(dbeta(0.8, 0.5, 5, ncp=1000),# was way too small in R <= 2.6.2
+		    3.001852308909e-35),
+	  all.equal(1, integrate(dbeta, 0,1, 0.8, 0.5, ncp=1000)$value,
+		    tolerance = 1e-4),
+          all.equal(1, integrate(dbeta, 0,1, 0.5, 200, ncp=720)$value),
+          all.equal(1, integrate(dbeta, 0,1, 125, 200, ncp=2000)$value)
+          )
+
+## df(*, ncp):
+x <- seq(0, 10, length=101)
+h <- 1e-7
+dx.h <- (pf(x+h, 7, 5, ncp= 2.5) - pf(x-h, 7, 5, ncp= 2.5)) / (2*h)
+stopifnot(all.equal(dx.h, df(x, 7, 5, ncp= 2.5), tolerance = 1e-6),# (1.50 | 1.65)e-8
+          All.eq(df(0, 2, 4, ncp=x), df(1e-300, 2, 4, ncp=x))
+          )
+
+## qt(p ~ 0, df=1) - PR#9804
+p <- 10^(-10:-20)
+qtp <- qt(p, df = 1)
+## relative error < 10^-14 :
+stopifnot(abs(1 - p / pt(qtp, df=1)) < 1e-14)
+
+## Similarly for df = 2 --- both for p ~ 0  *and*  p ~ 1/2
+## P ~ 0
+stopifnot(all.equal(qt(-740, df=2, log=TRUE), -exp(370)/sqrt(2)))
+## P ~ 1 (=> p ~ 0.5):
+p.5 <- 0.5 + 2^(-5*(5:8))
+stopifnot(all.equal(qt(p.5, df = 2),
+		    c(8.429369702179e-08, 2.634178031931e-09,
+		      8.231806349784e-11, 2.572439484308e-12)))
+## qt(<large>, log = TRUE)  is now more finite and monotone (again!):
+stopifnot(all.equal(qt(-1000, df = 4, log=TRUE),
+                    -4.930611e108, tolerance = 1e-6))
+qtp <- qt(-(20:850), df=1.2, log=TRUE, lower=FALSE)
+##almost: stopifnot(all(abs(5/6 - diff(log(qtp))) < 1e-11))
+stopifnot(abs(5/6 - quantile(diff(log(qtp)), pr=c(0,0.995))) < 1e-11)
+
+## close to df=1 (where Taylor steps are important!):
+stopifnot(all.equal(-20, pt(qt(-20, df=1.02, log=TRUE),
+                          df=1.02, log=TRUE), tolerance = 1e-12),
+          diff(lq <- log(qt(-2^-(10:600), df=1.1, log=TRUE))) > 0.6)
+lq1 <- log(qt(-2^-(20:600), df=1, log=TRUE))
+lq2 <- log(qt(-2^-(20:600), df=2, log=TRUE))
+stopifnot(mean(abs(diff(lq1) - log(2)      )) < 1e-8,
+	  mean(abs(diff(lq2) - log(sqrt(2)))) < 4e-8)
+## Case, where log.p=TRUE was fine, but log.p=FALSE (default) gave NaN:
+lp <- 40:406
+stopifnot(all.equal(lp, -pt(qt(exp(-lp), 1.2), 1.2, log=TRUE), tolerance = 4e-16))
+
+
+## pbeta(*, log=TRUE) {toms708} -- now improved tail behavior
+x <- c(.01, .10, .25, .40, .55, .71, .98)
+pbval <- c(-0.04605755624088, -0.3182809860569, -0.7503593555585,
+           -1.241555830932, -1.851527837938, -2.76044482378, -8.149862739881)
+stopifnot(all.equal(pbeta(x, 0.8, 2, lower=FALSE, log=TRUE), pbval),
+          all.equal(pbeta(1-x, 2, 0.8, log=TRUE), pbval))
+qq <- 2^(0:1022)
+df.set <- c(0.1, 0.2, 0.5, 1, 1.2, 2.2, 5, 10, 20, 50, 100, 500)
+for(nu in df.set) {
+    pqq <- pt(-qq, df = nu, log=TRUE)
+    stopifnot(is.finite(pqq))
+}
+## PR#14230 -- more extreme beta cases {should no longer rely on denormalized}
+x <- (256:512)/1024
+P <- pbeta(x, 3, 2200, lower.tail=FALSE, log.p=TRUE)
+stopifnot(is.finite(P), P < -600,
+	  -.001 < (D3P <- diff(P, diff = 3)), D3P < 0, diff(D3P) < 0)
+## all but the first 43 where -Inf in R <= 2.9.1
+stopifnot(All.eq(pt(2^-30, df=10),
+                 0.50000000036238542))
+## = .5+ integrate(dt, 0,2^-30, df=10, rel.tol=1e-20)
+
+## rbinom(*, size) gave NaN for large size up to R <= 2.6.1
+M <- .Machine$integer.max
+set.seed(7)
+tt <- table(rbinom(100,    M, pr = 1e-9)) # had values in {0,2} only
+t2 <- table(rbinom(100, 10*M, pr = 1e-10))
+stopifnot(names(tt) == 0:6, sum(tt) == 100, sum(t2) == 100) ## no NaN there
+
+## qf() with large df1, df2  and/or  small p:
+x <- 0.01; f1 <- 1e60; f2 <- 1e90
+stopifnot(qf(1/4, Inf, Inf) == 1,
+	  all.equal(1, 1e-18/ pf(qf(1e-18, 12,50), 12,50), tolerance = 1e-10),
+	  abs(x - qf(pf(x, f1,f2, log.p=TRUE), f1,f2, log.p=TRUE)) < 1e-4)
+
+## qbeta(*, log.p) for "border" case:
+stopifnot(is.finite(q0 <- qbeta(-1e10, 50,40, log.p=TRUE)),
+          1 ==            qbeta(-1e10,  2, 3, log.p=TRUE, lower=FALSE))
+## infinite loop or NaN in R <= 2.7.0
+
+## phyper(x, 0,0,0), notably for huge x
+stopifnot(all(phyper(c(0:3, 1e67), 0,0,0) == 1))
+## practically infinite loop and NaN in R <= 2.7.1 (PR#11813)
+
+## plnorm(<= 0, . , log.p=TRUE)
+stopifnot(plnorm(-1:0, lower.tail=FALSE, log.p=TRUE) == 0,
+	  plnorm(-1:0, lower.tail=TRUE,	 log.p=TRUE) == -Inf)
+## was wrongly == 'log.p=FALSE' up to R <= 2.7.1 (PR#11867)
+
+
+## pchisq(df=0) was wrong in 2.7.1; then, upto 2.10.1, P*(0,0) gave 1
+stopifnot(pchisq(c(-1,0,1), df=0) == c(0,0,1),
+          pchisq(c(-1,0,1), df=0, lower.tail=FALSE) == c(1,1,0),
+	  ## for ncp >= 80, gave values >= 1 in 2.10.0
+	  pchisq(500:700, 1.01, ncp = 80) <= 1)
+
+## dnbinom for extreme  size and/or mu :
+mu <- 20
+d <- dnbinom(17, mu=mu, size = 1e11*2^(1:10)) - dpois(17, lambda=mu)
+stopifnot(d < 0, diff(d) > 0, d[1] < 1e-10)
+## was wrong up to 2.7.1
+## The fix to the above, for x = 0, had a new cancellation problem
+mu <- 1e12 * 2^(0:20)
+stopifnot(all.equal(1/(1+mu), dnbinom(0, size = 1, mu = mu), tolerance = 1e-13))
+## was wrong in 2.7.2 (only)
+mu <- sort(outer(1:7, 10^c(0:10,50*(1:6))))
+NB <- dnbinom(5, size=1e305, mu=mu, log=TRUE)
+P  <- dpois  (5,                mu, log=TRUE)
+stopifnot(abs(rErr(NB,P)) < 9*Meps)# seen 2.5*
+## wrong in 3.1.0 and earlier
+
+
+## Non-central F for large x
+x <- 1e16 * 1.1 ^ (0:20)
+dP <- diff(pf(x, df1=1, df2=1, ncp=20, lower.tail=FALSE, log=TRUE))
+stopifnot(-0.047 < dP, dP < -0.0455)
+## pf(*, log) jumped to -Inf prematurely in 2.8.0 and earlier
+
+
+## Non-central Chi^2 density for large x
+stopifnot(0 == dchisq(c(Inf, 1e80, 1e50, 1e40), df=10, ncp=1))
+## did hang in 2.8.0 and earlier (PR#13309).
+
+
+## qbinom() .. particularly for large sizes, small prob:
+p.s <- c(.01, .001, .1, .25)
+pr <- (2:20)*1e-7
+sizes <- 1000*(5000 + c(0,6,16)) + 279
+k.s <- 0:15; q.xct <- rep(k.s, each=length(pr))
+for(sz in sizes) {
+    for(p in p.s) {
+	qb <- qbinom(p=p, size = sz, prob=pr)
+	pb <- qpois (p=p, lambda = sz * pr)
+	stopifnot(All.eq(qb, pb))
+    }
+    pp.x <- outer(pr, k.s, function(pr, q) pbinom(q, size = sz, prob=pr))
+    qq.x <- apply(pp.x, 2, function(p)     qbinom(p, size = sz, prob=pr))
+    stopifnot(qq.x == q.xct)
+}
+## do_search() in qbinom() contained a thinko up to 2.9.0 (PR#13711)
+
+
+## pbeta(x, a,b, log=TRUE)  for small x and a  is ~ log-linear
+x <- 2^-(200:10)
+for(a in c(1e-8, 1e-12, 16e-16, 4e-16))
+    for(b in c(0.6, 1, 2, 10)) {
+        dp <- diff(pbeta(x, a, b, log=TRUE)) # constant approximately
+        stopifnot(sd(dp) / mean(dp) < 0.0007)
+    }
+## had  accidental cancellation '1 - w'
+
+## qgamma(p, a) for small a and (hence) small p
+## pgamma(x, a) for very very small a
+a <- 2^-seq(10,1000, .25)
+q.1c <- qgamma(1e-100,a,lower.tail=FALSE)
+q.3c <- qgamma(1e-300,a,lower.tail=FALSE)
+p.1c <- pgamma(q.1c[q.1c > 0], a[q.1c > 0], lower.tail=FALSE)
+p.3c <- pgamma(q.3c[q.3c > 0], a[q.3c > 0], lower.tail=FALSE)
+x <- 1+1e-7*c(-1,1); pg <- pgamma(x, shape = 2^-64, lower.tail=FALSE)
+stopifnot(qgamma(.99, .00001) == 0,
+          abs(pg[2] - 1.18928249197237758088243e-20) < 1e-33,
+	  abs(diff(pg) + diff(x)*dgamma(1, 2^-64)) < 1e-13 * mean(pg),
+	  abs(1 - p.1c/1e-100) < 10e-13,# max = 2.243e-13 / 2.442 e-13
+	  abs(1 - p.3c/1e-300) < 28e-13)# max = 7.057e-13
+## qgamma() was wrong here, orders of magnitude up to R 2.10.0
+## pgamma() had inaccuracies, e.g.,
+## pgamma(x, shape = 2^-64, lower.tail=FALSE)  was discontinuous at x=1
+
+stopifnot(all(qpois((0:8)/8, lambda=0) == 0))
+## gave Inf as p==1 was checked *before* lambda==0
+
+## extreme tail of non-central chisquare
+stopifnot(all.equal(pchisq(200, 4, ncp=.001, log.p=TRUE), -3.851e-42))
+## jumped to zero too early up to R 2.10.1 (PR#14216)
+## left "extreme tail"
+lp <- pchisq(2^-(0:200), 100, 1, log=TRUE)
+stopifnot(is.finite(lp), lp < -184,
+	  all.equal(lp[201], -7115.10693158))
+dlp <- diff(lp)
+dd <- abs(dlp[-(1:30)] - -34.65735902799)
+stopifnot(-34.66 < dlp, dlp < -34.41, dd < 1e-8)# 2.2e-10 64bit Lnx
+## underflowed to -Inf much too early in R <= 3.1.0
+for(e in c(0, 2e-16))# continuity at 80 (= branch point)
+stopifnot(all.equal(pchisq(1:2, 1.01, ncp = 80*(1-e), log=TRUE),
+		    c(-34.57369629, -31.31514671)))
+
+## logit() == qlogit() on the right extreme:
+x <- c(10:80, 80 + 5*(1:24), 200 + 20*(1:25))
+stopifnot(All.eq(x, qlogis(plogis(x, log.p=TRUE),
+			   log.p=TRUE)))
+## qlogis() gave Inf much too early for R <= 2.12.1
+## Part 2:
+x <- c(x, seq(700, 800, by=10))
+stopifnot(All.eq(x, qlogis(plogis(x, lower=FALSE, log.p=TRUE),
+			   lower=FALSE, log.p=TRUE)))
+# plogis() underflowed to -Inf too early for R <= 2.15.0
+
+## log upper tail pbeta():
+x <- (25:50)/128
+pbx <- pbeta(x, 1/2, 2200, lower.tail=FALSE, log.p=TRUE)
+d2p <- diff(dp <- diff(pbx))
+b <- 2200*2^(0:50)
+y <- log(-pbeta(.28, 1/2, b, lower.tail=FALSE, log.p=TRUE))
+stopifnot(-1094 < pbx, pbx < -481.66,
+            -29 < dp,   dp < -20,
+           -.36 < d2p, d2p < -.2,
+          all.equal(log(b), y+1.113, tolerance = .00002)
+          )
+## pbx had two -Inf; y was all Inf  for R <= 2.15.3;  PR#15162
+
+## dnorm(x) for "large" |x|
+stopifnot(abs(1 - dnorm(35+3^-9)/ 3.933395747534971e-267) < 1e-15)
+## has been losing up to 8 bit precision for R <= 3.0.x
+
+## pbeta(x, <small a>,<small b>, .., log):
+ldp <- diff(log(diff(pbeta(0.5, 2^-(90+ 1:25), 2^-60, log.p=TRUE))))
+stopifnot(abs(ldp - log(1/2)) < 1e-9)
+## pbeta(*, log) lost all precision here, for R <= 3.0.x (PR#15641)
+##
+## "stair function" effect (from denormalized numbers)
+a <- 43779; b <- 0.06728
+x. <- .9833 + (0:100)*1e-6
+px <- pbeta(x., a,b, log=TRUE) # plot(x., px) # -> "stair"
+d2. <- diff(dpx <- diff(px))
+stopifnot(all.equal(px[1], -746.0986886924, tol=1e-12),
+          0.0445741 < dpx, dpx < 0.0445783,
+          -4.2e-8 < d2., d2. < -4.18e-8)
+## were way off in R <= 3.1.0
+
+c0 <- system.time(p0 <- pbeta(  .9999, 1e30, 1.001, log=TRUE))
+cB <- max(.001, c0[[1]])# base time
+c1 <- system.time(p1 <- pbeta(1- 1e-9, 1e30, 1.001, log=TRUE))
+c2 <- system.time(p2 <- pbeta(1-1e-12, 1e30, 1.001, log=TRUE))
+stopifnot(all.equal(p0, -1.000050003333e26, tol=1e-10),
+          all.equal(p1, -1e21, tol = 1e-6),
+          all.equal(p2, -9.9997788e17),
+          c(c1[[1]], c2[[1]]) < 1000*cB)
+## (almost?) infinite loop in R <= 3.1.0
+
+
+## pbinom(), dbinom(), dhyper(),.. : R allows "almost integer" n
+for (FUN in c(function(n) dbinom(1,n,0.5), function(n) pbinom(1,n,0.5),
+              function(n) dpois(n, n), function(n) dhyper(n+1, n+5,n+5, n)))
+    try( lapply(sample(10000, size=1000), function(M) {
+    ## invisible(lapply(sample(10000, size=1000), function(M) {
+        n <- (M/100)*10^(2:20); if(anyNA(P <- FUN(n)))
+            stop("NA for M=",M, "; 10ex=",paste((2:20)[is.na(P)], collapse=", "))}))
+## check was too tight for large n in R <= 3.1.0 (PR#15734)
+
+## [dpqr]beta(*, a,b) where a and/or b are Inf
+stopifnot(pbeta(.1, Inf, 40) == 0,
+          pbeta(.5, 40, Inf) == 1,
+          pbeta(.4, Inf,Inf) == 0,
+          pbeta(.5, Inf,Inf) == 1,
+          ## gave infinite loop (or NaN) in R <= 3.1.0
+          qbeta(.9, Inf, 100) == 1, # Inf.loop
+          qbeta(.1, Inf, Inf) == 1/2)# NaN + Warning
+## range check (in "close" cases):
+assertWarning(qN <- qbeta(2^-(10^(1:3)), 2,3, log.p=TRUE))
+assertWarning(qn <- qbeta(c(-.1, -1e-300, 1.25), 2,3))
+stopifnot(is.nan(qN), is.nan(qn))
+
+## lognormal boundary case sdlog = 0:
+p <- (0:8)/8; x <- 2^(-10:10)
+stopifnot(all.equal(qlnorm(p, meanlog=1:2, sdlog=0),
+		    qlnorm(p, meanlog=1:2, sdlog=1e-200)),
+	  dlnorm(x, sdlog=0) == ifelse(x == 1, Inf, 0))
+
+## qbeta(*, a,b) when  a,b << 1 : can easily fail
+qbeta(2^-28, 0.125, 2^-26) # 1000 Newton it + warning
+a <- 1/8; b <- 2^-(4:200); alpha <- b/4
+qq <- qbeta(alpha, a,b)# gave warnings intermediately
+pp <- pbeta(qq, a,b)
+stopifnot(pp > 0, diff(pp) < 0, ## pbeta(qbeta(alpha,*),*) == alpha:
+          abs(1 - pp/alpha) < 4e-15)# seeing 2.2e-16
+
+## orig. qbeta() using *many* Newton steps; case where we "know the truth"
+a <- 25; b <- 6; x <- 2^-c(3:15, 100, 200, 250, 300+100*(0:7))
+pb <- c(## via Rmpfr's roundMpfr(pbetaI(x, a,b, log.p=TRUE, precBits = 2048), 64) :
+    -40.7588797271766572448, -57.7574063441183625303, -74.9287878018119846216,
+    -92.1806244636893542185, -109.471318248524419364, -126.781111923947395655,
+    -144.100375042814531426, -161.424352961544612370, -178.750683324909148353,
+    -196.078188674895169383, -213.406281209657976525, -230.734667259724367416,
+    -248.063200048177428608, -1721.00081201679567511, -3453.86876341665894863,
+    -4320.30273911659058550, -5186.73671481652222237, -6919.60466621638549567,
+    -8652.47261761624876897, -10385.3405690161120427, -12118.2085204159753165,
+    -13851.0764718158385902, -15583.9444232157018631, -17316.8123746155651368)
+stopifnot(all.equal(pb, pbeta(x,a,b, log.p=TRUE), tol=8e-16))# seeing {1.5|1.6|2.0}e-16
+qp <- qbeta(pb, a,b, log.p=TRUE)
+## x == qbeta(pbeta(x, *), *) :
+stopifnot(qp > 0, all.equal(x, qp, tol= 1e-15))# seeing {2.4|3.3}e-16
+
+## qbeta(), PR#15755
+a1 <- 0.0672788; b1 <- 226390
+p <- 0.6948886
+qp <- qbeta(p, a1,b1)
+stopifnot(qp < 2e-8, # was '1' (with a warning) in R <= 3.1.0
+          All.eq(p, pbeta(qp, a1,b1)))
+## less extreme example, same phenomenon:
+a <- 43779; b <- 0.06728
+stopifnot(All.eq(0.695, pbeta(qbeta(0.695, b,a), b,a)))
+x <- -exp(seq(0, 14, by=2^-9))
+ct <- system.time(qx <- qbeta(x, a,b, log.p=TRUE))[[1]]
+pqx <- pbeta(qx, a,b, log=TRUE)
+stopifnot(all.equal(x, pqx, tol= 2e-15)) # seeing {3.51|3.54}e-16
+## note that qx[x > -exp(2)] is too close to 1 to get full accuracy:
+## i2 <- x > -exp(2); all.equal(x[i2], pqx[i2], tol= 0)#-> 5.849e-12
+if(ct > 0.5) { cat("system.time:\n"); print(ct) }# lynne(2013): 0.048
+## was Inf, and much slower, for R <= 3.1.0
+x3 <- -(15450:15700)/2^11
+pq3 <- pbeta(qbeta(x3, a,b, log.p=TRUE), a,b, log=TRUE)
+stopifnot(mean(abs(pq3-x3)) < 4e-12,# 1.46e-12
+          max (abs(pq3-x3)) < 8e-12)# 2.95e-12
+##
+.a <- .2; .b <- .03; lp <- -(10^-(1:323))
+qq <- qbeta(lp, .a,.b, log=TRUE) # warnings in R <= 3.1.0
+assertWarning(qN <- qbeta(.5, 2,3, log.p=TRUE))
+assertWarning(qn <- qbeta(c(-.1, 1.25), 2,3))
+stopifnot(1-qq < 1e-15, is.nan(qN), is.nan(qn))# typically qq == 1  exactly
+## failed in intermediate versions
+##
+a <- 2^-8; b <- 2^(200:500)
+pq <- pbeta(qbeta(1/8, a, b), a, b)
+stopifnot(abs(pq - 1/8) < 1/8)
+## whereas  qbeta() would underflow to 0 "too early", for R <= 3.1.0
+#
+## very extreme tails on both sides
+x <- c(1e-300, 1e-12, 1e-5, 0.1, 0.21, 0.3)
+stopifnot(0 == qbeta(x, 2^-12, 2^-10))## gave warnings
+a <- 10^-(8:323)
+qb <- qbeta(0.95, a, 20)
+## had warnings and wrong value +1; also NaN
+ct2 <- system.time(q2 <- qbeta(0.95, a,a))[1]
+stopifnot(is.finite(qb), qb < 1e-300, q2 == 1)
+if(ct2 > 0.020) { cat("system.time:\n"); print(ct2) }
+## had warnings and was much slower for R <= 3.1.0
+
+## qt(p, df= Inf, ncp)  <==> qnorm(p, m=ncp)
+p <- (0:32)/32
+stopifnot(all.equal(qt(p, df=Inf, ncp=5), qnorm(p, m=5)))
+## qt(*, df=Inf, .)  gave NaN in  R <= 3.2.1
+
+## rhyper(*, <large>);  PR#16489
+ct3 <- system.time(N <- rhyper(100, 8000, 1e9-8000, 1e6))[1]
+table(N)
+summary(N)
+stopifnot(abs(mean(N) - 8) < 1.5)
+if(ct3 > 0.02) { cat("system.time:\n"); print(ct3) }
+## N were all 0 and took very long for R <= 3.2.1
+set.seed(17)
+stopifnot(rhyper(1, 3024, 27466, 251) == 25,
+          rhyper(1,  329,  3059, 225) == 22)
+## failed for a day after a "thinko" in the above bug fix.
+
+## *chisq(*, df=0, ncp=0) == Point mass at 0
+stopifnot(rchisq(32,        df=0, ncp=0) == 0,
+          dchisq((0:16)/16, df=0, ncp=0) == c(Inf, rep(0, 16)))
+## gave all NaN's  for R <= 3.2.2
+
+## pchisq(*, df=0, ncp > 0, log.p=TRUE) :
+th <- 10*c(1:9,10^c(1:3,7))
+pp <- pchisq(0, df = 0, ncp=th, log.p=TRUE)
+stopifnot(all.equal(pp, -th/2, tol=1e-15))
+## underflowed at about th ~= 60  in R <= 3.2.2
+
+## pnbinom (-> C's bratio())
+op <- options(warn = 1)# -- NaN's giving warnings
+L <- 1e308; p <- suppressWarnings(pnbinom(L, L, mu = 5)) # NaN or 1 (for 64 / 32 bit)
+is.nan(p) || p == 1
+## gave infinite loop on some 64b platforms in R <= 3.2.3
+
+## [dpqr]nbinom(*, mu, size=Inf) -- PR#16727
+L <- 1e308; mu <- 5; pp <- (0:16)/16
+x <- c(0:3, 1e10, 1e100, L, Inf)
+(d <- dnbinom(x,  mu = mu, size = Inf)) # gave NaN (for 0 and L)
+(p <- pnbinom(x,  mu = mu, size = Inf)) # gave all NaN
+(q <- qnbinom(pp, mu = mu, size = Inf)) # gave all NaN
+set.seed(1); NI <- rnbinom(32, mu = mu, size = Inf)# gave all NaN
+set.seed(1); N2 <- rnbinom(32, mu = mu, size = L  )
+stopifnot(all.equal(d, dpois(x, mu)),
+	  all.equal(p, ppois(x, mu)),
+	  q == qpois(pp, mu),
+	  identical(NI, N2))
+options(op)
+## size = Inf -- mostly gave NaN  in R <= 3.2.3
+
+
+
+cat("Time elapsed: ", proc.time() - .ptime,"\n")
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/nanbug.rda
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/nanbug.rda
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/print-tests.Rout.save
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/print-tests.Rout.save	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/print-tests.Rout.save	(revision 2476)
@@ -0,0 +1,575 @@
+
+R version 3.3.2 RC (2016-10-26 r71594) -- "Sincere Pumpkin Patch"
+Copyright (C) 2016 The R Foundation for Statistical Computing
+Platform: x86_64-pc-linux-gnu (64-bit)
+
+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.
+
+> #### Testing print(), format()	and the like --- mainly with numeric()
+> ####
+> #### to be run as
+> ####
+> ####	R < print-tests.R  >&  print-tests.out-__version__
+> ####			   == (csh)
+> opt.conformance <- 0
+> 
+> DIG <- function(d)
++     if(missing(d)) getOption("digits") else options(digits=as.integer(d))
+> 
+> DIG(7)#-- the default; just to make sure ...
+> options(width = 200)
+> 
+> n1 <- 2^(4*1:7)
+> i1 <- as.integer(n1)
+> 
+> v1 <- 2^c(-12, 2*(-4:-2),3,6,9)
+> v2 <- v1^(63/64)
+> ## avoid ending in `5' as printing then depends on rounding of
+> ## the run-time (and not all round to even).
+> v1[1:4] <-c(2.44140624e-04, 3.90624e-03, 1.5624e-02, 6.24e-02)
+> 
+> 
+> v3 <- pi*100^(-1:3)
+> v4 <- (0:2)/1000 + 1e-10 #-- tougher one
+> 
+> digs1 <- c(1,2*(1:5),11:15)		# 16: platform dependent
+> 					# 30 gives ERROR : options(digits=30)
+> digs2 <- c(1:20)#,30) gives 'error' in R: ``print.default(): invalid digits..''
+> 
+> all(i1 == n1)# TRUE
+[1] TRUE
+> i1# prints nicely
+[1]        16       256      4096     65536   1048576  16777216 268435456
+> n1# did not; does now (same as 'i1')
+[1]        16       256      4096     65536   1048576  16777216 268435456
+> 
+> round (v3, 3)#S+ & R 0.49:
+[1]       0.031       3.142     314.159   31415.927 3141592.654
+> ##[1]	0.031	    3.142     314.159	 31415.927 3141592.654
+> signif(v3, 3)
+[1] 3.14e-02 3.14e+00 3.14e+02 3.14e+04 3.14e+06
+> ##R.49: [1] 0.0314	3.1400	   314.0000   31400.0000 3140000.0000
+> ##S+	[1] 3.14e-02 3.14e+00 3.14e+02 3.14e+04 3.14e+06
+> 
+> ###----------------------------------------------------------------
+> ##- Date: Tue, 20 May 97 17:11:18 +0200
+> 
+> ##- From: Martin Maechler <maechler@stat.math.ethz.ch>
+> ##- To: R-devel@stat.math.ethz.ch
+> ##- Subject: R-alpha: print 'problems': print(2^30, digits=12); comments at start of function()
+> ##-
+> ##- Both of these bugs are not a real harm,
+> ##- however, they have been annoying me for too long ... ;-)
+> ##-
+> ##- 1)
+> print  (2^30, digits = 12) #-  WAS exponential form, unnecessarily -- now ok
+[1] 1073741824
+> formatC(2^30, digits = 12) #- shows you what you'd want above
+[1] "   1073741824"
+> 
+> ## S and R are now the same here;  note that the problem also affects
+> ##	paste(.)  & format(.) :
+> 
+> DIG(10); paste(n1); DIG(7)
+[1] "16"        "256"       "4096"      "65536"     "1048576"   "16777216"  "268435456"
+> 
+> 
+> ## Assignment to .Options$digits: Does NOT work for  print() nor cat()
+> for(i in digs1) { .Options$digits <- i; cat(i,":"); print (v1[-1]) }
+1 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+2 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+4 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+6 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+8 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+10 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+11 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+12 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+13 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+14 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+15 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+> 
+> ## using options()  *does* things
+> for(i in digs1) { DIG(i); cat(i,":"); print (v3) }
+1 :[1] 3e-02 3e+00 3e+02 3e+04 3e+06
+2 :[1] 3.1e-02 3.1e+00 3.1e+02 3.1e+04 3.1e+06
+4 :[1] 3.142e-02 3.142e+00 3.142e+02 3.142e+04 3.142e+06
+6 :[1] 3.14159e-02 3.14159e+00 3.14159e+02 3.14159e+04 3.14159e+06
+8 :[1] 3.1415927e-02 3.1415927e+00 3.1415927e+02 3.1415927e+04 3.1415927e+06
+10 :[1] 3.141592654e-02 3.141592654e+00 3.141592654e+02 3.141592654e+04 3.141592654e+06
+11 :[1] 3.1415926536e-02 3.1415926536e+00 3.1415926536e+02 3.1415926536e+04 3.1415926536e+06
+12 :[1] 3.14159265359e-02 3.14159265359e+00 3.14159265359e+02 3.14159265359e+04 3.14159265359e+06
+13 :[1] 3.14159265359e-02 3.14159265359e+00 3.14159265359e+02 3.14159265359e+04 3.14159265359e+06
+14 :[1] 3.1415926535898e-02 3.1415926535898e+00 3.1415926535898e+02 3.1415926535898e+04 3.1415926535898e+06
+15 :[1] 3.14159265358979e-02 3.14159265358979e+00 3.14159265358979e+02 3.14159265358979e+04 3.14159265358979e+06
+> for(i in digs1) { DIG(i); cat(i,":", formatC(v3, digits=i, width=8),"\n") }
+1 :     0.03        3    3e+02    3e+04    3e+06 
+2 :    0.031      3.1  3.1e+02  3.1e+04  3.1e+06 
+4 :  0.03142    3.142    314.2 3.142e+04 3.142e+06 
+6 : 0.0314159  3.14159  314.159  31415.9 3.14159e+06 
+8 : 0.031415927 3.1415927 314.15927 31415.927 3141592.7 
+10 : 0.03141592654 3.141592654 314.1592654 31415.92654 3141592.654 
+11 : 0.031415926536 3.1415926536 314.15926536 31415.926536 3141592.6536 
+12 : 0.0314159265359 3.14159265359 314.159265359 31415.9265359 3141592.65359 
+13 : 0.0314159265359 3.14159265359 314.159265359 31415.9265359 3141592.65359 
+14 : 0.031415926535898 3.1415926535898 314.15926535898 31415.926535898 3141592.6535898 
+15 : 0.0314159265358979 3.14159265358979 314.159265358979 31415.9265358979 3141592.65358979 
+> 
+> 
+> ## R-0.50: switches to NON-exp at 14, but should only at 15...
+> ## R-0.61++: doesn' switch at all (or at 20 only)
+> ## S-plus: does not switch at all..
+> for(i in digs1) { cat(i,":");  print(v1, digits=i) }
+1 :[1] 2e-04 4e-03 2e-02 6e-02 8e+00 6e+01 5e+02
+2 :[1] 2.4e-04 3.9e-03 1.6e-02 6.2e-02 8.0e+00 6.4e+01 5.1e+02
+4 :[1] 2.441e-04 3.906e-03 1.562e-02 6.240e-02 8.000e+00 6.400e+01 5.120e+02
+6 :[1] 2.44141e-04 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+8 :[1] 2.4414062e-04 3.9062400e-03 1.5624000e-02 6.2400000e-02 8.0000000e+00 6.4000000e+01 5.1200000e+02
+10 :[1] 2.44140624e-04 3.90624000e-03 1.56240000e-02 6.24000000e-02 8.00000000e+00 6.40000000e+01 5.12000000e+02
+11 :[1] 2.44140624e-04 3.90624000e-03 1.56240000e-02 6.24000000e-02 8.00000000e+00 6.40000000e+01 5.12000000e+02
+12 :[1] 2.44140624e-04 3.90624000e-03 1.56240000e-02 6.24000000e-02 8.00000000e+00 6.40000000e+01 5.12000000e+02
+13 :[1] 2.44140624e-04 3.90624000e-03 1.56240000e-02 6.24000000e-02 8.00000000e+00 6.40000000e+01 5.12000000e+02
+14 :[1] 2.44140624e-04 3.90624000e-03 1.56240000e-02 6.24000000e-02 8.00000000e+00 6.40000000e+01 5.12000000e+02
+15 :[1] 2.44140624e-04 3.90624000e-03 1.56240000e-02 6.24000000e-02 8.00000000e+00 6.40000000e+01 5.12000000e+02
+> 
+> ## R 0.50-a1: switches at 10 inst. 11
+> for(i in digs1) { cat(i,":");  print(v1[-1], digits=i) }
+1 :[1] 4e-03 2e-02 6e-02 8e+00 6e+01 5e+02
+2 :[1] 3.9e-03 1.6e-02 6.2e-02 8.0e+00 6.4e+01 5.1e+02
+4 :[1] 3.906e-03 1.562e-02 6.240e-02 8.000e+00 6.400e+01 5.120e+02
+6 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+8 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+10 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+11 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+12 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+13 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+14 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+15 :[1] 3.90624e-03 1.56240e-02 6.24000e-02 8.00000e+00 6.40000e+01 5.12000e+02
+> 
+> for(i in digs1) { DIG(i); cat(i,":", formatC(v2, digits=i, width=8),"\n") }
+1 :   0.0003    0.004     0.02     0.07        8    6e+01    5e+02 
+2 :  0.00028   0.0043    0.017    0.065      7.7       60  4.6e+02 
+4 : 0.000278  0.00426  0.01667  0.06527    7.744    59.97    464.4 
+6 : 0.000278025 0.0042598 0.0166741 0.0652671  7.74425  59.9734  464.449 
+8 : 0.00027802457 0.0042597958 0.016674069 0.065267111 7.7442472 59.973364 464.44856 
+10 : 0.000278024569 0.004259795831 0.01667406876 0.0652671114 7.744247174 59.97336429 464.4485569 
+11 : 0.00027802456903 0.0042597958307 0.016674068761 0.065267111402 7.744247174 59.973364292 464.44855693 
+12 : 0.000278024569032 0.00425979583072 0.0166740687606 0.0652671114017 7.74424717397 59.9733642915 464.448556928 
+13 : 0.0002780245690324 0.004259795830724 0.01667406876058 0.06526711140171 7.744247173969 59.97336429153 464.4485569281 
+14 : 0.0002780245690324 0.0042597958307237 0.016674068760575 0.065267111401713 7.7442471739692 59.97336429153 464.4485569281 
+15 : 0.000278024569032395 0.00425979583072366 0.0166740687605754 0.0652671114017134 7.74424717396918 59.9733642915296 464.448556928102 
+> 
+> for(i in digs1) { cat(i,":");  print(v2, digits=i) } #-- exponential all thru
+1 :[1] 3e-04 4e-03 2e-02 7e-02 8e+00 6e+01 5e+02
+2 :[1] 2.8e-04 4.3e-03 1.7e-02 6.5e-02 7.7e+00 6.0e+01 4.6e+02
+4 :[1] 2.780e-04 4.260e-03 1.667e-02 6.527e-02 7.744e+00 5.997e+01 4.644e+02
+6 :[1] 2.78025e-04 4.25980e-03 1.66741e-02 6.52671e-02 7.74425e+00 5.99734e+01 4.64449e+02
+8 :[1] 2.7802457e-04 4.2597958e-03 1.6674069e-02 6.5267111e-02 7.7442472e+00 5.9973364e+01 4.6444856e+02
+10 :[1] 2.780245690e-04 4.259795831e-03 1.667406876e-02 6.526711140e-02 7.744247174e+00 5.997336429e+01 4.644485569e+02
+11 :[1] 2.7802456903e-04 4.2597958307e-03 1.6674068761e-02 6.5267111402e-02 7.7442471740e+00 5.9973364292e+01 4.6444855693e+02
+12 :[1] 2.78024569032e-04 4.25979583072e-03 1.66740687606e-02 6.52671114017e-02 7.74424717397e+00 5.99733642915e+01 4.64448556928e+02
+13 :[1] 2.780245690324e-04 4.259795830724e-03 1.667406876058e-02 6.526711140171e-02 7.744247173969e+00 5.997336429153e+01 4.644485569281e+02
+14 :[1] 2.7802456903240e-04 4.2597958307237e-03 1.6674068760575e-02 6.5267111401713e-02 7.7442471739692e+00 5.9973364291530e+01 4.6444855692810e+02
+15 :[1] 2.78024569032395e-04 4.25979583072366e-03 1.66740687605754e-02 6.52671114017134e-02 7.74424717396918e+00 5.99733642915296e+01 4.64448556928102e+02
+> ##	 ^^^^^ digs2 (>= 18: PLATFORM dependent !!
+> for(i in digs1) { cat(i,":", formatC(v2, digits=i, width=8),"\n") }
+1 :   0.0003    0.004     0.02     0.07        8    6e+01    5e+02 
+2 :  0.00028   0.0043    0.017    0.065      7.7       60  4.6e+02 
+4 : 0.000278  0.00426  0.01667  0.06527    7.744    59.97    464.4 
+6 : 0.000278025 0.0042598 0.0166741 0.0652671  7.74425  59.9734  464.449 
+8 : 0.00027802457 0.0042597958 0.016674069 0.065267111 7.7442472 59.973364 464.44856 
+10 : 0.000278024569 0.004259795831 0.01667406876 0.0652671114 7.744247174 59.97336429 464.4485569 
+11 : 0.00027802456903 0.0042597958307 0.016674068761 0.065267111402 7.744247174 59.973364292 464.44855693 
+12 : 0.000278024569032 0.00425979583072 0.0166740687606 0.0652671114017 7.74424717397 59.9733642915 464.448556928 
+13 : 0.0002780245690324 0.004259795830724 0.01667406876058 0.06526711140171 7.744247173969 59.97336429153 464.4485569281 
+14 : 0.0002780245690324 0.0042597958307237 0.016674068760575 0.065267111401713 7.7442471739692 59.97336429153 464.4485569281 
+15 : 0.000278024569032395 0.00425979583072366 0.0166740687605754 0.0652671114017134 7.74424717396918 59.9733642915296 464.448556928102 
+> 
+> DIG(7)#-- the default; just to make sure ...
+> 
+> N1 <- 10; N2 <- 7; n <- 8
+> x <- 0:N1
+> Mhyp <- rbind(phyper(x, N1, N2, n), dhyper(x, N1, N2, n))
+> Mhyp
+     [,1]         [,2]       [,3]     [,4]      [,5]      [,6]      [,7]       [,8]       [,9] [,10] [,11]
+[1,]    0 0.0004113534 0.01336898 0.117030 0.4193747 0.7821884 0.9635952 0.99814891 1.00000000     1     1
+[2,]    0 0.0004113534 0.01295763 0.103661 0.3023447 0.3628137 0.1814068 0.03455368 0.00185109     0     0
+> ##-	 [,1]	      [,2]	 [,3]	  [,4]	    [,5]      [,6]	[,7]
+> ##- [1,]    0 0.0004113534 0.01336898 0.117030 0.4193747 0.7821884 0.9635952
+> ##- [2,]    0 0.0004113534 0.01295763 0.103661 0.3023447 0.3628137 0.1814068
+> ##-	       [,8]	  [,9] [,10] [,11]
+> ##- [1,] 0.99814891 1.00000000	   1	 1
+> ##- [2,] 0.03455368 0.00185109	   0	 0
+> 
+> m11 <- c(-1,1)
+> Mm <- pi*outer(m11, 10^(-5:5))
+> Mm <- cbind(Mm, outer(m11, 10^-(5:1)))
+> Mm
+              [,1]          [,2]         [,3]        [,4]       [,5]      [,6]      [,7]      [,8]      [,9]     [,10]     [,11]  [,12]  [,13]  [,14] [,15] [,16]
+[1,] -3.141593e-05 -0.0003141593 -0.003141593 -0.03141593 -0.3141593 -3.141593 -31.41593 -314.1593 -3141.593 -31415.93 -314159.3 -1e-05 -1e-04 -0.001 -0.01  -0.1
+[2,]  3.141593e-05  0.0003141593  0.003141593  0.03141593  0.3141593  3.141593  31.41593  314.1593  3141.593  31415.93  314159.3  1e-05  1e-04  0.001  0.01   0.1
+> do.p <- TRUE
+> do.p <- FALSE
+> for(di in 1:10) {
++     options(digits=di)
++     cat(if(do.p)"\n",formatC(di,w=2),":", format.info(Mm),"\n")
++     if(do.p)print(Mm)
++ }
+  1 : 6 0 1 
+  2 : 8 1 1 
+  3 : 9 2 1 
+  4 : 10 3 1 
+  5 : 11 4 1 
+  6 : 12 5 1 
+  7 : 13 6 1 
+  8 : 14 7 1 
+  9 : 15 8 1 
+ 10 : 16 9 1 
+> ##-- R-0.49 (4/1997)	 R-0.50-a1 (7.7.97)
+> ##-  1 : 13 5 0		 1 :  6 0 1
+> ##-  2 :  8 1 1	=	 2 :  8 1 1
+> ##-  3 :  9 2 1	=	 3 :  9 2 1
+> ##-  4 : 10 3 1	=	 4 : 10 3 1
+> ##-  5 : 11 4 1	=	 5 : 11 4 1
+> ##-  6 : 12 5 1	=	 6 : 12 5 1
+> ##-  7 : 13 6 1	=	 7 : 13 6 1
+> ##-  8 : 14 7 1	=	 8 : 14 7 1
+> ##-  9 : 15 8 1	=	 9 : 15 8 1
+> ##- 10 : 16 9 1	=	10 : 16 9 1
+> nonFin <- list(c(Inf,-Inf), c(NaN,NA), NA_real_, Inf)
+> mm <- sapply(nonFin, format.info)
+> fm <- lapply(nonFin, format)
+> w <- c(4,3,2,3)
+> stopifnot(sapply(lapply(fm, nchar), max) == w,
++ 	  mm == rbind(w, 0, 0))# m[2,] was 2147483647; m[3,] was 1
+> cnF <- c(lapply(nonFin, function(x) complex(re=x, im=x))[-3],
++          complex(re=NaN, im=-Inf))
+> cmm <- sapply(cnF, format.info)
+> cfm <- lapply(cnF, format)
+> cw <- sapply(lapply(cfm, nchar), max)
+> stopifnot(cw == cmm[1,]+1 +cmm[4,]+1,
++ 	  nchar(format(c(NA, 1 + 2i))) == 4)# wrongly was (5,4)
+> 
+> 
+> ##-- Ok now, everywhere
+> for(d in 1:9) {cat(d,":"); print(v4, digits=d) }
+1 :[1] 1e-10 1e-03 2e-03
+2 :[1] 1e-10 1e-03 2e-03
+3 :[1] 1e-10 1e-03 2e-03
+4 :[1] 1e-10 1e-03 2e-03
+5 :[1] 1e-10 1e-03 2e-03
+6 :[1] 1e-10 1e-03 2e-03
+7 :[1] 1e-10 1e-03 2e-03
+8 :[1] 0.0000000001 0.0010000001 0.0020000001
+9 :[1] 0.0000000001 0.0010000001 0.0020000001
+> DIG(7)
+> 
+> 
+> ###------------ Very big and very small
+> umach <- unlist(.Machine)[paste("double.x", c("min","max"), sep='')]
+> xmin <- umach[1]
+> xmax <- umach[2]
+> tx <- unique(c(outer(-1:1,c(.1,1e-3,1e-7))))# 7 values  (out of 9)
+> tx <- unique(sort(c(outer(umach,1+tx))))# 11 values (+ 1 Inf)
+> length(tx <- tx[is.finite(tx)]) # 11
+[1] 11
+> (txp <- tx[tx >= 1])#-- Positive exponent -- 4 values
+[1] 1.617924e+308 1.795895e+308 1.797693e+308 1.797693e+308
+> (txn <- tx[tx <	 1])#-- Negative exponent -- 7 values
+[1] 2.002566e-308 2.222849e-308 2.225074e-308 2.225074e-308 2.225074e-308 2.227299e-308 2.447581e-308
+> 
+> x2 <- c(0.099999994, 0.2)
+> x2 # digits=7: show all seven "9"s
+[1] 0.09999999 0.20000000
+> print(x2, digits=6) # 0.1 0.2 , not 0.10 0.20
+[1] 0.1 0.2
+> v <- 6:8; names(v) <- v; sapply(v, format.info, x=x2)
+     6  7  8
+[1,] 3 10 11
+[2,] 1  8  9
+[3,] 0  0  0
+> 
+> (z <- sort(c(outer(range(txn), 8^c(0,2:3)))))
+[1] 2.002566e-308 2.447581e-308 1.281643e-306 1.566452e-306 1.025314e-305 1.253162e-305
+> outer(z, 0:6, signif) # had NaN's till 1.1.1
+       [,1]   [,2]     [,3]      [,4]       [,5]        [,6]         [,7]
+[1,] 2e-308 2e-308 2.0e-308 2.00e-308 2.003e-308 2.0026e-308 2.00257e-308
+[2,] 2e-308 2e-308 2.4e-308 2.45e-308 2.448e-308 2.4476e-308 2.44758e-308
+[3,] 1e-306 1e-306 1.3e-306 1.28e-306 1.282e-306 1.2816e-306 1.28164e-306
+[4,] 2e-306 2e-306 1.6e-306 1.57e-306 1.566e-306 1.5665e-306 1.56645e-306
+[5,] 1e-305 1e-305 1.0e-305 1.03e-305 1.025e-305 1.0253e-305 1.02531e-305
+[6,] 1e-305 1e-305 1.3e-305 1.25e-305 1.253e-305 1.2532e-305 1.25316e-305
+> 
+> olddig <- options(digits=14) # RH6.0 fails at 15
+> z <- 1.234567891234567e27
+> for(dig in 1:14) cat(formatC(dig,w=2),
++                      format(z, digits=dig), signif(z, digits=dig), "\n")
+ 1 1e+27 1e+27 
+ 2 1.2e+27 1.2e+27 
+ 3 1.23e+27 1.23e+27 
+ 4 1.235e+27 1.235e+27 
+ 5 1.2346e+27 1.2346e+27 
+ 6 1.23457e+27 1.23457e+27 
+ 7 1.234568e+27 1.234568e+27 
+ 8 1.2345679e+27 1.2345679e+27 
+ 9 1.23456789e+27 1.23456789e+27 
+10 1.234567891e+27 1.234567891e+27 
+11 1.2345678912e+27 1.2345678912e+27 
+12 1.23456789123e+27 1.23456789123e+27 
+13 1.234567891235e+27 1.234567891235e+27 
+14 1.2345678912346e+27 1.2345678912346e+27 
+> options(olddig)
+> # The following are tests of printf inside formatC
+> ##------ Use  Emacs screen width 134 ;	Courier 12 ----
+> # cat("dig|  formatC(txp, d=dig)\n")
+> # for(dig in 1:17)# about >= 18 is platform dependent [libc's printf()..].
+> #     cat(formatC(dig,w=2), formatC(txp,		      dig=dig, wid=-29),"\n")
+> # cat("signif() behavior\n~~~~~~~~\n",
+> #     "dig|  formatC(signif(txp, dig=dig), dig = dig\n")
+> # for(dig in 1:15)#
+> #     cat(formatC(dig,w=2), formatC(signif(txp, d=dig), dig=dig, wid=-26),"\n")
+> 
+> # if(opt.conformance >= 1) {
+> #     noquote(cbind(formatC(txp, dig = 22)))
+> # }
+> 
+> # cat("dig|  formatC(signif(txn, d = dig), dig=dig\n")
+> # for(dig in 1:15)#
+> #     cat(formatC(dig,w=2), formatC(signif(txn, d=dig), dig=dig, wid=-20),"\n")
+> 
+> # ##-- Testing  'print' / digits :
+> # for(dig in 1:13) { ## 12:13: libc-2.0.7 diff; 14:18 --- PLATFORM-dependent !!!
+> #     cat("dig=",formatC(dig,w=2),": "); print(signif(txp, d=dig),dig=dig+1)
+> # }
+> 
+> ##-- Wrong alignment when printing character matrices with  quote = FALSE
+> m1 <- matrix(letters[1:24],6,4)
+> m1
+     [,1] [,2] [,3] [,4]
+[1,] "a"  "g"  "m"  "s" 
+[2,] "b"  "h"  "n"  "t" 
+[3,] "c"  "i"  "o"  "u" 
+[4,] "d"  "j"  "p"  "v" 
+[5,] "e"  "k"  "q"  "w" 
+[6,] "f"  "l"  "r"  "x" 
+> noquote(m1)
+     [,1] [,2] [,3] [,4]
+[1,] a    g    m    s   
+[2,] b    h    n    t   
+[3,] c    i    o    u   
+[4,] d    j    p    v   
+[5,] e    k    q    w   
+[6,] f    l    r    x   
+> 
+> ##--- Complex matrices and named vectors :
+> 
+> x0 <- x <- c(1+1i, 1.2 + 10i)
+> names(x) <- c("a","b")
+> x
+      a       b 
+1.0+ 1i 1.2+10i
+> (xx <-	rbind(x,  2*x))
+     a       b
+x 1+1i 1.2+10i
+  2+2i 2.4+20i
+> 	rbind(x0, 2*x0)
+   [,1]    [,2]
+x0 1+1i 1.2+10i
+   2+2i 2.4+20i
+> x[4:6] <- c(Inf,Inf*c(-1,1i))
+> x  + pi
+            a             b                                                         
+4.141593+  1i 4.341593+ 10i            NA      Inf+  0i     -Inf+NaNi      NaN+Infi
+> matrix(x + pi, 2)
+             [,1]   [,2]      [,3]
+[1,] 4.141593+ 1i     NA -Inf+NaNi
+[2,] 4.341593+10i Inf+0i  NaN+Infi
+> matrix(x + 1i*pi, 3)
+               [,1]           [,2]
+[1,] 1.0+ 4.141593i  Inf+3.141593i
+[2,] 1.2+13.141593i -Inf+     NaNi
+[3,]             NA  NaN+     Infi
+> xx + pi
+            a           b
+x 4.141593+1i 4.34159+10i
+  5.141593+2i 5.54159+20i
+> t(cbind(xx, xx+ 1i*c(1,pi)))
+        x               
+a 1.0+ 1i 2.0+ 2.000000i
+b 1.2+10i 2.4+20.000000i
+a 1.0+ 2i 2.0+ 5.141593i
+b 1.2+11i 2.4+23.141593i
+> 
+> #--- format checks after incorrect changes in Nov 2000
+> zz <- data.frame("(row names)" = c("aaaaa", "b"), check.names = FALSE)
+> format(zz)
+  (row names)
+1       aaaaa
+2           b
+> format(zz, justify = "left")
+  (row names)
+1       aaaaa
+2       b    
+> zz <- data.frame(a = I("abc"), b = I("def\"gh"))
+> format(zz)
+    a      b
+1 abc def"gh
+> # " (font-locking: closing the string above)
+> 
+> # test format.data.frame on former AsIs's.
+> set.seed(321)
+> dd <- data.frame(x = 1:5, y = rnorm(5), z = c(1, 2, NA, 4, 5))
+> model <- glm(y ~ x, data = dd, subset = 1:4, na.action = na.omit)
+> expand.model.frame(model, "z", na.expand = FALSE)
+           y x z
+1  1.7049032 1 1
+2 -0.7120386 2 2
+4 -0.1196490 4 4
+> expand.model.frame(model, "z", na.expand = TRUE)
+           y x  z
+1  1.7049032 1  1
+2 -0.7120386 2  2
+3 -0.2779849 3 NA
+4 -0.1196490 4  4
+> 
+> ## print.table() changes affecting summary.data.frame
+> options(width=82)
+> summary(attenu) # ``one line''
+     event            mag           station         dist            accel        
+ Min.   : 1.00   Min.   :5.000   117    :  5   Min.   :  0.50   Min.   :0.00300  
+ 1st Qu.: 9.00   1st Qu.:5.300   1028   :  4   1st Qu.: 11.32   1st Qu.:0.04425  
+ Median :18.00   Median :6.100   113    :  4   Median : 23.40   Median :0.11300  
+ Mean   :14.74   Mean   :6.084   112    :  3   Mean   : 45.60   Mean   :0.15422  
+ 3rd Qu.:20.00   3rd Qu.:6.600   135    :  3   3rd Qu.: 47.55   3rd Qu.:0.21925  
+ Max.   :23.00   Max.   :7.700   (Other):147   Max.   :370.00   Max.   :0.81000  
+                                 NA's   : 16                                     
+> lst <- levels(attenu$station)
+> levels(attenu$station)[lst == "117"] <- paste(rep(letters,3),collapse="")
+> summary(attenu) # {2 + one long + 2 } variables
+     event            mag       
+ Min.   : 1.00   Min.   :5.000  
+ 1st Qu.: 9.00   1st Qu.:5.300  
+ Median :18.00   Median :6.100  
+ Mean   :14.74   Mean   :6.084  
+ 3rd Qu.:20.00   3rd Qu.:6.600  
+ Max.   :23.00   Max.   :7.700  
+                                
+                                                                           station   
+ abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz:  5  
+ 1028                                                                          :  4  
+ 113                                                                           :  4  
+ 112                                                                           :  3  
+ 135                                                                           :  3  
+ (Other)                                                                       :147  
+ NA's                                                                          : 16  
+      dist            accel        
+ Min.   :  0.50   Min.   :0.00300  
+ 1st Qu.: 11.32   1st Qu.:0.04425  
+ Median : 23.40   Median :0.11300  
+ Mean   : 45.60   Mean   :0.15422  
+ 3rd Qu.: 47.55   3rd Qu.:0.21925  
+ Max.   :370.00   Max.   :0.81000  
+                                   
+> ## in 1.7.0, things were split to more lines
+> 
+> ## format.default(*, nsmall > 0)  -- for real and complex
+> 
+> sf <- function(x, N=14) sapply(0:N, function(i) format(x,nsmall=i))
+> sf(2)
+ [1] "2"                "2.0"              "2.00"             "2.000"           
+ [5] "2.0000"           "2.00000"          "2.000000"         "2.0000000"       
+ [9] "2.00000000"       "2.000000000"      "2.0000000000"     "2.00000000000"   
+[13] "2.000000000000"   "2.0000000000000"  "2.00000000000000"
+> sf(3.141)
+ [1] "3.141"            "3.141"            "3.141"            "3.141"           
+ [5] "3.1410"           "3.14100"          "3.141000"         "3.1410000"       
+ [9] "3.14100000"       "3.141000000"      "3.1410000000"     "3.14100000000"   
+[13] "3.141000000000"   "3.1410000000000"  "3.14100000000000"
+> sf(-1.25, 20)
+ [1] "-1.25"                   "-1.25"                   "-1.25"                  
+ [4] "-1.250"                  "-1.2500"                 "-1.25000"               
+ [7] "-1.250000"               "-1.2500000"              "-1.25000000"            
+[10] "-1.250000000"            "-1.2500000000"           "-1.25000000000"         
+[13] "-1.250000000000"         "-1.2500000000000"        "-1.25000000000000"      
+[16] "-1.250000000000000"      "-1.2500000000000000"     "-1.25000000000000000"   
+[19] "-1.250000000000000000"   "-1.2500000000000000000"  "-1.25000000000000000000"
+> 
+> oDig <- options(digits= 3)
+> sf(pi)
+ [1] "3.14"             "3.14"             "3.14"             "3.142"           
+ [5] "3.1416"           "3.14159"          "3.141593"         "3.1415927"       
+ [9] "3.14159265"       "3.141592654"      "3.1415926536"     "3.14159265359"   
+[13] "3.141592653590"   "3.1415926535898"  "3.14159265358979"
+> sf(1.2e7)
+ [1] "1.2e+07" "1.2e+07" "1.2e+07" "1.2e+07" "1.2e+07" "1.2e+07" "1.2e+07"
+ [8] "1.2e+07" "1.2e+07" "1.2e+07" "1.2e+07" "1.2e+07" "1.2e+07" "1.2e+07"
+[15] "1.2e+07"
+> sf(1.23e7)
+ [1] "12300000"                "12300000.0"              "12300000.00"            
+ [4] "12300000.000"            "12300000.0000"           "12300000.00000"         
+ [7] "12300000.000000"         "12300000.0000000"        "12300000.00000000"      
+[10] "12300000.000000000"      "12300000.0000000000"     "12300000.00000000000"   
+[13] "12300000.000000000000"   "12300000.0000000000000"  "12300000.00000000000000"
+> s <- -0.01234
+> sf(s)
+ [1] "-0.0123"           "-0.0123"           "-0.0123"          
+ [4] "-0.0123"           "-0.0123"           "-0.01234"         
+ [7] "-0.012340"         "-0.0123400"        "-0.01234000"      
+[10] "-0.012340000"      "-0.0123400000"     "-0.01234000000"   
+[13] "-0.012340000000"   "-0.0123400000000"  "-0.01234000000000"
+> 
+> sf(pi + 2.2i)
+ [1] "3.14+2.2i"                          "3.14+2.2i"                         
+ [3] "3.14+2.20i"                         "3.142+2.200i"                      
+ [5] "3.1416+2.2000i"                     "3.14159+2.20000i"                  
+ [7] "3.141593+2.200000i"                 "3.1415927+2.2000000i"              
+ [9] "3.14159265+2.20000000i"             "3.141592654+2.200000000i"          
+[11] "3.1415926536+2.2000000000i"         "3.14159265359+2.20000000000i"      
+[13] "3.141592653590+2.200000000000i"     "3.1415926535898+2.2000000000000i"  
+[15] "3.14159265358979+2.20000000000000i"
+> sf(s + pi*1i)
+ [1] "-0.01+3.14i"                         "-0.01+3.14i"                        
+ [3] "-0.01+3.14i"                         "-0.012+3.142i"                      
+ [5] "-0.0123+3.1416i"                     "-0.01234+3.14159i"                  
+ [7] "-0.012340+3.141593i"                 "-0.0123400+3.1415927i"              
+ [9] "-0.01234000+3.14159265i"             "-0.012340000+3.141592654i"          
+[11] "-0.0123400000+3.1415926536i"         "-0.01234000000+3.14159265359i"      
+[13] "-0.012340000000+3.141592653590i"     "-0.0123400000000+3.1415926535898i"  
+[15] "-0.01234000000000+3.14159265358979i"
+> 
+> options(oDig)
+> 
+> e1 <- tryCatch(options(max.print=Inf), error=function(e)e)
+Warning message:
+In options(max.print = Inf) : NAs introduced by coercion to integer range
+> e2 <- tryCatch(options(max.print= 0),  error=function(e)e)
+> stopifnot(inherits(e1, "error"))
+> 
+> 
+> ## Printing of "Date"s
+> options(width = 80)
+> op <- options(max.print = 500)
+> dd <- as.Date("2012-03-12") + -10000:100
+> writeLines(t1 <- tail(capture.output(dd)))
+[476] "1986-02-12" "1986-02-13" "1986-02-14" "1986-02-15" "1986-02-16"
+[481] "1986-02-17" "1986-02-18" "1986-02-19" "1986-02-20" "1986-02-21"
+[486] "1986-02-22" "1986-02-23" "1986-02-24" "1986-02-25" "1986-02-26"
+[491] "1986-02-27" "1986-02-28" "1986-03-01" "1986-03-02" "1986-03-03"
+[496] "1986-03-04" "1986-03-05" "1986-03-06" "1986-03-07" "1986-03-08"
+ [ reached getOption("max.print") -- omitted 9601 entries ]
+> l6 <- length(capture.output(print(dd, max = 600)))
+> options(op)
+> t2 <- tail(capture.output(print(dd, max = 500)))
+> stopifnot(identical(t1, t2), l6 == 121)
+> ## not quite consistent in R <= 2.14.x
+> 
+> 
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-IO.R
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-IO.R	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/reg-IO.R	(revision 2476)
@@ -0,0 +1,60 @@
+## NB: this file must be a DOS (CRLF) format file
+
+## Keep comments and original formatting
+options(keep.source=TRUE)
+
+## simple tests that multiple lines are read correctly
+print(2+3)
+print(4+5)
+
+## generate some files to source
+
+z <- c("# line 1", "2+3", "ls()", "pi", "# last line")
+
+## ========  LF file
+cat(z, file="testIO.R", sep="\n")
+readLines("testIO.R")
+source("testIO.R", echo=TRUE)
+unlink("testIO.R")
+
+## ======== LF file, incomplete final line
+zz <- file("testIO.R", "wt")
+cat(z, file=zz, sep="\n")
+cat("5+6", file=zz)
+close(zz)
+readLines("testIO.R")
+source("testIO.R", echo=TRUE)
+unlink("testIO.R")
+
+## ======== CRLF file
+cat(z, file="testIO.R", sep="\r\n")
+source("testIO.R", echo=TRUE)
+readLines("testIO.R")
+unlink("testIO.R")
+
+## ======== CRLF file, incomplete final line
+zz <- file("testIO.R", "wt")
+cat(z, file=zz, sep="\r\n")
+cat("5+6", file=zz)
+close(zz)
+readLines("testIO.R")
+source("testIO.R", echo=TRUE)
+unlink("testIO.R")
+
+## ======== CR file
+cat(z, file="testIO.R", sep="\r")
+readLines("testIO.R")
+source("testIO.R", echo=TRUE)
+unlink("testIO.R")
+
+## ======== CR file, incomplete final line
+zz <- file("testIO.R", "wt")
+cat(z, file=zz, sep="\r")
+cat("\r5+6", file=zz)
+close(zz)
+readLines("testIO.R")
+source("testIO.R", echo=TRUE)
+unlink("testIO.R")
+
+## end of reg-IO.R: the next line has no EOL chars
+2 + 2
Index: tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/isas-tests.Rin
===================================================================
--- tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/isas-tests.Rin	(revision 0)
+++ tmp/org.txm.statsengine.r.core.macosx/res/macosx/tests/isas-tests.Rin	(revision 2476)
@@ -0,0 +1,60 @@
+#### Produce an R test script -*- R -*-
+## The logic here (BDR, 2003-02-02) is
+## identify all is. and as. functions which might be thought of
+## as precursors to is() and as().  Identify only generics.
+##
+## Then for a set of boundary-case inputs x, if as.foo(x) works
+## check that is.foo(as.foo(x)) is true.
+## Also check idempotency: as.foo(as.foo(x)) == as.foo(x)
+## and that as.foo(x) == x iff is.foo(x) is true.
+##
+## One problem with the last is that no realistic x's are used.
+##
+ls.base <- c(ls("package:base"), ls("package:stats"))
+base.is.f <- sapply(ls.base, function(x) is.function(get(x)))
+bi <- ls.base[base.is.f]
+iroot <- substring(is.bi <- bi[substring(bi,1,3) == "is."],4)
+## is.single is a dummy
+iroot <- iroot[-match("single", iroot)]
+aroot <- substring(as.bi <- bi[substring(bi,1,3) == "as."],4)
+## eliminate as.foo methods: there are no is.foo methods
+## this works because data.frame.*  has no other matches for data.
+aroot <- aroot[!duplicated(sub("\\..*", "", aroot))]
+root <- intersect(iroot, aroot) # both an  is.foo and as.foo function exist
+
+ex.list <- expression(integer(0), NULL, list(), 1:1, pi, "1.3", list(a=1),
+    as.data.frame(character(0)))
+
+##--- producing the real R script:
+sink("isas-tests.R")
+
+cat(".proctime00 <- proc.time()\n",
+    "isall.equal <- function(x,y)",
+    "typeof(x) == typeof(y) && is.logical(r <- all.equal(x,y, tolerance=0)) && r \n",
+    sep="\n")
+
+cat("report <- function(x) {print(x); stopifnot(x)}\n")
+
+cat("options(error = expression(NULL))",
+    "# don't stop on error in batch\n##~~~~~~~~~~~~~~\n")
+for(x in ex.list) {
+    cat("\n###--------\n x <- ", deparse(x), "\n", sep="")
+    ## is.foo(as.foo( bar )) #>> TRUE :
+    for(r in root) {
+        cat("res <- try(as.", r, "( x ), silent = TRUE)\n", sep="")
+        cat("if(!inherits(res, 'try-error')) report(is.",r,"(res))\n", sep="")
+    }
+    cat("\n")
+    ## if(is.foo(bar))  bar ``=='' as.foo(bar) :
+    for(r in root) {
+        cat("res <- try(as.", r, "( x ), silent = TRUE)\n", sep="")
+        cat("if(!inherits(res, 'try-error'))\n   report({if(is.",r,"(x)) { ",
+            "cat('IS: ');all.equal(x, res, tolerance=0)\n",
+            "   } else   !isall.equal(x, res)})\n", sep="")
+    }
+
+    ## f <- as.foo(x)  ==>  as.foo(f) == f :
+    for(r in aroot)
+        cat("f <- try(as.",r,"( x ), silent = TRUE)\n  if(!inherits(f, 'try-error')) report(identical(f, as.",r,"( f )))\n", sep="")
+}
+cat("cat('Time elapsed: ', proc.time() - .proctime00,'\\n')\n")

Property changes on: tmp/org.txm.statsengine.r.core.macosx/res/macosx
___________________________________________________________________
Deleted: svn:ignore
   - *


